aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.flake812
-rw-r--r--.gitignore3
-rw-r--r--.vscode/settings.json19
-rw-r--r--CMakeLists.txt12
-rw-r--r--LICENSE.COMMERCIAL914
-rw-r--r--LICENSE.FDL450
-rw-r--r--LICENSE.GPLv3686
-rw-r--r--LICENSE.GPLv3-EXCEPT704
-rw-r--r--LICENSE.LGPLv3177
-rw-r--r--LICENSES/Apache-2.0.txt61
-rw-r--r--LICENSES/BSD-3-Clause.txt9
-rw-r--r--LICENSES/GFDL-1.3-no-invariants-only.txt451
-rw-r--r--LICENSES/GPL-2.0-only.txt (renamed from LICENSE.GPL2)0
-rw-r--r--LICENSES/GPL-3.0-only.txt (renamed from sources/patchelf/COPYING)0
-rw-r--r--LICENSES/LGPL-3.0-only.txt165
-rw-r--r--LICENSES/LicenseRef-Qt-Commercial.txt8
-rw-r--r--LICENSES/Qt-GPL-exception-1.0.txt22
-rw-r--r--README.md51
-rw-r--r--README.pyside6.md21
-rw-r--r--README.pyside6_addons.md71
-rw-r--r--README.pyside6_essentials.md57
-rw-r--r--README.pyside6_examples.md34
-rw-r--r--README.shiboken6-generator.md2
-rw-r--r--build_history/blacklist.txt79
-rw-r--r--build_scripts/__init__.py77
-rw-r--r--build_scripts/build_info_collector.py311
-rw-r--r--build_scripts/build_scripts.pyproject7
-rw-r--r--build_scripts/config.py137
-rw-r--r--build_scripts/log.py15
-rw-r--r--build_scripts/main.py1073
-rw-r--r--build_scripts/options.py444
-rw-r--r--build_scripts/platforms/__init__.py40
-rw-r--r--build_scripts/platforms/linux.py177
-rw-r--r--build_scripts/platforms/macos.py168
-rw-r--r--build_scripts/platforms/unix.py335
-rw-r--r--build_scripts/platforms/windows_desktop.py455
-rw-r--r--build_scripts/qfp_tool.py457
-rw-r--r--build_scripts/qp5_tool.py448
-rw-r--r--build_scripts/qtinfo.py215
-rw-r--r--build_scripts/setup_runner.py219
-rw-r--r--build_scripts/utils.py784
-rw-r--r--build_scripts/versions.py43
-rw-r--r--build_scripts/wheel_files.py1036
-rw-r--r--build_scripts/wheel_override.py229
-rw-r--r--build_scripts/wheel_utils.py97
-rw-r--r--coin/dependencies.yaml10
-rw-r--r--coin/instructions/common_environment.yaml116
-rw-r--r--coin/instructions/execute_build_instructions.yaml84
-rw-r--r--coin/instructions/execute_test_instructions.yaml58
-rw-r--r--coin/instructions/find_path_to_msvc_compiler.yaml7
-rw-r--r--coin/module_config.yaml43
-rw-r--r--coin_build_instructions.py164
-rw-r--r--coin_test_instructions.py121
-rw-r--r--create_wheels.py515
-rw-r--r--doc/changelogs/changes-1.2.3 (renamed from dist/changes-1.2.3)0
-rw-r--r--doc/changelogs/changes-5.12.1 (renamed from dist/changes-5.12.1)0
-rw-r--r--doc/changelogs/changes-5.12.2 (renamed from dist/changes-5.12.2)0
-rw-r--r--doc/changelogs/changes-5.12.3 (renamed from dist/changes-5.12.3)0
-rw-r--r--doc/changelogs/changes-5.12.4 (renamed from dist/changes-5.12.4)0
-rw-r--r--doc/changelogs/changes-5.12.5 (renamed from dist/changes-5.12.5)0
-rw-r--r--doc/changelogs/changes-5.12.6 (renamed from dist/changes-5.12.6)0
-rw-r--r--doc/changelogs/changes-5.13.0 (renamed from dist/changes-5.13.0)0
-rw-r--r--doc/changelogs/changes-5.13.1 (renamed from dist/changes-5.13.1)0
-rw-r--r--doc/changelogs/changes-5.13.2 (renamed from dist/changes-5.13.2)0
-rw-r--r--doc/changelogs/changes-5.14.0 (renamed from dist/changes-5.14.0)0
-rw-r--r--doc/changelogs/changes-5.14.1 (renamed from dist/changes-5.14.1)0
-rw-r--r--doc/changelogs/changes-5.14.2 (renamed from dist/changes-5.14.2)0
-rw-r--r--doc/changelogs/changes-5.14.2.2 (renamed from dist/changes-5.14.2.2)0
-rw-r--r--doc/changelogs/changes-5.14.2.3 (renamed from dist/changes-5.14.2.3)0
-rw-r--r--doc/changelogs/changes-5.15.0 (renamed from dist/changes-5.15.0)0
-rw-r--r--doc/changelogs/changes-5.15.1 (renamed from dist/changes-5.15.1)0
-rw-r--r--doc/changelogs/changes-5.15.2 (renamed from dist/changes-5.15.2)0
-rw-r--r--doc/changelogs/changes-5.15.3 (renamed from dist/changes-5.15.3)0
-rw-r--r--doc/changelogs/changes-6.0.0 (renamed from dist/changes-6.0.0)0
-rw-r--r--doc/changelogs/changes-6.0.1 (renamed from dist/changes-6.0.1)0
-rw-r--r--doc/changelogs/changes-6.0.2 (renamed from dist/changes-6.0.2)0
-rw-r--r--doc/changelogs/changes-6.0.3 (renamed from dist/changes-6.0.3)0
-rw-r--r--doc/changelogs/changes-6.0.4 (renamed from dist/changes-6.0.4)0
-rw-r--r--doc/changelogs/changes-6.1.0 (renamed from dist/changes-6.1.0)0
-rw-r--r--doc/changelogs/changes-6.1.1 (renamed from dist/changes-6.1.1)0
-rw-r--r--doc/changelogs/changes-6.1.2 (renamed from dist/changes-6.1.2)0
-rw-r--r--doc/changelogs/changes-6.1.3 (renamed from dist/changes-6.1.3)0
-rw-r--r--doc/changelogs/changes-6.2.0222
-rw-r--r--doc/changelogs/changes-6.2.145
-rw-r--r--doc/changelogs/changes-6.2.276
-rw-r--r--doc/changelogs/changes-6.2.356
-rw-r--r--doc/changelogs/changes-6.2.442
-rw-r--r--doc/changelogs/changes-6.3.0214
-rw-r--r--doc/changelogs/changes-6.3.167
-rw-r--r--doc/changelogs/changes-6.3.272
-rw-r--r--doc/changelogs/changes-6.4.0187
-rw-r--r--doc/changelogs/changes-6.4.0.135
-rw-r--r--doc/changelogs/changes-6.4.178
-rw-r--r--doc/changelogs/changes-6.4.247
-rw-r--r--doc/changelogs/changes-6.4.353
-rw-r--r--doc/changelogs/changes-6.5.0111
-rw-r--r--doc/changelogs/changes-6.5.163
-rw-r--r--doc/changelogs/changes-6.5.248
-rw-r--r--doc/changelogs/changes-6.5.365
-rw-r--r--doc/changelogs/changes-6.6.088
-rw-r--r--doc/changelogs/changes-6.6.153
-rw-r--r--doc/changelogs/changes-6.6.266
-rw-r--r--doc/changelogs/changes-6.6.360
-rw-r--r--doc/changelogs/changes-6.7.0127
-rw-r--r--examples/3d/simple3d/simple3d.py42
-rw-r--r--examples/async/eratosthenes/doc/eratosthenes.rst39
-rw-r--r--examples/async/eratosthenes/doc/eratosthenes.svg1
-rw-r--r--examples/async/eratosthenes/eratosthenes.pyproject3
-rw-r--r--examples/async/eratosthenes/eratosthenes_asyncio.py134
-rw-r--r--examples/async/eratosthenes/eratosthenes_trio.py197
-rw-r--r--examples/async/eratosthenes/requirements_trio.txt2
-rw-r--r--examples/async/minimal/doc/minimal.pngbin0 -> 8135 bytes
-rw-r--r--examples/async/minimal/doc/minimal.rst38
-rw-r--r--examples/async/minimal/minimal.pyproject3
-rw-r--r--examples/async/minimal/minimal_asyncio.py40
-rw-r--r--examples/async/minimal/minimal_trio.py107
-rw-r--r--examples/async/minimal/requirements_trio.txt1
-rw-r--r--examples/axcontainer/axviewer/axviewer.py46
-rw-r--r--examples/bluetooth/btscanner/btscanner.pyproject3
-rw-r--r--examples/bluetooth/btscanner/device.py130
-rw-r--r--examples/bluetooth/btscanner/device.ui111
-rw-r--r--examples/bluetooth/btscanner/doc/btscanner.rst4
-rw-r--r--examples/bluetooth/btscanner/main.py17
-rw-r--r--examples/bluetooth/btscanner/service.py48
-rw-r--r--examples/bluetooth/btscanner/service.ui71
-rw-r--r--examples/bluetooth/btscanner/ui_device.py90
-rw-r--r--examples/bluetooth/btscanner/ui_service.py57
-rw-r--r--examples/bluetooth/heartrate_game/HeartRateGame/App.qml99
-rw-r--r--examples/bluetooth/heartrate_game/HeartRateGame/BluetoothAlarmDialog.qml79
-rw-r--r--examples/bluetooth/heartrate_game/HeartRateGame/BottomLine.qml12
-rw-r--r--examples/bluetooth/heartrate_game/HeartRateGame/Connect.qml159
-rw-r--r--examples/bluetooth/heartrate_game/HeartRateGame/GameButton.qml39
-rw-r--r--examples/bluetooth/heartrate_game/HeartRateGame/GamePage.qml36
-rw-r--r--examples/bluetooth/heartrate_game/HeartRateGame/GameSettings.qml51
-rw-r--r--examples/bluetooth/heartrate_game/HeartRateGame/Main.qml71
-rw-r--r--examples/bluetooth/heartrate_game/HeartRateGame/Measure.qml212
-rw-r--r--examples/bluetooth/heartrate_game/HeartRateGame/SplashScreen.qml30
-rw-r--r--examples/bluetooth/heartrate_game/HeartRateGame/Stats.qml55
-rw-r--r--examples/bluetooth/heartrate_game/HeartRateGame/StatsLabel.qml34
-rw-r--r--examples/bluetooth/heartrate_game/HeartRateGame/TitleBar.qml54
-rw-r--r--examples/bluetooth/heartrate_game/HeartRateGame/images/bt_off_to_on.pngbin0 -> 6143 bytes
-rw-r--r--examples/bluetooth/heartrate_game/HeartRateGame/images/heart.pngbin0 -> 2664 bytes
-rw-r--r--examples/bluetooth/heartrate_game/HeartRateGame/images/logo.pngbin0 -> 31915 bytes
-rw-r--r--examples/bluetooth/heartrate_game/HeartRateGame/qmldir14
-rw-r--r--examples/bluetooth/heartrate_game/bluetoothbaseclass.py40
-rw-r--r--examples/bluetooth/heartrate_game/connectionhandler.py77
-rw-r--r--examples/bluetooth/heartrate_game/devicefinder.py139
-rw-r--r--examples/bluetooth/heartrate_game/devicehandler.py309
-rw-r--r--examples/bluetooth/heartrate_game/deviceinfo.py38
-rw-r--r--examples/bluetooth/heartrate_game/doc/heartrate_game.rst11
-rw-r--r--examples/bluetooth/heartrate_game/heartrate_game.pyproject23
-rw-r--r--examples/bluetooth/heartrate_game/heartrate_global.py30
-rw-r--r--examples/bluetooth/heartrate_game/main.py53
-rw-r--r--examples/bluetooth/heartrate_server/doc/heartrate_server.rst8
-rw-r--r--examples/bluetooth/heartrate_server/heartrate_server.py95
-rw-r--r--examples/bluetooth/heartrate_server/heartrate_server.pyproject3
-rw-r--r--examples/bluetooth/lowenergyscanner/Scanner/Characteristics.qml121
-rw-r--r--examples/bluetooth/lowenergyscanner/Scanner/Devices.qml121
-rw-r--r--examples/bluetooth/lowenergyscanner/Scanner/Dialog.qml48
-rw-r--r--examples/bluetooth/lowenergyscanner/Scanner/Header.qml25
-rw-r--r--examples/bluetooth/lowenergyscanner/Scanner/Label.qml16
-rw-r--r--examples/bluetooth/lowenergyscanner/Scanner/Main.qml31
-rw-r--r--examples/bluetooth/lowenergyscanner/Scanner/Menu.qml55
-rw-r--r--examples/bluetooth/lowenergyscanner/Scanner/Services.qml115
-rw-r--r--examples/bluetooth/lowenergyscanner/Scanner/assets/busy_dark.pngbin0 -> 1130 bytes
-rw-r--r--examples/bluetooth/lowenergyscanner/Scanner/qmldir10
-rw-r--r--examples/bluetooth/lowenergyscanner/characteristicinfo.py87
-rw-r--r--examples/bluetooth/lowenergyscanner/device.py278
-rw-r--r--examples/bluetooth/lowenergyscanner/deviceinfo.py34
-rw-r--r--examples/bluetooth/lowenergyscanner/doc/lowenergyscanner.pngbin0 -> 72365 bytes
-rw-r--r--examples/bluetooth/lowenergyscanner/doc/lowenergyscanner.rst11
-rw-r--r--examples/bluetooth/lowenergyscanner/lowenergyscanner.pyproject7
-rw-r--r--examples/bluetooth/lowenergyscanner/main.py27
-rw-r--r--examples/bluetooth/lowenergyscanner/serviceinfo.py64
-rw-r--r--examples/charts/areachart/areachart.py67
-rw-r--r--examples/charts/areachart/areachart.pyproject3
-rw-r--r--examples/charts/areachart/doc/areachart.pngbin0 -> 15491 bytes
-rw-r--r--examples/charts/areachart/doc/areachart.rst8
-rw-r--r--examples/charts/audio/audio.py45
-rw-r--r--examples/charts/barchart/barchart.py69
-rw-r--r--examples/charts/barchart/barchart.pyproject3
-rw-r--r--examples/charts/barchart/doc/barchart.pngbin0 -> 15717 bytes
-rw-r--r--examples/charts/barchart/doc/barchart.rst8
-rw-r--r--examples/charts/callout/callout.py86
-rw-r--r--examples/charts/chartthemes/README.md2
-rw-r--r--examples/charts/chartthemes/main.py126
-rw-r--r--examples/charts/chartthemes/ui_themewidget.py18
-rw-r--r--examples/charts/donutbreakdown/donutbreakdown.py48
-rw-r--r--examples/charts/dynamicspline/chart.py41
-rw-r--r--examples/charts/dynamicspline/main.py41
-rw-r--r--examples/charts/legend/legend.py60
-rw-r--r--examples/charts/lineandbar/lineandbar.py52
-rw-r--r--examples/charts/linechart/linechart.py41
-rw-r--r--examples/charts/logvalueaxis/logvalueaxis.py41
-rw-r--r--examples/charts/memoryusage/memoryusage.py44
-rw-r--r--examples/charts/modeldata/modeldata.py47
-rw-r--r--examples/charts/nesteddonuts/nesteddonuts.py45
-rw-r--r--examples/charts/percentbarchart/percentbarchart.py53
-rw-r--r--examples/charts/piechart/piechart.py41
-rw-r--r--examples/charts/pointconfiguration/chartwindow.py156
-rw-r--r--examples/charts/pointconfiguration/doc/pointconfiguration.pngbin0 -> 34991 bytes
-rw-r--r--examples/charts/pointconfiguration/doc/pointconfiguration.rst144
-rw-r--r--examples/charts/pointconfiguration/pointconfiguration.py17
-rw-r--r--examples/charts/pointconfiguration/pointconfiguration.pyproject3
-rw-r--r--examples/charts/pointselectionandmarkers/doc/pointselectionandmarkers.pngbin0 -> 47669 bytes
-rw-r--r--examples/charts/pointselectionandmarkers/doc/pointselectionandmarkers.rst72
-rw-r--r--examples/charts/pointselectionandmarkers/images/blue_triangle.pngbin0 -> 2220 bytes
-rw-r--r--examples/charts/pointselectionandmarkers/images/green_triangle.pngbin0 -> 1389 bytes
-rw-r--r--examples/charts/pointselectionandmarkers/markers.qrc6
-rw-r--r--examples/charts/pointselectionandmarkers/pointselectionandmarkers.py128
-rw-r--r--examples/charts/pointselectionandmarkers/pointselectionandmarkers.pyproject3
-rw-r--r--examples/charts/pointselectionandmarkers/rc_markers.py275
-rw-r--r--examples/charts/pointselectionandmarkers/utilities.py77
-rw-r--r--examples/charts/qmlpolarchart/View1.qml30
-rw-r--r--examples/charts/qmlpolarchart/View2.qml30
-rw-r--r--examples/charts/qmlpolarchart/View3.qml30
-rw-r--r--examples/charts/qmlpolarchart/main.qml30
-rw-r--r--examples/charts/qmlpolarchart/qmlpolarchart.py45
-rw-r--r--examples/charts/temperaturerecords/temperaturerecords.py41
-rw-r--r--examples/corelib/ipc/sharedmemory/dialog.py53
-rw-r--r--examples/corelib/ipc/sharedmemory/main.py51
-rw-r--r--examples/corelib/ipc/sharedmemory/ui_dialog.py4
-rw-r--r--examples/corelib/mimetypesbrowser/doc/mimetypesbrowser.pngbin0 -> 22569 bytes
-rw-r--r--examples/corelib/mimetypesbrowser/doc/mimetypesbrowser.rst10
-rw-r--r--examples/corelib/mimetypesbrowser/mainwindow.py161
-rw-r--r--examples/corelib/mimetypesbrowser/mimetypemodel.py136
-rw-r--r--examples/corelib/mimetypesbrowser/mimetypesbrowser.py24
-rw-r--r--examples/corelib/mimetypesbrowser/mimetypesbrowser.pyproject3
-rw-r--r--examples/corelib/settingseditor/settingseditor.py126
-rw-r--r--examples/corelib/threads/mandelbrot.py163
-rw-r--r--examples/datavisualization/bars3d/bars3d.py42
-rw-r--r--examples/datavisualization/graphgallery/axesinputhandler.py101
-rw-r--r--examples/datavisualization/graphgallery/bargraph.py276
-rw-r--r--examples/datavisualization/graphgallery/custominputhandler.py177
-rw-r--r--examples/datavisualization/graphgallery/data/layer_1.pngbin0 -> 34540 bytes
-rw-r--r--examples/datavisualization/graphgallery/data/layer_2.pngbin0 -> 10553 bytes
-rw-r--r--examples/datavisualization/graphgallery/data/layer_3.pngbin0 -> 7119 bytes
-rw-r--r--examples/datavisualization/graphgallery/data/license.txt77
-rw-r--r--examples/datavisualization/graphgallery/data/maptexture.jpgbin0 -> 352922 bytes
-rw-r--r--examples/datavisualization/graphgallery/data/oilrig.obj2322
-rw-r--r--examples/datavisualization/graphgallery/data/pipe.obj330
-rw-r--r--examples/datavisualization/graphgallery/data/raindata.txt158
-rw-r--r--examples/datavisualization/graphgallery/data/refinery.obj2330
-rw-r--r--examples/datavisualization/graphgallery/data/topography.pngbin0 -> 395504 bytes
-rw-r--r--examples/datavisualization/graphgallery/doc/graph_gallery.webpbin0 -> 95552 bytes
-rw-r--r--examples/datavisualization/graphgallery/doc/graphgallery.rst11
-rw-r--r--examples/datavisualization/graphgallery/graphgallery.pyproject18
-rw-r--r--examples/datavisualization/graphgallery/graphgallery.qrc13
-rw-r--r--examples/datavisualization/graphgallery/graphmodifier.py395
-rw-r--r--examples/datavisualization/graphgallery/highlightseries.py94
-rw-r--r--examples/datavisualization/graphgallery/main.py50
-rw-r--r--examples/datavisualization/graphgallery/rainfalldata.py125
-rw-r--r--examples/datavisualization/graphgallery/scatterdatamodifier.py151
-rw-r--r--examples/datavisualization/graphgallery/scattergraph.py128
-rw-r--r--examples/datavisualization/graphgallery/surfacegraph.py265
-rw-r--r--examples/datavisualization/graphgallery/surfacegraphmodifier.py643
-rw-r--r--examples/datavisualization/graphgallery/topographicseries.py57
-rw-r--r--examples/datavisualization/graphgallery/variantbardatamapping.py67
-rw-r--r--examples/datavisualization/graphgallery/variantbardataproxy.py100
-rw-r--r--examples/datavisualization/graphgallery/variantdataset.py39
-rw-r--r--examples/datavisualization/minimalsurface/doc/minimalsurface.rst4
-rw-r--r--examples/datavisualization/minimalsurface/main.py54
-rw-r--r--examples/datavisualization/qmlsurfacegallery/datasource.py99
-rw-r--r--examples/datavisualization/qmlsurfacegallery/doc/qmlsurfacegallery.rst9
-rw-r--r--examples/datavisualization/qmlsurfacegallery/doc/qmlsurfacegallery.webpbin0 -> 100206 bytes
-rw-r--r--examples/datavisualization/qmlsurfacegallery/main.py39
-rw-r--r--examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/SpectrogramData.qml1545
-rw-r--r--examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/SurfaceHeightMap.qml227
-rw-r--r--examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/SurfaceOscilloscope.qml430
-rw-r--r--examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/SurfaceSpectrogram.qml272
-rw-r--r--examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/heightmap.pngbin0 -> 638731 bytes
-rw-r--r--examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/main.qml57
-rw-r--r--examples/datavisualization/qmlsurfacegallery/qmlsurfacegallery.pyproject10
-rw-r--r--examples/datavisualization/qmlsurfacegallery/qmlsurfacegallery.qrc5
-rw-r--r--examples/datavisualization/qmlsurfacegallery/rc_qmlsurfacegallery.py39967
-rw-r--r--examples/datavisualization/surface/main.py363
-rw-r--r--examples/datavisualization/surface/surfacegraph.py366
-rw-r--r--examples/datavisualization/surface_model_numpy/doc/surface_model_numpy.rst24
-rw-r--r--examples/datavisualization/surface_model_numpy/main.py189
-rw-r--r--examples/datavisualization/surface_model_numpy/surface_model_numpy.pyproject4
-rw-r--r--examples/datavisualization/surface_model_numpy/surfacegraph.py295
-rw-r--r--examples/datavisualization/surface_numpy/doc/surface_numpy.rst24
-rw-r--r--examples/datavisualization/surface_numpy/main.py189
-rw-r--r--examples/datavisualization/surface_numpy/surface_numpy.pyproject4
-rw-r--r--examples/datavisualization/surface_numpy/surfacegraph.py253
-rw-r--r--examples/dbus/listnames/listnames.py44
-rw-r--r--examples/dbus/pingpong/ping.py46
-rw-r--r--examples/dbus/pingpong/pong.py43
-rw-r--r--examples/declarative/editingmodel/MovingRectangle.qml115
-rw-r--r--examples/declarative/editingmodel/doc/editingmodel.rst14
-rw-r--r--examples/declarative/editingmodel/main.py59
-rw-r--r--examples/declarative/editingmodel/main.qml143
-rw-r--r--examples/declarative/editingmodel/model.py187
-rw-r--r--examples/declarative/extending/chapter1-basics/app.qml64
-rw-r--r--examples/declarative/extending/chapter1-basics/basics.py102
-rw-r--r--examples/declarative/extending/chapter2-methods/app.qml70
-rw-r--r--examples/declarative/extending/chapter2-methods/methods.py109
-rw-r--r--examples/declarative/extending/chapter3-bindings/app.qml78
-rw-r--r--examples/declarative/extending/chapter3-bindings/bindings.py113
-rw-r--r--examples/declarative/extending/chapter4-customPropertyTypes/app.qml60
-rw-r--r--examples/declarative/extending/chapter4-customPropertyTypes/customPropertyTypes.py116
-rw-r--r--examples/declarative/extending/chapter5-listproperties/app.qml70
-rw-r--r--examples/declarative/extending/chapter5-listproperties/listproperties.py130
-rw-r--r--examples/declarative/objectlistmodel/doc/objectlistmodel.rst12
-rw-r--r--examples/declarative/objectlistmodel/objectlistmodel.py99
-rw-r--r--examples/declarative/objectlistmodel/view.qml52
-rw-r--r--examples/declarative/openglunderqml/main.py66
-rw-r--r--examples/declarative/openglunderqml/main.qml86
-rw-r--r--examples/declarative/openglunderqml/squircle.py107
-rw-r--r--examples/declarative/openglunderqml/squirclerenderer.py141
-rw-r--r--examples/declarative/signals/pytoqml1/main.py69
-rw-r--r--examples/declarative/signals/pytoqml1/view.qml73
-rw-r--r--examples/declarative/signals/pytoqml2/main.py92
-rw-r--r--examples/declarative/signals/pytoqml2/view.qml67
-rw-r--r--examples/declarative/signals/qmltopy1/main.py88
-rw-r--r--examples/declarative/signals/qmltopy1/view.qml91
-rw-r--r--examples/declarative/signals/qmltopy2/main.py83
-rw-r--r--examples/declarative/signals/qmltopy2/view.qml86
-rw-r--r--examples/declarative/signals/qmltopy3/main.py71
-rw-r--r--examples/declarative/signals/qmltopy3/view.qml103
-rw-r--r--examples/declarative/signals/qmltopy4/main.py71
-rw-r--r--examples/declarative/signals/qmltopy4/view.qml68
-rw-r--r--examples/declarative/stringlistmodel/doc/stringlistmodel.rst9
-rw-r--r--examples/declarative/stringlistmodel/stringlistmodel.py64
-rw-r--r--examples/declarative/stringlistmodel/view.qml54
-rw-r--r--examples/declarative/textproperties/main.py113
-rw-r--r--examples/declarative/textproperties/view.qml197
-rw-r--r--examples/declarative/usingmodel/doc/usingmodel.rst9
-rw-r--r--examples/declarative/usingmodel/usingmodel.py108
-rw-r--r--examples/declarative/usingmodel/view.qml66
-rw-r--r--examples/demos/colorpaletteclient/ColorPalette/ColorDialogDelete.qml71
-rw-r--r--examples/demos/colorpaletteclient/ColorPalette/ColorDialogEditor.qml139
-rw-r--r--examples/demos/colorpaletteclient/ColorPalette/ColorView.qml381
-rw-r--r--examples/demos/colorpaletteclient/ColorPalette/Main.qml62
-rw-r--r--examples/demos/colorpaletteclient/ColorPalette/ServerSelection.qml241
-rw-r--r--examples/demos/colorpaletteclient/ColorPalette/UserMenu.qml139
-rw-r--r--examples/demos/colorpaletteclient/ColorPalette/qmldir7
-rw-r--r--examples/demos/colorpaletteclient/QtExampleStyle/Button.qml48
-rw-r--r--examples/demos/colorpaletteclient/QtExampleStyle/CMakeLists.txt54
-rw-r--r--examples/demos/colorpaletteclient/QtExampleStyle/Popup.qml27
-rw-r--r--examples/demos/colorpaletteclient/QtExampleStyle/TextField.qml22
-rw-r--r--examples/demos/colorpaletteclient/QtExampleStyle/UIStyle.qml29
-rw-r--r--examples/demos/colorpaletteclient/QtExampleStyle/qmldir5
-rw-r--r--examples/demos/colorpaletteclient/abstractresource.py24
-rw-r--r--examples/demos/colorpaletteclient/basiclogin.py100
-rw-r--r--examples/demos/colorpaletteclient/colorpaletteclient.pyproject21
-rw-r--r--examples/demos/colorpaletteclient/colorpaletteclient.qrc17
-rw-r--r--examples/demos/colorpaletteclient/doc/colorpaletteclient.rst79
-rw-r--r--examples/demos/colorpaletteclient/doc/colorpaletteclient.webpbin0 -> 28034 bytes
-rw-r--r--examples/demos/colorpaletteclient/icons/close.svg3
-rw-r--r--examples/demos/colorpaletteclient/icons/delete.svg3
-rw-r--r--examples/demos/colorpaletteclient/icons/dots.svg3
-rw-r--r--examples/demos/colorpaletteclient/icons/edit.svg3
-rw-r--r--examples/demos/colorpaletteclient/icons/login.svg3
-rw-r--r--examples/demos/colorpaletteclient/icons/logout.svg3
-rw-r--r--examples/demos/colorpaletteclient/icons/ok.svg3
-rw-r--r--examples/demos/colorpaletteclient/icons/plus.svg3
-rw-r--r--examples/demos/colorpaletteclient/icons/qt.pngbin0 -> 2963 bytes
-rw-r--r--examples/demos/colorpaletteclient/icons/qt_attribution.json14
-rw-r--r--examples/demos/colorpaletteclient/icons/testserver.pngbin0 -> 6803 bytes
-rw-r--r--examples/demos/colorpaletteclient/icons/update.svg3
-rw-r--r--examples/demos/colorpaletteclient/icons/user.svg4
-rw-r--r--examples/demos/colorpaletteclient/icons/userMask.svg3
-rw-r--r--examples/demos/colorpaletteclient/main.py33
-rw-r--r--examples/demos/colorpaletteclient/paginatedresource.py278
-rw-r--r--examples/demos/colorpaletteclient/rc_colorpaletteclient.py1098
-rw-r--r--examples/demos/colorpaletteclient/restservice.py53
-rw-r--r--examples/demos/documentviewer/abstractviewer.py185
-rw-r--r--examples/demos/documentviewer/doc/abstractviewer.py.rstinc25
-rw-r--r--examples/demos/documentviewer/doc/documentviewer.pngbin0 -> 22897 bytes
-rw-r--r--examples/demos/documentviewer/doc/documentviewer.rst13
-rw-r--r--examples/demos/documentviewer/doc/jsonviewer.py.rstinc11
-rw-r--r--examples/demos/documentviewer/doc/mainwindow.py.rstinc11
-rw-r--r--examples/demos/documentviewer/doc/viewerfactory.py.rstinc3
-rw-r--r--examples/demos/documentviewer/documentviewer.pyproject14
-rw-r--r--examples/demos/documentviewer/documentviewer.qrc42
-rw-r--r--examples/demos/documentviewer/images/copy.png (renamed from examples/widgets/mainwindows/mdi/images/copy.png)bin1338 -> 1338 bytes
-rw-r--r--examples/demos/documentviewer/images/copy@2x.pngbin0 -> 2219 bytes
-rw-r--r--examples/demos/documentviewer/images/cut.png (renamed from examples/widgets/mainwindows/mdi/images/cut.png)bin1323 -> 1323 bytes
-rw-r--r--examples/demos/documentviewer/images/cut@2x.pngbin0 -> 2888 bytes
-rw-r--r--examples/demos/documentviewer/images/document-open-recent.svgzbin0 -> 4656 bytes
-rw-r--r--examples/demos/documentviewer/images/go-next-view-page.pngbin0 -> 1125 bytes
-rw-r--r--examples/demos/documentviewer/images/go-next-view-page@2x.pngbin0 -> 2312 bytes
-rw-r--r--examples/demos/documentviewer/images/go-next-view.pngbin0 -> 990 bytes
-rw-r--r--examples/demos/documentviewer/images/go-next-view@2x.pngbin0 -> 1830 bytes
-rw-r--r--examples/demos/documentviewer/images/go-next.svgzbin0 -> 5473 bytes
-rw-r--r--examples/demos/documentviewer/images/go-previous-view-page.pngbin0 -> 1119 bytes
-rw-r--r--examples/demos/documentviewer/images/go-previous-view-page@2x.pngbin0 -> 2067 bytes
-rw-r--r--examples/demos/documentviewer/images/go-previous-view.pngbin0 -> 1010 bytes
-rw-r--r--examples/demos/documentviewer/images/go-previous-view@2x.pngbin0 -> 1875 bytes
-rw-r--r--examples/demos/documentviewer/images/go-previous.svgzbin0 -> 5690 bytes
-rw-r--r--examples/demos/documentviewer/images/help-about.svgzbin0 -> 7056 bytes
-rw-r--r--examples/demos/documentviewer/images/magnifier.pngbin0 -> 1006 bytes
-rw-r--r--examples/demos/documentviewer/images/magnifier@2x.pngbin0 -> 2249 bytes
-rw-r--r--examples/demos/documentviewer/images/open.png (renamed from examples/widgets/mainwindows/mdi/images/open.png)bin2073 -> 2073 bytes
-rw-r--r--examples/demos/documentviewer/images/open@2x.pngbin0 -> 1017 bytes
-rw-r--r--examples/demos/documentviewer/images/paste.png (renamed from examples/widgets/mainwindows/mdi/images/paste.png)bin1645 -> 1645 bytes
-rw-r--r--examples/demos/documentviewer/images/paste@2x.pngbin0 -> 2782 bytes
-rw-r--r--examples/demos/documentviewer/images/print.pngbin0 -> 678 bytes
-rw-r--r--examples/demos/documentviewer/images/print2x.pngbin0 -> 931 bytes
-rw-r--r--examples/demos/documentviewer/images/qt-logo.pngbin0 -> 1483 bytes
-rw-r--r--examples/demos/documentviewer/images/qt-logo@2x.pngbin0 -> 1933 bytes
-rw-r--r--examples/demos/documentviewer/images/zoom-fit-best.pngbin0 -> 1067 bytes
-rw-r--r--examples/demos/documentviewer/images/zoom-fit-best@2x.pngbin0 -> 1692 bytes
-rw-r--r--examples/demos/documentviewer/images/zoom-fit-width.pngbin0 -> 905 bytes
-rw-r--r--examples/demos/documentviewer/images/zoom-fit-width@2x.pngbin0 -> 1724 bytes
-rw-r--r--examples/demos/documentviewer/images/zoom-in.pngbin0 -> 952 bytes
-rw-r--r--examples/demos/documentviewer/images/zoom-in@2x.pngbin0 -> 2100 bytes
-rw-r--r--examples/demos/documentviewer/images/zoom-original.pngbin0 -> 946 bytes
-rw-r--r--examples/demos/documentviewer/images/zoom-original@2x.pngbin0 -> 2005 bytes
-rw-r--r--examples/demos/documentviewer/images/zoom-out.pngbin0 -> 940 bytes
-rw-r--r--examples/demos/documentviewer/images/zoom-out@2x.pngbin0 -> 1971 bytes
-rw-r--r--examples/demos/documentviewer/images/zoom-previous.pngbin0 -> 946 bytes
-rw-r--r--examples/demos/documentviewer/images/zoom-previous@2x.pngbin0 -> 2049 bytes
-rw-r--r--examples/demos/documentviewer/jsonviewer/jsonviewer.py396
-rw-r--r--examples/demos/documentviewer/main.py37
-rw-r--r--examples/demos/documentviewer/mainwindow.py178
-rw-r--r--examples/demos/documentviewer/mainwindow.ui272
-rw-r--r--examples/demos/documentviewer/pdfviewer/pdfviewer.py204
-rw-r--r--examples/demos/documentviewer/pdfviewer/zoomselector.py54
-rw-r--r--examples/demos/documentviewer/rc_documentviewer.py5135
-rw-r--r--examples/demos/documentviewer/recentfilemenu.py34
-rw-r--r--examples/demos/documentviewer/recentfiles.py159
-rw-r--r--examples/demos/documentviewer/txtviewer/txtviewer.py144
-rw-r--r--examples/demos/documentviewer/ui_mainwindow.py230
-rw-r--r--examples/demos/documentviewer/viewerfactory.py114
-rw-r--r--examples/designer/taskmenuextension/doc/taskmenuextension.rst6
-rw-r--r--examples/designer/taskmenuextension/main.py41
-rw-r--r--examples/designer/taskmenuextension/registertictactoe.py53
-rw-r--r--examples/designer/taskmenuextension/tictactoe.py137
-rw-r--r--examples/designer/taskmenuextension/tictactoeplugin.py54
-rw-r--r--examples/designer/taskmenuextension/tictactoetaskmenu.py53
-rw-r--r--examples/examples.pyproject3
-rw-r--r--examples/external/matplotlib/widget3d/widget3d.py47
-rw-r--r--examples/external/matplotlib/widget_gaussian/widget_gaussian.py48
-rw-r--r--examples/external/networkx/doc/networkx.pngbin0 -> 28017 bytes
-rw-r--r--examples/external/networkx/doc/networkx.rst8
-rw-r--r--examples/external/networkx/main.py346
-rw-r--r--examples/external/networkx/networkx.pyproject3
-rw-r--r--examples/external/networkx/requirements.txt3
-rw-r--r--examples/external/opencv/webcam_pattern_detection.py45
-rw-r--r--examples/external/pandas/dataframe_model.py41
-rw-r--r--examples/external/scikit/staining_colors_separation.py45
-rw-r--r--examples/graphs/2d/hellographs/HelloGraphs/Main.qml153
-rw-r--r--examples/graphs/2d/hellographs/HelloGraphs/qmldir2
-rw-r--r--examples/graphs/2d/hellographs/doc/hellographs.rst51
-rw-r--r--examples/graphs/2d/hellographs/doc/hellographs.webpbin0 -> 60020 bytes
-rw-r--r--examples/graphs/2d/hellographs/hellographs.pyproject3
-rw-r--r--examples/graphs/2d/hellographs/main.py22
-rw-r--r--examples/graphs/3d/minimalsurfacegraph/doc/minimalsurfacegraph.rst4
-rw-r--r--examples/graphs/3d/minimalsurfacegraph/main.py54
-rw-r--r--examples/graphs/3d/widgetgallery/axesinputhandler.py100
-rw-r--r--examples/graphs/3d/widgetgallery/bargraph.py272
-rw-r--r--examples/graphs/3d/widgetgallery/custominputhandler.py177
-rw-r--r--examples/graphs/3d/widgetgallery/data/layer_1.pngbin0 -> 34540 bytes
-rw-r--r--examples/graphs/3d/widgetgallery/data/layer_2.pngbin0 -> 10553 bytes
-rw-r--r--examples/graphs/3d/widgetgallery/data/layer_3.pngbin0 -> 7119 bytes
-rw-r--r--examples/graphs/3d/widgetgallery/data/license.txt77
-rw-r--r--examples/graphs/3d/widgetgallery/data/maptexture.jpgbin0 -> 352922 bytes
-rw-r--r--examples/graphs/3d/widgetgallery/data/narrowarrow.meshbin0 -> 15420 bytes
-rw-r--r--examples/graphs/3d/widgetgallery/data/oilrig.meshbin0 -> 69728 bytes
-rw-r--r--examples/graphs/3d/widgetgallery/data/pipe.meshbin0 -> 4760 bytes
-rw-r--r--examples/graphs/3d/widgetgallery/data/raindata.txt158
-rw-r--r--examples/graphs/3d/widgetgallery/data/refinery.meshbin0 -> 75216 bytes
-rw-r--r--examples/graphs/3d/widgetgallery/data/topography.pngbin0 -> 395504 bytes
-rw-r--r--examples/graphs/3d/widgetgallery/doc/widgetgallery.rst11
-rw-r--r--examples/graphs/3d/widgetgallery/doc/widgetgallery.webpbin0 -> 93150 bytes
-rw-r--r--examples/graphs/3d/widgetgallery/graphmodifier.py391
-rw-r--r--examples/graphs/3d/widgetgallery/highlightseries.py94
-rw-r--r--examples/graphs/3d/widgetgallery/main.py41
-rw-r--r--examples/graphs/3d/widgetgallery/rainfalldata.py125
-rw-r--r--examples/graphs/3d/widgetgallery/scatterdatamodifier.py149
-rw-r--r--examples/graphs/3d/widgetgallery/scattergraph.py121
-rw-r--r--examples/graphs/3d/widgetgallery/surfacegraph.py256
-rw-r--r--examples/graphs/3d/widgetgallery/surfacegraphmodifier.py641
-rw-r--r--examples/graphs/3d/widgetgallery/topographicseries.py57
-rw-r--r--examples/graphs/3d/widgetgallery/variantbardatamapping.py67
-rw-r--r--examples/graphs/3d/widgetgallery/variantbardataproxy.py100
-rw-r--r--examples/graphs/3d/widgetgallery/variantdataset.py39
-rw-r--r--examples/graphs/3d/widgetgallery/widgetgallery.pyproject29
-rw-r--r--examples/gui/analogclock/analogclock.pyproject3
-rw-r--r--examples/gui/analogclock/doc/analogclock.rst8
-rw-r--r--examples/gui/analogclock/main.py92
-rw-r--r--examples/gui/rhiwindow/doc/rhiwindow.rst49
-rw-r--r--examples/gui/rhiwindow/doc/rhiwindow.webpbin0 -> 38466 bytes
-rw-r--r--examples/gui/rhiwindow/main.py80
-rw-r--r--examples/gui/rhiwindow/rc_rhiwindow.py319
-rw-r--r--examples/gui/rhiwindow/rhiwindow.py420
-rw-r--r--examples/gui/rhiwindow/rhiwindow.pyproject5
-rw-r--r--examples/gui/rhiwindow/rhiwindow.qrc8
-rw-r--r--examples/gui/rhiwindow/shaders/color.frag15
-rw-r--r--examples/gui/rhiwindow/shaders/color.vert17
-rw-r--r--examples/gui/rhiwindow/shaders/prebuilt/color.frag.qsbbin0 -> 1035 bytes
-rw-r--r--examples/gui/rhiwindow/shaders/prebuilt/color.vert.qsbbin0 -> 1131 bytes
-rw-r--r--examples/gui/rhiwindow/shaders/prebuilt/quad.frag.qsbbin0 -> 1023 bytes
-rw-r--r--examples/gui/rhiwindow/shaders/prebuilt/quad.vert.qsbbin0 -> 982 bytes
-rw-r--r--examples/gui/rhiwindow/shaders/quad.frag11
-rw-r--r--examples/gui/rhiwindow/shaders/quad.vert10
-rw-r--r--examples/httpserver/afterrequest/doc/afterrequest.rst5
-rw-r--r--examples/httpserver/afterrequest/main.py36
-rw-r--r--examples/installer_test/hello.py50
-rw-r--r--examples/installer_test/hello_app.spec44
-rw-r--r--examples/location/mapviewer/MapViewer/Main.qml460
-rw-r--r--examples/location/mapviewer/MapViewer/forms/Geocode.qml42
-rw-r--r--examples/location/mapviewer/MapViewer/forms/GeocodeForm.ui.qml136
-rw-r--r--examples/location/mapviewer/MapViewer/forms/Locale.qml45
-rw-r--r--examples/location/mapviewer/MapViewer/forms/LocaleForm.ui.qml116
-rw-r--r--examples/location/mapviewer/MapViewer/forms/Message.qml21
-rw-r--r--examples/location/mapviewer/MapViewer/forms/MessageForm.ui.qml69
-rw-r--r--examples/location/mapviewer/MapViewer/forms/ReverseGeocode.qml38
-rw-r--r--examples/location/mapviewer/MapViewer/forms/ReverseGeocodeForm.ui.qml103
-rw-r--r--examples/location/mapviewer/MapViewer/forms/RouteAddress.qml105
-rw-r--r--examples/location/mapviewer/MapViewer/forms/RouteAddressForm.ui.qml160
-rw-r--r--examples/location/mapviewer/MapViewer/forms/RouteCoordinate.qml41
-rw-r--r--examples/location/mapviewer/MapViewer/forms/RouteCoordinateForm.ui.qml136
-rw-r--r--examples/location/mapviewer/MapViewer/forms/RouteList.qml50
-rw-r--r--examples/location/mapviewer/MapViewer/forms/RouteListDelegate.qml42
-rw-r--r--examples/location/mapviewer/MapViewer/forms/RouteListHeader.qml47
-rw-r--r--examples/location/mapviewer/MapViewer/helper.js44
-rw-r--r--examples/location/mapviewer/MapViewer/map/MapComponent.qml497
-rw-r--r--examples/location/mapviewer/MapViewer/map/MapSliders.qml282
-rw-r--r--examples/location/mapviewer/MapViewer/map/Marker.qml64
-rw-r--r--examples/location/mapviewer/MapViewer/map/MiniMap.qml78
-rw-r--r--examples/location/mapviewer/MapViewer/menus/ItemPopupMenu.qml19
-rw-r--r--examples/location/mapviewer/MapViewer/menus/MainMenu.qml122
-rw-r--r--examples/location/mapviewer/MapViewer/menus/MapPopupMenu.qml30
-rw-r--r--examples/location/mapviewer/MapViewer/menus/MarkerPopupMenu.qml38
-rw-r--r--examples/location/mapviewer/MapViewer/qmldir27
-rw-r--r--examples/location/mapviewer/MapViewer/resources/marker.pngbin0 -> 752 bytes
-rw-r--r--examples/location/mapviewer/MapViewer/resources/marker_blue.pngbin0 -> 3523 bytes
-rw-r--r--examples/location/mapviewer/MapViewer/resources/scale.pngbin0 -> 98 bytes
-rw-r--r--examples/location/mapviewer/MapViewer/resources/scale_end.pngbin0 -> 93 bytes
-rw-r--r--examples/location/mapviewer/doc/mapviewer.rst14
-rw-r--r--examples/location/mapviewer/doc/mapviewer.webpbin0 -> 79588 bytes
-rw-r--r--examples/location/mapviewer/main.py75
-rw-r--r--examples/location/mapviewer/mapviewer.pyproject33
-rw-r--r--examples/macextras/macpasteboardmime/macpasteboardmime.py128
-rw-r--r--examples/macextras/macpasteboardmime/macpasteboardmime.pyproject3
-rw-r--r--examples/multimedia/audiooutput/audiooutput.py80
-rw-r--r--examples/multimedia/audiooutput/doc/audiooutput.rst2
-rw-r--r--examples/multimedia/audiosource/audiosource.py227
-rw-r--r--examples/multimedia/audiosource/audiosource.pyproject3
-rw-r--r--examples/multimedia/audiosource/doc/audiosource.pngbin0 -> 11897 bytes
-rw-r--r--examples/multimedia/audiosource/doc/audiosource.rst13
-rw-r--r--examples/multimedia/camera/camera.py533
-rw-r--r--examples/multimedia/camera/camera.pyproject11
-rw-r--r--examples/multimedia/camera/camera.ui497
-rw-r--r--examples/multimedia/camera/camera_mobile.ui504
-rw-r--r--examples/multimedia/camera/doc/camera.pngbin63404 -> 0 bytes
-rw-r--r--examples/multimedia/camera/doc/camera.rst6
-rw-r--r--examples/multimedia/camera/doc/camera.webpbin0 -> 11666 bytes
-rw-r--r--examples/multimedia/camera/imagesettings.py56
-rw-r--r--examples/multimedia/camera/imagesettings.ui123
-rw-r--r--examples/multimedia/camera/main.py17
-rw-r--r--examples/multimedia/camera/metadatadialog.py86
-rw-r--r--examples/multimedia/camera/ui_camera.py232
-rw-r--r--examples/multimedia/camera/ui_camera_mobile.py251
-rw-r--r--examples/multimedia/camera/ui_imagesettings.py94
-rw-r--r--examples/multimedia/camera/ui_videosettings.py178
-rw-r--r--examples/multimedia/camera/ui_videosettings_mobile.py176
-rw-r--r--examples/multimedia/camera/videosettings.py167
-rw-r--r--examples/multimedia/camera/videosettings.ui213
-rw-r--r--examples/multimedia/camera/videosettings_mobile.ui207
-rw-r--r--examples/multimedia/player/player.py71
-rw-r--r--examples/multimedia/screencapture/doc/screencapture.rst42
-rw-r--r--examples/multimedia/screencapture/doc/screencapture.webpbin0 -> 53592 bytes
-rw-r--r--examples/multimedia/screencapture/main.py20
-rw-r--r--examples/multimedia/screencapture/screencapture.pyproject3
-rw-r--r--examples/multimedia/screencapture/screencapturepreview.py162
-rw-r--r--examples/multimedia/screencapture/screenlistmodel.py38
-rw-r--r--examples/multimedia/screencapture/windowlistmodel.py30
-rw-r--r--examples/network/blockingfortuneclient/blockingfortuneclient.py85
-rw-r--r--examples/network/downloader/downloader.py44
-rw-r--r--examples/network/fortuneclient/fortuneclient.py72
-rw-r--r--examples/network/fortuneserver/fortuneserver.py64
-rw-r--r--examples/network/googlesuggest/doc/googlesuggest.pngbin0 -> 2467 bytes
-rw-r--r--examples/network/googlesuggest/doc/googlesuggest.rst11
-rw-r--r--examples/network/googlesuggest/googlesuggest.py136
-rw-r--r--examples/network/googlesuggest/googlesuggest.pyproject3
-rw-r--r--examples/network/googlesuggest/main.py14
-rw-r--r--examples/network/googlesuggest/searchbox.py27
-rw-r--r--examples/network/loopback/dialog.py151
-rw-r--r--examples/network/loopback/doc/loopback.pngbin0 -> 6195 bytes
-rw-r--r--examples/network/loopback/doc/loopback.rst10
-rw-r--r--examples/network/loopback/loopback.pyproject3
-rw-r--r--examples/network/loopback/main.py15
-rw-r--r--examples/network/threadedfortuneserver/threadedfortuneserver.py54
-rw-r--r--examples/networkauth/redditclient/main.py41
-rw-r--r--examples/networkauth/redditclient/redditmodel.py43
-rw-r--r--examples/networkauth/redditclient/redditwrapper.py65
-rw-r--r--examples/opengl/contextinfo/contextinfo.py68
-rw-r--r--examples/opengl/hellogl2/doc/hellogl2.rst14
-rw-r--r--examples/opengl/hellogl2/glwidget.py272
-rw-r--r--examples/opengl/hellogl2/hellogl2.py489
-rw-r--r--examples/opengl/hellogl2/hellogl2.pyproject2
-rw-r--r--examples/opengl/hellogl2/logo.py101
-rw-r--r--examples/opengl/hellogl2/main.py58
-rw-r--r--examples/opengl/hellogl2/mainwindow.py29
-rw-r--r--examples/opengl/hellogl2/window.py110
-rw-r--r--examples/opengl/textures/textures.py214
-rw-r--r--examples/opengl/textures/textures.pyproject2
-rw-r--r--examples/opengl/textures/textures_rc.py550
-rw-r--r--examples/opengl/threadedqopenglwidget/doc/threadedqopenglwidget.pngbin0 -> 10616 bytes
-rw-r--r--examples/opengl/threadedqopenglwidget/doc/threadedqopenglwidget.rst9
-rw-r--r--examples/opengl/threadedqopenglwidget/glwidget.py79
-rw-r--r--examples/opengl/threadedqopenglwidget/main.py93
-rw-r--r--examples/opengl/threadedqopenglwidget/mainwindow.py24
-rw-r--r--examples/opengl/threadedqopenglwidget/renderer.py326
-rw-r--r--examples/opengl/threadedqopenglwidget/threadedqopenglwidget.pyproject3
-rw-r--r--examples/pdf/quickpdfviewer/doc/quickpdfviewer.rst4
-rw-r--r--examples/pdf/quickpdfviewer/main.py49
-rw-r--r--examples/pdf/quickpdfviewer/quickpdfviewer.pyproject3
-rw-r--r--examples/pdf/quickpdfviewer/rc_viewer.py5505
-rw-r--r--examples/pdf/quickpdfviewer/resources/document-open.svg13
-rw-r--r--examples/pdf/quickpdfviewer/resources/edit-clear.svg15
-rw-r--r--examples/pdf/quickpdfviewer/resources/edit-copy.svg15
-rw-r--r--examples/pdf/quickpdfviewer/resources/edit-select-all.svg13
-rw-r--r--examples/pdf/quickpdfviewer/resources/go-down-search.svg13
-rw-r--r--examples/pdf/quickpdfviewer/resources/go-next-view-page.svg13
-rw-r--r--examples/pdf/quickpdfviewer/resources/go-previous-view-page.svg13
-rw-r--r--examples/pdf/quickpdfviewer/resources/go-up-search.svg8
-rw-r--r--examples/pdf/quickpdfviewer/resources/rotate-left.svg6
-rw-r--r--examples/pdf/quickpdfviewer/resources/rotate-right.svg6
-rw-r--r--examples/pdf/quickpdfviewer/resources/test.pdfbin0 -> 76633 bytes
-rw-r--r--examples/pdf/quickpdfviewer/resources/zoom-fit-best.svg13
-rw-r--r--examples/pdf/quickpdfviewer/resources/zoom-fit-width.svg13
-rw-r--r--examples/pdf/quickpdfviewer/resources/zoom-in.svg13
-rw-r--r--examples/pdf/quickpdfviewer/resources/zoom-original.svg13
-rw-r--r--examples/pdf/quickpdfviewer/resources/zoom-out.svg13
-rw-r--r--examples/pdf/quickpdfviewer/viewer.qml307
-rw-r--r--examples/pdf/quickpdfviewer/viewer.qrc20
-rw-r--r--examples/pdfwidgets/pdfviewer/doc/pdfviewer.rst5
-rw-r--r--examples/pdfwidgets/pdfviewer/images/document-open.svgzbin0 -> 4276 bytes
-rw-r--r--examples/pdfwidgets/pdfviewer/images/go-next-view-page.svgzbin0 -> 12615 bytes
-rw-r--r--examples/pdfwidgets/pdfviewer/images/go-next-view.svgzbin0 -> 6360 bytes
-rw-r--r--examples/pdfwidgets/pdfviewer/images/go-previous-view-page.svgzbin0 -> 12602 bytes
-rw-r--r--examples/pdfwidgets/pdfviewer/images/go-previous-view.svgzbin0 -> 6545 bytes
-rw-r--r--examples/pdfwidgets/pdfviewer/images/zoom-fit-best.svgzbin0 -> 6121 bytes
-rw-r--r--examples/pdfwidgets/pdfviewer/images/zoom-fit-width.svgzbin0 -> 6109 bytes
-rw-r--r--examples/pdfwidgets/pdfviewer/images/zoom-in.svgzbin0 -> 6033 bytes
-rw-r--r--examples/pdfwidgets/pdfviewer/images/zoom-original.svgzbin0 -> 5541 bytes
-rw-r--r--examples/pdfwidgets/pdfviewer/images/zoom-out.svgzbin0 -> 5420 bytes
-rw-r--r--examples/pdfwidgets/pdfviewer/images/zoom-previous.svgzbin0 -> 5665 bytes
-rw-r--r--examples/pdfwidgets/pdfviewer/main.py27
-rw-r--r--examples/pdfwidgets/pdfviewer/mainwindow.py141
-rw-r--r--examples/pdfwidgets/pdfviewer/mainwindow.ui327
-rw-r--r--examples/pdfwidgets/pdfviewer/pdfviewer.pyproject4
-rw-r--r--examples/pdfwidgets/pdfviewer/rc_resources.py3468
-rw-r--r--examples/pdfwidgets/pdfviewer/resources.qrc11
-rw-r--r--examples/pdfwidgets/pdfviewer/ui_mainwindow.py259
-rw-r--r--examples/pdfwidgets/pdfviewer/zoomselector.py59
-rw-r--r--examples/qml/editingmodel/MovingRectangle.qml78
-rw-r--r--examples/qml/editingmodel/doc/editingmodel.rst16
-rw-r--r--examples/qml/editingmodel/doc/qabstractlistmodelqml.png (renamed from examples/declarative/editingmodel/doc/qabstractlistmodelqml.png)bin45810 -> 45810 bytes
-rw-r--r--examples/qml/editingmodel/main.py21
-rw-r--r--examples/qml/editingmodel/main.pyproject (renamed from examples/declarative/editingmodel/main.pyproject)0
-rw-r--r--examples/qml/editingmodel/main.qml106
-rw-r--r--examples/qml/editingmodel/model.py156
-rw-r--r--examples/qml/signals/pytoqml1/main.py31
-rw-r--r--examples/qml/signals/pytoqml1/pytoqml1.pyproject (renamed from examples/declarative/signals/pytoqml1/pytoqml1.pyproject)0
-rw-r--r--examples/qml/signals/pytoqml1/view.qml36
-rw-r--r--examples/qml/signals/pytoqml2/main.py54
-rw-r--r--examples/qml/signals/pytoqml2/pytoqml2.pyproject (renamed from examples/declarative/signals/pytoqml2/pytoqml2.pyproject)0
-rw-r--r--examples/qml/signals/pytoqml2/view.qml30
-rw-r--r--examples/qml/signals/qmltopy1/main.py50
-rw-r--r--examples/qml/signals/qmltopy1/qmltopy1.pyproject (renamed from examples/declarative/signals/qmltopy1/qmltopy1.pyproject)0
-rw-r--r--examples/qml/signals/qmltopy1/view.qml54
-rw-r--r--examples/qml/signals/qmltopy2/main.py45
-rw-r--r--examples/qml/signals/qmltopy2/qmltopy2.pyproject (renamed from examples/declarative/signals/qmltopy2/qmltopy2.pyproject)0
-rw-r--r--examples/qml/signals/qmltopy2/view.qml49
-rw-r--r--examples/qml/signals/qmltopy3/main.py33
-rw-r--r--examples/qml/signals/qmltopy3/qmltopy3.pyproject (renamed from examples/declarative/signals/qmltopy3/qmltopy3.pyproject)0
-rw-r--r--examples/qml/signals/qmltopy3/view.qml66
-rw-r--r--examples/qml/signals/qmltopy4/main.py33
-rw-r--r--examples/qml/signals/qmltopy4/qmltopy4.pyproject (renamed from examples/declarative/signals/qmltopy4/qmltopy4.pyproject)0
-rw-r--r--examples/qml/signals/qmltopy4/view.qml31
-rw-r--r--examples/qml/textproperties/doc/textproperties.png (renamed from examples/declarative/textproperties/doc/textproperties.png)bin14082 -> 14082 bytes
-rw-r--r--examples/qml/textproperties/doc/textproperties.rst (renamed from examples/declarative/textproperties/doc/textproperties.rst)0
-rw-r--r--examples/qml/textproperties/main.py76
-rw-r--r--examples/qml/textproperties/textproperties.pyproject (renamed from examples/declarative/textproperties/textproperties.pyproject)0
-rw-r--r--examples/qml/textproperties/view.qml160
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/adding/People/Main.qml9
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/adding/People/qmldir3
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/adding/adding.pyproject4
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/adding/doc/adding.rst67
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/adding/main.py30
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/adding/person.py34
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/People/Main.qml16
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/People/qmldir3
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/advanced1-Base-project.pyproject4
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/birthdayparty.py46
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/doc/advanced1-Base-project.rst57
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/main.py33
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/person.py41
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/People/Main.qml16
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/People/qmldir3
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/advanced2-Inheritance-and-coercion.pyproject4
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/birthdayparty.py46
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/doc/advanced2-Inheritance-and-coercion.rst62
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/main.py38
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/person.py52
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/People/Main.qml15
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/People/qmldir3
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/advanced3-Default-properties.pyproject4
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/birthdayparty.py47
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/doc/advanced3-Default-properties.rst40
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/main.py38
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/person.py51
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/People/Main.qml33
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/People/qmldir3
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/advanced4-Grouped-properties.pyproject4
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/birthdayparty.py47
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/doc/advanced4-Grouped-properties.rst39
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/main.py46
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/person.py102
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/People/Main.qml22
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/People/qmldir3
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/advanced5-Attached-properties.pyproject4
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/birthdayparty.py71
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/doc/advanced5-Attached-properties.rst51
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/main.py48
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/person.py51
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/People/Main.qml27
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/People/qmldir3
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/advanced6-Property-value-source.pyproject4
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/birthdayparty.py89
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/doc/advanced6-Property-value-source.rst43
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/happybirthdaysong.py49
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/main.py53
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/person.py51
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/binding/People/Main.qml29
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/binding/People/qmldir3
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/binding/binding.pyproject4
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/binding/birthdayparty.py83
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/binding/doc/binding.rst17
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/binding/happybirthdaysong.py47
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/binding/main.py52
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/binding/person.py53
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/extended/doc/extended.rst41
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/extended/example.qml8
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/extended/extended.pyproject3
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/extended/main.py95
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/methods/People/Main.qml19
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/methods/People/qmldir3
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/methods/birthdayparty.py47
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/methods/doc/methods.rst15
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/methods/main.py32
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/methods/methods.pyproject4
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/methods/person.py34
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/properties/People/Main.qml16
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/properties/People/qmldir3
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/properties/birthdayparty.py41
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/properties/doc/properties.rst89
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/properties/main.py34
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/properties/person.py34
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/properties/properties.pyproject4
-rw-r--r--examples/qml/tutorials/extending-qml/chapter1-basics/app.qml26
-rw-r--r--examples/qml/tutorials/extending-qml/chapter1-basics/basics.py68
-rw-r--r--examples/qml/tutorials/extending-qml/chapter1-basics/chapter1-basics.pyproject (renamed from examples/declarative/extending/chapter1-basics/chapter1-basics.pyproject)0
-rw-r--r--examples/qml/tutorials/extending-qml/chapter1-basics/doc/chapter1-basics.rst107
-rw-r--r--examples/qml/tutorials/extending-qml/chapter2-methods/app.qml32
-rw-r--r--examples/qml/tutorials/extending-qml/chapter2-methods/chapter2-methods.pyproject (renamed from examples/declarative/extending/chapter2-methods/chapter2-methods.pyproject)0
-rw-r--r--examples/qml/tutorials/extending-qml/chapter2-methods/doc/chapter2-methods.rst36
-rw-r--r--examples/qml/tutorials/extending-qml/chapter2-methods/methods.py75
-rw-r--r--examples/qml/tutorials/extending-qml/chapter3-bindings/app.qml40
-rw-r--r--examples/qml/tutorials/extending-qml/chapter3-bindings/bindings.py79
-rw-r--r--examples/qml/tutorials/extending-qml/chapter3-bindings/chapter3-bindings.pyproject (renamed from examples/declarative/extending/chapter3-bindings/chapter3-bindings.pyproject)0
-rw-r--r--examples/qml/tutorials/extending-qml/chapter3-bindings/doc/chapter3-bindings.rst54
-rw-r--r--examples/qml/tutorials/extending-qml/chapter4-customPropertyTypes/app.qml22
-rw-r--r--examples/qml/tutorials/extending-qml/chapter4-customPropertyTypes/chapter4-customPropertyTypes.pyproject (renamed from examples/declarative/extending/chapter4-customPropertyTypes/chapter4-customPropertyTypes.pyproject)0
-rw-r--r--examples/qml/tutorials/extending-qml/chapter4-customPropertyTypes/customPropertyTypes.py83
-rw-r--r--examples/qml/tutorials/extending-qml/chapter4-customPropertyTypes/doc/chapter4-customPropertyTypes.rst73
-rw-r--r--examples/qml/tutorials/extending-qml/chapter5-listproperties/app.qml32
-rw-r--r--examples/qml/tutorials/extending-qml/chapter5-listproperties/chapter5-listproperties.pyproject (renamed from examples/declarative/extending/chapter5-listproperties/chapter5-listproperties.pyproject)0
-rw-r--r--examples/qml/tutorials/extending-qml/chapter5-listproperties/doc/chapter5-listproperties.rst47
-rw-r--r--examples/qml/tutorials/extending-qml/chapter5-listproperties/listproperties.py97
-rw-r--r--examples/qml/tutorials/extending-qml/chapter6-plugins/Charts/piechart.py41
-rw-r--r--examples/qml/tutorials/extending-qml/chapter6-plugins/Charts/pieslice.py53
-rw-r--r--examples/qml/tutorials/extending-qml/chapter6-plugins/Charts/plugins.pngbin0 -> 5014 bytes
-rw-r--r--examples/qml/tutorials/extending-qml/chapter6-plugins/app.qml32
-rw-r--r--examples/qml/tutorials/extending-qml/chapter6-plugins/chapter6-plugins.pyproject3
-rw-r--r--examples/qml/tutorials/extending-qml/chapter6-plugins/doc/chapter6-plugins.rst26
-rw-r--r--examples/qml/tutorials/extending-qml/chapter6-plugins/doc/plugins.pngbin0 -> 5014 bytes
-rw-r--r--examples/qml/usingmodel/doc/usingmodel.png (renamed from examples/declarative/usingmodel/doc/usingmodel.png)bin2791 -> 2791 bytes
-rw-r--r--examples/qml/usingmodel/doc/usingmodel.rst11
-rw-r--r--examples/qml/usingmodel/usingmodel.py74
-rw-r--r--examples/qml/usingmodel/usingmodel.pyproject (renamed from examples/declarative/usingmodel/usingmodel.pyproject)0
-rw-r--r--examples/qml/usingmodel/view.qml21
-rw-r--r--examples/quick/models/objectlistmodel/doc/objectlistmodel.png (renamed from examples/declarative/objectlistmodel/doc/objectlistmodel.png)bin1327 -> 1327 bytes
-rw-r--r--examples/quick/models/objectlistmodel/doc/objectlistmodel.rst14
-rw-r--r--examples/quick/models/objectlistmodel/objectlistmodel.py61
-rw-r--r--examples/quick/models/objectlistmodel/objectlistmodel.pyproject (renamed from examples/declarative/objectlistmodel/objectlistmodel.pyproject)0
-rw-r--r--examples/quick/models/objectlistmodel/view.qml15
-rw-r--r--examples/quick/models/stringlistmodel/doc/stringlistmodel.png (renamed from examples/declarative/stringlistmodel/doc/stringlistmodel.png)bin1978 -> 1978 bytes
-rw-r--r--examples/quick/models/stringlistmodel/doc/stringlistmodel.rst11
-rw-r--r--examples/quick/models/stringlistmodel/stringlistmodel.py26
-rw-r--r--examples/quick/models/stringlistmodel/stringlistmodel.pyproject (renamed from examples/declarative/stringlistmodel/stringlistmodel.pyproject)0
-rw-r--r--examples/quick/models/stringlistmodel/view.qml17
-rw-r--r--examples/quick/painteditem/doc/painteditem.rst2
-rw-r--r--examples/quick/painteditem/main.qml41
-rw-r--r--examples/quick/painteditem/painteditem.py57
-rw-r--r--examples/quick/rendercontrol/rendercontrol_opengl/cuberenderer.py183
-rw-r--r--examples/quick/rendercontrol/rendercontrol_opengl/demo.qml161
-rw-r--r--examples/quick/rendercontrol/rendercontrol_opengl/doc/rendercontrol_opengl.rst5
-rw-r--r--examples/quick/rendercontrol/rendercontrol_opengl/main.py20
-rw-r--r--examples/quick/rendercontrol/rendercontrol_opengl/rendercontrol_opengl.pyproject6
-rw-r--r--examples/quick/rendercontrol/rendercontrol_opengl/window_singlethreaded.py272
-rw-r--r--examples/quick/scenegraph/openglunderqml/doc/openglunderqml.rst (renamed from examples/declarative/openglunderqml/doc/openglunderqml.rst)0
-rw-r--r--examples/quick/scenegraph/openglunderqml/doc/squircle.png (renamed from examples/declarative/openglunderqml/doc/squircle.png)bin37963 -> 37963 bytes
-rw-r--r--examples/quick/scenegraph/openglunderqml/main.py27
-rw-r--r--examples/quick/scenegraph/openglunderqml/main.qml39
-rw-r--r--examples/quick/scenegraph/openglunderqml/openglunderqml.pyproject (renamed from examples/declarative/openglunderqml/openglunderqml.pyproject)0
-rw-r--r--examples/quick/scenegraph/openglunderqml/squircle.py79
-rw-r--r--examples/quick/scenegraph/openglunderqml/squirclerenderer.py98
-rw-r--r--examples/quick/scenegraph/scenegraph_customgeometry/doc/scenegraph_customgeometry.rst7
-rw-r--r--examples/quick/scenegraph/scenegraph_customgeometry/main.py152
-rw-r--r--examples/quick/scenegraph/scenegraph_customgeometry/main.qml34
-rw-r--r--examples/quick/scenegraph/scenegraph_customgeometry/scenegraph_customgeometry.pyproject3
-rw-r--r--examples/quick/shared/Button.qml50
-rw-r--r--examples/quick/shared/CheckBox.qml59
-rw-r--r--examples/quick/shared/FlickrRssModel.qml45
-rw-r--r--examples/quick/shared/Images.qml14
-rw-r--r--examples/quick/shared/Label.qml9
-rw-r--r--examples/quick/shared/LauncherList.qml205
-rw-r--r--examples/quick/shared/README11
-rw-r--r--examples/quick/shared/SimpleLauncherDelegate.qml96
-rw-r--r--examples/quick/shared/Slider.qml82
-rw-r--r--examples/quick/shared/TabSet.qml69
-rw-r--r--examples/quick/shared/TextField.qml43
-rw-r--r--examples/quick/shared/images/back.pngbin0 -> 1590 bytes
-rw-r--r--examples/quick/shared/images/checkmark.pngbin0 -> 809 bytes
-rw-r--r--examples/quick/shared/images/next.pngbin0 -> 1371 bytes
-rw-r--r--examples/quick/shared/images/qt-logo.pngbin0 -> 13596 bytes
-rw-r--r--examples/quick/shared/images/slider_handle.pngbin0 -> 887 bytes
-rw-r--r--examples/quick/shared/images/tab.pngbin0 -> 309 bytes
-rw-r--r--examples/quick/shared/qmldir11
-rw-r--r--examples/quick/shared/quick_shared.qrc15
-rw-r--r--examples/quick/shared/shared.qrc21
-rw-r--r--examples/quick/shared/shared_rc.py2253
-rw-r--r--examples/quick/window/AllScreens.qml42
-rw-r--r--examples/quick/window/CurrentScreen.qml83
-rw-r--r--examples/quick/window/Splash.qml42
-rw-r--r--examples/quick/window/doc/window.pngbin0 -> 9863 bytes
-rw-r--r--examples/quick/window/doc/window.rst35
-rw-r--r--examples/quick/window/main.py40
-rw-r--r--examples/quick/window/rc_window.py335
-rw-r--r--examples/quick/window/resources/icon.icnsbin0 -> 59662 bytes
-rw-r--r--examples/quick/window/resources/icon.icobin0 -> 11825 bytes
-rw-r--r--examples/quick/window/resources/icon.svg208
-rw-r--r--examples/quick/window/resources/icon64.pngbin0 -> 3004 bytes
-rw-r--r--examples/quick/window/window.pyproject3
-rw-r--r--examples/quick/window/window.qml151
-rw-r--r--examples/quick/window/window.qrc8
-rw-r--r--examples/quick3d/customgeometry/customgeometry.pyproject3
-rw-r--r--examples/quick3d/customgeometry/doc/customgeometry-example.jpgbin0 -> 51016 bytes
-rw-r--r--examples/quick3d/customgeometry/doc/customgeometry.rst17
-rw-r--r--examples/quick3d/customgeometry/examplepoint.py51
-rw-r--r--examples/quick3d/customgeometry/exampletriangle.py188
-rw-r--r--examples/quick3d/customgeometry/main.py29
-rw-r--r--examples/quick3d/customgeometry/main.qml240
-rw-r--r--examples/quick3d/customgeometry/qt_logo_rect.pngbin0 -> 6319 bytes
-rw-r--r--examples/quick3d/customgeometry/resources.qrc6
-rw-r--r--examples/quick3d/customgeometry/resources_rc.py585
-rw-r--r--examples/quick3d/intro/doc/intro.pngbin0 -> 13781 bytes
-rw-r--r--examples/quick3d/intro/doc/intro.rst9
-rw-r--r--examples/quick3d/intro/intro.pyproject3
-rw-r--r--examples/quick3d/intro/main.py24
-rw-r--r--examples/quick3d/intro/main.qml80
-rw-r--r--examples/quick3d/proceduraltexture/ProceduralTextureModule/Main.qml188
-rw-r--r--examples/quick3d/proceduraltexture/ProceduralTextureModule/app.qrc6
-rw-r--r--examples/quick3d/proceduraltexture/ProceduralTextureModule/qmldir2
-rw-r--r--examples/quick3d/proceduraltexture/doc/proceduraltexture-example.webpbin0 -> 5166 bytes
-rw-r--r--examples/quick3d/proceduraltexture/doc/proceduraltexture.rst12
-rw-r--r--examples/quick3d/proceduraltexture/gradienttexture.py105
-rw-r--r--examples/quick3d/proceduraltexture/main.py30
-rw-r--r--examples/quick3d/proceduraltexture/proceduraltexture.pyproject9
-rw-r--r--examples/quickcontrols/contactslist/Contact/ContactDelegate.ui.qml82
-rw-r--r--examples/quickcontrols/contactslist/Contact/ContactDialog.qml45
-rw-r--r--examples/quickcontrols/contactslist/Contact/ContactForm.ui.qml72
-rw-r--r--examples/quickcontrols/contactslist/Contact/ContactList.qml70
-rw-r--r--examples/quickcontrols/contactslist/Contact/ContactView.ui.qml36
-rw-r--r--examples/quickcontrols/contactslist/Contact/SectionDelegate.ui.qml17
-rw-r--r--examples/quickcontrols/contactslist/Contact/qmldir7
-rw-r--r--examples/quickcontrols/contactslist/contactlist.pyproject10
-rw-r--r--examples/quickcontrols/contactslist/contactmodel.py116
-rw-r--r--examples/quickcontrols/contactslist/doc/contactslist.rst15
-rw-r--r--examples/quickcontrols/contactslist/doc/qtquickcontrols-contactlist.pngbin0 -> 23581 bytes
-rw-r--r--examples/quickcontrols/contactslist/main.py28
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/Main.qml185
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/app.qrc15
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/icons.qrc14
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/app_icon.svg2
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/folder_closed.svg38
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/folder_open.svg38
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/generic_file.svg38
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/globe.svg38
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/info_sign.svg38
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/light_bulb.svg43
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/qt_logo.svg26
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/read.svg38
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/resize.svg6
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/About.qml93
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/Colors.qml23
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/Editor.qml160
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/FileSystemView.qml156
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/MyMenu.qml45
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/MyMenuBar.qml177
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/ResizeButton.qml23
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/Sidebar.qml138
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/WindowDragHandler.qml16
-rw-r--r--examples/quickcontrols/filesystemexplorer/FileSystemModule/qmldir11
-rw-r--r--examples/quickcontrols/filesystemexplorer/doc/filesystemexplorer.rst52
-rw-r--r--examples/quickcontrols/filesystemexplorer/doc/filesystemexplorer.webpbin0 -> 47416 bytes
-rw-r--r--examples/quickcontrols/filesystemexplorer/editormodels.py116
-rw-r--r--examples/quickcontrols/filesystemexplorer/filesystemexplorer.pyproject29
-rw-r--r--examples/quickcontrols/filesystemexplorer/main.py48
-rw-r--r--examples/quickcontrols/gallery/+Material/ToolBar.qml8
-rw-r--r--examples/quickcontrols/gallery/ToolBar.qml6
-rw-r--r--examples/quickcontrols/gallery/doc/gallery.png (renamed from examples/quickcontrols2/gallery/doc/gallery.png)bin23828 -> 23828 bytes
-rw-r--r--examples/quickcontrols/gallery/doc/gallery.rst9
-rw-r--r--examples/quickcontrols/gallery/doc/images/qtquickcontrols2-gallery-drawer.png (renamed from examples/quickcontrols2/gallery/doc/images/qtquickcontrols2-gallery-drawer.png)bin15428 -> 15428 bytes
-rw-r--r--examples/quickcontrols/gallery/doc/images/qtquickcontrols2-gallery-menu.png (renamed from examples/quickcontrols2/gallery/doc/images/qtquickcontrols2-gallery-menu.png)bin15953 -> 15953 bytes
-rw-r--r--examples/quickcontrols/gallery/doc/images/qtquickcontrols2-gallery-welcome.png (renamed from examples/quickcontrols2/gallery/doc/images/qtquickcontrols2-gallery-welcome.png)bin18513 -> 18513 bytes
-rw-r--r--examples/quickcontrols/gallery/gallery.py52
-rw-r--r--examples/quickcontrols/gallery/gallery.pyproject36
-rw-r--r--examples/quickcontrols/gallery/gallery.qml318
-rw-r--r--examples/quickcontrols/gallery/gallery.qrc (renamed from examples/quickcontrols2/gallery/gallery.qrc)0
-rw-r--r--examples/quickcontrols/gallery/icons/gallery/20x20/back.png (renamed from examples/quickcontrols2/gallery/icons/gallery/20x20/back.png)bin146 -> 146 bytes
-rw-r--r--examples/quickcontrols/gallery/icons/gallery/20x20/drawer.png (renamed from examples/quickcontrols2/gallery/icons/gallery/20x20/drawer.png)bin123 -> 123 bytes
-rw-r--r--examples/quickcontrols/gallery/icons/gallery/20x20/menu.png (renamed from examples/quickcontrols2/gallery/icons/gallery/20x20/menu.png)bin123 -> 123 bytes
-rw-r--r--examples/quickcontrols/gallery/icons/gallery/20x20@2/back.png (renamed from examples/quickcontrols2/gallery/icons/gallery/20x20@2/back.png)bin184 -> 184 bytes
-rw-r--r--examples/quickcontrols/gallery/icons/gallery/20x20@2/drawer.png (renamed from examples/quickcontrols2/gallery/icons/gallery/20x20@2/drawer.png)bin126 -> 126 bytes
-rw-r--r--examples/quickcontrols/gallery/icons/gallery/20x20@2/menu.png (renamed from examples/quickcontrols2/gallery/icons/gallery/20x20@2/menu.png)bin158 -> 158 bytes
-rw-r--r--examples/quickcontrols/gallery/icons/gallery/20x20@3/back.png (renamed from examples/quickcontrols2/gallery/icons/gallery/20x20@3/back.png)bin227 -> 227 bytes
-rw-r--r--examples/quickcontrols/gallery/icons/gallery/20x20@3/drawer.png (renamed from examples/quickcontrols2/gallery/icons/gallery/20x20@3/drawer.png)bin130 -> 130 bytes
-rw-r--r--examples/quickcontrols/gallery/icons/gallery/20x20@3/menu.png (renamed from examples/quickcontrols2/gallery/icons/gallery/20x20@3/menu.png)bin193 -> 193 bytes
-rw-r--r--examples/quickcontrols/gallery/icons/gallery/20x20@4/back.png (renamed from examples/quickcontrols2/gallery/icons/gallery/20x20@4/back.png)bin246 -> 246 bytes
-rw-r--r--examples/quickcontrols/gallery/icons/gallery/20x20@4/drawer.png (renamed from examples/quickcontrols2/gallery/icons/gallery/20x20@4/drawer.png)bin131 -> 131 bytes
-rw-r--r--examples/quickcontrols/gallery/icons/gallery/20x20@4/menu.png (renamed from examples/quickcontrols2/gallery/icons/gallery/20x20@4/menu.png)bin223 -> 223 bytes
-rw-r--r--examples/quickcontrols/gallery/icons/gallery/index.theme (renamed from examples/quickcontrols2/gallery/icons/gallery/index.theme)0
-rw-r--r--examples/quickcontrols/gallery/images/arrow.png (renamed from examples/quickcontrols2/gallery/images/arrow.png)bin319 -> 319 bytes
-rw-r--r--examples/quickcontrols/gallery/images/arrow@2x.png (renamed from examples/quickcontrols2/gallery/images/arrow@2x.png)bin476 -> 476 bytes
-rw-r--r--examples/quickcontrols/gallery/images/arrow@3x.png (renamed from examples/quickcontrols2/gallery/images/arrow@3x.png)bin611 -> 611 bytes
-rw-r--r--examples/quickcontrols/gallery/images/arrow@4x.png (renamed from examples/quickcontrols2/gallery/images/arrow@4x.png)bin758 -> 758 bytes
-rw-r--r--examples/quickcontrols/gallery/images/arrows.png (renamed from examples/quickcontrols2/gallery/images/arrows.png)bin458 -> 458 bytes
-rw-r--r--examples/quickcontrols/gallery/images/arrows@2x.png (renamed from examples/quickcontrols2/gallery/images/arrows@2x.png)bin699 -> 699 bytes
-rw-r--r--examples/quickcontrols/gallery/images/arrows@3x.png (renamed from examples/quickcontrols2/gallery/images/arrows@3x.png)bin942 -> 942 bytes
-rw-r--r--examples/quickcontrols/gallery/images/arrows@4x.png (renamed from examples/quickcontrols2/gallery/images/arrows@4x.png)bin1211 -> 1211 bytes
-rw-r--r--examples/quickcontrols/gallery/images/qt-logo.pngbin0 -> 2849 bytes
-rw-r--r--examples/quickcontrols/gallery/images/qt-logo@2x.pngbin0 -> 4936 bytes
-rw-r--r--examples/quickcontrols/gallery/images/qt-logo@3x.pngbin0 -> 7254 bytes
-rw-r--r--examples/quickcontrols/gallery/images/qt-logo@4x.pngbin0 -> 9505 bytes
-rw-r--r--examples/quickcontrols/gallery/pages/BusyIndicatorPage.qml28
-rw-r--r--examples/quickcontrols/gallery/pages/ButtonPage.qml44
-rw-r--r--examples/quickcontrols/gallery/pages/CheckBoxPage.qml40
-rw-r--r--examples/quickcontrols/gallery/pages/ComboBoxPage.qml51
-rw-r--r--examples/quickcontrols/gallery/pages/DelayButtonPage.qml27
-rw-r--r--examples/quickcontrols/gallery/pages/DelegatePage.qml201
-rw-r--r--examples/quickcontrols/gallery/pages/DialPage.qml27
-rw-r--r--examples/quickcontrols/gallery/pages/DialogPage.qml179
-rw-r--r--examples/quickcontrols/gallery/pages/FramePage.qml47
-rw-r--r--examples/quickcontrols/gallery/pages/GroupBoxPage.qml48
-rw-r--r--examples/quickcontrols/gallery/pages/PageIndicatorPage.qml27
-rw-r--r--examples/quickcontrols/gallery/pages/ProgressBarPage.qml33
-rw-r--r--examples/quickcontrols/gallery/pages/RadioButtonPage.qml39
-rw-r--r--examples/quickcontrols/gallery/pages/RangeSliderPage.qml35
-rw-r--r--examples/quickcontrols/gallery/pages/ScrollBarPage.qml40
-rw-r--r--examples/quickcontrols/gallery/pages/ScrollIndicatorPage.qml40
-rw-r--r--examples/quickcontrols/gallery/pages/ScrollablePage.qml24
-rw-r--r--examples/quickcontrols/gallery/pages/SliderPage.qml33
-rw-r--r--examples/quickcontrols/gallery/pages/SpinBoxPage.qml29
-rw-r--r--examples/quickcontrols/gallery/pages/StackViewPage.qml58
-rw-r--r--examples/quickcontrols/gallery/pages/SwipeViewPage.qml49
-rw-r--r--examples/quickcontrols/gallery/pages/SwitchPage.qml39
-rw-r--r--examples/quickcontrols/gallery/pages/TabBarPage.qml57
-rw-r--r--examples/quickcontrols/gallery/pages/TextAreaPage.qml29
-rw-r--r--examples/quickcontrols/gallery/pages/TextFieldPage.qml27
-rw-r--r--examples/quickcontrols/gallery/pages/ToolTipPage.qml30
-rw-r--r--examples/quickcontrols/gallery/pages/TumblerPage.qml26
-rw-r--r--examples/quickcontrols/gallery/qmldir (renamed from examples/quickcontrols2/gallery/qmldir)0
-rw-r--r--examples/quickcontrols/gallery/qtquickcontrols2.conf (renamed from examples/quickcontrols2/gallery/qtquickcontrols2.conf)0
-rw-r--r--examples/quickcontrols/gallery/rc_gallery.py4410
-rw-r--r--examples/quickcontrols2/gallery/+Material/ToolBar.qml55
-rw-r--r--examples/quickcontrols2/gallery/ToolBar.qml53
-rw-r--r--examples/quickcontrols2/gallery/doc/gallery.rst7
-rw-r--r--examples/quickcontrols2/gallery/gallery.py99
-rw-r--r--examples/quickcontrols2/gallery/gallery.pyproject37
-rw-r--r--examples/quickcontrols2/gallery/gallery.qml342
-rw-r--r--examples/quickcontrols2/gallery/images/qt-logo.pngbin1301 -> 0 bytes
-rw-r--r--examples/quickcontrols2/gallery/images/qt-logo@2x.pngbin2611 -> 0 bytes
-rw-r--r--examples/quickcontrols2/gallery/images/qt-logo@3x.pngbin4155 -> 0 bytes
-rw-r--r--examples/quickcontrols2/gallery/images/qt-logo@4x.pngbin5916 -> 0 bytes
-rw-r--r--examples/quickcontrols2/gallery/pages/BusyIndicatorPage.qml73
-rw-r--r--examples/quickcontrols2/gallery/pages/ButtonPage.qml91
-rw-r--r--examples/quickcontrols2/gallery/pages/CheckBoxPage.qml87
-rw-r--r--examples/quickcontrols2/gallery/pages/ComboBoxPage.qml97
-rw-r--r--examples/quickcontrols2/gallery/pages/DelayButtonPage.qml74
-rw-r--r--examples/quickcontrols2/gallery/pages/DelegatePage.qml217
-rw-r--r--examples/quickcontrols2/gallery/pages/DialPage.qml74
-rw-r--r--examples/quickcontrols2/gallery/pages/DialogPage.qml226
-rw-r--r--examples/quickcontrols2/gallery/pages/FramePage.qml94
-rw-r--r--examples/quickcontrols2/gallery/pages/GroupBoxPage.qml95
-rw-r--r--examples/quickcontrols2/gallery/pages/PageIndicatorPage.qml74
-rw-r--r--examples/quickcontrols2/gallery/pages/ProgressBarPage.qml80
-rw-r--r--examples/quickcontrols2/gallery/pages/RadioButtonPage.qml86
-rw-r--r--examples/quickcontrols2/gallery/pages/RangeSliderPage.qml82
-rw-r--r--examples/quickcontrols2/gallery/pages/ScrollBarPage.qml87
-rw-r--r--examples/quickcontrols2/gallery/pages/ScrollIndicatorPage.qml87
-rw-r--r--examples/quickcontrols2/gallery/pages/ScrollablePage.qml71
-rw-r--r--examples/quickcontrols2/gallery/pages/SliderPage.qml80
-rw-r--r--examples/quickcontrols2/gallery/pages/SpinBoxPage.qml76
-rw-r--r--examples/quickcontrols2/gallery/pages/StackViewPage.qml96
-rw-r--r--examples/quickcontrols2/gallery/pages/SwipeViewPage.qml96
-rw-r--r--examples/quickcontrols2/gallery/pages/SwitchPage.qml86
-rw-r--r--examples/quickcontrols2/gallery/pages/TabBarPage.qml104
-rw-r--r--examples/quickcontrols2/gallery/pages/TextAreaPage.qml76
-rw-r--r--examples/quickcontrols2/gallery/pages/TextFieldPage.qml74
-rw-r--r--examples/quickcontrols2/gallery/pages/ToolTipPage.qml77
-rw-r--r--examples/quickcontrols2/gallery/pages/TumblerPage.qml73
-rw-r--r--examples/quickcontrols2/gallery/rc_gallery.py7855
-rw-r--r--examples/remoteobjects/modelview/modelviewclient.py43
-rw-r--r--examples/remoteobjects/modelview/modelviewserver.py43
-rw-r--r--examples/samplebinding/CMakeLists.txt35
-rw-r--r--examples/samplebinding/README.md245
-rw-r--r--examples/samplebinding/bindings.h51
-rw-r--r--examples/samplebinding/bindings.xml54
-rw-r--r--examples/samplebinding/doc/bindings.h.rstinc2
-rw-r--r--examples/samplebinding/doc/bindings.xml.rstinc31
-rw-r--r--examples/samplebinding/doc/samplebinding.pyproject11
-rw-r--r--examples/samplebinding/doc/samplebinding.rst288
-rw-r--r--examples/samplebinding/icecream.cpp63
-rw-r--r--examples/samplebinding/icecream.h61
-rw-r--r--examples/samplebinding/macros.h51
-rw-r--r--examples/samplebinding/main.py42
-rw-r--r--examples/samplebinding/truck.cpp88
-rw-r--r--examples/samplebinding/truck.h70
-rw-r--r--examples/scriptableapplication/CMakeLists.txt38
-rw-r--r--examples/scriptableapplication/README.md165
-rw-r--r--examples/scriptableapplication/doc/scriptableapplication.pyproject9
-rw-r--r--examples/scriptableapplication/doc/scriptableapplication.rst195
-rw-r--r--examples/scriptableapplication/main.cpp51
-rw-r--r--examples/scriptableapplication/mainwindow.cpp112
-rw-r--r--examples/scriptableapplication/mainwindow.h57
-rw-r--r--examples/scriptableapplication/pythonutils.cpp61
-rw-r--r--examples/scriptableapplication/pythonutils.h55
-rw-r--r--examples/scriptableapplication/scriptableapplication.xml51
-rw-r--r--examples/scriptableapplication/wrappedclasses.h51
-rw-r--r--examples/serialbus/can/bitratebox.py55
-rw-r--r--examples/serialbus/can/can.pyproject10
-rw-r--r--examples/serialbus/can/can.qrc8
-rw-r--r--examples/serialbus/can/canbusdeviceinfobox.py49
-rw-r--r--examples/serialbus/can/canbusdeviceinfobox.ui86
-rw-r--r--examples/serialbus/can/canbusdeviceinfodialog.py16
-rw-r--r--examples/serialbus/can/canbusdeviceinfodialog.ui66
-rw-r--r--examples/serialbus/can/connectdialog.py235
-rw-r--r--examples/serialbus/can/connectdialog.ui278
-rw-r--r--examples/serialbus/can/doc/can.rst6
-rw-r--r--examples/serialbus/can/images/application-exit.pngbin0 -> 11200 bytes
-rw-r--r--examples/serialbus/can/images/clear.pngbin0 -> 12543 bytes
-rw-r--r--examples/serialbus/can/images/connect.pngbin0 -> 15374 bytes
-rw-r--r--examples/serialbus/can/images/disconnect.pngbin0 -> 15092 bytes
-rw-r--r--examples/serialbus/can/main.py18
-rw-r--r--examples/serialbus/can/mainwindow.py238
-rw-r--r--examples/serialbus/can/mainwindow.ui207
-rw-r--r--examples/serialbus/can/rc_can.py3453
-rw-r--r--examples/serialbus/can/receivedframesmodel.py142
-rw-r--r--examples/serialbus/can/receivedframesview.py54
-rw-r--r--examples/serialbus/can/sendframebox.py195
-rw-r--r--examples/serialbus/can/sendframebox.ui211
-rw-r--r--examples/serialbus/can/ui_canbusdeviceinfobox.py88
-rw-r--r--examples/serialbus/can/ui_canbusdeviceinfodialog.py64
-rw-r--r--examples/serialbus/can/ui_connectdialog.py252
-rw-r--r--examples/serialbus/can/ui_mainwindow.py172
-rw-r--r--examples/serialbus/can/ui_sendframebox.py188
-rw-r--r--examples/serialbus/modbus/modbusclient/doc/modbusclient.rst9
-rw-r--r--examples/serialbus/modbus/modbusclient/images/application-exit.pngbin0 -> 11200 bytes
-rw-r--r--examples/serialbus/modbus/modbusclient/images/connect.pngbin0 -> 15374 bytes
-rw-r--r--examples/serialbus/modbus/modbusclient/images/disconnect.pngbin0 -> 15092 bytes
-rw-r--r--examples/serialbus/modbus/modbusclient/images/settings.pngbin0 -> 16039 bytes
-rw-r--r--examples/serialbus/modbus/modbusclient/main.py26
-rw-r--r--examples/serialbus/modbus/modbusclient/mainwindow.py331
-rw-r--r--examples/serialbus/modbus/modbusclient/mainwindow.ui520
-rw-r--r--examples/serialbus/modbus/modbusclient/modbusclient.pyproject5
-rw-r--r--examples/serialbus/modbus/modbusclient/modbusclient.qrc8
-rw-r--r--examples/serialbus/modbus/modbusclient/rc_modbusclient.py3672
-rw-r--r--examples/serialbus/modbus/modbusclient/settingsdialog.py52
-rw-r--r--examples/serialbus/modbus/modbusclient/settingsdialog.ui237
-rw-r--r--examples/serialbus/modbus/modbusclient/ui_mainwindow.py377
-rw-r--r--examples/serialbus/modbus/modbusclient/ui_settingsdialog.py173
-rw-r--r--examples/serialbus/modbus/modbusclient/writeregistermodel.py118
-rw-r--r--examples/serialport/terminal/console.py49
-rw-r--r--examples/serialport/terminal/doc/terminal.rst9
-rw-r--r--examples/serialport/terminal/images/application-exit.pngbin0 -> 11200 bytes
-rw-r--r--examples/serialport/terminal/images/clear.pngbin0 -> 12543 bytes
-rw-r--r--examples/serialport/terminal/images/connect.pngbin0 -> 15374 bytes
-rw-r--r--examples/serialport/terminal/images/disconnect.pngbin0 -> 15092 bytes
-rw-r--r--examples/serialport/terminal/images/settings.pngbin0 -> 16039 bytes
-rw-r--r--examples/serialport/terminal/main.py17
-rw-r--r--examples/serialport/terminal/mainwindow.py108
-rw-r--r--examples/serialport/terminal/mainwindow.ui162
-rw-r--r--examples/serialport/terminal/rc_terminal.py4464
-rw-r--r--examples/serialport/terminal/settingsdialog.py180
-rw-r--r--examples/serialport/terminal/settingsdialog.ui177
-rw-r--r--examples/serialport/terminal/terminal.pyproject4
-rw-r--r--examples/serialport/terminal/terminal.qrc9
-rw-r--r--examples/serialport/terminal/ui_mainwindow.py149
-rw-r--r--examples/serialport/terminal/ui_settingsdialog.py181
-rw-r--r--examples/spatialaudio/audiopanning/audiopanning.pyproject3
-rw-r--r--examples/spatialaudio/audiopanning/doc/audiopanning.rst15
-rw-r--r--examples/spatialaudio/audiopanning/main.py193
-rw-r--r--examples/speech/hello_speak/doc/hello_speak.rst16
-rw-r--r--examples/speech/hello_speak/doc/hello_speak.webpbin0 -> 25432 bytes
-rw-r--r--examples/speech/hello_speak/hello_speak.pyproject5
-rw-r--r--examples/speech/hello_speak/main.py20
-rw-r--r--examples/speech/hello_speak/mainwindow.py134
-rw-r--r--examples/speech/hello_speak/mainwindow.ui267
-rw-r--r--examples/speech/hello_speak/ui_mainwindow.py211
-rw-r--r--examples/sql/books/bookdelegate.py56
-rw-r--r--examples/sql/books/books.qrc3
-rw-r--r--examples/sql/books/bookwindow.py57
-rw-r--r--examples/sql/books/createdb.py41
-rw-r--r--examples/sql/books/images/star-filled.svg1
-rw-r--r--examples/sql/books/images/star.pngbin782 -> 0 bytes
-rw-r--r--examples/sql/books/images/star.svg1
-rw-r--r--examples/sql/books/main.py43
-rw-r--r--examples/sql/books/rc_books.py142
-rw-r--r--examples/sql/books/ui_bookwindow.py22
-rw-r--r--examples/sql/relationaltablemodel/connection.py18
-rw-r--r--examples/sql/relationaltablemodel/relationaltablemodel.py77
-rw-r--r--examples/statemachine/moveblocks/doc/moveblocks.pngbin0 -> 4532 bytes
-rw-r--r--examples/statemachine/moveblocks/doc/moveblocks.rst10
-rw-r--r--examples/statemachine/moveblocks/moveblocks.py222
-rw-r--r--examples/statemachine/moveblocks/moveblocks.pyproject3
-rw-r--r--examples/statemachine/ping_pong/ping_pong.py70
-rw-r--r--examples/statemachine/ping_pong/ping_pong.pyproject3
-rw-r--r--examples/statemachine/rogue/rogue.py179
-rw-r--r--examples/statemachine/rogue/rogue.pyproject (renamed from examples/widgets/state-machine/rogue/rogue.pyproject)0
-rw-r--r--examples/statemachine/trafficlight/doc/trafficlight.pngbin0 -> 4786 bytes
-rw-r--r--examples/statemachine/trafficlight/doc/trafficlight.rst (renamed from examples/widgets/state-machine/trafficlight/doc/trafficlight.rst)0
-rw-r--r--examples/statemachine/trafficlight/trafficlight.py117
-rw-r--r--examples/statemachine/trafficlight/trafficlight.pyproject (renamed from examples/widgets/state-machine/trafficlight/trafficlight.pyproject)0
-rw-r--r--examples/texttospeech/hello_speak/hello_speak.py109
-rw-r--r--examples/texttospeech/hello_speak/hello_speak.pyproject3
-rw-r--r--examples/uitools/uiloader/uiloader.py45
-rw-r--r--examples/utils/pyside_config.py63
-rw-r--r--examples/webchannel/standalone/core.py43
-rw-r--r--examples/webchannel/standalone/dialog.py43
-rw-r--r--examples/webchannel/standalone/main.py43
-rw-r--r--examples/webchannel/standalone/ui_dialog.py19
-rw-r--r--examples/webchannel/standalone/websocketclientwrapper.py43
-rw-r--r--examples/webchannel/standalone/websockettransport.py43
-rw-r--r--examples/webenginequick/nanobrowser/ApplicationRoot.qml40
-rw-r--r--examples/webenginequick/nanobrowser/BrowserDialog.qml27
-rw-r--r--examples/webenginequick/nanobrowser/BrowserWindow.qml817
-rw-r--r--examples/webenginequick/nanobrowser/DownloadView.qml127
-rw-r--r--examples/webenginequick/nanobrowser/FindBar.qml95
-rw-r--r--examples/webenginequick/nanobrowser/FullScreenNotification.qml62
-rw-r--r--examples/webenginequick/nanobrowser/browser.qml53
-rw-r--r--examples/webenginequick/nanobrowser/icons/3rdparty/COPYING1
-rw-r--r--examples/webenginequick/nanobrowser/icons/3rdparty/go-next.pngbin0 -> 930 bytes
-rw-r--r--examples/webenginequick/nanobrowser/icons/3rdparty/go-previous.pngbin0 -> 955 bytes
-rw-r--r--examples/webenginequick/nanobrowser/icons/3rdparty/process-stop.pngbin0 -> 1272 bytes
-rw-r--r--examples/webenginequick/nanobrowser/icons/3rdparty/view-refresh.pngbin0 -> 1364 bytes
-rw-r--r--examples/webenginequick/nanobrowser/nanobrowser.pyproject5
-rw-r--r--examples/webenginequick/nanobrowser/quicknanobrowser.py109
-rw-r--r--examples/webenginequick/nanobrowser/rc_resources.py348
-rw-r--r--examples/webenginequick/nanobrowser/resources.qrc8
-rw-r--r--examples/webenginewidgets/markdowneditor/document.py41
-rw-r--r--examples/webenginewidgets/markdowneditor/main.py43
-rw-r--r--examples/webenginewidgets/markdowneditor/mainwindow.py50
-rw-r--r--examples/webenginewidgets/markdowneditor/markdowneditor.pyproject3
-rw-r--r--examples/webenginewidgets/markdowneditor/previewpage.py41
-rw-r--r--examples/webenginewidgets/markdowneditor/resources/default.md2
-rw-r--r--examples/webenginewidgets/markdowneditor/resources/index.html2
-rw-r--r--examples/webenginewidgets/markdowneditor/ui_mainwindow.py2
-rw-r--r--examples/webenginewidgets/notifications/doc/notifications.pngbin0 -> 21374 bytes
-rw-r--r--examples/webenginewidgets/notifications/doc/notifications.rst8
-rw-r--r--examples/webenginewidgets/notifications/main.py57
-rw-r--r--examples/webenginewidgets/notifications/notificationpopup.py68
-rw-r--r--examples/webenginewidgets/notifications/notifications.pyproject3
-rw-r--r--examples/webenginewidgets/notifications/resources/icon.pngbin0 -> 2252 bytes
-rw-r--r--examples/webenginewidgets/notifications/resources/index.html91
-rw-r--r--examples/webenginewidgets/simplebrowser/browser.py69
-rw-r--r--examples/webenginewidgets/simplebrowser/browserwindow.py500
-rw-r--r--examples/webenginewidgets/simplebrowser/certificateerrordialog.ui133
-rw-r--r--examples/webenginewidgets/simplebrowser/data/3rdparty/COPYING1
-rw-r--r--examples/webenginewidgets/simplebrowser/data/3rdparty/dialog-error.pngbin0 -> 1645 bytes
-rw-r--r--examples/webenginewidgets/simplebrowser/data/3rdparty/edit-clear.pngbin0 -> 1682 bytes
-rw-r--r--examples/webenginewidgets/simplebrowser/data/3rdparty/go-bottom.pngbin0 -> 1263 bytes
-rw-r--r--examples/webenginewidgets/simplebrowser/data/3rdparty/go-next.pngbin0 -> 1219 bytes
-rw-r--r--examples/webenginewidgets/simplebrowser/data/3rdparty/go-previous.pngbin0 -> 1200 bytes
-rw-r--r--examples/webenginewidgets/simplebrowser/data/3rdparty/process-stop.pngbin0 -> 1927 bytes
-rw-r--r--examples/webenginewidgets/simplebrowser/data/3rdparty/qt_attribution.json24
-rw-r--r--examples/webenginewidgets/simplebrowser/data/3rdparty/text-html.pngbin0 -> 1759 bytes
-rw-r--r--examples/webenginewidgets/simplebrowser/data/3rdparty/view-refresh.pngbin0 -> 2024 bytes
-rw-r--r--examples/webenginewidgets/simplebrowser/data/AppLogoColor.pngbin0 -> 6113 bytes
-rw-r--r--examples/webenginewidgets/simplebrowser/data/ninja.pngbin0 -> 1671 bytes
-rw-r--r--examples/webenginewidgets/simplebrowser/data/rc_simplebrowser.py1391
-rw-r--r--examples/webenginewidgets/simplebrowser/data/simplebrowser.qrc16
-rw-r--r--examples/webenginewidgets/simplebrowser/doc/simplebrowser.rst179
-rw-r--r--examples/webenginewidgets/simplebrowser/doc/simplebrowser.webpbin0 -> 67542 bytes
-rw-r--r--examples/webenginewidgets/simplebrowser/downloadmanagerwidget.py51
-rw-r--r--examples/webenginewidgets/simplebrowser/downloadmanagerwidget.ui104
-rw-r--r--examples/webenginewidgets/simplebrowser/downloadwidget.py109
-rw-r--r--examples/webenginewidgets/simplebrowser/downloadwidget.ui78
-rw-r--r--examples/webenginewidgets/simplebrowser/main.py45
-rw-r--r--examples/webenginewidgets/simplebrowser/passworddialog.ui121
-rw-r--r--examples/webenginewidgets/simplebrowser/simplebrowser.py104
-rw-r--r--examples/webenginewidgets/simplebrowser/simplebrowser.pyproject6
-rw-r--r--examples/webenginewidgets/simplebrowser/tabwidget.py241
-rw-r--r--examples/webenginewidgets/simplebrowser/ui_certificateerrordialog.py87
-rw-r--r--examples/webenginewidgets/simplebrowser/ui_downloadmanagerwidget.py76
-rw-r--r--examples/webenginewidgets/simplebrowser/ui_downloadwidget.py86
-rw-r--r--examples/webenginewidgets/simplebrowser/ui_passworddialog.py96
-rw-r--r--examples/webenginewidgets/simplebrowser/webpage.py29
-rw-r--r--examples/webenginewidgets/simplebrowser/webpopupwindow.py53
-rw-r--r--examples/webenginewidgets/simplebrowser/webview.py294
-rw-r--r--examples/webenginewidgets/tabbedbrowser/bookmarkwidget.py276
-rw-r--r--examples/webenginewidgets/tabbedbrowser/browsertabwidget.py244
-rw-r--r--examples/webenginewidgets/tabbedbrowser/doc/tabbedbrowser.pngbin37147 -> 0 bytes
-rw-r--r--examples/webenginewidgets/tabbedbrowser/doc/tabbedbrowser.rst58
-rw-r--r--examples/webenginewidgets/tabbedbrowser/downloadwidget.py148
-rw-r--r--examples/webenginewidgets/tabbedbrowser/findtoolbar.py99
-rw-r--r--examples/webenginewidgets/tabbedbrowser/historywindow.py103
-rw-r--r--examples/webenginewidgets/tabbedbrowser/main.py395
-rw-r--r--examples/webenginewidgets/tabbedbrowser/tabbedbrowser.pyproject5
-rw-r--r--examples/webenginewidgets/tabbedbrowser/webengineview.py92
-rw-r--r--examples/webenginewidgets/widgetsnanobrowser/doc/widgetsnanobrowser.png (renamed from examples/webenginewidgets/simplebrowser/doc/simplebrowser.png)bin51615 -> 51615 bytes
-rw-r--r--examples/webenginewidgets/widgetsnanobrowser/doc/widgetsnanobrowser.rst8
-rw-r--r--examples/webenginewidgets/widgetsnanobrowser/widgetsnanobrowser.py70
-rw-r--r--examples/webenginewidgets/widgetsnanobrowser/widgetsnanobrowser.pyproject3
-rw-r--r--examples/widgetbinding/CMakeLists.txt37
-rw-r--r--examples/widgetbinding/README.md76
-rw-r--r--examples/widgetbinding/bindings.h51
-rw-r--r--examples/widgetbinding/bindings.xml51
-rw-r--r--examples/widgetbinding/dialog.py54
-rw-r--r--examples/widgetbinding/doc/widgetbinding.md74
-rw-r--r--examples/widgetbinding/doc/widgetbinding.pyproject10
-rw-r--r--examples/widgetbinding/macros.h51
-rw-r--r--examples/widgetbinding/main.py51
-rw-r--r--examples/widgetbinding/registerwigglywidget.py51
-rw-r--r--examples/widgetbinding/wigglywidget.cpp63
-rw-r--r--examples/widgetbinding/wigglywidget.h51
-rw-r--r--examples/widgetbinding/wigglywidget.py69
-rw-r--r--examples/widgets/animation/animatedtiles/animatedtiles.py75
-rw-r--r--examples/widgets/animation/animatedtiles/animatedtiles.pyproject3
-rw-r--r--examples/widgets/animation/animatedtiles/animatedtiles_rc.py2766
-rw-r--r--examples/widgets/animation/appchooser/appchooser.py48
-rw-r--r--examples/widgets/animation/appchooser/appchooser.pyproject2
-rw-r--r--examples/widgets/animation/appchooser/appchooser_rc.py1068
-rw-r--r--examples/widgets/animation/easing/easing.py168
-rw-r--r--examples/widgets/animation/easing/form.ui105
-rw-r--r--examples/widgets/animation/easing/images/qt-logo.pngbin5149 -> 0 bytes
-rw-r--r--examples/widgets/animation/easing/ui_form.py80
-rw-r--r--examples/widgets/animation/states/states.py48
-rw-r--r--examples/widgets/animation/states/states.pyproject2
-rw-r--r--examples/widgets/animation/states/states_rc.py45
-rw-r--r--examples/widgets/codeeditor/codeeditor.py141
-rw-r--r--examples/widgets/codeeditor/codeeditor.pyproject3
-rw-r--r--examples/widgets/codeeditor/doc/codeeditor.pngbin7759 -> 0 bytes
-rw-r--r--examples/widgets/codeeditor/doc/codeeditor.rst9
-rw-r--r--examples/widgets/codeeditor/main.py52
-rw-r--r--examples/widgets/desktop/screenshot/doc/screenshot.pngbin0 -> 13890 bytes
-rw-r--r--examples/widgets/desktop/screenshot/doc/screenshot.rst8
-rw-r--r--examples/widgets/desktop/screenshot/screenshot.py156
-rw-r--r--examples/widgets/desktop/screenshot/screenshot.pyproject3
-rw-r--r--examples/widgets/desktop/systray/images/bad.png (renamed from examples/widgets/systray/images/bad.png)bin2496 -> 2496 bytes
-rw-r--r--examples/widgets/desktop/systray/images/heart.png (renamed from examples/widgets/systray/images/heart.png)bin25780 -> 25780 bytes
-rw-r--r--examples/widgets/desktop/systray/images/trash.png (renamed from examples/widgets/systray/images/trash.png)bin12128 -> 12128 bytes
-rw-r--r--examples/widgets/desktop/systray/main.py21
-rw-r--r--examples/widgets/desktop/systray/rc_systray.py2581
-rw-r--r--examples/widgets/desktop/systray/systray.pyproject (renamed from examples/widgets/systray/systray.pyproject)0
-rw-r--r--examples/widgets/desktop/systray/systray.qrc (renamed from examples/widgets/systray/systray.qrc)0
-rw-r--r--examples/widgets/desktop/systray/window.py236
-rw-r--r--examples/widgets/dialogs/classwizard/classwizard.py65
-rw-r--r--examples/widgets/dialogs/classwizard/classwizard.pyproject3
-rw-r--r--examples/widgets/dialogs/classwizard/classwizard_rc.py8
-rw-r--r--examples/widgets/dialogs/classwizard/listchooser.py52
-rw-r--r--examples/widgets/dialogs/extension/extension.py44
-rw-r--r--examples/widgets/dialogs/findfiles/findfiles.py222
-rw-r--r--examples/widgets/dialogs/findfiles/findfiles.pyproject3
-rw-r--r--examples/widgets/dialogs/licensewizard/doc/licensewizard.pngbin0 -> 47064 bytes
-rw-r--r--examples/widgets/dialogs/licensewizard/doc/licensewizard.rst9
-rw-r--r--examples/widgets/dialogs/licensewizard/images/logo.pngbin0 -> 1810 bytes
-rw-r--r--examples/widgets/dialogs/licensewizard/images/watermark.pngbin0 -> 34998 bytes
-rw-r--r--examples/widgets/dialogs/licensewizard/licensewizard.py298
-rw-r--r--examples/widgets/dialogs/licensewizard/licensewizard.pyproject3
-rw-r--r--examples/widgets/dialogs/licensewizard/main.py15
-rw-r--r--examples/widgets/dialogs/standarddialogs/standarddialogs.py186
-rw-r--r--examples/widgets/dialogs/tabdialog/doc/tabdialog.pngbin0 -> 13222 bytes
-rw-r--r--examples/widgets/dialogs/tabdialog/doc/tabdialog.rst13
-rw-r--r--examples/widgets/dialogs/tabdialog/tabdialog.py178
-rw-r--r--examples/widgets/dialogs/tabdialog/tabdialog.pyproject3
-rw-r--r--examples/widgets/dialogs/trivialwizard/trivialwizard.py48
-rw-r--r--examples/widgets/draganddrop/draggableicons/doc/draggableicons.pngbin0 -> 21766 bytes
-rw-r--r--examples/widgets/draganddrop/draggableicons/doc/draggableicons.rst9
-rw-r--r--examples/widgets/draganddrop/draggableicons/draggableicons.py128
-rw-r--r--examples/widgets/draganddrop/draggableicons/draggableicons.qrc7
-rw-r--r--examples/widgets/draganddrop/draggableicons/images/boat.pngbin0 -> 2772 bytes
-rw-r--r--examples/widgets/draganddrop/draggableicons/images/car.pngbin0 -> 2963 bytes
-rw-r--r--examples/widgets/draganddrop/draggableicons/images/house.pngbin0 -> 3292 bytes
-rw-r--r--examples/widgets/draganddrop/draggabletext/draggabletext.py49
-rw-r--r--examples/widgets/draganddrop/draggabletext/draggabletext.pyproject3
-rw-r--r--examples/widgets/draganddrop/draggabletext/draggabletext_rc.py4
-rw-r--r--examples/widgets/draganddrop/dropsite/doc/dropsite.rst8
-rw-r--r--examples/widgets/draganddrop/dropsite/droparea.py67
-rw-r--r--examples/widgets/draganddrop/dropsite/dropsite.pyproject3
-rw-r--r--examples/widgets/draganddrop/dropsite/dropsitewindow.py115
-rw-r--r--examples/widgets/draganddrop/dropsite/main.py15
-rw-r--r--examples/widgets/effects/blurpicker/blureffect.py33
-rw-r--r--examples/widgets/effects/blurpicker/blurpicker.py105
-rw-r--r--examples/widgets/effects/blurpicker/blurpicker.pyproject17
-rw-r--r--examples/widgets/effects/blurpicker/doc/blurpicker.pngbin0 -> 48358 bytes
-rw-r--r--examples/widgets/effects/blurpicker/doc/blurpicker.rst9
-rw-r--r--examples/widgets/effects/blurpicker/images/README.txt5
-rw-r--r--examples/widgets/effects/blurpicker/images/accessories-calculator.pngbin0 -> 3760 bytes
-rw-r--r--examples/widgets/effects/blurpicker/images/accessories-text-editor.pngbin0 -> 4746 bytes
-rw-r--r--examples/widgets/effects/blurpicker/images/background.jpgbin0 -> 16259 bytes
-rw-r--r--examples/widgets/effects/blurpicker/images/help-browser.pngbin0 -> 5392 bytes
-rw-r--r--examples/widgets/effects/blurpicker/images/internet-group-chat.pngbin0 -> 2809 bytes
-rw-r--r--examples/widgets/effects/blurpicker/images/internet-mail.pngbin0 -> 3899 bytes
-rw-r--r--examples/widgets/effects/blurpicker/images/internet-web-browser.pngbin0 -> 6376 bytes
-rw-r--r--examples/widgets/effects/blurpicker/images/office-calendar.pngbin0 -> 4010 bytes
-rw-r--r--examples/widgets/effects/blurpicker/images/system-users.pngbin0 -> 5353 bytes
-rw-r--r--examples/widgets/effects/blurpicker/main.py20
-rw-r--r--examples/widgets/effects/lighting.py147
-rw-r--r--examples/widgets/effects/lighting/lighting.py107
-rw-r--r--examples/widgets/effects/lighting/lighting.pyproject (renamed from examples/widgets/effects/effects.pyproject)0
-rw-r--r--examples/widgets/gettext/doc/gettext.rst7
-rw-r--r--examples/widgets/gettext/locales/de_DE/LC_MESSAGES/example.pot41
-rw-r--r--examples/widgets/gettext/locales/example.pot41
-rw-r--r--examples/widgets/gettext/main.py45
-rw-r--r--examples/widgets/graphicsview/anchorlayout/anchorlayout.py48
-rw-r--r--examples/widgets/graphicsview/collidingmice/collidingmice.py60
-rw-r--r--examples/widgets/graphicsview/collidingmice/collidingmice.pyproject2
-rw-r--r--examples/widgets/graphicsview/collidingmice/mice_rc.py45
-rw-r--r--examples/widgets/graphicsview/diagramscene/diagramscene.py232
-rw-r--r--examples/widgets/graphicsview/diagramscene/diagramscene.pyproject2
-rw-r--r--examples/widgets/graphicsview/diagramscene/diagramscene_rc.py572
-rw-r--r--examples/widgets/graphicsview/dragdroprobot/dragdroprobot.py108
-rw-r--r--examples/widgets/graphicsview/dragdroprobot/dragdroprobot.pyproject2
-rw-r--r--examples/widgets/graphicsview/dragdroprobot/dragdroprobot_rc.py4
-rw-r--r--examples/widgets/graphicsview/elasticnodes/elasticnodes.py70
-rw-r--r--examples/widgets/imageviewer/imageviewer.py72
-rw-r--r--examples/widgets/imageviewer/main.py41
-rw-r--r--examples/widgets/itemviews/address_book/adddialogwidget.py48
-rw-r--r--examples/widgets/itemviews/address_book/address_book.py62
-rw-r--r--examples/widgets/itemviews/address_book/addresswidget.py54
-rw-r--r--examples/widgets/itemviews/address_book/newaddresstab.py44
-rw-r--r--examples/widgets/itemviews/address_book/tablemodel.py48
-rw-r--r--examples/widgets/itemviews/basicfiltermodel/basicsortfiltermodel.py75
-rw-r--r--examples/widgets/itemviews/dirview/dirview.py59
-rw-r--r--examples/widgets/itemviews/dirview/dirview.pyproject3
-rw-r--r--examples/widgets/itemviews/dirview/doc/dirview.rst5
-rw-r--r--examples/widgets/itemviews/editabletreemodel/default.txt40
-rw-r--r--examples/widgets/itemviews/editabletreemodel/doc/editabletreemodel.pngbin0 -> 111556 bytes
-rw-r--r--examples/widgets/itemviews/editabletreemodel/doc/editabletreemodel.rst10
-rw-r--r--examples/widgets/itemviews/editabletreemodel/editabletreemodel.pyproject7
-rw-r--r--examples/widgets/itemviews/editabletreemodel/main.py14
-rw-r--r--examples/widgets/itemviews/editabletreemodel/mainwindow.py163
-rw-r--r--examples/widgets/itemviews/editabletreemodel/treeitem.py94
-rw-r--r--examples/widgets/itemviews/editabletreemodel/treemodel.py199
-rw-r--r--examples/widgets/itemviews/fetchmore/fetchmore.py53
-rw-r--r--examples/widgets/itemviews/jsonmodel/jsonmodel.py48
-rw-r--r--examples/widgets/itemviews/spinboxdelegate/doc/spinboxdelegate.rst5
-rw-r--r--examples/widgets/itemviews/spinboxdelegate/spinboxdelegate.py79
-rw-r--r--examples/widgets/itemviews/spinboxdelegate/spinboxdelegate.pyproject3
-rw-r--r--examples/widgets/itemviews/spreadsheet/doc/spreadsheet.pngbin0 -> 40187 bytes
-rw-r--r--examples/widgets/itemviews/spreadsheet/doc/spreadsheet.rst10
-rw-r--r--examples/widgets/itemviews/spreadsheet/main.py19
-rw-r--r--examples/widgets/itemviews/spreadsheet/spreadsheet.py544
-rw-r--r--examples/widgets/itemviews/spreadsheet/spreadsheetdelegate.py67
-rw-r--r--examples/widgets/itemviews/spreadsheet/spreadsheetitem.py122
-rw-r--r--examples/widgets/itemviews/stardelegate/stardelegate.py58
-rw-r--r--examples/widgets/itemviews/stardelegate/stareditor.py53
-rw-r--r--examples/widgets/itemviews/stardelegate/starrating.py52
-rw-r--r--examples/widgets/layouts/basiclayouts/basiclayouts.py52
-rw-r--r--examples/widgets/layouts/borderlayout/borderlayout.py248
-rw-r--r--examples/widgets/layouts/borderlayout/borderlayout.pyproject3
-rw-r--r--examples/widgets/layouts/borderlayout/doc/borderlayout.pngbin0 -> 5450 bytes
-rw-r--r--examples/widgets/layouts/borderlayout/doc/borderlayout.rst10
-rw-r--r--examples/widgets/layouts/dynamiclayouts/dynamiclayouts.py56
-rw-r--r--examples/widgets/layouts/flowlayout/flowlayout.py76
-rw-r--r--examples/widgets/linguist/doc/linguist.rst7
-rw-r--r--examples/widgets/linguist/linguist.qrc4
-rw-r--r--examples/widgets/linguist/linguist_rc.py4
-rw-r--r--examples/widgets/linguist/main.py52
-rw-r--r--examples/widgets/mainwindows/application/application.py159
-rw-r--r--examples/widgets/mainwindows/application/application.pyproject2
-rw-r--r--examples/widgets/mainwindows/application/application_rc.py456
-rw-r--r--examples/widgets/mainwindows/dockwidgets/dockwidgets.py125
-rw-r--r--examples/widgets/mainwindows/dockwidgets/dockwidgets.pyproject2
-rw-r--r--examples/widgets/mainwindows/dockwidgets/dockwidgets_rc.py264
-rw-r--r--examples/widgets/mainwindows/mdi/images/new.pngbin852 -> 0 bytes
-rw-r--r--examples/widgets/mainwindows/mdi/images/save.pngbin1187 -> 0 bytes
-rw-r--r--examples/widgets/mainwindows/mdi/mdi.py195
-rw-r--r--examples/widgets/mainwindows/mdi/mdi.pyproject2
-rw-r--r--examples/widgets/mainwindows/mdi/mdi.qrc10
-rw-r--r--examples/widgets/mainwindows/mdi/mdi_rc.py608
-rw-r--r--examples/widgets/painting/basicdrawing/basicdrawing.py171
-rw-r--r--examples/widgets/painting/basicdrawing/basicdrawing.pyproject2
-rw-r--r--examples/widgets/painting/basicdrawing/basicdrawing_rc.py89
-rw-r--r--examples/widgets/painting/concentriccircles/concentriccircles.py81
-rw-r--r--examples/widgets/painting/painter/painter.py70
-rw-r--r--examples/widgets/painting/plot/doc/plot.pngbin0 -> 13030 bytes
-rw-r--r--examples/widgets/painting/plot/doc/plot.rst36
-rw-r--r--examples/widgets/painting/plot/plot.py66
-rw-r--r--examples/widgets/painting/plot/plot.pyproject3
-rw-r--r--examples/widgets/rhi/simplerhiwidget/doc/simplerhiwidget.rst34
-rw-r--r--examples/widgets/rhi/simplerhiwidget/doc/simplerhiwidget.webpbin0 -> 8556 bytes
-rw-r--r--examples/widgets/rhi/simplerhiwidget/examplewidget.py135
-rw-r--r--examples/widgets/rhi/simplerhiwidget/main.py35
-rw-r--r--examples/widgets/rhi/simplerhiwidget/rc_simplerhiwidget.py163
-rw-r--r--examples/widgets/rhi/simplerhiwidget/shader_assets/color.frag.qsbbin0 -> 738 bytes
-rw-r--r--examples/widgets/rhi/simplerhiwidget/shader_assets/color.vert.qsbbin0 -> 1091 bytes
-rw-r--r--examples/widgets/rhi/simplerhiwidget/shaders/color.frag10
-rw-r--r--examples/widgets/rhi/simplerhiwidget/shaders/color.vert16
-rw-r--r--examples/widgets/rhi/simplerhiwidget/simplerhiwidget.pyproject4
-rw-r--r--examples/widgets/rhi/simplerhiwidget/simplerhiwidget.qrc6
-rw-r--r--examples/widgets/richtext/orderform/orderform.py75
-rw-r--r--examples/widgets/richtext/syntaxhighlighter/syntaxhighlighter.py48
-rw-r--r--examples/widgets/richtext/textedit/main.py44
-rw-r--r--examples/widgets/richtext/textedit/textedit.py104
-rw-r--r--examples/widgets/richtext/textedit/textedit_rc.py102
-rw-r--r--examples/widgets/richtext/textobject/textobject.py50
-rw-r--r--examples/widgets/state-machine/eventtrans/eventtrans.py95
-rw-r--r--examples/widgets/state-machine/eventtrans/eventtrans.pyproject3
-rw-r--r--examples/widgets/state-machine/factstates/factstates.py127
-rw-r--r--examples/widgets/state-machine/factstates/factstates.pyproject3
-rw-r--r--examples/widgets/state-machine/pingpong/pingpong.py108
-rw-r--r--examples/widgets/state-machine/pingpong/pingpong.pyproject3
-rw-r--r--examples/widgets/state-machine/rogue/rogue.py215
-rw-r--r--examples/widgets/state-machine/trafficlight/doc/trafficlight.pngbin79 -> 0 bytes
-rw-r--r--examples/widgets/state-machine/trafficlight/trafficlight.py150
-rw-r--r--examples/widgets/state-machine/twowaybutton/twowaybutton.py72
-rw-r--r--examples/widgets/state-machine/twowaybutton/twowaybutton.pyproject3
-rw-r--r--examples/widgets/systray/main.py58
-rw-r--r--examples/widgets/systray/rc_systray.py2581
-rw-r--r--examples/widgets/systray/window.py273
-rw-r--r--examples/widgets/tetrix/tetrix.py507
-rw-r--r--examples/widgets/thread_signals/thread_signals.py62
-rw-r--r--examples/widgets/thread_signals/thread_signals.pyproject (renamed from examples/widgets/threads/thread_signals.pyproject)0
-rw-r--r--examples/widgets/threads/thread_signals.py100
-rw-r--r--examples/widgets/tools/regularexpression/doc/regularexpression.pngbin0 -> 33814 bytes
-rw-r--r--examples/widgets/tools/regularexpression/doc/regularexpression.rst10
-rw-r--r--examples/widgets/tools/regularexpression/regularexpression.py21
-rw-r--r--examples/widgets/tools/regularexpression/regularexpression.pyproject3
-rw-r--r--examples/widgets/tools/regularexpression/regularexpressiondialog.py456
-rw-r--r--examples/widgets/tutorials/addressbook/part1.py49
-rw-r--r--examples/widgets/tutorials/addressbook/part2.py57
-rw-r--r--examples/widgets/tutorials/addressbook/part3.py59
-rw-r--r--examples/widgets/tutorials/addressbook/part4.py76
-rw-r--r--examples/widgets/tutorials/addressbook/part5.py80
-rw-r--r--examples/widgets/tutorials/addressbook/part6.py94
-rw-r--r--examples/widgets/tutorials/addressbook/part7.py101
-rw-r--r--examples/widgets/tutorials/cannon/t1.py42
-rw-r--r--examples/widgets/tutorials/cannon/t10.py65
-rw-r--r--examples/widgets/tutorials/cannon/t11.py59
-rw-r--r--examples/widgets/tutorials/cannon/t12.py61
-rw-r--r--examples/widgets/tutorials/cannon/t13.py75
-rw-r--r--examples/widgets/tutorials/cannon/t14.py84
-rw-r--r--examples/widgets/tutorials/cannon/t2.py45
-rw-r--r--examples/widgets/tutorials/cannon/t3.py42
-rw-r--r--examples/widgets/tutorials/cannon/t4.py44
-rw-r--r--examples/widgets/tutorials/cannon/t5.py44
-rw-r--r--examples/widgets/tutorials/cannon/t6.py44
-rw-r--r--examples/widgets/tutorials/cannon/t7.py44
-rw-r--r--examples/widgets/tutorials/cannon/t8.py54
-rw-r--r--examples/widgets/tutorials/cannon/t9.py65
-rw-r--r--examples/widgets/tutorials/modelview/1_readonly.py38
-rw-r--r--examples/widgets/tutorials/modelview/2_formatting.py65
-rw-r--r--examples/widgets/tutorials/modelview/3_changingmodel.py53
-rw-r--r--examples/widgets/tutorials/modelview/4_headers.py43
-rw-r--r--examples/widgets/tutorials/modelview/5_edit.py73
-rw-r--r--examples/widgets/tutorials/modelview/6_treeview.py42
-rw-r--r--examples/widgets/tutorials/modelview/7_selections.py71
-rw-r--r--examples/widgets/tutorials/modelview/doc/modelview.rst4
-rw-r--r--examples/widgets/tutorials/modelview/modelview.pyproject9
-rw-r--r--examples/widgets/widgets/charactermap/charactermap.pyproject4
-rw-r--r--examples/widgets/widgets/charactermap/characterwidget.py133
-rw-r--r--examples/widgets/widgets/charactermap/doc/charactermap.rst8
-rw-r--r--examples/widgets/widgets/charactermap/fontinfodialog.py47
-rw-r--r--examples/widgets/widgets/charactermap/main.py17
-rw-r--r--examples/widgets/widgets/charactermap/mainwindow.py167
-rw-r--r--examples/widgets/widgets/digitalclock/digitalclock.py41
-rw-r--r--examples/widgets/widgets/digitalclock/digitalclock.pyproject3
-rw-r--r--examples/widgets/widgets/digitalclock/doc/digitalclock-screenshot.pngbin0 -> 726 bytes
-rw-r--r--examples/widgets/widgets/digitalclock/doc/digitalclock.rst14
-rw-r--r--examples/widgets/widgets/tetrix/doc/tetrix-screenshot.png (renamed from examples/widgets/tetrix/doc/tetrix-screenshot.png)bin5396 -> 5396 bytes
-rw-r--r--examples/widgets/widgets/tetrix/doc/tetrix.rst (renamed from examples/widgets/tetrix/doc/tetrix.rst)0
-rw-r--r--examples/widgets/widgets/tetrix/tetrix.py472
-rw-r--r--examples/widgets/widgets/tetrix/tetrix.pyproject (renamed from examples/widgets/tetrix/tetrix.pyproject)0
-rw-r--r--examples/widgets/widgetsgallery/main.py44
-rw-r--r--examples/widgets/widgetsgallery/widgetgallery.py67
-rw-r--r--examples/xml/dombookmarks/dombookmarks.py113
-rw-r--r--examples/xml/dombookmarks/dombookmarks.pyproject2
-rw-r--r--examples/xml/dombookmarks/frank.xbel230
-rw-r--r--examples/xml/dombookmarks/jennifer.xbel84
-rw-r--r--header.BSD-OLD39
-rw-r--r--requirements-doc.txt12
-rw-r--r--requirements.txt19
-rw-r--r--setup.py42
-rw-r--r--sources/cmake_helpers/helpers.cmake265
-rw-r--r--sources/patchelf/README107
-rw-r--r--sources/patchelf/elf.h2674
-rw-r--r--sources/patchelf/patchelf.cc1239
-rw-r--r--sources/pyside-tools/CMakeLists.txt121
-rw-r--r--sources/pyside-tools/__init__.py0
-rw-r--r--sources/pyside-tools/android_deploy.py212
-rw-r--r--sources/pyside-tools/android_deploy.pyproject9
-rw-r--r--sources/pyside-tools/cmake/PySideAndroid.cmake52
-rw-r--r--sources/pyside-tools/cmake/PySideToolsHelpers.cmake37
-rw-r--r--sources/pyside-tools/cmake/PySideToolsSetup.cmake16
-rw-r--r--sources/pyside-tools/deploy.py188
-rw-r--r--sources/pyside-tools/deploy.pyproject8
-rw-r--r--sources/pyside-tools/deploy_lib/__init__.py59
-rw-r--r--sources/pyside-tools/deploy_lib/android/__init__.py16
-rw-r--r--sources/pyside-tools/deploy_lib/android/android_config.py446
-rw-r--r--sources/pyside-tools/deploy_lib/android/android_helper.py151
-rw-r--r--sources/pyside-tools/deploy_lib/android/buildozer.py140
-rw-r--r--sources/pyside-tools/deploy_lib/android/recipes/PySide6/__init__.tmpl.py64
-rw-r--r--sources/pyside-tools/deploy_lib/android/recipes/shiboken6/__init__.tmpl.py31
-rw-r--r--sources/pyside-tools/deploy_lib/commands.py60
-rw-r--r--sources/pyside-tools/deploy_lib/config.py459
-rw-r--r--sources/pyside-tools/deploy_lib/default.spec97
-rw-r--r--sources/pyside-tools/deploy_lib/dependency_util.py319
-rw-r--r--sources/pyside-tools/deploy_lib/deploy_util.py77
-rw-r--r--sources/pyside-tools/deploy_lib/nuitka_helper.py104
-rw-r--r--sources/pyside-tools/deploy_lib/pyside_icon.icnsbin0 -> 47064 bytes
-rw-r--r--sources/pyside-tools/deploy_lib/pyside_icon.icobin0 -> 48446 bytes
-rw-r--r--sources/pyside-tools/deploy_lib/pyside_icon.jpgbin0 -> 8157 bytes
-rw-r--r--sources/pyside-tools/deploy_lib/python_helper.py122
-rw-r--r--sources/pyside-tools/metaobjectdump.py452
-rw-r--r--sources/pyside-tools/project.py300
-rw-r--r--sources/pyside-tools/project.pyproject4
-rw-r--r--sources/pyside-tools/project/__init__.py46
-rw-r--r--sources/pyside-tools/project/newproject.py165
-rw-r--r--sources/pyside-tools/project/project_data.py244
-rw-r--r--sources/pyside-tools/project/utils.py107
-rw-r--r--sources/pyside-tools/pyside_tool.py219
-rw-r--r--sources/pyside-tools/qml.py246
-rw-r--r--sources/pyside-tools/qtpy2cpp.py62
-rw-r--r--sources/pyside-tools/qtpy2cpp.pyproject7
-rw-r--r--sources/pyside-tools/qtpy2cpp_lib/astdump.py111
-rw-r--r--sources/pyside-tools/qtpy2cpp_lib/formatter.py265
-rw-r--r--sources/pyside-tools/qtpy2cpp_lib/nodedump.py50
-rw-r--r--sources/pyside-tools/qtpy2cpp_lib/qt.py56
-rw-r--r--sources/pyside-tools/qtpy2cpp_lib/tests/baseline/basic_test.cpp62
-rw-r--r--sources/pyside-tools/qtpy2cpp_lib/tests/baseline/basic_test.py44
-rw-r--r--sources/pyside-tools/qtpy2cpp_lib/tests/test_qtpy2cpp.py54
-rw-r--r--sources/pyside-tools/qtpy2cpp_lib/tokenizer.py55
-rw-r--r--sources/pyside-tools/qtpy2cpp_lib/visitor.py442
-rw-r--r--sources/pyside-tools/requirements-android.txt2
-rw-r--r--sources/pyside6/.cmake.conf5
-rw-r--r--sources/pyside6/CMakeLists.txt265
-rw-r--r--sources/pyside6/PySide6/CMakeLists.txt12
-rw-r--r--sources/pyside6/PySide6/Qt3DAnimation/CMakeLists.txt6
-rw-r--r--sources/pyside6/PySide6/Qt3DAnimation/typesystem_3danimation.xml51
-rw-r--r--sources/pyside6/PySide6/Qt3DCore/CMakeLists.txt7
-rw-r--r--sources/pyside6/PySide6/Qt3DCore/typesystem_3dcore.xml76
-rw-r--r--sources/pyside6/PySide6/Qt3DExtras/CMakeLists.txt5
-rw-r--r--sources/pyside6/PySide6/Qt3DExtras/typesystem_3dextras.xml55
-rw-r--r--sources/pyside6/PySide6/Qt3DInput/CMakeLists.txt3
-rw-r--r--sources/pyside6/PySide6/Qt3DInput/typesystem_3dinput.xml48
-rw-r--r--sources/pyside6/PySide6/Qt3DLogic/CMakeLists.txt3
-rw-r--r--sources/pyside6/PySide6/Qt3DLogic/typesystem_3dlogic.xml43
-rw-r--r--sources/pyside6/PySide6/Qt3DRender/CMakeLists.txt19
-rw-r--r--sources/pyside6/PySide6/Qt3DRender/typesystem_3drender.xml101
-rw-r--r--sources/pyside6/PySide6/QtAsyncio/__init__.py60
-rw-r--r--sources/pyside6/PySide6/QtAsyncio/events.py609
-rw-r--r--sources/pyside6/PySide6/QtAsyncio/futures.py115
-rw-r--r--sources/pyside6/PySide6/QtAsyncio/tasks.py157
-rw-r--r--sources/pyside6/PySide6/QtAxContainer/CMakeLists.txt3
-rw-r--r--sources/pyside6/PySide6/QtAxContainer/typesystem_axcontainer.xml43
-rw-r--r--sources/pyside6/PySide6/QtBluetooth/CMakeLists.txt3
-rw-r--r--sources/pyside6/PySide6/QtBluetooth/typesystem_bluetooth.xml83
-rw-r--r--sources/pyside6/PySide6/QtCharts/CMakeLists.txt9
-rw-r--r--sources/pyside6/PySide6/QtCharts/typesystem_charts.xml47
-rw-r--r--sources/pyside6/PySide6/QtConcurrent/CMakeLists.txt14
-rw-r--r--sources/pyside6/PySide6/QtConcurrent/typesystem_concurrent.xml46
-rw-r--r--sources/pyside6/PySide6/QtCore/CMakeLists.txt93
-rw-r--r--sources/pyside6/PySide6/QtCore/QtCore_global.post.h.in1
-rw-r--r--sources/pyside6/PySide6/QtCore/glue/core_snippets.cpp348
-rw-r--r--sources/pyside6/PySide6/QtCore/glue/core_snippets_p.h105
-rw-r--r--sources/pyside6/PySide6/QtCore/glue/qeasingcurve_glue.cpp43
-rw-r--r--sources/pyside6/PySide6/QtCore/glue/qeasingcurve_glue.h42
-rw-r--r--sources/pyside6/PySide6/QtCore/glue/qiopipe.cpp142
-rw-r--r--sources/pyside6/PySide6/QtCore/glue/qtcorehelper.cpp108
-rw-r--r--sources/pyside6/PySide6/QtCore/typesystem_core.xml43
-rw-r--r--sources/pyside6/PySide6/QtCore/typesystem_core_common.xml1287
-rw-r--r--sources/pyside6/PySide6/QtCore/typesystem_core_win.xml40
-rw-r--r--sources/pyside6/PySide6/QtDBus/CMakeLists.txt3
-rw-r--r--sources/pyside6/PySide6/QtDBus/typesystem_dbus.xml68
-rw-r--r--sources/pyside6/PySide6/QtDataVisualization/CMakeLists.txt17
-rw-r--r--sources/pyside6/PySide6/QtDataVisualization/qtdatavisualization_helper.cpp97
-rw-r--r--sources/pyside6/PySide6/QtDataVisualization/typesystem_datavisualization.xml133
-rw-r--r--sources/pyside6/PySide6/QtDesigner/CMakeLists.txt14
-rw-r--r--sources/pyside6/PySide6/QtDesigner/qpydesignercustomwidgetcollection.cpp44
-rw-r--r--sources/pyside6/PySide6/QtDesigner/typesystem_designer.xml51
-rw-r--r--sources/pyside6/PySide6/QtGraphs/CMakeLists.txt100
-rw-r--r--sources/pyside6/PySide6/QtGraphs/qtgraphs_helper.cpp97
-rw-r--r--sources/pyside6/PySide6/QtGraphs/typesystem_graphs.xml303
-rw-r--r--sources/pyside6/PySide6/QtGui/CMakeLists.txt124
-rw-r--r--sources/pyside6/PySide6/QtGui/QtGui_global.post.h.in5
-rw-r--r--sources/pyside6/PySide6/QtGui/typesystem_gui.xml44
-rw-r--r--sources/pyside6/PySide6/QtGui/typesystem_gui_common.xml880
-rw-r--r--sources/pyside6/PySide6/QtGui/typesystem_gui_mac.xml40
-rw-r--r--sources/pyside6/PySide6/QtGui/typesystem_gui_rhi.xml176
-rw-r--r--sources/pyside6/PySide6/QtGui/typesystem_gui_win.xml79
-rw-r--r--sources/pyside6/PySide6/QtGui/typesystem_gui_x11.xml45
-rw-r--r--sources/pyside6/PySide6/QtHelp/CMakeLists.txt7
-rw-r--r--sources/pyside6/PySide6/QtHelp/typesystem_help.xml56
-rw-r--r--sources/pyside6/PySide6/QtHttpServer/CMakeLists.txt40
-rw-r--r--sources/pyside6/PySide6/QtHttpServer/typesystem_httpserver.xml38
-rw-r--r--sources/pyside6/PySide6/QtLocation/CMakeLists.txt7
-rw-r--r--sources/pyside6/PySide6/QtLocation/typesystem_location.xml52
-rw-r--r--sources/pyside6/PySide6/QtMultimedia/CMakeLists.txt16
-rw-r--r--sources/pyside6/PySide6/QtMultimedia/typesystem_multimedia.xml108
-rw-r--r--sources/pyside6/PySide6/QtMultimediaWidgets/CMakeLists.txt11
-rw-r--r--sources/pyside6/PySide6/QtMultimediaWidgets/typesystem_multimediawidgets.xml43
-rw-r--r--sources/pyside6/PySide6/QtNetwork/CMakeLists.txt14
-rw-r--r--sources/pyside6/PySide6/QtNetwork/typesystem_network.xml294
-rw-r--r--sources/pyside6/PySide6/QtNetworkAuth/CMakeLists.txt5
-rw-r--r--sources/pyside6/PySide6/QtNetworkAuth/typesystem_networkauth.xml48
-rw-r--r--sources/pyside6/PySide6/QtNfc/CMakeLists.txt38
-rw-r--r--sources/pyside6/PySide6/QtNfc/typesystem_nfc.xml35
-rw-r--r--sources/pyside6/PySide6/QtOpenGL/CMakeLists.txt70
-rw-r--r--sources/pyside6/PySide6/QtOpenGL/QtOpenGL_global.post.h.in39
-rw-r--r--sources/pyside6/PySide6/QtOpenGL/glue/utils.cpp40
-rw-r--r--sources/pyside6/PySide6/QtOpenGL/typesystem_glgeti_v_includes.xml1
-rw-r--r--sources/pyside6/PySide6/QtOpenGL/typesystem_glgeti_v_modifications.xml18
-rw-r--r--sources/pyside6/PySide6/QtOpenGL/typesystem_glgetv_includes.xml5
-rw-r--r--sources/pyside6/PySide6/QtOpenGL/typesystem_glgetv_modifications.xml36
-rw-r--r--sources/pyside6/PySide6/QtOpenGL/typesystem_opengl.xml407
-rw-r--r--sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications1_0.xml40
-rw-r--r--sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications1_0_compat.xml42
-rw-r--r--sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications1_1.xml40
-rw-r--r--sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications1_1_compat.xml40
-rw-r--r--sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications1_2_compat.xml40
-rw-r--r--sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications1_3_compat.xml40
-rw-r--r--sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications1_4.xml40
-rw-r--r--sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications1_4_compat.xml40
-rw-r--r--sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications2_0.xml40
-rw-r--r--sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications2_1.xml40
-rw-r--r--sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications3_0.xml40
-rw-r--r--sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications3_3.xml40
-rw-r--r--sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications3_3a.xml40
-rw-r--r--sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications4_0.xml40
-rw-r--r--sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications4_1.xml60
-rw-r--r--sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications4_3.xml40
-rw-r--r--sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications4_4.xml44
-rw-r--r--sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications4_4_core.xml40
-rw-r--r--sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications4_5.xml42
-rw-r--r--sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications4_5_core.xml40
-rw-r--r--sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications_va.xml40
-rw-r--r--sources/pyside6/PySide6/QtOpenGLWidgets/CMakeLists.txt7
-rw-r--r--sources/pyside6/PySide6/QtOpenGLWidgets/typesystem_openglwidgets.xml44
-rw-r--r--sources/pyside6/PySide6/QtPdf/CMakeLists.txt42
-rw-r--r--sources/pyside6/PySide6/QtPdf/typesystem_pdf.xml35
-rw-r--r--sources/pyside6/PySide6/QtPdfWidgets/CMakeLists.txt39
-rw-r--r--sources/pyside6/PySide6/QtPdfWidgets/typesystem_pdfwidgets.xml17
-rw-r--r--sources/pyside6/PySide6/QtPositioning/CMakeLists.txt15
-rw-r--r--sources/pyside6/PySide6/QtPositioning/typesystem_positioning.xml51
-rw-r--r--sources/pyside6/PySide6/QtPrintSupport/CMakeLists.txt14
-rw-r--r--sources/pyside6/PySide6/QtPrintSupport/typesystem_printsupport.xml43
-rw-r--r--sources/pyside6/PySide6/QtPrintSupport/typesystem_printsupport_common.xml40
-rw-r--r--sources/pyside6/PySide6/QtQml/CMakeLists.txt25
-rw-r--r--sources/pyside6/PySide6/QtQml/QtQml_global.post.h.in2
-rw-r--r--sources/pyside6/PySide6/QtQml/pysideqmlregistertype.cpp791
-rw-r--r--sources/pyside6/PySide6/QtQml/pysideqmlregistertype.h112
-rw-r--r--sources/pyside6/PySide6/QtQml/pysideqmlvolatilebool.cpp160
-rw-r--r--sources/pyside6/PySide6/QtQml/pysideqmlvolatilebool.h15
-rw-r--r--sources/pyside6/PySide6/QtQml/typesystem_qml.xml179
-rw-r--r--sources/pyside6/PySide6/QtQuick/CMakeLists.txt53
-rw-r--r--sources/pyside6/PySide6/QtQuick/pysidequickregistertype.cpp247
-rw-r--r--sources/pyside6/PySide6/QtQuick/pysidequickregistertype.h40
-rw-r--r--sources/pyside6/PySide6/QtQuick/typesystem_quick.xml172
-rw-r--r--sources/pyside6/PySide6/QtQuick3D/CMakeLists.txt54
-rw-r--r--sources/pyside6/PySide6/QtQuick3D/typesystem_quick3d.xml30
-rw-r--r--sources/pyside6/PySide6/QtQuickControls2/CMakeLists.txt24
-rw-r--r--sources/pyside6/PySide6/QtQuickControls2/typesystem_quickcontrols2.xml46
-rw-r--r--sources/pyside6/PySide6/QtQuickTest/CMakeLists.txt44
-rw-r--r--sources/pyside6/PySide6/QtQuickTest/typesystem_quicktest.xml33
-rw-r--r--sources/pyside6/PySide6/QtQuickWidgets/CMakeLists.txt20
-rw-r--r--sources/pyside6/PySide6/QtQuickWidgets/typesystem_quickwidgets.xml43
-rw-r--r--sources/pyside6/PySide6/QtRemoteObjects/CMakeLists.txt16
-rw-r--r--sources/pyside6/PySide6/QtRemoteObjects/typesystem_remoteobjects.xml62
-rw-r--r--sources/pyside6/PySide6/QtScxml/CMakeLists.txt3
-rw-r--r--sources/pyside6/PySide6/QtScxml/typesystem_scxml.xml57
-rw-r--r--sources/pyside6/PySide6/QtSensors/CMakeLists.txt3
-rw-r--r--sources/pyside6/PySide6/QtSensors/typesystem_sensors.xml43
-rw-r--r--sources/pyside6/PySide6/QtSerialBus/CMakeLists.txt66
-rw-r--r--sources/pyside6/PySide6/QtSerialBus/typesystem_serialbus.xml118
-rw-r--r--sources/pyside6/PySide6/QtSerialPort/CMakeLists.txt3
-rw-r--r--sources/pyside6/PySide6/QtSerialPort/typesystem_serialport.xml45
-rw-r--r--sources/pyside6/PySide6/QtSpatialAudio/CMakeLists.txt40
-rw-r--r--sources/pyside6/PySide6/QtSpatialAudio/typesystem_spatialaudio.xml32
-rw-r--r--sources/pyside6/PySide6/QtSql/CMakeLists.txt11
-rw-r--r--sources/pyside6/PySide6/QtSql/typesystem_sql.xml54
-rw-r--r--sources/pyside6/PySide6/QtStateMachine/CMakeLists.txt13
-rw-r--r--sources/pyside6/PySide6/QtStateMachine/typesystem_statemachine.xml48
-rw-r--r--sources/pyside6/PySide6/QtSvg/CMakeLists.txt15
-rw-r--r--sources/pyside6/PySide6/QtSvg/typesystem_svg.xml47
-rw-r--r--sources/pyside6/PySide6/QtSvgWidgets/CMakeLists.txt13
-rw-r--r--sources/pyside6/PySide6/QtSvgWidgets/typesystem_svgwidgets.xml43
-rw-r--r--sources/pyside6/PySide6/QtTest/CMakeLists.txt12
-rw-r--r--sources/pyside6/PySide6/QtTest/typesystem_test.xml74
-rw-r--r--sources/pyside6/PySide6/QtTextToSpeech/CMakeLists.txt7
-rw-r--r--sources/pyside6/PySide6/QtTextToSpeech/typesystem_texttospeech.xml46
-rw-r--r--sources/pyside6/PySide6/QtUiTools/CMakeLists.txt16
-rw-r--r--sources/pyside6/PySide6/QtUiTools/glue/plugins.h40
-rw-r--r--sources/pyside6/PySide6/QtUiTools/typesystem_uitools.xml92
-rw-r--r--sources/pyside6/PySide6/QtWebChannel/CMakeLists.txt14
-rw-r--r--sources/pyside6/PySide6/QtWebChannel/typesystem_webchannel.xml46
-rw-r--r--sources/pyside6/PySide6/QtWebEngineCore/CMakeLists.txt29
-rw-r--r--sources/pyside6/PySide6/QtWebEngineCore/typesystem_webenginecore.xml125
-rw-r--r--sources/pyside6/PySide6/QtWebEngineQuick/CMakeLists.txt12
-rw-r--r--sources/pyside6/PySide6/QtWebEngineQuick/typesystem_webenginequick.xml43
-rw-r--r--sources/pyside6/PySide6/QtWebEngineWidgets/CMakeLists.txt18
-rw-r--r--sources/pyside6/PySide6/QtWebEngineWidgets/typesystem_webenginewidgets.xml43
-rw-r--r--sources/pyside6/PySide6/QtWebSockets/CMakeLists.txt15
-rw-r--r--sources/pyside6/PySide6/QtWebSockets/typesystem_websockets.xml56
-rw-r--r--sources/pyside6/PySide6/QtWidgets/CMakeLists.txt15
-rw-r--r--sources/pyside6/PySide6/QtWidgets/typesystem_widgets.xml43
-rw-r--r--sources/pyside6/PySide6/QtWidgets/typesystem_widgets_common.xml489
-rw-r--r--sources/pyside6/PySide6/QtWinExtras/CMakeLists.txt48
-rw-r--r--sources/pyside6/PySide6/QtWinExtras/QtWinExtras_global.pre.h.in5
-rw-r--r--sources/pyside6/PySide6/QtWinExtras/typesystem_winextras.xml66
-rw-r--r--sources/pyside6/PySide6/QtXml/CMakeLists.txt4
-rw-r--r--sources/pyside6/PySide6/QtXml/typesystem_xml.xml69
-rw-r--r--sources/pyside6/PySide6/__feature__.pyi.in10
-rw-r--r--sources/pyside6/PySide6/__init__.py.in57
-rw-r--r--sources/pyside6/PySide6/_config.py.in1
-rw-r--r--sources/pyside6/PySide6/doc/qtqml_functions.rst152
-rw-r--r--sources/pyside6/PySide6/doc/qtquicktest.rst62
-rw-r--r--sources/pyside6/PySide6/doc/qtuitools.rst68
-rw-r--r--sources/pyside6/PySide6/global.h.in40
-rw-r--r--sources/pyside6/PySide6/glue/qhttpserver.cpp50
-rw-r--r--sources/pyside6/PySide6/glue/qtcharts.cpp40
-rw-r--r--sources/pyside6/PySide6/glue/qtcore.cpp1716
-rw-r--r--sources/pyside6/PySide6/glue/qtdatavisualization.cpp84
-rw-r--r--sources/pyside6/PySide6/glue/qtdesigner.cpp40
-rw-r--r--sources/pyside6/PySide6/glue/qtgraphs.cpp8
-rw-r--r--sources/pyside6/PySide6/glue/qtgui.cpp301
-rw-r--r--sources/pyside6/PySide6/glue/qtmultimedia.cpp63
-rw-r--r--sources/pyside6/PySide6/glue/qtnetwork.cpp126
-rw-r--r--sources/pyside6/PySide6/glue/qtnetworkauth.cpp44
-rw-r--r--sources/pyside6/PySide6/glue/qtopengl.cpp56
-rw-r--r--sources/pyside6/PySide6/glue/qtpositioning.cpp14
-rw-r--r--sources/pyside6/PySide6/glue/qtprintsupport.cpp40
-rw-r--r--sources/pyside6/PySide6/glue/qtqml.cpp101
-rw-r--r--sources/pyside6/PySide6/glue/qtquick.cpp61
-rw-r--r--sources/pyside6/PySide6/glue/qtquicktest.cpp50
-rw-r--r--sources/pyside6/PySide6/glue/qtserialbus.cpp30
-rw-r--r--sources/pyside6/PySide6/glue/qtsql.cpp40
-rw-r--r--sources/pyside6/PySide6/glue/qtstatemachine.cpp47
-rw-r--r--sources/pyside6/PySide6/glue/qttest.cpp40
-rw-r--r--sources/pyside6/PySide6/glue/qtuitools.cpp80
-rw-r--r--sources/pyside6/PySide6/glue/qtwebenginecore.cpp64
-rw-r--r--sources/pyside6/PySide6/glue/qtwebenginewidgets.cpp46
-rw-r--r--sources/pyside6/PySide6/glue/qtwidgets.cpp316
-rw-r--r--sources/pyside6/PySide6/glue/qtxml.cpp40
-rw-r--r--sources/pyside6/PySide6/licensecomment.txt40
-rw-r--r--sources/pyside6/PySide6/pysideqtesttouch.h40
-rw-r--r--sources/pyside6/PySide6/pysidewtypes.h52
-rw-r--r--sources/pyside6/PySide6/qiopipe.h36
-rw-r--r--sources/pyside6/PySide6/qpydesignerextensions.h48
-rw-r--r--sources/pyside6/PySide6/qpyqmlparserstatus.h28
-rw-r--r--sources/pyside6/PySide6/qpyqmlpropertyvaluesource.h27
-rw-r--r--sources/pyside6/PySide6/qpytextobject.cpp40
-rw-r--r--sources/pyside6/PySide6/qpytextobject.h43
-rw-r--r--sources/pyside6/PySide6/qtcorehelper.h96
-rw-r--r--sources/pyside6/PySide6/qtdatavisualization_helper.h19
-rw-r--r--sources/pyside6/PySide6/qtdbushelper.h43
-rw-r--r--sources/pyside6/PySide6/qtgraphs_helper.h19
-rw-r--r--sources/pyside6/PySide6/qtguihelper.h35
-rw-r--r--sources/pyside6/PySide6/support/__init__.py40
-rw-r--r--sources/pyside6/PySide6/support/deprecated.py64
-rw-r--r--sources/pyside6/PySide6/support/generate_pyi.py76
-rw-r--r--sources/pyside6/PySide6/templates/common.xml27
-rw-r--r--sources/pyside6/PySide6/templates/core_common.xml171
-rw-r--r--sources/pyside6/PySide6/templates/datavisualization_common.xml40
-rw-r--r--sources/pyside6/PySide6/templates/gui_common.xml54
-rw-r--r--sources/pyside6/PySide6/templates/opengl_common.xml40
-rw-r--r--sources/pyside6/PySide6/templates/widgets_common.xml40
-rw-r--r--sources/pyside6/cmake/Macros/FindQt5Extra.cmake25
-rw-r--r--sources/pyside6/cmake/Macros/PySideModules.cmake135
-rw-r--r--sources/pyside6/cmake/Macros/icecc.cmake3
-rw-r--r--sources/pyside6/cmake/PySideHelpers.cmake270
-rw-r--r--sources/pyside6/cmake/PySideSetup.cmake243
-rw-r--r--sources/pyside6/cmake_uninstall.cmake3
-rw-r--r--sources/pyside6/doc/CMakeLists.txt293
-rw-r--r--sources/pyside6/doc/PySide6/QtAsyncio/index.rst150
-rw-r--r--sources/pyside6/doc/_static/css/qt_font.css15
-rw-r--r--sources/pyside6/doc/_static/css/qt_style.css100
-rw-r--r--sources/pyside6/doc/_static/qtforpython.icobin0 -> 766 bytes
-rw-r--r--sources/pyside6/doc/_static/qtforpython.pngbin0 -> 4043 bytes
-rw-r--r--sources/pyside6/doc/_tags/android.rst21
-rw-r--r--sources/pyside6/doc/_tags/tagsindex.rst12
-rw-r--r--sources/pyside6/doc/_templates/layout.html2
-rw-r--r--sources/pyside6/doc/_themes/pysidedocs/domainindex.html57
-rw-r--r--sources/pyside6/doc/_themes/pysidedocs/searchbox.html12
-rw-r--r--sources/pyside6/doc/_themes/pysidedocs/static/bg_header.pngbin36012 -> 0 bytes
-rw-r--r--sources/pyside6/doc/_themes/pysidedocs/static/bg_topo.jpgbin14237 -> 0 bytes
-rw-r--r--sources/pyside6/doc/_themes/pysidedocs/static/fakebar.pngbin101 -> 0 bytes
-rw-r--r--sources/pyside6/doc/_themes/pysidedocs/static/logo_python.jpgbin2660 -> 0 bytes
-rw-r--r--sources/pyside6/doc/_themes/pysidedocs/static/logo_qt.pngbin1936 -> 0 bytes
-rw-r--r--sources/pyside6/doc/_themes/pysidedocs/static/minus.pngbin199 -> 0 bytes
-rw-r--r--sources/pyside6/doc/_themes/pysidedocs/static/plus.pngbin199 -> 0 bytes
-rw-r--r--sources/pyside6/doc/_themes/pysidedocs/static/pyside.css2197
-rw-r--r--sources/pyside6/doc/_themes/pysidedocs/static/relbar_bg.pngbin130 -> 0 bytes
-rw-r--r--sources/pyside6/doc/_themes/pysidedocs/theme.conf7
-rw-r--r--sources/pyside6/doc/_themes/pysidedocs_qthelp/static/pyside.css8
-rw-r--r--sources/pyside6/doc/additionaldocs.lst661
-rw-r--r--sources/pyside6/doc/api.rst62
-rw-r--r--sources/pyside6/doc/commercial/index.rst250
-rw-r--r--sources/pyside6/doc/commercial/products.pngbin0 -> 23289 bytes
-rw-r--r--sources/pyside6/doc/commercial/qtcreator_python.pngbin0 -> 40845 bytes
-rw-r--r--sources/pyside6/doc/commercial/versions_commercial.pngbin0 -> 34660 bytes
-rw-r--r--sources/pyside6/doc/commercial/versions_lts.pngbin0 -> 34293 bytes
-rw-r--r--sources/pyside6/doc/conf.py.in80
-rw-r--r--sources/pyside6/doc/considerations.rst239
-rw-r--r--sources/pyside6/doc/contents.rst13
-rw-r--r--sources/pyside6/doc/deployment-briefcase.rst204
-rw-r--r--sources/pyside6/doc/deployment-cxfreeze.rst130
-rw-r--r--sources/pyside6/doc/deployment-fbs.rst97
-rw-r--r--sources/pyside6/doc/deployment-py2exe.rst16
-rw-r--r--sources/pyside6/doc/deployment-pyinstaller.rst163
-rw-r--r--sources/pyside6/doc/deployment.rst136
-rw-r--r--sources/pyside6/doc/deployment/deployment-briefcase.rst211
-rw-r--r--sources/pyside6/doc/deployment/deployment-cxfreeze.rst131
-rw-r--r--sources/pyside6/doc/deployment/deployment-fbs.rst97
-rw-r--r--sources/pyside6/doc/deployment/deployment-nuitka.rst132
-rw-r--r--sources/pyside6/doc/deployment/deployment-py2exe.rst16
-rw-r--r--sources/pyside6/doc/deployment/deployment-pyinstaller.rst164
-rw-r--r--sources/pyside6/doc/deployment/deployment-pyside6-android-deploy.rst211
-rw-r--r--sources/pyside6/doc/deployment/deployment-pyside6-deploy.rst217
-rw-r--r--sources/pyside6/doc/deployment/index.rst155
-rw-r--r--sources/pyside6/doc/developer/adapt_qt.rst54
-rw-r--r--sources/pyside6/doc/developer/add_module.rst61
-rw-r--r--sources/pyside6/doc/developer/add_port_example.rst67
-rw-r--r--sources/pyside6/doc/developer/add_tool.rst51
-rw-r--r--sources/pyside6/doc/developer/documentation.rst73
-rw-r--r--sources/pyside6/doc/developer/enumfeatures_doc.rst160
-rw-r--r--sources/pyside6/doc/developer/extras.rst55
-rw-r--r--sources/pyside6/doc/developer/feature-motivation.rst303
-rw-r--r--sources/pyside6/doc/developer/index.rst35
-rw-r--r--sources/pyside6/doc/developer/limited_api.rst703
-rw-r--r--sources/pyside6/doc/developer/signature_doc.rst361
-rw-r--r--sources/pyside6/doc/extras/QtBluetooth.rst102
-rw-r--r--sources/pyside6/doc/extras/QtCharts.rst21
-rw-r--r--sources/pyside6/doc/extras/QtConcurrent.rst37
-rw-r--r--sources/pyside6/doc/extras/QtCore.ClassInfo.rst14
-rw-r--r--sources/pyside6/doc/extras/QtCore.Property.rst49
-rw-r--r--sources/pyside6/doc/extras/QtCore.QEnum.rst85
-rw-r--r--sources/pyside6/doc/extras/QtCore.QFlag.rst74
-rw-r--r--sources/pyside6/doc/extras/QtCore.Signal.rst49
-rw-r--r--sources/pyside6/doc/extras/QtCore.Slot.rst57
-rw-r--r--sources/pyside6/doc/extras/QtCore.rst58
-rw-r--r--sources/pyside6/doc/extras/QtDBus.rst193
-rw-r--r--sources/pyside6/doc/extras/QtDataVisualization.rst30
-rw-r--r--sources/pyside6/doc/extras/QtDesigner.QPyDesignerContainerExtension.rst11
-rw-r--r--sources/pyside6/doc/extras/QtDesigner.QPyDesignerCustomWidgetCollection.rst28
-rw-r--r--sources/pyside6/doc/extras/QtDesigner.QPyDesignerMemberSheetExtension.rst11
-rw-r--r--sources/pyside6/doc/extras/QtDesigner.QPyDesignerTaskMenuExtension.rst11
-rw-r--r--sources/pyside6/doc/extras/QtDesigner.rst18
-rw-r--r--sources/pyside6/doc/extras/QtGui.rst141
-rw-r--r--sources/pyside6/doc/extras/QtHelp.rst16
-rw-r--r--sources/pyside6/doc/extras/QtMultimedia.rst111
-rw-r--r--sources/pyside6/doc/extras/QtMultimediaWidgets.rst15
-rw-r--r--sources/pyside6/doc/extras/QtNetwork.rst27
-rw-r--r--sources/pyside6/doc/extras/QtNetworkAuth.rst37
-rw-r--r--sources/pyside6/doc/extras/QtNfc.rst31
-rw-r--r--sources/pyside6/doc/extras/QtOpenGL.rst22
-rw-r--r--sources/pyside6/doc/extras/QtOpenGLWidgets.rst8
-rw-r--r--sources/pyside6/doc/extras/QtPositioning.rst40
-rw-r--r--sources/pyside6/doc/extras/QtPrintSupport.rst15
-rw-r--r--sources/pyside6/doc/extras/QtQml.ListProperty.rst24
-rw-r--r--sources/pyside6/doc/extras/QtQml.QPyQmlParserStatus.rst9
-rw-r--r--sources/pyside6/doc/extras/QtQml.QPyQmlPropertyValueSource.rst9
-rw-r--r--sources/pyside6/doc/extras/QtQml.QmlAnonymous.rst17
-rw-r--r--sources/pyside6/doc/extras/QtQml.QmlAttached.rst35
-rw-r--r--sources/pyside6/doc/extras/QtQml.QmlElement.rst35
-rw-r--r--sources/pyside6/doc/extras/QtQml.QmlExtended.rst32
-rw-r--r--sources/pyside6/doc/extras/QtQml.QmlForeign.rst28
-rw-r--r--sources/pyside6/doc/extras/QtQml.QmlNamedElement.rst26
-rw-r--r--sources/pyside6/doc/extras/QtQml.QmlSingleton.rst33
-rw-r--r--sources/pyside6/doc/extras/QtQml.QmlUncreatable.rst26
-rw-r--r--sources/pyside6/doc/extras/QtQml.qmlRegisterSingletonInstance.rst25
-rw-r--r--sources/pyside6/doc/extras/QtQml.qmlRegisterSingletonType.rst44
-rw-r--r--sources/pyside6/doc/extras/QtQml.qmlRegisterType.rst41
-rw-r--r--sources/pyside6/doc/extras/QtQml.qmlRegisterUncreatableType.rst36
-rw-r--r--sources/pyside6/doc/extras/QtQml.rst75
-rw-r--r--sources/pyside6/doc/extras/QtQuickControls2.rst45
-rw-r--r--sources/pyside6/doc/extras/QtQuickTest.rst58
-rw-r--r--sources/pyside6/doc/extras/QtRemoteObjects.rst101
-rw-r--r--sources/pyside6/doc/extras/QtScript.rst21
-rw-r--r--sources/pyside6/doc/extras/QtScriptTools.rst5
-rw-r--r--sources/pyside6/doc/extras/QtScxml.rst25
-rw-r--r--sources/pyside6/doc/extras/QtSensors.rst19
-rw-r--r--sources/pyside6/doc/extras/QtSerialBus.rst46
-rw-r--r--sources/pyside6/doc/extras/QtSerialPort.rst18
-rw-r--r--sources/pyside6/doc/extras/QtSql.rst18
-rw-r--r--sources/pyside6/doc/extras/QtSvg.rst18
-rw-r--r--sources/pyside6/doc/extras/QtTest.rst2
-rw-r--r--sources/pyside6/doc/extras/QtUiTools.loadUiType.rst36
-rw-r--r--sources/pyside6/doc/extras/QtUiTools.rst12
-rw-r--r--sources/pyside6/doc/extras/QtWebChannel.rst30
-rw-r--r--sources/pyside6/doc/extras/QtWebEngineCore.rst19
-rw-r--r--sources/pyside6/doc/extras/QtWebEngineWidgets.rst18
-rw-r--r--sources/pyside6/doc/extras/QtWebSockets.rst29
-rw-r--r--sources/pyside6/doc/extras/QtWidgets.rst86
-rw-r--r--sources/pyside6/doc/extras/QtXml.rst10
-rw-r--r--sources/pyside6/doc/extras/QtXmlPatterns.rst12
-rw-r--r--sources/pyside6/doc/faq.rst16
-rw-r--r--sources/pyside6/doc/faq/distribution.rst (renamed from sources/pyside6/doc/tutorials/pretutorial/distribution.rst)0
-rw-r--r--sources/pyside6/doc/faq/hello_linux.png (renamed from sources/pyside6/doc/tutorials/pretutorial/hello_linux.png)bin5960 -> 5960 bytes
-rw-r--r--sources/pyside6/doc/faq/hello_macOS.png (renamed from sources/pyside6/doc/tutorials/pretutorial/hello_macOS.png)bin38777 -> 38777 bytes
-rw-r--r--sources/pyside6/doc/faq/hello_win10.jpg (renamed from sources/pyside6/doc/tutorials/pretutorial/hello_win10.jpg)bin5314 -> 5314 bytes
-rw-r--r--sources/pyside6/doc/faq/tiobe.png (renamed from sources/pyside6/doc/tutorials/pretutorial/tiobe.png)bin49961 -> 49961 bytes
-rw-r--r--sources/pyside6/doc/faq/typesoffiles.rst152
-rw-r--r--sources/pyside6/doc/faq/whatisqt.rst112
-rw-r--r--sources/pyside6/doc/faq/whatisshiboken.rst40
-rw-r--r--sources/pyside6/doc/faq/whichide.rst56
-rw-r--r--sources/pyside6/doc/faq/whyqtforpython.rst203
-rw-r--r--sources/pyside6/doc/feature-why.rst273
-rw-r--r--sources/pyside6/doc/gettingstarted-linux.rst79
-rw-r--r--sources/pyside6/doc/gettingstarted-macOS.rst80
-rw-r--r--sources/pyside6/doc/gettingstarted-windows.rst83
-rw-r--r--sources/pyside6/doc/gettingstarted.rst247
-rw-r--r--sources/pyside6/doc/gettingstarted/index.rst572
-rw-r--r--sources/pyside6/doc/gettingstarted/linux.rst115
-rw-r--r--sources/pyside6/doc/gettingstarted/macOS.rst85
-rw-r--r--sources/pyside6/doc/gettingstarted/package_details.rst75
-rw-r--r--sources/pyside6/doc/gettingstarted/packages.pngbin0 -> 12157 bytes
-rw-r--r--sources/pyside6/doc/gettingstarted/porting_from2.rst94
-rw-r--r--sources/pyside6/doc/gettingstarted/windows.rst110
-rw-r--r--sources/pyside6/doc/images/Commercial.svg49
-rw-r--r--sources/pyside6/doc/images/Development.svg27
-rw-r--r--sources/pyside6/doc/images/Examples.svg58
-rw-r--r--sources/pyside6/doc/images/Tooling.svg24
-rw-r--r--sources/pyside6/doc/images/linux.svg37
-rw-r--r--sources/pyside6/doc/images/macos.svg38
-rw-r--r--sources/pyside6/doc/images/windows.svg38
-rw-r--r--sources/pyside6/doc/import_inheritance.py152
-rw-r--r--sources/pyside6/doc/index.rst222
-rw-r--r--sources/pyside6/doc/inheritance_diagram.py229
-rw-r--r--sources/pyside6/doc/inheritance_diagram.pyproject6
-rw-r--r--sources/pyside6/doc/inheritance_graph.py145
-rw-r--r--sources/pyside6/doc/json_inheritance.py74
-rw-r--r--sources/pyside6/doc/modules.rst255
-rw-r--r--sources/pyside6/doc/porting_from2.rst100
-rw-r--r--sources/pyside6/doc/pysideinclude.py19
-rw-r--r--sources/pyside6/doc/qdoc_spawner.py.in105
-rw-r--r--sources/pyside6/doc/qtattributionsscannertorst.py95
-rw-r--r--sources/pyside6/doc/qtmodules/pyside-qtbluetooth.qdocconf.in2
-rw-r--r--sources/pyside6/doc/qtmodules/pyside-qtdbus.qdocconf.in2
-rw-r--r--sources/pyside6/doc/qtmodules/pyside-qtdoc.qdocconf.in2
-rw-r--r--sources/pyside6/doc/qtmodules/pyside-qtlocation.qdocconf.in3
-rw-r--r--sources/pyside6/doc/qtmodules/pyside-qtmacextras.qdocconf.in2
-rw-r--r--sources/pyside6/doc/qtmodules/pyside-qtnetworkauth.qdocconf.in2
-rw-r--r--sources/pyside6/doc/qtmodules/pyside-qtnfc.qdocconf.in2
-rw-r--r--sources/pyside6/doc/qtmodules/pyside-qtpdf.qdocconf.in3
-rw-r--r--sources/pyside6/doc/qtmodules/pyside-qtpositioning.qdocconf.in4
-rw-r--r--sources/pyside6/doc/qtmodules/pyside-qtquickcontrols2.qdocconf.in4
-rw-r--r--sources/pyside6/doc/qtmodules/pyside-qtquicktest.qdocconf.in3
-rw-r--r--sources/pyside6/doc/qtmodules/pyside-qtremoteobjects.qdocconf.in2
-rw-r--r--sources/pyside6/doc/qtmodules/pyside-qtserialbus.qdocconf.in2
-rw-r--r--sources/pyside6/doc/qtmodules/pyside-qtserialport.qdocconf.in2
-rw-r--r--sources/pyside6/doc/qtmodules/pyside-qtspatialaudio.qdocconf.in3
-rw-r--r--sources/pyside6/doc/qtmodules/pyside-qttexttospeech.qdocconf.in4
-rw-r--r--sources/pyside6/doc/qtmodules/pyside-qtuitools.qdocconf.in2
-rw-r--r--sources/pyside6/doc/qtmodules/pyside-qtwinextras.qdocconf.in2
-rw-r--r--sources/pyside6/doc/qtmodules/pyside-qtx11extras.qdocconf.in2
-rw-r--r--sources/pyside6/doc/quickstart.rst219
-rw-r--r--sources/pyside6/doc/snippets/qtbase/examples/widgets/dialogs/standarddialogs/dialog_0.cpp.py4
-rw-r--r--sources/pyside6/doc/snippets/qtbase/examples/widgets/dialogs/standarddialogs/dialog_1.cpp.py5
-rw-r--r--sources/pyside6/doc/snippets/qtbase/examples/widgets/dialogs/standarddialogs/dialog_2.cpp.py5
-rw-r--r--sources/pyside6/doc/snippets/qtbase/examples/widgets/dialogs/standarddialogs/dialog_3.cpp.py5
-rw-r--r--sources/pyside6/doc/snippets/qtbase/examples/widgets/dialogs/standarddialogs/dialog_4.cpp.py4
-rw-r--r--sources/pyside6/doc/snippets/qtbase/examples/widgets/itemviews/spinboxdelegate/delegate_0.h.py18
-rw-r--r--sources/pyside6/doc/snippets/qtbase/examples/widgets/tutorials/modelview/1_readonly/mymodel_Quoting_ModelView_Tutorial.h.py15
-rw-r--r--sources/pyside6/doc/snippets/qtbase/examples/widgets/tutorials/modelview/5_edit/mymodel_Quoting_ModelView_Tutorial.h.py27
-rw-r--r--sources/pyside6/doc/snippets/qtbase/src/gui/doc/snippets/code/src_gui_painting_qpainter_drawText.cpp.py13
-rw-r--r--sources/pyside6/doc/snippets/qtbase/src/widgets/doc/snippets/stringlistmodel/model_0.h.py24
-rw-r--r--sources/pyside6/doc/tools/index.rst211
-rw-r--r--sources/pyside6/doc/tools/pyside-assistant.rst21
-rw-r--r--sources/pyside6/doc/tools/pyside-designer.rst91
-rw-r--r--sources/pyside6/doc/tools/pyside-genpyi.rst52
-rw-r--r--sources/pyside6/doc/tools/pyside-linguist.rst20
-rw-r--r--sources/pyside6/doc/tools/pyside-lrelease.rst25
-rw-r--r--sources/pyside6/doc/tools/pyside-lupdate.rst23
-rw-r--r--sources/pyside6/doc/tools/pyside-metaobjectdump.rst92
-rw-r--r--sources/pyside6/doc/tools/pyside-project.rst64
-rw-r--r--sources/pyside6/doc/tools/pyside-qml.rst84
-rw-r--r--sources/pyside6/doc/tools/pyside-qmlcachegen.rst25
-rw-r--r--sources/pyside6/doc/tools/pyside-qmllint.rst49
-rw-r--r--sources/pyside6/doc/tools/pyside-qmltyperegistrar.rst17
-rw-r--r--sources/pyside6/doc/tools/pyside-rcc.rst55
-rw-r--r--sources/pyside6/doc/tools/pyside-uic.rst59
-rw-r--r--sources/pyside6/doc/tools/pyside6-assistant_screenshot.webpbin0 -> 18474 bytes
-rw-r--r--sources/pyside6/doc/tools/pyside6-balsam.rst59
-rw-r--r--sources/pyside6/doc/tools/pyside6-balsamui.rst22
-rw-r--r--sources/pyside6/doc/tools/pyside6-balsamui_screenshot.webpbin0 -> 10190 bytes
-rw-r--r--sources/pyside6/doc/tools/pyside6-designer_base_screenshot.webpbin0 -> 9446 bytes
-rw-r--r--sources/pyside6/doc/tools/pyside6-designer_customwidgets_screenshot.webpbin0 -> 39422 bytes
-rw-r--r--sources/pyside6/doc/tools/pyside6-designer_screenshot.webpbin0 -> 61182 bytes
-rw-r--r--sources/pyside6/doc/tools/pyside6-designer_sections_screenshot.webpbin0 -> 73738 bytes
-rw-r--r--sources/pyside6/doc/tools/pyside6-linguist_screenshot.webpbin0 -> 90474 bytes
-rw-r--r--sources/pyside6/doc/tools/pyside6-qmlimportscanner.rst53
-rw-r--r--sources/pyside6/doc/tools/pyside6-qsb.rst39
-rw-r--r--sources/pyside6/doc/tutorials/basictutorial/clickablebutton.rst6
-rw-r--r--sources/pyside6/doc/tutorials/basictutorial/dialog.rst43
-rw-r--r--sources/pyside6/doc/tutorials/basictutorial/icons.zipbin0 -> 6156 bytes
-rw-r--r--sources/pyside6/doc/tutorials/basictutorial/qrcfiles.rst34
-rw-r--r--sources/pyside6/doc/tutorials/basictutorial/signals_and_slots.rst263
-rw-r--r--sources/pyside6/doc/tutorials/basictutorial/signals_slots.pngbin0 -> 14787 bytes
-rw-r--r--sources/pyside6/doc/tutorials/basictutorial/translations.rst176
-rw-r--r--sources/pyside6/doc/tutorials/basictutorial/treewidget.rst12
-rw-r--r--sources/pyside6/doc/tutorials/basictutorial/uifiles.rst88
-rw-r--r--sources/pyside6/doc/tutorials/basictutorial/widgetstyling.py41
-rw-r--r--sources/pyside6/doc/tutorials/basictutorial/widgetstyling.rst38
-rw-r--r--sources/pyside6/doc/tutorials/datavisualize/add_chart.rst4
-rw-r--r--sources/pyside6/doc/tutorials/datavisualize/add_mainwindow.rst2
-rw-r--r--sources/pyside6/doc/tutorials/datavisualize/add_tableview.rst10
-rw-r--r--sources/pyside6/doc/tutorials/datavisualize/datavisualize.tar.bz2bin6086 -> 0 bytes
-rw-r--r--sources/pyside6/doc/tutorials/datavisualize/datavisualize1/main.py41
-rw-r--r--sources/pyside6/doc/tutorials/datavisualize/datavisualize2/main.py41
-rw-r--r--sources/pyside6/doc/tutorials/datavisualize/datavisualize3/main.py41
-rw-r--r--sources/pyside6/doc/tutorials/datavisualize/datavisualize3/main_window.py44
-rw-r--r--sources/pyside6/doc/tutorials/datavisualize/datavisualize4/main.py41
-rw-r--r--sources/pyside6/doc/tutorials/datavisualize/datavisualize4/main_widget.py41
-rw-r--r--sources/pyside6/doc/tutorials/datavisualize/datavisualize4/main_window.py43
-rw-r--r--sources/pyside6/doc/tutorials/datavisualize/datavisualize4/table_model.py43
-rw-r--r--sources/pyside6/doc/tutorials/datavisualize/datavisualize5/main.py41
-rw-r--r--sources/pyside6/doc/tutorials/datavisualize/datavisualize5/main_widget.py49
-rw-r--r--sources/pyside6/doc/tutorials/datavisualize/datavisualize5/main_window.py43
-rw-r--r--sources/pyside6/doc/tutorials/datavisualize/datavisualize5/table_model.py43
-rw-r--r--sources/pyside6/doc/tutorials/datavisualize/datavisualize6/main.py41
-rw-r--r--sources/pyside6/doc/tutorials/datavisualize/datavisualize6/main_widget.py55
-rw-r--r--sources/pyside6/doc/tutorials/datavisualize/datavisualize6/main_window.py46
-rw-r--r--sources/pyside6/doc/tutorials/datavisualize/datavisualize6/table_model.py43
-rw-r--r--sources/pyside6/doc/tutorials/datavisualize/filter_data.rst2
-rw-r--r--sources/pyside6/doc/tutorials/datavisualize/images/datavisualization_app.pngbin40458 -> 49419 bytes
-rw-r--r--sources/pyside6/doc/tutorials/datavisualize/index.rst7
-rw-r--r--sources/pyside6/doc/tutorials/datavisualize/plot_datapoints.rst4
-rw-r--r--sources/pyside6/doc/tutorials/datavisualize/read_data.rst2
-rw-r--r--sources/pyside6/doc/tutorials/debugging/mixed_debugging.rst126
-rw-r--r--sources/pyside6/doc/tutorials/debugging/qml_debugging.rst32
-rw-r--r--sources/pyside6/doc/tutorials/debugging/qtcreator/breakpoint_cpp.pngbin0 -> 42765 bytes
-rw-r--r--sources/pyside6/doc/tutorials/debugging/qtcreator/custom_executable_create.pngbin0 -> 40278 bytes
-rw-r--r--sources/pyside6/doc/tutorials/debugging/qtcreator/custom_executable_run_config.pngbin0 -> 43483 bytes
-rw-r--r--sources/pyside6/doc/tutorials/debugging/qtcreator/qtcreator.rst39
-rw-r--r--sources/pyside6/doc/tutorials/debugging/qtcreator/start_debugging_without_deployment.pngbin0 -> 49267 bytes
-rw-r--r--sources/pyside6/doc/tutorials/debugging/vscode/audioformat_cpp.pngbin0 -> 43650 bytes
-rw-r--r--sources/pyside6/doc/tutorials/debugging/vscode/audioformat_wrapper.pngbin0 -> 40677 bytes
-rw-r--r--sources/pyside6/doc/tutorials/debugging/vscode/breakpoint_gdb.pngbin0 -> 33684 bytes
-rw-r--r--sources/pyside6/doc/tutorials/debugging/vscode/find_process_gdb.pngbin0 -> 42303 bytes
-rw-r--r--sources/pyside6/doc/tutorials/debugging/vscode/python_set_interpreter.pngbin0 -> 4664 bytes
-rw-r--r--sources/pyside6/doc/tutorials/debugging/vscode/vscode.rst192
-rw-r--r--sources/pyside6/doc/tutorials/expenses/expenses.rst107
-rw-r--r--sources/pyside6/doc/tutorials/expenses/main.py112
-rw-r--r--sources/pyside6/doc/tutorials/expenses/main_snake_prop.py65
-rw-r--r--sources/pyside6/doc/tutorials/expenses/steps/01-expenses.py43
-rw-r--r--sources/pyside6/doc/tutorials/expenses/steps/02-expenses.py48
-rw-r--r--sources/pyside6/doc/tutorials/expenses/steps/03-expenses.py55
-rw-r--r--sources/pyside6/doc/tutorials/expenses/steps/04-expenses.py55
-rw-r--r--sources/pyside6/doc/tutorials/expenses/steps/05-expenses.py67
-rw-r--r--sources/pyside6/doc/tutorials/expenses/steps/06-expenses.py83
-rw-r--r--sources/pyside6/doc/tutorials/expenses/steps/07-expenses.py91
-rw-r--r--sources/pyside6/doc/tutorials/expenses/steps/08-expenses.py101
-rw-r--r--sources/pyside6/doc/tutorials/expenses/steps/09-expenses.py102
-rw-r--r--sources/pyside6/doc/tutorials/expenses/steps/10-expenses.py112
-rw-r--r--sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/Main.qml196
-rw-r--r--sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/app.qrc16
-rw-r--r--sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons.qrc15
-rw-r--r--sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/app_icon.svg2
-rw-r--r--sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/folder_closed.svg38
-rw-r--r--sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/folder_open.svg38
-rw-r--r--sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/generic_file.svg38
-rw-r--r--sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/globe.svg38
-rw-r--r--sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/info_sign.svg38
-rw-r--r--sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/leaf.svg7
-rw-r--r--sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/light_bulb.svg43
-rw-r--r--sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/qt_logo.svg26
-rw-r--r--sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/read.svg38
-rw-r--r--sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/resize.svg6
-rw-r--r--sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/qml/About.qml93
-rw-r--r--sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/qml/ColorScheme.qml118
-rw-r--r--sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/qml/Editor.qml160
-rw-r--r--sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/qml/FileSystemView.qml156
-rw-r--r--sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/qml/MyMenu.qml45
-rw-r--r--sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/qml/MyMenuBar.qml177
-rw-r--r--sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/qml/ResizeButton.qml23
-rw-r--r--sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/qml/Sidebar.qml146
-rw-r--r--sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/qml/WindowDragHandler.qml16
-rw-r--r--sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/qmldir11
-rw-r--r--sources/pyside6/doc/tutorials/extendedexplorer/editormodels.py116
-rw-r--r--sources/pyside6/doc/tutorials/extendedexplorer/extendedexplorer.md210
-rw-r--r--sources/pyside6/doc/tutorials/extendedexplorer/extendedexplorer.pyproject31
-rw-r--r--sources/pyside6/doc/tutorials/extendedexplorer/main.py50
-rw-r--r--sources/pyside6/doc/tutorials/extendedexplorer/resources/Colors.qml22
-rw-r--r--sources/pyside6/doc/tutorials/extendedexplorer/resources/colorscheme.pngbin0 -> 27675 bytes
-rw-r--r--sources/pyside6/doc/tutorials/extendedexplorer/resources/extendedexplorer.gifbin0 -> 2082470 bytes
-rw-r--r--sources/pyside6/doc/tutorials/extendedexplorer/resources/extendedexplorer.webpbin0 -> 23628 bytes
-rw-r--r--sources/pyside6/doc/tutorials/extendedexplorer/scheme_manager.py97
-rw-r--r--sources/pyside6/doc/tutorials/extendedexplorer/schemes.json82
-rw-r--r--sources/pyside6/doc/tutorials/index.rst291
-rw-r--r--sources/pyside6/doc/tutorials/modelviewprogramming/qlistview-dnd.py137
-rw-r--r--sources/pyside6/doc/tutorials/modelviewprogramming/simplemodel-use.py44
-rw-r--r--sources/pyside6/doc/tutorials/modelviewprogramming/stringlistmodel.py124
-rw-r--r--sources/pyside6/doc/tutorials/portingguide/chapter1/chapter1.rst26
-rw-r--r--sources/pyside6/doc/tutorials/portingguide/chapter1/createdb.py41
-rw-r--r--sources/pyside6/doc/tutorials/portingguide/chapter1/initdb.h51
-rw-r--r--sources/pyside6/doc/tutorials/portingguide/chapter1/main.py41
-rw-r--r--sources/pyside6/doc/tutorials/portingguide/chapter2/bookdelegate.cpp51
-rw-r--r--sources/pyside6/doc/tutorials/portingguide/chapter2/bookdelegate.h51
-rw-r--r--sources/pyside6/doc/tutorials/portingguide/chapter2/bookdelegate.py41
-rw-r--r--sources/pyside6/doc/tutorials/portingguide/chapter2/chapter2.rst20
-rw-r--r--sources/pyside6/doc/tutorials/portingguide/chapter2/createdb.py41
-rw-r--r--sources/pyside6/doc/tutorials/portingguide/chapter2/main.py41
-rw-r--r--sources/pyside6/doc/tutorials/portingguide/chapter3/bookdelegate-old.py41
-rw-r--r--sources/pyside6/doc/tutorials/portingguide/chapter3/bookdelegate.py41
-rw-r--r--sources/pyside6/doc/tutorials/portingguide/chapter3/bookwindow.cpp51
-rw-r--r--sources/pyside6/doc/tutorials/portingguide/chapter3/bookwindow.py41
-rw-r--r--sources/pyside6/doc/tutorials/portingguide/chapter3/chapter3.rst20
-rw-r--r--sources/pyside6/doc/tutorials/portingguide/chapter3/createdb.py41
-rw-r--r--sources/pyside6/doc/tutorials/portingguide/chapter3/main-old.py41
-rw-r--r--sources/pyside6/doc/tutorials/portingguide/chapter3/main.py41
-rw-r--r--sources/pyside6/doc/tutorials/portingguide/hello_world_ex.py41
-rw-r--r--sources/pyside6/doc/tutorials/portingguide/index.rst6
-rw-r--r--sources/pyside6/doc/tutorials/pretutorial/typesoffiles.rst152
-rw-r--r--sources/pyside6/doc/tutorials/pretutorial/whatisqt.rst112
-rw-r--r--sources/pyside6/doc/tutorials/pretutorial/whatisshiboken.rst42
-rw-r--r--sources/pyside6/doc/tutorials/pretutorial/whichide.rst54
-rw-r--r--sources/pyside6/doc/tutorials/pretutorial/whyqtforpython.rst205
-rw-r--r--sources/pyside6/doc/tutorials/qmlapp/main.py41
-rw-r--r--sources/pyside6/doc/tutorials/qmlapp/qmlapplication.rst20
-rw-r--r--sources/pyside6/doc/tutorials/qmlapp/view.qml51
-rw-r--r--sources/pyside6/doc/tutorials/qmlintegration/main.py41
-rw-r--r--sources/pyside6/doc/tutorials/qmlintegration/qmlintegration.rst36
-rw-r--r--sources/pyside6/doc/tutorials/qmlintegration/view.qml41
-rw-r--r--sources/pyside6/doc/tutorials/qmlsqlintegration/chat.qml40
-rw-r--r--sources/pyside6/doc/tutorials/qmlsqlintegration/main.py40
-rw-r--r--sources/pyside6/doc/tutorials/qmlsqlintegration/qmlsqlintegration.rst98
-rw-r--r--sources/pyside6/doc/tutorials/qmlsqlintegration/sqlDialog.py40
-rw-r--r--sources/pyside6/doc/typesystem_doc.xml.in50
-rw-r--r--sources/pyside6/doc/videos.rst225
-rw-r--r--sources/pyside6/libpyside/CMakeLists.txt105
-rw-r--r--sources/pyside6/libpyside/class_property.cpp177
-rw-r--r--sources/pyside6/libpyside/class_property.h64
-rw-r--r--sources/pyside6/libpyside/dynamicqmetaobject.cpp267
-rw-r--r--sources/pyside6/libpyside/dynamicqmetaobject.h49
-rw-r--r--sources/pyside6/libpyside/dynamicqmetaobject_p.h108
-rw-r--r--sources/pyside6/libpyside/feature_select.cpp434
-rw-r--r--sources/pyside6/libpyside/feature_select.h48
-rw-r--r--sources/pyside6/libpyside/globalreceiverv2.cpp245
-rw-r--r--sources/pyside6/libpyside/globalreceiverv2.h181
-rw-r--r--sources/pyside6/libpyside/libpyside.qrc2
-rw-r--r--sources/pyside6/libpyside/pyside.cpp776
-rw-r--r--sources/pyside6/libpyside/pyside.h182
-rw-r--r--sources/pyside6/libpyside/pyside_numpy.cpp205
-rw-r--r--sources/pyside6/libpyside/pyside_numpy.h58
-rw-r--r--sources/pyside6/libpyside/pyside_p.h40
-rw-r--r--sources/pyside6/libpyside/pysideclassdecorator.cpp103
-rw-r--r--sources/pyside6/libpyside/pysideclassdecorator_p.h164
-rw-r--r--sources/pyside6/libpyside/pysideclassinfo.cpp206
-rw-r--r--sources/pyside6/libpyside/pysideclassinfo.h67
-rw-r--r--sources/pyside6/libpyside/pysideclassinfo_p.h67
-rw-r--r--sources/pyside6/libpyside/pysidecleanup.h20
-rw-r--r--sources/pyside6/libpyside/pysideinit.h27
-rw-r--r--sources/pyside6/libpyside/pysidelogging_p.h11
-rw-r--r--sources/pyside6/libpyside/pysidemacros.h40
-rw-r--r--sources/pyside6/libpyside/pysidemetafunction.cpp97
-rw-r--r--sources/pyside6/libpyside/pysidemetafunction.h47
-rw-r--r--sources/pyside6/libpyside/pysidemetafunction_p.h47
-rw-r--r--sources/pyside6/libpyside/pysidemetatype.h26
-rw-r--r--sources/pyside6/libpyside/pysideproperty.cpp320
-rw-r--r--sources/pyside6/libpyside/pysideproperty.h57
-rw-r--r--sources/pyside6/libpyside/pysideproperty_p.h79
-rw-r--r--sources/pyside6/libpyside/pysideqapp.h19
-rw-r--r--sources/pyside6/libpyside/pysideqenum.cpp81
-rw-r--r--sources/pyside6/libpyside/pysideqenum.h45
-rw-r--r--sources/pyside6/libpyside/pysideqflags.cpp201
-rw-r--r--sources/pyside6/libpyside/pysideqflags.h79
-rw-r--r--sources/pyside6/libpyside/pysideqhash.h24
-rw-r--r--sources/pyside6/libpyside/pysideqmetatype.h35
-rw-r--r--sources/pyside6/libpyside/pysideqobject.h70
-rw-r--r--sources/pyside6/libpyside/pysideqslotobject_p.cpp36
-rw-r--r--sources/pyside6/libpyside/pysideqslotobject_p.h39
-rw-r--r--sources/pyside6/libpyside/pysidesignal.cpp1158
-rw-r--r--sources/pyside6/libpyside/pysidesignal.h70
-rw-r--r--sources/pyside6/libpyside/pysidesignal_p.h58
-rw-r--r--sources/pyside6/libpyside/pysideslot.cpp157
-rw-r--r--sources/pyside6/libpyside/pysideslot_p.h65
-rw-r--r--sources/pyside6/libpyside/pysidestaticstrings.cpp49
-rw-r--r--sources/pyside6/libpyside/pysidestaticstrings.h78
-rw-r--r--sources/pyside6/libpyside/pysideutils.h69
-rw-r--r--sources/pyside6/libpyside/pysideweakref.cpp94
-rw-r--r--sources/pyside6/libpyside/pysideweakref.h48
-rw-r--r--sources/pyside6/libpyside/qobjectconnect.cpp336
-rw-r--r--sources/pyside6/libpyside/qobjectconnect.h47
-rw-r--r--sources/pyside6/libpyside/signalmanager.cpp697
-rw-r--r--sources/pyside6/libpyside/signalmanager.h65
-rw-r--r--sources/pyside6/libpysideqml/CMakeLists.txt115
-rw-r--r--sources/pyside6/libpysideqml/PySide6QmlConfig-spec.cmake.in7
-rw-r--r--sources/pyside6/libpysideqml/PySide6QmlConfig.cmake.in5
-rw-r--r--sources/pyside6/libpysideqml/PySide6QmlConfigVersion.cmake.in10
-rw-r--r--sources/pyside6/libpysideqml/pysideqml.cpp35
-rw-r--r--sources/pyside6/libpysideqml/pysideqml.h18
-rw-r--r--sources/pyside6/libpysideqml/pysideqmlattached.cpp216
-rw-r--r--sources/pyside6/libpysideqml/pysideqmlattached.h28
-rw-r--r--sources/pyside6/libpysideqml/pysideqmlattached_p.h21
-rw-r--r--sources/pyside6/libpysideqml/pysideqmlextended.cpp145
-rw-r--r--sources/pyside6/libpysideqml/pysideqmlextended_p.h21
-rw-r--r--sources/pyside6/libpysideqml/pysideqmlforeign.cpp92
-rw-r--r--sources/pyside6/libpysideqml/pysideqmlforeign_p.h17
-rw-r--r--sources/pyside6/libpysideqml/pysideqmllistproperty.cpp307
-rw-r--r--sources/pyside6/libpysideqml/pysideqmllistproperty_p.h13
-rw-r--r--sources/pyside6/libpysideqml/pysideqmlmacros.h18
-rw-r--r--sources/pyside6/libpysideqml/pysideqmlmetacallerror.cpp67
-rw-r--r--sources/pyside6/libpysideqml/pysideqmlmetacallerror_p.h21
-rw-r--r--sources/pyside6/libpysideqml/pysideqmlnamedelement.cpp74
-rw-r--r--sources/pyside6/libpysideqml/pysideqmlnamedelement_p.h11
-rw-r--r--sources/pyside6/libpysideqml/pysideqmlregistertype.cpp734
-rw-r--r--sources/pyside6/libpysideqml/pysideqmlregistertype.h99
-rw-r--r--sources/pyside6/libpysideqml/pysideqmlregistertype_p.h20
-rw-r--r--sources/pyside6/libpysideqml/pysideqmltypeinfo.cpp70
-rw-r--r--sources/pyside6/libpysideqml/pysideqmltypeinfo_p.h59
-rw-r--r--sources/pyside6/libpysideqml/pysideqmluncreatable.cpp111
-rw-r--r--sources/pyside6/libpysideqml/pysideqmluncreatable.h23
-rw-r--r--sources/pyside6/plugins/designer/CMakeLists.txt12
-rw-r--r--sources/pyside6/plugins/designer/designercustomwidgets.cpp84
-rw-r--r--sources/pyside6/plugins/designer/designercustomwidgets.h50
-rw-r--r--sources/pyside6/plugins/uitools/CMakeLists.txt18
-rw-r--r--sources/pyside6/plugins/uitools/customwidget.cpp64
-rw-r--r--sources/pyside6/plugins/uitools/customwidget.h48
-rw-r--r--sources/pyside6/plugins/uitools/customwidgets.cpp40
-rw-r--r--sources/pyside6/plugins/uitools/customwidgets.h48
-rw-r--r--sources/pyside6/pyside_version.py50
-rw-r--r--sources/pyside6/qtexampleicons/CMakeLists.txt52
-rw-r--r--sources/pyside6/qtexampleicons/module.c41
-rw-r--r--sources/pyside6/tests/CMakeLists.txt23
-rw-r--r--sources/pyside6/tests/Qt3DExtras/Qt3DExtras.pyproject3
-rw-r--r--sources/pyside6/tests/Qt3DExtras/qt3dextras_test.py34
-rw-r--r--sources/pyside6/tests/QtAsyncio/CMakeLists.txt2
-rw-r--r--sources/pyside6/tests/QtAsyncio/QtAsyncio.pyproject3
-rw-r--r--sources/pyside6/tests/QtAsyncio/qasyncio_test.py51
-rw-r--r--sources/pyside6/tests/QtAsyncio/qasyncio_test_cancel_task.py46
-rw-r--r--sources/pyside6/tests/QtAsyncio/qasyncio_test_cancel_taskgroup.py57
-rw-r--r--sources/pyside6/tests/QtAsyncio/qasyncio_test_chain.py57
-rw-r--r--sources/pyside6/tests/QtAsyncio/qasyncio_test_executor.py47
-rw-r--r--sources/pyside6/tests/QtAsyncio/qasyncio_test_queues.py70
-rw-r--r--sources/pyside6/tests/QtAsyncio/qasyncio_test_threadsafe.py58
-rw-r--r--sources/pyside6/tests/QtAsyncio/qasyncio_test_time.py49
-rw-r--r--sources/pyside6/tests/QtBluetooth/CMakeLists.txt1
-rw-r--r--sources/pyside6/tests/QtBluetooth/QtBluetooth.pyproject4
-rw-r--r--sources/pyside6/tests/QtBluetooth/localdevice.py32
-rw-r--r--sources/pyside6/tests/QtBluetooth/lowenergy_characteristics.py51
-rw-r--r--sources/pyside6/tests/QtCharts/CMakeLists.txt1
-rw-r--r--sources/pyside6/tests/QtCharts/QtCharts.pyproject3
-rw-r--r--sources/pyside6/tests/QtCharts/qcharts_numpy_test.py49
-rw-r--r--sources/pyside6/tests/QtCharts/qcharts_test.py30
-rw-r--r--sources/pyside6/tests/QtCore/CMakeLists.txt10
-rw-r--r--sources/pyside6/tests/QtCore/QtCore.pyproject148
-rw-r--r--sources/pyside6/tests/QtCore/attr_cache_py3k.py42
-rw-r--r--sources/pyside6/tests/QtCore/blocking_signals_test.py68
-rw-r--r--sources/pyside6/tests/QtCore/bug_1019.py30
-rw-r--r--sources/pyside6/tests/QtCore/bug_1063.py29
-rw-r--r--sources/pyside6/tests/QtCore/bug_1069.py29
-rw-r--r--sources/pyside6/tests/QtCore/bug_1313.py29
-rw-r--r--sources/pyside6/tests/QtCore/bug_278_test.py30
-rw-r--r--sources/pyside6/tests/QtCore/bug_300_test.py29
-rw-r--r--sources/pyside6/tests/QtCore/bug_324.py43
-rw-r--r--sources/pyside6/tests/QtCore/bug_332.py30
-rw-r--r--sources/pyside6/tests/QtCore/bug_408.py29
-rw-r--r--sources/pyside6/tests/QtCore/bug_428.py29
-rw-r--r--sources/pyside6/tests/QtCore/bug_462.py31
-rw-r--r--sources/pyside6/tests/QtCore/bug_505.py32
-rw-r--r--sources/pyside6/tests/QtCore/bug_515.py31
-rw-r--r--sources/pyside6/tests/QtCore/bug_606.py29
-rw-r--r--sources/pyside6/tests/QtCore/bug_656.py29
-rw-r--r--sources/pyside6/tests/QtCore/bug_686.py58
-rw-r--r--sources/pyside6/tests/QtCore/bug_699.py29
-rw-r--r--sources/pyside6/tests/QtCore/bug_706.py29
-rw-r--r--sources/pyside6/tests/QtCore/bug_820.py29
-rw-r--r--sources/pyside6/tests/QtCore/bug_826.py35
-rw-r--r--sources/pyside6/tests/QtCore/bug_829.py36
-rw-r--r--sources/pyside6/tests/QtCore/bug_835.py29
-rw-r--r--sources/pyside6/tests/QtCore/bug_920.py30
-rw-r--r--sources/pyside6/tests/QtCore/bug_927.py29
-rw-r--r--sources/pyside6/tests/QtCore/bug_931.py29
-rw-r--r--sources/pyside6/tests/QtCore/bug_938.py29
-rw-r--r--sources/pyside6/tests/QtCore/bug_953.py32
-rw-r--r--sources/pyside6/tests/QtCore/bug_987.py31
-rw-r--r--sources/pyside6/tests/QtCore/bug_994.py29
-rw-r--r--sources/pyside6/tests/QtCore/bug_PYSIDE-164.py41
-rw-r--r--sources/pyside6/tests/QtCore/bug_PYSIDE-41.py49
-rw-r--r--sources/pyside6/tests/QtCore/bug_PYSIDE-42.py29
-rw-r--r--sources/pyside6/tests/QtCore/child_event_test.py38
-rw-r--r--sources/pyside6/tests/QtCore/classinfo_test.py40
-rw-r--r--sources/pyside6/tests/QtCore/deepcopy_test.py29
-rw-r--r--sources/pyside6/tests/QtCore/deletelater_test.py37
-rw-r--r--sources/pyside6/tests/QtCore/destroysignal_test.py70
-rw-r--r--sources/pyside6/tests/QtCore/duck_punching_test.py41
-rw-r--r--sources/pyside6/tests/QtCore/emoji_string_test.py42
-rw-r--r--sources/pyside6/tests/QtCore/errormessages_with_features_test.py69
-rw-r--r--sources/pyside6/tests/QtCore/feature_with_uic/window.py42
-rw-r--r--sources/pyside6/tests/QtCore/feature_with_uic_test.py53
-rw-r--r--sources/pyside6/tests/QtCore/hash_test.py65
-rw-r--r--sources/pyside6/tests/QtCore/inherits_test.py29
-rw-r--r--sources/pyside6/tests/QtCore/loggingcategorymacros_test.py84
-rw-r--r--sources/pyside6/tests/QtCore/max_signals.py29
-rw-r--r--sources/pyside6/tests/QtCore/missing_symbols_test.py29
-rw-r--r--sources/pyside6/tests/QtCore/mockclass_test.py29
-rw-r--r--sources/pyside6/tests/QtCore/multiple_feature_test.py68
-rw-r--r--sources/pyside6/tests/QtCore/python_conversion.py30
-rw-r--r--sources/pyside6/tests/QtCore/qabs_test.py29
-rw-r--r--sources/pyside6/tests/QtCore/qabstractitemmodel_test.py31
-rw-r--r--sources/pyside6/tests/QtCore/qanimationgroup_test.py30
-rw-r--r--sources/pyside6/tests/QtCore/qbitarray_test.py33
-rw-r--r--sources/pyside6/tests/QtCore/qbytearray_concatenation_operator_test.py31
-rw-r--r--sources/pyside6/tests/QtCore/qbytearray_operator_iadd_test.py29
-rw-r--r--sources/pyside6/tests/QtCore/qbytearray_operator_test.py31
-rw-r--r--sources/pyside6/tests/QtCore/qbytearray_test.py72
-rw-r--r--sources/pyside6/tests/QtCore/qcalendar_test.py30
-rw-r--r--sources/pyside6/tests/QtCore/qcbor_test.py37
-rw-r--r--sources/pyside6/tests/QtCore/qcollator_test.py30
-rw-r--r--sources/pyside6/tests/QtCore/qcommandlineparser_test.py30
-rw-r--r--sources/pyside6/tests/QtCore/qcoreapplication_argv_test.py29
-rw-r--r--sources/pyside6/tests/QtCore/qcoreapplication_instance_test.py31
-rw-r--r--sources/pyside6/tests/QtCore/qcoreapplication_test.py29
-rw-r--r--sources/pyside6/tests/QtCore/qdatastream_test.py61
-rw-r--r--sources/pyside6/tests/QtCore/qdate_test.py30
-rw-r--r--sources/pyside6/tests/QtCore/qdatetime_test.py29
-rw-r--r--sources/pyside6/tests/QtCore/qdir_test.py29
-rw-r--r--sources/pyside6/tests/QtCore/qeasingcurve_test.py32
-rw-r--r--sources/pyside6/tests/QtCore/qenum_test.py75
-rw-r--r--sources/pyside6/tests/QtCore/qevent_test.py30
-rw-r--r--sources/pyside6/tests/QtCore/qfile_test.py29
-rw-r--r--sources/pyside6/tests/QtCore/qfileinfo_test.py29
-rw-r--r--sources/pyside6/tests/QtCore/qfileread_test.py29
-rw-r--r--sources/pyside6/tests/QtCore/qflags_test.py71
-rw-r--r--sources/pyside6/tests/QtCore/qhandle_test.py30
-rw-r--r--sources/pyside6/tests/QtCore/qinstallmsghandler_test.py41
-rw-r--r--sources/pyside6/tests/QtCore/qiodevice_buffered_read_test.py78
-rw-r--r--sources/pyside6/tests/QtCore/qiopipe_test.py36
-rw-r--r--sources/pyside6/tests/QtCore/qjsondocument_test.py30
-rw-r--r--sources/pyside6/tests/QtCore/qlinef_test.py30
-rw-r--r--sources/pyside6/tests/QtCore/qlocale_test.py52
-rw-r--r--sources/pyside6/tests/QtCore/qlockfile_test.py33
-rw-r--r--sources/pyside6/tests/QtCore/qmessageauthenticationcode_test.py30
-rw-r--r--sources/pyside6/tests/QtCore/qmetaobject_test.py192
-rw-r--r--sources/pyside6/tests/QtCore/qmetatype_test.py43
-rw-r--r--sources/pyside6/tests/QtCore/qmimedatabase_test.py38
-rw-r--r--sources/pyside6/tests/QtCore/qmodelindex_internalpointer_test.py34
-rw-r--r--sources/pyside6/tests/QtCore/qobject_children_segfault_test.py32
-rw-r--r--sources/pyside6/tests/QtCore/qobject_connect_notify_test.py69
-rw-r--r--sources/pyside6/tests/QtCore/qobject_destructor.py29
-rw-r--r--sources/pyside6/tests/QtCore/qobject_event_filter_test.py56
-rw-r--r--sources/pyside6/tests/QtCore/qobject_inherits_test.py34
-rw-r--r--sources/pyside6/tests/QtCore/qobject_objectproperty_test.py31
-rw-r--r--sources/pyside6/tests/QtCore/qobject_parent_test.py37
-rw-r--r--sources/pyside6/tests/QtCore/qobject_property_test.py29
-rw-r--r--sources/pyside6/tests/QtCore/qobject_protected_methods_test.py30
-rw-r--r--sources/pyside6/tests/QtCore/qobject_test.py31
-rw-r--r--sources/pyside6/tests/QtCore/qobject_timer_event_test.py34
-rw-r--r--sources/pyside6/tests/QtCore/qobject_tr_as_instance_test.py36
-rw-r--r--sources/pyside6/tests/QtCore/qoperatingsystemversion_test.py29
-rw-r--r--sources/pyside6/tests/QtCore/qpoint_test.py29
-rw-r--r--sources/pyside6/tests/QtCore/qprocess_test.py30
-rw-r--r--sources/pyside6/tests/QtCore/qproperty_decorator.py34
-rw-r--r--sources/pyside6/tests/QtCore/qrandomgenerator_test.py29
-rw-r--r--sources/pyside6/tests/QtCore/qrect_test.py30
-rw-r--r--sources/pyside6/tests/QtCore/qregularexpression_test.py30
-rw-r--r--sources/pyside6/tests/QtCore/qresource_test.py33
-rw-r--r--sources/pyside6/tests/QtCore/qrunnable_test.py45
-rw-r--r--sources/pyside6/tests/QtCore/qsettings_test.py49
-rw-r--r--sources/pyside6/tests/QtCore/qsharedmemory_client.py29
-rw-r--r--sources/pyside6/tests/QtCore/qsharedmemory_test.py29
-rw-r--r--sources/pyside6/tests/QtCore/qsize_test.py30
-rw-r--r--sources/pyside6/tests/QtCore/qslot_object_test.py41
-rw-r--r--sources/pyside6/tests/QtCore/qsocketnotifier_test.py35
-rw-r--r--sources/pyside6/tests/QtCore/qsrand_test.py34
-rw-r--r--sources/pyside6/tests/QtCore/qstandardpaths_test.py30
-rw-r--r--sources/pyside6/tests/QtCore/qstorageinfo_test.py30
-rw-r--r--sources/pyside6/tests/QtCore/qstring_test.py35
-rw-r--r--sources/pyside6/tests/QtCore/qsysinfo_test.py38
-rw-r--r--sources/pyside6/tests/QtCore/qtextstream_test.py29
-rw-r--r--sources/pyside6/tests/QtCore/qthread_prod_cons_test.py45
-rw-r--r--sources/pyside6/tests/QtCore/qthread_signal_test.py62
-rw-r--r--sources/pyside6/tests/QtCore/qthread_test.py91
-rw-r--r--sources/pyside6/tests/QtCore/qtimer_singleshot_test.py152
-rw-r--r--sources/pyside6/tests/QtCore/qtimer_timeout_test.py40
-rw-r--r--sources/pyside6/tests/QtCore/qtimezone_test.py29
-rw-r--r--sources/pyside6/tests/QtCore/qtnamespace_test.py30
-rw-r--r--sources/pyside6/tests/QtCore/qurl_test.py30
-rw-r--r--sources/pyside6/tests/QtCore/qurlquery_test.py30
-rw-r--r--sources/pyside6/tests/QtCore/quuid_test.py30
-rw-r--r--sources/pyside6/tests/QtCore/qversionnumber_test.py30
-rw-r--r--sources/pyside6/tests/QtCore/repr_test.py29
-rw-r--r--sources/pyside6/tests/QtCore/resources_mc.py31
-rw-r--r--sources/pyside6/tests/QtCore/setprop_on_ctor_test.py30
-rw-r--r--sources/pyside6/tests/QtCore/signal_sender.py91
-rw-r--r--sources/pyside6/tests/QtCore/snake_prop_feature_test.py104
-rw-r--r--sources/pyside6/tests/QtCore/staticMetaObject_test.py29
-rw-r--r--sources/pyside6/tests/QtCore/static_method_test.py30
-rw-r--r--sources/pyside6/tests/QtCore/thread_signals_test.py41
-rw-r--r--sources/pyside6/tests/QtCore/tr_noop_test.py32
-rw-r--r--sources/pyside6/tests/QtCore/translation_test.py35
-rw-r--r--sources/pyside6/tests/QtCore/unaryoperator_test.py33
-rw-r--r--sources/pyside6/tests/QtCore/unicode_test.py31
-rw-r--r--sources/pyside6/tests/QtCore/versioninfo_test.py29
-rw-r--r--sources/pyside6/tests/QtDBus/CMakeLists.txt3
-rw-r--r--sources/pyside6/tests/QtDBus/QtDBus.pyproject3
-rw-r--r--sources/pyside6/tests/QtDBus/test_dbus.py33
-rw-r--r--sources/pyside6/tests/QtDataVisualization/QtDataVisualization.pyproject3
-rw-r--r--sources/pyside6/tests/QtDataVisualization/datavisualization_test.py55
-rw-r--r--sources/pyside6/tests/QtGraphs/CMakeLists.txt (renamed from sources/pyside6/tests/QtWinExtras/CMakeLists.txt)0
-rw-r--r--sources/pyside6/tests/QtGui/CMakeLists.txt20
-rw-r--r--sources/pyside6/tests/QtGui/QtGui.pyproject56
-rw-r--r--sources/pyside6/tests/QtGui/bug_1091.py29
-rw-r--r--sources/pyside6/tests/QtGui/bug_300_test.py54
-rw-r--r--sources/pyside6/tests/QtGui/bug_367.py29
-rw-r--r--sources/pyside6/tests/QtGui/bug_480.py64
-rw-r--r--sources/pyside6/tests/QtGui/bug_493.py32
-rw-r--r--sources/pyside6/tests/QtGui/bug_606.py40
-rw-r--r--sources/pyside6/tests/QtGui/bug_617.py31
-rw-r--r--sources/pyside6/tests/QtGui/bug_652.py32
-rw-r--r--sources/pyside6/tests/QtGui/bug_660.py29
-rw-r--r--sources/pyside6/tests/QtGui/bug_716.py29
-rw-r--r--sources/pyside6/tests/QtGui/bug_740.py29
-rw-r--r--sources/pyside6/tests/QtGui/bug_743.py29
-rw-r--r--sources/pyside6/tests/QtGui/bug_785.py41
-rw-r--r--sources/pyside6/tests/QtGui/bug_991.py29
-rw-r--r--sources/pyside6/tests/QtGui/bug_PYSIDE-344.py30
-rw-r--r--sources/pyside6/tests/QtGui/bug_PYSIDE-41.py78
-rw-r--r--sources/pyside6/tests/QtGui/deepcopy_test.py29
-rw-r--r--sources/pyside6/tests/QtGui/event_filter_test.py51
-rw-r--r--sources/pyside6/tests/QtGui/float_to_int_implicit_conversion_test.py32
-rw-r--r--sources/pyside6/tests/QtGui/pyside_reload_test.py29
-rw-r--r--sources/pyside6/tests/QtGui/qbrush_test.py35
-rw-r--r--sources/pyside6/tests/QtGui/qcolor_reduce_test.py29
-rw-r--r--sources/pyside6/tests/QtGui/qcolor_test.py36
-rw-r--r--sources/pyside6/tests/QtGui/qcursor_test.py29
-rw-r--r--sources/pyside6/tests/QtGui/qdatastream_gui_operators_test.py31
-rw-r--r--sources/pyside6/tests/QtGui/qdesktopservices_test.py29
-rw-r--r--sources/pyside6/tests/QtGui/qfont_test.py35
-rw-r--r--sources/pyside6/tests/QtGui/qfontmetrics_test.py42
-rw-r--r--sources/pyside6/tests/QtGui/qguiapplication_test.py29
-rw-r--r--sources/pyside6/tests/QtGui/qicon_test.py54
-rw-r--r--sources/pyside6/tests/QtGui/qimage_test.py56
-rw-r--r--sources/pyside6/tests/QtGui/qimage_win_test.py41
-rw-r--r--sources/pyside6/tests/QtGui/qitemselection_test.py29
-rw-r--r--sources/pyside6/tests/QtGui/qkeysequence_test.py46
-rw-r--r--sources/pyside6/tests/QtGui/qpainter_test.py48
-rw-r--r--sources/pyside6/tests/QtGui/qpdfwriter_test.py29
-rw-r--r--sources/pyside6/tests/QtGui/qpen_test.py57
-rw-r--r--sources/pyside6/tests/QtGui/qpixelformat_test.py29
-rw-r--r--sources/pyside6/tests/QtGui/qpixmap_constructor.py260
-rw-r--r--sources/pyside6/tests/QtGui/qpixmap_test.py29
-rw-r--r--sources/pyside6/tests/QtGui/qpixmapcache_test.py29
-rw-r--r--sources/pyside6/tests/QtGui/qpolygonf_test.py29
-rw-r--r--sources/pyside6/tests/QtGui/qradialgradient_test.py29
-rw-r--r--sources/pyside6/tests/QtGui/qrasterwindow_test.py76
-rw-r--r--sources/pyside6/tests/QtGui/qregion_test.py39
-rw-r--r--sources/pyside6/tests/QtGui/qshortcut_test.py60
-rw-r--r--sources/pyside6/tests/QtGui/qstandarditemmodel_test.py85
-rw-r--r--sources/pyside6/tests/QtGui/qstring_qkeysequence_test.py42
-rw-r--r--sources/pyside6/tests/QtGui/qstylehints_test.py29
-rw-r--r--sources/pyside6/tests/QtGui/qtextdocument_functions.py42
-rw-r--r--sources/pyside6/tests/QtGui/qtextdocument_undoredo_test.py29
-rw-r--r--sources/pyside6/tests/QtGui/qtextdocumentwriter_test.py29
-rw-r--r--sources/pyside6/tests/QtGui/qtextline_test.py36
-rw-r--r--sources/pyside6/tests/QtGui/qtransform_test.py37
-rw-r--r--sources/pyside6/tests/QtGui/repr_test.py29
-rw-r--r--sources/pyside6/tests/QtGui/timed_app_and_patching_test.py58
-rw-r--r--sources/pyside6/tests/QtGui/xpm_data.py237
-rw-r--r--sources/pyside6/tests/QtHelp/QtHelp.pyproject4
-rw-r--r--sources/pyside6/tests/QtHelp/help_test.py29
-rw-r--r--sources/pyside6/tests/QtHelp/helpsearchengine_test.py29
-rw-r--r--sources/pyside6/tests/QtHttpServer/CMakeLists.txt1
-rw-r--r--sources/pyside6/tests/QtLocation/QtLocation.pyproject3
-rw-r--r--sources/pyside6/tests/QtLocation/location.py29
-rw-r--r--sources/pyside6/tests/QtMultimedia/QtMultimedia.pyproject3
-rw-r--r--sources/pyside6/tests/QtMultimedia/audio_test.py73
-rw-r--r--sources/pyside6/tests/QtMultimediaWidgets/QtMultimediaWidgets.pyproject3
-rw-r--r--sources/pyside6/tests/QtMultimediaWidgets/qmultimediawidgets.py29
-rw-r--r--sources/pyside6/tests/QtNetwork/CMakeLists.txt3
-rw-r--r--sources/pyside6/tests/QtNetwork/QtNetwork.pyproject11
-rw-r--r--sources/pyside6/tests/QtNetwork/accessManager_test.py33
-rw-r--r--sources/pyside6/tests/QtNetwork/bug_1084.py29
-rw-r--r--sources/pyside6/tests/QtNetwork/bug_446.py33
-rw-r--r--sources/pyside6/tests/QtNetwork/dnslookup_test.py32
-rw-r--r--sources/pyside6/tests/QtNetwork/qhostinfo_test.py35
-rw-r--r--sources/pyside6/tests/QtNetwork/qipv6address_test.py29
-rw-r--r--sources/pyside6/tests/QtNetwork/qpassworddigestor_test.py30
-rw-r--r--sources/pyside6/tests/QtNetwork/tcpserver_test.py32
-rw-r--r--sources/pyside6/tests/QtNetwork/udpsocket_test.py32
-rw-r--r--sources/pyside6/tests/QtNfc/CMakeLists.txt1
-rw-r--r--sources/pyside6/tests/QtNfc/QtNfc.pyproject3
-rw-r--r--sources/pyside6/tests/QtNfc/test_nfc.py29
-rw-r--r--sources/pyside6/tests/QtOpenGL/QtOpenGL.pyproject4
-rw-r--r--sources/pyside6/tests/QtOpenGL/qopenglbuffer_test.py29
-rw-r--r--sources/pyside6/tests/QtOpenGL/qopenglwindow_test.py73
-rw-r--r--sources/pyside6/tests/QtPdf/CMakeLists.txt1
-rw-r--r--sources/pyside6/tests/QtPdfWidgets/CMakeLists.txt1
-rw-r--r--sources/pyside6/tests/QtPositioning/QtPositioning.pyproject3
-rw-r--r--sources/pyside6/tests/QtPositioning/positioning.py29
-rw-r--r--sources/pyside6/tests/QtPrintSupport/QtPrintSupport.pyproject4
-rw-r--r--sources/pyside6/tests/QtPrintSupport/bug_500.py30
-rw-r--r--sources/pyside6/tests/QtPrintSupport/returnquadruplesofnumbers_test.py29
-rw-r--r--sources/pyside6/tests/QtQml/CMakeLists.txt12
-rw-r--r--sources/pyside6/tests/QtQml/ModuleType.qml8
-rw-r--r--sources/pyside6/tests/QtQml/QtQml.pyproject65
-rw-r--r--sources/pyside6/tests/QtQml/bug_1029.py29
-rw-r--r--sources/pyside6/tests/QtQml/bug_1029.qml29
-rw-r--r--sources/pyside6/tests/QtQml/bug_451.py30
-rw-r--r--sources/pyside6/tests/QtQml/bug_451.qml29
-rw-r--r--sources/pyside6/tests/QtQml/bug_456.py34
-rw-r--r--sources/pyside6/tests/QtQml/bug_456.qml29
-rw-r--r--sources/pyside6/tests/QtQml/bug_557.py31
-rw-r--r--sources/pyside6/tests/QtQml/bug_726.py35
-rw-r--r--sources/pyside6/tests/QtQml/bug_726.qml29
-rw-r--r--sources/pyside6/tests/QtQml/bug_814.py40
-rw-r--r--sources/pyside6/tests/QtQml/bug_814.qml29
-rw-r--r--sources/pyside6/tests/QtQml/bug_825.py42
-rw-r--r--sources/pyside6/tests/QtQml/bug_825.qml29
-rw-r--r--sources/pyside6/tests/QtQml/bug_825_old.py80
-rw-r--r--sources/pyside6/tests/QtQml/bug_847.py33
-rw-r--r--sources/pyside6/tests/QtQml/bug_847.qml29
-rw-r--r--sources/pyside6/tests/QtQml/bug_915.py35
-rw-r--r--sources/pyside6/tests/QtQml/bug_926.py31
-rw-r--r--sources/pyside6/tests/QtQml/bug_926.qml29
-rw-r--r--sources/pyside6/tests/QtQml/bug_951.py35
-rw-r--r--sources/pyside6/tests/QtQml/bug_951.qml29
-rw-r--r--sources/pyside6/tests/QtQml/bug_995.py31
-rw-r--r--sources/pyside6/tests/QtQml/bug_995.qml29
-rw-r--r--sources/pyside6/tests/QtQml/bug_997.py56
-rw-r--r--sources/pyside6/tests/QtQml/bug_997.qml34
-rw-r--r--sources/pyside6/tests/QtQml/connect_python_qml.py36
-rw-r--r--sources/pyside6/tests/QtQml/connect_python_qml.qml29
-rw-r--r--sources/pyside6/tests/QtQml/groupedproperty.py112
-rw-r--r--sources/pyside6/tests/QtQml/groupedproperty.qml9
-rw-r--r--sources/pyside6/tests/QtQml/hw.qml29
-rw-r--r--sources/pyside6/tests/QtQml/javascript_exceptions.py29
-rw-r--r--sources/pyside6/tests/QtQml/javascript_exceptions.qml31
-rw-r--r--sources/pyside6/tests/QtQml/listproperty.py116
-rw-r--r--sources/pyside6/tests/QtQml/listproperty.qml50
-rw-r--r--sources/pyside6/tests/QtQml/qqmlapplicationengine.qml23
-rw-r--r--sources/pyside6/tests/QtQml/qqmlapplicationengine_test.py38
-rw-r--r--sources/pyside6/tests/QtQml/qqmlcomponent_test.py36
-rw-r--r--sources/pyside6/tests/QtQml/qqmlincubator_incubateWhile.py34
-rw-r--r--sources/pyside6/tests/QtQml/qqmlincubator_incubateWhile.qml29
-rw-r--r--sources/pyside6/tests/QtQml/qqmlincubator_incubateWhile_component.qml29
-rw-r--r--sources/pyside6/tests/QtQml/qqmlnetwork_test.py55
-rw-r--r--sources/pyside6/tests/QtQml/qquickitem_grabToImage.py37
-rw-r--r--sources/pyside6/tests/QtQml/qquickitem_grabToImage.qml29
-rw-r--r--sources/pyside6/tests/QtQml/qquickview_test.py43
-rw-r--r--sources/pyside6/tests/QtQml/registerattached.py101
-rw-r--r--sources/pyside6/tests/QtQml/registerattached.qml20
-rw-r--r--sources/pyside6/tests/QtQml/registerextended.py74
-rw-r--r--sources/pyside6/tests/QtQml/registerextended.qml9
-rw-r--r--sources/pyside6/tests/QtQml/registerforeign.py52
-rw-r--r--sources/pyside6/tests/QtQml/registerforeign.qml8
-rw-r--r--sources/pyside6/tests/QtQml/registerparserstatus.py60
-rw-r--r--sources/pyside6/tests/QtQml/registerparserstatus.qml8
-rw-r--r--sources/pyside6/tests/QtQml/registerqmlfile.py30
-rw-r--r--sources/pyside6/tests/QtQml/registersingletontype.py125
-rw-r--r--sources/pyside6/tests/QtQml/registersingletontype.qml32
-rw-r--r--sources/pyside6/tests/QtQml/registertype.py35
-rw-r--r--sources/pyside6/tests/QtQml/registertype.qml29
-rw-r--r--sources/pyside6/tests/QtQml/registeruncreatable.qml29
-rw-r--r--sources/pyside6/tests/QtQml/registeruncreatabletype.py39
-rw-r--r--sources/pyside6/tests/QtQml/signal_arguments.py34
-rw-r--r--sources/pyside6/tests/QtQml/signal_arguments.qml29
-rw-r--r--sources/pyside6/tests/QtQml/signal_types.py124
-rw-r--r--sources/pyside6/tests/QtQml/signal_types.qml26
-rw-r--r--sources/pyside6/tests/QtQml/view.qml29
-rw-r--r--sources/pyside6/tests/QtQml/viewmodel.qml29
-rw-r--r--sources/pyside6/tests/QtQuick3D/CMakeLists.txt1
-rw-r--r--sources/pyside6/tests/QtQuickTest/CMakeLists.txt3
-rw-r--r--sources/pyside6/tests/QtQuickTest/quicktestmainwithsetup/data/tst_setup.qml20
-rw-r--r--sources/pyside6/tests/QtQuickTest/quicktestmainwithsetup/imports/ImportPathQmlModule/ImportPathQmlType.qml3
-rw-r--r--sources/pyside6/tests/QtQuickTest/quicktestmainwithsetup/imports/ImportPathQmlModule/qmldir2
-rw-r--r--sources/pyside6/tests/QtQuickTest/quicktestmainwithsetup/quicktestmainwithsetup.pyproject4
-rw-r--r--sources/pyside6/tests/QtQuickTest/quicktestmainwithsetup/tst_quicktestmainwithsetup.py46
-rw-r--r--sources/pyside6/tests/QtScxml/QtScxml.pyproject3
-rw-r--r--sources/pyside6/tests/QtScxml/test_dynamic.py66
-rw-r--r--sources/pyside6/tests/QtScxml/trafficlight.scxml29
-rw-r--r--sources/pyside6/tests/QtSensors/QtSensors.pyproject3
-rw-r--r--sources/pyside6/tests/QtSensors/sensors.py30
-rw-r--r--sources/pyside6/tests/QtSerialBus/CMakeLists.txt1
-rw-r--r--sources/pyside6/tests/QtSerialPort/QtSerialPort.pyproject3
-rw-r--r--sources/pyside6/tests/QtSerialPort/serial.py30
-rw-r--r--sources/pyside6/tests/QtSpatialAudio/CMakeLists.txt1
-rw-r--r--sources/pyside6/tests/QtSql/CMakeLists.txt3
-rw-r--r--sources/pyside6/tests/QtSql/QtSql.pyproject5
-rw-r--r--sources/pyside6/tests/QtSql/bug_1013.py29
-rw-r--r--sources/pyside6/tests/QtSql/qsqldatabaseandqueries_test.py44
-rw-r--r--sources/pyside6/tests/QtSql/qvarianttype_test.py35
-rw-r--r--sources/pyside6/tests/QtStateMachine/CMakeLists.txt3
-rw-r--r--sources/pyside6/tests/QtStateMachine/QtStateMachine.pyproject7
-rw-r--r--sources/pyside6/tests/QtStateMachine/bug_1031.py29
-rw-r--r--sources/pyside6/tests/QtStateMachine/qabstracttransition_test.py30
-rw-r--r--sources/pyside6/tests/QtStateMachine/qstate_test.py30
-rw-r--r--sources/pyside6/tests/QtStateMachine/qstatemachine_test.py36
-rw-r--r--sources/pyside6/tests/QtStateMachine/setprop_on_ctor_test.py30
-rw-r--r--sources/pyside6/tests/QtSvg/QtSvg.pyproject4
-rw-r--r--sources/pyside6/tests/QtSvg/qsvggenerator_test.py30
-rw-r--r--sources/pyside6/tests/QtSvg/qsvgrenderer_test.py30
-rw-r--r--sources/pyside6/tests/QtSvgWidgets/QtSvgWidgets.pyproject3
-rw-r--r--sources/pyside6/tests/QtSvgWidgets/qsvgwidget_test.py30
-rw-r--r--sources/pyside6/tests/QtTest/CMakeLists.txt3
-rw-r--r--sources/pyside6/tests/QtTest/QtTest.pyproject7
-rw-r--r--sources/pyside6/tests/QtTest/click_test.py29
-rw-r--r--sources/pyside6/tests/QtTest/eventfilter_test.py29
-rw-r--r--sources/pyside6/tests/QtTest/qsignalspy_test.py29
-rw-r--r--sources/pyside6/tests/QtTest/qvalidator_test.py29
-rw-r--r--sources/pyside6/tests/QtTest/touchevent_test.py32
-rw-r--r--sources/pyside6/tests/QtTextToSpeech/QtTextToSpeech.pyproject3
-rw-r--r--sources/pyside6/tests/QtTextToSpeech/qtexttospeech_test.py33
-rw-r--r--sources/pyside6/tests/QtUiTools/CMakeLists.txt3
-rw-r--r--sources/pyside6/tests/QtUiTools/QtUiTools.pyproject28
-rw-r--r--sources/pyside6/tests/QtUiTools/bug_1060.py31
-rw-r--r--sources/pyside6/tests/QtUiTools/bug_360.py29
-rw-r--r--sources/pyside6/tests/QtUiTools/bug_376.py29
-rw-r--r--sources/pyside6/tests/QtUiTools/bug_392.py29
-rw-r--r--sources/pyside6/tests/QtUiTools/bug_426.py29
-rw-r--r--sources/pyside6/tests/QtUiTools/bug_552.py31
-rw-r--r--sources/pyside6/tests/QtUiTools/bug_797.py31
-rw-r--r--sources/pyside6/tests/QtUiTools/bug_909.py29
-rw-r--r--sources/pyside6/tests/QtUiTools/bug_913.py31
-rw-r--r--sources/pyside6/tests/QtUiTools/bug_958.py31
-rw-r--r--sources/pyside6/tests/QtUiTools/bug_965.py29
-rw-r--r--sources/pyside6/tests/QtUiTools/loadUiType_test.py29
-rw-r--r--sources/pyside6/tests/QtUiTools/ui_test.py29
-rw-r--r--sources/pyside6/tests/QtUiTools/uiloader_test.py29
-rw-r--r--sources/pyside6/tests/QtWebEngineCore/CMakeLists.txt30
-rw-r--r--sources/pyside6/tests/QtWebEngineCore/QtWebEngineCore.pyproject4
-rw-r--r--sources/pyside6/tests/QtWebEngineCore/qwebenginecookiestore_test.py46
-rw-r--r--sources/pyside6/tests/QtWebEngineCore/resources/index.html12
-rw-r--r--sources/pyside6/tests/QtWebEngineCore/web_engine_custom_scheme.py29
-rw-r--r--sources/pyside6/tests/QtWebEngineWidgets/CMakeLists.txt29
-rw-r--r--sources/pyside6/tests/QtWebEngineWidgets/QtWebEngineWidgets.pyproject3
-rw-r--r--sources/pyside6/tests/QtWebEngineWidgets/pyside-474-qtwebengineview.py31
-rw-r--r--sources/pyside6/tests/QtWidgets/CMakeLists.txt17
-rw-r--r--sources/pyside6/tests/QtWidgets/QtWidgets.pyproject130
-rw-r--r--sources/pyside6/tests/QtWidgets/action_clear.py40
-rw-r--r--sources/pyside6/tests/QtWidgets/add_action_test.py32
-rw-r--r--sources/pyside6/tests/QtWidgets/api2_test.py31
-rw-r--r--sources/pyside6/tests/QtWidgets/application_test.py30
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_1002.py32
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_1006.py32
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_1048.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_1077.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_172.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_243.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_307.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_324.py69
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_338.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_389.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_400.py31
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_429.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_430.py43
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_433.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_467.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_480.py39
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_493.py58
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_512.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_525.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_546.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_547.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_549.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_569.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_575.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_576.py33
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_585.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_589.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_635.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_640.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_653.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_662.py32
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_667.py31
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_668.py31
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_674.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_675.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_688.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_693.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_696.py30
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_711.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_722.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_728.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_736.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_750.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_778.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_785.py67
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_793.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_811.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_834.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_836.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_844.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_854.py33
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_860.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_862.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_871.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_879.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_919.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_921.py33
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_941.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_964.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_967.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_972.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_979.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_988.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_998.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/customproxywidget_test.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/event_filter_test.py76
-rw-r--r--sources/pyside6/tests/QtWidgets/grandparent_method_test.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/hashabletype_test.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/keep_reference_test.py30
-rw-r--r--sources/pyside6/tests/QtWidgets/missing_symbols_test.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/paint_event_test.py64
-rw-r--r--sources/pyside6/tests/QtWidgets/parent_method_test.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/private_mangle_test.py40
-rw-r--r--sources/pyside6/tests/QtWidgets/python_properties_test.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/qabstracttextdocumentlayout_test.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/qaccessible_test.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/qaction_test.py42
-rw-r--r--sources/pyside6/tests/QtWidgets/qapp_issue_585.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/qapp_test.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/qapplication_exit_segfault_test.py32
-rw-r--r--sources/pyside6/tests/QtWidgets/qapplication_test.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/qbrush_test.py61
-rw-r--r--sources/pyside6/tests/QtWidgets/qcolormap_test.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/qdialog_test.py52
-rw-r--r--sources/pyside6/tests/QtWidgets/qdynamic_signal.py32
-rw-r--r--sources/pyside6/tests/QtWidgets/qfontdialog_test.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/qformlayout_test.py64
-rw-r--r--sources/pyside6/tests/QtWidgets/qgraphicsitem_isblocked_test.py30
-rw-r--r--sources/pyside6/tests/QtWidgets/qgraphicsitem_test.py32
-rw-r--r--sources/pyside6/tests/QtWidgets/qgraphicsobjectreimpl_test.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/qgraphicsproxywidget_test.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/qgraphicsscene_test.py37
-rw-r--r--sources/pyside6/tests/QtWidgets/qimage_test.py314
-rw-r--r--sources/pyside6/tests/QtWidgets/qinputdialog_get_test.py46
-rw-r--r--sources/pyside6/tests/QtWidgets/qkeysequenceedit_test.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/qlabel_test.py43
-rw-r--r--sources/pyside6/tests/QtWidgets/qlayout_ref_test.py34
-rw-r--r--sources/pyside6/tests/QtWidgets/qlayout_test.py41
-rw-r--r--sources/pyside6/tests/QtWidgets/qlcdnumber_test.py34
-rw-r--r--sources/pyside6/tests/QtWidgets/qlistwidget_test.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/qlistwidgetitem_test.py32
-rw-r--r--sources/pyside6/tests/QtWidgets/qmainwindow_test.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/qmenu_test.py42
-rw-r--r--sources/pyside6/tests/QtWidgets/qmenuadd_test.py31
-rw-r--r--sources/pyside6/tests/QtWidgets/qobject_mi_test.py31
-rw-r--r--sources/pyside6/tests/QtWidgets/qpen_test.py81
-rw-r--r--sources/pyside6/tests/QtWidgets/qpicture_test.py39
-rw-r--r--sources/pyside6/tests/QtWidgets/qpixmap_constructor.py288
-rw-r--r--sources/pyside6/tests/QtWidgets/qpushbutton_test.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/qshortcut_test.py88
-rw-r--r--sources/pyside6/tests/QtWidgets/qsplitter_test.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/qstandarditemmodel_test.py107
-rw-r--r--sources/pyside6/tests/QtWidgets/qstring_qkeysequence_test.py69
-rw-r--r--sources/pyside6/tests/QtWidgets/qstyle_test.py31
-rw-r--r--sources/pyside6/tests/QtWidgets/qstyleoption_test.py43
-rw-r--r--sources/pyside6/tests/QtWidgets/qtableview_test.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/qtabwidget_test.py32
-rw-r--r--sources/pyside6/tests/QtWidgets/qtabwidgetclear_test.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/qtextedit_signal_test.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/qtextedit_test.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/qtoolbar_test.py32
-rw-r--r--sources/pyside6/tests/QtWidgets/qtoolbox_test.py32
-rw-r--r--sources/pyside6/tests/QtWidgets/qtreeview_test.py34
-rw-r--r--sources/pyside6/tests/QtWidgets/qtreewidget_test.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/qtreewidgetitem_test.py33
-rw-r--r--sources/pyside6/tests/QtWidgets/qvariant_test.py111
-rw-r--r--sources/pyside6/tests/QtWidgets/qwidget_setlayout_test.py30
-rw-r--r--sources/pyside6/tests/QtWidgets/qwidget_test.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/reference_count_test.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/signature_test.py66
-rw-r--r--sources/pyside6/tests/QtWidgets/standardpixmap_test.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/test_module_template.py29
-rw-r--r--sources/pyside6/tests/QtWidgets/virtual_protected_inheritance_test.py32
-rw-r--r--sources/pyside6/tests/QtWidgets/virtual_pure_override_test.py34
-rw-r--r--sources/pyside6/tests/QtWidgets/wrong_return_test.py29
-rw-r--r--sources/pyside6/tests/QtXml/QtXml.pyproject3
-rw-r--r--sources/pyside6/tests/QtXml/qdomdocument_test.py34
-rw-r--r--sources/pyside6/tests/init_paths.py32
-rw-r--r--sources/pyside6/tests/mac/qmacstyle_test.py29
-rw-r--r--sources/pyside6/tests/manually/bug_841.py29
-rw-r--r--sources/pyside6/tests/manually/lazytiming.py38
-rw-r--r--sources/pyside6/tests/pysidetest/CMakeLists.txt65
-rw-r--r--sources/pyside6/tests/pysidetest/all_modules_load_test.py29
-rw-r--r--sources/pyside6/tests/pysidetest/bug_1016.py29
-rw-r--r--sources/pyside6/tests/pysidetest/constructor_properties_test.py114
-rw-r--r--sources/pyside6/tests/pysidetest/container_test.py50
-rw-r--r--sources/pyside6/tests/pysidetest/containertest.cpp67
-rw-r--r--sources/pyside6/tests/pysidetest/containertest.h37
-rw-r--r--sources/pyside6/tests/pysidetest/decoratedslot_test.py30
-rw-r--r--sources/pyside6/tests/pysidetest/delegatecreateseditor_test.py30
-rw-r--r--sources/pyside6/tests/pysidetest/enum_test.py190
-rw-r--r--sources/pyside6/tests/pysidetest/flagstest.cpp29
-rw-r--r--sources/pyside6/tests/pysidetest/flagstest.h33
-rw-r--r--sources/pyside6/tests/pysidetest/hiddenobject.cpp31
-rw-r--r--sources/pyside6/tests/pysidetest/hiddenobject.h35
-rw-r--r--sources/pyside6/tests/pysidetest/homonymoussignalandmethod_test.py74
-rw-r--r--sources/pyside6/tests/pysidetest/iterable_test.py29
-rw-r--r--sources/pyside6/tests/pysidetest/list_signal_test.py31
-rw-r--r--sources/pyside6/tests/pysidetest/mixin_signal_slots_test.py30
-rw-r--r--sources/pyside6/tests/pysidetest/mock_as_slot_test.py33
-rw-r--r--sources/pyside6/tests/pysidetest/modelview_test.py30
-rw-r--r--sources/pyside6/tests/pysidetest/multiple_inheritance_test.py189
-rw-r--r--sources/pyside6/tests/pysidetest/new_inherited_functions_test.py34
-rw-r--r--sources/pyside6/tests/pysidetest/notify_id.py32
-rw-r--r--sources/pyside6/tests/pysidetest/properties_test.py29
-rw-r--r--sources/pyside6/tests/pysidetest/property_python_test.py32
-rw-r--r--sources/pyside6/tests/pysidetest/pyenum_relax_options_test.py136
-rw-r--r--sources/pyside6/tests/pysidetest/pysidetest.pyproject33
-rw-r--r--sources/pyside6/tests/pysidetest/pysidetest_global.h31
-rw-r--r--sources/pyside6/tests/pysidetest/pysidetest_macros.h29
-rw-r--r--sources/pyside6/tests/pysidetest/qapp_like_a_macro_test.py29
-rw-r--r--sources/pyside6/tests/pysidetest/qvariant_test.py75
-rw-r--r--sources/pyside6/tests/pysidetest/repr_test.py53
-rw-r--r--sources/pyside6/tests/pysidetest/shared_pointer_test.py54
-rw-r--r--sources/pyside6/tests/pysidetest/sharedpointertestbench.cpp46
-rw-r--r--sources/pyside6/tests/pysidetest/sharedpointertestbench.h29
-rw-r--r--sources/pyside6/tests/pysidetest/signal_slot_warning.py30
-rw-r--r--sources/pyside6/tests/pysidetest/signal_tp_descr_get_test.py30
-rw-r--r--sources/pyside6/tests/pysidetest/signalandnamespace_test.py30
-rw-r--r--sources/pyside6/tests/pysidetest/signalemissionfrompython_test.py33
-rw-r--r--sources/pyside6/tests/pysidetest/signalinstance_equality_test.py85
-rw-r--r--sources/pyside6/tests/pysidetest/signalwithdefaultvalue_test.py47
-rw-r--r--sources/pyside6/tests/pysidetest/snake_case_sub.py23
-rw-r--r--sources/pyside6/tests/pysidetest/snake_case_test.py38
-rw-r--r--sources/pyside6/tests/pysidetest/testobject.cpp49
-rw-r--r--sources/pyside6/tests/pysidetest/testobject.h55
-rw-r--r--sources/pyside6/tests/pysidetest/testqvariantenum.cpp29
-rw-r--r--sources/pyside6/tests/pysidetest/testqvariantenum.h35
-rw-r--r--sources/pyside6/tests/pysidetest/testview.cpp39
-rw-r--r--sources/pyside6/tests/pysidetest/testview.h34
-rw-r--r--sources/pyside6/tests/pysidetest/true_property_test.py58
-rw-r--r--sources/pyside6/tests/pysidetest/typedef_signal_test.py44
-rw-r--r--sources/pyside6/tests/pysidetest/typesystem_pysidetest.xml17
-rw-r--r--sources/pyside6/tests/pysidetest/version_test.py30
-rw-r--r--sources/pyside6/tests/registry/CMakeLists.txt40
-rw-r--r--sources/pyside6/tests/registry/existence_test.py57
-rw-r--r--sources/pyside6/tests/registry/exists_darwin_5_14_2_ci.py37734
-rw-r--r--sources/pyside6/tests/registry/exists_red_hat_enterprise_linux_workstation7_6_5_14_2_ci.py37756
-rw-r--r--sources/pyside6/tests/registry/exists_win32_5_14_2_ci.py37964
-rw-r--r--sources/pyside6/tests/registry/exists_x86_64_suse_linux_5_14_2_ci.py37749
-rw-r--r--sources/pyside6/tests/registry/init_platform.py62
-rw-r--r--sources/pyside6/tests/registry/scrape_testresults.py42
-rw-r--r--sources/pyside6/tests/registry/util.py52
-rwxr-xr-xsources/pyside6/tests/run_test.sh30
-rw-r--r--sources/pyside6/tests/signals/CMakeLists.txt7
-rw-r--r--sources/pyside6/tests/signals/anonymous_slot_leak_test.py55
-rw-r--r--sources/pyside6/tests/signals/args_dont_match_test.py42
-rw-r--r--sources/pyside6/tests/signals/bug_189.py29
-rw-r--r--sources/pyside6/tests/signals/bug_311.py36
-rw-r--r--sources/pyside6/tests/signals/bug_312.py60
-rw-r--r--sources/pyside6/tests/signals/bug_319.py36
-rw-r--r--sources/pyside6/tests/signals/bug_79.py36
-rw-r--r--sources/pyside6/tests/signals/decorators_test.py41
-rw-r--r--sources/pyside6/tests/signals/disconnect_test.py29
-rw-r--r--sources/pyside6/tests/signals/invalid_callback_test.py38
-rw-r--r--sources/pyside6/tests/signals/lambda_gui_test.py87
-rw-r--r--sources/pyside6/tests/signals/lambda_test.py140
-rw-r--r--sources/pyside6/tests/signals/leaking_signal_test.py32
-rw-r--r--sources/pyside6/tests/signals/multiple_connections_gui_test.py75
-rw-r--r--sources/pyside6/tests/signals/multiple_connections_test.py62
-rw-r--r--sources/pyside6/tests/signals/pysignal_test.py200
-rw-r--r--sources/pyside6/tests/signals/qobject_callable_connect_test.py45
-rw-r--r--sources/pyside6/tests/signals/qobject_destroyed_test.py36
-rw-r--r--sources/pyside6/tests/signals/qobject_receivers_test.py36
-rw-r--r--sources/pyside6/tests/signals/qobject_sender_test.py62
-rw-r--r--sources/pyside6/tests/signals/ref01_test.py36
-rw-r--r--sources/pyside6/tests/signals/ref02_test.py45
-rw-r--r--sources/pyside6/tests/signals/ref03_test.py35
-rw-r--r--sources/pyside6/tests/signals/ref04_test.py45
-rw-r--r--sources/pyside6/tests/signals/ref05_test.py45
-rw-r--r--sources/pyside6/tests/signals/ref06_test.py45
-rw-r--r--sources/pyside6/tests/signals/segfault_proxyparent_test.py58
-rw-r--r--sources/pyside6/tests/signals/self_connect_test.py55
-rw-r--r--sources/pyside6/tests/signals/short_circuit_test.py70
-rw-r--r--sources/pyside6/tests/signals/signal2signal_connect_test.py99
-rw-r--r--sources/pyside6/tests/signals/signal_across_threads.py37
-rw-r--r--sources/pyside6/tests/signals/signal_autoconnect_test.py33
-rw-r--r--sources/pyside6/tests/signals/signal_connectiontype_support_test.py44
-rw-r--r--sources/pyside6/tests/signals/signal_emission_gui_test.py225
-rw-r--r--sources/pyside6/tests/signals/signal_emission_test.py87
-rw-r--r--sources/pyside6/tests/signals/signal_enum_test.py29
-rw-r--r--sources/pyside6/tests/signals/signal_func_test.py31
-rw-r--r--sources/pyside6/tests/signals/signal_manager_refcount_test.py38
-rw-r--r--sources/pyside6/tests/signals/signal_newenum_test.py50
-rw-r--r--sources/pyside6/tests/signals/signal_number_limit_test.py31
-rw-r--r--sources/pyside6/tests/signals/signal_object_test.py34
-rw-r--r--sources/pyside6/tests/signals/signal_signature_test.py46
-rw-r--r--sources/pyside6/tests/signals/signal_with_primitive_type_test.py35
-rw-r--r--sources/pyside6/tests/signals/signals.pyproject19
-rw-r--r--sources/pyside6/tests/signals/slot_reference_count_test.py41
-rw-r--r--sources/pyside6/tests/signals/static_metaobject_test.py65
-rw-r--r--sources/pyside6/tests/support/voidptr_test.py29
-rw-r--r--sources/pyside6/tests/tools/__init__.py1
-rw-r--r--sources/pyside6/tests/tools/list-class-hierarchy.py35
-rw-r--r--sources/pyside6/tests/tools/metaobjectdump/CMakeLists.txt1
-rw-r--r--sources/pyside6/tests/tools/metaobjectdump/baseline_default_birthdayparty.json1
-rw-r--r--sources/pyside6/tests/tools/metaobjectdump/baseline_default_person.json1
-rw-r--r--sources/pyside6/tests/tools/metaobjectdump/baseline_inheritance_birthdayparty.json1
-rw-r--r--sources/pyside6/tests/tools/metaobjectdump/baseline_inheritance_person.json1
-rw-r--r--sources/pyside6/tests/tools/metaobjectdump/baseline_property_happybirthdaysong.json1
-rw-r--r--sources/pyside6/tests/tools/metaobjectdump/test_metaobjectdump.py73
-rw-r--r--sources/pyside6/tests/tools/pyside6-android-deploy/CMakeLists.txt3
-rw-r--r--sources/pyside6/tests/tools/pyside6-android-deploy/extensive_android_deploy_test.py88
-rw-r--r--sources/pyside6/tests/tools/pyside6-android-deploy/test_pyside6_android_deploy.py274
-rw-r--r--sources/pyside6/tests/tools/pyside6-deploy/CMakeLists.txt1
-rw-r--r--sources/pyside6/tests/tools/pyside6-deploy/extensive_deploy_test.py88
-rw-r--r--sources/pyside6/tests/tools/pyside6-deploy/test_pyside6_deploy.py391
-rw-r--r--sources/pyside6/tests/tools/pyside6-qml/CMakeLists.txt1
-rw-r--r--sources/pyside6/tests/tools/pyside6-qml/test_pyside6_qml.py75
-rw-r--r--sources/pyside6/tests/util/color.py29
-rw-r--r--sources/pyside6/tests/util/helper/basicpyslotcase.py33
-rw-r--r--sources/pyside6/tests/util/helper/docmodifier.py41
-rw-r--r--sources/pyside6/tests/util/helper/helper.py29
-rw-r--r--sources/pyside6/tests/util/helper/timedqapplication.py32
-rw-r--r--sources/pyside6/tests/util/helper/timedqguiapplication.py27
-rw-r--r--sources/pyside6/tests/util/helper/usesqapplication.py62
-rw-r--r--sources/pyside6/tests/util/helper/usesqcoreapplication.py59
-rw-r--r--sources/pyside6/tests/util/helper/usesqguiapplication.py49
-rw-r--r--sources/pyside6/tests/util/httpd.py29
-rw-r--r--sources/pyside6/tests/util/processtimer.py32
-rw-r--r--sources/pyside6/tests/util/pyqt_diff.py64
-rwxr-xr-xsources/pyside6/tests/util/rename_imports.sh30
-rw-r--r--sources/pyside6/tests/util/test_processtimer.py29
-rw-r--r--sources/shiboken6/.cmake.conf5
-rw-r--r--sources/shiboken6/ApiExtractor/CMakeLists.txt130
-rw-r--r--sources/shiboken6/ApiExtractor/abstractmetaargument.cpp75
-rw-r--r--sources/shiboken6/ApiExtractor/abstractmetaargument.h46
-rw-r--r--sources/shiboken6/ApiExtractor/abstractmetabuilder.cpp1991
-rw-r--r--sources/shiboken6/ApiExtractor/abstractmetabuilder.h94
-rw-r--r--sources/shiboken6/ApiExtractor/abstractmetabuilder_helpers.cpp202
-rw-r--r--sources/shiboken6/ApiExtractor/abstractmetabuilder_p.h236
-rw-r--r--sources/shiboken6/ApiExtractor/abstractmetaenum.cpp200
-rw-r--r--sources/shiboken6/ApiExtractor/abstractmetaenum.h59
-rw-r--r--sources/shiboken6/ApiExtractor/abstractmetafield.cpp58
-rw-r--r--sources/shiboken6/ApiExtractor/abstractmetafield.h39
-rw-r--r--sources/shiboken6/ApiExtractor/abstractmetafunction.cpp593
-rw-r--r--sources/shiboken6/ApiExtractor/abstractmetafunction.h172
-rw-r--r--sources/shiboken6/ApiExtractor/abstractmetalang.cpp801
-rw-r--r--sources/shiboken6/ApiExtractor/abstractmetalang.h181
-rw-r--r--sources/shiboken6/ApiExtractor/abstractmetalang_enums.h56
-rw-r--r--sources/shiboken6/ApiExtractor/abstractmetalang_helpers.h44
-rw-r--r--sources/shiboken6/ApiExtractor/abstractmetalang_typedefs.h42
-rw-r--r--sources/shiboken6/ApiExtractor/abstractmetatype.cpp431
-rw-r--r--sources/shiboken6/ApiExtractor/abstractmetatype.h90
-rw-r--r--sources/shiboken6/ApiExtractor/addedfunction.cpp216
-rw-r--r--sources/shiboken6/ApiExtractor/addedfunction.h113
-rw-r--r--sources/shiboken6/ApiExtractor/addedfunction_p.h45
-rw-r--r--sources/shiboken6/ApiExtractor/anystringview_helpers.cpp56
-rw-r--r--sources/shiboken6/ApiExtractor/anystringview_helpers.h18
-rw-r--r--sources/shiboken6/ApiExtractor/apiextractor.cpp745
-rw-r--r--sources/shiboken6/ApiExtractor/apiextractor.h106
-rw-r--r--sources/shiboken6/ApiExtractor/apiextractorflags.h26
-rw-r--r--sources/shiboken6/ApiExtractor/apiextractorresult.cpp96
-rw-r--r--sources/shiboken6/ApiExtractor/apiextractorresult.h85
-rw-r--r--sources/shiboken6/ApiExtractor/arraytypeentry.h28
-rw-r--r--sources/shiboken6/ApiExtractor/clangparser/clangbuilder.cpp520
-rw-r--r--sources/shiboken6/ApiExtractor/clangparser/clangbuilder.h35
-rw-r--r--sources/shiboken6/ApiExtractor/clangparser/clangdebugutils.cpp131
-rw-r--r--sources/shiboken6/ApiExtractor/clangparser/clangdebugutils.h31
-rw-r--r--sources/shiboken6/ApiExtractor/clangparser/clangparser.cpp80
-rw-r--r--sources/shiboken6/ApiExtractor/clangparser/clangparser.h48
-rw-r--r--sources/shiboken6/ApiExtractor/clangparser/clangutils.cpp133
-rw-r--r--sources/shiboken6/ApiExtractor/clangparser/clangutils.h65
-rw-r--r--sources/shiboken6/ApiExtractor/clangparser/compilersupport.cpp327
-rw-r--r--sources/shiboken6/ApiExtractor/clangparser/compilersupport.h55
-rw-r--r--sources/shiboken6/ApiExtractor/classdocumentation.cpp381
-rw-r--r--sources/shiboken6/ApiExtractor/classdocumentation.h82
-rw-r--r--sources/shiboken6/ApiExtractor/cmake_uninstall.cmake3
-rw-r--r--sources/shiboken6/ApiExtractor/codesnip.cpp78
-rw-r--r--sources/shiboken6/ApiExtractor/codesnip.h107
-rw-r--r--sources/shiboken6/ApiExtractor/codesniphelpers.cpp51
-rw-r--r--sources/shiboken6/ApiExtractor/codesniphelpers.h29
-rw-r--r--sources/shiboken6/ApiExtractor/complextypeentry.h179
-rw-r--r--sources/shiboken6/ApiExtractor/conditionalstreamreader.cpp41
-rw-r--r--sources/shiboken6/ApiExtractor/conditionalstreamreader.h31
-rw-r--r--sources/shiboken6/ApiExtractor/configurabletypeentry.h28
-rw-r--r--sources/shiboken6/ApiExtractor/constantvaluetypeentry.h23
-rw-r--r--sources/shiboken6/ApiExtractor/containertypeentry.h63
-rw-r--r--sources/shiboken6/ApiExtractor/customconversion.cpp197
-rw-r--r--sources/shiboken6/ApiExtractor/customconversion.h81
-rw-r--r--sources/shiboken6/ApiExtractor/customconversion_typedefs.h14
-rw-r--r--sources/shiboken6/ApiExtractor/customtypenentry.h30
-rw-r--r--sources/shiboken6/ApiExtractor/debughelpers_p.h56
-rw-r--r--sources/shiboken6/ApiExtractor/dependency.h33
-rw-r--r--sources/shiboken6/ApiExtractor/docparser.cpp196
-rw-r--r--sources/shiboken6/ApiExtractor/docparser.h60
-rw-r--r--sources/shiboken6/ApiExtractor/documentation.cpp56
-rw-r--r--sources/shiboken6/ApiExtractor/documentation.h47
-rw-r--r--sources/shiboken6/ApiExtractor/dotview.cpp41
-rw-r--r--sources/shiboken6/ApiExtractor/dotview.h29
-rw-r--r--sources/shiboken6/ApiExtractor/doxygenparser.cpp125
-rw-r--r--sources/shiboken6/ApiExtractor/doxygenparser.h31
-rw-r--r--sources/shiboken6/ApiExtractor/enclosingclassmixin.cpp35
-rw-r--r--sources/shiboken6/ApiExtractor/enclosingclassmixin.h42
-rw-r--r--sources/shiboken6/ApiExtractor/enumtypeentry.h51
-rw-r--r--sources/shiboken6/ApiExtractor/enumvaluetypeentry.h31
-rw-r--r--sources/shiboken6/ApiExtractor/exception.h31
-rw-r--r--sources/shiboken6/ApiExtractor/fileout.cpp77
-rw-r--r--sources/shiboken6/ApiExtractor/fileout.h31
-rw-r--r--sources/shiboken6/ApiExtractor/flagstypeentry.h36
-rw-r--r--sources/shiboken6/ApiExtractor/functiontypeentry.h35
-rw-r--r--sources/shiboken6/ApiExtractor/graph.h29
-rw-r--r--sources/shiboken6/ApiExtractor/header_paths.h34
-rw-r--r--sources/shiboken6/ApiExtractor/icecc.cmake3
-rw-r--r--sources/shiboken6/ApiExtractor/include.cpp79
-rw-r--r--sources/shiboken6/ApiExtractor/include.h78
-rw-r--r--sources/shiboken6/ApiExtractor/messages.cpp520
-rw-r--r--sources/shiboken6/ApiExtractor/messages.h140
-rw-r--r--sources/shiboken6/ApiExtractor/modifications.cpp404
-rw-r--r--sources/shiboken6/ApiExtractor/modifications.h284
-rw-r--r--sources/shiboken6/ApiExtractor/modifications_p.h67
-rw-r--r--sources/shiboken6/ApiExtractor/modifications_typedefs.h25
-rw-r--r--sources/shiboken6/ApiExtractor/namespacetypeentry.h51
-rw-r--r--sources/shiboken6/ApiExtractor/objecttypeentry.h21
-rw-r--r--sources/shiboken6/ApiExtractor/optionsparser.cpp232
-rw-r--r--sources/shiboken6/ApiExtractor/optionsparser.h98
-rw-r--r--sources/shiboken6/ApiExtractor/parser/codemodel.cpp550
-rw-r--r--sources/shiboken6/ApiExtractor/parser/codemodel.h245
-rw-r--r--sources/shiboken6/ApiExtractor/parser/codemodel_enums.h44
-rw-r--r--sources/shiboken6/ApiExtractor/parser/codemodel_fwd.h62
-rw-r--r--sources/shiboken6/ApiExtractor/parser/enumvalue.cpp88
-rw-r--r--sources/shiboken6/ApiExtractor/parser/enumvalue.h49
-rw-r--r--sources/shiboken6/ApiExtractor/parser/typeinfo.cpp168
-rw-r--r--sources/shiboken6/ApiExtractor/parser/typeinfo.h57
-rw-r--r--sources/shiboken6/ApiExtractor/predefined_templates.cpp276
-rw-r--r--sources/shiboken6/ApiExtractor/predefined_templates.h27
-rw-r--r--sources/shiboken6/ApiExtractor/primitivetypeentry.h72
-rw-r--r--sources/shiboken6/ApiExtractor/propertyspec.cpp115
-rw-r--r--sources/shiboken6/ApiExtractor/propertyspec.h49
-rw-r--r--sources/shiboken6/ApiExtractor/pymethoddefentry.cpp53
-rw-r--r--sources/shiboken6/ApiExtractor/pymethoddefentry.h38
-rw-r--r--sources/shiboken6/ApiExtractor/pythontypeentry.h29
-rw-r--r--sources/shiboken6/ApiExtractor/qtcompat.h37
-rw-r--r--sources/shiboken6/ApiExtractor/qtdocparser.cpp460
-rw-r--r--sources/shiboken6/ApiExtractor/qtdocparser.h51
-rw-r--r--sources/shiboken6/ApiExtractor/reporthandler.cpp72
-rw-r--r--sources/shiboken6/ApiExtractor/reporthandler.h33
-rw-r--r--sources/shiboken6/ApiExtractor/smartpointertypeentry.h57
-rw-r--r--sources/shiboken6/ApiExtractor/sourcelocation.cpp29
-rw-r--r--sources/shiboken6/ApiExtractor/sourcelocation.h31
-rw-r--r--sources/shiboken6/ApiExtractor/templateargumententry.h26
-rw-r--r--sources/shiboken6/ApiExtractor/tests/CMakeLists.txt5
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testabstractmetaclass.cpp344
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testabstractmetaclass.h32
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testabstractmetatype.cpp112
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testabstractmetatype.h31
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testaddfunction.cpp283
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testaddfunction.h31
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testarrayargument.cpp108
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testarrayargument.h31
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testcodeinjection.cpp124
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testcodeinjection.h32
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testcontainer.cpp56
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testcontainer.h31
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testconversionoperator.cpp119
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testconversionoperator.h31
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testconversionruletag.cpp178
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testconversionruletag.h32
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testctorinformation.cpp61
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testctorinformation.h31
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testdroptypeentries.cpp142
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testdroptypeentries.h31
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testdtorinformation.cpp157
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testdtorinformation.h31
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testenum.cpp429
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testenum.h34
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testextrainclude.cpp64
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testextrainclude.h31
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testfunctiontag.cpp60
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testfunctiontag.h32
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testimplicitconversions.cpp95
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testimplicitconversions.h31
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testinserttemplate.cpp62
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testinserttemplate.h31
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testmodifydocumentation.cpp91
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testmodifydocumentation.h32
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testmodifyfunction.cpp185
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testmodifyfunction.h31
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testmultipleinheritance.cpp41
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testmultipleinheritance.h31
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testnamespace.cpp66
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testnamespace.h31
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testnestedtypes.cpp90
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testnestedtypes.h32
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testnumericaltypedef.cpp71
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testnumericaltypedef.h31
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testprimitivetypetag.cpp52
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testprimitivetypetag.h31
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testrefcounttag.cpp62
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testrefcounttag.h31
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testreferencetopointer.cpp45
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testreferencetopointer.h31
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testremovefield.cpp78
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testremovefield.h32
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testremoveimplconv.cpp49
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testremoveimplconv.h31
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testremoveoperatormethod.cpp113
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testremoveoperatormethod.h31
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testresolvetype.cpp286
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testresolvetype.h36
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testreverseoperators.cpp101
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testreverseoperators.h32
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testtemplates.cpp243
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testtemplates.h31
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testtoposort.cpp29
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testtoposort.h31
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testtyperevision.cpp62
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testtyperevision.h31
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testutil.h44
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testvaluetypedefaultctortag.cpp43
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testvaluetypedefaultctortag.h31
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testvoidarg.cpp60
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testvoidarg.h31
-rw-r--r--sources/shiboken6/ApiExtractor/textstream.cpp93
-rw-r--r--sources/shiboken6/ApiExtractor/textstream.h84
-rw-r--r--sources/shiboken6/ApiExtractor/typedatabase.cpp1236
-rw-r--r--sources/shiboken6/ApiExtractor/typedatabase.h182
-rw-r--r--sources/shiboken6/ApiExtractor/typedatabase_p.h25
-rw-r--r--sources/shiboken6/ApiExtractor/typedatabase_typedefs.h54
-rw-r--r--sources/shiboken6/ApiExtractor/typedefentry.h37
-rw-r--r--sources/shiboken6/ApiExtractor/typeparser.cpp85
-rw-r--r--sources/shiboken6/ApiExtractor/typeparser.h31
-rw-r--r--sources/shiboken6/ApiExtractor/typesystem.cpp1278
-rw-r--r--sources/shiboken6/ApiExtractor/typesystem.h680
-rw-r--r--sources/shiboken6/ApiExtractor/typesystem_enums.h66
-rw-r--r--sources/shiboken6/ApiExtractor/typesystem_typedefs.h110
-rw-r--r--sources/shiboken6/ApiExtractor/typesystemparser.cpp2601
-rw-r--r--sources/shiboken6/ApiExtractor/typesystemparser.h287
-rw-r--r--sources/shiboken6/ApiExtractor/typesystemparser_p.h297
-rw-r--r--sources/shiboken6/ApiExtractor/typesystemtypeentry.h40
-rw-r--r--sources/shiboken6/ApiExtractor/usingmember.h33
-rw-r--r--sources/shiboken6/ApiExtractor/valuetypeentry.h40
-rw-r--r--sources/shiboken6/ApiExtractor/varargstypeentry.h20
-rw-r--r--sources/shiboken6/ApiExtractor/voidtypeentry.h20
-rw-r--r--sources/shiboken6/ApiExtractor/xmlutils.cpp45
-rw-r--r--sources/shiboken6/ApiExtractor/xmlutils.h36
-rw-r--r--sources/shiboken6/ApiExtractor/xmlutils_libxslt.cpp79
-rw-r--r--sources/shiboken6/ApiExtractor/xmlutils_libxslt.h34
-rw-r--r--sources/shiboken6/ApiExtractor/xmlutils_qt.h34
-rw-r--r--sources/shiboken6/CMakeLists.txt229
-rw-r--r--sources/shiboken6/cmake/FindDocTools.cmake39
-rw-r--r--sources/shiboken6/cmake/ShibokenHelpers.cmake884
-rw-r--r--sources/shiboken6/cmake/ShibokenSetup.cmake192
-rw-r--r--sources/shiboken6/cmake_uninstall.cmake3
-rw-r--r--sources/shiboken6/config.tests/target_python_info/CMakeLists.txt47
-rw-r--r--sources/shiboken6/config.tests/target_qt_info/CMakeLists.txt39
-rw-r--r--sources/shiboken6/config.tests/target_qt_mkspec/CMakeLists.txt25
-rw-r--r--sources/shiboken6/data/CMakeLists.txt19
-rw-r--r--sources/shiboken6/data/Shiboken6Config-spec.cmake.in12
-rw-r--r--sources/shiboken6/data/Shiboken6ToolsConfig.cmake.in7
-rw-r--r--sources/shiboken6/data/shiboken6.pc.in9
-rw-r--r--sources/shiboken6/data/shiboken_helpers.cmake365
-rw-r--r--sources/shiboken6/doc/CMakeLists.txt77
-rw-r--r--sources/shiboken6/doc/_static/css/qt_font.css15
-rw-r--r--sources/shiboken6/doc/_static/css/qt_style.css100
-rw-r--r--sources/shiboken6/doc/_static/qtforpython.png (renamed from sources/pyside6/doc/_themes/pysidedocs/static/pysidelogo.png)bin4936 -> 4936 bytes
-rw-r--r--sources/shiboken6/doc/_static/shiboken.pngbin0 -> 17343 bytes
-rw-r--r--sources/shiboken6/doc/_static/shiboken.svg129
-rw-r--r--sources/shiboken6/doc/_templates/layout.html2
-rw-r--r--sources/shiboken6/doc/_themes/pysidedocs/searchbox.html12
-rw-r--r--sources/shiboken6/doc/_themes/pysidedocs/static/bg_header.pngbin36012 -> 0 bytes
-rw-r--r--sources/shiboken6/doc/_themes/pysidedocs/static/bg_topo.jpgbin14237 -> 0 bytes
-rw-r--r--sources/shiboken6/doc/_themes/pysidedocs/static/fakebar.pngbin101 -> 0 bytes
-rw-r--r--sources/shiboken6/doc/_themes/pysidedocs/static/logo_python.jpgbin2660 -> 0 bytes
-rw-r--r--sources/shiboken6/doc/_themes/pysidedocs/static/logo_qt.pngbin1032 -> 0 bytes
-rw-r--r--sources/shiboken6/doc/_themes/pysidedocs/static/pyside.css2197
-rw-r--r--sources/shiboken6/doc/_themes/pysidedocs/static/pysidelogo.pngbin4936 -> 0 bytes
-rw-r--r--sources/shiboken6/doc/_themes/pysidedocs/static/relbar_bg.pngbin130 -> 0 bytes
-rw-r--r--sources/shiboken6/doc/_themes/pysidedocs/theme.conf7
-rw-r--r--sources/shiboken6/doc/_themes/pysidedocs_qthelp/static/pyside.css8
-rw-r--r--sources/shiboken6/doc/conf.py.in81
-rw-r--r--sources/shiboken6/doc/considerations.rst72
-rw-r--r--sources/shiboken6/doc/examples/index.rst18
-rw-r--r--sources/shiboken6/doc/examples/samplebinding.rst246
-rw-r--r--sources/shiboken6/doc/gettingstarted.rst26
-rw-r--r--sources/shiboken6/doc/images/boostgen.pngbin153473 -> 0 bytes
-rw-r--r--sources/shiboken6/doc/images/converter.pngbin22467 -> 34204 bytes
-rw-r--r--sources/shiboken6/doc/images/converter.svg2522
-rw-r--r--sources/shiboken6/doc/images/genrunnerarch.pngbin68761 -> 0 bytes
-rw-r--r--sources/shiboken6/doc/images/genrunnerarch.svg654
-rw-r--r--sources/shiboken6/doc/images/qtforpython-underthehood.pngbin19144 -> 62001 bytes
-rw-r--r--sources/shiboken6/doc/images/qtforpython-underthehood.svg1502
-rw-r--r--sources/shiboken6/doc/images/shibokenqtarch.pngbin17602 -> 28655 bytes
-rw-r--r--sources/shiboken6/doc/images/shibokenqtarch.svg71
-rw-r--r--sources/shiboken6/doc/index.rst118
-rw-r--r--sources/shiboken6/doc/scripts/patch_qhp.py62
-rw-r--r--sources/shiboken6/doc/shiboken-genpyi.rst32
-rw-r--r--sources/shiboken6/doc/shibokengenerator.rst104
-rw-r--r--sources/shiboken6/doc/shibokenmodule.rst65
-rw-r--r--sources/shiboken6/doc/typesystem.rst2
-rw-r--r--sources/shiboken6/doc/typesystem_arguments.rst267
-rw-r--r--sources/shiboken6/doc/typesystem_builtin_types.rst58
-rw-r--r--sources/shiboken6/doc/typesystem_codeinjection.rst379
-rw-r--r--sources/shiboken6/doc/typesystem_containers.rst284
-rw-r--r--sources/shiboken6/doc/typesystem_conversionrule.rst184
-rw-r--r--sources/shiboken6/doc/typesystem_converters.rst278
-rw-r--r--sources/shiboken6/doc/typesystem_documentation.rst63
-rw-r--r--sources/shiboken6/doc/typesystem_manipulating_objects.rst707
-rw-r--r--sources/shiboken6/doc/typesystem_modify_function.rst66
-rw-r--r--sources/shiboken6/doc/typesystem_ownership.rst192
-rw-r--r--sources/shiboken6/doc/typesystem_solving_compilation.rst94
-rw-r--r--sources/shiboken6/doc/typesystem_specialfunctions.rst22
-rw-r--r--sources/shiboken6/doc/typesystem_specifying_types.rst1117
-rw-r--r--sources/shiboken6/doc/typesystem_templates.rst131
-rw-r--r--sources/shiboken6/doc/typesystem_variables.rst180
-rw-r--r--sources/shiboken6/generator/CMakeLists.txt78
-rw-r--r--sources/shiboken6/generator/_config.py.in1
-rw-r--r--sources/shiboken6/generator/defaultvalue.cpp120
-rw-r--r--sources/shiboken6/generator/defaultvalue.h46
-rw-r--r--sources/shiboken6/generator/generator.cpp649
-rw-r--r--sources/shiboken6/generator/generator.h254
-rw-r--r--sources/shiboken6/generator/generatorcontext.cpp38
-rw-r--r--sources/shiboken6/generator/generatorcontext.h56
-rw-r--r--sources/shiboken6/generator/main.cpp883
-rw-r--r--sources/shiboken6/generator/qtdoc/qtdocgenerator.cpp1467
-rw-r--r--sources/shiboken6/generator/qtdoc/qtdocgenerator.h121
-rw-r--r--sources/shiboken6/generator/qtdoc/qtxmltosphinx.cpp763
-rw-r--r--sources/shiboken6/generator/qtdoc/qtxmltosphinx.h83
-rw-r--r--sources/shiboken6/generator/qtdoc/qtxmltosphinxinterface.h31
-rw-r--r--sources/shiboken6/generator/qtdoc/rstformat.h55
-rw-r--r--sources/shiboken6/generator/shiboken/configurablescope.h33
-rw-r--r--sources/shiboken6/generator/shiboken/cppgenerator.cpp6182
-rw-r--r--sources/shiboken6/generator/shiboken/cppgenerator.h514
-rw-r--r--sources/shiboken6/generator/shiboken/cppgenerator_container.cpp272
-rw-r--r--sources/shiboken6/generator/shiboken/cppgenerator_smartpointer.cpp486
-rw-r--r--sources/shiboken6/generator/shiboken/ctypenames.h69
-rw-r--r--sources/shiboken6/generator/shiboken/generatorargument.cpp110
-rw-r--r--sources/shiboken6/generator/shiboken/generatorargument.h60
-rw-r--r--sources/shiboken6/generator/shiboken/generatorstrings.h39
-rw-r--r--sources/shiboken6/generator/shiboken/headergenerator.cpp959
-rw-r--r--sources/shiboken6/generator/shiboken/headergenerator.h84
-rw-r--r--sources/shiboken6/generator/shiboken/overloaddata.cpp324
-rw-r--r--sources/shiboken6/generator/shiboken/overloaddata.h55
-rw-r--r--sources/shiboken6/generator/shiboken/pytypenames.h56
-rw-r--r--sources/shiboken6/generator/shiboken/shibokengenerator.cpp2209
-rw-r--r--sources/shiboken6/generator/shiboken/shibokengenerator.h341
-rw-r--r--sources/shiboken6/generatorrunnermacros.h29
-rw-r--r--sources/shiboken6/generators/shiboken/shiboken.cpp32
-rw-r--r--sources/shiboken6/icecc.cmake3
-rw-r--r--sources/shiboken6/libshiboken/CMakeLists.txt103
-rw-r--r--sources/shiboken6/libshiboken/autodecref.h99
-rw-r--r--sources/shiboken6/libshiboken/basewrapper.cpp697
-rw-r--r--sources/shiboken6/libshiboken/basewrapper.h123
-rw-r--r--sources/shiboken6/libshiboken/basewrapper_p.h178
-rw-r--r--sources/shiboken6/libshiboken/bindingmanager.cpp443
-rw-r--r--sources/shiboken6/libshiboken/bindingmanager.h68
-rw-r--r--sources/shiboken6/libshiboken/bufferprocs_py37.cpp40
-rw-r--r--sources/shiboken6/libshiboken/bufferprocs_py37.h44
-rw-r--r--sources/shiboken6/libshiboken/debugfreehook.cpp44
-rw-r--r--sources/shiboken6/libshiboken/debugfreehook.h40
-rw-r--r--sources/shiboken6/libshiboken/embed/embedding_generator.py73
-rw-r--r--sources/shiboken6/libshiboken/embed/module_collector.py43
-rw-r--r--sources/shiboken6/libshiboken/embed/qt_python_license.txt43
-rw-r--r--sources/shiboken6/libshiboken/embed/signature_bootstrap.py115
-rw-r--r--sources/shiboken6/libshiboken/gilstate.cpp40
-rw-r--r--sources/shiboken6/libshiboken/gilstate.h40
-rw-r--r--sources/shiboken6/libshiboken/helper.cpp448
-rw-r--r--sources/shiboken6/libshiboken/helper.h70
-rw-r--r--sources/shiboken6/libshiboken/pep384_issue33738.cpp121
-rw-r--r--sources/shiboken6/libshiboken/pep384ext.h89
-rw-r--r--sources/shiboken6/libshiboken/pep384impl.cpp548
-rw-r--r--sources/shiboken6/libshiboken/pep384impl.h192
-rw-r--r--sources/shiboken6/libshiboken/pep384impl_doc.rst711
-rw-r--r--sources/shiboken6/libshiboken/pyobjectholder.h86
-rw-r--r--sources/shiboken6/libshiboken/sbkarrayconverter.cpp48
-rw-r--r--sources/shiboken6/libshiboken/sbkarrayconverter.h46
-rw-r--r--sources/shiboken6/libshiboken/sbkarrayconverter_p.h42
-rw-r--r--sources/shiboken6/libshiboken/sbkcontainer.cpp19
-rw-r--r--sources/shiboken6/libshiboken/sbkcontainer.h281
-rw-r--r--sources/shiboken6/libshiboken/sbkconverter.cpp199
-rw-r--r--sources/shiboken6/libshiboken/sbkconverter.h109
-rw-r--r--sources/shiboken6/libshiboken/sbkconverter_p.h94
-rw-r--r--sources/shiboken6/libshiboken/sbkcppstring.cpp54
-rw-r--r--sources/shiboken6/libshiboken/sbkcppstring.h22
-rw-r--r--sources/shiboken6/libshiboken/sbkcpptonumpy.cpp67
-rw-r--r--sources/shiboken6/libshiboken/sbkcpptonumpy.h41
-rw-r--r--sources/shiboken6/libshiboken/sbkenum.cpp970
-rw-r--r--sources/shiboken6/libshiboken/sbkenum.h174
-rw-r--r--sources/shiboken6/libshiboken/sbkenum_p.h52
-rw-r--r--sources/shiboken6/libshiboken/sbkerrors.cpp170
-rw-r--r--sources/shiboken6/libshiboken/sbkerrors.h73
-rw-r--r--sources/shiboken6/libshiboken/sbkfeature_base.cpp434
-rw-r--r--sources/shiboken6/libshiboken/sbkfeature_base.h42
-rw-r--r--sources/shiboken6/libshiboken/sbkmodule.cpp472
-rw-r--r--sources/shiboken6/libshiboken/sbkmodule.h88
-rw-r--r--sources/shiboken6/libshiboken/sbknumpy.cpp59
-rw-r--r--sources/shiboken6/libshiboken/sbknumpyarrayconverter.cpp68
-rw-r--r--sources/shiboken6/libshiboken/sbknumpycheck.h30
-rw-r--r--sources/shiboken6/libshiboken/sbknumpyview.cpp265
-rw-r--r--sources/shiboken6/libshiboken/sbknumpyview.h47
-rw-r--r--sources/shiboken6/libshiboken/sbkpython.h41
-rw-r--r--sources/shiboken6/libshiboken/sbksmartpointer.cpp58
-rw-r--r--sources/shiboken6/libshiboken/sbksmartpointer.h18
-rw-r--r--sources/shiboken6/libshiboken/sbkstaticstrings.cpp55
-rw-r--r--sources/shiboken6/libshiboken/sbkstaticstrings.h52
-rw-r--r--sources/shiboken6/libshiboken/sbkstaticstrings_p.h40
-rw-r--r--sources/shiboken6/libshiboken/sbkstring.cpp124
-rw-r--r--sources/shiboken6/libshiboken/sbkstring.h44
-rw-r--r--sources/shiboken6/libshiboken/sbktypefactory.cpp369
-rw-r--r--sources/shiboken6/libshiboken/sbktypefactory.h41
-rw-r--r--sources/shiboken6/libshiboken/sbkversion.h.in46
-rw-r--r--sources/shiboken6/libshiboken/sbkwindows.h17
-rw-r--r--sources/shiboken6/libshiboken/shiboken.h42
-rw-r--r--sources/shiboken6/libshiboken/shibokenbuffer.cpp40
-rw-r--r--sources/shiboken6/libshiboken/shibokenbuffer.h40
-rw-r--r--sources/shiboken6/libshiboken/shibokenmacros.h40
-rw-r--r--sources/shiboken6/libshiboken/signature.h44
-rw-r--r--sources/shiboken6/libshiboken/signature/signature.cpp189
-rw-r--r--sources/shiboken6/libshiboken/signature/signature_doc.rst376
-rw-r--r--sources/shiboken6/libshiboken/signature/signature_extend.cpp140
-rw-r--r--sources/shiboken6/libshiboken/signature/signature_globals.cpp210
-rw-r--r--sources/shiboken6/libshiboken/signature/signature_helper.cpp99
-rw-r--r--sources/shiboken6/libshiboken/signature/signature_p.h107
-rw-r--r--sources/shiboken6/libshiboken/signature_p.h78
-rw-r--r--sources/shiboken6/libshiboken/threadstatesaver.cpp40
-rw-r--r--sources/shiboken6/libshiboken/threadstatesaver.h40
-rw-r--r--sources/shiboken6/libshiboken/voidptr.cpp134
-rw-r--r--sources/shiboken6/libshiboken/voidptr.h42
-rwxr-xr-xsources/shiboken6/shiboken_tool.py51
-rw-r--r--sources/shiboken6/shiboken_version.py50
-rw-r--r--sources/shiboken6/shibokenmodule/CMakeLists.txt44
-rw-r--r--sources/shiboken6/shibokenmodule/Shiboken.pyi60
-rw-r--r--sources/shiboken6/shibokenmodule/__init__.py.in5
-rw-r--r--sources/shiboken6/shibokenmodule/_config.py.in1
-rw-r--r--sources/shiboken6/shibokenmodule/files.dir/shibokensupport/__init__.py40
-rw-r--r--sources/shiboken6/shibokenmodule/files.dir/shibokensupport/feature.py114
-rw-r--r--sources/shiboken6/shibokenmodule/files.dir/shibokensupport/fix-complaints.py47
-rw-r--r--sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/__init__.py40
-rw-r--r--sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/errorhandler.py87
-rw-r--r--sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/importhandler.py44
-rw-r--r--sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/layout.py66
-rw-r--r--sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/lib/__init__.py40
-rw-r--r--sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/lib/enum_sig.py117
-rw-r--r--sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/lib/pyi_generator.py123
-rw-r--r--sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/lib/tool.py48
-rw-r--r--sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/loader.py96
-rw-r--r--sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/mapping.py247
-rw-r--r--sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/parser.py168
-rw-r--r--sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/qt_attribution.json2
-rw-r--r--sources/shiboken6/shibokenmodule/nothing.h3
-rw-r--r--sources/shiboken6/shibokenmodule/py.typed.in1
-rw-r--r--sources/shiboken6/shibokenmodule/shibokenmodule.cpp115
-rw-r--r--sources/shiboken6/shibokenmodule/typesystem_shiboken.xml125
-rw-r--r--sources/shiboken6/tests/CMakeLists.txt31
-rw-r--r--sources/shiboken6/tests/dumpcodemodel/CMakeLists.txt14
-rw-r--r--sources/shiboken6/tests/dumpcodemodel/main.cpp104
-rw-r--r--sources/shiboken6/tests/libminimal/CMakeLists.txt14
-rw-r--r--sources/shiboken6/tests/libminimal/containeruser.cpp55
-rw-r--r--sources/shiboken6/tests/libminimal/containeruser.h36
-rw-r--r--sources/shiboken6/tests/libminimal/libminimalmacros.h53
-rw-r--r--sources/shiboken6/tests/libminimal/listuser.cpp112
-rw-r--r--sources/shiboken6/tests/libminimal/listuser.h55
-rw-r--r--sources/shiboken6/tests/libminimal/minbool.h40
-rw-r--r--sources/shiboken6/tests/libminimal/obj.cpp34
-rw-r--r--sources/shiboken6/tests/libminimal/obj.h35
-rw-r--r--sources/shiboken6/tests/libminimal/spanuser.cpp58
-rw-r--r--sources/shiboken6/tests/libminimal/spanuser.h35
-rw-r--r--sources/shiboken6/tests/libminimal/typedef.cpp29
-rw-r--r--sources/shiboken6/tests/libminimal/typedef.h29
-rw-r--r--sources/shiboken6/tests/libminimal/val.h35
-rw-r--r--sources/shiboken6/tests/libother/CMakeLists.txt17
-rw-r--r--sources/shiboken6/tests/libother/extendsnoimplicitconversion.h32
-rw-r--r--sources/shiboken6/tests/libother/libothermacros.h29
-rw-r--r--sources/shiboken6/tests/libother/number.cpp49
-rw-r--r--sources/shiboken6/tests/libother/number.h33
-rw-r--r--sources/shiboken6/tests/libother/otherderived.cpp45
-rw-r--r--sources/shiboken6/tests/libother/otherderived.h45
-rw-r--r--sources/shiboken6/tests/libother/othermultiplederived.cpp40
-rw-r--r--sources/shiboken6/tests/libother/othermultiplederived.h33
-rw-r--r--sources/shiboken6/tests/libother/otherobjecttype.cpp34
-rw-r--r--sources/shiboken6/tests/libother/otherobjecttype.h37
-rw-r--r--sources/shiboken6/tests/libother/othertypesystypedef.cpp29
-rw-r--r--sources/shiboken6/tests/libother/othertypesystypedef.h29
-rw-r--r--sources/shiboken6/tests/libother/smartptrtester.cpp31
-rw-r--r--sources/shiboken6/tests/libother/smartptrtester.h29
-rw-r--r--sources/shiboken6/tests/libsample/CMakeLists.txt140
-rw-r--r--sources/shiboken6/tests/libsample/abstract.cpp100
-rw-r--r--sources/shiboken6/tests/libsample/abstract.h61
-rw-r--r--sources/shiboken6/tests/libsample/blackbox.cpp100
-rw-r--r--sources/shiboken6/tests/libsample/blackbox.h51
-rw-r--r--sources/shiboken6/tests/libsample/bucket.cpp55
-rw-r--r--sources/shiboken6/tests/libsample/bucket.h35
-rw-r--r--sources/shiboken6/tests/libsample/bytearray.cpp146
-rw-r--r--sources/shiboken6/tests/libsample/bytearray.h95
-rw-r--r--sources/shiboken6/tests/libsample/collector.cpp37
-rw-r--r--sources/shiboken6/tests/libsample/collector.h49
-rw-r--r--sources/shiboken6/tests/libsample/complex.cpp44
-rw-r--r--sources/shiboken6/tests/libsample/complex.h39
-rw-r--r--sources/shiboken6/tests/libsample/ctorconvrule.h35
-rw-r--r--sources/shiboken6/tests/libsample/ctparam.cpp29
-rw-r--r--sources/shiboken6/tests/libsample/ctparam.h29
-rw-r--r--sources/shiboken6/tests/libsample/cvlist.h35
-rw-r--r--sources/shiboken6/tests/libsample/derived.cpp79
-rw-r--r--sources/shiboken6/tests/libsample/derived.h51
-rw-r--r--sources/shiboken6/tests/libsample/derivedusingct.cpp29
-rw-r--r--sources/shiboken6/tests/libsample/derivedusingct.h29
-rw-r--r--sources/shiboken6/tests/libsample/echo.cpp29
-rw-r--r--sources/shiboken6/tests/libsample/echo.h79
-rw-r--r--sources/shiboken6/tests/libsample/exceptiontest.cpp36
-rw-r--r--sources/shiboken6/tests/libsample/exceptiontest.h31
-rw-r--r--sources/shiboken6/tests/libsample/expression.cpp112
-rw-r--r--sources/shiboken6/tests/libsample/expression.h58
-rw-r--r--sources/shiboken6/tests/libsample/filter.cpp51
-rw-r--r--sources/shiboken6/tests/libsample/filter.h57
-rw-r--r--sources/shiboken6/tests/libsample/functions.cpp161
-rw-r--r--sources/shiboken6/tests/libsample/functions.h61
-rw-r--r--sources/shiboken6/tests/libsample/handle.cpp37
-rw-r--r--sources/shiboken6/tests/libsample/handle.h61
-rw-r--r--sources/shiboken6/tests/libsample/implicitconv.cpp53
-rw-r--r--sources/shiboken6/tests/libsample/implicitconv.h55
-rw-r--r--sources/shiboken6/tests/libsample/injectcode.cpp62
-rw-r--r--sources/shiboken6/tests/libsample/injectcode.h55
-rw-r--r--sources/shiboken6/tests/libsample/intwrapper.cpp29
-rw-r--r--sources/shiboken6/tests/libsample/intwrapper.h29
-rw-r--r--sources/shiboken6/tests/libsample/libsamplemacros.h29
-rw-r--r--sources/shiboken6/tests/libsample/list.h71
-rw-r--r--sources/shiboken6/tests/libsample/listuser.cpp66
-rw-r--r--sources/shiboken6/tests/libsample/listuser.h49
-rw-r--r--sources/shiboken6/tests/libsample/main.cpp249
-rw-r--r--sources/shiboken6/tests/libsample/mapuser.cpp71
-rw-r--r--sources/shiboken6/tests/libsample/mapuser.h50
-rw-r--r--sources/shiboken6/tests/libsample/modelindex.h58
-rw-r--r--sources/shiboken6/tests/libsample/modifications.cpp139
-rw-r--r--sources/shiboken6/tests/libsample/modifications.h91
-rw-r--r--sources/shiboken6/tests/libsample/modified_constructor.cpp32
-rw-r--r--sources/shiboken6/tests/libsample/modified_constructor.h33
-rw-r--r--sources/shiboken6/tests/libsample/multiple_derived.cpp62
-rw-r--r--sources/shiboken6/tests/libsample/multiple_derived.h163
-rw-r--r--sources/shiboken6/tests/libsample/noimplicitconversion.h38
-rw-r--r--sources/shiboken6/tests/libsample/nondefaultctor.h43
-rw-r--r--sources/shiboken6/tests/libsample/nontypetemplate.h33
-rw-r--r--sources/shiboken6/tests/libsample/null.h37
-rw-r--r--sources/shiboken6/tests/libsample/objectmodel.cpp44
-rw-r--r--sources/shiboken6/tests/libsample/objectmodel.h43
-rw-r--r--sources/shiboken6/tests/libsample/objecttype.cpp162
-rw-r--r--sources/shiboken6/tests/libsample/objecttype.h126
-rw-r--r--sources/shiboken6/tests/libsample/objecttypebyvalue.h49
-rw-r--r--sources/shiboken6/tests/libsample/objecttypeholder.cpp41
-rw-r--r--sources/shiboken6/tests/libsample/objecttypeholder.h41
-rw-r--r--sources/shiboken6/tests/libsample/objecttypelayout.cpp45
-rw-r--r--sources/shiboken6/tests/libsample/objecttypelayout.h42
-rw-r--r--sources/shiboken6/tests/libsample/objecttypeoperators.cpp41
-rw-r--r--sources/shiboken6/tests/libsample/objecttypeoperators.h51
-rw-r--r--sources/shiboken6/tests/libsample/objectview.cpp42
-rw-r--r--sources/shiboken6/tests/libsample/objectview.h45
-rw-r--r--sources/shiboken6/tests/libsample/oddbool.cpp35
-rw-r--r--sources/shiboken6/tests/libsample/oddbool.h62
-rw-r--r--sources/shiboken6/tests/libsample/onlycopy.cpp59
-rw-r--r--sources/shiboken6/tests/libsample/onlycopy.h47
-rw-r--r--sources/shiboken6/tests/libsample/overload.cpp213
-rw-r--r--sources/shiboken6/tests/libsample/overload.h118
-rw-r--r--sources/shiboken6/tests/libsample/overloadsort.cpp64
-rw-r--r--sources/shiboken6/tests/libsample/overloadsort.h81
-rw-r--r--sources/shiboken6/tests/libsample/pairuser.cpp49
-rw-r--r--sources/shiboken6/tests/libsample/pairuser.h41
-rw-r--r--sources/shiboken6/tests/libsample/pen.cpp49
-rw-r--r--sources/shiboken6/tests/libsample/pen.h40
-rw-r--r--sources/shiboken6/tests/libsample/photon.cpp43
-rw-r--r--sources/shiboken6/tests/libsample/photon.h90
-rw-r--r--sources/shiboken6/tests/libsample/point.cpp108
-rw-r--r--sources/shiboken6/tests/libsample/point.h91
-rw-r--r--sources/shiboken6/tests/libsample/pointerholder.h42
-rw-r--r--sources/shiboken6/tests/libsample/pointf.cpp94
-rw-r--r--sources/shiboken6/tests/libsample/pointf.h81
-rw-r--r--sources/shiboken6/tests/libsample/polygon.cpp54
-rw-r--r--sources/shiboken6/tests/libsample/polygon.h45
-rw-r--r--sources/shiboken6/tests/libsample/privatector.h53
-rw-r--r--sources/shiboken6/tests/libsample/privatedtor.h48
-rw-r--r--sources/shiboken6/tests/libsample/protected.cpp38
-rw-r--r--sources/shiboken6/tests/libsample/protected.h114
-rw-r--r--sources/shiboken6/tests/libsample/rect.h82
-rw-r--r--sources/shiboken6/tests/libsample/reference.cpp65
-rw-r--r--sources/shiboken6/tests/libsample/reference.h73
-rw-r--r--sources/shiboken6/tests/libsample/removednamespaces.h30
-rw-r--r--sources/shiboken6/tests/libsample/renaming.cpp29
-rw-r--r--sources/shiboken6/tests/libsample/renaming.h29
-rw-r--r--sources/shiboken6/tests/libsample/sample.cpp31
-rw-r--r--sources/shiboken6/tests/libsample/sample.h33
-rw-r--r--sources/shiboken6/tests/libsample/samplenamespace.cpp110
-rw-r--r--sources/shiboken6/tests/libsample/samplenamespace.h80
-rw-r--r--sources/shiboken6/tests/libsample/sbkdate.cpp29
-rw-r--r--sources/shiboken6/tests/libsample/sbkdate.h32
-rw-r--r--sources/shiboken6/tests/libsample/simplefile.cpp99
-rw-r--r--sources/shiboken6/tests/libsample/simplefile.h48
-rw-r--r--sources/shiboken6/tests/libsample/size.cpp38
-rw-r--r--sources/shiboken6/tests/libsample/size.h105
-rw-r--r--sources/shiboken6/tests/libsample/snakecasetest.cpp29
-rw-r--r--sources/shiboken6/tests/libsample/snakecasetest.h29
-rw-r--r--sources/shiboken6/tests/libsample/sometime.cpp58
-rw-r--r--sources/shiboken6/tests/libsample/sometime.h56
-rw-r--r--sources/shiboken6/tests/libsample/stdcomplex.cpp32
-rw-r--r--sources/shiboken6/tests/libsample/stdcomplex.h55
-rw-r--r--sources/shiboken6/tests/libsample/str.cpp124
-rw-r--r--sources/shiboken6/tests/libsample/str.h62
-rw-r--r--sources/shiboken6/tests/libsample/strlist.cpp35
-rw-r--r--sources/shiboken6/tests/libsample/strlist.h62
-rw-r--r--sources/shiboken6/tests/libsample/templateptr.cpp33
-rw-r--r--sources/shiboken6/tests/libsample/templateptr.h38
-rw-r--r--sources/shiboken6/tests/libsample/transform.cpp65
-rw-r--r--sources/shiboken6/tests/libsample/transform.h43
-rw-r--r--sources/shiboken6/tests/libsample/typesystypedef.cpp29
-rw-r--r--sources/shiboken6/tests/libsample/typesystypedef.h29
-rw-r--r--sources/shiboken6/tests/libsample/valueandvirtual.h42
-rw-r--r--sources/shiboken6/tests/libsample/virtualmethods.cpp43
-rw-r--r--sources/shiboken6/tests/libsample/virtualmethods.h71
-rw-r--r--sources/shiboken6/tests/libsample/voidholder.h46
-rw-r--r--sources/shiboken6/tests/libsmart/CMakeLists.txt14
-rw-r--r--sources/shiboken6/tests/libsmart/libsmartmacros.h29
-rw-r--r--sources/shiboken6/tests/libsmart/smart.cpp157
-rw-r--r--sources/shiboken6/tests/libsmart/smart.h33
-rw-r--r--sources/shiboken6/tests/libsmart/smart_integer.h69
-rw-r--r--sources/shiboken6/tests/libsmart/smart_obj.h47
-rw-r--r--sources/shiboken6/tests/libsmart/smart_registry.h35
-rw-r--r--sources/shiboken6/tests/libsmart/smart_sharedptr.h56
-rw-r--r--sources/shiboken6/tests/libsmart/smart_test.h13
-rw-r--r--sources/shiboken6/tests/libsmart/stdoptionaltestbench.cpp58
-rw-r--r--sources/shiboken6/tests/libsmart/stdoptionaltestbench.h30
-rw-r--r--sources/shiboken6/tests/libsmart/stdsharedptrtestbench.cpp66
-rw-r--r--sources/shiboken6/tests/libsmart/stdsharedptrtestbench.h40
-rw-r--r--sources/shiboken6/tests/libsmart/stduniqueptrtestbench.cpp133
-rw-r--r--sources/shiboken6/tests/libsmart/stduniqueptrtestbench.h50
-rw-r--r--sources/shiboken6/tests/minimalbinding/CMakeLists.txt23
-rw-r--r--sources/shiboken6/tests/minimalbinding/brace_pattern_test.py49
-rw-r--r--sources/shiboken6/tests/minimalbinding/containeruser_test.py44
-rw-r--r--sources/shiboken6/tests/minimalbinding/global.h31
-rw-r--r--sources/shiboken6/tests/minimalbinding/listuser_test.py123
-rw-r--r--sources/shiboken6/tests/minimalbinding/minbool_test.py53
-rw-r--r--sources/shiboken6/tests/minimalbinding/minimal-binding.txt.in1
-rw-r--r--sources/shiboken6/tests/minimalbinding/minimalbinding.pyproject10
-rw-r--r--sources/shiboken6/tests/minimalbinding/obj_test.py33
-rw-r--r--sources/shiboken6/tests/minimalbinding/spanuser_test.py42
-rw-r--r--sources/shiboken6/tests/minimalbinding/typedef_test.py85
-rw-r--r--sources/shiboken6/tests/minimalbinding/typesystem_minimal.xml100
-rw-r--r--sources/shiboken6/tests/minimalbinding/val_test.py32
-rw-r--r--sources/shiboken6/tests/otherbinding/CMakeLists.txt21
-rw-r--r--sources/shiboken6/tests/otherbinding/collector_external_operator_test.py34
-rw-r--r--sources/shiboken6/tests/otherbinding/conversion_operator_for_class_without_implicit_conversions_test.py59
-rw-r--r--sources/shiboken6/tests/otherbinding/extended_multiply_operator_test.py34
-rw-r--r--sources/shiboken6/tests/otherbinding/global.h29
-rw-r--r--sources/shiboken6/tests/otherbinding/module_reload_test.py33
-rw-r--r--sources/shiboken6/tests/otherbinding/new_ctor_operator_test.py44
-rw-r--r--sources/shiboken6/tests/otherbinding/objtypehashes_test.py34
-rw-r--r--sources/shiboken6/tests/otherbinding/other-binding.txt.in2
-rw-r--r--sources/shiboken6/tests/otherbinding/otherbinding.pyproject17
-rw-r--r--sources/shiboken6/tests/otherbinding/otherderived_test.py49
-rw-r--r--sources/shiboken6/tests/otherbinding/othertypesystypedef_test.py34
-rw-r--r--sources/shiboken6/tests/otherbinding/signature_test.py43
-rw-r--r--sources/shiboken6/tests/otherbinding/smartptr_test.py33
-rw-r--r--sources/shiboken6/tests/otherbinding/star_import_test.py99
-rw-r--r--sources/shiboken6/tests/otherbinding/test_module_template.py44
-rw-r--r--sources/shiboken6/tests/otherbinding/typediscovery_test.py45
-rw-r--r--sources/shiboken6/tests/otherbinding/typesystem_other.xml4
-rw-r--r--sources/shiboken6/tests/otherbinding/usersprimitivefromothermodule_test.py33
-rw-r--r--sources/shiboken6/tests/otherbinding/wrongctor_test.py41
-rw-r--r--sources/shiboken6/tests/qtxmltosphinx/CMakeLists.txt32
-rw-r--r--sources/shiboken6/tests/qtxmltosphinx/main.cpp107
-rw-r--r--sources/shiboken6/tests/qtxmltosphinxtest/CMakeLists.txt5
-rw-r--r--sources/shiboken6/tests/qtxmltosphinxtest/qtxmltosphinxtest.cpp644
-rw-r--r--sources/shiboken6/tests/qtxmltosphinxtest/qtxmltosphinxtest.h31
-rw-r--r--sources/shiboken6/tests/samplebinding/CMakeLists.txt25
-rw-r--r--sources/shiboken6/tests/samplebinding/__del___test.py38
-rw-r--r--sources/shiboken6/tests/samplebinding/abstract_test.py42
-rw-r--r--sources/shiboken6/tests/samplebinding/addedfunction_test.py33
-rw-r--r--sources/shiboken6/tests/samplebinding/addedfunction_with_container_args_test.py37
-rw-r--r--sources/shiboken6/tests/samplebinding/argumentmodifications_test.py49
-rw-r--r--sources/shiboken6/tests/samplebinding/array_numpy_test.py40
-rw-r--r--sources/shiboken6/tests/samplebinding/array_sequence_test.py32
-rw-r--r--sources/shiboken6/tests/samplebinding/bug_554_test.py37
-rw-r--r--sources/shiboken6/tests/samplebinding/bug_704_test.py36
-rw-r--r--sources/shiboken6/tests/samplebinding/bytearray_test.py37
-rw-r--r--sources/shiboken6/tests/samplebinding/child_return_test.py41
-rw-r--r--sources/shiboken6/tests/samplebinding/class_fields_test.py46
-rw-r--r--sources/shiboken6/tests/samplebinding/collector_test.py33
-rw-r--r--sources/shiboken6/tests/samplebinding/complex_test.py42
-rw-r--r--sources/shiboken6/tests/samplebinding/conversion_operator_test.py37
-rw-r--r--sources/shiboken6/tests/samplebinding/copy_test.py32
-rw-r--r--sources/shiboken6/tests/samplebinding/ctorconvrule_test.py34
-rw-r--r--sources/shiboken6/tests/samplebinding/cyclic_test.py51
-rw-r--r--sources/shiboken6/tests/samplebinding/date_test.py34
-rw-r--r--sources/shiboken6/tests/samplebinding/decisor_test.py46
-rw-r--r--sources/shiboken6/tests/samplebinding/delete_test.py37
-rw-r--r--sources/shiboken6/tests/samplebinding/deprecated_test.py33
-rw-r--r--sources/shiboken6/tests/samplebinding/derived_test.py82
-rw-r--r--sources/shiboken6/tests/samplebinding/duck_punching_test.py44
-rw-r--r--sources/shiboken6/tests/samplebinding/echo_test.py37
-rw-r--r--sources/shiboken6/tests/samplebinding/enum_test.py92
-rw-r--r--sources/shiboken6/tests/samplebinding/enumfromremovednamespace_test.py47
-rw-r--r--sources/shiboken6/tests/samplebinding/event_loop_call_virtual_test.py34
-rw-r--r--sources/shiboken6/tests/samplebinding/event_loop_thread_test.py32
-rw-r--r--sources/shiboken6/tests/samplebinding/exception_test.py58
-rw-r--r--sources/shiboken6/tests/samplebinding/filter_test.py31
-rw-r--r--sources/shiboken6/tests/samplebinding/global.h30
-rw-r--r--sources/shiboken6/tests/samplebinding/handleholder_test.py33
-rw-r--r--sources/shiboken6/tests/samplebinding/hashabletype_test.py36
-rw-r--r--sources/shiboken6/tests/samplebinding/ignorederefop_test.py33
-rw-r--r--sources/shiboken6/tests/samplebinding/implicitconv_numerical_test.py37
-rw-r--r--sources/shiboken6/tests/samplebinding/implicitconv_test.py33
-rw-r--r--sources/shiboken6/tests/samplebinding/inheritanceandscope_test.py37
-rw-r--r--sources/shiboken6/tests/samplebinding/injectcode_test.py50
-rw-r--r--sources/shiboken6/tests/samplebinding/innerclass_test.py36
-rw-r--r--sources/shiboken6/tests/samplebinding/intlist_test.py33
-rw-r--r--sources/shiboken6/tests/samplebinding/intwrapper_test.py40
-rw-r--r--sources/shiboken6/tests/samplebinding/invalid_virtual_return_test.py33
-rw-r--r--sources/shiboken6/tests/samplebinding/keep_reference_test.py44
-rw-r--r--sources/shiboken6/tests/samplebinding/list_test.py38
-rw-r--r--sources/shiboken6/tests/samplebinding/lock_test.py34
-rw-r--r--sources/shiboken6/tests/samplebinding/map_test.py46
-rw-r--r--sources/shiboken6/tests/samplebinding/metaclass_test.py43
-rw-r--r--sources/shiboken6/tests/samplebinding/mi_virtual_methods_test.py31
-rw-r--r--sources/shiboken6/tests/samplebinding/mixed_mi_test.py33
-rw-r--r--sources/shiboken6/tests/samplebinding/modelindex_test.py33
-rw-r--r--sources/shiboken6/tests/samplebinding/modelview_test.py40
-rw-r--r--sources/shiboken6/tests/samplebinding/modifications_test.py73
-rw-r--r--sources/shiboken6/tests/samplebinding/modified_constructor_test.py36
-rw-r--r--sources/shiboken6/tests/samplebinding/modifiedvirtualmethods_test.py46
-rw-r--r--sources/shiboken6/tests/samplebinding/multi_cpp_inheritance_test.py70
-rw-r--r--sources/shiboken6/tests/samplebinding/multiple_derived_test.py74
-rw-r--r--sources/shiboken6/tests/samplebinding/namespace_test.py73
-rw-r--r--sources/shiboken6/tests/samplebinding/newdivision_test.py35
-rw-r--r--sources/shiboken6/tests/samplebinding/nondefaultctor_test.py40
-rw-r--r--sources/shiboken6/tests/samplebinding/nontypetemplate_test.py33
-rw-r--r--sources/shiboken6/tests/samplebinding/nonzero_test.py32
-rw-r--r--sources/shiboken6/tests/samplebinding/numericaltypedef_test.py33
-rw-r--r--sources/shiboken6/tests/samplebinding/numpy_test.py36
-rw-r--r--sources/shiboken6/tests/samplebinding/objecttype_test.py39
-rw-r--r--sources/shiboken6/tests/samplebinding/objecttype_with_named_args_test.py39
-rw-r--r--sources/shiboken6/tests/samplebinding/objecttypebyvalue_test.py32
-rw-r--r--sources/shiboken6/tests/samplebinding/objecttypelayout_test.py76
-rw-r--r--sources/shiboken6/tests/samplebinding/objecttypeoperators_test.py37
-rw-r--r--sources/shiboken6/tests/samplebinding/objecttypereferenceasvirtualmethodargument_test.py33
-rw-r--r--sources/shiboken6/tests/samplebinding/oddbool_test.py60
-rw-r--r--sources/shiboken6/tests/samplebinding/onlycopyclass_test.py33
-rw-r--r--sources/shiboken6/tests/samplebinding/overflow_test.py52
-rw-r--r--sources/shiboken6/tests/samplebinding/overload_sorting_test.py37
-rw-r--r--sources/shiboken6/tests/samplebinding/overload_test.py43
-rw-r--r--sources/shiboken6/tests/samplebinding/overloadwithdefault_test.py33
-rw-r--r--sources/shiboken6/tests/samplebinding/ownership_argument_invalidation_test.py40
-rw-r--r--sources/shiboken6/tests/samplebinding/ownership_delete_child_in_cpp_test.py32
-rw-r--r--sources/shiboken6/tests/samplebinding/ownership_delete_child_in_python_test.py35
-rw-r--r--sources/shiboken6/tests/samplebinding/ownership_delete_parent_test.py40
-rw-r--r--sources/shiboken6/tests/samplebinding/ownership_invalidate_after_use_test.py43
-rw-r--r--sources/shiboken6/tests/samplebinding/ownership_invalidate_child_test.py38
-rw-r--r--sources/shiboken6/tests/samplebinding/ownership_invalidate_nonpolymorphic_test.py34
-rw-r--r--sources/shiboken6/tests/samplebinding/ownership_invalidate_parent_test.py35
-rw-r--r--sources/shiboken6/tests/samplebinding/ownership_reparenting_test.py33
-rw-r--r--sources/shiboken6/tests/samplebinding/ownership_transference_test.py50
-rw-r--r--sources/shiboken6/tests/samplebinding/pair_test.py44
-rw-r--r--sources/shiboken6/tests/samplebinding/pen_test.py32
-rw-r--r--sources/shiboken6/tests/samplebinding/point_test.py38
-rw-r--r--sources/shiboken6/tests/samplebinding/pointerholder_test.py39
-rw-r--r--sources/shiboken6/tests/samplebinding/pointerprimitivetype_test.py39
-rw-r--r--sources/shiboken6/tests/samplebinding/pointf_test.py33
-rw-r--r--sources/shiboken6/tests/samplebinding/primitivereferenceargument_test.py37
-rw-r--r--sources/shiboken6/tests/samplebinding/privatector_test.py38
-rw-r--r--sources/shiboken6/tests/samplebinding/privatedtor_test.py38
-rw-r--r--sources/shiboken6/tests/samplebinding/protected_test.py141
-rw-r--r--sources/shiboken6/tests/samplebinding/pstrlist_test.py33
-rw-r--r--sources/shiboken6/tests/samplebinding/pystr_test.py34
-rw-r--r--sources/shiboken6/tests/samplebinding/python_thread_test.py35
-rw-r--r--sources/shiboken6/tests/samplebinding/receive_null_cstring_test.py37
-rw-r--r--sources/shiboken6/tests/samplebinding/reference_test.py55
-rw-r--r--sources/shiboken6/tests/samplebinding/referencetopointer_test.py34
-rw-r--r--sources/shiboken6/tests/samplebinding/renaming_test.py37
-rw-r--r--sources/shiboken6/tests/samplebinding/return_null_test.py37
-rw-r--r--sources/shiboken6/tests/samplebinding/richcompare_test.py35
-rw-r--r--sources/shiboken6/tests/samplebinding/sample-binding.txt.in1
-rw-r--r--sources/shiboken6/tests/samplebinding/sample_test.py93
-rw-r--r--sources/shiboken6/tests/samplebinding/samplebinding.pyproject131
-rw-r--r--sources/shiboken6/tests/samplebinding/samplesnippets.cpp54
-rw-r--r--sources/shiboken6/tests/samplebinding/simplefile_glue.cpp29
-rw-r--r--sources/shiboken6/tests/samplebinding/simplefile_test.py34
-rw-r--r--sources/shiboken6/tests/samplebinding/size_test.py34
-rw-r--r--sources/shiboken6/tests/samplebinding/snakecase_test.py31
-rw-r--r--sources/shiboken6/tests/samplebinding/static_nonstatic_methods_test.py39
-rw-r--r--sources/shiboken6/tests/samplebinding/stdcomplex_test.py71
-rw-r--r--sources/shiboken6/tests/samplebinding/str_test.py71
-rw-r--r--sources/shiboken6/tests/samplebinding/strlist_test.py33
-rw-r--r--sources/shiboken6/tests/samplebinding/templateinheritingclass_test.py35
-rw-r--r--sources/shiboken6/tests/samplebinding/time_test.py35
-rw-r--r--sources/shiboken6/tests/samplebinding/transform_test.py33
-rw-r--r--sources/shiboken6/tests/samplebinding/typeconverters_test.py51
-rw-r--r--sources/shiboken6/tests/samplebinding/typedealloc_test.py42
-rw-r--r--sources/shiboken6/tests/samplebinding/typedtordoublefree_test.py35
-rw-r--r--sources/shiboken6/tests/samplebinding/typesystem_sample.xml268
-rw-r--r--sources/shiboken6/tests/samplebinding/typesystypedef_test.py34
-rw-r--r--sources/shiboken6/tests/samplebinding/unsafe_parent_test.py35
-rw-r--r--sources/shiboken6/tests/samplebinding/useraddedctor_test.py38
-rw-r--r--sources/shiboken6/tests/samplebinding/virtualdtor_test.py41
-rw-r--r--sources/shiboken6/tests/samplebinding/virtualmethods_test.py45
-rw-r--r--sources/shiboken6/tests/samplebinding/visibilitychange_test.py41
-rw-r--r--sources/shiboken6/tests/samplebinding/voidholder_test.py34
-rw-r--r--sources/shiboken6/tests/samplebinding/weakref_test.py40
-rw-r--r--sources/shiboken6/tests/samplebinding/writableclassdict_test.py37
-rw-r--r--sources/shiboken6/tests/shiboken_paths.py29
-rw-r--r--sources/shiboken6/tests/shiboken_test_helper.py31
-rw-r--r--sources/shiboken6/tests/shibokenmodule/module_test.py55
-rw-r--r--sources/shiboken6/tests/smartbinding/CMakeLists.txt35
-rw-r--r--sources/shiboken6/tests/smartbinding/global.h29
-rw-r--r--sources/shiboken6/tests/smartbinding/smart-binding.txt.in1
-rw-r--r--sources/shiboken6/tests/smartbinding/smart_pointer_test.py189
-rw-r--r--sources/shiboken6/tests/smartbinding/smartbinding.pyproject7
-rw-r--r--sources/shiboken6/tests/smartbinding/std_optional_test.py69
-rw-r--r--sources/shiboken6/tests/smartbinding/std_shared_ptr_test.py69
-rw-r--r--sources/shiboken6/tests/smartbinding/std_unique_ptr_test.py94
-rw-r--r--sources/shiboken6/tests/smartbinding/typesystem_smart.xml64
-rw-r--r--sources/shiboken6/tests/test_generator/CMakeLists.txt5
-rw-r--r--sources/shiboken6/tests/test_generator/dummygenerator.cpp29
-rw-r--r--sources/shiboken6/tests/test_generator/dummygenerator.h29
-rw-r--r--sources/shiboken6/tests/test_generator/dummygentest.cpp34
-rw-r--r--sources/shiboken6/tests/test_generator/dummygentest.h29
-rw-r--r--sources/shiboken6/tests/test_generator/main.cpp29
-rw-r--r--sources/shiboken6/tests/test_generator/run_test.cmake3
-rw-r--r--testing/__init__.py41
-rw-r--r--testing/blacklist.py50
-rw-r--r--testing/buildlog.py57
-rw-r--r--testing/command.py67
-rw-r--r--testing/helper.py41
-rw-r--r--testing/parser.py42
-rw-r--r--testing/runner.py76
-rw-r--r--testing/wheel_tester.py237
-rw-r--r--testrunner.py43
-rw-r--r--tools/checklibs.py61
-rw-r--r--tools/create_changelog.py195
-rw-r--r--tools/cross_compile_android/android_utilities.py256
-rw-r--r--tools/cross_compile_android/main.py300
-rw-r--r--tools/cross_compile_android/requirements.txt3
-rw-r--r--tools/cross_compile_android/templates/cross_compile.tmpl.sh29
-rw-r--r--tools/cross_compile_android/templates/toolchain_default.tmpl.cmake73
-rw-r--r--tools/debug_renamer.py116
-rw-r--r--tools/debug_windows.py106
-rw-r--r--tools/doc_modules.py209
-rw-r--r--tools/dump_metaobject.py98
-rw-r--r--tools/example_gallery/main.py739
-rw-r--r--tools/leak_finder.py34
-rw-r--r--tools/license_check.py43
-rw-r--r--tools/metaobject_dump.py45
-rw-r--r--tools/missing_bindings-requirements.txt7
-rw-r--r--tools/missing_bindings/config.py150
-rw-r--r--tools/missing_bindings/main.py215
-rw-r--r--tools/missing_bindings/requirements.txt6
-rw-r--r--tools/qtcpp2py.py63
-rw-r--r--tools/qtpy2cpp.py99
-rw-r--r--tools/qtpy2cpp.pyproject6
-rw-r--r--tools/qtpy2cpp_lib/astdump.py149
-rw-r--r--tools/qtpy2cpp_lib/formatter.py264
-rw-r--r--tools/qtpy2cpp_lib/nodedump.py86
-rw-r--r--tools/qtpy2cpp_lib/test_baseline/basic_test.py38
-rw-r--r--tools/qtpy2cpp_lib/test_baseline/uic.py208
-rw-r--r--tools/qtpy2cpp_lib/tokenizer.py91
-rw-r--r--tools/qtpy2cpp_lib/visitor.py260
-rw-r--r--tools/regenerate_example_resources.py60
-rw-r--r--tools/regenerate_example_ui.py36
-rw-r--r--tools/scanqtclasses.py122
-rw-r--r--tools/snippets_translate/README.md18
-rw-r--r--tools/snippets_translate/converter.py227
-rw-r--r--tools/snippets_translate/handlers.py334
-rw-r--r--tools/snippets_translate/main.py535
-rw-r--r--tools/snippets_translate/module_classes.py40
-rw-r--r--tools/snippets_translate/override.py112
-rw-r--r--tools/snippets_translate/parse_utils.py43
-rw-r--r--tools/snippets_translate/snippets_translate.pyproject3
-rw-r--r--tools/snippets_translate/tests/test_converter.py144
-rw-r--r--tools/snippets_translate/tests/test_snippets.py134
-rw-r--r--tools/uic_test.py49
-rw-r--r--wheel_artifacts/pyproject.toml.base60
-rw-r--r--wheel_artifacts/setup.py.base26
3778 files changed, 254610 insertions, 283021 deletions
diff --git a/.flake8 b/.flake8
new file mode 100644
index 000000000..f7b40d748
--- /dev/null
+++ b/.flake8
@@ -0,0 +1,12 @@
+[flake8]
+ignore = E115,E265,W503
+max-line-length = 100
+exclude = rc_*.py,*_rc.py,ui_*.py
+per-file-ignores =
+ # for init_test_paths() hack
+ *_test_*.py:E402
+ *_test.py:E402
+ *bug_*.py:E402
+ test_*.py:E402
+ signal_across_threads.py:E402
+ __init__.py:F401,E402
diff --git a/.gitignore b/.gitignore
index 1ac750025..27fd3efc2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -71,7 +71,7 @@ __pycache__/
.Python
build/
develop-eggs/
-#dist/ # we place the changelogs here
+dist/
downloads/
eggs/
.eggs/
@@ -102,6 +102,7 @@ pip-delete-this-directory.txt
# Sphinx documentation
docs/_build/
+html/
# PyBuilder
target/
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 000000000..3d19a40b4
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,19 @@
+{
+ "editor.rulers": [
+ 72, // comments and docstrings
+ 79, // desirable code length
+ 100 // maximum code length
+ ],
+ "python.testing.unittestArgs": [
+ "-v",
+ "-s",
+ "./sources/pyside6/tests",
+ "-p",
+ "*_test.py"
+ ],
+ "python.testing.pytestEnabled": false,
+ "python.testing.unittestEnabled": true,
+ "flake8.args": [
+ "--config=.flake8"
+ ]
+}
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 65172b351..f61a4f256 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,5 +1,8 @@
-cmake_minimum_required(VERSION 3.16)
-cmake_policy(VERSION 3.16)
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+cmake_minimum_required(VERSION 3.18)
+cmake_policy(VERSION 3.18)
set(CMAKE_BUILD_TYPE Release CACHE STRING "Build Type")
@@ -14,11 +17,12 @@ set(is_pyside6_superproject_build 1)
add_subdirectory(sources/shiboken6)
-# Semi-hack to include exported shiboken variables.
+# Ensure Shiboken6 and Shiboken6Tools packags are found during super-build
list(APPEND CMAKE_PREFIX_PATH "${CMAKE_CURRENT_BINARY_DIR}/sources/shiboken6/data")
+list(APPEND CMAKE_PREFIX_PATH "${CMAKE_CURRENT_BINARY_DIR}/sources/shiboken6/generator")
add_subdirectory(sources/pyside6)
add_subdirectory(sources/pyside-tools)
-# Semi-hack to include exported pyside6 variables.
+# Ensure PySide package is found during super-build
list(APPEND CMAKE_PREFIX_PATH "${CMAKE_CURRENT_BINARY_DIR}/sources/pyside6/libpyside")
diff --git a/LICENSE.COMMERCIAL b/LICENSE.COMMERCIAL
deleted file mode 100644
index 9854ef9a9..000000000
--- a/LICENSE.COMMERCIAL
+++ /dev/null
@@ -1,914 +0,0 @@
-QT LICENSE AGREEMENT Agreement version 4.0
-
-This License Agreement (“Agreement”) is a legal agreement between The Qt
-Company (as defined below) and the Licensee (as defined below) for the license
-of Licensed Software (as defined below). Capitalized terms used herein are
-defined in Section 1.
-
-WHEREAS:
-
-(A). Licensee wishes to use the Licensed Software for the purpose of developing
-and distributing Applications and/or Devices; and
-
-(B). The Qt Company is willing to grant the Licensee a right to use Licensed
-Software for such purpose pursuant to term and conditions of this Agreement.
-
-NOW, THEREFORE, THE PARTIES HEREBY AGREE AS FOLLOWS:
-
-1. DEFINITIONS
-
-“Affiliate” of a Party shall mean an entity (i) which is directly or indirectly
-controlling such Party; (ii) which is under the same direct or indirect
-ownership or control as such Party; or (iii) which is directly or indirectly
-owned or controlled by such Party. For these purposes, an entity shall be
-treated as being controlled by another if that other entity has fifty percent
-(50 %) or more of the votes in such entity, is able to direct its affairs
-and/or to control the composition of its board of directors or equivalent body.
-
-“Applications” shall mean Licensee's software products created using the
-Licensed Software, which may include the Redistributables, or part
-thereof.
-
-“Contractor(s)” shall mean third party consultants, distributors and
-contractors performing services to a Party under applicable contractual
-arrangement.
-
-“Customer(s)” shall mean Licensee’s end users to whom Licensee, directly or
-indirectly, distributes copies of the Redistributables.
-
-“Deployment Platforms” shall mean operating systems specified in the License
-Certificate, in which the Redistributables can be distributed pursuant to the
-terms and conditions of this Agreement.
-
-“Designated User(s)” shall mean the employee(s) of Licensee or Licensee’s
-Affiliates acting within the scope of their employment or Licensee's
-Contractors acting within the scope of their services for Licensee and on
-behalf of Licensee. Designated Users shall be named in the License Certificate.
-
-“Development License” shall mean the license needed by the Licensee for each
-Designated User to use the Licensed Software under the license grant described
-in Section 3.1 of this Agreement.
-
-“Development Platforms” shall mean those operating systems specified in the
-License Certificate, in which the Licensed Software can be used under the
-Development License, but not distributed in any form or used for any other
-purpose.
-
-“Devices” shall mean hardware devices or products that 1) are manufactured
-and/or distributed by the Licensee or its Affiliates or Contractors, and
-(2)(i) incorporate or integrate the Redistributables or parts thereof; or (ii)
-do not incorporate or integrate the Redistributables at the time of
-distribution, but where, when used by a Customer, the main user interface or
-substantial functionality of such device is provided by Application(s) or
-otherwise depends on the Licensed Software.
-
-“Distribution License(s)” shall mean the license required for distribution of
-Redistributables in connection with Devices pursuant to license grant described
-in Section 3.3 of this Agreement.
-
-“Distribution License Packs” shall mean set of prepaid Distribution Licenses
-for distribution of Redistributables, as defined in The Qt Company’s standard
-price list, quote, Purchase Order confirmation or in an appendix hereto,
-as the case may be.
-
-“Intellectual Property Rights” shall mean patents (including utility models),
-design patents, and designs (whether or not capable of registration), chip
-topography rights and other like protection, copyrights, trademarks, service
-marks, trade names, logos or other words or symbols and any other form of
-statutory protection of any kind and applications for any of the foregoing as
-well as any trade secrets.
-
-“License Certificate” shall mean a certificate generated by The Qt Company for
-each Designated User respectively upon them downloading the licensed Software.
-License Certificate will be available under respective Designated User’s Qt
-Account at account.qt.io and it will specify the Designated User, the
-Development Platforms, Deployment Platforms and the License Term. The terms of
-the License Certificate are considered part of this Agreement and shall be
-updated from time to time to reflect any agreed changes to the foregoing terms
-relating to Designated User’s rights to the Licensed Software.
-
-“License Fee” shall mean the fee charged to the Licensee for rights granted
-under the terms of this Agreement.
-
-“License Term” shall mean the agreed validity period of the Development
-License of the respective Designated User, during which time the
-Designated User is entitled to use the Licensed Software, as set forth in the
-respective License Certificate.
-
-“Licensed Software” shall mean all versions of the
-
-(i) Qt Toolkit (including Qt Essentials, Qt Add-Ons and Value-Add modules) as
-described in http://doc.qt.io/qt-5/qtmodules.html,
-
-(ii). Qt Creator (including Creator IDE tool) as described in
-http://doc.qt.io/qtcreator/index.html,
-
-(iii). Qt 3D Studio as described in http://doc.qt.io/qt3dstudio/index.html, and
-
-as well as corresponding online or electronic documentation, associated media
-and printed materials, including the source code, example programs and the
-documentation, licensed to the Licensee under this Agreement. Licensed Software
-does not include Third Party Software (as defined in Section 4), Open Source
-Qt, or other software products of The Qt Company (for example Qt Safe Renderer
-and Qt for Automation), unless such other software products of The Qt Company
-are separately agreed in writing to be included in scope of the Licensed
-Software.
-
-“Licensee” shall mean the individual or legal entity that is party to this
-Agreement, as identified on the signature page hereof.
-
-“Licensee’s Records” shall mean books and records that are likely to contain
-information bearing on Licensee’s compliance with this Agreement or the
-payments due to The Qt Company under this Agreement, including, but not limited
-to: assembly logs, sales records and distribution records.
-
-“Modified Software” shall have the meaning as set forth in Section 2.3.
-
-“Online Services” shall mean any services or access to systems made available
-by The Qt Company to the Licensee over the Internet relating to the Licensed
-Software or for the purpose of use by the Licensee of the Licensed Software or
-Support. Use of any such Online Services is discretionary for the Licensee and
-some of them may be subject to additional fees.
-
-“Open Source Qt” shall mean the non-commercial Qt computer software products,
-licensed under the terms of the GNU Lesser General Public License, version
-2.1 or later (“LGPL”) or the GNU General Public License, version 2.0 or later
-(“GPL”). For clarity, Open Source Qt shall not be provided nor governed under
-this Agreement.
-
-”Party” or “Parties” shall mean Licensee and/or The Qt Company.
-
-"Redistributables" shall mean the portions of the Licensed Software set forth
-in Appendix 1, Section 1 that may be distributed pursuant to the terms of this
-Agreement in object code form only, including any relevant documentation.
-Where relevant, any reference to Licensed Software in this Agreement shall
-include and refer also to Redistributables.
-
-“Renewal Term” shall mean an extension of previous License Term as agreed
-between the Parties.
-
-“Submitted Modified Software” shall have the meaning as set forth in
-Section 2.3.
-
-“Support” shall mean standard developer support that is provided by The Qt
-Company to assist Designated Users in using the Licensed Software in
-accordance with The Qt Company’s standard support terms and as further
-defined in Section 8 hereunder.
-
-“Taxes” shall have the meaning set forth in Section 10.5.
-
-“Term” shall have the meaning set forth in Section 12.
-
- “The Qt Company” shall mean:
-
-(i) in the event Licensee is an individual residing in the United States or a
-legal entity incorporated in the United States or having its headquarters in
-the United States, The Qt Company Inc., a Delaware corporation with its office
-at 2350 Mission College Blvd., Suite 1020, Santa Clara, CA 95054, USA.; or
-
-(ii) in the event the Licensee is an individual residing outside of the United
-States or a legal entity incorporated outside of the United States or having
-its registered office outside of the United States, The Qt Company Ltd., a
-Finnish company with its registered office at Bertel Jungin aukio D3A, 02600
-Espoo, Finland.
-
-"Third Party Software " shall have the meaning set forth in Section 4.
-
-“Updates” shall mean a release or version of the Licensed Software containing
-bug fixes, error corrections and other changes that are generally made
-available to users of the Licensed Software that have contracted for Support.
-Updates are generally depicted as a change to the digits following the decimal
-in the Licensed Software version number. The Qt Company shall make Updates
-available to the Licensee under the Support. Updates shall be considered as
-part of the Licensed Software hereunder.
-
-“Upgrades” shall mean a release or version of the Licensed Software containing
-enhancements and new features and are generally depicted as a change to the
-first digit of the Licensed Software version number. In the event Upgrades are
-provided to the Licensee under this Agreement, they shall be considered as
-part of the Licensed Software hereunder.
-
-2. OWNERSHIP
-
-2.1 Ownership of The Qt Company
-
-The Licensed Software is protected by copyright laws and international
-copyright treaties, as well as other intellectual property laws and treaties.
-The Licensed Software is licensed, not sold.
-
-All The Qt Company's Intellectual Property Rights are and shall remain the
-exclusive property of The Qt Company or its licensors respectively.
-
-2.2 Ownership of Licensee
-
-All the Licensee's Intellectual Property Rights are and shall remain the
-exclusive property of the Licensee or its licensors respectively.
-
-All Intellectual Property Rights to the Modified Software, Applications and
-Devices shall remain with the Licensee and no rights thereto shall be granted
-by the Licensee to The Qt Company under this Agreement (except as set forth in
-Section 2.3 below).
-
-2.3 Modified Software
-
-Licensee may create bug-fixes, error corrections, patches or modifications to
-the Licensed Software (“Modified Software”). Such Modified Software may break
-the source or binary compatibility with the Licensed Software (including
-without limitation through changing the application programming interfaces
-("API") or by adding, changing or deleting any variable, method, or class
-signature in the Licensed Software and/or any inter-process protocols, services
-or standards in the Licensed Software libraries). To the extent that Licensee’s
-Modified Software so breaks source or binary compatibility with the Licensed
-Software, Licensee acknowledges that The Qt Company's ability to provide
-Support may be prevented or limited and Licensee's ability to make use of
-Updates may be restricted.
-
-Licensee may, at its sole and absolute discretion, choose to submit Modified
-Software to The Qt Company (“Submitted Modified Software”) in connection with
-Licensee’s Support request, service request or otherwise. In the event Licensee
-does so, then, Licensee hereby grants The Qt Company a sublicensable,
-assignable, irrevocable, perpetual, worldwide, non-exclusive, royalty-free and
-fully paid-up license, under all of Licensee’s Intellectual Property Rights, to
-reproduce, adapt, translate, modify, and prepare derivative works of, publicly
-display, publicly perform, sublicense, make available and distribute such
-Submitted Modified Software as The Qt Company sees fit at its free and absolute
-discretion.
-
-3. LICENSES GRANTED
-
-3.1 Development with Licensed Software
-
-Subject to the terms of this Agreement, The Qt Company grants to Licensee a
-personal, worldwide, non-exclusive, non-transferable license, valid for the
-License Term, to use, modify and copy the Licensed Software by Designated Users
-on the Development Platforms for the sole purposes of designing, developing,
-demonstrating and testing Application(s) and/or Devices, and to provide thereto
-related support and other related services to end-user Customers.
-
-Licensee may install copies of the Licensed Software on an unlimited number of
-computers provided that (i) only the Designated Users may use the Licensed
-Software, and (ii) all Designated Users must have a valid Development License
-to use Licensed Software.
-
-Licensee may at any time designate another Designated User to replace a then-
-current Designated User by notifying The Qt Company in writing, provided that
-any Designated User may be replaced only once during any six-month period.
-
-Upon expiry of the initially agreed License Term, the respective License Terms
-shall be automatically extended to one or more Renewal Term(s), unless and
-until either Party notifies the other Party in writing that it does not wish to
-continue the License Term, such notification to be provided to the other Party
-no less than ninety (90) days before expiry of the respective License Term.
-Unless otherwise agreed between the Parties, Renewal Term shall be of equal
-length with the initial Term.
-
-Any such Renewal Term shall be subject to License Fees agreed between the
-Parties or, if no advance agreement exists, subject to The Qt Company’s
-standard pricing applicable at the commencement date of any such Renewal Term.
-
-3.2 Distribution of Applications
-
-Subject to the terms of this Agreement, The Qt Company grants to Licensee a
-personal, worldwide, non-exclusive, non-transferable, revocable (for cause
-pursuant to this Agreement) right and license, valid for the Term, to
-
-(i) distribute, by itself or through its Contractors, Redistributables as
-installed, incorporated or integrated into Applications for execution on the
-Deployment Platforms, and
-
-(ii) grant sublicenses to Redistributables, as distributed hereunder, for
-Customers solely for Customer’s internal use and to the extent necessary in
-order for the Customers to use the Applications for their respective intended
-purposes.
-
-Right to distribute the Redistributables as part of an Application as provided
-herein is not royalty-bearing but is conditional upon the Licensee having paid
-the agreed Development Licenses from The Qt Company before distributing any
-Redistributables to Customers.
-
-3.3 Distribution of Devices
-
-Subject to the terms of this Agreement, The Qt Company grants to Licensee a
-personal, worldwide, non-exclusive, non-transferable, revocable (for cause
-pursuant to this Agreement) right and license, valid for the Term, to
-
-(i) distribute, by itself or through one or more tiers of Contractors,
-Redistributables as installed, incorporated or integrated, or intended to be
-installed, incorporated or integrated into Devices for execution on the
-Deployment Platforms, and
-
-(ii) grant sublicenses to Redistributables, as distributed hereunder, for
-Customers solely for Customer’s internal use and to the extent necessary in
-order for the Customers to use the Devices for their respective intended
-purposes.
-
-Right to distribute the Redistributables with Devices as provided herein is
-conditional upon the Licensee having purchased and paid the appropriate amount
-of Development and Distribution Licenses from The Qt Company before
-distributing any Redistributables to Customers.
-
-3.4 Further Requirements
-
-The licenses granted above in this Section 3 by The Qt Company to Licensee are
-conditional and subject to Licensee's compliance with the following terms:
-
-(i) Licensee shall not remove or alter any copyright, trademark or other
-proprietary rights notice contained in any portion of the Licensed Software;
-
-(ii) Applications must add primary and substantial functionality to the
-Licensed Software;
-
-(iii) Applications may not pass on functionality which in any way makes it
-possible for others to create software with the Licensed Software; provided
-however that Licensee may use the Licensed Software's scripting and QML ("Qt
-Quick") functionality solely in order to enable scripting, themes and styles
-that augment the functionality and appearance of the Application(s) without
-adding primary and substantial functionality to the Application(s);
-
-(iv) Applications must not compete with the Licensed Software;
-
-(v) Licensee shall not use The Qt Company's or any of its suppliers' names,
-logos, or trademarks to market Applications, except that Licensee may use
-“Built with Qt” logo to indicate that Application(s) was developed using the
-Licensed Software;
-
-(vi) Licensee shall not distribute, sublicense or disclose source code of
-Licensed Software to any third party (provided however that Licensee may
-appoint employee(s) of Contractors as Designated Users to use Licensed
-Software pursuant to this Agreement). Such right may be available for the
-Licensee subject to a separate software development kit (“SDK”) license
-agreement to be concluded with The Qt Company;
-
-(vii) Licensee shall not grant the Customers a right to (i) make copies of the
-Redistributables except when and to the extent required to use the Applications
-and/or Devices for their intended purpose, (ii) modify the Redistributables or
-create derivative works thereof, (iii) decompile, disassemble or otherwise
-reverse engineer Redistributables, or (iv) redistribute any copy or portion of
-the Redistributables to any third party, except as part of the onward sale of
-the Device on which the Redistributables are installed;
-
-(viii) Licensee shall not and shall cause that its Affiliates or Contractors
-shall not a) in any way combine, incorporate or integrate Licensed Software
-with, or use Licensed Software for creation of, any software created with or
-incorporating Open Source Qt, or b) incorporate or integrate Applications
-into a hardware device or product other than a Device, unless Licensee has
-received an advance written permission from The Qt Company to do so. Absent
-such written permission, any and all distribution by the Licensee during the
-Term of a hardware device or product a) which incorporate or integrate any
-part of Licensed Software or Open Source Qt; or b) where the main user
-interface or substantial functionality is provided by software build with
-Licensed Software or Open Source Qt or otherwise depends on the Licensed
-Software or Open Source Qt, shall be considered as a Device distribution under
-this Agreement and dependent on compliance thereof (including but not limited
-to obligation to pay applicable License Fees for such distribution);
-
-(ix) Licensee shall cause all of its Affiliates and Contractors entitled to
-make use of the licenses granted under this Agreement, to be contractually
-bound to comply with the relevant terms of this Agreement and not to use the
-Licensed Software beyond the terms hereof and for any purposes other than
-operating within the scope of their services for Licensee. Licensee shall be
-responsible for any and all actions and omissions of its Affiliates and
-Contractors relating to the Licensed Software and use thereof (including but
-not limited to payment of all applicable License Fees);
-
-(x) Except when and to the extent explicitly provided in this Section 3,
-Licensee shall not transfer, publish, disclose, display or otherwise make
-available the Licensed Software;
-
-; and
-
-(xi) Licensee shall not attempt or enlist a third party to conduct or attempt
-to conduct any of the above.
-
-Above terms shall not be applicable if and to the extent they conflict with any
-mandatory provisions of any applicable laws.
-
-Any use of Licensed Software beyond the provisions of this Agreement is
-strictly prohibited and requires an additional license from The Qt Company.
-
-4. THIRD PARTY SOFTWARE
-
-The Licensed Software may provide links to third party libraries or code
-(collectively "Third Party Software") to implement various functions. Third
-Party Software does not comprise part of the Licensed Software. In some cases,
-access to Third Party Software may be included in the Licensed Software. Such
-Third Party Software will be listed in the ".../src/3rdparty" source tree
-delivered with the Licensed Software or documented in the Licensed Software, as
-such may be amended from time to time. Licensee acknowledges that use or
-distribution of Third Party Software is in all respects subject to applicable
-license terms of applicable third party right holders.
-
- 5. PRE-RELEASE CODE
-
-The Licensed Software may contain pre-release code and functionality marked or
-otherwise stated as “Technology Preview”, “Alpha”, “Beta” or similar
-designation. Such pre-release code may be present in order to provide
-experimental support for new platforms or preliminary versions of one or more
-new functionalities. The pre-release code may not be at the level of
-performance and compatibility of a final, generally available, product
-offering of the Licensed Software. The pre-release parts of the Licensed
-Software may not operate correctly, may contain errors and may be substantially
-modified by The Qt Company prior to the first commercial product release, if
-any. The Qt Company is under no obligation to make pre-release code
-commercially available, or provide any Support or Updates relating thereto. The
-Qt Company assumes no liability whatsoever regarding any pre-release code, but
-any use thereof is exclusively at Licensee’s own risk and expense.
-
-6. LIMITED WARRANTY AND WARRANTY DISCLAIMER
-
-The Qt Company hereby represents and warrants that it has the power and
-authority to grant the rights and licenses granted to Licensee under this
-Agreement.
-
-Except as set forth above, the Licensed Software is licensed to Licensee
-"as is" and Licensee’s exclusive remedy and The Qt Company’s entire liability
-for errors in the Licensed Software shall be limited, at The Qt Company’s
-option, to correction of the error, replacement of the Licensed Software or
-return of the applicable fees paid for the defective Licensed Software for the
-time period during which the License is not able to utilize the Licensed
-Software under the terms of this Agreement.
-
-TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE QT COMPANY ON BEHALF OF
-ITSELF AND ITS LICENSORS, SUPPLIERS AND AFFILIATES, DISCLAIMS ALL OTHER
-WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, ANY IMPLIED
-WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-
-INFRINGEMENT WITH REGARD TO THE LICENSED SOFTWARE. THE QT COMPANY DOES NOT
-WARRANT THAT THE LICENSED SOFTWARE WILL SATISFY LICENSEE’S REQUIREMENTS OR THAT
-IT WILL OPERATE WITHOUT DEFECT OR ERROR OR THAT THE OPERATION THEREOF WILL BE
-UNINTERRUPTED. ALL USE OF AND RELIANCE ON THE LICENSED SOFTWARE IS AT THE SOLE
-RISK OF AND RESPONSIBILITY OF LICENSEE.
-
-7. INDEMNIFICATION AND LIMITATION OF LIABILITY
-
-7.1 Limitation of Liability
-
-EXCEPT FOR (I) CASES OF GROSS NEGLIGENCE OR INTENTIONAL MISCONDUCT, AND (II)
-BREACH OF CONFIDENTIALITY, AND TO THE EXTENT PERMITTED BY APPLICABLE LAW, IN NO
-EVENT SHALL EITHER PARTY BE LIABLE TO THE OTHER PARTY FOR ANY LOSS OF PROFIT,
-LOSS OF DATA, LOSS OF BUSINESS OR GOODWILL OR ANY OTHER INDIRECT, SPECIAL,
-CONSEQUENTIAL, INCIDENTAL OR PUNITIVE COST, DAMAGES OR EXPENSE OF ANY KIND,
-HOWSOEVER ARISING UNDER OR IN CONNECTION WITH THIS AGREEMENT. PARTIES
-SPECIFICALLY AGREE THAT LICENSEE’S OBLIGATION TO PAY LICENSE AND OTHER FEES
-CORRESPONDING TO ACTUAL USAGE OF LICENSED SOFTWARE HEREUNDER SHALL BE
-CONSIDERED AS A DIRECT DAMAGE.
-
-EXCEPT FOR (I) CASES OF GROSS NEGLIGENCE OR INTENTIONAL MISCONDUCT, AND (II)
-BREACH OF CONFIDENTIALITY, AND TO THE EXTENT PERMITTED BY APPLICABLE LAW, IN
-NO EVENT SHALL EITHER PARTY’S TOTAL AGGREGATE LIABILITY UNDER THIS AGREEMENT
-EXCEED THE AGGREGATE LICENSE FEES PAID OR PAYABLE TO THE QT COMPANY FROM
-LICENSEE DURING THE PERIOD OF TWELVE (12) MONTHS IMMEDIATELY PRECEDING THE
-EVENT RESULTING IN SUCH LIABILITY.
-
-THE PROVISIONS OF THIS SECTION 7 ALLOCATE THE RISKS UNDER THIS AGREEMENT
-BETWEEN THE QT COMPANY AND LICENSEE AND THE PARTIES HAVE RELIED UPON THE
-LIMITATIONS SET FORTH HEREIN IN DETERMINING WHETHER TO ENTER INTO THIS AGREEMENT.
-
-7.2 Licensee´s Indemnification
-
-Licensee shall indemnify and hold harmless The Qt Company from and against any
-claim, injury, judgment, settlement, loss or expense, including attorneys' fees
-related to: (a) Licensee’s misrepresentation in connection with The Qt Company
-or the Licensed Software or breach of this Agreement, (b) the Application or
-Device (except where such cause of liability is solely attributable to the
-Licensed Software).
-
-8. SUPPORT, UPDATES AND ONLINE SERVICES
-
-Upon due payment of the agreed License Fees the Licensee will be eligible to
-receive Support and Updates and to use the Online Services during the License
-Term, provided, however, that in the event the License Term is longer than 36
-months, Support is provided only for the first 12 months, unless the Parties
-specifically otherwise agree.
-
-Unless otherwise decided by The Company at its free and absolute discretion,
-Upgrades will not be included in the Support but may be available subject to
-additional fees.
-
-From time to time The Qt Company may change the Support terms, provided that
-during the respective ongoing License Term the level of Support provided by The
-Qt Company may not be reduced without the consent of the Licensee.
-
-Unless otherwise agreed, The Qt Company shall not be responsible for providing
-any service or support to Customers.
-
-9. CONFIDENTIALITY
-
-Each Party acknowledges that during the Term of this Agreement each Party may
-receive information about the other Party's business, business methods,
-business plans, customers, business relations, technology, and other
-information, including the terms of this Agreement, that is confidential and
-of great value to the other Party, and the value of which would be
-significantly reduced if disclosed to third parties (“Confidential
-Information”). Accordingly, when a Party (the “Receiving Party”) receives
-Confidential Information from the other Party (the “Disclosing Party”), the
-Receiving Party shall only disclose such information to employees and
-Contractors on a need to know basis, and shall cause its employees and
-employees of its Affiliates to: (i) maintain any and all Confidential
-Information in confidence; (ii) not disclose the Confidential Information to a
-third party without the Disclosing Party's prior written approval; and (iii)
-not, directly or indirectly, use the Confidential Information for any purpose
-other than for exercising its rights and fulfilling its responsibilities
-pursuant to this Agreement. Each Party shall take reasonable measures to
-protect the Confidential Information of the other Party, which measures shall
-not be less than the measures taken by such Party to protect its own
-confidential and proprietary information.
-
-Obligation of confidentiality shall not apply to information that (i) is or
-becomes generally known to the public through no act or omission of the
-Receiving Party; (ii) was in the Receiving Party's lawful possession prior to
-the disclosure hereunder and was not subject to limitations on disclosure or
-use; (iii) is developed independently by employees or Contractors of the
-Receiving Party or other persons working for the Receiving Party who have not
-had access to the Confidential Information of the Disclosing Party, as proven
-by the written records of the Receiving Party; (iv) is lawfully disclosed to
-the Receiving Party without restrictions, by a third party not under an
-obligation of confidentiality; or (v) the Receiving Party is legally compelled
-to disclose, in which case the Receiving Party shall notify the Disclosing
-Party of such compelled disclosure and assert the privileged and confidential
-nature of the information and cooperate fully with the Disclosing Party to
-limit the scope of disclosure and the dissemination of disclosed Confidential
-Information to the minimum extent necessary.
-
-The obligations under this Section 9 shall continue to remain in force for a
-period of five (5) years after the last disclosure, and, with respect to trade
-secrets, for so long as such trade secrets are protected under applicable trade
-secret laws.
-
-10. FEES, DELIVERY AND PAYMENT
-
-10.1 License Fees
-
-License Fees are described in The Qt Company’s standard price list, quote or
-Purchase Order confirmation or in an appendix hereto, as the case may be.
-
-The License Fees shall not be refunded or claimed as a credit in any event or
-for any reason whatsoever.
-
-10.2 Ordering Licenses
-
-Licensee may purchase Development Licenses and Distribution Licenses pursuant
-to agreed pricing terms or, if no specific pricing terms have been agreed upon,
-at The Qt Company's standard pricing terms applicable at the time of purchase.
-
-Licensee shall submit all purchase orders for Development Licenses and
-Distribution Licenses to The Qt Company by email or any other method acceptable
-to The Qt Company (each such order is referred to herein as a “Purchase Order”)
-for confirmation, whereupon the Purchase Order shall become binding between the
-Parties.
-
-10.3 Distribution License Packs
-
-Unless otherwise agreed, Distribution Licenses shall be purchased by way of
-Distribution License Packs.
-
-Upon due payment of the ordered Distribution License Pack(s), the Licensee will
-have an account of Distribution Licenses available for installing, bundling or
-integrating (all jointly “installing”) the Redistributables with the Devices or
-for otherwise distributing the Redistributables in accordance with this
-Agreement.
-
-Each time Licensee “installs” or distributes a copy of Redistributables, then
-one Distribution License is used, and Licensee’s account of available
-Distribution Licenses is decreased accordingly.
-
-Licensee may “install” copies of the Redistributables so long as Licensee has
-Distribution Licenses remaining on its account.
-
-Redistributables will be deemed to have been “installed” into a Device when one
-of the following circumstances shall have occurred: a) the Redistributables
-have been loaded onto the Device and used outside of the Licensee’s premises or
-b) the Device has been fully tested and placed into Licensee's inventory
-(or sold) for the first time (i.e., Licensee will not be required to use
-(or pay for) more than one Distribution License for each individual Device,
-e.g. in a situation where a Device is returned to Licensee's inventory after
-delivery to a distributor or sale to a Customer). In addition, if Licensee
-includes a back-up copy of the Redistributables on a CD-ROM or other storage
-medium along with the product, that backup copy of the Redistributables will
-not be deemed to have been “installed” and will not require an additional
-Distribution License.
-
-10.4 Payment Terms
-
-License Fees and any other charges under this Agreement shall be paid by
-Licensee no later than thirty (30) days from the date of the applicable invoice
-from The Qt Company.
-
-The Qt Company will submit an invoice to Licensee after the date of this
-Agreement and/or after The Qt Company receives a Purchase Order from
-Licensee.
-
-A late payment charge of the lower of (a) one percent per month; or (b) the
-interest rate stipulated by applicable law, shall be charged on any unpaid
-balances that remain past due.
-
-The Qt Company shall have the right to suspend, terminate or withhold grants
-of all rights to the Licensed Software hereunder, including but not limited to
-the Developer License, Distribution License, and Support, should Licensee fail
-to make payment in timely fashion.
-
-10.5 Taxes
-
-All License Fees and other charges payable hereunder are gross amounts but
-exclusive of any value added tax, use tax, sales tax and other taxes, duties or
-tariffs (“Taxes”). Such applicable Taxes shall be paid by Licensee, or, where
-applicable, in lieu of payment of such Taxes, Licensee shall provide an
-exemption certificate to The Qt Company and any applicable authority.
-
-11 RECORD-KEEPING AND REPORTING OBLIGATIONS; AUDIT RIGHTS
-
-11.1 Licensee’s Record-keeping
-
-Licensee shall at all times maintain accurate and up-to-date written records of
-Licensee’s activities related to the use of Licensed Software and distribution
-of Redistributables. The records shall be adequate to determine Licensee’s
-compliance with the provisions of this Agreement and to demonstrate the number
-of Designated Users and Redistributables distributed by Licensee. The records
-shall conform to good accounting practices reasonably acceptable to The Qt
-Company.
-
-Licensee shall, within thirty (30) days from receiving The Qt Company’s request
-to that effect, deliver to The Qt Company a report on Licensee’s usage of
-Licensed Software, such report to copies of Redistributables distributed by
-Licensee during that calendar quarter, and also detailing the number of
-undistributed copies of Redistributables made by Licensee and remaining in its
-account contain information, in sufficient detail, on (i) amount of users
-working with Licensed Software, (ii) copies of Redistributables distributed by
-Licensee during that calendar quarter, (iii) number of undistributed copies of
-Redistributables and corresponding number of unused Distribution Licenses
-remaining on Licensee’s account, and (iv) any other information as The Qt
-Company may reasonably require from time to time.
-
-11.2. The Qt Company’s Audit Rights
-
-The Qt Company or an independent auditor acting on behalf of The Qt Company’s,
-may, upon at least five (5) business days’ prior written notice and at its
-expense, audit Licensee with respect to the use of the Redistributables, but
-not more frequently than once during each 6-month period. Such audit may be
-conducted by mail, electronic means or through an in-person visit to Licensee’s
-place of business. Any such in-person audit shall be conducted during regular
-business hours at Licensee's facilities and shall not unreasonably interfere
-with Licensee's business activities. The Qt Company or the independent auditor
-acting on behalf of The Qt Company shall be entitled to inspect Licensee’s
-Records. All such Licensee’s Records and use thereof shall be subject to an
-obligation of confidentiality under this Agreement.
-
-If an audit reveals that Licensee is using the Licensed Software beyond scope
-of the licenses Licensee has paid for, Licensee agrees to immediately pay The
-Qt Company any amounts owed for such unauthorized use.
-
-In addition, in the event the audit reveals a material violation of the terms
-of this Agreement (underpayment of more than 5% of License Fees shall always be
-deemed a material violation for purposes of this section), then the Licensee
-shall pay The Qt Company's reasonable cost of conducting such audit.
-
-12 TERM AND TERMINATION
-
-12.1 Term
-
-This Agreement shall enter into force upon due acceptance by both Parties and
-remain in force for as long as there is any Development License(s) in force
-(“Term”), unless and until terminated pursuant to the terms of this Section 12.
-
-12.2 Termination by The Qt Company
-
-The Qt Company shall have the right to terminate this Agreement upon thirty
-(30) days prior written notice if the Licensee is in material breach of any
-obligation of this Agreement and fails to remedy such breach within such notice
-period.
-
-12.3 Mutual Right to Terminate
-
-Either Party shall have the right to terminate this Agreement immediately upon
-written notice in the event that the other Party becomes insolvent, files for
-any form of bankruptcy, makes any assignment for the benefit of creditors, has
-a receiver, administrative receiver or officer appointed over the whole or a
-substantial part of its assets, ceases to conduct business, or an act
-equivalent to any of the above occurs under the laws of the jurisdiction of the
-other Party.
-
-12.4 Parties´ Rights and Duties upon Termination
-
-Upon expiry or termination of the Agreement Licensee shall cease and shall
-cause all Designated Users (including those of its Affiliates’ and
-Contractors’) to cease using the Licensed Software and distribution of the
-Redistributables under this Agreement.
-
-Notwithstanding the above, in the event the Agreement expires or is terminated:
-
-(i) as a result of The Qt Company choosing not to renew the Development
-License(s) as set forth in Section 3.1, then all valid licenses possessed by
-the Licensee at such date shall be extended to be valid in perpetuity under the
-terms of this Agreement and Licensee is entitled to purchase additional
-licenses as set forth in Section 10.2; or
-
-(ii) for reason other than by The Qt Company pursuant to item (i) above or
-pursuant to Section 12.2, then the Licensee is entitled, for a period of six
-(6) months after the effective date of termination, to continue distribution of
-Devices under the Distribution Licenses paid but unused at such effective date
-of termination.
-
-Upon any such termination the Licensee shall destroy or return to The Qt
-Company all copies of the Licensed Software and all related materials and will
-certify the same to The Qt Company upon its request, provided however that
-Licensee may retain and exploit such copies of the Licensed Software as it may
-reasonably require in providing continued support to Customers.
-
-Expiry or termination of this Agreement for any reason whatsoever shall not
-relieve Licensee of its obligation to pay any License Fees accrued or payable
-to The Qt Company prior to the effective date of termination, and Licensee
-shall immediately pay to The Qt Company all such fees upon the effective date
-of termination. Termination of this Agreement shall not affect any rights of
-Customers to continue use of Applications and Devices (and therein incorporated
-Redistributables).
-
-12.5 Extension in case of bankruptcy
-
-In the event The Qt Company is declared bankrupt under a final, non-cancellable
-decision by relevant court of law, and this Agreement is not, at the date of
-expiry of the Development License(s) pursuant to Section 3.1, assigned to
-party, who has assumed The Qt Company’s position as a legitimate licensor of
-Licensed Software under this Agreement, then all valid licenses possessed by
-the Licensee at such date of expiry, and which the Licensee has not notified
-for expiry, shall be extended to be valid in perpetuity under the terms of
-this Agreement.
-
-13. GOVERNING LAW AND LEGAL VENUE
-
-In the event this Agreement is in the name of The Qt Company Inc., a Delaware
-Corporation, then:
-
-(i) this Agreement shall be construed and interpreted in accordance with the
-laws of the State of California, USA, excluding its choice of law provisions;
-
-(ii) the United Nations Convention on Contracts for the International Sale of
-Goods will not apply to this Agreement; and
-
-(iii) any dispute, claim or controversy arising out of or relating to this
-Agreement or the breach, termination, enforcement, interpretation or validity
-thereof, including the determination of the scope or applicability of this
-Agreement to arbitrate, shall be determined by arbitration in San Francisco,
-USA, before one arbitrator. The arbitration shall be administered by JAMS
-pursuant to JAMS' Streamlined Arbitration Rules and Procedures. Judgment on the
-Award may be entered in any court having jurisdiction. This Section shall not
-preclude parties from seeking provisional remedies in aid of arbitration from a
-court of appropriate jurisdiction.
-
-In the event this Agreement is in the name of The Qt Company Ltd., a Finnish
-Company, then:
-
-(i) this Agreement shall be construed and interpreted in accordance with the
-laws of Finland, excluding its choice of law provisions;
-
-(ii) the United Nations Convention on Contracts for the International Sale of
-Goods will not apply to this Agreement; and
-
-(iii) any disputes, controversy or claim arising out of or relating to this
-Agreement, or the breach, termination or validity thereof shall be shall be
-finally settled by arbitration in accordance with the Arbitration Rules of
-Finland Chamber of Commerce. The arbitration tribunal shall consist of one (1),
-or if either Party so requires, of three (3), arbitrators. The award shall be
-final and binding and enforceable in any court of competent jurisdiction. The
-arbitration shall be held in Helsinki, Finland and the process shall be
-conducted in the English language. This Section shall not preclude parties from
-seeking provisional remedies in aid of arbitration from a court of appropriate
-jurisdiction.
-
-14. GENERAL PROVISIONS
-
-14.1 No Assignment
-
-Except in the case of a merger or sale of substantially all of its corporate
-assets, Licensee shall not be entitled to assign or transfer all or any of its
-rights, benefits and obligations under this Agreement without the prior written
-consent of The Qt Company, which shall not be unreasonably withheld or delayed.
-The Qt Company shall be entitled to freely assign or transfer any of its
-rights, benefits or obligations under this Agreement.
-
-14.2 No Third Party Representations
-
-Licensee shall make no representations or warranties concerning the Licensed
-Software on behalf of The Qt Company. Any representation or warranty Licensee
-makes or purports to make on The Qt Company’s behalf shall be void as to The
-Qt Company.
-
-14.3 Surviving Sections
-
-Any terms and conditions that by their nature or otherwise reasonably should
-survive termination of this Agreement shall so be deemed to survive.
-
-14.4 Entire Agreement
-
-This Agreement, the exhibits hereto, the License Certificate and any applicable
-Purchase Order constitute the complete agreement between the Parties and
-supersedes all prior or contemporaneous discussions, representations, and
-proposals, written or oral, with respect to the subject matters discussed
-herein.
-
-In the event of any conflict or inconsistency between this Agreement and any
-Purchase Order, the terms of this Agreement will prevail over the terms of the
-Purchase Order with respect to such conflict or inconsistency.
-
-Parties specifically acknowledge and agree that this Agreement prevails over
-any click-to-accept or similar agreements the Designated Users may need to
-accept online upon download of the Licensed Software, as may be required by
-The Qt Company’s applicable processes relating to Licensed Software.
-
-14.5 Modifications
-
-No modification of this Agreement shall be effective unless contained in a
-writing executed by an authorized representative of each Party. No term or
-condition contained in Licensee's Purchase Order shall apply unless expressly
-accepted by The Qt Company in writing.
-
-14.6 Force Majeure
-
-Except for the payment obligations hereunder, neither Party shall be liable to
-the other for any delay or non-performance of its obligations hereunder in the
-event and to the extent that such delay or non-performance is due to an event
-of act of God, terrorist attack or other similar unforeseeable catastrophic
-event that prevents either Party for fulfilling its obligations under this
-Agreement and which such Party cannot avoid or circumvent (“Force Majeure
-Event”). If the Force Majeure Event results in a delay or non-performance of a
-Party for a period of three (3) months or longer, then either Party shall have
-the right to terminate this Agreement with immediate effect without any
-liability (except for the obligations of payment arising prior to the event of
-Force Majeure) towards the other Party.
-
-14.7 Notices
-
-Any notice given by one Party to the other shall be deemed properly given and
-deemed received if specifically acknowledged by the receiving Party in writing
-or when successfully delivered to the recipient by hand, fax, or special
-courier during normal business hours on a business day to the addresses
-specified for each Party on the signature page. Each communication and document
-made or delivered by one Party to the other Party pursuant to this Agreement
-shall be in the English language.
-
-14.8 Export Control
-
-Licensee acknowledges that the Redistributables may be subject to export
-control restrictions under the applicable laws of respective countries.
-Licensee shall fully comply with all applicable export license restrictions
-and requirements as well as with all laws and regulations relating to the
-Redistributables and exercise of licenses hereunder and shall procure all
-necessary governmental authorizations, including without limitation, all
-necessary licenses, approvals, permissions or consents, where necessary for the
-re-exportation of the Redistributables, Applications and/or Devices.
-
-14.9 No Implied License
-
-There are no implied licenses or other implied rights granted under this
-Agreement, and all rights, save for those expressly granted hereunder, shall
-remain with The Qt Company and its licensors. In addition, no licenses or
-immunities are granted to the combination of the Licensed Software with any
-other software or hardware not delivered by The Qt Company under this Agreement.
-
-14.10 Attorney Fees
-
-The prevailing Party in any action to enforce this Agreement shall be entitled
-to recover its attorney’s fees and costs in connection with such action.
-
-14.11 Severability
-
-If any provision of this Agreement shall be adjudged by any court of competent
-jurisdiction to be unenforceable or invalid, that provision shall be limited or
-eliminated to the minimum extent necessary so that this Agreement shall
-otherwise remain in full force and effect and enforceable.
-
-
-IN WITNESS WHEREOF, the Parties hereto, intending to be legally bound hereby,
-have caused this Agreement to be executed by Licensee's authorized
-representative installing the Licensed Software and accepting the terms
-hereof in connection therewith.
-
-
-Appendix 1
-
-1. Parts of the Licensed Software that are permitted for distribution in
-object code form only (“Redistributables”) under this Agreement:
-
-- The Licensed Software's Qt Essentials and Qt Add-on libraries
-- The Licensed Software's configuration tool (“qtconfig”)
-- The Licensed Software's help tool (“Qt Assistant”)
-- The Licensed Software's internationalization tools (“Qt Linguist”, “lupdate”,
-“lrelease”)
-- The Licensed Software's QML (“Qt Quick”) launcher tool (“qmlscene” or
-“qmlviewer”)
-- The Licensed Software's installer framework
-- Qt for Python (PySide6)
-
-2. Parts of the Licensed Software that are not permitted for distribution
-include, but are not limited to:
-
-- The Licensed Software's source code and header files
-- The Licensed Software's documentation
-- The Licensed Software’s documentation generation tool (“qdoc”)
-- The Licensed Software's tool for writing makefiles (“qmake”)
-- The Licensed Software's Meta Object Compiler (“moc”)
-- The Licensed Software's User Interface Compiler (“uic”)
-- The Licensed Software's Resource Compiler (“rcc”)
-- The Licensed Software's parts of the IDE tool (“Qt Creator”)
-- The Licensed Software’s parts of the Design tools (“Qt 3D Studio” or “Qt
-Quick Designer”)
-- The Licensed Software's Emulator
-
diff --git a/LICENSE.FDL b/LICENSE.FDL
deleted file mode 100644
index 938bb8da9..000000000
--- a/LICENSE.FDL
+++ /dev/null
@@ -1,450 +0,0 @@
- GNU Free Documentation License
- Version 1.3, 3 November 2008
-
-
- Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
- <http://fsf.org/>
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-0. PREAMBLE
-
-The purpose of this License is to make a manual, textbook, or other
-functional and useful document "free" in the sense of freedom: to
-assure everyone the effective freedom to copy and redistribute it,
-with or without modifying it, either commercially or noncommercially.
-Secondarily, this License preserves for the author and publisher a way
-to get credit for their work, while not being considered responsible
-for modifications made by others.
-
-This License is a kind of "copyleft", which means that derivative
-works of the document must themselves be free in the same sense. It
-complements the GNU General Public License, which is a copyleft
-license designed for free software.
-
-We have designed this License in order to use it for manuals for free
-software, because free software needs free documentation: a free
-program should come with manuals providing the same freedoms that the
-software does. But this License is not limited to software manuals;
-it can be used for any textual work, regardless of subject matter or
-whether it is published as a printed book. We recommend this License
-principally for works whose purpose is instruction or reference.
-
-
-1. APPLICABILITY AND DEFINITIONS
-
-This License applies to any manual or other work, in any medium, that
-contains a notice placed by the copyright holder saying it can be
-distributed under the terms of this License. Such a notice grants a
-world-wide, royalty-free license, unlimited in duration, to use that
-work under the conditions stated herein. The "Document", below,
-refers to any such manual or work. Any member of the public is a
-licensee, and is addressed as "you". You accept the license if you
-copy, modify or distribute the work in a way requiring permission
-under copyright law.
-
-A "Modified Version" of the Document means any work containing the
-Document or a portion of it, either copied verbatim, or with
-modifications and/or translated into another language.
-
-A "Secondary Section" is a named appendix or a front-matter section of
-the Document that deals exclusively with the relationship of the
-publishers or authors of the Document to the Document's overall
-subject (or to related matters) and contains nothing that could fall
-directly within that overall subject. (Thus, if the Document is in
-part a textbook of mathematics, a Secondary Section may not explain
-any mathematics.) The relationship could be a matter of historical
-connection with the subject or with related matters, or of legal,
-commercial, philosophical, ethical or political position regarding
-them.
-
-The "Invariant Sections" are certain Secondary Sections whose titles
-are designated, as being those of Invariant Sections, in the notice
-that says that the Document is released under this License. If a
-section does not fit the above definition of Secondary then it is not
-allowed to be designated as Invariant. The Document may contain zero
-Invariant Sections. If the Document does not identify any Invariant
-Sections then there are none.
-
-The "Cover Texts" are certain short passages of text that are listed,
-as Front-Cover Texts or Back-Cover Texts, in the notice that says that
-the Document is released under this License. A Front-Cover Text may
-be at most 5 words, and a Back-Cover Text may be at most 25 words.
-
-A "Transparent" copy of the Document means a machine-readable copy,
-represented in a format whose specification is available to the
-general public, that is suitable for revising the document
-straightforwardly with generic text editors or (for images composed of
-pixels) generic paint programs or (for drawings) some widely available
-drawing editor, and that is suitable for input to text formatters or
-for automatic translation to a variety of formats suitable for input
-to text formatters. A copy made in an otherwise Transparent file
-format whose markup, or absence of markup, has been arranged to thwart
-or discourage subsequent modification by readers is not Transparent.
-An image format is not Transparent if used for any substantial amount
-of text. A copy that is not "Transparent" is called "Opaque".
-
-Examples of suitable formats for Transparent copies include plain
-ASCII without markup, Texinfo input format, LaTeX input format, SGML
-or XML using a publicly available DTD, and standard-conforming simple
-HTML, PostScript or PDF designed for human modification. Examples of
-transparent image formats include PNG, XCF and JPG. Opaque formats
-include proprietary formats that can be read and edited only by
-proprietary word processors, SGML or XML for which the DTD and/or
-processing tools are not generally available, and the
-machine-generated HTML, PostScript or PDF produced by some word
-processors for output purposes only.
-
-The "Title Page" means, for a printed book, the title page itself,
-plus such following pages as are needed to hold, legibly, the material
-this License requires to appear in the title page. For works in
-formats which do not have any title page as such, "Title Page" means
-the text near the most prominent appearance of the work's title,
-preceding the beginning of the body of the text.
-
-The "publisher" means any person or entity that distributes copies of
-the Document to the public.
-
-A section "Entitled XYZ" means a named subunit of the Document whose
-title either is precisely XYZ or contains XYZ in parentheses following
-text that translates XYZ in another language. (Here XYZ stands for a
-specific section name mentioned below, such as "Acknowledgements",
-"Dedications", "Endorsements", or "History".) To "Preserve the Title"
-of such a section when you modify the Document means that it remains a
-section "Entitled XYZ" according to this definition.
-
-The Document may include Warranty Disclaimers next to the notice which
-states that this License applies to the Document. These Warranty
-Disclaimers are considered to be included by reference in this
-License, but only as regards disclaiming warranties: any other
-implication that these Warranty Disclaimers may have is void and has
-no effect on the meaning of this License.
-
-2. VERBATIM COPYING
-
-You may copy and distribute the Document in any medium, either
-commercially or noncommercially, provided that this License, the
-copyright notices, and the license notice saying this License applies
-to the Document are reproduced in all copies, and that you add no
-other conditions whatsoever to those of this License. You may not use
-technical measures to obstruct or control the reading or further
-copying of the copies you make or distribute. However, you may accept
-compensation in exchange for copies. If you distribute a large enough
-number of copies you must also follow the conditions in section 3.
-
-You may also lend copies, under the same conditions stated above, and
-you may publicly display copies.
-
-
-3. COPYING IN QUANTITY
-
-If you publish printed copies (or copies in media that commonly have
-printed covers) of the Document, numbering more than 100, and the
-Document's license notice requires Cover Texts, you must enclose the
-copies in covers that carry, clearly and legibly, all these Cover
-Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
-the back cover. Both covers must also clearly and legibly identify
-you as the publisher of these copies. The front cover must present
-the full title with all words of the title equally prominent and
-visible. You may add other material on the covers in addition.
-Copying with changes limited to the covers, as long as they preserve
-the title of the Document and satisfy these conditions, can be treated
-as verbatim copying in other respects.
-
-If the required texts for either cover are too voluminous to fit
-legibly, you should put the first ones listed (as many as fit
-reasonably) on the actual cover, and continue the rest onto adjacent
-pages.
-
-If you publish or distribute Opaque copies of the Document numbering
-more than 100, you must either include a machine-readable Transparent
-copy along with each Opaque copy, or state in or with each Opaque copy
-a computer-network location from which the general network-using
-public has access to download using public-standard network protocols
-a complete Transparent copy of the Document, free of added material.
-If you use the latter option, you must take reasonably prudent steps,
-when you begin distribution of Opaque copies in quantity, to ensure
-that this Transparent copy will remain thus accessible at the stated
-location until at least one year after the last time you distribute an
-Opaque copy (directly or through your agents or retailers) of that
-edition to the public.
-
-It is requested, but not required, that you contact the authors of the
-Document well before redistributing any large number of copies, to
-give them a chance to provide you with an updated version of the
-Document.
-
-
-4. MODIFICATIONS
-
-You may copy and distribute a Modified Version of the Document under
-the conditions of sections 2 and 3 above, provided that you release
-the Modified Version under precisely this License, with the Modified
-Version filling the role of the Document, thus licensing distribution
-and modification of the Modified Version to whoever possesses a copy
-of it. In addition, you must do these things in the Modified Version:
-
-A. Use in the Title Page (and on the covers, if any) a title distinct
- from that of the Document, and from those of previous versions
- (which should, if there were any, be listed in the History section
- of the Document). You may use the same title as a previous version
- if the original publisher of that version gives permission.
-B. List on the Title Page, as authors, one or more persons or entities
- responsible for authorship of the modifications in the Modified
- Version, together with at least five of the principal authors of the
- Document (all of its principal authors, if it has fewer than five),
- unless they release you from this requirement.
-C. State on the Title page the name of the publisher of the
- Modified Version, as the publisher.
-D. Preserve all the copyright notices of the Document.
-E. Add an appropriate copyright notice for your modifications
- adjacent to the other copyright notices.
-F. Include, immediately after the copyright notices, a license notice
- giving the public permission to use the Modified Version under the
- terms of this License, in the form shown in the Addendum below.
-G. Preserve in that license notice the full lists of Invariant Sections
- and required Cover Texts given in the Document's license notice.
-H. Include an unaltered copy of this License.
-I. Preserve the section Entitled "History", Preserve its Title, and add
- to it an item stating at least the title, year, new authors, and
- publisher of the Modified Version as given on the Title Page. If
- there is no section Entitled "History" in the Document, create one
- stating the title, year, authors, and publisher of the Document as
- given on its Title Page, then add an item describing the Modified
- Version as stated in the previous sentence.
-J. Preserve the network location, if any, given in the Document for
- public access to a Transparent copy of the Document, and likewise
- the network locations given in the Document for previous versions
- it was based on. These may be placed in the "History" section.
- You may omit a network location for a work that was published at
- least four years before the Document itself, or if the original
- publisher of the version it refers to gives permission.
-K. For any section Entitled "Acknowledgements" or "Dedications",
- Preserve the Title of the section, and preserve in the section all
- the substance and tone of each of the contributor acknowledgements
- and/or dedications given therein.
-L. Preserve all the Invariant Sections of the Document,
- unaltered in their text and in their titles. Section numbers
- or the equivalent are not considered part of the section titles.
-M. Delete any section Entitled "Endorsements". Such a section
- may not be included in the Modified Version.
-N. Do not retitle any existing section to be Entitled "Endorsements"
- or to conflict in title with any Invariant Section.
-O. Preserve any Warranty Disclaimers.
-
-If the Modified Version includes new front-matter sections or
-appendices that qualify as Secondary Sections and contain no material
-copied from the Document, you may at your option designate some or all
-of these sections as invariant. To do this, add their titles to the
-list of Invariant Sections in the Modified Version's license notice.
-These titles must be distinct from any other section titles.
-
-You may add a section Entitled "Endorsements", provided it contains
-nothing but endorsements of your Modified Version by various
-parties--for example, statements of peer review or that the text has
-been approved by an organization as the authoritative definition of a
-standard.
-
-You may add a passage of up to five words as a Front-Cover Text, and a
-passage of up to 25 words as a Back-Cover Text, to the end of the list
-of Cover Texts in the Modified Version. Only one passage of
-Front-Cover Text and one of Back-Cover Text may be added by (or
-through arrangements made by) any one entity. If the Document already
-includes a cover text for the same cover, previously added by you or
-by arrangement made by the same entity you are acting on behalf of,
-you may not add another; but you may replace the old one, on explicit
-permission from the previous publisher that added the old one.
-
-The author(s) and publisher(s) of the Document do not by this License
-give permission to use their names for publicity for or to assert or
-imply endorsement of any Modified Version.
-
-
-5. COMBINING DOCUMENTS
-
-You may combine the Document with other documents released under this
-License, under the terms defined in section 4 above for modified
-versions, provided that you include in the combination all of the
-Invariant Sections of all of the original documents, unmodified, and
-list them all as Invariant Sections of your combined work in its
-license notice, and that you preserve all their Warranty Disclaimers.
-
-The combined work need only contain one copy of this License, and
-multiple identical Invariant Sections may be replaced with a single
-copy. If there are multiple Invariant Sections with the same name but
-different contents, make the title of each such section unique by
-adding at the end of it, in parentheses, the name of the original
-author or publisher of that section if known, or else a unique number.
-Make the same adjustment to the section titles in the list of
-Invariant Sections in the license notice of the combined work.
-
-In the combination, you must combine any sections Entitled "History"
-in the various original documents, forming one section Entitled
-"History"; likewise combine any sections Entitled "Acknowledgements",
-and any sections Entitled "Dedications". You must delete all sections
-Entitled "Endorsements".
-
-
-6. COLLECTIONS OF DOCUMENTS
-
-You may make a collection consisting of the Document and other
-documents released under this License, and replace the individual
-copies of this License in the various documents with a single copy
-that is included in the collection, provided that you follow the rules
-of this License for verbatim copying of each of the documents in all
-other respects.
-
-You may extract a single document from such a collection, and
-distribute it individually under this License, provided you insert a
-copy of this License into the extracted document, and follow this
-License in all other respects regarding verbatim copying of that
-document.
-
-
-7. AGGREGATION WITH INDEPENDENT WORKS
-
-A compilation of the Document or its derivatives with other separate
-and independent documents or works, in or on a volume of a storage or
-distribution medium, is called an "aggregate" if the copyright
-resulting from the compilation is not used to limit the legal rights
-of the compilation's users beyond what the individual works permit.
-When the Document is included in an aggregate, this License does not
-apply to the other works in the aggregate which are not themselves
-derivative works of the Document.
-
-If the Cover Text requirement of section 3 is applicable to these
-copies of the Document, then if the Document is less than one half of
-the entire aggregate, the Document's Cover Texts may be placed on
-covers that bracket the Document within the aggregate, or the
-electronic equivalent of covers if the Document is in electronic form.
-Otherwise they must appear on printed covers that bracket the whole
-aggregate.
-
-
-8. TRANSLATION
-
-Translation is considered a kind of modification, so you may
-distribute translations of the Document under the terms of section 4.
-Replacing Invariant Sections with translations requires special
-permission from their copyright holders, but you may include
-translations of some or all Invariant Sections in addition to the
-original versions of these Invariant Sections. You may include a
-translation of this License, and all the license notices in the
-Document, and any Warranty Disclaimers, provided that you also include
-the original English version of this License and the original versions
-of those notices and disclaimers. In case of a disagreement between
-the translation and the original version of this License or a notice
-or disclaimer, the original version will prevail.
-
-If a section in the Document is Entitled "Acknowledgements",
-"Dedications", or "History", the requirement (section 4) to Preserve
-its Title (section 1) will typically require changing the actual
-title.
-
-
-9. TERMINATION
-
-You may not copy, modify, sublicense, or distribute the Document
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense, or distribute it is void, and
-will automatically terminate your rights under this License.
-
-However, if you cease all violation of this License, then your license
-from a particular copyright holder is reinstated (a) provisionally,
-unless and until the copyright holder explicitly and finally
-terminates your license, and (b) permanently, if the copyright holder
-fails to notify you of the violation by some reasonable means prior to
-60 days after the cessation.
-
-Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
-Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, receipt of a copy of some or all of the same material does
-not give you any rights to use it.
-
-
-10. FUTURE REVISIONS OF THIS LICENSE
-
-The Free Software Foundation may publish new, revised versions of the
-GNU Free Documentation License from time to time. Such new versions
-will be similar in spirit to the present version, but may differ in
-detail to address new problems or concerns. See
-http://www.gnu.org/copyleft/.
-
-Each version of the License is given a distinguishing version number.
-If the Document specifies that a particular numbered version of this
-License "or any later version" applies to it, you have the option of
-following the terms and conditions either of that specified version or
-of any later version that has been published (not as a draft) by the
-Free Software Foundation. If the Document does not specify a version
-number of this License, you may choose any version ever published (not
-as a draft) by the Free Software Foundation. If the Document
-specifies that a proxy can decide which future versions of this
-License can be used, that proxy's public statement of acceptance of a
-version permanently authorizes you to choose that version for the
-Document.
-
-11. RELICENSING
-
-"Massive Multiauthor Collaboration Site" (or "MMC Site") means any
-World Wide Web server that publishes copyrightable works and also
-provides prominent facilities for anybody to edit those works. A
-public wiki that anybody can edit is an example of such a server. A
-"Massive Multiauthor Collaboration" (or "MMC") contained in the site
-means any set of copyrightable works thus published on the MMC site.
-
-"CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
-license published by Creative Commons Corporation, a not-for-profit
-corporation with a principal place of business in San Francisco,
-California, as well as future copyleft versions of that license
-published by that same organization.
-
-"Incorporate" means to publish or republish a Document, in whole or in
-part, as part of another Document.
-
-An MMC is "eligible for relicensing" if it is licensed under this
-License, and if all works that were first published under this License
-somewhere other than this MMC, and subsequently incorporated in whole or
-in part into the MMC, (1) had no cover texts or invariant sections, and
-(2) were thus incorporated prior to November 1, 2008.
-
-The operator of an MMC Site may republish an MMC contained in the site
-under CC-BY-SA on the same site at any time before August 1, 2009,
-provided the MMC is eligible for relicensing.
-
-
-ADDENDUM: How to use this License for your documents
-
-To use this License in a document you have written, include a copy of
-the License in the document and put the following copyright and
-license notices just after the title page:
-
- Copyright (c) YEAR YOUR NAME.
- Permission is granted to copy, distribute and/or modify this document
- under the terms of the GNU Free Documentation License, Version 1.3
- or any later version published by the Free Software Foundation;
- with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
- A copy of the license is included in the section entitled "GNU
- Free Documentation License".
-
-If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
-replace the "with...Texts." line with this:
-
- with the Invariant Sections being LIST THEIR TITLES, with the
- Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
-
-If you have Invariant Sections without Cover Texts, or some other
-combination of the three, merge those two alternatives to suit the
-situation.
-
-If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of
-free software license, such as the GNU General Public License,
-to permit their use in free software.
diff --git a/LICENSE.GPLv3 b/LICENSE.GPLv3
deleted file mode 100644
index 71c4ad49c..000000000
--- a/LICENSE.GPLv3
+++ /dev/null
@@ -1,686 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
-
- The Qt Toolkit is Copyright (C) 2015 The Qt Company Ltd.
- Contact: http://www.qt.io/licensing/
-
- You may use, distribute and copy the Qt Toolkit under the terms of
- GNU Lesser General Public License version 3. That license references
- the General Public License version 3, that is displayed below. Other
- portions of the Qt Toolkit may be licensed directly under this license.
-
--------------------------------------------------------------------------
-
- GNU GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
- To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. You must make sure that they, too, receive
-or can get the source code. And you must show them these terms so they
-know their rights.
-
- Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
- For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
- Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
- Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Use with the GNU Affero General Public License.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-Also add information on how to contact you by electronic and paper mail.
-
- If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
- <program> Copyright (C) <year> <name of author>
- This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-<http://www.gnu.org/licenses/>.
-
- The GNU General Public License does not permit incorporating your program
-into proprietary programs. If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License. But first, please read
-<http://www.gnu.org/philosophy/why-not-lgpl.html>.
diff --git a/LICENSE.GPLv3-EXCEPT b/LICENSE.GPLv3-EXCEPT
deleted file mode 100644
index b1cb1bec7..000000000
--- a/LICENSE.GPLv3-EXCEPT
+++ /dev/null
@@ -1,704 +0,0 @@
-This is the GNU General Public License version 3, annotated with The
-Qt Company GPL Exception 1.0:
-
--------------------------------------------------------------------------
-
-The Qt Company GPL Exception 1.0
-
-Exception 1:
-
-As a special exception you may create a larger work which contains the
-output of this application and distribute that work under terms of your
-choice, so long as the work is not otherwise derived from or based on
-this application and so long as the work does not in itself generate
-output that contains the output from this application in its original
-or modified form.
-
-Exception 2:
-
-As a special exception, you have permission to combine this application
-with Plugins licensed under the terms of your choice, to produce an
-executable, and to copy and distribute the resulting executable under
-the terms of your choice. However, the executable must be accompanied
-by a prominent notice offering all users of the executable the entire
-source code to this application, excluding the source code of the
-independent modules, but including any changes you have made to this
-application, under the terms of this license.
-
-
--------------------------------------------------------------------------
-
- GNU GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
- To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. You must make sure that they, too, receive
-or can get the source code. And you must show them these terms so they
-know their rights.
-
- Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
- For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
- Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
- Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Use with the GNU Affero General Public License.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-Also add information on how to contact you by electronic and paper mail.
-
- If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
- <program> Copyright (C) <year> <name of author>
- This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-<http://www.gnu.org/licenses/>.
-
- The GNU General Public License does not permit incorporating your program
-into proprietary programs. If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License. But first, please read
-<http://www.gnu.org/philosophy/why-not-lgpl.html>.
diff --git a/LICENSE.LGPLv3 b/LICENSE.LGPLv3
deleted file mode 100644
index 1f78e0508..000000000
--- a/LICENSE.LGPLv3
+++ /dev/null
@@ -1,177 +0,0 @@
- GNU LESSER GENERAL PUBLIC LICENSE
-
- The Qt Toolkit is Copyright (C) 2015 The Qt Company Ltd.
- Contact: http://www.qt.io/licensing/
-
- You may use, distribute and copy the Qt Toolkit under the terms of
- GNU Lesser General Public License version 3, which is displayed below.
- This license makes reference to the version 3 of the GNU General
- Public License, which you can find in the LICENSE.GPLv3 file.
-
--------------------------------------------------------------------------
-
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-
- This version of the GNU Lesser General Public License incorporates
-the terms and conditions of version 3 of the GNU General Public
-License, supplemented by the additional permissions listed below.
-
- 0. Additional Definitions.
-
- As used herein, "this License" refers to version 3 of the GNU Lesser
-General Public License, and the "GNU GPL" refers to version 3 of the GNU
-General Public License.
-
- "The Library" refers to a covered work governed by this License,
-other than an Application or a Combined Work as defined below.
-
- An "Application" is any work that makes use of an interface provided
-by the Library, but which is not otherwise based on the Library.
-Defining a subclass of a class defined by the Library is deemed a mode
-of using an interface provided by the Library.
-
- A "Combined Work" is a work produced by combining or linking an
-Application with the Library. The particular version of the Library
-with which the Combined Work was made is also called the "Linked
-Version".
-
- The "Minimal Corresponding Source" for a Combined Work means the
-Corresponding Source for the Combined Work, excluding any source code
-for portions of the Combined Work that, considered in isolation, are
-based on the Application, and not on the Linked Version.
-
- The "Corresponding Application Code" for a Combined Work means the
-object code and/or source code for the Application, including any data
-and utility programs needed for reproducing the Combined Work from the
-Application, but excluding the System Libraries of the Combined Work.
-
- 1. Exception to Section 3 of the GNU GPL.
-
- You may convey a covered work under sections 3 and 4 of this License
-without being bound by section 3 of the GNU GPL.
-
- 2. Conveying Modified Versions.
-
- If you modify a copy of the Library, and, in your modifications, a
-facility refers to a function or data to be supplied by an Application
-that uses the facility (other than as an argument passed when the
-facility is invoked), then you may convey a copy of the modified
-version:
-
- a) under this License, provided that you make a good faith effort to
- ensure that, in the event an Application does not supply the
- function or data, the facility still operates, and performs
- whatever part of its purpose remains meaningful, or
-
- b) under the GNU GPL, with none of the additional permissions of
- this License applicable to that copy.
-
- 3. Object Code Incorporating Material from Library Header Files.
-
- The object code form of an Application may incorporate material from
-a header file that is part of the Library. You may convey such object
-code under terms of your choice, provided that, if the incorporated
-material is not limited to numerical parameters, data structure
-layouts and accessors, or small macros, inline functions and templates
-(ten or fewer lines in length), you do both of the following:
-
- a) Give prominent notice with each copy of the object code that the
- Library is used in it and that the Library and its use are
- covered by this License.
-
- b) Accompany the object code with a copy of the GNU GPL and this license
- document.
-
- 4. Combined Works.
-
- You may convey a Combined Work under terms of your choice that,
-taken together, effectively do not restrict modification of the
-portions of the Library contained in the Combined Work and reverse
-engineering for debugging such modifications, if you also do each of
-the following:
-
- a) Give prominent notice with each copy of the Combined Work that
- the Library is used in it and that the Library and its use are
- covered by this License.
-
- b) Accompany the Combined Work with a copy of the GNU GPL and this license
- document.
-
- c) For a Combined Work that displays copyright notices during
- execution, include the copyright notice for the Library among
- these notices, as well as a reference directing the user to the
- copies of the GNU GPL and this license document.
-
- d) Do one of the following:
-
- 0) Convey the Minimal Corresponding Source under the terms of this
- License, and the Corresponding Application Code in a form
- suitable for, and under terms that permit, the user to
- recombine or relink the Application with a modified version of
- the Linked Version to produce a modified Combined Work, in the
- manner specified by section 6 of the GNU GPL for conveying
- Corresponding Source.
-
- 1) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (a) uses at run time
- a copy of the Library already present on the user's computer
- system, and (b) will operate properly with a modified version
- of the Library that is interface-compatible with the Linked
- Version.
-
- e) Provide Installation Information, but only if you would otherwise
- be required to provide such information under section 6 of the
- GNU GPL, and only to the extent that such information is
- necessary to install and execute a modified version of the
- Combined Work produced by recombining or relinking the
- Application with a modified version of the Linked Version. (If
- you use option 4d0, the Installation Information must accompany
- the Minimal Corresponding Source and Corresponding Application
- Code. If you use option 4d1, you must provide the Installation
- Information in the manner specified by section 6 of the GNU GPL
- for conveying Corresponding Source.)
-
- 5. Combined Libraries.
-
- You may place library facilities that are a work based on the
-Library side by side in a single library together with other library
-facilities that are not Applications and are not covered by this
-License, and convey such a combined library under terms of your
-choice, if you do both of the following:
-
- a) Accompany the combined library with a copy of the same work based
- on the Library, uncombined with any other library facilities,
- conveyed under the terms of this License.
-
- b) Give prominent notice with the combined library that part of it
- is a work based on the Library, and explaining where to find the
- accompanying uncombined form of the same work.
-
- 6. Revised Versions of the GNU Lesser General Public License.
-
- The Free Software Foundation may publish revised and/or new versions
-of the GNU Lesser General Public License from time to time. Such new
-versions will be similar in spirit to the present version, but may
-differ in detail to address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Library as you received it specifies that a certain numbered version
-of the GNU Lesser General Public License "or any later version"
-applies to it, you have the option of following the terms and
-conditions either of that published version or of any later version
-published by the Free Software Foundation. If the Library as you
-received it does not specify a version number of the GNU Lesser
-General Public License, you may choose any version of the GNU Lesser
-General Public License ever published by the Free Software Foundation.
-
- If the Library as you received it specifies that a proxy can decide
-whether future versions of the GNU Lesser General Public License shall
-apply, that proxy's public statement of acceptance of any version is
-permanent authorization for you to choose that version for the
-Library.
diff --git a/LICENSES/Apache-2.0.txt b/LICENSES/Apache-2.0.txt
new file mode 100644
index 000000000..136d90045
--- /dev/null
+++ b/LICENSES/Apache-2.0.txt
@@ -0,0 +1,61 @@
+Apache License
+Version 2.0, January 2004
+http://www.apache.org/licenses/
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
+ 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
+ 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
+ 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
+ (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and
+ (b) You must cause any modified files to carry prominent notices stating that You changed the files; and
+ (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
+ (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
+ 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
+ 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
+ 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
+ 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
+ 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Apache License to your work.
+
+To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives.
+
+Copyright [yyyy] [name of copyright owner]
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
diff --git a/LICENSES/BSD-3-Clause.txt b/LICENSES/BSD-3-Clause.txt
new file mode 100644
index 000000000..b91bbd894
--- /dev/null
+++ b/LICENSES/BSD-3-Clause.txt
@@ -0,0 +1,9 @@
+Copyright (c) <year> <owner>.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/LICENSES/GFDL-1.3-no-invariants-only.txt b/LICENSES/GFDL-1.3-no-invariants-only.txt
new file mode 100644
index 000000000..857214dd8
--- /dev/null
+++ b/LICENSES/GFDL-1.3-no-invariants-only.txt
@@ -0,0 +1,451 @@
+
+ GNU Free Documentation License
+ Version 1.3, 3 November 2008
+
+
+ Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
+ <https://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+0. PREAMBLE
+
+The purpose of this License is to make a manual, textbook, or other
+functional and useful document "free" in the sense of freedom: to
+assure everyone the effective freedom to copy and redistribute it,
+with or without modifying it, either commercially or noncommercially.
+Secondarily, this License preserves for the author and publisher a way
+to get credit for their work, while not being considered responsible
+for modifications made by others.
+
+This License is a kind of "copyleft", which means that derivative
+works of the document must themselves be free in the same sense. It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+
+We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does. But this License is not limited to software manuals;
+it can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book. We recommend this License
+principally for works whose purpose is instruction or reference.
+
+
+1. APPLICABILITY AND DEFINITIONS
+
+This License applies to any manual or other work, in any medium, that
+contains a notice placed by the copyright holder saying it can be
+distributed under the terms of this License. Such a notice grants a
+world-wide, royalty-free license, unlimited in duration, to use that
+work under the conditions stated herein. The "Document", below,
+refers to any such manual or work. Any member of the public is a
+licensee, and is addressed as "you". You accept the license if you
+copy, modify or distribute the work in a way requiring permission
+under copyright law.
+
+A "Modified Version" of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+
+A "Secondary Section" is a named appendix or a front-matter section of
+the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document's overall
+subject (or to related matters) and contains nothing that could fall
+directly within that overall subject. (Thus, if the Document is in
+part a textbook of mathematics, a Secondary Section may not explain
+any mathematics.) The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position regarding
+them.
+
+The "Invariant Sections" are certain Secondary Sections whose titles
+are designated, as being those of Invariant Sections, in the notice
+that says that the Document is released under this License. If a
+section does not fit the above definition of Secondary then it is not
+allowed to be designated as Invariant. The Document may contain zero
+Invariant Sections. If the Document does not identify any Invariant
+Sections then there are none.
+
+The "Cover Texts" are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License. A Front-Cover Text may
+be at most 5 words, and a Back-Cover Text may be at most 25 words.
+
+A "Transparent" copy of the Document means a machine-readable copy,
+represented in a format whose specification is available to the
+general public, that is suitable for revising the document
+straightforwardly with generic text editors or (for images composed of
+pixels) generic paint programs or (for drawings) some widely available
+drawing editor, and that is suitable for input to text formatters or
+for automatic translation to a variety of formats suitable for input
+to text formatters. A copy made in an otherwise Transparent file
+format whose markup, or absence of markup, has been arranged to thwart
+or discourage subsequent modification by readers is not Transparent.
+An image format is not Transparent if used for any substantial amount
+of text. A copy that is not "Transparent" is called "Opaque".
+
+Examples of suitable formats for Transparent copies include plain
+ASCII without markup, Texinfo input format, LaTeX input format, SGML
+or XML using a publicly available DTD, and standard-conforming simple
+HTML, PostScript or PDF designed for human modification. Examples of
+transparent image formats include PNG, XCF and JPG. Opaque formats
+include proprietary formats that can be read and edited only by
+proprietary word processors, SGML or XML for which the DTD and/or
+processing tools are not generally available, and the
+machine-generated HTML, PostScript or PDF produced by some word
+processors for output purposes only.
+
+The "Title Page" means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page. For works in
+formats which do not have any title page as such, "Title Page" means
+the text near the most prominent appearance of the work's title,
+preceding the beginning of the body of the text.
+
+The "publisher" means any person or entity that distributes copies of
+the Document to the public.
+
+A section "Entitled XYZ" means a named subunit of the Document whose
+title either is precisely XYZ or contains XYZ in parentheses following
+text that translates XYZ in another language. (Here XYZ stands for a
+specific section name mentioned below, such as "Acknowledgements",
+"Dedications", "Endorsements", or "History".) To "Preserve the Title"
+of such a section when you modify the Document means that it remains a
+section "Entitled XYZ" according to this definition.
+
+The Document may include Warranty Disclaimers next to the notice which
+states that this License applies to the Document. These Warranty
+Disclaimers are considered to be included by reference in this
+License, but only as regards disclaiming warranties: any other
+implication that these Warranty Disclaimers may have is void and has
+no effect on the meaning of this License.
+
+2. VERBATIM COPYING
+
+You may copy and distribute the Document in any medium, either
+commercially or noncommercially, provided that this License, the
+copyright notices, and the license notice saying this License applies
+to the Document are reproduced in all copies, and that you add no
+other conditions whatsoever to those of this License. You may not use
+technical measures to obstruct or control the reading or further
+copying of the copies you make or distribute. However, you may accept
+compensation in exchange for copies. If you distribute a large enough
+number of copies you must also follow the conditions in section 3.
+
+You may also lend copies, under the same conditions stated above, and
+you may publicly display copies.
+
+
+3. COPYING IN QUANTITY
+
+If you publish printed copies (or copies in media that commonly have
+printed covers) of the Document, numbering more than 100, and the
+Document's license notice requires Cover Texts, you must enclose the
+copies in covers that carry, clearly and legibly, all these Cover
+Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
+the back cover. Both covers must also clearly and legibly identify
+you as the publisher of these copies. The front cover must present
+the full title with all words of the title equally prominent and
+visible. You may add other material on the covers in addition.
+Copying with changes limited to the covers, as long as they preserve
+the title of the Document and satisfy these conditions, can be treated
+as verbatim copying in other respects.
+
+If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+
+If you publish or distribute Opaque copies of the Document numbering
+more than 100, you must either include a machine-readable Transparent
+copy along with each Opaque copy, or state in or with each Opaque copy
+a computer-network location from which the general network-using
+public has access to download using public-standard network protocols
+a complete Transparent copy of the Document, free of added material.
+If you use the latter option, you must take reasonably prudent steps,
+when you begin distribution of Opaque copies in quantity, to ensure
+that this Transparent copy will remain thus accessible at the stated
+location until at least one year after the last time you distribute an
+Opaque copy (directly or through your agents or retailers) of that
+edition to the public.
+
+It is requested, but not required, that you contact the authors of the
+Document well before redistributing any large number of copies, to
+give them a chance to provide you with an updated version of the
+Document.
+
+
+4. MODIFICATIONS
+
+You may copy and distribute a Modified Version of the Document under
+the conditions of sections 2 and 3 above, provided that you release
+the Modified Version under precisely this License, with the Modified
+Version filling the role of the Document, thus licensing distribution
+and modification of the Modified Version to whoever possesses a copy
+of it. In addition, you must do these things in the Modified Version:
+
+A. Use in the Title Page (and on the covers, if any) a title distinct
+ from that of the Document, and from those of previous versions
+ (which should, if there were any, be listed in the History section
+ of the Document). You may use the same title as a previous version
+ if the original publisher of that version gives permission.
+B. List on the Title Page, as authors, one or more persons or entities
+ responsible for authorship of the modifications in the Modified
+ Version, together with at least five of the principal authors of the
+ Document (all of its principal authors, if it has fewer than five),
+ unless they release you from this requirement.
+C. State on the Title page the name of the publisher of the
+ Modified Version, as the publisher.
+D. Preserve all the copyright notices of the Document.
+E. Add an appropriate copyright notice for your modifications
+ adjacent to the other copyright notices.
+F. Include, immediately after the copyright notices, a license notice
+ giving the public permission to use the Modified Version under the
+ terms of this License, in the form shown in the Addendum below.
+G. Preserve in that license notice the full lists of Invariant Sections
+ and required Cover Texts given in the Document's license notice.
+H. Include an unaltered copy of this License.
+I. Preserve the section Entitled "History", Preserve its Title, and add
+ to it an item stating at least the title, year, new authors, and
+ publisher of the Modified Version as given on the Title Page. If
+ there is no section Entitled "History" in the Document, create one
+ stating the title, year, authors, and publisher of the Document as
+ given on its Title Page, then add an item describing the Modified
+ Version as stated in the previous sentence.
+J. Preserve the network location, if any, given in the Document for
+ public access to a Transparent copy of the Document, and likewise
+ the network locations given in the Document for previous versions
+ it was based on. These may be placed in the "History" section.
+ You may omit a network location for a work that was published at
+ least four years before the Document itself, or if the original
+ publisher of the version it refers to gives permission.
+K. For any section Entitled "Acknowledgements" or "Dedications",
+ Preserve the Title of the section, and preserve in the section all
+ the substance and tone of each of the contributor acknowledgements
+ and/or dedications given therein.
+L. Preserve all the Invariant Sections of the Document,
+ unaltered in their text and in their titles. Section numbers
+ or the equivalent are not considered part of the section titles.
+M. Delete any section Entitled "Endorsements". Such a section
+ may not be included in the Modified Version.
+N. Do not retitle any existing section to be Entitled "Endorsements"
+ or to conflict in title with any Invariant Section.
+O. Preserve any Warranty Disclaimers.
+
+If the Modified Version includes new front-matter sections or
+appendices that qualify as Secondary Sections and contain no material
+copied from the Document, you may at your option designate some or all
+of these sections as invariant. To do this, add their titles to the
+list of Invariant Sections in the Modified Version's license notice.
+These titles must be distinct from any other section titles.
+
+You may add a section Entitled "Endorsements", provided it contains
+nothing but endorsements of your Modified Version by various
+parties--for example, statements of peer review or that the text has
+been approved by an organization as the authoritative definition of a
+standard.
+
+You may add a passage of up to five words as a Front-Cover Text, and a
+passage of up to 25 words as a Back-Cover Text, to the end of the list
+of Cover Texts in the Modified Version. Only one passage of
+Front-Cover Text and one of Back-Cover Text may be added by (or
+through arrangements made by) any one entity. If the Document already
+includes a cover text for the same cover, previously added by you or
+by arrangement made by the same entity you are acting on behalf of,
+you may not add another; but you may replace the old one, on explicit
+permission from the previous publisher that added the old one.
+
+The author(s) and publisher(s) of the Document do not by this License
+give permission to use their names for publicity for or to assert or
+imply endorsement of any Modified Version.
+
+
+5. COMBINING DOCUMENTS
+
+You may combine the Document with other documents released under this
+License, under the terms defined in section 4 above for modified
+versions, provided that you include in the combination all of the
+Invariant Sections of all of the original documents, unmodified, and
+list them all as Invariant Sections of your combined work in its
+license notice, and that you preserve all their Warranty Disclaimers.
+
+The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections may be replaced with a single
+copy. If there are multiple Invariant Sections with the same name but
+different contents, make the title of each such section unique by
+adding at the end of it, in parentheses, the name of the original
+author or publisher of that section if known, or else a unique number.
+Make the same adjustment to the section titles in the list of
+Invariant Sections in the license notice of the combined work.
+
+In the combination, you must combine any sections Entitled "History"
+in the various original documents, forming one section Entitled
+"History"; likewise combine any sections Entitled "Acknowledgements",
+and any sections Entitled "Dedications". You must delete all sections
+Entitled "Endorsements".
+
+
+6. COLLECTIONS OF DOCUMENTS
+
+You may make a collection consisting of the Document and other
+documents released under this License, and replace the individual
+copies of this License in the various documents with a single copy
+that is included in the collection, provided that you follow the rules
+of this License for verbatim copying of each of the documents in all
+other respects.
+
+You may extract a single document from such a collection, and
+distribute it individually under this License, provided you insert a
+copy of this License into the extracted document, and follow this
+License in all other respects regarding verbatim copying of that
+document.
+
+
+7. AGGREGATION WITH INDEPENDENT WORKS
+
+A compilation of the Document or its derivatives with other separate
+and independent documents or works, in or on a volume of a storage or
+distribution medium, is called an "aggregate" if the copyright
+resulting from the compilation is not used to limit the legal rights
+of the compilation's users beyond what the individual works permit.
+When the Document is included in an aggregate, this License does not
+apply to the other works in the aggregate which are not themselves
+derivative works of the Document.
+
+If the Cover Text requirement of section 3 is applicable to these
+copies of the Document, then if the Document is less than one half of
+the entire aggregate, the Document's Cover Texts may be placed on
+covers that bracket the Document within the aggregate, or the
+electronic equivalent of covers if the Document is in electronic form.
+Otherwise they must appear on printed covers that bracket the whole
+aggregate.
+
+
+8. TRANSLATION
+
+Translation is considered a kind of modification, so you may
+distribute translations of the Document under the terms of section 4.
+Replacing Invariant Sections with translations requires special
+permission from their copyright holders, but you may include
+translations of some or all Invariant Sections in addition to the
+original versions of these Invariant Sections. You may include a
+translation of this License, and all the license notices in the
+Document, and any Warranty Disclaimers, provided that you also include
+the original English version of this License and the original versions
+of those notices and disclaimers. In case of a disagreement between
+the translation and the original version of this License or a notice
+or disclaimer, the original version will prevail.
+
+If a section in the Document is Entitled "Acknowledgements",
+"Dedications", or "History", the requirement (section 4) to Preserve
+its Title (section 1) will typically require changing the actual
+title.
+
+
+9. TERMINATION
+
+You may not copy, modify, sublicense, or distribute the Document
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense, or distribute it is void, and
+will automatically terminate your rights under this License.
+
+However, if you cease all violation of this License, then your license
+from a particular copyright holder is reinstated (a) provisionally,
+unless and until the copyright holder explicitly and finally
+terminates your license, and (b) permanently, if the copyright holder
+fails to notify you of the violation by some reasonable means prior to
+60 days after the cessation.
+
+Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, receipt of a copy of some or all of the same material does
+not give you any rights to use it.
+
+
+10. FUTURE REVISIONS OF THIS LICENSE
+
+The Free Software Foundation may publish new, revised versions of the
+GNU Free Documentation License from time to time. Such new versions
+will be similar in spirit to the present version, but may differ in
+detail to address new problems or concerns. See
+https://www.gnu.org/licenses/.
+
+Each version of the License is given a distinguishing version number.
+If the Document specifies that a particular numbered version of this
+License "or any later version" applies to it, you have the option of
+following the terms and conditions either of that specified version or
+of any later version that has been published (not as a draft) by the
+Free Software Foundation. If the Document does not specify a version
+number of this License, you may choose any version ever published (not
+as a draft) by the Free Software Foundation. If the Document
+specifies that a proxy can decide which future versions of this
+License can be used, that proxy's public statement of acceptance of a
+version permanently authorizes you to choose that version for the
+Document.
+
+11. RELICENSING
+
+"Massive Multiauthor Collaboration Site" (or "MMC Site") means any
+World Wide Web server that publishes copyrightable works and also
+provides prominent facilities for anybody to edit those works. A
+public wiki that anybody can edit is an example of such a server. A
+"Massive Multiauthor Collaboration" (or "MMC") contained in the site
+means any set of copyrightable works thus published on the MMC site.
+
+"CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
+license published by Creative Commons Corporation, a not-for-profit
+corporation with a principal place of business in San Francisco,
+California, as well as future copyleft versions of that license
+published by that same organization.
+
+"Incorporate" means to publish or republish a Document, in whole or in
+part, as part of another Document.
+
+An MMC is "eligible for relicensing" if it is licensed under this
+License, and if all works that were first published under this License
+somewhere other than this MMC, and subsequently incorporated in whole or
+in part into the MMC, (1) had no cover texts or invariant sections, and
+(2) were thus incorporated prior to November 1, 2008.
+
+The operator of an MMC Site may republish an MMC contained in the site
+under CC-BY-SA on the same site at any time before August 1, 2009,
+provided the MMC is eligible for relicensing.
+
+
+ADDENDUM: How to use this License for your documents
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and
+license notices just after the title page:
+
+ Copyright (c) YEAR YOUR NAME.
+ Permission is granted to copy, distribute and/or modify this document
+ under the terms of the GNU Free Documentation License, Version 1.3
+ or any later version published by the Free Software Foundation;
+ with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+ A copy of the license is included in the section entitled "GNU
+ Free Documentation License".
+
+If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
+replace the "with...Texts." line with this:
+
+ with the Invariant Sections being LIST THEIR TITLES, with the
+ Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
+
+If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+
+If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License,
+to permit their use in free software.
diff --git a/LICENSE.GPL2 b/LICENSES/GPL-2.0-only.txt
index d159169d1..d159169d1 100644
--- a/LICENSE.GPL2
+++ b/LICENSES/GPL-2.0-only.txt
diff --git a/sources/patchelf/COPYING b/LICENSES/GPL-3.0-only.txt
index 94a9ed024..94a9ed024 100644
--- a/sources/patchelf/COPYING
+++ b/LICENSES/GPL-3.0-only.txt
diff --git a/LICENSES/LGPL-3.0-only.txt b/LICENSES/LGPL-3.0-only.txt
new file mode 100644
index 000000000..65c5ca88a
--- /dev/null
+++ b/LICENSES/LGPL-3.0-only.txt
@@ -0,0 +1,165 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+ This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+ 0. Additional Definitions.
+
+ As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+ "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+ An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+ A "Combined Work" is a work produced by combining or linking an
+Application with the Library. The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+ The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+ The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+ 1. Exception to Section 3 of the GNU GPL.
+
+ You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+ 2. Conveying Modified Versions.
+
+ If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+ a) under this License, provided that you make a good faith effort to
+ ensure that, in the event an Application does not supply the
+ function or data, the facility still operates, and performs
+ whatever part of its purpose remains meaningful, or
+
+ b) under the GNU GPL, with none of the additional permissions of
+ this License applicable to that copy.
+
+ 3. Object Code Incorporating Material from Library Header Files.
+
+ The object code form of an Application may incorporate material from
+a header file that is part of the Library. You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+ a) Give prominent notice with each copy of the object code that the
+ Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the object code with a copy of the GNU GPL and this license
+ document.
+
+ 4. Combined Works.
+
+ You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+ a) Give prominent notice with each copy of the Combined Work that
+ the Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the Combined Work with a copy of the GNU GPL and this license
+ document.
+
+ c) For a Combined Work that displays copyright notices during
+ execution, include the copyright notice for the Library among
+ these notices, as well as a reference directing the user to the
+ copies of the GNU GPL and this license document.
+
+ d) Do one of the following:
+
+ 0) Convey the Minimal Corresponding Source under the terms of this
+ License, and the Corresponding Application Code in a form
+ suitable for, and under terms that permit, the user to
+ recombine or relink the Application with a modified version of
+ the Linked Version to produce a modified Combined Work, in the
+ manner specified by section 6 of the GNU GPL for conveying
+ Corresponding Source.
+
+ 1) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (a) uses at run time
+ a copy of the Library already present on the user's computer
+ system, and (b) will operate properly with a modified version
+ of the Library that is interface-compatible with the Linked
+ Version.
+
+ e) Provide Installation Information, but only if you would otherwise
+ be required to provide such information under section 6 of the
+ GNU GPL, and only to the extent that such information is
+ necessary to install and execute a modified version of the
+ Combined Work produced by recombining or relinking the
+ Application with a modified version of the Linked Version. (If
+ you use option 4d0, the Installation Information must accompany
+ the Minimal Corresponding Source and Corresponding Application
+ Code. If you use option 4d1, you must provide the Installation
+ Information in the manner specified by section 6 of the GNU GPL
+ for conveying Corresponding Source.)
+
+ 5. Combined Libraries.
+
+ You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+ a) Accompany the combined library with a copy of the same work based
+ on the Library, uncombined with any other library facilities,
+ conveyed under the terms of this License.
+
+ b) Give prominent notice with the combined library that part of it
+ is a work based on the Library, and explaining where to find the
+ accompanying uncombined form of the same work.
+
+ 6. Revised Versions of the GNU Lesser General Public License.
+
+ The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+ If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
diff --git a/LICENSES/LicenseRef-Qt-Commercial.txt b/LICENSES/LicenseRef-Qt-Commercial.txt
new file mode 100644
index 000000000..825b1f358
--- /dev/null
+++ b/LICENSES/LicenseRef-Qt-Commercial.txt
@@ -0,0 +1,8 @@
+Licensees holding valid commercial Qt licenses may use this software in
+accordance with the the terms contained in a written agreement between
+you and The Qt Company. Alternatively, the terms and conditions that were
+accepted by the licensee when buying and/or downloading the
+software do apply.
+
+For the latest licensing terms and conditions, see https://www.qt.io/terms-conditions.
+For further information use the contact form at https://www.qt.io/contact-us.
diff --git a/LICENSES/Qt-GPL-exception-1.0.txt b/LICENSES/Qt-GPL-exception-1.0.txt
new file mode 100644
index 000000000..d0322bf0e
--- /dev/null
+++ b/LICENSES/Qt-GPL-exception-1.0.txt
@@ -0,0 +1,22 @@
+The Qt Company GPL Exception 1.0
+
+Exception 1:
+
+As a special exception you may create a larger work which contains the
+output of this application and distribute that work under terms of your
+choice, so long as the work is not otherwise derived from or based on
+this application and so long as the work does not in itself generate
+output that contains the output from this application in its original
+or modified form.
+
+Exception 2:
+
+As a special exception, you have permission to combine this application
+with Plugins licensed under the terms of your choice, to produce an
+executable, and to copy and distribute the resulting executable under
+the terms of your choice. However, the executable must be accompanied
+by a prominent notice offering all users of the executable the entire
+source code to this application, excluding the source code of the
+independent modules, but including any changes you have made to this
+application, under the terms of this license.
+
diff --git a/README.md b/README.md
index 00a41f89f..35f5a9063 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
# Qt For Python
-Qt For Python is the [Python Qt bindings project](http://wiki.qt.io/PySide6),
+Qt For Python is the [Python Qt bindings project](https://wiki.qt.io/PySide6),
providing access to the complete Qt framework as well as to generator tools for
rapidly generating bindings for any C++ libraries.
@@ -24,16 +24,16 @@ The same setup.py script is used to build all the components of the project:
* PySide6
Preferably, a Qt (build) environment should be used to automatically pick up
-the associated `qmake`, but optionally one can specify the location of `qmake`
+the associated `qtpaths6`, but optionally one can specify the location of `qtpaths6`
and `cmake` if it is not in the current PATH with:
- * `--qmake=/path/to/qt/bin/qmake`, and
+ * `--qtpaths=/path/to/qt/bin/qtpaths6`, and
* `--cmake=/path/to/bin/cmake`
respectively.
By default, all of the above is built when no special options are passed to the
-script. You can use the --build-type parameter to specify which things should
+script. You can use the `--build-type` parameter to specify which things should
be built:
* `--build-type=shiboken6`, build/package only the python module
@@ -61,40 +61,19 @@ are found by the QtNetwork module.
## Building Additional Options
On Linux and macOS you can use the option `--standalone` to embed Qt libraries
-into the PySide6 package. The option does not affect Windows, because it is
+into the PySide6 package. The option does not affect Windows, because it is
used implicitly, i.e. all relevant DLLs have to be copied into the PySide6
package anyway, because there is no proper rpath support on the platform.
You can use the option `--rpath=/path/to/lib/path` to specify which rpath
-values should be embedded into the PySide6 modules and shared libraries. This
+values should be embedded into the PySide6 modules and shared libraries. This
overrides the automatically generated values when the option is not specified.
-You can use the option `--only-package` if you want to create more binary
-packages (bdist_wheel, bdist_egg, ...) without rebuilding the entire project
-every time:
-
-e.g.:
-
-* First, we create a bdist_wheel from a full PySide6 build:
- ```
- python setup.py bdist_wheel --qmake=c:\Qt\6.0\bin\qmake.exe
- --cmake=c:\tools\cmake\bin\cmake.exe
- --openssl=c:\libs\OpenSSL32bit\bin
- ```
-* Then, we create a bdist_egg reusing the PySide6 build with option
- `--only-package`:
- ```
- python setup.py bdist_egg --only-package
- --qmake=c:\Qt\6.0\bin\qmake.exe
- --cmake=c:\tools\cmake\bin\cmake.exe
- --openssl=c:\libs\OpenSSL32bit\bin
- ```
-
You can use the option `--qt-conf-prefix` to pass a path relative to the
PySide6 installed package, which will be embedded into an auto-generated
-`qt.conf` registered in the Qt resource system. This path will serve as the
+`qt.conf` registered in the Qt resource system. This path will serve as the
PrefixPath for QLibraryInfo, thus allowing to choose where Qt plugins should be
-loaded from. This option overrides the usual prefix chosen by `--standalone`
+loaded from. This option overrides the usual prefix chosen by `--standalone`
option, or when building on Windows.
To temporarily disable registration of the internal `qt.conf` file, a new
@@ -134,14 +113,16 @@ using `setup.py build`:
or macOS only).
* `--verbose-build`, will output the compiler invocation with command line
arguments, etc.
+ * `--disable-pyi`, will suppress the generation of .pyi files. This allows
+ debugging when the project builds but the pyi generator complains.
## Requirements
- * Python 3.6+ is supported,
+ * Python 3.9+ is supported (for Qt 6.7+)
* CMake: Specify the path to cmake with `--cmake` option or add cmake to the
system path.
- * Qt 6.0+ is supported. Specify the path to qmake with `--qmake` option or
- add qmake to the system path.
+ * Qt 6.x is supported. Specify the path to qtpaths with `--qtpaths` option or
+ add `qtpaths6` to the system path.
### Optional
@@ -152,7 +133,7 @@ platforms.
Please note that official Windows packages do not ship the OpenSSL libraries
due to import/export restrictions as described in
-http://doc.qt.io/qt-6/ssl.html#import-and-export-restrictions
+https://doc.qt.io/qt-6/ssl.html#import-and-export-restrictions
You can specify the location of the OpenSSL DLLs with the following option:
`--openssl=</path/to/openssl/bin-directory>`.
@@ -224,13 +205,13 @@ make sure to specify the following things:
* `LLVM_INSTALL_DIR`, the environment variable should point to your libclang
library location
* `Qt`, either select a Qt Kit when configuring the project, or make sure that
- the qmake binary is present in the PATH environment variable.
+ the `qtpaths6` binary is present in the PATH environment variable.
* `Python`, the PATH environment variable should also point to the Python
interpreter which you wish to use for building the projects (can either be
a system interpreter, or a virtualenv one for example)
Once that is done, just re-run CMake, so that it picks up the new environment
-values. If needed, all other cache variables defined by the project files can
+values. If needed, all other cache variables defined by the project files can
be re-adjusted (for example FORCE_LIMITED_API).
## Command line CMake case
diff --git a/README.pyside6.md b/README.pyside6.md
index 007903291..8c70b1c8f 100644
--- a/README.pyside6.md
+++ b/README.pyside6.md
@@ -5,7 +5,7 @@
**Important:** for Qt5 compatibility, check [PySide2](https://pypi.org/project/PySide2)
PySide6 is the official Python module from the
-[Qt for Python project](http://wiki.qt.io/Qt_for_Python),
+[Qt for Python project](https://wiki.qt.io/Qt_for_Python),
which provides access to the complete Qt 6.0+ framework.
The Qt for Python project is developed in the open, with all facilities you'd expect
@@ -23,12 +23,17 @@ and [PyPi](https://pypi.org/project/PySide6/):
pip install PySide6
```
+> Please note: this wheel is an alias to other two wheels
+> [PySide6_Essentials](https://pypi.org/project/PySide6_Essentials) and
+> [PySide6_Addons](https://pypi.org/project/PySide6_Addons), which contains
+> a predefined list of Qt Modules.
+
#### Dependencies
PySide6 versions following 6.0 use a C++ parser based on
-[Clang](http://clang.org/). The Clang library (C-bindings), version 10.0 or
+[Clang](http://clang.org/). The Clang library (C-bindings), version 13.0 or
higher is required for building. Prebuilt versions of it can be downloaded from
-[download.qt.io](http://download.qt.io/development_releases/prebuilt/libclang/).
+[download.qt.io](https://download.qt.io/development_releases/prebuilt/libclang/).
After unpacking the archive, set the environment variable *LLVM_INSTALL_DIR* to
point to the folder containing the *include* and *lib* directories of Clang:
@@ -61,7 +66,7 @@ then install the dependencies, and following the instructions per platform.
A common build command will look like:
```
-python setup.py install --qmake=/path/to/bin/qmake --parallel=8 --build-tests
+python setup.py install --qtpaths=/path/to/bin/qtpaths6 --parallel=8 --build-tests
```
You can obtain more information about the options to build PySide and Shiboken
@@ -78,12 +83,12 @@ our [guidelines](https://wiki.qt.io/Qt_for_Python/Reporting_Bugs).
### Community
-Check *#qt-pyside*, our official IRC channel on FreeNode, or contact us via our
-[mailing list](http://lists.qt-project.org/mailman/listinfo/pyside).
+Check our channels on IRC (Libera), Telegram, Gitter, Matrix, and mailing list,
+and [join our community](https://wiki.qt.io/Qt_for_Python#Community)!
### Licensing
PySide6 is available under both Open Source (LGPLv3/GPLv2) and commercial
-license. Using PyPi is the recommended installation source, because the
-content of the wheels is valid for both cases. For more information, refer to
+license. Using PyPi is the recommended installation source, because the
+content of the wheels is valid for both cases. For more information, refer to
the [Qt Licensing page](https://www.qt.io/licensing/).
diff --git a/README.pyside6_addons.md b/README.pyside6_addons.md
new file mode 100644
index 000000000..3247a550d
--- /dev/null
+++ b/README.pyside6_addons.md
@@ -0,0 +1,71 @@
+# PySide6 Addons
+
+PySide6 is the official Python module from the
+[Qt for Python project](https://wiki.qt.io/Qt_for_Python),
+which provides access to the complete Qt 6.0+ framework.
+
+The Qt for Python project is developed in the open, with all facilities you'd expect
+from any modern OSS project such as all code in a git repository and an open
+design process. We welcome any contribution conforming to the
+[Qt Contribution Agreement](https://www.qt.io/contributionagreement/).
+
+This is a complementary wheel for [PySide6](https://pypi.org/project/PySide6),
+it includes the following Qt modules:
+
+* Qt3DAnimation
+* Qt3DCore
+* Qt3DExtras
+* Qt3DInput
+* Qt3DLogic
+* Qt3DRender
+* QtAxContainer
+* QtBluetooth
+* QtCharts
+* QtDataVisualization
+* QtGraphs
+* QtMultimedia
+* QtMultimediaWidgets
+* QtNetworkAuth
+* QtNfc
+* QtPositioning
+* QtQuick3D
+* QtRemoteObjects
+* QtScxml
+* QtSensors
+* QtSerialPort
+* QtSerialBus
+* QtSpatialAudio
+* QtStateMachine
+* QtTextToSpeech
+* QtVirtualKeyboard
+* QtWebChannel
+* QtWebEngineCore
+* QtWebEngineQuick
+* QtWebEngineWidgets
+* QtWebSockets
+* QtPdf
+* QtPdfWidgets
+* QtHttpServer
+* QtLocation
+* QtAsyncio
+
+### Documentation and Bugs
+
+You can find more information about the PySide6 module API in the
+[official Qt for Python documentation](https://doc.qt.io/qtforpython/).
+
+If you come across any issue, please file a bug report at our
+[JIRA tracker](https://bugreports.qt.io/projects/PYSIDE) following
+our [guidelines](https://wiki.qt.io/Qt_for_Python/Reporting_Bugs).
+
+### Community
+
+Check our channels on IRC (Libera), Telegram, Gitter, Matrix, and mailing list,
+and [join our community](https://wiki.qt.io/Qt_for_Python#Community)!
+
+### Licensing
+
+PySide6 is available under both Open Source (LGPLv3/GPLv2) and commercial
+license. Using PyPi is the recommended installation source, because the
+content of the wheels is valid for both cases. For more information, refer to
+the [Qt Licensing page](https://www.qt.io/licensing/).
diff --git a/README.pyside6_essentials.md b/README.pyside6_essentials.md
new file mode 100644
index 000000000..ef0376e43
--- /dev/null
+++ b/README.pyside6_essentials.md
@@ -0,0 +1,57 @@
+# PySide6 Essentials
+
+PySide6 is the official Python module from the
+[Qt for Python project](https://wiki.qt.io/Qt_for_Python),
+which provides access to the complete Qt 6.0+ framework.
+
+The Qt for Python project is developed in the open, with all facilities you'd expect
+from any modern OSS project such as all code in a git repository and an open
+design process. We welcome any contribution conforming to the
+[Qt Contribution Agreement](https://www.qt.io/contributionagreement/).
+
+This is a minimal wheel for [PySide6](https://pypi.org/project/PySide6),
+it includes only the essentials Qt modules:
+
+* QtCore
+* QtGui
+* QtWidgets
+* QtHelp
+* QtNetwork
+* QtConcurrent
+* QtDBus
+* QtDesigner
+* QtOpenGL
+* QtOpenGLWidgets
+* QtPrintSupport
+* QtQml
+* QtQuick
+* QtQuickControls2
+* QtQuickTest
+* QtQuickWidgets
+* QtXml
+* QtTest
+* QtSql
+* QtSvg
+* QtSvgWidgets
+* QtUiTools
+
+### Documentation and Bugs
+
+You can find more information about the PySide6 module API in the
+[official Qt for Python documentation](https://doc.qt.io/qtforpython/).
+
+If you come across any issue, please file a bug report at our
+[JIRA tracker](https://bugreports.qt.io/projects/PYSIDE) following
+our [guidelines](https://wiki.qt.io/Qt_for_Python/Reporting_Bugs).
+
+### Community
+
+Check our channels on IRC (Libera), Telegram, Gitter, Matrix, and mailing list,
+and [join our community](https://wiki.qt.io/Qt_for_Python#Community)!
+
+### Licensing
+
+PySide6 is available under both Open Source (LGPLv3/GPLv2) and commercial
+license. Using PyPi is the recommended installation source, because the
+content of the wheels is valid for both cases. For more information, refer to
+the [Qt Licensing page](https://www.qt.io/licensing/).
diff --git a/README.pyside6_examples.md b/README.pyside6_examples.md
new file mode 100644
index 000000000..ffa7d83d5
--- /dev/null
+++ b/README.pyside6_examples.md
@@ -0,0 +1,34 @@
+# PySide6 Examples
+
+PySide6 is the official Python module from the
+[Qt for Python project](https://wiki.qt.io/Qt_for_Python),
+which provides access to the complete Qt 6.0+ framework.
+
+The Qt for Python project is developed in the open, with all facilities you'd expect
+from any modern OSS project such as all code in a git repository and an open
+design process. We welcome any contribution conforming to the
+[Qt Contribution Agreement](https://www.qt.io/contributionagreement/).
+
+This is a wheel containing the [PySide6](https://pypi.org/project/PySide6)
+examples, from all the modules.
+
+### Documentation and Bugs
+
+You can find more information about the PySide6 module API in the
+[official Qt for Python documentation](https://doc.qt.io/qtforpython/).
+
+If you come across any issue, please file a bug report at our
+[JIRA tracker](https://bugreports.qt.io/projects/PYSIDE) following
+our [guidelines](https://wiki.qt.io/Qt_for_Python/Reporting_Bugs).
+
+### Community
+
+Check our channels on IRC (Libera), Telegram, Gitter, Matrix, and mailing list,
+and [join our community](https://wiki.qt.io/Qt_for_Python#Community)!
+
+### Licensing
+
+PySide6 is available under both Open Source (LGPLv3/GPLv2) and commercial
+licenses. Using PyPi is the recommended installation source, because the
+content of the wheels is valid for both cases. For more information, refer to
+the [Qt Licensing page](https://www.qt.io/licensing/).
diff --git a/README.shiboken6-generator.md b/README.shiboken6-generator.md
index c57af2d94..11e345f1d 100644
--- a/README.shiboken6-generator.md
+++ b/README.shiboken6-generator.md
@@ -1,6 +1,6 @@
# Shiboken6-generator
-Shiboken is the generator used by the Qt for Python project. It outputs C++
+Shiboken is the generator used by the Qt for Python project. It outputs C++
code for CPython extensions, which can be compiled and transformed into
a Python module.
diff --git a/build_history/blacklist.txt b/build_history/blacklist.txt
index 7786fe989..5f0183f5b 100644
--- a/build_history/blacklist.txt
+++ b/build_history/blacklist.txt
@@ -1,3 +1,7 @@
+[smart::smart_pointer]
+ darwin ci
+[testmodifydocumentation]
+ darwin arm
[signals::signal_signature_test]
linux
darwin
@@ -10,18 +14,14 @@
linux
darwin
win32
+# Cannot create metal surface
+[QtMultimediaWidgets::qmultimediawidgets]
+ darwin ci
# PYSIDE-474
[QtWebEngineWidgets::pyside-474-qtwebengineview]
py2
py3
-[QtCore::thread_signals_test]
- win32
- linux
- darwin
-[QtCore::qthread_prod_cons_test]
- win32
- linux
- darwin
+[QtCore::qthread_test]
# PYSIDE-754
[QtWebEngineCore::web_engine_custom_scheme]
win32
@@ -35,20 +35,59 @@
linux
darwin
# Open GL functions failures on macOS (2/2020)
-[registry::existence_test]
- darwin
-[QtCore::bug_686]
- linux ci
-[QtCore::qthread_signal_test]
- linux ci
[QtQml::qqmlnetwork_test]
- linux ci
+ linux ci # extended, see PyPy section below
[QtWidgets::bug_750]
darwin ci
[QtWidgets::qpicture_test]
darwin ci
-# Unsolved Refcounting leaks in debug mode
-[pysidetest::property_python_test]
- debug
-[signals::bug_79]
- debug
+[QtAsyncio::qasyncio_test_chain]
+ win32
+[QtQml::bug_825]
+ py3.8 # bug in typeobject::type_mro_modified, fix in 3.9
+ py3.9.0
+ py3.9.1
+ py3.9.2
+ py3.9.3
+ py3.9.4
+ py3.9.5
+ py3.9.6
+ py3.9.7
+ py3.9.8
+ py3.9.9
+ py3.9.10
+ py3.9.11
+ # fixed in 3.9.12
+ py3.10.0
+ py3.10.1
+ py3.10.2
+ py3.10.3
+ # fixed in 3.10.4
+# PYSIDE-535: These errors are still present. Please try to remove one :)
+[sample::mixed_mi]
+ pypy
+[sample::sample]
+ pypy
+[sample::str]
+ pypy
+[sample::typedealloc]
+ pypy
+[pysidetest::homonymoussignalandmethod_test]
+ pypy
+[pysidetest::mixin_signal_slots_test]
+ pypy
+[signals::qobject_sender_test]
+ pypy
+[QtCore::classinfo_test]
+ pypy
+[QtCore::qbytearray_test]
+ pypy
+[QtWidgets::bug_836]
+ pypy
+[QtQml::bug_825]
+ pypy
+[QtQml::javascript_exceptions]
+ pypy
+[QtQml::qqmlincubator_incubateWhile]
+ pypy # gives timeout on macOS if I run video converter while testing
+# 2022-03-04 PyPy: Currently 28 of 657 tests fail
diff --git a/build_scripts/__init__.py b/build_scripts/__init__.py
index 571d37492..128bb2394 100644
--- a/build_scripts/__init__.py
+++ b/build_scripts/__init__.py
@@ -1,38 +1,39 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+PYSIDE = 'pyside6'
+PYSIDE_MODULE = 'PySide6'
+SHIBOKEN = 'shiboken6'
+
+PYSIDE_PYTHON_TOOLS = ["metaobjectdump",
+ "deploy",
+ "android_deploy",
+ "project",
+ "qml",
+ "qtpy2cpp",
+ "genpyi"]
+
+PYSIDE_UNIX_BIN_TOOLS = ["lupdate",
+ "lrelease",
+ "qmllint",
+ "qmlformat",
+ "qmlls",
+ "qsb",
+ "balsam",
+ "balsamui"]
+
+# tools that are bundled as .app in macOS, but are normal executables in Linux and Windows
+PYSIDE_UNIX_BUNDLED_TOOLS = ["assistant",
+ "designer",
+ "linguist"]
+
+PYSIDE_LINUX_BIN_TOOLS = PYSIDE_UNIX_BIN_TOOLS + PYSIDE_UNIX_BUNDLED_TOOLS
+
+PYSIDE_UNIX_LIBEXEC_TOOLS = ["uic",
+ "rcc",
+ "qmltyperegistrar",
+ "qmlimportscanner",
+ "qmlcachegen"]
+
+# all Qt tools are in 'bin' folder in Windows
+PYSIDE_WINDOWS_BIN_TOOLS = PYSIDE_UNIX_LIBEXEC_TOOLS + PYSIDE_LINUX_BIN_TOOLS
diff --git a/build_scripts/build_info_collector.py b/build_scripts/build_info_collector.py
new file mode 100644
index 000000000..30ce187c8
--- /dev/null
+++ b/build_scripts/build_info_collector.py
@@ -0,0 +1,311 @@
+# Copyright (C) 2021 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+import os
+import platform
+import sys
+import sysconfig
+from pathlib import Path
+from sysconfig import get_config_var
+
+from setuptools.errors import SetupError
+
+from .log import log
+from .options import OPTION
+from .qtinfo import QtInfo
+from .utils import configure_cmake_project, parse_cmake_project_message_info
+from .wheel_utils import get_qt_version
+
+
+# Return a prefix suitable for the _install/_build directory
+def prefix():
+ virtual_env_name = os.environ.get('VIRTUAL_ENV', None)
+ has_virtual_env = False
+ if virtual_env_name is not None:
+ name = Path(virtual_env_name).name
+ has_virtual_env = True
+ else:
+ name = "qfp"
+ if OPTION["DEBUG"]:
+ name += "d"
+ if is_debug_python():
+ name += "p"
+ if OPTION["LIMITED_API"] == "yes":
+ name += "a"
+ return Path(name), has_virtual_env
+
+
+def is_debug_python():
+ return getattr(sys, "gettotalrefcount", None) is not None
+
+
+def _get_py_library_win(build_type, py_version, py_prefix, py_libdir,
+ py_include_dir):
+ """Helper for finding the Python library on Windows"""
+ if py_include_dir is None or not Path(py_include_dir).exists():
+ py_include_dir = Path(py_prefix) / "include"
+ if py_libdir is None or not Path(py_libdir).exists():
+ # For virtual environments on Windows, the py_prefix will contain a
+ # path pointing to it, instead of the system Python installation path.
+ # Since INCLUDEPY contains a path to the system location, we use the
+ # same base directory to define the py_libdir variable.
+ py_libdir = Path(py_include_dir).parent / "libs"
+ if not py_libdir.is_dir():
+ raise SetupError("Failed to locate the 'libs' directory")
+ dbg_postfix = "_d" if build_type == "Debug" else ""
+ if OPTION["MAKESPEC"] == "mingw":
+ static_lib_name = f"libpython{py_version.replace('.', '')}{dbg_postfix}.a"
+ return Path(py_libdir) / static_lib_name
+ v = py_version.replace(".", "")
+ python_lib_name = f"python{v}{dbg_postfix}.lib"
+ return Path(py_libdir) / python_lib_name
+
+
+def _get_py_library_unix(build_type, py_version, py_prefix, py_libdir,
+ py_include_dir):
+ """Helper for finding the Python library on UNIX"""
+ if py_libdir is None or not Path(py_libdir).exists():
+ py_libdir = Path(py_prefix) / "lib"
+ if py_include_dir is None or not Path(py_include_dir).exists():
+ directory = f"include/python{py_version}"
+ py_include_dir = Path(py_prefix) / directory
+ lib_exts = ['.so']
+ if sys.platform == 'darwin':
+ lib_exts.append('.dylib')
+ lib_suff = getattr(sys, 'abiflags', None)
+ lib_exts.append('.so.1')
+ # Suffix for OpenSuSE 13.01
+ lib_exts.append('.so.1.0')
+ # static library as last gasp
+ lib_exts.append('.a')
+
+ libs_tried = []
+ for lib_ext in lib_exts:
+ lib_name = f"libpython{py_version}{lib_suff}{lib_ext}"
+ py_library = Path(py_libdir) / lib_name
+ if py_library.exists():
+ return py_library
+ libs_tried.append(py_library)
+
+ # Try to find shared libraries which have a multi arch
+ # suffix.
+ py_multiarch = get_config_var("MULTIARCH")
+ if py_multiarch:
+ try_py_libdir = Path(py_libdir) / py_multiarch
+ libs_tried = []
+ for lib_ext in lib_exts:
+ lib_name = f"libpython{py_version}{lib_suff}{lib_ext}"
+ py_library = try_py_libdir / lib_name
+ if py_library.exists():
+ return py_library
+ libs_tried.append(py_library)
+
+ # PYSIDE-535: See if this is PyPy.
+ if hasattr(sys, "pypy_version_info"):
+ vi = sys.version_info[:2]
+ version_quirk = ".".join(map(str, vi)) if vi >= (3, 9) else "3"
+ pypy_libdir = Path(py_libdir).parent / "bin"
+ for lib_ext in lib_exts:
+ lib_name = f"libpypy{version_quirk}-c{lib_ext}"
+ pypy_library = pypy_libdir / lib_name
+ if pypy_library.exists():
+ return pypy_library
+ libs_tried.append(pypy_library)
+ _libs_tried = ', '.join(str(lib) for lib in libs_tried)
+ raise SetupError(f"Failed to locate the Python library with {_libs_tried}")
+
+
+def get_py_library(build_type, py_version, py_prefix, py_libdir, py_include_dir):
+ """Find the Python library"""
+ if sys.platform == "win32":
+ py_library = _get_py_library_win(build_type, py_version, py_prefix,
+ py_libdir, py_include_dir)
+ else:
+ py_library = _get_py_library_unix(build_type, py_version, py_prefix,
+ py_libdir, py_include_dir)
+ if str(py_library).endswith('.a'):
+ # Python was compiled as a static library
+ log.error(f"Failed to locate a dynamic Python library, using {py_library}")
+ return py_library
+
+
+class BuildInfoCollectorMixin(object):
+ build_base: str
+ build_lib: str
+ cmake: str
+ cmake_toolchain_file: str
+ internal_cmake_install_dir_query_file_path: str
+ is_cross_compile: bool
+ plat_name: str
+ python_target_path: str
+
+ def __init__(self):
+ pass
+
+ def collect_and_assign(self):
+ script_dir = Path.cwd()
+
+ # build_base is not set during install command, so we default to
+ # the 'build command's build_base value ourselves.
+ build_base = self.build_base
+ if not build_base:
+ self.build_base = "build"
+ build_base = self.build_base
+
+ sources_dir = script_dir / "sources"
+
+ if self.is_cross_compile:
+ config_tests_dir = script_dir / build_base / "config.tests"
+ python_target_info_dir = (sources_dir / "shiboken6" / "config.tests"
+ / "target_python_info")
+ cmake_cache_args = []
+
+ if self.python_target_path:
+ cmake_cache_args.append(("Python_ROOT_DIR", self.python_target_path))
+
+ if self.cmake_toolchain_file:
+ cmake_cache_args.append(("CMAKE_TOOLCHAIN_FILE", self.cmake_toolchain_file))
+ python_target_info_output = configure_cmake_project(
+ python_target_info_dir,
+ self.cmake,
+ temp_prefix_build_path=config_tests_dir,
+ cmake_cache_args=cmake_cache_args)
+ python_target_info = parse_cmake_project_message_info(python_target_info_output)
+ self.python_target_info = python_target_info
+
+ build_type = "Debug" if OPTION["DEBUG"] else "Release"
+ if OPTION["RELWITHDEBINFO"]:
+ build_type = 'RelWithDebInfo'
+
+ # Prepare parameters
+ if not self.is_cross_compile:
+ platform_arch = platform.architecture()[0]
+ self.py_arch = platform_arch[:-3]
+
+ py_executable = sys.executable
+ _major, _minor, *_ = sys.version_info
+ py_version = f"{_major}.{_minor}"
+ py_include_dir = get_config_var("INCLUDEPY")
+ py_libdir = get_config_var("LIBDIR")
+ # sysconfig.get_config_var('prefix') returned the
+ # virtual environment base directory, but
+ # sysconfig.get_config_var returns the system's prefix.
+ # We use 'base' instead (although, platbase points to the
+ # same location)
+ py_prefix = get_config_var("base")
+ if not py_prefix or not Path(py_prefix).exists():
+ py_prefix = sys.prefix
+ self.py_prefix = py_prefix
+ py_prefix = Path(py_prefix)
+ if sys.platform == "win32":
+ py_scripts_dir = py_prefix / "Scripts"
+ else:
+ py_scripts_dir = py_prefix / "bin"
+ self.py_scripts_dir = py_scripts_dir
+ else:
+ # We don't look for an interpreter when cross-compiling.
+ py_executable = None
+
+ python_info = self.python_target_info['python_info']
+ py_version = python_info['version'].split('.')
+ py_version = f"{py_version[0]}.{py_version[1]}"
+ py_include_dir = python_info['include_dirs']
+ py_libdir = python_info['library_dirs']
+ py_library = python_info['libraries']
+ self.py_library = py_library
+
+ # Prefix might not be set because the project that extracts
+ # the info is using internal API to get it. It shouldn't be
+ # critical though, because we don't really use neither
+ # py_prefix nor py_scripts_dir in important places
+ # when cross-compiling.
+ if 'prefix' in python_info:
+ py_prefix = python_info['prefix']
+ self.py_prefix = Path(py_prefix).resolve()
+
+ py_scripts_dir = self.py_prefix / 'bin'
+ if py_scripts_dir.exists():
+ self.py_scripts_dir = py_scripts_dir
+ else:
+ self.py_scripts_dir = None
+ else:
+ py_prefix = None
+ self.py_prefix = py_prefix
+ self.py_scripts_dir = None
+
+ self.qtinfo = QtInfo()
+ qt_version = get_qt_version()
+
+ # Used for test blacklists and registry test.
+ if self.is_cross_compile:
+ # Querying the host platform architecture makes no sense when cross-compiling.
+ build_classifiers = f"py{py_version}-qt{qt_version}-{self.plat_name}-"
+ else:
+ build_classifiers = f"py{py_version}-qt{qt_version}-{platform.architecture()[0]}-"
+ if hasattr(sys, "pypy_version_info"):
+ pypy_version = ".".join(map(str, sys.pypy_version_info[:3]))
+ build_classifiers += f"pypy.{pypy_version}-"
+ build_classifiers += f"{build_type.lower()}"
+ self.build_classifiers = build_classifiers
+
+ venv_prefix, has_virtual_env = prefix()
+
+ # The virtualenv name serves as the base of the build dir
+ # and we consider it is distinct enough that we don't have to
+ # append the build classifiers, thus keeping dir names shorter.
+ build_name = f"{venv_prefix}"
+ if self.is_cross_compile and has_virtual_env:
+ build_name += f"-{self.plat_name}"
+
+ # If short paths are requested and no virtual env is found, at
+ # least append the python version for more uniqueness.
+ if OPTION["SHORTER_PATHS"] and not has_virtual_env:
+ build_name += f"-p{py_version}"
+ # If no virtual env is found, use build classifiers for
+ # uniqueness.
+ elif not has_virtual_env:
+ build_name += f"-{self.build_classifiers}"
+
+ common_prefix_dir = script_dir / build_base
+ build_dir = common_prefix_dir / build_name / "build"
+ install_dir = common_prefix_dir / build_name / "install"
+
+ # Change the setuptools build_lib dir to be under the same
+ # directory where the cmake build and install dirs are so
+ # there's a common subdirectory for all build-related dirs.
+ # Example:
+ # Replaces
+ # build/lib.macosx-10.14-x86_64-3.7' with
+ # build/{venv_prefix}/package'
+ setup_tools_build_lib_dir = common_prefix_dir / build_name / "package"
+ self.build_lib = setup_tools_build_lib_dir
+
+ self.script_dir = Path(script_dir)
+ self.sources_dir = Path(sources_dir)
+ self.build_dir = Path(build_dir)
+ self.install_dir = Path(install_dir)
+ self.py_executable = Path(py_executable) if py_executable else None
+ self.py_include_dir = Path(py_include_dir)
+
+ if not self.is_cross_compile:
+ self.py_library = get_py_library(build_type, py_version, py_prefix,
+ py_libdir, py_include_dir)
+ self.py_version = py_version
+ self.build_type = build_type
+
+ if self.is_cross_compile:
+ site_packages_no_prefix = self.python_target_info['python_info']['site_packages_dir']
+ self.site_packages_dir = install_dir / site_packages_no_prefix
+ else:
+ # Setuptools doesn't have an equivalent of a get_python_lib with a
+ # prefix, so we build the path manually:
+ # self.site_packages_dir = sconfig.get_python_lib(1, 0, prefix=install_dir)
+ _base = sysconfig.get_paths()["data"]
+ _purelib = sysconfig.get_paths()["purelib"]
+ assert _base in _purelib
+ self.site_packages_dir = f"{install_dir}{_purelib.replace(_base, '')}"
+
+ def post_collect_and_assign(self):
+ # self.build_lib is only available after the base class
+ # finalize_options is called.
+ self.st_build_dir = self.script_dir / self.build_lib
diff --git a/build_scripts/build_scripts.pyproject b/build_scripts/build_scripts.pyproject
index 4cc497bc7..77f1d0485 100644
--- a/build_scripts/build_scripts.pyproject
+++ b/build_scripts/build_scripts.pyproject
@@ -1,7 +1,8 @@
{
- "files": ["main.py", "__init__.py", "config.py", "options.py", "qtinfo.py",
- "setup_runner.py", "utils.py", "wheel_override.py",
- "versions.py", "wheel_utils.py",
+ "files": ["main.py", "__init__.py", "build_info_collector.py",
+ "config.py", "options.py", "qtinfo.py",
+ "setup_runner.py", "utils.py",
+ "wheel_files.py", "wheel_override.py", "wheel_utils.py",
"platforms/__init__.py", "platforms/linux.py",
"platforms/macos.py", "platforms/unix.py",
"platforms/windows_desktop.py",
diff --git a/build_scripts/config.py b/build_scripts/config.py
index 3686f4ff0..0a6eebf78 100644
--- a/build_scripts/config.py
+++ b/build_scripts/config.py
@@ -1,45 +1,12 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-import os
-import distutils.log as log
-from .versions import PYSIDE, PYSIDE_MODULE, SHIBOKEN
+# Copyright (C) 2018 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+import sys
+from .log import log, LogLevel
+from pathlib import Path
+
+from . import PYSIDE, PYSIDE_MODULE, SHIBOKEN
+from .utils import available_pyside_tools
class Config(object):
@@ -82,24 +49,36 @@ class Config(object):
self.shiboken_generator_st_name = f"{SHIBOKEN}-generator"
self.pyside_st_name = PYSIDE_MODULE
+ # Path to CMake toolchain file when intending to cross compile
+ # the project.
+ self.cmake_toolchain_file = None
+
+ # Store where host shiboken is built during a cross-build.
+ self.shiboken_host_query_path = None
+
# Used by check_allowed_python_version to validate the
# interpreter version.
self.python_version_classifiers = [
'Programming Language :: Python',
'Programming Language :: Python :: 3',
- 'Programming Language :: Python :: 3.6',
- 'Programming Language :: Python :: 3.7',
- 'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: 3.10',
+ 'Programming Language :: Python :: 3.11',
+ 'Programming Language :: Python :: 3.12',
]
self.setup_script_dir = None
- def init_config(self, build_type=None, internal_build_type=None,
- cmd_class_dict=None, package_version=None,
- ext_modules=None, setup_script_dir=None,
- quiet=False):
+ def init_config(self,
+ build_type=None,
+ internal_build_type=None,
+ cmd_class_dict=None,
+ package_version=None,
+ ext_modules=None,
+ setup_script_dir=None,
+ cmake_toolchain_file=None,
+ log_level=LogLevel.INFO,
+ qt_install_path: Path = None):
"""
Sets up the global singleton config which is used in many parts
of the setup process.
@@ -120,7 +99,9 @@ class Config(object):
else:
self.build_type = self._build_type_all
- self.setup_script_dir = setup_script_dir
+ self.setup_script_dir = Path(setup_script_dir)
+
+ self.cmake_toolchain_file = cmake_toolchain_file
setup_kwargs = {}
setup_kwargs['long_description'] = self.get_long_description()
@@ -134,10 +115,10 @@ class Config(object):
setup_kwargs['zip_safe'] = False
setup_kwargs['cmdclass'] = cmd_class_dict
setup_kwargs['version'] = package_version
- setup_kwargs['python_requires'] = ">=3.6, <3.10"
+ setup_kwargs['python_requires'] = ">=3.9, <3.13"
- if quiet:
- # Tells distutils / setuptools to be quiet, and only print warnings or errors.
+ if log_level == LogLevel.QUIET:
+ # Tells setuptools to be quiet, and only print warnings or errors.
# Makes way less noise in the terminal when building.
setup_kwargs['verbose'] = 0
@@ -201,7 +182,9 @@ class Config(object):
elif self.internal_build_type == self.shiboken_generator_option_name:
setup_kwargs['name'] = self.shiboken_generator_st_name
setup_kwargs['description'] = "Python / C++ bindings generator"
- setup_kwargs['install_requires'] = [f"{self.shiboken_module_st_name}=={package_version}"]
+ setup_kwargs['install_requires'] = [
+ f"{self.shiboken_module_st_name}=={package_version}"
+ ]
setup_kwargs['entry_points'] = {
'console_scripts': [
f'{SHIBOKEN} = {package_name}.scripts.shiboken_tool:main',
@@ -211,20 +194,27 @@ class Config(object):
elif self.internal_build_type == self.pyside_option_name:
setup_kwargs['name'] = self.pyside_st_name
- setup_kwargs['description'] = "Python bindings for the Qt cross-platform application and UI framework"
- setup_kwargs['install_requires'] = [f"{self.shiboken_module_st_name}=={package_version}"]
- setup_kwargs['entry_points'] = {
- 'console_scripts': [
- f'{PYSIDE}-uic = {package_name}.scripts.pyside_tool:uic',
- f'{PYSIDE}-rcc = {package_name}.scripts.pyside_tool:rcc',
- f'{PYSIDE}-assistant = {package_name}.scripts.pyside_tool:assistant',
- f'{PYSIDE}-designer= {package_name}.scripts.pyside_tool:designer',
- f'{PYSIDE}-linguist = {package_name}.scripts.pyside_tool:linguist',
- f'{PYSIDE}-lupdate = {package_name}.scripts.pyside_tool:lupdate',
- f'{PYSIDE}-lrelease = {package_name}.scripts.pyside_tool:lrelease',
- f'{PYSIDE}-genpyi = {package_name}.scripts.pyside_tool:genpyi',
- ]
- }
+ setup_kwargs['description'] = ("Python bindings for the Qt cross-platform application "
+ "and UI framework")
+ setup_kwargs['install_requires'] = [
+ f"{self.shiboken_module_st_name}=={package_version}"
+ ]
+ if qt_install_path:
+ _pyside_tools = available_pyside_tools(qt_tools_path=qt_install_path)
+
+ # replacing pyside6-android_deploy by pyside6-android-deploy for consistency
+ # Also, the tool should not exist in any other platform than Linux
+ _console_scripts = []
+ if ("android_deploy" in _pyside_tools) and sys.platform.startswith("linux"):
+ _console_scripts = [(f"{PYSIDE}-android-deploy ="
+ " PySide6.scripts.pyside_tool:android_deploy")]
+ _pyside_tools.remove("android_deploy")
+
+ _console_scripts.extend([f'{PYSIDE}-{tool} = {package_name}.scripts.pyside_tool:'
+ f'{tool}' for tool in _pyside_tools])
+
+ setup_kwargs['entry_points'] = {'console_scripts': _console_scripts}
+
self.setup_kwargs = setup_kwargs
def get_long_description(self):
@@ -241,7 +231,7 @@ class Config(object):
content = ''
changes = ''
try:
- with open(os.path.join(self.setup_script_dir, readme_filename)) as f:
+ with open(self.setup_script_dir / readme_filename) as f:
readme = f.read()
except Exception as e:
log.error(f"Couldn't read contents of {readme_filename}. {e}")
@@ -252,7 +242,7 @@ class Config(object):
include_changes = False
if include_changes:
try:
- with open(os.path.join(self.setup_script_dir, changes_filename)) as f:
+ with open(self.setup_script_dir / changes_filename) as f:
changes = f.read()
except Exception as e:
log.error(f"Couldn't read contents of {changes_filename}. {e}")
@@ -260,7 +250,7 @@ class Config(object):
content += readme
if changes:
- content += "\n\n" + changes
+ content += f"\n\n{changes}"
return content
@@ -364,6 +354,11 @@ class Config(object):
def is_top_level_build_pyside(self):
return self.build_type == self.pyside_option_name
+ def is_cross_compile(self):
+ if not self.cmake_toolchain_file:
+ return False
+ return True
+
def set_internal_build_type(self, internal_build_type):
self.internal_build_type = internal_build_type
diff --git a/build_scripts/log.py b/build_scripts/log.py
new file mode 100644
index 000000000..c9ccf3fb9
--- /dev/null
+++ b/build_scripts/log.py
@@ -0,0 +1,15 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+import logging
+
+from enum import Enum
+
+logging.basicConfig(format="[%(levelname)s]: %(message)s", level=logging.INFO)
+log = logging.getLogger("qtforpython")
+
+
+class LogLevel(Enum):
+ QUIET = 1
+ INFO = 2
+ VERBOSE = 3
diff --git a/build_scripts/main.py b/build_scripts/main.py
index 7239d328e..9a8d4fb3f 100644
--- a/build_scripts/main.py
+++ b/build_scripts/main.py
@@ -1,68 +1,60 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-from distutils.version import LooseVersion
+# Copyright (C) 2018 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+import importlib
import os
import platform
import re
import sys
-from textwrap import dedent
+import sysconfig
import time
-from .config import config
-from .utils import get_numpy_location, get_python_dict
-from .options import DistUtilsCommandMixin, OPTION
-from .versions import PYSIDE, PYSIDE_MODULE, SHIBOKEN
-from .wheel_utils import (get_package_version, get_qt_version,
- get_package_timestamp, macos_plat_name,
- macos_pyside_min_deployment_target)
+from packaging.version import parse as parse_version
+from pathlib import Path
+from shutil import copytree, rmtree
+from textwrap import dedent
+
+# PYSIDE-1760: Pre-load setuptools modules early to avoid racing conditions.
+# may be touched (should be avoided anyway, btw.)
+# Note: This bug is only visible when tools like pyenv are not used. They have some
+# pre-loading effect so that setuptools is already in the cache, hiding the problem.
+from setuptools import Command, Extension
+from setuptools.command.bdist_egg import bdist_egg as _bdist_egg
+from setuptools.command.build_ext import build_ext as _build_ext
+from setuptools.command.build_py import build_py as _build_py
+from setuptools.command.build import build as _build
+from setuptools.command.develop import develop as _develop
+from setuptools.command.install import install as _install
+from setuptools.command.install_lib import install_lib as _install_lib
+from setuptools.command.install_scripts import install_scripts # noqa: preload only
+
+from .log import log, LogLevel
+from setuptools.errors import SetupError
+from .build_info_collector import BuildInfoCollectorMixin
+from .config import config
+from .options import OPTION, CommandMixin
+from .platforms.unix import prepare_packages_posix
+from .platforms.windows_desktop import prepare_packages_win32
+from .qtinfo import QtInfo
+from .utils import (copydir, copyfile, detect_clang,
+ get_numpy_location, get_python_dict,
+ linux_fix_rpaths_for_library, macos_fix_rpaths_for_library,
+ platform_cmake_options, remove_tree, run_process,
+ run_process_output, update_env_path, which)
+from . import PYSIDE, PYSIDE_MODULE, SHIBOKEN
+from .wheel_override import get_bdist_wheel_override, wheel_module_exists
+from .wheel_utils import (get_package_timestamp, get_package_version,
+ macos_plat_name, macos_pyside_min_deployment_target)
-setup_script_dir = os.getcwd()
-build_scripts_dir = os.path.join(setup_script_dir, 'build_scripts')
-setup_py_path = os.path.join(setup_script_dir, "setup.py")
+setup_script_dir = Path.cwd()
+build_scripts_dir = setup_script_dir / 'build_scripts'
+setup_py_path = setup_script_dir / "setup.py"
-start_time = int(time.time())
+start_time = time.time()
def elapsed():
- return int(time.time()) - start_time
+ return int(time.time() - start_time)
def get_setuptools_extension_modules():
@@ -84,154 +76,46 @@ def _get_make(platform_arch, build_type):
if makespec == "make":
return ("make", "Unix Makefiles")
if makespec == "msvc":
- nmake_path = find_executable("nmake")
- if nmake_path is None or not os.path.exists(nmake_path):
- log.info("nmake not found. Trying to initialize the MSVC env...")
- init_msvc_env(platform_arch, build_type)
- nmake_path = find_executable("nmake")
- if not nmake_path or not os.path.exists(nmake_path):
- raise DistutilsSetupError('"nmake" could not be found.')
if not OPTION["NO_JOM"]:
- jom_path = find_executable("jom")
+ jom_path = Path(which("jom"))
if jom_path:
log.info(f"jom was found in {jom_path}")
return (jom_path, "NMake Makefiles JOM")
+ nmake_path = Path(which("nmake"))
+ if nmake_path is None or not nmake_path.exists():
+ raise SetupError("nmake not found")
log.info(f"nmake was found in {nmake_path}")
if OPTION["JOBS"]:
msg = "Option --jobs can only be used with 'jom' on Windows."
- raise DistutilsSetupError(msg)
+ raise SetupError(msg)
return (nmake_path, "NMake Makefiles")
if makespec == "mingw":
- return ("mingw32-make", "mingw32-make")
+ return (Path("mingw32-make"), "mingw32-make")
if makespec == "ninja":
- return ("ninja", "Ninja")
- raise DistutilsSetupError(f'Invalid option --make-spec "{makespec}".')
+ return (Path("ninja"), "Ninja")
+ raise SetupError(f'Invalid option --make-spec "{makespec}".')
def get_make(platform_arch, build_type):
"""Retrieve the make command and CMake generator name"""
(make_path, make_generator) = _get_make(platform_arch, build_type)
- if not os.path.isabs(make_path):
- found_path = find_executable(make_path)
- if not found_path or not os.path.exists(found_path):
- m = f"You need the program '{make_path}' on your system path to compile {PYSIDE_MODULE}."
- raise DistutilsSetupError(m)
+ if not make_path.is_absolute():
+ found_path = Path(which(make_path))
+ if not found_path or not found_path.exists():
+ m = (f"You need the program '{make_path}' on your system path to "
+ f"compile {PYSIDE_MODULE}.")
+ raise SetupError(m)
make_path = found_path
return (make_path, make_generator)
-def _get_py_library_win(build_type, py_version, py_prefix, py_libdir,
- py_include_dir):
- """Helper for finding the Python library on Windows"""
- if py_include_dir is None or not os.path.exists(py_include_dir):
- py_include_dir = os.path.join(py_prefix, "include")
- if py_libdir is None or not os.path.exists(py_libdir):
- # For virtual environments on Windows, the py_prefix will contain a
- # path pointing to it, instead of the system Python installation path.
- # Since INCLUDEPY contains a path to the system location, we use the
- # same base directory to define the py_libdir variable.
- py_libdir = os.path.join(os.path.dirname(py_include_dir), "libs")
- if not os.path.isdir(py_libdir):
- raise DistutilsSetupError("Failed to locate the 'libs' directory")
- dbg_postfix = "_d" if build_type == "Debug" else ""
- if OPTION["MAKESPEC"] == "mingw":
- static_lib_name = f"libpython{py_version.replace('.', '')}{dbg_postfix}.a"
- return os.path.join(py_libdir, static_lib_name)
- v = py_version.replace(".", "")
- python_lib_name = f"python{v}{dbg_postfix}.lib"
- return os.path.join(py_libdir, python_lib_name)
-
-
-def _get_py_library_unix(build_type, py_version, py_prefix, py_libdir,
- py_include_dir):
- """Helper for finding the Python library on UNIX"""
- if py_libdir is None or not os.path.exists(py_libdir):
- py_libdir = os.path.join(py_prefix, "lib")
- if py_include_dir is None or not os.path.exists(py_include_dir):
- dir = f"include/python{py_version}"
- py_include_dir = os.path.join(py_prefix, dir)
- dbg_postfix = "_d" if build_type == "Debug" else ""
- lib_exts = ['.so']
- if sys.platform == 'darwin':
- lib_exts.append('.dylib')
- lib_suff = getattr(sys, 'abiflags', None)
- lib_exts.append('.so.1')
- # Suffix for OpenSuSE 13.01
- lib_exts.append('.so.1.0')
- # static library as last gasp
- lib_exts.append('.a')
-
- libs_tried = []
- for lib_ext in lib_exts:
- lib_name = f"libpython{py_version}{lib_suff}{lib_ext}"
- py_library = os.path.join(py_libdir, lib_name)
- if os.path.exists(py_library):
- return py_library
- libs_tried.append(py_library)
-
- # Try to find shared libraries which have a multi arch
- # suffix.
- py_multiarch = get_config_var("MULTIARCH")
- if py_multiarch:
- try_py_libdir = os.path.join(py_libdir, py_multiarch)
- libs_tried = []
- for lib_ext in lib_exts:
- lib_name = f"libpython{py_version}{lib_suff}{lib_ext}"
- py_library = os.path.join(try_py_libdir, lib_name)
- if os.path.exists(py_library):
- return py_library
- libs_tried.append(py_library)
-
- raise DistutilsSetupError(f"Failed to locate the Python library with {', '.join(libs_tried)}")
-
-
-def get_py_library(build_type, py_version, py_prefix, py_libdir, py_include_dir):
- """Find the Python library"""
- if sys.platform == "win32":
- py_library = _get_py_library_win(build_type, py_version, py_prefix,
- py_libdir, py_include_dir)
- else:
- py_library = _get_py_library_unix(build_type, py_version, py_prefix,
- py_libdir, py_include_dir)
- if py_library.endswith('.a'):
- # Python was compiled as a static library
- log.error(f"Failed to locate a dynamic Python library, using {py_library}")
- return py_library
-
-
-import setuptools # Import setuptools before distutils
-from setuptools import Extension
-from setuptools.command.install import install as _install
-from setuptools.command.install_lib import install_lib as _install_lib
-from setuptools.command.bdist_egg import bdist_egg as _bdist_egg
-from setuptools.command.develop import develop as _develop
-from setuptools.command.build_py import build_py as _build_py
-
-import distutils.log as log
-from distutils.errors import DistutilsSetupError
-from distutils.sysconfig import get_config_var
-from distutils.sysconfig import get_python_lib
-from distutils.spawn import find_executable
-from distutils.command.build import build as _build
-from distutils.command.build_ext import build_ext as _build_ext
-from distutils.cmd import Command
-
-from .qtinfo import QtInfo
-from .utils import rmtree, detect_clang, copyfile, copydir, run_process_output, run_process
-from .utils import update_env_path, init_msvc_env, filter_match
-from .utils import macos_fix_rpaths_for_library
-from .utils import linux_fix_rpaths_for_library
-from .platforms.unix import prepare_packages_posix
-from .platforms.windows_desktop import prepare_packages_win32
-from .wheel_override import wheel_module_exists, get_bdist_wheel_override
-
+_allowed_versions_cache = None
-def check_allowed_python_version():
- """
- Make sure that setup.py is run with an allowed python version.
- """
- import re
+def get_allowed_python_versions():
+ global _allowed_versions_cache
+ if _allowed_versions_cache is not None:
+ return _allowed_versions_cache
pattern = r'Programming Language :: Python :: (\d+)\.(\d+)'
supported = []
@@ -241,6 +125,17 @@ def check_allowed_python_version():
major = int(found.group(1))
minor = int(found.group(2))
supported.append((major, minor))
+
+ _allowed_versions_cache = sorted(supported)
+ return _allowed_versions_cache
+
+
+def check_allowed_python_version():
+ """
+ Make sure that setup.py is run with an allowed python version.
+ """
+
+ supported = get_allowed_python_versions()
this_py = sys.version_info[:2]
if this_py not in supported:
log.error(f"Unsupported python version detected. Supported versions: {supported}")
@@ -250,76 +145,7 @@ def check_allowed_python_version():
qt_src_dir = ''
-def is_debug_python():
- return getattr(sys, "gettotalrefcount", None) is not None
-
-
-# Return a prefix suitable for the _install/_build directory
-def prefix():
- virtual_env_name = os.environ.get('VIRTUAL_ENV', None)
- if virtual_env_name is not None:
- name = os.path.basename(virtual_env_name)
- else:
- name = "pyside"
- name += str(sys.version_info[0])
- if OPTION["DEBUG"]:
- name += "d"
- if is_debug_python():
- name += "p"
- if OPTION["LIMITED_API"] == "yes":
- name += "a"
- return name
-
-
-# Initialize, pull and checkout submodules
-def prepare_sub_modules():
- v = get_package_version()
- print(f"Initializing submodules for {PYSIDE_MODULE} version: {v}")
- submodules_dir = os.path.join(setup_script_dir, "sources")
-
- # Create list of [name, desired branch, absolute path, desired
- # branch] and determine whether all submodules are present
- need_init_sub_modules = False
-
- for m in submodules:
- module_name = m[0]
- module_dir = m[1] if len(m) > 1 else ''
- module_dir = os.path.join(submodules_dir, module_dir, module_name)
- # Check for non-empty directory (repository checked out)
- if not os.listdir(module_dir):
- need_init_sub_modules = True
- break
-
- if need_init_sub_modules:
- git_update_cmd = ["git", "submodule", "update", "--init"]
- if run_process(git_update_cmd) != 0:
- m = "Failed to initialize the git submodules: update --init failed"
- raise DistutilsSetupError(m)
- git_pull_cmd = ["git", "submodule", "foreach", "git", "fetch", "--all"]
- if run_process(git_pull_cmd) != 0:
- m = "Failed to initialize the git submodules: git fetch --all failed"
- raise DistutilsSetupError(m)
- else:
- print("All submodules present.")
-
- git_update_cmd = ["git", "submodule", "update"]
- if run_process(git_update_cmd) != 0:
- m = "Failed to checkout the correct git submodules SHA1s."
- raise DistutilsSetupError(m)
-
-
def prepare_build():
- # Clean up temp build folder.
- for n in ["build"]:
- d = os.path.join(setup_script_dir, n)
- if os.path.isdir(d):
- log.info(f"Removing {d}")
- try:
- rmtree(d)
- except Exception as e:
- log.warn(f'***** problem removing "{d}"')
- log.warn(f'ignored error: {e}')
-
# locate Qt sources for the documentation
if OPTION["QT_SRC"] is None:
install_prefix = QtInfo().prefix_dir
@@ -329,38 +155,44 @@ def prepare_build():
if install_prefix.endswith("qtbase"):
qt_src_dir = install_prefix
else: # SDK: Use 'Src' directory
- qt_src_dir = os.path.join(os.path.dirname(install_prefix), 'Src', 'qtbase')
+ maybe_qt_src_dir = Path(install_prefix).parent / 'Src' / 'qtbase'
+ if maybe_qt_src_dir.exists():
+ qt_src_dir = maybe_qt_src_dir
-class PysideInstall(_install, DistUtilsCommandMixin):
+class PysideInstall(_install, CommandMixin):
- user_options = _install.user_options + DistUtilsCommandMixin.mixin_user_options
+ user_options = _install.user_options + CommandMixin.mixin_user_options
def __init__(self, *args, **kwargs):
+ self.command_name = "install"
_install.__init__(self, *args, **kwargs)
- DistUtilsCommandMixin.__init__(self)
+ CommandMixin.__init__(self)
def initialize_options(self):
_install.initialize_options(self)
- if sys.platform == 'darwin':
+ def finalize_options(self):
+ CommandMixin.mixin_finalize_options(self)
+ _install.finalize_options(self)
+
+ if sys.platform == 'darwin' or self.is_cross_compile:
# Because we change the plat_name to include a correct
- # deployment target on macOS distutils thinks we are
+ # deployment target on macOS setuptools thinks we are
# cross-compiling, and throws an exception when trying to
# execute setup.py install. The check looks like this
# if self.warn_dir and build_plat != get_platform():
- # raise DistutilsPlatformError("Can't install when "
- # "cross-compiling")
+ # raise PlatformError("Can't install when "
+ # "cross-compiling")
# Obviously get_platform will return the old deployment
# target. The fix is to disable the warn_dir flag, which
# was created for bdist_* derived classes to override, for
# similar cases.
+ # We also do it when cross-compiling. While calling install
+ # command directly is dubious, bdist_wheel calls install
+ # internally before creating a wheel.
self.warn_dir = False
- def finalize_options(self):
- DistUtilsCommandMixin.mixin_finalize_options(self)
- _install.finalize_options(self)
-
def run(self):
_install.run(self)
log.info(f"--- Install completed ({elapsed()}s)")
@@ -398,11 +230,12 @@ class PysideBuildExt(_build_ext):
class PysideBuildPy(_build_py):
def __init__(self, *args, **kwargs):
+ self.command_name = "build_py"
_build_py.__init__(self, *args, **kwargs)
# _install_lib is reimplemented to preserve
-# symlinks when distutils / setuptools copy files to various
+# symlinks when setuptools copy files to various
# directories from the setup tools build dir to the install dir.
class PysideInstallLib(_install_lib):
@@ -411,34 +244,45 @@ class PysideInstallLib(_install_lib):
def install(self):
"""
- Installs files from build/xxx directory into final
- site-packages/PySide6 directory.
+ Installs files from self.build_dir directory into final
+ site-packages/PySide6 directory when the command is 'install'
+ or into build/wheel when command is 'bdist_wheel'.
"""
- if os.path.isdir(self.build_dir):
+ if self.build_dir.is_dir():
# Using our own copydir makes sure to preserve symlinks.
- outfiles = copydir(os.path.abspath(self.build_dir), os.path.abspath(self.install_dir))
+ outfiles = copydir(Path(self.build_dir).resolve(), Path(self.install_dir).resolve())
else:
self.warn(f"'{self.build_dir}' does not exist -- no Python modules to install")
return
return outfiles
-class PysideBuild(_build, DistUtilsCommandMixin):
+class PysideBuild(_build, CommandMixin, BuildInfoCollectorMixin):
- user_options = _build.user_options + DistUtilsCommandMixin.mixin_user_options
+ user_options = _build.user_options + CommandMixin.mixin_user_options
def __init__(self, *args, **kwargs):
+ self.command_name = "build"
_build.__init__(self, *args, **kwargs)
- DistUtilsCommandMixin.__init__(self)
+ CommandMixin.__init__(self)
+ BuildInfoCollectorMixin.__init__(self)
def finalize_options(self):
os_name_backup = os.name
- DistUtilsCommandMixin.mixin_finalize_options(self)
- if sys.platform == 'darwin':
+ CommandMixin.mixin_finalize_options(self)
+ BuildInfoCollectorMixin.collect_and_assign(self)
+
+ use_os_name_hack = False
+ if self.is_cross_compile:
+ use_os_name_hack = True
+ elif sys.platform == 'darwin':
self.plat_name = macos_plat_name()
+ use_os_name_hack = True
+
+ if use_os_name_hack:
# This is a hack to circumvent the dubious check in
- # distutils.commands.build -> finalize_options, which only
+ # setuptool.commands.build -> finalize_options, which only
# allows setting the plat_name for windows NT.
# That is not the case for the wheel module though (which
# does allow setting plat_name), so we circumvent by faking
@@ -448,7 +292,10 @@ class PysideBuild(_build, DistUtilsCommandMixin):
_build.finalize_options(self)
- if sys.platform == 'darwin':
+ # Must come after _build.finalize_options
+ BuildInfoCollectorMixin.post_collect_and_assign(self)
+
+ if use_os_name_hack:
os.name = os_name_backup
def initialize_options(self):
@@ -467,110 +314,76 @@ class PysideBuild(_build, DistUtilsCommandMixin):
self.build_type = "Release"
self.qtinfo = None
self.build_tests = False
+ self.python_target_info = {}
def run(self):
prepare_build()
- platform_arch = platform.architecture()[0]
- log.info(f"Python architecture is {platform_arch}")
- self.py_arch = platform_arch[:-3]
-
- build_type = "Debug" if OPTION["DEBUG"] else "Release"
- if OPTION["RELWITHDEBINFO"]:
- build_type = 'RelWithDebInfo'
# Check env
make_path = None
make_generator = None
if not OPTION["ONLYPACKAGE"]:
- (make_path, make_generator) = get_make(platform_arch, build_type)
-
- # Prepare parameters
- py_executable = sys.executable
- py_version = f"{sys.version_info[0]}.{sys.version_info[1]}"
- py_include_dir = get_config_var("INCLUDEPY")
- py_libdir = get_config_var("LIBDIR")
- py_prefix = get_config_var("prefix")
- if not py_prefix or not os.path.exists(py_prefix):
- py_prefix = sys.prefix
- self.py_prefix = py_prefix
- if sys.platform == "win32":
- py_scripts_dir = os.path.join(py_prefix, "Scripts")
- else:
- py_scripts_dir = os.path.join(py_prefix, "bin")
- self.py_scripts_dir = py_scripts_dir
+ platform_arch = platform.architecture()[0]
+ (make_path, make_generator) = get_make(platform_arch, self.build_type)
self.qtinfo = QtInfo()
- qt_dir = os.path.dirname(OPTION["QTPATHS"])
- if OPTION['HAS_QMAKE_OPTION']:
- qt_dir = os.path.dirname(OPTION["QMAKE"])
- qt_version = get_qt_version()
-
# Update the PATH environment variable
- additional_paths = [self.py_scripts_dir, qt_dir]
+ # Don't add Qt to PATH env var, we don't want it to interfere
+ # with CMake's find_package calls which will use
+ # CMAKE_PREFIX_PATH.
+ # Don't add the Python scripts dir to PATH env when
+ # cross-compiling, it could be in the device sysroot (/usr)
+ # which can cause CMake device QtFooToolsConfig packages to be
+ # picked up instead of host QtFooToolsConfig packages.
+ additional_paths = []
+ if self.py_scripts_dir and not self.is_cross_compile:
+ additional_paths.append(self.py_scripts_dir)
# Add Clang to path for Windows.
# Revisit once Clang is bundled with Qt.
if (sys.platform == "win32"
- and LooseVersion(self.qtinfo.version) >= LooseVersion("5.7.0")):
- clang_dir = detect_clang()
- if clang_dir[0]:
- clangBinDir = os.path.join(clang_dir[0], 'bin')
- if clangBinDir not in os.environ.get('PATH'):
- log.info(f"Adding {clangBinDir} as detected by {clang_dir[1]} to PATH")
+ and parse_version(self.qtinfo.version) >= parse_version("5.7.0")):
+ clang_dir, clang_source = detect_clang()
+ if clang_dir:
+ clangBinDir = clang_dir / 'bin'
+ if str(clangBinDir) not in os.environ.get('PATH'):
+ log.info(f"Adding {clangBinDir} as detected by {clang_source} to PATH")
additional_paths.append(clangBinDir)
else:
- raise DistutilsSetupError("Failed to detect Clang when checking "
- "LLVM_INSTALL_DIR, CLANG_INSTALL_DIR, llvm-config")
+ raise SetupError("Failed to detect Clang when checking "
+ "LLVM_INSTALL_DIR, CLANG_INSTALL_DIR, llvm-config")
update_env_path(additional_paths)
- # Used for test blacklists and registry test.
- self.build_classifiers = (f"py{py_version}-qt{qt_version}-{platform.architecture()[0]}-"
- f"{build_type.lower()}")
-
- if OPTION["SHORTER_PATHS"]:
- build_name = f"p{py_version}"
- else:
- build_name = self.build_classifiers
-
- script_dir = setup_script_dir
- sources_dir = os.path.join(script_dir, "sources")
- build_dir = os.path.join(script_dir, f"{prefix()}_build", f"{build_name}")
- install_dir = os.path.join(script_dir, f"{prefix()}_install", f"{build_name}")
-
self.make_path = make_path
self.make_generator = make_generator
- self.script_dir = script_dir
- self.st_build_dir = os.path.join(self.script_dir, self.build_lib)
- self.sources_dir = sources_dir
- self.build_dir = build_dir
- self.install_dir = install_dir
- self.py_executable = py_executable
- self.py_include_dir = py_include_dir
- self.py_library = get_py_library(build_type, py_version, py_prefix,
- py_libdir, py_include_dir)
- self.py_version = py_version
- self.build_type = build_type
- self.site_packages_dir = get_python_lib(1, 0, prefix=install_dir)
+
self.build_tests = OPTION["BUILDTESTS"]
# Save the shiboken build dir path for clang deployment
# purposes.
- self.shiboken_build_dir = os.path.join(self.build_dir, SHIBOKEN)
+ self.shiboken_build_dir = self.build_dir / SHIBOKEN
self.log_pre_build_info()
# Prepare folders
- if not os.path.exists(self.sources_dir):
+ if not self.sources_dir.exists():
log.info(f"Creating sources folder {self.sources_dir}...")
os.makedirs(self.sources_dir)
- if not os.path.exists(self.build_dir):
+ if not self.build_dir.exists():
log.info(f"Creating build folder {self.build_dir}...")
os.makedirs(self.build_dir)
- if not os.path.exists(self.install_dir):
+ if not self.install_dir.exists():
log.info(f"Creating install folder {self.install_dir}...")
os.makedirs(self.install_dir)
+ # Write the CMake install path into a file. Is used by
+ # SetupRunner to provide a nicer UX when cross-compiling (no
+ # need to specify a host shiboken path explicitly)
+ if self.internal_cmake_install_dir_query_file_path:
+ with open(self.internal_cmake_install_dir_query_file_path, 'w') as f:
+ f.write(os.fspath(self.install_dir))
+
if (not OPTION["ONLYPACKAGE"]
and not config.is_internal_shiboken_generator_build_and_part_of_top_level_all()):
# Build extensions
@@ -581,12 +394,12 @@ class PysideBuild(_build, DistUtilsCommandMixin):
# we record the latest successful build and note the
# build directory for supporting the tests.
timestamp = time.strftime('%Y-%m-%d_%H%M%S')
- build_history = os.path.join(setup_script_dir, 'build_history')
- unique_dir = os.path.join(build_history, timestamp)
- os.makedirs(unique_dir)
- fpath = os.path.join(unique_dir, 'build_dir.txt')
+ build_history = setup_script_dir / 'build_history'
+ unique_dir = build_history / timestamp
+ unique_dir.mkdir(parents=True)
+ fpath = unique_dir / 'build_dir.txt'
with open(fpath, 'w') as f:
- print(build_dir, file=f)
+ print(self.build_dir, file=f)
print(self.build_classifiers, file=f)
log.info(f"Created {build_history}")
@@ -599,6 +412,42 @@ class PysideBuild(_build, DistUtilsCommandMixin):
# Build packages
_build.run(self)
+
+ # Keep packaged directories for wheel construction
+ # This is to take advantage of the packaging step
+ # to keep the data in the proper structure to create
+ # a wheel.
+ _path = Path(self.st_build_dir)
+ _wheel_path = _path.parent / "package_for_wheels"
+
+ _project = None
+
+ if config.is_internal_shiboken_module_build():
+ _project = "shiboken6"
+ elif config.is_internal_shiboken_generator_build():
+ _project = "shiboken6_generator"
+ elif config.is_internal_pyside_build():
+ _project = "PySide6"
+
+ if _project is not None:
+ if not _wheel_path.exists():
+ _wheel_path.mkdir(parents=True)
+ _src = Path(_path / _project)
+ _dst = Path(_wheel_path / _project)
+ # Remove the directory in case it exists.
+ # This applies to 'shiboken6', 'shiboken6_generator',
+ # and 'pyside6' inside the 'package_for_wheels' directory.
+ if _dst.exists():
+ log.warning(f'Found directory "{_dst}", removing it first.')
+ remove_tree(_dst)
+
+ try:
+ # This should be copied because the package directory
+ # is used when using the 'install' setup.py instruction.
+ copytree(_src, _dst)
+ except Exception as e:
+ log.warning(f'problem renaming "{self.st_build_dir}"')
+ log.warning(f'ignored error: {type(e).__name__}: {e}')
else:
log.info("Skipped preparing and building packages.")
log.info(f"--- Build completed ({elapsed()}s)")
@@ -607,7 +456,7 @@ class PysideBuild(_build, DistUtilsCommandMixin):
if config.is_internal_shiboken_generator_build_and_part_of_top_level_all():
return
- setuptools_install_prefix = get_python_lib(1)
+ setuptools_install_prefix = sysconfig.get_paths()["purelib"]
if OPTION["FINAL_INSTALL_PREFIX"]:
setuptools_install_prefix = OPTION["FINAL_INSTALL_PREFIX"]
log.info("=" * 30)
@@ -625,14 +474,14 @@ class PysideBuild(_build, DistUtilsCommandMixin):
log.info(dedent(f"""
Building {config.package_name()} will create and touch directories
in the following order:
- make build directory (py*_build/*/*) ->
- make install directory (py*_install/*/*) ->
- setuptools build directory (build/*/*) ->
+ make build directory ->
+ make install directory ->
+ setuptools build directory ->
setuptools install directory
(usually path-installed-python/lib/python*/site-packages/*)
"""))
- log.info(f"make build directory: {self.build_dir}")
- log.info(f"make install directory: {self.install_dir}")
+ log.info(f"make build directory: {self.build_dir}")
+ log.info(f"make install directory: {self.install_dir}")
log.info(f"setuptools build directory: {self.st_build_dir}")
log.info(f"setuptools install directory: {setuptools_install_prefix}")
log.info(dedent(f"""
@@ -646,8 +495,12 @@ class PysideBuild(_build, DistUtilsCommandMixin):
log.info(f"Python library: {self.py_library}")
log.info(f"Python prefix: {self.py_prefix}")
log.info(f"Python scripts: {self.py_scripts_dir}")
+ log.info(f"Python arch: {self.py_arch}")
+
log.info("-" * 3)
+ log.info(f"Qt prefix: {self.qtinfo.prefix_dir}")
log.info(f"Qt qmake: {self.qtinfo.qmake_command}")
+ log.info(f"Qt qtpaths: {self.qtinfo.qtpaths_command}")
log.info(f"Qt version: {self.qtinfo.version}")
log.info(f"Qt bins: {self.qtinfo.bins_dir}")
log.info(f"Qt docs: {self.qtinfo.docs_dir}")
@@ -663,18 +516,26 @@ class PysideBuild(_build, DistUtilsCommandMixin):
def build_patchelf(self):
if not sys.platform.startswith('linux'):
return
- self._patchelf_path = find_executable('patchelf')
+ self._patchelf_path = which('patchelf')
if self._patchelf_path:
- if not os.path.isabs(self._patchelf_path):
- self._patchelf_path = os.path.join(os.getcwd(), self._patchelf_path)
+ self._patchelf_path = Path(self._patchelf_path)
+ if not self._patchelf_path.is_absolute():
+ self._patchelf_path = Path.cwd() / self._patchelf_path
log.info(f"Using {self._patchelf_path} ...")
return
- log.info("Building patchelf...")
- module_src_dir = os.path.join(self.sources_dir, "patchelf")
- build_cmd = ["g++", f"{module_src_dir}/patchelf.cc", "-o", "patchelf"]
- if run_process(build_cmd) != 0:
- raise DistutilsSetupError("Error building patchelf")
- self._patchelf_path = os.path.join(self.script_dir, "patchelf")
+ else:
+ raise SetupError("patchelf not found")
+
+ def _enable_numpy(self):
+ if OPTION["ENABLE_NUMPY_SUPPORT"] or OPTION["PYSIDE_NUMPY_SUPPORT"]:
+ return True
+ if OPTION["DISABLE_NUMPY_SUPPORT"]:
+ return False
+ if self.is_cross_compile: # Do not search header in host Python
+ return False
+ # Debug builds require numpy to be built in debug mode on Windows
+ # https://numpy.org/devdocs/user/troubleshooting-importerror.html
+ return sys.platform != 'win32' or self.build_type.lower() != 'debug'
def build_extension(self, extension):
# calculate the subrepos folder name
@@ -683,40 +544,48 @@ class PysideBuild(_build, DistUtilsCommandMixin):
# Prepare folders
os.chdir(self.build_dir)
- module_build_dir = os.path.join(self.build_dir, extension)
- skipflag_file = f"{module_build_dir} -skip"
- if os.path.exists(skipflag_file):
+ module_build_dir = self.build_dir / extension
+ skipflag_file = Path(f"{module_build_dir}-skip")
+ if skipflag_file.exists():
log.info(f"Skipping {extension} because {skipflag_file} exists")
return
- module_build_exists = os.path.exists(module_build_dir)
+ module_build_exists = module_build_dir.exists()
if module_build_exists:
if not OPTION["REUSE_BUILD"]:
log.info(f"Deleting module build folder {module_build_dir}...")
try:
- rmtree(module_build_dir)
+ remove_tree(module_build_dir)
except Exception as e:
log.error(f'***** problem removing "{module_build_dir}"')
log.error(f'ignored error: {e}')
else:
log.info(f"Reusing module build folder {module_build_dir}...")
- if not os.path.exists(module_build_dir):
+ if not module_build_dir.exists():
log.info(f"Creating module build folder {module_build_dir}...")
os.makedirs(module_build_dir)
os.chdir(module_build_dir)
- module_src_dir = os.path.join(self.sources_dir, extension)
+ module_src_dir = self.sources_dir / extension
# Build module
- cmake_cmd = [OPTION["CMAKE"]]
- if OPTION["QUIET"]:
+ cmake_cmd = [str(OPTION["CMAKE"])]
+ cmake_quiet_build = 1
+ cmake_rule_messages = 0
+ if OPTION["LOG_LEVEL"] == LogLevel.VERBOSE:
# Pass a special custom option, to allow printing a lot less information when doing
# a quiet build.
- cmake_cmd.append('-DQUIET_BUILD=1')
+ cmake_quiet_build = 0
if self.make_generator == "Unix Makefiles":
# Hide progress messages for each built source file.
# Doesn't seem to work if set within the cmake files themselves.
- cmake_cmd.append('-DCMAKE_RULE_MESSAGES=0')
+ cmake_rule_messages = 1
+
+ if OPTION["UNITY"]:
+ cmake_cmd.append("-DCMAKE_UNITY_BUILD=ON")
+ batch_size = OPTION["UNITY_BUILD_BATCH_SIZE"]
+ cmake_cmd.append(f"-DCMAKE_UNITY_BUILD_BATCH_SIZE={batch_size}")
+ log.info("Using UNITY build")
cmake_cmd += [
"-G", self.make_generator,
@@ -724,21 +593,38 @@ class PysideBuild(_build, DistUtilsCommandMixin):
f"-DQt5Help_DIR={self.qtinfo.docs_dir}",
f"-DCMAKE_BUILD_TYPE={self.build_type}",
f"-DCMAKE_INSTALL_PREFIX={self.install_dir}",
- module_src_dir
+ # Record the minimum/maximum Python version for later use in Shiboken.__init__
+ f"-DMINIMUM_PYTHON_VERSION={get_allowed_python_versions()[0]}",
+ f"-DMAXIMUM_PYTHON_VERSION={get_allowed_python_versions()[-1]}",
+ f"-DQUIET_BUILD={cmake_quiet_build}",
+ f"-DCMAKE_RULE_MESSAGES={cmake_rule_messages}",
+ str(module_src_dir)
]
- cmake_cmd.append(f"-DPYTHON_EXECUTABLE={self.py_executable}")
- cmake_cmd.append(f"-DPYTHON_INCLUDE_DIR={self.py_include_dir}")
- cmake_cmd.append(f"-DPYTHON_LIBRARY={self.py_library}")
+
+ # When cross-compiling we set Python_ROOT_DIR to tell
+ # FindPython.cmake where to pick up the device python libs.
+ if self.is_cross_compile:
+ if self.python_target_path:
+ cmake_cmd.append(f"-DPython_ROOT_DIR={self.python_target_path}")
+
+ # Host python is needed when cross compiling to run
+ # embedding_generator.py. Pass it as a separate option.
+ cmake_cmd.append(f"-DQFP_PYTHON_HOST_PATH={sys.executable}")
+ else:
+ cmake_cmd.append(f"-DPython_EXECUTABLE={self.py_executable}")
+ cmake_cmd.append(f"-DPython_INCLUDE_DIR={self.py_include_dir}")
+ cmake_cmd.append(f"-DPython_LIBRARY={self.py_library}")
# If a custom shiboken cmake config directory path was provided, pass it to CMake.
if OPTION["SHIBOKEN_CONFIG_DIR"] and config.is_internal_pyside_build():
config_dir = OPTION["SHIBOKEN_CONFIG_DIR"]
- if os.path.exists(config_dir):
+ if config_dir.exists():
log.info(f"Using custom provided {SHIBOKEN} installation: {config_dir}")
cmake_cmd.append(f"-DShiboken6_DIR={config_dir}")
else:
- log.info(f"Custom provided {SHIBOKEN} installation not found. Path given: {config_dir}")
+ log.info(f"Custom provided {SHIBOKEN} installation not found. "
+ f"Path given: {config_dir}")
if OPTION["MODULE_SUBSET"]:
module_sub_set = ''
@@ -749,6 +635,7 @@ class PysideBuild(_build, DistUtilsCommandMixin):
module_sub_set += ';'
module_sub_set += m
cmake_cmd.append(f"-DMODULES={module_sub_set}")
+
if OPTION["SKIP_MODULES"]:
skip_modules = ''
for m in OPTION["SKIP_MODULES"].split(','):
@@ -760,35 +647,63 @@ class PysideBuild(_build, DistUtilsCommandMixin):
cmake_cmd.append(f"-DSKIP_MODULES={skip_modules}")
# Add source location for generating documentation
cmake_src_dir = OPTION["QT_SRC"] if OPTION["QT_SRC"] else qt_src_dir
- cmake_cmd.append(f"-DQT_SRC_DIR={cmake_src_dir}")
+ if cmake_src_dir:
+ cmake_cmd.append(f"-DQT_SRC_DIR={cmake_src_dir}")
if OPTION['NO_QT_TOOLS']:
cmake_cmd.append("-DNO_QT_TOOLS=yes")
if OPTION['SKIP_DOCS']:
- cmake_cmd.append("-DSKIP_DOCS=yes")
+ log.info("Warning: '--skip-docs' is deprecated and will be removed. "
+ "The documentation is not built by default")
+ if OPTION['BUILD_DOCS']:
+ cmake_cmd.append("-DBUILD_DOCS=yes")
log.info(f"Qt Source dir: {cmake_src_dir}")
+ # Use Legacy OpenGL to avoid issues on systems like Ubuntu 20.04
+ # which require to manually install the libraries which
+ # were previously linked to the QtGui module in 6.1
+ # https://bugreports.qt.io/browse/QTBUG-89754
+ cmake_cmd.append("-DOpenGL_GL_PREFERENCE=LEGACY")
+
if OPTION['AVOID_PROTECTED_HACK']:
cmake_cmd.append("-DAVOID_PROTECTED_HACK=1")
- numpy = get_numpy_location()
- if numpy:
- cmake_cmd.append(f"-DNUMPY_INCLUDE_DIR={numpy}")
+ if self._enable_numpy():
+ numpy = get_numpy_location()
+ if numpy:
+ cmake_cmd.append(f"-DNUMPY_INCLUDE_DIR={numpy}")
+ else:
+ log.warning('numpy include directory was not found.')
- if self.build_type.lower() == 'debug':
- cmake_cmd.append(f"-DPYTHON_DEBUG_LIBRARY={self.py_library}")
+ if self.build_type.lower() != 'debug':
+ if OPTION['NO_STRIP']:
+ cmake_cmd.append("-DQFP_NO_STRIP=1")
+ if OPTION['NO_OVERRIDE_OPTIMIZATION_FLAGS']:
+ cmake_cmd.append("-DQFP_NO_OVERRIDE_OPTIMIZATION_FLAGS=1")
if OPTION["LIMITED_API"] == "yes":
cmake_cmd.append("-DFORCE_LIMITED_API=yes")
elif OPTION["LIMITED_API"] == "no":
cmake_cmd.append("-DFORCE_LIMITED_API=no")
elif not OPTION["LIMITED_API"]:
- pass
+ if sys.platform == 'win32' and self.debug:
+ cmake_cmd.append("-DFORCE_LIMITED_API=no")
else:
- raise DistutilsSetupError("option limited-api must be 'yes' or 'no' "
- "(default yes if applicable, i.e. python version >= 3.6)")
+ raise SetupError("option limited-api must be 'yes' or 'no' "
+ "(default yes if applicable, i.e. Python "
+ "version >= 3.9 and release build if on Windows)")
+
+ if OPTION["DISABLE_PYI"]:
+ cmake_cmd.append("-DDISABLE_PYI=yes")
- if OPTION["VERBOSE_BUILD"]:
+ if OPTION["LOG_LEVEL"] == LogLevel.VERBOSE:
cmake_cmd.append("-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON")
+ else:
+ cmake_cmd.append("-DCMAKE_VERBOSE_MAKEFILE:BOOL=OFF")
+
+ if OPTION['COMPILER_LAUNCHER']:
+ compiler_launcher = OPTION['COMPILER_LAUNCHER']
+ cmake_cmd.append(f"-DCMAKE_C_COMPILER_LAUNCHER={compiler_launcher}")
+ cmake_cmd.append(f"-DCMAKE_CXX_COMPILER_LAUNCHER={compiler_launcher}")
if OPTION["SANITIZE_ADDRESS"]:
# Some simple sanity checking. Only use at your own risk.
@@ -796,7 +711,7 @@ class PysideBuild(_build, DistUtilsCommandMixin):
or sys.platform.startswith('darwin')):
cmake_cmd.append("-DSANITIZE_ADDRESS=ON")
else:
- raise DistutilsSetupError("Address sanitizer can only be used on Linux and macOS.")
+ raise SetupError("Address sanitizer can only be used on Linux and macOS.")
if extension.lower() == PYSIDE:
pyside_qt_conf_prefix = ''
@@ -809,6 +724,9 @@ class PysideBuild(_build, DistUtilsCommandMixin):
pyside_qt_conf_prefix = '"."'
cmake_cmd.append(f"-DPYSIDE_QT_CONF_PREFIX={pyside_qt_conf_prefix}")
+ if OPTION["STANDALONE"]:
+ cmake_cmd.append("-DSTANDALONE:BOOL=ON")
+
# Pass package version to CMake, so this string can be
# embedded into _config.py file.
package_version = get_package_version()
@@ -823,8 +741,9 @@ class PysideBuild(_build, DistUtilsCommandMixin):
cmake_cmd.append(f"-DPACKAGE_SETUP_PY_PACKAGE_TIMESTAMP={timestamp}")
if extension.lower() in [SHIBOKEN]:
- cmake_cmd.append("-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=yes")
- cmake_cmd.append("-DUSE_PYTHON_VERSION=3.6")
+ cmake_cmd.append("-DUSE_PYTHON_VERSION=3.9")
+
+ cmake_cmd += platform_cmake_options()
if sys.platform == 'darwin':
if OPTION["MACOS_ARCH"]:
@@ -853,7 +772,7 @@ class PysideBuild(_build, DistUtilsCommandMixin):
# Set macOS minimum deployment target (version).
# This is required so that calling
- # run_process -> distutils.spawn()
+ # run_process -> subprocess.call()
# does not set its own minimum deployment target
# environment variable which is based on the python
# interpreter sysconfig value.
@@ -862,13 +781,9 @@ class PysideBuild(_build, DistUtilsCommandMixin):
deployment_target = macos_pyside_min_deployment_target()
cmake_cmd.append(f"-DCMAKE_OSX_DEPLOYMENT_TARGET={deployment_target}")
os.environ['MACOSX_DEPLOYMENT_TARGET'] = deployment_target
- elif sys.platform == 'win32':
- # Prevent cmake from auto-detecting clang if it is in path.
- cmake_cmd.append("-DCMAKE_C_COMPILER=cl.exe")
- cmake_cmd.append("-DCMAKE_CXX_COMPILER=cl.exe")
- if not OPTION["SKIP_DOCS"]:
- # Build the whole documentation (rst + API) by default
+ if OPTION["BUILD_DOCS"]:
+ # Build the whole documentation (Base + API) by default
cmake_cmd.append("-DFULLDOCSBUILD=1")
if OPTION["DOC_BUILD_ONLINE"]:
@@ -878,24 +793,54 @@ class PysideBuild(_build, DistUtilsCommandMixin):
log.info("Output format will be qthelp")
cmake_cmd.append("-DDOC_OUTPUT_FORMAT=qthelp")
else:
- cmake_cmd.append("-DSKIP_DOCS=1")
+ cmake_cmd.append("-DBUILD_DOCS=no")
+ if OPTION["DOC_BUILD_ONLINE"]:
+ log.info("Warning: Documentation build is disabled, "
+ "however --doc-build-online was passed. "
+ "Use '--build-docs' to enable the documentation build")
if OPTION["PYSIDE_NUMPY_SUPPORT"]:
- cmake_cmd.append("-DPYSIDE_NUMPY_SUPPORT=1")
+ log.info("Warning: '--pyside-numpy-support' is deprecated and will be removed. "
+ "Use --enable-numpy-support/--disable-numpy-support.")
+
+ target_qt_prefix_path = self.qtinfo.prefix_dir
+ cmake_cmd.append(f"-DQFP_QT_TARGET_PATH={target_qt_prefix_path}")
+ if self.qt_host_path:
+ cmake_cmd.append(f"-DQFP_QT_HOST_PATH={self.qt_host_path}")
+
+ if self.is_cross_compile and (not OPTION["SHIBOKEN_HOST_PATH"]
+ or not Path(OPTION["SHIBOKEN_HOST_PATH"]).exists()):
+ raise SetupError("Please specify the location of host shiboken tools via "
+ "--shiboken-host-path=")
+
+ if self.shiboken_host_path:
+ cmake_cmd.append(f"-DQFP_SHIBOKEN_HOST_PATH={self.shiboken_host_path}")
+
+ if self.shiboken_target_path:
+ cmake_cmd.append(f"-DQFP_SHIBOKEN_TARGET_PATH={self.shiboken_target_path}")
+ elif self.cmake_toolchain_file and not extension.lower() == SHIBOKEN:
+ # Need to tell where to find target shiboken when
+ # cross-compiling pyside.
+ cmake_cmd.append(f"-DQFP_SHIBOKEN_TARGET_PATH={self.install_dir}")
+
+ if self.cmake_toolchain_file:
+ cmake_cmd.append(f"-DCMAKE_TOOLCHAIN_FILE={self.cmake_toolchain_file}")
if not OPTION["SKIP_CMAKE"]:
log.info(f"Configuring module {extension} ({module_src_dir})...")
if run_process(cmake_cmd) != 0:
- raise DistutilsSetupError(f"Error configuring {extension}")
+ raise SetupError(f"Error configuring {extension}")
else:
log.info(f"Reusing old configuration for module {extension} ({module_src_dir})...")
log.info(f"-- Compiling module {extension}...")
- cmd_make = [self.make_path]
+ cmd_make = [str(self.make_path)]
if OPTION["JOBS"]:
cmd_make.append(OPTION["JOBS"])
+ if OPTION["LOG_LEVEL"] == LogLevel.VERBOSE and self.make_generator == "Ninja":
+ cmd_make.append("-v")
if run_process(cmd_make) != 0:
- raise DistutilsSetupError(f"Error compiling {extension}")
+ raise SetupError(f"Error compiling {extension}")
if sys.version_info == (3, 6) and sys.platform == "darwin":
# Python 3.6 has a Sphinx problem because of docutils 0.17 .
@@ -904,21 +849,21 @@ class PysideBuild(_build, DistUtilsCommandMixin):
if "UTF-8" not in os.environ.get("LC_ALL", ""):
os.environ["LC_ALL"] = "en_US.UTF-8"
- if not OPTION["SKIP_DOCS"]:
+ if OPTION["BUILD_DOCS"]:
if extension.lower() == SHIBOKEN:
- try:
- # Check if sphinx is installed to proceed.
- import sphinx
-
+ found = importlib.util.find_spec("sphinx")
+ if found:
log.info("Generating Shiboken documentation")
- if run_process([self.make_path, "doc"]) != 0:
- raise DistutilsSetupError("Error generating documentation "
- f"for {extension}")
- except ImportError:
+ make_doc_cmd = [str(self.make_path), "doc"]
+ if OPTION["LOG_LEVEL"] == LogLevel.VERBOSE and self.make_generator == "Ninja":
+ make_doc_cmd.append("-v")
+ if run_process(make_doc_cmd) != 0:
+ raise SetupError(f"Error generating documentation for {extension}")
+ else:
log.info("Sphinx not found, skipping documentation build")
else:
- log.info("Skipped documentation generation")
- cmake_cmd.append("-DSKIP_DOCS=1")
+ log.info("-- Skipped documentation generation. Enable with '--build-docs'")
+ cmake_cmd.append("-DBUILD_DOCS=no")
if not OPTION["SKIP_MAKE_INSTALL"]:
log.info(f"Installing module {extension}...")
@@ -931,8 +876,8 @@ class PysideBuild(_build, DistUtilsCommandMixin):
time.sleep(1)
# ninja: error: unknown target 'install/fast'
target = 'install/fast' if self.make_generator != 'Ninja' else 'install'
- if run_process([self.make_path, target]) != 0:
- raise DistutilsSetupError(f"Error pseudo installing {extension}")
+ if run_process([str(self.make_path), target]) != 0:
+ raise SetupError(f"Error pseudo installing {extension}")
else:
log.info(f"Skipped installing module {extension}")
@@ -941,14 +886,14 @@ class PysideBuild(_build, DistUtilsCommandMixin):
def prepare_packages(self):
"""
This will copy all relevant files from the various locations in the "cmake install dir",
- to the setup tools build dir (which is read from self.build_lib provided by distutils).
+ to the setup tools build dir (which is read from self.build_lib provided by setuptools).
After that setuptools.command.build_py is smart enough to copy everything
from the build dir to the install dir (the virtualenv site-packages for example).
"""
try:
- log.info("\nPreparing setup tools build directory.\n")
- vars = {
+ log.info("Preparing setup tools build directory.")
+ _vars = {
"site_packages_dir": self.site_packages_dir,
"sources_dir": self.sources_dir,
"install_dir": self.install_dir,
@@ -961,42 +906,61 @@ class PysideBuild(_build, DistUtilsCommandMixin):
"py_version": self.py_version,
"qt_version": self.qtinfo.version,
"qt_bin_dir": self.qtinfo.bins_dir,
+ "qt_data_dir": self.qtinfo.data_dir,
"qt_doc_dir": self.qtinfo.docs_dir,
"qt_lib_dir": self.qtinfo.libs_dir,
+ "qt_module_json_files_dir": self.qtinfo.module_json_files_dir,
+ "qt_metatypes_dir": self.qtinfo.metatypes_dir,
"qt_lib_execs_dir": self.qtinfo.lib_execs_dir,
"qt_plugins_dir": self.qtinfo.plugins_dir,
"qt_prefix_dir": self.qtinfo.prefix_dir,
"qt_translations_dir": self.qtinfo.translations_dir,
"qt_qml_dir": self.qtinfo.qml_dir,
+
+ # TODO: This is currently None when cross-compiling
+ # There doesn't seem to be any place where we can query
+ # it. Fortunately it's currently only used when
+ # packaging Windows vcredist.
"target_arch": self.py_arch,
}
# Needed for correct file installation in generator build
# case.
if config.is_internal_shiboken_generator_build():
- vars['cmake_package_name'] = config.shiboken_module_option_name
+ _vars['cmake_package_name'] = config.shiboken_module_option_name
os.chdir(self.script_dir)
+ # Clean up the previous st_build_dir before files are copied
+ # into it again. That's the because the same dir is used
+ # when copying the files for each of the sub-projects and
+ # we don't want to accidentally install shiboken files
+ # as part of pyside-tools package.
+ if self.st_build_dir.is_dir():
+ log.info(f"Removing {self.st_build_dir}")
+ try:
+ remove_tree(self.st_build_dir)
+ except Exception as e:
+ log.warning(f'problem removing "{self.st_build_dir}"')
+ log.warning(f'ignored error: {e}')
+
if sys.platform == "win32":
- vars['dbg_postfix'] = OPTION["DEBUG"] and "_d" or ""
- return prepare_packages_win32(self, vars)
+ _vars['dbg_postfix'] = OPTION["DEBUG"] and "_d" or ""
+ return prepare_packages_win32(self, _vars)
else:
- return prepare_packages_posix(self, vars)
+ return prepare_packages_posix(self, _vars, self.is_cross_compile)
except IOError as e:
print('setup.py/prepare_packages: ', e)
raise
def qt_is_framework_build(self):
- if os.path.isdir(self.qtinfo.headers_dir + "/../lib/QtCore.framework"):
- return True
- return False
+ return Path(f"{self.qtinfo.headers_dir}/../lib/QtCore.framework").is_dir()
- def get_built_pyside_config(self, vars):
+ def get_built_pyside_config(self, _vars):
# Get config that contains list of built modules, and
# SOVERSIONs of the built libraries.
- st_build_dir = vars['st_build_dir']
- config_path = os.path.join(st_build_dir, config.package_name(), "_config.py")
+ st_build_dir = Path(_vars['st_build_dir'])
+ config_path = st_build_dir / config.package_name() / "_config.py"
temp_config = get_python_dict(config_path)
if 'built_modules' not in temp_config:
temp_config['built_modules'] = []
@@ -1014,11 +978,11 @@ class PysideBuild(_build, DistUtilsCommandMixin):
"""
log.info('Finding path to the libclang shared library.')
cmake_cmd = [
- OPTION["CMAKE"],
+ str(OPTION["CMAKE"]),
"-L", # Lists variables
"-N", # Just inspects the cache (faster)
"-B", # Specifies the build dir
- self.shiboken_build_dir
+ str(self.shiboken_build_dir)
]
out = run_process_output(cmake_cmd)
lines = [s.strip() for s in out]
@@ -1039,10 +1003,11 @@ class PysideBuild(_build, DistUtilsCommandMixin):
# clang_lib_path points to the static import library
# (lib/libclang.lib), whereas we want to copy the shared
# library (bin/libclang.dll).
- clang_lib_path = re.sub(r'lib/libclang.lib$',
- 'bin/libclang.dll',
- clang_lib_path)
+ clang_lib_path = Path(re.sub(r'lib/libclang.lib$',
+ 'bin/libclang.dll',
+ clang_lib_path))
else:
+ clang_lib_path = Path(clang_lib_path)
# shiboken6 links against libclang.so.6 or a similarly
# named library.
# If the linked against library is a symlink, resolve
@@ -1054,26 +1019,26 @@ class PysideBuild(_build, DistUtilsCommandMixin):
# E.g. On Linux libclang.so -> libclang.so.6 ->
# libclang.so.6.0.
# "libclang.so.6" is the name we want for the copied file.
- if os.path.islink(clang_lib_path):
- link_target = os.readlink(clang_lib_path)
- if os.path.isabs(link_target):
+ if clang_lib_path.is_symlink():
+ link_target = Path(os.readlink(clang_lib_path))
+ if link_target.is_absolute():
clang_lib_path = link_target
else:
# link_target is relative, transform to absolute.
- clang_lib_path = os.path.join(os.path.dirname(clang_lib_path), link_target)
- clang_lib_path = os.path.abspath(clang_lib_path)
+ clang_lib_path = clang_lib_path.parent / link_target
+ clang_lib_path = clang_lib_path.resolve()
# The destination will be the shiboken package folder.
- vars = {}
- vars['st_build_dir'] = self.st_build_dir
- vars['st_package_name'] = config.package_name()
- destination_dir = "{st_build_dir}/{st_package_name}".format(**vars)
+ _vars = {}
+ _vars['st_build_dir'] = self.st_build_dir
+ _vars['st_package_name'] = config.package_name()
+ destination_dir = Path("{st_build_dir}/{st_package_name}".format(**_vars))
- if os.path.exists(clang_lib_path):
- basename = os.path.basename(clang_lib_path)
+ if clang_lib_path.exists():
+ basename = clang_lib_path.name
log.info(f"Copying libclang shared library {clang_lib_path} to the package "
f"folder as {basename}.")
- destination_path = os.path.join(destination_dir, basename)
+ destination_path = destination_dir / basename
# Need to modify permissions in case file is not writable
# (a reinstall would cause a permission denied error).
@@ -1085,19 +1050,50 @@ class PysideBuild(_build, DistUtilsCommandMixin):
raise RuntimeError("Error copying libclang library "
f"from {clang_lib_path} to {destination_dir}. ")
+ def get_shared_library_filters(self):
+ unix_filters = ["*.so", "*.so.*"]
+ darwin_filters = ["*.so", "*.dylib"]
+ filters = []
+ if self.is_cross_compile:
+ if 'darwin' in self.plat_name or 'macos' in self.plat_name:
+ filters = darwin_filters
+ elif 'linux' in self.plat_name or 'android' in self.plat_name:
+ filters = unix_filters
+ else:
+ log.warning(f"No shared library filters found for platform {self.plat_name}. "
+ f"The package might miss Qt libraries and plugins.")
+ else:
+ if sys.platform == 'darwin':
+ filters = darwin_filters
+ else:
+ filters = unix_filters
+ return filters
+
+ def _find_shared_libraries(self, path, recursive=False):
+ """Helper to find shared libraries in a path."""
+ result = set()
+ for filter in self.get_shared_library_filters():
+ glob_pattern = f"**/{filter}" if recursive else filter
+ for library in path.glob(glob_pattern):
+ result.add(library)
+ return list(result)
+
def package_libraries(self, package_path):
"""Returns the libraries of the Python module"""
- UNIX_FILTERS = ["*.so", "*.so.*"]
- DARWIN_FILTERS = ["*.so", "*.dylib"]
- FILTERS = DARWIN_FILTERS if sys.platform == 'darwin' else UNIX_FILTERS
- return [lib for lib in os.listdir(
- package_path) if filter_match(lib, FILTERS)]
+ return self._find_shared_libraries(package_path)
+
+ def get_shared_libraries_in_path_recursively(self, initial_path):
+ """Returns shared library plugins in given path (collected
+ recursively)"""
+ return self._find_shared_libraries(initial_path, recursive=True)
- def update_rpath(self, package_path, executables, libexec=False):
+ def update_rpath(self, executables, libexec=False, message=None):
ROOT = '@loader_path' if sys.platform == 'darwin' else '$ORIGIN'
QT_PATH = '/../lib' if libexec else '/Qt/lib'
+ message = "Patched rpath to '$ORIGIN/' in"
if sys.platform.startswith('linux'):
+
def rpath_cmd(srcpath):
final_rpath = ''
# Command line rpath option takes precedence over
@@ -1115,6 +1111,8 @@ class PysideBuild(_build, DistUtilsCommandMixin):
override=override)
elif sys.platform == 'darwin':
+ message = "Updated rpath in"
+
def rpath_cmd(srcpath):
final_rpath = ''
# Command line rpath option takes precedence over
@@ -1132,94 +1130,177 @@ class PysideBuild(_build, DistUtilsCommandMixin):
raise RuntimeError(f"Not configured for platform {sys.platform}")
# Update rpath
- for srcname in executables:
- srcpath = os.path.join(package_path, srcname)
- if os.path.isdir(srcpath) or os.path.islink(srcpath):
+ for executable in executables:
+ if executable.is_dir() or executable.is_symlink():
+ continue
+ if not executable.exists():
+ continue
+ rpath_cmd(executable)
+ log.debug(f"{message} {executable}.")
+
+ def update_rpath_for_linux_plugins(
+ self,
+ plugin_paths,
+ qt_lib_dir=None,
+ is_qml_plugin=False):
+
+ # If the linux sysroot (where the plugins are copied from)
+ # is from a mainline distribution, it might have a different
+ # directory layout than then one we expect to have in the
+ # wheel.
+ # We have to ensure that any plugins copied have rpath
+ # values that can find Qt libs in the newly assembled wheel
+ # dir layout.
+ if not (self.is_cross_compile and sys.platform.startswith('linux') and self.standalone):
+ return
+
+ log.info("Patching rpath for Qt and QML plugins.")
+ for plugin in plugin_paths:
+ if plugin.is_dir() or plugin.is_symlink():
continue
- if not os.path.exists(srcpath):
+ if not plugin.exists():
continue
- rpath_cmd(srcpath)
- log.info("Patched rpath to '$ORIGIN/' (Linux) or "
- f"updated rpath (OS/X) in {srcpath}.")
+ if is_qml_plugin:
+ plugin_dir = plugin.parent
+ # FIXME: there is no os.path.relpath equivalent on pathlib.
+ # The Path.relative_to is not equivalent and raises ValueError when the paths
+ # are not subpaths, so it doesn't generate "../../something".
+ rel_path_from_qml_plugin_qt_lib_dir = os.path.relpath(qt_lib_dir, plugin_dir)
+ rpath_value = Path("$ORIGIN") / rel_path_from_qml_plugin_qt_lib_dir
+ else:
+ rpath_value = "$ORIGIN/../../lib"
-class PysideRstDocs(Command, DistUtilsCommandMixin):
- description = "Build .rst documentation only"
- user_options = DistUtilsCommandMixin.mixin_user_options
+ linux_fix_rpaths_for_library(self._patchelf_path, plugin, rpath_value,
+ override=True)
+ log.debug(f"Patched rpath to '{rpath_value}' in {plugin}.")
+
+ def update_rpath_for_linux_qt_libraries(self, qt_lib_dir):
+ # Ensure that Qt libs and ICU libs have $ORIGIN in their rpath.
+ # Especially important for ICU lib, so that they don't
+ # accidentally load dependencies from the system.
+ if not (self.is_cross_compile and sys.platform.startswith('linux') and self.standalone):
+ return
+
+ qt_lib_dir = Path(qt_lib_dir)
+ rpath_value = "$ORIGIN"
+ log.info(f"Patching rpath for Qt and ICU libraries in {qt_lib_dir}.")
+ for library in self.package_libraries(qt_lib_dir):
+ if library.is_dir() or library.is_symlink():
+ continue
+ if not library.exists():
+ continue
+
+ linux_fix_rpaths_for_library(self._patchelf_path, library, rpath_value, override=True)
+ log.debug(f"Patched rpath to '{rpath_value}' in {library}.")
+
+
+class PysideBaseDocs(Command, CommandMixin):
+ description = "Build the base documentation only"
+ user_options = CommandMixin.mixin_user_options
+
+ def __init__(self, *args, **kwargs):
+ self.command_name = "build_base_docs"
+ Command.__init__(self, *args, **kwargs)
+ CommandMixin.__init__(self)
def initialize_options(self):
- DistUtilsCommandMixin.__init__(self)
- log.info("-- This build process will not include the API documentation."
+ log.info("-- This build process will not include the API documentation. "
"API documentation requires a full build of pyside/shiboken.")
self.skip = False
if config.is_internal_shiboken_generator_build():
self.skip = True
if not self.skip:
self.name = config.package_name().lower()
- self.doc_dir = os.path.join(config.setup_script_dir, "sources")
- self.doc_dir = os.path.join(self.doc_dir, self.name)
- self.doc_dir = os.path.join(self.doc_dir, "doc")
- try:
- # Check if sphinx is installed to proceed.
- import sphinx
+ self.doc_dir = config.setup_script_dir / "sources" / self.name / "doc"
+ # Check if sphinx is installed to proceed.
+ found = importlib.util.find_spec("sphinx")
+ self.html_dir = Path("html")
+ if found:
if self.name == SHIBOKEN:
+ # Delete the 'html' directory since new docs will be generated anyway
+ if self.html_dir.is_dir():
+ rmtree(self.html_dir)
+ log.info("-- Deleted old html directory")
log.info("-- Generating Shiboken documentation")
log.info(f"-- Documentation directory: 'html/{PYSIDE}/{SHIBOKEN}/'")
elif self.name == PYSIDE:
log.info("-- Generating PySide documentation")
log.info(f"-- Documentation directory: 'html/{PYSIDE}/'")
- except ImportError:
- raise DistutilsSetupError("Sphinx not found - aborting")
- self.html_dir = "html"
+ else:
+ raise SetupError("Sphinx not found - aborting")
# creating directories html/pyside6/shiboken6
try:
- if not os.path.isdir(self.html_dir):
- os.mkdir(self.html_dir)
+ if not self.html_dir.is_dir():
+ self.html_dir.mkdir(parents=True)
if self.name == SHIBOKEN:
- out_pyside = os.path.join(self.html_dir, PYSIDE)
- if not os.path.isdir(out_pyside):
- os.mkdir(out_pyside)
- out_shiboken = os.path.join(out_pyside, SHIBOKEN)
- if not os.path.isdir(out_shiboken):
- os.mkdir(out_shiboken)
+ out_pyside = self.html_dir / PYSIDE
+ if not out_pyside.is_dir():
+ out_pyside.mkdir(parents=True)
+ out_shiboken = out_pyside / SHIBOKEN
+ if not out_shiboken.is_dir():
+ out_shiboken.mkdir(parents=True)
self.out_dir = out_shiboken
# We know that on the shiboken step, we already created the
# 'pyside6' directory
elif self.name == PYSIDE:
- self.out_dir = os.path.join(self.html_dir, PYSIDE)
+ self.out_dir = self.html_dir / PYSIDE
except (PermissionError, FileExistsError):
- raise DistutilsSetupError(f"Error while creating directories for {self.doc_dir}")
+ raise SetupError(f"Error while creating directories for {self.doc_dir}")
def run(self):
if not self.skip:
- cmake_cmd = [OPTION["CMAKE"]]
- cmake_cmd += [
- "-S", self.doc_dir,
- "-B", self.out_dir,
+ cmake_cmd = [
+ str(OPTION["CMAKE"]),
+ "-S", str(self.doc_dir),
+ "-B", str(self.out_dir),
"-DDOC_OUTPUT_FORMAT=html",
"-DFULLDOCSBUILD=0",
]
- if OPTION["QUIET"]:
- cmake_cmd.append('-DQUIET_BUILD=1')
+
+ cmake_quiet_build = 1
+ cmake_message_log_level = "STATUS"
+
+ # Define log level
+ if OPTION["LOG_LEVEL"] == LogLevel.VERBOSE:
+ cmake_quiet_build = 0
+ cmake_message_log_level = "VERBOSE"
+ elif OPTION["LOG_LEVEL"] == LogLevel.QUIET:
+ cmake_message_log_level = "ERROR"
+
+ cmake_cmd.append(f"-DQUIET_BUILD={cmake_quiet_build}")
+ cmake_cmd.append(f"-DCMAKE_MESSAGE_LOG_LEVEL={cmake_message_log_level}")
+
if run_process(cmake_cmd) != 0:
- raise DistutilsSetupError(f"Error running CMake for {self.doc_dir}")
+ raise SetupError(f"Error running CMake for {self.doc_dir}")
if self.name == PYSIDE:
- self.sphinx_src = os.path.join(self.out_dir, "rst")
+ self.sphinx_src = self.out_dir / "base"
+ example_gallery = config.setup_script_dir / "tools" / "example_gallery" / "main.py"
+ assert example_gallery.is_file()
+ example_gallery_cmd = [sys.executable, os.fspath(example_gallery)]
+ if OPTION["LOG_LEVEL"] == LogLevel.QUIET:
+ example_gallery_cmd.append("--quiet")
+ qt_src_dir = OPTION['QT_SRC']
+ if qt_src_dir:
+ example_gallery_cmd.extend(["--qt-src-dir", qt_src_dir])
+ if run_process(example_gallery_cmd) != 0:
+ raise SetupError(f"Error running example gallery for {self.doc_dir}")
elif self.name == SHIBOKEN:
self.sphinx_src = self.out_dir
- sphinx_cmd = ["sphinx-build", "-b", "html", "-c", self.sphinx_src,
- self.doc_dir, self.out_dir]
+ sphinx_cmd = ["sphinx-build", "-b", "html", "-j", "auto", "-c",
+ str(self.sphinx_src), str(self.doc_dir),
+ str(self.out_dir)]
if run_process(sphinx_cmd) != 0:
- raise DistutilsSetupError(f"Error running CMake for {self.doc_dir}")
+ raise SetupError(f"Error running CMake for {self.doc_dir}")
# Last message
if not self.skip and self.name == PYSIDE:
log.info(f"-- The documentation was built. Check html/{PYSIDE}/index.html")
def finalize_options(self):
- DistUtilsCommandMixin.mixin_finalize_options(self)
+ CommandMixin.mixin_finalize_options(self)
cmd_class_dict = {
@@ -1230,7 +1311,7 @@ cmd_class_dict = {
'develop': PysideDevelop,
'install': PysideInstall,
'install_lib': PysideInstallLib,
- 'build_rst_docs': PysideRstDocs,
+ 'build_base_docs': PysideBaseDocs,
}
if wheel_module_exists:
pyside_bdist_wheel = get_bdist_wheel_override()
diff --git a/build_scripts/options.py b/build_scripts/options.py
index 58673c1ea..806d4a8a3 100644
--- a/build_scripts/options.py
+++ b/build_scripts/options.py
@@ -1,50 +1,15 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-import distutils.log as log
-from distutils.spawn import find_executable
+# Copyright (C) 2018 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+from setuptools import Command
+
import sys
-import os
-import warnings
+import logging
+from pathlib import Path
+from .log import log, LogLevel
from .qtinfo import QtInfo
-
+from .utils import memoize, which
_AVAILABLE_MKSPECS = ["ninja", "msvc", "mingw"] if sys.platform == "win32" else ["ninja", "make"]
@@ -53,21 +18,25 @@ _AVAILABLE_MKSPECS = ["ninja", "msvc", "mingw"] if sys.platform == "win32" else
ADDITIONAL_OPTIONS = """
Additional options:
--limited-api Use Limited API [yes/no]
- ---macos-use-libc++ Use libc++ on macOS
+ --macos-use-libc++ Use libc++ on macOS
--snapshot-build Snapshot build
--package-timestamp Package Timestamp
+ --cmake-toolchain-file Path to CMake toolchain to enable cross-compiling
+ --shiboken-host-path Path to host shiboken package when cross-compiling
+ --qt-host-path Path to host Qt installation when cross-compiling
+ --disable-pyi Disable .pyi file generation
"""
def _warn_multiple_option(option):
- warnings.warn(f'Option "{option}" occurs multiple times on the command line.')
+ log.warning(f'Option "{option}" occurs multiple times on the command line.')
def _warn_deprecated_option(option, replacement=None):
w = f'Option "{option}" is deprecated and may be removed in a future release.'
if replacement:
w = f'{w}\nUse "{replacement}" instead.'
- warnings.warn(w)
+ log.warning(w)
class Options(object):
@@ -92,11 +61,9 @@ class Options(object):
def option_value(self, name, short_option_name=None, remove=True):
"""
- Returns the value of a command line option or environment
- variable.
+ Returns the value of a command line option.
- :param name: The name of the command line option or environment
- variable.
+ :param name: The name of the command line option.
:param remove: Whether the option and its value should be
removed from sys.argv. Useful when there's a need to query for
@@ -104,9 +71,10 @@ class Options(object):
:return: Either the option value or None.
"""
- option = '--' + name
- short_option = '-' + short_option_name if short_option_name else None
- single_option_prefix = option + '='
+
+ option = f"--{name}"
+ short_option = f"-{short_option_name}" if short_option_name else None
+ single_option_prefix = f"{option}="
value = None
for index in reversed(range(len(sys.argv))):
arg = sys.argv[index]
@@ -130,9 +98,6 @@ class Options(object):
if remove:
sys.argv[index:index + 1] = []
- if value is None:
- value = os.getenv(name.upper().replace('-', '_'))
-
self.dict[name] = value
return value
@@ -152,12 +117,36 @@ def _jobs_option_value():
"""Option value for parallel builds."""
value = option_value('parallel', short_option_name='j')
if value:
- return '-j' + value if not value.startswith('-j') else value
+ return f"-j{value}" if not value.startswith('-j') else value
return ''
-# Declare options which need to be known when instantiating the DistUtils
-# commands.
+def find_qtpaths():
+ # for these command --qtpaths should not be required
+ no_qtpaths_commands = ["--help", "--help-commands", "--qt-target-path", "build_base_docs"]
+
+ for no_qtpaths_command in no_qtpaths_commands:
+ if any(no_qtpaths_command in argument for argument in sys.argv):
+ return None
+
+ qtpaths = option_value("qtpaths")
+ if qtpaths:
+ return qtpaths
+
+ # if qtpaths is not given as cli option, try to find it in PATH
+ qtpaths = which("qtpaths6")
+ if qtpaths:
+ return str(qtpaths.resolve())
+
+ qtpaths = which("qtpaths")
+ if qtpaths:
+ return str(qtpaths.resolve())
+
+ return qtpaths
+
+
+# Declare options which need to be known when instantiating the setuptools
+# commands or even earlier during SetupRunner.run().
OPTION = {
"BUILD_TYPE": option_value("build-type"),
"INTERNAL_BUILD_TYPE": option_value("internal-build-type"),
@@ -166,52 +155,74 @@ OPTION = {
# Legacy, not used any more.
"JOM": has_option('jom'),
"MACOS_USE_LIBCPP": has_option("macos-use-libc++"),
- "QUIET": has_option('quiet', remove=False),
+ "LOG_LEVEL": option_value("log-level", remove=False),
+ "QUIET": has_option('quiet'),
+ "VERBOSE_BUILD": has_option('verbose-build'),
"SNAPSHOT_BUILD": has_option("snapshot-build"),
"LIMITED_API": option_value("limited-api"),
+ "DISABLE_PYI": has_option("disable-pyi"),
"PACKAGE_TIMESTAMP": option_value("package-timestamp"),
- # This is used automatically by distutils.command.install object, to
+ # This is used automatically by setuptools.command.install object, to
# specify the final installation location.
- "FINAL_INSTALL_PREFIX": option_value("prefix", remove=False)
+ "FINAL_INSTALL_PREFIX": option_value("prefix", remove=False),
+ "CMAKE_TOOLCHAIN_FILE": option_value("cmake-toolchain-file"),
+ "SHIBOKEN_HOST_PATH": option_value("shiboken-host-path"),
+ "SHIBOKEN_HOST_PATH_QUERY_FILE": option_value("internal-shiboken-host-path-query-file"),
+ "QT_HOST_PATH": option_value("qt-host-path"),
# This is used to identify the template for doc builds
+ "QTPATHS": find_qtpaths()
+ # This is an optional command line option. If --qtpaths is not provided via command-line,
+ # then qtpaths is checked inside PATH variable
}
+
_deprecated_option_jobs = option_value('jobs')
if _deprecated_option_jobs:
_warn_deprecated_option('jobs', 'parallel')
OPTION["JOBS"] = _deprecated_option_jobs
-class DistUtilsCommandMixin(object):
- """Mixin for the DistUtils build/install commands handling the options."""
+class CommandMixin(object):
+ """Mixin for the setuptools build/install commands handling the options."""
- _finalized = False
+ _static_class_finalized_once = False
mixin_user_options = [
('avoid-protected-hack', None, 'Force --avoid-protected-hack'),
('debug', None, 'Build with debug information'),
('relwithdebinfo', None, 'Build in release mode with debug information'),
('only-package', None, 'Package only'),
+ ('no-strip', None, 'Do not strip package libraries (release mode)'),
('standalone', None, 'Standalone build'),
('ignore-git', None, 'Do update subrepositories'),
- ('skip-docs', None, 'Skip documentation build'),
- ('no-examples', None, 'Do not build examples'),
+ ('skip-docs', None, 'Skip documentation build (deprecated)'),
+ ('build-docs', None, 'Build the API documentation'),
('no-jom', None, 'Do not use jom (MSVC)'),
('build-tests', None, 'Build tests'),
('use-xvfb', None, 'Use Xvfb for testing'),
('reuse-build', None, 'Reuse existing build'),
+ ('compiler-launcher=', None, 'Use a compiler launcher like ccache or sccache for builds'),
('skip-cmake', None, 'Skip CMake step'),
('skip-make-install', None, 'Skip install step'),
('skip-packaging', None, 'Skip packaging step'),
+ ('log-level=', None, 'Log level of the build.'),
('verbose-build', None, 'Verbose build'),
+ ('quiet', None, 'Quiet build'),
('sanitize-address', None, 'Build with address sanitizer'),
('shorter-paths', None, 'Use shorter paths'),
('doc-build-online', None, 'Build online documentation'),
('qtpaths=', None, 'Path to qtpaths'),
('qmake=', None, 'Path to qmake (deprecated, use qtpaths)'),
('qt=', None, 'Qt version'),
+ ('qt-target-path=', None,
+ 'Path to device Qt installation (use Qt libs when cross-compiling)'),
('cmake=', None, 'Path to CMake'),
('openssl=', None, 'Path to OpenSSL libraries'),
+
+ # FIXME: Deprecated in favor of shiboken-target-path
('shiboken-config-dir=', None, 'shiboken configuration directory'),
+
+ ('shiboken-target-path=', None, 'Path to target shiboken package'),
+ ('python-target-path=', None, 'Path to target Python installation / prefix'),
('make-spec=', None, 'Qt make-spec'),
('macos-arch=', None, 'macOS architecture'),
('macos-sysroot=', None, 'macOS sysroot'),
@@ -222,25 +233,41 @@ class DistUtilsCommandMixin(object):
('qt-conf-prefix=', None, 'Qt configuration prefix'),
('qt-src-dir=', None, 'Qt source directory'),
('no-qt-tools', None, 'Do not copy the Qt tools'),
- ('pyside-numpy-support', None, 'libpyside: Add (experimental) numpy support')
- ]
+ ('no-size-optimization', None, 'Turn off size optimization for PySide6 binaries'),
+ # Default is auto-detected by PysideBuild._enable_numpy()
+ ('pyside-numpy-support', None, 'libpyside: Add numpy support (deprecated)'),
+ ('enable-numpy-support', None, 'Enable numpy support'),
+ ('disable-numpy-support', None, 'Disable numpy support'),
+ ('internal-cmake-install-dir-query-file-path=', None,
+ 'Path to file where the CMake install path of the project will be saved'),
+
+ # We redeclare plat-name as an option so it's recognized by the
+ # install command and doesn't throw an error.
+ ('plat-name=', None, 'The platform name for which we are cross-compiling'),
+ ('unity', None, 'Use CMake UNITY_BUILD_MODE (obsolete)'),
+ ('no-unity', None, 'Disable CMake UNITY_BUILD_MODE'),
+ ('unity-build-batch-size=', None, 'Value of CMAKE_UNITY_BUILD_BATCH_SIZE')
+ ]
def __init__(self):
self.avoid_protected_hack = False
self.debug = False
self.relwithdebinfo = False
+ self.no_strip = False
self.only_package = False
self.standalone = False
self.ignore_git = False
self.skip_docs = False
- self.no_examples = False
+ self.build_docs = False
self.no_jom = False
self.build_tests = False
self.use_xvfb = False
self.reuse_build = False
+ self.compiler_launcher = None
self.skip_cmake = False
self.skip_make_install = False
self.skip_packaging = False
+ self.log_level = "info"
self.verbose_build = False
self.sanitize_address = False
self.snapshot_build = False
@@ -250,9 +277,17 @@ class DistUtilsCommandMixin(object):
self.qmake = None
self.has_qmake_option = False
self.qt = '5'
+ self.qt_host_path = None
+ self.qt_target_path = None
self.cmake = None
self.openssl = None
self.shiboken_config_dir = None
+ self.shiboken_host_path = None
+ self.shiboken_host_path_query_file = None
+ self.shiboken_target_path = None
+ self.python_target_path = None
+ self.is_cross_compile = False
+ self.cmake_toolchain_file = None
self.make_spec = None
self.macos_arch = None
self.macos_sysroot = None
@@ -263,55 +298,204 @@ class DistUtilsCommandMixin(object):
self.qt_conf_prefix = None
self.qt_src_dir = None
self.no_qt_tools = False
+ self.no_size_optimization = False
self.pyside_numpy_support = False
+ self.enable_numpy_support = False
+ self.disable_numpy_support = False
+ self.plat_name = None
+ self.internal_cmake_install_dir_query_file_path = None
+ self._per_command_mixin_options_finalized = False
+ self.unity = False
+ self.no_unity = False
+ self.unity_build_batch_size = "16"
+
+ # When initializing a command other than the main one (so the
+ # first one), we need to copy the user options from the main
+ # command to the new command options dict. Then
+ # Distribution.get_command_obj will pick up the copied options
+ # ensuring that all commands that inherit from
+ # the mixin, get our custom properties set by the time
+ # finalize_options is called.
+ if CommandMixin._static_class_finalized_once:
+ current_command: Command = self
+ dist = current_command.distribution
+ main_command_name = dist.commands[0]
+ main_command_opts = dist.get_option_dict(main_command_name)
+ current_command_name = current_command.get_command_name()
+ current_command_opts = dist.get_option_dict(current_command_name)
+ mixin_options_set = self.get_mixin_options_set()
+ for key, value in main_command_opts.items():
+ if key not in current_command_opts and key in mixin_options_set:
+ current_command_opts[key] = value
+
+ # qtpaths is already known before running SetupRunner
+ self.qtpaths = OPTION["QTPATHS"]
+
+ @staticmethod
+ @memoize
+ def get_mixin_options_set():
+ keys = set()
+ for (name, _, _) in CommandMixin.mixin_user_options:
+ keys.add(name.rstrip("=").replace("-", "_"))
+ return keys
def mixin_finalize_options(self):
- # Bail out on 2nd call to mixin_finalize_options() since that is the
- # build command following the install command when invoking
- # setup.py install
- if not DistUtilsCommandMixin._finalized:
- DistUtilsCommandMixin._finalized = True
+ # The very first we finalize options, record that.
+ if not CommandMixin._static_class_finalized_once:
+ CommandMixin._static_class_finalized_once = True
+
+ # Ensure we finalize once per command object, rather than per
+ # setup.py invocation. We want to have the option values
+ # available in all commands that derive from the mixin.
+ if not self._per_command_mixin_options_finalized:
+ self._per_command_mixin_options_finalized = True
self._do_finalize()
def _do_finalize(self):
+ # is_cross_compile must be set before checking for qtpaths/qmake
+ # because we DON'T want those to be found when cross compiling.
+ # Currently when cross compiling, qt-target-path MUST be used.
+ using_cmake_toolchain_file = False
+ cmake_toolchain_file = None
+ if OPTION["CMAKE_TOOLCHAIN_FILE"]:
+ self.is_cross_compile = True
+ using_cmake_toolchain_file = True
+ cmake_toolchain_file = OPTION["CMAKE_TOOLCHAIN_FILE"]
+ self.cmake_toolchain_file = cmake_toolchain_file
+
if not self._determine_defaults_and_check():
sys.exit(-1)
OPTION['AVOID_PROTECTED_HACK'] = self.avoid_protected_hack
OPTION['DEBUG'] = self.debug
OPTION['RELWITHDEBINFO'] = self.relwithdebinfo
+ OPTION['NO_STRIP'] = self.no_strip
OPTION['ONLYPACKAGE'] = self.only_package
OPTION['STANDALONE'] = self.standalone
- OPTION['IGNOREGIT'] = self.ignore_git
+ if self.ignore_git:
+ _warn_deprecated_option('ignore_git')
OPTION['SKIP_DOCS'] = self.skip_docs
- OPTION['NOEXAMPLES'] = self.no_examples
+ OPTION['BUILD_DOCS'] = self.build_docs
OPTION['BUILDTESTS'] = self.build_tests
+
OPTION['NO_JOM'] = self.no_jom
OPTION['XVFB'] = self.use_xvfb
OPTION['REUSE_BUILD'] = self.reuse_build
+ OPTION['COMPILER_LAUNCHER'] = self.compiler_launcher
OPTION['SKIP_CMAKE'] = self.skip_cmake
OPTION['SKIP_MAKE_INSTALL'] = self.skip_make_install
OPTION['SKIP_PACKAGING'] = self.skip_packaging
+ # Logging options:
+ # 'quiet' and 'verbose-build' are deprecated,
+ # log-level has higher priority when used.
+ OPTION['LOG_LEVEL'] = self.log_level
OPTION['VERBOSE_BUILD'] = self.verbose_build
- if self.verbose_build:
- log.set_verbosity(1)
+ # The OPTION["QUIET"] doesn't need to be initialized with a value
+ # because is an argument that it will not be removed due to being
+ # a setuptools argument as well.
+
+ # By default they are False, so we check if they changed with xor
+ if bool(OPTION["QUIET"]) != bool(OPTION["VERBOSE_BUILD"]):
+ log.warning("Using --quiet and --verbose-build is deprecated. "
+ "Please use --log-level=quiet or --log-level=verbose instead.")
+ # We assign a string value instead of the enum
+ # because is what we get from the command line.
+ # Later we assign the enum
+ if OPTION["QUIET"]:
+ OPTION["LOG_LEVEL"] = "quiet"
+ elif OPTION["VERBOSE_BUILD"]:
+ OPTION["LOG_LEVEL"] = "verbose"
+
+ if OPTION["LOG_LEVEL"] not in ("quiet", "info", "verbose"):
+ log.error(f"Invalid value for log level: '--log-level={OPTION['LOG_LEVEL']}'. "
+ "Use 'quiet', 'info', or 'verbose'.")
+ sys.exit(-1)
+ else:
+ if OPTION["LOG_LEVEL"] == "quiet":
+ OPTION["LOG_LEVEL"] = LogLevel.QUIET
+ log.setLevel(logging.ERROR)
+ elif OPTION["LOG_LEVEL"] == "info":
+ OPTION["LOG_LEVEL"] = LogLevel.INFO
+ log.setLevel(logging.INFO)
+ elif OPTION["LOG_LEVEL"] == "verbose":
+ OPTION["LOG_LEVEL"] = LogLevel.VERBOSE
+ log.setLevel(logging.DEBUG)
+
OPTION['SANITIZE_ADDRESS'] = self.sanitize_address
OPTION['SHORTER_PATHS'] = self.shorter_paths
OPTION['DOC_BUILD_ONLINE'] = self.doc_build_online
+ if self.unity:
+ log.warning("Using --unity no longer has any effect, "
+ "Unity build mode is now the default.")
+ OPTION['UNITY'] = not self.no_unity
+ OPTION['UNITY_BUILD_BATCH_SIZE'] = self.unity_build_batch_size
+
+ qtpaths_abs_path = None
+ if self.qtpaths and Path(self.qtpaths).exists():
+ qtpaths_abs_path = Path(self.qtpaths).resolve()
- qtpaths_abs_path = os.path.abspath(self.qtpaths)
- OPTION['QTPATHS'] = qtpaths_abs_path
# FIXME PYSIDE7: Remove qmake handling
# make qtinfo.py independent of relative paths.
- qmake_abs_path = os.path.abspath(self.qmake)
- OPTION['QMAKE'] = qmake_abs_path
+ qmake_abs_path = None
+ if self.qmake:
+ qmake_abs_path = Path(self.qmake).resolve()
+ OPTION['QMAKE'] = qmake_abs_path
OPTION['HAS_QMAKE_OPTION'] = self.has_qmake_option
OPTION['QT_VERSION'] = self.qt
+ self.qt_host_path = OPTION['QT_HOST_PATH']
+ OPTION['QT_TARGET_PATH'] = self.qt_target_path
+
+ qt_target_path = self.qt_target_path
+
+ # We use the CMake project to find host Qt if neither qmake or
+ # qtpaths is available. This happens when building the host
+ # tools in the overall cross-building process.
+ use_cmake = False
+ if (using_cmake_toolchain_file or (not self.qmake
+ and not self.qtpaths and self.qt_target_path)):
+ use_cmake = True
+
QtInfo().setup(qtpaths_abs_path, self.cmake, qmake_abs_path,
- self.has_qmake_option)
+ self.has_qmake_option,
+ use_cmake=use_cmake,
+ qt_target_path=qt_target_path,
+ cmake_toolchain_file=cmake_toolchain_file)
+
+ if 'build_base_docs' not in sys.argv:
+ try:
+ QtInfo().prefix_dir
+ except Exception as e:
+ if not self.qt_target_path:
+ log.error(
+ "\nCould not find Qt. You can pass the --qt-target-path=<qt-dir> option "
+ "as a hint where to find Qt. Error was:\n\n\n")
+ else:
+ log.error(
+ f"\nCould not find Qt via provided option --qt-target-path={qt_target_path}"
+ "Error was:\n\n\n")
+ raise e
- OPTION['CMAKE'] = os.path.abspath(self.cmake)
+ OPTION['CMAKE'] = self.cmake.resolve()
OPTION['OPENSSL'] = self.openssl
OPTION['SHIBOKEN_CONFIG_DIR'] = self.shiboken_config_dir
+ if self.shiboken_config_dir:
+ _warn_deprecated_option('shiboken-config-dir', 'shiboken-target-path')
+
+ self.shiboken_host_path = OPTION['SHIBOKEN_HOST_PATH']
+ self.shiboken_host_path_query_file = OPTION['SHIBOKEN_HOST_PATH_QUERY_FILE']
+
+ if not self.shiboken_host_path and self.shiboken_host_path_query_file:
+ try:
+ queried_shiboken_host_path = Path(self.shiboken_host_path_query_file).read_text()
+ self.shiboken_host_path = queried_shiboken_host_path
+ OPTION['SHIBOKEN_HOST_PATH'] = queried_shiboken_host_path
+ except Exception as e:
+ log.error(
+ f"\n Could not find shiboken host tools via the query file: "
+ f"{self.shiboken_host_path_query_file:} Error was:\n\n\n")
+ raise e
+
+ OPTION['SHIBOKEN_TARGET_PATH'] = self.shiboken_target_path
+ OPTION['PYTHON_TARGET_PATH'] = self.python_target_path
OPTION['MAKESPEC'] = self.make_spec
OPTION['MACOS_ARCH'] = self.macos_arch
OPTION['MACOS_SYSROOT'] = self.macos_sysroot
@@ -322,39 +506,78 @@ class DistUtilsCommandMixin(object):
OPTION['QT_CONF_PREFIX'] = self.qt_conf_prefix
OPTION['QT_SRC'] = self.qt_src_dir
OPTION['NO_QT_TOOLS'] = self.no_qt_tools
+ OPTION['NO_OVERRIDE_OPTIMIZATION_FLAGS'] = self.no_size_optimization
+ OPTION['DISABLE_NUMPY_SUPPORT'] = self.disable_numpy_support
+ OPTION['ENABLE_NUMPY_SUPPORT'] = self.enable_numpy_support
OPTION['PYSIDE_NUMPY_SUPPORT'] = self.pyside_numpy_support
+ if not self._extra_checks():
+ sys.exit(-1)
+
+ OPTION['PLAT_NAME'] = self.plat_name
+
+ def _extra_checks(self):
+ if self.is_cross_compile and not self.plat_name:
+ log.error("No value provided to --plat-name while cross-compiling.")
+ return False
+ return True
+
def _determine_defaults_and_check(self):
if not self.cmake:
- self.cmake = find_executable("cmake")
+ self.cmake = Path(which("cmake"))
+ elif isinstance(self.cmake, str): # command line option
+ self.cmake = Path(self.cmake)
if not self.cmake:
log.error("cmake could not be found.")
return False
- if not os.path.exists(self.cmake):
+ if not self.cmake.exists():
log.error(f"'{self.cmake}' does not exist.")
return False
- if not self.qtpaths:
- self.qtpaths = find_executable("qtpaths")
- if not self.qtpaths:
- log.error("qtpaths could not be found.")
- return False
- if not os.path.exists(self.qtpaths):
- log.error(f"'{self.qtpaths}' does not exist.")
- return False
-
- if self.qmake:
- self.has_qmake_option = True
+ # Setting up the Paths when passing via command line
+ if isinstance(self.qtpaths, str):
+ self.qtpaths = Path(self.qtpaths)
+ if isinstance(self.qmake, str):
+ self.qmake = Path(self.qmake)
+ if self.qt_target_path and isinstance(self.qt_target_path, str):
+ self.qt_target_path = Path(self.qt_target_path)
+
+ # When cross-compiling, we only accept the qt-target-path
+ # option and don't rely on auto-searching in PATH or the other
+ # qtpaths / qmake options.
+ # We also don't do auto-searching if qt-target-path is passed
+ # explicitly. This is to help with the building of host tools
+ # while cross-compiling.
+ # Skip this process for the 'build_base_docs' command
+ if (not self.is_cross_compile
+ and not self.qt_target_path
+ and 'build_base_docs' not in sys.argv):
+ # Enforce usage of qmake in QtInfo if it was given explicitly.
+ if self.qmake:
+ self.has_qmake_option = True
+ _warn_deprecated_option('qmake', 'qtpaths')
+
+ # If no tool was specified and qtpaths was not found in PATH,
+ # ask to provide a path to qtpaths.
+ if not self.qtpaths and not self.qmake and not self.qt_target_path:
+ log.error("No value provided to --qtpaths option. Please provide one to find Qt.")
+ return False
+
+ # Validate that the given tool path exists.
+ if self.qtpaths and not self.qtpaths.exists():
+ log.error(f"The specified qtpaths path '{self.qtpaths}' does not exist.")
+ return False
+
+ if self.qmake and not self.qmake.exists():
+ log.error(f"The specified qmake path '{self.qmake}' does not exist.")
+ return False
else:
- self.qmake = find_executable("qmake")
- if not self.qmake:
- self.qmake = find_executable("qmake-qt5")
- if not self.qmake:
- log.error("qmake could not be found.")
- return False
- if not os.path.exists(self.qmake):
- log.error(f"'{self.qmake}' does not exist.")
- return False
+ # Check for existence, but don't require if it's not set. A
+ # check later will be done to see if it's needed.
+ if self.qt_target_path and not self.qt_target_path.exists():
+ log.error(f"Provided --qt-target-path='{self.qt_target_path}' "
+ "path does not exist.")
+ return False
if not self.make_spec:
self.make_spec = _AVAILABLE_MKSPECS[0]
@@ -367,4 +590,9 @@ class DistUtilsCommandMixin(object):
log.error("Option --jobs can only be used with jom on Windows.")
return False
+ if sys.platform == 'win32' and OPTION["LIMITED_API"] == "yes" and self.debug:
+ log.error("It is not possible to make a debug build of PySide6 with limited API. "
+ "Please select a release build or disable limited API.")
+ return False
+
return True
diff --git a/build_scripts/platforms/__init__.py b/build_scripts/platforms/__init__.py
index 571d37492..853aaad7b 100644
--- a/build_scripts/platforms/__init__.py
+++ b/build_scripts/platforms/__init__.py
@@ -1,38 +1,2 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2018 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
diff --git a/build_scripts/platforms/linux.py b/build_scripts/platforms/linux.py
index 092660072..b4c66d94e 100644
--- a/build_scripts/platforms/linux.py
+++ b/build_scripts/platforms/linux.py
@@ -1,57 +1,26 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-import os
-from ..utils import (copydir, copyfile, copy_icu_libs, find_files_using_glob,
- linux_patch_executable)
+# Copyright (C) 2018 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+from pathlib import Path
+
+from ..log import log
from ..config import config
-from ..versions import PYSIDE
+from ..options import OPTION
+from ..utils import (copy_icu_libs, copydir, copyfile, find_files_using_glob,
+ linux_patch_executable)
+from .. import PYSIDE, PYSIDE_UNIX_BUNDLED_TOOLS
-def prepare_standalone_package_linux(self, vars):
- built_modules = vars['built_modules']
+
+def prepare_standalone_package_linux(pyside_build, _vars, cross_build=False, is_android=False):
+ built_modules = _vars['built_modules']
constrain_modules = None
copy_plugins = True
copy_qml = True
copy_translations = True
copy_qt_conf = True
- should_copy_icu_libs = True
+
+ log.info("Copying files...")
if config.is_internal_shiboken_generator_build():
constrain_modules = ["Core", "Network", "Xml", "XmlPatterns"]
@@ -59,86 +28,116 @@ def prepare_standalone_package_linux(self, vars):
copy_qml = False
copy_translations = False
copy_qt_conf = False
- should_copy_icu_libs = False
# <qt>/lib/* -> <setup>/{st_package_name}/Qt/lib
- destination_lib_dir = "{st_build_dir}/{st_package_name}/Qt/lib"
+ destination_dir = Path("{st_build_dir}/{st_package_name}".format(**_vars))
+ destination_qt_dir = destination_dir / "Qt"
+ destination_qt_lib_dir = destination_qt_dir / "lib"
+
+ # android libs does not have the Qt major version
+ if is_android:
+ lib_regex = 'libQt6*.so*'
+ else:
+ lib_regex = 'libQt6*.so.?'
- accepted_modules = ['libQt6*.so.?']
+ accepted_modules = [lib_regex]
if constrain_modules:
- accepted_modules = ["libQt6" + module + "*.so.?" for module in constrain_modules]
+ accepted_modules = [f"libQt6{module}*.so.?" if not is_android else f"libQt6{module}*.so*"
+ for module in constrain_modules]
accepted_modules.append("libicu*.so.??")
- copydir("{qt_lib_dir}", destination_lib_dir,
- filter=accepted_modules,
- recursive=False, vars=vars, force_copy_symlinks=True)
+ if is_android:
+ accepted_modules.append("*-android-dependencies.xml")
- if should_copy_icu_libs:
+ copydir("{qt_lib_dir}", destination_qt_lib_dir,
+ _filter=accepted_modules,
+ recursive=False, _vars=_vars, force_copy_symlinks=True)
+
+ if not cross_build and not is_android:
# Check if ICU libraries were copied over to the destination
# Qt libdir.
- resolved_destination_lib_dir = destination_lib_dir.format(**vars)
- maybe_icu_libs = find_files_using_glob(resolved_destination_lib_dir, "libicu*")
+ maybe_icu_libs = find_files_using_glob(destination_qt_lib_dir, "libicu*")
# If no ICU libraries are present in the Qt libdir (like when
# Qt is built against system ICU, or in the Coin CI where ICU
# libs are in a different directory) try to find out / resolve
# which ICU libs are used by QtCore (if used at all) using a
- # custom written ldd, and copy the ICU libs to the Pyside Qt
- # dir if necessary. We choose the QtCore lib to inspect, by
+ # custom written ldd (non-cross build only), and copy the ICU
+ # libs to the Pyside Qt dir if necessary.
+ # We choose the QtCore lib to inspect, by
# checking which QtCore library the shiboken6 executable uses.
if not maybe_icu_libs:
- copy_icu_libs(self._patchelf_path, resolved_destination_lib_dir)
+ copy_icu_libs(pyside_build._patchelf_path, destination_qt_lib_dir)
+
+ # Set RPATH for Qt libs.
+ if not is_android:
+ pyside_build.update_rpath_for_linux_qt_libraries(destination_qt_lib_dir)
# Patching designer to use the Qt libraries provided in the wheel
- if config.is_internal_pyside_build():
- assistant_path = "{st_build_dir}/{st_package_name}/assistant".format(**vars)
- linux_patch_executable(self._patchelf_path, assistant_path)
- designer_path = "{st_build_dir}/{st_package_name}/designer".format(**vars)
- linux_patch_executable(self._patchelf_path, designer_path)
-
- if self.is_webengine_built(built_modules):
- copydir("{qt_prefix_dir}/resources",
- "{st_build_dir}/{st_package_name}/Qt/resources",
- filter=None,
+ if config.is_internal_pyside_build() and not OPTION['NO_QT_TOOLS']:
+
+ for tool in PYSIDE_UNIX_BUNDLED_TOOLS:
+ tool_path = destination_dir / tool
+ linux_patch_executable(pyside_build._patchelf_path, tool_path)
+
+ if pyside_build.is_webengine_built(built_modules):
+ copydir("{qt_data_dir}/resources",
+ destination_qt_dir / "resources",
+ _filter=None,
recursive=False,
- vars=vars)
+ _vars=_vars)
if copy_plugins:
+ is_pypy = "pypy" in pyside_build.build_classifiers
# <qt>/plugins/* -> <setup>/{st_package_name}/Qt/plugins
- plugins_target = "{st_build_dir}/{st_package_name}/Qt/plugins"
+ plugins_target = destination_qt_dir / "plugins"
copydir("{qt_plugins_dir}", plugins_target,
- filter=["*.so"],
+ _filter=["*.so"],
recursive=True,
- vars=vars)
- copydir("{install_dir}/plugins/designer",
- f"{plugins_target}/designer",
- filter=["*.so"],
- recursive=False,
- vars=vars)
+ _vars=_vars)
+ if not is_pypy and not is_android:
+ copydir("{install_dir}/plugins/designer",
+ plugins_target / "designer",
+ _filter=["*.so"],
+ recursive=False,
+ _vars=_vars)
+
+ copied_plugins = pyside_build.get_shared_libraries_in_path_recursively(
+ plugins_target)
+ if not is_android:
+ pyside_build.update_rpath_for_linux_plugins(copied_plugins)
if copy_qml:
# <qt>/qml/* -> <setup>/{st_package_name}/Qt/qml
+ qml_plugins_target = destination_qt_dir / "qml"
copydir("{qt_qml_dir}",
- "{st_build_dir}/{st_package_name}/Qt/qml",
- filter=None,
+ qml_plugins_target,
+ _filter=None,
force=False,
recursive=True,
- ignore=["*.so.debug"],
- vars=vars)
+ ignore=["*.debug"],
+ _vars=_vars)
+ copied_plugins = pyside_build.get_shared_libraries_in_path_recursively(
+ qml_plugins_target)
+ if not is_android:
+ pyside_build.update_rpath_for_linux_plugins(
+ copied_plugins,
+ qt_lib_dir=destination_qt_lib_dir,
+ is_qml_plugin=True)
if copy_translations:
# <qt>/translations/* ->
# <setup>/{st_package_name}/Qt/translations
copydir("{qt_translations_dir}",
- "{st_build_dir}/{st_package_name}/Qt/translations",
- filter=["*.qm", "*.pak"],
+ destination_qt_dir / "translations",
+ _filter=["*.qm", "*.pak"],
force=False,
- vars=vars)
+ _vars=_vars)
if copy_qt_conf:
# Copy the qt.conf file to libexec.
- qt_libexec_path = "{st_build_dir}/{st_package_name}/Qt/libexec".format(**vars)
- if not os.path.isdir(qt_libexec_path):
- os.makedirs(qt_libexec_path)
+ qt_libexec_path = destination_qt_dir / "libexec"
+ if not qt_libexec_path.is_dir():
+ qt_libexec_path.mkdir(parents=True)
copyfile(f"{{build_dir}}/{PYSIDE}/{{st_package_name}}/qt.conf",
- qt_libexec_path, vars=vars)
+ qt_libexec_path, _vars=_vars)
diff --git a/build_scripts/platforms/macos.py b/build_scripts/platforms/macos.py
index dcbaff3a3..dbe60d343 100644
--- a/build_scripts/platforms/macos.py
+++ b/build_scripts/platforms/macos.py
@@ -1,60 +1,28 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2018 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import fnmatch
-import os
-from ..utils import copydir, copyfile, macos_fix_rpaths_for_library, macos_add_rpath
+from pathlib import Path
+
+from ..log import log
from ..config import config
-from ..versions import PYSIDE
+from ..options import OPTION
+from ..utils import (copydir, copyfile, macos_add_rpath,
+ macos_fix_rpaths_for_library)
+from .. import PYSIDE, PYSIDE_UNIX_BUNDLED_TOOLS
-def _macos_patch_executable(name, vars=None):
+def _macos_patch_executable(name, _vars=None):
""" Patch an executable to run with the Qt libraries. """
- upper_name = name[0:1].upper() + name[1:]
- bundle = f"{{st_build_dir}}/{{st_package_name}}/{upper_name}.app".format(**vars)
+ upper_name = name.capitalize()
+ bundle = f"{{st_build_dir}}/{{st_package_name}}/{upper_name}.app".format(**_vars)
binary = f"{bundle}/Contents/MacOS/{upper_name}"
rpath = "@loader_path/../../../Qt/lib"
macos_add_rpath(rpath, binary)
-def prepare_standalone_package_macos(self, vars):
- built_modules = vars['built_modules']
+def prepare_standalone_package_macos(pyside_build, _vars):
+ built_modules = _vars['built_modules']
constrain_modules = None
copy_plugins = True
@@ -62,9 +30,14 @@ def prepare_standalone_package_macos(self, vars):
copy_translations = True
copy_qt_conf = True
+ destination_dir = Path("{st_build_dir}/{st_package_name}".format(**_vars))
+ destination_qt_dir = destination_dir / "Qt"
+ destination_qt_lib_dir = destination_qt_dir / "lib"
+ log.info("Copying files...")
+
if config.is_internal_shiboken_generator_build():
constrain_modules = ["Core", "Network", "Xml", "XmlPatterns"]
- constrain_frameworks = ['Qt' + name + '.framework' for name in constrain_modules]
+ constrain_frameworks = [f"Qt{name}.framework" for name in constrain_modules]
copy_plugins = False
copy_qml = False
copy_translations = False
@@ -81,34 +54,34 @@ def prepare_standalone_package_macos(self, vars):
no_copy_debug = True
def file_variant_filter(file_name, file_full_path):
- if self.qtinfo.build_type != 'debug_and_release':
+ if pyside_build.qtinfo.build_type != 'debug_and_release':
return True
if file_name.endswith('_debug.dylib') and no_copy_debug:
return False
return True
# Patching designer to use the Qt libraries provided in the wheel
- if config.is_internal_pyside_build():
- _macos_patch_executable('assistant', vars)
- _macos_patch_executable('designer', vars)
+ if config.is_internal_pyside_build() and not OPTION['NO_QT_TOOLS']:
+ for tool in PYSIDE_UNIX_BUNDLED_TOOLS:
+ _macos_patch_executable(tool, _vars)
# <qt>/lib/* -> <setup>/{st_package_name}/Qt/lib
- if self.qt_is_framework_build():
+ if pyside_build.qt_is_framework_build():
def framework_dir_filter(dir_name, parent_full_path, dir_full_path):
if '.framework' in dir_name:
if (dir_name.startswith('QtWebEngine')
- and not self.is_webengine_built(built_modules)):
+ and not pyside_build.is_webengine_built(built_modules)):
return False
if constrain_modules and dir_name not in constrain_frameworks:
return False
if dir_name in ['Headers', 'fonts']:
return False
- if dir_full_path.endswith('Versions/Current'):
+ if str(dir_full_path).endswith('Versions/Current'):
return False
- if dir_full_path.endswith('Versions/5/Resources'):
+ if str(dir_full_path).endswith('Versions/5/Resources'):
return False
- if dir_full_path.endswith('Versions/5/Helpers'):
+ if str(dir_full_path).endswith('Versions/5/Helpers'):
return False
return general_dir_filter(dir_name, parent_full_path, dir_full_path)
@@ -117,16 +90,16 @@ def prepare_standalone_package_macos(self, vars):
no_copy_debug = True
def framework_variant_filter(file_name, file_full_path):
- if self.qtinfo.build_type != 'debug_and_release':
+ if pyside_build.qtinfo.build_type != 'debug_and_release':
return True
- dir_path = os.path.dirname(file_full_path)
+ dir_path = Path(file_full_path).parent
in_framework = dir_path.endswith("Versions/5")
if file_name.endswith('_debug') and in_framework and no_copy_debug:
return False
return True
- copydir("{qt_lib_dir}", "{st_build_dir}/{st_package_name}/Qt/lib",
- recursive=True, vars=vars,
+ copydir("{qt_lib_dir}", destination_qt_lib_dir,
+ recursive=True, _vars=_vars,
ignore=["*.la", "*.a", "*.cmake", "*.pc", "*.prl"],
dir_filter_function=framework_dir_filter,
file_filter_function=framework_variant_filter)
@@ -135,84 +108,81 @@ def prepare_standalone_package_macos(self, vars):
# present rpath does not work because it assumes a symlink
# from Versions/5/Helpers, thus adding two more levels of
# directory hierarchy.
- if self.is_webengine_built(built_modules):
- qt_lib_path = "{st_build_dir}/{st_package_name}/Qt/lib".format(**vars)
- bundle = "QtWebEngineCore.framework/Helpers/"
- bundle += "QtWebEngineProcess.app"
+ if pyside_build.is_webengine_built(built_modules):
+ bundle = Path("QtWebEngineCore.framework/Helpers/") / "QtWebEngineProcess.app"
binary = "Contents/MacOS/QtWebEngineProcess"
- webengine_process_path = os.path.join(bundle, binary)
- final_path = os.path.join(qt_lib_path, webengine_process_path)
+ webengine_process_path = bundle / binary
+ final_path = destination_qt_lib_dir / webengine_process_path
rpath = "@loader_path/../../../../../"
macos_fix_rpaths_for_library(final_path, rpath)
else:
ignored_modules = []
- if not self.is_webengine_built(built_modules):
+ if not pyside_build.is_webengine_built(built_modules):
ignored_modules.extend(['libQt6WebEngine*.dylib'])
accepted_modules = ['libQt6*.6.dylib']
if constrain_modules:
- accepted_modules = ["libQt6" + module + "*.6.dylib" for module in constrain_modules]
+ accepted_modules = [f"libQt6{module}*.6.dylib" for module in constrain_modules]
- copydir("{qt_lib_dir}",
- "{st_build_dir}/{st_package_name}/Qt/lib",
- filter=accepted_modules,
+ copydir("{qt_lib_dir}", destination_qt_lib_dir,
+ _filter=accepted_modules,
ignore=ignored_modules,
file_filter_function=file_variant_filter,
- recursive=True, vars=vars, force_copy_symlinks=True)
+ recursive=True, _vars=_vars, force_copy_symlinks=True)
- if self.is_webengine_built(built_modules):
- copydir("{qt_prefix_dir}/resources",
- "{st_build_dir}/{st_package_name}/Qt/resources",
- filter=None,
+ if pyside_build.is_webengine_built(built_modules):
+ copydir("{qt_data_dir}/resources",
+ destination_qt_dir / "resources",
+ _filter=None,
recursive=False,
- vars=vars)
+ _vars=_vars)
# Fix rpath for WebEngine process executable.
- qt_libexec_path = "{st_build_dir}/{st_package_name}/Qt/libexec".format(**vars)
+ qt_libexec_path = Path(destination_qt_dir) / "libexec"
binary = "QtWebEngineProcess"
- final_path = os.path.join(qt_libexec_path, binary)
+ final_path = qt_libexec_path / binary
rpath = "@loader_path/../lib"
macos_fix_rpaths_for_library(final_path, rpath)
if copy_qt_conf:
# Copy the qt.conf file to libexec.
- if not os.path.isdir(qt_libexec_path):
- os.makedirs(qt_libexec_path)
+ if not qt_libexec_path.is_dir():
+ qt_libexec_path.mkdir(parents=True)
copyfile(
f"{{build_dir}}/{PYSIDE}/{{st_package_name}}/qt.conf",
- qt_libexec_path, vars=vars)
+ qt_libexec_path, _vars=_vars)
if copy_plugins:
+ is_pypy = "pypy" in pyside_build.build_classifiers
# <qt>/plugins/* -> <setup>/{st_package_name}/Qt/plugins
- plugins_target = "{st_build_dir}/{st_package_name}/Qt/plugins"
- filters=["*.dylib"]
+ plugins_target = destination_qt_dir / "plugins"
+ filters = ["*.dylib"]
copydir("{qt_plugins_dir}", plugins_target,
- filter=filters,
+ _filter=filters,
recursive=True,
dir_filter_function=general_dir_filter,
file_filter_function=file_variant_filter,
- vars=vars)
- copydir("{install_dir}/plugins/designer",
- f"{plugins_target}/designer",
- filter=filters,
- recursive=False,
- vars=vars)
+ _vars=_vars)
+ if not is_pypy:
+ copydir("{install_dir}/plugins/designer",
+ plugins_target / "designer",
+ _filter=filters,
+ recursive=False,
+ _vars=_vars)
if copy_qml:
# <qt>/qml/* -> <setup>/{st_package_name}/Qt/qml
- copydir("{qt_qml_dir}",
- "{st_build_dir}/{st_package_name}/Qt/qml",
- filter=None,
+ copydir("{qt_qml_dir}", destination_qt_dir / "qml",
+ _filter=None,
recursive=True,
force=False,
dir_filter_function=general_dir_filter,
file_filter_function=file_variant_filter,
- vars=vars)
+ _vars=_vars)
if copy_translations:
# <qt>/translations/* ->
# <setup>/{st_package_name}/Qt/translations
- copydir("{qt_translations_dir}",
- "{st_build_dir}/{st_package_name}/Qt/translations",
- filter=["*.qm", "*.pak"],
+ copydir("{qt_translations_dir}", destination_qt_dir / "translations",
+ _filter=["*.qm", "*.pak"],
force=False,
- vars=vars)
+ _vars=_vars)
diff --git a/build_scripts/platforms/unix.py b/build_scripts/platforms/unix.py
index 8e5a5d584..3333f5f96 100644
--- a/build_scripts/platforms/unix.py
+++ b/build_scripts/platforms/unix.py
@@ -1,102 +1,74 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-import os
+# Copyright (C) 2018 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
import sys
-import fnmatch
-from .linux import prepare_standalone_package_linux
-from .macos import prepare_standalone_package_macos
+from pathlib import Path
+from ..log import log
from ..config import config
from ..options import OPTION
-from ..qtinfo import QtInfo
-from ..utils import copydir, copyfile, makefile
-from ..utils import regenerate_qt_resources
-from ..versions import PYSIDE, SHIBOKEN
+from ..utils import copydir, copyfile, copy_qt_metatypes, makefile
+from .. import PYSIDE, SHIBOKEN
+from .linux import prepare_standalone_package_linux
+from .macos import prepare_standalone_package_macos
+from .. import PYSIDE_UNIX_BIN_TOOLS, PYSIDE_UNIX_LIBEXEC_TOOLS, PYSIDE_UNIX_BUNDLED_TOOLS
-def _macos_copy_gui_executable(name, vars=None):
+def _macos_copy_gui_executable(name, _vars=None):
"""macOS helper: Copy a GUI executable from the .app folder and return the
files"""
- app_name = name[:1].upper() + name[1:] + '.app'
+ app_name = f"{name.capitalize()}.app"
return copydir(f"{{install_dir}}/bin/{app_name}",
f"{{st_build_dir}}/{{st_package_name}}/{app_name}",
- filter=None, recursive=True,
- force=False, vars=vars)
+ _filter=None, recursive=True,
+ force=False, _vars=_vars)
-def _unix_copy_gui_executable(name, vars=None):
+def _unix_copy_gui_executable(name, _vars=None):
"""UNIX helper: Copy a GUI executable and return the files"""
return copydir("{install_dir}/bin/",
"{st_build_dir}/{st_package_name}/",
- filter=[name],
- force=False, vars=vars)
+ _filter=[name],
+ force=False, _vars=_vars)
-def _copy_gui_executable(name, vars=None):
+def _copy_gui_executable(name, _vars=None):
"""Copy a GUI executable and return the files"""
- if sys.platform == 'darwin':
- return _macos_copy_gui_executable(name, vars)
- return _unix_copy_gui_executable(name, vars)
+ if sys.platform == 'darwin':
+ return _macos_copy_gui_executable(name, _vars)
+ return _unix_copy_gui_executable(name, _vars)
+
+def prepare_packages_posix(pyside_build, _vars, cross_build=False):
+ is_android = False
+ if str(OPTION['PLAT_NAME']).startswith('android'):
+ is_android = True
-def prepare_packages_posix(self, vars):
executables = []
libexec_executables = []
+ log.info("Copying files...")
+
+ destination_dir = Path("{st_build_dir}/{st_package_name}".format(**_vars))
+ destination_qt_dir = destination_dir / "Qt"
# <install>/lib/site-packages/{st_package_name}/* ->
# <setup>/{st_package_name}
# This copies the module .so/.dylib files and various .py files
# (__init__, config, git version, etc.)
copydir(
- "{site_packages_dir}/{st_package_name}",
- "{st_build_dir}/{st_package_name}",
- vars=vars)
+ "{site_packages_dir}/{st_package_name}", destination_dir,
+ _vars=_vars)
- generated_config = self.get_built_pyside_config(vars)
+ generated_config = pyside_build.get_built_pyside_config(_vars)
def adjusted_lib_name(name, version):
postfix = ''
- if sys.platform.startswith('linux'):
- postfix = '.so.' + version
+ if config.is_cross_compile() and is_android:
+ postfix = ".so"
+ elif sys.platform.startswith('linux'):
+ postfix = f".so.{version}"
elif sys.platform == 'darwin':
- postfix = '.' + version + '.dylib'
+ postfix = f".{version}.dylib"
return name + postfix
if config.is_internal_shiboken_module_build():
@@ -105,160 +77,177 @@ def prepare_packages_posix(self, vars):
copydir(
f"{{build_dir}}/{SHIBOKEN}/doc/html",
f"{{st_build_dir}}/{{st_package_name}}/docs/{SHIBOKEN}",
- force=False, vars=vars)
+ force=False, _vars=_vars)
# <install>/lib/lib* -> {st_package_name}/
copydir(
- "{install_dir}/lib/",
- "{st_build_dir}/{st_package_name}",
- filter=[
+ "{install_dir}/lib/", destination_dir,
+ _filter=[
adjusted_lib_name("libshiboken*",
generated_config['shiboken_library_soversion']),
],
- recursive=False, vars=vars, force_copy_symlinks=True)
+ recursive=False, _vars=_vars, force_copy_symlinks=True)
if config.is_internal_shiboken_generator_build():
# <install>/bin/* -> {st_package_name}/
- executables.extend(copydir(
- "{install_dir}/bin/",
- "{st_build_dir}/{st_package_name}",
- filter=[SHIBOKEN],
- recursive=False, vars=vars))
+ copydir(
+ "{install_dir}/bin/", destination_dir,
+ _filter=[SHIBOKEN],
+ recursive=False, _vars=_vars)
# Used to create scripts directory.
makefile(
"{st_build_dir}/{st_package_name}/scripts/shiboken_tool.py",
- vars=vars)
+ _vars=_vars)
# For setting up setuptools entry points.
copyfile(
"{install_dir}/bin/shiboken_tool.py",
"{st_build_dir}/{st_package_name}/scripts/shiboken_tool.py",
- force=False, vars=vars)
+ force=False, _vars=_vars)
if config.is_internal_shiboken_generator_build() or config.is_internal_pyside_build():
# <install>/include/* -> <setup>/{st_package_name}/include
copydir(
"{install_dir}/include/{cmake_package_name}",
"{st_build_dir}/{st_package_name}/include",
- vars=vars)
+ _vars=_vars)
if config.is_internal_pyside_build():
- makefile(
- "{st_build_dir}/{st_package_name}/scripts/__init__.py",
- vars=vars)
-
- # For setting up setuptools entry points
- copyfile(
- "{install_dir}/bin/pyside_tool.py",
- "{st_build_dir}/{st_package_name}/scripts/pyside_tool.py",
- force=False, vars=vars)
-
- # <install>/bin/* -> {st_package_name}/
- executables.extend(copydir(
- "{install_dir}/bin/",
- "{st_build_dir}/{st_package_name}",
- filter=[f"{PYSIDE}-lupdate"],
- recursive=False, vars=vars))
-
-
- lib_exec_filters = []
- if not OPTION['NO_QT_TOOLS']:
- lib_exec_filters.extend(['uic', 'rcc'])
+ if not is_android:
+ makefile(
+ "{st_build_dir}/{st_package_name}/scripts/__init__.py",
+ _vars=_vars)
+
+ scripts = ["pyside_tool.py", "metaobjectdump.py", "project.py", "qml.py",
+ "qtpy2cpp.py", "deploy.py"]
+
+ script_dirs = ["qtpy2cpp_lib", "deploy_lib", "project"]
+
+ if sys.platform.startswith("linux"):
+ scripts.append("android_deploy.py")
+ scripts.append("requirements-android.txt")
+ script_dirs.extend(["deploy_lib/android",
+ "deploy_lib/android/recipes/PySide6",
+ "deploy_lib/android/recipes/shiboken6",])
+
+ # For setting up setuptools entry points
+ for script in scripts:
+ src = f"{{install_dir}}/bin/{script}"
+ target = f"{{st_build_dir}}/{{st_package_name}}/scripts/{script}"
+ copyfile(src, target, force=False, _vars=_vars)
+
+ for script_dir in script_dirs:
+ src = f"{{install_dir}}/bin/{script_dir}"
+ target = f"{{st_build_dir}}/{{st_package_name}}/scripts/{script_dir}"
+ # Exclude subdirectory tests
+ copydir(src, target, _filter=["*.py", "*.spec", "*.jpg", "*.icns", "*.ico"],
+ recursive=False, _vars=_vars)
+
+ # <install>/bin/* -> {st_package_name}/
executables.extend(copydir(
- "{install_dir}/bin/",
- "{st_build_dir}/{st_package_name}",
- filter=["lrelease", "lupdate"],
- recursive=False, vars=vars))
- # Copying assistant/designer
- executables.extend(_copy_gui_executable('assistant', vars=vars))
- executables.extend(_copy_gui_executable('designer', vars=vars))
- executables.extend(_copy_gui_executable('linguist', vars=vars))
-
- # Copy libexec
- built_modules = self.get_built_pyside_config(vars)['built_modules']
- if self.is_webengine_built(built_modules):
- lib_exec_filters.append('QtWebEngineProcess')
- if lib_exec_filters:
- libexec_executables.extend(copydir("{qt_lib_execs_dir}",
- "{st_build_dir}/{st_package_name}/Qt/libexec",
- filter=lib_exec_filters,
- recursive=False,
- vars=vars))
+ "{install_dir}/bin/", destination_dir,
+ _filter=[f"{PYSIDE}-lupdate"],
+ recursive=False, _vars=_vars))
+
+ lib_exec_filters = []
+ if not OPTION['NO_QT_TOOLS']:
+ lib_exec_filters.extend(PYSIDE_UNIX_LIBEXEC_TOOLS)
+ executables.extend(copydir(
+ "{install_dir}/bin/", destination_dir,
+ _filter=PYSIDE_UNIX_BIN_TOOLS,
+ recursive=False, _vars=_vars))
+
+ # Copying assistant/designer/linguist
+ for tool in PYSIDE_UNIX_BUNDLED_TOOLS:
+ executables.extend(_copy_gui_executable(tool, _vars=_vars))
+
+ copy_qt_metatypes(destination_qt_dir, _vars)
+
+ # Copy libexec
+ built_modules = pyside_build.get_built_pyside_config(_vars)['built_modules']
+ if pyside_build.is_webengine_built(built_modules):
+ lib_exec_filters.append('QtWebEngineProcess')
+ if lib_exec_filters:
+ libexec_executables.extend(copydir("{qt_lib_execs_dir}",
+ destination_qt_dir / "libexec",
+ _filter=lib_exec_filters,
+ recursive=False,
+ _vars=_vars))
# <install>/lib/lib* -> {st_package_name}/
copydir(
- "{install_dir}/lib/",
- "{st_build_dir}/{st_package_name}",
- filter=[
+ "{install_dir}/lib", destination_dir,
+ _filter=[
adjusted_lib_name("libpyside*",
generated_config['pyside_library_soversion']),
],
- recursive=False, vars=vars, force_copy_symlinks=True)
-
- # <install>/share/{st_package_name}/typesystems/* ->
- # <setup>/{st_package_name}/typesystems
+ recursive=False, _vars=_vars, force_copy_symlinks=True)
+
+ copydir("{qt_module_json_files_dir}",
+ destination_qt_dir / "modules",
+ _filter=["*.json"], _vars=_vars)
+
+ if not config.is_cross_compile():
+ # <install>/share/{st_package_name}/typesystems/* ->
+ # <setup>/{st_package_name}/typesystems
+ copydir(
+ "{install_dir}/share/{st_package_name}/typesystems",
+ "{st_build_dir}/{st_package_name}/typesystems",
+ _vars=_vars)
+
+ # <install>/share/{st_package_name}/glue/* ->
+ # <setup>/{st_package_name}/glue
+ copydir(
+ "{install_dir}/share/{st_package_name}/glue",
+ "{st_build_dir}/{st_package_name}/glue",
+ _vars=_vars)
+
+ if not is_android:
+ # <source>/pyside6/{st_package_name}/support/* ->
+ # <setup>/{st_package_name}/support/*
+ copydir(
+ f"{{build_dir}}/{PYSIDE}/{{st_package_name}}/support",
+ "{st_build_dir}/{st_package_name}/support",
+ _vars=_vars)
+
+ # <source>/pyside6/{st_package_name}/QtAsyncio/* ->
+ # <setup>/{st_package_name}/QtAsyncio/*
copydir(
- "{install_dir}/share/{st_package_name}/typesystems",
- "{st_build_dir}/{st_package_name}/typesystems",
- vars=vars)
-
- # <install>/share/{st_package_name}/glue/* ->
- # <setup>/{st_package_name}/glue
- copydir(
- "{install_dir}/share/{st_package_name}/glue",
- "{st_build_dir}/{st_package_name}/glue",
- vars=vars)
-
- # <source>/pyside6/{st_package_name}/support/* ->
- # <setup>/{st_package_name}/support/*
- copydir(
- f"{{build_dir}}/{PYSIDE}/{{st_package_name}}/support",
- "{st_build_dir}/{st_package_name}/support",
- vars=vars)
+ "{site_packages_dir}/{st_package_name}/QtAsyncio",
+ "{st_build_dir}/{st_package_name}/QtAsyncio",
+ _vars=_vars)
# <source>/pyside6/{st_package_name}/*.pyi ->
# <setup>/{st_package_name}/*.pyi
copydir(
- f"{{build_dir}}/{PYSIDE}/{{st_package_name}}",
- "{st_build_dir}/{st_package_name}",
- filter=["*.pyi", "py.typed"],
- vars=vars)
-
- if not OPTION["NOEXAMPLES"]:
- def pycache_dir_filter(dir_name, parent_full_path, dir_full_path):
- if fnmatch.fnmatch(dir_name, "__pycache__"):
- return False
- return True
- # examples/* -> <setup>/{st_package_name}/examples
- copydir(os.path.join(self.script_dir, "examples"),
- "{st_build_dir}/{st_package_name}/examples",
- force=False, vars=vars, dir_filter_function=pycache_dir_filter)
- # Re-generate examples Qt resource files for Python 3
- # compatibility
- examples_path = "{st_build_dir}/{st_package_name}/examples".format(**vars)
- lib_execs_dir = QtInfo().lib_execs_dir
- pyside_rcc_path = f"{lib_execs_dir}/rcc"
- pyside_rcc_options = ['-g', 'python']
- regenerate_qt_resources(examples_path, pyside_rcc_path, pyside_rcc_options)
+ f"{{build_dir}}/{PYSIDE}/{{st_package_name}}", destination_dir,
+ _filter=["*.pyi", "py.typed"],
+ _vars=_vars)
+
+ # copy the jar files
+ if is_android:
+ copydir(
+ "{install_dir}/lib/jar",
+ "{st_build_dir}/{st_package_name}/jar",
+ _vars=_vars)
# Copy Qt libs to package
if OPTION["STANDALONE"]:
if config.is_internal_pyside_build() or config.is_internal_shiboken_generator_build():
- vars['built_modules'] = generated_config['built_modules']
+ _vars['built_modules'] = generated_config['built_modules']
if sys.platform == 'darwin':
- prepare_standalone_package_macos(self, vars)
+ prepare_standalone_package_macos(pyside_build, _vars)
else:
- prepare_standalone_package_linux(self, vars)
+ prepare_standalone_package_linux(pyside_build, _vars, cross_build,
+ is_android=is_android)
if config.is_internal_shiboken_generator_build():
# Copy over clang before rpath patching.
- self.prepare_standalone_clang(is_win=False)
+ pyside_build.prepare_standalone_clang(is_win=False)
# Update rpath to $ORIGIN
- if sys.platform.startswith('linux') or sys.platform.startswith('darwin'):
- rpath_path = "{st_build_dir}/{st_package_name}".format(**vars)
- self.update_rpath(rpath_path, executables)
- self.update_rpath(rpath_path, self.package_libraries(rpath_path))
+ if (sys.platform.startswith('linux') or sys.platform.startswith('darwin')) and not is_android:
+ pyside_build.update_rpath(executables)
if libexec_executables:
- self.update_rpath(rpath_path, libexec_executables, libexec=True)
+ pyside_build.update_rpath(libexec_executables, libexec=True)
diff --git a/build_scripts/platforms/windows_desktop.py b/build_scripts/platforms/windows_desktop.py
index 70c2fbfb6..9c29953be 100644
--- a/build_scripts/platforms/windows_desktop.py
+++ b/build_scripts/platforms/windows_desktop.py
@@ -1,69 +1,38 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2018 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import functools
import os
-import fnmatch
+import tempfile
+from pathlib import Path
+
+from ..log import log
from ..config import config
from ..options import OPTION
-from ..utils import copydir, copyfile, makefile
-from ..utils import regenerate_qt_resources, filter_match
-from ..utils import download_and_extract_7z
-from ..versions import PYSIDE, SHIBOKEN
+from ..utils import (copydir, copyfile, copy_qt_metatypes,
+ download_and_extract_7z, filter_match, makefile)
+from .. import PYSIDE, SHIBOKEN, PYSIDE_WINDOWS_BIN_TOOLS
-def prepare_packages_win32(self, vars):
+def prepare_packages_win32(pyside_build, _vars):
# For now, debug symbols will not be shipped into the package.
copy_pdbs = False
pdbs = []
- if (self.debug or self.build_type == 'RelWithDebInfo') and copy_pdbs:
+ if (pyside_build.debug or pyside_build.build_type == 'RelWithDebInfo') and copy_pdbs:
pdbs = ['*.pdb']
+ destination_dir = Path("{st_build_dir}/{st_package_name}".format(**_vars))
+ destination_qt_dir = destination_dir
+ log.info("Copying files...")
+
# <install>/lib/site-packages/{st_package_name}/* ->
# <setup>/{st_package_name}
# This copies the module .pyd files and various .py files
# (__init__, config, git version, etc.)
copydir(
- "{site_packages_dir}/{st_package_name}",
- "{st_build_dir}/{st_package_name}",
- vars=vars)
+ "{site_packages_dir}/{st_package_name}", destination_dir,
+ _vars=_vars)
if config.is_internal_shiboken_module_build():
# <build>/shiboken6/doc/html/* ->
@@ -71,224 +40,234 @@ def prepare_packages_win32(self, vars):
copydir(
f"{{build_dir}}/{SHIBOKEN}/doc/html",
f"{{st_build_dir}}/{{st_package_name}}/docs/{SHIBOKEN}",
- force=False, vars=vars)
+ force=False, _vars=_vars)
# <install>/bin/*.dll -> {st_package_name}/
copydir(
- "{install_dir}/bin/",
- "{st_build_dir}/{st_package_name}",
- filter=["shiboken*.dll"],
- recursive=False, vars=vars)
+ "{install_dir}/bin/", destination_qt_dir,
+ _filter=["shiboken*.dll"],
+ recursive=False, _vars=_vars)
# <install>/lib/*.lib -> {st_package_name}/
copydir(
- "{install_dir}/lib/",
- "{st_build_dir}/{st_package_name}",
- filter=["shiboken*.lib"],
- recursive=False, vars=vars)
+ "{install_dir}/lib/", destination_qt_dir,
+ _filter=["shiboken*.lib"],
+ recursive=False, _vars=_vars)
# @TODO: Fix this .pdb file not to overwrite release
# {shibokengenerator}.pdb file.
# Task-number: PYSIDE-615
copydir(
- f"{{build_dir}}/{SHIBOKEN}/shibokenmodule",
- "{st_build_dir}/{st_package_name}",
- filter=pdbs,
- recursive=False, vars=vars)
+ f"{{build_dir}}/{SHIBOKEN}/shibokenmodule", destination_dir,
+ _filter=pdbs,
+ recursive=False, _vars=_vars)
# pdb files for libshiboken and libpyside
copydir(
- f"{{build_dir}}/{SHIBOKEN}/libshiboken",
- "{st_build_dir}/{st_package_name}",
- filter=pdbs,
- recursive=False, vars=vars)
+ f"{{build_dir}}/{SHIBOKEN}/libshiboken", destination_dir,
+ _filter=pdbs,
+ recursive=False, _vars=_vars)
if config.is_internal_shiboken_generator_build():
# <install>/bin/*.dll -> {st_package_name}/
copydir(
- "{install_dir}/bin/",
- "{st_build_dir}/{st_package_name}",
- filter=["shiboken*.exe"],
- recursive=False, vars=vars)
+ "{install_dir}/bin/", destination_dir,
+ _filter=["shiboken*.exe"],
+ recursive=False, _vars=_vars)
# Used to create scripts directory.
- makefile(
- "{st_build_dir}/{st_package_name}/scripts/shiboken_tool.py",
- vars=vars)
+ makefile(f"{destination_dir}/scripts/shiboken_tool.py", _vars=_vars)
# For setting up setuptools entry points.
copyfile(
"{install_dir}/bin/shiboken_tool.py",
- "{st_build_dir}/{st_package_name}/scripts/shiboken_tool.py",
- force=False, vars=vars)
+ f"{destination_dir}/scripts/shiboken_tool.py",
+ force=False, _vars=_vars)
# @TODO: Fix this .pdb file not to overwrite release
# {shibokenmodule}.pdb file.
# Task-number: PYSIDE-615
copydir(
- f"{{build_dir}}/{SHIBOKEN}/generator",
- "{st_build_dir}/{st_package_name}",
- filter=pdbs,
- recursive=False, vars=vars)
+ f"{{build_dir}}/{SHIBOKEN}/generator", destination_dir,
+ _filter=pdbs,
+ recursive=False, _vars=_vars)
if config.is_internal_shiboken_generator_build() or config.is_internal_pyside_build():
# <install>/include/* -> <setup>/{st_package_name}/include
copydir(
"{install_dir}/include/{cmake_package_name}",
- "{st_build_dir}/{st_package_name}/include",
- vars=vars)
+ destination_dir / "include",
+ _vars=_vars)
if config.is_internal_pyside_build():
# <build>/pyside6/{st_package_name}/*.pdb ->
# <setup>/{st_package_name}
copydir(
- f"{{build_dir}}/{PYSIDE}/{{st_package_name}}",
- "{st_build_dir}/{st_package_name}",
- filter=pdbs,
- recursive=False, vars=vars)
+ f"{{build_dir}}/{PYSIDE}/{{st_package_name}}", destination_dir,
+ _filter=pdbs,
+ recursive=False, _vars=_vars)
- makefile(
- "{st_build_dir}/{st_package_name}/scripts/__init__.py",
- vars=vars)
+ makefile(f"{destination_dir}/scripts/__init__.py", _vars=_vars)
# For setting up setuptools entry points
- copyfile(
- "{install_dir}/bin/pyside_tool.py",
- "{st_build_dir}/{st_package_name}/scripts/pyside_tool.py",
- force=False, vars=vars)
+ for script in ("pyside_tool.py", "metaobjectdump.py", "project.py", "qml.py",
+ "qtpy2cpp.py", "deploy.py"):
+ src = f"{{install_dir}}/bin/{script}"
+ target = f"{{st_build_dir}}/{{st_package_name}}/scripts/{script}"
+ copyfile(src, target, force=False, _vars=_vars)
+
+ for script_dir in ("qtpy2cpp_lib", "deploy_lib", "project"):
+ src = f"{{install_dir}}/bin/{script_dir}"
+ target = f"{{st_build_dir}}/{{st_package_name}}/scripts/{script_dir}"
+ # Exclude subdirectory tests
+ copydir(src, target, _filter=["*.py", "*.spec", "*.jpg", "*.icns", "*.ico"],
+ recursive=False, _vars=_vars)
# <install>/bin/*.exe,*.dll -> {st_package_name}/
filters = ["pyside*.exe", "pyside*.dll"]
if not OPTION['NO_QT_TOOLS']:
- filters.extend(["lrelease.exe", "lupdate.exe", "uic.exe",
- "rcc.exe", "assistant.exe", "designer.exe",
- "linguist.exe"])
- copydir(
- "{install_dir}/bin/",
- "{st_build_dir}/{st_package_name}",
- filter=filters,
- recursive=False, vars=vars)
+ filters.extend([f"{tool}.exe" for tool in PYSIDE_WINDOWS_BIN_TOOLS])
+ copydir("{install_dir}/bin/", destination_qt_dir,
+ _filter=filters,
+ recursive=False, _vars=_vars)
+
+ copy_qt_metatypes(destination_qt_dir, _vars)
# <install>/lib/*.lib -> {st_package_name}/
copydir(
- "{install_dir}/lib/",
- "{st_build_dir}/{st_package_name}",
- filter=["pyside*.lib"],
- recursive=False, vars=vars)
+ "{install_dir}/lib/", destination_dir,
+ _filter=["pyside*.lib"],
+ recursive=False, _vars=_vars)
+
+ copydir("{qt_module_json_files_dir}",
+ destination_qt_dir / "modules",
+ _filter=["*.json"], _vars=_vars)
# <install>/share/{st_package_name}/typesystems/* ->
# <setup>/{st_package_name}/typesystems
copydir(
"{install_dir}/share/{st_package_name}/typesystems",
- "{st_build_dir}/{st_package_name}/typesystems",
- vars=vars)
+ destination_dir / "typesystems",
+ _vars=_vars)
# <install>/share/{st_package_name}/glue/* ->
# <setup>/{st_package_name}/glue
copydir(
"{install_dir}/share/{st_package_name}/glue",
- "{st_build_dir}/{st_package_name}/glue",
- vars=vars)
+ destination_dir / "glue",
+ _vars=_vars)
# <source>/pyside6/{st_package_name}/support/* ->
# <setup>/{st_package_name}/support/*
copydir(
f"{{build_dir}}/{PYSIDE}/{{st_package_name}}/support",
- "{st_build_dir}/{st_package_name}/support",
- vars=vars)
+ destination_dir / "support",
+ _vars=_vars)
+
+ # <source>/pyside6/{st_package_name}/QtAsyncio/* ->
+ # <setup>/{st_package_name}/QtAsyncio/*
+ copydir(
+ "{site_packages_dir}/{st_package_name}/QtAsyncio",
+ "{st_build_dir}/{st_package_name}/QtAsyncio",
+ _vars=_vars)
# <source>/pyside6/{st_package_name}/*.pyi ->
# <setup>/{st_package_name}/*.pyi
copydir(
- f"{{build_dir}}/{PYSIDE}/{{st_package_name}}",
- "{st_build_dir}/{st_package_name}",
- filter=["*.pyi", "py.typed"],
- vars=vars)
+ f"{{build_dir}}/{PYSIDE}/{{st_package_name}}", destination_dir,
+ _filter=["*.pyi", "py.typed"],
+ _vars=_vars)
copydir(
- f"{{build_dir}}/{PYSIDE}/libpyside",
- "{st_build_dir}/{st_package_name}",
- filter=pdbs,
- recursive=False, vars=vars)
-
- if not OPTION["NOEXAMPLES"]:
- def pycache_dir_filter(dir_name, parent_full_path, dir_full_path):
- if fnmatch.fnmatch(dir_name, "__pycache__"):
- return False
- return True
- # examples/* -> <setup>/{st_package_name}/examples
- copydir(os.path.join(self.script_dir, "examples"),
- "{st_build_dir}/{st_package_name}/examples",
- force=False, vars=vars, dir_filter_function=pycache_dir_filter)
- # Re-generate examples Qt resource files for Python 3
- # compatibility
- examples_path = "{st_build_dir}/{st_package_name}/examples".format(
- **vars)
- pyside_rcc_path = "rcc.exe"
- pyside_rcc_options = ['-g', 'python']
- regenerate_qt_resources(examples_path, pyside_rcc_path, pyside_rcc_options)
-
- if vars['ssl_libs_dir']:
+ f"{{build_dir}}/{PYSIDE}/libpyside", destination_dir,
+ _filter=pdbs,
+ recursive=False, _vars=_vars)
+
+ if _vars['ssl_libs_dir']:
# <ssl_libs>/* -> <setup>/{st_package_name}/openssl
- copydir("{ssl_libs_dir}", "{st_build_dir}/{st_package_name}/openssl",
- filter=[
+ copydir("{ssl_libs_dir}", destination_dir / "openssl",
+ _filter=[
"libeay32.dll",
"ssleay32.dll"],
- force=False, vars=vars)
+ force=False, _vars=_vars)
if config.is_internal_shiboken_module_build():
# The C++ std library dlls need to be packaged with the
# shiboken module, because libshiboken uses C++ code.
- copy_msvc_redist_files(vars, "{build_dir}/msvc_redist".format(**vars))
+ copy_msvc_redist_files(destination_dir)
if config.is_internal_pyside_build() or config.is_internal_shiboken_generator_build():
- copy_qt_artifacts(self, copy_pdbs, vars)
- copy_msvc_redist_files(vars, "{build_dir}/msvc_redist".format(**vars))
-
-
-def copy_msvc_redist_files(vars, redist_target_path):
- # MSVC redistributable file list.
- msvc_redist = [
- "concrt140.dll",
- "msvcp140.dll",
- "ucrtbase.dll",
- "vcamp140.dll",
- "vccorlib140.dll",
- "vcomp140.dll",
- "vcruntime140.dll",
- "vcruntime140_1.dll",
- "msvcp140_1.dll",
- "msvcp140_2.dll",
- "msvcp140_codecvt_ids.dll"
- ]
+ copy_qt_artifacts(pyside_build, destination_qt_dir, copy_pdbs, _vars)
+ copy_msvc_redist_files(destination_dir)
+
+
+# MSVC redistributable file list.
+msvc_redist = [
+ "concrt140.dll",
+ "msvcp140.dll",
+ "vcamp140.dll",
+ "vccorlib140.dll",
+ "vcomp140.dll",
+ "vcruntime140.dll",
+ "vcruntime140_1.dll",
+ "msvcp140_1.dll",
+ "msvcp140_2.dll",
+ "msvcp140_codecvt_ids.dll"
+]
+
+
+def copy_msvc_redist_files(destination_dir):
+ in_coin = os.environ.get('COIN_LAUNCH_PARAMETERS', None)
+ if in_coin is None:
+ log.info("Qt dependency DLLs (MSVC redist) will not be copied.")
+ return
# Make a directory where the files should be extracted.
- if not os.path.exists(redist_target_path):
- os.makedirs(redist_target_path)
+ if not destination_dir.exists():
+ destination_dir.mkdir(parents=True)
+ # Copy Qt dependency DLLs (MSVC) from PATH when building on Qt CI.
+ paths = os.environ["PATH"].split(os.pathsep)
+ for path in paths:
+ try:
+ for f in Path(path).glob("*140*.dll"):
+ if f.name in msvc_redist:
+ copyfile(f, Path(destination_dir) / f.name)
+ msvc_redist.remove(f.name)
+ if not msvc_redist:
+ break
+ except WindowsError:
+ continue
+
+ if msvc_redist:
+ msg = "The following Qt dependency DLLs (MSVC redist) were not found: {msvc_redist}"
+ raise FileNotFoundError(msg)
+
+
+def copy_qt_dependency_dlls(_vars, destination_qt_dir, artifacts):
# Extract Qt dependency dlls when building on Qt CI.
in_coin = os.environ.get('COIN_LAUNCH_PARAMETERS', None)
- if in_coin is not None:
- redist_url = "http://download.qt.io/development_releases/prebuilt/vcredist/"
+ if in_coin is None:
+ log.info("Qt dependency DLLs will not be downloaded and extracted.")
+ return
+
+ with tempfile.TemporaryDirectory() as temp_path:
+ redist_url = "https://download.qt.io/development_releases/prebuilt/vcredist/"
zip_file = "pyside_qt_deps_64_2019.7z"
- if "{target_arch}".format(**vars) == "32":
+ if "{target_arch}".format(**_vars) == "32":
zip_file = "pyside_qt_deps_32_2019.7z"
try:
- download_and_extract_7z(redist_url + zip_file, redist_target_path)
- except:
- print("download.qt.io is down, try with mirror")
- redist_url = "https://www.funet.fi/pub/mirrors/download.qt-project.org/development_releases/prebuilt/vcredist/"
- download_and_extract_7z(redist_url + zip_file, redist_target_path)
- else:
- print("Qt dependency DLLs (MSVC redist) will not be downloaded and extracted.")
+ download_and_extract_7z(redist_url + zip_file, temp_path)
+ except Exception as e:
+ log.warning(f"Download failed: {type(e).__name__}: {e}")
+ log.warning("download.qt.io is down, try with mirror")
+ redist_url = "https://master.qt.io/development_releases/prebuilt/vcredist/"
+ download_and_extract_7z(redist_url + zip_file, temp_path)
+ copydir(temp_path, destination_qt_dir, _filter=artifacts, recursive=False, _vars=_vars)
- copydir(redist_target_path,
- "{st_build_dir}/{st_package_name}",
- filter=msvc_redist, recursive=False, vars=vars)
-
-def copy_qt_artifacts(self, copy_pdbs, vars):
- built_modules = self.get_built_pyside_config(vars)['built_modules']
+def copy_qt_artifacts(pyside_build, destination_qt_dir, copy_pdbs, _vars):
+ built_modules = pyside_build.get_built_pyside_config(_vars)['built_modules']
constrain_modules = None
copy_plugins = True
@@ -296,7 +275,6 @@ def copy_qt_artifacts(self, copy_pdbs, vars):
copy_translations = True
copy_qt_conf = True
copy_qt_permanent_artifacts = True
- copy_msvc_redist = False
copy_clang = False
if config.is_internal_shiboken_generator_build():
@@ -306,13 +284,16 @@ def copy_qt_artifacts(self, copy_pdbs, vars):
copy_translations = False
copy_qt_conf = False
copy_qt_permanent_artifacts = False
- copy_msvc_redist = True
copy_clang = True
# <qt>/bin/*.dll and Qt *.exe -> <setup>/{st_package_name}
qt_artifacts_permanent = [
+ "avcodec-60.dll",
+ "avformat-60.dll",
+ "avutil-58.dll",
+ "swresample-4.dll",
+ "swscale-7.dll",
"opengl*.dll",
- "d3d*.dll",
"designer.exe",
"linguist.exe",
"lrelease.exe",
@@ -326,37 +307,24 @@ def copy_qt_artifacts(self, copy_pdbs, vars):
"libEGL{}.dll",
"libGLESv2{}.dll"
]
- if self.qtinfo.build_type != 'debug_and_release':
+ if pyside_build.qtinfo.build_type != 'debug_and_release':
egl_suffix = '*'
- elif self.debug:
+ elif pyside_build.debug:
egl_suffix = 'd'
else:
egl_suffix = ''
qt_artifacts_egl = [a.format(egl_suffix) for a in qt_artifacts_egl]
- artifacts = []
if copy_qt_permanent_artifacts:
- artifacts += qt_artifacts_permanent
- artifacts += qt_artifacts_egl
-
- if copy_msvc_redist:
- # The target path has to be qt_bin_dir at the moment,
- # because the extracted archive also contains the opengl32sw
- # and the d3dcompiler dlls, which are copied not by this
- # function, but by the copydir below.
- copy_msvc_redist_files(vars, "{qt_bin_dir}".format(**vars))
-
- if artifacts:
- copydir("{qt_bin_dir}",
- "{st_build_dir}/{st_package_name}",
- filter=artifacts, recursive=False, vars=vars)
+ artifacts = qt_artifacts_permanent + qt_artifacts_egl
+ copy_qt_dependency_dlls(_vars, destination_qt_dir, artifacts)
# <qt>/bin/*.dll and Qt *.pdbs -> <setup>/{st_package_name} part two
# File filter to copy only debug or only release files.
if constrain_modules:
- qt_dll_patterns = ["Qt6" + x + "{}.dll" for x in constrain_modules]
+ qt_dll_patterns = [f"Qt6{x}{{}}.dll" for x in constrain_modules]
if copy_pdbs:
- qt_dll_patterns += ["Qt6" + x + "{}.pdb" for x in constrain_modules]
+ qt_dll_patterns += [f"Qt6{x}{{}}.pdb" for x in constrain_modules]
else:
qt_dll_patterns = ["Qt6*{}.dll", "lib*{}.dll"]
if copy_pdbs:
@@ -369,11 +337,15 @@ def copy_qt_artifacts(self, copy_pdbs, vars):
# If qt is not a debug_and_release build, that means there
# is only one set of shared libraries, so we can just copy
# them.
- if self.qtinfo.build_type != 'debug_and_release':
+ if pyside_build.qtinfo.build_type != 'debug_and_release':
if filter_match(file_name, release):
return True
return False
+ # Setup Paths
+ file_name = Path(file_name)
+ file_full_path = Path(file_full_path)
+
# In debug_and_release case, choosing which files to copy
# is more difficult. We want to copy only the files that
# match the PySide6 build type. So if PySide6 is built in
@@ -388,40 +360,39 @@ def copy_qt_artifacts(self, copy_pdbs, vars):
# file is a debug or release file.
# e.g. ["Qt6Cored", ".dll"]
- file_split = os.path.splitext(file_name)
- file_base_name = file_split[0]
- file_ext = file_split[1]
+ file_base_name = file_name.stem
+ file_ext = file_name.suffix
# e.g. "/home/work/qt/qtbase/bin"
- file_path_dir_name = os.path.dirname(file_full_path)
+ file_path_dir_name = file_full_path.parent
# e.g. "Qt6Coredd"
maybe_debug_name = f"{file_base_name}d"
- if self.debug:
- filter = debug
+ if pyside_build.debug:
+ _filter = debug
def predicate(path):
- return not os.path.exists(path)
+ return not path.exists()
else:
- filter = release
+ _filter = release
def predicate(path):
- return os.path.exists(path)
+ return path.exists()
# e.g. "/home/work/qt/qtbase/bin/Qt6Coredd.dll"
- other_config_path = os.path.join(file_path_dir_name, maybe_debug_name + file_ext)
+ other_config_path = file_path_dir_name / (maybe_debug_name + file_ext)
- if (filter_match(file_name, filter) and predicate(other_config_path)):
+ if (filter_match(file_name, _filter) and predicate(other_config_path)):
return True
return False
qt_dll_filter = functools.partial(qt_build_config_filter,
qt_dll_patterns)
- copydir("{qt_bin_dir}",
- "{st_build_dir}/{st_package_name}",
+ copydir("{qt_bin_dir}", destination_qt_dir,
file_filter_function=qt_dll_filter,
- recursive=False, vars=vars)
+ recursive=False, _vars=_vars)
if copy_plugins:
+ is_pypy = "pypy" in pyside_build.build_classifiers
# <qt>/plugins/* -> <setup>/{st_package_name}/plugins
- plugins_target = "{st_build_dir}/{st_package_name}/plugins"
+ plugins_target = f"{destination_qt_dir}/plugins"
plugin_dll_patterns = ["*{}.dll"]
pdb_pattern = "*{}.pdb"
if copy_pdbs:
@@ -429,20 +400,20 @@ def copy_qt_artifacts(self, copy_pdbs, vars):
plugin_dll_filter = functools.partial(qt_build_config_filter, plugin_dll_patterns)
copydir("{qt_plugins_dir}", plugins_target,
file_filter_function=plugin_dll_filter,
- vars=vars)
- copydir("{install_dir}/plugins/designer",
- f"{plugins_target}/designer",
- filter=["*.dll"],
- recursive=False,
- vars=vars)
+ _vars=_vars)
+ if not is_pypy:
+ copydir("{install_dir}/plugins/designer",
+ f"{plugins_target}/designer",
+ _filter=["*.dll"],
+ recursive=False,
+ _vars=_vars)
if copy_translations:
# <qt>/translations/* -> <setup>/{st_package_name}/translations
- copydir("{qt_translations_dir}",
- "{st_build_dir}/{st_package_name}/translations",
- filter=["*.qm", "*.pak"],
+ copydir("{qt_translations_dir}", f"{destination_qt_dir}/translations",
+ _filter=["*.qm", "*.pak"],
force=False,
- vars=vars)
+ _vars=_vars)
if copy_qml:
# <qt>/qml/* -> <setup>/{st_package_name}/qml
@@ -451,42 +422,40 @@ def copy_qt_artifacts(self, copy_pdbs, vars):
qml_ignore = [a.format('') for a in qml_ignore_patterns]
# Copy all files that are not dlls and pdbs (.qml, qmldir).
- copydir("{qt_qml_dir}", "{st_build_dir}/{st_package_name}/qml",
+ copydir("{qt_qml_dir}", f"{destination_qt_dir}/qml",
ignore=qml_ignore,
force=False,
recursive=True,
- vars=vars)
+ _vars=_vars)
if copy_pdbs:
qml_dll_patterns += [pdb_pattern]
qml_dll_filter = functools.partial(qt_build_config_filter, qml_dll_patterns)
# Copy all dlls (and possibly pdbs).
- copydir("{qt_qml_dir}", "{st_build_dir}/{st_package_name}/qml",
+ copydir("{qt_qml_dir}", f"{destination_qt_dir}/qml",
file_filter_function=qml_dll_filter,
force=False,
recursive=True,
- vars=vars)
+ _vars=_vars)
- if self.is_webengine_built(built_modules):
- copydir("{qt_prefix_dir}/resources",
- "{st_build_dir}/{st_package_name}/resources",
- filter=None,
+ if pyside_build.is_webengine_built(built_modules):
+ copydir("{qt_data_dir}/resources", f"{destination_qt_dir}/resources",
+ _filter=None,
recursive=False,
- vars=vars)
+ _vars=_vars)
- filter = 'QtWebEngineProcess{}.exe'.format(
- 'd' if self.debug else '')
- copydir("{qt_bin_dir}",
- "{st_build_dir}/{st_package_name}",
- filter=[filter],
- recursive=False, vars=vars)
+ _ext = "d" if pyside_build.debug else ""
+ _filter = [f"QtWebEngineProcess{_ext}.exe"]
+ copydir("{qt_bin_dir}", destination_qt_dir,
+ _filter=_filter,
+ recursive=False, _vars=_vars)
if copy_qt_conf:
# Copy the qt.conf file to prefix dir.
copyfile(f"{{build_dir}}/{PYSIDE}/{{st_package_name}}/qt.conf",
- "{st_build_dir}/{st_package_name}",
- vars=vars)
+ destination_qt_dir,
+ _vars=_vars)
if copy_clang:
- self.prepare_standalone_clang(is_win=True)
+ pyside_build.prepare_standalone_clang(is_win=True)
diff --git a/build_scripts/qfp_tool.py b/build_scripts/qfp_tool.py
new file mode 100644
index 000000000..abaf48fc8
--- /dev/null
+++ b/build_scripts/qfp_tool.py
@@ -0,0 +1,457 @@
+# Copyright (C) 2024 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+import datetime
+import os
+import re
+import subprocess
+import sys
+import time
+import warnings
+from argparse import ArgumentParser, RawTextHelpFormatter
+from enum import Enum, auto
+from pathlib import Path
+from typing import List
+
+DESC = """
+Utility script for working with Qt for Python.
+
+Feel free to extend!
+
+Typical Usage:
+Update and build a repository: python qfp_tool -p -b
+
+qfp_tool.py uses a configuration file "%CONFIGFILE%"
+in the format key=value.
+
+It is possible to use repository-specific values by adding a key postfixed by
+a dash and the repository folder base name, eg:
+Modules-pyside-setup512=Core,Gui,Widgets,Network,Test
+
+Configuration keys:
+Acceleration Incredibuild or unset
+BuildArguments Arguments to setup.py
+Generator Generator to be used for CMake. Currently, only Ninja is
+ supported.
+Jobs Number of jobs to be run simultaneously
+Modules Comma separated list of modules to be built
+ (for --module-subset=)
+Python Python executable (Use python_d for debug builds on Windows)
+
+Arbitrary keys can be defined and referenced by $(name):
+
+MinimalModules=Core,Gui,Widgets,Network,Test
+Modules=$(MinimalModules),Multimedia
+Modules-pyside-setup-minimal=$(MinimalModules)
+"""
+
+
+class Acceleration(Enum):
+ NONE = 0
+ INCREDIBUILD = 1
+
+
+class BuildMode(Enum):
+ NONE = 0
+ BUILD = 1
+ RECONFIGURE = 2
+ MAKE = 3
+
+
+class UnityMode(Enum):
+ DEFAULT = auto()
+ ENABLE = auto()
+ DISABLE = auto()
+
+
+DISABLE_UNITY_OPTION = "--no-unity"
+LOG_LEVEL_OPTION = "--log-level"
+DEFAULT_BUILD_ARGS = ['--build-tests', '--skip-docs', LOG_LEVEL_OPTION, "quiet"]
+IS_WINDOWS = sys.platform == 'win32'
+INCREDIBUILD_CONSOLE = 'BuildConsole' if IS_WINDOWS else '/opt/incredibuild/bin/ib_console'
+# Config file keys
+ACCELERATION_KEY = 'Acceleration'
+BUILDARGUMENTS_KEY = 'BuildArguments'
+GENERATOR_KEY = 'Generator'
+JOBS_KEY = 'Jobs'
+MODULES_KEY = 'Modules'
+PYTHON_KEY = 'Python'
+
+DEFAULT_MODULES = "Core,Gui,Widgets,Network,Test,Qml,Quick,Multimedia,MultimediaWidgets"
+DEFAULT_CONFIG_FILE = f"Modules={DEFAULT_MODULES}\n"
+
+build_mode = BuildMode.NONE
+opt_dry_run = False
+opt_verbose = False
+opt_unity_mode = UnityMode.DEFAULT
+
+
+def which(needle: str):
+ """Perform a path search"""
+ needles = [needle]
+ if IS_WINDOWS:
+ for ext in ("exe", "bat", "cmd"):
+ needles.append(f"{needle}.{ext}")
+
+ for path in os.environ.get("PATH", "").split(os.pathsep):
+ for n in needles:
+ binary = Path(path) / n
+ if binary.is_file():
+ return binary
+ return None
+
+
+def command_log_string(args: List[str], directory: Path):
+ result = f'[{directory.name}]'
+ for arg in args:
+ result += f' "{arg}"' if ' ' in arg else f' {arg}'
+ return result
+
+
+def execute(args: List[str]):
+ """Execute a command and print to log"""
+ log_string = command_log_string(args, Path.cwd())
+ print(log_string)
+ if opt_dry_run:
+ return
+ exit_code = subprocess.call(args)
+ if exit_code != 0:
+ raise RuntimeError(f'FAIL({exit_code}): {log_string}')
+
+
+def run_process_output(args):
+ """Run a process and return its output. Also run in dry_run mode"""
+ std_out = subprocess.Popen(args, universal_newlines=1,
+ stdout=subprocess.PIPE).stdout
+ result = [line.rstrip() for line in std_out.readlines()]
+ std_out.close()
+ return result
+
+
+def run_git(args):
+ """Run git in the current directory and its submodules"""
+ args.insert(0, git) # run in repo
+ execute(args) # run for submodules
+
+
+def expand_reference(cache_dict, value):
+ """Expand references to other keys in config files $(name) by value."""
+ pattern = re.compile(r"\$\([^)]+\)")
+ while True:
+ match = pattern.match(value)
+ if not match:
+ break
+ key = match.group(0)[2:-1]
+ value = value[:match.start(0)] + cache_dict[key] + value[match.end(0):]
+ return value
+
+
+def editor():
+ editor = os.getenv('EDITOR')
+ if not editor:
+ return 'notepad' if IS_WINDOWS else 'vi'
+ editor = editor.strip()
+ if IS_WINDOWS:
+ # Windows: git requires quotes in the variable
+ if editor.startswith('"') and editor.endswith('"'):
+ editor = editor[1:-1]
+ editor = editor.replace('/', '\\')
+ return editor
+
+
+def edit_config_file():
+ exit_code = -1
+ try:
+ exit_code = subprocess.call([editor(), config_file])
+ except Exception as e:
+ reason = str(e)
+ print(f'Unable to launch: {editor()}: {reason}')
+ return exit_code
+
+
+"""
+Config file handling, cache and read function
+"""
+config_dict = {}
+
+
+def read_config_file(file_name):
+ """Read the config file into config_dict, expanding continuation lines"""
+ global config_dict
+ keyPattern = re.compile(r'^\s*([A-Za-z0-9\_\-]+)\s*=\s*(.*)$')
+ with open(file_name) as f:
+ while True:
+ line = f.readline()
+ if not line:
+ break
+ line = line.rstrip()
+ match = keyPattern.match(line)
+ if match:
+ key = match.group(1)
+ value = match.group(2)
+ while value.endswith('\\'):
+ value = value.rstrip('\\')
+ value += f.readline().rstrip()
+ config_dict[key] = expand_reference(config_dict, value)
+
+
+def read_config(key):
+ """
+ Read a value from the '$HOME/.qfp_tool' configuration file. When given
+ a key 'key' for the repository directory '/foo/qt-5', check for the
+ repo-specific value 'key-qt5' and then for the general 'key'.
+ """
+ if not config_dict:
+ read_config_file(config_file)
+ repo_value = config_dict.get(f"{key}-{base_dir}")
+ return repo_value if repo_value else config_dict.get(key)
+
+
+def read_bool_config(key):
+ value = read_config(key)
+ return value and value in ['1', 'true', 'True']
+
+
+def read_int_config(key, default=-1):
+ value = read_config(key)
+ return int(value) if value else default
+
+
+def read_acceleration_config():
+ value = read_config(ACCELERATION_KEY)
+ if value:
+ value = value.lower()
+ if value == 'incredibuild':
+ return Acceleration.INCREDIBUILD
+ return Acceleration.NONE
+
+
+def read_config_build_arguments():
+ value = read_config(BUILDARGUMENTS_KEY)
+ if value:
+ return re.split(r'\s+', value)
+ return DEFAULT_BUILD_ARGS
+
+
+def read_config_modules_argument():
+ value = read_config(MODULES_KEY)
+ if value and value != '' and value != 'all':
+ return f"--module-subset={value}"
+ return None
+
+
+def read_config_python_binary() -> str:
+ binary = read_config(PYTHON_KEY)
+ virtual_env = os.environ.get('VIRTUAL_ENV')
+ if not binary:
+ # Use 'python3' unless virtualenv is set
+ use_py3 = not virtual_env and which('python3')
+ binary = 'python3' if use_py3 else 'python'
+ binary = Path(binary)
+ if not binary.is_absolute():
+ abs_path = which(str(binary))
+ if abs_path:
+ binary = abs_path
+ else:
+ warnings.warn(f'Unable to find "{binary}"', RuntimeWarning)
+ if virtual_env:
+ if not str(binary).startswith(virtual_env):
+ w = f'Python "{binary}" is not under VIRTUAL_ENV "{virtual_env}"'
+ warnings.warn(w, RuntimeWarning)
+ return str(binary)
+
+
+def get_config_file(base_name) -> Path:
+ global user
+ home = os.getenv('HOME')
+ if IS_WINDOWS:
+ # Set a HOME variable on Windows such that scp. etc.
+ # feel at home (locating .ssh).
+ if not home:
+ home = os.getenv('HOMEDRIVE') + os.getenv('HOMEPATH')
+ os.environ['HOME'] = home
+ user = os.getenv('USERNAME')
+ config_file = Path(os.getenv('APPDATA')) / base_name
+ else:
+ user = os.getenv('USER')
+ config_dir = Path(home) / '.config'
+ if config_dir.exists():
+ config_file = config_dir / base_name
+ else:
+ config_file = Path(home) / f".{base_name}"
+ return config_file
+
+
+def build(target: str):
+ """Run configure and build steps"""
+ start_time = time.time()
+
+ arguments = []
+ acceleration = read_acceleration_config()
+ if not IS_WINDOWS and acceleration == Acceleration.INCREDIBUILD:
+ arguments.append(INCREDIBUILD_CONSOLE)
+ arguments.appendh('--avoid') # caching, v0.96.74
+ arguments.extend([read_config_python_binary(), 'setup.py', target])
+ build_arguments = read_config_build_arguments()
+ if opt_verbose and LOG_LEVEL_OPTION in build_arguments:
+ i = build_arguments.index(LOG_LEVEL_OPTION)
+ del build_arguments[i]
+ del build_arguments[i]
+ arguments.extend(build_arguments)
+ if opt_unity_mode != UnityMode.DEFAULT:
+ unity_disabled = DISABLE_UNITY_OPTION in build_arguments
+ if opt_unity_mode == UnityMode.ENABLE and unity_disabled:
+ arguments.remove(DISABLE_UNITY_OPTION)
+ elif opt_unity_mode == UnityMode.DISABLE and not unity_disabled:
+ arguments.append(DISABLE_UNITY_OPTION)
+ generator = read_config(GENERATOR_KEY)
+ if generator != 'Ninja':
+ arguments.extend(['--make-spec', 'ninja'])
+ jobs = read_int_config(JOBS_KEY)
+ if jobs > 1:
+ arguments.extend(['-j', str(jobs)])
+ if build_mode != BuildMode.BUILD:
+ arguments.append('--reuse-build')
+ if build_mode != BuildMode.RECONFIGURE:
+ arguments.append('--skip-cmake')
+ modules = read_config_modules_argument()
+ if modules:
+ arguments.append(modules)
+ if IS_WINDOWS and acceleration == Acceleration.INCREDIBUILD:
+ arg_string = ' '.join(arguments)
+ arguments = [INCREDIBUILD_CONSOLE, f'/command={arg_string}']
+
+ execute(arguments)
+
+ elapsed_time = int(time.time() - start_time)
+ print(f'--- Done({elapsed_time}s) ---')
+
+
+def build_base_docs():
+ arguments = [read_config_python_binary(), "setup.py", "build_base_docs", "--log-level",
+ "quiet"]
+ for build_arg in read_config_build_arguments():
+ if build_arg.startswith("--qt-src-dir="):
+ arguments.append(build_arg)
+ break
+ execute(arguments)
+
+
+def run_tests():
+ """Run tests redirected into a log file with a time stamp"""
+ logfile_name = datetime.datetime.today().strftime("test_%Y%m%d_%H%M.txt")
+ binary = sys.executable
+ command = f'"{binary}" testrunner.py test > {logfile_name}'
+ print(command_log_string([command], Path.cwd()))
+ start_time = time.time()
+ result = 0 if opt_dry_run else os.system(command)
+ elapsed_time = int(time.time() - start_time)
+ print(f'--- Done({elapsed_time}s) ---')
+ return result
+
+
+def create_argument_parser(desc):
+ parser = ArgumentParser(description=desc, formatter_class=RawTextHelpFormatter)
+ parser.add_argument('--dry-run', '-d', action='store_true',
+ help='Dry run, print commands')
+ parser.add_argument('--edit', '-e', action='store_true',
+ help='Edit config file')
+ parser.add_argument('--reset', '-r', action='store_true',
+ help='Git reset hard to upstream state')
+ parser.add_argument('--clean', '-c', action='store_true',
+ help='Git clean')
+ parser.add_argument('--pull', '-p', action='store_true',
+ help='Git pull')
+ parser.add_argument('--build', '-b', action='store_true',
+ help='Build (configure + build)')
+ parser.add_argument('--make', '-m', action='store_true', help='Make')
+ parser.add_argument('--no-install', '-n', action='store_true',
+ help='Run --build only, do not install')
+ parser.add_argument('--Make', '-M', action='store_true',
+ help='cmake + Make (continue broken build)')
+ parser.add_argument('--test', '-t', action='store_true',
+ help='Run tests')
+ parser.add_argument('--Documentation', '-D', action='store_true',
+ help='Run build_base_docs')
+ parser.add_argument('--version', '-v', action='version', version='%(prog)s 1.0')
+ parser.add_argument('--verbose', '-V', action='store_true',
+ help='Turn off --quiet specified in build arguments')
+ parser.add_argument('--unity', '-u', action='store_true',
+ help='Force unity build')
+ parser.add_argument('--no-unity', action='store_true',
+ help='Turn off --unity specified in build arguments')
+ return parser
+
+
+if __name__ == '__main__':
+ git = None
+ base_dir = None
+ config_file = None
+ user = None
+
+ config_file = get_config_file('qfp_tool.conf')
+ argument_parser = create_argument_parser(DESC.replace('%CONFIGFILE%', str(config_file)))
+ options = argument_parser.parse_args()
+ opt_dry_run = options.dry_run
+ opt_verbose = options.verbose
+
+ if options.unity:
+ opt_unity_mode = UnityMode.ENABLE
+ elif options.no_unity:
+ opt_unity_mode = UnityMode.DISABLE
+
+ if options.edit:
+ sys.exit(edit_config_file())
+
+ if options.build:
+ build_mode = BuildMode.BUILD
+ elif options.make:
+ build_mode = BuildMode.MAKE
+ elif options.Make:
+ build_mode = BuildMode.RECONFIGURE
+
+ if build_mode == BuildMode.NONE and not (options.clean or options.reset or options.pull
+ or options.Documentation or options.test):
+ argument_parser.print_help()
+ sys.exit(0)
+
+ git = 'git'
+ if which(git) is None:
+ warnings.warn('Unable to find git', RuntimeWarning)
+ sys.exit(-1)
+
+ if not config_file.exists():
+ print('Create initial config file ', config_file, " ..")
+ with open(config_file, 'w') as f:
+ f.write(DEFAULT_CONFIG_FILE.format(' '.join(DEFAULT_BUILD_ARGS)))
+
+ while not Path(".git").exists():
+ cwd = Path.cwd()
+ cwd_s = os.fspath(cwd)
+ if cwd_s == '/' or (IS_WINDOWS and len(cwd_s) < 4):
+ warnings.warn('Unable to find git root', RuntimeWarning)
+ sys.exit(-1)
+ os.chdir(cwd.parent)
+
+ base_dir = Path.cwd().name
+
+ if options.clean:
+ run_git(['clean', '-dxf'])
+
+ if options.reset:
+ run_git(['reset', '--hard', '@{upstream}'])
+
+ if options.pull:
+ run_git(['pull', '--rebase'])
+
+ if build_mode != BuildMode.NONE:
+ target = 'build' if options.no_install else 'install'
+ build(target)
+
+ if options.Documentation:
+ build_base_docs()
+
+ if options.test:
+ sys.exit(run_tests())
+
+ sys.exit(0)
diff --git a/build_scripts/qp5_tool.py b/build_scripts/qp5_tool.py
deleted file mode 100644
index ad74edf47..000000000
--- a/build_scripts/qp5_tool.py
+++ /dev/null
@@ -1,448 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-from argparse import ArgumentParser, RawTextHelpFormatter
-import datetime
-from enum import Enum
-import os
-import re
-import subprocess
-import sys
-import time
-import warnings
-
-
-DESC = """
-Utility script for working with Qt for Python.
-
-Feel free to extend!
-
-Typical Usage:
-Update and build a repository: python qp5_tool -p -b
-
-qp5_tool.py uses a configuration file "%CONFIGFILE%"
-in the format key=value.
-
-It is possible to use repository-specific values by adding a key postfixed by
-a dash and the repository folder base name, eg:
-Modules-pyside-setup512=Core,Gui,Widgets,Network,Test
-
-Configuration keys:
-Acceleration Incredibuild or unset
-BuildArguments Arguments to setup.py
-Generator Generator to be used for CMake. Currently, only Ninja is
- supported.
-Jobs Number of jobs to be run simultaneously
-Modules Comma separated list of modules to be built
- (for --module-subset=)
-Python Python executable (Use python_d for debug builds on Windows)
-
-Arbitrary keys can be defined and referenced by $(name):
-
-MinimalModules=Core,Gui,Widgets,Network,Test
-Modules=$(MinimalModules),Multimedia
-Modules-pyside-setup-minimal=$(MinimalModules)
-"""
-
-
-class Acceleration(Enum):
- NONE = 0
- INCREDIBUILD = 1
-
-
-class BuildMode(Enum):
- NONE = 0
- BUILD = 1
- RECONFIGURE = 2
- MAKE = 3
-
-
-DEFAULT_BUILD_ARGS = ['--build-tests', '--skip-docs', '--quiet']
-IS_WINDOWS = sys.platform == 'win32'
-INCREDIBUILD_CONSOLE = 'BuildConsole' if IS_WINDOWS else '/opt/incredibuild/bin/ib_console'
-# Config file keys
-ACCELERATION_KEY = 'Acceleration'
-BUILDARGUMENTS_KEY = 'BuildArguments'
-GENERATOR_KEY = 'Generator'
-JOBS_KEY = 'Jobs'
-MODULES_KEY = 'Modules'
-PYTHON_KEY = 'Python'
-
-DEFAULT_MODULES = "Core,Gui,Widgets,Network,Test,Qml,Quick,Multimedia,MultimediaWidgets"
-DEFAULT_CONFIG_FILE = f"Modules={DEFAULT_MODULES}\n"
-
-build_mode = BuildMode.NONE
-opt_dry_run = False
-opt_verbose = False
-
-
-def which(needle):
- """Perform a path search"""
- needles = [needle]
- if IS_WINDOWS:
- for ext in ("exe", "bat", "cmd"):
- needles.append(f"{needle}.{ext}")
-
- for path in os.environ.get("PATH", "").split(os.pathsep):
- for n in needles:
- binary = os.path.join(path, n)
- if os.path.isfile(binary):
- return binary
- return None
-
-
-def command_log_string(args, dir):
- result = f'[{os.path.basename(dir)}]'
- for arg in args:
- result += f' "{arg}"' if ' ' in arg else f' {arg}'
- return result
-
-
-def execute(args):
- """Execute a command and print to log"""
- log_string = command_log_string(args, os.getcwd())
- print(log_string)
- if opt_dry_run:
- return
- exit_code = subprocess.call(args)
- if exit_code != 0:
- raise RuntimeError(f'FAIL({exit_code}): {log_string}')
-
-
-def run_process_output(args):
- """Run a process and return its output. Also run in dry_run mode"""
- std_out = subprocess.Popen(args, universal_newlines=1,
- stdout=subprocess.PIPE).stdout
- result = [line.rstrip() for line in std_out.readlines()]
- std_out.close()
- return result
-
-
-def run_git(args):
- """Run git in the current directory and its submodules"""
- args.insert(0, git) # run in repo
- execute(args) # run for submodules
-
-
-def expand_reference(cache_dict, value):
- """Expand references to other keys in config files $(name) by value."""
- pattern = re.compile(r"\$\([^)]+\)")
- while True:
- match = pattern.match(value)
- if not match:
- break
- key = match.group(0)[2:-1]
- value = value[:match.start(0)] + cache_dict[key] + value[match.end(0):]
- return value
-
-
-def editor():
- editor = os.getenv('EDITOR')
- if not editor:
- return 'notepad' if IS_WINDOWS else 'vi'
- editor = editor.strip()
- if IS_WINDOWS:
- # Windows: git requires quotes in the variable
- if editor.startswith('"') and editor.endswith('"'):
- editor = editor[1:-1]
- editor = editor.replace('/', '\\')
- return editor
-
-
-def edit_config_file():
- exit_code = -1
- try:
- exit_code = subprocess.call([editor(), config_file])
- except Exception as e:
- reason = str(e)
- print(f'Unable to launch: {editor()}: {reason}')
- return exit_code
-
-
-"""
-Config file handling, cache and read function
-"""
-config_dict = {}
-
-
-def read_config_file(file_name):
- """Read the config file into config_dict, expanding continuation lines"""
- global config_dict
- keyPattern = re.compile(r'^\s*([A-Za-z0-9\_\-]+)\s*=\s*(.*)$')
- with open(file_name) as f:
- while True:
- line = f.readline()
- if not line:
- break
- line = line.rstrip()
- match = keyPattern.match(line)
- if match:
- key = match.group(1)
- value = match.group(2)
- while value.endswith('\\'):
- value = value.rstrip('\\')
- value += f.readline().rstrip()
- config_dict[key] = expand_reference(config_dict, value)
-
-
-def read_config(key):
- """
- Read a value from the '$HOME/.qp5_tool' configuration file. When given
- a key 'key' for the repository directory '/foo/qt-5', check for the
- repo-specific value 'key-qt5' and then for the general 'key'.
- """
- if not config_dict:
- read_config_file(config_file)
- repo_value = config_dict.get(key + '-' + base_dir)
- return repo_value if repo_value else config_dict.get(key)
-
-
-def read_bool_config(key):
- value = read_config(key)
- return value and value in ['1', 'true', 'True']
-
-
-def read_int_config(key, default=-1):
- value = read_config(key)
- return int(value) if value else default
-
-
-def read_acceleration_config():
- value = read_config(ACCELERATION_KEY)
- if value:
- value = value.lower()
- if value == 'incredibuild':
- return Acceleration.INCREDIBUILD
- return Acceleration.NONE
-
-
-def read_config_build_arguments():
- value = read_config(BUILDARGUMENTS_KEY)
- if value:
- return re.split(r'\s+', value)
- return DEFAULT_BUILD_ARGS
-
-
-def read_config_modules_argument():
- value = read_config(MODULES_KEY)
- if value and value != '' and value != 'all':
- return '--module-subset=' + value
- return None
-
-
-def read_config_python_binary():
- binary = read_config(PYTHON_KEY)
- virtual_env = os.environ.get('VIRTUAL_ENV')
- if not binary:
- # Use 'python3' unless virtualenv is set
- use_py3 = not virtual_env and which('python3')
- binary = 'python3' if use_py3 else 'python'
- if not os.path.isabs(binary):
- abs_path = which(binary)
- if abs_path:
- binary = abs_path
- else:
- warnings.warn(f'Unable to find "{binary}"', RuntimeWarning)
- if virtual_env:
- if not binary.startswith(virtual_env):
- w = f'Python "{binary}" is not under VIRTUAL_ENV "{virtual_env}"'
- warnings.warn(w, RuntimeWarning)
- return binary
-
-
-def get_config_file(base_name):
- home = os.getenv('HOME')
- if IS_WINDOWS:
- # Set a HOME variable on Windows such that scp. etc.
- # feel at home (locating .ssh).
- if not home:
- home = os.getenv('HOMEDRIVE') + os.getenv('HOMEPATH')
- os.environ['HOME'] = home
- user = os.getenv('USERNAME')
- config_file = os.path.join(os.getenv('APPDATA'), base_name)
- else:
- user = os.getenv('USER')
- config_dir = os.path.join(home, '.config')
- if os.path.exists(config_dir):
- config_file = os.path.join(config_dir, base_name)
- else:
- config_file = os.path.join(home, '.' + base_name)
- return config_file
-
-
-def build(target):
- """Run configure and build steps"""
- start_time = time.time()
-
- arguments = []
- acceleration = read_acceleration_config()
- if not IS_WINDOWS and acceleration == Acceleration.INCREDIBUILD:
- arguments.append(INCREDIBUILD_CONSOLE)
- arguments.appendh('--avoid') # caching, v0.96.74
- arguments.extend([read_config_python_binary(), 'setup.py', target])
- build_arguments = read_config_build_arguments()
- if opt_verbose and '--quiet' in build_arguments:
- build_arguments.remove('--quiet')
- arguments.extend(build_arguments)
- generator = read_config(GENERATOR_KEY)
- if generator == 'Ninja':
- arguments.extend(['--make-spec', 'ninja'])
- jobs = read_int_config(JOBS_KEY)
- if jobs > 1:
- arguments.extend(['-j', str(jobs)])
- if build_mode != BuildMode.BUILD:
- arguments.extend(['--reuse-build', '--ignore-git'])
- if build_mode != BuildMode.RECONFIGURE:
- arguments.append('--skip-cmake')
- modules = read_config_modules_argument()
- if modules:
- arguments.append(modules)
- if IS_WINDOWS and acceleration == Acceleration.INCREDIBUILD:
- arg_string = ' '.join(arguments)
- arguments = [INCREDIBUILD_CONSOLE, f'/command={arg_string}']
-
- execute(arguments)
-
- elapsed_time = int(time.time() - start_time)
- print(f'--- Done({elapsed_time}s) ---')
-
-
-def run_tests():
- """Run tests redirected into a log file with a time stamp"""
- logfile_name = datetime.datetime.today().strftime("test_%Y%m%d_%H%M.txt")
- binary = sys.executable
- command = f'"{binary}" testrunner.py test > {logfile_name}'
- print(command_log_string([command], os.getcwd()))
- start_time = time.time()
- result = 0 if opt_dry_run else os.system(command)
- elapsed_time = int(time.time() - start_time)
- print(f'--- Done({elapsed_time}s) ---')
- return result
-
-
-def create_argument_parser(desc):
- parser = ArgumentParser(description=desc, formatter_class=RawTextHelpFormatter)
- parser.add_argument('--dry-run', '-d', action='store_true',
- help='Dry run, print commands')
- parser.add_argument('--edit', '-e', action='store_true',
- help='Edit config file')
- parser.add_argument('--reset', '-r', action='store_true',
- help='Git reset hard to upstream state')
- parser.add_argument('--clean', '-c', action='store_true',
- help='Git clean')
- parser.add_argument('--pull', '-p', action='store_true',
- help='Git pull')
- parser.add_argument('--build', '-b', action='store_true',
- help='Build (configure + build)')
- parser.add_argument('--make', '-m', action='store_true', help='Make')
- parser.add_argument('--no-install', '-n', action='store_true',
- help='Run --build only, do not install')
- parser.add_argument('--Make', '-M', action='store_true',
- help='cmake + Make (continue broken build)')
- parser.add_argument('--test', '-t', action='store_true',
- help='Run tests')
- parser.add_argument('--version', '-v', action='version', version='%(prog)s 1.0')
- parser.add_argument('--verbose', '-V', action='store_true',
- help='Turn off --quiet specified in build arguments')
- return parser
-
-
-if __name__ == '__main__':
- git = None
- base_dir = None
- config_file = None
- user = None
-
- config_file = get_config_file('qp5_tool.conf')
- argument_parser = create_argument_parser(DESC.replace('%CONFIGFILE%', config_file))
- options = argument_parser.parse_args()
- opt_dry_run = options.dry_run
- opt_verbose = options.verbose
-
- if options.edit:
- sys.exit(edit_config_file())
-
- if options.build:
- build_mode = BuildMode.BUILD
- elif options.make:
- build_mode = BuildMode.MAKE
- elif options.Make:
- build_mode = BuildMode.RECONFIGURE
-
- if build_mode == BuildMode.NONE and not (options.clean or options.reset
- or options.pull or options.test):
- argument_parser.print_help()
- sys.exit(0)
-
- git = 'git'
- if which(git) is None:
- warnings.warn('Unable to find git', RuntimeWarning)
- sys.exit(-1)
-
- if not os.path.exists(config_file):
- print('Create initial config file ', config_file, " ..")
- with open(config_file, 'w') as f:
- f.write(DEFAULT_CONFIG_FILE.format(' '.join(DEFAULT_BUILD_ARGS)))
-
- while not os.path.exists('.git'):
- cwd = os.getcwd()
- if cwd == '/' or (IS_WINDOWS and len(cwd) < 4):
- warnings.warn('Unable to find git root', RuntimeWarning)
- sys.exit(-1)
- os.chdir(os.path.dirname(cwd))
-
- base_dir = os.path.basename(os.getcwd())
-
- if options.clean:
- run_git(['clean', '-dxf'])
-
- if options.reset:
- run_git(['reset', '--hard', '@{upstream}'])
-
- if options.pull:
- run_git(['pull', '--rebase'])
-
- if build_mode != BuildMode.NONE:
- target = 'build' if options.no_install else 'install'
- build(target)
-
- if options.test:
- sys.exit(run_tests())
-
- sys.exit(0)
diff --git a/build_scripts/qtinfo.py b/build_scripts/qtinfo.py
index 4fdc77d7f..1eb7c4909 100644
--- a/build_scripts/qtinfo.py
+++ b/build_scripts/qtinfo.py
@@ -1,66 +1,12 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import os
-import sys
-import re
import subprocess
-import tempfile
from pathlib import Path
-
-_CMAKE_LISTS = """cmake_minimum_required(VERSION 3.18)
-project(dummy LANGUAGES CXX)
-
-find_package(Qt6 COMPONENTS Core)
-
-get_target_property(darwin_target Qt6::Core QT_DARWIN_MIN_DEPLOYMENT_TARGET)
-message(STATUS "mkspec_qt_darwin_min_deployment_target=${darwin_target}")
-
-if(QT_FEATURE_debug_and_release)
- message(STATUS "mkspec_build_type=debug_and_release")
-elseif(QT_FEATURE_debug)
- message(STATUS "mkspec_build_type=debug")
-else()
- message(STATUS "mkspec_build_type=release")
-endif()
-"""
+from .utils import (configure_cmake_project, parse_cmake_project_message_info,
+ platform_cmake_options)
class QtInfo(object):
@@ -83,32 +29,62 @@ class QtInfo(object):
self._cmake_command = None
self._qmake_command = None
self._force_qmake = False
+ self._use_cmake = False
+ self._qt_target_path = None
+ self._cmake_toolchain_file = None
# Dict to cache qmake values.
self._query_dict = {}
- def setup(self, qtpaths, cmake, qmake, force_qmake):
+ def setup(self, qtpaths, cmake, qmake, force_qmake, use_cmake, qt_target_path,
+ cmake_toolchain_file):
self._qtpaths_command = qtpaths
self._cmake_command = cmake
self._qmake_command = qmake
self._force_qmake = force_qmake
+ self._use_cmake = use_cmake
+ self._qt_target_path = qt_target_path
+ self._cmake_toolchain_file = cmake_toolchain_file
@property
def qmake_command(self):
return self._qmake_command
@property
+ def qtpaths_command(self):
+ return self._qtpaths_command
+
+ @property
def version(self):
return self.get_property("QT_VERSION")
@property
+ def version_tuple(self):
+ return tuple(map(int, self.version.split(".")))
+
+ @property
def bins_dir(self):
return self.get_property("QT_INSTALL_BINS")
@property
+ def data_dir(self):
+ return self.get_property("QT_INSTALL_DATA")
+
+ @property
def libs_dir(self):
return self.get_property("QT_INSTALL_LIBS")
@property
+ def module_json_files_dir(self):
+ # FIXME: Use INSTALL_DESCRIPTIONSDIR once QTBUG-116983 is done.
+ result = Path(self.arch_data) / "modules"
+ return os.fspath(result)
+
+ @property
+ def metatypes_dir(self):
+ parent = self.arch_data if self.version_tuple >= (6, 5, 0) else self.libs_dir
+ return os.fspath(Path(parent) / "metatypes")
+
+ @property
def lib_execs_dir(self):
return self.get_property("QT_INSTALL_LIBEXECS")
@@ -121,6 +97,10 @@ class QtInfo(object):
return self.get_property("QT_INSTALL_PREFIX")
@property
+ def arch_data(self):
+ return self.get_property("QT_INSTALL_ARCHDATA")
+
+ @property
def imports_dir(self):
return self.get_property("QT_INSTALL_IMPORTS")
@@ -165,9 +145,11 @@ class QtInfo(object):
return None
return self._query_dict[prop_name]
- def _get_qtpaths_output(self, args_list=[], cwd=None):
+ def _get_qtpaths_output(self, args_list=None, cwd=None):
+ if args_list is None:
+ args_list = []
assert self._qtpaths_command
- cmd = [self._qtpaths_command]
+ cmd = [str(self._qtpaths_command)]
cmd.extend(args_list)
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=False,
cwd=cwd, universal_newlines=True)
@@ -178,7 +160,9 @@ class QtInfo(object):
return output
# FIXME PYSIDE7: Remove qmake handling
- def _get_qmake_output(self, args_list=[], cwd=None):
+ def _get_qmake_output(self, args_list=None, cwd=None):
+ if args_list is None:
+ args_list = []
assert self._qmake_command
cmd = [self._qmake_command]
cmd.extend(args_list)
@@ -203,64 +187,75 @@ class QtInfo(object):
return props
def _get_query_properties(self):
- if self._force_qmake:
- output = self._get_qmake_output(["-query"])
+ if self._use_cmake:
+ setup_script_dir = Path.cwd()
+ sources_dir = setup_script_dir / "sources"
+ qt_target_info_dir = sources_dir / "shiboken6" / "config.tests" / "target_qt_info"
+ qt_target_info_dir = os.fspath(qt_target_info_dir)
+ config_tests_dir = setup_script_dir / "build" / "config.tests"
+ config_tests_dir = os.fspath(config_tests_dir)
+
+ cmake_cache_args = []
+ if self._cmake_toolchain_file:
+ cmake_cache_args.append(("CMAKE_TOOLCHAIN_FILE", self._cmake_toolchain_file))
+
+ if self._qt_target_path:
+ cmake_cache_args.append(("QFP_QT_TARGET_PATH", self._qt_target_path))
+ qt_target_info_output = configure_cmake_project(
+ qt_target_info_dir,
+ self._cmake_command,
+ temp_prefix_build_path=config_tests_dir,
+ cmake_cache_args=cmake_cache_args)
+ qt_target_info = parse_cmake_project_message_info(qt_target_info_output)
+ self._query_dict = qt_target_info['qt_info']
else:
- output = self._get_qtpaths_output(["--qt-query"])
- self._query_dict = self._parse_query_properties(output)
+ if self._force_qmake:
+ output = self._get_qmake_output(["-query"])
+ else:
+ output = self._get_qtpaths_output(["--qt-query"])
+ self._query_dict = self._parse_query_properties(output)
def _get_other_properties(self):
# Get the src property separately, because it is not returned by
# qmake unless explicitly specified.
key = "QT_INSTALL_PREFIX/src"
- if self._force_qmake:
- result = self._get_qmake_output(["-query", key])
- else:
- result = self._get_qtpaths_output(["--qt-query", key])
- self._query_dict[key] = result
+ if not self._use_cmake:
+ if self._force_qmake:
+ result = self._get_qmake_output(["-query", key])
+ else:
+ result = self._get_qtpaths_output(["--qt-query", key])
+ self._query_dict[key] = result
# Get mkspecs variables and cache them.
# FIXME Python 3.9 self._query_dict |= other_dict
for key, value in self._get_cmake_mkspecs_variables().items():
self._query_dict[key] = value
- @staticmethod
- def _parse_cmake_mkspecs_variables(output):
- # Helper for _get_cmake_mkspecs_variables(). Parse the output for
- # anything prefixed '-- mkspec_' as created by the message() calls
- # in _CMAKE_LISTS.
- result = {}
- pattern = re.compile(r"^-- mkspec_(.*)=(.*)$")
- for line in output.splitlines():
- found = pattern.search(line.strip())
- if found:
- key = found.group(1).strip()
- value = found.group(2).strip()
- # Get macOS minimum deployment target.
- if key == 'qt_darwin_min_deployment_target':
- result['QMAKE_MACOSX_DEPLOYMENT_TARGET'] = value
- # Figure out how Qt was built
- elif key == 'build_type':
- result['BUILD_TYPE'] = value
- return result
-
def _get_cmake_mkspecs_variables(self):
- # Create an empty cmake project file in a temporary directory and
- # parse the output to determine some mkspec values.
- output = ''
- error = ''
- return_code = 0
- with tempfile.TemporaryDirectory() as tempdir:
- cmake_list_file = Path(tempdir) / 'CMakeLists.txt'
- cmake_list_file.write_text(_CMAKE_LISTS)
- cmd = [self._cmake_command, '-G', 'Ninja', '.']
- # FIXME Python 3.7: Use subprocess.run()
- proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=False,
- cwd=tempdir, universal_newlines=True)
- output, error = proc.communicate()
- proc.wait()
- return_code = proc.returncode
-
- if return_code != 0:
- raise RuntimeError(f"Could not determine cmake variables: {error}")
- return QtInfo.__QtInfo._parse_cmake_mkspecs_variables(output)
+ setup_script_dir = Path.cwd()
+ sources_dir = setup_script_dir / "sources"
+ qt_target_mkspec_dir = sources_dir / "shiboken6" / "config.tests" / "target_qt_mkspec"
+ qt_target_mkspec_dir = qt_target_mkspec_dir.as_posix()
+ config_tests_dir = setup_script_dir / "build" / "config.tests"
+ config_tests_dir = config_tests_dir.as_posix()
+
+ cmake_cache_args = []
+ if self._cmake_toolchain_file:
+ cmake_cache_args.append(("CMAKE_TOOLCHAIN_FILE", self._cmake_toolchain_file))
+ if self._qt_target_path:
+ cmake_cache_args.append(("QFP_QT_TARGET_PATH", self._qt_target_path))
+ else:
+ qt_prefix = Path(self.prefix_dir).as_posix()
+ cmake_cache_args.append(("CMAKE_PREFIX_PATH", qt_prefix))
+
+ cmake_cache_args.extend(platform_cmake_options(as_tuple_list=True))
+ qt_target_mkspec_output = configure_cmake_project(
+ qt_target_mkspec_dir,
+ self._cmake_command,
+ temp_prefix_build_path=config_tests_dir,
+ cmake_cache_args=cmake_cache_args)
+
+ qt_target_mkspec_info = parse_cmake_project_message_info(qt_target_mkspec_output)
+ qt_target_mkspec_info = qt_target_mkspec_info['qt_info']
+
+ return qt_target_mkspec_info
diff --git a/build_scripts/setup_runner.py b/build_scripts/setup_runner.py
index 23eaff3fe..5d0466247 100644
--- a/build_scripts/setup_runner.py
+++ b/build_scripts/setup_runner.py
@@ -1,54 +1,21 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-import sys
import os
+import sys
+import tempfile
import textwrap
+import logging
-from setuptools import setup # Import setuptools before distutils
-import distutils.log as log
+from pathlib import Path
+from setuptools import setup
from build_scripts.config import config
-from build_scripts.main import get_package_version, get_setuptools_extension_modules
-from build_scripts.main import cmd_class_dict
+from build_scripts.main import (cmd_class_dict, get_package_version,
+ get_setuptools_extension_modules)
from build_scripts.options import ADDITIONAL_OPTIONS, OPTION
from build_scripts.utils import run_process
+from build_scripts.log import log, LogLevel
class SetupRunner(object):
@@ -60,17 +27,27 @@ class SetupRunner(object):
self.orig_argv = orig_argv
self.sub_argv = list(orig_argv)
- self.setup_script_dir = os.getcwd()
+ self.setup_script_dir = Path.cwd()
@staticmethod
def cmd_line_argument_is_in_args(argument, args):
""" Check if command line argument was passed in args. """
- return any(arg for arg in list(args) if "--" + argument in arg)
+ return any(arg for arg in list(args) if f"--{argument}" in arg)
+
+ @staticmethod
+ def get_cmd_line_argument_in_args(argument, args):
+ """ Gets the value of a cmd line argument passed in args. """
+ for arg in list(args):
+ if f"--{argument}" in arg:
+ prefix = f"--{argument}"
+ prefix_len = len(prefix) + 1
+ return arg[prefix_len:]
+ return None
@staticmethod
def remove_cmd_line_argument_in_args(argument, args):
""" Remove command line argument from args. """
- return [arg for arg in list(args) if "--" + argument not in arg]
+ return [arg for arg in list(args) if f"--{argument}" not in arg]
@staticmethod
def construct_cmd_line_argument(name, value=None):
@@ -83,20 +60,107 @@ class SetupRunner(object):
def construct_internal_build_type_cmd_line_argument(internal_build_type):
return SetupRunner.construct_cmd_line_argument("internal-build-type", internal_build_type)
- def add_setup_internal_invocation(self, build_type, reuse_build=False):
- """ Enqueues a script sub-invocation to be executed later. """
+ def enqueue_setup_internal_invocation(self, setup_cmd):
+ self.invocations_list.append(setup_cmd)
+
+ def add_setup_internal_invocation(self, build_type, reuse_build=False, extra_args=None):
+ setup_cmd = self.new_setup_internal_invocation(build_type, reuse_build, extra_args)
+ self.enqueue_setup_internal_invocation(setup_cmd)
+
+ def new_setup_internal_invocation(self, build_type,
+ reuse_build=False,
+ extra_args=None,
+ replace_command_with=None):
+ """ Creates a script sub-invocation to be executed later. """
internal_build_type_arg = self.construct_internal_build_type_cmd_line_argument(build_type)
- setup_cmd = [sys.executable] + self.sub_argv + [internal_build_type_arg]
- command = self.sub_argv[0]
+ command_index = 0
+ command = self.sub_argv[command_index]
if command == 'setup.py' and len(self.sub_argv) > 1:
- command = self.sub_argv[1]
+ command_index = 1
+ command = self.sub_argv[command_index]
+
+ # Make a copy
+ modified_argv = list(self.sub_argv)
+
+ if replace_command_with:
+ modified_argv[command_index] = replace_command_with
+
+ setup_cmd = [sys.executable] + modified_argv + [internal_build_type_arg]
+
+ if extra_args:
+ for (name, value) in extra_args:
+ setup_cmd.append(self.construct_cmd_line_argument(name, value))
# Add --reuse-build option if requested and not already present.
- if (reuse_build and command in ('bdist_wheel', 'build', 'build_rst_docs', 'install')
- and not self.cmd_line_argument_is_in_args("reuse-build", self.sub_argv)):
+ if (reuse_build and command in ('bdist_wheel', 'build', 'build_base_docs', 'install')
+ and not self.cmd_line_argument_is_in_args("reuse-build", modified_argv)):
setup_cmd.append(self.construct_cmd_line_argument("reuse-build"))
- self.invocations_list.append(setup_cmd)
+ return setup_cmd
+
+ def add_host_tools_setup_internal_invocation(self, initialized_config):
+ extra_args = []
+ extra_host_args = []
+
+ # When cross-compiling, build the host shiboken generator tool
+ # only if a path to an existing one was not provided.
+ if not self.cmd_line_argument_is_in_args("shiboken-host-path", self.sub_argv):
+ handle, initialized_config.shiboken_host_query_path = tempfile.mkstemp()
+ os.close(handle)
+
+ # Tell the setup process to create a file with the location
+ # of the installed host shiboken as its contents.
+ extra_host_args.append(
+ ("internal-cmake-install-dir-query-file-path",
+ initialized_config.shiboken_host_query_path))
+
+ # Tell the other setup invocations to read that file and use
+ # the read path as the location of the host shiboken.
+ extra_args.append(
+ ("internal-shiboken-host-path-query-file",
+ initialized_config.shiboken_host_query_path)
+ )
+
+ # This is specifying shiboken_module_option_name
+ # instead of shiboken_generator_option_name, but it will
+ # actually build the generator.
+ host_cmd = self.new_setup_internal_invocation(
+ initialized_config.shiboken_module_option_name,
+ extra_args=extra_host_args,
+ replace_command_with="build")
+
+ # To build the host tools, we reuse the initial target
+ # command line arguments, but we remove some options that
+ # don't make sense for the host build.
+
+ # Drop the toolchain arg.
+ host_cmd = self.remove_cmd_line_argument_in_args("cmake-toolchain-file",
+ host_cmd)
+
+ # Drop the target plat-name arg if there is one.
+ if self.cmd_line_argument_is_in_args("plat-name", host_cmd):
+ host_cmd = self.remove_cmd_line_argument_in_args("plat-name", host_cmd)
+
+ # Drop the python-target-path arg if there is one.
+ if self.cmd_line_argument_is_in_args("python-target-path", host_cmd):
+ host_cmd = self.remove_cmd_line_argument_in_args("python-target-path", host_cmd)
+
+ # Drop the target build-tests arg if there is one.
+ if self.cmd_line_argument_is_in_args("build-tests", host_cmd):
+ host_cmd = self.remove_cmd_line_argument_in_args("build-tests", host_cmd)
+
+ # Make sure to pass the qt host path as the target path
+ # when doing the host build. And make sure to remove any
+ # existing qt target path.
+ if self.cmd_line_argument_is_in_args("qt-host-path", host_cmd):
+ qt_host_path = self.get_cmd_line_argument_in_args("qt-host-path", host_cmd)
+ host_cmd = self.remove_cmd_line_argument_in_args("qt-host-path", host_cmd)
+ host_cmd = self.remove_cmd_line_argument_in_args("qt-target-path", host_cmd)
+ host_cmd.append(self.construct_cmd_line_argument("qt-target-path",
+ qt_host_path))
+
+ self.enqueue_setup_internal_invocation(host_cmd)
+ return extra_args
def run_setup(self):
"""
@@ -107,6 +171,13 @@ class SetupRunner(object):
will run setuptools.setup().
"""
+ # PYSIDE-1746: We prevent the generation of .pyc/.pyo files during installation.
+ # These files are generated anyway on their import.
+ sys.dont_write_bytecode = True
+ qt_install_path = OPTION["QTPATHS"]
+ if qt_install_path:
+ qt_install_path = Path(qt_install_path).parents[1]
+
# Prepare initial config.
config.init_config(build_type=OPTION["BUILD_TYPE"],
internal_build_type=OPTION["INTERNAL_BUILD_TYPE"],
@@ -114,7 +185,18 @@ class SetupRunner(object):
package_version=get_package_version(),
ext_modules=get_setuptools_extension_modules(),
setup_script_dir=self.setup_script_dir,
- quiet=OPTION["QUIET"])
+ cmake_toolchain_file=OPTION["CMAKE_TOOLCHAIN_FILE"],
+ log_level=OPTION["LOG_LEVEL"],
+ qt_install_path=qt_install_path)
+
+ # Enable logging for both the top-level invocation of setup.py
+ # as well as for child invocations. We we now use
+ if OPTION["LOG_LEVEL"] == LogLevel.VERBOSE:
+ log.setLevel(logging.DEBUG)
+ elif OPTION["LOG_LEVEL"] == LogLevel.QUIET:
+ log.setLevel(logging.ERROR)
+ elif OPTION["LOG_LEVEL"] == LogLevel.INFO:
+ log.setLevel(logging.INFO)
# This is an internal invocation of setup.py, so start actual
# build.
@@ -133,18 +215,33 @@ class SetupRunner(object):
# Build everything: shiboken6, shiboken6-generator and PySide6.
help_requested = '--help' in self.sub_argv or '-h' in self.sub_argv
+
if help_requested:
self.add_setup_internal_invocation(config.pyside_option_name)
elif config.is_top_level_build_all():
- self.add_setup_internal_invocation(config.shiboken_module_option_name)
+ extra_args = []
+
+ # extra_args might contain the location of the built host
+ # shiboken, which needs to be passed to the other
+ # target invocations.
+ if config.is_cross_compile():
+ extra_args = self.add_host_tools_setup_internal_invocation(config)
+
+ self.add_setup_internal_invocation(
+ config.shiboken_module_option_name,
+ extra_args=extra_args)
# Reuse the shiboken build for the generator package instead
# of rebuilding it again.
- self.add_setup_internal_invocation(config.shiboken_generator_option_name,
- reuse_build=True)
+ # Don't build it in a cross-build though.
+ if not config.is_cross_compile():
+ self.add_setup_internal_invocation(
+ config.shiboken_generator_option_name,
+ reuse_build=True)
- self.add_setup_internal_invocation(config.pyside_option_name)
+ self.add_setup_internal_invocation(config.pyside_option_name,
+ extra_args=extra_args)
elif config.is_top_level_build_shiboken_module():
self.add_setup_internal_invocation(config.shiboken_module_option_name)
@@ -157,7 +254,6 @@ class SetupRunner(object):
for cmd in self.invocations_list:
cmd_as_string = " ".join(cmd)
- log.info(f"\nRunning setup: {cmd_as_string}\n")
exit_code = run_process(cmd)
if exit_code != 0:
msg = textwrap.dedent(f"""
@@ -169,6 +265,9 @@ class SetupRunner(object):
if help_requested:
print(ADDITIONAL_OPTIONS)
+ # Cleanup temp query file.
+ if config.shiboken_host_query_path:
+ os.remove(config.shiboken_host_query_path)
@staticmethod
def run_setuptools_setup():
diff --git a/build_scripts/utils.py b/build_scripts/utils.py
index 4f22f7d7b..74d9e6fc5 100644
--- a/build_scripts/utils.py
+++ b/build_scripts/utils.py
@@ -1,58 +1,25 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-import sys
-from pathlib import Path
+import errno
+import fnmatch
+import glob
import os
import re
-import stat
-import errno
import shutil
+import stat
import subprocess
-import fnmatch
-import itertools
-import glob
-
+import sys
+import tempfile
import urllib.request as urllib
+from collections import defaultdict
+from pathlib import Path
+from textwrap import dedent, indent
+
+from .log import log
+from . import (PYSIDE_PYTHON_TOOLS, PYSIDE_LINUX_BIN_TOOLS, PYSIDE_UNIX_LIBEXEC_TOOLS,
+ PYSIDE_WINDOWS_BIN_TOOLS, PYSIDE_UNIX_BIN_TOOLS, PYSIDE_UNIX_BUNDLED_TOOLS)
-import distutils.log as log
-from distutils.errors import DistutilsSetupError
try:
WindowsError
@@ -60,6 +27,27 @@ except NameError:
WindowsError = None
+def which(name):
+ """
+ Like shutil.which, but accepts a string or a PathLike and returns a Path
+ """
+ path = None
+ try:
+ if isinstance(name, Path):
+ name = str(name)
+ path = shutil.which(name)
+ if path is None:
+ raise TypeError("None was returned")
+ path = Path(path)
+ except TypeError as e:
+ log.error(f"{name} was not found in PATH: {e}")
+ return path
+
+
+def is_64bit():
+ return sys.maxsize > 2147483647
+
+
def filter_match(name, patterns):
for pattern in patterns:
if pattern is None:
@@ -72,7 +60,7 @@ def filter_match(name, patterns):
def update_env_path(newpaths):
paths = os.environ['PATH'].lower().split(os.pathsep)
for path in newpaths:
- if not path.lower() in paths:
+ if str(path).lower() not in paths:
log.info(f"Inserting path '{path}' to environment")
paths.insert(0, path)
os.environ['PATH'] = f"{path}{os.pathsep}{os.environ['PATH']}"
@@ -83,206 +71,72 @@ def get_numpy_location():
if 'site-' in p:
numpy = Path(p).resolve() / 'numpy'
if numpy.is_dir():
- return os.fspath(numpy / 'core' / 'include')
+ return os.fspath(numpy / 'core' / 'include')
return None
-def winsdk_setenv(platform_arch, build_type):
- from distutils.msvc9compiler import VERSION as MSVC_VERSION
- from distutils.msvc9compiler import Reg
- from distutils.msvc9compiler import HKEYS
- from distutils.msvc9compiler import WINSDK_BASE
-
- sdk_version_map = {
- "v6.0a": 9.0,
- "v6.1": 9.0,
- "v7.0": 9.0,
- "v7.0a": 10.0,
- "v7.1": 10.0
- }
-
- log.info(f"Searching Windows SDK with MSVC compiler version {MSVC_VERSION}")
- setenv_paths = []
- for base in HKEYS:
- sdk_versions = Reg.read_keys(base, WINSDK_BASE)
- if sdk_versions:
- for sdk_version in sdk_versions:
- installationfolder = Reg.get_value(f"{WINSDK_BASE}\\{sdk_version}",
- "installationfolder")
- # productversion = Reg.get_value("{}\\{}".format(WINSDK_BASE, sdk_version),
- # "productversion")
- setenv_path = os.path.join(installationfolder, os.path.join('bin', 'SetEnv.cmd'))
- if not os.path.exists(setenv_path):
- continue
- if sdk_version not in sdk_version_map:
- continue
- if sdk_version_map[sdk_version] != MSVC_VERSION:
- continue
- setenv_paths.append(setenv_path)
- if len(setenv_paths) == 0:
- raise DistutilsSetupError("Failed to find the Windows SDK with MSVC compiler "
- f"version {MSVC_VERSION}")
- for setenv_path in setenv_paths:
- log.info(f"Found {setenv_path}")
-
- # Get SDK env (use latest SDK version installed on system)
- setenv_path = setenv_paths[-1]
- log.info(f"Using {setenv_path} ")
- build_arch = "/x86" if platform_arch.startswith("32") else "/x64"
- build_type = "/Debug" if build_type.lower() == "debug" else "/Release"
- setenv_cmd = [setenv_path, build_arch, build_type]
- setenv_env = get_environment_from_batch_command(setenv_cmd)
- setenv_env_paths = os.pathsep.join([setenv_env[k] for k in setenv_env if k.upper() == 'PATH']).split(os.pathsep)
- setenv_env_without_paths = dict([(k, setenv_env[k]) for k in setenv_env if k.upper() != 'PATH'])
-
- # Extend os.environ with SDK env
- log.info("Initializing Windows SDK env...")
- update_env_path(setenv_env_paths)
- for k in sorted(setenv_env_without_paths):
- v = setenv_env_without_paths[k]
- log.info(f"Inserting '{k} = {v}' to environment")
- os.environ[k] = v
- log.info("Done initializing Windows SDK env")
-
-
-def find_vcdir(version):
- """
- This is the customized version of
- distutils.msvc9compiler.find_vcvarsall method
- """
- from distutils.msvc9compiler import VS_BASE
- from distutils.msvc9compiler import Reg
- vsbase = VS_BASE % version
- try:
- productdir = Reg.get_value(rf"{vsbase}\Setup\VC", "productdir")
- except KeyError:
- productdir = None
-
- # trying Express edition
- if productdir is None:
- try:
- from distutils.msvc9compiler import VSEXPRESS_BASE
- except ImportError:
- pass
- else:
- vsbase = VSEXPRESS_BASE % version
- try:
- productdir = Reg.get_value(rf"{vsbase}\Setup\VC", "productdir")
- except KeyError:
- productdir = None
- log.debug("Unable to find productdir in registry")
-
- if not productdir or not os.path.isdir(productdir):
- toolskey = f"VS{version:0.0f}0COMNTOOLS"
- toolsdir = os.environ.get(toolskey, None)
-
- if toolsdir and os.path.isdir(toolsdir):
- productdir = os.path.join(toolsdir, os.pardir, os.pardir, "VC")
- productdir = os.path.abspath(productdir)
- if not os.path.isdir(productdir):
- log.debug(f"{productdir} is not a valid directory")
- return None
+def platform_cmake_options(as_tuple_list=False):
+ result = []
+ if sys.platform == 'win32':
+ # Prevent cmake from auto-detecting clang if it is in path.
+ if as_tuple_list:
+ result.append(("CMAKE_C_COMPILER", "cl.exe"))
+ result.append(("CMAKE_CXX_COMPILER", "cl.exe"))
else:
- log.debug(f"Env var {toolskey} is not set or invalid")
- if not productdir:
- log.debug("No productdir found")
- return None
- return productdir
-
-
-def init_msvc_env(platform_arch, build_type):
- from distutils.msvc9compiler import VERSION as MSVC_VERSION
+ result.append("-DCMAKE_C_COMPILER=cl.exe")
+ result.append("-DCMAKE_CXX_COMPILER=cl.exe")
+ return result
- log.info(f"Searching MSVC compiler version {MSVC_VERSION}")
- vcdir_path = find_vcdir(MSVC_VERSION)
- if not vcdir_path:
- raise DistutilsSetupError(f"Failed to find the MSVC compiler version {MSVC_VERSION} on "
- "your system.")
- else:
- log.info(f"Found {vcdir_path}")
- log.info(f"Searching MSVC compiler {MSVC_VERSION} environment init script")
- if platform_arch.startswith("32"):
- vcvars_path = os.path.join(vcdir_path, "bin", "vcvars32.bat")
- else:
- vcvars_path = os.path.join(vcdir_path, "bin", "vcvars64.bat")
- if not os.path.exists(vcvars_path):
- vcvars_path = os.path.join(vcdir_path, "bin", "amd64", "vcvars64.bat")
- if not os.path.exists(vcvars_path):
- vcvars_path = os.path.join(vcdir_path, "bin", "amd64", "vcvarsamd64.bat")
-
- if not os.path.exists(vcvars_path):
- # MSVC init script not found, try to find and init Windows SDK env
- log.error("Failed to find the MSVC compiler environment init script "
- "(vcvars.bat) on your system.")
- winsdk_setenv(platform_arch, build_type)
- return
- else:
- log.info(f"Found {vcvars_path}")
-
- # Get MSVC env
- log.info(f"Using MSVC {MSVC_VERSION} in {vcvars_path}")
- msvc_arch = "x86" if platform_arch.startswith("32") else "amd64"
- log.info(f"Getting MSVC env for {msvc_arch} architecture")
- vcvars_cmd = [vcvars_path, msvc_arch]
- msvc_env = get_environment_from_batch_command(vcvars_cmd)
- msvc_env_paths = os.pathsep.join([msvc_env[k] for k in msvc_env if k.upper() == 'PATH']).split(os.pathsep)
- msvc_env_without_paths = dict([(k, msvc_env[k]) for k in msvc_env if k.upper() != 'PATH'])
-
- # Extend os.environ with MSVC env
- log.info("Initializing MSVC env...")
- update_env_path(msvc_env_paths)
- for k in sorted(msvc_env_without_paths):
- v = msvc_env_without_paths[k]
- log.info(f"Inserting '{k} = {v}' to environment")
- os.environ[k] = v
- log.info("Done initializing MSVC env")
-
-
-def copyfile(src, dst, force=True, vars=None, force_copy_symlink=False,
+def copyfile(src, dst, force=True, _vars=None, force_copy_symlink=False,
make_writable_by_owner=False):
- if vars is not None:
- src = src.format(**vars)
- dst = dst.format(**vars)
-
- if not os.path.exists(src) and not force:
- log.info(f"**Skipping copy file {src} to {dst}. Source does not exists.")
+ if isinstance(src, str):
+ src = Path(src.format(**_vars)) if _vars else Path(src)
+ if isinstance(dst, str):
+ dst = Path(dst.format(**_vars)) if _vars else Path(dst)
+ assert (isinstance(src, Path))
+ assert (isinstance(dst, Path))
+
+ if not src.exists() and not force:
+ log.info(f"**Skipping copy file\n {src} to\n {dst}\n Source does not exist")
return
- if not os.path.islink(src) or force_copy_symlink:
- if os.path.isfile(dst):
+ if not src.is_symlink() or force_copy_symlink:
+ if dst.is_file():
src_stat = os.stat(src)
dst_stat = os.stat(dst)
- if (src_stat.st_size == dst_stat.st_size and
- src_stat.st_mtime <= dst_stat.st_mtime):
+ if (src_stat.st_size == dst_stat.st_size
+ and src_stat.st_mtime <= dst_stat.st_mtime):
log.info(f"{dst} is up to date.")
return dst
- log.info(f"Copying file {src} to {dst}.")
+ log.debug(f"Copying file\n {src} to\n {dst}.")
shutil.copy2(src, dst)
if make_writable_by_owner:
make_file_writable_by_owner(dst)
return dst
- link_target_path = os.path.realpath(src)
- if os.path.dirname(link_target_path) == os.path.dirname(src):
- link_target = os.path.basename(link_target_path)
- link_name = os.path.basename(src)
- current_directory = os.getcwd()
+ # We use 'strict=False' to mimic os.path.realpath in case
+ # the directory doesn't exist.
+ link_target_path = src.resolve(strict=False)
+ if link_target_path.parent == src.parent:
+ link_target = Path(link_target_path.name)
+ link_name = Path(src.name)
+ current_directory = Path.cwd()
try:
- target_dir = dst if os.path.isdir(dst) else os.path.dirname(dst)
+ target_dir = dst if dst.is_dir() else dst.parent
os.chdir(target_dir)
- if os.path.exists(link_name):
- if (os.path.islink(link_name) and
- os.readlink(link_name) == link_target):
- log.info(f"Symlink {link_name} -> {link_target} already exists.")
+ if link_name.exists():
+ if (link_name.is_symlink()
+ and os.readlink(link_name) == link_target):
+ log.info(f"Symlink already exists\n {link_name} ->\n {link_target}")
return dst
os.remove(link_name)
- log.info(f"Symlinking {link_name} -> {link_target} in {target_dir}.")
+ log.info(f"Symlinking\n {link_name} ->\n {link_target} in\n {target_dir}")
os.symlink(link_target, link_name)
except OSError:
- log.error(f"{link_name} -> {link_target}: Error creating symlink")
+ log.error(f"Error creating symlink\n {link_name} ->\n {link_target}")
finally:
os.chdir(current_directory)
else:
@@ -292,83 +146,86 @@ def copyfile(src, dst, force=True, vars=None, force_copy_symlink=False,
return dst
-def makefile(dst, content=None, vars=None):
- if vars is not None:
+def makefile(dst, content=None, _vars=None):
+ if _vars is not None:
if content is not None:
- content = content.format(**vars)
- dst = dst.format(**vars)
+ content = content.format(**_vars)
+ dst = Path(dst.format(**_vars))
log.info(f"Making file {dst}.")
- dstdir = os.path.dirname(dst)
- if not os.path.exists(dstdir):
- os.makedirs(dstdir)
+ dstdir = dst.parent
+ if not dstdir.exists():
+ dstdir.mkdir(parents=True)
with open(dst, "wt") as f:
if content is not None:
f.write(content)
-def copydir(src, dst, filter=None, ignore=None, force=True, recursive=True, vars=None,
+def copydir(src, dst, _filter=None, ignore=None, force=True, recursive=True, _vars=None,
dir_filter_function=None, file_filter_function=None, force_copy_symlinks=False):
- if vars is not None:
- src = src.format(**vars)
- dst = dst.format(**vars)
- if filter is not None:
- for i in range(len(filter)):
- filter[i] = filter[i].format(**vars)
+ if isinstance(src, str):
+ src = Path(src.format(**_vars)) if _vars else Path(src)
+ if isinstance(dst, str):
+ dst = Path(dst.format(**_vars)) if _vars else Path(dst)
+ assert (isinstance(src, Path))
+ assert (isinstance(dst, Path))
+
+ if _vars is not None:
+ if _filter is not None:
+ _filter = [i.format(**_vars) for i in _filter]
if ignore is not None:
- for i in range(len(ignore)):
- ignore[i] = ignore[i].format(**vars)
+ ignore = [i.format(**_vars) for i in ignore]
- if not os.path.exists(src) and not force:
- log.info(f"**Skipping copy tree {src} to {dst}. Source does not exists. "
- f"filter={filter}. ignore={ignore}.")
+ if not src.exists() and not force:
+ log.info(f"**Skipping copy tree\n {src} to\n {dst}\n Source does not exist. "
+ f"filter={_filter}. ignore={ignore}.")
return []
- log.info(f"Copying tree {src} to {dst}. filter={filter}. ignore={ignore}.")
+ log.debug(f"Copying tree\n {src} to\n {dst}. filter={_filter}. ignore={ignore}.")
names = os.listdir(src)
results = []
- errors = []
+ copy_errors = []
for name in names:
- srcname = os.path.join(src, name)
- dstname = os.path.join(dst, name)
+ srcname = src / name
+ dstname = dst / name
try:
- if os.path.isdir(srcname):
+ if srcname.is_dir():
if (dir_filter_function and not dir_filter_function(name, src, srcname)):
continue
if recursive:
- results.extend(copydir(srcname, dstname, filter, ignore, force, recursive,
- vars, dir_filter_function, file_filter_function,
+ results.extend(copydir(srcname, dstname, _filter, ignore, force, recursive,
+ _vars, dir_filter_function, file_filter_function,
force_copy_symlinks))
else:
if ((file_filter_function is not None and not file_filter_function(name, srcname))
- or (filter is not None and not filter_match(name, filter))
+ or (_filter is not None and not filter_match(name, _filter))
or (ignore is not None and filter_match(name, ignore))):
continue
- if not os.path.exists(dst):
- os.makedirs(dst)
- results.append(copyfile(srcname, dstname, True, vars, force_copy_symlinks))
+ if not dst.is_dir():
+ dst.mkdir(parents=True)
+ results.append(copyfile(srcname, dstname, True, _vars, force_copy_symlinks))
# catch the Error from the recursive copytree so that we can
# continue with other files
except shutil.Error as err:
- errors.extend(err.args[0])
+ copy_errors.extend(err.args[0])
except EnvironmentError as why:
- errors.append((srcname, dstname, str(why)))
+ copy_errors.append((srcname, dstname, str(why)))
try:
- if os.path.exists(dst):
- shutil.copystat(src, dst)
+ if dst.exists():
+ shutil.copystat(str(src), str(dst))
except OSError as why:
if WindowsError is not None and isinstance(why, WindowsError):
# Copying file access times may fail on Windows
pass
else:
- errors.extend((src, dst, str(why)))
- if errors:
- raise EnvironmentError(errors)
+ copy_errors.extend((src, dst, str(why)))
+ if copy_errors:
+ raise EnvironmentError(copy_errors)
return results
@@ -377,9 +234,10 @@ def make_file_writable_by_owner(path):
os.chmod(path, current_permissions | stat.S_IWUSR)
-def rmtree(dirname, ignore=False):
+def remove_tree(dirname, ignore=False):
def handle_remove_readonly(func, path, exc):
- excvalue = exc[1]
+ # exc returns like 'sys.exc_info()': type, value, traceback
+ _, excvalue, _ = exc
if func in (os.rmdir, os.remove) and excvalue.errno == errno.EACCES:
os.chmod(path, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO) # 0777
func(path)
@@ -391,13 +249,12 @@ def rmtree(dirname, ignore=False):
def run_process_output(args, initial_env=None):
if initial_env is None:
initial_env = os.environ
- std_out = subprocess.Popen(args, env=initial_env, universal_newlines=1,
- stdout=subprocess.PIPE).stdout
result = []
- for raw_line in std_out.readlines():
- line = raw_line
- result.append(line.rstrip())
- std_out.close()
+ with subprocess.Popen(args, env=initial_env, universal_newlines=1,
+ stdout=subprocess.PIPE) as p:
+ for raw_line in p.stdout.readlines():
+ result.append(raw_line.rstrip())
+ p.stdout.close()
return result
@@ -407,7 +264,7 @@ def run_process(args, initial_env=None):
No output is captured.
"""
command = " ".join([(" " in x and f'"{x}"' or x) for x in args])
- log.info(f"In directory {os.getcwd()}:\n\tRunning command: {command}")
+ log.debug(f"In directory {Path.cwd()}:\n\tRunning command: {command}")
if initial_env is None:
initial_env = os.environ
@@ -419,80 +276,10 @@ def run_process(args, initial_env=None):
return exit_code
-def get_environment_from_batch_command(env_cmd, initial=None):
- """
- Take a command (either a single command or list of arguments)
- and return the environment created after running that command.
- Note that if the command must be a batch file or .cmd file, or the
- changes to the environment will not be captured.
-
- If initial is supplied, it is used as the initial environment passed
- to the child process.
- """
-
- def validate_pair(ob):
- try:
- if not (len(ob) == 2):
- log.error(f"Unexpected result: {ob}")
- raise ValueError
- except:
- return False
- return True
-
- def consume(iter):
- try:
- while True:
- next(iter)
- except StopIteration:
- pass
-
- if not isinstance(env_cmd, (list, tuple)):
- env_cmd = [env_cmd]
- # construct the command that will alter the environment
- env_cmd = subprocess.list2cmdline(env_cmd)
- # create a tag so we can tell in the output when the proc is done
- tag = 'Done running command'
- # construct a cmd.exe command to do accomplish this
- cmd = f'cmd.exe /E:ON /V:ON /s /c "{env_cmd} && echo "{tag}" && set"'
- # launch the process
- proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, env=initial)
- # parse the output sent to stdout
- lines = proc.stdout
- # make sure the lines are strings
- lines = map(lambda s: s.decode(), lines)
- # consume whatever output occurs until the tag is reached
- consume(itertools.takewhile(lambda l: tag not in l, lines))
- # define a way to handle each KEY=VALUE line
- # parse key/values into pairs
- pairs = map(lambda l: l.rstrip().split('=', 1), lines)
- # make sure the pairs are valid
- valid_pairs = filter(validate_pair, pairs)
- # construct a dictionary of the pairs
- result = dict(valid_pairs)
- # let the process finish
- proc.communicate()
- return result
-
-
-def regenerate_qt_resources(src, pyside_rcc_path, pyside_rcc_options):
- names = os.listdir(src)
- for name in names:
- srcname = os.path.join(src, name)
- if os.path.isdir(srcname):
- regenerate_qt_resources(srcname, pyside_rcc_path, pyside_rcc_options)
- elif srcname.endswith('.qrc'):
- # Replace last occurence of '.qrc' in srcname
- srcname_split = srcname.rsplit('.qrc', 1)
- dstname = '_rc.py'.join(srcname_split)
- if os.path.exists(dstname):
- log.info(f"Regenerating {dstname} from {os.path.basename(srcname)}")
- run_process([pyside_rcc_path] + pyside_rcc_options + [srcname, '-o', dstname])
-
-
def back_tick(cmd, ret_err=False):
"""
- Run command `cmd`, return stdout, or stdout, stderr,
- return_code if `ret_err` is True.
+ Run command `cmd`, return stdout, or (stdout, stderr,
+ return_code) if `ret_err` is True.
Parameters
----------
@@ -516,22 +303,20 @@ def back_tick(cmd, ret_err=False):
Raises RuntimeError if command returns non-zero exit code when ret_err
isn't set.
"""
- proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
- out, err = proc.communicate()
- if not isinstance(out, str):
- # python 3
- out = out.decode()
- err = err.decode()
- retcode = proc.returncode
- if retcode is None and not ret_err:
- proc.terminate()
- raise RuntimeError(f"{cmd} process did not terminate")
- if retcode != 0 and not ret_err:
- raise RuntimeError(f"{cmd} process returned code {retcode}\n*** {err}")
- out = out.strip()
+ with subprocess.Popen(cmd, stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE, shell=True) as proc:
+ out_bytes, err_bytes = proc.communicate()
+ out = out_bytes.decode().strip()
+ err = err_bytes.decode().strip()
+ retcode = proc.returncode
+ if retcode is None and not ret_err:
+ proc.terminate()
+ raise RuntimeError(f"{cmd} process did not terminate")
+ if retcode != 0 and not ret_err:
+ raise RuntimeError(f"{cmd} process returned code {retcode}\n*** {err}")
if not ret_err:
return out
- return out, err.strip(), retcode
+ return out, err, retcode
MACOS_OUTNAME_RE = re.compile(r'\(compatibility version [\d.]+, current version [\d.]+\)')
@@ -595,7 +380,10 @@ def macos_get_rpaths(libpath):
def macos_add_rpath(rpath, library_path):
- back_tick(f"install_name_tool -add_rpath {rpath} {library_path}")
+ try:
+ back_tick(f"install_name_tool -add_rpath {rpath} {library_path}")
+ except RuntimeError as e:
+ print(f"Exception {type(e).__name__}: {e}")
def macos_fix_rpaths_for_library(library_path, qt_lib_dir):
@@ -642,8 +430,8 @@ def macos_fix_rpaths_for_library(library_path, qt_lib_dir):
macos_add_qt_rpath(library_path, qt_lib_dir, existing_rpath_commands, install_names)
-def macos_add_qt_rpath(library_path, qt_lib_dir, existing_rpath_commands=[],
- library_dependencies=[]):
+def macos_add_qt_rpath(library_path, qt_lib_dir, existing_rpath_commands=None,
+ library_dependencies=None):
"""
Adds an rpath load command to the Qt lib directory if necessary
@@ -651,6 +439,12 @@ def macos_add_qt_rpath(library_path, qt_lib_dir, existing_rpath_commands=[],
and adds an rpath load command that points to the Qt lib directory
(qt_lib_dir).
"""
+ if existing_rpath_commands is None:
+ existing_rpath_commands = []
+
+ if library_dependencies is None:
+ library_dependencies = []
+
if not existing_rpath_commands:
existing_rpath_commands = macos_get_rpaths(library_path)
@@ -679,7 +473,7 @@ def find_glob_in_path(pattern):
pattern += '.exe'
for path in os.environ.get('PATH', '').split(os.pathsep):
- for match in glob.glob(os.path.join(path, pattern)):
+ for match in glob.glob(str(Path(path) / pattern)):
result.append(match)
return result
@@ -704,7 +498,7 @@ def detect_clang():
clang_dir = os.environ.get(source, None)
if not clang_dir:
raise OSError("clang not found")
- return (clang_dir, source)
+ return (Path(clang_dir), source)
_7z_binary = None
@@ -730,8 +524,8 @@ def download_and_extract_7z(fileurl, target):
outputDir = f"-o{target}"
if not _7z_binary:
if sys.platform == "win32":
- candidate = "c:\\Program Files\\7-Zip\\7z.exe"
- if os.path.exists(candidate):
+ candidate = Path("c:\\Program Files\\7-Zip\\7z.exe")
+ if candidate.exists():
_7z_binary = candidate
if not _7z_binary:
_7z_binary = '7z'
@@ -820,7 +614,8 @@ def _ldd_ldd(executable_path):
except Exception as e:
error = str(e)
if not output:
- message = f"ldd failed to query for dependent shared libraries of {executable_path}: {error}"
+ message = (f"ldd failed to query for dependent shared libraries of {executable_path}: "
+ f"{error}")
raise RuntimeError(message)
return output
@@ -860,7 +655,8 @@ def _ldd_ldso(executable_path):
# Choose appropriate runtime dynamic linker.
for rtld in rtld_list:
- if os.path.isfile(rtld) and os.access(rtld, os.X_OK):
+ rtld = Path(rtld)
+ if rtld.is_file() and os.access(rtld, os.X_OK):
(_, _, code) = back_tick(rtld, True)
# Code 127 is returned by ld.so when called without any
# arguments (some kind of sanity check I guess).
@@ -906,7 +702,7 @@ def ldd(executable_path):
result = _ldd_ldd(executable_path)
except RuntimeError as e:
message = f"ldd: Falling back to ld.so ({str(e)})"
- log.warn(message)
+ log.warning(message)
if not result:
result = _ldd_ldso(executable_path)
return result
@@ -914,8 +710,8 @@ def ldd(executable_path):
def find_files_using_glob(path, pattern):
""" Returns list of files that matched glob `pattern` in `path`. """
- final_pattern = os.path.join(path, pattern)
- maybe_files = glob.glob(final_pattern)
+ final_pattern = Path(path) / pattern
+ maybe_files = glob.glob(str(final_pattern))
return maybe_files
@@ -932,16 +728,18 @@ def find_qt_core_library_glob(lib_dir):
# ldd for the specified platforms.
# This has less priority because ICU libs are not used in the default
# Qt configuration build.
+# Note: Uses ldd to query shared library dependencies and thus does not
+# work for cross builds.
def copy_icu_libs(patchelf, destination_lib_dir):
"""
Copy ICU libraries that QtCore depends on,
to given `destination_lib_dir`.
"""
- qt_core_library_path = find_qt_core_library_glob(destination_lib_dir)
+ qt_core_library_path = Path(find_qt_core_library_glob(destination_lib_dir))
- if not qt_core_library_path or not os.path.exists(qt_core_library_path):
+ if not qt_core_library_path or not qt_core_library_path.exists():
raise RuntimeError(f"QtCore library does not exist at path: {qt_core_library_path}. "
- "Failed to copy ICU libraries.")
+ "Failed to copy ICU libraries.")
dependencies = ldd_get_dependencies(qt_core_library_path)
@@ -958,14 +756,15 @@ def copy_icu_libs(patchelf, destination_lib_dir):
paths = ldd_get_paths_for_dependencies(icu_regex, dependencies=dependencies)
if not paths:
raise RuntimeError("Failed to find the necessary ICU libraries required by QtCore.")
- log.info('Copying the detected ICU libraries required by QtCore.')
+ log.debug('Copying the detected ICU libraries required by QtCore.')
- if not os.path.exists(destination_lib_dir):
- os.makedirs(destination_lib_dir)
+ destination_lib_dir = Path(destination_lib_dir)
+ if not destination_lib_dir.exists():
+ destination_lib_dir.mkdir(parents=True)
for path in paths:
- basename = os.path.basename(path)
- destination = os.path.join(destination_lib_dir, basename)
+ basename = Path(path).name
+ destination = destination_lib_dir / basename
copyfile(path, destination, force_copy_symlink=True)
# Patch the ICU libraries to contain the $ORIGIN rpath
# value, so that only the local package libraries are used.
@@ -990,7 +789,7 @@ def linux_run_read_elf(executable_path):
def linux_set_rpaths(patchelf, executable_path, rpath_string):
""" Patches the `executable_path` with a new rpath string. """
- cmd = [patchelf, '--set-rpath', rpath_string, executable_path]
+ cmd = [str(patchelf), '--set-rpath', str(rpath_string), str(executable_path)]
if run_process(cmd) != 0:
raise RuntimeError(f"Error patching rpath in {executable_path}")
@@ -1003,7 +802,6 @@ def linux_prepend_rpath(patchelf, executable_path, new_path):
rpaths.insert(0, new_path)
new_rpaths_string = ":".join(rpaths)
linux_set_rpaths(patchelf, executable_path, new_rpaths_string)
- result = True
def linux_patch_executable(patchelf, executable_path):
@@ -1095,6 +893,7 @@ def linux_fix_rpaths_for_library(patchelf, executable_path, qt_rpath, override=F
existing_rpaths = linux_get_rpaths(executable_path)
rpaths.extend(existing_rpaths)
+ qt_rpath = str(qt_rpath)
if linux_needs_qt_rpath(executable_path) and qt_rpath not in existing_rpaths:
rpaths.append(qt_rpath)
@@ -1133,26 +932,9 @@ def get_python_dict(python_script_path):
raise
-def install_pip_package_from_url_specifier(env_pip, url, upgrade=True):
- args = [env_pip, "install", url]
- if upgrade:
- args.append("--upgrade")
- args.append(url)
- run_instruction(args, f"Failed to install {url}")
-
-
-def install_pip_dependencies(env_pip, packages, upgrade=True):
- for p in packages:
- args = [env_pip, "install"]
- if upgrade:
- args.append("--upgrade")
- args.append(p)
- run_instruction(args, f"Failed to install {p}")
-
-
def get_qtci_virtualEnv(python_ver, host, hostArch, targetArch):
_pExe = "python"
- _env = f"env{python_ver}"
+ _env = f"{os.environ.get('PYSIDE_VIRTUALENV') or 'env'+python_ver}"
env_python = f"{_env}/bin/python"
env_pip = f"{_env}/bin/pip"
@@ -1164,28 +946,32 @@ def get_qtci_virtualEnv(python_ver, host, hostArch, targetArch):
if python_ver.startswith("3"):
var = f"PYTHON{python_ver}-32_PATH"
log.info(f"Try to find python from {var} env variable")
- _path = os.getenv(var, "")
- _pExe = os.path.join(_path, "python.exe")
- if not os.path.isfile(_pExe):
- log.warn(f"Can't find python.exe from {_pExe}, using default python3")
- _pExe = os.path.join(os.getenv("PYTHON3_32_PATH"), "python.exe")
+ _path = Path(os.getenv(var, ""))
+ _pExe = _path / "python.exe"
+ if not _pExe.is_file():
+ log.warning(f"Can't find python.exe from {_pExe}, using default python3")
+ _pExe = Path(os.getenv("PYTHON3_32_PATH")) / "python.exe"
else:
- _pExe = os.path.join(os.getenv("PYTHON2_32_PATH"), "python.exe")
+ _pExe = Path(os.getenv("PYTHON2_32_PATH")) / "python.exe"
else:
if python_ver.startswith("3"):
var = f"PYTHON{python_ver}-64_PATH"
log.info(f"Try to find python from {var} env variable")
- _path = os.getenv(var, "")
- _pExe = os.path.join(_path, "python.exe")
- if not os.path.isfile(_pExe):
- log.warn(f"Can't find python.exe from {_pExe}, using default python3")
- _pExe = os.path.join(os.getenv("PYTHON3_PATH"), "python.exe")
+ _path = Path(os.getenv(var, ""))
+ _pExe = _path / "python.exe"
+ if not _pExe.is_file():
+ log.warning(f"Can't find python.exe from {_pExe}, using default python3")
+ _pExe = Path(os.getenv("PYTHON3_PATH")) / "python.exe"
env_python = f"{_env}\\Scripts\\python.exe"
env_pip = f"{_env}\\Scripts\\pip.exe"
else:
- if python_ver == "3":
+ _pExe = f"python{python_ver}"
+ try:
+ run_instruction([_pExe, "--version"], f"Failed to guess python version {_pExe}")
+ except Exception as e:
+ print(f"Exception {type(e).__name__}: {e}")
_pExe = "python3"
- return(_pExe, _env, env_pip, env_python)
+ return (_pExe, _env, env_pip, env_python)
def run_instruction(instruction, error, initial_env=None):
@@ -1198,21 +984,14 @@ def run_instruction(instruction, error, initial_env=None):
exit(result)
-def acceptCITestConfiguration(hostOS, hostOSVer, targetArch, compiler):
- # Disable unsupported CI configs for now
- # NOTE: String must match with QT CI's storagestruct thrift
- if (hostOSVer in ["WinRT_10", "WebAssembly", "Ubuntu_18_04", "Android_ANY"]
- or hostOSVer.startswith("SLES_")):
- log.info("Disabled {hostOSVer} from Coin configuration")
- return False
- # With 5.11 CI will create two sets of release binaries,
- # one with msvc 2015 and one with msvc 2017
- # we shouldn't release the 2015 version.
- # BUT, 32 bit build is done only on msvc 2015...
- if compiler in ["MSVC2015"] and targetArch in ["X86_64"]:
- log.warn(f"Disabled {compiler} to {targetArch} from Coin configuration")
- return False
- return True
+def get_ci_qtpaths_path(ci_install_dir, ci_host_os):
+ qtpaths_path = f"--qtpaths={ci_install_dir}"
+ if ci_host_os == "MacOS":
+ return f"{qtpaths_path}/bin/qtpaths"
+ elif ci_host_os == "Windows":
+ return f"{qtpaths_path}\\bin\\qtpaths.exe"
+ else:
+ return f"{qtpaths_path}/bin/qtpaths"
def get_ci_qmake_path(ci_install_dir, ci_host_os):
@@ -1223,3 +1002,162 @@ def get_ci_qmake_path(ci_install_dir, ci_host_os):
return f"{qmake_path}\\bin\\qmake.exe"
else:
return f"{qmake_path}/bin/qmake"
+
+
+def parse_cmake_conf_assignments_by_key(source_dir):
+ """
+ Parses a .cmake.conf file that contains set(foo "bar") assignments
+ and returns a dict with those assignments transformed to keys and
+ values.
+ """
+
+ contents = (Path(source_dir) / ".cmake.conf").read_text()
+ matches = re.findall(r'set\((.+?) "(.*?)"\)', contents)
+ d = {key: value for key, value in matches}
+ return d
+
+
+def _configure_failure_message(project_path, cmd, return_code, output, error, env):
+ """Format a verbose message about configure_cmake_project() failures."""
+ cmd_string = ' '.join(cmd)
+ error_text = indent(error.strip(), " ")
+ output_text = indent(output.strip(), " ")
+ result = dedent(f"""
+ Failed to configure CMake project: '{project_path}'
+ Configure args were:
+ {cmd_string}
+ Return code: {return_code}
+ """)
+
+ first = True
+ for k, v in env.items():
+ if k.startswith("CMAKE"):
+ if first:
+ result += "Environment:\n"
+ first = False
+ result += f" {k}={v}\n"
+
+ result += f"\nwith error:\n{error_text}\n"
+
+ CMAKE_CMAKEOUTPUT_LOG_PATTERN = r'See also "([^"]+CMakeOutput\.log)"\.'
+ cmakeoutput_log_match = re.search(CMAKE_CMAKEOUTPUT_LOG_PATTERN, output)
+ if cmakeoutput_log_match:
+ cmakeoutput_log = Path(cmakeoutput_log_match.group(1))
+ if cmakeoutput_log.is_file():
+ log = indent(cmakeoutput_log.read_text().strip(), " ")
+ result += f"CMakeOutput.log:\n{log}\n"
+
+ result += f"Output:\n{output_text}\n"
+ return result
+
+
+def configure_cmake_project(project_path,
+ cmake_path,
+ build_path=None,
+ temp_prefix_build_path=None,
+ cmake_args=None,
+ cmake_cache_args=None,
+ ):
+ clean_temp_dir = False
+ if not build_path:
+ # Ensure parent dir exists.
+ if temp_prefix_build_path:
+ os.makedirs(temp_prefix_build_path, exist_ok=True)
+
+ project_name = Path(project_path).name
+ build_path = tempfile.mkdtemp(prefix=f"{project_name}_", dir=temp_prefix_build_path)
+
+ if 'QFP_SETUP_KEEP_TEMP_FILES' not in os.environ:
+ clean_temp_dir = True
+
+ cmd = [cmake_path, '-G', 'Ninja', '-S', project_path, '-B', build_path]
+
+ if cmake_args:
+ cmd.extend(cmake_args)
+
+ for arg, value in cmake_cache_args:
+ cmd.extend([f'-D{arg}={value}'])
+
+ cmd = [str(i) for i in cmd]
+
+ proc = subprocess.run(cmd, shell=False, cwd=build_path,
+ capture_output=True, universal_newlines=True)
+ return_code = proc.returncode
+ output = proc.stdout
+ error = proc.stderr
+
+ if return_code != 0:
+ m = _configure_failure_message(project_path, cmd, return_code,
+ output, error, os.environ)
+ raise RuntimeError(m)
+
+ if clean_temp_dir:
+ remove_tree(build_path)
+
+ return output
+
+
+def parse_cmake_project_message_info(output):
+ # Parse the output for anything prefixed
+ # '-- qfp:<category>:<key>: <value>' as created by the message()
+ # calls in a given CMake project and store it in a python dict.
+ result = defaultdict(lambda: defaultdict(str))
+ pattern = re.compile(r"^-- qfp:(.+?):(.+?):(.*)$")
+ for line in output.splitlines():
+ found = pattern.search(line)
+ if found:
+ category = found.group(1).strip()
+ key = found.group(2).strip()
+ value = found.group(3).strip()
+ result[category][key] = str(value)
+ return result
+
+
+def available_pyside_tools(qt_tools_path: Path, package_for_wheels: bool = False):
+ pyside_tools = PYSIDE_PYTHON_TOOLS.copy()
+
+ if package_for_wheels:
+ # Qt wrappers in build/{python_env_name}/package_for_wheels/PySide6
+ bin_path = qt_tools_path
+ else:
+ bin_path = qt_tools_path / "bin"
+
+ def tool_exist(tool_path: Path):
+ if tool_path.exists():
+ return True
+ else:
+ log.warning(f"{tool_path} not found. pyside-{tool_path.name} not included.")
+ return False
+
+ if sys.platform == 'win32':
+ pyside_tools.extend([tool for tool in PYSIDE_WINDOWS_BIN_TOOLS
+ if tool_exist(bin_path / f"{tool}.exe")])
+ else:
+ lib_exec_path = qt_tools_path / "Qt" / "libexec" if package_for_wheels \
+ else qt_tools_path / "libexec"
+ pyside_tools.extend([tool for tool in PYSIDE_UNIX_LIBEXEC_TOOLS
+ if tool_exist(lib_exec_path / tool)])
+ if sys.platform == 'darwin':
+ def name_to_path(name):
+ return f"{name.capitalize()}.app/Contents/MacOS/{name.capitalize()}"
+
+ pyside_tools.extend([tool for tool in PYSIDE_UNIX_BIN_TOOLS
+ if tool_exist(bin_path / tool)])
+ pyside_tools.extend([tool for tool in PYSIDE_UNIX_BUNDLED_TOOLS
+ if tool_exist(bin_path / name_to_path(tool))])
+ else:
+ pyside_tools.extend([tool for tool in PYSIDE_LINUX_BIN_TOOLS
+ if tool_exist(bin_path / tool)])
+
+ return pyside_tools
+
+
+def copy_qt_metatypes(destination_qt_dir, _vars):
+ """Copy the Qt metatypes files which changed location in 6.5"""
+ # <qt>/[lib]?/metatypes/* -> <setup>/{st_package_name}/Qt/[lib]?/metatypes
+ qt_meta_types_dir = "{qt_metatypes_dir}".format(**_vars)
+ qt_prefix_dir = "{qt_prefix_dir}".format(**_vars)
+ rel_meta_data_dir = os.fspath(Path(qt_meta_types_dir).relative_to(qt_prefix_dir))
+ copydir(qt_meta_types_dir, destination_qt_dir / rel_meta_data_dir,
+ _filter=["*.json"],
+ recursive=False, _vars=_vars, force_copy_symlinks=True)
diff --git a/build_scripts/versions.py b/build_scripts/versions.py
deleted file mode 100644
index f7312ebb4..000000000
--- a/build_scripts/versions.py
+++ /dev/null
@@ -1,43 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-
-PYSIDE = 'pyside6'
-PYSIDE_MODULE = 'PySide6'
-SHIBOKEN = 'shiboken6'
diff --git a/build_scripts/wheel_files.py b/build_scripts/wheel_files.py
new file mode 100644
index 000000000..d34ada113
--- /dev/null
+++ b/build_scripts/wheel_files.py
@@ -0,0 +1,1036 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+
+import json
+import sys
+from dataclasses import Field, dataclass, field
+from typing import Dict, List
+
+
+_pyside_package_path = None
+_module_json_file_path = None
+
+
+def set_pyside_package_path(p):
+ global _pyside_package_path, _module_json_file_path
+ _pyside_package_path = p
+ qt_path = p
+ if sys.platform != "win32":
+ qt_path /= "Qt"
+ _module_json_file_path = qt_path / "modules"
+
+
+def get_module_json_data(module):
+ """Read the JSON module data."""
+ json_path = _module_json_file_path / f"{module}.json"
+ json_data = None
+ if not json_path.is_file(): # Wayland is Linux only
+ print(f"Skipping {json_path}", file=sys.stderr)
+ return None
+ with json_path.open(encoding="utf-8") as json_file:
+ json_data = json.load(json_file)
+ return json_data
+
+
+def get_module_plugins(json_data):
+ """Return the plugins from the JSON module data."""
+ if json_data:
+ plugins = json_data.get("plugin_types")
+ if plugins:
+ return plugins
+ return []
+
+
+# This dataclass is in charge of holding the file information
+# that each Qt module needs to have to be packaged in a wheel
+@dataclass
+class ModuleData:
+ name: str
+ ext: str = ""
+ # Libraries not related to Qt modules
+ lib: List[str] = field(default_factory=list)
+ # Libraries related to Qt modules
+ qtlib: List[str] = field(default_factory=list)
+ # Files from the Qt/qml directory
+ qml: List[str] = field(default_factory=list)
+ pyi: List[str] = field(default_factory=list)
+ translations: List[str] = field(default_factory=list)
+ typesystems: List[str] = field(default_factory=list)
+ include: List[str] = field(default_factory=list)
+ glue: List[str] = field(default_factory=list)
+ metatypes: List[str] = field(default_factory=list)
+ plugins: List[str] = field(default_factory=list)
+
+ # For special cases when a file/directory doesn't fall into
+ # the previous categories.
+ extra_dirs: List[str] = field(default_factory=list)
+ extra_files: List[str] = field(default_factory=list)
+
+ # Once the object is created, this method will be executed
+ # and automatically will initialize some of the files that are
+ # common for each module.
+ # Note: The goal of this list is to be used for a MANIFEST.in
+ # meaning that in case a file gets added and it doesn't
+ # exist, the wheel creation process will only throw a
+ # warning, but it will not interrupt the packaging process.
+ def __post_init__(self) -> None:
+ if not self.ext:
+ self.ext = self.get_extension_from_platform(sys.platform)
+ _lo = self.name.lower()
+
+ self.lib.append(f"Qt{self.name}")
+ self.qtlib.append(f"libQt6{self.name}")
+ if not len(self.qml):
+ self.qml.append(f"Qt{self.name}")
+ self.pyi.append(f"Qt{self.name}.pyi")
+ self.typesystems.append(f"typesystem_{_lo}.xml")
+ self.include.append(f"Qt{self.name}/*.h")
+ self.glue.append(f"qt{_lo}.cpp")
+ if not len(self.metatypes):
+ self.metatypes.append(f"qt6{_lo}_relwithdebinfo_metatypes.json")
+
+ # The PySide6 directory that gets packaged by the build_scripts
+ # 'prepare_packages()' has a certain structure that depends on
+ # the platform. Because that directory is the base for the wheel
+ # packaging to work, we use the relative paths that are included
+ # on each file.
+ # Note: The MANIFEST.in file doesn't need to have '\' or other
+ # separator, and respect the '/' even on Windows.
+ def adjusts_paths_and_extensions(self) -> None:
+ if sys.platform == "win32":
+ self.lib = [f"{i}.*{self.ext}".replace("lib", "") for i in self.lib]
+ self.qtlib = [f"{i}.*dll".replace("lib", "") for i in self.qtlib]
+ self.qml = [f"qml/{i}" for i in self.qml]
+ self.translations = [f"translations/{i}" for i in self.translations]
+ self.metatypes = [
+ f"metatypes/{i}".replace("_relwithdebinfo", "") for i in self.metatypes
+ ]
+ self.plugins = [f"plugins/{i}" for i in self.plugins]
+ else:
+ if sys.platform == "darwin":
+ self.qtlib = [f"Qt/lib/{i.replace('libQt6', 'Qt')}.framework" for i in self.qtlib]
+ self.lib = [self.macos_pyside_wrappers_lib(i) for i in self.lib]
+ else:
+ self.lib = [f"{i}.*{self.ext}*" for i in self.lib]
+ self.qtlib = [f"Qt/lib/{i}.*{self.ext}*" for i in self.qtlib]
+ self.qml = [f"Qt/qml/{i}" for i in self.qml]
+ self.translations = [f"Qt/translations/{i}" for i in self.translations]
+ self.metatypes = [f"Qt/metatypes/{i}" for i in self.metatypes]
+ self.plugins = [f"Qt/plugins/{i}" for i in self.plugins]
+
+ self.typesystems = [f"typesystems/{i}" for i in self.typesystems]
+ self.include = [f"include/{i}" for i in self.include]
+ self.glue = [f"glue/{i}" for i in self.glue]
+
+ def macos_pyside_wrappers_lib(self, s):
+ if s.startswith("Qt"):
+ return f"{s}.*so*"
+ else:
+ return f"{s}.*{self.ext}*"
+
+ @classmethod
+ def get_fields(cls) -> Dict[str, Field]:
+ return cls.__dataclass_fields__
+
+ @staticmethod
+ def get_extension_from_platform(platform: str) -> str:
+ if platform == "linux":
+ return "so"
+ elif platform == "darwin":
+ return "dylib"
+ elif platform == "win32":
+ return "pyd"
+ else:
+ print(f"Platform '{platform}' not supported. Exiting")
+ sys.exit(-1)
+
+
+# Wheels auxiliary functions to return the ModuleData objects
+# for each module that will be included in the wheel.
+
+# PySide wheel
+def wheel_files_pyside_essentials() -> List[ModuleData]:
+ files = [
+ module_QtCore(),
+ module_QtGui(),
+ module_QtWidgets(),
+ module_QtHelp(),
+ module_QtNetwork(),
+ module_QtConcurrent(),
+ module_QtDBus(),
+ module_QtDesigner(),
+ module_QtOpenGL(),
+ module_QtOpenGLWidgets(),
+ module_QtPrintSupport(),
+ module_QtQml(),
+ module_QtQuick(),
+ module_QtQuickControls2(),
+ module_QtQuickTest(),
+ module_QtQuickWidgets(),
+ module_QtXml(),
+ module_QtTest(),
+ module_QtSql(),
+ module_QtSvg(),
+ module_QtSvgWidgets(),
+ module_QtUiTools(),
+ module_QtExampleIcons(),
+ # Only for plugins
+ module_QtWayland(),
+ # there are no bindings for these modules, but their binaries are
+ # required for qmlls
+ module_QtLanguageServer(),
+ module_QtJsonRpc(),
+ ]
+ return files
+
+
+# PySide Addons wheel
+def wheel_files_pyside_addons() -> List[ModuleData]:
+ files = [
+ module_Qt3DAnimation(),
+ module_Qt3DCore(),
+ module_Qt3DExtras(),
+ module_Qt3DInput(),
+ module_Qt3DLogic(),
+ module_Qt3DRender(),
+ module_QtAxContainer(),
+ module_QtBluetooth(),
+ module_QtCharts(),
+ module_QtDataVisualization(),
+ module_QtGraphs(),
+ module_QtMultimedia(),
+ module_QtMultimediaWidgets(),
+ module_QtNetworkAuth(),
+ module_QtNfc(),
+ module_QtPdf(),
+ module_QtPdfWidgets(),
+ module_QtPositioning(),
+ module_QtQuick3D(),
+ module_QtRemoteObjects(),
+ module_QtScxml(),
+ module_QtSensors(),
+ module_QtSerialPort(),
+ module_QtSerialBus(),
+ module_QtSpatialAudio(),
+ module_QtStateMachine(),
+ module_QtTextToSpeech(),
+ module_QtVirtualKeyboard(),
+ module_QtWebChannel(),
+ module_QtWebEngineCore(),
+ module_QtWebEngineQuick(),
+ module_QtWebEngineWidgets(),
+ module_QtWebSockets(),
+ module_QtHttpServer(),
+ module_QtLocation(),
+ module_QtAsyncio(),
+ ]
+ return files
+
+
+# Functions that hold the information of all the files that needs
+# to be included for the module to work, including Qt libraries,
+# typesystems, glue, etc.
+def module_QtCore() -> ModuleData:
+ # QtCore
+ data = ModuleData("Core")
+
+ _typesystems = [
+ "common.xml",
+ "core_common.xml",
+ "typesystem_core_common.xml",
+ "typesystem_core_win.xml"
+ ]
+
+ data.typesystems.extend(_typesystems)
+ data.include.append("*.h")
+ if sys.platform == "win32":
+ data.qtlib.append("pyside6.*")
+ data.extra_files.append("qt.conf")
+ data.extra_files.append("rcc.exe")
+ data.extra_files.append("qtdiag.exe")
+ data.extra_files.append("pyside6.*.lib")
+ data.extra_files.append("resources/icudtl.dat")
+ from build_scripts.platforms.windows_desktop import msvc_redist
+ data.extra_files.extend(msvc_redist)
+ else:
+ data.lib.append("libpyside6.*")
+ data.extra_files.append("Qt/libexec/rcc")
+ data.extra_files.append("Qt/libexec/qt.conf")
+
+ # *.py
+ data.extra_dirs.append("support")
+
+ # pyside-tools with python backend
+ # Including the 'scripts' folder would include all the tools into the
+ # PySide6_Essentials wheel. The moment when we add a tool that has a
+ # dependency on a module in PySide6_AddOns, then we should split out
+ # the following line into individual subfolder and files, to better
+ # control which tool goes into which wheel
+ data.extra_dirs.append("scripts")
+
+ data.extra_dirs.append("typesystems/glue")
+
+ data.extra_files.append("__feature__.pyi")
+ data.extra_files.append("__init__.py")
+ data.extra_files.append("_git_pyside_version.py")
+ data.extra_files.append("_config.py")
+ data.extra_files.append("py.typed")
+
+ # Assistant
+ if sys.platform == "darwin":
+ data.extra_dirs.append("Assistant.app")
+ else:
+ data.extra_files.append("assistant*")
+ data.translations.append("assistant_*")
+
+ # Linguist
+ if sys.platform == "darwin":
+ data.extra_dirs.append("Linguist.app")
+ else:
+ data.extra_files.append("linguist*")
+ data.extra_files.append("lconvert*")
+ data.translations.append("linguist_*")
+
+ data.extra_files.append("lrelease*")
+ data.extra_files.append("lupdate*")
+
+ # General translations
+ data.translations.append("qtbase_*")
+ data.translations.append("qt_help_*")
+ data.translations.append("qt_*")
+
+ # Extra libraries
+ data.qtlib.append("libicudata*")
+ data.qtlib.append("libicui18n*")
+ data.qtlib.append("libicule*")
+ data.qtlib.append("libiculx*")
+ data.qtlib.append("libicutest*")
+ data.qtlib.append("libicutu*")
+ data.qtlib.append("libicuuc*")
+ data.qtlib.append("libicuio*")
+
+ return data
+
+
+def module_QtGui() -> ModuleData:
+ data = ModuleData("Gui")
+ _typesystems = [
+ "gui_common.xml",
+ "typesystem_gui_common.xml",
+ "typesystem_gui_mac.xml",
+ "typesystem_gui_win.xml",
+ "typesystem_gui_x11.xml",
+ "typesystem_gui_rhi.xml"
+ ]
+
+ _metatypes = [
+ "qt6eglfsdeviceintegrationprivate_relwithdebinfo_metatypes.json",
+ "qt6eglfskmssupportprivate_relwithdebinfo_metatypes.json",
+ "qt6kmssupportprivate_relwithdebinfo_metatypes.json",
+ "qt6xcbqpaprivate_relwithdebinfo_metatypes.json",
+ ]
+
+ _qtlib = [
+ "libQt6EglFSDeviceIntegration",
+ "libQt6EglFsKmsSupport",
+ "libQt6XcbQpa",
+ ]
+
+ data.typesystems.extend(_typesystems)
+ data.metatypes.extend(_metatypes)
+ data.qtlib.extend(_qtlib)
+
+ json_data = get_module_json_data("Gui")
+ data.plugins = get_module_plugins(json_data)
+ data.extra_files.append("Qt/plugins/platforms/libqeglfs*")
+
+ return data
+
+
+def module_QtWidgets() -> ModuleData:
+ data = ModuleData("Widgets")
+ data.typesystems.append("widgets_common.xml")
+ data.typesystems.append("typesystem_widgets_common.xml")
+
+ if sys.platform == "win32":
+ data.extra_files.append("uic.exe")
+ else:
+ data.extra_files.append("Qt/libexec/uic")
+ json_data = get_module_json_data("Widgets")
+ data.plugins = get_module_plugins(json_data)
+
+ return data
+
+
+def module_QtHelp() -> ModuleData:
+ data = ModuleData("Help")
+
+ return data
+
+
+def module_QtNetwork() -> ModuleData:
+ data = ModuleData("Network")
+ json_data = get_module_json_data("Network")
+ data.plugins = get_module_plugins(json_data)
+
+ return data
+
+
+def module_QtBluetooth() -> ModuleData:
+ data = ModuleData("Bluetooth")
+ data.translations.append("qtconnectivity_*")
+
+ return data
+
+
+def module_QtConcurrent() -> ModuleData:
+ data = ModuleData("Concurrent")
+
+ return data
+
+
+def module_QtDBus() -> ModuleData:
+ data = ModuleData("DBus")
+
+ return data
+
+
+def module_QtDesigner() -> ModuleData:
+ data = ModuleData("Designer")
+ data.qtlib.append("libQt6DesignerComponents")
+ data.metatypes.append("qt6designercomponentsprivate_relwithdebinfo_metatypes.json")
+ json_data = get_module_json_data("Designer")
+ data.plugins = get_module_plugins(json_data)
+ data.extra_files.append("Qt/plugins/assetimporters/libuip*")
+
+ # Designer
+ if sys.platform == "darwin":
+ data.extra_dirs.append("Designer.app")
+ else:
+ data.extra_files.append("designer*")
+ data.translations.append("designer_*")
+
+ return data
+
+
+def module_QtNfc() -> ModuleData:
+ data = ModuleData("Nfc")
+
+ return data
+
+
+def module_QtPdf() -> ModuleData:
+ data = ModuleData("Pdf")
+ data.qtlib.append("libQt6PdfQuick")
+
+ return data
+
+
+def module_QtPdfWidgets() -> ModuleData:
+ data = ModuleData("PdfWidgets")
+
+ return data
+
+
+def module_QtPrintSupport() -> ModuleData:
+ data = ModuleData("PrintSupport")
+ data.typesystems.append("typesystem_printsupport_common.xml")
+ json_data = get_module_json_data("PrintSupport")
+ data.plugins = get_module_plugins(json_data)
+
+ return data
+
+
+def module_QtQml() -> ModuleData:
+ data = ModuleData("Qml")
+ json_data = get_module_json_data("Qml")
+ data.plugins = get_module_plugins(json_data)
+ json_data = get_module_json_data("QmlCompilerPrivate")
+ data.plugins += get_module_plugins(json_data)
+
+ _qtlib = [
+ "libQt6LabsAnimation",
+ "libQt6LabsFolderListModel",
+ "libQt6LabsQmlModels*",
+ "libQt6LabsSettings",
+ "libQt6LabsSharedImage",
+ "libQt6LabsWavefrontMesh",
+ "libQt6QmlCore",
+ "libQt6QmlLocalStorage",
+ "libQt6QmlModels",
+ "libQt6QmlNetwork",
+ "libQt6QmlWorkerScript",
+ "libQt6QmlXmlListModel",
+ "libQt6QmlCompiler"
+ ]
+
+ _include = [
+ "pysideqml.h",
+ "pysideqmlmacros.h",
+ "pysideqmlregistertype.h",
+ ]
+
+ _metatypes = [
+ "qt6labsanimation_relwithdebinfo_metatypes.json",
+ "qt6labsfolderlistmodel_relwithdebinfo_metatypes.json",
+ "qt6labsqmlmodels_relwithdebinfo_metatypes.json",
+ "qt6labssettings_relwithdebinfo_metatypes.json",
+ "qt6labssharedimage_relwithdebinfo_metatypes.json",
+ "qt6labswavefrontmesh_relwithdebinfo_metatypes.json",
+ "qt6packetprotocolprivate_relwithdebinfo_metatypes.json",
+ "qt6qmlcompilerprivate_relwithdebinfo_metatypes.json",
+ "qt6qmlcompilerplusprivate_relwithdebinfo_metatypes.json",
+ "qt6qmlcore_relwithdebinfo_metatypes.json",
+ "qt6qmldebugprivate_relwithdebinfo_metatypes.json",
+ "qt6qmldomprivate_relwithdebinfo_metatypes.json",
+ "qt6qmllintprivate_relwithdebinfo_metatypes.json",
+ "qt6qmllocalstorage_relwithdebinfo_metatypes.json",
+ "qt6qmlmodels_relwithdebinfo_metatypes.json",
+ "qt6qmlworkerscript_relwithdebinfo_metatypes.json",
+ "qt6qmlxmllistmodel_relwithdebinfo_metatypes.json",
+ ]
+
+ _qml = [
+ "Qt/labs/animation",
+ "Qt/labs/folderlistmodel",
+ "Qt/labs/sharedimage",
+ "Qt/labs/wavefrontmesh",
+ "Qt/labs/qmlmodels",
+ "Qt/labs/platform",
+ "Qt/labs/settings",
+ ]
+
+ data.lib.append("libpyside6qml")
+ json_data = get_module_json_data("Qml")
+ data.plugins = get_module_plugins(json_data)
+ data.translations.append("qtdeclarative_*")
+ if sys.platform == "win32":
+ data.extra_files.append("pyside6qml.*.lib")
+ data.extra_files.append("pyside6qml.*.dll")
+ data.extra_files.append("qml/builtins.qmltypes")
+ data.extra_files.append("qml/jsroot.qmltypes")
+ data.extra_files.append("qmlimportscanner.exe")
+ data.extra_files.append("qmltyperegistrar.exe")
+ data.extra_files.append("qmlcachegen.exe")
+ else:
+ data.extra_files.append("Qt/qml/builtins.qmltypes")
+ data.extra_files.append("Qt/qml/jsroot.qmltypes")
+ data.extra_files.append("Qt/libexec/qmlimportscanner")
+ data.extra_files.append("Qt/libexec/qmltyperegistrar")
+ data.extra_files.append("Qt/libexec/qmlcachegen")
+
+ data.qtlib.extend(_qtlib)
+ data.include.extend(_include)
+ data.metatypes.extend(_metatypes)
+ data.qml.extend(_qml)
+
+ data.extra_files.append("qmllint*")
+ data.extra_files.append("qmlformat*")
+ data.extra_files.append("qmlls*")
+
+ return data
+
+
+def module_QtQuick() -> ModuleData:
+ data = ModuleData("Quick")
+ _metatypes = [
+ "qt6quickcontrolstestutilsprivate_relwithdebinfo_metatypes.json",
+ "qt6quickdialogs2_relwithdebinfo_metatypes.json",
+ "qt6quickdialogs2quickimpl_relwithdebinfo_metatypes.json",
+ "qt6quickdialogs2utils_relwithdebinfo_metatypes.json",
+ "qt6quickeffectsprivate_relwithdebinfo_metatypes.json",
+ "qt6quicketest_relwithdebinfo_metatypes.json",
+ "qt6quicketestutilsprivate_relwithdebinfo_metatypes.json",
+ "qt6quicklayouts_relwithdebinfo_metatypes.json",
+ "qt6quickparticlesprivate_relwithdebinfo_metatypes.json",
+ "qt6quickshapesprivate_relwithdebinfo_metatypes.json",
+ "qt6quicktemplates2_relwithdebinfo_metatypes.json",
+ "qt6quicktest_relwithdebinfo_metatypes.json",
+ "qt6quicktestutilsprivate_relwithdebinfo_metatypes.json",
+ "qt6quicktimeline_relwithdebinfo_metatypes.json",
+ ]
+ _qtlib = [
+ "libQt6QuickEffects",
+ "libQt6QuickDialogs2",
+ "libQt6QuickDialogs2QuickImpl",
+ "libQt6QuickDialogs2Utils",
+ "libQt6QuickLayouts",
+ "libQt6QuickParticles",
+ "libQt6QuickShapes",
+ "libQt6QuickTemplates2",
+ "libQt6QuickTest",
+ "libQt6QuickTimeline",
+ "libQt6QuickTimelineBlendTrees",
+ ]
+
+ # Adding GraphicalEffects files
+ data.qml.append("Qt5Compat/GraphicalEffects")
+
+ data.qtlib.extend(_qtlib)
+ data.metatypes.extend(_metatypes)
+ json_data = get_module_json_data("Quick")
+ data.plugins = get_module_plugins(json_data)
+
+ return data
+
+
+def module_QtQuickControls2() -> ModuleData:
+ data = ModuleData("QuickControls2")
+ data.qtlib.append("libQt6QuickControls2")
+ data.qtlib.append("libQt6QuickControls2Basic")
+ data.qtlib.append("libQt6QuickControls2BasicStyleImpl")
+ data.qtlib.append("libQt6QuickControls2Fusion")
+ data.qtlib.append("libQt6QuickControls2FusionStyleImpl")
+ data.qtlib.append("libQt6QuickControls2Imagine")
+ data.qtlib.append("libQt6QuickControls2ImagineStyleImpl")
+ data.qtlib.append("libQt6QuickControls2Impl")
+ data.qtlib.append("libQt6QuickControls2Material")
+ data.qtlib.append("libQt6QuickControls2MaterialStyleImpl")
+ data.qtlib.append("libQt6QuickControls2Universal")
+ data.qtlib.append("libQt6QuickControls2UniversalStyleImpl")
+ if sys.platform == "win32":
+ data.qtlib.append("libQt6QuickControls2WindowsStyleImpl")
+ elif sys.platform == "darwin":
+ data.qtlib.append("libQt6QuickControls2IOSStyleImpl")
+ data.qtlib.append("libQt6QuickControls2MacOSStyleImpl")
+
+ data.metatypes.append("qt6quickcontrols2impl_relwithdebinfo_metatypes.json")
+
+ return data
+
+
+def module_QtQuickTest() -> ModuleData:
+ data = ModuleData("QuickTest")
+
+ return data
+
+
+def module_QtQuickWidgets() -> ModuleData:
+ data = ModuleData("QuickWidgets")
+ return data
+
+
+def module_QtXml() -> ModuleData:
+ data = ModuleData("Xml")
+ return data
+
+
+def module_QtTest() -> ModuleData:
+ data = ModuleData("Test")
+ return data
+
+
+def module_QtSql() -> ModuleData:
+ data = ModuleData("Sql")
+ json_data = get_module_json_data("Sql")
+ data.plugins = get_module_plugins(json_data)
+
+ return data
+
+
+def module_QtSvg() -> ModuleData:
+ data = ModuleData("Svg")
+
+ return data
+
+
+def module_QtSvgWidgets() -> ModuleData:
+ data = ModuleData("SvgWidgets")
+
+ return data
+
+
+def module_QtTextToSpeech() -> ModuleData:
+ data = ModuleData("TextToSpeech")
+ json_data = get_module_json_data("TextToSpeech")
+ data.plugins = get_module_plugins(json_data)
+
+ return data
+
+
+def module_QtUiTools() -> ModuleData:
+ data = ModuleData("UiTools")
+
+ return data
+
+
+def module_QtWayland() -> ModuleData:
+ data = ModuleData("Wayland")
+
+ _qtlib = [
+ "libQt6WaylandClient",
+ "libQt6WaylandCompositor",
+ "libQt6WaylandEglClientHwIntegration",
+ "libQt6WaylandEglCompositorHwIntegration",
+ "libQt6WlShellIntegration",
+ ]
+
+ _metatypes = [
+ "qt6waylandclient_relwithdebinfo_metatypes.json",
+ "qt6waylandeglclienthwintegrationprivate_relwithdebinfo_metatypes.json",
+ "qt6wlshellintegrationprivate_relwithdebinfo_metatypes.json",
+ ]
+
+ data.qtlib.extend(_qtlib)
+ data.metatypes.extend(_metatypes)
+ json_data = get_module_json_data("WaylandClient")
+ data.plugins = get_module_plugins(json_data)
+ json_data = get_module_json_data("WaylandCompositor")
+ data.plugins += get_module_plugins(json_data)
+ return data
+
+
+def module_Qt3DCore() -> ModuleData:
+ data = ModuleData("3DCore", qml=["Qt3D/Core"])
+
+ return data
+
+
+def module_Qt3DAnimation() -> ModuleData:
+ data = ModuleData("3DAnimation", qml=["Qt3D/Animation"])
+
+ return data
+
+
+def module_Qt3DExtras() -> ModuleData:
+ data = ModuleData("3DExtras", qml=["Qt3D/Extras"])
+
+ return data
+
+
+def module_Qt3DInput() -> ModuleData:
+ data = ModuleData("3DInput", qml=["Qt3D/Input"])
+ json_data = get_module_json_data("3DInput")
+ data.plugins = get_module_plugins(json_data)
+
+ return data
+
+
+def module_Qt3DLogic() -> ModuleData:
+ data = ModuleData("3DLogic", qml=["Qt3D/Logic"])
+
+ return data
+
+
+def module_Qt3DRender() -> ModuleData:
+ data = ModuleData("3DRender", qml=["Qt3D/Render"])
+ json_data = get_module_json_data("3DRender")
+ data.plugins = get_module_plugins(json_data)
+
+ return data
+
+
+def module_QtQuick3D() -> ModuleData:
+ data = ModuleData("Quick3D")
+
+ _qtlib = [
+ "libQt6Quick3DAssetImport",
+ "libQt6Quick3DAssetUtils",
+ "libQt6Quick3DEffects",
+ "libQt6Quick3DGlslParser",
+ "libQt6Quick3DHelpers",
+ "libQt6Quick3DHelpersImpl",
+ "libQt6Quick3DIblBaker",
+ "libQt6Quick3DParticleEffects",
+ "libQt6Quick3DParticles",
+ "libQt6Quick3DPhysics",
+ "libQt6Quick3DPhysicsHelpers",
+ "libQt6Quick3DRuntimeRender",
+ "libQt6Quick3DSpatialAudio",
+ "libQt6Quick3DUtils",
+ "libQt6ShaderTools",
+ "libQt63DQuick",
+ "libQt63DQuickAnimation",
+ "libQt63DQuickExtras",
+ "libQt63DQuickExtras",
+ "libQt63DQuickInput",
+ "libQt63DQuickRender",
+ "libQt63DQuickScene2D",
+ ]
+
+ _metatypes = [
+ "qt63dquick_relwithdebinfo_metatypes.json",
+ "qt63dquickanimation_relwithdebinfo_metatypes.json",
+ "qt63dquickextras_relwithdebinfo_metatypes.json",
+ "qt63dquickinput_relwithdebinfo_metatypes.json",
+ "qt63dquickrender_relwithdebinfo_metatypes.json",
+ "qt63dquickscene2d_relwithdebinfo_metatypes.json",
+ "qt6quick3dassetimport_relwithdebinfo_metatypes.json",
+ "qt6quick3dassetutils_relwithdebinfo_metatypes.json",
+ "qt6quick3deffects_relwithdebinfo_metatypes.json",
+ "qt6quick3dglslparserprivate_relwithdebinfo_metatypes.json",
+ "qt6quick3dhelpers_relwithdebinfo_metatypes.json",
+ "qt6quick3diblbaker_relwithdebinfo_metatypes.json",
+ "qt6quick3dparticleeffects_relwithdebinfo_metatypes.json",
+ "qt6quick3dparticles_relwithdebinfo_metatypes.json",
+ "qt6quick3druntimerender_relwithdebinfo_metatypes.json",
+ "qt6quick3dutils_relwithdebinfo_metatypes.json",
+ "qt6shadertools_relwithdebinfo_metatypes.json",
+ ]
+
+ json_data = get_module_json_data("Quick3DAssetImport")
+ data.plugins = get_module_plugins(json_data)
+ data.qtlib.extend(_qtlib)
+ data.metatypes.extend(_metatypes)
+ data.extra_files.append("Qt/plugins/assetimporters/libassimp*")
+ data.extra_files.append("qsb*")
+ data.extra_files.append("balsam*")
+
+ return data
+
+
+def module_QtAxContainer() -> ModuleData:
+ data = ModuleData("AxContainer")
+ if sys.platform == "win32":
+ data.metatypes.append("qt6axbaseprivate_metatypes.json")
+ data.metatypes.append("qt6axserver_metatypes.json")
+
+ return data
+
+
+def module_QtWebEngineCore() -> ModuleData:
+ data = ModuleData("WebEngineCore", qml=["QtWebEngine"])
+ data.translations.append("qtwebengine_locales/*")
+ data.translations.append("qtwebengine_*")
+ data.extra_dirs.append("Qt/resources")
+ if sys.platform == "win32":
+ data.extra_files.append("resources/qtwebengine*.pak")
+ data.extra_files.append("resources/v8_context_snapshot*.*")
+ data.extra_files.append("QtWebEngineProcess.exe")
+ else:
+ data.extra_files.append("Qt/libexec/QtWebEngineProcess")
+
+ return data
+
+
+def module_QtWebEngineWidgets() -> ModuleData:
+ data = ModuleData("WebEngineWidgets")
+
+ return data
+
+
+def module_QtWebEngineQuick() -> ModuleData:
+ data = ModuleData("WebEngineQuick")
+ data.qtlib.append("libQt6WebEngineQuickDelegatesQml")
+ data.metatypes.append("qt6webenginequickdelegatesqml_relwithdebinfo_metatypes.json")
+
+ return data
+
+
+def module_QtCharts() -> ModuleData:
+ data = ModuleData("Charts")
+ data.qtlib.append("libQt6ChartsQml")
+ data.metatypes.append("qt6chartsqml_relwithdebinfo_metatypes.json")
+
+ return data
+
+
+def module_QtDataVisualization() -> ModuleData:
+ data = ModuleData("DataVisualization")
+ data.qtlib.append("libQt6DataVisualizationQml")
+ data.metatypes.append("qt6datavisualizationqml_relwithdebinfo_metatypes.json")
+ data.typesystems.append("datavisualization_common.xml")
+
+ return data
+
+
+def module_QtGraphs() -> ModuleData:
+ data = ModuleData("Graphs")
+
+ return data
+
+
+def module_QtMultimedia() -> ModuleData:
+ data = ModuleData("Multimedia")
+ data.qtlib.append("libQt6MultimediaQuick")
+ data.metatypes.append("qt6multimediaquickprivate_relwithdebinfo_metatypes.json")
+
+ json_data = get_module_json_data("Multimedia")
+ data.translations.append("qtmultimedia_*")
+ data.plugins = get_module_plugins(json_data)
+
+ if sys.platform == "win32":
+ data.extra_files.extend(["avcodec-60.dll", "avformat-60.dll", "avutil-58.dll",
+ "swresample-4.dll", "swscale-7.dll"])
+
+ return data
+
+
+def module_QtMultimediaWidgets() -> ModuleData:
+ data = ModuleData("MultimediaWidgets")
+
+ return data
+
+
+def module_QtNetworkAuth() -> ModuleData:
+ data = ModuleData("NetworkAuth")
+
+ return data
+
+
+def module_QtPositioning() -> ModuleData:
+ data = ModuleData("Positioning")
+ data.qtlib.append("libQt6PositioningQuick")
+ data.metatypes.append("qt6positioningquick_relwithdebinfo_metatypes.json")
+ json_data = get_module_json_data("Positioning")
+ data.plugins = get_module_plugins(json_data)
+
+ return data
+
+
+def module_QtRemoteObjects() -> ModuleData:
+ data = ModuleData("RemoteObjects")
+ data.qtlib.append("libQt6RemoteObjectsQml")
+ data.metatypes.append("qt6remoteobjectsqml_relwithdebinfo_metatypes.json")
+
+ return data
+
+
+def module_QtSensors() -> ModuleData:
+ data = ModuleData("Sensors")
+ data.qtlib.append("libQt6SensorsQuick")
+ data.metatypes.append("qt6sensorsquick_relwithdebinfo_metatypes.json")
+ json_data = get_module_json_data("Sensors")
+ data.plugins = get_module_plugins(json_data)
+
+ return data
+
+
+def module_QtSerialPort() -> ModuleData:
+ data = ModuleData("SerialPort")
+ data.translations.append("qtserialport_*")
+
+ return data
+
+
+def module_QtSpatialAudio() -> ModuleData:
+ data = ModuleData("SpatialAudio")
+ data.metatypes.append("qt6spatialaudio_debug_metatypes.json")
+
+ return data
+
+
+def module_QtStateMachine() -> ModuleData:
+ data = ModuleData("StateMachine")
+ data.qtlib.append("libQt6StateMachineQml")
+ data.metatypes.append("qt6statemachineqml_relwithdebinfo_metatypes.json")
+
+ return data
+
+
+def module_QtScxml() -> ModuleData:
+ data = ModuleData("Scxml")
+ data.qtlib.append("libQt6ScxmlQml")
+ data.metatypes.append("qt6scxmlqml_relwithdebinfo_metatypes.json")
+ json_data = get_module_json_data("Scxml")
+ data.plugins = get_module_plugins(json_data)
+
+ return data
+
+
+def module_QtWebChannel() -> ModuleData:
+ data = ModuleData("WebChannel")
+ data.qtlib.append("libQt6WebChannelQuick")
+
+ return data
+
+
+def module_QtWebSockets() -> ModuleData:
+ data = ModuleData("WebSockets")
+ data.translations.append("qtwebsockets_*")
+
+ return data
+
+
+def module_QtOpenGL() -> ModuleData:
+ data = ModuleData("OpenGL")
+ _typesystems = [
+ "opengl_common.xml",
+ "typesystem_glgeti_v_includes.xml",
+ "typesystem_glgeti_v_modifications.xml",
+ "typesystem_glgetv_includes.xml",
+ "typesystem_glgetv_modifications.xml",
+ "typesystem_opengl_modifications1_0.xml",
+ "typesystem_opengl_modifications1_0_compat.xml",
+ "typesystem_opengl_modifications1_1.xml",
+ "typesystem_opengl_modifications1_1_compat.xml",
+ "typesystem_opengl_modifications1_2_compat.xml",
+ "typesystem_opengl_modifications1_3_compat.xml",
+ "typesystem_opengl_modifications1_4.xml",
+ "typesystem_opengl_modifications1_4_compat.xml",
+ "typesystem_opengl_modifications2_0.xml",
+ "typesystem_opengl_modifications2_0_compat.xml",
+ "typesystem_opengl_modifications2_1.xml",
+ "typesystem_opengl_modifications3_0.xml",
+ "typesystem_opengl_modifications3_3.xml",
+ "typesystem_opengl_modifications3_3a.xml",
+ "typesystem_opengl_modifications4_0.xml",
+ "typesystem_opengl_modifications4_1.xml",
+ "typesystem_opengl_modifications4_3.xml",
+ "typesystem_opengl_modifications4_4.xml",
+ "typesystem_opengl_modifications4_4_core.xml",
+ "typesystem_opengl_modifications4_5.xml",
+ "typesystem_opengl_modifications4_5_core.xml",
+ "typesystem_opengl_modifications_va.xml",
+ ]
+
+ data.typesystems.extend(_typesystems)
+ if sys.platform == "win32":
+ data.extra_files.append("opengl32*.dll")
+
+ return data
+
+
+def module_QtOpenGLWidgets() -> ModuleData:
+ data = ModuleData("OpenGLWidgets")
+ return data
+
+
+def module_QtSerialBus() -> ModuleData:
+ data = ModuleData("SerialBus")
+ json_data = get_module_json_data("SerialBus")
+ data.plugins = get_module_plugins(json_data)
+ return data
+
+
+def module_QtVirtualKeyboard() -> ModuleData:
+ data = ModuleData("VirtualKeyboard")
+ data.plugins.append("virtualkeyboard")
+ return data
+
+
+def module_QtHttpServer() -> ModuleData:
+ data = ModuleData("HttpServer")
+ return data
+
+
+def module_QtLanguageServer() -> ModuleData:
+ data = ModuleData("LanguageServer")
+ data.metatypes.append("qt6languageserverprivate_relwithdebinfo_metatypes.json")
+ return data
+
+
+def module_QtJsonRpc() -> ModuleData:
+ data = ModuleData("JsonRpc")
+ data.metatypes.append("qt6jsonrpcprivate_relwithdebinfo_metatypes.json")
+ return data
+
+
+def module_QtLocation() -> ModuleData:
+ data = ModuleData("Location")
+ json_data = get_module_json_data("Location")
+ data.plugins = get_module_plugins(json_data)
+ data.translations.append("qtlocation_*")
+ return data
+
+
+def module_QtAsyncio() -> ModuleData:
+ data = ModuleData("Asyncio")
+ data.extra_dirs.append("QtAsyncio")
+ return data
+
+
+def module_QtExampleIcons() -> ModuleData:
+ data = ModuleData("ExampleIcons")
+ return data
diff --git a/build_scripts/wheel_override.py b/build_scripts/wheel_override.py
index 534ae54e9..f3f9f17a9 100644
--- a/build_scripts/wheel_override.py
+++ b/build_scripts/wheel_override.py
@@ -1,83 +1,52 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-wheel_module_exists = False
-
-import os
+import platform
import sys
-from .options import DistUtilsCommandMixin, OPTION
-from distutils import log as logger
+from pathlib import Path
from email.generator import Generator
+
+from .log import log
+from .options import OPTION, CommandMixin
+from .utils import is_64bit
from .wheel_utils import get_package_version, get_qt_version, macos_plat_name
+wheel_module_exists = False
+
+
try:
- from wheel.bdist_wheel import bdist_wheel as _bdist_wheel
- from wheel.bdist_wheel import safer_name as _safer_name
- from wheel.bdist_wheel import get_abi_tag, get_platform
from packaging import tags
from wheel import __version__ as wheel_version
+ from wheel.bdist_wheel import bdist_wheel as _bdist_wheel
+ from wheel.bdist_wheel import get_abi_tag, get_platform
+ from wheel.bdist_wheel import safer_name as _safer_name
wheel_module_exists = True
except Exception as e:
_bdist_wheel, wheel_version = type, "" # dummy to make class statement happy
- logger.warn(f"***** Exception while trying to prepare bdist_wheel override class: {e}. "
- "Skipping wheel overriding.")
+ log.warning(f"***** Exception while trying to prepare bdist_wheel override class: {e}. "
+ "Skipping wheel overriding.")
def get_bdist_wheel_override():
return PysideBuildWheel if wheel_module_exists else None
-class PysideBuildWheel(_bdist_wheel, DistUtilsCommandMixin):
+class PysideBuildWheel(_bdist_wheel, CommandMixin):
- user_options = (_bdist_wheel.user_options + DistUtilsCommandMixin.mixin_user_options
+ user_options = (_bdist_wheel.user_options + CommandMixin.mixin_user_options
if wheel_module_exists else None)
def __init__(self, *args, **kwargs):
+ self.command_name = "bdist_wheel"
self._package_version = None
_bdist_wheel.__init__(self, *args, **kwargs)
- DistUtilsCommandMixin.__init__(self)
+ CommandMixin.__init__(self)
def finalize_options(self):
- DistUtilsCommandMixin.mixin_finalize_options(self)
+ CommandMixin.mixin_finalize_options(self)
if sys.platform == 'darwin':
# Override the platform name to contain the correct
# minimum deployment target.
@@ -85,10 +54,11 @@ class PysideBuildWheel(_bdist_wheel, DistUtilsCommandMixin):
self.plat_name = macos_plat_name()
# When limited API is requested, notify bdist_wheel to
- # create a properly named package.
+ # create a properly named package, which will contain
+ # the initial cpython version we support.
limited_api_enabled = OPTION["LIMITED_API"] == 'yes'
if limited_api_enabled:
- self.py_limited_api = "cp36.cp37.cp38.cp39"
+ self.py_limited_api = "cp37"
self._package_version = get_package_version()
@@ -99,21 +69,114 @@ class PysideBuildWheel(_bdist_wheel, DistUtilsCommandMixin):
# Slightly modified version of wheel's wheel_dist_name
# method, to add the Qt version as well.
# Example:
- # PySide6-5.6-5.6.4-cp27-cp27m-macosx_10_10_intel.whl
- # The PySide6 version is "5.6".
- # The Qt version built against is "5.6.4".
+ # PySide6-6.3-6.3.2-cp36-abi3-macosx_10_10_intel.whl
+ # The PySide6 version is "6.3".
+ # The Qt version built against is "6.3.2".
wheel_version = f"{self._package_version}-{get_qt_version()}"
components = (_safer_name(self.distribution.get_name()), wheel_version)
if self.build_number:
components += (self.build_number,)
return '-'.join(components)
- # Copy of get_tag from bdist_wheel.py, to allow setting a
- # multi-python impl tag, by removing an assert. Otherwise we
- # would have to rename wheels manually for limited api
- # packages. Also we set "none" abi tag on Windows, because
- # pip does not yet support "abi3" tag, leading to
- # installation failure when tried.
+ # Modify the returned wheel tag tuple to use correct python version
+ # info when cross-compiling. We use the python info extracted from
+ # the shiboken python config test.
+ # setuptools / wheel don't support cross compiling out of the box
+ # at the moment. Relevant discussion at
+ # https://discuss.python.org/t/towards-standardizing-cross-compiling/10357
+ def get_cross_compiling_tag_tuple(self, tag_tuple):
+ (old_impl, old_abi_tag, plat_name) = tag_tuple
+
+ # Compute tag from the python version that the build command
+ # queried.
+ build_command = self.get_finalized_command('build')
+ python_target_info = build_command.python_target_info['python_info']
+
+ impl = 'no-py-ver-impl-available'
+ abi = 'no-abi-tag-info-available'
+ py_version = python_target_info['version'].split('.')
+ py_version_major, py_version_minor, _ = py_version
+
+ so_abi = python_target_info['so_abi']
+ if so_abi and so_abi.startswith('cpython-'):
+ interpreter_name, cp_version = so_abi.split('-')[:2]
+ impl_name = tags.INTERPRETER_SHORT_NAMES.get(interpreter_name) or interpreter_name
+ impl_ver = f"{py_version_major}{py_version_minor}"
+ impl = impl_name + impl_ver
+ abi = f'cp{cp_version}'
+ tag_tuple = (impl, abi, plat_name)
+ return tag_tuple
+
+ # Adjust wheel tag for limited api and cross compilation.
+ @staticmethod
+ def adjust_cross_compiled_many_linux_tag(old_tag):
+ (old_impl, old_abi_tag, old_plat_name) = old_tag
+
+ new_plat_name = old_plat_name
+
+ # TODO: Detect glibc version instead. We're abusing the
+ # manylinux2014 tag here, just like we did with manylinux1
+ # for x86_64 builds.
+ many_linux_prefix = 'manylinux2014'
+ linux_prefix = "linux_"
+ if old_plat_name.startswith(linux_prefix):
+ # Extract the arch suffix like -armv7l or -aarch64
+ _index = old_plat_name.index(linux_prefix) + len(linux_prefix)
+ plat_name_arch_suffix = old_plat_name[_index:]
+
+ new_plat_name = f"{many_linux_prefix}_{plat_name_arch_suffix}"
+
+ tag = (old_impl, old_abi_tag, new_plat_name)
+ return tag
+
+ # Adjust wheel tag for limited api and cross compilation.
+ def adjust_tag_and_supported_tags(self, old_tag, supported_tags):
+ tag = old_tag
+ (old_impl, old_abi_tag, old_plat_name) = old_tag
+
+ # Get new tag for cross builds.
+ if self.is_cross_compile:
+ tag = self.get_cross_compiling_tag_tuple(old_tag)
+
+ # Use PEP600 for manylinux wheel name
+ # For Qt6 we know RHEL 8.4 is the base linux platform,
+ # and has GLIBC 2.28.
+ # This will generate a name that contains:
+ # manylinux_2_28
+ # TODO: Add actual distro detection, instead of
+ # relying on limited_api option.
+ if (old_plat_name in ('linux-x86_64', 'linux_x86_64')
+ and is_64bit()
+ and self.py_limited_api):
+ _, _version = platform.libc_ver()
+ glibc = _version.replace(".", "_")
+ tag = (old_impl, old_abi_tag, f"manylinux_{glibc}_x86_64")
+
+ # Set manylinux tag for cross-compiled builds when targeting
+ # limited api.
+ if self.is_cross_compile and self.py_limited_api:
+ tag = self.adjust_cross_compiled_many_linux_tag(tag)
+
+ # Reset the abi name and python versions supported by this wheel
+ # when targeting limited API. This is the same code that's
+ # in get_tag(), but done later after our own customizations.
+ if self.py_limited_api and old_impl.startswith('cp3'):
+ (_, _, adjusted_plat_name) = tag
+ impl = self.py_limited_api
+ abi_tag = 'abi3'
+ tag = (impl, abi_tag, adjusted_plat_name)
+
+ # If building for limited API or we created a new tag, add it
+ # to the list of supported tags.
+ if tag != old_tag or self.py_limited_api:
+ supported_tags.append(tag)
+ return tag
+
+ # A slightly modified copy of get_tag from bdist_wheel.py, to allow
+ # adjusting the returned tag without triggering an assert. Otherwise
+ # we would have to rename wheels manually.
+ # Copy is up-to-date since commit
+ # 0acd203cd896afec7f715aa2ff5980a403459a3b in the wheel repo.
def get_tag(self):
# bdist sets self.plat_name if unset, we should only use it for purepy
# wheels if the user supplied it.
@@ -126,36 +189,22 @@ class PysideBuildWheel(_bdist_wheel, DistUtilsCommandMixin):
if self.plat_name and not self.plat_name.startswith("macosx"):
plat_name = self.plat_name
else:
- # on macosx always limit the platform name to comply with any
+ # on macOS always limit the platform name to comply with any
# c-extension modules in bdist_dir, since the user can specify
# a higher MACOSX_DEPLOYMENT_TARGET via tools like CMake
- # on other platforms, and on macosx if there are no c-extension
+ # on other platforms, and on macOS if there are no c-extension
# modules, use the default platform name.
plat_name = get_platform(self.bdist_dir)
- if plat_name in ('linux-x86_64', 'linux_x86_64') and sys.maxsize == 2147483647:
+ if plat_name in ('linux-x86_64', 'linux_x86_64') and not is_64bit():
plat_name = 'linux_i686'
- # To allow uploading to pypi, we need the wheel name
- # to contain 'manylinux1'.
- # The wheel which will be uploaded to pypi will be
- # built on RHEL7, so it doesn't completely qualify for
- # manylinux1 support, but it's the minimum requirement
- # for building Qt. We only enable this for x64 limited
- # api builds (which are the only ones uploaded to
- # pypi).
- # TODO: Add actual distro detection, instead of
- # relying on limited_api option.
- if (plat_name in ('linux-x86_64', 'linux_x86_64')
- and sys.maxsize > 2147483647
- and (self.py_limited_api)):
- plat_name = 'manylinux1_x86_64'
- plat_name = plat_name.replace('-', '_').replace('.', '_')
+ plat_name = plat_name.lower().replace('-', '_').replace('.', '_')
if self.root_is_pure:
if self.universal:
- impl = 'py2.py3'
+ impl = 'py3'
else:
impl = self.python_tag
tag = (impl, 'none', plat_name)
@@ -166,21 +215,21 @@ class PysideBuildWheel(_bdist_wheel, DistUtilsCommandMixin):
# We don't work on CPython 3.1, 3.0.
if self.py_limited_api and (impl_name + impl_ver).startswith('cp3'):
impl = self.py_limited_api
- abi_tag = "abi3" if sys.platform != "win32" else "none"
+ abi_tag = 'abi3'
else:
abi_tag = str(get_abi_tag()).lower()
tag = (impl, abi_tag, plat_name)
- supported_tags = [(t.interpreter, t.abi, t.platform)
+ # issue gh-374: allow overriding plat_name
+ supported_tags = [(t.interpreter, t.abi, plat_name)
for t in tags.sys_tags()]
- # XXX switch to this alternate implementation for non-pure:
- if (self.py_limited_api) or (plat_name in ('manylinux1_x86_64')):
- return tag
+ # PySide's custom override.
+ tag = self.adjust_tag_and_supported_tags(tag, supported_tags)
assert tag in supported_tags, (f"would build wheel with unsupported tag {tag}")
return tag
# Copy of get_tag from bdist_wheel.py, to write a triplet Tag
# only once for the limited_api case.
- def write_wheelfile(self, wheelfile_base, generator='bdist_wheel (' + wheel_version + ')'):
+ def write_wheelfile(self, wheelfile_base, generator=f'bdist_wheel ({wheel_version})'):
from email.message import Message
msg = Message()
msg['Wheel-Version'] = '1.0' # of the spec
@@ -204,8 +253,8 @@ class PysideBuildWheel(_bdist_wheel, DistUtilsCommandMixin):
for impl in impl_tag.split('.'):
writeTag(impl)
- wheelfile_path = os.path.join(wheelfile_base, 'WHEEL')
- logger.info('creating %s', wheelfile_path)
+ wheelfile_path = Path(wheelfile_base) / 'WHEEL'
+ log.info(f'creating {wheelfile_path}')
with open(wheelfile_path, 'w') as f:
Generator(f, maxheaderlen=0).flatten(msg)
diff --git a/build_scripts/wheel_utils.py b/build_scripts/wheel_utils.py
index cea45b107..5ec26c742 100644
--- a/build_scripts/wheel_utils.py
+++ b/build_scripts/wheel_utils.py
@@ -1,54 +1,17 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-import os
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
import time
+from pathlib import Path
+from sysconfig import get_config_var, get_platform
-from distutils.errors import DistutilsSetupError
-from distutils.sysconfig import get_config_var
-from distutils.util import get_platform
-from distutils.version import LooseVersion
+from packaging.version import parse as parse_version
+from setuptools.errors import SetupError
from .options import OPTION
from .qtinfo import QtInfo
-from .utils import memoize, get_python_dict
-from .versions import PYSIDE
+from .utils import memoize, parse_cmake_conf_assignments_by_key
+from . import PYSIDE
@memoize
@@ -65,12 +28,11 @@ def get_qt_version():
qt_version = qtinfo.version
if not qt_version:
- raise DistutilsSetupError("Failed to query the Qt version with "
- f"qmake {qtinfo.qmake_command}")
+ raise SetupError("Failed to query the Qt version with qmake {qtinfo.qmake_command}")
- if LooseVersion(qtinfo.version) < LooseVersion("5.7"):
- raise DistutilsSetupError(f"Incompatible Qt version detected: {qt_version}. "
- "A Qt version >= 5.7 is required.")
+ if parse_version(qtinfo.version) < parse_version("5.7"):
+ raise SetupError(f"Incompatible Qt version detected: {qt_version}. "
+ "A Qt version >= 5.7 is required.")
return qt_version
@@ -78,18 +40,21 @@ def get_qt_version():
@memoize
def get_package_version():
""" Returns the version string for the PySide6 package. """
- setup_script_dir = os.getcwd()
- pyside_version_py = os.path.join(
- setup_script_dir, "sources", PYSIDE, "pyside_version.py")
- d = get_python_dict(pyside_version_py)
- final_version = f"{d['major_version']}.{d['minor_version']}.{d['patch_version']}"
- release_version_type = d['release_version_type']
- pre_release_version = d['pre_release_version']
- if pre_release_version and release_version_type:
+ setup_script_dir = Path.cwd()
+ pyside_project_dir = setup_script_dir / "sources" / PYSIDE
+ d = parse_cmake_conf_assignments_by_key(pyside_project_dir)
+ major_version = d['pyside_MAJOR_VERSION']
+ minor_version = d['pyside_MINOR_VERSION']
+ patch_version = d['pyside_MICRO_VERSION']
+
+ final_version = f"{major_version}.{minor_version}.{patch_version}"
+ release_version_type = d.get('pyside_PRE_RELEASE_VERSION_TYPE')
+ pre_release_version = d.get('pyside_PRE_RELEASE_VERSION')
+
+ if release_version_type and not release_version_type.startswith("comm") and pre_release_version:
final_version = f"{final_version}{release_version_type}{pre_release_version}"
-
- if release_version_type.startswith("comm"):
- final_version = f"{final_version}.{release_version_type}"
+ if release_version_type and release_version_type.startswith("comm"):
+ final_version = f"{final_version}+{release_version_type}"
# Add the current timestamp to the version number, to suggest it
# is a development snapshot build.
@@ -102,7 +67,7 @@ def macos_qt_min_deployment_target():
target = QtInfo().macos_min_deployment_target
if not target:
- raise DistutilsSetupError("Failed to query for Qt's QMAKE_MACOSX_DEPLOYMENT_TARGET.")
+ raise SetupError("Failed to query for Qt's QMAKE_MACOSX_DEPLOYMENT_TARGET.")
return target
@@ -135,11 +100,9 @@ def macos_pyside_min_deployment_target():
# precedence.
if setup_target:
if python_target and setup_target_split < python_target_split:
- raise DistutilsSetupError(message.format(setup_target, "Python",
- python_target))
+ raise SetupError(message.format(setup_target, "Python", python_target))
if setup_target_split < qt_target_split:
- raise DistutilsSetupError(message.format(setup_target, "Qt",
- qt_target))
+ raise SetupError(message.format(setup_target, "Qt", qt_target))
# All checks clear, use setup.py provided value.
return setup_target
diff --git a/coin/dependencies.yaml b/coin/dependencies.yaml
index 0a1ea21aa..fda1681cd 100644
--- a/coin/dependencies.yaml
+++ b/coin/dependencies.yaml
@@ -1,6 +1,6 @@
product_dependency:
../../qt/qt5:
- ref: "6.2"
+ ref: "6.7"
dependency_source: supermodule
dependencies: [
"../../qt/qt3d",
@@ -12,9 +12,11 @@ dependencies: [
"../../qt/qtdatavis3d",
"../../qt/qtdeclarative",
"../../qt/qtdoc",
+ "../../qt/qtgraphs",
+ "../../qt/qthttpserver",
"../../qt/qtimageformats",
"../../qt/qtlocation",
- "../../qt/qtlottie",
+ "../../qt/qtpositioning",
"../../qt/qtmultimedia",
"../../qt/qtnetworkauth",
"../../qt/qtqa",
@@ -26,6 +28,7 @@ dependencies: [
"../../qt/qtserialbus",
"../../qt/qtserialport",
"../../qt/qtshadertools",
+ "../../qt/qtspeech",
"../../qt/qtsvg",
"../../qt/qttools",
"../../qt/qttranslations",
@@ -33,6 +36,5 @@ dependencies: [
"../../qt/qtwayland",
"../../qt/qtwebchannel",
"../../qt/qtwebengine",
- "../../qt/qtwebsockets",
- "../../qt/qtwebview"
+ "../../qt/qtwebsockets"
]
diff --git a/coin/instructions/common_environment.yaml b/coin/instructions/common_environment.yaml
index 828891674..441a01803 100644
--- a/coin/instructions/common_environment.yaml
+++ b/coin/instructions/common_environment.yaml
@@ -4,6 +4,25 @@ instructions:
variableName: QTEST_ENVIRONMENT
variableValue: "ci"
- type: EnvironmentVariable
+ variableName: PYSIDE_VIRTUALENV
+ variableValue: "{{.AgentWorkingDir}}\\pyside\\pyside-setup\\env"
+ enable_if:
+ condition: property
+ property: host.os
+ equals_value: Windows
+ - type: EnvironmentVariable
+ variableName: PYSIDE_VIRTUALENV
+ variableValue: "{{.AgentWorkingDir}}/pyside/pyside-setup/env"
+ enable_if:
+ condition: or
+ conditions:
+ - condition: property
+ property: host.os
+ equals_value: MacOS
+ - condition: property
+ property: host.os
+ equals_value: Linux
+ - type: EnvironmentVariable
variableName: TARGET_ARCHITECTURE
variableValue: amd64
enable_if:
@@ -16,6 +35,18 @@ instructions:
property: host.os
equals_value: Windows
- type: EnvironmentVariable
+ variableName: PYTHON3_PATH
+ variableValue: "{{ index .Env \"PYTHON3.10.0-64_PATH\"}}"
+ enable_if:
+ condition: and
+ conditions:
+ - condition: property
+ property: host.osVersion
+ equals_value: Windows_11_22H2
+ - condition: property
+ property: host.os
+ equals_value: Windows
+ - type: EnvironmentVariable
variableName: TARGET_ARCHITECTURE
variableValue: amd64_x86
enable_if:
@@ -49,6 +80,13 @@ instructions:
property: features
contains_value: Packaging
- type: EnvironmentVariable
+ variableName: CI_USE_SCCACHE
+ variableValue: "--compiler-launcher=sccache"
+ enable_if:
+ condition: property
+ property: features
+ contains_value: Sccache
+ - type: EnvironmentVariable
variableName: CI_OS
variableValue: "MacOS"
enable_if:
@@ -86,19 +124,26 @@ instructions:
- type: PrependToEnvironmentVariable
variableName: PATH
variableValue: "{{.Env.PYTHON3_PATH}}/bin:"
- disable_if:
+ enable_if:
condition: property
property: host.os
- equals_value: Windows
+ equals_value: MacOS
- type: PrependToEnvironmentVariable
variableName: PATH
- variableValue: "{{.Env.PYTHON3_PATH}};"
+ variableValue: "{{ index .Env \"PYTHON3.10.0-64_PATH\"}};"
enable_if:
condition: property
property: host.os
equals_value: Windows
- type: PrependToEnvironmentVariable
variableName: PATH
+ variableValue: "/Users/qt/.local/bin/:"
+ enable_if:
+ condition: property
+ property: host.osVersion
+ equals_value: MacOS_11_00
+ - type: PrependToEnvironmentVariable
+ variableName: PATH
variableValue: "/Users/qt/work/install/bin:"
enable_if:
condition: property
@@ -149,3 +194,68 @@ instructions:
- type: EnvironmentVariable
variableName: LLVM_INSTALL_DIR
variableValue: "{{.Env.LLVM_DYNAMIC_LIBS_100}}"
+ disable_if:
+ condition: and
+ conditions:
+ - condition: property
+ property: target.arch
+ equals_value: X86_64-ARM64 # When target arch is universal binary, we can use the default libclang
+ - condition: property
+ property: host.os
+ equals_value: MacOS
+ - type: ExecuteCommand
+ command: "sudo apt-get install python3-pip libclang-11-dev clang -y"
+ maxTimeInSeconds: 14400
+ maxTimeBetweenOutput: 1200
+ enable_if:
+ condition: and
+ conditions:
+ - condition: property
+ property: host.os
+ equals_value: Linux
+ - condition: property
+ property: host.arch
+ equals_value: AARCH64
+ userMessageOnFailure: >
+ Failed to install dependencies
+ - type: ExecuteCommand
+ command: "python3 -m pip install -U setuptools==69.1.1"
+ maxTimeInSeconds: 14400
+ maxTimeBetweenOutput: 1200
+ enable_if:
+ condition: and
+ conditions:
+ - condition: property
+ property: host.os
+ equals_value: Linux
+ - condition: property
+ property: host.arch
+ equals_value: AARCH64
+ userMessageOnFailure: >
+ Failed to install setuptools
+ - type: EnvironmentVariable
+ variableName: LLVM_INSTALL_DIR
+ variableValue: "/usr/lib/llvm-11/lib"
+ enable_if:
+ condition: and
+ conditions:
+ - condition: property
+ property: target.arch
+ equals_value: AARCH64
+ - condition: property
+ property: host.os
+ equals_value: Linux
+ - type: EnvironmentVariable
+ variableName: interpreter
+ variableValue: "python3.11"
+ enable_if:
+ condition: property
+ property: host.osVersion
+ in_values: [RHEL_8_6, RHEL_8_8]
+ - type: EnvironmentVariable
+ variableName: interpreter
+ variableValue: "python3"
+ enable_if: # Enable for others than rhl 8.*
+ condition: property
+ property: target.osVersion
+ not_in_values: [RHEL_8_6, RHEL_8_8]
diff --git a/coin/instructions/execute_build_instructions.yaml b/coin/instructions/execute_build_instructions.yaml
index f26499027..317adae2a 100644
--- a/coin/instructions/execute_build_instructions.yaml
+++ b/coin/instructions/execute_build_instructions.yaml
@@ -1,7 +1,7 @@
type: Group
instructions:
- type: ExecuteCommand
- command: "python3 -u coin_build_instructions.py --os={{.Env.CI_OS}} {{.Env.CI_PACKAGING_FEATURE}} --instdir=/Users/qt/work/install --targetOs={{.Env.CI_OS}} --hostArch=X86_64 --targetArch={{.Env.CI_TARGET_ARCHITECTURE}} --phase=ALL"
+ command: "python3 -m pip install -U setuptools==69.1.1"
maxTimeInSeconds: 14400
maxTimeBetweenOutput: 1200
enable_if:
@@ -9,9 +9,56 @@ instructions:
property: host.os
equals_value: MacOS
userMessageOnFailure: >
- Failed to execute build instructions on osx
+ Failed to install setuptools on macOS
- type: ExecuteCommand
- command: "python3 -u coin_build_instructions.py --os={{.Env.CI_OS}} {{.Env.CI_PACKAGING_FEATURE}} --instdir=/home/qt/work/install --targetOs={{.Env.CI_OS}} --hostArch=X86_64 --targetArch={{.Env.CI_TARGET_ARCHITECTURE}} --phase=ALL"
+ command: "python3 -u coin_build_instructions.py --os={{.Env.CI_OS}} {{.Env.CI_PACKAGING_FEATURE}} {{.Env.CI_USE_SCCACHE}} --instdir=/Users/qt/work/install --targetOs={{.Env.CI_OS}} --hostArch=X86_64 --targetArch={{.Env.CI_TARGET_ARCHITECTURE}} --phase=ALL"
+ maxTimeInSeconds: 14400
+ maxTimeBetweenOutput: 1200
+ enable_if:
+ condition: and
+ conditions:
+ - condition: property
+ property: target.arch
+ equals_value: X86_64
+ - condition: property
+ property: host.os
+ equals_value: MacOS
+ userMessageOnFailure: >
+ Failed to execute build instructions on macOS
+ - type: ExecuteCommand
+ command: "python3 -u coin_build_instructions.py --os={{.Env.CI_OS}} {{.Env.CI_PACKAGING_FEATURE}} {{.Env.CI_USE_SCCACHE}} --instdir=/Users/qt/work/install --targetOs={{.Env.CI_OS}} --hostArch=X86_64 --targetArch=X86_64-ARM64 --phase=ALL"
+ maxTimeInSeconds: 14400
+ maxTimeBetweenOutput: 1200
+ enable_if:
+ condition: and
+ conditions:
+ - condition: property
+ property: target.arch
+ equals_value: X86_64-ARM64
+ - condition: property
+ property: host.os
+ equals_value: MacOS
+ userMessageOnFailure: >
+ Failed to execute build instructions on macOS
+ - type: EnvironmentVariable
+ variableName: PYSIDE_SIGNING_DIR
+ variableValue: "{{.AgentWorkingDir}}\\pyside\\{{.Env.TESTED_MODULE_COIN}}\\build\\qfpa-p3.10\\package_for_wheels"
+ enable_if:
+ condition: property
+ property: host.os
+ equals_value: Windows
+ - type: ExecuteCommand
+ command: "{{.Env.interpreter}} -m pip install -U pip setuptools==69.1.1 --user"
+ maxTimeInSeconds: 14400
+ maxTimeBetweenOutput: 1200
+ enable_if:
+ condition: property
+ property: host.os
+ equals_value: Linux
+ userMessageOnFailure: >
+ Failed to install setuptools on Linux
+ - type: ExecuteCommand
+ command: "{{.Env.interpreter}} -u coin_build_instructions.py --os={{.Env.CI_OS}} {{.Env.CI_PACKAGING_FEATURE}} {{.Env.CI_USE_SCCACHE}} --instdir=/home/qt/work/install --targetOs={{.Env.CI_OS}} --hostArch={{.Env.HOST_ARCH_COIN}} --targetArch={{.Env.TARGET_ARCH_COIN}}--phase=ALL"
maxTimeInSeconds: 14400
maxTimeBetweenOutput: 600
enable_if:
@@ -21,7 +68,17 @@ instructions:
userMessageOnFailure: >
Failed to execute build instructions on Linux
- type: ExecuteCommand
- command: "c:\\users\\qt\\MSVC.bat {{.Env.PYTHON3_PATH}}\\python.exe -u coin_build_instructions.py --os={{.Env.CI_OS}} {{.Env.CI_PACKAGING_FEATURE}} --instdir=\\Users\\qt\\work\\install --targetOs={{.Env.CI_OS}} --hostArch=X86_64 --targetArch={{.Env.CI_TARGET_ARCHITECTURE}} --phase=BUILD"
+ command: "c:\\users\\qt\\MSVC.bat {{.Env.PYTHON3_PATH}}\\python.exe -m pip install -U setuptools==69.1.1"
+ maxTimeInSeconds: 14400
+ maxTimeBetweenOutput: 1200
+ enable_if:
+ condition: property
+ property: host.os
+ equals_value: Windows
+ userMessageOnFailure: >
+ Failed to install setuptools on Windows
+ - type: ExecuteCommand
+ command: "c:\\users\\qt\\MSVC.bat {{.Env.PYTHON3_PATH}}\\python.exe -u coin_build_instructions.py --os={{.Env.CI_OS}} {{.Env.CI_PACKAGING_FEATURE}} {{.Env.CI_USE_SCCACHE}} --instdir=\\Users\\qt\\work\\install --targetOs={{.Env.CI_OS}} --hostArch=X86_64 --targetArch={{.Env.CI_TARGET_ARCHITECTURE}} --phase=BUILD"
maxTimeInSeconds: 14400
maxTimeBetweenOutput: 600
enable_if:
@@ -31,7 +88,7 @@ instructions:
userMessageOnFailure: >
Failed to execute build instructions on Windows
- type: SignPackage
- directory: "{{.AgentWorkingDir}}\\pyside"
+ directory: "{{.Env.PYSIDE_SIGNING_DIR}}"
maxTimeInSeconds: 1200
maxTimeBetweenOutput: 1200
enable_if:
@@ -45,7 +102,7 @@ instructions:
property: host.os
equals_value: Windows
- type: ExecuteCommand
- command: "c:\\users\\qt\\MSVC.bat {{.Env.PYTHON3_PATH}}\\python.exe -u coin_build_instructions.py --os={{.Env.CI_OS}} {{.Env.CI_PACKAGING_FEATURE}} --instdir=\\Users\\qt\\work\\install --targetOs={{.Env.CI_OS}} --hostArch=X86_64 --targetArch={{.Env.CI_TARGET_ARCHITECTURE}} --phase=WHEEL"
+ command: "c:\\users\\qt\\MSVC.bat {{.Env.PYSIDE_VIRTUALENV}}\\Scripts\\python.exe create_wheels.py"
maxTimeInSeconds: 14400
maxTimeBetweenOutput: 300
enable_if:
@@ -54,3 +111,18 @@ instructions:
equals_value: Windows
userMessageOnFailure: >
Failed to create wheels for Windows
+ - type: ExecuteCommand
+ command: "{{.Env.PYSIDE_VIRTUALENV}}/bin/python create_wheels.py"
+ maxTimeInSeconds: 14400
+ maxTimeBetweenOutput: 300
+ enable_if:
+ condition: or
+ conditions:
+ - condition: property
+ property: host.os
+ equals_value: MacOS
+ - condition: property
+ property: host.os
+ equals_value: Linux
+ userMessageOnFailure: >
+ Failed to create wheels
diff --git a/coin/instructions/execute_test_instructions.yaml b/coin/instructions/execute_test_instructions.yaml
index 71057d35e..780b27ec7 100644
--- a/coin/instructions/execute_test_instructions.yaml
+++ b/coin/instructions/execute_test_instructions.yaml
@@ -5,7 +5,7 @@ enable_if:
not_contains_value: LicenseCheck
instructions:
- type: ExecuteCommand
- command: "python3 -u coin_test_instructions.py --os={{.Env.CI_OS}} {{.Env.CI_PACKAGING_FEATURE}} --instdir=/Users/qt/work/install --targetOs={{.Env.CI_OS}} --hostArch=X86_64 --targetArch={{.Env.CI_TARGET_ARCHITECTURE}}"
+ command: "python3 -m pip install -U setuptools==69.1.1"
maxTimeInSeconds: 14400
maxTimeBetweenOutput: 1200
enable_if:
@@ -13,9 +13,49 @@ instructions:
property: host.os
equals_value: MacOS
userMessageOnFailure: >
- Failed to execute test instructions on osx
+ Failed to install setuptools on macOS
+ - type: ExecuteCommand
+ command: "python3 -u coin_test_instructions.py --os={{.Env.CI_OS}} {{.Env.CI_PACKAGING_FEATURE}} --instdir=/Users/qt/work/install --targetOs={{.Env.CI_OS}} --hostArch=ARM64 --targetArch={{.Env.CI_TARGET_ARCHITECTURE}}"
+ maxTimeInSeconds: 14400
+ maxTimeBetweenOutput: 1200
+ enable_if:
+ condition: and
+ conditions:
+ - condition: property
+ property: host.osVersion
+ equals_value: MacOS_11_00
+ - condition: property
+ property: host.arch
+ equals_value: ARM64
+ userMessageOnFailure: >
+ Failed to execute test instructions on arm mac
+ - type: ExecuteCommand
+ command: "python3 -u coin_test_instructions.py --os={{.Env.CI_OS}} {{.Env.CI_PACKAGING_FEATURE}} --instdir=/Users/qt/work/install --targetOs={{.Env.CI_OS}} --hostArch=X86_64 --targetArch={{.Env.CI_TARGET_ARCHITECTURE}}"
+ maxTimeInSeconds: 14400
+ maxTimeBetweenOutput: 1200
+ enable_if:
+ condition: and
+ conditions:
+ - condition: property
+ property: host.os
+ equals_value: MacOS
+ - condition: property
+ property: host.arch
+ equals_value: X86_64
+ userMessageOnFailure: >
+ Failed to execute test instructions on macOS
+ - type: ExecuteCommand
+ command: "{{.Env.interpreter}} -m pip install -U pip setuptools==69.1.1 --user"
+ maxTimeInSeconds: 14400
+ maxTimeBetweenOutput: 1200
+ enable_if:
+ condition: property
+ property: host.os
+ equals_value: Linux
+ userMessageOnFailure: >
+ Failed to install setuptools on Linux
- type: ExecuteCommand
- command: "python3 -u coin_test_instructions.py --os={{.Env.CI_OS}} {{.Env.CI_PACKAGING_FEATURE}} --instdir=/home/qt/work/install --targetOs={{.Env.CI_OS}} --hostArch=X86_64 --targetArch={{.Env.CI_TARGET_ARCHITECTURE}}"
+ command: "{{.Env.interpreter}} -u coin_test_instructions.py --os={{.Env.CI_OS}} {{.Env.CI_PACKAGING_FEATURE}} --instdir=/home/qt/work/install --targetOs={{.Env.CI_OS}} --hostArch=X86_64 --targetArch={{.Env.CI_TARGET_ARCHITECTURE}}"
maxTimeInSeconds: 14400
maxTimeBetweenOutput: 600
enable_if:
@@ -25,7 +65,17 @@ instructions:
userMessageOnFailure: >
Failed to execute test instructions on Linux
- type: ExecuteCommand
- command: "c:\\users\\qt\\MSVC.bat {{.Env.PYTHON3_PATH}}\\python.exe -u coin_test_instructions.py --os={{.Env.CI_OS}} {{.Env.CI_PACKAGING_FEATURE}} --instdir=\\Users\\qt\\work\\install --targetOs={{.Env.CI_OS}} --hostArch=X86_64 --targetArch={{.Env.CI_TARGET_ARCHITECTURE}}"
+ command: "c:\\users\\qt\\MSVC.bat {{.Env.PYTHON3_PATH}}\\python.exe -m pip install -U pip setuptools==69.1.1 --user"
+ maxTimeInSeconds: 14400
+ maxTimeBetweenOutput: 1200
+ enable_if:
+ condition: property
+ property: host.os
+ equals_value: Windows
+ userMessageOnFailure: >
+ Failed to install setuptools on Windows
+ - type: ExecuteCommand
+ command: "c:\\users\\qt\\MSVC.bat {{.Env.PYTHON3_PATH}}\\python.exe -u coin_test_instructions.py --os={{.Env.CI_OS}} {{.Env.CI_PACKAGING_FEATURE}} --instdir=c:\\Users\\qt\\work\\install --targetOs={{.Env.CI_OS}} --hostArch=X86_64 --targetArch={{.Env.CI_TARGET_ARCHITECTURE}}"
maxTimeInSeconds: 14400
maxTimeBetweenOutput: 600
enable_if:
diff --git a/coin/instructions/find_path_to_msvc_compiler.yaml b/coin/instructions/find_path_to_msvc_compiler.yaml
index 8f9bed82f..015a86eab 100644
--- a/coin/instructions/find_path_to_msvc_compiler.yaml
+++ b/coin/instructions/find_path_to_msvc_compiler.yaml
@@ -18,6 +18,13 @@ instructions:
condition: property
property: host.compiler
equals_value: MSVC2019
+ - type: EnvironmentVariable
+ variableName: VC_SCRIPT
+ variableValue: "\\Program Files\\Microsoft Visual Studio\\2022\\Professional\\VC\\Auxiliary\\Build\\vcvarsall.bat"
+ enable_if:
+ condition: property
+ property: host.compiler
+ equals_value: MSVC2022
- type: WriteFile
fileContents: "call \"{{.Env.VC_SCRIPT}}\" {{.Env.TARGET_ARCHITECTURE}} \r\ncmd /c %*"
filename: "c:\\users\\qt\\MSVC.bat"
diff --git a/coin/module_config.yaml b/coin/module_config.yaml
index 64364f37d..f97971ca9 100644
--- a/coin/module_config.yaml
+++ b/coin/module_config.yaml
@@ -16,23 +16,56 @@ accept_configuration:
- condition: property
property: features
not_contains_value: UseLegacyInstructions
- - condition: property # MibnGW and msvc2015 are not supported
+ - condition: property # MinGW and msvc2015 are not supported
property: target.compiler
- not_in_values: [Mingw, MSVC2015]
- - condition: property #Webassembly
+ not_in_values: [Mingw, MSVC2015,Clang]
+ - condition: property # Webassembly
property: target.osVersion
not_equals_value: WebAssembly
- condition: property # Windows on Arm
property: target.arch
not_equals_value: ARM64
+ - condition: property
+ property: features
+ not_contains_value: DebianPackaging
+ - condition: property
+ property: target.osVersion
+ not_equals_value: VxWorks
- condition: and
conditions:
- - condition: property # No cross compilation
+ - condition: property
+ property: host.os
+ equals_value: MacOS
+ - condition: property
+ property: features
+ contains_value: TestOnly
+ - condition: property
+ property: features
+ contains_value: Packaging
+ - condition: property
+ property: target.os
+ not_contains_value: Android
+ - condition: property
+ property: target.os
+ not_contains_value: IOS
+ - condition: and
+ conditions:
+ - condition: property
property: host.osVersion
- equals_value: MacOS_10_15
+ equals_value: MacOS_11_00
+ - condition: property
+ property: host.arch
+ equals_value: ARM64
- condition: property
property: features
contains_value: TestOnly
+ - condition: property
+ property: features
+ contains_value: Packaging
+
+machine_type:
+ Build:
+ cores: 8
upload_pyside: &upload_pyside
type: Group
diff --git a/coin_build_instructions.py b/coin_build_instructions.py
index 2ab02b973..83d46977e 100644
--- a/coin_build_instructions.py
+++ b/coin_build_instructions.py
@@ -1,55 +1,22 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-from build_scripts.options import has_option
-from build_scripts.options import option_value
-from build_scripts.utils import install_pip_dependencies, expand_clang_variables
-from build_scripts.utils import get_qtci_virtualEnv
-from build_scripts.utils import run_instruction
-from build_scripts.utils import rmtree
-from build_scripts.utils import get_python_dict
-from build_scripts.utils import get_ci_qmake_path
-import os
-import datetime
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import calendar
+import datetime
+import logging
+import os
+import os.path
import site
import sys
+from build_scripts.log import log
+from build_scripts.options import has_option, option_value
+from build_scripts.utils import (expand_clang_variables, get_ci_qtpaths_path,
+ get_qtci_virtualEnv,
+ parse_cmake_conf_assignments_by_key,
+ remove_tree, run_instruction)
+
+log.setLevel(logging.INFO)
+
# Values must match COIN thrift
CI_HOST_OS = option_value("os")
CI_TARGET_OS = option_value("targetOs")
@@ -59,21 +26,23 @@ CI_HOST_OS_VER = option_value("osVer")
CI_ENV_INSTALL_DIR = option_value("instdir")
CI_ENV_AGENT_DIR = option_value("agentdir")
CI_COMPILER = option_value("compiler")
-CI_INTEGRATION_ID = option_value("coinIntegrationId") or str(calendar.timegm(datetime.datetime.now().timetuple()))
+CI_USE_SCCACHE = option_value("compiler-launcher")
+CI_INTEGRATION_ID = option_value("coinIntegrationId") or str(
+ calendar.timegm(datetime.datetime.now().timetuple())
+)
CI_FEATURES = []
_ci_features = option_value("features")
if _ci_features is not None:
- for f in _ci_features.split(', '):
+ for f in _ci_features.split(", "):
CI_FEATURES.append(f)
CI_RELEASE_CONF = has_option("packaging")
CI_TEST_PHASE = option_value("phase")
-if CI_TEST_PHASE not in ["ALL", "BUILD", "WHEEL"]:
+if CI_TEST_PHASE not in ["ALL", "BUILD"]:
CI_TEST_PHASE = "ALL"
-
def get_current_script_path():
- """ Returns the absolute path containing this script. """
+ """Returns the absolute path containing this script."""
try:
this_file = __file__
except NameError:
@@ -81,11 +50,12 @@ def get_current_script_path():
this_file = os.path.abspath(this_file)
return os.path.dirname(this_file)
+
def is_snapshot_build():
"""
Returns True if project needs to be built with --snapshot-build
- This is true if the version found in pyside_version.py is not a
+ This is true if the version found in .cmake.conf is not a
pre-release version (no alphas, betas).
This eliminates the need to remove the --snapshot-build option
@@ -93,30 +63,35 @@ def is_snapshot_build():
for a release).
"""
setup_script_dir = get_current_script_path()
- pyside_version_py = os.path.join(
- setup_script_dir, "sources", "pyside6", "pyside_version.py")
- d = get_python_dict(pyside_version_py)
+ pyside_project_dir = os.path.join(setup_script_dir, "sources", "pyside6")
- release_version_type = d['release_version_type']
- pre_release_version = d['pre_release_version']
+ d = parse_cmake_conf_assignments_by_key(pyside_project_dir)
+ release_version_type = d.get("pyside_PRE_RELEASE_VERSION_TYPE")
+ pre_release_version = d.get("pyside_PRE_RELEASE_VERSION")
if pre_release_version and release_version_type:
return True
return False
+
def call_setup(python_ver, phase):
print("call_setup")
print("python_ver", python_ver)
print("phase", phase)
- _pExe, _env, env_pip, env_python = get_qtci_virtualEnv(python_ver, CI_HOST_OS, CI_HOST_ARCH, CI_TARGET_ARCH)
+ _pExe, _env, env_pip, env_python = get_qtci_virtualEnv(
+ python_ver, CI_HOST_OS, CI_HOST_ARCH, CI_TARGET_ARCH
+ )
if phase in ["BUILD"]:
- rmtree(_env, True)
+ remove_tree(_env, True)
# Pinning the virtualenv before creating one
# Use pip3 if possible while pip seems to install the virtualenv to wrong dir in some OS
python3 = "python3"
if sys.platform == "win32":
python3 = os.path.join(os.getenv("PYTHON3_PATH"), "python.exe")
- run_instruction([python3, "-m", "pip", "install", "--user", "virtualenv==20.0.25"], "Failed to pin virtualenv")
+ run_instruction(
+ [python3, "-m", "pip", "install", "--user", "virtualenv==20.7.2"],
+ "Failed to pin virtualenv",
+ )
# installing to user base might not be in PATH by default.
env_path = os.path.join(site.USER_BASE, "bin")
v_env = os.path.join(env_path, "virtualenv")
@@ -124,34 +99,38 @@ def call_setup(python_ver, phase):
env_path = os.path.join(site.USER_BASE, "Scripts")
v_env = os.path.join(env_path, "virtualenv.exe")
try:
- run_instruction([v_env, "--version"], "Using default virtualenv")
+ run_instruction([str(v_env), "--version"], "Using default virtualenv")
except Exception as e:
+ log.info("Failed to use the default virtualenv")
+ log.info(f"{type(e).__name__}: {e}")
v_env = "virtualenv"
- run_instruction([v_env, "-p", _pExe, _env], "Failed to create virtualenv")
+ run_instruction([str(v_env), "-p", str(_pExe), str(_env)], "Failed to create virtualenv")
# When the 'python_ver' variable is empty, we are using Python 2
- # Pip is always upgraded when CI template is provisioned, upgrading it in later phase may cause perm issue
- run_instruction([env_pip, "install", "-r", "requirements.txt"], "Failed to install dependencies")
- if sys.platform == "win32":
- run_instruction([env_pip, "install", "numpy==1.19.3"], "Failed to install numpy 1.19.3")
- else:
- run_instruction([env_pip, "install", "numpy"], "Failed to install numpy")
+ # Pip is always upgraded when CI template is provisioned,
+ # upgrading it in later phase may cause perm issue
+ run_instruction(
+ [str(env_pip), "install", "-r", "requirements.txt"], "Failed to install dependencies"
+ )
cmd = [env_python, "-u", "setup.py"]
if phase in ["BUILD"]:
- cmd += ["build", "--standalone", "--skip-packaging"]
- elif phase in ["WHEEL"] or CI_RELEASE_CONF:
- cmd += ["bdist_wheel", "--reuse-build", "--standalone", "--skip-cmake", "--skip-make-install", "--only-package"]
-
- cmd += ["--build-tests",
- "--parallel=4",
- "--verbose-build"]
- if python_ver == "3":
- cmd += ["--limited-api=yes"]
+ cmd += ["build", "--standalone", "--unity"]
+
+ cmd += ["--build-tests", "--log-level=verbose"]
+
+ if CI_TARGET_ARCH == "X86_64-ARM64":
+ cmd += ["--macos-arch='x86_64;arm64'"]
+
+ if CI_USE_SCCACHE:
+ cmd += [f"--compiler-launcher={CI_USE_SCCACHE}"]
+
+ cmd += ["--limited-api=yes"]
+
if is_snapshot_build():
cmd += ["--snapshot-build"]
- qmake_path = get_ci_qmake_path(CI_ENV_INSTALL_DIR, CI_HOST_OS)
- cmd.append(qmake_path)
+ qtpaths_path = get_ci_qtpaths_path(CI_ENV_INSTALL_DIR, CI_HOST_OS)
+ cmd.append(qtpaths_path)
# Due to certain older CMake versions generating very long paths
# (at least with CMake 3.6.2) when using the export() function,
@@ -165,17 +144,24 @@ def call_setup(python_ver, phase):
env = os.environ
run_instruction(cmd, "Failed to run setup.py for build", initial_env=env)
-if __name__ == "__main__":
+if __name__ == "__main__":
# Remove some environment variables that impact cmake
- arch = '32' if CI_TARGET_ARCH == 'X86' else '64'
+ arch = "32" if CI_TARGET_ARCH == "X86" else "64"
expand_clang_variables(arch)
- for env_var in ['CC', 'CXX']:
+ for env_var in ["CC", "CXX"]:
if os.environ.get(env_var):
del os.environ[env_var]
-
+ python_ver = "3"
+ if CI_TARGET_OS in ["Linux"] and CI_HOST_ARCH != "aarch64":
+ python_ver = "3.11"
+ wheel_package_dir = "qfpa-p3.6"
+ if CI_TARGET_OS in ["Windows"]:
+ python_ver = "3.10.0"
if CI_TEST_PHASE in ["ALL", "BUILD"]:
- call_setup("3","BUILD")
-
- if CI_TEST_PHASE in ["ALL", "WHEEL"]:
- call_setup("3","WHEEL")
+ call_setup(python_ver, "BUILD")
+ # Until CI has a feature to set more dynamic signing dir, make sure it actually exist
+ if os.environ.get("QTEST_ENVIRONMENT") == "ci" and sys.platform == "win32":
+ signing_dir = str(os.environ.get("PYSIDE_SIGNING_DIR"))
+ print("Check for signing dir " + signing_dir)
+ assert os.path.isdir(signing_dir)
diff --git a/coin_test_instructions.py b/coin_test_instructions.py
index 95d79cd7d..b0e71fba7 100644
--- a/coin_test_instructions.py
+++ b/coin_test_instructions.py
@@ -1,52 +1,17 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-from build_scripts.options import has_option
-from build_scripts.options import option_value
-from build_scripts.utils import install_pip_dependencies, expand_clang_variables
-from build_scripts.utils import get_qtci_virtualEnv
-from build_scripts.utils import run_instruction
-from build_scripts.utils import rmtree
-from build_scripts.utils import get_ci_qmake_path
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import os
+import logging
import site
import sys
+from build_scripts.log import log
+from build_scripts.options import has_option, option_value
+from build_scripts.utils import (expand_clang_variables, get_ci_qmake_path,
+ get_qtci_virtualEnv, remove_tree, run_instruction)
+
+log.setLevel(logging.INFO)
+
# Values must match COIN thrift
CI_HOST_OS = option_value("os")
CI_TARGET_OS = option_value("targetOs")
@@ -63,33 +28,49 @@ if _ci_features is not None:
CI_FEATURES.append(f)
CI_RELEASE_CONF = has_option("packaging")
+
def call_testrunner(python_ver, buildnro):
- _pExe, _env, env_pip, env_python = get_qtci_virtualEnv(python_ver, CI_HOST_OS, CI_HOST_ARCH, CI_TARGET_ARCH)
- rmtree(_env, True)
+ _pExe, _env, env_pip, env_python = get_qtci_virtualEnv(python_ver, CI_HOST_OS, CI_HOST_ARCH,
+ CI_TARGET_ARCH)
+ remove_tree(_env, True)
# Pinning the virtualenv before creating one
# Use pip3 if possible while pip seems to install the virtualenv to wrong dir in some OS
python3 = "python3"
if sys.platform == "win32":
python3 = os.path.join(os.getenv("PYTHON3_PATH"), "python.exe")
- run_instruction([python3, "-m", "pip", "install", "--user", "virtualenv==20.0.25"], "Failed to pin virtualenv") # installing to user base might not be in PATH by default.
- # installing to user base might not be in PATH by default.
- env_path = os.path.join(site.USER_BASE, "bin")
- v_env = os.path.join(env_path, "virtualenv")
- if sys.platform == "win32":
- env_path = os.path.join(site.USER_BASE, "Scripts")
- v_env = os.path.join(env_path, "virtualenv.exe")
- try:
- run_instruction([v_env, "--version"], "Using default virtualenv")
- except Exception as e:
+
+ # we shouldn't install anything outside of virtualenv, while m1 is not virtualized yet
+ if CI_HOST_OS == "MacOS" and CI_HOST_ARCH == "ARM64":
v_env = "virtualenv"
+ run_instruction([str(v_env), "-p", str(_pExe), str(_env)], "Failed to create virtualenv")
+ run_instruction([env_pip, "install", "-r", "requirements.txt"],
+ "Failed to install dependencies")
+ else:
+ run_instruction([python3, "-m", "pip", "install", "--user", "virtualenv==20.7.2"],
+ "Failed to pin virtualenv")
+ # installing to user base might not be in PATH by default.
+ env_path = os.path.join(site.USER_BASE, "bin")
+ v_env = os.path.join(env_path, "virtualenv")
+ if sys.platform == "win32":
+ env_path = os.path.join(site.USER_BASE, "Scripts")
+ v_env = os.path.join(env_path, "virtualenv.exe")
+ try:
+ run_instruction([str(v_env), "--version"], "Using default virtualenv")
+ except Exception as e:
+ log.info("Failed to use the default virtualenv")
+ log.info(f"{type(e).__name__}: {e}")
+ v_env = "virtualenv"
+ run_instruction([str(v_env), "-p", str(_pExe), str(_env)], "Failed to create virtualenv")
+ # When the 'python_ver' variable is empty, we are using Python 2
+ # Pip is always upgraded when CI template is provisioned,
+ # upgrading it in later phase may cause perm issue
+ run_instruction([env_pip, "install", "-r", "requirements.txt"],
+ "Failed to install dependencies")
+ # Install distro to replace missing platform.linux_distribution() in python3.8
+ run_instruction([env_pip, "install", "distro"], "Failed to install distro")
- run_instruction([v_env, "-p", _pExe, _env], "Failed to create virtualenv")
- # When the 'python_ver' variable is empty, we are using Python 2
- # Pip is always upgraded when CI template is provisioned, upgrading it in later phase may cause perm issue
- run_instruction([env_pip, "install", "-r", "requirements.txt"], "Failed to install dependencies")
- cmd = [env_python, "testrunner.py", "test",
- "--blacklist", "build_history/blacklist.txt",
- "--buildno=" + buildnro]
+ cmd = [env_python, "testrunner.py", "test", "--blacklist", "build_history/blacklist.txt",
+ f"--buildno={buildnro}"]
run_instruction(cmd, "Failed to run testrunner.py")
qmake_path = get_ci_qmake_path(CI_ENV_INSTALL_DIR, CI_HOST_OS)
@@ -97,8 +78,10 @@ def call_testrunner(python_ver, buildnro):
# Try to install built wheels, and build some buildable examples.
if CI_RELEASE_CONF:
wheel_tester_path = os.path.join("testing", "wheel_tester.py")
- cmd = [env_python, wheel_tester_path, qmake_path]
- run_instruction(cmd, "Error while running wheel_tester.py")
+ # Run the test for the new set of wheels
+ cmd = [env_python, wheel_tester_path, qmake_path, "--wheels-dir=dist", "--new"]
+ run_instruction(cmd, "Error while running wheel_tester.py on new wheels")
+
def run_test_instructions():
# Remove some environment variables that impact cmake
@@ -113,10 +96,12 @@ def run_test_instructions():
# In win machines, there are additional python versions to test with
if CI_HOST_OS == "Windows":
- call_testrunner("3.6.1", str(testRun))
- call_testrunner("3.8.1", str(testRun))
+ call_testrunner("3.10.0", str(testRun))
+ elif CI_HOST_OS == "Linux":
+ call_testrunner("3.11", str(testRun))
else:
call_testrunner("3", str(testRun))
+
if __name__ == "__main__":
run_test_instructions()
diff --git a/create_wheels.py b/create_wheels.py
new file mode 100644
index 000000000..063b59c45
--- /dev/null
+++ b/create_wheels.py
@@ -0,0 +1,515 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+import os
+import platform
+import sys
+import importlib
+import json
+from argparse import ArgumentParser, Namespace
+from dataclasses import dataclass
+from pathlib import Path
+from shutil import copy, rmtree, copytree
+from typing import List, Optional, Tuple
+
+import build # type: ignore
+import pyproject_hooks
+import build_scripts.wheel_files
+from build_scripts.wheel_files import (ModuleData, # type: ignore
+ set_pyside_package_path,
+ wheel_files_pyside_addons,
+ wheel_files_pyside_essentials)
+from build_scripts.utils import available_pyside_tools
+
+
+PACKAGE_FOR_WHEELS = "package_for_wheels"
+PYSIDE_DESCRIPTION = "Python bindings for the Qt cross-platform application and UI framework"
+
+
+@dataclass
+class SetupData:
+ name: str
+ version: str
+ description: str
+ readme: str
+ console_scripts: List[str]
+
+
+def get_version_from_package(name: str, package_path: Path) -> str:
+ # Get version from the already configured '__init__.py' file
+ version = ""
+ with open(package_path / name / "__init__.py") as f:
+ for line in f:
+ if line.strip().startswith("__version__"):
+ version = line.split("=")[1].strip().replace('"', "")
+ break
+ return version, f"{name}.__init__.__version__"
+
+
+def create_module_plugin_json(wheel_name: str, data: List[ModuleData], package_path: Path):
+ all_plugins = {}
+
+ for module in data:
+ all_plugins[module.name] = getattr(module, "plugins")
+
+ # write the dictionary modules->plugins dictionary to a .json file and include this .json file
+ # This file is picked up by the deployment tool to figure out the plugin dependencies
+ # of a PySide6 application
+ if all_plugins:
+ with open(f"{package_path}/PySide6/{wheel_name}.json", 'w') as fp:
+ json.dump(all_plugins, fp, indent=4)
+
+
+def get_manifest(wheel_name: str, data: List[ModuleData], package_path: Path) -> str:
+ lines = []
+
+ for module in data:
+ # It's crucial to have this adjust method here
+ # because it include all the necessary modifications to make
+ # our soltuion work on the three main platforms.
+ module.adjusts_paths_and_extensions()
+
+ for field in module.get_fields():
+ if field == "name":
+ lines.append(f"# {getattr(module, field)}")
+ continue
+ if field == "ext":
+ continue
+ for line in getattr(module, field):
+ if field in ("extra_dirs", "qml", "plugins"):
+ lines.append(f"graft PySide6/{line}")
+ elif field == "qtlib" and sys.platform == "darwin":
+ lines.append(f"graft PySide6/{line}")
+ else:
+ lines.append(f"include PySide6/{line}")
+ lines.append("recursive-exclude PySide6 *qt.conf*")
+ lines.append("")
+
+ # Skip certain files if needed
+ lines.append("recursive-exclude PySide6/Qt/qml *.debug")
+ lines.append("prune PySide6/Qt/qml/QtQuick3D/MaterialEditor")
+
+ # adding PySide6_Essentials.json and PySide6_Addons.json
+ lines.append(f"include PySide6/{wheel_name}.json")
+
+ return "\n".join(lines)
+
+
+def get_simple_manifest(name: str) -> str:
+ if name == "PySide6":
+ return f"prune {name}\n"
+ elif name == "PySide6_Examples":
+ return "prune PySide6\ngraft PySide6/examples\n"
+ return f"graft {name}\n"
+
+
+def get_platform_tag() -> str:
+ _os = sys.platform
+ arch = platform.machine()
+
+ # as Qt6 we know it's GLIBC 2.28 on RHEL 8.4
+ _tag = ""
+ if _os == "linux":
+ glibc = platform.libc_ver()[1].replace(".", "_")
+ # Will generate manylinux_2_28_x86_64
+ _tag = f"manylinux_{glibc}_{arch}"
+ elif _os == "darwin":
+ # find _config.py and load it to obtain __qt_macos_min_deployment_target__
+ target = None
+ config_py = package_path / "shiboken6" / "_config.py"
+ if not config_py.exists():
+ raise RuntimeError(f"Unable to find {str(config_py)}")
+
+ module_name = config_py.name[:-3]
+ _spec = importlib.util.spec_from_file_location(f"{module_name}", config_py)
+ _module = importlib.util.module_from_spec(_spec)
+ _spec.loader.exec_module(module=_module)
+ target = _module.__qt_macos_min_deployment_target__
+
+ if not target:
+ print("Error: couldn't get the value from MACOSX_DEPLOYMENT_TARGET. "
+ "Falling back to local platform version.")
+ mac_ver, _, _ = platform.mac_ver()
+ # We get 10.14.2 for example, and transform into 10_14
+ target = "_".join(mac_ver.split(".")[:2])
+ else:
+ version = target.split(".")
+ if len(version) > 1:
+ target = "_".join(version)
+ else:
+ target = f"{version[0]}_0"
+ # TODO: Make it general
+ # To check if is compatible with 64bit on multi-arch systems
+ # is_64bits = sys.maxsize > 2**32
+ #
+ # We know the CI builds universal2 wheels
+ _tag = f"macosx_{target}_universal2"
+ elif _os == "win32":
+ win_arch = platform.architecture()[0]
+ msvc_arch = "x86" if win_arch.startswith("32") else "amd64"
+ _tag = f"win_{msvc_arch}"
+
+ return _tag
+
+
+def generate_pyproject_toml(artifacts: Path, setup: SetupData) -> str:
+ content = None
+
+ _name = setup.name
+ _tag = get_platform_tag()
+
+ _console_scripts = ""
+ if setup.console_scripts:
+ _formatted_console_scripts = "\n".join(setup.console_scripts)
+ _console_scripts = f"[project.scripts]\n{_formatted_console_scripts}"
+
+ # Installing dependencies
+ _dependencies = []
+ if _name in ("PySide6", "PySide6_Examples"):
+ _dependencies.append(f"shiboken6=={setup.version[0]}")
+ _dependencies.append(f"PySide6_Essentials=={setup.version[0]}")
+ _dependencies.append(f"PySide6_Addons=={setup.version[0]}")
+ elif _name == "PySide6_Essentials":
+ _dependencies.append(f"shiboken6=={setup.version[0]}")
+ elif _name == "PySide6_Addons":
+ _dependencies.append(f"shiboken6=={setup.version[0]}")
+ _dependencies.append(f"PySide6_Essentials=={setup.version[0]}")
+ elif _name == "shiboken6_generator":
+ _dependencies.append(f"shiboken6=={setup.version[0]}")
+
+ with open(artifacts / "pyproject.toml.base") as f:
+ content = (
+ f.read()
+ .replace("PROJECT_NAME", f'"{setup.name}"')
+ .replace("PROJECT_VERSION", f'"{setup.version[1]}"')
+ .replace("PROJECT_DESCRIPTION", f'"{setup.description}"')
+ .replace("PROJECT_README", f'"{setup.readme}"')
+ .replace("PROJECT_TAG", f'"{_tag}"')
+ .replace("PROJECT_SCRIPTS", _console_scripts)
+ .replace("PROJECT_DEPENDENCIES", f"{_dependencies}")
+ )
+ return content
+
+
+def generate_setup_py(artifacts: Path, setup: SetupData):
+ content = None
+ _name = setup.name
+
+ # To get the 'abi3' tag on the wheel name, we need to use
+ # a fake extension to activate the limited-api option.
+ # Because of the order of copying, we will use a name of a real
+ # module for each package, so it gets overwrited.
+ if _name == "PySide6":
+ fext = "PySide6/QtCore"
+ elif _name == "PySide6_Addons":
+ fext = "PySide6/Qt3DCore"
+ else:
+ fext = "Shiboken"
+
+ # For special wheels based on 'PySide6'
+ # we force the name to be PySide6 for the package_name,
+ # so we can take the files from that packaged-directory
+ if setup.name in ("PySide6_Essentials", "PySide6_Addons", "PySide6_Examples"):
+ _name = "PySide6"
+
+ with open(artifacts / "setup.py.base") as f:
+ content = f.read().format(
+ name=_name,
+ fake_ext=fext,
+ )
+
+ return content
+
+
+def wheel_shiboken_generator(package_path: Path) -> Tuple[SetupData, None]:
+ setup = SetupData(
+ name="shiboken6_generator",
+ version=get_version_from_package("shiboken6_generator", package_path),
+ description="Python/C++ bindings generator",
+ readme="README.shiboken6-generator.md",
+ console_scripts=[
+ 'shiboken6 = "shiboken6_generator.scripts.shiboken_tool:main"',
+ 'shiboken6-genpyi = "shiboken6_generator.scripts.shiboken_tool:genpyi"',
+ ],
+ )
+
+ return setup, None
+
+
+def wheel_shiboken_module(package_path: Path) -> Tuple[SetupData, None]:
+ setup = SetupData(
+ name="shiboken6",
+ version=get_version_from_package("shiboken6", package_path),
+ description="Python/C++ bindings helper module",
+ readme="README.shiboken6.md",
+ console_scripts=[],
+ )
+
+ return setup, None
+
+
+def wheel_pyside6_essentials(package_path: Path) -> Tuple[SetupData, List[ModuleData]]:
+ packaged_qt_tools_path = package_path / "PySide6"
+ set_pyside_package_path(packaged_qt_tools_path)
+ _pyside_tools = available_pyside_tools(packaged_qt_tools_path, package_for_wheels=True)
+
+ # replacing pyside6-android_deploy by pyside6-android-deploy for consistency
+ # Also, the tool should not exist in any other platform than Linux
+ _console_scripts = []
+ if ("android_deploy" in _pyside_tools) and sys.platform.startswith("linux"):
+ _console_scripts = ['pyside6-android-deploy = "PySide6.scripts.pyside_tool:android_deploy"']
+ _pyside_tools.remove("android_deploy")
+
+ _console_scripts.extend([f'pyside6-{tool} = "PySide6.scripts.pyside_tool:{tool}"'
+ for tool in _pyside_tools])
+
+ setup = SetupData(
+ name="PySide6_Essentials",
+ version=get_version_from_package("PySide6", package_path), # we use 'PySide6' here
+ description=f"{PYSIDE_DESCRIPTION} (Essentials)",
+ readme="README.pyside6_essentials.md",
+ console_scripts=_console_scripts
+ )
+
+ data = wheel_files_pyside_essentials()
+
+ return setup, data
+
+
+def wheel_pyside6_addons(package_path: Path) -> Tuple[SetupData, List[ModuleData]]:
+ setup = SetupData(
+ name="PySide6_Addons",
+ version=get_version_from_package("PySide6", package_path), # we use 'PySide6' here
+ description=f"{PYSIDE_DESCRIPTION} (Addons)",
+ readme="README.pyside6_addons.md",
+ console_scripts=[],
+ )
+
+ data = wheel_files_pyside_addons()
+
+ return setup, data
+
+
+def wheel_pyside6(package_path: Path) -> Tuple[SetupData, Optional[List[ModuleData]]]:
+ setup = SetupData(
+ name="PySide6",
+ version=get_version_from_package("PySide6", package_path),
+ description=PYSIDE_DESCRIPTION,
+ readme="README.pyside6.md",
+ console_scripts=[],
+ )
+
+ return setup, None
+
+
+def wheel_pyside6_examples(package_path: Path) -> Tuple[SetupData, Optional[List[ModuleData]]]:
+ setup = SetupData(
+ name="PySide6_Examples",
+ version=get_version_from_package("PySide6", package_path),
+ description="Examples for the Qt for Python project",
+ readme="README.pyside6_examples.md",
+ console_scripts=[],
+ )
+
+ return setup, None
+
+
+def copy_examples_for_wheel(package_path: Path):
+ # Copying examples
+ try:
+ copytree("examples", package_path / "PySide6" / "examples", dirs_exist_ok=True)
+ except OSError as e:
+ print("Error trying to copy the examples directory:", e, file=sys.stderr)
+ sys.exit(-1)
+
+
+def venv_name():
+ v = os.environ.get("VIRTUAL_ENV")
+ return Path(v).name if v else None
+
+
+def get_build_directory(options: Namespace):
+ build_dir = Path("build")
+ # Search for a "--env" option first", try postfix "a" for limited API or "d", debug
+ venv = options.env if options.env else venv_name()
+ if venv:
+ for postfix in ("a", "d", ""):
+ result = build_dir / f"{venv}{postfix}"
+ if result.is_dir():
+ return result
+ if options.env:
+ raise Exception(f'Invalid environment "{options.env}" passed')
+ # Try explicit build-dir
+ if options.build_dir and (Path(options.build_dir) / PACKAGE_FOR_WHEELS).is_dir():
+ return Path(options.build_dir)
+ # Fallback to existing dirs (skip "config.tests")
+ for d in build_dir.glob("*"):
+ if (d / PACKAGE_FOR_WHEELS).is_dir():
+ print(
+ "No valid environment or build directory was specified, so create_wheels is using "
+ "the first valid directory it could find on its own. If this is not the one you "
+ "want, use the --env or --build-dir options to provide it explicitly."
+ )
+ return d
+ raise Exception("Unable to determine build directory, no matching virtual environment found")
+
+
+def check_modules_consistency():
+ available_functions = dir(build_scripts.wheel_files)
+ functions = [i.replace("module_", "") for i in available_functions if i.startswith("module_")]
+
+ sources = [i.stem for i in Path("sources/pyside6/PySide6/").glob("Qt*")]
+
+ missing_modules = set(sources) - set(functions)
+
+ if len(missing_modules):
+ print("Warning: the following modules don't have a function "
+ f"in 'build_scripts/wheel_files.py':\n {missing_modules}")
+
+ # Check READMEs
+ readme_modules = set()
+ for r in Path(".").glob("README.pyside6*"):
+ with open(r) as f:
+ for line in f:
+ if line.startswith("* Qt"):
+ readme_modules.add(line.strip().replace("* ", ""))
+
+ missing_modules_readme = set(sources) - readme_modules
+
+ if len(missing_modules_readme):
+ print("Warning: the following modules are not in READMEs :"
+ f"\n {missing_modules_readme}")
+
+
+if __name__ == "__main__":
+
+ parser = ArgumentParser()
+ # Command line option to find the build/<envname>a/package_for_wheels
+ parser.add_argument(
+ "--env", type=str, default=None,
+ help="The env's name from which PySide was built such that the "
+ "build directory is 'build/<envname>' (must contain a "
+ "'package_for_wheels' folder"
+ )
+ # Alternatively, <build-dir> (must contain "package_for_wheels")
+ parser.add_argument(
+ "--build-dir", type=str, default=None,
+ help="The directory where PySide was build (must contain a "
+ "'package_for_wheels' folder"
+ )
+ options = parser.parse_args()
+
+ # Sanity check between the available modules,
+ # and the functions in build_scripts/wheel_files.py
+ check_modules_consistency()
+
+ build_directory = get_build_directory(options)
+
+ verbose = False
+ # Setup paths
+ current_path = Path(__file__).resolve().parent
+ artifacts_path = Path("wheel_artifacts/")
+ # the extra 'a' is for compatibility with the build_scripts
+ # notation that adds an 'a' when using limited-api
+ package_path = build_directory / PACKAGE_FOR_WHEELS
+ print(f'Using build dir "{build_directory.name}"')
+
+ # Check for 'package_for_wheels' directory
+ if not package_path.is_dir():
+ print(f"Couldn't find the directory: {package_path}")
+ print("Maybe your build used '--skip-packaging'?. Exiting")
+ sys.exit(-1)
+
+ setup_py_path = package_path / "setup.py"
+ pyproject_toml_path = package_path / "pyproject.toml"
+
+ base_files = [
+ current_path / "LICENSES/GFDL-1.3-no-invariants-only.txt",
+ current_path / "LICENSES/LicenseRef-Qt-Commercial.txt",
+ current_path / "LICENSES/GPL-2.0-only.txt",
+ current_path / "LICENSES/GPL-3.0-only.txt",
+ current_path / "LICENSES/Qt-GPL-exception-1.0.txt",
+ current_path / "LICENSES/LGPL-3.0-only.txt",
+ ]
+
+ # Main generation
+ wheels = {
+ "shiboken6": wheel_shiboken_module,
+ "shiboken6_generator": wheel_shiboken_generator,
+ "PySide6_Essentials": wheel_pyside6_essentials,
+ "PySide6_Addons": wheel_pyside6_addons,
+ "PySide6": wheel_pyside6,
+ "PySide6_Examples": wheel_pyside6_examples,
+ }
+
+ for name, wheel_info in wheels.items():
+
+ print(f"Starting process for: {name}")
+ setup, data = wheel_info(package_path)
+
+ # 1. Generate 'setup.py'
+ print("-- Generating setup.py")
+ setup_py_content = generate_setup_py(artifacts_path, setup)
+ with open(setup_py_path, "w") as f:
+ f.write(setup_py_content)
+
+ # 2. Generate 'pyproject.toml'
+ print("-- Generating pyproject.toml")
+ pyproject_toml_content = generate_pyproject_toml(artifacts_path, setup)
+ with open(pyproject_toml_path, "w") as f:
+ f.write(pyproject_toml_content)
+
+ # 3. Create PySide_Essentials.json and PySide_Addons.json
+ # creates a json file mapping each Qt module to the possible plugin dependencies
+ if data is not None:
+ print(f"-- Creating {name}.json")
+ create_module_plugin_json(name, data, package_path)
+
+ # 4. Create the 'MANIFEST.in'
+ # Special case for shiboken and shiboken_generator
+ # so we copy the whole directory, only PySide and derivatives
+ # will need to have specific information
+ print("-- Creating MANIFEST.in")
+ if data is None:
+ manifest_content = get_simple_manifest(name)
+ else:
+ manifest_content = get_manifest(name, data, package_path)
+ with open(package_path / "MANIFEST.in", "w") as f:
+ f.write(manifest_content)
+
+ # 5. copy configuration files to create the wheel
+ print("-- Copy configuration files to create the wheel")
+ if name == "PySide6_Examples":
+ copy_examples_for_wheel(package_path)
+ _files: List[Path] = base_files + [Path(setup.readme)]
+ for fname in _files:
+ copy(fname, package_path)
+
+ # 6. call the build module to create the wheel
+ print("-- Creating wheels")
+ if not verbose:
+ _runner = pyproject_hooks.quiet_subprocess_runner
+ else:
+ _runner = pyproject_hooks.default_subprocess_runner
+ builder = build.ProjectBuilder(package_path, runner=_runner)
+ builder.build("wheel", "dist")
+
+ # 7. Copy wheels back
+ print("-- Copying wheels to dist/")
+ dist_path = Path("dist")
+ if not dist_path.is_dir():
+ dist_path.mkdir()
+ for wheel in Path(package_path / "dist").glob("*.whl"):
+ copy(wheel, dist_path / wheel.name)
+
+ # 8. Remove leftover files
+ print("-- Removing leftover files")
+ all_files = set(package_path.glob("*"))
+ files_to_remove = all_files - {
+ package_path / i for i in ("PySide6", "shiboken6", "shiboken6_generator")
+ }
+ for _f in files_to_remove:
+ if _f.is_dir():
+ rmtree(_f)
+ elif _f.is_file():
+ _f.unlink()
diff --git a/dist/changes-1.2.3 b/doc/changelogs/changes-1.2.3
index 7deaa8bdd..7deaa8bdd 100644
--- a/dist/changes-1.2.3
+++ b/doc/changelogs/changes-1.2.3
diff --git a/dist/changes-5.12.1 b/doc/changelogs/changes-5.12.1
index e0eeeff75..e0eeeff75 100644
--- a/dist/changes-5.12.1
+++ b/doc/changelogs/changes-5.12.1
diff --git a/dist/changes-5.12.2 b/doc/changelogs/changes-5.12.2
index b45d38ca2..b45d38ca2 100644
--- a/dist/changes-5.12.2
+++ b/doc/changelogs/changes-5.12.2
diff --git a/dist/changes-5.12.3 b/doc/changelogs/changes-5.12.3
index fda65b457..fda65b457 100644
--- a/dist/changes-5.12.3
+++ b/doc/changelogs/changes-5.12.3
diff --git a/dist/changes-5.12.4 b/doc/changelogs/changes-5.12.4
index d6d1679bc..d6d1679bc 100644
--- a/dist/changes-5.12.4
+++ b/doc/changelogs/changes-5.12.4
diff --git a/dist/changes-5.12.5 b/doc/changelogs/changes-5.12.5
index d463b8324..d463b8324 100644
--- a/dist/changes-5.12.5
+++ b/doc/changelogs/changes-5.12.5
diff --git a/dist/changes-5.12.6 b/doc/changelogs/changes-5.12.6
index d1eba40c2..d1eba40c2 100644
--- a/dist/changes-5.12.6
+++ b/doc/changelogs/changes-5.12.6
diff --git a/dist/changes-5.13.0 b/doc/changelogs/changes-5.13.0
index 4b7a2b7c3..4b7a2b7c3 100644
--- a/dist/changes-5.13.0
+++ b/doc/changelogs/changes-5.13.0
diff --git a/dist/changes-5.13.1 b/doc/changelogs/changes-5.13.1
index 9b9939092..9b9939092 100644
--- a/dist/changes-5.13.1
+++ b/doc/changelogs/changes-5.13.1
diff --git a/dist/changes-5.13.2 b/doc/changelogs/changes-5.13.2
index 52edd7a46..52edd7a46 100644
--- a/dist/changes-5.13.2
+++ b/doc/changelogs/changes-5.13.2
diff --git a/dist/changes-5.14.0 b/doc/changelogs/changes-5.14.0
index 46b4a6ba0..46b4a6ba0 100644
--- a/dist/changes-5.14.0
+++ b/doc/changelogs/changes-5.14.0
diff --git a/dist/changes-5.14.1 b/doc/changelogs/changes-5.14.1
index b7441f3c2..b7441f3c2 100644
--- a/dist/changes-5.14.1
+++ b/doc/changelogs/changes-5.14.1
diff --git a/dist/changes-5.14.2 b/doc/changelogs/changes-5.14.2
index 3473d41e3..3473d41e3 100644
--- a/dist/changes-5.14.2
+++ b/doc/changelogs/changes-5.14.2
diff --git a/dist/changes-5.14.2.2 b/doc/changelogs/changes-5.14.2.2
index 63a7a9120..63a7a9120 100644
--- a/dist/changes-5.14.2.2
+++ b/doc/changelogs/changes-5.14.2.2
diff --git a/dist/changes-5.14.2.3 b/doc/changelogs/changes-5.14.2.3
index 6f17bc4bd..6f17bc4bd 100644
--- a/dist/changes-5.14.2.3
+++ b/doc/changelogs/changes-5.14.2.3
diff --git a/dist/changes-5.15.0 b/doc/changelogs/changes-5.15.0
index 77c8e7d27..77c8e7d27 100644
--- a/dist/changes-5.15.0
+++ b/doc/changelogs/changes-5.15.0
diff --git a/dist/changes-5.15.1 b/doc/changelogs/changes-5.15.1
index 8627d3e92..8627d3e92 100644
--- a/dist/changes-5.15.1
+++ b/doc/changelogs/changes-5.15.1
diff --git a/dist/changes-5.15.2 b/doc/changelogs/changes-5.15.2
index 0baf77400..0baf77400 100644
--- a/dist/changes-5.15.2
+++ b/doc/changelogs/changes-5.15.2
diff --git a/dist/changes-5.15.3 b/doc/changelogs/changes-5.15.3
index fe7959899..fe7959899 100644
--- a/dist/changes-5.15.3
+++ b/doc/changelogs/changes-5.15.3
diff --git a/dist/changes-6.0.0 b/doc/changelogs/changes-6.0.0
index f3d3fffa3..f3d3fffa3 100644
--- a/dist/changes-6.0.0
+++ b/doc/changelogs/changes-6.0.0
diff --git a/dist/changes-6.0.1 b/doc/changelogs/changes-6.0.1
index 47e37ba14..47e37ba14 100644
--- a/dist/changes-6.0.1
+++ b/doc/changelogs/changes-6.0.1
diff --git a/dist/changes-6.0.2 b/doc/changelogs/changes-6.0.2
index 1b4feb54c..1b4feb54c 100644
--- a/dist/changes-6.0.2
+++ b/doc/changelogs/changes-6.0.2
diff --git a/dist/changes-6.0.3 b/doc/changelogs/changes-6.0.3
index 3098e4dae..3098e4dae 100644
--- a/dist/changes-6.0.3
+++ b/doc/changelogs/changes-6.0.3
diff --git a/dist/changes-6.0.4 b/doc/changelogs/changes-6.0.4
index 7666a0049..7666a0049 100644
--- a/dist/changes-6.0.4
+++ b/doc/changelogs/changes-6.0.4
diff --git a/dist/changes-6.1.0 b/doc/changelogs/changes-6.1.0
index bf74218c6..bf74218c6 100644
--- a/dist/changes-6.1.0
+++ b/doc/changelogs/changes-6.1.0
diff --git a/dist/changes-6.1.1 b/doc/changelogs/changes-6.1.1
index f673e8bbd..f673e8bbd 100644
--- a/dist/changes-6.1.1
+++ b/doc/changelogs/changes-6.1.1
diff --git a/dist/changes-6.1.2 b/doc/changelogs/changes-6.1.2
index 997a5d30d..997a5d30d 100644
--- a/dist/changes-6.1.2
+++ b/doc/changelogs/changes-6.1.2
diff --git a/dist/changes-6.1.3 b/doc/changelogs/changes-6.1.3
index 858a2030e..858a2030e 100644
--- a/dist/changes-6.1.3
+++ b/doc/changelogs/changes-6.1.3
diff --git a/doc/changelogs/changes-6.2.0 b/doc/changelogs/changes-6.2.0
new file mode 100644
index 000000000..a31c1177f
--- /dev/null
+++ b/doc/changelogs/changes-6.2.0
@@ -0,0 +1,222 @@
+Qt for Python 6.2.0 is a minor release.
+
+For more details, refer to the online documentation included in this
+distribution. The documentation is also available online:
+
+https://doc.qt.io/qtforpython/
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Qt Bug Tracker:
+
+https://bugreports.qt.io/
+
+Each of these identifiers can be entered in the bug tracker to obtain more
+information about a particular change.
+
+****************************************************************************
+* PySide6 *
+****************************************************************************
+
+ - Crashes in QClipboard.mimeData(), QTextCursor.currentList() and
+ QTextCursor.currentTable() have been fixed.
+ - The Python Unicode API was updated to the newest version when not in limited
+ API mode, too.
+ - The function QUrl.fromFilePath supports now the os.PathLike structure in
+ addition to string arguments.
+ - QMultiMap and QMultiHash are now converted to a dict of key/list of values
+ (corresponding to defaultdict).
+ - QThreadPool().start(std::function) and tryStart(std::function) have been
+ added.
+
+ - [PYSIDE-131] The `tr` function now works also for PySide derived Python
+ class instances with the right context.
+ - [PYSIDE-487] Implement qmlRegisterSingletonInstance
+ - [PYSIDE-535] Tests which use reference counting need to be skipped in
+ upcoming PyPy builds.
+ - [PYSIDE-535] During replacement of type extender macros by functions,
+ a hidden enum/flags alias error was detected and fixed.
+ - [PYSIDE-1252] pyside6-lupdate and the related tools from Qt Linguist have
+ been re-added, enabling using the Qt translation system.
+ - [PYSIDE-1252] The tr() translation method of QObject has been changed to be
+ a class method. This makes it possible to use tr() on a class without
+ instantiation.
+ - [PYSIDE-1334] QObject.connect() now returns an instance of
+ QMetaObject.Connection which can be used to disconnect instead of a bool.
+ - [PYSIDE-1362] A crash in QCustom3DVolume::setTextureData() has been fixed.
+ - [PYSIDE-1378] Assistant is now shipped along with PySide.
+ - [PYSIDE-1436] Support Python 3.10
+ - [PYSIDE-1436] Feature switching needs to reset the internal type cache. This
+ was an omittion that becomes relevant in Python 3.10 .
+ - [PYSIDE-1482] A number of missing classes from the qtbase, qt3d,
+ qtdeclarative. repository have been added.
+ - [PYSIDE-1482] A number of free functions from QtQml have been added.
+ - [PYSIDE-1482] QSharedMemory was added.
+ - [PYSIDE-1499] pathlib.Path gets additionally accepted for all function
+ arguments which have a std::filesystem::path type.
+ - [PYSIDE-1570] The QtDBus module has been added.
+ - [PYSIDE-1570] The QtNetworkAuth module has been added.
+
+ - [PYSIDE-841] examples: clean and update code, add more screenshots, remove
+ version numbers from qml imports and new examples: dynamic spline, string
+ and object list models, markdowneditor, data surface, abstract list model
+ qml, opengl under qml, richtext/textedit, linguist, qsharedmemory.
+ - [PYSIDE-841] tutorials: update datavisualization and expenses
+ - [PYSIDE-862] Allow spaces in ClassInfo keys
+ - [PYSIDE-905] PySide6: Add Qt::FindChildOptions to QObject::findChild(ren)
+ - [PYSIDE-907] PySide6: Add QKey support for the setShortcut method
+ - [PYSIDE-1019] __feature__: Support generation of modified .pyi files and fix
+ default instances.
+ - [PYSIDE-1019] pyi_generator: Optimize imports
+ - [PYSIDE-1019] feature: move getFeatureSelectId to Shiboken and refactor
+ - [PYSIDE-1019] Shiboken: Remove cheating macros
+ - [PYSIDE-1033] cmake: Fix option --sanitize-address
+ - [PYSIDE-1112] sample binding: Document how to force MSVC in case CMake
+ detects clang
+ - [PYSIDE-1112] PySide6: Update documentation on Qt Designer and resource
+ files
+ - [PYSIDE-1160] PySide6: Expose QHostInfo.lookupHost()
+ - [PYSIDE-1252] PySide6: Add entry points for the Qt Linguist tools
+ - [PYSIDE-1252] ApiExtractor: add classmethod attribute to add-function for
+ tr()
+ - [PYSIDE-1252] ApiExtractor: add classmethod attribute to add-function, fix
+ - [PYSIDE-1329] PySide6: Fix signature of QObject.tr()
+ - [PYSIDE-1334] Return QMetaObject.Connection from QObject.connect()
+ - [PYSIDE-1362] Fix crash in QCustom3DVolume::setTextureData()
+ - [PYSIDE-1370] PySide6: Add QSharedMemory
+ - [PYSIDE-1378] PySide6: Add assistant executable
+ - [PYSIDE-1378] build scripts: Extract helper functions to patch executables
+ - [PYSIDE-1378] Build scripts/UNIX: Extract helper function to copy GUI
+ executables
+ - [PYSIDE-1378] PySide6: Add some information on the tools
+ - [PYSIDE-1415] Turn generate_pyi into a general pyi_generator tool
+ - [PYSIDE-1415] Remove SimpleNamespace Python Implementation
+ - [PYSIDE-1437] Revert "Allow calling CI's build scripts with python2"
+ - [PYSIDE-1438] Fix QSurfaceDataProxy::resetArray() crash
+ - [PYSIDE-1455] Turn off numpy support in libpyside by default
+ - [PYSIDE-1455] Fix Designer plugin to load on Linux/macOS, add hints for trouble-shooting.
+ - [PYSIDE-1467] PySide6: Fix signature of CoreApplication.instance()
+ - [PYSIDE-1482] Re-add QtMultimedia/Widgets, fix examples, and missing
+ classes.
+ - [PYSIDE-1482] PySide6/signature: Add PySideSignalInstance
+ - [PYSIDE-1482] libpyside: Add type check for PySideSignalInstanceType
+ - [PYSIDE-1482] Add classes QChannel, QChannelComponent, QSignalSpy and more
+ non-template QML functions
+ - [PYSIDE-1482] PySide6/QSignalSpy: Add constructor taking a signal
+ - [PYSIDE-1482] Add further global functions
+ - [PYSIDE-1482] VoidPtr: Add setters and getters for the size, and isWritable
+ - [PYSIDE-1499] cppgenerator: remove a left-over "this" to get rid of
+ a warning
+ - [PYSIDE-1499] build support for pathlib.Path, migrating examples, and qml load functions
+ - [PYSIDE-1523] Document the usage of Nuitka
+ - [PYSIDE-1556] Fix cmake argument for standalone macOS
+ - [PYSIDE-1563] Fix crashes when using the QImage(uchar *) data constructors
+ - [PYSIDE-1563] Revert "Fix crashes when using the QImage(uchar *) data
+ constructors"
+ - [PYSIDE-1563] Fix error about not holding the GIL when releasing QImage
+ memory
+ - [PYSIDE-1566] Fix Designer plugin to load on macOS
+ - [PYSIDE-1568] CMake: Rename the ENABLE_ platform variables
+ - [PYSIDE-1568] Remove QtX11Extras, QtMacExtras and per-platform typesystem
+ files
+ - [PYSIDE-1568] Introduce conditional processing instructions to typesystem
+ XML
+ - [PYSIDE-1570] Add QtDBus module, QtNetworkAuth QtWebEngineQuick and initial
+ Support for QtBluetooth
+ - [PYSIDE-1570] Re-add QtWebEngine
+ - [PYSIDE-1570] Fix assert when retrieving wrapper from different thread
+ - [PYSIDE-1571] PySide6: Add BluetoothServiceInfo::Alternative, Sequence
+ - [PYSIDE-1583] PySide6: Extend the porting guide
+ - [PYSIDE-1584] mdi/application examples: Fix startup without settings file
+ - [PYSIDE-1585] PySide6: Refactor qvariant conversion code
+ - [PYSIDE-1588] Use replaced types in functions signatures
+ - [PYSIDE-1589] nuitka: Fix slot access for compiled functions
+ - [PYSIDE-1593] PyClassProperty: Correct the decorator and publish the class
+ - [PYSIDE-1599] testing: enforce that .pyi files are always tested
+ - [PYSIDE-1609] PySide6: Fix crashes in QObject.findChild()
+ - [PYSIDE-1609] PySide6: Add a test for QObject.findChildren() by type
+ - [PYSIDE-1611] PySide6: Add missing API of QQuickFramebufferObject.Renderer
+ - [PYSIDE-1614] Fix logging level being set when importing PySide6
+ - [PYSIDE-1617] Fix leak in QML ListProperty type
+ - [PYSIDE-1619] Add fallback case for QSettings.value
+ - [PYSIDE-1621] signature: make zip file access totally virtual
+ - [PYSIDE-1621] signature: update and make embedding aware
+ - [PYSIDE-1621] Remove signature loader completely from physical FS
+ - [PYSIDE-1623] PySide6: Add Qt Quick Controls 2 to the documentation
+ - [PYSIDE-1625] PySide6: Fix QMenu.exec_()
+ - [PYSIDE-1626] feature: fix the UIC switching problem
+ - [PYSIDE-1626] PySide6: Work around uic feature test failure
+ - [PYSIDE-1629] PySide6: Fix crash with qmlRegisterSingletonType() when
+ invoked from JavaScript
+ - [PYSIDE-1636] Fix GLES builds
+ - [PYSIDE-1639] Allow threads for QInputDialog templates, and QAbstractSocket methods.
+ - [PYSIDE-1646] Fix for OpenGL types on macOS
+ - [PYSIDE-1647] Fix crash when constructing a QApplication in an embedded
+ application
+ - [PYSIDE-1650] PySide6: Add QAccessible::installFactory()
+ - [PYSIDE-1650] PySide6: Add QAccessibleActionInterface
+ - [PYSIDE-1659] PySide6: Document QUiLoader restriction wrt signal/slot
+ connections
+ - [PYSIDE-1662] Fix Qt Quick painteditem example to work, and run from
+ a different directory
+ - [PYSIDE-1663] Add QWebEnginePage::setWebChannel(QWebChannel*,quint32)
+
+ - [QTBUG-75870] qtpaths is now used to query Qt properties.
+ - [QTBUG-75870] build scripts: Remove qtchooser handling, replace qmake mkspec
+ parsing by cmake, and introduce qtpaths as qmake replacement
+ - [QTBUG-95649] Disable gestures from QtSensors
+
+****************************************************************************
+* Shiboken6 *
+****************************************************************************
+
+ - [PYSIDE-535] Accept empty dicts as alternative to setting unused
+ keyword dicts to nullptr.
+ - [PYSIDE-535] The type extension macros are replaced by normal function
+ calls. This is not only a pre-requisite for PyPy support but also an
+ improvement of type safety.
+ - [PYSIDE-535] Type creation was completely encapsulated. The
+ implementation can now be rewritten for PyPy.
+ - [PYSIDE-535] Define SbkObjectType to be a PyTypeObject, and remove
+ SbkObjectType from the API
+ - [PYSIDE-535] SbkObjectType is now a typedef for PyTypeObject and
+ SbkType_FromSpec() has been changed to return a PyType_Object *.
+ - [PYSIDE-535] It is now possible to derive classes from enum types like
+ `QtCore.Key` in earlier Python versions.
+ - [PYSIDE-1334] operator bool can now be used for bool conversions
+ (nb_bool) besides Qt-style isNull() methods.
+ - [PYSIDE-1436] The Zip importer was rewritten for the Python 3.4 API
+ which avoids warnings in Python 3.10 .
+ - [PYSIDE-1436] The parser for .pyi files needed an update because of
+ undocumented changes in typing.py for Python 3.10 .
+ - [PYSIDE-1436] Binary flags operators did check cppArg only, but not
+ cppSelf. This is necessary when arguments are swapped. Recognized in
+ Python 3.10 due to improved error checks in debug mode.
+ - [PYSIDE-1436] A very old refcounting bug from 2012 in the sample XML
+ led to a crash in Python 3.10 . This bug was found because the refcounting
+ of Python is more exact, now.
+ - [PYSIDE-1588] It is now possible to specify a function argument type
+ to appear in the .pyi files.
+ - [PYSIDE-1605] Support for opaque C++ sequence scontainers has been added,
+ allowing to pass a wrapped C++ container directly instead of converting
+ it back and forth from Python sequences.
+ - [PYSIDE-1626] Coexistence of different feature selections works now,
+ especially for UIC files and inheritance.
+ - [PYSIDE-1621] Python support files are now always embedded. There is
+ no longer a physical copy installed in the file system.
+ - [PYSIDE-1637] The temporary alias shiboken6.shiboken6 for
+ the Shiboken module was removed. Now there is an unambiguous
+ shiboken6.Shiboken, only.
+ - [PYSIDE-1653] The handling of hidden base class member functions and
+ using declarations has been fixed.
+ - [PYSIDE-1655] stack-use-after-scope ASAN issues in the type system parser
+ have been fixed.
+ - [PYSIDE-1660] CPython types like PyObject, PySequence are now built into
+ shiboken6 and no longer need to be specified in the typesystem files.
+ - [PYSIDE-1568] Construction of abstract classes whose C++ wrapper is disabled
+ has been disabled.
+ - It is now possible to specify a check function for custom types in the
+ typesystem.
+ - A new, simpler normalization function has been introduced for signatures
+ of added functions (which means for example that const-ref is preserved).
+ - The replacement of %PYARG_0 in C++ wrapper classes (native) has been
+ improved and no longer requires adding casts to PyObject *.
diff --git a/doc/changelogs/changes-6.2.1 b/doc/changelogs/changes-6.2.1
new file mode 100644
index 000000000..227ac8120
--- /dev/null
+++ b/doc/changelogs/changes-6.2.1
@@ -0,0 +1,45 @@
+Qt for Python 6.2.1 is a bug-fix release.
+
+For more details, refer to the online documentation included in this
+distribution. The documentation is also available online:
+
+https://doc.qt.io/qtforpython/
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Qt Bug Tracker:
+
+https://bugreports.qt.io/
+
+Each of these identifiers can be entered in the bug tracker to obtain more
+information about a particular change.
+
+****************************************************************************
+* PySide6 *
+****************************************************************************
+
+ - [PYSIDE-610] Enable the SSL methods of QWebSockets
+ - [PYSIDE-841] Add a signals and slots tutorial
+ - [PYSIDE-841] Add examples: barchart, areachart, tab dialog, screenshot
+ relational table model, btscanner, rendercontrol_opengl,
+ and the 'adding' from the QML reference.
+ - [PYSIDE-1631] Add qmlRegister functions taking a library URL
+ - [PYSIDE-1673] Fix QObject.property() for QFlag types
+ - [PYSIDE-1674] Expose QVideoFrame::bits(int)
+ - [PYSIDE-1681] Fix hang in QQmlApplicationEngine functions with message
+ handler
+ - [PYSIDE-1685] Fix constructing a QFont from a family string
+ - [PYSIDE-1691] Add QCborTag
+
+****************************************************************************
+* Shiboken6 *
+****************************************************************************
+
+ - [PYSIDE-656] Overridden virtual methods are now always correctly
+ finalized, regardless of errors.
+ - [PYSIDE-1669] An option to disable implicit conversions has been added.
+ - [PYSIDE-1605] Getters returning containers by reference can now be modified
+ to return an opaque container by modifying the return type
+ accordingly.
+ - [PYSIDE-1660] Document builtin custom types
+ - [PYSIDE-1686] Adapt to LLVM 12.01
+ - [PYSIDE-1691] Handle enums without values
diff --git a/doc/changelogs/changes-6.2.2 b/doc/changelogs/changes-6.2.2
new file mode 100644
index 000000000..58d13d547
--- /dev/null
+++ b/doc/changelogs/changes-6.2.2
@@ -0,0 +1,76 @@
+Qt for Python 6.2.2 is a bug-fix release.
+
+For more details, refer to the online documentation included in this
+distribution. The documentation is also available online:
+
+https://doc.qt.io/qtforpython/
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Qt Bug Tracker:
+
+https://bugreports.qt.io/
+
+Each of these identifiers can be entered in the bug tracker to obtain more
+information about a particular change.
+
+****************************************************************************
+* PySide6 *
+****************************************************************************
+
+ - pyside.h no longer includes QML headers.
+ - [PYSIDE-1666] sets are now supported for functions taking a QSet.
+ - [PYSIDE-1670] When a property would override an existing function with
+ multiple arity or parameters, append an underscore to the property name.
+ - [PYSIDE-1675] Error message are more correct now when indexed generic
+ types are involved like Union, Sequence and Iterable.
+ - [PYSIDE-535] PyPySide: fix tests and improvements.
+ - [PYSIDE-802] coin: Don't prepend /bin: to PATH on Linux hosts
+ - [PYSIDE-803] Allow threads in QtGui.QTextDocument.print_
+ - [PYSIDE-841] Add new QML examples: 'properties', 'coercion', 'methods', 'default'
+ - [PYSIDE-841] Add new widgets examples: 'blurpicker', and 'dragable icons'
+ - [PYSIDE-1033] setup.py: Don't add the Qt prefix dir to PATH env var before
+ building
+ - [PYSIDE-1431] Fix equality test for inherited signals
+ - [PYSIDE-1520] mypy-support: Improve handling of slots, enum and PathLike
+ - [PYSIDE-1547] Use legacy OpenGL option to build on linux
+ - [PYSIDE-1669] Fix QIcon.addPixmap() to accept a PyPathLike argument
+ - [PYSIDE-1670] __feature__: handle properties with function overloads
+ - [PYSIDE-1675] Signature: re-implement error messages for generic types
+ - [PYSIDE-1675] signature: avoid false positives in .pyi import
+ - [PYSIDE-1696] Fix QFlags comparison to self
+ - [PYSIDE-1701] Fix invalid drawing of horizontal lines in the Qt Designer
+ taskmenu example
+ - [PYSIDE-1703] Fix build with MSVC 19.29.30136
+ - [PYSIDE-1708] Add QtQuick3D module
+ - [PYSIDE-1709] Add a QmlUncreatable and QmlSingleton decorators
+ - [PYSIDE-1710] signature: improve error handling for embedded applications
+ - [PYSIDE-1714] Add a sequence protocol for QRegion
+ - [PYSIDE-1715] Fix crash when connecting slot after disconnecting non-
+ existent connection to same slot
+
+****************************************************************************
+* Shiboken6 *
+****************************************************************************
+
+ - [PYSIDE-454] Add further methods to smart pointers: reset() and null-check,
+ tests for operator nb_bool, and handling None parameter.
+ - [PYSIDE-535] Remove type patching of PyType_Type and fix the meta type of
+ enum.
+ - [PYSIDE-1499] The implicit conversion of icon.addPixmap(str) was replaced
+ by an explicit version which takes PyPathLike.
+ - [PYSIDE-1675] The .pyi file generation was improved to have correct
+ slot(), PathLike and better enum handling.
+ - [PYSIDE-1691] When qualifying function argument default values for the
+ generated code, shiboken no longer considers each identifier it cannot
+ otherwise find as an enum value and no longer adds the class scope to it.
+ This may require manually adding some replace-default-expression
+ modifications.
+ - [PYSIDE-1710] Error handling was improved for embedded applications and
+ builtin modules are trusted as valid modules.
+ - [PYSIDE-1666] Handle PySets as function parameters
+ - [PYSIDE-1684] Do not crash when class cannot be found in the overload
+ sorter
+ - [PYSIDE-1691] Added CborTag: improvements were included in shiboken
+ to support this class.
+ - [PYSIDE-1697] Fix a leak in keyword arguments handling
+ - [PYSIDE-1703] Fix some integer types in test type systems
diff --git a/doc/changelogs/changes-6.2.3 b/doc/changelogs/changes-6.2.3
new file mode 100644
index 000000000..d54c964be
--- /dev/null
+++ b/doc/changelogs/changes-6.2.3
@@ -0,0 +1,56 @@
+Qt for Python 6.2.3 is a bug-fix release.
+
+For more details, refer to the online documentation included in this
+distribution. The documentation is also available online:
+
+https://doc.qt.io/qtforpython/
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Qt Bug Tracker:
+
+https://bugreports.qt.io/
+
+Each of these identifiers can be entered in the bug tracker to obtain more
+information about a particular change.
+
+****************************************************************************
+* PySide6 *
+****************************************************************************
+
+ - __repr__ functions for QEvent-derived classes were added.
+ - audio source, mimetype browser, borderlayout, threadedqopenglwidget and
+ regular expression examples were added.
+ - A debugging tutorial was added.
+ - [PYSIDE-1318] The MyPy display of `Signal` was corrected so that the
+ relationship of `Signal` and `SignalInstance` is reflected.
+ - [PYSIDE-1431] Signal instances allow pass-through of methods with the same
+ name, explicitly and with multiple inheritance.
+ - [PYSIDE-1675] A crash when inserting a signal into a non-QObject was fixed.
+ - [PYSIDE-1675] A bug fix in Slot.__call__ was fixed.
+ - [PYSIDE-1675] A segfault when a signal is applied to a non-QObject was
+ fixed.
+ - [PYSIDE-1725] Documentation: classes in inheritance diagrams are now
+ clickable (within one module).
+ - [PYSIDE-1726] The build for the case when no Vulkan is installed was fixed.
+ - [PYSIDE-1727] The signature and __doc__ attribute of classes issue was
+ fixed.
+ - [PYSIDE-1730] A pass-through for signals in case of multiple inheritance
+ was added.
+ - [PYSIDE-1736 QQmlApplicationEngine.load(str) was fixed.
+ - [PYSIDE-1755] __code__ inspection on slot connections was fixed.
+ - [PYSIDE-1757] The error handling of true_property was improved.
+ - [PYSIDE-1769] A crash in WebEngine signal emissions was fixed.
+ - [PYSIDE-1770] Enum QXYSeries.PointConfiguration was added.
+ - [PYSIDE-1792] allow threads was added to QFileDialog's static functions
+ (getSaveFileName(), etc.).
+ - [QTBUG-95010] New Multimedia functions were added
+
+****************************************************************************
+* Shiboken6 *
+****************************************************************************
+
+ - [PYSIDE-1605] Bindings for reserve()/capacity() were added to contiguous
+ opaque containers.
+ - [PYSIDE-1766] The documentation on the conversion-rule tag was updated
+ and native-to-target/target-to-native can now be used in argument
+ conversion rules.
diff --git a/doc/changelogs/changes-6.2.4 b/doc/changelogs/changes-6.2.4
new file mode 100644
index 000000000..dff01c3a7
--- /dev/null
+++ b/doc/changelogs/changes-6.2.4
@@ -0,0 +1,42 @@
+Qt for Python 6.2.4 is a bug-fix release.
+
+For more details, refer to the online documentation included in this
+distribution. The documentation is also available online:
+
+https://doc.qt.io/qtforpython/
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Qt Bug Tracker:
+
+https://bugreports.qt.io/
+
+Each of these identifiers can be entered in the bug tracker to obtain more
+information about a particular change.
+
+****************************************************************************
+* PySide6 *
+****************************************************************************
+
+ - [PYSIDE-1702] snake_case handling now does explicitly not touch user
+ defined classes.
+ - [PYSIDE-1705] Properties are now usable in constructors of classes in any
+ combination of snake_case and true_property.
+ - [PYSIDE-1765] The snake_case feature is now more complete since it renames
+ hidden methods, too. Overriding was enabled.
+ - [PYSIDE-1252] The entry points for UI tools on macOS have been fixed.
+ - [PYSIDE-1798] QVariant can now be converted to Enum types.
+ - [PYSIDE-1804] A bug in QByteArray::__msetitem__() on big
+ endian architectures has been fixed.
+ - [PYSIDE-1815] QAbstractOAuth.setModifyParametersFunction() has been added
+ - [PYSIDE-1824] QLowEnergyServiceData.characteristics() has been fixed.
+ - [PYSIDE-1826] A life cycle issue with
+ QQuickAsyncImageProvider.requestImageResponse()
+ has been fixed.
+ - [PYSIDE-1827] Signals/slots with non-QObject object types have been
+ fixed.
+
+****************************************************************************
+* Shiboken6 *
+****************************************************************************
+
+ - [PYSIDE-1806] A configure check for the clang version has been added.
diff --git a/doc/changelogs/changes-6.3.0 b/doc/changelogs/changes-6.3.0
new file mode 100644
index 000000000..8114ce9f5
--- /dev/null
+++ b/doc/changelogs/changes-6.3.0
@@ -0,0 +1,214 @@
+Qt for Python 6.3 is a minor release.
+
+For more details, refer to the online documentation included in this
+distribution. The documentation is also available online:
+
+https://doc.qt.io/qtforpython/
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Qt Bug Tracker:
+
+https://bugreports.qt.io/
+
+Each of these identifiers can be entered in the bug tracker to obtain more
+information about a particular change.
+
+****************************************************************************
+* PySide6 *
+****************************************************************************
+
+ - The PySide wheels have been split. There is now a PySide6-Essentials
+ and a PySide6-Addons wheel. The PySide6 wheel has been kept as a convenience
+ to install all modules.
+ - The QtNfc module has been added.
+ - New QML tools have been added: pyside6-metaobjectdump, pyside6-qmltyperegistrar
+ and pyside6-qmllint.
+ - Several class decorators have been added for QML: QmlAttached,
+ QmlExtended, QmlForeign, QmlNamedElement, QmlSingleton and QmlUncreatable.
+ - class QPyQmlPropertyValueSource for implementing QML value
+ property sources has been added.
+ - QML code has been split out from libpyside into a new library libpysideqml.
+ libpyside thus no longer depends on QtQml and pyside.h no longer includes QML
+ headers. pyside.h has been split into smaller headers.
+ - The setup.py --qmake option is deprecated starting with Qt 6.3. Use the
+ --qtpaths option instead.
+ - Build directories are now created inside the root ./build directory,
+ rather than directly under the root of the project.
+ - A context manager for override cursors has been added. It is now possible
+ to write code like: with QApplication.setOverrideCursor(Qt.WaitCursor):...
+ - A completely new development was done to support the fast PyPy implementation.
+ A listing of all the necessary steps can be found in the extra documentation
+ for PyPy with PySide in ./doc/pypyside.rst .
+
+ - [PYSIDE-535] Support for PyPy was added. Examples were fixed and adapted to
+ use context managers, for example for QPainter, to ensure
+ proper deletion.
+ - [PYSIDE-535] QPainter has become a context manager. Using a with statement
+ saves the need to call painter.end() .
+ - [PYSIDE-610] The SSL methods of QWebSockets were enabled.
+ - [PYSIDE-802] Support for cross-building was added.
+ - [PYSIDE-841] New tutorials were added: Debugging Tutorial and Signals
+ and slots.
+ - [PYSIDE-841] New examples were added: areachart, audiosource, barchart,
+ blurpicker, borderlayout, btscanner, dragable icons,
+ mimetypebrowser, relational table model, rendercontrol_opengl,
+ screenshot, tab dialog and threadedqopenglwidget.
+ - [PYSIDE-841] Further QML reference examples were added: binding, coercion,
+ default, extended, grouped, methods, properties and
+ valuesource.
+ - [PYSIDE-1318] The MyPy display of `Signal` was corrected so that the
+ relationship of `Signal` and `SignalInstance` is reflected.
+ - [PYSIDE-1431] Signal instances allow pass-through of methods with the same
+ name, explicitly and with multiple inheritance.
+ - [PYSIDE-1431] Signal initialization now respects the order of subclasses
+ in the mro().
+ - [PYSIDE-1670] When a property overrides an existing function with
+ multiple arity or parameters, an underscore is appended to
+ the property name.
+ - [PYSIDE-1675] Error message are more correct now when indexed generic
+ types are involved like Union, Sequence and Iterable.
+ - [PYSIDE-1675] A crash when inserting a signal into a non-QObject was
+ fixed.
+ - [PYSIDE-1702] snake_case handling now does explicitly not touch user
+ defined classes.
+ - [PYSIDE-1705] Properties are now usable in constructors of classes in any
+ combination of snake_case and true_property.
+ - [PYSIDE-1746] The byte-compiling of example files is now suppressed to
+ reduce wheel size.
+ - [PYSIDE-1758] A left-over replacement of the interactive underscore
+ variable when QApplication is created was removed.
+ - [PYSIDE-1760] A race condition caused by the move from distutils to
+ setuptools with certain Python builds was fixed.
+ - [PYSIDE-1765] true_property overriding was enabled.
+ - [PYSIDE-1765] The snake_case feature is now more complete since it renames
+ hidden methods, too.
+ - [PYSIDE-1788] __repr__ functions for some QEvent-derived classes were
+ added.
+ - [PYSIDE-1252] Entry points for UI tools on macOS were fixed.
+ - [PYSIDE-1318] mypy-support: The handling of `Signal` was improved.
+ - [PYSIDE-1431] The equality test for inherited signals was fixed.
+ - [PYSIDE-1499] The implicit conversion of icon.addPixmap(str) was replaced
+ by an explicit version which takes PyPathLike.
+ - [PYSIDE-1520] mypy-support: The handling of slots, enum and PathLike
+ was improved.
+ - [PYSIDE-1547] The legacy OpenGL option is now used to build on linux,
+ removing a dependency to vendor-specific OpenGL libraries.
+ - [PYSIDE-1605] An opaque container are now used for OpenGL in the
+ hellogl2 example.
+ - [PYSIDE-1631] The qmlRegisterType() overload taking a library URL was
+ added.
+ - [PYSIDE-1673] QObject.property() was fixed for QFlag types.
+ - [PYSIDE-1674] QVideoFrame::bits(int) was added.
+ - [PYSIDE-1675] MyPy support has been improved.
+ - [PYSIDE-1675] A bug in Slot.__call__ was fixed.
+ - [PYSIDE-1675] A segfault when signal was applied to non-QObject was fixed.
+ - [PYSIDE-1681] A hang in QQmlApplicationEngine functions with message
+ handlers was fixed.
+ - [PYSIDE-1685] Constructing a QFont from a family string was fixed.
+ - [PYSIDE-1691] Class QCborTag was added.
+ - [PYSIDE-1696] QFlags comparison to self was fixed.
+ - [PYSIDE-1701] A bug in the TicTacToe Qt Designer taskmenu example was fixed.
+ - [PYSIDE-1702] __feature__: snake_case handling on user defined classes was
+ fixed.
+ - [PYSIDE-1703] The build with MSVC 19.29.30136 was fixed.
+ - [PYSIDE-1708] The QtQuick3D module was added.
+ - [PYSIDE-1709] A __repr__ function for QMetaObject was added.
+ - [PYSIDE-1709] The QML metatype json files of Qt are now shipped for usage
+ by pyside6-qmllint.
+ - [PYSIDE-1714] The sequence protocol has been implemented for QRegion.
+ - [PYSIDE-1715] A crash when connecting a slot after disconnecting non-
+ existent connection to same slot was fixed.
+ - [PYSIDE-1721] The documentation generation process has been
+ streamlined and the snippets conversion tool has been improved.
+ - [PYSIDE-1725] URLs in class inheritance diagrams have been made clickable
+ (within same module).
+ - [PYSIDE-1726] The build in case Vulkan is not installed was fixed.
+ - [PYSIDE-1727] Signature: The __doc__ attribute of classes was fixed.
+ - [PYSIDE-1730] Name clashes of signals and inherited methods were fixed.
+ - [PYSIDE-1736] QQmlApplicationEngine.load(str) was fixed.
+ - [PYSIDE-1755] Nuitka compiled methods are now safely distinguished.
+ - [PYSIDE-1757] __feature__: A bug in true_property was fixed.
+ - [PYSIDE-1758] QApplication no longer touches the underscore variable.
+ - [PYSIDE-1769] Crashes in WebEngine signal emissions were fixed.
+ - [PYSIDE-1770] Enum QXYSeries.PointConfiguration enum was added.
+ - [PYSIDE-1798] QVariant can now be converted to enum types.
+ - [PYSIDE-1804] QByteArray::__msetitem__() was fixed for big endian
+ architectures.
+ - [PYSIDE-1815] QAbstractOAuth.setModifyParametersFunction was added.
+ - [PYSIDE-1824] QLowEnergyServiceData.characteristics() was fixed.
+ - [PYSIDE-1826] A crash when implementing
+ QQuickAsyncImageProvider.requestImageResponse() was fixed.
+ - [PYSIDE-1827] Signals/slots with non-QObject object type parameters were
+ fixed.
+ - [PYSIDE-1840] The qFuzzyCompare() overloads for the classes in QtGui were
+ added.
+ - [PYSIDE-1845] Properties of type QQmlPropertyMap * were fixed.
+ - [PYSIDE-1876] Class QPyQmlParserStatus for handling QML parser status
+ changes has been added.
+ - [QTBUG-95010] The new Multimedia-API was adopted.
+
+****************************************************************************
+* Shiboken6 *
+****************************************************************************
+
+ - A fast path for converting Python strings to UTF-8 has been added to the
+ limited API.
+ - [PYSIDE-454] Attributes for reset() and null-check of smart pointers have
+ been added.
+ - [PYSIDE-454] None is now accepted as a shared pointer parameter
+ and nb_bool was added to shared pointers.
+ - [PYSIDE-454] Using std::shared_ptr has been simplified; it no longer
+ requires specifying all implementation headers for the class
+ declaration to be fully visible.
+ - [PYSIDE-535] The generated code can now be used with PyPy.
+ - [PYSIDE-656] The error state is now correctly handled in overridden virtual
+ methods.
+ - [PYSIDE-1605] Getters returning containers by reference can now be
+ modified to return an opaque container by modifying the
+ return type accordingly.
+ - [PYSIDE-1605] Bindings for reserve()/capacity() were added to contiguous
+ opaque containers.
+ - [PYSIDE-1605] Code generation for functions taking a pointer to a container
+ has been fixed.
+ - [PYSIDE-1660] Primitive types are now built-in
+ unless they are present in type system file.
+ - [PYSIDE-1660] The macro PyObject_Check() has been removed from libshiboken.
+ - [PYSIDE-1666] Support for std::wstring has been added.
+ - [PYSIDE-1666] Pre-defined XML templates for standard container type
+ conversion have been added.
+ - [PYSIDE-1666] Common standard containers (std::list, std::vector,
+ std::pair, std::map, std::unordered_map) are now built-in
+ unless they were present in type system file.
+ - [PYSIDE-1666] Predefined templates for standard container types have been
+ added.
+ - [PYSIDE-1666] sets are now supported for functions taking C++ sets.
+ On return, C++ set instances will be converted to PySets
+ instead of PyLists.
+ - [PYSIDE-1669] An option to disable implicit conversions has been added.
+ - [PYSIDE-1675] The .pyi file generation was improved to have correct
+ slot(), PathLike and better enum handling.
+ - [PYSIDE-1691] When qualifying function argument default values for the
+ generated code, shiboken no longer considers each identifier
+ it cannot otherwise find as an enum value and no longer adds
+ the class scope to it. This may require manually adding some
+ replace-default-expression modifications.
+ - [PYSIDE-1691] Determining the scoped of enum default values of function
+ arguments has been improved. nullptr is now handled correctly.
+ - [PYSIDE-1684] A crash when a class cannot be found in the overload
+ sorter has been fixed.
+ - [PYSIDE-1697] A memory leak in generated code for keyword arguments was fixed.
+ supported in argument conversion rules.
+ - [PYSIDE-1710] Error handling was improved for embedded applications and
+ builtin modules are trusted as valid modules.
+ - [PYSIDE-1711] Comparison operators for pointees of smart pointers are now
+ generated.
+ - [PYSIDE-1766] XML elements native-to-target and target-to-native are now
+ - [PYSIDE-1790] Classes marked as final in C++ are now created as final
+ Python classes.
+ - [PYSIDE-1790] Bindings for data()/constData() were added to contiguous
+ opaque containers.
+ - [PYSIDE-1790] Opaque containers are now always generated for
+ the specified types regardless of whether instantiations
+ exist.
+ - [PYSIDE-1802] The code model parser was adapted to consider .h files as C++.
+ - [PYSIDE-1806] A configure check for the clang version was added.
diff --git a/doc/changelogs/changes-6.3.1 b/doc/changelogs/changes-6.3.1
new file mode 100644
index 000000000..fec3bf96a
--- /dev/null
+++ b/doc/changelogs/changes-6.3.1
@@ -0,0 +1,67 @@
+Qt for Python 6.3.1 is a bug-fix release.
+
+For more details, refer to the online documentation included in this
+distribution. The documentation is also available online:
+
+https://doc.qt.io/qtforpython/
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Qt Bug Tracker:
+
+https://bugreports.qt.io/
+
+Each of these identifiers can be entered in the bug tracker to obtain more
+information about a particular change.
+
+****************************************************************************
+* PySide6 *
+****************************************************************************
+
+ - [PYSIDE-1019] Feature switching was improved by avoiding cross-talk
+ to enable for example tests using PyTest.
+ - [PYSIDE-353] PySide now builds with PyPy 3.9.
+ - [PYSIDE-1735] New Pythons Enums were added as an optional feature, which
+ can be activated bv setting the environment variable
+ PYSIDE63_OPTION_PYTHON_ENUM.
+ - [PYSIDE-1797] An issue preventing using PySide with Python 3.6 or 3.7
+ related to symbol PyIndex_Check was fixed.
+ - [PYSIDE-1859] Windows handle types HBITMAP, HICON, HRGN are now supported
+ (as int types).
+ - [PYSIDE-1880] The QtDataVisualization surface examples have been extended and
+ improved.
+ - [PYSIDE-1883] QTest.qWait() and QTest.qSleep() have been added.
+ - [PYSIDE-1887] Overriding QGraphicsItem::itemChange() has been fixed.
+ - [PYSIDE-1893] A crash with error "Internal C++ object already deleted." when
+ using QWidget.nativeParentWidget() has been fixed.
+ - [PYSIDE-1895] Embedded 0 characters in UNICODE strings are now handled
+ correctly.
+ - [PYSIDE-1899] QLoggingCategory, qCDebug, qCInfo, qCWarning and qCCritical
+ have been added.
+ - [PYSIDE-1901] String conversion for non-compact strings when
+ using Limited API has been fixed.
+ - [PYSIDE-1905] Overloads with more parameters have been added to
+ QDBusAbstractInterface.call()
+ - [PYSIDE-1909] qstyleoption_cast<> has been implemented in order
+ to be able to handle QStyleOption-derived classes.
+ - [PYSIDE-1911] PySideSignalInstance has now a __repr__.
+ - [PYSIDE-1912] QWebEngineCookieStore.setCookieFilter and
+ QtWebEngineProfile.setNotificationPresenter have been added.
+ - [PYSIDE-1919] A GIL state crash when collecting QObjects with signals
+ in Python 3.10 has been fixed.
+ - [PYSIDE-1921] QQmlContext::setContextProperties() has been added.
+ - [PYSIDE-1939] A crash in QTextBlock.layout() has been fixed.
+ - [PYSIDE-1947] QAudioBuffer.data()/constData() have been added.
+
+****************************************************************************
+* Shiboken6 *
+****************************************************************************
+
+ - [PYSIDE-1932] The Q_ENUM helper functions qt_getEnumMetaObject() and
+ qt_getEnumName() are now automatically rejected when PySide
+ extensions are enabled.
+ - [PYSIDE-1909] It is now possible to inject a function that retrieves the
+ type name of a polymorphic class.
+ - [PYSIDE-1909] Type discovery code is now generated for all classes that
+ have an id expression set.
+ - [PYSIDE-1933] Converters for all smart pointee base classes are now
+ generated.
diff --git a/doc/changelogs/changes-6.3.2 b/doc/changelogs/changes-6.3.2
new file mode 100644
index 000000000..c2a40a854
--- /dev/null
+++ b/doc/changelogs/changes-6.3.2
@@ -0,0 +1,72 @@
+Qt for Python 6.3.2 is a bug-fix release.
+
+For more details, refer to the online documentation included in this
+distribution. The documentation is also available online:
+
+https://doc.qt.io/qtforpython/
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Qt Bug Tracker:
+
+https://bugreports.qt.io/
+
+Each of these identifiers can be entered in the bug tracker to obtain more
+information about a particular change.
+
+****************************************************************************
+* PySide6 *
+****************************************************************************
+
+ - [PYSIDE-841] New examples have been added (SpinBoxDelegate,
+ Bluetooth heart rate).
+ - [PYSIDE-1312] QFormLayout::takeRow() has been added.
+ - [PYSIDE-1735] The duplication of enum values into the enclosing scope,
+ allowing to write Qt.AlignLeft instead of Qt.Alignment.AlignLeft,
+ is now implemented differently and no longer advertized in PYI
+ files or line completion.
+ - [PYSIDE-1735] The new Python enums are made as compatible to the old ones
+ as possible. It is again allowed to use Qt.Alignment()
+ instead of Qt.AlignmentFlag(0), and a default of 0 is
+ always allowed but also not advertized.
+ Qt.Modifiers/Qt.KeyboardModifierflags can also still be used
+ interchangeably.
+ - [PYSIDE-1735] Most former IntEnum/IntFlag are replaced by pure Enum/Flag
+ classes in a generally compatible way to other implementations.
+ - [PYSIDE-1735] PyEnum handles QKeyCombination correctly with "|" or (deprecated)
+ "+" operators, without falling back to using IntEnum.
+ - [PYSIDE-1735] Python Enums use the newest implementation for Python (3.10)
+ for compatibility and speed.
+ - [PYSIDE-1735] A weird build problem on macOS and other platforms was fixed.
+ - [PYSide-1735] The cleanup calls by were sped up by using PyName for
+ staticMetaObject.
+ - [PYSIDE-1984] The code snippets in the modelview tutorial have been
+ improved.
+ - [PYSIDE-1930] Returning enums from QAbstractItemModel.flags() and
+ QAbstractItemModel.data() has been fixed.
+ - [PYSIDE-1934] The type hinting for the return value of
+ QListWidget.selected_indexes() has been fixed.
+ - [PYSIDE-1960] Initial support for Python 3.11 has been added.
+ - [PYSIDE-1968] The signature of QPixmap.save() has been fixed.
+ - [PYSIDE-1978] The signal
+ QAbstractItemModel.layoutAboutToBeChanged(QList<QPersistentModelIndex>)
+ has been fixed.
+ Also, the error message about using the wrong signal overload
+ has been improved.
+ - [PYSIDE-2030] The converter tools for Python code snippets for the
+ documentation has been improved.
+ - [PYSIDE-2019] Crashes related to QtDataVisualization'QValue3DAxisFormatter
+ have been fixed.
+ - [PYSIDE-2034] The static functions of QMessageBox have been fixed to not
+ block threads.
+ - [PYSIDE-2039] A regression affecting setting override cursors without
+ context manager has been fixed.
+
+
+****************************************************************************
+* Shiboken6 *
+****************************************************************************
+
+ - [PYSIDE-1964] The error message about mistakenly using keyword arguments
+ has been improved.
+ - [PYSIDE-1988] Fixed a mistaken PySequence_Check() type check to be
+ PyTuple_Check(), which only showed in Python 3.11.
diff --git a/doc/changelogs/changes-6.4.0 b/doc/changelogs/changes-6.4.0
new file mode 100644
index 000000000..e2f7df1c3
--- /dev/null
+++ b/doc/changelogs/changes-6.4.0
@@ -0,0 +1,187 @@
+Qt for Python 6.4.0 is a minor release.
+
+For more details, refer to the online documentation included in this
+distribution. The documentation is also available online:
+
+https://doc.qt.io/qtforpython/
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Qt Bug Tracker:
+
+https://bugreports.qt.io/
+
+Each of these identifiers can be entered in the bug tracker to obtain more
+information about a particular change.
+
+****************************************************************************
+* PySide6 *
+****************************************************************************
+
+ - Modules QtPdf, QtPdfWidgets and QtSpatialAudio have been added.
+ - [PYSIDE-353] PySide builds with PyPy 3.9.
+ - [PYSIDE-769] Examples that demonstrate usage of Trio async package with Qt
+ have been added.
+ - [PYSIDE-841] Examples surface_numpy, minimal surface (QtDataVisualization),
+ dropsite, dirview, Google suggest license wizard, QtBluetooth
+ heart rate server and client, QML window, QML Plugins,
+ analog clock (QtGui), digital clock (QtWidgets), spreadsheet,
+ terminal (QtSerialPort) and character map, have been added.
+ - [PYSIDE-962] Errors message about test-configuring projects
+ with cmake have been improved.
+ - [PYSIDE-1019] The feature module has been improved by a reset function.
+ - [PYSIDE-1106] The documentation build process has been improved; it no
+ longer requires a complete PySide6 build.
+ - [PYSIDE-1312] Support for QFormLayout::TakeRowResult has been added.
+ - [PYSIDE-1612] A tool for deployment, pyside6-deploy, has been added.
+ - [PYSIDE-1721] The C++ to Python code snippet translation has been
+ much improved.
+ - [PYSIDE-1731] PyEnum: Fix the old Enums to produce correct .pyi files,
+ again.
+ - [PYSIDE-1735] The new forgiveness mode of Python enums allows to use old
+ enum code, most of the time.
+ - [PYSIDE-1735] PyEnum: Most IntEnum/IntFlag classes were modified to Enum/Flag
+ - [PYSIDE-1735] PyEnum: QKeyCombination was improved to also work after the change
+ from IntEnum to Enum.
+ - [PYSIDE-1735] PyEnum can now be fully configured by flags at startup for internal
+ use. The default is unchanged and enables everything as before.
+ - [PYSIDE-1797] Link errors about PyIndex_Check() when using Limited_API have
+ been fixed.
+ - [PYSIDE-1860] Modules are now optimized for size.
+ - [PYSIDE-1878] The tool pyside6-qml has been added.
+ - [PYSIDE-1880] A numpy overload for QSurfaceDataProxy.resetArray() has
+ been added.
+ - [PYSIDE-1883] Test::qWait()/qSleep() have been added.
+ - [PYSIDE-1887] Overriding QGraphicsItem::itemChange() has been fixed.
+ - [PYSIDE-1887] Specify meta type registration for some class hierarchies
+ - [PYSIDE-1893] Error "Internal C++ object already deleted." when using
+ QWidget.nativeParentWidget() has been fixed.
+ - [PYSIDE-1895] '\0' can now be embedded in 1 byte strings.
+ - [PYSIDE-1898] Q_ARG/Q_RETURN_ARG have been implemented for
+ QMetaObject.invokeMethod() with arguments.
+ - [PYSIDE-1898] qMetaTypeFromPyType() has been fixed for for wrapped types.
+ - [PYSIDE-1898] QMetaType: a constructor taking a PyTypeObject has been added.
+ - [PYSIDE-1899] Class QLoggingCategory and functions qCDebug(), qCInfo(),
+ qCWarning() and qCCritical() has been added.
+ - [PYSIDE-1859] The Microsoft Windows handle types HBITMAP, HICON and HRGN
+ have been added.
+ - [PYSIDE-1906] All qHash() functions are now exposed to Python.
+ - [PYSIDE-1913] The bool cast for QByteArray has been changed to return
+ False for empty byte arrays to match the expected behavior.
+ - [PYSIDE-1924] Numpy support is now enabled by default.
+ - [PYSIDE-1945] pyside6-qtpy2cpp.py, a Qt-specific, simple tool for
+ converting Python code to C++ has been added.
+ - [PYSIDE-1957] The Qt5Compat QML imports have been added
+ (QtGraphicalEffects).
+ - [PYSIDE-1901] The broken string conversion for non-compact
+ strings when using Limited API has been fixed.
+ - [PYSIDE-1905] Overloads with more parameters have been added to
+ QDBusAbstractInterface::call().
+ - [PYSIDE-1906] qHash() functions are now automatically exposed as tp_hash.
+ - [PYSIDE-1909] Type discovery for QStyleOption-derived classes
+ has been fixed.
+ - [PYSIDE-1911] A __repr__ function for PySideSignalInstance has been added.
+ - [PYSIDE-1912] QWebEngineCookieStore.setCookieFilter() and
+ QtWebEngineProfile.setNotificationPresenter() have been added.
+ - [PYSIDE-1919] A GIL state crash when collecting QObjects
+ with signals occurring in Python 3.10 has been fixed.
+ - [PYSIDE-1921] QQmlContext.setContextProperties() has been added.
+ - [PYSIDE-1930] Returning enums from QAbstractListModel.data() has been fixed.
+ - [PYSIDE-1934] Type hinting for QListWidget.selected_indexes() has been
+ fixed.
+ - [PYSIDE-1939] A crash in QTextBlock.layout() has been fixed.
+ - [PYSIDE-1947] QAudioBuffer.data()/constData() has been added.
+ - [PYSIDE-1957] Add Qt5Compat.GraphicalEffects
+ - [PYSIDE-1960] Support for Python 3.11 has been added.
+ - [PYSIDE-1968] Type hinting for QPixmap.save() has been fixed.
+ - [PYSIDE-1974] Returning flags from QAbstractTableModel and other
+ models has been fixed.
+ - [PYSIDE-1978] Signal
+ QAbstractItemModel::layoutAboutToBeChanged(QList<QPersistentModelIndex>)
+ has been fixed.
+ - [PYSIDE-1984] The snippets of the model view tutorials have been fixed.
+ - [PYSIDE-1986] Setting properties by named arguments for Q[VH]BoxLayout
+ has been fixed.
+ - [PYSIDE-2000] The VS Code debugging tutorial for Windows has been updated.
+ - [PYSIDE-2004] The tools qmlformat and qmlls have been added.
+ - [PYSIDE-2005] A documentation section for cmake-only build has been added.
+ - [PYSIDE-2017] The functions glGet(Boolean|Double|Float|Integer)v()
+ and glGet(Boolean|Double|Float|Integer)i_v() have been added.
+ - [PYSIDE-2019] Issues with QtDataVisualization's QValue3DAxisFormatter
+ have been fixed.
+ - [PYSIDE-2021] The index operator of QKeySequence now returns QKeyCombination
+ when the new PyEnums are used.
+ - [PYSIDE-2025] Setters for the the lists in
+ QtDataVisualization's QValue3DAxisFormatter
+ have been fixed added.
+ - [PYSIDE-2033] A logging category "qt.pyside.libpyside" with useful warnings
+ has been added to libpyside.
+ - [PYSIDE-2034] Blocking threads in static functions of QMessageBox
+ have been fixed.
+ - [PYSIDE-2038] Documentation: Improve module pages title
+ - [PYSIDE-2039] A regression bug when setting override cursors without context
+ manager has been fixed.
+ - [PYSIDE-2048] A TypeError when comparing Qt.Flags and objects has been
+ fixed.
+ - [PYSIDE-2059] Function qt_set_sequence_auto_mnemonic() has been added to
+ QtGui.
+ - [PYSIDE-2060] Cross-compilation to Raspberry Pi 4 has been fixed.
+
+****************************************************************************
+* Shiboken6 *
+****************************************************************************
+
+ - When using C++ 20, the spaceship comparison operator is
+ now recognized.
+ - The signatures for function modifications now also allow for
+ specifying unresolved types.
+ - [PYSIDE-454] Support for std::unique_ptr pointer has been added.
+ - [PYSIDE-1735] Python Enums use the newest implementation for Python (3.10)
+ for compatibility and speed.
+ - [PYSIDE-1735] The initialization of the signature module was moved into
+ Shiboken and rearranged. This was necessary for the new
+ backward-compatible PyEnum module.
+ - [PYSIDE-1735] The new Python enums are made as compatible to the old ones
+ as possible. It is again allowed to use Qt.Alignment() instead
+ of Qt.AlignmentFlag(0), and a default of 0 is always allowed.
+ - [PYSIDE-1735] Most former IntEnum/IntFlag are replaced by pure Enum/Flag
+ classes in a generally compatible way to other implementations.
+ - [PYSIDE-1735] Shiboken now generates warnings about using deprecated
+ enumerations and deprecated enumeration values.
+ - [PYSIDE-1764] It is now possible to specify a list of functions to be
+ generated instead of removing undesired functions.
+ - [PYSIDE-1932] The Q_ENUM helper functions qt_getEnumMetaObject() and
+ qt_getEnumName() are now automatically rejected when
+ PySide extensions are enabled.
+ - [PYSIDE-1939] An type system attribute for restricting the parent
+ ownership heuristics to relevant classes has been introduced.
+ - [PYSIDE-454] The types "handle" and "value-handle" have been added
+ to the smart pointers typesystem element.
+ - [PYSIDE-661] Generated error messages habe been moved into the library,
+ significantly reducing the module size.
+ - [PYSIDE-1735] Propagate C++ enum deprecation
+ - [PYSIDE-1735] shiboken 6: Generate warnings about deprecated enum/values
+ - [PYSIDE-1812] Command line options for compiler, path and platform
+ have been added.
+ - [PYSIDE-1887] Meta type registration is now configureable in the type
+ system.
+ - [PYSIDE-1905] A way to specify free functions with complete custom
+ implementations has been added (bypassing the generated
+ argument conversion and overload decisor code).
+ - [PYSIDE-1909] A function to get the type name of a polymorphic class
+ can now be specified.
+ - [PYSIDE-1909] Type discovery for classes that with an id expression
+ has been fixed.
+ - [PYSIDE-1933] Converters for all smart pointee base classes are now
+ generated.
+ - [PYSIDE-1939] Heuristics for for parent ownership can now be specified
+ by an attribute.
+ - [PYSIDE-1995] Exceptions are now propagated through return value ownership
+ modifications.
+ - [PYSIDE-2017] The modified pyi return types of functions are now used
+ for signatures. Signatures also no longer contain
+ removed arguments.
+ - [PYSIDE-2025] Documentation injection for added functions with
+ parameter names has been fixed.
+ - [PYSIDE-2040] The full path of libdir is now used in the pkg-config file.
+ - [PYSIDE-2046] A crash caused by invalid return types of added
+ functions has been fixed.
diff --git a/doc/changelogs/changes-6.4.0.1 b/doc/changelogs/changes-6.4.0.1
new file mode 100644
index 000000000..890c174fd
--- /dev/null
+++ b/doc/changelogs/changes-6.4.0.1
@@ -0,0 +1,35 @@
+Qt for Python 6.4.0.1 is a bug-fix release.
+
+For more details, refer to the online documentation included in this
+distribution. The documentation is also available online:
+
+https://doc.qt.io/qtforpython/
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Qt Bug Tracker:
+
+https://bugreports.qt.io/
+
+Each of these identifiers can be entered in the bug tracker to obtain more
+information about a particular change.
+
+****************************************************************************
+* PySide6 *
+****************************************************************************
+
+ - [PYSIDE-1106] Fix modules being omitted from the documentation
+ - [PYSIDE-1612] wheels: Add pyside6-qtpy2cpp entry point
+ - [PYSIDE-1912] Deploy Tool : refactoring
+ - [PYSIDE-1957] Include Qt5Compat.GraphicalEffects QML files
+ - [PYSIDE-2063] PyEnum: Drop the Embedding of the Enum Module
+ - [PYSIDE-2081] Fix type annotations for static functions of QInputDialog
+ - [PYSIDE-2084] Fix build with OpenGLES
+ - [PYSIDE-2085] Remove mentions to Python 3.6
+ - [PYSIDE-2086] Make wheels compatible with Python 3.11
+
+****************************************************************************
+* Shiboken6 *
+****************************************************************************
+
+ - [PYSIDE-2088] Add a way of specifying types for casting enum values
+ - [PYSIDE-2088] libshiboken: Fix enum value overflow
diff --git a/doc/changelogs/changes-6.4.1 b/doc/changelogs/changes-6.4.1
new file mode 100644
index 000000000..35cb83a1f
--- /dev/null
+++ b/doc/changelogs/changes-6.4.1
@@ -0,0 +1,78 @@
+Qt for Python 6.4.1 is a bug-fix release.
+
+For more details, refer to the online documentation included in this
+distribution. The documentation is also available online:
+
+https://doc.qt.io/qtforpython/
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Qt Bug Tracker:
+
+https://bugreports.qt.io/
+
+Each of these identifiers can be entered in the bug tracker to obtain more
+information about a particular change.
+
+****************************************************************************
+* PySide6 *
+****************************************************************************
+
+ - A context manager for QOpenGLVertexArrayObject.Binder has been added.
+
+ - [PYSIDE-1970] The long missing support for __slots__ was finally added.
+ - [PYSIDE-841] networkx graph viewer, charts lightMarker and selection
+ examples have been added.
+ - [PYSIDE-1106] Documentation builds have been fixed to work with
+ system-installed versions of Qt 6.
+ - [PYSIDE-1603] A bug when passing wrong keyword args to signals has been
+ fixed.
+ - [PYSIDE-1612] The missing entry point for pyside6-qtpy2cpp has been
+ added.
+ - [PYSIDE-1713] A `signatures` attribute has been added to the Signal type in
+ order to increase compatibility with other implementations.
+ - [PYSIDE-1735] Developer documentation about enum features has been added.
+ - [PYSIDE-1735] Some enums have been changed to be IntEnum-based.
+ - [PYSIDE-1844] Build system: It is no longer required to have Qt in PATH
+ (tough recommended).
+ - [PYSIDE-1957] The missing Qt5Compat.GraphicalEffects has been added
+ to the wheel.
+ - [PYSIDE-2074] Build system: Overriding of PYTHON_SITE_PACKAGES
+ has been enabled.
+ - [PYSIDE-2081] Type annotations for the static functions of QInputDialog
+ have been fixed.
+ - [PYSIDE-2084] The build with OpenGLES has been fixed.
+ - [PYSIDE-2087] It is now possible to build QtUiTools without Qt Designer.
+ - [PYSIDE-2089] Crashes when not implementing abstract methods have been
+ fixed.
+ - [PYSIDE-2091] Build system: The check for FORCE_LIMITED_API has been fixed.
+ - [PYSIDE-2091] Build system: The minimum required CMake version has
+ been bumped to CMake 3.18+ (matching Qt).
+ - [PYSIDE-2095] A bug when using signals with new enums on Python 3.11
+ has been fixed.
+ - [PYSIDE-2101] Python 3.10 and higher are not compatible to the __signature__
+ attribute. This has been fixed by a temporary patch
+ until the final removal of that attribute.
+ - [PYSIDE-2106] A bug resulting in duplication of values in QML properties
+ of type QVariantList has been fixed.
+ - [PYSIDE-2121] A deadlock when using
+ QMetaObject.invokeMethod(BlockingQueuedConnection)
+ has been fixed.
+
+****************************************************************************
+* Shiboken6 *
+****************************************************************************
+
+ - [PYSIDE-2099] The option --lean-header to generate forward declarations
+ instead of includes into the module header has been added.
+ This considerably reduces the dependencies but may require
+ additional includes to be specified for injected code.
+ - [PYSIDE-1106] The documentation of signals (including private signals)
+ has been fixed.
+ - [PYSIDE-1106] Documentation now uses py:method directives with markup
+ for abstract methods.
+ - [PYSIDE-1844] Build system: On Windows, shiboken is now executed by a
+ wrapper providing the appropriate PATH containing Qt and
+ libclang, removing the need to set the PATH.
+ - [PYSIDE-2088] A way of specifying types for casting enum values has been
+ added, fixing an overflow occurring for
+ TextOption.IncludeTrailingSpaces.
diff --git a/doc/changelogs/changes-6.4.2 b/doc/changelogs/changes-6.4.2
new file mode 100644
index 000000000..475e1283b
--- /dev/null
+++ b/doc/changelogs/changes-6.4.2
@@ -0,0 +1,47 @@
+Qt for Python 6.4.2 is a bug-fix release.
+
+For more details, refer to the online documentation included in this
+distribution. The documentation is also available online:
+
+https://doc.qt.io/qtforpython/
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Qt Bug Tracker:
+
+https://bugreports.qt.io/
+
+Each of these identifiers can be entered in the bug tracker to obtain more
+information about a particular change.
+
+****************************************************************************
+* PySide6 *
+****************************************************************************
+
+ - [PYSIDE-769] asyncio versions of the async examples have been added.
+ - [PYSIDE-1019] A callback error when using true_property has been fixed.
+ - [PYSIDE-1106] Documentation: The automatic code snippet conversion
+ has been improved.
+ - [PYSIDE-1889] __feature__: A weird case of false metafunction lookup
+ has been fixed.
+ - [PYSIDE-2029] __feature__ switching now works even with recursive
+ imports like in the qasync module. It also has been
+ optimized and simplified in preparation for eventual
+ PyPy support.
+ - [PYSIDE-2042] true_property was fixed to work with inherited properties
+ as well.
+ - [PYSIDE-2128] An issue affecting CMake-only builds has been fixed.
+ - [PYSIDE-2133] The float type overload of QLocale.toCurrencyString()
+ has been fixed.
+ - [PYSIDE-2136] Errors when calling deprecated functions with
+ warning-as-error set have been fixed.
+
+****************************************************************************
+* Shiboken6 *
+****************************************************************************
+
+ - [PYSIDE-74] A warning about nonreachable code in generated rich
+ comparison code has been fixed.
+ - [PYSIDE-1012] Missing g++ includes for g++ 11.3 have been added.
+ - [PYSIDE-1019] Parse the notify specification from Q_PROPERTY
+ - [PYSIDE-1019] Documentation: QObject properties are now documented
+ similar to the C++ documentation.
diff --git a/doc/changelogs/changes-6.4.3 b/doc/changelogs/changes-6.4.3
new file mode 100644
index 000000000..426325b26
--- /dev/null
+++ b/doc/changelogs/changes-6.4.3
@@ -0,0 +1,53 @@
+Qt for Python 6.4.3 is a bug-fix release.
+
+For more details, refer to the online documentation included in this
+distribution. The documentation is also available online:
+
+https://doc.qt.io/qtforpython/
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Qt Bug Tracker:
+
+https://bugreports.qt.io/
+
+Each of these identifiers can be entered in the bug tracker to obtain more
+information about a particular change.
+
+****************************************************************************
+* PySide6 *
+****************************************************************************
+
+ - A requirements file for documentation builds (requirements-doc.txt) has
+ been added.
+ - A workaround has been implemented for Qt version conflicts when installing
+ PySide6 in an Anaconda environment.
+ - [PYSIDE-0079] signals: An old refcounting error has been fixed which was
+ introduced by the PYSIDE-68 fix.
+ - [PYSIDE-1014] Sorting overriding QStandardItem::operator<() has been
+ enabled.
+ - [PYSIDE-1402] QtCore.Property: An old refcounting error has been fixed.
+ - [PYSIDE-1931] A hang in QSqlQueryModel.setQuery() (PostGres with SSH
+ tunnel) has been fixed.
+ - [PYSIDE-2168] QLocale.toString() has been fixed to handle negative values
+ correctly.
+ - [PYSIDE-2169] Fixed a leak in the Python enum "forgiveness mode".
+ - [PYSIDE-2189] feature switching: _mod_uses_pyside has been made safe
+ against binary modules.
+ - [PYSIDE-2197] Signals are now generated into pyi files as attributes.
+ - [PYSIDE-2199] The --binary option of pyside6-rcc has been fixed.
+ - [PYSIDE-2201] Crashes caused by temporary instances of signals have been
+ fixed by introducing a weak reference.
+ - [PYSIDE-2202] pyside6-metaobjectdump: Parse failures caused by call
+ operators in base class specifications have been fixed.
+ - [PYSIDE-2203] pyside6-metaobjectdump: Parse failures caused by
+ complex function decorators have been fixed.
+ - [PYSIDE-2204] The encoding of hte prefix path in the embedded
+ :/qt/etc/qt.conf resource has been fixed to be UTF-8.
+ - [PYSIDE-2222] An exit crash when loading Python custom widget
+ plugins by QUiLoader has been fixed.
+ - [PYSIDE-2229] Fixed an error when building commercial wheels from source.
+ - [PYSIDE-2237] Fields named "from" are now exposed as "from_" to avoid
+ using the reserved word (occurs in
+ "QtGui.QPageRanges.Range.from").
+ - [PYSIDE-2239] Opaque containers now have correct __module__ names.
+
diff --git a/doc/changelogs/changes-6.5.0 b/doc/changelogs/changes-6.5.0
new file mode 100644
index 000000000..b92f1f2fc
--- /dev/null
+++ b/doc/changelogs/changes-6.5.0
@@ -0,0 +1,111 @@
+Qt for Python 6.5.0 is a minor release.
+
+For more details, refer to the online documentation included in this
+distribution. The documentation is also available online:
+
+https://doc.qt.io/qtforpython/
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Qt Bug Tracker:
+
+https://bugreports.qt.io/
+
+Each of these identifiers can be entered in the bug tracker to obtain more
+information about a particular change.
+
+****************************************************************************
+* PySide6 *
+****************************************************************************
+
+ - pyside6-project can now generate simple project templates.
+ - QtSerialBus has been added.
+ - Class QHashSeed has been added.
+ - [PYSIDE-510] The non-standard __signature__ attribute of functions and
+ classes has been removed in favor of get_signature().
+ - [PYSIDE-1019] A callback error when using true_property has been fixed.
+ - [PYSIDE-1713] A `signatures` attribute has been added to the Signal type
+ in order to increase compatibility with other
+ implementations.
+ - [PYSIDE-2029] __feature__ switching now works even with recursive imports
+ like in the qasync module. In addition, a new efficient
+ optimization has been implemented for __feature__ switching.
+ Initial work towards PyPy support for __feature__ switching
+ has been done.
+ - [PYSIDE-2101] Python 3.10 and up have an incompatibility to the
+ __signature__ attribute. This is fixed by a temporary patch
+ until the final removal of that attribute.
+ - [PYSIDE-753] The shared pointer types of Qt 3D have been added.
+ - [PYSIDE-769] asyncio versions of the async examples
+ have been added.
+ - [PYSIDE-841] Examples networkx graph viewer, can bus, modbus client,
+ charts lightMarker and selection, charts selected point
+ configuration, graphgallery, qmlsurfacegallery,
+ map view (QtLocation) and and Qt Quick custom geometry
+ have been added.
+ - [PYSIDE-971] QOpenGLContext.getProcAddress() has been added.
+ - [PYSIDE-1019] libpyside: The function `getMetaDataFromQObject`
+ has been removed.
+ - [PYSIDE-1106] The documentation code snippet conversion has been
+ improved.
+ - [PYSIDE-1295] QObject::sender() has been implemented for non-C++ slots.
+ - [PYSIDE-1345] QSGGeometry.vertexDataAsPoint2D()/setVertexDataAsPoint2D()
+ has been added.
+ - [PYSIDE-1564] Cooperative multiple inheritance is now implemented for all
+ __init__ methods.
+ - [PYSIDE-1603] Signals are now listed in the typing hints.
+ - [PYSIDE-1612] Initial support for Android Deployment has been added.
+ - [PYSIDE-1713] Compatibility of Qt signals has been improved
+ by providing a signatures attribute.
+ - [PYSIDE-1735] Documentation: enum types are now indicated.
+ - [PYSIDE-2079] setuptools are now used instead of distutils.
+ - [PYSIDE-2098] dicts can now be passed as QVariantMap to QML.
+ - [PYSIDE-2136] An error calling deprecated functions with
+ warning-as-error set has been fixed.
+ - [PYSIDE-2141] A crash when deleting QObject instances with connections
+ in threads has been fixed.
+ - [PYSIDE-2155] CMake UNITY_BUILD (jumbo) builds are now supported, speeding
+ up building. Pass --unity to setup.py.
+ - [PYSIDE-2160] The formatting of delayed errors in Python 3.11
+ has been improved.
+ - [PYSIDE-2221] First changes for NoGIL support have been added.
+ - [PYSIDE-2206] Some examples have been updated.
+ - [PYSIDE-2230] First changes for Python 3.12 have been added.
+ - [PYSIDE-2234] QRunnable.create() has been added.
+ - [PYSIDE-2236] QMetaMethod.fromSignal() has been added.
+ - [PYSIDE-2247] Examples are not included in the wheels any more and the
+ setup.py option --no-example was removed. Examples can now
+ be downloaded as .zip files from the documentation.
+ - [PYSIDE-2251] Qt Designer Python plugins now work with non-
+ activated virtual environments.
+ - [PYSIDE-2259] QtTextToSpeech has been added.
+ - [PYSIDE-2252] QAbstractTextDocumentLayout::PaintContext has been added.
+ - [PYSIDE-2169] A leak in Enum forgiveness mode has been fixed.
+ - [PYSIDE-2260] A QML deployment issue with Nuitka has been fixed.
+
+****************************************************************************
+* Shiboken6 *
+****************************************************************************
+
+ - shiboken6 now generates new calls to the new functions PyObject_Vectorcall()
+ or PyObject_CallNoArgs() for overridden virtual methods for newer Python
+ versions (not for Limited API).
+ - shiboken6 can now generate exclusions for classes based on preprocessor
+ conditions, for example by the Qt configure system.
+ - [PYSIDE-454] It is now possible to specify names and namespaces for smart
+ pointer instantiations.
+ - [PYSIDE-1019] Documentation for Qt properties is now generated.
+ - [PYSIDE-1106] Documentation for Qt signals is now generated.
+ - [PYSIDE-1106] shiboken6/Documentation: Use the py:method directives
+ - [PYSIDE-2088] An overflow of 64bit enumerations has been fixed.
+ - [PYSIDE-2099] An option --lean-header to generate forward declarations
+ instead of includes into the module header has been added.
+ This considerably reduces the dependencies but may require
+ additional includes to be specified for injected code.
+ - [PYSIDE-2133] The sorting of overloads for integer/float types has been
+ improved to avoid overflows.
+ - [PYSIDE-2256] The code generator no longer generates goto's.
+ - [PYSIDE-2174] A typesystem XML element for opaque containers has been
+ added, removing the need repeat the container element.
+ - [PYSIDE-2174] Support for std::array (C++ 11) and std::span has been added.
+ - [PYSIDE-2255] Overriding abstract private virtual methods is now possible.
+ - [PYSIDE-2264] A PyPy problem with version 7.3.10 and up was fixed.
diff --git a/doc/changelogs/changes-6.5.1 b/doc/changelogs/changes-6.5.1
new file mode 100644
index 000000000..cffe65dea
--- /dev/null
+++ b/doc/changelogs/changes-6.5.1
@@ -0,0 +1,63 @@
+Qt for Python 6.5.1 is a bug-fix release.
+
+For more details, refer to the online documentation included in this
+distribution. The documentation is also available online:
+
+https://doc.qt.io/qtforpython/
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Qt Bug Tracker:
+
+https://bugreports.qt.io/
+
+Each of these identifiers can be entered in the bug tracker to obtain more
+information about a particular change.
+
+****************************************************************************
+* PySide6 *
+****************************************************************************
+
+ - pyside6-qmlcachegen has been added.
+ - The qmllint target of pyside6-project has been fixed to work on Windows.
+ - [PYSIDE-1106] The example documentation has been improved.
+ - [PYSIDE-2206] Many examples and tutorials have been revamped.
+ - [PYSIDE-2278] Type hints: Checks for None with pyright have been fixed.
+ - [PYSIDE-2283] Qt platform dependencies have been linked to the
+ documentation.
+ - [PYSIDE-2284] Type hints: The missing NoneType import has been added.
+ - [PYSIDE-2285] Type hints for return values modified to Tuple[] have
+ been added.
+ - [PYSIDE-2289] opengl32sw.dll is now again shipped.
+ - [PYSIDE-2293] The deployment tool has been fixed to keep structure of QML
+ files.
+ - [PYSIDE-2294] A regression bug in handling multiple inheritance has been
+ fixed.
+ - [PYSIDE-2298] QTimeZone::Initialization has been added.
+ - [PYSIDE-2299] A leak connecting signals to anonymous functions has been
+ fixed.
+ - [PYSIDE-2300] QSqlQueryModel::query() has been re-added.
+ - [PYSIDE-2302] A bug blocking the UI when loading images from a thread has
+ been fixed.
+ - [PYSIDE-2310] The delayed reporting of exceptions in reimplemented
+ - [PYSIDE-2321] virtual functions introduced in 6.4.3 has been reverted
+ to the original state.
+ - [PYSIDE-2318] Type hints: Signatures for QDBusAbstractInterfaceBase
+ functions have been fixed.
+ - [PYSIDE-2325] Missing OpenGL type system files have been added.
+ - [PYSIDE-2328] A crash when connecting to temporary signal sources
+ has been fixed.
+ - [PYSIDE-2329] Signals with parameters can now be connected by passing
+ keyword arguments to constructor.
+ - [PYSIDE-2334] Some missing libraries (QtPdfQuick/QtQuickEffects)
+ have been added.
+ - [QTBUG-112708] Building with QT_FEATURE_opengles2 has been fixed.
+
+****************************************************************************
+* Shiboken6 *
+****************************************************************************
+
+ - [PYSIDE-2313] numpy support has been extended to handle short/long long
+ integer types.
+ - [PYSIDE-1106] The sample binding example documentation has been improved.
+ - [PYSIDE-2288] Clang 16 is now supported.
+ - [PYSIDE-2316] Smart pointer signatures are now correctly registered.
diff --git a/doc/changelogs/changes-6.5.2 b/doc/changelogs/changes-6.5.2
new file mode 100644
index 000000000..2da156069
--- /dev/null
+++ b/doc/changelogs/changes-6.5.2
@@ -0,0 +1,48 @@
+Qt for Python 6.5.2 is a bug-fix release.
+
+For more details, refer to the online documentation included in this
+distribution. The documentation is also available online:
+
+https://doc.qt.io/qtforpython/
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Qt Bug Tracker:
+
+https://bugreports.qt.io/
+
+Each of these identifiers can be entered in the bug tracker to obtain more
+information about a particular change.
+
+****************************************************************************
+* PySide6 *
+****************************************************************************
+
+ - [PYSIDE-2184] .pyi files are now installed by CMake.
+ - [PYSIDE-2206] The QtStateMachine moveblocks example has been added.
+ - [PYSIDE-2206] The QtLocation mapviewer example has been revamped.
+ - [PYSIDE-2331] Type hints of several functions taking a str have been fixed.
+ - [PYSIDE-2339] Enumeration types are now kept when passed through the
+ QVariant APIs of QAbstractItemModel, and a conversion
+ to int takes place when required (Qt.CheckState and similar).
+ - [PYSIDE-2340] A crash when using QScxmlStateMachine::connectToEvent()
+ has been fixed.
+ - [PYSIDE-2347] Output of QObject slots has been added to the
+ metaobjectdump.py tool as an input of qmllint.
+ - [PYSIDE-2364] The type hint for QQmlExpression.evaluate() has been fixed.
+ - [PYSIDE-2299] A memory leak connecting free methods/lambdas has been
+ - [PYSIDE-2371] Fixed regression related to memory leak when connecting
+ signal to local function.
+ - [PYSIDE-2381] Fixed issue qith QSetting list of strings and value()
+ - [PYSIDE-2384] Fixed QWizardPage.registerField signature
+
+****************************************************************************
+* Shiboken6 *
+****************************************************************************
+
+ - [PYSIDE-1735] The detection of signedness for enums with typedefs
+ as underlying types has been fixed.
+ - [PYSIDE-2335] The raising of unraisable exceptions from virtual methods
+ overwritten in Python has been implemented.
+ They are now handled by a handler on the stack if possible
+ or otherwise printed.
+ - [PYSIDE-1669] Fixed option --no-implicit-conversions
diff --git a/doc/changelogs/changes-6.5.3 b/doc/changelogs/changes-6.5.3
new file mode 100644
index 000000000..20ce49dc7
--- /dev/null
+++ b/doc/changelogs/changes-6.5.3
@@ -0,0 +1,65 @@
+Qt for Python 6.5.3 is a bug-fix release.
+
+For more details, refer to the online documentation included in this
+distribution. The documentation is also available online:
+
+https://doc.qt.io/qtforpython/
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Qt Bug Tracker:
+
+https://bugreports.qt.io/
+
+Each of these identifiers can be entered in the bug tracker to obtain more
+information about a particular change.
+
+****************************************************************************
+* PySide6 *
+****************************************************************************
+
+ - [PYSIDE-1884] The __doc__ attribute is now used for signatures when
+ provided.
+ - [PYSIDE-2235] Type hints: setParent() now accepts an Optional object.
+ - [PYSIDE-2272] The signatures of the qmlRegister() functions have been
+ fixed.
+ - [PYSIDE-2387] The signature of qVersion() has been fixed.
+ - [PYSIDE-2394] A deprecation warning for QSqlQueryModel.setQuery(QSqlQuery)
+ has been removed.
+ - [PYSIDE-2395] The signatures for QClipboard.setPixmap() and
+ QClipboard.setImage() have been fixed.
+ - [PYSIDE-2402] The modules QtDBus and QtHttpServer have been enabled
+ on Windows.
+ - [PYSIDE-2411] The documentation for QPainter.drawText() has been fixed.
+ - [PYSIDE-2412] A bug removing rows in the Tetrix example has been fixed.
+ - [PYSIDE-2415] Support for QQmlComponent in Property has been added.
+ - [PYSIDE-2417] Overflows when passing int to functions taking floats
+ have been fixed.
+ - [PYSIDE-2418] Connections to base class slots incorrectly falling back to
+ the global receiver have been fixed.
+ - [PYSIDE-2425] Theme switching of the chart theme example has been fixed.
+ - [PYSIDE-2368] The signature of PySide6.QtCore.Signal has been fixed.
+ - [PYSIDE-2393] A recursion occurring with pytest-forked has been fixed.
+ - [PYSIDE-2419] QLocale::system() on macOS has been fixed.
+ - [PYSIDE-2422] A crash occurring when passing None to
+ QGridLayout.removeItem() has been turned into a warning.
+ - [PYSIDE-2433] Crashes related to enums in QML singletons have been fixed.
+ - [PYSIDE-2444] Incorrect signatures in class QState have been fixed.
+ - [PYSIDE-2454] Default parameters for containers without indirections
+ have been fixed.
+ - [PYSIDE-2461] Build system: The "modules" is now correctly resolved
+ relative to archdata.
+
+****************************************************************************
+* Shiboken6 *
+****************************************************************************
+
+ - The generator progress messages have been changed to avoid losing warnings
+ with ninja.
+ - [PYSIDE-2174] The include of <span> is no longer generated when using
+ C++ 17.
+ - [PYSIDE-2394] It is now possible to override a C++ deprecation attribute.
+ - [PYSIDE-2411] Modified return types of void functions are now properly
+ documented.
+ - [PYSIDE-2446] It is now possible to use remove-modifications for numerical
+ operators.
+ - [PYSIDE-2465] A test failure occurring with Python 3.11.5 has been fixed.
diff --git a/doc/changelogs/changes-6.6.0 b/doc/changelogs/changes-6.6.0
new file mode 100644
index 000000000..62486661e
--- /dev/null
+++ b/doc/changelogs/changes-6.6.0
@@ -0,0 +1,88 @@
+Qt for Python 6.6.0 is a minor release.
+
+For more details, refer to the online documentation included in this
+distribution. The documentation is also available online:
+
+https://doc.qt.io/qtforpython/
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Qt Bug Tracker:
+
+https://bugreports.qt.io/
+
+Each of these identifiers can be entered in the bug tracker to obtain more
+information about a particular change.
+
+****************************************************************************
+* PySide6 *
+****************************************************************************
+
+ - The module QtGraphs has been added.
+ - [PYSIDE-769] A custom asyncio event loop based on Qt has been implemented.
+ - [PYSIDE-1106] Documentation: The translation of code snippets from C++ to
+ Python has been improved.
+ - [PYSIDE-1106] Documentation: The example gallery has been improved.
+ - [PYSIDE-1106] Documentation: Markdown is now also supported for
+ example documentation.
+ - [PYSIDE-1612] Android: Unity build is now enabled by default.
+ Qt Permissions API has been added for Android.
+ Auto download of Android NDK and SDK now possible with Android
+ wheel cross-compilation tool.
+ Full support for Qt modules now available on Android.
+ .js files are now supported when QML/Quick application
+ deployed to Android.
+ - [PYSIDE-1735] The old enumerations have been removed.
+ - [PYSIDE-1884] The __doc__ attribute is now used for signatures when
+ provided.
+ - [PYSIDE-2206] Example improvements: removed macpasteboardmime, tabbed
+ browser and old statemachine examples;
+ updated camera, chart theme, DOM bookmarks, Bluetooth
+ heartrate game, Bluetooth lowenergyscanner, markdowneditor,
+ mapviewer, mdi, QML reference examples, quicknanobrowser
+ and scriptableapplication;
+ added document viewer, filesystemexplorer,
+ simplebrowser, statemachine moveblocks, screencapture,
+ Qt Graphs widgetgallery and widgetsnanobrowser.
+ - [PYSIDE-2226] QLocale.toLong() has been fixed to properly return
+ a tuple (int, bool) rather than only int.
+ - [PYSIDE-2235] Type hints: QObject.setParent() now accepts an Optional
+ object.
+ - [PYSIDE-2272] Type hints: The signatures of the qmlRegister() functions
+ have been fixed.
+ - [PYSIDE-2384] QWizardPage::registerField() taking a Signal instance
+ has been added.
+ - [PYSIDE-2394] A deprecation warning about
+ QSqlQueryModel::setQuery(const QSqlQuery &) originating
+ from Qt / C++ has been removed.
+ - [PYSIDE-2395] The signatures of QClipboard.setPixmap() and setImage()
+ have been fixed.
+ - [PYSIDE-2402] Modules QtDBus and QtHttpServer have been enabled on Windows.
+ - [PYSIDE-2415] QQmlComponent is now supported as a Property.
+ - [PYSIDE-2417] Overflows when passing int to functions taking floats
+ have been fixed.
+ - [PYSIDE-2442] QDataStream.writeRawData() now also takes bytes.
+ - [PYSIDE-2471] The pyside6-project now also recognizes .pyw files as
+ Python files on Windows.
+ - [PYSIDE-2473] Feature switching has been fixed to work with
+ unittest.mock.patch.dict.
+
+ ***************************************************************************
+* Shiboken6 *
+****************************************************************************
+
+ - Typesystem syntax: The attributes "allow-thread", "exception-handling"
+ and "snake-case" can now be specified on <declare-function> and
+ <function>.
+- The cast operators of libshiboken's class AutoDecRef have been
+ deprecated and the class is now movable.
+ - [PYSIDE-1790] Experimental support for rvalue references has been added.
+ - [PYSIDE-2230] Initial support for Python 3.12 has been added.
+ - [PYSIDE-2316] Correctly register smartpointer signatures
+ - [PYSIDE-2394] It is now possible to override a C++ deprecation attribute
+ in the typesystem.
+ - [PYSIDE-2446] More special functions of the number protocol have been
+ added, for example __int__, __float__ using operator int(),
+ operator double() as well as and __abs__ and __pow__.
+ - [PYSIDE-2462] The __repr__ function of smart pointers has been improved
+ to show information on the pointee. Similarly, the dir()
+ of smart pointers now includes the entries of the pointee.
diff --git a/doc/changelogs/changes-6.6.1 b/doc/changelogs/changes-6.6.1
new file mode 100644
index 000000000..64058de7a
--- /dev/null
+++ b/doc/changelogs/changes-6.6.1
@@ -0,0 +1,53 @@
+Qt for Python 6.6.1 is a bug-fix release.
+
+For more details, refer to the online documentation included in this
+distribution. The documentation is also available online:
+
+https://doc.qt.io/qtforpython/
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Qt Bug Tracker:
+
+https://bugreports.qt.io/
+
+Each of these identifiers can be entered in the bug tracker to obtain more
+information about a particular change.
+
+****************************************************************************
+* PySide6 *
+****************************************************************************
+
+ - PySide6 examples are now also available as a separate wheel
+ (PySide6_Examples).
+ - [PYSIDE-748] An optional parameter "tag" has been added to @Slot, allowing
+ to set QMetaMethod.tag().
+ - [PYSIDE-769] QtAsyncio: Support for ThreadPoolExecutor has been added.
+ - [PYSIDE-841] QtQuick3D procedural texture and QRhi window examples have
+ been added.
+ - [PYSIDE-2230] Support for Python 3.12 has been added.
+ - [PYSIDE-2367] Threading deadlocks of QObject::(dis)connect() with
+ (dis)connectNotify() have been fixed.
+ - [PYSIDE-2485] A QLocale-related crash on macOS has been fixed.
+ - [PYSIDE-2487] Error messages around signal/slot connections have been improved.
+ - [PYSIDE-2494] The install location of QtAsyncio for CMake builds has been fixed.
+ - [PYSIDE-2500] QMetaMethod.invoke() has been added. The invocation functions
+ of QMetaObject now accept up to 10 arguments.
+ - [PYSIDE-2509] The signature of SignalInstance.connect() has been fixed.
+ - [PYSIDE-2510] An error is now set when instantiating a Signal on a non-QObject.
+ - [PYSIDE-2514] The type hints of QAbstractItemView.setModel()/QGraphicsView.setScene()
+ now accept None.
+ - [QTBUG-113331] QRhi and related classes have been added.
+
+****************************************************************************
+* Shiboken6 *
+****************************************************************************
+
+ - [PYSIDE-1958] Cross building support: Additional debug statements regarding
+ include parsing (depending on verboseness) have been added.
+ shiboken can now also process Qt headers inside system include
+ directories. Extra generator flags can now be passed via a CMake
+ variable.
+ - [PYSIDE-2505] The error handling in API extractor command line arguments parsing
+ has been improved.
+ - [PYSIDE-2506] Generated code doing multiple inheritance offset calculation
+ has been streamlined.
diff --git a/doc/changelogs/changes-6.6.2 b/doc/changelogs/changes-6.6.2
new file mode 100644
index 000000000..41ee1f164
--- /dev/null
+++ b/doc/changelogs/changes-6.6.2
@@ -0,0 +1,66 @@
+Qt for Python 6.6.2 is a bug-fix release.
+
+For more details, refer to the online documentation included in this
+distribution. The documentation is also available online:
+
+https://doc.qt.io/qtforpython/
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Qt Bug Tracker:
+
+https://bugreports.qt.io/
+
+Each of these identifiers can be entered in the bug tracker to obtain more
+information about a particular change.
+
+****************************************************************************
+* PySide6 *
+****************************************************************************
+
+ - [PYSIDE-535] PyPySide has been updated to Python 3.10
+ - [PYSIDE-769] QtAsyncio: call_soon_threadsafe() and QtAsyncio.run() (with
+ [PYSIDE-1112] keep_running and quit_qapp arguments) have been implemented.
+ [PYSIDE-2561] A bug with Python 3.12 has been fixed. Documentation has
+ [PYSIDE-2575] been added. Keyboard interrupts are now caught. Cancelling
+ waiting tasks has been fixed. Tasks are now awaitable.
+ - [PYSIDE-1106] Documentation: The generation process has been optimized
+ and warnings have been reduced.
+ - [PYSIDE-1586] Qt Charts: class QColorAxis has been added.
+ - [PYSIDE-1612] Android Deployment: The QtQuick dependency is now added
+ when present.
+ - [PYSIDE-1612] Deployment problems when using pyenv have been fixed.
+ - [PYSIDE-1612] Nuitka has been upgraded to 1.8.0
+ - [PYSIDE-1612] Deployment: An icon for the application has been added.
+ - [PYSIDE-1612] A separate requirements.txt for Android deployment has been
+ added.
+ - [PYSIDE-1612] Android Deployment: `buildozer` is now installed with the
+ --init cli argument
+ - [PYSIDE-1931] Further hangs in QSql(Relational)TableModel.select() (PostGres
+ with SSH tunnel) have been fixed.
+ - [PYSIDE-2206] Examples quick3d/proceduraltexture, sql/books have been
+ updated. The contactslist has been added. Examples supported
+ on Android are tagged as `Android`.
+ - [PYSIDE-2439] FindPython is now used instead of the deprecated
+ FindPythonInterp and FindPythonLibs CMake modules.
+ - [PYSIDE-2539] Documentation: The enum name is now generated for flags.
+ - [PYSIDE-2544] A crash accessing QDBusVariant.variant() has been fixed.
+ - [PYSIDE-2547] A hang in QDBusConnection.connect() has been fixed.
+ - [PYSIDE-2558] Documentation: the differences between commercial and lts
+ releases have been clarified.
+ - [PYSIDE-2568] A crash of pyside6-designer with pyenv on Unix has been
+ fixed.
+ - [PYSIDE-2574] Documentation: A favicon for browser tabs has been added.
+
+****************************************************************************
+* Shiboken6 *
+****************************************************************************
+
+ - [PYSIDE-1106] Documentation: An option to disable the inheritance diagram
+ has been added.
+ - [PYSIDE-1735] An error in the generated code when all enum values are
+ deprecated has been fixed.
+ - [PYSIDE-2404] pyi file generation can now be disabled for debugging.
+ - [PYSIDE-2530] yocto cross builds have been fixed to find
+ shiboken_wrapper.sh.
+ - [PYSIDE-2577] Documentation/doxygen: A bug querying const functions
+ has been fixed.
diff --git a/doc/changelogs/changes-6.6.3 b/doc/changelogs/changes-6.6.3
new file mode 100644
index 000000000..88756492f
--- /dev/null
+++ b/doc/changelogs/changes-6.6.3
@@ -0,0 +1,60 @@
+Qt for Python 6.6.3 is a bug-fix release.
+
+For more details, refer to the online documentation included in this
+distribution. The documentation is also available online:
+
+https://doc.qt.io/qtforpython/
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Qt Bug Tracker:
+
+https://bugreports.qt.io/
+
+Each of these identifiers can be entered in the bug tracker to obtain more
+information about a particular change.
+
+****************************************************************************
+* PySide6 *
+****************************************************************************
+
+ - pyside6-project now also builds translation (.qm) files.
+ - [PYSIDE-769] QtAsyncio: Fix a missing attribute error on Windows. Fix
+ - [PYSIDE-2641] QtAsyncio.run() not returning the result of a coroutine. It
+ is now possible to disable the signal handler for SIGINT by
+ passing a parameter to run(). The loop policy is reset after
+ run() finishes.
+ - [PYSIDE-1112] Documentation: The list of tools has been updated.
+ - [PYSIDE-1112] Documentation: A page on the pyside6-project tool
+ has been added.
+ - [PYSIDE-1955] Type hints: Add support for classmethods
+ - [PYSIDE-2206] An exit crash of the audiooutput example has been fixed.
+ - [PYSIDE-2263] Type hints: Support for class attributes has been added.
+ - [PYSIDE-2468] Documentation on the PySide6 Permission API has been added.
+ - [PYSIDE-2590] Some fixes have been made be able to cope with namespaced Qt
+ builds.
+ - [PYSIDE-2599] The conversion of QVariant<->QMatrix<n>x<m> has been fixed.
+ - [PYSIDE-2603] Documentation: A broken link to the widget styling tutorial
+ has been fixed.
+ - [PYSIDE-2610] Inheritance from QAbstractTextureImage/
+ QTextureImageDataGenerator has been fixed.
+ - [PYSIDE-2612] Plain CMake builds with Limited API on Windows have been
+ fixed.
+ - [PYSIDE-2613] Connecting to signals with QFlags<> arguments has been fixed.
+ - [PYSIDE-2627] A regression breaking calling Signal.connect() with
+ QObject-derived callables has been fixed.
+ - [PYSIDE-2628] A crash using struct.unpack() on a QByteArray with
+ Limited API has been fixed.
+ - [PYSIDE-2638] A crash when adding None to a QLayout has been fixed.
+ - [PYSIDE-2639] macOS: A segmentation fault in QLocale.system() has been
+ fixed.
+ - [PYSIDE-2640] pyside6-qml now uses a QQuickView when the rootobject is a
+ QQuickItem.
+
+****************************************************************************
+* Shiboken6 *
+****************************************************************************
+
+ - [PYSIDE-2505] Command line option parsing has been improved to skip empty
+ tokens when in include paths.
+ - [PYSIDE-2619] An ODR violation in shibobken code has been fixed, enabling
+ LTO.
diff --git a/doc/changelogs/changes-6.7.0 b/doc/changelogs/changes-6.7.0
new file mode 100644
index 000000000..cf5157166
--- /dev/null
+++ b/doc/changelogs/changes-6.7.0
@@ -0,0 +1,127 @@
+Qt for Python 6.7.0 is a minor release.
+
+For more details, refer to the online documentation included in this
+distribution. The documentation is also available online:
+
+https://doc.qt.io/qtforpython/
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Qt Bug Tracker:
+
+https://bugreports.qt.io/
+
+Each of these identifiers can be entered in the bug tracker to obtain more
+information about a particular change.
+
+****************************************************************************
+* PySide6 *
+****************************************************************************
+
+ - setup.py now uses CMake Unity Build Mode by default.
+ - The namespace QAudio has been renamed to QtAudio in Qt 6.7. An alias
+ has been created, but it may not work in all cases.
+ - pyside6-project now has an lupdate mode updating translation files (.ts)
+ from the sources.
+ - Python code has been updated to be free of flake8 warnings using
+ a custom configuration.
+ - For deployment, the supported version of Nuitka has been raised to 2.1.0.
+ - singleShot timers with a timeout of 0 now call the C++ function (which
+ directly calls QMetaObject::invokeMethod) instead of manually creating and
+ starting a timer object, slightly improving performance.
+ - [PYSIDE-769] QtAsyncio: Fix a missing attribute error on Windows. Fix
+ - [PYSIDE-2641] QtAsyncio.run() not returning the result of a coroutine. It
+ is now possible to disable the signal handler for SIGINT by
+ passing a parameter to run(). The loop policy is reset after
+ run() finishes.
+ - [PYSIDE-838] Functions qCompress/qUncompress() taking a PyBuffer/len
+ arguments have been fixed.
+ - [PYSIDE-1106] Documentation: Decorators, global functions and enumerations
+ are now documented add indexed from the module page. The class
+ documentation now uses more sphinx domain directives.
+ Pages for all tools have been added. The order of the examples
+ list has been changed to show relevant examples first.
+ - [PYSIDE-1275] QObject.disconnect() now returns False with a warning instead
+ of raising an exception for non-fatal cases.
+ - [PYSIDE-1612] Deployment: Issues when using pyenv have been fixed. The
+ finding of dependent modules has been improved. On Windows,
+ this now requires the dumpbin tool, which is added to the path
+ by calling the vcvarsall.bat script of Microsoft Visual
+ Studio.
+ - [PYSIDE-1612] Android Deployment: The NDK version in the tool has been
+ updated. Python has been updated to 3.11. CMake version 3.23
+ is now required. The wheels are no longer built with
+ --limited-api. The generated pysidedeploy.spec has an explicit
+ group called `android` which stores the wheels and plugins.
+ - [PYSIDE-1906] Hash value calculation has been optimized.
+ - [PYSIDE-2206] The colorpaletteclient demo as well as the hellographs and
+ simplerhiwidget examples have been added.
+ - [PYSIDE-2215] Intersphinx support has been improved.
+ - [PYSIDE-2280] A type for os.PathLike type hints has been added.
+ - [PYSIDE-2404] Application startup time has been significantly decreased
+ by creating the types on demand. The importing of numpy
+ has also been deferred since it caused quite some delay.
+ - [PYSIDE-2432] A static create() function for decorated QML singletons
+ has been added.
+ - [PYSIDE-2484] The QML type registration code has been ported to use
+ RegisterTypeAndRevisions.
+ - [PYSIDE-2535] Obtaining DBUS properties from QDBusInterface has been fixed.
+ As a consequence though, it is no longer possible to derive a
+ Python class with signals/slots from QDBusInterface.
+ - [PYSIDE-2504] Documentation: Option 'build_rst_docs' has been deprecated in
+ favor of 'build_base_docs'.
+ - [PYSIDE-2524] It is now possible to connect signals to slots/lambdas with
+ more arguments provided they have default parameters.
+ - [PYSIDE-2524] The signal connection code has been optimized.
+ - [PYSIDE-2543] QtQuickTest has been added.
+ - [PYSIDE-2576] Documentation: The extendedexplorer tutorial has been improved.
+ - [PYSIDE-2590] Some fixes have been made be able to cope with namespaced Qt
+ builds.
+ - [PYSIDE-2610] The QTextureImageData methods returning an enumeration of
+ QOpenGLTexture have been added.
+ - [PYSIDE-2605] An error about the C++ object being deleted when calling
+ QWidget.style() in an embedded application has been fixed.
+ - [PYSIDE-2468] Deployment: Support for the Qt permission API has been added.
+ macOS bundle applications are now created.
+ - [PYSIDE-2597] Desktop Deployment: The the plugins included have been
+ optimized.
+ - [PYSIDE-2633] C++ typedefs of container instantiations are now
+ registered in Python under their name, making possible
+ to decorate slots with those names (for example,
+ "QRemoteObjectSourceLocation").
+ - [PYSIDE-2639] Segmentation fault with QLocale.system() has been fixed.
+ - [PYSIDE-2652] A bug when passing values of unsigned long long type
+ exceeding the long long maximum value to float
+ parameters has been fixed.
+ - [PYSIDE-2663] A crash in QtWebEngine browsing https://outlook.com has been
+ fixed.
+ - [PYSIDE-2668] A bug when comparing QOperatingSystemVersion::OSType
+ has been fixed.
+ - [QTBUG-119785] The Filesystemexplorer-example has been updated.
+
+****************************************************************************
+* Shiboken6 *
+****************************************************************************
+
+ - [PYSIDE-31] Shiboken.wrapInstance() now returns existing instances
+ (preserving ids).
+ - [PYSIDE-560] libshiboken/Limited API: No longer needed PyTypeObject slots
+ have been disabled in the PyTypeObject helper struct.
+ - [PYSIDE-1106] A typesystem attribute providing a hint to a documentation
+ file has been added to function/enum type entries
+ (for globals).
+ - [PYSIDE-1106] Documentation can now be injected from separate .rst files.
+ - [PYSIDE-1106] Documentation injected into classes with "append" will now
+ be appended to the class description instead of being written
+ at the end of the page.
+ - [PYSIDE-1106] Documentation: It is now possible to inject documentation
+ for parameters of added functions.
+ - [PYSIDE-2230] Python 3.12: Hidden Type Extensions according to PEP 697
+ are now used instead of shadow dictionaries.
+ - [PYSIDE-2404] The generated type index constants are no longer in
+ uppercase. Uppercase is retained until deprecation in
+ PySide7.
+ - [PYSIDE-2447] A typesystem attribute to generate submodules has been added.
+ - [PYSIDE-2535] Generating the Qt meta object functions handling the PySide6
+ signals can now be disabled by a typesystem attribute. This
+ is useful for classes using dynamic meta objects, for
+ example QDBusInterface.
diff --git a/examples/3d/simple3d/simple3d.py b/examples/3d/simple3d/simple3d.py
index 3b199c1b3..eef0dca5d 100644
--- a/examples/3d/simple3d/simple3d.py
+++ b/examples/3d/simple3d/simple3d.py
@@ -1,43 +1,5 @@
-
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the qt3d/simple-cpp example from Qt v5.x"""
diff --git a/examples/async/eratosthenes/doc/eratosthenes.rst b/examples/async/eratosthenes/doc/eratosthenes.rst
new file mode 100644
index 000000000..56e9f391b
--- /dev/null
+++ b/examples/async/eratosthenes/doc/eratosthenes.rst
@@ -0,0 +1,39 @@
+Async "Eratosthenes" Example
+============================
+
+The Python language provides keywords for asynchronous operations, i.e.,
+"async" to define coroutines or "await" to schedule asynchronous calls in the
+event loop (see `PEP 492 <https://peps.python.org/pep-0492/>`_). It is up to
+packages to implement an event loop, support for these keywords, and more.
+
+The best-known package for this is `asyncio`. asyncio offers an API that allows
+for the asyncio event loop to be replaced by a custom implementation. Such an
+implementation is available with the `QtAsyncio` module. It is based on Qt and
+uses Qt's event loop in the backend.
+
+`trio` is another popular package that offers a dedicated `low-level API
+<https://trio.readthedocs.io/en/stable/reference-lowlevel.html>`_ for more
+complex use cases. Specifically, there exists a function `start_guest_run` that
+enables running the Trio event loop as a "guest" inside another event loop -
+Qt's in our case, standing in contrast to asyncio's approach.
+
+Based on this functionality, two examples for async usage with Qt have been
+implemented: `eratosthenes` and `minimal`:
+
+.. image:: eratosthenes.svg
+ :alt: Async example: Eratosthenes
+ :width: 400
+
+* `eratosthenes` is a more extensive example that visualizes the Sieve of
+ Eratosthenes algorithm. This algorithm per se is not one that is particularly
+ suitable for asynchronous operations as it's not I/O-heavy, but synchronizing
+ coroutines to a configurable tick allows for a good visualization.
+* `minimal` is a minimal example featuring a button that triggers an
+ asynchronous coroutine with a sleep. It is designed to highlight which
+ boilerplate code is essential for an async program with Qt and offers a
+ starting point for more complex programs.
+
+While `eratosthenes` offloads the asynchronous logic that will run in
+trio's/asyncio's event loop into a separate class, `minimal` demonstrates that
+async functions can be integrated into any class, including subclasses of Qt
+classes.
diff --git a/examples/async/eratosthenes/doc/eratosthenes.svg b/examples/async/eratosthenes/doc/eratosthenes.svg
new file mode 100644
index 000000000..eaf53da50
--- /dev/null
+++ b/examples/async/eratosthenes/doc/eratosthenes.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="1210.666" height="886.666" viewBox="0 0 908 665" baseProfile="tiny" xmlns:v="https://vecta.io/nano"><style><![CDATA[.B{stroke:none}.C{font-family:.AppleSystemUIFont}.D{font-size:13px}.E{font-weight:700}.F{fill:#000}.G{fill:#548f7c}.H{fill:#bab040}.I{fill:#51a660}.J{fill:#a193b6}.K{fill:#8a4a8f}.L{fill:#45b2a7}.M{fill:#916bbd}.N{fill:#7dad6b}.O{fill:#628f47}.P{fill:#6474c0}.Q{fill:#b182b0}.R{fill:#a94257}.S{fill:#a1794d}.T{fill:#bbac54}.U{fill:#6e4344}.V{fill:#a38b9d}.W{fill:#6c4268}.X{fill:#974c66}.Y{fill:#8163bb}.Z{fill:#bda991}.a{fill:#599c9d}.b{fill:#7ec05e}.c{fill:#b26b51}.d{fill:#434da9}.e{fill:#a46a69}.f{fill:#6a6467}.g{fill:#954ca5}.h{fill:#6f4965}.i{fill:#7a99b1}.j{fill:#786344}.k{fill:#898683}.l{fill:#ac989d}.m{fill:#4f5a7b}.n{fill:#b28c5f}.o{fill:#639747}.p{fill:#aba64a}.q{fill:#916c5e}.r{fill:#b0929e}.s{fill:#909864}.t{fill:#a14faf}]]></style><g fill="none" stroke="#000" fill-rule="evenodd" class="C B"><path d="M0 0h908v665H0z" fill="#ececec" class="D"/><g font-size="14" class="F"><text xml:space="preserve" y="25.781" x="192">🥳</text><text xml:space="preserve" x="214.016" y="25.781"> Congratulations! You found all the prime numbers and solved mathematics. </text><text xml:space="preserve" x="693.031" y="25.781">🥳</text></g><text xml:space="preserve" y="61.906" x="34" class="D F">1</text><text xml:space="preserve" y="61.906" x="67" class="D F">2</text><text xml:space="preserve" y="61.906" x="101" class="D F">3</text><text xml:space="preserve" y="61.906" x="136" class="D E l">4</text><text xml:space="preserve" y="61.906" x="171" class="D F">5</text><text xml:space="preserve" y="61.906" x="206" class="D E U">6</text><text xml:space="preserve" y="61.906" x="241" class="D F">7</text><text xml:space="preserve" y="61.906" x="275" class="D E l">8</text><text xml:space="preserve" y="61.906" x="310" class="D E U">9</text><text xml:space="preserve" y="61.906" x="341" class="D E M">10</text><text xml:space="preserve" y="61.906" x="378" class="D F">11</text><text xml:space="preserve" y="61.906" x="411" class="D E U">12</text><text xml:space="preserve" y="61.906" x="446" class="D F">13</text><text xml:space="preserve" y="61.906" x="480" class="D E G">14</text><text xml:space="preserve" y="61.906" x="516" class="D E M">15</text><text xml:space="preserve" y="61.906" x="550" class="D E l">16</text><text xml:space="preserve" y="61.906" x="586" class="D F">17</text><text xml:space="preserve" y="61.906" x="619" class="D E U">18</text><text xml:space="preserve" y="61.906" x="655" class="D F">19</text><text xml:space="preserve" y="61.906" x="689" class="D E M">20</text><text xml:space="preserve" y="61.906" x="725" class="D E G">21</text><text xml:space="preserve" y="61.906" x="758" class="D E H">22</text><text xml:space="preserve" y="61.906" x="793" class="D F">23</text><text xml:space="preserve" y="61.906" x="827" class="D E U">24</text><text xml:space="preserve" y="61.906" x="862" class="D E M">25</text><text xml:space="preserve" y="85.906" x="28" class="D E I">26</text><text xml:space="preserve" y="85.906" x="63" class="D E U">27</text><text xml:space="preserve" y="85.906" x="96" class="D E G">28</text><text xml:space="preserve" y="85.906" x="132" class="D F">29</text><text xml:space="preserve" y="85.906" x="166" class="D E M">30</text><text xml:space="preserve" y="85.906" x="203" class="D F">31</text><text xml:space="preserve" y="85.906" x="236" class="D E K">32</text><text xml:space="preserve" y="85.906" x="270" class="D E H">33</text><text xml:space="preserve" y="85.906" x="305" class="D E J">34</text><text xml:space="preserve" y="85.906" x="341" class="D E G">35</text><text xml:space="preserve" y="85.906" x="375" class="D E U">36</text><text xml:space="preserve" y="85.906" x="411" class="D F">37</text><text xml:space="preserve" y="85.906" x="444" class="D E L">38</text><text xml:space="preserve" y="85.906" x="479" class="D E I">39</text><text xml:space="preserve" y="85.906" x="514" class="D E M">40</text><text xml:space="preserve" y="85.906" x="551" class="D F">41</text><text xml:space="preserve" y="85.906" x="584" class="D E G">42</text><text xml:space="preserve" y="85.906" x="619" class="D F">43</text><text xml:space="preserve" y="85.906" x="653" class="D E H">44</text><text xml:space="preserve" y="85.906" x="688" class="D E M">45</text><text xml:space="preserve" y="85.906" x="723" class="D E N">46</text><text xml:space="preserve" y="85.906" x="759" class="D F">47</text><text xml:space="preserve" y="85.906" x="792" class="D E K">48</text><text xml:space="preserve" y="85.906" x="827" class="D E G">49</text><text xml:space="preserve" y="85.906" x="861" class="D E M">50</text><text xml:space="preserve" y="109.906" x="29" class="D E J">51</text><text xml:space="preserve" y="109.906" x="62" class="D E I">52</text><text xml:space="preserve" y="109.906" x="97" class="D F">53</text><text xml:space="preserve" y="109.906" x="131" class="D E U">54</text><text xml:space="preserve" y="109.906" x="167" class="D E H">55</text><text xml:space="preserve" y="109.906" x="201" class="D E G">56</text><text xml:space="preserve" y="109.906" x="236" class="D E L">57</text><text xml:space="preserve" y="109.906" x="270" class="D E O">58</text><text xml:space="preserve" y="109.906" x="306" class="D F">59</text><text xml:space="preserve" y="109.906" x="340" class="D E M">60</text><text xml:space="preserve" y="109.906" x="377" class="D F">61</text><text xml:space="preserve" y="109.906" x="410" class="D E P">62</text><text xml:space="preserve" y="109.906" x="444" class="D E G">63</text><text xml:space="preserve" y="109.906" x="479" class="D E K">64</text><text xml:space="preserve" y="109.906" x="514" class="D E I">65</text><text xml:space="preserve" y="109.906" x="549" class="D E H">66</text><text xml:space="preserve" y="109.906" x="585" class="D F">67</text><text xml:space="preserve" y="109.906" x="618" class="D E J">68</text><text xml:space="preserve" y="109.906" x="653" class="D E N">69</text><text xml:space="preserve" y="109.906" x="689" class="D E G">70</text><text xml:space="preserve" y="109.906" x="725" class="D F">71</text><text xml:space="preserve" y="109.906" x="759" class="D E U">72</text><text xml:space="preserve" y="109.906" x="793" class="D F">73</text><text xml:space="preserve" y="109.906" x="828" class="D E Q">74</text><text xml:space="preserve" y="109.906" x="862" class="D E M">75</text><text xml:space="preserve" y="133.906" x="28" class="D E L">76</text><text xml:space="preserve" y="133.906" x="63" class="D E H">77</text><text xml:space="preserve" y="133.906" x="97" class="D E I">78</text><text xml:space="preserve" y="133.906" x="132" class="D F">79</text><text xml:space="preserve" y="133.906" x="166" class="D E K">80</text><text xml:space="preserve" y="133.906" x="202" class="D E U">81</text><text xml:space="preserve" y="133.906" x="236" class="D E R">82</text><text xml:space="preserve" y="133.906" x="271" class="D F">83</text><text xml:space="preserve" y="133.906" x="305" class="D E G">84</text><text xml:space="preserve" y="133.906" x="340" class="D E J">85</text><text xml:space="preserve" y="133.906" x="375" class="D E S">86</text><text xml:space="preserve" y="133.906" x="410" class="D E O">87</text><text xml:space="preserve" y="133.906" x="444" class="D E H">88</text><text xml:space="preserve" y="133.906" x="480" class="D F">89</text><text xml:space="preserve" y="133.906" x="514" class="D E M">90</text><text xml:space="preserve" y="133.906" x="550" class="D E I">91</text><text xml:space="preserve" y="133.906" x="584" class="D E N">92</text><text xml:space="preserve" y="133.906" x="618" class="D E P">93</text><text xml:space="preserve" y="133.906" x="653" class="D E T">94</text><text xml:space="preserve" y="133.906" x="688" class="D E L">95</text><text xml:space="preserve" y="133.906" x="723" class="D E K">96</text><text xml:space="preserve" y="133.906" x="759" class="D F">97</text><text xml:space="preserve" y="133.906" x="792" class="D E G">98</text><text xml:space="preserve" y="133.906" x="827" class="D E H">99</text><text xml:space="preserve" y="133.906" x="858" class="D E M">100</text><text xml:space="preserve" y="157.906" x="27" class="D F">101</text><text xml:space="preserve" y="157.906" x="59" class="D E J">102</text><text xml:space="preserve" y="157.906" x="94" class="D F">103</text><text xml:space="preserve" y="157.906" x="128" class="D E I">104</text><text xml:space="preserve" y="157.906" x="163" class="D E G">105</text><text xml:space="preserve" y="157.906" x="198" class="D E V">106</text><text xml:space="preserve" y="157.906" x="234" class="D F">107</text><text xml:space="preserve" y="157.906" x="267" class="D E W">108</text><text xml:space="preserve" y="157.906" x="303" class="D F">109</text><text xml:space="preserve" y="157.906" x="338" class="D E H">110</text><text xml:space="preserve" y="157.906" x="374" class="D E Q">111</text><text xml:space="preserve" y="157.906" x="408" class="D E K">112</text><text xml:space="preserve" y="157.906" x="443" class="D F">113</text><text xml:space="preserve" y="157.906" x="477" class="D E L">114</text><text xml:space="preserve" y="157.906" x="512" class="D E N">115</text><text xml:space="preserve" y="157.906" x="547" class="D E O">116</text><text xml:space="preserve" y="157.906" x="582" class="D E I">117</text><text xml:space="preserve" y="157.906" x="616" class="D E X">118</text><text xml:space="preserve" y="157.906" x="651" class="D E J">119</text><text xml:space="preserve" y="157.906" x="685" class="D E M">120</text><text xml:space="preserve" y="157.906" x="721" class="D E H">121</text><text xml:space="preserve" y="157.906" x="755" class="D E Y">122</text><text xml:space="preserve" y="157.906" x="789" class="D E R">123</text><text xml:space="preserve" y="157.906" x="824" class="D E P">124</text><text xml:space="preserve" y="157.906" x="858" class="D E M">125</text><text xml:space="preserve" y="181.906" x="25" class="D E G">126</text><text xml:space="preserve" y="181.906" x="60" class="D F">127</text><text xml:space="preserve" y="181.906" x="93" class="D E K">128</text><text xml:space="preserve" y="181.906" x="128" class="D E S">129</text><text xml:space="preserve" y="181.906" x="163" class="D E I">130</text><text xml:space="preserve" y="181.906" x="200" class="D F">131</text><text xml:space="preserve" y="181.906" x="233" class="D E H">132</text><text xml:space="preserve" y="181.906" x="267" class="D E L">133</text><text xml:space="preserve" y="181.906" x="302" class="D E Z">134</text><text xml:space="preserve" y="181.906" x="337" class="D E M">135</text><text xml:space="preserve" y="181.906" x="372" class="D E J">136</text><text xml:space="preserve" y="181.906" x="408" class="D F">137</text><text xml:space="preserve" y="181.906" x="441" class="D E N">138</text><text xml:space="preserve" y="181.906" x="477" class="D F">139</text><text xml:space="preserve" y="181.906" x="511" class="D E G">140</text><text xml:space="preserve" y="181.906" x="547" class="D E T">141</text><text xml:space="preserve" y="181.906" x="581" class="D E a">142</text><text xml:space="preserve" y="181.906" x="615" class="D E I">143</text><text xml:space="preserve" y="181.906" x="650" class="D E K">144</text><text xml:space="preserve" y="181.906" x="685" class="D E O">145</text><text xml:space="preserve" y="181.906" x="720" class="D E b">146</text><text xml:space="preserve" y="181.906" x="755" class="D E G">147</text><text xml:space="preserve" y="181.906" x="789" class="D E Q">148</text><text xml:space="preserve" y="181.906" x="824" class="D F">149</text><text xml:space="preserve" y="181.906" x="858" class="D E M">150</text><text xml:space="preserve" y="205.906" x="27" class="D F">151</text><text xml:space="preserve" y="205.906" x="59" class="D E L">152</text><text xml:space="preserve" y="205.906" x="93" class="D E J">153</text><text xml:space="preserve" y="205.906" x="128" class="D E H">154</text><text xml:space="preserve" y="205.906" x="163" class="D E P">155</text><text xml:space="preserve" y="205.906" x="198" class="D E I">156</text><text xml:space="preserve" y="205.906" x="234" class="D F">157</text><text xml:space="preserve" y="205.906" x="267" class="D E c">158</text><text xml:space="preserve" y="205.906" x="302" class="D E V">159</text><text xml:space="preserve" y="205.906" x="337" class="D E K">160</text><text xml:space="preserve" y="205.906" x="373" class="D E N">161</text><text xml:space="preserve" y="205.906" x="407" class="D E W">162</text><text xml:space="preserve" y="205.906" x="442" class="D F">163</text><text xml:space="preserve" y="205.906" x="476" class="D E R">164</text><text xml:space="preserve" y="205.906" x="511" class="D E H">165</text><text xml:space="preserve" y="205.906" x="546" class="D E d">166</text><text xml:space="preserve" y="205.906" x="582" class="D F">167</text><text xml:space="preserve" y="205.906" x="615" class="D E G">168</text><text xml:space="preserve" y="205.906" x="650" class="D E I">169</text><text xml:space="preserve" y="205.906" x="686" class="D E J">170</text><text xml:space="preserve" y="205.906" x="722" class="D E L">171</text><text xml:space="preserve" y="205.906" x="755" class="D E S">172</text><text xml:space="preserve" y="205.906" x="790" class="D F">173</text><text xml:space="preserve" y="205.906" x="824" class="D E O">174</text><text xml:space="preserve" y="205.906" x="859" class="D E G">175</text><text xml:space="preserve" y="229.906" x="25" class="D E K">176</text><text xml:space="preserve" y="229.906" x="60" class="D E X">177</text><text xml:space="preserve" y="229.906" x="93" class="D E e">178</text><text xml:space="preserve" y="229.906" x="129" class="D F">179</text><text xml:space="preserve" y="229.906" x="163" class="D E M">180</text><text xml:space="preserve" y="229.906" x="200" class="D F">181</text><text xml:space="preserve" y="229.906" x="233" class="D E I">182</text><text xml:space="preserve" y="229.906" x="267" class="D E Y">183</text><text xml:space="preserve" y="229.906" x="302" class="D E N">184</text><text xml:space="preserve" y="229.906" x="337" class="D E Q">185</text><text xml:space="preserve" y="229.906" x="372" class="D E P">186</text><text xml:space="preserve" y="229.906" x="407" class="D E J">187</text><text xml:space="preserve" y="229.906" x="441" class="D E T">188</text><text xml:space="preserve" y="229.906" x="476" class="D E G">189</text><text xml:space="preserve" y="229.906" x="511" class="D E L">190</text><text xml:space="preserve" y="229.906" x="548" class="D F">191</text><text xml:space="preserve" y="229.906" x="581" class="D E K">192</text><text xml:space="preserve" y="229.906" x="616" class="D F">193</text><text xml:space="preserve" y="229.906" x="650" class="D E f">194</text><text xml:space="preserve" y="229.906" x="685" class="D E I">195</text><text xml:space="preserve" y="229.906" x="720" class="D E G">196</text><text xml:space="preserve" y="229.906" x="756" class="D F">197</text><text xml:space="preserve" y="229.906" x="789" class="D E H">198</text><text xml:space="preserve" y="229.906" x="824" class="D F">199</text><text xml:space="preserve" y="229.906" x="857" class="D E M">200</text><text xml:space="preserve" y="253.906" x="25" class="D E Z">201</text><text xml:space="preserve" y="253.906" x="58" class="D E g">202</text><text xml:space="preserve" y="253.906" x="92" class="D E O">203</text><text xml:space="preserve" y="253.906" x="127" class="D E J">204</text><text xml:space="preserve" y="253.906" x="162" class="D E R">205</text><text xml:space="preserve" y="253.906" x="197" class="D E h">206</text><text xml:space="preserve" y="253.906" x="232" class="D E N">207</text><text xml:space="preserve" y="253.906" x="266" class="D E K">208</text><text xml:space="preserve" y="253.906" x="301" class="D E L">209</text><text xml:space="preserve" y="253.906" x="337" class="D E G">210</text><text xml:space="preserve" y="253.906" x="374" class="D F">211</text><text xml:space="preserve" y="253.906" x="407" class="D E V">212</text><text xml:space="preserve" y="253.906" x="441" class="D E a">213</text><text xml:space="preserve" y="253.906" x="476" class="D E i">214</text><text xml:space="preserve" y="253.906" x="511" class="D E S">215</text><text xml:space="preserve" y="253.906" x="546" class="D E W">216</text><text xml:space="preserve" y="253.906" x="581" class="D E P">217</text><text xml:space="preserve" y="253.906" x="615" class="D E j">218</text><text xml:space="preserve" y="253.906" x="650" class="D E b">219</text><text xml:space="preserve" y="253.906" x="684" class="D E H">220</text><text xml:space="preserve" y="253.906" x="721" class="D E J">221</text><text xml:space="preserve" y="253.906" x="754" class="D E Q">222</text><text xml:space="preserve" y="253.906" x="789" class="D F">223</text><text xml:space="preserve" y="253.906" x="823" class="D E K">224</text><text xml:space="preserve" y="253.906" x="858" class="D E M">225</text><text xml:space="preserve" y="277.906" x="24" class="D E k">226</text><text xml:space="preserve" y="277.906" x="59" class="D F">227</text><text xml:space="preserve" y="277.906" x="92" class="D E L">228</text><text xml:space="preserve" y="277.906" x="128" class="D F">229</text><text xml:space="preserve" y="277.906" x="162" class="D E N">230</text><text xml:space="preserve" y="277.906" x="198" class="D E H">231</text><text xml:space="preserve" y="277.906" x="232" class="D E O">232</text><text xml:space="preserve" y="277.906" x="267" class="D F">233</text><text xml:space="preserve" y="277.906" x="301" class="D E I">234</text><text xml:space="preserve" y="277.906" x="336" class="D E T">235</text><text xml:space="preserve" y="277.906" x="371" class="D E X">236</text><text xml:space="preserve" y="277.906" x="406" class="D E c">237</text><text xml:space="preserve" y="277.906" x="440" class="D E J">238</text><text xml:space="preserve" y="277.906" x="476" class="D F">239</text><text xml:space="preserve" y="277.906" x="510" class="D E K">240</text><text xml:space="preserve" y="277.906" x="547" class="D F">241</text><text xml:space="preserve" y="277.906" x="580" class="D E H">242</text><text xml:space="preserve" y="277.906" x="614" class="D E m">243</text><text xml:space="preserve" y="277.906" x="649" class="D E Y">244</text><text xml:space="preserve" y="277.906" x="684" class="D E G">245</text><text xml:space="preserve" y="277.906" x="719" class="D E R">246</text><text xml:space="preserve" y="277.906" x="754" class="D E L">247</text><text xml:space="preserve" y="277.906" x="788" class="D E P">248</text><text xml:space="preserve" y="277.906" x="823" class="D E d">249</text><text xml:space="preserve" y="277.906" x="857" class="D E M">250</text><text xml:space="preserve" y="301.906" x="26" class="D F">251</text><text xml:space="preserve" y="301.906" x="58" class="D E G">252</text><text xml:space="preserve" y="301.906" x="92" class="D E N">253</text><text xml:space="preserve" y="301.906" x="127" class="D E n">254</text><text xml:space="preserve" y="301.906" x="162" class="D E J">255</text><text xml:space="preserve" y="301.906" x="197" class="D E K">256</text><text xml:space="preserve" y="301.906" x="233" class="D F">257</text><text xml:space="preserve" y="301.906" x="266" class="D E S">258</text><text xml:space="preserve" y="301.906" x="301" class="D E Q">259</text><text xml:space="preserve" y="301.906" x="336" class="D E I">260</text><text xml:space="preserve" y="301.906" x="372" class="D E O">261</text><text xml:space="preserve" y="301.906" x="406" class="D E o">262</text><text xml:space="preserve" y="301.906" x="441" class="D F">263</text><text xml:space="preserve" y="301.906" x="475" class="D E H">264</text><text xml:space="preserve" y="301.906" x="510" class="D E V">265</text><text xml:space="preserve" y="301.906" x="545" class="D E L">266</text><text xml:space="preserve" y="301.906" x="580" class="D E e">267</text><text xml:space="preserve" y="301.906" x="614" class="D E Z">268</text><text xml:space="preserve" y="301.906" x="650" class="D F">269</text><text xml:space="preserve" y="301.906" x="685" class="D E W">270</text><text xml:space="preserve" y="301.906" x="722" class="D F">271</text><text xml:space="preserve" y="301.906" x="754" class="D E K">272</text><text xml:space="preserve" y="301.906" x="789" class="D E I">273</text><text xml:space="preserve" y="301.906" x="824" class="D E p">274</text><text xml:space="preserve" y="301.906" x="858" class="D E H">275</text><text xml:space="preserve" y="325.906" x="24" class="D E N">276</text><text xml:space="preserve" y="325.906" x="59" class="D F">277</text><text xml:space="preserve" y="325.906" x="93" class="D E q">278</text><text xml:space="preserve" y="325.906" x="128" class="D E P">279</text><text xml:space="preserve" y="325.906" x="162" class="D E G">280</text><text xml:space="preserve" y="325.906" x="199" class="D F">281</text><text xml:space="preserve" y="325.906" x="232" class="D E T">282</text><text xml:space="preserve" y="325.906" x="267" class="D F">283</text><text xml:space="preserve" y="325.906" x="301" class="D E a">284</text><text xml:space="preserve" y="325.906" x="336" class="D E L">285</text><text xml:space="preserve" y="325.906" x="371" class="D E I">286</text><text xml:space="preserve" y="325.906" x="406" class="D E R">287</text><text xml:space="preserve" y="325.906" x="440" class="D E K">288</text><text xml:space="preserve" y="325.906" x="475" class="D E J">289</text><text xml:space="preserve" y="325.906" x="510" class="D E O">290</text><text xml:space="preserve" y="325.906" x="546" class="D E f">291</text><text xml:space="preserve" y="325.906" x="580" class="D E b">292</text><text xml:space="preserve" y="325.906" x="615" class="D F">293</text><text xml:space="preserve" y="325.906" x="649" class="D E G">294</text><text xml:space="preserve" y="325.906" x="684" class="D E X">295</text><text xml:space="preserve" y="325.906" x="719" class="D E Q">296</text><text xml:space="preserve" y="325.906" x="754" class="D E H">297</text><text xml:space="preserve" y="325.906" x="788" class="D E r">298</text><text xml:space="preserve" y="325.906" x="823" class="D E N">299</text><text xml:space="preserve" y="325.906" x="857" class="D E M">300</text><text xml:space="preserve" y="349.906" x="25" class="D E S">301</text><text xml:space="preserve" y="349.906" x="58" class="D E s">302</text><text xml:space="preserve" y="349.906" x="92" class="D E g">303</text><text xml:space="preserve" y="349.906" x="127" class="D E L">304</text><text xml:space="preserve" y="349.906" x="162" class="D E Y">305</text><text xml:space="preserve" y="349.906" x="197" class="D E J">306</text><text xml:space="preserve" y="349.906" x="233" class="D F">307</text><text xml:space="preserve" y="349.906" x="266" class="D E H">308</text><text xml:space="preserve" y="349.906" x="301" class="D E h">309</text><text xml:space="preserve" y="349.906" x="337" class="D E P">310</text><text xml:space="preserve" y="349.906" x="374" class="D F">311</text><text xml:space="preserve" y="349.906" x="407" class="D E I">312</text><text xml:space="preserve" y="349.906" x="442" class="D F">313</text><text fill="#72a694" xml:space="preserve" y="349.906" x="476" class="D E">314</text><text xml:space="preserve" y="349.906" x="511" class="D E G">315</text><text xml:space="preserve" y="349.906" x="546" class="D E c">316</text><text xml:space="preserve" y="349.906" x="582" class="D F">317</text><text xml:space="preserve" y="349.906" x="615" class="D E V">318</text><text xml:space="preserve" y="349.906" x="650" class="D E O">319</text><text xml:space="preserve" y="349.906" x="684" class="D E K">320</text><text xml:space="preserve" y="349.906" x="720" class="D E i">321</text><text xml:space="preserve" y="349.906" x="754" class="D E N">322</text><text xml:space="preserve" y="349.906" x="788" class="D E L">323</text><text xml:space="preserve" y="349.906" x="823" class="D E W">324</text><text xml:space="preserve" y="349.906" x="857" class="D E I">325</text><text fill="#aa85a2" xml:space="preserve" y="373.906" x="24" class="D E">326</text><text xml:space="preserve" y="373.906" x="58" class="D E j">327</text><text xml:space="preserve" y="373.906" x="92" class="D E R">328</text><text xml:space="preserve" y="373.906" x="127" class="D E T">329</text><text xml:space="preserve" y="373.906" x="162" class="D E H">330</text><text xml:space="preserve" y="373.906" x="199" class="D F">331</text><text xml:space="preserve" y="373.906" x="232" class="D E d">332</text><text xml:space="preserve" y="373.906" x="266" class="D E Q">333</text><text fill="#bca451" xml:space="preserve" y="373.906" x="301" class="D E">334</text><text xml:space="preserve" y="373.906" x="336" class="D E Z">335</text><text xml:space="preserve" y="373.906" x="371" class="D E K">336</text><text xml:space="preserve" y="373.906" x="407" class="D F">337</text><text xml:space="preserve" y="373.906" x="440" class="D E I">338</text><text xml:space="preserve" y="373.906" x="475" class="D E k">339</text><text xml:space="preserve" y="373.906" x="510" class="D E J">340</text><text xml:space="preserve" y="373.906" x="546" class="D E P">341</text><text xml:space="preserve" y="373.906" x="580" class="D E L">342</text><text xml:space="preserve" y="373.906" x="614" class="D E G">343</text><text xml:space="preserve" y="373.906" x="649" class="D E S">344</text><text xml:space="preserve" y="373.906" x="684" class="D E N">345</text><text fill="#8e8dba" xml:space="preserve" y="373.906" x="719" class="D E">346</text><text xml:space="preserve" y="373.906" x="755" class="D F">347</text><text xml:space="preserve" y="373.906" x="788" class="D E O">348</text><text xml:space="preserve" y="373.906" x="823" class="D F">349</text><text xml:space="preserve" y="373.906" x="857" class="D E G">350</text><text xml:space="preserve" y="397.906" x="25" class="D E I">351</text><text xml:space="preserve" y="397.906" x="58" class="D E K">352</text><text xml:space="preserve" y="397.906" x="93" class="D F">353</text><text xml:space="preserve" y="397.906" x="127" class="D E X">354</text><text xml:space="preserve" y="397.906" x="162" class="D E a">355</text><text xml:space="preserve" y="397.906" x="197" class="D E e">356</text><text xml:space="preserve" y="397.906" x="232" class="D E J">357</text><text fill="#79a79e" xml:space="preserve" y="397.906" x="266" class="D E">358</text><text xml:space="preserve" y="397.906" x="302" class="D F">359</text><text xml:space="preserve" y="397.906" x="336" class="D E t">360</text><text xml:space="preserve" y="397.906" x="372" class="D E L">361</text><text fill="#656186" xml:space="preserve" y="397.906" x="406" class="D E">362</text><text xml:space="preserve" y="397.906" x="440" class="D E H">363</text><text xml:space="preserve" y="397.906" x="475" class="D E I">364</text><text xml:space="preserve" y="397.906" x="510" class="D E b">365</text><text xml:space="preserve" y="397.906" x="545" class="D E Y">366</text><text xml:space="preserve" y="397.906" x="581" class="D F">367</text><text xml:space="preserve" y="397.906" x="614" class="D E N">368</text><text xml:space="preserve" y="397.906" x="649" class="D E R">369</text><text xml:space="preserve" y="397.906" x="685" class="D E Q">370</text><text xml:space="preserve" y="397.906" x="721" class="D E V">371</text><text xml:space="preserve" y="397.906" x="754" class="D E P">372</text><text xml:space="preserve" y="397.906" x="789" class="D F">373</text><text xml:space="preserve" y="397.906" x="823" class="D E J">374</text><text xml:space="preserve" y="397.906" x="858" class="D E M">375</text><text xml:space="preserve" y="421.906" x="24" class="D E T">376</text><text xml:space="preserve" y="421.906" x="59" class="D E O">377</text><text xml:space="preserve" y="421.906" x="92" class="D E W">378</text><text xml:space="preserve" y="421.906" x="128" class="D F">379</text><text xml:space="preserve" y="421.906" x="162" class="D E L">380</text><text xml:space="preserve" y="421.906" x="198" class="D E n">381</text><text fill="#94894b" xml:space="preserve" y="421.906" x="232" class="D E">382</text><text xml:space="preserve" y="421.906" x="267" class="D F">383</text><text xml:space="preserve" y="421.906" x="301" class="D E K">384</text><text xml:space="preserve" y="421.906" x="336" class="D E H">385</text><text fill="#87759e" xml:space="preserve" y="421.906" x="371" class="D E">386</text><text xml:space="preserve" y="421.906" x="406" class="D E S">387</text><text xml:space="preserve" y="421.906" x="440" class="D E f">388</text><text xml:space="preserve" y="421.906" x="476" class="D F">389</text><text xml:space="preserve" y="421.906" x="510" class="D E I">390</text><text xml:space="preserve" y="421.906" x="546" class="D E N">391</text><text xml:space="preserve" y="421.906" x="580" class="D E G">392</text><text xml:space="preserve" y="421.906" x="614" class="D E o">393</text><text fill="#9f6db4" xml:space="preserve" y="421.906" x="649" class="D E">394</text><text xml:space="preserve" y="421.906" x="684" class="D E c">395</text><text xml:space="preserve" y="421.906" x="719" class="D E H">396</text><text xml:space="preserve" y="421.906" x="755" class="D F">397</text><text fill="#aebba6" xml:space="preserve" y="421.906" x="788" class="D E">398</text><text xml:space="preserve" y="421.906" x="823" class="D E L">399</text><text xml:space="preserve" y="421.906" x="857" class="D E K">400</text><text xml:space="preserve" y="445.906" x="25" class="D F">401</text><text xml:space="preserve" y="445.906" x="58" class="D E Z">402</text><text xml:space="preserve" y="445.906" x="92" class="D E P">403</text><text xml:space="preserve" y="445.906" x="127" class="D E g">404</text><text xml:space="preserve" y="445.906" x="162" class="D E m">405</text><text xml:space="preserve" y="445.906" x="197" class="D E O">406</text><text xml:space="preserve" y="445.906" x="232" class="D E Q">407</text><text xml:space="preserve" y="445.906" x="266" class="D E J">408</text><text xml:space="preserve" y="445.906" x="302" class="D F">409</text><text xml:space="preserve" y="445.906" x="337" class="D E R">410</text><text xml:space="preserve" y="445.906" x="373" class="D E p">411</text><text xml:space="preserve" y="445.906" x="407" class="D E h">412</text><text xml:space="preserve" y="445.906" x="441" class="D E X">413</text><text xml:space="preserve" y="445.906" x="476" class="D E N">414</text><text xml:space="preserve" y="445.906" x="511" class="D E d">415</text><text xml:space="preserve" y="445.906" x="546" class="D E K">416</text><text xml:space="preserve" y="445.906" x="581" class="D E q">417</text><text xml:space="preserve" y="445.906" x="615" class="D E L">418</text><text xml:space="preserve" y="445.906" x="651" class="D F">419</text><text xml:space="preserve" y="445.906" x="684" class="D E G">420</text><text xml:space="preserve" y="445.906" x="721" class="D F">421</text><text fill="#61a569" xml:space="preserve" y="445.906" x="754" class="D E">422</text><text xml:space="preserve" y="445.906" x="788" class="D E T">423</text><text xml:space="preserve" y="445.906" x="823" class="D E V">424</text><text xml:space="preserve" y="445.906" x="857" class="D E J">425</text><text xml:space="preserve" y="469.906" x="24" class="D E a">426</text><text xml:space="preserve" y="469.906" x="58" class="D E Y">427</text><text xml:space="preserve" y="469.906" x="92" class="D E i">428</text><text xml:space="preserve" y="469.906" x="127" class="D E I">429</text><text xml:space="preserve" y="469.906" x="162" class="D E S">430</text><text xml:space="preserve" y="469.906" x="199" class="D F">431</text><text xml:space="preserve" y="469.906" x="232" class="D E W">432</text><text xml:space="preserve" y="469.906" x="267" class="D F">433</text><text xml:space="preserve" y="469.906" x="301" class="D E P">434</text><text xml:space="preserve" y="469.906" x="336" class="D E O">435</text><text xml:space="preserve" y="469.906" x="371" class="D E j">436</text><text xml:space="preserve" y="469.906" x="406" class="D E N">437</text><text xml:space="preserve" y="469.906" x="440" class="D E b">438</text><text xml:space="preserve" y="469.906" x="476" class="D F">439</text><text xml:space="preserve" y="469.906" x="510" class="D E H">440</text><text xml:space="preserve" y="469.906" x="546" class="D E G">441</text><text xml:space="preserve" y="469.906" x="580" class="D E J">442</text><text xml:space="preserve" y="469.906" x="615" class="D F">443</text><text xml:space="preserve" y="469.906" x="649" class="D E Q">444</text><text xml:space="preserve" y="469.906" x="684" class="D E e">445</text><text fill="#7e6bb4" xml:space="preserve" y="469.906" x="719" class="D E">446</text><text xml:space="preserve" y="469.906" x="754" class="D E r">447</text><text xml:space="preserve" y="469.906" x="788" class="D E K">448</text><text xml:space="preserve" y="469.906" x="823" class="D F">449</text><text xml:space="preserve" y="469.906" x="857" class="D E M">450</text><text xml:space="preserve" y="493.906" x="25" class="D E R">451</text><text xml:space="preserve" y="493.906" x="58" class="D E k">452</text><text xml:space="preserve" y="493.906" x="92" class="D E s">453</text><text fill="#a2569d" xml:space="preserve" y="493.906" x="127" class="D E">454</text><text xml:space="preserve" y="493.906" x="162" class="D E I">455</text><text xml:space="preserve" y="493.906" x="197" class="D E L">456</text><text xml:space="preserve" y="493.906" x="233" class="D F">457</text><text fill="#67ab80" xml:space="preserve" y="493.906" x="266" class="D E">458</text><text xml:space="preserve" y="493.906" x="301" class="D E J">459</text><text xml:space="preserve" y="493.906" x="336" class="D E N">460</text><text xml:space="preserve" y="493.906" x="373" class="D F">461</text><text xml:space="preserve" y="493.906" x="406" class="D E H">462</text><text xml:space="preserve" y="493.906" x="441" class="D F">463</text><text xml:space="preserve" y="493.906" x="475" class="D E O">464</text><text xml:space="preserve" y="493.906" x="510" class="D E P">465</text><text fill="#5db273" xml:space="preserve" y="493.906" x="545" class="D E">466</text><text xml:space="preserve" y="493.906" x="581" class="D F">467</text><text xml:space="preserve" y="493.906" x="614" class="D E I">468</text><text xml:space="preserve" y="493.906" x="649" class="D E Z">469</text><text xml:space="preserve" y="493.906" x="685" class="D E T">470</text><text fill="#72a694" xml:space="preserve" y="493.906" x="721" class="D E">471</text><text xml:space="preserve" y="493.906" x="754" class="D E X">472</text><text xml:space="preserve" y="493.906" x="789" class="D E S">473</text><text xml:space="preserve" y="493.906" x="823" class="D E c">474</text><text xml:space="preserve" y="493.906" x="858" class="D E L">475</text><text xml:space="preserve" y="517.906" x="24" class="D E J">476</text><text xml:space="preserve" y="517.906" x="58" class="D E V">477</text><text fill="#5c989e" xml:space="preserve" y="517.906" x="92" class="D E">478</text><text xml:space="preserve" y="517.906" x="128" class="D F">479</text><text xml:space="preserve" y="517.906" x="162" class="D E K">480</text><text xml:space="preserve" y="517.906" x="198" class="D E Q">481</text><text fill="#bb54ab" xml:space="preserve" y="517.906" x="232" class="D E">482</text><text xml:space="preserve" y="517.906" x="266" class="D E N">483</text><text xml:space="preserve" y="517.906" x="301" class="D E H">484</text><text xml:space="preserve" y="517.906" x="336" class="D E f">485</text><text xml:space="preserve" y="517.906" x="371" class="D E W">486</text><text xml:space="preserve" y="517.906" x="407" class="D F">487</text><text xml:space="preserve" y="517.906" x="440" class="D E Y">488</text><text fill="#aa85a2" xml:space="preserve" y="517.906" x="475" class="D E">489</text><text xml:space="preserve" y="517.906" x="510" class="D E G">490</text><text xml:space="preserve" y="517.906" x="547" class="D F">491</text><text xml:space="preserve" y="517.906" x="580" class="D E R">492</text><text xml:space="preserve" y="517.906" x="614" class="D E O">493</text><text xml:space="preserve" y="517.906" x="649" class="D E L">494</text><text xml:space="preserve" y="517.906" x="684" class="D E H">495</text><text xml:space="preserve" y="517.906" x="719" class="D E P">496</text><text xml:space="preserve" y="517.906" x="754" class="D E a">497</text><text xml:space="preserve" y="517.906" x="788" class="D E d">498</text><text xml:space="preserve" y="517.906" x="823" class="D F">499</text><text xml:space="preserve" y="517.906" x="857" class="D E M">500</text><text fill="#bca451" xml:space="preserve" y="541.906" x="25" class="D E">501</text><text fill="#40448a" xml:space="preserve" y="541.906" x="58" class="D E">502</text><text xml:space="preserve" y="541.906" x="93" class="D F">503</text><text xml:space="preserve" y="541.906" x="127" class="D E t">504</text><text xml:space="preserve" y="541.906" x="162" class="D E g">505</text><text xml:space="preserve" y="541.906" x="197" class="D E N">506</text><text xml:space="preserve" y="541.906" x="232" class="D E I">507</text><text xml:space="preserve" y="541.906" x="266" class="D E n">508</text><text xml:space="preserve" y="541.906" x="302" class="D F">509</text><text xml:space="preserve" y="541.906" x="337" class="D E J">510</text><text xml:space="preserve" y="541.906" x="373" class="D E b">511</text><text xml:space="preserve" y="541.906" x="407" class="D E K">512</text><text xml:space="preserve" y="541.906" x="441" class="D E L">513</text><text fill="#b9a185" xml:space="preserve" y="541.906" x="476" class="D E">514</text><text xml:space="preserve" y="541.906" x="511" class="D E h">515</text><text xml:space="preserve" y="541.906" x="546" class="D E S">516</text><text xml:space="preserve" y="541.906" x="581" class="D E T">517</text><text xml:space="preserve" y="541.906" x="615" class="D E Q">518</text><text fill="#8e8dba" xml:space="preserve" y="541.906" x="650" class="D E">519</text><text xml:space="preserve" y="541.906" x="684" class="D E I">520</text><text xml:space="preserve" y="541.906" x="721" class="D F">521</text><text xml:space="preserve" y="541.906" x="754" class="D E O">522</text><text xml:space="preserve" y="541.906" x="789" class="D F">523</text><text xml:space="preserve" y="541.906" x="823" class="D E o">524</text><text xml:space="preserve" y="541.906" x="857" class="D E G">525</text><text fill="#5f5fb5" xml:space="preserve" y="565.906" x="24" class="D E">526</text><text xml:space="preserve" y="565.906" x="58" class="D E P">527</text><text xml:space="preserve" y="565.906" x="92" class="D E K">528</text><text xml:space="preserve" y="565.906" x="127" class="D E N">529</text><text xml:space="preserve" y="565.906" x="162" class="D E V">530</text><text xml:space="preserve" y="565.906" x="198" class="D E X">531</text><text xml:space="preserve" y="565.906" x="232" class="D E L">532</text><text xml:space="preserve" y="565.906" x="266" class="D E R">533</text><text xml:space="preserve" y="565.906" x="301" class="D E e">534</text><text xml:space="preserve" y="565.906" x="336" class="D E i">535</text><text xml:space="preserve" y="565.906" x="371" class="D E Z">536</text><text fill="#79a79e" xml:space="preserve" y="565.906" x="406" class="D E">537</text><text fill="#a8b675" xml:space="preserve" y="565.906" x="440" class="D E">538</text><text xml:space="preserve" y="565.906" x="475" class="D E H">539</text><text xml:space="preserve" y="565.906" x="510" class="D E W">540</text><text xml:space="preserve" y="565.906" x="547" class="D F">541</text><text fill="#4c7c9f" xml:space="preserve" y="565.906" x="580" class="D E">542</text><text fill="#656186" xml:space="preserve" y="565.906" x="614" class="D E">543</text><text xml:space="preserve" y="565.906" x="649" class="D E J">544</text><text xml:space="preserve" y="565.906" x="684" class="D E j">545</text><text xml:space="preserve" y="565.906" x="719" class="D E I">546</text><text xml:space="preserve" y="565.906" x="755" class="D F">547</text><text xml:space="preserve" y="565.906" x="788" class="D E p">548</text><text xml:space="preserve" y="565.906" x="823" class="D E Y">549</text><text xml:space="preserve" y="565.906" x="857" class="D E H">550</text><text xml:space="preserve" y="589.906" x="25" class="D E O">551</text><text xml:space="preserve" y="589.906" x="58" class="D E N">552</text><text xml:space="preserve" y="589.906" x="92" class="D E c">553</text><text fill="#5d90b0" xml:space="preserve" y="589.906" x="127" class="D E">554</text><text xml:space="preserve" y="589.906" x="162" class="D E Q">555</text><text xml:space="preserve" y="589.906" x="197" class="D E q">556</text><text xml:space="preserve" y="589.906" x="233" class="D F">557</text><text xml:space="preserve" y="589.906" x="266" class="D E P">558</text><text xml:space="preserve" y="589.906" x="301" class="D E S">559</text><text xml:space="preserve" y="589.906" x="336" class="D E K">560</text><text xml:space="preserve" y="589.906" x="372" class="D E J">561</text><text fill="#578f8b" xml:space="preserve" y="589.906" x="406" class="D E">562</text><text xml:space="preserve" y="589.906" x="441" class="D F">563</text><text xml:space="preserve" y="589.906" x="475" class="D E T">564</text><text xml:space="preserve" y="589.906" x="510" class="D E k">565</text><text fill="#8985af" xml:space="preserve" y="589.906" x="545" class="D E">566</text><text xml:space="preserve" y="589.906" x="580" class="D E m">567</text><text xml:space="preserve" y="589.906" x="614" class="D E a">568</text><text xml:space="preserve" y="589.906" x="650" class="D F">569</text><text xml:space="preserve" y="589.906" x="685" class="D E L">570</text><text xml:space="preserve" y="589.906" x="721" class="D F">571</text><text xml:space="preserve" y="589.906" x="754" class="D E I">572</text><text fill="#94894b" xml:space="preserve" y="589.906" x="789" class="D E">573</text><text xml:space="preserve" y="589.906" x="823" class="D E R">574</text><text xml:space="preserve" y="589.906" x="858" class="D E N">575</text><text xml:space="preserve" y="613.906" x="24" class="D E t">576</text><text xml:space="preserve" y="613.906" x="59" class="D F">577</text><text xml:space="preserve" y="613.906" x="92" class="D E J">578</text><text fill="#87759e" xml:space="preserve" y="613.906" x="128" class="D E">579</text><text xml:space="preserve" y="613.906" x="162" class="D E O">580</text><text xml:space="preserve" y="613.906" x="198" class="D E d">581</text><text xml:space="preserve" y="613.906" x="232" class="D E f">582</text><text xml:space="preserve" y="613.906" x="266" class="D E V">583</text><text xml:space="preserve" y="613.906" x="301" class="D E b">584</text><text xml:space="preserve" y="613.906" x="336" class="D E I">585</text><text fill="#ab6984" xml:space="preserve" y="613.906" x="371" class="D E">586</text><text xml:space="preserve" y="613.906" x="407" class="D F">587</text><text xml:space="preserve" y="613.906" x="440" class="D E G">588</text><text xml:space="preserve" y="613.906" x="475" class="D E P">589</text><text xml:space="preserve" y="613.906" x="510" class="D E X">590</text><text fill="#9f6db4" xml:space="preserve" y="613.906" x="546" class="D E">591</text><text xml:space="preserve" y="613.906" x="580" class="D E Q">592</text><text xml:space="preserve" y="613.906" x="615" class="D F">593</text><text xml:space="preserve" y="613.906" x="649" class="D E W">594</text><text xml:space="preserve" y="613.906" x="684" class="D E J">595</text><text xml:space="preserve" y="613.906" x="719" class="D E r">596</text><text fill="#aebba6" xml:space="preserve" y="613.906" x="754" class="D E">597</text><text xml:space="preserve" y="613.906" x="788" class="D E N">598</text><text xml:space="preserve" y="613.906" x="823" class="D F">599</text><text xml:space="preserve" y="613.906" x="857" class="D E M">600</text><text xml:space="preserve" y="637.906" x="26" class="D F">601</text><text xml:space="preserve" y="637.906" x="58" class="D E S">602</text><text xml:space="preserve" y="637.906" x="92" class="D E Z">603</text><text xml:space="preserve" y="637.906" x="127" class="D E s">604</text><text xml:space="preserve" y="637.906" x="162" class="D E H">605</text><text xml:space="preserve" y="637.906" x="197" class="D E g">606</text><text xml:space="preserve" y="637.906" x="233" class="D F">607</text><text xml:space="preserve" y="637.906" x="266" class="D E L">608</text><text xml:space="preserve" y="637.906" x="301" class="D E O">609</text><text xml:space="preserve" y="637.906" x="337" class="D E Y">610</text><text xml:space="preserve" y="637.906" x="373" class="D E T">611</text><text xml:space="preserve" y="637.906" x="407" class="D E J">612</text><text xml:space="preserve" y="637.906" x="442" class="D F">613</text><text fill="#9b6f5d" xml:space="preserve" y="637.906" x="476" class="D E">614</text><text xml:space="preserve" y="637.906" x="511" class="D E R">615</text><text xml:space="preserve" y="637.906" x="546" class="D E H">616</text><text xml:space="preserve" y="637.906" x="582" class="D F">617</text><text xml:space="preserve" y="637.906" x="615" class="D E h">618</text><text xml:space="preserve" y="637.906" x="651" class="D F">619</text><text xml:space="preserve" y="637.906" x="684" class="D E P">620</text><text xml:space="preserve" y="637.906" x="720" class="D E N">621</text><text fill="#be7384" xml:space="preserve" y="637.906" x="754" class="D E">622</text><text xml:space="preserve" y="637.906" x="788" class="D E e">623</text><text xml:space="preserve" y="637.906" x="823" class="D E K">624</text><text xml:space="preserve" y="637.906" x="857" class="D E M">625</text></g></svg>
diff --git a/examples/async/eratosthenes/eratosthenes.pyproject b/examples/async/eratosthenes/eratosthenes.pyproject
new file mode 100644
index 000000000..f0de627ef
--- /dev/null
+++ b/examples/async/eratosthenes/eratosthenes.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["eratosthenes_trio.py", "eratosthenes_asyncio.py"]
+}
diff --git a/examples/async/eratosthenes/eratosthenes_asyncio.py b/examples/async/eratosthenes/eratosthenes_asyncio.py
new file mode 100644
index 000000000..c5d7fc2fe
--- /dev/null
+++ b/examples/async/eratosthenes/eratosthenes_asyncio.py
@@ -0,0 +1,134 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import (Qt, QObject, Signal, Slot)
+from PySide6.QtGui import (QColor, QFont, QPalette)
+from PySide6.QtWidgets import (QApplication, QGridLayout, QLabel, QMainWindow, QVBoxLayout, QWidget)
+
+import PySide6.QtAsyncio as QtAsyncio
+
+import asyncio
+import sys
+from random import randint
+
+
+class MainWindow(QMainWindow):
+
+ set_num = Signal(int, QColor)
+
+ def __init__(self, rows, cols):
+ super().__init__()
+
+ self.rows = rows
+ self.cols = cols
+
+ widget_central = QWidget()
+ self.setCentralWidget(widget_central)
+
+ layout_outer = QVBoxLayout(widget_central)
+
+ self.widget_outer_text = QLabel()
+ font = QFont()
+ font.setPointSize(14)
+ self.widget_outer_text.setFont(font)
+ layout_outer.addWidget(self.widget_outer_text, alignment=Qt.AlignmentFlag.AlignCenter)
+
+ widget_inner_grid = QWidget()
+ layout_outer.addWidget(widget_inner_grid, alignment=Qt.AlignmentFlag.AlignCenter)
+
+ self.layout_inner_grid = QGridLayout(widget_inner_grid)
+ k = 1
+ for i in range(self.rows):
+ for j in range(self.cols):
+ box = QLabel(f"{k}")
+ self.layout_inner_grid.addWidget(box, i, j, Qt.AlignmentFlag.AlignCenter)
+ k += 1
+
+ self.set_num.connect(self.set_num_handler)
+
+ @Slot(int, QColor)
+ def set_num_handler(self, i, color):
+ row = int((i - 1) / self.cols)
+ col = (i - 1) - (row * self.cols)
+ widget = self.layout_inner_grid.itemAtPosition(row, col).widget()
+
+ font = QFont()
+ font.setWeight(QFont.Bold)
+ palette = QPalette()
+ palette.setColor(QPalette.WindowText, color)
+ widget.setFont(font)
+ widget.setPalette(palette)
+
+
+class Eratosthenes(QObject):
+
+ """ This Sieve of Eratosthenes runs on a configurable tick (default
+ 0.1 seconds). At each tick, a new subroutine will be created
+ that will check multiples of the next prime number. Each of
+ these subroutines also operates on the same tick. """
+
+ def __init__(self, num, window, tick=0.1):
+ super().__init__()
+ self.num = num
+ self.sieve = [True] * self.num
+ self.base = 0
+ self.window = window
+ self.tick = tick
+ self.coroutines = []
+ self.done = False
+ self.loop = None
+
+ def get_tick(self):
+ return self.loop.time() + self.tick
+
+ async def start(self):
+ self.loop = asyncio.get_event_loop()
+ asyncio.create_task(self.update_text())
+ while self.base <= self.num / 2:
+ await asyncio.sleep(self.tick)
+ for i in range(self.base + 1, self.num):
+ if self.sieve[i]:
+ self.base = i
+ break
+ asyncio.create_task(self.mark_number(self.base + 1))
+ while sum(self.coroutines) > 0:
+ await asyncio.sleep(self.tick)
+ self.done = True
+
+ async def mark_number(self, base):
+ id = len(self.coroutines)
+ self.coroutines.append(1)
+ color = QColor(randint(64, 192), randint(64, 192), randint(64, 192))
+ for i in range(2 * base, self.num + 1, base):
+ if self.sieve[i - 1]:
+ self.sieve[i - 1] = False
+ self.window.set_num.emit(i, color)
+ await asyncio.sleep(self.tick)
+ self.coroutines[id] = 0
+
+ async def update_text(self):
+ while not self.done:
+ await asyncio.sleep(self.tick)
+ if int(self.loop.time() + self.tick) % 2:
+ text = "⚙️ ...Calculating prime numbers... ⚙️"
+ else:
+ text = "👩‍💻 ...Hacking the universe... 👩‍💻"
+ self.window.widget_outer_text.setText(text)
+
+ self.window.widget_outer_text.setText(
+ "🥳 Congratulations! You found all the prime numbers and solved mathematics. 🥳"
+ )
+
+
+if __name__ == "__main__":
+ rows = 40
+ cols = 40
+ num = rows * cols
+
+ app = QApplication(sys.argv)
+ main_window = MainWindow(rows, cols)
+ eratosthenes = Eratosthenes(num, main_window)
+
+ main_window.show()
+
+ QtAsyncio.run(eratosthenes.start(), handle_sigint=True)
diff --git a/examples/async/eratosthenes/eratosthenes_trio.py b/examples/async/eratosthenes/eratosthenes_trio.py
new file mode 100644
index 000000000..89d3d1ce6
--- /dev/null
+++ b/examples/async/eratosthenes/eratosthenes_trio.py
@@ -0,0 +1,197 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import (Qt, QEvent, QObject, QTimer, Signal, Slot)
+from PySide6.QtGui import (QColor, QFont, QPalette)
+from PySide6.QtWidgets import (QApplication, QGridLayout, QLabel, QMainWindow, QVBoxLayout, QWidget)
+
+import outcome
+import signal
+import sys
+import traceback
+import trio
+from random import randint
+
+
+class MainWindow(QMainWindow):
+
+ set_num = Signal(int, QColor)
+
+ def __init__(self, rows, cols):
+ super().__init__()
+
+ self.rows = rows
+ self.cols = cols
+
+ widget_central = QWidget()
+ self.setCentralWidget(widget_central)
+
+ layout_outer = QVBoxLayout(widget_central)
+
+ self.widget_outer_text = QLabel()
+ font = QFont()
+ font.setPointSize(14)
+ self.widget_outer_text.setFont(font)
+ layout_outer.addWidget(self.widget_outer_text, alignment=Qt.AlignmentFlag.AlignCenter)
+
+ widget_inner_grid = QWidget()
+ layout_outer.addWidget(widget_inner_grid, alignment=Qt.AlignmentFlag.AlignCenter)
+
+ self.layout_inner_grid = QGridLayout(widget_inner_grid)
+ k = 1
+ for i in range(self.rows):
+ for j in range(self.cols):
+ box = QLabel(f"{k}")
+ self.layout_inner_grid.addWidget(box, i, j, Qt.AlignmentFlag.AlignCenter)
+ k += 1
+
+ self.set_num.connect(self.set_num_handler)
+
+ @Slot(int, QColor)
+ def set_num_handler(self, i, color):
+ row = int((i - 1) / self.cols)
+ col = (i - 1) - (row * self.cols)
+ widget = self.layout_inner_grid.itemAtPosition(row, col).widget()
+
+ font = QFont()
+ font.setWeight(QFont.Bold)
+ palette = QPalette()
+ palette.setColor(QPalette.WindowText, color)
+ widget.setFont(font)
+ widget.setPalette(palette)
+
+
+class Eratosthenes(QObject):
+
+ """ This Sieve of Eratosthenes runs on a configurable tick (default
+ 0.1 seconds). At each tick, a new subroutine will be created
+ that will check multiples of the next prime number. Each of
+ these subroutines also operates on the same tick. """
+
+ def __init__(self, num, window, tick=0.1):
+ super().__init__()
+ self.num = num
+ self.sieve = [True] * self.num
+ self.base = 0
+ self.window = window
+ self.tick = tick
+ self.coroutines = []
+ self.done = False
+ self.nursery = None
+
+ async def start(self):
+ async with trio.open_nursery() as self.nursery:
+ self.nursery.start_soon(self.update_text)
+ while self.base <= self.num / 2:
+ await trio.sleep(self.tick)
+ for i in range(self.base + 1, self.num):
+ if self.sieve[i]:
+ self.base = i
+ break
+ self.nursery.start_soon(self.mark_number, self.base + 1)
+ while sum(self.coroutines) > 0:
+ await trio.sleep(self.tick)
+ self.done = True
+
+ async def mark_number(self, base):
+ id = len(self.coroutines)
+ self.coroutines.append(1)
+ color = QColor(randint(64, 192), randint(64, 192), randint(64, 192))
+ for i in range(2 * base, self.num + 1, base):
+ if self.sieve[i - 1]:
+ self.sieve[i - 1] = False
+ self.window.set_num.emit(i, color)
+ await trio.sleep(self.tick)
+ self.coroutines[id] = 0
+
+ async def update_text(self):
+ while not self.done:
+ await trio.sleep(self.tick)
+ if int(trio.lowlevel.current_clock().current_time() + self.tick) % 2:
+ text = "⚙️ ...Calculating prime numbers... ⚙️"
+ else:
+ text = "👩‍💻 ...Hacking the universe... 👩‍💻"
+ self.window.widget_outer_text.setText(text)
+
+ self.window.widget_outer_text.setText(
+ "🥳 Congratulations! You found all the prime numbers and solved mathematics. 🥳"
+ )
+
+
+class AsyncHelper(QObject):
+
+ class ReenterQtObject(QObject):
+ """ This is a QObject to which an event will be posted, allowing
+ Trio to resume when the event is handled. event.fn() is the
+ next entry point of the Trio event loop. """
+ def event(self, event):
+ if event.type() == QEvent.Type.User + 1:
+ event.fn()
+ return True
+ return False
+
+ class ReenterQtEvent(QEvent):
+ """ This is the QEvent that will be handled by the ReenterQtObject.
+ self.fn is the next entry point of the Trio event loop. """
+ def __init__(self, fn):
+ super().__init__(QEvent.Type(QEvent.Type.User + 1))
+ self.fn = fn
+
+ def __init__(self, worker, entry):
+ super().__init__()
+ self.reenter_qt = self.ReenterQtObject()
+ self.entry = entry
+
+ self.worker = worker
+ if hasattr(self.worker, "start_signal") and isinstance(self.worker.start_signal, Signal):
+ self.worker.start_signal.connect(self.launch_guest_run)
+
+ @Slot()
+ def launch_guest_run(self):
+ """ To use Trio and Qt together, one must run the Trio event
+ loop as a "guest" inside the Qt "host" event loop. """
+ if not self.entry:
+ raise Exception("No entry point for the Trio guest run was set.")
+ trio.lowlevel.start_guest_run(
+ self.entry,
+ run_sync_soon_threadsafe=self.next_guest_run_schedule,
+ done_callback=self.trio_done_callback,
+ )
+
+ def next_guest_run_schedule(self, fn):
+ """ This function serves to re-schedule the guest (Trio) event
+ loop inside the host (Qt) event loop. It is called by Trio
+ at the end of an event loop run in order to relinquish back
+ to Qt's event loop. By posting an event on the Qt event loop
+ that contains Trio's next entry point, it ensures that Trio's
+ event loop will be scheduled again by Qt. """
+ QApplication.postEvent(self.reenter_qt, self.ReenterQtEvent(fn))
+
+ def trio_done_callback(self, outcome_):
+ """ This function is called by Trio when its event loop has
+ finished. """
+ if isinstance(outcome_, outcome.Error):
+ error = outcome_.error
+ traceback.print_exception(type(error), error, error.__traceback__)
+
+
+if __name__ == "__main__":
+ rows = 40
+ cols = 40
+ num = rows * cols
+
+ app = QApplication(sys.argv)
+ main_window = MainWindow(rows, cols)
+ eratosthenes = Eratosthenes(num, main_window)
+ async_helper = AsyncHelper(eratosthenes, eratosthenes.start)
+
+ # This establishes the entry point for the Trio guest run. It varies
+ # depending on how and when its event loop is to be triggered, e.g.,
+ # from the beginning (as here) or rather at a specific moment like
+ # a button press.
+ QTimer.singleShot(0, async_helper.launch_guest_run)
+
+ main_window.show()
+
+ signal.signal(signal.SIGINT, signal.SIG_DFL)
+ app.exec()
diff --git a/examples/async/eratosthenes/requirements_trio.txt b/examples/async/eratosthenes/requirements_trio.txt
new file mode 100644
index 000000000..e2cc10204
--- /dev/null
+++ b/examples/async/eratosthenes/requirements_trio.txt
@@ -0,0 +1,2 @@
+trio
+outcome
diff --git a/examples/async/minimal/doc/minimal.png b/examples/async/minimal/doc/minimal.png
new file mode 100644
index 000000000..b8a18963f
--- /dev/null
+++ b/examples/async/minimal/doc/minimal.png
Binary files differ
diff --git a/examples/async/minimal/doc/minimal.rst b/examples/async/minimal/doc/minimal.rst
new file mode 100644
index 000000000..54f847ea9
--- /dev/null
+++ b/examples/async/minimal/doc/minimal.rst
@@ -0,0 +1,38 @@
+Async "Minimal" Example
+=======================
+
+The Python language provides keywords for asynchronous operations, i.e.,
+"async" to define coroutines or "await" to schedule asynchronous calls in the
+event loop (see `PEP 492 <https://peps.python.org/pep-0492/>`_). It is up to
+packages to implement an event loop, support for these keywords, and more.
+
+The best-known package for this is `asyncio`. asyncio offers an API that allows
+for the asyncio event loop to be replaced by a custom implementation. Such an
+implementation is available with the `QtAsyncio` module. It is based on Qt and
+uses Qt's event loop in the backend.
+
+`trio` is another popular package that offers a dedicated `low-level API
+<https://trio.readthedocs.io/en/stable/reference-lowlevel.html>`_ for more
+complex use cases. Specifically, there exists a function `start_guest_run` that
+enables running the Trio event loop as a "guest" inside another event loop -
+Qt's in our case, standing in contrast to asyncio's approach.
+
+Based on this functionality, two examples for async usage with Qt have been
+implemented: `eratosthenes` and `minimal`:
+
+.. image:: minimal.png
+ :alt: Async example: Minimal
+
+* `eratosthenes` is a more extensive example that visualizes the Sieve of
+ Eratosthenes algorithm. This algorithm per se is not one that is particularly
+ suitable for asynchronous operations as it's not I/O-heavy, but synchronizing
+ coroutines to a configurable tick allows for a good visualization.
+* `minimal` is a minimal example featuring a button that triggers an
+ asynchronous coroutine with a sleep. It is designed to highlight which
+ boilerplate code is essential for an async program with Qt and offers a
+ starting point for more complex programs.
+
+While `eratosthenes` offloads the asynchronous logic that will run in
+trio's/asyncio's event loop into a separate class, `minimal` demonstrates that
+async functions can be integrated into any class, including subclasses of Qt
+classes.
diff --git a/examples/async/minimal/minimal.pyproject b/examples/async/minimal/minimal.pyproject
new file mode 100644
index 000000000..b4b1a3f80
--- /dev/null
+++ b/examples/async/minimal/minimal.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["minimal_trio.py", "minimal_asyncio.py"]
+}
diff --git a/examples/async/minimal/minimal_asyncio.py b/examples/async/minimal/minimal_asyncio.py
new file mode 100644
index 000000000..a6c4708b3
--- /dev/null
+++ b/examples/async/minimal/minimal_asyncio.py
@@ -0,0 +1,40 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import Qt
+from PySide6.QtWidgets import (QApplication, QLabel, QMainWindow, QPushButton, QVBoxLayout, QWidget)
+
+import PySide6.QtAsyncio as QtAsyncio
+
+import asyncio
+import sys
+
+
+class MainWindow(QMainWindow):
+
+ def __init__(self):
+ super().__init__()
+
+ widget = QWidget()
+ self.setCentralWidget(widget)
+
+ layout = QVBoxLayout(widget)
+
+ self.text = QLabel("The answer is 42.")
+ layout.addWidget(self.text, alignment=Qt.AlignmentFlag.AlignCenter)
+
+ async_trigger = QPushButton(text="What is the question?")
+ async_trigger.clicked.connect(lambda: asyncio.ensure_future(self.set_text()))
+ layout.addWidget(async_trigger, alignment=Qt.AlignmentFlag.AlignCenter)
+
+ async def set_text(self):
+ await asyncio.sleep(1)
+ self.text.setText("What do you get if you multiply six by nine?")
+
+
+if __name__ == "__main__":
+ app = QApplication(sys.argv)
+ main_window = MainWindow()
+ main_window.show()
+
+ QtAsyncio.run(handle_sigint=True)
diff --git a/examples/async/minimal/minimal_trio.py b/examples/async/minimal/minimal_trio.py
new file mode 100644
index 000000000..5ae19fa36
--- /dev/null
+++ b/examples/async/minimal/minimal_trio.py
@@ -0,0 +1,107 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import (Qt, QEvent, QObject, Signal, Slot)
+from PySide6.QtWidgets import (QApplication, QLabel, QMainWindow, QPushButton, QVBoxLayout, QWidget)
+
+import outcome
+import signal
+import sys
+import traceback
+import trio
+
+
+class MainWindow(QMainWindow):
+
+ start_signal = Signal()
+
+ def __init__(self):
+ super().__init__()
+
+ widget = QWidget()
+ self.setCentralWidget(widget)
+
+ layout = QVBoxLayout(widget)
+
+ self.text = QLabel("The answer is 42.")
+ layout.addWidget(self.text, alignment=Qt.AlignmentFlag.AlignCenter)
+
+ async_trigger = QPushButton(text="What is the question?")
+ async_trigger.clicked.connect(self.async_start)
+ layout.addWidget(async_trigger, alignment=Qt.AlignmentFlag.AlignCenter)
+
+ @Slot()
+ def async_start(self):
+ self.start_signal.emit()
+
+ async def set_text(self):
+ await trio.sleep(1)
+ self.text.setText("What do you get if you multiply six by nine?")
+
+
+class AsyncHelper(QObject):
+
+ class ReenterQtObject(QObject):
+ """ This is a QObject to which an event will be posted, allowing
+ Trio to resume when the event is handled. event.fn() is the
+ next entry point of the Trio event loop. """
+ def event(self, event):
+ if event.type() == QEvent.Type.User + 1:
+ event.fn()
+ return True
+ return False
+
+ class ReenterQtEvent(QEvent):
+ """ This is the QEvent that will be handled by the ReenterQtObject.
+ self.fn is the next entry point of the Trio event loop. """
+ def __init__(self, fn):
+ super().__init__(QEvent.Type(QEvent.Type.User + 1))
+ self.fn = fn
+
+ def __init__(self, worker, entry):
+ super().__init__()
+ self.reenter_qt = self.ReenterQtObject()
+ self.entry = entry
+
+ self.worker = worker
+ if hasattr(self.worker, "start_signal") and isinstance(self.worker.start_signal, Signal):
+ self.worker.start_signal.connect(self.launch_guest_run)
+
+ @Slot()
+ def launch_guest_run(self):
+ """ To use Trio and Qt together, one must run the Trio event
+ loop as a "guest" inside the Qt "host" event loop. """
+ if not self.entry:
+ raise Exception("No entry point for the Trio guest run was set.")
+ trio.lowlevel.start_guest_run(
+ self.entry,
+ run_sync_soon_threadsafe=self.next_guest_run_schedule,
+ done_callback=self.trio_done_callback,
+ )
+
+ def next_guest_run_schedule(self, fn):
+ """ This function serves to re-schedule the guest (Trio) event
+ loop inside the host (Qt) event loop. It is called by Trio
+ at the end of an event loop run in order to relinquish back
+ to Qt's event loop. By posting an event on the Qt event loop
+ that contains Trio's next entry point, it ensures that Trio's
+ event loop will be scheduled again by Qt. """
+ QApplication.postEvent(self.reenter_qt, self.ReenterQtEvent(fn))
+
+ def trio_done_callback(self, outcome_):
+ """ This function is called by Trio when its event loop has
+ finished. """
+ if isinstance(outcome_, outcome.Error):
+ error = outcome_.error
+ traceback.print_exception(type(error), error, error.__traceback__)
+
+
+if __name__ == "__main__":
+ app = QApplication(sys.argv)
+ main_window = MainWindow()
+ async_helper = AsyncHelper(main_window, main_window.set_text)
+
+ main_window.show()
+
+ signal.signal(signal.SIGINT, signal.SIG_DFL)
+ app.exec()
diff --git a/examples/async/minimal/requirements_trio.txt b/examples/async/minimal/requirements_trio.txt
new file mode 100644
index 000000000..ae0d704f0
--- /dev/null
+++ b/examples/async/minimal/requirements_trio.txt
@@ -0,0 +1 @@
+trio
diff --git a/examples/axcontainer/axviewer/axviewer.py b/examples/axcontainer/axviewer/axviewer.py
index e7e03d2c9..bcd4c2714 100644
--- a/examples/axcontainer/axviewer/axviewer.py
+++ b/examples/axcontainer/axviewer/axviewer.py
@@ -1,43 +1,5 @@
-
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 Active Qt Viewer example"""
@@ -45,7 +7,7 @@ import sys
from PySide6.QtAxContainer import QAxSelect, QAxWidget
from PySide6.QtGui import QAction
from PySide6.QtWidgets import (QApplication, QDialog,
- QMainWindow, QMessageBox, QToolBar)
+ QMainWindow, QMessageBox, QToolBar)
class MainWindow(QMainWindow):
@@ -63,7 +25,7 @@ class MainWindow(QMainWindow):
fileMenu.addAction(exitAction)
aboutMenu = self.menuBar().addMenu("&About")
- aboutQtAct = QAction("About &Qt", self, triggered=qApp.aboutQt)
+ aboutQtAct = QAction("About &Qt", self, triggered=qApp.aboutQt) # noqa: F821
aboutMenu.addAction(aboutQtAct)
self.axWidget = QAxWidget()
self.setCentralWidget(self.axWidget)
diff --git a/examples/bluetooth/btscanner/btscanner.pyproject b/examples/bluetooth/btscanner/btscanner.pyproject
new file mode 100644
index 000000000..208487fe7
--- /dev/null
+++ b/examples/bluetooth/btscanner/btscanner.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["main.py", "device.py", "service.py", "device.ui", "service.ui"]
+}
diff --git a/examples/bluetooth/btscanner/device.py b/examples/bluetooth/btscanner/device.py
new file mode 100644
index 000000000..c75f5b8a1
--- /dev/null
+++ b/examples/bluetooth/btscanner/device.py
@@ -0,0 +1,130 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QPoint, Qt, Slot
+from PySide6.QtGui import QColor
+from PySide6.QtWidgets import QDialog, QListWidgetItem, QMenu
+from PySide6.QtBluetooth import (QBluetoothAddress, QBluetoothDeviceDiscoveryAgent,
+ QBluetoothDeviceInfo, QBluetoothLocalDevice)
+
+from ui_device import Ui_DeviceDiscovery
+from service import ServiceDiscoveryDialog
+
+
+class DeviceDiscoveryDialog(QDialog):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._local_device = QBluetoothLocalDevice()
+ self._ui = Ui_DeviceDiscovery()
+ self._ui.setupUi(self)
+ # In case of multiple Bluetooth adapters it is possible to set adapter
+ # which will be used. Example code:
+ #
+ # address = QBluetoothAddress("XX:XX:XX:XX:XX:XX")
+ # discoveryAgent = QBluetoothDeviceDiscoveryAgent(address)
+
+ self._discovery_agent = QBluetoothDeviceDiscoveryAgent()
+
+ self._ui.scan.clicked.connect(self.start_scan)
+ self._discovery_agent.deviceDiscovered.connect(self.add_device)
+ self._discovery_agent.finished.connect(self.scan_finished)
+ self._ui.list.itemActivated.connect(self.item_activated)
+ self._local_device.hostModeStateChanged.connect(self.host_mode_state_changed)
+
+ self.host_mode_state_changed(self._local_device.hostMode())
+ # add context menu for devices to be able to pair device
+ self._ui.list.setContextMenuPolicy(Qt.CustomContextMenu)
+ self._ui.list.customContextMenuRequested.connect(self.display_pairing_menu)
+ self._local_device.pairingFinished.connect(self.pairing_done)
+
+ @Slot(QBluetoothDeviceInfo)
+ def add_device(self, info):
+ a = info.address().toString()
+ label = f"{a} {info.name()}"
+ items = self._ui.list.findItems(label, Qt.MatchExactly)
+ if not items:
+ item = QListWidgetItem(label)
+ pairing_status = self._local_device.pairingStatus(info.address())
+ if (pairing_status == QBluetoothLocalDevice.Paired
+ or pairing_status == QBluetoothLocalDevice.AuthorizedPaired):
+ item.setForeground(QColor(Qt.green))
+ else:
+ item.setForeground(QColor(Qt.black))
+ self._ui.list.addItem(item)
+
+ @Slot()
+ def start_scan(self):
+ self._discovery_agent.start()
+ self._ui.scan.setEnabled(False)
+
+ @Slot()
+ def scan_finished(self):
+ self._ui.scan.setEnabled(True)
+
+ @Slot(QListWidgetItem)
+ def item_activated(self, item):
+ text = item.text()
+ index = text.find(' ')
+ if index == -1:
+ return
+
+ address = QBluetoothAddress(text[0:index])
+ name = text[index + 1:]
+
+ d = ServiceDiscoveryDialog(name, address)
+ d.exec()
+
+ @Slot(bool)
+ def on_discoverable_clicked(self, clicked):
+ if clicked:
+ self._local_device.setHostMode(QBluetoothLocalDevice.HostDiscoverable)
+ else:
+ self._local_device.setHostMode(QBluetoothLocalDevice.HostConnectable)
+
+ @Slot(bool)
+ def on_power_clicked(self, clicked):
+ if clicked:
+ self._local_device.powerOn()
+ else:
+ self._local_device.setHostMode(QBluetoothLocalDevice.HostPoweredOff)
+
+ @Slot("QBluetoothLocalDevice::HostMode")
+ def host_mode_state_changed(self, mode):
+ self._ui.power.setChecked(mode != QBluetoothLocalDevice.HostPoweredOff)
+ self._ui.discoverable.setChecked(mode == QBluetoothLocalDevice.HostDiscoverable)
+
+ on = mode != QBluetoothLocalDevice.HostPoweredOff
+ self._ui.scan.setEnabled(on)
+ self._ui.discoverable.setEnabled(on)
+
+ @Slot(QPoint)
+ def display_pairing_menu(self, pos):
+ if self._ui.list.count() == 0:
+ return
+ menu = QMenu(self)
+ pair_action = menu.addAction("Pair")
+ remove_pair_action = menu.addAction("Remove Pairing")
+ chosen_action = menu.exec(self._ui.list.viewport().mapToGlobal(pos))
+ current_item = self._ui.list.currentItem()
+
+ text = current_item.text()
+ index = text.find(' ')
+ if index == -1:
+ return
+
+ address = QBluetoothAddress(text[0:index])
+ if chosen_action == pair_action:
+ self._local_device.requestPairing(address, QBluetoothLocalDevice.Paired)
+ elif chosen_action == remove_pair_action:
+ self._local_device.requestPairing(address, QBluetoothLocalDevice.Unpaired)
+
+ @Slot(QBluetoothAddress, "QBluetoothLocalDevice::Pairing")
+ def pairing_done(self, address, pairing):
+ items = self._ui.list.findItems(address.toString(), Qt.MatchContains)
+
+ color = QColor(Qt.red)
+ if (pairing == QBluetoothLocalDevice.Paired
+ or pairing == QBluetoothLocalDevice.AuthorizedPaired):
+ color = QColor(Qt.green)
+ for item in items:
+ item.setForeground(color)
diff --git a/examples/bluetooth/btscanner/device.ui b/examples/bluetooth/btscanner/device.ui
new file mode 100644
index 000000000..fa81c5cb4
--- /dev/null
+++ b/examples/bluetooth/btscanner/device.ui
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>DeviceDiscovery</class>
+ <widget class="QDialog" name="DeviceDiscovery">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>400</width>
+ <height>411</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Bluetooth Scanner</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QListWidget" name="list"/>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox">
+ <property name="title">
+ <string>Local Device</string>
+ </property>
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
+ <item>
+ <widget class="QCheckBox" name="power">
+ <property name="text">
+ <string>Bluetooth Powered On</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="discoverable">
+ <property name="text">
+ <string>Discoverable</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QPushButton" name="scan">
+ <property name="text">
+ <string>Scan</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="clear">
+ <property name="text">
+ <string>Clear</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="quit">
+ <property name="text">
+ <string>Quit</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>quit</sender>
+ <signal>clicked()</signal>
+ <receiver>DeviceDiscovery</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>323</x>
+ <y>275</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>396</x>
+ <y>268</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>clear</sender>
+ <signal>clicked()</signal>
+ <receiver>list</receiver>
+ <slot>clear()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>188</x>
+ <y>276</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>209</x>
+ <y>172</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/examples/bluetooth/btscanner/doc/btscanner.rst b/examples/bluetooth/btscanner/doc/btscanner.rst
new file mode 100644
index 000000000..d99af3be5
--- /dev/null
+++ b/examples/bluetooth/btscanner/doc/btscanner.rst
@@ -0,0 +1,4 @@
+Bluetooth Scanner Example
+=========================
+
+An example showing how to locate Bluetooth devices.
diff --git a/examples/bluetooth/btscanner/main.py b/examples/bluetooth/btscanner/main.py
new file mode 100644
index 000000000..a54a862a2
--- /dev/null
+++ b/examples/bluetooth/btscanner/main.py
@@ -0,0 +1,17 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the bluetooth/btscanner example from Qt v6.x"""
+
+import sys
+
+from PySide6.QtWidgets import QApplication
+
+from device import DeviceDiscoveryDialog
+
+
+if __name__ == '__main__':
+ app = QApplication(sys.argv)
+ d = DeviceDiscoveryDialog()
+ d.exec()
+ sys.exit(0)
diff --git a/examples/bluetooth/btscanner/service.py b/examples/bluetooth/btscanner/service.py
new file mode 100644
index 000000000..31df8a9ea
--- /dev/null
+++ b/examples/bluetooth/btscanner/service.py
@@ -0,0 +1,48 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import Slot
+from PySide6.QtWidgets import QDialog
+from PySide6.QtBluetooth import (QBluetoothAddress, QBluetoothServiceInfo,
+ QBluetoothServiceDiscoveryAgent, QBluetoothLocalDevice)
+
+from ui_service import Ui_ServiceDiscovery
+
+
+class ServiceDiscoveryDialog(QDialog):
+ def __init__(self, name, address, parent=None):
+ super().__init__(parent)
+ self._ui = Ui_ServiceDiscovery()
+ self._ui.setupUi(self)
+
+ # Using default Bluetooth adapter
+ local_device = QBluetoothLocalDevice()
+ adapter_address = QBluetoothAddress(local_device.address())
+
+ # In case of multiple Bluetooth adapters it is possible to
+ # set which adapter will be used by providing MAC Address.
+ # Example code:
+ #
+ # adapterAddress = QBluetoothAddress("XX:XX:XX:XX:XX:XX")
+ # discoveryAgent = QBluetoothServiceDiscoveryAgent(adapterAddress)
+
+ self._discovery_agent = QBluetoothServiceDiscoveryAgent(adapter_address)
+ self._discovery_agent.setRemoteAddress(address)
+
+ self.setWindowTitle(name)
+
+ self._discovery_agent.serviceDiscovered.connect(self.add_service)
+ self._discovery_agent.finished.connect(self._ui.status.hide)
+ self._discovery_agent.start()
+
+ @Slot(QBluetoothServiceInfo)
+ def add_service(self, info):
+ line = info.serviceName()
+ if not line:
+ return
+
+ if info.serviceDescription():
+ line += "\n\t" + info.serviceDescription()
+ if info.serviceProvider():
+ line += "\n\t" + info.serviceProvider()
+ self._ui.list.addItem(line)
diff --git a/examples/bluetooth/btscanner/service.ui b/examples/bluetooth/btscanner/service.ui
new file mode 100644
index 000000000..4ca12ee05
--- /dev/null
+++ b/examples/bluetooth/btscanner/service.ui
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>ServiceDiscovery</class>
+ <widget class="QDialog" name="ServiceDiscovery">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>539</width>
+ <height>486</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Available Services</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QListWidget" name="list"/>
+ </item>
+ <item>
+ <widget class="QLabel" name="status">
+ <property name="text">
+ <string>Querying...</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Close</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>ServiceDiscovery</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>396</x>
+ <y>457</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>535</x>
+ <y>443</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>ServiceDiscovery</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>339</x>
+ <y>464</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>535</x>
+ <y>368</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/examples/bluetooth/btscanner/ui_device.py b/examples/bluetooth/btscanner/ui_device.py
new file mode 100644
index 000000000..b443b2bc2
--- /dev/null
+++ b/examples/bluetooth/btscanner/ui_device.py
@@ -0,0 +1,90 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'device.ui'
+##
+## Created by: Qt User Interface Compiler version 6.7.0
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
+ QFont, QFontDatabase, QGradient, QIcon,
+ QImage, QKeySequence, QLinearGradient, QPainter,
+ QPalette, QPixmap, QRadialGradient, QTransform)
+from PySide6.QtWidgets import (QApplication, QCheckBox, QDialog, QGroupBox,
+ QHBoxLayout, QListWidget, QListWidgetItem, QPushButton,
+ QSizePolicy, QVBoxLayout, QWidget)
+
+class Ui_DeviceDiscovery(object):
+ def setupUi(self, DeviceDiscovery):
+ if not DeviceDiscovery.objectName():
+ DeviceDiscovery.setObjectName(u"DeviceDiscovery")
+ DeviceDiscovery.resize(400, 411)
+ self.verticalLayout = QVBoxLayout(DeviceDiscovery)
+ self.verticalLayout.setObjectName(u"verticalLayout")
+ self.list = QListWidget(DeviceDiscovery)
+ self.list.setObjectName(u"list")
+
+ self.verticalLayout.addWidget(self.list)
+
+ self.groupBox = QGroupBox(DeviceDiscovery)
+ self.groupBox.setObjectName(u"groupBox")
+ self.horizontalLayout_2 = QHBoxLayout(self.groupBox)
+ self.horizontalLayout_2.setObjectName(u"horizontalLayout_2")
+ self.power = QCheckBox(self.groupBox)
+ self.power.setObjectName(u"power")
+ self.power.setChecked(True)
+
+ self.horizontalLayout_2.addWidget(self.power)
+
+ self.discoverable = QCheckBox(self.groupBox)
+ self.discoverable.setObjectName(u"discoverable")
+ self.discoverable.setChecked(True)
+
+ self.horizontalLayout_2.addWidget(self.discoverable)
+
+
+ self.verticalLayout.addWidget(self.groupBox)
+
+ self.horizontalLayout = QHBoxLayout()
+ self.horizontalLayout.setObjectName(u"horizontalLayout")
+ self.scan = QPushButton(DeviceDiscovery)
+ self.scan.setObjectName(u"scan")
+
+ self.horizontalLayout.addWidget(self.scan)
+
+ self.clear = QPushButton(DeviceDiscovery)
+ self.clear.setObjectName(u"clear")
+
+ self.horizontalLayout.addWidget(self.clear)
+
+ self.quit = QPushButton(DeviceDiscovery)
+ self.quit.setObjectName(u"quit")
+
+ self.horizontalLayout.addWidget(self.quit)
+
+
+ self.verticalLayout.addLayout(self.horizontalLayout)
+
+
+ self.retranslateUi(DeviceDiscovery)
+ self.quit.clicked.connect(DeviceDiscovery.accept)
+ self.clear.clicked.connect(self.list.clear)
+
+ QMetaObject.connectSlotsByName(DeviceDiscovery)
+ # setupUi
+
+ def retranslateUi(self, DeviceDiscovery):
+ DeviceDiscovery.setWindowTitle(QCoreApplication.translate("DeviceDiscovery", u"Bluetooth Scanner", None))
+ self.groupBox.setTitle(QCoreApplication.translate("DeviceDiscovery", u"Local Device", None))
+ self.power.setText(QCoreApplication.translate("DeviceDiscovery", u"Bluetooth Powered On", None))
+ self.discoverable.setText(QCoreApplication.translate("DeviceDiscovery", u"Discoverable", None))
+ self.scan.setText(QCoreApplication.translate("DeviceDiscovery", u"Scan", None))
+ self.clear.setText(QCoreApplication.translate("DeviceDiscovery", u"Clear", None))
+ self.quit.setText(QCoreApplication.translate("DeviceDiscovery", u"Quit", None))
+ # retranslateUi
+
diff --git a/examples/bluetooth/btscanner/ui_service.py b/examples/bluetooth/btscanner/ui_service.py
new file mode 100644
index 000000000..ccc36677a
--- /dev/null
+++ b/examples/bluetooth/btscanner/ui_service.py
@@ -0,0 +1,57 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'service.ui'
+##
+## Created by: Qt User Interface Compiler version 6.7.0
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
+ QFont, QFontDatabase, QGradient, QIcon,
+ QImage, QKeySequence, QLinearGradient, QPainter,
+ QPalette, QPixmap, QRadialGradient, QTransform)
+from PySide6.QtWidgets import (QAbstractButton, QApplication, QDialog, QDialogButtonBox,
+ QLabel, QListWidget, QListWidgetItem, QSizePolicy,
+ QVBoxLayout, QWidget)
+
+class Ui_ServiceDiscovery(object):
+ def setupUi(self, ServiceDiscovery):
+ if not ServiceDiscovery.objectName():
+ ServiceDiscovery.setObjectName(u"ServiceDiscovery")
+ ServiceDiscovery.resize(539, 486)
+ self.verticalLayout = QVBoxLayout(ServiceDiscovery)
+ self.verticalLayout.setObjectName(u"verticalLayout")
+ self.list = QListWidget(ServiceDiscovery)
+ self.list.setObjectName(u"list")
+
+ self.verticalLayout.addWidget(self.list)
+
+ self.status = QLabel(ServiceDiscovery)
+ self.status.setObjectName(u"status")
+
+ self.verticalLayout.addWidget(self.status)
+
+ self.buttonBox = QDialogButtonBox(ServiceDiscovery)
+ self.buttonBox.setObjectName(u"buttonBox")
+ self.buttonBox.setStandardButtons(QDialogButtonBox.Close)
+
+ self.verticalLayout.addWidget(self.buttonBox)
+
+
+ self.retranslateUi(ServiceDiscovery)
+ self.buttonBox.accepted.connect(ServiceDiscovery.accept)
+ self.buttonBox.rejected.connect(ServiceDiscovery.reject)
+
+ QMetaObject.connectSlotsByName(ServiceDiscovery)
+ # setupUi
+
+ def retranslateUi(self, ServiceDiscovery):
+ ServiceDiscovery.setWindowTitle(QCoreApplication.translate("ServiceDiscovery", u"Available Services", None))
+ self.status.setText(QCoreApplication.translate("ServiceDiscovery", u"Querying...", None))
+ # retranslateUi
+
diff --git a/examples/bluetooth/heartrate_game/HeartRateGame/App.qml b/examples/bluetooth/heartrate_game/HeartRateGame/App.qml
new file mode 100644
index 000000000..db6aa7145
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/HeartRateGame/App.qml
@@ -0,0 +1,99 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Layouts
+import HeartRateGame
+
+Item {
+ id: app
+
+ required property ConnectionHandler connectionHandler
+ required property DeviceFinder deviceFinder
+ required property DeviceHandler deviceHandler
+
+ anchors.fill: parent
+ opacity: 0.0
+
+ Behavior on opacity {
+ NumberAnimation {
+ duration: 500
+ }
+ }
+
+ property int __currentIndex: 0
+
+ TitleBar {
+ id: titleBar
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ currentIndex: app.__currentIndex
+
+ onTitleClicked: (index) => {
+ if (index < app.__currentIndex)
+ app.__currentIndex = index
+ }
+ }
+
+ StackLayout {
+ id: pageStack
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.top: titleBar.bottom
+ anchors.bottom: parent.bottom
+ currentIndex: app.__currentIndex
+
+ Connect {
+ connectionHandler: app.connectionHandler
+ deviceFinder: app.deviceFinder
+ deviceHandler: app.deviceHandler
+
+ onShowMeasurePage: app.__currentIndex = 1
+ }
+ Measure {
+ id: measurePage
+ deviceHandler: app.deviceHandler
+
+ onShowStatsPage: app.__currentIndex = 2
+ }
+ Stats {
+ deviceHandler: app.deviceHandler
+ }
+
+ onCurrentIndexChanged: {
+ if (currentIndex === 0)
+ measurePage.close()
+ }
+ }
+
+ BluetoothAlarmDialog {
+ id: btAlarmDialog
+ anchors.fill: parent
+ visible: !app.connectionHandler.alive || permissionError
+ permissionError: !app.connectionHandler.hasPermission
+ }
+
+ Keys.onReleased: (event) => {
+ switch (event.key) {
+ case Qt.Key_Escape:
+ case Qt.Key_Back:
+ {
+ if (app.__currentIndex > 0) {
+ app.__currentIndex = app.__currentIndex - 1
+ event.accepted = true
+ } else {
+ Qt.quit()
+ }
+ break
+ }
+ default:
+ break
+ }
+ }
+
+ Component.onCompleted: {
+ forceActiveFocus()
+ app.opacity = 1.0
+ }
+}
diff --git a/examples/bluetooth/heartrate_game/HeartRateGame/BluetoothAlarmDialog.qml b/examples/bluetooth/heartrate_game/HeartRateGame/BluetoothAlarmDialog.qml
new file mode 100644
index 000000000..3687b1331
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/HeartRateGame/BluetoothAlarmDialog.qml
@@ -0,0 +1,79 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+
+Item {
+ id: root
+
+ property bool permissionError: false
+
+ anchors.fill: parent
+
+ Rectangle {
+ anchors.fill: parent
+ color: "black"
+ opacity: 0.9
+ }
+
+ MouseArea {
+ id: eventEater
+ }
+
+ Rectangle {
+ id: dialogFrame
+
+ anchors.centerIn: parent
+ width: parent.width * 0.8
+ height: parent.height * 0.6
+ border.color: "#454545"
+ color: GameSettings.backgroundColor
+ radius: width * 0.05
+
+ Item {
+ id: dialogContainer
+ anchors.fill: parent
+ anchors.margins: parent.width*0.05
+
+ Image {
+ id: offOnImage
+ anchors.left: quitButton.left
+ anchors.right: quitButton.right
+ anchors.top: parent.top
+ height: GameSettings.heightForWidth(width, sourceSize)
+ source: "images/bt_off_to_on.png"
+ }
+
+ Text {
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.top: offOnImage.bottom
+ anchors.bottom: quitButton.top
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ wrapMode: Text.WordWrap
+ font.pixelSize: GameSettings.mediumFontSize
+ color: GameSettings.textColor
+ text: root.permissionError
+ ? qsTr("Bluetooth permissions are not granted. Please grant the permissions in the system settings.")
+ : qsTr("This application cannot be used without Bluetooth. Please switch Bluetooth ON to continue.")
+ }
+
+ GameButton {
+ id: quitButton
+ anchors.bottom: parent.bottom
+ anchors.horizontalCenter: parent.horizontalCenter
+ width: dialogContainer.width * 0.6
+ height: GameSettings.buttonHeight
+ onClicked: Qt.quit()
+
+ Text {
+ anchors.centerIn: parent
+ color: GameSettings.textColor
+ font.pixelSize: GameSettings.bigFontSize
+ text: qsTr("Quit")
+ }
+ }
+ }
+ }
+}
diff --git a/examples/bluetooth/heartrate_game/HeartRateGame/BottomLine.qml b/examples/bluetooth/heartrate_game/HeartRateGame/BottomLine.qml
new file mode 100644
index 000000000..caebc307e
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/HeartRateGame/BottomLine.qml
@@ -0,0 +1,12 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+
+Rectangle {
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.bottom: parent.bottom
+ width: parent.width * 0.85
+ height: parent.height * 0.05
+ radius: height*0.5
+}
diff --git a/examples/bluetooth/heartrate_game/HeartRateGame/Connect.qml b/examples/bluetooth/heartrate_game/HeartRateGame/Connect.qml
new file mode 100644
index 000000000..ca8ef2923
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/HeartRateGame/Connect.qml
@@ -0,0 +1,159 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+pragma ComponentBehavior: Bound
+import QtQuick
+import HeartRateGame
+
+GamePage {
+ id: connectPage
+
+ required property ConnectionHandler connectionHandler
+ required property DeviceFinder deviceFinder
+ required property DeviceHandler deviceHandler
+
+ signal showMeasurePage
+
+ errorMessage: deviceFinder.error
+ infoMessage: deviceFinder.info
+
+ Rectangle {
+ id: viewContainer
+ anchors.top: parent.top
+ // only BlueZ platform has address type selection
+ anchors.bottom: connectPage.connectionHandler.requiresAddressType ? addressTypeButton.top
+ : searchButton.top
+ anchors.topMargin: GameSettings.fieldMargin + connectPage.messageHeight
+ anchors.bottomMargin: GameSettings.fieldMargin
+ anchors.horizontalCenter: parent.horizontalCenter
+ width: parent.width - GameSettings.fieldMargin * 2
+ color: GameSettings.viewColor
+ radius: GameSettings.buttonRadius
+
+ Text {
+ id: title
+ width: parent.width
+ height: GameSettings.fieldHeight
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ color: GameSettings.textColor
+ font.pixelSize: GameSettings.mediumFontSize
+ text: qsTr("FOUND DEVICES")
+
+ BottomLine {
+ height: 1
+ width: parent.width
+ color: "#898989"
+ }
+ }
+
+ ListView {
+ id: devices
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.bottom: parent.bottom
+ anchors.top: title.bottom
+ model: connectPage.deviceFinder.devices
+ clip: true
+
+ delegate: Rectangle {
+ id: box
+
+ required property int index
+ required property var modelData
+
+ height: GameSettings.fieldHeight * 1.2
+ width: devices.width
+ color: index % 2 === 0 ? GameSettings.delegate1Color : GameSettings.delegate2Color
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: {
+ connectPage.deviceFinder.connectToService(box.modelData.deviceAddress)
+ connectPage.showMeasurePage()
+ }
+ }
+
+ Text {
+ id: device
+ font.pixelSize: GameSettings.smallFontSize
+ text: box.modelData.deviceName
+ anchors.top: parent.top
+ anchors.topMargin: parent.height * 0.1
+ anchors.leftMargin: parent.height * 0.1
+ anchors.left: parent.left
+ color: GameSettings.textColor
+ }
+
+ Text {
+ id: deviceAddress
+ font.pixelSize: GameSettings.smallFontSize
+ text: box.modelData.deviceAddress
+ anchors.bottom: parent.bottom
+ anchors.bottomMargin: parent.height * 0.1
+ anchors.rightMargin: parent.height * 0.1
+ anchors.right: parent.right
+ color: Qt.darker(GameSettings.textColor)
+ }
+ }
+ }
+ }
+
+ GameButton {
+ id: addressTypeButton
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.bottom: searchButton.top
+ anchors.bottomMargin: GameSettings.fieldMargin * 0.5
+ width: viewContainer.width
+ height: GameSettings.fieldHeight
+ visible: connectPage.connectionHandler.requiresAddressType // only required on BlueZ
+ state: "public"
+ onClicked: state === "public" ? state = "random" : state = "public"
+
+ states: [
+ State {
+ name: "public"
+ PropertyChanges {
+ addressTypeText.text: qsTr("Public Address")
+ }
+ PropertyChanges {
+ connectPage.deviceHandler.addressType: DeviceHandler.PUBLIC_ADDRESS
+ }
+ },
+ State {
+ name: "random"
+ PropertyChanges {
+ addressTypeText.text: qsTr("Random Address")
+ }
+ PropertyChanges {
+ connectPage.deviceHandler.addressType: DeviceHandler.RANDOM_ADDRESS
+ }
+ }
+ ]
+
+ Text {
+ id: addressTypeText
+ anchors.centerIn: parent
+ font.pixelSize: GameSettings.tinyFontSize
+ color: GameSettings.textColor
+ }
+ }
+
+ GameButton {
+ id: searchButton
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.bottom: parent.bottom
+ anchors.bottomMargin: GameSettings.fieldMargin
+ width: viewContainer.width
+ height: GameSettings.fieldHeight
+ enabled: !connectPage.deviceFinder.scanning
+ onClicked: connectPage.deviceFinder.startSearch()
+
+ Text {
+ anchors.centerIn: parent
+ font.pixelSize: GameSettings.tinyFontSize
+ text: qsTr("START SEARCH")
+ color: searchButton.enabled ? GameSettings.textColor : GameSettings.disabledTextColor
+ }
+ }
+}
diff --git a/examples/bluetooth/heartrate_game/HeartRateGame/GameButton.qml b/examples/bluetooth/heartrate_game/HeartRateGame/GameButton.qml
new file mode 100644
index 000000000..8e8760102
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/HeartRateGame/GameButton.qml
@@ -0,0 +1,39 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+
+Rectangle {
+ id: button
+ color: baseColor
+ onEnabledChanged: checkColor()
+ radius: GameSettings.buttonRadius
+
+ property color baseColor: GameSettings.buttonColor
+ property color pressedColor: GameSettings.buttonPressedColor
+ property color disabledColor: GameSettings.disabledButtonColor
+
+ signal clicked
+
+ function checkColor() {
+ if (!button.enabled) {
+ button.color = disabledColor
+ } else {
+ if (mouseArea.containsPress)
+ button.color = pressedColor
+ else
+ button.color = baseColor
+ }
+ }
+
+ MouseArea {
+ id: mouseArea
+ anchors.fill: parent
+ onPressed: button.checkColor()
+ onReleased: button.checkColor()
+ onClicked: {
+ button.checkColor()
+ button.clicked()
+ }
+ }
+}
diff --git a/examples/bluetooth/heartrate_game/HeartRateGame/GamePage.qml b/examples/bluetooth/heartrate_game/HeartRateGame/GamePage.qml
new file mode 100644
index 000000000..249f94186
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/HeartRateGame/GamePage.qml
@@ -0,0 +1,36 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+
+Item {
+ id: page
+
+ property string errorMessage: ""
+ property string infoMessage: ""
+ property real messageHeight: msg.height
+ property bool hasError: errorMessage != ""
+ property bool hasInfo: infoMessage != ""
+
+ Rectangle {
+ id: msg
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ height: GameSettings.fieldHeight
+ color: page.hasError ? GameSettings.errorColor : GameSettings.infoColor
+ visible: page.hasError || page.hasInfo
+
+ Text {
+ id: error
+ anchors.fill: parent
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ minimumPixelSize: 5
+ font.pixelSize: GameSettings.smallFontSize
+ fontSizeMode: Text.Fit
+ color: GameSettings.textColor
+ text: page.hasError ? page.errorMessage : page.infoMessage
+ }
+ }
+}
diff --git a/examples/bluetooth/heartrate_game/HeartRateGame/GameSettings.qml b/examples/bluetooth/heartrate_game/HeartRateGame/GameSettings.qml
new file mode 100644
index 000000000..0fe854609
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/HeartRateGame/GameSettings.qml
@@ -0,0 +1,51 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+pragma Singleton
+import QtQuick
+
+Item {
+ property int wHeight
+ property int wWidth
+
+ // Colors
+ readonly property color backgroundColor: "#2d3037"
+ readonly property color buttonColor: "#202227"
+ readonly property color buttonPressedColor: "#6ccaf2"
+ readonly property color disabledButtonColor: "#555555"
+ readonly property color viewColor: "#202227"
+ readonly property color delegate1Color: Qt.darker(viewColor, 1.2)
+ readonly property color delegate2Color: Qt.lighter(viewColor, 1.2)
+ readonly property color textColor: "#ffffff"
+ readonly property color textDarkColor: "#232323"
+ readonly property color disabledTextColor: "#777777"
+ readonly property color sliderColor: "#6ccaf2"
+ readonly property color errorColor: "#ba3f62"
+ readonly property color infoColor: "#3fba62"
+
+ // Font sizes
+ property real microFontSize: hugeFontSize * 0.2
+ property real tinyFontSize: hugeFontSize * 0.4
+ property real smallTinyFontSize: hugeFontSize * 0.5
+ property real smallFontSize: hugeFontSize * 0.6
+ property real mediumFontSize: hugeFontSize * 0.7
+ property real bigFontSize: hugeFontSize * 0.8
+ property real largeFontSize: hugeFontSize * 0.9
+ property real hugeFontSize: (wWidth + wHeight) * 0.03
+ property real giganticFontSize: (wWidth + wHeight) * 0.04
+
+ // Some other values
+ property real fieldHeight: wHeight * 0.08
+ property real fieldMargin: fieldHeight * 0.5
+ property real buttonHeight: wHeight * 0.08
+ property real buttonRadius: buttonHeight * 0.1
+
+ // Some help functions
+ function widthForHeight(h, ss) {
+ return h / ss.height * ss.width
+ }
+
+ function heightForWidth(w, ss) {
+ return w / ss.width * ss.height
+ }
+}
diff --git a/examples/bluetooth/heartrate_game/HeartRateGame/Main.qml b/examples/bluetooth/heartrate_game/HeartRateGame/Main.qml
new file mode 100644
index 000000000..e26f9b004
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/HeartRateGame/Main.qml
@@ -0,0 +1,71 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+pragma ComponentBehavior: Bound
+import QtQuick
+import QtQuick.Window
+import HeartRateGame
+
+Window {
+ id: wroot
+ visible: true
+ width: 720 * .7
+ height: 1240 * .7
+ title: qsTr("HeartRateGame")
+ color: GameSettings.backgroundColor
+
+ required property ConnectionHandler connectionHandler
+ required property DeviceFinder deviceFinder
+ required property DeviceHandler deviceHandler
+
+ Component.onCompleted: {
+ GameSettings.wWidth = Qt.binding(function () {
+ return width
+ })
+ GameSettings.wHeight = Qt.binding(function () {
+ return height
+ })
+ }
+
+ Loader {
+ id: splashLoader
+ anchors.fill: parent
+ asynchronous: false
+ visible: true
+
+ sourceComponent: SplashScreen {
+ appIsReady: appLoader.status === Loader.Ready
+ onReadyChanged: {
+ if (ready) {
+ appLoader.visible = true
+ splashLoader.visible = false
+ splashLoader.active = false
+ }
+ }
+ }
+
+ onStatusChanged: {
+ if (status === Loader.Ready)
+ appLoader.active = true
+ }
+ }
+
+ Loader {
+ id: appLoader
+ anchors.fill: parent
+ active: false
+ asynchronous: true
+ visible: false
+
+ sourceComponent: App {
+ connectionHandler: wroot.connectionHandler
+ deviceFinder: wroot.deviceFinder
+ deviceHandler: wroot.deviceHandler
+ }
+
+ onStatusChanged: {
+ if (status === Loader.Error)
+ Qt.quit()
+ }
+ }
+}
diff --git a/examples/bluetooth/heartrate_game/HeartRateGame/Measure.qml b/examples/bluetooth/heartrate_game/HeartRateGame/Measure.qml
new file mode 100644
index 000000000..48e84e762
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/HeartRateGame/Measure.qml
@@ -0,0 +1,212 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import HeartRateGame
+
+GamePage {
+ id: measurePage
+
+ required property DeviceHandler deviceHandler
+
+ errorMessage: deviceHandler.error
+ infoMessage: deviceHandler.info
+
+ property real __timeCounter: 0
+ property real __maxTimeCount: 60
+ property string relaxText: qsTr("Relax!\nWhen you are ready, press Start. You have %1s time to increase heartrate so much as possible.\nGood luck!").arg(__maxTimeCount)
+
+ signal showStatsPage
+
+ function close() {
+ deviceHandler.stopMeasurement()
+ deviceHandler.disconnectService()
+ }
+
+ function start() {
+ if (!deviceHandler.measuring) {
+ __timeCounter = 0
+ deviceHandler.startMeasurement()
+ }
+ }
+
+ function stop() {
+ if (deviceHandler.measuring)
+ deviceHandler.stopMeasurement()
+
+ measurePage.showStatsPage()
+ }
+
+ Timer {
+ id: measureTimer
+ interval: 1000
+ running: measurePage.deviceHandler.measuring
+ repeat: true
+ onTriggered: {
+ measurePage.__timeCounter++
+ if (measurePage.__timeCounter >= measurePage.__maxTimeCount)
+ measurePage.stop()
+ }
+ }
+
+ Column {
+ anchors.centerIn: parent
+ spacing: GameSettings.fieldHeight * 0.5
+
+ Rectangle {
+ id: circle
+ anchors.horizontalCenter: parent.horizontalCenter
+ width: Math.min(measurePage.width, measurePage.height - GameSettings.fieldHeight * 4)
+ - 2 * GameSettings.fieldMargin
+ height: width
+ radius: width * 0.5
+ color: GameSettings.viewColor
+
+ Text {
+ id: hintText
+ anchors.centerIn: parent
+ anchors.verticalCenterOffset: -parent.height * 0.1
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ width: parent.width * 0.8
+ height: parent.height * 0.6
+ wrapMode: Text.WordWrap
+ text: measurePage.relaxText
+ visible: !measurePage.deviceHandler.measuring
+ color: GameSettings.textColor
+ fontSizeMode: Text.Fit
+ minimumPixelSize: 10
+ font.pixelSize: GameSettings.mediumFontSize
+ }
+
+ Text {
+ id: text
+ anchors.centerIn: parent
+ anchors.verticalCenterOffset: -parent.height * 0.15
+ font.pixelSize: parent.width * 0.45
+ text: measurePage.deviceHandler.hr
+ visible: measurePage.deviceHandler.measuring
+ color: GameSettings.textColor
+ }
+
+ Item {
+ id: minMaxContainer
+ anchors.horizontalCenter: parent.horizontalCenter
+ width: parent.width * 0.7
+ height: parent.height * 0.15
+ anchors.bottom: parent.bottom
+ anchors.bottomMargin: parent.height * 0.16
+ visible: measurePage.deviceHandler.measuring
+
+ Text {
+ anchors.left: parent.left
+ anchors.verticalCenter: parent.verticalCenter
+ text: measurePage.deviceHandler.minHR
+ color: GameSettings.textColor
+ font.pixelSize: GameSettings.hugeFontSize
+
+ Text {
+ anchors.left: parent.left
+ anchors.bottom: parent.top
+ font.pixelSize: parent.font.pixelSize * 0.8
+ color: parent.color
+ text: "MIN"
+ }
+ }
+
+ Text {
+ anchors.right: parent.right
+ anchors.verticalCenter: parent.verticalCenter
+ text: measurePage.deviceHandler.maxHR
+ color: GameSettings.textColor
+ font.pixelSize: GameSettings.hugeFontSize
+
+ Text {
+ anchors.right: parent.right
+ anchors.bottom: parent.top
+ font.pixelSize: parent.font.pixelSize * 0.8
+ color: parent.color
+ text: "MAX"
+ }
+ }
+ }
+
+ Image {
+ id: heart
+ anchors.horizontalCenter: minMaxContainer.horizontalCenter
+ anchors.verticalCenter: minMaxContainer.bottom
+ width: parent.width * 0.2
+ height: width
+ source: "images/heart.png"
+ smooth: true
+ antialiasing: true
+
+ SequentialAnimation {
+ id: heartAnim
+ running: measurePage.deviceHandler.alive
+ loops: Animation.Infinite
+ alwaysRunToEnd: true
+ PropertyAnimation {
+ target: heart
+ property: "scale"
+ to: 1.2
+ duration: 500
+ easing.type: Easing.InQuad
+ }
+ PropertyAnimation {
+ target: heart
+ property: "scale"
+ to: 1.0
+ duration: 500
+ easing.type: Easing.OutQuad
+ }
+ }
+ }
+ }
+
+ Rectangle {
+ id: timeSlider
+ color: GameSettings.viewColor
+ anchors.horizontalCenter: parent.horizontalCenter
+ width: circle.width
+ height: GameSettings.fieldHeight
+ radius: GameSettings.buttonRadius
+
+ Rectangle {
+ height: parent.height
+ radius: parent.radius
+ color: GameSettings.sliderColor
+ width: Math.min(
+ 1.0,
+ measurePage.__timeCounter / measurePage.__maxTimeCount) * parent.width
+ }
+
+ Text {
+ anchors.centerIn: parent
+ color: "gray"
+ text: (measurePage.__maxTimeCount - measurePage.__timeCounter).toFixed(0) + " s"
+ font.pixelSize: GameSettings.bigFontSize
+ }
+ }
+ }
+
+ GameButton {
+ id: startButton
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.bottom: parent.bottom
+ anchors.bottomMargin: GameSettings.fieldMargin
+ width: circle.width
+ height: GameSettings.fieldHeight
+ enabled: !measurePage.deviceHandler.measuring
+ radius: GameSettings.buttonRadius
+
+ onClicked: measurePage.start()
+
+ Text {
+ anchors.centerIn: parent
+ font.pixelSize: GameSettings.tinyFontSize
+ text: qsTr("START")
+ color: startButton.enabled ? GameSettings.textColor : GameSettings.disabledTextColor
+ }
+ }
+}
diff --git a/examples/bluetooth/heartrate_game/HeartRateGame/SplashScreen.qml b/examples/bluetooth/heartrate_game/HeartRateGame/SplashScreen.qml
new file mode 100644
index 000000000..2f9ac1b3f
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/HeartRateGame/SplashScreen.qml
@@ -0,0 +1,30 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import HeartRateGame
+
+Item {
+ id: root
+
+ property bool appIsReady: false
+ property bool splashIsReady: false
+ property bool ready: appIsReady && splashIsReady
+
+ anchors.fill: parent
+
+ Image {
+ anchors.centerIn: parent
+ width: Math.min(parent.height, parent.width) * 0.6
+ height: GameSettings.heightForWidth(width, sourceSize)
+ source: "images/logo.png"
+ }
+
+ Timer {
+ id: splashTimer
+ interval: 1000
+ onTriggered: splashIsReady = true
+ }
+
+ Component.onCompleted: splashTimer.start()
+}
diff --git a/examples/bluetooth/heartrate_game/HeartRateGame/Stats.qml b/examples/bluetooth/heartrate_game/HeartRateGame/Stats.qml
new file mode 100644
index 000000000..22cdd5365
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/HeartRateGame/Stats.qml
@@ -0,0 +1,55 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import HeartRateGame
+
+GamePage {
+ id: statsPage
+
+ required property DeviceHandler deviceHandler
+
+ Column {
+ anchors.centerIn: parent
+ width: parent.width
+
+ Text {
+ anchors.horizontalCenter: parent.horizontalCenter
+ font.pixelSize: GameSettings.hugeFontSize
+ color: GameSettings.textColor
+ text: qsTr("RESULT")
+ }
+
+ Text {
+ anchors.horizontalCenter: parent.horizontalCenter
+ font.pixelSize: GameSettings.giganticFontSize * 3
+ color: GameSettings.textColor
+ text: (statsPage.deviceHandler.maxHR - statsPage.deviceHandler.minHR).toFixed(0)
+ }
+
+ Item {
+ height: GameSettings.fieldHeight
+ width: 1
+ }
+
+ StatsLabel {
+ title: qsTr("MIN")
+ value: statsPage.deviceHandler.minHR.toFixed(0)
+ }
+
+ StatsLabel {
+ title: qsTr("MAX")
+ value: statsPage.deviceHandler.maxHR.toFixed(0)
+ }
+
+ StatsLabel {
+ title: qsTr("AVG")
+ value: statsPage.deviceHandler.average.toFixed(1)
+ }
+
+ StatsLabel {
+ title: qsTr("CALORIES")
+ value: statsPage.deviceHandler.calories.toFixed(3)
+ }
+ }
+}
diff --git a/examples/bluetooth/heartrate_game/HeartRateGame/StatsLabel.qml b/examples/bluetooth/heartrate_game/HeartRateGame/StatsLabel.qml
new file mode 100644
index 000000000..0ea4249a7
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/HeartRateGame/StatsLabel.qml
@@ -0,0 +1,34 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+
+Item {
+ height: GameSettings.fieldHeight
+ width: parent.width
+
+ property alias title: leftText.text
+ property alias value: rightText.text
+
+ Text {
+ id: leftText
+ anchors.left: parent.left
+ height: parent.height
+ width: parent.width * 0.45
+ horizontalAlignment: Text.AlignRight
+ verticalAlignment: Text.AlignVCenter
+ font.pixelSize: GameSettings.mediumFontSize
+ color: GameSettings.textColor
+ }
+
+ Text {
+ id: rightText
+ anchors.right: parent.right
+ height: parent.height
+ width: parent.width * 0.45
+ horizontalAlignment: Text.AlignLeft
+ verticalAlignment: Text.AlignVCenter
+ font.pixelSize: GameSettings.mediumFontSize
+ color: GameSettings.textColor
+ }
+}
diff --git a/examples/bluetooth/heartrate_game/HeartRateGame/TitleBar.qml b/examples/bluetooth/heartrate_game/HeartRateGame/TitleBar.qml
new file mode 100644
index 000000000..016a44358
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/HeartRateGame/TitleBar.qml
@@ -0,0 +1,54 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+pragma ComponentBehavior: Bound
+import QtQuick
+
+Rectangle {
+ id: titleBar
+
+ property var __titles: ["CONNECT", "MEASURE", "STATS"]
+ property int currentIndex: 0
+
+ signal titleClicked(int index)
+
+ height: GameSettings.fieldHeight
+ color: GameSettings.viewColor
+
+ Repeater {
+ model: 3
+ Text {
+ id: caption
+ required property int index
+ width: titleBar.width / 3
+ height: titleBar.height
+ x: index * width
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ text: titleBar.__titles[index]
+ font.pixelSize: GameSettings.tinyFontSize
+ color: titleBar.currentIndex === index ? GameSettings.textColor
+ : GameSettings.disabledTextColor
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: titleBar.titleClicked(caption.index)
+ }
+ }
+ }
+
+ Item {
+ anchors.bottom: parent.bottom
+ width: parent.width / 3
+ height: parent.height
+ x: titleBar.currentIndex * width
+
+ BottomLine {}
+
+ Behavior on x {
+ NumberAnimation {
+ duration: 200
+ }
+ }
+ }
+}
diff --git a/examples/bluetooth/heartrate_game/HeartRateGame/images/bt_off_to_on.png b/examples/bluetooth/heartrate_game/HeartRateGame/images/bt_off_to_on.png
new file mode 100644
index 000000000..5ea1f3f06
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/HeartRateGame/images/bt_off_to_on.png
Binary files differ
diff --git a/examples/bluetooth/heartrate_game/HeartRateGame/images/heart.png b/examples/bluetooth/heartrate_game/HeartRateGame/images/heart.png
new file mode 100644
index 000000000..f2b3c0a3e
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/HeartRateGame/images/heart.png
Binary files differ
diff --git a/examples/bluetooth/heartrate_game/HeartRateGame/images/logo.png b/examples/bluetooth/heartrate_game/HeartRateGame/images/logo.png
new file mode 100644
index 000000000..ea0af7e00
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/HeartRateGame/images/logo.png
Binary files differ
diff --git a/examples/bluetooth/heartrate_game/HeartRateGame/qmldir b/examples/bluetooth/heartrate_game/HeartRateGame/qmldir
new file mode 100644
index 000000000..2baa74a92
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/HeartRateGame/qmldir
@@ -0,0 +1,14 @@
+module HeartRateGame
+App 1.0 App.qml
+BluetoothAlarmDialog 1.0 BluetoothAlarmDialog.qml
+BottomLine 1.0 BottomLine.qml
+Connect 1.0 Connect.qml
+GameButton 1.0 GameButton.qml
+GamePage 1.0 GamePage.qml
+singleton GameSettings 1.0 GameSettings.qml
+Measure 1.0 Measure.qml
+SplashScreen 1.0 SplashScreen.qml
+Stats 1.0 Stats.qml
+StatsLabel 1.0 StatsLabel.qml
+TitleBar 1.0 TitleBar.qml
+Main 1.0 Main.qml
diff --git a/examples/bluetooth/heartrate_game/bluetoothbaseclass.py b/examples/bluetooth/heartrate_game/bluetoothbaseclass.py
new file mode 100644
index 000000000..cc5c9dbd0
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/bluetoothbaseclass.py
@@ -0,0 +1,40 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject, Property, Signal, Slot
+
+
+class BluetoothBaseClass(QObject):
+
+ errorChanged = Signal()
+ infoChanged = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.m_error = ""
+ self.m_info = ""
+
+ @Property(str, notify=errorChanged)
+ def error(self):
+ return self.m_error
+
+ @error.setter
+ def error(self, e):
+ if self.m_error != e:
+ self.m_error = e
+ self.errorChanged.emit()
+
+ @Property(str, notify=infoChanged)
+ def info(self):
+ return self.m_info
+
+ @info.setter
+ def info(self, i):
+ if self.m_info != i:
+ self.m_info = i
+ self.infoChanged.emit()
+
+ @Slot()
+ def clearMessages(self):
+ self.info = ""
+ self.error = ""
diff --git a/examples/bluetooth/heartrate_game/connectionhandler.py b/examples/bluetooth/heartrate_game/connectionhandler.py
new file mode 100644
index 000000000..7bf60bbc5
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/connectionhandler.py
@@ -0,0 +1,77 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from PySide6.QtBluetooth import QBluetoothLocalDevice
+from PySide6.QtQml import QmlElement
+from PySide6.QtCore import QObject, Property, Signal, Slot, Qt
+
+from heartrate_global import simulator, is_android, error_not_nuitka
+
+if is_android or sys.platform == "darwin":
+ from PySide6.QtCore import QBluetoothPermission
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "HeartRateGame"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class ConnectionHandler(QObject):
+
+ deviceChanged = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.m_hasPermission = False
+ self.initLocalDevice()
+
+ @Property(bool, notify=deviceChanged)
+ def alive(self):
+ if sys.platform == "darwin":
+ return True
+ if simulator():
+ return True
+ return (self.m_localDevice.isValid()
+ and self.m_localDevice.hostMode() != QBluetoothLocalDevice.HostPoweredOff)
+
+ @Property(bool, constant=True)
+ def requiresAddressType(self):
+ return sys.platform == "linux" # QT_CONFIG(bluez)?
+
+ @Property(str, notify=deviceChanged)
+ def name(self):
+ return self.m_localDevice.name()
+
+ @Property(str, notify=deviceChanged)
+ def address(self):
+ return self.m_localDevice.address().toString()
+
+ @Property(bool, notify=deviceChanged)
+ def hasPermission(self):
+ return self.m_hasPermission
+
+ @Slot(QBluetoothLocalDevice.HostMode)
+ def hostModeChanged(self, mode):
+ self.deviceChanged.emit()
+
+ def initLocalDevice(self):
+ if is_android or sys.platform == "darwin":
+ error_not_nuitka()
+ permission = QBluetoothPermission()
+ permission.setCommunicationModes(QBluetoothPermission.Access)
+ permission_status = qApp.checkPermission(permission) # noqa: F821
+ if permission_status == Qt.PermissionStatus.Undetermined:
+ qApp.requestPermission(permission, self, self.initLocalDevice) # noqa: F821
+ return
+ if permission_status == Qt.PermissionStatus.Denied:
+ return
+ elif permission_status == Qt.PermissionStatus.Granted:
+ print("[HeartRateGame] Bluetooth Permission Granted")
+
+ self.m_localDevice = QBluetoothLocalDevice()
+ self.m_localDevice.hostModeStateChanged.connect(self.hostModeChanged)
+ self.m_hasPermission = True
+ self.deviceChanged.emit()
diff --git a/examples/bluetooth/heartrate_game/devicefinder.py b/examples/bluetooth/heartrate_game/devicefinder.py
new file mode 100644
index 000000000..e581d12ec
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/devicefinder.py
@@ -0,0 +1,139 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+import sys
+
+from PySide6.QtBluetooth import (QBluetoothDeviceDiscoveryAgent,
+ QBluetoothDeviceInfo)
+from PySide6.QtQml import QmlElement
+from PySide6.QtCore import QTimer, Property, Signal, Slot, Qt
+
+from bluetoothbaseclass import BluetoothBaseClass
+from deviceinfo import DeviceInfo
+from heartrate_global import simulator, is_android, error_not_nuitka
+
+if is_android or sys.platform == "darwin":
+ from PySide6.QtCore import QBluetoothPermission
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "HeartRateGame"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class DeviceFinder(BluetoothBaseClass):
+
+ scanningChanged = Signal()
+ devicesChanged = Signal()
+
+ def __init__(self, handler, parent=None):
+ super().__init__(parent)
+ self.m_deviceHandler = handler
+ self.m_devices = []
+ self.m_demoTimer = QTimer()
+#! [devicediscovery-1]
+ self.m_deviceDiscoveryAgent = QBluetoothDeviceDiscoveryAgent(self)
+ self.m_deviceDiscoveryAgent.setLowEnergyDiscoveryTimeout(15000)
+ self.m_deviceDiscoveryAgent.deviceDiscovered.connect(self.addDevice)
+ self.m_deviceDiscoveryAgent.errorOccurred.connect(self.scanError)
+
+ self.m_deviceDiscoveryAgent.finished.connect(self.scanFinished)
+ self.m_deviceDiscoveryAgent.canceled.connect(self.scanFinished)
+#! [devicediscovery-1]
+ if simulator():
+ self.m_demoTimer.setSingleShot(True)
+ self.m_demoTimer.setInterval(2000)
+ self.m_demoTimer.timeout.connect(self.scanFinished)
+
+ @Slot()
+ def startSearch(self):
+ if is_android or sys.platform == "darwin":
+ error_not_nuitka()
+ permission = QBluetoothPermission()
+ permission.setCommunicationModes(QBluetoothPermission.Access)
+ permission_status = qApp.checkPermission(permission) # noqa: F821
+ if permission_status == Qt.PermissionStatus.Undetermined:
+ qApp.requestPermission(permission, self, self.startSearch) # noqa: F82 1
+ return
+ elif permission_status == Qt.PermissionStatus.Denied:
+ return
+ elif permission_status == Qt.PermissionStatus.Granted:
+ print("[HeartRateGame] Bluetooth Permission Granted")
+
+ self.clearMessages()
+ self.m_deviceHandler.setDevice(None)
+ self.m_devices.clear()
+
+ self.devicesChanged.emit()
+
+ if simulator():
+ self.m_demoTimer.start()
+ else:
+#! [devicediscovery-2]
+ self.m_deviceDiscoveryAgent.start(QBluetoothDeviceDiscoveryAgent.LowEnergyMethod)
+#! [devicediscovery-2]
+ self.scanningChanged.emit()
+ self.info = "Scanning for devices..."
+
+#! [devicediscovery-3]
+ @Slot(QBluetoothDeviceInfo)
+ def addDevice(self, device):
+ # If device is LowEnergy-device, add it to the list
+ if device.coreConfigurations() & QBluetoothDeviceInfo.LowEnergyCoreConfiguration:
+ self.m_devices.append(DeviceInfo(device))
+ self.info = "Low Energy device found. Scanning more..."
+#! [devicediscovery-3]
+ self.devicesChanged.emit()
+#! [devicediscovery-4]
+ #...
+#! [devicediscovery-4]
+
+ @Slot(QBluetoothDeviceDiscoveryAgent.Error)
+ def scanError(self, error):
+ if error == QBluetoothDeviceDiscoveryAgent.PoweredOffError:
+ self.error = "The Bluetooth adaptor is powered off."
+ elif error == QBluetoothDeviceDiscoveryAgent.InputOutputError:
+ self.error = "Writing or reading from the device resulted in an error."
+ else:
+ self.error = "An unknown error has occurred."
+
+ @Slot()
+ def scanFinished(self):
+ if simulator():
+ # Only for testing
+ for i in range(5):
+ self.m_devices.append(DeviceInfo(QBluetoothDeviceInfo()))
+
+ if self.m_devices:
+ self.info = "Scanning done."
+ else:
+ self.error = "No Low Energy devices found."
+
+ self.scanningChanged.emit()
+ self.devicesChanged.emit()
+
+ @Slot(str)
+ def connectToService(self, address):
+ self.m_deviceDiscoveryAgent.stop()
+
+ currentDevice = None
+ for entry in self.m_devices:
+ device = entry
+ if device and device.deviceAddress == address:
+ currentDevice = device
+ break
+
+ if currentDevice:
+ self.m_deviceHandler.setDevice(currentDevice)
+
+ self.clearMessages()
+
+ @Property(bool, notify=scanningChanged)
+ def scanning(self):
+ if simulator():
+ return self.m_demoTimer.isActive()
+ return self.m_deviceDiscoveryAgent.isActive()
+
+ @Property("QVariant", notify=devicesChanged)
+ def devices(self):
+ return self.m_devices
diff --git a/examples/bluetooth/heartrate_game/devicehandler.py b/examples/bluetooth/heartrate_game/devicehandler.py
new file mode 100644
index 000000000..df34052b8
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/devicehandler.py
@@ -0,0 +1,309 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import struct
+
+from enum import IntEnum
+
+from PySide6.QtBluetooth import (QLowEnergyCharacteristic,
+ QLowEnergyController,
+ QLowEnergyDescriptor,
+ QLowEnergyService,
+ QBluetoothUuid)
+from PySide6.QtQml import QmlElement
+from PySide6.QtCore import (QByteArray, QDateTime, QRandomGenerator, QTimer,
+ Property, Signal, Slot, QEnum)
+
+from bluetoothbaseclass import BluetoothBaseClass
+from heartrate_global import simulator
+
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "HeartRateGame"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class DeviceHandler(BluetoothBaseClass):
+
+ @QEnum
+ class AddressType(IntEnum):
+ PUBLIC_ADDRESS = 1
+ RANDOM_ADDRESS = 2
+
+ measuringChanged = Signal()
+ aliveChanged = Signal()
+ statsChanged = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+ self.m_control = None
+ self.m_service = None
+ self.m_notificationDesc = QLowEnergyDescriptor()
+ self.m_currentDevice = None
+
+ self.m_foundHeartRateService = False
+ self.m_measuring = False
+ self.m_currentValue = 0
+ self.m_min = 0
+ self.m_max = 0
+ self.m_sum = 0
+ self.m_avg = 0.0
+ self.m_calories = 0.0
+
+ self.m_start = QDateTime()
+ self.m_stop = QDateTime()
+
+ self.m_measurements = []
+ self.m_addressType = QLowEnergyController.PublicAddress
+
+ self.m_demoTimer = QTimer()
+
+ if simulator():
+ self.m_demoTimer.setSingleShot(False)
+ self.m_demoTimer.setInterval(2000)
+ self.m_demoTimer.timeout.connect(self.updateDemoHR)
+ self.m_demoTimer.start()
+ self.updateDemoHR()
+
+ @Property(int)
+ def addressType(self):
+ if self.m_addressType == QLowEnergyController.RandomAddress:
+ return DeviceHandler.AddressType.RANDOM_ADDRESS
+ return DeviceHandler.AddressType.PUBLIC_ADDRESS
+
+ @addressType.setter
+ def addressType(self, type):
+ if type == DeviceHandler.AddressType.PUBLIC_ADDRESS:
+ self.m_addressType = QLowEnergyController.PublicAddress
+ elif type == DeviceHandler.AddressType.RANDOM_ADDRESS:
+ self.m_addressType = QLowEnergyController.RandomAddress
+
+ @Slot(QLowEnergyController.Error)
+ def controllerErrorOccurred(self, device):
+ self.error = "Cannot connect to remote device."
+
+ @Slot()
+ def controllerConnected(self):
+ self.info = "Controller connected. Search services..."
+ self.m_control.discoverServices()
+
+ @Slot()
+ def controllerDisconnected(self):
+ self.error = "LowEnergy controller disconnected"
+
+ def setDevice(self, device):
+ self.clearMessages()
+ self.m_currentDevice = device
+
+ if simulator():
+ self.info = "Demo device connected."
+ return
+
+ # Disconnect and delete old connection
+ if self.m_control:
+ self.m_control.disconnectFromDevice()
+ self.m_control = None
+
+ # Create new controller and connect it if device available
+ if self.m_currentDevice:
+
+ # Make connections
+#! [Connect-Signals-1]
+ self.m_control = QLowEnergyController.createCentral(self.m_currentDevice.device(), self)
+#! [Connect-Signals-1]
+ self.m_control.setRemoteAddressType(self.m_addressType)
+#! [Connect-Signals-2]
+
+ self.m_control.serviceDiscovered.connect(self.serviceDiscovered)
+ self.m_control.discoveryFinished.connect(self.serviceScanDone)
+
+ self.m_control.errorOccurred.connect(self.controllerErrorOccurred)
+ self.m_control.connected.connect(self.controllerConnected)
+ self.m_control.disconnected.connect(self.controllerDisconnected)
+
+ # Connect
+ self.m_control.connectToDevice()
+#! [Connect-Signals-2]
+
+ @Slot()
+ def startMeasurement(self):
+ if self.alive:
+ self.m_start = QDateTime.currentDateTime()
+ self.m_min = 0
+ self.m_max = 0
+ self.m_avg = 0
+ self.m_sum = 0
+ self.m_calories = 0.0
+ self.m_measuring = True
+ self.m_measurements.clear()
+ self.measuringChanged.emit()
+
+ @Slot()
+ def stopMeasurement(self):
+ self.m_measuring = False
+ self.measuringChanged.emit()
+
+#! [Filter HeartRate service 1]
+ @Slot(QBluetoothUuid)
+ def serviceDiscovered(self, gatt):
+ if gatt == QBluetoothUuid(QBluetoothUuid.ServiceClassUuid.HeartRate):
+ self.info = "Heart Rate service discovered. Waiting for service scan to be done..."
+ self.m_foundHeartRateService = True
+
+#! [Filter HeartRate service 1]
+
+ @Slot()
+ def serviceScanDone(self):
+ self.info = "Service scan done."
+
+ # Delete old service if available
+ if self.m_service:
+ self.m_service = None
+
+#! [Filter HeartRate service 2]
+ # If heartRateService found, create new service
+ if self.m_foundHeartRateService:
+ self.m_service = self.m_control.createServiceObject(
+ QBluetoothUuid(QBluetoothUuid.ServiceClassUuid.HeartRate), self)
+
+ if self.m_service:
+ self.m_service.stateChanged.connect(self.serviceStateChanged)
+ self.m_service.characteristicChanged.connect(self.updateHeartRateValue)
+ self.m_service.descriptorWritten.connect(self.confirmedDescriptorWrite)
+ self.m_service.discoverDetails()
+ else:
+ self.error = "Heart Rate Service not found."
+#! [Filter HeartRate service 2]
+
+# Service functions
+#! [Find HRM characteristic]
+ @Slot(QLowEnergyService.ServiceState)
+ def serviceStateChanged(self, switch):
+ if switch == QLowEnergyService.RemoteServiceDiscovering:
+ self.info = "Discovering services..."
+ elif switch == QLowEnergyService.RemoteServiceDiscovered:
+ self.info = "Service discovered."
+ hrChar = self.m_service.characteristic(
+ QBluetoothUuid(QBluetoothUuid.CharacteristicType.HeartRateMeasurement))
+ if hrChar.isValid():
+ self.m_notificationDesc = hrChar.descriptor(
+ QBluetoothUuid.DescriptorType.ClientCharacteristicConfiguration)
+ if self.m_notificationDesc.isValid():
+ self.m_service.writeDescriptor(self.m_notificationDesc,
+ QByteArray.fromHex(b"0100"))
+ else:
+ self.error = "HR Data not found."
+ self.aliveChanged.emit()
+#! [Find HRM characteristic]
+
+#! [Reading value]
+ @Slot(QLowEnergyCharacteristic, QByteArray)
+ def updateHeartRateValue(self, c, value):
+ # ignore any other characteristic change. Shouldn't really happen though
+ if c.uuid() != QBluetoothUuid(QBluetoothUuid.CharacteristicType.HeartRateMeasurement):
+ return
+
+ data = value.data()
+ flags = int(data[0])
+ # Heart Rate
+ hrvalue = 0
+ if flags & 0x1: # HR 16 bit little endian? otherwise 8 bit
+ hrvalue = struct.unpack("<H", data[1:3])[0]
+ else:
+ hrvalue = struct.unpack("B", data[1:2])[0]
+
+ self.addMeasurement(hrvalue)
+
+#! [Reading value]
+ @Slot()
+ def updateDemoHR(self):
+ randomValue = 0
+ if self.m_currentValue < 30: # Initial value
+ randomValue = 55 + QRandomGenerator.global_().bounded(30)
+ elif not self.m_measuring: # Value when relax
+ random = QRandomGenerator.global_().bounded(5)
+ randomValue = self.m_currentValue - 2 + random
+ randomValue = max(min(randomValue, 55), 75)
+ else: # Measuring
+ random = QRandomGenerator.global_().bounded(10)
+ randomValue = self.m_currentValue + random - 2
+
+ self.addMeasurement(randomValue)
+
+ @Slot(QLowEnergyCharacteristic, QByteArray)
+ def confirmedDescriptorWrite(self, d, value):
+ if (d.isValid() and d == self.m_notificationDesc
+ and value == QByteArray.fromHex(b"0000")):
+ # disabled notifications . assume disconnect intent
+ self.m_control.disconnectFromDevice()
+ self.m_service = None
+
+ @Slot()
+ def disconnectService(self):
+ self.m_foundHeartRateService = False
+
+ # disable notifications
+ if (self.m_notificationDesc.isValid() and self.m_service
+ and self.m_notificationDesc.value() == QByteArray.fromHex(b"0100")):
+ self.m_service.writeDescriptor(self.m_notificationDesc,
+ QByteArray.fromHex(b"0000"))
+ else:
+ if self.m_control:
+ self.m_control.disconnectFromDevice()
+ self.m_service = None
+
+ @Property(bool, notify=measuringChanged)
+ def measuring(self):
+ return self.m_measuring
+
+ @Property(bool, notify=aliveChanged)
+ def alive(self):
+ if simulator():
+ return True
+ if self.m_service:
+ return self.m_service.state() == QLowEnergyService.RemoteServiceDiscovered
+ return False
+
+ @Property(int, notify=statsChanged)
+ def hr(self):
+ return self.m_currentValue
+
+ @Property(int, notify=statsChanged)
+ def time(self):
+ return self.m_start.secsTo(self.m_stop)
+
+ @Property(int, notify=statsChanged)
+ def maxHR(self):
+ return self.m_max
+
+ @Property(int, notify=statsChanged)
+ def minHR(self):
+ return self.m_min
+
+ @Property(float, notify=statsChanged)
+ def average(self):
+ return self.m_avg
+
+ @Property(float, notify=statsChanged)
+ def calories(self):
+ return self.m_calories
+
+ def addMeasurement(self, value):
+ self.m_currentValue = value
+
+ # If measuring and value is appropriate
+ if self.m_measuring and value > 30 and value < 250:
+ self.m_stop = QDateTime.currentDateTime()
+ self.m_measurements.append(value)
+
+ self.m_min = value if self.m_min == 0 else min(value, self.m_min)
+ self.m_max = max(value, self.m_max)
+ self.m_sum += value
+ self.m_avg = float(self.m_sum) / len(self.m_measurements)
+ self.m_calories = ((-55.0969 + (0.6309 * self.m_avg) + (0.1988 * 94)
+ + (0.2017 * 24)) / 4.184) * 60 * self.time / 3600
+
+ self.statsChanged.emit()
diff --git a/examples/bluetooth/heartrate_game/deviceinfo.py b/examples/bluetooth/heartrate_game/deviceinfo.py
new file mode 100644
index 000000000..5fd5c3270
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/deviceinfo.py
@@ -0,0 +1,38 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from PySide6.QtCore import QObject, Property, Signal
+
+from heartrate_global import simulator
+
+
+class DeviceInfo(QObject):
+
+ deviceChanged = Signal()
+
+ def __init__(self, device):
+ super().__init__()
+ self.m_device = device
+
+ def device(self):
+ return self.m_device
+
+ def setDevice(self, device):
+ self.m_device = device
+ self.deviceChanged.emit()
+
+ @Property(str, notify=deviceChanged)
+ def deviceName(self):
+ if simulator():
+ return "Demo device"
+ return self.m_device.name()
+
+ @Property(str, notify=deviceChanged)
+ def deviceAddress(self):
+ if simulator():
+ return "00:11:22:33:44:55"
+ if sys.platform == "Darwin": # workaround for Core Bluetooth:
+ return self.m_device.deviceUuid().toString()
+ return self.m_device.address().toString()
diff --git a/examples/bluetooth/heartrate_game/doc/heartrate_game.rst b/examples/bluetooth/heartrate_game/doc/heartrate_game.rst
new file mode 100644
index 000000000..9d190d991
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/doc/heartrate_game.rst
@@ -0,0 +1,11 @@
+Bluetooth Low Energy Heart Rate Game
+====================================
+
+.. tags:: Android
+
+The Bluetooth Low Energy Heart Rate Game shows how to develop a
+Bluetooth Low Energy application using the Qt Bluetooth API. The
+application covers the scanning for Bluetooth Low Energy devices,
+connecting to a Heart Rate service on the device, writing
+characteristics and descriptors, and receiving updates from the device
+once the heart rate has changed.
diff --git a/examples/bluetooth/heartrate_game/heartrate_game.pyproject b/examples/bluetooth/heartrate_game/heartrate_game.pyproject
new file mode 100644
index 000000000..94b7e3978
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/heartrate_game.pyproject
@@ -0,0 +1,23 @@
+{
+ "files": ["main.py",
+ "bluetoothbaseclass.py",
+ "connectionhandler.py",
+ "devicefinder.py",
+ "devicehandler.py",
+ "deviceinfo.py",
+ "heartrate_global.py",
+ "HeartRateGame/qmldir",
+ "HeartRateGame/Main.qml",
+ "HeartRateGame/App.qml",
+ "HeartRateGame/BluetoothAlarmDialog.qml",
+ "HeartRateGame/BottomLine.qml",
+ "HeartRateGame/Connect.qml",
+ "HeartRateGame/GameButton.qml",
+ "HeartRateGame/GamePage.qml",
+ "HeartRateGame/GameSettings.qml",
+ "HeartRateGame/Measure.qml",
+ "HeartRateGame/SplashScreen.qml",
+ "HeartRateGame/Stats.qml",
+ "HeartRateGame/StatsLabel.qml",
+ "HeartRateGame/TitleBar.qml"]
+}
diff --git a/examples/bluetooth/heartrate_game/heartrate_global.py b/examples/bluetooth/heartrate_game/heartrate_global.py
new file mode 100644
index 000000000..de5c37ac3
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/heartrate_global.py
@@ -0,0 +1,30 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+import os
+import sys
+
+_simulator = False
+
+
+def simulator():
+ global _simulator
+ return _simulator
+
+
+def set_simulator(s):
+ global _simulator
+ _simulator = s
+
+
+is_android = os.environ.get('ANDROID_ARGUMENT')
+
+
+def error_not_nuitka():
+ """Errors and exits for macOS if run in interpreted mode.
+ """
+ is_nuitka = "__compiled__" in globals()
+ if not is_nuitka and sys.platform == "darwin":
+ print("This example does not work on macOS when Python is run in interpreted mode."
+ "For this example to work on macOS, package the example using pyside6-deploy"
+ "For more information, read `Notes for Developer` in the documentation")
+ sys.exit(0)
diff --git a/examples/bluetooth/heartrate_game/main.py b/examples/bluetooth/heartrate_game/main.py
new file mode 100644
index 000000000..3cb4f0672
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/main.py
@@ -0,0 +1,53 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the bluetooth/heartrate-game example from Qt v6.x"""
+
+from pathlib import Path
+import sys
+from argparse import ArgumentParser, RawDescriptionHelpFormatter
+
+from PySide6.QtQml import QQmlApplicationEngine
+from PySide6.QtGui import QGuiApplication
+from PySide6.QtCore import QCoreApplication, QLoggingCategory
+
+from connectionhandler import ConnectionHandler
+from devicefinder import DeviceFinder
+from devicehandler import DeviceHandler
+from heartrate_global import set_simulator
+
+
+if __name__ == '__main__':
+ parser = ArgumentParser(prog="heartrate-game",
+ formatter_class=RawDescriptionHelpFormatter)
+
+ parser.add_argument("-v", "--verbose", action="store_true",
+ help="Generate more output")
+ parser.add_argument("-s", "--simulator", action="store_true",
+ help="Use Simulator")
+ options = parser.parse_args()
+ set_simulator(options.simulator)
+ if options.verbose:
+ QLoggingCategory.setFilterRules("qt.bluetooth* = true")
+
+ app = QGuiApplication(sys.argv)
+
+ connectionHandler = ConnectionHandler()
+ deviceHandler = DeviceHandler()
+ deviceFinder = DeviceFinder(deviceHandler)
+
+ engine = QQmlApplicationEngine()
+ engine.setInitialProperties({
+ "connectionHandler": connectionHandler,
+ "deviceFinder": deviceFinder,
+ "deviceHandler": deviceHandler})
+
+ engine.addImportPath(Path(__file__).parent)
+ engine.loadFromModule("HeartRateGame", "Main")
+
+ if not engine.rootObjects():
+ sys.exit(-1)
+
+ ex = QCoreApplication.exec()
+ del engine
+ sys.exit(ex)
diff --git a/examples/bluetooth/heartrate_server/doc/heartrate_server.rst b/examples/bluetooth/heartrate_server/doc/heartrate_server.rst
new file mode 100644
index 000000000..aaa1a0988
--- /dev/null
+++ b/examples/bluetooth/heartrate_server/doc/heartrate_server.rst
@@ -0,0 +1,8 @@
+Bluetooth Low Energy Heart Rate Server
+======================================
+
+The Bluetooth Low Energy Heart Rate Server is a command-line
+application that shows how to develop a Bluetooth GATT server using
+the Qt Bluetooth API. The application covers setting up a GATT
+service, advertising it and notifying clients about changes to
+characteristic values.
diff --git a/examples/bluetooth/heartrate_server/heartrate_server.py b/examples/bluetooth/heartrate_server/heartrate_server.py
new file mode 100644
index 000000000..abbf4eb7f
--- /dev/null
+++ b/examples/bluetooth/heartrate_server/heartrate_server.py
@@ -0,0 +1,95 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the bluetooth/heartrate-server example from Qt v6.x"""
+
+import sys
+from enum import Enum
+
+from PySide6.QtBluetooth import (QBluetoothUuid, QLowEnergyAdvertisingData,
+ QLowEnergyAdvertisingParameters,
+ QLowEnergyCharacteristic,
+ QLowEnergyCharacteristicData,
+ QLowEnergyController,
+ QLowEnergyDescriptorData,
+ QLowEnergyServiceData)
+from PySide6.QtGui import QGuiApplication
+from PySide6.QtCore import QByteArray, QTimer, QLoggingCategory
+
+
+class ValueChange(Enum):
+ VALUE_UP = 1
+ VALUE_DOWN = 2
+
+
+if __name__ == '__main__':
+ app = QGuiApplication(sys.argv)
+ QLoggingCategory.setFilterRules("qt.bluetooth* = true")
+
+#! [Advertising Data]
+ advertising_data = QLowEnergyAdvertisingData()
+ advertising_data.setDiscoverability(QLowEnergyAdvertisingData.DiscoverabilityGeneral)
+ advertising_data.setIncludePowerLevel(True)
+ advertising_data.setLocalName("HeartRateServer")
+ advertising_data.setServices([QBluetoothUuid.ServiceClassUuid.HeartRate])
+#! [Advertising Data]
+
+#! [Service Data]
+ char_data = QLowEnergyCharacteristicData()
+ char_data.setUuid(QBluetoothUuid.CharacteristicType.HeartRateMeasurement)
+ char_data.setValue(QByteArray(2, 0))
+ char_data.setProperties(QLowEnergyCharacteristic.Notify)
+ client_config = QLowEnergyDescriptorData(
+ QBluetoothUuid.DescriptorType.ClientCharacteristicConfiguration, QByteArray(2, 0))
+ char_data.addDescriptor(client_config)
+
+ service_data = QLowEnergyServiceData()
+ service_data.setType(QLowEnergyServiceData.ServiceTypePrimary)
+ service_data.setUuid(QBluetoothUuid.ServiceClassUuid.HeartRate)
+ service_data.addCharacteristic(char_data)
+#! [Service Data]
+
+#! [Start Advertising]
+ le_controller = QLowEnergyController.createPeripheral()
+ service = le_controller.addService(service_data)
+ le_controller.startAdvertising(QLowEnergyAdvertisingParameters(),
+ advertising_data, advertising_data)
+#! [Start Advertising]
+
+#! [Provide Heartbeat]
+ value_change = ValueChange.VALUE_UP
+ heartbeat_timer = QTimer()
+ current_heart_rate = 60
+
+ def heartbeat_provider():
+ global current_heart_rate, value_change, current_heart_rate
+ value = QByteArray()
+ value.append(chr(0)) # Flags that specify the format of the value.
+ value.append(chr(current_heart_rate)) # Actual value.
+ characteristic = service.characteristic(
+ QBluetoothUuid.CharacteristicType.HeartRateMeasurement)
+ assert characteristic.isValid()
+ # Potentially causes notification.
+ service.writeCharacteristic(characteristic, value)
+ if current_heart_rate == 60:
+ value_change = ValueChange.VALUE_UP
+ elif current_heart_rate == 100:
+ value_change = ValueChange.VALUE_DOWN
+ if value_change == ValueChange.VALUE_UP:
+ current_heart_rate += 1
+ else:
+ current_heart_rate -= 1
+
+ heartbeat_timer.timeout.connect(heartbeat_provider)
+ heartbeat_timer.start(1000)
+#! [Provide Heartbeat]
+
+ def reconnect():
+ service = le_controller.addService(service_data)
+ if not service.isNull():
+ le_controller.startAdvertising(QLowEnergyAdvertisingParameters(),
+ advertising_data, advertising_data)
+
+ le_controller.disconnected.connect(reconnect)
+
+ sys.exit(app.exec())
diff --git a/examples/bluetooth/heartrate_server/heartrate_server.pyproject b/examples/bluetooth/heartrate_server/heartrate_server.pyproject
new file mode 100644
index 000000000..de1fd14a0
--- /dev/null
+++ b/examples/bluetooth/heartrate_server/heartrate_server.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["heartrate_server.py"]
+}
diff --git a/examples/bluetooth/lowenergyscanner/Scanner/Characteristics.qml b/examples/bluetooth/lowenergyscanner/Scanner/Characteristics.qml
new file mode 100644
index 000000000..bd3ccbfcb
--- /dev/null
+++ b/examples/bluetooth/lowenergyscanner/Scanner/Characteristics.qml
@@ -0,0 +1,121 @@
+// Copyright (C) 2013 BlackBerry Limited. All rights reserved.
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+pragma ComponentBehavior: Bound
+import QtQuick
+
+Rectangle {
+ id: characteristicsPage
+
+ signal showServices
+ signal showDevices
+
+ width: 300
+ height: 600
+
+ Header {
+ id: header
+ anchors.top: parent.top
+ headerText: "Characteristics list"
+ }
+
+ Dialog {
+ id: info
+ anchors.centerIn: parent
+ visible: true
+ dialogText: "Scanning for characteristics..."
+ }
+
+ Connections {
+ target: Device
+ function oncharacteristics_pdated() {
+ menu.menuText = "Back"
+ if (characteristicview.count === 0) {
+ info.dialogText = "No characteristic found"
+ info.busyImage = false
+ } else {
+ info.visible = false
+ info.busyImage = true
+ }
+ }
+
+ function onDisconnected() {
+ characteristicsPage.showDevices()
+ }
+ }
+
+ ListView {
+ id: characteristicview
+ width: parent.width
+ clip: true
+
+ anchors.top: header.bottom
+ anchors.bottom: menu.top
+ model: Device.characteristicList
+
+ delegate: Rectangle {
+ required property var modelData
+ id: box
+ height: 300
+ width: characteristicview.width
+ color: "lightsteelblue"
+ border.width: 2
+ border.color: "black"
+ radius: 5
+
+ Label {
+ id: characteristicName
+ textContent: box.modelData.characteristic_name
+ anchors.top: parent.top
+ anchors.topMargin: 5
+ }
+
+ Label {
+ id: characteristicUuid
+ font.pointSize: characteristicName.font.pointSize * 0.7
+ textContent: box.modelData.characteristic_uuid
+ anchors.top: characteristicName.bottom
+ anchors.topMargin: 5
+ }
+
+ Label {
+ id: characteristicValue
+ font.pointSize: characteristicName.font.pointSize * 0.7
+ textContent: ("Value: " + box.modelData.characteristic_value)
+ anchors.bottom: characteristicHandle.top
+ horizontalAlignment: Text.AlignHCenter
+ anchors.topMargin: 5
+ }
+
+ Label {
+ id: characteristicHandle
+ font.pointSize: characteristicName.font.pointSize * 0.7
+ textContent: ("Handlers: " + box.modelData.characteristic_handle)
+ anchors.bottom: characteristicPermission.top
+ anchors.topMargin: 5
+ }
+
+ Label {
+ id: characteristicPermission
+ font.pointSize: characteristicName.font.pointSize * 0.7
+ textContent: box.modelData.characteristic_permission
+ anchors.bottom: parent.bottom
+ anchors.topMargin: 5
+ anchors.bottomMargin: 5
+ }
+ }
+ }
+
+ Menu {
+ id: menu
+ anchors.bottom: parent.bottom
+ menuWidth: parent.width
+ menuText: Device.update
+ menuHeight: (parent.height / 6)
+ onButtonClick: {
+ characteristicsPage.showServices()
+ Device.update = "Back"
+ }
+ }
+}
diff --git a/examples/bluetooth/lowenergyscanner/Scanner/Devices.qml b/examples/bluetooth/lowenergyscanner/Scanner/Devices.qml
new file mode 100644
index 000000000..6e5e85a52
--- /dev/null
+++ b/examples/bluetooth/lowenergyscanner/Scanner/Devices.qml
@@ -0,0 +1,121 @@
+// Copyright (C) 2013 BlackBerry Limited. All rights reserved.
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+pragma ComponentBehavior: Bound
+import QtQuick
+
+Rectangle {
+ id: devicesPage
+
+ property bool deviceState: Device.state
+ signal showServices
+
+ width: 300
+ height: 600
+
+ onDeviceStateChanged: {
+ if (!Device.state)
+ info.visible = false
+ }
+
+ Header {
+ id: header
+ anchors.top: parent.top
+ headerText: {
+ if (Device.state)
+ return "Discovering"
+
+ if (Device.devices_list.length > 0)
+ return "Select a device"
+
+ return "Start Discovery"
+ }
+ }
+
+ Dialog {
+ id: info
+ anchors.centerIn: parent
+ visible: false
+ }
+
+ ListView {
+ id: theListView
+ width: parent.width
+ clip: true
+
+ anchors.top: header.bottom
+ anchors.bottom: connectToggle.top
+ model: Device.devices_list
+
+ delegate: Rectangle {
+ required property var modelData
+ id: box
+ height: 100
+ width: theListView.width
+ color: "lightsteelblue"
+ border.width: 2
+ border.color: "black"
+ radius: 5
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: {
+ Device.scan_services(box.modelData.device_address)
+ showServices()
+ }
+ }
+
+ Label {
+ id: deviceName
+ textContent: box.modelData.device_name
+ anchors.top: parent.top
+ anchors.topMargin: 5
+ }
+
+ Label {
+ id: deviceAddress
+ textContent: box.modelData.device_address
+ font.pointSize: deviceName.font.pointSize * 0.7
+ anchors.bottom: box.bottom
+ anchors.bottomMargin: 5
+ }
+ }
+ }
+
+ Menu {
+ id: connectToggle
+
+ menuWidth: parent.width
+ anchors.bottom: menu.top
+ menuText: {
+ visible = Device.devices_list.length > 0
+ if (Device.use_random_address)
+ return "Address type: Random"
+ else
+ return "Address type: Public"
+ }
+
+ onButtonClick: Device.use_random_address = !Device.use_random_address
+ }
+
+ Menu {
+ id: menu
+ anchors.bottom: parent.bottom
+ menuWidth: parent.width
+ menuHeight: (parent.height / 6)
+ menuText: Device.update
+ onButtonClick: {
+ if (!Device.state) {
+ Device.start_device_discovery()
+ // if start_device_discovery() failed Device.state is not set
+ if (Device.state) {
+ info.dialogText = "Searching..."
+ info.visible = true
+ }
+ } else {
+ Device.stop_device_discovery()
+ }
+ }
+ }
+}
diff --git a/examples/bluetooth/lowenergyscanner/Scanner/Dialog.qml b/examples/bluetooth/lowenergyscanner/Scanner/Dialog.qml
new file mode 100644
index 000000000..75e82642a
--- /dev/null
+++ b/examples/bluetooth/lowenergyscanner/Scanner/Dialog.qml
@@ -0,0 +1,48 @@
+// Copyright (C) 2013 BlackBerry Limited. All rights reserved.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+
+Rectangle {
+ id: dialog
+ width: parent.width / 3 * 2
+ height: dialogTextId.height + background.height + 20
+ z: 50
+ property string dialogText: ""
+ property bool busyImage: true
+ border.width: 1
+ border.color: "#363636"
+ radius: 10
+
+ Text {
+ id: dialogTextId
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.top: parent.top
+ anchors.topMargin: 10
+
+ elide: Text.ElideMiddle
+ text: dialog.dialogText
+ color: "#363636"
+ wrapMode: Text.Wrap
+ }
+
+ Image {
+ id: background
+
+ width: 20
+ height: 20
+ anchors.top: dialogTextId.bottom
+ anchors.horizontalCenter: dialogTextId.horizontalCenter
+ visible: parent.busyImage
+ source: "assets/busy_dark.png"
+ fillMode: Image.PreserveAspectFit
+ NumberAnimation on rotation {
+ duration: 3000
+ from: 0
+ to: 360
+ loops: Animation.Infinite
+ }
+ }
+}
diff --git a/examples/bluetooth/lowenergyscanner/Scanner/Header.qml b/examples/bluetooth/lowenergyscanner/Scanner/Header.qml
new file mode 100644
index 000000000..c95385dd3
--- /dev/null
+++ b/examples/bluetooth/lowenergyscanner/Scanner/Header.qml
@@ -0,0 +1,25 @@
+// Copyright (C) 2013 BlackBerry Limited. All rights reserved.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+
+Rectangle {
+ id: header
+ width: parent.width
+ height: 70
+ border.width: 1
+ border.color: "#363636"
+ radius: 5
+ property string headerText: ""
+
+ Text {
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ anchors.fill: parent
+ text: header.headerText
+ font.bold: true
+ font.pointSize: 20
+ elide: Text.ElideMiddle
+ color: "#363636"
+ }
+}
diff --git a/examples/bluetooth/lowenergyscanner/Scanner/Label.qml b/examples/bluetooth/lowenergyscanner/Scanner/Label.qml
new file mode 100644
index 000000000..e31156740
--- /dev/null
+++ b/examples/bluetooth/lowenergyscanner/Scanner/Label.qml
@@ -0,0 +1,16 @@
+// Copyright (C) 2013 BlackBerry Limited. All rights reserved.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+
+Text {
+ property string textContent: ""
+ font.pointSize: 20
+ anchors.horizontalCenter: parent.horizontalCenter
+ color: "#363636"
+ horizontalAlignment: Text.AlignHCenter
+ elide: Text.ElideMiddle
+ width: parent.width
+ wrapMode: Text.Wrap
+ text: textContent
+}
diff --git a/examples/bluetooth/lowenergyscanner/Scanner/Main.qml b/examples/bluetooth/lowenergyscanner/Scanner/Main.qml
new file mode 100644
index 000000000..88600bace
--- /dev/null
+++ b/examples/bluetooth/lowenergyscanner/Scanner/Main.qml
@@ -0,0 +1,31 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Layouts
+
+Window {
+ id: main
+
+ width: 300
+ height: 600
+ visible: true
+
+ StackLayout {
+ id: pagesLayout
+ anchors.fill: parent
+ currentIndex: 0
+
+ Devices {
+ onShowServices: pagesLayout.currentIndex = 1
+ }
+ Services {
+ onShowDevices: pagesLayout.currentIndex = 0
+ onShowCharacteristics: pagesLayout.currentIndex = 2
+ }
+ Characteristics {
+ onShowDevices: pagesLayout.currentIndex = 0
+ onShowServices: pagesLayout.currentIndex = 1
+ }
+ }
+}
diff --git a/examples/bluetooth/lowenergyscanner/Scanner/Menu.qml b/examples/bluetooth/lowenergyscanner/Scanner/Menu.qml
new file mode 100644
index 000000000..ef69c895e
--- /dev/null
+++ b/examples/bluetooth/lowenergyscanner/Scanner/Menu.qml
@@ -0,0 +1,55 @@
+// Copyright (C) 2013 BlackBerry Limited. All rights reserved.
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+
+Rectangle {
+ id: menu
+
+ property real menuWidth: 100
+ property real menuHeight: 50
+ property string menuText: "Search"
+ signal buttonClick
+
+ height: menuHeight
+ width: menuWidth
+
+ Rectangle {
+ id: search
+ width: parent.width
+ height: parent.height
+ anchors.centerIn: parent
+ color: "#363636"
+ border.width: 1
+ border.color: "#E3E3E3"
+ radius: 5
+ Text {
+ id: searchText
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ anchors.fill: parent
+ text: menu.menuText
+ elide: Text.ElideMiddle
+ color: "#E3E3E3"
+ wrapMode: Text.WordWrap
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onPressed: {
+ search.width = search.width - 7
+ search.height = search.height - 5
+ }
+
+ onReleased: {
+ search.width = search.width + 7
+ search.height = search.height + 5
+ }
+
+ onClicked: {
+ menu.buttonClick()
+ }
+ }
+ }
+}
diff --git a/examples/bluetooth/lowenergyscanner/Scanner/Services.qml b/examples/bluetooth/lowenergyscanner/Scanner/Services.qml
new file mode 100644
index 000000000..70326242e
--- /dev/null
+++ b/examples/bluetooth/lowenergyscanner/Scanner/Services.qml
@@ -0,0 +1,115 @@
+// Copyright (C) 2013 BlackBerry Limited. All rights reserved.
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+pragma ComponentBehavior: Bound
+import QtQuick
+
+Rectangle {
+ id: servicesPage
+
+ signal showCharacteristics
+ signal showDevices
+
+ width: 300
+ height: 600
+
+ Component.onCompleted: {
+ // Loading this page may take longer than QLEController
+ // stopping with an error, go back and readjust this view
+ // based on controller errors
+ if (Device.controller_error) {
+ info.visible = false
+ menu.menuText = Device.update
+ }
+ }
+
+ Header {
+ id: header
+ anchors.top: parent.top
+ headerText: "Services list"
+ }
+
+ Dialog {
+ id: info
+ anchors.centerIn: parent
+ visible: true
+ dialogText: "Scanning for services..."
+ }
+
+ Connections {
+ target: Device
+ function onservices_updated() {
+ if (servicesview.count === 0)
+ info.dialogText = "No services found"
+ else
+ info.visible = false
+ }
+
+ function ondisconnected() {
+ servicesPage.showDevices()
+ }
+ }
+
+ ListView {
+ id: servicesview
+ width: parent.width
+ anchors.top: header.bottom
+ anchors.bottom: menu.top
+ model: Device.servicesList
+ clip: true
+
+ delegate: Rectangle {
+ required property var modelData
+ id: box
+ height: 100
+ color: "lightsteelblue"
+ border.width: 2
+ border.color: "black"
+ radius: 5
+ width: servicesview.width
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: {
+ Device.connectToService(box.modelData.service_uuid)
+ servicesPage.showCharacteristics()
+ }
+ }
+
+ Label {
+ id: serviceName
+ textContent: box.modelData.service_name
+ anchors.top: parent.top
+ anchors.topMargin: 5
+ }
+
+ Label {
+ textContent: box.modelData.service_type
+ font.pointSize: serviceName.font.pointSize * 0.5
+ anchors.top: serviceName.bottom
+ }
+
+ Label {
+ id: serviceUuid
+ font.pointSize: serviceName.font.pointSize * 0.5
+ textContent: box.modelData.service_uuid
+ anchors.bottom: box.bottom
+ anchors.bottomMargin: 5
+ }
+ }
+ }
+
+ Menu {
+ id: menu
+ anchors.bottom: parent.bottom
+ menuWidth: parent.width
+ menuText: Device.update
+ menuHeight: (parent.height / 6)
+ onButtonClick: {
+ Device.disconnect_from_device()
+ servicesPage.showDevices()
+ Device.update = "Search"
+ }
+ }
+}
diff --git a/examples/bluetooth/lowenergyscanner/Scanner/assets/busy_dark.png b/examples/bluetooth/lowenergyscanner/Scanner/assets/busy_dark.png
new file mode 100644
index 000000000..3a1059531
--- /dev/null
+++ b/examples/bluetooth/lowenergyscanner/Scanner/assets/busy_dark.png
Binary files differ
diff --git a/examples/bluetooth/lowenergyscanner/Scanner/qmldir b/examples/bluetooth/lowenergyscanner/Scanner/qmldir
new file mode 100644
index 000000000..0adf6fb19
--- /dev/null
+++ b/examples/bluetooth/lowenergyscanner/Scanner/qmldir
@@ -0,0 +1,10 @@
+module Scanner
+typeinfo scanner.qmltypes
+Characteristics 1.0 Characteristics.qml
+Devices 1.0 Devices.qml
+Dialog 1.0 Dialog.qml
+Header 1.0 Header.qml
+Label 1.0 Label.qml
+Main 1.0 Main.qml
+Menu 1.0 Menu.qml
+Services 1.0 Services.qml
diff --git a/examples/bluetooth/lowenergyscanner/characteristicinfo.py b/examples/bluetooth/lowenergyscanner/characteristicinfo.py
new file mode 100644
index 000000000..42bde8753
--- /dev/null
+++ b/examples/bluetooth/lowenergyscanner/characteristicinfo.py
@@ -0,0 +1,87 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject, Property, Signal
+from PySide6.QtBluetooth import QLowEnergyCharacteristic, QBluetoothUuid
+
+
+class CharacteristicInfo(QObject):
+
+ characteristic_changed = Signal()
+
+ def __init__(self, characteristic=None) -> None:
+ super().__init__()
+ self._characteristic = characteristic
+
+ @Property(str, notify=characteristic_changed)
+ def characteristic_name(self):
+ if not self.characteristic:
+ raise Exception("characteristic unset")
+ name = self.characteristic.name()
+ if name:
+ return name
+
+ for descriptor in self.characteristic.descriptors():
+ if descriptor.type() == QBluetoothUuid.DescriptorType.CharacteristicUserDescription:
+ name = descriptor.value()
+ break
+
+ if not name:
+ name = "Unknown"
+
+ return name
+
+ @Property(str, notify=characteristic_changed)
+ def characteristic_uuid(self):
+ uuid = self.characteristic.uuid()
+ result16, success16 = uuid.toUInt16()
+ if success16:
+ return f"0x{result16:x}"
+
+ result32, sucess32 = uuid.toUInt32()
+ if sucess32:
+ return f"0x{result32:x}"
+
+ return uuid.toString().replace('{', '').replace('}', '')
+
+ @Property(str, notify=characteristic_changed)
+ def characteristic_value(self):
+ # Show raw string first and hex value below
+ a = self.characteristic.value()
+ if not a:
+ return "<none>"
+
+ result = f"{str(a)}\n{str(a.toHex())}"
+ return result
+
+ @Property(str, notify=characteristic_changed)
+ def characteristic_permission(self):
+ properties = "( "
+ permission = self.characteristic.properties()
+ if (permission & QLowEnergyCharacteristic.Read):
+ properties += " Read"
+ if (permission & QLowEnergyCharacteristic.Write):
+ properties += " Write"
+ if (permission & QLowEnergyCharacteristic.Notify):
+ properties += " Notify"
+ if (permission & QLowEnergyCharacteristic.Indicate):
+ properties += " Indicate"
+ if (permission & QLowEnergyCharacteristic.ExtendedProperty):
+ properties += " ExtendedProperty"
+ if (permission & QLowEnergyCharacteristic.Broadcasting):
+ properties += " Broadcast"
+ if (permission & QLowEnergyCharacteristic.WriteNoResponse):
+ properties += " WriteNoResp"
+ if (permission & QLowEnergyCharacteristic.WriteSigned):
+ properties += " WriteSigned"
+ properties += " )"
+ return properties
+
+ @property
+ def characteristic(self):
+ return self._characteristic
+
+ @characteristic.setter
+ def characteristic(self, characteristic):
+ self._characteristic = characteristic
+ self.characteristic_changed.emit()
diff --git a/examples/bluetooth/lowenergyscanner/device.py b/examples/bluetooth/lowenergyscanner/device.py
new file mode 100644
index 000000000..09108cf69
--- /dev/null
+++ b/examples/bluetooth/lowenergyscanner/device.py
@@ -0,0 +1,278 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+import warnings
+from PySide6.QtBluetooth import (QBluetoothDeviceDiscoveryAgent, QLowEnergyController,
+ QBluetoothDeviceInfo, QBluetoothUuid, QLowEnergyService)
+from PySide6.QtCore import QObject, Property, Signal, Slot, QTimer, QMetaObject, Qt
+from PySide6.QtQml import QmlElement, QmlSingleton
+
+from deviceinfo import DeviceInfo
+from serviceinfo import ServiceInfo
+from characteristicinfo import CharacteristicInfo
+
+QML_IMPORT_NAME = "Scanner"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+@QmlSingleton
+class Device(QObject):
+
+ devices_updated = Signal()
+ services_updated = Signal()
+ characteristic_updated = Signal()
+ update_changed = Signal()
+ state_changed = Signal()
+ disconnected = Signal()
+ random_address_changed = Signal()
+
+ def __init__(self, parent=None) -> None:
+ super().__init__(parent)
+ self.devices = []
+ self._services = []
+ self._characteristics = []
+ self._previousAddress = ""
+ self._message = ""
+ self.currentDevice = DeviceInfo()
+ self.connected = False
+ self.controller: QLowEnergyController = None
+ self._deviceScanState = False
+ self.random_address = False
+ self.discovery_agent = QBluetoothDeviceDiscoveryAgent()
+ self.discovery_agent.setLowEnergyDiscoveryTimeout(25000)
+ self.discovery_agent.deviceDiscovered.connect(self.add_device)
+ self.discovery_agent.errorOccurred.connect(self.device_scan_error)
+ self.discovery_agent.finished.connect(self.device_scan_finished)
+ self.update = "Search"
+
+ @Property("QVariant", notify=devices_updated)
+ def devices_list(self):
+ return self.devices
+
+ @Property("QVariant", notify=services_updated)
+ def services_list(self):
+ return self._services
+
+ @Property("QVariant", notify=characteristic_updated)
+ def characteristic_list(self):
+ return self._characteristics
+
+ @Property(str, notify=update_changed)
+ def update(self):
+ return self._message
+
+ @update.setter
+ def update(self, message):
+ self._message = message
+ self.update_changed.emit()
+
+ @Property(bool, notify=random_address_changed)
+ def use_random_address(self):
+ return self.random_address
+
+ @use_random_address.setter
+ def use_random_address(self, newValue):
+ self.random_address = newValue
+ self.random_address_changed.emit()
+
+ @Property(bool, notify=state_changed)
+ def state(self):
+ return self._deviceScanState
+
+ @Property(bool)
+ def controller_error(self):
+ return self.controller and (self.controller.error() != QLowEnergyController.NoError)
+
+ @Slot()
+ def start_device_discovery(self):
+ self.devices.clear()
+ self.devices_updated.emit()
+ self.update = "Scanning for devices ..."
+ self.discovery_agent.start(QBluetoothDeviceDiscoveryAgent.LowEnergyMethod)
+
+ if self.discovery_agent.isActive():
+ self._deviceScanState = True
+ self.state_changed.emit()
+
+ @Slot(str)
+ def scan_services(self, address):
+ # We need the current device for service discovery.
+ for device in self.devices:
+ if device.device_address == address:
+ self.currentDevice.set_device(device.get_device())
+ break
+
+ if not self.currentDevice.get_device().isValid():
+ warnings.warn("Not a valid device")
+ return
+
+ self._characteristics.clear()
+ self.characteristic_updated.emit()
+ self._services.clear()
+ self.services_updated.emit()
+
+ self.update = "Back\n(Connecting to device...)"
+
+ if self.controller and (self._previousAddress != self.currentDevice.device_address):
+ self.controller.disconnectFromDevice()
+ del self.controller
+ self.controller = None
+
+ if not self.controller:
+ self.controller = QLowEnergyController.createCentral(self.currentDevice.get_device())
+ self.controller.connected.connect(self.device_connected)
+ self.controller.errorOccurred.connect(self.error_received)
+ self.controller.disconnected.connect(self.device_disconnected)
+ self.controller.serviceDiscovered.connect(self.add_low_energy_service)
+ self.controller.discoveryFinished.connect(self.services_scan_done)
+
+ if self.random_address:
+ self.controller.setRemoteAddressType(QLowEnergyController.RandomAddress)
+ else:
+ self.controller.setRemoteAddressType(QLowEnergyController.PublicAddress)
+ self.controller.connectToDevice()
+
+ self._previousAddress = self.currentDevice.device_address
+
+ @Slot(str)
+ def connect_to_service(self, uuid):
+ service: QLowEnergyService = None
+ for serviceInfo in self._services:
+ if not serviceInfo:
+ continue
+
+ if serviceInfo.service_uuid == uuid:
+ service = serviceInfo.service
+ break
+
+ if not service:
+ return
+
+ self._characteristics.clear()
+ self.characteristic_updated.emit()
+
+ if service.state() == QLowEnergyService.RemoteService:
+ service.state_changed.connect(self.service_details_discovered)
+ service.discoverDetails()
+ self.update = "Back\n(Discovering details...)"
+ return
+
+ # discovery already done
+ chars = service.characteristics()
+ for ch in chars:
+ cInfo = CharacteristicInfo(ch)
+ self._characteristics.append(cInfo)
+
+ QTimer.singleShot(0, self.characteristic_updated)
+
+ @Slot()
+ def disconnect_from_device(self):
+ # UI always expects disconnect() signal when calling this signal
+ # TODO what is really needed is to extend state() to a multi value
+ # and thus allowing UI to keep track of controller progress in addition to
+ # device scan progress
+
+ if self.controller.state() != QLowEnergyController.UnconnectedState:
+ self.controller.disconnectFromDevice()
+ else:
+ self.device_disconnected()
+
+ @Slot(QBluetoothDeviceInfo)
+ def add_device(self, info):
+ if info.coreConfigurations() & QBluetoothDeviceInfo.LowEnergyCoreConfiguration:
+ self.update = "Last device added: " + info.name()
+
+ @Slot()
+ def device_scan_finished(self):
+ foundDevices = self.discovery_agent.discoveredDevices()
+ for nextDevice in foundDevices:
+ if nextDevice.coreConfigurations() & QBluetoothDeviceInfo.LowEnergyCoreConfiguration:
+ device = DeviceInfo(nextDevice)
+ self.devices.append(device)
+
+ self.devices_updated.emit()
+ self._deviceScanState = False
+ self.state_changed.emit()
+ if not self.devices:
+ self.update = "No Low Energy devices found..."
+ else:
+ self.update = "Done! Scan Again!"
+
+ @Slot("QBluetoothDeviceDiscovertAgent::Error")
+ def device_scan_error(self, error):
+ if error == QBluetoothDeviceDiscoveryAgent.PoweredOffError:
+ self.update = (
+ "The Bluetooth adaptor is powered off, power it on before doing discovery."
+ )
+ elif error == QBluetoothDeviceDiscoveryAgent.InputOutputError:
+ self.update = "Writing or reading from the device resulted in an error."
+ else:
+ qme = self.discovery_agent.metaObject().enumerator(
+ self.discovery_agent.metaObject().indexOfEnumerator("Error")
+ )
+ self.update = f"Error: {qme.valueToKey(error)}"
+
+ self._deviceScanState = False
+ self.devices_updated.emit()
+ self.state_changed.emit()
+
+ @Slot(QBluetoothUuid)
+ def add_low_energy_service(self, service_uuid):
+ service = self.controller.createServiceObject(service_uuid)
+ if not service:
+ warnings.warn("Cannot create service from uuid")
+ return
+
+ serv = ServiceInfo(service)
+ self._services.append(serv)
+ self.services_updated.emit()
+
+ @Slot()
+ def device_connected(self):
+ self.update = "Back\n(Discovering services...)"
+ self.connected = True
+ self.controller.discoverServices()
+
+ @Slot("QLowEnergyController::Error")
+ def error_received(self, error):
+ warnings.warn(f"Error: {self.controller.errorString()}")
+ self.update = f"Back\n({self.controller.errorString()})"
+
+ @Slot()
+ def services_scan_done(self):
+ self.update = "Back\n(Service scan done!)"
+ # force UI in case we didn't find anything
+ if not self._services:
+ self.services_updated.emit()
+
+ @Slot()
+ def device_disconnected(self):
+ warnings.warn("Disconnect from Device")
+ self.disconnected.emit()
+
+ @Slot("QLowEnergyService::ServiceState")
+ def service_details_discovered(self, newState):
+ if newState != QLowEnergyService.RemoteServiceDiscovered:
+ # do not hang in "Scanning for characteristics" mode forever
+ # in case the service discovery failed
+ # We have to queue the signal up to give UI time to even enter
+ # the above mode
+ if newState != QLowEnergyService.RemoteServiceDiscovering:
+ QMetaObject.invokeMethod(self.characteristic_updated, Qt.QueuedConnection)
+ return
+
+ service = self.sender()
+ if not service:
+ return
+
+ chars = service.characteristics()
+ for ch in chars:
+ cInfo = CharacteristicInfo(ch)
+ self._characteristics.append(cInfo)
+
+ self.characteristic_updated.emit()
+
+ @Slot()
+ def stop_device_discovery(self):
+ if self.discovery_agent.isActive():
+ self.discovery_agent.stop()
diff --git a/examples/bluetooth/lowenergyscanner/deviceinfo.py b/examples/bluetooth/lowenergyscanner/deviceinfo.py
new file mode 100644
index 000000000..35a568821
--- /dev/null
+++ b/examples/bluetooth/lowenergyscanner/deviceinfo.py
@@ -0,0 +1,34 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from PySide6.QtCore import QObject, Property, Signal
+from PySide6.QtBluetooth import QBluetoothDeviceInfo
+
+
+class DeviceInfo(QObject):
+
+ device_changed = Signal()
+
+ def __init__(self, d: QBluetoothDeviceInfo = None) -> None:
+ super().__init__()
+ self._device = d
+
+ @Property(str, notify=device_changed)
+ def device_name(self):
+ return self._device.name()
+
+ @Property(str, notify=device_changed)
+ def device_address(self):
+ if sys.platform == "darwin":
+ return self._device.deviceUuid().toString()
+
+ return self._device.address().toString()
+
+ def get_device(self):
+ return self._device
+
+ def set_device(self, device):
+ self._device = device
+ self.device_changed.emit()
diff --git a/examples/bluetooth/lowenergyscanner/doc/lowenergyscanner.png b/examples/bluetooth/lowenergyscanner/doc/lowenergyscanner.png
new file mode 100644
index 000000000..29f41deb4
--- /dev/null
+++ b/examples/bluetooth/lowenergyscanner/doc/lowenergyscanner.png
Binary files differ
diff --git a/examples/bluetooth/lowenergyscanner/doc/lowenergyscanner.rst b/examples/bluetooth/lowenergyscanner/doc/lowenergyscanner.rst
new file mode 100644
index 000000000..a0c574350
--- /dev/null
+++ b/examples/bluetooth/lowenergyscanner/doc/lowenergyscanner.rst
@@ -0,0 +1,11 @@
+Bluetooth Low Energy Scanner Example
+====================================
+
+.. tags:: Android
+
+A Python application that demonstrates the analogous example in Qt
+`Bluetooth Low Energy Scanner <https://doc.qt.io/qt-6/qtbluetooth-lowenergyscanner-example.html>`_
+
+.. image:: lowenergyscanner.png
+ :width: 400
+ :alt: lowenergyscanner screenshot
diff --git a/examples/bluetooth/lowenergyscanner/lowenergyscanner.pyproject b/examples/bluetooth/lowenergyscanner/lowenergyscanner.pyproject
new file mode 100644
index 000000000..7e0cfa3d9
--- /dev/null
+++ b/examples/bluetooth/lowenergyscanner/lowenergyscanner.pyproject
@@ -0,0 +1,7 @@
+{
+ "files": ["main.py", "device.py", "deviceinfo.py", "serviceinfo.py", "characteristicinfo.py",
+ "Scanner/Main.qml", "Scanner/Menu.qml","Scanner/Header.qml",
+ "Scanner/Characteristics.qml", "Scanner/Dialog.qml", "Scanner/Services.qml",
+ "Scanner/Label.qml", "Scanner/Devices.qml", "Scanner/assets/busy_dark.png",
+ "Scanner/qmldir"]
+}
diff --git a/examples/bluetooth/lowenergyscanner/main.py b/examples/bluetooth/lowenergyscanner/main.py
new file mode 100644
index 000000000..ec12f99e7
--- /dev/null
+++ b/examples/bluetooth/lowenergyscanner/main.py
@@ -0,0 +1,27 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the bluetooth/lowenergyscanner example from Qt v6.x"""
+
+
+import sys
+
+from PySide6.QtCore import QCoreApplication
+from PySide6.QtGui import QGuiApplication
+from PySide6.QtQml import QQmlApplicationEngine
+
+from device import Device # noqa: F401
+from pathlib import Path
+
+if __name__ == '__main__':
+ app = QGuiApplication(sys.argv)
+ engine = QQmlApplicationEngine()
+ engine.addImportPath(Path(__file__).parent)
+ engine.loadFromModule("Scanner", "Main")
+
+ if not engine.rootObjects():
+ sys.exit(-1)
+
+ ex = QCoreApplication.exec()
+ del engine
+ sys.exit(ex)
diff --git a/examples/bluetooth/lowenergyscanner/serviceinfo.py b/examples/bluetooth/lowenergyscanner/serviceinfo.py
new file mode 100644
index 000000000..cddffe663
--- /dev/null
+++ b/examples/bluetooth/lowenergyscanner/serviceinfo.py
@@ -0,0 +1,64 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject, Property, Signal
+from PySide6.QtBluetooth import QLowEnergyService
+
+
+class ServiceInfo(QObject):
+
+ service_changed = Signal()
+
+ def __init__(self, service: QLowEnergyService) -> None:
+ super().__init__()
+ self._service = service
+ self.service.setParent(self)
+
+ @Property(str, notify=service_changed)
+ def service_name(self):
+ if not self.service:
+ return ""
+
+ return self.service.service_name()
+
+ @Property(str, notify=service_changed)
+ def service_type(self):
+ if not self.service:
+ return ""
+
+ result = ""
+ if (self.service.type() & QLowEnergyService.PrimaryService):
+ result += "primary"
+ else:
+ result += "secondary"
+
+ if (self.service.type() & QLowEnergyService.IncludedService):
+ result += " included"
+
+ result = '<' + result + '>'
+
+ return result
+
+ @Property(str, notify=service_changed)
+ def service_uuid(self):
+ if not self.service:
+ return ""
+
+ uuid = self.service.service_uuid()
+ result16, success16 = uuid.toUInt16()
+ if success16:
+ return f"0x{result16:x}"
+
+ result32, sucesss32 = uuid.toUInt32()
+ if sucesss32:
+ return f"0x{result32:x}"
+
+ return uuid.toString().replace('{', '').replace('}', '')
+
+ @property
+ def service(self):
+ return self._service
+
+ @service.setter
+ def service(self, service):
+ self._service = service
diff --git a/examples/charts/areachart/areachart.py b/examples/charts/areachart/areachart.py
new file mode 100644
index 000000000..164264ff7
--- /dev/null
+++ b/examples/charts/areachart/areachart.py
@@ -0,0 +1,67 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the areachart example from Qt v6.x"""
+
+import sys
+from PySide6.QtCore import QPointF, Qt
+from PySide6.QtWidgets import QMainWindow, QApplication
+from PySide6.QtCharts import QChart, QChartView, QLineSeries, QAreaSeries
+from PySide6.QtGui import QGradient, QPen, QLinearGradient, QPainter
+
+
+class TestChart(QMainWindow):
+ def __init__(self):
+ super().__init__()
+
+ self.series_0 = QLineSeries()
+ self.series_1 = QLineSeries()
+
+ self.series_0.append(QPointF(1, 5))
+ self.series_0.append(QPointF(3, 7))
+ self.series_0.append(QPointF(7, 6))
+ self.series_0.append(QPointF(9, 7))
+ self.series_0.append(QPointF(12, 6))
+ self.series_0.append(QPointF(16, 7))
+ self.series_0.append(QPointF(18, 5))
+
+ self.series_1.append(QPointF(1, 3))
+ self.series_1.append(QPointF(3, 4))
+ self.series_1.append(QPointF(7, 3))
+ self.series_1.append(QPointF(8, 2))
+ self.series_1.append(QPointF(12, 3))
+ self.series_1.append(QPointF(16, 4))
+ self.series_1.append(QPointF(18, 3))
+
+ self.series = QAreaSeries(self.series_0, self.series_1)
+ self.series.setName("Batman")
+ self.pen = QPen(0x059605)
+ self.pen.setWidth(3)
+ self.series.setPen(self.pen)
+
+ self.gradient = QLinearGradient(QPointF(0, 0), QPointF(0, 1))
+ self.gradient.setColorAt(0.0, 0x3cc63c)
+ self.gradient.setColorAt(1.0, 0x26f626)
+ self.gradient.setCoordinateMode(QGradient.ObjectBoundingMode)
+ self.series.setBrush(self.gradient)
+
+ self.chart = QChart()
+ self.chart.addSeries(self.series)
+ self.chart.setTitle("Simple areachart example")
+ self.chart.createDefaultAxes()
+ self.chart.axes(Qt.Horizontal)[0].setRange(0, 20)
+ self.chart.axes(Qt.Vertical)[0].setRange(0, 10)
+
+ self._chart_view = QChartView(self.chart)
+ self._chart_view.setRenderHint(QPainter.Antialiasing)
+
+ self.setCentralWidget(self._chart_view)
+
+
+if __name__ == "__main__":
+ app = QApplication(sys.argv)
+
+ window = TestChart()
+ window.show()
+ window.resize(400, 300)
+ sys.exit(app.exec())
diff --git a/examples/charts/areachart/areachart.pyproject b/examples/charts/areachart/areachart.pyproject
new file mode 100644
index 000000000..b4a6f9d65
--- /dev/null
+++ b/examples/charts/areachart/areachart.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["areachart.py"]
+}
diff --git a/examples/charts/areachart/doc/areachart.png b/examples/charts/areachart/doc/areachart.png
new file mode 100644
index 000000000..d03838443
--- /dev/null
+++ b/examples/charts/areachart/doc/areachart.png
Binary files differ
diff --git a/examples/charts/areachart/doc/areachart.rst b/examples/charts/areachart/doc/areachart.rst
new file mode 100644
index 000000000..c6cd718d7
--- /dev/null
+++ b/examples/charts/areachart/doc/areachart.rst
@@ -0,0 +1,8 @@
+Area Chart Example
+==================
+
+The example shows how to create an area Chart
+
+.. image:: areachart.png
+ :width: 400
+ :alt: Area Chart Screenshot
diff --git a/examples/charts/audio/audio.py b/examples/charts/audio/audio.py
index 875618377..8ba0b20c5 100644
--- a/examples/charts/audio/audio.py
+++ b/examples/charts/audio/audio.py
@@ -1,51 +1,12 @@
-
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the charts/audio example from Qt v5.x"""
import sys
from PySide6.QtCharts import QChart, QChartView, QLineSeries, QValueAxis
from PySide6.QtCore import QPointF, Slot
-from PySide6.QtMultimedia import (QAudioDevice, QAudioFormat,
- QAudioSource, QMediaDevices)
+from PySide6.QtMultimedia import QAudioFormat, QAudioSource, QMediaDevices
from PySide6.QtWidgets import QApplication, QMainWindow, QMessageBox
diff --git a/examples/charts/barchart/barchart.py b/examples/charts/barchart/barchart.py
new file mode 100644
index 000000000..66126ad8a
--- /dev/null
+++ b/examples/charts/barchart/barchart.py
@@ -0,0 +1,69 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the linechart example from Qt v6.x"""
+
+import sys
+
+from PySide6.QtCharts import (QBarCategoryAxis, QBarSeries, QBarSet, QChart,
+ QChartView, QValueAxis)
+from PySide6.QtCore import Qt
+from PySide6.QtGui import QPainter
+from PySide6.QtWidgets import QApplication, QMainWindow
+
+
+class TestChart(QMainWindow):
+ def __init__(self):
+ super().__init__()
+
+ self.set_0 = QBarSet("Jane")
+ self.set_1 = QBarSet("John")
+ self.set_2 = QBarSet("Axel")
+ self.set_3 = QBarSet("Mary")
+ self.set_4 = QBarSet("Samantha")
+
+ self.set_0.append([1, 2, 3, 4, 5, 6])
+ self.set_1.append([5, 0, 0, 4, 0, 7])
+ self.set_2.append([3, 5, 8, 13, 8, 5])
+ self.set_3.append([5, 6, 7, 3, 4, 5])
+ self.set_4.append([9, 7, 5, 3, 1, 2])
+
+ self.series = QBarSeries()
+ self.series.append(self.set_0)
+ self.series.append(self.set_1)
+ self.series.append(self.set_2)
+ self.series.append(self.set_3)
+ self.series.append(self.set_4)
+
+ self.chart = QChart()
+ self.chart.addSeries(self.series)
+ self.chart.setTitle("Simple barchart example")
+ self.chart.setAnimationOptions(QChart.SeriesAnimations)
+
+ self.categories = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"]
+ self.axis_x = QBarCategoryAxis()
+ self.axis_x.append(self.categories)
+ self.chart.addAxis(self.axis_x, Qt.AlignBottom)
+ self.series.attachAxis(self.axis_x)
+
+ self.axis_y = QValueAxis()
+ self.axis_y.setRange(0, 15)
+ self.chart.addAxis(self.axis_y, Qt.AlignLeft)
+ self.series.attachAxis(self.axis_y)
+
+ self.chart.legend().setVisible(True)
+ self.chart.legend().setAlignment(Qt.AlignBottom)
+
+ self._chart_view = QChartView(self.chart)
+ self._chart_view.setRenderHint(QPainter.Antialiasing)
+
+ self.setCentralWidget(self._chart_view)
+
+
+if __name__ == "__main__":
+ app = QApplication(sys.argv)
+
+ window = TestChart()
+ window.show()
+ window.resize(420, 300)
+ sys.exit(app.exec())
diff --git a/examples/charts/barchart/barchart.pyproject b/examples/charts/barchart/barchart.pyproject
new file mode 100644
index 000000000..4ca819426
--- /dev/null
+++ b/examples/charts/barchart/barchart.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["barchart.py"]
+}
diff --git a/examples/charts/barchart/doc/barchart.png b/examples/charts/barchart/doc/barchart.png
new file mode 100644
index 000000000..da08217fc
--- /dev/null
+++ b/examples/charts/barchart/doc/barchart.png
Binary files differ
diff --git a/examples/charts/barchart/doc/barchart.rst b/examples/charts/barchart/doc/barchart.rst
new file mode 100644
index 000000000..b9a499721
--- /dev/null
+++ b/examples/charts/barchart/doc/barchart.rst
@@ -0,0 +1,8 @@
+Bar Chart Example
+==================
+
+The example shows how to create a Bar chart.
+
+.. image:: barchart.png
+ :width: 400
+ :alt: Bar Chart Screenshot
diff --git a/examples/charts/callout/callout.py b/examples/charts/callout/callout.py
index 99982e690..622938d16 100644
--- a/examples/charts/callout/callout.py
+++ b/examples/charts/callout/callout.py
@@ -1,49 +1,11 @@
-
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the Callout example from Qt v5.x"""
import sys
-from PySide6.QtWidgets import (QApplication, QGraphicsScene,
- QGraphicsView, QGraphicsSimpleTextItem, QGraphicsItem)
+from PySide6.QtWidgets import (QApplication, QGraphicsScene, QGraphicsView,
+ QGraphicsSimpleTextItem, QGraphicsItem)
from PySide6.QtCore import Qt, QPointF, QRectF, QRect
from PySide6.QtCharts import QChart, QLineSeries, QSplineSeries
from PySide6.QtGui import QPainter, QFont, QFontMetrics, QPainterPath, QColor
@@ -80,37 +42,37 @@ class Callout(QGraphicsItem):
# establish the position of the anchor point in relation to _rect
above = anchor.y() <= self._rect.top()
- above_center = (anchor.y() > self._rect.top() and
- anchor.y() <= self._rect.center().y())
- below_center = (anchor.y() > self._rect.center().y() and
- anchor.y() <= self._rect.bottom())
+ above_center = (anchor.y() > self._rect.top()
+ and anchor.y() <= self._rect.center().y())
+ below_center = (anchor.y() > self._rect.center().y()
+ and anchor.y() <= self._rect.bottom())
below = anchor.y() > self._rect.bottom()
on_left = anchor.x() <= self._rect.left()
- left_of_center = (anchor.x() > self._rect.left() and
- anchor.x() <= self._rect.center().x())
- right_of_center = (anchor.x() > self._rect.center().x() and
- anchor.x() <= self._rect.right())
+ left_of_center = (anchor.x() > self._rect.left()
+ and anchor.x() <= self._rect.center().x())
+ right_of_center = (anchor.x() > self._rect.center().x()
+ and anchor.x() <= self._rect.right())
on_right = anchor.x() > self._rect.right()
# get the nearest _rect corner.
x = (on_right + right_of_center) * self._rect.width()
y = (below + below_center) * self._rect.height()
- corner_case = ((above and on_left) or (above and on_right) or
- (below and on_left) or (below and on_right))
+ corner_case = ((above and on_left) or (above and on_right)
+ or (below and on_left) or (below and on_right))
vertical = abs(anchor.x() - x) > abs(anchor.y() - y)
- x1 = (x + left_of_center * 10 - right_of_center * 20 + corner_case *
- int(not vertical) * (on_left * 10 - on_right * 20))
- y1 = (y + above_center * 10 - below_center * 20 + corner_case *
- vertical * (above * 10 - below * 20))
+ x1 = (x + left_of_center * 10 - right_of_center * 20 + corner_case
+ * int(not vertical) * (on_left * 10 - on_right * 20))
+ y1 = (y + above_center * 10 - below_center * 20 + corner_case
+ * vertical * (above * 10 - below * 20))
point1.setX(x1)
point1.setY(y1)
- x2 = (x + left_of_center * 20 - right_of_center * 10 + corner_case *
- int(not vertical) * (on_left * 20 - on_right * 10))
- y2 = (y + above_center * 20 - below_center * 10 + corner_case *
- vertical * (above * 20 - below * 10))
+ x2 = (x + left_of_center * 20 - right_of_center * 10 + corner_case
+ * int(not vertical) * (on_left * 20 - on_right * 10))
+ y2 = (y + above_center * 20 - below_center * 10 + corner_case
+ * vertical * (above * 20 - below * 10))
point2.setX(x2)
point2.setY(y2)
@@ -128,7 +90,7 @@ class Callout(QGraphicsItem):
def mouseMoveEvent(self, event):
if event.buttons() & Qt.LeftButton:
- self.setPos(mapToParent(
+ self.setPos(self.mapToParent(
event.pos() - event.buttonDownPos(Qt.LeftButton)))
event.setAccepted(True)
else:
@@ -165,7 +127,7 @@ class View(QGraphicsView):
self._chart = QChart()
self._chart.setMinimumSize(640, 480)
self._chart.setTitle("Hover the line to show callout. Click the line "
- "to make it stay")
+ "to make it stay")
self._chart.legend().hide()
self.series = QLineSeries()
self.series.append(1, 3)
diff --git a/examples/charts/chartthemes/README.md b/examples/charts/chartthemes/README.md
index 806e391d2..1b1ab51f7 100644
--- a/examples/charts/chartthemes/README.md
+++ b/examples/charts/chartthemes/README.md
@@ -3,7 +3,7 @@
To generated the file `ui_themewidget.py`, the following
command need to be executed:
-`pyside6-uic themewidget.ui > ui_themewidget.py`
+`pyside6-uic themewidget.ui -o ui_themewidget.py`
Also, if you modify the UI file, then you would need
to run the previous command again.
diff --git a/examples/charts/chartthemes/main.py b/examples/charts/chartthemes/main.py
index 76c5956ab..5787710ca 100644
--- a/examples/charts/chartthemes/main.py
+++ b/examples/charts/chartthemes/main.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the Chart Themes example from Qt v5.x"""
@@ -44,7 +7,7 @@ import sys
from PySide6.QtCore import QPointF, Qt
from PySide6.QtGui import QColor, QPainter, QPalette
from PySide6.QtWidgets import (QApplication, QMainWindow, QSizePolicy,
- QWidget)
+ QWidget)
from PySide6.QtCharts import (QAreaSeries, QBarSet, QChart, QChartView,
QLineSeries, QPieSeries, QScatterSeries,
QSplineSeries, QStackedBarSeries)
@@ -64,7 +27,7 @@ class ThemeWidget(QWidget):
self.value_max = 10
self.value_count = 7
self.data_table = self.generate_random_data(self.list_count,
- self.value_max, self.value_count)
+ self.value_max, self.value_count)
self.ui.setupUi(self)
self.populate_themebox()
@@ -78,8 +41,7 @@ class ThemeWidget(QWidget):
# Pie Chart
chart_view = QChartView(self.create_pie_chart())
- chart_view.setSizePolicy(QSizePolicy.Ignored,
- QSizePolicy.Ignored)
+ chart_view.setSizePolicy(QSizePolicy.Ignored, QSizePolicy.Ignored)
self.ui.gridLayout.addWidget(chart_view, 1, 1)
self.charts.append(chart_view)
@@ -107,10 +69,10 @@ class ThemeWidget(QWidget):
self.ui.antialiasCheckBox.setChecked(True)
# Set the colors from the light theme as default ones
- pal = qApp.palette()
+ pal = qApp.palette() # noqa: F821
pal.setColor(QPalette.Window, QColor(0xf0f0f0))
pal.setColor(QPalette.WindowText, QColor(0x404044))
- qApp.setPalette(pal)
+ qApp.setPalette(pal) # noqa: F821
self.update_ui()
@@ -171,7 +133,7 @@ class ThemeWidget(QWidget):
for j in range(len(self.data_table[i])):
data = self.data_table[i][j]
if lower_series:
- points = lower_series.pointsVector()
+ points = lower_series.points()
y_value = points[i].y() + data[0].y()
upper_series.append(QPointF(j, y_value))
else:
@@ -182,10 +144,12 @@ class ThemeWidget(QWidget):
lower_series = upper_series
chart.createDefaultAxes()
- chart.axisX().setRange(0, self.value_count - 1)
- chart.axisY().setRange(0, self.value_max)
+ axis_x = chart.axes(Qt.Horizontal)[0]
+ axis_x.setRange(0, self.value_count - 1)
+ axis_y = chart.axes(Qt.Vertical)[0]
+ axis_y.setRange(0, self.value_max)
# Add space to label to add space between labels and axis
- chart.axisY().setLabelFormat("%.1f ")
+ axis_y.setLabelFormat("%.1f ")
return chart
@@ -203,9 +167,10 @@ class ThemeWidget(QWidget):
chart.addSeries(series)
chart.createDefaultAxes()
- chart.axisY().setRange(0, self.value_max * 2)
+ axis_y = chart.axes(Qt.Vertical)[0]
+ axis_y.setRange(0, self.value_max * 2)
# Add space to label to add space between labels and axis
- chart.axisY().setLabelFormat("%.1f ")
+ axis_y.setLabelFormat("%.1f ")
return chart
@@ -222,10 +187,12 @@ class ThemeWidget(QWidget):
chart.addSeries(series)
chart.createDefaultAxes()
- chart.axisX().setRange(0, self.value_max)
- chart.axisY().setRange(0, self.value_count)
+ axis_x = chart.axes(Qt.Horizontal)[0]
+ axis_x.setRange(0, self.value_max)
+ axis_y = chart.axes(Qt.Vertical)[0]
+ axis_y.setRange(0, self.value_count)
# Add space to label to add space between labels and axis
- chart.axisY().setLabelFormat("%.1f ")
+ axis_y.setLabelFormat("%.1f ")
return chart
@@ -259,10 +226,12 @@ class ThemeWidget(QWidget):
chart.addSeries(series)
chart.createDefaultAxes()
- chart.axisX().setRange(0, self.value_max)
- chart.axisY().setRange(0, self.value_count)
+ axis_x = chart.axes(Qt.Horizontal)[0]
+ axis_x.setRange(0, self.value_max)
+ axis_y = chart.axes(Qt.Vertical)[0]
+ axis_y.setRange(0, self.value_count)
# Add space to label to add space between labels and axis
- chart.axisY().setLabelFormat("%.1f ")
+ axis_y.setLabelFormat("%.1f ")
return chart
@@ -278,10 +247,12 @@ class ThemeWidget(QWidget):
chart.addSeries(series)
chart.createDefaultAxes()
- chart.axisX().setRange(0, self.value_max)
- chart.axisY().setRange(0, self.value_count)
+ axis_x = chart.axes(Qt.Horizontal)[0]
+ axis_x.setRange(0, self.value_max)
+ axis_y = chart.axes(Qt.Vertical)[0]
+ axis_y.setRange(0, self.value_count)
# Add space to label to add space between labels and axis
- chart.axisY().setLabelFormat("%.1f ")
+ axis_y.setLabelFormat("%.1f ")
return chart
@@ -299,26 +270,7 @@ class ThemeWidget(QWidget):
chart_theme = self.charts[0].chart().theme()
if chart_theme != theme:
for chart_view in self.charts:
- if theme == 0:
- theme_name = QChart.ChartThemeLight
- elif theme == 1:
- theme_name = QChart.ChartThemeBlueCerulean
- elif theme == 2:
- theme_name = QChart.ChartThemeDark
- elif theme == 3:
- theme_name = QChart.ChartThemeBrownSand
- elif theme == 4:
- theme_name = QChart.ChartThemeBlueNcs
- elif theme == 5:
- theme_name = QChart.ChartThemeHighContrast
- elif theme == 6:
- theme_name = QChart.ChartThemeBlueIcy
- elif theme == 7:
- theme_name = QChart.ChartThemeQt
- else:
- theme_name = QChart.ChartThemeLight
-
- chart_view.chart().setTheme(theme_name)
+ chart_view.chart().setTheme(theme)
# Set palette colors based on selected theme
if theme == QChart.ChartThemeLight:
@@ -348,20 +300,10 @@ class ThemeWidget(QWidget):
options = self.ui.animatedComboBox.itemData(idx)
if len(self.charts):
- chart = self.charts[0].chart()
- animation_options = chart.animationOptions()
+ animation_options = self.charts[0].chart().animationOptions()
if animation_options != options:
for chart_view in self.charts:
- options_name = QChart.NoAnimation
- if options == 0:
- options_name = QChart.NoAnimation
- elif options == 1:
- options_name = QChart.GridAxisAnimations
- elif options == 2:
- options_name = QChart.SeriesAnimations
- elif options == 3:
- options_name = QChart.AllAnimations
- chart_view.chart().setAnimationOptions(options_name)
+ chart_view.chart().setAnimationOptions(options)
# Update legend alignment
idx = self.ui.legendComboBox.currentIndex()
diff --git a/examples/charts/chartthemes/ui_themewidget.py b/examples/charts/chartthemes/ui_themewidget.py
index e6e937dae..711615b3e 100644
--- a/examples/charts/chartthemes/ui_themewidget.py
+++ b/examples/charts/chartthemes/ui_themewidget.py
@@ -3,15 +3,21 @@
################################################################################
## Form generated from reading UI file 'themewidget.ui'
##
-## Created by: Qt User Interface Compiler version 6.2.0
+## Created by: Qt User Interface Compiler version 6.7.0
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
-from PySide6.QtCore import *
-from PySide6.QtGui import *
-from PySide6.QtWidgets import *
-
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
+ QFont, QFontDatabase, QGradient, QIcon,
+ QImage, QKeySequence, QLinearGradient, QPainter,
+ QPalette, QPixmap, QRadialGradient, QTransform)
+from PySide6.QtWidgets import (QApplication, QCheckBox, QComboBox, QGridLayout,
+ QHBoxLayout, QLabel, QSizePolicy, QSpacerItem,
+ QWidget)
class Ui_ThemeWidgetForm(object):
def setupUi(self, ThemeWidgetForm):
@@ -58,7 +64,7 @@ class Ui_ThemeWidgetForm(object):
self.horizontalLayout.addWidget(self.antialiasCheckBox)
- self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
+ self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
self.horizontalLayout.addItem(self.horizontalSpacer)
diff --git a/examples/charts/donutbreakdown/donutbreakdown.py b/examples/charts/donutbreakdown/donutbreakdown.py
index 1fc7ff83d..9111d4aac 100644
--- a/examples/charts/donutbreakdown/donutbreakdown.py
+++ b/examples/charts/donutbreakdown/donutbreakdown.py
@@ -1,49 +1,12 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the Donut Chart Breakdown example from Qt v5.x"""
import sys
-from PySide6.QtCore import Qt
-from PySide6.QtGui import QColor, QFont, QPainter, QScreen
+from PySide6.QtCore import Qt, Slot
+from PySide6.QtGui import QColor, QFont, QPainter
from PySide6.QtWidgets import QApplication, QMainWindow
from PySide6.QtCharts import QChart, QChartView, QPieSeries, QPieSlice
@@ -66,6 +29,7 @@ class MainSlice(QPieSlice):
def name(self):
return self.name
+ @Slot()
def update_label(self):
p = self.percentage() * 100
self.setLabel(f"{self.name} {p:.2f}%")
@@ -74,7 +38,7 @@ class MainSlice(QPieSlice):
class DonutBreakdownChart(QChart):
def __init__(self, parent=None):
super().__init__(QChart.ChartTypeCartesian,
- parent, Qt.WindowFlags())
+ parent, Qt.WindowFlags())
self.main_series = QPieSeries()
self.main_series.setPieSize(0.7)
self.addSeries(self.main_series)
diff --git a/examples/charts/dynamicspline/chart.py b/examples/charts/dynamicspline/chart.py
index 21d782ab5..59ddef13f 100644
--- a/examples/charts/dynamicspline/chart.py
+++ b/examples/charts/dynamicspline/chart.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import random
diff --git a/examples/charts/dynamicspline/main.py b/examples/charts/dynamicspline/main.py
index 44fd91006..8405824dc 100644
--- a/examples/charts/dynamicspline/main.py
+++ b/examples/charts/dynamicspline/main.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the Dynamic Spline example from Qt v5.x"""
import sys
diff --git a/examples/charts/legend/legend.py b/examples/charts/legend/legend.py
index 2996904c8..5417a940f 100644
--- a/examples/charts/legend/legend.py
+++ b/examples/charts/legend/legend.py
@@ -1,50 +1,14 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the Legend example from Qt v5.x"""
import sys
-from PySide6.QtCore import Qt, QRectF
+from PySide6.QtCore import Qt, QRectF, Slot
from PySide6.QtGui import QBrush, QColor, QPainter, QPen
from PySide6.QtWidgets import (QApplication, QDoubleSpinBox,
- QFormLayout, QGridLayout, QGroupBox, QPushButton, QWidget)
+ QFormLayout, QGridLayout, QGroupBox,
+ QPushButton, QWidget)
from PySide6.QtCharts import QBarSeries, QBarSet, QChart, QChartView
@@ -160,6 +124,7 @@ class MainWidget(QWidget):
def hide_legend_spinbox(self):
self.legend_settings.setVisible(False)
+ @Slot()
def toggle_attached(self):
legend = self.chart.legend()
if legend.isAttachedToChart():
@@ -176,6 +141,7 @@ class MainWidget(QWidget):
self.hide_legend_spinbox()
self.update()
+ @Slot()
def add_barset(self):
series_count = self.series.count()
bar_set = QBarSet(f"set {series_count}")
@@ -183,12 +149,14 @@ class MainWidget(QWidget):
bar_set.append([1 + delta, 2 + delta, 3 + delta, 4 + delta])
self.series.append(bar_set)
+ @Slot()
def remove_barset(self):
sets = self.series.barSets()
len_sets = len(sets)
if len_sets > 0:
self.series.remove(sets[len_sets - 1])
+ @Slot()
def set_legend_alignment(self):
button = self.sender()
legend = self.chart.legend()
@@ -211,18 +179,21 @@ class MainWidget(QWidget):
button.setText("Align (Top)")
legend.setAlignment(Qt.AlignTop)
+ @Slot()
def toggle_bold(self):
legend = self.chart.legend()
font = legend.font()
font.setBold(not font.bold())
legend.setFont(font)
+ @Slot()
def toggle_italic(self):
legend = self.chart.legend()
font = legend.font()
font.setItalic(not font.italic())
legend.setFont(font)
+ @Slot()
def font_size_changed(self):
legend = self.chart.legend()
font = legend.font()
@@ -232,13 +203,12 @@ class MainWidget(QWidget):
font.setPointSizeF(font_size)
legend.setFont(font)
+ @Slot()
def update_legend_layout(self):
legend = self.chart.legend()
- rect = QRectF(self.legend_posx.value(),
- self.legend_posy.value(),
- self.legend_width.value(),
- self.legend_height.value())
+ rect = QRectF(self.legend_posx.value(), self.legend_posy.value(),
+ self.legend_width.value(), self.legend_height.value())
legend.setGeometry(rect)
legend.update()
diff --git a/examples/charts/lineandbar/lineandbar.py b/examples/charts/lineandbar/lineandbar.py
index 826b62965..62721c763 100644
--- a/examples/charts/lineandbar/lineandbar.py
+++ b/examples/charts/lineandbar/lineandbar.py
@@ -1,43 +1,5 @@
-
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the line/bar example from Qt v5.x"""
@@ -89,13 +51,15 @@ class TestChart(QMainWindow):
self.categories = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"]
self._axis_x = QBarCategoryAxis()
self._axis_x.append(self.categories)
- self.chart.setAxisX(self._axis_x, self._line_series)
- self.chart.setAxisX(self._axis_x, self._bar_series)
+ self.chart.addAxis(self._axis_x, Qt.AlignBottom)
+ self._line_series.attachAxis(self._axis_x)
+ self._bar_series.attachAxis(self._axis_x)
self._axis_x.setRange("Jan", "Jun")
self._axis_y = QValueAxis()
- self.chart.setAxisY(self._axis_y, self._line_series)
- self.chart.setAxisY(self._axis_y, self._bar_series)
+ self.chart.addAxis(self._axis_x, Qt.AlignLeft)
+ self._line_series.attachAxis(self._axis_y)
+ self._bar_series.attachAxis(self._axis_y)
self._axis_y.setRange(0, 20)
self.chart.legend().setVisible(True)
diff --git a/examples/charts/linechart/linechart.py b/examples/charts/linechart/linechart.py
index b3ed655b1..cee4c16db 100644
--- a/examples/charts/linechart/linechart.py
+++ b/examples/charts/linechart/linechart.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the linechart example from Qt v5.x"""
diff --git a/examples/charts/logvalueaxis/logvalueaxis.py b/examples/charts/logvalueaxis/logvalueaxis.py
index b84e409c4..e727c1200 100644
--- a/examples/charts/logvalueaxis/logvalueaxis.py
+++ b/examples/charts/logvalueaxis/logvalueaxis.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the Logarithmic Axis Example from Qt v5.x"""
diff --git a/examples/charts/memoryusage/memoryusage.py b/examples/charts/memoryusage/memoryusage.py
index 384057748..3ba42368e 100644
--- a/examples/charts/memoryusage/memoryusage.py
+++ b/examples/charts/memoryusage/memoryusage.py
@@ -1,43 +1,5 @@
-
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 Charts example: Simple memory usage viewer"""
@@ -92,7 +54,7 @@ def get_memory_usage():
legend = f'{command} {memory_usage}%'
result.append([legend, memory_usage])
- result.sort(key = lambda x: x[1], reverse=True)
+ result.sort(key=lambda x: x[1], reverse=True)
return result
diff --git a/examples/charts/modeldata/modeldata.py b/examples/charts/modeldata/modeldata.py
index ea2ab5afc..0e36f7770 100644
--- a/examples/charts/modeldata/modeldata.py
+++ b/examples/charts/modeldata/modeldata.py
@@ -1,43 +1,5 @@
-
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the Model Data example from Qt v5.x"""
@@ -47,7 +9,7 @@ from random import randrange
from PySide6.QtCore import QAbstractTableModel, QModelIndex, QRect, Qt
from PySide6.QtGui import QColor, QPainter
from PySide6.QtWidgets import (QApplication, QGridLayout, QHeaderView,
- QTableView, QWidget)
+ QTableView, QWidget)
from PySide6.QtCharts import QChart, QChartView, QLineSeries, QVXYModelMapper
@@ -139,9 +101,6 @@ class TableWidget(QWidget):
self.mapper.setModel(self.model)
self.chart.addSeries(self.series)
- # for storing color hex from the series
- seriesColorHex = "#000000"
-
# get the color of the series and use it for showing the mapped area
self.model.add_mapping(self.series.pen().color().name(),
QRect(0, 0, 2, self.model.rowCount()))
diff --git a/examples/charts/nesteddonuts/nesteddonuts.py b/examples/charts/nesteddonuts/nesteddonuts.py
index 406beb528..49173c33a 100644
--- a/examples/charts/nesteddonuts/nesteddonuts.py
+++ b/examples/charts/nesteddonuts/nesteddonuts.py
@@ -1,49 +1,11 @@
-
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the Nested Donuts example from Qt v5.x"""
import sys
-from PySide6.QtCore import Qt, QTimer
+from PySide6.QtCore import Qt, QTimer, Slot
from PySide6.QtGui import QPainter
from PySide6.QtWidgets import QApplication, QGridLayout, QWidget
from PySide6.QtCharts import QChart, QChartView, QPieSeries, QPieSlice
@@ -103,6 +65,7 @@ class Widget(QWidget):
self.donuts.append(donut)
self.chart_view.chart().addSeries(donut)
+ @Slot()
def update_rotation(self):
for donut in self.donuts:
phase_shift = randrange(-50, 100)
diff --git a/examples/charts/percentbarchart/percentbarchart.py b/examples/charts/percentbarchart/percentbarchart.py
index 88a4e39e2..9f70c0328 100644
--- a/examples/charts/percentbarchart/percentbarchart.py
+++ b/examples/charts/percentbarchart/percentbarchart.py
@@ -1,43 +1,5 @@
-
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the Percent Bar Chart example from Qt v5.x"""
@@ -59,11 +21,11 @@ class MainWindow(QMainWindow):
set3 = QBarSet("Mary")
set4 = QBarSet("Samantha")
- set0.append([1, 2, 3, 4, 5, 6])
- set1.append([5, 0, 0, 4, 0, 7])
+ set0.append([1, 2, 3, 4, 5, 6])
+ set1.append([5, 0, 0, 4, 0, 7])
set2.append([3, 5, 8, 13, 8, 5])
- set3.append([5, 6, 7, 3, 4, 5])
- set4.append([9, 7, 5, 3, 1, 2])
+ set3.append([5, 6, 7, 3, 4, 5])
+ set4.append([9, 7, 5, 3, 1, 2])
series = QPercentBarSeries()
series.append(set0)
@@ -81,7 +43,8 @@ class MainWindow(QMainWindow):
axis = QBarCategoryAxis()
axis.append(categories)
chart.createDefaultAxes()
- chart.setAxisX(axis, series)
+ chart.addAxis(axis, Qt.AlignBottom)
+ series.attachAxis(axis)
chart.legend().setVisible(True)
chart.legend().setAlignment(Qt.AlignBottom)
diff --git a/examples/charts/piechart/piechart.py b/examples/charts/piechart/piechart.py
index 71c338820..e71359a98 100644
--- a/examples/charts/piechart/piechart.py
+++ b/examples/charts/piechart/piechart.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the Pie Chart Example from Qt v5.x"""
diff --git a/examples/charts/pointconfiguration/chartwindow.py b/examples/charts/pointconfiguration/chartwindow.py
new file mode 100644
index 000000000..36b10aa16
--- /dev/null
+++ b/examples/charts/pointconfiguration/chartwindow.py
@@ -0,0 +1,156 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the Selected Point Configuration Example from Qt 6.5"""
+from PySide6.QtCore import QPointF, Slot
+from PySide6.QtGui import QColor, QIcon, QPainter
+from PySide6.QtWidgets import QMainWindow, QLineEdit, QLabel, QComboBox
+from PySide6.QtWidgets import QCheckBox, QWidget, QGridLayout, QHBoxLayout
+from PySide6.QtCharts import QLineSeries, QXYSeries, QChart, QChartView
+from typing import Union
+
+
+PointConfig = QXYSeries.PointConfiguration
+
+
+class ChartWindow(QMainWindow):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+ self.setWindowTitle("Chart")
+ self._series = QLineSeries(self)
+ self._series.setName("Customized series")
+ self._series.setPointsVisible(True)
+ self._series.append([QPointF(0, 7), QPointF(2, 4),
+ QPointF(3, 5), QPointF(7, 4),
+ QPointF(10, 5), QPointF(11, 1),
+ QPointF(13, 3), QPointF(17, 6),
+ QPointF(18, 3), QPointF(20, 2)])
+
+ selected_point_index_label = QLabel("Selected Point: ")
+ self._selected_point_index_lineedit = QLineEdit()
+ self._selected_point_index_lineedit.setReadOnly(True)
+ self._selected_point_index_lineedit.setStyleSheet(
+ "background-color: rgba(0, 0, 0, 0); border: 0px")
+
+ color_label = QLabel("Color: ")
+ self._color_combobox = QComboBox()
+ color_strings = ["red", "orange", "yellow", "green", "blue",
+ "indigo", "violet", "black"]
+ for color_str in color_strings:
+ self._color_combobox.addItem(QIcon(), color_str, QColor(color_str))
+
+ size_label = QLabel("Size: ")
+ self._size_combobox = QComboBox()
+ for size in [2, 3, 4, 6, 8, 10, 12, 15]:
+ self._size_combobox.addItem(QIcon(), str(size), size)
+
+ label_visibility_label = QLabel("Label Visibility: ")
+ self._label_visibility_checkbox = QCheckBox()
+
+ custom_label_label = QLabel("Custom Label: ")
+ self._custom_label_lineedit = QLineEdit()
+
+ self._series.clicked.connect(self._select_point)
+ self._color_combobox.activated.connect(self._set_color)
+ self._size_combobox.activated.connect(self._set_size)
+ label_vis_checkbox = self._label_visibility_checkbox
+ label_vis_checkbox.clicked.connect(self._set_label_visibility)
+ clabel_lineedit = self._custom_label_lineedit
+ clabel_lineedit.editingFinished.connect(self._set_custom_label)
+
+ self._chart = QChart()
+ self._chart.addSeries(self._series)
+ self._chart.createDefaultAxes()
+
+ chart_view = QChartView(self._chart)
+ chart_view.setRenderHint(QPainter.RenderHint.Antialiasing)
+
+ control_widget = QWidget(self)
+ control_layout = QGridLayout(control_widget)
+ control_layout.setColumnStretch(1, 1)
+
+ control_layout.addWidget(selected_point_index_label, 0, 0)
+ control_layout.addWidget(self._selected_point_index_lineedit, 0, 1)
+
+ control_layout.addWidget(color_label, 1, 0)
+ control_layout.addWidget(self._color_combobox, 1, 1)
+
+ control_layout.addWidget(size_label, 2, 0)
+ control_layout.addWidget(self._size_combobox, 2, 1)
+
+ control_layout.addWidget(label_visibility_label, 3, 0)
+ control_layout.addWidget(self._label_visibility_checkbox, 3, 1, 1, 2)
+
+ control_layout.addWidget(custom_label_label, 4, 0)
+ control_layout.addWidget(self._custom_label_lineedit, 4, 1)
+
+ main_widget = QWidget(self)
+ main_layout = QHBoxLayout(main_widget)
+ main_layout.addWidget(chart_view)
+ main_layout.setStretch(0, 1)
+ main_layout.addWidget(control_widget)
+ self.setCentralWidget(main_widget)
+
+ self._select_point(4)
+
+ @Slot(QPointF)
+ def _select_point(self, point: Union[QPointF, int]):
+ try:
+ index = (self._series.points().index(point.toPoint()) if
+ isinstance(point, QPointF) else point)
+ except ValueError:
+ # Do nothing if the place that was clicked on wasn't a point.
+ return
+
+ self._series.deselectAllPoints()
+ self._series.selectPoint(index)
+ self._selectedPointIndex = index
+ self._selectedPointConfig = self._series.pointConfiguration(index)
+ selected_point = self._series.at(index)
+ selected_index_lineedit = self._selected_point_index_lineedit
+ selected_index_lineedit.setText("(" + str(selected_point.x()) + ", "
+ + str(selected_point.y()) + ")")
+ config = self._series.pointConfiguration(index)
+
+ color = config.get(PointConfig.Color) or self._series.color()
+ size = config.get(PointConfig.Size) or self._series.markerSize()
+ labelVisibility = (config.get(PointConfig.LabelVisibility)
+ or self._series.pointLabelsVisible())
+ customLabel = config.get(PointConfig.LabelFormat) or ""
+
+ combobox_value_list = [
+ (self._color_combobox, color.name(), color),
+ (self._size_combobox, str(size), size)
+ ]
+ for box, value_str, value in combobox_value_list:
+ if box.findData(value) < 0:
+ box.addItem(value_str, value)
+ box.setCurrentIndex(box.findData(value))
+
+ self._label_visibility_checkbox.setChecked(labelVisibility)
+ self._custom_label_lineedit.setText(customLabel)
+
+ @Slot(int)
+ def _set_color(self, index: int):
+ spc = self._selectedPointConfig
+ spc[PointConfig.Color] = self._color_combobox.currentData()
+ self._series.setPointConfiguration(self._selectedPointIndex, spc)
+
+ @Slot(int)
+ def _set_size(self, index: int):
+ spc = self._selectedPointConfig
+ spc[PointConfig.Size] = self._size_combobox.currentData()
+ self._series.setPointConfiguration(self._selectedPointIndex, spc)
+
+ @Slot(bool)
+ def _set_label_visibility(self, checked: bool):
+ spc = self._selectedPointConfig
+ spc[PointConfig.LabelVisibility] = checked
+ self._series.setPointConfiguration(self._selectedPointIndex, spc)
+
+ @Slot()
+ def _set_custom_label(self):
+ spc = self._selectedPointConfig
+ spc[PointConfig.LabelFormat] = self._custom_label_lineedit.text()
+ self._series.setPointConfiguration(self._selectedPointIndex, spc)
diff --git a/examples/charts/pointconfiguration/doc/pointconfiguration.png b/examples/charts/pointconfiguration/doc/pointconfiguration.png
new file mode 100644
index 000000000..791698587
--- /dev/null
+++ b/examples/charts/pointconfiguration/doc/pointconfiguration.png
Binary files differ
diff --git a/examples/charts/pointconfiguration/doc/pointconfiguration.rst b/examples/charts/pointconfiguration/doc/pointconfiguration.rst
new file mode 100644
index 000000000..ffe865d5e
--- /dev/null
+++ b/examples/charts/pointconfiguration/doc/pointconfiguration.rst
@@ -0,0 +1,144 @@
+.. role:: py(code)
+ :language: python
+
+Selected Point Configuration Example
+====================================
+
+This example shows how to configure individual points of a :py:`QLineSeries`.
+
+.. image:: pointconfiguration.png
+ :width: 90%
+ :align: center
+ :alt: Line chart with controls for configuring selected points
+
+Features demonstrated
+~~~~~~~~~~~~~~~~~~~~~
+
+In this application you will learn how to:
+
+* Select a series of points on click
+* Override the configuration for the following properties of specific points:
+
+ * Color
+ * Size
+ * Label visibility
+ * Text format of the label
+
+Subclass QMainWindow
+~~~~~~~~~~~~~~~~~~~~
+
+Create a subclass of :py:`QMainWindow` to contain the chart and controls.
+
+.. literalinclude:: chartwindow.py
+ :linenos:
+ :lineno-start: 16
+ :lines: 16-18
+
+Create a line series
+~~~~~~~~~~~~~~~~~~~~
+
+Create a :py:`QLineSeries` containing the points to plot. Give it a name and make the points
+visible.
+
+.. literalinclude:: chartwindow.py
+ :linenos:
+ :lineno-start: 20
+ :lines: 20-28
+
+Create the point configuration controls
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Now, create controls to configure the color, size, and label visibility attributes of a point.
+
+#. Create an associated label for each control, so the user knows what the control does.
+#. For the color and size, use a :py:`QComboBox`, populating it with a variety of colors and size
+ choices.
+#. Create the final two controls. Create a :py:`QCheckbox` to control the visibility of the selected
+ point, and a :py:`QLineEdit` to allow the user to provide a custom label for it.
+
+.. note::
+ Do not set initial values for any of the controls, as a point will always be selected showing
+ its current settings.
+
+.. literalinclude:: chartwindow.py
+ :linenos:
+ :lineno-start: 31
+ :lines: 31-52
+
+Populate the controls upon selecting a point
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Add the logic to set the current control values depending on the chosen point. Note that the whole
+series value is used if there is no customization for a selected point. In this case, if the series
+is set to show blue points, a blue color value will be shown in the color combobox.
+
+Perform some actions upon clicking on the lineseries. Look up the point clicked on and remove the
+prior point selection. Finally, select the point that was clicked on. This makes the point larger to
+indicate its selection. The current selected point's index and :py:`PointConfigurations` are saved
+to a member variable for later use.
+
+Query the :py:`PointConfigurations`, and use those to find the matching indices in the combo boxes.
+Set the current indices of the comboboxes to the corresponding values you looked up. Similarly,
+look up the values in :py:`PointConfigurations`, and update the checkbox and line edit controls.
+
+.. literalinclude:: chartwindow.py
+ :linenos:
+ :lineno-start: 54
+ :lines: 54
+.. literalinclude:: chartwindow.py
+ :linenos:
+ :lineno-start: 97
+ :lines: 97-132
+
+Provide the logic to configure the selected point
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Now that the controls are populated with some values, add logic to do something when the value
+changes. Connect the control signals and the logic, to configure the selected point based on the
+chosen values in the controls. You can do this by setting the :py:`QXYSeries::PointConfiguration`
+value that is associated with the control, to the :py:`m_selectedPointConfig` and
+:py:`PointConfigurations` member variables, and call :py:`QXYSeries::setPointConfiguration`.
+
+.. literalinclude:: chartwindow.py
+ :linenos:
+ :lineno-start: 55
+ :lines: 55-60
+.. literalinclude:: chartwindow.py
+ :linenos:
+ :lineno-start: 140
+ :lines: 140-156
+
+Create the chart and lay out the controls
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Finally, create the chart and its view, add the series to the chart, create the layout of the
+window, and select an initial point.
+
+.. literalinclude:: chartwindow.py
+ :linenos:
+ :lineno-start: 62
+ :lines: 62-95
+
+In our entrypoint file `pointconfiguration.py`, instantiate the :py:`ChartWindow`, resize it, show
+it, and start the event loop.
+
+.. literalinclude:: pointconfiguration.py
+ :linenos:
+ :lineno-start: 11
+ :lines: 11-17
+
+You now have a fully functioning application that demonstrates how to customize individual chart
+points.
+
+Usage
+-----
+To use this example, click any point you'd like to customize, change any of the comboboxes and
+checkboxes controlling the individual point color, size, label visibility. You can customize the
+label text in the line edit at the bottom.
+
+There are three special formatting strings for the label that you can use: ``@pointX``, ``@pointY``,
+and ``@index``. These are replaced with the x value, y value, and index of the point, respectively.
+More information about that can be found in the documentation for
+`QtCharts.QXYSeries.pointLabelsFormat`_.
+
+.. _`QtCharts.QXYSeries.pointLabelsFormat`: https://doc.qt.io/qtforpython/PySide6/QtCharts/QXYSeries.html#PySide6.QtCharts.PySide6.QtCharts.QXYSeries.pointLabelsFormat
diff --git a/examples/charts/pointconfiguration/pointconfiguration.py b/examples/charts/pointconfiguration/pointconfiguration.py
new file mode 100644
index 000000000..d8c90d2df
--- /dev/null
+++ b/examples/charts/pointconfiguration/pointconfiguration.py
@@ -0,0 +1,17 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the Light Markers Points Selection example from Qt v6.2"""
+import sys
+from PySide6.QtWidgets import QApplication
+
+from chartwindow import ChartWindow
+
+
+if __name__ == "__main__":
+
+ a = QApplication(sys.argv)
+ main_window = ChartWindow()
+ main_window.resize(640, 480)
+ main_window.show()
+ sys.exit(a.exec())
diff --git a/examples/charts/pointconfiguration/pointconfiguration.pyproject b/examples/charts/pointconfiguration/pointconfiguration.pyproject
new file mode 100644
index 000000000..c53d798be
--- /dev/null
+++ b/examples/charts/pointconfiguration/pointconfiguration.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["pointconfiguration.py", "chartwindow.py"]
+}
diff --git a/examples/charts/pointselectionandmarkers/doc/pointselectionandmarkers.png b/examples/charts/pointselectionandmarkers/doc/pointselectionandmarkers.png
new file mode 100644
index 000000000..209bc3b0d
--- /dev/null
+++ b/examples/charts/pointselectionandmarkers/doc/pointselectionandmarkers.png
Binary files differ
diff --git a/examples/charts/pointselectionandmarkers/doc/pointselectionandmarkers.rst b/examples/charts/pointselectionandmarkers/doc/pointselectionandmarkers.rst
new file mode 100644
index 000000000..e8776daf8
--- /dev/null
+++ b/examples/charts/pointselectionandmarkers/doc/pointselectionandmarkers.rst
@@ -0,0 +1,72 @@
+.. role:: py(code)
+ :language: python
+
+Light Markers and Points Selection Example
+==========================================
+
+The Light Markers and Points Selection example shows how to use light markers
+and point selections in a series.
+
+.. image:: pointselectionandmarkers.png
+ :width: 90%
+ :align: center
+ :alt: QChart with Light Markers shown
+
+Creating the chart and its elements
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+We start by creating a series, filling it with the data, and enabling the light marker and point selection features.
+It is important not to set points visibility to :py:`True`, because light markers functionality is an independent feature and setting both would result in undesired behavior.
+
+.. literalinclude:: pointselectionandmarkers.py
+ :linenos:
+ :lineno-start: 20
+ :lines: 20-42
+ :emphasize-lines: 2-12
+
+Then we create the :py:`QChart`, the :py:`QChartview` and the control widget with its layout to arrange customization elements.
+
+.. literalinclude:: pointselectionandmarkers.py
+ :lineno-start: 44
+ :lines: 44-53
+ :emphasize-lines: 1,6,9
+
+Creating UI for configuring the chart
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The next step is where we create user interface elements that allow customizing the chart, including setting light marker and selection marker images.
+
+.. literalinclude:: pointselectionandmarkers.py
+ :linenos:
+ :lineno-start: 54
+ :lines: 54-57
+
+We create the label for the marker selection combobox and fill the combobox with the items. We then provide functionality to the combobox, allowing the user's selection to set the desired light marker image. As light markers are enabled and disabled by setting a valid QImage or setting an empty :py:`QImage()`, we need to make sure that if the user does not wish unselected points to be displayed, we do not actually set the light marker image.
+If checking isn't performed, a new :py:`QImage` will be set as the light marker and unselected points will be visible even though it has been switched off.
+
+.. literalinclude:: pointselectionandmarkers.py
+ :linenos:
+ :lineno-start: 59
+ :lines: 59-67
+ :emphasize-lines: 1-3
+
+Almost the same procedure applies to the selected point light marker and line color. The only difference is that there is no need to check the visibility of unselected points as it doesn't affect the functionality.
+
+.. literalinclude:: pointselectionandmarkers.py
+ :linenos:
+ :lineno-start: 70
+ :lines: 70-85
+
+A small difference comes with changing visibility of unselected points. As it was mentioned before, making light markers invisible is achieved by setting the light marker to an empty :py:`QImage()`. That is why, depending on checkbox state, selected point light marker is set to an empty :py:`QImage` or to the light marker extracted from the current index of the corresponding combobox.
+
+.. literalinclude:: pointselectionandmarkers.py
+ :linenos:
+ :lineno-start: 88
+ :lines: 88-97
+ :emphasize-lines: 5-6
+
+The final part is to lay out the widgets within the main widget and set the main window size.
+
+Usage
+-----
+To use this example, change any of the comboboxes and checkboxes controlling the markers, line color, and unselected point visibility on the right. Then try clicking on points in the chart to select or deselect them.
diff --git a/examples/charts/pointselectionandmarkers/images/blue_triangle.png b/examples/charts/pointselectionandmarkers/images/blue_triangle.png
new file mode 100644
index 000000000..7790453c8
--- /dev/null
+++ b/examples/charts/pointselectionandmarkers/images/blue_triangle.png
Binary files differ
diff --git a/examples/charts/pointselectionandmarkers/images/green_triangle.png b/examples/charts/pointselectionandmarkers/images/green_triangle.png
new file mode 100644
index 000000000..29ae043f2
--- /dev/null
+++ b/examples/charts/pointselectionandmarkers/images/green_triangle.png
Binary files differ
diff --git a/examples/charts/pointselectionandmarkers/markers.qrc b/examples/charts/pointselectionandmarkers/markers.qrc
new file mode 100644
index 000000000..eb1e56d19
--- /dev/null
+++ b/examples/charts/pointselectionandmarkers/markers.qrc
@@ -0,0 +1,6 @@
+<RCC>
+ <qresource prefix="/">
+ <file>images/blue_triangle.png</file>
+ <file>images/green_triangle.png</file>
+ </qresource>
+</RCC>
diff --git a/examples/charts/pointselectionandmarkers/pointselectionandmarkers.py b/examples/charts/pointselectionandmarkers/pointselectionandmarkers.py
new file mode 100644
index 000000000..df7b61687
--- /dev/null
+++ b/examples/charts/pointselectionandmarkers/pointselectionandmarkers.py
@@ -0,0 +1,128 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the Light Markers Points Selection example from Qt v6.2"""
+import sys
+
+from PySide6.QtCore import Slot, QPointF, Qt
+from PySide6.QtCharts import QChart, QChartView, QSplineSeries
+from PySide6.QtGui import QPainter, QImage
+from PySide6.QtWidgets import (QApplication, QMainWindow, QWidget, QGridLayout,
+ QComboBox, QCheckBox, QLabel, QHBoxLayout)
+
+import utilities as Utilities
+
+if __name__ == "__main__":
+
+ a = QApplication(sys.argv)
+ window = QMainWindow()
+ window.setWindowTitle("Light Markers and Points Selection")
+
+ marker_size = 20.
+ series = QSplineSeries()
+ series.append([QPointF(0, 0),
+ QPointF(0.5, 2.27),
+ QPointF(1.5, 2.2),
+ QPointF(3.3, 1.7),
+ QPointF(4.23, 3.1),
+ QPointF(5.3, 2.3),
+ QPointF(6.47, 4.1)])
+ series.setMarkerSize(marker_size)
+ series.setLightMarker(Utilities.default_light_marker(marker_size))
+ series.setSelectedLightMarker(Utilities.default_selected_light_marker(marker_size))
+
+ @Slot(QPointF)
+ def toggle_selection(point):
+ try:
+ index = series.points().index(point)
+ if index != -1:
+ series.toggleSelection([index])
+ except ValueError:
+ pass
+
+ series.clicked.connect(toggle_selection)
+
+ chart = QChart()
+ chart.addSeries(series)
+ chart.createDefaultAxes()
+ chart.legend().setVisible(False)
+
+ chart_view = QChartView(chart)
+ chart_view.setRenderHint(QPainter.Antialiasing)
+
+ control_widget = QWidget(window)
+ control_layout = QGridLayout(control_widget)
+ char_point_combobox = QComboBox()
+ char_point_selected_combobox = QComboBox()
+ line_color_combobox = QComboBox()
+ show_unselected_points_checkbox = QCheckBox()
+
+ @Slot(int)
+ def set_light_marker(index):
+ if show_unselected_points_checkbox.isChecked():
+ series.setLightMarker(Utilities.get_point_representation(
+ Utilities.point_type(index), marker_size))
+
+ char_point = QLabel("Char point: ")
+ char_point_combobox.addItems(["Red rectangle", "Green triangle", "Orange circle"])
+ char_point_combobox.currentIndexChanged.connect(set_light_marker)
+
+ @Slot(int)
+ def set_selected_light_marker(index):
+ series.setSelectedLightMarker(
+ Utilities.get_selected_point_representation(
+ Utilities.selected_point_type(index), marker_size))
+
+ char_point_selected = QLabel("Char point selected: ")
+ char_point_selected_combobox.addItems(["Blue triangle", "Yellow rectangle", "Lavender circle"])
+ char_point_selected_combobox.currentIndexChanged.connect(set_selected_light_marker)
+
+ @Slot(int)
+ def set_line_color(index):
+ series.setColor(Utilities.make_line_color(Utilities.line_color(index)))
+
+ line_color_label = QLabel("Line color: ")
+ line_color_combobox.addItems(["Blue", "Black", "Mint"])
+ line_color_combobox.currentIndexChanged.connect(set_line_color)
+
+ @Slot(int)
+ def display_unselected_points(checkbox_state):
+ if checkbox_state:
+ series.setLightMarker(
+ Utilities.get_point_representation(
+ Utilities.point_type(char_point_combobox.currentIndex()), marker_size))
+ else:
+ series.setLightMarker(QImage())
+
+ show_unselected_points_label = QLabel("Display unselected points: ")
+ show_unselected_points_checkbox.setChecked(True)
+ show_unselected_points_checkbox.stateChanged.connect(display_unselected_points)
+
+ control_label = QLabel("Marker and Selection Controls")
+ control_label.setAlignment(Qt.AlignHCenter)
+ control_label_font = control_label.font()
+ control_label_font.setBold(True)
+ control_label.setFont(control_label_font)
+ control_layout.addWidget(control_label, 0, 0, 1, 2)
+ control_layout.addWidget(char_point, 1, 0)
+ control_layout.addWidget(char_point_combobox, 1, 1)
+
+ control_layout.addWidget(char_point_selected, 2, 0)
+ control_layout.addWidget(char_point_selected_combobox, 2, 1)
+
+ control_layout.addWidget(line_color_label, 3, 0)
+ control_layout.addWidget(line_color_combobox, 3, 1)
+
+ control_layout.addWidget(show_unselected_points_label, 4, 0)
+ control_layout.addWidget(show_unselected_points_checkbox, 4, 1, 1, 2)
+ control_layout.setRowStretch(5, 1)
+
+ main_widget = QWidget(window)
+ main_layout = QHBoxLayout(main_widget)
+ main_layout.addWidget(chart_view)
+ main_layout.addWidget(control_widget)
+
+ window.setCentralWidget(main_widget)
+ window.resize(1080, 720)
+ window.show()
+ sys.exit(a.exec())
diff --git a/examples/charts/pointselectionandmarkers/pointselectionandmarkers.pyproject b/examples/charts/pointselectionandmarkers/pointselectionandmarkers.pyproject
new file mode 100644
index 000000000..8c394457c
--- /dev/null
+++ b/examples/charts/pointselectionandmarkers/pointselectionandmarkers.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["pointselectionandmarkers.py", "utilities.py", "markers.qrc"]
+}
diff --git a/examples/charts/pointselectionandmarkers/rc_markers.py b/examples/charts/pointselectionandmarkers/rc_markers.py
new file mode 100644
index 000000000..f5a9cd42b
--- /dev/null
+++ b/examples/charts/pointselectionandmarkers/rc_markers.py
@@ -0,0 +1,275 @@
+# Resource object code (Python 3)
+# Created by: object code
+# Created by: The Resource Compiler for Qt version 6.3.1
+# WARNING! All changes made in this file will be lost!
+
+from PySide6 import QtCore
+
+qt_resource_data = b"\
+\x00\x00\x05m\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x02\x00\x00\x00\x01\xf6\x02\x03\x00\x00\x00{5\xdc\xf0\
+\x00\x00\x00\x09PLTE\x00\x00\x00\x98\xbag\x98\xba\
+g\xb0,\xf9`\x00\x00\x00\x02tRNS\x00\x93\x1f\
+\x95\x0f\xc6\x00\x00\x05\x11IDATx\xda\xdc\xd31\
+\x95\xc4@\x0c\x04\xd1U\x22\x10Bc<Bc\x10N\
+\x5c(\x0fC\xfb\xde\x8c\xe5\xeeX\xc1\x0fT\xbf\x7f.\
+~//\x8f\xdf\xbb\xab\xf3\xf7\xee\xfa\xfa\xbd\xba\xe0\x96\
+\xee\xfd\x00\x09\xd2\x17\xfa\x01\x0a\xa4\x0c\xfc\x00\x0dR\x87\
+v\x80\x00\xa9C?@\x82\xd4\xa1\x1f\xa0@\xea\xd0\x0f\
+\xd0 uh\x07\x08\x90:\xf4\x03$H\x1d\xfa\x01\x0a\
+\xa4\x0e\xfd\x00\x0dR\x87v\x80\x00\xa9C?@\x82\xd4\
+\xa1\x1f\xa0@\xea\xd0\x0f\xd0 uh\x07\x08\x90:\xf4\
+\x03$H\x1d\xfa\x01\x0a\xa4\x0e\xfd\x00\x0dR\x87v\x80\
+\x00\xa9C?@\x82\xd4\xa1\x1f\xa0@\xea\xd0\x0f\xd0 \
+uh\x07\x08\x90:\xf4\x03$H\x1d\xfa\x01\x0a\xa4\x0e\
+\xfd\x00\x0dR\x87v\x80\x00\xa9C?@\x82\xd4\xa1\x1f\
+\xa0@\xea\xd0\x0f\xd0 uh\x07\x08\x90:\xf4\x03$\
+H\x1d\xfa\x01\x0a\xa4\x0e\xfd\x00\x0dR\x87v\x80\x00\xa9\
+C?@\x82\xd4\xa1\x1f\xa0@\xea\xd0\x0f\xd0\xf0n\x87\
+\xcd\xbb\x19\x04#\x01\x1b3\xc8\xa1\x80}\x19\xd4P\xc0\
+\xbe\x0e{(`[\x87\xc1P\xc0\xb6\x0es,`W\
+\x875\x16\xb0\xab\xc3\x1e\x0b\xd8\xd4a0\x16\xb0\xa9\xc3\
+\x1c\x0c\xd8\xd3a\x0d\x06\xec\xe9\xb0\x07\x03\xb6t\x18\x0c\
+\x06l\xe90G\x03vtX\xa3\x01;:\xec\xd1\x80\
+\x0d\x1d\x06\xa3\x01\x1b:\xcc\xe1\x80\xf5\x1d\xd6p\xc0\xfa\
+\x0e{8`y\x87\xc1p\xc0\xf2\x0es<`u\x87\
+5\x1e\xb0\xba\xc3\x1e\x0fX\xdca0\x1e\xb0\xb8\xc3\xfc\
+\x00`m\x87\xf5\x01\xc0\xda\x0e\xfb\x03\x80\xa5\x1d\x06\x1f\
+\x00,\xed0?\x01X\xd9a}\x02\xb0\xb2\xc3\xfe\x04\
+`a\x87\xc1'\x00\x0b;\xcc\x8f\x00\xd6uXo\x03\
+\x1a\xa4\x0e\xed\x00\x01R\x87~\x80\x04\xa9C?@\x81\
+\xd4\xa1\x1f\xa0A\xea\xd0\x0e\x10 u\xe8\x07H\x90:\
+\xf4\x03\x14H\x1d\xfa\x01\x1a\xa4\x0e\xed\x00\x01R\x87~\
+\x80\x04\xa9C?@\x81\xd4\xa1\x1f\xa0A\xea\xd0\x0e\x10\
+(\xbb\x0d\x01\x89\xb4\xc3\x0fPH;\xfd\x00\x8d\xb4\xcb\
+\x0e\x10h\xbb\xed\x00\x89\xb8\xc3\x0dP\x88;\xdd\x00\x8d\
+\xb8\xcb\x0c\x10\xa8\xbb\xcd\x00\x89\xbc\xc3\x0bP\xc8;\xbd\
+\x00\x8d\xbc\xcb\x0a\x10\xe8\xbb\xad\x00\x09\xfa\x0e'@\x81\
+\xbe\xd3\x09\xd0\xa0\xef2\x02\x04Ov\x1b\x01\x92G;\
+|\x00\xc5\xa3\x9d>\x80\xe6\xd1.\x1b@\xf0l\xb7\x0d\
+ y\xb8\xc3\x05P<\xdc\xe9\x02h\x1e\xee2\x01\x04\
+Ow\x9b\x00\x92\xc7;<\x00\xc5\xe3\x9d\x1e\x80\xe6\xf1\
+.\x0b@\xf0|\xb7\x05\xe0\x8f{:(\x82(\x06\x81\
+ Z\xb9 \x22j\xd0\x83\x1aDpaT\xae\x86\xd4\
+\x87,\x93V\xf0.-\xf8\x90\xbe\x00\xd8\xf8\x90\xbf\x00\
+0|(\x1e\x00,|)\x1f\x00\x08>\xa5\xfc\x80\x8d\
+O9?\xc0\xf0\xa9\xa0\x07,|+\xe9\x01\x82\x8f)\
+;`\xe3c\xce\x0e0|,\xc8\x01\x0b_Kr\x80\
+\xe0s\xca\x0d\xd8\xf8\x9cs\x03\x0c\x9f\x0bj\xc0\xc2\xf7\
+\x92\x1a (H\x99\x01\x1b\x0593\xc0PP\x10\x03\
+\x16*Jb\x80\xa0$\xe5\x05l\x94\xe4\xbc\x00CI\
+A\x0bX\xa8)i\x01\x82\xa2\x94\x15\xb0Q\x94\xb3\x02\
+\x0cE\x05)`\xa1\xaa$\x05\x08\xcaRN\xc0FY\
+\xce\x090\x94\x15\x94\x80\x85\xba\x92\x12 (L\x19\x01\
+\x1b\x859#\xc0PX\x10\x02\x16*KB\x80\xa04\
+\xe5\x03l\x94\xe6|\x00CiA\x07X\xa8-\xe9\x00\
+\x82\xe2\x94\x0d\xb0Q\x9c\xb3\x01\x0c\xc5\x05\x19`\xa1\xba\
+$\x03\x08\xcaS.\xc0Fy\xce\x050\x94\x17T\x80\
+\x85\xfa\x92\x0a hH\x99\x00\x1b\x0d9\x13\xc0\xd0P\
+\x10\x01\x16:J\x22\x80\xa0%\xe5\x01l\xb4\xe4<\x00\
+CKA\x03X\xe8)i\x00\x82\xa6\x94\x05\xb0\xd1\x94\
+\xb3\x00\x0cM\x05\x09`\xa1\xab$\x01\x08\xdaR\x0e\xc0\
+F[\xce\x010\xb4\x15\x14\x80\x85\xbe\x92\x02 hL\
+\x19\x00\x1b\x8d9\x03\xc0\xd0X\x10\x00\x16:K\x02\x80\
+\xa05\x9d\x0f\xd8h\xcd\xe7\x03\x0c\xad\xc5x\xc0Bo\
+9\x1e hN\xa7\x036\x9a\xf3\xe9\x00Cs1\x1c\
+\xb0\xd0]\x0e\x07\x08\xda\xd3\xd9\x80\x8d\xf6|6\xc0\xd0\
+^\x8c\x06,\xf4\x97\xa3\x01\x82\x0b\xe9d\xc0\xc6\x85|\
+2\xc0p\xa1\x18\x0cX\xb8Q\x0e\x06\x08\xae\xa4s\x01\
+\x1bW\xf2\xb9\x00\xc3\x95b,`\xe1N9\x16 \xb8\
+\x94N\x05l\x5c\xca\xa7\x02\x0c\x97\x8a\xa1\x80\x85[\xe5\
+P\x80\xe0Z:\x13\xb0q-\x9f\x090\x5c+F\x02\
+\x16\xee\x95#\x01\x82\x8b\xe9D\xc0\xc6\xc5|\x22\xc0p\
+\xb1\x18\x08X\xb8Y\x0e\x04\x08\xae\xa6\xff\x06\xf8\xe1\x85\
+\xef\x01\xe2\xf0\xc2\xf7\x00yx\xe1{\x00\xe8\xe1\x85\xef\
+\x01\xfc\xf0\xc2\xf7\x00qx\xe1{\x80<\xbc\xf0=\x00\
+\xf4\xf0\xc2\xf7\x00~x\xe1{\x808\xbc\xf0=@\x1e\
+^\xf8\x1e\x00zx\xe1{\x00?\xbc\xf0=@\x1c^\
+\xf8\x1e \x0f/|\x0f\x00=\xbc\xf0=\x80\x1f^\xf8\
+\x1e\xe0\xd7=\x1d\x13\x01\x00\xc30\x0c\xa4f\x88\x01\x91\
+%FY\x0c\x9az'\x06\xbf\xfc\xc2\x85>\xc0\xc1\x85\
+>@\x03\x17\xfa\x00\x03\x17\xfa\x00\x0b\x17\xfa\x00\x07\x17\
+\xfa\x00\x0d\x5c\xe8\x03\x0c\x5c\xe8\x03,\x5c\xe8\x03\x1c\x5c\
+\xe8\x034p\xa1\x0f0p\xa1\x0f\xb0p\xa1\x0fpp\
+\xa1\x0f\xd0\xfc]\xd8\xe6\x01\x9f\xda\xf9\x10\xf2\x1c\xc7\xb0\
+\x00\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x08\xac\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x01\x00\x00\x00\x00\xfb\x08\x03\x00\x00\x00\xb2\x8e\xba:\
+\x00\x00\x00\x8dPLTE\x00\x00\x00i\xba\xf0i\xba\
+\xf0i\xba\xf0i\xba\xf0i\xba\xf0i\xba\xf0i\xba\xf0\
+i\xba\xf0i\xba\xf0i\xba\xf0i\xba\xf0i\xba\xf0i\
+\xba\xf0i\xba\xf0i\xba\xf0i\xba\xf0i\xba\xf0i\xba\
+\xf0i\xba\xf0i\xba\xf0i\xba\xf0i\xba\xf0i\xba\xf0\
+i\xba\xf0i\xba\xf0i\xba\xf0i\xba\xf0i\xba\xf0i\
+\xba\xf0i\xba\xf0i\xba\xf0i\xba\xf0i\xba\xf0i\xba\
+\xf0i\xba\xf0i\xba\xf0i\xba\xf0i\xba\xf0i\xba\xf0\
+i\xba\xf0i\xba\xf0i\xba\xf0i\xba\xf0i\xba\xf0i\
+\xba\xf0i\xba\xf0\x9c\xb2p\x14\x00\x00\x00.tRN\
+S\x00\x05\xf7\xfb\x19\x13U\x09\xf3\xe2H\x1d\x94z\x0f\
+0\xdf\xc9e\xec\xcd3\x22\xa37\x86\xda\xc0tO\xac\
+\xe5\xb8\x80\xb3k\xe9\x9a\xa7\xc5*\xd4@_\x8e:=\
+\xa4\x0e\xbb\x00\x00\x07\xa0IDATx\xda\xe4\xdd\x07\
+b\xaa@\x10\x80av\x11\x10i\x8a\x82=\xf6\xae{\
+\xff\xe3=\xf2L\x1c\xc0(b\x81e\xe6?\x020\xbb\
+\x9f\x94D)3V\xdbnk.S\xc8\xc6\xc2\xfd\xde\
+\xb3\x5c\x85ll\xef\xf4G\xfa\x96\xee%\xe0\xfa\xc3\xce\
+\xd4\x1e\x1b\x0a\xd5\xc2Y\x93O\xa6\xbe\xa6\xd0\x8ci\xfb\
+U[\x88\xc1,Th\xa6\xf5\x16s.D}\xb5\xd7\
+h\xae\x02\x96\xdf\xdd\xa9B\xf0\xe9\xe2Ds\x08\x02{\
+P\xff>\x00\xbb\xaeOr\x08\x8c\xf1\x9c\x8b(\xb5\xdd\
+9\x06\x0a\xb9\x98\xeb-Z\xe2\x5c}\xde\xa0\xb7\x08\xb0\
+\xadn\x0f\xc4O\x1d\xdf\x22g\x01\xa3\xd1\x1f\xb6\xc5O\
+M[\x0f\xa9]\x03\xae?\x9dp\xf1S{xlP\
+\xbb\x04\xc2\xd9@\x15\xbfq\x93\x1a\x07\xcf\x08\x84Tj\
+\x1c\xd4z\xfe\x9c\x8bK\xf48\x18\x9e\x11\x08E\x1c\xec\
+Q\x1a\x823\x02/\x91\xe3\xa01\x9er\x91Hm\xb7\
+\x8e=\x85H\xcc\xdd\x8e:\xe2\x12=\x0e\x02\x02\x13u\
+\x16\x16\x91#\x00\x08\xfc\x1f=\x0e\x02\x02\xffG\x8f\x83\
+\x09\x04\x0ar\x1cL!\x90\x1e\x07\xb5 \x81@z\x1c\
+\x04\x04^\xa5\x92\xe0 \xf0*\x95\x02\x07\x01\x81\xd7\
+\xa9K\xf4\x1cL#\xf0\x9a\x83c\xdc\x8b\xc07\x02\x9b\
+\xe2\x12=\x0e\x02\x02od\xdac\xd4\x1c\x8c\x10hr\
+q\x89\x1e\x07\x93\x08$\xc7\xc1\x14\x02\xe9q0\x85\xc0\
+[\x1c<\xa1}k(\xf4Wq\x04\xd2\xe3`\xcf\xde\
+\xd5\x05D\x8e\x83I\x04\xde\xe3\xe0IA\x18 0\xab\
+\xfaT\xc78\x03\x06 0\xab\x9d\xe3!\xfcY\x0c\x08\
+\xccl\xd2\xf5=|\x07@\x03\x04fU\xeftu|\
+\xaf\x8ff 0\xf5\x94dd)\xb8\x02\x04>\xd4\xe4\
+\x88m\x06\x00\x81\x0f\xc5\xd7\xe3\x10\xd7o\xa2\xf0\xb0\xda\
+\x89\x1c\xb5\xfa\xe3\x9a\x82)@\xe0C\xa9\xe6t\xe6)\
+\x88b\x80\xc0\xc7\xe2f\x17\xd1\xb3R@\xe0\xe3\xa9\xc3\
+C\x0d\xcd\x11\x00\x04\xe6h0;\xa19\x02\x11\x02\xa7\
+m\x91\xb3\xc9z\x11`\xd9\x08\x22\x046\xb9\xb8D\x8f\
+\x83\x11\x02\xb9\xc8\x9b\xda\xde \xe1`\x0a\x81\xf48\xa8\
+y\x80\xc0\x5c\xf1\xaf1\x8aw\xa8\x01\x81yk\xcd\x1a\
+\x188\x98D`>\x0e:\x088\xc8t@`\xcex\
+\xb3\xfa\x1cL!\x90\x1e\x07S\x08\xa4\xc7A@\xe0S\
+-+\xcfA\xcd\x9f\xc7\x11\x98\x9f\x83\xab\x8as\xf0\x1b\
+\x81\xaax:^q\x0e\xa6\x10H\x8f\x83\xdf\x08\x8c\x9d\
+\x7fz\x1cL\x22\x90 \x07\x01\x81\xcfW\xe5\xbb\x83I\
+\x04\x92\xe3 \xf0\xb5\xd4ME9\x98B =\x0e\
+\xa6\x10\xf8\x0a\x07\xfdJr0\x85@z\x1c\xdc\xf6\x01\
+\x81/\xc5\x97U\xe4\xa0a5\xba\xb1\x01\xa0\xc7\xc1\xda\
+~4\x8c\x9d\x7fz\x1c\xdc\x8e\xbeb[\x00A\x0e\xee\
+\xd7\xf1O\xe3\xe8q\xd0=\xb4\xc4\x1b\xe3\xe6\xbaR\x1c\
+d\xb5S\x7f \xde\x99\xba\xf1\xab\x84!\xa3\xb7XO\
+\xc4%z\x1c\xd4\xf4U\xa7..\xd1\xe3\xa05j\xb5\
+Uq\x89\x1c\x07\x99g'\x06\x80\x1a\x07\x8dP\xff\xe2\
+\xe2\xedM\xec\xaap\xd0j\xcc6\xaax{je8\
+\xe89\xf3\x18\x02\x09r\xb0\x01\x08|kUyX\xec\
+\x1e:\xe2#\xf1f\x158\x08\x08|\x7f\xbc\x0a\x1c\x04\
+\x04~\xa0A_~\x0eF\x08l%\x11H\x8c\x83W\
+\x08\xa4\xc6\xc14\x02\x89q0\x13\x81\xafs0\x90z\
+\x11\xf8\x0b\x81\xa48\xe8\xfd}'\x90\x0e\x07\x1bk\x93\
+\x8b\xab\xe8p\xf0\x16\x02\x89p\xf0c\x08LsP\xd6\
+\x19\xb8\x87@\x12\x1c\xd4t\xfb&\x02Ip\x10\x10\xf8\
+\xd1\xea\xad\x95\xa4\x9f\xd7\xdfF \x09\x0e\x02\x02?\x9e\
+)%\x07\xef#\x90\x00\x07\x01\x81\x9f\xaf\xe5H\xc8\xc1\
+L\x04\x22\xe7\xa0\xebg \x107\x07\x99\xd6\xebg\x0d\
+\x00j\x0e\xba=\xbf\x00\x04&8\xd8\x93\x8a\x83\x80\xc0\
+\x82jK\xc6Ak\xb4Y\xaa\x22+\xc4\x1c\x04\x04\x16\
+\x14\x9f\x0c%\xe2 \xb0\xb8T\x998X\x14\x02\xd3\
+\x1c\xac\xc9\xb2\x0a\xe4A J\x0e\x02\x02\x8b\xcc\x9c;\
+\x92\xfc\x8f\xb6\x5c\x08\xc4\xc7\xc1\x9c\x08\xc4\xc7\xc1o\x04\
+.E\xb1\x01\x07%\xf8\xbb\x83\x80\xc0\xc2kw\x0f^\
+\xf9\x1b\x81\xe5\x14\x88\xc04\x07m\x098\xe8\xd9%\x0c\
+\x00p0T\xca\xcd\xb0\xf2\x22\x10\x19\x07#\x04\xb6J\
+\x19\x00\xe0`\xb9G (\x1c\x81i\x0e\xee\xcb\xdd\x0a\
+\x1b\xeb'>\x8dC\xc4\xc12\x10\x98\xe6\xe08\xe7\x0c\
+\xa0@ \xc4[\x8b\xf2f\xc0\x0d\xfc\xeeR\x94\x5c3\
+/\x07q P\x0e\x0e>\x8d@,\x1c\xf4\xec\xd2\x07\
+\xa0\x14\x0e\x02\x02\xe7\x5c\x94_\xc4\xc1\x1eS\x0a\x0d\x10\
+(dH\x9d?\xceAL\x08,\x9d\x83\x11\x02e\x98\
+\x80|\x1c\xc4\x84\xc08\x07\xbf\x1e\xe3 2\x04\x96\xca\
+A78\x94\x8f\xc0R8\x08\x08\xdc\x94\x8e\xc0\xbc\x1c\
+D\x87\xc029\xe8\xad$\x1a\x80\xff\x1ct\xb28\x88\
+\x11\x81y8\x88\x13\x81y8\x88\x13\x81P\xa7H\x0e\
+\x8e\xd7\x03\x89\xb6\x80\xe29\xa8\xc9\x83@\xa8~\x97\x83\
+x\x11\xf80\x07\xd1\x22\xb0x\x0e\xd6\xf4\xa3L\x08|\
+\x90\x83x\x11X<\x07\x03\xb9\x10\xf8\x10\x07Q#0\
+\xc9A\xe5\xaf\x90#0\x9b\x83\xd8\x11X$\x07\x99\x8c\
+\x08,\x92\x83\xda\xa2#\xe5\x0eP\x10\x07\x99\x16H\x89\
+\xc0\xc28\xe8z\x92\x22\xf0\x1e\x07I \xb0(\x0eZ\
+\xcep\x22\xf3\x12\xf0'\x07I \xf0\xd3\x1c\x04\x04J\
+~\xfe\xaf\xef\x0e\x92A`\x9c\x83\xfag8\xc8zR\
+#\xf0\x06\x07\xe9 \xf0o\x0e\x12B\xe0\xa79\xc8\xdc\
+\xa0o\x8aj\x04\x1c|3\x02\xdb\xa2\x22\xfdr\x90\x18\
+\x02?\xcb\xc1P~\x04B\xfc\xccAj\x08\xfc$\x07\
+Y%\x10\x08\x16R\xcdU\xef\xdd\x08\x94\xf0iX\x16\
+\x07\x09\x220\xc9A\x82\x08Lr\x90 \x02\xa1\xfa \
+\xe2 A\x04&9H\x11\x81)\x0e\xd2C`\x8a\x83\
+\xf4\x10\x08\xf1\xd6Q\xd7\xe8!\xf0\xfd\x1cd5}Z\
+\xc1\xf3\x1f\xc5\xcd\xd5\x89\x11D`\x8a\x83\x04\x11\xf8^\
+\x0e\xb2q\xb7j\x08\x84\xcc/' \x88\xc0\x14\x07\x09\
+\x220\xc9A\x8a\x08\x8cs0p\xd9+\x08\x1c\xf7\xab\
+\x88\xc0\x04\x07\xb7\x06=\x04&9X\xa3\x87\xc0\x14\x07\
+\x09\x220\xc9A\x8a\x08\x84\xd4i\xc4A\x82\x08|\x89\
+\x83\x80\xc0]\xa5\xb7\x80_\x0e\x8e\x82\xa7\x11(\xeb[\
+\xc199\xa83\x82\x08Lr\x90\x22\x02!\x138\x98\
+\x13\x81\x18& \xaa\xbe\xd6\xb7.=\x04\xbe\xca\xc1`\
+\x85d\x00~8H\x10\x81I\x0e2\x82\x08|\x8a\x83\
+\x80@\x1c{\xe0\x93\x1c4p 0\xc9A\x82\x08\x8c\
+sp\xad\xb3\x1c\x08\xf4\x90 \xf0\x92\x9a\x8b\x83\xeeV\
+\xc7\x82\xc0\x9c\x1c\x04\x04\x0eqM@T\xbd\xabo\x0d\
+z\x08\x84\xf8\xe6q\x0e\xf6d\xff2\xea\x99Ts\xe8\
+l\x1fF\xa0\xc0\x97\xfa\xe8\xddA\x86\x0c\x81)\x0e\x12\
+D \xb4\x8b8\xc8\xe8!\x10\x9a\xcc\x9d\x13\xa3\x87@\
+\x88O\xa6\x07#k\x00\x0ct\x08\x8c\xa5\xee\x9c\x90\x22\
+\x02\xa1\xa5\xbd\xaf\x19\xf4\x10\x08\xf1\xf9\xe2\xa4\xd1C`\
+|\x06\xd6\xbeu\x1f\x81\x98\x07@\x08\xb5>\xb0\xbd\xfb\
+\x08\x1c\x0a\xdc\xd5\xbf\x1a\x06A\x04\xc6\xda,<\x8d \
+\x02\xa1\x81\xado\xd9-\x04\xeah\x11\x08\xb5\x87\xc7=\
+\xbb\x83@\xc4[\xc09\xbe\x1c\x1e\x0c\x82\x08\x8c5p\
+B\x8a\x08Lr\x90\xd1C\xe0\x1d\x0e\x02\x02M\xf4+\
+\xc0\x99\x83]\xdf\xa2\x87\xc0,\x0e2\x0d=\x02!>\
+o\x18\x7f p'\xc8\xf4\xcdA\x82\x08\xfcW\x9e\x1d\
+\xa3\x00\x08\x03A\x14]\x95\x10Q\x12Q,D,\x84\
+46z\xff\xe3i\xaau\xd6\xca63\x97\xf8\x0f\xc6\
+p\x90\x0f\x81\xc0\xc1\xae\xb2\x08l)\x12\xa0\x1c\x8c\xf2\
+\x1a\x0b\x02\x81\x83\x8c\x084\x1c\xe4C pp\xd1\x10\
+\x1ca\xe7@\xa0\xe1`\xd9w\xf0\x0f\x0e2!\x109\
+\xc8\x88@\xdd\x98\x86(\xcf\xfcI\x85\xc0/\x07\x1d\x17\
+\x02\x91\x83>7p\xa3B pp\xca%\xec\xc3z\
+Q\xae\xa9\xe7\xe4\xe4\x06\xc7Z\x00\x1d\x81h\xe2\xc4\x00\
+\x00\x00\x00IEND\xaeB`\x82\
+"
+
+qt_resource_name = b"\
+\x00\x06\
+\x07\x03}\xc3\
+\x00i\
+\x00m\x00a\x00g\x00e\x00s\
+\x00\x12\
+\x0c\xf7v\xe7\
+\x00g\
+\x00r\x00e\x00e\x00n\x00_\x00t\x00r\x00i\x00a\x00n\x00g\x00l\x00e\x00.\x00p\x00n\
+\x00g\
+\x00\x11\
+\x02\xf5Q\x07\
+\x00b\
+\x00l\x00u\x00e\x00_\x00t\x00r\x00i\x00a\x00n\x00g\x00l\x00e\x00.\x00p\x00n\x00g\
+\
+"
+
+qt_resource_struct = b"\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00<\x00\x00\x00\x00\x00\x01\x00\x00\x05q\
+\x00\x00\x01\x82`\x07\x0a\xa2\
+\x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
+\x00\x00\x01\x82`\x07!\xf4\
+"
+
+def qInitResources():
+ QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+def qCleanupResources():
+ QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+qInitResources()
diff --git a/examples/charts/pointselectionandmarkers/utilities.py b/examples/charts/pointselectionandmarkers/utilities.py
new file mode 100644
index 000000000..b27a2542b
--- /dev/null
+++ b/examples/charts/pointselectionandmarkers/utilities.py
@@ -0,0 +1,77 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtGui import QImage, QPainter, QColor
+from PySide6.QtCore import Qt
+
+import rc_markers # noqa: F401
+
+
+def rectangle(point_type, image_size):
+ image = QImage(image_size, image_size, QImage.Format_RGB32)
+ painter = QPainter()
+ painter.begin(image)
+ painter.setRenderHint(QPainter.Antialiasing)
+ painter.fillRect(0, 0, image_size, image_size, point_type[2])
+ painter.end()
+ return image
+
+
+def triangle(point_type, image_size):
+ return QImage(point_type[3]).scaled(image_size, image_size)
+
+
+def circle(point_type, image_size):
+ image = QImage(image_size, image_size, QImage.Format_ARGB32)
+ image.fill(QColor(0, 0, 0, 0))
+ painter = QPainter()
+ painter.begin(image)
+ painter.setRenderHint(QPainter.Antialiasing)
+ painter.setBrush(point_type[2])
+ pen = painter.pen()
+ pen.setWidth(0)
+ painter.setPen(pen)
+ painter.drawEllipse(0, 0, image_size * 0.9, image_size * 0.9)
+ painter.end()
+ return image
+
+
+_point_types = [("RedRectangle", rectangle, Qt.red),
+ ("GreenTriangle", triangle, Qt.green, ":/images/green_triangle.png"),
+ ("OrangeCircle", circle, QColor(255, 127, 80))]
+_selected_point_types = [("BlueTriangle", triangle, Qt.blue, ":/images/blue_triangle.png"),
+ ("YellowRectangle", rectangle, Qt.yellow),
+ ("LavenderCircle", circle, QColor(147, 112, 219))]
+_line_colors = [("Blue", QColor(65, 105, 225)), ("Black", Qt.black), ("Mint", QColor(70, 203, 155))]
+
+
+def point_type(index):
+ return _point_types[index]
+
+
+def selected_point_type(index):
+ return _selected_point_types[index]
+
+
+def line_color(index):
+ return _line_colors[index]
+
+
+def default_light_marker(image_size):
+ return rectangle(_point_types[0], image_size)
+
+
+def default_selected_light_marker(image_size):
+ return triangle(_selected_point_types[0], image_size)
+
+
+def get_point_representation(point_type, image_size):
+ return point_type[1](point_type, image_size)
+
+
+def get_selected_point_representation(point_type, image_size):
+ return point_type[1](point_type, image_size)
+
+
+def make_line_color(line_color):
+ return line_color[1]
diff --git a/examples/charts/qmlpolarchart/View1.qml b/examples/charts/qmlpolarchart/View1.qml
index bb7064c57..d05f7e2a2 100644
--- a/examples/charts/qmlpolarchart/View1.qml
+++ b/examples/charts/qmlpolarchart/View1.qml
@@ -1,31 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the Qt Charts module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
import QtQuick
import QtCharts
diff --git a/examples/charts/qmlpolarchart/View2.qml b/examples/charts/qmlpolarchart/View2.qml
index 931a4167a..1db760396 100644
--- a/examples/charts/qmlpolarchart/View2.qml
+++ b/examples/charts/qmlpolarchart/View2.qml
@@ -1,31 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the Qt Charts module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
import QtQuick
import QtCharts
diff --git a/examples/charts/qmlpolarchart/View3.qml b/examples/charts/qmlpolarchart/View3.qml
index 45f86ce97..f684d55e0 100644
--- a/examples/charts/qmlpolarchart/View3.qml
+++ b/examples/charts/qmlpolarchart/View3.qml
@@ -1,31 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the Qt Charts module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
import QtQuick
import QtCharts
diff --git a/examples/charts/qmlpolarchart/main.qml b/examples/charts/qmlpolarchart/main.qml
index fdcf8ac94..6ced27ee2 100644
--- a/examples/charts/qmlpolarchart/main.qml
+++ b/examples/charts/qmlpolarchart/main.qml
@@ -1,31 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the Qt Charts module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
import QtQuick
diff --git a/examples/charts/qmlpolarchart/qmlpolarchart.py b/examples/charts/qmlpolarchart/qmlpolarchart.py
index 02902b56d..6391fc305 100644
--- a/examples/charts/qmlpolarchart/qmlpolarchart.py
+++ b/examples/charts/qmlpolarchart/qmlpolarchart.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the QML Polar Chart Example from Qt v5.x"""
@@ -45,8 +8,8 @@ from pathlib import Path
import sys
from PySide6.QtQuick import QQuickView
-from PySide6.QtCore import Qt, QUrl
-from PySide6.QtWidgets import QApplication, QMainWindow
+from PySide6.QtCore import QUrl
+from PySide6.QtWidgets import QApplication
if __name__ == '__main__':
diff --git a/examples/charts/temperaturerecords/temperaturerecords.py b/examples/charts/temperaturerecords/temperaturerecords.py
index fe4e948cc..358f3818e 100644
--- a/examples/charts/temperaturerecords/temperaturerecords.py
+++ b/examples/charts/temperaturerecords/temperaturerecords.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the Temperature Records example from Qt v5.x"""
diff --git a/examples/corelib/ipc/sharedmemory/dialog.py b/examples/corelib/ipc/sharedmemory/dialog.py
index 8045330e2..134900047 100644
--- a/examples/corelib/ipc/sharedmemory/dialog.py
+++ b/examples/corelib/ipc/sharedmemory/dialog.py
@@ -1,52 +1,5 @@
-############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## BSD License Usage
-## Alternatively, you may use this file under the terms of the BSD license
-## as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import os
from pathlib import Path
@@ -137,4 +90,4 @@ class Dialog(QDialog):
def detach(self):
if not self._shared_memory.detach():
- self.ui.label.setText(tr("Unable to detach from shared memory."))
+ self.ui.label.setText(self.tr("Unable to detach from shared memory.")) # noqa: F821
diff --git a/examples/corelib/ipc/sharedmemory/main.py b/examples/corelib/ipc/sharedmemory/main.py
index 13e8f9dff..e497c8de6 100644
--- a/examples/corelib/ipc/sharedmemory/main.py
+++ b/examples/corelib/ipc/sharedmemory/main.py
@@ -1,52 +1,5 @@
-############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## BSD License Usage
-## Alternatively, you may use this file under the terms of the BSD license
-## as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the ipc/sharedmemory example from Qt v6.x"""
diff --git a/examples/corelib/ipc/sharedmemory/ui_dialog.py b/examples/corelib/ipc/sharedmemory/ui_dialog.py
index 891c7b847..2cd544f40 100644
--- a/examples/corelib/ipc/sharedmemory/ui_dialog.py
+++ b/examples/corelib/ipc/sharedmemory/ui_dialog.py
@@ -3,7 +3,7 @@
################################################################################
## Form generated from reading UI file 'dialog.ui'
##
-## Created by: Qt User Interface Compiler version 6.2.0
+## Created by: Qt User Interface Compiler version 6.7.0
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
@@ -16,7 +16,7 @@ from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
QImage, QKeySequence, QLinearGradient, QPainter,
QPalette, QPixmap, QRadialGradient, QTransform)
from PySide6.QtWidgets import (QApplication, QDialog, QGridLayout, QLabel,
- QPushButton, QSizePolicy)
+ QPushButton, QSizePolicy, QWidget)
class Ui_Dialog(object):
def setupUi(self, Dialog):
diff --git a/examples/corelib/mimetypesbrowser/doc/mimetypesbrowser.png b/examples/corelib/mimetypesbrowser/doc/mimetypesbrowser.png
new file mode 100644
index 000000000..3c4a476b3
--- /dev/null
+++ b/examples/corelib/mimetypesbrowser/doc/mimetypesbrowser.png
Binary files differ
diff --git a/examples/corelib/mimetypesbrowser/doc/mimetypesbrowser.rst b/examples/corelib/mimetypesbrowser/doc/mimetypesbrowser.rst
new file mode 100644
index 000000000..e8e4d1ecd
--- /dev/null
+++ b/examples/corelib/mimetypesbrowser/doc/mimetypesbrowser.rst
@@ -0,0 +1,10 @@
+MIME Type Browser Example
+=========================
+
+A Python application that demonstrates the analogous example in C++
+`MIME Type Browser Example <https://doc.qt.io/qt-6/qtcore-mimetypes-mimetypebrowser-example.html>`_
+
+.. image:: mimetypesbrowser.png
+ :width: 400
+ :alt: mimetypebrowser screenshot
+
diff --git a/examples/corelib/mimetypesbrowser/mainwindow.py b/examples/corelib/mimetypesbrowser/mainwindow.py
new file mode 100644
index 000000000..76404eeb7
--- /dev/null
+++ b/examples/corelib/mimetypesbrowser/mainwindow.py
@@ -0,0 +1,161 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from mimetypemodel import MimeTypeModel
+from PySide6.QtCore import (QDir, QFileInfo, QMimeDatabase, QModelIndex, Qt,
+ Slot)
+from PySide6.QtGui import QAction, QKeySequence
+from PySide6.QtWidgets import (QAbstractItemView, QApplication, QDialog,
+ QFileDialog, QInputDialog, QMainWindow,
+ QMessageBox, QSplitter, QTextEdit, QTreeView,
+ QWidget)
+
+
+class MainWindow(QMainWindow):
+ def __init__(self, parent: QWidget = None) -> None:
+ super().__init__(parent=parent)
+ self.m_find_index: int = 0
+ self.m_model = MimeTypeModel(self)
+ self.m_tree_view = QTreeView(self)
+ self.m_details_text = QTextEdit(self)
+ self.m_find_matches = []
+
+ self.setWindowTitle("Qt Mime Database Browser")
+
+ # create actions
+ self.detect_file_action = QAction(
+ "&Detect File Type...", self, shortcut="Ctrl+O", triggered=self.detect_file
+ )
+ self.exit_action = QAction("E&xit", self, shortcut="Ctrl+Q", triggered=self.close)
+ self.m_find_action = QAction("&Find...", self, shortcut="Ctrl+F", triggered=self.find)
+ self.m_find_next_action = QAction(
+ "Find &Next", self, shortcut="Ctrl+G", triggered=self.find_next
+ )
+ self.m_find_previous_action = QAction(
+ "Find &Previous",
+ self,
+ shortcut="Ctrl+Shift+G",
+ triggered=self.find_previous,
+ )
+ self.about_action = QAction(
+ "About Qt",
+ self,
+ shortcut=QKeySequence(QKeySequence.HelpContents),
+ triggered=QApplication.aboutQt,
+ )
+
+ # add action to menu
+ self.file_menu = self.menuBar().addMenu("&File")
+ self.file_menu.addAction(self.detect_file_action)
+ self.file_menu.addAction(self.exit_action)
+ self.find_menu = self.menuBar().addMenu("&Edit")
+ self.find_menu.addAction(self.m_find_action)
+ self.find_menu.addAction(self.m_find_next_action)
+ self.find_menu.addAction(self.m_find_previous_action)
+ self.about_menu = self.menuBar().addMenu("&About")
+ self.about_menu.addAction(self.about_action)
+
+ self.central_splitter = QSplitter(self)
+ self.setCentralWidget(self.central_splitter)
+
+ self.m_tree_view.setUniformRowHeights(True)
+ self.m_tree_view.setModel(self.m_model)
+
+ self.items = self.m_model.findItems(
+ "application/octet-stream",
+ Qt.MatchContains | Qt.MatchFixedString | Qt.MatchRecursive,
+ )
+
+ if self.items:
+ self.m_tree_view.expand(self.m_model.indexFromItem(self.items[0]))
+
+ self.m_tree_view.selectionModel().currentChanged.connect(self.current_changed)
+ self.central_splitter.addWidget(self.m_tree_view)
+ self.m_details_text.setReadOnly(True)
+ self.central_splitter.addWidget(self.m_details_text)
+
+ self.update_find_actions()
+
+ @Slot()
+ def detect_file(self):
+ file_name = QFileDialog.getOpenFileName(self, "Choose File")
+ if not file_name:
+ return
+
+ mime_database = QMimeDatabase()
+ fi = QFileInfo(file_name[0])
+ mime_type = mime_database.mimeTypeForFile(fi)
+ index = (
+ self.m_model.indexForMimeType(mime_type.name())
+ if mime_type.isValid()
+ else QModelIndex()
+ )
+
+ if index.isValid():
+ self.statusBar().showMessage(f'{fi.fileName()}" is of type "{mime_type.name()}"')
+ self._select_and_goto(index)
+ else:
+ QMessageBox.information(
+ self,
+ "Unknown File Type",
+ f"The type of {QDir.toNativeSeparators(file_name)} could not be determined.",
+ )
+
+ @Slot()
+ def find(self):
+ input_dialog = QInputDialog(self)
+ input_dialog.setWindowTitle("Find")
+ input_dialog.setLabelText("Text")
+ if input_dialog.exec() != QDialog.Accepted:
+ return
+
+ value = input_dialog.textValue().strip()
+ if not value:
+ return
+
+ self.m_find_matches.clear()
+ self.m_find_index = 0
+ items = self.m_model.findItems(
+ value, Qt.MatchContains | Qt.MatchFixedString | Qt.MatchRecursive
+ )
+
+ for item in items:
+ self.m_find_matches.append(self.m_model.indexFromItem(item))
+
+ self.statusBar().showMessage(f'{len(self.m_find_matches)} mime types match "{value}".')
+ self.update_find_actions()
+
+ if self.m_find_matches:
+ self._select_and_goto(self.m_find_matches[0])
+
+ @Slot()
+ def find_next(self):
+ self.m_find_index = self.m_find_index + 1
+ if self.m_find_index >= len(self.m_find_matches):
+ self.m_find_index = 0
+ if self.m_find_index < len(self.m_find_matches):
+ self._select_and_goto(self.m_find_matches[self.m_find_index])
+
+ @Slot()
+ def find_previous(self):
+ self.m_find_index = self.m_find_index - 1
+ if self.m_find_index < 0:
+ self.m_find_index = len(self.m_find_matches) - 1
+ if self.m_find_index >= 0:
+ self._select_and_goto(self.m_find_matches[self.m_find_index])
+
+ @Slot(QModelIndex)
+ def current_changed(self, index: QModelIndex):
+ if index.isValid():
+ self.m_details_text.setText(
+ MimeTypeModel.formatMimeTypeInfo(self.m_model.mimeType(index))
+ )
+
+ def update_find_actions(self):
+ self.find_next_previous_enabled = len(self.m_find_matches) > 1
+ self.m_find_next_action.setEnabled(self.find_next_previous_enabled)
+ self.m_find_previous_action.setEnabled(self.find_next_previous_enabled)
+
+ def _select_and_goto(self, index: QModelIndex):
+ self.m_tree_view.scrollTo(index, QAbstractItemView.PositionAtCenter)
+ self.m_tree_view.setCurrentIndex(index)
diff --git a/examples/corelib/mimetypesbrowser/mimetypemodel.py b/examples/corelib/mimetypesbrowser/mimetypemodel.py
new file mode 100644
index 000000000..5243f110e
--- /dev/null
+++ b/examples/corelib/mimetypesbrowser/mimetypemodel.py
@@ -0,0 +1,136 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from typing import List
+
+from PySide6.QtCore import QMimeDatabase, QMimeType, QModelIndex, QObject, Qt, qWarning
+from PySide6.QtGui import QStandardItem, QStandardItemModel
+
+mimeTypeRole = Qt.UserRole + 1
+iconQueriedRole = Qt.UserRole + 2
+
+
+def createRow(t: QMimeType):
+ name_item = QStandardItem(t.name())
+ flags = Qt.ItemIsSelectable | Qt.ItemIsEnabled
+ name_item.setData(t, mimeTypeRole)
+ name_item.setData(False, iconQueriedRole)
+ name_item.setFlags(flags)
+ name_item.setToolTip(t.comment())
+ return [name_item]
+
+
+class MimeTypeModel(QStandardItemModel):
+ def __init__(self, parent: QObject = None):
+ super().__init__(0, 1, parent)
+ self.setHorizontalHeaderLabels(["Name"])
+ self.m_name_index_hash = {}
+ self.populate()
+
+ def populate(self):
+ mime_database = QMimeDatabase()
+ all_types: List[QMimeType] = mime_database.allMimeTypes()
+
+ # Move top level types to rear end of list, sort this partition,
+ # create top level items and truncate the list.
+ with_parent_mimetypes, without_parent_mimetypes = [], []
+
+ for mime_type in all_types:
+ if mime_type.parentMimeTypes():
+ with_parent_mimetypes.append(mime_type)
+ else:
+ without_parent_mimetypes.append(mime_type)
+
+ without_parent_mimetypes.sort(key=lambda x: x.name())
+
+ for top_level_type in without_parent_mimetypes:
+ row = createRow(top_level_type)
+ self.appendRow(row)
+ self.m_name_index_hash[top_level_type.name()] = self.indexFromItem(row[0])
+
+ all_types = with_parent_mimetypes
+
+ while all_types:
+ # Find a type inheriting one that is already in the model.
+ name_index_value: QModelIndex = None
+ name_index_key = ""
+ for mime_type in all_types:
+ name_index_value = self.m_name_index_hash.get(
+ mime_type.parentMimeTypes()[0]
+ )
+ if name_index_value:
+ name_index_key = mime_type.parentMimeTypes()[0]
+ break
+
+ if not name_index_value:
+ orphaned_mime_types = ", ".join(
+ [mime_type.name() for mime_type in all_types]
+ )
+ qWarning(f"Orphaned mime types: {orphaned_mime_types}")
+ break
+
+ # Move types inheriting the parent type to rear end of list, sort this partition,
+ # append the items to parent and truncate the list.
+ parent_name = name_index_key
+ with_parent_name, without_parent_name = [], []
+
+ for mime_type in all_types:
+ if parent_name in mime_type.parentMimeTypes():
+ with_parent_name.append(mime_type)
+ else:
+ without_parent_name.append(mime_type)
+
+ without_parent_name.sort(key=lambda x: x.name())
+ parent_item = self.itemFromIndex(name_index_value)
+
+ for mime_type in with_parent_name:
+ row = createRow(mime_type)
+ parent_item.appendRow(row)
+ self.m_name_index_hash[mime_type.name()] = self.indexFromItem(row[0])
+
+ all_types = without_parent_name
+
+ def mimeType(self, index: QModelIndex):
+ return index.data(mimeTypeRole)
+
+ def indexForMimeType(self, name):
+ return self.m_name_index_hash[name]
+
+ @staticmethod
+ def formatMimeTypeInfo(t: QMimeType):
+ out = f"<html><head/><body><h3><center>{t.name()}</center></h3><br><table>"
+ aliases_str = ", ".join(t.aliases())
+ if aliases_str:
+ out += f"<tr><td>Aliases:</td><td> ({aliases_str})"
+
+ out += (
+ f"</td></tr><tr><td>Comment:</td><td>{t.comment()}"
+ f"</td></tr><tr><td>Icon name:</td><td>{t.iconName()}</td></tr>"
+ f"<tr><td>Generic icon name</td><td>{t.genericIconName()}</td></tr>"
+ )
+
+ filter_str = t.filterString()
+ if filter_str:
+ out += f"<tr><td>Filter:</td><td>{filter_str}</td></tr>"
+
+ patterns_str = ", ".join(t.globPatterns())
+ if patterns_str:
+ out += f"<tr><td>Glob patterns:</td><td>{patterns_str}</td></tr>"
+
+ parentMimeTypes_str = ", ".join(t.parentMimeTypes())
+ if parentMimeTypes_str:
+ out += f"<tr><td>Parent types:</td><td>{parentMimeTypes_str}</td></tr>"
+
+ suffixes = t.suffixes()
+ if suffixes:
+ out += "<tr><td>Suffixes:</td><td>"
+ preferredSuffix = t.preferredSuffix()
+ if preferredSuffix:
+ suffixes.remove(preferredSuffix)
+ out += f"<b>{preferredSuffix}</b> "
+ suffixes_str = ", ".join(suffixes)
+ out += f"{suffixes_str}</td></tr>"
+
+ out += "</table></body></html>"
+
+ return out
diff --git a/examples/corelib/mimetypesbrowser/mimetypesbrowser.py b/examples/corelib/mimetypesbrowser/mimetypesbrowser.py
new file mode 100644
index 000000000..4742a31b8
--- /dev/null
+++ b/examples/corelib/mimetypesbrowser/mimetypesbrowser.py
@@ -0,0 +1,24 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the corelib/mimetypes/mimetypebrowser example from from Qt"""
+
+import argparse
+import sys
+
+from mainwindow import MainWindow
+from PySide6.QtWidgets import QApplication
+
+if __name__ == "__main__":
+ app = QApplication(sys.argv)
+
+ parser = argparse.ArgumentParser(description="MimeTypesBrowser Example")
+ parser.add_argument("-v", "--version", action="version", version="%(prog)s 1.0")
+ args = parser.parse_args()
+
+ mainWindow = MainWindow()
+ availableGeometry = mainWindow.screen().availableGeometry()
+ mainWindow.resize(availableGeometry.width() / 3, availableGeometry.height() / 2)
+ mainWindow.show()
+
+ sys.exit(app.exec())
diff --git a/examples/corelib/mimetypesbrowser/mimetypesbrowser.pyproject b/examples/corelib/mimetypesbrowser/mimetypesbrowser.pyproject
new file mode 100644
index 000000000..ada4252da
--- /dev/null
+++ b/examples/corelib/mimetypesbrowser/mimetypesbrowser.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["mimetypesbrowser.py"]
+}
diff --git a/examples/corelib/settingseditor/settingseditor.py b/examples/corelib/settingseditor/settingseditor.py
index 2c6a0703b..f87a2f4b5 100644
--- a/examples/corelib/settingseditor/settingseditor.py
+++ b/examples/corelib/settingseditor/settingseditor.py
@@ -1,59 +1,26 @@
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the widgets/tools/settingseditor example from Qt v5.x"""
import sys
from PySide6.QtCore import (QByteArray, QDate, QDateTime, QDir, QEvent, QPoint,
- QRect, QRegularExpression, QSettings, QSize, QTime, QTimer, Qt)
+ QRect, QRegularExpression, QSettings, QSize, QTime,
+ QTimer, Qt, Slot)
from PySide6.QtGui import (QAction, QColor, QIcon, QIntValidator,
- QDoubleValidator, QRegularExpressionValidator, QValidator)
+ QDoubleValidator, QRegularExpressionValidator,
+ QValidator)
from PySide6.QtWidgets import (QAbstractItemView, QApplication,
- QCheckBox, QComboBox, QFileDialog, QDialog, QDialogButtonBox, QGridLayout,
- QGroupBox, QHeaderView, QInputDialog, QItemDelegate, QLabel, QLineEdit,
- QMainWindow, QMessageBox, QStyle, QSpinBox, QStyleOptionViewItem,
- QTableWidget, QTableWidgetItem, QTreeWidget, QTreeWidgetItem, QVBoxLayout)
+ QCheckBox, QComboBox, QFileDialog, QDialog,
+ QDialogButtonBox, QGridLayout,
+ QGroupBox, QHeaderView, QInputDialog,
+ QItemDelegate, QLabel, QLineEdit,
+ QMainWindow, QMessageBox, QStyle, QSpinBox,
+ QStyleOptionViewItem, QTableWidget,
+ QTableWidgetItem, QTreeWidget, QTreeWidgetItem,
+ QVBoxLayout)
class TypeChecker:
@@ -183,6 +150,7 @@ class MainWindow(QMainWindow):
self.setWindowTitle("Settings Editor")
self.resize(500, 600)
+ @Slot()
def open_settings(self):
if self.location_dialog is None:
self.location_dialog = LocationDialog(self)
@@ -195,9 +163,10 @@ class MainWindow(QMainWindow):
self.set_settings_object(settings)
self.fallbacks_action.setEnabled(True)
+ @Slot()
def open_inifile(self):
file_name, _ = QFileDialog.getOpenFileName(self, "Open INI File",
- '', "INI Files (*.ini *.conf)")
+ '', "INI Files (*.ini *.conf)")
if file_name:
self.load_ini_file(file_name)
@@ -209,77 +178,71 @@ class MainWindow(QMainWindow):
self.set_settings_object(settings)
self.fallbacks_action.setEnabled(False)
+ @Slot()
def open_property_list(self):
file_name, _ = QFileDialog.getOpenFileName(self,
- "Open Property List", '', "Property List Files (*.plist)")
+ "Open Property List", '',
+ "Property List Files (*.plist)")
if file_name:
settings = QSettings(file_name, QSettings.NativeFormat)
self.set_settings_object(settings)
self.fallbacks_action.setEnabled(False)
+ @Slot()
def open_registry_path(self):
path, ok = QInputDialog.getText(self, "Open Registry Path",
- "Enter the path in the Windows registry:",
- QLineEdit.Normal, 'HKEY_CURRENT_USER\\')
+ "Enter the path in the Windows registry:",
+ QLineEdit.Normal, 'HKEY_CURRENT_USER\\')
if ok and path != '':
settings = QSettings(path, QSettings.NativeFormat)
self.set_settings_object(settings)
self.fallbacks_action.setEnabled(False)
+ @Slot()
def about(self):
QMessageBox.about(self, "About Settings Editor",
- "The <b>Settings Editor</b> example shows how to access "
- "application settings using Qt.")
-
- def create_actions(self):
- self._open_settings_act = QtGui.QAction("&Open Application Settings...",
- self, shortcut="Ctrl+O", triggered=self.openSettings)
-
- self._open_ini_file_act = QtGui.QAction("Open I&NI File...", self,
- shortcut="Ctrl+N", triggered=self.openIniFile)
-
- self._open_property_list_act = QtGui.QAction("Open macOS &Property List...",
- self, shortcut="Ctrl+P", triggered=self.openPropertyList)
+ "The <b>Settings Editor</b> example shows how to access "
+ "application settings using Qt.")
def create_actions(self):
self.open_settings_action = QAction("&Open Application Settings...",
- self, shortcut="Ctrl+O", triggered=self.open_settings)
+ self, shortcut="Ctrl+O", triggered=self.open_settings)
self.open_ini_file_action = QAction("Open I&NI File...", self,
- shortcut="Ctrl+N", triggered=self.open_inifile)
+ shortcut="Ctrl+N", triggered=self.open_inifile)
- self.open_property_list_action = QAction("Open macOS &Property List...",
- self, shortcut="Ctrl+P", triggered=self.open_property_list)
+ self.open_property_list_action = QAction("Open macOS &Property List...", self,
+ shortcut="Ctrl+P",
+ triggered=self.open_property_list)
if sys.platform != 'darwin':
self.open_property_list_action.setEnabled(False)
self.open_registry_path_action = QAction(
- "Open Windows &Registry Path...", self, shortcut="Ctrl+G",
- triggered=self.open_registry_path)
+ "Open Windows &Registry Path...", self, shortcut="Ctrl+G",
+ triggered=self.open_registry_path)
if sys.platform != 'win32':
self.open_registry_path_action.setEnabled(False)
self.refresh_action = QAction("&Refresh", self, shortcut="Ctrl+R",
- enabled=False, triggered=self.settings_tree.refresh)
+ enabled=False, triggered=self.settings_tree.refresh)
- self.exit_action = QAction("E&xit", self, shortcut="Ctrl+Q",
- triggered=self.close)
+ self.exit_action = QAction("E&xit", self, shortcut="Ctrl+Q", triggered=self.close)
self.auto_refresh_action = QAction("&Auto-Refresh", self,
- shortcut="Ctrl+A", checkable=True, enabled=False)
+ shortcut="Ctrl+A", checkable=True, enabled=False)
self.auto_refresh_action.triggered[bool].connect(self.settings_tree.set_auto_refresh)
self.auto_refresh_action.triggered[bool].connect(self.refresh_action.setDisabled)
self.fallbacks_action = QAction("&Fallbacks", self,
- shortcut="Ctrl+F", checkable=True, enabled=False)
+ shortcut="Ctrl+F", checkable=True, enabled=False)
self.fallbacks_action.triggered[bool].connect(self.settings_tree.set_fallbacks_enabled)
self.about_action = QAction("&About", self, triggered=self.about)
self.about_Qt_action = QAction("About &Qt", self,
- triggered=qApp.aboutQt)
+ triggered=qApp.aboutQt) # noqa: F821
def create_menus(self):
self.file_menu = self.menuBar().addMenu("&File")
@@ -512,6 +475,7 @@ class SettingsTree(QTreeWidget):
def sizeHint(self):
return QSize(800, 600)
+ @Slot(bool)
def set_auto_refresh(self, autoRefresh):
self.auto_refresh = autoRefresh
@@ -522,15 +486,18 @@ class SettingsTree(QTreeWidget):
else:
self.refresh_timer.stop()
+ @Slot(bool)
def set_fallbacks_enabled(self, enabled):
if self.settings is not None:
self.settings.setFallbacksEnabled(enabled)
self.refresh()
+ @Slot()
def maybe_refresh(self):
if self.state() != QAbstractItemView.EditingState:
self.refresh()
+ @Slot()
def refresh(self):
if self.settings is None:
return
@@ -538,7 +505,7 @@ class SettingsTree(QTreeWidget):
# The signal might not be connected.
try:
self.itemChanged.disconnect(self.update_setting)
- except:
+ except Exception:
pass
self.settings.sync()
@@ -561,7 +528,6 @@ class SettingsTree(QTreeWidget):
key = ancestor.text(0) + '/' + key
ancestor = ancestor.parent()
- d = item.data(2, Qt.UserRole)
self.settings.setValue(key, item.data(2, Qt.UserRole))
if self.auto_refresh:
@@ -733,7 +699,7 @@ class VariantDelegate(QItemDelegate):
value = editor.value()
else:
value = self.value_from_lineedit(editor, model, index)
- if not value is None:
+ if value is not None:
model.setData(index, value, Qt.UserRole)
model.setData(index, self.display_text(value), Qt.DisplayRole)
@@ -771,7 +737,7 @@ class VariantDelegate(QItemDelegate):
h = value.height()
return f'({w},{h})'
if isinstance(value, list):
- return ','.join(value)
+ return ','.join(map(repr, value))
if value is None:
return '<Invalid>'
diff --git a/examples/corelib/threads/mandelbrot.py b/examples/corelib/threads/mandelbrot.py
index c95966119..4689813d4 100644
--- a/examples/corelib/threads/mandelbrot.py
+++ b/examples/corelib/threads/mandelbrot.py
@@ -1,44 +1,6 @@
-
-#############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the corelib/threads/mandelbrot example from Qt v5.x, originating from PyQt"""
@@ -47,7 +9,7 @@ import sys
from PySide6.QtCore import (Signal, QMutex, QElapsedTimer, QMutexLocker,
QPoint, QPointF, QSize, Qt, QThread,
- QWaitCondition)
+ QWaitCondition, Slot)
from PySide6.QtGui import QColor, QImage, QPainter, QPixmap, qRgb
from PySide6.QtWidgets import QApplication, QWidget
@@ -68,7 +30,7 @@ INFO_KEY = 'info'
HELP = ("Use mouse wheel or the '+' and '-' keys to zoom. Press and "
- "hold left mouse button to scroll.")
+ "hold left mouse button to scroll.")
class RenderThread(QThread):
@@ -91,7 +53,8 @@ class RenderThread(QThread):
self.abort = False
for i in range(RenderThread.colormap_size):
- self.colormap.append(self.rgb_from_wave_length(380.0 + (i * 400.0 / RenderThread.colormap_size)))
+ self.colormap.append(
+ self.rgb_from_wave_length(380.0 + (i * 400.0 / RenderThread.colormap_size)))
def stop(self):
self.mutex.lock()
@@ -102,18 +65,17 @@ class RenderThread(QThread):
self.wait(2000)
def render(self, centerX, centerY, scale_factor, resultSize):
- locker = QMutexLocker(self.mutex)
-
- self._center_x = centerX
- self._center_y = centerY
- self._scale_factor = scale_factor
- self._result_size = resultSize
-
- if not self.isRunning():
- self.start(QThread.LowPriority)
- else:
- self.restart = True
- self.condition.wakeOne()
+ with QMutexLocker(self.mutex):
+ self._center_x = centerX
+ self._center_y = centerY
+ self._scale_factor = scale_factor
+ self._result_size = resultSize
+
+ if not self.isRunning():
+ self.start(QThread.LowPriority)
+ else:
+ self.restart = True
+ self.condition.wakeOne()
def run(self):
timer = QElapsedTimer()
@@ -171,7 +133,8 @@ class RenderThread(QThread):
if num_iterations < max_iterations:
image.setPixel(x + half_width, y + half_height,
- self.colormap[num_iterations % RenderThread.colormap_size])
+ self.colormap[
+ num_iterations % RenderThread.colormap_size])
all_black = False
else:
image.setPixel(x + half_width, y + half_height, qRgb(0, 0, 0))
@@ -185,7 +148,8 @@ class RenderThread(QThread):
if elapsed > 2000:
elapsed /= 1000
unit = 's'
- text = f"Pass {curpass+1}/{NUM_PASSES}, max iterations: {max_iterations}, time: {elapsed}{unit}"
+ text = (f"Pass {curpass + 1}/{NUM_PASSES}, "
+ f"max iterations: {max_iterations}, time: {elapsed}{unit}")
image.setText(INFO_KEY, text)
self.rendered_image.emit(image, scale_factor)
curpass += 1
@@ -253,45 +217,45 @@ class MandelbrotWidget(QWidget):
self._info = ''
def paintEvent(self, event):
- painter = QPainter(self)
- painter.fillRect(self.rect(), Qt.black)
-
- if self.pixmap.isNull():
+ with QPainter(self) as painter:
+ painter.fillRect(self.rect(), Qt.black)
+
+ if self.pixmap.isNull():
+ painter.setPen(Qt.white)
+ painter.drawText(self.rect(), Qt.AlignCenter,
+ "Rendering initial image, please wait...")
+ return
+
+ if self._cur_scale == self._pixmap_scale:
+ painter.drawPixmap(self._pixmap_offset, self.pixmap)
+ else:
+ scale_factor = self._pixmap_scale / self._cur_scale
+ new_width = int(self.pixmap.width() * scale_factor)
+ new_height = int(self.pixmap.height() * scale_factor)
+ new_x = self._pixmap_offset.x() + (self.pixmap.width() - new_width) / 2
+ new_y = self._pixmap_offset.y() + (self.pixmap.height() - new_height) / 2
+
+ painter.save()
+ painter.translate(new_x, new_y)
+ painter.scale(scale_factor, scale_factor)
+ exposed, _ = painter.transform().inverted()
+ exposed = exposed.mapRect(self.rect()).adjusted(-1, -1, 1, 1)
+ painter.drawPixmap(exposed, self.pixmap, exposed)
+ painter.restore()
+
+ text = HELP
+ if self._info:
+ text += ' ' + self._info
+ metrics = painter.fontMetrics()
+ text_width = metrics.horizontalAdvance(text)
+
+ painter.setPen(Qt.NoPen)
+ painter.setBrush(QColor(0, 0, 0, 127))
+ painter.drawRect((self.width() - text_width) / 2 - 5, 0, text_width + 10,
+ metrics.lineSpacing() + 5)
painter.setPen(Qt.white)
- painter.drawText(self.rect(), Qt.AlignCenter,
- "Rendering initial image, please wait...")
- return
-
- if self._cur_scale == self._pixmap_scale:
- painter.drawPixmap(self._pixmap_offset, self.pixmap)
- else:
- scale_factor = self._pixmap_scale / self._cur_scale
- new_width = int(self.pixmap.width() * scale_factor)
- new_height = int(self.pixmap.height() * scale_factor)
- new_x = self._pixmap_offset.x() + (self.pixmap.width() - new_width) / 2
- new_y = self._pixmap_offset.y() + (self.pixmap.height() - new_height) / 2
-
- painter.save()
- painter.translate(new_x, new_y)
- painter.scale(scale_factor, scale_factor)
- exposed, _ = painter.transform().inverted()
- exposed = exposed.mapRect(self.rect()).adjusted(-1, -1, 1, 1)
- painter.drawPixmap(exposed, self.pixmap, exposed)
- painter.restore()
-
- text = HELP
- if self._info:
- text += ' ' + self._info
- metrics = painter.fontMetrics()
- text_width = metrics.horizontalAdvance(text)
-
- painter.setPen(Qt.NoPen)
- painter.setBrush(QColor(0, 0, 0, 127))
- painter.drawRect((self.width() - text_width) / 2 - 5, 0, text_width + 10,
- metrics.lineSpacing() + 5)
- painter.setPen(Qt.white)
- painter.drawText((self.width() - text_width) / 2,
- metrics.leading() + metrics.ascent(), text)
+ painter.drawText((self.width() - text_width) / 2,
+ metrics.leading() + metrics.ascent(), text)
def resizeEvent(self, event):
self.thread.render(self._center_x, self._center_y, self._cur_scale, self.size())
@@ -340,6 +304,7 @@ class MandelbrotWidget(QWidget):
delta_y = (self.height() - self.pixmap.height()) / 2 - self._pixmap_offset.y()
self.scroll(delta_x, delta_y)
+ @Slot(QImage, float)
def update_pixmap(self, image, scale_factor):
if not self._last_drag_pos.isNull():
return
@@ -354,15 +319,13 @@ class MandelbrotWidget(QWidget):
def zoom(self, zoomFactor):
self._cur_scale *= zoomFactor
self.update()
- self.thread.render(self._center_x, self._center_y, self._cur_scale,
- self.size())
+ self.thread.render(self._center_x, self._center_y, self._cur_scale, self.size())
def scroll(self, deltaX, deltaY):
self._center_x += deltaX * self._cur_scale
self._center_y += deltaY * self._cur_scale
self.update()
- self.thread.render(self._center_x, self._center_y, self._cur_scale,
- self.size())
+ self.thread.render(self._center_x, self._center_y, self._cur_scale, self.size())
if __name__ == '__main__':
diff --git a/examples/datavisualization/bars3d/bars3d.py b/examples/datavisualization/bars3d/bars3d.py
index 57e145fe8..f1283fcbd 100644
--- a/examples/datavisualization/bars3d/bars3d.py
+++ b/examples/datavisualization/bars3d/bars3d.py
@@ -1,43 +1,5 @@
-
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 QtDataVisualization example"""
diff --git a/examples/datavisualization/graphgallery/axesinputhandler.py b/examples/datavisualization/graphgallery/axesinputhandler.py
new file mode 100644
index 000000000..7f721d4aa
--- /dev/null
+++ b/examples/datavisualization/graphgallery/axesinputhandler.py
@@ -0,0 +1,101 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from enum import Enum
+from math import sin, cos, degrees
+
+from PySide6.QtCore import Qt
+from PySide6.QtDataVisualization import QAbstract3DGraph, Q3DInputHandler
+
+
+class InputState(Enum):
+ StateNormal = 0
+ StateDraggingX = 1
+ StateDraggingZ = 2
+ StateDraggingY = 3
+
+
+class AxesInputHandler(Q3DInputHandler):
+
+ def __init__(self, graph, parent=None):
+ super().__init__(parent)
+ self._mousePressed = False
+ self._state = InputState.StateNormal
+ self._axisX = None
+ self._axisZ = None
+ self._axisY = None
+ self._speedModifier = 15.0
+
+ # Connect to the item selection signal from graph
+ graph.selectedElementChanged.connect(self.handleElementSelected)
+
+ def setAxes(self, axisX, axisZ, axisY):
+ self._axisX = axisX
+ self._axisZ = axisZ
+ self._axisY = axisY
+
+ def setDragSpeedModifier(self, modifier):
+ self._speedModifier = modifier
+
+ def mousePressEvent(self, event, mousePos):
+ super().mousePressEvent(event, mousePos)
+ if Qt.LeftButton == event.button():
+ self._mousePressed = True
+
+ def mouseMoveEvent(self, event, mousePos):
+ # Check if we're trying to drag axis label
+ if self._mousePressed and self._state != InputState.StateNormal:
+ self.setPreviousInputPos(self.inputPosition())
+ self.setInputPosition(mousePos)
+ self.handleAxisDragging()
+ else:
+ super().mouseMoveEvent(event, mousePos)
+
+ def mouseReleaseEvent(self, event, mousePos):
+ super().mouseReleaseEvent(event, mousePos)
+ self._mousePressed = False
+ self._state = InputState.StateNormal
+
+ def handleElementSelected(self, type):
+ if type == QAbstract3DGraph.ElementAxisXLabel:
+ self._state = InputState.StateDraggingX
+ elif type == QAbstract3DGraph.ElementAxisYLabel:
+ self._state = InputState.StateDraggingY
+ elif type == QAbstract3DGraph.ElementAxisZLabel:
+ self._state = InputState.StateDraggingZ
+ else:
+ self._state = InputState.StateNormal
+
+ def handleAxisDragging(self):
+ distance = 0.0
+ # Get scene orientation from active camera
+ ac = self.scene().activeCamera()
+ xRotation = ac.xRotation()
+ yRotation = ac.yRotation()
+
+ # Calculate directional drag multipliers based on rotation
+ xMulX = cos(degrees(xRotation))
+ xMulY = sin(degrees(xRotation))
+ zMulX = sin(degrees(xRotation))
+ zMulY = cos(degrees(xRotation))
+
+ # Get the drag amount
+ move = self.inputPosition() - self.previousInputPos()
+
+ # Flip the effect of y movement if we're viewing from below
+ yMove = -move.y() if yRotation < 0 else move.y()
+
+ # Adjust axes
+ if self._state == InputState.StateDraggingX:
+ distance = (move.x() * xMulX - yMove * xMulY) / self._speedModifier
+ self._axisX.setRange(self._axisX.min() - distance,
+ self._axisX.max() - distance)
+ elif self._state == InputState.StateDraggingZ:
+ distance = (move.x() * zMulX + yMove * zMulY) / self._speedModifier
+ self._axisZ.setRange(self._axisZ.min() + distance,
+ self._axisZ.max() + distance)
+ elif self._state == InputState.StateDraggingY:
+ # No need to use adjusted y move here
+ distance = move.y() / self._speedModifier
+ self._axisY.setRange(self._axisY.min() + distance,
+ self._axisY.max() + distance)
diff --git a/examples/datavisualization/graphgallery/bargraph.py b/examples/datavisualization/graphgallery/bargraph.py
new file mode 100644
index 000000000..7938a5ca1
--- /dev/null
+++ b/examples/datavisualization/graphgallery/bargraph.py
@@ -0,0 +1,276 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from graphmodifier import GraphModifier
+
+from PySide6.QtCore import QObject, Qt
+from PySide6.QtGui import QFont
+from PySide6.QtWidgets import (QButtonGroup, QCheckBox, QComboBox, QFontComboBox,
+ QLabel, QPushButton, QHBoxLayout, QSizePolicy,
+ QRadioButton, QSlider, QVBoxLayout, QWidget)
+from PySide6.QtDataVisualization import (QAbstract3DGraph, QAbstract3DSeries, Q3DBars)
+
+
+class BarGraph(QObject):
+
+ def __init__(self):
+ super().__init__()
+ self._barsGraph = Q3DBars()
+ self._container = None
+ self._barsWidget = None
+
+ def barsWidget(self):
+ return self._barsWidget
+
+ def initialize(self, minimum_graph_size, maximum_graph_size):
+ if not self._barsGraph.hasContext():
+ return False
+
+ self._barsWidget = QWidget()
+ hLayout = QHBoxLayout(self._barsWidget)
+ self._container = QWidget.createWindowContainer(self._barsGraph,
+ self._barsWidget)
+ self._container.setMinimumSize(minimum_graph_size)
+ self._container.setMaximumSize(maximum_graph_size)
+ self._container.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
+ self._container.setFocusPolicy(Qt.StrongFocus)
+ hLayout.addWidget(self._container, 1)
+
+ vLayout = QVBoxLayout()
+ hLayout.addLayout(vLayout)
+
+ themeList = QComboBox(self._barsWidget)
+ themeList.addItem("Qt")
+ themeList.addItem("Primary Colors")
+ themeList.addItem("Digia")
+ themeList.addItem("Stone Moss")
+ themeList.addItem("Army Blue")
+ themeList.addItem("Retro")
+ themeList.addItem("Ebony")
+ themeList.addItem("Isabelle")
+ themeList.setCurrentIndex(0)
+
+ labelButton = QPushButton(self._barsWidget)
+ labelButton.setText("Change label style")
+
+ smoothCheckBox = QCheckBox(self._barsWidget)
+ smoothCheckBox.setText("Smooth bars")
+ smoothCheckBox.setChecked(False)
+
+ barStyleList = QComboBox(self._barsWidget)
+ barStyleList.addItem("Bar", QAbstract3DSeries.MeshBar)
+ barStyleList.addItem("Pyramid", QAbstract3DSeries.MeshPyramid)
+ barStyleList.addItem("Cone", QAbstract3DSeries.MeshCone)
+ barStyleList.addItem("Cylinder", QAbstract3DSeries.MeshCylinder)
+ barStyleList.addItem("Bevel bar", QAbstract3DSeries.MeshBevelBar)
+ barStyleList.addItem("Sphere", QAbstract3DSeries.MeshSphere)
+ barStyleList.setCurrentIndex(4)
+
+ cameraButton = QPushButton(self._barsWidget)
+ cameraButton.setText("Change camera preset")
+
+ zoomToSelectedButton = QPushButton(self._barsWidget)
+ zoomToSelectedButton.setText("Zoom to selected bar")
+
+ selectionModeList = QComboBox(self._barsWidget)
+ selectionModeList.addItem("None", QAbstract3DGraph.SelectionNone)
+ selectionModeList.addItem("Bar", QAbstract3DGraph.SelectionItem)
+ selectionModeList.addItem("Row", QAbstract3DGraph.SelectionRow)
+ sel = QAbstract3DGraph.SelectionItemAndRow
+ selectionModeList.addItem("Bar and Row", sel)
+ selectionModeList.addItem("Column", QAbstract3DGraph.SelectionColumn)
+ sel = QAbstract3DGraph.SelectionItemAndColumn
+ selectionModeList.addItem("Bar and Column", sel)
+ sel = QAbstract3DGraph.SelectionRowAndColumn
+ selectionModeList.addItem("Row and Column", sel)
+ sel = QAbstract3DGraph.SelectionItemRowAndColumn
+ selectionModeList.addItem("Bar, Row and Column", sel)
+ sel = QAbstract3DGraph.SelectionSlice | QAbstract3DGraph.SelectionRow
+ selectionModeList.addItem("Slice into Row", sel)
+ sel = QAbstract3DGraph.SelectionSlice | QAbstract3DGraph.SelectionItemAndRow
+ selectionModeList.addItem("Slice into Row and Item", sel)
+ sel = QAbstract3DGraph.SelectionSlice | QAbstract3DGraph.SelectionColumn
+ selectionModeList.addItem("Slice into Column", sel)
+ sel = (QAbstract3DGraph.SelectionSlice | QAbstract3DGraph.SelectionItemAndColumn)
+ selectionModeList.addItem("Slice into Column and Item", sel)
+ sel = (QAbstract3DGraph.SelectionItemRowAndColumn | QAbstract3DGraph.SelectionMultiSeries)
+ selectionModeList.addItem("Multi: Bar, Row, Col", sel)
+ sel = (QAbstract3DGraph.SelectionSlice | QAbstract3DGraph.SelectionItemAndRow
+ | QAbstract3DGraph.SelectionMultiSeries)
+ selectionModeList.addItem("Multi, Slice: Row, Item", sel)
+ sel = (QAbstract3DGraph.SelectionSlice | QAbstract3DGraph.SelectionItemAndColumn
+ | QAbstract3DGraph.SelectionMultiSeries)
+ selectionModeList.addItem("Multi, Slice: Col, Item", sel)
+ selectionModeList.setCurrentIndex(1)
+
+ backgroundCheckBox = QCheckBox(self._barsWidget)
+ backgroundCheckBox.setText("Show background")
+ backgroundCheckBox.setChecked(False)
+
+ gridCheckBox = QCheckBox(self._barsWidget)
+ gridCheckBox.setText("Show grid")
+ gridCheckBox.setChecked(True)
+
+ seriesCheckBox = QCheckBox(self._barsWidget)
+ seriesCheckBox.setText("Show second series")
+ seriesCheckBox.setChecked(False)
+
+ reverseValueAxisCheckBox = QCheckBox(self._barsWidget)
+ reverseValueAxisCheckBox.setText("Reverse value axis")
+ reverseValueAxisCheckBox.setChecked(False)
+
+ reflectionCheckBox = QCheckBox(self._barsWidget)
+ reflectionCheckBox.setText("Show reflections")
+ reflectionCheckBox.setChecked(False)
+
+ rotationSliderX = QSlider(Qt.Horizontal, self._barsWidget)
+ rotationSliderX.setTickInterval(30)
+ rotationSliderX.setTickPosition(QSlider.TicksBelow)
+ rotationSliderX.setMinimum(-180)
+ rotationSliderX.setValue(0)
+ rotationSliderX.setMaximum(180)
+ rotationSliderY = QSlider(Qt.Horizontal, self._barsWidget)
+ rotationSliderY.setTickInterval(15)
+ rotationSliderY.setTickPosition(QSlider.TicksAbove)
+ rotationSliderY.setMinimum(-90)
+ rotationSliderY.setValue(0)
+ rotationSliderY.setMaximum(90)
+
+ fontSizeSlider = QSlider(Qt.Horizontal, self._barsWidget)
+ fontSizeSlider.setTickInterval(10)
+ fontSizeSlider.setTickPosition(QSlider.TicksBelow)
+ fontSizeSlider.setMinimum(1)
+ fontSizeSlider.setValue(30)
+ fontSizeSlider.setMaximum(100)
+
+ fontList = QFontComboBox(self._barsWidget)
+ fontList.setCurrentFont(QFont("Times New Roman"))
+
+ shadowQuality = QComboBox(self._barsWidget)
+ shadowQuality.addItem("None")
+ shadowQuality.addItem("Low")
+ shadowQuality.addItem("Medium")
+ shadowQuality.addItem("High")
+ shadowQuality.addItem("Low Soft")
+ shadowQuality.addItem("Medium Soft")
+ shadowQuality.addItem("High Soft")
+ shadowQuality.setCurrentIndex(5)
+
+ rangeList = QComboBox(self._barsWidget)
+ rangeList.addItem("2015")
+ rangeList.addItem("2016")
+ rangeList.addItem("2017")
+ rangeList.addItem("2018")
+ rangeList.addItem("2019")
+ rangeList.addItem("2020")
+ rangeList.addItem("2021")
+ rangeList.addItem("2022")
+ rangeList.addItem("All")
+ rangeList.setCurrentIndex(8)
+
+ axisTitlesVisibleCB = QCheckBox(self._barsWidget)
+ axisTitlesVisibleCB.setText("Axis titles visible")
+ axisTitlesVisibleCB.setChecked(True)
+
+ axisTitlesFixedCB = QCheckBox(self._barsWidget)
+ axisTitlesFixedCB.setText("Axis titles fixed")
+ axisTitlesFixedCB.setChecked(True)
+
+ axisLabelRotationSlider = QSlider(Qt.Horizontal, self._barsWidget)
+ axisLabelRotationSlider.setTickInterval(10)
+ axisLabelRotationSlider.setTickPosition(QSlider.TicksBelow)
+ axisLabelRotationSlider.setMinimum(0)
+ axisLabelRotationSlider.setValue(30)
+ axisLabelRotationSlider.setMaximum(90)
+
+ modeGroup = QButtonGroup(self._barsWidget)
+ modeWeather = QRadioButton("Temperature Data", self._barsWidget)
+ modeWeather.setChecked(True)
+ modeCustomProxy = QRadioButton("Custom Proxy Data", self._barsWidget)
+ modeGroup.addButton(modeWeather)
+ modeGroup.addButton(modeCustomProxy)
+
+ vLayout.addWidget(QLabel("Rotate horizontally"))
+ vLayout.addWidget(rotationSliderX, 0, Qt.AlignTop)
+ vLayout.addWidget(QLabel("Rotate vertically"))
+ vLayout.addWidget(rotationSliderY, 0, Qt.AlignTop)
+ vLayout.addWidget(labelButton, 0, Qt.AlignTop)
+ vLayout.addWidget(cameraButton, 0, Qt.AlignTop)
+ vLayout.addWidget(zoomToSelectedButton, 0, Qt.AlignTop)
+ vLayout.addWidget(backgroundCheckBox)
+ vLayout.addWidget(gridCheckBox)
+ vLayout.addWidget(smoothCheckBox)
+ vLayout.addWidget(reflectionCheckBox)
+ vLayout.addWidget(seriesCheckBox)
+ vLayout.addWidget(reverseValueAxisCheckBox)
+ vLayout.addWidget(axisTitlesVisibleCB)
+ vLayout.addWidget(axisTitlesFixedCB)
+ vLayout.addWidget(QLabel("Show year"))
+ vLayout.addWidget(rangeList)
+ vLayout.addWidget(QLabel("Change bar style"))
+ vLayout.addWidget(barStyleList)
+ vLayout.addWidget(QLabel("Change selection mode"))
+ vLayout.addWidget(selectionModeList)
+ vLayout.addWidget(QLabel("Change theme"))
+ vLayout.addWidget(themeList)
+ vLayout.addWidget(QLabel("Adjust shadow quality"))
+ vLayout.addWidget(shadowQuality)
+ vLayout.addWidget(QLabel("Change font"))
+ vLayout.addWidget(fontList)
+ vLayout.addWidget(QLabel("Adjust font size"))
+ vLayout.addWidget(fontSizeSlider)
+ vLayout.addWidget(QLabel("Axis label rotation"))
+ vLayout.addWidget(axisLabelRotationSlider, 0, Qt.AlignTop)
+ vLayout.addWidget(modeWeather, 0, Qt.AlignTop)
+ vLayout.addWidget(modeCustomProxy, 1, Qt.AlignTop)
+
+ self._modifier = GraphModifier(self._barsGraph, self)
+
+ rotationSliderX.valueChanged.connect(self._modifier.rotateX)
+ rotationSliderY.valueChanged.connect(self._modifier.rotateY)
+
+ labelButton.clicked.connect(self._modifier.changeLabelBackground)
+ cameraButton.clicked.connect(self._modifier.changePresetCamera)
+ zoomToSelectedButton.clicked.connect(self._modifier.zoomToSelectedBar)
+
+ backgroundCheckBox.stateChanged.connect(self._modifier.setBackgroundEnabled)
+ gridCheckBox.stateChanged.connect(self._modifier.setGridEnabled)
+ smoothCheckBox.stateChanged.connect(self._modifier.setSmoothBars)
+ seriesCheckBox.stateChanged.connect(self._modifier.setSeriesVisibility)
+ reverseValueAxisCheckBox.stateChanged.connect(self._modifier.setReverseValueAxis)
+ reflectionCheckBox.stateChanged.connect(self._modifier.setReflection)
+
+ self._modifier.backgroundEnabledChanged.connect(backgroundCheckBox.setChecked)
+ self._modifier.gridEnabledChanged.connect(gridCheckBox.setChecked)
+
+ rangeList.currentIndexChanged.connect(self._modifier.changeRange)
+
+ barStyleList.currentIndexChanged.connect(self._modifier.changeStyle)
+
+ selectionModeList.currentIndexChanged.connect(self._modifier.changeSelectionMode)
+
+ themeList.currentIndexChanged.connect(self._modifier.changeTheme)
+
+ shadowQuality.currentIndexChanged.connect(self._modifier.changeShadowQuality)
+
+ self._modifier.shadowQualityChanged.connect(shadowQuality.setCurrentIndex)
+ self._barsGraph.shadowQualityChanged.connect(self._modifier.shadowQualityUpdatedByVisual)
+
+ fontSizeSlider.valueChanged.connect(self._modifier.changeFontSize)
+ fontList.currentFontChanged.connect(self._modifier.changeFont)
+
+ self._modifier.fontSizeChanged.connect(fontSizeSlider.setValue)
+ self._modifier.fontChanged.connect(fontList.setCurrentFont)
+
+ axisTitlesVisibleCB.stateChanged.connect(self._modifier.setAxisTitleVisibility)
+ axisTitlesFixedCB.stateChanged.connect(self._modifier.setAxisTitleFixed)
+ axisLabelRotationSlider.valueChanged.connect(self._modifier.changeLabelRotation)
+
+ modeWeather.toggled.connect(self._modifier.setDataModeToWeather)
+ modeCustomProxy.toggled.connect(self._modifier.setDataModeToCustom)
+ modeWeather.toggled.connect(seriesCheckBox.setEnabled)
+ modeWeather.toggled.connect(rangeList.setEnabled)
+ modeWeather.toggled.connect(axisTitlesVisibleCB.setEnabled)
+ modeWeather.toggled.connect(axisTitlesFixedCB.setEnabled)
+ modeWeather.toggled.connect(axisLabelRotationSlider.setEnabled)
+ return True
diff --git a/examples/datavisualization/graphgallery/custominputhandler.py b/examples/datavisualization/graphgallery/custominputhandler.py
new file mode 100644
index 000000000..0402be607
--- /dev/null
+++ b/examples/datavisualization/graphgallery/custominputhandler.py
@@ -0,0 +1,177 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from enum import Enum
+from math import sin, cos, degrees
+
+from PySide6.QtCore import Qt
+from PySide6.QtDataVisualization import (QAbstract3DGraph, Q3DInputHandler)
+
+
+class InputState(Enum):
+ StateNormal = 0
+ StateDraggingX = 1
+ StateDraggingZ = 2
+ StateDraggingY = 3
+
+
+class CustomInputHandler(Q3DInputHandler):
+
+ def __init__(self, graph, parent=None):
+ super().__init__(parent)
+ self._highlight = None
+ self._mousePressed = False
+ self._state = InputState.StateNormal
+ self._axisX = None
+ self._axisY = None
+ self._axisZ = None
+ self._speedModifier = 20.0
+ self._aspectRatio = 0.0
+ self._axisXMinValue = 0.0
+ self._axisXMaxValue = 0.0
+ self._axisXMinRange = 0.0
+ self._axisZMinValue = 0.0
+ self._axisZMaxValue = 0.0
+ self._axisZMinRange = 0.0
+ self._areaMinValue = 0.0
+ self._areaMaxValue = 0.0
+
+ # Connect to the item selection signal from graph
+ graph.selectedElementChanged.connect(self.handleElementSelected)
+
+ def setAspectRatio(self, ratio):
+ self._aspectRatio = ratio
+
+ def setHighlightSeries(self, series):
+ self._highlight = series
+
+ def setDragSpeedModifier(self, modifier):
+ self._speedModifier = modifier
+
+ def setLimits(self, min, max, minRange):
+ self._areaMinValue = min
+ self._areaMaxValue = max
+ self._axisXMinValue = self._areaMinValue
+ self._axisXMaxValue = self._areaMaxValue
+ self._axisZMinValue = self._areaMinValue
+ self._axisZMaxValue = self._areaMaxValue
+ self._axisXMinRange = minRange
+ self._axisZMinRange = minRange
+
+ def setAxes(self, axisX, axisY, axisZ):
+ self._axisX = axisX
+ self._axisY = axisY
+ self._axisZ = axisZ
+
+ def mousePressEvent(self, event, mousePos):
+ if Qt.LeftButton == event.button():
+ self._highlight.setVisible(False)
+ self._mousePressed = True
+ super().mousePressEvent(event, mousePos)
+
+ def wheelEvent(self, event):
+ delta = float(event.angleDelta().y())
+
+ self._axisXMinValue += delta
+ self._axisXMaxValue -= delta
+ self._axisZMinValue += delta
+ self._axisZMaxValue -= delta
+ self.checkConstraints()
+
+ y = (self._axisXMaxValue - self._axisXMinValue) * self._aspectRatio
+
+ self._axisX.setRange(self._axisXMinValue, self._axisXMaxValue)
+ self._axisY.setRange(100.0, y)
+ self._axisZ.setRange(self._axisZMinValue, self._axisZMaxValue)
+
+ def mouseMoveEvent(self, event, mousePos):
+ # Check if we're trying to drag axis label
+ if self._mousePressed and self._state != InputState.StateNormal:
+ self.setPreviousInputPos(self.inputPosition())
+ self.setInputPosition(mousePos)
+ self.handleAxisDragging()
+ else:
+ super().mouseMoveEvent(event, mousePos)
+
+ def mouseReleaseEvent(self, event, mousePos):
+ super().mouseReleaseEvent(event, mousePos)
+ self._mousePressed = False
+ self._state = InputState.StateNormal
+
+ def handleElementSelected(self, type):
+ if type == QAbstract3DGraph.ElementAxisXLabel:
+ self._state = InputState.StateDraggingX
+ elif type == QAbstract3DGraph.ElementAxisZLabel:
+ self._state = InputState.StateDraggingZ
+ else:
+ self._state = InputState.StateNormal
+
+ def handleAxisDragging(self):
+ distance = 0.0
+
+ # Get scene orientation from active camera
+ xRotation = self.scene().activeCamera().xRotation()
+
+ # Calculate directional drag multipliers based on rotation
+ xMulX = cos(degrees(xRotation))
+ xMulY = sin(degrees(xRotation))
+ zMulX = xMulY
+ zMulY = xMulX
+
+ # Get the drag amount
+ move = self.inputPosition() - self.previousInputPos()
+
+ # Adjust axes
+ if self._state == InputState.StateDraggingX:
+ distance = (move.x() * xMulX - move.y() * xMulY) * self._speedModifier
+ self._axisXMinValue -= distance
+ self._axisXMaxValue -= distance
+ if self._axisXMinValue < self._areaMinValue:
+ dist = self._axisXMaxValue - self._axisXMinValue
+ self._axisXMinValue = self._areaMinValue
+ self._axisXMaxValue = self._axisXMinValue + dist
+
+ if self._axisXMaxValue > self._areaMaxValue:
+ dist = self._axisXMaxValue - self._axisXMinValue
+ self._axisXMaxValue = self._areaMaxValue
+ self._axisXMinValue = self._axisXMaxValue - dist
+
+ self._axisX.setRange(self._axisXMinValue, self._axisXMaxValue)
+ elif self._state == InputState.StateDraggingZ:
+ distance = (move.x() * zMulX + move.y() * zMulY) * self._speedModifier
+ self._axisZMinValue += distance
+ self._axisZMaxValue += distance
+ if self._axisZMinValue < self._areaMinValue:
+ dist = self._axisZMaxValue - self._axisZMinValue
+ self._axisZMinValue = self._areaMinValue
+ self._axisZMaxValue = self._axisZMinValue + dist
+
+ if self._axisZMaxValue > self._areaMaxValue:
+ dist = self._axisZMaxValue - self._axisZMinValue
+ self._axisZMaxValue = self._areaMaxValue
+ self._axisZMinValue = self._axisZMaxValue - dist
+
+ self._axisZ.setRange(self._axisZMinValue, self._axisZMaxValue)
+
+ def checkConstraints(self):
+ if self._axisXMinValue < self._areaMinValue:
+ self._axisXMinValue = self._areaMinValue
+ if self._axisXMaxValue > self._areaMaxValue:
+ self._axisXMaxValue = self._areaMaxValue
+ # Don't allow too much zoom in
+ range = self._axisXMaxValue - self._axisXMinValue
+ if range < self._axisXMinRange:
+ adjust = (self._axisXMinRange - range) / 2.0
+ self._axisXMinValue -= adjust
+ self._axisXMaxValue += adjust
+
+ if self._axisZMinValue < self._areaMinValue:
+ self._axisZMinValue = self._areaMinValue
+ if self._axisZMaxValue > self._areaMaxValue:
+ self._axisZMaxValue = self._areaMaxValue
+ # Don't allow too much zoom in
+ range = self._axisZMaxValue - self._axisZMinValue
+ if range < self._axisZMinRange:
+ adjust = (self._axisZMinRange - range) / 2.0
+ self._axisZMinValue -= adjust
+ self._axisZMaxValue += adjust
diff --git a/examples/datavisualization/graphgallery/data/layer_1.png b/examples/datavisualization/graphgallery/data/layer_1.png
new file mode 100644
index 000000000..9138c710a
--- /dev/null
+++ b/examples/datavisualization/graphgallery/data/layer_1.png
Binary files differ
diff --git a/examples/datavisualization/graphgallery/data/layer_2.png b/examples/datavisualization/graphgallery/data/layer_2.png
new file mode 100644
index 000000000..61631ae8b
--- /dev/null
+++ b/examples/datavisualization/graphgallery/data/layer_2.png
Binary files differ
diff --git a/examples/datavisualization/graphgallery/data/layer_3.png b/examples/datavisualization/graphgallery/data/layer_3.png
new file mode 100644
index 000000000..066ffbe75
--- /dev/null
+++ b/examples/datavisualization/graphgallery/data/layer_3.png
Binary files differ
diff --git a/examples/datavisualization/graphgallery/data/license.txt b/examples/datavisualization/graphgallery/data/license.txt
new file mode 100644
index 000000000..749daf31f
--- /dev/null
+++ b/examples/datavisualization/graphgallery/data/license.txt
@@ -0,0 +1,77 @@
+License information regarding the data obtained from National Land Survey of
+Finland http://www.maanmittauslaitos.fi/en
+- topographic model from Elevation model 2 m (U4421B, U4421D, U4422A and
+ U4422C) 08/2014
+- map image extracted from Topographic map raster 1:50 000 (U442) 08/2014
+
+National Land Survey open data licence - version 1.0 - 1 May 2012
+
+1. General information
+
+The National Land Survey of Finland (hereinafter the Licensor), as the holder
+of the immaterial rights to the data, has granted on the terms mentioned below
+the right to use a copy (hereinafter data or dataset(s)) of the data (or a part
+of it).
+
+The Licensee is a natural or legal person who makes use of the data covered by
+this licence. The Licensee accepts the terms of this licence by receiving the
+dataset(s) covered by the licence.
+
+This Licence agreement does not create a co-operation or business relationship
+between the Licensee and the Licensor.
+
+2. Terms of the licence
+
+2.1. Right of use
+
+This licence grants a worldwide, free of charge and irrevocable parallel right
+of use to open data. According to the terms of the licence, data received by
+the Licensee can be freely:
+ - copied, distributed and published,
+ - modified and utilised commercially and non-commercially,
+ - inserted into other products and
+ - used as a part of a software application or service.
+
+2.2. Duties and responsibilities of the Licensee
+
+Through reasonable means suitable to the distribution medium or method which is
+used in conjunction with a product containing data or a service utilising data
+covered by this licence or while distributing data, the Licensee shall:
+ - mention the name of the Licensor, the name of the dataset(s) and the time
+ when the National Land Survey has delivered the dataset(s) (e.g.: contains
+ data from the National Land Survey of Finland Topographic Database 06/2012)
+ - provide a copy of this licence or a link to it, as well as
+ - require third parties to provide the same information when granting rights
+ to copies of dataset(s) or products and services containing such data and
+ - remove the name of the Licensor from the product or service, if required to
+ do so by the Licensor.
+
+The terms of this licence do not allow the Licensee to state in conjunction
+with the use of dataset(s) that the Licensor supports or recommends such use.
+
+2.3. Duties and responsibilities of the Licensor
+
+The Licensor shall ensure that
+ - the Licensor has the right to grant rights to the dataset(s) in accordance
+ with this licence.
+
+The data has been licensed "as is" and the Licensor
+ - shall not be held responsible for any errors or omissions in the data,
+ disclaims any warranty for the validity or up to date status of the data and
+ shall be free from liability for direct or consequential damages arising
+ from the use of data provided by the Licensor,
+ - and is not obligated to ensure the continuous availability of the data, nor
+ to announce in advance the interruption or cessation of availability, and
+ the Licensor shall be free from liability for direct or consequential
+ damages arising from any such interruption or cessation.
+
+3. Jurisdiction
+
+Finnish law shall apply to this licence.
+
+4. Changes to this licence
+
+The Licensor may at any time change the terms of the licence or apply a
+different licence to the data. The terms of this licence shall, however, still
+apply to such data that has been received prior to the change of the terms of
+the licence or the licence itself.
diff --git a/examples/datavisualization/graphgallery/data/maptexture.jpg b/examples/datavisualization/graphgallery/data/maptexture.jpg
new file mode 100644
index 000000000..ae5d66ebe
--- /dev/null
+++ b/examples/datavisualization/graphgallery/data/maptexture.jpg
Binary files differ
diff --git a/examples/datavisualization/graphgallery/data/oilrig.obj b/examples/datavisualization/graphgallery/data/oilrig.obj
new file mode 100644
index 000000000..c3b6ea570
--- /dev/null
+++ b/examples/datavisualization/graphgallery/data/oilrig.obj
@@ -0,0 +1,2322 @@
+# Blender v2.66 (sub 0) OBJ File: 'oilrig.blend'
+# www.blender.org
+v 0.057462 2.272318 -1.170324
+v 0.057461 8.181165 -0.128434
+v 0.055540 2.268930 -1.151111
+v 0.055539 8.177776 -0.109221
+v 0.049849 2.265673 -1.132637
+v 0.049849 8.174520 -0.090747
+v 0.040608 2.262671 -1.115611
+v 0.040608 8.171517 -0.073721
+v 0.028172 2.260039 -1.100687
+v 0.028172 8.168886 -0.058798
+v 0.013019 2.257880 -1.088440
+v 0.013018 8.166726 -0.046550
+v -0.004270 2.256275 -1.079339
+v -0.004271 8.165121 -0.037450
+v -0.023029 2.255287 -1.073735
+v -0.023030 8.164133 -0.031846
+v -0.042539 2.254953 -1.071843
+v -0.042539 8.163799 -0.029953
+v -0.062048 2.255287 -1.073735
+v -0.062048 8.164133 -0.031846
+v -0.080807 2.256275 -1.079339
+v -0.080808 8.165121 -0.037450
+v -0.098096 2.257880 -1.088440
+v -0.098096 8.166726 -0.046550
+v -0.113249 2.260039 -1.100687
+v -0.113250 8.168886 -0.058798
+v -0.125685 2.262671 -1.115611
+v -0.125686 8.171517 -0.073721
+v -0.134926 2.265673 -1.132637
+v -0.134927 8.174520 -0.090747
+v -0.140617 2.268930 -1.151111
+v -0.140618 8.177776 -0.109222
+v -0.142538 2.272318 -1.170324
+v -0.142539 8.181165 -0.128434
+v -0.140617 2.275706 -1.189536
+v -0.140618 8.184552 -0.147647
+v -0.134926 2.278963 -1.208011
+v -0.134927 8.187810 -0.166121
+v -0.125685 2.281965 -1.225037
+v -0.125686 8.190812 -0.183147
+v -0.113249 2.284597 -1.239960
+v -0.113250 8.193443 -0.198071
+v -0.098095 2.286757 -1.252208
+v -0.098096 8.195602 -0.210318
+v -0.080807 2.288361 -1.261308
+v -0.080807 8.197207 -0.219419
+v -0.062047 2.289349 -1.266912
+v -0.062048 8.198195 -0.225023
+v -0.042538 2.289683 -1.268804
+v -0.042539 8.198529 -0.226915
+v -0.023029 2.289349 -1.266912
+v -0.023030 8.198195 -0.225023
+v -0.004270 2.288361 -1.261308
+v -0.004271 8.197207 -0.219418
+v 0.013019 2.286757 -1.252207
+v 0.013018 8.195602 -0.210318
+v 0.028172 2.284597 -1.239960
+v 0.028172 8.193443 -0.198070
+v 0.040609 2.281965 -1.225036
+v 0.040608 8.190812 -0.183147
+v 0.049850 2.278963 -1.208010
+v 0.049849 8.187810 -0.166121
+v 0.055540 2.275706 -1.189536
+v 0.055539 8.184552 -0.147646
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vt 0.961940 0.308658
+vt 1.000000 0.500000
+vt 0.990393 0.402455
+vt 0.500000 1.000000
+vt 0.597545 0.990393
+vt 0.402456 0.990393
+vt 0.990393 0.597545
+vt 0.915735 0.222215
+vt 0.961940 0.691342
+vt 0.853553 0.146447
+vt 0.915735 0.777785
+vt 0.777785 0.084265
+vt 0.853553 0.853553
+vt 0.691342 0.038060
+vt 0.777785 0.915735
+vt 0.597545 0.009607
+vt 0.691342 0.961940
+vt 0.000000 0.500000
+vt 0.038060 0.308659
+vt 0.009607 0.402455
+vt 0.038060 0.691342
+vt 0.009607 0.597546
+vt 0.500000 0.000000
+vt 0.402455 0.009607
+vt 0.308658 0.038060
+vt 0.222215 0.084265
+vt 0.146446 0.146447
+vt 0.308659 0.961940
+vt 0.222215 0.915735
+vt 0.084265 0.222215
+vt 0.146447 0.853554
+vt 0.084266 0.777786
+vn 0.995185 -0.017020 0.096528
+vn 0.956940 -0.050408 0.285877
+vn 0.881921 -0.081857 0.464235
+vn 0.773009 -0.110162 0.624758
+vn 0.634397 -0.134231 0.761264
+vn 0.471397 -0.153144 0.868523
+vn 0.290285 -0.166171 0.942402
+vn 0.098018 -0.172812 0.980066
+vn -0.098022 -0.172812 0.980065
+vn -0.290285 -0.166171 0.942402
+vn -0.471392 -0.153145 0.868526
+vn -0.634399 -0.134231 0.761262
+vn -0.773009 -0.110162 0.624757
+vn -0.881923 -0.081857 0.464231
+vn -0.956941 -0.050407 0.285873
+vn -0.995185 -0.017021 0.096528
+vn -0.995185 0.017021 -0.096529
+vn -0.956940 0.050407 -0.285875
+vn -0.881920 0.081858 -0.464238
+vn -0.773015 0.110160 -0.624751
+vn -0.634391 0.134232 -0.761268
+vn -0.471394 0.153144 -0.868524
+vn -0.290288 0.166171 -0.942401
+vn -0.098006 0.172812 -0.980067
+vn 0.098019 0.172812 -0.980065
+vn 0.290285 0.166171 -0.942402
+vn 0.471401 0.153144 -0.868521
+vn 0.634393 0.134232 -0.761267
+vn 0.773011 0.110161 -0.624755
+vn 0.881922 0.081857 -0.464233
+vn -0.000000 0.984796 0.173713
+vn 0.995185 0.017020 -0.096527
+vn 0.956941 0.050407 -0.285872
+vn -0.000011 -0.984808 -0.173648
+vn 0.995185 -0.017020 0.096529
+vn 0.956940 -0.050407 0.285875
+vn 0.881920 -0.081858 0.464237
+vn 0.773011 -0.110161 0.624755
+vn 0.634396 -0.134231 0.761265
+vn 0.471389 -0.153145 0.868527
+vn 0.290287 -0.166171 0.942402
+vn 0.098019 -0.172812 0.980065
+vn -0.098021 -0.172812 0.980065
+vn -0.290282 -0.166171 0.942403
+vn -0.471402 -0.153144 0.868520
+vn -0.634395 -0.134232 0.761265
+vn -0.773010 -0.110161 0.624756
+vn -0.881922 -0.081857 0.464234
+vn -0.956940 -0.050408 0.285875
+vn -0.995185 -0.017020 0.096527
+vn -0.956940 0.050408 -0.285876
+vn -0.881921 0.081857 -0.464236
+vn -0.773009 0.110162 -0.624757
+vn -0.634391 0.134232 -0.761269
+vn -0.471398 0.153144 -0.868522
+vn -0.290282 0.166171 -0.942403
+vn -0.098016 0.172812 -0.980066
+vn 0.098018 0.172812 -0.980065
+vn 0.290287 0.166171 -0.942402
+vn 0.471399 0.153144 -0.868522
+vn 0.773014 0.110161 -0.624751
+vn 0.881921 0.081857 -0.464236
+vn -0.000000 0.984812 0.173622
+vn -0.000000 0.984812 0.173623
+vn -0.000000 0.984801 0.173685
+vn -0.000000 0.984814 0.173615
+vn -0.000000 0.984810 0.173634
+vn -0.000000 0.984808 0.173649
+vn -0.000000 0.984806 0.173660
+vn -0.000043 0.984788 0.173763
+vn -0.000000 0.984797 0.173710
+vn -0.000000 0.984805 0.173661
+vn -0.000000 0.984810 0.173635
+vn -0.000000 0.984810 0.173637
+vn -0.000000 0.984802 0.173683
+vn -0.000000 0.984814 0.173611
+vn -0.000000 0.984800 0.173689
+vn -0.000000 0.984800 0.173690
+vn -0.000000 0.984801 0.173686
+vn 0.000005 0.984810 0.173637
+vn 0.956941 0.050407 -0.285873
+vn -0.000000 -0.984818 -0.173587
+vn -0.000007 -0.984807 -0.173654
+vn -0.000000 -0.984808 -0.173648
+vn -0.000027 -0.984801 -0.173685
+vn -0.000004 -0.984807 -0.173652
+vn -0.000010 -0.984800 -0.173693
+vn -0.000020 -0.984817 -0.173596
+vn -0.000013 -0.984810 -0.173638
+vn -0.000001 -0.984807 -0.173650
+vn -0.000005 -0.984808 -0.173646
+vn -0.000002 -0.984808 -0.173648
+vn 0.000002 -0.984808 -0.173649
+vn 0.000001 -0.984808 -0.173649
+vn -0.000011 -0.984809 -0.173642
+vn -0.000004 -0.984808 -0.173646
+vn -0.000001 -0.984808 -0.173648
+vn -0.000002 -0.984808 -0.173649
+vn -0.000006 -0.984808 -0.173649
+vn 0.000004 -0.984808 -0.173648
+vn 0.000000 -0.984808 -0.173649
+vn -0.000004 -0.984807 -0.173650
+vn 0.000005 -0.984808 -0.173646
+vn 0.000003 -0.984808 -0.173647
+vn 0.000008 -0.984805 -0.173663
+s off
+f 1/1/1 2/2/1 4/3/1
+f 3/1/2 4/2/2 6/3/2
+f 5/1/3 6/2/3 8/3/3
+f 7/1/4 8/2/4 10/3/4
+f 9/1/5 10/2/5 12/3/5
+f 11/1/6 12/2/6 14/3/6
+f 13/1/7 14/2/7 16/3/7
+f 15/1/8 16/2/8 18/3/8
+f 17/1/9 18/2/9 19/4/9
+f 19/1/10 20/2/10 21/4/10
+f 21/1/11 22/2/11 23/4/11
+f 23/1/12 24/2/12 25/4/12
+f 25/1/13 26/2/13 27/4/13
+f 27/1/14 28/2/14 29/4/14
+f 29/1/15 30/2/15 31/4/15
+f 31/1/16 32/2/16 33/4/16
+f 33/1/17 34/2/17 35/4/17
+f 35/1/18 36/2/18 37/4/18
+f 37/1/19 38/2/19 39/4/19
+f 39/1/20 40/2/20 41/4/20
+f 41/1/21 42/2/21 43/4/21
+f 43/1/22 44/2/22 45/4/22
+f 45/1/23 46/2/23 47/4/23
+f 47/1/24 48/2/24 49/4/24
+f 49/1/25 50/2/25 52/3/25
+f 51/1/26 52/2/26 54/3/26
+f 53/1/27 54/2/27 56/3/27
+f 55/1/28 56/2/28 58/3/28
+f 57/1/29 58/2/29 60/3/29
+f 59/1/30 60/2/30 62/3/30
+f 48/5/31 52/6/31 50/7/31
+f 63/1/32 64/2/32 2/3/32
+f 61/1/33 62/2/33 64/3/33
+f 1/8/34 3/9/34 63/10/34
+f 3/4/35 1/1/35 4/3/35
+f 5/4/36 3/1/36 6/3/36
+f 7/4/37 5/1/37 8/3/37
+f 9/4/38 7/1/38 10/3/38
+f 11/4/39 9/1/39 12/3/39
+f 13/4/40 11/1/40 14/3/40
+f 15/4/41 13/1/41 16/3/41
+f 17/4/42 15/1/42 18/3/42
+f 18/2/43 20/3/43 19/4/43
+f 20/2/44 22/3/44 21/4/44
+f 22/2/45 24/3/45 23/4/45
+f 24/2/46 26/3/46 25/4/46
+f 26/2/47 28/3/47 27/4/47
+f 28/2/48 30/3/48 29/4/48
+f 30/2/49 32/3/49 31/4/49
+f 32/2/50 34/3/50 33/4/50
+f 34/2/17 36/3/17 35/4/17
+f 36/2/51 38/3/51 37/4/51
+f 38/2/52 40/3/52 39/4/52
+f 40/2/53 42/3/53 41/4/53
+f 42/2/54 44/3/54 43/4/54
+f 44/2/55 46/3/55 45/4/55
+f 46/2/56 48/3/56 47/4/56
+f 48/2/57 50/3/57 49/4/57
+f 51/4/58 49/1/58 52/3/58
+f 53/4/59 51/1/59 54/3/59
+f 55/4/60 53/1/60 56/3/60
+f 57/4/28 55/1/28 58/3/28
+f 59/4/61 57/1/61 60/3/61
+f 61/4/62 59/1/62 62/3/62
+f 48/5/63 54/11/63 52/6/63
+f 46/12/64 54/11/64 48/5/64
+f 46/12/65 56/13/65 54/11/65
+f 44/14/65 56/13/65 46/12/65
+f 44/14/66 58/15/66 56/13/66
+f 42/16/66 58/15/66 44/14/66
+f 42/16/67 60/17/67 58/15/67
+f 40/18/67 60/17/67 42/16/67
+f 40/18/68 62/19/68 60/17/68
+f 38/20/68 62/19/68 40/18/68
+f 38/20/69 64/21/69 62/19/69
+f 20/22/70 24/23/70 22/24/70
+f 16/25/71 20/22/71 18/26/71
+f 16/25/72 24/23/72 20/22/72
+f 36/27/69 64/21/69 38/20/69
+f 34/28/73 64/21/73 36/27/73
+f 2/9/74 64/21/74 34/28/74
+f 4/8/75 2/9/75 34/28/75
+f 4/8/75 34/28/75 32/29/75
+f 6/10/76 4/8/76 32/29/76
+f 6/10/76 32/29/76 30/30/76
+f 6/10/68 30/30/68 28/31/68
+f 8/32/68 6/10/68 28/31/68
+f 10/33/73 8/32/73 28/31/73
+f 10/33/67 28/31/67 26/34/67
+f 12/35/77 10/33/77 26/34/77
+f 12/35/78 26/34/78 24/23/78
+f 14/36/79 12/35/79 24/23/79
+f 16/25/80 14/36/80 24/23/80
+f 1/4/32 63/1/32 2/3/32
+f 63/4/81 61/1/81 64/3/81
+f 19/7/82 15/11/82 17/6/82
+f 41/31/83 37/29/83 39/30/83
+f 3/9/84 5/21/84 63/10/84
+f 45/23/85 41/31/85 43/34/85
+f 45/23/86 37/29/86 41/31/86
+f 49/22/87 45/23/87 47/24/87
+f 49/22/84 37/29/84 45/23/84
+f 49/22/84 35/28/84 37/29/84
+f 49/22/84 33/27/84 35/28/84
+f 49/22/84 31/20/84 33/27/84
+f 55/36/88 51/26/88 53/25/88
+f 59/33/89 55/36/89 57/35/89
+f 61/32/90 55/36/90 59/33/90
+f 63/10/91 55/36/91 61/32/91
+f 63/10/92 5/21/92 55/36/92
+f 5/21/93 7/19/93 55/36/93
+f 7/19/94 9/17/94 55/36/94
+f 29/18/95 25/14/95 27/16/95
+f 31/20/96 25/14/96 29/18/96
+f 49/22/97 25/14/97 31/20/97
+f 49/22/98 23/12/98 25/14/98
+f 9/17/93 11/15/93 55/36/93
+f 11/15/99 13/13/99 55/36/99
+f 13/13/100 15/11/100 55/36/100
+f 15/11/101 19/7/101 55/36/101
+f 19/7/102 21/5/102 55/36/102
+f 21/5/103 23/12/103 55/36/103
+f 23/12/104 49/22/104 55/36/104
+f 49/22/105 51/26/105 55/36/105
+v 0.053672 2.252534 1.125439
+v 0.053673 8.161380 0.083549
+v 0.051751 2.255921 1.144652
+v 0.051751 8.164768 0.102762
+v 0.046060 2.259179 1.163126
+v 0.046061 8.168025 0.121236
+v 0.036819 2.262181 1.180152
+v 0.036820 8.171027 0.138262
+v 0.024383 2.264812 1.195075
+v 0.024384 8.173658 0.153186
+v 0.009229 2.266972 1.207323
+v 0.009230 8.175818 0.165433
+v -0.008059 2.268577 1.216423
+v -0.008059 8.177423 0.174534
+v -0.026819 2.269565 1.222028
+v -0.026818 8.178411 0.180138
+v -0.046328 2.269898 1.223920
+v -0.046327 8.178745 0.182030
+v -0.065837 2.269565 1.222027
+v -0.065836 8.178411 0.180138
+v -0.084596 2.268577 1.216423
+v -0.084595 8.177423 0.174534
+v -0.101885 2.266972 1.207323
+v -0.101884 8.175818 0.165433
+v -0.117038 2.264812 1.195075
+v -0.117038 8.173658 0.153186
+v -0.129475 2.262181 1.180152
+v -0.129474 8.171027 0.138262
+v -0.138716 2.259179 1.163126
+v -0.138715 8.168025 0.121236
+v -0.144406 2.255921 1.144651
+v -0.144406 8.164768 0.102762
+v -0.146328 2.252534 1.125439
+v -0.146327 8.161380 0.083549
+v -0.144406 2.249146 1.106226
+v -0.144406 8.157992 0.064337
+v -0.138716 2.245888 1.087752
+v -0.138715 8.154735 0.045862
+v -0.129475 2.242886 1.070726
+v -0.129474 8.151732 0.028836
+v -0.117038 2.240255 1.055802
+v -0.117038 8.149101 0.013913
+v -0.101885 2.238095 1.043555
+v -0.101884 8.146942 0.001666
+v -0.084596 2.236491 1.034454
+v -0.084595 8.145337 -0.007435
+v -0.065837 2.235502 1.028850
+v -0.065836 8.144349 -0.013039
+v -0.046328 2.235169 1.026958
+v -0.046327 8.144015 -0.014931
+v -0.026819 2.235502 1.028850
+v -0.026818 8.144349 -0.013039
+v -0.008059 2.236491 1.034455
+v -0.008059 8.145337 -0.007435
+v 0.009229 2.238095 1.043555
+v 0.009230 8.146942 0.001666
+v 0.024383 2.240255 1.055803
+v 0.024384 8.149101 0.013913
+v 0.036819 2.242886 1.070726
+v 0.036820 8.151732 0.028837
+v 0.046060 2.245888 1.087752
+v 0.046061 8.154735 0.045863
+v 0.051751 2.249146 1.106226
+v 0.051752 8.157992 0.064337
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vt 0.500000 1.000000
+vt 0.597545 0.990393
+vt 0.402456 0.990393
+vt 0.691342 0.961940
+vt 0.777785 0.915735
+vt 0.308659 0.961940
+vt 0.222215 0.915735
+vt 0.853553 0.853553
+vt 0.915735 0.777785
+vt 0.961940 0.691342
+vt 0.990393 0.597545
+vt 0.990393 0.402455
+vt 1.000000 0.500000
+vt 0.853553 0.146447
+vt 0.961940 0.308658
+vt 0.915735 0.222215
+vt 0.691342 0.038060
+vt 0.777785 0.084265
+vt 0.597545 0.009607
+vt 0.500000 0.000000
+vt 0.146447 0.853554
+vt 0.084266 0.777786
+vt 0.038060 0.691342
+vt 0.308658 0.038060
+vt 0.402455 0.009607
+vt 0.146446 0.146447
+vt 0.222215 0.084265
+vt 0.084265 0.222215
+vt 0.038060 0.308659
+vt 0.009607 0.402455
+vt 0.009607 0.597546
+vt 0.000000 0.500000
+vn 0.995185 0.017020 0.096528
+vn 0.956940 0.050408 0.285877
+vn 0.881921 0.081857 0.464236
+vn 0.773010 0.110161 0.624756
+vn 0.634396 0.134232 0.761265
+vn 0.471397 0.153144 0.868523
+vn 0.290283 0.166171 0.942403
+vn 0.098018 0.172812 0.980066
+vn -0.098018 0.172812 0.980066
+vn -0.290285 0.166171 0.942402
+vn -0.471398 0.153144 0.868522
+vn -0.634392 0.134232 0.761268
+vn -0.773007 0.110162 0.624759
+vn -0.881923 0.081857 0.464231
+vn -0.956941 0.050407 0.285874
+vn -0.995185 0.017021 0.096528
+vn -0.995185 -0.017021 -0.096529
+vn -0.956940 -0.050408 -0.285877
+vn -0.881921 -0.081857 -0.464236
+vn -0.773008 -0.110162 -0.624758
+vn -0.634391 -0.134232 -0.761269
+vn -0.471388 -0.153145 -0.868528
+vn -0.290288 -0.166171 -0.942401
+vn -0.098006 -0.172812 -0.980067
+vn 0.098021 -0.172812 -0.980065
+vn 0.290285 -0.166171 -0.942402
+vn 0.471402 -0.153144 -0.868520
+vn 0.634392 -0.134232 -0.761267
+vn 0.773010 -0.110161 -0.624755
+vn 0.881922 -0.081857 -0.464233
+vn -0.000356 0.984796 -0.173717
+vn 0.995185 -0.017020 -0.096527
+vn 0.956941 -0.050407 -0.285872
+vn -0.000005 -0.984808 0.173646
+vn 0.995185 0.017020 0.096529
+vn 0.956940 0.050407 0.285875
+vn 0.881920 0.081858 0.464237
+vn 0.773011 0.110161 0.624755
+vn 0.634396 0.134231 0.761264
+vn 0.471389 0.153145 0.868527
+vn 0.290292 0.166171 0.942400
+vn 0.098013 0.172812 0.980066
+vn -0.098019 0.172812 0.980065
+vn -0.290283 0.166171 0.942403
+vn -0.471400 0.153144 0.868521
+vn -0.634396 0.134232 0.761264
+vn -0.773010 0.110161 0.624756
+vn -0.881922 0.081857 0.464234
+vn -0.956940 0.050408 0.285876
+vn -0.995185 0.017020 0.096526
+vn -0.995185 -0.017021 -0.096530
+vn -0.956940 -0.050407 -0.285875
+vn -0.773009 -0.110161 -0.624757
+vn -0.634390 -0.134232 -0.761269
+vn -0.471399 -0.153144 -0.868522
+vn -0.290282 -0.166171 -0.942403
+vn -0.098018 -0.172812 -0.980066
+vn 0.098018 -0.172812 -0.980065
+vn 0.290287 -0.166171 -0.942402
+vn 0.471399 -0.153144 -0.868522
+vn 0.634393 -0.134232 -0.761267
+vn 0.773014 -0.110161 -0.624751
+vn 0.881921 -0.081857 -0.464236
+vn -0.000114 0.984812 -0.173626
+vn -0.000002 0.984808 -0.173648
+vn -0.000054 0.984802 -0.173678
+vn -0.000008 0.984808 -0.173648
+vn -0.000004 0.984808 -0.173647
+vn -0.000107 0.984836 -0.173487
+vn -0.000015 0.984812 -0.173622
+vn -0.000013 0.984820 -0.173580
+vn -0.000001 0.984809 -0.173639
+vn -0.000044 0.984787 -0.173766
+vn -0.000047 0.984804 -0.173672
+vn -0.000051 0.984803 -0.173676
+vn -0.000050 0.984803 -0.173675
+vn -0.000006 0.984799 -0.173697
+vn -0.000037 0.984791 -0.173743
+vn -0.000244 0.984806 -0.173659
+vn -0.000025 0.984806 -0.173659
+vn -0.000168 0.984823 -0.173560
+vn -0.000013 0.984812 -0.173624
+vn -0.000088 0.984819 -0.173584
+vn -0.000036 0.984813 -0.173618
+vn 0.000016 0.984808 -0.173645
+vn 0.000005 0.984808 -0.173650
+vn 0.000006 0.984807 -0.173650
+vn 0.000005 0.984808 -0.173649
+vn 0.000002 0.984808 -0.173648
+vn 0.000003 0.984807 -0.173650
+vn 0.000005 0.984804 -0.173667
+vn 0.956941 -0.050407 -0.285873
+vn -0.000005 -0.984808 0.173649
+vn -0.000001 -0.984818 0.173592
+vn -0.000000 -0.984808 0.173648
+vn -0.000006 -0.984808 0.173646
+vn -0.000001 -0.984808 0.173648
+vn -0.000002 -0.984808 0.173648
+vn -0.000001 -0.984806 0.173661
+vn -0.000000 -0.984805 0.173663
+vn -0.000000 -0.984810 0.173635
+vn -0.000000 -0.984810 0.173634
+vn -0.000000 -0.984807 0.173653
+vn -0.000000 -0.984807 0.173650
+vn -0.000000 -0.984808 0.173647
+vn 0.000000 -0.984807 0.173651
+vn -0.000000 -0.984807 0.173649
+vn -0.000000 -0.984810 0.173637
+vn 0.000000 -0.984806 0.173659
+vn -0.000001 -0.984805 0.173664
+s off
+f 65/37/106 66/38/106 68/39/106
+f 67/37/107 68/38/107 70/39/107
+f 69/37/108 70/38/108 72/39/108
+f 71/37/109 72/38/109 74/39/109
+f 73/37/110 74/38/110 76/39/110
+f 75/37/111 76/38/111 78/39/111
+f 77/37/112 78/38/112 80/39/112
+f 79/37/113 80/38/113 82/39/113
+f 81/37/114 82/38/114 83/40/114
+f 83/37/115 84/38/115 85/40/115
+f 85/37/116 86/38/116 87/40/116
+f 87/37/117 88/38/117 89/40/117
+f 89/37/118 90/38/118 91/40/118
+f 91/37/119 92/38/119 93/40/119
+f 93/37/120 94/38/120 95/40/120
+f 95/37/121 96/38/121 97/40/121
+f 97/37/122 98/38/122 99/40/122
+f 99/37/123 100/38/123 101/40/123
+f 101/37/124 102/38/124 103/40/124
+f 103/37/125 104/38/125 105/40/125
+f 105/37/126 106/38/126 107/40/126
+f 107/37/127 108/38/127 109/40/127
+f 109/37/128 110/38/128 111/40/128
+f 111/37/129 112/38/129 113/40/129
+f 113/37/130 114/38/130 116/39/130
+f 115/37/131 116/38/131 118/39/131
+f 117/37/132 118/38/132 120/39/132
+f 119/37/133 120/38/133 122/39/133
+f 121/37/134 122/38/134 124/39/134
+f 123/37/135 124/38/135 126/39/135
+f 68/41/136 66/42/136 70/43/136
+f 127/37/137 128/38/137 66/39/137
+f 125/37/138 126/38/138 128/39/138
+f 65/41/139 67/42/139 69/44/139
+f 67/40/140 65/37/140 68/39/140
+f 69/40/141 67/37/141 70/39/141
+f 71/40/142 69/37/142 72/39/142
+f 73/40/143 71/37/143 74/39/143
+f 75/40/144 73/37/144 76/39/144
+f 77/40/145 75/37/145 78/39/145
+f 79/40/146 77/37/146 80/39/146
+f 81/40/147 79/37/147 82/39/147
+f 82/38/148 84/39/148 83/40/148
+f 84/38/149 86/39/149 85/40/149
+f 86/38/150 88/39/150 87/40/150
+f 88/38/151 90/39/151 89/40/151
+f 90/38/152 92/39/152 91/40/152
+f 92/38/153 94/39/153 93/40/153
+f 94/38/154 96/39/154 95/40/154
+f 96/38/155 98/39/155 97/40/155
+f 98/38/156 100/39/156 99/40/156
+f 100/38/157 102/39/157 101/40/157
+f 102/38/124 104/39/124 103/40/124
+f 104/38/158 106/39/158 105/40/158
+f 106/38/159 108/39/159 107/40/159
+f 108/38/160 110/39/160 109/40/160
+f 110/38/161 112/39/161 111/40/161
+f 112/38/162 114/39/162 113/40/162
+f 115/40/163 113/37/163 116/39/163
+f 117/40/164 115/37/164 118/39/164
+f 119/40/165 117/37/165 120/39/165
+f 121/40/166 119/37/166 122/39/166
+f 123/40/167 121/37/167 124/39/167
+f 125/40/168 123/37/168 126/39/168
+f 66/42/169 128/44/169 126/45/169
+f 70/43/170 66/42/170 126/45/170
+f 72/46/171 70/43/171 74/47/171
+f 70/43/172 126/45/172 74/47/172
+f 126/45/173 124/48/173 74/47/173
+f 122/49/174 120/50/174 118/51/174
+f 124/48/175 122/49/175 118/51/175
+f 114/52/176 118/51/176 116/53/176
+f 124/48/177 118/51/177 114/52/177
+f 108/54/178 112/55/178 110/56/178
+f 104/57/179 108/54/179 106/58/179
+f 102/59/180 108/54/180 104/57/180
+f 100/60/181 108/54/181 102/59/181
+f 76/61/182 74/47/182 78/62/182
+f 78/62/183 74/47/183 80/63/183
+f 96/64/184 100/60/184 98/65/184
+f 96/64/185 108/54/185 100/60/185
+f 92/66/186 96/64/186 94/67/186
+f 90/68/187 96/64/187 92/66/187
+f 88/69/188 96/64/188 90/68/188
+f 86/70/189 96/64/189 88/69/189
+f 82/71/176 86/70/176 84/72/176
+f 74/47/190 124/48/190 80/63/190
+f 124/48/191 114/52/191 80/63/191
+f 114/52/192 112/55/192 80/63/192
+f 112/55/193 108/54/193 80/63/193
+f 108/54/194 96/64/194 80/63/194
+f 96/64/195 86/70/195 80/63/195
+f 86/70/196 82/71/196 80/63/196
+f 65/40/137 127/37/137 66/39/137
+f 127/40/197 125/37/197 128/39/197
+f 127/43/198 65/41/198 125/46/198
+f 83/52/199 79/51/199 81/53/199
+f 97/60/200 93/57/200 95/59/200
+f 99/65/200 93/57/200 97/60/200
+f 103/67/201 99/65/201 101/64/201
+f 103/67/202 93/57/202 99/65/202
+f 105/66/203 93/57/203 103/67/203
+f 115/71/199 111/70/199 113/72/199
+f 115/71/204 109/69/204 111/70/204
+f 117/63/205 109/69/205 115/71/205
+f 117/63/206 107/68/206 109/69/206
+f 119/62/207 107/68/207 117/63/207
+f 119/62/208 105/66/208 107/68/208
+f 121/61/208 105/66/208 119/62/208
+f 123/47/200 105/66/200 121/61/200
+f 125/46/209 105/66/209 123/47/209
+f 125/46/200 65/41/200 105/66/200
+f 105/66/200 65/41/200 93/57/200
+f 65/41/210 69/44/210 93/57/210
+f 69/44/209 71/45/209 93/57/209
+f 93/57/200 71/45/200 91/58/200
+f 91/58/211 71/45/211 89/54/211
+f 71/45/212 73/48/212 89/54/212
+f 73/48/211 75/49/211 89/54/211
+f 89/54/208 75/49/208 87/56/208
+f 75/49/213 77/50/213 87/56/213
+f 87/56/207 77/50/207 85/55/207
+f 77/50/214 79/51/214 85/55/214
+f 79/51/215 83/52/215 85/55/215
+v 1.116865 2.257815 -0.125221
+v 0.074976 8.166661 -0.125221
+v 1.136078 2.261203 -0.123300
+v 0.094188 8.170050 -0.123300
+v 1.154552 2.264460 -0.117609
+v 0.112663 8.173306 -0.117609
+v 1.171578 2.267462 -0.108368
+v 0.129689 8.176309 -0.108368
+v 1.186502 2.270094 -0.095932
+v 0.144612 8.178940 -0.095932
+v 1.198749 2.272254 -0.080778
+v 0.156859 8.181100 -0.080778
+v 1.207850 2.273858 -0.063490
+v 0.165960 8.182705 -0.063490
+v 1.213454 2.274846 -0.044730
+v 0.171564 8.183693 -0.044730
+v 1.215346 2.275180 -0.025221
+v 0.173456 8.184027 -0.025221
+v 1.213454 2.274846 -0.005712
+v 0.171564 8.183693 -0.005712
+v 1.207850 2.273858 0.013047
+v 0.165960 8.182705 0.013047
+v 1.198749 2.272254 0.030336
+v 0.156859 8.181100 0.030336
+v 1.186502 2.270094 0.045489
+v 0.144612 8.178940 0.045489
+v 1.171578 2.267462 0.057926
+v 0.129689 8.176309 0.057926
+v 1.154552 2.264460 0.067167
+v 0.112663 8.173306 0.067167
+v 1.136078 2.261203 0.072857
+v 0.094188 8.170050 0.072857
+v 1.116865 2.257815 0.074779
+v 0.074976 8.166661 0.074779
+v 1.097653 2.254427 0.072857
+v 0.055763 8.163274 0.072857
+v 1.079178 2.251170 0.067167
+v 0.037289 8.160016 0.067167
+v 1.062152 2.248168 0.057926
+v 0.020263 8.157014 0.057926
+v 1.047229 2.245536 0.045489
+v 0.005339 8.154383 0.045489
+v 1.034981 2.243377 0.030336
+v -0.006908 8.152224 0.030336
+v 1.025881 2.241772 0.013047
+v -0.016009 8.150619 0.013047
+v 1.020277 2.240784 -0.005712
+v -0.021613 8.149631 -0.005712
+v 1.018384 2.240450 -0.025221
+v -0.023505 8.149297 -0.025221
+v 1.020277 2.240784 -0.044730
+v -0.021613 8.149631 -0.044730
+v 1.025881 2.241772 -0.063490
+v -0.016009 8.150619 -0.063490
+v 1.034981 2.243377 -0.080778
+v -0.006908 8.152224 -0.080778
+v 1.047229 2.245536 -0.095932
+v 0.005339 8.154383 -0.095932
+v 1.062152 2.248168 -0.108368
+v 0.020263 8.157014 -0.108368
+v 1.079178 2.251170 -0.117609
+v 0.037289 8.160016 -0.117609
+v 1.097653 2.254427 -0.123300
+v 0.055763 8.163274 -0.123300
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vt 0.500000 1.000000
+vt 0.597545 0.990393
+vt 0.402456 0.990393
+vt 0.691342 0.961940
+vt 0.777785 0.915735
+vt 0.853553 0.853553
+vt 0.915735 0.777785
+vt 0.961940 0.691342
+vt 0.990393 0.597545
+vt 1.000000 0.500000
+vt 0.990393 0.402455
+vt 0.961940 0.308658
+vt 0.915735 0.222215
+vt 0.853553 0.146447
+vt 0.777785 0.084265
+vt 0.691342 0.038060
+vt 0.597545 0.009607
+vt 0.500000 0.000000
+vt 0.000000 0.500000
+vt 0.038060 0.308659
+vt 0.009607 0.402455
+vt 0.146447 0.853554
+vt 0.038060 0.691342
+vt 0.084266 0.777786
+vt 0.308659 0.961940
+vt 0.222215 0.915735
+vt 0.402455 0.009607
+vt 0.308658 0.038060
+vt 0.222215 0.084265
+vt 0.146446 0.146447
+vt 0.009607 0.597546
+vt 0.084265 0.222215
+vn 0.096528 0.017020 -0.995185
+vn 0.285876 0.050408 -0.956940
+vn 0.464235 0.081857 -0.881921
+vn 0.624757 0.110162 -0.773009
+vn 0.761264 0.134232 -0.634396
+vn 0.868521 0.153144 -0.471400
+vn 0.942403 0.166171 -0.290283
+vn 0.980066 0.172812 -0.098018
+vn 0.980066 0.172812 0.098018
+vn 0.942403 0.166171 0.290283
+vn 0.868521 0.153144 0.471399
+vn 0.761264 0.134232 0.634396
+vn 0.624757 0.110162 0.773009
+vn 0.464235 0.081857 0.881921
+vn 0.285876 0.050408 0.956940
+vn 0.096527 0.017020 0.995185
+vn -0.096528 -0.017021 0.995185
+vn -0.285875 -0.050407 0.956940
+vn -0.464235 -0.081857 0.881921
+vn -0.624754 -0.110161 0.773012
+vn -0.761268 -0.134232 0.634391
+vn -0.868524 -0.153144 0.471394
+vn -0.942401 -0.166171 0.290288
+vn -0.980066 -0.172812 0.098010
+vn -0.980065 -0.172812 -0.098018
+vn -0.942402 -0.166171 -0.290285
+vn -0.868521 -0.153144 -0.471401
+vn -0.761266 -0.134232 -0.634394
+vn -0.624751 -0.110161 -0.773014
+vn -0.464236 -0.081857 -0.881921
+vn -0.173717 0.984796 0.000356
+vn -0.096527 -0.017020 -0.995185
+vn -0.285873 -0.050407 -0.956941
+vn 0.173648 -0.984808 -0.000011
+vn 0.285874 0.050407 -0.956940
+vn 0.464237 0.081858 -0.881920
+vn 0.624752 0.110161 -0.773013
+vn 0.761267 0.134232 -0.634393
+vn 0.868524 0.153144 -0.471394
+vn 0.942402 0.166171 -0.290287
+vn 0.980065 0.172812 -0.098019
+vn 0.980065 0.172812 0.098019
+vn 0.942402 0.166171 0.290287
+vn 0.868524 0.153144 0.471394
+vn 0.761267 0.134232 0.634393
+vn 0.624752 0.110161 0.773013
+vn 0.464237 0.081858 0.881920
+vn 0.285874 0.050407 0.956940
+vn -0.096529 -0.017021 0.995185
+vn -0.285874 -0.050407 0.956940
+vn -0.624758 -0.110162 0.773008
+vn -0.761268 -0.134232 0.634392
+vn -0.868523 -0.153144 0.471397
+vn -0.942402 -0.166171 0.290284
+vn -0.980066 -0.172812 0.098018
+vn -0.980065 -0.172812 -0.098021
+vn -0.868521 -0.153144 -0.471400
+vn -0.761267 -0.134232 -0.634392
+vn -0.624756 -0.110161 -0.773010
+vn -0.464234 -0.081857 -0.881922
+vn -0.173640 0.984809 -0.000036
+vn -0.173648 0.984808 0.000040
+vn -0.173648 0.984808 0.000002
+vn -0.173650 0.984807 -0.000020
+vn -0.173652 0.984807 -0.000031
+vn -0.173635 0.984810 0.000027
+vn -0.173649 0.984808 -0.000009
+vn -0.173641 0.984809 0.000007
+vn -0.173650 0.984807 -0.000006
+vn -0.173640 0.984809 0.000006
+vn -0.173660 0.984806 -0.000014
+vn -0.173675 0.984803 0.000050
+vn -0.173675 0.984803 0.000049
+vn -0.173767 0.984787 -0.000044
+vn -0.173767 0.984787 0.000044
+vn -0.173642 0.984809 0.000000
+vn -0.173677 0.984803 0.000052
+vn -0.173717 0.984796 -0.000357
+vn -0.173646 0.984808 0.000005
+vn -0.173645 0.984808 0.000007
+vn -0.173703 0.984798 -0.000011
+vn -0.173684 0.984802 -0.000003
+vn -0.173667 0.984805 0.000002
+vn -0.173671 0.984804 -0.000015
+vn -0.173656 0.984806 -0.000026
+vn -0.173637 0.984810 0.000008
+vn -0.173643 0.984809 0.000005
+vn -0.096528 -0.017020 -0.995185
+vn -0.285872 -0.050407 -0.956941
+vn 0.173648 -0.984808 -0.000000
+vn 0.173647 -0.984808 0.000006
+vn 0.173647 -0.984808 0.000005
+vn 0.173652 -0.984807 -0.000009
+vn 0.173645 -0.984808 0.000005
+vn 0.173653 -0.984807 -0.000007
+vn 0.173643 -0.984809 0.000006
+vn 0.173652 -0.984807 -0.000003
+vn 0.173643 -0.984809 0.000004
+vn 0.173651 -0.984807 -0.000002
+vn 0.173650 -0.984807 -0.000001
+vn 0.173647 -0.984808 0.000000
+vn 0.173649 -0.984808 0.000000
+vn 0.173652 -0.984807 0.000001
+vn 0.173642 -0.984809 -0.000003
+vn 0.173653 -0.984807 0.000003
+vn 0.173642 -0.984809 -0.000004
+vn 0.173655 -0.984806 0.000007
+vn 0.173641 -0.984809 -0.000008
+vn 0.173658 -0.984806 0.000013
+vn 0.173645 -0.984808 -0.000007
+vn 0.173654 -0.984807 0.000007
+vn 0.173646 -0.984808 -0.000004
+s off
+f 129/73/216 130/74/216 132/75/216
+f 131/73/217 132/74/217 134/75/217
+f 133/73/218 134/74/218 136/75/218
+f 135/73/219 136/74/219 138/75/219
+f 137/73/220 138/74/220 140/75/220
+f 139/73/221 140/74/221 142/75/221
+f 141/73/222 142/74/222 144/75/222
+f 143/73/223 144/74/223 146/75/223
+f 145/73/224 146/74/224 148/75/224
+f 147/73/225 148/74/225 150/75/225
+f 149/73/226 150/74/226 152/75/226
+f 151/73/227 152/74/227 154/75/227
+f 153/73/228 154/74/228 156/75/228
+f 155/73/229 156/74/229 158/75/229
+f 157/73/230 158/74/230 160/75/230
+f 159/73/231 160/74/231 162/75/231
+f 161/73/232 162/74/232 163/76/232
+f 163/73/233 164/74/233 165/76/233
+f 165/73/234 166/74/234 167/76/234
+f 167/73/235 168/74/235 169/76/235
+f 169/73/236 170/74/236 171/76/236
+f 171/73/237 172/74/237 173/76/237
+f 173/73/238 174/74/238 175/76/238
+f 175/73/239 176/74/239 177/76/239
+f 177/73/240 178/74/240 179/76/240
+f 179/73/241 180/74/241 181/76/241
+f 181/73/242 182/74/242 183/76/242
+f 183/73/243 184/74/243 185/76/243
+f 185/73/244 186/74/244 187/76/244
+f 187/73/245 188/74/245 189/76/245
+f 132/77/246 130/78/246 134/79/246
+f 191/73/247 192/74/247 129/76/247
+f 189/73/248 190/74/248 191/76/248
+f 129/77/249 131/78/249 191/79/249
+f 131/76/216 129/73/216 132/75/216
+f 133/76/250 131/73/250 134/75/250
+f 135/76/251 133/73/251 136/75/251
+f 137/76/252 135/73/252 138/75/252
+f 139/76/253 137/73/253 140/75/253
+f 141/76/254 139/73/254 142/75/254
+f 143/76/255 141/73/255 144/75/255
+f 145/76/256 143/73/256 146/75/256
+f 147/76/257 145/73/257 148/75/257
+f 149/76/258 147/73/258 150/75/258
+f 151/76/259 149/73/259 152/75/259
+f 153/76/260 151/73/260 154/75/260
+f 155/76/261 153/73/261 156/75/261
+f 157/76/262 155/73/262 158/75/262
+f 159/76/263 157/73/263 160/75/263
+f 161/76/231 159/73/231 162/75/231
+f 162/74/264 164/75/264 163/76/264
+f 164/74/265 166/75/265 165/76/265
+f 166/74/234 168/75/234 167/76/234
+f 168/74/266 170/75/266 169/76/266
+f 170/74/267 172/75/267 171/76/267
+f 172/74/268 174/75/268 173/76/268
+f 174/74/269 176/75/269 175/76/269
+f 176/74/270 178/75/270 177/76/270
+f 178/74/271 180/75/271 179/76/271
+f 180/74/241 182/75/241 181/76/241
+f 182/74/272 184/75/272 183/76/272
+f 184/74/273 186/75/273 185/76/273
+f 186/74/274 188/75/274 187/76/274
+f 188/74/275 190/75/275 189/76/275
+f 130/78/276 192/80/276 134/79/276
+f 192/80/277 190/81/277 134/79/277
+f 190/81/278 188/82/278 134/79/278
+f 188/82/279 186/83/279 134/79/279
+f 186/83/280 184/84/280 134/79/280
+f 184/84/281 182/85/281 134/79/281
+f 182/85/282 180/86/282 134/79/282
+f 180/86/283 178/87/283 134/79/283
+f 178/87/284 176/88/284 134/79/284
+f 176/88/285 174/89/285 134/79/285
+f 174/89/286 172/90/286 134/79/286
+f 170/91/287 168/92/287 166/93/287
+f 170/91/288 166/93/288 164/94/288
+f 148/95/289 152/96/289 150/97/289
+f 140/98/290 144/99/290 142/100/290
+f 172/90/287 170/91/287 164/94/287
+f 134/79/291 172/90/291 164/94/291
+f 136/101/292 134/79/292 138/102/292
+f 134/79/291 164/94/291 138/102/291
+f 162/103/293 160/104/293 158/105/293
+f 162/103/294 158/105/294 156/106/294
+f 146/107/295 152/96/295 148/95/295
+f 146/107/296 154/108/296 152/96/296
+f 144/99/297 154/108/297 146/107/297
+f 140/98/298 154/108/298 144/99/298
+f 138/102/299 164/94/299 140/98/299
+f 162/103/300 156/106/300 154/108/300
+f 164/94/301 162/103/301 140/98/301
+f 162/103/302 154/108/302 140/98/302
+f 192/74/303 130/75/303 129/76/303
+f 190/74/304 192/75/304 191/76/304
+f 131/78/305 133/80/305 191/79/305
+f 133/80/306 135/81/306 191/79/306
+f 135/81/305 137/82/305 191/79/305
+f 137/82/307 139/83/307 191/79/307
+f 139/83/308 141/84/308 191/79/308
+f 141/84/309 143/85/309 191/79/309
+f 143/85/310 145/86/310 191/79/310
+f 145/86/311 147/87/311 191/79/311
+f 147/87/312 149/88/312 191/79/312
+f 149/88/313 151/89/313 191/79/313
+f 151/89/314 153/90/314 191/79/314
+f 153/90/305 155/91/305 191/79/305
+f 155/91/315 157/92/315 191/79/315
+f 157/92/305 159/93/305 191/79/305
+f 159/93/316 161/94/316 191/79/316
+f 161/94/305 163/103/305 191/79/305
+f 163/103/305 165/104/305 191/79/305
+f 165/104/317 167/105/317 191/79/317
+f 167/105/317 169/106/317 191/79/317
+f 169/106/318 171/108/318 191/79/318
+f 171/108/319 173/96/319 191/79/319
+f 173/96/320 175/97/320 191/79/320
+f 175/97/321 177/95/321 191/79/321
+f 177/95/322 179/107/322 191/79/322
+f 179/107/323 181/99/323 191/79/323
+f 181/99/324 183/100/324 191/79/324
+f 183/100/325 185/98/325 191/79/325
+f 185/98/326 187/102/326 189/101/326
+f 191/79/327 185/98/327 189/101/327
+v -1.178897 2.277600 -0.129009
+v -0.137008 8.186446 -0.129009
+v -1.159685 2.274212 -0.127088
+v -0.117795 8.183058 -0.127088
+v -1.141210 2.270954 -0.121397
+v -0.099321 8.179801 -0.121397
+v -1.124184 2.267952 -0.112156
+v -0.082295 8.176799 -0.112156
+v -1.109261 2.265321 -0.099720
+v -0.067371 8.174168 -0.099720
+v -1.097013 2.263161 -0.084566
+v -0.055124 8.172008 -0.084566
+v -1.087913 2.261557 -0.067277
+v -0.046023 8.170403 -0.067277
+v -1.082309 2.260568 -0.048518
+v -0.040419 8.169415 -0.048518
+v -1.080417 2.260235 -0.029009
+v -0.038527 8.169081 -0.029009
+v -1.082309 2.260568 -0.009500
+v -0.040419 8.169415 -0.009500
+v -1.087913 2.261557 0.009259
+v -0.046023 8.170403 0.009259
+v -1.097013 2.263161 0.026548
+v -0.055124 8.172008 0.026548
+v -1.109261 2.265321 0.041702
+v -0.067371 8.174168 0.041702
+v -1.124184 2.267952 0.054138
+v -0.082295 8.176799 0.054138
+v -1.141210 2.270954 0.063379
+v -0.099321 8.179801 0.063379
+v -1.159685 2.274212 0.069069
+v -0.117795 8.183058 0.069069
+v -1.178897 2.277600 0.070991
+v -0.137008 8.186446 0.070991
+v -1.198110 2.280987 0.069069
+v -0.156220 8.189834 0.069069
+v -1.216584 2.284245 0.063379
+v -0.174695 8.193091 0.063379
+v -1.233610 2.287247 0.054138
+v -0.191721 8.196094 0.054138
+v -1.248534 2.289878 0.041702
+v -0.206644 8.198725 0.041702
+v -1.260781 2.292038 0.026548
+v -0.218892 8.200884 0.026548
+v -1.269882 2.293643 0.009259
+v -0.227992 8.202489 0.009259
+v -1.275486 2.294631 -0.009500
+v -0.233596 8.203477 -0.009500
+v -1.277378 2.294964 -0.029009
+v -0.235489 8.203811 -0.029009
+v -1.275486 2.294631 -0.048518
+v -0.233596 8.203477 -0.048518
+v -1.269882 2.293643 -0.067278
+v -0.227992 8.202489 -0.067278
+v -1.260781 2.292038 -0.084566
+v -0.218892 8.200884 -0.084566
+v -1.248534 2.289878 -0.099720
+v -0.206644 8.198725 -0.099720
+v -1.233610 2.287247 -0.112156
+v -0.191721 8.196094 -0.112156
+v -1.216584 2.284245 -0.121397
+v -0.174695 8.193091 -0.121397
+v -1.198110 2.280987 -0.127088
+v -0.156220 8.189834 -0.127088
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vt 0.500000 1.000000
+vt 0.597545 0.990393
+vt 0.402456 0.990393
+vt 0.691342 0.961940
+vt 0.777785 0.915735
+vt 0.853553 0.853553
+vt 0.915735 0.777785
+vt 0.961940 0.691342
+vt 0.990393 0.597545
+vt 1.000000 0.500000
+vt 0.990393 0.402455
+vt 0.961940 0.308658
+vt 0.915735 0.222215
+vt 0.853553 0.146447
+vt 0.777785 0.084265
+vt 0.691342 0.038060
+vt 0.597545 0.009607
+vt 0.500000 0.000000
+vt 0.402455 0.009607
+vt 0.308658 0.038060
+vt 0.222215 0.084265
+vt 0.146446 0.146447
+vt 0.084265 0.222215
+vt 0.038060 0.308659
+vt 0.009607 0.402455
+vt 0.000000 0.500000
+vt 0.009607 0.597546
+vt 0.038060 0.691342
+vt 0.084266 0.777786
+vt 0.146447 0.853554
+vt 0.222215 0.915735
+vt 0.308659 0.961940
+vn 0.096528 -0.017020 -0.995185
+vn 0.285876 -0.050408 -0.956940
+vn 0.464236 -0.081857 -0.881921
+vn 0.624756 -0.110161 -0.773010
+vn 0.761265 -0.134232 -0.634395
+vn 0.868521 -0.153144 -0.471400
+vn 0.942403 -0.166171 -0.290282
+vn 0.980065 -0.172812 -0.098021
+vn 0.980066 -0.172812 0.098018
+vn 0.942402 -0.166171 0.290285
+vn 0.868522 -0.153144 0.471399
+vn 0.761265 -0.134232 0.634395
+vn 0.624756 -0.110161 0.773010
+vn 0.464235 -0.081857 0.881922
+vn 0.285876 -0.050408 0.956940
+vn 0.096527 -0.017020 0.995185
+vn -0.096528 0.017020 0.995185
+vn -0.285876 0.050408 0.956940
+vn -0.464234 0.081857 0.881922
+vn -0.624758 0.110162 0.773008
+vn -0.761264 0.134231 0.634396
+vn -0.868524 0.153144 0.471394
+vn -0.942401 0.166171 0.290288
+vn -0.980066 0.172812 0.098014
+vn -0.980066 0.172812 -0.098014
+vn -0.942403 0.166171 -0.290281
+vn -0.868522 0.153144 -0.471398
+vn -0.761268 0.134232 -0.634392
+vn -0.624751 0.110161 -0.773014
+vn -0.464236 0.081857 -0.881921
+vn 0.173717 0.984795 -0.000357
+vn -0.096527 0.017020 -0.995185
+vn -0.285874 0.050407 -0.956940
+vn -0.173648 -0.984808 0.000011
+vn 0.285874 -0.050407 -0.956940
+vn 0.464237 -0.081858 -0.881920
+vn 0.624755 -0.110161 -0.773011
+vn 0.761264 -0.134231 -0.634396
+vn 0.868524 -0.153144 -0.471394
+vn 0.942402 -0.166171 -0.290287
+vn 0.980066 -0.172812 -0.098013
+vn 0.980066 -0.172812 0.098013
+vn 0.942402 -0.166171 0.290287
+vn 0.868524 -0.153144 0.471394
+vn 0.761264 -0.134231 0.634396
+vn 0.624755 -0.110161 0.773011
+vn 0.464237 -0.081858 0.881920
+vn 0.285874 -0.050407 0.956940
+vn -0.096529 0.017021 0.995185
+vn -0.285874 0.050407 0.956940
+vn -0.464235 0.081857 0.881921
+vn -0.624756 0.110161 0.773010
+vn -0.761269 0.134232 0.634391
+vn -0.868522 0.153144 0.471398
+vn -0.942403 0.166171 0.290282
+vn -0.980066 0.172812 0.098018
+vn -0.980065 0.172812 -0.098019
+vn -0.942402 0.166171 -0.290285
+vn -0.868521 0.153144 -0.471400
+vn -0.761267 0.134232 -0.634392
+vn -0.624756 0.110161 -0.773010
+vn -0.464234 0.081857 -0.881922
+vn 0.173640 0.984809 0.000036
+vn 0.173648 0.984808 -0.000041
+vn 0.173648 0.984808 -0.000002
+vn 0.173650 0.984807 0.000019
+vn 0.173652 0.984807 0.000031
+vn 0.173635 0.984810 -0.000027
+vn 0.173649 0.984808 0.000009
+vn 0.173641 0.984809 -0.000007
+vn 0.173650 0.984807 0.000006
+vn 0.173641 0.984809 -0.000005
+vn 0.173660 0.984806 0.000014
+vn 0.173629 0.984811 -0.000011
+vn 0.173638 0.984810 -0.000005
+vn 0.173649 0.984808 0.000001
+vn 0.173659 0.984806 0.000005
+vn 0.173636 0.984810 -0.000002
+vn 0.173683 0.984802 0.000007
+vn 0.173611 0.984814 0.000000
+vn 0.173649 0.984808 0.000000
+vn 0.173635 0.984810 0.000001
+vn 0.173681 0.984802 -0.000008
+vn 0.173674 0.984803 -0.000006
+vn 0.173644 0.984808 0.000007
+vn 0.173666 0.984805 -0.000005
+vn 0.173677 0.984803 -0.000016
+vn 0.173633 0.984810 0.000028
+vn 0.173518 0.984831 0.000143
+vn 0.173638 0.984810 0.000022
+vn -0.096528 0.017020 -0.995185
+vn -0.285872 0.050407 -0.956941
+vn -0.173648 -0.984808 0.000000
+vn -0.173647 -0.984808 -0.000006
+vn -0.173648 -0.984808 -0.000002
+vn -0.173647 -0.984808 -0.000003
+vn -0.173652 -0.984807 0.000009
+vn -0.173645 -0.984808 -0.000005
+vn -0.173652 -0.984807 0.000005
+vn -0.173644 -0.984809 -0.000005
+vn -0.173652 -0.984807 0.000003
+vn -0.173643 -0.984809 -0.000004
+vn -0.173650 -0.984807 0.000001
+vn -0.173680 -0.984802 0.000024
+vn -0.173592 -0.984818 0.000023
+vn -0.173693 -0.984800 0.000010
+vn -0.173644 -0.984808 -0.000000
+vn -0.173638 -0.984810 0.000013
+vn -0.173653 -0.984807 -0.000003
+vn -0.173644 -0.984808 0.000011
+vn -0.173646 -0.984808 0.000007
+vn -0.173645 -0.984808 -0.000007
+vn -0.173651 -0.984807 0.000003
+vn -0.173649 -0.984808 0.000000
+vn -0.173648 -0.984808 0.000001
+vn -0.173647 -0.984808 0.000002
+vn -0.173640 -0.984809 -0.000005
+vn -0.173647 -0.984808 -0.000001
+s off
+f 193/109/328 194/110/328 196/111/328
+f 195/109/329 196/110/329 198/111/329
+f 197/109/330 198/110/330 200/111/330
+f 199/109/331 200/110/331 202/111/331
+f 201/109/332 202/110/332 204/111/332
+f 203/109/333 204/110/333 206/111/333
+f 205/109/334 206/110/334 208/111/334
+f 207/109/335 208/110/335 210/111/335
+f 209/109/336 210/110/336 212/111/336
+f 211/109/337 212/110/337 214/111/337
+f 213/109/338 214/110/338 216/111/338
+f 215/109/339 216/110/339 218/111/339
+f 217/109/340 218/110/340 220/111/340
+f 219/109/341 220/110/341 222/111/341
+f 221/109/342 222/110/342 224/111/342
+f 223/109/343 224/110/343 226/111/343
+f 225/109/344 226/110/344 227/112/344
+f 227/109/345 228/110/345 229/112/345
+f 229/109/346 230/110/346 231/112/346
+f 231/109/347 232/110/347 233/112/347
+f 233/109/348 234/110/348 235/112/348
+f 235/109/349 236/110/349 237/112/349
+f 237/109/350 238/110/350 239/112/350
+f 239/109/351 240/110/351 241/112/351
+f 241/109/352 242/110/352 243/112/352
+f 243/109/353 244/110/353 245/112/353
+f 245/109/354 246/110/354 247/112/354
+f 247/109/355 248/110/355 249/112/355
+f 249/109/356 250/110/356 251/112/356
+f 251/109/357 252/110/357 253/112/357
+f 196/113/358 194/114/358 198/115/358
+f 255/109/359 256/110/359 193/112/359
+f 253/109/360 254/110/360 255/112/360
+f 193/113/361 195/114/361 255/115/361
+f 195/112/328 193/109/328 196/111/328
+f 197/112/362 195/109/362 198/111/362
+f 199/112/363 197/109/363 200/111/363
+f 201/112/364 199/109/364 202/111/364
+f 203/112/365 201/109/365 204/111/365
+f 205/112/366 203/109/366 206/111/366
+f 207/112/367 205/109/367 208/111/367
+f 209/112/368 207/109/368 210/111/368
+f 211/112/369 209/109/369 212/111/369
+f 213/112/370 211/109/370 214/111/370
+f 215/112/371 213/109/371 216/111/371
+f 217/112/372 215/109/372 218/111/372
+f 219/112/373 217/109/373 220/111/373
+f 221/112/374 219/109/374 222/111/374
+f 223/112/375 221/109/375 224/111/375
+f 225/112/343 223/109/343 226/111/343
+f 226/110/376 228/111/376 227/112/376
+f 228/110/377 230/111/377 229/112/377
+f 230/110/378 232/111/378 231/112/378
+f 232/110/379 234/111/379 233/112/379
+f 234/110/380 236/111/380 235/112/380
+f 236/110/381 238/111/381 237/112/381
+f 238/110/382 240/111/382 239/112/382
+f 240/110/383 242/111/383 241/112/383
+f 242/110/384 244/111/384 243/112/384
+f 244/110/385 246/111/385 245/112/385
+f 246/110/386 248/111/386 247/112/386
+f 248/110/387 250/111/387 249/112/387
+f 250/110/388 252/111/388 251/112/388
+f 252/110/389 254/111/389 253/112/389
+f 194/114/390 256/116/390 198/115/390
+f 256/116/391 254/117/391 198/115/391
+f 254/117/392 252/118/392 198/115/392
+f 252/118/393 250/119/393 198/115/393
+f 250/119/394 248/120/394 198/115/394
+f 248/120/395 246/121/395 198/115/395
+f 246/121/396 244/122/396 198/115/396
+f 244/122/397 242/123/397 198/115/397
+f 242/123/398 240/124/398 198/115/398
+f 240/124/399 238/125/399 198/115/399
+f 238/125/400 236/126/400 198/115/400
+f 236/126/401 234/127/401 198/115/401
+f 234/127/402 232/128/402 198/115/402
+f 232/128/403 230/129/403 198/115/403
+f 230/129/404 228/130/404 198/115/404
+f 228/130/405 226/131/405 198/115/405
+f 226/131/406 224/132/406 198/115/406
+f 224/132/407 222/133/407 198/115/407
+f 222/133/408 220/134/408 198/115/408
+f 220/134/409 218/135/409 198/115/409
+f 218/135/410 216/136/410 198/115/410
+f 216/136/411 214/137/411 198/115/411
+f 214/137/412 212/138/412 198/115/412
+f 212/138/413 210/139/413 198/115/413
+f 210/139/398 208/140/398 198/115/398
+f 208/140/414 206/141/414 198/115/414
+f 206/141/415 204/142/415 198/115/415
+f 204/142/416 202/143/416 200/144/416
+f 198/115/417 204/142/417 200/144/417
+f 256/110/418 194/111/418 193/112/418
+f 254/110/419 256/111/419 255/112/419
+f 195/114/420 197/116/420 255/115/420
+f 197/116/421 199/117/421 255/115/421
+f 199/117/422 201/118/422 255/115/422
+f 201/118/423 203/119/423 255/115/423
+f 203/119/424 205/120/424 255/115/424
+f 205/120/425 207/121/425 255/115/425
+f 207/121/426 209/122/426 255/115/426
+f 209/122/427 211/123/427 255/115/427
+f 211/123/428 213/124/428 255/115/428
+f 213/124/429 215/125/429 255/115/429
+f 215/125/430 217/126/430 255/115/430
+f 237/136/431 233/134/431 235/135/431
+f 247/141/432 243/139/432 245/140/432
+f 241/138/433 237/136/433 239/137/433
+f 241/138/434 233/134/434 237/136/434
+f 251/143/435 247/141/435 249/142/435
+f 251/143/436 243/139/436 247/141/436
+f 219/127/437 221/128/437 223/129/437
+f 219/127/438 223/129/438 225/130/438
+f 233/134/439 229/132/439 231/133/439
+f 241/138/440 229/132/440 233/134/440
+f 255/115/437 251/143/437 253/144/437
+f 255/115/441 217/126/441 251/143/441
+f 251/143/441 217/126/441 243/139/441
+f 219/127/442 225/130/442 227/131/442
+f 217/126/443 219/127/443 227/131/443
+f 243/139/420 217/126/420 227/131/420
+f 241/138/444 243/139/444 229/132/444
+f 243/139/445 227/131/445 229/132/445
+v -3.858562 2.027707 3.871576
+v -3.858562 2.027707 -3.907549
+v 3.920563 2.027707 -3.907549
+v 3.920563 2.027707 3.871576
+v -3.858562 2.306528 3.871576
+v -3.858562 2.306528 -3.907549
+v 3.920563 2.306528 -3.907549
+v 3.920563 2.306528 3.871576
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 0.000000 1.000000
+vt 1.000000 1.000000
+vn -1.000000 0.000000 0.000000
+vn 0.000000 0.000000 -1.000000
+vn 1.000000 -0.000000 0.000000
+vn 0.000000 0.000000 1.000000
+vn 0.000000 -1.000000 0.000000
+vn 0.000000 1.000000 0.000000
+s off
+f 261/145/446 262/146/446 257/147/446
+f 262/145/447 263/146/447 258/147/447
+f 263/145/448 264/146/448 260/148/448
+f 264/145/449 261/146/449 257/148/449
+f 257/145/450 258/146/450 259/148/450
+f 264/145/451 263/146/451 262/148/451
+f 262/146/446 258/148/446 257/147/446
+f 263/146/447 259/148/447 258/147/447
+f 259/147/448 263/145/448 260/148/448
+f 260/147/449 264/145/449 257/148/449
+f 260/147/450 257/145/450 259/148/450
+f 261/147/451 264/145/451 262/148/451
+v 2.043798 0.024218 -3.001008
+v 2.043798 2.024218 -3.001008
+v 2.238889 0.024218 -2.981793
+v 2.238889 2.024218 -2.981793
+v 2.426482 0.024218 -2.924888
+v 2.426482 2.024218 -2.924888
+v 2.599369 0.024218 -2.832478
+v 2.599369 2.024218 -2.832478
+v 2.750905 0.024218 -2.708115
+v 2.750905 2.024218 -2.708115
+v 2.875268 0.024218 -2.556578
+v 2.875268 2.024218 -2.556578
+v 2.967678 0.024218 -2.383692
+v 2.967678 2.024218 -2.383692
+v 3.024584 0.024218 -2.196099
+v 3.024584 2.024218 -2.196099
+v 3.043798 0.024218 -2.001008
+v 3.043798 2.024218 -2.001008
+v 3.024584 0.024218 -1.805918
+v 3.024584 2.024218 -1.805918
+v 2.967678 0.024218 -1.618325
+v 2.967678 2.024218 -1.618325
+v 2.875268 0.024218 -1.445438
+v 2.875268 2.024218 -1.445438
+v 2.750905 0.024218 -1.293901
+v 2.750905 2.024218 -1.293901
+v 2.599369 0.024218 -1.169539
+v 2.599369 2.024218 -1.169539
+v 2.426482 0.024218 -1.077129
+v 2.426482 2.024218 -1.077129
+v 2.238889 0.024218 -1.020223
+v 2.238889 2.024218 -1.020223
+v 2.043798 0.024218 -1.001008
+v 2.043798 2.024218 -1.001008
+v 1.848708 0.024218 -1.020223
+v 1.848708 2.024218 -1.020223
+v 1.661115 0.024218 -1.077129
+v 1.661115 2.024218 -1.077129
+v 1.488228 0.024218 -1.169539
+v 1.488228 2.024218 -1.169539
+v 1.336691 0.024218 -1.293902
+v 1.336691 2.024218 -1.293902
+v 1.212328 0.024218 -1.445439
+v 1.212328 2.024218 -1.445439
+v 1.119919 0.024218 -1.618326
+v 1.119919 2.024218 -1.618326
+v 1.063013 0.024218 -1.805919
+v 1.063013 2.024218 -1.805919
+v 1.043798 0.024218 -2.001009
+v 1.043798 2.024218 -2.001009
+v 1.063013 0.024218 -2.196100
+v 1.063013 2.024218 -2.196100
+v 1.119919 0.024218 -2.383693
+v 1.119919 2.024218 -2.383693
+v 1.212330 0.024218 -2.556580
+v 1.212330 2.024218 -2.556580
+v 1.336693 0.024218 -2.708116
+v 1.336693 2.024218 -2.708116
+v 1.488229 0.024218 -2.832479
+v 1.488229 2.024218 -2.832479
+v 1.661116 0.024218 -2.924888
+v 1.661116 2.024218 -2.924888
+v 1.848710 0.024218 -2.981794
+v 1.848710 2.024218 -2.981794
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vt 0.500000 1.000000
+vt 0.597545 0.990393
+vt 0.402456 0.990393
+vt 0.691342 0.961940
+vt 0.777785 0.915735
+vt 0.853553 0.853553
+vt 0.915735 0.777785
+vt 0.961940 0.691342
+vt 0.990393 0.597545
+vt 1.000000 0.500000
+vt 0.990393 0.402455
+vt 0.961940 0.308658
+vt 0.915735 0.222215
+vt 0.853553 0.146447
+vt 0.777785 0.084265
+vt 0.691342 0.038060
+vt 0.597545 0.009607
+vt 0.500000 0.000000
+vt 0.402455 0.009607
+vt 0.308658 0.038060
+vt 0.222215 0.084265
+vt 0.146446 0.146447
+vt 0.084265 0.222215
+vt 0.038060 0.308659
+vt 0.009607 0.402455
+vt 0.000000 0.500000
+vt 0.009607 0.597546
+vt 0.038060 0.691342
+vt 0.084266 0.777786
+vt 0.146447 0.853554
+vt 0.222215 0.915735
+vt 0.308659 0.961940
+vn 0.098018 0.000000 -0.995185
+vn 0.290285 0.000000 -0.956940
+vn 0.471397 0.000000 -0.881921
+vn 0.634393 0.000000 -0.773011
+vn 0.773011 0.000000 -0.634393
+vn 0.881921 0.000000 -0.471398
+vn 0.956940 0.000000 -0.290285
+vn 0.995185 0.000000 -0.098017
+vn 0.995185 0.000000 0.098017
+vn 0.956940 0.000000 0.290285
+vn 0.881921 0.000000 0.471397
+vn 0.773011 0.000000 0.634393
+vn 0.634393 0.000000 0.773011
+vn 0.471397 0.000000 0.881921
+vn 0.290285 0.000000 0.956940
+vn 0.098017 0.000000 0.995185
+vn -0.098018 0.000000 0.995185
+vn -0.290285 0.000000 0.956940
+vn -0.471397 0.000000 0.881921
+vn -0.634394 0.000000 0.773010
+vn -0.773011 0.000000 0.634393
+vn -0.881922 0.000000 0.471396
+vn -0.956941 0.000000 0.290283
+vn -0.995185 0.000000 0.098017
+vn -0.995185 -0.000000 -0.098018
+vn -0.956940 -0.000000 -0.290286
+vn -0.881921 -0.000000 -0.471398
+vn -0.773010 -0.000000 -0.634394
+vn -0.634392 -0.000000 -0.773012
+vn -0.471396 -0.000000 -0.881922
+vn -0.098016 -0.000000 -0.995185
+vn -0.290283 -0.000000 -0.956941
+s off
+f 265/149/452 266/150/452 268/151/452
+f 267/149/453 268/150/453 270/151/453
+f 269/149/454 270/150/454 272/151/454
+f 271/149/455 272/150/455 274/151/455
+f 273/149/456 274/150/456 276/151/456
+f 275/149/457 276/150/457 278/151/457
+f 277/149/458 278/150/458 280/151/458
+f 279/149/459 280/150/459 282/151/459
+f 281/149/460 282/150/460 284/151/460
+f 283/149/461 284/150/461 286/151/461
+f 285/149/462 286/150/462 288/151/462
+f 287/149/463 288/150/463 290/151/463
+f 289/149/464 290/150/464 292/151/464
+f 291/149/465 292/150/465 294/151/465
+f 293/149/466 294/150/466 296/151/466
+f 295/149/467 296/150/467 298/151/467
+f 297/149/468 298/150/468 299/152/468
+f 299/149/469 300/150/469 301/152/469
+f 301/149/470 302/150/470 303/152/470
+f 303/149/471 304/150/471 305/152/471
+f 305/149/472 306/150/472 307/152/472
+f 307/149/473 308/150/473 309/152/473
+f 309/149/474 310/150/474 311/152/474
+f 311/149/475 312/150/475 313/152/475
+f 313/149/476 314/150/476 315/152/476
+f 315/149/477 316/150/477 317/152/477
+f 317/149/478 318/150/478 319/152/478
+f 319/149/479 320/150/479 321/152/479
+f 321/149/480 322/150/480 323/152/480
+f 323/149/481 324/150/481 325/152/481
+f 268/153/451 266/154/451 270/155/451
+f 327/149/482 328/150/482 265/152/482
+f 325/149/483 326/150/483 327/152/483
+f 265/153/450 267/154/450 327/155/450
+f 267/152/452 265/149/452 268/151/452
+f 269/152/453 267/149/453 270/151/453
+f 271/152/454 269/149/454 272/151/454
+f 273/152/455 271/149/455 274/151/455
+f 275/152/456 273/149/456 276/151/456
+f 277/152/457 275/149/457 278/151/457
+f 279/152/458 277/149/458 280/151/458
+f 281/152/459 279/149/459 282/151/459
+f 283/152/460 281/149/460 284/151/460
+f 285/152/461 283/149/461 286/151/461
+f 287/152/462 285/149/462 288/151/462
+f 289/152/463 287/149/463 290/151/463
+f 291/152/464 289/149/464 292/151/464
+f 293/152/465 291/149/465 294/151/465
+f 295/152/466 293/149/466 296/151/466
+f 297/152/467 295/149/467 298/151/467
+f 298/150/468 300/151/468 299/152/468
+f 300/150/469 302/151/469 301/152/469
+f 302/150/470 304/151/470 303/152/470
+f 304/150/471 306/151/471 305/152/471
+f 306/150/472 308/151/472 307/152/472
+f 308/150/473 310/151/473 309/152/473
+f 310/150/474 312/151/474 311/152/474
+f 312/150/475 314/151/475 313/152/475
+f 314/150/476 316/151/476 315/152/476
+f 316/150/477 318/151/477 317/152/477
+f 318/150/478 320/151/478 319/152/478
+f 320/150/479 322/151/479 321/152/479
+f 322/150/480 324/151/480 323/152/480
+f 324/150/481 326/151/481 325/152/481
+f 266/154/451 328/156/451 270/155/451
+f 328/156/451 326/157/451 270/155/451
+f 326/157/451 324/158/451 270/155/451
+f 324/158/451 322/159/451 270/155/451
+f 322/159/451 320/160/451 270/155/451
+f 320/160/451 318/161/451 270/155/451
+f 318/161/451 316/162/451 270/155/451
+f 316/162/451 314/163/451 270/155/451
+f 314/163/451 312/164/451 270/155/451
+f 312/164/451 310/165/451 270/155/451
+f 310/165/451 308/166/451 270/155/451
+f 308/166/451 306/167/451 270/155/451
+f 306/167/451 304/168/451 270/155/451
+f 304/168/451 302/169/451 270/155/451
+f 302/169/451 300/170/451 270/155/451
+f 300/170/451 298/171/451 270/155/451
+f 298/171/451 296/172/451 270/155/451
+f 296/172/451 294/173/451 270/155/451
+f 294/173/451 292/174/451 270/155/451
+f 292/174/451 290/175/451 270/155/451
+f 290/175/451 288/176/451 270/155/451
+f 288/176/451 286/177/451 270/155/451
+f 286/177/451 284/178/451 270/155/451
+f 284/178/451 282/179/451 270/155/451
+f 282/179/451 280/180/451 270/155/451
+f 280/180/451 278/181/451 270/155/451
+f 278/181/451 276/182/451 270/155/451
+f 276/182/451 274/183/451 270/155/451
+f 274/183/451 272/184/451 270/155/451
+f 328/150/482 266/151/482 265/152/482
+f 326/150/483 328/151/483 327/152/483
+f 267/154/450 269/156/450 327/155/450
+f 269/156/450 271/157/450 327/155/450
+f 271/157/450 273/158/450 327/155/450
+f 273/158/450 275/159/450 327/155/450
+f 275/159/450 277/160/450 327/155/450
+f 277/160/450 279/161/450 327/155/450
+f 279/161/450 281/162/450 327/155/450
+f 281/162/450 283/163/450 327/155/450
+f 283/163/450 285/164/450 327/155/450
+f 285/164/450 287/165/450 327/155/450
+f 287/165/450 289/166/450 327/155/450
+f 289/166/450 291/167/450 327/155/450
+f 291/167/450 293/168/450 327/155/450
+f 293/168/450 295/169/450 327/155/450
+f 295/169/450 297/170/450 327/155/450
+f 297/170/450 299/171/450 327/155/450
+f 299/171/450 301/172/450 327/155/450
+f 301/172/450 303/173/450 327/155/450
+f 303/173/450 305/174/450 327/155/450
+f 305/174/450 307/175/450 327/155/450
+f 307/175/450 309/176/450 327/155/450
+f 309/176/450 311/177/450 327/155/450
+f 311/177/450 313/178/450 327/155/450
+f 313/178/450 315/179/450 327/155/450
+f 315/179/450 317/180/450 327/155/450
+f 317/180/450 319/181/450 327/155/450
+f 319/181/450 321/182/450 327/155/450
+f 321/182/450 323/183/450 325/184/450
+f 327/155/450 321/182/450 325/184/450
+v -2.014818 0.007922 0.998641
+v -2.014818 2.007922 0.998641
+v -1.819728 0.007922 1.017856
+v -1.819728 2.007922 1.017856
+v -1.632135 0.007922 1.074762
+v -1.632135 2.007922 1.074762
+v -1.459248 0.007922 1.167172
+v -1.459248 2.007922 1.167172
+v -1.307712 0.007922 1.291534
+v -1.307712 2.007922 1.291534
+v -1.183349 0.007922 1.443071
+v -1.183349 2.007922 1.443071
+v -1.090939 0.007922 1.615958
+v -1.090939 2.007922 1.615958
+v -1.034033 0.007922 1.803551
+v -1.034033 2.007922 1.803551
+v -1.014818 0.007922 1.998641
+v -1.014818 2.007922 1.998641
+v -1.034033 0.007922 2.193732
+v -1.034033 2.007922 2.193732
+v -1.090939 0.007922 2.381325
+v -1.090939 2.007922 2.381325
+v -1.183349 0.007922 2.554211
+v -1.183349 2.007922 2.554211
+v -1.307712 0.007922 2.705748
+v -1.307712 2.007922 2.705748
+v -1.459248 0.007922 2.830111
+v -1.459248 2.007922 2.830111
+v -1.632135 0.007922 2.922521
+v -1.632135 2.007922 2.922521
+v -1.819728 0.007922 2.979427
+v -1.819728 2.007922 2.979427
+v -2.014819 0.007922 2.998641
+v -2.014819 2.007922 2.998641
+v -2.209909 0.007922 2.979426
+v -2.209909 2.007922 2.979426
+v -2.397502 0.007922 2.922521
+v -2.397502 2.007922 2.922521
+v -2.570389 0.007922 2.830111
+v -2.570389 2.007922 2.830111
+v -2.721926 0.007922 2.705748
+v -2.721926 2.007922 2.705748
+v -2.846288 0.007922 2.554211
+v -2.846288 2.007922 2.554211
+v -2.938698 0.007922 2.381324
+v -2.938698 2.007922 2.381324
+v -2.995604 0.007922 2.193731
+v -2.995604 2.007922 2.193731
+v -3.014818 0.007922 1.998640
+v -3.014818 2.007922 1.998640
+v -2.995604 0.007922 1.803550
+v -2.995604 2.007922 1.803550
+v -2.938698 0.007922 1.615957
+v -2.938698 2.007922 1.615957
+v -2.846287 0.007922 1.443070
+v -2.846287 2.007922 1.443070
+v -2.721924 0.007922 1.291534
+v -2.721924 2.007922 1.291534
+v -2.570388 0.007922 1.167171
+v -2.570388 2.007922 1.167171
+v -2.397501 0.007922 1.074761
+v -2.397501 2.007922 1.074761
+v -2.209907 0.007922 1.017856
+v -2.209907 2.007922 1.017856
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vt 0.500000 1.000000
+vt 0.597545 0.990393
+vt 0.402456 0.990393
+vt 0.691342 0.961940
+vt 0.777785 0.915735
+vt 0.853553 0.853553
+vt 0.915735 0.777785
+vt 0.961940 0.691342
+vt 0.990393 0.597545
+vt 1.000000 0.500000
+vt 0.990393 0.402455
+vt 0.961940 0.308658
+vt 0.915735 0.222215
+vt 0.853553 0.146447
+vt 0.777785 0.084265
+vt 0.691342 0.038060
+vt 0.597545 0.009607
+vt 0.500000 0.000000
+vt 0.402455 0.009607
+vt 0.308658 0.038060
+vt 0.222215 0.084265
+vt 0.146446 0.146447
+vt 0.084265 0.222215
+vt 0.038060 0.308659
+vt 0.009607 0.402455
+vt 0.000000 0.500000
+vt 0.009607 0.597546
+vt 0.038060 0.691342
+vt 0.084266 0.777786
+vt 0.146447 0.853554
+vt 0.222215 0.915735
+vt 0.308659 0.961940
+vn 0.098017 0.000000 -0.995185
+vn 0.881921 0.000000 -0.471397
+vn 0.634393 0.000000 0.773010
+vn 0.471396 0.000000 0.881922
+vn -0.881920 -0.000000 -0.471398
+vn -0.634393 -0.000000 -0.773011
+vn -0.471395 -0.000000 -0.881922
+s off
+f 329/185/484 330/186/484 332/187/484
+f 331/185/453 332/186/453 334/187/453
+f 333/185/454 334/186/454 336/187/454
+f 335/185/455 336/186/455 338/187/455
+f 337/185/456 338/186/456 340/187/456
+f 339/185/485 340/186/485 342/187/485
+f 341/185/458 342/186/458 344/187/458
+f 343/185/459 344/186/459 346/187/459
+f 345/185/460 346/186/460 348/187/460
+f 347/185/461 348/186/461 350/187/461
+f 349/185/462 350/186/462 352/187/462
+f 351/185/463 352/186/463 354/187/463
+f 353/185/486 354/186/486 356/187/486
+f 355/185/487 356/186/487 358/187/487
+f 357/185/466 358/186/466 360/187/466
+f 359/185/467 360/186/467 362/187/467
+f 361/185/468 362/186/468 363/188/468
+f 363/185/469 364/186/469 365/188/469
+f 365/185/470 366/186/470 367/188/470
+f 367/185/471 368/186/471 369/188/471
+f 369/185/472 370/186/472 371/188/472
+f 371/185/473 372/186/473 373/188/473
+f 373/185/474 374/186/474 375/188/474
+f 375/185/475 376/186/475 377/188/475
+f 377/185/476 378/186/476 379/188/476
+f 379/185/477 380/186/477 381/188/477
+f 381/185/488 382/186/488 383/188/488
+f 383/185/479 384/186/479 385/188/479
+f 385/185/489 386/186/489 387/188/489
+f 387/185/490 388/186/490 389/188/490
+f 332/189/451 330/190/451 334/191/451
+f 391/185/482 392/186/482 329/188/482
+f 389/185/483 390/186/483 391/188/483
+f 329/189/450 331/190/450 391/191/450
+f 331/188/484 329/185/484 332/187/484
+f 333/188/453 331/185/453 334/187/453
+f 335/188/454 333/185/454 336/187/454
+f 337/188/455 335/185/455 338/187/455
+f 339/188/456 337/185/456 340/187/456
+f 341/188/485 339/185/485 342/187/485
+f 343/188/458 341/185/458 344/187/458
+f 345/188/459 343/185/459 346/187/459
+f 347/188/460 345/185/460 348/187/460
+f 349/188/461 347/185/461 350/187/461
+f 351/188/462 349/185/462 352/187/462
+f 353/188/463 351/185/463 354/187/463
+f 355/188/486 353/185/486 356/187/486
+f 357/188/487 355/185/487 358/187/487
+f 359/188/466 357/185/466 360/187/466
+f 361/188/467 359/185/467 362/187/467
+f 362/186/468 364/187/468 363/188/468
+f 364/186/469 366/187/469 365/188/469
+f 366/186/470 368/187/470 367/188/470
+f 368/186/471 370/187/471 369/188/471
+f 370/186/472 372/187/472 371/188/472
+f 372/186/473 374/187/473 373/188/473
+f 374/186/474 376/187/474 375/188/474
+f 376/186/475 378/187/475 377/188/475
+f 378/186/476 380/187/476 379/188/476
+f 380/186/477 382/187/477 381/188/477
+f 382/186/488 384/187/488 383/188/488
+f 384/186/479 386/187/479 385/188/479
+f 386/186/489 388/187/489 387/188/489
+f 388/186/490 390/187/490 389/188/490
+f 330/190/451 392/192/451 334/191/451
+f 392/192/451 390/193/451 334/191/451
+f 390/193/451 388/194/451 334/191/451
+f 388/194/451 386/195/451 334/191/451
+f 386/195/451 384/196/451 334/191/451
+f 384/196/451 382/197/451 334/191/451
+f 382/197/451 380/198/451 334/191/451
+f 380/198/451 378/199/451 334/191/451
+f 378/199/451 376/200/451 334/191/451
+f 376/200/451 374/201/451 334/191/451
+f 374/201/451 372/202/451 334/191/451
+f 372/202/451 370/203/451 334/191/451
+f 370/203/451 368/204/451 334/191/451
+f 368/204/451 366/205/451 334/191/451
+f 366/205/451 364/206/451 334/191/451
+f 364/206/451 362/207/451 334/191/451
+f 362/207/451 360/208/451 334/191/451
+f 360/208/451 358/209/451 334/191/451
+f 358/209/451 356/210/451 334/191/451
+f 356/210/451 354/211/451 334/191/451
+f 354/211/451 352/212/451 334/191/451
+f 352/212/451 350/213/451 334/191/451
+f 350/213/451 348/214/451 334/191/451
+f 348/214/451 346/215/451 334/191/451
+f 346/215/451 344/216/451 334/191/451
+f 344/216/451 342/217/451 334/191/451
+f 342/217/451 340/218/451 334/191/451
+f 340/218/451 338/219/451 334/191/451
+f 338/219/451 336/220/451 334/191/451
+f 392/186/482 330/187/482 329/188/482
+f 390/186/483 392/187/483 391/188/483
+f 331/190/450 333/192/450 391/191/450
+f 333/192/450 335/193/450 391/191/450
+f 335/193/450 337/194/450 391/191/450
+f 337/194/450 339/195/450 391/191/450
+f 339/195/450 341/196/450 391/191/450
+f 341/196/450 343/197/450 391/191/450
+f 343/197/450 345/198/450 391/191/450
+f 345/198/450 347/199/450 391/191/450
+f 347/199/450 349/200/450 391/191/450
+f 349/200/450 351/201/450 391/191/450
+f 351/201/450 353/202/450 391/191/450
+f 353/202/450 355/203/450 391/191/450
+f 355/203/450 357/204/450 391/191/450
+f 357/204/450 359/205/450 391/191/450
+f 359/205/450 361/206/450 391/191/450
+f 361/206/450 363/207/450 391/191/450
+f 363/207/450 365/208/450 391/191/450
+f 365/208/450 367/209/450 391/191/450
+f 367/209/450 369/210/450 391/191/450
+f 369/210/450 371/211/450 391/191/450
+f 371/211/450 373/212/450 391/191/450
+f 373/212/450 375/213/450 391/191/450
+f 375/213/450 377/214/450 391/191/450
+f 377/214/450 379/215/450 391/191/450
+f 379/215/450 381/216/450 391/191/450
+f 381/216/450 383/217/450 391/191/450
+f 383/217/450 385/218/450 391/191/450
+f 385/218/450 387/219/450 391/191/450
+f 387/219/450 389/220/450 391/191/450
+v -2.001621 -0.021814 -3.021079
+v -2.001621 1.978186 -3.021079
+v -1.806530 -0.021814 -3.001864
+v -1.806530 1.978186 -3.001864
+v -1.618937 -0.021814 -2.944958
+v -1.618937 1.978186 -2.944958
+v -1.446051 -0.021814 -2.852548
+v -1.446051 1.978186 -2.852548
+v -1.294514 -0.021814 -2.728185
+v -1.294514 1.978186 -2.728185
+v -1.170151 -0.021814 -2.576649
+v -1.170151 1.978186 -2.576649
+v -1.077741 -0.021814 -2.403762
+v -1.077741 1.978186 -2.403762
+v -1.020836 -0.021814 -2.216169
+v -1.020836 1.978186 -2.216169
+v -1.001621 -0.021814 -2.021079
+v -1.001621 1.978186 -2.021079
+v -1.020835 -0.021814 -1.825988
+v -1.020835 1.978186 -1.825988
+v -1.077741 -0.021814 -1.638395
+v -1.077741 1.978186 -1.638395
+v -1.170151 -0.021814 -1.465508
+v -1.170151 1.978186 -1.465508
+v -1.294514 -0.021814 -1.313972
+v -1.294514 1.978186 -1.313972
+v -1.446051 -0.021814 -1.189609
+v -1.446051 1.978186 -1.189609
+v -1.618937 -0.021814 -1.097199
+v -1.618937 1.978186 -1.097199
+v -1.806531 -0.021814 -1.040293
+v -1.806531 1.978186 -1.040293
+v -2.001621 -0.021814 -1.021079
+v -2.001621 1.978186 -1.021079
+v -2.196712 -0.021814 -1.040293
+v -2.196712 1.978186 -1.040293
+v -2.384305 -0.021814 -1.097199
+v -2.384305 1.978186 -1.097199
+v -2.557191 -0.021814 -1.189609
+v -2.557191 1.978186 -1.189609
+v -2.708728 -0.021814 -1.313972
+v -2.708728 1.978186 -1.313972
+v -2.833091 -0.021814 -1.465509
+v -2.833091 1.978186 -1.465509
+v -2.925501 -0.021814 -1.638396
+v -2.925501 1.978186 -1.638396
+v -2.982406 -0.021814 -1.825989
+v -2.982406 1.978186 -1.825989
+v -3.001621 -0.021814 -2.021080
+v -3.001621 1.978186 -2.021080
+v -2.982406 -0.021814 -2.216170
+v -2.982406 1.978186 -2.216170
+v -2.925500 -0.021814 -2.403763
+v -2.925500 1.978186 -2.403763
+v -2.833090 -0.021814 -2.576650
+v -2.833090 1.978186 -2.576650
+v -2.708727 -0.021814 -2.728186
+v -2.708727 1.978186 -2.728186
+v -2.557190 -0.021814 -2.852549
+v -2.557190 1.978186 -2.852549
+v -2.384303 -0.021814 -2.944959
+v -2.384303 1.978186 -2.944959
+v -2.196710 -0.021814 -3.001864
+v -2.196710 1.978186 -3.001864
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vt 0.500000 1.000000
+vt 0.597545 0.990393
+vt 0.402456 0.990393
+vt 0.691342 0.961940
+vt 0.777785 0.915735
+vt 0.853553 0.853553
+vt 0.915735 0.777785
+vt 0.961940 0.691342
+vt 0.990393 0.597545
+vt 1.000000 0.500000
+vt 0.990393 0.402455
+vt 0.961940 0.308658
+vt 0.915735 0.222215
+vt 0.853553 0.146447
+vt 0.777785 0.084265
+vt 0.691342 0.038060
+vt 0.597545 0.009607
+vt 0.500000 0.000000
+vt 0.402455 0.009607
+vt 0.308658 0.038060
+vt 0.222215 0.084265
+vt 0.146446 0.146447
+vt 0.084265 0.222215
+vt 0.038060 0.308659
+vt 0.009607 0.402455
+vt 0.000000 0.500000
+vt 0.009607 0.597546
+vt 0.038060 0.691342
+vt 0.084266 0.777786
+vt 0.146447 0.853554
+vt 0.222215 0.915735
+vt 0.308659 0.961940
+vn 0.471398 0.000000 -0.881921
+vn -0.634393 0.000000 0.773010
+vn -0.881921 -0.000000 -0.471397
+vn -0.773009 -0.000000 -0.634395
+vn -0.634393 -0.000000 -0.773010
+s off
+f 393/221/484 394/222/484 396/223/484
+f 395/221/453 396/222/453 398/223/453
+f 397/221/491 398/222/491 400/223/491
+f 399/221/455 400/222/455 402/223/455
+f 401/221/456 402/222/456 404/223/456
+f 403/221/485 404/222/485 406/223/485
+f 405/221/458 406/222/458 408/223/458
+f 407/221/459 408/222/459 410/223/459
+f 409/221/460 410/222/460 412/223/460
+f 411/221/461 412/222/461 414/223/461
+f 413/221/462 414/222/462 416/223/462
+f 415/221/463 416/222/463 418/223/463
+f 417/221/464 418/222/464 420/223/464
+f 419/221/465 420/222/465 422/223/465
+f 421/221/466 422/222/466 424/223/466
+f 423/221/467 424/222/467 426/223/467
+f 425/221/468 426/222/468 427/224/468
+f 427/221/469 428/222/469 429/224/469
+f 429/221/470 430/222/470 431/224/470
+f 431/221/492 432/222/492 433/224/492
+f 433/221/472 434/222/472 435/224/472
+f 435/221/473 436/222/473 437/224/473
+f 437/221/474 438/222/474 439/224/474
+f 439/221/475 440/222/475 441/224/475
+f 441/221/476 442/222/476 443/224/476
+f 443/221/477 444/222/477 445/224/477
+f 445/221/493 446/222/493 447/224/493
+f 447/221/494 448/222/494 449/224/494
+f 449/221/495 450/222/495 451/224/495
+f 451/221/490 452/222/490 453/224/490
+f 396/225/451 394/226/451 398/227/451
+f 455/221/482 456/222/482 393/224/482
+f 453/221/483 454/222/483 455/224/483
+f 393/225/450 395/226/450 455/227/450
+f 395/224/484 393/221/484 396/223/484
+f 397/224/453 395/221/453 398/223/453
+f 399/224/491 397/221/491 400/223/491
+f 401/224/455 399/221/455 402/223/455
+f 403/224/456 401/221/456 404/223/456
+f 405/224/485 403/221/485 406/223/485
+f 407/224/458 405/221/458 408/223/458
+f 409/224/459 407/221/459 410/223/459
+f 411/224/460 409/221/460 412/223/460
+f 413/224/461 411/221/461 414/223/461
+f 415/224/462 413/221/462 416/223/462
+f 417/224/463 415/221/463 418/223/463
+f 419/224/464 417/221/464 420/223/464
+f 421/224/465 419/221/465 422/223/465
+f 423/224/466 421/221/466 424/223/466
+f 425/224/467 423/221/467 426/223/467
+f 426/222/468 428/223/468 427/224/468
+f 428/222/469 430/223/469 429/224/469
+f 430/222/470 432/223/470 431/224/470
+f 432/222/492 434/223/492 433/224/492
+f 434/222/472 436/223/472 435/224/472
+f 436/222/473 438/223/473 437/224/473
+f 438/222/474 440/223/474 439/224/474
+f 440/222/475 442/223/475 441/224/475
+f 442/222/476 444/223/476 443/224/476
+f 444/222/477 446/223/477 445/224/477
+f 446/222/493 448/223/493 447/224/493
+f 448/222/494 450/223/494 449/224/494
+f 450/222/495 452/223/495 451/224/495
+f 452/222/490 454/223/490 453/224/490
+f 394/226/451 456/228/451 398/227/451
+f 456/228/451 454/229/451 398/227/451
+f 454/229/451 452/230/451 398/227/451
+f 452/230/451 450/231/451 398/227/451
+f 450/231/451 448/232/451 398/227/451
+f 448/232/451 446/233/451 398/227/451
+f 446/233/451 444/234/451 398/227/451
+f 444/234/451 442/235/451 398/227/451
+f 442/235/451 440/236/451 398/227/451
+f 440/236/451 438/237/451 398/227/451
+f 438/237/451 436/238/451 398/227/451
+f 436/238/451 434/239/451 398/227/451
+f 434/239/451 432/240/451 398/227/451
+f 432/240/451 430/241/451 398/227/451
+f 430/241/451 428/242/451 398/227/451
+f 428/242/451 426/243/451 398/227/451
+f 426/243/451 424/244/451 398/227/451
+f 424/244/451 422/245/451 398/227/451
+f 422/245/451 420/246/451 398/227/451
+f 420/246/451 418/247/451 398/227/451
+f 418/247/451 416/248/451 398/227/451
+f 416/248/451 414/249/451 398/227/451
+f 414/249/451 412/250/451 398/227/451
+f 412/250/451 410/251/451 398/227/451
+f 410/251/451 408/252/451 398/227/451
+f 408/252/451 406/253/451 398/227/451
+f 406/253/451 404/254/451 398/227/451
+f 404/254/451 402/255/451 398/227/451
+f 402/255/451 400/256/451 398/227/451
+f 456/222/482 394/223/482 393/224/482
+f 454/222/483 456/223/483 455/224/483
+f 395/226/450 397/228/450 455/227/450
+f 397/228/450 399/229/450 455/227/450
+f 399/229/450 401/230/450 455/227/450
+f 401/230/450 403/231/450 455/227/450
+f 403/231/450 405/232/450 455/227/450
+f 405/232/450 407/233/450 455/227/450
+f 407/233/450 409/234/450 455/227/450
+f 409/234/450 411/235/450 455/227/450
+f 411/235/450 413/236/450 455/227/450
+f 413/236/450 415/237/450 455/227/450
+f 415/237/450 417/238/450 455/227/450
+f 417/238/450 419/239/450 455/227/450
+f 419/239/450 421/240/450 455/227/450
+f 421/240/450 423/241/450 455/227/450
+f 423/241/450 425/242/450 455/227/450
+f 425/242/450 427/243/450 455/227/450
+f 427/243/450 429/244/450 455/227/450
+f 429/244/450 431/245/450 455/227/450
+f 431/245/450 433/246/450 455/227/450
+f 433/246/450 435/247/450 455/227/450
+f 435/247/450 437/248/450 455/227/450
+f 437/248/450 439/249/450 455/227/450
+f 439/249/450 441/250/450 455/227/450
+f 441/250/450 443/251/450 455/227/450
+f 443/251/450 445/252/450 455/227/450
+f 445/252/450 447/253/450 455/227/450
+f 447/253/450 449/254/450 455/227/450
+f 449/254/450 451/255/450 455/227/450
+f 451/255/450 453/256/450 455/227/450
+v 2.021592 0.003623 1.016610
+v 2.021592 2.003623 1.016610
+v 2.216682 0.003623 1.035825
+v 2.216682 2.003623 1.035825
+v 2.404276 0.003623 1.092731
+v 2.404276 2.003623 1.092731
+v 2.577162 0.003623 1.185141
+v 2.577162 2.003623 1.185141
+v 2.728699 0.003623 1.309503
+v 2.728699 2.003623 1.309503
+v 2.853062 0.003623 1.461040
+v 2.853062 2.003623 1.461040
+v 2.945472 0.003623 1.633927
+v 2.945472 2.003623 1.633927
+v 3.002378 0.003623 1.821520
+v 3.002378 2.003623 1.821520
+v 3.021592 0.003623 2.016610
+v 3.021592 2.003623 2.016610
+v 3.002378 0.003623 2.211700
+v 3.002378 2.003623 2.211700
+v 2.945472 0.003623 2.399293
+v 2.945472 2.003623 2.399293
+v 2.853062 0.003623 2.572180
+v 2.853062 2.003623 2.572180
+v 2.728699 0.003623 2.723717
+v 2.728699 2.003623 2.723717
+v 2.577162 0.003623 2.848080
+v 2.577162 2.003623 2.848080
+v 2.404275 0.003623 2.940490
+v 2.404275 2.003623 2.940490
+v 2.216682 0.003623 2.997396
+v 2.216682 2.003623 2.997396
+v 2.021592 0.003623 3.016610
+v 2.021592 2.003623 3.016610
+v 1.826501 0.003623 2.997395
+v 1.826501 2.003623 2.997395
+v 1.638908 0.003623 2.940490
+v 1.638908 2.003623 2.940490
+v 1.466021 0.003623 2.848079
+v 1.466021 2.003623 2.848079
+v 1.314485 0.003623 2.723716
+v 1.314485 2.003623 2.723716
+v 1.190122 0.003623 2.572180
+v 1.190122 2.003623 2.572180
+v 1.097712 0.003623 2.399293
+v 1.097712 2.003623 2.399293
+v 1.040807 0.003623 2.211699
+v 1.040807 2.003623 2.211699
+v 1.021592 0.003623 2.016609
+v 1.021592 2.003623 2.016609
+v 1.040807 0.003623 1.821519
+v 1.040807 2.003623 1.821519
+v 1.097713 0.003623 1.633926
+v 1.097713 2.003623 1.633926
+v 1.190123 0.003623 1.461039
+v 1.190123 2.003623 1.461039
+v 1.314486 0.003623 1.309502
+v 1.314486 2.003623 1.309502
+v 1.466023 0.003623 1.185140
+v 1.466023 2.003623 1.185140
+v 1.638910 0.003623 1.092730
+v 1.638910 2.003623 1.092730
+v 1.826503 0.003623 1.035825
+v 1.826503 2.003623 1.035825
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vt 0.500000 1.000000
+vt 0.597545 0.990393
+vt 0.402456 0.990393
+vt 0.691342 0.961940
+vt 0.777785 0.915735
+vt 0.853553 0.853553
+vt 0.915735 0.777785
+vt 0.961940 0.691342
+vt 0.990393 0.597545
+vt 1.000000 0.500000
+vt 0.990393 0.402455
+vt 0.961940 0.308658
+vt 0.915735 0.222215
+vt 0.853553 0.146447
+vt 0.777785 0.084265
+vt 0.691342 0.038060
+vt 0.597545 0.009607
+vt 0.500000 0.000000
+vt 0.402455 0.009607
+vt 0.308658 0.038060
+vt 0.222215 0.084265
+vt 0.146446 0.146447
+vt 0.084265 0.222215
+vt 0.038060 0.308659
+vt 0.009607 0.402455
+vt 0.000000 0.500000
+vt 0.009607 0.597546
+vt 0.038060 0.691342
+vt 0.084266 0.777786
+vt 0.146447 0.853554
+vt 0.222215 0.915735
+vt 0.308659 0.961940
+s off
+f 457/257/484 458/258/484 460/259/484
+f 459/257/453 460/258/453 462/259/453
+f 461/257/454 462/258/454 464/259/454
+f 463/257/455 464/258/455 466/259/455
+f 465/257/456 466/258/456 468/259/456
+f 467/257/457 468/258/457 470/259/457
+f 469/257/458 470/258/458 472/259/458
+f 471/257/459 472/258/459 474/259/459
+f 473/257/460 474/258/460 476/259/460
+f 475/257/461 476/258/461 478/259/461
+f 477/257/462 478/258/462 480/259/462
+f 479/257/463 480/258/463 482/259/463
+f 481/257/464 482/258/464 484/259/464
+f 483/257/465 484/258/465 486/259/465
+f 485/257/466 486/258/466 488/259/466
+f 487/257/467 488/258/467 490/259/467
+f 489/257/468 490/258/468 491/260/468
+f 491/257/469 492/258/469 493/260/469
+f 493/257/470 494/258/470 495/260/470
+f 495/257/471 496/258/471 497/260/471
+f 497/257/472 498/258/472 499/260/472
+f 499/257/473 500/258/473 501/260/473
+f 501/257/474 502/258/474 503/260/474
+f 503/257/475 504/258/475 505/260/475
+f 505/257/476 506/258/476 507/260/476
+f 507/257/477 508/258/477 509/260/477
+f 509/257/478 510/258/478 511/260/478
+f 511/257/494 512/258/494 513/260/494
+f 513/257/489 514/258/489 515/260/489
+f 515/257/490 516/258/490 517/260/490
+f 460/261/451 458/262/451 462/263/451
+f 519/257/482 520/258/482 457/260/482
+f 517/257/483 518/258/483 519/260/483
+f 457/261/450 459/262/450 519/263/450
+f 459/260/484 457/257/484 460/259/484
+f 461/260/453 459/257/453 462/259/453
+f 463/260/454 461/257/454 464/259/454
+f 465/260/455 463/257/455 466/259/455
+f 467/260/456 465/257/456 468/259/456
+f 469/260/457 467/257/457 470/259/457
+f 471/260/458 469/257/458 472/259/458
+f 473/260/459 471/257/459 474/259/459
+f 475/260/460 473/257/460 476/259/460
+f 477/260/461 475/257/461 478/259/461
+f 479/260/462 477/257/462 480/259/462
+f 481/260/463 479/257/463 482/259/463
+f 483/260/464 481/257/464 484/259/464
+f 485/260/465 483/257/465 486/259/465
+f 487/260/466 485/257/466 488/259/466
+f 489/260/467 487/257/467 490/259/467
+f 490/258/468 492/259/468 491/260/468
+f 492/258/469 494/259/469 493/260/469
+f 494/258/470 496/259/470 495/260/470
+f 496/258/471 498/259/471 497/260/471
+f 498/258/472 500/259/472 499/260/472
+f 500/258/473 502/259/473 501/260/473
+f 502/258/474 504/259/474 503/260/474
+f 504/258/475 506/259/475 505/260/475
+f 506/258/476 508/259/476 507/260/476
+f 508/258/477 510/259/477 509/260/477
+f 510/258/478 512/259/478 511/260/478
+f 512/258/494 514/259/494 513/260/494
+f 514/258/489 516/259/489 515/260/489
+f 516/258/490 518/259/490 517/260/490
+f 458/262/451 520/264/451 462/263/451
+f 520/264/451 518/265/451 462/263/451
+f 518/265/451 516/266/451 462/263/451
+f 516/266/451 514/267/451 462/263/451
+f 514/267/451 512/268/451 462/263/451
+f 512/268/451 510/269/451 462/263/451
+f 510/269/451 508/270/451 462/263/451
+f 508/270/451 506/271/451 462/263/451
+f 506/271/451 504/272/451 462/263/451
+f 504/272/451 502/273/451 462/263/451
+f 502/273/451 500/274/451 462/263/451
+f 500/274/451 498/275/451 462/263/451
+f 498/275/451 496/276/451 462/263/451
+f 496/276/451 494/277/451 462/263/451
+f 494/277/451 492/278/451 462/263/451
+f 492/278/451 490/279/451 462/263/451
+f 490/279/451 488/280/451 462/263/451
+f 488/280/451 486/281/451 462/263/451
+f 486/281/451 484/282/451 462/263/451
+f 484/282/451 482/283/451 462/263/451
+f 482/283/451 480/284/451 462/263/451
+f 480/284/451 478/285/451 462/263/451
+f 478/285/451 476/286/451 462/263/451
+f 476/286/451 474/287/451 462/263/451
+f 474/287/451 472/288/451 462/263/451
+f 472/288/451 470/289/451 462/263/451
+f 470/289/451 468/290/451 462/263/451
+f 468/290/451 466/291/451 462/263/451
+f 466/291/451 464/292/451 462/263/451
+f 520/258/482 458/259/482 457/260/482
+f 518/258/483 520/259/483 519/260/483
+f 459/262/450 461/264/450 519/263/450
+f 461/264/450 463/265/450 519/263/450
+f 463/265/450 465/266/450 519/263/450
+f 465/266/450 467/267/450 519/263/450
+f 467/267/450 469/268/450 519/263/450
+f 469/268/450 471/269/450 519/263/450
+f 471/269/450 473/270/450 519/263/450
+f 473/270/450 475/271/450 519/263/450
+f 475/271/450 477/272/450 519/263/450
+f 477/272/450 479/273/450 519/263/450
+f 479/273/450 481/274/450 519/263/450
+f 481/274/450 483/275/450 519/263/450
+f 483/275/450 485/276/450 519/263/450
+f 485/276/450 487/277/450 519/263/450
+f 487/277/450 489/278/450 519/263/450
+f 489/278/450 491/279/450 519/263/450
+f 491/279/450 493/280/450 519/263/450
+f 493/280/450 495/281/450 519/263/450
+f 495/281/450 497/282/450 519/263/450
+f 497/282/450 499/283/450 519/263/450
+f 499/283/450 501/284/450 519/263/450
+f 501/284/450 503/285/450 519/263/450
+f 503/285/450 505/286/450 519/263/450
+f 505/286/450 507/287/450 519/263/450
+f 507/287/450 509/288/450 519/263/450
+f 509/288/450 511/289/450 519/263/450
+f 511/289/450 513/290/450 519/263/450
+f 513/290/450 515/291/450 519/263/450
+f 515/291/450 517/292/450 519/263/450
diff --git a/examples/datavisualization/graphgallery/data/pipe.obj b/examples/datavisualization/graphgallery/data/pipe.obj
new file mode 100644
index 000000000..6ccbb2860
--- /dev/null
+++ b/examples/datavisualization/graphgallery/data/pipe.obj
@@ -0,0 +1,330 @@
+# Blender v2.66 (sub 0) OBJ File: 'cylinder.blend'
+# www.blender.org
+o Cylinder
+v 0.000000 -1.000000 -1.000000
+v 0.000000 1.000000 -1.000000
+v 0.195090 -1.000000 -0.980785
+v 0.195090 1.000000 -0.980785
+v 0.382683 -1.000000 -0.923880
+v 0.382683 1.000000 -0.923880
+v 0.555570 -1.000000 -0.831470
+v 0.555570 1.000000 -0.831470
+v 0.707107 -1.000000 -0.707107
+v 0.707107 1.000000 -0.707107
+v 0.831470 -1.000000 -0.555570
+v 0.831470 1.000000 -0.555570
+v 0.923880 -1.000000 -0.382683
+v 0.923880 1.000000 -0.382683
+v 0.980785 -1.000000 -0.195090
+v 0.980785 1.000000 -0.195090
+v 1.000000 -1.000000 -0.000000
+v 1.000000 1.000000 -0.000000
+v 0.980785 -1.000000 0.195090
+v 0.980785 1.000000 0.195090
+v 0.923880 -1.000000 0.382683
+v 0.923880 1.000000 0.382683
+v 0.831470 -1.000000 0.555570
+v 0.831470 1.000000 0.555570
+v 0.707107 -1.000000 0.707107
+v 0.707107 1.000000 0.707107
+v 0.555570 -1.000000 0.831470
+v 0.555570 1.000000 0.831470
+v 0.382683 -1.000000 0.923880
+v 0.382683 1.000000 0.923880
+v 0.195090 -1.000000 0.980785
+v 0.195090 1.000000 0.980785
+v -0.000000 -1.000000 1.000000
+v -0.000000 1.000000 1.000000
+v -0.195091 -1.000000 0.980785
+v -0.195091 1.000000 0.980785
+v -0.382684 -1.000000 0.923879
+v -0.382684 1.000000 0.923879
+v -0.555571 -1.000000 0.831469
+v -0.555571 1.000000 0.831469
+v -0.707107 -1.000000 0.707106
+v -0.707107 1.000000 0.707106
+v -0.831470 -1.000000 0.555570
+v -0.831470 1.000000 0.555570
+v -0.923880 -1.000000 0.382683
+v -0.923880 1.000000 0.382683
+v -0.980785 -1.000000 0.195089
+v -0.980785 1.000000 0.195089
+v -1.000000 -1.000000 -0.000001
+v -1.000000 1.000000 -0.000001
+v -0.980785 -1.000000 -0.195091
+v -0.980785 1.000000 -0.195091
+v -0.923879 -1.000000 -0.382684
+v -0.923879 1.000000 -0.382684
+v -0.831469 -1.000000 -0.555571
+v -0.831469 1.000000 -0.555571
+v -0.707106 -1.000000 -0.707108
+v -0.707106 1.000000 -0.707108
+v -0.555569 -1.000000 -0.831470
+v -0.555569 1.000000 -0.831470
+v -0.382682 -1.000000 -0.923880
+v -0.382682 1.000000 -0.923880
+v -0.195089 -1.000000 -0.980786
+v -0.195089 1.000000 -0.980786
+vt 0.289718 0.879351
+vt 0.288367 0.438844
+vt 0.330714 0.438714
+vt 0.332066 0.879221
+vt 0.370605 0.438592
+vt 0.371956 0.879099
+vt 0.406505 0.438482
+vt 0.407857 0.878988
+vt 0.437036 0.438388
+vt 0.778904 0.000000
+vt 0.780256 0.440507
+vt 0.749725 0.440601
+vt 0.748373 0.000094
+vt 0.713824 0.440711
+vt 0.712473 0.000204
+vt 0.673934 0.440833
+vt 0.672582 0.000326
+vt 0.631586 0.440963
+vt 0.630235 0.000456
+vt 0.588409 0.441095
+vt 0.587057 0.000588
+vt 0.546061 0.441225
+vt 0.544710 0.000718
+vt 0.506171 0.441348
+vt 0.504819 0.000841
+vt 0.470270 0.441458
+vt 0.468919 0.000951
+vt 0.439739 0.441552
+vt 0.720545 0.882916
+vt 0.719194 0.442409
+vt 0.755094 0.442299
+vt 0.756446 0.882806
+vt 0.794985 0.442176
+vt 0.796336 0.882683
+vt 0.837333 0.442046
+vt 0.838684 0.882553
+vt 0.881861 0.882421
+vt 0.880510 0.441914
+vt 0.924209 0.882291
+vt 0.922857 0.441784
+vt 0.964099 0.882168
+vt 0.962748 0.441662
+vt 1.000000 0.882058
+vt 0.717842 0.441552
+vt 0.719194 0.882058
+vt 0.681942 0.441662
+vt 0.683293 0.882169
+vt 0.642051 0.441784
+vt 0.643403 0.882291
+vt 0.599704 0.441914
+vt 0.601055 0.882421
+vt 0.556526 0.442046
+vt 0.557878 0.882553
+vt 0.514179 0.442176
+vt 0.515530 0.882683
+vt 0.474288 0.442299
+vt 0.475640 0.882806
+vt 0.438388 0.442409
+vt 0.097872 0.879939
+vt 0.096520 0.439433
+vt 0.128403 0.879846
+vt 0.127051 0.439339
+vt 0.164303 0.879735
+vt 0.162952 0.439229
+vt 0.204194 0.879613
+vt 0.000000 0.197605
+vt 0.008423 0.155257
+vt 0.000000 0.240783
+vt 0.246541 0.879483
+vt 0.245190 0.438976
+vt 0.202842 0.439106
+vt 0.438388 0.878895
+vt 0.438388 0.001045
+vt 0.998649 0.441552
+vt 0.439739 0.882916
+vt 0.024947 0.115367
+vt 0.048935 0.079466
+vt 0.079466 0.048935
+vt 0.115366 0.024947
+vt 0.155257 0.008424
+vt 0.197605 0.000000
+vt 0.240782 0.000000
+vt 0.283130 0.008423
+vt 0.323021 0.024947
+vt 0.358922 0.048935
+vt 0.389453 0.079466
+vt 0.413441 0.115367
+vt 0.429964 0.155257
+vt 0.438388 0.197605
+vt 0.438388 0.240783
+vt 0.429964 0.283130
+vt 0.413441 0.323021
+vt 0.389453 0.358922
+vt 0.358922 0.389453
+vt 0.323021 0.413441
+vt 0.283130 0.429964
+vt 0.240783 0.438388
+vt 0.197605 0.438388
+vt 0.155257 0.429964
+vt 0.115367 0.413441
+vt 0.079466 0.389453
+vt 0.048935 0.358922
+vt 0.024947 0.323021
+vt 0.008423 0.283130
+vn 0.000000 0.000000 -1.000000
+vn 0.000000 0.685690 -0.727866
+vn 0.142003 0.685690 -0.713889
+vn 0.195074 0.000000 -0.980773
+vn 0.278542 0.685690 -0.672475
+vn 0.382672 0.000000 -0.923856
+vn 0.404370 0.685690 -0.605213
+vn 0.555559 0.000000 -0.831446
+vn 0.514664 0.685690 -0.514664
+vn 0.707083 0.000000 -0.707083
+vn 0.605213 0.685690 -0.404370
+vn 0.831446 0.000000 -0.555559
+vn 0.672475 0.685690 -0.278542
+vn 0.923856 0.000000 -0.382672
+vn 0.713889 0.685690 -0.142003
+vn 0.980773 0.000000 -0.195074
+vn 0.727866 0.685690 0.000000
+vn 1.000000 0.000000 0.000000
+vn 0.713889 0.685690 0.142003
+vn 0.980773 0.000000 0.195074
+vn 0.672475 0.685690 0.278542
+vn 0.923856 0.000000 0.382672
+vn 0.605213 0.685690 0.404370
+vn 0.831446 0.000000 0.555559
+vn 0.514664 0.685690 0.514664
+vn 0.707083 0.000000 0.707083
+vn 0.404370 0.685690 0.605213
+vn 0.555559 0.000000 0.831446
+vn 0.278542 0.685690 0.672475
+vn 0.382672 0.000000 0.923856
+vn 0.142003 0.685690 0.713889
+vn 0.195074 0.000000 0.980773
+vn 0.000000 0.685690 0.727866
+vn 0.000000 0.000000 0.999969
+vn -0.195074 0.000000 0.980773
+vn -0.142003 0.685690 0.713889
+vn -0.382672 0.000000 0.923856
+vn -0.278542 0.685690 0.672475
+vn -0.555559 0.000000 0.831446
+vn -0.404370 0.685690 0.605213
+vn -0.707083 0.000000 0.707083
+vn -0.514664 0.685690 0.514664
+vn -0.831446 0.000000 0.555559
+vn -0.605213 0.685690 0.404370
+vn -0.923856 0.000000 0.382672
+vn -0.672475 0.685690 0.278542
+vn -0.980773 0.000000 0.195074
+vn -0.713889 0.685690 0.142003
+vn -1.000000 0.000000 0.000000
+vn -0.727866 0.685690 0.000000
+vn -0.980773 0.000000 -0.195074
+vn -0.713889 0.685690 -0.142003
+vn -0.923856 0.000000 -0.382672
+vn -0.672475 0.685690 -0.278542
+vn -0.831446 0.000000 -0.555559
+vn -0.605213 0.685690 -0.404370
+vn -0.707083 0.000000 -0.707083
+vn -0.514664 0.685690 -0.514695
+vn -0.555559 0.000000 -0.831446
+vn -0.404370 0.685690 -0.605213
+vn -0.382672 0.000000 -0.923856
+vn -0.195074 0.000000 -0.980773
+vn -0.142003 0.685690 -0.713889
+vn -0.278542 0.685690 -0.672475
+s 1
+f 1/1/1 2/2/2 4/3/3
+f 3/4/4 4/3/3 6/5/5
+f 5/6/6 6/5/5 8/7/7
+f 7/8/8 8/7/7 10/9/9
+f 9/10/10 10/11/9 12/12/11
+f 11/13/12 12/12/11 14/14/13
+f 13/15/14 14/14/13 16/16/15
+f 15/17/16 16/16/15 18/18/17
+f 17/19/18 18/18/17 20/20/19
+f 19/21/20 20/20/19 22/22/21
+f 21/23/22 22/22/21 24/24/23
+f 23/25/24 24/24/23 26/26/25
+f 25/27/26 26/26/25 28/28/27
+f 27/29/28 28/30/27 30/31/29
+f 29/32/30 30/31/29 32/33/31
+f 31/34/32 32/33/31 34/35/33
+f 33/36/34 34/35/33 35/37/35
+f 35/37/35 36/38/36 37/39/37
+f 37/39/37 38/40/38 39/41/39
+f 39/41/39 40/42/40 41/43/41
+f 41/44/41 42/45/42 43/46/43
+f 43/46/43 44/47/44 45/48/45
+f 45/48/45 46/49/46 47/50/47
+f 47/50/47 48/51/48 49/52/49
+f 49/52/49 50/53/50 51/54/51
+f 51/54/51 52/55/52 53/56/53
+f 53/56/53 54/57/54 55/58/55
+f 55/59/55 56/60/56 57/61/57
+f 57/61/57 58/62/58 59/63/59
+f 59/63/59 60/64/60 61/65/61
+f 4/66/3 2/67/2 6/68/5
+f 63/69/62 64/70/63 1/1/1
+f 61/65/61 62/71/64 63/69/62
+f 3/4/4 1/1/1 4/3/3
+f 5/6/6 3/4/4 6/5/5
+f 7/8/8 5/6/6 8/7/7
+f 9/72/10 7/8/8 10/9/9
+f 11/13/12 9/10/10 12/12/11
+f 13/15/14 11/13/12 14/14/13
+f 15/17/16 13/15/14 16/16/15
+f 17/19/18 15/17/16 18/18/17
+f 19/21/20 17/19/18 20/20/19
+f 21/23/22 19/21/20 22/22/21
+f 23/25/24 21/23/22 24/24/23
+f 25/27/26 23/25/24 26/26/25
+f 27/73/28 25/27/26 28/28/27
+f 29/32/30 27/29/28 30/31/29
+f 31/34/32 29/32/30 32/33/31
+f 33/36/34 31/34/32 34/35/33
+f 34/35/33 36/38/36 35/37/35
+f 36/38/36 38/40/38 37/39/37
+f 38/40/38 40/42/40 39/41/39
+f 40/42/40 42/74/42 41/43/41
+f 42/45/42 44/47/44 43/46/43
+f 44/47/44 46/49/46 45/48/45
+f 46/49/46 48/51/48 47/50/47
+f 48/51/48 50/53/50 49/52/49
+f 50/53/50 52/55/52 51/54/51
+f 52/55/52 54/57/54 53/56/53
+f 54/57/54 56/75/56 55/58/55
+f 56/60/56 58/62/58 57/61/57
+f 58/62/58 60/64/60 59/63/59
+f 60/64/60 62/71/64 61/65/61
+f 2/67/2 64/76/63 6/68/5
+f 64/76/63 62/77/64 6/68/5
+f 62/77/64 60/78/60 6/68/5
+f 60/78/60 58/79/58 6/68/5
+f 58/79/58 56/80/56 6/68/5
+f 56/80/56 54/81/54 6/68/5
+f 54/81/54 52/82/52 6/68/5
+f 52/82/52 50/83/50 6/68/5
+f 50/83/50 48/84/48 6/68/5
+f 48/84/48 46/85/46 6/68/5
+f 46/85/46 44/86/44 6/68/5
+f 44/86/44 42/87/42 6/68/5
+f 42/87/42 40/88/40 6/68/5
+f 40/88/40 38/89/38 6/68/5
+f 38/89/38 36/90/36 6/68/5
+f 36/90/36 34/91/33 6/68/5
+f 34/91/33 32/92/31 6/68/5
+f 32/92/31 30/93/29 6/68/5
+f 30/93/29 28/94/27 6/68/5
+f 28/94/27 26/95/25 6/68/5
+f 26/95/25 24/96/23 6/68/5
+f 24/96/23 22/97/21 6/68/5
+f 22/97/21 20/98/19 6/68/5
+f 20/98/19 18/99/17 6/68/5
+f 18/99/17 16/100/15 6/68/5
+f 16/100/15 14/101/13 6/68/5
+f 14/101/13 12/102/11 6/68/5
+f 12/102/11 10/103/9 8/104/7
+f 6/68/5 12/102/11 8/104/7
+f 64/70/63 2/2/2 1/1/1
+f 62/71/64 64/70/63 63/69/62
diff --git a/examples/datavisualization/graphgallery/data/raindata.txt b/examples/datavisualization/graphgallery/data/raindata.txt
new file mode 100644
index 000000000..d95589219
--- /dev/null
+++ b/examples/datavisualization/graphgallery/data/raindata.txt
@@ -0,0 +1,158 @@
+# Rainfall per month from 2010 to 2022 in Northern Finland (Oulu)
+# Format: year, month, rainfall
+2010,1, 0,
+2010,2, 3.4,
+2010,3, 52,
+2010,4, 33.8,
+2010,5, 45.6,
+2010,6, 43.8,
+2010,7, 104.6,
+2010,8, 105.4,
+2010,9, 107.2,
+2010,10,38.6,
+2010,11,17.8,
+2010,12,0,
+2011,1, 8.2,
+2011,2, 1.6,
+2011,3, 27.4,
+2011,4, 15.8,
+2011,5, 57.6,
+2011,6, 85.2,
+2011,7, 127,
+2011,8, 72.2,
+2011,9, 82.2,
+2011,10,62.4,
+2011,11,31.6,
+2011,12,53.8,
+2012,1, 0,
+2012,2, 5,
+2012,3, 32.4,
+2012,4, 57.6,
+2012,5, 71.4,
+2012,6, 60.8,
+2012,7, 109,
+2012,8, 43.6,
+2012,9, 79.4,
+2012,10,117.2,
+2012,11,59,
+2012,12,0.2,
+2013,1, 28,
+2013,2, 19,
+2013,3, 0,
+2013,4, 37.6,
+2013,5, 44.2,
+2013,6, 104.8,
+2013,7, 84.2,
+2013,8, 57.2,
+2013,9, 37.2,
+2013,10,64.6,
+2013,11,77.8,
+2013,12,92.8,
+2014,1, 23.8,
+2014,2, 23.6,
+2014,3, 15.4,
+2014,4, 13.2,
+2014,5, 36.4,
+2014,6, 26.4,
+2014,7, 95.8,
+2014,8, 81.8,
+2014,9, 13.8,
+2014,10,94.6,
+2014,11,44.6,
+2014,12,31,
+2015,1, 37.4,
+2015,2, 21,
+2015,3, 42,
+2015,4, 8.8,
+2015,5, 82.4,
+2015,6, 150,
+2015,7, 56.8,
+2015,8, 67.2,
+2015,9, 131.2,
+2015,10,38.4,
+2015,11,83.4,
+2015,12,47.8,
+2016,1, 12.4,
+2016,2, 34.8,
+2016,3, 29,
+2016,4, 40.4,
+2016,5, 32.4,
+2016,6, 80.2,
+2016,7, 102.6,
+2016,8, 95.6,
+2016,9, 40.2,
+2016,10,7.8,
+2016,11,39.6,
+2016,12,8.8,
+2017,1, 9.4,
+2017,2, 6.6,
+2017,3, 29,
+2017,4, 46.2,
+2017,5, 43.2,
+2017,6, 25.2,
+2017,7, 72.4,
+2017,8, 58.8,
+2017,9, 68.8,
+2017,10,45.8,
+2017,11,36.8,
+2017,12,29.6,
+2018,1, 19.8,
+2018,2, 0.8,
+2018,3, 4,
+2018,4, 23.2,
+2018,5, 13.2,
+2018,6, 62.8,
+2018,7, 33,
+2018,8, 96.6,
+2018,9, 72.6,
+2018,10,48.8,
+2018,11,31.8,
+2018,12,12.8,
+2019,1, 0.2,
+2019,2, 24.8,
+2019,3, 32,
+2019,4, 8.8,
+2019,5, 71.4,
+2019,6, 65.8,
+2019,7, 17.6,
+2019,8, 90,
+2019,9, 50,
+2019,10,77,
+2019,11,27,
+2019,12,43.2,
+2020,1, 28.8,
+2020,2, 45,
+2020,3, 18.6,
+2020,4, 13,
+2020,5, 30.8,
+2020,6, 21.4,
+2020,7, 163.6,
+2020,8, 12,
+2020,9, 102.4,
+2020,10,133.2,
+2020,11,69.8,
+2020,12,40.6,
+2021,1, 0.4,
+2021,2, 21.6,
+2021,3, 24,
+2021,4, 51.4,
+2021,5, 76.4,
+2021,6, 29.2,
+2021,7, 36.4,
+2021,8, 116,
+2021,9, 72.4,
+2021,10,93.4,
+2021,11,21,
+2021,12,10.2,
+2022,1, 8.6,
+2022,2, 6.6,
+2022,3, 5.2,
+2022,4, 15.2,
+2022,5, 37.6,
+2022,6, 45,
+2022,7, 67.4,
+2022,8, 161.6,
+2022,9, 22.8,
+2022,10,75.2,
+2022,11,21.8,
+2022,12,0.2
diff --git a/examples/datavisualization/graphgallery/data/refinery.obj b/examples/datavisualization/graphgallery/data/refinery.obj
new file mode 100644
index 000000000..ed90c3619
--- /dev/null
+++ b/examples/datavisualization/graphgallery/data/refinery.obj
@@ -0,0 +1,2330 @@
+# Blender v2.66 (sub 0) OBJ File: 'oilrefinery.blend'
+# www.blender.org
+v -2.719012 -0.196783 4.805554
+v -2.719012 -0.196783 -4.824533
+v 2.730989 -0.196783 -4.824533
+v 2.730989 -0.196783 4.805554
+v -2.719012 0.012961 4.805554
+v -2.719012 0.012961 -4.824533
+v 2.730989 0.012961 -4.824533
+v 2.730989 0.012961 4.805554
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 0.000000 1.000000
+vt 1.000000 1.000000
+vn -0.577349 0.577349 0.577349
+vn -0.577349 0.577349 -0.577349
+vn -0.577349 -0.577349 0.577349
+vn 0.577349 0.577349 -0.577349
+vn 0.577349 -0.577349 -0.577349
+vn 0.577349 0.577349 0.577349
+vn 0.577349 -0.577349 0.577349
+vn -0.577349 -0.577349 -0.577349
+s 1
+f 5/1/1 6/2/2 1/3/3
+f 6/1/2 7/2/4 3/4/5
+f 7/1/4 8/2/6 4/4/7
+f 8/1/6 5/2/1 1/4/3
+f 1/1/3 2/2/8 3/4/5
+f 8/1/6 7/2/4 6/4/2
+f 6/2/2 2/4/8 1/3/3
+f 2/3/8 6/1/2 3/4/5
+f 3/3/5 7/1/4 4/4/7
+f 4/3/7 8/1/6 1/4/3
+f 4/3/7 1/1/3 3/4/5
+f 5/3/1 8/1/6 6/4/2
+v -1.384247 1.252743 0.422195
+v -1.384247 2.069450 0.422195
+v -1.303725 1.252743 0.430041
+v -1.303725 2.069450 0.430041
+v -1.226298 1.252743 0.453279
+v -1.226298 2.069450 0.453279
+v -1.154941 1.252743 0.491015
+v -1.154941 2.069450 0.491015
+v -1.092396 1.252743 0.541799
+v -1.092396 2.069450 0.541799
+v -1.041066 1.252743 0.603679
+v -1.041066 2.069450 0.603679
+v -1.002925 1.252743 0.674278
+v -1.002925 2.069450 0.674278
+v -0.979437 1.252743 0.750883
+v -0.979437 2.069450 0.750883
+v -0.971507 1.252743 0.830548
+v -0.971507 2.069450 0.830548
+v -0.979437 1.252743 0.910214
+v -0.979437 2.069450 0.910214
+v -1.002925 1.252743 0.986818
+v -1.002925 2.069450 0.986818
+v -1.041066 1.252743 1.057417
+v -1.041066 2.069450 1.057417
+v -1.092396 1.252743 1.119298
+v -1.092396 2.069450 1.119298
+v -1.154941 1.252743 1.170082
+v -1.154941 2.069450 1.170082
+v -1.226298 1.252743 1.207818
+v -1.226298 2.069450 1.207818
+v -1.303726 1.252743 1.231055
+v -1.303726 2.069450 1.231055
+v -1.384247 1.252743 1.238902
+v -1.384247 2.069450 1.238902
+v -1.464769 1.252743 1.231055
+v -1.464769 2.069450 1.231055
+v -1.542196 1.252743 1.207818
+v -1.542196 2.069450 1.207818
+v -1.613554 1.252743 1.170082
+v -1.613554 2.069450 1.170082
+v -1.676099 1.252743 1.119298
+v -1.676099 2.069450 1.119298
+v -1.727429 1.252743 1.057417
+v -1.727429 2.069450 1.057417
+v -1.765570 1.252743 0.986818
+v -1.765570 2.069450 0.986818
+v -1.789057 1.252743 0.910214
+v -1.789057 2.069450 0.910214
+v -1.796988 1.252743 0.830548
+v -1.796988 2.069450 0.830548
+v -1.789057 1.252743 0.750882
+v -1.789057 2.069450 0.750882
+v -1.765570 1.252743 0.674278
+v -1.765570 2.069450 0.674278
+v -1.727428 1.252743 0.603679
+v -1.727428 2.069450 0.603679
+v -1.676098 1.252743 0.541798
+v -1.676098 2.069450 0.541798
+v -1.613553 1.252743 0.491015
+v -1.613553 2.069450 0.491015
+v -1.542196 1.252743 0.453279
+v -1.542196 2.069450 0.453279
+v -1.464768 1.252743 0.430041
+v -1.464768 2.069450 0.430041
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vt 0.500000 1.000000
+vt 0.597545 0.990393
+vt 0.402456 0.990393
+vt 0.691342 0.961940
+vt 0.777785 0.915735
+vt 0.853553 0.853553
+vt 0.915735 0.777785
+vt 0.961940 0.691342
+vt 0.990393 0.597545
+vt 1.000000 0.500000
+vt 0.990393 0.402455
+vt 0.961940 0.308658
+vt 0.915735 0.222215
+vt 0.853553 0.146447
+vt 0.777785 0.084265
+vt 0.691342 0.038060
+vt 0.597545 0.009607
+vt 0.500000 0.000000
+vt 0.402455 0.009607
+vt 0.308658 0.038060
+vt 0.222215 0.084265
+vt 0.146446 0.146447
+vt 0.084265 0.222215
+vt 0.038060 0.308659
+vt 0.009607 0.402455
+vt 0.000000 0.500000
+vt 0.009607 0.597546
+vt 0.038060 0.691342
+vt 0.084266 0.777786
+vt 0.146447 0.853554
+vt 0.222215 0.915735
+vt 0.308659 0.961940
+vn 0.096985 0.000000 -0.995286
+vn 0.287455 0.000000 -0.957794
+vn 0.467486 0.000000 -0.884001
+vn 0.630338 0.000000 -0.776321
+vn 0.769672 0.000000 -0.638440
+vn 0.879812 0.000000 -0.475321
+vn 0.956070 0.000000 -0.293137
+vn 0.995081 0.000000 -0.099061
+vn 0.995081 0.000000 0.099061
+vn 0.956070 0.000000 0.293137
+vn 0.879813 0.000000 0.475321
+vn 0.769672 0.000000 0.638440
+vn 0.630338 0.000000 0.776321
+vn 0.467486 0.000000 0.884001
+vn 0.287455 0.000000 0.957794
+vn 0.096986 0.000000 0.995286
+vn -0.096986 0.000000 0.995286
+vn -0.287456 0.000000 0.957794
+vn -0.467486 0.000000 0.884001
+vn -0.630338 0.000000 0.776321
+vn -0.769673 0.000000 0.638438
+vn -0.879812 0.000000 0.475322
+vn -0.956071 0.000000 0.293135
+vn -0.995081 0.000000 0.099059
+vn -0.995081 -0.000000 -0.099061
+vn -0.956070 -0.000000 -0.293138
+vn -0.879812 -0.000000 -0.475322
+vn -0.769671 -0.000000 -0.638441
+vn -0.630337 -0.000000 -0.776322
+vn -0.467484 -0.000000 -0.884001
+vn -0.000000 1.000000 0.000000
+vn -0.096985 -0.000000 -0.995286
+vn -0.287454 -0.000000 -0.957794
+vn 0.000000 -1.000000 -0.000000
+s off
+f 9/5/9 10/6/9 12/7/9
+f 11/5/10 12/6/10 14/7/10
+f 13/5/11 14/6/11 16/7/11
+f 15/5/12 16/6/12 18/7/12
+f 17/5/13 18/6/13 20/7/13
+f 19/5/14 20/6/14 22/7/14
+f 21/5/15 22/6/15 24/7/15
+f 23/5/16 24/6/16 26/7/16
+f 25/5/17 26/6/17 28/7/17
+f 27/5/18 28/6/18 30/7/18
+f 29/5/19 30/6/19 32/7/19
+f 31/5/20 32/6/20 34/7/20
+f 33/5/21 34/6/21 36/7/21
+f 35/5/22 36/6/22 38/7/22
+f 37/5/23 38/6/23 40/7/23
+f 39/5/24 40/6/24 42/7/24
+f 41/5/25 42/6/25 43/8/25
+f 43/5/26 44/6/26 45/8/26
+f 45/5/27 46/6/27 47/8/27
+f 47/5/28 48/6/28 49/8/28
+f 49/5/29 50/6/29 51/8/29
+f 51/5/30 52/6/30 53/8/30
+f 53/5/31 54/6/31 55/8/31
+f 55/5/32 56/6/32 57/8/32
+f 57/5/33 58/6/33 59/8/33
+f 59/5/34 60/6/34 61/8/34
+f 61/5/35 62/6/35 63/8/35
+f 63/5/36 64/6/36 65/8/36
+f 65/5/37 66/6/37 67/8/37
+f 67/5/38 68/6/38 69/8/38
+f 12/9/39 10/10/39 14/11/39
+f 71/5/40 72/6/40 9/8/40
+f 69/5/41 70/6/41 71/8/41
+f 9/9/42 11/10/42 71/11/42
+f 11/8/9 9/5/9 12/7/9
+f 13/8/10 11/5/10 14/7/10
+f 15/8/11 13/5/11 16/7/11
+f 17/8/12 15/5/12 18/7/12
+f 19/8/13 17/5/13 20/7/13
+f 21/8/14 19/5/14 22/7/14
+f 23/8/15 21/5/15 24/7/15
+f 25/8/16 23/5/16 26/7/16
+f 27/8/17 25/5/17 28/7/17
+f 29/8/18 27/5/18 30/7/18
+f 31/8/19 29/5/19 32/7/19
+f 33/8/20 31/5/20 34/7/20
+f 35/8/21 33/5/21 36/7/21
+f 37/8/22 35/5/22 38/7/22
+f 39/8/23 37/5/23 40/7/23
+f 41/8/24 39/5/24 42/7/24
+f 42/6/25 44/7/25 43/8/25
+f 44/6/26 46/7/26 45/8/26
+f 46/6/27 48/7/27 47/8/27
+f 48/6/28 50/7/28 49/8/28
+f 50/6/29 52/7/29 51/8/29
+f 52/6/30 54/7/30 53/8/30
+f 54/6/31 56/7/31 55/8/31
+f 56/6/32 58/7/32 57/8/32
+f 58/6/33 60/7/33 59/8/33
+f 60/6/34 62/7/34 61/8/34
+f 62/6/35 64/7/35 63/8/35
+f 64/6/36 66/7/36 65/8/36
+f 66/6/37 68/7/37 67/8/37
+f 68/6/38 70/7/38 69/8/38
+f 10/10/39 72/12/39 14/11/39
+f 72/12/39 70/13/39 14/11/39
+f 70/13/39 68/14/39 14/11/39
+f 68/14/39 66/15/39 14/11/39
+f 66/15/39 64/16/39 14/11/39
+f 64/16/39 62/17/39 14/11/39
+f 62/17/39 60/18/39 14/11/39
+f 60/18/39 58/19/39 14/11/39
+f 58/19/39 56/20/39 14/11/39
+f 56/20/39 54/21/39 14/11/39
+f 54/21/39 52/22/39 14/11/39
+f 52/22/39 50/23/39 14/11/39
+f 50/23/39 48/24/39 14/11/39
+f 48/24/39 46/25/39 14/11/39
+f 46/25/39 44/26/39 14/11/39
+f 44/26/39 42/27/39 14/11/39
+f 42/27/39 40/28/39 14/11/39
+f 40/28/39 38/29/39 14/11/39
+f 38/29/39 36/30/39 14/11/39
+f 36/30/39 34/31/39 14/11/39
+f 34/31/39 32/32/39 14/11/39
+f 32/32/39 30/33/39 14/11/39
+f 30/33/39 28/34/39 14/11/39
+f 28/34/39 26/35/39 14/11/39
+f 26/35/39 24/36/39 14/11/39
+f 24/36/39 22/37/39 14/11/39
+f 22/37/39 20/38/39 14/11/39
+f 20/38/39 18/39/39 16/40/39
+f 14/11/39 20/38/39 16/40/39
+f 72/6/40 10/7/40 9/8/40
+f 70/6/41 72/7/41 71/8/41
+f 11/10/42 13/12/42 71/11/42
+f 13/12/42 15/13/42 71/11/42
+f 15/13/42 17/14/42 71/11/42
+f 17/14/42 19/15/42 71/11/42
+f 19/15/42 21/16/42 71/11/42
+f 21/16/42 23/17/42 71/11/42
+f 23/17/42 25/18/42 71/11/42
+f 25/18/42 27/19/42 71/11/42
+f 27/19/42 29/20/42 71/11/42
+f 29/20/42 31/21/42 71/11/42
+f 31/21/42 33/22/42 71/11/42
+f 33/22/42 35/23/42 71/11/42
+f 35/23/42 37/24/42 71/11/42
+f 37/24/42 39/25/42 71/11/42
+f 39/25/42 41/26/42 71/11/42
+f 41/26/42 43/27/42 71/11/42
+f 43/27/42 45/28/42 71/11/42
+f 45/28/42 47/29/42 71/11/42
+f 47/29/42 49/30/42 71/11/42
+f 49/30/42 51/31/42 71/11/42
+f 51/31/42 53/32/42 71/11/42
+f 53/32/42 55/33/42 71/11/42
+f 55/33/42 57/34/42 71/11/42
+f 57/34/42 59/35/42 71/11/42
+f 59/35/42 61/36/42 71/11/42
+f 61/36/42 63/37/42 71/11/42
+f 63/37/42 65/38/42 71/11/42
+f 65/38/42 67/39/42 71/11/42
+f 67/39/42 69/40/42 71/11/42
+v 1.365790 1.252743 0.402799
+v 1.365790 2.069450 0.402799
+v 1.446312 1.252743 0.410646
+v 1.446312 2.069450 0.410646
+v 1.523739 1.252743 0.433883
+v 1.523739 2.069450 0.433883
+v 1.595097 1.252743 0.471619
+v 1.595097 2.069450 0.471619
+v 1.657642 1.252743 0.522403
+v 1.657642 2.069450 0.522403
+v 1.708972 1.252743 0.584284
+v 1.708972 2.069450 0.584284
+v 1.747113 1.252743 0.654883
+v 1.747113 2.069450 0.654883
+v 1.770600 1.252743 0.731487
+v 1.770600 2.069450 0.731487
+v 1.778531 1.252743 0.811153
+v 1.778531 2.069450 0.811153
+v 1.770600 1.252743 0.890818
+v 1.770600 2.069450 0.890818
+v 1.747113 1.252743 0.967423
+v 1.747113 2.069450 0.967423
+v 1.708972 1.252743 1.038022
+v 1.708972 2.069450 1.038022
+v 1.657642 1.252743 1.099902
+v 1.657642 2.069450 1.099902
+v 1.595097 1.252743 1.150686
+v 1.595097 2.069450 1.150686
+v 1.523739 1.252743 1.188422
+v 1.523739 2.069450 1.188422
+v 1.446312 1.252743 1.211660
+v 1.446312 2.069450 1.211660
+v 1.365790 1.252743 1.219506
+v 1.365790 2.069450 1.219506
+v 1.285269 1.252743 1.211660
+v 1.285269 2.069450 1.211660
+v 1.207841 1.252743 1.188422
+v 1.207841 2.069450 1.188422
+v 1.136484 1.252743 1.150686
+v 1.136484 2.069450 1.150686
+v 1.073939 1.252743 1.099902
+v 1.073939 2.069450 1.099902
+v 1.022609 1.252743 1.038021
+v 1.022609 2.069450 1.038021
+v 0.984468 1.252743 0.967422
+v 0.984468 2.069450 0.967422
+v 0.960981 1.252743 0.890818
+v 0.960981 2.069450 0.890818
+v 0.953050 1.252743 0.811152
+v 0.953050 2.069450 0.811152
+v 0.960981 1.252743 0.731486
+v 0.960981 2.069450 0.731486
+v 0.984468 1.252743 0.654882
+v 0.984468 2.069450 0.654882
+v 1.022609 1.252743 0.584283
+v 1.022609 2.069450 0.584283
+v 1.073939 1.252743 0.522403
+v 1.073939 2.069450 0.522403
+v 1.136485 1.252743 0.471619
+v 1.136485 2.069450 0.471619
+v 1.207842 1.252743 0.433883
+v 1.207842 2.069450 0.433883
+v 1.285269 1.252743 0.410646
+v 1.285269 2.069450 0.410646
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vt 0.500000 1.000000
+vt 0.597545 0.990393
+vt 0.402456 0.990393
+vt 0.691342 0.961940
+vt 0.777785 0.915735
+vt 0.853553 0.853553
+vt 0.915735 0.777785
+vt 0.961940 0.691342
+vt 0.990393 0.597545
+vt 1.000000 0.500000
+vt 0.990393 0.402455
+vt 0.961940 0.308658
+vt 0.915735 0.222215
+vt 0.853553 0.146447
+vt 0.777785 0.084265
+vt 0.691342 0.038060
+vt 0.597545 0.009607
+vt 0.500000 0.000000
+vt 0.402455 0.009607
+vt 0.308658 0.038060
+vt 0.222215 0.084265
+vt 0.146446 0.146447
+vt 0.084265 0.222215
+vt 0.038060 0.308659
+vt 0.009607 0.402455
+vt 0.000000 0.500000
+vt 0.009607 0.597546
+vt 0.038060 0.691342
+vt 0.084266 0.777786
+vt 0.146447 0.853554
+vt 0.222215 0.915735
+vt 0.308659 0.961940
+vn -0.879812 0.000000 0.475321
+vn -0.956071 0.000000 0.293136
+vn -0.956070 -0.000000 -0.293137
+s off
+f 73/41/9 74/42/9 76/43/9
+f 75/41/10 76/42/10 78/43/10
+f 77/41/11 78/42/11 80/43/11
+f 79/41/12 80/42/12 82/43/12
+f 81/41/13 82/42/13 84/43/13
+f 83/41/14 84/42/14 86/43/14
+f 85/41/15 86/42/15 88/43/15
+f 87/41/16 88/42/16 90/43/16
+f 89/41/17 90/42/17 92/43/17
+f 91/41/18 92/42/18 94/43/18
+f 93/41/19 94/42/19 96/43/19
+f 95/41/20 96/42/20 98/43/20
+f 97/41/21 98/42/21 100/43/21
+f 99/41/22 100/42/22 102/43/22
+f 101/41/23 102/42/23 104/43/23
+f 103/41/24 104/42/24 106/43/24
+f 105/41/25 106/42/25 107/44/25
+f 107/41/26 108/42/26 109/44/26
+f 109/41/27 110/42/27 111/44/27
+f 111/41/28 112/42/28 113/44/28
+f 113/41/29 114/42/29 115/44/29
+f 115/41/43 116/42/43 117/44/43
+f 117/41/44 118/42/44 119/44/44
+f 119/41/32 120/42/32 121/44/32
+f 121/41/33 122/42/33 123/44/33
+f 123/41/45 124/42/45 125/44/45
+f 125/41/35 126/42/35 127/44/35
+f 127/41/36 128/42/36 129/44/36
+f 129/41/37 130/42/37 131/44/37
+f 131/41/38 132/42/38 133/44/38
+f 76/45/39 74/46/39 78/47/39
+f 135/41/40 136/42/40 73/44/40
+f 133/41/41 134/42/41 135/44/41
+f 73/45/42 75/46/42 135/47/42
+f 75/44/9 73/41/9 76/43/9
+f 77/44/10 75/41/10 78/43/10
+f 79/44/11 77/41/11 80/43/11
+f 81/44/12 79/41/12 82/43/12
+f 83/44/13 81/41/13 84/43/13
+f 85/44/14 83/41/14 86/43/14
+f 87/44/15 85/41/15 88/43/15
+f 89/44/16 87/41/16 90/43/16
+f 91/44/17 89/41/17 92/43/17
+f 93/44/18 91/41/18 94/43/18
+f 95/44/19 93/41/19 96/43/19
+f 97/44/20 95/41/20 98/43/20
+f 99/44/21 97/41/21 100/43/21
+f 101/44/22 99/41/22 102/43/22
+f 103/44/23 101/41/23 104/43/23
+f 105/44/24 103/41/24 106/43/24
+f 106/42/25 108/43/25 107/44/25
+f 108/42/26 110/43/26 109/44/26
+f 110/42/27 112/43/27 111/44/27
+f 112/42/28 114/43/28 113/44/28
+f 114/42/29 116/43/29 115/44/29
+f 116/42/43 118/43/43 117/44/43
+f 118/42/44 120/43/44 119/44/44
+f 120/42/32 122/43/32 121/44/32
+f 122/42/33 124/43/33 123/44/33
+f 124/42/45 126/43/45 125/44/45
+f 126/42/35 128/43/35 127/44/35
+f 128/42/36 130/43/36 129/44/36
+f 130/42/37 132/43/37 131/44/37
+f 132/42/38 134/43/38 133/44/38
+f 74/46/39 136/48/39 78/47/39
+f 136/48/39 134/49/39 78/47/39
+f 134/49/39 132/50/39 78/47/39
+f 132/50/39 130/51/39 78/47/39
+f 130/51/39 128/52/39 78/47/39
+f 128/52/39 126/53/39 78/47/39
+f 126/53/39 124/54/39 78/47/39
+f 124/54/39 122/55/39 78/47/39
+f 122/55/39 120/56/39 78/47/39
+f 120/56/39 118/57/39 78/47/39
+f 118/57/39 116/58/39 78/47/39
+f 116/58/39 114/59/39 78/47/39
+f 114/59/39 112/60/39 78/47/39
+f 112/60/39 110/61/39 78/47/39
+f 110/61/39 108/62/39 78/47/39
+f 108/62/39 106/63/39 78/47/39
+f 106/63/39 104/64/39 78/47/39
+f 104/64/39 102/65/39 78/47/39
+f 102/65/39 100/66/39 78/47/39
+f 100/66/39 98/67/39 78/47/39
+f 98/67/39 96/68/39 78/47/39
+f 96/68/39 94/69/39 78/47/39
+f 94/69/39 92/70/39 78/47/39
+f 92/70/39 90/71/39 78/47/39
+f 90/71/39 88/72/39 78/47/39
+f 88/72/39 86/73/39 78/47/39
+f 86/73/39 84/74/39 78/47/39
+f 84/74/39 82/75/39 80/76/39
+f 78/47/39 84/74/39 80/76/39
+f 136/42/40 74/43/40 73/44/40
+f 134/42/41 136/43/41 135/44/41
+f 75/46/42 77/48/42 135/47/42
+f 77/48/42 79/49/42 135/47/42
+f 79/49/42 81/50/42 135/47/42
+f 81/50/42 83/51/42 135/47/42
+f 83/51/42 85/52/42 135/47/42
+f 85/52/42 87/53/42 135/47/42
+f 87/53/42 89/54/42 135/47/42
+f 89/54/42 91/55/42 135/47/42
+f 91/55/42 93/56/42 135/47/42
+f 93/56/42 95/57/42 135/47/42
+f 95/57/42 97/58/42 135/47/42
+f 97/58/42 99/59/42 135/47/42
+f 99/59/42 101/60/42 135/47/42
+f 101/60/42 103/61/42 135/47/42
+f 103/61/42 105/62/42 135/47/42
+f 105/62/42 107/63/42 135/47/42
+f 107/63/42 109/64/42 135/47/42
+f 109/64/42 111/65/42 135/47/42
+f 111/65/42 113/66/42 135/47/42
+f 113/66/42 115/67/42 135/47/42
+f 115/67/42 117/68/42 135/47/42
+f 117/68/42 119/69/42 135/47/42
+f 119/69/42 121/70/42 135/47/42
+f 121/70/42 123/71/42 135/47/42
+f 123/71/42 125/72/42 135/47/42
+f 125/72/42 127/73/42 135/47/42
+f 127/73/42 129/74/42 135/47/42
+f 129/74/42 131/75/42 135/47/42
+f 131/75/42 133/76/42 135/47/42
+v -2.345663 0.025178 -0.194338
+v -2.345663 0.025178 -0.594338
+v -1.345663 0.025178 -0.594338
+v -1.345663 0.025178 -0.194338
+v -2.345663 1.525178 -0.194338
+v -2.345663 1.525178 -0.594338
+v -1.345663 1.525178 -0.594338
+v -1.345663 1.525178 -0.194338
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 0.000000 1.000000
+vt 1.000000 1.000000
+vn -1.000000 0.000000 0.000000
+vn 0.000000 0.000000 -1.000000
+vn 1.000000 -0.000000 0.000000
+vn 0.000000 0.000000 1.000000
+s off
+f 141/77/46 142/78/46 137/79/46
+f 142/77/47 143/78/47 138/79/47
+f 143/77/48 144/78/48 140/80/48
+f 144/77/49 141/78/49 137/80/49
+f 137/77/42 138/78/42 139/80/42
+f 144/77/39 143/78/39 142/80/39
+f 142/78/46 138/80/46 137/79/46
+f 143/78/47 139/80/47 138/79/47
+f 139/79/48 143/77/48 140/80/48
+f 140/79/49 144/77/49 137/80/49
+f 140/79/42 137/77/42 139/80/42
+f 141/79/39 144/77/39 142/80/39
+v 1.364119 0.019809 -0.205019
+v 1.364119 0.019809 -0.605019
+v 2.364120 0.019809 -0.605019
+v 2.364120 0.019809 -0.205019
+v 1.364119 1.419809 -0.205019
+v 1.364119 1.419809 -0.605019
+v 2.364120 1.419809 -0.605019
+v 2.364120 1.419809 -0.205019
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 0.000000 1.000000
+vt 1.000000 1.000000
+s off
+f 149/81/46 150/82/46 145/83/46
+f 150/81/47 151/82/47 146/83/47
+f 151/81/48 152/82/48 148/84/48
+f 152/81/49 149/82/49 145/84/49
+f 145/81/42 146/82/42 147/84/42
+f 152/81/39 151/82/39 150/84/39
+f 150/82/46 146/84/46 145/83/46
+f 151/82/47 147/84/47 146/83/47
+f 147/83/48 151/81/48 148/84/48
+f 148/83/49 152/81/49 145/84/49
+f 148/83/42 145/81/42 147/84/42
+f 149/83/39 152/81/39 150/84/39
+v -1.384247 0.015116 3.993316
+v -1.384247 0.015113 -0.006684
+v -1.189157 0.034331 3.993316
+v -1.189157 0.034328 -0.006684
+v -1.001564 0.091236 3.993316
+v -1.001564 0.091234 -0.006684
+v -0.828677 0.183646 3.993316
+v -0.828677 0.183644 -0.006684
+v -0.677140 0.308009 3.993316
+v -0.677140 0.308007 -0.006684
+v -0.552777 0.459546 3.993316
+v -0.552777 0.459543 -0.006684
+v -0.460368 0.632432 3.993316
+v -0.460368 0.632430 -0.006684
+v -0.403462 0.820025 3.993316
+v -0.403462 0.820023 -0.006684
+v -0.384247 1.015116 3.993316
+v -0.384247 1.015113 -0.006684
+v -0.403462 1.210206 3.993316
+v -0.403462 1.210203 -0.006685
+v -0.460368 1.397799 3.993315
+v -0.460368 1.397797 -0.006685
+v -0.552777 1.570686 3.993315
+v -0.552777 1.570683 -0.006685
+v -0.677140 1.722223 3.993315
+v -0.677140 1.722220 -0.006685
+v -0.828677 1.846586 3.993315
+v -0.828677 1.846583 -0.006685
+v -1.001564 1.938995 3.993315
+v -1.001564 1.938993 -0.006685
+v -1.189157 1.995901 3.993315
+v -1.189157 1.995899 -0.006685
+v -1.384247 2.015116 3.993315
+v -1.384247 2.015113 -0.006685
+v -1.579338 1.995901 3.993315
+v -1.579338 1.995898 -0.006685
+v -1.766931 1.938995 3.993315
+v -1.766931 1.938993 -0.006685
+v -1.939818 1.846585 3.993315
+v -1.939818 1.846583 -0.006685
+v -2.091354 1.722222 3.993315
+v -2.091354 1.722220 -0.006685
+v -2.215717 1.570685 3.993315
+v -2.215717 1.570683 -0.006685
+v -2.308127 1.397799 3.993315
+v -2.308127 1.397796 -0.006685
+v -2.365032 1.210205 3.993316
+v -2.365032 1.210203 -0.006685
+v -2.384247 1.015115 3.993316
+v -2.384247 1.015112 -0.006684
+v -2.365032 0.820024 3.993316
+v -2.365032 0.820022 -0.006684
+v -2.308126 0.632431 3.993316
+v -2.308126 0.632429 -0.006684
+v -2.215716 0.459545 3.993316
+v -2.215716 0.459542 -0.006684
+v -2.091353 0.308008 3.993316
+v -2.091353 0.308006 -0.006684
+v -1.939816 0.183645 3.993316
+v -1.939816 0.183643 -0.006684
+v -1.766929 0.091236 3.993316
+v -1.766929 0.091233 -0.006684
+v -1.579336 0.034330 3.993316
+v -1.579336 0.034328 -0.006684
+v -1.384247 0.619839 -0.156215
+v -1.307133 0.627434 -0.156215
+v -1.232982 0.649928 -0.156215
+v -1.164645 0.686455 -0.156215
+v -1.104746 0.735612 -0.156215
+v -1.055589 0.795511 -0.156215
+v -1.019062 0.863848 -0.156216
+v -0.996568 0.937999 -0.156216
+v -0.988973 1.015113 -0.156216
+v -0.996568 1.092227 -0.156216
+v -1.019062 1.166378 -0.156216
+v -1.055589 1.234715 -0.156216
+v -1.104746 1.294614 -0.156216
+v -1.164645 1.343771 -0.156216
+v -1.232982 1.380298 -0.156216
+v -1.307133 1.402792 -0.156216
+v -1.384247 1.410387 -0.156216
+v -1.461361 1.402792 -0.156216
+v -1.535512 1.380298 -0.156216
+v -1.603849 1.343771 -0.156216
+v -1.663748 1.294613 -0.156216
+v -1.712905 1.234715 -0.156216
+v -1.749432 1.166377 -0.156216
+v -1.771926 1.092227 -0.156216
+v -1.779521 1.015113 -0.156216
+v -1.771925 0.937999 -0.156216
+v -1.749432 0.863848 -0.156216
+v -1.712905 0.795510 -0.156215
+v -1.663747 0.735612 -0.156215
+v -1.603849 0.686455 -0.156215
+v -1.535511 0.649928 -0.156215
+v -1.461360 0.627434 -0.156215
+v -1.384247 0.605419 4.159918
+v -1.304319 0.613291 4.159918
+v -1.227463 0.636605 4.159918
+v -1.156632 0.674465 4.159918
+v -1.094548 0.725416 4.159918
+v -1.043596 0.787500 4.159918
+v -1.005736 0.858332 4.159918
+v -0.982422 0.935188 4.159918
+v -0.974550 1.015116 4.159918
+v -0.982422 1.095044 4.159918
+v -1.005736 1.171900 4.159918
+v -1.043596 1.242731 4.159918
+v -1.094548 1.304815 4.159918
+v -1.156632 1.355766 4.159918
+v -1.227463 1.393626 4.159918
+v -1.304319 1.416940 4.159918
+v -1.384247 1.424813 4.159918
+v -1.464175 1.416940 4.159918
+v -1.541031 1.393626 4.159918
+v -1.611863 1.355766 4.159918
+v -1.673947 1.304815 4.159918
+v -1.724898 1.242731 4.159918
+v -1.762758 1.171900 4.159918
+v -1.786072 1.095043 4.159918
+v -1.793944 1.015115 4.159918
+v -1.786072 0.935187 4.159918
+v -1.762757 0.858331 4.159918
+v -1.724897 0.787500 4.159918
+v -1.673946 0.725416 4.159918
+v -1.611862 0.674465 4.159918
+v -1.541031 0.636605 4.159918
+v -1.464174 0.613291 4.159918
+v 0.006492 3.927105 -3.525056
+v 0.006492 4.374522 -3.525055
+v 0.050135 3.927105 -3.520757
+v 0.050135 4.374522 -3.520757
+v 0.092102 3.927104 -3.508027
+v 0.092102 4.374522 -3.508027
+v 0.130778 3.927104 -3.487354
+v 0.130778 4.374522 -3.487354
+v 0.164678 3.927104 -3.459533
+v 0.164678 4.374522 -3.459533
+v 0.192499 3.927104 -3.425632
+v 0.192499 4.374522 -3.425633
+v 0.213172 3.927105 -3.386956
+v 0.213172 4.374522 -3.386957
+v 0.225902 3.927105 -3.344990
+v 0.225902 4.374522 -3.344990
+v 0.230201 3.927105 -3.301347
+v 0.230201 4.374522 -3.301347
+v 0.225902 3.927105 -3.257704
+v 0.225902 4.374522 -3.257703
+v 0.213172 3.927105 -3.215737
+v 0.213172 4.374522 -3.215738
+v 0.192499 3.927105 -3.177061
+v 0.192499 4.374522 -3.177062
+v 0.164678 3.927105 -3.143161
+v 0.164678 4.374522 -3.143161
+v 0.130778 3.927105 -3.115340
+v 0.130778 4.374522 -3.115340
+v 0.092102 3.927105 -3.094666
+v 0.092102 4.374522 -3.094667
+v 0.050135 3.927105 -3.081937
+v 0.050135 4.374522 -3.081936
+v 0.006492 3.927105 -3.077638
+v 0.006492 4.374522 -3.077638
+v -0.037151 3.927105 -3.081937
+v -0.037151 4.374522 -3.081936
+v -0.079118 3.927105 -3.094666
+v -0.079118 4.374522 -3.094667
+v -0.117794 3.927105 -3.115340
+v -0.117794 4.374522 -3.115340
+v -0.151694 3.927105 -3.143161
+v -0.151694 4.374522 -3.143161
+v -0.179515 3.927105 -3.177061
+v -0.179515 4.374522 -3.177062
+v -0.200188 3.927105 -3.215737
+v -0.200188 4.374522 -3.215738
+v -0.212918 3.927105 -3.257704
+v -0.212918 4.374522 -3.257704
+v -0.217217 3.927105 -3.301347
+v -0.217217 4.374522 -3.301347
+v -0.212918 3.927105 -3.344991
+v -0.212918 4.374522 -3.344990
+v -0.200188 3.927105 -3.386957
+v -0.200188 4.374522 -3.386957
+v -0.179515 3.927104 -3.425633
+v -0.179515 4.374522 -3.425633
+v -0.151694 3.927104 -3.459533
+v -0.151694 4.374522 -3.459533
+v -0.117794 3.927104 -3.487354
+v -0.117794 4.374522 -3.487354
+v -0.079117 3.927104 -3.508027
+v -0.079117 4.374522 -3.508027
+v -0.037151 3.927105 -3.520757
+v -0.037151 4.374522 -3.520757
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vt 0.853553 0.853553
+vt 0.691342 0.961940
+vt 0.777785 0.915735
+vt 0.500000 1.000000
+vt 0.597545 0.990393
+vt 0.402456 0.990393
+vt 0.915735 0.777785
+vt 0.961940 0.691342
+vt 0.500000 0.000000
+vt 0.691342 0.038060
+vt 0.597545 0.009607
+vt 0.777785 0.084265
+vt 0.853553 0.146447
+vt 0.084265 0.222215
+vt 0.222215 0.084265
+vt 0.146446 0.146447
+vt 0.038060 0.308659
+vt 0.222215 0.915735
+vt 0.308659 0.961940
+vt 0.146447 0.853554
+vt 0.990393 0.597545
+vt 0.084266 0.777786
+vt 0.038060 0.691342
+vt 1.000000 0.500000
+vt 0.990393 0.402455
+vt 0.961940 0.308658
+vt 0.009607 0.597546
+vt 0.000000 0.500000
+vt 0.915735 0.222215
+vt 0.009607 0.402455
+vt 0.402455 0.009607
+vt 0.308658 0.038060
+vn 0.098018 -0.995185 0.000001
+vn 0.290285 -0.956940 0.000001
+vn 0.471397 -0.881921 0.000001
+vn 0.634393 -0.773010 0.000000
+vn 0.773010 -0.634393 0.000000
+vn 0.881921 -0.471397 0.000000
+vn 0.956940 -0.290285 0.000000
+vn 0.995185 -0.098017 0.000000
+vn 0.995185 0.098017 -0.000000
+vn 0.956940 0.290285 -0.000000
+vn 0.881922 0.471396 -0.000000
+vn 0.773010 0.634393 -0.000000
+vn 0.634393 0.773011 -0.000000
+vn 0.471397 0.881921 -0.000001
+vn 0.290284 0.956941 -0.000001
+vn 0.098017 0.995185 -0.000001
+vn -0.098017 0.995185 -0.000001
+vn -0.290285 0.956940 -0.000001
+vn -0.471397 0.881921 -0.000001
+vn -0.634394 0.773010 -0.000000
+vn -0.773011 0.634393 -0.000000
+vn -0.881922 0.471396 -0.000000
+vn -0.956941 0.290283 -0.000000
+vn -0.995185 0.098017 -0.000000
+vn -0.995185 -0.098018 0.000000
+vn -0.956940 -0.290286 0.000000
+vn -0.881920 -0.471398 0.000000
+vn -0.773010 -0.634394 0.000000
+vn -0.634393 -0.773011 0.000000
+vn -0.471395 -0.881922 0.000001
+vn -0.239975 -0.023636 -0.970491
+vn -0.098017 -0.995185 0.000001
+vn -0.290283 -0.956941 0.000001
+vn -0.210907 0.173086 0.962060
+vn 0.152975 0.186400 -0.970492
+vn -0.023635 -0.239975 -0.970491
+vn -0.152975 0.186400 -0.970492
+vn 0.239975 -0.023636 -0.970491
+vn -0.212662 -0.113672 -0.970491
+vn 0.069999 0.230752 -0.970492
+vn 0.113670 -0.212663 -0.970491
+vn -0.212662 0.113670 -0.970492
+vn 0.230752 0.069998 -0.970492
+vn -0.152975 -0.186401 -0.970491
+vn -0.023636 0.239974 -0.970492
+vn 0.186400 -0.152976 -0.970491
+vn -0.239974 0.023634 -0.970491
+vn 0.186401 0.152974 -0.970491
+vn -0.069998 -0.230753 -0.970491
+vn -0.113670 0.212662 -0.970492
+vn 0.230753 -0.069999 -0.970491
+vn -0.230752 -0.069999 -0.970491
+vn 0.113670 0.212662 -0.970491
+vn 0.069998 -0.230753 -0.970491
+vn -0.186401 0.152974 -0.970491
+vn 0.239975 0.023634 -0.970492
+vn -0.186400 -0.152976 -0.970491
+vn 0.023635 0.239974 -0.970492
+vn 0.152975 -0.186401 -0.970491
+vn -0.230752 0.069998 -0.970492
+vn 0.023636 -0.239975 -0.970491
+vn 0.212662 0.113670 -0.970492
+vn -0.113670 -0.212664 -0.970491
+vn -0.069999 0.230751 -0.970492
+vn 0.212663 -0.113671 -0.970491
+vn 0.271524 0.026743 0.962060
+vn -0.210906 -0.173085 0.962060
+vn 0.026743 0.271524 0.962060
+vn 0.173086 -0.210906 0.962060
+vn -0.261089 0.079201 0.962060
+vn 0.026743 -0.271523 0.962060
+vn 0.240621 0.128616 0.962060
+vn -0.128614 -0.240621 0.962060
+vn -0.079201 0.261090 0.962060
+vn 0.240621 -0.128614 0.962060
+vn -0.271524 -0.026742 0.962060
+vn 0.173087 0.210907 0.962060
+vn -0.026742 -0.271523 0.962060
+vn -0.173087 0.210907 0.962060
+vn 0.271524 -0.026742 0.962060
+vn -0.240621 -0.128615 0.962060
+vn 0.079201 0.261090 0.962060
+vn 0.128614 -0.240621 0.962060
+vn -0.240621 0.128616 0.962060
+vn 0.261089 0.079202 0.962060
+vn -0.173086 -0.210906 0.962060
+vn -0.026743 0.271524 0.962060
+vn 0.210907 -0.173085 0.962060
+vn -0.271524 0.026743 0.962060
+vn 0.210907 0.173087 0.962060
+vn -0.079201 -0.261088 0.962060
+vn -0.128615 0.240622 0.962060
+vn 0.261089 -0.079200 0.962060
+vn -0.261089 -0.079201 0.962060
+vn 0.128615 0.240622 0.962060
+vn 0.079201 -0.261088 0.962060
+vn 0.098012 0.000001 -0.995185
+vn 0.290289 -0.000001 -0.956939
+vn 0.471395 0.000001 -0.881922
+vn 0.634385 0.000001 -0.773018
+vn 0.773012 -0.000001 -0.634391
+vn 0.881922 -0.000001 -0.471395
+vn 0.956942 -0.000000 -0.290279
+vn 0.995184 -0.000000 -0.098022
+vn 0.995184 0.000000 0.098020
+vn 0.956940 -0.000000 0.290285
+vn 0.881922 0.000001 0.471395
+vn 0.773012 0.000001 0.634391
+vn 0.634398 0.000001 0.773007
+vn 0.471395 -0.000001 0.881922
+vn 0.290289 0.000001 0.956939
+vn 0.098010 -0.000001 0.995185
+vn -0.098033 0.000001 0.995183
+vn -0.290269 -0.000001 0.956945
+vn -0.471412 0.000001 0.881913
+vn -0.634385 -0.000001 0.773018
+vn -0.773012 0.000001 0.634391
+vn -0.881922 0.000001 0.471395
+vn -0.956942 0.000000 0.290279
+vn -0.995184 0.000000 0.098022
+vn -0.995184 -0.000000 -0.098020
+vn -0.956939 0.000000 -0.290289
+vn -0.881922 0.000001 -0.471395
+vn -0.773003 0.000001 -0.634402
+vn -0.634398 -0.000001 -0.773007
+vn -0.471395 0.000001 -0.881922
+vn -0.098032 -0.000001 -0.995183
+vn -0.290292 0.000001 -0.956938
+vn 0.098017 -0.995185 0.000001
+vn 0.881921 -0.471396 0.000000
+vn 0.881921 0.471397 -0.000000
+vn 0.634394 0.773010 -0.000001
+vn 0.471396 0.881922 -0.000001
+vn 0.290285 0.956940 -0.000001
+vn -0.098018 0.995185 -0.000001
+vn -0.881920 -0.471399 0.000000
+vn -0.239974 -0.023636 -0.970491
+vn -0.210907 0.173087 0.962060
+vn 0.000000 -0.000003 -1.000000
+vn 0.152975 0.186400 -0.970491
+vn 0.239975 -0.023635 -0.970491
+vn -0.212662 -0.113674 -0.970491
+vn 0.069998 0.230752 -0.970492
+vn 0.113671 -0.212663 -0.970491
+vn -0.212664 0.113668 -0.970491
+vn 0.230752 0.069998 -0.970491
+vn -0.023635 0.239974 -0.970492
+vn 0.186401 -0.152975 -0.970491
+vn -0.239974 0.023635 -0.970492
+vn 0.186400 0.152975 -0.970491
+vn 0.230753 -0.069998 -0.970491
+vn -0.230753 -0.069998 -0.970491
+vn -0.186400 0.152974 -0.970492
+vn 0.239974 0.023635 -0.970492
+vn -0.186400 -0.152975 -0.970491
+vn 0.023635 -0.239975 -0.970491
+vn 0.212664 0.113668 -0.970491
+vn -0.113670 -0.212663 -0.970491
+vn -0.069998 0.230752 -0.970492
+vn 0.212662 -0.113674 -0.970491
+vn -0.210905 -0.173086 0.962060
+vn -0.261089 0.079200 0.962060
+vn 0.026743 -0.271523 0.962061
+vn 0.240622 0.128615 0.962060
+vn 0.240621 -0.128615 0.962060
+vn -0.271523 -0.026743 0.962060
+vn 0.271523 -0.026743 0.962060
+vn 0.079200 0.261090 0.962060
+vn 0.128615 -0.240620 0.962060
+vn -0.240622 0.128615 0.962060
+vn 0.261089 0.079200 0.962060
+vn -0.173085 -0.210906 0.962060
+vn 0.210906 -0.173086 0.962060
+vn -0.271524 0.026742 0.962060
+vn -0.079200 -0.261088 0.962061
+vn -0.261089 -0.079200 0.962060
+vn 0.079200 -0.261088 0.962060
+vn 0.098033 -0.000001 -0.995183
+vn 0.290269 0.000001 -0.956945
+vn 0.634398 -0.000001 -0.773007
+vn 0.995184 -0.000000 0.098022
+vn 0.956942 0.000000 0.290279
+vn 0.634385 -0.000001 0.773018
+vn 0.471412 0.000001 0.881913
+vn 0.290269 -0.000001 0.956945
+vn 0.098032 0.000001 0.995183
+vn -0.098012 -0.000001 0.995185
+vn -0.290289 0.000001 0.956939
+vn -0.471395 -0.000001 0.881922
+vn -0.634398 0.000001 0.773007
+vn -0.995184 0.000000 -0.098022
+vn -0.773012 -0.000001 -0.634391
+vn -0.634385 0.000001 -0.773018
+vn -0.098010 0.000001 -0.995185
+vn -0.290272 -0.000001 -0.956944
+vn 0.000000 -1.000000 -0.000019
+vn -0.000002 -1.000000 0.000007
+vn 0.000001 -1.000000 -0.000000
+vn -0.000027 -1.000000 -0.000008
+vn -0.000009 -1.000000 -0.000001
+vn -0.000005 -1.000000 0.000000
+vn -0.000003 -1.000000 0.000001
+vn -0.000002 -1.000000 0.000001
+vn -0.000001 -1.000000 0.000001
+vn 0.000000 -1.000000 0.000001
+s off
+f 153/85/50 154/86/50 156/87/50
+f 155/85/51 156/86/51 158/87/51
+f 157/85/52 158/86/52 160/87/52
+f 159/85/53 160/86/53 162/87/53
+f 161/85/54 162/86/54 164/87/54
+f 163/85/55 164/86/55 166/87/55
+f 165/85/56 166/86/56 168/87/56
+f 167/85/57 168/86/57 170/87/57
+f 169/85/58 170/86/58 172/87/58
+f 171/85/59 172/86/59 174/87/59
+f 173/85/60 174/86/60 176/87/60
+f 175/85/61 176/86/61 178/87/61
+f 177/85/62 178/86/62 180/87/62
+f 179/85/63 180/86/63 182/87/63
+f 181/85/64 182/86/64 184/87/64
+f 183/85/65 184/86/65 186/87/65
+f 185/85/66 186/86/66 187/88/66
+f 187/85/67 188/86/67 189/88/67
+f 189/85/68 190/86/68 191/88/68
+f 191/85/69 192/86/69 193/88/69
+f 193/85/70 194/86/70 195/88/70
+f 195/85/71 196/86/71 197/88/71
+f 197/85/72 198/86/72 199/88/72
+f 199/85/73 200/86/73 201/88/73
+f 201/85/74 202/86/74 203/88/74
+f 203/85/75 204/86/75 205/88/75
+f 205/85/76 206/86/76 207/88/76
+f 207/85/77 208/86/77 209/88/77
+f 209/85/78 210/86/78 211/88/78
+f 211/85/79 212/86/79 213/88/79
+f 204/85/80 202/86/80 242/88/80
+f 215/85/81 216/86/81 153/88/81
+f 213/85/82 214/86/82 215/88/82
+f 193/85/83 195/86/83 269/88/83
+f 246/89/47 248/90/47 247/91/47
+f 180/85/84 178/86/84 229/87/84
+f 154/85/85 216/86/85 217/88/85
+f 194/85/86 192/86/86 237/88/86
+f 170/85/87 168/86/87 224/87/87
+f 208/85/88 206/86/88 244/88/88
+f 184/85/89 182/86/89 231/87/89
+f 160/85/90 158/86/90 219/87/90
+f 198/85/91 196/86/91 239/88/91
+f 174/85/92 172/86/92 226/87/92
+f 212/85/93 210/86/93 246/88/93
+f 188/85/94 186/86/94 234/88/94
+f 164/85/95 162/86/95 221/87/95
+f 202/85/96 200/86/96 241/88/96
+f 178/85/97 176/86/97 228/87/97
+f 216/85/98 214/86/98 248/88/98
+f 192/85/99 190/86/99 236/88/99
+f 168/85/100 166/86/100 223/87/100
+f 206/85/101 204/86/101 243/88/101
+f 182/85/102 180/86/102 230/87/102
+f 158/85/103 156/86/103 218/87/103
+f 196/85/104 194/86/104 238/88/104
+f 172/85/105 170/86/105 225/87/105
+f 210/85/106 208/86/106 245/88/106
+f 186/85/107 184/86/107 232/87/107
+f 162/85/108 160/86/108 220/87/108
+f 200/85/109 198/86/109 240/88/109
+f 156/85/110 154/86/110 217/87/110
+f 176/85/111 174/86/111 227/87/111
+f 214/85/112 212/86/112 247/88/112
+f 190/85/113 188/86/113 235/88/113
+f 166/85/114 164/86/114 222/87/114
+f 249/92/49 250/93/49 280/94/49
+f 169/85/115 171/86/115 258/87/115
+f 207/85/116 209/86/116 276/88/116
+f 183/85/117 185/86/117 265/87/117
+f 159/85/118 161/86/118 253/87/118
+f 197/85/119 199/86/119 271/88/119
+f 153/85/120 155/86/120 250/87/120
+f 173/85/121 175/86/121 260/87/121
+f 211/85/122 213/86/122 278/88/122
+f 187/85/123 189/86/123 266/88/123
+f 163/85/124 165/86/124 255/87/124
+f 201/85/125 203/86/125 273/88/125
+f 177/85/126 179/86/126 262/87/126
+f 215/85/127 153/86/127 280/88/127
+f 191/85/128 193/86/128 268/88/128
+f 167/85/129 169/86/129 257/87/129
+f 205/85/130 207/86/130 275/88/130
+f 181/85/131 183/86/131 264/87/131
+f 157/85/132 159/86/132 252/87/132
+f 195/85/133 197/86/133 270/88/133
+f 171/85/134 173/86/134 259/87/134
+f 209/85/135 211/86/135 277/88/135
+f 185/85/136 187/86/136 265/88/136
+f 161/85/137 163/86/137 254/87/137
+f 199/85/138 201/86/138 272/88/138
+f 175/85/139 177/86/139 261/87/139
+f 213/85/140 215/86/140 279/88/140
+f 189/85/141 191/86/141 267/88/141
+f 165/85/142 167/86/142 256/87/142
+f 203/85/143 205/86/143 274/88/143
+f 179/85/144 181/86/144 263/87/144
+f 155/85/145 157/86/145 251/87/145
+f 281/85/146 282/86/146 284/87/146
+f 283/85/147 284/86/147 286/87/147
+f 285/85/148 286/86/148 288/87/148
+f 287/85/149 288/86/149 290/87/149
+f 289/85/150 290/86/150 292/87/150
+f 291/85/151 292/86/151 294/87/151
+f 293/85/152 294/86/152 296/87/152
+f 295/85/153 296/86/153 298/87/153
+f 297/85/154 298/86/154 300/87/154
+f 299/85/155 300/86/155 302/87/155
+f 301/85/156 302/86/156 304/87/156
+f 303/85/157 304/86/157 306/87/157
+f 305/85/158 306/86/158 308/87/158
+f 307/85/159 308/86/159 310/87/159
+f 309/85/160 310/86/160 312/87/160
+f 311/85/161 312/86/161 314/87/161
+f 313/85/162 314/86/162 315/88/162
+f 315/85/163 316/86/163 317/88/163
+f 317/85/164 318/86/164 319/88/164
+f 319/85/165 320/86/165 321/88/165
+f 321/85/166 322/86/166 323/88/166
+f 323/85/167 324/86/167 325/88/167
+f 325/85/168 326/86/168 327/88/168
+f 327/85/169 328/86/169 329/88/169
+f 329/85/170 330/86/170 331/88/170
+f 331/85/171 332/86/171 333/88/171
+f 333/85/172 334/86/172 335/88/172
+f 335/85/173 336/86/173 337/88/173
+f 337/85/174 338/86/174 339/88/174
+f 339/85/175 340/86/175 341/88/175
+f 284/92/39 282/93/39 286/94/39
+f 343/85/176 344/86/176 281/88/176
+f 341/85/177 342/86/177 344/87/177
+f 281/92/42 283/93/42 343/94/42
+f 155/88/178 153/85/178 156/87/178
+f 157/88/51 155/85/51 158/87/51
+f 159/88/52 157/85/52 160/87/52
+f 161/88/53 159/85/53 162/87/53
+f 163/88/54 161/85/54 164/87/54
+f 165/88/179 163/85/179 166/87/179
+f 167/88/56 165/85/56 168/87/56
+f 169/88/57 167/85/57 170/87/57
+f 171/88/58 169/85/58 172/87/58
+f 173/88/59 171/85/59 174/87/59
+f 175/88/180 173/85/180 176/87/180
+f 177/88/61 175/85/61 178/87/61
+f 179/88/181 177/85/181 180/87/181
+f 181/88/182 179/85/182 182/87/182
+f 183/88/183 181/85/183 184/87/183
+f 185/88/65 183/85/65 186/87/65
+f 186/86/184 188/87/184 187/88/184
+f 188/86/67 190/87/67 189/88/67
+f 190/86/68 192/87/68 191/88/68
+f 192/86/69 194/87/69 193/88/69
+f 194/86/70 196/87/70 195/88/70
+f 196/86/71 198/87/71 197/88/71
+f 198/86/72 200/87/72 199/88/72
+f 200/86/73 202/87/73 201/88/73
+f 202/86/74 204/87/74 203/88/74
+f 204/86/75 206/87/75 205/88/75
+f 206/86/185 208/87/185 207/88/185
+f 208/86/77 210/87/77 209/88/77
+f 210/86/78 212/87/78 211/88/78
+f 212/86/79 214/87/79 213/88/79
+f 202/86/186 241/87/186 242/88/186
+f 216/86/81 154/87/81 153/88/81
+f 214/86/82 216/87/82 215/88/82
+f 195/86/187 270/87/187 269/88/187
+f 245/95/47 248/90/47 246/89/47
+f 244/96/47 248/90/47 245/95/47
+f 234/97/47 236/98/47 235/99/47
+f 234/97/47 237/100/47 236/98/47
+f 234/97/47 238/101/47 237/100/47
+f 229/102/47 231/103/47 230/104/47
+f 228/105/47 231/103/47 229/102/47
+f 219/94/47 221/106/47 220/107/47
+f 219/94/47 222/108/47 221/106/47
+f 218/92/47 217/93/47 219/94/47
+f 217/93/47 248/90/47 219/94/47
+f 248/90/47 244/96/47 219/94/47
+f 219/94/47 244/96/47 222/108/47
+f 244/96/188 243/109/188 222/108/188
+f 222/108/188 243/109/188 223/110/188
+f 223/110/47 243/109/47 224/111/47
+f 243/109/47 242/112/47 224/111/47
+f 242/112/47 241/113/47 224/111/47
+f 241/113/47 240/114/47 224/111/47
+f 224/111/47 240/114/47 225/115/47
+f 225/115/47 240/114/47 226/116/47
+f 240/114/47 239/117/47 226/116/47
+f 226/116/47 239/117/47 227/118/47
+f 239/117/188 238/101/188 227/118/188
+f 227/118/188 238/101/188 228/105/188
+f 228/105/47 238/101/47 231/103/47
+f 238/101/47 234/97/47 231/103/47
+f 234/97/47 233/119/47 232/120/47
+f 231/103/47 234/97/47 232/120/47
+f 230/88/189 180/85/189 229/87/189
+f 216/86/85 248/87/85 217/88/85
+f 192/86/86 236/87/86 237/88/86
+f 225/88/190 170/85/190 224/87/190
+f 206/86/191 243/87/191 244/88/191
+f 232/88/192 184/85/192 231/87/192
+f 220/88/193 160/85/193 219/87/193
+f 196/86/194 238/87/194 239/88/194
+f 227/88/195 174/85/195 226/87/195
+f 210/86/93 245/87/93 246/88/93
+f 186/86/196 233/87/196 234/88/196
+f 222/88/197 164/85/197 221/87/197
+f 200/86/198 240/87/198 241/88/198
+f 229/88/199 178/85/199 228/87/199
+f 214/86/98 247/87/98 248/88/98
+f 190/86/99 235/87/99 236/88/99
+f 224/88/200 168/85/200 223/87/200
+f 204/86/201 242/87/201 243/88/201
+f 231/88/102 182/85/102 230/87/102
+f 219/88/103 158/85/103 218/87/103
+f 194/86/202 237/87/202 238/88/202
+f 226/88/203 172/85/203 225/87/203
+f 208/86/204 244/87/204 245/88/204
+f 233/88/107 186/85/107 232/87/107
+f 221/88/108 162/85/108 220/87/108
+f 198/86/109 239/87/109 240/88/109
+f 218/88/205 156/85/205 217/87/205
+f 228/88/206 176/85/206 227/87/206
+f 212/86/207 246/87/207 247/88/207
+f 188/86/208 234/87/208 235/88/208
+f 223/88/209 166/85/209 222/87/209
+f 250/93/49 251/90/49 280/94/49
+f 251/90/49 252/91/49 280/94/49
+f 252/91/49 253/89/49 280/94/49
+f 253/89/49 254/95/49 280/94/49
+f 254/95/49 255/96/49 280/94/49
+f 255/96/49 256/109/49 280/94/49
+f 256/109/49 257/112/49 280/94/49
+f 257/112/49 258/113/49 280/94/49
+f 258/113/49 259/114/49 280/94/49
+f 259/114/49 260/117/49 280/94/49
+f 260/117/49 261/101/49 280/94/49
+f 261/101/49 262/100/49 280/94/49
+f 262/100/49 263/98/49 280/94/49
+f 263/98/49 264/99/49 280/94/49
+f 264/99/49 265/97/49 280/94/49
+f 265/97/49 266/119/49 280/94/49
+f 266/119/49 267/120/49 280/94/49
+f 267/120/49 268/103/49 280/94/49
+f 268/103/49 269/104/49 280/94/49
+f 269/104/49 270/102/49 280/94/49
+f 270/102/49 271/105/49 280/94/49
+f 271/105/49 272/118/49 280/94/49
+f 272/118/49 273/116/49 280/94/49
+f 273/116/49 274/115/49 280/94/49
+f 274/115/49 275/111/49 280/94/49
+f 275/111/49 276/110/49 280/94/49
+f 276/110/49 277/108/49 280/94/49
+f 277/108/49 278/106/49 279/107/49
+f 280/94/49 277/108/49 279/107/49
+f 257/88/115 169/85/115 258/87/115
+f 209/86/210 277/87/210 276/88/210
+f 264/88/117 183/85/117 265/87/117
+f 252/88/118 159/85/118 253/87/118
+f 199/86/211 272/87/211 271/88/211
+f 249/88/212 153/85/212 250/87/212
+f 259/88/213 173/85/213 260/87/213
+f 213/86/122 279/87/122 278/88/122
+f 189/86/123 267/87/123 266/88/123
+f 254/88/214 163/85/214 255/87/214
+f 203/86/215 274/87/215 273/88/215
+f 261/88/126 177/85/126 262/87/126
+f 153/86/127 249/87/127 280/88/127
+f 193/86/128 269/87/128 268/88/128
+f 256/88/216 167/85/216 257/87/216
+f 207/86/130 276/87/130 275/88/130
+f 263/88/217 181/85/217 264/87/217
+f 251/88/218 157/85/218 252/87/218
+f 197/86/219 271/87/219 270/88/219
+f 258/88/220 171/85/220 259/87/220
+f 211/86/221 278/87/221 277/88/221
+f 187/86/136 266/87/136 265/88/136
+f 253/88/222 161/85/222 254/87/222
+f 201/86/223 273/87/223 272/88/223
+f 260/88/139 175/85/139 261/87/139
+f 215/86/224 280/87/224 279/88/224
+f 191/86/141 268/87/141 267/88/141
+f 255/88/142 165/85/142 256/87/142
+f 205/86/225 275/87/225 274/88/225
+f 262/88/144 179/85/144 263/87/144
+f 250/88/226 155/85/226 251/87/226
+f 283/88/227 281/85/227 284/87/227
+f 285/88/228 283/85/228 286/87/228
+f 287/88/148 285/85/148 288/87/148
+f 289/88/229 287/85/229 290/87/229
+f 291/88/150 289/85/150 292/87/150
+f 293/88/151 291/85/151 294/87/151
+f 295/88/152 293/85/152 296/87/152
+f 297/88/153 295/85/153 298/87/153
+f 299/88/230 297/85/230 300/87/230
+f 301/88/231 299/85/231 302/87/231
+f 303/88/156 301/85/156 304/87/156
+f 305/88/157 303/85/157 306/87/157
+f 307/88/232 305/85/232 308/87/232
+f 309/88/233 307/85/233 310/87/233
+f 311/88/234 309/85/234 312/87/234
+f 313/88/235 311/85/235 314/87/235
+f 314/86/236 316/87/236 315/88/236
+f 316/86/237 318/87/237 317/88/237
+f 318/86/238 320/87/238 319/88/238
+f 320/86/239 322/87/239 321/88/239
+f 322/86/166 324/87/166 323/88/166
+f 324/86/167 326/87/167 325/88/167
+f 326/86/168 328/87/168 327/88/168
+f 328/86/169 330/87/169 329/88/169
+f 330/86/240 332/87/240 331/88/240
+f 332/86/171 334/87/171 333/88/171
+f 334/86/172 336/87/172 335/88/172
+f 336/86/241 338/87/241 337/88/241
+f 338/86/242 340/87/242 339/88/242
+f 340/86/175 342/87/175 341/88/175
+f 282/93/39 344/90/39 286/94/39
+f 344/90/39 342/91/39 286/94/39
+f 342/91/39 340/89/39 286/94/39
+f 340/89/39 338/95/39 286/94/39
+f 338/95/39 336/96/39 286/94/39
+f 336/96/39 334/109/39 286/94/39
+f 334/109/39 332/112/39 286/94/39
+f 332/112/39 330/113/39 286/94/39
+f 330/113/39 328/114/39 286/94/39
+f 328/114/39 326/117/39 286/94/39
+f 326/117/39 324/101/39 286/94/39
+f 324/101/39 322/100/39 286/94/39
+f 322/100/39 320/98/39 286/94/39
+f 320/98/39 318/99/39 286/94/39
+f 318/99/39 316/97/39 286/94/39
+f 316/97/39 314/119/39 286/94/39
+f 314/119/39 312/120/39 286/94/39
+f 312/120/39 310/103/39 286/94/39
+f 310/103/39 308/104/39 286/94/39
+f 308/104/39 306/102/39 286/94/39
+f 306/102/39 304/105/39 286/94/39
+f 304/105/39 302/118/39 286/94/39
+f 302/118/39 300/116/39 286/94/39
+f 300/116/39 298/115/39 286/94/39
+f 298/115/39 296/111/39 286/94/39
+f 296/111/39 294/110/39 286/94/39
+f 294/110/39 292/108/39 286/94/39
+f 292/108/39 290/106/39 286/94/39
+f 290/106/39 288/107/39 286/94/39
+f 344/86/243 282/87/243 281/88/243
+f 343/88/244 341/85/244 344/87/244
+f 283/93/245 285/90/245 343/94/245
+f 343/94/245 285/90/245 341/107/245
+f 285/90/42 287/91/42 341/107/42
+f 287/91/42 289/89/42 341/107/42
+f 289/89/42 291/95/42 341/107/42
+f 291/95/246 293/96/246 341/107/246
+f 293/96/247 295/109/247 341/107/247
+f 335/110/248 331/115/248 333/111/248
+f 295/109/247 297/112/247 341/107/247
+f 297/112/247 299/113/247 341/107/247
+f 335/110/249 329/116/249 331/115/249
+f 299/113/247 301/114/247 341/107/247
+f 335/110/250 327/118/250 329/116/250
+f 301/114/247 303/117/247 341/107/247
+f 335/110/251 325/105/251 327/118/251
+f 303/117/42 305/101/42 341/107/42
+f 335/110/252 323/102/252 325/105/252
+f 305/101/42 307/100/42 341/107/42
+f 335/110/253 321/104/253 323/102/253
+f 307/100/42 309/98/42 341/107/42
+f 335/110/253 319/103/253 321/104/253
+f 309/98/254 311/99/254 341/107/254
+f 335/110/254 317/120/254 319/103/254
+f 311/99/254 313/97/254 341/107/254
+f 315/119/254 317/120/254 335/110/254
+f 313/97/254 315/119/254 341/107/254
+f 315/119/254 335/110/254 341/107/254
+f 335/110/42 337/108/42 339/106/42
+f 341/107/42 335/110/42 339/106/42
+v 1.365790 0.015116 4.001092
+v 1.365790 0.015113 0.001092
+v 1.560881 0.034331 4.001092
+v 1.560881 0.034328 0.001092
+v 1.748474 0.091236 4.001092
+v 1.748474 0.091234 0.001092
+v 1.921361 0.183646 4.001092
+v 1.921361 0.183644 0.001092
+v 2.072897 0.308009 4.001092
+v 2.072897 0.308007 0.001092
+v 2.197260 0.459546 4.001092
+v 2.197260 0.459543 0.001092
+v 2.289670 0.632432 4.001092
+v 2.289670 0.632430 0.001092
+v 2.346576 0.820025 4.001092
+v 2.346576 0.820023 0.001092
+v 2.365790 1.015116 4.001092
+v 2.365790 1.015113 0.001092
+v 2.346576 1.210206 4.001091
+v 2.346576 1.210203 0.001091
+v 2.289670 1.397799 4.001091
+v 2.289670 1.397797 0.001091
+v 2.197260 1.570686 4.001091
+v 2.197260 1.570683 0.001091
+v 2.072897 1.722223 4.001091
+v 2.072897 1.722220 0.001091
+v 1.921361 1.846586 4.001091
+v 1.921361 1.846583 0.001091
+v 1.748474 1.938995 4.001091
+v 1.748474 1.938993 0.001091
+v 1.560881 1.995901 4.001091
+v 1.560881 1.995899 0.001091
+v 1.365790 2.015116 4.001091
+v 1.365790 2.015113 0.001091
+v 1.170700 1.995901 4.001091
+v 1.170700 1.995898 0.001091
+v 0.983107 1.938995 4.001091
+v 0.983107 1.938993 0.001091
+v 0.810220 1.846585 4.001091
+v 0.810220 1.846583 0.001091
+v 0.658683 1.722222 4.001091
+v 0.658683 1.722220 0.001091
+v 0.534320 1.570685 4.001091
+v 0.534320 1.570683 0.001091
+v 0.441911 1.397799 4.001091
+v 0.441911 1.397796 0.001091
+v 0.385005 1.210205 4.001091
+v 0.385005 1.210203 0.001091
+v 0.365790 1.015115 4.001092
+v 0.365790 1.015112 0.001092
+v 0.385005 0.820024 4.001092
+v 0.385005 0.820022 0.001092
+v 0.441911 0.632431 4.001092
+v 0.441911 0.632429 0.001092
+v 0.534322 0.459545 4.001092
+v 0.534322 0.459542 0.001092
+v 0.658685 0.308008 4.001092
+v 0.658685 0.308006 0.001092
+v 0.810221 0.183645 4.001092
+v 0.810221 0.183643 0.001092
+v 0.983108 0.091236 4.001092
+v 0.983108 0.091233 0.001092
+v 1.170702 0.034330 4.001092
+v 1.170702 0.034328 0.001092
+v 1.365791 0.649119 -0.167860
+v 1.437192 0.656151 -0.167860
+v 1.505850 0.676978 -0.167860
+v 1.569126 0.710800 -0.167860
+v 1.624587 0.756316 -0.167860
+v 1.670104 0.811778 -0.167860
+v 1.703925 0.875053 -0.167860
+v 1.724752 0.943711 -0.167860
+v 1.731785 1.015113 -0.167860
+v 1.724752 1.086515 -0.167860
+v 1.703925 1.155173 -0.167860
+v 1.670104 1.218448 -0.167861
+v 1.624587 1.273910 -0.167861
+v 1.569126 1.319426 -0.167861
+v 1.505850 1.353247 -0.167861
+v 1.437192 1.374075 -0.167861
+v 1.365790 1.381107 -0.167861
+v 1.294389 1.374075 -0.167861
+v 1.225731 1.353247 -0.167861
+v 1.162455 1.319426 -0.167861
+v 1.106993 1.273910 -0.167861
+v 1.061477 1.218448 -0.167861
+v 1.027656 1.155173 -0.167860
+v 1.006829 1.086515 -0.167860
+v 0.999797 1.015113 -0.167860
+v 1.006829 0.943711 -0.167860
+v 1.027656 0.875053 -0.167860
+v 1.061478 0.811777 -0.167860
+v 1.106994 0.756316 -0.167860
+v 1.162456 0.710800 -0.167860
+v 1.225731 0.676978 -0.167860
+v 1.294389 0.656151 -0.167860
+v 1.365791 0.605024 4.157856
+v 1.445795 0.612904 4.157856
+v 1.522726 0.636241 4.157856
+v 1.593625 0.674137 4.157856
+v 1.655769 0.725137 4.157856
+v 1.706769 0.787281 4.157856
+v 1.744666 0.858181 4.157855
+v 1.768002 0.935111 4.157855
+v 1.775882 1.015116 4.157855
+v 1.768002 1.095121 4.157855
+v 1.744666 1.172051 4.157855
+v 1.706769 1.242950 4.157855
+v 1.655769 1.305094 4.157855
+v 1.593625 1.356094 4.157855
+v 1.522726 1.393991 4.157855
+v 1.445795 1.417328 4.157855
+v 1.365790 1.425207 4.157855
+v 1.285786 1.417327 4.157855
+v 1.208855 1.393991 4.157855
+v 1.137956 1.356094 4.157855
+v 1.075812 1.305094 4.157855
+v 1.024812 1.242950 4.157855
+v 0.986915 1.172051 4.157855
+v 0.963579 1.095120 4.157855
+v 0.955699 1.015115 4.157855
+v 0.963579 0.935110 4.157855
+v 0.986916 0.858180 4.157855
+v 1.024812 0.787281 4.157856
+v 1.075812 0.725137 4.157856
+v 1.137956 0.674137 4.157856
+v 1.208856 0.636240 4.157856
+v 1.285786 0.612904 4.157856
+vt 0.000000 0.000000
+vt 0.450363 0.000088
+vt 0.519265 0.025135
+vt 0.412277 0.001462
+vt 0.592585 0.072108
+vt 0.660664 0.134431
+vt 0.714751 0.214466
+vt 0.755741 0.304410
+vt 0.778531 0.401983
+vt 0.781786 0.502742
+vt 0.147188 0.142771
+vt 0.050179 0.306373
+vt 0.093406 0.218681
+vt 0.765337 0.602148
+vt 0.019781 0.402090
+vt 0.729413 0.696327
+vt 0.000089 0.500905
+vt 0.680707 0.782826
+vt 0.000088 0.601389
+vt 0.627360 0.858268
+vt 0.022810 0.698277
+vt 0.566443 0.918999
+vt 0.063602 0.787572
+vt 0.501474 0.962949
+vt 0.119962 0.865210
+vt 0.436606 0.989270
+vt 0.188187 0.927714
+vt 0.377255 0.998855
+vt 0.263175 0.972402
+vt 0.336538 0.999912
+vt 0.208578 0.081678
+vt 0.280064 0.037078
+vt 0.344761 0.010798
+vn 0.634394 -0.773010 0.000000
+vn 0.773010 -0.634394 0.000000
+vn 0.773010 0.634394 -0.000000
+vn 0.634394 0.773010 -0.000000
+vn -0.956941 0.290284 -0.000000
+vn -0.995185 0.098016 -0.000000
+vn -0.881921 -0.471398 0.000000
+vn -0.634392 -0.773011 0.000000
+vn -0.075085 -0.247523 -0.965968
+vn -0.199427 0.163668 0.966148
+vn -0.121931 0.228117 -0.965969
+vn 0.247522 -0.075086 -0.965968
+vn -0.247522 -0.075086 -0.965968
+vn 0.121931 0.228117 -0.965969
+vn 0.075085 -0.247523 -0.965968
+vn -0.199948 0.164091 -0.965968
+vn 0.257414 0.025352 -0.965968
+vn -0.199947 -0.164093 -0.965968
+vn 0.025353 0.257414 -0.965969
+vn 0.164092 -0.199947 -0.965968
+vn -0.247522 0.075085 -0.965969
+vn 0.025353 -0.257415 -0.965968
+vn 0.228118 0.121931 -0.965969
+vn -0.121931 -0.228119 -0.965968
+vn -0.075086 0.247521 -0.965969
+vn 0.228118 -0.121932 -0.965968
+vn -0.257414 -0.025354 -0.965968
+vn 0.164092 0.199946 -0.965969
+vn -0.025353 -0.257415 -0.965968
+vn -0.164092 0.199946 -0.965969
+vn 0.257415 -0.025354 -0.965968
+vn -0.228117 -0.121932 -0.965968
+vn 0.075086 0.247521 -0.965969
+vn 0.121931 -0.228119 -0.965968
+vn -0.228117 0.121931 -0.965968
+vn 0.247522 0.075085 -0.965969
+vn -0.164092 -0.199947 -0.965968
+vn -0.025353 0.257414 -0.965969
+vn 0.199947 -0.164093 -0.965968
+vn -0.257414 0.025352 -0.965968
+vn 0.199947 0.164091 -0.965968
+vn 0.256746 0.025290 0.966148
+vn -0.199428 -0.163666 0.966148
+vn 0.025287 0.256747 0.966148
+vn 0.163666 -0.199428 0.966148
+vn -0.246880 0.074890 0.966148
+vn 0.025287 -0.256746 0.966148
+vn 0.227526 0.121615 0.966148
+vn -0.121615 -0.227526 0.966148
+vn -0.074890 0.246880 0.966148
+vn 0.227525 -0.121615 0.966148
+vn -0.256745 -0.025287 0.966148
+vn 0.163667 0.199428 0.966148
+vn -0.025287 -0.256746 0.966148
+vn -0.163667 0.199428 0.966148
+vn 0.256746 -0.025287 0.966148
+vn -0.227525 -0.121615 0.966148
+vn 0.074890 0.246880 0.966148
+vn 0.121615 -0.227526 0.966148
+vn -0.227526 0.121615 0.966148
+vn 0.246880 0.074890 0.966148
+vn -0.163666 -0.199428 0.966148
+vn -0.025287 0.256747 0.966148
+vn 0.199428 -0.163666 0.966148
+vn -0.256746 0.025289 0.966148
+vn 0.199427 0.163668 0.966148
+vn -0.074892 -0.246879 0.966148
+vn -0.121615 0.227526 0.966148
+vn 0.246879 -0.074890 0.966148
+vn -0.246879 -0.074890 0.966148
+vn 0.121615 0.227526 0.966148
+vn 0.074892 -0.246879 0.966148
+vn -0.199428 0.163666 0.966148
+vn 0.000000 -0.000004 -1.000000
+vn 0.247522 -0.075085 -0.965968
+vn -0.199947 0.164092 -0.965969
+vn 0.257414 0.025353 -0.965969
+vn -0.199947 -0.164092 -0.965968
+vn 0.228120 0.121929 -0.965968
+vn -0.121931 -0.228118 -0.965968
+vn -0.075085 0.247521 -0.965969
+vn 0.228117 -0.121935 -0.965968
+vn -0.257414 -0.025353 -0.965968
+vn 0.164092 0.199947 -0.965969
+vn 0.257415 -0.025353 -0.965968
+vn -0.228117 -0.121935 -0.965968
+vn 0.075085 0.247521 -0.965969
+vn 0.121932 -0.228118 -0.965968
+vn -0.228120 0.121928 -0.965968
+vn 0.199947 -0.164092 -0.965968
+vn -0.257414 0.025353 -0.965969
+vn 0.199946 0.164092 -0.965969
+vn -0.000004 0.000009 1.000000
+vn 0.000001 -0.000000 1.000000
+vn -0.000029 -0.000009 1.000000
+vn -0.000010 -0.000001 1.000000
+vn -0.000005 0.000001 1.000000
+vn -0.000003 0.000001 1.000000
+vn -0.000002 0.000001 1.000000
+vn -0.000001 0.000001 1.000000
+vn 0.000000 0.000001 1.000000
+vn 0.256746 0.025287 0.966148
+vn -0.074891 0.246880 0.966148
+vn 0.227529 -0.121610 0.966148
+vn -0.256746 -0.025287 0.966148
+vn -0.227529 -0.121610 0.966148
+vn -0.256746 0.025287 0.966148
+vn 0.199428 0.163666 0.966148
+vn -0.074889 -0.246879 0.966148
+vn 0.074890 -0.246879 0.966148
+s off
+f 345/121/50 346/121/50 348/121/50
+f 347/121/51 348/121/51 350/121/51
+f 349/121/52 350/121/52 352/121/52
+f 351/121/255 352/121/255 354/121/255
+f 353/121/256 354/121/256 356/121/256
+f 355/121/55 356/121/55 358/121/55
+f 357/121/56 358/121/56 360/121/56
+f 359/121/57 360/121/57 362/121/57
+f 361/121/58 362/121/58 364/121/58
+f 363/121/59 364/121/59 366/121/59
+f 365/121/60 366/121/60 368/121/60
+f 367/121/257 368/121/257 370/121/257
+f 369/121/258 370/121/258 372/121/258
+f 371/121/63 372/121/63 374/121/63
+f 373/121/64 374/121/64 376/121/64
+f 375/121/65 376/121/65 378/121/65
+f 377/121/66 378/121/66 379/121/66
+f 379/121/67 380/121/67 381/121/67
+f 381/121/68 382/121/68 383/121/68
+f 383/121/69 384/121/69 385/121/69
+f 385/121/70 386/121/70 387/121/70
+f 387/121/71 388/121/71 389/121/71
+f 389/121/259 390/121/259 391/121/259
+f 391/121/260 392/121/260 393/121/260
+f 393/121/74 394/121/74 395/121/74
+f 395/121/75 396/121/75 397/121/75
+f 397/121/261 398/121/261 399/121/261
+f 399/121/77 400/121/77 401/121/77
+f 401/121/262 402/121/262 403/121/262
+f 403/121/79 404/121/79 405/121/79
+f 408/121/263 406/121/263 440/121/263
+f 407/121/81 408/121/81 345/121/81
+f 405/121/82 406/121/82 407/121/82
+f 385/121/264 387/121/264 461/121/264
+f 437/121/47 439/121/47 438/121/47
+f 384/121/265 382/121/265 428/121/265
+f 360/121/266 358/121/266 415/121/266
+f 398/121/267 396/121/267 435/121/267
+f 374/121/268 372/121/268 422/121/268
+f 350/121/269 348/121/269 410/121/269
+f 388/121/270 386/121/270 430/121/270
+f 364/121/271 362/121/271 417/121/271
+f 402/121/272 400/121/272 437/121/272
+f 378/121/273 376/121/273 424/121/273
+f 354/121/274 352/121/274 412/121/274
+f 392/121/275 390/121/275 432/121/275
+f 348/121/276 346/121/276 409/121/276
+f 368/121/277 366/121/277 419/121/277
+f 406/121/278 404/121/278 439/121/278
+f 382/121/279 380/121/279 427/121/279
+f 358/121/280 356/121/280 414/121/280
+f 396/121/281 394/121/281 434/121/281
+f 372/121/282 370/121/282 421/121/282
+f 346/121/283 408/121/283 409/121/283
+f 386/121/284 384/121/284 429/121/284
+f 362/121/285 360/121/285 416/121/285
+f 400/121/286 398/121/286 436/121/286
+f 376/121/287 374/121/287 423/121/287
+f 352/121/288 350/121/288 411/121/288
+f 390/121/289 388/121/289 431/121/289
+f 366/121/290 364/121/290 418/121/290
+f 404/121/291 402/121/291 438/121/291
+f 380/121/292 378/121/292 426/121/292
+f 356/121/293 354/121/293 413/121/293
+f 394/121/294 392/121/294 433/121/294
+f 370/121/295 368/121/295 420/121/295
+f 441/122/49 442/123/49 472/124/49
+f 361/121/296 363/121/296 450/121/296
+f 399/121/297 401/121/297 468/121/297
+f 375/121/298 377/121/298 457/121/298
+f 351/121/299 353/121/299 445/121/299
+f 389/121/300 391/121/300 463/121/300
+f 345/121/301 347/121/301 442/121/301
+f 365/121/302 367/121/302 452/121/302
+f 403/121/303 405/121/303 470/121/303
+f 379/121/304 381/121/304 458/121/304
+f 355/121/305 357/121/305 447/121/305
+f 393/121/306 395/121/306 465/121/306
+f 369/121/307 371/121/307 454/121/307
+f 407/121/308 345/121/308 472/121/308
+f 383/121/309 385/121/309 460/121/309
+f 359/121/310 361/121/310 449/121/310
+f 397/121/311 399/121/311 467/121/311
+f 373/121/312 375/121/312 456/121/312
+f 349/121/313 351/121/313 444/121/313
+f 387/121/314 389/121/314 462/121/314
+f 363/121/315 365/121/315 451/121/315
+f 401/121/316 403/121/316 469/121/316
+f 377/121/317 379/121/317 457/121/317
+f 353/121/318 355/121/318 446/121/318
+f 391/121/319 393/121/319 464/121/319
+f 367/121/320 369/121/320 453/121/320
+f 405/121/321 407/121/321 471/121/321
+f 381/121/322 383/121/322 459/121/322
+f 357/121/323 359/121/323 448/121/323
+f 395/121/324 397/121/324 466/121/324
+f 371/121/325 373/121/325 455/121/325
+f 347/121/326 349/121/326 443/121/326
+f 347/121/178 345/121/178 348/121/178
+f 349/121/51 347/121/51 350/121/51
+f 351/121/52 349/121/52 352/121/52
+f 353/121/255 351/121/255 354/121/255
+f 355/121/256 353/121/256 356/121/256
+f 357/121/179 355/121/179 358/121/179
+f 359/121/56 357/121/56 360/121/56
+f 361/121/57 359/121/57 362/121/57
+f 363/121/58 361/121/58 364/121/58
+f 365/121/59 363/121/59 366/121/59
+f 367/121/60 365/121/60 368/121/60
+f 369/121/257 367/121/257 370/121/257
+f 371/121/181 369/121/181 372/121/181
+f 373/121/182 371/121/182 374/121/182
+f 375/121/183 373/121/183 376/121/183
+f 377/121/65 375/121/65 378/121/65
+f 378/121/184 380/121/184 379/121/184
+f 380/121/67 382/121/67 381/121/67
+f 382/121/68 384/121/68 383/121/68
+f 384/121/69 386/121/69 385/121/69
+f 386/121/70 388/121/70 387/121/70
+f 388/121/71 390/121/71 389/121/71
+f 390/121/259 392/121/259 391/121/259
+f 392/121/260 394/121/260 393/121/260
+f 394/121/74 396/121/74 395/121/74
+f 396/121/75 398/121/75 397/121/75
+f 398/121/261 400/121/261 399/121/261
+f 400/121/77 402/121/77 401/121/77
+f 402/121/262 404/121/262 403/121/262
+f 404/121/79 406/121/79 405/121/79
+f 406/121/263 439/121/263 440/121/263
+f 408/121/81 346/121/81 345/121/81
+f 406/121/82 408/121/82 407/121/82
+f 387/121/327 462/121/327 461/121/327
+f 436/121/47 439/121/47 437/121/47
+f 427/121/47 429/121/47 428/121/47
+f 427/121/47 430/121/47 429/121/47
+f 421/121/47 423/121/47 422/121/47
+f 420/121/47 423/121/47 421/121/47
+f 411/121/47 413/121/47 412/121/47
+f 411/121/47 414/121/47 413/121/47
+f 410/121/47 409/121/47 411/121/47
+f 409/121/47 440/121/47 411/121/47
+f 440/121/47 439/121/47 411/121/47
+f 439/121/47 436/121/47 411/121/47
+f 411/121/47 436/121/47 414/121/47
+f 436/121/328 435/121/328 414/121/328
+f 414/121/328 435/121/328 415/121/328
+f 435/121/47 434/121/47 415/121/47
+f 434/121/47 433/121/47 415/121/47
+f 433/121/47 432/121/47 415/121/47
+f 432/121/47 431/121/47 415/121/47
+f 415/121/47 431/121/47 416/121/47
+f 416/121/47 431/121/47 417/121/47
+f 417/121/47 431/121/47 418/121/47
+f 418/121/47 431/121/47 419/121/47
+f 431/121/328 430/121/328 419/121/328
+f 419/121/328 430/121/328 420/121/328
+f 430/121/47 427/121/47 420/121/47
+f 420/121/47 427/121/47 423/121/47
+f 427/121/47 426/121/47 423/121/47
+f 426/121/47 425/121/47 424/121/47
+f 423/121/47 426/121/47 424/121/47
+f 382/121/265 427/121/265 428/121/265
+f 416/121/329 360/121/329 415/121/329
+f 396/121/267 434/121/267 435/121/267
+f 423/121/268 374/121/268 422/121/268
+f 411/121/269 350/121/269 410/121/269
+f 386/121/330 429/121/330 430/121/330
+f 418/121/331 364/121/331 417/121/331
+f 400/121/332 436/121/332 437/121/332
+f 425/121/273 378/121/273 424/121/273
+f 413/121/274 354/121/274 412/121/274
+f 390/121/275 431/121/275 432/121/275
+f 410/121/276 348/121/276 409/121/276
+f 420/121/333 368/121/333 419/121/333
+f 404/121/334 438/121/334 439/121/334
+f 380/121/335 426/121/335 427/121/335
+f 415/121/336 358/121/336 414/121/336
+f 394/121/337 433/121/337 434/121/337
+f 422/121/338 372/121/338 421/121/338
+f 408/121/283 440/121/283 409/121/283
+f 384/121/284 428/121/284 429/121/284
+f 417/121/339 362/121/339 416/121/339
+f 398/121/340 435/121/340 436/121/340
+f 424/121/341 376/121/341 423/121/341
+f 412/121/342 352/121/342 411/121/342
+f 388/121/343 430/121/343 431/121/343
+f 419/121/290 366/121/290 418/121/290
+f 402/121/291 437/121/291 438/121/291
+f 378/121/292 425/121/292 426/121/292
+f 414/121/344 356/121/344 413/121/344
+f 392/121/345 432/121/345 433/121/345
+f 421/121/346 370/121/346 420/121/346
+f 442/123/49 443/125/49 472/124/49
+f 443/125/49 444/126/49 472/124/49
+f 444/126/49 445/127/49 472/124/49
+f 445/127/49 446/128/49 472/124/49
+f 446/128/347 447/129/347 472/124/347
+f 447/129/348 448/130/348 472/124/348
+f 468/131/349 466/132/349 467/133/349
+f 448/130/348 449/134/348 472/124/348
+f 468/131/350 465/135/350 466/132/350
+f 449/134/348 450/136/348 472/124/348
+f 468/131/351 464/137/351 465/135/351
+f 450/136/348 451/138/348 472/124/348
+f 468/131/352 463/139/352 464/137/352
+f 451/138/348 452/140/348 472/124/348
+f 468/131/353 462/141/353 463/139/353
+f 452/140/348 453/142/348 472/124/348
+f 468/131/354 461/143/354 462/141/354
+f 453/142/49 454/144/49 472/124/49
+f 468/131/354 460/145/354 461/143/354
+f 454/144/355 455/146/355 472/124/355
+f 468/131/354 459/147/354 460/145/354
+f 455/146/355 456/148/355 472/124/355
+f 468/131/355 458/149/355 459/147/355
+f 456/148/355 457/150/355 472/124/355
+f 457/150/355 458/149/355 472/124/355
+f 458/149/355 468/131/355 472/124/355
+f 468/131/49 469/151/49 472/124/49
+f 469/151/49 470/152/49 471/153/49
+f 472/124/49 469/151/49 471/153/49
+f 449/121/356 361/121/356 450/121/356
+f 401/121/297 469/121/297 468/121/297
+f 456/121/298 375/121/298 457/121/298
+f 444/121/299 351/121/299 445/121/299
+f 391/121/300 464/121/300 463/121/300
+f 441/121/301 345/121/301 442/121/301
+f 451/121/302 365/121/302 452/121/302
+f 405/121/303 471/121/303 470/121/303
+f 381/121/357 459/121/357 458/121/357
+f 446/121/358 355/121/358 447/121/358
+f 395/121/359 466/121/359 465/121/359
+f 453/121/307 369/121/307 454/121/307
+f 345/121/308 441/121/308 472/121/308
+f 385/121/309 461/121/309 460/121/309
+f 448/121/310 359/121/310 449/121/310
+f 399/121/360 468/121/360 467/121/360
+f 455/121/312 373/121/312 456/121/312
+f 443/121/313 349/121/313 444/121/313
+f 389/121/314 463/121/314 462/121/314
+f 450/121/315 363/121/315 451/121/315
+f 403/121/316 470/121/316 469/121/316
+f 379/121/317 458/121/317 457/121/317
+f 445/121/318 353/121/318 446/121/318
+f 393/121/361 465/121/361 464/121/361
+f 452/121/362 367/121/362 453/121/362
+f 407/121/363 472/121/363 471/121/363
+f 383/121/322 460/121/322 459/121/322
+f 447/121/323 357/121/323 448/121/323
+f 397/121/324 467/121/324 466/121/324
+f 454/121/325 371/121/325 455/121/325
+f 442/121/364 347/121/364 443/121/364
+v 0.000000 0.010026 -4.301087
+v 0.000000 4.010026 -4.301087
+v 0.195090 0.010026 -4.281873
+v 0.195090 4.010026 -4.281873
+v 0.382683 0.010026 -4.224967
+v 0.382683 4.010026 -4.224967
+v 0.555570 0.010026 -4.132557
+v 0.555570 4.010026 -4.132557
+v 0.707107 0.010026 -4.008194
+v 0.707107 4.010026 -4.008194
+v 0.831470 0.010026 -3.856658
+v 0.831470 4.010026 -3.856658
+v 0.923880 0.010026 -3.683771
+v 0.923880 4.010026 -3.683771
+v 0.980785 0.010026 -3.496178
+v 0.980785 4.010026 -3.496178
+v 1.000000 0.010026 -3.301088
+v 1.000000 4.010026 -3.301088
+v 0.980785 0.010026 -3.105997
+v 0.980785 4.010026 -3.105997
+v 0.923880 0.010026 -2.918404
+v 0.923880 4.010026 -2.918404
+v 0.831470 0.010026 -2.745517
+v 0.831470 4.010026 -2.745517
+v 0.707107 0.010026 -2.593981
+v 0.707107 4.010026 -2.593981
+v 0.555570 0.010026 -2.469618
+v 0.555570 4.010026 -2.469618
+v 0.382683 0.010026 -2.377208
+v 0.382683 4.010026 -2.377208
+v 0.195090 0.010026 -2.320302
+v 0.195090 4.010026 -2.320302
+v -0.000000 0.010026 -2.301088
+v -0.000000 4.010026 -2.301088
+v -0.195091 0.010026 -2.320302
+v -0.195091 4.010026 -2.320302
+v -0.382684 0.010026 -2.377208
+v -0.382684 4.010026 -2.377208
+v -0.555571 0.010026 -2.469618
+v -0.555571 4.010026 -2.469618
+v -0.707107 0.010026 -2.593981
+v -0.707107 4.010026 -2.593981
+v -0.831470 0.010026 -2.745518
+v -0.831470 4.010026 -2.745518
+v -0.923880 0.010026 -2.918405
+v -0.923880 4.010026 -2.918405
+v -0.980785 0.010026 -3.105998
+v -0.980785 4.010026 -3.105998
+v -1.000000 0.010026 -3.301089
+v -1.000000 4.010026 -3.301089
+v -0.980785 0.010026 -3.496179
+v -0.980785 4.010026 -3.496179
+v -0.923879 0.010026 -3.683772
+v -0.923879 4.010026 -3.683772
+v -0.831469 0.010026 -3.856659
+v -0.831469 4.010026 -3.856659
+v -0.707106 0.010026 -4.008195
+v -0.707106 4.010026 -4.008195
+v -0.555569 0.010026 -4.132558
+v -0.555569 4.010026 -4.132558
+v -0.382682 0.010026 -4.224968
+v -0.382682 4.010026 -4.224968
+v -0.195089 0.010026 -4.281873
+v -0.195089 4.010026 -4.281873
+v 0.000000 4.270857 -3.619825
+v 0.062183 4.270857 -3.613700
+v 0.121975 4.270857 -3.595562
+v 0.177081 4.270857 -3.566108
+v 0.225381 4.270857 -3.526469
+v 0.265020 4.270857 -3.478168
+v 0.294475 4.270857 -3.423063
+v 0.312612 4.270857 -3.363270
+v 0.318737 4.270857 -3.301088
+v 0.312613 4.270857 -3.238905
+v 0.294475 4.270857 -3.179112
+v 0.265020 4.270857 -3.124007
+v 0.225381 4.270857 -3.075707
+v 0.177081 4.270857 -3.036068
+v 0.121975 4.270857 -3.006613
+v 0.062182 4.270857 -2.988475
+v -0.000000 4.270857 -2.982351
+v -0.062183 4.270857 -2.988475
+v -0.121975 4.270857 -3.006613
+v -0.177081 4.270857 -3.036068
+v -0.225381 4.270857 -3.075707
+v -0.265020 4.270857 -3.124007
+v -0.294475 4.270857 -3.179113
+v -0.312613 4.270857 -3.238906
+v -0.318737 4.270857 -3.301088
+v -0.312612 4.270857 -3.363271
+v -0.294474 4.270857 -3.423064
+v -0.265020 4.270857 -3.478169
+v -0.225381 4.270857 -3.526469
+v -0.177080 4.270857 -3.566108
+v -0.121975 4.270857 -3.595562
+v -0.062182 4.270857 -3.613700
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vt 0.500000 1.000000
+vt 0.597545 0.990393
+vt 0.402456 0.990393
+vt 0.691342 0.961940
+vt 0.777785 0.915735
+vt 0.853553 0.853553
+vt 0.915735 0.777785
+vt 0.961940 0.691342
+vt 0.990393 0.597545
+vt 1.000000 0.500000
+vt 0.990393 0.402455
+vt 0.961940 0.308658
+vt 0.915735 0.222215
+vt 0.853553 0.146447
+vt 0.777785 0.084265
+vt 0.691342 0.038060
+vt 0.597545 0.009607
+vt 0.500000 0.000000
+vt 0.402455 0.009607
+vt 0.308658 0.038060
+vt 0.222215 0.084265
+vt 0.146446 0.146447
+vt 0.084265 0.222215
+vt 0.038060 0.308659
+vt 0.009607 0.402455
+vt 0.000000 0.500000
+vt 0.009607 0.597546
+vt 0.038060 0.691342
+vt 0.084266 0.777786
+vt 0.146447 0.853554
+vt 0.222215 0.915735
+vt 0.308659 0.961940
+vn 0.098017 0.000000 -0.995185
+vn 0.290285 0.000000 -0.956940
+vn 0.471396 0.000000 -0.881922
+vn 0.634394 0.000000 -0.773010
+vn 0.773011 0.000000 -0.634393
+vn 0.881921 0.000000 -0.471397
+vn 0.956940 0.000000 -0.290285
+vn 0.995185 0.000000 -0.098017
+vn 0.995185 0.000000 0.098017
+vn 0.881921 0.000000 0.471397
+vn 0.773011 0.000000 0.634393
+vn 0.634394 0.000000 0.773010
+vn 0.471396 0.000000 0.881921
+vn 0.290285 0.000000 0.956940
+vn 0.098017 0.000000 0.995185
+vn -0.098018 0.000000 0.995185
+vn -0.290285 0.000000 0.956940
+vn -0.471397 0.000000 0.881921
+vn -0.634394 0.000000 0.773010
+vn -0.773011 0.000000 0.634393
+vn -0.881922 0.000000 0.471396
+vn -0.956941 0.000000 0.290284
+vn -0.995185 0.000000 0.098016
+vn -0.995185 -0.000000 -0.098018
+vn -0.956940 -0.000000 -0.290286
+vn -0.881921 -0.000000 -0.471398
+vn -0.773010 -0.000000 -0.634394
+vn -0.634392 -0.000000 -0.773012
+vn -0.471397 -0.000000 -0.881921
+vn -0.357332 0.933314 -0.035195
+vn -0.098015 -0.000000 -0.995185
+vn -0.290282 -0.000000 -0.956941
+vn 0.227786 0.933314 0.277558
+vn -0.035193 0.933314 -0.357332
+vn -0.227786 0.933314 0.277558
+vn 0.357332 0.933314 -0.035194
+vn -0.316663 0.933314 -0.169261
+vn 0.104230 0.933314 0.343600
+vn 0.169260 0.933314 -0.316664
+vn -0.316664 0.933314 0.169260
+vn 0.343600 0.933314 0.104230
+vn -0.227785 0.933314 -0.277559
+vn -0.035194 0.933314 0.357332
+vn 0.277558 0.933314 -0.227786
+vn -0.357332 0.933314 0.035194
+vn 0.277558 0.933314 0.227786
+vn -0.104229 0.933314 -0.343600
+vn -0.169260 0.933314 0.316663
+vn 0.343600 0.933314 -0.104230
+vn -0.343600 0.933314 -0.104230
+vn 0.169260 0.933314 0.316664
+vn 0.104230 0.933314 -0.343600
+vn -0.277558 0.933314 0.227786
+vn 0.357332 0.933314 0.035194
+vn -0.277558 0.933314 -0.227786
+vn 0.035194 0.933314 0.357332
+vn 0.227786 0.933314 -0.277558
+vn -0.343600 0.933314 0.104230
+vn 0.035194 0.933314 -0.357332
+vn 0.316664 0.933314 0.169260
+vn -0.169260 0.933314 -0.316664
+vn -0.104230 0.933314 0.343600
+vn 0.316664 0.933314 -0.169260
+vn -0.357332 0.933314 -0.035194
+vn -0.035195 0.933314 -0.357332
+vn -0.316664 0.933314 -0.169260
+vn 0.169261 0.933314 -0.316663
+vn -0.227786 0.933314 -0.277558
+vn -0.357332 0.933314 0.035193
+vn -0.104230 0.933314 -0.343600
+vn -0.169261 0.933314 0.316663
+vn 0.035195 0.933314 -0.357332
+vn -0.169259 0.933314 -0.316664
+s off
+f 473/154/365 474/155/365 476/156/365
+f 475/154/366 476/155/366 478/156/366
+f 477/154/367 478/155/367 480/156/367
+f 479/154/368 480/155/368 482/156/368
+f 481/154/369 482/155/369 484/156/369
+f 483/154/370 484/155/370 486/156/370
+f 485/154/371 486/155/371 488/156/371
+f 487/154/372 488/155/372 490/156/372
+f 489/154/373 490/155/373 492/156/373
+f 491/154/155 492/155/155 494/156/155
+f 493/154/374 494/155/374 496/156/374
+f 495/154/375 496/155/375 498/156/375
+f 497/154/376 498/155/376 500/156/376
+f 499/154/377 500/155/377 502/156/377
+f 501/154/378 502/155/378 504/156/378
+f 503/154/379 504/155/379 506/156/379
+f 505/154/380 506/155/380 507/157/380
+f 507/154/381 508/155/381 509/157/381
+f 509/154/382 510/155/382 511/157/382
+f 511/154/383 512/155/383 513/157/383
+f 513/154/384 514/155/384 515/157/384
+f 515/154/385 516/155/385 517/157/385
+f 517/154/386 518/155/386 519/157/386
+f 519/154/387 520/155/387 521/157/387
+f 521/154/388 522/155/388 523/157/388
+f 523/154/389 524/155/389 525/157/389
+f 525/154/390 526/155/390 527/157/390
+f 527/154/391 528/155/391 529/157/391
+f 529/154/392 530/155/392 531/157/392
+f 531/154/393 532/155/393 533/157/393
+f 524/154/394 522/155/394 562/157/394
+f 535/154/395 536/155/395 473/157/395
+f 533/154/396 534/155/396 535/157/396
+f 473/158/42 475/159/42 535/160/42
+f 538/158/39 537/159/39 539/160/39
+f 500/154/397 498/155/397 549/156/397
+f 474/154/398 536/155/398 537/157/398
+f 514/154/399 512/155/399 557/157/399
+f 490/154/400 488/155/400 544/156/400
+f 528/154/401 526/155/401 564/157/401
+f 504/154/402 502/155/402 551/156/402
+f 480/154/403 478/155/403 539/156/403
+f 518/154/404 516/155/404 559/157/404
+f 494/154/405 492/155/405 546/156/405
+f 532/154/406 530/155/406 566/157/406
+f 508/154/407 506/155/407 554/157/407
+f 484/154/408 482/155/408 541/156/408
+f 522/154/409 520/155/409 561/157/409
+f 498/154/410 496/155/410 548/156/410
+f 536/154/411 534/155/411 568/157/411
+f 512/154/412 510/155/412 556/157/412
+f 488/154/413 486/155/413 543/156/413
+f 526/154/414 524/155/414 563/157/414
+f 502/154/415 500/155/415 550/156/415
+f 478/154/416 476/155/416 538/156/416
+f 516/154/417 514/155/417 558/157/417
+f 492/154/418 490/155/418 545/156/418
+f 530/154/419 528/155/419 565/157/419
+f 506/154/420 504/155/420 552/156/420
+f 482/154/421 480/155/421 540/156/421
+f 520/154/422 518/155/422 560/157/422
+f 476/154/423 474/155/423 537/156/423
+f 496/154/424 494/155/424 547/156/424
+f 534/154/425 532/155/425 567/157/425
+f 510/154/426 508/155/426 555/157/426
+f 486/154/427 484/155/427 542/156/427
+f 475/157/365 473/154/365 476/156/365
+f 477/157/366 475/154/366 478/156/366
+f 479/157/367 477/154/367 480/156/367
+f 481/157/368 479/154/368 482/156/368
+f 483/157/369 481/154/369 484/156/369
+f 485/157/370 483/154/370 486/156/370
+f 487/157/371 485/154/371 488/156/371
+f 489/157/372 487/154/372 490/156/372
+f 491/157/373 489/154/373 492/156/373
+f 493/157/155 491/154/155 494/156/155
+f 495/157/374 493/154/374 496/156/374
+f 497/157/375 495/154/375 498/156/375
+f 499/157/376 497/154/376 500/156/376
+f 501/157/377 499/154/377 502/156/377
+f 503/157/378 501/154/378 504/156/378
+f 505/157/379 503/154/379 506/156/379
+f 506/155/380 508/156/380 507/157/380
+f 508/155/381 510/156/381 509/157/381
+f 510/155/382 512/156/382 511/157/382
+f 512/155/383 514/156/383 513/157/383
+f 514/155/384 516/156/384 515/157/384
+f 516/155/385 518/156/385 517/157/385
+f 518/155/386 520/156/386 519/157/386
+f 520/155/387 522/156/387 521/157/387
+f 522/155/388 524/156/388 523/157/388
+f 524/155/389 526/156/389 525/157/389
+f 526/155/390 528/156/390 527/157/390
+f 528/155/391 530/156/391 529/157/391
+f 530/155/392 532/156/392 531/157/392
+f 532/155/393 534/156/393 533/157/393
+f 522/155/428 561/156/428 562/157/428
+f 536/155/395 474/156/395 473/157/395
+f 534/155/396 536/156/396 535/157/396
+f 475/159/42 477/161/42 535/160/42
+f 477/161/42 479/162/42 535/160/42
+f 479/162/42 481/163/42 535/160/42
+f 481/163/42 483/164/42 535/160/42
+f 483/164/42 485/165/42 535/160/42
+f 485/165/42 487/166/42 535/160/42
+f 487/166/42 489/167/42 535/160/42
+f 489/167/42 491/168/42 535/160/42
+f 491/168/42 493/169/42 535/160/42
+f 493/169/42 495/170/42 535/160/42
+f 495/170/42 497/171/42 535/160/42
+f 497/171/42 499/172/42 535/160/42
+f 499/172/42 501/173/42 535/160/42
+f 501/173/42 503/174/42 535/160/42
+f 503/174/42 505/175/42 535/160/42
+f 505/175/42 507/176/42 535/160/42
+f 507/176/42 509/177/42 535/160/42
+f 509/177/42 511/178/42 535/160/42
+f 511/178/42 513/179/42 535/160/42
+f 513/179/42 515/180/42 535/160/42
+f 515/180/42 517/181/42 535/160/42
+f 517/181/42 519/182/42 535/160/42
+f 519/182/42 521/183/42 535/160/42
+f 521/183/42 523/184/42 535/160/42
+f 523/184/42 525/185/42 535/160/42
+f 525/185/42 527/186/42 535/160/42
+f 527/186/42 529/187/42 535/160/42
+f 529/187/42 531/188/42 533/189/42
+f 535/160/42 529/187/42 533/189/42
+f 537/159/39 568/161/39 539/160/39
+f 568/161/39 567/162/39 539/160/39
+f 567/162/39 566/163/39 539/160/39
+f 566/163/39 565/164/39 539/160/39
+f 565/164/39 564/165/39 539/160/39
+f 564/165/39 563/166/39 539/160/39
+f 563/166/39 562/167/39 539/160/39
+f 562/167/39 561/168/39 539/160/39
+f 561/168/39 560/169/39 539/160/39
+f 560/169/39 559/170/39 539/160/39
+f 559/170/39 558/171/39 539/160/39
+f 558/171/39 557/172/39 539/160/39
+f 557/172/39 556/173/39 539/160/39
+f 556/173/39 555/174/39 539/160/39
+f 555/174/39 554/175/39 539/160/39
+f 554/175/39 553/176/39 539/160/39
+f 553/176/39 552/177/39 539/160/39
+f 552/177/39 551/178/39 539/160/39
+f 551/178/39 550/179/39 539/160/39
+f 550/179/39 549/180/39 539/160/39
+f 549/180/39 548/181/39 539/160/39
+f 548/181/39 547/182/39 539/160/39
+f 547/182/39 546/183/39 539/160/39
+f 546/183/39 545/184/39 539/160/39
+f 545/184/39 544/185/39 539/160/39
+f 544/185/39 543/186/39 539/160/39
+f 543/186/39 542/187/39 539/160/39
+f 542/187/39 541/188/39 539/160/39
+f 541/188/39 540/189/39 539/160/39
+f 550/157/397 500/154/397 549/156/397
+f 536/155/429 568/156/429 537/157/429
+f 512/155/399 556/156/399 557/157/399
+f 545/157/400 490/154/400 544/156/400
+f 526/155/430 563/156/430 564/157/430
+f 552/157/402 504/154/402 551/156/402
+f 540/157/431 480/154/431 539/156/431
+f 516/155/404 558/156/404 559/157/404
+f 547/157/405 494/154/405 546/156/405
+f 530/155/432 565/156/432 566/157/432
+f 506/155/407 553/156/407 554/157/407
+f 542/157/408 484/154/408 541/156/408
+f 520/155/433 560/156/433 561/157/433
+f 549/157/410 498/154/410 548/156/410
+f 534/155/434 567/156/434 568/157/434
+f 510/155/435 555/156/435 556/157/435
+f 544/157/413 488/154/413 543/156/413
+f 524/155/414 562/156/414 563/157/414
+f 551/157/415 502/154/415 550/156/415
+f 539/157/416 478/154/416 538/156/416
+f 514/155/417 557/156/417 558/157/417
+f 546/157/418 492/154/418 545/156/418
+f 528/155/419 564/156/419 565/157/419
+f 553/157/420 506/154/420 552/156/420
+f 541/157/421 482/154/421 540/156/421
+f 518/155/422 559/156/422 560/157/422
+f 538/157/436 476/154/436 537/156/436
+f 548/157/424 496/154/424 547/156/424
+f 532/155/437 566/156/437 567/157/437
+f 508/155/426 554/156/426 555/157/426
+f 543/157/427 486/154/427 542/156/427
+v 0.609274 0.018251 -1.901238
+v 0.609274 0.018251 -0.682690
+v -0.609274 0.018251 -0.682690
+v -0.609274 0.018251 -1.901238
+v 0.609274 1.236799 -1.901237
+v 0.609273 1.236799 -0.682690
+v -0.609274 1.236799 -0.682690
+v -0.609274 1.236799 -1.901238
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vn 1.000000 -0.000000 0.000001
+s off
+f 569/190/42 570/191/42 571/192/42
+f 573/190/39 576/191/39 575/192/39
+f 569/190/438 573/191/438 574/192/438
+f 570/190/49 574/191/49 571/193/49
+f 571/190/46 575/191/46 572/193/46
+f 573/190/47 569/191/47 572/192/47
+f 572/193/42 569/190/42 571/192/42
+f 574/193/39 573/190/39 575/192/39
+f 570/193/48 569/190/48 574/192/48
+f 574/191/49 575/192/49 571/193/49
+f 575/191/46 576/192/46 572/193/46
+f 576/193/47 573/190/47 572/192/47
diff --git a/examples/datavisualization/graphgallery/data/topography.png b/examples/datavisualization/graphgallery/data/topography.png
new file mode 100644
index 000000000..9349cdb31
--- /dev/null
+++ b/examples/datavisualization/graphgallery/data/topography.png
Binary files differ
diff --git a/examples/datavisualization/graphgallery/doc/graph_gallery.webp b/examples/datavisualization/graphgallery/doc/graph_gallery.webp
new file mode 100644
index 000000000..694b4f294
--- /dev/null
+++ b/examples/datavisualization/graphgallery/doc/graph_gallery.webp
Binary files differ
diff --git a/examples/datavisualization/graphgallery/doc/graphgallery.rst b/examples/datavisualization/graphgallery/doc/graphgallery.rst
new file mode 100644
index 000000000..5ebefc56a
--- /dev/null
+++ b/examples/datavisualization/graphgallery/doc/graphgallery.rst
@@ -0,0 +1,11 @@
+Graph Gallery
+=============
+
+
+Graph Gallery demonstrates all three graph types and some of their special
+features. The graphs have their own tabs in the application.
+
+
+.. image:: graph_gallery.webp
+ :width: 400
+ :alt: Graph Gallery Screenshot
diff --git a/examples/datavisualization/graphgallery/graphgallery.pyproject b/examples/datavisualization/graphgallery/graphgallery.pyproject
new file mode 100644
index 000000000..8022aea9b
--- /dev/null
+++ b/examples/datavisualization/graphgallery/graphgallery.pyproject
@@ -0,0 +1,18 @@
+{
+ "files": ["axesinputhandler.py",
+ "bargraph.py",
+ "custominputhandler.py",
+ "graphgallery.qrc",
+ "graphmodifier.py",
+ "highlightseries.py",
+ "main.py",
+ "rainfalldata.py",
+ "scatterdatamodifier.py",
+ "scattergraph.py",
+ "surfacegraph.py",
+ "surfacegraphmodifier.py",
+ "topographicseries.py",
+ "variantbardatamapping.py",
+ "variantbardataproxy.py",
+ "variantdataset.py"]
+}
diff --git a/examples/datavisualization/graphgallery/graphgallery.qrc b/examples/datavisualization/graphgallery/graphgallery.qrc
new file mode 100644
index 000000000..6df5703df
--- /dev/null
+++ b/examples/datavisualization/graphgallery/graphgallery.qrc
@@ -0,0 +1,13 @@
+<RCC>
+ <qresource prefix="/">
+ <file>data/raindata.txt</file>
+ <file>data/layer_1.png</file>
+ <file>data/layer_2.png</file>
+ <file>data/layer_3.png</file>
+ <file>data/refinery.obj</file>
+ <file>data/oilrig.obj</file>
+ <file>data/pipe.obj</file>
+ <file>data/maptexture.jpg</file>
+ <file>data/topography.png</file>
+ </qresource>
+</RCC>
diff --git a/examples/datavisualization/graphgallery/graphmodifier.py b/examples/datavisualization/graphgallery/graphmodifier.py
new file mode 100644
index 000000000..e8d94ee96
--- /dev/null
+++ b/examples/datavisualization/graphgallery/graphmodifier.py
@@ -0,0 +1,395 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+
+from math import atan, degrees
+import numpy as np
+
+from PySide6.QtCore import QObject, QPropertyAnimation, Signal, Slot
+from PySide6.QtGui import QFont, QVector3D
+from PySide6.QtDataVisualization import (QAbstract3DGraph, QAbstract3DSeries,
+ QBarDataItem, QBar3DSeries,
+ QCategory3DAxis, QValue3DAxis,
+ Q3DCamera, Q3DTheme)
+
+from rainfalldata import RainfallData
+
+# Set up data
+TEMP_OULU = np.array([
+ [-7.4, -2.4, 0.0, 3.0, 8.2, 11.6, 14.7, 15.4, 11.4, 4.2, 2.1, -2.3], # 2015
+ [-13.4, -3.9, -1.8, 3.1, 10.6, 13.7, 17.8, 13.6, 10.7, 3.5, -3.1, -4.2], # 2016
+ [-5.7, -6.7, -3.0, -0.1, 4.7, 12.4, 16.1, 14.1, 9.4, 3.0, -0.3, -3.2], # 2017
+ [-6.4, -11.9, -7.4, 1.9, 11.4, 12.4, 21.5, 16.1, 11.0, 4.4, 2.1, -4.1], # 2018
+ [-11.7, -6.1, -2.4, 3.9, 7.2, 14.5, 15.6, 14.4, 8.5, 2.0, -3.0, -1.5], # 2019
+ [-2.1, -3.4, -1.8, 0.6, 7.0, 17.1, 15.6, 15.4, 11.1, 5.6, 1.9, -1.7], # 2020
+ [-9.6, -11.6, -3.2, 2.4, 7.8, 17.3, 19.4, 14.2, 8.0, 5.2, -2.2, -8.6], # 2021
+ [-7.3, -6.4, -1.8, 1.3, 8.1, 15.5, 17.6, 17.6, 9.1, 5.4, -1.5, -4.4]], # 2022
+ np.float64)
+
+
+TEMP_HELSINKI = np.array([
+ [-2.0, -0.1, 1.8, 5.1, 9.7, 13.7, 16.3, 17.3, 12.7, 5.4, 4.6, 2.1], # 2015
+ [-10.3, -0.6, 0.0, 4.9, 14.3, 15.7, 17.7, 16.0, 12.7, 4.6, -1.0, -0.9], # 2016
+ [-2.9, -3.3, 0.7, 2.3, 9.9, 13.8, 16.1, 15.9, 11.4, 5.0, 2.7, 0.7], # 2017
+ [-2.2, -8.4, -4.7, 5.0, 15.3, 15.8, 21.2, 18.2, 13.3, 6.7, 2.8, -2.0], # 2018
+ [-6.2, -0.5, -0.3, 6.8, 10.6, 17.9, 17.5, 16.8, 11.3, 5.2, 1.8, 1.4], # 2019
+ [1.9, 0.5, 1.7, 4.5, 9.5, 18.4, 16.5, 16.8, 13.0, 8.2, 4.4, 0.9], # 2020
+ [-4.7, -8.1, -0.9, 4.5, 10.4, 19.2, 20.9, 15.4, 9.5, 8.0, 1.5, -6.7], # 2021
+ [-3.3, -2.2, -0.2, 3.3, 9.6, 16.9, 18.1, 18.9, 9.2, 7.6, 2.3, -3.4]], # 2022
+ np.float64)
+
+
+class GraphModifier(QObject):
+
+ shadowQualityChanged = Signal(int)
+ backgroundEnabledChanged = Signal(bool)
+ gridEnabledChanged = Signal(bool)
+ fontChanged = Signal(QFont)
+ fontSizeChanged = Signal(int)
+
+ def __init__(self, bargraph, parent):
+ super().__init__(parent)
+ self._graph = bargraph
+ self._temperatureAxis = QValue3DAxis()
+ self._yearAxis = QCategory3DAxis()
+ self._monthAxis = QCategory3DAxis()
+ self._primarySeries = QBar3DSeries()
+ self._secondarySeries = QBar3DSeries()
+ self._celsiusString = "°C"
+
+ self._xRotation = float(0)
+ self._yRotation = float(0)
+ self._fontSize = 30
+ self._segments = 4
+ self._subSegments = 3
+ self._minval = float(-20)
+ self._maxval = float(20)
+ self._barMesh = QAbstract3DSeries.MeshBevelBar
+ self._smooth = False
+ self._animationCameraX = QPropertyAnimation()
+ self._animationCameraY = QPropertyAnimation()
+ self._animationCameraZoom = QPropertyAnimation()
+ self._animationCameraTarget = QPropertyAnimation()
+ self._defaultAngleX = float(0)
+ self._defaultAngleY = float(0)
+ self._defaultZoom = float(0)
+ self._defaultTarget = []
+ self._customData = None
+
+ self._graph.setShadowQuality(QAbstract3DGraph.ShadowQualitySoftMedium)
+ theme = self._graph.activeTheme()
+ theme.setBackgroundEnabled(False)
+ theme.setFont(QFont("Times New Roman", self._fontSize))
+ theme.setLabelBackgroundEnabled(True)
+ self._graph.setMultiSeriesUniform(True)
+
+ self._months = ["January", "February", "March", "April", "May", "June",
+ "July", "August", "September", "October", "November",
+ "December"]
+ self._years = ["2015", "2016", "2017", "2018", "2019", "2020",
+ "2021", "2022"]
+
+ self._temperatureAxis.setTitle("Average temperature")
+ self._temperatureAxis.setSegmentCount(self._segments)
+ self._temperatureAxis.setSubSegmentCount(self._subSegments)
+ self._temperatureAxis.setRange(self._minval, self._maxval)
+ self._temperatureAxis.setLabelFormat("%.1f " + self._celsiusString)
+ self._temperatureAxis.setLabelAutoRotation(30.0)
+ self._temperatureAxis.setTitleVisible(True)
+
+ self._yearAxis.setTitle("Year")
+ self._yearAxis.setLabelAutoRotation(30.0)
+ self._yearAxis.setTitleVisible(True)
+ self._monthAxis.setTitle("Month")
+ self._monthAxis.setLabelAutoRotation(30.0)
+ self._monthAxis.setTitleVisible(True)
+
+ self._graph.setValueAxis(self._temperatureAxis)
+ self._graph.setRowAxis(self._yearAxis)
+ self._graph.setColumnAxis(self._monthAxis)
+
+ format = "Oulu - @colLabel @rowLabel: @valueLabel"
+ self._primarySeries.setItemLabelFormat(format)
+ self._primarySeries.setMesh(QAbstract3DSeries.MeshBevelBar)
+ self._primarySeries.setMeshSmooth(False)
+
+ format = "Helsinki - @colLabel @rowLabel: @valueLabel"
+ self._secondarySeries.setItemLabelFormat(format)
+ self._secondarySeries.setMesh(QAbstract3DSeries.MeshBevelBar)
+ self._secondarySeries.setMeshSmooth(False)
+ self._secondarySeries.setVisible(False)
+
+ self._graph.addSeries(self._primarySeries)
+ self._graph.addSeries(self._secondarySeries)
+
+ self.changePresetCamera()
+
+ self.resetTemperatureData()
+
+ # Set up property animations for zooming to the selected bar
+ camera = self._graph.scene().activeCamera()
+ self._defaultAngleX = camera.xRotation()
+ self._defaultAngleY = camera.yRotation()
+ self._defaultZoom = camera.zoomLevel()
+ self._defaultTarget = camera.target()
+
+ self._animationCameraX.setTargetObject(camera)
+ self._animationCameraY.setTargetObject(camera)
+ self._animationCameraZoom.setTargetObject(camera)
+ self._animationCameraTarget.setTargetObject(camera)
+
+ self._animationCameraX.setPropertyName(b"xRotation")
+ self._animationCameraY.setPropertyName(b"yRotation")
+ self._animationCameraZoom.setPropertyName(b"zoomLevel")
+ self._animationCameraTarget.setPropertyName(b"target")
+
+ duration = 1700
+ self._animationCameraX.setDuration(duration)
+ self._animationCameraY.setDuration(duration)
+ self._animationCameraZoom.setDuration(duration)
+ self._animationCameraTarget.setDuration(duration)
+
+ # The zoom always first zooms out above the graph and then zooms in
+ zoomOutFraction = 0.3
+ self._animationCameraX.setKeyValueAt(zoomOutFraction, 0.0)
+ self._animationCameraY.setKeyValueAt(zoomOutFraction, 90.0)
+ self._animationCameraZoom.setKeyValueAt(zoomOutFraction, 50.0)
+ self._animationCameraTarget.setKeyValueAt(zoomOutFraction,
+ QVector3D(0, 0, 0))
+ self._customData = RainfallData()
+
+ def resetTemperatureData(self):
+ # Create data arrays
+ dataSet = []
+ dataSet2 = []
+
+ for year in range(0, len(self._years)):
+ # Create a data row
+ dataRow = []
+ dataRow2 = []
+ for month in range(0, len(self._months)):
+ # Add data to the row
+ item = QBarDataItem()
+ item.setValue(TEMP_OULU[year][month])
+ dataRow.append(item)
+ item = QBarDataItem()
+ item.setValue(TEMP_HELSINKI[year][month])
+ dataRow2.append(item)
+
+ # Add the row to the set
+ dataSet.append(dataRow)
+ dataSet2.append(dataRow2)
+
+ # Add data to the data proxy (the data proxy assumes ownership of it)
+ self._primarySeries.dataProxy().resetArray(dataSet, self._years, self._months)
+ self._secondarySeries.dataProxy().resetArray(dataSet2, self._years, self._months)
+
+ @Slot(int)
+ def changeRange(self, range):
+ if range >= len(self._years):
+ self._yearAxis.setRange(0, len(self._years) - 1)
+ else:
+ self._yearAxis.setRange(range, range)
+
+ @Slot(int)
+ def changeStyle(self, style):
+ comboBox = self.sender()
+ if comboBox:
+ self._barMesh = comboBox.itemData(style)
+ self._primarySeries.setMesh(self._barMesh)
+ self._secondarySeries.setMesh(self._barMesh)
+ self._customData.customSeries().setMesh(self._barMesh)
+
+ def changePresetCamera(self):
+ self._animationCameraX.stop()
+ self._animationCameraY.stop()
+ self._animationCameraZoom.stop()
+ self._animationCameraTarget.stop()
+
+ # Restore camera target in case animation has changed it
+ self._graph.scene().activeCamera().setTarget(QVector3D(0.0, 0.0, 0.0))
+
+ self._preset = Q3DCamera.CameraPresetFront.value
+
+ camera = self._graph.scene().activeCamera()
+ camera.setCameraPreset(Q3DCamera.CameraPreset(self._preset))
+
+ self._preset += 1
+ if self._preset > Q3DCamera.CameraPresetDirectlyBelow.value:
+ self._preset = Q3DCamera.CameraPresetFrontLow.value
+
+ @Slot(int)
+ def changeTheme(self, theme):
+ currentTheme = self._graph.activeTheme()
+ currentTheme.setType(Q3DTheme.Theme(theme))
+ self.backgroundEnabledChanged.emit(currentTheme.isBackgroundEnabled())
+ self.gridEnabledChanged.emit(currentTheme.isGridEnabled())
+ self.fontChanged.emit(currentTheme.font())
+ self.fontSizeChanged.emit(currentTheme.font().pointSize())
+
+ def changeLabelBackground(self):
+ theme = self._graph.activeTheme()
+ theme.setLabelBackgroundEnabled(not theme.isLabelBackgroundEnabled())
+
+ @Slot(int)
+ def changeSelectionMode(self, selectionMode):
+ comboBox = self.sender()
+ if comboBox:
+ flags = comboBox.itemData(selectionMode)
+ self._graph.setSelectionMode(QAbstract3DGraph.SelectionFlags(flags))
+
+ def changeFont(self, font):
+ newFont = font
+ self._graph.activeTheme().setFont(newFont)
+
+ def changeFontSize(self, fontsize):
+ self._fontSize = fontsize
+ font = self._graph.activeTheme().font()
+ font.setPointSize(self._fontSize)
+ self._graph.activeTheme().setFont(font)
+
+ @Slot(QAbstract3DGraph.ShadowQuality)
+ def shadowQualityUpdatedByVisual(self, sq):
+ # Updates the UI component to show correct shadow quality
+ self.shadowQualityChanged.emit(sq.value)
+
+ @Slot(int)
+ def changeLabelRotation(self, rotation):
+ self._temperatureAxis.setLabelAutoRotation(float(rotation))
+ self._monthAxis.setLabelAutoRotation(float(rotation))
+ self._yearAxis.setLabelAutoRotation(float(rotation))
+
+ @Slot(bool)
+ def setAxisTitleVisibility(self, enabled):
+ self._temperatureAxis.setTitleVisible(enabled)
+ self._monthAxis.setTitleVisible(enabled)
+ self._yearAxis.setTitleVisible(enabled)
+
+ @Slot(bool)
+ def setAxisTitleFixed(self, enabled):
+ self._temperatureAxis.setTitleFixed(enabled)
+ self._monthAxis.setTitleFixed(enabled)
+ self._yearAxis.setTitleFixed(enabled)
+
+ @Slot()
+ def zoomToSelectedBar(self):
+ self._animationCameraX.stop()
+ self._animationCameraY.stop()
+ self._animationCameraZoom.stop()
+ self._animationCameraTarget.stop()
+
+ camera = self._graph.scene().activeCamera()
+ currentX = camera.xRotation()
+ currentY = camera.yRotation()
+ currentZoom = camera.zoomLevel()
+ currentTarget = camera.target()
+
+ self._animationCameraX.setStartValue(currentX)
+ self._animationCameraY.setStartValue(currentY)
+ self._animationCameraZoom.setStartValue(currentZoom)
+ self._animationCameraTarget.setStartValue(currentTarget)
+
+ selectedBar = (self._graph.selectedSeries().selectedBar()
+ if self._graph.selectedSeries()
+ else QBar3DSeries.invalidSelectionPosition())
+
+ if selectedBar != QBar3DSeries.invalidSelectionPosition():
+ # Normalize selected bar position within axis range to determine
+ # target coordinates
+ endTarget = QVector3D()
+ xMin = self._graph.columnAxis().min()
+ xRange = self._graph.columnAxis().max() - xMin
+ zMin = self._graph.rowAxis().min()
+ zRange = self._graph.rowAxis().max() - zMin
+ endTarget.setX((selectedBar.y() - xMin) / xRange * 2.0 - 1.0)
+ endTarget.setZ((selectedBar.x() - zMin) / zRange * 2.0 - 1.0)
+
+ # Rotate the camera so that it always points approximately to the
+ # graph center
+ endAngleX = 90.0 - degrees(atan(float(endTarget.z() / endTarget.x())))
+ if endTarget.x() > 0.0:
+ endAngleX -= 180.0
+ proxy = self._graph.selectedSeries().dataProxy()
+ barValue = proxy.itemAt(selectedBar.x(), selectedBar.y()).value()
+ endAngleY = 30.0 if barValue >= 0.0 else -30.0
+ if self._graph.valueAxis().reversed():
+ endAngleY *= -1.0
+
+ self._animationCameraX.setEndValue(float(endAngleX))
+ self._animationCameraY.setEndValue(endAngleY)
+ self._animationCameraZoom.setEndValue(250)
+ self._animationCameraTarget.setEndValue(endTarget)
+ else:
+ # No selected bar, so return to the default view
+ self._animationCameraX.setEndValue(self._defaultAngleX)
+ self._animationCameraY.setEndValue(self._defaultAngleY)
+ self._animationCameraZoom.setEndValue(self._defaultZoom)
+ self._animationCameraTarget.setEndValue(self._defaultTarget)
+
+ self._animationCameraX.start()
+ self._animationCameraY.start()
+ self._animationCameraZoom.start()
+ self._animationCameraTarget.start()
+
+ @Slot(bool)
+ def setDataModeToWeather(self, enabled):
+ if enabled:
+ self.changeDataMode(False)
+
+ @Slot(bool)
+ def setDataModeToCustom(self, enabled):
+ if enabled:
+ self.changeDataMode(True)
+
+ def changeShadowQuality(self, quality):
+ sq = QAbstract3DGraph.ShadowQuality(quality)
+ self._graph.setShadowQuality(sq)
+ self.shadowQualityChanged.emit(quality)
+
+ def rotateX(self, rotation):
+ self._xRotation = rotation
+ camera = self._graph.scene().activeCamera()
+ camera.setCameraPosition(self._xRotation, self._yRotation)
+
+ def rotateY(self, rotation):
+ self._yRotation = rotation
+ camera = self._graph.scene().activeCamera()
+ camera.setCameraPosition(self._xRotation, self._yRotation)
+
+ def setBackgroundEnabled(self, enabled):
+ self._graph.activeTheme().setBackgroundEnabled(bool(enabled))
+
+ def setGridEnabled(self, enabled):
+ self._graph.activeTheme().setGridEnabled(bool(enabled))
+
+ def setSmoothBars(self, smooth):
+ self._smooth = bool(smooth)
+ self._primarySeries.setMeshSmooth(self._smooth)
+ self._secondarySeries.setMeshSmooth(self._smooth)
+ self._customData.customSeries().setMeshSmooth(self._smooth)
+
+ def setSeriesVisibility(self, enabled):
+ self._secondarySeries.setVisible(bool(enabled))
+
+ def setReverseValueAxis(self, enabled):
+ self._graph.valueAxis().setReversed(enabled)
+
+ def setReflection(self, enabled):
+ self._graph.setReflection(enabled)
+
+ def changeDataMode(self, customData):
+ # Change between weather data and data from custom proxy
+ if customData:
+ self._graph.removeSeries(self._primarySeries)
+ self._graph.removeSeries(self._secondarySeries)
+ self._graph.addSeries(self._customData.customSeries())
+ self._graph.setValueAxis(self._customData.valueAxis())
+ self._graph.setRowAxis(self._customData.rowAxis())
+ self._graph.setColumnAxis(self._customData.colAxis())
+ else:
+ self._graph.removeSeries(self._customData.customSeries())
+ self._graph.addSeries(self._primarySeries)
+ self._graph.addSeries(self._secondarySeries)
+ self._graph.setValueAxis(self._temperatureAxis)
+ self._graph.setRowAxis(self._yearAxis)
+ self._graph.setColumnAxis(self._monthAxis)
diff --git a/examples/datavisualization/graphgallery/highlightseries.py b/examples/datavisualization/graphgallery/highlightseries.py
new file mode 100644
index 000000000..b5495b422
--- /dev/null
+++ b/examples/datavisualization/graphgallery/highlightseries.py
@@ -0,0 +1,94 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QPoint, Qt, Slot
+from PySide6.QtGui import QLinearGradient, QVector3D
+from PySide6.QtDataVisualization import (QSurface3DSeries, QSurfaceDataItem, Q3DTheme)
+
+
+DARK_RED_POS = 1.0
+RED_POS = 0.8
+YELLOW_POS = 0.6
+GREEN_POS = 0.4
+DARK_GREEN_POS = 0.2
+
+
+class HighlightSeries(QSurface3DSeries):
+
+ def __init__(self):
+ super().__init__()
+ self._width = 100
+ self._height = 100
+ self._srcWidth = 0
+ self._srcHeight = 0
+ self._position = {}
+ self._topographicSeries = None
+ self._minHeight = 0.0
+ self.setDrawMode(QSurface3DSeries.DrawSurface)
+ self.setFlatShadingEnabled(True)
+ self.setVisible(False)
+
+ def setTopographicSeries(self, series):
+ self._topographicSeries = series
+ array = self._topographicSeries.dataProxy().array()
+ self._srcWidth = len(array[0])
+ self._srcHeight = len(array)
+ self._topographicSeries.selectedPointChanged.connect(self.handlePositionChange)
+
+ def setMinHeight(self, height):
+ self. m_minHeight = height
+
+ @Slot(QPoint)
+ def handlePositionChange(self, position):
+ self._position = position
+
+ if position == self.invalidSelectionPosition():
+ self.setVisible(False)
+ return
+
+ halfWidth = self._width / 2
+ halfHeight = self._height / 2
+
+ startX = position.y() - halfWidth
+ if startX < 0:
+ startX = 0
+ endX = position.y() + halfWidth
+ if endX > (self._srcWidth - 1):
+ endX = self._srcWidth - 1
+ startZ = position.x() - halfHeight
+ if startZ < 0:
+ startZ = 0
+ endZ = position.x() + halfHeight
+ if endZ > (self._srcHeight - 1):
+ endZ = self._srcHeight - 1
+
+ srcProxy = self._topographicSeries.dataProxy()
+ srcArray = srcProxy.array()
+
+ dataArray = []
+ for i in range(int(startZ), int(endZ)):
+ newRow = []
+ srcRow = srcArray[i]
+ for j in range(startX, endX):
+ pos = srcRow.at(j).position()
+ pos.setY(pos.y() + 0.1)
+ item = QSurfaceDataItem(QVector3D(pos))
+ newRow.append(item)
+ dataArray.append(newRow)
+ self.dataProxy().resetArray(dataArray)
+ self.setVisible(True)
+
+ @Slot(float)
+ def handleGradientChange(self, value):
+ ratio = self._minHeight / value
+
+ gr = QLinearGradient()
+ gr.setColorAt(0.0, Qt.black)
+ gr.setColorAt(DARK_GREEN_POS * ratio, Qt.darkGreen)
+ gr.setColorAt(GREEN_POS * ratio, Qt.green)
+ gr.setColorAt(YELLOW_POS * ratio, Qt.yellow)
+ gr.setColorAt(RED_POS * ratio, Qt.red)
+ gr.setColorAt(DARK_RED_POS * ratio, Qt.darkRed)
+
+ self.setBaseGradient(gr)
+ self.setColorStyle(Q3DTheme.ColorStyleRangeGradient)
diff --git a/examples/datavisualization/graphgallery/main.py b/examples/datavisualization/graphgallery/main.py
new file mode 100644
index 000000000..4b57b85dd
--- /dev/null
+++ b/examples/datavisualization/graphgallery/main.py
@@ -0,0 +1,50 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the Qt DataVisualization graphgallery example from Qt v6.x"""
+
+import os
+import sys
+
+from PySide6.QtCore import QSize
+from PySide6.QtWidgets import QApplication, QMessageBox, QTabWidget
+
+from bargraph import BarGraph
+from scattergraph import ScatterGraph
+from surfacegraph import SurfaceGraph
+
+
+if __name__ == "__main__":
+ os.environ["QSG_RHI_BACKEND"] = "opengl"
+
+ app = QApplication(sys.argv)
+
+ # Create a tab widget for creating own tabs for Q3DBars, Q3DScatter, and Q3DSurface
+ tabWidget = QTabWidget()
+ tabWidget.setWindowTitle("Graph Gallery")
+
+ screen_size = tabWidget.screen().size()
+ minimum_graph_size = QSize(screen_size.width() / 2, screen_size.height() / 1.75)
+
+ # Create bar graph
+ bars = BarGraph()
+ # Create scatter graph
+ scatter = ScatterGraph()
+ # Create surface graph
+ surface = SurfaceGraph()
+
+ if (not bars.initialize(minimum_graph_size, screen_size)
+ or not scatter.initialize(minimum_graph_size, screen_size)
+ or not surface.initialize(minimum_graph_size, screen_size)):
+ QMessageBox.warning(None, "Graph Gallery", "Couldn't initialize the OpenGL context.")
+ sys.exit(-1)
+
+ # Add bars widget
+ tabWidget.addTab(bars.barsWidget(), "Bar Graph")
+ # Add scatter widget
+ tabWidget.addTab(scatter.scatterWidget(), "Scatter Graph")
+ # Add surface widget
+ tabWidget.addTab(surface.surfaceWidget(), "Surface Graph")
+
+ tabWidget.show()
+ sys.exit(app.exec())
diff --git a/examples/datavisualization/graphgallery/rainfalldata.py b/examples/datavisualization/graphgallery/rainfalldata.py
new file mode 100644
index 000000000..18d6de8d7
--- /dev/null
+++ b/examples/datavisualization/graphgallery/rainfalldata.py
@@ -0,0 +1,125 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from pathlib import Path
+
+from PySide6.QtCore import QFile, QIODevice, QObject
+from PySide6.QtDataVisualization import (QBar3DSeries, QCategory3DAxis, QValue3DAxis)
+
+from variantbardataproxy import VariantBarDataProxy
+from variantbardatamapping import VariantBarDataMapping
+from variantdataset import VariantDataSet
+
+
+MONTHS = ["January", "February", "March", "April",
+ "May", "June", "July", "August", "September", "October",
+ "November", "December"]
+
+
+class RainfallData(QObject):
+
+ def __init__(self):
+ super().__init__()
+ self._columnCount = 0
+ self._rowCount = 0
+ self._years = []
+ self._numericMonths = []
+ self._proxy = VariantBarDataProxy()
+ self._mapping = None
+ self._dataSet = None
+ self._series = QBar3DSeries()
+ self._valueAxis = QValue3DAxis()
+ self._rowAxis = QCategory3DAxis()
+ self._colAxis = QCategory3DAxis()
+
+ # In data file the months are in numeric format, so create custom list
+ for i in range(1, 13):
+ self._numericMonths.append(str(i))
+
+ self._columnCount = len(self._numericMonths)
+
+ self.updateYearsList(2010, 2022)
+
+ # Create proxy and series
+ self._proxy = VariantBarDataProxy()
+ self._series = QBar3DSeries(self._proxy)
+
+ self._series.setItemLabelFormat("%.1f mm")
+
+ # Create the axes
+ self._rowAxis = QCategory3DAxis(self)
+ self._colAxis = QCategory3DAxis(self)
+ self._valueAxis = QValue3DAxis(self)
+ self._rowAxis.setAutoAdjustRange(True)
+ self._colAxis.setAutoAdjustRange(True)
+ self._valueAxis.setAutoAdjustRange(True)
+
+ # Set axis labels and titles
+ self._rowAxis.setTitle("Year")
+ self._colAxis.setTitle("Month")
+ self._valueAxis.setTitle("rainfall (mm)")
+ self._valueAxis.setSegmentCount(5)
+ self._rowAxis.setLabels(self._years)
+ self._colAxis.setLabels(MONTHS)
+ self._rowAxis.setTitleVisible(True)
+ self._colAxis.setTitleVisible(True)
+ self._valueAxis.setTitleVisible(True)
+
+ self.addDataSet()
+
+ def customSeries(self):
+ return self._series
+
+ def valueAxis(self):
+ return self._valueAxis
+
+ def rowAxis(self):
+ return self._rowAxis
+
+ def colAxis(self):
+ return self._colAxis
+
+ def updateYearsList(self, start, end):
+ self._years.clear()
+ for i in range(start, end + 1):
+ self._years.append(str(i))
+ self._rowCount = len(self._years)
+
+ def addDataSet(self):
+ # Create a new variant data set and data item list
+ self._dataSet = VariantDataSet()
+ itemList = []
+
+ # Read data from a data file into the data item list
+ file_path = Path(__file__).resolve().parent / "data" / "raindata.txt"
+ dataFile = QFile(file_path)
+ if dataFile.open(QIODevice.ReadOnly | QIODevice.Text):
+ data = dataFile.readAll().data().decode("utf8")
+ for line in data.split("\n"):
+ if line and not line.startswith("#"): # Ignore comments
+ tokens = line.split(",")
+ # Each line has three data items: Year, month, and
+ # rainfall value
+ if len(tokens) >= 3:
+ # Store year and month as strings, and rainfall value
+ # as double into a variant data item and add the item to
+ # the item list.
+ newItem = []
+ newItem.append(tokens[0].strip())
+ newItem.append(tokens[1].strip())
+ newItem.append(float(tokens[2].strip()))
+ itemList.append(newItem)
+ else:
+ print("Unable to open data file:", dataFile.fileName(),
+ file=sys.stderr)
+
+ # Add items to the data set and set it to the proxy
+ self._dataSet.addItems(itemList)
+ self._proxy.setDataSet(self._dataSet)
+
+ # Create new mapping for the data and set it to the proxy
+ self._mapping = VariantBarDataMapping(0, 1, 2,
+ self._years, self._numericMonths)
+ self._proxy.setMapping(self._mapping)
diff --git a/examples/datavisualization/graphgallery/scatterdatamodifier.py b/examples/datavisualization/graphgallery/scatterdatamodifier.py
new file mode 100644
index 000000000..7c16ef7b9
--- /dev/null
+++ b/examples/datavisualization/graphgallery/scatterdatamodifier.py
@@ -0,0 +1,151 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from math import cos, degrees, sqrt
+
+from PySide6.QtCore import QObject, Signal, Slot, Qt
+from PySide6.QtGui import QVector3D
+from PySide6.QtDataVisualization import (QAbstract3DGraph, QAbstract3DSeries,
+ QScatterDataItem, QScatterDataProxy,
+ QScatter3DSeries, Q3DCamera,
+ Q3DTheme)
+
+from axesinputhandler import AxesInputHandler
+
+
+NUMBER_OF_ITEMS = 10000
+CURVE_DIVIDER = 7.5
+LOWER_NUMBER_OF_ITEMS = 900
+LOWER_CURVE_DIVIDER = 0.75
+
+
+class ScatterDataModifier(QObject):
+
+ backgroundEnabledChanged = Signal(bool)
+ gridEnabledChanged = Signal(bool)
+ shadowQualityChanged = Signal(int)
+
+ def __init__(self, scatter, parent):
+ super().__init__(parent)
+
+ self._graph = scatter
+
+ self._style = QAbstract3DSeries.MeshSphere
+ self._smooth = True
+ self._inputHandler = AxesInputHandler(scatter)
+ self._autoAdjust = True
+ self._itemCount = LOWER_NUMBER_OF_ITEMS
+ self._CURVE_DIVIDER = LOWER_CURVE_DIVIDER
+ self._inputHandler = AxesInputHandler(scatter)
+
+ self._graph.activeTheme().setType(Q3DTheme.ThemeStoneMoss)
+ self._graph.setShadowQuality(QAbstract3DGraph.ShadowQualitySoftHigh)
+ self._graph.scene().activeCamera().setCameraPreset(Q3DCamera.CameraPresetFront)
+ self._graph.scene().activeCamera().setZoomLevel(80.0)
+
+ self._proxy = QScatterDataProxy()
+ self._series = QScatter3DSeries(self._proxy)
+ self._series.setItemLabelFormat("@xTitle: @xLabel @yTitle: @yLabel @zTitle: @zLabel")
+ self._series.setMeshSmooth(self._smooth)
+ self._graph.addSeries(self._series)
+
+ # Give ownership of the handler to the graph and make it the active
+ # handler
+ self._graph.setActiveInputHandler(self._inputHandler)
+
+ # Give our axes to the input handler
+ self._inputHandler.setAxes(self._graph.axisX(), self._graph.axisZ(),
+ self._graph.axisY())
+
+ self.addData()
+
+ def addData(self):
+ # Configure the axes according to the data
+ self._graph.axisX().setTitle("X")
+ self._graph.axisY().setTitle("Y")
+ self._graph.axisZ().setTitle("Z")
+
+ dataArray = []
+ limit = int(sqrt(self._itemCount) / 2.0)
+ for i in range(-limit, limit):
+ for j in range(-limit, limit):
+ x = float(i) + 0.5
+ y = cos(degrees(float(i * j) / self._CURVE_DIVIDER))
+ z = float(j) + 0.5
+ dataArray.append(QScatterDataItem(QVector3D(x, y, z)))
+
+ self._graph.seriesList()[0].dataProxy().resetArray(dataArray)
+
+ @Slot(int)
+ def changeStyle(self, style):
+ comboBox = self.sender()
+ if comboBox:
+ self._style = comboBox.itemData(style)
+ if self._graph.seriesList():
+ self._graph.seriesList()[0].setMesh(self._style)
+
+ @Slot(int)
+ def setSmoothDots(self, smooth):
+ self._smooth = smooth == Qt.Checked.value
+ series = self._graph.seriesList()[0]
+ series.setMeshSmooth(self._smooth)
+
+ @Slot(int)
+ def changeTheme(self, theme):
+ currentTheme = self._graph.activeTheme()
+ currentTheme.setType(Q3DTheme.Theme(theme))
+ self.backgroundEnabledChanged.emit(currentTheme.isBackgroundEnabled())
+ self.gridEnabledChanged.emit(currentTheme.isGridEnabled())
+
+ @Slot()
+ def changePresetCamera(self):
+ preset = Q3DCamera.CameraPresetFrontLow.value
+
+ camera = self._graph.scene().activeCamera()
+ camera.setCameraPreset(Q3DCamera.CameraPreset(preset))
+
+ preset += 1
+ if preset > Q3DCamera.CameraPresetDirectlyBelow.value:
+ preset = Q3DCamera.CameraPresetFrontLow.value
+
+ @Slot(QAbstract3DGraph.ShadowQuality)
+ def shadowQualityUpdatedByVisual(self, sq):
+ self.shadowQualityChanged.emit(sq.value)
+
+ @Slot(int)
+ def changeShadowQuality(self, quality):
+ sq = QAbstract3DGraph.ShadowQuality(quality)
+ self._graph.setShadowQuality(sq)
+
+ @Slot(int)
+ def setBackgroundEnabled(self, enabled):
+ self._graph.activeTheme().setBackgroundEnabled(enabled == Qt.Checked.value)
+
+ @Slot(int)
+ def setGridEnabled(self, enabled):
+ self._graph.activeTheme().setGridEnabled(enabled == Qt.Checked.value)
+
+ @Slot()
+ def toggleItemCount(self):
+ if self._itemCount == NUMBER_OF_ITEMS:
+ self._itemCount = LOWER_NUMBER_OF_ITEMS
+ self._CURVE_DIVIDER = LOWER_CURVE_DIVIDER
+ else:
+ self._itemCount = NUMBER_OF_ITEMS
+ self._CURVE_DIVIDER = CURVE_DIVIDER
+
+ self._graph.seriesList()[0].dataProxy().resetArray([])
+ self.addData()
+
+ @Slot()
+ def toggleRanges(self):
+ if not self._autoAdjust:
+ self._graph.axisX().setAutoAdjustRange(True)
+ self._graph.axisZ().setAutoAdjustRange(True)
+ self._inputHandler.setDragSpeedModifier(1.5)
+ self._autoAdjust = True
+ else:
+ self._graph.axisX().setRange(-10.0, 10.0)
+ self._graph.axisZ().setRange(-10.0, 10.0)
+ self._inputHandler.setDragSpeedModifier(15.0)
+ self._autoAdjust = False
diff --git a/examples/datavisualization/graphgallery/scattergraph.py b/examples/datavisualization/graphgallery/scattergraph.py
new file mode 100644
index 000000000..ffcd428ee
--- /dev/null
+++ b/examples/datavisualization/graphgallery/scattergraph.py
@@ -0,0 +1,128 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject, QSize, Qt
+from PySide6.QtWidgets import (QCheckBox, QComboBox, QCommandLinkButton,
+ QLabel, QHBoxLayout, QSizePolicy,
+ QVBoxLayout, QWidget, )
+from PySide6.QtDataVisualization import (QAbstract3DSeries, Q3DScatter)
+
+from scatterdatamodifier import ScatterDataModifier
+
+
+class ScatterGraph(QObject):
+
+ def __init__(self):
+ super().__init__()
+ self._scatterGraph = Q3DScatter()
+ self._container = None
+ self._scatterWidget = None
+
+ def initialize(self, minimum_graph_size, maximum_graph_size):
+ if not self._scatterGraph.hasContext():
+ return -1
+
+ self._scatterWidget = QWidget()
+ hLayout = QHBoxLayout(self._scatterWidget)
+ self._container = QWidget.createWindowContainer(self._scatterGraph, self._scatterWidget)
+ self._container.setMinimumSize(minimum_graph_size)
+ self._container.setMaximumSize(maximum_graph_size)
+ self._container.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
+ self._container.setFocusPolicy(Qt.StrongFocus)
+ hLayout.addWidget(self._container, 1)
+
+ vLayout = QVBoxLayout()
+ hLayout.addLayout(vLayout)
+
+ cameraButton = QCommandLinkButton(self._scatterWidget)
+ cameraButton.setText("Change camera preset")
+ cameraButton.setDescription("Switch between a number of preset camera positions")
+ cameraButton.setIconSize(QSize(0, 0))
+
+ itemCountButton = QCommandLinkButton(self._scatterWidget)
+ itemCountButton.setText("Toggle item count")
+ itemCountButton.setDescription("Switch between 900 and 10000 data points")
+ itemCountButton.setIconSize(QSize(0, 0))
+
+ rangeButton = QCommandLinkButton(self._scatterWidget)
+ rangeButton.setText("Toggle axis ranges")
+ rangeButton.setDescription("Switch between automatic axis ranges and preset ranges")
+ rangeButton.setIconSize(QSize(0, 0))
+
+ backgroundCheckBox = QCheckBox(self._scatterWidget)
+ backgroundCheckBox.setText("Show background")
+ backgroundCheckBox.setChecked(True)
+
+ gridCheckBox = QCheckBox(self._scatterWidget)
+ gridCheckBox.setText("Show grid")
+ gridCheckBox.setChecked(True)
+
+ smoothCheckBox = QCheckBox(self._scatterWidget)
+ smoothCheckBox.setText("Smooth dots")
+ smoothCheckBox.setChecked(True)
+
+ itemStyleList = QComboBox(self._scatterWidget)
+ itemStyleList.addItem("Sphere", QAbstract3DSeries.MeshSphere)
+ itemStyleList.addItem("Cube", QAbstract3DSeries.MeshCube)
+ itemStyleList.addItem("Minimal", QAbstract3DSeries.MeshMinimal)
+ itemStyleList.addItem("Point", QAbstract3DSeries.MeshPoint)
+ itemStyleList.setCurrentIndex(0)
+
+ themeList = QComboBox(self._scatterWidget)
+ themeList.addItem("Qt")
+ themeList.addItem("Primary Colors")
+ themeList.addItem("Digia")
+ themeList.addItem("Stone Moss")
+ themeList.addItem("Army Blue")
+ themeList.addItem("Retro")
+ themeList.addItem("Ebony")
+ themeList.addItem("Isabelle")
+ themeList.setCurrentIndex(3)
+
+ shadowQuality = QComboBox(self._scatterWidget)
+ shadowQuality.addItem("None")
+ shadowQuality.addItem("Low")
+ shadowQuality.addItem("Medium")
+ shadowQuality.addItem("High")
+ shadowQuality.addItem("Low Soft")
+ shadowQuality.addItem("Medium Soft")
+ shadowQuality.addItem("High Soft")
+ shadowQuality.setCurrentIndex(6)
+
+ vLayout.addWidget(cameraButton)
+ vLayout.addWidget(itemCountButton)
+ vLayout.addWidget(rangeButton)
+ vLayout.addWidget(backgroundCheckBox)
+ vLayout.addWidget(gridCheckBox)
+ vLayout.addWidget(smoothCheckBox)
+ vLayout.addWidget(QLabel("Change dot style"))
+ vLayout.addWidget(itemStyleList)
+ vLayout.addWidget(QLabel("Change theme"))
+ vLayout.addWidget(themeList)
+ vLayout.addWidget(QLabel("Adjust shadow quality"))
+ vLayout.addWidget(shadowQuality, 1, Qt.AlignTop)
+
+ self._modifier = ScatterDataModifier(self._scatterGraph, self)
+
+ cameraButton.clicked.connect(self._modifier.changePresetCamera)
+ itemCountButton.clicked.connect(self._modifier.toggleItemCount)
+ rangeButton.clicked.connect(self._modifier.toggleRanges)
+
+ backgroundCheckBox.stateChanged.connect(self._modifier.setBackgroundEnabled)
+ gridCheckBox.stateChanged.connect(self._modifier.setGridEnabled)
+ smoothCheckBox.stateChanged.connect(self._modifier.setSmoothDots)
+
+ self._modifier.backgroundEnabledChanged.connect(backgroundCheckBox.setChecked)
+ self._modifier.gridEnabledChanged.connect(gridCheckBox.setChecked)
+ itemStyleList.currentIndexChanged.connect(self._modifier.changeStyle)
+
+ themeList.currentIndexChanged.connect(self._modifier.changeTheme)
+
+ shadowQuality.currentIndexChanged.connect(self._modifier.changeShadowQuality)
+
+ self._modifier.shadowQualityChanged.connect(shadowQuality.setCurrentIndex)
+ self._scatterGraph.shadowQualityChanged.connect(self._modifier.shadowQualityUpdatedByVisual)
+ return True
+
+ def scatterWidget(self):
+ return self._scatterWidget
diff --git a/examples/datavisualization/graphgallery/surfacegraph.py b/examples/datavisualization/graphgallery/surfacegraph.py
new file mode 100644
index 000000000..d42f496f9
--- /dev/null
+++ b/examples/datavisualization/graphgallery/surfacegraph.py
@@ -0,0 +1,265 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from surfacegraphmodifier import SurfaceGraphModifier
+
+from PySide6.QtCore import QObject, Qt
+from PySide6.QtGui import QBrush, QIcon, QLinearGradient, QPainter, QPixmap
+from PySide6.QtWidgets import (QGroupBox, QCheckBox, QLabel, QHBoxLayout,
+ QPushButton, QRadioButton, QSizePolicy, QSlider,
+ QVBoxLayout, QWidget)
+
+from PySide6.QtDataVisualization import (Q3DSurface)
+
+
+def gradientBtoYPB_Pixmap():
+ grBtoY = QLinearGradient(0, 0, 1, 100)
+ grBtoY.setColorAt(1.0, Qt.black)
+ grBtoY.setColorAt(0.67, Qt.blue)
+ grBtoY.setColorAt(0.33, Qt.red)
+ grBtoY.setColorAt(0.0, Qt.yellow)
+ pm = QPixmap(24, 100)
+ with QPainter(pm) as pmp:
+ pmp.setBrush(QBrush(grBtoY))
+ pmp.setPen(Qt.NoPen)
+ pmp.drawRect(0, 0, 24, 100)
+ return pm
+
+
+def gradientGtoRPB_Pixmap():
+ grGtoR = QLinearGradient(0, 0, 1, 100)
+ grGtoR.setColorAt(1.0, Qt.darkGreen)
+ grGtoR.setColorAt(0.5, Qt.yellow)
+ grGtoR.setColorAt(0.2, Qt.red)
+ grGtoR.setColorAt(0.0, Qt.darkRed)
+ pm = QPixmap(24, 100)
+ with QPainter(pm) as pmp:
+ pmp.setBrush(QBrush(grGtoR))
+ pmp.setPen(Qt.NoPen)
+ pmp.drawRect(0, 0, 24, 100)
+ return pm
+
+
+def highlightPixmap():
+ HEIGHT = 400
+ WIDTH = 110
+ BORDER = 10
+ gr = QLinearGradient(0, 0, 1, HEIGHT - 2 * BORDER)
+ gr.setColorAt(1.0, Qt.black)
+ gr.setColorAt(0.8, Qt.darkGreen)
+ gr.setColorAt(0.6, Qt.green)
+ gr.setColorAt(0.4, Qt.yellow)
+ gr.setColorAt(0.2, Qt.red)
+ gr.setColorAt(0.0, Qt.darkRed)
+ pmHighlight = QPixmap(WIDTH, HEIGHT)
+ pmHighlight.fill(Qt.transparent)
+ with QPainter(pmHighlight) as pmpHighlight:
+ pmpHighlight.setBrush(QBrush(gr))
+ pmpHighlight.setPen(Qt.NoPen)
+ pmpHighlight.drawRect(BORDER, BORDER, 35, HEIGHT - 2 * BORDER)
+ pmpHighlight.setPen(Qt.black)
+ step = (HEIGHT - 2 * BORDER) / 5
+ for i in range(0, 6):
+ yPos = i * step + BORDER
+ pmpHighlight.drawLine(BORDER, yPos, 55, yPos)
+ HEIGHT = 550 - (i * 110)
+ pmpHighlight.drawText(60, yPos + 2, f"{HEIGHT} m")
+ return pmHighlight
+
+
+class SurfaceGraph(QObject):
+
+ def __init__(self):
+ super().__init__()
+ self._surfaceGraph = Q3DSurface()
+ self._container = None
+ self._surfaceWidget = None
+
+ def initialize(self, minimum_graph_size, maximum_graph_size):
+ if not self._surfaceGraph.hasContext():
+ return False
+
+ self._surfaceWidget = QWidget()
+ hLayout = QHBoxLayout(self._surfaceWidget)
+ self._container = QWidget.createWindowContainer(self._surfaceGraph,
+ self._surfaceWidget)
+ self._container.setMinimumSize(minimum_graph_size)
+ self._container.setMaximumSize(maximum_graph_size)
+ self._container.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
+ self._container.setFocusPolicy(Qt.StrongFocus)
+ hLayout.addWidget(self._container, 1)
+ vLayout = QVBoxLayout()
+ hLayout.addLayout(vLayout)
+ vLayout.setAlignment(Qt.AlignTop)
+ # Create control widgets
+ modelGroupBox = QGroupBox("Model")
+ sqrtSinModelRB = QRadioButton(self._surfaceWidget)
+ sqrtSinModelRB.setText("Sqrt and Sin")
+ sqrtSinModelRB.setChecked(False)
+ heightMapModelRB = QRadioButton(self._surfaceWidget)
+ heightMapModelRB.setText("Multiseries\nHeight Map")
+ heightMapModelRB.setChecked(False)
+ texturedModelRB = QRadioButton(self._surfaceWidget)
+ texturedModelRB.setText("Textured\nTopography")
+ texturedModelRB.setChecked(False)
+ modelVBox = QVBoxLayout()
+ modelVBox.addWidget(sqrtSinModelRB)
+ modelVBox.addWidget(heightMapModelRB)
+ modelVBox.addWidget(texturedModelRB)
+ modelGroupBox.setLayout(modelVBox)
+ selectionGroupBox = QGroupBox("Graph Selection Mode")
+ modeNoneRB = QRadioButton(self._surfaceWidget)
+ modeNoneRB.setText("No selection")
+ modeNoneRB.setChecked(False)
+ modeItemRB = QRadioButton(self._surfaceWidget)
+ modeItemRB.setText("Item")
+ modeItemRB.setChecked(False)
+ modeSliceRowRB = QRadioButton(self._surfaceWidget)
+ modeSliceRowRB.setText("Row Slice")
+ modeSliceRowRB.setChecked(False)
+ modeSliceColumnRB = QRadioButton(self._surfaceWidget)
+ modeSliceColumnRB.setText("Column Slice")
+ modeSliceColumnRB.setChecked(False)
+ selectionVBox = QVBoxLayout()
+ selectionVBox.addWidget(modeNoneRB)
+ selectionVBox.addWidget(modeItemRB)
+ selectionVBox.addWidget(modeSliceRowRB)
+ selectionVBox.addWidget(modeSliceColumnRB)
+ selectionGroupBox.setLayout(selectionVBox)
+ axisGroupBox = QGroupBox("Axis ranges")
+ axisMinSliderX = QSlider(Qt.Horizontal)
+ axisMinSliderX.setMinimum(0)
+ axisMinSliderX.setTickInterval(1)
+ axisMinSliderX.setEnabled(True)
+ axisMaxSliderX = QSlider(Qt.Horizontal)
+ axisMaxSliderX.setMinimum(1)
+ axisMaxSliderX.setTickInterval(1)
+ axisMaxSliderX.setEnabled(True)
+ axisMinSliderZ = QSlider(Qt.Horizontal)
+ axisMinSliderZ.setMinimum(0)
+ axisMinSliderZ.setTickInterval(1)
+ axisMinSliderZ.setEnabled(True)
+ axisMaxSliderZ = QSlider(Qt.Horizontal)
+ axisMaxSliderZ.setMinimum(1)
+ axisMaxSliderZ.setTickInterval(1)
+ axisMaxSliderZ.setEnabled(True)
+ axisVBox = QVBoxLayout(axisGroupBox)
+ axisVBox.addWidget(QLabel("Column range"))
+ axisVBox.addWidget(axisMinSliderX)
+ axisVBox.addWidget(axisMaxSliderX)
+ axisVBox.addWidget(QLabel("Row range"))
+ axisVBox.addWidget(axisMinSliderZ)
+ axisVBox.addWidget(axisMaxSliderZ)
+ # Mode-dependent controls
+ # sqrt-sin
+ colorGroupBox = QGroupBox("Custom gradient")
+
+ pixmap = gradientBtoYPB_Pixmap()
+ gradientBtoYPB = QPushButton(self._surfaceWidget)
+ gradientBtoYPB.setIcon(QIcon(pixmap))
+ gradientBtoYPB.setIconSize(pixmap.size())
+
+ pixmap = gradientGtoRPB_Pixmap()
+ gradientGtoRPB = QPushButton(self._surfaceWidget)
+ gradientGtoRPB.setIcon(QIcon(pixmap))
+ gradientGtoRPB.setIconSize(pixmap.size())
+
+ colorHBox = QHBoxLayout(colorGroupBox)
+ colorHBox.addWidget(gradientBtoYPB)
+ colorHBox.addWidget(gradientGtoRPB)
+ # Multiseries heightmap
+ showGroupBox = QGroupBox("Show Object")
+ showGroupBox.setVisible(False)
+ checkboxShowOilRigOne = QCheckBox("Oil Rig 1")
+ checkboxShowOilRigOne.setChecked(True)
+ checkboxShowOilRigTwo = QCheckBox("Oil Rig 2")
+ checkboxShowOilRigTwo.setChecked(True)
+ checkboxShowRefinery = QCheckBox("Refinery")
+ showVBox = QVBoxLayout()
+ showVBox.addWidget(checkboxShowOilRigOne)
+ showVBox.addWidget(checkboxShowOilRigTwo)
+ showVBox.addWidget(checkboxShowRefinery)
+ showGroupBox.setLayout(showVBox)
+ visualsGroupBox = QGroupBox("Visuals")
+ visualsGroupBox.setVisible(False)
+ checkboxVisualsSeeThrough = QCheckBox("See-Through")
+ checkboxHighlightOil = QCheckBox("Highlight Oil")
+ checkboxShowShadows = QCheckBox("Shadows")
+ checkboxShowShadows.setChecked(True)
+ visualVBox = QVBoxLayout(visualsGroupBox)
+ visualVBox.addWidget(checkboxVisualsSeeThrough)
+ visualVBox.addWidget(checkboxHighlightOil)
+ visualVBox.addWidget(checkboxShowShadows)
+ labelSelection = QLabel("Selection:")
+ labelSelection.setVisible(False)
+ labelSelectedItem = QLabel("Nothing")
+ labelSelectedItem.setVisible(False)
+ # Textured topography heightmap
+ enableTexture = QCheckBox("Surface texture")
+ enableTexture.setVisible(False)
+
+ label = QLabel(self._surfaceWidget)
+ label.setPixmap(highlightPixmap())
+ heightMapGroupBox = QGroupBox("Highlight color map")
+ colorMapVBox = QVBoxLayout()
+ colorMapVBox.addWidget(label)
+ heightMapGroupBox.setLayout(colorMapVBox)
+ heightMapGroupBox.setVisible(False)
+ # Populate vertical layout
+ # Common
+ vLayout.addWidget(modelGroupBox)
+ vLayout.addWidget(selectionGroupBox)
+ vLayout.addWidget(axisGroupBox)
+ # Sqrt Sin
+ vLayout.addWidget(colorGroupBox)
+ # Multiseries heightmap
+ vLayout.addWidget(showGroupBox)
+ vLayout.addWidget(visualsGroupBox)
+ vLayout.addWidget(labelSelection)
+ vLayout.addWidget(labelSelectedItem)
+ # Textured topography
+ vLayout.addWidget(heightMapGroupBox)
+ vLayout.addWidget(enableTexture)
+ # Create the controller
+ modifier = SurfaceGraphModifier(self._surfaceGraph, labelSelectedItem, self)
+ # Connect widget controls to controller
+ heightMapModelRB.toggled.connect(modifier.enableHeightMapModel)
+ sqrtSinModelRB.toggled.connect(modifier.enableSqrtSinModel)
+ texturedModelRB.toggled.connect(modifier.enableTopographyModel)
+ modeNoneRB.toggled.connect(modifier.toggleModeNone)
+ modeItemRB.toggled.connect(modifier.toggleModeItem)
+ modeSliceRowRB.toggled.connect(modifier.toggleModeSliceRow)
+ modeSliceColumnRB.toggled.connect(modifier.toggleModeSliceColumn)
+ axisMinSliderX.valueChanged.connect(modifier.adjustXMin)
+ axisMaxSliderX.valueChanged.connect(modifier.adjustXMax)
+ axisMinSliderZ.valueChanged.connect(modifier.adjustZMin)
+ axisMaxSliderZ.valueChanged.connect(modifier.adjustZMax)
+ # Mode dependent connections
+ gradientBtoYPB.pressed.connect(modifier.setBlackToYellowGradient)
+ gradientGtoRPB.pressed.connect(modifier.setGreenToRedGradient)
+ checkboxShowOilRigOne.stateChanged.connect(modifier.toggleItemOne)
+ checkboxShowOilRigTwo.stateChanged.connect(modifier.toggleItemTwo)
+ checkboxShowRefinery.stateChanged.connect(modifier.toggleItemThree)
+ checkboxVisualsSeeThrough.stateChanged.connect(modifier.toggleSeeThrough)
+ checkboxHighlightOil.stateChanged.connect(modifier.toggleOilHighlight)
+ checkboxShowShadows.stateChanged.connect(modifier.toggleShadows)
+ enableTexture.stateChanged.connect(modifier.toggleSurfaceTexture)
+ # Connections to disable features depending on mode
+ sqrtSinModelRB.toggled.connect(colorGroupBox.setVisible)
+ heightMapModelRB.toggled.connect(showGroupBox.setVisible)
+ heightMapModelRB.toggled.connect(visualsGroupBox.setVisible)
+ heightMapModelRB.toggled.connect(labelSelection.setVisible)
+ heightMapModelRB.toggled.connect(labelSelectedItem.setVisible)
+ texturedModelRB.toggled.connect(enableTexture.setVisible)
+ texturedModelRB.toggled.connect(heightMapGroupBox.setVisible)
+ modifier.setAxisMinSliderX(axisMinSliderX)
+ modifier.setAxisMaxSliderX(axisMaxSliderX)
+ modifier.setAxisMinSliderZ(axisMinSliderZ)
+ modifier.setAxisMaxSliderZ(axisMaxSliderZ)
+ sqrtSinModelRB.setChecked(True)
+ modeItemRB.setChecked(True)
+ enableTexture.setChecked(True)
+ return True
+
+ def surfaceWidget(self):
+ return self._surfaceWidget
diff --git a/examples/datavisualization/graphgallery/surfacegraphmodifier.py b/examples/datavisualization/graphgallery/surfacegraphmodifier.py
new file mode 100644
index 000000000..68499fac8
--- /dev/null
+++ b/examples/datavisualization/graphgallery/surfacegraphmodifier.py
@@ -0,0 +1,643 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import os
+from math import sqrt, sin
+from pathlib import Path
+
+from PySide6.QtCore import QObject, QPropertyAnimation, Qt, Slot
+from PySide6.QtGui import (QColor, QFont, QImage, QLinearGradient,
+ QQuaternion, QVector3D)
+from PySide6.QtDataVisualization import (QAbstract3DGraph, QCustom3DItem,
+ QCustom3DLabel,
+ QHeightMapSurfaceDataProxy,
+ QValue3DAxis, QSurfaceDataItem,
+ QSurfaceDataProxy, QSurface3DSeries,
+ Q3DInputHandler, Q3DCamera, Q3DTheme)
+
+
+from highlightseries import HighlightSeries
+from topographicseries import TopographicSeries
+from custominputhandler import CustomInputHandler
+
+
+SAMPLE_COUNT_X = 150
+SAMPLE_COUNT_Z = 150
+HEIGHTMAP_GRID_STEP_X = 6
+HEIGHTMAP_GRID_STEP_Z = 6
+SAMPLE_MIN = -8.0
+SAMPLE_MAX = 8.0
+
+AREA_WIDTH = 8000.0
+AREA_HEIGHT = 8000.0
+ASPECT_RATIO = 0.1389
+MIN_RANGE = AREA_WIDTH * 0.49
+
+
+class SurfaceGraphModifier(QObject):
+
+ def __init__(self, surface, label, parent):
+ super().__init__(parent)
+ self._data_path = Path(__file__).resolve().parent / "data"
+ self._graph = surface
+ self._textField = label
+ self._sqrtSinProxy = None
+ self._sqrtSinSeries = None
+ self._heightMapProxyOne = None
+ self._heightMapProxyTwo = None
+ self._heightMapProxyThree = None
+ self._heightMapSeriesOne = None
+ self._heightMapSeriesTwo = None
+ self._heightMapSeriesThree = None
+
+ self._axisMinSliderX = None
+ self._axisMaxSliderX = None
+ self._axisMinSliderZ = None
+ self._axisMaxSliderZ = None
+ self._rangeMinX = 0.0
+ self._rangeMinZ = 0.0
+ self._stepX = 0.0
+ self._stepZ = 0.0
+ self._heightMapWidth = 0
+ self._heightMapHeight = 0
+
+ self._selectionAnimation = None
+ self._titleLabel = None
+ self._previouslyAnimatedItem = None
+ self._previousScaling = {}
+
+ self._topography = None
+ self._highlight = None
+ self._highlightWidth = 0
+ self._highlightHeight = 0
+
+ self._customInputHandler = None
+ self._defaultInputHandler = Q3DInputHandler()
+
+ ac = self._graph.scene().activeCamera()
+ ac.setZoomLevel(85.0)
+ ac.setCameraPreset(Q3DCamera.CameraPresetIsometricRight)
+ self._graph.activeTheme().setType(Q3DTheme.ThemeRetro)
+
+ self._x_axis = QValue3DAxis()
+ self._y_axis = QValue3DAxis()
+ self._z_axis = QValue3DAxis()
+ self._graph.setAxisX(self._x_axis)
+ self._graph.setAxisY(self._y_axis)
+ self._graph.setAxisZ(self._z_axis)
+
+ #
+ # Sqrt Sin
+ #
+ self._sqrtSinProxy = QSurfaceDataProxy()
+ self._sqrtSinSeries = QSurface3DSeries(self._sqrtSinProxy)
+ self.fillSqrtSinProxy()
+
+ #
+ # Multisurface heightmap
+ #
+ # Create the first surface layer
+ heightMapImageOne = QImage(self._data_path / "layer_1.png")
+ self._heightMapProxyOne = QHeightMapSurfaceDataProxy(heightMapImageOne)
+ self._heightMapSeriesOne = QSurface3DSeries(self._heightMapProxyOne)
+ self._heightMapSeriesOne.setItemLabelFormat("(@xLabel, @zLabel): @yLabel")
+ self._heightMapProxyOne.setValueRanges(34.0, 40.0, 18.0, 24.0)
+
+ # Create the other 2 surface layers
+ heightMapImageTwo = QImage(self._data_path / "layer_2.png")
+ self._heightMapProxyTwo = QHeightMapSurfaceDataProxy(heightMapImageTwo)
+ self._heightMapSeriesTwo = QSurface3DSeries(self._heightMapProxyTwo)
+ self._heightMapSeriesTwo.setItemLabelFormat("(@xLabel, @zLabel): @yLabel")
+ self._heightMapProxyTwo.setValueRanges(34.0, 40.0, 18.0, 24.0)
+
+ heightMapImageThree = QImage(self._data_path / "layer_3.png")
+ self._heightMapProxyThree = QHeightMapSurfaceDataProxy(heightMapImageThree)
+ self._heightMapSeriesThree = QSurface3DSeries(self._heightMapProxyThree)
+ self._heightMapSeriesThree.setItemLabelFormat("(@xLabel, @zLabel): @yLabel")
+ self._heightMapProxyThree.setValueRanges(34.0, 40.0, 18.0, 24.0)
+
+ # The images are the same size, so it's enough to get the dimensions
+ # from one
+ self._heightMapWidth = heightMapImageOne.width()
+ self._heightMapHeight = heightMapImageOne.height()
+
+ # Set the gradients for multi-surface layers
+ grOne = QLinearGradient()
+ grOne.setColorAt(0.0, Qt.black)
+ grOne.setColorAt(0.38, Qt.darkYellow)
+ grOne.setColorAt(0.39, Qt.darkGreen)
+ grOne.setColorAt(0.5, Qt.darkGray)
+ grOne.setColorAt(1.0, Qt.gray)
+ self._heightMapSeriesOne.setBaseGradient(grOne)
+ self._heightMapSeriesOne.setColorStyle(Q3DTheme.ColorStyleRangeGradient)
+
+ grTwo = QLinearGradient()
+ grTwo.setColorAt(0.39, Qt.blue)
+ grTwo.setColorAt(0.4, Qt.white)
+ self._heightMapSeriesTwo.setBaseGradient(grTwo)
+ self._heightMapSeriesTwo.setColorStyle(Q3DTheme.ColorStyleRangeGradient)
+
+ grThree = QLinearGradient()
+ grThree.setColorAt(0.0, Qt.white)
+ grThree.setColorAt(0.05, Qt.black)
+ self._heightMapSeriesThree.setBaseGradient(grThree)
+ self._heightMapSeriesThree.setColorStyle(Q3DTheme.ColorStyleRangeGradient)
+
+ # Custom items and label
+ self._graph.selectedElementChanged.connect(self.handleElementSelected)
+
+ self._selectionAnimation = QPropertyAnimation(self)
+ self._selectionAnimation.setPropertyName(b"scaling")
+ self._selectionAnimation.setDuration(500)
+ self._selectionAnimation.setLoopCount(-1)
+
+ titleFont = QFont("Century Gothic", 30)
+ titleFont.setBold(True)
+ self._titleLabel = QCustom3DLabel("Oil Rigs on Imaginary Sea", titleFont,
+ QVector3D(0.0, 1.2, 0.0),
+ QVector3D(1.0, 1.0, 0.0),
+ QQuaternion())
+ self._titleLabel.setPositionAbsolute(True)
+ self._titleLabel.setFacingCamera(True)
+ self._titleLabel.setBackgroundColor(QColor(0x66cdaa))
+ self._graph.addCustomItem(self._titleLabel)
+ self._titleLabel.setVisible(False)
+
+ # Make two of the custom object visible
+ self.toggleItemOne(True)
+ self.toggleItemTwo(True)
+
+ #
+ # Topographic map
+ #
+ self._topography = TopographicSeries()
+ file_name = os.fspath(self._data_path / "topography.png")
+ self._topography.setTopographyFile(file_name, AREA_WIDTH, AREA_HEIGHT)
+ self._topography.setItemLabelFormat("@yLabel m")
+
+ self._highlight = HighlightSeries()
+ self._highlight.setTopographicSeries(self._topography)
+ self._highlight.setMinHeight(MIN_RANGE * ASPECT_RATIO)
+ self._highlight.handleGradientChange(AREA_WIDTH * ASPECT_RATIO)
+ self._graph.axisY().maxChanged.connect(self._highlight.handleGradientChange)
+
+ self._customInputHandler = CustomInputHandler(self._graph)
+ self._customInputHandler.setHighlightSeries(self._highlight)
+ self._customInputHandler.setAxes(self._x_axis, self._y_axis, self._z_axis)
+ self._customInputHandler.setLimits(0.0, AREA_WIDTH, MIN_RANGE)
+ self._customInputHandler.setAspectRatio(ASPECT_RATIO)
+
+ def fillSqrtSinProxy(self):
+ stepX = (SAMPLE_MAX - SAMPLE_MIN) / float(SAMPLE_COUNT_X - 1)
+ stepZ = (SAMPLE_MAX - SAMPLE_MIN) / float(SAMPLE_COUNT_Z - 1)
+
+ dataArray = []
+ for i in range(0, SAMPLE_COUNT_Z):
+ newRow = []
+ # Keep values within range bounds, since just adding step can
+ # cause minor drift due to the rounding errors.
+ z = min(SAMPLE_MAX, (i * stepZ + SAMPLE_MIN))
+ for j in range(0, SAMPLE_COUNT_X):
+ x = min(SAMPLE_MAX, (j * stepX + SAMPLE_MIN))
+ R = sqrt(z * z + x * x) + 0.01
+ y = (sin(R) / R + 0.24) * 1.61
+ item = QSurfaceDataItem(QVector3D(x, y, z))
+ newRow.append(item)
+ dataArray.append(newRow)
+ self._sqrtSinProxy.resetArray(dataArray)
+
+ @Slot(bool)
+ def enableSqrtSinModel(self, enable):
+ if enable:
+ self._sqrtSinSeries.setDrawMode(QSurface3DSeries.DrawSurfaceAndWireframe)
+ self._sqrtSinSeries.setFlatShadingEnabled(True)
+
+ self._graph.axisX().setLabelFormat("%.2f")
+ self._graph.axisZ().setLabelFormat("%.2f")
+ self._graph.axisX().setRange(SAMPLE_MIN, SAMPLE_MAX)
+ self._graph.axisY().setRange(0.0, 2.0)
+ self._graph.axisZ().setRange(SAMPLE_MIN, SAMPLE_MAX)
+ self._graph.axisX().setLabelAutoRotation(30.0)
+ self._graph.axisY().setLabelAutoRotation(90.0)
+ self._graph.axisZ().setLabelAutoRotation(30.0)
+
+ self._graph.removeSeries(self._heightMapSeriesOne)
+ self._graph.removeSeries(self._heightMapSeriesTwo)
+ self._graph.removeSeries(self._heightMapSeriesThree)
+ self._graph.removeSeries(self._topography)
+ self._graph.removeSeries(self._highlight)
+
+ self._graph.addSeries(self._sqrtSinSeries)
+
+ self._titleLabel.setVisible(False)
+ self._graph.axisX().setTitleVisible(False)
+ self._graph.axisY().setTitleVisible(False)
+ self._graph.axisZ().setTitleVisible(False)
+
+ self._graph.axisX().setTitle("")
+ self._graph.axisY().setTitle("")
+ self._graph.axisZ().setTitle("")
+
+ self._graph.setActiveInputHandler(self._defaultInputHandler)
+
+ # Reset range sliders for Sqrt & Sin
+ self._rangeMinX = SAMPLE_MIN
+ self._rangeMinZ = SAMPLE_MIN
+ self._stepX = (SAMPLE_MAX - SAMPLE_MIN) / float(SAMPLE_COUNT_X - 1)
+ self._stepZ = (SAMPLE_MAX - SAMPLE_MIN) / float(SAMPLE_COUNT_Z - 1)
+ self._axisMinSliderX.setMinimum(0)
+ self._axisMinSliderX.setMaximum(SAMPLE_COUNT_X - 2)
+ self._axisMinSliderX.setValue(0)
+ self._axisMaxSliderX.setMinimum(1)
+ self._axisMaxSliderX.setMaximum(SAMPLE_COUNT_X - 1)
+ self._axisMaxSliderX.setValue(SAMPLE_COUNT_X - 1)
+ self._axisMinSliderZ.setMinimum(0)
+ self._axisMinSliderZ.setMaximum(SAMPLE_COUNT_Z - 2)
+ self._axisMinSliderZ.setValue(0)
+ self._axisMaxSliderZ.setMinimum(1)
+ self._axisMaxSliderZ.setMaximum(SAMPLE_COUNT_Z - 1)
+ self._axisMaxSliderZ.setValue(SAMPLE_COUNT_Z - 1)
+
+ @Slot(bool)
+ def enableHeightMapModel(self, enable):
+ if enable:
+ self._heightMapSeriesOne.setDrawMode(QSurface3DSeries.DrawSurface)
+ self._heightMapSeriesOne.setFlatShadingEnabled(False)
+ self._heightMapSeriesTwo.setDrawMode(QSurface3DSeries.DrawSurface)
+ self._heightMapSeriesTwo.setFlatShadingEnabled(False)
+ self._heightMapSeriesThree.setDrawMode(QSurface3DSeries.DrawSurface)
+ self._heightMapSeriesThree.setFlatShadingEnabled(False)
+
+ self._graph.axisX().setLabelFormat("%.1f N")
+ self._graph.axisZ().setLabelFormat("%.1f E")
+ self._graph.axisX().setRange(34.0, 40.0)
+ self._graph.axisY().setAutoAdjustRange(True)
+ self._graph.axisZ().setRange(18.0, 24.0)
+
+ self._graph.axisX().setTitle("Latitude")
+ self._graph.axisY().setTitle("Height")
+ self._graph.axisZ().setTitle("Longitude")
+
+ self._graph.removeSeries(self._sqrtSinSeries)
+ self._graph.removeSeries(self._topography)
+ self._graph.removeSeries(self._highlight)
+ self._graph.addSeries(self._heightMapSeriesOne)
+ self._graph.addSeries(self._heightMapSeriesTwo)
+ self._graph.addSeries(self._heightMapSeriesThree)
+
+ self._graph.setActiveInputHandler(self._defaultInputHandler)
+
+ self._titleLabel.setVisible(True)
+ self._graph.axisX().setTitleVisible(True)
+ self._graph.axisY().setTitleVisible(True)
+ self._graph.axisZ().setTitleVisible(True)
+
+ # Reset range sliders for height map
+ mapGridCountX = self._heightMapWidth / HEIGHTMAP_GRID_STEP_X
+ mapGridCountZ = self._heightMapHeight / HEIGHTMAP_GRID_STEP_Z
+ self._rangeMinX = 34.0
+ self._rangeMinZ = 18.0
+ self._stepX = 6.0 / float(mapGridCountX - 1)
+ self._stepZ = 6.0 / float(mapGridCountZ - 1)
+ self._axisMinSliderX.setMinimum(0)
+ self._axisMinSliderX.setMaximum(mapGridCountX - 2)
+ self._axisMinSliderX.setValue(0)
+ self._axisMaxSliderX.setMinimum(1)
+ self._axisMaxSliderX.setMaximum(mapGridCountX - 1)
+ self._axisMaxSliderX.setValue(mapGridCountX - 1)
+ self._axisMinSliderZ.setMinimum(0)
+ self._axisMinSliderZ.setMaximum(mapGridCountZ - 2)
+ self._axisMinSliderZ.setValue(0)
+ self._axisMaxSliderZ.setMinimum(1)
+ self._axisMaxSliderZ.setMaximum(mapGridCountZ - 1)
+ self._axisMaxSliderZ.setValue(mapGridCountZ - 1)
+
+ @Slot(bool)
+ def enableTopographyModel(self, enable):
+ if enable:
+ self._graph.axisX().setLabelFormat("%i")
+ self._graph.axisZ().setLabelFormat("%i")
+ self._graph.axisX().setRange(0.0, AREA_WIDTH)
+ self._graph.axisY().setRange(100.0, AREA_WIDTH * ASPECT_RATIO)
+ self._graph.axisZ().setRange(0.0, AREA_HEIGHT)
+ self._graph.axisX().setLabelAutoRotation(30.0)
+ self._graph.axisY().setLabelAutoRotation(90.0)
+ self._graph.axisZ().setLabelAutoRotation(30.0)
+
+ self._graph.removeSeries(self._heightMapSeriesOne)
+ self._graph.removeSeries(self._heightMapSeriesTwo)
+ self._graph.removeSeries(self._heightMapSeriesThree)
+ self._graph.addSeries(self._topography)
+ self._graph.addSeries(self._highlight)
+
+ self._titleLabel.setVisible(False)
+ self._graph.axisX().setTitleVisible(False)
+ self._graph.axisY().setTitleVisible(False)
+ self._graph.axisZ().setTitleVisible(False)
+
+ self._graph.axisX().setTitle("")
+ self._graph.axisY().setTitle("")
+ self._graph.axisZ().setTitle("")
+
+ self._graph.setActiveInputHandler(self._customInputHandler)
+
+ # Reset range sliders for topography map
+ self._rangeMinX = 0.0
+ self._rangeMinZ = 0.0
+ self._stepX = 1.0
+ self._stepZ = 1.0
+ self._axisMinSliderX.setMinimum(0)
+ self._axisMinSliderX.setMaximum(AREA_WIDTH - 200)
+ self._axisMinSliderX.setValue(0)
+ self._axisMaxSliderX.setMinimum(200)
+ self._axisMaxSliderX.setMaximum(AREA_WIDTH)
+ self._axisMaxSliderX.setValue(AREA_WIDTH)
+ self._axisMinSliderZ.setMinimum(0)
+ self._axisMinSliderZ.setMaximum(AREA_HEIGHT - 200)
+ self._axisMinSliderZ.setValue(0)
+ self._axisMaxSliderZ.setMinimum(200)
+ self._axisMaxSliderZ.setMaximum(AREA_HEIGHT)
+ self._axisMaxSliderZ.setValue(AREA_HEIGHT)
+
+ def adjustXMin(self, min):
+ minX = self._stepX * float(min) + self._rangeMinX
+
+ max = self._axisMaxSliderX.value()
+ if min >= max:
+ max = min + 1
+ self._axisMaxSliderX.setValue(max)
+
+ maxX = self._stepX * max + self._rangeMinX
+
+ self.setAxisXRange(minX, maxX)
+
+ def adjustXMax(self, max):
+ maxX = self._stepX * float(max) + self._rangeMinX
+
+ min = self._axisMinSliderX.value()
+ if max <= min:
+ min = max - 1
+ self._axisMinSliderX.setValue(min)
+
+ minX = self._stepX * min + self._rangeMinX
+
+ self.setAxisXRange(minX, maxX)
+
+ def adjustZMin(self, min):
+ minZ = self._stepZ * float(min) + self._rangeMinZ
+
+ max = self._axisMaxSliderZ.value()
+ if min >= max:
+ max = min + 1
+ self._axisMaxSliderZ.setValue(max)
+
+ maxZ = self._stepZ * max + self._rangeMinZ
+
+ self.setAxisZRange(minZ, maxZ)
+
+ def adjustZMax(self, max):
+ maxX = self._stepZ * float(max) + self._rangeMinZ
+
+ min = self._axisMinSliderZ.value()
+ if max <= min:
+ min = max - 1
+ self._axisMinSliderZ.setValue(min)
+
+ minX = self._stepZ * min + self._rangeMinZ
+
+ self.setAxisZRange(minX, maxX)
+
+ def setAxisXRange(self, min, max):
+ self._graph.axisX().setRange(min, max)
+
+ def setAxisZRange(self, min, max):
+ self._graph.axisZ().setRange(min, max)
+
+ def setBlackToYellowGradient(self):
+ gr = QLinearGradient()
+ gr.setColorAt(0.0, Qt.black)
+ gr.setColorAt(0.33, Qt.blue)
+ gr.setColorAt(0.67, Qt.red)
+ gr.setColorAt(1.0, Qt.yellow)
+
+ self._sqrtSinSeries.setBaseGradient(gr)
+ self._sqrtSinSeries.setColorStyle(Q3DTheme.ColorStyleRangeGradient)
+
+ def setGreenToRedGradient(self):
+ gr = QLinearGradient()
+ gr.setColorAt(0.0, Qt.darkGreen)
+ gr.setColorAt(0.5, Qt.yellow)
+ gr.setColorAt(0.8, Qt.red)
+ gr.setColorAt(1.0, Qt.darkRed)
+
+ self._sqrtSinSeries.setBaseGradient(gr)
+ self._sqrtSinSeries.setColorStyle(Q3DTheme.ColorStyleRangeGradient)
+
+ @Slot(bool)
+ def toggleItemOne(self, show):
+ positionOne = QVector3D(39.0, 77.0, 19.2)
+ positionOnePipe = QVector3D(39.0, 45.0, 19.2)
+ positionOneLabel = QVector3D(39.0, 107.0, 19.2)
+ if show:
+ color = QImage(2, 2, QImage.Format_RGB32)
+ color.fill(Qt.red)
+ file_name = os.fspath(self._data_path / "oilrig.obj")
+ item = QCustom3DItem(file_name, positionOne,
+ QVector3D(0.025, 0.025, 0.025),
+ QQuaternion.fromAxisAndAngle(0.0, 1.0, 0.0, 45.0),
+ color)
+ self._graph.addCustomItem(item)
+ file_name = os.fspath(self._data_path / "pipe.obj")
+ item = QCustom3DItem(file_name, positionOnePipe,
+ QVector3D(0.005, 0.5, 0.005), QQuaternion(),
+ color)
+ item.setShadowCasting(False)
+ self._graph.addCustomItem(item)
+
+ label = QCustom3DLabel()
+ label.setText("Oil Rig One")
+ label.setPosition(positionOneLabel)
+ label.setScaling(QVector3D(1.0, 1.0, 1.0))
+ self._graph.addCustomItem(label)
+ else:
+ self.resetSelection()
+ self._graph.removeCustomItemAt(positionOne)
+ self._graph.removeCustomItemAt(positionOnePipe)
+ self._graph.removeCustomItemAt(positionOneLabel)
+
+ @Slot(bool)
+ def toggleItemTwo(self, show):
+ positionTwo = QVector3D(34.5, 77.0, 23.4)
+ positionTwoPipe = QVector3D(34.5, 45.0, 23.4)
+ positionTwoLabel = QVector3D(34.5, 107.0, 23.4)
+ if show:
+ color = QImage(2, 2, QImage.Format_RGB32)
+ color.fill(Qt.red)
+ item = QCustom3DItem()
+ file_name = os.fspath(self._data_path / "oilrig.obj")
+ item.setMeshFile(file_name)
+ item.setPosition(positionTwo)
+ item.setScaling(QVector3D(0.025, 0.025, 0.025))
+ item.setRotation(QQuaternion.fromAxisAndAngle(0.0, 1.0, 0.0, 25.0))
+ item.setTextureImage(color)
+ self._graph.addCustomItem(item)
+ file_name = os.fspath(self._data_path / "pipe.obj")
+ item = QCustom3DItem(file_name, positionTwoPipe,
+ QVector3D(0.005, 0.5, 0.005), QQuaternion(),
+ color)
+ item.setShadowCasting(False)
+ self._graph.addCustomItem(item)
+
+ label = QCustom3DLabel()
+ label.setText("Oil Rig Two")
+ label.setPosition(positionTwoLabel)
+ label.setScaling(QVector3D(1.0, 1.0, 1.0))
+ self._graph.addCustomItem(label)
+ else:
+ self.resetSelection()
+ self._graph.removeCustomItemAt(positionTwo)
+ self._graph.removeCustomItemAt(positionTwoPipe)
+ self._graph.removeCustomItemAt(positionTwoLabel)
+
+ @Slot(bool)
+ def toggleItemThree(self, show):
+ positionThree = QVector3D(34.5, 86.0, 19.1)
+ positionThreeLabel = QVector3D(34.5, 116.0, 19.1)
+ if show:
+ color = QImage(2, 2, QImage.Format_RGB32)
+ color.fill(Qt.darkMagenta)
+ item = QCustom3DItem()
+ file_name = os.fspath(self._data_path / "refinery.obj")
+ item.setMeshFile(file_name)
+ item.setPosition(positionThree)
+ item.setScaling(QVector3D(0.04, 0.04, 0.04))
+ item.setRotation(QQuaternion.fromAxisAndAngle(0.0, 1.0, 0.0, 75.0))
+ item.setTextureImage(color)
+ self._graph.addCustomItem(item)
+
+ label = QCustom3DLabel()
+ label.setText("Refinery")
+ label.setPosition(positionThreeLabel)
+ label.setScaling(QVector3D(1.0, 1.0, 1.0))
+ self._graph.addCustomItem(label)
+ else:
+ self.resetSelection()
+ self._graph.removeCustomItemAt(positionThree)
+ self._graph.removeCustomItemAt(positionThreeLabel)
+
+ @Slot(bool)
+ def toggleSeeThrough(self, seethrough):
+ s0 = self._graph.seriesList()[0]
+ s1 = self._graph.seriesList()[1]
+ if seethrough:
+ s0.setDrawMode(QSurface3DSeries.DrawWireframe)
+ s1.setDrawMode(QSurface3DSeries.DrawWireframe)
+ else:
+ s0.setDrawMode(QSurface3DSeries.DrawSurface)
+ s1.setDrawMode(QSurface3DSeries.DrawSurface)
+
+ @Slot(bool)
+ def toggleOilHighlight(self, highlight):
+ s2 = self._graph.seriesList()[2]
+ if highlight:
+ grThree = QLinearGradient()
+ grThree.setColorAt(0.0, Qt.black)
+ grThree.setColorAt(0.05, Qt.red)
+ s2.setBaseGradient(grThree)
+ else:
+ grThree = QLinearGradient()
+ grThree.setColorAt(0.0, Qt.white)
+ grThree.setColorAt(0.05, Qt.black)
+ s2.setBaseGradient(grThree)
+
+ @Slot(bool)
+ def toggleShadows(self, shadows):
+ sq = (QAbstract3DGraph.ShadowQualityMedium
+ if shadows else QAbstract3DGraph.ShadowQualityNone)
+ self._graph.setShadowQuality(sq)
+
+ @Slot(bool)
+ def toggleSurfaceTexture(self, enable):
+ if enable:
+ file_name = os.fspath(self._data_path / "maptexture.jpg")
+ self._topography.setTextureFile(file_name)
+ else:
+ self._topography.setTextureFile("")
+
+ def handleElementSelected(self, type):
+ self.resetSelection()
+ if type == QAbstract3DGraph.ElementCustomItem:
+ item = self._graph.selectedCustomItem()
+ text = ""
+ if isinstance(item, QCustom3DItem):
+ text += "Custom label: "
+ else:
+ file = item.meshFile().split("/")[-1]
+ text += f"{file}: "
+
+ text += str(self._graph.selectedCustomItemIndex())
+ self._textField.setText(text)
+ self._previouslyAnimatedItem = item
+ self._previousScaling = item.scaling()
+ self._selectionAnimation.setTargetObject(item)
+ self._selectionAnimation.setStartValue(item.scaling())
+ self._selectionAnimation.setEndValue(item.scaling() * 1.5)
+ self._selectionAnimation.start()
+ elif type == QAbstract3DGraph.ElementSeries:
+ text = "Surface ("
+ series = self._graph.selectedSeries()
+ if series:
+ point = series.selectedPoint()
+ text += f"{point.x()}, {point.y()}"
+ text += ")"
+ self._textField.setText(text)
+ elif (type.value > QAbstract3DGraph.ElementSeries.value
+ and type < QAbstract3DGraph.ElementCustomItem.value):
+ index = self._graph.selectedLabelIndex()
+ text = ""
+ if type == QAbstract3DGraph.ElementAxisXLabel:
+ text += "Axis X label: "
+ elif type == QAbstract3DGraph.ElementAxisYLabel:
+ text += "Axis Y label: "
+ else:
+ text += "Axis Z label: "
+ text += str(index)
+ self._textField.setText(text)
+ else:
+ self._textField.setText("Nothing")
+
+ def resetSelection(self):
+ self._selectionAnimation.stop()
+ if self._previouslyAnimatedItem:
+ self._previouslyAnimatedItem.setScaling(self._previousScaling)
+ self._previouslyAnimatedItem = None
+
+ def toggleModeNone(self):
+ self._graph.setSelectionMode(QAbstract3DGraph.SelectionNone)
+
+ def toggleModeItem(self):
+ self._graph.setSelectionMode(QAbstract3DGraph.SelectionItem)
+
+ def toggleModeSliceRow(self):
+ sm = (QAbstract3DGraph.SelectionItemAndRow
+ | QAbstract3DGraph.SelectionSlice
+ | QAbstract3DGraph.SelectionMultiSeries)
+ self._graph.setSelectionMode(sm)
+
+ def toggleModeSliceColumn(self):
+ sm = (QAbstract3DGraph.SelectionItemAndColumn
+ | QAbstract3DGraph.SelectionSlice
+ | QAbstract3DGraph.SelectionMultiSeries)
+ self._graph.setSelectionMode(sm)
+
+ def setAxisMinSliderX(self, slider):
+ self._axisMinSliderX = slider
+
+ def setAxisMaxSliderX(self, slider):
+ self._axisMaxSliderX = slider
+
+ def setAxisMinSliderZ(self, slider):
+ self._axisMinSliderZ = slider
+
+ def setAxisMaxSliderZ(self, slider):
+ self._axisMaxSliderZ = slider
diff --git a/examples/datavisualization/graphgallery/topographicseries.py b/examples/datavisualization/graphgallery/topographicseries.py
new file mode 100644
index 000000000..350edcb4f
--- /dev/null
+++ b/examples/datavisualization/graphgallery/topographicseries.py
@@ -0,0 +1,57 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import Qt
+from PySide6.QtGui import QImage, QVector3D
+from PySide6.QtDataVisualization import (QSurface3DSeries, QSurfaceDataItem)
+
+
+# Value used to encode height data as RGB value on PNG file
+PACKING_FACTOR = 11983.0
+
+
+class TopographicSeries(QSurface3DSeries):
+
+ def __init__(self):
+ super().__init__()
+ self._sampleCountX = 0.0
+ self._sampleCountZ = 0.0
+ self.setDrawMode(QSurface3DSeries.DrawSurface)
+ self.setFlatShadingEnabled(True)
+ self.setBaseColor(Qt.white)
+
+ def sampleCountX(self):
+ return self._sampleCountX
+
+ def sampleCountZ(self):
+ return self._sampleCountZ
+
+ def setTopographyFile(self, file, width, height):
+ heightMapImage = QImage(file)
+ bits = heightMapImage.bits()
+ imageHeight = heightMapImage.height()
+ imageWidth = heightMapImage.width()
+ widthBits = imageWidth * 4
+ stepX = width / float(imageWidth)
+ stepZ = height / float(imageHeight)
+
+ dataArray = []
+ for i in range(0, imageHeight):
+ p = i * widthBits
+ z = height - float(i) * stepZ
+ newRow = []
+ for j in range(0, imageWidth):
+ aa = bits[p + 0]
+ rr = bits[p + 1]
+ gg = bits[p + 2]
+ color = (gg << 16) + (rr << 8) + aa
+ y = float(color) / PACKING_FACTOR
+ item = QSurfaceDataItem(QVector3D(float(j) * stepX, y, z))
+ newRow.append(item)
+ p += 4
+ dataArray.append(newRow)
+
+ self.dataProxy().resetArray(dataArray)
+
+ self._sampleCountX = float(imageWidth)
+ self._sampleCountZ = float(imageHeight)
diff --git a/examples/datavisualization/graphgallery/variantbardatamapping.py b/examples/datavisualization/graphgallery/variantbardatamapping.py
new file mode 100644
index 000000000..50bdefa6a
--- /dev/null
+++ b/examples/datavisualization/graphgallery/variantbardatamapping.py
@@ -0,0 +1,67 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject, Signal
+
+
+class VariantBarDataMapping(QObject):
+
+ rowIndexChanged = Signal()
+ columnIndexChanged = Signal()
+ valueIndexChanged = Signal()
+ rowCategoriesChanged = Signal()
+ columnCategoriesChanged = Signal()
+ mappingChanged = Signal()
+
+ def __init__(self, rowIndex, columnIndex, valueIndex,
+ rowCategories=[], columnCategories=[]):
+ super().__init__(None)
+ self._rowIndex = rowIndex
+ self._columnIndex = columnIndex
+ self._valueIndex = valueIndex
+ self._rowCategories = rowCategories
+ self._columnCategories = columnCategories
+
+ def setRowIndex(self, index):
+ self._rowIndex = index
+ self.mappingChanged.emit()
+
+ def rowIndex(self):
+ return self._rowIndex
+
+ def setColumnIndex(self, index):
+ self._columnIndex = index
+ self.mappingChanged.emit()
+
+ def columnIndex(self):
+ return self._columnIndex
+
+ def setValueIndex(self, index):
+ self._valueIndex = index
+ self.mappingChanged.emit()
+
+ def valueIndex(self):
+ return self._valueIndex
+
+ def setRowCategories(self, categories):
+ self._rowCategories = categories
+ self.mappingChanged.emit()
+
+ def rowCategories(self):
+ return self._rowCategories
+
+ def setColumnCategories(self, categories):
+ self._columnCategories = categories
+ self.mappingChanged.emit()
+
+ def columnCategories(self):
+ return self._columnCategories
+
+ def remap(self, rowIndex, columnIndex, valueIndex,
+ rowCategories=[], columnCategories=[]):
+ self._rowIndex = rowIndex
+ self._columnIndex = columnIndex
+ self._valueIndex = valueIndex
+ self._rowCategories = rowCategories
+ self._columnCategories = columnCategories
+ self.mappingChanged.emit()
diff --git a/examples/datavisualization/graphgallery/variantbardataproxy.py b/examples/datavisualization/graphgallery/variantbardataproxy.py
new file mode 100644
index 000000000..f69ebaf80
--- /dev/null
+++ b/examples/datavisualization/graphgallery/variantbardataproxy.py
@@ -0,0 +1,100 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import Slot
+from PySide6.QtDataVisualization import QBarDataProxy, QBarDataItem
+
+
+class VariantBarDataProxy(QBarDataProxy):
+
+ def __init__(self):
+ super().__init__()
+ self._dataSet = None
+ self._mapping = None
+
+ def setDataSet(self, newSet):
+ if self._dataSet:
+ self._dataSet.itemsAdded.disconnect(self.handleItemsAdded)
+ self._dataSet.dataCleared.disconnect(self.handleDataCleared)
+
+ self._dataSet = newSet
+
+ if self._dataSet:
+ self._dataSet.itemsAdded.connect(self.handleItemsAdded)
+ self._dataSet.dataCleared.connect(self.handleDataCleared)
+ self.resolveDataSet()
+
+ def dataSet(self):
+ return self._dataSet.data()
+
+ # Map key (row, column, value) to value index in data item (VariantItem).
+ # Doesn't gain ownership of mapping, but does connect to it to listen for
+ # mapping changes. Modifying mapping that is set to proxy will trigger
+ # dataset re-resolving.
+ def setMapping(self, mapping):
+ if self._mapping:
+ self._mapping.mappingChanged.disconnect(self.handleMappingChanged)
+
+ self._mapping = mapping
+
+ if self._mapping:
+ self._mapping.mappingChanged.connect(self.handleMappingChanged)
+
+ self.resolveDataSet()
+
+ def mapping(self):
+ return self._mapping.data()
+
+ @Slot(int, int)
+ def handleItemsAdded(self, index, count):
+ # Resolve new items
+ self.resolveDataSet()
+
+ @Slot()
+ def handleDataCleared(self):
+ # Data cleared, reset array
+ self.resetArray(None)
+
+ @Slot()
+ def handleMappingChanged(self):
+ self.resolveDataSet()
+
+ # Resolve entire dataset into QBarDataArray.
+ def resolveDataSet(self):
+ # If we have no data or mapping, or the categories are not defined,
+ # simply clear the array
+ if (not self._dataSet or not self._mapping
+ or not self._mapping.rowCategories()
+ or not self._mapping.columnCategories()):
+ self.resetArray()
+ return
+
+ itemList = self._dataSet.itemList()
+
+ rowIndex = self._mapping.rowIndex()
+ columnIndex = self._mapping.columnIndex()
+ valueIndex = self._mapping.valueIndex()
+ rowList = self._mapping.rowCategories()
+ columnList = self._mapping.columnCategories()
+
+ # Sort values into rows and columns
+ itemValueMap = {}
+ for item in itemList:
+ key = str(item[rowIndex])
+ v = itemValueMap.get(key)
+ if not v:
+ v = {}
+ itemValueMap[key] = v
+ v[str(item[columnIndex])] = float(item[valueIndex])
+
+ # Create a new data array in format the parent class understands
+ newProxyArray = []
+ for rowKey in rowList:
+ newProxyRow = []
+ for i in range(0, len(columnList)):
+ item = QBarDataItem(itemValueMap[rowKey][columnList[i]])
+ newProxyRow.append(item)
+ newProxyArray.append(newProxyRow)
+
+ # Finally, reset the data array in the parent class
+ self.resetArray(newProxyArray)
diff --git a/examples/datavisualization/graphgallery/variantdataset.py b/examples/datavisualization/graphgallery/variantdataset.py
new file mode 100644
index 000000000..752bc3887
--- /dev/null
+++ b/examples/datavisualization/graphgallery/variantdataset.py
@@ -0,0 +1,39 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject, Signal
+
+
+class VariantDataSet(QObject):
+
+ itemsAdded = Signal(int, int)
+ dataCleared = Signal()
+
+ def __init__(self):
+ super().__init__()
+ self._variantData = []
+
+ def clear(self):
+ for item in self._variantData:
+ item.clear()
+ del item
+
+ self._variantData.clear()
+ self.dataCleared.emit()
+
+ def addItem(self, item):
+ self._variantData.append(item)
+ addIndex = len(self._variantData)
+
+ self.itemsAdded.emit(addIndex, 1)
+ return addIndex
+
+ def addItems(self, itemList):
+ newCount = len(itemList)
+ addIndex = len(self._variantData)
+ self._variantData.extend(itemList)
+ self.itemsAdded.emit(addIndex, newCount)
+ return addIndex
+
+ def itemList(self):
+ return self._variantData
diff --git a/examples/datavisualization/minimalsurface/doc/minimalsurface.rst b/examples/datavisualization/minimalsurface/doc/minimalsurface.rst
new file mode 100644
index 000000000..bfc7a044d
--- /dev/null
+++ b/examples/datavisualization/minimalsurface/doc/minimalsurface.rst
@@ -0,0 +1,4 @@
+Minimal Surface Example
+=======================
+
+The example shows the minimal code to create a surface.
diff --git a/examples/datavisualization/minimalsurface/main.py b/examples/datavisualization/minimalsurface/main.py
new file mode 100644
index 000000000..db720dced
--- /dev/null
+++ b/examples/datavisualization/minimalsurface/main.py
@@ -0,0 +1,54 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import os
+import sys
+
+from PySide6.QtCore import QSize, Qt
+from PySide6.QtGui import QGuiApplication, QVector3D
+from PySide6.QtDataVisualization import (Q3DSurface, QSurfaceDataItem,
+ QSurface3DSeries)
+
+
+DESCRIPTION = """Minimal Qt DataVisualization Surface Example
+
+Use the mouse wheel to zoom. Rotate using the right mouse button.
+"""
+
+
+if __name__ == '__main__':
+ os.environ["QSG_RHI_BACKEND"] = "opengl"
+ app = QGuiApplication(sys.argv)
+
+ print(DESCRIPTION)
+
+ surface = Q3DSurface()
+ surface.setFlags(surface.flags() ^ Qt.FramelessWindowHint)
+ axis = surface.axisX()
+ axis.setTitle("X")
+ axis.setTitleVisible(True)
+ axis = surface.axisY()
+ axis.setTitle("Y")
+ axis.setTitleVisible(True)
+ axis = surface.axisZ()
+ axis.setTitle("Z")
+ axis.setTitleVisible(True)
+
+ data = []
+ data_row1 = [QSurfaceDataItem(QVector3D(0, 0.1, 0.5)),
+ QSurfaceDataItem(QVector3D(1, 0.5, 0.5))]
+ data.append(data_row1)
+ data_row2 = [QSurfaceDataItem(QVector3D(0, 1.8, 1)),
+ QSurfaceDataItem(QVector3D(1, 1.2, 1))]
+ data.append(data_row2)
+
+ series = QSurface3DSeries()
+ series.dataProxy().resetArray(data)
+ surface.addSeries(series)
+
+ available_height = app.primaryScreen().availableGeometry().height()
+ width = available_height * 4 / 5
+ surface.resize(QSize(width, width))
+ surface.show()
+
+ sys.exit(app.exec())
diff --git a/examples/datavisualization/qmlsurfacegallery/datasource.py b/examples/datavisualization/qmlsurfacegallery/datasource.py
new file mode 100644
index 000000000..aca2a6ab8
--- /dev/null
+++ b/examples/datavisualization/qmlsurfacegallery/datasource.py
@@ -0,0 +1,99 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from math import sin, pi
+
+from PySide6.QtCore import QObject, QRandomGenerator, Slot
+from PySide6.QtQml import QmlElement
+from PySide6.QtGui import QVector3D
+from PySide6.QtDataVisualization import QSurfaceDataItem, QSurface3DSeries
+
+
+QML_IMPORT_NAME = "SurfaceGallery"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class DataSource(QObject):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.m_index = -1
+ self.m_resetArray = None
+ self.m_data = []
+
+ @Slot(int, int, int, float, float, float, float, float, float)
+ def generateData(self, cacheCount, rowCount, columnCount,
+ xMin, xMax, yMin, yMax, zMin, zMax):
+ if not cacheCount or not rowCount or not columnCount:
+ return
+
+ self.clearData()
+
+ xRange = xMax - xMin
+ yRange = yMax - yMin
+ zRange = zMax - zMin
+ cacheIndexStep = columnCount / cacheCount
+ cacheStep = float(cacheIndexStep) * xRange / float(columnCount)
+
+ # Populate caches
+ self.m_data = []
+ rand_gen = QRandomGenerator.global_()
+ for i in range(0, cacheCount):
+ cache = []
+ cacheXAdjustment = cacheStep * i
+ cacheIndexAdjustment = cacheIndexStep * i
+ for j in range(0, rowCount):
+ row = []
+ rowMod = (float(j)) / float(rowCount)
+ yRangeMod = yRange * rowMod
+ zRangeMod = zRange * rowMod
+ z = zRangeMod + zMin
+ rowColWaveAngleMul = pi * pi * rowMod
+ rowColWaveMul = yRangeMod * 0.2
+ for k in range(0, columnCount):
+ colMod = (float(k)) / float(columnCount)
+ xRangeMod = xRange * colMod
+ x = xRangeMod + xMin + cacheXAdjustment
+ colWave = sin((2.0 * pi * colMod) - (1.0 / 2.0 * pi)) + 1.0
+ rand_nr = rand_gen.generateDouble() * 0.15
+ y = ((colWave * ((sin(rowColWaveAngleMul * colMod) + 1.0)))
+ * rowColWaveMul + rand_nr * yRangeMod)
+
+ index = k + cacheIndexAdjustment
+ if index >= columnCount:
+ # Wrap over
+ index -= columnCount
+ x -= xRange
+
+ row.append(QSurfaceDataItem(QVector3D(x, y, z)))
+ cache.append(row)
+ self.m_data.append(cache)
+
+ @Slot(QSurface3DSeries)
+ def update(self, series):
+ if series and self.m_data:
+ # Each iteration uses data from a different cached array
+ self.m_index += 1
+ if self.m_index > len(self.m_data) - 1:
+ self.m_index = 0
+
+ array = self.m_data[self.m_index]
+ newRowCount = len(array)
+ newColumnCount = len(array[0])
+
+ # Copy items from our cache to the reset array
+ self.m_resetArray = []
+ for i in range(0, newRowCount):
+ sourceRow = array[i]
+ row = []
+ for j in range(0, newColumnCount):
+ row.append(QSurfaceDataItem(sourceRow[j].position()))
+ self.m_resetArray.append(row)
+
+ # Notify the proxy that data has changed
+ series.dataProxy().resetArray(self.m_resetArray)
+
+ @Slot()
+ def clearData(self):
+ self.m_data = []
diff --git a/examples/datavisualization/qmlsurfacegallery/doc/qmlsurfacegallery.rst b/examples/datavisualization/qmlsurfacegallery/doc/qmlsurfacegallery.rst
new file mode 100644
index 000000000..4be2d738c
--- /dev/null
+++ b/examples/datavisualization/qmlsurfacegallery/doc/qmlsurfacegallery.rst
@@ -0,0 +1,9 @@
+Surface Graph Gallery
+=====================
+
+Surface Graph Gallery demonstrates three different custom features with
+Surface3D graphs. The features have their own tabs in the application.
+
+.. image:: qmlsurfacegallery.webp
+ :width: 600
+ :alt: Surface Graph Gallery Screenshot
diff --git a/examples/datavisualization/qmlsurfacegallery/doc/qmlsurfacegallery.webp b/examples/datavisualization/qmlsurfacegallery/doc/qmlsurfacegallery.webp
new file mode 100644
index 000000000..82a43a84e
--- /dev/null
+++ b/examples/datavisualization/qmlsurfacegallery/doc/qmlsurfacegallery.webp
Binary files differ
diff --git a/examples/datavisualization/qmlsurfacegallery/main.py b/examples/datavisualization/qmlsurfacegallery/main.py
new file mode 100644
index 000000000..7b980bc17
--- /dev/null
+++ b/examples/datavisualization/qmlsurfacegallery/main.py
@@ -0,0 +1,39 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the Qt DataVisualization qmlsurfacegallery example from Qt v6.x"""
+
+import os
+import sys
+from pathlib import Path
+
+from PySide6.QtCore import QCoreApplication, QUrl
+from PySide6.QtGui import QGuiApplication
+from PySide6.QtQuick import QQuickView
+from PySide6.QtDataVisualization import qDefaultSurfaceFormat
+
+from datasource import DataSource # noqa: F401
+import rc_qmlsurfacegallery # noqa: F401
+
+
+if __name__ == "__main__":
+ os.environ["QSG_RHI_BACKEND"] = "opengl"
+ app = QGuiApplication(sys.argv)
+
+ viewer = QQuickView()
+
+ # Enable antialiasing in direct rendering mode
+ viewer.setFormat(qDefaultSurfaceFormat(True))
+
+ viewer.engine().quit.connect(QCoreApplication.quit)
+
+ viewer.setTitle("Surface Graph Gallery")
+
+ qml_file = Path(__file__).resolve().parent / "qml" / "qmlsurfacegallery" / "main.qml"
+ viewer.setSource(QUrl.fromLocalFile(qml_file))
+ viewer.setResizeMode(QQuickView.SizeRootObjectToView)
+ viewer.show()
+
+ ex = app.exec()
+ del viewer
+ sys.exit(ex)
diff --git a/examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/SpectrogramData.qml b/examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/SpectrogramData.qml
new file mode 100644
index 000000000..6e1b57228
--- /dev/null
+++ b/examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/SpectrogramData.qml
@@ -0,0 +1,1545 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+
+Item {
+ property alias model: dataModel
+
+ ListModel {
+ id: dataModel
+ ListElement{ radius: "0"; angle: "0"; value: "50"; }
+ ListElement{ radius: "0"; angle: "5"; value: "54.3578"; }
+ ListElement{ radius: "0"; angle: "10"; value: "58.6824"; }
+ ListElement{ radius: "0"; angle: "15"; value: "62.941"; }
+ ListElement{ radius: "0"; angle: "20"; value: "67.101"; }
+ ListElement{ radius: "0"; angle: "25"; value: "71.1309"; }
+ ListElement{ radius: "0"; angle: "30"; value: "75"; }
+ ListElement{ radius: "0"; angle: "35"; value: "78.6788"; }
+ ListElement{ radius: "0"; angle: "40"; value: "82.1394"; }
+ ListElement{ radius: "0"; angle: "45"; value: "85.3553"; }
+ ListElement{ radius: "0"; angle: "50"; value: "88.3022"; }
+ ListElement{ radius: "0"; angle: "55"; value: "90.9576"; }
+ ListElement{ radius: "0"; angle: "60"; value: "93.3013"; }
+ ListElement{ radius: "0"; angle: "65"; value: "95.3154"; }
+ ListElement{ radius: "0"; angle: "70"; value: "96.9846"; }
+ ListElement{ radius: "0"; angle: "75"; value: "98.2963"; }
+ ListElement{ radius: "0"; angle: "80"; value: "99.2404"; }
+ ListElement{ radius: "0"; angle: "85"; value: "99.8097"; }
+ ListElement{ radius: "0"; angle: "90"; value: "100"; }
+ ListElement{ radius: "0"; angle: "95"; value: "99.8097"; }
+ ListElement{ radius: "0"; angle: "100"; value: "99.2404"; }
+ ListElement{ radius: "0"; angle: "105"; value: "98.2963"; }
+ ListElement{ radius: "0"; angle: "110"; value: "96.9846"; }
+ ListElement{ radius: "0"; angle: "115"; value: "95.3154"; }
+ ListElement{ radius: "0"; angle: "120"; value: "93.3013"; }
+ ListElement{ radius: "0"; angle: "125"; value: "90.9576"; }
+ ListElement{ radius: "0"; angle: "130"; value: "88.3022"; }
+ ListElement{ radius: "0"; angle: "135"; value: "85.3553"; }
+ ListElement{ radius: "0"; angle: "140"; value: "82.1394"; }
+ ListElement{ radius: "0"; angle: "145"; value: "78.6788"; }
+ ListElement{ radius: "0"; angle: "150"; value: "75"; }
+ ListElement{ radius: "0"; angle: "155"; value: "71.1309"; }
+ ListElement{ radius: "0"; angle: "160"; value: "67.101"; }
+ ListElement{ radius: "0"; angle: "165"; value: "62.941"; }
+ ListElement{ radius: "0"; angle: "170"; value: "58.6824"; }
+ ListElement{ radius: "0"; angle: "175"; value: "54.3578"; }
+ ListElement{ radius: "0"; angle: "180"; value: "50"; }
+ ListElement{ radius: "0"; angle: "185"; value: "45.6422"; }
+ ListElement{ radius: "0"; angle: "190"; value: "41.3176"; }
+ ListElement{ radius: "0"; angle: "195"; value: "37.059"; }
+ ListElement{ radius: "0"; angle: "200"; value: "32.899"; }
+ ListElement{ radius: "0"; angle: "205"; value: "28.8691"; }
+ ListElement{ radius: "0"; angle: "210"; value: "25"; }
+ ListElement{ radius: "0"; angle: "215"; value: "21.3212"; }
+ ListElement{ radius: "0"; angle: "220"; value: "17.8606"; }
+ ListElement{ radius: "0"; angle: "225"; value: "14.6447"; }
+ ListElement{ radius: "0"; angle: "230"; value: "11.6978"; }
+ ListElement{ radius: "0"; angle: "235"; value: "9.0424"; }
+ ListElement{ radius: "0"; angle: "240"; value: "6.69873"; }
+ ListElement{ radius: "0"; angle: "245"; value: "4.68461"; }
+ ListElement{ radius: "0"; angle: "250"; value: "3.01537"; }
+ ListElement{ radius: "0"; angle: "255"; value: "1.70371"; }
+ ListElement{ radius: "0"; angle: "260"; value: "0.759612"; }
+ ListElement{ radius: "0"; angle: "265"; value: "0.190265"; }
+ ListElement{ radius: "0"; angle: "270"; value: "0"; }
+ ListElement{ radius: "0"; angle: "275"; value: "0.190265"; }
+ ListElement{ radius: "0"; angle: "280"; value: "0.759612"; }
+ ListElement{ radius: "0"; angle: "285"; value: "1.70371"; }
+ ListElement{ radius: "0"; angle: "290"; value: "3.01537"; }
+ ListElement{ radius: "0"; angle: "295"; value: "4.68461"; }
+ ListElement{ radius: "0"; angle: "300"; value: "6.69873"; }
+ ListElement{ radius: "0"; angle: "305"; value: "9.0424"; }
+ ListElement{ radius: "0"; angle: "310"; value: "11.6978"; }
+ ListElement{ radius: "0"; angle: "315"; value: "14.6447"; }
+ ListElement{ radius: "0"; angle: "320"; value: "17.8606"; }
+ ListElement{ radius: "0"; angle: "325"; value: "21.3212"; }
+ ListElement{ radius: "0"; angle: "330"; value: "25"; }
+ ListElement{ radius: "0"; angle: "335"; value: "28.8691"; }
+ ListElement{ radius: "0"; angle: "340"; value: "32.899"; }
+ ListElement{ radius: "0"; angle: "345"; value: "37.059"; }
+ ListElement{ radius: "0"; angle: "350"; value: "41.3176"; }
+ ListElement{ radius: "0"; angle: "355"; value: "45.6422"; }
+ ListElement{ radius: "0"; angle: "360"; value: "50"; }
+ ListElement{ radius: "5"; angle: "0"; value: "49.3844"; }
+ ListElement{ radius: "5"; angle: "5"; value: "53.7422"; }
+ ListElement{ radius: "5"; angle: "10"; value: "58.0668"; }
+ ListElement{ radius: "5"; angle: "15"; value: "62.3254"; }
+ ListElement{ radius: "5"; angle: "20"; value: "66.4854"; }
+ ListElement{ radius: "5"; angle: "25"; value: "70.5153"; }
+ ListElement{ radius: "5"; angle: "30"; value: "74.3844"; }
+ ListElement{ radius: "5"; angle: "35"; value: "78.0632"; }
+ ListElement{ radius: "5"; angle: "40"; value: "81.5238"; }
+ ListElement{ radius: "5"; angle: "45"; value: "84.7398"; }
+ ListElement{ radius: "5"; angle: "50"; value: "87.6866"; }
+ ListElement{ radius: "5"; angle: "55"; value: "90.342"; }
+ ListElement{ radius: "5"; angle: "60"; value: "92.6857"; }
+ ListElement{ radius: "5"; angle: "65"; value: "94.6998"; }
+ ListElement{ radius: "5"; angle: "70"; value: "96.369"; }
+ ListElement{ radius: "5"; angle: "75"; value: "97.6807"; }
+ ListElement{ radius: "5"; angle: "80"; value: "98.6248"; }
+ ListElement{ radius: "5"; angle: "85"; value: "99.1942"; }
+ ListElement{ radius: "5"; angle: "90"; value: "99.3844"; }
+ ListElement{ radius: "5"; angle: "95"; value: "99.1942"; }
+ ListElement{ radius: "5"; angle: "100"; value: "98.6248"; }
+ ListElement{ radius: "5"; angle: "105"; value: "97.6807"; }
+ ListElement{ radius: "5"; angle: "110"; value: "96.369"; }
+ ListElement{ radius: "5"; angle: "115"; value: "94.6998"; }
+ ListElement{ radius: "5"; angle: "120"; value: "92.6857"; }
+ ListElement{ radius: "5"; angle: "125"; value: "90.342"; }
+ ListElement{ radius: "5"; angle: "130"; value: "87.6866"; }
+ ListElement{ radius: "5"; angle: "135"; value: "84.7398"; }
+ ListElement{ radius: "5"; angle: "140"; value: "81.5238"; }
+ ListElement{ radius: "5"; angle: "145"; value: "78.0632"; }
+ ListElement{ radius: "5"; angle: "150"; value: "74.3844"; }
+ ListElement{ radius: "5"; angle: "155"; value: "70.5153"; }
+ ListElement{ radius: "5"; angle: "160"; value: "66.4854"; }
+ ListElement{ radius: "5"; angle: "165"; value: "62.3254"; }
+ ListElement{ radius: "5"; angle: "170"; value: "58.0668"; }
+ ListElement{ radius: "5"; angle: "175"; value: "53.7422"; }
+ ListElement{ radius: "5"; angle: "180"; value: "49.3844"; }
+ ListElement{ radius: "5"; angle: "185"; value: "45.0266"; }
+ ListElement{ radius: "5"; angle: "190"; value: "40.702"; }
+ ListElement{ radius: "5"; angle: "195"; value: "36.4435"; }
+ ListElement{ radius: "5"; angle: "200"; value: "32.2834"; }
+ ListElement{ radius: "5"; angle: "205"; value: "28.2535"; }
+ ListElement{ radius: "5"; angle: "210"; value: "24.3844"; }
+ ListElement{ radius: "5"; angle: "215"; value: "20.7056"; }
+ ListElement{ radius: "5"; angle: "220"; value: "17.245"; }
+ ListElement{ radius: "5"; angle: "225"; value: "14.0291"; }
+ ListElement{ radius: "5"; angle: "230"; value: "11.0822"; }
+ ListElement{ radius: "5"; angle: "235"; value: "8.42681"; }
+ ListElement{ radius: "5"; angle: "240"; value: "6.08315"; }
+ ListElement{ radius: "5"; angle: "245"; value: "4.06903"; }
+ ListElement{ radius: "5"; angle: "250"; value: "2.39979"; }
+ ListElement{ radius: "5"; angle: "255"; value: "1.08813"; }
+ ListElement{ radius: "5"; angle: "260"; value: "0.144029"; }
+ ListElement{ radius: "5"; angle: "265"; value: "-0.425318"; }
+ ListElement{ radius: "5"; angle: "270"; value: "-0.615583"; }
+ ListElement{ radius: "5"; angle: "275"; value: "-0.425318"; }
+ ListElement{ radius: "5"; angle: "280"; value: "0.144029"; }
+ ListElement{ radius: "5"; angle: "285"; value: "1.08813"; }
+ ListElement{ radius: "5"; angle: "290"; value: "2.39979"; }
+ ListElement{ radius: "5"; angle: "295"; value: "4.06903"; }
+ ListElement{ radius: "5"; angle: "300"; value: "6.08315"; }
+ ListElement{ radius: "5"; angle: "305"; value: "8.42681"; }
+ ListElement{ radius: "5"; angle: "310"; value: "11.0822"; }
+ ListElement{ radius: "5"; angle: "315"; value: "14.0291"; }
+ ListElement{ radius: "5"; angle: "320"; value: "17.245"; }
+ ListElement{ radius: "5"; angle: "325"; value: "20.7056"; }
+ ListElement{ radius: "5"; angle: "330"; value: "24.3844"; }
+ ListElement{ radius: "5"; angle: "335"; value: "28.2535"; }
+ ListElement{ radius: "5"; angle: "340"; value: "32.2834"; }
+ ListElement{ radius: "5"; angle: "345"; value: "36.4435"; }
+ ListElement{ radius: "5"; angle: "350"; value: "40.702"; }
+ ListElement{ radius: "5"; angle: "355"; value: "45.0266"; }
+ ListElement{ radius: "5"; angle: "360"; value: "49.3844"; }
+ ListElement{ radius: "10"; angle: "0"; value: "47.5528"; }
+ ListElement{ radius: "10"; angle: "5"; value: "51.9106"; }
+ ListElement{ radius: "10"; angle: "10"; value: "56.2352"; }
+ ListElement{ radius: "10"; angle: "15"; value: "60.4938"; }
+ ListElement{ radius: "10"; angle: "20"; value: "64.6538"; }
+ ListElement{ radius: "10"; angle: "25"; value: "68.6837"; }
+ ListElement{ radius: "10"; angle: "30"; value: "72.5528"; }
+ ListElement{ radius: "10"; angle: "35"; value: "76.2316"; }
+ ListElement{ radius: "10"; angle: "40"; value: "79.6922"; }
+ ListElement{ radius: "10"; angle: "45"; value: "82.9082"; }
+ ListElement{ radius: "10"; angle: "50"; value: "85.855"; }
+ ListElement{ radius: "10"; angle: "55"; value: "88.5104"; }
+ ListElement{ radius: "10"; angle: "60"; value: "90.8541"; }
+ ListElement{ radius: "10"; angle: "65"; value: "92.8682"; }
+ ListElement{ radius: "10"; angle: "70"; value: "94.5375"; }
+ ListElement{ radius: "10"; angle: "75"; value: "95.8491"; }
+ ListElement{ radius: "10"; angle: "80"; value: "96.7932"; }
+ ListElement{ radius: "10"; angle: "85"; value: "97.3626"; }
+ ListElement{ radius: "10"; angle: "90"; value: "97.5528"; }
+ ListElement{ radius: "10"; angle: "95"; value: "97.3626"; }
+ ListElement{ radius: "10"; angle: "100"; value: "96.7932"; }
+ ListElement{ radius: "10"; angle: "105"; value: "95.8491"; }
+ ListElement{ radius: "10"; angle: "110"; value: "94.5375"; }
+ ListElement{ radius: "10"; angle: "115"; value: "92.8682"; }
+ ListElement{ radius: "10"; angle: "120"; value: "90.8541"; }
+ ListElement{ radius: "10"; angle: "125"; value: "88.5104"; }
+ ListElement{ radius: "10"; angle: "130"; value: "85.855"; }
+ ListElement{ radius: "10"; angle: "135"; value: "82.9082"; }
+ ListElement{ radius: "10"; angle: "140"; value: "79.6922"; }
+ ListElement{ radius: "10"; angle: "145"; value: "76.2316"; }
+ ListElement{ radius: "10"; angle: "150"; value: "72.5528"; }
+ ListElement{ radius: "10"; angle: "155"; value: "68.6837"; }
+ ListElement{ radius: "10"; angle: "160"; value: "64.6538"; }
+ ListElement{ radius: "10"; angle: "165"; value: "60.4938"; }
+ ListElement{ radius: "10"; angle: "170"; value: "56.2352"; }
+ ListElement{ radius: "10"; angle: "175"; value: "51.9106"; }
+ ListElement{ radius: "10"; angle: "180"; value: "47.5528"; }
+ ListElement{ radius: "10"; angle: "185"; value: "43.195"; }
+ ListElement{ radius: "10"; angle: "190"; value: "38.8704"; }
+ ListElement{ radius: "10"; angle: "195"; value: "34.6119"; }
+ ListElement{ radius: "10"; angle: "200"; value: "30.4518"; }
+ ListElement{ radius: "10"; angle: "205"; value: "26.4219"; }
+ ListElement{ radius: "10"; angle: "210"; value: "22.5528"; }
+ ListElement{ radius: "10"; angle: "215"; value: "18.874"; }
+ ListElement{ radius: "10"; angle: "220"; value: "15.4134"; }
+ ListElement{ radius: "10"; angle: "225"; value: "12.1975"; }
+ ListElement{ radius: "10"; angle: "230"; value: "9.2506"; }
+ ListElement{ radius: "10"; angle: "235"; value: "6.59522"; }
+ ListElement{ radius: "10"; angle: "240"; value: "4.25156"; }
+ ListElement{ radius: "10"; angle: "245"; value: "2.23744"; }
+ ListElement{ radius: "10"; angle: "250"; value: "0.568195"; }
+ ListElement{ radius: "10"; angle: "255"; value: "-0.743465"; }
+ ListElement{ radius: "10"; angle: "260"; value: "-1.68756"; }
+ ListElement{ radius: "10"; angle: "265"; value: "-2.25691"; }
+ ListElement{ radius: "10"; angle: "270"; value: "-2.44717"; }
+ ListElement{ radius: "10"; angle: "275"; value: "-2.25691"; }
+ ListElement{ radius: "10"; angle: "280"; value: "-1.68756"; }
+ ListElement{ radius: "10"; angle: "285"; value: "-0.743465"; }
+ ListElement{ radius: "10"; angle: "290"; value: "0.568195"; }
+ ListElement{ radius: "10"; angle: "295"; value: "2.23744"; }
+ ListElement{ radius: "10"; angle: "300"; value: "4.25156"; }
+ ListElement{ radius: "10"; angle: "305"; value: "6.59522"; }
+ ListElement{ radius: "10"; angle: "310"; value: "9.2506"; }
+ ListElement{ radius: "10"; angle: "315"; value: "12.1975"; }
+ ListElement{ radius: "10"; angle: "320"; value: "15.4134"; }
+ ListElement{ radius: "10"; angle: "325"; value: "18.874"; }
+ ListElement{ radius: "10"; angle: "330"; value: "22.5528"; }
+ ListElement{ radius: "10"; angle: "335"; value: "26.4219"; }
+ ListElement{ radius: "10"; angle: "340"; value: "30.4518"; }
+ ListElement{ radius: "10"; angle: "345"; value: "34.6119"; }
+ ListElement{ radius: "10"; angle: "350"; value: "38.8704"; }
+ ListElement{ radius: "10"; angle: "355"; value: "43.195"; }
+ ListElement{ radius: "10"; angle: "360"; value: "47.5528"; }
+ ListElement{ radius: "15"; angle: "0"; value: "44.5503"; }
+ ListElement{ radius: "15"; angle: "5"; value: "48.9081"; }
+ ListElement{ radius: "15"; angle: "10"; value: "53.2327"; }
+ ListElement{ radius: "15"; angle: "15"; value: "57.4913"; }
+ ListElement{ radius: "15"; angle: "20"; value: "61.6513"; }
+ ListElement{ radius: "15"; angle: "25"; value: "65.6812"; }
+ ListElement{ radius: "15"; angle: "30"; value: "69.5503"; }
+ ListElement{ radius: "15"; angle: "35"; value: "73.2291"; }
+ ListElement{ radius: "15"; angle: "40"; value: "76.6897"; }
+ ListElement{ radius: "15"; angle: "45"; value: "79.9057"; }
+ ListElement{ radius: "15"; angle: "50"; value: "82.8525"; }
+ ListElement{ radius: "15"; angle: "55"; value: "85.5079"; }
+ ListElement{ radius: "15"; angle: "60"; value: "87.8516"; }
+ ListElement{ radius: "15"; angle: "65"; value: "89.8657"; }
+ ListElement{ radius: "15"; angle: "70"; value: "91.535"; }
+ ListElement{ radius: "15"; angle: "75"; value: "92.8466"; }
+ ListElement{ radius: "15"; angle: "80"; value: "93.7907"; }
+ ListElement{ radius: "15"; angle: "85"; value: "94.3601"; }
+ ListElement{ radius: "15"; angle: "90"; value: "94.5503"; }
+ ListElement{ radius: "15"; angle: "95"; value: "94.3601"; }
+ ListElement{ radius: "15"; angle: "100"; value: "93.7907"; }
+ ListElement{ radius: "15"; angle: "105"; value: "92.8466"; }
+ ListElement{ radius: "15"; angle: "110"; value: "91.535"; }
+ ListElement{ radius: "15"; angle: "115"; value: "89.8657"; }
+ ListElement{ radius: "15"; angle: "120"; value: "87.8516"; }
+ ListElement{ radius: "15"; angle: "125"; value: "85.5079"; }
+ ListElement{ radius: "15"; angle: "130"; value: "82.8525"; }
+ ListElement{ radius: "15"; angle: "135"; value: "79.9057"; }
+ ListElement{ radius: "15"; angle: "140"; value: "76.6897"; }
+ ListElement{ radius: "15"; angle: "145"; value: "73.2291"; }
+ ListElement{ radius: "15"; angle: "150"; value: "69.5503"; }
+ ListElement{ radius: "15"; angle: "155"; value: "65.6812"; }
+ ListElement{ radius: "15"; angle: "160"; value: "61.6513"; }
+ ListElement{ radius: "15"; angle: "165"; value: "57.4913"; }
+ ListElement{ radius: "15"; angle: "170"; value: "53.2327"; }
+ ListElement{ radius: "15"; angle: "175"; value: "48.9081"; }
+ ListElement{ radius: "15"; angle: "180"; value: "44.5503"; }
+ ListElement{ radius: "15"; angle: "185"; value: "40.1925"; }
+ ListElement{ radius: "15"; angle: "190"; value: "35.8679"; }
+ ListElement{ radius: "15"; angle: "195"; value: "31.6094"; }
+ ListElement{ radius: "15"; angle: "200"; value: "27.4493"; }
+ ListElement{ radius: "15"; angle: "205"; value: "23.4194"; }
+ ListElement{ radius: "15"; angle: "210"; value: "19.5503"; }
+ ListElement{ radius: "15"; angle: "215"; value: "15.8715"; }
+ ListElement{ radius: "15"; angle: "220"; value: "12.4109"; }
+ ListElement{ radius: "15"; angle: "225"; value: "9.19499"; }
+ ListElement{ radius: "15"; angle: "230"; value: "6.2481"; }
+ ListElement{ radius: "15"; angle: "235"; value: "3.59272"; }
+ ListElement{ radius: "15"; angle: "240"; value: "1.24906"; }
+ ListElement{ radius: "15"; angle: "245"; value: "-0.765063"; }
+ ListElement{ radius: "15"; angle: "250"; value: "-2.4343"; }
+ ListElement{ radius: "15"; angle: "255"; value: "-3.74597"; }
+ ListElement{ radius: "15"; angle: "260"; value: "-4.69006"; }
+ ListElement{ radius: "15"; angle: "265"; value: "-5.25941"; }
+ ListElement{ radius: "15"; angle: "270"; value: "-5.44967"; }
+ ListElement{ radius: "15"; angle: "275"; value: "-5.25941"; }
+ ListElement{ radius: "15"; angle: "280"; value: "-4.69006"; }
+ ListElement{ radius: "15"; angle: "285"; value: "-3.74597"; }
+ ListElement{ radius: "15"; angle: "290"; value: "-2.4343"; }
+ ListElement{ radius: "15"; angle: "295"; value: "-0.765063"; }
+ ListElement{ radius: "15"; angle: "300"; value: "1.24906"; }
+ ListElement{ radius: "15"; angle: "305"; value: "3.59272"; }
+ ListElement{ radius: "15"; angle: "310"; value: "6.2481"; }
+ ListElement{ radius: "15"; angle: "315"; value: "9.19499"; }
+ ListElement{ radius: "15"; angle: "320"; value: "12.4109"; }
+ ListElement{ radius: "15"; angle: "325"; value: "15.8715"; }
+ ListElement{ radius: "15"; angle: "330"; value: "19.5503"; }
+ ListElement{ radius: "15"; angle: "335"; value: "23.4194"; }
+ ListElement{ radius: "15"; angle: "340"; value: "27.4493"; }
+ ListElement{ radius: "15"; angle: "345"; value: "31.6094"; }
+ ListElement{ radius: "15"; angle: "350"; value: "35.8679"; }
+ ListElement{ radius: "15"; angle: "355"; value: "40.1925"; }
+ ListElement{ radius: "15"; angle: "360"; value: "44.5503"; }
+ ListElement{ radius: "20"; angle: "0"; value: "40.4508"; }
+ ListElement{ radius: "20"; angle: "5"; value: "44.8086"; }
+ ListElement{ radius: "20"; angle: "10"; value: "49.1333"; }
+ ListElement{ radius: "20"; angle: "15"; value: "53.3918"; }
+ ListElement{ radius: "20"; angle: "20"; value: "57.5519"; }
+ ListElement{ radius: "20"; angle: "25"; value: "61.5818"; }
+ ListElement{ radius: "20"; angle: "30"; value: "65.4508"; }
+ ListElement{ radius: "20"; angle: "35"; value: "69.1297"; }
+ ListElement{ radius: "20"; angle: "40"; value: "72.5902"; }
+ ListElement{ radius: "20"; angle: "45"; value: "75.8062"; }
+ ListElement{ radius: "20"; angle: "50"; value: "78.7531"; }
+ ListElement{ radius: "20"; angle: "55"; value: "81.4085"; }
+ ListElement{ radius: "20"; angle: "60"; value: "83.7521"; }
+ ListElement{ radius: "20"; angle: "65"; value: "85.7662"; }
+ ListElement{ radius: "20"; angle: "70"; value: "87.4355"; }
+ ListElement{ radius: "20"; angle: "75"; value: "88.7471"; }
+ ListElement{ radius: "20"; angle: "80"; value: "89.6912"; }
+ ListElement{ radius: "20"; angle: "85"; value: "90.2606"; }
+ ListElement{ radius: "20"; angle: "90"; value: "90.4508"; }
+ ListElement{ radius: "20"; angle: "95"; value: "90.2606"; }
+ ListElement{ radius: "20"; angle: "100"; value: "89.6912"; }
+ ListElement{ radius: "20"; angle: "105"; value: "88.7471"; }
+ ListElement{ radius: "20"; angle: "110"; value: "87.4355"; }
+ ListElement{ radius: "20"; angle: "115"; value: "85.7662"; }
+ ListElement{ radius: "20"; angle: "120"; value: "83.7521"; }
+ ListElement{ radius: "20"; angle: "125"; value: "81.4085"; }
+ ListElement{ radius: "20"; angle: "130"; value: "78.7531"; }
+ ListElement{ radius: "20"; angle: "135"; value: "75.8062"; }
+ ListElement{ radius: "20"; angle: "140"; value: "72.5902"; }
+ ListElement{ radius: "20"; angle: "145"; value: "69.1297"; }
+ ListElement{ radius: "20"; angle: "150"; value: "65.4508"; }
+ ListElement{ radius: "20"; angle: "155"; value: "61.5818"; }
+ ListElement{ radius: "20"; angle: "160"; value: "57.5519"; }
+ ListElement{ radius: "20"; angle: "165"; value: "53.3918"; }
+ ListElement{ radius: "20"; angle: "170"; value: "49.1333"; }
+ ListElement{ radius: "20"; angle: "175"; value: "44.8086"; }
+ ListElement{ radius: "20"; angle: "180"; value: "40.4508"; }
+ ListElement{ radius: "20"; angle: "185"; value: "36.0931"; }
+ ListElement{ radius: "20"; angle: "190"; value: "31.7684"; }
+ ListElement{ radius: "20"; angle: "195"; value: "27.5099"; }
+ ListElement{ radius: "20"; angle: "200"; value: "23.3498"; }
+ ListElement{ radius: "20"; angle: "205"; value: "19.3199"; }
+ ListElement{ radius: "20"; angle: "210"; value: "15.4508"; }
+ ListElement{ radius: "20"; angle: "215"; value: "11.772"; }
+ ListElement{ radius: "20"; angle: "220"; value: "8.31147"; }
+ ListElement{ radius: "20"; angle: "225"; value: "5.09551"; }
+ ListElement{ radius: "20"; angle: "230"; value: "2.14863"; }
+ ListElement{ radius: "20"; angle: "235"; value: "-0.506752"; }
+ ListElement{ radius: "20"; angle: "240"; value: "-2.85042"; }
+ ListElement{ radius: "20"; angle: "245"; value: "-4.86454"; }
+ ListElement{ radius: "20"; angle: "250"; value: "-6.53378"; }
+ ListElement{ radius: "20"; angle: "255"; value: "-7.84544"; }
+ ListElement{ radius: "20"; angle: "260"; value: "-8.78954"; }
+ ListElement{ radius: "20"; angle: "265"; value: "-9.35889"; }
+ ListElement{ radius: "20"; angle: "270"; value: "-9.54915"; }
+ ListElement{ radius: "20"; angle: "275"; value: "-9.35889"; }
+ ListElement{ radius: "20"; angle: "280"; value: "-8.78954"; }
+ ListElement{ radius: "20"; angle: "285"; value: "-7.84544"; }
+ ListElement{ radius: "20"; angle: "290"; value: "-6.53378"; }
+ ListElement{ radius: "20"; angle: "295"; value: "-4.86454"; }
+ ListElement{ radius: "20"; angle: "300"; value: "-2.85042"; }
+ ListElement{ radius: "20"; angle: "305"; value: "-0.506752"; }
+ ListElement{ radius: "20"; angle: "310"; value: "2.14863"; }
+ ListElement{ radius: "20"; angle: "315"; value: "5.09551"; }
+ ListElement{ radius: "20"; angle: "320"; value: "8.31147"; }
+ ListElement{ radius: "20"; angle: "325"; value: "11.772"; }
+ ListElement{ radius: "20"; angle: "330"; value: "15.4508"; }
+ ListElement{ radius: "20"; angle: "335"; value: "19.3199"; }
+ ListElement{ radius: "20"; angle: "340"; value: "23.3498"; }
+ ListElement{ radius: "20"; angle: "345"; value: "27.5099"; }
+ ListElement{ radius: "20"; angle: "350"; value: "31.7684"; }
+ ListElement{ radius: "20"; angle: "355"; value: "36.0931"; }
+ ListElement{ radius: "20"; angle: "360"; value: "40.4508"; }
+ ListElement{ radius: "25"; angle: "0"; value: "35.3553"; }
+ ListElement{ radius: "25"; angle: "5"; value: "39.7131"; }
+ ListElement{ radius: "25"; angle: "10"; value: "44.0377"; }
+ ListElement{ radius: "25"; angle: "15"; value: "48.2963"; }
+ ListElement{ radius: "25"; angle: "20"; value: "52.4563"; }
+ ListElement{ radius: "25"; angle: "25"; value: "56.4863"; }
+ ListElement{ radius: "25"; angle: "30"; value: "60.3553"; }
+ ListElement{ radius: "25"; angle: "35"; value: "64.0342"; }
+ ListElement{ radius: "25"; angle: "40"; value: "67.4947"; }
+ ListElement{ radius: "25"; angle: "45"; value: "70.7107"; }
+ ListElement{ radius: "25"; angle: "50"; value: "73.6576"; }
+ ListElement{ radius: "25"; angle: "55"; value: "76.3129"; }
+ ListElement{ radius: "25"; angle: "60"; value: "78.6566"; }
+ ListElement{ radius: "25"; angle: "65"; value: "80.6707"; }
+ ListElement{ radius: "25"; angle: "70"; value: "82.34"; }
+ ListElement{ radius: "25"; angle: "75"; value: "83.6516"; }
+ ListElement{ radius: "25"; angle: "80"; value: "84.5957"; }
+ ListElement{ radius: "25"; angle: "85"; value: "85.1651"; }
+ ListElement{ radius: "25"; angle: "90"; value: "85.3553"; }
+ ListElement{ radius: "25"; angle: "95"; value: "85.1651"; }
+ ListElement{ radius: "25"; angle: "100"; value: "84.5957"; }
+ ListElement{ radius: "25"; angle: "105"; value: "83.6516"; }
+ ListElement{ radius: "25"; angle: "110"; value: "82.34"; }
+ ListElement{ radius: "25"; angle: "115"; value: "80.6707"; }
+ ListElement{ radius: "25"; angle: "120"; value: "78.6566"; }
+ ListElement{ radius: "25"; angle: "125"; value: "76.3129"; }
+ ListElement{ radius: "25"; angle: "130"; value: "73.6576"; }
+ ListElement{ radius: "25"; angle: "135"; value: "70.7107"; }
+ ListElement{ radius: "25"; angle: "140"; value: "67.4947"; }
+ ListElement{ radius: "25"; angle: "145"; value: "64.0342"; }
+ ListElement{ radius: "25"; angle: "150"; value: "60.3553"; }
+ ListElement{ radius: "25"; angle: "155"; value: "56.4863"; }
+ ListElement{ radius: "25"; angle: "160"; value: "52.4563"; }
+ ListElement{ radius: "25"; angle: "165"; value: "48.2963"; }
+ ListElement{ radius: "25"; angle: "170"; value: "44.0377"; }
+ ListElement{ radius: "25"; angle: "175"; value: "39.7131"; }
+ ListElement{ radius: "25"; angle: "180"; value: "35.3553"; }
+ ListElement{ radius: "25"; angle: "185"; value: "30.9976"; }
+ ListElement{ radius: "25"; angle: "190"; value: "26.6729"; }
+ ListElement{ radius: "25"; angle: "195"; value: "22.4144"; }
+ ListElement{ radius: "25"; angle: "200"; value: "18.2543"; }
+ ListElement{ radius: "25"; angle: "205"; value: "14.2244"; }
+ ListElement{ radius: "25"; angle: "210"; value: "10.3553"; }
+ ListElement{ radius: "25"; angle: "215"; value: "6.67652"; }
+ ListElement{ radius: "25"; angle: "220"; value: "3.21596"; }
+ ListElement{ radius: "25"; angle: "225"; value: "5.55112e-15"; }
+ ListElement{ radius: "25"; angle: "230"; value: "-2.94688"; }
+ ListElement{ radius: "25"; angle: "235"; value: "-5.60226"; }
+ ListElement{ radius: "25"; angle: "240"; value: "-7.94593"; }
+ ListElement{ radius: "25"; angle: "245"; value: "-9.96005"; }
+ ListElement{ radius: "25"; angle: "250"; value: "-11.6293"; }
+ ListElement{ radius: "25"; angle: "255"; value: "-12.941"; }
+ ListElement{ radius: "25"; angle: "260"; value: "-13.885"; }
+ ListElement{ radius: "25"; angle: "265"; value: "-14.4544"; }
+ ListElement{ radius: "25"; angle: "270"; value: "-14.6447"; }
+ ListElement{ radius: "25"; angle: "275"; value: "-14.4544"; }
+ ListElement{ radius: "25"; angle: "280"; value: "-13.885"; }
+ ListElement{ radius: "25"; angle: "285"; value: "-12.941"; }
+ ListElement{ radius: "25"; angle: "290"; value: "-11.6293"; }
+ ListElement{ radius: "25"; angle: "295"; value: "-9.96005"; }
+ ListElement{ radius: "25"; angle: "300"; value: "-7.94593"; }
+ ListElement{ radius: "25"; angle: "305"; value: "-5.60226"; }
+ ListElement{ radius: "25"; angle: "310"; value: "-2.94688"; }
+ ListElement{ radius: "25"; angle: "315"; value: "-5.55112e-15"; }
+ ListElement{ radius: "25"; angle: "320"; value: "3.21596"; }
+ ListElement{ radius: "25"; angle: "325"; value: "6.67652"; }
+ ListElement{ radius: "25"; angle: "330"; value: "10.3553"; }
+ ListElement{ radius: "25"; angle: "335"; value: "14.2244"; }
+ ListElement{ radius: "25"; angle: "340"; value: "18.2543"; }
+ ListElement{ radius: "25"; angle: "345"; value: "22.4144"; }
+ ListElement{ radius: "25"; angle: "350"; value: "26.6729"; }
+ ListElement{ radius: "25"; angle: "355"; value: "30.9976"; }
+ ListElement{ radius: "25"; angle: "360"; value: "35.3553"; }
+ ListElement{ radius: "30"; angle: "0"; value: "29.3893"; }
+ ListElement{ radius: "30"; angle: "5"; value: "33.747"; }
+ ListElement{ radius: "30"; angle: "10"; value: "38.0717"; }
+ ListElement{ radius: "30"; angle: "15"; value: "42.3302"; }
+ ListElement{ radius: "30"; angle: "20"; value: "46.4903"; }
+ ListElement{ radius: "30"; angle: "25"; value: "50.5202"; }
+ ListElement{ radius: "30"; angle: "30"; value: "54.3893"; }
+ ListElement{ radius: "30"; angle: "35"; value: "58.0681"; }
+ ListElement{ radius: "30"; angle: "40"; value: "61.5286"; }
+ ListElement{ radius: "30"; angle: "45"; value: "64.7446"; }
+ ListElement{ radius: "30"; angle: "50"; value: "67.6915"; }
+ ListElement{ radius: "30"; angle: "55"; value: "70.3469"; }
+ ListElement{ radius: "30"; angle: "60"; value: "72.6905"; }
+ ListElement{ radius: "30"; angle: "65"; value: "74.7047"; }
+ ListElement{ radius: "30"; angle: "70"; value: "76.3739"; }
+ ListElement{ radius: "30"; angle: "75"; value: "77.6856"; }
+ ListElement{ radius: "30"; angle: "80"; value: "78.6297"; }
+ ListElement{ radius: "30"; angle: "85"; value: "79.199"; }
+ ListElement{ radius: "30"; angle: "90"; value: "79.3893"; }
+ ListElement{ radius: "30"; angle: "95"; value: "79.199"; }
+ ListElement{ radius: "30"; angle: "100"; value: "78.6297"; }
+ ListElement{ radius: "30"; angle: "105"; value: "77.6856"; }
+ ListElement{ radius: "30"; angle: "110"; value: "76.3739"; }
+ ListElement{ radius: "30"; angle: "115"; value: "74.7047"; }
+ ListElement{ radius: "30"; angle: "120"; value: "72.6905"; }
+ ListElement{ radius: "30"; angle: "125"; value: "70.3469"; }
+ ListElement{ radius: "30"; angle: "130"; value: "67.6915"; }
+ ListElement{ radius: "30"; angle: "135"; value: "64.7446"; }
+ ListElement{ radius: "30"; angle: "140"; value: "61.5286"; }
+ ListElement{ radius: "30"; angle: "145"; value: "58.0681"; }
+ ListElement{ radius: "30"; angle: "150"; value: "54.3893"; }
+ ListElement{ radius: "30"; angle: "155"; value: "50.5202"; }
+ ListElement{ radius: "30"; angle: "160"; value: "46.4903"; }
+ ListElement{ radius: "30"; angle: "165"; value: "42.3302"; }
+ ListElement{ radius: "30"; angle: "170"; value: "38.0717"; }
+ ListElement{ radius: "30"; angle: "175"; value: "33.747"; }
+ ListElement{ radius: "30"; angle: "180"; value: "29.3893"; }
+ ListElement{ radius: "30"; angle: "185"; value: "25.0315"; }
+ ListElement{ radius: "30"; angle: "190"; value: "20.7069"; }
+ ListElement{ radius: "30"; angle: "195"; value: "16.4483"; }
+ ListElement{ radius: "30"; angle: "200"; value: "12.2883"; }
+ ListElement{ radius: "30"; angle: "205"; value: "8.25835"; }
+ ListElement{ radius: "30"; angle: "210"; value: "4.38926"; }
+ ListElement{ radius: "30"; angle: "215"; value: "0.710441"; }
+ ListElement{ radius: "30"; angle: "220"; value: "-2.75012"; }
+ ListElement{ radius: "30"; angle: "225"; value: "-5.96608"; }
+ ListElement{ radius: "30"; angle: "230"; value: "-8.91296"; }
+ ListElement{ radius: "30"; angle: "235"; value: "-11.5683"; }
+ ListElement{ radius: "30"; angle: "240"; value: "-13.912"; }
+ ListElement{ radius: "30"; angle: "245"; value: "-15.9261"; }
+ ListElement{ radius: "30"; angle: "250"; value: "-17.5954"; }
+ ListElement{ radius: "30"; angle: "255"; value: "-18.907"; }
+ ListElement{ radius: "30"; angle: "260"; value: "-19.8511"; }
+ ListElement{ radius: "30"; angle: "265"; value: "-20.4205"; }
+ ListElement{ radius: "30"; angle: "270"; value: "-20.6107"; }
+ ListElement{ radius: "30"; angle: "275"; value: "-20.4205"; }
+ ListElement{ radius: "30"; angle: "280"; value: "-19.8511"; }
+ ListElement{ radius: "30"; angle: "285"; value: "-18.907"; }
+ ListElement{ radius: "30"; angle: "290"; value: "-17.5954"; }
+ ListElement{ radius: "30"; angle: "295"; value: "-15.9261"; }
+ ListElement{ radius: "30"; angle: "300"; value: "-13.912"; }
+ ListElement{ radius: "30"; angle: "305"; value: "-11.5683"; }
+ ListElement{ radius: "30"; angle: "310"; value: "-8.91296"; }
+ ListElement{ radius: "30"; angle: "315"; value: "-5.96608"; }
+ ListElement{ radius: "30"; angle: "320"; value: "-2.75012"; }
+ ListElement{ radius: "30"; angle: "325"; value: "0.710441"; }
+ ListElement{ radius: "30"; angle: "330"; value: "4.38926"; }
+ ListElement{ radius: "30"; angle: "335"; value: "8.25835"; }
+ ListElement{ radius: "30"; angle: "340"; value: "12.2883"; }
+ ListElement{ radius: "30"; angle: "345"; value: "16.4483"; }
+ ListElement{ radius: "30"; angle: "350"; value: "20.7069"; }
+ ListElement{ radius: "30"; angle: "355"; value: "25.0315"; }
+ ListElement{ radius: "30"; angle: "360"; value: "29.3893"; }
+ ListElement{ radius: "35"; angle: "0"; value: "22.6995"; }
+ ListElement{ radius: "35"; angle: "5"; value: "27.0573"; }
+ ListElement{ radius: "35"; angle: "10"; value: "31.3819"; }
+ ListElement{ radius: "35"; angle: "15"; value: "35.6405"; }
+ ListElement{ radius: "35"; angle: "20"; value: "39.8005"; }
+ ListElement{ radius: "35"; angle: "25"; value: "43.8304"; }
+ ListElement{ radius: "35"; angle: "30"; value: "47.6995"; }
+ ListElement{ radius: "35"; angle: "35"; value: "51.3783"; }
+ ListElement{ radius: "35"; angle: "40"; value: "54.8389"; }
+ ListElement{ radius: "35"; angle: "45"; value: "58.0549"; }
+ ListElement{ radius: "35"; angle: "50"; value: "61.0017"; }
+ ListElement{ radius: "35"; angle: "55"; value: "63.6571"; }
+ ListElement{ radius: "35"; angle: "60"; value: "66.0008"; }
+ ListElement{ radius: "35"; angle: "65"; value: "68.0149"; }
+ ListElement{ radius: "35"; angle: "70"; value: "69.6842"; }
+ ListElement{ radius: "35"; angle: "75"; value: "70.9958"; }
+ ListElement{ radius: "35"; angle: "80"; value: "71.9399"; }
+ ListElement{ radius: "35"; angle: "85"; value: "72.5093"; }
+ ListElement{ radius: "35"; angle: "90"; value: "72.6995"; }
+ ListElement{ radius: "35"; angle: "95"; value: "72.5093"; }
+ ListElement{ radius: "35"; angle: "100"; value: "71.9399"; }
+ ListElement{ radius: "35"; angle: "105"; value: "70.9958"; }
+ ListElement{ radius: "35"; angle: "110"; value: "69.6842"; }
+ ListElement{ radius: "35"; angle: "115"; value: "68.0149"; }
+ ListElement{ radius: "35"; angle: "120"; value: "66.0008"; }
+ ListElement{ radius: "35"; angle: "125"; value: "63.6571"; }
+ ListElement{ radius: "35"; angle: "130"; value: "61.0017"; }
+ ListElement{ radius: "35"; angle: "135"; value: "58.0549"; }
+ ListElement{ radius: "35"; angle: "140"; value: "54.8389"; }
+ ListElement{ radius: "35"; angle: "145"; value: "51.3783"; }
+ ListElement{ radius: "35"; angle: "150"; value: "47.6995"; }
+ ListElement{ radius: "35"; angle: "155"; value: "43.8304"; }
+ ListElement{ radius: "35"; angle: "160"; value: "39.8005"; }
+ ListElement{ radius: "35"; angle: "165"; value: "35.6405"; }
+ ListElement{ radius: "35"; angle: "170"; value: "31.3819"; }
+ ListElement{ radius: "35"; angle: "175"; value: "27.0573"; }
+ ListElement{ radius: "35"; angle: "180"; value: "22.6995"; }
+ ListElement{ radius: "35"; angle: "185"; value: "18.3417"; }
+ ListElement{ radius: "35"; angle: "190"; value: "14.0171"; }
+ ListElement{ radius: "35"; angle: "195"; value: "9.75857"; }
+ ListElement{ radius: "35"; angle: "200"; value: "5.59852"; }
+ ListElement{ radius: "35"; angle: "205"; value: "1.56861"; }
+ ListElement{ radius: "35"; angle: "210"; value: "-2.30048"; }
+ ListElement{ radius: "35"; angle: "215"; value: "-5.9793"; }
+ ListElement{ radius: "35"; angle: "220"; value: "-9.43986"; }
+ ListElement{ radius: "35"; angle: "225"; value: "-12.6558"; }
+ ListElement{ radius: "35"; angle: "230"; value: "-15.6027"; }
+ ListElement{ radius: "35"; angle: "235"; value: "-18.2581"; }
+ ListElement{ radius: "35"; angle: "240"; value: "-20.6017"; }
+ ListElement{ radius: "35"; angle: "245"; value: "-22.6159"; }
+ ListElement{ radius: "35"; angle: "250"; value: "-24.2851"; }
+ ListElement{ radius: "35"; angle: "255"; value: "-25.5968"; }
+ ListElement{ radius: "35"; angle: "260"; value: "-26.5409"; }
+ ListElement{ radius: "35"; angle: "265"; value: "-27.1102"; }
+ ListElement{ radius: "35"; angle: "270"; value: "-27.3005"; }
+ ListElement{ radius: "35"; angle: "275"; value: "-27.1102"; }
+ ListElement{ radius: "35"; angle: "280"; value: "-26.5409"; }
+ ListElement{ radius: "35"; angle: "285"; value: "-25.5968"; }
+ ListElement{ radius: "35"; angle: "290"; value: "-24.2851"; }
+ ListElement{ radius: "35"; angle: "295"; value: "-22.6159"; }
+ ListElement{ radius: "35"; angle: "300"; value: "-20.6017"; }
+ ListElement{ radius: "35"; angle: "305"; value: "-18.2581"; }
+ ListElement{ radius: "35"; angle: "310"; value: "-15.6027"; }
+ ListElement{ radius: "35"; angle: "315"; value: "-12.6558"; }
+ ListElement{ radius: "35"; angle: "320"; value: "-9.43986"; }
+ ListElement{ radius: "35"; angle: "325"; value: "-5.9793"; }
+ ListElement{ radius: "35"; angle: "330"; value: "-2.30048"; }
+ ListElement{ radius: "35"; angle: "335"; value: "1.56861"; }
+ ListElement{ radius: "35"; angle: "340"; value: "5.59852"; }
+ ListElement{ radius: "35"; angle: "345"; value: "9.75857"; }
+ ListElement{ radius: "35"; angle: "350"; value: "14.0171"; }
+ ListElement{ radius: "35"; angle: "355"; value: "18.3417"; }
+ ListElement{ radius: "35"; angle: "360"; value: "22.6995"; }
+ ListElement{ radius: "40"; angle: "0"; value: "15.4508"; }
+ ListElement{ radius: "40"; angle: "5"; value: "19.8086"; }
+ ListElement{ radius: "40"; angle: "10"; value: "24.1333"; }
+ ListElement{ radius: "40"; angle: "15"; value: "28.3918"; }
+ ListElement{ radius: "40"; angle: "20"; value: "32.5519"; }
+ ListElement{ radius: "40"; angle: "25"; value: "36.5818"; }
+ ListElement{ radius: "40"; angle: "30"; value: "40.4508"; }
+ ListElement{ radius: "40"; angle: "35"; value: "44.1297"; }
+ ListElement{ radius: "40"; angle: "40"; value: "47.5902"; }
+ ListElement{ radius: "40"; angle: "45"; value: "50.8062"; }
+ ListElement{ radius: "40"; angle: "50"; value: "53.7531"; }
+ ListElement{ radius: "40"; angle: "55"; value: "56.4085"; }
+ ListElement{ radius: "40"; angle: "60"; value: "58.7521"; }
+ ListElement{ radius: "40"; angle: "65"; value: "60.7662"; }
+ ListElement{ radius: "40"; angle: "70"; value: "62.4355"; }
+ ListElement{ radius: "40"; angle: "75"; value: "63.7471"; }
+ ListElement{ radius: "40"; angle: "80"; value: "64.6912"; }
+ ListElement{ radius: "40"; angle: "85"; value: "65.2606"; }
+ ListElement{ radius: "40"; angle: "90"; value: "65.4508"; }
+ ListElement{ radius: "40"; angle: "95"; value: "65.2606"; }
+ ListElement{ radius: "40"; angle: "100"; value: "64.6912"; }
+ ListElement{ radius: "40"; angle: "105"; value: "63.7471"; }
+ ListElement{ radius: "40"; angle: "110"; value: "62.4355"; }
+ ListElement{ radius: "40"; angle: "115"; value: "60.7662"; }
+ ListElement{ radius: "40"; angle: "120"; value: "58.7521"; }
+ ListElement{ radius: "40"; angle: "125"; value: "56.4085"; }
+ ListElement{ radius: "40"; angle: "130"; value: "53.7531"; }
+ ListElement{ radius: "40"; angle: "135"; value: "50.8062"; }
+ ListElement{ radius: "40"; angle: "140"; value: "47.5902"; }
+ ListElement{ radius: "40"; angle: "145"; value: "44.1297"; }
+ ListElement{ radius: "40"; angle: "150"; value: "40.4508"; }
+ ListElement{ radius: "40"; angle: "155"; value: "36.5818"; }
+ ListElement{ radius: "40"; angle: "160"; value: "32.5519"; }
+ ListElement{ radius: "40"; angle: "165"; value: "28.3918"; }
+ ListElement{ radius: "40"; angle: "170"; value: "24.1333"; }
+ ListElement{ radius: "40"; angle: "175"; value: "19.8086"; }
+ ListElement{ radius: "40"; angle: "180"; value: "15.4508"; }
+ ListElement{ radius: "40"; angle: "185"; value: "11.0931"; }
+ ListElement{ radius: "40"; angle: "190"; value: "6.76844"; }
+ ListElement{ radius: "40"; angle: "195"; value: "2.5099"; }
+ ListElement{ radius: "40"; angle: "200"; value: "-1.65016"; }
+ ListElement{ radius: "40"; angle: "205"; value: "-5.68006"; }
+ ListElement{ radius: "40"; angle: "210"; value: "-9.54915"; }
+ ListElement{ radius: "40"; angle: "215"; value: "-13.228"; }
+ ListElement{ radius: "40"; angle: "220"; value: "-16.6885"; }
+ ListElement{ radius: "40"; angle: "225"; value: "-19.9045"; }
+ ListElement{ radius: "40"; angle: "230"; value: "-22.8514"; }
+ ListElement{ radius: "40"; angle: "235"; value: "-25.5068"; }
+ ListElement{ radius: "40"; angle: "240"; value: "-27.8504"; }
+ ListElement{ radius: "40"; angle: "245"; value: "-29.8645"; }
+ ListElement{ radius: "40"; angle: "250"; value: "-31.5338"; }
+ ListElement{ radius: "40"; angle: "255"; value: "-32.8454"; }
+ ListElement{ radius: "40"; angle: "260"; value: "-33.7895"; }
+ ListElement{ radius: "40"; angle: "265"; value: "-34.3589"; }
+ ListElement{ radius: "40"; angle: "270"; value: "-34.5492"; }
+ ListElement{ radius: "40"; angle: "275"; value: "-34.3589"; }
+ ListElement{ radius: "40"; angle: "280"; value: "-33.7895"; }
+ ListElement{ radius: "40"; angle: "285"; value: "-32.8454"; }
+ ListElement{ radius: "40"; angle: "290"; value: "-31.5338"; }
+ ListElement{ radius: "40"; angle: "295"; value: "-29.8645"; }
+ ListElement{ radius: "40"; angle: "300"; value: "-27.8504"; }
+ ListElement{ radius: "40"; angle: "305"; value: "-25.5068"; }
+ ListElement{ radius: "40"; angle: "310"; value: "-22.8514"; }
+ ListElement{ radius: "40"; angle: "315"; value: "-19.9045"; }
+ ListElement{ radius: "40"; angle: "320"; value: "-16.6885"; }
+ ListElement{ radius: "40"; angle: "325"; value: "-13.228"; }
+ ListElement{ radius: "40"; angle: "330"; value: "-9.54915"; }
+ ListElement{ radius: "40"; angle: "335"; value: "-5.68006"; }
+ ListElement{ radius: "40"; angle: "340"; value: "-1.65016"; }
+ ListElement{ radius: "40"; angle: "345"; value: "2.5099"; }
+ ListElement{ radius: "40"; angle: "350"; value: "6.76844"; }
+ ListElement{ radius: "40"; angle: "355"; value: "11.0931"; }
+ ListElement{ radius: "40"; angle: "360"; value: "15.4508"; }
+ ListElement{ radius: "45"; angle: "0"; value: "7.82172"; }
+ ListElement{ radius: "45"; angle: "5"; value: "12.1795"; }
+ ListElement{ radius: "45"; angle: "10"; value: "16.5041"; }
+ ListElement{ radius: "45"; angle: "15"; value: "20.7627"; }
+ ListElement{ radius: "45"; angle: "20"; value: "24.9227"; }
+ ListElement{ radius: "45"; angle: "25"; value: "28.9526"; }
+ ListElement{ radius: "45"; angle: "30"; value: "32.8217"; }
+ ListElement{ radius: "45"; angle: "35"; value: "36.5005"; }
+ ListElement{ radius: "45"; angle: "40"; value: "39.9611"; }
+ ListElement{ radius: "45"; angle: "45"; value: "43.1771"; }
+ ListElement{ radius: "45"; angle: "50"; value: "46.1239"; }
+ ListElement{ radius: "45"; angle: "55"; value: "48.7793"; }
+ ListElement{ radius: "45"; angle: "60"; value: "51.123"; }
+ ListElement{ radius: "45"; angle: "65"; value: "53.1371"; }
+ ListElement{ radius: "45"; angle: "70"; value: "54.8064"; }
+ ListElement{ radius: "45"; angle: "75"; value: "56.118"; }
+ ListElement{ radius: "45"; angle: "80"; value: "57.0621"; }
+ ListElement{ radius: "45"; angle: "85"; value: "57.6315"; }
+ ListElement{ radius: "45"; angle: "90"; value: "57.8217"; }
+ ListElement{ radius: "45"; angle: "95"; value: "57.6315"; }
+ ListElement{ radius: "45"; angle: "100"; value: "57.0621"; }
+ ListElement{ radius: "45"; angle: "105"; value: "56.118"; }
+ ListElement{ radius: "45"; angle: "110"; value: "54.8064"; }
+ ListElement{ radius: "45"; angle: "115"; value: "53.1371"; }
+ ListElement{ radius: "45"; angle: "120"; value: "51.123"; }
+ ListElement{ radius: "45"; angle: "125"; value: "48.7793"; }
+ ListElement{ radius: "45"; angle: "130"; value: "46.1239"; }
+ ListElement{ radius: "45"; angle: "135"; value: "43.1771"; }
+ ListElement{ radius: "45"; angle: "140"; value: "39.9611"; }
+ ListElement{ radius: "45"; angle: "145"; value: "36.5005"; }
+ ListElement{ radius: "45"; angle: "150"; value: "32.8217"; }
+ ListElement{ radius: "45"; angle: "155"; value: "28.9526"; }
+ ListElement{ radius: "45"; angle: "160"; value: "24.9227"; }
+ ListElement{ radius: "45"; angle: "165"; value: "20.7627"; }
+ ListElement{ radius: "45"; angle: "170"; value: "16.5041"; }
+ ListElement{ radius: "45"; angle: "175"; value: "12.1795"; }
+ ListElement{ radius: "45"; angle: "180"; value: "7.82172"; }
+ ListElement{ radius: "45"; angle: "185"; value: "3.46394"; }
+ ListElement{ radius: "45"; angle: "190"; value: "-0.860686"; }
+ ListElement{ radius: "45"; angle: "195"; value: "-5.11923"; }
+ ListElement{ radius: "45"; angle: "200"; value: "-9.27928"; }
+ ListElement{ radius: "45"; angle: "205"; value: "-13.3092"; }
+ ListElement{ radius: "45"; angle: "210"; value: "-17.1783"; }
+ ListElement{ radius: "45"; angle: "215"; value: "-20.8571"; }
+ ListElement{ radius: "45"; angle: "220"; value: "-24.3177"; }
+ ListElement{ radius: "45"; angle: "225"; value: "-27.5336"; }
+ ListElement{ radius: "45"; angle: "230"; value: "-30.4805"; }
+ ListElement{ radius: "45"; angle: "235"; value: "-33.1359"; }
+ ListElement{ radius: "45"; angle: "240"; value: "-35.4795"; }
+ ListElement{ radius: "45"; angle: "245"; value: "-37.4937"; }
+ ListElement{ radius: "45"; angle: "250"; value: "-39.1629"; }
+ ListElement{ radius: "45"; angle: "255"; value: "-40.4746"; }
+ ListElement{ radius: "45"; angle: "260"; value: "-41.4187"; }
+ ListElement{ radius: "45"; angle: "265"; value: "-41.988"; }
+ ListElement{ radius: "45"; angle: "270"; value: "-42.1783"; }
+ ListElement{ radius: "45"; angle: "275"; value: "-41.988"; }
+ ListElement{ radius: "45"; angle: "280"; value: "-41.4187"; }
+ ListElement{ radius: "45"; angle: "285"; value: "-40.4746"; }
+ ListElement{ radius: "45"; angle: "290"; value: "-39.1629"; }
+ ListElement{ radius: "45"; angle: "295"; value: "-37.4937"; }
+ ListElement{ radius: "45"; angle: "300"; value: "-35.4795"; }
+ ListElement{ radius: "45"; angle: "305"; value: "-33.1359"; }
+ ListElement{ radius: "45"; angle: "310"; value: "-30.4805"; }
+ ListElement{ radius: "45"; angle: "315"; value: "-27.5336"; }
+ ListElement{ radius: "45"; angle: "320"; value: "-24.3177"; }
+ ListElement{ radius: "45"; angle: "325"; value: "-20.8571"; }
+ ListElement{ radius: "45"; angle: "330"; value: "-17.1783"; }
+ ListElement{ radius: "45"; angle: "335"; value: "-13.3092"; }
+ ListElement{ radius: "45"; angle: "340"; value: "-9.27928"; }
+ ListElement{ radius: "45"; angle: "345"; value: "-5.11923"; }
+ ListElement{ radius: "45"; angle: "350"; value: "-0.860686"; }
+ ListElement{ radius: "45"; angle: "355"; value: "3.46394"; }
+ ListElement{ radius: "45"; angle: "360"; value: "7.82172"; }
+ ListElement{ radius: "50"; angle: "0"; value: "3.06162e-15"; }
+ ListElement{ radius: "50"; angle: "5"; value: "4.35779"; }
+ ListElement{ radius: "50"; angle: "10"; value: "8.68241"; }
+ ListElement{ radius: "50"; angle: "15"; value: "12.941"; }
+ ListElement{ radius: "50"; angle: "20"; value: "17.101"; }
+ ListElement{ radius: "50"; angle: "25"; value: "21.1309"; }
+ ListElement{ radius: "50"; angle: "30"; value: "25"; }
+ ListElement{ radius: "50"; angle: "35"; value: "28.6788"; }
+ ListElement{ radius: "50"; angle: "40"; value: "32.1394"; }
+ ListElement{ radius: "50"; angle: "45"; value: "35.3553"; }
+ ListElement{ radius: "50"; angle: "50"; value: "38.3022"; }
+ ListElement{ radius: "50"; angle: "55"; value: "40.9576"; }
+ ListElement{ radius: "50"; angle: "60"; value: "43.3013"; }
+ ListElement{ radius: "50"; angle: "65"; value: "45.3154"; }
+ ListElement{ radius: "50"; angle: "70"; value: "46.9846"; }
+ ListElement{ radius: "50"; angle: "75"; value: "48.2963"; }
+ ListElement{ radius: "50"; angle: "80"; value: "49.2404"; }
+ ListElement{ radius: "50"; angle: "85"; value: "49.8097"; }
+ ListElement{ radius: "50"; angle: "90"; value: "50"; }
+ ListElement{ radius: "50"; angle: "95"; value: "49.8097"; }
+ ListElement{ radius: "50"; angle: "100"; value: "49.2404"; }
+ ListElement{ radius: "50"; angle: "105"; value: "48.2963"; }
+ ListElement{ radius: "50"; angle: "110"; value: "46.9846"; }
+ ListElement{ radius: "50"; angle: "115"; value: "45.3154"; }
+ ListElement{ radius: "50"; angle: "120"; value: "43.3013"; }
+ ListElement{ radius: "50"; angle: "125"; value: "40.9576"; }
+ ListElement{ radius: "50"; angle: "130"; value: "38.3022"; }
+ ListElement{ radius: "50"; angle: "135"; value: "35.3553"; }
+ ListElement{ radius: "50"; angle: "140"; value: "32.1394"; }
+ ListElement{ radius: "50"; angle: "145"; value: "28.6788"; }
+ ListElement{ radius: "50"; angle: "150"; value: "25"; }
+ ListElement{ radius: "50"; angle: "155"; value: "21.1309"; }
+ ListElement{ radius: "50"; angle: "160"; value: "17.101"; }
+ ListElement{ radius: "50"; angle: "165"; value: "12.941"; }
+ ListElement{ radius: "50"; angle: "170"; value: "8.68241"; }
+ ListElement{ radius: "50"; angle: "175"; value: "4.35779"; }
+ ListElement{ radius: "50"; angle: "180"; value: "9.18485e-15"; }
+ ListElement{ radius: "50"; angle: "185"; value: "-4.35779"; }
+ ListElement{ radius: "50"; angle: "190"; value: "-8.68241"; }
+ ListElement{ radius: "50"; angle: "195"; value: "-12.941"; }
+ ListElement{ radius: "50"; angle: "200"; value: "-17.101"; }
+ ListElement{ radius: "50"; angle: "205"; value: "-21.1309"; }
+ ListElement{ radius: "50"; angle: "210"; value: "-25"; }
+ ListElement{ radius: "50"; angle: "215"; value: "-28.6788"; }
+ ListElement{ radius: "50"; angle: "220"; value: "-32.1394"; }
+ ListElement{ radius: "50"; angle: "225"; value: "-35.3553"; }
+ ListElement{ radius: "50"; angle: "230"; value: "-38.3022"; }
+ ListElement{ radius: "50"; angle: "235"; value: "-40.9576"; }
+ ListElement{ radius: "50"; angle: "240"; value: "-43.3013"; }
+ ListElement{ radius: "50"; angle: "245"; value: "-45.3154"; }
+ ListElement{ radius: "50"; angle: "250"; value: "-46.9846"; }
+ ListElement{ radius: "50"; angle: "255"; value: "-48.2963"; }
+ ListElement{ radius: "50"; angle: "260"; value: "-49.2404"; }
+ ListElement{ radius: "50"; angle: "265"; value: "-49.8097"; }
+ ListElement{ radius: "50"; angle: "270"; value: "-50"; }
+ ListElement{ radius: "50"; angle: "275"; value: "-49.8097"; }
+ ListElement{ radius: "50"; angle: "280"; value: "-49.2404"; }
+ ListElement{ radius: "50"; angle: "285"; value: "-48.2963"; }
+ ListElement{ radius: "50"; angle: "290"; value: "-46.9846"; }
+ ListElement{ radius: "50"; angle: "295"; value: "-45.3154"; }
+ ListElement{ radius: "50"; angle: "300"; value: "-43.3013"; }
+ ListElement{ radius: "50"; angle: "305"; value: "-40.9576"; }
+ ListElement{ radius: "50"; angle: "310"; value: "-38.3022"; }
+ ListElement{ radius: "50"; angle: "315"; value: "-35.3553"; }
+ ListElement{ radius: "50"; angle: "320"; value: "-32.1394"; }
+ ListElement{ radius: "50"; angle: "325"; value: "-28.6788"; }
+ ListElement{ radius: "50"; angle: "330"; value: "-25"; }
+ ListElement{ radius: "50"; angle: "335"; value: "-21.1309"; }
+ ListElement{ radius: "50"; angle: "340"; value: "-17.101"; }
+ ListElement{ radius: "50"; angle: "345"; value: "-12.941"; }
+ ListElement{ radius: "50"; angle: "350"; value: "-8.68241"; }
+ ListElement{ radius: "50"; angle: "355"; value: "-4.35779"; }
+ ListElement{ radius: "50"; angle: "360"; value: "-9.18485e-15"; }
+ ListElement{ radius: "55"; angle: "0"; value: "-7.82172"; }
+ ListElement{ radius: "55"; angle: "5"; value: "-3.46394"; }
+ ListElement{ radius: "55"; angle: "10"; value: "0.860686"; }
+ ListElement{ radius: "55"; angle: "15"; value: "5.11923"; }
+ ListElement{ radius: "55"; angle: "20"; value: "9.27928"; }
+ ListElement{ radius: "55"; angle: "25"; value: "13.3092"; }
+ ListElement{ radius: "55"; angle: "30"; value: "17.1783"; }
+ ListElement{ radius: "55"; angle: "35"; value: "20.8571"; }
+ ListElement{ radius: "55"; angle: "40"; value: "24.3177"; }
+ ListElement{ radius: "55"; angle: "45"; value: "27.5336"; }
+ ListElement{ radius: "55"; angle: "50"; value: "30.4805"; }
+ ListElement{ radius: "55"; angle: "55"; value: "33.1359"; }
+ ListElement{ radius: "55"; angle: "60"; value: "35.4795"; }
+ ListElement{ radius: "55"; angle: "65"; value: "37.4937"; }
+ ListElement{ radius: "55"; angle: "70"; value: "39.1629"; }
+ ListElement{ radius: "55"; angle: "75"; value: "40.4746"; }
+ ListElement{ radius: "55"; angle: "80"; value: "41.4187"; }
+ ListElement{ radius: "55"; angle: "85"; value: "41.988"; }
+ ListElement{ radius: "55"; angle: "90"; value: "42.1783"; }
+ ListElement{ radius: "55"; angle: "95"; value: "41.988"; }
+ ListElement{ radius: "55"; angle: "100"; value: "41.4187"; }
+ ListElement{ radius: "55"; angle: "105"; value: "40.4746"; }
+ ListElement{ radius: "55"; angle: "110"; value: "39.1629"; }
+ ListElement{ radius: "55"; angle: "115"; value: "37.4937"; }
+ ListElement{ radius: "55"; angle: "120"; value: "35.4795"; }
+ ListElement{ radius: "55"; angle: "125"; value: "33.1359"; }
+ ListElement{ radius: "55"; angle: "130"; value: "30.4805"; }
+ ListElement{ radius: "55"; angle: "135"; value: "27.5336"; }
+ ListElement{ radius: "55"; angle: "140"; value: "24.3177"; }
+ ListElement{ radius: "55"; angle: "145"; value: "20.8571"; }
+ ListElement{ radius: "55"; angle: "150"; value: "17.1783"; }
+ ListElement{ radius: "55"; angle: "155"; value: "13.3092"; }
+ ListElement{ radius: "55"; angle: "160"; value: "9.27928"; }
+ ListElement{ radius: "55"; angle: "165"; value: "5.11923"; }
+ ListElement{ radius: "55"; angle: "170"; value: "0.860686"; }
+ ListElement{ radius: "55"; angle: "175"; value: "-3.46394"; }
+ ListElement{ radius: "55"; angle: "180"; value: "-7.82172"; }
+ ListElement{ radius: "55"; angle: "185"; value: "-12.1795"; }
+ ListElement{ radius: "55"; angle: "190"; value: "-16.5041"; }
+ ListElement{ radius: "55"; angle: "195"; value: "-20.7627"; }
+ ListElement{ radius: "55"; angle: "200"; value: "-24.9227"; }
+ ListElement{ radius: "55"; angle: "205"; value: "-28.9526"; }
+ ListElement{ radius: "55"; angle: "210"; value: "-32.8217"; }
+ ListElement{ radius: "55"; angle: "215"; value: "-36.5005"; }
+ ListElement{ radius: "55"; angle: "220"; value: "-39.9611"; }
+ ListElement{ radius: "55"; angle: "225"; value: "-43.1771"; }
+ ListElement{ radius: "55"; angle: "230"; value: "-46.1239"; }
+ ListElement{ radius: "55"; angle: "235"; value: "-48.7793"; }
+ ListElement{ radius: "55"; angle: "240"; value: "-51.123"; }
+ ListElement{ radius: "55"; angle: "245"; value: "-53.1371"; }
+ ListElement{ radius: "55"; angle: "250"; value: "-54.8064"; }
+ ListElement{ radius: "55"; angle: "255"; value: "-56.118"; }
+ ListElement{ radius: "55"; angle: "260"; value: "-57.0621"; }
+ ListElement{ radius: "55"; angle: "265"; value: "-57.6315"; }
+ ListElement{ radius: "55"; angle: "270"; value: "-57.8217"; }
+ ListElement{ radius: "55"; angle: "275"; value: "-57.6315"; }
+ ListElement{ radius: "55"; angle: "280"; value: "-57.0621"; }
+ ListElement{ radius: "55"; angle: "285"; value: "-56.118"; }
+ ListElement{ radius: "55"; angle: "290"; value: "-54.8064"; }
+ ListElement{ radius: "55"; angle: "295"; value: "-53.1371"; }
+ ListElement{ radius: "55"; angle: "300"; value: "-51.123"; }
+ ListElement{ radius: "55"; angle: "305"; value: "-48.7793"; }
+ ListElement{ radius: "55"; angle: "310"; value: "-46.1239"; }
+ ListElement{ radius: "55"; angle: "315"; value: "-43.1771"; }
+ ListElement{ radius: "55"; angle: "320"; value: "-39.9611"; }
+ ListElement{ radius: "55"; angle: "325"; value: "-36.5005"; }
+ ListElement{ radius: "55"; angle: "330"; value: "-32.8217"; }
+ ListElement{ radius: "55"; angle: "335"; value: "-28.9526"; }
+ ListElement{ radius: "55"; angle: "340"; value: "-24.9227"; }
+ ListElement{ radius: "55"; angle: "345"; value: "-20.7627"; }
+ ListElement{ radius: "55"; angle: "350"; value: "-16.5041"; }
+ ListElement{ radius: "55"; angle: "355"; value: "-12.1795"; }
+ ListElement{ radius: "55"; angle: "360"; value: "-7.82172"; }
+ ListElement{ radius: "60"; angle: "0"; value: "-15.4508"; }
+ ListElement{ radius: "60"; angle: "5"; value: "-11.0931"; }
+ ListElement{ radius: "60"; angle: "10"; value: "-6.76844"; }
+ ListElement{ radius: "60"; angle: "15"; value: "-2.5099"; }
+ ListElement{ radius: "60"; angle: "20"; value: "1.65016"; }
+ ListElement{ radius: "60"; angle: "25"; value: "5.68006"; }
+ ListElement{ radius: "60"; angle: "30"; value: "9.54915"; }
+ ListElement{ radius: "60"; angle: "35"; value: "13.228"; }
+ ListElement{ radius: "60"; angle: "40"; value: "16.6885"; }
+ ListElement{ radius: "60"; angle: "45"; value: "19.9045"; }
+ ListElement{ radius: "60"; angle: "50"; value: "22.8514"; }
+ ListElement{ radius: "60"; angle: "55"; value: "25.5068"; }
+ ListElement{ radius: "60"; angle: "60"; value: "27.8504"; }
+ ListElement{ radius: "60"; angle: "65"; value: "29.8645"; }
+ ListElement{ radius: "60"; angle: "70"; value: "31.5338"; }
+ ListElement{ radius: "60"; angle: "75"; value: "32.8454"; }
+ ListElement{ radius: "60"; angle: "80"; value: "33.7895"; }
+ ListElement{ radius: "60"; angle: "85"; value: "34.3589"; }
+ ListElement{ radius: "60"; angle: "90"; value: "34.5492"; }
+ ListElement{ radius: "60"; angle: "95"; value: "34.3589"; }
+ ListElement{ radius: "60"; angle: "100"; value: "33.7895"; }
+ ListElement{ radius: "60"; angle: "105"; value: "32.8454"; }
+ ListElement{ radius: "60"; angle: "110"; value: "31.5338"; }
+ ListElement{ radius: "60"; angle: "115"; value: "29.8645"; }
+ ListElement{ radius: "60"; angle: "120"; value: "27.8504"; }
+ ListElement{ radius: "60"; angle: "125"; value: "25.5068"; }
+ ListElement{ radius: "60"; angle: "130"; value: "22.8514"; }
+ ListElement{ radius: "60"; angle: "135"; value: "19.9045"; }
+ ListElement{ radius: "60"; angle: "140"; value: "16.6885"; }
+ ListElement{ radius: "60"; angle: "145"; value: "13.228"; }
+ ListElement{ radius: "60"; angle: "150"; value: "9.54915"; }
+ ListElement{ radius: "60"; angle: "155"; value: "5.68006"; }
+ ListElement{ radius: "60"; angle: "160"; value: "1.65016"; }
+ ListElement{ radius: "60"; angle: "165"; value: "-2.5099"; }
+ ListElement{ radius: "60"; angle: "170"; value: "-6.76844"; }
+ ListElement{ radius: "60"; angle: "175"; value: "-11.0931"; }
+ ListElement{ radius: "60"; angle: "180"; value: "-15.4508"; }
+ ListElement{ radius: "60"; angle: "185"; value: "-19.8086"; }
+ ListElement{ radius: "60"; angle: "190"; value: "-24.1333"; }
+ ListElement{ radius: "60"; angle: "195"; value: "-28.3918"; }
+ ListElement{ radius: "60"; angle: "200"; value: "-32.5519"; }
+ ListElement{ radius: "60"; angle: "205"; value: "-36.5818"; }
+ ListElement{ radius: "60"; angle: "210"; value: "-40.4508"; }
+ ListElement{ radius: "60"; angle: "215"; value: "-44.1297"; }
+ ListElement{ radius: "60"; angle: "220"; value: "-47.5902"; }
+ ListElement{ radius: "60"; angle: "225"; value: "-50.8062"; }
+ ListElement{ radius: "60"; angle: "230"; value: "-53.7531"; }
+ ListElement{ radius: "60"; angle: "235"; value: "-56.4085"; }
+ ListElement{ radius: "60"; angle: "240"; value: "-58.7521"; }
+ ListElement{ radius: "60"; angle: "245"; value: "-60.7662"; }
+ ListElement{ radius: "60"; angle: "250"; value: "-62.4355"; }
+ ListElement{ radius: "60"; angle: "255"; value: "-63.7471"; }
+ ListElement{ radius: "60"; angle: "260"; value: "-64.6912"; }
+ ListElement{ radius: "60"; angle: "265"; value: "-65.2606"; }
+ ListElement{ radius: "60"; angle: "270"; value: "-65.4508"; }
+ ListElement{ radius: "60"; angle: "275"; value: "-65.2606"; }
+ ListElement{ radius: "60"; angle: "280"; value: "-64.6912"; }
+ ListElement{ radius: "60"; angle: "285"; value: "-63.7471"; }
+ ListElement{ radius: "60"; angle: "290"; value: "-62.4355"; }
+ ListElement{ radius: "60"; angle: "295"; value: "-60.7662"; }
+ ListElement{ radius: "60"; angle: "300"; value: "-58.7521"; }
+ ListElement{ radius: "60"; angle: "305"; value: "-56.4085"; }
+ ListElement{ radius: "60"; angle: "310"; value: "-53.7531"; }
+ ListElement{ radius: "60"; angle: "315"; value: "-50.8062"; }
+ ListElement{ radius: "60"; angle: "320"; value: "-47.5902"; }
+ ListElement{ radius: "60"; angle: "325"; value: "-44.1297"; }
+ ListElement{ radius: "60"; angle: "330"; value: "-40.4508"; }
+ ListElement{ radius: "60"; angle: "335"; value: "-36.5818"; }
+ ListElement{ radius: "60"; angle: "340"; value: "-32.5519"; }
+ ListElement{ radius: "60"; angle: "345"; value: "-28.3918"; }
+ ListElement{ radius: "60"; angle: "350"; value: "-24.1333"; }
+ ListElement{ radius: "60"; angle: "355"; value: "-19.8086"; }
+ ListElement{ radius: "60"; angle: "360"; value: "-15.4508"; }
+ ListElement{ radius: "65"; angle: "0"; value: "-22.6995"; }
+ ListElement{ radius: "65"; angle: "5"; value: "-18.3417"; }
+ ListElement{ radius: "65"; angle: "10"; value: "-14.0171"; }
+ ListElement{ radius: "65"; angle: "15"; value: "-9.75857"; }
+ ListElement{ radius: "65"; angle: "20"; value: "-5.59852"; }
+ ListElement{ radius: "65"; angle: "25"; value: "-1.56861"; }
+ ListElement{ radius: "65"; angle: "30"; value: "2.30048"; }
+ ListElement{ radius: "65"; angle: "35"; value: "5.9793"; }
+ ListElement{ radius: "65"; angle: "40"; value: "9.43986"; }
+ ListElement{ radius: "65"; angle: "45"; value: "12.6558"; }
+ ListElement{ radius: "65"; angle: "50"; value: "15.6027"; }
+ ListElement{ radius: "65"; angle: "55"; value: "18.2581"; }
+ ListElement{ radius: "65"; angle: "60"; value: "20.6017"; }
+ ListElement{ radius: "65"; angle: "65"; value: "22.6159"; }
+ ListElement{ radius: "65"; angle: "70"; value: "24.2851"; }
+ ListElement{ radius: "65"; angle: "75"; value: "25.5968"; }
+ ListElement{ radius: "65"; angle: "80"; value: "26.5409"; }
+ ListElement{ radius: "65"; angle: "85"; value: "27.1102"; }
+ ListElement{ radius: "65"; angle: "90"; value: "27.3005"; }
+ ListElement{ radius: "65"; angle: "95"; value: "27.1102"; }
+ ListElement{ radius: "65"; angle: "100"; value: "26.5409"; }
+ ListElement{ radius: "65"; angle: "105"; value: "25.5968"; }
+ ListElement{ radius: "65"; angle: "110"; value: "24.2851"; }
+ ListElement{ radius: "65"; angle: "115"; value: "22.6159"; }
+ ListElement{ radius: "65"; angle: "120"; value: "20.6017"; }
+ ListElement{ radius: "65"; angle: "125"; value: "18.2581"; }
+ ListElement{ radius: "65"; angle: "130"; value: "15.6027"; }
+ ListElement{ radius: "65"; angle: "135"; value: "12.6558"; }
+ ListElement{ radius: "65"; angle: "140"; value: "9.43986"; }
+ ListElement{ radius: "65"; angle: "145"; value: "5.9793"; }
+ ListElement{ radius: "65"; angle: "150"; value: "2.30048"; }
+ ListElement{ radius: "65"; angle: "155"; value: "-1.56861"; }
+ ListElement{ radius: "65"; angle: "160"; value: "-5.59852"; }
+ ListElement{ radius: "65"; angle: "165"; value: "-9.75857"; }
+ ListElement{ radius: "65"; angle: "170"; value: "-14.0171"; }
+ ListElement{ radius: "65"; angle: "175"; value: "-18.3417"; }
+ ListElement{ radius: "65"; angle: "180"; value: "-22.6995"; }
+ ListElement{ radius: "65"; angle: "185"; value: "-27.0573"; }
+ ListElement{ radius: "65"; angle: "190"; value: "-31.3819"; }
+ ListElement{ radius: "65"; angle: "195"; value: "-35.6405"; }
+ ListElement{ radius: "65"; angle: "200"; value: "-39.8005"; }
+ ListElement{ radius: "65"; angle: "205"; value: "-43.8304"; }
+ ListElement{ radius: "65"; angle: "210"; value: "-47.6995"; }
+ ListElement{ radius: "65"; angle: "215"; value: "-51.3783"; }
+ ListElement{ radius: "65"; angle: "220"; value: "-54.8389"; }
+ ListElement{ radius: "65"; angle: "225"; value: "-58.0549"; }
+ ListElement{ radius: "65"; angle: "230"; value: "-61.0017"; }
+ ListElement{ radius: "65"; angle: "235"; value: "-63.6571"; }
+ ListElement{ radius: "65"; angle: "240"; value: "-66.0008"; }
+ ListElement{ radius: "65"; angle: "245"; value: "-68.0149"; }
+ ListElement{ radius: "65"; angle: "250"; value: "-69.6842"; }
+ ListElement{ radius: "65"; angle: "255"; value: "-70.9958"; }
+ ListElement{ radius: "65"; angle: "260"; value: "-71.9399"; }
+ ListElement{ radius: "65"; angle: "265"; value: "-72.5093"; }
+ ListElement{ radius: "65"; angle: "270"; value: "-72.6995"; }
+ ListElement{ radius: "65"; angle: "275"; value: "-72.5093"; }
+ ListElement{ radius: "65"; angle: "280"; value: "-71.9399"; }
+ ListElement{ radius: "65"; angle: "285"; value: "-70.9958"; }
+ ListElement{ radius: "65"; angle: "290"; value: "-69.6842"; }
+ ListElement{ radius: "65"; angle: "295"; value: "-68.0149"; }
+ ListElement{ radius: "65"; angle: "300"; value: "-66.0008"; }
+ ListElement{ radius: "65"; angle: "305"; value: "-63.6571"; }
+ ListElement{ radius: "65"; angle: "310"; value: "-61.0017"; }
+ ListElement{ radius: "65"; angle: "315"; value: "-58.0549"; }
+ ListElement{ radius: "65"; angle: "320"; value: "-54.8389"; }
+ ListElement{ radius: "65"; angle: "325"; value: "-51.3783"; }
+ ListElement{ radius: "65"; angle: "330"; value: "-47.6995"; }
+ ListElement{ radius: "65"; angle: "335"; value: "-43.8304"; }
+ ListElement{ radius: "65"; angle: "340"; value: "-39.8005"; }
+ ListElement{ radius: "65"; angle: "345"; value: "-35.6405"; }
+ ListElement{ radius: "65"; angle: "350"; value: "-31.3819"; }
+ ListElement{ radius: "65"; angle: "355"; value: "-27.0573"; }
+ ListElement{ radius: "65"; angle: "360"; value: "-22.6995"; }
+ ListElement{ radius: "70"; angle: "0"; value: "-29.3893"; }
+ ListElement{ radius: "70"; angle: "5"; value: "-25.0315"; }
+ ListElement{ radius: "70"; angle: "10"; value: "-20.7069"; }
+ ListElement{ radius: "70"; angle: "15"; value: "-16.4483"; }
+ ListElement{ radius: "70"; angle: "20"; value: "-12.2883"; }
+ ListElement{ radius: "70"; angle: "25"; value: "-8.25835"; }
+ ListElement{ radius: "70"; angle: "30"; value: "-4.38926"; }
+ ListElement{ radius: "70"; angle: "35"; value: "-0.710441"; }
+ ListElement{ radius: "70"; angle: "40"; value: "2.75012"; }
+ ListElement{ radius: "70"; angle: "45"; value: "5.96608"; }
+ ListElement{ radius: "70"; angle: "50"; value: "8.91296"; }
+ ListElement{ radius: "70"; angle: "55"; value: "11.5683"; }
+ ListElement{ radius: "70"; angle: "60"; value: "13.912"; }
+ ListElement{ radius: "70"; angle: "65"; value: "15.9261"; }
+ ListElement{ radius: "70"; angle: "70"; value: "17.5954"; }
+ ListElement{ radius: "70"; angle: "75"; value: "18.907"; }
+ ListElement{ radius: "70"; angle: "80"; value: "19.8511"; }
+ ListElement{ radius: "70"; angle: "85"; value: "20.4205"; }
+ ListElement{ radius: "70"; angle: "90"; value: "20.6107"; }
+ ListElement{ radius: "70"; angle: "95"; value: "20.4205"; }
+ ListElement{ radius: "70"; angle: "100"; value: "19.8511"; }
+ ListElement{ radius: "70"; angle: "105"; value: "18.907"; }
+ ListElement{ radius: "70"; angle: "110"; value: "17.5954"; }
+ ListElement{ radius: "70"; angle: "115"; value: "15.9261"; }
+ ListElement{ radius: "70"; angle: "120"; value: "13.912"; }
+ ListElement{ radius: "70"; angle: "125"; value: "11.5683"; }
+ ListElement{ radius: "70"; angle: "130"; value: "8.91296"; }
+ ListElement{ radius: "70"; angle: "135"; value: "5.96608"; }
+ ListElement{ radius: "70"; angle: "140"; value: "2.75012"; }
+ ListElement{ radius: "70"; angle: "145"; value: "-0.710441"; }
+ ListElement{ radius: "70"; angle: "150"; value: "-4.38926"; }
+ ListElement{ radius: "70"; angle: "155"; value: "-8.25835"; }
+ ListElement{ radius: "70"; angle: "160"; value: "-12.2883"; }
+ ListElement{ radius: "70"; angle: "165"; value: "-16.4483"; }
+ ListElement{ radius: "70"; angle: "170"; value: "-20.7069"; }
+ ListElement{ radius: "70"; angle: "175"; value: "-25.0315"; }
+ ListElement{ radius: "70"; angle: "180"; value: "-29.3893"; }
+ ListElement{ radius: "70"; angle: "185"; value: "-33.747"; }
+ ListElement{ radius: "70"; angle: "190"; value: "-38.0717"; }
+ ListElement{ radius: "70"; angle: "195"; value: "-42.3302"; }
+ ListElement{ radius: "70"; angle: "200"; value: "-46.4903"; }
+ ListElement{ radius: "70"; angle: "205"; value: "-50.5202"; }
+ ListElement{ radius: "70"; angle: "210"; value: "-54.3893"; }
+ ListElement{ radius: "70"; angle: "215"; value: "-58.0681"; }
+ ListElement{ radius: "70"; angle: "220"; value: "-61.5286"; }
+ ListElement{ radius: "70"; angle: "225"; value: "-64.7446"; }
+ ListElement{ radius: "70"; angle: "230"; value: "-67.6915"; }
+ ListElement{ radius: "70"; angle: "235"; value: "-70.3469"; }
+ ListElement{ radius: "70"; angle: "240"; value: "-72.6905"; }
+ ListElement{ radius: "70"; angle: "245"; value: "-74.7047"; }
+ ListElement{ radius: "70"; angle: "250"; value: "-76.3739"; }
+ ListElement{ radius: "70"; angle: "255"; value: "-77.6856"; }
+ ListElement{ radius: "70"; angle: "260"; value: "-78.6297"; }
+ ListElement{ radius: "70"; angle: "265"; value: "-79.199"; }
+ ListElement{ radius: "70"; angle: "270"; value: "-79.3893"; }
+ ListElement{ radius: "70"; angle: "275"; value: "-79.199"; }
+ ListElement{ radius: "70"; angle: "280"; value: "-78.6297"; }
+ ListElement{ radius: "70"; angle: "285"; value: "-77.6856"; }
+ ListElement{ radius: "70"; angle: "290"; value: "-76.3739"; }
+ ListElement{ radius: "70"; angle: "295"; value: "-74.7047"; }
+ ListElement{ radius: "70"; angle: "300"; value: "-72.6905"; }
+ ListElement{ radius: "70"; angle: "305"; value: "-70.3469"; }
+ ListElement{ radius: "70"; angle: "310"; value: "-67.6915"; }
+ ListElement{ radius: "70"; angle: "315"; value: "-64.7446"; }
+ ListElement{ radius: "70"; angle: "320"; value: "-61.5286"; }
+ ListElement{ radius: "70"; angle: "325"; value: "-58.0681"; }
+ ListElement{ radius: "70"; angle: "330"; value: "-54.3893"; }
+ ListElement{ radius: "70"; angle: "335"; value: "-50.5202"; }
+ ListElement{ radius: "70"; angle: "340"; value: "-46.4903"; }
+ ListElement{ radius: "70"; angle: "345"; value: "-42.3302"; }
+ ListElement{ radius: "70"; angle: "350"; value: "-38.0717"; }
+ ListElement{ radius: "70"; angle: "355"; value: "-33.747"; }
+ ListElement{ radius: "70"; angle: "360"; value: "-29.3893"; }
+ ListElement{ radius: "75"; angle: "0"; value: "-35.3553"; }
+ ListElement{ radius: "75"; angle: "5"; value: "-30.9976"; }
+ ListElement{ radius: "75"; angle: "10"; value: "-26.6729"; }
+ ListElement{ radius: "75"; angle: "15"; value: "-22.4144"; }
+ ListElement{ radius: "75"; angle: "20"; value: "-18.2543"; }
+ ListElement{ radius: "75"; angle: "25"; value: "-14.2244"; }
+ ListElement{ radius: "75"; angle: "30"; value: "-10.3553"; }
+ ListElement{ radius: "75"; angle: "35"; value: "-6.67652"; }
+ ListElement{ radius: "75"; angle: "40"; value: "-3.21596"; }
+ ListElement{ radius: "75"; angle: "45"; value: "5.55112e-15"; }
+ ListElement{ radius: "75"; angle: "50"; value: "2.94688"; }
+ ListElement{ radius: "75"; angle: "55"; value: "5.60226"; }
+ ListElement{ radius: "75"; angle: "60"; value: "7.94593"; }
+ ListElement{ radius: "75"; angle: "65"; value: "9.96005"; }
+ ListElement{ radius: "75"; angle: "70"; value: "11.6293"; }
+ ListElement{ radius: "75"; angle: "75"; value: "12.941"; }
+ ListElement{ radius: "75"; angle: "80"; value: "13.885"; }
+ ListElement{ radius: "75"; angle: "85"; value: "14.4544"; }
+ ListElement{ radius: "75"; angle: "90"; value: "14.6447"; }
+ ListElement{ radius: "75"; angle: "95"; value: "14.4544"; }
+ ListElement{ radius: "75"; angle: "100"; value: "13.885"; }
+ ListElement{ radius: "75"; angle: "105"; value: "12.941"; }
+ ListElement{ radius: "75"; angle: "110"; value: "11.6293"; }
+ ListElement{ radius: "75"; angle: "115"; value: "9.96005"; }
+ ListElement{ radius: "75"; angle: "120"; value: "7.94593"; }
+ ListElement{ radius: "75"; angle: "125"; value: "5.60226"; }
+ ListElement{ radius: "75"; angle: "130"; value: "2.94688"; }
+ ListElement{ radius: "75"; angle: "135"; value: "5.55112e-15"; }
+ ListElement{ radius: "75"; angle: "140"; value: "-3.21596"; }
+ ListElement{ radius: "75"; angle: "145"; value: "-6.67652"; }
+ ListElement{ radius: "75"; angle: "150"; value: "-10.3553"; }
+ ListElement{ radius: "75"; angle: "155"; value: "-14.2244"; }
+ ListElement{ radius: "75"; angle: "160"; value: "-18.2543"; }
+ ListElement{ radius: "75"; angle: "165"; value: "-22.4144"; }
+ ListElement{ radius: "75"; angle: "170"; value: "-26.6729"; }
+ ListElement{ radius: "75"; angle: "175"; value: "-30.9976"; }
+ ListElement{ radius: "75"; angle: "180"; value: "-35.3553"; }
+ ListElement{ radius: "75"; angle: "185"; value: "-39.7131"; }
+ ListElement{ radius: "75"; angle: "190"; value: "-44.0377"; }
+ ListElement{ radius: "75"; angle: "195"; value: "-48.2963"; }
+ ListElement{ radius: "75"; angle: "200"; value: "-52.4563"; }
+ ListElement{ radius: "75"; angle: "205"; value: "-56.4863"; }
+ ListElement{ radius: "75"; angle: "210"; value: "-60.3553"; }
+ ListElement{ radius: "75"; angle: "215"; value: "-64.0342"; }
+ ListElement{ radius: "75"; angle: "220"; value: "-67.4947"; }
+ ListElement{ radius: "75"; angle: "225"; value: "-70.7107"; }
+ ListElement{ radius: "75"; angle: "230"; value: "-73.6576"; }
+ ListElement{ radius: "75"; angle: "235"; value: "-76.3129"; }
+ ListElement{ radius: "75"; angle: "240"; value: "-78.6566"; }
+ ListElement{ radius: "75"; angle: "245"; value: "-80.6707"; }
+ ListElement{ radius: "75"; angle: "250"; value: "-82.34"; }
+ ListElement{ radius: "75"; angle: "255"; value: "-83.6516"; }
+ ListElement{ radius: "75"; angle: "260"; value: "-84.5957"; }
+ ListElement{ radius: "75"; angle: "265"; value: "-85.1651"; }
+ ListElement{ radius: "75"; angle: "270"; value: "-85.3553"; }
+ ListElement{ radius: "75"; angle: "275"; value: "-85.1651"; }
+ ListElement{ radius: "75"; angle: "280"; value: "-84.5957"; }
+ ListElement{ radius: "75"; angle: "285"; value: "-83.6516"; }
+ ListElement{ radius: "75"; angle: "290"; value: "-82.34"; }
+ ListElement{ radius: "75"; angle: "295"; value: "-80.6707"; }
+ ListElement{ radius: "75"; angle: "300"; value: "-78.6566"; }
+ ListElement{ radius: "75"; angle: "305"; value: "-76.3129"; }
+ ListElement{ radius: "75"; angle: "310"; value: "-73.6576"; }
+ ListElement{ radius: "75"; angle: "315"; value: "-70.7107"; }
+ ListElement{ radius: "75"; angle: "320"; value: "-67.4947"; }
+ ListElement{ radius: "75"; angle: "325"; value: "-64.0342"; }
+ ListElement{ radius: "75"; angle: "330"; value: "-60.3553"; }
+ ListElement{ radius: "75"; angle: "335"; value: "-56.4863"; }
+ ListElement{ radius: "75"; angle: "340"; value: "-52.4563"; }
+ ListElement{ radius: "75"; angle: "345"; value: "-48.2963"; }
+ ListElement{ radius: "75"; angle: "350"; value: "-44.0377"; }
+ ListElement{ radius: "75"; angle: "355"; value: "-39.7131"; }
+ ListElement{ radius: "75"; angle: "360"; value: "-35.3553"; }
+ ListElement{ radius: "80"; angle: "0"; value: "-40.4508"; }
+ ListElement{ radius: "80"; angle: "5"; value: "-36.0931"; }
+ ListElement{ radius: "80"; angle: "10"; value: "-31.7684"; }
+ ListElement{ radius: "80"; angle: "15"; value: "-27.5099"; }
+ ListElement{ radius: "80"; angle: "20"; value: "-23.3498"; }
+ ListElement{ radius: "80"; angle: "25"; value: "-19.3199"; }
+ ListElement{ radius: "80"; angle: "30"; value: "-15.4508"; }
+ ListElement{ radius: "80"; angle: "35"; value: "-11.772"; }
+ ListElement{ radius: "80"; angle: "40"; value: "-8.31147"; }
+ ListElement{ radius: "80"; angle: "45"; value: "-5.09551"; }
+ ListElement{ radius: "80"; angle: "50"; value: "-2.14863"; }
+ ListElement{ radius: "80"; angle: "55"; value: "0.506752"; }
+ ListElement{ radius: "80"; angle: "60"; value: "2.85042"; }
+ ListElement{ radius: "80"; angle: "65"; value: "4.86454"; }
+ ListElement{ radius: "80"; angle: "70"; value: "6.53378"; }
+ ListElement{ radius: "80"; angle: "75"; value: "7.84544"; }
+ ListElement{ radius: "80"; angle: "80"; value: "8.78954"; }
+ ListElement{ radius: "80"; angle: "85"; value: "9.35889"; }
+ ListElement{ radius: "80"; angle: "90"; value: "9.54915"; }
+ ListElement{ radius: "80"; angle: "95"; value: "9.35889"; }
+ ListElement{ radius: "80"; angle: "100"; value: "8.78954"; }
+ ListElement{ radius: "80"; angle: "105"; value: "7.84544"; }
+ ListElement{ radius: "80"; angle: "110"; value: "6.53378"; }
+ ListElement{ radius: "80"; angle: "115"; value: "4.86454"; }
+ ListElement{ radius: "80"; angle: "120"; value: "2.85042"; }
+ ListElement{ radius: "80"; angle: "125"; value: "0.506752"; }
+ ListElement{ radius: "80"; angle: "130"; value: "-2.14863"; }
+ ListElement{ radius: "80"; angle: "135"; value: "-5.09551"; }
+ ListElement{ radius: "80"; angle: "140"; value: "-8.31147"; }
+ ListElement{ radius: "80"; angle: "145"; value: "-11.772"; }
+ ListElement{ radius: "80"; angle: "150"; value: "-15.4508"; }
+ ListElement{ radius: "80"; angle: "155"; value: "-19.3199"; }
+ ListElement{ radius: "80"; angle: "160"; value: "-23.3498"; }
+ ListElement{ radius: "80"; angle: "165"; value: "-27.5099"; }
+ ListElement{ radius: "80"; angle: "170"; value: "-31.7684"; }
+ ListElement{ radius: "80"; angle: "175"; value: "-36.0931"; }
+ ListElement{ radius: "80"; angle: "180"; value: "-40.4508"; }
+ ListElement{ radius: "80"; angle: "185"; value: "-44.8086"; }
+ ListElement{ radius: "80"; angle: "190"; value: "-49.1333"; }
+ ListElement{ radius: "80"; angle: "195"; value: "-53.3918"; }
+ ListElement{ radius: "80"; angle: "200"; value: "-57.5519"; }
+ ListElement{ radius: "80"; angle: "205"; value: "-61.5818"; }
+ ListElement{ radius: "80"; angle: "210"; value: "-65.4508"; }
+ ListElement{ radius: "80"; angle: "215"; value: "-69.1297"; }
+ ListElement{ radius: "80"; angle: "220"; value: "-72.5902"; }
+ ListElement{ radius: "80"; angle: "225"; value: "-75.8062"; }
+ ListElement{ radius: "80"; angle: "230"; value: "-78.7531"; }
+ ListElement{ radius: "80"; angle: "235"; value: "-81.4085"; }
+ ListElement{ radius: "80"; angle: "240"; value: "-83.7521"; }
+ ListElement{ radius: "80"; angle: "245"; value: "-85.7662"; }
+ ListElement{ radius: "80"; angle: "250"; value: "-87.4355"; }
+ ListElement{ radius: "80"; angle: "255"; value: "-88.7471"; }
+ ListElement{ radius: "80"; angle: "260"; value: "-89.6912"; }
+ ListElement{ radius: "80"; angle: "265"; value: "-90.2606"; }
+ ListElement{ radius: "80"; angle: "270"; value: "-90.4508"; }
+ ListElement{ radius: "80"; angle: "275"; value: "-90.2606"; }
+ ListElement{ radius: "80"; angle: "280"; value: "-89.6912"; }
+ ListElement{ radius: "80"; angle: "285"; value: "-88.7471"; }
+ ListElement{ radius: "80"; angle: "290"; value: "-87.4355"; }
+ ListElement{ radius: "80"; angle: "295"; value: "-85.7662"; }
+ ListElement{ radius: "80"; angle: "300"; value: "-83.7521"; }
+ ListElement{ radius: "80"; angle: "305"; value: "-81.4085"; }
+ ListElement{ radius: "80"; angle: "310"; value: "-78.7531"; }
+ ListElement{ radius: "80"; angle: "315"; value: "-75.8062"; }
+ ListElement{ radius: "80"; angle: "320"; value: "-72.5902"; }
+ ListElement{ radius: "80"; angle: "325"; value: "-69.1297"; }
+ ListElement{ radius: "80"; angle: "330"; value: "-65.4508"; }
+ ListElement{ radius: "80"; angle: "335"; value: "-61.5818"; }
+ ListElement{ radius: "80"; angle: "340"; value: "-57.5519"; }
+ ListElement{ radius: "80"; angle: "345"; value: "-53.3918"; }
+ ListElement{ radius: "80"; angle: "350"; value: "-49.1333"; }
+ ListElement{ radius: "80"; angle: "355"; value: "-44.8086"; }
+ ListElement{ radius: "80"; angle: "360"; value: "-40.4508"; }
+ ListElement{ radius: "85"; angle: "0"; value: "-44.5503"; }
+ ListElement{ radius: "85"; angle: "5"; value: "-40.1925"; }
+ ListElement{ radius: "85"; angle: "10"; value: "-35.8679"; }
+ ListElement{ radius: "85"; angle: "15"; value: "-31.6094"; }
+ ListElement{ radius: "85"; angle: "20"; value: "-27.4493"; }
+ ListElement{ radius: "85"; angle: "25"; value: "-23.4194"; }
+ ListElement{ radius: "85"; angle: "30"; value: "-19.5503"; }
+ ListElement{ radius: "85"; angle: "35"; value: "-15.8715"; }
+ ListElement{ radius: "85"; angle: "40"; value: "-12.4109"; }
+ ListElement{ radius: "85"; angle: "45"; value: "-9.19499"; }
+ ListElement{ radius: "85"; angle: "50"; value: "-6.2481"; }
+ ListElement{ radius: "85"; angle: "55"; value: "-3.59272"; }
+ ListElement{ radius: "85"; angle: "60"; value: "-1.24906"; }
+ ListElement{ radius: "85"; angle: "65"; value: "0.765063"; }
+ ListElement{ radius: "85"; angle: "70"; value: "2.4343"; }
+ ListElement{ radius: "85"; angle: "75"; value: "3.74597"; }
+ ListElement{ radius: "85"; angle: "80"; value: "4.69006"; }
+ ListElement{ radius: "85"; angle: "85"; value: "5.25941"; }
+ ListElement{ radius: "85"; angle: "90"; value: "5.44967"; }
+ ListElement{ radius: "85"; angle: "95"; value: "5.25941"; }
+ ListElement{ radius: "85"; angle: "100"; value: "4.69006"; }
+ ListElement{ radius: "85"; angle: "105"; value: "3.74597"; }
+ ListElement{ radius: "85"; angle: "110"; value: "2.4343"; }
+ ListElement{ radius: "85"; angle: "115"; value: "0.765063"; }
+ ListElement{ radius: "85"; angle: "120"; value: "-1.24906"; }
+ ListElement{ radius: "85"; angle: "125"; value: "-3.59272"; }
+ ListElement{ radius: "85"; angle: "130"; value: "-6.2481"; }
+ ListElement{ radius: "85"; angle: "135"; value: "-9.19499"; }
+ ListElement{ radius: "85"; angle: "140"; value: "-12.4109"; }
+ ListElement{ radius: "85"; angle: "145"; value: "-15.8715"; }
+ ListElement{ radius: "85"; angle: "150"; value: "-19.5503"; }
+ ListElement{ radius: "85"; angle: "155"; value: "-23.4194"; }
+ ListElement{ radius: "85"; angle: "160"; value: "-27.4493"; }
+ ListElement{ radius: "85"; angle: "165"; value: "-31.6094"; }
+ ListElement{ radius: "85"; angle: "170"; value: "-35.8679"; }
+ ListElement{ radius: "85"; angle: "175"; value: "-40.1925"; }
+ ListElement{ radius: "85"; angle: "180"; value: "-44.5503"; }
+ ListElement{ radius: "85"; angle: "185"; value: "-48.9081"; }
+ ListElement{ radius: "85"; angle: "190"; value: "-53.2327"; }
+ ListElement{ radius: "85"; angle: "195"; value: "-57.4913"; }
+ ListElement{ radius: "85"; angle: "200"; value: "-61.6513"; }
+ ListElement{ radius: "85"; angle: "205"; value: "-65.6812"; }
+ ListElement{ radius: "85"; angle: "210"; value: "-69.5503"; }
+ ListElement{ radius: "85"; angle: "215"; value: "-73.2291"; }
+ ListElement{ radius: "85"; angle: "220"; value: "-76.6897"; }
+ ListElement{ radius: "85"; angle: "225"; value: "-79.9057"; }
+ ListElement{ radius: "85"; angle: "230"; value: "-82.8525"; }
+ ListElement{ radius: "85"; angle: "235"; value: "-85.5079"; }
+ ListElement{ radius: "85"; angle: "240"; value: "-87.8516"; }
+ ListElement{ radius: "85"; angle: "245"; value: "-89.8657"; }
+ ListElement{ radius: "85"; angle: "250"; value: "-91.535"; }
+ ListElement{ radius: "85"; angle: "255"; value: "-92.8466"; }
+ ListElement{ radius: "85"; angle: "260"; value: "-93.7907"; }
+ ListElement{ radius: "85"; angle: "265"; value: "-94.3601"; }
+ ListElement{ radius: "85"; angle: "270"; value: "-94.5503"; }
+ ListElement{ radius: "85"; angle: "275"; value: "-94.3601"; }
+ ListElement{ radius: "85"; angle: "280"; value: "-93.7907"; }
+ ListElement{ radius: "85"; angle: "285"; value: "-92.8466"; }
+ ListElement{ radius: "85"; angle: "290"; value: "-91.535"; }
+ ListElement{ radius: "85"; angle: "295"; value: "-89.8657"; }
+ ListElement{ radius: "85"; angle: "300"; value: "-87.8516"; }
+ ListElement{ radius: "85"; angle: "305"; value: "-85.5079"; }
+ ListElement{ radius: "85"; angle: "310"; value: "-82.8525"; }
+ ListElement{ radius: "85"; angle: "315"; value: "-79.9057"; }
+ ListElement{ radius: "85"; angle: "320"; value: "-76.6897"; }
+ ListElement{ radius: "85"; angle: "325"; value: "-73.2291"; }
+ ListElement{ radius: "85"; angle: "330"; value: "-69.5503"; }
+ ListElement{ radius: "85"; angle: "335"; value: "-65.6812"; }
+ ListElement{ radius: "85"; angle: "340"; value: "-61.6513"; }
+ ListElement{ radius: "85"; angle: "345"; value: "-57.4913"; }
+ ListElement{ radius: "85"; angle: "350"; value: "-53.2327"; }
+ ListElement{ radius: "85"; angle: "355"; value: "-48.9081"; }
+ ListElement{ radius: "85"; angle: "360"; value: "-44.5503"; }
+ ListElement{ radius: "90"; angle: "0"; value: "-47.5528"; }
+ ListElement{ radius: "90"; angle: "5"; value: "-43.195"; }
+ ListElement{ radius: "90"; angle: "10"; value: "-38.8704"; }
+ ListElement{ radius: "90"; angle: "15"; value: "-34.6119"; }
+ ListElement{ radius: "90"; angle: "20"; value: "-30.4518"; }
+ ListElement{ radius: "90"; angle: "25"; value: "-26.4219"; }
+ ListElement{ radius: "90"; angle: "30"; value: "-22.5528"; }
+ ListElement{ radius: "90"; angle: "35"; value: "-18.874"; }
+ ListElement{ radius: "90"; angle: "40"; value: "-15.4134"; }
+ ListElement{ radius: "90"; angle: "45"; value: "-12.1975"; }
+ ListElement{ radius: "90"; angle: "50"; value: "-9.2506"; }
+ ListElement{ radius: "90"; angle: "55"; value: "-6.59522"; }
+ ListElement{ radius: "90"; angle: "60"; value: "-4.25156"; }
+ ListElement{ radius: "90"; angle: "65"; value: "-2.23744"; }
+ ListElement{ radius: "90"; angle: "70"; value: "-0.568195"; }
+ ListElement{ radius: "90"; angle: "75"; value: "0.743465"; }
+ ListElement{ radius: "90"; angle: "80"; value: "1.68756"; }
+ ListElement{ radius: "90"; angle: "85"; value: "2.25691"; }
+ ListElement{ radius: "90"; angle: "90"; value: "2.44717"; }
+ ListElement{ radius: "90"; angle: "95"; value: "2.25691"; }
+ ListElement{ radius: "90"; angle: "100"; value: "1.68756"; }
+ ListElement{ radius: "90"; angle: "105"; value: "0.743465"; }
+ ListElement{ radius: "90"; angle: "110"; value: "-0.568195"; }
+ ListElement{ radius: "90"; angle: "115"; value: "-2.23744"; }
+ ListElement{ radius: "90"; angle: "120"; value: "-4.25156"; }
+ ListElement{ radius: "90"; angle: "125"; value: "-6.59522"; }
+ ListElement{ radius: "90"; angle: "130"; value: "-9.2506"; }
+ ListElement{ radius: "90"; angle: "135"; value: "-12.1975"; }
+ ListElement{ radius: "90"; angle: "140"; value: "-15.4134"; }
+ ListElement{ radius: "90"; angle: "145"; value: "-18.874"; }
+ ListElement{ radius: "90"; angle: "150"; value: "-22.5528"; }
+ ListElement{ radius: "90"; angle: "155"; value: "-26.4219"; }
+ ListElement{ radius: "90"; angle: "160"; value: "-30.4518"; }
+ ListElement{ radius: "90"; angle: "165"; value: "-34.6119"; }
+ ListElement{ radius: "90"; angle: "170"; value: "-38.8704"; }
+ ListElement{ radius: "90"; angle: "175"; value: "-43.195"; }
+ ListElement{ radius: "90"; angle: "180"; value: "-47.5528"; }
+ ListElement{ radius: "90"; angle: "185"; value: "-51.9106"; }
+ ListElement{ radius: "90"; angle: "190"; value: "-56.2352"; }
+ ListElement{ radius: "90"; angle: "195"; value: "-60.4938"; }
+ ListElement{ radius: "90"; angle: "200"; value: "-64.6538"; }
+ ListElement{ radius: "90"; angle: "205"; value: "-68.6837"; }
+ ListElement{ radius: "90"; angle: "210"; value: "-72.5528"; }
+ ListElement{ radius: "90"; angle: "215"; value: "-76.2316"; }
+ ListElement{ radius: "90"; angle: "220"; value: "-79.6922"; }
+ ListElement{ radius: "90"; angle: "225"; value: "-82.9082"; }
+ ListElement{ radius: "90"; angle: "230"; value: "-85.855"; }
+ ListElement{ radius: "90"; angle: "235"; value: "-88.5104"; }
+ ListElement{ radius: "90"; angle: "240"; value: "-90.8541"; }
+ ListElement{ radius: "90"; angle: "245"; value: "-92.8682"; }
+ ListElement{ radius: "90"; angle: "250"; value: "-94.5375"; }
+ ListElement{ radius: "90"; angle: "255"; value: "-95.8491"; }
+ ListElement{ radius: "90"; angle: "260"; value: "-96.7932"; }
+ ListElement{ radius: "90"; angle: "265"; value: "-97.3626"; }
+ ListElement{ radius: "90"; angle: "270"; value: "-97.5528"; }
+ ListElement{ radius: "90"; angle: "275"; value: "-97.3626"; }
+ ListElement{ radius: "90"; angle: "280"; value: "-96.7932"; }
+ ListElement{ radius: "90"; angle: "285"; value: "-95.8491"; }
+ ListElement{ radius: "90"; angle: "290"; value: "-94.5375"; }
+ ListElement{ radius: "90"; angle: "295"; value: "-92.8682"; }
+ ListElement{ radius: "90"; angle: "300"; value: "-90.8541"; }
+ ListElement{ radius: "90"; angle: "305"; value: "-88.5104"; }
+ ListElement{ radius: "90"; angle: "310"; value: "-85.855"; }
+ ListElement{ radius: "90"; angle: "315"; value: "-82.9082"; }
+ ListElement{ radius: "90"; angle: "320"; value: "-79.6922"; }
+ ListElement{ radius: "90"; angle: "325"; value: "-76.2316"; }
+ ListElement{ radius: "90"; angle: "330"; value: "-72.5528"; }
+ ListElement{ radius: "90"; angle: "335"; value: "-68.6837"; }
+ ListElement{ radius: "90"; angle: "340"; value: "-64.6538"; }
+ ListElement{ radius: "90"; angle: "345"; value: "-60.4938"; }
+ ListElement{ radius: "90"; angle: "350"; value: "-56.2352"; }
+ ListElement{ radius: "90"; angle: "355"; value: "-51.9106"; }
+ ListElement{ radius: "90"; angle: "360"; value: "-47.5528"; }
+ ListElement{ radius: "95"; angle: "0"; value: "-49.3844"; }
+ ListElement{ radius: "95"; angle: "5"; value: "-45.0266"; }
+ ListElement{ radius: "95"; angle: "10"; value: "-40.702"; }
+ ListElement{ radius: "95"; angle: "15"; value: "-36.4435"; }
+ ListElement{ radius: "95"; angle: "20"; value: "-32.2834"; }
+ ListElement{ radius: "95"; angle: "25"; value: "-28.2535"; }
+ ListElement{ radius: "95"; angle: "30"; value: "-24.3844"; }
+ ListElement{ radius: "95"; angle: "35"; value: "-20.7056"; }
+ ListElement{ radius: "95"; angle: "40"; value: "-17.245"; }
+ ListElement{ radius: "95"; angle: "45"; value: "-14.0291"; }
+ ListElement{ radius: "95"; angle: "50"; value: "-11.0822"; }
+ ListElement{ radius: "95"; angle: "55"; value: "-8.42681"; }
+ ListElement{ radius: "95"; angle: "60"; value: "-6.08315"; }
+ ListElement{ radius: "95"; angle: "65"; value: "-4.06903"; }
+ ListElement{ radius: "95"; angle: "70"; value: "-2.39979"; }
+ ListElement{ radius: "95"; angle: "75"; value: "-1.08813"; }
+ ListElement{ radius: "95"; angle: "80"; value: "-0.144029"; }
+ ListElement{ radius: "95"; angle: "85"; value: "0.425318"; }
+ ListElement{ radius: "95"; angle: "90"; value: "0.615583"; }
+ ListElement{ radius: "95"; angle: "95"; value: "0.425318"; }
+ ListElement{ radius: "95"; angle: "100"; value: "-0.144029"; }
+ ListElement{ radius: "95"; angle: "105"; value: "-1.08813"; }
+ ListElement{ radius: "95"; angle: "110"; value: "-2.39979"; }
+ ListElement{ radius: "95"; angle: "115"; value: "-4.06903"; }
+ ListElement{ radius: "95"; angle: "120"; value: "-6.08315"; }
+ ListElement{ radius: "95"; angle: "125"; value: "-8.42681"; }
+ ListElement{ radius: "95"; angle: "130"; value: "-11.0822"; }
+ ListElement{ radius: "95"; angle: "135"; value: "-14.0291"; }
+ ListElement{ radius: "95"; angle: "140"; value: "-17.245"; }
+ ListElement{ radius: "95"; angle: "145"; value: "-20.7056"; }
+ ListElement{ radius: "95"; angle: "150"; value: "-24.3844"; }
+ ListElement{ radius: "95"; angle: "155"; value: "-28.2535"; }
+ ListElement{ radius: "95"; angle: "160"; value: "-32.2834"; }
+ ListElement{ radius: "95"; angle: "165"; value: "-36.4435"; }
+ ListElement{ radius: "95"; angle: "170"; value: "-40.702"; }
+ ListElement{ radius: "95"; angle: "175"; value: "-45.0266"; }
+ ListElement{ radius: "95"; angle: "180"; value: "-49.3844"; }
+ ListElement{ radius: "95"; angle: "185"; value: "-53.7422"; }
+ ListElement{ radius: "95"; angle: "190"; value: "-58.0668"; }
+ ListElement{ radius: "95"; angle: "195"; value: "-62.3254"; }
+ ListElement{ radius: "95"; angle: "200"; value: "-66.4854"; }
+ ListElement{ radius: "95"; angle: "205"; value: "-70.5153"; }
+ ListElement{ radius: "95"; angle: "210"; value: "-74.3844"; }
+ ListElement{ radius: "95"; angle: "215"; value: "-78.0632"; }
+ ListElement{ radius: "95"; angle: "220"; value: "-81.5238"; }
+ ListElement{ radius: "95"; angle: "225"; value: "-84.7398"; }
+ ListElement{ radius: "95"; angle: "230"; value: "-87.6866"; }
+ ListElement{ radius: "95"; angle: "235"; value: "-90.342"; }
+ ListElement{ radius: "95"; angle: "240"; value: "-92.6857"; }
+ ListElement{ radius: "95"; angle: "245"; value: "-94.6998"; }
+ ListElement{ radius: "95"; angle: "250"; value: "-96.369"; }
+ ListElement{ radius: "95"; angle: "255"; value: "-97.6807"; }
+ ListElement{ radius: "95"; angle: "260"; value: "-98.6248"; }
+ ListElement{ radius: "95"; angle: "265"; value: "-99.1942"; }
+ ListElement{ radius: "95"; angle: "270"; value: "-99.3844"; }
+ ListElement{ radius: "95"; angle: "275"; value: "-99.1942"; }
+ ListElement{ radius: "95"; angle: "280"; value: "-98.6248"; }
+ ListElement{ radius: "95"; angle: "285"; value: "-97.6807"; }
+ ListElement{ radius: "95"; angle: "290"; value: "-96.369"; }
+ ListElement{ radius: "95"; angle: "295"; value: "-94.6998"; }
+ ListElement{ radius: "95"; angle: "300"; value: "-92.6857"; }
+ ListElement{ radius: "95"; angle: "305"; value: "-90.342"; }
+ ListElement{ radius: "95"; angle: "310"; value: "-87.6866"; }
+ ListElement{ radius: "95"; angle: "315"; value: "-84.7398"; }
+ ListElement{ radius: "95"; angle: "320"; value: "-81.5238"; }
+ ListElement{ radius: "95"; angle: "325"; value: "-78.0632"; }
+ ListElement{ radius: "95"; angle: "330"; value: "-74.3844"; }
+ ListElement{ radius: "95"; angle: "335"; value: "-70.5153"; }
+ ListElement{ radius: "95"; angle: "340"; value: "-66.4854"; }
+ ListElement{ radius: "95"; angle: "345"; value: "-62.3254"; }
+ ListElement{ radius: "95"; angle: "350"; value: "-58.0668"; }
+ ListElement{ radius: "95"; angle: "355"; value: "-53.7422"; }
+ ListElement{ radius: "95"; angle: "360"; value: "-49.3844"; }
+ ListElement{ radius: "100"; angle: "0"; value: "-50"; }
+ ListElement{ radius: "100"; angle: "5"; value: "-45.6422"; }
+ ListElement{ radius: "100"; angle: "10"; value: "-41.3176"; }
+ ListElement{ radius: "100"; angle: "15"; value: "-37.059"; }
+ ListElement{ radius: "100"; angle: "20"; value: "-32.899"; }
+ ListElement{ radius: "100"; angle: "25"; value: "-28.8691"; }
+ ListElement{ radius: "100"; angle: "30"; value: "-25"; }
+ ListElement{ radius: "100"; angle: "35"; value: "-21.3212"; }
+ ListElement{ radius: "100"; angle: "40"; value: "-17.8606"; }
+ ListElement{ radius: "100"; angle: "45"; value: "-14.6447"; }
+ ListElement{ radius: "100"; angle: "50"; value: "-11.6978"; }
+ ListElement{ radius: "100"; angle: "55"; value: "-9.0424"; }
+ ListElement{ radius: "100"; angle: "60"; value: "-6.69873"; }
+ ListElement{ radius: "100"; angle: "65"; value: "-4.68461"; }
+ ListElement{ radius: "100"; angle: "70"; value: "-3.01537"; }
+ ListElement{ radius: "100"; angle: "75"; value: "-1.70371"; }
+ ListElement{ radius: "100"; angle: "80"; value: "-0.759612"; }
+ ListElement{ radius: "100"; angle: "85"; value: "-0.190265"; }
+ ListElement{ radius: "100"; angle: "90"; value: "0"; }
+ ListElement{ radius: "100"; angle: "95"; value: "-0.190265"; }
+ ListElement{ radius: "100"; angle: "100"; value: "-0.759612"; }
+ ListElement{ radius: "100"; angle: "105"; value: "-1.70371"; }
+ ListElement{ radius: "100"; angle: "110"; value: "-3.01537"; }
+ ListElement{ radius: "100"; angle: "115"; value: "-4.68461"; }
+ ListElement{ radius: "100"; angle: "120"; value: "-6.69873"; }
+ ListElement{ radius: "100"; angle: "125"; value: "-9.0424"; }
+ ListElement{ radius: "100"; angle: "130"; value: "-11.6978"; }
+ ListElement{ radius: "100"; angle: "135"; value: "-14.6447"; }
+ ListElement{ radius: "100"; angle: "140"; value: "-17.8606"; }
+ ListElement{ radius: "100"; angle: "145"; value: "-21.3212"; }
+ ListElement{ radius: "100"; angle: "150"; value: "-25"; }
+ ListElement{ radius: "100"; angle: "155"; value: "-28.8691"; }
+ ListElement{ radius: "100"; angle: "160"; value: "-32.899"; }
+ ListElement{ radius: "100"; angle: "165"; value: "-37.059"; }
+ ListElement{ radius: "100"; angle: "170"; value: "-41.3176"; }
+ ListElement{ radius: "100"; angle: "175"; value: "-45.6422"; }
+ ListElement{ radius: "100"; angle: "180"; value: "-50"; }
+ ListElement{ radius: "100"; angle: "185"; value: "-54.3578"; }
+ ListElement{ radius: "100"; angle: "190"; value: "-58.6824"; }
+ ListElement{ radius: "100"; angle: "195"; value: "-62.941"; }
+ ListElement{ radius: "100"; angle: "200"; value: "-67.101"; }
+ ListElement{ radius: "100"; angle: "205"; value: "-71.1309"; }
+ ListElement{ radius: "100"; angle: "210"; value: "-75"; }
+ ListElement{ radius: "100"; angle: "215"; value: "-78.6788"; }
+ ListElement{ radius: "100"; angle: "220"; value: "-82.1394"; }
+ ListElement{ radius: "100"; angle: "225"; value: "-85.3553"; }
+ ListElement{ radius: "100"; angle: "230"; value: "-88.3022"; }
+ ListElement{ radius: "100"; angle: "235"; value: "-90.9576"; }
+ ListElement{ radius: "100"; angle: "240"; value: "-93.3013"; }
+ ListElement{ radius: "100"; angle: "245"; value: "-95.3154"; }
+ ListElement{ radius: "100"; angle: "250"; value: "-96.9846"; }
+ ListElement{ radius: "100"; angle: "255"; value: "-98.2963"; }
+ ListElement{ radius: "100"; angle: "260"; value: "-99.2404"; }
+ ListElement{ radius: "100"; angle: "265"; value: "-99.8097"; }
+ ListElement{ radius: "100"; angle: "270"; value: "-100"; }
+ ListElement{ radius: "100"; angle: "275"; value: "-99.8097"; }
+ ListElement{ radius: "100"; angle: "280"; value: "-99.2404"; }
+ ListElement{ radius: "100"; angle: "285"; value: "-98.2963"; }
+ ListElement{ radius: "100"; angle: "290"; value: "-96.9846"; }
+ ListElement{ radius: "100"; angle: "295"; value: "-95.3154"; }
+ ListElement{ radius: "100"; angle: "300"; value: "-93.3013"; }
+ ListElement{ radius: "100"; angle: "305"; value: "-90.9576"; }
+ ListElement{ radius: "100"; angle: "310"; value: "-88.3022"; }
+ ListElement{ radius: "100"; angle: "315"; value: "-85.3553"; }
+ ListElement{ radius: "100"; angle: "320"; value: "-82.1394"; }
+ ListElement{ radius: "100"; angle: "325"; value: "-78.6788"; }
+ ListElement{ radius: "100"; angle: "330"; value: "-75"; }
+ ListElement{ radius: "100"; angle: "335"; value: "-71.1309"; }
+ ListElement{ radius: "100"; angle: "340"; value: "-67.101"; }
+ ListElement{ radius: "100"; angle: "345"; value: "-62.941"; }
+ ListElement{ radius: "100"; angle: "350"; value: "-58.6824"; }
+ ListElement{ radius: "100"; angle: "355"; value: "-54.3578"; }
+ ListElement{ radius: "100"; angle: "360"; value: "-50"; }
+ }
+}
diff --git a/examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/SurfaceHeightMap.qml b/examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/SurfaceHeightMap.qml
new file mode 100644
index 000000000..8213c5747
--- /dev/null
+++ b/examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/SurfaceHeightMap.qml
@@ -0,0 +1,227 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+import QtDataVisualization
+
+Rectangle {
+ id: heightMapView
+ color: surfacePlot.theme.windowColor
+
+ required property bool portraitMode
+
+ property real buttonWidth: heightMapView.portraitMode ? (heightMapView.width - 35) / 2
+ : (heightMapView.width - 40) / 3
+
+ Item {
+ id: surfaceView
+ anchors.top: buttons.bottom
+ anchors.bottom: heightMapView.bottom
+ anchors.left: heightMapView.left
+ anchors.right: heightMapView.right
+
+ //! [1]
+ ColorGradient {
+ id: surfaceGradient
+ ColorGradientStop { position: 0.0; color: "darkgreen"}
+ ColorGradientStop { position: 0.15; color: "darkslategray" }
+ ColorGradientStop { position: 0.7; color: "peru" }
+ ColorGradientStop { position: 1.0; color: "white" }
+ }
+ //! [1]
+
+ Surface3D {
+ id: surfacePlot
+ width: surfaceView.width
+ height: surfaceView.height
+ aspectRatio: 3.0
+ //! [2]
+ theme: Theme3D {
+ type: Theme3D.ThemeStoneMoss
+ font.family: "STCaiyun"
+ font.pointSize: 35
+ colorStyle: Theme3D.ColorStyleRangeGradient
+ baseGradients: [surfaceGradient] // Use the custom gradient
+ }
+ //! [2]
+ shadowQuality: AbstractGraph3D.ShadowQualityMedium
+ selectionMode: AbstractGraph3D.SelectionSlice | AbstractGraph3D.SelectionItemAndRow
+ scene.activeCamera.cameraPreset: Camera3D.CameraPresetIsometricLeft
+ axisX.segmentCount: 3
+ axisX.subSegmentCount: 3
+ axisX.labelFormat: "%i"
+ axisZ.segmentCount: 3
+ axisZ.subSegmentCount: 3
+ axisZ.labelFormat: "%i"
+ axisY.segmentCount: 2
+ axisY.subSegmentCount: 2
+ axisY.labelFormat: "%i"
+ axisY.title: "Height (m)"
+ axisX.title: "Longitude 175.x\"E"
+ axisZ.title: "Latitude -39.x\"N"
+ axisY.titleVisible: true
+ axisX.titleVisible: true
+ axisZ.titleVisible: true
+
+ //! [0]
+ Surface3DSeries {
+ id: heightSeries
+ flatShadingEnabled: false
+ drawMode: Surface3DSeries.DrawSurface
+
+ HeightMapSurfaceDataProxy {
+ heightMapFile: ":/qml/qmlsurfacegallery/heightmap.png"
+ // We don't want the default data values set by heightmap proxy, but use
+ // actual coordinate and height values instead
+ autoScaleY: true
+ minYValue: 740
+ maxYValue: 2787
+ minZValue: -374 // ~ -39.374411"N
+ maxZValue: -116 // ~ -39.115971"N
+ minXValue: 472 // ~ 175.471767"E
+ maxXValue: 781 // ~ 175.780758"E
+ }
+
+ onDrawModeChanged: heightMapView.checkState()
+ }
+ //! [0]
+ }
+ }
+
+ Item {
+ id: buttons
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.margins: 10
+ height: heightMapView.portraitMode ? surfaceGridToggle.implicitHeight * 3 + 20
+ : surfaceGridToggle.implicitHeight * 2 + 15
+ opacity: 0.5
+
+ Button {
+ id: surfaceGridToggle
+ anchors.margins: 5
+ anchors.left: parent.left
+ anchors.top: parent.top
+ width: heightMapView.buttonWidth // Calculated elsewhere based on screen orientation
+ text: "Show Surface\nGrid"
+ //! [3]
+ onClicked: {
+ if (heightSeries.drawMode & Surface3DSeries.DrawWireframe)
+ heightSeries.drawMode &= ~Surface3DSeries.DrawWireframe;
+ else
+ heightSeries.drawMode |= Surface3DSeries.DrawWireframe;
+ }
+ //! [3]
+ }
+
+ Button {
+ id: surfaceGridColor
+ anchors.margins: 5
+ anchors.left: surfaceGridToggle.right
+ anchors.top: parent.top
+ width: heightMapView.buttonWidth
+ text: "Red surface\ngrid color"
+ //! [4]
+ onClicked: {
+ if (Qt.colorEqual(heightSeries.wireframeColor, "#000000")) {
+ heightSeries.wireframeColor = "red";
+ text = "Black surface\ngrid color";
+ } else {
+ heightSeries.wireframeColor = "black";
+ text = "Red surface\ngrid color";
+ }
+ }
+ //! [4]
+ }
+
+ Button {
+ id: surfaceToggle
+ anchors.margins: 5
+ anchors.left: heightMapView.portraitMode ? parent.left : surfaceGridColor.right
+ anchors.top: heightMapView.portraitMode ? surfaceGridColor.bottom : parent.top
+ width: heightMapView.buttonWidth
+ text: "Hide\nSurface"
+ //! [5]
+ onClicked: {
+ if (heightSeries.drawMode & Surface3DSeries.DrawSurface)
+ heightSeries.drawMode &= ~Surface3DSeries.DrawSurface;
+ else
+ heightSeries.drawMode |= Surface3DSeries.DrawSurface;
+ }
+ //! [5]
+ }
+
+ Button {
+ id: flatShadingToggle
+ anchors.margins: 5
+ anchors.left: heightMapView.portraitMode ? surfaceToggle.right : parent.left
+ anchors.top: heightMapView.portraitMode ? surfaceGridColor.bottom : surfaceToggle.bottom
+ width: heightMapView.buttonWidth
+ text: heightSeries.flatShadingSupported ? "Show\nFlat" : "Flat not\nsupported"
+ enabled: heightSeries.flatShadingSupported
+ //! [6]
+ onClicked: {
+ if (heightSeries.flatShadingEnabled) {
+ heightSeries.flatShadingEnabled = false;
+ text = "Show\nFlat"
+ } else {
+ heightSeries.flatShadingEnabled = true;
+ text = "Show\nSmooth"
+ }
+ }
+ //! [6]
+ }
+
+ Button {
+ id: backgroundToggle
+ anchors.margins: 5
+ anchors.left: heightMapView.portraitMode ? parent.left : flatShadingToggle.right
+ anchors.top: heightMapView.portraitMode ? flatShadingToggle.bottom
+ : surfaceToggle.bottom
+ width: heightMapView.buttonWidth
+ text: "Hide\nBackground"
+ onClicked: {
+ if (surfacePlot.theme.backgroundEnabled) {
+ surfacePlot.theme.backgroundEnabled = false;
+ text = "Show\nBackground";
+ } else {
+ surfacePlot.theme.backgroundEnabled = true;
+ text = "Hide\nBackground";
+ }
+ }
+ }
+
+ Button {
+ id: gridToggle
+ anchors.margins: 5
+ anchors.left: backgroundToggle.right
+ anchors.top: heightMapView.portraitMode ? flatShadingToggle.bottom
+ : surfaceToggle.bottom
+ width: heightMapView.buttonWidth
+ text: "Hide\nGrid"
+ onClicked: {
+ if (surfacePlot.theme.gridEnabled) {
+ surfacePlot.theme.gridEnabled = false;
+ text = "Show\nGrid";
+ } else {
+ surfacePlot.theme.gridEnabled = true;
+ text = "Hide\nGrid";
+ }
+ }
+ }
+ }
+
+ function checkState() {
+ if (heightSeries.drawMode & Surface3DSeries.DrawSurface)
+ surfaceToggle.text = "Hide\nSurface";
+ else
+ surfaceToggle.text = "Show\nSurface";
+
+ if (heightSeries.drawMode & Surface3DSeries.DrawWireframe)
+ surfaceGridToggle.text = "Hide Surface\nGrid";
+ else
+ surfaceGridToggle.text = "Show Surface\nGrid";
+ }
+}
diff --git a/examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/SurfaceOscilloscope.qml b/examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/SurfaceOscilloscope.qml
new file mode 100644
index 000000000..a5ff8acd9
--- /dev/null
+++ b/examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/SurfaceOscilloscope.qml
@@ -0,0 +1,430 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+import QtDataVisualization
+//! [0]
+import SurfaceGallery
+//! [0]
+
+Item {
+ id: oscilloscopeView
+
+ property int sampleColumns: sampleSlider.value
+ property int sampleRows: sampleColumns / 2
+ property int sampleCache: 24
+
+ required property bool portraitMode
+
+ property real controlWidth: oscilloscopeView.portraitMode ? oscilloscopeView.width - 10
+ : oscilloscopeView.width / 4 - 6.66
+
+ property real buttonWidth: oscilloscopeView.portraitMode ? oscilloscopeView.width - 10
+ : oscilloscopeView.width / 3 - 7.5
+
+ onSampleRowsChanged: {
+ surfaceSeries.selectedPoint = surfaceSeries.invalidSelectionPosition
+ generateData()
+ }
+
+ //![1]
+ DataSource {
+ id: dataSource
+ }
+ //![1]
+
+ Item {
+ id: dataView
+ anchors.bottom: parent.bottom
+ width: parent.width
+ height: parent.height - controlArea.height
+
+ //! [2]
+ Surface3D {
+ id: surfaceGraph
+ anchors.fill: parent
+
+ Surface3DSeries {
+ id: surfaceSeries
+ drawMode: Surface3DSeries.DrawSurfaceAndWireframe
+ itemLabelFormat: "@xLabel, @zLabel: @yLabel"
+ //! [2]
+ //! [3]
+ itemLabelVisible: false
+ //! [3]
+
+ //! [4]
+ onItemLabelChanged: {
+ if (surfaceSeries.selectedPoint == surfaceSeries.invalidSelectionPosition)
+ selectionText.text = "No selection";
+ else
+ selectionText.text = surfaceSeries.itemLabel;
+ }
+ //! [4]
+ }
+
+ shadowQuality: AbstractGraph3D.ShadowQualityNone
+ selectionMode: AbstractGraph3D.SelectionSlice | AbstractGraph3D.SelectionItemAndColumn
+ theme: Theme3D {
+ type: Theme3D.ThemeIsabelle
+ backgroundEnabled: false
+ }
+ scene.activeCamera.cameraPreset: Camera3D.CameraPresetFrontHigh
+
+ axisX.labelFormat: "%d ms"
+ axisY.labelFormat: "%d W"
+ axisZ.labelFormat: "%d mV"
+ axisX.min: 0
+ axisY.min: 0
+ axisZ.min: 0
+ axisX.max: 1000
+ axisY.max: 100
+ axisZ.max: 800
+ axisX.segmentCount: 4
+ axisY.segmentCount: 4
+ axisZ.segmentCount: 4
+ measureFps: true
+ renderingMode: AbstractGraph3D.RenderDirectToBackground
+
+ onCurrentFpsChanged: (fps)=> {
+ if (fps > 10)
+ fpsText.text = "FPS: " + Math.round(surfaceGraph.currentFps);
+ else
+ fpsText.text = "FPS: " + Math.round(surfaceGraph.currentFps * 10.0) / 10.0;
+ }
+
+ //! [5]
+ Component.onCompleted: oscilloscopeView.generateData();
+ //! [5]
+ }
+ }
+
+ //! [7]
+ Timer {
+ id: refreshTimer
+ interval: 1000 / frequencySlider.value
+ running: true
+ repeat: true
+ onTriggered: dataSource.update(surfaceSeries);
+ }
+ //! [7]
+
+ Rectangle {
+ id: controlArea
+ height: oscilloscopeView.portraitMode ? flatShadingToggle.implicitHeight * 7
+ : flatShadingToggle.implicitHeight * 2
+ anchors.left: parent.left
+ anchors.top: parent.top
+ anchors.right: parent.right
+ color: surfaceGraph.theme.backgroundColor
+
+ // Samples
+ Rectangle {
+ id: samples
+ width: oscilloscopeView.controlWidth
+ height: flatShadingToggle.implicitHeight
+ anchors.left: parent.left
+ anchors.top: parent.top
+ anchors.margins: 5
+
+ color: surfaceGraph.theme.windowColor
+ border.color: surfaceGraph.theme.gridLineColor
+ border.width: 1
+ radius: 4
+
+ Row {
+ anchors.centerIn: parent
+ spacing: 10
+ padding: 5
+
+ Slider {
+ id: sampleSlider
+ from: oscilloscopeView.sampleCache * 2
+ to: from * 10
+ stepSize: oscilloscopeView.sampleCache
+
+ background: Rectangle {
+ x: sampleSlider.leftPadding
+ y: sampleSlider.topPadding + sampleSlider.availableHeight / 2
+ - height / 2
+ implicitWidth: 200
+ implicitHeight: 4
+ width: sampleSlider.availableWidth
+ height: implicitHeight
+ radius: 2
+ color: surfaceGraph.theme.gridLineColor
+
+ Rectangle {
+ width: sampleSlider.visualPosition * parent.width
+ height: parent.height
+ color: surfaceGraph.theme.labelTextColor
+ radius: 2
+ }
+ }
+
+ handle: Rectangle {
+ x: sampleSlider.leftPadding + sampleSlider.visualPosition
+ * (sampleSlider.availableWidth - width)
+ y: sampleSlider.topPadding + sampleSlider.availableHeight / 2
+ - height / 2
+ implicitWidth: 20
+ implicitHeight: 20
+ radius: 10
+ color: sampleSlider.pressed ? surfaceGraph.theme.gridLineColor
+ : surfaceGraph.theme.windowColor
+ border.color: sampleSlider.pressed ? surfaceGraph.theme.labelTextColor
+ : surfaceGraph.theme.gridLineColor
+ }
+
+ Component.onCompleted: value = from;
+ }
+
+ Text {
+ id: samplesText
+ text: "Samples: " + (oscilloscopeView.sampleRows * oscilloscopeView.sampleColumns)
+ verticalAlignment: Text.AlignVCenter
+ horizontalAlignment: Text.AlignHCenter
+ color: surfaceGraph.theme.labelTextColor
+ }
+ }
+ }
+
+ // Frequency
+ Rectangle {
+ id: frequency
+ width: oscilloscopeView.controlWidth
+ height: flatShadingToggle.implicitHeight
+ anchors.left: oscilloscopeView.portraitMode ? parent.left : samples.right
+ anchors.top: oscilloscopeView.portraitMode ? samples.bottom : parent.top
+ anchors.margins: 5
+
+ color: surfaceGraph.theme.windowColor
+ border.color: surfaceGraph.theme.gridLineColor
+ border.width: 1
+ radius: 4
+
+ Row {
+ anchors.centerIn: parent
+ spacing: 10
+ padding: 5
+
+ Slider {
+ id: frequencySlider
+ from: 2
+ to: 60
+ stepSize: 2
+ value: 30
+
+ background: Rectangle {
+ x: frequencySlider.leftPadding
+ y: frequencySlider.topPadding + frequencySlider.availableHeight / 2
+ - height / 2
+ implicitWidth: 200
+ implicitHeight: 4
+ width: frequencySlider.availableWidth
+ height: implicitHeight
+ radius: 2
+ color: surfaceGraph.theme.gridLineColor
+
+ Rectangle {
+ width: frequencySlider.visualPosition * parent.width
+ height: parent.height
+ color: surfaceGraph.theme.labelTextColor
+ radius: 2
+ }
+ }
+
+ handle: Rectangle {
+ x: frequencySlider.leftPadding + frequencySlider.visualPosition
+ * (frequencySlider.availableWidth - width)
+ y: frequencySlider.topPadding + frequencySlider.availableHeight / 2
+ - height / 2
+ implicitWidth: 20
+ implicitHeight: 20
+ radius: 10
+ color: frequencySlider.pressed ? surfaceGraph.theme.gridLineColor
+ : surfaceGraph.theme.windowColor
+ border.color: frequencySlider.pressed ? surfaceGraph.theme.labelTextColor
+ : surfaceGraph.theme.gridLineColor
+ }
+ }
+
+ Text {
+ id: frequencyText
+ text: "Freq: " + frequencySlider.value + " Hz"
+ verticalAlignment: Text.AlignVCenter
+ horizontalAlignment: Text.AlignHCenter
+ color: surfaceGraph.theme.labelTextColor
+ }
+ }
+ }
+
+ // FPS
+ Rectangle {
+ id: fpsindicator
+ width: oscilloscopeView.controlWidth
+ height: flatShadingToggle.implicitHeight
+ anchors.left: oscilloscopeView.portraitMode ? parent.left : frequency.right
+ anchors.top: oscilloscopeView.portraitMode ? frequency.bottom : parent.top
+ anchors.margins: 5
+
+ color: surfaceGraph.theme.windowColor
+ border.color: surfaceGraph.theme.gridLineColor
+ border.width: 1
+ radius: 4
+
+ Text {
+ id: fpsText
+ anchors.fill: parent
+ verticalAlignment: Text.AlignVCenter
+ horizontalAlignment: Text.AlignHCenter
+ color: surfaceGraph.theme.labelTextColor
+ }
+ }
+
+ // Selection
+ Rectangle {
+ id: selection
+ width: oscilloscopeView.controlWidth
+ height: flatShadingToggle.implicitHeight
+ anchors.left: oscilloscopeView.portraitMode ? parent.left : fpsindicator.right
+ anchors.top: oscilloscopeView.portraitMode ? fpsindicator.bottom : parent.top
+ anchors.margins: 5
+
+ color: surfaceGraph.theme.windowColor
+ border.color: surfaceGraph.theme.gridLineColor
+ border.width: 1
+ radius: 4
+
+ Text {
+ id: selectionText
+ anchors.fill: parent
+ verticalAlignment: Text.AlignVCenter
+ horizontalAlignment: Text.AlignHCenter
+ text: "No selection"
+ color: surfaceGraph.theme.labelTextColor
+ }
+ }
+
+ // Flat shading
+ Button {
+ id: flatShadingToggle
+ width: oscilloscopeView.buttonWidth
+ anchors.left: parent.left
+ anchors.top: selection.bottom
+ anchors.margins: 5
+
+ text: surfaceSeries.flatShadingSupported ? "Show\nSmooth" : "Flat\nnot supported"
+ enabled: surfaceSeries.flatShadingSupported
+
+ onClicked: {
+ if (surfaceSeries.flatShadingEnabled) {
+ surfaceSeries.flatShadingEnabled = false;
+ text = "Show\nFlat"
+ } else {
+ surfaceSeries.flatShadingEnabled = true;
+ text = "Show\nSmooth"
+ }
+ }
+
+ contentItem: Text {
+ text: flatShadingToggle.text
+ opacity: flatShadingToggle.enabled ? 1.0 : 0.3
+ color: surfaceGraph.theme.labelTextColor
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ elide: Text.ElideRight
+ }
+
+ background: Rectangle {
+ opacity: flatShadingToggle.enabled ? 1 : 0.3
+ color: flatShadingToggle.down ? surfaceGraph.theme.gridLineColor
+ : surfaceGraph.theme.windowColor
+ border.color: flatShadingToggle.down ? surfaceGraph.theme.labelTextColor
+ : surfaceGraph.theme.gridLineColor
+ border.width: 1
+ radius: 2
+ }
+ }
+
+ // Surface grid
+ Button {
+ id: surfaceGridToggle
+ width: oscilloscopeView.buttonWidth
+ anchors.left: oscilloscopeView.portraitMode ? parent.left : flatShadingToggle.right
+ anchors.top: oscilloscopeView.portraitMode ? flatShadingToggle.bottom : selection.bottom
+ anchors.margins: 5
+
+ text: "Hide\nSurface Grid"
+
+ onClicked: {
+ if (surfaceSeries.drawMode & Surface3DSeries.DrawWireframe) {
+ surfaceSeries.drawMode &= ~Surface3DSeries.DrawWireframe;
+ text = "Show\nSurface Grid";
+ } else {
+ surfaceSeries.drawMode |= Surface3DSeries.DrawWireframe;
+ text = "Hid\nSurface Grid";
+ }
+ }
+
+ contentItem: Text {
+ text: surfaceGridToggle.text
+ color: surfaceGraph.theme.labelTextColor
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ elide: Text.ElideRight
+ }
+
+ background: Rectangle {
+ color: surfaceGridToggle.down ? surfaceGraph.theme.gridLineColor
+ : surfaceGraph.theme.windowColor
+ border.color: surfaceGridToggle.down ? surfaceGraph.theme.labelTextColor
+ : surfaceGraph.theme.gridLineColor
+ border.width: 1
+ radius: 2
+ }
+ }
+
+ // Exit
+ Button {
+ id: exitButton
+ width: oscilloscopeView.buttonWidth
+ height: surfaceGridToggle.height
+ anchors.left: oscilloscopeView.portraitMode ? parent.left : surfaceGridToggle.right
+ anchors.top: oscilloscopeView.portraitMode ? surfaceGridToggle.bottom : selection.bottom
+ anchors.margins: 5
+
+ text: "Quit"
+
+ onClicked: Qt.quit();
+
+ contentItem: Text {
+ text: exitButton.text
+ color: surfaceGraph.theme.labelTextColor
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ elide: Text.ElideRight
+ }
+
+ background: Rectangle {
+ color: exitButton.down ? surfaceGraph.theme.gridLineColor
+ : surfaceGraph.theme.windowColor
+ border.color: exitButton.down ? surfaceGraph.theme.labelTextColor
+ : surfaceGraph.theme.gridLineColor
+ border.width: 1
+ radius: 2
+ }
+ }
+ }
+
+ //! [6]
+ function generateData() {
+ dataSource.generateData(oscilloscopeView.sampleCache, oscilloscopeView.sampleRows,
+ oscilloscopeView.sampleColumns,
+ surfaceGraph.axisX.min, surfaceGraph.axisX.max,
+ surfaceGraph.axisY.min, surfaceGraph.axisY.max,
+ surfaceGraph.axisZ.min, surfaceGraph.axisZ.max);
+ }
+ //! [6]
+}
diff --git a/examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/SurfaceSpectrogram.qml b/examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/SurfaceSpectrogram.qml
new file mode 100644
index 000000000..cedb9850a
--- /dev/null
+++ b/examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/SurfaceSpectrogram.qml
@@ -0,0 +1,272 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+import QtDataVisualization
+
+Rectangle {
+ id: spectrogramView
+ color: surfaceGraph.theme.windowColor
+
+ required property bool portraitMode
+
+ property real buttonWidth: spectrogramView.portraitMode ? (spectrogramView.width - 35) / 2
+ : (spectrogramView.width - 50) / 5
+
+ SpectrogramData {
+ id: surfaceData
+ }
+
+ Item {
+ id: surfaceView
+ anchors.top: buttons.bottom
+ anchors.left: parent.left
+ anchors.right: legend.left
+ anchors.bottom: parent.bottom
+
+ ColorGradient {
+ id: surfaceGradient
+ ColorGradientStop { position: 0.0; color: "black" }
+ ColorGradientStop { position: 0.2; color: "red" }
+ ColorGradientStop { position: 0.5; color: "blue" }
+ ColorGradientStop { position: 0.8; color: "yellow" }
+ ColorGradientStop { position: 1.0; color: "white" }
+ }
+
+ ValueAxis3D {
+ id: xAxis
+ segmentCount: 8
+ labelFormat: "%i\u00B0"
+ title: "Angle"
+ titleVisible: true
+ titleFixed: false
+ }
+
+ ValueAxis3D {
+ id: yAxis
+ segmentCount: 8
+ labelFormat: "%i \%"
+ title: "Value"
+ titleVisible: true
+ labelAutoRotation: 0
+ titleFixed: false
+ }
+
+ ValueAxis3D {
+ id: zAxis
+ segmentCount: 5
+ labelFormat: "%i nm"
+ title: "Radius"
+ titleVisible: true
+ titleFixed: false
+ }
+
+ Theme3D {
+ id: customTheme
+ type: Theme3D.ThemeQt
+ // Don't show specular spotlight as we don't want it to distort the colors
+ lightStrength: 0.0
+ ambientLightStrength: 1.0
+ backgroundEnabled: false
+ gridLineColor: "#AAAAAA"
+ windowColor: "#EEEEEE"
+ }
+
+ //! [0]
+ Surface3D {
+ id: surfaceGraph
+ anchors.fill: parent
+
+ Surface3DSeries {
+ id: surfaceSeries
+ flatShadingEnabled: false
+ drawMode: Surface3DSeries.DrawSurface
+ baseGradient: surfaceGradient
+ colorStyle: Theme3D.ColorStyleRangeGradient
+ itemLabelFormat: "(@xLabel, @zLabel): @yLabel"
+
+ ItemModelSurfaceDataProxy {
+ itemModel: surfaceData.model
+ rowRole: "radius"
+ columnRole: "angle"
+ yPosRole: "value"
+ }
+ }
+ //! [0]
+
+ //! [1]
+ // Remove the perspective and view the graph from top down to achieve 2D effect
+ orthoProjection: true
+ scene.activeCamera.cameraPreset: Camera3D.CameraPresetDirectlyAbove
+ //! [1]
+
+ //! [2]
+ flipHorizontalGrid: true
+ //! [2]
+
+ //! [4]
+ radialLabelOffset: 0.01
+ //! [4]
+
+ //! [5]
+ inputHandler: TouchInputHandler3D {
+ rotationEnabled: !surfaceGraph.orthoProjection
+ }
+ //! [5]
+
+ theme: customTheme
+ shadowQuality: AbstractGraph3D.ShadowQualityNone
+ selectionMode: AbstractGraph3D.SelectionSlice | AbstractGraph3D.SelectionItemAndColumn
+ axisX: xAxis
+ axisY: yAxis
+ axisZ: zAxis
+
+ aspectRatio: 1.0
+ horizontalAspectRatio: 1.0
+ scene.activeCamera.zoomLevel: 140
+ }
+ }
+
+ Item {
+ id: buttons
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ height: spectrogramView.portraitMode ? (polarToggle.height + 10) * 3
+ : polarToggle.height + 30
+ anchors.margins: 10
+
+ //! [3]
+ Button {
+ id: polarToggle
+ anchors.margins: 5
+ anchors.left: parent.left
+ anchors.top: parent.top
+ width: spectrogramView.buttonWidth // Calculated elsewhere based on screen orientation
+ text: "Switch to\n" + (surfaceGraph.polar ? "cartesian" : "polar")
+ onClicked: surfaceGraph.polar = !surfaceGraph.polar;
+ }
+ //! [3]
+
+ Button {
+ id: orthoToggle
+ anchors.margins: 5
+ anchors.left: polarToggle.right
+ anchors.top: parent.top
+ width: spectrogramView.buttonWidth
+ text: "Switch to\n" + (surfaceGraph.orthoProjection ? "perspective" : "orthographic")
+ onClicked: {
+ if (surfaceGraph.orthoProjection) {
+ surfaceGraph.orthoProjection = false;
+ xAxis.labelAutoRotation = 30;
+ yAxis.labelAutoRotation = 30;
+ zAxis.labelAutoRotation = 30;
+ } else {
+ surfaceGraph.orthoProjection = true;
+ surfaceGraph.scene.activeCamera.cameraPreset
+ = Camera3D.CameraPresetDirectlyAbove;
+ surfaceSeries.drawMode &= ~Surface3DSeries.DrawWireframe;
+ xAxis.labelAutoRotation = 0;
+ yAxis.labelAutoRotation = 0;
+ zAxis.labelAutoRotation = 0;
+ }
+ }
+ }
+
+ Button {
+ id: flipGridToggle
+ anchors.margins: 5
+ anchors.left: spectrogramView.portraitMode ? parent.left : orthoToggle.right
+ anchors.top: spectrogramView.portraitMode ? orthoToggle.bottom : parent.top
+ width: spectrogramView.buttonWidth
+ text: "Toggle axis\ngrid on top"
+ onClicked: surfaceGraph.flipHorizontalGrid = !surfaceGraph.flipHorizontalGrid;
+ }
+
+ Button {
+ id: labelOffsetToggle
+ anchors.margins: 5
+ anchors.left: flipGridToggle.right
+ anchors.top: spectrogramView.portraitMode ? orthoToggle.bottom : parent.top
+ width: spectrogramView.buttonWidth
+ text: "Toggle radial\nlabel position"
+ visible: surfaceGraph.polar
+ onClicked: {
+ if (surfaceGraph.radialLabelOffset >= 1.0)
+ surfaceGraph.radialLabelOffset = 0.01;
+ else
+ surfaceGraph.radialLabelOffset = 1.0;
+ }
+ }
+
+ Button {
+ id: surfaceGridToggle
+ anchors.margins: 5
+ anchors.left: spectrogramView.portraitMode ? (labelOffsetToggle.visible ? parent.left
+ : flipGridToggle.right)
+ : (labelOffsetToggle.visible ? labelOffsetToggle.right
+ : flipGridToggle.right)
+ anchors.top: spectrogramView.portraitMode ? (labelOffsetToggle.visible ? labelOffsetToggle.bottom
+ : orthoToggle.bottom)
+ : parent.top
+ width: spectrogramView.buttonWidth
+ text: "Toggle\nsurface grid"
+ visible: !surfaceGraph.orthoProjection
+ onClicked: {
+ if (surfaceSeries.drawMode & Surface3DSeries.DrawWireframe)
+ surfaceSeries.drawMode &= ~Surface3DSeries.DrawWireframe;
+ else
+ surfaceSeries.drawMode |= Surface3DSeries.DrawWireframe;
+ }
+ }
+ }
+
+ Item {
+ id: legend
+ anchors.bottom: parent.bottom
+ anchors.top: buttons.bottom
+ anchors.right: parent.right
+ width: spectrogramView.portraitMode ? 100 : 125
+
+ Rectangle {
+ id: gradient
+ anchors.margins: 20
+ anchors.bottom: legend.bottom
+ anchors.top: legend.top
+ anchors.right: legend.right
+ border.color: "black"
+ border.width: 1
+ width: spectrogramView.portraitMode ? 25 : 50
+ rotation: 180
+ gradient: Gradient {
+ GradientStop { position: 0.0; color: "black" }
+ GradientStop { position: 0.2; color: "red" }
+ GradientStop { position: 0.5; color: "blue" }
+ GradientStop { position: 0.8; color: "yellow" }
+ GradientStop { position: 1.0; color: "white" }
+ }
+ }
+
+ Text {
+ anchors.verticalCenter: gradient.bottom
+ anchors.right: gradient.left
+ anchors.margins: 2
+ text: surfaceGraph.axisY.min + "%"
+ }
+
+ Text {
+ anchors.verticalCenter: gradient.verticalCenter
+ anchors.right: gradient.left
+ anchors.margins: 2
+ text: (surfaceGraph.axisY.max + surfaceGraph.axisY.min) / 2 + "%"
+ }
+
+ Text {
+ anchors.verticalCenter: gradient.top
+ anchors.right: gradient.left
+ anchors.margins: 2
+ text: surfaceGraph.axisY.max + "%"
+ }
+ }
+}
diff --git a/examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/heightmap.png b/examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/heightmap.png
new file mode 100644
index 000000000..02f41230a
--- /dev/null
+++ b/examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/heightmap.png
Binary files differ
diff --git a/examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/main.qml b/examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/main.qml
new file mode 100644
index 000000000..2d0b82dba
--- /dev/null
+++ b/examples/datavisualization/qmlsurfacegallery/qml/qmlsurfacegallery/main.qml
@@ -0,0 +1,57 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+
+Item {
+ id: mainView
+ width: 1280
+ height: 1024
+ visible: true
+
+ property bool portraitMode: width < height
+
+ TabBar {
+ id: tabBar
+ width: parent.width
+
+ TabButton {
+ text: "Height Map"
+ }
+
+ TabButton {
+ text: "Spectrogram"
+ }
+
+ TabButton {
+ text: "Oscilloscope"
+ }
+ }
+
+ StackLayout {
+ anchors.top: tabBar.bottom
+ anchors.bottom: parent.bottom
+ width: parent.width
+ currentIndex: tabBar.currentIndex
+
+ SurfaceHeightMap {
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+ portraitMode: mainView.portraitMode
+ }
+
+ SurfaceSpectrogram {
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+ portraitMode: mainView.portraitMode
+ }
+
+ SurfaceOscilloscope {
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+ portraitMode: mainView.portraitMode
+ }
+ }
+}
diff --git a/examples/datavisualization/qmlsurfacegallery/qmlsurfacegallery.pyproject b/examples/datavisualization/qmlsurfacegallery/qmlsurfacegallery.pyproject
new file mode 100644
index 000000000..afe8c179b
--- /dev/null
+++ b/examples/datavisualization/qmlsurfacegallery/qmlsurfacegallery.pyproject
@@ -0,0 +1,10 @@
+{
+ "files": ["datasource.py",
+ "main.py",
+ "qmlsurfacegallery.qrc",
+ "qml/qmlsurfacegallery/SpectrogramData.qml",
+ "qml/qmlsurfacegallery/SurfaceHeightMap.qml",
+ "qml/qmlsurfacegallery/SurfaceOscilloscope.qml",
+ "qml/qmlsurfacegallery/SurfaceSpectrogram.qml",
+ "qml/qmlsurfacegallery/main.qml"]
+}
diff --git a/examples/datavisualization/qmlsurfacegallery/qmlsurfacegallery.qrc b/examples/datavisualization/qmlsurfacegallery/qmlsurfacegallery.qrc
new file mode 100644
index 000000000..92f0f054b
--- /dev/null
+++ b/examples/datavisualization/qmlsurfacegallery/qmlsurfacegallery.qrc
@@ -0,0 +1,5 @@
+<RCC>
+ <qresource prefix="/">
+ <file>qml/qmlsurfacegallery/heightmap.png</file>
+ </qresource>
+</RCC>
diff --git a/examples/datavisualization/qmlsurfacegallery/rc_qmlsurfacegallery.py b/examples/datavisualization/qmlsurfacegallery/rc_qmlsurfacegallery.py
new file mode 100644
index 000000000..510c18aa0
--- /dev/null
+++ b/examples/datavisualization/qmlsurfacegallery/rc_qmlsurfacegallery.py
@@ -0,0 +1,39967 @@
+# Resource object code (Python 3)
+# Created by: object code
+# Created by: The Resource Compiler for Qt version 6.5.0
+# WARNING! All changes made in this file will be lost!
+
+from PySide6 import QtCore
+
+qt_resource_data = b"\
+\x00\x09\xbf\x0b\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x02\x00\x00\x00\x02\x00\x10\x06\x00\x00\x00\xa4\xe8\x08\xb9\
+\x00\x00\x01niCCPicc\x00\x00(\x91u\
+\x91;K\x03A\x14\x85\xbf$J$F,\xb4\x08b\
+\xb1E\x14\x0b\x85\xa0 \x82\x8d\xc6\x22M\x90\x10#\xf8\
+j\x925\x0f!\x8fe7A\x82\xad`c\x11\xb0\x10\
+m|\x15\xfe\x03m\x05[\x05AP\x04\x11;{_\
+\x8d\x84\xf5\x8e+D$\x99e\xf6~\x9c\x99s\x999\
+\x03\xeeh^/Xm!(\x14\xcbf<\x12\xd6\x16\
+\x16\x974\xef\x0bn<\xf8\x080\x99\xd4-c:\x16\
+\x8b\xd2r|\xde\xe1R\xf5vD\xf5j\xbd\xaf\xe9\xe8\
+\x5cM[:\xb8:\x84\xc7u\xc3,\x0bO\x09G\xd7\
+\xcb\x86\xe2m\xe1^=\x97\x5c\x15>\x14\x1e6\xe5\x80\
+\xc2WJO9\xfc\xac8\xeb\xf0\xbbb3\x11\x9f\x01\
+\xb7\xea\xa9e\xffp\xea\x0f\xeb9\xb3 <$\x1c,\
+\xe4+\xfa\xefy\xd4M\xfc\xe9\xe2\xfc\x9c\xd4>\x99\xfd\
+X\xc4\x89\x10F#E\x855\xf2\x94\x19\x91Z\x94\xcc\
+\x9a\xfbB?\xbeYJ\xe2\xd1\xe5oP\xc5\x14G\x96\
+\x9cx\x87E\xadH\xd7\xb4\xd4\x8c\xe8i\xf9\xf2TU\
+\xee\xff\xf3\xb42c\xa3Nw\x7f\x18\xda\x9fl\xfbm\
+\x00\xbc;P\xaf\xd9\xf6\xd7\x91m\xd7\x8f\xc1\xf3\x08\x17\
+\xc5\x86\xbf$9M|\x88^kh\xc1\x03\xe8\xde\x84\
+\xb3\xcb\x86\x96\xda\x85\xf3-\x08<\x18I3\xf9#y\
+d\xba3\x19x=\x85\xaeE\xe8\xb9\x01\xdf\xb2\x93\xd5\
+\xef:'\xf7\x90\xd8\x90'\xba\x86\xbd}\x18\x94\xfd\xdd\
++\xdf\xe3.g\xfd\x87\xf3\xce\xbb\x00\x00\x00\x09pH\
+Ys\x00\x00\x0b\x11\x00\x00\x0b\x11\x01\x7fd_\x91\x00\
+\x00\x02\xcbtEXtRaw profi\
+le type exif\x00\x0aex\
+if\x0a 334\x0a4578\
+6966000049492a00\
+080000000a001201\
+0300010000000100\
+00001a0105000100\
+0000\x0a860000001b0\
+10500010000008e0\
+0000028010300010\
+0000002000000310\
+1020020000000\x0a96\
+0000003201020013\
+000000b600000046\
+4703000100000001\
+0000004947030001\
+000000\x0a140000006\
+987040001000000d\
+e000000039002001\
+3000000ca0000000\
+000000000000000\x0a\
+0000000000000000\
+000000006461726b\
+7461626c65206461\
+726b7461626c652d\
+322e342e\x0a322d312\
+e666332373230313\
+83a30343a3036203\
+0373a32383a30360\
+0323031383a30343\
+a\x0a30322031343a34\
+393a343600050003\
+9002001300000020\
+0100000490020013\
+0000003401\x0a00000\
+1a00300010000000\
+100000002a004000\
+1000000000800000\
+3a00400010000000\
+008\x0a000000000000\
+323031383a30343a\
+30322031343a3439\
+3a34360032303138\
+3a30343a3032\x0a203\
+1343a34393a34360\
+0\x0a22\xf6\xfb\x00\x00\x00ZtEXtRa\
+w profile type i\
+ptc\x00\x0aiptc\x0a \
+26\x0a50686f746f736\
+86f7020332e30003\
+842494d040400000\
+0000000\x0a\xc7\xd1i\xdc\x00\x00\x17U\
+tEXtRaw profile \
+type xmp\x00\x0axmp\x0a \
+ 2928\x0a3c3f78706\
+1636b65742062656\
+7696e3d22efbbbf2\
+22069643d2257354\
+d304d7043656869\x0a\
+487a7265537a4e54\
+637a6b633964223f\
+3e0a3c783a786d70\
+6d65746120786d6c\
+6e733a78\x0a3d22616\
+46f62653a6e733a6\
+d6574612f2220783\
+a786d70746b3d225\
+84d5020436f72652\
+0\x0a342e342e302d45\
+78697632223e0a20\
+3c7264663a524446\
+20786d6c6e733a72\
+64663d2268\x0a74747\
+03a2f2f7777772e7\
+7332e6f72672f313\
+939392f30322f323\
+22d7264662d73796\
+e74\x0a61782d6e7323\
+223e0a20203c7264\
+663a446573637269\
+7074696f6e207264\
+663a61626f75\x0a743\
+d22220a202020207\
+86d6c6e733a74696\
+6663d22687474703\
+a2f2f6e732e61646\
+f6265\x0a2e636f6d2f\
+746966662f312e30\
+2f220a2020202078\
+6d6c6e733a786d70\
+3d22687474703a\x0a2\
+f2f6e732e61646f6\
+2652e636f6d2f786\
+1702f312e302f220\
+a20202020786d6c6\
+e733a65\x0a7869663d\
+22687474703a2f2f\
+6e732e61646f6265\
+2e636f6d2f657869\
+662f312e302f220a\
+\x0a202020746966663\
+a595265736f6c757\
+4696f6e3d2230202\
+f2030220a2020207\
+46966663a\x0a585265\
+736f6c7574696f6e\
+3d2230202f203022\
+0a20202074696666\
+3a526174696e673d\
+22\x0a31220a2020207\
+46966663a5261746\
+96e6750657263656\
+e743d223230220a2\
+02020746966\x0a663a\
+4f7269656e746174\
+696f6e3d2231220a\
+202020746966663a\
+5265736f6c757469\
+6f6e\x0a556e69743d2\
+232220a202020746\
+966663a446174655\
+4696d654f7269676\
+96e616c3d2232\x0a30\
+31383a30343a3032\
+2031343a34393a34\
+36220a202020786d\
+703a4d6f64696679\
+446174\x0a653d22323\
+031383a30343a303\
+62030373a32383a3\
+036220a202020786\
+d703a4372656174\x0a\
+6f72546f6f6c3d22\
+6461726b7461626c\
+65206461726b7461\
+626c652d322e342e\
+322d312e\x0a6663323\
+7220a20202065786\
+9663a44617465546\
+96d654f726967696\
+e616c3d223230313\
+8\x0a3a30343a303220\
+31343a34393a3436\
+220a202020657869\
+663a446174655469\
+6d65446967\x0a69746\
+97a65643d2232303\
+1383a30343a30322\
+031343a34393a343\
+6220a20202065786\
+966\x0a3a436f6c6f72\
+53706163653d2231\
+220a202020657869\
+663a506978656c58\
+44696d656e73\x0a696\
+f6e3d22323034382\
+20a2020206578696\
+63a506978656c594\
+4696d656e73696f6\
+e3d22\x0a3230343822\
+2f3e0a203c2f7264\
+663a5244463e0a3c\
+2f783a786d706d65\
+74613e0a202020\x0a2\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0202020\x0a20202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+\x0a202020202020202\
+0202020202020202\
+0202020202020202\
+0200a20202020202\
+020202020\x0a202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+20\x0a2020202020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+02020202020\x0a2020\
+2020202020202020\
+2020202020202020\
+0a20202020202020\
+2020202020202020\
+2020\x0a20202020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0202020202020\x0a20\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+202020\x0a202020202\
+02020202020200a2\
+0202020202020202\
+0202020202020202\
+020202020202020\x0a\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+20202020\x0a2020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0\x0a202020200a2020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020202020\x0a20202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+020\x0a202020202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020200a2020\x0a202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+02020\x0a2020202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+20202020202020\x0a2\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0200a20202020202\
+0202020\x0a20202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+\x0a202020202020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+020202020\x0a202020\
+2020202020202020\
+2020202020202020\
+0a20202020202020\
+2020202020202020\
+20\x0a2020202020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+02020202020\x0a2020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020\x0a20202020202\
+02020202020200a2\
+0202020202020202\
+0202020202020202\
+0202020202020\x0a20\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+202020\x0a202020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+020202020202020\x0a\
+20202020200a2020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+20202020\x0a2020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0\x0a20202020202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020200a20\x0a20202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+020\x0a202020202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+202020202020\x0a202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0200a20202020202\
+02020\x0a2020202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+20202020202020\x0a2\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0202020\x0a20202020\
+2020202020202020\
+2020202020202020\
+0a20202020202020\
+2020202020202020\
+\x0a202020202020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+020202020\x0a202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+20\x0a2020202020202\
+02020202020200a2\
+0202020202020202\
+0202020202020202\
+02020202020\x0a2020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020\x0a20202020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0202020202020\x0a20\
+20202020200a2020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+202020\x0a202020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+020202020202020\x0a\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020200a\x0a2020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0\x0a20202020202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020202020\x0a20202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0200a20202020202\
+020\x0a202020202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+202020202020\x0a202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+02020\x0a2020202020\
+2020202020202020\
+2020202020202020\
+0a20202020202020\
+20202020202020\x0a2\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0202020\x0a20202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+\x0a202020202020202\
+02020202020200a2\
+0202020202020202\
+0202020202020202\
+020202020\x0a202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+20\x0a2020202020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+02020202020\x0a2020\
+20202020200a2020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020\x0a20202020202\
+0202020202020202\
+0202020202020202\
+0202020202020202\
+0202020202020\x0a20\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+2020202020202020\
+202020\x0a0a2020202\
+0202020202020202\
+0202020202020202\
+0202020202020200\
+a3c3f787061636b\x0a\
+657420656e643d22\
+77223f3e\x0a\xc0$8\x8d\x00\x00 \
+\x00IDATx\xdal\x9d\x09\xfc}c\xf5\xfd\xcf\
+=\x9f\xaf\xa9\x102\x961*CHR\x1aQ!4\
+ \xa4\xfe\x84\x92BR\x9a34\xaa\x90\xa2R2K\
+E%\xa59%D\xb32f(d\x88\xa4R\xa4\x10\
+\x9f{\xfe{=g\xbd\xf7\xf3t\x7fY\xafW\xa7{\
+\xbf\xf7s\xef\x19\x9ea\x0fk\xaf=\xe9\xd7\x0fl0\
+\x0c\xc3[\x84\xae\xeb\x9eT\xd0\xf5\xb7\x04n\x8d\xe3\xf7\
+\x84x\xff\xa9\x05]wxA\xd7m\x1d\xd8\xaa\xeb&\
+\x8b\x0bq\xdcS\x88\xcf\x7f2\xf0\x89x\xfdx\xa1\xbe\
+?\xb7\x9f\x10\xc7{\x03\xf7\xc4\xf1\xf1B|\xfe?B\
+|\xdf\x5cA7<B\x88\xe3\xdf\x84x\xff\x8c\x82\xae\
+\xbb\xb6\xa0\x1b\xde\x108\xa0\xeb\xe6\x97\x13\xe2\xf5MB\
+\xfc\xfba\x81C\xe3\xf7\xde!\xc4\xfbk\x07\xd6\xe9\xba\
+\xe9\x0f\x84\xf8\xfc\xc5B|\xee\x98\x82nr\xa6\x10\x9f\
+\xfb\xb3\x10\xef\xef^\xd0\x0d\xaf\x17\xe2\xf5F\x05\xddd\
+%!\xde\xff\xa1\x10\xef\x9fX\xd0\x0d\x9f\x09\x1c\x1f\xaf\
+?\x158.\x8e\xa7\x17t\xc3YB\xbc\xbe\xb0\xa0\xeb\
+\xfe\x15\xb8/\x8e\x8f.\xe8\xbaG\x14t\xdd\x82\xc0B\
+~\x7f\x99\xf8\x9d\xff'\xc4\xeb/\x05\xbe\x1c\xaf_\x1f\
+\xd8'^oU\xd0u\xaf)\xe8&o\x17\xe2\xf5\xb6\
+\x05\xdd\xe4#B\x1c\x1f\x16\xe2\xfd\x9f\x16t\xfd\xb7\x84\
+8^-\xc4\xfb\x9f\x0b\xc4\xf9M\xae\x17\xe2\xf8\x9b\xc0\
+e\xf1\xfe\x9f\x0a\xba\xe1C\x81x\xae\x0f\x7f=pn\
+\xbc~\xa3\x10\x8f\xe5f!>\xff~!>\xff\x86\x82\
+n\xb2A`\xfd:^\xe2Z\x16*\xd7sEA7\
+\x1c(\xc4q#!\xde_\x22\xb0d\x1c\xfb\x82n\xf2\
+b!^\xbeY\x88\xdf\xd93\xb0G\xbc>^\x88\xcf\
+\xadT\xd0u\x7f/\xe8\xba?\x17t\xdd\xda\x05]\xf7\
+\x98\x82\xae[\xb1\xa0\x9b\xbcG\x88\xe37\x85x\xff;\
+\x05\xdd\xe4P!^\xafU\x90\xef\x0f\x8f\x13b|\xfc\
+E\x88\xe3M\x81?\xc4\xbf\x7f(\x10\xf7\xa1_A\x88\
+\xbf\xbfT\xf0\xf8:\xac>\xe7\xee\xc6\x82\xae[\xb8\xa0\
+\x1bv\x0c\xbc,^\xff$pI\xfc\xdd7\x84\xf8\x9e\
+\xdf\x0a\xf1\xfa\xf7\x81\x1b\xe2xo \xc6\xff\xe4\x12\xc1\
+\xf3j\x938\xde]\xd0u\xf7\x14t1\x06\x84\xae\xfb\
+zA\xd7\xed\x15\x88y\xd4\xed\x1axE\x1c\x97*\x18\
+\xc7\xd1\x828\xfe\xa3\xa0\xeb\xee\x0f\xfc\xdb\xf3i\x81_\
+\xdf\x1f\xc7\xdf\x05\xae\xf7\xf7\xc5\xf3\xed~\x148\xdf\xcf\
+-\xce\xbf{ZA\xd7\xad_\xd0u\x8b\x17\xe4|\x9c\
+^\x15\xb82^\x7f]\x88\x7f\xbf\xb7\xa0\xeb\xaf\x10\xe2\
+\xfd\x1b\x02q?\x1e^$\x10\xdf7\xbf\xbf\x10\xef\x1f\
++\xc4i^#\xc4i\x9d%\xc4\xdf\x7f\xbc\xa0\xeb\xdf\
+(\xc4\xfd\xb8.\xa0qy\xa7\xd0\xcc\x93\x87\x0a\xban\
+\xd1\xc0\x22\xbe\xdf:.V\xd0u\xdf\x0b|7~g\
+W!\x8e\x9b\x07\xb6\x88\xf7\x9f\x13xv3\xee\x1e\x0c\
+<\x10\xc75\x0a\xba\xc9A\x01\xadw'\x05b>O\
+.\x08h\xbe\xbe\xbb\xa0\x9b\xbcQ\x88\xd7o,\xa8\xf3\
+n\xaf\x82.\xbe[\xa8\xf3v\xff\x82n\xf2*!^\
+?\xa3\xa0\xebV.\xa8\xe3\x99q\xbbCA7Y[\
+\x88\xf3\xbeF\xf0\xf8\xf9I\x1c\xbf[\x90\xf7\xb9\xac\xb7\
+[\xd7\xef\x9d|tr\xf4\xe4\xe88\x9e%\xc4\xfbG\
+\x16t\xdd\x0b\x0b\xba\xee\xca\x82\xae\xbb\xaa\xa0\xeb\xd6)\
+\xe8\xba\xe7\x16\xc4\x0f\x16\xe4}\x9e<[\xa8\xebJ\xb7\
+EA\xd7\xad;\xfe\xdd\xe4I\x93\xf5\xcb|\x7fuA\
+\xae\x97\xdd\xa7\x0b\xba\xe1\x09B\x1c\xdf,\xc4\xfb?/\
+\xc8\xf5\xa5[\xa1\xa0\x9b\xbcB(\xdf3\xde\xc7\xa9\xcf\
+\x83\xf1\xff\xef\x82\xfa\xdfS\x0a\xba\xc9\xc7\x85x\xfd\x89\
+\x82\xbc\x1f\x93\x97\x8c\xebH\xb7]\x81\x9e\x8b\x9e|\xfd\
+\xbb\xf5}\xde\xeb\x16t\xdd\xe3\x0b\xban\xe3\x82\xfaw\
+\x8b\x16t1F\xca|\x99\xbc`\xb2\xe5d\xcbx\xbd\
+gA7\xd9_\xa8\xcf\xb9;\xb0@\xbf\x1f\x88\xd7\x9b\
+\x17\xd4\xfb\xef\xef\x9d\xbcH\x88\xd7/(\xa8\xf3\xcc\xeb\
+\xe6d-!^\xafZ\x90\xebY\xdc\x17\xa1\xeb\xee(\
+\xa8\xffy^\x96}\xe5_u\x9f\xca\xeb\xe1:\xd9o\
+\xe6\x0br\xdd\x8d\xbdF\xc8\xf18y\xac\x10\xafW+\
+\xe8\xba\xc7\x15\xd4\xf5\x92\xf5\xd6\xdf\x9f\xe3d\x9b\x82\xae\
+\xdb\xb1\xa0\xeb^T\xd0M\xb6\x11\xfe\xc7\xf5z]\x99\
+<W\x88\xd7O(\xe8\x86\xcf\x09^\x9f~\xd7\xcc\x9f\
+\xffWP\xe7\xdf;<\xff\xf6+\xe8\xba\x0d\x0b\xba\xc9\
+*B\xf3\x5c}\x1e\xb1F\x0au~\xfdUh\xe6\x15\
+\xf3l\xd9\x82\xfc\xfda'!\xfe\xee\x85B\xbc\xff\xac\
+\x82.l\x8bC\x8b}\xa1u\xea\xba8~Fh\xd6\
+\xff/\x09\xf1\xfa\x07\x05u\xfdb\x1d\xf0\xfd\x9c,/\
+\xd4\xe77\xfcEh\xc6\xff\xec\xf3\xfacA\xd7]]\
+\xd0u\x7f)\xa8\xe3e\xd3\x82n\xb2\x89\xd0\x9c/\xf7\
+\xfdy\x05\xddd[\xa1\x0e\xa3\xe1\x83B\xfc\x9f_\x15\
+t\x93\xa7\x0aq\xbcI\x88\xe3\x89B]\x7f\xca\xfe\xf5\
+\xfbx\xfd\xd8\x82<\xaf\xc9\x0f\x858\xde#\xd4\xfdw\
+\xb2\xb1\x10\x971'\xc4\xebM\x85\xf8\xdd\xd7\x08\xf1\xfe\
+\x1b\x84f<\xb1\x1e\xbeZ\xa8\xfb\xda\xf0~\xa1\xaes\
+\xfd\xe1B\xbc\xffV!\xa6\xc9\xa7\x848\xfeT\x88\xcf\
+m.\xc4\xbf\x9f\x22\xc4\xe7_*\xc4\xfb\x1b\x0aq|\
+\x9dP\xc7\xe9\xe4\x0fB\x1cw\x10\xe2\xef\x8e\x12\xe2\xf7\
+\xcf+\xe8\xfaW\x09q\xbcJ\x88\xcf=K\x88\xe3\xc2\
+B\x1cO\x11\xbc\xcf,\x11\x7f\xff2!\x8e\xdf\x11\xe2\
+\xfd\xcf\x16\xc4\x07\x0b\xba\xfeOB\x1c\x17\x11\xe2s\xdf\
+\x17\xe2x\xaa\x10\x1f{\x8b\x10\xfb\xe4:B\x1c\xd7\x14\
+\xe2\xef\x8f+\xe8\xba\xdf\x16\xa4}0\xf9\x8bP\xc7\xeb\
+d9!\x8e7\x0b\xf1\xb9\xd7\x17t\x93\xcf\x09\xf59\
+L^.\xc4\xf1\x0e!\x8e_\x17\xe2\xf8S!\xfe\xee\
+\x90q\xbc\xa7]\xf7\xd7\x82\xfc;\x9eWwCA\x1d\
+\xdf\xef\x15\xe2\xfa\x8e\xec\x8f\xe8\x8f(\xebSY\x87\x87\
+\x03\x84\xffZ?\xdfX\xd6\xcf\xed\x03z>K\x05\x96\
+\x8e\xbf{\xa5\x10\xd7}\x9a\x10\xaf\x9f$\xc4\xbf\x7f:\
+\x10\xd7?\xbdQ\x88\xf7/\x0c\x5c\x14\xef_\x13\xf8m\
+c\xf7\x9d]\xd0\x0d\xe7\x0e\xdf\x18\xc2\xfe\x9a\xbfi\xfe\
+\xc6\xf9\x18\xcf\xc3/\x85\xf8\xdc\xb2B\xbc~\xa9\x10\xaf\
+\xbf,\xc4\xeb\xaf\x08\xf1\xf9\xc5\x84j\xc7\xcd\x1d\x1d\xf8\
+X\xbc>:\xf0\xd1\xf8\xdc\x0e\x81\x1d\xab\xdf0\xf9\xae\
+\x10\xc7\xa7\x09q~\xbf\x16\xe2\xf3o/\xe8\x86O\x0a\
+q\xdcF\x08\xfb\xe8\xc6\x87oz8\xce\x7f\xfen!\
+\xae\xe3\xb9B\xfc\xfdmB\x19\x7fG\x0e\xb1\x8f\x0f\x97\
+\x0fW\x0caWM\xdf$\xc4\xeb\x95\x86\x15\x87\x15\xeb\
+\xfa\xd3\x1f\xd2\x1f\xda\x1f\xda\xcc\x8b+\xc3\x0e\x8b\xfd~\
+\xee`!\x8e\xe7\x0aq\xbcZh\xfc\x9d\xfd\x848\xbf\
+\x8f\x15t\xc3'\x84\xf8\x9d\x95\x84z\x9f\xfa\x0d\x848\
+\xde,\xc4\xdf\x7fL\xa8\xf6\xc1\xf0\x1e!\x8e\xdf\x12\xe2\
+\xdf\xff&\xc4\xef\x1d/\xc4\xdf\xbd+\xf0\xce\xba\x9eO\
+\xee\x16\xe2\xf3\xff\x16\xe2\xfa\xbf'x\xb9\x9b\xd4\xfb1\
+\x7f\xab\x10\xc7\xd5\xe6W\x9f\x8f\xfdhz\x8b\x10\xc7\xd7\
+\x09q\xff\xe2\xee\xe9\xfeM\x97\x11\xe2\xf5o\x84\xf8\xfc\
+zB|\xffK\x848\xae'T\xfb\x95u~\xf8\xa8\
+\x10\x9f?P\x88\xd7\xff\x10\xe2\xf8\x07!\xbe\xf7.!\
+\xfe\xfd$!^?R\x88\x7f\x7f\xa5\x10\xaf\x9f \xc4\
+\xf1\x22\xa1\xfa\x8b\x93\xb7\x0a\xf1\xfa\xe3B\x1c\x9f+\xc4\
+\xef\xbe\xb2\xa0\x1b\xf6\x10\xe2\xb8\xb4\x10\xc7\xa3\x85\xf8\x9e\
+\x9f\x0bu\xde\x16;\xfa\x86jG\x0c\x8f\x15\x8a?|\
+\xf7\xa0\xfb\xb7\xa6\x10\xc7e\x848./\xc4\xf1b!\
+\x8e\x8b\x08q\xec\x858.%\xd4}cx\xbe\x10\xc7\
+#\x84Xf'\xc7\x08\xf1\xc0\x96\x0a\xe8\xc4v\x09\xec\
+\x1c\xc7\xcd\x02\xb1\x90N\xff,\xc4\xbf\x7f-pN\x1c\
+\x9f/T\xc3\xa8{s\xe0\xa08\xbe\xa7\xa0\xeb\xde\x16\
+\x88\x81\xdf\xbf?\xf0\xbe\xb8\xb0\x07\x04\x1b\xd4\x07\x14\xc3\
+\xea\x05\xc5\xb0z_A7\xf9\xac\xd0\x18L\x9f\x12\x9a\
+\x05\xf4\xd2\x82n\xd8X\x88\xf39Y\xb0\x81\xb3\xac\x07\
+\xf6\x17\xe3\xf5\x22\x05\xb9\x00t;\x05\xb8\x8e\xcd\xe2s\
+O\x16\xe2x\xa0`\x07@\xe7\xbdsA7\x5c&\xc4\
+\xf7\xffM\xa8\x06$\x0b\xef\xe4\x00!>w\xb0\xe0\x09\
+\x1f\x1b\xeepx\xe0C\xd5\x10H\x87E\xe6\xdb\xbc\x17\
+N}\xdf]\x81\xbf4\x86\x81\xb6Q9\x02\xcb\x15t\
+\xc3\xcdB|\xefk\x03\xfb\xd8q\x8a\x85c\xb2W \
+\x06N\xf7\x92\x82\xea\x08`\x88\xe30~\xab \x7f\x7f\
+\xf2.!^\xdf\x1e\xf8c\xdd\xf8\xba}\x03\xfby\x83\
+\xfb~s>\x17\x07b\xc1\xeb\xe7\x03\x0f\xc7\xe9\xdf&\
+\xc4\xf1\xb7BL\xec\xcf\x07\xceh\x0c\xf1w\x15t\xdd\
+*\x05ixN6\x13\xea\x82<}\x99P\x0d6\x02\
+(\xc5\xbc\x99\xb3!\xf2\x01;\x0e\xb1\xd0Mo\x16\xe2\
+\xef\xef\x17\xaa\x81\x91\x86.\x86\x92\x17\xb0\xee\x97\x059\
+>\x86\xdf\x0a\xf1w\x8f\x11\xea\xc2\x9c\x86\xb6\xc7S\x1a\
+\xc0\x1a\x17\x1b\xd9 }|\x0dpLO\x17\xe2\xdf\x17\
+\x11<n\xc3\xa0\x1d~.T\x03\x05C`8T\xb0\
+\x01\x13\x8e\xcdp\x92\x10\xc7O\x0b\xf1\xfe\x8aB\xfc\xdd\
+A\x05]\xf7\xcd\x82\xea0\xe0\xd0\xcb\xad\x94\x01\xb7f\
+A7\x1c#T\xc7q\xf2\x15\xa1\x06$&\xcb\x08\xf1\
+\xb9\x7f\x0a\xf1\xfe}\x01\x8e\xffr\xe0\xe4\xce\xc6\xd1\xc7\
+\xc1\x7fTA587(\x18\x0d\xd6M\x9b\x00\xd8\xef\
+\x02\xbf\xaf\x06\xd0\xfc\x1f\x85\xf8\xf7\x97\x16t\xc3aB\
+\xbc>\xab`4T\xaf\xaa\xef\xf7\xdf\x14\xe2\xf8B\xa1\
+\x1a\xe4\x93\x1b\x85x\xffA\xa1\x09\xa8\x10\xd0\xe093\
+\x9f\x1e.\xa8\xe3UnR8\x94\xe1\xdc/Y\xaeC\
+\x8e\xfc\xc9\x9eg\x0a\x14\xfd\xa1\xa0\xdeW\xdf\xcfb\x16\
+?\xdd\xeb\xd5a\x8dc\x8f\x03\xf7\xfb\x82j\xd8`p\
+\x110\xc1\x00\xb6A\x97\x8e\xeesF\xc7s\xb8Hh\
+\x0c\x22?\x9f\x5c\x9f\x1c8\xe0{\x86\xef\x0a\x8dCr\
+~A\x0d\xfc<\xb1\xa0\xeb\x96.\xc8\x00F\xf7\x9f\x82\
+\x5c''/\x13\xe2\xfdo\x17t1\x06\xfeY\xc6\xc1\
+\x83\x05\xd5\x91\xc4\x81\xe0>\x12\x18\xb8\xae\xa0:\x16K\
+\x16\xd4\x00\xe1\xe9\xc3iC\x18d\xdd\xea\xfe}\xee\x83\
+\x03\xc3\xc3\x9eB\xbc\xfebAu\xfc\x19gv\xf8x\
+\xae\xc3\x1b\xc7\x00a\x19\xa7\xf7\xd5\x000\xffM\xd6\x15\
+\xea\xb8g\x83\x9e|d\xf2\xe1\xc9\x87\x1bGg\xf6:\
+}\x9fs\xbe\xd9A\xca@%\xe3\x1f\x07\x9c\xe7\xc3}\
+^\xd4\xcfI\xa3\xe4\xe9\xe5z\x85z?p\xccl\x10\
+\x97\xf5\xf5\xf6&\xd0\xc6\xba\xe0u#\x03*\x04\xac\x96\
+/P\x80|\x5c\x8f\xf8~\x1cv\xef\x079^x\x8d\
+!N\x00\x80\xd78\xee\x9c?\x0e\xbc\x9fO\x9e\x07\x01\
+\x8e\xe5\xe3\xdb\x96/\x81\xa9UJ`\x8a\x80\x10\x01*\
+\xfe\x9e\xefs\x00 \xd7O\xe6\x11\xe7A\x00vU;\
+\xe2/\xea^\xdc\xbd\xb8y\xde\x9b\x14\xa4\xe3\x94\x81%\
+\x1bd\x93\xa7\x08\xcd\xba\xca\xbc'\x80\xe5ue\xf8\xd8\
+hXM\xee\x9a\xfcy\x22\xc3\xfb`\xc1\x81m96\
+\xbb\x0a\xcd|g=\xd9\xbb\xa0\x9b,!\xc4\xf7\xbcO\
+\xa8\xf3\xa7{dA\xae\x7f$,J \xf8C\xcd\xfd\
+!\xc0pKA\xd7mY\x90\xe3{\xb2\x8f\xd0\x04\xaa\
+\x09\xdc\xb1\xbe\xb3\xae\xedT\x90\xf3p\xb2\x9d\x10\xaf\xff\
+VP\xc7\xb1_\x0f\xbf\x17\x9aytk\xc1\xff\x1d\x1f\
+\x1cy.\xfc;\xe3\x83\xeb`\xfc\x12(a\xfc:\xb0\
+6\xfcXh\xe6\xe1\xb7\x848^)T\x87\x83u+\
+\x1dK\x1cN\xd6O\x02X'\x15t\x93\x0f\x095\x10\
+\x98\xf6\x95\xef\xc7\xe4;B\x1c\xe7\x85\xe6\xb9\xd9A\xc7\
+\x91e\x9d\xc6n\x9c|_\x88\xcb\xfa\x82\x10\xaf\x1f\x14\
+\xaa=\xd0=\xb3\xa0\x1b\xd6\x12\xe2\xdf?/\xc4\xf1\xe7\
+B\x1c\xaf\x15\xea\xfa\xdbo*\xc4\xe7\xcf\x13\xe2\xfds\
+\x0bj`\x87@\x05\x81E_\xefd\x0f\xa1\x09\xc01\
+?9\xdeY0\xee#?\x8a\xcf\x9f \xc4\xef\xbdG\
+\x88\xdbu\x87\x10\xbf\xbb\x9bP\x03l\xc3\xf1B|n\
+_!\xde\xbf\xa8\xa0\x06\xe6N(\xe8\x86\xbd\x84r?\
+\xce\x9b\xc4yO.\x17\xaa\xdd\xd2\xbd\xbc \xbfw\xb2\
+\x91\x10\xc7\x7fO\xfe5\x09;a\xf2\xf7\xc9?&\xff\
+(\x09\xa81\xb0p\xca\xe4\xe4\x89\xf6\xd3\x97y\xbc:\
+\x90]\x12?\x1b4\xf6\xfbaBcO\xed5\xce\x9f\
+\x92x9\xac\xd9odU<\xa3<\xe7o\xeb9\x87\
+\xfb\x7f@\x09\xec)0\xf3\xe4&\xd0\xf7W\xa1>G\
+\x02\xc6\xfd\xef\x03\x0a\x10\xee\x22\xf8s1?&{\x07\
+\x94\x18[T\x88\xe3\xd3\x85\xb8\x1f\x0b\x09\x8d#.;\
+Jv\xeb\xf3\x03/\xa8\xeb5\x81\xb1\xbc\xef\xbf(\xe8\
+\xa6w\x0b\x1e\xb7\xb1\xdfLv\x0a\x84\x9f0\xbdX\x88\
+\xd7\x87\x08\xcd}\xb4\x1fR\x022q\xfe\xc3s\x84\xf8\
+\xfcW\x85x}\xe4\xe8\xd8\xf7{\xf5{\xf6{\x95\xf3\
+9Vv\xdd\xdcT(\xeb\xc0\xb6Z\x07J\x00R\xfe\
+\xc8\xb6\x81\xed\x8a\xbdw\xb6\xec\xbd\xe9\xbdB\x13\xd8^\
+M\x88\xef{\xaa\x10\xc7'\xf6O\xe8c\xbd\xee\xaf\x13\
+\xe2\xb8_`\x7f'X\xc2\x9e\xed\xb7\x0c\xbc\xc0v\x9b\
+\x1c\xe4\xe5\x84\x12h\xb8\x5c~O\xff\x11!^?Z\
+\xa8\x81\xda2_\xce\xf0\xeb\xb8\x9e\xc9q\x01\xf9g\xbb\
+\x07v\xf3}8\xd8\x89\x90x\xdd\xdf\x1f\x08\x07\xbf?\
+Z\x88\xdf{k\xc1\x98\xa0{o\xfc\x9d\xfe\x8b\x7f\x9f\
+\x1c)\xc4\xe7\xbe/x\xbc^\x11\xc7\x7f\x0a%\x10y\
+\xa3\x02\x918\xf6\x93\xe7\x0bN\xb8\xc6\xef?\xfcG!\
+\xee\xdf\xe1s\x1f\x9a\xfbP\xb1\x13\xcbz>\xfd\xab\x10\
+\xbf\xf3\x8d1\x00$\xab\xa5\xd8-\x04\x00n\x15\xea\xfa\
+?\xddU\x88\xe3;\x85\xban\xe1\x87\xf6\xbb\x0b\xf1w\
+/\x12\xe2\xdf\x7fV\xd0\x0d_\x14\xe2\xdfw\x14\xea|\
+\x18\x1e%\xd4\xf5q\xd8^h\xd6\xed\xf7\x16t\xc3\x17\
+\x84\xf8\x9d\x7fx\xde9\x81\x87\xdf6,*T{p\
+\xf8\xc5\x18\x98\x196\x14\x9a\x04\x9d\xed\xfe\xe1SB]\
+\xc7\x09(t\xeb\x15t\xc3\x8b\x85\xea\xcf\x0e\xaf\x12b\
+[\x223\xdf}2\xa0H\xeaq\x81OW\x03xr\
+\x9fP#\x8e\xc3S\x84\xb8\xf1\xd7\x0a6\x80\x7f\x1a\xef\
+\xff)p\xa77\xd0X\x08'7\x08q\x83\xee\x0a\xfc\
+\xa5q\xd4\xed\xb8ff\x84\xcc*\x06*\x99\xb4?\x8f\
+\x1b\xfd\xf0\x9b\xc0\xaf\xe3\xf8\xa4\xc0\xfa%2)\x8c\xdf\
+w\x967\xa8o\xdb\xa0\xd7\x8d\xbdR\x88\xeb\xd8N\xf0\
+\x82ya\x9c\xc7K\x848\xfeMp\xc4q)o\x14\
+q=\xf3\x9b\x08\xd5!b\xc3\xe3\xc1\x0d\x8f\x17\x1aC\
+mZrW\xa3\xa3q\xb3#\xe2\xb75\x99\x19\x1cs\
+\x99\x01\xf7T\x87\xb7<\xb6G\xfa\xb8D\xdd\xb8'O\
+\x0chA\x7f\x7fA\xd7=9\xb0\xa1\x07\xecm\x8e0\
+\xbd\xa5\x1a\x08i \xc3\x5c\xd8T\xa8\x91\xf9a\x15!\
+~v\x9d\xc0\xba\x8e\xb4n\xef\x88\xf4\xf1\x8dA+s\
+iig\xba\x7f\x15\xcfu/\xc1\x91\xa5\x15\x9a\x8d\xf8\
+\x09\x81\xc7\x97\x8d\x22\x10\xef\x9f\x1c\xf8u\x93qfC\
+R~f\x7f3\x17\xc2@\xea\xd7\x0d\xc4\x00\x9c\x9e%\
+\xc4\xdf?C\x88\x7f?5\xa0\x0d\xe6u\x81\xd8\xd8\xa7\
+\xb7\x0a\xcd\xc4{t`\xd9&\x83\x22\xf3l}g|\
+\xbfg\x87h\x99\x86\x99\x82AO\xc6\xc7\x91\xcc\xe1w\
+B\x8dPvG\x14\x8c\x0e\x9a\xae\xe7\xc7\x81\x8b\xea\x06\
+;\xfd\xb2\x10\xff\xfe\xc3\x82\x1ai\xfb\x9aP\x03\x0b8\
+ \xc3g\x85\x1aY\xce\x0c\x9ex&\xb1\xe1L_\x1a\
+\x88\xfb><O\x88\xdf\xd9B\x88\xcfo%\xc4\xf1\x9d\
+\x82\x0d\x9d\x9b\x1c@{[\x9d\x8f\xc3&Bc\x10c\
+@\xfcD\x88\x7f\xff\x95\xd0\x18\x5c8\xc4\x18\xb6\xc5\x8a\
+\xf3\x82\xf7Pu@\xca\xe8\xfc\x87\xc7\xd3\x7f\xbc@>\
+\xda\x8e\xc3\xca6 \x17u\xa6\xe4\x85\xce\x00j\xa3\xd9\
+:\x10\xaf\xa7?\x0e\x5c\xd40=\x14!\x8d\x8dz8\
+.\xf0\xf7j\xf0\xf6\xdb\x091\xae\xae\x09\x5c\xeb\xf9w\
+w3\x8e\xff\x14\xb8\xb3:\x068zi0\xe1\x10\x5c\
+RP\xe7\x1f\x0e;\x86\x89\x22\xe8Z`o\x0a\xfc\xa1\
+\x99\x0f\xca\x7f\xe9~\x7fB0c\xe6\x88&\x10\xf5\xd5\
+\x82qa\xffy\xe3\xa8\x11H!S.\xb3u\xc5\x99\
+y\xd3200|\x19\x9f\xce\xb4\x0e'\x0a\x8dA\xfe\
+\xf4\xd1\xb1\x9cl-4\x99Vg\xbe\x87\x1f\x09\xcd:\
+H\xe6\xce\xcc\x1e\x02!d\xb8\x14\x86,\x81H\x05n\
+wi\xee\x0bL\x03;\x00d\xf82\xb0\xf1\xe4\x82\x1a\
+\x88 \xa3a\x03*\x1d\x85\x9a\x19\x7f\xa00(pp\
+n.\xa8\x8e\x1b\x99U\x02/|\x8e\xc0\x9f\x0d\xe1\xe1\
+j\xa1\xf9<\xeb%\x0e\xa8\xef+\x0c0\x0c\xad\x5cO\
+\xef\xb1cU\xc7\xf7\xc4\xe3{\x0c\x14q\x9e0\x0bx\
+\x9e8H8\xb4\x18\xb2\x18\xec\x04\x18q\xc8\x09\x18p\
+\xfe8R80\xdc_\xbe\xb7ev-h\x02\xc2\x9c\
+\xa73\x849~\x16\xf3\xe7q\xd8\x18\xd7\x1c\x09\xf80\
+n\xf8\x1e\xde\xe7{\xc8`;\x10\x1b\x8ex\xa09_\
+\xaek);\x90\xcb\xfb\xfcWu\xe0\xf61\x0e\xe4p\
+\xff\x09\xe8\xc2\x94YO\x88\xd7\x9b\x15T\xc7\x9eu\x99\
+@\xc1\xaa\xfe=\x02C\xcc\xcb\xc7\x09\x0d\x93\xcd\x0eY\
+\x8c\xe1\xf1y\x11\xd8d_x\xda\x180 s\x9d\x8e\
+\x0b\xe3p\xf7\xeeU\xdd\xab\xca\xdf\x8d\x0e\x07\x19L2\
+\xeb\xdc'\xec\x95W\x0bM\xc6\x9b@\x17\xd7I\xa6\x9c\
+\xf5\x86\x00\x08\x8e\xdd\xb9B\x0d8\x93@\xc8\x00\x01\xe7\
+\x09\x03\x83@\x96\x03\xd3\xc90a\x1cb\xe7\x10H \
+\x90\x84\xa3\xc4z\xe7\xc0c\xd9w\x9fP\x03\xa1\xc3-\
+B\xe3\xc0\xb0\x1f1N\x19O\x9c\x07\xe3\x93\x80\x19\xcf\
+\xd5\xf6\xc0p\x88P\x1d\xf54To+\xa8\x01P\x98\
+\x06\xcex\x93\xe9\xcd@\x0b\x81-3\xa2\xb0\xef&\xa7\
+\x095@\x90\xbf\xcb\xbeurAW\xd2\x14\x0aD\xec\
+R\xd0M\xde \xd4\xc4G\xda/$xl\xc0O~\
+-4\x0c\x133!\x92\xb1\xe0@\xcc\xf4\xa8\xe9G\xa7\
+\x1f-\x0c\xcd3\x873\xff/S#\x03\x5cfL\x11\
+\xb8f=\x18~ 4L\x81\x1b\x85\xf8\xdcs\x84x\
+\xffv!\x8eW\x0b\xf1\xefw\x09q\xfc\xb0P\x99\x91\
+\x19\xd0\x86\x09\xe9\xbf\xeb\x97\x16\xe2<\x8f\x16\xe2\xef\xee\
+\x17\xe2\xf8k\xa1:\x16\x939\xa1\x99\x970raz\
+\xdd\xe1\x80\x0e\xeb\x9c\x1d\xe9\xee\xb5\x05u\xdd8\xb3\xa0\
+\xeb~S\xa0\xbf+\x01[\x98-i/y\xbe\xe58\
+\xfcR\x81\xe6Aa\xc8\x95@\xc8\x065\x13\x9e\xeb\xd0\
+\x17\x848\xef\xf7\x0a\x0dC\xd3vO^?\x81Z\x07\
+\x9e\xfb3\x85x\xff\x8c\xc0\xe7\xe2\xb5\x18\xca\xeb\xdb\x1e\
+|t\x0d\xccL^)\xd4u\xbc0Z\xe3:&\x0b\
+&\x0bM\x16*\x0e\xdbvr\xa0s\x1fv\xa6zz\
+| \xae\xaf\xbf\x5c\xa8\x7f7\xdd/\x10\xf6\xdf\xf0\x01\
+!\xde_Lh\x02SO\x12\xe2\xef\xee\x0e\xc8\xbe\xd9\
+\xa7\xa0\xeb_.x]\x8b\xf5kX# f\xe9\xe2\
+B\xfc\xdd\xf1B\xc3|{\xf1\x18 -\x09\xd5\xb0'\
+\xfb\x03\xc3A?\xb0\xb9/\x0e@\x0c\xf7\x08\xf1\xfe#\
+'\x8f\x98<\xb2I\xfc9`>\xb7\xc6\xdc\xeas\xab\
+\x97\xf1\x7f\xa9\xc6\x7f\xffE!\x8e\xab\x08q|D`\
+\xb1\xca\xbc\xee?\x15\x10\x13\xe1\xee1\x93<]U\xa8\
+\x89\x83\xcc\x98\xbfS\x88\xdf\xf9h\xe0\xa8\xca\xb8\x81\x11\
+\x94\xf7c\xf7\xc9\xab&\xbb\xd7\xc0\xebd\x8d\x80\xce\xe7\
+p!\xfe\xee\x12\xa12a\xcb*'\xa6\xed\xd7\x84&\
+\x10\xf7f!\xfe\xfd\x94\x80\xd6\x81\xdd\x02\xbb7\xeb\xbd\
+\xd71Y\xe9\x93\x1f\xc7\xf9\x9d!\xc4\xdb\xfb\x8f\xd75\
+l=\xbcpxa\xc9\x9c\x17;\x7fx\x97P\xe7\xf7\
+\xe4\x16\xa1\xee\xab\xd8\xf3\xdd7\x0a\xf2\xf3\x0a\x9b)p\
+\xd6//\xc4\xebO\x0a\x95\x114\xbf\xb6P\xe7O\xff\
+a\xa1I\xac\xfe\xb8\xa0\x9b\x1e.4\xfb\x8c\xfd\x0d\x12\
+\xc70\x02&\xab\x0bN\xf8\xbe\xd6\xcc\xd5\xcd\x1b\xc6\x02\
+\x89\x11\xaf?0\x0daD\xe1O0\xef\x0bC\xe6\xd3\
+%P\x1e\x98I\x84+\x80\x87\xfd\xb7\xe8\x18\x18\xc1\xee\
+Y\xd0o#xb\xcbA;?\xf0\xa3\x86\x1a/\xb7\
+\xe3\x8aZ\x0a0l)\xc4\xfb_)\xe8\xfaW\x07\xf6\
+\xf4B\xf4\xc1\xc6\x00\xc5\xb0~\xb8l\xf5\xdd\xe4b\xc1\
+\x14\xdf?UG\xbbPw_Q\x1d\xc9\x12\xd1\xdb\xbb\
+Yhp\x8c\xe5\xb8\x9e\x10\xaf\xff#4\xd4\x1bE\x86\
+\x9egj\xf4\xcb+u#\x9c\xd3_\x17\x07U\x03\xeb\
+TS\x85\xae\xa9\x1bIy\x80\xb1\x81O\x7f\x2283\
+\xf7\x9cf!!\x83\xee\xeb\x1c\xd6\x15\x1a\x03l4;\
+s`\x0f\xb7\x09\x1ex?l\x1e \x11}\x0cD\x16\
+`\x0c$9\x02[9\x92{\xa2\xef\xbf6&-\xbb\
+\xbb5\x0b4\x81\x08/\xa8ix`\xe0]\x5c\x90\x9f\
+\x9b?U\x88\xef\xfbR \x9e\xeb\xdc\xa3\x03\xcb\xd6\x88\
+h\xb9;\x976\x99\x8a\xe7\x17\xd4\x0c\xde5\x05\x95\xea\
+&C\xe3\xb1\x0d\xf3C\x81\x95\x1f\x9b\xa2\x7fw\xe3\xf8\
+B\xfd$S\xa9xS8\xb2\x93?\x0a\x0dUK\xcb\
+\xe0\x8b\xaa\xe1Y(XrL\xb6\x0f\xc4\x06;}\xaf\
+\x10\xcf\xe9\x1b\x81sM\xbd?\xadR\xc9\xd2@\xc0\xa1\
+\xe5{L\xa5&\xe3<\xec\x1fPF\xff\xc5\x81\x17\xd5\
+Hnn\x98.-\x99\x5c\x18\xb8\xa8P\xd7\x8e\x14u\
+-KbD\xac>\xaa\xc9\xa0\x10\xa01E5)\xad\
+\x1e'\xe9\x08\xaa\xd0@\x1b\xe2i\x05\xdd\xb0\x85`\xc7\
+\xf9\xc7.\xd9P\xa0\xe9\xe8@\x18&\xfd1\x81c\x1b\
+J\xe9\x9dB|\xfe\x8a\xc0\xe5MF\xfe\xaa\xc0\xfaM\
+\x09\x88\x032\x93\x87\x84f\xfcjC\x89y:\xfc=\
+\xf0\x0f\x07\x02\xa6vD\x16\xaf\xa5'\x19\x18\xc0a\xc1\
+P\x95\xfb4m2\xac\xbb\x16\xd4\xd2\x86\xe3\x02Zp\
+\xfe\x15\x88q>\xfcG0\x05rG\xcf\xefi\x13H\
+\x83zl\x0a}R\xca\xa0N^%4\x062\x0e\x13\
+\x0e\xce[\x02\x075%\x130b4\xdaoqfr\
+\xad\x9a\x11*\xc4V\x19\xe0\x1f(\xe8\xba\x0f\x17\xa4#\
+?\xd9Qh\x1c\x1bJ$n*\xf8\xbf\x8c\x08\x98\x1b\
+8\x86\x8c;(\xeb0\x01<o\xd2q\x83a\x81c\
+\xe2y\x9a\x94H2\xaad$\x1d\xe1f}\xc8\xcc7\
+\x19T\x0c\xf3\xcb\x0a\xba\xe1\xb5B\xcd\xd4\xa4\xa1\x0c\xd3\
+\xc0\xeb\xc4\xff\xf9\x1e\x9e+\xa5#~\x8da\x9b\x01-\
+\x1c\x0fJ\xb20\xf8q`\x1c(K\x07\x86\x00\x00\xdf\
+\x8bC\xc5\xf5a\x083O\xa0\x92SR\x01%\x1d\x87\
+\x91\x801\x81\x90W\xd9\x01$\x90A\xe6}\x86A\x10\
+\xef\x8d\x81\x05\x02\x0c\xfc>\x9f\x9b]\x8fW\xf0\xf3t\
+\xc4\x9c\x00\x09\xd4\xe1\x5c\x1fW1C\x82\xe7\x89\xc3\x86\
+\xe3\xc4\xf8\xbd\xdf\xe3b\x11\xcf+2\xde.)K\xe6\
+\x05\x86\x0e\xf3n\xd6\xe1\x9f\xcd\xf02\x1f8\xe2x\xad\
+\x14\x86\xf4JM@\x89\xd2\x13\xd6e\xc6+\xaf\xed@\
+\xc7\xff\xff\xef\xd2\x14\x98\x03<\x87\xb5<>\x1f\xe5\xfb\
+\xc4\xdf\xdb\xf1\x9f\xac)4\x19q\x02\x09\xfc\xde\xecy\
+\x93I'\x90r\xa7\x03E\xecs~\xeeiX\xcd\x8f\
+\x01\xaf\xc9\x11B\x1d\x9fY:\x80Ck\x87\x83\xe7\x06\
+E\x1cG,3\xe8\xa6d\x931\xa4\xc4\x10*6\xcc\
+\xa6\x0c8\x11\xa8\x94CrF\xb3?R\xf2`\x870\
+\xc7\x17\x81/\xef+\xc98\xe3z\x19\xb7\xbe\xde\x5c\xf7\
+\xae/\xa8L \xe6\x0f\xe7\x8d\xc3d\x0aw\x06\x0e\x08\
+\xc0\xf0\xbc\x19\xd7\x04\x1a\x9d1\xcdL\x9c\x1d\xf3\xe1:\
+!^\xbfI\xa8\xcf%\x03\x93\xd8\x13^\xd7\xb0\x7f\xd8\
+\x173\xf3\xe9\x0c}R\xe7Y'\x090\xba\xc4\x80u\
+53y\x944\x10\xe0\xe1?J\x8b\xee*\x183\x8e\
+\xc75\x8c7373\xb0\xea\xf9\x97Txg\x10s\
+\x9d\xf2\xfa\xdf\xdf\xd8\xdf\xd0\xdfP\x99\x04\x19X\x87\xd2\
+L\xa9\xc1\x16\x82)\xdf\xe1\x88\xf7+\x0a\xb6C\x9fX\
+\x1d\xf2\xc9\xf3\x84\xe6y\x12\xd8r@\x03\xa6\x1e\x0eS\
+\xae\x1f\x94\x04\xb0n\xd8\x10\xa7T\x90\x92\xaa\xe9\x1aB\
+\x0c\xff\xc5\x85&\xe3\xb8s\xbfK\x1f\xcfsn\xa1\xb9\
+\x05s\x0a\xb0?VhJe=n\xc8\xe4\x92 \xe9\
+\xdf*\x94\x80\xd48nOv\x86\x9f\x84\xdaW\x85\xba\
+\xaf\x10p\xcf\xd2\x0e3U&\x87N\x0eQI%\x01\
+;\xc6\x7f\x7f\x8aP\xc7\x19\xf6U2\x13?X0\x96\
+\x86<\xa5qx_V &B\xa02i\xd2A\xff\
+\x95\x10\xaf7\x16\x9a\xf9\xe9}@\x85Z\xb2s\xf2<\
+\x7f!\xb8T\xf8\x0d5\xf00\xfd\x86P?\xd7\x7f[\
+\xa8%\xc3\xa5$\xed\xd5\x85\xa2=&|\xee\x0b\xc4y\
+\xf7\xe7\x08~\xfe*Yz\xa4PK\xc0\xfa\xef\x06\xbe\
+\xe3\x0cq\xdc\x9f\xe9ZB\xc346\xf3\x88\xf1\xd0o\
+.\xc4\xe7\xf7\x16\xe2\xf5fB\x1c\x0f\x16\xecx+P\
+\xb5\x82PK\x03\xca:8_\xec\x94\xebU\xaaTJ\
+C\xe2w\xfa\xc3\x84Z\xda\xdbO\x848\xfe\xb9\xbf\xab\
+\xffsI\xa8\x95\xf93y\xfd\xb8\x9e\xce\xffE\xa8T\
+s\xee{\x7f\xa0P\xfd>2\xde\x04\xe0\xfb\xd7\xf6{\
+\xf7ag\xe8\x7f\xfb\xbdK\xa6\xff\xdf\xbd\x02\x90\xc7N\
+\x8e\x99\xc8n=\xb8 \xa9\xf0$(\xf3\xfc\xbd\xcfQ\
+z3=Uh\xe6\x85\x19 \xc3O\x02J\xf4\x5c\x1e\
+\xb8\xa2\xb1\x1f>\x13\xb3B\x81\x9b?\x08\xf1\xb9k\xc7\
+\xf5\xab\xdfA(\xfe\xc3\xd9\xc3\xd9\xc51\x1e)\xee\xb7\
+\x0b\xd5\xbe\xa2\xd4\x88\x00\x04\xd4\xfd\xe2\xbf\xbe\xba\x09<\
+R\xf2\xed\xf5`~c\xa1\x09\x08{\xbf\xeb\x97\x11j\
+\xc0\x0b\xea\x7f\xda{0\x7f\x18\xdf\xfe\xde\xc99B\x9c\
+\xc7\xc7\x85\xf8\xbbg\x0a\xcd:\x8f]\x00C\xca\xf6\xcd\
+\xb0\xf8\xb0\xc4\xb0D3\xfe\x1dX\xc8\x12e\xec\x083\
+G\xb3\x94\x8d\x12\xd55\xc5)\x89\xf7\xbf=\x06\xa0X\
+\xf7\x17P\xab\xd1]P0F\xc0\xde\xefZ\x82E\xeb\
+\x864\xf9Z \x16\x88\xfe\x03B]\xc0'\xaf\x09\xec\
+\xed\xe3kl\xa8\xbf\xa5F\x10K\x04\xf8T3f'\
+\xb5\xe6\xb6\xd4\xd2\xec\xe0\x0d\xe6g\x95\x22?|[\x88\
+\xdf9U\x88\xf7\x8f*\x18k\xa6\x16v\x84m\xf5:\
+\x01\xc7\x82\xb6\xb8\xa1\xcf\x11\xe2\xff\xbf\xb3\xa0R\x89\x88\
+LB\xc5\xd36:\xf1Bwy5\xf8\x0a\xb5\xed\xcc\
+\x86\x0a\x8f6\x81)`\xc3\x05B\x1c\x7f*4\x86;\
+\x19\x0f\x99k\x8b7\x11^2\xafd\x84\xf4x\x16k\
+\x1c\x1b\x1e\x98\x03\x0a\x93\xfd\x02\xfb\xda\xe1\x8e\x813\xf9\
+\x91\xd0d\xe8Lm\x1f.\x14*\xc5(\xa9ho.\
+\xe8\xfa\x93\x02'\xfa\xba\x9edF\x84j\xb4\x9f%\xb8\
+\xf6\xfeE\x0d\x15s\x8f\x82\xcc\xa0\x94\x89\xffb?\x97\
+_4\x1b\xb6\xdc\xde\xf7\x99\xe2\xbf\xb9k\x17\xefj\x22\
+\xf1\x04\x08\xb4\xdd|\xb5\xb9n\xe5A~a\xc7~\xfb\
+\x1a\xe9\xa5\xa6+\x0dp&\xbc\x0d\x9d\x92\xe1<\xb9:\
+\xcc\xc3\xf5\x82\x1d\x8e\xf3\x9b@\xcb*#\x955)\xe5\
+\x8e\xc8\x97\x85\xe4'\xd5\xa0)\x11\xfc\xf3\xe28\x17\xe8\
+=\xe1\x96\xac\x99\xcc\xa4\x98;\xb33\xb9L\xb0A\xbe\
+p\xfd\xfd4\xa8\xf8\xbc#\xba%<\xa0\xd2\x87\x9f\x09\
+M\xc4\xfd\xfb\x01\x05\xce\x96\x15\xaa\xc17\x1c\x14\xd0<\
+9*p\xa4\x1d\xb9\xbd\x9b\x0c\x89\xe6_\xfc\xee\xf4-\
+BCa\xf5\xc6^\x22\x8a\xefvd^\xd4\xaf[\x03\
+\xe1\x90\xf5\xab\x07V\xf3u\xdd\xd2\x18Vh\x02\xb4\x14\
+\xd1E=^\xff\xd30Z\xc8\xa0\xca\x9d\xfb\xab\xc7\xdd\
+5\x0d\xb5\xfc3\x05\xdd\xe4\xec\x91\x9aVj\x0f\xb7i\
+\xa8\x85\x8a\xe8\xca\x00<6pL\xad\xc5-T\xb8s\
+\x1a\x03\xf3\x1d\x81\xb7\x9b\x01\x12\x1b\xd3\xf0n\xc1\x86\xec\
+c\x1d\xe8\xb8\xba\xa1L9P8y\x9f\xd0\xdc\xdfs\
+\x02_k\x1c\x0e\x22\xc8\x94P\xec\x1b\xd8\xaf\xc9\x94\x98\
+2\x8cv@\xd9\x00\xef\xb7c\xbf\x9e\xcf\xfb\x13f\xd2\
+\xdcn\x83\xea\x9e\xff\x919\xf1BM\xe9\x10\x06k\x1a\
+\xfa\xdcg\x1ce\x1c\xa3\x99\x8c1\x86t:H|\x0e\
+\xe6\x81\x0dh4H\xd2\xe1\x22`\xc3\xe7\xaf2C\xe4\
+J;\xd8P\xcf\x09\x1cQ\x9b\x8d\x03M\xa6\x9b\xf3\xc4\
+\xe1\xb0\x03_\xa8\x81\x977\x0e4\x19M\x1c\xdd\xd9L\
+!\xd7O\x00\x80\x00(\x0e-\xb5\xcc\x94\x06\xc0\xdc\x81\
+:J\x06\x97\x1ao\x0c<gz\xb2v\x94LHr\
+\x94\x1d\x8a%\x10\xe3\x80\xe6\xf0W3\x08\x08x\xdcd\
+\x87\xc0\x01\x9a0 J\xa00\x19\x0f\xd6:pX\xb7\
+n\xc8<\x17\x02\xbf\x04t\xd1\xa4\xf1}JF\x963\
+\xefa~\xdc1\xdc\xd1d\x8cq\xf0q\xb4gK\x0a\
+\xb8_\x5c\x0f\xcf\x1fC\x82\xdfo\xe7\xf3\x5c\xf3\xef\x9a\
+\xdds\xcd\xba\xcb\xfa\xc4}!\xe0\xc3y\xc0@X4\
+_\x8fG\x02\x0f<w4X\x06\xff\xee\xbc\x99F\x18\
+(\xfc\x1e\xe3\x88\xfb\xc6\x91\xdf\xe1\xbe\xb1_<S(\
+\xd7=\x06\x9e\xae\x18k^\xe3i\x8c\x0e\xee\xeb\xc7u\
+!\x03\xaf0\x9f\x9cH\xa0\x04m8AhJ\x03\xc9\
+t\xe3H\xc2`s\xa65\x99D3\xdaB\xa5\xd4n\
+\xaf&q\xc0\xbcb\xbd@\xa3\xc0\x19\x9b\x9cG\x07\x14\
+\xd4y\xcd\xfe\xcesa= P\xc5\xf7\x9b\xd1\x93\xa5\
+\x0c$\x1a\x5c\x1b\x9a\x01t\x9e\x07\xf7\x97\xf9\x85\x03\xcd\
+\xef\xe2\x80BQ\xd7\xfa|v\x93\x01\xa3d\xcf\x06d\
+\x96\x92y]O\x86\x04\x993J\x13\x9c)c\xddG\
+;\x07\x0d\x9f\xa4\xce;\xa3\x99\x81\x1c2`\xac\x97\x94\
+\x1c\xf8\xf7\xfa\x17\x08M`\xd9L\xd3\xc2 ;\xae\xd6\
+\xb2N\xae\x10\x9aRQJ>\xbe'4\x01\x18\xf6%\
+S\xfb\xd9w\x92\x19\xa0}6\xec\xc8\xe9\x97\x84F\xb3\
+\x81\x00\xb1\xed\xc6\x0c\xe0\xd8\xf1\xc8\x8c\xb03\xfb\xfd\xf6\
+B\xb3\xfe\xbb\xa6\xb70\x1aO\xad\xeb\x18\x0cV\x02\xba\
+\x99\xf8p\x060\x03\xa0\x0e@S\x221\xf7~!^\
+\x7f{\xa4\xca\x0fK\x06\x96\xa8\x01\xb6\xe9?\x84:\xee\
+Hl\xcd-,4%\x01\x8b\x095\xf1\x00\xd3\xa5\xdf\
+J\x1c\xbe&\xf0\x8aF\x84\x994I\x81&as\xdf\
+\xe4\x9fz.\x93\xa5\xc7\x1a}\xd6\xd3~5\xc1\x0c\xbf\
+m\xbd/\xad\xe5L\xf0\x1aM\xa0E\x0c\xc9\x13\xbcO\
+*11\x08U\xeb\x00m\x95Ld\xe8\xfbc\x1cO\
+\x1e%\xc4\xf7\xaf\xec\x8c\xb6\x7f/)\xce\xd2\xec\xb9\xa0\
+>\x17\xb4\xb0\xba7\x15\xd4@\xfb\xb3\x85R:\x14\xa8\
+\x19_\x18\x17\xe9\xf7L\x05\xd7\x5c?\xa6ahz\x1e\
+1N\xd1\xba\xa1t\x04\x06\xc2p\xba\x10\xc7\x95\x85\xf2\
+\xfe\x86\x85\x99pI\xacW\x97\xd4\xe7R\x12=\xc74\
+\xa5,f\xaa\x10\x08\x98\xbc\x7f\xf2\x01im\x0d\x87\xc7\
+|<\xbcaz\xb8\x94\x8a}w\xeeD\xa1j&`\
+Gf\x86~g\xa1P\xe9\x0b\xb3\xb4P\xef\x87\x9a\xa8\
+!\x90\xd8\xffY\xa8\x99\xefx\xf8\x93i\xec?\xc3\x06\
+Be:\xe4\xba\xe0@\x11\x09\xd2\xf4\xb3\xd0L\xf2z\
+\x91\xda\x18\xb6\xefr^\xa1\xddc\xe6N\xffz\xa1\xda\
+\x0fs\xaf\x15\x1a\x06\xcd\xb5r\xf5\xeb\xfa\xd4/\x17\xe7\
+\x19\xeb\xdd\xf4\x15B\xbc\xfe\xbc\x10\xaf\x0f\x12\xe2\xf5\xc5\
+B|~\x09;\xcc\xd6\xa8\xc9R\x22\xdb+\x99\xd0\xc0\
+\x0f\xb3?\x09cl~?\xa1\xd9w<?\x17\xbcY\
+\xa8\x9f\x9f.&T\xca>\x1a$h\x5c\xa5\x7fe\x06\
+\xcd\xf4\xf9BS\xdahG\x9d\xda\xfed\x90R\xfa\xbe\
+\xb9\xe7\xaf\x03\xcf\x19\xa0\xc4~\xb2_UJF\xb6m\
+\x02&0\xdc`f\xc3\xe0\xdaM\xa8\x01\x9b\x05Y3\
+\xee\xccY\xd6\xc4zC!\xe3^\xcc\x80\xbf\xd5\x8c^\
+\x19\xf0\xa7\xd5\xc8x\x7f\x93\xd0d\xa6M\x89@T+\
+E\xecN\x17*Eo\xfa\xf9\xc0\x19\x0dE\x86\x08\xbe\
+\x1f8\xd4\x9b\x1cp\xa6fL\xaf\x0e\x5cU)A%\
+\xf2\xf6\xf88\x9e\x1bP\x04\xe4\x92\xc0O\xea\x86S2\
+9\x1b\x98\xd2vuS\xebj\xc7\xb9\x10\xfc$J\xf6\
+\x03!\x8eg\x0b\xb5v\x02\xb1\x102\xbeY\x13\x82\xe3\
+\x81\x01\xd7R\xb1\x97h\x0c9\x0c>2\xa1\x18tD\
+\xec\xe7K\x8c\xaf~\xee\x1d\x05cFZ\x0e\xe2\xdb\x02\
+o\xb7#z]#J\x08\xe5\xca\xe29\xfd/\x84Z\
+\x1b\x0c\x05m\xfe\xc5\x82\x17\xf6\x98\x00\xfd\x1e\x81=]\
+K\xb4\xba'\xdc_*\xf5y\xeeY\x81x\xfe\xd3K\
+\x85\x1a\x99\xce\x0d\x95ZI\x0c\x13\xf1\x0a\xde\xe6\x88\xf6\
+z\xcd\xf5\xb8\xb6\xbe\xdc\xbf/Y<\xe4\xbd\x8e\x9c\xdf\
+\xe8\x8d\xff\xde\xa6\xa6\xdf\x99\x0dD7R\xbcI\xf1\xb9\
+\x977\x94J3\x02\xa0n\xe6\xe7Mi$r\x0cU\
+\x06q\x90\x9c\x08\x04N\xccP\xc9\xcc$\x99\x03\xf1\x1c\
+\xf6\xf0B\xbdECE\xc60\xc3\xc0\xe69R\xdaa\
+\x0a?\xa2\x8c\xb1q.\xad\x8d\x93\xccI\xa1\xf8}4\
+>w|@\x06\xd5\x1f\x85Z\xb2PF\xe3\x9b\x9aq\
+c\xc7\x87\xeb#b\x9a\x19\x08gN\x87\xc7\x08\xcd\xb8\
+\xb0#\x9b\x11Bg\x84\x8a\xb9\xb8l\xe3@\xe2Hp\
+=\x18\xfc0C\x10\xdf\x93\xb9\xb3\xb6\xc5\x82\xbe\xe6\x85\
+\xf1\x02\xff\xce\xb1\xa6\x9c=\xd2\xf3G\xf3qC!\x8e\
+\x87\x08^\x98\xd6\xa8T\xbc\xfe\x8f\x81\xdb\x9b\xf9\xee\x0d\
+\x0a\x06\x12\x9a\x1b\xa5\x86\xf1\xf96\x84T[ur\xe0\
+\xa4\xa6\x14E\xcb\xeb\xab\x5c\xfa!\x83\xec!\xc15X\
+\xdf\xa9b1\x04\x16\xc8p\x94\x8d\xf8\xe3M\x86W\xee\
+\xb22\x1c\xcf\x09<\xb7\x89\xc4z>'#\xca\xcc\x9f\
+\xd4\xa8 \xc2\xca\x7f\x18\x94\xdc_\xc6+\x99O6r\
+3\x0cRD\xc7\xa3\x03g\xda\x00\x00 \x00IDA\
+T\x1a%\xf9<\xc8\xf0\xe1\x98\xf3|pHg\xa9\xeb\
+\xfc\xdd\x06\xa6\x02cX#\xaa\xc6F\x8caL\xc6\x92\
+\xcc=\xcf\x9bL$\x0e#G\xce\x07\x07\x9e#\xd4i\
+2\xdf0\x95\xc8\x9c.\xef\xdaf\xe6\x09\x81\x07\xd6I\
+\x1ci\x076Sl\x94@\x14\x8e\x18Tm2\xea\xdc\
+_\xae\x83\xdf\xc7\xb0f\x9d\x85\xe9\xc3:\xb5\x9c\xd7k\
+6\xc8\x7f\xdb1\xa3\xb4\xe0\xaf>_\xae\x97\xeb#P\
+\xb8\x84\xbfga;x\x94\x82\x10\xf8\xe5\xf8\xa0\xcf\xff\
+\xfe\xff\x0eL\xa4#\xc8\x7f<_\x02(\x5c\x17\xfb\x0a\
+\xdf\x87C\xc9\xdf\xcf\x9c\x1f\x0et\xb7\xf2$ m\x03\
+_?\x06\x0e\x8e$\xe3\xe7\xb1\x0eD\xc0h\xc0p\xa0\
+\x14E%}\x7f*\x06\xe8\x18\xd8\xe0\xbe\xe1\xd0\xce9\
+p\x81c\xcf\xf8$\x80\xc1\xefr\xbf\xec\xe8S\xc3\x9c\
+\x01\xd5}F\x87\x9aZ\xf2\xd8\x03J\xe65\xd79j\
+\xfba\x18p\x1d$ \xac\xf12\x5c*4\x06\xb3\x19\
+\x88\xc9`C\xbb\x06\xad\x12D\xff\x10\x11\xde\xad\xa0\xee\
+\x03v\xe4\x93\xa9\x04\xf3\x8b\x00\x94?\x9f\x01a\xe6#\
+\xf7\x91\x8c<\x81\x10\xc6!\x19\x1ag\x92\x93b\xcf8\
+\x80\xb9C@\x86\xe7O \x8d\xff\x18'\xcc+\xce\xa7\
+\xfc\x17\xc7%\x85Fkf6\xb0A\xc9\xc0\xe5\x05U\
+\x94\x96\xf3\xe7|)\xf5\xe0|\x18\x87\x18\xd6d\xfcN\
+\x15j\x0d\xff\xe4\xddB\x13\x88\xf9dA&t\xb2\xe6\
+\x15\x11A\x07*(m\x839\x97\x99.\x05\x84\xafj\
+\x02Z\xde\xcf\xfa/\x0b\x0d\x03\xd3\xcf\x89R\xc2\xcc\xc8\
+\xd9\xb0\x9e0?\x10\xbb\xb3C@-o\x7f\xa5\xd0\x94\
+\xfeYL+k\xde\xa1\xc2\xc3\x84\x84\x11c\xc6jf\
+\xf6)\xedD#A\xfb\xcas\x9a\x92\x85\x19&L^\
+\xb7\xd7i\x18X\x198p\xc0\x1b\xb1/\x9ew\x8az\
+9c\x8c\xb8 \xd73\xfd\xeb(r<|}8w\
+8\xb7\xde'D\x18\xb1[\x9979\xdf\xcc\x14\x0dw\
+\xef\xec\xe2\xf0\xc9/\x9c\xfa\xb9\x86\xe3\xd0?9\xb0a\
+Mx\xa4\xd6\xcf\xc9\x01i\x1f}9\xf0\xa5\x22^\xb7\
+\x92\xec\x92\x9c\xbf\xb2\xc6\xbf\xe5\x0c\xfc\xb7\x1c\x00\x7fr\
+\xa1\xee/PiC\xff\x0f\xa1\x8a\x01O\xbe(\xc4\xfb\
+\xcf\x12\xaa=\x95\x14}S\x9fS\xf4\x99\x80\x1a\x09\x02\
+\x97\xfaM\xbf(4\x0e*\xb5\xd7f\xac\x14\x06\xc9]\
+\xb6\xef7kJ\x81\xbd\xcf\x13\xc8\x1a\x9e.T\xe6\x1b\
+\xa5#\xd4\xfa\xf7\xef\x10\x9ca\xde\xb70tJ\xc9T\
+\x11\x7f\xbe\xb7\x9e?\x01\x80\x0c\xa4|6p|\xad\xed\
+\xc7\x01/~\xd1+\xab\x88\x1e\xeb\x07\x01\xb0\xb9\x0f\x06\
+>\xd0\x94N\x98)\x05\xb5>\x03\x18\xb6[\xfbc\x85\
+jW\x92\xc9\x0e\xb7\xf2yr,'\xd7Y\x13\xc3\xf6\
+'L\x0a\xd6\x89\x14\xc5\x95H\xf9\xeb\x9b\x80\xaa\xed\xe6\
+\x14\xf1\x84i\xe5@\x22\x9aX\xb9na_\xc1\xa4\xb5\
+\x1fI\x00c\xeeIB\xa5\xceO\xf7\x0e\xbc\xd6\x09\xa0\
+\xf7V\xc6Ow\x82\x7f\xc7\xa5ZE\x1c\xf2\xc2R\xca\
+\xf0\x8e\xe1\x1d\x8dx\xf1[\xccL\x22\xc1aQF\x98\
+\x07\xdc\x8f\xf9+\x84\x1a\xb0!\x90\xb1\xe0.\xa1&d\
+\xa7_\x11\x9a\xf5\x91\xc0*\xf7\x85}\x92\xc0\x9dJ\x81\
+_Z\x030\x8cO\xc4;S\xc4\xcf\x22\xf2Y\xeb\xef\
+@\xd6d\x18\xe7\x9ff\xb1\xe61%\xec\xe9\x9fa\x1f\
+\x11\x80&\x80\xcf>\x89\x7f\xff\x08\xa1\x8e\xa3\x05\xd3\xc7\
+\x05\xd6\xac\x86\x1b\x17@$\xa5\xd4\xd8\x7f\xd3T\x8b\x1d\
+\x1burjR\xbd!\xf6[\x05\xb6\xac\x99\xb6T\x93\
+u\xedA\x7f\xa3P#)\xf3\x9f\x17\xe2\x82\xde\x14x\
+s\x15\xa3\xe9\xbf.4\x91<\xc4q0,>_\x90\
+5\xf9\xa8\xb8\x17\x91\x8d\xa3\x9a\x08\xa1\x22t\xd7\xd5\xc0\
+\x02\x0bwN$m\x1f\x9bV\x8a[\x7f\xa2\xd0|\x1e\
+*\x91\xa8\xbao0\x83\xe0\x94fC\xc6\xc0\xc2\x01W\
+\xad\xa3\x1c\x9c3]c\xf6\x98R]\xf9\xdf\xb5\x9f\x8f\
+jj\xac\xb5\x0d\xafh\x83x\x0dO\xa0\x1b\x9a\x81C\
+dR\x11\xf75\x1c\xd9\xfeYQ\xff\xfe\xa8(\xe3\xb9\
+ 9b\xde\xffNp\x06\xfc\xb9\xa6~\x87\x834}\
+\xa5P\xd5?Kw\x84\xb5kM\xdb\xdc\xf7\x05\xd7\xe8\
+\xfd\xc1\x99P9\xf8/\x15\xbc@?\xc5b\x87\x87{\
+\x00-\xd6P\xfc8\xae\x93j\xe1%`\x93\x861\x19\
+92<\x12\x8dyOu\xdcp\x5c\xfag\x0a\xcd\xc6\
+\xa8\xa7xlU\xcf,|\x85\xe7\xd5\x8cZ\x89\xe4\xbe\
+\xb3vMP\x85_q\xac\xad\xd6<<Yhj&\
+?R0f\xe4\xbf\xdf08d\xee]\xd9P\x85N\
+\x12,\x0e\xb9\xd3\xffpH(q\x10\xd1\xef$;\xf6\
+\x07\xd5\x88\xb6j\xad\x8a\xe1\xb1o\xb7oat\x10\x11\
+wf\x90\xae\x07hU\x14\x02\xe7\xda\x8d:+\x813\
+\x0c:G\xe2s^\x11Y5U6k\xddM\xb1\xd4\
+\xb2W\xee\x0b\x0e\xa1\x99\x1e%p\xf6\x89\x86\x89a\xca\
+|\x8eO\x0cI28\x94\xb8`\x10\xa2aA\x80\x07\
+\x0d\x06o\x14\xd4\x1a\xa2>;\xbf\x96\x10\xc7\xbb\x848\
+~G\xa8\xd4\xa3\xac\x15uf&U\x8c\xad\xe1\x80X\
+M:\xa8V\xf1\xe7s0t\xca\xba\xb3\x95\xc5\x16\x8f\
+\xab\x81\xbd\x12i}^\xcd\x80\xcc}<pL-\xb5\
+)\xa5!\xfb5]*\x5c\xaa\xd2\x9f\x17\xf8A\x93\xf9\
+C\x8d\x9cL\xa7\x0d>\xba\x91PJT\xf2\x1d\xfb6\
+\x0e\xfe\xaa\xa5\xca\xba\x8aC\xaa\xc4\xe4\xc2\xff\x9b\xa1\xcb\
+L=\x86\xea\xac\x03H\xc0\x8d\x80\x0f\x01\x056P\x07\
+\x0c\x932}\xe6\xe8\xe0L> 4\x06\x0e\x86\x11]\
+0\xdc\x9d!\x0dj\xc67\x94\xddY\x8a=\x0e,\x01\
+\x22\x8ev\xbc\xd3\x91b\xbd\xbe\xcd\xa5\x1dw\x8d\xe2p\
+1\x07F\xc7\x0dG\x86\xdf\xe5\xf3\x5c/\x0e\x8b\xafK\
+\xe1\x9e\x12\xf0\xf9\xb03<;\x8d\x94\xba\xb2J\xad\xdf\
+8\xfe\xae\x9d\xcc\xef%p#\x0d\x99\xdf4L&J\
+8x\x9e\x5c7\x0e8\xe3\x8d\xf9d\xc6NR\xaf\xc9\
+\xb8\xae\xef\x12\x11\x1cR\x1c\xab5\xbc\x9e/\x95\x19\xfb\
+q&\xddmQ\xb7;Fj\xe2dc\xd7\xe4\xa1\xce\
+k\xcab:nP\xbbYG\x09`p\xbf\x08\x10\xf2\
+\xfb\x04\xb4\xef\x1a\xafw\xf8\xa5\x03\xc9\x8c'\xff}\x96\
+v\x10\x00!\xf0\x81c\xc7\xfb\xbc\xae%\x12\xe3\xbe\xc4\
+\xfa\xfcX;\xb88\x860\x19Xwz_7\xdfC\
+i\x02\xf7\x97\xcc\xf2%\xa6\xbcS\x8aC\x86\x88\x0c3\
+\x94G\x0c\x1cJ3\xc8\xfcZ\xc4\x17Q5\xba\xb4\x90\
+\x01\xcb.\x05d\xec\xa1\xf6\xdb\xde\xc8y\xc3>F`\
+\x0b\xc6\x933\xe7\x19X@\x14\x98\x12\x222d0\x22\
+p\xfc\xb9_\xad\x86\xc8\x0a\x8dc\xf16\xa1\x11y\x12\
+Si\xdf*&\x97b\xa2\xb6w\xf2\xbc\xb1\x83Pw\
+\xe7:\xbd\xae\xa3\xbd\x94\x8e\x11\x8e)\x812S])\
+\xad)\x89\x85\xb7\xd5\xfb7\xbc]\xa8\xf6\x05\x0c\x99\xa4\
+\xd8;\xf0\x8a#I\xcd0\xcc\xae\xec\x0aE\xcd0\xb5\
+\xf8\x94\xf2\xd0]\xc1\xf3\x16GLRt\x12\xa3K\x06\
+\x10\xe2\x9d\x048\x9d\xa8IQ`g\xc0RlX\xda\
+U\xc75\xccP\x97|e-\xba\xd7'\xc6\x0d\x8c\x8f\
+~\x7f\xc1\x19w1\x13\xde.T\x07`\xfe\xa5B\x93\
+\x91ti\x1e\xf3\xb4\x7f\x86\xd0$0\xf6\x09\xf7}\x9f\
+\x12 ?_\x99\xc3\xcc\xa8S\x0b\xce\xbe\x07\xc3\x10j\
+4Z\x0e\x0e\xd4\x10\xc8\xc9\xae4\xae\xfdG\xdb)\xc5\
+7\xb9o\xce\xb0\x22:F\xa6yn\xb3\xb9-\xe6\xb6\
+(\xf6\xd2X\xdb\xbd\xa1\xd7\xad\xab\xc7\xc0S\xbfN\xbf\
+v\xbf\xb6\xed\x8b\x0f\x15{o\x14E~\xd4h\xaf\x92\
+\x10\xe4\xf7\xd3N\xf6\xf5\x10\x80\x81\xa1\x9b\x19\xd8\x05\x82\
+\xa9\xd4\xef\xab\x09\x8f\xbc\xcf\x1f\x14\x1a\xbb\x95\xee\x08\xaf\
+\x10\x1a\xc7\xdb\xeb\x17\xf3\xaf\x7f\xba\xd0dD\x11\x9d\xc6\
+N\xa3\xe6\x99\x84\x87\xd7+\x15\x80\x94\x12\x10\x023\x8c\
+\x0b\x18\x99t\xe3 `\xe5\xc0*\xf6\x09L\x10J\xee\
+$E[\xc4h\xb1\x9b\xcc\x04%\x91\x81\x98sa\xf6\
+\xaa\x06\xff4\xa1R\xd8S\xc3\xc3L\xd8\xb9\xc3\x84\x86\
+\xb1\x8a\xfd\xbec`\x87*\xa2\x87\xdfP2\xf1g;\
+\x91\xb7G\xc9\x9c\xef3\xb7\x8f5\xd7\xee\xaa\xb5\xf2\xb9\
+\xbe\xa1\xb5\x86x\x9c\xed\xa2\xcc\xc0\x7f\xad\xa0ja \
+\xce\xe9\xc0i>\x0f\xec!\x07\xc4R\x94\x12\x11r\xd6\
+7\x07\xbc\x92Q\x8b\xe8:\x99k\xec\x0a\x98\x1aJ\xd8\
+^R\x03 \xd9E\xee\x22\xa1\x96\x80\x97p\xc3\xc5%\
+\x10Q\xbabM\xbe;\x06B\x18\x97\xd3\xf3\x84F$\
+\xf4h\xfbK\x94\x14z\x1d\xc9y\xe4\x00\x06\x8c\x19j\
+\xed\xe7.\x14*C\x22\xb5\x13\xd6\x13\x1a\x8d<\xcf\xd3\
+~U\xa1\xfaW\xf3\xef\x12\x9a\xfd\xca\xe3\x94\xd2\x16\x12\
+v\xd3\xcb\x85\xf8\xf7\x1f\x08\x0d\xf3\x11\x0d\x02T\xff\xad\
+\xbdG\x80\x98\xeb$\x01W$\xf1\x97mJy^\xe9\
+D\x0fv\x01\x81\x7f\xec\x0dw\x7fX0_\xd0\x88\x1b\
+\xbc,\xb0\x93\x1d\x04\x22\xc1M\xadV\x8a=hB\xae\
+kuN\x89\xfdm\x18x\xb2\xa9\xf4_\xaa\xea\xa3\x85\
+\xa2\xf3[Gp%\xce\xf7F!N`\xc5\xc0J\x8d\
+\xe1\xa6\xb8\xe9\xdf\x9b\xda\x19u'\xf8x#\x22\xe1L\
+Q:z\xd4\xe2\xc9=Y\xd3\xd4\xab\xe5\xacZ\xfe;\
+g|_\xeaH\xda\xfa^H\x16r\x0d\xdc\x8b\x9b\xc8\
+-T\x1c\xd7N\xf7\x87\x04\x0e\xb6\xaa\xe2q\xdeh_\
+\xe7\x8d\xfaG\x8d\x01\x0b\x85\xd75H\xd9\x06Nf@\
++\x06$s\xed\xee\xc6\x90C\xd4A\x94\xd1\xf5\x9a\x8c\
+\xaf\xcc\xcf;\x1bU{\x89\x1e>\xa9\x1a\x00y\xbf\xe5\
+\xe0?\xdb\x8e\xe2\xc5U\x1c\x8e\xae\x04%\x12\xfb\x8df\
+\x83\xf4\x86C\xe6\x19f\x04T\xbe\x129^\xde\x14\xc9\
+;j\xedv\x96R\xdc\x1a\xb8\xcd\xb5\x5c\xf7Zd\xe2\
+\xe3\xae!;\xa91<0\xb0i\x0f\x83\xda\xb6\x03-\
+P\xba\xb2;\x82k\xc2\xb2\x14\x83.\x02mfw\x0f\
+G\x9a7\xaa\x14\xafT\xf7t$v\xd8Y\xa8\x14\xcf\
+\xa2N\xfa\xaaF\xfd\xfe\x00\xab\xcd\x22\xfa\x85\xd8\x9c\xdb\
+\x91\x143\xe4\xf6\x1a\xe8*\xc4\xc5\xeb\x9bZ\xbd\xc7\x94\
+j\xd9\xae\x94V\xf5.\xadX\xd7\xaa\xef\xcfm\xa8\xcd\
+d\xc0\x9e\xd9\x15jk1Lnm\x0cXg\xc0\x93\
+\xd9q\xbe\xd0d\xf0\xa9\x09\x872\x8ecmjd\x1a\
+t\xcepN\xf7\x0a\xbc\xbaj_`\xb8\x12\x81\xcd6\
+\x8f\xd4V\xb9\xe6,3\xd6\x88Xq\x1d\x18\xbe\xb4\x93\
+\x83\x19\x83X%\xe7E\x86\x03\x911g\x88K\xe0'\
+\xc6\xf3\xdc\x87\x03\xf1\x9c\x16~\xb9\xd0u\x0f]\x16\xb8\
+\xdc\x8e\xb6\x022[\x09U\xcb\xa2PxOl6\x8c\
+\xe3\x0b\xc6\x1a\xdd\xc5j)\x08\xf7/\x03\x93\xa8E\xb3\
+~\xac\x5ct\xcdG\x83\xf6\xad5\xa3\x5c\xdc\x93G4\
+\x81\x90c\x85\xa6\xc4\xe8\xdf%\x07<\xd6\x00\x9f\xe7H\
+\xfe\xd9\xd5\xf0\xe8\xff\x2245\x88n/X\xbac\xc4\
+\xba8\xddMh\xb4O\xa0\xe6*\x7fuz\xd5V\xa1\
+\xcd\x10\x99\x93b\x86m\xf8?(\xdb8l\xac3\xac\
+\x1b\x18\xc2\xd4\xaamg\x11Uj\xe8\x8ew$\x9c\xf6\
+]\xd4\x5c:\x90\x97\xcf\xf5\x0b\x05c\xe9\xc49\xcd\xef\
+\xb0A\x10\x00\x22\x10\x85\xe3\x80\x16\x80\xc5\xa9r\x1c0\
+.\xa8\x1d\xad\x19\xe6\xb1\x96\x9c\xf3_m\x86\xf2~\x7f\
+f\xdeG\xc7\x86L\xb6\x1d\x9f\xac\xcd\x84z\x8e\x83\x8d\
+\xe3\xed\xccU>g\x07d\xc9\x08\xcf:\xae\xa8\xfff\
+\x1b+\x1cr\x1bZ\xaaLU\xa03\x19\x04d\xb0\x09\
+\xf4\x92\xc1\xe6y\xcd\x8a\x01\xf2\xb9\xe5\x8a\xce~\x0d\xe8\
+\x10H!`\xbe\x905>\xac\x02\x9c\x0c\x03\x07&\xf3\
+|\x10\xc5\x83YF\xa9\x05\x01\xe8Y\xc6\x00\x0e,\xf7\
+\x93\xf3\x9f\xc9\x14g\xe6\xdd5\xcd\xf9\xbc\x08\x84 \xba\
+DI\x06\x8c>\x02N\x04\x04\xd9?\x11-$\xd3\x0d\
+\xa3m\xce\xf7\xe9\xdf\xceD\xf0\xdcv\xf0~\xb1\xd0(\
+\xd6\x95\x7fO\xe0\x09*;\xe3\x84\xf1\x87\xd6\x01\x8c\x1d\
+2\xf1\xcc;gZr\x1da\x1f\x22`A\x00\x82\xcc\
+\x08\xcf\x8f\xeb\xe6\xbc\x09D\xf1\xfb\x04\xb8DE\xbd\xb6\
+\xa1\x92B\xe5F\xa4\x0e\x06\x0f\xf7\x89\xef\xa1\xeb\x85\x19\
+\x0a\x19x&\xa0F@\x89\x0c)\xa2\x9d\xa8\xd3\xb3.\
+\xc3L\xe0>\xe38:\x13Dms\x06<x>\xac\
++\x04\xe8]c\x8d\xa1\x9aZD\x94H\xc0\x0cp)\
+g\x8eO\x07:21@w\x1d\x98\x80\xb4\xc7\xf5\xbe\
+\x0d\xc3\x02;\xa2\x7f\x82\xd0\xa8\xf9\xbb\xd693a\xcc\
+w\xb4\x0e\x9c\x89\xce\xfbf\xf5m\x02^\xa9\xe1\xe0\x9a\
+\xfb\x92\xa8\x1f\x9a\xee\x09t\x01\xf0\xbc\xe8\x97\x15b\xbd\
+^Q\xa8\x863\x8e`\xd1\xb49\xae\x99\x17\xbe\x9e\xb9\
+\xcd\x85\xf8\xbb\xf3\x85\xe6{i\xe3hM\xac\xacyv\
+\xe2\xa80\xd9\xceo\xf6)w\xc9\x22\x81C\x80\xab\x88\
+\x10\xff\xb8\xd1\x10B\x03\xc3\x0e\x01\x0c\x14\x02\x1f\xc3\xcf\
+\x84\xca\x8cL\xe6\x04L\x83\xdd\x85\xb2\xbe\x96q\xdd\xff\
+](v\xc7X\xe2\xb0\xbd\x03\xd0n\x9f9y\xd5d\
+\xb7\xf2y\x02i3%\x17y=~\x1e\xc9\x90\xb5\xda\
+|I\x98\x9cX\xed\xa3lGm\xbb\xa7P\xed\x97i\
+\xb44\xfc\xb9\xb9\xad\x85\xca\xb4-\x99\xec\x0fV-\x01\
+\xc6u\xaes\xd8\xa3\x88P\xc2\x08v\xbb\xc9\x5c\x17\xb0\
+\x07X7\xe4^\xfe\xb8\xaa\xea\xe7z\xeay7\x7f\xbe\
+\x10\xbf\xfb9\xa1\xe9Z\xc2\xfd\xf78\xa3\xe46\xd5\xd9\
+-\xfa\x99]:\x10\x01\xf5\xfe\x09c\x05\xcav\xa9\xfd\
+\x97\x03\xf8&\xa1\xc9\xa4\xfb\xf9\xe2\xc0\xf6\xffO(v\
+\xf9\xd8\xf6\xef_\xa3\xfdW2\xbd\xbf\x1a\xcf[\xebr\
+\xbfg\xbf\xa7J\x9ba\x08\xa3\xf1\x10n\xeb\x05s\x17\
+4Z_0\x1e\xd0\xcex\x9d\xd00k\x09\xb4\x8b\xa9\
+\xb1R\x0dL&\xe3\xf9\xb7B\xc3 B\xd4\x8e\xf5\x03\
+\xfb\xc3\x81\xde\x0c\xc4P\xda\x82\x86\x07\xfb\xaa\x03\xaf)\
+\x02\x8a\x06\x05\x9a\x220\xb5H\xc0x\xdd\xcb\xc0\x9dk\
+\xf9\xfb\x8d\x84\x1a\xc0\xcc}L\xcad\x175\x89%\x12\
+/$F\xcc(\xc9\xc0*\xed\xdb\xad\x19C \x17U\
+\xfd\xe9R\x82E\x22\xf7\xab\xcc\xca\xd2\xee\xfe\x93\xd5/\
+\x9e\x7f\xa3P\xdb\xf6%#\xc2\x09E\x12\xe1\xf8\x1d\xc3\
++\x84f\xfd\xa7\xbd\xb1\xd7\xefR\x22|\x90\x19\xaf*\
+\x85^Nh\xba}\x9ca\xc6\x1c\x09\xc9\x99\x80J\x8a\
+\xfd\x12\xf0\xbd~,\xc9\x1a\x0e\x1b\xdb7\x92\x10_P\
+\xc4[>\xea\xfe\xeb\x9fm\x1c!\xab\xc2\x16\xca\xc2\x83\
+\xd5\xf1*\x8e\xdf)5\x92W\x22\xbe\x8f\xac\x91\xe7\x8c\
+\xd0\x98\xf2_\x02\x08r\xfc\x8f\x11\xe2Fm\x14x\x8a\
+k~\xdf\xe5\x85\xe6x;\xee\xd77T;-\x1f\xdb\
+[Tl\xa7JUO\x913\x89\xb9\xedT\xfb\xbcg\
+\x0d\xa63\xed\xc3\xf9\x81X0\xa7\xdf\x16\x1cq\xfdM\
+\xcd\x10\xb3\x91\x946\x1a\x1b\xd7\x9a\xe7r\x9b\xaemT\
+K]3Q\xa8:\xab\xba\x86|A\xb3\x10\xd4\x8c\xd0\
+\x98\xa9C\x85\xde\x9a\x01i0Zm_\xdb\xbb\xae\xa3\
+\x98U/o\xda\x92\xc8<\xfc\x89\xcf\xfb\xfc\x86rN\
+\xad\xc8G\x02G\xd4\xb6|I\xbd\xb3\x18\x1e\x14\x98t\
+\x00\xdc/=#\xa4\x1a\xf8g6\x22gD\xd4yn\
+\x22\xc0\xbc\xc1\x13\xf5w\xcd\x80R\x18a\xe3\xaa\xd6_\
+*h\x7f\xdb\x046\xc8L\x91\xb1\x12!\xe6\x99Mm\
+\x99\x0c\x8e\xd7VC\xa9\x94v\x1c\xee\xc8\xd4j\x8d&\
+\x03\x99h2\xa4vx\xcb\x06\xfaPm\x8f\x98\x86\x1f\
+\x06#\x8e\x8e\x0d\xcaau\xa1NL\x16^\xa8\xef)\
+\xd6\xc1\x02\x80\x03\x83\xa3\xa2\xb8\xd9\xae\x9e\xe8\xafp\x06\
+\xe4iM\xa4\x93\x0c#\xea\xf2\xd4&Bm]q\x5c\
+\xb8\xa1\xf2\x14j\xe4i\xb5\xf4$3%\xd4~\xcb\xad\
+{r\xb3\xc0\x8ai\xd2\xf4\xd7.\xcf\xe7F/\xe8\xef\
+pF\xf7\xcdM \xc9m\xb4\xb2+\x01\xa5\x0e\x22\xbe\
+\x9dT\x033h\x06dd\xd7\x14:(r\xd2\xcc-\
+\x1b$\xdfK\x86\x0a\xed\x0c\xb9\x0fKy\x83|ZC\
+]\x84\xf1\xe1R\x81\x22:\xf9\xa5\xd8\x88\xf6\x0d\xecW\
+\xc5\xfb\xe6/\x10j\xe43\xe79\xf3Bn\xd2\xef\x9b\
+\x0c\xb03\xcc\xd4\xfcO\xd7\x16\x1a&\x8bD\xacb\xbd\
+\x98\xfeB\xf0\xc6\xf3\x81\x86\xba\xe9\xfb_\x02z\x876\
+mJ\xe9Z\x01E\x9e\xcc\xba\xa9\xb8sG\x05\x8et\
+\x0d\xd71\x8d\x06\x0a\x91t\x8bT\xf6W\x0b\xf1;\xeb\
+\x076p\x8d\xdcyM;\x1bk\xa0\xa4\xba\xae(\x81\
+\xaf\xab\xf38\xfb8\xd3\x9fW\xa2C\xf75\xb5\xd1l\
+\x98t\x7f\x80\x92K\x0d\x1bbT\xa8q\x93y\x84\x1a\
+\x8e\xa1\x83csLA\xd5Z\x80\x11C-?\xda\x1b\
+\x8e\xc4\xff\x17\x13d\xd2\x04\x0a\xa0\xfc\xcdvi\xc0\xe1\
+ 3\x05\xf3\x05\xc7\x8b\x80\x11\x0e3\x1b\xf6\xacX\x22\
+*\xf38t\xd4\xd4QZ\x81c\xc6|\xc4\xc1E\x8b\
+\x85\xf9\xc9\xfd\xe3\xbep\x1e\x884\x22\xd2\xb6\xa1KP\
+\xae2Un\x05\x1b\x9c\x5c\x9f\xef\xdf\xf0\x07\xb7iE\
+\x93\x80L\x07*\xf7d,q\xf8\xe9G\xed\xda\xd0\xd4\
+\x22\xf8\x8d\x03%8\xbed\xca\x9f9\xce\xdf\xcc|\x93\
+\xf1f}\xc2\xa1\xe7yP\x92\xc0k\x8e\x18\xccd\x9e\
+\xb9\xcf8\xee\xce\xd8\x0f\xf7\x0aE5}d\x22p\xdf\
+\x08\xac0\x1e\x09\xec\xe2\xb0\xf2\xbc\xf9<\xbf\x0b\x13\x80\
+@\x0c\xed\x15\xb7\xb2cK@\x1a\x8a$\xea\xef\x18\xea\
+\xb4\xa3\xa3\x04kVC\x82q\xcc~\xcb\xf3\xc4\xb1\x9d\
+}\x0e8\xda\x88:B\xd1\xc7\xa1&P\xc2ys\x7f\
+q\xe0\xd1v\x81\x9a\x0f\xd3\x84\x8c\x0a\x94O\xfa\xd8S\
+SM\x00\x03&\x05\x8e\x8f\xc4^\x8f\xae\x01N\xba\xc7\
+\xe4}!\x93O \x09\xe6\x8e\x1d\x84,\xf1 \xf1@\
+\xdb9\xdbY\xfd\x01B|\xee\xf3BS\xd3N\xc0\x83\
+\xeb\xc7\xb0\xc6Q\xc1Q%\xe3f\x07\x9fu\x9avR\
+\xf4\x03'\x03\x0b3\xa0$\x80~_3\xda\x19\xe8\xb7\
+vC\xb6G$\xa0M\x80\x9fqC\x89\x11\x94aw\
+\x0d \xa3X\xda\x97)\xc1\xf24\xa1\xd1l\x82\x09\xe7\
+\x92\xa6\xcc\x98Y\x0483\xe8\xf4\xd3\xa6\x1d/\x0c?\
+\xd6=\xec3\xc6\x1f\x19wj\xca\x1d@'\xd3\xdd]\
+XP\x1d\xf2\xff'\xd4\xccaf<\x11\xa9\xa6\x16\xdb\
+\x9a\x00\xe9\x18b\x97\xd9\xc1Kf\xab\xb5\x09R\x9c\xdb\
+\xa5\x97\xb1+\x94\xf5c\xb2\xec\xe4\xd1\x93X7\xe6\x1f\
+\x12\x1aqW\x07\x00\xe8\xdf>\xf9\x99\xb5\x10L\xdd\xce\
+\x006\xed'\x1f=\xce\xcf\xc9\xf2\x93\x15&+4\xf6\
+<\xf64\x01!\xaf\xa3\xb4\xffN&\xaf\x026o\xaf\
+]G\xb2\xcd/\x8e\x17\xe3\xca\x9aF\x88\xc1a\xa7\xcf\
+=J\xa8\x99\xd6\xb9\x85\x84\xc6>r\x22/\x197\x1f\
+\x14\x9a\xc0\x98\xf7\xeb\xd2F\xf103:\xf6l\xec\x11\
+\x18E0\xde\x1cX-%\xa2\x87V\xf1\xef\xd2~\xfa\
+\xcd\x8d=\xc3<P\xe6~\xff*\x86J \x0a\x87\x9f\
+n6\xd3\xdf\x0b\x0d\xf3\x85\x12\x13T\xee\xd1*0\xf3\
+x\xee\x19B}\x9f}\xab\xff\x91\x10\xc7\xc7\x08\x8d\xe6\
+\xcf\xdf\xc7\xbf\xebO\xe8?\xdb\x9fP\xec\x96W\x88i\
+X\x02\x13\xd3x\x7fQ!\x8e_\x12\xe2\xf8-\xa1\xb6\
+\xb3\xa4F?KV\xcc\x8c\xa1\x0d\xdc\xf4=B\xadM\
+\xcf\x92Q\xb4T`6\xd0\xbf^\xa5\x98K\x96\xb6t\
+\x81\xa6\xfd0\x81\x04\xb7\x11M\xad'\xfc\x02\x12J$\
+,m\xff\xa6=N`\x93\x92Ni\x0a\x1cX\x03r\
+\x93G\x0aq]?\x14JB\xe9\xc9bnf\xbb\xc7\
+\xcfZc\x01\x06\xc9\xda\x93uT\x12\xaa\x82N\x95t\
+N\xf7\x11jW0\xb4<R\xc3\x03m\x11\xdb\xaf\xd3\
+\x9f\x0b\xf1\xef\xdf\x13\x1a\xf1j\xcfg\x18\x03\xd3\xcf\x08\
+q\x5cW\xa8\xeb\x5cv\x071S\x08\x8d\x1aJ\x93\x93\
+\x81F\xe9\x8d\xedq\x98`$\x8c\xa6\xaf\x11*u\xbf\
+?T\x16m\xf5?I\x98\x0c\xab\x8d~O\xb1/?\
+R\xfdc\xfc\xf6,\xe1p\x22\x08\xe6\xd6\x82\xcc\xa4~\
+5\x10\x06\xcb\xf4N\xa1R\x882\x83\x04\xf5\x10\xaa\xc7\
++\x0b\xc9\xa0\xf6s\xf7\xc2[nL\xd3V\xa5h\x08\
+<Tk\xfaK\xad\xc3%\xa6\x90\xbc\xd7\xb5>w9\
+R\xff\x84\xa6\xc4\x80\xf6\x1dV\x11-bh\x075\x91\
+u;\xb2\xfd\xe3\x85F\x15\xd65\x19D~\xca\x06\xfd\
+\x1cGN\xf6l\xc4\xefdF\xdf\xda\x88\xc9\x11)\xc7\
+\xb1%\xe3&\xb7t\xc9\x86:\xae\xb8v\x13\xf1\xa3\x1d\
+WqK\xb7i\xdab\xb5\xfd\xb6\x1b\x11\x9f\xb2|/\
+\xe3\x09\xf1$\x7f\xcfS\x9a\xc8;\xbf\x8b\xa3\x8b\xe1\xe5\
+\x08|\xaa\x15\xd3\x0f\x14\x95u;h\x85\x9a\xf7\xc7\xa6\
+V\x10\xb5}\xfa\x1c\xbb\x9fg\xa1\xa2\xbf\xa9YX\xc5\
+\x8c\xd8\xae\xa9\xc9\xb5\x88^\xb6\xd7\x83bIM\xf8\xdd\
+%\x87V7>\xa8w|\x9e\x80\x8c\xa4\x96>W#\
+oe\x83\x10\x13\xe1\x9c\xc0W\xabCU\x88/\xbb7\
+\xd4KD\xc7L\x91O\x0a\x0f\x86\x185pn\xcf\x97\
+\x8e\x09\xa2\x17\x04&\x10\xf1\xa0\xa6\x8e>\xc1\xce\x88\x0f\
+\x0f\x0aM&\x9e\x0c\x9c#\xf5\xc3>BS\x8b7\xeb\
+\x10Q\x03\xa4\xb3\xdb\xba\x06\x12\xb26Tw\xe5M\xce\
+t\xec\xed\x80\xcd\x01M\x00\xc0\x19\xe3\xe1\xa3\x81\xa3\x9a\
+\x08\xaaE\x18\xb3\x96\x8d\xffd\x8e\x1c\xe8Z\xaf\x8f\x94\
+6([\xab\x0d\x0a\x863\xfd]K%\xf7u\xb5\x8d\
+&\x99\xb0\xb2p\xc7}\x9d{\xa1P7\xd2T#\xb5\
+\xa3H\x068\xa9nD\x94qLp\xe8\x08\x10\xc9\xcd\
+X\xaef(\xc9l\xccm#Tq&\x1c\xd0\xdc\xe0\
+$N\xb7m\x93\x016e;\xef\xaf\xdc\xb5\xab=\xfe\
+\x7f\x10\xeb\xc0\x9b\x848\x9e$\xd4\x8d\xbb_(\xb0\xa0\
+\xa1\xa2k\x16=\xa5\x89 K<\x8c\x8di\xd7Zb\
+DF\xa5\xacWk6L\x02\x1c \x8br\x16\xf5\xf1\
+\x9bj\xbb\x98\x22z\xf4\xb8\xa6\xcd\x92\xcc\xc2\x8b\x1a\x87\
+\x93\x0d\xc5\x1b\x7f\x1a\xf2h5\xbcg\x8c\xc4f\x0d\x1c\
+\x0c\x15\x1c\x5c\x1cXJ}^.4L\x8fM-^\
+G\x0d6mn\xa0(\xda\x00AT5\xd7mod\
+\xd9n\x90\x1ad\xd6w\x98\x028J\xac\xb7P\x1d\xc9\
+\x98\xcefR\xc9\xd0:\xb3\x94\x19i\x1c5j\xff\xc9\
+\xe4\xf3w|\xefB35\xf5\xccc\x1cD\x1cF\xda\
+\x95A%$\xa0\xeb\xccu\xb63\xa4\xd6\x92u\x00G\
+\x10\xc6\xce\xe5\xce\xa8\xaem\x87\xef\xa9#\xc5o\xb8\xcd\
+\x9f\xb7c\x90bh\x9c7\x22=\x04f\xd1. \x03\
+L{1\x02\x22\xa6\xa2\x0e\x9f\x11\x1a\x83\x88\xfb\xea\xfb\
+\x93\x86\xc5\xc56\xa0l\xb8$\x93\x8c\x80\x01\x01\x89\x9b\
+\xc7\x80D\x06\x22Xo\xb9>\x02\x008\xc40\x22f\
+\xbe\xa7hK\xcf7\x8e\xd8\x9f\x1d\xf8\x80\xc9B\xa0\x95\
+\xe7\xcd\xe7\xb8>\xd6\xe3\xd9n7\xcc\x83\x8d\xed\xe0\xba\
+]%\xea\xea\x19P\xf3\xfd\xc8\xdaf~\x97\xe7\x8ec\
+N@\xa6\xddW\x1f\xd18\xfa\xec\x9bP\xf1\xc9\xc8\xc1\
+\xf0\xf3\xb8\xcc\xd2+D\xea(eA\x9c\x96\x0c\xaa\xc5\
+\x03\x93A\xe0\xcfS\xeb\x9e\xf7\x85\xe7\x89\xc3\x01#\x80\
+\xf5\x9d\x00\x03\x99i\xabK\xe7s!\xf3\x8b\xc1\xbdo\
+A\x15%\xf4\xef$U\xd7\x99\xf3\xfe\x16\xa1Ryi\
+\xdf\x96]\x0d\xa8\xb9%\xa0\x8ah\x1c\xea\xef\x88Ty\
+\x1d\xcc\x1atg\xfe\xcb~\xf4\xd1Z\xcb_\xda\x9f\xdd\
+]\xdb\x82\xcdm,T\xb1b\xa8\xce)\xb6J{G\
+\xd7\x8e\xf3{\xa9\xf5\x04\xd5\xda\xb5\xfe\x99y&c\x8e\
+F\x80E\xde\xf2~\xe3H\x10XQ\xc2\xea[M \
+\x80\xc0\xb5\xd7\xa9\xec\x92\x82\x88\xa1\x997\xa5=\xf2:\
+M\xfb>k \x94\xb6\xc5\xebV\xa6^\xda\x01\xf4\xd1\
+F\x1b\xe2\x97B#*\xea>\xef)\x0ag\xc7\x81}\
+\x8fv\xbf\x19P\xa6\xdb\xd5\xfb\x1c\x08_\xcc\x8c\x0eJ\
+\xb5X\x17^\xe9\x92\x81C\xfc\xbe\x1d\xe2,\x91e\xbe\
+[\xbb%\x1dzg\xee\xb3v~k\xab\xee\x93\x18\xc0\
+A7e\xb8\xff\x8d\x10\xaf\x1f\x10j\x09j\xb6\x05D\
+\xb4m\x93\xc0S\x9b\x8c\xad)\xda\x04\xa4JI\xc7=\
+M{c\x1c\x1c3\x15\xfa\x07\x84\x18?/\x10\xe2x\
+\x8e\x10\xef\xff[\xa8\x0c\xad\xfeUB\x93\x89\xb6\x88_\
+\x8a\xce\xe1h\xcbQT)\xde\xaeBc\xef\x99A\xc5\
+>\xcb|\x98\xee\x14\xd8\xb9\xd4\xba_W\x02\x09\xda\xa5\
+Ow\xa9\xca\x0d\x8d\xb6\x00\xdd\xc6\xdc\xd6\x8e@\xcb\xf4\
+sB\x1cw\x17\x9a\x0c\xf8\x03c\x89b\xf7\xce\xc2\xb5\
+H\x95yJ\x88\xfa\xd3\x85r\xbf\x8a]\xd4\xdf\xdb\xdf\
+\xd3\xdf\xd3$\xba<\x1e`\xcad;8\xdbAE\xfc\
+|\x8d\xa6\x1b\x03b\x8c\xb7\x0bq\xfc\xa9P\xdbY\xcf\
+m*T\x91E\x02\xc1h\x82\x11\xc8\xc8\xc0\x8cKP\
+\xd0\x94\xc8\xf5\xca\xcc9\x1c\xe2d\xb2\xc1\x08\xb4vU\
+\xee\xb7\x88Pz>\xe4\xbc\xc5_B\xab\xeb\x8dB\xe3\
+\xdf\x10\x90s\x1b\xe7\x5cG\x19\x7f\x9a\xd7o\xaf\x8c\x8f\
+\xfe\xafB\xb5\xb3\xfaw\xf7\xef\xea\xdf]KT\x11u\
+\x0fo\xa8\xb4Q' :\xbc\xc6v\xbf\xfc]\x8d\xfb\
+K\x85\xa6\xab\x92\x03\x18\xb3%v\xfd'\x84\x1a\xc0\x9d\
+\xbfq\xfe\x86\xf9\x1bJ\x80\xbft\xa3\x91\x04\xb7\xd6\xe3\
+,AwbVR\xc0\x12\x03\xee\x97\x14\x9a\xd2r\x97\
+ng\x00\xd2\xfb\x1a\xe3*K\x82aD\x118e\x9f\
+s\x02'\xdb\x8c:\x00\xc2\xfe:,?\xfa\x01\x8c{\
+\xbaW\xa0iBI\xc3\x82\xb2\xcc\xacYo$5,\
+\xd3\xeb\x03\xbfk\xfa\x89\xb2`\xc9,\xbc\xa3\xc9\x148\
+C_\xdc\xc6k\xea\x09L\xdf,\xd4\xccr\xb6]\xa1\
+-\x0e\xb5$,HP\xc0lxN\x17\x0e,\xe2\x08\
+\xc7\xb7,\x96v\xbb7\xf2\x95\x1b\xca:\x91x\xd4_\
+\xc9\xec\xc8L\xb9\xcf\x06\xe2!^8?])\x90\x19\
+\xb9\x85\x12B\xa6\x04\x03N\xee\xf7V\xce\xa8\xfc\xb9\xd6\
+\x94g&\x16\x03\xc3\x86A:\xb4\xdc\x07j31\xf4\
+0leF\xaeP\x0d\xb1\xcc\x94H\x93\xf1\xdd\x0d5\
+\x92v:D\xa6Q\x93E\xdd\xd7\xfd\xeb\xc9\x90\xa6\xb8\
+\x0cTA\xf7\xf1\x1c6\x0bl\xde\xd4\xc4IleA\
+\xd3\x16\xd1\x13\x0b\x114\x98\x17dT\xb3V_\xdfw\
+\xb4'\xec=M\xc6\x0d\xf1\x152\x5c\xf7\x94\xaa\xd21\
+\xa0\xb1Ac\xe8\x10\x98\xa1=\x8e7\xeeBI\xda\xa7\
+R\xf9S-\x98L\x16\x19\x1fS\xa9\xf3\xbe\x92\xa9\x86\
+)\x81aK\x06\xf4\xe1\xb1m\x0a]#\xb2\x0f\xbc\xc7\
+\x19\x0bK\x96\xa4\x10Iw7\x0bjd\xd2q\xa2\xdf\
+&\xed\xa6PU\xe6\xf9\xc8-^\xb9\x11AB\xfd\xdb\
+\x8ex\x8a\x22*?p\xb8\x17\xfe\xcf4\xcc\x1ajL\
+ioG\xcd\xa4\xfa\x85\xae\xd6\x04\xce`\x0a\xe0(R\
+\xaaC\xa0\x80\xdae\x8b@&u\xf2\x0d\x05c\xe6\xe7\
+\xd7.\xa5Q\xc0a\xdf\xc0~n\x97yJ\xa5\xd2\xd1\
+\xa74\x0d5\x85\xe3\x96\xb6A\xbcV\xd3W\x9e\xc0\x95\
+\xdc\xbd\x8d\x9a\x8c\x19\xe2R\x88\xf8\xfc,\xf0S\xdf\xaf\
+;L%\x7f\xa0\xc9\x84\xa1\xa2\x0c#\xc8\x94\xd6\x128\
+\xfc\x90)k\x7f\xa9\xd4\xac\xec\x9b\xba\xe2P(\x9d\xd3\
+]\xa7\xbb\x96\x86 l,\xce\x9c\xa0MBD9)\
+\x82lTb\x12\x5c\xdbP4\xcd\xd8(\x99\x90C\xbc\
+\xa0\x7f\xb2\xc9xB\xc5&@\xa7\xe7\xfe\xf4\xa6\xe6\x90\
+\xf1@\xa0\x88\xfb\x83\xe3\xa3\x0c\xe8\xeb\x1c\x91\xdf\xaba\
+n\xa0\xc2\x8d\xea9\x19o\xda\x0b\x9a\xea\x95\x869T\
+=\xab\xfbg\xe6\xe5\xd9\xe3<\x8c\xed\xbd\xb4\xf9If\
+\x0d\x1b1\x19F\x1b\xb8\xe9\x00!\x8av\xb5k\xde\x1f\
+9f42\xc0\x85\x03\xcc\x865\x1b\x18 \xb3\x8f\xe3\
+\x87X&G\xd6\x0b\x1cG\xe65\x14dj\x0f\xa1\xb4\
+\xd9\x01Ss\x1f\x05\xa6\xc3\xb8\x1a\x19I\xa6\xb6M\x8e\
+\x14\x9a\x00\x06\x8e\xa9\x1d\x83\xac\xf9\xc5\x91Z\xd2\xf7\xa1\
+j+\x8cZ\x00[\xd8At\xc6 \xd7\x17\xb7\x9fK\
+\xad\x01;\xa4\x999w;\xb5\xac!$pH\x06\x14\
+\xb5v\xd61\x02:\x04D\xc8\xc8n\xee\x80\xf4/=\
+.-R\x97m\xee\xc88s_\x09\x08\xb0\x0e\xe0\xd8\
+3.Y\x07g\xdbz>\xa7 3\x8f\xf99\x98\x01\
+<\xd7{}\x1f\xa1jb(\xb2>-\x9a\x81\xb91\
+phC\x22U\xa0\xab\x06\xc0\xb8>\xad\xeaL8\xe3\
+\x1a\xcd\x0bS\x8e3\xa3K[W\xda\xe01\xae\xb8N\
+\x02\x0c\x5c\xa7\xe7W\xb6+\xa4\x16\x9f\xfd\x86\xb6\x92d\
+\xe8\x09\x98\xfb:2p\xccz@\x80\x83q\x89\x08\xa1\
+E\xb5\xd2\xc1\xc7niER\x17m\x1c6\x18E\x88\
+nV\xad\x85\xc28\xc8\x9aw\xc4\x0b1\xcc\xd0\x0aA\
+\x9d\x9f}\x15\x83\x9f}\x05\xa6\x9f\xd6\xed}\x9b\xf6g\
+\xee\x823\x1c(4\x01m\xdb\xb1\x8c\xa3T\x9bF\xd4\
+\x17\xd1A\xdaxAY\xa5?;\xed\x0e\x9dy\xed/\
+\x12j\xff\xf3\xa4l\xbb\x0d\xed\xf0\x5c\xa1\xa9}\xb7\xbd\
+\x91\x81n\xb4\x80\xe4\x80]\xd7\xac+\xacS\x88E\xbb\
+\xb42_\xab\x0b\xd5\xd7\x9a\xd2$\xb4\x22HL\xb0>\
+?\x22\xbb[\x8c\xcf\x85\x80\x90k\xf4\xfb\xd7\x08U\x8c\
+\x90\xf3\x08\x07\xe2\xdd}k\x7f\x11\xc0\xfcn\xc1X\x92\
+zL\x93(\x82\xba\xec\x0c\xb7\xf6\x1f\xed@\xa5[\xcd\
+\xae\x8d\x88\x17\xe7\xe5\xf10\xf7b\xa1\x19\xc7n\xb3\x99\
+\x81\x0b\xd6\x05\xda8~I\xaeLeT\xa5\x03lQ\
+\xaf\xe9[\x85\x1a \xa6KP\xb6\xb9\xdb\xd1\xd4\xe9E\
+\x02\x8b:atUc\xff\x99\xb1\x9a\x1aF\xfb\x09\x0d\
+\x93G\x0e\xe2\xad\x1e\x97_\xae\x01\x11j\xf6s\xbc\xc8\
+Aa\xdf\xbf\xac:\xe6\xc9L 3\xfd$\xa1\x06\x02\
+RK\xc0\xed\xd8\xfa\xef\x07\xbe\xe7\xe5c\xa8\xfb[?\
+\x0d\xcc[\xd4v\xf7\xfa{\xa54A\xe3\xf0>\xc1\x81\
+\xef/4\xe3\xc4\xcf}\xbam`;\xd7f\xbf\xc3\xcf\
+m\x07\x07\xbe\xc2.\x99\xdf[h2\xb7b\xf0\xfd\xd5\
+\x09\x89\xcb\x1a\x86$\x0e\xd6jBe\xfc\x0c\x8b\xc7<\
+^\xbciog\x86\xd6\xdc\xcb\x848\xfe]\xa8\xa5*\
+s\xb7\x08\xf1\xfa3Bu\xb8\x931C\xbfx\xdf\x9f\
+\x14)e\x9e\xda\xde\x87I@\x0d\xfa\xdc\x01B\x0d\xd4\
+\xd1\x15\xaa$.~`\x86d\xac\xab\xd3\xfd\x85F\xdb\
+\xc3\xe3\x0am0\x02\xb2\xf3_\x16\x9a\xf6\x8e\xf6/\xb2\
+\xa4\xce\xe3\x10\x0d\x85,\xc5\xb0=\x95\x19~\x12\x0a\xac\
+\x8b\xccK\xec#4a\xe8\x16\x80\x08\xa5\xdbzf;\
+p\xe6\xb1\x99G\xa9\xcda\xe6m\x06.~\x17~\xde\
+\xef\x0as\xe3WE\x1c\xd6\xcc\x9ba\x8faOi\x8a\
+\x0d\xab\xfa\xf9!Z\xec\x00=\xdd\x10\x94\x16\x9c\xca>\
+\xfd\xe6\xf0M\x8d\xdb\xe93\x84\xba_\xa0\xb1\xb4\xd0[\
+\x84\xea\x98\x13\xf8I\xc7\x9cu\x97\xd7\xb4\x1d5\x83\x02\
+qT\xec\xd9\xd4\x5c\xf0~\xd8\x1f*T\xa6+\xdd\xdc\
+\x92a\xeeD\x88z\x8aId<\x19\xb6\x04\x0a7q\
+\xc2n\xb6$\xce\xe3k\x01\x8e=\x14\x09\x22\xc0\xfd{\
+\x85F5Z\xee\xf1\xa3\xff\xab\xed\xd4HI\xa5o\xb5\
+\xb6\xcf\x7f\xdba\xfaf5\xbc2S!\xb7\xec/M\
+\xc6\xdc\x86\xe7\xf4*\xa1\xe9;)\xca\xc4\xa3\xaa\x8ao\
+\xa1N\x9chG\xf7\x83\x1e\xf8\xbf\xb2C\xfd\xa8f\xc3\
+\xbb\xba\xc8\x9a\xa4\xeau\x99\xf0\xba\xd1G\x08M-(\
+mfN\x15\x5c{\xfd\xc6\xa6]\x96)\xffe\xc3\xbb\
+\xa6\x89\x04\x91!\xa3V\x9d~\xe3l\x08\xca\xd3}\xa9\
+vG\x80\x82\x0f\xb5%\x1d*Ixm\xdbdP\xe9\
+\xcbND\x8d\x0c\x96\xcf\x03C\x05\xd5Z2\xd1\x99\xa9\
+\x90Y\x7fi-!H\xb1A\xda\x87Y\xcb\x80\x0c\xa8\
+D\xea\xfaOy\x03;\xd4\x86\xcdskMU\x1a\x84\
+f.\xe4\x02\xe4\x8c\xff\xf4\xd7\x82\xa97\xaa\x91\x9e\x13\
+\x9a\xda>\x99\xafg6\x99\x1aT\xc5\xb9O\x18\x88\xa6\
+\xe6\xa5h\x05\x14\x15\x8b\x9cQ\xeb\x82\xa1B\xdbH\xda\
+0e\xad\x19\xa2v8dP\x99\xa1\xc8\x98\xba5\xbd\
+D\xa8\x91\xe7\xecc\xeb\xc0@fb\xa0J]R\xe4\
+\xa9j\xe6\x00\xaa\x18\x222g\x8d\x1bs\x96R\x90)\
+G\x0cH\xee\xc2\x83\x8d\x18$\xfd@\xe9\xbb\x8c#\x02\
+\x95\x99\x05\xd1%\x11\xa9\x81\xe1\xf6\x7f\xa5 `\x07\x0f\
+\xc7I\x93Qu\xc6\x9a.\x0bi\x88iA\xd9\xccZ\
+\x19gV1\xc1\x22*\xb3c\x15{\x1aN\x0b\x9c\xea\
+y\xb3G5\x9c\xb2\x9b\x82\xc5-\x11\x09J\x87\x06f\
+\x8c\x08\xdbOl2\xac\x18`3\x0es\xa1\x8a\xed\xd4\
+\x18\xe6.U\xa1;B\xd6\x1a\xbb\xedb1\xecN4\
+\xd5\x0e\xf5\xecs\xab\x036\xff*!\x8e[\xceoY\
+2\xb01\x1b\x0ac\xc5\x19\xaf\xb9\xfb\x04S\xc7\x16o\
+2\x85v\x10X\x1f\xa6\x1b\x09U\x84'\x03\x01\x16+\
+\xa5\xa4)\xcf\x9fZ]\xc63\x99J\x02\x880@P\
+\xf3\xa5\xd6\xdb\x1bwi\xabxum\xbbH\x89G\x09\
+\x00\xa8\x84\xe1\x85\x82\x19\x05\x174j\xf9O,z\xc2\
+\xa3Cti\xed\xdaA\x7fh\x1c\x02\x15<h\xc3\x80\
+:?<y4DY\x07'\xbfuF\xed\x9d\x0e\x00\
+\xcc\xb6\xd1\xa3\xef\xf7\x8d\xee\x13\xfc43\x0dp\x90\x18\
+\xb7\xb3\x86;\x8e\x13\xf7\xd9\x8c\xa3\xcc\xe4\xcf\xdc\x9ft\
+\xb4y\x0d\x05\x10j;%\x1bdX9>wtd\
+\x93\x09@\xad1\xd4k4Ip\xfc\x9c1\x8d\xddh\
+T'\xa6F\x9au\x9cZ\xd3\x17\xf8\xb9\xce\x062p\
+\x04p\xa0\xb7\xb2c\xb2\x93\x1dXJ\x9dh\xcf\xc8\xdf\
+s?\x09\x88\x11\xf8\xa6D\x80\xf7a\xba\xfd\xca*\xf6\
+\xd6\xce\xc9\x80\xc6\x9a\x0e\x18\xc0\x98\xc0\xb1\x1e<.V\
+u\xdbA\x1cu\x8f\xbbt\x80`\x08\x90\x09\xa2+\x0f\
+\x0e,\xcf\x95\xffp\xbcy>\xa8\xf8s?h\x1b\xf8\
+\x1f3}p\xf0\x08(1.\xec\xd8dI\xc7:N\
+$D\x90En\x00\x00 \x00IDAT\xe0 \x93\
+\xc9\xc5\xe1A\x9c\x11\x11M\xf6]J \x18W\x8c#\
+\x02\x16\xb3j\xf8d\xf2ad\x10P&PB\xad*\
+\xf3\x83\xf9\xc9\xf3 \xc6\xfdGs\x01\xc3\x89\x12\x01\
+\x18\x09<g\xc6/\x06-\x81\x5c\x02`\xec\x87\xdcW\
+\xa8\xe6\x88\xe2\xcd\xda\x09<?\x1b\xc2\xd9\xd7\x19\x06\x02\
+\xfb'\xd4c\xdbqY\xd2\x87\x8a\xb7\x99n\x94\xf4M\
+\x0f\x15\x9a\xb6o\xdcg\x02B\x04*px\xc98\xf1\
+\xfc1\xe4\x99\xd7\x88V9#\xcb~\x99\xe2\xc8V?\
+O\x8d\x10\xaf\x9b\x94\xaee\x00\x87\x8c\x1f\x0c\x01\x02 \
++\x8c\x19\xed\x0c\xf41n-\x9e\x98\xe3\x81qB \
+\x16\xad\x14\xda\xa2\xe1\x00X\xfc+\x03\xffn\xfb5\xbd\
+L(\x99\xd9\x80\xb5Z\x9e\xdc\x94BQ2\x86\xc6\x08\
+%\xae[\x8c]\x82R\xbc\x9aR\x10\x07\xf2\xb2\xbb\x82\
+\xe7\xd9\xf4\xb3B\xb5\x9fK\x89\xda!\x0dCTb\xcc\
+77\xa5\x85\xb4_s\xcdn\xbf\x93\x10\xe7\xbd\x9b\xd4\
+\x8e\x1a\xad%\x07\x22'\x878p}|Q\x85\x91\x9d\
+rf\x09 \xb8\xfbV)-x\xa1K;\x96\xaf\xf6\
+\xc2\xdcg\x04\x8b\x9e\xddi{\xe8\xcbM\xad:\xfd\xe2\
+\xcd\x14\xa0\x06:\x19p\xcc\x7f\xf6{?W\x02\x0a8\
+L\xd9\x0f\x9d\xb6\x8a\x1f\x13j\x1f\xfa\xb9#\x02\x1f\x89\
+\xd7\xd7\x08q<(\xa0\xf6\xd6\x0b\x0b\x0d\x93@\x09\x05\
+1\xf7\xd6\x09\xac]\xd5\xdf\x8bF\xc7\xcd\x0d\x93\xd5v\
+\xcc\xf4\xf5\x81\xd75\x22\xd7Z\x87\x9eo;\xfe{\x1e\
+g\xcb7\xed\xe3hc(\xbbS\x01\x9e\x9b\x0276\
+\x8cQJ\xd6\xd8\xf7`\x08[\x1c\x8fn\x12h\x0b\xf4\
+\xcb\x09q}{\x09\x95\xa2\x8f\x06B\x964\xfby\xd0\
+\x86\xb8\x7f\x91\xd0d\x8c)\xad\xf1|\x831\x00S\xa1\
+\x7f] \xfc\xb8\xb9\xd3\x85x}m\xe0\x9a&\xb0e\
+\x07t\xfe\xd7B\xd3u\xc9\x8c\xc1\xf9\x0f\x0b\x0du\xdc\
+\x89\xc3\x14\x99\xa4v\x9f.\x1d\xd8\xcd\x88\x96\xef\x224\
+\xe2t\x94\x1c\xc3\xc4\xa3\xeb\x93\xa9\xee$\xba2\x00B\
+\xc6\xdf%8\x1c\xfb\x1f\x0b\xb5-t2\x84\x95\xe6\xfc\
+h\xd1z\x1b\x03n$v\x9c\xb0\x9d\xff\xacP\xb7\xb7\
+\x98=E\xe3.\xbbn\xbdsL\xe4M\x7f:\x96\x84\
+d[\xd8\xd8\xcd\xfb~\xf4\xa3\xb4^\x96\xd2\xef\xb9j\
+\xc7/\xb4\xa5P\x19f$\x1c\xa6\xef\x14\xe2\xf8\x5c\xa1\
+\xfa\x99\xc9\xc8D\xd4\xdc\x097\x98\xd3\xe9\xd7\xa0\x11B\
+\xb79\x97t\xa1=2=K\xa8\xed\xa7c5[u\
+X\xb5)y^_\xa8\x0e\xff\xb0\xe5\xf0\x82\xe1\x05U\
+\xfba\xfa\x80P\x03+\x0b\x1e\xdeC\xa8\x0f`\xee\x15\
+\x81W\xdaQ9\xb0\x1a|\xd3\xad\x03[\xd5\x05\x87H\
+'\x14p\x22\x94\xa5&\xe7=\x0d\xd5Y\xa2\x1f\x93\x86\
+\xb2\xa9m\xff\xa0\xf8\xbe\x17\x09q\xbcHhT\x10\x9d\
+\x09L\xea\x9e(\xea\x87\xdbP[\xb2j\x00h{V\
+i@y\x90\xcb9\xf2\xbc\x99\xd5,\xcfi\xc4^4\
+,\x7f\xd4\x88\xb6(\x22uL\xad\x15\x87\xcaE\x1b\x12\
+\x22\x9d\xb9\xe1)oz@\xb3\xa0S\xa3F&m\xaf\
+Q\x8d\xb2\xa8\x89^\xe9\x05i\xdd\xa6?\xf8L\xc6:\
+\x0d\x1e\x0cz2bP`g\xdbn!\x0ahm\x00\
+\xc4(\xfas\x02_mD\xcc\xacf\x9e5PD\xd0\
+\x5c\xb3Z\xa8x\xf3M\x17\x04\x07\x0cJ\xcd\xcf\xaf\x9b\
+\x09e\xc7.\x0dc(\xde6\x10\xfaw\x09v<\xc2\
+\xb1\x9c>%\xb0Q\xd3\x1d@\xf7\xe3\xd5\xb5\x8d^\xb6\
+}\xbc\xa8\xc8s\x8c\x11\xc6\xf3\x9a\xda!j\x1aQ\x19\
+\xe5\xfa\xa9='\x03\x8d\xa1\x8a*3\xa2G8`\xb4\
+w\xe25\x94xe\xf2?\xd9\x881\xb9F<\x0d,\
+\x1b\x16\x99I1u\xbf\xd4v\xaf\xdf8\x18|\xafx\
+2g\xd46s\xa8\xfag\x7fN\x99?\x9fn\xfa\xc8\
+\x13\xc9%\x83Fw\x03\xf59^\xb4aX\xc0(\x80\
+\x02\xa58\xe3/+\xc59E\x5cl\xb0$\xe5O\xf7\
+qGg\xce~\xda\xb4\xf5\xa1\x06\x92\xfb\xa9e\xfal\
+\xcf\x9f_\xd7\xbe\xa1e\xde>\xae\xd66f\xad)\x0b\
+\xb7\xc6\xc9\xcf\x9a\xb6J0_\xa8\xd1\xc5\x00\xc7@'\
+cI\xc6\x0e\x83\x0d\xc7\xc0\xedVp\x04\xb2\xc6\x18G\
+k\xb6\xff\xb5\xb5\x22\xfa\x87\x85X\x9f\x1e\x16jF.\
+\xfb\xf7:2\x9a\x01\x08\xcd\xceGW\xeaf\xd9\xb8c\
+\xe1\x83\x91Z\xda\xca\xbc\xa6\xf6/\x9e?O\xa8\x06I\
+\xa9\xd5\xfae#\x0ed\xad\x84\xa4(c\xf8\xe3\xc02\
+\x7f\x09\xa0\xfcCh\xd4\xc7\x11\x17\xa2\x7f0\xed\x06\xd1\
+dP[\x9f\xef;\x00\xb2h\x13\xd8\xa4}\xa1x\x02\
+\xcf\xf6|~Eet\x94\xd2\x84\x1b\x1af\x84\xdb\xb7\
+)\x0cY\x02\x91\xb4\xb3Q\xf7\x8d\xc3\x1aG\xc8\xaa\xbf\
+\xb3\x22>\xe9\x08p\xff\xef\xb1c\xc4|\xe1\xfeR\x0a\
+@m/\x99o\x0cc\x98\x03\xb3\x99k\x1cX\x1c8\
+;&\xa81\xe7x\x85\xfa\xc6\xbc\x9aQQ\xcf\x8c;\
+\xb5\x86\x1bYm\x17*2T<\xc43\x09T{\xfc\
+*\xacU\x02[\x1be&b\x0cX<\xd1\x8e\xcdR\
+v\xe8`.\x10\xe8X\xd8\x19p\x02'8P\xac\x0f\
+8\xa28&\x8c{\xd6/\x02G\xd4\xa0\xc3\x0c \xb3\
+B;\xbb\x8d\xec\xc0\xdee\xc7\x91\xef\xc3\x90\xe2~\xb0\
+\x0f\xf1\x1f\xcf\x97\xfd\x86Zpgt'\xab\xb9\xbf0\
+\xe2\x898N\x9d\xaf\xe3\x11~\xeen\xfb\x17f\xfc\xe8\
+\xd8\xe1\xd8\xe2\xd03_\xd9\xbf\xc8\x18\xe2\xd0\xbd\xd5\x22\
+r\x04n\xce\xf7\xf7\xb2.`@\xa3\x92\x8cf\xc4L\
+\xd7\x89,\xc5!#\x0dU\x1e\x87\x9b\xf5g\xb6\x9b\x05\
+%D\xb3\x22\x80\x9c/Z\x06<?\x9e\xe7\xacH%\
+%\x0e\x1c\xb9~\xbe\xbf\x8a?\x8e\x8e\x00\xeb\x01\x812\
+\xd6C\x9e\x1b\x0c!\x12\x0a0\x83,6\x06E4\x0d\
+}\x1cqS\x9b3@\x82\x88.\xf3\x0c\xd1M\x1b\xd0\
+\xd9\xc6\xd1\x99\xde,-\x80\xe2\x8d\x03\xed\xfb\x98\xea\xe5\
+h\x1f\xe0\xb0;0\x02\xf3\x08\xc3yz\x8aP\x990\
+\x04R\x93Y@\xc9\x04\x14c\x02\x0e\xdcG\xba\x18\xfc\
+Ih\xc4\xba(5\x83\xb1\x84=\xe8\xe7\x98\x19R\xd6\
++\xe6\x11\xf3\xd4%j\x04Dg\xdb\xf6\xd2\xb6\x0e\x8a\
+7\xccCj\x83\xa7\x0f\x0bu\xfd\xa0\xe6\x18\x839\x1d\
+)\xd6m\x07\x1a\xb3\x9d+\xfd\xedi3\x87\xd6\x0bm\
+.Y\x7f\xcch\x18\x8e\x11\x1a\xca\xbd\xbf?\xdb\xee\x99\
+\xe9\x14\xab\xdc\xd8%\xe7\xe3\xe3x\xe8\x9f\xedL\xb5\x03\
+\x03j\xb6W4\x1b\xa4Mp~\xd36q6c,\
+;\xeb\x81\x869\x06\x95\x1f1=\xfd\xfd\x0f\x9a@*\
+\x81\x1a3LJ u\xafb\xe7\xae[j\xac?;\
+9\xbe\x88\x05r\xbfa\x12\xbak\x0a\xd7\x01E\x9f\x84\
+Q\xbf\x98P\x13[\x880\xf6k\x09q\xdc+\x10v\
+\xce\xdcu\x81k\xad1\xb0MQQ\xbf\xac\xbf\xcc\x81\
+\x85\xfd\x8b\xddvoy.\xbfw \xddm\xc1\xbb\xef\
+:\x80D\xe9\xa6\xa4\xeb\xe2>\xce\xfd[\xa8\xd3\x9c\x80\
+\xcc\xc3\x7f\x08\xdc\x5c5\x96\xc8\xe4N\xb7\x12\x9c\xe0;\
+\xabq\xe0H\xd8\xcctgR\xa1\x85J-\xf0\x83\xfa\
+}\x84j\xb7\xcc=S\x88\xf7\xe7\x85F\x14\xd0vf\
+\xb6\xc5<G\xb0#\xbba\x93\x00\xb3\x86J\x8eG\xba\
+')Q\x14\xebK\x7f\x87\x10\xbf\xf3)\xa1j\x04\x94\
+\xdd\xe9\xa1Xv\xcf\x0e|\xb52\xa7\x0b\xf3(\xec\x82\
+\xe9\xb1B\xd3\xae\xda]5\x86\xcb\x85F\xb4\x0e\x87\xdf\
+\x89.\x02,\xc9xc\xfff?d\x7f\x81\x89\xc6\xba\
+\x08%\x9fL\xb85s\x10}O\xcd\x0d\x18\xe8\x94\x22\
+\xd1f\xd1\xfePQ\x90Z\xaa\xe9\x0a\xa6UaAm\
+C\xad4F\xb1\x8fl\x1fr\xbf\xa7\x07O\x0f\x99\x1e\
+\x5c\x12dE\x14\x19Fr:\xea\xeb\x08\x95\xa1\xca\xfc\
+-\xcd-\x86\x9aaG\x83 \x99\x8a\x88\xeeA\xd1\x87\
+\x82\x7f\xb4\xd00\xfc\x16\x17j\xc065?l\x0f\xd0\
+\xce:\x03\xe3\x88\x99\xd2\x16^\xa2\xf3;\x16m\x94\x91\
+Y\xbf\xbf\xbb\xa7x?\x8c\xd5\xa0\x88:\x22\x96\xaf0\
+\x80\x02\x01Y\xfac\x7f{ARK\x9c\x99(\xea\xf3\
+\xeb{\xa0\xbf\xaa&\xa0\xa8\xad(5g\xcf\xf3\xc4\xd8\
+2N\xe8mB\x131\x959\xf9<\xb7\x0d\xdc\xde*\
+\xa0K7b\x1c\xceX\x91\xf9,\x81\x85\xad\xab\xe1\x80\
+h\x02\xe2Ve\xe3\xb8\xbd:j\xd3\xd7\x06\xf6q\xa4\
+5\x16\xae\xe9\xce\x8177\x11\x1dj\xd8\x94\x01\xdd\xa2\
+\xd6(\x0d\xff\x12\xe2\xf3\xbb\x085#S\xdc\xd0\x1d\xc7\
+\x1a9Q\x18\x87G\x09\xcdFd\x039\xd5\xbbU!\
+{T\xdd(\xe6\x8f\x08\x1ci\xea\xc6\xc7\xdc\x86\xe5\xa5\
+6\xa0\x1f\xd1\x18\xcc\xfc7+\xda4[\x03CM6\
+\xb55\xce\x081 \xc9hM7\x16\x1c\x09\x85\xea\xfd\
+\xd3\xea\xb8\xa4\xba\xbb\xc5\xd6R\x04\xc5\xed$\x8a8\xde\
+\xe6M\x04\x17\x8a:\x86\xd4\x0eE\xaf\xb9\x9e?\xaa\x96\
+\x04`\xce\x0d|\xbdR\xfe\xa6?\x10L\xa9\xbb\xbe\xf4\
+\xad\x0c4\x94\x5cQZOo\xd4}\x9dQ\xcf~\xc1\
+\xa8\xf5c\xc0\xdf_tl\xab\xa3\xb0q\xa9&M\xd1\
+\xb44h\xe8\xff\xae\xda\xce+\x1a\x91#g\x82\xe9>\
+Q\x22\xd8\xff\xaa\x0eIR!Y\xb0\xc8\xf0a \x9d\
+W\x90\xed_\x92\xaaL\x1f`\x166\xa8\xa1\xca\xc3\xad\
+\xee\xf3\xdc\xbf\xd1$0\x93\xa2P\xcd\xaf\xab\x91\xbd\xa4\
+\xea+@ql-Y(\xee\xd3\x16\xb5v(\x032\
+\xb4\xef\xc2p\xc6\xf0#@\xf2@!IW\x07\x15\xc7\
+\x0b\x91D\xfa\xfbB-\xa7\xf6\x5c\x01\x84\x1f\xd76x\
+\xa9\xceLD_\x92-W4\x8e\xe8L\xa6(3f\
+d0p\xd8\xfc\xef\xd9\x16\x13\xd1\x13\x0c8j\xcdq\
+,\xa1\xca\xe2\xe8\xd8aJ1\x22\x8d\x0fQ\xa2\xce\x12\
+\xeayL\xb7\x0f\xbc\xd4L\xa1S\x1a\x11\xc8\xfb\x8an\
+\xfb\xb8@/\xa8\x86\xde\xfc\x0f\x85f>\xba]\x0f\x91\
+\xe5\xe9\x0f\x03?hT\xf2\x1dX\x99;3pV\xa3\
+\xd6\xbat\xb6y\x1b\xff\xc3\xb1c\xbcb\xc0\xc2\x18A\
+|\x0a\x87\x10\xd5lg\xae\x93\xf2\x8a\xf8\xa3\xbao\xdc\
+\xda\x04\xb6\x1c8\xcd\x8c\xb3)\xa3\x88\x01N\xcf\x0e\x88\
+1\xf5\xc7\xc0mu\x1cS\xf3K@ox\xc0\x19\x8c\
+\xfb\xff\xbb]^\xaeC\xbc\x86Ic\x0d\x96\xf8\xeb\xb1\
+\xc6\x0f\xc7\x87\x8c&\x0e\xc2\x03BS\xc3\x8a\xe1=+\
+\xf2\xc7q\x96A\x81\xe36\xd3\xf6)\x03\x14\x04N\xd7\
+\xb3\xc6\x08%(8,\x8f\xb7cf\x07\x11m\x93l\
+\x0b\x07\xf5\x1d\x03d\x1bS\xd1\xc9d>\xd5\x8e\x15\xa5\
+J+X\x05\x9f\x8c7\x01\x00\xe6\x15L\x05\x02\xb5\xdc\
+7\x0c\x1d>\xc7|\xe1\xfd\xd9\xae\x0f\x9d\xdbmb@\
+\xc1\x08\xb8l4\xbc\x92Y\xc0\xfcX\xc3\x8e=\x8e,\
+\xe7\xc7\xbc\x81b\x8f\x88\x1c\xa5\x22W\xda\x81\x7f\xa2K\
+(6\x18\xfb#\x87\xdb3\xaaX\xa3\xae\xbe\x9c\xd7\x19\
+\xae\xf7\xb1f4PBA`\x01\xc7\x9a\xf3@\x5c\xd0\
+*\xc7\x93\xddG\x06[\x5c\xd3x\x9f\x08\xc8\x12\xe0\xb0\
+\xd8X\xee\x83\x94~\xf0\xfd\x1e\x17\xd9\xf6\x16f\x15\xd7\
+I\x00\x82q\xc1k\x98'8\xfc\x8cC\xd6K\x1ch\
+\x9e\x1b\x8c7\x1cr\x1c\xf5Yf\x0a\xf3\x96}\xc2\x0e\
+S\xaa\x93\x1f 4]\x09h\xf3E@\xc4\xf73U\
+\xed\x09\xd4\xa2\x15@&\xf7m\x05\xb5m\x9c\xfb\xa1\xe7\
+uQ\xb2\x00u\x1f\xea,\xf7\x0f\xed\x16gls\x9d\
+\x22\x83\xee\xb6\x80i\x86\xb8_x\x8a\x9b\xb9\xf4\x8d\xf6\
+o\xa5M\xf3\x9b\x5c;\xbdSS\x02g5pD\xef\
+\xfa\xdd\x85\xca`\xa0\xado\x8a\xe0\xb9[@\xb69\x84\
+\xe1G\xc0\x0aU~\x98t\x04 \x08\x98\x10x\xf1\xbe\
+L\x00\x99\xd2\x89\xd4\x0eb?&\xc0\x03C\xcf\x99\xe7\
+d\xa0\xc1X pC\x89\x155\xe3\xbb\x8f\x19vJ\
+W\xb3{\x08%\x01\xbe\x0f\x04>q\x5cR\x0d\xdf\x09\
+\x0e\x98\x828\xbaY\xbbo\xc3>\x13U\xde\xa7\xb3F\
+\xdbbk\x93M\xdcm\xe1\x81\xd1NC\x141f\xe9\
+2\x12\x03\x84\x91\x073\x8e\x80\x055\xd2\xfd?\xfb{\
+\xfb\x7f\xd6\x1a{D\xe62\xa0F\x80\x8e\x12AY%\
+76L)\xf614\x17V\xf4}<~dzd\
+I\x8a\xd5\xde\xb3$\xc0%\xb9\xfd\x15B\x1c\x97\x10\xea\
+\x91\xda\xfe\xd4\x96\xf8m\xe0\xaa\xdaUl\xee_\x818\
+\xdf\xb9\xd7\x09q|\x87P\x98\x00\x8b\xf4\x8b4\xf3\x00\
+\xbb\x19F\xd1\xda\xbe\x9e\xd3\x9d\xa1\xb6=K&=\x19\
+,\xce\xd4\x17\xffa\xe7:\x0f)]\x9e\x9e&\xc4}\
+]Kp\x09N\xac\xd7\xfd/\x84\x9a\xc1V%\xbfj\
+\xf9\xa1\xd4\xf7/\x10ji\xea\xdc\x09B\x0d<\xcc\xfd\
+Xh\xbaN\x90@\xa5\x9b\x03%\xad\xacO\xee\xaa\x81\
+&\x00\x01'\xb4\xbf`\x0c\xd0U\x8c.I\xa5k\xe3\
+\xa4\xae\xcf\xf3\xb7\x07\xc2\x9e\x9c\xff\x8f\x10\xc7K\x858\
+\xef\x8b\x03a\xa7N\x0f\x13\x9c \x89\xbf\x1b>$\xc4\
+\xf1\xa9B]?a(g\x04\x05\xff\x11Qm\xf7\x97\
+\xcfy\xcd:5\xdbE\x86\xf1\x86\x9d\xe7u(\xed\x1b\
+\x02J\x0e\xa0\xa5*\xbe\x13\xcf\x19h\xfc\xce8\x1f\x0b\
+#\xf2\xcf\xa5\xf6}yu5C\xdc\xaf\x04 \xffX\
+\xbbi%\xa3\x05\xf1\xf4\x05c{\xcbd\xb29\x91E\
+\xe9B2MZ\xcd\x09\xf9\x89\xf7\x08q\xbf\xbe!4\
+\xeb:\xa5\x0fh\x09\x10\x00vi[j#\xd0\xc5\xc5\
+\xf3 \x13X\xb6\xcf\xb3\xed\xa6\xc5])\xd5`\x9e\x93\
+8\x9f\xbe\x5ch\xc4\x9d}\xff\xb2\xa4\x94v\x99ow\
+\x89\xbd\xed\x83\xfe\x1f\x82J\x00\x14\xb1|k\xbc\xf1\x14\
+\xa1\x0e\x98\xe9w\x85\x86r#\x8a\xce\x9b\x1aq\x17\xf7\
+\x1f\xcd\xda\xea3\x02\x9f\xb7\x1a\xec\xe5\xa6\x1c*C\xb5\
+\xb2\x10\xdfw\x9d\xe0\x1a\x19M\xac\xa5\x84\xaa\x92\x9c\xd4\
+1;\xce\x85:vO\x13)B\x8cb\xcd\xc0ZM\
+\xed\xbb6\xaa\xb7Y$P\x91\xab\xa3\x84\xaa\xba\xcb\x86\
+\x94\x14\xdbe\x85\xba\xe1\x16\x0d\xcf\xdf\x8fb)R_\
+-\x22\x18\xcf\xab\x19\xee\x14\xaf\xb3\x0ac\x11/;\xbf\
+\xb9~\xff{j\x1ch\xb8~\xc5\x8e\xd1?L!|\
+\xb82\x02\xb2\x0d\x9b)\xef\xc3O\x03?3%q\xb3\
+\xc6`\xc6\x00\xff\xa6P)\x8d\xc33\x84\xda\xc7\x1b\xb5\
+\xd9\xac%<L\x8d\x1e\x9a\xc8\xba6\xa8%\x9b\xf6\x1f\
+\xd4N\xab_\xfc;\x1a\xaa\x19\x1b\x01\xda\x092O\x1f\
+\xb2\xc1\xbaP\x93\x11A\x9d\xdd\x94\xa3\xe2F\xee\xd6\x88\
+8\xca\xfc\xd9\xac\xd9@l\x80\xa5\xe8\x13\x99bJ\x03\
+0\x90\xdd\x8e\xafd\xceok\xc4\x05a\x8e\xc0\xe4\x90\
+y\xff\xcc\xccWU\xaa\xa0\xfb2\x0f\x7f\x13\x9a\xdf\x85\
+\x02\xe8\xf6xI\xcd\xc4\x80'\x92[\xdb\xa9\x8d\xd49\
+\x18\x01\xa6\xa2O?\x10\xf8\xa0\xef\xefa\xf5\xbe\x95v\
+v\xea\x87\xfa\xc3\x82*\xb2dC15\x11,\x86X\
+\x0c\x8c\xc3\x1a\x03\xbbU\xa5\xbe\xd7\x0b\xfc\xb3\x9an\x0a\
+\x94\x86H\xa3\xe0\xe6&R\x8a\xe1(B\xfb3*5\
+)k`\x15\x97\x96\xe3\xff\xf5\xc0\xb9\x8dCi\xf1\xcd\
+2\xce_P7\xbaR\x02\xf2\xce\x86\xf2J\x86\xc5\x0b\
+Ff\xeai\x13)\xb3\xec\x8fM\xcd\xae\x88\xb6\xdb5\
+\xe7A\xc6\x86\xdaM\x02\x0f\x18\xc8\xb35\xb7\x88\xae\x99\
+\xd2\x9a\x81'\x1c'S!\xfb\xef\x0a6\xf46\xf7\xb8\
+\xf9S\x15\xc3\xca\xd2\x0f\x8b\xbcL\x8f\x10\x9an\x01\xdb\
+\x0a\x95\x02\x08\x13\x82R\xa5\x22\x9a\xf7\xad\x1a\x98*\xeb\
+\xd5)~}pU\xeb\xcd6`8~\x5c\x0f\xcc\x88\
+{J\xee\xbc\x1a\xe6\x04\x14(\xf9\x802\x88x\xdf\xd7\
+\x85*\x9e\x18\xe6\xfb\xc8\x88\xf9\xb2#\xee\x04\xb6h\xd3\
+\xb6\x92\x99K\xcb\x8c\xaa\xd0j\x96\xa8v1I\xdd\xc3\
+Q\x22\x93J\xd7\x805\xac\x96~\xf7h`d\xff\xe3\
+*\x0a7:\xa68\xea\x04rn\x97\x0aKq\x10G\
+\xc7\x98\x0d\x1e\xd5v\x02O\x88\x04\xe1\xb00\x7fy\x8e\
+\xb3\x19s~\x8f\xf1\x86\x03H\xc6\x99\xef\x81\xb2\xef\x9a\
+\xd5\xac!\xc7\xc0\xc0A\xc3a\xc3a\xc6\xe0x\x9c\x1d\
+A2\xfc\x1b\xd8\xe1\x82\xe2\xec\x00@\xb6\xdf\x83:\xbe\
+\xb2\xbf\x87u\xea\x9f\x0e\x94\xe0A9\x10X4j\xfe\
+\xd8\x88\xf1\x91\x19\xe6zp`0\x08\x08|\xfd\xdb\xa5\
+s\x0f\xbad\xe8\x9f\xff]\x83\x9f\x19S\xee\xf7\x90\x99\
+\xfa\xf1~.>\x93Y'\xa3\x8e\xa8\x1b\x816\xd6c\
+\x9e\xab\xefC\xd6\x9c\xf3\x9c\xd0\x9e\xb9\xcd\xe2b\x0f\xf9\
+9\xad\xe8\xfb\xcb\xfd\x84\x81\x80\xc3\xcc\xf7r\xde\xd7\x9b\
+9\x05\x85\x9a\xf6D\xd4\xf4\xe3pS\xf3\xc9<b\xdd\
+d?B\x9d\xdb\x99\xb5\x1c\xa7\xcc3\x028P\xe8Y\
+\x17)]\xf4\xf7\xa4\xc3NM&\x8e.\xed\x99\x10\x0f\
+e=\x9a\xcd\xe8\x13\xc8\x83\xb9F\x80\x94\x92 \xc67\
+\x01\x09\xd6w\xe6!j\xff\x94b0~\xac2\x9f\x81\
+\x14\xae\x1b\xc3\xd7\xa2\xbf\xd9%\xc0m<\xe9R\x94\xeb\
+-\xb5\xf2\xec\xcb\xdcW\xff\x97\xb5\xf7\x88\xeda\xb7\xa9\
+6|\x91Z\x13\x9f\xf3\x88\xf1d\x87\x9b\xe75\xfd\x99\
+PkW\x93\x89\xe6u\xa1\xbfM\xa8m\xbaH\x00\x91\
+q\x86\xa9D\x89g\xee\xc3\xb4\x1dd|p\x1e.\x09\
+\xccR\x1e\x18T\xebX\xe5\x9b\xf6\xc0v\xd4\x929\x08\
+\xf3\x095\x7f\x18\x090\xa1\xd0\x8e\xa2\xab\x07\xf3\x92\x12\
+\x1d;\xe8\xc3K\x05k]\xc5}\xee\xb7\x13\x1aQ\xae\
+s\x0b\x92\xe9\x98\x01\x01;\xd8I\x81\xb7\xfdH\xc68\
+\x99-t\x07\x80\xf2LI\xa4\x03\x0dq.c\xe2\xe5\
+\x0bV\x95w\x805\xdc\xeb\x9f\x15\x07\x9b\x8c\xa8\x13<\
+\xfdI\xfd\x89\xfdI\x95\xb9\x86C\x89=\xa5\xf6q\xfd\
+\x9e\x16o<\xbf2\xff\xcaj\xbaSM\xe8@\xa9\xef\
+\x97\xefW\xe8W(\x89\xb8\xa2\xb9\x85FR\x96\x9c8\
+PD\x0d9\xddq\xd0\xb6\xc2\xf1.\x09\xa7-j;\
+\xc6\xb9o\x0aq\xdc*\xb0\xa5\xdb\xd8)\x91\xb8\x94\x10\
+\xef\xdf\x13\x88uv\xc1K\x85\x12\xc8(5\xfea\xfb\
+\x8c\xe3\x06\x87\x13\xaa\xbf3\xd7\xb1\xbb\x17FJ\xb8\x8b\
+%p\x95\xf7\xd1\x89\x92\xfe\xb3B\x0d\x8c\x11`-\x0c\
+\x87\x98\xff\xf3\xd7\x06\xae\xa9\x7f\x87Z~\xc9\xa0nY\
+\xdb\xc5e;U\x9e\x9b\x19\xact\xe7\x22\x83\x9dm\x84\
+\x1d8@\x0ba\xee&\xa1y\xfe\xee\x1aT\x1c\xd5\x7f\
+6v\xa1V\xf3\x0d\xcdt\x9co\xda22\x8f\x950\
+]\xa2i[h*y)P\x8a\xbf\x9f\xdfX\x88m\
+vC\xc1\x1a\x08a\xd7\xcc/*\xd4qM\x80o\xfa\
+\x04\xa1\xb67\xc6O\xc8\xb6\xe4.\x85\x81Y+\x9e\xb8\
+JZ\x8b\x18\xde\xe9\xcd\xbe\xcb\xbaAi\x8f\xed\xae\xb4\
+\xb7Y')\xfd\x84\xc1C\x89\x9aK\x0c\x98o\xb4\x8d\
+f\x9d\xcbnPV\xb3/\xa3\xe2\x9c\xca\x88\xcc\x92b\
+=\xe5e\x9a\xf5\x19\xbb\x0b\xad4\x02\xdc$4\xcc\xc4\
+\x99\xfb\xbc\xd0\xac\x8f\x88\xfe\x92yw\x80\x84\xbf\x83\x01\
+D\xc9U\x7f\xa6P\x13\xce0:)q\xc2?K\x11\
+a\x07\xd2\xfa\xdd\x84\xc24\x1f\xb5\xa8\x9c\xc8\x19\xbe,\
+\xc4\xf7=Jh\xb4\xee\x08(\xfa\xbe\x17f\xf1\x22\xb5\
+\x04 \xb5\x0b\x5c\x22\x90\xfb\xbc\xfd\xcc\x05)\xf2!\x15\
+\xcc\xdf7b3\xb4\xaf`\x81\xa46B\x0e\xef\x17\xdc\
+\x0f\xf4\xbc*\xeaQ\x22\x9c?1u\xe5\xabu\xc3L\
+\xc7\xfc\xf3B\x9c\xe0\xb3\x05gLW\xad\xe2O\xb9\x01\
+\xdb\x00\x98\xae\x1cX\xa5\x11a\xf3\x065\xdd \xb0a\
+#J\x82A\x085\xc5\x8e\x13\x19tT\x0f\xd3\xb0\xd8\
+\xb04~\xaa\x0b\xbe\xa9N\xd3\xf3\x84&R\x8ex\x1a\
+\x14|\x05*>\xd7\xa8pS\xd3\xa4Z\xe6\x13\xaa\x98\
+\x08\x91\xaalo\xc7F:q\xa6\x07*\x9f3\x94Y\
+\x9a \xd1\x8d\x9fx\xa3\xdc\xba\xa16\xa2n\xed\xb6#\
+\xd9\xe7\xd8\x14\x94\xe9\xf7\x84F\x9c\xcf\x0eb\xbf\xb6P\
+\xdb\x9a 2H\x0dy\xf6K\xf7\x82\x9f}u1\xc4\
+\xa9q$\xd3\x8b\xe1I\xbbD\x0c\x0c\xee\x93)q\xd9\
+\xc5\x81\x1a@\x8b\xf4\xd0\xc6#\xfb]Ce\x87\xca\x88\
+\xc1L\x86\xccm\xf8\x0aQ\xf9\xeb\x8eDn\xdcd\xe2\
+Qq5\x93\x83\x80HR*i\x0bEf\x0015\
+D\x9cpX\xa0\x0c\x12 X\xa3\xe4\xd8jF\xce\xed\
+\x89bc=I\x1b+\x19\x91T\xf9\xd5\xf8{\xa27\
+\xf4\x7f5\x01\x00\xb9\x0b\xcb6\xf7\x03\x95x\xd4\xa5a\
+0X=5\xb5#\x16-9\xbd\x1a\xe1\xf4\xb8\xce\xfb\
+\xa5\x8a\xac\x8f4\xed\xf80\x88\xe9nA-\x95\x99#\
+\x85\x8a\xf7\x8c\xe6<\xe8F\xa0\xd2\x97_U5\xfbt\
+@\x15\xb9\xff\x85\x19'j\xbbw\x86\xe0R\x8f\x8d\x1b\
+\x86\x06\xb5\x8e^X\xb3\xf4\x84L\x16\x869\x94]\x98\
+\x05\xccgD\x900\xb4\xb9\x0e\x02M3\xea\xdfY;\
+l1\xcfb`\xad\xe0.%\xdb;S\xf1\xcb\xeaH\
+\xd0\xc5\x22\xdbG9c\x95\xfdd\x1dq\xe65\x81\x82\
+\xec.\xe1\x12\x90l\xc3\xa2\xf6|\xcf\xb0\xdd>i4\
+(p`)\xa1a\x1c\xbb\x04!)Y\x9e\xbf9o\
+\xc8\xac\xa0=\xe2\xf9\x91\x01\xab\x83L%\x85\xe2\xe9.\
++0G2\x12\xed\xc0^:\xa88$\xa6~f\xa0\
+\xd1\x0e|\xdc\x83BM\x13\x91\xb3\x88\xe3\xb1>\xc1\xfc\
+a\xfe1\xdfy\xdf\x81?)\x18\x94u\x88\xf6\x938\
+8<GJf\xb8\x0f8\x888x\x1cq\x18q\x84\
+p\xe0\xe8?O-/\xe3\xc0\xf79\x0dgD6q\
+\xe0\xf9=\xaf\xcf\xc3n\x16yE\xac\x0f\x87tu\x07\
+\x028_\x18\x05\xb4_$\x83\x88\xa6\x05%/\x04$\
+X\x0fi'H\xe0\x87@\x08\x0e\xcdl\xa9\x03\xf7\x01\
+Q<\xa8\x8dd&q\xd4\xcc\xa4\xc8\xfbO\xe9De\
+\x0c\xfc7\xd5\xdf\xcc\x874\xc8]\xda0\xb9\xc6\xed\xb2\
+\x10\xb5\xc5\xc0\xe2|q\xe4=\x8f\x09L\xd3\x86,E\
+\xb4\x1e43\xc3%\x01E\x02t\xad\xaa\x1a\x9d\x06\xdc\
+,\x93\x04\x03\xd6\xdf3|\xd3\x14\xe9\xb3\x1dp\xe0\xfe\
+\xe1\x80\x10\x18\x83Z\xcd|'sO\x00\x83}\x9b\xeb\
+`\x9f$PD\x97\x12\xd6u\xd6%\xba\xc8@\xc1\xf6\
+\xfd\x82\xea\x9b\xa5$P.\x19w\xfcGF\x19\x86\x0a\
+\x9a9\xccc\x98%h\xfb\xb0\xfe\xb1\x9f2>1\x80\
+\xb9\xff<\x17;\xbc\xc90\xb3\x83\x9a\x09\x01\xe67\x01\
+\x09\xae\xd7\x86]\x06N\xd1\xc2 0\xc6\xe7``\xf9\
+9SR\x96*\xed\xb4-\xf5\xb0\xcb\xfbB[@2\
+JP_\xad\xe6\x9d5\xc2\x87\x9bi\xe6\xc4H\xffM\
+\xa1)i\xa0=(\x81\x0b\x07\xc4\xd2^r\xe0\x09\xca\
+l\xda\x9d8\xeaN PR\x90\xeb\x9c\x9fk\xb6\xe5\
+sw\x99\x0c0\xd2\xf6\x0e\x0a<\xe3\x16\xa6\x90\xa9\xea\
+\xb9\xdeP\x93\xeb\x8c`\xa1\x16\xbf\xab\xc9\x0c\x92\x115\
+C\x81\x1a\xectH\xcdd\xca\xcc?\xeb:L\x10\xaf\
+\x0f\xf4/\xcfL\xb0\x1d\x8d\x5c\x0f\x9c!Uz\xab0\
+x~g\xfb|{\xefw\x88:\x93I\xdf\xa5\xdf\xb9\
+\xdf\xa5\x96\xa8f\x02H\x09\x80\xafW\xe6\x5c\x8a\xf12\
+n=\xae\x19\x0f\xa8\xc8\xc7\xb7\x05\x9aD\xdb\xc2.M\
+Xb\x1cg\xa9j\xef\x80gR\xd3mG\xf5\xef\x14\
+\xe2\xb8\xc2\x18@\xe8\x1f'\xc4r\xf6\xb5@\xf8\x07s\
+G\x0a\xb1<\xbeC\x88\xd7\x0f\x04b\x1f\x9a\xdbH\x88\
+\xf7\xaf[p\xfd\x82\xebK\x9b\xeeM\xfaMJ\xe2\xa4\
+$^\xa6\xebN\xd7\x9b6\xe3\x95e6\x19!/\x19\
+\x036\xa9\xe9\xc2z\x84v\x11\xf3\x08\x11n3\xdb2\
+\x90\xf2\xf8\xc0ZU\xdc\x94n9\xd3G\x06\x16\xaf%\
+\x9c\x94hN~+Tf\x06\xa5f\xfd\x09B\x15\x9d\
+\xe4<i3<7\x1f\x98z\x1f{c\xd3\x1e\x95\xae\
+\x18jk\xf9\x89f\xfd3\xf3\x98\x12\x85\x9c\xc7\xfe}\
+J\x1f\xd0X\x9b\x1f\x848\xde\x16\x88}\x7f\xfe'\x01\
+\x89\x1d\xfeM\x88\xe3_\x85\xaa\xfaO\x00\x0d\x8d\x90\xe1\
+\x09B\xbc\xbeV(\x81\xb5\xadK;M\x89\x8ao\xd6\
+hRA\x91\xa7\xcb\x85\x13\x1d\x88\xd8&\xc3\x08\x11<\
+\xd6_\x18|\xec\xa7\x8cG\x9e\x8b\xa9\xf1\x940e\xf7\
+$4\xe4lOR:\xc8\xfb\xd3\xd7\x05$*\xfe\xc9\
+\xc0\xa7\xec\x17|\xa2R\xee\xb3$\xf4x!\x8e\x0bL\
+\xe1G\x84\xcfL\x81\x05_\x11j \x19\xd1\xf8l\xf3\
+\x8d\x08\xa2\x03\xb3\xd4\xfe\xa7\x08\x1f\xf6\x17\x0cY\xdb\x1b\
+\x94f%\x03\x00F\x94\xbbQM_)\xc4\xf1\x8a\xe9\
+U\xd3+\x0a\x93~\xfb^\xf6\xe9\xb3\x84\xbaN\xf4\x8f\
+\x16*3\x98nO)^\x8e\xbd\xc1:\xfb<\xa1a\
+\xb8\xbfy\x0c\x1c,\xa0\x0f\xe4\xe4\xd8\xc0'\x1a5\xc9\
+\xb3\x02g\x9a*\xb1\xbfO\xfc\x8eF\x1c\x8b\xf61\xee\
+\x9bX\xdav\xec\xde\xb4\xb3\x121\xf3%^X\x97\xae\
+\x0bhn\x0cn\x1f\x83\x18W\xd6\xce\xda\x91\xe3FM\
+W\x11\x1a\x83\xd1\x8eYYhbbMO\x08\x9c\xd8\
+\xf4\x97\xf4\x06\x93\xfdpq\xe8\xdd\xbe\x09F\x02\x1b0\
+\x0bhnlVQ\xcd\x81\x89\x1a\xf2\xbaB\xedwZ\
+*.\xf6\xab*\xb0\xb4\x07,\xe2}\xbb7\xeda\x9c\
+\xe1\xa7V\xbf\x10f\xff\xde\x18H\x97\x97\x86T\xe3\xfd\
+i\xfbT\x93\x11\x98\x15\xa5\x82z\xceu\xc1\x90\xf0y\
+\x97\x92\x84#\x1a\xca\xb4\xda$>\xc1\x22\x80\x17W\xc7\
+ix\x8d\x1ab\xd4\xda\xb7\xb2\xa0\xde\xed\x8c\xcb\xf2\x8d\
+c\xf0\xcf\x92\xf3\xaa\x01\x0b\x9f\x7fR\x5cT\x1b\xf5E\
+\x1b6\x1b\xd76r%B~w#bGm\xb0\xdb\
+\x9a!\xd6\x98\x19a\x22\x85\x1e\x17e;\x95\xe3\xf9\x06\
+\xa1\xd6\xde\xd3\xef7kz5\xbe6m\x22|\xa6r\
+g\x0d\x95ksX\xc8\xf3y\x13\x81\xa4\xcd\x8a\xfbn\
+2NR\x8cKg\xbdwe\x18\x14&L,\xd8\xd3\
+\xef\x0bM\xa9\x82\xb6\xeb\xfd\x9d\xe9\xff|S\xcbc*\
+Q\xce\x0b\xb9\x03s6@_S3|\xa9f\xec6\
+N\xa5\xa4\xe4\x98\xc6\xf0t\xa0%3(\xd4pS\xab\
+O\xbbG\x8d\xaa;\xff\x87\xda8\x1b \x94P\x18\x02\
+te\xc0\xb0\xc2\xb0P\xb7\x84wz\xdc\xab\xc4\xe2c\
+\x81\xa3\x9dI\xb9\xd6\x0e\xcfM\x95\xf27\xec/T\x83\
+))\xd7\x22\xee\x1e\xed\x88\xf5\x95\x8dcD\x06p\x86\
+Y\x12\x8e\xea\xed\xea\xf6\x91\x8e%\xf3\x90\xffh{\xe4\
+\xeb\x0aGo7-\xcc\x5c_v\xc3\xc0\x11C\xcd\x9b\
+\xeb\x94\xc8\xd2-\x0d\x05\xd9\xe3r\xeeE\x81\x17\xbb\x8d\
+\xe2\xb2\xb5\xc6\x0c\xf1\xad\xf9\x9f\x0b\xa6\xd2\xc7\xfd\x9b[\
+\x5ch2Yd\xbe\xa9\xb9\xc6\xc1d\x03\x80\x1a\xc7s\
+p\xc0 )\xda\xeb\x8f\x94\xec\x98;#\x15\x16\x07\xc8\
+\x8egf\xa6\xb9O\xa6\xe6\x0f\xff\x11\xca\xf7\x97\xf10\
+\xb9^\xa8\x99d6\xf2\xd2\xc3\xe3\xe8J\xbd\xa5\x9fw\
+:zP\xf48o\x9e\x0b\xeb\x8c\xd7\xd7\xac\xc1g\xfe\
+\xa3m\xe0L\x0a\xa2j\xd9\xbe\x0b\x87\x0dG\x06\x86\xc9\
+\xac\x83\xcb\xb8`\x9d\xe7>!\x9e\x87AO@\xc2\x99\
+\xb7t\xf8X/\x11\x01\x223\xb0\xa6\x1d-\xda\xa0\xe1\
+\x80\xe0\x181\xbf8?\x18J\x04\xae\xc8\xa8c\xc0\xf3\
+\x1f\xf7WmWok\xd6K\x1ca(\x9c0\x9d\xb8\
+.\xaes\x99\x19\xad\x05\xda\xa7Z\xb5;\x9c\xdb\xf1\xfe\
+\xe3H\xf2w\xb4\xed[\xc8\x8e(\xe3\x06Q!\x02>\
+g\x09M\xc9\x11\x19U\x02P<\xd7\x9dG\x87;\xdb\
+\x0e\xdd\xe2y\xb3\xc4\x8c\xd6\x00\x8e\xffzv\xa8\x09\xbc\
+P\x0a\x80#\x8b\xa3K\x06\x9c\x00\xc2\x9d\xcd~\xd7\x9e\
+\x9f\x03\x8ai0\xc2\x18b\xde\xcf\xb6\xf5#\x93\xce\xbe\
+\xc2sw\xe0\x1bfHf\x9cp\xa4\x09\xe0\xb0\x1e2\
+\xee\x08\x5cc01\x0e\x08,\xc04\xe0~9C\x94\
+\x01\x22\x1c\xe0\xd9\xc0\x10\xa2\x82\xbc\xcfx`\x9c\xc0l\
+\x80\x99\xc0\xf9QC\x8a\xfa>\xcc+\x02\xd73\x9a\x02\
+\x048\xa8\xd5\xcd\x80\xac\x1d\xbf,i\x81\xe9\xe0\x8c_\
+\x06\x0e(5`\xbft\xa0rxXhJ+\x11\x01\
+s\xdb\xe8\xb4{\xb8\xbf\x88\xd0\xc9\x8e<\xb6f\xe2\x87\
+=\x85&p\xc1\xf5\x93\xa1\xa3d\x85\x92K\xaf3\xa9\
+a\x80\xbdIi\xa4\xed:J\x0a\xd2qw\x00<\xc5\
+\x99\xd1\xf6\x81\x09J\x80\x87R\x03\x02\x02\x88\x85:\xf0\
+W\xda\xbe.\x5c\x19\xa9\xdc\xc7\xd2\x85\xe6\xaf\xd5\xee\x83\
+B\x9e\x99g\xd7\x80S\xfb\x9b]\xadX_`\xcaQ\
+zJM=T\xee\x7f\x8d%\x1b)\x1a\xe8\xfd\x9d\xae\
+8\x19\xe8\x10\xd3\xf6\x8c\x9a1\xcc.Bn_\x97\x9a\
+5\x04N\x10\x15\x94&\xc1\xdfM\x19\xffOC\xe9'\
+@\x06\xb3\xc4\x9a\x13\xfd\x05B\xa3A@?v\xec \
+\xd7\x96'\xf3\x81\xdf\xa1\xe6\x7fe\xa1\xe9\xb2\xf0\xff\x84\
+J\x91\xc7\x81ASj\xee4!\x8e\x8f\x12\xaa\xbd:\
+]i,\x91\x98_F(\x81\xf9\x92\x89\xceu\xc2\x0c\
+\xbb\x0c\xec \x9a\xe8@\xca\xf0uw\xfb`>\xb2\xaf\
+\xb0\xbf\xad\xe0\xc0\xd4\xadf:+\x10\xf0v3\xe3\xe2\
+yO7\x0flVE\xc1\xd1\xe0)\xcc\x86\xb0\x17\xe6\
+.\x14\x9a\xb6\xbf\xae!\xcf\x00\xc5S\x85\xf8\xdc\x8f\x02\
+\xe7WM\x80\xfeoB\x1c\x7f\x228\xf0\xbdBS\xa2\
+C\x97\x0c\x02\xac\xb2j\xdfS\x19\x17\xd9\xe6\x92\x92\xec\
+\xd2&!\xee\xd3\x1b\x02\xb1\xcf\xcd\xdf\x1b\x10E}\x87\
+\xc0\x8e\xb5\xcb\xc1\xfc\x1b\x85x\xffCB\x1c\x9f*4\
+\x894w\x8f\x9a\x1e,4\x0c\x98m\xdd\x05\x81\x0c=\
+m7\xcd,a=\x8f}k,m2\x13\x82\x1a\xff\
+d0\xe1\x87\x99Y\x90\x091\xfc13\x9a\xd3>s\
+\x02\x0e\xd1s\xa8\xfd\xd3\xe3\x85\xe6\xb8\xb8\x10\xc7E\x02\
+\x8bZ\x03 \xf6\xed\xe9\xda\x82\xc5\xde\x0fh\x18\x82\xd7\
+\x8c\xdd\xda\xe8f\x92\x94\x7f\x07\xaa\xb2\x84\xd7\xdaO\xd3\
+\xd5\x043\x0cb\xdeN\x0f\x12\xaa\x9d\x19\xfbb\x09\x84\
+\xf5\xaf\xee\xf7\xee\xf7.\x81\x86\x22j\x9fZ\x06\xfe\x9e\
+L\x1c:\xe0\x96b\xa4\xbe\xcf\x99Hp\xc2\x9d\xae\x12\
+\xd9\x9e\x14\xc6\x815\x02\xf2h&Aa*\x7f\xa0\x8e\
+\xb3\x14\xb34\x83b\xfa<\xa1\xfa]\x0b\x0a1\xef\x92\
+\xc6Qr\xdfs\x0c\xdaRs\xfd\xc5\x1a\x99\xa3]B\
+\xd6\xa2\xb8\xf6-\xfb4*\xe2\xf9\x08/\xe0w6\x81\
+\x02e\x16\x7fV#\x8a\xfd\xf5B\xbd`nhq(\
+Ntd\xf8-52B\x97\x80\xa4\xb4r\xe1P\xbe\
+q\xb8q\xf0]\xfb9\xbdOh6D\x02\x0do\x10\
+\xe2\xdf\x1f\x14\x9a~\xb9<(6:j\xf0\xbc!O\
+\xdf/\xc4\xf9\x1f\x1b8\xc6T`\x22\xeao\xa9m\xed\
+J@\xe0\x06g\xe0\xd7j\xfa\xa4cp\xb8\xa6=3\
+\x0d6\x10Jm\x09m\xa6\xb6k\x0cG\xa8\xa1l(\
+d\xba\xde'4\x22e^@\xe6\xaf\x08\x5cY3\xda\
+E\xa5\xf6\xdc:\xa1\x8a\x99\xb4K\xd3^\x8d6x\xa2\
+4\x1d\xd1t'\xc0@e\xe2(_\xd7{\xe3X\xcf\
+bx\xdf\xab\x0c\x90t\xc0\xa5\x96\xbbI\xd3\x1d\xc0\x8e\
+\xd2\xf0\x91\xc0\x116\xd0\xb6\xb1\xd8\xd1s\x9a\xe7\xa2\x08\
+\xec\xe3\x1b\xd5}\xa8\xb88\xb4r\xabo\xa8j\xc8\x94\
+\x9e\x94\xf1\xf0\x9f&0`\x83\x99H4\x14\xa6,}\
+\xa0\xed\x94)\x98\x887\x96\x85\xeb-M\x9fz2\xe5\
+\xd4\xa2\x8a\xa0\xf8\x1bS\x1b\xc3\xa0\x99^#\xd4\x8c6\
+\x0b+\x94\xb2B4\xba\xdc\x01\x8d/4\x0e\xa1\xbb\x03\
+@iL\x83S\x9f\xbf\xb2\x8aK\xa6\x18 \x81\xa3\xc7\
+\x16\xd2Rm\xb3\xa8\xeda\x0b\x07\x186\xf4B|f\
+\xf3\x9c\xe9\xd6\xe1q\x97\x8e\x9bF\xfb\xb7\x1a\x11\x1b\x8d\
+\xf3\xbb\x1a\x06\x82\xdbj\x15u\xda\x97\xd5>\xb0\xc3\xc1\
+\x81C\x1aq&\xab\xe4\x97\xca\xa7\xc3\xea\xb8-\x19\xa2\
+W\x981tf\xe3\x18\xf0\x1cq\x8c0\x90\xc9\xe8\xcd\
+\x1a\xccd\x88i\xaf\xe9\xee\x15\xb9\xc1\xbeV\xa8\xcfw\
+:/4\x11e\x98\x05\xd4\x10[\x13#\x1dW\x9e\x93\
+\xae\xe6\x14\xafwgU\x11?\xd6\x8f\xa2\x1e\xbd\xb27\
+\x96\x8dj\xade:f*D\xf9v\xfd\xbe,\xd9Q\
+d\xfe\xfb\x8e\xc0n\xe1\xeb\xfe]S\x13J\x86\x10G\
+\x97@\x02\x06\x0aG\xda\xd09\xf2\x8c\x01\x9f\x11\xe9\x97\
+\x8d\xd4\xb4\xcc\x8cQ\xa2\x80\xa3\x8d#c\xc7\x19-\x90\
+T\xe9&\xc0\xd8\xdb1\x82\xb1\xc1s\xa6\xb4\x04J.\
+\x0e\x9d\x19M\xa9v\xbb\xdfHqf\x9ce\xa6\x94\xd2\
+\x1b\x1c\x98Y\xed\x04\xb4\x04n\x11\x1aF\x00\xcc$\x18\
+I\xa8\x9b\xbbt,U\xd4m #V\x96\x149\xfe\
+n\xb6\xcd\x10\x22h\x0b|\xbd|\x9e\xff(aA\x85\
+\x9cL>\x8e\xa33\xf0\xc94\xc2\xb1!3\xcf\xe7\x99\
+\xef8<<o(\x85\xa8\xf7\xe3\xa0P\xcb\xbe\x823\
+\xca\x18\xae\xb7\xbb\x14\x80\xf1\x86C\xc6\xdfc\x88\xd9\xc1\
+\x9bl\x22\xd4Lc~/\xe7\xc9\xb8z\xba3\xe5;\
+\x8f\xe2\xa7\xe9 \xcf\x06\xa0\xff\xe9\xf1\xc3\xf5\x13\x18`\
+>;\x80\x94\x0e\x05\x0c\xa1]\xec\x90\x9bi\x93\xda\x04\
+Oww\x09\xba\xaep\x9d\xb4\xa3D+\x80\xcc\x12\xdf\
+\x8f6\x04\x14\x7f2\xeed\xfc)\x1dc\xfc\xc3\x1c\xe0\
+<\xd9\xc7hS\xe7@A\xb6\x05d\xfd!`\xc2\xfa\
+A\xe0\x8a@\x14\xbf\xcb\xfe\xc8>\xceu0\xee`\x92\
+\xcd\xb4\xbd\xcc\x92\x10\xb4/\xf8\x1d\x98\x04\xec\x87f\xfe\
+d\x0d:\x0e\x0c\xf7I\xed\x87\xcf\xa9\xe2\xb59\xbfp\
+\x8c\x98\x1fd\xc2a\xba\xc1Xb\x9c;\x90D&3\
+\xdb\x819\xa0;=_\x88\xe3\x8f\x84f\xdc\x13\x08s\
+\x02\x82\x80=L\x86\xc9\xb7\x85\xc6\x8e\xf1u\xa76\x89\
+K\x032\xd3I\x00\x86D\x87K\xeb2\xb0H\xf7\x1d\
+\xd6K\x021\x88&\xc2\x1c\xa0t\x0d\x11;i#i\
+?8\xb9\xa0vS q\x84\xf8\x1a\xe2\xb90&\xe8\
+\x12D\x17\x17k\x5cd&\xd3\x01\xac\xc9\xc7\x84\xc6>\
+u\xe0\xa3_Sh\xf6;\xdf/\x12g07\xfao\
+\x8c\xd4\xf0\xb0nF18\xdf\xb7\xc2DXx\x80X\
+Y\x00\x00 \x00IDAT\xa8\x88\x90\x9d^D\x04\
+\x0f\x0ck\xe5\xc0\xf8\xfc\xc9\xfd)\xfd\xc9M`\x19\xc7\
+\xd7\x8c\xcfd\xf4:\x00\xc86\x9a\xf6\x0e\x81\x12\xef\xb3\
+h;\xa5\x18\x1a\x8e\x98\x03\xa6\xfd.B\xadyOq\
+G\x02\xbd\x1e\xef\xfdiB]\xa6\xfa5\x848\x9e+\
+\xc4\xf1W\x81_Z\xdd\xff w\x15\x10\x93\xe2\xd3B\
+-\x95(\x19\xf7\x98W\xf3\xe5?'\xac^cM\xa1\
+/\xd6R\x8b\xfe=\xfda\xbd\xec\x8e\xcbGJ|\xce\
+\xb3*6:\x06dY\x87\x19W\xb3\x81>\x18Y\x0a\
+`\x0c\xd5n#PT\xc4\xd1_\xe1\xf6k\x176%\
+\x17\xe7\x09\xf1\xfa(\xa1f\xa23\xf0\xb1\x81\x10\x7f\x7f\
+\xaf\x10\xc7+\x84x\xff\xedB\xbc~Z\xe0\xe9\xcd\xfc\
+\xd6jqSe\x80\x16&\xf6\x85\x0dCK\x8e\x9e4\
+\xcd>-\xc4\xe5\x1d\x168\xb4q\x84\xaf\x0c\x84\xbd7\
+\xbdS\x88\x7f\x7f\xa5\x10\xc7M\x85\xaa\xd55=P\xb0\
+v\xd0\xd9\x0dS\xeb]c\xe0|8W\x88\x7f\xff\xe4\
+\xf4S\xd3O\x95}y\xec\xe6f\xa6\xd6\xe4&\xa1)\
+\xd9a?x\xae\x19t\x94\x98\xd1\x0d\xce\x09\xa2\xdc\x1f\
+)\xd1\x85\xb9A\xa9\x13\x01m\xd69\xaf\x9f0\xb9)\
+M\x98\xae \xd4\x00\xc6\xb4\xfc\xe7D\xdf\x05\x8d\xa80\
+% ^\xef\xfa\xaf\x08e\xfd/\xa5\xac\x94\x84\xc7\xa8\
+\x1b\x19\xca\xfb\x8e\x01>ya\xf2\xc3\xc2\xaa\x1a\x03\xa6\
+\xde\xf7\xa6_\x11\xfeG\xb7\x9fgX\xcb\xe9\xe9\xa3f\
+\x07m2\xe3\xfe\x05*#;\xbb\xed\xd9\x1fJ\xa6\x11\
+%%\xbf\x13\xe2\xf3\x1f\x12j\x22l\xfai\xa12\x14\
+\x86k\x85f\x7f\xc3?\xc4\xee% O\xc0\xdd\xf6Y\
+\x96L\xdb\xefX0\xf7X\xa1RhKfI\x22\x03\
+\xdf\x14\x1aq\x1b\x1b\xe8\x88r *V\x22X\x97\xc4\
+\xf1i\x81M\xbc\x80\xc4\xdf\xcd\xbf6 *\xc6\xa6B\
+\xd3\xb7\xd7\x91\xcb\x127\xff\x90#\x8e\xc7V*\x04\xb5\
+He\x1b\xbd\xa7\xc9\x94\xb3Qy\xa2\xa8\xf9\xc1\xd0\xb6\
+\xfbA\x84\xc8\x8e{\xb6\xf9{\xadP\x1d\xfe\xacIt\
+$\x0b\x03?\xcf\x8fL,j\x8d/\x11\xea\xef#&\
+X6\xbce\x9bZT\x8b\xf7\x14\xb3\xea\x85\xde\xd0\xdb\
+\x9a@(\x88\x18\xd0\x18,\x12\x97x\x8c5\x02\xaeh\
+\x0cNU\xc4\x1d\xd4dZ\x18p\x18`\x18\x0e\x18 \
+\x18\x10LH\xfaMZ\xad\xbe\xb8\x0b\xbb4\x01\x19\xa9\
+\x8e\x7f\xaf\xa9\x0dw)D\xa1\xf4\x1c_\xdb\x92\xa4\xc8\
+\xd6L\x09E\xc9\x88=\xa69?\xc5\xf1^\xd3\xdc/\
+J\x1dh\xe3\xe7\xbe\xa2Y\x83.\xb1\xc4\xed\xab\xb8d\
+\xb6iTD\xfb\x5c\x1b\xbasM7\x02\x0c#\xf7\x9b\
+g\xa2\x10\xa9\xef7\x0e<\xb5D\x8cW\xd2\xc2\x80\xa3\
+\x9e5\xd5\x16\x83\xcc\x80\x0f;\x22m\x8f\xa4B\xbd\xba\
+k\x04\xdf\xd3,\xb8\x16_D\x1c\x86\xbe\x9c%\xdf\xf4\
+\xd5&\xd2\xb6z!\x17\x8fb-\x8b\xd5\x9a\xb1\xec\x1a\
+A\xe6`\xe9Q\xb543\xaaL\x5c(\xfc\x94\x8e\xe0\
+\xa8x\x5c\x11yDK \xfbg\x93\xe1\xb3\x18S\xd9\
+\x18\x97jj\xc9TJ\xf1\xf2F\xc4\x0f\xc6\x80\x19\x1d\
+\xd9\xe7\xda\x91\xd9\xfc\xfd\xb6\x7f8\xdf\x7fxU\xe5/\
+\xf9\xca\xf5\x9a\x8d\x8a>\xe0\x88\xd8\xc9px\xaf\x03|\
+7\xd4.\x10\xb9\xf1\xe2 ap\xf3{3\x8c\x80\xfc\
+<\x0c\x1a^\xcf\x96\xba\x1c8\xd6\xa2\xcd_ \xc4\xf1\
+\xa2\xc0\x85M\x9b\x1bj^1Xl\x08\xb2`\x12\xc0\
+,\xee\xc1\x92\xb5\x04\xa5|\xfe*\xaf\x17\x07\xd7\xc0\xd4\
+\xf4\xc3\x82\xdb\xae\xadnC\xe1\xd2\x1a\xb0!\x10I\xbf\
+V\xfa4\x17q\xba\x0f\xd4\xf5-#\xe7\x18\x86oq\
+\xe4\xdc\xe2\x89)\x86\xc3\x86xX\xc1\xd8N\xf0\xb7E\
+{\xa4PRq\x94J\x80\xed#\x8d\x83C\xc9\x903\
+p\x88Q\xa2^\x9b\xaa\xcd\xd4&\xdbPM\xed\x11\xc4\
+sp\xb8p$Y\x7fX\x9fY\x87\xc8\x80\xc3P1\
+\xe3')\xcf\x18h\xb3\x8e2\x81\x0a\x02?0\xaf\x9c\
+\xd9L\x07\x12G\x0e\xcd\x0ej\xa0\xc9\xd8S\x1b\x8fv\
+\xc1G\xad\xbeKD\x9fL$b@t\xd7p\xe0!\
+\x0dy\x1c8\xce\x87\x00\xd6\xac\xa8+\xeb1\x19d\x1c\
+|\x02\x15f\x08d\x0d0\x06\x03\x81\x8f\xfb\x1c\xf8\xe2\
+w\xf8w\x1cP(\xe9\x7fs\xe0\x97\xcf\xe1P\x91Q\
+\xf9\xa4k\xda\xb7\x1ck\xe5s\x1c\xf0\xbc\x9e\x94\xa5\x0e\
+#\x93d\x1d\xefKw\xf8>3\xde\x9e=yV\xd1\
+ \xa1V\xf0\xcf\xbe\x0f\xeeFP\xc4V\xaf\xacmj\
+\xf3ys_\xa9\x01E\xfb\xe0Y\xa6\xa2\xb3\x8f\x901\
+\xc6PAm\x9c\xdazD\xa50\xcc\x19'8\xee<\
+\x07\x9e7\xfb(\x99t\x02\xec\x04\x8e\xb9n\x184h\
+\xeb\xa0\x16\x0eC\x08m\x1e\x98C\xec7\x16\xe1J\x06\
+\x1b\xe7E\xf7\x0b\x8b\xbe\xa5x\xa3\x03\xe9i\xb8R\xba\
+G\x89\x09\x8c\x09\x07\x8cS;\x02G\x9d\xf5\xd0\xe3 \
+\xc5_\x11\xcdb\x9c\xe1a1^\x18'3\xa5\x8b)\
+zgM\x9b\xfe*\xa12\xe2`\xc6\xa4\xb8\xa13\xfb\
+\xec[YzF\x09\x9d\xcf{\xeeJ\xa1\xee\xf3\xa8\xde\
+C\xb5%\x83H\x89'\xed)q0s|;\x00\x9d\
+\xcf\x151J(\xc20I\xd8\x0fa\xfc`G\xa1}\
+\x80x\xa0\xdb\x83\xe6\xbai\x11\xac\xd4N\x81\x01\x888\
+\xd6\xfb\x85\xba/d\x1bM\xf6W\xaf\x0f\xe98;q\
+\x90\x09\x02(\xfe{\x98\x91\x80x\xb0)\xe4%\x83\xbc\
+y\xdc\xf7w\x0b\xcd:G\x1b\xc8\xf7\x9ab\xbf\xc6\xa8\
+UE\x06>\x1d\xf2U'\xabLV\xad]\x14\xa4y\
+\xaf\x80mR\xa4iK\x88v\x04Z:\xd6H\xe8O\
+\x16,Z\xf8\xf9\x86\x09J@\x00\xc6\x08\xed\xf9,\xba\
+[\xbaC]ZK\x07\x8a\xb6\xd7eu<f\xe6\xda\
+\xa5\xc2\xdc\xcf\xd2\x1e\xf0\x13\xee;\x7f^\x15\x09\x9f{\
+k\xe0-M)\xc2\xb6\x81\xed\xaa#\x1c\xd7\xb9\xaa\xae\
+3\x99Q\x882\x8aA\xfb\xd3*\x82\x97\x19hu\x93\
+\x7f}\xe3\xb8^\xe5y\xe6\xeb\xc6\x81+\xcdt/\xf8\
+\xbf%!\xb9n\xc1\x88\x84\xf9\xe5\x80S\xc9\xb8\xaeW\
+\x19\xb2\x19\x90F\xdcPb\x8a+5\xdd\x9c\xccL\xa4\
+\xdd2\xed\x1d\x8b\xc8\xe1\xdf\x1a\x0d\x80\xfbF-\x83\xfe\
+\xc5B\xbd?hu\xd1\x16/\x03zt\xb3\xf1\xbe4\
+\xfd\x93P\x03$\xd3\x87\x84\x9ax\x9a\xffQ@\xf6\xcf\
+o\x858>[\xa8\xf6\xcat)!\x8e\xcf\x17\xe2\xb8\
+\xab\xd0\xa8\xd9\xaf?l0lP\xc5\x15\xe5\x0d\x14\xaa\
+\xbc\xed\x86\x0c\xec\x120\x87\xc9\x09C\x0a\x86&\xeb'\
+\xf6\x01\xa5\x81\x94x\xd1\xe6\xce%\x08\x04\xea\xb0\xaf\x08\
+\xa0\xa1\xc54,,\x14\xca\xfe\x02\x89:\x17\xbe\xf1S\
+\x8a\xbdr]\x09\xacq\x9fd'H|\xfe\xba\xc0\xb5\
+M`\xd0\x8c\x82\x5c\x97\xfcz\x18\x86\xa9\xba\x9f\xf4/\
+\xec\xb7\x16\xb3;\xed\xfd\x7f\x09\xf5\x98\xfb\x03L\x1c\xc4\
+\xd3\xbd.\xf4_\x10j7\x05\xecj4Y21M\
+I/\x0cE;\xe4iG\xc0\x00 q\xc7>\x8a&\
+\x8c\x13\xdeY\x9a\xfb\x18\xa1\xb61-b\x88w\xd5D\
+\xfdp\x89\xd0h\x0f\xd8oG$y\xc1\x82\x0b\x031\
+`\xa6\xc7\x08\xee\x17}d\xa9\xb5\x098\x92xCm\
+G\xc6\x89\xce] TC\x00\xf5\xfe\xf2\x80\x162\x95\
+\xe4\xdb\xb5\x8d^R\xd9\xa8\xd5\xa7\x96\x9b\x08\xa3k\x93\
+\x8ac\xbfZS+.\x07^\xa2\x0a\x8b\x8c\xea\x9fD\
+\x88\xa6w\x09M\xdf_\xfa\x9c\x7fK\xa8\x0e\xd7\xf0\x1c\
+\xa1N\xec\x14ya\x03\xc5\xd0sM8\x01\x83tD\
+\xc8\x9ca\xc0\xd2-\x01\x15[j\xe2\xdd\xee\x0b\x91\xbe\
+\xacm'@\xb0W\xc1\x18\xc0\xd8\xa5\xe9[\x8f\xe8\x9c\
+\x22\xe2'\xf9zVi\xda \xe2X\xcd:\xfc\x18\x0a\
+\xd4\xc6B\x01$\xd3iGlxl`eG\xc4\xb4\
+@\xde%4T\x7fD\x9b\x5c\xbb\x9d\x0e%\x06\x05\x94\
+J\xce\xc3\x94\x1d\x9eg\x19P\xe1\xd8Lo\x17j\x0d\
+]\xb61s\xa6$\xc5\x17\x9dYf\x81H\xaa&\x91\
+,\x0c\x166pO\x90\xd2\x85a\xa3\xa6]\xd4\xf1E\
+\x87v\x0cT\xec\xdcD\xe4\xd5\x1e\xe5\xbef\x83~\x96\
+\x0dZk\x03\x94\xcc\xfd2\xa6\xfc\x7f\xb9\xc9l\xf2|\
+P\x9d\xa7\xd6~l\x90U\x1d.\xdd\xe7\xcb,\xceq\
+\x7f\xad\xfd+\x99\xa9'\xd9 \xffn5\xe8\xb4\x9c\x96\
+\xfe\xa423_\xd0D\xa0\xe5\x06-\xeb@\xc8\x0e\x8d\
+h\x17\x1b\x11\x11<(\xa1\xb3\xfd\xaf1\x8c\xc9\xf8X\
+\x84\xafP:?\xebZ\xac\xaf\xd90\x7fT\xb30k\
+\xf44}\xa3\xb9\xce\xd4\x22p\xbb\xbc\xb2\xbc_\xd7\xd4\
+n\xaa\x9b\xc2\xd5\x16\xf3\xfb`\xa3V\x8a\x88\x98F\xf3\
+V\x16):\xa4R\x01\xb3$\x02G\x84q\x8b\x05\x82\
+#3\xeb\x08\xf2>\x1b7\x814\x07\x90\xd8\x88\xd3`\
+\xf4\xfd\xcbZ8\x19\x0c\x8flD\xaaD\x19\xdd\xcb5\
+T\x8b6\xed\x0d\xb5\xb1\xcaA\xfcxA\xcd \x8aH\
+~b\x15#e\xe3\xa1\x06}\xbao`?\x8b%]\
+\xd0\xb4\xe3\x84\xf2\x8aJ\xb1\xf23\xe7\xdaqX\xa4\xd1\
+\xb6\x80\xda\x8f\xe1E\xd7\x0c2\xd5\xdc\x07\x1cY\x0c\x11\
+\x1b\xa6j:Z\x1c1\xb7u!\x80\xa4n\xb8e\xbc\
+!\x1e\xc7\xf8\x86\x12\x8a\xe1hQ\xb5\xec'\x8b\x81E\
+\x9bF\xb4,\x08\x5c\x11 ]\xdd\xf3\x0fG\x9c\x8c'\
+\xeb)\xbf\x87\xc3\xc6s\xa5\xf6\x92\x00\x80\xe7\xf1\x84\xc0\
+&\x9f\xe3y\x13\x00b\x9c\xccR\xa31\xcc-F\x16\
+\xe6\xd2H1\x5c\xca\x06\xdd\xdd6L^\xe8\x1awS\
+m\xb3+\xc6\x8b\x85\xc6\xe0\xc2\xf0\xc7\xd1\x22r~\x91\
+\xd08\x04\xa8\x87\xcf\x96.\x90\xf9CT\xd1\xafS\xd3\
+\x00\x87\x15J;\xf3|\x15g\x84g5P\x16qF\
+\x99\xee\x06\xeb\xfb5L\x99\x85\xfc\xb9\xc5\x1c\x90\x98\xb3\
+c\x0b\x93\x0b\x8d\x06\xfes\xa0V\x92\xa5\x851\x06\xe5\
+y;\xa18X\xa3\x9a\xf8\x17\xc6.=Y\x02\xc5\xf3\
+\xc1a[\xcf\xf3\x90\x00\x06\x81\xbbZ\xa3\xfe\xdf\x8e\xfa\
+\xec\x11\x83\x86\xfd\x94qB\x09\x0a\xeb?\xeb6\x81u\
+\x02\xcd\xacwPF\xd9\xaf\x10\xdb\xa4T\x80\x84\x01\x81\
+\x01\x02\xf0d\x06\xa1\xdcC\xb1\xe5\xfc\xb0\x0f\x18\x87P\
+\xf5\xd9\xa7\xb0#L%\xc7 \x83\xc1Q\xc4|7o\
+\xda:\xfeFh\xdaV\x92\xa1f?\xa7Fy\xb6d\
+\x00m S\xf1\xa1\xd6g\xa0\x04*;\x19[;\x0c\
+\x88\xafe \x8a\xf9\xc3\xfc\xa7\xdd\xae\x03\x89P\xd1s\
+\xde\xda\x8ea=\xc2a\xce\xae\x22n\x07K\x86\xba\x7f\
+\xa5P\xb56\xfa=\x84&\xb0\xc0u\x11\x90`|\xc3\
+\x04p\xdb\xbc\x1cg|\x9e.\x03\x888\xc24uf\
+\x9b\xf55\xd5\xf7\xdd\xde/\xf7E\xda\xefZ+\x84y\
+\x98\xed\xf5hOL\xc9\x9f)\xcb\x93\xc3F\xc7 3\
+\xff\xb6W\xe9J\xc5\xba\x90\x99S\x18\x04\xa8\xdf/j\
+\xd10\x8b\xa51^\xa6_\x17\x9a.\x01\x16\x7fK\xc7\
+\xc5\x0ep\x9e\xe7\xce\xa3]\xd3\x7f\x5ch\x02\x15\x9c7\
+\xd7G\xc9\x00%\x22\xb4O\xc5a\x97\xc3/\xd5\xf9\xe7\
+\x0a\x0d\xf3\xc0v \x8e\x00]h\xfa?\xf47\xf5\x7f\
+\xa8\xed$\xb3-\xdfK\x84Z\x22A7\x9f\x0cl9\
+PF\xdb\xef\x92\xb0\x95c\xf5\xc4@<\xe7\xfe\xa7B\
+,S\xcf\x12\xe2x\xb1\x10\xc7\x1f\x04~X\xb4A\x8a\
+\xf8!\xf353\xc6\x04|dg\xdf\xe5y\xfc\x09'\
+t\xda\xbe\xf0\xacG\xec\x1b\x0f\xd8~g\xbc\xc1\xd0!\
+\x80\xc7:\x8a\x9d\x0f\xe3\xc3bz\xfdzB\xcdT\x93\
+\xd9O\xd5\x7f\xab\xbfg\xc0\xcc\xe3\x12F\x22\xdd\x0d\x8a\
+\x9d\xf5\xda\xa64@\xeb\xed\x8b\xaa\x18`i\x078m\
+4\x9bHh\xe27\xc0 \x22\x00\xef\xcc\xf1\xf4t!\
+\xcek\x1b!\xcc\xa5O\x05\x8e\xab\xe2~\xf3\xe7\x0a\xf1\
+\xb9/\x08\x0dE\xfeB\xa1a6R;\x7f\xa9P\xc5\
+\x90\xb3=/\x8e*\x22\x9d\x94\xe8\xa8\xf4r\xb7\xa6\xdd\
+\xa3\xc7U\x06\xc8g\x18<Y\x8aD\xc9\x12\xa2\xe9\x04\
+\x8e\x09\x04S\x02\xec}9\xf7\x05\x18\x06\xec\xbb\x9f\xeb\
+N/%\x17\xee\xc6\xd1?(T\x06{\xb6\xb9v\xe0\
+w\xfa\xee\xc0\xc1M\xdbRg\xd4\xe9j\x80\xdd\x08\xc3\
+ \x99\x91R\xda\xda\xa4&\xbahG\xcd<\xa6\x04\x07\
+\xad\x84\xc2\x90=\xb8\xd1\xe4qiJ\xceG'x\xb1\
+\xaf\x92QD\xa2\xc4\x01\xcd\xe9\x07\x85\xea\xe7\xf2\xfc\xb2\
+\xe4\xd3vJ\x11\xcf|k=\xbf\xe9\x1eB--\xa5\
+\xb4\xe7\xbf\xda\x98\x7f\xaeik\x88\xc1;w\x92\x10\x03\
+\xe7\xd4\xc0)\xd5\xa1\xcf\x09\x86\xe1\x82c\xa9@A,\
+\xd0\xc3\x1a\x81\xd5\xab#3\x7f\xb2P#LDL\xfb\
+e\x02K7\x13\xcf\x11\xb8\xd2\xb7\xf2\xf6Z\xcb2\xbc\
+P\x88\x7f\xbe%ps\x15\xf9K\xaa\xefj\x81\xd5\x1b\
+J\xde\xef\x0bi*k\xb0\x0a5?6\xc6\xf9\x1d\x84\
+&\x93M\xe4\x1f\x91#G\xb8\x88T\xa6*\xa43\x8b\
+\xd9\x9d\x00\x87\x1bj\xae\x88\xd5'T*{\x19\xe6\xb7\
+6\x03\x13\x95I\x22\xbcLhe\xa4/m\x1c'j\
+\x5c\x1e,\xfa\xcf\xe3\xef~\xe5\x7fPX\xfd\xc0\xfau\
+\x84\xb8/\xb7\x09Ul\x22\x17`2|\xb4\xc9\x802\
+\x8c8\x84\xa9\xf5\x88\xbcd\xfb\x22D\x1b\xed\xb8g_\
+j\xda\xe78\xf2\x98\x0e\x17\x86\xc5\xacc\x8a\xa1\x81\x98\
+\x93\xc7\xcd\xf08\xc1\x99\xba\x9d\x1aG\x15J\xbd\x99\x16\
+\x19\xc1\x87\x22\x89a\xe6Z\xdd\xf2|O\xae5h\xb4\
+\xc7KJ\xb4k\xd3\x99hi`\xa9\x00a_\x07\x88\
+\x9avr\xc5\xcc\xbb\xb1a\x84PS.\x83\xed\xb2J\
+\xd1\xce~\xb9\xa7\x8e\xaa\x9c\xe5y=P\xdb\xc3\x95|\
+\xd1-\xf5~\x94\xcc\xc9\xe9\x8da\xabQv\x8b\x17\xf0\
+]\x1b\xf1:Q`7mJ \xe4f\xed\xdfd\xac\
+D\xb1\x5c\xd7\x86\xc3\xb9\xde\xd8\xee\xf6\xc6||\xd3\xee\
+\x8e\xebd\xa3\x9b\xad\xa5V\x98e\x05G\xca/n\x0c\
+$JR\x9c\x89\xcb\x00\x12\xdd\x15\x88\x8c\xd3\xaf\xd9\x06\
+H\xa9Uz\x89\xc5jNm\xda\x15i\xa1[\xa9\x19\
+\xff\x9c\x07\x8e\x01\x14H6\x5c2Yl\x18\xcc3\xce\
+\x9b\xcc\xd6b\xa9v>~\x9e\xd2\x99\xa7\x16\xdd\xf6j\
+0\xdb!\xc5A\xa3\xc6.kF\xa9u%\x13\xcb\xb8\
+\x125\xf4\xd2f\x01\xa6\xcb\x02*\xc6_\x15\xaa\x08e\
+2\x7fd~\xfe\xdc\xb5\xcbg4\xb5lP\xa7\xc90\
+\xb9\xbbB\xaa\x05\xdb\xe1J\x95\xe6o\x8c}\x8a'\x7f\
+\x18k(q`3c\x89a\xc3}\xc3 \xfe\xac\x99\
+J\x1e\xbf\xc3\xd7L\x05\xb6\xd6D\xf6\x97\xe69\x10P\
+$\xc3\xed\x083\x0c\x0aD\x1333Bf\x9d\x08\xfe\
+\xd2v\x906vfx[g\x02`\xb0\x90Y!\xc3\
+\x09c\x88}\x83\x0d\x08\xc7\x98\x00\xc26\xa6\x0c\xce2\
+\x03\xf8<%OO\xb1X\x22\x0e\x1fm\xa8\xa8-D\
+{\xe1\xf9n#\xf4x\x8b\xa9y\x9f\x98|w\x14W\
+\xccu\x9a\xf5\x8e\x8c4\xed\x16aZ`\xb8`\xa0\xa0\
+\xe9\xe1\x1a\xbet\x18y>d@\x08\xe0@AG\x94\
+\x0d\x07\xf6\x19v\xb40\x88L\xd5O\x87\x94\xc0\x00\x0e\
+7b\xaa3b\x81)\xca\xb7\xe2\x8ca4\xdbg\x9e\
+\xefc~\x91a\x80b\x0e\x85\x1c\xcd\x0e\xda\xf5Yu\
+\xb8\xf4\xfd~u\xe3X/\xed\xfb\xc1}q\x807\x1d\
+m\x02\xb9\x04d\xc9`\xef\xee\xcc>\x99\x5c\xf67D\
+\x00yM\xe0k\x96q\x01\xf3\x87\x00\x00\xe3\x0c\xc7\x95\
+\xfd\x02q7\xf6E\x98\x00\x04\x00\xe8b\xe3\x006\xfb\
+cR\xfa\xa9\xe1g\xbd\x22\xb3\xea\xf6N\x19\x18\xb3\xca\
+r^\x1fZ6\x04*Y\xc7\x19\x9f\x18\xb0\x8c\xb7\xd9\
+\x12\x02\x9e\x1f\xfb(\xf3\x9d\xfb\xc58#S\xef\xfd3\
+\xfb\xb8\xa3\x0a\x8e!n\xd1\xe4\xdcg\xdfU {d\
+\xa3b\x8f\xa8\xc9\xef\x0eUu~r\xb7P\xed!J\
+\xac\xb8\xbf)z\xea}a\xb8_h\x984\xd8Q^\
+\x8f\xfbU\x84JmM1J\x02\x03\xb3]``\x02\
+\xb0.\x13\x00\xa2\xa6\x1e\xc6\x1f\x01@\x972\xd0\xd7>\
+\xd7o\x02\xcd\xdc?\xee3\xed \x19\xafP\x8d\xa9\x85\
+\xa7-\x18j\xee\xdcW\xd7\x1e\x13\x18e~\xf5\x97\x0b\
+\x95)\x156\xc6\xb8OZ\xa3\x88@I\xe1\x8d\x899\
+\xb6\xd2\xd8\x97\x9b\xef\xcb\xef\xdf\xc5\xd4\xef\x03,\xfa\xb7\
+\xe9h\x17\xa0\x9eO{\xbd\xfe\xefBcObw\xf1\
+|(q\xb5\xe8q\x09t/\xec\xd2\xd0\x13\x9a\xf7a\
+\x18\xd0?\xde\x0e\x5c\x7f\xb6Pk\xff\xa1\xae\xd3\xc5\xa1\
+\x94\x98Ok\x89%m\xca`\x0ad\xe0AZ\x01\xb2\
+\xd7O\x14\xe2\xf8\xc8@\xcc\xdf~\xaf\x80\xc4\x01\x17\x04\
+\x94@\xdcG(\xbf\xb3\xa1~'\xb5@\xec\xf8\x8bO\
+W\x18\x08\xb7\x0a\x8d=\xee\x12\xa2~{\xa1h\x1a\x94\
+q\x99\x01K\x18#\xd8\xa9\xb3\xdd\x84\x98_\xecs\xec\
+3\x04\x066\xf3>\xe9\x12\x97\xbc\x1ft\xb5p{\xc5\
+\xc2\xfcX\xbci\xc3\x87\x06\x01\x1aX\xd6L\x88\xab+\
+\xd7\x87]\x94\x22\x8d\xba\xff\xdb4\xed2\xe9^\xe2\xf5\
+'\xbbf9\xd0\x95\xe2|'\x07N\xaa\xf6\xfc\xf4/\
+\x823\xc0\x0aL\x1d)\x84\x19u\x92\x10\xaf\x7f-\xc4\
+\xe7\xdf(\xc4\xeb\xa3\x85\xcaH\xcc\xd2N\xf9U\xab\xd5\
+\xf5\x8e\x92\x8b\xec\x9aB\xcd\xbe\xc2e\xdf\xaf\x0eha\
+\x84]\xd5\x94\xdap?\xbc.\xe68\xf3\xfa\x92\x22\xbb\
+\xeb[\x83\x87\x00\xeb\xdb\xc6\x00\x5c\xae\xe7\x04\x10\xd0*\
+\xb1F\x09Z\x12\xc9du\xe9v\x8a\x04\x22\xda\xe8\xfb\
+P4\x9d\x96\xf3\xfa\xda\xbb\xcd\xb3\x18\x1e\x1f\x11\x9aR\
+\x87\xe3\x84&\xa1\xe2\xae\x11\x88i\xa6\x1dH\x06\xfeS\
+\x92\x19t\x1b\xea\xed\xebu&#\xd8\xfb.\x9a\x1d\xe9\
+Wz_MQ\xc0\xf7\x0b\x0d\xc3|K\xa1&\x88a\
+\x1c\xa7\xb6\xc6\xb5B\x0d<\x90pf\xfc\xc3\xf8\xa1[\
+AjFQ\xda\x0f\x13\xd2\xf6\xf5\x02\x22\xec\xfd3\x02\
+\x9b6'\xe6vZ\x19\x11\xd6\x02\xff}?\xc8\xbf\x99\
+*}h\xadA\x9c\xae\x1eX\xcd\x19\xe7\xc7X\xc4\xec\
+\xe3\xa6\xea\xbc\xaeRi\xcb\xc2\xfe\xcc\xa6\x16\x0b\xd1.\
+(\xe8\xdaX\xe8O=4\xff\x8eX\x9b\xdb}\x91!\
+\xed\x9f'\xc4\xe7\xfe\x13x\xa8\xf6\xfb&b\x8c\x98\x17\
+\xb5(\x19\x09d\x83g\xa0A\xdd\xb2XB\xff\x0a\xa1\
+f\xd4\x93\x82\x22\xaa\xe8\xcdM\x1b\x18\xb9\xe7\xa75\xea\
+\xe6P e\x0e^mG\xfa@O\xac\xb5K\xdb\x8c\
+7\x89\xaa\x8c(\x0cb6\xf4\x87\xcc\xf6rn'\x91\
+\x1b\x943Xs+\x04\x96\xaf\xfdK\xb3m\xde\x0cU\
+-\xd5f\xadZ\x9b\xfdeU;\xa4\x0d\xe5{B\xa3\
+\x8e\x8e\xa1B\xfb9\x0c\x15\x22\xd9\x88\xed\xe0\xd8\xb2\xc0\
+\xe2\x90\xd0g\x5c%\x18\x9b6\xb5\xa9\x18\xb88j8\
+$\xf4;&\xd3\x80:\xfb\xd9BS\xf3gqJ6\
+\x1a\xda\x9c\x90\x89%s[\xf2J\xab9\xc2\xb8\xbe#\
+\xfaok\x0c/\xa8\xea\xaa\xe9\xffE-=@$\xa8\
+\x8c\x8aE\xbc\xc1\x1d\xd78\xe6\xd4\x18\xd2V\xc8\x91\xf2\
+\xe1D\xa1\xd9@T\x9b~pC\xc5V\x84tw?\
+\x87?\xd46D\x88M\x16\xf3\xfe1\xa6Tm\xfb?\
+\xc4\xc5,\xeaQ\xcc\x1aQ\xe6v\x15*\xa5\xa9{k\
+\xe0m\xce\x84\xada\x03q\xde\x01\x81\xfbg(\xca\x0b\
+\x9a\xcc\x0a\xbf\x8b\xf8\x9b\xdc\x84\xbf6\x1b'\x1b$\x01\
+\x00\xae\x8f\xcc\x9c\x0d\xafak\xa1a\xd0(\x9f\xa3\x8d\
+\xe3\xedB\xa3j\xcb\xef\xf09\x1c{\x1cz6^\x0c\
+|\xfe\xe3\xfdY\x0d\x0a\xda\x90\x9az9\xdc x\x1c\
+>\xa1F6\xfbo\x0bV\xf1\x7f\xb5\x99\x03\xef\xaf\x86\
+t1\x98\xbe\xe6\xf6d?n\xc4\xa0\xe4\xee\xde\xe1\xdf\
+[\xaa\xe9S\xabR\x99[<\x8e>SE\xd3R\xe3\
+\x83\x00\x0c\x8e\x82\x98M\x87\xd5\xee i0AA\xb5\
+\xe3S\x98\x15W5\xeb%L\x0d\xbe\x8f\xfb\x85!\x83\
+C\x83AJ\x00\xcd\x19\xedt\xe8p\x94\xe9\x9b\x0d\xa5\
+\x16\xc7\x14\x87\x95\x0d\xf8\xc8\xc9Q\x93\xa3\x9a\xdfc\xbe\
+\xc2\x80\x22C\xb7O\xe9#Q)\xf8dTq,Q\
+\xc1\xdePh\x0c{\xd4\xe6a\xf0 \xfeEf\x1c\xc6\
+\x11\x0e\xafE\xf7\x10;\xcc\xfb\x82c\xb8\xda\x7f\xf7\xa3\
+\x87\xda\x96\xbfg-\x94B\x14|J\x13\x98$ \x81\
+\xc3\x8dax\x85k\xf4\x99\xa7\xdc\x7f\x02:8\x9ck\
+\xd9\xa1\x86i@\xc6\x89\xfb@&\x83Zx\x0c\x1e\xfe\
+~\x033?p\x98\xb9\x8f\xb3\xcc\x80\xf5\xed@\x9a\xd2\
+\x9a\xef3OX\xd78r\x1d\xdcG\x1c,\x1cw2\
+tP\xcd\xa9A\xc7\xf1$ C_m\xc6\xc1\xd3F\
+\xad\x8c\xec\xaf\xbd\xc0\xeb>\x81\x1f\xee\x0f\xa2\x8a\x04\x9a\
+\xac\x1e\x9f\x81\x22\xfe\x9d\x00\x0f\x01\x0aJ=`.\xe0\
+8\xe1\x88C\x85d\xbf\xe6\xba\x08\x90P\xaa`\xed\x8b\
+\x14\xcfd\xff\x82i\xf7\xff){\x13\xb0\xed\xc6\xea\xfd\
+\xff\xbd\xf7\xf3\x92\xccs\x99\x87\xc8L2\x94yxe\
+(\x92!\x222\x95\xc8,\xf9\x16R*S\x86\x92(\
+Q2K\x99I\xc9P$2Ef\x09\xa1\x0cEe\
+\x0a\xb9\xf7\xfe_k\xed\xf3\xb3\xaee\xfb}\xff\xbf\xe3\
+\xf7\xac\xe3\xe8\xe9\xf1>\xc3}\xef}\xed\xebZ\xeb\x5c\
+\xe7:OF\xac\xd8\x07\xd1p@\x0bF\x89\x11*\xf4\
+\xb1\x0eq\xe5@\x04\x12M\x1b(\xfe\xa2\xc6\x8e\xd6\xb1\
+H\xeb\x0a\xc0A\xeb!\xb96\xf4\xeb\x95\x19z\xae\x1f\
+\xf7\x83}\x17f#\xccIu\xfcC\xab\x88\x112\x98\
+\x0fJX\xc3M\xe0\xbb\x12\xcb\x85\xa1v\x8c\x9e\xef'\
+\xfa\x86E\x88\x85\xf2{a\x22\xf0\xdcp\x7f\x19\xc9\x80\
+\xe2\xbd\xa7E\x02V5\x22\x14\xe73\xb6Y*\xc8Q\
+A\x8f\xf7\x095X\xcfK\x88?2S\xfek\x8b\xf4\
+\xba\xb8oC\xc6\x03\x1dtF\x98\xe8x}F\xfb\x93\
+F\x04\x02\xf0D\x5c\x8dQ\x22F\xd5\xa4Q\x12\xf6j\
+\xb2\xef\xe3~\xc7H&\xcf\x11\x22~r\x81j\x1f\xb6\
+H\xfb\x0f\xe2}bj\xd08\x09f\xe9\xfc\x02 \xa4\
+\x95R~\xbb\xff\xbdI\x07*\x1f2\xa6\xc9G\x92;\
+\x03\xb6\x820\xc5`B \xea(\x06\x17\xa3\x0f\xcd\x9c\
+%\xe6\xa8\xd4c\xa8\xca\xa3wJK\x05\xc6\x81Fn\
+\xa3\x83\x0d\x83\x05&\xc4\xab\x12%T^\x886B\x88\
+\xfe\xe1K\xae\x0e&\x00\x91\xdb\x98}R\x9d\x5c+\x9c\
+\xb7(\xb1\xb9\x98\x00V\x10\x1fkQ>\x9fU\xe2\xec\
+\xa4\xe5$7\x01\xb4\xbe`\x04L|g\xe2\xc4\x89\x13\
+\x9d\xb9u\xb8\x8d8\x96\xdc\xa6\x1f\x8d\xb9E\xf7\xeb\xe0\
+\xde\xe6\xb0\xdbO\xb6\x7f\xac\x07\x18\xc9\xcc\x82\xb3o\xb2\
+O\x0f\xf3\x8c\xc5\xa51\x02\x83G\xfb_)\xf7|\x94\
+\xc3<\xa7\x5c\xab\xe9=.+[\x19\x1b\xf8\xb5\x8b\xca\
+O\x01\xd7\xdch\x91FDpe\xd09\xef\x05\xdd\xa4\
+\xb4^4\x92\xeb\x1dg\x1bi\x9aO#\x11\xbfQ\xfe\
+\x84\x86\x0e\xeeR\xcf\xfbPX0\x19c\x14\x8c\xd1Z\
+5\xa4P\xbd\x8f\xc2_\xe2\x9a\xa1\xa9\xc6h\x13v\xc4\
+4\x0e\xe4REG\xdb\x0b\xca-\x94/\xfd6i\xda\
+\xa0-e\xfb\xc1Y\x12\x7f\x9cO\xc0\xdd\x91\x95Y\x1b\
+\xe7\x09b\xb5\xd4\x950n\x01v9w\xb5O\xa0\xa1\
+\x11\xea\xff\xb2\xb5\x0d\xfb\xcf[,*\x00\x8c\xa8}\xd8\
+\x96^oQ\x1b\xc3L\xbe\xb8f\x831\xdd?Sb\
+\xd7\xc4\x8c\xd4\xbe\xd8lf\x91\x18\xcd\xbf\xedn2*\
+}\xbb\x89Er_b\xd4R\x8d\xc9\xd8\x97\x10\x87\xae\
+\x1a\x01\xbd\xc6\x09L\x13\xfd\xbd\x89C,\xca\xaf\xb9\xd7\
+\x22\x01\x1d\x1a)\xe8\x0e\xb1H\xae\x14P\xff\xe5\xae\xd7\
+m\xa3\x86/\x22\x8e\x02<\x10sD#.\x5co\x10\
+\xfbU\xdd6y\xbck\x89\xcfj\xb6\xeb\x09QS.\
+O\x94P\x9b\xdcx(\xd9\x14\x99\x1d\xcc\xe1\xc9\x16P\
+\xb3\xb7\xf1\xf5\x19\x12+Q\x079f\xd1\xcdOs\xfb\
+\xb4\xe1\xaaS\x05\x02\xc9\xacdP]%\xf6\x16\x07\x87\
+\x95\xd7\x97'\xb5U-\xc0\xf0M\xd5L\xb6/\xe3Y\
+S\xe2\xae\x0b\x1a\x1b9\x880\x1d\x0cf\xd4E\xf1\xa5\
+S\x88_)T9f\xc0\x99\xcd\x0a?W\xc4\x08u\
+\x90\x052%\xaac\x88;\x0d\xc5\x92\x84\xecFbA\
+B\x01\x85\x17\xb5c6~\xd9\x0d\xc6,\xd1\xe1%\xbe\
+\xa1\xce\xf1\xeeJ WL\xb3x\x86\xf8\x94\x03\xa7\xfd\
+P\x89\xf5\x93\xbd\x8f\xcd\x92?\x9afY\xb0\xc9\x9a\xcf\
+\xc9\xa8\xfd\xac\xe6\xa6\x9a-\xfb@\x7f0{Bh\xe5\
+\xef\x7fS\xe1F\xc1\xa8\x0f3\x891\xb1\x1aG~\x7f\
+\x90\x12|\x8d\x16D\x87Y\xfe\xc9!\x12Da\xc4\x01\
+\x04U\x8aY56\x88\xbf\xf9\xb4\xea\xa4\xf6!\x8b\xaa\
+N\xdbMWbZ\xad\x93\xb9\x92\x88\x8f\x0a\xf6\x98\xdd\
+\xd2\xc1\x1en\x166S\xf7\xb4w^K\xa8\xa0> \
+\x15\x8a\x96~\xdeW\x0b\x17\x80-6\x9a@\xbeE\x19\
+u;\x96{\xebHG\xac[\xeb'>+1\x92_\
+$\x91.\xcd6y?douz\x9e\xa9*\xd3\xae\
+!0%=G\x96V\xaf\x95\xec\x86\xa0H\xea\xbaD\
+\xe2\x0be\x9b\xc2\x0d\xf1@\xa8\xfc\xc6<X9\x15\x84\
+\x96v\x1c(\x00\xe4\xe5\x94`\xd3\x89\xe7\xb3D\xd3\xba\
+\xdbJ\xdc^\xdd\x1f\xba\x1f\x9485u\xc0,]\xff\
+\xa3DJ\xeeO\x00\x1e\xeb\x9fN\x16@\x10\x072\x09\
+(\x9d\x0d\x0a\x1a\xbe\x0f\xc6\x0f\x1f<_*\xdc\xd1\x98\
+\x08q'\xa947\x9f\xb7(\xeb\xe6\xbe\x12\xf7\xaa@\
+}]\x9d\xb2\xf3\xd3z\xc6\xc5CT\xf0P\xbfF#\
+B\xb3e\xae\xaa\xbf\xa8\xd6\x97\x01usZT\xa6\x12\
+\x09\x9f\xdba\xbd*\xaa\xfd\x87\xc4L\x98/Q\xc1\x8e\
+\x10\xe3\x05\x7fVf\xbbIH\xf4~\xa1\x00\x07\x80\x82\
+x\x0e\x09\xa0\xd4k\x1d.\xed\xd2l\x1b*\xda\x88\x0d\
+~K\xa3A\xb3C\xc1WGli\xd962S\xcb\
+\xbe\x08\xf0\x02@@A\x0b0@!\xc2\xc6\x02P\x84\
+:?\x05\x0f\x9d\x16>8\xe8\x19q\xe13\xfb\x1d\x9d\
+\x90m\xa52<\x04Fx]\xec\xb3\x14\x92\xdcGD\
+\xe7\xde\xa7\xdf\x03\xa3\x08 \x80\x04\x83\x82\xf2\xce^3\
+%l\x8a\xa6\xd3\xef\x99cp\x9d\xd8\xb7)\xdc\xb8N\
+\x14lPU\x01\xaa\xb8_0#:]\x07\xae\x0b\x05\
+,\xc0\x00*\xe6\x00\x03\x00\xd5\x14\x86\xec'\x00 \x14\
+\xfe</\x5c\x17\xf6e\x802\xf6\x05\x9ek\xcdr\x93\
+p\xcb\x9c\xd6\xaeg\x7f\xfe\x080\x0f\xea\xe9\x05*\x08\
+yn\xff\xadQ\x87/[\xa4\xf5\xc5u~\x87\xd6/\
+v\x87\x14\xc2\xa2(\xc7\xc8\x01\x851L\x88\x05\xfb\x19\
+\xe8H\xb8X\xbf\xf2\x1d\x8f\x19R\xedk\xa1\x0d\x03\xe0\
+\x83\xfd(3\xaa\xf8\xc1\xebs\x00|\x14\x9e\xd22\x88\
+Q\x04\xf6\x19\x18\x04\xd8\xf1Q\x103\x03?|N\xf9\
+9\x9e\x0b:\xf6\xac{\x5c\x1c\xe8\x08\xb1~`\xc8\x0c\
+\xef+\x9fa\x8c\xa8\xb1\x10Ty\xae'\x098bx\
+\x5c_\x01\x16\xe5\x0c\xdf\xcc\x81(\xf6y\xed\xdf\xa1N\
+O'\x1e\xc0G\xeb1\xect5\xeb\x1f\x057\xcc:\
+1\x0bB-[\x05w\x88\xfd\xc1\x1c\x02`\xb9\xcb\x22\
+1n\xf4\x5ct'Y\xa4\xd7\xc7\xe8\x056`\xa2\xa0\
+\x87\x88\x17\xeb\xdc\xb4+\x96\xa8\xcc\x9a(\xfc%Z\x1a\
+\xef\x0fF\x98\x12\xed\xa0P\x03\x94\x00\xcc\xf1\x1c3\xa2\
+\x80?\xbcF>b\xddp_\x01\xfc\x04\x88\xfb\xcc\xfb\
+\x89\xf5\xdc\x8eQ\x0d\xa8\xfcz\xff>\x1awp\x1a\xfd\
+\xa2\xb0\x96MZ\xb3Q\x89\x0f\xa7Q@\x89\xfb\xc5\x08\
+\x864\x8c\xa2\x83,\xf10\x00v\x18z\xa1\xc9 `\
+\xc6]\x8b\xf6\xa9\xdaPA\xb1\xc6n\xce\xf2\xcaS\x13\
+u]*\xfd\x91\x87I#\x8a\xd7\xdf\x5ck!F\xc1\
+\x15\xc9\x06P.0\x00\x0b\xf8\xb7\xfb`\xed=U\xa4\
+8|\xce\x9b\x92\xf7MN\xa3W\x88\x8e3\x1b\x0e\xe5\
+\x1e\xb7\x1a\x1a=\x8cv\xf1\x1c.\xac\xfd\x99\xfd\x94u\
+\xc2\xbe\x0c\xe04\xf7[\xed6\x83\xd9\xa6\xef\x0ff\x85\
+F\xca\xe2<A$\x16\xfbo[o\x89rM!\x1b\
+\x8c\x17\xed\x8b&Mh\xe2\x84\xcd\xdf-\x12S\xc8\xca\
+\xe1\x9d\xd5()\xeb\xb6\xbd\xd4\xa2|}\xb8E\x15\xbd\
+5\x18\xc7\x80\x9cR{\xf8\xe8u\x8c\xd0\x92\xffm\xe5\
+']?\xdazlu\xc3\x020ln\xb0\xa8\xa3\xb0\
+P\xc7i,\xc1\x14v\xb7\xc0q\xb5\x03\x8f\xc2\x1f\x17\
+5\xf2C\xbb\x1a3\xd4s\x0e\xbb9\xe3c\x1bs\xc0\
+\x81\xbb\xdf\xa4\x06\x10\xe2\xbf\x88\xed\x22\x16,M\x11\xf2\
+\x09\xf2\xf8\xb8\xbf\x02\xc2)\xfc\x9b\xa9,\xea\xfe\xd0|\
+\xc5\x221\x17T/F\xe7\x1c\xe0\x98\xbcR\xeb\xc0G\
+\x00\x0e\xaa\x8c\x96\xf1\xbf,t>N\xa9\x00\x16n\x1a\
+1*5k_Ob\x93\x8d\x0bA\xb7V\x7f\xbd\x10\
+S\xc6\x0d\xa4\xbb\xdb\x22\x89H3\xaaaZ\x03mm\
+\xe4\x9a\xb9\xa5\xdb[^h\x91\x18\x02j\x04\xc7\x88\x11\
+\x0d\x09\xec\x15W\xb5H\xe7\xfc\x14\x89\xbd\xb2?\x93\x07\
+`\xb3M~\x86\xbb\x97\xdc3\xba\x03,\xcc\x06pe\
+\x8bZ\x90\xbb\x0a\xec\x94:\x93\x1f\xaa\xa2:p}2\
+\xe2\xdf\xea<\xa5\xc4\xc0G\x02\x8eR\xe7ow\x89\xb3\
+\x9d,\x11\x82\x1b\xabm\x1f\x22hQ\x00#\x96`\x94\
+\x97\xdd\x92\xa8\x08\x89\x1aTrT\x12\x95\xd0\xb0\xc1p\
+A\xc3\xa6\xcc\xd2\xc4\xbf&\x15X\xeb\xf8\xde\x9a\x12\x15\
+\xa8\xfe:X\xc2\x16G_\xc7\x8c\x18b\x22\xb2]k\
+\xee\xb3\xa8\xcc\x05\x90\xdf8\xe8D\xd9\x0d\x9fj\x12Y\
+!\xae\x81\xa4CU\xa5SfH\xe5\x0cB\xb4\x8e\x94\
+\xc8\xc73\xc9^\x88\xce\x1f\x0f\xbe\x12\x04\x1f\x09X\xbc\
+R\xce\xcd\xc4\xc4\xed\xcd4\x13\xe7\xb3\xc8;\x95\xdb\xf3\
+\xbe\x12\xcbi\x86\xa4\xfc\x9dv#\x8b\xf2\xf3\xcf\x96x\
+&Q?\xa1..\xe5S\x9e\xd1\x19vB\xcdu}\
+A\xee\x1b\xe6\x90RJ\xa2\xc3,\xad\xc4j\xd8@\xc3\
+7W\xd4Z\x1e\xc0\x185@e\x5c\xc8\x1e\xea\xc3t\
+\x04\xba\xf5-\x92(\x8c(;1\x8aa\x0f\xd0\xcf\x92\
+-\x90\xa5#\xbb\xa6\x83\x00\x0d\x02\xd9\xf8\x8c\xe6\xb3H\
+j\xe3t\x84\xe9\x14|\xcbK\xa5\xb7\x8b+\xa2\xc6\x0f\
+%\x91Y<:>t\xce\xd5\x81\xf7\x02\xffK\xa2\x8a\
+n^7j\xec$\x9d(|y\xda`\x17\xf0\x9ef\
+\xbd.\x00\x0b\x06p]\x94\x90T+\x17?\x91\xfe\xbe\
+\x11\x95\x7fU;\xd3\x91P\xd2\xc1A\x84\x8fY*D\
+GH\x9c\xf9\x18\xce\xa2\xf2\xf3k\xba\xaek\x0f\xbc<\
+\xa8\xbfsRu1\x08w\x87}K\xecS\x91lT\
+\xb5Aj\x11)\x8c\xc2\x06\xca\xaf\xdc:\x82*M\x02\
+\xd9\xbaNk}\x1dP\xb3I\xc0\x00\x04\x10yA\xdd\
+\x1a\xd7\x05\x98G:\xd8}Fv\xeb\xea_\xed\x89\xe1\
+\x9f\xc5d\x99:%\x9a\xd80B\xa5E$\x09\x9b\x1e\
++/6L\xcc\x06\xb4QVs\xb9\xb3(d@\x82\
+\xd9G\xa2\xd3r\x87\x00D:\x5c \xb7\xeco\xea\xf8\
+\xbc\x8d\xfa\xcf\xa8\x07\x94x>S\xa8=\xa9D\x9eD\
+EL\x99P{F\xc5\x1d\x86\x12\x1d-f\x0d\xe9\xd0\
+S\xf8P\x98R\x88\x90\xf0\xc0\x88\xe1\xb9\xa0\xb0\xa4\x90\
+'qB\xe4\x8d\xd7\xc7L4\xa24\xcc2Ci\xd6\
+\xc1\x1b\x85\xe1\x07\x85\x98\xf3\xf7\xe9\xf42\x8a\x85H\x11\
+\xb6\x98\xd8v}C\xa2;\xf8\xf4B%Fl\x0f\x91\
+4\x0a6\x18`P\xe7)\xf8y\x9f|\xa6S\xcd\xeb\
+\x07\x10Y@\x80\xc6\xa0\x83\xd1Q\xa8N\xd1\xdf\xe5\xf9\
+z\xf1\xad\x22o\xe5\x1e\xf7\xeb\x98\xebI\x82:\xd4\xf8\
+\x80\x8a>\x9c\xc9\x07\xa8\xe0\xba\xeb|\xe0\xdc\x8e\xce\x11\
+\x94u\x00\x81\xa5\xf5\xbed\x83U\x8a\xca^<\x8c}\
+\x85\xf3\xf1\x8e~\x86=f\xb6\x17\x16\x83\xe3b%$\
+\x97wWtW$\x0a0\x85\xc8\x03J\x5c\x00`\xa1\
+\xe8\xf2|\xa3A -\x8ax\x9d\xb8sP(\xf3\xdf\
+\xb9\x1e\x00\x89\x00.\x14T\xbc_\x5c\x05\xf8=t\xe6\
+\x01\xa4\x958\xb1\xfeH\xec\xc2F\x94\x113:\xeb\x9c\
+\x03\x8c*\xb0>(\xec\x87\xf7\x01\xc0\x94\xe7\x93\xfd\x8a\
+D\x8c\xf7\xc1\xf7s\xee\xf2{\x19\x99\xa2S\xa4s-\
+\x18\x87\xf2\x9fg\xbdG\xc2\x0b\xc5\x1e \xeec\x936\
+\xf5\xe7\xe8\xb2I\x97\xfaH\xca\xd0\xa6P\x89e\x8c\x08\
+\xe0\xde\xa3\x99p\xce\xe3H$\x01\xc0T\x98#\x1a\x1a\
+\x22\xb2\xf8^\x03\xac\xe9\xfa3*\x1a\xc0\x04\x8d\x074\
+\x05\xe8D\xf3\x9c\xea\xe7\xa0\x18G\xc3\x87B\x8e\xf7\xc5\
+9\xc2\xba\xa3\xf0\x97\xd6O\xacc\x01\x85t\xb6c\xbf\
+\x11C\x09F&\xcc\x85\xd8\x7f\x19\x0d\xa4@\xc4\x8e\x10\
+\xe6\x8fD-G\xaf\x1b\xf74u\xda\xe8L\xdf\xdb\xfb\
+\xb3\xc7\xc8\xa7\xa8\xf7\xb1O1#\xfc\xf0\xe8!\x1fm\
+@\xcb\x04w-=\xa7q\xdd\x008\x10u\xb5\xaf\x8e\
+Q'z\xbe4j\xa6\xf7\xd5\xcce2u\xe5\xf3+\
+\xbd\xe8\x5c0I\x11{\x05\x08\xa4\xc1$\xe0q4\xb6\
+\xd0\xc8\xee\xac\xd5\xae\x99\xc24\x1a76\x227\x9b\x18\
+\x9f+\xd7\xd1\xbb\xd1l%fO\x14p\x1b\xed<Z\
+\x0c\xc9C\xd2y0\xa1\xfdF>\xef00\xdam,\
+R#\x83<\x8e\x02\x91\xba\x00\xd7/\xa9\xc7\x87\xe8,\
+\x8c&\x80$\xec\x00eG\x17\x80\x1f\x0cV\x1a\x82\xec\
+\xb3\xe4\xb1\xc6p>\xd4\x1b\x1b\xbeOyg}S\xcd\
+\x96oT\x0b\xdcfG\x0bu\x86?Z\x99\xd4\xe1\x82\
+\xf0u\x8b\xf2\xf9:\x0b\x9d\xc7\xbfP^[\x0a\xd6\xf1\
+%\x16u\x7fj\xd6(\xb1\xba\xec\x0e\x97\xa9\x7f\xc7\xeb\
+\x9b\xe3\xd5\x01>35:\x11+V\x9e\xd3\xfc\xd1\xa2\
+jV\xb1\xcf\xc2(6I?\x17\xf53\xad\xa7\xd7\x93\
+&\x17\x0dM\xb9\xc1\x05\xc5\x1f\xca\xfa\xbb}\xd8\xac\x17\
+?\x9c[\x0d\x92r=\xc7W\x8f\x7f5\xbe\xa6\x02\x08\
+02\xdb\xc9\x16\xaa\xcf\xee\xa9\xa3\x0c\xceP\x99SZ\
+]/%Qr\x0ac\xb9v%\x91\x04\xa5\x00\x00 \
+\x00IDAT\xc1\xd8\x86\x91\xd1\xecfQ5\x0d\x10\
+\xe5k\x0f\xb4(\x9f\xb7\xb4H\x0d\x18\x18,<\xe7Z\
+_\x00\x1e\x91?Z6a\xdaQ?\xb6\xa8\xe7A{\
+]{\xbd\xb9\x9d\xc4\x88\x18\xe75\xa3\xdd\xb8l\xe8y\
+q\x8f\xafs\x9cA\xe0\xee\x0f\xec\x8b\xcd\x8f,\xdc\xfd\
+\xce\xcfEl\xfa`8\xb7\xbf\xb0Hns0\xad\xd6\
+\xb7Hu&\xe7\x81\xeco\x01\xdc`\x9cF\xc3\x0cq\
+Z\x01\xed\xa1\xe9@}\x85(\xbf\x80\xd0\xc9\xcd\xf7-\
+\xb4\xc1/.5\xe0\xf3\xcbstx\x89\xb2\xe15k\
+\x97XK\x09\xf5\xae\xba\xc0\x86|~\xb0\xc49*P\
+~\xa6\xd9\x8dU\xaa\x1f\xa8?p\xb7\xa4\x19j\x1b\x01\
+\xb8OH\xa6Q_\xffa\x91(vB8\x9b\xd7J\
+\xfcGue\x97\x0aNl\x13$\xaa\x81\x8d\x88\xbf\x8d\
+\xed\x92\xd8\xdas\xaeW\x5c)\x81\x88\x14JT.:\
+|3X\x88Jww\xb2\x01\xe2\x00U\xa2\x85j'\
+\x0f\xc8\xf8\x0b\x16\xe5\xfb\x17\xb1H\x07%\x89\x17\xe2K\
+$\xac\x88\xef\x98\x1d\xda\xb9I\xdc\xc4\x883[\x88\xb2\
+\xb9\x8c6\xfe5\xea\xeb\x84\xda\xe2\x9d\xe7yj\x87\xca\
+\xf1\x89F\xc8|Y\x98\x13G[H\xcc\xe7\x91\xbaa\
+\xbbd\xc7\x01\xda\xa0v\x90\xbf\xfa\xdfj\xc78\x00\x09\
+:\x00\x03_\xf2H\xbc\x85<\x05\x15\x13\xaa*\x1f\x1c\
+\xcc$0\x5c?\x0a6\xa8\x98 V:X\x83\xda\x88\
+J/\x07\x83D\xea\xd8\x18\xbawY$\xca\x13H\x98\
+\x18\x0ea\xdf\xc2\x86\x82\x1a\xf3\x0a%\xde_5\x1a\xfc\
+\x81<*\xbd>\x0ag:.v\x9co\x9c\x00\xa4g\
+\xdc\xe8,\x0a\xeb@\x04\xb9\x1evL\xec\xa4\x82\xf7\x97\
+U\x8c\xc4;\xf7\xebU\x119\xff\xed\xb3%\x17\x04%\
+\x86\xcc*\x85X\x9eF^\xbcLx)%4\xf8\xf3\
+\x8a\x1a\xe8e\xdb\xfbE\xd5:!\xcd\x9e\xa3M`w\
+c\x8e\xa4fOaC\x87[\x1b#\xf6\x95\xfej\x9e\
+O\xf6\x7ft\x16\x11?\x14\xc0\x12H\xa4\x10\xe2\xb8\x1f\
+t\xc6,\xed}\xf3\xed3\xdc\xe1\xf7Mg\x03`\x08\
+\xb7\x08+\xff\x7f\x9c\xa8r\xd8\xe71;j\xeb\xf5\xe9\
+\x94\x90\x01p\xd0\x01`\xdd1\xa2B\xa1B\xe2\xcf\xba\
+\xc2\x1d\x83\xf5\x0e5\x1e?\xeb\xe1\xac-\x0c\x0a\x89\x83\
+6\xdf)qB\x12K5`k%%\xd0\xc7if\
+\xf6\x85\x94\xa8P0\x90\xa8.\xa8\xd7I\xa7\x1214\
+l\x9cP\xdfG\xd3\x82D\x86\xc2\x91\x0e\xb8\xee\x03#\
+6\x01\x90\x22\xd6\xa3Y\xdfx\x1d\xd8\xf2,\xaf\x82\x7f\
+Y\xfd}\x12m:\xb0P\xf6\xa1\xdcBY\xa3S\x06\
+\xe3\x82Y\xf4!C\x83\xce*\x9d\x03\xd6\x11\x1dY\x00\
+\x05\x0a#F\x10\xb0\xb3#A\xdd^\x89\x19\x8c\x15\xf6\
+\x89\x1d\xfaN\x8b\x0f\xba\x8c+\x80\xd4mf\xe1\x08\xfc\
+\xfe\xdd\xfeNQ\xec\xfd\xc8\xcf\xeaGA\xa2\x03\x0fP\
+\x81\x8f.L3\xdd\x9f\x10O\x83*Jgp\xe8V\
+\xc0\xbfS\xf81\x8a@a\xae\x9f\x1bq\xff6\xd4\xfd\
+\x9fV\x85$\x14z\x0a\x7fu\xd4\xa3\xd0b}\xb2N\
+\xb8\x8e$\xae\x14\xc0\x009P\xbe\xe9\x88S@\x0e\xc4\
+\xf0\x02@\xbaW\xd7}9\xfd~\xdc\x00\xd8\xefI\xb8\
+)\xa0)\xe8\xf9\xbd\x1b\xa8\xb3\x8e(\x22\xb6|7\x0b\
+\x98\xc1\xfd\x80\x0e\xfe\xe5= \x1d\xeb\x85\xdf\xcf\xb9\xce\
+\xcc6\x1dqf\xf9q\x0d`\xa4\x02\x8a5v\xb7\x00\
+\x95<\xff\x14\xda\x14\xb8\x00\xd3Cf\x00\xd7S\x1d\xfc\
+\x00\xfaQ\xc5\xe7:Q\xc8\xf3\xfcR@\x0fmK\xf9\
+L\x82\xc8\xf3\xfa\xfc\xa0S\xc9\xba\xe7\xdf\x01\xf6\xd8o\
+\xe8X\x0a\x10\x88\xe7\x11\x00\x82\xd9xD\xdf\x10\xd1\xc5\
+\xb5\x88\x19\xd2\xed-\xea(\xdd\xd0\xf7<\xdc=\x04\x10\
+\xd2\xb9Fk(\x80\x00\x1a!\x9a\xcd\x8e\xf5DC\x03\
+\xb7\x05\x014P\xaeaP\x06P\x87\xe83\xef\x1f\x95\
+z:\xdb0?\xc4\x1c\x8a\x8e;\xa2\xa3\x7f\x18\xdd\xe9\
+\x9d-\xf6%\x0a\xc93\x05\x1cc{*\x002\x00\x0a\
+\x18\x09\x00\x0e\x5c7\x1a@\xacC\x9es\xd4\xc9\xc5H\
+\x88\xc6\xd1\x1b}\x81_\x0a\xf5^|\x10q\xe7\xf5\xfb\
+\xd1\x92\xd1\xae\x1aI|\x97\xecX\xf7\xec\xfd\xc6\x99\xa9\
+6\x85\x17\xd3x\x89BG\xf7%\xd4\xfd\xc54h>\
+kQ\xfb\x08\xcd\x0c\x16if\x1ff\xa3\x95e{$\
+1F\xc4\x01\x19Y\x98K\xa2c_\xed\xc5\xb5c\x04\
+\x00\xf7\x1b\x98 b\x944\x17YT\xf1\xdb\x98\xe5V\
+\x1e\x08\x10\x17\x9aHV\xe0\xcf\x96\xa8\xeb0l\xa1@\
+#\x8e\xcc\x88+b\x81v?\xaeH\xfb\xcc&\x02\xf6\
+x\x0eu\x0eO\xfc\xc4\xa2<~\xebZT\x86m\xe4\
+\x9fz\xae\xc2\x06\x8ds\x9d\xfd\x80|\x0eF\x12\xcfe\
+\xb5\xdf\xec\x81T\x00\xd7\x99t\xff9\xef\xf9\xb8W\x7f\
+O\xfb\xae\x9f\xb7\x0f'@G\xf9fh\x0eQ\xe8I\
+s,\xec\x0f\xffj\xa1\x91\xc4\x9fW\x17+f\xb4\xbb\
+\xf7X\xd4\xc6[\xfb\x84E\xb9\x0e\x8b\x970\x17\x87\xdb\
+-\xaa\x86\x046t\xde\xd0z^\xf7q\x7f16\xce\
+\xa9\xfb\xa43\xb5\xbf\x91\x98\x03\xca\x07\xba\xb5-\xea\xa8\
+t\xeco\xec\xab\x8c\xa4I\xf3\xc7G\x87\xbe\x99\x0aO\
+\x8d\x1a\x07\x05\xff\xe0\xee\xa0\xce\xdc\xd4\xce\xb7(\xf7\xed\
+S\x16U\x84\x1a`\xb6y\xae\xc4\xb3U{\xa3\xfb\x9b\
+EuI\x09\xc6.\xa3\x8d4py\xfe\x10\xaf\x94\xab\
+H\xac\x1b\xd9\x82\xc6~\xa2\xe7\x9c\x9f\x0b\xa6\x87\x00\xf0\
+\x00F4\x12\x18\xb3\xf1\xac\x1f12\x9by\x9a\xb9\x9b\
+y\xea~G\x1dF\x03\xd0GKw\xa9u\xec\xa4\xbb\
+\x04\xcc\xe2\xe6\x84\x96\x00\x8d[\xf6=\xecoeG\x1d\
+\x9a+\x8c\xfa\xa15\x84h\xacD)C\x9b\x8a\x91 \
+\x00a\xd6?@\xb2\x98I\xb1\xdf\x92\xef\x88!\xd1m\
+eQ\xeb\xdf\xc9\x13]\x896%\x8c\xb2\xe7\x0b\xb1/\
+Q\xe8\x18\x0dpU\xd0E+\xf2\xe5\x22o\x0b%\x11\
+\x09\xc4\xcaD\xddF\x8d\xd1\xed\x1d\xf6\xaf\x94\xa3@n\
+\xd5\xb1n\xce\xb5\xa83x\x88\x88 \xda\xc0\x02\x0c*\
+\x0a\xb6g \xbdP\xb8\xa1\xcc\x910\xb0\xe1\xe9\xc2S\
+\xc8\xb5\xab\x96\xb0\x8e\xfdk%^\xaf\xa2\x1b\xd1\xc1f\
+\xc6\x0ej\xdc3%\x9eN\x85\x9c\x0a\x838\xc0\xd9P\
+\x10\xc7\xa3\xf0\x9f\xc3\xa2\xceDcK\x17\xa3\x14\x88\xda\
+\x882\xd6\x9caQE\xdeL\x93\xd9T\x99\xdb\xad-\
+\x12\xd2\xb7\xb5E\xa5\x98\x84\x1a$\xbfO\x07Ol\xec\
+\xa2${9X\xde_\xbb\xb7E\x15\xc9\x9bX\xa7\xc4\
+\xda\x091\xd5\x0c\x09T\xb1\xee\x93%\xb6M\xbe\xee\x9b\
+\x0a\x89W'#\x16\xb0\xaeC\xd8\x1fa\xb3%\x8aS\
+0$\xec\xbf\xef\x97\xc4\x9a\xa0\x0e\xdbv\xfd\x8a4(\
+\xdeY\xa95\x00\x1et\x1a\xdc\xd6\xe8_I\x85\x9e\x84\
+C\xae\x13\xddZF\xd2\x11\xb0\xf1\xfb\xf4\xa0P@Z\
+\xbf\xe4\x9a\xa42\xfd\xe2\xa4\x9e\xd9\x22\xb1\x1c\x7f\x9c\x96\
+H\x896\xd4^\x831\xa6O\x94A\xc4\x1d\x99)\x94\
+\xc8\x8fo4\xf7VW\x02D\xff\xda3-\xd2\xac.\
+\xeb\x88\x02\x82\x03\x8c\xaf\xc5\x14\x80\x92\x1evE\x06\xac\
+mX\x0b\xd1P\xf7\x17\xe0\xe6\x1b\xec\xd3\x89\xaaMA\
+J\x82Kb\xba\x80\xf70\xe3`\xf2\xd5N\x81\xfd\xbc\
+f\xcb?\xaa\x02{\xe5j\x03\x19\x85\xa8:\x1f~=\
+\xafV\xc7\xe5\xb1\x0a\xc4\x8d\x0e\xb4H#\x0b\x96\xc6\xad\
+\xad\xf5u\x95\x00\x9c%R\xc7\x0d\xea\x16\x1b2\x85\xcf\
+\x8d\x1e\x01T\xbe\xcd\xaf\x1c`\x8a\xce\x1a\x05\x98\xa8\xc3\
+\xc1\x10`\x9d)\xa1f\x96+\x18$$\xb6P\xed\x8d\
+ZuW\x02$\xe80\xd2q\xad\xb3\xd2\xae\x16\xeb\x09\
+\xd4\x0aId\x94N\xa6\x0a\xd3`\x1a\x90p\xb0.\xa1\
+\xcaQ\x10q\xff)$\x06~\xcf\xc1\x08\xe1:!\xbe\
+\xc8\x8c?\x85\xc3C\x02n\x9e\x96+\xc0\x83*\x90`\
+00\xa2%\x9b\xc9H\xf8\xe9p\x92X3\xbb\x0f\xe3\
+\x85\x8e?\xc0\x1e@\x13\x85\x16\x1d\x18:\xce\x14x\x14\
+L\xeb*\xa1\xa7\xd0\xc7\xf7~\xfb\x04@MJ@\xc5\
+Q\xd2*Q\xa1\x0e\xb2\x8dZ7\xf6A\x91H@5\
+6\xd1\xa4\x1f&\x86\x046S\x8c\x88\xa1\xee\x8ev\x0a\
+\xeb\x0dj\xe9<J\x1c\xb9\x9e\xac/\xbe\x06\x10\x18\x8c\
+L\x04@\xc0\xfad\xa6\x9c\xeb\xc8u\x1av\x90)\xb4\
+\x87\xb6w\x00\xad\xcc\x86\xd3\xf1\xa6\x00\xe6:\xf1}\x00\
+L\xac\xa7%\x82\x8a\x0e\xc3\xa1\xdf\x7fH\xc8\xe9\xc8#\
+>\x89\xcb\xc0\xdf\xb5O\xd01\xe1\xf9\x04pc6{\
+Uup5\xe2\x15\xaf\x9fu1\xb0\xa7\x0d\xa0\x03`\
+\x11&\x06\x056\x1f\xbc\x7f\xf6a\xce[\xa8\xef0\x15\
+\xe4\x8b\x1d#Z$N\x14x\xacW\x80\x16\x98E\x9c\
+_\x00\x8f0\xc3x\xdd\x14\x8a\xdc\x17~\x0f\x80\x86\x12\
+\xcc\xd0\xbc\xe1<\xe3\xf5\x92\x88\xf1\xbe\x00\x00\xf8\xfb\xfc\
+w\x9es\x12r\x89\x9dE\xc1\xaa\x82*\xee+\xeb\x8a\
+<C\x85X\xec\xa3\x12k\x0b\xa0\x80N23\xb8\xe4\
+5\xa2\x04\x87=\x1f\xe7\x1a.\x0b0\x02\x00\x16a0\
+\xb2\xdf`\xf7\x0b\x93\x08F\x96\x18\x9e\x14L\xe1\x9a\x80\
+K\x12\xa3\x150\x1a\x10\x9b\x06`\xa6\xd0\xc7\xb5Cj\
+\xfe\xd8\xc21\xf2\x14\xd7\x01\x86\x1b\x80\x0f\x9d\x5c\x18\x0e\
+\xa8_\xe3\xc2@!\x0f\x93\x02[FQ\x98\xc3\xed\x08\
+\xb1@\x9e;\x1a$\x8c\x8al\xdck\xaf0\x02\x16\xd7\
+\xb5\xed)\xbf\xdds\xbd+\xc8h?1\x0d$\xd6g\
+\xe5\xb0\xbb((\xefuF\xe6\xb3I\xcb\x09\x95\x7f\xec\
+k\xa5\xae\x1f#\x91\x001\xda\xe7`\x9c\xe1\x96\xd5\xfc\
+\xc5\xc2\x7f\xdeG\x12\x9aU\x9b\xd5\x9a\xd5\x92\x06\x80f\
+\xf8q/ \x7fD\x94\xaey\xc5\xb8\x03\xe5\xf3\xd9\x16\
+U|\xcc\xdd\x82fN~\xf5\xb2\x07n\xd6\xb1(\xff\
+~\x8d\x85l\xf4\x96H\x22\x8a\xdb\xfaPWe\xdc-\
+\xa4}V\xeb\x06\xb7\x95\xe6q\x8br|O\xb6(\xb7\
+\xf9\x02\x8b\xf2\xef\xabY\x94\xcf\xb3Z\xa4}\x97\xe7\x93\
+\xfb\xce\xf3\xce\xbf\xf3|\xb1\xbf\xd2\xe9oB\x0c\xd0\x81\
+\xbe\xee~\x8b\xaa\xe1\xc4\xc8o;\xafE\x1d\x8d\xe9\x96\
+1\xa3<1P\xbf\x9fFE\xc4\xb4\xa3\x01\x1a#V\
+\xaaG\xda\xf7\x96XT\x0d\xc0=\xc5\x5c;1\x15\xde\
+z\x0e|\xb0\xa3\xbc\xef\xf1\x11\xe3#\xec|w\xea\xfe\
+\xeb\xca\xaf\x17O\xfb\x04v\xdaZ\xaf<W\xed\xad\x16\
+U\x9c9\x0ae\xb4\xae4\xc2\x13\xe7\x15\xfb\x13\x9dc\
+\xe5\x8fq\xae\xc0<Q\xa1\x1d\x05\xa5\xb4y\x9a\x99,\
+j=0^\xcf\x225$\xb4\xff \x1a:>\xac\x84\
+\x89I\xaf\x5cb\xa54\xfa!\xf1L\xc45\xd9W\xdd\
+\xde{\x85\xda@E\x0b\xab\xfd\x9cE\xd5V\x88N\xb8\
+\x0a\xeb\x10\x05\xbd\x5c\xdal0\xf2\x0e\xe95#\xc8\x07\
+\x9b\xab\x9b_6W'Qi\xed\xaf!\x0a\x88\xd6\xc7\
+\xef\xda\x9b\xdb\xdf\xd5\x06M\xb8\xbbl\xd4\x8b\xd63\xba\
+\xdd\x9d.&\xc1\xe1=\x00\xc3\xef\x09\xfbx1P\xdb\
+\xed-\xca\xe7U,\xca\xe7u-\xea:\xec\xd6\xb5\xa8\
+\xa3j\x00,\xcc\xf0\xc7\xf3\xc0H\x02\x9a\x0e4T\xc9\
+\xb38'a\x9c\x92G\xeb<\x99<q|\x89\xe3\xf4\
+\x03/k&i\xff\x8at\x84H\xc4\xe1\xbd\x08\x87#\
+\x8a\xaf\x09\xe1\xb8&\xfd\x01:\xa3Ph\x8dR\xb4b\
+\xa5\xe2\xc6\xc8\x00v\x1eP1\x85\xb4;rX\x16z\
+\xf3\x94Ey\xc3kY$\x0a\xcc\xfe}\x87\x071\x1b\
+\xa7\xd8\xbfOb'\xdf\xd0\x0c\xf9\x86\xd5/\x91B4\
+\x10Hfom\xf6j\xcb4\xc3m\x92l'\xa7\x99\
+>\x10ku(\x9c\xda\xb2\x86\xfcmgH\xe2g\x14\
+\x12\x14\xfe\x14\xa6:`\xa06E\xe2 1AD\xca\
+@$\xc3\xb6L\x052\xb3\xe0\x81\xdc*\x91\x09\x11\x19\
+\x89\x10uWY\xa4\xd9}\xa9\x5c\xc2(\x08j\xa4\xa8\
+Z\x8e\xdc\xceZg\xb6\x1dh95\xa9\xe2\x82(!\
+*\xa6\x19\xb0\x10\xf7\xb2\xc7\xeb\xab\xe9\xfeM\xeb=\xad\
+\xdai\xa1\xa0\x04q\xb7\x83s\xd9D\xd1\x87b\xcfA\
+k\x08\xd7\xbf\xeb\xccx$(zp\x9d\xd1\xb1L\xa2\
+\xcaa\xcbax\xffz.\xca\xe2T\x9b\xe8\x88IE\
+\xdf\xb5$\x9eHb~\x96f\xbd\x98\xc4#\xed\xaf?\
+%1\xbf\xf5*`\xe5e\xddN\xa9p\x84\xb2n}\
+\x93\xd7\xd2\x8c\x22\xef\x97\x02C\x88jt\xac\x10{4\
+\xaa\xde\x9a)\xa1\xc2\xaf\x1a\xb5d(\x93\xd81\xe13\
+\xaaD\xc6\xa9X\x17\xa6\x0d\x185U\x15\x94^\x90>\
+\x9c\xa8\xab\x1c\xb4\xdc\x7f:\xe6\x00\x0c\xbc~\x0aO\xdb\
+\xfe\xa7M\x9d'\x0a\x141QP\x19\x05\x90qm\xdb\
+\x13$\x9a\xb5\x87\x00\xb2{*\x95(F5\x00b\x10\
+A\xa1\xa0\xd2\x7f\xc7\x9626$=\xffa\xa7E\xe7\
+\x9e\xc4\x92\x82\x83\x84\xdc~\xdb{t\xf0\xcf\x96^?\
+\xeb\x80\xcf\x1c\xf4\xbc\x7ff \xd5\xa9@L%:\xd1\
+l\x98$\xb0h4@\xb1\xc3.\xd0\xf0\xe1\xad\x92Z\
+\xfa\xcd\x16i\x84C#\x01\xa3[dK\xc5\xac\xe5\xd0\
+\xae\x8c\xe7\x85\x8e%\x89>\xd7\x8b\x0e\xa9^\x1f\xb3a\
+!\xa6&D8\x98\x0b\x07\xcb\x1f\x99N\x1e\x087\x9d\
+M:\xd8\x03\x15\xe4\xd1Z\x12=\x1a\x88\xd4\x04e\x99\
+\xef\xe7\xe7I\xb0\xa0\xa4\xf3:)\xa8\xf1/\xc6\x06\x11\
+\x0a7L\xa0\xa9\xa3\x03\xde\x17r+\xaape\x04d\
+c=G\x00:\xaco\xcd\xd6\x86\x98\xd7\xa5\x16i}\
+\xbc.`kk\x89\x1f\xbd\xbb\xef\xc8\xc5\x08\x8a\xd4\xf9\
+c\xd6\x93\xce8\x85?\xc0\xe9\x82\x9aI\xa5\x80%Q\
+\xeaT\x90\x0eE,\xf9\x1a\x9fq\xb4f(\xf0\x87\x9d\
+xD\x04)XT\x80\x8f\x16\xd3\xe8\xc5\xf2z\xdf\x14\
+\x9a\xaco\x98\x08C\x80p\xb8^\xe8t\x91\xc0q\x0e\
+,\xadB\x86\xf5\x07\x00\xb3\x8e\x0af:\xafhR\xf0\
+}\xfc~\x98\x14\xcc\x9e\xc3\xb0C\xadZ\x1dN\x1f\x90\
+\xd9\xd0\x81\xb0~\x04N\xb3\xe9\xdd\xa3\x16\x89\xa1\x86\xc8\
+\xd6\xed\x16\x89\x9aL>A\xa2\x82\xed%\x8c)\xf2\x01\
+;\xc7~\x90\x00\x1c\x00&\x0ad~\x0f\xfb\x10\xc0'\
+L\x81\x7f\x0c\x80\x0d\x0a<\x18A\xac{\x006:\xd0\
+\xdc\x17\xae\x0b\x05=\x85;\xeb\xfa\x7f\x1b\xa9b\xbd\xf0\
+\x99\xff\xce\xf7\xf3\xdc!\xbe{\xa0G\x14\xde\xd1\xd1#\
+\xb1'O\x80a\xc5:\x11\x80G\xe1\x12\x059\x00&\
+\x85\x04\xcf5\x1a\x0bbF\xf1{\xbc\xf1\xf1L\xeax\
+*!\x0e1D\x0aw\x98\x04\xa8x\xc3La\x94\x8a\
+\x0e;\x1a-\x14d\xfc}Q\xf7\xb1/E\xec.\x00\
+\x04\x0a\x14\xd9=G\xe1\xbb\x8bFK\x8d\x82{vz\
+\x1f<\x070\x97h\xc0\xa0\x09\x80F\x06\x94{\x15 \
+\x01\x9c\xdc\xa6\xd1,:\xcd\xaf\x8a\xb1\xc1,\xf2\x02\x16\
+\x1aa\xd8Qn2\xb79E\xd8\x81\x92v\xe3^,\
+\xcc\x15\xb4\x1eJ\x9d=\xec\xc9n\xb6\x13\x22u\x5c\x19\
+M\xc0u\x09\xea\xb2\x18\x1e\xa3\xe9-\x92\xba?\xfb\x06\
+\xb6\x82\xaf\x88\xf2,\x1bB\xb43\x9a\x13\x9b\xef6\xdf\
+\xad\x0cE\xf6\xcd\xa0Hk\xbfjf\xb6(\x9f\x8f\xb0\
+H\xdf\xc7\x08\x8a5\x026N\x22{4\x98\xa4\x0d\x80\
+\x8bSs\x89\x85\xf2\xdf\x07t\xbf\x9eL\x9aK\xac\x9f\
+mz\x80#\xc4\xc6\xb5\x7f\xb4\xc7[\xd4Q\xcd\x89S\
+,\xaa\xb8\xdbxM\x8b\xb4/s\x9f\x07\x8c\xa8`\xd8\
+`\x03,\xfb\xc2\xe8\x00\xb3\x8f\x92\xef1\xca\xbc\x94E\
+u\xdb\x8a\xcfK\x97XJ\xfe\xea''\xbb7\xe5m\
+\x009\xb1\xcf\x7f\xdfcR\xbb\xafE\x9d\xc5\xf7\xf2\xf4\
+\xb0Tx\xb3\x8fk_q%\xb4'{5\xfd\xf6\x13\
+U4\xda\x19\xd7\xab(/?+\xed\x130\xb5l4\
+cQ\x01Z\xdfO\xa2\xb7\x00\x94f{\xfd\xd3\xc4\x84\
+F\xcc\xda\x00\x8de\x12\xe3\x89\x06&..*\x98y\
+\x9d\xde\xd8+\xd7\xaf\x9d\xda\xa2j;\xc0\x9c\x998\xc7\
+\xa2\xfc\xba\xfb-\xea\xfe\x01s\xb2y\xccBnl\x17\
+hf\xfe\xae\xc4\xd4D$\x15\xcd\x0c\xdcTlv\xfd\
+\xa2\xba\x8f4\xe7[\xd4\xe7\xaa}\x9fE\x02\x98\x19\xf1\
+\xd8Q\xe2\xb7{K<S\xa3_\x88\xbc\xfb\xe8\xc0\x16\
+\xa91-\x17\x87\x18a\xa4\xbe;\xa7\xef\xe4w\xbf\xeb\
+\xf3\xbdv\x0f3\x82.\x9f\xffeQ>\x1feQ>\
+oeQ>\xff\xc7\xa2\xdaE\x86+\x81\xce;\xdc\x84\
+hx#\xd6H\x9d\xc2}!\x8f!\x7f\xa2\x0e\x0e\x9b\
+\xf5\x8d\xc5\x5c\x06`\x95\x8b\x1e\x9a'0\xd5\x038\xd8\
+\xcd\xa2\x024\x93\x9b\xcfYh\xe6`\x83t\xe1vw\
+c\x93H|\x9d\x02k\x08\xcd\xafJ\x5c\x9d\xec\xa6\xbe\
+bQ\xfe\xfbq\x16u\xa3\x09\x11$:\x22\xd6\xaf\xda\
+Q3\xc8W\x0aA3\x11\xad\xebK\xe4\x91\x00S\x0f\
+\xfehEd\xbc\x83\xf8\x85J\x05\x0e\xd18!nP\
+\xf7\x9dr\xf8L\x12\x8d\xa2 \x1b\xaaQ2\xbb%\xb5\
+G\x90\xad\xee\xeb%\xbe\x96\xd4\xf3u!\xbby-R\
+\xa1\x07\xc0@\x82%\xcaJs\x8fE\x15\x03!\xc1\x80\
+\x02\x1d\x22\x89l\xbc\x9a}\x0b[\x09D\x12\x0d\x81\xfb\
+p\x12?\x91zs\xbb\x9eE\x9d\x8dr\xc4y1\xcd\
+\x0c\xadY\xc5\xff\x9c\x82\xb4EE\xd2'\x96+\xb1l\
+]\xd8>\xb22J\x07\xb2\x89\x86\x1d\xa2\x04g\xddt\
+0\xd3Q\xa2\xd3\xba\xa0\x93\x98\xfb\x8e\xcb\xcf\x93H\x9e\
+(\xe71s\x8b\xbd!\xd4Z\xb4\x10\x98\x09\x94]\x07\
+\x9d\xa2\xee\xb8\x12\xc7\xa6B\x99\xebj\xfd\x8f\xcf\xd7\xd9\
+}\xc4\xf4\x9c\xf2t\x80\x90\xd4\xcf\xa5\x0e$3\xc6\x86\
+\x9c\xad\x93(\xfcPJ\x01x\xa0\xc6S\xc8h\xa3v\
+\xa6\xc1\xfe\x02\x94\x8eH\x09\x12H\xb7\xf5ooJ\x94\
+\x22\x12J\x0a-\xa3^~*\x15F\xeah\x8d\xce\xb3\
+H\x9d)\xd9\xa4\xc4\x01@\xc2MB#J\x97\xf7W\
+~\x91\xb4 (\xcc\x04\xc0\x80\xb43\xdb\x88{\x853\
+q\xe6W\xa1tAz\x0e)$x\xdf\xa8\xdc\xa3j\
+\xbb\xb5\xec\x88,}\xdf\xa0\x02'~,\xcd+\xe0\xea\
+\x0c\xcd@\x1d\x9c\x80\x93\xc1l\xbe'\xea\xd7J\x141\
+ift\x8bY$\x0d\x04;~gIL\x0b\x9e\x17\
+\xcdb\x91\x7f\xfbO\x9f\x96Drdw\xe5\xef\xea\xd9\
+\xb4\xce@\xdc\xe9\x5c\xf3\xfb\x10\x9f\xe4`&\xd1\xd7\xba\
+\x8c\x19/\x0eb\xee\x1f\x05\x9cM,o\xdew\x84\x1c\
+\x882\xd1\xd2\xbfK\xec\xc7\xd4Y\xa7*Q\xd6\xd5x\
+\xc5\x12+U\xe0\xaf\x99\xb0H\x09\x0f\xd7\x9d\x83\x1b\xca\
+<*\xcaPr\x01.Hp(\x84H \x0f\xeb\xef\
+s\x14pt\x22\x19\x11\xa0P\x19\xfa\xe6\xf2\x9c\xd0\xd1\
+\x9fS\x85*\xdf\xcf\xf7)\x01\x0f\xe0\x84\x91\x1auF\
+\xd9\xf7\xa3\xf3B\x81\x0b\xf5\x0c\x00f(\xf2\x86\x18*\
+\x9d\x19\x0a1\xae\x0b\x94\xd0\x05\x05H\x22>\x06`\x06\
+\x90B\xa1:\x9d\x0ef\x15\xcc\xa3\x85\xfb\x99\xb8nw\
+\x0bO\xfc\xfaB\x00\xfb3f\xbb\x8f\x16\xb0\xbd\xaa:\
+x\xcc\xa0\x03\x04\x1d.\xe0\x0fC\xccw\xbcu\xd68\
+\xd6;\xc0(\x89\x13\x05\xdc\xd0\xb5\x82\x82\x8c\xf5\xb5\xb4\
+\x00\x1c\x00\x00\xd6\x1b\xd4T\x12S~\x0f\xfb\x16\xe72\
+_\x93\x98\x0c;\xdc\xfc^F\xa3\xa0\x92\xa3e@\x82\
+\x8c\x1b\x01\x80\x1b\xa2y\xecS\x14\xea\xa8\xf8\xb3\xdf]\
+&F\x11\xee\x0d\xcc\x90\xea\xfbJz\xd5\xdb\xeeJ\x84\
+3\x00a\x00J\x18\x09\x88K\x8a\xa1\x16\xf7\x09m\x08\
+\x00\x0d\x0a:\xce\x07\x12[\xb4]\xe8`k\xd4/\x9e\
+\x03\x5c}\xf6\x95:8\xbf\x8f\x8e1\xee5\xec\x1bC\
+\xcd\x0b\xf2\x07\xee/\x80*\xb6\x92\x9a\x89~\x9b\x16\x00\
+\xe7&\xe7(\x801\xee.\xff\xb6H\xa3\x82C\xb7\x0d\
+\x9e\x0b\xde'\x00)\x0d\x00\xc4\xf9\xd4\xc1\x0dW\x10\x9e\
+W\x18L\x88\xb2r\xbd\xa5\x12\x1e\x85\x12\x7f\x97\xd7\xcf\
+\x7f\xe7\xbc\xa7\x03M\x87S\xa2r\xc1\xa8D\xbb\xc9\x98\
+\x85\xaf\xd4s4:\x8c\xeah\x06\xb3H\x9d\xd5\xa0\xf8\
+\x02dr\xce\x8a\xd9\x14\xee*P\xd1\xcf\x94\x8d\xd6\x85\
+\xa2\xc0J\xdd>\x98NO\xca\x05I\xcc\xa5\xb8.\x00\
+\xec0\xdf\xf8\xa0\xa0\xd0\xb9\x1c\x85\xf6\xde\x16\xc9\x0d\xe0\
+\xd5\xde\x8d\xc0;\xf5W8\xe0\xe1\xf9\x14\x0d\x89\xe88\
+\x9b\xad\xe7\x07T\x00\x1f\x95\xf2\xc1\x9d-\xd4\xc8X\xd6\
+\xc5\xa3\xefp\xed\x17\xf6W\xf6\x1b\x80\x0f\x80\x1e=O\
+!\xce\x0c\x10\xda\xb9\x8c\xe8\xdb\xed\xd1`\xae\xca\xdd\xa0\
+\xd9\xa1\xc4\x8e\xcaC\xe7M\xd4i\xa8\xc3\x88\xf5\xe9}\
+\xe0\xea\x10\xb3\xccZ'q\x1d\x18a\x00\xe0\xe6|\xc2\
+\xed\xe3+\x1a5\x90\x98\x9b\xff\x9eV\xe2\x83\xe5z6\
+\xef\xb2(\x9f/\xb3\xd0\xb9\xb0Y\xb2\xfb~\xbfE\xfa\
+y\x8d>F\xa1&\xfb\xc3\xe6\x02\x8b\xba\x0f\xb7\xfbX\
+$7(:\xcd\x14\xf80\x1f\x07\x94\xea\xd8\xbf\xdf\x10\
+\xf0w\xa1\x1aN\x9a\x89w\xbb\xbdC*\x100\xfe[\
+\x89\xa7U\xd0\xbd\x9a4\x078G\xed\xb9x\xa5\xda\x05\
+\xfah\xe3\xa6\xb5@n\xdfi\x91\x00{\xcee\xf6c\
+\xb4\x94\xd8wu\x1f)\xd8\xb1\xff\xe3\xdc\xf4uvD\
+\xda\xef\xd9\xd7\xd4\x90t\xbb:S\x91\xbf\xd7\xa2\xbc\xfe\
+\xf3-\xd2\xfa\xe2\x5ca\x9f\x03 \x83\xd9B#\x80|\
+\x00\xdbw\x15\xae\xed^\x16\xe5\xeb-K|\x5cL\xdb\
+\xb5\x94\xaf\x8dR>+\x00\x86\xd7\x8f\xf6W\xd7X$\
+[e+h\xf7\xab\xb3\xf5\xbc\x8f\xf6<\x8b\xf2\xfaW\
+\xb3\xa8Z\x04\xcd\xbe\x16\x89!\x84\xa6\xcb\xc9\x16I;\
+\x83\xfa\x0e\xfbP\xde\xa7\xf6\x15\x17\xb3\xbe-1\xd3,\
+kyo\xd2\x04\x01(\x84Q\x0es\xc0\xf6\x8be\x93\
+m\xf3\x7f\xfas\x91u\xd7\xfe\xd5\xa2\xce\xf6\xa3\x85\xe0\
+\x0cj\xd3,\xf8\x81E\xf9\xfaE\x0b\x01J\xdfKy\
+\x13\xfb\x0aL\x22F9v\xb0H\x0ds\xdc\xc6`\x16\
+\x08\x18\xb6\x81\x0c\x1f\xc9\xb8\xdb\x22\x9d\x93_\xb2\xa8.\
+\x11\xed/-\x0c\x000\x95l\xf3\xd5|_\x89\xe5\xb5\
+\x81\x7f\xb3v8\xc2'\x967n\xa2qk\xa6\xd9+\
+(,\xa6\xf1\xbaoZ\xa8\xcc`\xc9\x87\x9c\x03\xcc\x91\
+\xfe=\xd3\xcc\xb9\x10\xa9p\x19X\xdeB\x1d\xde\x07j\
+\xa1\x8f\xedAP\xcf\xec\xb6\x5cY)\xed\x88T\xc4\x06\
+\x0f\xe5\x85\x8e\xa4\xf5y\xf6I\x9d\x0d\xc3[\xd7|\xbb\
+\xe8J$:\xcc\xa4j\x83\x0b\xea\x1a\x89\x02\x141\x90\
+qu\xa8\xc3\xdd\x00*\xb8\x16| \x5c\x14t\x02\x12\
+\xf0\x0b\x85\xf2\x1f\x88\xbe\x18\x0bP[\x83\x8a\xa6\x0e\xa5\
+\x8b n\xac\x8e\xc5\xa6\xa9\x83EB\xcb\xfb\x145f\
+\xe2X\x0b-\xd4R\xa0\xb4\x9b\x97\xd8L>\xa1w&\
+\xbfID\xc3X\x88t\xbaDq\xf6ta\xb1\xd4\xb9\
+\xa4 &A&\x91\xc8v\x88\xf7%f\x81:\xd9a\
+\xa3AbGa\xc0\x06\x82\xf8\x8e]\x9f\xf7\xaa#\xd3\
+h\xf6\xfd[\xe9@\xa7\xb01%\x86\xa3S\xc7\x075\
+_;X\x8e\xa9.\x17\x0e\xb8\xbcPE\x17\xbb\xd3-\
+\x125\x10\x00\xa2q\x92X_x\xd8H\xc6\x0d%~\
+\x93:\xae\x96\xd6\xcf\x94\x9e\x07ulB=\x97\x99b\
+\xc4l\x10}D\xab\x80\x11\x13\xfc\xc7?\xef\xd1\xdf\xc7\
+M\x92\x9d\x08\x1b#\xd4q\x12\x1f\xec\xfd\xb8\xce\xac+\
+\xa8\x980B8(P\x13g}S\xc0m\xe0S\xbd\
+\x95\x9a\xc7\x01e\xc7\xe3\x9b\xe9\xa0X\xc8I{5\xa1\
+}\xd9e\xd5\xfa\x02pE%\x06\xf3%q\x12Kc\
+\x0d\x19=\xc5\x22\xd9dN\x1b\x85\xdb\xf2\x9e\x98\xea\xbe\
+\xa2\xce\x1f\x07:\x14Q\x0a\x1fi!DA\xc0\xba\xe2\
+\xfeS\x80\x82\x00\xd3\x91\xa6\x90!!E\xdd\x1f\xd5f\
+D0a\xf0\xe8y\x0c\xbb\x19\xb9G4\xd34\xd3\xd8\
+\xfdnV.aL\xa0\xf9J\xcc\xaf\x8e\xda\x0eu\xc4\
+\xc9p\xe1v\xb7\xf2}\x8b\x97X\x22%LBdG\
+;I\xd5<6<\x15\x9a$\xe4<\x0f\xda\x1fB\xad\
+w\xe5n%\xa7\xcc\xe1\xe3\x0aBB\xe7q\xa8\xb2\x0f\
+\xb5~I\xcdh\xd3)\xe1\xb3:\xb3\xf1\x9c\xf3st\
+\xd4)\xa4H8\x99\xed\x96Hg\x00)\xcc\x88\x03\xac\
+\x22\xe6\x85\xd6\xc6\x14\x01p$\xba\x14\xca\x00Zo\xe8\
+\xefi\x16s\xb4\xb8D\x13I,\x01\xccT\x10\xc5\x81\
+\xce:}\xb3G\xea\x01r\xc2W{\x16\x15\xe0hT\
+`\x83\xb7\x87l\xdfx\x8ex]0?\xd4i\x8bQ\
+%f\xeb\x01\xd0\xd0\xf0\x80\x8a\xccz\x04\xd0\x91vK\
+\x14\xd6\x148uv\xbf\xbf\xfe\x88\xf2\xa1\xa9\xc0s\xc6\
+\xf3\xcc\xdf\xa3C\xcasGA\xfa\xa6\x9eO\xbef=\
+\xf0|1\x0a\xc0\xfd\xe6>\xd3i4\x97\x97\x95\x93(\
+\x1f\x1d}l\x02)\xf0\x19\x15@\xecp\xee\xb7\x02\x0d\
+a\x1f\xbb\x9d\xd6\xd3n\x12\xdf\xd4\xfd\x0b\xa6\x1f3\x9d\
+\x14\x82\xa8\xb1C\x01\xc5\xa6\x17\x15n\xd6\x07\x80\x07\xe7\
+\x10\x14~\xf6Oftu?\xc2\xa6TbW\xb1\xef\
+i\x1f\x09@D\xcc\x0f\x12\xb7p'\x00\xb0\x81\xb9G\
+\xa7\x9f\xd7\x81\xf8\xe4S\x16i\xbds\xbd\xb9\x8f\x00;\
+C&\x09\xf7\x8b\xe7\x83\xcf<\x17\x88\xc0\xf2\xfa$\xfe\
+\x85[R\x14\xe0\x12\x8dB\xd59\x80 \x18}\x8c4\
+\xa1\x95\x01\xc5Y\xfbY\x14\xf80v\xc8O\x18)\xe0\
+<DlQL\x86\x103\x85Q\xc9l:#L\xda\
+\x87\x11\xeb\x0d\xd7$\xde\x1f\xe72\x80 \xe7=\xa3\x05\
+\xba\xceQh\xdd\xd0\x03\xa0A\xe5GT\x92}\x87\x0e\
+\xa8lP\x01\xc6C\x9c\x99\x99[\xa8\xfePd\x19\xc1\
+\x03\x98\x03H\xd6\x88N\xd9\xa5{\xc0\x17_s1I\
+C<Ov\x85\x88\x8e\xc1\xe4\x8b\xf7c\xbc\xd9\x9d]\
+\x8co.\x13Mc=#\x82\x16\x0d\x02\x13o~\xfc\
+\xed\x85o\x00\xf70\xdd\x00\xa0\xb8o\x88\x90j\xf45\
+Fa/p\xdf\x8e\x9a\xbf\xd3\xa9\x97k\x00\xfbg\xd8\
+\x14\xa2\xc1\x00\x00g\x1a\x0a'Wm#_\x85{&\
+1a\xcb\xf6\xb2\xbb\x09\xcf\x15\x00\x0c\xc0\x8d\xfd\xbd\xa9\
+\xf4|\xac\xae\xfde\xfdT\x08\xaf\xd3\x03\x08\xe4\xd5f\
+\xfe\xed\xf6\xdfg\xf7\x0c\xe2f\xb7f\xf7f\xf74J\
+\xa7Q\xcf\xd0HX\xcb\xa2l\x8b\xcfZT\x06\x22\xe7\
+G7\xa1BS\xcf\xcf\xa4\xdb\xd5\xd1\x05\xd0\x15@\x87\
+=^;\xb3E\xf9\xdc\x94\x18\xd5\x11\x0e\xec\xd9\xdcm\
+\xe7x\xa9\xbe\xaf\x90\xc4\x13aB[y\xfd?\xd2F\
+\xb8\xa8v\xbccTv\xe86\x02\xf3\x08f\xa6\x0dB\
+= \xfb\xe8\xed\x92\xad\xaf\xe5\x9d7$\xbbc\x01B\
+\xdd\xea\x16)\x8f\xb3\xbbwP\x02\xe6\xc4\xc8\x88\xfa\x04\
+{MD\xec`:\x91\xb7\xa2\xe1\x80K\x04\xcc-\x8d\
+V\xb5?\xb4P\xdd\xf3\x99\xda\xd8\xec\xde\xd1\xf5y{\
+\xc9\xc6\xda\xfb\xea9\xe5#\xd6\xab\xa6\xc6\x0f\x05\xaf\xf6\
+iw\xff\x1e\xd5\x91\xea\xf6A\x8b\xb2=\xeelQ\xfe\
+\xfb\x89\x16\xe5\xbf\xefj\xa1\x11\xe5r\x9e6\x7f\xb3\xd0\
+\xeb\xdb6i\x95HD04\xe7\xd0\xf2@\xd4\x18f\
+\x11\xdf\x07\x93\x88s\xc8\x9e\xea\xdf'\xa6\xa2\x00\x8ch\
+D\x88ql\x9ew6\x8a\x84\x06]7s7SW\
+\xf6\xa3\xf6j\x8b\xf2\xdf\xbfd\x91\xf295&\xdb\xc7\
+-\xaa\xa6Qw\x84E\xbd\xff\xb8\x010*\xc1H\x0c\
+Lo\x80T\x5c\x9f\xb0\x9f\xc5\x85 \x80[\xce)\x8d\
+63\x0a\xd2-dQ\x1b\xc1\xcd\xe5\x166\x02\xb0m\
+\x89O\x0a\xc9z)\x15\xe8\xf8~\x9bM\xda\xa3\xda\xe8\
+'%\xa4\x93\xc2\x81\x82\x88\x04\x12\x84\x8d\x02_\x07\x80\
+\x8b],\x92\x16\xaa=@sk\x83\xd9+Q`\xf1\
+\x8f5\xad\x81E\xaaXX\xa8$R\xd0[\x19\xbeH\
+\xb2wA\x03\x80DF\xa2#a\xeb`\x94\x92\x83R\
+!\xc6,\x96\xdd\x90u5\xbb\xf3\x98\xcftld*\
+\x9f\x91\xb8\xd1\xe1\xa23:\xd9e\x9c\xaax!\x05\x8f\
+\xec\xd6\xa2S\xc9\x8c:\xbe\xae\xf6}\x0b\xa7\x19\xbc\xa9\
+\x9d\x0c\xdbSd7I33R\xb1\x0f\x9fU\xd9\x8c\
+\x05\x83\x011\x1f\x89\x82D!b\x84\xb5;R\x02c\
+\xe9\xde\xb2\xa9\xd3\x22;\x97\xc93\x94(\x07\xc3\x9b\xd7\
+YhCYA\x1b\xde\xb8\xaa[Fb\x0c\xd2Ia\
+DG\x82\xce*\xcc\x06:\xfd$p \x88*\xd4\x02\
+y\xd3F\x16\xa3\x0d\x88S\xac\xd4\x178\x01\x1c1*\
+\xb0\x8bE\x12\x81\xd4\xc6\x18~\xbfl\xac\xc3Y\xca%\
+\x5c\xde*T\xe1q\x99\x08D\x13;\x12\xad\x83\x10\x81\
+\x84\xfa\xcf\xf5\x83\xda\xcal\xb1\x1d\x1bs&\xdb44\
+)\xe4n\x11\xc8$\x14h>\x03,\x90\xc8b\x8b\xc4\
+\xdf\x83B\x8c\xe8\x19H,T6\x80/\x01\x0a\xce\x9c\
+8.\xa9\xc3\xbe\xc3\xb7\xe2\x0a\x14\x90\x90Bm\xe7\xf5\
+2\xfb\xcd\xba@\xd4\x85DM\xdf\xcfhJ \xd5\xbc\
+?5\xe6\x83B\x8b\xe8\x89f4\xf1\x89\xf5\x8dg\x86\
+\xda\xd1rdu\x1f1S>\x97\xd6\x07\xe2\x870\x02\
+\x10\xc3S\xa7\x0c\x8d\x8a\x98AS\xe2\x14#\x03l\xe4\
+t\x9c\x11\xdf\xe4\xbaQ\x00a\xb3&\xf1#\xa8\x98q\
+ \xd3\x01%\xd1\x82\xf2&;\x97\x98\x9dT\x22\xe8\x94\
+<\xd3t\xb8\xb8\xc4\xa5\xd5.\xd5g\xf6\xfe\x9b\xb4%\
+`\xda\xcc(ui\x0aO>\xb8?\x00\x1a\xbc?F\
+\x14>\xa8Y\xeb\xcb4rD\x87\xb7\xda\xeb\xf5w\x84\
+B\x9a\xfd\x17\x86\x09\x00\xca\xd2\x83\x99o\x80L:\xc5\
+\x88\xb9\xd1\xc1$\xd3\xa239\xa4.\x03\x5c\x90\x08\x92\
+\xd0\xac! \x06uy(\xe8\x14\x1az=\x1ch\xce\
+3y1\xd9\x13\xce(@gkQ\xa0\xe9,\xffN\
+#\x15\x00\x8e$\xech\xc3h_\xef\x1e\xef\xa9\xe6\xa5\
+\xe8\xec\x0b\x7f\x0a0\xd61\x9dRD\xb9\xd8\xb7x>\
+\xb1\x17\x03\x10\x86A\x04\xd3\x82\xf5\x0c\xa3@\xfbN0\
+\xa0x=\xfc]\xc4\xab\xae.O\xef\xd5\x09\xc8\x00X\
+\xe0\xbepp\x03h\xf1z\xe8$\xf3\xef<7\x8d\x00\
+>>\xb8\xfe\xdc\x1f\xf6C\x0a\x09\x80\x0a\xf9h\xc7:\
+b\x9f\xe1\xfa\xf0z\xd8/(8>\xa8B\x8au\xc7\
+\xfe\xb2\x87\x00N\x12I\xee3TR\x00I\xb4#\x18\
+!P\x22\x12@=\xfb,\x80%\xd4x\xc4\x93\xd0<\
+\x00H\xe1\xdfQ\x9dgF\x1e\xa0\x90N+\xef\x8b\x91\
+>i\xdb\x8c\x0e\xb3H\xa3'\x9c\x1b\x03\xb1\xc8\x00b\
+(\xe8\x07\xf6Rq_\x86\x00\x0d@\x0c\x0d\x09\xf9\x86\
+\xbf\xcd^\x12\xe6\x00\xbf\x8f\xe7C\x09^$\x8c\x00\x15\
+Ut\xaa\xbf\x8e0\x95\x00\xea\x863\xf1\x00\xebh\xf9\
+\xe0\xb2\x035\x9fs\x80\xf5H>\xc7\xf5@\x13\x87\xe7\
+\x8b\x8e\xbe\xcd\x82\xcf\x92\x98\x06\x8c8\x02|\xb1\xee\xd1\
+2`\x1f\xe2\xf5\xc0LP\xc7\x9c\xd1\xce\xa0\xfc\x03\xf4\
+L[\x9e\xbai\x13 \xc0\xfa\x16P\x12\x9aM\xec[\
+z\xfd\xe1W\x8fz\xbd\x80!\xce{\x98\x01!n\x06\
+\xb3\x80\x11\x12\x0a3\x00\x02]\xbff\x97f\xe7f\x97\
+\xda\x90q\xd5\xef\x87\x5cC\xc3\xddrb\x9d\x0bX\x0b\
+@\x017\x1a\xec\xff\x00p\xcc\xed\xe8\xa9\x04\xfc\xfdz\
+\xd2\xf5\xfe\xba\xecu^\x5c\xcf\xd5\x10\xf1\x83\x11v\x8d\
+G}~\xc5\xa8\x8d<\x85\x06\x90\xec\x1e\x11\xa7\x8b\x91\
+\x01^\x97\xce\xc3\x18\x8d\xa2\xf1\xc1(\x88e\xe3?\xa9\
+\x85\xa0\x8b\x0f\x9e\x98\xee\x1f\x004\xfb\x01ZB\xf6\xee\
+\xb7L6\xd7\xac#\xb9\x10\x05S\x0b\xe0\x1e\xc0F\x85\
+[{y{E{E\x02J)l\x19\xb5\x10\xb30\
+\xecw\xd5\xa1\xedf)%\xd9\xcci\xa4\xf6\x98\x1e\xc8\
+o\x7fn\x91\xf6\xdf\xab\xc5 \xd6\xf30>\xb9\xc4I\
+\xe5\xfb\xce\xb2\xa8\x94\xf2\xf6\x81\x12\xf7'{n\xce\x0d\
+l*9gy\x1f0m\x18\x89f?`\xdf\xe6\x83\
+\xaf\xf9l\xa7\xe9\xd45_\xc4f\x8f\xfd\xb1\xdb\xda\x22\
+=\xf7\x9c\xcb\xb6{\xcc\x9d\xf2e\xcd\x8c#\xc69\xb1\
+\x8dEbD\xca\x95\xab\xfd\x93EZ_\x8b\xca\xdd\x81\
+\x06\xe2\xcf\xe4\xee$Q_\x1av\xed\x89%\xca\xebj\
+\xae\xb2(_\xcf_\xa2\xe4K\xed?\xdb\x7f\x1a\x03\x9b\
+\x86%\xd71\xa8\xee\xa8\xecK+\xa5\xbd\xb9\xc4-\x02\
+\xd0\xca\xb9>\x9e\xc1\xa2v\xa8\xc3\xc6R6\xce\xe3\x8f\
+ZT \x10\xbb\xca\x89\x17,\xd2\xe8\x8cF7\x01\xb8\
+\x9b\x15-\xca\xcf\xdff\x91\xf65\x80i\xc4\xaf\x87#\
+_0\xfc\x00Fi\x10\xc10WC\x01m\x9d\x00\x22\
+\x00\xf2\xb0\xed\x94f\x07\xf5Oh}\xe8\xf5\xb6{Z\
+\xd4\xeb\x14\x8c\x01i\x0c\x84\xab\x09\x22\x9c\xda?\xbam\
+,\x12\x03@#\xbb0W\x00\x22\x18Y\x0f\xd7\x07\x98\
+q\xd2\x8e\x98<q\xe3\xc4\x8d\xe6\x17i\xe5\xa5#\xf0\
+\xf8\xb4\x0b\xa9\xe7Br`6\x1b\x940\xea\xcer\x16\
+\xd5F!\x10$\x1dX\xa3\xab,\x12Bh\x85\xe5U\
+R\xb3?B\x05\xd7%uf\x0c*\x1e\xb3\x19tD\
+G_-qX\xf2\xbb\xd7\x06\x17\x08\xc91%\xbe)\
+\xea\xf9\xa1\xa9\x83~VO\x1d\x0b\x9b\x1a\x0ac:[\
+v<\xdd+\xb1\x98]\x92\xed\x07\xea\xf3F\xfd\x9f\xa7\
+v\x88\x9d\x82\xb1\x93DYN\xa8T\x91f[\x8b$\
+\x82G\x02\xa2\xd9\xd7\xe6N\x8b\xf2\xef\xa7X\xa4\x05\xc6\
+\x81\xa8\x03\xb8=\xcd\x22!VJ\x9c\xfc\x803\xe4\xf8\
+n\x8b\xf2}\xabY\x08\x19\xbcQ~\xa9fK\xf8\xa8\
+\x85\x0a\x9fW\xabx\x06\xf7\x87\x82\x04{\x96\xc9\x1bZ\
+\x94\x07\xe3\x14\x8b\xf2\xf3\xd7Z\x94\x7f\x9f[*\xb2\x1c\
+\x14\x1c\xf4$Rt\x16\x11\xaba\xe6\x11\xad\x07\x0eb\
+:\xcdl\x8c$\xec6\xe2\xb1i\x02|\xb0s\xd9\xd3\
+\x22i+\x90\x10Q0\x91h\xf1\xdf--\x9f\x92\x0a\
+K:\xe8<\x98\x88\xf2\x19\xb0\xf3\x17=@7\xa9S\
+2K\xa2\x84YZ?M\xdd\x10\xdcgs5%p\
+\xefL\x94|\xde\x17\x07\xbb\xd9ZMI\x14Xu\xbc\
+\xbb\xf9-\xca\xd7\xa7y\x84}Z\xd8\x10\x810\xeeW\
+b_Q\xeb\xcf\x12\xa0\xb6AJ\xd4\xd9x\xe8\xac0\
+\xd3J\xa1\x88\xb8\x133\xb8:\xb8\xfd@\xbb&\xd9\xec\
+q\xddu t~L=\xe4\x00\x00 \x00IDA\
+T_+qXr\xcb\x009\x84\x0a%*f\xa8\xb5\
+b\xbbh}\xb4ES\x02&\xd5\x7ffw\x83\x8a\x8b\
+\xda2\xa3\x15\x87Z\xa4\xf5\x0e\xe5\xb4\xd3T5\x893\
+\xafS\x07Pt`\xe9\xccaCG\xe2\xc3\xc1K\x07\
+\x8d\xc2\x89\xbf\xc3\xc1\x0b@D'\x90\x04\x8d\xaf\xf5\xf3\
+\xa1\xc1@\xe1\x0e\xb5\x8e\x8e\x01~\xbf\x7f\xb0H\xb6}\
+Z\x1fP\xb4\xb0\xd1A\xec\xc5\xfa\x18\xde\xc9 a\xa2\
+0\xe4\xf5\xa1\x82\xcf\x86\xcfAD\xc24\x83\x12\xa3\xf5\
+\xfa\x99\xbd\x10\xa5\xa33\xfc_\xbd\x7f\x0exTu\x1f\
+\xeb\xed\xaf\xba\x07\xd4\xf9\xfb\xb8\x0a3\x0a\x13\xd4\xc6\xf1\
+\xe1\x1e\xd8\xaaE\xa1EA\xa1\x0ert\x0eX7P\
+Ty?\x88\xec1Z\xc0l6@\x18\x1d;f\x81\
+y\x9e\xd1\xc88D#DR\xd9\xf6\xe3\xf9\x9d\xa90\
+gT\x85\x0e-\x00\x0b\x00\x14be\xacS\xf6!\x18\
+%$\x94tn\x07>\xedQ\x90\x0d\x0br\x12\xb5\x0c\
+0.\x914\x0a\x10O\xc2\x95\x83B\x9a\xdf\xcb\xdf\xf9\
+~/\x1e\x05\xb5/\xec*\x11\xdf\x83\xd9\xc0g\xae3\
+\x092\xcc\x22\xd6\x13\xf7g\xe8\x83\x0d\x90\x02p\xc1\xba\
+\xa2\x80\xa5\x10C\xccl\x8br~o\x91\x003:\xc9\
+\x00\xaeh%\x00 \xb1Np=\xa0@G3\x88\xeb\
+L\xe7\x94\xf5%\x80.\xd4\xc4\xe9\xfc\xd2\x19\x06\x00\xe5\
+\xfdp\xfd\x01|\x01\x08x\xdfC\x9bD\xfe\x9d\xf7K\
+\xc1\x0d\xa3\x81\xd7\xcd\x07\xe71\xfb\xc9P\xbd\x9f\x02P\
+\xd7%\xc4\xde\x00\xd0\xa0\xb2\xf35\xf7\x8d\xe7\x93\xe7\x82\
+u\xce\xbe\xc3\xba\xe0\xf3\xc0\xe5!\x18\x1a:\x17B<\
+R\xf9E\xcc\xee\xe2B\x04\xb5\x9e\xc4\x95s\xe2\x89\xb7\
+\xda\x83F\xa3\x04 \x0c\xc0\x90F\x07\xee-6\xa3\xfb\
+\x93\xf4s\xba.\x01\xd0\xf3>\x99\x15\x96\xd8+\x89o\
+\xdc7\xce!\x0a\xd2\x81J{\x88&\x92\xe8\xc2(\xd1\
+\xf9I\x9e\x15\x05\x15\xc0\x0c\x00\x13\x0d!\xd9\xc9\x06\xa5\
+\x16\xcd\x80=\xc5\xf8A\xb3@\x85#\xa3\x9a\xa3\x95\xb4\
+\xff\xfdT\x0d\x86I}\xa7\x8b\xc2\x8bYt(\xf91\
+\xaaj\x1d\xee\x89\x04 j\xf4\x81\x11\xb7pC\xa00\
+\xd7z\x0a\x86 \xb6\x83\x00\xef*\xec\xba\xf7ZT@\
+\xdf_\xc7\xb1\x09\xc8#\xdfb\x1d\x098\xe8\x9e\xb5H\
+\xebH\x9d\xcd(\xf0\xef\xb2\xa8yH\x8c\xfe\x92\x9f\xc2\
+D\x12S\xa5\xbb\xa9\xc4\xef\xb4\x8e\xee\xad\xf9u\xd8\x1d\
+Z^\xfe\x95\xb4\xfe3p\xb9`\xda\xcf\x00\xba`N\
+\x01d\x89\xea\x1e\x00<\xcf'\xcf\xcbOzf$\xb6\
+ehY\xc0$\x89\xdf\x8f}7v\xe0\xe4\x91\xfby\
+L\x1a\xdf7\xbew|O-\xe8c\xc4P3\xe5\xd8\
+\xc8\x8dW\xb6\xa83\xfbt\x9e\xa3\x11\xf1\x0e\xcf\x04B\
+l\x93Y\xedvQ\x0b\x8d\xe2\xae\x91\xa8\xe50r\xc8\
+\xeb\xfeo\x1fC\xad\x9d\xe1\xf3\xa9s\xc5\xed\xbdw\xac\
+uK0\xa5`\xe8P\x00K3g\xe2,\x8b$\x96\
+\xc7u\xf9\xa1EbfJ43\x1a(\x5c\xe7\xd9\xfb\
+}\xba\x9b\xd6\xa22\x8d\xd1\x02\x08\xc6\xad\x1a\x7f\xe3[\
+-\xaa\xa89\xe2\xf0\xce8\xde\xbc6Z\x1c\xf8z\xa2\
+\xe6\x9d\xdd\x9b\x16\x127\xffD\xcd\xeb\xc9o\x11\x85\x0f\
+\x9bJ\xb9. f>\xb1\xafE\x02,\x04$\x84\x8b\
+\x98\x00J\xdf=\xcf\xad\xb6\xf5!f+w4\xb4\xb5\
+\x82\xe1\xa0\x82:F\x9b\x8cw;Q\x81\x00\x1b\x90\xf7\
+\x11y\xea-4\x8f\xc8Ot\x1e\x86X\xf1\x1d\x16U\
+\xdc\x92\xbc\xc6\xf3\xf2\xaf\xa5|\x8a|\xf3\x10\x8bZ\x07\
+\xd0\xa0n\xff`Q\xbe\x9el\x91\x18\x05j\x80S\xb7\
+\x927s}i|vsX\x18\x00P.\xdb\xe4}\
+\x95\x18\xce\x95\xd4\xa6\xf5\xc02\xd3oR\x22&&\xe2\
+}\xb6M\x13\xd5\xd6\x8e\xdb\xb9\x13\x22+q\xbd\x00\x0e\
+L|\xe6\xe4:{\xdd\xdei\x91\x12,\x10-\x12y\
+|\xb5I\xa04\xbb\x126kP\xc7%R\xe8\xb3\xf9\
+\xeb\xa4\x19\x1a\xa9\xcb7\xcbY\xa4\x8e\x1e\x1dW\xcd4\
+\xbb\x88\xc7A:h~Xg\x15\xb1cq\xcaK9\
+\x80\xda\xdb-*\x82\xcf\xac\x09j\xa9\xcc\xee6\x97Z\
+\xa4\x0e\xba\x16@\xb8'<m\x91\x0aIu\x8aa\x08\
+\x8c\xbfT\xe2\x8b\x15\xe9\xeb\xf6.\xb1\x8f\x90\xfa\xf3\xb5\
+\xb1/\x94\xc4XlC\x9aZ\xd4\xbe\xb2Q\xb4_-\
+q\x98\xae\xe7\x1f\xea\x81\xda\x1cc\x91\x0a\x1b\x1d\x9c\xce\
+\xc0\xe9\xeaA\x88\xbf&\xa3\x16\x13\x17Z\xa4\x83^v\
+vo\xeb\x14\x81\x98#\xde\x81\x0a:\x9d1[\xf0\xb7\
+\xa7\xef\xa73E\x82\x82\xcd\x13\x89\x1f\x89\xc1\x1d\x16\xd2\
+|\x98,`\xea\xc0:+\xe6\xe5\xfa\xef\x92\x8d\x9e:\
+\xfe\x0eDm\x96\xd4\xa8E-\x8f\x83S\xd4yG\x8c\
+\x0fN\xb6\x7f\x5c\xb7_\xaaS\xc7\xc1j\x22%\x7f\xac\
+L\x91\xe8,\xe7Bj\xa9\x84\x84\xc3\x08\x00I\x97\xb8\
+f$\xect\xd4\x1e(\xf1`\xb2\xe5\xa3\xb0\x15\x15\x19\
+\x95\xcf@\x94\xf1\xab\xe5\xefb\xcfF'\x16@\x00\x84\
+\x92\xc2\x81\x04\x0d\x8d\x08\x9b\x05\x9c\xb9\x8aAzg\xfd\
+\xbc$\xe6D\x02\x8d\xd8\x1a3\xec$\x92\xf6\xbf\x7f\x11\
+\x93\xe3\xcfi\xc6\x97D\x88D\xd4\xd2\xff\x8f%*\x1b\
+*\xd9F\xf5\xdd9\x01C$\x84$\x10t\xa4\xb0A\
+\xc4\xed\x031\x1a\x00!6X\xf6\x0f\xb49H H\
+\xdc\x87\x9dSf\xc1D\x0d\x0d&\x0b\x076\xd7\x0b\xf5\
+\xfe\xb9\xf4{^V\xc7qK\x01@\xacC;>/\
+O\xa3\x06:\x10C\x93\xe1\xb7\x96J\xa5D\x96\xd7\xc3\
+s@\xa7\x89\xaf\x87vi$\xec\xd2&\x89\x02n(\
+:\xa6\xc4\x98\x99\xdd\xa0\xa2#J\xb7F\xbf\xae\xe2\xef\
+P \x0f\xfd\xd5\xe9\x882\xbbO\x82N'\xf7t\x8f\
+\xca\x18@m\x17\x17\x99Mu\x00B5\x97\x1d\x1f\xee\
+'q\xbfHTan\xf0:\xb2\x1b\xc8\xab\x09\xb0\xa5\
+ \xa4\xd3D\xa2\x02\xe0C\x81\xc2u\xe6y\xa3\xa3\x8b\
+h\xa3i7|9=\xc7\x14\xc2<_<7C\xcd\
+\x0c\x123~\x1f\x94f\xee\x1f\x85\x12\x7fw+\x01\xb8\
+\x1f\xd1,/\xcc\x08\x89\x11\x06\x85\x9e\x82\x9e\x02\x96\xfb\
+\x0f\x85\x97u\xc8zf?f\x1f\x80Q4\xb0\x0b\x84\
+\x0a\xfb\x96Y\xe5\x0f\xfa\xe7\xfe\xfe^\xd9w\xe2\xe2>\
+\xac\xee\xaf\xb0\xbe~\x18\x00W\x8by\x04#\x107\x0d\
+\xee\x1b\xfb\x0f\x89\x0fL\x1b\x0a9:\xc0\x00\xdaP\x8e\
+y]\x14\xe0\xack\xfe;\xe2h\x14\xfa\xdcw\x80\x09\
+\x98w\x14\xd0\x9cK\xec\xfbC\xd7\x04\x18\x1d\xbc?\x0a\
+^\xee\xff\xd0\xe5\x80\xcf\xb8\x15)\xa1\x8d\x9f\xa3\xf0\xe1\
+\xef\x02\x00P\xf0 2Ga\x05P1\xd4\xe4\x18\xaa\
+\x93\xb3\xeeX\x07\x8cZ\xc2p@\xa3H\xbe\xdbPs\
+\xa1\xc6\x8e\xb6\xb1\xf0\x8eR\xdf1\xff\xa7\x80\x0d\xecw\
+\x19\x19`\xffd\xdd\xe1z\xc2\xa8\x01\x80:\xb6\xbb\x12\
+]\x0c\x11\xe2C,\x92-\x17\x89+\xf7o\xe8\x22\x82\
+\x08*\xd7\x1b\xea-3\xfa\xac_\xee\x97\xc4\x1e\xa3@\
+F\xfb\x88\x19|D\x07\xb9\xdf\x02\x88\xe2\xf5\x0b@\x0d\
+Q,\xdd\xf7\xd8\x87\x98\xb5?\xc2\x22\xd9\xe9a\xf7\x8b\
+*\xfbSV\xaah\xa6\x7f\x97Dq\xb7<\xf0{I\
+T\x91u\xcc\xf9\x040\x09u\x1d\x11c\x007~\x0f\
+\xda/\x00\x5ch?p\xdd\xb1\xcbe\xd6\x99s\x90\xeb\
+\x81\xa8\xdb\xcd&+\x98\xce\x89aa\xce\x88\xd3\x0b\x16\
+uD54u,\xcb\xfe\x82\x80\x85\xc5\xd4\xe0X/\
+\x8d \xb2o\xe3\xc2#q\xe2X\xefhc\x08h\x88\
+\xfbC#\x84\xd1\x12\xce\x0d\x00A\xd6\x03\xcf\x05u\x80\
+\x0a[/\xd4\x8e~\x8b\xf8\xac\x03\x1f\xed\x07-\x9c\x02\
+\xed#\xc3\x93\xf6\xea}\xeb\xf9{\xede\xed\xa5\xc6\xcc\
+\xb3\x09\xfcqy\x8e\xc6w\x8e\xeft\x15u\xeb\xe4/\
+[5J\xda\x8d,\x9c\xca\xed\xcc\x01w\x1d\xbb\xb6\x9e\
+\xbb\xb8_\xf9\xd5\x5cN\xcf\xcb{\x93\xcf\xba\xf2\xb4\xf1\
+\x89\x16)\x0f\x02\xe8\x07\xe0\xf8\x7f\xfd\x18\xba\x17\x00d\
+\xb3\x0f\x00@\xc3teTD\x80*\xeej1\x92\xad\
+\xbalb\x17\x8b\x9a?\xc04p)9+\xec\xf7\xb2\
+\xca\xa3\x16\xc6Q\xb8\xeed\x91\x006\xd6\xb11y\xaf\
+\xae#)\x00[\xedo,\xca\xf7\xff\xbdw\xc10\xaf\
+*c\x1e\xc4\xb9}\xc8\xa4\x83\xad\xfei\x17\xb4(\x97\
+\xe9:\x8b\xaa\x15\xe0\x00\xf1\xecu\xbd\x86\xab\x85\x5cI\
+\x9a\x19-\xca\xcf\xdfeQ\xae\xff\xbf,\xaa\x0b\x00\xa3\
+\xe4\xde\xe6\xbd\xb7\x16\xf2!\xea\xceH\xc2=\x16\xb5\x01\
+\x8bh\x9e\xf1O\x8c\x81\xc2\xfak\x8fl\x8fj\x8fL\
+\xa3\x0d\xb2e\x8fsF\x0d\xc4`(\x98\x16\xc3\x855\
+\x8f\xee\x96\xb6(?\xff-\x8b\xf2\xefG[\xd4\xfc\xbe\
+]\xd2\xa2\x02\x8f\x13\x0bYT\x174\xc4\x00i\x1c\xc0\
+|\x8a\x11I\xd5\xbf^\xafX\xa3x\xc5v\xa5v\xc5\
+\xb4\xfeh\xf0\xf1|\xa9\xd17ybC\x0bu\xce\xdf\
+\x102\xf7\xb1\xe4O\xb9\xbe\xf7b\xfa\x82\xf2\xd8J=\
+\x89B\xf9\xe0\x12\x07\xa9#\x7fCU\xc5\xc6\x97\xd1\x11\
+\x17\xb3\x11\xf9\x98E\xda \x99\xa5\xd3\xacG\xa8R\xa3\
+\xce\xbf\xa6(U\xd6G\xfc^\xba\x00P%\xce\xb6H\
+\x94\x15f\x96\x85\x04c/\xd4<jQ\x91\xebn\xb6\
+\x12\xb3KDd\xefD\xb9\xd7B\x8f\xd1\x051\x12\x10\
+\x87A=1:\x85\x1c`\x88\xdb\x09\x81A=\xd5\xd5\
+P/N\x94\x90\x1f[\xd4\xd9\xb7@\x88--\xdaR\
+\xb6\x8b\x9b\xa6\x07\xc7\x10\xe0\xa9u .P\x0bS\x9f\
+\x0d\xffzM@A\xbab&R*\xb6\xa3\xeb-R\
+\xe2>\xa4\xee\xe2w\xb9\x8c\x85\xec\xb2N\x93\xdax\xb9\
+\xcf\xedgK\xec*\xf1\xc7\xef\xe8}\x1c\xa8\xdf\xb3X\
+*P`p\xacd\xa1\xaf?P7\xb0\x10\xb3\xc9\x85\
+\xea\xbb\x12\xa0!\xd1\xc0\xf6t\x8b\xd4!b\x86t7\
+\x9f*\xad\x85\x08\x8c\x0d({\x9799\xba\x17\x93\xda\
+$Q\xe94\xaa\x81x\xa0oD\xcf\xd5\xeb\xe8\x0f\xe4\
+R\xea\x04\xae\x9aDn`&\x18\xa1u\xeb4\xa3\xa3\
+Y,f\xddP\xe9\x0f\xea\xe2V\x9e\xf2\xd7Y`\x80\
+\x03f\x12e\xaf\x17\xeb\x0013!\xb2\x14>!\xfa\
+\x81\x8d\x0bbTP-)\x04\xa0\xc0\xe2v\xc1L%\
+\x89\x1d3\x89\x14\x08\x00k\x1c\xc4\xb8<\x90\xc8\x03\xe4\
+\xa1%a\x8c\x9f\xafV\xd5\xd1\x98M\xe7\xa0\xa7\x83+\
+\xb5~F9B$\x12W\x05\x12\x7f\xeb\x102\x8b;\
+9\x15n$*o\xfaTs\xa8.\x87\xdb\x073\xfa\
+tR@\x90I\xe8\xb1\x8d\xc2\xbd\x83\x02\x8d\xce3\x05\
+\x1d\x07)\xeb\x90\x0e8\x9dc\x12\x1a\xae\xd7\xa2\xea\xb0\
+\x00\x88\xc0\xc8XL\x07\xef\xc3\x93\xfed\xeb\x82\xd9e\
+s\x7fv\xffg\x13\xf3\xfcT\x9d\xe5\x9at\x82Te\
+\x87\xcc\x04\x0a[D\xbfx\x9e\x00D(\xf0\x87\x22]\
+\x14&$v\x00\x0a\xac\x07\xd4\xa1w\x97\x9d\xdf.J\
+,\x97\xd3u\x06\xb0#\xa1\x1a\xfa\x99s}(D(\
+@\xb4N\x03\xf8 Q%\xf1\xa5c\x81\xfa\xf7R\xda\
+?\xa7\xea\xd5\x97c\xfd\xc0p\xa1@\xc2\xae\x95uM\
+G\x83\x84\x07\xbb+\x12\x1ff\xfa\x01\x90(\x14y?\
+t\x08\xb9\x8e0L\x1e\xed\x19\x11\xd1\xa9\xe7\xbaq?\
+f\xea5=\xa2\x90\xa3\x90\xa6\xf0\xa3\xe0\xa6C\xfa\x82\
+EZWt\xe8\x18\xa9XM\xcf7\xcc(\x80?F\
+\x07\x00\x82y\x7f\xac\xbba\xc1\xc4\xfa\xa5@\x9c1\x98\
+.\xfd\xeb\x1fv\x90x\xfe\xe7\x1d\x88\x02~@\xfb4\
+\x22\x8e\x00u\xac\x1b\xce\x8fi\x94\x90?\xaf\x0e8\xc0\
+\x06\xd7\x91\xebC\x07\x92\xaf\x87\xa3&t\xf4\x00\x82`\
+*\xd1I\xa1\xb0\xa7\xe3-UjO\xe3\xf7L\x9do\
+^/\xcf!\x0c\x05\x98^\x00\x00\x00Hz]AE\
+\x07\xe0\xa0\x13G\x01\xcf\xeb\xa4`\xe5\xf7s\xfdXO\
+|\xe6\xef\xc0\x80\xe0\xfe\x01\x00 *\xa8\x8eq\x00V\
+t\x98X\x8f\xc3\xe7\x9b\xcf\xcc\xb63j\xc7\xdf\xe19\
+'q\x83\xa2\x8f\xe8\xad\xa8\x9fF\xc1m\xff\x99\xf2\x1d\
+\x01\xe8\x01\x10Jk\x06[L\x98\x0c$\xc0\xd1a\xe7\
+\xfdp\xbdpc\xe1\xfa\x08\xf0\xed>`Q\x81\xe3\xd1\
+s\x16iT\x93<\x8f\xeb\xcf\x08\x1fb\x8d\x00j\x9c\
+o<\xb7\x14\x84<\xff0C`\x92\xa8\xc0\x0d\xf1H\
+F\xda`\xc8\xa83\x1c\x7f\x87\x04\x98\xd1\xb6)\x16\xb5\
+\xa3\xd9m$U~i\xeeD\xdeJ\x1e2\x1e\xbd\xe9\
+\xe2x\x9a\xd1v\x8d\x8c\x8d\x120\xcb>\xde\xba\xa1\x5c\
+\xd5\xba\x00\xe8\xd2\xbe\x18\xeePt\xaeQ\x1b\xe7\xfd\xa9\
+\x10\x87I\xd1=\xda=\xe6\xa3L3:\x07\xcc\x80\xea\
+^-}N\xd9V\xca\xd5\x80}\xd1x\x7f\xce\xfc\xdb\
+F\xa3S\x00*\xb8y\xbdwp\x9e1\xf2\xc6\xebP\
+\x81\xefbp\x07\xa6Q\x0c\x98\x1bjX5\x9bXT\
+ )\xa8\xda[\x95\xb0|r\xda\x12\xa5\xe0n~W\
+\xe2\xe6\xc4\xc0E\x94\x0f&\x06\xcf\x01\x00\x14\xaeXf\
+\xcb\xfdZe\xa2\x96\x9c\xe5-#\x95\x88\xca\xb5\xeb[\
+H\x9c\xf6\xf1*\x1e\xe9\xbb\x98=\x17\x07\x94\xf8\xbc\xec\
+\xd6\xca\xf5\x1a/X\xe2\x84\xba\xdf\xf8\xc8\xd6\x93\x89r\
+\x8d\xc87ZR\xec\x9b\x06O\xfd&10\xf5>\xd0\
+\xe6\xe1\xf7\xb5OXT@\xc9\xab\x903\xdf2\xaaW\
+\x9ddF\xff?\x85?\xdf\xcfy\xc3\xf3\xc3\xb9\xc7h\
+\x86\xfd\xef\xaf\x92\xeb\x06\xe7\x99\xd6ch\xd4\xb0\x7f\x90\
+GP\xd8\xab\x91\xd9\xb9\x0f\xbc3-z-\x06l\xb7\
+i\xdc0R\x80h\xa6\x80W\xea\x95x\xbelWz\
+.im\xb0\xff\xe1\xae\xa0|v|\x89\x85\x8f\x92\xb8\
+\xebFy\xba\xfc\xf9\x0aJ\xbb\x18\xe2\x9c{\xcd\xc2\x16\
+\xe5\xb2\x1ck\x91\xc4:\xcd^}\xf6\xeaF\xd5,]\
+b)\xd5\x8fwH\x9c\xef?\xbe>\xdc.8\xb4\xa6\
+,\xcb\xbe\xac\xe6\x93\xed\xd1\x16U\xbc\xba}\xa6u\xd7\
+\x02\x1fu\x9a\xc5m\xfa\xdc.\xbe\xfd\x86\x85\xab\xfc\x7f\
+\xbc\xfd\xb83 |\xdf,U\xf2\xc2\xdd\xc2I\x13\x8d\
+}L\xfbhh\xbci\xa4\x13\xa0\xb1\xbb\xdc\xa2|\xfd\
+m\x8b\xe4&\xa1\x8e\xbf)\x0b\x98\xb6\x00\x0c\x8a\xd0$\
+`\xb4@.\x09\xa1\x09\xa0\xce~4\x02/\x18\xfd\xc4\
+\xf61FXaB\xb4\x1bXT\x1b\xc7\xc9\x13gX\
+\x08\xc1Y&\xd9\xe2ic53\x13\xb33\xe1\x06:\
+\x85\xbc<P\xcd\x9fK<*\xf5{S\x9b\xdc\xb3\xc4\
+\x1eu\xc3\xe8\xb6\xb2\xa8\x94\x22:\x93P9\x98E\x09\
+5S\xbb\xa1s\x0a1\x7f\xb7\x0e\xdcE\x94\x8f\x8eR\
+\xe1b\x0b\xd7l1\x0e\xb3\xa8\xc8J\x14|\x96V\xcc\
+U\xc5O\x02i\xe1\xc1\x95ob\xf8\xc3\x1b^\xf6?\
+\x89j%\x11\x95\xf6E\x8btcU\x00\xa0F\x19\x1b\
+0\x89\x1b\xf6xP.\xce-q\x9e\xece\xbeS\x11\
+#\x9bH\xb1\x0e\xf9h\xba\x12&6\xe5\x1fI\xadU\
+\x07\x97\x03\x1b\x1b\xa4\xc4\x0c\x11\x0b\x89\x18\xf9\xef3\x06\
+\xc4\xefK\xdcRm\xfc\x9a+-\xd2\xfd\xa4\xb3E\xc7\
+\x9d\x04[\xf77\xec\x15\xad\xa0\x9aRm\xef\xda\xeb-\
+4\xab\xf2-m\x84\xd7\xc9^\xe6\xd3J\x80V\xd4\x8c\
+\xdd;\xa5\xc5\xf0\x89\x94Pq\x80\x0fm\x92\xd8\xd0H\
+4\x84\xd86\xb3Y\x94\xbf{\x83E\xed\xa0b\x1f\x83\
+\x0b\x84\xe3X\xb7\xd7\xc4\xc7\xc5\x88\xee\xd4F3N\xeb\
+\xa0\x0b\x92y\xbf\xe1\xd2\xe1\x01\xb94\x95\xdb[\xd2\xeb\
+\xa5\xc0\xb02d\xaeDYf\xe3\x10\xf0\xe5\x00\xd4/\
+\x85D~]\xd4\xb4o\xab3\xb6\x8b:\x0d\xcb\xa5\x84\
+\x11\xb5\x5c\x15\x8a\x81\xbc\x7fF\x09\x0d\x9a\x0e?\x92_\
+9\x07\x0d\xaf\x83\x19\xa5:\x13\xd9\x1f\x0c|\xf05\x85\
+\x1a\x9faV0\x83GB JY\xa8\xba3r\x22\
+\xa4\xbf\xbb\xc2\x22]G^\xbf\x89J\xed\x90\xc4\x07\x01\
+\xa0\x8c\xa9\xb2W\xd5\x92\xf02\xeb\xcfi\x9dq\xc0S\
+\x90\x930Qx\xd9\xf14\xbd\x00\xa3\x17%r\x97f\
+\x1cA4\x19\xe9\xf1>\xef\x0b\xe9~\xf2~\x1e\xb3H\
+\xe2Utx\xf9LG\x8d\x83\x92\xc2\x11\xaa\xe8\xb2\x12\
+\x07\xe3y&a\x1aR\xe17\xe8\x13\xe0\xf2=\xbd\xa8\
+\xd7k\xfdA\x03\xa0\x03\xa2\xee\xd4\xc5U\xe4\xcf\xbaI\
+RG\x1f&\xf2\xc3Yz\xee\x13\x85\x08\x858\x09\x13\
+\xef\x83\xc2\x13\xe0\x80\x02\x90\xce\x01\xeb\x9a\xe7N@K\
+t`x_\x14(\xfc<\xaf\x0b\x7f\xf6\xe1\xba\xe3:\
+\xc0\x94@E\xfdI1D\x98\xe5\xff\x84\xb4YX\xcf\
+\x9c\x03\xd8\xb6\xf1\xfe\x18\x89\x01\x08\xe2\xfeP\x80\xa3\x1e\
+/@\xab{\xd8\xe2\xed\x80*@D\x07\x15\x92\x82P\
+\xda\x08\xdd\x83\xfd\xc8Fh*\xdc\xa7}\x1d\xe0c.\
+=o\x00\x13\x88\xc5\xc1\x88\xe0\xf5\x02T\xaf-\xfbD\
+\xc4%\xffj\x91(\xe2\x00\xafZgQ\xe02\x1a\x01\
+\x801\x18\x81\x8b\xf7\x0f\xc5\x19\xa6\xcf\x0b\xa2\xa63\x92\
+\xd2\x85KA_0\xa1\x0e<\xa3E\x02\xf6\x00|\x00\
+\x04\xe8L1CJ!)\xb1!\xb7/]\xa3\x8e\x9e\
+\x04ev\xa0\xcd\x12\x94y\xd6\x01\xaa\xf6tDx\x9f\
+\xac\x17\xee\x07\x1dC\xe5\x09\x01t\x00\xa8\xc3 \xe0\xfa\
+r\x1dY\xaf<\x1f\xfc^\xce7\xd69\x00\x01\x0cE\
+\x0a~\x12`\x9e\x03f\x9e\x87Z\x08\xecW\x009\x88\
+\xadQ0\xb1\x1e\xe8\xa82\xfa\xc7\xeb\xe3~\xb1^x\
+N\x87#\x0d\xbc^\x9eo\x9e/\xfe\x9d\xd7\xc1z`\
+\x7f@\xdb\x80\x06\xca\x16\x16U\x8d\x9bB\x9b\xbc<\x5c\
+b\xbe\xdd'\x8a\x00\xf2t\xba\x18\xc9\xeb\xce\xb0HT\
+u\x1a\x14P\x849\x0f\xd9\x7f\x00\xf4\x18\x99`D\x04\
+{Bf\xa49\x07~-\xc0\x90\x8e2\xd7{hs\
+\xc9\xba\xe2<\xe6\xeb\x5cHMJ\xa2\xa3\x88J2\x8a\
+c3\xea\xdfM\x14f12c\x04SZJ\xa3{\
+z\xcax\x8cl\xaa\x93\x1fv\xb6\x9c\x9f\x9b\x8f6s\
+\xc0\x8eB+\x03\xb5\xb3\xa4\xfdR\x8d\x8d\xa1\x9dfh\
+\x5c\x1c\xee\x11\xa3\xb4\xe1f%1\xc5\xb8\xbf\x96\x9d\xac\
+\xea\xf9\xedW\x9b\xaf\xaa\xe1\xb1\x933iz\x8d\x8c\x0d\
+{\xcd\x87\xd0\x80R\xa3\xce\x14\xae\x5c\xe3\x8aF\x0f\xfb\
+\xee\x90I\x05\xa3P\xfb\x0b\xb3\xda\xa3?[T\x8d\x81\
+\x98iV~\xd5\xfc\xac\xc4OS\x87V\x80I\xf3\x8c\
+E\xf9\xbcT\x89%\xf5u\x02R\x9a\xdd,\xbc\xb1\xe1\
+3\xf9\xee\xde\xb4G\xd5~\xb1j\xc2\xea\x89\xc8\x07Y\
+\xd7\xe4!b\x9cu\x17Y\x94\xcf_\xb0(\xaf\xfb\x0b\
+%\x0e\xa8\x9d^\x0a\xc4\xc8\xf3\xb5o\xb5\x7f\xb1\xa8\x05\
+:y\x033\xf00\x11h,b\x9b\x1d\xcf\xe1\xe4\x9e\
+\xf2\xed\xab\xfa\x1d\xc9\x9f]\x8d\xcbf\x8aE:\x9fa\
+\xc2\x18\xdcv^\xea\xbc\x02|\xb2~\xb2\x06R\x9b\xf2\
+\x02\xf2\x1a\x18X\xbc\x0e\x5c2l\xa6\xdbF\xb0\x0f(\
+\xf1\xf9d\x1bg\x1a\x0d\xa93\x1f\xf9\x93\xae[\x14\xfe\
+\xc6<}\xa02\xa2\xc9\xaf\x18\xa9\xa6\xd1\xd0\xeegQ\
+\xfe\xfb;-\xaa;N)w]L\xce\x1bv?N\
+\x14{Q\xeb\xfd\xd5\xbf\x91\xc435B<\xfaE?\
+\x12\xdem+5|\x019\xa3'z\x86\x0dnsn\
+\x97wLe\x04\xb7\x7f\xb4\xa8@\x80k,\xbd\xe1b\
+\x91&\x17i\xf5\xdc\xacV\xcf\xf9\xbf\xbf'Q\xf19\
+\x1f\xacZ\xb8\xb3\x02\x02>\x90\xf4\xa0\xc4\xd1\x0fM\xae\
+\x03G\xb6G\xb4G\x88)p\xab\xdf\xe7)\x96\xd7\xc7\
+\xe8)\xf9\x89\xc4\xb6\xa9\x8f\xca_/\x91FE\xd4H\
+bD\xab}\xd5\x22\x15\xe24l\xa9\xc7h\xd8\xdc,\
+\x8d#\xad\x87\xb0_\x95\x0dh4&\xb9\xaf\x1a\x15\x82\
+\xa9\x85\xa6\x06\xaf\x83F\x1a\x0c\x0bF\xbd\x01\x16\xda\xbf\
+Y\x94\xe5\xed\xb3\xef_I\x9dK\x9b\x15\xb0N\xdc\x0c\
+%\x8cb\xb1\x80E-D}\xb6\xe4;\x9a\xb58+\
+!\x1dt:QY%\x81\xbc\xdaI\x84\xfd\x83\xb1b\
+\xa2pq@\x9bt\xcd\x13IdL\x9dH\x17\xef\x9b\
+\xa6R\x80\x9bY-\xca\xdf\xdd\xb5\xc4g\xd3\xec\x09\x94\
+^\xfc\xd1M\xedp\xc1\xd4)\xa3\xd3A\x81\xa3\x19\x0a\
+\x1f%\xd8-\xa9eB\x09\xa6s\x07E\xcc\xd4P\x7f\
+\x91\x0e@|\xea\x99\xb5\x95\x9d\x9a#\xbe\x0b\xd4\xd9\x12\
+f\xcf|\x96\xee|1\x03.\xeb\x0bW?\xc0\xcb\xfb\
+\xb5B\x12\x91?\x12\xa1\xe6\x07%N\xad\x1d\x15\x9f]\
+Z\xbe\x8a\x08\x22\xd6\xd3>U\xe2I\x8d(\xdc\xa1Q\
+\x83+\xd2\xf5\xa5#\x03u\x9b\x83\x0aj\x1c\x07\xbe\x12\
+\xff\xe6 \x8b\xf2\xdf\xd7\xb0(\x0b\xe6+\x16\xe5\xf7\xcf\
+eQ\xf6\xab\xed-\x92\xd8\x10\x05\xbef\xe5#\xf1\xa3\
+S9\xf0\x1b\x7f\x0b@\xf3\xaeTh\xf1!\xe4\xd0\x99\
+\x0b\xd7%\x91Iu\xf8\xc3\xae\x0d\x1b?\x12`:A\
+lp\xf7X\xa4\xdfO\x82O\xe2\x22@\xc0\xaf\xd3g\
+\xd2\xf7!\xbef3\xef\x97\xe9 \xbc!!\x9cV\xf6\
+}(\x15\x06\xd8/\xa9\x00@\xdc&\x0a\x17Q\xc2\xa1\
+\xde#\xc6\x13\x94AQ\x81\xbb?\x0f\xd4]\xd9\xb0m\
+`\xe3\x80:\xb2\x12\x1d&f\x97\x958u\xa7X$\
+J\x1d\xb3\xda\xcc\x8c\xd2A\xe4\x80e\xd6\x1e\x86\x05\xd7\
+\x0f\xea5\x09&\x0c\x0e\xcd\x94\x81\xb4\xc6L\x1a\xcf\x03\
+\xd7g\x01\xd7\x09\xefg\xf1\xeeI##\xccxI\xdd\
+6\xee\x03\xaa\xd8F\x1c\xde41)\x04\xc8\xf9\xdd\xfc\
+`\xfa{\x88\xb6 z\xc5\x07\x88'j\xcf\x880\x92\
+\x88\xe3&\xf1\x1eQU\xd5y\xea~\xd9\x1f\xf8\x91\x18\
+\x91\x882#LaA\xc1B\xe7IL\x97(<m\
+\xe2\xfc\x8b\xa9 \xd0~\xe2\x00\xd9\xca\xa9\x83H\xc2O\
+\xe7\x8b\xce+\xeb\x93\xaf\xd9\xb7H\x04\x86\xea\xee\x14\x14\
+J8\xcc\xb5\xde}\xeb)0(\x08\x11G\x03h\xe1\
+\x00\xd3lv\x142$.\xcc\xea\xf2\xfcr\x9fH\xe0\
+\xe9\xf0\xd3\x89\xe0~PXA\xc5]A\xb6|k\xab\
+\x03\x0b\x05\xbc\xd3>\xc0z\xd4\xf5\xa2\xa3\x18\xcf/\x80\
+\x156\x87\x8c\xa2\xd0A\xe6~\xc9\xdd\xa4\xac\xc9\x1e \
+m$\xa2\xb9\x87\x12\xa9\xfdu\x9d\xd0xP\xe7 4\
+G$\xb2\x16\xfb\x99\xba2!\xd6\x06\xe3\x86\xeb\xc6u\
+\xe1\xfa>\xab\x8e?\xeb\x0f\xea1\xeb\x87\x02\x8e\xfbO\
+\xc2G\x02\x888\xdc\xba\xbaN<\x87$.\xdc_\xdc\
+d$\xf6\x13\xfb\x0d\xeb\x02\x80kn\xdd\x7f\x12I\xd6\
+\xd5k\xfaw\x0a\x81\x7f\x8a\xb1\xc1}\xe5\x9cf\xfd\xd0\
+\xf1\xc7mb5\xad\x13>(\xd4x\xdft\xe8Q?\
+\xe7\xb9\xa1\xb3OG\x9c\xfd\x92Bm\x0e%\xfe\x9au\
+\xe4y\x0d\xc6\x0f\x80\x00\x9dh\x80\x0c\xdd\x87\xf8\xbd\x14\
+\xde\x14\xfe<\xaf\x00Kt\xd2\x19\xb9\xe0\xf5\x02\x90\xb0\
+\x1e\xf9=0\x1a`\x08P\xa8\x92X\x03\xe8\xa0M\xc2\
+\xdf\x19h\x05\x04\x00@\x02\x0f\xf0\x02\x80\xc1\xfd\x1b\x8a\
+\xe3q\xff`\x06\x0d\x01N\x18,s\x84hf\x7f?\
+\x10\xe9\xc3\xbe\x18_\xe9S\xe4\x86\xc0\xeb\xa0\xb0\x00\x98\
+G\xbc\x91\xe7\x8e\x82\x9b\xfda`/\x1a\xb3\xf0\x8c\xde\
+A\xf1\xe69\x19\xaa\x9d\xf3~\x01\x00\x01\xba\x00\x88\x00\
+hX\x7f\xfc]^\x1f>\xe6\x88\x17b\xcf5\xd4x\
+A$\x99\xce\xfd\xa3\x16\xf52\xd31#\x8f,\xd9Y\
+\xef\x0b\xae\x91\x00(\xef\xccN\x87\x98\x1e\xebC\xa3\xa8\
+!\xce\x86\x98`e\x10\xf5\xf7\x97\x84^j\xea!\xfa\
+\xf7#\x8b\x048\x01\xec0z\xa1Q\x00\xb4\x85\xc2\xed\
+\x84\xfd\x15\xa0QLT\x801\x0a]\xe7[|\xd2;\
+\x8d>\x03\x1d\xf7\x85\xf3D\x00C\x88\xc0=bQ\xaf\
+7\xb6qa\xa7&\x8d\x83ff\x0b\x89\x8a\x1d$\xf1\
+\xb5\xf2\xfa\x9a\xc3K\x1c\x91\x80\x01s\xc7Y9\x8d\x0c\
+\xa31\xf0\x9f\xe6\xb5\xe6\xb5T\x98\xcc Ur\xa8\xe7\
+\x8c\x8e-\xac\x86\xc9\x0f\xa5\xfd\xa0F\x18\x8d\x1e\xdc\x03\
+\xba\xcd,\xaa\xe6\xd0\xf8\x5c\x8b\xcaH\x81\x09\xc3\x08,\
+n\x1d\xdd\xd8B\xa3\x88\x8fh\x04 \x8d<\xc6(\xd6\
+\xc0\xb6\x93\x82\x16\xd7#/\xac\xee\xaf\x8cFw\xfd\xd9\
+\xbd\x8a\xa47g\x968\xab\xee\x0f0\x9f\xdb\xa7-\xd2\
+\xa8\x07@=\xf9'\xebL\xf9\x0dL\xe2\xb0\xd9\xd4\xba\
+rf\xb0Q\xf7\xbfkQG+aNE>xv\
+\xef[\x1f\xf9\x1c\xe7\x19\xa2\xaa0Q\x94/\x05#F\
+\x8c\x80\xf6I\x0b\xd5\x19v\xfd\xae\xe9\x9f?\x1f\x01(\
+\xfbI{\x9bE\xaa\x83p\x1bA\xa3\xe0b\x8f\x00\xee\
+]\xbc\xf1\xd6\xba\x1e\xa3\xb1\x0c\x93\x82}\xf4\x89\xde\xad\
+\xab\xe4\x96\xde\xa0\xc5N\xb3}G;M\xfb\x0e\x7f}\
+\x93\xed\xf5\x85\xed4\xee\x0f\xeb\x97|\xccF\xb8\x0fm\
+\xbe\xdc\x1c\xea\xf5\xe3\xb4\xd6\x98\x0c\xdb\xd55GkX\
+}\xd5\x9dP\xd6\xdd\xb7=?\xdf\xdeG6u\xfd\xbb\
+\x0fw\x1f\xe9\xca\xfdj7\x93;\x9a\x01,\x07$\xfb\
+V:\xeck\xc9\x85ML\x98\xf6\x04\x8b*b\x1e\x9f\
+%\xa2\x8d8p\x8c\x1c\xa8a\xdd-jQ\xf3\x05\x1a\
+\x1b!B\xcfH'#\x18h\x04\x88\x89\x19\xdat\x97\
+X\x94\xcf\xff\xb5(\xafg\x06\x8bj\xb7\x1eL\x19\xdd\
+'\x98\xaa0\x82'\xc7\x8c\x82\x15\xd6\xbb\xd6\x99m\x17\
+\xb5\xda^H\xf1\xa2B\x98N*\x9f\x9f,Q\xdeP\
+\xbb\x8d\x85D\xf8\x8eI\xb6(\x88\xf01\x0b#q4\
+\xefxOWg#\x9c\xf2\xb1\xad\x1e\xac\x974\xeb\xb4\
+I\xf5\x93\xf4\x82x\xadj\xdf\xe6\x1d\xc8\x9d4\xabq\
+j\x9a\x89\xa2\x90Q\x82\xcc,OP\x82)\xb8\xee\x9c\
+\xd4\x8bl\x192\xf7p\xa2@\xf3\x80\x98d\xdc\x16\x89\
+\xda\x05\x90\x01\x92\xab\x83!T\xf9\xf1\xdb\xd5L\x90\x11\
+\xb0\xfc\x80\xb2\xce\xc2\xf2RY\xfcBU_\x8d\x04\x06\
+\xe6\x816\x82f\xfb\x12\xdb\xa9\x83\xf4T\x9den\xce\
+\xb2H\x05<\x075v\x1e\xa2\x96\xfa\x01pF\x05\x1c\
+\x1cy\xfdIJDP\x09%1\x82\x92\x8d\xbf6\x05\
+\x92\xf5\xd3~\xdcoL.\xe68\xadE\x12\x9f\xe0A\
+\xb3\x19\xaf\xbb\xf5ss\xa4\xc4nyw\xe4\xae\x1b\x1a\
+\x09\x00}x\xbe&\xe1\xa1\x10\xe2\xfa\xeb\xfb\xdc\xbf\xf3\
+OI\x85\xdf\xde\xc5|B\xb4oK\x09/\x05\xbb\x89\
+\xf6\xad\xaa\x99\xb3\xeb\x12\xe5\x11\x0a?\x89\xa4\xd4\xe6c\
+vt\x03\xef\xe5\xf6\xc8\xfe*5A\xf6\x8e\xc9\xe7\x85\
+\xf0~G?7)Q\xe38\xb0\xe8\x10\x19\xf0\xb4P\
+\xfa=t\xbaI\x18I\xec8\xc8\x11}\x93X\x09\x9d\
+\x8cP\xf1\xe7\x01GT\x0f\xd1D\x12OT\xa0\xb9\xce\
+P \xa1\xfa\x91\xf1\xd0\xd9\x1dRWI\x98H\x1c)\
+\xd09H\xce\xf4\xa8*\xdd\x9a\xc1\x0c\xd1\x1eQ\x9dC\
+]\xf4$\x8b\xca@\x89\xd1\x13\x0a^fn\xe5~\x81\
+\xedK\x14\x18V\xa6>\x98:!$2\xd83\xd2!\
+\x5c\xc7\x8d\x83jA5d\x92\x80\xbc\x93\xe8\xaf\xa2\x91\
+\x11\x12L\x12\xfe\xe7\xd4i\xe1\xf9\xb8M\xf6@t6\
+\xb1E\x03@ \xd1f\xdd\xcd\xa7\x19U!\xb6\x00I\
+\x01pd\x9b\xd2+\x9cZy\xb7\x17\xa8\x88\x8a\xf1w\
+I\x1c\x01\xd2(\xf8\xe9\xcc\x92\x00\xf3~I\xe4\x00\xbe\
+H )\xd4\xf9\xbd\xdco\x18\x0c\xfc\x1e\x12k\xde\x17\
+\x80\x02\x85\x0a\xb3\xd5\xec\xdbP\x9c\xb9\xae\xbc\xfe\x87\x05\
+,P@\xfeY3\xf0\x00\xb10\xa3\x00\xf4\x98q\x05\
+8\xd8\x5c\x00\xc4\x14u\x80\x19\xe5X]\xcf\x0b\x05\xa1\
+\x80\x04\x9fM_#\x15\x98\xa8\xf1\x22\xaa\x89\xe8\x1c\xeb\
+\x9e\xeb\xc8\xfb\xe7z\xd1\xb1d\x16z\x07\x0b\xdfG\xfa\
+\xfd\xf5\x15]w\x804\x0a\xf8eU\xd0/\xae\xaf)\
+\xf4\xb8\x1f\xf3\xab\xe0\x05H\xe1\xba\xf2}\x03\x0ar\xdc\
+w\x9e_\xad\xa7(\xa0T\xa0\xc5>\x05\xa0\xb7\x9dF\
+\xcf\xee\x90\xa6\x8d\xf6\xcd\x0ej \xe7\x0b\x05+\x85=\
+\x94_\x00\x80\x09\xbd\x1e\x0a\x16\xd67\xeb\x87\xf7\xaf\xd1\
+\x9a\xb0[CD\x11F\x1c3\xff\x00At\xc8)\xc0\
+\x00 \x87\x858\x7fo\xa0u0\x9c\x01\x8f\xf3\x92\xeb\
+\x08\x00\x8a8\x1e@\x16\xf7\x89\xfd\x80s\x8eQ\x00:\
+\xf8\x14\xf44\x1e\xb8N\x83\xc25D1y\xbd\x00\x10\
+h \x00\xfc!\xf68\xb0\x19\x0c\x80g\xe8\xde@\x01\
+,\x11\xde\xb0\xbb\xd3\x8c\xec\xdb\xd6/#%\x9c\xff\x1a\
+a\x09\xcd\x09\xde/\x05'\xbf\x97N!\xe7\x22\x80\x89\
+F\xe6\xba\xaf[$\x1bP\x9d\x97\xb8\xact\xcfY\xa4\
+\xc2\x9f<K\x1d\xfd(\xe4\xd4\x89\x8b\xc2J\x85\x83\xdb\
+\xeb\x1e\xf5\x7f\x10\xfd\xe5>1\x1a@A\xc2\xa8\x07\x00\
+.\xe7\x85\xce\xcf\xe8\xcc\x8a\x82\x1c6\x89\xd8\xa4\xe2\xea\
+\xa0\xf7\x1f#\x97\x1a\x19\xe4<rW\xa6\x7f'\xe0\x81\
+YiD\xf2\xa6\xb2H\xb3\xff\xfb\x8d\xf65-\xa9\xf8\
+y\x89\xa8\xc5\xfd\x87\x99\xc2}\xe19c\x9fb\xa4L\
+\xfb^\xcc\xb23\xaa \x8d\x83\x18\x01\xe4y\x84\x11\xc7\
+s\x05\xe0\xc7\xfaD\xab\x00*\xb0\x80\xf3\x92}^\xeb\
+#\x00\x14\x987\xe9|e_\x22_\x12\xc5\xbe;\xd6\
+\xa2lOKZ\xa4\x0e&\xeb\xde\xfa\x8c\xbf\xaab\x9d\
+\xcdM\x16e\xfb\xf8\x80E\xea\xf4\x9f[\xc2\x0a\xfe\xa9\
+J\x94\xf5\xdc\xbc\xd1\xfc\xb7\xf9\xafkR\xb8\xe6\x95\xdb\
+\x8b\xbf\xafjP9%\xdf\xea\x8a\xeb-\xaa\x96D\xbc\
+\xdf\xe9\xb4\x1f\xa0-tt?r\xe6L\xd7\xdf';\
+\x5c;\xb5oMZ\x01\xe4!\xd2\xa4pw\x9e\x8b+\
+\x83\x18\xdfyo'\x1e\x99\x00M\xee\x9b\xed\xe6\xaf%\
+{\xe3Q\xf8\x1d\xbdu\xc4\xca\xb2\x87\x7f\xa8!uE\
+\xd5Lp~\xc6>\xe5\xef~\xbd\xc4\xd7\x92f\x9a\xb5\
+\x0d\x1e\xab#\xd3\x8c\x08z{\xf1\xb3\xe9\xf9\xb6\xacc\
+\xf3*b\x1b\xccek\x1b\xed]5\xcb\xba\xed-\xf4\
+\xfc\x8dTP.\x93f\xf4W\xb0H\x05\xe7\xab\xbd\xbd\
+bw\xa6Ey}7Z\x94\xcf\x1f\xb0\xa8\xf7\xa1\xdd\
+\xcb\xa2\x8a/G\xa7]\xc0\x1a\x8c\x0c\x0a\xcb(\xc0\xc5\
+\xd4m_\xb6H6v\xaa\x93\x10}\xf4N\xf9lU\
+C\x00& 3\xf1\xa5\xfcu\x86^\xf71\x8d\x16\xe8\
+\xba\x94*\xf3\x13\xad\xd5=7I\x5cz\xe1~\x7f\xef\
+\xbe\xdd\x8bB\x86M\xfa\x9a=sm\xe2+\x13_\x9d\
+\xf8J\xb5\xa7\x87\xea\xce\x08n\x8c(\xdcY\x9e\xaa;\
+S\xbe\x84\xb6\xc9\xcf\xba\x9fv?\xf5\xc2\xf9C\xed\x87\
+\x1cp\xeb5\xe7h \x03x\x00\xd0\x8b)E\x03\x95\
+Q\x01\xf2\xc0\xe8\xecK|4\xdc\x9d\x10sE\xac\x0f\
+\xcd\x0c\x80!\x98/0\x0c\xc4\xa8\xc7.>\xbe\x9f\xba\
+E\xf6\xed\xe1n# \x17\xbb?\xb7\xab\xb4\x11\x87\xd5\
+-R_\xd6\xffO\x97\x90/\x12a+\x03\xce\xd2\xc6\
+h\x1d\xb3\xc5K\x94\xc4\xba\xfd\xb1EB(\xb0\xe1\xb0\
+\x99\xa0K\xca\x1f<\xdb\xa2\x22j\xdd\x1f,*\xb5\xd7\
+\x91'C\x1cO)aj\xc8\xffc\xa1\x855OE\
+\x10\xf1\x97uQ\x89i\x12U\xde:\x22\xdb\x09A<\
+1m\x5c\xa8\xc0\xda\x03\x96\xd4\xb8\xd9\xf0\x1d\x07\xb7\x0d\
+i\xb1\x12\xbb\xcb\xf7s\x96J\xe9\xf7\xf4cN\x15B\
+\x0f'M\x80\xeb{[\x16\xc3\x87\xdc6L\x09\x1a3\
+G1\xabt\x97\xa7\xfa\xf1\x80\xfa,\xd0\x91*\x9c?\
+\x946^Q\x88\x02i5U\xcbV\xa3\x02'\xd6\xce\
+T\xfb1\x8bJ\x85\xe4\xdf\xe3\xe0\x87R&?\xfb\xb0\
+\xf1\x91\x1ag \xedtd\x86\x859\x1d):`\xf6\
+_\xff\xd5'\xa8\xdd\xc6o9X|\xb6\xac\x9b\xce\xa2\
+n\x00>cx{Jx-m\x5c)\xf9\xc4\xbe\xe1\
+\xe4\xdb\xa0N\xc5\x8c\x9cm\xb4o\xa4\x84\x14\x8a\xbb\xa5\
+\xfb\xcbW\x15\xd9\xb7\x89\xa1A\x99\x11\xe5:\xec\xb98\
+\x00\x0cQ\xb3\x91\x91\xa9,\x12\x83\xc3\x80\x8c\xe9\xaa\xdf\
+.\xf79f\xf5x`\x1a\xef!V\xca\xab!\xf1\x1f\
+J\xcf\x85\x1d8\xb7kf|\xef\xd4\xa9\xc3\xff\x95\x8e\
+\x18\xa2B\xa2\xd6\xb3\xd1a\xc3\x18\x1f\xd2j`\x1dA\
+\xe5\x8b\x99\x1f:\xdf\x14\x000;\xbe\xe1Q)\xb4\xa2\
+6r\x9f\x82\x89\xc0\xfd%\xb1'\xd1%A\xe7\xf9\xbc\
+I\x22uP\xb3\xa18C\xa5D\xb4L\xae\x0a!\x0e\
+\xba}\x8f\xa0\xba\x1d\xe6\x95\x02\x12\xee\xac\xeb:f\xa5\
+\xe5\xc7M\xe7\x86\x023\xec\x1feG\xe2\x89\xe9\xd7\xaa\
+Ha\x88\xd8\x00l \x0ei\x14\xf6\xa5\x05\xc4\x1c\x9f\
+(\x97$>\x03\x95\xfb(T(,\xeeT\x82\xc7l\
+\x96\xb9h\xfc\xc8;\x05O\xdaL\xa0=\xb5\xde\xc1\x87\
+*\xac\x84\xc2\x81\xcfL}~D\x89\xa8\xdc\x1cB\x04\
+U\xc8\x7f)\x7f\x16t\x9b\xa5\xdf\x8cn\x1c\xdd\x98\xdc\
+\x1c(\x1c\x99\xad\xa5\xa0\x1a\x8e\xca\x00\x1c\xf1\x99\xe7\x81\
+\x7f\xa7\xb0\x00H\xe33\x05\x13\xc0\x07\xeb\x88\x82\x88\x19\
+t\x0a.:\x9e\x00)\x9a\x15\x8eB\x10\x00\x82\xc2\x04\
+1Q\xc4\xc8~\xddS\x07G\xa7\x8dN\x1d\x9d\xea\x85\
+n\xff\x5c\xc3\x08\xe2\xefT\xaau\xaf\xe6\xcf\x8c6\x05\
+\x22L\x00\xbe\x0f1\xc8y\xd5\x99\xd4\xcc^h\x8a\xe8\
+9\x08\xdb9:\xa7\x00(\xac{\x127\xdd\x1f(\x8f\
+Q\xb8q}\xfe3\xe8\x94\xf3|/\xa5u\xc4s\x88\
+\xe8\x99\xee\x07\x9d\xc9\x00r(\xf0)\xbc\xb0\x05d\x96\
+\x16\x8d\x04\xc4\xe1\x00<T0\x86h##*\xec\xdf\
+\xbc\x9e\xa9\xb5\x1e\xf0\x11\xdfD\xf7g\x0e\x15\x8c\x14\xb6\
+\x88\xdf\xf2\xfe\x07\xfe\xd7\xd1\xf1F\xec\x91\xc2\x17\xa0q\
+\x0b\xad\x13\x15Z!\xfe\xa7\xd7\x1b\xfb\x05\x22\x9d\x12\x9f\
+\x8bu\x03@\xce\xeb\xa7\x00\x07P\xe2y\x84\x09\xc4\xfa\
+\xe5\x83\x0e8\x8c\x04\xde?Ti\xbe\x9f\xe7\x9c\x02\x9d\
+\x11\x0c\x80\x00\xae#\x85%\xaf\x03\xc6\x09\xae\x16\x88S\
+\xc1da\xbfd\xdf\x01\xd0`\x1fD\x8b\x84u\xcc\xfa\
+\xe1|\xe5\xf5\xd2y\x87A\x02\xd3\x03;b\x0aJ\xde\
+'\xcf\x0b\xfb\x04\xda#\xac_l\xf8pg\x18\xba\xa1\
+(1\x8c\x91\x00\xf6\x0d\xd6\xb5\x0a\xdf\xf6\x97\x16I\xe3\
+\xe8\xe3\x16\xe5\xeb\xe7-\x92\xcd1\x9f\xf5\x9c5\x1f\xb1\
+(?\xff\x13\x8bdK\xab}\x1ef\x98\xf5\x89\xcd\xa6\
+\x0b\xc3+\x8bu\x00\x00 \x00IDAT !D\
+!\x07#+\x01\x9cp\x7f\x10k\x06\x18\xd0yA\x03\
+)\x0a\x12\x15.\xbc\xbe`@\x90\xcf\xb1?\xb2\xde\xea\
+z\xe9\x19\xab\x17Z\xa4u\xb6\xfd\xa4\xed&m\xe7@\
+t\x0fx\xe3f#f\x5c0S\xb8\x7f\x88\x17\xa2\x85\
+\x02\xe0\x0f\xb3\x89\xc2\x1b\x8d\x035\xa4\xb0\xefm/\xb4\
+(\xd7in\x8bJ\xc1\xf6\x91\x81\xe3\x95\xf7N\xad\xeb\
+\xb1ou\x9b\xa11\x83\x06I\xe4}\xea\x1c\x97w\xef\
+\xee\x0d\xe1\x92\xa5\xef\x0b\x80_yc\xa8\xb9\xcb\xa7\xbd\
+y\xafErO\x12c\x22\xec\x13\xb5_5\xff\xb4\xa8\
+6p\x88\xb35\xd7Z\x94\xcf\xbfl>\xdd\x94<\xa5\
+Y\xdc\xa2|^\xbe\x07\x00|\xd6\xfb\xcd\xdaHh\xff\
+k\x91\xd4\xd6Ea\x86I\x5c\xeeN\xaf\xb6/\xfbG\
+\x1f5\xdc\xdb;\xf0\x9e\x1f7\xf7\xda\xf0q\xf9=\xe7\
+\x978/\x89\x8ek4\xcc\x1b\x0dfG\xbc^\x89)\
+\xda\x17\x96H\x9dT\xdb-\x9f\xae\xcc\xc5\xc8O9\x87\
+i\x5c\xf1\xfc\xd09\xb7\x11\xa9\xd5\x93M\xb2\xc1;7\
+\xab\xe3~\x8e\xdc\x7f\x8c\xe2\xfe\x19\x0b\x01 \xef\x17\x80\
+z\xbe\x00\x93s\xb5o-Q\x1b\xae<_\xa3\xfb,\
+\xca\xcf=aQ\xeb\x87\xf1\xcb\x16U\xfc\x131[g\
+>|0\x01s\xdco\xb9xt\xb3[H\xab\xad\xdc\
+\xcfv\x07\x8b\xf2y\xa9v\xe9\xd6D\xe96\xb4\xa8\xda\
+\x02\xcd5\x16\xb5nb$\x97\xe7\x1ej:\x05\xfe\xf8\
+=\x16I\xf4[#\x1a\x00\x101j\xc1\xa8\xcdi\xce\
+\xf1\xa8\x0d.\xf2b\x8d\xeb\xa2\x92\x8f\xe8(*\xff\x14\
+\xc41\xb2\xb6\xbe\xf2G\xe5\xfb\x00u\xe5\xbb\x1d\xc8\x88\
+\x86\xed\xda\xfd>\xd8]h\x914V.\x96\xe6\x09\xf5\
+\xcf\xfd}}\x81\xcb\x85\x99\x09\x9b\x06\x07#\x10\xdd\x97\
+,R\xbeB^\x84\xb6\x09\x1ah\xecg\xd4\x036j\
+\xfc\xfb\xb4~`\xbeq\x1e\xb0\xdf\x03\x00\xa2\x91DC\
+\xfb4\x8b4\x82\x07\x83\x8b\xbfO^)\x9bRFs\
+\xd8\x97\xf8\xf9\xee \x8b\xaa\x01\x03Cf\xf2x\x9b\x12\
+\x9f(\xf5\xc2\xea%VS\xe1g\xc8\xe0\xde\x16\x15\xe1\
+\x852\x83\xfd\x80\x1f\x1c\xfb$\x7f{u\xbc\x9a],\
+d\x0f\xb6\xa7\xec\xe9\xfe,d\xf9\xef\xa2\xa0_Q\x1f\
+Hf\xdf\xbds?S\xedl7G\xf5\x08\x18\x85\x0f\
+j\x9ba\xf7!\x1b\x83\xf6g\x16z\xc3\xbf\x16\x95e\
+\xbaJ\x19g\xe3\xa3\xb0v\xc6\xc2\xb1\x95b\xed\x05\xc4\
+j\xa9\xf01\xdb\xb8\xc7\x85\xb8l\x9d\x80\x00l$@\
+\xc6\xd9\xd8Uha\xff\x11\x9dR:nt\x0aP)\
+\x17%\x16[\x13/\x5c\xdf+\xea\xe9|\xc9\xf7\xdcf\
+\x0b\x17\x97\xd6\xc1W\xa5b\xfdhb(\x90P\xda\x04\
+\xc8\x01Iu\x9e\x0e\x01\x08;j\xbeP\xecH,\x98\
+\x85\xb1\x89\xb0\xab\xd2lX\x9e\x95_\xbdj)8p\
+\xf3\xc14\xc3B\xc2b<\x89\xf3\x92\x8d\x0f\xef\x1f*\
+,\x9d!:\x8d\xcc\xd4S\xa0R\xb0I\x84\xcfg\x7f\
+\xd6\xab\x00Bw\xabE*\x5cE\xbd\xa3@ea\x87\
+\x88\x91\x1e$\xc4K\x1c1[@\x09\xea\xb6\xe9\xfdQ\
+\x18J\xf3\x80\x8d\x1eQ\x0eG6\x0f\xd3A\x7f}\xa2\
+\x06\x22:g\xe9\xd4\x7f\x12\x83\xc2\xc4\x816P\xa7\xf1\
+\xb6\x94\xb8\x91\xe82\x0b\x86\xdd\x0f\x0c\x00\x0a\x00f\x0c\
+\xf5}\x1c\xc0A\xbd\x16\xb0\x83\xcaitBPy\x15\
+\x85\xd1\xf0KC0\x03I\xa4\x93F\x01C\xa2O\xa7\
+\x11Ua|\x9b)\x0c\x04$\x18\x0fg\xb4VJ4\
+\x95\xb8\x19L\xe6@\x99\x8d\xc8\xfc2!\xbc\x1ch\x02\
+\xfaB\x95\x9d\x11#\x00\x01\x18(P\xed\x04\xa0\x05#\
+\x04;R:~\x14\x166\x81uDb\xf6\xd0\xd9\xc5\
+v\x8cDs\x17=w$\xea\x02\xc4\x98\xd5\x0eU\x7f\
+\xee\x0f\x85\x05\x88<\x9dc\xa8\xfd\xec\x03\xdc\xc7m\xfb\
+\x19\xf7\x10!E|\x14\xfb%K\xccfq\xaa\xa0\x1f\
+8n{\xf3dE\xf8\x83\x02I\xe2N!\xcasA\
+\xa1F!\xcdg\xd6\x1b\x94E\x0a\xac\xe1h\xc5PD\
+\x8c\x7f\x87\x09\xa1D;\x00\x14\x0a\x18\x12bF\x08H\
+\xa0\xb9>0K\xa6\x8f\xc2\xad\x7f\xbd/\xe8\xe7\xe8\x5c\
+\xd2\xf1\xe6yc=\xc2\x80Q\x87!\xd6\x1f\x89'\xd4\
+D\x183\xd8\xc4m\xac\x83\x0f\xe0\x84\xebC\xc1Ea\
+\x01\xb3e\xea\x81H\x1e\x0c\x05u\x06\xa1\x86\xc6\xeb\xe2\
+~C\xed\x9f\xa4\xc2\x19U\xf2\xa1\x8f;\x1f\x14z\x14\
+\x96c1\x90\xea\xec}\x0fD\x00\xb0P\xa0\x03x0\
+\xd2\xc2u\xe6\xf5\xb3/\xd2\xb1$Q\xe0\xf9d\xdd\x00\
+P\xb2\x1fl\xa1\x02\x15\xea>\x80\xc8\x90\xa1\x80\x9d+\
+\xa3\x0bb\x98E\x82\xf1\x90\x18\x04\x14\xd2\xec\xdf\xdc\x7f\
+\xc4\xcd\x10[\xc3F\x8a\x8e\xda\xb0\xb3\x0f3G\xf6\xa2\
+Q0\xb1\xaeY\xa7\x00\x16\xec7\xbc/\x0a<\x15\x0c\
+A\x85G\xeb\x82\xc4\x8c\xeb\xc8\xf5f\x1d\xf1\xdfu.\
+\x85\xeb\x0c\xfb\x08\xe2\xa7\xac?\xee'\xaf\x1f&\x19\x00\
+<@\x1c\x8c/\x0aX\x18h\xc3\xf5H\xa7\x89\xdf\x87\
+x&\xef\x0f&\x12\xf7\x8b\x9f\x1b\x00X\x01\x88\xd3\x19\
+Vg=\x12j\xce_\x00*\xa8\x9f\x14\xe8<\xc70\
+\xfbD\xd9\x85J\xca\x08]4`\xf0\x9f\xb6\xf3m\xc3\
+*\x1a\x08\xb3\x87\x04\xbd9\xc7\xa2v\xbe\xe8\xc8N\xac\
+oQ\xf3\x9e\x00\x92\xd8\xb7Y\x8f\xacOFJO\xed\
+\x01E\xd7\x18\x9a&\xd9\x98\x0d\x00\x8f\xe8\xec\xb3\xaf\x91\
+\xf7\x00\xf0\xc1x\xe2\xbe\xf0\xf9x1\xf9`6\xa1\xb9\
+\xc1\xe8\x96\x18k\xa3\xbf[${Q\xdcD\x18\xa1\xe4\
+\xbc\x16\xd3\x13m\x89\xb0I\xc65\x05W\x03\xb4-\x00\
+\xb6y\xfe)\xa0\xe8\x08\xb2.3\x83p\x89\xb4n\xd0\
+\x0eR\xc7\x17_ql\x11\xbb%,j\xa1\x1a\x22\xcb\
+\xda\x7f\x9a\x93-R\x1e\xa4\xbf\x07\xf0\x1e\x8c>\xe5\xc3\
+\x91\xafK#\xa4y\xc4\xa2\xdc\xdf='\xf6\x9a\xd8\xab\
+\x8e\x0a\xd08jn\xb7(\xff\xfe\xa3\x89\xd3'N\xaf\
+\xc0\xb3\x8b\x05\x96\xeb<^\xc7\xa2\xbc\xaew[xA\
+\xdc\xef\x0f\xd3\xf6@\x0f3\xe4\x88\xa5\x8d\xcf\xb1H\x22\
+\xc2bl1#\xdd\xech\x91\xf6\xe3u}\x88\xac\x07\
+\xca>\xaa\xce\xeb\x99\xa9\xb1e\xf7\xcf\x98\x8eg\x958\
+3\xe5\x81\x5co>\xa6sNB\xbf\xef\xcf^\x0bw\
+\xbf\xdf\x1fO\xe2\xd9j$x\x03\xe0\xc3\x95a\x81\xcf\
+;\xeb\xc2G\x04\xce\xac\x85`s\x80E\x15\xc3\x0d\xdb\
+`ij\xb4\xef\xb7H#\x9f\xba\xdf\xce\x88\xbd#\x89\
+@\xba\xadW\xf9\xfc7\x8b\xf2s\xd3Z$\x9fy\xec\
+\xe7\xee\xb7\xa8\x0c\x00\xf6\xeb\xe6\x8e\x12w&@S\x7f\
+\xbf\xf9\x90\x85\xae\xfb\xd4\x15\xa8iglgjg\x12\
+ \xb7\xa3D\xf4\xac\x00?\xae\xc4\xf1\xa2\xfe\x7f\xb9\x8a\
+uv\x9bu\x9b\xdb\xe8\x06\xf5K\xe4C\xe4;\x02\xfc\
+b\xd4[\xb6\xc8\xe3\xc5-\xaa\xabI\xb7\x98l2a\
+\x840\x1a'F\xe9\xf8!\x8b\x04\x0c2Z\x8b\xb6\xc7\
+\xbd}\xa1o\x92\xe1\x0e\xa0*\xcf\xa1P\x0e;p\xec\
+$a\xe8\xa2\xb5\xa2\xd1\x8b`\x0a!\xee\xc9\xc8\x0e\xe7\
+\x0e\xf9*\x0d\x16\x18\x93\xb2\xad\x8cs\x89\xbc\x0c;W\
+\x80\x001\x0eB\xa3\xe5\x8b\x16u\x7f\x03\x10k\xb7\xb6\
+H\xdaS\x9f\xb1\xa83\xfe\xd1\xa0`\x1f\x92\xe8:y\
+\xd7\xe4v\x8b\x12[\xea\x85\x95\x02p\xf2\xcfK\x5cY\
+\x0b\x82\x98a`\xb6\x1e\xb1%\xcd\x9895\x7f\xc7d\
+\xdbe\xe9\xc9{\x92\x18\x8cu^\xffRg\xa0\xb4N\
+\xfbY\xd9\xa3\x12\xa2Mag3Y7:\x05\xe6\xa8\
+\xe6(?h|\xf63\x0e2!9\xd8\x01\x06EK\
+b+\xcc@\xb4/XT\xe4+f\xb2\xb4a`\xff\
+\x85\x9d\x9fi9\x9a\x9a\xa3#p\xf7W&\x82\xa7\x0b\
+\xefK\x89\x90\x11\xbb\x8eI\xb6\x12\xd6\xd1_\xa7\xfe\x9e\
+\xe8\xd0\xa2\xae\x0a\x22,\xdf\xf48\xf0\x00\x06\xec\x989\
+\xbd\xce\xc6\xd3\x11\xe0\x80\xc1..\xa8\xd7F\xf5\xd99\
+\x8d\x0eha\x07\xf5G\xa2 \xe1_k\x85\xf2IJ\
+D\xe7\xa9\xe20\xe1\xab\xca\x8c\x8b(\x83\xed\xa1\x16\xd5\
+\xc7\xbd\xf9\xb2E\xf9=\xafY$f\x85:\x8d\xdd\xb5\
+\xa2\x9eq\xb0\x82\xa4\x028(\xf1\x09\x11,\x0ed;\
+\xae7\xd3&\xbbdJ\x1c)\x5c\xec\xa7\x16\x162\xba\
+\xb5f\x95\x0eVG\xe0}I\x95<\xdb\xfa|6\xd9\
+\xfd\xecg$\xbeDA\xda\xa5\xc4\xa7\xab\xcd\xcf\xe8\x8c\
+\x12g\xa6N\x0f\x0f\xa2fcB<\xe9\xc3%6\xd2\
+\xfb\x9d'%`\xa8\x9eZZ\xf6p-\xbc\x11\xc9\x0c\
+\x84O\xa3$n'\xf3\xc9\x94\xf83sO\xa1\x85\x8d\
+\x8b\xf1o\x9eJ\x22}/YT\x84/:;tx\
+)(\xb6\x91\xe8\x1a\x1de\xee\x07\x1f\x1cll0$\
+\xce\x5co\x80\x22\x00\x85%%\x16G\x225P\x8d/\
+\xab\xab/\x88\xd6\xd1\xfd|\x5c\x14CD\x01I\xf0\xe9\
+\xac\x81\x80\xaa\xc3\x14\x05\xb4\x12\x97\x10\x93a\x04\x81N\
+\x1b\xeb\x02qCQ\xf4\xa3\x00\x80\xe9\xb1\xb5\xd4\xe4\xf7\
+\x90\x8a\xf8v=\xc55:\x95\x14\x98\x0090J\x8e\
+\xeb\x81\xbd\xb2\xfd\x9fj\xb6\x88q q\xfdH(\x94\
+(\xb1q2\xb2\xe0\xa3K\x9bV\xca\x19\xeb\xda\x13\xa7\
+\xc7\xaaHX\x14\x9e\xa2\xeaE!\x07\xe0@\x87\x0a\x04\
+\x99B\x81B\x12\x8a>\xb3\xcf\xac/\xae\x0f\x85)\xaf\
+\x1f@\x81Q\x15Q]\x83B\x8f\xfb\x81\x9e\xf3\xe8\xa0\
+\x22j\xc6\xf3\x0b\xd5\x16Q&\x00\x1b(\xd9s\x89\x01\
+\x85\xc8\x11\x85\x0b=\x14\x80Bl.\x01xx\x9d0\
+'(\xb0)\xa4x?\x14\x8et\xba6U\xa2\x7f\xad\
+\xc4pl4\xed\xe4\xf4}\xac\x0b\x0a\xa9\xa1\xa6\x02\xf6\
+z\xcb\x88\x1a\xde\x85B\xf3[_/?\xc7\xfb\xa1@\
+\xe1\x83\x02D\x1d~\x12\xafX7R\xeb\x8e\x82\x11\xc6\
+\x0e\x0c\x86\xaf\xf7@\xdeh/\xf9\x94S \xf2\xfe9\
+o\xb8\xef\x14\xeaC\xf18\xbef\xdd0\x12\x04\x00\x09\
+ \x03PB\x82BG\x18\xe6\x02\xea\xff\x14\xee\xbc\x0f\
+\xbe\x8f\xc2\x0b\x15j~/\x1d\xf8\xe1>Aa\xcf\x8c\
+-b\xa3C\x8d\x8da\xa7\x9c\xfbDg\x06`\x8aB\
+M\xcf\x83\xdb\x90>\x92D\xd6x\x9d\xec\xcf\xbcO\xf6\
+7\x00d\x0a|\xa8\xfdP\x8d\xb1\xf1\x04p\xe2u\x0e\
+\x199\xec\x9f\x5co\x00\x1e\xedC\xf1>\xb8\xae\xec{\
+\xaco\xde\xb7^o\xa8\xf0s\xfe\xd0`\x98g \xda\
+\xc8u\xd1u\x88\x8e1\xebI\xf77(\xfe<?\xd8\
+:#\xd6\xc7\xeb\x22\x01\xe5\xfem\xd7w\xc0\xe3|a\
+\xc4\x84\xbf#\xfb-\x12\xe1`&j?\x02\x80\x08\xd5\
+oT\xbd\xa5)\xd4\x9ck\xe1\xa3t\xbd\x0f\xfd\x8f\x9b\
+3\x1a\xcbon\xb5\xa8\x0d\x13\x0agf\xa0\x83\x81&\
+q\xb7p\x9f\xd1y\x106X\xdc\x87\xb3\xd5i\xdc[\
+\x9a;C\xdbSfno\xe9\xdd\xaa\x82\x92\xcd\xf5\x15\
+\xb3,\x5c\x81`\x22P\xc8hV7\x1a1\xec\xe3\x8c\
+\x8eq\xbe\x03p\x90\xf8\xd3\xd9c\xe6\x1f\x9fs\x89\x1c\
+G\x87\x0f\x8d#D\x8diL\x180\xf3\xc7\xca$h\
+\x16\xb1Hy\xb3\xd9m\x9f\xe4@x\x7fn\xee\xd9k\
+_\xc1\xf4h\xb6\xb3H\x1dH\xe5O>\xd3_\xf6\xa5\
+fc\x8b\xf2\xf9N\x8b\xaa\xb92\xfak\x89\xa7\xa4\x11\
+1w\xb2\xe5\x86\x19\xb0W\xaf\xa5\xd0\xfc\xd4\xa2\xdeg\
+\x0aG\x80\x82r\xea\xbf`\xe7~{\x88E-\xd8\xc3\
+\x96\x12\x00\x82\x0e\xb9\x80W\xf2\xf9\x18\x11\xa1\x01\xb2\xbc\
+\xc4\x96\xadM\xf0\xa5\x9a\xdf\xb3\x8dG\x1eM\x07\x15f\
+\x00n]h~Y\x03\xe9Ki\x9f\xef\x5c\xad&\x18\
+\xa1\xb1\x9f\xb1OM\xef\xd0w\xed\xf0j4\x94\xdf\xeb\
+\xa3\x1e\xdf\xac\xd7\xcf\x1b\x83\xb7W\xc0\xb4\xdd\xcc\xa2\xfc\
+\xfaO\xf7L\x09\x18\xc4\x9c[\xcd\x84\x85^\xcfLj\
+\xb8\x95\xef\x1f?h\x91\x80m\xfd{h\xe1\xcc\xe8~\
+\x11}\x01\xb8ke\xb2\x063\x80\xce\xaf\x18\x0e\xcdI\
+\x02\x80\xd8\x17h\x10\xfdat\x97\xe55\xe47\xa1\xf9\
+A}5_\x89y\xab\x9a?\xeel\xcdi\x16\x12?\
+?7\x01\x0f\xd3X\xd4<v4\x9b\x98\xa7*\xf0a\
+\xc4D\xe7]\x9a\x00\x00\x1a1\xa2\xfe\x98:\xf2\xd7Y\
+\xc5Q~\xffU\x16\xe5\xf3\xe5\x16\x89)\xa2Q\xda\xf6\
+u\x0b\xd5\xad\x0b\xa5\xfc\x96\x8e9u\x08\x00+\x85>\
+\x8d\x01\x1a5r\xe5\xe2\x1c\xb76\x975\xba\x10\xcbD\
+\xeb \xb4e\x10\xdf\xe4\xfc!\xcfdT\x91sGy\
+W\xf7O\x8b\xf2yz\x8b\xe4\x22%\x11\xc1\x00n\x96\
+\xb1\xa8\xee\x0e\xe6E\xe0n\x04\x87K\x5cS\xef3D\
+6\x05(\xc3\x1c\x1f=eQ\x81N\xf6\xf1\xc9\xf8\xbf\
+\xfb\xcc\xc9QB\xc4\xceR\xe7\xb5\xfc\x82\xf6\x7f,t\
+\x81\xca\x06\xd8<T\xe2\xc1:\xeb\x143\x0d'\x94\xf8\
+N-\x88\x021\xb7\xcb\xbcv\x9aQ\xb0\x0d\xfb\xcdd\
+\x8b\xa4\xff\x0e\xa5\xbbY\xdb\xc2g\x8a\xa6\xb6\x99\xa2I\
+\x8b\xca\xb6\xe35\x89\xf3\xe9@s\xea\xfc\xd8\xc5%\xdc\
+6\x10f\x00\x89Q\xfbs\x0b!\xb6\x8f\xa4\x1b.\x0a\
+T\xb3\xa7E\xa2\x94hF\xc6}-\xaf\xa93<\xdd\
+\xd6\x16\xe9FZ:\xfc\xd3\x84\xa8\xebzEg\x90N\
+\x03\x1b\x09\xb3Mt8\xf1i%\xf1\xb7\xe3\xfc\xef\xe9\
+\xa0\xb2\xf4\xfc\xa0$\xf6\x06\xb5\xe8\xf9\x12\xffH\x07\x88\
+?!i\xe6\x9a\x85\x0c\xa2KAH\xc2MB\xc0\xdf\
+5\x9c\xf8f\xa9\x95\x97\xc4\xb2\x9d\xbb\xc4<5\xb1k\
+\xee\xb3H\xd4\x16\x0e\xdc7,*\xf0\xe3\xfd\xf0\xcf\xa9\
+\x03<K\xd5R\xf0\xce\xc1\xcdU#\xc2\xef\xca\xac)\
+\xc16\xf3\xab\x13\x12\x02\xfe\x82\xeb\x5c\xd7\xf5\x03\x15p\
+\xe87\x0dE\x99\xdf7\xb0ab#\x84\x0aI\xa2\x12\
+\xa2\x1b$\xb6\xcc\xf0\x91\xd8\x81\xac\xf3\xf5@\x8d\xfc-\
+bF\xd3+\xb1{A\xf7\xef\xf9T0X\xfa}c\
+*\xd0\x999\x92\x88M$\xd8\xd8\xb5\xc0p\xa0\x03\x01\
+\x85\x1f\xaa\x9e]\x9d\x0d\xd3\x0c!\x09)\x850\x14V\
+\x0a\xc5\x8c\x5cO\x97\xde/\x05\x03b\x90CQ2f\
+\x0c\xf1\x1d'1\x1c\x8a:2r\x01p\xf1\x0d=W\
+_\xd7\xfa`T\x81\xe7\x0d\xed\x0a\x0a3\x18\x14K\xa9\
+\xc3F\xa1\xaf\x99\xe5nu\x8b\xb4nI\xfc\xb1;\x84\
+\xe2\xcb\xcf\xcd\xa1B\x83\x91\x90Oj_A=\x9e\xce\
+\x0d\xb6\x7ft\xbc\x87\xd4z\x12\xb7O\xf5\x14\xcf\x98\xc1\
+\x86\xa1A\xa7\x95\xf5\xf0\x8c\xc4\xa9p\x15\x01\x00\xb0\xbb\
+\xb0PJ\xf8~\xde\x03\xab\xae\xa9\xb2C:8\xf8}\
+\xac\x07\xee\x03\x00!\x09-bj&:\xb4h*\x10\
+\x87\x85?\xeb\xf3\x7f\xb3\x19\x1b\x02q\xf2AF;$\
+:\xa80M(T\xee\x1a\x8cL\xa0v\xcf\xbe \x0a\
+p\xec;\x00[\x9a\x8d\x0d\xf1N\xd6\x11\x14xQj\
+\xbb\x0b\xc4XY1\xec\xd9z`J\xc8yP\x94O\
+\x11@#\x0d\x81\x00*H\xcc\xb4\xceP\xb3\x8f\xc4f\
+\xf8\x5c3\x0a\xc1\xeb\x1f\xfa\xaes\x1d)\x94\xe8\xb4\x03\
+\xd0\xf0\xdc\xb0?p]\xd1N\xe0\xbe\x928\xb2\xfey\
+N\x95\xc0\x8evR'\x94\xce9\x7f\x9f\xe7\x15Q?\
+\xd6\x03\x9d\x04:\x0b\x14\xdc\x5cW\x0aE\x0af\xdcc\
+\xa0\xb4\x02\x00p=\x00\xf2o\xec~kTYW;\
+\xdf\xcc;\xc4}\x81\x89+\x80f\x8d\xdf\xc6L\x01\x08\
+\xd2\xccy\xbc.\xdc\x0d\xb07c\xd4\x81\x82\x93\xfb\xc5\
+\xeb\xe5z\xb1\x1f*1\x0cqKFBH\xd0\x87j\
+\xff\x8c\x8a0\x03\xcf\xfe\xc2s\x8aK\x01\x9d-:\xf6\
+\x8c\x00\xe0\x06\xc0,\xb6\xf6\xe1\x10{\xe5}S\xd8\x03\
+l\xb0\x9e$\xbe\x15#\x10\x00\xab0i\xb8N\xecW\
+\xbc\x1ffH\xd5I\xef\x0e\xb5\xa8\x1d\xe6\x00\xb2\x11\xe7\
+\xa3\xc0gF\x9f\x11\x1c\xd9.\x07\xd0\xc7>\x01\x80\xc7\
+\xf5\xe6z\x0d\x00\x9bx\x0e`\xea\xf1\xfe$\x16\xccG\
+\x14\xca4.\xd4i\x06@\xe762s\xdc\xfc\xc4\xa2\
+|\xbe\xc0\xa2\xee;\xd8\x0aO\xbcdQ\xbe\xfe\xb6E\
+\xf9\xfc/\x8b\xc4\xb4\xa2\xf0\x05\xc0%\xcf\xd2\xf5t7\
+\x22c\x9a>hQG\xc0F'\xf4\x0c\xbe` 1\
+\x0b,J1\x0c?Fd\xba\x9d\xad5\x90\x9e\x8b\xc7\
+$\xf6jZJ?M\x8d\x17\x152\xa8h\xd3\xc1\xc7\
+\xe5)\xd6\x89\xaeO\xd8\xe7b\x03\xaa\xf3\x80B\xa7\xd9\
+\xd2\x22\xcdR\xab\xf0\x88\xf7\xaf\xdf3\xba\xb7\xc4=\xe9\
+\xf3M\x16R\xdd_*\xb9\x1cH{\xa5\xb9NT\xfc\
+\x17,R\xbe\xc9z\xbb\xa8\xa7\xd67wY\xd4B\xaf\
+Y\xde\xc8\xfa\xd5m\x07\xc0\x11M\x07\xa7\x16?\xe3\x14\
+}\xcf\x8fc\xd4\xf4$\x8d\xb2J\x8bkb\x1f\x8b$\
+\xea\xab\xbc\x19\x0au7\xd9\xa2|>\xde\xa2\xfc\xfb\xd1\
+\x1e\xf5\xfcf6Z\x8cZ\xaeK\xbb\x9d\x85\xef\x0f^\
+\x10\xa1\x0d\xd5|\xb2D9\xef\xdb\xcb,\xca\xbfon\
+\x91F\x99\x0c\xc0\xf8[\xa5\xfe\xb3\xde\xa1\xc6\xc7:\xb1\
+Sx\x86\xc4\xa4\x1d\x8aV/\xe9\xc3#U\xa3\xe1\x15\
+\x1fv\xeb\xf3\xce\xc55\x8a\xf9\xfd\xda\x10\xa0S\x1c#\
+\xa6bH\xfb\xe8\xcauR\xbb\xfff\x1a\x15\x93\x9d\x22\
+\x85h\xf3\x19\x0b\x89\x0c\xda}=\xce\x22u\xbe\xad\x81\
+\xf7\x9d:\x83\xee\xd7\xbf\xec\x1f\xcd\xb1\x16\xe9\x1cS\x1e\
+\xd5\x1en\x91\xdc\x1d\x00\xd28\xe7\xb5\x0eGo\xf6\x80\
+\x1a\x1a\x04\x8c$P_\x8d/\xb5(\xbfo%\x8bd\
+\x17\xc9>\x83k\x94\x5c%\x9am-\x12\xf5\xdeN\xa7\
+W5\xea\xba\xa0F/\x9f\xf2\x02}\x7fW\xb3\xdf\xb9\
+op\x8e\x1f\x1b?>~L\xf6~6\xaap\xaeE\
+\x15\xbbk\x8eh\x8elL\x8d\xff\x98\xfe:\x8eo\x1c\
+\xffv\xfc[\x1f)\xf7\x91\xd2(\x90\xc5D\x8aQf\
+\xfd<*\xf9Q\xe0\x93\xd7NmQ\xb5\xd6\xd08\x88\
+\x86\xb8\x0a\xf3``a\xaf\xcdh$@\x22y\x18\xcc\
+.\x80\x1a>\xab\x9e\xa1\x11\x1d\xe2\xec\x00\x160\x7f\x11\
+s\x04\xb8P\x1d\x11\xf6\xc4h\xf5 \x82\xcf\xfb\x82\x19\
+\xads$\xc4!\xd1(\xd1\xc7d?\xe6@\xd2\xca\x82\
+\xe9\xe6)1\xaf\x16\xe6\xbc\xd5\xc7\xb3;\xcf\xa2~\xcd\
+\x86\xde=kQ\xa9\xd6\x14\xcc\xbe\xd1\x9e\x90\xc4Ul\
+\xe2\xf9D\xbd\x81\x0bk\xe1\x1d\x1d\xc1\x95\x06\xe2K\xe7\
+H\x84\x8f\x0e\xf5\xa2\xbdmM\x88\xfb\xa1\x1a\xfcY\xd9\
+\xa9\x91\xa01{\x88]\x02\x88\xc8Z\xae\xdfXU\xd9\
+A\x12u\xa1\x9b\xe9-*\xa0\x01\x82\x84\xca\xb7?h\
+\xa7T{\x0c:h\xcc\xce\x05\x93A\x0fd\xb7O\x89\
+}E\xe1\xf8h-\x00\xdaK,\xaa\xea\xaak\x0bd\
+*\xb6\x1d+G\xeb\xf7\xef\xab\x07%\xabR\xab\xe0e\
+\xa1\xf2>\xdf\xd2\xf1\xffn:\xd0)\xf8\xa0\xfe\x01T\
+p\xb0\x1bB\xfaCu\x8e\xef\x13\xb3\xe0Si\x06M\
+\xc8Y\xbc>\xa8i\x86\xc7_\x91(\xd4\x00\x19$\xac\
+VF\xed\xa8\x07\xe97\x89j\x05\x22\x8eJ-\x9d$\
+\xa88zP\x83zf\x07\xecw+u>\x0a%\x5c\
+ (\x5cHx\xe8\xccS\x90\xa3\x0e\x8c\xff\xab4)\
+\x82\x0a\xc3\x08\x8af\x9b\xa2p\xa0\x80\xe5`P\x07\x9e\
+\xfb\x13L\x87{\x5c\x87\xbc\xce\xdc\xd8,\xff\x22\x09A\
+\xbc\xc5\xa2\xda\xdc\xb9\x1d\xe0\x8e\xc9V\x90\x0e&\xa2P\
+\xc6p\xf9Y\xb5\xd5\xe3uF!L\xc2\x0d\xd5R?\
+\x1fTy6\xfe\xa1/:\x05\x00\xe2`\x14\x06C\x9b\
+\xa0\xd7U\xf0p\x9d\xe9L\xf2\x81\xdd\x98(\xc1\xdd\x99\
+JT\xe5c\x8a/i\x00UP\xe4\xb1\x89\x82\x22\x8f\
+O:\xafk+\x012\xea\x9c\xc00\x8a\xfbHB?\
+\x14q\xfa\x96\x12:41\x98\x09'A\xd3A\x14\xf6\
+f\x8c\x88\xeck\x91\x12Y\x0a\x14\x98\x06\x006$\xcc\
+\xba\x0et\x14\xda\x7f\xf6\x0c\xa3\x18\x91\xe2\xc3\xf8>k\
+$\x9fY\x1dD\xa3\xcb\xfaQ\x9a(\xb0)\xd0\x866\
+\x85\x1c\x1c\xd8\xd11sN'\x93B\x8b\xd7\xcb\x81C\
+AJ\xa2\x0f\xa2\xaf\xfb\x12\x07\x15\xcf\x11#J|\xc6\
+\x1e\xebs\x16\xe9@\xc7.\xf4\x06\x8bDu\xbb\xad\xbf\
+O\xa3\xf7\xea`\x07\xc0\x9c\xa2D\xeei=\xd7\x009\
+\x88\xdd\x89Z\x1d3\xbc\xbb[T-\x88\x18\xe1\x90\xbf\
+x\x00\xa8$\xb2wJ\xb4R\xda1\xd1\xf9WA\xe0\
+\x13\x997\xa7\xeb\xfa_\x15\xd4<\x17\x88\x8b\xa9p\x8a\
+\x8e\xf0\xd0\xdf\x9eQ*^?\x859\x9d\xdf\xa1\x06\xc3\
+\xb03\xcf\xfd\xe1<\x22a`t\x8c\x0ff\xd4\xe9\x1c\
+P8N\xa5\xdf\xcf\xfb\x00\x90\x18\xf8x\xc7l2\x7f\
+\x17\xbfsu\x0eb\x7f\xe5\xfdq\x1ePh\xce\xaa\x9f\
+\x9b]\x14\xff\x99Th\xb3\x0f\xf2}\xec#\xec\x17\xa8\
+r\x93\x17\xe0\x02\xc4\xbfsn\xbfn\x91\xc4\xf8X'\
+\xfc^\xbe\x9f\xfd\x8d\xf7\xc9\xf7Qh\xf3\xfeTh\x8d\
+\xa6\xb6\xa8T\xedxNaD\x91\x1f0c\xcfu\x87\
+\x914\x04$\x00\xe2\xb8\x8f\xfc;L\x00:\xbd\x5c\x7f\
+:\x80\xfc~\x984t\x82\xb1m\x1a\x020<\xd7\xda\
+\xaf\x01\xc8\x00\x22\x10\xe1\x0a;S\x00\x0d\x0a_\x80M\
+\xee\xe3\x90\xe1\xc19\xc8\xb9\xcc\xfb`\x1f\xe7\xbf\xf3>\
+\x99\xc5\xa7\x10\xe2\x1c\xe0\xfe\xf0wt\x1f\x981\xc6\x0e\
++\xfe\x1d\xf1Af\x90e3\xd8\xeek\xe1\x09\xfb\x11\
+\xa6\x1a\x1f\x0c((\xaf*\xd0\x99\x95\xed^*\xef\xff\
+\xa5tnc\xff\xac\xc25\x12c\x9e;\x80\x0f\x00f\
+iR\x04\x10\x03s\x85\xfd\x1b\xfbi\xe5\x1be\xf7\xf1\
+\xfd\xae\xfb\x81\x00F\xfd\xben\xc9n\x89n\xc9Z\xc0\
+\xf9,\xf9z\xe9y\x86)b\xab\xf5\xf5t\x1ek6\
+\xdb;\xfb\x7f\xab\xe2\x89\x88\xe9\x85]&\x22\x810G\
+\x18\x09 \xafa\xbf\xe2\xfd\x02\x88 \xca+FF\xf3\
+\x07u\xec\x95/5\xdf\xb3\xa8L7F\x03\x83z\x8d\
+\xf6\x94\x98\x17\xc1\xe0P\x03\xccyc\xcf\xaa\xe3k\xe2\
+\xdew\x97\xb8+\x8d\xb4\x19\xc0\xbf\xabw\xf0wjv\
+\xaa\x1d\xc6f\x15\x0bgp\xecg\xe2\x89\x14\xf6a?\
+\xa6Y\xeavm\x8b\xd4\xf1%\x7f\xd9W?\xc7\xf3C\
+\x9e\xc3\xec\xb8\x9e/l\xe5X\xee\xa8\xb0\x07\xe0\xceh\
+\x1b\xcc\x12D\xaa)\xf0\xa4\xc1\x15\x1aP\xe6rt\xb0\
+\x98\xac\xd7\x0a\x18\xba#\xe5\x1d\x14\xc80\xe4\xa4Q\xd4\
+\xfd\xc3\x22\xd9\x7f\xcb\x162\xf2v\xb3\xff\xdd\xb8\x8a\xa7\
+c\xef\xe8L\x8d\x93\xabxx0\x8f`\x94\xb0\x9e\x10\
+a\xfe\xa1\x85:\xf1\x1f\x11P\xf0\x8a\x1a\xa9o\xd4\xfa\
+\xcaGd\x9eI\xd7G\x80\x01\x85#u\x1b\xdaS\x01\
+\x98\xb2OiD\xc7]\xc8~PE\xd2G_\xb7p\
+\x9b\xbc\x12\xa9\x11\xc4\xc8/L sA[P\xeb\xd2\
+\xdc!\x8e\xb1H\xf6\xe5\x88\x013Ja\xab\xff\xb8\xe4\
+w/u|oD\xce\xed\xcc\xde\xdf8\xb3\xd7\xcc\xc6\
+W*\xff\xfd\xf7\xed-\xed\xef\x9d\x09\xf0\x97\xeeq\xdf\
+'{\x8d\x81\x8f\xb4\x1b\xb7\x1b{C\xd4\x81\x8dv\x0d\
+\x8b\xca\x5c\x1e\xff\xdc\xa2\xfc\xf7\xc7,\xca\xe7\xdfZ$\
+\xc6\xa9\x5c\xe2\xb0\xf5\xa3!\x09s\x1cf\x14\x8d\x1b\xf2\
+\xc6`B\xcb\x15.\xce1\x98k\xe4\x8f\x8c\xcc\xea\x9c\
+\x84\xa1\x0d0\x16\x8d\x01\x802]\x87\x10\xdfe\x7f\x00\
+\x00\x00\x08e]k$\x12w\x90\xeei\x8b\x04T\xb0\
+/\xa3}\xc4\x08\x9f\x98\x0b\x93\x0d\x97\x1a]\xa1\x03n\
+\xa7:\xdb\xec\x89\xc5\xda\x15Yr*\xf5\xbd\xc9\xf7\x9c\
+\x05g\x1b\xdb\xacu\xc3u5\xd8\xc9U\xed\x11d#\
+f\xb5\x86\xea\xd3\xea\x80\xc4\x02\x01y\xfe\x86:\xa0/\
+*\x118P\x08\x0b3\xa0 \x1b\x12k\x88\x84m3\
+'AU\x04\xdd6\xb8y\x93\x1b\x81\x12j/\x08\xd6\
+\xd4\xec\xf5\x07ja\xd8N\xd3\xdbMx\x9a\xbaT\xa5\
+b{\x9a\xf1CQ\xe2nHH8\x1d^\x0aX\x00\
+\x10%<\xf8\x81G\x87P\x88_\x88i\xd8\x0c\xcb\xab\
+J\xd8l#?\xb0\xc4\x17\xd2\x8c\xb9]\xd5\xa5Sg\
+QbtQ\xc8\xa9\x03\x07\x05\x8c\x8e\x8b\x1f\x98\x17'\
+*\xb6\xa5\x93SU\x0a\x97?\x88s\xa6\x8e\x81\xa5\x05\
+\xf3\x89\xca{t\x15?\x0cdV\xe27!j\xc1\x86\
+*[\x96H$\xe8\xd4\xbf\xe0S\xc1\x01$\x85\xcf;\
+\x09\xb4\x95\x1d\xab\xa5\xef\xb7m\x7fKQ\xa7v\xab>\
+\x9fl\x9c\x91\x10\x90\x10\x1a\x8f\xe1/I\x85w\xc2\xf5\
+\xad\xeb\x07\x22/Pu\xf9\xbd\xa8\x1f#\x92\xc5\xbfO\
++\xdb\x10\x8d\xbcx\x1fy\x1b\x1d\xe0\xdfO\xd41\xec\
+\xc4H\xdc\x7f\xee=\xde\xaa\x1e+\x9bA\x80\x9dP\x83\
+7\xcd\x85\xfb\xabMS|p\x1fy\x9f$^b\x16\
+\xe0\x1f\x1a\xe2n<\xc0\xf6\xf4\xccZ;U\xae\x96|\
+\x95\x90\xfbU\x92h&\xe2I\xd8\x9f!\xfa\x07s\x84\
+\xce\x1a\x85\xf7\xe3\xb2\x9b\xda^\x07\x13T\xe4\xa1X\x17\
+\x89\xd5\x06bp\xec\x22\x0d\x01fi)\x5c\xd9\xa8H\
+|WT\xc7\x09f\x07\x9d\x89\xabz\x9f\xd8\xe8\xc4C\
+]\xa5\x83J'\xe8\x86~#n\xd6\x95\xff.\x1b)\
+\x1dLD\xcd\xa0\xb8\x8b\xb2l\x12JF-\x85\xaa\x0d\
+%\xb7\xdb\xd2\x22u\xfe\xf0\xbf\xde<f\xa9\xfd\xf9\x01\
+\xc1n\xf7\xb0\xf0\x19\xbfc\x8c\xea\xc7\xcc(\xf6\xa9\xa3\
+\xfbK<\x90\x12EFL\xce\x97\x8a\xfa5\xda\xc8\x97\
+\x11\x03\x82\x82\x7f`\xeb\x15\x08/\x05?\x9dC\xb4\x22\
+(\xf4\x87>\xd9P\xc6)l\xa1V2{\xcd\xf3\xcf\
+\xac:\x94n\x18[ \xc40d4c\x18\x9d6\x0a\
+\xa6\x07\xb4nqK\xa1\x00\xbbO\x09\xebw<l\xff\
+\xee;\xa0\xd3\xab\x83:\xf3\xc0\xf7\x9c\x9984\x22\x98\
+E\x1654(\xb7\x02:\x82\x0aO\x22\xa2\xeb\xeb\xf7\
+\xe3\x18\x7f\xff=\x13\x86\x82\x86N3\x0c\x90\x0d\x04H\
+\xf1\xf7)\xa0(\xb4I\xfc\x86\xae%C\xad\x01\x0a\xd2\
+\xa1z=\x00\xb6\x5c\x14\x82q\xc1u\xa5\xc3\x0aE\x98\
+\xdf\xcb\xeb`\x1f\x05p@\x93\x00\xe0\x94\x82\x0b\xe0g\
+i1\xa0`\x86\x00\xd0\x01\xa4PX\xb3\x0e\xf9\xbd0\
+Q\x00\x06x}\xeb\x8b\xc9C\xc7\x06\xa6\x9fF@\xfc\
+|:0i\xde\xf0\xdc\x02\xd4\xf0\xfb\xd8'\xd8_\xd8\
+\xd7(\x88\x01\x14\xb8\xde\xac\x7f\xee\xeb\x10P\xe1\xba2\
+R\x87V\x01\xfb\x05\xae\x22t\xfc\xd9/x\x0eu\x8e\
+\xc5\x0c6\x05\x22n\x17\xd9\xb5\xa6K\xf9\x09@0Z\
+ Ki4\x0a\xc6\x15\xcf\x0d\xf7\x9b\x19w\xf2\x11\x18\
+$C`C\xcfqh\xb7\xa0qD\x81O\xbe\xc0\xf7\
+S\x08\x92`\xb2^\x00\x8c\x86\x8c.\x80\x0a>\x0f\xdd\
+>`Xp?\x18\x1d\x03\x10\x1c^\x07\x189\x88\x0f\
+j?\x0a\xc0W\x85\x1aT\xd8\xee\x1c\x8b\xd4\xd1f\x1f\
+\x95h-\xf7\x19U\xea\xb0\x9b\xc5\xceS#S\xcd\xf5\
+\x16i}pn\xec\xebQ\x99@\xbco:\xaa\x88\x9d\
+\x92\xb7\x00\xa8(a\x1f\xfd\xcc\xc2\xd7U\xcf\x848]\
+#\xaahC\x8c{\x80\xdf\xd5\xd7\x0fN\x14{\xd6%\
+\xcf#\xe2\x8c\xb8\x15\xec\xa7B\x16\x0d\x1b\xbd_\xd7\xde\
+Y!i\xb7\xa0\xe2MG\x8f\xfb\x8e\xc8 \xc0\x07n\
+\x01\xf6t\x99\x16\xc3\x0a\x16\xaeM\xf0\xdc\xe89\x07\x14\
+\x5c\xd3gb\xbf\x89\xfd'\xf6O\xae90\xad\xa0\x98\
+\xcb\xce\xba\xf9\x83E\x05$b\xff2f\xebO\x12\x10\
+\xcd\xf5f\xffD\xfcS\x0c\x0a\x18\xb8\xcd\xa6\x16)\xdf\
+\x9d\xb6\x17\x8bn\xff\xda\xcf \x8f\x9f\xb0H\xbe\xe4\xa6\
+\x09V\xf2\xb5v\xab\x1e\x18\x9ft\xbc\x0a\xc9\x07{\x7f\
+z\xf3\x02s\xe0\x7f\x06\x8dji]\xc0\xc8\x9b\x98\xc1\
+\xc2\x99|=CvE\xe7\x8e\x85F\x02\xda\x06\xe3\x0b\
+J\xfcT\x9d\xfe\xd9\xd49\xbf\xa5\xfc\xdd\xd5,\x92+\
+\x82:\xf2\xe12A\xdeK~\x89\x88\xb5\xad\x92Eu\
+_>\x9a\xdck\x04\x18D'\x97\xfd\x84\xf3\x90\xfd\x17\
+qu\xcb\xdeV\x16\x13a\xc5\xa4q\xb1\x85Er\x17\
+\xc2}A\xa2|\xcd\xdfK\x94\xfb\xdd~\xc9\xa2\x8e\xc4\
+\x85\xdb\x85i\xae\x95\xbc\xa4\xd9\xa2\xc4\xe6I\x1c\x0f\x80\
+}\x15\x8b\xf2\xf5\x8c\x16u\xff\xc0\x1d\xc4\xdd\xbd\xeeJ\
+\x0d\x00\x01\x10\xe3\x95,\xca\xe79,\xca\xdf\xbf\xd6\xa2\
+\xe6-a\xa7\x0b\xd3\x1b-,\xd6\x91:\xd8\xc6\xe76\
+F7\x22u!\xfe.\x00h\xbc\x90E}\x8e\x9b\x19\
+,\xd2\xf3z\x91\xc9B\xd6\xe7\xac}\xb3\xc4\x7f\xbd`\
+\xef]]\xce\xed\xbf\xaf9\xbd\xf9QS\x9ec\xd3\xf0\
+7\x15\x7f\x1a14\x5c\xb0\xd9\x1eMX\x94\xaf\xe7\xb5\
+\xa8\xccRf\xe7\xa3N\xc3V\x15\xf7*\x9d\x07\xb8\x9e\
+t\x9f\xb7\xa8\xfbR\xf7m\x8b\x94\x9f\xa1\xad\x85k\x1b\
+\xa3R\xec\xef\xe4Y0Ui,\xa8p\x0f\xa0X\x00\
+B\x8c\x0e\x08\x90\x8c\xd1\x88\xcbz\xad\x8cp_\x80\xe1\
+\xc2}\x92=a\x9cK:\x17&\xc7\xec\x89Q-\x96\
+\xa9\x17\x1e\x8aH\xfb\x90EE*\xbae-\x92\xea\xb6\
+\xde8\x9d\x08?\x00\x96\x11B\xf6|\xea\x5c!:$\
+\x0aSP\x03\xf5\xc0t\xa7KD\x83\x04\xfc{\x93N\
+.a\xa2\x13\xae\x92\x1e\x88)\xb3\x8d\x1cL\xcc<B\
+E\xb1\xf4\xc5f\x9a.\xb2H\x88\x9fl\xea\xa0J\xf8\
+\xc2?\xa2&(\xed5%~%$\xab,\xc4\xe6\xcf\
+%\x1e\xa9b\x83Na:H\x1b\xf8,\x1aU(\xef\
+w|G\x89;S\x87M\x89\x823\x02\x1eI\xb3:\
+Pl\x8e\xb5H\xa2>$N\xcc|\xd9c\xf9l\xda\
+8\x94 y\x87`\xb9\x94\xb8Jt\x8c\x19j\xef\x14\
+\x1f*J\xd8\xc3\xa9@}\xdc\xa7\xb3\xab\xfd \x9di\
+\x89g8\x85y\xe6\x94h0\xa3b\xe9\xe4\xfb\x93\x98\
+\x8d\xdd\x8d\xef\xa5\x84V\x9d\xf1n\x06\x0bQ\xe8\xfe\x99\
+^\x1f\x1d-D[H\xf4H\xa0\x17\xf5\xe1\x8e\xaa\x15\
+a\x0b}\xa5Z8\x04\xa2\xaf\x83>~nHi\x97\
+\xbd_t\xfe'\xbb,YMlH\x98Wpc\xb1\
+Zh\x98}\xc8\xbeJxV\x97H\xdc\xe2\xc9\x95\x80\
+\x9f\x13\x02\xe8\xa2u\xbfJ\x9d\x7fKw\xceN\x89\x07\
+\xa2\x8c\xbc.\x12y\x12\x05\x00\x10F\x04(\xdc\xa6x\
+\xcf\xb4_\x17\xc7U\x04\xdc\xdd\x016Q!\xdf\xaa\xb0\
+]\xb5jX8\xd3\xe3d\xcd\x90\xfe\xb1\x1e \xcc\xc6\
+FAo\xa2Y\xe7%\xa0C\x8c\x87\xa0\x1eC1R\
+\xa1\x13\xd4\xf7\xf5\xd4\x09\x07x\xa03\xcasGA\xa6\
+\x8d\xd34\xfc\x9db7\xa4\xfa\x7f\xb6\xb7W\x09{(\
+(\xe2\x00\x0a\x5c/\xd9\xb0 \xfe\x14\xb6l\x88S\x82\
+8\x8b\xc1C\x81\x12\xb3\x8a7J\xb5\xb9np\xfd\x06\
+,\x847\x12P\x1d\xdc\xa1\xea:\xec \x91\x08\x93\xb8\
++\xe1\xa3C\x80jrwfw\x86\xfb/\xeb\xf9\x22\
+\xf1r\x11\xae\xcd\xff\x0f\xea\xfe$\xe8\xb8\x07L\x93\x9e\
+\x83E\xd3u%\xc1\x1c\xce\x9eS8\xc2\xec\x18\xda\x01\
+\x06\x07W\xff\x9d\xeb\xcb\xf7g\x1b\xa3\xbfW;\xb9\xe8\
+\x84k\xe4\x08\xdb\x9cQc\x91\x5c\x1b\xa0\x1e\xeb\xf7\x84\
+\x8b\x84f\xd8B\xcb\x02\xff_\xec\x10\xdf\xad\x8e$L\
+\x1d\xa9\xea\x8f\xe6\xecgQqW\x88\x82\x84\xc2\x98\xce\
+.\xfb\x86\x0a\x13f\xfd\xe2}\x22\xd2\x87\xf8\x19\xd7\x83\
+\xf7\x89\x98\x1b\x0c\xaa\xeb\x94x\xcb\x8d\x00\x80-\x12g\
+(\xdb\xec3\xfc}\xee\xdf\xd0u\x81\xeb\xcc\xfd\x81\xf9\
+\xb2Hy\x8e\x16\xf1Bo\x15\x07l\xf8=\xbf\x97-\
+\x984X\x82\x82M\xe7}\xb6\x81\x8d\x1c\x85*\xf7\x91\
+\xc4\x8auu\xb7\x98$tz)\xe0\xf8=\xdcw\x12\
+}:et,\x00\x0e\x18\xf1\xd2>\x12\x94F\xf6s\
+\xfe\x1e\x056\xd4y\xec\x91\x00\x16\xb1g\x04\x10\xc1\xc7\
+\x9dYw\xf2\x00\x0a7\xf6\x17\x00\x1b\x98\x03\xf87k\
+\xf6:l\xe5p\xb7Q>\x10\x1d4u\x94c\x14\x83\
+\xd7\x0f\xb07\x04\x04\xd8\xaf\xc9O\xd87\x86n9z\
+.C<\x15`\x90D\x1fQA\xf6\x0f\x00G\x0aI\
+%\xfe0h\xa2\xe3F\xe1\x0e\xf0\x04\xf3\x88}\x98\xeb\
+\xcb9\xc2u\xa4!\xc1\xeb\xa5\xb0`}\xb2\x0eY?\
+\x00\xafhh0\xca\xc0\xbeC\xc7\x1f`\x8f\xfd\x98u\
+M\x01\xc8z\xe7zR\xc8J\xf5?F\xf1x?\xda\
+\xe7\xa1\xdeG\x1e%\x0as\xb8X0\xab\xfdi\x8b\xb2\
+\x8d\xddj\x91Dp\x11=\xbdb\xe4\x8d\xaaf_\x8b\
+\xc4\x98\x80J\xce\xfeN\xe7\x17\xe0\x8e\x91\x0f\xe5Y\x14\
+J\xa3y\xc5\x98\x9cI\x85\xd4\xf4\x16>\xa2p\x82\x8d\
+(Ph\xc79\xc0z@[d8\xc2\xc5~\x8d\xd6\
+\x0c\xda\x0c\xd8\x06\xc3$\xb1\xb4\xfe\x9a\x04 \xb1\xdf\xf3\
+\xbc\xa8P\x18\xfdJ\x22\xb9\xd6?\xfdk\xb2\xbbF\x8c\
+Z\x8d\x8c\x18iC\xf3\x05\xca1\xf9\x05#\xa9\x14R\
+:\xffh\xb89\xd0<\x87\xd6\xc3{k>\xc8\xc8C\
+\x9c\xd7\x96\xdd\x1e\x22J\xf4\xd7\x5c\x1c\xb9\xcf\xbb\xb1\xe3\
+T\x81\xd5\xfe\xd4\xa2l\x9f\x9f\xb3(_/iQ>\
+\xdfbQ>\xbf\xd4\xbe\xd8\xbe\x98T\xec\x8d)\xbbO\
+}^q\xcb\x22\x0fq\xb7\xb0R\xc0M\xcciQ\xc5\
+\x09\x9b\x7f5\xffn\xfe-\xa6\xd9\xb3.Z\xbe\x8f\xad\
+\x8bv\xbd\x12Sj\xc3\x87\xc2\xad]\xb9\xc4J\xcac\
+K\xde\xd4\x9eT\xe2d1;\xcf\xd0\xb9\x95\x0a\xcc(\
+\xdc^t\x08\xbb\xcf?\xf3\xb92\xc9\xafA\xd8\x18{\
+\xfe\xfb\xef\x04\xd0\x01\xbc\xd9\xee9]m\xe0\xc1 h\
+\x16-Q\xaews\x7f\x89\x07\xca\xfb\x9b\x5c\xa2\xac\xd7\
+\x89\xebJ\x5c\x9f\xc4U\xad\xff\xfb\x19ox\xack\x0d\
+\x0f\xaf\xd3\x96\xaa\xb3\xf64d\x9b\xffXT\xf1\xf2n\
+9\x8b\xc4\x5c\xc5\xc6\x15\x1bT]\x07\xec?'\xe6\xb7\
+\xa8\x0d\xb07\xd7\xb2\xa8\x00N\xfbi\x8b\xf2\xf5^\x16\
+\xe5\xf3<\x16uT,\x5c\x11`l\xc0@\x163\x93\
+B\xdb\xed\x7f\xa7\xf8z\xe9\xed\x91ar\x9ef\x914\
+\x93\x18\xe9\xc6e\x03;M5l\xbaW\xbb\xffX\xe3\
+\xb4\xbc*w[h'l\xb6\xc1}\xee]\xbc/\x18\
+-0I`|\xd3PQ\xbe\x19Lq\x89\xcb\x92o\
+\x02p\x07\xa3L\x8c\xb8\x00.\x18U\x8510j\x15\
+5\x00\x00 \x00IDAT\xb4\x91EuK\xe3\x1c\
+\xf0\x91\x90\x8f\xd6\xf3\x13fT\xd4\x7f0A\x19\x85f\
+\xbf\xa5\xe3\xcf\x88\x0c\x8dB=\xd7\x8c\xc6tw\xf5\x9d\
+\xfdp-@\xc3\x85|\xe9b\x8b\x9a\xef\xa3\x91\xd0\xcd\
+eQ\xb6uW\xff_C\xd4\xa2;dw\xb3p\xea\
+\xe4)1D\x15\xd6%\xee\x0e\xafT\x08TR]T\
+\xed\xc7\xc9\xb6\xe4u\x8b\xb20?h\x91\x90X\x10x\
+\x00\x04>8\xe0TP\xb6_\xb6H\x22\x09\x8f[\xa4\
+\xd9\xd5\xc9\x16\xf5\xe0\xa2s\x14\xe2p\x87\x96\xf8\xb2\x90\
+\xa7w\xa4Y\x09\xc4\x88T \xc7\x0c\x9d=\x16F\xb1\
+\xf9\xaaEJ$U\x90\xa2\x0a\x19\x08/6a\xbbj\
+\x04\xe1$\x8f\xfe\xe0:\xa8\x22\xfbns\xf1\x17Qs\
+\xac\xd3\xf9J\x89\x97\x93\x0a&\x9dh\xa8FP\xc0X\
+\xb0$\xa2\xb6,fNb\x82\xda\xd8\x19\xa1hV.\
+\xb1\x92\x12\xf7\x09\x8df<\x936\x22\x1d\x5c\xed}%\
+\xeeO\x89\xff\xd6\x16\xc9f\x8b\xfb\xadY!\x12\x8d\x98\
+Q\xb2m\xe3\xa4\xda\xb9\xa3#\x10~\xc6\xd6W\xfam\
+\xea|\x93P\xffo>\xe5\xcc\xb0\x92@X\xfa\xf2\xae\
+D\xf9\xce\xef{\x9c\x12i\x0a\xffI\x12\xf2\x22\xa1\xe5\
+\xfb\xa0fUj{u?\xb8\xbf\x8a9\xa2\xe9\x10\x7f\
+\x87\x03\xdd~\xdb+:\x80\x9fN\x07\xf6p\xd6g`\
+\xb7\xe7\x22;s\x8a\x0a\xf9\xbc\x00\x80\xbf\xbd\xa5\xa3\xe7\
+\xc0B \xfbv\x8co\xa7<}\x94D\xa9\xa4*\x0c\
+r\xeb\x04\xb45j\xc7\xdf\x13\x96\xe9R\x81\x88\xb6\x03\
+\x0c\x07\xd6\x13\x89\xb5\xbd\xfa\x05\xa4&\xfa\xa5\x9a\xd0\xc4\
+\xac\xde\x9f\x94P^)\x0d\x02\xee\x0b\x09\xbb\x12\xe0\xb8\
+\xcft\xb4X\xbf$\x9c\x00H\x00'B\xd6\x0dVs\
+\x1b-4 (\xf0X\x1ft\xf4\xb8\xef\xcf\x0b\x00\xfb\
+\xa3\x0e\xe2\xe7d;z\xa9\xec\x01\x19)\xe0}\xc2\x04\
+!\x01\xe6\xf9\xe5\xfe\xf0\xf9%%pt\x8a\xe84K\
+\x14%\x80\x1f\x0ar\x12\xab\x07<z\x9f\xd8\x0b\xd2L\
+ \x1dy\xbd\xdff\x0d\x8b\xda\x81\xe9\xb6\xb3p\xa6\x8e\
+\x03\x111\xa2\xc0\xef\x87\xb2\xcb\xba\x1d\x8a\x01\x06\xd7Q\
+\x09\xe7p\xdd\x0d\x811\x12?(\xdc\xd81\x0a\xf0\x8b\
+\x82\x0aM\x13\x0e\xb6\x13-\x92\xed\xf1\xbb-\xd2\x08\x0b\
+\x85\xfd\x83\xba\x0eGZ$F\x01\x149f\xf07\x1b\
+0(\x18!zM\xea\xd5Ok\xe4\x86\x82\x88\xf7\xad\
+\xd1\x81\xeev\x8b\xf2s;\xa8\xc0\xa3 \xe1us}\
+\xa0\xf6\xe2~\xc1u\x00p\x85\xf9\xc0\xcc\xbb\x0a\x90\x18\
+\xada\xc4A\x89b\x9c+\x00\x0cC;\xd2\xb9T\xb0\
+\xf2\xdf\x01\xa4Y\xd7\x1c\xd07u\xbf\xf3\x82\x98\xd1\x9c\
+\x17t?\x00\x86\xee\xe9;\xba\xa1\xa1CaMBO\
+\xe1\xff~\x15\xa8<\x1fh\xe7l\xaduDg\xffI\
+\xeds3*\x81@\x9b\x81\x84\x02 \x80\xc2\x91u\xbd\
+\xaa\x183\x9b\x8a\x8a\x08U\x1e`_\x00\x1b\xd4Q(\
+\xd6\xccRFg\x95D\x0b7\x16\x0a\x22\x0aB\x9eG\
+\x15\x9e1\xf3\x0c\x00\xc2\xa8\x05\xfb5#\x1f$H$\
+T\xccr\x03\xa4S\x90Q\xb8\xa2\xbd\xa2\xc2\x1e[\xce\
+\xd8\xb7\x01<\x86.\x08\xba.\x01h\xf1\xdcq\x1e\xf0\
+\x9cr_\x00L\x00\x16$\x82\x19b\xc7:\x97\xbb\xfb\
+-\xca\xd7_\xb4\xa8\x89{0_\x00\xce\x00$\xe8\xf4\
+\xf3\xc1\xbe*\x00(\xf6a\x98j\x03\x8ax\x00b\xd8\
+O\x02\xfc0\xfa\xc0\xfba\x9f\xe59\xe2\xdf\x01D\xd8\
+W9_\xe8(+\xdf\xc1F\x0f\xc6C\x88\xe0\x0a\x08\
+A-<\xee7~\xe1/\xf6\x05`h\xf9\xe8\xf9\x99\
+x\xd9\xa2R\xe7c\x94E\xeb\x8c\x06\x0b\xcc\x82\xf6\xd7\
+\x16I\xb4n~\x01\x88\xabh?\xa6\xa1\xc1:d\x84\
+\xe3Cb\x8c\x08\x18`\xfdE\x07\x16\xd5\x7f\xd6\x09\xeb\
+\x8f\xeb\xc6u\x06\x00\xc2\x87[\xcc\x98\x002\xb9\xbf0\
+(\x01\x12p\x11\x00\xc8\xe4u\xc2P\xa2\x01fO\xf5\
+2I\xb4\x0f\xd5qc\x98\xdd\x9fl\xfb(T\xb9O\
+\xd8T\xcb\x8e:\xf6s1\x00\xe2\xbe\xcb\xc6\xd0\x0b\x9a\
+/*_\xbb\xac\x02\x93\xed>\x16\xe5X\xfa\x95E-\
+\xa8\x9b\x93J|\xd7)\xd8\x0e\x14Sp\xe0\xff>^\
+\xda\xa2\xaa\xf6\x8f\x17\xee;\xbb\xed\xd9\xedY\xedYU\
+\x0c\x99\x11\xd6\xf6\xdf\x16\xca\x9f\xbf\x9b\x1ab\xca\xa7\x11\
+'d\xbdL\xdc4\xf1\xf4\xc4\xd3\x15\xa0\x99|\xb6E\
+\xf9}3\xf6T\xf2\xf6\xca\xf6\x8a\xb6\xe4\x9d\xe3\xcf\x8f\
+\xf7\x1f\xef/u\xfa\xeb*\x85?(\xe7V\x98mR\
+\x01\xc1\xee\xa8\x12G\xd6\xd1\x0a4\xb2\xc2\xb5F\xf6\xe0\
+\x88Q\xfa\xee\xf9wQ\xae\x9f\xa9\x00\x02nd\x8c\xc8\
+\xc0\x88\xc1E\xab\xd9\xabD\xc9[&6\xb3(\x9f\xbf\
+^\xc2F9\xe6\xb7\xa8\xf9\x95kg}S#A\xaf\
+H\x93\xa2\xe4\x1d\xcdZ\x16\xd5>\xdaa\x9ds\x95\xb7\
+\xaf.&\xe2\x9b>\xc2\xb2\xa4\xb9@D\x87\xd9\xfa\xcd\
+?\xd0y\xffBbB\x92\xe7sn!\xce'\xf1\xcf\
+h$Y\xc3l\xbf\xea\xde\x13\xccN\x18\xa2\xfbN\xda\
+\xd7\xeb\xa2\xf2t\xb8;\xd4\x0e%v\xac*\xf4\xf1\x1c\
+\xab\x10\x1e\x1dV\xea\xac\xc3*\xa5\x1d\xc6b\xec\xc7\xd2\
+V\x89\xe7\x06\xe0\x12\xe6\x8c\xf5\xc1\xad!\xf9P\xcfL\
+\x8c\xbaN#\x80\xdd\xa5\x16\x95\xfa\x8e-!\xa3\xa5\xd1\
+A?U\xa3?\x14\xd8\x00\xaa\x1a\x95\x0e\xd7(\xf2\x7f\
+\x1a\xb3\xaa\x97\xba]-\x12\x13\x1c@\x00`\x12qU\
+iS\xf0\xf7\x22O\x82\xd1N\xfeN\x1d3t\xa3\xe0\
+>\xe0>\x22 'F\x0a\xc4\x80\x0b\xf1@\x18\xf8\xfa\
+\xfb\xedi\x16\x15\x10\xc0\xfder \xe8\x96>\xdb\x8c\
+\xc4\xbd\x16\xd5\xa6\xcbm\xf5\xa6\xad\x05]t\xee\xb9A\
+P\xbf@\x14\x95g\xc4\x8c\x9cDBB\x94c\xb1\xfe\
+F\xc5\x02\xa6\xb3\xc0A\xf4\xb5\xbe\xc0ow\xb1\xf0\x0b\
+\xd7S\xcc\xa7S'b\x1a\xef\x9d\xc5lJ\xcch \
+\xd6\xa5\x0e\xc7\xe8\x9d%\xca\xf7O\xde\xd4\xa2\xde\xc8\xae\
+\xe9F]\xe3Z\x07\xf3\x9a\x9f\xbd\x8b.,\x9c\xd4\x85\
+\x8d\xd2^nT\xdb\x95h\xabofPO\xb6\xb4(\
+_O)\xb1\x9e\x10\xd7[\xb5\xe0wH\xd4\x9d\xd9-\
+\xd4\xa1?\xae.\xd0\xe6R\x8b\xe4\x17n.\x09OH\
+\xfd\xf4<%\x02S\xd2\x02\xd0\x03\xcbl\x96\xcf\x88_\
+\x94:!$l\xcc6\x93\xb0\xdbrzR\x07\xe9\xcb\
+u\xe6&\x0e\x04\xa8\xec\xccB1s\x82\xf8\x9e\xa8\xbd\
+$\x1cA\xe9\xb6\xf4\xefH\x01\x0b\xf3V\xb1\xc1@\xf2\
+\xad\x90\xf8\xae\x0e\xf6\xc7\x13\xb2M\x07\x8b\xbfo\xb3p\
++\xa8`\x5c?\x1d\x94\x1c\xb0\xf1\x8d\xfdr\x8a\x02\x88\
+\xcf\x14L\xfc\xbb\x95Eo\xe8@}\xa9n\xd0\xc1\x0c\
+\x00\xb9\x9d\xd3\xf5\xb9\xab\xf8\x9e\xc4\x199(\x822O\
+BKBd\xb8\xee\xe3\xa9\x93O\x82\xa8\xc2$\xfc\xe9\
+\x99A\xe3~\x92\x80\xa0\x06\xcd\xac\xb2i\xdd\x9f\x91D\
+\xac\x84\xc4F\x81C\xc2L\xe7\x9b\xc2\x00\x0a$\x1b'\
+\xc0\x9c\xa8\xdetp#\xf1\x070\xd3\x81\xe9\xe2 \x07\
+'\xcd\x03%`\xf1\x5cO\xd6s8\xbc\x0f\xa8y\xd3\
+\xe9\xa2\xe0\xc3>\x05j.\x14\xf6]U8\xa0\x0eO\
+'\x81\xe7\x9cY~\x00\x0a\xd4\x96\x11!$a\x07h\
+\xa0\x00d\xc6\x13q<Q\xe8\xe2>\xb1\x9f\x0cG\x16\
+(D(|^\x1a\xd8\x00\xf2}\x00\x00\x5c\x7f\x0aT\
+\xae\x13\x9dK\x12C\x01J!\xc6\xa3\x91\x1a\xf7\x91\xbe\
+)\x15\x8e0A\xd8\xe0y=C\xffy\xae\x07\x1dB\
+^/\x07\x13\xc81\x1b\xed\x0cA\xad\xef\x9f/\x0a\x15\
+\x00\x1c\xfe\x9d\xe7\x05\xea\xb0\xc4\xfd\xbc?1]*\x14\
+\xc4,*\x09U\x89\xd4)\x04\xb8{@\x05,~\xf4\
+\x02F\x02x\x81\xa9\xc5\xfeE!\x0d\xd3D\x00@|\
+\xbf:\xf1Q\xc0\xe1\x1e\xc0}\xff\xab\x0a\xc3\x1b\xd4\x09\
+xE\xd7\x89\xceY\xd5*\xe8\xff}q\x8dJ \xaa\
+9|\xdf\x14L\xea\xc4\xc7\x08\x04#M*0c\x9f\
+\xa1\x00\xa3 \x02\xf8\xa5C\x0b \x83\x88\x18\x056\x9d\
+l\x12}D\xe7V\x97\x16\x05\x85$n\x0a\x1bj\x96\
+\x9c\xd7M\xa7\xf5\x93\xea\x04\x89\xe1\x16\x22\x9b\x5c\xb7\xe1\
+,7\xeb\x7f\x0euN\xd7U'Zb\xba\xb1cN\
+h\xff\xfa\xa3\xd6\xf7\xb7\xd4YDS\xe1]\x16\x09x\
+\xa0 \xa2`e\x1d\xa2)\x03\xd5\x10M\x13\x5c3\xd0\
+\xde\xa0\xf3\x04\xa3\x80\xf5\x0a`\xc5\x07\xfb\x0e\xdf\x07p\
+;`\xe6\x84\x9f7\x1dn\x0aG\xee\x13\xebv\xc8p\
+ \xc1\xa4 \x04\xb0d\xc6\x17@\x9c\xfd\x8c\x82\x89\xf5\
+O\xc7\x1fM\x03\xa9;s\xfeGB'`4:\xd5\
+\x9ay\xe6\x1c\x8du\xc6\xba\xe7\xef\xb0\xeex\xbe\xf9w\
+\x0aP\xc4\x15\xe7\xb5\xa8@@h\x22\x00\xac\xd3\xe9\x82\
+aA\xa2\xceu\xe7\xfa\x00`rN\xd1\xa9\x86\xc2\x0c\
+\xf5\x7f!\x01\xb8\x1f\xd0\xe8\x82\xec]cF\x19\xb1B\
+\xa8\xf96;~we\x0e\x91G\xb6\x1f\xb6H\x0c\xc6\
+G,*\xb3\x10\x8a93\xbc\xc1\xd8\xc0\xfeJ\x85H\
+0+\x04D\xb67[\x94\x9f\xfb\x93\x85\x03\x13;\x8d\
+v\xaa\xcc \xef\xbc\xce\xe4\xc0\x88S\xa0G\x93ds\
+hy\xe2;kg9D,\xd9oy\x9e\xb8\x8e\xba\
+\xaeP\xafC\x93\x8a\xeb\x89f\x12\x9d\xcc\x17,\xd2\xbe\
+*Fj\x88\x8d!J\xb7\x8b\xc4\x08\x01\xc2\xec\xe9\xdf\
+\xba\xee\xc3h(\x04\xe0\xa4\x828T\xf3\xe9\xc0O\xb1\
+\xa8\xd7\xa99\xd1\xa2\xaa\x8c\x9bK\xba\xf9\xa4\x87{\x8e\
+(\xd9\x9e\xbf\xad\xaf\xbc\xe4\xac\x0a\x9cza\xffj\xd2\
+t\xb8\xad\xc4\xed\xe5\xf3\xfc\xed\x02\xed\x02uv\x1a`\
+\x82\x11\xb9\xf1\xce\xe3\x9d\xc6\xe5\xfa\x8fW\xb4(\x9fw\
+\xb4\xa8\xd4\xe7v\xfd\x12\xe5~\xb7\x8b\x94x\x8fT\xfa\
+OO\xcf\xa1\xe5\x87\xcb\xd7\xbcd\xfc\x98E\x1d\x09l\
+\x1e\xb4(\xc7\xf6\x0b\x16.z\xf8|\xf3|e$\x22\
+\xb2:\xbe||\xd9\xf8\xb2J\xd1w\x95\xf9\x92\xaf\xb6\
+\xc7\x978.\x89I3\xcaG=@\xe3\x0c\xbbS\xcd\
+\xcc\x87\x0d\x1c\xfb\x9ee5\x97\xa4\x82\x91Q\x00\x98\x03\
+0:\x04,5\x7f-\xf1\x94\xdb\x9c\xbb\xcbY\xf3R\
+\x89\x97+\xe0\xf2\xe6\x89%\xb2\xb8\x9f\x01\xd2S\xd5\x19\
+|\xbf\x9e+\xa4}\xda\x18\xa1\xe5zN\xdcm\xa1\x02\
+\xf3\x07\x95\xb1\xd8~\xab\xc4\xf1iv\x5cL\x8f\x10\xaf\
+\xe4}\xd2\x81V\xbe\xe1\xe2\x89\xe5<l\xae\xb0H\xe2\
+\x90\xb8\xbdAYG\x9c\xf9\x88\xd1\x11h\xd5\x98v\xc0\
+\xa4\xbd\xdc\x87\xa3\xd6\x05\x02\xa4\xa2\xf1\xa5\xba%4\x8a\
+t\xde5\x17[HSn\xc1\xa4\x15BCIv\xa4\
+\xcd\xbbK\xcc\xa5Q\xce\xb2\x0e\x9bKJ\x5c\xec\xd4\xff\
+\xb2\xb2<\xef\xe9\x99\xdd\xcf\xb4O\xb7O\xa7\x86\x88\xf2\
+\x91\xd1\xa3\x16\xe5\xe7\x96\xb0p\x8d\x81\xdf\x9b\xc6\x00#\
+\x8f\xc1`F\xcc\x98\x86)\xdaw\x00\xd8\xd2>\xe8\x0e\
+\xb0Hj\xff\xec\xa74>y\xbf\x00\xd2\x88B\xeee\
+Q\x1b)aW\xc8\xf9\x8aH\xa8\xae\x9f\x03UG%\
+Q?\xf2\x17\x8d\x1c\xb9f\xdc\x02)\x7f\xd3y\x02\x13\
+\x01\xed%\xae\xc7d\xa7\xee\xfd\xb6\xda;x\xf9qo\
+U\xfd\x8c\x04Y\x88!\xea\x90Qx\x83\x88\x89j\xc9\
+\xc1\x14o\xf8}\xa2\xe45\xfd\x81\x16\xa2Y$x\xcc\
+\x06Rp!\xde\x05\xb3@\x072\x1b| v\xa20\
+\x90H\xa26\x0f0\x10\xe2_\x0bH\x9cB\xb6e\xe3\
+S\xc6\xdf\x1b\x7f\xaf|\xfe\x93\x85~O\xd9\xd8\xdbE\
+K,\xa2\x0d\xad\x1c\xe0\xe3\xab,\xca\xd7\xdf\xb6\xa8\xae\
+\x08\xddW,*5\xc7\xa5\xec~X7\x10\x07Tv\
+P\xe1\xf0G\xa9l\x7f\xae2\x0bH\x1cB\x14\x06j\
+!\x08<H\x10\x1dM+\xb3n\xa8b\x83\x14\xcc\x81\
+x\x9d\xe0Q\x0b\x08\x12P:(\xf8\xfd\xfe\xbc\xc4\x95\
+\xb5\x00\x0d_\xc9\xc1\xec`\xcc\xe2Au\xa4\xc3\xb5\xb4\
+\xebs\xf7\x1d\x97\x97\xea:\x89\xbfC\xc1\x89\x0d\xa4\x0a\
+\xedH\x5cHl\xf0\xbb\xa5\x83\x84\xe6\x01@\x82!\xa6\
+\xcb)a\xdc(Q\xa8,\xed{=!\xe6\xc3N(\
+\xd4|\x80\x00\xeb\x03\xfe7i\x1b0+F\xa1H\x01\
+\xa2\x02\x1b\xcd\x81\xe8\xac\x88r\xe4n\x07;T\x86H\
+$d\x14f\x1c\xfc\xfc]\x12}\x00\xaaa!\x82_\
+\xbc\xb4*B\xa4\x87\x8e\x1d\x14^:TJ\xec\x02\xa9\
+\x05\xf1\xa7\x80\xe5\xfd\x93\xf8\xa2J~\x89l\x94@\xd4\
+\xa1\x98R\xe8A\xdd\xc4v\xef\x17\x121\xba\xbb?\xc0\
+F\xdb\xa8\xb3\xc7\xdf\xa3\x80\xe2\xa0`\xe6U\xbe\xc1\xd1\
+\xc1\xfa\x83D\xe6\x98m\x84\x0aI!\xc1: \xf1\xc4\
+V\x90N-\x09\x96f\xd3B\x9c\x87\x0e)#\x10\xea\
+@\xc5\xfbg]\x000\xf0w(\xec)$\xf8\x0c@\
+\x80F\x06\x08/\x14J\x00#6j\xa8\x8a\x9aqw\
+$y\xe3\x0a\xe4\x84\x0d\xd0!\x16\x89j\x89\xc8\x0b\x09\
+\x03\x85\xf9\xf0u\x93\xf8\xe9@\xc5\xbe2\xd4\xc8)\xa4\
+)4y}t\xa2`4@]\xe5~PH\xf1\xfd\
+\x14\xc0<\xd7\x88\xcd\xa1\xc2\xafB\xa1{\xc8\x22\xb9}\
+<\xa9}\x09\xa6\x08\xd7\x99\xeb\xcb\xef\xa3\xc0`?\x93\
+\xb8\x5c\x88{\x22\x0a)\x91\xbfX\x1f\xac\x07~\x9eQ\
+\x1d\x12*\x9e\x9f\x97\xb5\xee\x05@ z\xe4\xfc\x96\xbe\
+c\xd93+\xd8w(\xe0Y\x0fU\x0b\xc3\xedtB\
+D\x16 \x83\xfb\xc0\xf7\xcf5P\xe3\xd7\xef3\xf3(\
+g\xd2\xc8\xb5 \x00\x01\xf6a\xee\x13\xeb\x1b1\x5c(\
+\xb3\x14\x92\x8cT}L#\x12\x88\xd7q\x9dP\x11g\
+\xe6\xf4\xfd\x12a\xe5\xba\xb3.\x00\x02(\xd0\xb1]|\
+L\xe7\x88f\xfbc4\x8cN1\xb3\xfe\xcc\xd0C\x19\
+f\xa4\x8duJ\x01L\xc7\x9d\x82r0[\x1e\x14h\
+\x98r\x14\x94$`\x5cg\x9eC\x18\x1b\xac\x17\xc4\x0d\
+Q\xed\x17\xe3a\xe8\x17\x1f\xf6\xc3\x02*\x9ci\xf7D\
+jL\xd0\x11\xe5\x9c\x182\xc1\xd0\xd4\x00x\xe6<\xa0\
+\xf0\xe6\xef\xf0\xfc!\xc6\xc4\xf3\xc6~F'l\xa0)\
+\x13\xfe\xdchX@\xc5\xe5\xfdr\x1d\x01@(\xeca\
+\xe8p\x7f\x01\x22\xd1@\x18h~\xc4\xba\x03\xd0\xe0}\
+\xf1\xfd\x14\xae\xfcw\x9e\x87!@\xa8\xf5\x1a\xebA\x85\
+V\x00\x13\x03w\x87r\x86\xf4\x0d\x1e\xfc\xcd\xa5j\xcf\
+\x88T\xbc_\x18\x94\x88\xef\x01P\x88)\xd2.a\x91\
+\xee\xa3iK=]\x01\x85\xb0\xf9\xe3\xfd\x9eiQ\xb5\
+\x18\xbc3\xfb\xa7d[\xf8C\x89\xb4\xfe\xa3}\xbe5\
+f\xe4\x8d\xcd\x0d\xcd\x0d\x15\xb0\x88\x91\xc3O\x08\xe8\xc1\
+\x1el\xce^\x13)\xf2Y\xee#\xfb\x0e\xc0\x14\xd7\x03\
+\x06\xa6\xed\xef\x9b\xaa\xc0:\xbb\xee\xaf\x01\xf00\x82&\
+ >\xfe;\xfb%bo\xb2\xf3\x0b7\x1e\x1b\xa9]\
+31)\xd9\x8fX?\x14\x08jx\xb5\xdf\xb1H\x85\
+\x81\xc4m\xdd\x9d\xa9\xac\xe3\xf6]\x16i4C\x8c\x0c\
+F\x9f&f\xb3\xa8\x05H\xfb/\x8br\xfd\xbeP\xe2\
+\x80J\x91\xc6\xdeq\xbc\xecx\x99\xb1\xed{\xcf\xf5Z\
+\x04<\xf7\xe1\x13\x7fF\xfb\xe3\xd6F\x88g\xb5(\x9f\
+O/a\xb3\xd9_(a\xbf\xefG\xfd\xc8oh\x15\
+!\x06\xae\x82\xa7\xd9\xc7\xa2|\xffT\x16\xca\xfb\xb7P\
+\xa1\xf3\xc5j\xfb\xeb6y\x1f\xab\xa3\xaa\xcdJ\x16\xb5\
+P\x8a\x82U#\xa7\x00F\x883:\xcf\xf6\xb0j\x93\
+\xcb\xc8\x82ky}B\xfb\xc7\xd9\xe9y\xe19\x22\xcf\
+%\x0f\xb3\x8e\xf4)\x89\x81\xacu\xeab|\xc7V\xdb\
+?gP\x9c$m\x88\xb2\x0e\xc6\xaf[\x94?\xf3/\
+\x8b\xf2\xf5\xaa\x16j\x80\x94\x82p\xe2\xa2\x12f{>\
+\xb3E\xb9\xfdM\x89Qe\x0a4_+Q^\xff\xc4\
+-%n\xd6\x88v\xd9\xaf\xde\xfc\x99\x85D\xa9\xdf\x93\
+Da\x8d\xdfye\x1d\xc9l^)a\xae\x1d3\x97\
+(\xf9\xfb\xc4\xfa\x16:\x0fnJ\xaa\xfb\xdc\x8f\xcfZ\
+$-\x08F\xba\xb1'\x06P\xa5p\xbe\xbc\xbb\xc2f\
+\xd3K\xd6\xe6\xef\x17\x863#\x0e!.\x8cf\xd3@\
+\xe3(F\xcb\x94G\xd1\xa8l\x9e\xb3\xa8\x1d\xf7\xf6'\
+\x16\xeew\xff\xff\xd1u&\xf0\xfa\x8e\xd5\xfa\xff\xbd\xcf\
+\xde\xe6\x14\xa1\x84$C\x93d*B4\xa7\x92)\xa5\
+9\xaaSrtL\x91\x06BQ\xa44\xf9'\x84\xca\
+p4\x09\x8d\x12'\x94\xa9S*\x94\x063\x91!\xf3\
+\xfc\xdb\xcf\xfb\xbf\xaf\xfb\xb9\xbe\xeb^\xbf\x87\xb3\xd7\xe7\
+\xf4\x9e\xed\xb7\xf7~\xdf\xe7y\xee{\xddk]\xebZ\
+\xd7\xaa\xcc\xd2~\xd3~\xb3~\xb3\x0aP\x0e\xad\x05f\
+\x9e\xcf|NV\xc5\x03\x8b\x95\xd7\x83dmZ\x09\xf9\
+i\x8cU\x7f\xae,i\x0d\xa1\xf1ff\xeb\xf4\xf3\xb2\
+\x94\xb8\x1b\x00\xe5y\xc1\x5c\x9f\xbeW\xd6\x18`\x93/\
+\xca\x1a\xa0\xc41\x1e\x95{\x9f\xa7\xd3\xb7\xcb\xca\xeb\xd6\
+\xb2T\x18\xa3\xa5\x92\xf8T\xe3\x1f\xdf\xef\xb1\xe5\xafo\
+\xf9%\x85>\x0a\x85\xddkd-n\x98\x9d\x7f\xa9\xac\
+|\xff\x1dY\xeby\xe8\xfe[V^\x17\x93\x95\xd7\x03\
+\x8b}\xaa\xcdI\xad\x07\xf0{\xec\xb0\x9e\xd9(;\x04\
+\xb4\x92\xd8\x93c)o_U\x09\xe3\xc0\xe3@\x06a\
+e\xfc\x0e\x15#\x1c&\x81\x08=\x95V/E%\x11\
+\xd5\xfd\xa0\xdcx\x1cG$\xae\xfc=T\xa3\xbf\x22\xab\
+\x0edPou\xe5\xb8\xff`\xb1\xb2\xa0\xe7n)\xf6\
+\xaf\xf2z\x98\xacQ\xa5I\xf8\xabh\x84\xc4\x0d\x9fS\
+\xec\xd9\x09I\xb28Vw@\xb1\xfd\xdb\xc1V\x0f\xc6\
+uS\xaf\x96{\xcf\x02!\x07\x10P`\xb8p\x13\x99\
+\x09\x0a\x8e\xdf\x17D'\xe6\xd3\x9b\x1a^\xc7\xc2\x5c\xe1\
+\x80\xf6/\x06\x1avI\xe3j\xa0\x80\xbd\xba\x92\xde4\
+\xdec\xbeD[b\x9c\x1c*\x95,(\x02F\x0a\xef\
+f\x80DO\x93\xd2\xe1\x8b} \xf6\xa6p\x1f\xdfD\
+T\xf8;Q!U:\xf1\xc2t`\xa2\xa6O\x80\x0c\
+\xd0A\xc5\x95\x00V\x84\xa575@\xa5\x12s\xfeb\
+\xc7\xb0QJ\x10\xec\xa0\x22@Z\xc7sa\xf9|P\
+\x16=\xce\xa3\x1e0\xff6e\xf1}\xa92\x04 \x00\
+\xd0\x00\x15T\xe2\x8d\x1b&\xb1,O\x83\x08\xe0J\xc7\
+\xc0\xf3R\xa5h<\x0e\x90\xbfO\x80\xc8\xd8%\xe6\x85\
+\x22vI/>\x22U\x00\x02T\xc8\xe9\xa5\xa2\x87\x8b\
+uM`B`\xcc\xbe3U,TsW\x1f*\xd2\
+\x22\xb0Uj\x96\xd6\xcd\xe5\xa9g\xd8s\x96\xa7\xff\xcf\
+ckp\x1cN\xbc&\x1f\x1b\x00!\x0d\x0b\xab\xe3\xc2\
+\xf8\xfb8 \xa8\xa9\xe3y\xcc\xf4\xee\xa3\x16\x0d\x83\xc0\
+\xa2D\x91p\x8f\xc6\xa5\x05\xa0\x82\x98\x9fZ\x8b\xbe\xd5\
+\x10\xd9\xa0\xfe2\xae\xd4SH\xe2\xef\x92\x98\xce\x8b\x1e\
+\xf9\x05+\xd1\x06\xaa\xa2\xd2\x87\xda<\x15%(U\xa8\
+\xe5\xf3\xea@\xad\x7f\xb8\x7f\xa8/\xcf\x7f\xbaa\xb1\x0d\
+\xda\x18L\x00\xa0\x1ah-\x9f\x12n\x1f\x84\x8c\xf5)\
+\xabf\xd0\x1c\xb8V\xdc\x9f\x0aD\x0c\x89*\x81\x04\x95\
+\x7f\x90_z\x87\xa9\x14C\x99\xa6\xf2\x8d:4\xaa\xbe\
+\xf4\xac\xe1ga\x948q\x0eJ$_\x04\xf2T\x96\
+npe\x9a\x9e;\x00O\x80\x8a\xdb\x0c|\xcd\xf7\xfa\
+\xfb?\xd4\xd3C,\x0c\x80a\x5cy$a\x19'\xb0\
+|\xf1\xb9\x09t\xd9w0$\x16\x1f\xae;\xa8\xfb\x8c\
+M\x85\xca\x87\x96\x00\x0c\x0b\xee+\x89.\x89<\xa2<\
+s\x0e\xb0Q\xeb\xe7\xf3\x00\x98\xf9\xefDE\x1b\xaa9\
+\xfb\x88\xc0\x10\xc0\x9c\x84\x12\x00\x81J\x0b\xcf\x0d\x00\x8a\
+\xe7~\x8b\xfd \xfbz\xac\xfd\x00p~\x8d\x81\x80\x11\
+\xa3*\xee#\xad\x08w\x9a\xd2\x89J\xbf\xb5b\x82\xda\
+\xefJJ\xb4\x0c\x01\x18A\x8d\x06\x90c\x9fr\x1d|\
+.\xf6\x05\xfe\x8dV\x0f\xc4\x07I\xc4\xb9/\x9c\xf7\x00\
+\x14<\x17*Y\x88\xe71\x06\x15\xbfG\xcb\x03\xaa\xe6\
+\x1a\xd3{VJ09_x?\x12_\xee\x0f@\x0c\
+\x89\x99\xb5\x08\x18\x9b\xc6:\x08\xbf\xcb\xef\xe3\xc7\xa8@\
+\x03\xd8\xc0\x8c\xf8D\xb5\xf6{T~\x9c\xa0\x85\x16\x0b\
+@>\x00\xc8\xf8\x95iH\x00D\x5c7\x00\x00\xe7\x08\
+\xf7\x91\xf5\x02\xb3\x88\xeb\xc3\xef\xf1\xbc\xc6S\x0b\xb8\xcf\
+T\xf2G\x9a\x15Am\x85\x99\xc2\xf5\xb3N\x01\x0aF\
+\xe3s\xa1\x96\xc7T\x1d\x8b=O\x9f.K\xf1\x84\x13\
+\x22\xa6!\x05\x03\xd1\xbd\xc8\x04\xd6TB97f\x0e\
+\x96%j=\xe7 \xd3\x03,f\x1b\x01\xb5\x03\xf2r\
+\xea\x0dL\x0b\x8b\x14\xf6\x7f\x93\x15?\xfcfY\x9af\
+\xc0\xba=|\xf2\x85\xba?X\xdf\xe3i\x1f\xf8\x8f+\
+\xab\xfci\xeb1\xd6*<>\x8ds\xb4\xfa{\xc4\x11\
+*\xbc\xfc4\xb5\xdc\xc1\x9c\xa0@\xa5\xb8R\xff\xfd\xf6\
+bw\xa4\x02\x96\x98\x11W\xa58\x8c8\x81)L\xd6\
+X\xe9?%\xab\x89V\x15\x01\xebw\x95\xa5\x16\x0a\xb7\
+\x18E+\x81\xb5\x00\xaa\xc6\xd5Ui\x0c\xb6\x19\x1au\
+\x0a\xd8\x8a\x89\xca,-\xafr\x8e\xcd]]\xec\x9a\x14\
+\x8f\xd1C\x0d0v\xae5\x01\x983\xce\x18\xf1\xfde\
+N\xacUi]X\xd6\xc6\xe51\x1d*\x80sW\xbe\
+\xfb\x9f\xcb\x5c \xbc\xda\xda@G'@\x91\x0a\xad\x99\
+!\x95\xb1;m\x09\x14\xe7Bh\xfd\x18\x80\xef\xd6\x93\
+%&\xe8\xa6\xc56k\xaa\xfe\xc1\xac\x15\xdc\xb9\xaa\xc7\
+s\xee\xe78\xf5\x16\x03\x05{\xa5)B:\x1dR\xab\
+\x5c\xfd\xfd5[\xe1\xa8N\x91\xf8T\x13\xfdc\x0a\xc6\
+\xfc\xbf\x14\xfbs\xb9\xaf\x07\xca\xca\xf7\xef.\xb6\x83\xef\
+\xf3\xd5m\xaa\x03\xc0\x05\xda*5/\xd9\xa7\x1c\xef\xb7\
+\x14\x93\xf6\xc1\x8fd\xadu\xa9\xfft\xb1\x92\xd0\xce?\
+AV\xbe\xdflH\x84+\x93\xe3!\xc7\x95\xe5\xfc\x98\
+9\xa1\xd8\x89\xa9\xb2\x7fK\xb1rnt{\xc8\x1a\x95\
+\x9cu\xdd\xed +\xbf\xb7\xa2\xac\xf5\xc0S \x0d\xf1\
+B\xa6A\xc1LR\xc1s-3E\x8fI\x80\x19\xe2\
+\xe5\x12\xbf|gJp\x01\xba`\xf0\xa2\x89\xe68\xa3\
+\x02\x1e\x9fjZ(\xfd\xd1\xb2\xf2\xfd\xf2\xb2Z\xc8}\
+V\xbfF\xa5\xbaW\xb1?\x00\xean[Y\xd3\x14\x98\
+<8y`\xf2@J\xe4\x9d\xffNO\x94\xa5\xf5\xef\
+1\xe90\xce\x82b\x8f\x86\x1a\x1ah\x14\xfa\x0c\xec\xb1\
+\x9e\x83\x89a\xb1S\x0a!\xd1\x0a\xe4\xd6S\xf6\xf1\xe4\
+FY\xd3&B|74\xa8\x18\xcf\x8b\x18;\xf1\xde\
+\xbe\xd5b\xdcy\x9c\xefh\x86\x90g1m\xc2\x80\xd6\
+\xec#\xbf\x95\xb5\x1b?\xb3\x8a\xac\xdc\xb0\x97\x14S \
+p\xcd\xe4\x9a\xba\x015\xceNcF\xbeQ\xec\xd8\xd4\
+\x13h\xa4qr\x99l\x01\x11\xbc\xe1\x00\xa4\xe2I\x82\
+\x89\xaa\xae\xa9\xc1\x88: \xf2\x12\x14\x0c\x02?\x02-\
+(\x84\x88:y\x8cF\xad\x7f\x7f%\xa9TSi3\
+\xe5tz\x86\xac\xa9\x22B\x81\xaaj\xa4\xe5\x01\xccm\
+Zl\xb3D1r\x05\xb0{\xa8\xd8\x83m|au\
+\xec[&\xb1(S\xecA\xec+\x02\xb9\x87\xb5\x14.\
+u \xf9{\x07,\xbfp\xaf\xf5\xe7\x1c\xd0\xbc\xe3\xb1\
+\x01P\xd5\x18\xd8%\xf5*\xb9\x07\x88D9\xc6o\xf9\
+\xba\x22\x11\x82\x8aL\xa0\xa2\xf0\xf3\x19\xee\xa9\x7f^\x0a\
+\x10\x10\x7fB[\xe0Eu\xc0\xc6\xb0A\x96M\x22Y\
+\x04:8 Z\x09\x08\x0cT/\xff|\xa2\x980\xd6\
+\xac\xab\xfa\xbd\x0d\xc1\xa3RB@\xc2\x5c\xd5;kh\
+:\x042\xf7\xa4\x80\x9e\x05\xeaV\x94Z\x07\xde\xd0\x14\
+\xc3\xe3R\x05{^u\x06C\xa2\xf6\xb24\x06\x11\xf1\
+5\xee\x03\xea\xf1\x1e#\xd8\xbd\xa5\xd8\xf6\xe9\x00C\xb4\
+\xc5\x89N \xebT~\x00XV\xa8\x13\xb9[\xaf\x9c\
+\xe0\xa3}\xd2\x18\x10\x07*\x04\x14\x81,C\xcd\xe1\xfa\
+\xa9\xfc\xf1<H\xa8\x08,\xa88\x90pp\xbd0\x02\
+H\xb4\xc6c\x9b\xf8\x9e\x83\x91\x00\x86@\xd1\xc0\x1bL\
+\x98\xa8p\x8d\xc5\xcc\x00\xc6\xa8\xe4\xb9\xd2\x1f\x0e\xe7[\
+C\x00\x17\x81+\x95\x1c~\x9f\xcf\x01\xf5t4\x9e.\
+Z\x0c\xd0z\x00x\x81j\xca\xba!A\x84Z\x86\xd8\
+\x14\xff\xbe\x93\x03\x0e\x023\x9e\x1b_|\xcf\xf8\xb7I\
+P\x9e\x87\xcfI \x0b \x83\xd8\x14\xe35\x09\xe0\xb8\
+\x9e\x03<\xb7\xd5j\xdf\xb4&\xd5\xf4\xf2\xb7\x0e\x08\xf6\
+l\x22\x8d\x04\xfc\xfd\xcbei\xbey\x8dP\x1a\xe3'\
+\xe6\xe3:a\xd21Y\x13.*\xd0$L0/\x1a\
+%~h%\xe0\xf9\xb6qw\xc3\xfd\x86\x91\xc3\xdf\xa1\
+rE\xa2\xcaz\xe4\xa0\xc5\xff\x5c<\xb4\xc4DE\xfa\
+v\x03\x18\xcb9Q\x18S\xcdy%\xa1%Q\x19\xab\
+\xe4\x03\xfc\xd0\xdaa\xa6O$\xac\xe3\xe7F\xe2\x8f_\
+\xe3\xf9\xb1?\x00\x10\xa9dz\x1dQ\x09\x0cF\x01=\
+\xae\x8c\xbf!\xd1A\xbc\x12?\xce:\xc4?R\x01\xa4\
+\xe2\xcd\xf5\xf1\xf9\xd0\xfa\xa0\xb2\x04\xc0\xc5\xbee?p\
+\xdf\xc7S\x02x\xe5\xf3\xf3\x5c\xa1\xb8\xf3\xfcF\xfb7\
+\xe6\x88\xd3\xaa\x04\xf3\x81D\x85\xe7\xf1D\xaf\xef\xd5\xbd\
+\x8f\x00D\xae\xf0\xdf\xe7}\xf8\xa2B\x8c_\xe2\x8bJ\
+\x0e\x8c\x1f\x9e/\x15J\x03n1\xa5\x04?\x86\x7f@\
+e\x1aus\xfc\x13\xeb\x94\xc4\xd4\x00d\xa85\x93\xe8\
+\x22\x86g5\xf78\xdf\xe9\x85&\x81\xe7\xf9\x91\x90\xa0\
+]\x84\x08\x1f\x15~\xee\xf7HT/\x98\x5c\xacW\x18\
+A\xa3\xeb\x86\xea\x19q\x08\x89:\xf1\x06\x01\xe0\xb8\xd7\
+\x1e\x86#\x09\x99\xc7\xfc\xc5\x94\x0c\x9e\xef\xb8\xd5f\xec\
+\x1fI\xf8\xa1\xa4\x8f5^Xo$\xee<'O;\
+\x89\xf5\x0f\xb0\x0c\x00\x00P\xc0:\x1a\x7f\x1e\xde\x17&\
+\xc8\xa6\x9e\x86\xb0\xd4@\xa9\x0f\xe6\x00j\xed\xa6\xc6W\
+\xaa\xf5[[\x0fph0I\x9b\xe9\x93M\xbc\x91\xf1\
+~\x04\xde\x04\xce\x00\x010\x1d\x03x\xe1|3p\x10\
+~\xd2\x81nT\x92\x11\xa1\xa5\x80\xe1\xca#ZN\xfd\
+F\xfd\xc6\xbd\xa6\x0c\xbcM\xd6T\xb2KX}Q\x0d\
+\xac\xa9\xf8\xa2=A\xaf\xefs\xcb)\xf1\xdc\xd6\x8a\x8a\
+(X]\x9f\x7fm\x9a2q\xdf\x10\xdf\xb5\x06D\x00\
+B\xac;\xcey\xad61_>[\xec\x10\xbf\xef\x99\
+\x09(\xd0X\xbe/\xa4\xb1^\xee\xb9\xa7\xd7\xb9&~\
+\x9f\xaeS\x0b\xea\xfc\xef\xc9\xf5\x83\xc6Tq\xb2\x93\xe9\
+$M\x9b\xb0\xb6\x0a\x09\x5c\xb4\x06B\x116\xf5\x9aq\
+i1\xb6\x98x\xce\x9f3\xa6\x11Yki\xb2\xa8\x06\
+G\x97\xfbyn\xf7\xab\xeeW\xc9\xff~\xb3\xd8\xf1)\
+.\xb3\xd8ue \xec\xdf\xa6EE<\xcb~3P\
+\x15\xe7\xa3\x18\x12\xa7\xb7qu\xd3\xe3\xa6\xc7j|u\
+\xff3Y\x15o\xfc\x8a\xc4\x1bc\xce\xbb\x00z\xc5\x8f\
+\x0f\x0c\x89^\xb7\x8c\xcc-\xb4?HZ\x06\x12#\xfc\
+\x84E\x02\xcb\xcf\xeb\xd3\xeb\xf3#\xe6\x16s\xd5\x1f\x90\
+9\x81;+M=\x90&\xc5\xc9\x09\xf0\x81\x0aN\x02\
+\x89\xa6\x82\xc5\xd4\xfb#\x8b}\xad2U\xea\xe7W\x83\
+\xc2\x9c\x80\x9bo\x0e\x8c\x89\xb9]\x8bi\xdd\xdf#K\
+\x05Ck\x13\xcc]Z\xec\x0f\xe5\xf57\xb2&\x96J\
+K.\xd4\xf4\xfe\x1d\xb2\xf2sw\xca\x9ch\xbe\xd1\x9a\
+W\xdfM\xd3}\x0c\x0c\xa1M4\xf9\x9c\xcc\xd4\xfd\xd7\
+Z[\xac\xc4s\xb3[\xc8Z+Z\xbf\xb8\xac\xb8\x85\
+\x0dd)\xd1\xf4\xf9\x17\xbd\xffJ\xacOI\xe2\xce\x8c\
+\xbb\x84A\x05\xf3\x17?\xa0}\xb6S\x12uW\x99\xec\
+\xc7I\xcc\xf1v\x99[8\x0eOS\x15\xdc\x82[\xbc\
+\xcf&u*\xc2>\x83&G\xb7\xae\xac]\xe7\xf4\x0b\
+Co\xfe\xe4\x0f\x93K\x95\xa7u{u\x1f\xe8\xca\xbe\
+\x9e\xae,k-\xb4L\x85\xc3\x8f\xd6\xd6\x90g\xa6\xf1\
+\x8e\xa7\x95}wZm-\xbf\xb1j\x04\xc0\xcc\x02\x10\
+wkPh'8\x8e\xee\xd7\x955`l\xfa9Y\
+*Dy\xba\x5c\xf9\x9c\xc5j+\x85\xac\x15v\xfd\xf3\
+\xd3\x83d\xa9P\xc6\x14\x0b\x12|\x17\xd2CS\x04\x86\
+\x94\x99\x08\x00\xd6\xb3,@\x0e\x0az\x0c\xe7>%3\
+\xd5V\x88\xe1\x96\xdd\x965\xf1tb\xc4\xc6D\xbdu\
+r\x8e,\x05x8:/\x8c\xe9\xaa\xb2F\x95\x0b\xaa\
+5\x07\x0bTG\x1f\xa8!\xd2D\xc5\x80\x83\x89y\xeb\
+\xa26\xfc+\xa9\xfe\xd2\x82@\xe5\x89\x0a$\x08\xa7\x03\
+\xf0~1Yy\xddZV^\x9f(KcM^Y\
+\xec\x15I\x15\xfbO\xb2\xf2s\xc7\xcaRbwN\xd5\
+\x93\x1e*\x17\xefi\xa2d\xd5a\x96\xef\xbb\xbf\xc8\xca\
+\xf7?\x95\xb5\x0az\xf7\x02Y\x13)\x8cJ\x9f\xe6R\
+.\x9f(\x83\xcc\x99U\xfaq@j18W\xe6\x8a\
+\xf4\xc7Gsx\x7f\x91zO\xe8Q\xa7\xf7\xcc\xd7Q\
+\x91\xf6\xed\x13\xd5roY\x13m\xac\x14\x1b\x89s|\
+\xb2Zk5p@C\x85T\x04ZQsB[@\
+\xe1B\x0e@\x00jX\xa0\xaaPj\x03\xdeQ\xecv\
+'\x0a\x8b\xa6\x84\x0c\x86\x00\x89\x9f\x16\xf4\xc9\xed\xf3\xd5\
+\xe3xek\x13\x9c\xd4\xa81\x11\x08x\xfa\x03=m\
+q\x80\xd2\x1bz|\xb1o\x96\xef7\x94=N\xc0\xca\
+\x98\xc4\x85j\xcd2\x02\xd5\xa0b\x9b\x22\x16cD8\
+\x00\xe8\xe1\xe1@\x87bl\xb1\x8e\xda\xf3\xf3\x86\x14\xc0\
+#\x0e\xe2@,z\xfb]Q\xa3\xb209S\x96*\
+-\xd6&\x08\x87\x0fPFB\x08c\x06Q0\xa8\xb9\
+T\xc2\x08\xf4\xc7j\xf3P\x94\xa9\xc0]\xe9q\x96\xfb\
+\x0e\x81\xc4\xbc\xdd,\xb6g\xf5\xf4\xe9e\xd3\xcb5\x0e\
+4\x0e\xecqk\x01\x89\x0b\x89\x0d\xeb\xe6\x1a\x8f\x17\xa4\
+\x07w\x91\x91\x0a>\xbd\xd5\x88\xa6\xb9R\x1e\x09\x16\x81\
+7\x89?\xaf\x04\x84\x5c'\xea\xfa$bp}Hx\
+\xf17#Q\xb2\xe8\x89t\xe2@`E\x8bM\xffR\
+\x99\xd7\xcb\xed\x0ex?\x96\x12\x1b\xf6\x8bD\xb2\xa4\x85\
+\xf2\x97a\xac\x11~k\x81\x16\x01\x05\x1c\xa7\xc9\x9a\xf8\
+T\x09C\xdf\xda\xbd5\x8d\xcd\x82*\x8d\xdf\xf3\xf3\xab\
+\xfb\xe7\x8e\x94\xe8\x22Nh5\xfd\xb8\xffT\xf4H\xa4\
+Hx\x01\xf2X\xaf\x04r\xbe/\x04H\x93\xe7\x98\x0a\
+\x0c\xa5\x9e}:V\xbdG\x83\x04\xa6\xd6\xd2V\x1b\x7f\
+\xdb\x88\xba\xcd\xf3\xe6\xfe;\xb1'\x90e*@\x00\x00\
+$\xdc$60k\xeeu\x02\xb4\x9a\x9f[S\xd1\x1e\
+\xc6\xf6\xc0\x5ca>;\x00\x02@2\xc0\x15\xd7O+\
+\x8c_\xa9\xd8E\xe2D\xe2HO?c\xcfhY\x03\
+\xf0\xa2\xe5\x8d\xc4\x93J:\xe3\x1c\x19\x17\xb7\xae\x03\x5c\
+(\xee\x00|\x00\x03k\x8c\xae\x0b\xff\x04\xc5\x1c@\x89\
+\xd6\x18\x127\xee/L\x11\xae\xdfL\x0d\x02\x9ar\xba\
+\x0f-`\xb4\xcc\xb1\x8e\xa8$\xe0'\xd8\xbfP\xd3\xe9\
+y\xa6\x02\xcc\x983\x004\x00\x1bZ\xc1\xb8\xbf\xf8\x05\
+\xc6\x9b!\xce\x87\x96\x88\x03\xa5\x9a\xf8|\xf6qz\xf8\
+Q\x81flR\x88\x0c\xf9\x8bs\x8c\xe9\x05\xacG*\
+\xa5\x8c\xef\xc3\xefs\x9f\xc7\xaa\xcb\xac/\xd6+\x00!\
+\x9f\x93\x0a\xbf\x81\x5c\xce\xf9\x10\xff\x05\x90\x00H@T\
+\xcb\xa2u\x8f\xf9\xe2\xf9\x8e+\xed\xe3\x9e}\xfc\x22\x00\
+*@\x02Z/\xa3i%\xf1s\x00\x09$\xfc\xdc\xd7\
+1\xc3\x81W\xde\x17\xff\x01\xb3\x0b\x7f\x0dS\xf3\x9f\xd6\
+\xca@t\x998\xc5@\x87\x1a\xcf\x94\xa8E\xc2\x89\xe8\
+\xd4\x05n\xb9\xa1\xb5\x93u\xe3\xf8\x0cjtL\x8b\x80\
+\x19\x00u\x96\x0a\x9d\xc5\xbb\x1e\xd3\xaaxl\xb5\x88\xe3\
+\x02 \xdb\xdf\x00.\x80\xe8\x98)\x03\xc3\x8f\x7f\xd7\xac\
+\xa4K\x1a#&(\xd4\xdf\x99~\xb72d\x7f3\xef\
+\x82z\xee\x02\x04\x1e809#\xf1\xe3\xf9\xa3Qc\
+\xd1\xc4\x10\x7f\x84\xf9h`\x8e\xc2Q\x95&\xdc\xdc\xeb\
+ys\x17.\xbe\x9aZ[h!\xf0z\x9a\xfeD\xd6\
+\xa8\xe0\x95b\x7f|\xeb\xcd\xeev\xec\xde\xd3\xbd\xa7&\
+F\xb5\xa2\x1d@\x9c\xfdI\xff\xdf\xb2\xb4\xcf\x01\x9c`\
+Hy\xfa@-\xf8\x1c\xde>\x17\xbd\xca\x93\xb3e\xb5\
+\x95b\xa0\xe2\xab\x02[\xd6]\x7f\xa6,1\x0a^&\
+K\x15T(\xd10\xaf\x96\xac\x03\xffb\x0a\x03\xe7h\
+\x00q\xbe\x9e\xb9\xabd\xad\xd2=YD\x90C9N\
+\xf6\x92%M\x09\x8f\xb3\x8b\x8a\xb2\x99x\x93\xff\x19\xf2\
+\x93\x997\xc8\xca\xe7\xfc\xba\xcc\x80\xdc\xbd\x1e\xb7wv\
+[\xd7\xfdY2'l\xeb\x19 xa\x12\x93\xddL\
+\xd6\xc6MS\xa1g\x0aB\x8d\xe3N\xb0\xc6\xc1\xeai\
+|\xa8\xcaeG\x94\xff\xfe\xd3b%!\x9c;\xba\xd8\
+1\xfe\x9c\xe5\xbc\x9e\xfb\x8e\xac\xfc\xfb)\xb26\x06\x93\
+\x04y\xee3\xb2\xd6\xd21s\xb6\xac\x01\x0c\xf3\x8e\xae\
+60\x17\xca}\x9c\xdbW\xd6(\xf2\x93\x13eil\
+\xa5\xef\xd7\xccke\x16\x07\xbc\xb9\x8d\x1d\x9c\xdd\xa3\xd8\
+\x9e\xe5\x18\xb9FV\xfe\xfb\xbe23\x08NHc\xc0\
+\xad\xfd\x83\xb6[\xec\xdb\xf5d\xe9\xf9\xc0\x0c\xa7\xf0\x8b\
+\xa8\xe8\xf9\xb2$6\xcc\xb9\xef\xf5\xd9\xdfY\xac\xf8\xd3\
+\xb9\xf7\x17\xfb\x0f\xc7\xd7j\xb18Q\xd6\x80^\xcdj\
+\xab\x8c\x0f\xaf\xe3\xee\x9cr\xff\xceI\xe2\xa1\x1f\x92%\
+f\x0e\xf1\x9b\xcf\x85\xe9\x7f\xbb\xd5\xc5yX\xf4\xdc#\
+\xe6\xfc\xe3\x81\xb9;]\xbf\x5c\xd7\xfa\xb5\x05\xf4[\xb5\
+\x85\xd6~5\xb4i(p\x9b\x91\x82\xb6\xde\xdcF\xb2\
+\x96\xc7\xf5\xd7\xcb\xd2\xb4\x10\x0ad0i6\x97\x95\xd7\
+w\xcb<\xa5c\xe9\xd4\xaaJ\x8b\xee\x989F\x5c@\
+\xa1\xde\xe7\x14Lx\x80\xc0\xd9\xa8\xd0\x10\x08\xe8\xb6/\
+\xdaD\xe0B\x1d[\x04\xd8/\xa7\x8a)cx\x8c\xe8\
+F \xc4\x07B\xd5\xdfT8\x10\xb4Z_9\xa3\xa9\
+/3\xa7\x92\x84\x11\x04\x98\xf7\xef6\xe86\xec6L\
+\x0e\xd0\xd4\x0b\x1c~\xa8)\x82\xb4\xd3\xebG\xe0\xe2\x83\
+\xb9\xaa\x8f\xbe\xdd\x14\xfbK=\xaf\xb1\xdc\xf0\xc9\xef\x8a\
+\x95\xc0\xaa\xdb\xbf\x98\x02\xf8\xff\x92\xb5\x83-\xe6\xb6\x1b\
+\x88\x80\xe2\x16\xe2`\x04\x0a\x88\xa90F\x0dU`\x07\
+z\x95\x02\xa4\x04^\x80lodi5\x07N\x7ft\
+\x00\xf2P\xea%BD\xc9*\xed\x93\x0b\x8a\xfd\xa6\xf5\
+\x06E%\xc0\x09\x09\xad\x00\xf5\x0b\xfd\x18:\x00\x00 \
+\x00IDAT\x98_\xa5\x8d\x1d\x99\xeeT\xec\x83N\
+\xc0\xaen\x01g\xfd\xbb\x9f\xf7X\xb8S,N\xb4\x86\
+\x1d\xcd\x0f\x9d\xe0\x1d\x96\x90:*\xe7\xcc\x11V\x05\xec\
+\xa3\xa6B\xed\x96TSu,\xae\x98z\xe4\xe8i\x14\
+As\x97\xa4\xb2\x0a@\xa4\x9f\x7fz\x1b\x1fY\xd7\xc7\
+\x8fSb\xe2y\xac\xa8\x1a\xd7\xe7\x91\x03{\x02\x1d\x10\
+f_wP\xc48\xf0\x01D\xc6=}\xe3\xb1}|\
+\x91x\x11`q@B\xfd'\x91\xf1\x01\x16\x07\xbb\x08\
+\x8a\xa7$Q1\x01\x04\x1fJ\x08:b\x98\xbe/8\
+\xeaP\x01\xf6\x81\x1a\x01?\x0c_\x07PPb\x99\xf7\
+\x19\x07\x10j\xfe0r<\xe7\xb4\xdc\x8b\x81\x22\x0b\x85\
+\x97\x8a\xd2\xb8\xb2I\xa5\x19Q\xc2\xa3\x07\xc4\x16\xa4\xb1\
+\x1cw\xc3x\x11\xee\xa7\x11\xfe\x10=d\xba\x07\x15i\
+\x12s\x1c,\xcf\x87\xfb:f0\x10x\xaf\xe4\xca\xe0\
+:\xbe\xdf\x88\x021_z\xf4\x9c&c`\xc3\xe2/\
+\x15\xceY(Q\xd5\xb9N>?\x80\x00=\xe5$P\
+$B\xbc\x0f\xc8\xfe\x9e\xb2\xe4\xa8\xd5\x00\xb1Mb8\
+\xa0b\x8b\xb8'\xaa\xd0\xbe/1\xc5\xe4\xca\x0a\xb1\xcc\
+\x9b>KV>\xc6?d\x0d\xd0\xea>&k\x95\xac\
+r\x5c\xd6\xf1\xaaQ\x81\x05`\xf2\xd8\x9dHP\xb8\x9f\
+0\xa7x\x85\xc9\x81\xba9\x01\xbe\xf7_\x88\xd2P\x99\
+\xa5w\xef\xb8\xe9\xf1\xb5rC\xa2O\xe2\x04\xc5\x1f\x11\
+4*l$0$\xcc\xf8a>/-([\x89K\
+\x96\x18a$J?\x1a\xa8n\xf1\x1c\x00h\xd8\xa7\x1c\
+lO\xb0\xe8\xe6\xfa\xd6N\xe1kf\xd43=\x9e\xeb\
+\xce\x7f\xa7\xf2L\x85\x16?\x01\xf5\xdf\x15\xf8\x08P\x01\
+T\xe9A\x06\xf83\x90W\xc5\xab\xbe\x99\x18T\xf8#\
+\xee\x17\xeb\xb3it\x0c\x15\xd7\xa7;\xf1\x22!\xc3\xdf\
+\xc1\xd4\xe0yp\xce\x90P\xf3<\xf0[c\xa6\xc1\x22\
+#qF\xc612\x86\xc8@T\x883\xb9\x12\x15\xad\
+6\x00=\xfc\x1ec0\x0d \xc74\x07\xee#\xfb\x8a\
+\xe7\xce}\xa7\xf2\xee\xcf\x11\xd3/<\xe5$Z\xe3\xe8\
+\xfdd*\x08\xd7\x0f\x10\x8c\x96\x8a\xc7!E\x82\xcb\xb9\
+D\xa5\x96\xfb\x87\xc6\x81\xd7}h)\x00\xc0\xd0\xcb\x0e\
+p\xe0\xf1\xc5\xf1\xfb\x8b\x8c\x00D\xae\x93\x16-\xce3\
+Wf\x02X\xa0\xf2\xc3:\xc3\x7f\x10\x88\x8d\xd7!\xcf\
+\x0b\xe0\x96\xf7\x1d1u\x10\x15\x8d\xfd\x0f\x83\x85V\x94\
+\xf1\xdf\x85a9\x16/d\xfdQ\xf1G\xdc\x0fjx\
+n\xd5{Bb\xc4\xc0\xa4\xf3\xf8\xd8\xc9\x8fd\xad\xd5\
+\xb1\xaa\x8d?\xaf\x01\xde\xc4\x8b\x00\x07\x01\xccx_\xd1\
+\xea\x10Tk\x18\x04P\x88a\x10Hd\xf9\x95\xed9\
+\x91H\xf6o\xea\xb7\xeb\xb7s\xcb\xe5\x01\xa9B\xec\xf9\
+\xe5\x00c1\xa5\x00\xe6\x00@\x92\xe3\xd2\xc9k\xed7\
+\x11=6\xd0;\xdd\xc0\xad]k\x0f-\x85\x11\xbf\xee\
+:\xddm\xbak\x02F\x008\xe8\xe9\xb56MM\x18\
+\x0emT{*z\x88\xe4q\xbe\x87\xff\xf4\x14\xa2\x10\
+C;\xbeZ0H\xa3'\x18\xbf\xedx\x93\xcaw$\
+*\xeb\xc8\xca}\xf9\x89\xac\xae\x8b\xe1|\xbb\xde\xadm\
+N\x1c(\xc4!\x8e\xd8\x9f*K\xeb\x0f\x86\x15\x05\xa6\
+\xd1xP\xe2\xc6\xda\xf3\xfcj\x17\xda\xce\xf4}\xfa{\
+\x8b\x7fk\xa5\xf2\xb0\xd6*C\x81+Z\x16(\x08 \
+>\x0d\x13U\xd1\xc1\xfdml\xdc\xdc\x89\xb2T\xb0q\
+\x82\x88V\x91V\x83\xd6C0E\x10#'\xe1\x06\xd0\
+\x00\xe83\x80\xd1\xad\x22k\x15o\xd6}L\x1f\x83\xe2\
+\xaf\xdd\xbf\x82\x13\xb0w\xb5\x16\xdc\x0a+\xbe\xb4\x15B\
+\xfa\x17\xc8\xca\xeby\xc5\xceoS1\xa6k\xca\xdas\
+\x85r\xdf\x1f&+\xd7w\xa6\xac\x01\x97\xfd{d\xe5\
+\xbf\x9f,+\xbf\xffAYc\x00\x07\xf0\xeb\x04\xb0_\
+J\xd6\xc6\xed\xf1\xfcx\xde\xfd3e\x89!\xe7\xfc\x06\
+\x80;\xc4\x1d\xcf\x915\xc0kf\xefb{\x95\xfb\xb4\
+b\xb1\x15\xd2\xf5\x98\x92^\xc7\xa6\x97\xf3{fSY\
+\x13\xd3\xec\xdf%+\xaf\xdf.\xf6-\xe7K\xe5\xdc\xe9\
+>'\xab\xad\xd1US\x85u\xcb44\x18\x02\x93\xef\
+\xc9Z\xc2==X\xd6\xe2\x0c\x12\xf2\x99[\x8a\xddl\
+\xbfqQ\x12\xe3\xf4X\xda\xdar\xfd\x9f1#LZ\
+\x18\xcbT-\x8ce\xfae\xfbe\xeb\x98\xbf\x9a\x00\x87\
+\x9fC<\x98\xef\x7fi\xa6\xcd\x16\xb2\xf2z\xf9P\xf8\
+*9\xe6\xa0\x81d\x86\x11\x8c\x80\x00\x94\xcc<\xe9_\
+$+\xcf\xf1xYe\xca\x0d\x85;\x8b\xef\x92/v\
+\xaf\x93\x95\xd7\x8f\xc8R\xa1g]Y\xf9;o\x90\xa5\
+i\x06\xb4v\x03 \x1b\xe0dj\x03b\xb3\xd1:\x8e\
+v\x81\xa7<\xd1*\xc1\x98\xc8\xd9\x99cd\xa97I\
+\xbd\xa0\xafk\xbd\xbeQ\xd9'\xb1t\xe2\x1e\x81\x08\xd4\
+f\xc4^@\xde\xe8\x8d6\x82\x13H\xe8\xae2\xff\xf7\
+\x07SO\x04\x14D\x85\xad\x7f3\x02\xbejM|\xaa\
+\x08D\xf4\x08\xffg\x1d\xa8\xd5\x0eV\xa8'\xa8p\xd2\
+\xe3\xea\x84\xad\xdf\xbeX9 \xe6\x16\x97\x95\xefg\x8b\
+\xcd$q\x04(0 \xaeT\xec\x9d\xc0\xd7V\x80\x87\
+\x9c\x80]\x98\x0ezS\xe9k\xaf\xe4\xf3\xeb8\x8a\xbf\
+j\x83B\x8d\x8cq2\xa8\xb5\xaa\x92\xfd\x11\x03\x1b\xff\
+\x9d\x0e\xe2\x8b\xab\x1eu\xa3\xe6\xaa\x03R\x94\xeb\x93\x8a\
+\x89qq\x9e\xac\x01 \xa1Z\x0a\x85\x9e\x00\x5ca\xf6\
+\x15)\x90yR\x9d,\x1d\x1a\x0d\xf5\xa0|\x93\x1d\xcd\
+V\xe9\xf3\xeb\xef\x9f\xeb\xc4\xfc\xd3\xe9 \x82JB\xe2\
+\xfb\x8djA\x89\x078\xa8a\xdb\xb1\x0e\xd0>\xe7\x03\
+\xf1\xa4$N\x84\x88\x93\x13\xc0Z!{UC\x98+\
+\x95\xfe\x07\x0e\x84\xd6w\x82\xfa\x5cW~?\xd3z\x80\
+\x18[REm\x96N\xd3'\xbe/k\x95STA\
+CL\x92\xdeW\xc6+\x8e\xe7z\x13\xb0\x12p\x13\xd0\
+\x12\xc0q0R\xe1$@1\xd2Y\xe7\xf3\x1e\xd0(\
+;\xf5\xf5\xf0$\x12\xc3\xfcW\xc4\x1e\xd9\x90\x88\x22\xb1\
+\x8fH\xccA\x00\xf9\x1c\x04\xfa\x00\x11$h\x1c\xc0J\
+\xb3_\x91\x0e\x98\x9f\xc9Ro\xbc\xe7\x1dG K\xa0\
+\x08\xd5\x96\xc0\x90\xbf\x0fE\x18 \xe0\xd3\x03`3=\
+\xc9\xbdQ\xa6\x86\xab3\xae\xf6\xc61\xbf\xfc\x01'\xa0\
+$\xeeTD\xa9\x941\xbd\x80\xeb%\xb1\xf2\xc1+m\
+f\xa93Ge\x8e\x84\x9e\xfb\xcf\xcfm\xe0\x84\xa9U\
+<\x17L\xfc\x16\xf1+\x81\xf1\x03\x06$\xe6F@@\
+\x9b\xf3\xbe\xa0\xd8\xd3\x98\xba\xeb\x04\xb5\xfb\x81\xccc\x7f\
+n\xb6(\xe0\xae\x06\xf0.o\x07\xf0\xe4\x22Y\x0a\xd8\
+\x01v\xa8\xec\x93x\x1c/+\xfe\xa8\x93\xb51C\xfd\
+-\xb2\xb2<\xbf \xab\xcf{\xf8\x1c\x00B\xac[\x98\
+T{O?2\x1d\x0e\x8e\x05\x01\x1e\xaf\xf3\xa8L\x02\
+\xbc@ME\xec\xcf\x07G\xecW*c\xec{\x80]\
+*\x91hX0u\x85\xc4\xcf\x89\xf4\xf4\xd7\xf6\xd7h\
+\x13 \xb6\xb5\x9a\xa9t\x8c\xe1\xa3\xb2\xc8\xfb\x91(\xc3\
+\xe4h\xd3\x0d\x86\xc0me\xafS\xfc\x1b\x89\x0d~\x94\
+\xd6%*\xd5T\x829\x87\xa8<\xa3\x15\xc1\xfa\x02\xa0\
+0\xd53\x80-Zt\xf0\xcb\x00x\xe3qp\xdbU\
+k\x95\xff\xf7T{\xac&\x00\xcf\x07\xe0m\xc9\x05\xa7\
+\x83\x04\x85\xd0\x81]T(\x9e\xe9D\x90\x16\x1e\xf6+\
+\xfb\x08\xa0\x8d\xfb\xc04\x18k\xc9D/\xff\xdd>_\
+I\x08\x8e\x19\xc4\xd2*\xe5\xf9\xa2\x04\xc0\xc10\xd8[\
+\x96\x12u\xcfiFl(\xc4:\x09\xb4I\xac\x01\xae\
+I\x94\xadE\x12\xfe\xd5\xeb&\xfe\x1d\xc6\x9f\xc7\xe7=\
+\xa6\x05\x82\xc4\x94\xe7\x81\x1f\xa1E\x01\x00\x85\x9f\x1b\x8f\
+S\x84\x91\x888!@%@\x81\x03\xc6H\xc49\x0f\
+\x08\xb0\x00X\xf0\xcb0I\x98\x1aD\xeb\x17\xefG\xa2\
+\x01\x00\x06\xb0\xca~t\xa0\x1cc\xb6\xd8\x97\xbc/\x00\
+\x1b\xfb\x91\xd6'\xf65\xc07\xfe\x8a\xcfI<\xc4\xfe\
+\xe6~\xb0\x0e9\xbf\x00P\x00\x1a\xa8\xa0\xf3>\xec;\
+\x12'\xc65\x03\xec\xa2\xa1B\xc1\xc8\xccG\x02\xdf\xe9\
+\x0a\xb2\xa4\x0d\xc0t$\xd4\xee=_{r\x84,M\
+\x87aN\xbd\xc5\xf0\xea\x14\x95_\xa7\x0a\x1c\x14\x5c\xb7\
+\x9cT\xd1\xea\xa77\x95\xfd\xee\xe5\xb2t\xae\x18\xa8\x0d\
+\x111\xb4#\xd0\x8e\xb1\x96T\x95\xf6\xdd\xa21bB\
+D\x99}\xf4q3\xe1\x5cp\x9a\xb7\x89\xe7k;!\
+\x801;\xfd\xd1\xd0jZ\xf7\xc9\xb1\xe9\xfe\xc1,\x13\
+\xd0\xb5{b,\xd2\xaa\x82f\x12\xfb\xba1\xd7\x86/\
+\xfb;\xe2\x85~}Yy=\xbb\xd89\x0d\x18\x89}\
+\xee\xf5\x1e=\xc8P\x86\x9fm\xed*\xae\xcf~\xb7\xdb\
+U\x96\x00\x02\x8b\xea\xc5z5P\x00\x10P{\xfb/\
+N\xe2\x89\x9c\x97wW\x0f3\x00\xd1\x0f\xb8\xd2\xfd\x95\
+&z\x88\xf6\x14\xa2jL%\x88q\xbe$\xb0\x22\xbc\
+\xef\xd6\xe2sZwaT\x05\xf3\xe8\xb7\xb2\xea\xbf+\
+c\xacD#\xf5zg\xce\x9e9g\xe6\x9c\xb4\xde\xf1\
+3\xdc\xdf\xa3\x06\x7f\xa4\x99\x01uj\xc0F\xc3y\xd1\
+o\xddo\xd5o\xd5\xd6em\x85{US\xe1\xa7%\
+!(\xe0\x9ev\x82h\x5c\xffZY\x13c\xec\x0f\x94\
+Um\xa5b\xe9y\xc3h5 \xdbo$+\xaf\xcf\
+\x96\x95\xd7?\xcaZ\x22\x1d\x15v\x0a\xa4G\x96\xf7=\
+\xb2NIX\x7f\xb2^\xaa\x04\xe3\x1f\xa0z;\x81\x0c\
+\xc6\xa8\xc7Rv\x1b\xcbZ\xe2\xaf!\x8d\x1a\xd3\x18@\
+6\xeb\xd5\xc0\xcc\xcca\xb2\xf2zA\xb1\xdf\xb4\x84\x14\
+\x863=\xf8\x01p9>\x88q\xc8n\xcd\xea\xb6\x97\
+\x95\xd7\xef\x0db{\xa1\xa1\xa6\x82\xe8\xb4\xf6\xe4\x17k\
+yB\xbf\xa9\xac\xbc\xfeBV\xde\xffE\xb2\xc4\xf4\x91\
+\xe6\xd9\x87\xca\xe7\xff\xb2\xaci\x8a\xf4\x8f\xca\x0c\x1c|\
+\xc6\x85\xdb\xbf\xd9\x7f\xa8\xb5e\xa5~E\x89\xdd\xf7\x97\
+\xf4\x17\xf7\x97\xa4\x96j\xc4\x8e\x19\xe7\xb7\xdaP\xa0\xad\
+\x85\x9b\xeb\x1au\x7f\xfa$\x8b\xfb\xbdNV\xfe\xfb\x7f\
+\xc8\x12\x13\xc8c\xbb\xd1@\x89<\xd3\xadA\xc1t2\
+\x10\x07\xd0\x05S\x05@5Z\xbf\xaf\xb3V\x14LE\
+\xe7aL\x11A\xbb\xa2\x02lOm\x0cE4A\x22\
+\xae\xf1s\x85\xb92]F\xc6\xd0\xaf\x85,B\x22U\
+\xc9\xabeM\xd5\xb5R\xd6\xd7NsD9\x089\xb0\
+\xe8\x9d55:\xe6\x84#\x9a\xe4\xc0!\x02H#\x89\
+PM\xe3\xc2\xa0`#\xa2c\x87\x1f\x07[\xee\x1d\x9d\
+K\x01\x854\x10\x7f\xd4\xc6\x1b\xd4q/\xe5\x00\x98;\
+W\xd6\xc4_\xfa3d\xed\xf3\xa9c\xa9\xf6,}]\
+V^\x97.\xf6\xe4\x16\xc0\x93X2\xb7\x16\xc4\xae\x8a\
+\xf5\x1d\xe1\x84k\x093\x1e.\xb7H\xd1\x97\x5c\xa9W\
+\x05\xf6\x0aY\x1ao\xa3^\xc6mS\xa2\x03\xc5\xcc\x95\
+\x95\x1a\xf6\xea`\xbd\xab\xd8\x9dIS\x81\x00\x85@\x94\
+\xc4\x85\x0a\xa6p\xd1\xbbR\x85\x8fV\x0a*\x93\xa6T\
+\xd3[\x83X\x0e\xa2\x8a\x88\x93\xd4\xf0x='`\xaf\
+w \xb7u\xdbhQ\xb1{\xb4vW\x07RK\x8f\
+vm\x0dxER\xb3\xe7y\x19p\x08\x0a\xb2\xdc\xfd\
+nv\xd0\xab4\xf1\xc2\x18\xaf\xa7\x0e\xaf\x0f{\x83\xbd\
+\xb61\x12\x82\xf1 \x82\xd8~Im\xf5\xdeb\xf7\xb9\
+W\xe8\xa7\x89\x8ahjS\x8c+a\xbd@y[x\
+\x94(\x12P\xa1\xe6\xcf\x17\x01\x1d-\x0d\x92b\xdc\xb7\
+1G\xa8\x04EBt|\xd5!\x0d*V\x88SB\
+\xf9s\xc5\x88\xb1\x22\xd1\xaab\xeas\x04\x22PXa\
+\xd4\x00\x5c\xb8\xa2P\xc3\xd2\xc5S \xcb\xdca\xa8\x9a\
+$\x88?w\x0f?s\xbeI\x1cH\xa0\x08\x985v\
+g\xbd\x84 ;\x81@\xdc\xb1{\xb5,\xcd5\xfd\xb0\
+,\xb5r\xdf\xe5\x00\x1dF\x80U^#\x01B}\x1e\
+\xa0\x81/*\xc7+\x8d*\xa2P\xb5\x09h\x09\x8c\x08\
+l\xa9\xfc\xb1\x1f\xf8\xbb<g*\xe2\xbd? \xff\xce\
+}d\x1c\x1d\xbfO`\xef\xca\x22\x95C\xaesr\xf9\
+\xb0\x1f\xa5\x892\xb9\xc6\x89\xdc\xd3\x0c\xacm\xdf\x1cv\
+\xf8\x97\xff\x95\xa5\x00\x1c\xa0\x14\x7f\xe6\xfb\xd2\xbdLV\
+>\xe6[d\xb5\x02\xb5\x81zQ\x09\x5c\x03\xc8\xfaL\
+\x1d\xb4\xd3Z~H\x88\xd8\x17$p\xf8\x09\xf6!\x09\
+5\xd4p\x00\x01\xaf\xff\x10+\x03h\x22\xb1%\xe0\xa2\
+\x02D\xc0O\x02\x06\xe5\x8c}\x01\x95\x96\x04\x8e^\xe8\
+\xfb\xfc\x1c\x00T\xbc\x9e\x03\x08@\x94\x0c\x00\x00\xa0\xca\
+\x80\xc1\xbcE\xbc\x1e\x00>x\xae\x5c\xbf\x13\xf9hY\
+x\x97\xf7!c%\x11M\xe4>\xb0\x8e8p}\x80\
+\xc69\xc4~\xc3?0\xd5\x03Q\x1dT\xbb\x05\xd0\x9e\
+\xd4^\x03p\x80\xba\xceu\x90\x90\xa0w\xc0\xfa{\xd0\
+\x956\xc6*\xd2KN\x02\xc69\xbb\x96\x03\xbf\xf3\x9c\
+0\xae\xe1J\x17\xc0\x0b\xf7\x8du\xccu\xb2o\x1as\
+`\xf8\xf9\xeb\xfc|\xf0\x83T\xd6h)\xe2\x8b\xf3\xc5\
+\x8c\x98P\x0d\x87Z\x8d\x1f\x82\xf9\xc4s\x01\xd0\x01@\
+\x84a\x02\xd5\x1f\x06\x18\xd4\xdcKd\x0d\x10\x0b@\x09\
+\xbf\xcb\xe7\xa4w\x95\x84\x01\xe0\x85\x96!\x18\x01\xdc\x0f\
+\x98<\x00\x12\x8c\xe9Cdx<\x1epk3Sx\
+\xee\xec3\xfc\x19\xeb\x1f?\xcfs&\x0e\xe2\xbaa~\
+y\x8aF\xb4\x8a\xe0(a\xd0\x01$3\xe5\x82\xeb\x84\
+\xfaO@OK\x17\xfbr\xccP\x80I\x80_\xe1\x95\
+\xf7\xe1\xfe\x90\x00\xb1\xae`hX\xcc5*\xf5\xf8\xdf\
+\xb1\x16\x09Tz31`F\xc2\xd0 \x9e\xab=\xdf\
+\xdfl\x0c\x9a(\x88\xd0\x92\xc2\xfaF4\x98\x0a0b\
+\x8c\x16\xf5\x8b\xf1\x8a0\xe2\xb8\xcfT\xea\x1f\x925\xa0\
+\x0c\xe6Aw\xb2,\x89*\xfa\xfe\x13\xcf\x05\xe3\x07\x8d\
+\x18W\xa8\xfb\x07dI\xc3\x07\xc6\x1ab\xc2\x16m\x9e\
+\xb7\xa8\x01!*\xe5\x8d\xd16|\x0f\x90\x87\xf6\x06\xfb\
+\x82\xe7\x98\xfc\x83\xa6\x1cT@\xf9\xfe4\xa5\xe0\xc1\xea\
+\x19Z\xab\xa5\x135\xc6\x04\x8aX.j\xf9\xf4c\x9e\
+\xe2\x84\xd6\x86+\xd9\x88\xf8\xc1P\xaa\xe3\xf6^\xd3\xfc\
+\xfb\xf4\xa8\xe9\xd75%\x00@\xa4\x9e7\x1b\xb4\xca}\
+\x8c-\xe4\xf33\xde\xd3\xaa\xfd\xf8\xfb\xfe\x8ab\x7fv\
+O\xf6m\xfew=\xf7+eNP\x16J\x00\xd1\xf6\
+\xc5\xde\xe2x\xf72\x03\xa5;\xba\xa2\xfc\x93\xf2w\xee\
++v\xbf\xcf\xe1\xf5\x92?\x82I\x81?\x15\xcf\xaa\xdc\
+\x97G\x7f%3C\xf1\xd3\xaduD\xb3\xae\xf4\xf7f\
+\xd7\x93\xa58\x94\xf1\x81\xaf\xef\xb6\xe8\xb6h\xfb@C\
+\xf74v\xafVj\x8fk\xe2\xa2u=\x7f\xdfb\xe8\
+\xa74\x80s\xfe'eNP7s\xe5\x5c\x14\xfc\xff\
+,V\xfcJ\xbfm\xb17\xa6\xca;\xf1\x11\xccL\xc7\
+\xa50^\x00X\xe7\xf6\x979\xe1=\xab\x01i\xcc\xad\
+\xa7\x90XV\xcb-UT\x1d\x064s\xea\xd1P!\
+\xce\x90\xb7\xfd\xbe\xa7B|\xdd\xadh\xcb\xb5\xfd\xd6\xdf\
+/KL\x00\x8063R\xfb\xdde\xe5\xfa\x97,\xa6\
+\x16\xe9\xfbe\x1e\xb3Y\xe2\x85\xee\xe9\xb2\xa4\xe5\xa1\xa9\
+\x06G%\xe0\x92V14^\x0c$N\xf6\x18\xa65\
+\xcc\xbcL\xd6\xce[Z\x82\xb8\xee\xf1xa\xf2\xb7n\
+9Y\x9dn6\x8c[=\xdfLr\xe5m\x17\xb6\x16\
+\x87\x10\x09w\xc3X\xd5\x86(\xfb\xbd\xdf\xb2\x1f\xeeg\
+Y\xc5\x15\x00\xa4\xa5\x0a@\xd6qS\xff-Y\xa2\xde\
+\x8bI\xfd\x81&\xe2\x18LP\xe2\xaee\xbcO|N\
+\xb2o\xd1\xa0\xa0\xe0\x01\x13#4O\xf8\xfejY\x13\
+\xed\x0d\xd1P\xa6l\xc0\x9c#\xee\xf1z\x88\xbc\x8c\xcf\
+\xe1\xc2m\xb4\xc6\xfb\xdc\xac\xfbo\xfb\xa4\x85\xb7\x84\xac\
+\xec\x93~/\x99\x1d\xdf\xd7\x0c\x04\xdc\xde\xe6\xd8\xa3\x9a\
+9\xe9d\x09\xf1#\xe0\xc3Q\x80 sPy\xfc\x5c\
+\x1c\x1c\x0e\xb0\xe3`T:pY:\xb0,\x0eR\xf1\
+\xec\xc5\x12\x82\xca\xdcozZA\xa4\xa1FKl\xe2\
+\x97F\xfa\xd4\xd3\xff\xaab\xafn\xea\x94\xfd\xf3e\xe5\
+\xe7^j\x0a3\x88\x94\xaf\xab{\x85\xac,\xc8U\x8b\
+\xad\xe6\x05{z\xfb{\x1c\x00\x8c\x9d\x08\x15\xd3\x01\xb8\
+j\xe2\x7f\xac4\xc6\xf21f\xe9m2\x8b\xc0|\xac\
+\xa97\xf6?\x92%\x91,o\xb0\x08<\xb8o\x1c\xf4\
+\x04x]\x1d\xa8\xd8\x1e\xb8\xc5\x10C\xccES\x0a\x9e\
+\x93T\x9aI\xa4\x14\x06m\xe9\x00\xfd\x9a\xa6\x8a_\xd3\
+\xcc\x1dR\xe5\x0b\x86\x07\x81\x96\x08\x85\x9b\xa5y\xa6\x12\
+9\xfc\x9d\x13\x8dg4\xd5\xe6:\xdf\xf6\xe5\x8d\xb9Q\
++\xe3\x9fL\x15\x14u\x80\xee\xe8@\xa8w`\xfc\xa4\
+\xa4&O\x02{C\x1d8\xb6\xe08\x91kR\x02!\
+\x02\xd8i\x9e\x0fzXR\xb5\xf6}\xae\x9d\xea\xff\x93\
+\xd6%\x81\x14\x89&\xf7\x91\xfb\xca\x83#\xc0\xe0\x15\x0a\
+*\xaa\xf8hV\x00\x94\xacSk\xddA\xc5D\xe58\
+\x02g\x9e\x93\xb4\x08\xcej\x07@\x8c?\xa3w\x8e\xde\
+\x22\x90\x5c\x02.\x98\x13P\x93i\xbd!\xf1\xe5\xb9\x12\
+P\xc1\x80\x81:I\x00n\x11\xad\xb2K\x06\xca8\xf7\
+i<?\x9e\x0a\x8f{\xed\x99J\x11\xefC\xcb\x0e-\
+-P\xb5\xe8m\x04\xc8\xa0%\xc6\x22686\x18\x0a\
+\x8c\xa3\x09\xa6\x09\x152\xd63\x898\x15Fz\xb1\x01\
+,\x08\xf0\xa9P\xf3\xfcp\x8c\xff^P\x84\xac\xc29\
+\x8f<N\xc0\xf6o'>\x00\x06T\xde<\xde&\xa8\
+gP\xe8K80\xfd^\xd2h0\xe54Z\x7f\x98\
+\xae\xe0\x041\x02n*f\xcco\x87*\xce\xbe\x81\xb2\
+j\x04<\x90c;j\x12\xa6\xe9\x9fem\xdcN\x8c\
+\xf5\xa1\xd2H\xcb\xcdW\xccd\xd2\xfe\xdb?!\xe6\x00\
+pT\xfeH\x10\xdc\xaa\x10\x0c\xa3\x8d<\xe7\xfbEN\
+\x1c\xf0\xeb$\x0c\xbc:\x80\x8a\xdeR\x9f\x07\x01\xc4R\
+i\xe4y\xe2\xbfiM\xb0\xdf\x0f* \xe3\xc7X\xdf\
++\xf9uU'DO6@A\x02D@\x08\xc0D\
+\xab\x0b\xeb\x95\xf5B\x22\xcc\x17Tx\x80\x0f\xa6q\xe4\
+\xde\xd7\x7f&\xbf\xc1z\xa1e\x89\x04q<F\x8d\xcf\
+5\x16S\x03\x10\xa1G\x9e\xb1\xb5ny\x88\xf1I\xac\
+\xd3\xa5]\xd1g\xfd\xb6\x0a\xf1\x00\x80\xdc5TP\xcb\
+\xb3\x1f\xf6\xf7\xb3\xad\xd1B\xe2\xcc>\xc6\x0f\x8d[$\
+\xb8o\x00i'\xba\x22J\xe0Ao3\x81\x1c\x8c\x07\
+\x07\xe20\xec\xba\xcde\x8d\x0a\x1e\xadM<\xc7\x83\xaa\
+\xb5}\x0d\x80\x83_\x22\xe1\xe6\xfe\xa3%\x02\xc3\x8e\x82\
+\x01Tq\x9e+\xad\x02P\xba\xdfR\xad}N\xce\x1b\
+\xfc\x18\x006\x80\x05S\x05\xd0\xb6\x01\xa0\x03\xd8\x1a\x89\
+?Fe\x88\xb1\x88h\x000u\x03\x80\x87\xe7\x8e\x1f\
+\x82\xc1\xc0\xb9\xc3\xe7\xe7|\xe1\xdc73lz\x8f,\
+]/\xcc\x15\x12vZ\xa9\xf0\xd70l\xa8\xfc\xf2>\
+h\xc2\xb0\xeeaT\xc1\x9ca}0\xc6\x15\xa0\x96i\
+@\xcc\xdb\xe6\xfa`\x84\x01\x08Z\x84-D\xde,r\
+F\xc0\x09\x15\xbd\xff\x89,M\x070 \x0a\xa34\xc6\
+\xc7\xda\x0fNv\x92\xb5\xd6\x93H\x90\x1aSr8\xff\
+\xbc~\xa6\x9b\xc8\xda\xf9S{\xb47H\x89\xb4\x13\x8b\
+n+Y\xbd\xce\xea\xa7\xd0\x04*i\xee\x9d\xb5\xd0\xa2\
+\x02\xc2\xbd)^\xd8\xdc\x816\xefg\xed\x9b\x00FX\
+\xc7$\xf4\x00\x82{*\xb5I\xad&h\xf7\xd0\x22\xcb\
+\xb8]\xa6\x0e(mz\xb7[\x14\x0eh\xad\x1b\x88\xf3\
+\x85x\x98\x13\xb3\xea\x8d\xd6l\x1a0\xd3Gd\xadu\
+\xa7\xff\xad,\xb5`\x9a*\xcf8\xc5\xe9B\xb2\x94 \
+\xd0\x8a`\xb1\xe7\xee\xdca\x5cbI\x92\x87\xfd\xc4:\
+m\x95\xf3\x9a`Vf\xe1\xadi\xba\xc2\x1e\xc5vw\
+\xc5\xba\x9c\xe7\xdd\x05\xc5.l\x0cH\x12\xd8JI^\
+\xd9j\xe5\xfb%F-c\xdc\xde*K\x15X\xd6)\
+\xcc\x22\xd5/wj\x0c\xab\xc9\xc9\xb2\x928\x1f,3\
+\xb0\xf7!\xf7N\xbf\xb9\x01\x1a\xddu\xb2\x16\x17N\xd7\
+\xd6\xa0\xbc\xf2{/\x92\x15\xb7{\xa0\xac\xbc\xff\x0d\xc5\
+\xaeO\x22\x95bBo\xd1\x00\xcazj\xfd\xc3q\x04\
+\xea\xef\x9a3\xffgY\x9bB\x10q;\xe3\xb7=\xe6\
+-\xce]\x98\xd2\x8e\xd3\xfa\x17\xca\xca\xf7_\x97%1\
+G\x8b\x0d\xa2\xb1\x16L5O\x1b\xa8<\x92#[+\
+ami\xfer\x02\x9c\x94%} \x9d\xef\xde7\xfd\
+\x0a\xb2\xb4\xcf\x9f#K\x1am\x06V\xbb\x17\xcb\xfc\xbc\
+>\x91\x00{\x154\xcb\xfe\xe8\xd6\x90\xd5uS,i\
+I\xc1@e\xda\x18\x22\xd4\x8ec\x18\xd3\x18c\x5c\xcd\
+<`\xcc5\xfb:\xce3\x0a\x1aP\xf3\xf9{\xd6\x5c\
+\x08\x00\xc2\xad\x15\xdd\xf7d\x89IG\x8b\xb8\x0b\x16\x15\
+h\xba\xd7\x05\xbf\x0d\xccx\xd9\xda\xf7\xefK-/\xeb\
+\xb6\x91\x95\xef\xd7\x92\xd5)\x08\xef\xd6\x14\x04\xc4?\xfb\
+O\x16\xdb\xafNO\xb8yrK\xd2\xf4\xb2\xff\x91\xb4\
+\xa0\xc4\x05C\x1b\xc1L\x10\xb4\x9a\xfa\x8f\xcb\xda99\
+=\xc1q\xe5W\xcd\x8c\x82)\xeas\x98V\x92`\x0e\
+P\x80\xf3\xd4\x93\x10=\xa55\x01\xe6\x8f\x19\x050*\
+\xa25\xde\xe3\xc5gg~[\xac,\xf0\x99\xf5eV\
+K\x7fk\x13Q\xc3\xc1\x82\x0cu\xcf\x92%\x00\x80\xc0\
+\x0e\xaa+\x01\xaa\x11\xc8\x10\xd3\xe2\x80\x06\x18`\x83\xe3\
+hp\xac\x88\x1e\x89\xb0xg\x9b\xdb\x19\x891\xa23\
+P\xacM\x81\xebO\x90\xa5J\xb8{\xeag\xb6*\xb6\
+\xb5ES~\xecJ\xcf%\x0d!\xee\x8e\x965\xf1\x18\
+\x0e:\x1cmM/\xca\xe7\xeb~_LcD~.\
+k\xe3\x02cN+j\x9d\xee\x0d\x8b\x83\x1cuZS\
+\xc5#P\xa4\xd5\x81\xf9\xa6k\xd7\xae\xb3V\x01@#\
+\x1b`D\xe1\xe1\xa3>\xe8\x17O\x09,\x14@z\xd9\
+\xa8\xf80\xe6\xcf\x88t\x9dK\xfeJ\x8f\x93y\x8f\x03\
+\x92g7\xca\xd3\xf4\x18Y\xa2\xf03~\x86\xc4\x94\x8a\
+\x8a`\x80\x0f\xba7qu/\xec\xaf9\x10Z2\x05\
+r\xae\xa4\xd7\xb1\x167\xd9\x01>\xbbi;0\xbd!\
+\xc4s\xc4s\xf8D\xeb\xa9\x8a^S\xdd\xbd/&&\
+\x04cQ\x10a\x13\xa1\xed*o\x84\xc3,Bt\x9a\
++*\x0f\xa7\xf7\xa5\xa2D\xa5\x7f\x1c s\x1fy\x1d\
+\xab\xeeC\xdd\xe5\xdf\xa9(\x13h!Z3\xa6\xf2\x13\
+0\xd2\xa3O\xe0\xc0\x1c`>\x17\x00\x01\x15H\xf6\x83\
+\x9f'-\x10\xfc\xf7\xa8\xecP\xa9\xa0\xd2\xe1J\xa5:\
+\xb8\xd5\xc3=]N\xd6\xc6\xde!\xca\x14\x22d\x8c\xbf\
+c\x5c\x10\xbd\xc0\x000P\xab\x09\x989\xc8\xe8!e\
+z\x07\xf7\xe7\x0aW\xfa?W\xadU&\xdc\x9b\x14*\
+\xeb\xf4\x18\x93`\x92\xa0;\xc1\x0f\xd5m*&\xdc\xd7\
+5\x1c\x10\xbe\xc0@\xe3\x93\x1c\x10\x93\xf8_\xed\xfbJ\
+\xc2\xf4\x90+\xaew\x9a\x02}\x87\xfd\x15\x8c\x05\xa8\x82\
+/w\xaf\xfe\x86\x1e\xfbbUhM/\xae\xf3\x8b?\
+\x22k\xf3^\xd1.\xe9\x9e+k\x0c\xa6@\xe4\xf1\x0b\
+\xecC*\xe2\xa8\x95\x1b\xd1\x9d\xfcQV^\x7f)K\
+\x95y\xc4\x9d~%k\x1a\x18\x01\x80\xb2\xcfI\x94\xb6\
+4\xd5\x91\x96\xa8QE\xbbR7/IL\x00(\xcb\
+\xf8e*W\xb7\x0d\xf7'\x02L*\xe8T\xae\xe9\x85\
+\x7f\xa2?\xcf\xfeV\xaf\x050s@\x11L\x13\xd61\
+\xfe\x1e\xc6\x02\x81\x0a\x00\x0e\x94\xfcq\x85\x12`f\x15\
+\x8f\x01\xa3\xc5\x84\x00\x06J\xb7\xbf\x8fs\x88\xde_\xf6\
+'\xcc\x16\x03)!\xe6J\xe2\x0f`\xca\xe7\xc6\xbf\xb2\
+\xcf\x01\xe6\xe8\xc9\x87a\xc3X9z\xdc\x09Tx\x8e\
+TB\xb9\xdf\xacs\xc4_-\xe6\x15\xc0\x02\xeb\x91\xde\
+u\xceC\x184|\xcf\x9c\xe0[\xcd8a\xfc\x1e\x09\
+>\x09\x0b\x00\x09~\x86\x04\x92\xd6\x98qk\x89\x01\x0d\
+\x02\xa2\x00X\x99\x0e\x81H\x17\xe2\x85\xa8v\x03\xe8y\
+\x7f\x87\x88/\xe2y<O\xee7~\x8e\xeb\x82\x89\xe0\
+\x02B\x04\xaeP\xaf\xf1G\x9c\x9f\xac'\x12uD\xc4\
+\x9c\x801O\x9eV\xb1\xc7\xdcW>\x17\x05\x0b\x98?\
+\xf8UZ\x02\xd0\xf2\x81\xba\x0b \x0b @\xc2O\xa2\
+\x0c\x03\x8d\x84\x18\xa0i\xcc\xbcb\x9dx=Dk\x0d\
+\xe7\x03\xcf\x8f\x9fG\xe4\x18\xbf\x08\x90\xcd~\xa1E\x85\
+\xcfA\x1ca\xf1\xc5x~\x9c{\x00\x06T\x0c\x098\
+\xf7\x90\xb5\x84\x09Q\xe5\x00\x14\x1d\xef!\xf6\x17\x89-\
+\xc0\x0d\x22^\x06\x14b\x9c\x95[C\xbb\x8f\xcaR\xc1\
+\xc4\xd3\x81\xd4HY\x81\x0c\x03'\x01\xfc\xd2R\x03p\
+\x8af\x80?gP\xb1\xedw\xfb}e\xe5}>#\
+kqM\xf7\xce\xee]\xdd\xbb\xda4\x12\x98,\xa1\x81\
+\x00\x90\x03\x80t\xf3\x00\xc0\x95\xf4m\xa0p\x7f\xd7\xe3\
+\x07)\xec \x9el\x8d\x06\xc1\x09\x02\x14\x00\xd0\xa0<\
+\x07@\x0c\xa3\xd3\xf1D\xa5\xe2n\xea\x82\xc0\x81\xcdO\
+\x00\xa0\x04\xa3\xccbz0f\xfa\xcde\xad\x95\x801\
+\xdd\x95*|\xad{\xeb\xf5\xfa\x91b\xfb\x18\x10\xba\xd1\
+=\xc0\x9a\x86tZ\xb1\xd3\x0d\xd0K\xfc\xee\xf2b:\
+\x1fv\x94%\xd1C\xbe\xa7\x02\xaa\x96\xb7\xddZ\xafs\
+\xbd\xff\xbb\xbb\x95bM\xb7f>9\x89\xf6*\x8d\xff\
+\x9a\xd7\xd1\xafZ+P0\x1fU?\xfdR\x02\x16\xd1\
+B\x020\xc4O\xe2\xcf=\x07\x1e\x8a|\xf7z\x995\
+\x00\xde\xe4\x96\x80r\xbe\xcdm K-\x02\x024\xb6\
+\xafcx?\xd0\xedT\xc5\xbc\xbf\xd1\x7f\xa3l\x9f\xa7\
+\xcb\x9a\xfa~\xe5\x07\xbc\xad\xfc\xdc\x1bd\xe5\xf5RY\
+\xf9\xf7\x97\xc9R\xc1\x8b\xd6\x075\xcel\xe7\xf1v\xdf\
+hb\xd05\xc1\xbc\xaf='T\xf9c\xba\x97\xc7]\
+r]s7\xc9R+\xa0+\xc85A\xfc\x84\xcf\xb5\
+w$m\x09\xfb\xdf(P\x98y\x16\x7fw<\xa5g\
+\xc4Tb\x8c\xe0\xf4\xd9\xb2\x06\x0c\xf5w\xc9\xda\x98\xbb\
+\xb9\xbf\x15\xfb\xab\xc77\xea\xf9\xce\xc8R>\xa3<\xe7\
+\x95\xee]\xdf'1\xd88/a\xea\xb8ue\xba\xb3\
+\xac\x8d\xcd\x0bF\xb5\x99Y3{\xc8\x1a\x03=\xb4B\
+\x5c\x80#^e\x0c \x15\xfa\x9a\xaf\xbe%i)\xbd\
+`\x00x\x10}'\xae\x8d\xa9efZ\xd5\xc2\xdb;\
+\x92\x1f6pV\xb5\xe0t\xff\x7f/K\x15|\xb7$\
+\xa1\xf5\x11S\x9f\x0c\x98D\xeb\x84\xfdJw\x92\xcc\xf7\
+\xfb\xa3Mk&\xb4\xbb\x1c\xc7\x01 M\xce\xb3\x08\xa2\
+\xc5\xffh\xad\x83\xda\x1f\xfe\x8fV63\xb8\xa3%\xd5\
+\xad\x04\xd1*\xe5\xfd\x18\xf97\xadG\x88\xc5:\x9e\x9c\
+\x9dY\xa6\xd8\xb2\x0e\xf0\xcbB\xe9/,vAZ\xb8\
+\xf4\xf2\x9a\xea\xd8?W\xd6({\x93C\x8b\x1d\xe2\x84\
+\xe6\xda\x84\xa4S\xd9%\xd0\xe7\xa0\x1c\xf5\xf4>F\xac\
+\x89J'\x01\xc2\x15u\x80Q\xcc\x7f\x0d\x11\x04\xd5#\
+\xcfMcIP\xe5\xf7\xc1\xd0\xad$K\x7f\x8f^I\
+\x85\xbb+\xa4\x8a\x98\xc7H\x04E\x0a\x86\x82\x03U\xe6\
+X\x82\xc4\xa0\x96No\x10T\xfeH\x9c\xb8~\x0eP\
+\x02\x0a\x11\x8b\xbeej\xf5\xef\x12\x80\xe2\xb9\x9c\x11\x88\
+@\x05\x1c\x7f\x8d\x13~\x0e*\x02:*RPnN\
+\xab6\x1c\xa8\xf7\xa59\xc0\xa8\xb7z\xded\x1c\xb4P\
+\xcaI\xe0\x95\xa6\xecl$\xee)\xe9y\xcdT\x19\x8b\
+\xc1A?\xd8D#kEt\x97\xc7I\x88=n0\
+\x0eZ4\x1cD\x90?\xaa\xf5\x94\xa2\xb2\x0f\x05/D\
+\xec6\xaf\x98\xfc\xd0\xcbt\x8f\x1d\xf5[R\xc5\xd2\x1a\
+\x08\x88\x13E/\x93\xa4^\xf6I@\xc0\xff\x95x\x8c\
+\xd5\xe4A\x1ey%@\xe3>\x8d\x81\x03\x02;\xae\x9b\
+J\x0b\x01\x15\x15(\x03DAu\xf7\xcf\xa3=\x81\xca\
+q$n\x00^~\x0d\xd5c\xae\x03\x11*\xc6\x0bQ\
+\x19\x87jv\x9f\x19%\x88\xe6\x98\x9a\xc9\xba\xa7w\x90\
+\xc44*\x15T\xb2H\xfc\x99\xbf<\x9ew\xcez\xe5\
+\x95\xbfc&JTFQu'P\xf5<c\x026\
+\x9e{<\x17\xa8\xca\xacs\x12\x93\xd6\xc3?\xbc\xba\x87\
+:\xde\xcf\x15\xd4\xe9\x1f\xddR\xc3\xcfs\xbf\xa8\x94\xe3\
+gxn\xab8\x91\xb2\xbat\x7fC\x7fc_~n\
+n\xe5\xb9\xa7\xcf)@\xb8t8\x08\xa6\xaf.\xf6\xaa\
+\xa4\x9d\xc1XN\x02\x15\x85g\xf7%J\x9d{]\x01\
+n@\x5c\x03\xa8[\xdb\x81\xfe\xf2\xa6\x98\xee;$L\
+\xdd\xee\xb2\xf2\xbe\x1b\xaa&\x91\xc6\xb6p\x1d_\xa8\x16\
+\x07J9\x16\x87\xb9\xf0\x04\xe0P\xf9I\xac`8\x00\
+\xe49Q@\xcc'~\x1e\x04\xdf\x88:=\xe3\x01\x18\
+9\x00\x8b^\xc4\xdb<7yC\xfb7*\xcc\x00\x0a\
+\xf8%\x12\x8d\xc5\xfd\xca\xf70#|\xc0G\xa5\x87u\
+L%\x9a\x84\xe7\x05\xae\x80R\xd1\xa4BJ\xa2F+\
+\x02\xeb\x93\xfdL\xe0\x030\x83\x16\x08\x00\xc0\x85\xd5\xda\
+\xd8\xc3\xa7z]\x900\x8f[T\x9ef\xa0\x8b\xfd\xc9\
+\x94\x1a\x00\x02\xee3\x80\x8a\xcf\xbd`z :\xc7:\
+D\xe3a)?\x07\x80\x16Z\x03,\x1a\x14\x092\x94\
+o\xfe>\x09>\xfe\x0c\x06\x0e\x09\x1f\xc0-\xe7,c\
+\x02\x0d\x98\xc5\xf8G\xa8\xfdhh\x90\xe0\xe3\xd7\xa8\x04\
+\x22RD`\xa3\xd6\xb7/'\xe6\x18\xcf\xcf\xd4\xd6\x08\
+h\x00HhQ\xe2\xbe\xc3\x8c\x00\x18\xa4\xa5\x0a\xff\x83\
+\x86\x88\xcf\xd9H\x8cI\xd8\x00\x1e\x01@\x19\xcfhF\
+YP\xc8\xb9o\x00\xa6T\xb4\x01\xd0^\xe1}\x04\xc0\
+\xc6\xf4\x1a~\x1f@\x13?\xc99\x89\x9f\xf1~\x8b\x96\
+>\xce%\x80\x03S5c\xca\x0f\x80/\xad\x03\x14R\
+\x00\x00`\x0c\x00\x88\xd2*\x03`\xca\xfa\xc3?\xd2\x02\
+\xe1\x0ad\xfc<\xeb\xc4T\xf7X_\xf8\x05\xfc6@\
+\x1f\xfe\xcd\x9a\x0c\x91({\x9aET\xe6\xfd\xfc\xe2\xbc\
+\xa6\xa2\x8fX#T~\xbe\xdc{\x1f\xeb\xc8qJ\xb7\
+~\xb1\x17\xd6\xe7W\xf7\xa3:\xe5%\x0a\x19\x00\x01@\
+\x0b\xfe\xc1\x0c\x87\x08\xcc]\x09\x86A0\xf9\x88\x9f\xff\
+k\xfc|\x88\x93>>\xb4\x02N\x0e\x19\xa6M\x94\xdf\
+\x1ez\x8e\x19+\xf9\xa5\xc9\x17\xc5\xfc\x8a\x96:\xfc\x22\
+SGx^\xde?\x11\x0f\xbed\xb2\x89\x80\xbd\xc9\xa6\
+\xe5\xff\xdb\xb4\xfe\xfdCj<\x8c\xbf\x06\x08\xa4\x02n\
+\xa0Si\xa8\x12Q\x9es\x8c\x19Tk\xc2\xa3\x15@\
+\x1a*\x7f\x0f\xba\xd5\xc1\xf3\xec\xfbGd\xed<\xa9c\
+\xec\xf6KLM\x9d\x02%^\xefN\x90\xf9>=h\
+\xbfwj\xf9\xfd\x93eM$q\xe6\xdd\xc5vh\x0c\
+TD\xf0\xe2\xe7(\x8c9.A\x14\x0e&k\x05:\
+\x94\x80]$+\xdb\xe1\xb8b\xc7\x1a\xf8\xb9\xbbi~\
+1\xed%\xe6\xbbs>1\xbd\x0a\x11@\xdd\xf5\xa5\x1c\
+gM[\x02\x1b\x05\x0a\xb5\xb0\xedd\x80\xe3#\xdeO\
+\x7f5\x10\xf0\xc6\xc6h\xe8W)\xf6\xcc\xb4\x0f.\xb2\
+\xbfq\x9c\xdc\x1d,3\x80u\x82[\x87\x8b\xbf\x9f\xf9\
+\xbe\xacQ\xbd+\x10\xbe\xbc\x99\x0e\xc5o\xf5/\x96\xa5\
+VM\xaf\x1f*\xcd\x91\xf0Z\x1b\x80\xc4\x17 \x8d\x96\
+\xe4(0\xa0\x1d\x80\x88\x9c\x99X1v\xda\x8chu\
+\x9eW\xed+\x80_\xff~\x15\xd7\xfePj\x01\xc0\xcf\
+\xc3@\xb0\x8a<\xc0um\xd9\xb8\xa3\x16jWV\xa1\
+\xb6\xdfr\xe8\xe9\x9f\xffKY\x8d\x1b\xefSKm\xff\
+J\x99[\x08\xca\xdf\x9dYRV^O*v\xa2\xb5\
+\x18>Z\xc7?\x16+o\xfbLY\x9az\x84\xb8\xe0\
+\xfbeI\xfb\x01\x0d\x103\xc5\x82\xf9l\xa0\xb6[^\
+V^w\x93\x95\xf7\xbbTV~\xee!Y\xf9{_\
+\x945F\x01\xad\x16\xd1\x22a\xd1j4\x18`\x90\xa3\
+\xd1\x85h2b\xb8\x0b\x88\x0d/^\xcf\x93\xa7V@\
+\xd9\xe7\x0e\x05\xed`\xf8\xea4\x5c\xa6iQ\x90\x98\xa3\
+e\x10\xfe\x1b \xc4\xe7SLo\xc2\x8fJ3N\xa2\
+\xf27\xc9\xca\xf5\xee'\xab\x85\xb2\x03\xaa\x88\x9f[\x04\
+\xeay\xbcH\xf5\x13\xc3\xd8{\xdf\xa7h\xd1u\xab\x0c\
+@\x1d~\x85B8\xff\x9dV\x80\xf0\xd3\x8ekf\xe7\
+\xee\x97\xa5\xb1%\xeea\x9f\xbdX\xd6\x10\xda\xb95\x8b\
+\x89J\xf0\xc1be\x03V\xc0j\xda\x10\x13\xc6\x1aT\
+\x8ax\xea\x1d\x06!\x0cuZW\xd4\xa3\x82\xc5A\x84\
+\x9a=\x8e\x93\x1b\x08`@\xa0\xe3\x03\xa1\x22B\xe7\xf8\
+ \xf9\x91)f\xbfm\x09Z\x04\x5c\x88\xafA\x15\x04\
+ad\xac\x18\x07$=\xf3$z\x8b\xd4[\x1f\xea\x98\
+c\x84\x89\xf9\xdf\x1c@Au\x85\x0a-\x22\xe9\xcd\x9e\
+gyP\xeaE\x81\xd2\x85\xa8\xe1Sk\xc8\xd9\x02\x1a\
+>\x9f\xae\xfe\xe1\x84\xf4s\x1fH\x8c\xe8\x99\x13\xd5V\
+\x01\xd9U\xb2DA&\xc1!\xa1\x13\xe1\xec]i^\
+$H\xa6\x17>\x80NE \x0ft\xc0\xf9\xefD)\
+\xbc\xab\xd6L\x87\xbf\xfb\xd4$.\x22\xe0\xe5l\xff\xbd\
+=S@B@d\xb1\x9d*&\xf3\xc6\xc6\x90 \xc0\
+\xab\x07\xca\x8aI\xf5\xd8\xbdv\x9a\xd2\xa99\x9dU}\
+\xfd\xc3\xa9r\xc4\xdcP\xfd\x9dW\xa7\x96\x8d\x83\x8b}\
+&U|\x08\xd8\xe9\xe9G\xdd\x1b\xaa\xe5R\x1eW6\
+\x16\x03\xe4\xfe\x02\xa8\x8c\xef#\x01\x1b\x01\xc2Xu|\
+,2\x08\xf0E\x02J@\xc2\xdfCd\x8b\xdeXD\
+\x1d\xa1\x90R\x09\xf0\x1c\xd4\xa8\xd8\x91\x90\xd3c\xca\xfe\
+]\xdd\xaa\xd1\xae\x04N\x7f=\xfc\xded\xc7\x01i\x8d\
+\xebG\xb4\xcc\x81\xe4\xf4\xf5\x83\xa8I\x85\x8b\xeeK\xa2\
+I|^*\xb4\xacS\x00\x12\xdewSW8\xe9\xb1\
+\xdd\xcc\x01\xb6\xa9\xf6\x93\xcb&\x7f\x9a\xe4\xb9\xee\xb4\xf6\
+@\x05\xb7*\xeb\xe4\xe7\x83\x08'\x95\xb3H\x10\xb9\x7f\
+\x00dPC\xd9/\xcfw\xcb\x80[2\xa2\xb2\xfa7\
+'h<\x9f\xa7\xdb\x8f\xd8\xbfTuX\x05d\x17\x08\
+\xfaL\x07\xf4\xf1C\xcf#L\x0a\x00-\x10\xe7\xa0 \
+\x8f\x81\x1f\xaf\x97\x00~\xech\x83\xea\xee\xd6\x89@\xe6\
+\xf1\x7f\xf4rZ\x0d\xb7;\xae;\xb6;\xb6j8\x9c\
+\xa9q=eO\xd7\x8a\xc9tcY\x02(\xa9,q\
+\xf0 \xc6\x07\xf2;Jd\xa3\xd2\xe8@=\x126\xa8\
+\x97P\xe0\xbf\xe4V\xa6\x97\x0f\x09\x9a\x08\x89u\xfe\xf1\
+\x87\x07\xea]\x09\xb83\x99\xd1\x00\x00 \x00IDA\
+TB\x86\xb19gY\xc4\x15\x91F\xa8\xff\xdc\x17\x9e\
+O{\x1d\xd6\x13\xeb\x8a\xff\xce>\xc2\xff\xc3\x5c@\x8d\
+\x1f\xca\xb4U\x9e\xe3~\xb3\xdfH\xa8Y_<_\x8f\
+\xf1\x8c^R\x18\x19\xcc\xf7v\x0f^$Z$\xaa\xde\
+\xffA\x85\x07`Y\xce\xfe\x80\xfb\xc4\x5c\xee6>q\
+`@\x90@s\xce\xf9s\xc68>\xd4\xe3\xc7\x00\xae\
+\xafcz\xce\xd0J\x11\xad\x16P\xeb\xd9\x87\xe3\xe9\x0b\
+0[8'a\xcc\x00\xc8,i\x00\x97\xcf\x0f\xa0\xe0\
+D\x8ei\x00\xb1~\xbf<\xb4\xc2\x04\xb0\xc2\xf5R\x91\
+\xa7\xd2\xcb\xef{\xccR\x9c\x87$L|\x1eZ\xb3H\
+\xe8\xacq\x12\xad1\x00;\xf8[\xf6+\xc03\xf1\x03\
+\x14~\x18\x15\xdcg\x9e\xbb)\xb6!\xf6H!\x02`\
+\xde\x09t\x88E\x22r\xc9\xcfA\xe5\x04\x10 \xa1\xa6\
+\xb7\xd4\x00O\xf4\x84\x8f4\x91\x82R\xef\xc2C\xa8Y\
+\xfb|\x06\xc8\x8d\x0a\x1e\xd4s\x12\xfaq\xaf\xf8\x98y\
+F\xa5\x1f\xe0\x11Q73\x05b<+\xe7 T\x7f\
+\xefK*\xf2A\xa5]^\x96\xa8\xebPI\x01f\x00\
+x\xf9b\x8a\x10\xa2_\x06\x06#Pf\x9c\xb0\xc5\x0e\
+#.d:\x12\xbd\xff\x88\x00\xean^Rn\xdf\x93\
+eiZ\xc0\xc7d\x09(\xf4<\xeb\xd00\xf2X\xdc\
+\xd0X\xb2\x08\xd8\xe4fS\xfc\xad\xb5\xd4-3\xb4\xb2\
+j\xf8\xa5\xc6_\x16\xaf<Lyr\xaf\xf7d\xdf\xc9\
+'\xc44\x0c&\x1b\xfb\xe6\x86*\x979\x8c\x95]\xb4\
+\xee\xff-\xaa\x88\x1b\x80\x90\x01\x9bnqY\x03\x0e\xa2\
+\x12\x87\xb85\xeb\xd8\xfbAu\xf9\x9a\xb8\x9eW\xce\xe5\
+\xf3*\xc0\xfb\xbe\x0a\xf0\xbew\xde\xfb\x04\x8cW>\xe8\
+vi^\xfa\xab\x07\xa6X\xb4\x04\xb8r;\xf9\xe1\xe4\
+4i#\xf5\xc7\x94\x80\xff\x98\xeaG\x9fP\xfd\xbb\xf7\
+S\x15g;&\xcd\x93\x97\xd4\xa2\xc4\x15\xaf\x94\x95\x8f\
+\xf5[Y\xebI\x9f\xdb\xbd\xd8n\xa9\xc5\x0f\x0d\x054\
+/\xa8\x1c\xba\xc0\x82_\xedo+v\xab[b'I\
+\xa4z\x9da\x8aB\x8d\x026{\x9c\x02\x0b\xf1\xa1\xfc\
+\xc6\xc9)\xdea\xff\xf3=~Y\x22\x8a\xbb\x1a\x088\
+1%\x9aP\xaba*\xbb\x82][\xd1\xca\xb91w\
+\x84\xac|\x7f\xa6,%\x98\xef\x96\x950mgYj\
+\xc1p\xabg\xff\xd5b_q\xbe\xb3\xb3[\x7fE\xfd\
+>QV^\xaf*vu\xea\xf5wkTP\xb4\xa1\
+l\xc3\xc4\xb4\xa8*\x9a\x0bsg\xcb\xca\xef\x1f!K\
+\x95\x7f'\xe8\xa1\xb5d\xa0\xa3\xc2_\x9b4FK\xc4\
+O0\xaa9/\x0d\xbcT\x8d\xb3\x85S\x01\x08\xa6\xad\
+f\x8ei\xac\xf9>\x03\xa31\x80tZ\x17\xcc\xe0\x98\
+\xbfD\xb1'\xb4J1\x0c\xa0\xd8\xcf\xde\x7f\x144\x02\
+\x88\xb2\xe6\x16\x22u1\xb5\x8a\x96\x1dku\xc0\x98\xe8\
+6\x91\x95\xcf\xb3\xd5 \xc2\x18\xe3\xb2%\x0e\xfe\xfd\xc6\
+\xb8F{)\x00\x1d\xceUZ\x87i\xa9tKR\x95\
+$\xff\x5c\x1bw\x07\xe3\x8b\xa9\x0aq\x0e\x01\xe0HS\
+\xe4\xe1&j-\x1eM\x9d\xda\xe4\xf8\x9c\x16\x88\x18/\
+~\x92\x81G\x9f3\xdd\x86C\xcbD\x7f\xf60\x1d!\
+\xce#\xd6;\x8c\xc1\xfde\xe5\x9f\x8f\x95\xb5\xd6\x05\xf2\
+\xbc\xda\xaa\xa4\xe7>\x9d\xceM\xa7\x95)\xf1y1%\
+\xc8\xb7\xc8\xa7\xa6o\x95%1q\x17\x88\xf1{\xd1:\
+\xfafY\xcbK\x03\xb82\x80=;\xf7lY\xb9\x80\
+Cd\xe5\xf5\xeeb\xf7\xb4\xc4cn\xa7bk\xb6^\
+\x86\x995d\x0dI\xa8\x22\x05\xb75\x84\x86@!\xc6\
+k\xd0\x13\x0f\x05H\x89\xcc\xaf\x13\xf5\x02\x04]\x84\xbe\
+\x87\xd2\x81\x8e#&\x80@\x95\xf4'\xb24\x86\xd0\x89\
+8\xa2u<\xf0\xc9&\xc56N\xe2\x09\x00\x00\x88\xcd\
+i[\x9c\xda\xc6\xd7\x04\xd2hJEP\x97\xa1\x92x\
+\xcc\x09\xe2\x16U\xbd\xf59\xad%\x82^+\x02K4\
+\x13\xea\xf8\x8bCM\xc5{\x8f\x03\xf4\xdf\xa5\xc0\x86\x8a\
+2\x81\xa0\xc5\xf1\x22\x10\xd6\xff\xde;\x02\x00\x16K\x09\
+\xac\x91\xd2\xaa6y\xb3\x13\x84\x8dR\xe5\x07@\xe2\xd5\
+\xf5(i\x81\xb2\xeaKW&j\x13c\x8e\x1c\xc0L\
+?Tl\x97T\xd1\xa2B\xf1\xb4Z\x03\xf3\x0c\xb6$\
+\x86F@\xf4\xae*\xc3\xd5>7\xbf\x7fT\xd5_\x1d\
+*\xf5?\xf6\xf5.\x9d6\x98z\xa0\x8e\xb4\xa6\xc2\x87\
+\xd3\xe7g,%\x0c\x06Q\xdc_\xe7\x8a\xcc\xa1i\xcc\
+\x9a\x0e\x92\x13\x13\xc5\x13\x80\x87\x04g\xd4\x1b\xcc\x1c\xe5\
+\xc9\xe2\xb2\x14\xe0@\xb1\xe5z\x11;c\x8e5\x95+\
+~n\xacj?\xa6\x0c\xc3@\xe1s\xf0\xbc\xa9H\xf1\
+{$\x18\x04\x0c8\x10\xc6\x16\xd1\x12\x81\xc3#\xb1C\
++\x80\xeb\x83y\x01\xd5\xdb\xbd\x8f\xd3S\x06d9\xa8\
+L\xcc]mc\xdf\x86\x84\xd7\x09\x8a\xea\xdd\xaaxw\
+SA}\xadr\x1a\x95E\xd6#\x15\xd3+\x9dh\xc3\
+\xdcy\x91)\xef>XK\x98X{~\x03\x01v\x0f\
+pqG\xb5W\xa9^\xf3<\xcfY\xbe\xa0\xde\xaf\x01\
+\xc0@\xc5\x14\xc6\x04\x15\x7fDb\xb8\xdf\x88z\x110\
+\xd0;\xc5\x01J\xa2\xe6\x83\x0a\xf5n\xc6\xee\xf4\xf3\xad\
+\x1e\xeb\x04\xbb\xff\x8b\xac9\xe6noY\x0a\xacIp\
+\xa1&\xc3\x94B<\xd0\xea\xaf\xd1\xe3\xcc\xe7\xe4s\x93\
+\xc01f\xed\x06kLx=T\x84~\xe5\x8a\xc8\xd7\
+\x1e\xd5\x120\x9e\xa7\x80\x91u\xa7\xa1\x9e\xd2V\xe8\xf7\
+W7ZK<5\xa4\xa9&\x00\xac\x03\xf6;\x01\x13\
+\x880\x89$\xe3\xd2\x1cpO\xb7\x92%\xf14\xc6\xb4\
+\xbd\xca\x951\x80\x0f\x12OZ)\x98n\xc1\x9c\xe6\xb5\
+\x87q?\x8f\x99\xbe\xf0\x88\x01\x0f\xee\x07TnZ4\
+\x00l\x00F\xe8U\xe7\xf7\xa94[\x03\x02\x11\xb5\xc9\
+\xdbe\xcd\x8f\xd2SIE\x93\x0a3Z\x18\x95W\xf6\
+\xe7\x94@qP\xf3>\x88\x03\xd1\x0a\x81\x98\x1d\x01\x03\
+Z\x10T\xf4\xe91\xfd\xb4\xac\x9d7\xe1\x8f\xf8\xfbT\
+\xfc\x10y\x04\x98!\xc1\xc7?\xc0\x88A\x95\xff'f\
+l\xaci*\xb8\xc7)\xc5\xe7\xbfcA\xc6Ah\x0a\
+\x00\x00\x18\xb0\x09\xa6\x06\xc07\xda*\x7ft\x0b\xc4\x86\
+\xae0C5t\xe2\x15\xcc\x15\x98h\xae\x08\x12\xe0\x02\
+,\x87X\x98\x99?\xb4\xca\x84\xf6\x07\xe2\xac\x9coT\
+\x84I\x0c\xad\xad\x11\x0c/\x98l\xf83\xc6\xdf\x91\xa8\
+\xa2\x0a\x0e\xb0\x8c&A\x03>\x06\xc6\x03\x15}k\xa2\
+\xc0L\x88\xca2\x95pT\xd9\xb9~\xc4\x09\xdd\x22\x02\
+\xe0\x16\x09--\x07\xa6dF\xc5\xc7LB\x18T\x8c\
+qE\xbc.zz\xf1O\x9c\xff\x00\xbb\xb4,\xd0J\
+\x08\xb3\x85V\x0azc\xed\x0fb<\x19\x89-\xf7\xd1\
+\xfb\x18\x06e\x88\x89\x22\xde\xe8\xb1h!\x86\x88\xb6\x09\
+\xe3\xfe\xce\xb1\xd8\x16\x1a\x180:\x19\xbb\xc5\xfd\x1b\xf7\
+\xc6\x03p\x03\xac\x00\xf0\xf1\x5cLi\x8f}c\xa0\xa4\
+\xc6m\x9b\xb4\x96\xb1\xf0?\xfc\xbe\x19d1\x1e\xd6\x9a\
+UT\x22)\xf8tw\xc9\xca\xeb\x85\xb2:N\xbaV\
+\x14\x89\x1b\xa3\x00s\x8f\xe3A*\xd2\x9c\xcb\x9cc\x00\
+3\x00PhI\x1cSM\x8c\xd8\xe7\x89\x11\xdb\x9f\xda\
+\xffP\xe3\xf4\x82:\x7f\xfe\x90\xe0\x87\x7f\x04\x00t\x0b\
+YIS\x07\x112\xff\xbd\xe9?\xcdPb?\xc3L\
+\xb0Xu\x144\x88#\xa0~\xd32\xf0O\x17j\x0e\
+\xf24\x9a\x8b'\x97\xa8B?9\xc4\x0c]\xb7\xceF\
+\xbc\xe3\xf54\xb7\xb2,\x89]2\x0d\xcc\xf7\x9d\xc4\x8b\
+y\xeb\x9c\xc7\xd3O\xc8\xda~\xea\xb6\x96\xb5\xa9U\xb5\
+\x85g\xefF\xcd\x9f\x5c%\xf3\xfaX\xab1\x12k\x81\
+\xec\xd3\xbe\xcf\xb7\xb4xr\xac\x81\x02\x93\xa0N\x13{\
+\x7f\x8b\xb3\xfb\xabei\x8a\x04\xad\x02{\xcb\x5c\xf9,\
+\xeb\xbe\xbfYfq\xf3\xed\x5ca\xfel\x9a\xb7.\xd1\
+\xc5\x97\xb5\xeb\x9a{_\xb1rn\xcc\xedZ\xec\xbfL\
+\x09\xbf\xb42\xf3\x8a\xf9\xdfKB9\xf7\x5cY\xf9\xef\
+k\xcbR\xc2\xefs4Z(\xa8\xc8\x02\x04\xac4h\
+\xfd\xc4\xb8u\xfd\xfb]I\xec\x94\xb8\x91\x04\x1d\xff\xc0\
+\xb9\x0e\x00h\xff\x18\x09\xaa\xee\xc2\xc9\xa9\xd0\xc8>\xa3\
+\x80\x22%\x83\xbfW?}\xac\xfct\x9d&\xf1\xcbT\
+\xa8\xa0`\xe7\xc2\xcb\xec\xbd\xb2\xd6\x8a\xd8\xbdM\x96\x0a\
+tg\x0c\xd3/\xd8\x1f\xb4h\xa0\x05\x14\xd3\x1f<\x86\
+\x0e\xc6C\xc4\x8f_\xad\x16\xadV\xd3\xf5e-\x9f\x00\
+p\x99y\x9a\xac\xfc\xf7SdM[\x22\x98\xdc\x9c\xaf\
+^7\x01\x04\xb0\xbf\xa0\xc4\xbb\x90\x16\xa2\x91:\xdf\x1f\
+mq\x17\xe7=L.5\x84\xaa%4\xe22\xad\xef\
+\xf3k\xa1\xa0\x8a?\x97\xa8\xe0\x0d5.p\x1c\xd3m\
+9h\x8eL\xe7Kv\xb0\xbc.*+\xd7\xb1\x8d,\
+\x89\xdbs\x1ey\xbcj0\x15_\xaa\x81\xdb\xce\xbf>\
+\xd4\xceM\x18%\xc1\xf06\xa5\x1f\xa6\x15\xf9\xc1\xf4M\
+23H\xf6i\x80^\x8c\xb3\x07p\xb6?\x9a\xad\x14\
+\x9e7\x1b\x11\xdf\xc4\x88By\x00\xf37+\xb6w\x1a\
+\x17r\x9c\xac\xbc>ZLj\x8a\xaf\x90\xb5\xb9\xf4\x8c\
+\x0d\xec\xbe,\xab\x08\xef \x22\xb6\xddp\x90Be\x8d\
+q\x1a\xae\x18D B\x02CbL\x8f4\x07\x22\x81\
+4\x01!\x01\xb4\xc2\x84O\xa5\x0a<\x09*\x09$\xa2\
+!\xa8\xf7+-\xbb1\x89\xe5\xb9\x92\xd4/Wl\xd9\
+:\xe6\xa1X\x13\xbb\xa1W\x04UV*\xf3\xd1\x1bg\
+D\x9a\x0d\xdb=UV{\x8e\xde/\x11\x88\x0a\x8c<\
+l\xf1\x87\xeb\xfd\xa0\xe7\xf9@[$\xf5\xf6\x83\xe0\xa8\
+wp\xbd\x14\x08R\x01\xbe\xaf\xd8\xbd)\xa0_d@\
+\xa6\xa7;\xc8\xca\xebwe\xe9`\xe4}5\xefq\x1d\
+\x1fXG\xbb\xa2vnbR(\xa0\xf9S\xaa\xa8B\
+\xc1\x04\x81|G\xb1w&Q8z\x0bgj(\xd9\
+*\xe1T^\xa0\xf4\xa8\xae\xf2\xa2\xf6{\xb5G\xee\xae\
+\xa6\xc6\x8b\xfav$\xa4\x0a\xa8VO\xea\xf9$r\x1e\
+\x1f\x19\xe2Y\xaf\x97\x99\x99\xf0Oo\xf4\xaf\xb4\x8a\x22\
+\xa2sQac\xbdP\x09a\x1c\x1bb\x19\xb7\xcaR\
+B\x0d\xb6\x01\x02\x8e\x03\xe5:\xe9I\x04\x08\x18\x8f\xab\
+\x22p\xa3g\x9e\xca\x0a\x01\x1b\x07<\x89\x0f\xeb\x9e1\
+eOv\xc5\x1b\xea\xe0Mn\xc5\xa1\xb7\x97W\xf6\xcd\
+\xe6n5`\xbe:\xbd\xad\x00iTzN7\xf5\x87\
+J\xdeW\xe7\x1d1\xef\x88$\x0ar\xdb\x10HE\xa0\
+\xe5\x80\xa3\xce\xb5-\x07z\xf7VY:x\xfa\x18C\
+5Tr\x17v\xc0Ge\xf1\x02\xdf\x1fD\xcd\xb8^\
+*\xd0\xfb8AC\xcd\xfb\x83C\xa2\x80Hb<\x8f\
+\x87]\xf1g?\x8c+\xbeK\xfb`\xa42\xc6\xfd!\
+p\xe3>\xda!\xf6[\xcbZ\xe04\xf7\xde\xb9\xf7\xcc\
+\xedh\x95\xd477\x84=\x10ZU\x8e\xde\xeb\xc0\xf2\
+E\xa9b\x08\x85\xd8\x22.\xb4\x06\xcd\xfb\x7f\xd5\x1a\xc0\
+b\xca~\xf4>\x12H\x13\x80s\xb0s\xbd\xbeO\xd3\
+?\xbbr\x8d\xd8\x97{\x9c'O\x1a\x80\xbf\xfe\xba\xfe\
+\xda\xfe\xda*\x16X5\x1e\xa8p\x22\xfe\x12\x091\x01\
+\xc4\x8e^\xb7\xf3\x9dXSy_\xc9@\xcb\x97\x06Q\
+\xa7\x98\xa3\xcc\xfa%\xd1\xbf\xd1\xea\xe6\x00\xac\x9b\xfa\xe0\
+%\xc1\xc2\xff\xf2\xc5XW\xd6\xc3\x18X\xbb\xcd\xda\x16\
+7\x0c\xeb\xbb\xec\xfe\xda\x9b\x1b\xe3\xea\x00\x04\x00\xc2\xa0\
+\x9eC\xad\xde\xc9@\x01\x95V*\xd0\x00\xb1\xf4\xfaA\
+\xc9\x86:}\xa2\x01\x1c\x807*\xb8\xac\xab\x7f9\xf0\
+D\xcb\x02\x15l3*\x02\x80rb\xc48\xd0h\xf9\
+\xa1BHb\xcb~\x221\xe7\x00\xe6\xfc\x22\xf0p\x82\
+\x18\x8c\x03\xf67\xf7\x91\x84\xea\x85^\xe7k\x1b\xf0b\
+\x9f\xd3R\x86h\xe0\xc3\x0bR\x10\xcb\x9a\x1d\x18\x13\x04\
+\xd67x\xfdQ\xe9\xbd\xc1\x01\xe2\xbb\xec\x8f\x98#\xce\
+9L\x8f<\xbd\xfehY\xf0\xfc/\xa9\xd6\x12w*\
+Sh\x85\xd0B\xc2\xcf\x01\x0c\x93\x10\x9282w\x9e\
+\x9f\x87\xa9F\x05\x1f\x00\x88J4\xad\x0b\x8c\xade\xbd\
+\x03\xa4\x22\x8e\xc9~\xa05\x81\x00\x0c&\x01-\x06G\
+\x0c~\xb12\xca\x0eN\xe7\xfa\x13en\xfd\x9b]\x80\
+:>0%\xb8\x8f^\xaf\x22\x9a\x8bj>\xfd\x8a,\
+\x8d\xa5\xf3<\xed`r\xe1\xaf`\xc0\xa1\xde\xdc\xa6a\
+\x0c\x1a\x00N|\x831\xc1~\xa3\x90\x02s\x01m\x17\
+\x03!\xc1\xf8c\xfdS\x89e\xfd\xe1W\x01\xac\x09\xc8\
+\x11\x09\xc5\x1f0\x8e\x8a\xf3\x0b\xbfu\xe7HL\x95\xf3\
+\x92u\x86\x1ff\xddS\x91D\xcc\xce\xbd\xdf1-\x80\
+\xb1\xcc\xb4\x1a\xf0\x05\xf3\x8e\xc2\x10~\x1d\x00\xc5\x0c\xa6\
+\x10/\x84\x1a}\xe9\x00\xdc\x84\x18\x1b\xeb\xcb\xef\x83\x98\
+]0,\xe8I\x7f\xbb\xac\x02O5\xfe\xac\x95\xe7o\
+\xa7\xf8G\x0d\x0d\xdfn\x95\xb9h\x153\xd58\xee\x13\
+\xe7\x22\xf7\xc7\x95\xca\x00V\x1c\xef2\x16o\xccl)\
+\xe9h\x1dC8\xf9O\x9f\x8f\xdb\x0f\xc0\x22c\xbeb\
+\x1d\xbf\xc9S\x1c\x9eo\x7f\x86h\x1f\xd3;\x00xi\
+%x}\xb1\xd7\x19\xc0~m\xa2`k*\x96\xc4\xe5\
+V\x96\xa5q\xb1\x8e\x97\xe95'\x11\xeb\xee,v\x97\
+\x81\x9b\x97\xb4J=-3\x01\xcc\xa3e\x856\x0e\x9a\
+N|?\x12_\x0e\xcd\x16\xdf_\x98kQ\xc1d\x1d\
+C\x91\x17#\xe1\xcfml\x1e\xe3\xeax\xa5b^\x81\
+\x8c\x93\xaa&\xc4;\xbbw\xa4\xf3\xdcLV\x18\x1cs\
+\xcb\xc9\xca\xef\xd7\xaf\xf2\xfdg\x8b}\xc6\x8c\x87\xdbR\
+\x8b\x9f\x99S\xd3\xfbe\xe5\xdfO\x92\xa5\x84\x1fQG\
+\x8b\xf7Eb\xcc\x7fwO|\x85g\xf6\xf19\xb7\x92\
+\x19a+\xa5)\x06LU\xb3\xe8'\xd4\xfc8\x9fY\
+_\xb4\x5c\xdaO\x0a\xee\xae\x807\xcc-3\xe0j\xab\
+\xf7\x85m\xea\xd9\xb4~\xb5\xb1{\xdd\x12\xb2\xf2\xba\x87\
+\xac\xfcw\x8b\xc5\x87\x06\x05\xa2\xce0\x1d\x10\xa5\x83\x19\
+\xf2\xa0\xac|?+Kb\x87n\xe5\xa0\xe0U\xc5\xf4\
+>\xd9\x0a\x12T\xac\xa3\x92\xfd\x17Yk\xb1\xe8\xfe*\
+K\x1a\x03\x9c\xef\x00c\xdc\x0f*\xden\xadAS\x09\
+&Ve\xactID\xd1\xccX\xc4\xe3+C\xeb \
+'\xf0\x8b%F\x0e~^Zh\x1fp!\xfc\xf4\xc7\
+\xfa\xc1\xe99\x03\x03=\x18\xd9\xc4\x01\xb4B\xb2\xde\xf9\
+\xbc\x14\xc8\xd108\xc4\xc0\xc9\xae\x03S\x22\x18\x9b\xb4\
+\xc6yjB\xf8a\x0a-\xe4\xc9\xf6\xef\xec\xff\x88\xbb\
+\x88\xc3\x0dx\xceN\xdf&k=\xa1\x88\xa8\x89\x88+\
+*n\xf7;YK\xc4\xfaMdi\xec\x8a\x91\xc1\xd9\
+\xb7\x14\xdb>\xa9{rps\x10A\xcd%\x81#p\
+\xa0\xc7\x1a\x11\xa3\x91\xaaw [TZ9\xb08 \
+I\xa0\x08T\xa0\xf2\x9b\xa2\x16T\x19\xc6\xc1\x8d\xa8v\
+P\x9dy\x7f\xc6\x7f\xd4\x05\xbb\xbe+\xc5\xf7\xa4\x8a\xc5\
+\xbd\xb5+lH$\xbf\xdaz\xfb@j\x11\x1f\xea\xce\
+.vN\xa3\xd0T\x04g\xbe\x03\xe1\x7f\xa7\x84q\x9e\
+GD\xfd\xb3b\xb8m\xa1\xa8\xde\xf6\x0aW\x0c\xaf\xf4\
+\x01\xb9bJXq\x90:\xa8\xde\xd6\x02\x15\x10\xd9\xe8\
+\x85'\xa1\xf0\xc6\x9a^'s\xef\xc8\xaf\xad\x12\xb9\xa6\
+[?~\xd3z\xc9b|\xa3\x13\x98P]\x07\x90!\
+ \x85\xa2\xa7\xe7\xbbY\x0aL\x10\x1f23\x8c\xc49\
+\xe6KS\x01\x84\xea\xe8y\x9c\x118s \xdbaM\
+\xfeQ\xec\xef\xde\x88\x87\xda\xe1\xec\xe9\xca\xdc\x1b\xd2\x18\
+I\x85Qy\xac\x18\x0e\xd1Hs\x00Q\x1ak\xf9\xb3\
+T\xc1`c\x908\xd0RA\xab\x05\x95>\x12M*\
+\x11P[\xa9\x8c\x11\xa08 \x8b\x0a\x0c\xbf\x17\xcd\x8d\
+\x06\x1a\x9em\xca0\x07%\x8c\x15;\x8a\x12\x06\x0f\x15\
++\xf7\x043\xd6/*l$\xd4\xa88\xc3\xe4`\xec\
+\x12\xeb\x8c\xe76\x16\x1d\x04\xc0\x80\x81\x80(\x14\x09\x06\
+\x94\xfe\x9d=V\x0e\x8d\x02\x12\x1eS+\xab\xb6\xef~\
+\xe9\xef\xb0_i\xbd\x00\x98\xe9\x86\x9e\xee\xe9\x83\x06\xe6\
+vt\x8f/\x15SWB+\xe0u_J\xccpp\
+$\xfe\xec\x93e\x5c\x89\xa7\x17\x1c\x87:\x1a\x97\x05\x93\
+\xa7\xdf\xb1\xdf\xa1/\xebr\xee\xca\xb9\xbf\xcc\xfd\xb9\xcd\
+s\xae\xc7\xc5\x99\x09\xe8\xfc\x85,\x89\xf7]T\xbb\x08\
+\x9b\xba\xad\x03\x90\xa0\x8c3~\x13\xb5n\x12\x1bT\x97\
+\xa9<\xe2\xb0\xf1C$lT\xd0XG\x5cg\x13g\
+\x1b\x12V\x07\xf2L/\x01\xd9\x0d\x86\x80E\xb9\xa0\x9a\
+\xc5}\xfa\xb5\x13D\xf6-\x01(\xbd\xcd;X\xed\x1c\
+\x80\x8b\xc4\x98\x96\x0b\xc4\xc5\x10\x89\xfb\xcd\xf4\xd7br\
+\x85\xdff}\xf99@\xa5\x9c<\xdfs\xe2\xd9\xcf\xe3\
+V\x003\x02\xa6\x17\x0e\x09\xf0\xbc\xd5\x9d0\xd2\x93\x8c\
+\x9f\xe7\x003sg\xde\xa5na1e/\x80\x00\x8f\
+\xcb\x8a\xf7\xd9\xb7Z\xbb\xdf\xf4\x90\xd3B@\xe2I@\
+y\xfbHto\x11\x7fn\xc6\xd3\xa2\x9d\x00@\xe91\
+\xa8L7(\xa7U\x0d\xf4&G\x0dbA\x01\x98H\
+U\xfa\xf5\x8f\xd3\x1a\x04\xb0\xc8t\x82?\xcaR\x22\xc0\
+}\xf5}/\xa7\xc9 v\xf7FS\x85\x01\x16\xa9\x80\
+\x10XpN\xf2\xca\x14\x05\x12\xbdk<\x9d\x00F\x07\
+~\xe1~\xafG\x00\x05*R\x04\xca\x00\x95\x87\xcbR\
+\x22\x89:<\xeb\x85\xcf\xc3\xe7\x07\xf0b\x1f\x03p\x00\
+|\x03\xdcdm\x9c\x97'f\x0d\xe3+\x1d\xf8E\xa2\
+\xcb\xbeG]\x1d\xf1@\x12^*_\x88\x93!\xa6G\
+\xa5\x9fq\x99^'1\x1e\xd7\x22\x92\xa1\x0a\xce|z\
+\x07\xa4TnP\x91\xa7\x02\x0d\xd0\x17\xa2\x5c\x00\xae0\
+j\xdc\xbbN\x02\x10S\x11\xdc\x9b\x1a\x8c\x22\x18FT\
+\xa4\x193\xc9y\x06 \x82(!\xe7\xe9hJEP\
+\xed\xa9\xc4SIf?p\xfe\xc2\x08\xe2\x5c\xf9\x95,\
+1*h}\xf08\xe8\xc9#\xb2\x14?!\x86'\xcd\
+\xa4\xe77\xa0\x04\xd5\xfd\x00>\xf1\x03\xee]\xa5g~\
+2_\x96\xee\xf3-\xb2\xc6\x80\x98\x1c(k\xe3\xb4`\
+\xa6\x10\xb8\xc3\xacB\xb3\x04\xd1\xc1~QY+,<\
+F\x95\x9f\xf5L\xcb\xdbY%\x9a;\xcb\xbd\xd8'{\
+\x9e\xfa:ID\xf5K\xb5\x19K\xfe\xed\xbaZ\xd0\xf9\
+\xe6\x90\x08\x85&\x04\xd7\x87()\x15[\xe2\x1a\xd6\x1b\
+\xcc\x0b\xf6\x0b\xf1\xe5XS\x88\xf8\x16`\xff#f\xbc\
+l$K~\x8bx\xebR3l\xec\xdf\x83\x81\xf4c\
+\x8bs\xeem\x8d\x84?\x98\x92\xacsQ\x89\xdf\xf6\xb2\
+\xf2z\xb1,%\x12T\xa2\x0d4t\x1f\x93\x95\xbfs\
+\x83\xcc\xcf\xe5\x00\xf7H\x7f+\xadGZ\xda\x10]|\
+T\xe69\xe6\xc7\xa6\xdeeD2Y\x7f\x8b.\xe8o\
+C4\xd1\xe3\x05c\xda\x95\x80\xa3\xfdRK\x0dj\xe8\
+\xe7\xd7\xc1p!\xc6W\xa7\x04|\xa6\xc5\xbf3\xef,\
+V\x12\xff\xfe\xb3\xb2\xd4;\x0f\x13o\x0bY\xa3\xfe\xcf\
+\xedS\xec\xa3\xad\xf7\xbc\x7f\x8a\xac1\xcf\x00\xf8\xa0\x96\
+\xf7\x8b\xc8R\x82L%Z\x12y\xbfo\xad\x111\x0e\
+\xfd\x01\x99\x81\x90\x9f$\x7f\xcb\x98l\xf7\xa2O\x97\x96\
+=\x8eVT\xd6V[8\xc5\x17\xc4?\x9c\x070\x93\
+\xa8\x043>\xee[\xd5\xa2eER\x99\x12\xcb\x84I\
+L\xe5\x7f\xeek\xb2\xd4:\xe2\xe9?Q\xa16s\x12\
+M/\xb4*\x00D\x88\x17\xa3\xf5\xe9\x013\xdch=\
+d\xfc\x22\xf19\xd3B`\x90A\x81WAs\xed4\
+>\x14?vz\xb5v\xbd\xac\x1f\xf2LZ\x0e\x0d\xa8\
+\xd7\x02\xe4mfj\xfd\xad\xdd\xd7\x004\x94\x88\xaf\x9d\
+\xae\xcf\x00b\x7fY11\x03\xae-\xfb_q\xed\x07\
+\xe7\x0d-\x05\xa7\x96\xa8\xfd\x87)^\xb48u\x00V\
+\x00\xb9f\x96\x05@c\xc0\x10\xad\x04\xc4 \xfb\xbd\x06\
+\x06\x8b\x84\x05\x14\x06\xc2\xa0\x88iz\xb4Fr\xbe\xf0\
+\xbe\xf8\x09\x80JO\xcd\x89\x16\x15\xb7\xc2\x10\x0f\xcfN\
+?%K\x07\x9b\xd5\xa8gn\x96\x95\xd7Ed\x16\xd7\
+\xf9\xa8\x1d\xf9Umn\xf8\xe472o\xbc_\xa7\x83\
+\x1a$\x19\xca\xea\xb5\xee\xa9\xa0r\xe6\x03K\x1dY\xb5\
+'\xcb\x94\xaa\xb2HP\xfb\x1dz\x8e\xf8{\x8cS\xf2\
+\x83\x0e\xe4\x87\x1eu\xe1\xf6_u\x8f\xd3_[%.\
+\x90X\x16\x00\x22I\x12_\xb8\xb1\x1d\xa4\xdd\xa2\xc5\x16\
+q\x85\xe0\x9d\x8dj\x1d\x94\x11\x90\x19Q\x88?\x99\x10\
+yW\xb8Q\x0d\xad\xdau%\xc1\xeb\xee+v\x7f\x1a\
+{\xe5\xf9\xf1!b\xc7x\xb8\xbbk\xcd+\x00\x8c\xa0\
+J\x9e*s\xa0\xb9b\xa2\x82\xab\xb7nq;\xfe,\
+\xdeu\x9b\xcc\x94\xab\xff\xf5\x81\xbf\x8d)+\xe7\xb6\x00\
+\x14\xd5\xcf\x10=s\x0fW\xb7\x91\xcc\x95\xef\xd9\x14\x88\
+\x90Pq\x1d\x1c\x08\x8c\xf3\x13\x91\xecyI,\x10\x00\
+\x00\xe4\x92\x80\x0f\xea3\x81!\x07\x1c\x01*\x81\x08\x1b\
+\xd6\x89\x0a\x81U\x046T\x9eD\x5c\xbd:\x05\x8eL\
+\x87\xe0\xef\xf2\xf3$\xba\x88\x97\x19\x91\xa8\xaa\xa0K\xfa\
+\xbe\xdd\x9e\x1c\x07\x01\xe3\xfcA\x8c\x87i\x09\x91\x98\xb9\
+rS\xc7Dn\xd5\xae\x07\xcd\x89\xb8\x1e\x1c0\xc8 \
+\xea\xc6\x1b\x0f\x14\xc7\xe8\xad\x85\x8a8\xee\xf9\x1c\xcf\xc1\
+\xa6\xb5\xe6 W\xa6\xa0(\xd2\xda\xc2\xd8+\x12\x7fZ\
+\x17`\xc2\xe0 \xb8\xff\xf4\xdc\x12\xc0SAr`L\
+%9\x0ef\x9e\x0b\x07\xc7x\xac\x18\x154T\xdb\xdd\
+\x02\x13=\xa7\x04\xa8T\xc8\x96\x19\x12'\x0d\xaf\xa9\x07\
+$Z\x00F\xd2#\xf1'0j\x15\xda\xc1\xe1C\x8d\
+f<\xe1\xce\x06\xfaPW\xf7\xf4\x90~qY\xd50\
+y\x9e4L\xe6\xd6\x91\xf9s\x96\xeb\xec\x96\x92\xb5\xfd\
+A\xa0Y\xd6\xd2\x00\x18\xde\xe9D\xc5\xbd\x90\x91\xf0\x13\
+H\xe3p\x11\xe1\x22\xd0#\xd1\x03`b\xfd\x90\xf0Q\
+\xd9\xe5\xbe\x90\x98\xb3nI\xf8\x9e\xe1\x9e7\xd6\x0b\x00\
+\x03\xd3 \x1c\xf0\xc1\xf0(a\xea\x00\x98\x22\x1e\xb9\xee\
+\xe0\xa7Y\x7fQ\x11\xd8b\x00j\xa6\xe7Z}\xda\xfe\
+\x80\x1e\xd1\xf0\xb7\x88\xdc\xc1\xfc \x11\x07(\xf3\xc19\
+y\xad\xd7\xdd\xe6^W[\x1a\x08\x22\xf0\xa7\x22\x0d\xb0\
+\xc1\xba\xf6\xd4\x81X\xff \xe4\xf4\xf8QI\xe4\xf3\xd0\
+Kw\x9a,U\xcc\xd9\x87\x0e\xd4'+\xc9\xd2\xe7\xa6\
+\x85a\x1b\xcf=wkL\x00\x02\xdcw\x00<\x9e\x07\
+\xbf\xcf\xba\xa3G\xde\x09O\xac\x03\x18\x0e\x5c\x0f\x15O\
+\xd4\x91\xf1+<o\x12b\x02\x03\xae\xbf\x05.\x03\x13\
+\x8e\xf5B\xa0\xcf\xfd\xe1>\xf2=\x9f\x97\xf7!\x91\xe6\
+\xf7\xd9\xe7\x9c\x87\x04\x06\x9c7\x00y0/\xfe\xec\x84\
+\x0a\x00\x03\xea8\xc0\x0a\x14|\x8b\xfa\xc5\xb8<\xfe\x9d\
+i\x01<\x7fZ\x97\x00@\xb9\x9f\xb4:p\xffY\x17\
+\x5c\x1f\xd7\xc5z\xc7\xdf\xe3\xf7\x00\x22y\x7f\xc4V\xd9\
+\xafo\x90%@\x8eWW \xa3\xb5\x8ai\x07\xee\x95\
+G\xdc\xb0\xdbW\xd6\x18=Q\xa9\xc6_ Fg\xd5\
+\xf1\xa8(1\xd7\x19\xea?\xd3\x89\x18\x0b\x05\x00@\x9c\
+2\x12\x8f\x0d?B\xeb\x03\x14\x7f\xdf\xd7\x88\x8b\x0c\xa4\
+Db\x00\xc0\x83X\x94)\xdb\xdd\x9a\xb2\xd4\x92\x09\xa5\
+\x1d\xe0\xc4\xaa\xd3q\x0e\xe2g\xbcNI\xe0\x02\xf00\
+\xf0\xc5\xe7\x00\xb0c\x9cW$~\x8e\xefB,\xf0\x1d\
+\x93\xb7\x8bA\xd2\xed,k\xea\xf9T\xfc\x10\x0b$\xae\
+\x8c\x16\x14\xd4\xe0\x99F@\xa2C+\xd0\xba\xd3\xf5\xa6\
+\xeb\xd5\x8a\xed\x5c?\xd7Z9#\xa1f=\xfcy\x88\
+s\xe7]\xe8\xb8\xe0r\x9f\xa3\xbb\x9a\xf9\x888\xe63\
+\x9d(\x99\x112\xfd\xa6\xb5`\x0e\xb0&\x04\x0c\x15Z\
+\x0d\x0d\x18\x06C\xc3\xf1S\x00\xbfh)\x00\xf4\x03\x8c\
+\xc1L\xa4\xb5n$\x0299y`p\xd0\xf2\x19\x1a\
++\xacc\x9e\xb7\xcf\xbd`\x90\x90 \xc2\xb0\xf3>\x08\
+\x80F\xad\x00K\xa4\xc2\x0e\x15\xc3]d\xe5>\x1e7\
+L\xbf\xe1\xbc\xa4\x22\xccz\xaa\xf1\xe9\x0f\x123\xc4@\
+\xf6\xdc\xde\xb2\xf2z\xb7\xac\x02\xed\xc5Z\x05\x99\x02A\
+\x88\x02\xc2`\x19\xc5}\xa1\xdd\xf4h\x95El\x00\xac\
++\xe9Q(pBCoz\xe5\x1f\x1dP\xdew\xa3\
+b%!\x9d{H\x96\x00]I\x80\xbe\xd9\xf7}\x83\
+$\xe2&\x0d\x8b\x95k+\xe0|\xb5\x02\xd6\xc4\xb7\xfc\
+\xbd\xb9%d\xa9\x82\xef\x02\x1a\xf7'\xa6Z]?\x8c\
+\xaf&\xa1\xa7e!\x80:\x18o\xff1$\xc8\xe3\x9e\
+\xee\xba\x1a/L\x0c3\x18\xad\xd6\x96QYG\x9a$\
+\x15\xbeZ)\x8d{F\xfcT\xe7\xe0\xba\xcd\xdfDO\
+9cFa\x1e\xb9\xa0\x16\x22\xd0\x88\xed\xc2\xcc^E\
+\xe6\xf8\xe9\x90r\x9d;\x14{w\x02<\xce\x1a\xb4\x80\
+\xfa\xef\xca\x1a\xd0\x01#\xbc\xbf_V^\xbf&K\xe2\
+\xbb\x14b,\x0eX\xee\xd5pN\x09~>\xcf\x8c\xa0\
+\xdb\x1b\xd3\xb2~\xbe\x97\xa6\xb8\xd6-\xe7U\xecq;\
+3\xd1\x1fM\x9aJ\x06\xd6\x82\x89i\xd1\xf5\xba\x9af\
+\x13@\xe9\xe3\x87\xe9Ku\xba\xc5\xee\x89\x993.\xd8\
+!\xbax\xaa,\xad\xd7[\xcb\xe9\xa5\xf8D|\x86\x13\
++\x00rU\x05@$\xd6\xb8Te\x5c\x08\xea\x8aV\
+\x86`\x14\x01\x94\xc3h\xe2\x9c\xa6\x10g\xff\xde-3\
+h\xa2\xb0O\x00>\xfa?\xc8\x92\x86\x91\x99@\xd3%\
+d\x09\xa84\x13\x8f1\x920<h\x11 \x9e\x9c\xad\
+\xc7OyP3\x9f\x91\x957>E\x96(\x18N\x90\
+f>$s p\xb0\x1d\xc6\xf5\xad\xe7\xa7\xbb\xbd\xd8\
+\x1di\xdc\x00\x010\x81;\x81\x8d\x13\xc4\xa0\xce\x19\x81\
+\x0a\xc7\x0ee\xf0\x0c\xf7\xa0\x9dj\xca\xd8\x8a\xd3\x15\xa6\
+\xa2\x80\xben\x10+\x83\xea\x15\x95\xae+k\x17r\xab\
+\xf8\x10\xf8\x8cU\x83I\xac@HT?X\xbf\x89\xa5\
+\xc4\xc2R\x82\xb7\xa5\xc7_\xccz\x9cZ9H\xfa{\
+di\xfe9@\x80)\x19\x95z\xfe\xe2\xe4pH\x9c\
+-\x9eW\xb7\xdf\x0f\x9c8?'\xa9$#VH\x80\
+\xbds\xad\xb96\xca\xa4\xa6\xee\xfe\x8f)v\xb7z#\
+\xfe\x22U\xa2\xa1\xc0\xe9 yUSU\x8d\x05\xe1\x8d\
+&)\xb6J\xf9\x87z\xa5N\xbe\xef\xa6\xfb\xe7\xc0\x8e\
+\xa9\x10\x8c#\x8cy\xee\x8c\xcb\xa2bN\x80Lk\x83\
+\xb6\xf9L\x0a\xf4\xf8w\x168\xaf\xfc>\x09\xfb\xa8b\
+[\xd7\xdf\x92\x0d\xd9\x8c)\x00\x0e`Ce\x98\x80\x9d\
+\x80\x92\xca?\x015\xda\x01\x88\xc9\x19\x88\xa9\xd4\xa4\x85\
+\xd2\xe7E\x85\x96\x84\x9dV\x0aW\x1c\x1e36\x8a\xeb\
+\x82\x82\x87Z5b\x858\x10\xfe\x1e\xe3\xfc\xe8\x0dE\
+d\x8a\x04\x9a\x0a\x1b\x81\x0e\x07=\xeb\x98\xfb4\x12\x13\
+\x0b\x00\x08Q?\xd6\x03\x01%\x15B*B\xee\x01\x8c\
+\x0a;-\x0b\x88A9\xe1\x8f\x84\x00FB$\xdcC\
+\xa59\xc4\xa6\x00X\xfe\xe1u\xbe\xb2\xc5\xccf\x1d\xb0\
+3\xfdaT\xb9W\xc7[\x05\x06\x5c\x09\x88\xc0\x93\xca\
+\xe0hn;\x0e\xb3\xa4+U\xfd\xb4\xb8\xf9\xe1~#\
+\x02\xb4\x8d[X\x105tO\xfd\xdc\xa2\xb2\xa6\xde\x0b\
+\x15\xae[]\x96\xc4\xab\x08 \x8e\x1c\xa8X1\xee\xed\
+\x02W*\x8e\x96%&\x11\x15\x1f*\xc1\x88\xbfY\xd5\
+?\xc4\xdc\xae3\xf0IE\x1dF\x06\xeb\x1f\xffh\xcd\
+\x03\xd4\x88#\xe1\xa3\x02\xb4\x81\xd7\x13@\x0b\x09\x13~\
+\x96qhT\xf2I\x04\xf9y\x1f<\x11`\xb0_\x98\
+\x82\xb0\xbb,\xcd\x03\xf6\xc1^\x82\x83\xe1y\xd2kM\
+\x80K\xe5\x81\xca\xf7A\x03\xb2\x1f\xc0\xd8e\xc3\xfd\x9b\
+\x1e\xe9V\x0f\xc4;\xd1\x06 \xd1\x03 d\x9d\x8f{\
+\x16\xdbX\xbd!0\xc4?\xfe\xc9\x7f\x1f\xb5\x5c\xee\x17\
+\xbd\xe9h\x03\xaco\x00\xc4\x15\xf3rzUj\xf6\xbc\
+\xaf\x0e-K\xa1\xbe\x0f\xe0\x000\xc3z\x04\x00\xc3\xaf\
+\x90\xb0\x93X\x00\xacA=\x7fJ\x88\xec-\xa0i\x00\
+\xd0Be *\xd0\xfc\xdd\xf1\x98\xbe%G\xa2\xb0\x04\
+\xc6\xb4\xc8\xf1>\x8f\xf8>\x8e)\xd6\x00x\x00\xb2\x00\
+\xb9\x00\x87$x\xdcw\x00\x89\xd6\x9a20\xbbV\x97\
+\xa5\x8a)\xeb\xcd\xcf'\x9e'\xd4\xf9\xa3dI\xcc\x0d\
+U~z\x16]9\x8a\xca\x8f\xcf\x13\xa8\xb1\x11\x17\x00\
+4\xd3B\xc34\x0c\xa8\xe9\x00\x12h\x04q\x1f\xf1\xdb\
+$\xfe\x00\xd9\xf8m\xe2\x0fZ\x02N\xb5\xb6\xc9\xa5\x1e\
+\xc7\xf9\xe2\xa1u\xac\xfb/Y{\x9f\xee}\xb2V\x19\
+\xef\x0e\x94\xb5\xc2I\x00\xd3n\xad#\xe1\xa7\xb2\x0ae\
+\x17q\xab\x98{\xed^\xd6\x98J\xc1xK\x985\xc4\
+)\x9e^\xc0\x98\xd7hy\xa0E\x88\xe9\x1d\x00\xbcP\
+\x82\x1d?\xc0h\x0b\xb5n\x9fS1F\x93\xd6%\x89\
+\xf5n\x9b\x00-\xfc\x9b\xaf;\x0a\x0dN\x18B|\x0f\
+Uk\x8f\x07d]\xd0:\x06\x034\x12~*\xfbf\
+\x12\xc4\x94\x02\xd6\xb9\xf7q\xcc\xb7g\xdd\xd2\xf3\xec\xc4\
+/\x98\x9cL-\x00xp+\x22=\xbc\xd3MeI\
+T\xd3\x14\xf6h\x91\x00\xd8\xe6\x9cw\x0bK\xc4\x0d\xbf\
+\xaa\xd6\x98^0\xd6\xbe\xeb\x04\x84V?\xee\xbf\x01{\
+\xc6\x8e\x86\x86\x08~\x0a\xe6\x0aL\x15\xcei\x80\x01\xdf\
+\x8f\xc9\xca\x83\x86\x04\xcf%\x18.hV\xb0\x9f\xa0\x1a\
+\xd3B\xc7\x17\x0c\x0e\x0a$\xf2*OJ\xc0\x0e\xccU\
+\xc6\xd0\xfa\x5c\xe8\x97\x95\x19 \xfc\xdft\x9f=\xd5*\
+\xc60\x8bwP\xce\x9b\xfe\xd6b\xfa\xbd\x17\xc8\x8a[\
+\x7fPf\x00\xbe\xf8\x9d\xfe\xcb2OCxFz\x9e\
+<o\xceA\xbe\x1f\x8f\xb3c=\xc3\x08p\x22\x1e\x9a\
+`\xf6#\x8co\xebw*\xa6\x8a\xfc\x1d\xb2\xd6\xa2\x1a\
+\x9aBy|\xe5\x16>\xef\x8es\x5c]\xeeC\xff\x22\
+Yy\xfd\xa8\xac\x15&(,D\x02\xdf*\xc6\xcf\xaf\
+\x05\xc2Y\xe7\x0b\x1a'\x5c\xfc\x88$\x86%2<\xdd\
+e\xe8\xe9\x8es\x85\xe7\x0c\xb3\x0e\x06\x82\x12\xf5\xef\xba\
+%w\x8d\x94\xb8*j[bH\x8c\x05(\x03\xd4D\
+\x1c\xc2\xf9o`*\xb4\xcdx\xfe$\x9a\xee!\x0f\x0d\
+\x06\x0a\x8f\x1e\xfb:\xf9\xb7\xac\xed\x93\x99\xd5\x8a\xad\x9a\
+\xe2\xd47{\x8a\x8a\xe3t\x186\xfd\x9e\xb2\xf2\xba\xb1\
+\xac\xb5L\xc3\x5c\x88s\x85\xf8\x89\x96\xde\xef\x0f\x8c\xeb\
+\xcaC<\xcc\xd3\x16voya\x14\x0e\x19\xc7z\xcb\
+\xe4_b\x06\xf1\xf9\xbb\xf3dI\xc4\x91iW\xe4\x0f\
+\x14\x10\x88\x1b\x00\xe0\x04{\xbe$\xb5T\x90\xb8_X\
+\xa1\xc1h\x15\x8fx\x1cq[\xfc\xe2}\x95+\xd7\x80\
+3Oo\xa8i\xff7jaz\x81\xf8+Z\x9d\xcd\
+\x9c\x09\x0d\x03D\xcf\x9d?t/\x97\xa5q\x81\xe4\x19\
+.tw\xcf\x93U\x8d\x81\xf9b\x94WF\xc2e\xad\
+\xb0C\xbe\xc7\xb4<\x80\x03\xa6$\x04\x00\xe4\x96\xd8\xd9\
+\x99\xdf\x15+\x1b\xbc;W\xd6z\x85@\x12+B\xae\
+\xf1Tg\xc8\xca\xeb\x03\xb2$\xa6BO\x02\xaa\xb0\xcb\
+\x0dc\x0e\xa2\xb7\xe9[~ \xa64\x06\x82\xf7,W\
+P\x9c\xf8T1\xc1[\xebX\xb3A\xfd\x95\x0a\x85\x03\
+\x19\xa8%!z\xc2\x81\x0e%\x0e\x0a\xf4\xf3k\x17\xd4\
+pp\xae\xfa8\x22T#u\xf5\xd8\x90\x04\x16\x1e\xe7\
+0\xb9\xbb\xd8=iN#\xe3\x0e\x1dP\xf4?-\xf6\
+\x93VA\xe0\xf3\x87\xa35\x95:(>\x97W\xac9\
+(\x97\xf5\x81\xbf\xb7%\xe2\xb5\xd2\xbdHZ\xf0>\xf0\
+\xa3\xd7\x07q+Wd\xa2\x07\xec\xce\x1aj\x0e\x1b\xf7\
+\xae\x8ad\xefZ\xc5\x9a\xec0C\x8cQ\x9a\xcb;4\
+\xca\x1d\xea\xd7\xfd\xf92S\xc9\xd7Nc\x92\x08\xa8x\
+\xbe\x04$\xee\x81\x89V\x02([$\xf0\x88\xff\xd1#\
+\x8b\x18\x05\xe3\x10q|\x1c|lH\xbe`j\x80\xfc\
+2_\xdc\xaa\xa3QI\xb1\x18c$\x0c0AH\xb8\
+\xd9\xf0\x0e\xac\xeb|\xdckR\xe0JO\x19b\x800\
+Q\xa8hA\x9d\x83\xb2C\x85\x9c\xc0\x92\x0a:\xe2L\
+c5j\x1c\x05\x07>\xaf\x7f\xb0\x88\xd8O\x07\x95\xfa\
+\xb2\xda\x87\xf1~P\xf7\x11\x97\x22\xa1\xa0\xf2K\x22\x07\
+e\xd4j\xf1q\xfd\x04\xa0\x04\xbc \xbb$\x94$\x0c\
+\x00\x01T0\xff\x8fy\xb1\xa1\xea\xee\xa9 \x81h#\
+\xdaCe\xc4\x89cTT\xd9W\xab:Q\x22\x81'\
+\xe1\xa3\x02\xca~l\xd3\x1a\x86\xff>N\x0c\xd9\xaf$\
+\x84T\xf8\x8dDG\xc0\x0a\xd0\xe7\xc4\xa1?^V\x0f\
+\xe2\xaa\xba\x0b\xc3\xa8;R\x96Tm\x0f4\x95l\xd7\
+j-0\x1bWN\xa9\xb8\xf0\xbc\x99\x7f\xce\xbc\xf9u\
+\xfd{Pva:ld\xb5\xf1\xf1z\xe0z\x11\xc5\
+\x1b\x8f\xcf\xa4\x22\xc2s\xa1R\x07\xd0\x03\xf0\xc5\x01\x84\
+\xda=\xfb\x80J\xaf\xefgP\xca9\xa0P\xd5\xff\x9d\
+\xacQ\x97\xfb\x9deM\xac*\xb4\x07n\x19\xe6Y\xc7\
+~`\xbd\xb1\x9fy_\x00\x0b\x98'\x00\x9c\xd6\xde\xe0\
+\xa0B\xec+\xd4\xefG\xe3\x1a\xa1|\xce\xb3\x16A\x09\
+\x82\x87\xfd\xdc(}\x83\xdfy\xb2\x13\xf4\xe7\xf9\xb9l\
+k\xf16\x80;\xa8\xf2\xf8\x0b\xf6\x05\x80\x1d\x95%\xc6\
+\xbf\xb2\xce\x08DG\x00eT\xa09\x7fH\xdc\xf9\x5c\
+\xec\x7f\x02\x00D-y\xce\x88\xb8\xb1\x0e\xf8}\x12}\
+\xf6\x1f\x01/@\x11\xc0\x04\xc0\x0d\xfb\xec\xb7\x9e\xfap\
+\x8a,U\x0eQK&!\xe1}X7\xae\x10L\x0e\
+\x93%\xffB\xc5\x1e\xbf\x0c`Ek\x0f\x94Y'\x8c\
+\x000\xf8\x89\xb8\x0fT\x98\xb9\xefP\xd0\xa1,\x02\xf4\
+!&\x07\x00J\xa0\x0eu\xd2@f\xa8\xc2\xd3R\xe4\
+V\xb8\x10\xdf\xe3\x1c\x02\xd8\xa0\xb2\xc9\xab\x81\xccH\xa0\
+\xdd\xda4\xd9\xc5\x15\xea;,&\x87\x98 \xf7\x07\xf5\
+ik\xd7Do\xec|Y\x13\xc3\x8a\xfdm\xbf\x1d\xd3\
+%\x1cp\xf7\xb3\xb2T\x09\xc7/\xd3b\xc7\xfd`\xbd\
+\xd1\x02\x81\xff\xe7\x95y\xd0\xec/\xae\x8f\x00\xfdh3\
+)\x01j8\x1f8\xb7\xddR\x19cv\xcd\xd4\x8c}\
+\xee\xb1\xb2|ND\xb4B\xed\xdfS\x92\xa2\x22m\x8a\
+?\xe2\x8e\x00\xd7\xdd\xe7e\x89\x99a\x0d\x84\x00\x80\x19\
+w\x06\xb0\xea\xf5\x11-\x9fh\x1f1\xee\x8d\x1e~\xfc\
+\x0e\x0cC*\xed\xd6\xfc\x898\x03\x7f\xce\xd4\x0f\xe2\x18\
+(\xc5\xee\xfd\xe7\x9c\x0f\xc6\x01\xe3vi\xa9\x84\x81\xe0\
+\x1e\xdd\xf0\x9f$\x90h\xec\xc0\xd0\x80\xfa\x8f\xa8\x22\xf1\
+\x02}\xd0R^\x00\x00 \x00IDAT\xda\x13\xdc\
+O\xd6!\xe7\x0a\x00\x00\x05\x0bS\xc4\x038'n\x81\
+\x81\xe11\xb4\x93\xf9\x93G\xd5:Q|\xca\xeb\xab_\
+9y\xdeIU\x04\xee\xc8b_K\xe3\x17\xef\xab)\
+\xcbP\xb1\xbf\xbe\x8d\xc1c\xfdv\xd7\x15\xbb\xd6\x09\xda\
+\xc7\x93h\xa0\xa7\xd9\x84\x06\x06\xa2\x94\xf6\xa35\x01\x16\
+\xb3\xee\xf9\xb2\xb2\xce\xd7\x94\x95\xef\x0f\x90\x95\xef\x1f\x90\
+5?\x11\x15j*\xa0|q\xee\xb3n\x89'y%\
+^\xa0u\x12f(\x05\x17\xc1\x09\x7fjq^\x7fh\
+\xb1C\xdc\xd3\xfd\xe5&\xc6\x16\xe2\xe1\xb4\xc6\xac[O\
+\xeeV\xa0\xf3:\xedO\x90\x95\xd7g\xc8Z\xde\x82h\
+\xea\xf4\x8d\xb2\xf2\xba\xc2P\x98\x8cVg'\x94\xfd\xa7\
+\xfb\x83\xfaO\xb7\x82I\xad \xff\xd0\xf9\xcb\xda\x89\xe9\
+\x01s\x16\x0a\xbb>\xdd\xe1\xe5\xe7\x96/\xf6\x94\xa4\xc5\
+\x80H\x1f\x22\xbe\xac?\x00^\x80i\xce\x1f\xfc<\x22\
+\xda\xf6\x03Q\x91wO;-\x01\x11\x0f[\x1c9\x98\
+J\xcb\x0d\x1aC\xfd\xa9\xb26>/\xd4\xe8\xc9\xcf\x10\
+\xd5\xb38n\xb4\xf4\xaed-\x03\x98\xdb\xc4mLi\
+\x01`\xf79^5\xc7\xde\xd1Z1\x829\xe6\xfc\x07\
+ r\xbay\xf9\xdc\x9b\xd7)\x18\xc7h\xdaE\xb7\x96\
+\xac\xb5\xc2L\x7f\xe0\x8a\xbd\x192q]\xb4\xc6\x18\xf0\
+\x02x\x8e\xfb/\xef\xbb\x9c[\xd8\xf7J~\x15M\x11\
+\xe2|\xfc\xb1\xc4\x84\xaf\xa8\xe7H\x15O\x9d\x1ej\xe0\
+\x1dF\x01\xfe\x97VO\x80;\x18\xd9\x8b\xcb\x1e\x87\xa9\
+N\xc1\x9a\xf7\xe7<\x06\xf0f*\xd5\x8b\x87\xe9\x03c\
+\xd1\xd2\xda\xbaT\xce\x85\xfe\xbfd\xe5\xfb\x8ddMs\
+E\x12\x85\x12)\x9c\xad\xaa\xffw\xb7\x1b0\xb9ZV\
+\xf6\xe1\xfa\xb2\xf2\xba\xb1,Uvp\xa4\xd6\x08\x88\x00\
+\x90\x079\x1a\x0f\x16\xd4W\xc6\xf78\xe0\x10a\xa5\x02\
+\x0cS\xb7DCI\xf5\x02\xa7\x07$(Z\xa8\x80\xbb\
+b\x17\x95m6\xc0R\xb5f1 \xc0\xab%\xc7\x0a\
+\xf5\xd5=\xa9\x11\x80\x10\xe8\xc8\x0d\xfd\xd3\x89\xf7r\x0b\
+\x88&\x0d\xc0\xc4^\xc3\xd8\xab\x10\xa7\x10\xd5fm\xab\
+\x9a\xfe#\x89\x80\xe9`|F\x12I\x22\xb1!\xb0\xd5\
+\xf6}B\xa2\xcc\x1f^\xadU\x1e\xfd}\x88\xa5 \x92\
+\xa44\xfcii\xac\xa0\x81\x91\x8aS\xffG\x0bX\xba\
+\x17\x14[;9f\xa8Cr\x0bB\xc4\xf7+\xf6\xc9\
+\xa4\x06\xec\x0an\xed\x89\xdb\xbfQE\x82\x8a\xa7\xb4\xe3\
+Y\xa9'|$\xe2\x12=ht\xb4\x03\xb8\xb4\x04g\
+\x08`\xef\xa9:\xbb\xc3\xc2}z\x0aXH\xecH\xb0\
+X'\x88by\x81\xc6\xb8\x11Z\x02\x1c\xa8\x90\xb8\xc7\
+F\xe1\xe0\xa02\xca+\x94|\x0eR\x124\x8fK\x0b\
+\xb1@\xad\x96\x15R 9\xa2\xacGB\xc0\xf5\x11\xa0\
+\x8d\xc7\x91\x01\xa0@\xfd\xa5\x92<\xeeMb\x9d\x918\
+q B\x89m\x22m\xc3:B\xccj4g>\x1c\
+\x06j\xe2\xccM\x1fO?\xe0s\x13\xa0s_\xf8\x5c\
+\x5c\x1f\xcf\x05\xe4\x94\x9f\xff@\xb5F-\xe5@d\xbf\
+\xfb\xbf\xd3\x1a\x14\x08\xfd3\xfdy8\xc89\xc0\x1d\x00\
+#\x06\x15\xfbd^\xe8b\x0c\xcf\x8b\xfb\x01\x15\x9f\xcf\
+\x87z9\x00\xe0#fFx\xdc^\xff\xdd\xfe;\xfd\
+w\x92\xe6\x08j\xf7G\x0f\xbd\xd9\x93o\x0c\x22\x7f\x11\
+H\xe2`IH\xb9/L1x\xf70F\x11*\x1f\
+\x15\xfbH\xfc\xdb\x9c\xf8\xc1\xef\xb0\x9e\xf9\xfc$rT\
+b\xc7\xc0\x08\x00\x0d\xcf\x89\x9f#\x01\x03\x10b\xddA\
+=\xe5`D\xdc\x12\xbf\xe1\xf57\xfd\x97\xac|\x7f\xf0\
+\xa0\x0e\x1d\x89\x0a\x80\xd6.\xb2\xf2:\x19Z6&\xbf\
+p/\xec\xf7\x87\xc4,\xc6\xf7\xec+Ks\xdc/1\
+\xc5\xf4\x89N,Q5G\xd4\x8b\x16\xb1-\x87sc\
+\xfa:SjQ\xfdv\xaf.\xeb5\x12Q\xf6\x11\xcf\
+\xf9\xd6Ak`\xfac\xbf\x0f\xfb\x11\xa6\x0a\xda\x1c$\
+D$\xba\xac{\xcf\x03\x8fJ5\x94k\xf67@\x17\
+\x0c\x0e\xf6\x05~\x05\x00\x86\xe7\x04pI\xc0E\x85\x96\
+\xc4\x0d\xff\xc1\xfamT\xfda?\xf3w\x01*aR\
+\x80\xf4\xf3=\x8c\x04\xfc#\xe3\x91~\xeb\x16\x07Z\x89\
+\xb8O\x97ZTn\x0dO\x19\x80\xa1\xe6\x96\xbb\xa8\x10\
+\x1b\xc0\x8bJ;\x9a\x0f\xec#\xc6\x8aB-\x86\x91\xc0\
+\x18EWb\xe2\xba\xb8?TH\xd1\xe2\xe1\xf7\x01.\
+`\xc2\xd1\x8bO%\xca\x0c\x9e:\xcd\xe7\xc3)1\xf3\
+>\x8d\xfb\x0dpB+\x1c\x1a\x00\xe3\xca1\x81\x16_\
+\xb4\xd2\xb82\x1c\x09\x1a\x7f\xd7\xe7a0L\x00\x0a\xa0\
+\xae\xbb7\x9f) U\xf4\xec\xceT\xb93\x80\x11c\
+\x5c\x99\xba\xe3\xf3%\xa6'p\x1e\xc0l@\xf4\xef\xab\
+2'lG\xa6s\x8cx\x8a\xcf\xcb\xfa!n\xb1\xff\
+\x8b\xc4\xd3\xfe\x8b\xfb\x19\xfe\x0b\xa6\x1f\x9f\x0b\xb1)\xc6\
+\xac\xb2\x7f\x00v8\xef\xcd0\x88\xebv\x01h\xb2\x93\
+\xac\x8d\xcd\x0b\xad%W\xec'7\xca\xd2\xb4\x06\xaf\x8b\
+\x10+f:\x07\xf3\xb9Ip\xd0|\x82\x99\x86v\x91\
+\x03\xf7h\xf9d\xff3\xa5\xc1Z\x14\xf1\xbc\x1c\x97r\
+_\xa35\x81\xfd\xed\xc0<\xc4\x85\x89\xa7\x08\xd4at\
+\x22B\x08\xa3\xd4\xf1i\x8c\xbbE\xc3\xc0\xad\x22q>\
+\x8e\x81&\xfc4\xad*\xb4\x90\xd1\xaa\x02\xd0\xcc\xfa@\
+#\x80V\xd9\x8b\xecg\x1fZ\x90\xe93\xd9v\xb2\x8d\
+\x80\xef\xee\x17\xdd\x99\xdd\x99\x89a\xe8\xca\x1f\x22\xc9\xb5\
+a\xf7\xea\xe6\xa7\x00\xc0\xbb\x97\xc9\xca\xeb\xb6\xb2\x16\xb7\
+N..v\x91\xf3\x80\xab,>vH\xd3\xca\x917\
+\xae\xfeX\xfe\xa5\xf8\x83\xb9w\x17{\x97+\x9a[5\
+\x8av$\xdc\xc4\x0f\x9c\xaf\x00\x8d0\x99\xb4\xda\xbb$\
+*\xcd\xfa'\xae\x19\xfbS\xc6\xbb2\x9d\xc5\xeb\xb0\x8a\
+\xf1\x1d\x97\xee\x13\xe7\x8c\x19\x07\xa8\xf6\x93\x98\xc6zA\
+\xac\x93x\x99\xfb\xef\xf3\x18\x11\xe4\xe8M7\xd3d\xba\
+\x86,\x8d[\xa6\xd5\x11\xb18\xf2\x224y\xce\xd4@\
+\xdfZ0\x19\xc69J3`\xe7\x06\xfc\x85\xba\xbd4\
+\x05\x04Xt\xb2\xd4\x1a\xed\xd7P\x91\xf7>%?\x99\
+\xf7\xfejm\x1c\xa9\xe3\xda\x92(o\xaeD9\x98\xaa\
+P\xfd_*Kby\x87\xcb\x1a`\x87\x86\x06\xad\xcf\
+\xac\xc7\xca\x88\x9eIq\x15\xe7\x15\xe7.~\x9f\xd6A\
+\x9e\x07\xf1\xad\xb5%\xf0\x07\xc10|\x8a\xe3H\xf6#\
+S\x9b^!K@\x1e\x001\xef\xff\xderz\xbd7\
+M]:x\xf0+\xc1\xf0Z\xd5\xe73\xd4{\xb4-\
+(\xb4\x1eT\xe7f4-\x12\xb7\xb4L7\x93\xb5\xd6\
+\xde(\xe4\xbe\xb7\xbec0\x16\x22^{\xb1\xef/\xaa\
+\xfb\xf8a\x18\x92\x007\xf6/0\x15\xc4g\x15\xa3\x15\
+\x0d\x84\x88\xf3\xc8+\x0c\xbc\x87\x9fg?\x99A\xc7\xfa\
+\x86i\xd7\xfdZV\xd6\xed\x99\xb2\xf2\xfdN\xb2\xf2\xfd\
+A\xb2T\x18\xf5:\x9d\x0dj\xcf]\xb2\xf2\x0b\xfb\xc9\
+\xca\xeb\x07\x8a\xed\xd4\x02\xf5@$\xe9-\xf0\x02\xa9H\
+\xca\xd9M\x0c\xa4\x0e\xe3\xdb:Q\x1f\xf6\x90\xa5\x1eN\
+D\xe3\x9e\xe6^:T\xe1\xe9aX\xc7\x94\x05DD\
+\xdc\xb3\xd4\xbdFV.\xe4g\xb2T\xd9f,\x02\x07\
+?\xd4k\x1c\x0c\xa2$,D\x12\x1b\x90\xa5_Z\xf4\
+E\x14\xb9\xab\xd3\x01K%\xce\x95\xce\xe8\xd5\x86j#\
+Gy\xb1U\x88\x9f\x9c*\xb2\x04\xe8\x04R KP\
+\xf9\xd5a\xb2\xa5\xd5\xa2\xdf\x92>\x8f\xd2\x84\x07Rb\
+\x808\x0d\xad\x0eP\xd8\x08\x1c\xe8\xed\xd7\xdc\xddG\xda\
+\x98\xbd\x8a\x9b\xdf\xf08\x14s\xf7\x82\x05\x00\x02\xa5\xd7\
+\xe3~\x22\x11\xa3\xf7J8\xf71Is\x80\x84F\x1d\
+\xd7\xe7>NBI\x05V\xb8\xe3\x9a\xa9B\x8a\xf8\x15\
+\x88\x1a\x09\x12\x9f\x83J/\x07\xfbx\x9e7\xaf\x044\
+\xcc\xa35P\x11\x22@\x04HcF\x02\x7f\x7f\x5cy\
+~Ju9\x0d\xa9<i@\xceC\xe4\xc7S\x15B\
+\x9c\xc9\x9f\x03\xe6ET\x0aH\xdc\x08\x849\xb8IH\
+x\xbeT\xec\xb8o\x1c\xfc\x00%he\xdchUt\
+\xde\x97}C \x05\xf0\xc5\xfd \xa1\x00\xd8\xe0\x95\x1e\
+R>\x1f\xef\xc7\xbe\x18\xf7\xd8r_p\x10<o\xbe\
+XG\xcc\xd1&ac\x8c\x8e+^\x04p\xdd\x16\xb2\
+\x94\xe8P\xa9\xe5s\xd3\xea\x81\x1a3\x08m\x16\xdb\xbc\
+7}O\x05u\xa1\xa0\xbe/\xb0\x1e\x10\x01\xeaOq\
+\xe2\x0f\xd5\xf0\x9e\xe1\x80\x8a\xc0\xeb\x1c\x8b6\xfe\xc5\x94\
+i\x9e\x13~\x03\x84\x95\xc4\x8e\xfbK\x85\x86\x04\x9bu\
+I\x22\x08p\x00\x10\xc0}n\xe3\xef\x86\xf5\xc7\xfa$\
+\x11\x07 \xe09\xf1\xca\x81J\xc5\x9a\x8a6\xe3\xcbF\
+\x8c\x90\xa8\xa0r=\x04\xa8\xf8_\x02Q\xf6\x03\x89\x19\
+\xfb\x90\xca\x13\x81\xef|\xff\x1c\xd3\x22\xa8\xb8\xfb:\x11\
+7R\xa3T\x9d\x86\xb2\x82+\xe3\xa8?\xc3\xd4\x809\
+\x82\x16\x02\x0c\x0b\xf6\x05\x22\xaa\x04\xd2|\xce\xeb\x9d\xf8\
+\x92\x08MF\xaa\xb9\x9e\xbb\x1d\x88<\x81;\xd4z\xee\
+\x13L\x14\xfc\x94[U\xa2\x97\x15`\x80\x8a\x09\x95}\
+\x12D(\xfe\x046\x04\x0e\xe3q\x9en}\x09\xed\x01\
+\xce\x0f\xd6\x13\x95yD;\xc7\x95\xdb%F\xea\xc0\xac\
+\x17D\xf9\xa8\x10\xff\xcb\x81\xbe\xc7\x86Qq\x8a\xfd\xf2\
+\xe4\x05[\x16\xc2\xff\x22\xf6\xc8zp\xc0X\x13\x89m\
+\x12\xf0\xfa\xb3\x12\xa8\xfe\xbc\x02\xeb\x83\x98#\x8c\x0d\xa8\
+\xb6\xec\x03\xd65\xd7\xcf:f]\xe1?\x00\x06\xa0\xee\
+\x12\x90\x92\xc0Q\x89\x010<I\x96\xe6\xda#\x06\x89\
+\x0a2\xfe\x84\xd713\x82J\x08-\x11P\x5c\xff)\
+KL/\xee7@,\xd73\x1a\xcb\x1a\x0c\x03*\xcf\
+\xc4\x03\xfe\xbe\xff\xbb,M?\xbaD\xd6\x00\x00\x02\xbf\
+\xfe`Yy}\x9d\xac\x89=\x866\x0c\xad\x12\x04\xd4\
+\x00\xab\x00|\xf4\xb6\xe2\x1f<\x96\x15\x8d\x22\x98<5\
+\x1ex8\xf9m\x12\x1aT\xe1\x19_i\xa6YPM\
+\x99\x06\x03\xa5\xdc\x15t\xc4\xa7\x08\xfc\xa3\x95\x89D\x0c\
+\xcd\x8d+d\x89\x8a\xfd\x83\xa1bX\xeeq=\x97a\
+n\x226\x16\xadl\xa8\xf8\xb3\xcf]`\x8a)Q\x8c\
+\x81D}\x9b\xa9N\x8c[5%;\x98\x00\x14\xaa(\
+\xcc\xb8G\xb8\x8a\xd4};1\x19\x99v\x84H4\xcc\
+6\x18^\x00p/1\x80\x06#\x821\xcf\x9f\x96%\
+\x80\x80\x04\xdfc\x94#!\x03\x80\xe3s\xe1\x97\xcc\x08\
+\x88\xc0\x9e\xf5\x8c\x08\xaa\xef'L\x8d`\xf4<\xd7\x89\
+%\xef'\xad\x9d<~\x91u\xcd\xdf\xe3}\xfe.+\
+\xc7\xe6\xac\xac\x89\xbdU\xa6\xef:\x0d\x88\xed\x96)V\
+\xe2\xcdn\xffb\xeaE^G\xd6\x18\xb6\x8c\xb7\xebW\
+.\xf6\x0ck\xb1\x9c\x9a\xc6\xc11\xfd\xc3\xcc\x83\x0a\xdc\
+\xfc\xb11\x0b\x22\x01\xb5\x08Y\xf5\xa2s\xc9\x7f,T\
+O\xf8\xd6z\xc1~$^\xe1\xfc\xc2\x9f\x03(\xa2y\
+\xe3u\xddm +\xaf\xcf)\xa6q\x87\x87\xc8\xca\xdb\
+\xad k\xad=\x8c\xf5d\x0aChjX5\xbeR\
+\xd2\xf7hs\xeb\xe3y!\x9eg\x80\x9d\xeb\x0fF\x00\
+\x895\xe3\x00\xaf\x95ld\x03\x0a\xa8\xac\xe3\xaf\x00\xce\
+c\xba\x14\xe7\xd1\xaeU\x9d\xa2\xed;\xf2\x19\xaf_\x18\
+\x05\x91\x9f\x19\xa0\xa7\xf5$\x98[\xe38\x1d\xe6\x9bE\
+\x0cI\x98C\x5c\x8ex\xd6q\xc5t/Y\xb9\x1f\xeb\
+\xc8R\x01\x90\xb8\x96)1T\xb6\xd1\x96q\x8b\xc9t\
+gY\x8aOh\x95B\x8b\x00\xa0\x9b\x16\x01\x80S\x9f\
+/1N\xd1L\xf0\xf0\x9b\xce\x03\xe6\x8e\x97\xd5\x96\xa4\
+\x01\xd8\xb9\xd2\xadY+\xba\x10\x06\xa3a\x1bY\x02\xa8\
+\x10\xe3\xe4|%n#\xcf\xb2\x98i9\x05\xcf\xac\x14\
+{M\xc3x\xae\x9f\xe3\x9dI\xb4\x91\xe9JT\xf2\xcd\
+\xacBs\xac_W\x96\xc6m{:A\x9c\xf3\x14,\
+`\xf0\xa2}\xe0\xb85\x0a0\x14\x0a`\xc8\xffd`\
+\x12\xc7\xbar\xfe\x10\xe7/\xadD\xb40\xb0\x7f\x0cT\
+\xce\x82\x14\xd2\xc3\x05\x22\xde\xbf\xb2\xd8\xab\x92z7c\
+\xe08\xa0|\x00\xa1\xba\x19\xd4\xe9/9\x90c,\x1c\
+\xbdEV\x1d\x0e\xd1/.\xe08\xcf\xcd\xfc\x9d+\x9a\
+l\x1c\xa8\x11 \x82\xa8\x9c\xba\x075\xe6-\xb3\x00\xf9\
+\x5c\x04\xf2 \xa2\x88\xc1 \x8a\xc2\x18!\x02\x04\xcf\xb3\
+\xaf\x89\xfcR\x0ex\xceJ\x89\x1aH\xad\xeaH\xafJ\
+\x15p!\xe1%\x00\x98\xf9Y\xb1\x9fZ;\xe1;\x8d\
+:E\x022]M\xd6z\x81\xc2\x81h\xf9\x7f\xd2\x81\
+\xfeR\xeds0f0\x1c\x1eH\x9f\x10\xd9k\xd2\xc1\
+\xec\xb1\x18\xb1Q\xe5F.\xf7\xc1\xfa\x88\x11\xa4\x0d|\
+\x1d\xcbx\xe3?\xab1%\xa2E@\x22F\xf7\xa7^\
+L!\xb9op/\xe9i\x89\xb2\xe6y\x9b\xf4\x84E\
+o7\x09\x10\x09\xb7\xb6\xdb\xf2)P\x5c\xb2v\xb3\xb6\
+\xc4\x92\x0d\x06\xc2\xcb\xf7M\xe4j\xa0\xfc3\xff\x96\x03\
+\x8du\xc0\x02\x86\x92\xcbAA@N\x825f\x00P\
+Q\x00\xc9\xbb\xdf=<\xfaW\xee\xf36M\xed=z\
+'-6\x16\x07\xae\x03\xb1\x18\xb7f\x8a\x5cTF9\
+\x88\x09\xc0Ab\xff\xe9uh\x91\xa1H\xf08\xa8a\
+\x02PA\xa3\xc24N\xd8qT$\xa8\x04\xaeTN\
+\xf9w*\xc7T&\x01\x04\xc6Te\xee\x13\x8e\x85\x7f\
+'0\xa6\xe5\xc0\x15\xc7\xea\x08\xcfL\xaa\xd9\x88\x0a\x19\
+\xa8\x8a\x9eM\x0e\xaa~\xa4\xda\xcf\xd8@&!\x00\xe8\
+\xc0\x08@,\x94\xc4\x94D\x19\xa0\x82\xcf5\x9e\x16a\
+\xeaw\x00$\xf8\x03\xd6\xddk\x1c B\x11\x85\xca\xce\
+81zaW\x1b\xb5.p@\xbb\xf2\x11\xef\xc7:\
+$\xe1'\x91\x03\x08h\x89\xebp\x9f\xf9y\xee\x03\x15\
+'\x127\x02~\xd4\xc7\x01l\xf8\xef\x04\x04\x5c?s\
+i\xcd\x08\x09\x11EZs\xf89\x9eg\x0e\xb0\x16z\
+\x9ci\x03\xfc\x1c\xefG\x0b\x03\x15?Z\x1dH\xe4\x9e\
+\xee9\xc67Y\x9c\x92J\x22\xf7\x8d\xc0\x0d@\x95\x8a\
+\xbd\x81\xa3h\xe9\x82\xf2g\xa4=\xb4=`x\x90\xf8\
+\xb3^\xf0wTX\xb8\x8f<\x971\x93\xa3\x89\x0d\x0e\
+?\xe7\x04\xba\xf2\xbe2\x00I`D\xa5\xf9u\xde\xef\
+\xaf4%\xdc\x81Y\xf8]\x00\x0c\xee\xe3\x9c\xfd\xcc\xb8\
+\xe5\x8c\xc0`\x0c\xa8Q\x11\x81J\xc8\xb4\x11\x9e'\xc0\
+\x03\x80)\xfe\x91\xe7\x0e\xe0\xc2\xe7\x05h\x80)d\x06\
+FP\x17\xf1K\xac+\x12I\x80#\xfc\xfcMC\x05\
+7z\xcc9_\xa9\xa8\xf9\xfa\x83)\xe6\xde\xc2\x08`\
+ie2\xc3,\x02\x17\x00\x11\x9f\xcb!\xb6I\x82\xcb\
+4\x05\x98pT\x80>>\x8cA\x8b\x04\x1c\xff\xe8s\
+9\xd4\xe0I\x84]\x89\x0f\xe0\x82\x84\x9f\xf5\xc0\x1c{\
+\x80Z\xd6'@+q\x0d\x9a#\x04\x9e\x0e\xdc\xe6.\
+\x97\x95\xbf\xbb\xf50v\x15\xca|\x00(\x16\xd3\x9c~\
+T\xd6ZY\xa8PE\xa5\x8a\x8a\x8f\x81\xf8\xb8\xbeq\
+\x02\x07@\xcc9@\xab#\xc0 ~\x0bj3\xad\x12\
+$\xa0\xd6\x84\x08J\xb7\x13\xe1\xa8\xc4!B\xe6@\xb6\
+_E\xd6\x80\x84\xc0\xe5\xa9\x10R\xf8\xa0\xa5\xc8\xfe\x15\
+\xf1\xd0\xa0\xbc\xef\xe68\xc5c\xa8\xa6\x0b\xcb\x9a\x08q\
+T\xcc\xd1\x14\xe2\xfes\x9d\x8c\xfb4\x03pr\xbc,\
+M/\x01\xa0\xe1\xdfy\xff\xfa\xd5\xb4\xa9b\x9d\xb3/\
+\xf7\xb7\x88\xdf\xff\xca\x92\x08\x1c\x15a\x18\x99hI\x10\
+\x17\xc3\x1c@d\x17J?c\x05\x89\xeb\xd0Z1\xb3\
+\xaaj\xef\xff(1\x03\x010\x10q\xfc\xe1\x00p\x04\
+@M\xe1\xcb\x22\xd0\xd1\x1ak\xed\x9e\xf0\x0f\xc4u\xbc\
+\x9fD\xf1\x9e\xe5\xf8\xe4}\xa90\xe2\xb8w\xe6nY\
+qC\x1f/\xf61\x03\x0b]z^~\x0e\x9d\xbe$\
+b\xbd\x9a\xac\xbc\xae,kq\x0eL\x01\xa8\xf6\xb4r\
+L\xbe K~\x99\xf8G\xebd\xd3\xd4\xb2j\x805\
+Z\xb0\xd8\x7f\xc4\x9f|n\xc7w\xd1\x9aE<\xc1\x17\
+\x09\x1a\xfb[u\xd3MM\x11/~\xaa;VV\x1e\
+\xfb\xcfe\x0d`\x8b\x04\x8c\xfc\x81\xf5k\x11\xcc\x10]\
+sB\x15\x8c\x86\xb5\x8a\xa9\x10\xb9b\xb1\x95Z\xa1\x8f\
+\xcf\x0b`\x10\x09<~U\x05%U\xf4\xd7+&\xf5\
+\xf67\xc8\x92\x06\x0a\x09#\xe7\x01q\xb3\x99E\x8c\xd7\
+\x0b&3\x22n0'\xdc\x02\x0c\xa3\x00F0\x15\xec\
+\xd0\xac\xa0\xf2\xcd\xfd&.V\xe1\xeb\xc4v\x1e\xa3\xd1\
+\x11Zn\xe2\x1f\xbd\xa3\x8e\xa5;D\xa2\x80s\xdf\x96\
+\xb5\xfc\xac{\xb6\xac\xe5y1\xf5\x83qx?7\xa0\
+,\x98\xf6\xee\x04\xc8\x9aq\x01\x90 %\x80\xca\xc0p\
+\xfe\x17\xf1?q\x09cT\x17\x91\xb5)+\xf1\x1c\x01\
+\x94\x99^\x02#U\x1a\x1f\xa7\xf8\xfc\xd9\xb8\x15Ha\
+\xacP\x08 ?\x8b\xf3\xc7\xf1VLqP\xbd\xffs\
+U\x04\xbeN\x9f\xd0\xd0\xc9\x0a\xb0\x18\xa0\xec\x0f\x935\
+f\x95\xa4\x13%\x9e\xd8?Q\xd6\x80O\xc6/\xe2\xf7\
+\x03\x00EC\xc4q{L\xcdc\xfc<@\xfb\xef\xbd\
+\x0f\x00\xbe)H\xf9z\x83yF<\x84?\x05x\xe1\
+|q\x5c=\x8b8D\xa5\xb8\x94\x0d9\xf7{Y\x1b\
+C1\xbbF\xb1\xd5\xbd\x91~\xe6\x03\xf6\xe0\x14H\xb3\
+1\xaf\xa9)\xbe\x12\xa1z0w\xcf\x92\xa5\x0a\x00\x89\
+\x9dEc\xe2 #\xc1\xd8g8H\x83*\xf1\xb3\xc1\
+\xe1N\x9ffD\x8d\x00\x98\x0b\xe3d\x22@\x02!#\
+\xd0\x81\xfa\x06\xb5Ju\x9f\xbf=\xce\x18(\x02b\xfd\
+\xd5ERk\xc3\xadU\xe7\xb1U\xb4u\x5c\xed\xd4\x10\
+\x1b\x1cc\xf7\xa7b\x97\xa7\x1b\x0f\x02\x0a\xb2DE\xc9\
+*\xb4\x15\xc7\xbe\xcc\x81\xd8R^\xe8\x0b'\xc7g\x04\
+4\x02F\xdd\xa5\x8f$G\xc1\xc1c\x15\xfc\x9a\xe6\xdc\
+\x93\x025*\xe1PIF\xbd\xac\x15\xf1M\xe3\xd2j\
+%\xe2\x0f>\xf8\xce\xf3\x01\xf7\xda\x94\xa8P9\x80\xb2\
+#7\xf2\xd3\x84\x14\xe2\x88U9xwBp\x01\x08\
+\xa8TB\x81\x06\xf1\xe59\x92(\xf1\xf9\xe8\x8d$P\
+]b\xa4rM\xc2\x82\x03\xe3\xdf\xf9\xe2\xfa\xf9\xfc|\
+1u\xc2-$$D\xa1)\xa04#3\x0dTw\
+\xbb7\xdd_\xe66\x13\xa8\x90\x10\xa0F\xeey\xc9\xb4\
+\xbaD\x02\xe6\x0ad\xa8\x01\x8f{z\xb9.(\xb2n\
+\x19\x80\xe2\x1f\xe2\x90$\xf8\xfc>\x09\x0d\xc8\xa1\xd7\x7f\
+0\x08\xac\x92\x1b\x0e\x80\x96\x1c\x0e\x18\x00\x18\x80\x15\x18\
+4$\x1a\x0by\xfd=\xe8\x04\x0a*\xfc\xffx<\xcb\
+yV\xc5\xa6'\xebk\xb2T\xc9\xda\xdc\xe2\x81\xf4@\
+\xb3\x9e\xf9<<\x7f\x12S\x12a\x10Q\x80\x0c\x128\
+\xa8\xc8T\xaa_8T\x06\x99\xc3\xdeo(K\x88\xec\
+\x0bSo\xdc\xaaiZ\x09-C\xa8k\xa3\xbeL\xaf\
+2~\x86\x0a\x10\xefK`\xc3}\x02\xf0\x22\xf1G\x1d\
+\x9e\xde6\x1c\xf6\xa8\xf5!\xae\x1b\x80\x83\x84\xb9\x01.\
+Cb\xb2\xe9h\xfd\xd3\xd21\x9e.\xc1\xbf\xc3\xb8!\
+!\xe0\xef\xf3\xc5\xba\x19\xa9\xaa\xc7z \x81\x04X\x01\
+@\xe2\xb9m\xec\x03\x84\x8a\xd2\xf5\xb2\xe4\x97Pe\xe7\
+}\xa8\xc8Q9\xb3\x9f\x8e\x9eZ\x80Z'\xa81\xfd\
+\x81\xdeq\x02\x10>\xef\x83\x1e\x17\xfbbW\x1e\xb8o\
+\xecK4)`>l\xeb\xc0\x1f\xed\x94+-\xbe\xf9\
+E\x8f\xaf{\x9e\xcf\x0b\xae\x9b\xfb\x0a0\x0c\xd0\x91\xb5\
+V\xeeL~~<\xc5\x81\x00\xcd\xd7\x01`\x1a\xc0\x00\
+\x14g3e\x00\xce\xe2~\xb5V\x81\xc5\xaa\xffB#\
+\xe2\xef\xbe\xbfwx?\x00l\x9b:8y\x9f+\xc3\
+L\xa1\xa0\x82\xc0}\x04`\x18k\x13\xf0\x5c\x11\xdd%\
+\x11\x80)F\xc2D\x02\xc3\xbe\xf585T\xa8\xe3<\
+\x07@\x84\xa9\xf4!\x8b^\xd12H\x0b\x02\x15)\xfe\
+>\xcc'\xc6|9\x91b\x9ew\xa8;#\xd6\xc6y\
+\x8e\xffG\x85\x9b)\x10\xb4\x10\xf8\xfd\x18\xdbY[\xe0\
+\xf6k\x14\xf4\xf8\xde\x15\x94`\xe8Q\x81F\xc5\x7f\x8f\
+\x81\xb2\xdb\xcf\xc8\x92v\x0aTbM\xcdY\xa8U\xac\
+\xa6\xef\x94\x95\x9f?Y\x96\x0a\x10\xcc=\x87!HK\
+\x1b\x09%\xe7 \xfb\x19?\x01P\x0c\xa0Ib\xc5\x94\
+ \xc6\xf6\xc1\x10\x82i\xc3\xd8@\xc6(\xd2\xe3\xee\x8a\
+V\xfc}\xd65\xaa\xe3fh\x00\x0c\xc4\xf9\xe3\x0a|\
+h\x05\xb0\x8f\xddZ\xd5\xed%\xabZ\x0a\xc5\xdayN\
+\xe50\x12\x12W\xfeb_\x03\xb8\x1a`B\xa4XJ\
+R\xd2\x92\x8aV\x15\x12h\xf6+\xbf\x87\x9f\x1b\x03\xab\
+\xacw\xe2B\xd6/\xaf\xacK\xb5r^\xd5z\xea\xa3\
+E\x86\x96\x0e\xaf\xe7\x00V\x5c\x88\x8a\xb1\x8e[\x0e\x0c\
+\xa8\xaa\xb1\xb4c\xf9\xfe?\x87^\xe0\x00\xde8w\xd9\
+g\x8c9\xfc\xd1@]\x9fw\xb0\x99\x0a\x0f\xc9\xd2T\
+\x00\x18\x15h\x0e8\xce.^\xa5\x8e[\x8e\x96/I\
+E\xefl\xe0\xee\xa6\x94\x08\xf9}\x18\xdb6{h\xb1\
+\x92\xc0uGt\xff\xaf;\xa2\x89\xc1N\xae\x955\xd1\
+\xeaH\xfc\x17\x96\x95\xd7{d\xe5u\x1bY\xea=g\
+\x9d\x11\xcf\x01\xbcn^O\xfe\xc6\xa4\xa0\xd5\x0c\xb5v\
+Z\x7f\xce\x95,\xaa\x0br\xe7\xa7\xfdDA\x07\xff@\
+!\x04\xbf\x0b\xb0\x8a\xd8\xab\xc7\xbeNv+\xb6\xbb\xb5\
+\xbb\xca>\xe9\xd6-V>\xcf\xcc\x8d\xb2\xf2k\x87\xcb\
+\xdazG\x9c3Z\x00\xad\xbeN\x1c\x11\x8c\x00\xce\x13\
+1\x06>\x9b\xf2\x13\x00M\xb4\xd0`v\xc0\xec\x22\xee\
+%1c\xda\x17\x85\x1e\x18ehe\xb9\x87~b\xcd\
+\x9b\xd0\x10\xf1\xf9L\x02\x1e\xe3\xd5\x89C87\xec\xa7\
+k\xaf\xf7\x8b\xd3\xb4\x0f\xee\x97\xb5\x12\xa2\xd5\x81\xd6\x22\
+\x8b|\x87V\x04\xcc`\x8f\xfb\xac\x0c\x87r\xde\xcc_\
+\xaf\xd8\xfam\xddu\x97\xcb\xca\xba\xdaEV\xee\xf3\xa6\
+23.J\x9c4\xf3\x17Y;\xa7\xfa\xcde\x0d\x00\
+\xe9\xffT\xec\x8f\xc9?\xb1\x9e9GO\x9f\x9e1=\
+=\xc5Q\xecc\xc6n\xbb\x00U{\xf8u\xde<\x5c\
+\xec\x11\xb7\x06\xdf\x97Z\xd5\xd4\xf0tT\xca\xeb\x88o\
+\x897Q\xd3\xf78\xbe`,\xc2\xdcf]\xc3\xfc\xeb\
+jI\x22\xfe\xbd\xbfTV^/\x19\xc6g\xc6\xf4\x83\
+\x83\xad\x95\xf0d\x8b \x22\x8a\xebV$z\xf2\x83\xe1\
+\x84V\x13\xcc\xa6\xeddu\xdd\x0f\x09\xfe\xb7\xcd8\xf9\
+\xbc?'-\x10\xb4\x88\x18\xa0\xa4U\x0a\xad\x87:\xee\
+\xf0\xf6\xf4=\xd3#|\xae\xce\xf6\xd7\x17\xbb\xcec\xd1\
+\x9eh\xa4\xaa$\x883\xbf\x95\x95\xef\x9f++\xfb\xf1\
+PYSy\xed\xbe_\xec{\x8dj\xd5\xfd\xad\x98(\
+F\x87\xcbZOD\x04\x1aT\x96\x5ci\x08\xb1\x9e{\
+=\xff\x18\xf1\x97/Y,\x86\xca\xddQ\x16_qb\
+\x17c\xac@\xb6\xd9p\x04:\x1c\xa08\x0e\x02~*\
+R,\x00*RPT|\xa3B\x0d\x9e\x04\x89\xc0\xdb\
+\x81W\xb7\x99\xaci%\x84\x08\x8c\xc7mM_a\xf5\
+K\x8b\xa3E\xaf\x9e)z1\x16\x04\x04^j\x8eY\
+\xedt\xdcK\xbad\x1d\x08\xd5\x0e\xea\xd7\xd4\xae\xd6&\
+z\x22\x07\xf8\x1f\xad\x872\xd4\x1e\xe5v_\x96\x00\x05\
+\x90p\x85\x89\xaf\xf7A\xb8d\x9a\xab*q\x96\x0bS\
+`K\x22\xc4F\x01\x89\xbb\xa9\x86\x90C\xe0}\xa9\xa9\
+W\xb7\xa6@\x98\xfb\xc5\xc1G\xe2D\xa2\x04r=\xd2\
+\x8c\x08\xc0\x80u\xf2\xc4\x91\x0a\xf68\x91\x22\x00\xa4B\
+\xd2\x8d(\xc2\x8bE\xa5y\xc1\x0a\xecH\x5c\x0b\x87\x1b\
+\xe2\x198\xde%*yq@T_\x9d\x98\x18$\x92\
+\x00_\x888\x01,\xd1\xf3\xcfu\xdchG\xcf:d\
+\x9d\x92\xf8\x8e\xe7cC\x85b\xbd\xb3/<\xee\xac\xfc\
+\xdf\x00\x04p\x00\xb0\xbfx>P+u\xc0\x9e\x9bZ\
+Apd$\xb4T\xc4\xc6\xe3\xce\xa8\xb8s\xffY\x87\
+<\xa7\xcd-\x8e\xf81\x07\xb4\xde\x9f\xa1N\xcc\x81\x04\
+0\xc1z\x1aU0\x03\xe0!\xd1\xe79\x8d\xc5\x02\x9f\
+\xe0\xe7\xb9\xb2\x13S\x00\xb5\xbbL1w\x80=\xbdm\
+\x10\x05\x9b.7]v\xbal\x13A\x81z\xa9\xf0H\
+\x01R \xfd\xaeh\x05`C\xe2\xc3>\x01\xe8a\xff\
+zJBP\x89Y\xaf$\xee\x5c\x1f\xfe\x88}\xc0\xf5\
+6\x06\xc4p?y\xee\xdco\x98\x040;xN\xdc\
+O\xfe\x0e\xd7O\x00\xcc\xfb\xe3Oy\x9e\xf8\x0b\xd6\xc9\
+HD)\xd6\x0d\x9f\x87\xf7g\x1d\xb3\xdf\xd8g/w\
+\xa5\x8c\xfd\xc2\xb4\x03Zc`\x86,lf\x8e+\xa4\
+A\xe9C\xfc\xebR\xf7\xbcy\x8c\xe4daY\xabd\
+\xd5\xb1<\xbb%J#L\x0d\xfb\x91\x10\x11\xa2\xc2\x87\
+\xca\xf1\x9c\xaf\xef\x22\x1f\x8c\xa7[|\x91\xfb@\xc0\xc6\
+\xd4\x0c\x8b\x98\xc5}c?\x93P\xb2?\xc6\x95~\x98\
+\x09\xack\x02\x14\x80h\xee\x17\xfe\x87\xbfC\xeb\x0c-\
+\x00\xbc/\x80\x0b\x09\xd8u\x03U4\xfc\x03\xbd\x94\xf4\
+\x8aR9\xe39]o\xffB@\xf9\x90\x01\x85\xe5\xfd\
+\xb9\x10\x1d\xda\xd8\xf7\x03\x95y\xab\xdd\x878\x1b~\x9a\
+J\x01\xfb\x97}\x89_\xa2\x82c5{\x12ST\x8e\
+\x11\xb9\x0d1E\x12_Z?\x00\xc29\x9f\x01\xea\x01\
+\x0e\x10\x85\xa30p\xb9,\x9d\x03|\x0e\x0a\x17$\xf4\
+VS\x0e`wEY\x13mD$\x13\x8a6\xcc\x82\
+h\xdd\x03\xf8\xb1_\x9a\xbeH\x96\xce\x033\x16\xbb\x03\
+d\xe5\xf5PYK\xdc\xe8I&\xd1\xed\xef\x9651\
+\xc3\xe8\x19\xc6\xdfyL\xefc\xc6\x1e\x8e\xa7Opn\
+\xf8\xdfc\xff9~\x08\xca\xbe\x03\xfe\xc9\xdbdi]\
+\xf2\xf7\xf0s\xac+\xd6\x05b\x9c\x9c\xcf\x9c\x8f\xec\x13\
+\x8b\xce\xc5zu \x1c-\x01NX\xe7>\x22K\x89\
+\x1e\xad<\x88\xb4\xa11\x010A\xaf\xbc\xa9\xe9\xb4\x8c\
+\xa1!\x10\x00!\x091\x00\x15@-\xeb\x14\xaa\xb0[\
+\x89\xa6\xff\x18\xa6\x1d\x94\xf7\x1cT\xcf\xdd;\x1c\xa2\x87\
+\xecG\x0a\x1b\xc7{\xbc\x9f\xcf\xcd\xe8\x09\xbf\xc8b\x89\
+\xd7{\xcc\x1d\xe7\xb9\x0b+q\xae\xe2\x9fH\x88\xa9\xfc\
+\xb2\xdf-:X\xaey\x00\x0c\xdc\xeb\x1d\xad\x04L\x8f\
+BL\x89\xa9<\xcf\xb0\xfa\xff'\x07\xed\xa6\x10\xfd\xb3\
+\xbfd\x1dwGwGuG'\xc6\x81\xcf1\x12\xf8\
+\x99=\x8a\xed^\x13\xff#\x94\xf8w\x8b\xc9Rk/\
+\xad#\xbe?\xddU\xb2\xd6\xcb\x8c\xe8e0-\x98\x02\
+CK\xd1\xcf\x8a\xa9b\xfbCY\xd2\xb8P|\xf8\xbb\
+\x16g\x06p\xa9\xde\xe8\xafy\xbf\x1e\xe8D\xea4\x8b\
+\x04\x9e\x94\x00\x01\xa5y\xe7\xa4\x84\xc8\x0c\x9fH\x00\x89\
+\x97\x5c\x01\x9d\xee-\xf3}=\xb3i0\x04#\xc4\x0c\
+\xda\xee4Yc\xba\xf4K\xcb\x1a%<D\xb7\x19c\
+\x0e\xc3j\xedy/\xa8\xeb\xdfS\x22*\xe3m3'\
+\xee\xf2O\x9f\xaa\xd6\x18\x85j\xf1}k\x8a\x03\xb6\xad\
+\x1c\xc5\xf6\xe5\x02aLs2#\x88\xb1\xec\xe1\x8f\x10\
+\xb3\xa4\xf0\x07\xc0\xc5}\xa0\xc7\xdc\x8c\x8c\xd0:\x81\x91\
+j\x7f\x5c\x12\xea\xd3kB\x0d\x83\x86\xf5\x8c_\x86!\
+\xa0\xf2\xedn\x1e\xdbX\xeeg\x7f\x9d\xaci\x08\x01\xd0\
+u\xaf\x92\xa5|\xc5\x1a5\x008!*\xcf\xf8I\x17\
+\x86\xe6\xfe$+\xff\xbec\xb1\x1d\x5c\x01\xdf'\x15\xb8\
+\xce\x1c\x9e_L7q\xc2\xdc_)KL\x00k\x96\
+\xd5\xa8v\xddv\x1e#zW\xb3\xcc\xf7\xa5\xf1\x98\x1e\
+K\x1d\xfb\x93q\xc2h\x92\x00\xac\x90\xf8\x9b9\x11\xfe\
+\x96}\x8fX\xa2\x01\x838w)dH\x8b\xe2\xd8\x9a\
+O/\xa91\xe3\xa1\xa5\xe0V\xab\xe9\x93d\xe9\xdc\x87\
+A\xf7cY\x02\xeeiy\xf3~*\xff:\x00\xd5\xc4\
+\x03f\xb2\x85\x98\xaa\x81\xb0\x88W\x88O\xc6\xcca\x98\
+\xf0\xbe\xdf\xb3\x8f\xfe\xbaXIh\xba\xede\x8d\xe2L\
+O\xdb\xdc\xb1\xb2\xd6\xa3\xdf\x9d/k\xf3\x1ek\x05\xed\
+5>\x08\x1fN\x95\x15\x16*\x1f\x84J\x13\x1fh\x89\
+\xd1<c\x025\x02]\x90Zz\xe9\xa0\x06s\x03H\
+\xa4\xa8T\x8dE\xd5\x9c\x80\x86X\x10\xbd\x81\xfc]~\
+\x9e^{*2\xae,Ee\x98\xca\xf1\xb1\x83hX\
+\x8c\xb1\xd9S\x96\xd4\xad\xa1\xf8\xb1\xa1AJ\xa1D*\
+A\xda\xdb\x01\xee\xae\x89\xba\x81\xba\xb7(^\x8b9\xd0\
+\x5c\xe8q\xe6\xc9\xf3\xb9U\x1f|\x89\x11\xc1C\xbdp\
+\xf7\xac\x88S\x1d\xc3\xd5m'K\x0c\x87<\xf6p\x15\
+#?\xbb\xa4\x8a\x02\xbd\x7f\x9arphzn$\x0c\
+\x04\x06 \xba8\x1c\xf7\xb0\x84*\xac\x91\xac\xaa\xca\xbe\
+\x8d[&^\x93\x02\x07\x9e\xff\xa8W=\x12)\x1c\xe5\
+\xb8W\x9d@\x9a\xfb\xc0I9\x06\x00\xf8\xef\xac\xab\xf1\
+\xf8\xac\xb1\xb8\x1c\xd7G@\x84\xb6\x03st9`\x8c\
+\xb0174*E\x04\xa2TRI\xc0\x09\xb8@2\
+\xa16\xd3\x1bH\x22\x82\x9a\xf3X\xf4\x8c\xdf'\x01d\
+?\x08\xe1\xd4\xcf\xdd2\x04\x06\xf1\x5c\xc7j\xe2\xfc>\
+\xf7m\xac\xa6\xcf}\xa3\x92D\x22D\xc5\x13\xd18\xa8\
+\xf9\xf44\xaf\xe0\x04\x07`\x8f\xdbiq\xcd\xa0\x1c\x7f\
+\xc5\x07'b'h&p\xfd\x5c\x0f\x01\xae\x01\xc0\xa8\
+\x84\x12\x10\xf3\xfc\x96\xf1\xf5\xade\xad\x12\x8f%+\xe1\
+\xfdJ\xd3\x95\xd2x\xcac\x5c\x99\xa4\x07\x8aD\x8e\x0a\
+\x0e\xd4rz\xabLm\x8f^P\x12w\x9e\x07\x0c\x00\
+>/\x81\x19\x013=\xe8\xf8\x11\xee?\xeb4(\xfd\
+^\xef\xfc\x1d\xfe\x1d\x80\x81D\x89\x03\x01\xa4\x9b\xdf\xc7\
+/\xf2\xb9\xa8\xa4\xd3\xeb\x0e\xe3\x09\xc0\x8d\xbf\xc3\xfd\x04\
+\x00\x18\x8dQ\x8a}\xc1+\xfb\x06\x00\x82\xf77\x13\xa4\
+\x1c{\x15\x80\x8a\x04\xce\xbd\xb1\xe5\x9a\x06\x91\xb5]\xdc\
+\x0a\xc3sc\x1a\x0a\x07.\xfbd93%\x18s\x89\
+_h\x0c\x88\x01\x80\xe1z\x08\xd8\x01*\x18\xafJ@\
+\xf46k\xb3\x1c\xe6J\x0c\xd4Q\x03\xba!\x8a\xc9\xb8\
+J*%\xecK\xa8v\x16\x8f\x0cm\x0a\xe6|CQ\
+\xe6\x00e\xdf\x03P\xb1n\xf0sc\x15k>\xf7\xa2\
+1\xb5`X\xcf\x00\x06\xf89\xfc.\xc0\x10=\xcfh\
+\xd5x\xdf\x86\xfa\xbd\xc7\x9c\x95$}h\x89\x000?\
+\xcf\x89\xcf\xf9N\xbc>`\x0a(\xe7\xa5\xdfWu\x12\
+UJ&\x9f\xb7\x96\x07\x00\x07\xfe\x9e\xdee\xc6\x832\
+\xd6\xd2T\xd7\x002\x18\xe3\xe9}\x8b\x98]P\x86\x11\
+cb\xbe;\xcc\x08\xc4\xfb\x08HG\x94w4P\x04\
+\xdb\xd5\xca&\xd4U*Y\xc7\xc8Z\xc55\x00=\x80\
+\x8cQ\x5c\x11\xad\x83\x8c\x89b\x5c!\xfe\x12\xe0\x8fq\
+p\xbe\xefq\xbd0\x9dD\xb5U\xef\xff\x1a\xb2tn\
+\xd1\x13\xecD\xbf\xbfJV^\xb7\x905M\x99\x98z\
+\x80\xa6\x10\xeb\x08\x7f\xc3\xe7\x1e\xabF\xab\xc2\xb9[\xaa\
+,\xf3<\xd9o\xec\x1fZ/\xcdp\x88\xfd@A\x82\
+\xf1Z\xf8+\xfc\x0a\x09;\xdaM<7\xb7D\xc4\xb4\
+\x15\x12\x06\xfc\xb4\xe3\xb1\x18\xb7\xe7\x82Q\xfc}\x98I\
+\x88\x95\x19\x10B\x8b\x22\x12\x04\xf7b\xc7\xbe\x008\xc0\
+?\xf1\x9ch\x8d\x81\x89D/2\xaa\xdb\x1e\xbbI\xbc\
+\x17S\x1c8\x9f\xcc `\xaa@$\xe8\xbe\xdf\xccK\
+\x9f|\xc1cn\x01F\xc7\x0c5\xf6\xb7\xd7[\xec\x07\
+\x00\x01\xd6\xd3[\xfc\x9c\xd1\x0a\xc0\xbfp?\xcf1c\
+\xf4\x8ffX@\xa5~T\xd6\xe2#\xee\x1f\xa2\x87\xdd\
+\xd9\xb2\x94hY\xcb\x09?5\xb3L\xb1\xe2g\xba_\
+\xc9\xaa\x98\xf7&3\x9b\xd4\x84}\x10I\xb4\xd6\x06\x9a\
+\x08\xb5\x15\xf4\x81\xf2\xf3O\x90\xb5\xb8\x16\x06\x06-~\
+hb\x88\xff'\x06`\xbd\xaaO\xa4\xfb\x01\x10rc\
+-}\x04E\x9d\xefk\x1c\xbc\x97\x0b\x14\xe7%\xca\xb3\
+[iP\xcd\xaf\xa7\xe5\x92\xe9|$\x1e\x22\xe1D\xf3\
+\x83u!\xaf\xbat\x02\x86Hh\xedG\xbb\x13\x8a\x9d\
+X\xee\xc3f\xb2\xb2/\xd7\x96\x95\xe3\xf02Y\x8b\x9f\
+\xa7\x1f\x93\xa5\xc4\x9f\xb8\x978\x81s\xdb\x09\xfd\xf4\xa9\
+\xb2\x14\x0f\xc0\x5c#\x1ed\xea\x97\x19\x190\xa5\x19\x1f\
+\x18\x0c+~\x0f?\x0e\xd0OK\x17\xe2\xe7\xfb\xc9\xd2\
+\xfd\xe0\xfc\xe0|\xa0\xc2\xcf}\xc2/\x00\xc4\x22&\x8b\
+\x06\x09\xfb\xc6\xd7[\x13\xd4\xf2w\xfb\xd5ei\xdc&\
+\x9a1\x06z\xa2\x10\x8bX\xb8V\xfd\xb6i\x1a\x8c\xfd\
+F\xb7\x94\xac\xbc>$k\xf1J\xbf\x81\xac\x8d'\x0d\
+\xffI\x85\x9a\x160\x18\x17\x00H\x1eW\x08\xd3-\x0a\
+\x97\xf8\x15\xb7\xd6\xd4\xb1\xcf\x1b\xb5\xc26\xe3H\xa3\x10\
+\x06p\x04\xe3\x89\x028\xad\x89\xc4\x91\xb4\x80\xd3\x9a@\
+\xab\xce\xbe\x1e'\xce4\x04\xc6'\xc3\xe4\xa5\xa5\x8eq\
+\xd9\xc4ULm\x82!G\xdeB~J+\x18q\x02\
+\x85\x1e\xfc\x1e\xf1\x1b\xe3\x1f\x01\xea)\xe0\x11Ws\x9e\
+3\xf6\x94\x021\xd3x\x9cW\xcf\xce?\xb5Xy\xa0\
+3\x8b\x16+\x09\xc3\xcce\xb2\xf2>+\xc9R\xe5\xff\
+\x9b2\xab\x07~\xb6\xfc\xdc\xf5\xb2\xd6sT\x1d\xe0Z\
+I$\xea\xc9\xeeyg\xfe)\x07\x16\xa2M\x04x\xfe\
+\xe0\xa11\xb0\xa7\x91+\x90f\xabP\x87\x18\x10\x89\xeb\
+X4\x0b\xe4\x1fut6 \x01$\x158\x0el\x0e\
+\x9a\xb1\x88\x10\x15}!\xb0+\xbb\x02{IB\xa4\xa1\
+\xfap\x1d\xa6D\x065R\x14\x97-S/\xa1\x1fH\
+\xa58\xfe\xd5\x1b\xfe\x8c\xa4\xaa\xcf\xf5,\x5ckg-\
+\x10\xc7\xa1\xfa\xfe\x90p\xd7\x80\xe4\xd6\x14x\x91\x00\x80\
+\xac\xb3\x90Pw\xa6W^\x01\xf7\xf2\xfe\xf9\xb5S%\
+\x87\xb9\xf4$V\x8c\xcb\x03\x81\x84*\xcd\x81E\xe2\x8c\
+\xaa\xb0\x91\xcc\xe8\x01\xd3v\xd9#\xddg^qD$\
+\xda$\xfe<\x07\x1c\x16\xaf\xe3J>\xcfo\x5c\xd1'\
+\x80\xe1se\xe6\xc4\x92\xe9\xfbq\xef3\x81:\x89\x11\
+\xeb\x80\xcf\x09\xb5\x90\x8a\x1f\xad\x1d\xff\x17P\xc1+\xeb\
+\x8d\xf7\xf1}\xc4\xe1\x86F\x06\x22W\x88\xfb\x8c\x81\x1e\
+\x02;\xee\x07\xef\xc7\x86'P'\xf1Xo\xa4F?\
+\xbe\xff\x5c/T#\xc6\xe8\x100\x93\xf0\x13(\xdd\xe7\
+\x80\x87\xbf\xc7A\xe8\xb9\xf1\x91\xd0\x22\xcaG\x82\xc4\xe7\
+\x80\x027R\xef\x8d\xe7\xc8\xf5>d\xc6\x02\xda\x0c\xac\
+;\x12C\xc6\x16\x02\xcc@\xf5E\xfc\x09\x91\xab\xed<\
+'\x9b\x03\xe8\xbf\x86@Y\xfc\x8d\xca\xe0\xf8\x9c)a\
+\xb4\xc6\xe0(\x11g#Q\xe4\xa0\xc1\x8f\x90\xa2\x1fk\
+8\x00\x00 \x00IDAT\xc0\x93\xe8\xb1\x1e\xe9E\
+\x1fk+\xb0\x1ey~\xe3\x0a1\xeb\x82\xfbJ\xef\x1f\
+\x013=\xde\x00\x92\x1c\xec\x8c\xabd\xdfp P\x09\
+\xe6~\xe1\xa7\x1a\xb3c\x00\xb8\x1e\x1e\x89`\x128\xf1\
+9Y\x1f\xb4\xe2\xd0kJ\xa0\xb1\x8e\xd7\x19\xbd\xd3\xa8\
+b\x1b@\x8a\x04\x87\xfd\x8d\x0a8\xd7?\x06\xaa\xf0\x9f\
+\x00\x0d<g\xe6j\x83T\x83\xb0\xaf\xe4\xf5~\xb1\xb5\
+9\x98\x02\x82&\x0b\x955\x0eP\x12\x1f\x18\x1bh\x98\
+\xb87\x1b\x86\xc1t{Y\x12\x932p\x15\x09)\x9a\
+1\x04\xa2\x00+\x5c\x07\xfb\x82\xfb\xcaAL \x07`\
+\xcd\x1cfz\xd8\xd9\x97\xb4P\xb0\x7f`\x84@u\xc7\
+\x0f\xd1R\xe1\xca`$\xaaW91\xbeo\xc1V\x9a\
+\xe99\xb2\x06\x5c\x07S\x82D\x93}\xd6\x12\x90\x81\xb9\
+\x04\xe3\x85\xf7\xe1\x1c\xe1\xf9 \xd2G\x85\x89s\x131\
+U\x18n\x9c\x93\xac{\x12#ZtX\xff\xf85Z\
+\xc9\xa8\xf4\xd2B\x07\x90N\x02\xc6y\xe9\xebAC\x22\
+\xe65sN9\x11\x0e\xff\x0e\x85\x98\xbf3\xbe\xff\xec\
+C\xee\x0b\xfb\x88\x0a\xcd*\xb2\x16\x18\xd7\xe99\x9fL\
+\x22\xa4N\x1c\xea\xf8\xae\xe5\x1bP\x83\x1fa\xee\xf3\xf4\
+m\xb24\x8d\x82B\xc0\x98\xcaN\xc0\x08S\x82\x84\x1b\
+*9\x00\xa0E\xecHd'7\xcb\xd2}C\xe4\x19\
+\xe6\x1a\xbd\xa6\x00\xf9\xd66\x89\xeb\x81\x1aLB\xc3\xf9\
+\x83\xdf\xc3\xdf\xf0\x5c\x89\xdf\x10\x85\xc5\x0fR\x98\xa1\x10\
+\xe3\x04\x92\xf5\x1d-\x09\x00+\x8c}\xb4\x9f\x88\x1ey\
+\xde\x0f\x7f\x8d\x7f\x01\x88E\xec\x8f\xa9F\xd6.\x08\xea\
+\xfa\xaa\xb2t=L;\x00\x88\x07\xc8\xa65\x07\x0d\x00\
+\x80Fzn\xff\xe9\xc2\x12\xf7\x83\xfd\x82?\xa4E\x81\
+V9D|\x8f\x1a\xe2\xc2\x18+\x0c\x00\xb4\x9f5t\
+~5\xbc\x1f-+1\x86\xfa5\xc3\xb9\xa5N\xfdZ\
+\x99\xdfX\xd64\x85\xba?\xc8\xdcZ\xb8m\x03,\xab\
+\xaa\xff6\xad\x05W\x1d\xfd\xb5\xa7\x7f\x93n\xa3n\xa3\
+:\xce\xf5\x16\xcdQ\xd7PW\x8duE\xfc;\x18\x07\
+\x16\x81\xed\xd6\x97%m\x04\x8b[\xa2\x89\x10\xads\xc7\
+\x17\xfbf\xd2\xe4`\x0a\x16\xeb\x18\x7f\x06c\xc7\x0c\x1f\
+\xfen\x8cw40\xc3X\xed\xda:\xf2\xe14}\x84\
+s\x95\xf8\x08\xff\xeas\xabV\x98?\xeas\x5c\xd7q\
+\xb0\xac\xfc\xf3\x13\x8b=\xa9\xb5\x0a\x86F\xd0\xce\xd5\x04\
+\x0c\xbe\xafj&<0\xf4\xfeGB\xcc\xf93\x1e\xd3\
+\xf8\xe5\xda\xd5/\x0d\x9c:\xbd\x22\xfe\x1e\x00\xa5\x81\xb4\
+\xfe\xcd\xb2VAf=LW/\xb6F\x9a\xa6\xa4\x82\
+\xe1\xef\x1fG\x9b\x89x\x94\x82\x05\x22n|\x0e\xfc8\
+\xad\x87;xJ\x11T\xf0S=\x06\x8f\xf3\x871\x80\
+n5\x08\xe0uT\x11\x0e&\x96{\xfc5Dy\x9a\
+\xc5\x85\x9dh\xcf](3\xe0\xb3\x89\xfd\xf5\xde\xed|\
+\x008\x98\xbdGV^\xbf++\xeb\xaa\x97\xa5B\xab\
+\xc5>\xab\xc6\xc2Z\x09`g\xdc\xeb\x81\xb2\xd6z\x05\
+\xf3\x86\xeb\x83i\xd1\xef\x22K\x0c2\x18A\x16o\x9c\
+\xbbCf\x06\xfbif\xee\x1e\xee\xeb\x5c,Q\xf2i\
+I\xf3\xef\xc5t\x07?\x87\xe9b\xc3\xcfG^@\xbc\
+?\x9eN\xc5\x98\xdco\xc8\x92x\xac\xfdo\x9cS\xf6\
+\x8f\xd3\x13d\xedza\x04L\xcc\xfc\x8dx\xcdL\xaf\
+\x88\x7f\x01\xd2\x01\x1eX\xaf\xc4\xddL\x7f\x22OF\x0b\
+\xcd\xf9\xc8lE\xc2\xbf\x9e\x90k\xf5\xc0\xbc89\xd6\
+%e\xcd\x91\xd2\xfb1\xb3g\xb1\xb2Agn)V\
+\x1cIw_\xb1\xfb\x9bXZ%\xd2/\x9bT1\xdd\
+\xfb\x15\x89>\xbd\x8a\xdc8\xa83W\x0f\x88\xed\xbc\x0d\
+\x5c\xc1\xe6\x82M\xa5\x88\x0a\xff\x98*\xef\x85\x1ebb\
+\xf4\xf6\x8d{[Ix\xf8}\x02LzJ\xf9\x9e\xf7\
+\x01\x89'!u\xafWl\xc4'\x06\xd2=$\x08\x0a\
+g\x97M\xa2a\xf4<\x92x0\xeeD\xe1,j\xe1\
+K\xa4\xcfCb\x85\xca\xae\x10\xb9\xf2}\xbfc\xb1\x1d\
+\xda\xbc\xd2\xda\x83wd\x9b\xa20\xf9\x85\x06x\xa5V\
+\x03*\xbd8\x124\x0c@\x16\x1dXD\xcf\xb6)\x8e\
+\x0bP\xb3N\xf7s\xd9(!\xd8$r\xcc\xd3\xa4\x17\
+\x90\xf1\x1d\x04v<\x97\x11\x12\x19bb\xfc\x1c\x09\xc2\
+\xb8b:\x9e\x8f=\xae\xe4?2\x9a\x1bO%\x1f\x07\
+\xcaA1\x06\x02\x08d\xc6\x89\x0f\x81=\xeb\x04*\x0d\
+\x8e\x93^R\x1c-\x09\x18\x89 \x01\x0f\xe2i[\x99\
+\x02\xcd\xba\xe1\xefB\xc5\xe49\x93@\xf0\xef ~c\
+\xc6\x0c\x81\x10\x0c\x04>7\x81\x0c\x89,\x89\x1b\x9f\x87\
+\xbfO\xa0\xed\xae\xaf\x18\xb3H\xcf8\x011_\xecK\
+\xeeo\xa3\xee/0\xfd!\xc4\xbbx\x7f3B\xa8\xb4\
+\xc5\xf3\x07Ph=\xff\xc3~\x03p3\xc50z\xa8\
+\x19\xff\x08\xe0aF\x0b\x22>Q\x01\xbec\xd4B@\
+`m\xb1\xc1\x98_O\x02\x0a\xf3\x82\x96\x06T\xe0\xb9\
+\xbf\xe3\xb1m\xdcG\xee\x0f\xc0\x13\x9f\x8b\xe7\xc4\xf3\xe0\
+`f\xbc\x1c\x0c\x19\x0e\x0a\xff\x5c\x8c\xb5b}p\x9f\
+\xa8\x00\xf3\xbc\xa0\x9e\x81<\x938\x8f)\xfb$\x06\x00\
+8\xcb:`&\x01\x02\x00`\xdfp\x1d\x0d\xc8\x19\xf6\
+\x17\x81\x1b\x95\x1c\x10\xf3\xd6\x0a2\x04\x1c\xee\xd1}\x8c\
+_\xe5:\xf9\x9e\x7f\x87\x92\xees!\x9e\x07\xfb\x9e\xfb\
+\x0c\xe00\xee\x89F\xd4\xcc\x81VP\x9d\x09\xa8\xe9\xa9\
+\xb6\x0at0Z,\xca\xc3\xbc_\x0e\xd4P\xe1\xdd\xd8\
+\xfbgm\x8bSmj\xa0\xc0\x14\xf2x\xae$\xb60\
+\x97H\x98\x00t\xf0\x17\x8cC\xf4\x98L\x11Ek\xc5\
+\x1b\xcd\x15z\xf7\x11M\xe4\xf7x\x9e\xec7\x00\x07\xee\
+\x8f\xf7qhm\xbc\xcf\x81\xab\xf7C\x09\xa7\x07\x06\x06\
+\x15#\xfe\xfe\x19\xf6\xe3$\xb8\x1b\x9a\x91\xf1T\x03\x9d\
+0\x0dXo\xacC>\x0f\xda\x02$6n\x19\x8b\x7f\
+g\xda\x0d\xbd\xc7T\xaa\x01\x1cHp\x01\x0a`:\x00\
+\x8c\xd2\xd2A\xa5\x84s\x97@\xd6\x89s\x14\x12\xf0\x7f\
+P`9\xafI\x5cal\x90P\x03tS\xc9\xbfH\
+\x96\x12\x13S\xc4c\x1e4\x011\x80:\xeb\xd0\xc0\x05\
+\xe3\x80\x03\xc8\xe0y\xf1y\x0d\x00\xe0\xe7\xa7/\x915\
+q\xc0\x18G\x05\x05\xd5\xad\x09\xe17\x10\xf7Cc\x89\
+\xb9\xe3h\xc2\xd0\xb2\x00\xd04\xae\xfc\xd0\xda\xf8)Y\
+\xab\x80\x93\x00\x03\x80\x01\x9c\x02l0E%\x0a=\x04\
+\xb2\x04\x9e$\x08\xf8\x0b\xa8\xaa\xac\x17*\xa3\xde\xef!\
+\x8e\xfb\xa5!a\xa2\xd7\x9e\xb8\x12*5\x158\xa8\xf0\
+\x01\xb4\xa3\x11E\xcb(\xe2j\x00\xf4\xf8W\x8f\x8bF\
+|\x0c\xd1<\xfcW<W\xc6\xc0\xa2\x9d0V\xe9\xc7\
+o\xd0\x92\x82\xff\xbf`\xf8<%\x1c\x1f\x98ln\xb9\
+\xa0\xe5\x83\x0a'\x14\xee\xd0\xba8`\x98\x96\x15\x94y\
+W\x90IX\x00\xb4'o\x91\xd5\xcf\x7fS\xfd\xfcn\
+)\x89D\x1d\x11@?\xc7\xee\x11Yy\xbd\xb6\xd85\
+f\xb2\x94\xf8\xab\xfb\x8d\xac\xbc>(K\xef\xf3\xe8d\
+\xfed~\x15I\xac\x89{\xb7\x87,i,H\xfcz\
+\xe94.\x11\x06\x82\xa9\xd7\x00\x121.\x13\x86\x8e\x00\
+\xea5\x0d|\xbc\xd9\xfb\xfd\x07\xe9y\xab\xb0\xb1Jj\
+eT<|~\xeb\xd5G\x15>\xa62\x00\xbc\x11w\
+X\xe4n\xba\x93\xac\x01>16\x8d\x9f\xa3\x90\x02\x00\
+$\xa6\xe1;\xd2t\x14E\xeb;\x18H8\xc5\xf1\xc6\
+\xfdI\x9b\xe6\x8dn\xfd;\xd1=\xf0\xb7;\xde\xbbt\
+\xfa\x87\xaa\x8d\x05C\xc4\xfb\xa0\xf6\xa6\x9f\x91\x98Y\xd6\
+\x0e`\xddN/\x94%\xbf\x0a0,i\xb9/\xa6\x96\
+\x86\xb7\xca\x1c?-\xd3Z\xdf\x1e\xd3\xdaI\x8f\xba*\
+\xdd\x17<\x8ef\xd2X\xdb\x07\x91E\x8bf\x060o\
+\x7f\x15\x00\x0d-\xc8h\xdc\xd0\xba5\x9a\xc6\x15-\x05\
+\xb9p0i\x05\xdd\xb9[\x8a\xdd\xdc\xc4\x0ek~W\
+\xce\xa7n-Y\xdb\xdf\xfd\xb7e\xc9\x8f\x00\xd4\x13\xef\
+3u\x87<\xd0\x9aY\x93\xc5\x5c\xa8B\x84\xdb\xd3\xdf\
+\xba\x8f\xcb\xca\xdf]\xb2X*\xc0\xc54\x063\x0bb\
+\x8a\x89\x01\x89\xca\x18\xdb%\x15R)\xd0\xaa\xe2\x7fS\
+\x8a\x97}\xdeGO\xff\x1a\xd3gU\xe0\xe6\x8ar\xba\
+_\x91Z\x04\xacM\x13\xfbG-1?k\x00\x02\xe7\
+P\xb4,\xecR\xad\x9d\x1b\xf8\xefq\x81\x01\xa6\xc4\xe9\
+\xb2\xf2\xfb\xf5+\x01f\xdeg\x01l\xb9\x95\x89s\x8e\
+\xe9\x13\xe4\xab\xd3\x0de\x8d\xa9\x85\x08\xeb\xec\xccJ\xb2\
+\xe4\xd0\x8d\xf00O\xb4;XV^_+s<T\
+\x16\xc0\xcci\xc5\xa4\x05\xf0sY\xaa\xd0\x1b)\x9a\x1e\
+\xee\x1e\x09z\xa1\xcew\x8f \x08\x05\x0f\x9e\x8a5\x88\
+*\x09+=\xfeT\x0a\xa9ts\xd0\x83\x00B\xed$\
+@\xe5\x80\x22p\x22A#\xe0\x1c\x8f\x09\x04q\xe2}\
+\xd9`cuu\x02(\x0e\x22(\x18\xc8h\x10(s\
+}\x88\xc4Y\xdc(\x1c\x06\x81\x967P\x0d\xd8\xd7O\
+\x95S\xfe\xdd\x0e\xa4\xf6\x14n\xda\x00\x8a\xee\xa5\xc5^\
+\xd6\x02\x9f\xda3wS\x0a\x0cH\x80\xa0\x12\x13\xe8P\
+\xd1\xca\x81\xde2\x0e\xd8WN\x01D\xa6\x1c?\x94*\
+\xccT\x9c\x99\xc7\x89\xa3\x80\x1a5\xa6^\x8e\x02\xf9\x10\
+\xf7\x03\x89\xe29\xf1:\xaa\x80\xc6\xf3#\xc0\xe0\xdf\x09\
+\xc8\xd98\xe3qq\xfcw\x12\x19\xfe\x1e@\xc0\xf8\xfd\
+\xc6\x22\x82\xfc\x1d\xee\x03\xdf\xa3\x0aM\x22A\x80\xcd\xdf\
+\x81\xe1\xc2\xbaF\xed\x7f5'6P\xca\xa8\x88h\xbc\
+\xe2bI\x14\x8a\x84\x92J3\xf7\x93\xe7\xc7\xba\xe2\xf3\
+\x93(R\xb1E\xdc\x90}\x82\x86\x03\xeb\x9f\x04\x96\xfb\
+J`\xc7\xc1A\x22\xcb\xfd\x18\x8f\x8b\xe3k4m \
+*\xac$d\xa8'\xbb'\xb1\xa4A\xc3\x81\x88\x98 \
+\x0e\xee\xfeQ\xe0J\x82\xf1\xde!\xb1\x99\xf7V\x8b\xca\
+\x9da\xca\xb6\x11\xe2\x18G\xf3=Y\xedE\xad\xf3r\
+c\xae\xea\xc6\xb2\xea\x97\xea|\xe4\x10\xbd\xa2\xb2\xee\x9e\
+\xe0\x00ZH\xa8\xf1\x1fm\x9c\xda\xe0/\xd8G<g\
+\x02u*U\x88-\xa2\x02\xce\x9cr\x9e\x13\xc89\x15\
+=(\xa0\xb4&\x99\x92\x17\xd4l\x8f\xcf\x89u\xf4*\
+W\xae\x16s@J\x02\xc5\xd73\xfd\xdc\xf8\xfb\x00\x02\
+\xac\x1f\xe6\x9b?\xe4\xc4\xdfbz!N\xf7\xa4Q\xcb\
+\x15~\x0f\x00\xe1\x0dN\x84\x08HX/\xbc\x0f\x95\x1b\
+\x12\x96%\xfcw\xd6\x0bm\x96\xe1\xfe=#Z\x80\x86\
+\xfd\x0f\x10@K\x03\xf7\xd1\xcf%\x02w\xb4:<\xd7\
+;\xa8\x8aP\x1d9?x~\xf8\x07\xfc+\xe3\xb7\xd8\
+/\x8c\x93\x84\x22\xfa\x0f':kYD\xf3\xf3\xaeD\
+25\xe2\x8cA\xf3f\xb2\xe3\xd0{\x0f\xf5\xbc\xf6\xac\
+\x9e\xd8(\xb9\x8fa\x800\x06\xd1\xbd{\x93W\xca\xda\
+X?\x12.\xee\x8fN\x81z\x0e\xf0\x1cXg\xdcg\
+\x06\xc5X\x84-\xc4\x9a\xa8\xc4Q1G\xf5\xd9\xfb6\
+\xe6\x9d\xa3\xd9\xb1\xa5\x99\x1b\x88\x92\x92\x90ZS#\xd6\
+;\x81\x90[8\x98\x0f\x1d- \xfc;~\x89\xfd\x04\
+ \x00\xf0\x83H\x11S\x04\x0c\xcc\x87\xff$\x01g\x7f\
+\xd3\xbaA\x05\x18?\xc4T\x96o\xc9\x12\xe3\xc3\xef\x17\
+c\x81\xf9b\x9f\x8c[+\xa0\x96\xd3sk\xd1\xa7\x18\
+C\x09\xc0\xf9?\xee\x09=\xcb\x018\x01\x15S\x04`\
+\x14\x18\x90\x8a\x16E*{PlaJ8\xe0Bu\
+:\x98\x07c\x91\xc5q+\x17~\x84u=\x12\xaf\x0d\
+q:*\x90\xc4/\x004_\xb7F\x0b\x89\x16L\x0c\
+Zt8o\x00TaX\xb92\x07\x83\x84\xd6\xc6\x10\
+}\xe4\xdca\xcc$\xeb\x9e\xcf}@\xb5V\xf9f]\
+Q\x800\x155\x18\x1fL\x95q\x85;(\xbdh\x81\
+\xb8\xf5\x01\xd1D\xb4\x9b\x02\x18\xa5g\x1b\x00\x01\x00\x08\
+\xa6\x0cq\x0f\x89\x06\xfe\x1dM\x01\x12\x1e\xa8\xfc\xf8\x07\
+\x005z\xec\xcdl\x09\x7f\xc4>\xe4\xdf?oM \
+\xc4\xe5(\x08\x00\xacx=\xe1\xcf\x19G\xd7\xfd\xb8\xfb\
+Q\xf7\xe3\xa6\xa5\x13b\x81\x88\xda\xfd\xfe\xff\xd3u\xe6\
+\x81\xbeN\xd5\xff?\x9f\xe7s\x90y,S\x92y\x9e\
+\xe7\x88\x1bQ(\x15\xd2\xa0RJQ*\xc3\xb7B\xc6\
+&*S\xa2_D)\x92\xa1\x22\xc9\x18R\x91P)\
+T\x86\x0a\xa1\x14\xc9,\xf7\x9e\xe7\xf9\xad\xb5\xf7\xfb\xb5\
+\xf6>\xfbr\xd6\x1f\xcf\xfd\xdcs>\x9f\xcf\xf3\xeca\
+\xed5\xbc\xd7{\xb9\xd8u.\x939K\xd7\x83\xee\xd3\
+&6n\xdd\xf9&\xe7\x95\x84Pw|wBg\x0e\
+gw\x9f\x87\x0a\x0a\xa2\x81\xf6\xc5\xdd\xa9.U\x80\x81\
+\x80\xc0\xdf]JF\xbf;\xd0\xa5 \x03\x82\x14R\xfb\
+(\xf6\x8d\xaf\xbe\xbfU]\xa8\x08\x08\x110U\xe2/\
+\x95^\xfdT\x99\xfe\xc3\xca\xeb@\x94\xea\xfc\xe1\xf7\xc9\
+\xca}\xa0p\x8e$}{\x5c\x09\x18\xa4\x84\x97\x07T\
+\xcfs\x91\x1d\xe2\x19\xe15\x5cL}\xechb\xebk\
+\xea.\x93\xbb\xed\xffwp\xa9\xbas\xdd\xad\x00\xb1\x90\
+9\xfc\x7f\xb0\xb4+Q\x12\xc8I\xda?\xb2\x1f\xf1'\
+\xf0#(9\xfc\xa6K\xd5v\xd3\x91\x89\xd7W\x5c\x06\
+\x04~\xf1'\xb0\x83\xb0\xb7\xb0;\xd9O\x90\xdd\x92\xc0\
+\xe2\xff\xeb\xeeX\xb3\xaa\x00<\xe7\xb22\xcdQ\xeb\x0e\
+\xd2\x0c;\xc7w\xff\xba\x95\x1f\xc59\xd6\xb6A&0\
+\xc1\xf7\x93H\xd8\x22\x15\x03N\xf43\x5cJ\x0d\xfe\xd4\
+\xee.v\x9b_s\xa9\x02]\x9fp)\xed\x04i\x93\
+\x17\xed8IX\xd0\xd6\xf1\x00A\xd7\xe5\x07v\x1fw\
+\xb1\xf7o\xe4R\xbay\xa4D\xb5\x07\x04\xbf\xedb\xbf\
+\x7f\x87K\xf1[\x86\x0d]\xec\xff?\xe8R\x90\x84\xd8\
++\xc3k\x87mS\x80\x96s\xeac\xb9T{\xd8e\
+\xd8\xd5\xc9\xf8\xfag\xfbg\xfag\xaa\x80\x08]\x1c(\
+\xf1x\xd6\xa5$`\xa2\xc4\x11=sF\x92\x89\xfe{\
+.%\xa0A\xd7\x89h\xa7\x0d\x17\x1d\xfe\x04\xc8:q\
+\x8d\x11\x80\x8ev\xaa*u\x05\x11\x10\xedVu%\xa0\
+N\xe9\x1a$\xa7\xc3\xa5.f\xd6u\x8f\x9a<Rj\
+\xdb\x89\xd4$\xb5\xbe\xbd\xd8H\xcd \x1f\xff\xc2\xc46\
+\xfc\xf8\x5c\x93\xf3*\xf6Z\x22G8\x1e\x90>q\xa0\
+\x89<- UD\xce\x81\xa6\xb0\xb09\xa8\x81\xbc\xe2\
+8\xab-\xc3\xe8\x11\x97\x04\xe1\xb8xtq\xd5\xae\xf0\
+\xda\xfe\x9a\xfe\x9at\x00d\xc8\x1f\x8a\x1f\xc7\x07\x87\x03\
+\x08#\xd0T&\x86\x0c\xef\xad9\xe2\x17\x99\x05\x1cW\
+2F\x8a\xa4E\xa4\x1c\xc3\x0a\xe8e\xd3n.\x99\xd9\
+OW\x1b\x14\x87\x99\x03\x85\x83\x8b\x9a\x0c\xc6\x0f\xc3\xca\
+\xdd>\x7f\xde\xe7Mf\x8a\xfc\xe2\xc4\x0a\xfa\xe22(\
+R\xf5\xa6\xca0\xc7\xd1\xc3\x11\xc7pg#\xe3\x80s\
+\x1f\xca\x18\xc3\x12\x19\x07%\x19@\x0c9\x0c1\x02!\
+\x1c\xe8m$\xd2\xb7\xe9\x9cU\x84K\x81\x1a8\x12\x02\
+\x0a\xc8\xe7\xb5\xed\xb1P\x008\x22<\x17\x0a\x12\xc3\x86\
+\xf7\xe1\xa8\x03\x0dE\x81\xf2\xfd(,\x9e\xab!\x81\x8c\
+\xd7\xfc\x1d\xdf\x8b\xc2{\xaeq\x5c\x99g\x14iK\xd2\
+\xa6\xc0L@\xb0\x08\x80}X\x06\x82\x0cz \xef\xb1\
+\x8f\xf8\xfe\xb6\x0f<\xf7\xc9~\xe25\x81\x0e\x9e\x9b\xdf\
+\xe30\x10\x90ZC\x81\x80\x15\x14xX\x5c\x99\xdb%\
+\xb5NP4\x0b+`\xb3\x8a\x1cG\x9e\xb3%\xe7\xe3\
+\xffyM\x80\x82\xd7m\xdf\xd9y\x9b\x92\x06\x02\x0d\xcc\
+#\x0e\x84\xc8\xaeF\xef\xcc\x81\x04\xa7\xd6qr\x9d\xfe\
+\xd0\xfe\xb0\xfe0A\xe7VL\x90\xad\xb9\x13d\xeb\xef\
+\x99{\xc0_\xa5\xd7\x8a\xa0w{\xb9\xd8u\xb3\x0c\x99\
+\x0c\x83\x97\xf1A/45v\xb1\x1eA$@\x9a\xc6\
+\xf3MFW\x84\xbc\x0e8\x80q|(\x95\xd9E\xe3\
+\xf3\x06\x05.9H\xf9;\x1cU\xf6;z\x11\xc3\x87\
+\xda]\x22\xe4\xdb\xab6\x97yW\x86\xc2\x9c\xc3|\x85\
+\xc3\x03\xe4\x07\x19[\x10*d\xcc0\xd0Y/\x90\xe6\
+\xe1\x88\x13px\xb2Aj\x80\xf4\xa0\xd6\x96\xfb\x07I\
+\x81\x01D \xe5\x9fQ\x9b\x99\xd7\xcd\xaa\xd2gM\x0d\
+z8\x10K\xabkB\x838\xc0P\x0d\x83^\xfa>\
+H\xf0\xc4\xc2\x1dl\xf1\xca\xdcE\x86\x1d\x12B\xba\x13\
+\xc0\xaa\xffD\x95a\x1aW\xc8\x03\xb8ZD\x1e\x95\xcc\
+Y\xcf\xb0\x1d\xe1Re\xb8e`\x0fG\xb8T$t\
+\xd4L\x13\xd0\xc1\xc1\x13\x09h\x18\x82\x04J\x18\x0f\x95\
+VDmcY\x97\x99\x9bf=\x05\x06(\x05S\xe6\
+\xd1\xcc\xd0\x94\xe1\x8d\x1f2\xb6_LEz^S\x99\
+!\xe0\x0fd\x03:\xd65\xa5.\x94\xce\x10\xe0e\xfe\
+\xd9\xa7 d\xc8\xa4\xc9\xa1\x8b\xfd\xc3z'p\xc3y\
+@\xe6\x9c\xc0-\xe7:$p\x94((\x90\x17\x99\x0f\
+\xd6\x15\x19x\x0c`X\xd7y?\x01L\xd8\xa3aK\
+g|\xe8\x82B\xcd-\xfb\x16;\x03H?5\xe02\
+\xe8\x87s\x5c\xaa\xfb\xf8\x81J\x0c\x8e\xcam\xecf\xdb\
+Gm7\x96o%)\x06\xbd\xec\xa0h\x1b\xc9|\x13\
+\xa0\xe7\x9c\xe2\xdc\x80\xb3\x87q#\xe0\x8e\x1d\x02\x17\x0b\
+d\x5cj\x0b\x17\x8e<z\x19\xc7\x82\xf7s\x8e\x80\xc0\
+#\xa3\x09\xf7\x91j\xbf#C%\xfd1|\xc4\xa5\x82\
+\x96r~\xa2\x1f\x987\xee\x1f\x12U\x90\x1e\xecs\xf4\
+*\xeb\x93s\x02G\x85\xe7\xe6\xdc\xe2\xfd\x9c\xeb\xdc'\
+Pt\x05\xd2\xb0\xbf\xc2\x11G\x0f\xe2\x90\xc2\x82\xce\xfb\
+i\xd7\xa8y\x0a\xf2;\xa0\xc5\xeaj\x12\x01\xb6\x9b2\
+r\xc5>-w!\xd0~\xa6}e \x09\x18\x1f\xba\
+\x02\x5c9\xba\xca\x91\x98\xc1\xaa\x8e\xfd\xbb\xad\xb8\x15T\
+\xe2\x14,\xfcW\x8e\xae\x18]Q!0\xf9|9\x10\
+\xdd\x95.v\x9d\xe1b\xd7_\x9a\x98\x03\xd9m\xebR\
+e\xfa\x150\x8b\xbf_\xb0\x9b\xbfs\xbd}E\xfe\xfc\
+\xeew.v\xfd\xb1K\xe58)q\xd0=\xeeR\xd5\
+\xfeK\xffR\x22\x80\xa3\xc1\xba\xeb\xb61\xd9Z\xa4p\
+\xb7U\xdc\x14\xd4\xfeS\x1a@\xbbo\xf44\xfb\x05;\
+\x9d6\xe4\xd2\xd7\xc9.zV$\x9c\x1bW\x01s\x12\
+\x5c\xe8\x9d\x9f\xb8\x94\xf3r|\xb1\x8bJ`l\xfd\xf7\
+?u)\x1cA\xfd\x19.\xb6\x1c\xefu\xb1\xd7\xeft\
+\xa9\xfa\xa8\xaf\xae\x8c-\xe7\x01\x082\x02{$\xfc@\
+\x9e\x9c\xefR\x95H\xb5\xe7\x03\x080\xd6\x1d,\xf0\xe6\
+\xbd8W\x03\xa4\x8e\xe1\x00cg`\xa7\xa0\xefZ\x92\
+\xe4\xb6\x1d2v \xf6\xaa\xef\xaa\xb9\xab\xf3\x9b\xfd\x04\
+\xc2\x82.\x0c\x90\xb8\xaa-^:\xb5\xee\x94\xfe\xa88\
+\xa0@\xce\xc4\xb9\xc4\xfd\xf0\xb9:\x97\x87\x99\xc3,\x0f\
+\x94\xf4s\x99\xd8\xfb\xa6\x1et)%>\xec\xaf\x84\x14\
+\x7f\xaa\x04\xf0\xfb\x1b]*\x8e\x02\xf4\x02\xfa\xe6\xff\xe5\
+\x00\xe6p\xb9\xf4(\xa4\xb5 \xc8!\x0bT\xa0#!\
+Z\x16)\xebw\xd8\xde%!\xb42\xe2a\xeda\x9d\
+a\xed\x0a\x19\xf0\x97 \x0d\xcd\x81a\x10|7\x0c\xd7\
+\x0f\xd7\xa7\xf6\xa5\xa9m)\xac\xfc\xfdo]*\xc4\xe1\
+TF\xd8\xa0\xff8_\x03\x01E\xa9\x95\xda\x09\x06r\
+\xef\xa9\xcc\xc1\x13\x89J\xb8WN\x19\x9d<:\xf9\x05\
+\xdaN+A\x8e\xde\xeb/v\xa9H#\xe5\xd8G@\
+W\x89\xd9\x08\x14\xb0N87E\xd68Idr\xbc\
+\xa7\x89;\xfa\x1f11\xc3\xa0\xfb\x9c\x8b\xbd\xbe\xda\xc4\
+\x0e\x90\xf1..\xf6\xff\x0b\xb8\xd8\xf5L\x17\xb5\x0f\xdc\
+\xb3\xf4\x85\x0e\xa8\x17\xa4\x16@\xd8\xe8\xa7Hf\x98\x03\
+\x84\x0c\x16\x10K \xcd\x1c\x90\xb4e\xa1\xc6\x8d\x1a_\
+eL\xbb\x0b3\xab\xa7)\x9bd\xf0\xf4\xff\xe8\x1f\xea\
+\x1f*mq\x80\xe4D\x86\x94\x88/\x1c\x04\xf4\x01\xa5\
+\x06\x9e\xbe\x9282@R\x98P \xa7\x18\xbc\xdaP\
+v8\xe4\x83`Q\x1dh\x90\xf9\xb11=\x1e\xb7L\
+\x05\x11\xa3\xcf25z@w\x81\xa6-\x95h\xd72\
+4\xee\xd0\x12\x89\xec\xf7p\x91B\xe8*2!2\xc9\
+\x18bm\xbb16.\xa45\x18v\xeb\x85\xa1\x99 \
+i\x01\xb1\xc2\xc0\xc1 \xe1\xe0\xe7\xfbpH\xc8\x08\xf1\
+\xfd\xf3\xa4FVE\xd1s\xe0/\x98r\x8d\xb1\xe1\xa2\
+]\x1a\x0e7\x07>\x06(\xf7\x0d\xd2\x03\x85\x06\x22\x04\
+\x83\x8a\x80\x07\x0a\x94u\xc3k\x02\x0ad\xb6\x1b\x12\xba\
+(I@\xe1\xb0!\xb9/\x0c\x986@\xc1\xf8b\xf0\
+\x0b\xaa\x15\x07\x08\x0a\x93\xcf\xa3\xf6\x17E\xdc\xf61'\
+\xa2J \x80\xc89\xb5\xb8\xec\x1b2N\xf4\xc7\xc5\xd1\
+.}\xdc\xf3|\xb1\xbeY_\xabg\xf6{S2\xf9\
+ c\xfe\x0aK}\x1eW\x0c7\x02Qm\x0d\x7f\x8b\
+\x90\xe1\xc0b\xbe\x96U\xc9\x0d%?\xac\xf7\x8d\xe5(\
+\xbeU\xb5\x92\x04\xa0\xd6Um?\x810JK\x08L\
+\x9d\xe4b\xeb\xfe\x97\xfd/\xfa_Tz\x05\x96j\x19\
+L\xdd)\x8a4/\x9f\xa1\x9c\x18\x0c\x03\xfd\xb1\xd9\x17\
+8\xc68>\x5cq\x10q\xec\xdb\x1a\xc6\xf6\xff\xdb\x1f\
+\x1cz\x1c\x14\xfe\x0eC\x9cu\xc1\xfaE/`\xf8\x12\
+\x10e\xde@Dl\xa1ZW\x02C8F\xf77\xa5\
+K >\x08\xac\xf09\xfc\x7f\x1b\xd8\x1a\xe40\xccO\
+`P\x81\xa1G\x07\x93j]\xb2\xeeh\xab\xb8\x8e\x02\
+K\xcbh\x9e\xf9\x7f\x9e\x9b\x83\x86\xf5\x8e\xa3\xbfA\x90\
+p\xe5\x80\x22z\x05RI\xd6\x1b\x81+\xd6\x0b5\xb6\
+\xec7\x1c0\xfaw\x93YWf6\x1cl\x0c6H\
+\x08\xb9?\xd6\xb3\xe6'\x1c+2\x83\x18<\x9a\xcf\x08\
+\x5c\x92i%P \xd6y\x1c\xc9@$\x90y\xa1\xb4\
+\x04}!\xe4A\xf4\xa7\x07\xd2N\x86X\xe7R8 \
+m;F\xf4\xd0\x9fT\x13\x0e\xe4T\x86\x0c\x90\xf3@\
+\xe2\xa0G\xd6H\x18\x83\xdc^p\xee\xf4\xfc\xd3K|\
+\xc8\x5c\xa1\x97\xe8\x86@\x00\xa3%%\xc5\x91\x042M\
+\x00\x8d}\xc5zC\x8fc(Rs\xaa\xcf\x1d\xb4\xce\
+\x82\x05\xfd\xe4l\xf8D\xa0L\xf6@dd\xa9ed\
+\x1ea\x1b\xe7\xdc pOf\x06\x88=\x86\xb8\xec\x87\
+\xb6\xe6=HJ\x85\x88\x08\x88\xfc)\xaa\xd9\xbc_\xe3\
+\xc3y\xc3\xfd\xb1\xcf0\xc4Y\xa7\xdc\x0f\x08\xbe\xad]\
+\xaa>\xf1\x8c\x0b\xfb\x99\xf5\xc9zd\xfe\x09\x5c.\xd6\
+\x94\xcc\xa0\xb7y?\xfa%\xc8b\xb5?@b\x10\x98\
+\xe0|`}\xcb\xd1'\xc3N\xed|\xf4\xa5&@\x84\
+\xe3\xc1\xfcQ\x1a\xc8yJ\xc9\x06\x08R\xf4,dW\
+J\xac\xc4>\xe5\xf9\xd9\xcf\x9c\xbb\x04\xa0@\xc2\xb5\xfb\
+\x16\xc8-\x01@J\xa9\xd4\x0f<j\xc7UZ5:\
+\xdd\xa5\xd2c\xd8\x11Z\xc7\xe1\xe8\xca\x0e!\xd1\x032\
+\xcb\xdd\xf8\xe4\xc8\xd3f\x11\xd2X\xe9\x95\xd1\x0f\x5c*\
+\xc3\xfc\xdc\x9c\x81\xf6\xbc\xbbg\xde\xe3\xfc\xa2\xa4M$\
+\xcb\x04RMKm\xe4z*m\xafQ\xd5\x8eP\x99\
+\xec\xd4o\xde\xe6\xb5[\xd7\xc4\xf4Hw\x92\x89\xd9\xcf\
+\xdd\x8f\x5c*\xe4\xed\xad.\x85D-\xb5\xbf[/\xd9\
+\xc5&v\xfd\x8c\x8b\x02\x07\xb6\xee\xbb\xf7\xbb\x88\x85\xfd\
+\xbd\x05\x99\xda\x1dm\xe2H\x84\xbf\x9bx\x00\xed\x09\x93\
+\xc7\x05Y\xfe\xb0\xf6\xf1?\x0b\xab~\xf7\xa0Kio\
+7:\xdb\xe4\xac\xd2\xe6\xda\x9b\xa0y\x1b\xb4\xd8'\xae\
+]7\xa9\xf6\x8b3\xab\x5cW\xb5\x97tN\xa2\xb9+\
+n+\xdar{W\x89\xef+\xc0\xf0\x11\x05|N.\
+$\x92\xdd,\x13\xd3\x8b\xe37\x9a\xbcA\xe3w\xae\xd9\
+\x0b'\xb9\x94D\xcc\xb0\x90\xc9\xc2\xd5\xeb9]*\xf6\
+zJ\x0c\xe8\x06\x00),v3\xed\x99\x09\x5cB\xce\
+\x09\xf9\x22\xfb\x9f.+\x90\x8c\xc2E\x03\xf2\x09N\x80\
+)\x93\xbe\xeab\xd1\x96\x1ccO\x11\xd0\x03\x11\x86}\
+\xc6\xfe\xa1+\x97\xdf\xe5c/P\x92C)\x02\x01r\
+\xda\xdc\xb1\xbf9'I\xcc\xd0\xd5\x0bD\x11\x88N\xda\
+q*\xa1\x11,\xf8 \xa1~`^\x91;\xf4?7\
+;\xed\xe7v\xfd\xb0\x8b]\xdf\xe8b\xc7\xd7\xf5.\xd5\
+\xfc\xee&?L\xcf\x17\x10w\x95FP+?\xec\xa3\
+\xcc5\x89f\x905$H\x08\xb4\xa1G\x1c\x7fuN\
+!\xb3'\xc0\xc99o\xaf\x12y.\x19\xf0\xe0 \xd8\
+7\x07<\x1dO\x9a\x10\xa5\xffq\xa9\xba;\xc8\xef\x8b\
+v\x81 Ep\xa8\xe9\xd2\x81\x9f\x89}O\xdbj\xe9\
+-j\xfc\xa3\xbb\xc9~.\xd5y\xfd\x1b\x9d[+\x0f\
+\xab\x0c\xab\xa4\xef\xcd\x88\xeb\xcbTb&\x92\xee\xb0?\
+\x84\xd4\x0f\xfd\xcf:\xe2\x5c\xe6\x1c\xe7\x5c\x04\xe1 \xbb\
+a\x92\xda\xfe\xf1\xe1&\x1eI\xdb\xc4dS\xb5\xbb9\
+B\x8e\xf1\x0a\x15\xc4A\x8a\xcd\xdc\xf0\x04\x09\x8a6h\
+,X\xda)\x1c\x95k\xa0\xc20\xa0\x9f\xe5\xd1R\x0c\
+\xb7\x88\xe4\xe81\xb57\x02\xa2\xd6\x90\xf5E\x1b\x069\
+\x9aQ\xd3\xc2\x06\xa0\xf6\xf5\xcc\x0c\xfd\xe8\xd6q\xb1\x85\
+\xf7v\x97\xca\x10\xe3\x00W\xfb\x99\xc8\xcc\x91\x11#r\
+OF\x0b\xee\x00\x0e^ m\xf4}%c\x05\x94\x96\
+\x03\x86L\xc3c\xe9\xc9\xf2\x81\xbdH\x05\xf9\xc5!\xa1\
+\x86\x94\x80\x07\x10<2ku\xe9\xc2\xa2\x15\x19\x08\x07\
+5\x10CH\xfe8\xd0\x88\xf0s\xff\x18\xfe\x5c1,\
+9`y>\xd8XA&\xe0\xb8\xcb\xa1\x8evt\x90\
+D\x89t&\xa0\xb0\xd4\xc6\xd3\xe7\xd7\xbf\x0d\xe8\x14\xa4\
+h\xf3\xca@\x5c\xadB\x1c\x00\x01\x06\xaa\x8d\x83\x84\xc1\
+\xd9\xf6\x83's\x07\x04\x9b\x9aT\x0c\x026.\x8e\x1b\
+\xd7\xb6K\x00\x06\x11\xdf\xd3r\x0fp\x1f|\x1f\x1b\x94\
+\xbf'\xb3\xc4k\x14\xe9\xab\xa3]H\x0e\xb0\x00}\xc6\
+\xc1!\x82\xcb}Q\xc3\x8a\xa2g=\x92\xd1\xc1\x00\xc2\
+Q\xa4\x84\x80\xfd\x82\x83\xc1\xbc\x92q\x07\xf2\xfer)\
+$\xa0\xe8\xcc;\xf73\x97\xf6\x1bH\x16\xba^\xec)\
+C\xebM\x0a\xccuA\xbe\x98\xef\x0b\x87\x04\x87ok\
+\x05\x80\x1e\x13\xf4\xf8\x04)6\xe6\x0d\x05\x8e\xc3\x81\xe3\
+M\xe6\x80\xc0\x92j\x93\xfb\x03]R\xdb\xa0\x5c\xf3\x84\
+#\x84\xa3\xf4\x1fu\xe38O\x91xA@\xa3\xe6\x1e\
+\xf6\xd3m5\xdf[4\x9c\x088\x9a8\xee\x8c\xe3<\
+M\x17\x09\xe6\x89yc]\xb0\x8e\x98/\xf6\x1b\x0e\xd0\
+\xbc\xc1\xce\x9d\xd77\x0e\x13\xeb\x0e\xc8\xf5#\x22\x9da\
+?\xc3Z\x0eR\x83\x03\x8fZ\xf5\xe7e\xe0\xffQ}\
+iQ\xf0\xac[\xd5\xe8G\xa6\x82\x0c;5\xdfCt\
+\xfe\xcd?\xa5\xefx>0\xfe%}\x89\xe1\x5c\xb7\x0f\
+\xddqv\xee\x8b\x08$\xb2\x7f\xd0\xdf\x04xq \xd7\
+W\xa0\x80u\xdc\xb2\x14c\xf8\xd3\x9f[\x08\x0c3\xe7\
+3iQ)A\x99\x9eA\xdc:\x97H\x04\xbb<d\
+\x5c\x9bM\x0f,\xc4}\xb2\x8fyn\x02\xcf\xb4[k\
+\x1c\xda@\x8c\x11a\xc7\xd1\xc1\x11\x06\x12\x0ak1\xf3\
+\xc88`X\x11\xd0\xe0\xf9\x09\xb0\x82\xb0\x00\xfaLF\
+\x14}\x85\xdef\xdf\xdc\xa0\xd22J\x0b@\x1e\xb0\x9f\
+\x18O\x1cUH '\xf3\xfa\x8d~\xd3\xb4\xf3d?\
+\xf0\x03\x22\x85>\xdb\x90\xa3\x91i\x85E\x1d\x04\x13\xfb\
+\x8d\xc0 \x0e0\x99\x14jL1L\xd0\xe7\x04j\xd1\
+\xaf\xacW\x12\x08\xac\x1b2\xb6\x9ck\x9c\xdb\xaa!\x8f\
+\x0c\x14\xdc\x08p\x10\x00\xf9o\xdb8\xb2\x9f\xe9\xeb\x8c\
+AD @\xe4\x9b\xd1\xae\x89\xcc5\x06fS\xa2E\
+\xadtp\xf6\xd0V\x8e\xe7\xa5=\x94\xce\xc90\xfc \
+\xb1C\x9f\xe0(\x80\xf0 @\xc4\xef1\xf0ZR\x5c\
+\xd61\xe4U\xe2T\x08\xa4\x01\x01Z\x91\xa9E\xbbV\
+\xe6\x89@#\x90sA\xbd\xfb\x8b\x5c*G\x88\x92F\
+\xd9\x01 \xd78\xc7i\x17\x18\x886>\x9fyd]\
+\xa3\x97\x09lS\xb2\xd2 \xc4b]c_\xd2\x95\x81\
+\xdaiA\xcaI\x08E\x1b=Am\xe9\xda3z\xca\
+\xa5r\x00\xc8\x1ccWB\x8a\x88\xbe\x82\x03@\x86?\
+\xec\xe1\xa3GF\x8f\x8e\x1eM\xb5\xf8\xf7\x8e\xeeM\xf7\
+\x9d\x1d\x90KU\xdaI\x8d\xbf \xf5\xddR.\xea\xd2\
+\xe1\x0e\xdf\xa3\xfe\x09\xa9\x1d\xd9\xc8\xdb\x91\x05\xb4\xff>\
+\x97\xd2\xa7\x9c\x9a\xfc\xeei\x93\xa7\x0a\xfb\xff\xf8\xb5.\
+\xf6\xff\xab\xbb\xc8\xe1>\xbb\x04\x22@48\xd7\xbf\xb3\
+\xfd\x8f\xb7u)\xf3\x1d\x81\x83\x1f\xba\xd8\xff\xff\xd6\xa5\
+@\xa6\x816GI\x81C\xff\x0f\xa8\xe6\x07\xee\x15\xed\
+\xaf\x08d@&LB\x0b\xae\x8c\xc5r;\xdei\xf6\
+\xe3\x8d\xa5\x96}\xd8\xc0\xc5\xde\x7f\x9a\xc9\xa9:_'\
+\xe5P\xbdA\xa5C\xa7\x97\xaeR\x09\xa9lz\xa3;\
+\xc6\xe4h\xbb\xce\xd3e$\xc2\x8cn\xc6\xd8\xdb\x15\x1e\
+\xe4b\xeb\xf6\xc7&\x97\x94>\xf0\xd4\xfa'\xc4\xc3o\
+*\x12H\x02\xdf\xd8\x1d\x90vC\xba\xd9p\x82\x0d\x7f\
+w\xa9\xb8*H\x884$\xa6\xb1\x8e\xa4\xd7\xa9\x05\xef\
+\x9fs\x11\xe7\xc6r\xa56>\xbe\x8fs\x16\xbdA\xc9\
+\xa9\xec\xd9\x18g\xec\x07\xde\x87\xfd\xc1\xb9\xde\x92R\x13\
+\x98\xe0\xbcu7\xf6\xfc\xca\xdf\xe1|yy\xa2\xd9-\
+\xf6,\x8e=\xcfI\x00\x0e\xce0\xe9\xb1\xd4\x0e\xb4K\
+\xa4\xb3\xd7:\xe9,~\xd2\xd46.\xda\x0f\x0f\x97\xda\
+\xf8\xd4.}\xbd\x84\x94\xc8\x014\x95z\x07\xa2N\xdd\
+\xe6\xd0;\xe8uj\xdd\x03\x89\xa8@\xa69\xca&U\
+\x02\x0e\x0e\x0a\x95\x98\xe1/\x05\xc9\xa5'\xfc\x96P\xf7\
+\x9bcK\x00\xad_\xd6\xc5\xae\xffu)\xdd@\xa2\xbd\
+\x1e\xf6\xa1\xc8e\x87\xf7\xb9T\x01\x0d!\x13b\x7f\x90\
+PV\x00\x1a\xfb\xb5[\xc9E\xed\xdfgU]$\x80\
+\xf2\xab\xad_\xc2\x03l[\x05p~+\x7f\x99v\xc9\
+K\xba\xd8\xf5\xf5.\x85+'\xec\x1e\x12\x15\x0a\x84\xd0\
+&3J\xb9T\xd279y\x88\x8b\xfd\xe3b\x13;\
+\x00\xbb#\x5c\x0a\xf9_@\xab\x9cd\xe5\xc1\x8a=q\
+\xa9|\x03\xb6I]\x0a+/\x90H\x91\x98\x04\x1b0\
+\x13\x04\xa4\x13\x83\x85\xdah\x0cl\x22`8\x16\x18\x16\
+l\x0cH\x85\xd8\x08 \x0c\xbe\x99\xfb/\x86\x03\x8dC\
+\xc6\xfb\x81\xae\xb7m\x99\x88\x98\xcb\x80\x8e\xdaD\x0e\xac\
+6\x10@\xc6\x9b\xbe\xcddR\x0eU-*\x11\xf09\
+\x12?z\xa9\xf1\xa7V\x8c\x0dD\xed%\x91\x22\x9e\x8f\
+\xe7bc\x02y\xc21\x9fP\x16\xe7\x8f\xc9\x05\xc8\x91\
+\xc4)E\xbe\xce\xae\x22\xffd\x00\xc9\x90s\xff(,\
+\xbe\x07E\xd1\xd6\xd4s\x80\xc3\xcd\xd0:\xce 3\x9c\
+|\xf0\xca\x8a\xed\x12\x12\xa3\xf5\xf3FOf\xe8\x8a\x95\
+\x82\x823\x80\xcf\xe3\x80\xb8=C\xbe\xc3`\xe0\xf7\x9e\
+\xdfXJ\x99\xa0u\xaa\xfb\xd5s\x05\xb9\x93\x02=q\
+\xb0S\xa3\xae\x0c^(J\xd8\xee\xa9\xc1'B\x8d\x03\
+\x85#\xc38\xb5\xedV\xc8\xb80\xbe@ew\xcb5\
+N\xe1\xb0\x1d\x97KW\xda6-A\x96G-\x11\xbf\
+g\xfe\xc9\x9c\x12\xe9\xe55\x86'\x99J,\x1e\x0e\xaa\
+\xb6\x8d\x17\x9f\xcb8r\xc0\xb0\x9e\x89\x5c\x92\x99j3\
+\xfd\xf4\xf9\x85\xf5\x9b\xef\x9fW\x06(5\xe2\xb0\xb2\xff\
+?\xf5\xcf\xbd]\xfb\x80\xdar\xd8\xd5q,\xee\x16b\
+B\xec\xff\x91!T\xa9\xcf\xf0\x86a\xc7a\xc7R\xab\
+e\xc7_\xceHo\x9e\x03n\xd4\x80E)\x11\xfb\x94\
+\xf1c?\xe3P\xe2\xe0\x13 a|\xd8W8\x86@\
+\xfe\xd4\xd6\xb0r\xf0\xf3\xf8\x92A\x95#e{ \x8f\
+/\xe4\x86BPD\x8dd[\xebN\xa0\x0f\x07\x0d\x07\
+\xf0\x1f\xd9A\x89\x80\x1a\x0e\xe4\x10\xa5\x17\xf9y`\xe1\
+_\xb4!i\xc3\x81c\xff.\xa3\xff/H\x97\xfc\xf7\
+\x046\xf9\x7f~p(\xda\xf5\xc4\xe7\xb5\x90C\x90)\
+\xeb(3K\xad?\x99}\x1c\x16\x1c-\x02E\xec\x97\
+\xb6}+\xf7\xc3\xe7n\xe1R\x90\x06\xec\x93\xe1\xaf\x22\
+\xf5\xe1@\xbdZ\x19I\xbaR0\xef\xe8u\xb5\x8f\x0c\
+\xa4\x11\x90A\xf4!\xf3\xcb~\x07\xb1#R\xcc\x11\x19\
+X\xe9i\xa0{A\xe6J\x86\xf7B\x97\xcaq!\xe0\
+L\x00\x17h0\x8e\x17\x01\x07\xc8d1(\x80\x5c\xd3\
+\x1f\x9d\x80\x11\xfa\x87\x8c\x0ez\x8au\x0dd\x1e\xb2?\
+\x0c\xb7\xb6?\xf4\x09.e\xbf\x0d\xe7\x0e\xe7\x0d\xe7\xa5\
+\x1a\xef\x9c)e~\x09\xf4\xa8\xadk\x04\xee0\x18\x09\
+\x9ci?\x07\xc2\x0e\x87\xb6\x0d$\xb0\x0e\x98\x1fe\x9e\
+\xa2\xf6\x9b\xf3\x1f\xbdC\x80E\xe7l\xd4\x80\x03\x11%\
+\x10\x0e\x8b\xb2 \xf0\xa3\xbd\x5c*G\x04\xf6p\xd6\x03\
+\xe7J\xdbv\x0f\xe4\x0d\xb5\xa2\x94\x026m\x1c\x03)\
+B\xcd>\x9c\x1d\x82\x86\xc6|S\x8b\x0e\xa2\x82\x80\x12\
+\x81\x0f\xf6C\xdb\xde\x96@>\xfd\xaai\xcbG\x80\x04\
+{\x80\xfd\x89\xded\x1d\xaa\xfft\x90\x9b\xc1\xad\x00\xe2\
+\x0e\x87]\xfd\xc0\x03\x11\x01rE\x08>2}\xdd\x01\
+.\xf6\xfb\xc7]L\x1f\xff\xce\xa52x\xd1_\xd4\x0e\
+\x8b|q\xb8\xdc\xa5B\xd8\x11 \xc1Ab\xbe\xd1\x87\
+\x04\xc4xN\x02{\xb0\x9b\xcb\x91\x1f\x7f\xda\xc5\xee\xeb\
+F\x17\xbb\xbe\xcd\xc5\xae\xfb\xb8\x14{r8\xd4\xa5\x94\
+\xa6p\xbeu\xbf\xeen\xean\xaa\xba\x15\xc1\x8d\xa0\xcc\
+\xbd\x19\xcd\xf9\x5c\xc5^\x5cM]%n\x1f\xdd1\xba\
+]\xf6\xed\x85%\xa0\xd0}\xc8%\x05\x0e\xd7O\x81C\
+\xb8_\xe6\x1a\xcd92\xbb\xaf\xbb\xd9\xbe\xef\xe6D\xaa\
+wU\x22\xd5\xc3\x01\x91\x9e\x0f\xc7]]]\xbaK\x5c\
+\x94\xc8\xf9J\xe9\xb3N\xdb=st_\x93J\x004\
+/\xc9\x11>\xa6|.m\xbc\xbb\xa3\x5cl\xbc\xaes\
+)\xeb\xb6;\xdc\xc5\xae_t\xa9X\xfd\xef6\xb9\xab\
+ \xa7\xc6\xab\x9b\xacV!o\xc4i\x11\xe7\x81\x87\xdb\
+\xce\xd7\xbc8\xb2\xe3\x8f.\x85\x9c:\x85\xe7w\x93C\
+\xb2\x93\xf4\xe7\xfe\x82\x22\x9b\xdd\xdf\x9fn\xf2\x8d\x12\xc0\
+#\xf1\x13\x01\x03\xa0\xd5Bp$\xfb\xc3\xec\xda\xc9c\
+\x5c\xec\xd7\x9b\xce\xb1\xe9\xe4W\xb3~\xec8O\xcc\x11\
+\xec\xd76YK\xed\x05\x7fVu\xe7\x82,M\x0e&\
+\xf37\xdeg\xbc\xf7x\xef\x84pH\xfahj]\x17\
+\xfb\xbb\xcf\xb9\x14Dnt\x03\xc2A\xdb\xc3\xa5 \xb7\
+\x22p\x88~\xc7\x0fZ\xd6\xc5\xee\xeb'&\x97\xda\xf5\
+&\x97R\x8b>\xccp\xa9J#@6b\x0f\xab\x8b\
+H\xe8q\xb8\x81\xb0#[}\xfc\xf3\xbd[\x00\x00 \
+\x00IDAT\xc6\xf9\x09'\x07v\x22%Y\x9c\xff\
+\xb4kuR\xbc\xc3\x8b^\x8a@\xb6\xec\xa4\xe0v\x02\
+\xc9@b\x03.3\xec-\x0f\xb7\xefR\xb1\xcb/\xe7\
+\xa2@\xcc\x8fU\x0a\xf0\x90\x10j\xbb\xab$\xc5\xf4\xc3\
+\xf8\xc4\xf1\x09c\x9f\x97\xf7\xba\x94\xf9\x1f\xde\xe5b\xd7\
+\x1d\x5cJ\xbb\xdeTzm\xfb\xd6\x0b\xbe\xbd\xe4;\x91\
+k\xbe\xbf\x0aH\xeb\xef\x935\xf6TU\xfa\xa7@h\
+pk\xa8\x1d\xde\xe8\xec\xbc\xae\x82\xf4\xf2,\x97\xc2\xd5\
+\x11\x88\x04\xcd\x7f\xbf\xa7K\xc5U\x01\x17\x1a\x09:\x10\
+\x88G\xbb\x94\xf5\x11\xe7\xa2\xd6c\x94j\xc2]D\x8d\
+?\x09sHT=a<C\xed\xde\x8f\xa9\x10\xb3\x94\
+\x88\xaaK\x10~z\x04~I\x08a_\x90\xf0\xd6\xb9\
+\xde-\xecR\xce\xd5\xc9\xc9\xcbL./d\x7f\x01\x81\
+\xc2\x81\xdb15|\x0a\x04@D\x1cvv\xa9\x147\
+Pc\xaf\x09\xfaCU\xd3$\xd2\xad\xe1\xa5.UD\
+\x91\x8c\x0b\x90\xb6\x85\x1a\x08\xb6\x22.A\x0aD\x06\xbd\
+\xed\x0f\xcf\xc1H\xc4L$\x1b\xc1\xd6\xfa\xfd\x1c\xc9\x89\
+\x83\x9b@\x00\x06\x0f\x99\x00>\x87\x0d\xc3\xc1\xcd\xfda\
+\x08c\x90\xf1\xf7\xc3\xd0\x0f}z\x9d\xb9\x0f`!\xc6\
+\xf0\xa1?\xe61.%\x10\x10\x07 \x86(\xf7\x83\xc1\
+\x82A\xeen\xdd\xb8B\x08`\xf0y>\xe8\xfe\xca\x80\
+\x85\x84\x85\x83\x99\x88:\x8e\x10W\xfe\x1eG\xbe\xadm\
+&3\x03\x04H\x99@j[hO\x11\xe3BFC\
+\xfd\x98\xe3s\xc5z\x1a\x8e,\x1b\x87\xc0\x82\x9bG\x7f\
+\xaa\xda!\xe2pCf\xc2x?\x94\x1a\xf0LxE\
+\x8e\xd7\xe4\x84\xe1\x87\xe1@\xc4\x15\x03\x93\x0c\x11\x81+\
+\xd5\xf8\x0d\xffp\xa9\xe6\xed\xc5\xfat\xb7\xac\xecm\xcd\
+:\x8avK\x05\x8a@\x82\x88\x0d6\x02<\x04\xa20\
+\xfc\x80\xd6\x92\x81\xe7\x80\xa2\xcd\x18\xe3\xc2\xfa\x84\xbcC\
+\x91\xd0\xe8KN\x84\x0f\x85\xce\xfcaX\xb2>[\x12\
+\x17\x9e\x17\xa8\xa92]p\x7fDd\x1c\x07\x92L3\
+\x81\x00HM\x22\xd5\xd2\xb4O:T\x91q\x0co\x1c\
+(\xbeO\x06?5y\x13\xdf\x16\x09\x97\x0c\xb6a\xd5\
+\x0cy\x9a\xfa\x94K\x82:\xe5\xc0\x0d\x01\x13\x1cu\x22\
+\xf5\xec\x17\x10$8zm\x1b\xc6\xa5\xe4\xf0\x07\xb2G\
+\x08&\x02\x028~\xb4\x13\x82\xcc\x946\xa4\xcf\x08\xc2\
+9\x9f\x02\xa2 &\xd0?\xfd\xf4~\xe3\xf1y8\xe6\
+\xec\x13\xbe\x8f}\xc8z#\xb3\xfbG\xb1\x19\xa3\xe7V\
+S`\x10\x04\x85\xa0a\xb4\xa9\x83\xdc.\x0c\x14\xda\xcc\
+\xb1n\x97\xd7\xfc\xe3h\x13h\xe45z\xb6-i\xe0\
+\xfb\x88x3\x8e\xa5\xbdf\xd6\xbf \x0dp\xec\xd7j\
+J \x9e\x8a.\x12y\x1d\xf1\xfc\xfc=\xe3\x83\x835\
+g6\x9c!\xa9Ky\xb3\xaa\xbf\xad\x99\xb9Y\xff\x80\
+\xf0a]\xf3<\xdc'\xa4\x87\x8bMo/\x18\xcf\x8f\
+!\xc3\xfb\xd9/\xd1\x86N\xdf\xff)\x1d\xe0:G\xe2\
+\xdc\xc2\x81\x01:z\x80K\xd2o9CIm%\xcf\
+\x85\xa3{R\xaeI\x1e\xed\xaf\xbf\xa7f\x9d\xbf\xc7\xa0\
+\x22@A\xe6\x06\xbd\xc3\xf5cIJ\x86\x94@\xb7P\
+\x1d\xc3\x0f\xe5\xd0}L\xd0R\x0c6\xf4\xe3\xbb\x05Q\
+\x85l\x13\x07\xee\x1fB\xf0\xa9\x14g8\xd7\xa5\xea\xcf\
+\x0d\x1b7\xdc\x0cd\xce\x84\x94\xc0@\xf5B\xa3Tj\
+D\xc0\x15\xfd\xa7\xc0h\xd4\xc4\x1e#\xae\x02\xceA\xf4\
+(\x01h\xd61\x81\x0eX\xdcaU\x07\x91\x87A$\
+\xc3\x1bC\x8e6x\xd1N\x13\xf2`\xf4\x17\xe7\x1d\xc8\
+=2\xfd$ \xf8\x81\xc5\x9c\xfe\xe4-90\xac\xdb\
+p!\xf0\xfb\x96$\xb1\x85\xf2c\xc7\xa0\x97a\x19\xef\
+\xb3=\x11z\x00\x88,\x81\x1cAFc\xbc\x09L\xf1\
+\xb9\xb0\x86\xabv\x99\x0cyjO\xfc\x86\x8a\xc4\x8fD\
+\x0c%\x02r@\x82d\x91L\x96\xda\x0a\x86\xa3\x07t\
+\x98R\x02\x02J\x87\xb8\x14\xb2/\x1c\x90\xe1\x22\x17\xfb\
+\xff_\xbbTH\x0ew\xff\xf6\xd4z{s!\xc3\xf3\
+\x8a\xda\xc4Z\xaf\xf5=y\x89\x8b\x99\x03_p\xb1\xd7\
+\xcb\xbb\xd8\xf5M&oN\x99\xfa\xcfz\xa6\xbe\xdf\xd0\
+\xa5jC\xfd\xa7\xcc!5\xde\xc9\xc5\x86w\xb9\xee\x95\
+\xddr\x15\xc7\xd4\xab\xd4^Z\xf6A:\xf5\xe7K\xfb\
+,sE\xbdk\xb4\xfb\xc8\xd6K\x7f\xac\xc9q\x82\xb4\
+\x7f\xbe8\xb8\x9cs\x9e\x8fvG<\xed\xabw\x97R\
+\x96p4@ \x089\xda\xdd\xe1R\x10\x93\x09j\xef\
+\xe4\xce\xdb\x9b8\xcb\xf9\xd3\x19\xa2\x1cm\xf8\xd6\xb4\xfd\
+d\xeb\xb7{\xb2{\xaa\xb3}\xd1\xfd>\xb7\xff#\x93\
+\x18$k\xf7fd\xc2x_\x97\xd2\x15`|\xb0\x8b\
+\xbd\x9e\xd7d\x9eR\x8a\xd1}\xd0d\xafb\xd7\xa7p\
+\x93;\x08S.BVnX\x10!\xc1e\xa0\xf3*\
+\xba?\x81\xbc\xf3R\xbc\xcfT\xc8\x1f\x87\xd8\xcf\xa1Z\
+g\x87\x5c\xcf\xe5\xa2Z\xe9]+\x04\x8f\xce\xdd~\x17\
+\x97\xaa\x9b\x95\xdf\xa7\xe9\xd9\xee\xaf.6\xdf\xeb\x99\xac\
+\x9f\x03\x19\xe3#\xf4\xbd\xa6Wf\x9d\xe4bv\xc3Z\
+&\xceJ\x7f\x98\x8b\xfa\xb9\x7f\xa0\x04n\xba\xbb\x5c\xec\
+s\xbe\xeab\xdfw\xafKI\xf8%;\xc4\xf5\xc8\x11\
+&f\xc7\xf5\xffv\xa9j\xb6\x0fw)\x8eZ\xb4\x87\
+\xd3\xb9\xd1_\xe7R!\xe4\xb0K=l{\x9f\x02.\
+\xbf\xd6y\xb3p\xd5\xf6\x12;\x1b.\x09\xff\xfb\xbfU\
+\x01J\x10Lm),\xe73W\xfc\x16\x02\xd4\x04l\
+\x08\x9c\x12\xa0\xa4k\x82\xba\x01\x108\x0c(9v8\
+\xed\xe5@4+\x00B \x98Z\xf4\x140\xf9|5\
+N\xb4=\x15\xd9)m\xe49/\xbd`\xdbK\xb6G\
+\xdfqI\x81\xe2;R y+\x97R\xe2\x0c\xd2\x07\
+$VJ0\x9eQ\x91\xa9\x1ei\xf2\x19=\xcf\xf2\xc5\
+\x91\x86\xacu\x98t\xa9Hhu\x1e\x81,\xc4\x9e\x0c\
+\xae\x8d\xf7w\x1f\xe8>P\xd9?\x9c\x03B\xc6&N\
+\x8a\x8dJ@5\x02\xa2\x8c/$\xa6\x22'\x0d;\xed\
+bq\xd6i\x1cG\xbdK\x95\xa8U\xe9\x0ez2\x10\
+c\x0aDE\xe9\x1b%(\x04\x9c\x84\x84\x18^\xe3R\
+\xd9\xff\x5c\xd1\xcf$\xfaT\xba\x03w\x05\xe4\xc5\x93\x1c\
+\x04\x90\xacD\x9b22\x85Z8\xd1\xb6\x83\x0c\x0d}\
+U\xd9\xc82P\x9c2\xc17>\xed[\x82d\x81Z\
+\xa9\x05\x5c*C\xb0\xcd\xb8\xe2\xb8\x12\xe9b\xc1\xb3!\
+\xd8(<(\x99^j\xb1/\xce\x0bd66l\x22\
+#L0\x078\x06\x07\x06\x08\x7f\xdf\xb2\xf1\x12ik\
+ \xb4\xa3\xb93)\x0a\xb5$\x01\xb9\xe4g\xe7\xd4h\
+$?\xdf\x22UdN\x19\x87\xa8Ao\xdao\x04\xa4\
+\xd0k\xc8\x9e*\xa5\x00Q\xdb\xcc\x06Y\xddd59\
+,wV$A\xb0\xce\xb6,\xef\xf4K\x86\x8c\x8f\xef\
+\x85\x9c\x09h>\xe3\x83\xa3\xf5\xca\x06\xca\xce\xef\x99\x17\
+\xd6K\x9b\xe1\xc3q\xe0\xb9i\xe3\xc4\xfb\x99\x7f\x0c\xa7\
+\x96m\xfc\xe9\xc4\x17\x9f\x0d\xf6\x05+h2\xf3\xd6\xf6\
+\x87n3\xde@\xe1\xc9\xb8c\x90\xce\x1d\x19\xdd\xfc}\
+\xed\xf7\xf2{\xd6\x01\x90g\x1c\x7f\x90-\xb0\x19\xab&\
+\x8d\x12\x8f0lq\xf0\x08\x80\x10 !\xd3\x85a\x0f\
+\xa4\xabmS\x08k\xfd\xffd\x08\x03\x09\x22\xf0\xc2~\
+\xe4>\xf9|\x0cN\xe6\x0bG\xa7\x81\xdcF\xad-\x11\
+`\xe6\x0b\x03\x99y\xe2\xfd\xac\xcf\x16\xc2\xcb\xf3\xa28\
+q\x04\x9f\x0e\x08r\x1e_J\x09nT kQE\
+\xd6\xd7\x14\x0b\xb8 `\xa1\xb0\xc79C0z\xd0\xa5\
+Z/@\xb0\xc9\xb8\xa3\x8f\xc8\xf0\x97>\xe3\xf9\xbe\xa9\
+E\x07\xa1\xb3\xae \xd2\x05\xb2?\x1d\xe1\xc1\xba\x81\x0c\
+p\x0b=\x1fl\xfcs6\x81\x00\x1c\xb8E\xe4\xf0\xe3\
+\xb8\xe0\x80\xb6\xd0l\x1cP^\xe3(0\x9e\x931\xae\
+Y/\xfd;\xef\xb3\x08\x84\x88{\x84R\x10\x0e\xf2\x08\
+d\xac\xaa>\xe1\xafQ \x0a}\xb8\x8e\xee\x8b\x80k\
+\xe3\x80\x049\xe0\xac&S\xd9\x96\xc2\xcc\x17\xfb,\xcf\
+\x07\xe3\xcax\xb2\x8f\x1e\x96\x01#\x87\xde\xb4N\x22\x9f\
+\x89\xc0\x0c\x01\x12\xf4\xc3\xbaM\x17\x8c\x06\xea\x0c\xb7K\
+\xf4\x09\xf6\x8c\xcfu\xd3H3\xa7#$xn\x02\xba\
+ \xcf(1\x83,p\xef\x04\xea\xf5\x1a\xe7\x8b<\x93\
+\x9e\x1c\xe4=+\x04\x8b\xd6W\xec7\xa0\xa1@\xdca\
+\x07\xbf \x93@\x85^\xc5a\xdaH\x81?\xf4\x22\x19\
+N\x1cjJ\xe8\xc8\x9c\xa3\xc7a\xf9\x87dM\xeb\x0c\
+\x08o\x9cK\xcc\x1f\x089\xf6=\xa5Qb\x01\x1em\
+\xa7L0$\xa5\x04\x94O\x14\xb9\x12dUr\xc8\x82\
+\x1c\x0f=\xcf9\xadL{p#\x80\xc8b>0\x1c\
+)\xd5R[\xaa0L!o\x12\x89Y\xb4\x19\xa3\x9d\
+\x1a\xedE\x19?\xf4\x07\xfb\x9fy\x05\xea\xc8}\xc0\xca\
+\x0c\x92\x8f\x00\x09\xf6\x06z\x95\xf3\x86\xf3\x00$\x00\x06\
+9v\x02\xeb\x8fq\xa6d\x8b}\x80\xa3\x0b\xf9$\xa5\
+p\xdc\x1f\x81X\xf4\x15\xf6\x0f\xf6\xc6\x8b\xb5\xb7%\xd3\
+\x8f^\xc1\xeea}p\x0e\x80\x10#\xa0D\xa0@\x10\
+\xf1\x080C\xfe\xa5\xda\xd7\xd0\xfb\x0aXC\xa2J\x86\
+<\x12)\x22}\x1b]\xeeRq\xb5\xa0\x0f8\xdf\x08\
+\xfc*@K\x8022o\x94\x06\x08\xd2\x9f\xc8\xc1\xae\
++\xac\xe0\xa3\x9b]\x0a\x1b=dus\xcc\xe5b\xd3\
+p\xe6\x9c\xdf\x9e\xd3\x0c\xe5\xc9\x03Ml\xddM\xde\xea\
+\x92 \xc4\xc9\xc1\xf3\xfco\xbfv*\x193I\xdc3\
+\xefv\xee\x99\xf1\xa4\x8b]\x7f\xed\x22v{g\x11\xff\
+l\xff\x99\xde\xc9\x1f\xd73YW\xa5\x01\x97&R\xb7\
+\x9c9\x13\x89c\xb0\x9a\x8fMl\x7f\xf5\xe9\xa7 \xb2\
+F\xffqI]\xaeL\xaa};\xd3\xa5\xd4\xdc\x93Q\
+\xeff\x9ax\x1b\xbf%M\x96\xa8\xc6W\xa4\x5c\x90\x0b\
+v\xcf\xb8\xa4\xfe\xf1;x\xff\xf8\xeeS.v\xdd\xd0\
+\xc5\x9e\xe7\x18\x97\x82\xecI\xb5\xfb\xb6.\xc7s\xba\xd8\
+\xeb\xff\x98<j\xaf_c\xe2\xc8\x81?\x9b\xdc)\x92\
+S\x9b\x87n1\x93E\x0b\xb4<!G\xbe&\x12\xbb\
+\x1f\x08\x09|\xa4\xc8\xb7\xffU\xd8\xde\x87\xedL^\xa7\
+D\xd6A\x9a\xbfO\xcaq>\xa2\xca0+\xb3\x0d'\
+C\x22\xe7\x04B\xef\xe4l\xbb\xbb\xd8\xf5\x9d.\xf6}\
+?u\xb1\xdf\xdfi\xe2\x81\x9b\xaf\x9a\x9cl\xff\xbf\x84\
+\x8b2\xa7\xcb\x96.?S;\xb9\xd86\x9e\xd3\xc4\xf6\
+\xcf\xacG\x5c*v\x7f]APL\x1e\xedb\xf3\xf7\
+g\x97*\xd0&\xe4P\xca<\xdb\xfd\xcc\xfa\xacK\xd5\
+G^\xdf\x17\xfaG\xf6\xcdp\x8dK\xc5V\xafLl\
+p\x9a\x10\xf8\x11\xa7\x03\x09\x91\xa9\xf9L\xe6/\xfb4\
+\x90\x0f8xB\xb4\x06\xc2\xa7%\xefE\x0f\xb7\x81J\
+\xec`\xces\xba\x85\x88\x8bax\x85K!A\x8dD\
+\x14v\xb22\xc5\xc3\xcf\x5c\xaav\xee\x9c\x97\xaa!o\
+\xa1\xf8\xa3K\x5c\x14 9\xact\x0dI\xf8\xbc\xab\x0b\
+\x07F?\xe9\xa2\xe7\x9f\xafp\xc8\xd1\xddb\xd8\xd6E\
+\xfe\xe3\x9cr\xe4M\xcf\xd8.5\xa9\xce\xc7u\x02\x09\
+\x99K\xabi;\x0d\x82\x18\x8e7\x10\x7f\xb4\x8f\xde\xc6\
+\xa58\xee\xa6\x05/KzpE\xd9_\x9a\xef\xd1\x12\
+\xd9\x1f\xa3\x1b\x06\xf6Uw\x83\x8b\xbd\xffQ\x97D2\
+mb\xaf\x8fr\xb1\xeb\xd2.%@M\x80#J\x05\
+(\x9dV@5\xce\x19\xda\xb3\x1e\xecb\x9f\xf3\xcd\xfe\
+\x8c\xfe\x9b\x05\x01\xc2}\x0f\xf7\xb9\xa8\xe4b\x5c!$\
+6v\xa9\x90\x7f\x90(S\x0aG @\xe3\x11\x1c*\
+\xb2\x17&#\xb2\xeb\xddY?[ d\x89,\xe7\xfa\
+\x0a\xb2\x04d\x9a\x08\xa0j\xd4\x88t\x069\x84\xa0\x13\
+q\xa0\xabf1&\x10\xd6Z\x0e\xfaU\x04\x11\x03\x11\
+\xc0\xc1\xd2\xb2\xea\x13\x09{zz\xadr\xb4M\xf8\x83\
+\x02\x00\x0f\x88\xcd\x91\x8d\xc3\xb5e\x83\xe7\xa0\xe5\x80\xc6\
+\x10m\x91\x058<\xbcf\x03\x92\x19xrxbx\
+\xa2D\x80\xc2\x90\xc7\x80%#\xe8\x95\x86\xd7T\x86\xac\
+j\xbd\xc20i\xa1\xffd\xbe\x9cTb\xd9\xc2)\x10\
+\x91\x7f\x91\xa3\x04\x0b\xfa\xca\xeaS)\xe8\xcb\xe8\xf3.\
+\x95\xa2\xa0\xc4a59\x06dDy>=\x17\x90\xb1\
+\xe8;\xdad*X\x07d\xe4\xc3p\xc2\xc1\xc1\xf1\xc1\
+\x11\xc7\xe0\x13\x09`\x18\xfas'W*\x1bXsT\
+\xcf\xed\xb3\x0e\xe9\xde\xa8RP\xccSS\xf3\x18\xeb\x84\
+\xf9\xe45\xf3\xc0\xb86P\xcb\x88\x9cb8\xb7?-\
+$\x9eu\x84c\x01\xf4\x1cE\x03\x09\x22%\x01d\xc2\
+d\xe0\x0d\xb7\xb8T\x1b\x9f\x00\x16\x8a\x98qc\x1c\xa8\
+\x0d~\x87\x02r\x1f\xd0\xb8\x11\x00\x11\x04(\xf6\x07\x0e\
+0\x19D \xe88z\xcc\x0f\xeb\x92u\xc7\xf3c\xf0\
+\xce\xd1te\x18\xeb\xf7\xb3\x22\xc28\xad;@@\x90\
+\xee\xcd\x07Z\xe5H\xe6\xbfg\x1c\x19\xef\x7f+\x92\x0d\
+\x94\x94\xff\x87M\x17\x87\x91q\x14\xab.5d\xb3\xb5\
+qBo\xac\x11\xed\xe6r\xa6\x99\xf5\xa2k\xb0\x9f\xf3\
+~\xc6\x9b\xf1P\xad~\xea\xbd\xf1H\xa5'\xb8?\x02\
+ m\x80\x86\xf5\x08r\x83\xfd\x86cO@\x8c\x00\xc4\
+\x12.\x15G\x00\x81\xb7\x87\x84P)\x86F>\xd0\xc9\
+8\xf3\xf9\x1fT&\x9a\xcc.\x99k\x0cl~\x08\xc8\
+P{_\xc8F\xe9\xe3\x9e\x1d\xf0\x97\xe8ypD\x0a\
+\xe48?7\xe4\x90\x8c\x07\xeb\xf3\x95\xd1\xd6/;d\
+\xd4\xda\x03\x81\xd7s\x04+;\x19R2\xdbp\x12\x94\
+@M\xfe|\x10.\xccc\x8b\xf8\xc2\x11b\xdc1\x08\
+\xe6\xabJ\x86\x96\xae\xf6\x1f\xa5W \x87\xf6IR\x02\
+w\x18\xde\xbb\xdaA\xbfk\x05i?[\x99d\xc6\x99\
+\x1f\xbe\x8fL\x0a$\x97\x0a\x9c\x0d7\xb9T\x88\x19\xd6\
+\x8d\x904m-t<?\xfb\x85\x83\x9a\xcf\xa5\xb6p\
+\x7fqj0?p\xad\xa0\xdf(\xbd\x82\xac\x8cs\x80\
+vz\x9a\x9f\xe86\x00\xcb\xb4\x02\x1cd8b\x9d=\
+\xa4+\xeb\x8b6^\x90\x18RR@)\x0e\x99/\x9e\
+\x97\x92?J\xa2\xd8g e\xd8W\x18\xb6\x9c\xefB\
+\xb2`\x88F{5J\x0f8\x7f\xd1_ jh\x17\
+\x09\x09\x13z\x95\x80\x1e\xf7\x85>\xc7\xc0&1\xc0k\
+\xf4)\x81\x01\x0c~J\xcd@\x1aQ\x0aH`\x88\xf5\
+\xc5\xf7\x12\xf8c~\x09\xc8r\x1f\xf34\x81D\xf4f\
+\xdfp\xac\xa0?\xc9\x006\x9c1\x01\xd5\xa5\xbf\xb7\xec\
+*\xd6y\x90\xfa\xa2\x07e\xb7E\xa9\x11\xe7\x0c,\xeb\
+ \x18\x09$\x81\xa4\xfb\x9dK\xc9\xa8\xd1v1\xd9!\
+\x17\x94\x0c\x5c\x909\xc29\xf0\x99\xdc\xad\x026\xf9\xe8\
+\xb2\xa1y&C\x96\xba\x1d=_A\xe2W\x107\xd5\
+\xf7\xc7?\x18\x9bC:\xfe\xb3\x8b]/p\xb1\xdf\xef\
+\xeeb\x7f\xbf\x90Kr\x80\xefw\x078\xad\xb6w\x96\
+\xee\x1d\xdd\xd6.\xf6\xbe\xef\x99\x9cS>\x9f6\xa3$\
+X\x12I\xdf1\xc5!\xa7fv\xd6F&\x1b+\xf0\
+r[\x0a\x14\x5c\xe2\x1c\x02\xc3n\xc3[\x87\xdd*\xbd\
+\xa7@=\x0e%\x08\x8e\xeec.v}\x8d\x8b\xec\xbe\
+\x85*\x96\xfd\x9f\xbbTzh\xb9\x9c\xa8 \xc3:^\
+\xc4\xa5 \x91\xba_\xb8\x94\x00\xcfxG\x97R\xe3?\
+\xbe\xc1\xc43\xffW\xb8\xd8ud2Q\xec\xc1\xee/\
+.\x1a\x1fs\xf0\xbb\xed\x5cJf\x90\x8c{\xe2\xfc8\
+\xa9B\xb8\x89l\x8d~\xea\xd8\x15\xa3\x83\x14x\xdbJ\
+\x81\xe6\xa3s;\xb7\xe8\x9a5\xe5R\x91\xeb\xfd\xd1\xa5\
+ M\xfa\x9d\x5c\x8a=\xd7\x1dgr|E2\xe8L\
+\x0b\xb6\x8e\xfb\x7f\x99\xd8\xfe\x9c\xba\xd9\xe4\xa6B*7\
+5\x97\x89\xed\x9f\xfe\x87.j\x87vL\x090D&\
+[P\xf5D\xd2x\xbc\xfc\x91\x7f$V\xf8\xb5\x9d\x15\
+~\xea:\x17\x1b\xaf\xbd\x5cJ&\x172\xbbhK\x0b\
+\x17\x06\xf6\xefC\xd3\x91S =(a\x18\xff\xdb\xa5\
+\xea7\xff)\x17\xbb\x8f=M\xdeo\x9f\x7f\xb6\x8b\xfd\
+\xff\xa2.U\xe0\x8fDL\xcb\x85\xd5\x96\x02q\x1e\xb4\
+H\x02\xecQ\xecV\x10\x9e\xd8\xcd\x9c\xb7\x0b7\xf6!\
+\xa5^tK\x91cN\xdbp\x9e\x0b\xc7\x94\xd2\xcd \
+C\xa7\xfd\xae'*< \xf7%\x17{\xce\xad]l\
+\x9c\x8fq\xb1\xdb>\xd9\xe4\x94\xc2\xf1\x00r\x0b\xbf\xa3\
+\xff\x90Kq|\xa34\x8d\x80\xaf\x12!\xc1\xa5\x00i\
+\xefJ.v\xdd\xc2\xe4\xd5\x0aD\xfc\xb4\xb2\x17\xe1J\
+Q\xe6<\xd8\xf6)M~\xa3J\xf6\x84\x04\xed\xfe\xd1\
+=\xd4=T\xbd_\xfe\x0c\xdd\xf2(I\x1dv\xce\xa5\
+`S\xbfw)\x1c\x1f\x046\x03\x11\x88\x1d*\x04\x1c\
+\xddW\xa2\x0d\xe5+\x86eS\xa0\xe6\x8c\x89o:\x97\
+\x89\xe9\x99\xdd\x5c\xcf\x0c\xeb\xb8\x94s\x1dr\xec8\x7f\
+A\xe4\xb1n\xf0\x03\xb0\xa7pk\x08\x00k\xddN\x12\
+\x19\x0b\x88\xbc/\x9b\xad\x05\x99~\xa8\x90\x12\x8c\xaew\
+\xa9jL\x04\xf1\x8fH4\xb5\x0bDt\xc90+#\
+6|c8m8\xad:\x10Y\xd0m\xdb7\x0eh\
+\x1cG&L\x11\xb30T9\xa81d\x80\xdc``\
+\xe8 5\xf7$E\xdc\xed\xb8\xcb\xb5}|.\xdf\x87\
+\x01\xcb\x01\xdc\xb0D\x87A\x8e\x83D\x06[\x90Cj\
+L\xa8\xed\xa1v2\xfa\xa9Rb\xc0\xfb\xd9\xb8\x18\xb4\
+8\xaam\xfb>\xfe\x0e\x83G$)\x91\xf1\x84\x95\xd7\
+\x7f\xfb\xb0\x22|\xcb\x14\xa8\x0d\xed\x87\xc2Pc\x01\xe3\
+\x90`\x80r_ (0\xc4XH\xdc\x0f\x8e\x8aX\
+(\x83\xc5\x95\xf1$\xa3\x01\xd4\x88\xcf\xc5\xc0##V\
+\xf7\xeb\x1eU\x86N\xdb\xd7\x94qY9\xd1\xe8\x94Z\
+B\x02\x17\x18D\x5c\xdbZ\xe6\x86\xed\x7f\xb6\xf9\xc4Q\
+k\x91\x17\xdcO\x0b\xf5\xe49y.\x029 \x0b \
+\xbf\xe4\xf9q4!W$\xf2\xc6\x81\x81\x01\xc8\xfd\xf1\
+\xbc(b\xd6\xc3'\x94i\x83$\x0c\xc7J\xf3\x1b,\
+\xd7\x94\x1e`(\xe3\xe0\x89\xf5?\xbaX\xd0\xae\x84\xf1\
+\xa4\xcd\x16\x01;\x1c\xab\x96\x84\xecY=w\x1b\x10\xe1\
+\xef\x80\x5c\xe3XO\xc6<\xe6\xe7\x80}Y\x86Q\xff\
+K\x17\xbb^\xedRj\xe4p\xc0G\xdf\x1d\x9d3:\
+\xa7 \x89\x22\xa3\xd8\x90\x7fFF\x95\x8c'H\x0d\xe6\
+\x85\xbf{\x95\x14\xe1\x1aZ\xffkOw\xe4\xc2`G\
+\xaf\xcc\xd1d\xf89(\xf9\xc11E\x1f\x11\x81g\x1f\
+1\xef\x04\xdc@\xc8\x90\x89&\xd0\xa2}N\x86\xc8\xcc\
+\xa3;\x86;\xca>\x8c\x8c?\xfb\xefI\x97\x8a\x8c\x94\
+}\xcczc}\xf3\x5c8\xac\xec\xfb\xf5\xb4>\xc8P\
+\xce'\x07\xb2\x94\xc2d\x87\x9f\x1f\x0c\xc0\xa5\xa6\xcfc\
+\x18\x12\xac[\x1c\xad&\xa0\x1a\xf7O\xc0`\x039\x8a\
+8p8\xfa\xe8a\x22\xd8\xca\x04F\xc9\x08\xfa\x8b\xef\
+\xa3\xb4\x04.\x02\x1cP\x02\xae8\xda\x94\xe2\x10\x08P\
+;\xa28\xaf\x80\xe8)\xe3\x11\x0e\xf3v\x0a\xec\xb1\xde\
+\xd1\x8b|?\xeb\x85\xe7b\x1e\xe1\xd4\xa0\xd6\x1f}\xc6\
+9\xc7:\xc5QD\xdf\x10\x98d\x1e\xb9\x7f\xc85g\
+\xe8\x0a\xc4\x13n\x01\x02. \x8a\x04\xe9\x8f\xf6\x85\x94\
+\x1a\xd1\xe7\x9c\x1aE\xce%\x022\xaccuw\xa0t\
+. \xf68\xc8d\x92\x1db\xbbW\xf9\x9c\xd0/\xac\
++\xc8\xdepL1\x10q8_\xebR!\xa9\xd0\xe3\
+\x18\xb0*\x99\x8aR\x04q3` b\x8f\xc4\xe7\xea\
+\xb9\x81\xa0\x064\x9es\x80\xfb\xa7\xa6\x16\x07\x98\xf9c\
+\x9e\xb8\x0fH\x04\x09\xb8\x92yg_\xd1\x85B\xf7\x15\
+\xf3\xc5\xfe\x03\x91\xc2\xba\xe5\xf5\x8b@\xffc}\xb4\xe7\
+\x0c\xe7\x145\xa3\xd8\x03\x04\xe4\xb1\xb3\xc8|\xf1}\x0a\
+\x00\x04w\x105\xc6\x04\xfa\xa9Y\x06\xda\xcd9\xcd\xfd\
+s\x9f|\x0em\xf3d\xff\x8d\xe6u\xa9J, \xcd\
+\x84,\x9aR\x0c\x10\x18 \x83@\x00\xd0\xbe\x0e\x16{\
+\xcd7\x19=\xba2\x8c\xde#\xa8\xfcm\xa3\xdbS-\
+>\x19-\xfa\xb2_\xe8R!F.K|\xd9\x13\xdd\
+[LvVBc\xe9\x0a\xfa\xfe'\x97\xe4x\xec\x9c\
+\xda\x86\xfdg\xf4h\xca\xe0\x93\xc1\xfd\x9eK\x15\x7f\xf9\
+\xb4\xc9\xc1\xa5\xe4\xb2\x9fr\xb1\xebR.%\x13L\xc9\
+\x02\x01\xeb\xee\x1a\x13s\x18\xbb\xdf\x98\xdc\xa2\xbe\xf0g\
+$\xce\x81s\x9d\xa5\x9e\xda`2u\xdd\x9b]\x12\x02\
+ q\x03t\x87u\x87:\x19\x1fvd\xf7/\x17\xbb\
+~\xc2\xc5\xae\xb7\xaa\x14`\x7f\x17[\xbe\x0f\xb9\xd8\xf5\
+\x19\x17\xbbnib\xfb\xba{\x9f\x8b]\xd7r\x11\xc4\
+\xdf\xec\xe2\xee\xeb.e\xf9\x8d\xae\xcd\xed\xda\xba[\xba\
+\x9b\x13w\xc1<y~\xe9\xfa\x10\x8e\xe0\xf1B\x0a\x81\
+\x00\xa2\x84B\xfe\xc3\xb0\xd4\xb0\xf4\xb0t\xca\xc0\xe7\xb6\
+\xbd*\xbd\x1c\xfe$\xc7\xdf\xd9\xf8\xed\xfc\xe8\x7ffr\
+]\xe9v\x15\xa5\xb1?J\x18\xac\xc8\xf0C\x92\x96\x1c\
+|\x1b\x97\xa9k\x5c\xec\xf53\xb9/{\xe2`\xb9\xa8\
+\xaa\x95^2Y\x1c9\xe3z\x8f\xecu'3\xdd\xc4\
+dS\x9d\x1bs\x89\xfc\xf0L\xb1\xf8_b\xe3\xf5w\
+\x97R\xdb\xdd}\xd4\xc5\xbe\xe76\x97\xaao\xfd\x99.\
+%c\x1c%4JTu\xfb\xb9\xd8\xe7-\xe3b\xaf\
+wq\xa9\x1cS\x12v^\x02\xe0\x8e\xf1\xdf\x5c\xec\xba\
+\x99K\x15h\x1428JWY\x90\xe8'\xf4\x00?\
+\x9c\xc7p\x8f\xb8\x95\xbca!S\xe4\xef\x03!D\xb7\
+\x1c\x02\xbe\xecO\xf4!z\xc8\xc3zg\x95qNZ\
+\xa2\xe6\x08\x12\x12\x14Hy\xea\x9d\xe2%0\xf7\xb9\xd8\
+\xf3\xef\xeab\xb7\xbf\xbf\x8b=\xe7/r7\xa7\xa9\xcf\
+\xba\x08\xe1\xf6\xdaJ\xafp_\xee\x8e\x7f\xacB\x1e\x1c\
+\xe8R\xd91\xd8\xcfpSA2\x8f\xa3\xec\xb8\xb1}\
+J\xfb]\xec\xaenK\x97\x0a\x09t`\x7f\x80\x93M\
+\xdb\x18\x9d\x91\xc6i)\x9d\xefp\xee\xfcJ\xe7)m\
+HAv\xa8\xf4oX\xc3%\xd9\x99\xd9\x9eQ\xa9\xf6\
+\xd4\xbe.\xd5yK\x80\x9e\xc4\x04m\x8cE\xa6;l\
+\xeaR\x95\xd4Q\x12\xc08+\x803\xec\xebR\xcd3\
+\x5cVt\xb1\xc1^\xe2|\xc0\x8e\x22\x90r\xa9\xba\x09\
+\x88\x13c2\xda\x1c\x88\xc4 \xfaR\x02\x1d\xdb:\xf1\
+,\x17\x92\x05\xc8ND\x9e\x10\x11\x06\x1c\x01\x22\x14N\
+\xdaple\xe0\xe1H\xa0q\x0a\xf4{z-\x0b\x06\
+8\x07\x12\x0b\x94\xff\xe7{8\x18\xd9\x08D\xc6\x81\xa4\
+Q{J\xcd*\x06<\x8eK[C\x83\x03\xc8\xfd\x91\
+Ya\xa15\x192\xa00dhb!p\xd0z\x85\
+\xe2\x11\xda\x88\x1bW\x91u>\x07\x83\xe0eM--\
+\xbf'@\xc2}p\x7fM\xc6\xc7\x1cD\x97\x02E{\
+\xc0\xa5\xaa\xd9\x81TEmn\xd2\xc2\xdf\xaf\xfa>\xc6\
+\x8d\xf1\xc6`\xc2\x00\xc01\xc00\xe0\xef|\xd4fU\
+\x0e\x16\x8e+\xef\x1f\xa7\xdcq\x9e\xaf\x97\xbd@\xc9\x05\
+\x08\x80\x16Z\xcc\xfcR\xdb\xed\x19\x9dWT\x8e\x0c\x86\
+7\x8e3\xdf\xdb\x92\xde1N\xfc\x1d\xdf\xd3\x06\x90\x08\
+\xb4\xb4\x99\xff\xb6\xa6\xe6\x7f\x91!\xcf\xef\xc7\xd0b\x1e\
+\xf8\x1e\xd6\x19\xed\xd1\x88\x8c\xb7\x19&2B</\x99\
+K\x0cc\xf6\x15\xed\xae\xa8a\xa5\xe6T\xec\xbd\x91\xd1\
+\xc3`\xa5K\x00\x19a)P\x1c\xfe0\x18q\xd8h\
+\xeb\xb4p\x03\xf1/\xfbq\xba!\xfa\x9c\xee_\x88\x00\
+\xd8L\xa3$\x80\xf7\x91\xc9\x22\x80\xc7A\xc6\xf3\x081\
+\x13\xed\x82\xd4\x07\xd5\x8c\x88l\xd0\xb3\x1eX\xa7\x04\xf6\
+\x08\xa00\xee\x1c\x5cp3\xac(\xf24\x1cA~\xcf\
+\xfaYC\xaf\x97\x97!O&W\xe3\x12%0\x04\x16\
+p|Y_@\xec\x17t\xa9\xf4\x01\xed\xf3X\xff\x8c\
+\xef\xaar\x88V\x09\xa4A^\xaf\x93Q\xe2\x92\xc7\x15\
+\x88?\xed\x1a\xd1C\x18\xe8\x1a\xc7`\xa5\xe7\xc0a\x1d\
+q\xc5\xb1\xe0\xbea+W\x9b\xcfh_\xca\xc1)\xb2\
+\xbc\xb8\x1f\xf4\x1dW\x1c\x11>\x1f\x07\xaf\xe9\x07\x1e\xed\
+\xcb(9\xd8X\x0e\x11\xeb\xb8\xd4L\x13\x88\xc8\x81\x10\
+\x026dV\xd7T@cs\xb5_\xddZ\xb5\xd0\x7f\
+\xca\x07\x1e,\xf6\xd1\xc6\x90\xfd\xc9\xfc\xe2X\xcb\xb1\x0d\
+G\x83Z\xe6\xe7\x5c\xaauJ\xa6\x84}H\xa6\x1a=\
+\xc3xr\x10\xb3.8\xbf^,`\xcb\xfc\xb1\x8ey\
+\xcd\xbc\xe0\xe8\x13P\x11\xf9\xdb\x88\xf1\x95\x81\x10\xdd9\
+\x08\xb4+\x90\x15\x8e?\x012j\xfd\x80\xa0\x8b\xdc*\
+\xda,\xa2\xe7y>\xee\xbf\x09T\x86\xa1B\xa9\xc5\xdb\
+\xa7g\x1c\x22\xc0\x81\xbd 2\xab \x8b\xa5\x16\x92\x12\
+\x05\xf4%\xe3\xab\xf3#\xb8}\x08\x10p\x7f\x04\xd8\x19\
+/H~EV\x17\xed\xa8 \xb9;\xcb\xa5\x186\x11\
+h\x83\xd4\x0eR\xbc\xb6\x0b@\xdb\x8f\x9c\xf5\xd0\xb6k\
+E\xcf\x13\xd8\xc4@nIb[N\x89v_\xbeX\
+\xed\x7f\x8btD\x8fb\xf7\x90\xd9\xc3\x8eb\xbdq\xde\
+\x80\xf4Q\x00\x9a\x9am\x0c\xcd\x80\xe4\xca\x9e\x1b\xdd\xe8\
+R9\xde\xd8K\xe8\x03\x90\x02j35\xfa\xabKU\
++N \x96\x925\xc8\xab>\x99$\xba\x18\x04y\x9c\
+\xb8q\x08\x90D\xa0\x1a\xbd \xc4\x02\x8eRtG\x02\
+\x11\xb6\xa2JP\x17p\xb1\xeb=&wW\xec\xd9:\
+\xe7S\x1b\xbb\xa3\x15\x18}\x83\x1c\xf1\x0b\x04U~\x95\
+H\xf2\xde*\xf2\xbd\x1f\x9a\xda\x9e\xc7d\xee\x12\x98\x0f\
+GV\xfa\x8c\xc0\xfa\xe4\xb5\x93?\x9b4\xc7x|\xe3\
+\xf8Wc\x1b\xd7\xa9\x03M\xcc\xf1\x9dZ\xda\xc5\xae\xcf\
+\xb9T\xed\xf4D\xc2\x97\xf6\xcf&\x05\x82\x1e\x19~!\
+\xc0F\xffv)$\x868\xf8 x\xba\x7fv\x0fw\
+\x0fK-\xd8\xbe\x19\x1f\xe9\xa2\xae\x01\xdeO\xfd\x02\x17\
+\xbb^\xedb\xbf\x7f\x9d\xc9vv]\xd4\xc4\xd6Y\xf7\
+\x05\x17{\xbd\x83\x8b\xbd\xbe\xd8\xc4\x1c\xf4\xf1q\xe3\xe3\
+\xc7\xe6\xa8\x8d\xcf\x1b\x9f;>\xd7\xfe\xbf\xf7\xbeg\x22\
+E\xfbnB\x1a\xbc\xcb\xb9\x0fF\xc7\xba\xd88\xac\x92\
+\xb9y\x86U]\x0a\xe2#j\x89\xaf\xce~\x80\xb9\x13\
+G\x0eG\x16\x04\x15\xd0o2\xff\xfd\xd7]\xec:\xb7\
+K\xb1OFK\xe6\xf1\xe8?\xe0Rj\xd1\x13\xd9\xdb\
+\xb5\xca\x8c\xdb\xf3\xf4\xf3\xba\x94\xcf\xa5\xb6?\x02\xb4 \
+\xb0\x1c:\xfd\xb0\xb8R>^e\xec\xf779\xa0@\
+\xd3\x93\x9b\xf6\xae\xd4>\xf8\x94\xce\x1c\xd6\xc9\x7f\x9b<\
+\x92\x02!\xd7\x8e\xae)v\xf2\xf0?\x13\xfb\xfc\xa9\x95\
+L\xec\xbc\xed\x17wQ\xe9\xc8z\x85$\x8f\xf1\x18_\
+\xebRu\x81P \xb8\xff\xa6KA\x18L\xdd6u\
+\xfb\xd4\xed\xf6z\xe1\xf1Bc\x0f\x88<f\xf2\xdf*\
+\xc1\xaa\xee\x14\x9c\xf7QZ\x85\xdeB?<\x9aR&\
+\x85{\x81\xdaq\xd9Y\x01A'\x80\xa8~\xf7)\x03\
+>\xa3*\xb1\x82\xa3\x8a\x92n\xce\x07\x02\xdf\xe2\x9eI\
+\xf6\xde\xcc\x0a\x19\x87\xbeUm~p\xafQr\x80=\
+\xaes\xb0\xdf\xc2\xc4\xf4\xd5\xac\xcd]J`mr\x0f\
+\x17u\x05\xb8\xa8:O\xb9\x0f\x10I\xba_\xd6e \
+\x02\xe4\x00\x13\x98\x05\x89\x17m\xd5E\x06\x19\xa5\x9d^\
+\xb2\xe3m1W5Y-!U\x92\x1dK\xa9\x823\
+\x848GH\x9c#\xcc3\x09U\x10\x07\x04\x1c \x9f\
+\x85+H\xdd\x88\xfa\x95]\x0a\x07KpZ\x09\xf9\x13\
+\x81kq\xb6\x04\xb7\x1e\x1cZ\x90\xbc\x1e\x99\xf7\x17\x9c\
+\x01a\xff\xb2\x1e(\xa9#\xe1\x82\x9dABE\x89\xe3\
+\xe13.%Q=ID3\x0e\x1a\xfa\xb8;@\xeb\
+\x97e\xc0\xe8C\x9f\x1c\xcc\xbfW\x03\x8ba\xce\x01O\
+\x06\x88\x09d\x01a\xa8\x91A\xc1\xf0l#\xe0@\xfc\
+9\xa89(18\xf9\x1c\x0eJ2\xffD\xe8i\x97\
+\xf0\xb0\x22^\xcf\xfb\x16\xaej\xe9P\x18-d\x1c\x07\
+\x87\xfb\x05Z\x88#\xc9\x01\x8f\xe3\x0e$J\xfd=c\
+\x81\xd5\xb5\x7f\xcbW\x0e\x08\xfd\xa1\xa9\xe9\x06\xba\x8c\xa1\
+If\x01\x83\x91H\x1f\x8ek\xdb\x1e\x0eC\x85\xc0\x02\
+\xd0?\x1c\x14A\xc8\x02\x22\x82\x01^C\xf0\xe7\xae\x1c\
+_\x1c\xc86\xb3\x85aHF\x13\xe8\x0dl\xdc\x18n\
+s\x04;\xfa\xfc\xe1\x00-\xa5\xf9\xea\xab\xf1oI\xd1\
+\xc8\xa4\x8b\x04,\x1cJ\xd6\x05\x06S;\x0fdR\x99\
+'\x0c\xaf\xd60c\xa3\xf0y86\x8c+\xeb\x8c\xf1\
+n!\xec\x5c\xa9\x11_D\x9f\x8f\xe2\xc3\x90\x11yX\
+dfUC\x18\x8a\x09\x96TJ;0\x0c\x197\x9e\
+K\x8a4Q\x1b}&\x19b\xa9\xcf}d\xea\x89L\
+r%\x03\x86\xa3\x07\xc9\x12\xb5\xb0G\xe9\xfdj\x8f\x14\
+\x01\xaaB\x9a6\x9d\x04\x8e}\x81\xa3\x0f\x04\xf61\x97\
+\xcaPm\xa1\xb4\x18\xd2\x5cY\xaf\xecg\xf6)\x1c\x09\
+\xaa\xa1\xec\xde\xedb\xcb\xfaH\x97D\x9e\x92\x0f 2\
+\x83\xbf\xcc\xa5\x02\x01\x09.\x0ep\x0e<q?\x132\
+\x8c\xe7iH5\xf9;\xf6[\xc3\xf1\x11]#\x18?\
+H#\xef\x13\x89\xd6\xa2\x0a\x98\xc0i\xc0\xfa\x9d\xa1\x8c\
+\xab\x90\x02Q\xab\xcd:b\x9d\xad\xd3d\xdcQ\xccm\
+\x17\x12\xc6\x09\x84\x02\xdf\xc3\xfa~H\xfbgi\xbd\x9f\
+\xda\xfb\xd5\x95QF\xef\xb2O8\x10@B\xbcV%\
+\x22d*q\x1c\xe8\xe6\xf0\xfc\xf4\x92\x98\x88\x1c;\x89\
+\xd3SU\xed2\xf7\x03I+\x10\xea\x95B\xefe}\
+\xd1\xd6@\xa3\xbf\xa9\x85^_\x01\x895a\xdfW\xe0\
+\x80\xf9a\x7fp\xbe(3\x1d\x99`A\xd1\xc3A\x06\
+\x8aK\xa9\x01\x81m2\xe3\x04Z\x818\xb2\xcf\xdbL\
+\xec<\xd1\xbeqz{\xc26\xa0\xd8\x04\x84BOp\
+ \x13\xf0n\x91\x22\xcc\x0b\xc8\x10\x1c\xcb9\xc4\xfa\xbe\
+\xb1>\x1f\xa4\x00z\xa6\xe5\xf6 \xc0\xf4j\xf5iF\
+\xef`8\x08i\xe1\x15\xbf)\x10x\xa7\x90a\xd4\xf4\
+7\xc8\xad\xd1\xea\xba\x1f\x02coU;E\xf4\x1a\x99\
+d>\x9f\xc0\x10\xfb\x1a\x87\xb0\x09\xb4S\xfaD\xadh\
+\x90\x0e\xa27q\xb4\xc9\xf8\xc3M\x80#J\xffx2\
+<\x22\x0d\xe5\x9cB\xbf\x0d\x07\xb9T\xf7\xd5\x94\xc2D\
+M<\x082\x02*\x9c\x87\x9c\xff\x9c\xa7\x9c\xaf\x90B\
+2\xfe-+\x7f\xcb\xc1\xc0|7\xf3\x14]\x04@\xec\
+\xa0\x07\xda\xd2C\xba\x91\x88}?2b\x04N\x9cM\
+\xfd\xa7U\xcd9\xa5E@\x8f\xff\xe6R\x05D(\xfd\
+\x91#\x1a\xe4\x7ft\xf1Q[\xbc@\x960\xbf8\xf6\
+\xd8\x01\xe8Y\x91\xbe\x81D\xf2|\xafg|!\xaf\x8a\
+\xcfc\x9c4\xcfN\xb1\xe5$[v\x17\xa9\x94d\xfc\
+\xe3\xf1%c\xcf\xbc\xde\xedR2\x851\x1e?K\xe2\
+\xf3\x90\xecRs\x7f2\x09\xe3KR\xd1R\x86\xec\x7f\
+\xb1\x04\x0e\xbb\x97\x98\xcc\x95\xdb\xc39\xd9]\x90\xe3\xdd\
+\xe6R9\x9cd~\xd5\xdd\x86\xc0/\x99r\x90!Q\
+b d\xc10\xff0\xdf0\x9f\xfa\x8a?]\x91\x16\
+\xca\x90\x1f>\xeb\xa2\x00\xfe6\xd5\xb9\x8f\x01.{,\
+j\xc4\x09\xc8\x93Q\xd4\xdf\xd3\x0d\xc0\xdc\xc7%;'\
+'{\xde\xa5\xd4\xc2w\xdfv\xb1\xebS.6~\xe7\
+\x98\xd8s\x8c\xefp\xb1\xebL\x13[\x97\xdd\xbfM\xec\
+\x1c\x1a\x1f\xeab\xd7\x8f\x8f\xf7\x1b\x9bC\xdb\x9d\xe4b\
+\xaf\xd7w\xd1\xfb\xcfId\xa5\xb9\xa4W\xec\xfe\xc1\xe9\
+\xa0\x04S\x94\xee\xaa\xb4\xc7{\x12xW\x02[+I\
+O\x0c\xdfp\xb1s\xfc\xe3.%P;\xbc\xcc\xa5\xd4\
+LO\xdd\xe4R\xda\xfc&\x0a\xb8;\x8a\x83\xd7\x9f\xe6\
+RH\x11\xfbg]*\xf26\x95\xf8D;p2\xce\
+p\xa9\xac\x94\xdb.\x0e\x9f4\xf9D!\xeb\x0bR8\
+\xbaR}<\x93\xa4\x8e741\xbb\xa0\xbb\xd2\xe4*\
+{\xfd-\x17\xfb\xfb=]\xa4'n\xab\xfa\xda?\xe4\
+R\x1c\xc4@(\x81\x90\xa1=\xa5\xc80\xfbK]\xec\
+\xef\x9eu)vv\xb7`\xb7@\xb7@E\xb6\xa8\x12\
+\x98\xe4PB\xa6\xfb\xb2\xaa\xb4\x09\x07\x8e.\x1b\xe8'\
+\xae\xea\x0aF\xe0-\xb8i\xd4\xbf>\xec1X\xe1\xd5\
+\x05#\x120B^L|1II@Rj$R\
+\xbf@\x92\x81\xb8\x81\x04\x94\xd2\x10\xfc\x05\x1cU\x95\x08\
+\xc0\xfd\x90J\x1e\xec\xfe\xfa\xed\x5cl=\xfc\xd3\xa5\xb4\
+\x09\x87\xa3\x22\xe1\x86\xb6\xabJl\x95 \x0a\xa45\xdc\
+u\xe2\xf0\x19\xbe\xe8R!\xd9i\x0f\x0b\xd7\xc4<.\
+\x85l09\xd4GT\xf6\xa2\xec\xb6\xd1\xbc\xa3\xf9=\
+\x91\x91\xdaa\xda>\xedOu)vh\xb0\xfdS\xea\
+\x03i\xa9\xba\xb1\xd1m\x03V\xfe\xa0\x8c\xd3\xfe\x09D\
+\xcb\xe7]*\xfbH\x01\x84T\xba\xb0E\x15\xd8f>\
+@\x962\x1e@\xfe\xf1\xd7\xc4\xe5\x13\x88\xa8\xeb\x5c*\
+;\x8dv\xae\xd8\x15:g&\x1dp\xea\x90\xd3\xa4\xc8\
+\xae\x93\xa1\xb7\x90j\xfb\x0f\xd0\xc1|k\xb5\x80ql\
+h\xbb\x03\xc4\x90\x05\x83\xe2\xe7\xda\x92\x93\xf1\xd3\x1a`\
+\x1c\xa4\x1c\xc4,\xd86\x03\xc3\xdfah\xc1\xdeK\xa4\
+Dm#\xc2\x10'0\xc0\xfb8\xc8p\x80\xb8/\x0c\
+\x176\x14\x11.\x1c\x11\x1cV\xd8\x8b\xd5/\xb6[\xce\
+\xc5&\xf4\xfb.\x15\xb4\x92\x8d\x02\xc9\x1f\x99L\x0c\xdd\
+\xe5\x1bC\x19C\x93\x88\x19\x0e3\xcf\x8d\xa3-\x07\x8b\
+L\x0fP\xf0\xc8\x98\xc3\xc2\x0b2\x80Z\xd2\xafd\x16\
+\xea\x08\xc0`\xc0`\xa8\xe0 Q~\xaf\x8c!\x0a.\
+\x0c\x01\xc6\x81\xf1\xe3sph\x16O\xd5\xe7\xa5\xdd\x05\
+\x5c\x0dj\xc7\x17l\xdf-r@\x1b\xdc\xbbS\xa7\xfe\
+\xd4\x04\x90\xb8\xbf\x17\xab\xd5\xe7>0\xdc[\xe8?\xf7\
+\x8d\xa3\xd5:r\xac\x9f\x86<%\x02Z\x8c?\xd0Q\
+):\xef*\x9b\xfa\xca\x92\xd9\x10t\x90\x03=U\xf0\
+T\xac\xa5|\xee\xe8\xed\xca\x10\xee\xa2}\xb1\x80\xd6\x1f\
+\xdf\x87\xc1\xf6\x85\x0c\x1d\xa2\x16)\x02:\x94x@z\
+B\xdf]\xb1\xe8GFU\xed\x19a_\x0eES\xcf\
+\xd3\xe2/\xd0\x17\x1e\x03\xfai=\xf7\xb3M{H\x1c\
+~\xf6\x17\x01\x14\x22\xd28\x04m[C\x91\x94D\xbb\
+\xc8S\xd5\x86\xe9\xee\xd1=\xa3{\xd2\xba\x98c\xe4\x5c\
+\x09or\x99\xbd\xdfz\xac[\x1c)\xf6I\x09`L\
+/\xe5@\xff\xf0w\xeco\x0crj\xb4q8q\xb4\
+p,p\xe8\x09s\x0f\x86\xde\x00\x00 \x00IDA\
+T4\xf1~\xee\x83\xc0RK*\xf6\xb8\x02\x93@\xe7\
+_\x1e\xd0\xf8\xbc\xdf\x97n\x10\x05C@\xeds`\x8f\
+\xfbg\x9d2_\x7f\xd5:e\xdd\xc2\xc2O{\x18\x22\
+\xbf\xcc+\xc8\x02\xf6\x19m\xfa\x80f\xe3\x80\xf2=\x90\
+3R\xf3\x0f\xa4\x17\x07\x0c\xbd%\x96l\x02.\xa3\x1d\
+\xa4\xb7\xb6\xd2x\xb4\x819JR\xe8\x9e RG\x1b\
+\xf3\xec\x08m\xa0\xbf_]\xaf[\xc7\xb7\xe5j\xa1&\
+\x99\xb6f\xe8'\xc6\xa9t\xbd\xc8\xdf\xc7\xb8\x120F\
+\xaf\xf0w\x9c\x07m\xcd5\xf3\xc9\xf8\xac\x91\xee\xd0\xd7\
+\xcdRi\xdd\xf0}m\x86\xbbm\x7f\xc8<\xb3N\xf8\
+;\xe6\x05\x87\x14\x87\x90\xfb\x05\xe9\xb3\xbdK\x09\xb8\x8f\
+\xf6\x13\xd9(P\xea\xad5?t\x89\x81\xdc\xedM\x99\
+\x84-J\x11T*G\xfb\x1f\x02\xad\xa6]rI\x19\
+\xef\xc7A\x05A!2\xb7p\x18\xc9\xe0*0\x13P\
+zJ\x02\xc9t\xb3/\x19\x07\xf4\x00\x99\x1c\x02\x98@\
+\xfeqXi;\xa8\x80M\x90\xba\x011\xe5\xfe\x14\xe0\
+\x89>\xcd@\xf2\xe5\xe8F\xa6\x032+\xf6\xab \xbb\
+\xd4\xc2G\xa0\x98\xc0?%\x85\xed>\xc7\x8ei\x03F\
+\xb3\x824s:\xc2\x91\x9aO\x0ce\x02=\x9cg-\
+)(\xb5\xb3p\x18\xb0\x1e\xd8\x07p\xed\xa0W\xdb@\
+\x04\xfb\x0c\x12g\x101<\x1f\xe7\x0a}\xb4)\xf9\x22\
+\x80\x00+7\x01\x10\xed\xb3\x80<\xd3}\x85q\xa6;\
+\x06\xa5(\xf4\xdd\x96A\xcc\xdfw\xbfv)dx\xe3\
+\xe5\xc6+\x8c\xedy\xc7\x0f\x8e\x1f\x18\xdb91y\xef\
+\xe4}\x93\xf7\xa5\x9a\xe8\xf4{\xfb\xee\x9c\x89<8\xb3\
+k\x8fN\xcb\xdc\x04\xe3[\xc67\x8fo\x16\xbb\xfd\x0d\
+v\xfd\x8a\x8b]\xe73\x99\xb7r\x88OqI\x1c\x02\
+&\xc5A\xe8\x8ew\xa9J\xe9\xe0\xda\xa0\xdd\x9d\x90p\
+\x09\xaao\xeb\xd8\x9b\x06z\xdb@\xd6m\x7f\x82K\x09\
+\xa8\xb2\x8d\xd3k\xd3KS\x87\x98\x1c\x5c\x8d\x03\x99~\
+\x05d`\xff&\xe3\x0f\xa7B*Ux\x8b]Ov\
+\xa9\x02\x18\xe2\x0c\xe8\xce09\xbd\x90\xf5u'\xba\xd8\
+s>lb\xebu\xbc\x85\x8b\xc8\x0e\xe7H]\x02~\
+\xdf\x99\x1d<\xb9\xae\xf3\xe6\xdb\xeb{\x5c\xec\xf7\x0f\xd8\
+\x88{\x89\xc0\xb6.v\xfd\x8b\x8b\xfd\xfe@\x17\xbb^\
+\xebE\x0bU`c\xc1\xcc\xad\xe0M\x02\xbdM\xa0\x9d\
+\xfdYo\xaa\xdbI\x04\xe2\xef\xce\xeb\x12.\xac\xfe\x93\
+.v\x9d/g\xec\xfb\xbd\xfb}z\xaf\xe1\xdf\xcf\xa5\
+\xd8\xf7\xb1N\x9crq\x8f\xe4\xb8%{:\xa0\xdb\xda\
+\xbf\x89;\xe2q\xb5;|e\xc5\x19\xe1\xa5\x5cn\x0f\
+;\xe3\xc0\xe7U\x1a\xf4\xabJ\x7f\xc2!E`\x0d\x84\
+\x8a\x1c\xb3n+\x97R\xeb\x9f\xba\x04\xdcY\xf6\x99\x87\
+{<\xe0\xd3\xff\xc8\xe4\xe2\xd2\x9dat\x8dKY?\
+\x01\xc9\x96?\xe2\x85\xce^\xeaL\x89\xc8\xd4\xc6.\xf6\
+\xfa>\x17\xbb\x1e\xeeb\x7f\xb7\xbcK\xd5.\x5c\xa5\x1e\
+\xc9A\x9dQ\xb1\xc47\xa4\xc1A\xfa{\x94K\xa57\
+\xc5\x09\x05\xe9bp,a\xaf\x11x\xf7R\x15\xaf5\
+\x7f\xb5Ku\xfe\xb9\xd6\xfdy\x95\x08\xd6\x02\x0fRB\
+\xf44]4\xd4.9\xec|\xf4?v \x09E/\
+\x94\xb8J\xed\x1e}}\xbe\xc2\xc5>f#\x93\x0d\x13\
+\x04\xfeYG\xf6\xf4\xd7f\xc4G\x22\xaf\xfcO)i\
+\x1a>\xe8R\x02=p\xa0\x0d\x97\xe4\x00\x07d\xa1\xf1\
+\x1c\x04\x92E&=\xec\xea\x92\xc6\xfd\x884\xee\xff\xb2\
+\xe7\xc9\xf6w\x0eps^\xd1u\xe9R\xf9}\xb4\xe3\
+\xbdJHw!\x0b\x13G\xc5q\xa5{\x8f3\x04$\
+\x8e\x00\xad\xaf\xf0\xf3\x18\x0fqP0\x8e\xfd\xbb]*\
+\x04\xac\xbahEW\x088\x8a@\xb8\x89\xec=\xba\x1c\
+\x80l\xa0\x04\x85\x80\xec\xaf]JI\xd0\x08\xf2\x0f\xfc\
+[!?\x83\x9bC\x08\x8a\xc9 \x13\xa2f^\x10\xbb\
+D\xf6pF\x951\x80uY%\x02\xfdq.\x05b\
+\x17,\xb1\xaa\x89\x87\xe4\x09R\x93\xc8\xc0\xb4\x90H2\
+\x0e\x1c\xac\x05r\x9d\x1d6&\xb6\x85\xca\x11p\x00r\
+\x09yW[\xbb\xcd\x06@c\xc3\xfe\x0c\x84R\x06\xef\
+p\xd7p\xe7pge`\xab\x8d\xd0\xc4O\x92\x04T\
+.\xfa\xea\x12iW\xbb\x87\xd92F<'\x0e$\xbf\
+\xc7\x80ac\xe3\x80p\x9d\xbb!\xe5\x22\x03\xc6}a\
+\xa0R\xe3A\xed%\x06\x16\x99b\x22}d\x5c08\
+\xdbZg\xc6\x1dC\x81\xef%\x90\x81\xa1\x8c\xa3\x0dR\
+\x83@\x0d\xf3H\x8d\xb7j\xe9\xc2\x00!\xa3\xa8\xda\xbe\
+\xd9H\xe8\x08\x80\xbcX\xd7\x05\xe6\x0f\xc7\xfc\xc5H\xff\
+\xda\x8c6\x8e\x1f\xcf\xfd/\x05\x8c\xe8\xe7\x8ea\xc5\xe7\
+\xe38\xe1\x003.(\x08\x9e\xf7ne<\x99WH\
+\xb2Dv4\xf1{\x19P8\xcc\x8f5\x90N2\xa6\
++\xc8!\xdcD\x19(J\x0cFz~\x14;\x99Z\
+2\xf8d\xec\xa8\xf1U\xbfh\xa0H\xc3\xfa.U\x06\
+\x17\x12(\x027\xecsA\x12CA0\xef%\x00\x90\
+Yd\xff'\x04\xcd\xe3M\x7fx\x0cQ\x02(\xac?\
+\x0e\x10\xa0\xbbwj_a\xf8\xd3\x0da\xb2A>0\
+?d\xe2\xc5\x86<!(\xe2\x88\xf9\x01\xc2\xce>#\
+\x13\xda\x92l\xcd7\x1dz\x16\xa4\x85\x9d\x14\xe3\xda\xca\
+<c\xe8\xb3\x0e\xe7\x0ch~~N\x9e\x17\x87\x8f}\
+\x8cC\xca\xfa\xc0 G\xef\x94n\x08\xf9\xbe\x96\xd5:\
+\x01\xea\xce}\xb2\xce\xdaR\x18\xf6;\xeb\x1e\x88\x1f\x91\
+\x5cJ\x1eh\x17\xb6O\xa2K*\x8e>\x99U\x02\xa5\
+-\xd7\xc9DS\xdbO`ba=\x0f\xcf5\x7f\x90\
+\xf0e\x07\x16=\xcex\xf0\x9c\xcc#\x88'\xa0n\xd4\
+\xbc\xb1\xdf:A\xeeW\xd5\xe7\x13\x18i \xfcaX\
+`\x888\xf4\xf7\x9ej\x9eq\xb0 5# \x86\xbe\
+\xc4\xd1\x87]\x996n\xd7&)dy8x\x04\x9c\
+q\xd4\xd1\x8f v\x166Gn\xe1*P\xda\xdcG\
+\xcc\xe3\x7f\x14\x00\xa0t\x86\xf1[P\xf3\xcd\x0f\xfa\x89\
+u\xdc\xd6\x90\xf3\xb9\x9c\x87\xb4u\xc4\x01\x03\xe9#\x88\
+~\x8c\xdfV\xca\xe4\xbeYl\xed\xbb\xaa6\x9c\x8c\xb7\
+\xf4\xe6h\x17e(\xc9$\xf0\xfd\x94\xc4\x10\x88\x159\
+R8\xfe\x90\x19\x12\xa0\xf8\xa5K\xe5h3n<\x1f\
+\xfb\x81y\xa0F\xdfI\xc6\xbeZ\xd8\xe6c\x1f\x13X\
+\x84\xe3A\xf3\x14\xed\xe9\xbe\xecb\xaf\xcfv\xa9\x12\x11\
+\x04\xa8pT\x81\x04S\x1b,\xfdI\x066\x0cT\xd6\
+3\xfb\x85\xf9\x07\x19 h\xbc\x17\x16\xa5\xd2\x22 \xb2\
+mw\x8f\xb6t\x0e\xae\x16\xb5\xad\x0c\xc7\x9e\x1f\xf4m\
+K\x12\xc8<\xa0\x8f\xf8\x1e\xba\xf7\x00\x91\x17\x947\xf6\
+5\xe3Nw\x18!.\xd8G\x04\xa8\xa3v\x9b\xf9T\
+;\xc5\xe8k\x0d\x12\x80\xc0\x14\xe7+\x995\xd6\x19\xf7\
+#\xfd\x1c\x19?A\x8d\xbb7\xb8TPw'=\xdb\
+3\x91f\xa5\xda\xea\xf1\xb1.\xf6\xfa\xe0\xee\x90\xee\x90\
+\xd2\xben\xf4\x97\x1c\x10\x9e\xd81\xb7\xa5#\xa1\x91j\
+\xea\xcd\xf1\x1ao\xe7\xa2\x1av\xb3;\xc7\x9b\x9a\xd8x\
+\x8d\xdf\xe3b\xd7\xde\xc5~\x7f\xb7\x8b\xbd?\x19\xac\x95\
+\xa3+\xd2\xbb\xd0\xb3Z\xff\x90\xd5\xc5\xf9\xe5\xe6\xfb\xb7\
+R\x00\xe24\x87\xfe\x8e\xcfsI\xc8\x05\x1333W\
+s)\x01\x06\x1cZ2\xcd\x11\xb0\x874Q]\x01R\
+\xb3\xe6\xbf%\xc76\xb5\xdf\x8d\xda\xfc-\x5c\xaaL\xff\
+\x1f\x5c\xec\xfa%\x97\x0a\xe1\xf06\x13\xbb\xdf\xee \x13\
+\x9b\xbf\xf1\xa7]J\x09\x84\x03\xfc\x1d\xe2\x9f\xb8\x07~\
+#D\x80}\xefx\xdd\xf1:\xe3u\x0a\xa9\xa0}\xfa\
+m\x9d\xcd\xd3\xf8\xfe\xf1\xbdco\x1f\xd8\xb9\x14\x88:\
+\xdfO\x02,\xda\xc4\xb1\xff\xc5\xc5@\x80\x08;\xa3\xbb\
+\xce\xc5\x96M\x9a\x08\xbb\x9e\x95I\xee\xa6\xaet\xb1\xe7\
+\xbe\xc8\xa5\xb4%3\xdd\x90\xed8\x1c\x14\x91\xc6%d\
+\xde*\xe2\x98\xb8\xb5\xe2\xb8\xf00\xdd?*\xbduR\
+j\xb0Z \xee8\xce\xca\x88\xe2\xe8F\xc9\xc8\x85I\
+Jf\xd5\xc3\xaa^z\xb0b\xe6,\x18\xdd\xed)\x09\
+{\xfdM\x17\xbb\xff\x83\x5c\xec\xfe/p\xb1\xff\xffs\
+n/\x19\xa4zJ0R\xfa2|\xcd\xc5\xde\xf7\x0a\
+\x17{\xdf\xeb]\xec\xf5J.\x15\x0b\xfd\xef\x5c\x12\x99\
+\xeb\xa1\xee\x7fu\xbbuo\xef\xde\x96X\xdd7rV\
+w\xc8\x12\xc3\xf1\xa6\x14\x10;\x8e\xf5K\xbbb>\x0f\
+\xbb\x9d@4z\x18\xbf\x88q\xf2\xc0\xcb\xfb\xaa\xcf\xa3\
+\x14h\xaa\xe9\xfe\x83\xbd\x8f\xbd\xf7\xc4t;0\xe1\x80\
+\x9e\xccz9\x9d\xbb \x10\xfe\xcf\xa5 m \x9b\x8d\
+\x80\xa82\xe2\xfd\xab\xfa\xcd\xfbWi\xfe7\xd3s\xee\
+\x5ce\xc4\x95\xc1\xef\x7f\xd3\xff\xb6\xffM:g^\x97\
+\xce\x99\x0d2\xc7\x01\xe4\x8c\xdd\xee\xdd;\x1d\xb1\x93\xec\
+\xb6\xa7K\x80\xa5?\xc7%\xb5u|\xc4\xdb:\x0e+\
+9]z\xc5%B\xbb>\x05\x06\xb9\xefaM\x97j\
+\x5c\xbe\x90\xc9-'N\xcb\xf3\x9eJ\x8av\xab\xba\x04\
+a\x071\xee\xe8m\xcd\x1b%.\xe8\x05Jb\xa2\xb4\
+\xe9\x89\x1c@\x0b\x92>\xec;\x12\x1d[\xba\x94R\x9c\
+a\x19\x97\xca\x9f\x12)\xed\xd4).\x95\x1dO C\
+\xdd]\xe2\xdcS\xa9\xc2d\x90\xd5apbp\x91\xf1\
+W\x86\x9f\xda\xb2\xa8)!\x02\xff\x1e\x97r\x03\xc1\xe6\
+\xba\xa2K\xe5\xe8\xb5l\xbcs6\x19\x1a\x0cm\x1cu\
+\x0c\xe2\x17#ik\xc9\x03q(8\xd0[\xd2\xbd\xd2\
+\xf6)\xf7S\x17ti\xe2\xa7b+f\xe3\xb0\xe1\x16\
+\x0dhlVP\x18F\x22\xb7 3\x96\xda\xa2lW\
+\xb1\x02\xbb9\xb0xe\x10\xf0|\x18\xa6\xdc?\x19E\
+2\x8e\x8c\x17\xdd\x05 sh\xb9\x100T0\x00`\
+\x09o\xdb\x88\x01\x19\x144+\xfa/\xd3\xa6F\x11\xea\
+\x98g\x0c\x122^8\x86-y\x1eW\xe6\x11\xb2/\
+\xfa\xa7\xb7%\x04\x18\xb2|.\x9f\xc7\xfd\xae\xd6@\x98\
+[.\x006\x16\x0b\x97\xf1h\xd7C\xd3\xb79\x22\x9e\
+\x9b*\xe3\xd1\x92\x1c\xa9\xcf}@\xc9Z\x87\x86\xef'\
+\xa3\xb6\x8dj\xf3\x05\xbd\x1e\xdd\xe2R \x861\xae\x9b\
+\xa8v\x96\xe7d\x9dr\xff|\x0f\xd0(j\xb3yn\
+\xc6\x8f\xf1!`\x04\x02\x84\xfd$\xc3\x9a\x8c\x05\xac\xe5\
+\xc3\x15\x19\x22\xd6\xff\xd1\xa5b\xd1W\x0d\x13\x90\xd6\xd9\
+ \xf5\xcc\xff\xac\xa6\xf6\x9f}\xc9x3\xef\xa5\xad`\
+v(\x19_j(\x15\xd9\x8c\x03\x87\xfd\xf5\xcf\x86-\
+\x9f\x83\x05C\x1b(3\x19N2g\x1b\xeb\xa0\xc2\xc1\
+l\xdb\xe7\xb1\xefYg\xb0\xfa\x83\xb4a\x5c\x17R\xa0\
+\x89\xfd\xd7r9\x90\xb1\x9fz\x11\xbd\xc4\xfb(\x89\xf1\
+\xcc\xc4\xb2\xd5\xba\x83J\x02\x08/\xddS\xd8\x0f\xb4\x13\
+\x5c\xb8\xa9\x09\x9e\xaf\xe1*\xe1\xe0\x06Q\xa1\xcf\x0f\x12\
+P\xc6\x9f@\xdf\x0eb\xc9]Y\x01\xaf;\x04\xc9\x06\
+:\xc6\xdf\xf3\xb9 \x14\xf8\xbeU\xb5\x0f[\x87d\xe1\
+x\xdfth3\xefc\xffQz\xb4\x9cK\xe5\xd8\xe2\
+0\xb0n\x97\x94\xc34\xd1\x8c'\x07\x1e\x8e?\xf3F\
+\xa0S\xa4Y\x91qn\xba\xb4DF\x17G\xe8W\xaa\
+\x81T\x89V\xb0\x93\x9f\x9edb8\xc1\xa5\xd4\xeaE\
+)\x08\xfb\x16=J[+H\xc7v\xd0\xfa\x81\x8c\xa8\
+\x04J\xb2\xbed\x1f\x10\x00\xe4\xff\xdb\xcc8\xe7\x02\xeb\
+\x022\x9f\x0d\xd4\xa5\x81\xf5F\x00\xe7\x12\x05\xa21l\
+\xc5B\x1d\xed\xef\xd6\xc9\xf3\x90\x02\x15\x8b\xa4s-\x19\
+\xc2\xd1\xf7\x1dv\xfd\xaf\xb8T\xfa\x06\xf6j\xda\x1b6\
+d\x8c\x91\xd9\x10\x99\x1b}\xe8c\xddQ\x22\xa4\xccW\
+ -T3\x1a\x1c\x19J$\x00\x91mI\xe9\xe2\x1c\
+@_\xe2\x00\xb7\xe3I@\x8c}\xder\x0c\xb1\xde\x19\
+7\xf4\x83\xf4\x0c\x81\x83\xe0\x08Q\x005\xda}\xe2\x00\
+cX\xb1\x0e\x99'\xcekJk \xb9c\xff\xb3\x1f\
+(\x85\x223\xc89\xc3>g\xbd\xb7\x01\x0c\xf6Iq\
+\xc4s@l[\x9d? 1\x08\xd0|9I\xb1/\
+(\xc5@_\x83\x00A\x8f|$I\xe1\x8a\xa1\xcb\x02\
+$\x9ar\xc4F{\xbaT\xe3\x04\xb2\x87uI\xcd0\
+\xed,\xe1\x0c\x10\xf9\x22\x1c\x03a_\x12\x00&PL\
+\x80\x90nH\x07\x9b;\xe0\x19\xf4\x1bF\xd7\x8fn\xa8\
+\xda\xe6\xfd\xd3\xc5\xae\xeft\xb1\xe5t\xaf\x1c\xd6\xed]\
+\xec\xff\x17w\xb1\xeb\xeb\x5c\xaa\x0c\xfa\xe7]J \xa4\
+\xfb\x8eK\xb1c\xa9\x91'\xc05\xbc\xd1\xc5\xae\x9fw\
+Q\xa9\xc0\xb7JW\x00\x02\xa7\xd4\xdc{^\xdc3\xe3\
+N\xd5\xe7d}S\x9b\xb9\xd82\x5c\xd1E\x99\xc7\xb7\
+&\x0e\x92wx\xc6\x95\x00J\xea\x22pIu.\x00\
+\xb1\xa7\xe6[\xa56\xc9Q\xd8\xabd\xaa\xbb\xf5M<\
+\xa3\xff\x9cK\xf5\xfc\xfec\xfb\xab{\xb5\xc9\x96)\xa0\
+b\x92\xba\x00\x5c9\xbe\xb2\x04L\xc6\x9b\x8d_5\xb6\
+y\x1d\x7ft\xfc\xb1\xf1\xc7R\xad\xfa\xd5c\xe7\x0ex\
+\xa5\x8b]\xaf\xd6ko\xbf\xf7\xd5\xd2m\x81\xf5\x9f2\
+\xdd\x1f\x91=yz\x15\xe0\x82\xdd_z\xa5\xbf\xc0\xc5\
+\xee\xe3#.6.\x17M]8uaY\x17S\x9f\
+v\xa9\x02\x98\x0a@\x0d\xff\xcf%!Z/w\x84e\
+*={\xba8\x80\xd8\xc7Q\x82q\xa8\x8b\xfd~5\
+\x93\xd5K\xa6yx\xab\x8b\xc8\xd5\x9e\xadJU\xe00\
+ 3\xaaq\xef/31{\xa9\xdb\xd9d\x97\xc2\xa9\
+\x94\xb8\x0c\x9c\x8d\xfe\x13.v\xdf+\xb8\xd8\xeb\xbf\xba\
+T\xed\xfb\xd8\xaf8\xbe\xca\x0cGI\xc4\xaa.v\xed\
+\x5c\xec\xba\xa2\x8b]\xd7tQ\x00|\xb9\x82\xe4\xea\xb6\
+q\xb1\xdf\x7f\xc1\xc5\xae?u\xa98\xd987\x94\xe8\
+\x0b\xb28\xda\xc0\xe1'4d\xe8\xf1\xb3A*\x0e+\
+mY\xb5/\xa3F\x9d\x12!\xf4i\xd3n=>\x9f\
+\x1f\xb3\xdaR\xc9\xae}\x8a\x93`\x06'\x0c\xe7\x82\xc8\
+\xe6\x12\x82e\xee\x120\x0e\x92C\x05\x96\xa6\xde\xe5b\
+\xaf?j\xeb\xcc\xf6c\xf7\x80\x8b\xdd\xfe)&vn\
+\xf7\x7fr\x11\xf7\xd4\xac\xd2&\xaf{\xb9KBv\x5c\
+\xe9\xc8\x0e\xa0\xf8\xe1\x7f\x1dgV\xf6qi\xbe^\xea\
+\xf3\xd5?\xdf?\xd7?\x97\x90\xb3\x09\x01e\xa7Q\xb2\
+\x0b\x86\xe3e\x0f\xc8\xbe\x81\xe3a\xe2\x80\x89\xfdM\xbc\
+]en\xbb\xae\x80r\x94*k\xfcFO\xaa\x94G\
+]\xf3\xba\xaf\xbaT\xfb[\xa5U\xc3\xcb]\xd4^\xf3\
+\x91\x120\x0cd\x03$\xeb\x90\xcb\xbf\xde\xa5\x94\x0c\x10\
+\x10\x8dR\x08\xb8\x1e\x14x\x02\x01\xcfz#p\x10\xed\
+\x14\xef\x97\x1f!\x7fk\x92\x8d\xca\x82\x07z\xcb\x86K\
+%\x02\xb7W\x07\xbf\xa0\x08\x01\x11\x84t\xe6G.j\
+'\xf8\xb9\xca \xc7\xf1/\x06`>\x90q\x84X\xa0\
+d\x0a\xda\xfe\xe2m\xed]\xcb\x9a\x8c!C\xbfa!\
+\x0e \x0b\x01Z\x1c\xed\xb0 \x97\xe1 \xfb\x81jd\
+Z2 \x0evX\xd3\x81Z~Rl\xa5\xb0\x9es\
+`\xaa\xfbA\x04D`\xddT\xe6*\x0c\x0c\x0c\x16\x9e\
+\x93\x83z\xb1\xc8\x14fvj!\x14\xbcwA\xea^\
+\xc08\xb1\x119P\x89P\xd1n\x09E\x00k\xa4 \
+\xd7@\x86\x9c[=\xb1\xabC\xce\xc3x2\x1e\xa5\xa6\
+:\xff\x90\x99g\xde\x80\x1c\xc3j\x8fACD\xad%\
+\xe5\x22\xe3\xc8\xf3\xb6\x19N\xc6C\x7f\x1f\xb5\x92M\xff\
+e\x1c\xaa\x80B2\x0e\x81\xc5\xd3\xb5pJL\xef\xf2\
+\x00\x14\x1fGWP\xc7\xd1{]\xd2:\xcf\x11W \
+\x88@\xf6w\xce\x90\xd9\xd1_\x5c\x0a\xf41\xe6\xf3\xf0\
+\xdc\xff\x16\xf2\x9c0\xa4pP\xc9\xb0b\xb0bp\xab\
+V2H\x1b\x87\x08\x14\xe5\xe7\x12\xfbh\xf4m\xe5\xfd\
+\x18\xc4\x8c\xb3\x9e\xa7{\xa5Ku@=\x9f9;\x82\
+\xbc\x13\xf2\xbd#u\xbf_R&\x8d\x0c=\x99\xac\x99\
+\x0ax\xfdW\xdfC\xe6\x9fu\xc0}\xb4\xeb\xe5\x9fB\
+R\xc8\xe0\x85\xeb\x82\x8c_\x05\x99\xce\xf3\xcak\xd0z\
+d\xfa0\xd0Uk\x15\x7f\x87\xe3O\x86\x0c}B`\
+\x0fC\x92\x80\x01\xefk!\xd8\x94\x5c\xe0\x10\xc3\xe9\xc0\
+\xf3\xad\xd4\xd4|\x13\x00l \xdd ,\xc2@F\xcf\
+\xe1\xa8C\xe6\x03\xcb:\x8e5\xeb\x9dq\xe4\xa0\xc2A\
+d\xbd\xb0O\xe04\x99h\xc8\xbf\xb8\x1f\xde\xcf8.\
+\x22d\x07\x11z2\x16\x04\xea\xe0 ! \xd2\xe8\x9d\
+p|\xda\x1ae\x10> G\xb8\xff\x12P\xc8\xeb\x97\
+\xdan\x9078N-\xa7\x08\xdf\xdb\x06\x16\xb9\x82\x18\
+`]\xca\x81#\x13\x1b\x19}\x02\x088:d2\x09\
+,\x01\x85\xfcV\x86\xe4Q+\x18\x8e\x17\x90A\x05\x5c\
+\xc9\xe8\x85\x01\x15H\x80\xcc\xd6;1S\x90x\xd6\x0f\
+\xeb\x92\xf9m\xfb\xcb\xb7\xfa\xae\xb4{\xcd\xe7\x0c\x9c\x00\
+\x8c+\xa5/\x8c\xd7}\x82\xca\xc3!B\x06]H\xbd\
+p\xac\x81\x86\xde\x9eko\xbd\x89\x9a\xb7Q\xc3a\x8c\
+\x1f\x1cK\xd61\xb5\xca\xb4A\x02\xe1\xa0k\x04\x18\xbd\
+6\xd8\x03/\xfbg\x83(\xd6;\x81H\xda\xce\xa2\xb7\
+\x09\x00\xa1\xf79\xafT\x93:\x9c\xecR\x05X\x09 \
+\xd3\xee\x89\xd2;\x02\x11\xad\xc3N\xe0\x92\x008\xdf\xc3\
+O\xddm\xa6&\x7fe]\x80\xb0\x22\xd0\xc0z\xe5\xbc\
+`?2o\x0d\xf7\x03\x19\xe3\xd1\x96.\x95^\xc6\xc1\
+\xa5\xa4\x00\xbb\x86\xd7\xac+8\x12\xe4\xf8\x04$\x9ay\
+\x87\xd3bF\x86\x94C\xae\x1cv\x89\xce\xf9\xa8\xfdW\
+\xe2%\x10V\xecG\xf4\x9f\x10\x9c\xb1\xff9\x0f8/\
+9\xaf8\xbf\xf8\x1e\xe6\x81\xf5\x00\x12BvQ\x8c/\
+\x01[\x91\x11w\x1b\xb8\xd8\xeb?\xb9T\x089\xda\x13\
+*\x83\xd5_\xd5_\xd9_\x99X\xb5S;i\x0c\xec\
+n_\x97\x921\xeb^\xef\xa2\xef_\xbej\x83\x09\x02\
+\x0d}\xc6\xba$@\xc1z\x04zN@\x5c\xfa;e\
+\xc6\x8e\xad \xb8\xf3'\xccN\x0e\x80\x98}\xd3\x7f\xc3\
+\xc4\xec\xa7\xfe\xbb.U\xed\xae\xec\x90\xc9\xf4c\xc3p\
+\x8dK\xb1#\xa7\xd60YS\x01\xc8KJ\xc6;\xba\
+i\x894.\xf4\x15\x01+\xf4\x868\xa4(U#\x81\
+\xd3\xad\xe3\x22(\xb5\xe9\xeb\xeeH\x93#t\xfe\x9bA\
+?\xfe\xd2\xf8\xcbc{\x8e\xf1\x9c.v\x7f\xfb\xb9T\
+\x8e\xfd\x9b\xc6o\x1c\xdbz\x19\x1f2>x|\xb0\xbd\
+\xef\x98\xee\x8b\x9d\xe9\xc3\xc9\xd7\xbb\xd8\xf5\x13.\xc5\x81\
+\xa7\xa4\xa1\xbf\xc1\xa5*!\xc2Q~\x97\x8b\xfd\xfe\x08\
+\x17\xbb\xfe\xd3\xa58\x1c\x04\xc8\xcd+\xeb\xa6\xba\xca\x7f\
+\xd0:\xeb\xf7r)\x01\x1a\x12j\xc3\xa9\xc3\xd7\x87\xaf\
+\x17\xc4-\xa5\x81\x81p\x84\x8c\x8d\xc4\x82\x17\x8c|\xba\
+\x82\x8a\xc3\xfe\x0e\x97\x84\x12.p\x12\xf4W\xb8\x14\x04\
+\xc6\xd4~.e\xfc#`\xec\x14\xab{\x15\xd24j\
+\xeb\xe9g\x1f\x81\x00\xce\xc3#\xb2}e\xd6j.\x89\
+\xd8\xb9\xdf\xa5\xb7\xf1\xea?\xda\xef\xdb\xef[\x1c\xb7~\
+\x1b\x17\x05P\xe6N%\xc7\x97\xa6\xd2\x8a\xf3G\xe7%\
+rE\xe9\xdbDR\xb7jq\xa4\xfb\xb5\x5c\xaasV\
+\xf75\x1bb\x9a\x04h\x1d\x00\x18*;\x08\x0e\xa4\xdb\
+\xd5]C\x89& \xf3 W\xe2s[\xff\x83\xef\x81\
+\xfc\x95\x92i\xcek\xd8\xe6\xc9h\xbb\xd7\xf4\xc9*\xa1\
+\xe2i\xd7+\x12w\xc2-^J\x0b\xa7B\xff\xfb\xfe\
+\xb6\xfe\xf7\xd2O\xbfJ\xa5\x18\xf3{)\xc6 \xfd2\
+q_\xee\x22\xc1<\x80\xd0\x18->Z\xc2\x03\x0a\xdd\
+\x1a.)\xd0\xd3\xa5@\x0f\x01\xcf\xb9R\x7f\xa3\x89\xe1\
+\xe3.\x15\x87\x90\xfc\x16\x12\x17\xa3o\xab\x14\xea\x8a\xac\
+G#\xa0D\xdbJ!\xdf\xa3\x9d%\xdc\x02\xaft\xb1\
+\xeb\xd8\xa5\xea\xb6\x22\xae\x96\xee1\x17O$\xb8\xd8u\
+k\x97\xaa\x14@\xc8\xfa\xf8>\xb5'\x8c\xd2i\x05\xbc\
+\x08\xb0E\x00\x9dR-\x05\x82 _\xecNu\xb1\xbf\
+\x7f\xdc\xc5\xae\xefs\xb1\xeb\xfd.\x051:IM\x7f\
+\xca\xd3\xfdA\x07\xed\xda\x85\xe4\x0e\xd6T\x1c\x11ws\
+\xdc\xd1\x19\x0ep\xa9\x0c\x1a\xa0\x06@\xc0\xc9(\xb5\xed\
+\x9b0\x00\xf9\x7f\x0cY\x0c\xedv\x81\xb5$e\x18\x88\
+d\x020$Y\xa8\xd4\xb4\x11!\x7f\x9f \xfa@\x87\
+1\xc8\xc9\xf4o\xd0\xb4\x8f*\x8en>\xf0\x80\xca\x01\
+\xc1\x86-\x97\xfe\x97\x9d\x0e@\x0cf\xee\x0f\x85\x8e\xa3\
+\x04\xb4\x91\x0d\xd0\xb6\xbf\xc3\x90'\x13B \x006w\
+E\xde\x82l\x83\x1aJ\xa0P\xf4]\xe6\x8a!\x0a\xa9\
+\x0f\xed\x02\x059!#\x1d\x10N\x0cY\xeeS\xcfA\
+\xdf\xca\xe0\x1a\xe0>\x19o\x0c\x5c\x0c\x1b\x0c\x1d\x02\x00\
+\x0480\x90p\x18Z\x92$\x0c\x0b\x0c\x90\x06\xb2\x1c\
+m\x9dd`Q\xcbE\x0dW\xcco\xe1\xa0\x98\x1ex\
+`\x5cqp0\xfc \x89\xa2\xdd\x15\x86\x03\x8aR\x1b\
+4jh\xbf%\x83Xl\xca\x13o\x14I\x14\x9f\x8f\
+C\x82CE\xc0D\x19\xcc\x80rA\xa2\x09B\x05\xc5\
+\xf9\xdf\xa6mbK\x02\x89\x81\x09\xc4\x9d@\x87\xda\xed\
+\x8d\x9e\x15\xcb9\x06\xef\xce\xfa>\x22\x7f\xd7)\x92\x0c\
+\x82\x84\xb6'\xa5Ow\x1e/J\x12\xc8\xfc\x94Z\xf1\
+<\xae\xdc/\x90'\x1cr\xf4\x81\xfe~\xb4\xb6H#\
+/\x16)\x0d\x81\xb6g\xb4\x7f\xe1V\xe0\xa0\x80c\x83\
+}\xc8\xe7\x13\x98#\xd0\xb7\xaeJx0\x5cY\xbf\x18\
+\xea\x1cX\xada\x05\xb4\x9f\xdf\xcf\xdb\x90L\x82\x1c!\
+\xc3\xc78\xa2\x9f0\xa8qpX\xc7d\x84\x19\x07\xee\
+\xb7-\xe1i2\x89\xb1\x7fp\xb0\xe1\x0c\x81\x0c\xecW\
+\xb9\xedY\xdcw\xc9\x94N\xaf=&\x93\xca\xbe\x84|\
+j\x0b\xad; \xfc\xb0\xe4s? o\xd0_d\xe6\
+\xd8\x8f\xadC\x044\xb8E^\xb0N\x19\x1f\x9e\x13G\
+\x9e\xd7\xb0\xcc\xe3\xf0\xb2\x8e\xd0\x1b|\x1f\xfb\x93\xf7\x13\
+\xa0!0\x07\x19\xa9H\x9e\x220 dK\x94pi\
+\x1c\xcc-N%\x02\xb0\xdb\x0foq\xa9\x02\xde\x1f\xcb\
+m~\xc2\x90\xc1\x80\xc2\xa1\xa0T\xe8\xd1\xa6}-\xeb\
+\x85v\x84\xba\xcfh\xe74\xa7\xf4S\xe9\x12\x92\x03\x07\
+@_\xd13<'\xeb\x01\x03\x8f+\xeb\x90\xf5F&\
+\x06h?\xe4\x86\xec\xef\x96\x14\x92\x92\x89\xf5]*=\
+L&\x1f\x07\x8f\xb6Ep\xc8P\xf3\xaa\x0ce|.\
+W\xf4\x14\xfb\x10\xfd\xa0\x9a\xd4\xd8\xef\xcc+\xaf1\xcc\
+A\xbc\x894,J3p\xec\x80\xf4\x02\xcdf_<\
+\xe0R\x05 x\x1fvC\x13`\x8c\x80M\xc3I\x12\
+\xfb\xba\x81\xb6\xce\x96h\xc0\x0e\xe1|\x84\xd3D%\x0c\
+QK\xce~\xe0\xef[\x04\x03\xeb\x1aD\x05\x01'j\
+\xef\x99\xafF\x1f\xc5:D\x9f\x11H\x11\x046\xb8b\
+>\xe0b\xd79r\xe2#\xd5P\xff\xb7b\xfb\xa66\
+\x95s\xaa\xe9\x9e\x13z\x8f\xfe\xe9*\x85\x08\x12HH\
+\xd7\x18ou\x1b\xa2\x14\x89\xe5\xc0\xfe\x18}\xce\xa5d\
+\xea\xa2;\x84\xec0\x1c\xbc\xfe\xf4\xfe\x8c\xfe\x8cT\x1b\
+\x9f~\x1f,\xf2*\xed\x012\x9b\x02\xe7\x97T\xe4f\
+\xe8\x1d\x91\x9a\x05'\x8eX\xd3\xe9\xfa\x81\x03M\xf7\x96\
+\xe8&\xa1\xc4\xc9\xe8_.e\x7f\xf5w\xb8\xd82\xf8\
+\x8d\x89\xdd\xcf\xack\x5c*\xc3\x9d\xf3M\x81\xaf\x94p\
+\xb3\xf3d\xfc\x88\x8b\xce\x1b;\xb7\xa6\xd2O!-\x8c\
+n>\x9c?p3P\x1aFb\x0dD\x93?\xe5\xf9\
+Um\xbe\x90\x19\x89\xdbi\x0f\xfb\xde\xd3L\x1c\x92\xfc\
+\xa9\xee \xcf\xfcwou\xb1\xfb\xd8\xdcE]\x01\x16\
+Mdw\x1b8\xd9\xdd\xe4\x07\x5c\xec\xf5\xf3.v]\
+\xd9\xc5\xae7\xb9\xd8\xef\x7f\xe9\xa2\x12\x8e7\xca\xe1\xdf\
+Um??\xa8\x80\xd0\xdbJ\xe6\x9e\x9a\xe6\xfei\x97\
+\xf2X\xe6\xf0\x9a\xd8\xf3o\xe4R!\xaedo\x0d\xdf\
+u\xb1\xef\xd9\xd0\xa5j\x87\xf6U\x17{\xff[\x5c\xd2\
+y\xf82?\x0fG\x0f\x8e\x1e\x1ay\x00\xf8R\x93\x9f\
+\x08\xc2\xfe\xdeJ\xcf\xa0\xaf9\xa7p\x8c\xc5\xf9\x01\xa4\
+\x9f\xb6\x8dm\xc2\xb1\xdf\xde\xa5B\x9e\xa4\x1f\x95\xb8|\
+\xd9^?cbz\xa5\xdf\xc4\xa5\xca\xd0\x1e\x90\xbb\x0b\
+\xf4\x1f\xea\xf7N}\xeb\xe10\x92\xbe\x1c\xbe\x97\x03\xb4\
+\xfd;\xfbw\xf4^{\x7f\xb8\x8b2\xbd\x9e \x9c\xc3\
+\xc5\xae{\xb8\xccN\x82NiH$rT\xc2\xd6/\
+\xebR\x91|c\xff\xa0\xaf8\x9f\xf0G\xf8\x7f^3\
+Q\xd8\xdfBf\xe1p\x82\x94\x0b}\x86\xdf\xc3\xb9\x83\
+\xff\xa4v\xe4\x90\x04F\xd7\x02\xb8\x08|\x16~$\xae\
+\x9e\xf3J\xa00\xf4\xd1:\x89&9\xbe\xbf\xdf\xb1\xdf\
+\xa1\xb7u?u\xb2K\xe1\xb2\x9a8kXwX7\
+\xed\xeb\xb5\x9d$1H&O\x18\x8e\x1b\x8eK\xa5>\
+\x89c\xc3\xc3m)\xe0&\xce\x8c\xd1N*\xd1\x11\x87\
+C\x0a\x98\xd9\xba\x9d\xfa\xca\xd4\x89S'Vd{$\
+\x9cH0\x92x\xc3>\x85\xec]\xe71\x01\x81@\x04\
+,\xe7R\x02\x01Q\xb2I\xfbG\xb9A\xc3\xc1.\x15\
+\x22\x8b\x92m\xce'\xceaJ\xc6H,h\xdf\x04\xb2\
+\x80\xf3\x81R[!\xcc\x08\xc0Q*\xdc\xdd\xe9R\xda\
+\x16\x8e\xfe\xe7R\x12\xc3\x93a\xf8\xb9\xd9\xba\x82\x0e\xc4\
+\x99U\xbf^E\x1e\xa8\x95\x00\xaa\x10\x90f\x22\xb1\xfc\
+\xccj \xd9\x1c\x84\xdc0\x86\x00\x0f\x86a\xc3\x86\xe4\
+\x80\x03\x22\x8c\x82o#\xdam-8\x9f\xc3\xf7\x11h\
+ \xa3A;\x07\x19@\xb1@\x95A\x1f}M\xed\x82\
+ppq\xc4\x94I\xaf\xda+\xe5\x88\x92\x1cmj\x96\
+\xcc\x09\xdcQ,\xce\xd9\xc0\xe6\xe0nkE\xa3\xf1\xaa\
+NJ\xfe\x9f\x03\x19G\x82\xf1\x02\x02N\xa6H\x91\xc9\
+ I\x11Dmx\x9d\x8b Q\xabU\x0e\x0a\xe3\xe8\
+\x05\x0a{T\x5c\x06\x8aD\x8e\xfe\xcf\xa5\xaa\xe1c\x1c\
+q\xfc8\xc8iO\x07\xf9\x13\x10\x18\xc6\x1f\xa8w\x0b\
+!-}\xe4\xb3a\xc6\xfcq\x80\xe2\xf0\xbcH?\xf7\
+0\xfc\xf9\x7f)\xfc\x80\xac\xe2X\xb0\x810\xdcp(\
+\xb8\x12\xf1\x84\xd4\xac\xf4{\xcf\xcf+\x88}\xb4\x19#\
+CF\x86\x85\x0c\x0d\xec\xb8b=\xa6}[d\xf0q\
+XQ\x90\x9a\xef \xa7\x84\x84M\x9c\x08\xa9=\xcd\xfe\
+\x15T\x08Cl\xa1L\xc23\xc4:W{\xa560\
+0D\x17\x8bi\xed\xc2\xc80\xd8\xb7\xe6\x03\xef\xdd2\
+<T#\x1b\xe4Z\xbb\xe7\xfe\xc5)\xec\xb7v5\x1e\
+\xb4ck\xc979H\xb8\x8f\xa2\xb8\xf2z\x99\x8c~\
+\xe2\xd9\xc1\xc5\x90g\x9ex?\xfb\xecr)^\x1c\x19\
+\x0er\x9e\x8f\xf9\xc3\x01c~\xa9u\xdfL\x81\x1f\xd6\
+]A*L\xafU\xc7\xc0' \xd4~\x0f\x0e85\
+jm\xe0\x83y\xe0\xfe\xd9\xaf-\x09f\xeb`\xa3'\
+\x19W\x0e\x5c2q8b|\x0f\x08\x06\xc6mi\xe9\
+I\x02\x15m)\x02\x7f\xa7\xcf\x89\x9a\xe3\xb7\xb8T\x19\
+\xdf\xb6\xf6\x9c}\xc8<-'\x8e\x02\x05\xfc\x22 \xca\
+\xef_\x16\xe4\x99\xd3Y\xe8\xdb6\x98\x8c\x0f\xcf\x03\xd4\
+\x19\xd2\xc5\x977d\x818\x92\x18,\xac\xa7\xcdc^\
+s\xa0\x81\xcf\xe3\xf3\x09\xf4\xe2\x98\x10\xc8\x83\x15\x98\xd2\
+'g\x15~\xfd\x0b\x04\x84p\x04\x951\x1d\x0eq\xa9\
+\x10_W\xb9L\xeb\xc2\x90\x1d\xd7\xa27\xb2!\x85\x9e\
+'\xe0\xad\x12\x07\xe7vN\xa5\x1a Vp\xf4\x997\
+\xf6\xd5\x02\xe1\xf0\xe5\xfd\x80#M\x0d:\xddc\x80\x0c\
+\xa3Wi\x13\xd8\xb6\xa5k\x1d\xd7\xb6\xed\x1c\xe7\x09\xe7\
+$W\xf6#\xe3\x08D\xf7\x80$e\xbe)\x85\x83\xd3\
+\xa5A\xbe\xc4~\x00\x99\xf6D\x90\x87\xe5\xcc4\x08\xbc\
+\x96{\x84\xf9\xc7\xd1\x17\x19 \x8e\xc2\xe8\x0a\x97\x8aC\
+\x05\x0e\x02\xda\x15\xe2\xb0R\x02@\x17\x01\xc81\xe1R\
+Q\xdb\xc4\xd4\xdf\xfd\xd3\x05\xd95[I!\xe74\xfa\
+\x81}\x0cD\xb6\xe1<\xa1Ma\xac\x07\xdeO \x9d\
+\xf3\x93\xf9\xa5\xb4D\x08?\x90\x94\x81P\xe0\x1c\xe1{\
+i\xd7J_l%`\xa2\xa6\xf4)\x17\xfb\xda\xbd]\
+*\xf2c\xc8\x81U\x03J\xa0\x95L} N@\xf0\
+\xc9\xa0\x8f\x92\x14\xaf\xc1^\xb3r\x94?\xecR\xc8\xa7\
+\x22#,\xa4#\x065\x88\x9a\xc8\x8c\xbd\xd6\xa5\xea\x06\
+\x81]\x06\xc2LH\x15X\xb0\xfb3M\xbe\xa5q\xbe\
+W\xd0\xefg\xaa\xf9\x01\xe1t\xaa\x8b]\xdf\xebRj\
+\xaf\xbbe]\xaavn\x82\xa8GFY\x0eUt\x0d\
+\xf1Q\x7f\xa0\xfa\xfe\x93\x5cl;=\xe9b\xd7\xdf\xba\
+\x94@\x04\x01\x08\x90\xb1\xb4\xc7$\xf3\x96j\xf4\x0f*\
+\x01\x9a ]\x04\x91#\x04F\x04\x5c\x08\x0c\x09a3\
+\xfa\xa4\x8b]\xff\xe9b\xd7;\x5c\x8a\xfd\x1al\xf3\xf4\
+[\x17\xf4\xbf;\xcc\xa5p\x1d\xa4\xd2\x80W\x17\x8e\x05\
+ \xff\x93\xafvIm\xe8L\xec\xef\xfe\xeab\xafg\
+\x98\x98\x9d<^\xcb\xc4\xe6\xbd\xdb\xc3\xe4=\xf6\xdc\xf7\
+\xb8\xbc\x00w\x82\xf6\xd1\xd4z&\xeb\x17\xc7}\xea\x19\
+\x17\xfb\xfd\xdf]\xec\xf3\xbe\xedR\xde\x9fX\xf7\xbd\x9b\
+\xc0\xa5\xdde\xdde\xf6\xbe\x03\x5c\x8a=\x982\xbaK\
+$G?;Hp\x8ba\x17\xe2Q)1\x97\xda\xdf\
+}\xbe@\xfdC\xcf\xa0O\xc8\x94*0\x94\xba\x04|\
+\xb2p\x13\xa4R\x80\xcb*.\x07!\xe7\xba\x95]*\
+\x12GA\xf4\xbb\x85\x5c\xd2\xf3\x1f\xea\xcf\x1f\x9cI\x0b\
+\xbb\x14\xbd\x15\xebM\xa5k\xc3\xb2&\xbe\x1f63\xd9\
+<A\xcbM*\x0e\x84\xb7\xb9T\xddG\xe0.\x12R\
+\xb4;\xdf\xa5\xe8\x81\xd4fn%\x05\x18\x9f\xd0\xf9\xf9\
+\x8a\x17\xc8\xdc\xb7\xed\xcd\x094p\x0e\xc9\x11%P\xe5\
+\xee\xb6;\xdc\xa3\xad]J\xe9q\xacg\x02\x9b\xee\xe6\
+\xdeQH\xd1\xa3$A\xafS\xe1\xd9u\x1a\xff\x85J\
+\x82g\xb8\xd8\xa5\x90>\x9a\x8d\x92\xf5\x10\x01\xf43\x5c\
+*?K\xa59\x13\xeb\xa8\xfd\x9e\x02\x15\xfd\xae\xfd_\
+\xfa\xbf\x14\xbb>\x1c\xff\xef\xe4\x92\xd8\xe0\x8e\xa0t\xea\
+\x80L\xa2\x0b\xb2%j\xea\xa5\xbf\xf1\x0bG\x8f\xbbT\
+v\x10\xe3)\xff\x8f\xd2;\xda\xe3\xb6\xe4\xc1\x04.\xe3\
+J\x1bl%\x06c\x9c\x14\xe0\xee\x7f\xedRu[\x00\
+\xd9\xa6\x80O\x04\x16\xa4wc}s\xbe\xea{\xa3\xa4\
+\x98n\x01$F\x95\xe0\xa3d\x8a\xd2\x92\xc9p\xf0<\
+\xf2\xb5i\xd5\xee\x83ZIA\x11\xa2\x8f2\x0a\x9cH\
+\x09_\xa4\x83\xd9\xbbpz\x0d\xc3h#\xb5\xaf\xc1`\
+\xc5\xf0ljn\xa3\x7f4\xed\x0a\xa8\x81 b\xdeF\
+\xac0\xe0[G\xa4m\x17\x87\x81I\x9fH2\xe9\xb0\
+\xd6\x0a\xfa\x1dl\x8a\x18\x22\x18^\x184l\x10j\x1a\
+\x89\x84\x911\x85\x95\xdd#B\xdfy\x81\x0c)\x06n\
+Kr\xd7\xb2~\xb7]\x130\xecpl0\xd4\xa8\x95\
+>\xc6\xa5\xca(\xfb\xf1\xb1r\xa9\xf9\x08C\x15\x92:\
+'\xb39\xadrtwr\xb1\xeb\x81.U-\x0d\x90\
+a2R\x8c?\xe3L\x06\x0e\x84\x05\x11\xa8\x1b\x94\xa9\
+\xe4\xfb Y\xc4\xd1\x1a\x9a\x9ac\x22\x8b\x18\xc8\x18\xf8\
+<\xf7\xe6\x22\xbb\xdbA,\xd8\xcf\x092yr\x8e\x10\
+\x87!\xc5xq\xbf8\x10\x18\xa6l\x00\x0cg\x0c\x1e\
+\xd6\xa1\x22\xf2\xc1vM[=\x90\x00\x22\x8d\x09\x05\xb3\
+\x99\xa0\xff\xaf\x94\x03:\x11\x08\x8fl\xb0a\xd0\x80\xd0\
+ \xd3\xc48R\x13\xbb\x82Kql\xa3\x7f\xbd\x02j\
+D2'~\x19\x10\xef\xdc\x1f\x9by`\xfd`\x10=\
+\xd1|/\x07\x87\x14\xde\xf0\xc3\xe1\xc2\xe1\xc2\x0a\xc9\x22\
+Cv8Q\x0al#E\x1e\xb7\x14\xe4\x94\xf5\x0d\x17\
+\xc0\xcc\x06\xb2\xac\x0c\xd3\xf0\x9c8$\x80\xe2\x13\x90\x82\
+\xb4MH\x83\x08\xd8`\xf8\xd1^\xe6u\x19\xf2\x17%\
+Fr\xb4\xc2`SM\x1d\x9c\x0b\x91\x81&\xe2\xad\xee\
+\x11\xb1\x0e\xb8\x12\xd8d\xffPJ\xf2\xa8K\xb5\xae\x0a\
+i\xe4\x0b\x22\x01\xc20C\x7f5d\xa2\xe1\xc01\xef\
+CC\xae\x87c\x05\x92\x05\xc7\x1fG\x8c}\x00\x12\x03\
+\x16~\x02\xb0:\xa8B\xef\xe1\xe0\xe9\xf7\x90\x02F\x09\
+\x04\xdf\xaf6\x8b\x11Pd\x7f\xa0gxn\xf6\xcb\x8a\
+\xdaO\xe8+\x0c-8\x05\x96lJY@\x00\xe0\xa0\
+\xc2a\x82\x81H@\x84\xbf\xc3\x01+\x5c\x0c\xf9{\xdb\
+\x1a\xeb\xc5\xa3\xbda&\x19\xd3\xf9\x10\x19\xdfeR\x1f\
+\x82\xa2\xa7)\x8d\xb8G\x86\x1e\xfaf\xed&\xa0E \
+\x84\xfd\x82\xe3\x06\x17\x06\x81A\x22\xfe\xbf\xc8%\x06\xe6\
+^\xe5L\xa7\xa0\xe7\xf1\xc3\xf9\xc3\xfd\x82\xf8iK\xdf\
+\xe6\x0d\x8e\x07JO\xa6\x9f\x03M\x09[b\x90Y\xbc\
+\xe2R\xa06\x1c\x87\x9fu\xff\xc6$%\x00\x02\xfb\xbb\
+\xce\x83\xe1\x1d\xb9fq\xf4Y\x97i%.y>\x9b\
+\xee/\xb1?\x951\x8b\x80k\xc3~O\x065\xceA\
+\xd6\x17\xfb\x84\xf1`\xdd\x97\xf5\x95k\xce\xd5\xfe,\xd8\
+\xa5\xa5\xb7\xc2Q\x07\xf1\xc08b\x80\xe1\x10\xb3\x0f\x98\
+_\x10\x0c\x1a\xbf@\x86}\xc9\xa5\x22\xcd\xa4\x04\x86\x0c\
+0\xed\x92\xeet\xa9\xd6gId\xe4u\x02\xf2\x0e\x04\
+\x1c\x5c\x17 d\xb0\x83p\xb8y~\xe6\x1fC\x9es\
+\xaf\xb4\xb7\xcb\x01\x04^\x8b\xdb!\x0cMj\xafAF\
+\x81\xf0!a\x81\xbe\xa4\xff\xb6J\x10c\x1d\x82(\x80\
+\xbcY\xed\xbe\xa2+\x10\xc8O\x025\xdc?]\x10\xb0\
+\x1f\xb6\xc9\xedC\xc3\xde\x80\x04\x91\xf5\xc6\xfb\x09\xbc\xa8\
+\x04t\xf8\x9eKA,F\x86Jm\xe2b=(\xf3\
+n\xee{\xe2\x96\x1a\xfe\xe6\xa2\xfe\xef\x8b\xe9\xd4\xbb\xb9\
+\x22\x05\xd3\xb9\xd9\xff\xcf\xa58*\x04\x1c\xbaI\x13\xdb\
+\xef\x93\xaf5\xd9\xa6*\xf58!I\x94\xaaF\x97\x08\
+\xffT\xb3\x7f\xfa\x9f\xbb\xc8\x007\xfbg\xea\x07.\xb6\
+\x0cVq\xb1\xd7wO\xdd5uwU\xbb\xad\x0c\xdf\
+\xe8g.\x09\xb2\xfd\x87\xd1\x1f\xca\xbe\x1b\xff\xc3\xc5\xee\
+\xe7*\x97\xd4F\xd0\xa4B\xa2A\xceL)\x87\x02D\
+\xd1E@\xd0\xf9\xd1\xd5.\x85\xc4\xd1\x9b\xc7\xa5\xf6q\
+\x8e\xac\xf8|E\xf28G\xee\xae\x14m\x0f\xc5\xfd\xd1\
+\xfd\xa8\xbb\xa8\xbb\xa8t\x15\x18?\xe4b\xe3\xb3\xb7\x8b\
+\xbd\xde\xc9\xc5~\xbf\xb6\x89\x9d\x17\x93+\xb9\x14\xe4@\
+7\xafK\x95\xe1\x04\xfa\xbf\xb2\xc9JE\xbf&D\xe4\
+\xaf\xfc\x10\xb7~\x00\x00 \x00IDATl\x9c\x96\
+0YR\x19m[g\xddw]l\xdcvr)\xed\
+\xfa\xa2\xa4\xf2\xf9L\x8e\x18\xa5H\xcahG7\xab\x0f\
+\xa9t\xd3\xb5\xcd\xba\xb2\xcf~T\xe9\xb1\xdf\x9a\xfc\xae\
+\x22\xa9$ \xb0\x86Ke\xcf\xc2\x96\x8e\xe3\x7f\xae\x8b\
+}\xcf\xde.v\x7f\xdft\xa9\xfc\x199\xd8\xa3G]\
+\x0agV\xb7\x9aK\xe1\x9a\x88\xfe\xed\xf7\x0cw\xa7\x00\
+\x18d\xcc\x0b\xba\x14\x0e\xb5\xe4\xf0],\xfd\xb6i\xa5\
+\xd7\x95\xa9\x8dRL\xf9-Q\x0a\xb1P\x86\xbc\xc7\xb8\
+\xe9<\x84\x1b\x03\x08>\xe4\x82\xe1 \xa2/\x17j\xc8\
+g\xb1K\xc8@\xc3\x0d#\xbd\x99\xd2C\xdf\xaf\x02\xb6\
+\x9c\x07\xe28 \xb1\x00R#\xf4\xd8oS\xb1b\xf1\
+\xdb\x0a\x82+\xfbWp\x02\xfc\xc8E\x09\x9f\xdf'\x7f\
+$\xdf\x07\xe4\xb6\x0ax\xc1I@\x06}\xe2\xba\xac'\
+\xa36\x1f\xfbL\x08\xa4\xfek.\x95=\xbd\x88\xec\xa1\
+/g\xd2\xca\x08\xc0*\x90\x94\xba\xdc\x1dX\xda\xb7\x0f\
+\x1fr\xa9\xdaI\xa2?\xb1_\xa4?\xc2\xdf;\xde\xa5\
+\xf2;\xf17\xb1\xc39\xdf\xf17<<\xe3\x5c\x14\xfb\
+\xb8TH\x02\xba\xd8\xe8\x1c\x8b6\x8f\xac\x0f\xba\xdb\xb1\
+\xce\xe8\x02\x80_\xa1\x00B\x94\xc8\x80h@\x8f\xe3\xcf\
+c\xcf\xab\x04k\xf4\xa0\x8b\x93\x00\xfe[\x0a\x18r%\
+\xb1|R\x9b\x16\x06\x1ed1\x8a\xa8\xd0\xff4\x0e\x04\
+\x0c\x01jr0\xc4\xda\xbe\xb8D\xa4!{\x22\xc3\x02\
+;1\x11Q\x1c\xef\x864\x89\xbe\xd4\xb1\xb0q\xac8\
+`_\xda\xd4\xe6\xe3\xa8\xe2(\xb7d68\x10\x18\xfe\
+d\xf0\xda6c|\x0f\xf7\x05\xd9\x0e\xfd\xd29\x10\x9b\
+Z\xc1T\x121_\xd5\x7f\x94\xf7s\x104\xfd6\xe3\
+s\xdb\xf6\x84m \x05\xe8?\xedA\x9cT\xc2\x15\xd5\
+\xd7]*CVmJ\xec\xb7\x89\x8d7\x10\x01\x18V\
+Z\xa0\xb1p0\xd0q$1\xcc\x19W\x0e|21\
+\xd4|\x03Yi\xdb[\xa1\x10p<0\x8c00\xc9\
+,cp\x91y\x80c\xe0\xebb[UI\xcal\x01\
+\x04\x0cM\x0c\x1f \xbd_\x16{\xfc\x8f]\x0a\xebe\
+d\xf8\xa4\x00\xa2o1\x8e*}\xe0\x15\x18\x09\xc7\xe0\
+&9\xe0\xab\xca\xd0-\xb5\xb9\xd3H\xc2&f\xe6\xda\
+\xfbx\x1e\xfe\xbf\x85\x9a\xe2P\xb3\xfe\x8f\x17\x07\x02\xec\
+\xfe2\xbcb<q\x1c\xc6M@\xac\xed#\x0f\xe4\x1c\
+6r\x0cV\x14\x1e\xef\xbbG\x08\x05\xd8M\x89\xe82\
+\xbe\xcc?\x8a\x83\xc0\x8e\x1c\xff@T,\xab\x8c1\xeb\
+\x92\xd2\x15\xb1\xbfG\x84\x14EJF\x91\x0c*\x07\x00\
+}\xedic\xa8q\x08\xd222#\xe7\xb9T\x90\xe4\
+\x1d\xe5\x98\x81<\xc0 !\x93\x8fC\x1b\xf3\xa3yX\
+[\x0er\xe1\x12\xc9\x0ek\xbb\xefZ\xc8\xfe\xbcMw\
+\x012\xe3@\xec\x9f\xd2z\xffO\x9e\x87\xd1\xcb\xe5\xf0\
+\xb3N[r12\xe2\x1c\xcc8\xac8\xec@\x8e\x99\
+_\xf4\x10\xa4top\xa9\x22\xc6\xcc/\x08\x08 \xe7\
+\x04\xda\x16\x94\xbe\xa0\x1d\x1f\x9f\xc7\xbe\xc4\x91c\xdc\xc8\
+l3\x0e\x1c\xbc\x94b\xb0\xef\xd1\x9b\xdcwCv6\
+\x9bc\xc4\xb83\x9e8\xfcd\xe4\xb8\x0f \xb1\xb4e\
+\x04qC@\xf0\xd1\xe1\x91\xe1\x91\xb4\xbfr\xc6!\x90\
+\x0e#\x93d\x88\xe4\xe7c?\xc1\x15\xa0\x0cs\xb4C\
+T_h\x0c\x8a\x84\x83\xab!\x94\xfc\xa0\xbf\x09\xf8\xb0\
+o\x08D\xe0\xc83\x0e\xbc\xe699\xb7Xo/\xd1\
+:b\xbd\x956\x8fy]\xa1\x1fp\xb8\x97\x9d\xde\xce\
+1\x02\x02b\xe1\x1f\xbdf4c4\xa3\xaa\xe1\xc4\x90\
+c]\xa1O\x08\x8cR\x22\x06\xd4\x9e\xefe\xbf\xa0\xbf\
+!\x95}$\x8fw \x00\xda\xd2\x05\xda\xd9AVI\
+\xe0\x95\xc0\x9f\xf4\xcd\xe8\xe3.2\x1c\x7f[\xd5\x9cS\
+:F\xe9\x14\xa4\xa0\xcc\x0b\x10T\x02a\x22\xc7\x22\xa3\
+\x14\xc8)9\x9cA\x92\x08\xc2J\x7f\x0f\x97\x0bH\xa8\
+(\xc9\x92C\x0f\xf7A\xcc\x0b\xdfK\xe6Y\x19\xbe0\
+\x5c\xc9\xbcP\xc2\xc6<s\xdeB\xdex\x9fK\x15\xf8\
+\x90\xbd\x13\x06%\x5c\x17_q\xa9\xceQ\xd6\xd99f\
+\x86\x9fS\xb5Cs\xd6\xf2\xbb\xcb>\x8cZs\x9d\x9f\
+\x81,@/\xc29\xa3\xf3\x97ZX\xb8w\xc8\x84\x11\
+ \x09D\x02\xfa\xf7\x02\x97j^\x05\xb5\x8es\xf4\x90\
+\xdc\xbe/2\x86\x22\xb1\x8an\x0f\xe8?!\xe9fC\
+\x0c\x90)\x03\x22\x8c\xde\xd2\xb9\xde\x7f\xc7E\xe7\xa7g\
+\xbc\x1e\xcbl\xfa\xd1\xc7[\xed\x0c\xfb\xfd]J\x17\x80\
+\xe1 \x97b\xafF-\xf7<&\xde\xaen~\x93\x05\
+\x8a\xe31\xebf\x17\xbb\xde\xe3\x92\xc8\xdbVr\xf26\
+\x02\xd2A~(\xfd\x11\x81J\x87\xca\xefU\x02ZQ\
+\xba(C<j\x82\x05}\x0f\x04&\x01=\x029 \
+>\xfct\xfc{\x09\xdc\x8c\xba\x5c\xdb\x0cky\xf7\x1e\
+\xcf\xd1\x97\x12\x04;5\x8f\xf4sst\xd7\xe8N'\
+)\x04\xc9\xe4T\x84NF\x18\xf7\xe5\x88V\xef\x9ap\
+\xa6\x89\x8d\xd7dob\xe34~\xca\xe4\xc9\x8a}}\
+\x0e\x97\xc4\x19`R8U\xfa\x97\xbaT\x0e#\x81\x9f\
+\x1b]\xec~n0\xb9\xbep9t\x97u\x97w\x97\
+\x97\x9amj\xfeS\xf3\x81qi\xdf\x09GBB\x80\
+9\x12i\x7fel\xbd\x14\xf9\xfbb\xfd?\xa9\xb2\xa3\
+\xd0\xdb\xe8\x03\xd8\xed)\x15\xfd\xb0\x8b]7u\xa9\x10\
+\xac\x0a\x0c@\xc2F\xdb\xbe\xa8i'p$Gv|\
+\x82K)\xa9\xe9~\xe6b\xef?\xcc\xc5\xde\x7f\xa3K\
+\xc5-\x01\xa4\x1e\x84\xa7j\xf0#0\x86c+\x84J\
+\x946=\xe6R\x12SQ\xaa\x06\x87\x15\xfa\x92\xf3^\
+z\xa9{\xadK\xc5.\xef]\x0f^\xa6sg\xbe\xaa\
+\xfd'z\x14\xc7\x90\xfd\x05\x94\xdfqE\x07*p1\
+\x7f\xc5Q\xd1t\x0d\xe3<\xa6\xb4\x22Y\x93w5%\
+\xc2\xcfU\xfaeKq\xb68e\xe9\xb1\x1a\xd7{\x0a\
+\x09yp\xc0\xfcx\xe2\xe2D\x96\xf9\xdf\xd1\xe3>\xce\
+\x90\xfd\xd9\xd9\x97\xfd6\x02\xb2B\xf8\x85\xffD7\x06\
+\xf4\x08\xe3\xce\xba \x80.\xbf\x08\xbd1\xfc\xd0\xc5\xae\
+ov)\xddF\xe0r\x08=\x07B\x1a2F\xec \
+\xc6\x87\x8c<\xf3\xc2\xf9\x8c\xde\xfe\xf5\xc4\x8d)\xc0\xfb\
+\x88i\xcbG\xab\xf6\xc5\xd8\xc3\x04v\x17s\xb1\xdfo\
+\xe3R\x05Z\xd4\xc6=\x12H\xb2\xa7\x86\xb9\x5c\xaay\
+\x90}C\x17\x84\xf8\x7fJ\x1c\xf8>!\xcb&\xbb\x13\
+s?\xd5\xe17\xc3-\xc3-\xb6\x80\x0e\xec\xff\xaf\xff\
+\xbf*\xc2\x8c\xa3\xf6\x91\xa8\xd9\xc8\x03\xa2\xda\xf7`\xf5\
+%#K{\x0c\x1cL\x0c\x18\x02\x09@L1\x08\x18\
+H\x16\x18\x86\x04\xaf\xc9\xc4\x93A\xa3\x86\x91\x85\xd0\x90\
+\xe4E\xdb)\xbe\x1fh\x9b\x22m\xe18b\x10ax\
+\xf3\x03\xb4\x94L\x07\xf7\x03i\x0f\x19\x85\xd2\x9e#\x93\
+\x18\xa9Oq\xd4\x8a\x108p\xf3\xaf&\x11\xe2\xff1\
+(\xc8 p%\x92\xce\xb8\xf0\xfd\x18\xd4\xfc4}\xdd\
+\xa9!\x1b\x9e\xca\xac\xa7\x13\x7f\xca\x07p\xb0\xf9\x12!\
+\x95A\xd3-\xda-\xd6y\xad\xdb1\xfd\xd1\xfd\xd1\xd5\
+\x02'\xb0\x80\xc1\xca}\x14\xc37/h\xc6o\xc1\x86\
+\x15\x1bC\x15\x07\x87\x0d\x8ac\x02\xf2\xe3\xc8\xd1Q\xa3\
+\xa3\xaa\xcc\xcdE9C\x0d\xa4p\xe2t\xb5m\x02\xba\
+(\xb2\x99p\xa4qHJiA\x86\xce\x83<!\x82\
+'R\xa9(e\xd1\xc6\x0e\x03I\x99\xa2\x89\xf7\xc8\xa1\
+\xc41\xa1\xbd\xe3\xa1\x19ZJ_\xdc\x08@q\x00=\
+\xabq\xb9[\x86\xde\xe3:@\xf8=\x064?\x04B\
+\x18W\x1c\xf63\x93\x14r,\xdd\x8f\x1d\xd7\xd3j\x8b\
+c\xdc\xdbL\x15\x01\x85B\x0e\x98\x1d\x97\xf9\xa3=[\
+~?\x810\xd6\xd3\x1f\x15\xb0\xc3\xb1B\xc1\x11\x00\xe0\
+\xfe\xf8~\xde\x87c\x83\xc3\xc0\x15G\x95\xe7\xc4\xf1\xd2\
+\xe7D\xa6\x91\x880%\x17\xecC2f\x1a\x8f(\x15\
+\x11\xe9bD\x88U\x1b\x1f\xa4wd\xf0p4\x09\xec\
+\xd1\xb7\x1e\xd252\xe4\xadc\x8f\xa1\xcf\x01\x86\xe3\xcc\
+\xefQ\xe8M@.\x10LtOy\x5c5\xe9Z/\
+\xb3e\x86q\x98pp\xdb.)\xec;\xd6\xcf\x13\x0d\
+\xb2\xa0!\xc7\x8c\xf1\xc6\xd1\xe0\xef\x09,\xac\xa8\x80\x0a\
+\x0e\x1b\x0e`\x1b0\xe0\xb9\xb9?\xee\x9b}\x8c\x83\xce\
+\x01\xc4\xfc\xe3H\xa2_\xd7\x8cq\xa2\xcbA\x0e\xa8,\
+&\xfdG\x86\x9b\xfd\x84\x01\x00'\x00\x07.\x19^\xbe\
+\x87}\xce\xf3\x82D\x92\xe1\xe0\xdc\xd4\x89\x9d\x1aD\xdb\
+\x5c\x81\xa4\xc8\xe7\x07\x19V\x90\x03\x07M|*\x19@\
+2 G[\x89\xccmoE\xc8a\xe3\x87\x04M\x99\
+\xe7\x80\x08\x92I\xbdI\x9f{[d\x80\xf3\xbe\xe6\xfc\
+\xe1\xfcd\xfe\x9b}\x14\xeb\x87uE\xa0\x9c\xf7\xf3\x1a\
+\xc7\x98\x9aa\x05*c\x7fAJ\x8b~\xa0F\xfd<\
+\x97\xca!\xe7\xf3\x08,\x11@DO\x11\xc0\xe7\xbch\
+\xcfK\xa0\xeb '\xe06a\x1d\x81\xec\xb9%\xdb\x13\
+\xe1\xe8ch2\x1e\xec\xd3\x16\x09\x82^\xe45\xfb\x8e\
+\xc0\x1c\x060$S@)9\x8fe\x88%\x87\xe1\x07\
+\x85\xf4-\x02\xc3\x7fP\xa6\x162(\x1cy\xc8\xa0\xa8\
+\xd5&\x83\x82>\xc51 P\x8f~a\x9d\x91\xf1\x22\
+ C\xc9\x92\x0c/\xa0\xeaQ\x9b,\xbd\x16\x88$\xd5\
+h\x02\x15\x1f>\xe5R\xd9I\x04D\xa8\xa1\x87\x05\x5c\
+dT\xd1\x8d\x84@\xdc\xeeIJ)\x842\xc8\x04H\
+\x80\x96\x86\x1dBF\x1br\xba\xa3\x92\x04\xc9Yd\xd0\
+\xe0\xc4\xe1}\xd8!\xacC\xc8\x05)\xb5\xa1\x9f\xb5\x0c\
+^\x02\x15\xe1\xf8\xab&6\xba\x11\xfdM\xe7\x0e\x89&\
+e\xc4\xbb\x7f\xb9\xa4vz\x89\xec\xb0\xbb\xc2\xc5^\x7f\
+\xc3\xa5\xb4\x1d\x84,\xb0{\xda\xc5\xaeoq\xb1\xebG\
+s\xfbA\x02+S_p\xb1\xeb\x86.\xa5?{\x7f\
+\xb7\x8b\x1d\x17\xbb\x98\xecl\xaf\x7f\xe0R8\x01@\x8c\
+F\xa2\x85\xf3\x97sR\xa5(\xfd\xe6.f`_\xef\
+R\xd9\xbf\x90\xd71?B6L\xfc0\xc9l\xe7d\
+*\x9dZ\xa2\x04V\x022N&\x12\x92g\x91\xa8\x11\
+\xf0\x8a@\xf9U\x19B=:9\xb7\xddD\xdf\x8c\xfe\
+lr\x97\x90\xb0{\x94\xd2\x11\x1c\xf3Y\x17\xb8T\xec\
+\xe3b7\x1f_\xefRJ \xba\x15\x5c\x0a\x07\x04\xf3\
+\x0a\xfb}\xf7a\x17\xbbn\xe6R\x10\x11\x90\xd9\xc11\
+\x12$l\xfa\x9e\x18\x0f\xce\x15\xf4?H.2\xddn\
+}=[\x1c\x9aac\x17\xfb\xfc\xb3s\xfbA2\xc6\
+ty0\xe7\xd6%\x1c\xed\xfeK.\xd5z$\x13.\
+\x92l\x10#\x04f\xba\xf7\xb8\x94\x92,\x90\x0b\xb4M\
+\x1c^6\xbc49\xdep\x19\xe9\xbcN\x88\xce\x9f\x08\
+\xea\xbe\xa5\xf4\xf2\xf9\x05Q\x11\xdcdd\xeei?N\
+\xb7\x05\x9012\x03\xa2\x14\x0b\xa4\xad\xecwJ+\x86\
+\xce\xc5\x9eo\x17\x93]\xedz\xb5K\xe1\xc6\x89@\x1e\
+\x88WJ\xa8\xcc\x8a\xf1\xb6\x8eI\x0b\x9dUe\xecA\
+\xac\x90\xe0\x81\x04\x1b\xfd\xc4\xb9\x06R\x0e\x04 \xb5\xf0\
+\xc7\xaaV\x9f\xc0\xe6\xb5\x13?K\xfa\x87\xf3eK\x05\
+\xfa\xe1\xf2VIK\xffc\x97*\x90py.\x05\xa3\
+\xa6\x9fqr\xef!!\x5c\xe9B%\x84Y\xb4\xf7d\
+\x7f\xe2O\x12\x08\xdc\xc0\xa5:\xdf \x81\x14\x97A\xec\
+\xf3Ed\xbf\x80\x84$\xd0\x09\xf7\x88\x10#Ui_\
+\xb6\xa7(y8C\xfb\xf4:\x91\x17\xab\xa4\x8a\x04\xd9\
+\xb0\x88\x8b]\x97t\xa9\xce{\xec=\x02\x00\xefT\xc9\
+ncoG\x89 \x88lq\x14\xb4m\xcd\xe1Lb\
+_M\xda\xf6\xbbvtm\x95I\xc1\x00TM7\xfd\
+K\x03jH\xdff&\x9c\x88\xfa\xf6\x19R\x1bd_\
+d\xb2\x89\x90\x93\xd9\xc1\x00h\xdby1psD\x1f\
+\xeel\xe8\xb5\x869\x86\x00P\x0f\xd8\x801\xecDR\
+\x135\x9b\x18\x12\xbc\x8f\x1d\x84\xe1\x03T\x83\x81\xe6\xf5\
+\x5c\xd3\xa1\xb8\xb3\xf5\x01o9\x09\x94a\x0eV`\xa0\
+\x8aD\xbc1hy~\xbe\x87\xf6D\xd4\x02\xc2\x96\x8b\
+c\xd0@\xc7g\xeb\x17^8\x06\xf2k \xc4\x18V\
+(L\xda\xc8\x956\x8cy\x9c\x97\xd7\xf8S\x93\xa66\
+)\x18&\xe1\xf03^\x0d\x1bz8R\xdc\x17\x06\x1b\
+\x99\x8b\x16RH\xed\xfc\xfe9\x12\xc5\xf3\x8e\x0eT$\
+\x9c\xcc,\x11X\x19\x22\xb0\x09\xc7\x81\xcb\x86\x04\xd2\xfe\
+\x17!\x128\xa0\x09`\xe9 \x19\x9d\xebR\x22\xe7m\
+\x1bC\xfa\xf3F\xa0I\xeb5\xfas\xaa\x96-\x10\x10\
+(\x14\xc6\x07\x83\x9a+\xf3\x8fF\xc3\x91i3Ct\
+\x8bP\x1f\xdd\xb8o\xad\x1bS\x18\x99\xd4\x8c\x0cs\xdb\
+7\x9e\x0c\xff\x5c\x19\x02\x18\x0e?\x0a\x02\x05\xdb:\xa0\
+\x8b\x86B\x03z\x9e\xd7?\x06$\xa51\x04p\xd87\
+8\xa8\xec\x7f\xfa\xc7S\x93\x8f\x03\xaau\x12\xdd,h\
+k\xa9\xf6\x8b\x81\x04z\xa9KE\xa6%\xd2\xcd\x18o\
+\xf4\x03\xfb\x8d\xcf\x07\x22\x0b\xd9\x9a\xc8I\x03\x11@\x1b\
+?\x1c\x0d\x1c\x1c\xde\xdf\xe8!\xa0\xc9\xf1\xfc/\x9d\xde\
+V\xd0\xcc\xeb\x8cXzYC\x8a\x07\xf7\xc13y}\
+G\xc0\x86\xfd\xde\x06Hp\xacy\xae\xb5\x148C\xaf\
+.02q\xc5\x9d\xd9bM\x07\xe6u\x02\xc2\x81\x03\
+\x8cuE\xe0\x87yb\x9fKoFf\x12\x03\x83\x0c\
+%\xf3H \x01\xfd\xc6:!\x80\x00g\x015\xfc\x04\
+.\xd0\xdf \xaa\xd03\x9b\xa8m\xd9by^g\xab\
+1G\x9f\x13\x98{k\xae\x9d\x0dC\x82\xf5\x88\xfeC\
+\x9f\xf0\xdc\xdcoC\xaeH\x86\xc3\x9bUy\xbb\xaap\
+\x14\xd1C|?5\xce M\xc8\xb8\xbdC\x08.\x1c\
+o\xee\x1bG\x0eR ^S\xe3\xa8\x80\x07\x10N7\
+\xa7G{T\xf36\xc7\xf4\xae\x06\x81|c\xff\xe1\x18\
+\xb7\x99\x7f\x02b\x04lh?\xb7\x99j\xde\x09\xbc\xa0\
+\x7f\xe7\x97>F\xaf\x10\xc0\xc3Q\xc3\x10\xa8k7\xff\
+X\xd5n\xca`\xe0\x9c\x07\xf2N\x06n\xb66\x95\x1a\
+'j\x1c#\xb0\x0f)\x15\xeb\x93\xf5\xc1\xfac\x9d\xb5\
+\x5c&\xe8E\xd6-\x9f\x07\xb2N$\x87\x01e\xa74\
+\x86\xae\x01\xd4\xa4\xc3\xf2N\xcd8\x0e*\xe4p\xd4\xa4\
+\xb3\xbf(\x09|\xd8\xa5BL\xc0i\xc3\xfd\x82x\xe3\
+\xf9\xdb\xd28\x9e\x83\xf1n\xdbi\xb1\x9e\xb0\x1f\x18\x17\
+\xf6\x19\x08\x01\x10\x09\xdaO\x11`\x81Tl?\x97\x94\
+\xa81)}\xb6\xfb[]\xec\xf8\xda\xde\xa5\xdaG \
++\x04\xfd\x0c\x03\xfeY\x97\x8a\x95\x1e\xc8\xb5\xb8\x92\x22\
+\x00D\xa9\x18\x9c\x09 2\x84\x14\x0d\x0e\x1f\x02\x0a\x9c\
+O\xac[>\x8f\x00\xa7^\x939M\xb5\xd0\x9b%\xb2\
+\xaf\x94\xa9\xa6\xe6\x1aGs\xbc\x83\x8b]g\xb9\xd8\xef\
+\x8f\xc8\xac\xf7\xde\xc3\xc6\x03\xf7p~t\xcf\xba\xd8\xdf\
+]\xecb\xd7K\x5c\xcax\x90 \xc11\xef\xf7q\xb1\
+c\xe2\x10\x17\xbb\xee\xecb\xd3\xf5\x0b\x17\xfb\xfd\x94\x8b\
+\xdd\xdfF\xb9/{\xd2\xfaK\xe89\xaf\xa9\xdac\xb2\
+.\xb0\xe7d\xbf&\xf2\xb7\xef\x95\xeeK\xdd\x96.%\
+3=\xba\xdf\xa5\x94nE\xbft\xec\x1e\xec[/\xb9\
+\xfdq\x09\xf8\xa5\xf6\x84\xdfV\xe0\xe3t%*\xde_\
+!5\xd0w\xd8\xe5\xd8;B<\x85]\xb2|\xb2\xfc\
+J@\x8b.\x1dz\xae\xf1f.v\xdf\x9fs\xb1\xd7\
+K\xbaT\xfb\x82\xf5\x0d\x02T\xe7\xbc\xa7_\x12\x19\xa5\
+\x07\x1a2\xa2v\x93t?\xb7\xd8\xa7\xdfR\x10@\xc3\
+\x12.6\xce\xeb\xf4\xeb\xf6\xeb\xdau9\x97\xc4\x02\xff\
+{g\x81\x1f\xfe\xe7\x92\xec\xbbLF\x87\x03\x0aWP\
+KzK\x97\x94#M\x8e\x10\xd2\xe6~9\xc0\xce\xc2\
+?\xb8\xd8\xff\xbf=\x97hL]\xefb\xff\xbft\xbf\
+T\xbft\x95q\x87\xd5\x9fq\x02\xb1\x84]\xaf\xd7\xfd\
+\xc1.%\xc1\xd9\x9d\xe8R\x05,@`\xc1\xf2~\xbf\
+\xd93\xf7\x97\xae\x07 Ab_\x93\xf9\xa7\x0d\x9dw\
+_\xbb\xa3\xea\x9a!\xb29\xdaM\xe3\xb8\x03!\x8fn\
+l\xf2\xc3h\x8b\xe9i6O\xb4M-\xeeb\xdf\x7f\
+\x91K\x09$\x05\x02\x8eu\x03\x898\xe7,\xe3\xec\x9c\
+\xf3\xa7T\x81\xe5\xe5\x86\xe5\xbd$$\xe1>>+d\
+\xed\xae\x15\xb7\x15]5\xd0\x8f\xb4\x8d\xdf\xd6\xa5\x8c\xdb\
+\xb0\x93H\x13\xbf+2\xd1-\xcc\x9f\xdb\xa2to\x1b\
+\x9d\xe4R9\xc6\xdc\x97\xf4O\xb4c\x86\x94\x14\xfb\xe4\
+\x01\xf9U\xe2T\x18Vw\xa9\x90*\xea\x06\x14\xf6\x80\
+\xf4\xf0\xd4\xcf]l\xfc\x16q)\x0e\xf5\xe8t\x97\x14\
+\xf8Hv\x06\x1c9\xc3\x8e.)\xc0aR\xd8\xfc\x03\
+\xd2\x0f\xe9\xe4a\xea\xbaF\xdbE\xe9\xd3@&\xab;\
+X \x15H0\xc1\xc5\xa3\xc0\x957\x1b\xf4v\x83\x11\
+\x88W\x005\xb8\xedd\xa6\x07W\x8b\xec\x06\x90X#\
+\xd9\x97p\xc6M\x0e\xcf\x8a}S\xd0+j\xc5\xa9\x11\
+\x88\x03\xf6\x09\x19\xd0\x18~\x1a\xc8\x80\xca\x893 \x22\
+<D\xbay0\xa0.\x18(-I\x1f\x07\xe7\x7f\x83\
+\x85<ol\x0eL\x0eJ\x0cg\x22\xcc8\xa4D\x9e\
+\x08\x04\x90\xf1\xe1\x00nI\x05g6\x19\xc1\xb6\xb6:\
+\xfaj\xe9\xffu\x80\x13A\xef\x1fvI\x0a3C\x0b\
+A\x1a`\xb8\x12\xd0\xc0@\xc3\xb0\xa4\xb6\x83\x85J\x0d\
+\x0d\x8e%\x11t\x0c\x1f\x0cr\xee\xa35<\xb8\x7f\xc8\
+\x86\xe6\xd7\x04S3K\xfb \xc6\x95\x9a\xc0\x07\xb2\x83\
+5z\xb3jztP\xd9\x1c\xc0\xd2>\xbd\xff;\x81\
+\x19\x0c\xd4\x1a\xe1\xb0\xc84\xc7<C\x83\xa9\xa9\xc7q\
+\x05z\xfd\xc1\xdc~b\xf4d&!\x22\x82\x1f\xf3\xa1\
+\x08h@\x7f\xf8\x1e\xda\x22\xa9\x7ff\x188dh\xe5\
+\xf8D\x04\x19\x03\x8b>\xe1\xd7\xe6@W\x04dX?\
+d\xf6h3\xc8s\xb3^\x98\x1f\x1c\x0e\x1c|\x14#\
+\xd7\x87u\x90\xb2O0hAF\x80\x84i\xc91\xc9\
+\xd0\xe0\xa8\xb1>8h\xd9\x17\xa5_<$n90\
+\x05i\xca\xa3\x22\x7f\x03\x92M\x80\x88\x1ad\x1c\x00\x9e\
+\x87\xf5L\xad\x14\xf3*\x12\xcf\xe1a\xb1\xc1\xde v\
+\xf1{\xf5>\xf6\x1b\x861\x99G\xf63\xdf\x83AD\
+D\x9bv{Oj\x5c!\xb7\x13\xe7\x81\x99C\x89\xcc\
+\x88\x80\xd10\x9fK\xe50\x11\xc1T` \xc6\x0b\xc7\
+n[\xd5\x02\xbfJH\x00\x1c\x09A\xf2\x86\x87\x5c*\
+R\xa0e\xe5\x90q\x00\x82\x5cYE\xf3\x84\xe3P2\
+\xe2y\x1f\xb3~Xw\xf35\xe3\x8b\xfe\xc0am\xd9\
+\xf1\x09\x00P[O\x86\x9e\xfbx\xa9\xd6\xed\x84\x0c\x7f\
+>\x97\xf1\xe6y1\xb4\xf9!`J\xc0\x8d\xfd\x06\x99\
+\x1e\xb5\xd5\xe8G\x1cN\xd69?m{@\x02\xa0-\
+\xf4\x1c\xc7\x15G\x05\xb2\xa0m\x95\x19\xa5D\x03\xbd\x80\
+\xfe\xe0\xfe\x0bYc\xfe\x1e\xb8&0H\xf9^\xf6=\
+dd\x18\x00 \xb2~\xedR\xad\xb3\xf7\x069N\xde\
+\x87\xcc#\x86\x19\xe3I\x06M\xfd\xeb\xa3\xe4H\x0e\xfb\
+p\x85j\xf1\xe8\x06Cw\x1b\x05\x90 \xf5\xb4\xd3.\
+\xb3\x89?!\xc7\x9a\xfbc\x9d\xff7J\x04\xf2\xcf\xe2\
+\xd3K]f\xe3\xaa\xe0\xbck\xb8\x05\xc2!f|\xd1\
+'\x85Lq:\x19j\x83\x14\x8a\xb6\xb8p5p\x9f\
+\x04f\xe1\x86Q&et\xb6KUS\x8f^9:\
+IY\x8f\x0a\x8c\x04\xf9\x16\x06\xba\x02M\x81\xe8\x12k\
+w +\xd0\xbb\xea\xd3\x1d\xeb\xb7-\x09\xc3\x8e\xa0\x9d\
+\xa3\xce\xff`\xcd&\xe3/\xae\x83\xfe^\x97* D\
+\xd7\x1c\x02\xbb<?mgov)\x5cG\xa17Y\
+\x7ftC\x82C\xa8\xe5\xee\x00\xf9\xa3\x1a\xcd\xd8\x97\x9c\
+#\x9c\xcb 6\xd8\x87\x9c\xc7\xacw\x10k\xd4\x9a\xca\
+\x01\x0f\xd2>A\xdb\xe3sh\xb7\xcc\xfa\x96\x83D_\
+m\x90T\x01\xad\xc5\x0e\x012\x0d)2\x8e\xbf\x0c\xf4\
+x\x1f\xe77\x9f\xafq\x80\xf4xt\xb8\x8b\xbd\xfe\x9d\
+K\xa9UO\xbb\xf2\xf9\x8aC\x07\xfdG\xbfj9v\
+ -pX\xcc\xad=stfr\x80s\x17\x8e\xef\
+\xaa]\x1c\x86\xb4\xef\xd3S\xab\x0c\xb9\xb8\x03\x12$\xbe\
+\xabX\xfd\x09D\x82t\x83\xfbE\xc8:\xec\x8a\xfe1\
+\x97R*0\xb5\x8c\x8b]\x175Y\xac\x22\xbb\x96\x9e\
+\x0b\xfb\x01\xfd\xdevq\x02\x81z\xf8\xe80\x1f\x97\xc4\
+\x95\xbf[U\xf3K\x80\x96\x9aj\xe6\x9b\xae\x00p\x11\
+}\xdaE\xf3qT\x81R\x8f\xd6u\x112u\xa1\x8a\
+#\xc0\x0d\xfd}\x12;\xfee\xa3\xcb\x8a\xdd\x88\x83g\
+\xdf\xbe\xf7\xb0wI\xbc\xd0\xc5`\xd8\xcd\xa5 yR\
+\x8d\xbe\x97 \x5c\xe4R \xee\x89Sa\xb2pF\x10\
+\x18\x09{\x08\x87\xea\x92\xccY\xd4\xcfr\xb1\xeb\x87M\
+>R\xb8\x00\x22\xe3\xae~\xee\xc3\x02\x99\x13a\xf4\xdd\
+\xdc\x96\xba;\xd0\xc5\xae7u7w7'\xe4P\xe2\
+0\xa043%b\x1e\xaf\xd8\xdf\xbd\xcd\xdfYj[\
+\xb7K\xa9\xf9O\xda\xe9\x98\x8a\x94\x8f\x12\x94\xcf\xba\xd8\
+\xf7\xcf\xe5\x92>/\xd9{\x89$\xf9\xea\x12\x88b~\
+\xfa\xc5\x5c*=(G\xbb\xff\x9eKB\xce\x9a\xd8\xf5\
+A\x97\xea\xdc\x94\x9e\x8bqS\xb7\x84\xf0\x0f \x11W\
+\x89G?v\xa9\xda\xda\x02Q\x07)\x83\x9e\xe3\xbc\xd0\
+\xf9\x1d\xa4x\x94\xa6\xe2/\x10\xe0%\x00\xce\xeb!\xd1\
+E\xe7}yk5>\x90\xdf>\x9dB\xd6Yoo\
+ \xfd>\xb72\xcf'&\xae\x80<\x0f:/\x03\xa9\
+L\x89\x9e\xb8\x14R\x0d\xfb\x15\xd2\xd7\xbf(\x89\x98\x80\
+\xeccw`\x17Sr\x0e\xb2E\xa5C\x11x\x81\x04\
+\xf3w.\x85\xe5\x1e$\xf6\xf0\x01\x97\xaa\xfd:\xf3\xa0\
+\xf3\xa2{\xbfK\xd5\xbe\xcf\xdb\xdd\xbb=\xbbk\x92(\
+\xd9\x89\xae\x22*1\xe9\xe7u\xa9\xc8>\x85\x04\xc0\x0e\
+\x89R+\x10, \x02\xc5)\xd0\xdf\xe2Ru\xa9\xc0\
+\xbfA_\xc8\xbe\x8f\x80\xef\x97\x93\x94\x80-\xe7\xba\xec\
+\x96H\x0ccW\xe1\xffi]\x10h\x80#`X\xd3\
+\xa5j/\xa8\x80\x1b\xfe6\xc8\x83\xc9a\x17\x97\xc2b\
+\x0aK\xae7E\xf2\xb6H\xa1H.\xcc\xb5\x12\x90\x9e\
+\xd1w8\xa0\x0a\x18$z\x7f\x1c\x94@Mq\x5cY\
+8\x04\x12\x980\x0e\xc2\xb6\xadTa\xa9\xce\x07\x11\x86\
+)\x19\xbd\x16rN\x86\x8f\xcf\xc3\xc0\xc5\xf0\xe4>p\
+lQ\xe8m`\x00C\x84\xd7\x90\x14RS\x01) \
+\x8e\x1f\x06\x17\x8e\xfd\xb8i\x0f\x88\xc1\x01k\xb1\x16`\
+</\x19\x00\xa0\x93D~8 \x88\xa0\xb7\xed\x10i\
+C8%\x83i2\xa0\xdf\xd9\x80\xe1\xe0\xc7\x91\xc4\xe0\
+\x83\xb4N\x86\x06\xb5\xee\xc3\x05.\xf6\xfa\xa7.U\xa6\
+\xa9E\x1c`\xa0\xb6\xf3A\x7f`\xd5\xec\xd0\x06(\xc6\
+\xffje\xe8\xa9\x8dC!4,\xcc\x90\xae\xc4\x0f\x0e\
+\x03\x8eH\x9bI\x85\xbd\x1a\x882\x9156\x0a\xdf\x8f\
+\x83)\xb6\xf48\x98q\xb8\x9f\x0c\xe8u~\x9e6\xb3\
+\xffb\x01\x80\xffM\xcfl\xcf\xc6vN`\x08\x85\xdc\
+f\xd6Yo\x04\x8200\x04\x99\x8e\x8c4\xeb\x05G\
+\x81y\xc6\xe1,db\xf9\xf7\xac?\xc6\x8f\xfd\xa1\x0c\
+\xc3\xf0\x8c \xd8\x1b\xabt\x02\xc7\x19\x16s E\xca\
+\xf4\xc5\xf3\xe2\xc0\xb6\xb5\xf2d\x96K\xc9K\xae=\x9d\
+\x91!\x82q\x7fdN\x04\xa1r\xfcBB0\xd0%\
+\xe1V\x97*c\x07\xab\xfb\x9f\x85\x04\x99K\x0e\xc8V\
+\x0a\x98\x00!c\x7f\x01E\x07\xda\xabLZ@f\x81\
+\xc2\xb6z\x08=\xc3\xebv\xdd\xb5\xfa\xa6iW\x19\xf3\
+F\x80\x07\xc7\x86u\xc8>\xa6\xdd\x1edo\xe8K\xbe\
+\x9f@O\x09\xb8L'\x8bc=3\xde\xac#\x02\x88\
+\xac\xa3M\xe5p@F\xc3\x81\x02\xf2\x82\x9a[8\x05\
+hG\xd5\xb6\xf1\x049\xd0\xd4tGI\x07\x91\xebw\
+\x09\xda\xbarD\xe23\xc7C\xdbF\xb1\xad\x89'\x00\
+\x85\xdef\x7f\xb0\x8e\x19\x9f\xb6\x16Q\xe7\x10\xa5W@\
+\xa9\x87\x8f\xe4\xdaO\xf6M\xb4\xd5\x02\x99A\x09\x8a\x1c\
+\xdcp\xb4v\xd3\xb9V\xda\x94\xe6}L\xcd>\xc82\
+\xae\x8fF\xdb\xda\x1cX\xe0J@\x82\xfbm\x11T\x0b\
+4\xac\xff\x5c\xd9G\x04\x06U\x9b\x1d\xebt\x9ef\xdc\
+@\xd2(\xd0\x15\x81\x0e\x1ct\xf4*\x10Y\xd5\xe8\xc6\
+>\x07\x99\xc7\xfc@\x06\x87!&\xf2\xa7(M\xe2|\
+'\x80\x8a\x83N\xdb@X\xf5\xd5m\xa4\xdf\xd5\xa5\xb2\
+/\xe0ra\x1fAFG\x7fp\x9d3a\x98\xa1O\
+Y\x8f\x05y\x93\xd7\xdf\x0e.\xa5v;\xf6\x19\xc8C\
+2\xd4\xf4\xa9\x177\x08\xedc9g\xc8\x0cF\xffp\
+j\xb0\xd1\x9f\xaaY\x0f.\x0a~\xb0\x1f\x18\xaf\xb6\x0b\
+\x03\xcf\xd9\x06\x001\xe8\x09\xa4\x01\xa1g\x1d(\xd0\x18\
+\x08\x008\x1axn\x9ds\xce\xec\xe3\xdc>QKN\
+F\x8bs\x0aD\x10z\x05=\xd5\xb2\x84\xb7]\x9a\xb8\
+o\x90\x15\x94\xd0\x11\xb8\xe0\x1c\xc2\xa1\x01\xa1A\x1b1\
+JA\x09\x08Q\xe3\x8e!+\xa4\xd5\xf01\x97\x921\
+\x04\xb2\x0bD\x9a6s)\x93\xbd\xa9\x12\x00\xff\xae \
+\xf4 Q\xc4\xf90\xa8[\x0e\x19\xd3\xf1\x87\x5c\xaa\x00\
+\x81\x02X\xfd{]\xec\xfaC\x17\xbb^\xecR>\x07\
+\xf26\xb85\xa8\x15\xa6V=J\xce\x08tP\x12\xc2\
+\x95@\x95\x1c\x93~+\x17\x1b\xfe\xbd\x5c\xaa\xc0\xc2\x8c\
+\xcc\xd9A)\xe2\xe8.\xaf\xde\xaf\x12\x19\x90\x06+\xd0\
+\x92\xac\xe9m*\xbb\x16.\x12\xf6;\xc8$\x90\x08{\
+gr3\x1b\xe5\x5c\xf2r\xbdKA\x1c\xa6\xcf\xb5s\
+\xb6\xff\x82K\xc5e\xa0\xfd\x14\x5c_\x9c\xfb\x0a\xb0t\
+?t)\x99\xc6~n\x17\x8d\xff\xcc\x92\x11\xc5\xf1\xea\
+/u\xb1\xeb\xbf\x5c\xec\xfa~\x97\x14\xd0\xcf\x89*8\
+8\x08\xf8\x82<\xfa`\xfe\xffT\xaa\xe3\x8e\xf8\xd7M\
+N\x95#~\x8e\x1c\xf0\x87J\xc9A\xca\xac\x1eZJ\
+h\x22\xd0A\xffu\x95\xa2P\xf3\x1d\x19bq\x05\x04\
+\xe2E\xa4\xd6\x81\x1cy\xbe\x9f\xd9\xdbsu;\xb9\xa4\
+\xb6\x95&\xb6\xdd?=u\xe8\xd4\xa1)\xf0\x96JT\
+\xbb\x0f\xb9\xa4\x04\x97I!M'\xa1\xda\xcdp)\xdf\
+\x9f8\x95\xe6,\x81,j\xfdi\xab\x18\xe7\x01\xf3\x0b\
+\xd2\x03{\x9c\xda}\xc8\xe4@\x1e(\xd0\xc89\xdf\xbd\
+\xdb\xc5\xfen\x19\x17e\xe2_\xab\x84H\xdd\x16\xd5\xdd\
+\xd5[\x12'\x5c\xee\x92Fi\xd3k\xe4\xc7\xb1\xde\x09\
+\xc82^\x90\x5c\xfe\x5c\xac\xff\xd8\x09\xe8Q\xbaam\
+\xe2Rq\xb5\x80|\xe5\xdc\x86\xbb\x85\xf3\x826\xa4\x0a\
+L\x0d+\x0d+\x0efGO\xad\xeaRuw\xf0.\
+\x10\x9f\xab\xec.\xda\x9c+p\x10\x1c%$td\xcf\
+\x0c\x1ft\xb1\xeb\xd9.\xc5qv\xc6\x09/!\x83#\
+'Hc\xb5\x1f\x82L\xb6\xe1\x5c!a\x0e\x02\xa3\xff\
+\x91K\x09\x04E\xe0\x06}\xcc\xf9I\xfba\xb8j \
+\xa3\xa4$V\xe7\xe9lve\xc3E\x12\xed6\xd1_\
+\x9c\xeb\xe8gJ\x0d\x94\xf0\x9c\x1c]\xa7\x0d\x8e\xe1p\
+\xb7\x0c\xf3\x1d\x15\x09\x86\xa4\x866f\x22\x91\x18\xb6\x12\
+\xdb\xbc2\x8c\xd1/\x98\x08F\x1b\xc9\x87\xac\x0e\xc5\x06\
+\x14\x8c\x9a\xf9\xd6\x81j\xdbcq@a\xd0\xf0\x03d\
+\x17\x83\x8a\x00\x03\xedsP\x94\x1c\xc8\x1cx\x18P\x1c\
+\xcc\x8d#F\xad7\xa4\x0c\xf1\xc3\x86;\xd3%\x19\x94\
+9\xb3\x8f\xc3\x07b\x82\xcf\xe7~9\xf8\x81B\xf2w\
+,\x04\xba\x15\x90\xe9\xc2\xa1\x03\xaaL@\x01\xc7\x036\
+v \xc3d\x84\x01.\xc8\xd0177C\xf9\xdbv\
+K\x8c\x07\xcfM\xa6\x83\xb6Y8@\xcc'\xf3\xc8\xfb\
+\x04Y\x0e\x87\x81\xbf\x7fI\xbe\xef\xd1/\xb4\xae\xa8\x8d\
+\xa1\xcd\x1a\x8e\x1e\x86U[z\xc1k2+:\xd0\x83\
+\x93\xa1\x0d\xd80\xee Ip\xb4!\xa3\x12\xc4.j\
+\x0cY\x17(<\x0cu\x1c\x0f^\xe3\x80\xf0\x9a\x80\xc9\
+\xa32\xac\x08x0\xae\xcc/\x0a\x9b\xd7\x9a\xc70D\
+\xd5\xb6o\xf8k\xae\xe9\x8aq}\xb2\x098\xb0\xfe\x17\
+hJW\x0a\xa4:\xff?\x0a`i\xcd\xc3*A\xda\
+G\xa6\x19\x12\xb1\xac\x90\xa9\x89\x17iY\xd4 \xc3\xa6\
+\xcdz$\xc2O[B2w\xdc\x17\x8e\xc8\xc2\xd3\x1d\
+\x91xn\x1c]2\xff\xd4F\xffV\x11\xd1{Ez\
+B\x1bBe\xd8Q\xc4\x94lP\xb3\x16\xdc\x0b\xb7\xe8\
+\xfd(@\x1c\xf45\x14Q\xe6\xe0A\x81\xb2\x8f\xe0\xf6\
+ #F\x04\x9a\xfdT\xfa\xd5Oc\xc1\xb7c*\xaf\
+\xbbmd\xd81\xbf8$m\x97\x8f\xe0z\xc8\xa54\
+\x13\xea\x8ab\xf7\x9a3\x828l+\xbbT\xfb\x9b\xcf\
+\xe5\xf5\xcb\xc3\xf1\xcc\x07=\xeb}\xe1\x18O\x02CY\
+?\x12\xf8\xe35\x075\x8e\x10\x19z\x10\x00@\xf0\xe9\
+C\xce:\x84\x03\x04\xbd\xdav'a\x9f\xe3H3\x0e\
+ \x01vV\xc6w%\xedCj\x00\x9fS\xe6O]\
+\x22b^\xda\xee0\xec\xa7\x96s\x04=\xc4\xdf\xf1\x03\
+\xf9\x17\x19\x08\xfa\xec\x92\x99\xc0\x81\x82T\x8c\xe7\xa2\x96\
+\x9e\xee(dj\x80Bn\xd1\xf4\xe3\xd6y\x18\x8e\x11\
+\xc86X\xdc\xd1\xab\x18\xca\x9c\x7f\xe8\xb5\x96\xb3\x83+\
+\x0e+\xe7\x1b\xdd4\xda\xd2\x0d~\xcf\xfc\xc2\xa9\xc0\xbc\
+0\x9e\x94\x1c\xf0\xfd\x04\xda@\xfepN\x82Hc|\
+\xd9OmF\x9av|\xb0\x0f7m\xf0\x80\xb2\xa2\x1f\
+\xa2\x1b\xc5\xb1I\x0aI\x9f\x0c\x93\x84\xc4\xed+\x08\xbf\
+j\xa0i\xb3\x15\xa4\x84\xe8]\xc6\x93\xd7\x90\x91\x02m\
+\x16\xa9Q\xd4\xee\x93\xc0\xa0}+$m@DU\xbb\
+I\xe6?\x1c0\x95\x0cD\x00\x00\x87\x9c\x8c-%G\
+\xcat\xc6\xba\xe2\x9c\x98c:\x09i\x04l\xd8\xcf\x9c\
+[\xcc7\xe7\x02\x01k\x12\x02\xd2\xc3\x90\x14\xc6\xff3\
+\xef\x94\xa2`/i\x9ep4\x03qA\x80W\xec\xd0\
+\x18\xd0\xa17`\x97\xa6\xf4\xe3:\x97\x8a$\x0dVl\
+wH\xef\xaa\xd6\x19\x81]\xc84!\x1b~\xd0Em\
+\xd4fV\xf7\xcby\x86\x03\x00\x12\x8b\x00\x9b\x0c^\xda\
+\x04\x0e\xe9\xc7\x86\xeb*\x93+U\x82:\xab\xd8a@\
+\xcd\xfb\x1d]\x14\xb8\xbf\xdd>~\x09\x97\xe2`w7\
+\xba\x94\x8c\x7fw\x89K\xe12H$i\x8bW]\x05\
+\x9cE\xfd\xd6*\xa3\xf6S\x17\xfb\xfb}]*\xfd\x80\
+\x1eB_C\x86{\xe2\xe8\x84\x14`\xd8w\xe2\xa3\xa9\
+\xc4\x11\xc83\xc8\x03\x91jGi%\x06:v\x8b\x02\
+$I\xfblX\x9d+ \x0b\x04A\x8f\x9a\x7f\xbaR\
+\xa8\xe4m\xb8W\xe4\x92\x22\xa5\x1d\x1e\xc9\xdf3\xfc7\
+g\xde\x09\xfc\xc5\xfb=\xa1g\x0eM\x7fe\x7fE\x7f\
+\x85\x8d\xcfc.%`\xdb\xcdt\xa9\xce}8K\x14\
+`\x8f\xcf\x13d>H,\x9d\x99\xe2\xbd\x85[ \x05\
+\xe8\xb6\xaf\x1c\x19\x91I\xe2\xb0\xcf\xfc\xc6\xcc\xd3g\xda\
+\xfd\xf4\xeft1\xc7nS\x97\xd4\xceq\x99~\x99\x02\
+UN\xee\xcb\x8d\xa5\xcb\xd5\xf0-\x97\x12\xb8\x80\xf4\xac\
+\xbf\xd9\xa5 \x1b\x02\xda\xff5\x97*@DW\x03\xee\
+\xff\xe5.e|\xa2\x0b\x8f\x07`m\x7f\xf6\x9b\xf4\x1b\
+\xf7\x1b\x97\x80\xc44\xfb}y\xad\xc7\x1dJ&vt\
+\xbbK9\xefFo\x1b\xed\x96\x906pm\x80(\x13\
+\x227%`6\xad\x90\x08 \xdcD\x1a\xc8\xf8E\x06\
+\x9b\xcc?5\xef\x90x\x13\x00T&:\x102B\xec\
+t\xefpQ\xa9\xc5\xadZ\x97_\xaf\x02\xf8Br\xdb\
+\x19\x92\xcf}!0\x02QM\xc92%\x0a\xd8\x19\x9c\
+#\x0469\x8f\x08\xf0\x92qW\x09\x00\xdc\x02\xa3\xa3\
+]\xca\xfa\x09\x12n\xc8\xef8g)Q\xfeJ.\x09\
+ \xb0\xd2\xbf\xc4\xc5\xae\xbb\xb9T\xfbE]K\x86s\
+\x5c*\x07\x1a\x12I \xf5*9\x8dR8\x05\x0e\xfb\
+S\x5cR\x09\xc2W\xfd\xfbB\xafC\xd6H\xc2A\x1c\
+\x11a\x97\x81$P\xc25\xc8\xa8\xf5\xfdp\x94\xf4\xfb\
+\xbaT\x01v\xb5%\x0d\xfb\x02\x8e\x078\xef\xb0\xb3\xf0\
+_(\x15\x82\xab\x0c{\xecSI\x82\xc4|\x10)9\
+\xa4\x93\xb4\x19$\xe0:\x19\xec\xe0\x22\x91\x18\xd6v)\
+\x19\xd0\xa8\xc5\xe5\xc10\x00`\xe5\x17\xb4\x86\xc8\xe7\xe8\
+9\x97*\x92\xcd\x0dsp\x00A\xa3\x8f/\x91\x0bm\
+\xe88h\x880c\xf8\xe0x\xe2\xd0s\x90\xe1\xc0\xb7\
+}\xbe1\xbc8p1 \xc8H\xb5\xd0\xdc\xb6\xc6\x9e\
+\xcc\xa7\x22\xda\x91)\xc1\xb1\xc7P\x92\xe3\x16\x19T\x0c\
+66\x02\xb5\x96\x90\x14\x91!'\xb3\xc5\xc2\xe1\xb9\x18\
+7\xbe\x87\x83\x00\x03\x1f\xd2\xbf\x85\xb5\xb0p\xa4[\x92\
+@e\x9eF\xaf\x10t\x14vr\xa0\xc1b\x93\x1f\x9e\
+\x96c\x85A\x0a\xb4\x10\xb2\x1f\x91\xa1\xc4}q`\x95\
+\x8ct>\xe8\xa9\xf5\xdbX\x06\xf4CM?\xe3\xc6\xc0\
+\x8dy\xc6\xa1mK1\xc8\xa4<\xd9\xacC\x0e\x226\
+V\xd3N)HR\xf8\x7f\x91\xf8\xd1\xee$\x90\x10\xd4\
+\xc82\x8fm\xbf\xf9bx\xe2\xf0O/!)P\xde\
+\xec\xe8\xb4\x88\x04\x90 \x18:8N\xd4\x94\xd3]\x00\
+\xc3p\x0d\x19\x8cK\xc8\x91n\xfb\xac/\xa3+\x86\x07\
+\xb5O\xb4\xa3\x22\xf0\xb1\xbc\xd6\x0b\x8e-\xf7\xb3\x922\
+\xce@yq\x10\xf8\x9eW4dw\xed\xef\xf9<\xf6\
+\x17\xf7\x05)\x0a\x81\x88\x95\xb5Oz)J\xda\x01\x12\
+0\xc0p]6Jc\xb2#N\xe0\x08\xc3\x9au\xd2\
+@q\xe3\xbe\xd8O(|\x1c\x0a\x91\xabD\xc6\xbb\xd5\
+#\x059\x93\xf5\xc3\x0a\xd1\x86.\x8f\x1bz\x8a\xbf[\
+A\xe3\xca8\x12\xe8@A\xaf\xad\x9a\x7f\xc6\xa9t\x0d\
+\xc9\x0e\xc4\xdf\xc4\xbe\x8b!\xccs\xe1\x882\xae\xdc'\
+\xfb\xbdm\xdf\x87CL\xe0\x8f\xcc0\xef\x03\xd2\xa7\x0c\
+O<\x1f\xf7\xcb~\xc3!\xc1\x80o\xbb\x0fP\xf3\x0f\
+B\xe0\x99\x5c\x22f\xfa&#&(\xf9@o\x81p\
+ye\x03A\x87\xd3@\xeb#H\xc4\x084\xb7P\xeb\
+\xc2\x8e\x9f\xff\x1f=\x0d)\x1d\xfb\x0d\x07\x9d}CI\
+\xc78\x90P\x99{\x02\xc3U\x86v\x046\x97\x94\xde\
+e^\x81&\xcbQ\x8a}\xdf\x96n\x81dS`)\
+\x90&{\xab\xa4\x09R$\x1c\x04\xf6\xc7\x5c\x0di#\
+%\x08\xec#\x9e\xb3EBp\x1f\xec\xe7\xf9\x90\x7f\x9d\
+\x86\x00\x00 \x00IDAT5O\xe8\x93\x05\xf5\xf7\
+\xf3h\xbc\x98o\xf4\x14\xa5 \x9c?8\xfe 90\
+\xd0\x96\x88\xf1\xc8\xeb\x9b\xf5(\xe8\xe2p\xb3\x8b\xbd\xfe\
+b\x92b\xe8\x11Pa>Xg\x04\xb8\xfe\xe8R\xda\
+\xed2\xbe\xf4\xfb\x0e\xb6{ja\xc5\xf5\x12\xe3\x84>\
+k\x90M\x818\x81U\x1d\x12b\x90l\xc7\xaa\xfb\x0b\
+\x06\xb8\xb7'\xbb\xb1\x82\xb8c\x7f\x10\x98\xd6yM\xc6\
+&\x02\x00df\xd4\x066X\xecA*\x90\x91\xa36\
+\xb9\xe56\xe0\xbe\xe1x\xa1t\x89\x1azJ\xf1h\xe3\
+I7\x0f\xce\x0d\x90\x018\x1a\xecs\xe6\x93s\x8c@\
+\x025\xfdp \xe00\x0a\xe1\xd9\xaf\xe7R\x02\xa0p\
+\x1et\xefr\xa9\xce{ebG\xbb\xbbT\xdf\xcbz\
+e}\xa2'\xa5\xc7@\xf4E{7\x05T\xe0\x90\xc2\
+\xbe\x8c\xcc\x9e\x0cq\x07\xfe'\xe8?}\xde\xdf\x93d\
+b8\xd4\xc5\xee{g\x93]J . \xb3\x90\x09\
+\x8b\x141e\x167\xad\xfa\xaf\x0b\xe9\x05rl|\xac\
+K!\x0f\x0c\x07\xd0k\xfc7\x12\xd2\xe1\xa4\x8a\x1b\x02\
+\xc8<m\xb0or\xa9\xec\x0a\x10\x1ap\x0b\xfd\xdcS\
+\x1ev\x9d\x1a\xf5\xa3\xa9*\xb0\x09'\x15\xf6)v\x1e\
+$\x8b\xca\x94G \x11\xc7\x0e\x83~\xadtB\x96\xf5\
+G@\xe8\xe7)\xd7ZJ%\xbf\xa3\x12\x8d\xa3\xd4\xde\
+PPt\xbaT\xf1\x9c\xf4\xa9\xef\xcf\xea\xcf\xee\xcf\x12\
+\xa2\xf5[\x85\x04nx\x8d\xc9\x8c\xaa\xdb\xc7=.\xe5\
+\xdc\xeeg\xb8\xd8uK\x17A\xfd?\xac\xf6\x88ki\
+\x9dyM\xff/M\xae\xd7s\xacU\x05<(\xc5\x11\
+)\xa5\xb9)\x9f\x18>a\xe6\xe77]L}o\xee\
+b\xaf/\x9fu\xd9\xac\xcb\xecsvp\xb1\xebv.\
+B\xeax\xc6~}\x93\xf5\x14Pz\xb0\x22\xfd\x93\xe3\
+H\xb7\x86\xe0\x12\x00\xb9\xf4z\xd3\xde\xaf\xaf\x02t \
+w\xb0\x1f\x95!On\x99#\x0cN39U\xa5\x0b\
+\x7f.\xe3\x11\x01\x03'\xf1;!\x8d\xdf!>~S\
+_q\xb1\xc7\x5c\xd7\xa5iw\xf8|97\x02J\xee\
+\x89S\xe7`\x9be2\xb3J\x88\x82\xe4\xa0\x9b\x01v\
+\x14\xdc\x13 k\xd07$&\xd7r\xa9\x02\x80B@\
+@\x02\x9b\xf6\xe5\xd3\xba>\x9b\xda\xdc\x9a\x884\xd2\x91\
+\x11K\x9b\xd8s\xf5\xcf\x9a<W\xd8\xe8\xd1\xffQZ\
+L\x89\x81\x1c\xd8\x084s\xce\x88\xd4|8\xdc\xa5\xf2\
+\xdf8\x978\xbf!{\x94~\x01\xf9\x10]\x0b@\xd4\
+\xe8\xfb!q\x1d_0>\x7f|~\x85\xe4\x9b\xdb\xc5\
+\xaes\xbaT\x08_\xc6GH\xe6p\x88\xf7t\xa9\xda\
+ \x8a\x14\x16\xbd\x14m\xba\x85\x00\x22`\xd0\x92\x80\xc6\
+\xfbH\x00\x80\xbc\xe4\x5c?>I!\xa3\xd5\xf9\xc9\xb8\
+Wd\xdcY\xaf\xc3\xbd\x82>\xe0|\xe59\x15\xc8\x8a\
+\xee{\x90\x0c\x0a9\x1ez\x99\xf9\x87d\xf0\xe1\x9c\x88\
+\x0a\x84\x95\xd6\xefd,\x1cg\xaf|i\x82@\xe4Z\
+\x9a\xfdtP2A\x90UPS\x87\xc3\x0fTg\xa4\
+\x8d\x8d\x82\xc7`\xc3\x90\xc6A\x84\xf5\x94\xda\xcf\xa6v\
+\x1b\x85\x16\x99\xc9\xc6\xb0\x0b\xb2\x0c\x14*\x861\x0e,\
+\x06$\x0e\x17\x7f\xc7\xe7\xb4\x91z\xae,P\x0cx\x02\
+\x1e\xd4 \x11Q\xa1-\xc75\x0a\x84p\xf0cP\x03\
+e\xc2p\x07*\x8a\x02\xc4\xb0\xc1\xf0R[.\x9b\xdc\
+lP\xb7\x19I\x1c\x05\x22\x92d\xdcqX\xda~\xe3\
+,\xf8\xb6\xc6\xb3\x1d'j\xe3_\x91k\xc9\x86\xbf\x89\
+\xa4\x8d\x0c!\xb5\x9e@\x08q\xc8\x81\x88\xb2 a\x9b\
+\xa4\xcd\x10l\xd3p\x0f\x10\xf9\xe5\xe0\xc3\x11\xe2~_\
+\xe4>q<\xc2\xe0d\x83\xd1\xfd\x01(+\x86oc\
+`\x8f\xde\xeeR\x91sA\x8aA\xdbF6*m\xe8\
+\x88\xa4>\x903\x19\xa6\x8cr\x06\x9c\xf5\x01{95\
+\x98@\xe0\x99\x87\xa5\x9b\xc0\x06\x10e\x1cn\x1c\x1f2\
+\xf2m{\xb1y\x1b\x08?\x86\x17\x0e6\x0eE\xeb\xf8\
+\xe3\xa0\xb0n\x96\x0bv\xfb\xbc~Xg(\x1a^/\
+\xd9\x04\x1ap\xc8\xb9?\xf6\x11\x81\xac\xa6\x1dXDZ\
+\x96\x8buH\xa0 \xbf\x06\xf1\xa3L]\xd4T\x82,\
+\xe0\xfd@CU\xe3\x18\x90\xb3\x15\xa7;h\xc1.\xfe\
+Q\x97\x0a)@\xdb\xa0}\x05E}\xa3\x22\xd9@\x9c\
+i\xab\x82#\xc3\xfdc\xa0\x83\xe0YT\xfa\x88\x00\xd3\
+R\x22\xbd\xdb:\xda1\x12\x08\xc8\xe3\x0ft\x1fC\x1d\
+\xc3\x9dv\x8d\x90\xf6-\xaey\xbc_\xfb\x88}\xcd\xbc\
+a\xe8\xb5\x9c\x02\x18\xb8\xcc3\x07&\xe3\xc7:a\xbe\
+8X\xe8\xb3~\xbf\xcb\x0b@\xee\xdbvm\xe8k\xb8\
+\x0dX\x0f@\xba\xf7Pm\xdb\xee*Eb\x1c\xe0\x96\
+`\x1cy\x1f\x01\x1e\xee\x8f\xc85\xff\xcf\xbc\xb7\x01\x00\
+\xf4\x01\xfa\x94@\x5c\xdb\xee\x8e\x089\x19k\xe6\x13=\
+\x8fc\x04\x8b\xf8\x17\x5c*h\x1d\x81:\xf4!\xe3\x89\
+\xe3N\x9b$\xf4;\x86\x0d\xe7\x03$H^{\xbak\
+\xa5\xef)]\x01*\xcd~\x049\x04d\x9e\xe7\x22p\
+\x81^E/\x13X\xc7\xf1x\xb5\x1c^\xf4\xc5\xff\xa7\
+\xeb\xcc\xe3\xfe\xab\xc6\xf5\xff\xdd\xfb\xf9j\x90\xe6\x12\xa5\
+\xa44*eh<\x9aPH\xa6$\x89\x83d\x88\x92\
+\xccc$\xe31\x97\x83\x06\xa5\x10\xca\x9cC\xe6\x0c\xfd\
+\x0a\xc7pB8'\xa5L9\x14\xe1D\xd2g\xef\xdf\
+\xba\xd7\xba\xde\xd7Z\xcf\xfa\xf2\xdc\x7f|^\xcf\xf4\xf9\
+\xec\xbd\xf6\x1a\xee\xe1\xba\xaf\x8bD\x01\xe3(\xf2\xc9\xb4\
+k\xe5\xca\xea\xb0\xb1\x11k\xe5\x1c`\x9c\xef\xa9q\xe3\
+\xf3\xf8\x7f\x9e\x1f\xfb\x16dZT\x9a\xc4J\xefD\xbe\
+\xa0\xd7\x96\xe7\xfaLXC\x1a\x8a\x9a\x0d-\x07\xaa\xf8\
+R\xf1B\xae\x0c5\x05\x1c$\xb3\xec3\xcfI0\x11\
+h\xa1\xeeC@\xcc\xba\xa32\x04\x87\x06\x81=\x81\x1a\
+\xcf\x19\x88%\x895\xf6\x19]7\x95\xbf\xe1=a\xcd\
+~\x83\xea\x03\xd0o%\x1e\xdc\xb3\xca\xfb2\xcfYG\
+$\xca\x814\xd3\xd2F/\xf0\xc6]\x22\x8d\xf5\xcf}\
+\xd1;\x0a\xe4_\x019\xady\x0e\xe4\xd5\xc3?\x9e\x10\
+\xd6<\x0f\xc6\xe5OaM@\xc1zS\xa2\xdf\x10{\
+d\xe2N\x0ak\xb8\x0a:5\x22\xd4\x15|>\xe1\x9f\
+p\x9e\xc4\xe8\xee\xac\xfd`\xd3\xa6\xd0sKa\xefw\
+E\xf4\xeb\xc3%\xc3%\x95\xdc\x17\x04\xc7\xfc\x16!E\
+`\x93\xdfj\xdaz\xda\xba\xfaQ\xb95\xf5\xb8\xdc#\
+\xfc\x9a\xe8\x11\x1e_\x17\x96\xc9r\x935\x89\x83\x8b\xa7\
+\x8b\xa3\x02\xbc\xf4\xf0\xa5\x87g\xb2-\x0a:\xe2\xc2\xa0\
+\x22?m2\xdd~\xda$C\xde\x0bK<\x89\x10\xf6\
+\x01\x90d\xf8\x8f d\xbf\xb9\xe2\xa4P\x13\xca\xba\xf2\
+/\xac\xb2c\x1e\xbf-3\x06\xaf\x9c\x9f\xdb6\x9c\x0e\
+\x90\x7f\x81\x80U@\xee\xd7\xfb\x845\xe3\x1b\xf5\xf2\x13\
+\x9aVP\xb8\x1ehy\x11y\xa9\x13\x1f\x22\xc9t\xa0\
+\xb3\xc1\xbc\xe1\xbc\xa1\x02\xcc[+\x9b:-\xac@\x82\
+\x17\x7f\x0ak8!\xb4\x9f/.\x0ekz\xfd#A\
+\x90\xae{\xbaO\xb2}\xaaL \xe4}\xd3\xdd\xc2\xd2\
+\xff\xad\xbfXo\x11\x5cY{\x855Pk\xe4\xc6u\
+?\xe3\xbf\x96\x04T&u|c\xfa\xfb_\x84e\x92\
+\xbd\x17Ni\x5co\xfd\x5c\xb2\xcf\xa6\xf7\xfbq\xb2\x14\
+\x80/\x1e\x16\xa6\x8a\xe6\xb6\xcd<;<\xb3.\xac\x88\
+tB$\x14\xd8?\xa7c\xc2\x1a\x04\x12dzb\x8f\
+\xa7%\xc5\x1cX\x8f\xcd'\xdd\x8a\x88\x86\x82\xcd\x9f\xf9\
+\x04\xf2\x87\x806\xc5K\xb7\xcf\xbf?1\xfd\xfe\xc4\xcc\
+A\xb0S\xc4M\x04\xa2\xd3\xbd\xa7{M\xb1n\xbf\x19\
+\xd6\xb0\xb4\x93\xa8\x84\x03#\xd4o6\xa8\x814\xb2\xe5\
+\xf3\xeb\xc2\x1a\xff\x9b\xf3S$}9\x80=J\x01\xe2\
+\xee\xcd\xb9\xc7~&\x04\xcf\xbcFXz\xdfk\x0b\xc7\
+\xd2\xd2na\x151\x93\xfd\xf7s*\x82\x9b\x8ay&\
+\x9bK\xfe\xde\xe2\x1ea\xe9\xe7\x8f\x09k\xce\x01\xceE\
+\xe2\xa3Ou\xe4\xef\x22\x05u\x82\xad\x0f\xf8\xe1\xfa:\
+F\x1c\x15\x04\xda\x22a\x05\x8ao\x7f\x9e\x96a\xb1\xe1\
+\x8f\x0f)\xad\x18\x0e\xccu\xae.\x9e\x18\x96>.C\
+\xca\x1a\xf9k\x12\x8c$\xf6\x9e\x93\x05\x0f\x8d\x94`\x9c\
+\xd2sK\xd6\x9c#\x90\x96S\xc8\xc4\x9f\xa2 \xb0\xbe\
+\xb9\xad\x8a\x7f\x8c\x1c!\xea\x09\xec\x1b :h\x81\x80\
+\x8b\x06\x7fF\xf1\x92\x13\x0b\x92owbN\x89\xe9\xe1\
+\xdf\xc3\x9asG~\xc7xdX\x93\x00\xc2/W\x8b\
+\xed\xf4\xac\xb0&\xb1\xadB\xf4\xca\xe9\x82\xe9\xfc\xe9\xfc\
+\xdas\x9aY4Ojz\xe3\xe8\xfd\xe3\x86\xc5bh\
+H\x1d\xe4\x138\xec8\xb4T\x14\x80\xe4\xd2K\xa1\x8a\
+\x80\xd9.\xe5\xc8\x1b\x22\x0e\xe4\x0a\x87\x0c\x88\x9d\x0er\
+\x1f\xf4:\x10\xe6\xab\xc2\x9a@\x90\x03\x8bLH\x0f%\
+\xed\xd9\x8c\xf9\x9e\x83\x11\x08\x9cz\xd3\xd2\xe4(\xa4<\
+\xbfR\x80\x88\xbe\xe4\x1bT\x11\xc1\x81\xc2A%\xf1\x81\
+#K%\x09\x87\xa0\xd3\xd3\xc61r\x85\x9b\xf7\xe9I\
+\x0b\xd7\xb3Nt\x09Tp 8xq\xb8\xf9\xfb^\
+'\xbeo\xc9\xa0\x12E%fC\x05J\x22\x07\xb4\x03\
+\x80C\xc2\xfb\x108\xf3\xc5\xb8\x13\xb8\x9fV\x0eVC\
+wpt\xff&\xd6\xca\x93K\x86:C\x05o\xad\x90\
+0_7\xcf\x8b\x05\x87C\xd9\xabDp@\xaee(\
+z\x09\xf8\x80V\xa3\x9b\xca\xfb\x80\x5c\xd1|2+}\
+E\x02\x94\x0d\x14Y/\x1c2\xcd\xeba;\xbdo\x9d\
+\xdf%0\x06\x01\xb1\x81e\xcf\xca|\xd28\x93\xb02\
+\xa9\x12\x09\x9b>\xe0\xc3Q_\xd7\xea\x04\xcbz\xf9\x0d\
+\x15%\x80\xa1\xf2\xba\xb5\x03\x7f\x12\x11%Q\xc0\xfc\x00\
+\xa2x;\xe9\xa2\x03\x95\xbfs\xd7\x22@`\xcau\x91\
+p\xa8\xf3\xa5$N\xd0G'\xe0\xa2\xf2\x7f\x17!M\
+z\x87\x10\x96vUd\xe9\xb5v\x02\xea\xe0B\x02\xb5\
+\xe2\xf5J8=\xa8@\x1a\x87o\x87\xd5\x1e2\xff\x1f\
+d\x5c\x1f,\x1b\xa9\x13l;(P\x00\xa9\xd3\x93\xd8\
+\xf1=\xf7\xcb\xfe\xa0\x0d\xd8\xad4\x04B\xbbjc\xde\
+^\x81\xfdV\xee\xd1^\x8e\xb0\xe8\xf7=\xc6\x95u\xc1\
++-:\xbd\xae;\x0e>d\x87}\x00\xc4\xfe\xc9u\
+Qq\xe4}{U\x11\x12\x85TJy?\xb8<H\
+T\x10\xd0\x92\xa0`\x1f'QK\xa0\x08\x04\x90\xbf\x17\
+bc\xd8^\xc8- \xf8\x5c_\x8f\xf0a\xdfc\x9e\
+s=\xbd\xbc)\xcf\xa9o\xc9b\xdf!\xa1\xa4V \
+d\x91\xbc\xbf\xb0\xfe$\x8f\xe6J\x1a\x09K9\x18\x90\
+\x8e\xad\x02\xe5SF\x1eG5\xd7\xd7\xbe\x9e\x1d\xc7\x22\
+\xd3D\xc2\x8f\xf9\x8c*\x02\x09*\x1c\x17%&\x816\
+z\x1d\x03\xcd\x95\xfe4\xe7\x84\x91\x1c\x9csTZu\
+^\xcd\x97\x96@\xdc\xe7&\xe3B\xc2\x14\x87L\x09\x86\
+\xf9bA_\xe1\x86!au@\x81\xba\xaf\x82\x80\x22\
+Pf\x9f\x04qA@NK\x1dH\x07\x90\x14\x82\x1e\
+:\xc0'@\xe6>\xf8\x1cHMQ\xdb\x10\xb7\x87\xd7\
+-r[\x225\xb3\x0c\x17\xd7\xd3\xf5:z}1O\
+@\xbeh>Paw\x85\x87\x04\x8f\xa0\xa8A9\x16\
+\xa4cN\xe4@zH\xe0\xc3\xfa\x84|\x91JM\xc7\
+\x86\xbf\xe2\x99\xd9\x9c\xf8\x1f\x9e\x1c\xd6\xac\x1f*\x8bT\
+t\xf0gX\x0f\xc8\x12\x82\x04c\xdfd\x1d3~ \
+\xd3\xb4>\x87_\x84\xd5@\xc1\xaf\xc8\xa8!\xf3\xa6\xeb\
+\x19~\x1d\xd6|>-]:\x7f\x91I3+\xf7G\
+\xc3*\x09\x97\xc7\x9d\x04\x07\xcfM\x95\xe8\xe1)a\x99\
+s\xa3\xa8o\xd0\xb3\x0b\x82\x00\xa4\x06-\x0d@\xe9E\
+\xfe5\xfdz\xban\xba.s,\x14\x16\xf0\xdf\x15r\
+\xbf\xf9w*\x04}*L=\xc9\x97\xd7\xf1\xb2z\x95\
+\xfc\x89q\xb7d\xf7\x96?y^\x91\x9f\xcb=\xc9\xc9\
+{\x89J\x97Uu\x08\xb05\xafs\xefz\xf2\xdf\xa6\
+''{\x8a\xd6\xf7\x06M\xe2\x91\x84\x13=\xcf\xd2\xa7\
+\xcf\xabz\xfd\x8a`1\x19\x19\x10\xff\xd8\xb5w\xa9\x89\
+\x87\xe9\xada\xe9\xba\xce\x0fk\x90\x0fp,\xa8\xe5\xc7\
+\x09\xd9hm\xf8~\xe3\x07\xd2\xb2Q:$VL'\
+%{Ez==\xd9\x19\xe9}o\x1d\x17\xe3\xa2\xd1\
+\x0fW\x01e^7,\xb7X\x94\x9f+\x110\xdd6\
+\xac\xe9\xa5\x8e\xb0\xe0\xe3\x15\xe12>/L\x88\xa1\xdd\
+\x9a\x84\xdeR\xb2\x95\xe9\xffw\x0bK\xaf7'K\xfb\
+Pt\xc8O\xc9\xbf\x5c\x9c\x1b\x96{\xfe/\xca=\xff\
+'\x86\xa5\x9f?7,\xbd.\xa5\xcb\x1c3\xb26?\
+\xdf\xf9\xff\x89|S\xfb\xdex\xd0x\xe0x`\x93\xb8\
+\x12\x92l^+\xd9\x9a\xea\xd9?\x22\xbd\xef\xb6a\xe9\
+\xf5\xf6a\x0d\x99\x9d\xf6\x19\xef\xb3\xda\xc7 \x1b%\x01\
+\x91U\x02\x92\x1f;\xef\x1dV+\xc1\x0e\xc0\xf6\x98w\
+\x0f\xffb~\x948\x04H\xa8\xfct\xbe2*\xf1\x86\
+\xa8\xabU(\xcd\xaa}b^AF\x98N\x8d\x5cy\
+\x1d.\xd7~\xa7\xd6\xba\xf1}a9\xb1\x9e\xd5bR\
+ \x9bL\x88\x89Kj\xa0\x0eg\x85\x11\x22\xb4\xc4\xea\
+\xba\xedw|=\xd3\xf3\xd5\xd6\x15z\xea\xe5'\xcd\xcf\
+\x0bk\x0ajR\xcdZz~\x98\xc8[wh\x0av\
+:?\xc7\x1b\x93\xfdA\xfbw\xda\xcf\x16\x7f\x0e\x13\x99\
+\xfb\xb3r\xc2\xe4\xa4\x8c4!\xf1\xad\xc2\x9f\x11:\xf8\
+\x0dB\xf4\xf8\xbc\xa1\xe0|qXs\xbe\xe3wr\xae\
+\xb1\xff\xc2E\x072\x0b\x7f\x5c\x09\xe1\xf1\xcba\x95<\
+u\xba{\x98T\x0b\xdeY\xd7\xbb\x91,\xfa\xb9\x13\x8e\
+\x22\x11\x9ew\x09K\xff\xff\xb8\xb0\x1a\xe7\x0c+\xc3\xd2\
+\xeb\xcf\xc2*\xb9#\x08\x16#1\xd4\x0aa\xff\x01\x99\
+@\xfc`q\xc8\x98\xb3@\x1c\x13F\xf4\xb0\xbf\xa2&\
+wyX\x13G2. 1(D\x13g\xe1\xc7*\
+\xce\xf0>\xa9\x82\xf1puX\x13\x07\xcb\xbf_\xe9\x89\
+s\xab\xa0\x01\x0a\xa8}\x10\xe0\x00\xc8\x11\xa7w\xce\xec\
+\xc8\x8f\xd3F\x7f\xbc\x10\x03\x5c(\x818\x0e.=\xa8\
+\xcf-={Y\x1ed\x8fF\xf6\x0b=\xccK\x04\xd5\
+F\x96\x04y66B\x1c\x0c*!T\x9ep(\xf9\
+9\x01#\x99~\x1c\xd8\xfe\x95\xff\xe3\xfd\xe9\x11\x91c\
+\x09\xeb\xad\x07\x8eJ#=\xe4< \xde\x0f\x87\xa5\xef\
+\xb1g\x22\x100m\xaa\x80n\xa3\xe5\x81ZZl\xc5\
+a\xbaX\x10\x10\x0e\x5c\x1c\x03\x1c\x1a\xbe\xef\x1do\x02\
+\xe2^&\xac\xd7\x8b\xff\xbd\xc9\xab\xca\xf3\xc2\xb1\xbdK\
+\xe1|p@N/\xd0\xff\x0a\xcax\x85\xc8\xe0\x08\x10\
+\xe8)\xa7'}(=G\xab\xe8{\xe3p\x7fTd\
+\x92\x82VZ'\x1a\xc7\x88\x0d\x01\x08,\xa4'$\x22\
+\x08\x9cp\xf8\x91\xd7\xa2RJ\x85\x85\x80\x0c\xb6i\x02\
+H\xe6\x03\x19~>\x0fG\x87\x85\xb4\x97\xc9\xe4J\xa5\
+\x16(\xce\x9dL\x16W\x129$dz\x96s6\xb0\
+-\x84\x00@\xde\x90\xe7G\xe0N@\x06t\x96\xd6\x06\
+\xee\x8f\x84\x12\x0ebOV\xb7\xa5+\xf7\xb0\x8a\x97\xf5\
+@\xc5\x90\xebA6\xb1\x0f\xb4\x08\x84\xf9\x1c\x12)\xe2\
+\xfe\xf0\xfcb\xfe0\xefzr\xbb\x1a(\x97\xeb\x02Q\
+\xc0\xbc\xa7uew\xe9\xb6C\xb2\xb8W\xe9YZ\xf1\
+\xc8\xe2\xf8\x0c<g\x1c02\xa3\x0a0\xe6\x9d\xc4\xba\
+\xbb\x93\xe6/\xeb\xf0+\xeaU\x86\xbb\x83\x00\xb8\x93\x8b\
+\xf3x\xa1\x82@b\x84\xca\x1dr\x86\x8c/?\x07y\
+\x01\x1b;$P$:I\xdc\xf1\xcaxq\xf0\xb1.\
+y?*\xf0p~\x90\xd0\xe1\xef\xd8\xd7\x18\x07\x12:\
+\xbbj\x1e!sH\x82\x80\xc0z\xd3NF\xef\x16\xb1\
+r\xef\x98\x9bLje\x1c\x92\xd1{\x09\x12\x0e\xf2\x81\
+V&zvq(\x98\x97\xdc7\x81\xcf\xde\xca\xf8\xef\
+\xa7u\xc0\xf3f\x1c\xe0R`}\xf6\x88+\xe6'\xfb\
+v\xdf\xaa\xc1+\x7f\x0f\x99\xaa\x12b\xee\xf5\xc41\x90\
+.\xb3\x13\xcb@\xf1\xd8\x1fa\x07\x07\xc1\x06\xf9\x12\xfb\
+\xa2d\x96\xe6\xb3\xc2\x9a\xd6)z\xe2\xf5<,?)\
+N\x13*H\xc3\x8da\xcb\xe4j\xcb>\xf6\x13%2\
+\x7f+$\x00\x8e\x00\xd7OK\x09\xc8\x12\x02q\x90\x03\
+\x90\x94\x02\xe1\xa72D\x80\xe8\xde'}\xb1\x7f@\x0e\
+\xfb]\xf5jV\x0e\x8f\x9c\xb8\xce\xac\xcd\x9fm\xe4t\
+\xe9\x01%a,\xe8\xbc\x03\xe1Wd\xabH1\xf6\x01\
+\xce\xdb\xfe\xfcc_\x05I$Gx\xb8!\xac\xa9t\
+\xabb\x04\xbb;\xdc\x01+\xce\xc9V+\xb1\x90z\x92\
+0c>\x92(\x84d\x89@\x5c\x89\x8b\xf1~aM\
+\xe5\x05R@z,Y/\x9c\x0f\x9cG$\xe2@p\
+\x81\x8c\x81\xdc\x96\xfb\x15d\x132+C\xff/\x0ck\
+\xe6\xb1\xc6\xd5\xa4Q$@\x08\x90IT3n$\x12\
+\x98O\x9ck\xac\x17\x12\xf2$dI\xdc\xb3\x9f\xd0r\
+\xb6V\xd9\xe7\x80\xcc[&\xee\xa2\xc2\x1eo\x16r\xce\
+W\xd4#\xa4/\xbf\xe2\xeclU'\x9b\xeb\xc7\x7f\x82\
+;\x84\xf3\x96\xca\x9e\xce\xb7\xe9\xff\x85\xa5\xe7\xb0cX\
+\xfa~\x9b\xb0\x86\x9c\xf5\x16q\x84\x88\x1c\x0c\xb9+\x9f\
+\x17;\x8b\x9cK\x85'\x1c\x7f#\xc7\x84<\x18\x1f\x1c\
+V\xd9\xd9AD\x98\xecM\xac\xfc\xf4\xd0\xe7^\xdft\
+\xaeL\x8f\x0dk\x12w$\x5ch=\x80\x9c\xecp\xf5\
+r?8w\xdf\x17\x88\xf5a\x0d\xb9\xe0\xa3\xc3\xaa_\
+3~<,}\xff\xb1\xb0\xa6r\xca\xf9\xab\xe7k\x12\
+2\xf5\xea:\xb0\x8c\x00\xee\xb9\x95\xac0;\xf8\x0f\xd1\
+\xfd_\xdc@\xaa\xe5\x97\x86\xdaz\xe8\xad\xbb\xf2\x8a\x8a\
+\xc2\x03\xe6\x83\xe6\xf4\xbax~X\xe3WJ\x85\xc7\x9c\
+\x17w\xc8X\xc7\x15\x8b\x8f\x86i\xff\xfc\x85\x127\xaf\
+PE\xf1t\x91\x1aF\x8bIz\xd7\xe8\xe9\x9e\x1e\x94\
+,\x8dG\x16\x09H\xe7\xd0\xad\x07\x845\xaa\x00\xc1\xe9\
+\xf0\x85,\xbfw\xe9\x22\x05>\x8b\xc3\x17\x8fZ\xa4s\
+h\xfazXC\xce\xf7\xd8\xb0\xca-4<\x7fxA\
+\x96i\xd5\xfcrO<\x09**\xab\x1b\x16\xa4\x03\xf2\
+\x98$\xea\xe6\x07\xcd\x07\xcf\x0fj*\xb4p\x9a(\xf0\
+7\xf2b\x9d0\x15\x86~VI\x13\xc7\xfd\x92\xed\x9b\
+\x03\xdb\x7f\x8f\xc0\xd6\xec\xf0*hN\xa7\x86\xa5\xdf\x8f\
+a\x0d\xa7\xc5\x16\xc9\xee\xdc \x9d\xf0\x1f\xa3\xf1\xe3\xa4\
+\xe4^\xbf1\xac\xc6?K\xcf\x08\xab\xe3\x8fZ\x83\xa1\
+\xe3\x04\x94\xdc\xef\x9d\xc3\x1ardZ\x11ay\x07!\
+\x09\x87\x0d\x88&Z\x91~/\x15.\xb8sD\x0a\xe7\
+\xfdS\xfb\x87[+\xe5g\xa5\xb0{\xa7\x8c\xc4:U\
+-3\xc4m\xa8X\xe0\xa7\xe9}|\x1e\xbf(\xac\xf1\
+\xab8oA\x04|\xae\x93_\x85\xfc\x12\xf9\xd1\xb3\xc2\
+j\xc5\xdfH\x12\x10V\xc8\x99\xa2B\xa7\xf1\xf2\xdf\xa9\
+7\x1e5:'z\xd4\x13\xcf~>\x9e\x14\x96\x9e\xeb\
+\xf9\xa50>\xdd\x18\xd6\xac#\x917\xbaUR-\x09\
+\xf6\x97P\xa3\xc0Oy\x84T\xd6\xe4Gq\xee\xa4\xfb\
+\x0ds\xe2\x10d\x83\xf7u\xe2n\xf9+\xe6J \x11\
+\x85\xcc\x22\xf1\x83Z_\xddJ\x0f\x12\x83sX\x9c<\
+\xf3>a\x95\xf4r\xe5\xf4\xb30Ah\x0eo2\xff\
+zc\x1ft@R\xa5S>\xdcQ\x99\x85\x13\x0b\xb9\
+\x84\x03v\x1c\x93^\xf7\x96\x0a\xe3\xf6\xcb\xf5\xb7\x9d\x09\
+\x87\xcd\x97\x03\x13\x87\x82\xca\x19\x81\x1a\x818d@L\
+p*\xdal\xac\xc8,\xc8\xc1YE\xbe\x8e\x80\x80W\
+\xc8-\xc4&9\xff\xb72\x88\xf4\x1a\x13\x08\xd1KN\
+\xc2`G\xf7n\x97\xfbd\xc0qt\x09\x04\xf8|\x1e\
+0\x15Vt\xdc\xa9l\x91A\xfe{\x17@\x10@\x8b\
+Tl\xd8W\x0b\x13\xc7\x0f\x87\x8f\xf7\xc5\xe1 Pg\
+\xc1\x11\xf03\x0e}\xcf+\x81?\x8e\x22_r\xa4\xed\
+(.-\xd7\xb7v\xc0\xb2Iq\xb8V\xac/\xb6\xdf\
+\xf7\xabGH\x8e\xdb\xf8\xd8\xb0\x7f\xc0\x8a\x8d#\xc3x\
+s\x1d\xf4\x9a\xd2J\xc0u\xd3r\x00\xa9`O\xcaF\
+@\xf4\x05\xe9\x9a^\xd7\x91\xfc\xe1\xd8\xe1Pk\x836\
+\xe4V\x95\xe8U*\xc6\xbc\x12\xe8p\xff\x5c\x17\x07\x0d\
+\xf3\x83\xcf]\xd7=\xce%a\xb4\x86\xe6\x89\x02N;\
+\xa28x\xbd<X\xaf\xcf\xce}V\x8e\x80\xa2\x13\x0e\
+\xd9`O.F\xe5\xacrO\x94\xeb\xa9d\x83%\x10\
+\x03\xd1\xc2<\xed[\x02\xfa\x1ez\x90\x01pBle\
+\xce\x81\xe2\xf0s\x1d=\xa9\xd16\xda/\x1e\xa7\xcf\x83\
+\xa4\xf1:U\xf0y>\xf4\xbcq0\x10\xf0s?\xcc\
+g\x024 \xd6\xcc/\x12:\xda_\xd2g\x96\xca\xf0\
+\xff\xc9qg\x03%\xd1C \xc0s\x95L\x9f\xbfg\
+\xbcye|\x14\x88\xbb\xe5\x80\xde\xcc^\xae\x92\xc0\x9f\
+V\x12\x1c\x03\x02\xaam\xad\xfb\x0e\x22\xa3|\x0e\xdc\x10\
+K\xe66)-W \x88n\x0ck\xfe^\x9c\x0f\x19\
+y\xf37\xcd\xb3-re W\x0cW\x9c_t\xd1\
+M\xea$\x16t\xef\x07\x1cp\xccK\x02\x03\xc8\x82\xd8\
+/\xd8\xef\xd9\xe7\x987\xec\xcf\xaa\xec\xfa>y\xae\xfd\
+<c\xffb\x9f%\xb1\xda\xb3\x96s\xb0\x91\x18d\x9d\
+t\x09X'\xdeh\xe1\xe88\x04\x02H\x9c\x91f\x8f\
+Sk\x1b=tr\xe4-C\xc5y\xd5\xabvp\xfd\
+\xcc\x17\x1d\xe8v\xf0!c\xe2\xbe\xfb\x00\xb9Gp\xe9\
+\xfa\xac2C\xcf\xbb\xa0\xde\xf4r\x92\xf17\x1b}\xd7\
+{\xef}\x02\x15\x0c\x02\xd1s\xe4\x18\xec/\xf9\xb7\x83\
+\xc4\xc9\x80*\x0a\x95\x0b\xc8\x13/\x0ckz\xe6\xd1%\
+\x8e^\xd1\xf3\x9b\xf3\x8d\xd66\x106$.\xd8'\xe8\
+\x15\x15\xe4\xd6-\x04T@\x19\x1f\xc6\x93\x04\x19\xfb4\
+\x90gA\x9c\x0d\xb1\xa6\xa7\x9fs\x03\x87+\x02\xb4\xc3\
+\x9bJ\x0a\x0e\x1a\x09\x04~\xce~\x00\x9b<\xcf\x8d\xf3\
+\x87\xeb\xc1\x9f \x81)\x04\x84\xfd\x14z\x9a\xa5\x7f\xed\
+\xfd\x00\xffI\xf2\x84\xf6\x13h\xa9 \xc0\x94\x1e\xbc{\
+K!)\xd58\xba\xb2)\xb6}H\xf2|>\xea\xb9\
+L?\x0dK\x97\xb3GX\xb3\xef\xca\xb1\x1c\x8e\x0dk\
+\xd4%@p\xca1\xf4:\x87\x5cJ\xfb\xae[>I\
+\xa4q\xfe\xb1\xee\x94\xa0\x19_\x13\xd6\xe8\xc1\x13\xf02\
+\x8eJLPq3\xb94\xad&\xb4\x1c\x02Q\x95\xc3\
+nd\xce\x1e\xf3\x9e\xd1\xe3o\x92f\xf5\xa8\xe7\xf3f\
+\xab\xaa\xeb\xed\x84%\x09\x0fZ\x16hyx_\xb2\xf7\
+\xd6\xca{\xaeX\xbe\xb3\xceS\xb3\xb3S\x89\x07a\xa4\
+s2\xf7b_Y\x13P\xd9\x11\x7f\x83\x02\xea\xeb\x1a\
+\x99B\x02'\xfe\x8f\xc0\x5c=\xc3\xe8\x92\xcf\xeb\x855\
+\xbd\xba\xb7\x0d\xcb\xfa\xf4\x9be}\xfa\xebs\x13\x91+\
+\xb7\xe3\x97\xc2\x14\x08=\xaf\x92\xe4M\xfbJe\xe0\xf3\
+a\x15\xb2M\xa5\x1f?\xcc,\xe1\xec\xe7\x22o\x05\x12\
+\xed\xbf\xe7\x9ce_\x06\x01\x0c\x92D\x01x\x86\xbc\x07\
+\x92`\xd3\xb0t\x0c<-,}\xff\xd5\xb0\xf4z\xdb\
+\xc5Z\x8b\xb5r@\x98[\x13&\xf9\xd7\x8b\xa7,\xee\
+\xb2H\xf3p\xf1\x9fa\xb9\xf7\xfb\xff\xa2\xf7;\x1a>\
+\xa2\xe5\xc3\xba\xea\xf2\x87\xed\x97\xffWX\xfa\xbbG\x84\
+5\xaa\x06\x90\xbd\xc1\xb9\xa0\x16^TnH8\x01\xe9\
+7\xb4z\xff\xb0:\xcf\xe7\x13\xc3\x9aV\x10Z\xa2\xc6\
+y)\xe4\xd4\x16\xfb,\xf6]\xec\xa3y\xf4\xbe\xf4\xfd\
+\xea\xc9\xd6\x90L\xe1\x9f*\xeb\xbc\x03;!XQ\x05\
+`\x7f\xe79\x0co\x0dk\xb8\x01T\x99\x1e?\x9c\xec\
+#\xb5P\xb5\xf8^X\xc3\xc9\x05\xf9^\xdce\xa8_\
+\xec\x1e\x98\x85\xdcR\xf5\xd6\xdcR\x85\x0a\x85Z/-\
+sJ\x05\x99\xc0:Hp\xcf\x14g\xc4\x13\x1a\xc4\x16\
+\x88k\xc9\xbc/\xfd!,\xdd\xf7\xcf\xa7k\xa7\x9f\xe7\
+y\x9a\x11\x19N;\xe3\xdf\xb1\xef\x9d\x1eV\xa1\xec \
+\x1e\x9c\x98\xa05\x8f\x04\x18* wU\xef=\xdc=\
+\x82\xf0\xa7]#\x93\xd0\xba\x00\x0d\xb91-\xd1 \xc8\
+\x85\x18B\xf5`\xf1?a\x95,\xd0\xfb\x01\xfb>2\
+\xad\xa84l\x17V\xf7_\xcb\x84~9\xac\xb6\xa0\xf2\
+\x7fp\xc7\xf8\x9c\xa4\xc5C\xe4\x80\xe6d\xe2\x1c\xac-\
+\xd4%N\x90L:\xc8{#\xeb\xa8\xf0s\x8eR\xe8\
+\xc1\x8fP\x8b\x82U.X'j=p\xcb\x0f\xac\xff\
+\xb4\x0cQ\xe0V\x82a\xa5\xa1\x1a@\x19_\x95\xcdz\
+\xeb\xc3Q\x82\x1e\x12H\x08Ba\x994zx\x81D\
+r\x80\x13\x00p \xe2\xe8\xdd\x22GN\x90p;|\
+8<\xea\x11\xb3\xec\xc9\xda\x0aL8\xf0\xaa\xcer\xf9\
+|2\x99\x22\x1dse\x0c6e6r\xa0\x92\x04\x9c\
+=K?\x09\x04\xa0}\x9fZq\xe1\x8a\x0b\x9b@\x83\
+\x84\x02l\x8d8r@pY\x008\xb88D\xb5\x92\
+^\x1ed\x1f\xd0\xe1\xe8*\x83Obe\xbeV\xba\xc2\
+@B\x09(q\xb4\x098q|\x09\xe46wE\xbe\
+\x8c\x1b\xf7\x8b\x03M\xa5\x80q\xec[&x\xce\xdc\x07\
+\xff_\x138\xe5\xf9r\xddT@\x19\x07\x9e;\x90O\
+ \xb7\x04j\xf4\xd6p\x1f\x04lT:\x84\x0c\xf0}\
+Q\xd1\xe0 \xc2\x01\xd7+\xa4=\xae\xa4\xc21@%\
+\xa5\x97M\xe1z{\xf6rHG\xee\xf7\x8f\xe5|V\
+QO\x00\xc2K\xcb\x01\x15=\xb1!\xbb\xf2\xdcC(\
+q\x04I\x04\x5cU\x1cO\xb8\x07\x86C\xe4\x98nc\
+\x9d\xf8\xf2\xf9\xb7\xeft\xc2\x99oTxPI\xb8\xa3\
+\xe5\x01\xcb\xf3\xc7\x81%\xe0\xe0z\x08\xd8y\xce<w\
+\xe6Q\x9f(\xebT\x0d\xfc\xf7\xbd\x1e2\xd0\xf8m\xdc\
+\x22\xb1L/\xdb\xd7\xcf\xdf3\x0fp\xb4\x08\xb4HD\
+\x92!\x16\xdb\xb7\xff\x9e\xcf\xa5\xf5\xe4]\x85\x1cex\
+KX\xed\x095\xb4\x97\x83m;\xedG\xe8\xb3\xb3N\
+\x19\xcf^\x06\x10\x84\x09\x15G\x02\x96\xdb/\x97e\x84\
+4\xcf\xe3Y{\xafK%N\xf3\xc7\xc8\x0a\x90\x0e \
+;x%\x91@\xa5\xb2\x92-.CR8\x00\xa3\x92\
+Mb\x8e\x80\x9cJ\x1c$~r\x88]\xe9a\xffd\
+\x9f$ \xea\x03\xdc\xbe5\xa4_/\xdaOL\xba\xc3\
+>\xca\xfe\xda\xcb\x9e1?\xd6s\xab\x0b\x08\x942\x9e\
+ U\x18?HK\x7f\xa5}\x9e\x04pC^\x99\x9f\
+K\xfa\xabp0}\xff\xc8\x10\xa2\xae\xb2k\x09LL\
+Z\xa4@\xd8\xba\xe7\xc8\x84Q\xf9\xfc\xb2 \x8a\xec\x93\
++\xf2\xec-\xec\xfb\x1be\xc8c!\x19|\x82\xc8\xb6\
+\xe8%T\x0f\xaa\xf73*\xc6b\x9bw\xe2\x8d\xc4B\
+\xbf\xde8/\x81N\x02A~S\xd1\x09\x1e^=\xbc\
+fxM\xc3\x06\xff\xddN\x15\x03n\x06\x12b?\xd6\
+u\xc05#N\x82\xa0\xfe\xca\x09\x01%\xbe\xdc\x22@\
+\xc2\x15n\x1eZ\x14\xa4\xc6\xe1\x96,\x05\x02\xee\xa1\x15\
+b\xc2\x0e\xb4>\x7fxIX\x85\xcc:\x81\xc0<\x13\
+\x99\x91\xd7\x17\xc8\x04q\xb7\xd0\x22f\xae!t\xde9\
+\x87@\x100\xaf\x14\x00X\x95\x08\xce!!_\xf8\xbd\
+\xf5\xebi\x09`?\xe9 \xa8N\xf0p\xbd$\xb6^\
+\x14\xd6\xac\x13HG\xf1G\x98Wb\xdfv\xcf+\x15\
+L\xce\x0fU\xc8\xcc\xa1\x80z\x02\xfb\x05PzZ<\
+\xe8\x0d\x15il\xf2\xcf\x9e4<\xa9\xee[Vk \
+1\xf1\xb8\xb0\xf4\xf3C\xc3\x9aqS%m|iX\
+\xfa\xbb+\xc3j\x82\xc5\xaaO\x92\xf3\xcb\xbd\xee/h\
+\x10\x22$V\x19\x07\x15\x90\x86\x13\xc3\xd2\xeb\x8b\xc3\x1a\
+\xfd\xfaw\x87U$\xd1\xb8ZX\x83<R\xa5\x1e5\
+\x88\xe1\x8a\xb0\xca\xc90\xfc\xb28\xe8&UC\x15\xe0\
+\x03\xc3y\xc3yZ\xbf\xa74\x09\x08\x12\x07\x90 \xbe\
+\xb0\xf4\x94g\xd2\xbe\x0b\xc4:\x1e\x01\xf9\x09\xc9\x9e\xdd\
+\x9cOpp@^\xc6<\x06\xa1\x019\xa6*in\
+\xedc\xfd\xd1\x9a*rls\x10)A\xe4\x1e}U\
+b\xf9\x1e\x16\xf3\xf1\x05a\xb5e C\xb9\xa3\xf2\xb8\
+g\xb2=\xaa\xbc\xdd\xe2\xacd\xefV\xe0\x92>o\xbc\
+9\xacB\xab\x17{\x87U\xe4\xc3\xb8^XrGW\
+\x86\xe5\x80\xa5p\x00\xfc ,\xfd\xfdg\xc3\xd2\xef\x8f\
+\x0bk\xe6;\xfb\xa7\xd61\x9c\x0d\x9cG\xd3Ya\xe9\
+\xff\x9f\x1d\x96\x8e\xe7\x1f\xdc\xfa\xc3[S\x80\xb3\xd8R\
+\x01\xfeU\x8b\xab\x17WW\x19\xc5\xe9\x80\xe9KS\x9a\
+W\xd3!\xd3'\xa6O\xa4\xbf\x7fVX\xfa\xbb\xcf-\
+.Z\x5c\x94\x03\xec}\x16\xf7I\xafg'\x0b\x99\xbd\
+\xeb\xc2\xd2\xff\xdf&L\xfe\xdc/EF\x97\xe6\xc3\xe2\
+\xaea\x95\x04\x105\x01\xc8\x0a\xe1\xc2q\x85_\xeb\xc7\
+l\xfb\xea\x0d\xcf\xad\xbd\xcfiz\xfd\x85|\x99\x9e\x9e\
+\xec\x18\xb5\x80\x5c*\xb6\xff\x14\xef,vJ\xb6sm\
+\x85\xe0\xfdB\xd3(su\x049\xe9;\xb3lq\xb2\
+\xba\xaf\x84\xb6A\xa8\x1b\x90\xc8\x1e\xb7\x0fk\xe4I!\
+/\xdd9\xd9\xdd\xab_a\xb9[\xa9\x1d\xd8\x8f|\xc9\
+\x8a\x17gd\xc0\xdb\xb5\xaf\x05\xa2,\x90T\x9f\x1b>\
+;|\xbe9GiQc\xfe)\xd14\xbc\x22lU\
+u!Z\x88\xc6\xe3\xc2\xd2\xeb\xd3\xc3\xd2}\x9f\x1fV\
+\xcf\xb7\xe9\xd5\xd3k\xa6W7H\x04Z\x9a(\x5c\x92\
+\xf8%\xee!\xf1\xa2\xbfw\xdc#\xbf-\x9dWE5\
+H\xeb6\xf9H\xa5\xa5\xe8\xcc\xb0\x86;\x89V^d\
+\x8c\xe5\x17.=i\xe9\xa8\xa5\xa3\xd2u}5\xac\xb6\
+\xd6L\x07\x8652\xa5T\xd6!_\xc5/=*[\
+Ex\x08\xb9\xc4}@\x1e\xba8:\xac)L\x22\xbb\
+\xc8~N!\xe1\x05a\x0d7\x00\x09~\x12\x9e\xa8\xe0\
+\xc8\xdf\xcbH\x9a\x07U9\xf6y\xf7\xb0\xf4zTX\
+s}\xf8\x9f\x22\xfb\x9c~\x10\xd6 e\x98\xef\xa8^\
+\xa0\xb2\xa2D\x15\x89\x81\x95\xab\xc8\x01I\xae`x\x7f\
+X<\x10M\xe0[t\xb0\xe3\x00\x90ic`\xd4\xbb\
+\x07B\xc0\x10\x12H\x18\x9e\x9e\xad:\xfe\x7f\xefz\x89\
+\xe9\xc1f\x22R\xc1\x10\xc9\x91\xa1\xba\xab)\x00\xbb\xb5\
+\xfc\x7fz\x9cEfk\x90\xe7F\x8f2\xac\xea\x1cx\
+T&z\xf2'z\x01\x91\xa7\x91^\xa2\xf5O\xd7Q\
+\x82B\xbd\xd5\x86\xb2<\xdfd\x86%\xb0\xc2\x11\x80,\
+\x87\x80\x00Hv\xcf=\x00\xb4\x97J5\x81\x0d=\xdb\
+r\xbc\x9c\x08!\x01\xc0\x83\xc7Q\xe4\xb5\x0f\xf0p\x90\
+\xf9\xba\xb9\xd3\xa7\xe6\xfdx\xe5\xb9\x10\x10\xb1`\xf9\xea\
+\xe5\xa2\x08\x84\x81\xf8\x02\xb9&\xb0!\xe0\x15\xd9\x8c\xc9\
+\x97\xdc\xc3_t\xab\xd3\xa4/\x0e\x1f\xcfe\xabR!\
+pE\xa6o\xd1\xe8d\x02\xfd\xca\xfd\xe9\xf99qB\
+\x80\xc1x\xe3xS\x09DN\x8aD\x03\x81\x18\x81\x1e\
+\x95\x0e>\x1f\xe4\x01\x9c\x00\xf4V\xb3q\xe2\xb0\x91\xf0\
+\xe1\xfe\xc9\xe0\xf1\xbc\x18?\x02\x96\x9f)\x00\xfe\xa9 \
+\xa8\xf4\xa0\xd3\xd3\x0f\xf4\x9b\xc0[\x9c\x0dCO\xe2U\
+\xf5\xc1\xcbu\xf7\x95U\xc6\x83\xbf\xeb\xa0\xd7&\xdf$\
+\xa1\xc3\xf3b~\x11\x902\x8f\x09`Ht\x91\xc8\x03\
+\xca\x8cc\xceuB\xb6\xa8\x8a\x88[\x0e\x80\x9e3\xff\
+\x08\xbc\x98\x87\xeb:\xa1Q\xae\xf3\xa5a\xe9\x15\xb9\xbd\
+w\x15\xb2\x13\xb7\x22\xf0y$\x80`K\xa7\x82\xf17\
+\xbd?\x01u\x87\xb00y#\x010\xf3\x87\xd6\x8f\x9e\
+\xeb\x03\x87\x89\x84\x00\x81>\xf3\x9a\xf9HBi\xe7\xae\
+\xb5\x046m*q\xa8\x890~=g\xc4\x0a\xefw\
+\xe5>\xe8\x19\xa6\x82\xcf<\xfd\xd7\x12\x00\x18\x12M\xa0\
+\xcd\xfa\xe2\x15\x19H\xd6)\xc8\x88Nf\xd0\x81?\xbd\
+k\xb0\xee+\xd0p\x00D\xe0\xde\xf5T\xfb\xbe+b\
+\xa8\x8c#\x88\x032\xfa\x8c+\x81\xd3\x8f$;\x04\xe4\
+]\xf7\x99\xd5\xc1o)\x15\xe2\x8c`\xebHN=\xbe\
+\xc8c\xb2\xfe\xb5n#|\x8a\x00\x8aJ\x89\xd5\x0a\xf6\
+Ka\xe6~\xe2\x02\xf8Z\x93\xb1\xe7z/\x13\xc9\x1a\
+\xec\xebb\x03\x9f\xf6\x9a\xf6\x9e\xf6n\x1c\x0a\xe63r\
+\x98$\xa2@\xb6\x81\xa0\x814\x92\x00\x93\x84\x8e\x02\xef\
+\xe1\x85\x0a\xb4\x80\xd0\x93\xd8>D\x09\x02\xf6\xdbo\x15\
+d\xcd\xfc\x08A\x15i\xa1c\xff\xe1\x5c\xe6\xfd\xd9\xdf\
+\xfe\xa2}]\x10\xd9U8\x0d\x90\xe5\xa4B\xcc\xbc\xe0\
+\xf9\x8b\xec\x0a\x08}\xa4)r\xa2B\xe4\xc1~\x1e\xf8\
+\x0f$~\xf9\x9eu&\xa8\xbd+\xd6\xb0\xe5\x8b\xd5\x9b\
+V\x01?g\xe6\x13\xf3\x8e\xfdN\x15<\xc8\xed\xdc\xba\
+!\xc7\xd2\xa4\xb0p \xb0\x0fV\xce\x8e\xb2\xce\xa84\
+\x91`\xe6s\xf1[t\xee\xb8\xc2F\xc0\x08r\x12\xd9\
+\xafC$K(\xb5\x08;\xae\xec\xe7$\x0c\x8e/\xc8\
+\x93\xf9\xf4\xb0\xe6yK'\xde\xa4z\x97\x865\xb2\x86\
+r<\x1d\x80\xc3\xb1\xc3\xb8~$[M\x903/a\
+\x9b\xa6%\xe2\xc3a\x15I\xe0\x0a=\x15E\x12< \
+\x09.J\x81\xc6g\x1b\x7f\xaa\xce\xa7\xb2\xef\xf1w\x9f\
+\x0b\xab\x9c\x01\xb4R\x01\xd9\x85\xfb\xc9\xb2e\x7fV\x0b\
+\xc0wJ\xcb\x02\x05&\x10\x1d\x96\x9f\x8c\x1e\xeb\xcb\x1b\
+6s\xe4\xd5T\xe1\x9b~\x14V+\x90\x04\xecp[\
+\xe5\xde\xf5\xbf7\xa4\x89\xb4\xaa2\x0f\x94\x80\x8e\xc6\xc7\
+\xdc\xfa\x08\x07\x0b\xf3\x19\xce\x83\x18\xf7\x975\x95EZ\
+S>!\x15\x09%T\x18\xdfUZ\x1d\xa9X\xc3f\
+\xae\x0a\xf1\xf4\x86do\x14d\xfb\x0f\x0dR\x8bD\xd1\
+\xc5\xb9Y\xd4\xe4y\x8b\x93\x17\xaf\x5c\xbc2}\xff\xb9\
+\xe9\xb3Sz.\xe3\xe9\xe3\x19\xe3\x19\xe9x\xbe9\xac\
+I\xc4*\x813~z\xfc\xcc\xf8\x99:\xde\xd3\xa7\xc3\
+r\xc0\x92\x91A\xc3\xe1%\xf0\x04bN/\xb19\x0f\
+6.\xe4\xe1\x8b\xbf/n]\xa4\xf9v\xebFa\xe9\
+\xf5\x98\x82\x04\x98\x1e\x12\x96^\xff7,\x8fc\xde\xc7\
+\xa7-\xc3\xd2\xff\xdd\xae \x04R\xb8\xff\x9e\xc5{\xd2\
+\xeb_\x16\x7f]\xa4y3\xfdG\xb2t\x1d\xd3\xf7\x93\
+\xa5\xc0f\xda(\xd9\x86\x15\xa2o$\xae\x0aJ\xd3\x97\
+\xc3\xc4Ips\xe5\x04qeTPp\xcb\xafA\xe6\
+\x19\x89\x95\xbdj\xeb\xc5\xf4\xe6\xb0\xda\xea\x94\x13E\xe9\
+9,n\x08K\xbf\xbf(,\x93\x1c&K\xdf\xdf1\
+\xacA\xc8\x80p\xd2<\x1f\xaf\x08\xab\xfb\xf5\xf8\xea0\
+\x91\x8a?O=\xfd\xd7Tr\xfbEbf\x00\x00 \
+\x00IDAT\xc2\xf9\xc8\x82\xdc\xc8=\xf5\xc5?-\
+\xad\xa8\x14\xce\x90\x8b\xa4`r\x8e\xd4\xdb\xbeV\x0a\x1e\
++\xbe\xa8\xc2\x17~\xf0\xffh\x7f\x15\xe2\xcf\xb2\xac\x92\
+\xf1sb\x0f\x99\xbc\x9d\xac\xcaT\x10O:'\x88{\
+\x86?\x86\xa5\xfb\xb80,W\xc4\x8f\xcb\xa4\xccBD\
+\xb1_\xd0\x22D\x22\xc1\x01,~\x10\xf1\x9f\x10D\xe6\
+Tx\xb8z\xda)\xf0\xbd\xa3\xac\xd3\xe1a\x92\x8fG\
+\xf6\x8e\x02'-IZ\xb7i7\xca-M\xe3\x0da\
+U\x1e\x95\x16\x9e\xc5\x97\xc2\xaaZ\xc0\xb0[\xf1;\x87\
+kJ\x8f?2\xb5^g\xf8\xcb\xf8+\x90\x89Je\
+d\xf1\xd6\xb0\xa6\xf7^\x88dZ\xc1\xc6\xcd\xc2\x9a\x16\
+\x00de\x85\xe8\xb2Z\x02\xc8oH\x0d\x89+@\xa6\
+\xdf.\xacI\x84A\xca\xa9B\x17\x85{suP\x00\
+C\x15\x07\xa4<\x85\xf0/\x94\x84\xf3J\x027tQ\
+\x81\xa8\xe1\xa0\x0f\xd7\x8a\xe4a;A\xd4?*y\x0d\
+\xe4\x0f\x04}\x1c>\x1f\xd6\x04b\x04\x8a\x1c\xa48b\
+\x7f3\x02\xa08\x88@:9\x90T\xf9H\x8f;\xf7\
+N8p\xdf[\x1b\xaa\xd8\xd8I\x04\xb8\xc27u\xec\
+\xc6\xd7j \xbe+\xf6\xf1\xef\x08\x82\x01\xc4\x0f\x07G\
+= ^0Tnp\x88\x0f\x16\x14\x9c\x1eM\xd4\x0a\
+6\x0f\xc1\x8c\x7f\xe0\x10 [\x07$\xe8nr\x1c\xaa\
+L[q\xe8\x09\xa4p\xe0\x09\xa4\x08D\xb8\x0f9\xd0\
+\xd6WVF\xcc\x95< \xecT\x08!\x8d\x03zK\
+\xc0Le\x03y\x08A\xa9|\xfd8\xdc\x9bv\xac\xf3\
+\xfc\x9c\x03\x9d/\x02\x02\xae\x0b\xfdfH\xb8X88\
+d\x8c\x0f\x0b\x7f\xed\x02QY\xb1q\xe9\x0d\xce\xd7\x1a\
+\xb7\xfd=\x1dP\xcc\x1f\x02o\x1c\x0c\x02\xe7\x9e=\x9b\
+\x89\x8f\x8c\xcfm\x86d\xc1A\xa0\xdf3\xbe@\xec\xb9\
+.\xe6%,\xa4<\x1f\x91b\xba\xb2\xde\xcbt\xed\xa9\
+\x84\x01\x09&*\xc78\xfe\x1d\xd9_\xa8\xc9.\xe3|\
+`\xbe\xdf$5\x85+$[tMA~8\x93\xda\
+\xf7\x82\x93 \x22\xc0\xfd\xab\xc9\xf9\xca<\xaa\xac\xec\xc5\
+\x81\xe970H\xc9\xf8y\xcf\x12O\xa0L\x8b\x02\x09\
+\x16\x1c\x22\xee\xff.\xcbe\xf3L\xa2\xc7\xfbP\xf9&\
+\x90$\x91\xc08\x12\x90\x12\xd0\xe1\x08s\xfd$\x92H\
+\xa0\x00=\xbf\xb0 s\x82\x02*H\xa0\xe8\xb96\xcb\
+\xbf\xe4\x02\x93\x1b\x99\xbe\x1ah=\x89/z\xdeq\x8c\
+\xf9\x5c\x12\x17\xb4PTR?Z\x01\xca\xfa\xdd\xa1\xeb\
+\xf5\xef\x03Y\xe6\x0f\x01/\x07\x1e\xeb\x99\xf1\xa0\xc7\x18\
+\xe8\xf2\xbd\x14\xf8w:\xf5\xe93J\xc0\xba\xadU\x06\
+\xca\xf8\xf1\xdcI\xcc\x11P\xfdN\x0e%\x08\x8f-u\
+\x1d\xf4\x92_#\xc84\x09\x1e\xd6\x0f\xefCe\x8f\x8c\
+<-\x09TZ\xa9t\xe2\x88\x90\x08\x22\x90\xa2w\x8d\
+@c\x83N\xdd\x04\x07\x14\xa8 \xfb\x14\xfb\x17\xcf\x8b\
+\xf9\xa2\xebNaS\xe9\x15\x96\xce\xb2\x7fO\x02R\xba\
+\xbffA\x86d\x87u\xcez\xe4\xfca\x7f\xe1\xbcQ\
+\xaf%\x5c!\xc3ea50BN\xca$x\xcf.\
+\x88\x94\xa0\xac\x0a\xd2*\x93'}e\xbc8zs\xcd\
+9\xc2\xf3\x00\xc1\xc2\xba\x00\xe9\xa0Dv\x1a\xfb\xb2?\
+\xb2\xbf\xb1\x9e\x09\x90!\x93C}E\xbd\x97\xc3\xb9\x05\
+Jo\xbdv\x9e+\xeb\x94\xc0\xef{:\xff\xbe/d\
+\xcd\xd7\xd5\x03\x8e\x83\x87\xbc\xd0\x17\xb2U\x07\x9b\xf3\x19\
+(\xbez\xc5qp\xe6O\x845l\xee\x01)\x8d\x96\
+\x803\xb3\x99m\xd8\xbd\xda\xc8q\x81$\x04\xc2\xcf>\
+\xc3\xfcb>\xa0\x93\xad\x8a\xb2\x11A\xac?\x90Z@\
+,U\xb1v\x02\x0f\x95\x019\x8eV\x13\x00\x92\xae\x8a\
+\xaa\xfd\x0c\x12\xc3\x9f-\x81-\x09\x22s\x1f\xf4\x884\
+H0U\xe1\xb6^6\xdc%\x82\xda\x0f_)\xfb\x15\
+\xe76\xe7\xa6I\x85Y\xef\x90T\xbd7\xacI\x0c~\
+:\xacAf\xaaB\x8e\x03\x0dTw\xb8)\xac\xe9\xf5\
+W\xa0c\x87\x93\xfd\x95\xc4\x05\x8e=\xc8KU\xa8\x9c\
+\xd8R\xa5\xdd\x5c\x05\x90_A\xea|\xdf\xe1\x80\xe1\x80\
+&\x01#r?\xd6\xcf\xf0\xe6\xb0\x06\xe9AA\x08\x84\
+\x0b\x8e.~\x06\xf3\x82\x16\xc8\x1e)\xc9\xf3\x16\xc9o\
+\x1a\xf533\xb2\x80\xeb\x97\xdf5\xbd(\xac&\xa2@\
+\xe0\xc0-`U\x84\xae\xe7\xd6\xea\x1bpS\xf1=\xcf\
+C\x5c\x13\x86`s\x1f$\x06h\xed\x90\x9f\xe8D.\
+\xfb#\xad\x06\xe2\xfe0\x99\xa9\xf6\x85\xf9\xa1a\x0d9\
+c\x84m\xe77\xeaGJ\x0c\xd1cNO\x7fh\x18\
+\x04\xc4wziX\xda\x87\xde>\x9e:\x9e\x9a^\xbf\
+>^2^R9y\x8c\xd4y\x5cX]\xaf\xe3z\
+\xe3\xbac\xf2+\xc6O\x96\xc0\xce\xeb\xff\xd7\xe5s\xc7\
+-\xc6\xcd\xc7\xcd+\x97\xcc\xbce\xa9\x84\x0e?\x08K\
+\xd7q\xdf\xb0\xb4\x9dm\x1a\x96\xbe?!\xac\x92\xffM\
+?L\xf6\x83\xdc\x03\x7fR\xc8\x1f.^\x15\x96~\xfe\
+\xa7\xb0\xf4\xbaqX\xfa\xf9^\xc9\xd2|\x98\xce\x0e\xab\
+\x15\xfb\xe9\xc5a\xb5^F`\xe7\xc0[\xfb&2\x88\
+\xd3\x16\xa5\xd2\xee\x8a\xbeHA\xb3\x9c\xe2%5\x00w\
+\xe0\x84\x0e|<\xef\xaf7\xad\x02\xb0\xc6\xd3R!\xce\
+\x02\x12K\x96\x8f\xa5P\xc5yJ\x1c\xa5\x96\x1d\xd6\xad\
+e\xdb:\xe4\x07\x5cR\xc3Aj\xed\xda%\x9d\xc2\xbb\
+6\x9cV\xb4\xdcA\xd6\x0b)%\x88\xd9(c\xfeg\
+n=+r\x86JX\x0d\xbb\xa4\xf8c\xe7\xba\xce\xe1\
+H\xe0\xb9\x19\xd2N\x82\x98\xf7\xa7\xd5F\xef\xe3\x02\xa9\
+\xd6\xbd\x03v\xd6\xa5\xfc \xbf\x1f\xf1\x13r\x97\xf4\x0a\
+\xb0\x1e\xb4\xae\xdd\xb3~\xaaz\xe0{\xd2b\xbdN\xbf\
+\x0dK\xf3\xf0\xec\xf1=\xe3{\x1a\xce\x11\xd6\x93\xe2\x99\
+\x14\x86?lH\xcf#\xcd\xe6\xb5\xc7\xb5\x9by\xfcq\
+\xb5\x16\x89\xab`\xf1\xf1\xb0<.y\xff\x9f>\x1f\x96\
+\xbe\xffbX\xe5`\xb0_\x85\xbf\x8a\x7fCbZH\
+\x8a\x9c(zKmm\x1b\x06\xf9\x9f\xf2\xd7MnK\
+\xab\xd7/\xc3j o\x8e%\x9d\x1f\x90\xe5Z\xfeS\
+\xfe\xc3\xf4?a\xe9u\x8f0!\x98N\xa8-D\x8e\
+g\x88\x97\xd8\x8f!\xcf&!\xaf\xb8v\xa5\x1f<\x10\
+w6<\xc8't0\xcd\x9f-\xa4)\xd6\xa3\x04\x1a\
+tZ\xe9\xf5\x00\xdaa\xc7J\xba\xaf\xe9\xb0.\x99%\
+\xa0\xf5\xc8d}[\x0e%\x81\xdc\xd3\xd4;\xce\xc1N\
+%\x82\x03\x1f\xc7\x91\x0c\x15\x07\x03\x8e-\x99T\x02\x10\
+M\x8ca;\xc9b\xa9\x87p\x95\x1ea\x02LX\xa3\
+\xa90\xf4\x95\xe5*3U\x0e\xba}5\x91\x99\xd98\
+\xfa8\xa68jb#uf\xb9\xef)\xa72K\x00\
+A@Dee+\x91g\xdd[\x0f\x16\x07\x09G\x12\
+\xa8=$[d\xc6\xd80\x18\x0f\x02\x06\x1c\x00\x1cr\
+*\xd5\x04B\x82b\x0e\xfc?\x8e\x0e\x1b\x1b\xf7G@\
+\x84\xde,\x07)\x15\x19*\xe2}\x8f2\x15Y\x1c?\
+\xc6\x97\xfb\x10\xa4\xde\xa4D\x04n\x04(\x04\xa2l\x14\
+\xb0@\xa3\x06\x81#rs\x81\xde\xcd\xbf\x14\x84\x1by\
+B6\x04\x1c\x89\xfb(\xb1\x049XE\x16\x94/\xee\
+\xf7\x9f\xe9\x95s=\x04\xce\x04\x84$nh\x11 q\
+\xc3s\xe6\xff%\xff\xe7\x0a*\x8e\xfa\xa4yu\xb1z\
+\x89y\x8e\x0a\x18S\xb8[\xa0\x9e\x1b,\x9fG\x86\xec\
+2\x1fy\xee\xb7\xd1sf\xddl\xea\xc0\xb5|\xcf<\
+\x5cky\xcf\xab\xe7\x07\xe3\xcd\x17=W\xcc;6v\
+\x02k^I\x14\xb0\xde@\x1a<\xacl\xd4v\x84\xea\
+\x81U\xa0\xdaT\xbc\xc5\xde\x0dI\x8d\xdf\x87\x84\x08\xaa\
+$r\xf8-s\xb4\x8e\x11\x0f%\xd1\xf2W\xcd3\xe6\
+\x07\x95VH\xfd\xf8<\xb1\xdc\xbb\xe7\xbeS\x83p\x80\
+E%\x0e\xa8>\xfbV\x9fX`\x7fc\xdd\x91\x18\x90\
+\xfc\xa0\xc9{ \x19#1\xb0\xbb\xd6\xfb.j\x09`\
+\x5c\xa8\x1c\xffQ\x10\x7f\xd6\xc7\x0d\xea\x89\x85d\x8eq\
+\x16\xc9\x16\xcf\xd1\x01\x1c\x88\x0b\x12-\xeco@\xcb\xe1\
+&\xb9P,\xdc\x1fT\x8f\xe5\xf7\x04-\x87U_\x01\
+\x95\x0f*\x9e7\xfb$\xf3g\xf3\xe5\xf3\xc2\x1c\x08 \
+\xbd6\xb3\xcce\xf9\xff\xd5;9@\x90\x22\x04\xac\xd2\
+O7\xf2\xe4\xe7\xdaO \x9d}j\xa9\xc0\xa4\xbd\xb4\
+\xfc\xbfHr<\xdeo,\x90z\xdf\xe7\x05a\x8d\xbe\
+\xae \xcd\xc8\xfd\x0d\x7f\x0bK\xafo\x1fN\x1dN\xad\
+\xec\xeb\x96\xe3\xd1z\x82[\xc0*2\x90\xd9A\x22)\
+\x07\xc5\x15{\x02~\xf6A\xf6E\xf6\x15\x02oz\x5c\
+!\xc1\x83u\x19\xf9:8\x0bh\xc9\xa3\x07\x132\xc4\
+\xeb\x95H\xd9Y\xf7O\xc0\x0c\xbb\xbf\x10\x7fT\xc8\xad\
+\x06$\xd99W\x0e8\xef\xf0\x1bHhQ)\x05I\
+AB\x86\x96\x1e\xe6\x05\x95QZ\x14@D\xe0\xc8B\
+\xe6H\xeb\x18\xfb\x1e\x90O\xceSA;\xad\x22\xc3y\
+JK#\xe7 \x01=PL\xf5\x98C\xce\xe4\xf1\xa5\
+\xe5\x00\xc8\xaa\xb8\x02\xcc\x89\x00\xfb\xfe\xf3\xc3\x9aD\x00\
+\xd0|\xc6\x99\xfb\xe2\xf3u\xce\xc011\xee\x1f\xd6$\
+6qd\xc5\xc5\xe0\xdey\xe6\x95\xf6\x9b\xf1\xa9a5\
+\x01\x05R\xc5\x15t\xb5\xb0\x0c\xef\x0bk\xcek\xb8\x12\
+H\xbc\xe0\x182\xae\xb0\xcb?*\xac\x16\x0c\xd0\x8d6\
+DV\x8e#\xeaPN\xf8(\x11\x8b>\xb8\x11B \
+\x0a \xf5\xfb\xef\xb0\x069\xaa}{\xde7\xac\x09\xfc\
+i\x85 \x01t[]\xa7\xfc\x22\xcb4^\x93\xc2\xe9\
+p\xc0\xcf\x0f\xcb=\xec\xcf\xcd\x10\xee\xef\x87^@E\
+(\x8dw\x0dk\xceC\xa0\xc9$\xe4HT\xe1\xd8\xf7\
+\xe4\x98J<!\x03\xed\x849\xe7\x82\xaek\xfah\xb2\
+\xf4\xdc\xc6\x0f$;\xaf.\x13\x93\x93)\x81\xe3}H\
+\xfb\xb2+\xea\x14.X\x1f\xf8_\xb7dLk\xa9<\
+^][\xbarO\xf3\xea\xb528\xbd$,}\xfe\
+\x05\xc9>\x9c\x03\x9b\x17\xcf/\xae\xe7\xff\xe2\xeea\x92\
+\xef\xbb\x8f\x02\xf2t\xde\x8e\x97\x85\xa5\xd7\xcdS\x88\x9f\
+\xf6\xe5\xf1YENr~JX=\x17\xc6\xe3\xd3o\
+\x9e\xd5@\x9eA\xea\xe8>\xa6}\xc2j\xef\xff\xad\xcf\
+\x0b\xcb\xc7\xdf\xbcH\x031\xbd}:uz{&\xfb\
+\xcb-0\xf3\x99e\xdf\x9a>\x14&\x08\xff{\xd3\xcf\
+\xf7K\x96\xd6\xc7\xe2\xc8d\x81\xe0\x88\x82\xecT\x13\x02\
+Nx\xa8\xd2L\x0f?\xad+T\x80\xa9\xe0Nw\x0e\
+K\xaf\x0f\x9b\x1e>=\xbc\xf9|8\x19\xa4\x02cd\
+\xde\x9ds\xaadE\xfcu\xfc\xfdtfX=w\xa6\
+\x0f\x84U\x12\xd8\x1c\xe5\x9c\xd3\xcc+\xb8\x12bV\xbd\
+[\x09\x8cck\xc58#\x99\x02a\xf3\x8e\xb0\x9a\xb8\
+c\xfd\x99\x83\xe2\xaba\xcd\xfbQ\x80C^\x0f\xce\x82\
+\x1bJ\xeb]\x9e\x07k\xe58.C\xcd\x87o\x0f\xdf\
+\x1a\xbe\x95\xf7\xe3Ry\x96\x1c\x9c\x13IW\x865\x15\
+iTN\x04q\xf7\xbe\xa8\xd6\x8dy\xed\xb0Z\xa0r\
+B\xe0\x1di\xd5\xbe\xa3\xb6.L\xaf\x0f\xcb\xe3\x9d,\
+\xdd\xe7\xbe\xe3>\xe3>9\xe1Qd\x0du^\xcc\x0f\
+,\xdc\x15+\x0e-~\xb7\xc9\xd6Ah\xca?6\x97\
+\x92\x12\x99A5\x19d\x93i7.\xdc)\x14\xdc(\
+,\xfe\xb7\x12\xb9\x22\xb7\x1c\xfe^\x90P\xe3\x1aaM\
+\x8b\x1e~\xce\xeb\x0b'BhY\x04rdqc\xb2\
+?4~\xae\x12w \x8e\xec'\xc1)\xf2\x95\xb0\x8a\
+\x8c\xb3\x5c\xa2\xae\x9f\x04\x98\xcf%Z.\xe5\xff\x0c\xef\
+\x0a\xab*\x06\xc3ua\xcd}\xc1\xbd\x03\xa7\x89\x0a\xf6\
+\xe6\x06\xfa\xd7\xb0\x86;\xe0\xaeaM\xcb\x9e\xae\x9f\x02\
+\xd9\xb0oXz}eX\xcb\x01\x10\xee\xc8\xdd+\x14\
+\xc9=\xd4\xc8\x99\xa9\xb7\x88\x89:n\x1b\xd6T|\x99\
+0l\x94\x1c\x80\x0aX\x0d\x85\x10\x89\x9d\x03;\x1cj\
+z\x9d\x098q\x88q\xd8\xc9lTHq\x09\xa0\xe0\
+\x22\xa8\xa4\x81e\x83\x06j\x8c^\xbc2?\xdc\x87\x1d\
+P6r\x0d\xb8Io q\xc2\x11S 8\xbf\xb5\
+dzL\xa6\xd0\x93T\x91P`BR\x09\xe3~\x99\
+@\x04\x9a]\xafq\xff\xe0}\xff\xdc7\x15g\x02f\
+\x02\x10\xc6\x91\xf1\xa3\xc2\xccA\x8f\x83\x09\xfb\xb9\xee\xdf\
+\xac\xa0@\xbf\xb7\x94C\xb7\x9d\x0e\xa0\xbb,\xd7uw\
+`\xd3'd\xa8T\xf1\xda\xe9{\x9b\x14\x87\x80\x1dH\
+\x0c\x01R'\x9f\x06\x14\xda\x08\x0d\xc6\x8f\x80\x96\xf1e\
+\xbc9\xe0;\xf6{\x02M/x2\xf5d\xf2\x91\xfb\
+xA\xc9\xf8;\x10&\xe1\x80\x0a\x02\xcf\x91D\x13\x8e\
+:\x09\x1b\xae\x03d\x8b^\x91m\x01\xfai\xc7\x86q\
+]M\x09\x06Z[H\x10\xf1\xfe 8p\x08p\xb8\
+\x81h\xa9\x95\xa2\x91\xbb+\x8e0\x01\x14,\xe07i\
+}\xdc\xacyJ\xe0\xb1\xbe*\xdf\xa85T\xa8yy\
+\xbf5\xbbD\x00\x8e%\xeb\xad\x7f~ S\x08\xech\
+E\xc0\xf1\xa4b\xac/\xeb\xd6\xf3\x9c\xfb\x84\x14\x07\x17\
+z\xb0\xb4X(\x01\xe1\x16\x19\xee\x87\xf9Ab\xa3\x92\
+\xcc-\xe7\xb4\xc0q\x07\xa9C\x80\x0dB\x83\xfba\xdd\
+\xf5\xe4^T\xae\xf9}\xc7\x09\xe0\xff\xaf\xf2\x8ee^\
+\xd1b\xa0\xfbv\x22\xaf&\x16\xcaz\xa2\xf2wo\x91\
+\x82\x11p\xb1\xbf\xd1;wO\x05X\x7fT+\x0b\xf3\
+\x96\x0ar\xa7\x0e\x92{\x0b[\xb2C\xd6/\xd7\x89\x03\
+\xac\x80n \xc0\xdeM\xc8\x04\xe6\xe5\xea\x9a\x97 '\
+\xa8\xacRY\xa4\xd7N\xebr\xd8R\xe3\xb5\x89\xf67\
+\xc6\x0dDE\xdf\xd2\xc4\xe7\xe2\x98\xffR\xad2$\x02\
+\xf6\xd4\xfdBvx\xb5\xa0y@\x96\xa9 |\x5c\x09\
+d\xe6\x1d\x01)\x15\x14\x12\xd6\x90\x07J\x8f\xda=\xee\
+_\x0ak\xe4~\x9e\x92\xcd\xa4NpxP\xc1\x98/\
+\x94\xfe\xef\x01r\xdc\x08\xf4\x95X\x9b\xaf.\x89J\xef\
+7\xc8/\xf5\x88\x11d\x83\x08\xbc\x09,\xd9\x07\xd8\xcf\
+\xb7\xed\x10S\xecO$\xe8$\x8b\xe7\xf5\xa1\x80\xdf\xe7\
+\x03\x89=\xc8x\x91\x9f\xdaZdL\xf8\x01\xb4\x8a\xf4\
+\xdc&\xbc\x92P\xa0Bt\x87\xb0&\xe1\x8bl\x1c=\
+\xe3$b\xa9HP\xc9\xe3|d<\x80T\x13\x88S\
+I\x139\x96[\x05@\x8ep_\xaa\xfc\xbb%\x11\xa4\
+\x22=\xaf8\xbe\xacG\x91K\x19Q\xc8\xef\x09\x10A\
+\xda\xe1\x90\xf3\xdc \xcb\x22\xc1\xc0\xf9GB\x02\xf6|\
+\xae\x8b}[\xf3\xca\xe4`O\x08k\xf6\x03\xf6?\x12\
+t\xf8\x1b\xa8\xd7\x90h\x87\xb3\x89\xe7,\xc4\x859>\
+\xd8\xafy\xce \x14t\x9eY\xed\x89\xf3P~\xce\xf4\
+\x99\xb0\x06Q\xf0\x9d\xb0\xea\x1f\xd2B\x01\xe7\x0d\x89\x01\
+?7\x1c]\xf6\xb9\x0b\x0b\x82e\xde5,\xbd\xde3\
+\xac\xfa/\xd6\xb9\xa6\x22\xfd\x8c\xb0\x9c\x18,\xea8\xaf\
+\x15;\xbf\x12\xe6\xf3\xed\xe7M\xe6\x22\xff\xf6\xd2 I\
+$\x81\x93\xdc\xef#\xc3\x01\x1f\x1f?>a||\xae\
+\xe8}!*z\x86\xfe+\xa0qO>\xf7\xafqr\
+k\x08~\x16\xa4\x8d\x14\x02\x18?\xf6aZ\x00H|\
+\xc4\xec8\xa0V\x04M&\x07r\x0d$\x01\xba\xe4 \
+K\xf0\x9f!\x97\x04\x89J!)8\x05N\xae\x95\xc9\
+\xe9\xa6d\x7f\xa9\x89\xbe,\xb3{O]\xf7v\x9aG\
+\xf7\xa8\xad\x09\xa1%\x10\x09\x92\xf1\xc4\xf1e\xe3\xcb2\
+\x19_fi_\xfaT\xa9\xd8\xd2\xcb>\xde\x14\xd6\x90\
+**\x91\x01\xd9\x99\xf5\xe2!\xe5\xc4\xffD\xed\xe1\x81\
+a\xe9\x98\xdds\xb1\xc7b\x8fJ\x0e\xb8x|Xn\
+M:4\xc8\xcdrE\xfe\xe8\xfa\xf7\xb9\x15\xe3\xd6Z\
+Q_\xbc(\xac\xa9x\xae\x0ckT\x05D\xceF\xa5\
+\xde\xbd\xf8\x0f\x0ek*\xb6\xf2\xb7P\x19\x98\x1e\x93\xec\
+\xb1BV|\xb8&\x00P\x0f2\xbb\xba\x12\x81Yf\
+\xf1\xf4F\xf5\x02\x7f\x9c}\xef\xbf$3\xa8\xb8a8\
+T\xac\xef1\x1f\x7f\xd2$\x1a9\x8fE\xc2\x97O\xb3\
+_6\x1c\x04G\x87U.\x19\xc7]\x92q\x04\xd9\xe4\
+y\xc1<\xfcyN}W\xff\x0e\xff&\xca\xa7_Q\
+b\xe2\xda\xec?\x172\xc9\x08\xb7\x1f\xde\xf8Uj\x01\
+\x22\xb1\x0a\x12,\xcb.\xae\xd5\xc8I\x92\xd0&1J\
+\x82\x92\x16V\xfcq\x15\xd2\xe6S\xe7S\xe6t\x1e.\
+\x9e\x1e\x96\xc6\xe1\x12\x05\xd0\xb4h>\xa2\xa8\x08\xa5\xd1\
+.2\x87\x8c\x0b\xe7\x14\x09\x19\xad\xafy\xa3\xb0\xcc\xe9\
+P\xfc\xe9\x1f\x0f?\x1a~\xd4\xb4BQ\x08F\xc5\x85\
+}\xf9\xa3\xa5\x90=\x9c]T\x04\xc6{\x8e\xf7\x18\xef\
+\xd1\xf89BF\x8c\x9b\x845\x15{\xb5\x089\x11F\
+\xc2R\x85\x87y\xcb0q>\x1c\xd9\xa8\xa5 \xd7\xf8\
+:%<\xf0\xdfAx\xb1\x1fk\xdff\x9d\x8d\xdf\x08\
+kZ@\xf1O\xe1J\xc0_B\x95G\x09v\xd6\xbf\
+\xfd&\x12\x11jq\x98\xafK~\xd8uu\xfd\xb0\x0f\
+\x11\xbf\xaf\xcc\xe1\xcbuM\xe0/\x92\xa4\x10\x05\x0cY\
+@\x93\xc0\x04\xdbh\xe8\xcd\xfeoXC\x1a\xf81\xf5\
+8\x1dXdF ;p/\xd7%aM\x00\xf9g\
+\x05J\x04\x90@\x15\xd9i\x08,\xa8@\x12H\xf0\xf7\
+L\x10\x02\x056b\x02+\x06\x18\x87M\xec\xa9F\x00\
+h\xe2:p\x80]\x1c\x15\x03\x02qz\x80D\xc6\xe0\
+\x1e\x8a\xf7)\xb3\xd2C\xf7qX9(8\xf0\x09@\
+\xf8=\x0b\x94\xff\xe7~\xeeb\xf9\xb4r\x80\x120\xb0\
+\xc0\xf8\xff^\xd7\x9c\x80\xado-\xc0\xe1e\x1cq\x18\
+\xb9>\xe4\x88H\x84\xb0\xe0\x08\x18\xa8d\x13xp}\
+\x8cO\xdf\x12\x80\x03F\xa0\x0cD\x06\x12\x1c*\x91\xf4\
+\xdeJ\xdf\xd3\xad\x03\xdc\x07\x09\x1590FNt,\
+\xdaF\x14\x10x\xa3+\x8f#B/\x91\x1c8\xb3\x7f\
+\x92\xa89C\xf3\xfa\x8b\x82\x14_\xa3L\x9f\xa0Qp\
+H\xa4p\xa2$\x90p\xc0\x09\xb0@8\xc0\xda\x8c\x03\
+\xce\xf3\x02:\xfb\x8b\x120\xb9'Gd.v\xe0\x08\
+\xfc\xa8\x10\xe3\x00\xe2\xc83O\x98\xdf\x90g2\xffI\
+\x14\x91\xf8\xa1\x92\xba\x99\x9e#\x95\xec\x0d\x9d\x18\xa0\x85\
+b\xb9c\xc8\xbc\xe0:\xeak\x99\xdf\xfc\xdfh\x16\xfa\
+\xf2\xb9\xac7\x1cN*\xcf\xa8T\x10h\xe2p\xd2K\
+\xc9\xe7\xf1\x9c!Y\x02Z\xce<f=0\x8f\x19\x9f\
+\xae\xf7\xde\x5c\x00\x8c\x03\xe3\xcb}o\xd4\xb1\xae\xab\x15\
+\x02\x9dWo\xa0=\xd2e\x9d\x8e\x14\x93\xf5\xcc\xfad\
+\x1dn\xdc\xc9y\xb2~hY\x12R\xc3=\xee=Y\
+*\x81\xdd\xe6&\x1d,\x013\x15!\x02\xc9\x8d\x8ch\
+(\x89\x0e\x022\x02\xa7\x9e\xdb\xa3'\xf5\xe3>:\x99\
+\xd6UTRp\x08\x1eZ\x10\x18vX\x09\xfcAp\
+\xc1j\xbb\x85\xd6/\xd7\xbf\x87\x10\x06\x90\xf7\x09\xc9\xe0\
+\xfbe|x\x9e</\x9e\x03\xeb\x9d\xf9\xces\xe4>\
+\xf8;Hq\x94 \x1e\xef>\xee2\xeeR\xa1\xb9\x04\
+\xa2\xf3\xe1\xaa\xb0\xc8A\x1c>$(3\xe4\x9a\x90\xde\
+\x89\xd4\x8e@\x03\xd9\xdaa\xddR\xc9\x9c\xef\x1c\xe0\xdb\
+\xec@\xe6\xc0`\xf8BX\xf3\xfe\xff\x22\x9dq\x10\x06\
+<'\x12\x85[:QV\x10t@\xdbqX\x81^\
+\xc2\x91A&\x9f\xc4\x05\xcf\xf5\x06}\xff)AW\x91\
+!\x84]\x99\xe7\xd8\x93\x5c\xf2\xbcI$2?p\xe0\
+@h\xc0\x12\xcf>\x8e\x83\x8b\xcc\x93\xa0\x9bpqX\
+\xf6\x8dD-\x8e\x18\xf3\x8cD\x13\xf3\x98\x8a\xae\xe4\xa8\
+V!\xe3\xe5\xfai\xa1:@PsH\x00\x19W\xc8\
+\xfdT\x88\xc8\x81\xd0\xbd\x1a\x84\x17\x0e\x938\x0c\x9c\xe8\
+f>\x01\xcd\xe6\x8b\x96\x13\xa0\xea$(\xa8\xf0i\x1f\
+4\xc4\x9b\xfb\x8a\xdd\xfe\xc7\xda\xe7\xbf\xd2\xf4\x94\xcb\xff\
+\xb1\xea\x01\xd7\xab\x04\x94I\xf1N\x0f\xab\x90\xe1\xe9U\
+a\x0d\xa2\x0bY,\xd8\xd1\xb7\x0dK\xff\xf7\xd0\xb0\xf4\
+\xf7\x87\x865\xe7)\x01-\x88\x05 \xb9J\xe4\x80\x94\
+\xa27\xdf\x05\x0f\x129\xccCU\xf6\xc7\xb7\x855\x90\
+\x5c>\x0f\xc8\xeavRo\x11r\x93\x04\x87+\xa8\xaf\
+-P|\xcb^\x8a\xe4\xd5\x95p8&\x90\xb3\x82d\
+O\xfa\xdd\xc8_M\xaf\x0ek\xce\x11\xa0\xd6\x82\xee\xae\
+\xf8\x90\x12g\x82n\x8f\x8f\x0fK\xbf?\xb9@\xc33\
+9\xdb;\x1a\xf92A\x94}\x0e\x03\xed\xe7\xfc\xad\xf2\
+\xcce}\xe2\x7f\xd1\x9a\xa2\x84aN\xc4o\x5c\xc7\xc1\
+\x812,\xec\xc8\xc4\xd1\x92\x01\xfb9\x15_q\x14\xf8\
+\x5c\xd5~\x04\x22w\xfeC\x988\x18^\x9e\xc6a\xf7\
+d\xbb5\xbd\xe5g&;#\xfd|\xfd\xb0F\x1e\xf0\
+\xea\xcc\x02\xe2\xca\xf6\xf8\xbd\xb0\xf4\xba\xf7\xb8\xd7\x18-\
+0\xf7+\xd0\xff\xe1\xf8\xe2\x8f\x0d\xaf(\xa4\x95\xc9\xdb\
+\x7f\xe0\xfc\xc0:\xbfS\xe0\x94\xacQ?\xd8.,\xfd\
+\xfc\xfc\xb0\xca\x012\xdf+,\xbdn6o:G\xe0\
+\xff\x8e0\xb1\xd8\x7fW\xa4\x81g\x0b\xb9\xf1!\xf9\xe1\
+\xdf\xaddk\xd3)a\xe9u\xb5\xb0\xf4\x7f\xa7\x85\xa5\
+\xef\xbf\x1bV\x03\xfd\xe9\x8a\xb0\x8a\x80\x9a\x9e\x11&Y\
+\xc2\x83\x9a}\x0f\x9d\xf4\x977r\x87i_\x98\xbe\x1d\
+V\x11\xac \xbd\x88\x0f\xac.\xa5u\x1c\xb8\x92\xe0\x10\
+HO\xe9\xf1\xf99)\x01h\xf5\x18%z\xe6\xe7\x97\
+\x9ezsyD\xef\xfb\x13\xd5c\xff\xb1F\xf6Z\xad\
+\x8a\xc8;\xa2\x06\xe1\xf7\x95J\x84\x13\x947\x875\xad\
+9\xe7\x86)\xbeyw\x8eS\x0aG\x8a\xce\x1d'\xd4\
+@\xbc\x89\xd3&\xfb\xfb\xdb62\x93$\xcc\x89\x93D\
+f\x98e\x1e\xf7\xab\x89\x00\x07\xac\x90\xca\xa1\xbe\x10\x08\
+\x84\xe0FxEX\x83\xac9\xb2\xacc\xcb}\x8ae\
+\xdf$\x92\xb4\xce\xd0z\x85\x7f\xa8\x02\xad\x13\xc7\x92\xe5\
+u\x02V=\xf2\xd3\xef\xc3\xeax8\xe1MB@d\
+\xb6\x90\x5c\x9a3J\x89\xda\x9e#eX=\xac\xee\xc7\
+ N\xa7\xed\xc3\xd2\xf7;\x845\x89y\xd4Uh\x11\
+&\xf1\xdb\x15\xc6\x8c8\x80;\x87\x04\x838\x1f\xf0W\
+\xe7?\x875-\xe7 \xb6\xe0\x1cxEX\xdd/\xfc\
+\xf7$b\xe0\x82\xe1|#n\xd0<\xa3\xc5\x85\xfd\x01\
+\xb2\xcc\x95\xd9\x8d\xda\xae\xd1+\x94\xec\xcc\xbc\x94ll\
+z\xc2\x90\xab\x80\x95\x15\x88\x9f*8\xf3\xf1\xea\xfdX\
+s9\x14zzbX\xee\xbd\xca\x99\xeea\xcd\xb0\x86\
+\xbd\x1c\x08\xb1\x1cYC>\x08$\xd1\x13\xc7!\xe7 \
+\xe6k\xcb\xaer\x22V\xc5\xf9\xeeaM/\x0f\x193\
+X\xa0\x81\xa2A\x8a\xa1^F\xff\xfe[\xfa\xfb+\xd5\
+\x1bvA\x81\x9a\xad\xc2*\xdf\xbf\xe2`CjE@\
+\x0ad\xb9\x0f\xa4\x80\xfa\xd3\x03\x82#\xcex\xd0K\x0a\
+4\x8eq\xe9H\x03W!+\xc3\xc1a\xdc\x98\x98\x1c\
+0}\xcfx\xafS\xce\xfb\x12\x98\xe0\xe8p\x7f8j\
+\x04\xc4\xbc\x0f\x89\x04\x0eP G\xaa\xe4\x0d\x8f\x94\xa3\
+O+\x03\xd7M\x00M\x82\x84\x84\x07\x81\x1e\x01\x86\x02\
+\x5cCS\xf9=\x15^*\xfa\xf7\x14D\x94\x8c*\xe4\
+!$J$s4\xfc:\xacV&\xa3\xb3.z\xeb\
+\x1cX\xd0\xdaB\x02\x8b\x83\x05r\x0e6, \xe1\x90\
+\x10m\xa3\xc0\x97\x0a\x1e\xe4\x94pM\xe0\xc8\x12 \x13\
+\xb8\xf2\xbc\x08\xe8\x18\x07*\x9f\xf4d\x12\x08\xf4\xd7\x85\
+\x0a@'/\xb6\x0a7\xc1\x86\x1dBd\xe5rY)\
+\xbf\xf2\xf9\xbcV\xf9\xbf\xf2\xfc\xb9\x8e^\x85B\x10\xf7\
+\x14\xbc\x16$\x8f2\xd4\xc3c\x86#\x86#r\xc2\xad\
+\x90o\x02\x1d\xddT*\x22B$\xcdO\x0bk\xe4\xbb\
+\x08\xf8\xb8/\xd8\xf2\xd7\xd6\x86\xf7\xcfZ\x0f\xb8_\xc6\
+\x87W\x12#\x9b:QB\xa0^\x9eCeg/\xeb\
+\x95\xfb'`b\xbe\x92P\xea\xd5>X\xe7\xf4\xf6\xd1\
+\x93\xccz\xea\x11?\x1bu*\x1c\x8cs\xaf\xae@\xa0\
+\xccu\xf4\xb2\x93<\x17\xd6;\xeb\xbc\xbfn\xf6\x078\
+\x07H\xb8\x10x\x91X%\x91\xca:\xa3\x22I\xa5\xff\
+\xc6\xe2\x98:\xc1\x87#]I&\xcb\xbad\x9cAr\
+q\x1f \x99v\xea\xb8R\xb4\xaf \x1b\x96\x82\xdd\x92\
+\xe8\xa0\xd2\xf1'\xed;\x90\xda\xc1\x0e~\xb0\xa0\xe3\xbb\
+\x94\x8c{\x0a\x1f\xf2\xcfA:\xd1\xbboy\xb8\xa7\xaa\
+\xa2q\xb4\xf6\x07!r\x5c\xa9c\x5c\xce.\x0e\x92+\
+\xac\xec\xf7 \xe8\x84\xa4Y\xf1I\xa9\xc7\x10\x08s\xbf\
+T~\xefR\xc8!\xc7\x93\xc6W\x8e\xaf\xcc\xe7U!\
+\xfda^\x9c H\xbb\x12\x0f\xc9M\xc8\x15\x02\xb7\xc4\
+\xb1/\x93\x88\xa1\xa7\x1fN\x9b7\x95\x0a\xd6\xf0`A\
+\xb7\xd9g\x98W\x90\xb2\xa1\xfa\xc0\xfcC.\x90q\xe2\
+s\x80\x90\xab\x97\xd0\xf2V\xec\xd3\xcc7Z\x1c\xa8\xb8\
+\x83\xc0\xc0\xc1\xe3\x5c#\x01\x00\x92\x84\xf9\xc59B\x82\
+H\x81\xa0\xd7?\xeb\x85\xfb\xe1}@.@\xf6\x07\x07\
+\xc0\xd1a\x0d)\xef\xdf\xc3\xea\xab\xaf\x07\x7f\x82\xf5\x02\
+\x14]\xa4\xc5V-\x00\xaaO\xab\x02\x8e\x9azz\x8d\
+P\xfaSXsNS\x01\x06aB@\xce\xfbPx\
+QEn\xfczXu\x94M\xf2D\x02\x88\x16\x10\xb8\
+\x9b\xd4\xe3lG\x0fD\x0e\x88;\x12\x1cBD\xd0\x0b\
+m\xd9azpYoj\xe5!\x91D\x02\xc3\xe4S\
+\xe15\xbdC\xbd\xafkV\x7f\x03r0 \xa6\xd10\
+\x1a-\xa3&\xff\x13g\x01dW\xe6V`\x9fD\xed\
+\x01\x0e\x09d\x10\x15\xe0\x81\xf8t`\xb2\xa4\x80\xfaN\
+J$\xbe\xa9\xcc\xcf\x14\xcc\xe5s{\x18J\x01\xca\xe7\
+3\xfe\x1f\xe4iT\x0c\x09\x00HdE/\xf1\xe5R\
+%\xf8t\x13\x80\x91\xf0a\xde\xb2\xbe\xdb\x1e\xff\xab\x1b\
+\xae\x09Z4\xe8\xf5\x95\xea\xc8\xbcSX\x93\xa0\x02\xc9\
+\x06i\x9d^\xa73\xc2\x1an\x92s\xc3\xd2\xcf\x9f\x16\
+\x96\xe6\xc9\x91\xc9\x1e+2\xc076*\x02\xf7\x09K\
+\xdf\xef\x1aV9\x01r\xcb\xd2\x81\xe9\xfb\x13\xc2\x84\xb0\
+H\xf3{<9\xd9\xab\xe4\x07\xfdJP\xee\x1f4q\
+\xc0\x0bS@\x9b\xe6\xeb\xd2\x1b\x92\xc5\xbe\xf2\x9bd\xd7\
+\xe5u\x96\xe7kz\x0e+\xe7\x95\x95#b\xf1\xac\xc5\
+\xf1\x8b\xe3+Y^\x96){\x94*\xef)\xe0Xl\
+\x16\xd6\x90\x1c^\x1c\xa6\x0a}\xe8\xae_\x1a\xd6\xb0\xf9\
+\xff.,\xbd\xfe!,\xfd\xdd\x9d\xc2D\xde\xb7g\xc3\
+\x09\xb0s\x98X\xfb\xd3}M\x7f\x0bkz\xa5c\x1d\
+}\xadQ\x05P`\xc8\xf3%!A\xa2g\xde;,\
+C\xbd_\x93\xa1\xdeW\x85e\xb5\x85\xbf\x86\xda\x82\x91\
+!*\xa0\xa2{\xef}\xe0\xb0\xe1\x91\x99\xa4\x15\xc4\xd0\
+:\xb9\x94\xe0\x8a;\xd7\xe7\x16(T\x8f\xa4\x1a\xc3\xfe\
+\x92\xef\xff\xb79\xa1S\xc8D\xffs\xf8VF*)\
+\x80u\xe25\x0a\x1c\x1b5\x90u\xe6\xeb#\x95\x10\xdc\
+%\xa7\xe0\xeb\xb9K\xeb\x14\xaa(T\xfaAz\xab\xd5\
+;\x93B~\xa6\xf1?P\xc1\xb8>\xad\xe3\xb4\xbfM\
+\x8f\x0aS\xeb\xc6~y~\xdfm\xbe[\xc3^\xafB\
+2\xd0x\x12\x17\x9c\xf7\xb4\x0e\xb8\xd5\x8f\xd6q\xd6'\
+q\x1d\x5c\x08JT\x0ek\x84Ud\x87\xcf\x87#\x84\
+\xcc\xbaX\xe4\xa6 \x16\xe0j\x11\xf2g\xfcqXM\
+$8\xa0f\x7f\xe0|\x97\x1ci\xfa\xcc\xd2\x1a\x0eb\
+\x97\xdez\xd4HP)\xe8\xc8\xcb\xa3\x11'Zq\x98\
+\x97F\x90td\xf4\x9e\xcfJp\x8eO\x0cK\xef{\
+\xaaZ\x0e!\x17\x14\xa7\x8a\xc9\xe8A\x98\x81\xa0\x83\xab\
+\x89\x96f\xed{\xe3\xb3\xc3jk\xd3\xb4mXrW\
+yPf#\x94\x1ep\xde\xc0\xeeW\x1d\xa5\xf1\xfda\
+\xd5q\x07\xa2\x9f\xb6\xe7\x02Q\xa0RE\x80\x08\xf4\x17\
+\xf2\x99;\xda\xe1.\x90\x9c\xc3\xd4s\xa6\xff\xa3B\x0b\
+\x99\x98{L\xd6\xea*\x90L\x0c\x0eN\xde\x9fJ!\
+\x15~\xb8\x0a\x80X\x01\x8d`\xc2p\xf03P@\xfe\
+\x80z\xc0\xca\x88\x03\xc3\xdf\xe3p\x13x\xf5\xbd\xd2\xff\
+\xac\xe2\x86C\xcc\xcf{\x9dk\xbe\x18'\xc8\xadT\x89\
+q\x82\x82\x00\x92\x89\x86\x03F\xe0E\x00\xcf\xf5\xf1\xfe\
+\x04\x02T\x0c\xb9^\xfe\x9e\x00\x02\x87\x0b\x87\x91\x83\x0e\
+Vq \xe7\x04\x08=\xb2\x00\x19\x1d\xf5\x10\x92\x00\x18\
+\xf8\xbcC\xbb\xc0\x1e\x07\xbb\x977\xdc\xb4c\xb1W\xe0\
+\xe1\x8d\x0d\x07\x11\xa8w%3+\x81\xf3y\x82J2\
+\x9e]/\xa9\x1d%A\xbf\xdd\xd3E\xc0\x8f\x1e\xb1\x1c\
+<\xf7\x9c\xfeY\xb2g?\x97\xa3LB\x88\xf1\x83%\
+\xfe\xc1\xea\x95\xe3\xb9\x93\xf1\xa7\xb7\x90\x0d\x83\x96\x0c \
+\xf8p\x0f,\xba\x9e{\x1c\xfe-4\xcf\x09\x18\x98O\
+w\xec\x02\xda\x8a\x00X.\xf3\x88\x0c\x99\x02a\xabU\
+P\x91\xe5\xb9\xf3\x1c\xac\x8bf\xc5\xd7\xf2\xc5\x06\xc9\xf3\
+\x81<\x8e\xder\xb8!p\x90\x18\x076>%F\x0c\
+ab_\xd1\xf8:!\x89\xba\x88\x12\x85\xd6U\xe5\xfa\
+n\xa3W\xe6\x13\x81\x0b\xebn\xfdNn\x0e\xd2B\xc8\
++\x098\xfa\x04J\xdf\x9aCB\x0f\x92@\xe6-\xfb\
+R\xaf\xe6A\x85\x92@\x89\xeb\xe3\xba\xea\xf3@6\xb0\
+<\xc7\x9a`Y^\xe1\xe7~I4\xe9\xe0q\xef(\
+\x9f\xd7'\x00x\xed\x11V\x04FT\x08\xd8\x07\xba\x16\
+\x1a\x07r;v\xaa*J\xbc\x0e\xebi\x1cA\x00\x81\
+\x18\xe2\xff\x80\xee\xc3-A\x80/H\x9c\xb99p\x84\
+p4\xb4\x9e\xd0\xbbw\xe5\x90\xf1=G\xfb5\x89Q\
+\x9e\x17\xfb\x90X\xf5\xa9<Z\xee\xed\x06\x05f\xcc\x93\
+\xf7\xca\xe1\xf8\x92\xde\xe7\x0b+>\xbf\xe2\xf3\xcd\xbc\xa6\
+\x82\xa4\xf5kH'\x09N\x02AU\x0e\xdd\xd3\x07w\
+\x03\xc8#z\xfc\xbeP\xc8rS\x98\x9c+A\x5c\x97\
+\xf7w\x9e;\xad4\xef\xcf\xe6\xcc\xbf\xe7)\xe3\x8c\x9e\
+7\x90NA\xeb\xddz\x04\xb7\x08\xe3N\xef:\xa4\xa7\
+<O\xd8\x94\x0f\x0fk\x12\x0a\x82(:\xd1\x01[4\
+\xeb\x86\xc0\x1dGW\xf7\xe9\xf3\x18\xf9\xa3\xc7\x865\xef\
+\xcf\xbeE\x05W\xe7\xb5\x11X\xda\xcf\xdc\xb2B\xc2\x98\
+\xfb@\x8e\x12.\x06q6X\x9d\x02\x84\xa2zAM\
+\xfa\xa6\xf1t\x0f\xf3Y\x05\x1a\xeay\xd3Cl\xa9p\
+\xa3j\x10\xbb\xd9\xbe\xba\xff\xe0*8\xaf\xc8\xd0\xad\x82\
+\xb4\xc0OQ\xc5*\x00\xab\x19\xb2J\x8f'\x10U\xe9\
+~;\xb0\x04\x89\x82\xa3\xac\xca\x94\x91e8z\xd2a\
+'\x81\xe2\x9eaU\x8e\x8c\xc0T\x05\xdd\x89?\xfc-\
+*\x88\xcc\x1f\x0a\x07 \x0d\xde\x15V\xc7kz|X\
+e7\xf7~DB\x09\x1ds\xa9\xbf\x80\xe8\xa2rE\
+>\xd9\x15=\xc6K\xad\x99TF\x8dp\x10k\xbe\xd5\
+\x12\xf6(\x89J\xe4\xab\x8c<R\xe5\xd2\xea\x02?W\
+o\xb0\x12/\xd3N\xd3\xdd\xa7\x9d3)\xe2\xb7\xa3\x85\
+\xc1\x15\xfac\xc2\x9a\x8a^\x88r\xbdV\xeaO_m\
+\x12\xbb\xec\xeb\x22\xa1\xc5\x01\xcf\xd7{|&wL\xa6\
+\xd6\xa0 9|dXs]T\x1c/\x96,%\x5c\
+\x0aj\x8d\xf0\xfe\x87\xca\x82X\xd9I|N\xf7Lv\
+\xaf\xba\x9e\xc6;\x84\x09\xd9\xb4\x89\xa0\xec\x17T\xae\x00\
+C\xe3E\x22\xe8B\x1d\xfa\xe4\x22K\x1c?\x17\xa6\x04\
+\xcdg\xd5B\xf2\xd0\x86\xb3\x04\xce.\xf9A\xd3\x7f\x85\
+5\xe4\xbb\x91\x08\xf8Mz\x9f]\x92E\xa1meI\
+\x04L{\x86)\xe0?B\x01\xf8\x9eM /\x19\xbc\
+\xdcbrQe\xe1'\xb13\xed\x15V\x91Z\xd3\xe7\
+\xc2jez\xf1\xcd\xb0\xaaF\xe1\x16\x01\xb5\x06\x80\x1c\
+\x99\x8e\x0d\x13t=\xcd\xab\xe9\xd4\xb0\xf4\xff\xe7\x845\
+\xfb\xeb\xee\x99m\xa7\xb2\xd4k\x1f\x9dw\x0bk\x10\x18\
+$hD\xa2\x98\x19<\x9e)Y\xcc\xb3\x1a\xbf\x13\x12\
+\xd552\x8dr=\xd7D\xc6\x9a\xc7i\xa9iI\xd6\
+\xfb\x0d\x1f\x0fk\xfc}}~\x0eg\x8fXVY/\
+$}\xc8\x9b^\x95\x9b\xdf|^#\x03:\xbc0\x9a\
+\xcc\x94\xc0\x88\xf3\xef\xe9i\xbe?\xbd&x\x86\xff\x08\
+\x13\x09\xe9\x09J \xa5\xc0y\xfaKXs\x9fwO\
+'Y\x90\x08\xae\x11\xd6\x90U\x22+'R^#*\
+\xde,u\x0a\xed\xcf\xe6\x10Pk8\x81\xff\xf8\x8b\xb0\
+\x7f\xd0\xf2M\x5c\xc3}\xb2_!\xd3\x0bB]q\x1c\
+\xfb\xe7\xfc\xc4\xb0\xccQ\x90\xcf=\xfb/ \x1d\x9e\xaa\
+\x82\x92\xb8\x95|]\xb4~\x883\xc2\x5c\x04 \xcf\xc4\
+]2\xdf\xbb [V\x9c\x94\xcd\x08#\x90;p\x91\
+\xb8\xd2O\x22\x08yS\x91\x92\x83\x1c0bI\xad\x86\
+\xb4\x80\xd1r0\xbd3\xac\xee\xabFh\x81<\x96,\
+.d\x92\xf6\x13\x1e\x14\x96\x91\x8a\xa5\x90\xc9~+\xe4\
+\xd1\xf8\xdfa\x95<{\xe5\xb4N\x98\x02\xbf\x83\x9a\xcc\
+P\x5c\xd6A\x15\xb2\xea\xca\xa3\x02n\xf4l\xe7\xe7\x84\
+5\x0e\xdd\x13\xc32\x99M\x99\xd0@\xe9D\xae4\xaf\
+^&\xd2|HX\x03a\x10\xa9\x02\x95\x0f\x07@@\
+\xee$\x03\x03T\x90L\xa0\xa1\xfb8&\xea\x95c\x83\
+wEC\xec\xff\x967\x04\x02\x09\xd4J\x99q\xcbK\
+\xa1B\xf0\xfbN\xbf\x17\xb2@\x1cz&Z\x9f\x00p\
+j\x126\x98\xae\xb2\xca\xef\x81\x8a\xc8\x81\x1fv\xd3\xcf\
+qhUQC\x87\x95^=\xeb\xf4\xa2j\xd0\xb3\xf7\
+\xf7\xf2\x7f$.\x08\x08\x09\xf8\xe8e\x02\xc2B\x05\x9f\
+\x0a\x09?\xc7\xe1\xe5\xbaq\x00q\x04\xb8O\x1d\x9c\xee\
+\xfd\xc3\xf1\x00\xc2\x83c\xb8q\x07\xc9\xae*\x08\xe5\xe7\
+\x7f^^\xe1v\x00\xfeDqN\x08b\x04\xb4\x9b\x8c\
+\xe0*\x89\x15*\xb3@\x1a\x05\xed\xb1.:\xbd\x8au\
+~\x95\x00\x83\xc4\x02\xd0I\xaeS\xd7O`\xe2\xe7\x8f\
+\x03u\xaed\xbb\xe8%E\x9f\x19\x19+\x02\x16X\xbd\
+\x8f\x95\xee6\x01I\xafn@\xa0\x8d\xc3\xc4s\xee9\
+\x19\x18O~\xcfk\x8f\x04`\xbcD\xceDB\xce\xef\
+\x87\xdc\xde:\xe6\x00(\x9f\x8f\x83\x0cG\x03\x89 m\
+\x88\xee\xed\x05\xba\xb4\x8f6t6p \xa2p\x13\xfc\
+\xbdKH\xe1\x98k\x1d\xf8@\xe6>@\xa0\xf0\xf7\x82\
+8z\xddl-\x84\x05\x810\x0e\xdc\xad\x1aO\xd6\x1d\
+\x01;\x09,\xc6}]%\x0a\xd6\xb1\x9cb\x09\xcc\x91\
+\xf5\xdbL*\x0e\xcc_\x1c\xfd\x0a\xdd/\xeb\xb5\x22\x08\
+J\x80\xc3\xbe\xc0|\xe4{\xd6\x0d\xd7\xc3\xf8\xf2\xc5u\
+wj\x18\xc3\x86g\xe1\x1b\xb4\x00\x00 \x00IDA\
+T\xc3\x069Q\xb4W\x0a\xaf\xf7jd\xeb\xb8_\xee\
+\x9f\xff\xa3R>\xfb}\x97\xcb\xe4\x01\xc1'\xa0d\x1e\
+p=\xcc\x9f\xadSX\xbeu\xc3\x81\xb0\xa5d\x1e\xc9\
+\xcc\xab7\xde$>\xdc\x1f\x09\x00\x9e;\x09\x18\x10\x11\
+\x04 \x0bH4p\x9d$^H\x08\x09\xda\xe8\x8a\
+\x09\xfb\x17\xdf\x7fM\xbd\xe5[\xc9\xa1f\xbd\x13hQ\
+\xc1\xe7\xf9)\xe1\xb4\xe2R%VoY\xaeNC\xc5\
+\xc0\xd0=z5A\xf6p?\xec\xcf\xb0\xbf_T\xc8\
+\xa8\x86#Ke:\xb9/\x19A\xe7\xdf\xab\xe7\xdc\xf3\
+IH%C7un\xce\xcf\x98\x8f\x0d\x12)_\xc7\
+zy\xa6F\xa5\xf1\xe8\x5ci|^X\x03\xa9\x94Z\
+\x84\xc9G\x91\xc3\x03\xd2\xcfyI\x82\x8e\xfd\x9es\x82\
+\x04\xe9\x96\x9d\xdc%\xd0r\x12\xd0\xcc7\xa0\xf7Jh\
+:\xb0$!\x00\x84Q\xbd\xbdV\xeb \xc0\x80\xfcN\
+\xbd\x94\x8c;dS\xf4\x86:\x90a\x9er.\x01u\
+\xa6\xf2\xa5\x00\xc7\x8eZ\x87\xd4\x98\xcf\x09K\x7f\xf7\xbd\
+\xb0\x06\x09\xc6\xf8@\x96)h\xaf\xe5<Q\x17A\x9f\
+\xfe\xc2d\x9f\xac\x85\x03\x07\x94\xcc\x7fd9\xe1\x9e!\
+A\xa3\x82\x82\x11\x0a\xf4\xde\x83h\xe0yh?Dm\
+\xc1\xeb\x84\xf5Ae\x0c\xd2bA\x7fM\x06H\xeb\x1c\
+\x10w \xa2\xa8\x1b\x90\x80f?B\x0e\x90}\x8a}\
+\x91\xfc\xaf*|\xe6\xc6\xf8\xf7\xb0\x06r\xac\x9e~\xb3\
+\x9c+p\x1f\x8eW`\xff-\x91P\x0dJ\x04\xc0\xed\
+\xa1\xcf\x9b\xbe\x19V\x13\xe1\xae\xd0\x92H9F\x88\x0c\
+\xb5\x0e\x9a\xfcPj\x07\xc3\x0daM\xc2\xe4\xc0rn\
+#\xeb\xb5\xe2\xa9\xda\x9f \xfd|\xca\xf0\xe4\x9c0\x80\
+\x8c+\xfc\xdc;\xaag\xfe\xe5u\xbf\x19\xbf\x13V\x03\
+\xff\xf1\x9c\xc2Bnr\xc3\x08\xe0\xef\xa5\xe7v\xd7\xea\
+p\x0fO\xd5|\xa2\xb0\xb4[\xf1\x7f\xec\xd0\xe3/\xb0\
+_\x93\x98UB\xc2\x15ez\x87\x85\x80#\xf0\x9a\xd6\
+Lv[\xa9k\xdc\xa3\x814\xc7\xa8&\x7fp\xda4\
+\xd9f\x95L3\xaf\xcb\xf7\xd6\x04\xe5tR\xb2H\xcc\
+\xfc,\xd95Um\x00\x8e\x1dH-Aj\x8co\x0f\
+]\x81\x9a\xb0\x1f7\x0e\xab\xbd\xd9\xd3\xa3\x93\xa5\x00j\
+\xf1o\xc9^\xdf\xb0\xf7\xff&\xd9\xff\xa6\x9f\xff),\
+\xbd^\x1aV+\x90\xf3\xc7\xc3$w\xf8\x86F.P\
+l\xf2 \x8e\x9c\x08\x10\x07\xd9\xf4\xc8\xb0\xda#\xcd\xfe\
+\x82\xfaCP\xc5M\x0f.\xea\x01\x81d\x98\xceK\xb6\
+z\xd3\xdb.R>\xfbc\xac\xa3\xeb\xb2\xeeAE\xc6\
+}8\x85\xed\x1f\xae\x90\xf2\xfc\xbe\x077\xe3\x86\xfa\x80\
+\xb8\x19\xfc|u^\xa2\xe6\x04\xb2f\xde>\xaci\xb5\
+\xa1\xc7\xfd\xc0\xb0\xda\xda\xc3\xbeA\xab2\xadf\xde\x07\
+(\x04\xe8\x5c\x1b\x1e0<0X\xde\xdd\xbbN\xe1\xe4\
+\xeb\xd1}\x9f9\x96~\x14\x1cK\xb9\xa5\xf9\x82\xf4\xba\
+U\xb2\xad\xeb~\xe28I\xe70d\xc1\xf3\xe6\xf3\x16\
+\xf3\xe6M\x0b\x8b\xe2+\xd4K\xe6\x1d\x0b4\x1eN\xaf\
+\xd0F\x0bu4\xc8\x04\xb3l\xe3\xd55\x81\xc3\xb9\xe0\
+\xfd\x02D\xd3\xcf\x8a\x0c\x9f[\x04\x88W8\x97\xd4\xbb\
+\x8ez\x85\xfdd%\xb4M\xa6)\xe4\x91[\xbcY_\
+Z\xff\xc8e\xfa\x1c\xe1\xbcg\xbf\xa3pA\xdc\xa9\x04\
+3$\xc0&I$\x0eR\x02}\xd8!\xac~\xbe\xcf\
+%\xb8\x9c\xf0\xd3 OV\xc2\xd3\x08\x18\x15\xe2\xf3\xba\
+^\xb3Q/9B\x88YZ\xc6\xe0Z\x12R\xc5~\
+\x01\x85H\xb5\x0c\x9a\xd4\x96\xb8\x1a\xd2~\xc9\xad\x92\xd8\
+[\xe9\x03\x18H\xf5\x83\x8b\xae0\x99\x056\x22\xbf\xa1\
+\x1c\x80\xf9\x93\xa5bA/vf\x1fM\x13k|\xf7\
+x\xd6xV>0KF\xe2\x8f\xea\xd5\xc6\x91\xa0\xb2\
+-2\x9ea\x13\x05\x12\x87I.h\xad\x02\xe95$\
+\x83\xde\xc9\x0e\x82;\xbf:\xacf\xf6\xe9\xb9\x815\xdc\
+PA2\xffb\xa5uO_\xdf\xcbL\xa0\x014K\
+\x0e\x92{\xbc\xb5\xb1\xcf\xf7\x0bk\x1cu\x1c\xfe\xdas\
+Y\x02,\xe9\xb4\xfb@\xef{\xa6\xfb\x8d_\x99\xa8\x15\
+\x7f\x14\x09\x04\x13\x9c\xc0\x82\x85\xcf\x01\xac^6;b\
+\x04\xcaJ\xd8\xd03g\x87\x8e\x09\xcb}\xb2\xb0\x08\x04\
+H\x0c\xd0SM\xef!\x09\x17Z3\x08\x0c\xa8`\xe2\
+(\xf6\x90P\x02\x07\xee\x0fG\x9d\x9f3n\x04X|\
+\x1e\xf7S9\x12\xca\xb8\x92\xd8\x00\x02L\xc5\x18\x95\x0a\
+\xdd\xaf[J\xa88\xe3\xe0@:G\x85\xbaG\xac\xfc\
+\xc5$y\xe5\xb9P\x91%P\xec\xf5\xbc\x97\xf4\xbe<\
+\xdf\x07\x16\xe4Dt\x88\xe5\x1e\xb1wg\xabP\xf5\xcf\
+\xab\xd7\xf2Y+NXqB\x03\xb5\x14\xeb\xb3U\x0c\
+\x80\x0a\x13\xa0\xf7\x81+\xf7\xd5\x8f#\xcf\x83u\xd6\xc9\
+B:sH\x05\x9b\xdf#\x17\xc78\xdc\xcer|%\
+!\xb3\xa6e\x01K\x00\xc7<g\x5c\xa9$\xf29T\
+\xa0p\xc4{\xf6o\xde\x8f\x9e\xdf\x9e\xbc\x93\xf9\xc3\xbc\
+\xa2\xf2Eb\x92yA\xa6\xf5\xeeRC\xf8\xad\x1c^\
+\xde\x87\xf1 a\xc0\x81R+\xf3e\x1d\xf6\xad&=\
+\x07\x02?g\xfc\xfbD\x0c\x01\x1c\xf3\x80\xeb&Q\x04\
+Y -,\xeb\xff\x13$P\x9f\x08\xe0\xb5\xe7\xf0X\
+d\xc1\xd3U\xe5\x06Y\x7f\xdc\x1f\x09\xb4?+\x01p\
+k\xd7Z\xc3\xf8\x938\xa27\x1c\xc4\xc3\x0a\xcd;\x12\
+A\xac?^90\x81\x5c\x8b%\x1dh\x9c+\xc6<\
+?\x12U\xcc\xbb^5\x02G\x17\xc8<\x89\x08\x12\x14\
+\xb0\xc3\xab\xd2\xe7\xca4\xf3\x0e\xe4\x17*6\xb0\x97\xd7\
+\x16\x8a\x22\xe3\x8a\xbc!\xad\x0a\xcc'*7@\xfe\xb8\
+N\x12\xa5\x82f\x9a\xcd\x9b\x042\x10v\xd8z\xd5\xfb\
+Ke\xdc\x15m\x12\xd4\x8c\x03\xcf\x15\xe8v\xd7\x1a2\
+\x1f\xa5\x844\x99\x7f\x90j\xb4\x06\x11@\x80,\x80\xbc\
+\x90u\x01B\x8a@\x9b}\x84\x8a4\x10\xf15L\x16\
+Z\xe6G\xdf\xe2\x03\xc9/P\xd1\x80\xf4\x1e\xde\xcc\xa3\
+\x8e\xdc\x8e\xcf3\x1b=\x0e\x0f\x10\xebC\xc3\x1a\xf99\
+X\xd6Q\x91\x90\x7f\xc1y`\xf9$\xed\xa7\xc3\xab\xc3\
+\x1a\xc4\xe23\xc2\x9a\x84\x03-uJ\xc0\x98\xecI\xe4\
+^&u\xe4\x8bD6\xfa\xcb\xb4\x94D%\xf8k\x8d\
+j\x80*.\xae\x18\x83\xdc\x82\xdc\x15RB\x10 $\
+\x8c\xd4\xbb=\x1c\x1a\xd6\xfc?\x0e<\x08\x11\xe61z\
+\xdf\xb4d\x00\x99\xc7\x0fa\xff'\xe1#n\x0es\xea\
+P\x19\x14\xe9\xa1\xa1\xb58\x88T8\x8f\x0c\xab\xc8\x09\
+\x93\x08rN#W\x88\xe3\x0aW\x12\xeb\x83\x0a<\x09\
+\x0f\x90\x83 (\xe0\x80@F\xf5\xf6\x1d\xd7\x13r\x9d\
+\xc8m\x01]\x05\xfa\xaf\x0a\xe8\xb0\x08K\xd3\xf2\x94\xb0\
+\x06i\xc0:Vet\xfeTX\xf3\x9c\x80\xe2\xbf\xbc\
+\xf8\x99\xe1\x95\x86_:\x1c\x93\x02\xf3cj\xa5\x9eu\
+\xb0tyX\xfa\xbb\x9f\x84\xa5\x9f_\x19&\xf9\xac\x83\
+D>\xf9;\x05\xdc\xbb\xd4\x80\xc3\x09\x04d\x1a%\xdf\
+\x95\xfe\xbb\xc8r\xdeX\xce\x1f\xfckd\x08\xddzH\
+\x05\x9f\xc4\xba*\x8an\xd1 \x90\x96\xfbfU\x01Z\
+M\x08\xe0\xa2b~H\xd3\xc2\x82\xc3\x1f~\xc4\xfaj\
+\xe5\x88\x04\xfb\xdb\xb3\xad\x18?\x1c&h\xf1\xeaM+\
+\x0b\xdc%\x90=\xaa\x85azaXeC\x1f\xdf\x18\
+V9\x052\xd2\xe3\xa4\xb4\xfc^\x90,\xed\x93\xd3m\
+\xc3\xd2\xeb\xdd\xc3\xd2\xebFaJ<\xc4\xdfm\x1fV\
+\xe5\xc7\x89#\x16\xdb\x845\x01\xa2\x90\x14\xf4.\x1bZ\
+.(?\xad\x0fTN3\xb7\xc3)9p\xdd|.\
+d\xc6Y%!\x87u\xe7\xd6\x0a,-\x0b\xe9\xd3\x0b\
+\x92\x22\xc8\x5c\xaf\x92\xffs;\xf9\x11k5-VB\
+\xdcL;\x85\xa5\xfb\xbe\x7fX\xe6\x06\xb8<\xb7\x8c\xfc\
+.,\xfd|\xbfq\xdfq_q\xc9\xbc\xaa\xd9\xf7A\
+f!\x1b\xd8\x9f\xef\xf8I\x92\xf54\xd2\x07\x84\xb3\xce\
+k\x12\xa5T\xd2\x81\x98\xbbe\xf5\xdd\xe2\x04\xd8o\xde\
+?C\xf2\x15\xc7\xe5}\xef\x8b\x0a\x10\xdf\xd7\x9c\xaf\xa8\
+\x80(\xe19?\x22L\xfb\xe1s\xf2\xfe\xb1\x8c\xf4\xda\
+\xa4\x84 \xe34O8\x17\xa6\xd3\xc2\xd2\xf7\xc7\x96\xc4\
+\xb5Uu`\xff\x07I!\x84\x8b\xe5L\x95\xd0\xf4:\
+~rX\xb3\xafp\x0e\x83\xec\xa2\xb5\x97s\x10$\x1b\
+\x89W\xceo\x12\xdd\xc4A\xda\xcf\xddb\x0a\xb2\x82}\
+\x8c\x04\xb4 \xf9V[\xe0\x1cb_\xe3s\xf1ch\
+\xf9\xea9j@\xd6\x91\xf0\xc5\x1fU\xa2a\xfc{\x98\
+\x12e\xbfi\x906p\xce\xa9\xd00\xde&,s\x9b\
+e\xf2D\xfb]p\xf2\x88\xab\x0e\xe4\xde\xf0\xb2\xb0J\
+\xbajd\x1c\xe4\xc7\xf2\x87W2A]\xd1\x13\xa4\x05\
+2\x1d2\xbf\x8b\xaf$\xbbX\x13w\xb5\x0ae\x1bo\
+)70\x8e\xe3\xd2\xb8\xd4d\xba\xf7\xd3@\xd0c\x83\
+^0\xa43@\xa2#\x13\xb5U\xfe\xbc\x22k\xc4\x8d\
+\xb0@8\x10\x80x\x90\x98\xb8U:\xf2\x90\xb3\x10\xd8\
+\x03=\x11\x94\xcc7.\xc8\x8d\x03L&\x12\xec\xbad\
+J\x94@ \xc3m\xb6g\xf5\x9e[v\x01\xc7\xadr\
+\x11 +V*cL\xc8\xcd\xdd\xbb^&0\x01[\
+Gb\xb6J@D\x86\x1f\x07\x95\xc0\x8e@\x83\x9ev\
+U0<1\x09t!\x83 \xfa'=\xcc8(\
+v\x00\xf9\x5c\xbe\x90Q\xa2\xa2\xc0F\xc5\xf3\xe1{\xee\
+g\xd5\x0adqX\x09\xfc:\xfdy\x07\x8ad\xe4\x08\
+\x8c8\xf1z\x99D \xa0\xfc\x1dd\x86 \x00\x08\x18\
+\x18o\xae\x8b\x80\xfd6\x1d\xc4\x19\x87\x9cy\xc1s@\
+e\x82J\xf0\xc6&],\x0e\x0d\x0e5\x09\x8c{\x8a\
+|\x0a\xc7\xacSi0i\xe1\x9d\x04-:K\xba\xd1\
+\x17\xa8\x95\x05\xb9Km\x0c@\xab\xc8 {\x1c\x99\x1f\
+}\x22\xa6\x0f\xf8\xbb\xef\xcdEA\xe0\x8a\xa3G\x00X\
+\x13\x1ce~VY\xc0\x92\x08`\x1c\xbb\x83\x8b^b\
+2\xa4\x0e\xa4\xa8\xb42\xce\x04\xac\xbd<\x1e\xe3\xce\x06\
+M@\xa5\xd6\x13\x1cg\x07tr`h\x11\x22C\xea\
+\xd6\x8a\x83\xb5qn\xd0\xb1\xbe\x03U&\x11\xc0\xfc\xec\
+U%\x98wK\x0a\x84\xfa\x84G\x9f\x10\xbaS\xde\x19\
+j \xcb> (\xec2y\xa1;7\x7f\xc7s\xc0\
+\xa1\xef\xc7\x99@\x8c\xf1\x22\xa0\xd0\xf5\x0d\xc7k\x5cI\
+\x0c\xb2\x1e\xb8\x9f?\x99\x1b\xa0\xbcV\xce\x8f2\xaf\x91\
+\x99\xe4\xbev6I[IX\xad\xa1J\x1a\xfbF'\
+7i\x886\x09\x0e\xe6%=t|\x1e\x812\xe3\xc5\
+\xbeX\xa1\xfa\xe5\xf3\xe9%\x86\x0b\x00\xce\x07\xc6CH\
+'Wp\x1f\x1f\xd6\xf48C\xaeF \x01\xcb<\xeb\
+\xe3\x00A1\xd9\x8f;=b'\xb24\x8e\x86\x9e\x0b\
+\x92\xe8\x00\x8e\xfd\x87\xc0\x11D\x96 }\x0e\xe8Hd\
+p_\x1c\xe8\x90\xea\xa9\xf2\xe5J\x10\xe4cr\xe0\xe7\
+\xb7\x97J\x8e\x13\xd8$\x00\x80\xbe?\xba@\xe9\xa9\x00\
+\x0c\xfb\x97@&\x1d\xf7E?\x9c\x80B\x8e\xc7\xf0\x89\
+\xb0f\xdf\x22\x90\xc3q\xe19\xb3oP\x01\xb96\xac\
+\xd1w&\x11\x03t\x99\xc0\x10\xd29\xf4\x86\xa5\x1e\x80\
+l\x9d\xe7\xb3*>\x90\xdd\xc1:m\x87O\x8e%\xac\
+\xd4^\x7f\xecK\xf4<\xf2=\x08 \xc8Uq\xb4\xa9\
+\x14q~\xf1\xfcXg\xcc\x17\x90#8f \x96\xe8\
+Q'\xa1\x89\xae3l\xdc\xc8\xa1A\x06\x07\x0b<\x89\
+\x00\xa0\xe0$>!\xa3\xfdT\x91\xd5t\xeb\x80\xee\xc7\
+\xad\x11\xc86Q\xc1#a\xcb\xfcd\xfe\xa1\x8a G\
+o\xc5\x19\xd9*R\x8eu\x0ab\x03\x12/\xe4\xfe\x98\
+G\xc8j*\xa1f2V\xc6Q\xe4\x92n\xc1\x83d\
+\x8b\xfd\x8b/\xd6\xa9 \xcf\xc3qRg\x10\x22\xc7\x01\
+0\x08\x0a\xc8*\x95\xc8\xb1\xcc\xd5ea\xcd\xb9\x05\x89\
+4\x01\xce[\x85\x94yb\x81\xccZ}\x01\x04\xd1#\
+\x0aRe|zQ\x11X\xdaj\xe9.K[\xe5\x9e\
+\xf9\xc7\x8c)p\x1a?\x12V\xfd\x85\xe1'a\xe9\xe7\
+\xaf\x08\xab\xb2ly\x97\xde\xbc\xe1F\x08\xae\x84s\xb4\
+\x0f\xfdO-\x94\xe1\xe7\x0e\x7f(\x90\xda\xf1\x9ba\xe9\
+\xf5~a\x0dK?\x09\x02\x9d\xe7\xe9\xef\x935\xe4e\
+T\xfaN(\x05\x02\xf6)*\xf1VM \xd1J\xa5\
+\xef\xe5a5@\x079\xb2t^X#\xbfH`\xa9\
+sw\xda7\xac\x92z\xbbe(\x90\x0f\x0f\xd7\xb9\x12\
+\x9f\xf7\x8ddq?w\x0e\x93\xde\xfc\xb7C= \xd9\
+\x85\x22+}Km9X\xdc%,\xbd\x1e\x97\xec\x99\
+\x8d,\xdc9a\x15\xe2\x9f+\xf2\xe75\x15\xeb!\xac\
+\xe9\x99\xbe6\xac\xf1S\x05\xb1\x9eN\x0e\xab\xdc\x18\xe8\
+\xbf\x87\x18^&I\x0c\xae\x8a\x95\x19\x91\x165\xdf\x8a\
+\xdc\x85\xcb\xa4\x93\x95\xcel\xed\xaf\xad\x88\x11\x9f;B\
+\xcc\xa5\xb0\xf6\xd1\xf3\xa3W\xd5U\x9fn\x9a\xfeo\xfa\
+\xbf\xba^\xc7\x8b\xc3\xe4\xef\xa5sa<*\xac\xfa+\
+\x9c\xffFv\x90\xa0c\xdf\xc5o\xa4G\x5c\xe3\xec}\
+\x9f\xfd\x93D1q\x16\xaa \xfb\xe7\x13nU\xee\xa8\
+\xcd\xb2@m$>\xde\x96\x13\x1f\xc4c\x82\x8a\xa3v\
+\x90\xc7\xef\xf7BH\xdc6'\x942B\xdb\xc8\x04\xa9\
+e\x00\x99\xb7\xba\xce\x13t\xddBH8\xa1\xa5}\xd6\
+q\x9b\x90+\xfc~\xfaxX%\xd7\x1e_\x1a\x96^\
+\xff5\xac\xe1h\x03y\xccx\x11\xa0\xe3\xef=5,\
+}\xff\xf4\xb0f\xbf\xa2\x95\xe9\x820qe\xbc\xa9A\
+\x9c\xcb\xefuk!\x09\x00*\xf7\xf8\x07\xa5\x14R \
+\xfc1\xaf>\xaf\x16AZ\x11\xf8\x7f%l,G\x0d\
+\xe9<\xe7+H&\xe2 \x90\xe6 \x8b\x1e\x12V\x13\
+\xdd\x90b\xe2\x9fL\x9b\x855\x1cu\xf8\xc9\xda\x07\x90\
+\xc1\xb4|:\xfb\xa5\x90\xb3\xc3\x1b\xc2\xa4&\xf2\xaa\x8a\
+P^9n\x93\xec\xae5P\xc9$.q \x9c\x1e\
+\xd6\x0c\x5c\xd4\xc5\x0flz\xd7\x22\xc0\x5c+g\xa6w\
+\xcfrL:`V\xecY6\xe2\xe9\xdf\xc2\x9a^\xe3\
+\xfb+\x909\xbb@\xa2\xdcRL&\x1f\xfd`6\xe6\
+[\xc2\xaa\xe3o}E-\xe0L\x82rd&\xa3\xc8\
+\xfa\xd7\xf3\xf3\xc2\x9aJ\x16d\x17@y\x16\x1d\xa4\x96\
+\x85D\x85\x16G\x85\x83\x14h\xa5\x10\x01&c\x10\xa4\
+\x0a\x92Ao\x0c=)\x1f\x07$\x01@\xcf\xa2O\x80\
+\xdaC\xe0\xfb^]\xde\xbf\x97]\xa3\xa7d\xab\xe4*\
+\xbe\xbd\xe91BFF\x90{\xcb\xb4\x10\x80\xe18\x01\
+\xd5\x07*J+\x84\xc6\xd3\x8eb\xad\x14\x97@\x91\x09\
+\xcdu\x12\xa0\xe0\x98\xdcl\xe8u\x09\xa8\x08\xb8\xfa\xde\
+b\x02\xa9>\xd0\xe1:\xd7t\x8bE\x19O\xc6\x11\xc7\
+Z\xdf\x1b\xca\xdf\xcb\xb1\xf5j\x0a\xabw\x90k\xde\x97\
+\xeb\xe8\x03\xc0>\xd0#\x90\x10\xb9\xdf\xb0\xaez\x9fa\
+)\x07\xa2\xce\xfd\x901\x95\x1c\x9a{\xcey_\xa0\x95\
+\x90\x14\x09\xe2\xe4\x03\x00]\xed+\xc2\x1a\x07\x93\x8d\x84\
+\xe7A\xc0\x8f\xa3\xdc\xb1\xd3;\xf0\xaf\xac\xf4\xcb\x10\x01\
+\xcd\xfd\x11\xf8/g\xb9'@\xed\x13I\xac\x1f\x1ca\
+\x021Z=\xf8\xbc\x1e\xb1@\xa0J\x85\x91\xfbE5\
+\x81\xcfEfK\x19\xf0\xe1\xf2RYq\x06\x1fh+\
+\xefK &\x99\xd14Z\xa52G\x02\x80\xc4\x96\xe6\
+\xe3\xfc\xd7\xd2;o\xd6p\xd6/\xaf|1/\xb9\xff\
+\xd5:\xce\x81ur\xd3Dm%!\xf0\xef\xc9\xfe\xba\
+\x04A\xb3\x1e{u\x81\xe5\x89)\xf6\x05\x1cb\xd6\xcf\
+\xb1\xfa9\x81(\xef\xc7\xf5s\xbf\xbc\xfe\xad\x93\x7f\xec\
+\xc9\x06\xe1\xc4\xd8C\xf2z\x907.-\xaf\xa0\xfb:\
+!\x01T\x85\xca\xe4\xae<7Z\x03\xfa\x84\x81\x02\x0e\
+\xe6\xdd\xfc\xd3\xf9\xaa\xdc\xfb\xbdQ`\xa6\xfe\xc1\xfe\xcd\
+~%\x884\xac\xd7\x1c\xf8\x86\xb4\xf7\xfb\x0a\xf3\x8cD\
+\x03\x95q*+\x04*\xf4\xf4\xb3?\xd3\xeb\x0bI\x1e\
+\x08\x06\xce7\xd6\x0d\x89\x0d\x05\xc0\x96\xa7T`\xe0\xde\
+{*\xe8\xb4\x02\xd1[-R\xb9\xf9\x84\xb0\xda\x83\xe8\
+\xc4!\x07\xb6\x1c\x1d\xd6\x89\xc9\xeeph\xa9\xf0\x22O\
+\x88\xac\xe6\xf7\xc3\xfeA\xe2\x10\xe8 \xcf\x99}~\x8d\
+\xe5-\x1a\xac\x1bW>\xa8x\x03\x95\x87$\x0f]x\
+\x12\x80$\xa4\xd8\x07\x08\x94 [S\xc5\xc2dW \
+1@\xfa\x91\x18\xa6\xc2K\x80\xaeJ \x89n\xab5\
+p?\x11\xa8|\xa3Q\x17\xa0\xc5D\x0e\xa79i\x9e\
+\x95\xad\xb6vu\x888\xeb=\xd3z\x82l\xa0\x1cy\
+'\x22;9'\xce7s\xd4(\x91c\x95\x11\xc6\x0f\
+.\x00\xf5\xe0:\x11\xf3\xd4lU\x85\x80\x00\x99^X\
+\x12g\xf8+bcg\x1ft\x22\x8e\xf5\xc6z\xa70\
+@b\x8c\xc2\x85\xc8\xb1\xecH\xabu3\xbc\x89\xf0'\
+\x9c\x90\xe0\xbc\x07\xb2\x8f#\xde9\xb2.\xe8\x88t\xd9\
+\xe4\x7f\xb4N\xf1\xf9\x8c7\xeb\x96\xd6\x12\x9e3\xe7\x13\
+\xdc\x1a\xa8\xc2\xa8\xe7\xd6\x05\x0b\xcei\x15r\x96\x9e\x17\
+\x96^\xef\x9b,\xf9\x99K\xd7.]\xb3\x94\xce\xdf\x95\
+\x17\x84\xa5m\xee\xbba\xe9z>\x98\xec\x03BJ<\
+\xbf\xcaw\x01i\x9e^\x13\xd6\xb4D\xc4\xa7>\xb3I\
+D\x07\xe2\xe3_\xea\xbcX\xda1\xac\x09\x1c@>\xa9\
+\xb0\x84J\xc3\xf0\x97\xb0\xf4\xfd;\xc3\x9a\x96\x16\xedk\
+\x04.\x04\x14\x11v\xe6\xc0\x13\xf2M\x91!\x92`\x84\
+\x9c{\xf1\x9a\xb0L^\x9c\xd5I\xc6K\xc2\xd2\xdf\xfd\
+6\xac\x06\x0c$\x86\x08\xe08\xa7\xdc\x8a\x0b2\xe5\x11\
+9\x85\xe2\xf57~)\xac\xb2\xf9\x8f\xbb\x875\xfe:\
+\x88\x85@\x8a\x1c(\xd5\x87\x08`~\x16\x96\xfeo\xdf\
+\xb0\xf4\xfd\x07\xc3\xd2\xeb&a\xb5W\x1f\x12J\x10\x02\
+\xf8\xd5\xd3=\xc2j\x80\xef\x0a\xb1\x90\xa8Y\x8e\xfb\xad\
+\xaa8\x9f^e\x05-\xd3\xf6\xed\xd2r2?'=\
+\xd7\xe74=\xeb@\xd3!3\x85\xf3\x8b\x8a0\x15{\
+\x90n\x14\xa6\x14\x07\x0d\xd7\x15\xe4\x06H\x80\xb4V\xcb\
+\xfc\x87\x93\xec\xb6\x19;Z\xfd\x13\xfe\x9f\x80^\x89@\
+T(<\x0f\xe0N\xa1B\x0d\xf4\x1fRL\x10\xa5\x8a\
+\x7f\xdcRp\xd3\xfc\x97\xf9\xa6z^\x9a\x14\x94\x82\xe8\
+\x1b2=f<\xdf\x0f\xe5\xe7\xbb~.i9q\xc4\
+\xfeNAe\xde#\xac&\x00L\xaa\x87\x8a\x92\x12\xda\
+)\xda\xca\xec\xf6\xf3\x0ft\xce\xc0\x91\x06\x92\x8f\x96&\
+\xf6Y\xceg\xad\xe3\xe9\xb1a\xe9\xf5\x98\xb0\xb4\x8e\xfe\
+_X\x13\xb0\xfeOA\xd0\x18!\xa6\xf1p\xe1W\xef\
+\x0b\x84\x9eD\xdc|r\x09p\xcd-\xa2}q\xfa\x8f\
+\xb0\xca\x91`n\x18\x9d\x8fN\xc8\x0b)\xe5}\x8b\x02\
+4\xf3\x83\xc0\x9b\x00^\xfb\xa4\xfd\x11\xfcc\xce3H\
+\xe6Y\xbf\xa8}p\xde\xf2E\xdc\xa9\xf3a|nX\
+Z?\x1f\x0f\xab$\x94&\xe1\xe7\x5cB.\x12\xb2T\
+\xc8\xc2\xf1?\x84\xf0\x22>\xb6\xcc\xaf\xe4/W\xe6\xca\
+\xc4!\xd5\x81s\x8f<\xd0`\xa0\x16d\x92\x81\xce<\
+4,]\xe0\x9b\xc3\x1a\x9dX*\xd3T6\xc4B9\
+\xdc\xbed\xb2\xe7I\xf2\x82Tn\xc5\x8ak\x16Y\x91\
+\x0e\xc2r\xebL\x90\x1c\xd1\x00b\x05\xd4\xc6=\xa7d\
+:\x08\xfcp(\x98\x888@\x04\x1a\x1c\xd4\x0a|\xe7\
+\x0f\x845\x0e\x802J\xfe\xff?/\xaf\xa0\x85HJ\
+\xf4\x88QY3i\x04\x81\x19\x9f\xc7\x17\x13\xbf\xd7\x7f\
+\x875\x99\x83\x9c\xeb\xe7\x80\xe4\x80\xe5 \xe7\xfd\xc9`\
+\x02\xc9_C=\x84@e\x08\x94\x09\xe8\xd9\xa8\xa9\x0c\
+\xec\xdfU\xc2p\xf8\xc8DS\x81\xe3\xe7\x04 8\xbc\
+\x5c?\x81U'\xd7d\xd6\xf4Y\x074\xe4x\xfc\xdd\
+zrP\xd6\xd0\xfd\xf1s\x12\x1b80|\x0e\x81.\
+\x8e\xb7 \xc9\xc3:b\xdb\xef+\xac}\xab\x01\xe3I\
+@\xb0\xa6+\xfb\xcb+\xafSG\xba\xc7s\xa3\xc2\x0f\
+B\x06\xd5\x09A\xfe]\xe9\xe4\xfak\xe0X\x02\x11\x91\
+Z\xa6\xf7(\xf7\x03\xd4\x9eV\x0b\xe9\x13\xbbBM\xcb\
+\x05\xbd\xb2\xdf19^\x99\x87\xcc\x07\x12C\xd7w\x09\
+\x01\xc6i6\x87F\x19_\x02\xbe\x1e1PU\x01\x96\
+\xb3\xd0\xdf\xb6k\x81\xe0\xe7\x04T<o\xa0P|\x91\
+p\x83\x13\x84\x0a\x16\x89\x068/\xe8\xf1\xe5~x.\
+\x8cw\xf4b\x9e\xd8@\x9e\xc4\x96\xeeD_\xafgN\
+b\x00\x08\x18\xe3\xc9<e]\x02\xa5C6\x90Lo\
+\xcf\x8d\xc1}\xf3|I\x10\xb1\xc1\x13H\xf3\xda\x93\xfc\
+1>\xbd\xbc'\xaf\x04\xec$\x04\xd8\xdf\xd6\x97\x1a\x08\
+\xff\xd7\xcf\xef\xcd\xddJP>\x87V\x03\x12D$\xda\
+ \xbb\xbb^\xfb\xc5_;\xd9N\x0et\xde\xb7\x97\x9b\
+T\xcf\xaae\xf2\xd8\x0f\xef)\xb2\xc7{\xa8U\x89\xc0\
+\x80\xc0\x8fu\xc4\xf7T\x8cY?8\xfc\xb7+\xeb.\
+\xd4\xabs\x02\x06G\xe9^B\xf0\xdcK\x9f\xcf\xbc\x04\
+Z\x0c\xa4\x98\xfd\x8e\xfdL\xcf\xd7\x90e\x10_\x90\xc7\
+]\x22D\x00\xa4\xae\x04\xc4\xf4T\xab\x22\xec\xf5H\x80\
+M\x22\x95\x00\x9f\x84\x0b\x01\xcf)E\xefx\x15\xae\x0a\
+\xc8\x8c\x94P0I\x1d\x8e\x1e\x15\x5cX\xe6\xf9\x7f\x12\
+2\x8f*\xc8\xb5a=A\x81\x1f(Y.\xc9\x07:\
+\xb0&0\x22Q\x80\x0c/\x15oZ\xe2@\x18\xf1\xc5\
+\xff\xb3~\x99\xbf\x8c\x8bt\xc9\x1d\x08C\x16\xd9s\xc4\
+P\xa9\x14T\xd2\xc8\x03*\x95\xccWz\xa3qhE\
+\xce\xeb@\x13G\x91\xf5G\x22F\xbd\xafN\xd4\xd0\xb3\
+/d\x82\x13\x18 \x0e\x98g \xe34\xdf\x90\x1b4\
+\x97\x11\xeb\x07\x04!\xf3\x88\x0a\xbcX\xca\x9d g\x9e\
+\x90\xd8\xe2:p\xe0\x99/$\xeaT\xd9q\x80\x0fR\
+\x01\x84\x08\x0e=\x8e*\xadi$^h\xb9\x04\xba\xcf\
+\xfe\xd3\xb7\xe2\xe0\x00*qo\x99Q\xf4\xe3o\x0ak\
+*\xccp\x01@2\xc8\xcfa\xb5f\xfeSyd\xbd\
+\x82\xe8\xe2\xfa\xfe\x16\xd6$\xf48wi\x15A\xd6L\
+\x15U\x93\xb8B\xeeL\x8b\x0a\x85\x03\x12\x95<\x7f\xfc\
+\x02\x10M\xbc\x8f\xa0\xd6\xb4\x02\x8c\xf9+\xbd>y|\
+\xca\x98\xfc\xc1\xa5W'K\x01\xc0\xca\xd3W\x9e\xb62\
+z\xd5\x7f\x15VI\xd6\xf0\x87\xa6\x9f\x875\x95s\xf6\
+\x0b\x15R\x5c\xc9\xa4\xb5G-\x16\xe3\xab\xc2\xd2\xeb\x9e\
+a5\xe16\x1e\x10\x96\xde\xff\xa5a5 \x98\x1e\x16\
+\x96\xae\xeb\xdea\x0d\xf9\x9c\x12Q\xc8\x84\xb9\x12\xaeu\
+\xee^u\xce;\xed\x8f\xf3\xfea\xe9}\x1f\x17\x96^\
+\xaf\x0bkZ\x01\x1e\x19VU\x04\xbc^\xa9|Bn\
+\xacs\x12\xd2@#\xfa@(\xe8\xb9Nw\x0c\xab\xd7\
+=\xfe[X\xd3R\xa1\x00k\xbc.\xd9\xaf\xd5\xba\x11\
+\xbd\xf8\xe7\x87\xa5\xd7\x13\xc3\x84\x088\xae\xb6\xe2\xcc\xb7\
+\x0f\xab\x09\xaa\xe9\x01a\xe9\xe7\x7f\x0a\xab\xa4\xcc\xd3\x1f\
+\xc3\xd4\xf2\xfb\x1a\x15V\xae\xc9\xec\xf7\xa5\xe2{P\x91\
+'\x87\x0c\x17\x7f<s\x84m^\x0b(\xf4\xfc\xf3\xb9\
+\x1e\xdf\xed\xe7\x1d\xa2'?\xfd4\xb7\x22\x984\x0d\xe4\
+\x0e\x89{Z\x84\xd87!7\xe5}\xb6\x09\xab\x15\xf3\
+\x14\x03\x1d\x95\xe3 \xc8\xedP\x0b\x089\xf5\xb8\xcf\xb5\
+\xc3\x9a}Hr~^\xef\x0a\x08\x81l\x83\xb0\xb0\x8c\
+$=\xf1O\x08,L\x1a\xa7o\x85\xa5\xef\xd7\x09\xab\
+-W\xec\xe3\xf37B\xd0\xbai\xfd\xe1\xfcRBz\
+>8\x85\xfc\x077\x5c\x1f\xfa\x1c\x10\x10\xa8,\xa0&\
+\xe2sE\x05_\x12N\xe3\xab\xc3\x1a\x0e\x01\xc9\x8d\xc2\
+\x09b\x045\xe4\x92\xff\x12\x96\xb6\xb1G\x84\xa5\xef\xdf\
+\x12V\x0b\xbcN0S\xc8\xd2\xbed\xee\x07\xe2\xa0\xbb\
+\xc8\x9f\x02\x91\xb5I\xf9\xfb\xf4\xe9\xe5\x5c\xe2\xfc\x15B\
+\xd1\xd7\x01\xa2\x8b\xfd\x1f?Dq\x88\xb9\xe4\x1e\x1f\xd6\
+\x14\x22P!P\x02\xb1\x97W\xefUU@\x00\xcf\x9f\
+\x0ck\x12\xdc\xc4i\xab\x855~\xcc\x14\x96\xf6\x8dw\
+\x84\xa5\xf5\xb3kX\x1a\x9f5\xc2\x1a9uHHA\
+^j\x7f\x9f_\x18\xd6\xa8U<6[-\x0c\xaau\
+m%\x0b=8\x22\x83%\xd2\xf2|\x0f+\x99\xeca\
+\x1b\xf5T\x8b\xd5\xdc,\xfa\xf4N\x90I!\x83\xab\x8c\
+\xdaxKX%WJ\xcb\xa2@@\xc8\xe0\x8b\xe4\x08\
+(ap\xaafVU\x91\xc6\x8c\x0f\x0a\xab=\x9d\x86\
+\xb0\xed,y?\xd4\x0b\xa8\x5cI\xa6\xd0\x0e0z\xb7\
+8F\xb0\xec\x02M!\xc0\x22p\xe0\x80\xc7\x81%\x80\
+\xe0 \x95\x9c\x857\x08\x02\x81\x1e\xd2Le\x80\xc0\x86\
+\x9f\xd7\x00\xb8\x04\xdaLh Gl\xd48\xe0}\x80\
+\xca\xe7\x81` \xb0\xe1\xf7\x04\x12\x1c\xa8\x04\x8c\xc8\xf0\
+\xfd*\xac!\xa7\xfbgPp\x02(\x1c\xd1\x9ee\x9e\
+\xc0\xb8W\x13`\xc1P\x89\xe8{I{\x0e\x02\xde\x87\
+@\x87\xf7\xe1\xef\xd8\x18\xb9\x1f6b\x16\xda\xea\x96\xff\
+[\xc6%\xb0Je{\x0b\x93\xb3-\xd7\x11\xef+\xdc\
+8\x92\xb0's}\x04\x86\xbd\x5c\x1a\x8e>\x81\x5c\x0f\
+-\x97\xac\xe0\xc0\xfdq\x1f\xdc?\xf3\xe4\x0fz\x8e\xc8\
+\x04B\xf6vH\x81\x0c\xcf\x1f+\x99\xc9\xf9\xda\x120\
+\xbb\xb2Mb\x05y4*1\x1d\xbb<\x1b\xa4\x1dY\
+\xee\x87\xf9\xd4'\xa8\x18O\x02[\xe6-\xe3\xc3\xfd\x00\
+U\xc4a\xa3\xb2\x8a\x1a\x00\x88\x1a\x1cG\xfe\xff*\x05\
+F\xe8\xec.\x94\x91\xed\xd5\x06\x08H\xa8\xd8\x9f\xa9\x0c\
+\xa7\xf6\x1b\x93\xba\xe9\xf3,\x97I\xa6\x9d\xf5\xdes\x01\
+\xe0H\x93p`<\xa8\xb0\x01u\x85K\x82qb}\
+\xf0\xc5\xfcf\x9cj\x82i99hG\x1e\x99\xe6@\
+Y\xe7p\xa1@\x96\xc9\xf8\x10`2_\xd8\x1fz\xc4\
+\x10\xfb4\xe4\x95\xf4@\xc31@\x0b\x00\x89\x8f\x1b;\
+\x19\xbd^\x96\xad\x92#\x96\xfd\xe4\x00\xbd\x1f\x10\xf6\xbb\
+)1\x08\xb9#\x01\x83\x90Q\xc9\xc1\xf8F8\x18\xae\
+8=vx\x5c\x0e\x98\xd7\xcd\x18\x89Z\xd1'\xe1\xb2\
+\xb9\xd6\x11\xea\x00$\x5c`\xa9\x17\xeb\xb79)\x18\xd7\
+o\xa9B@\x80{\xb0\x02\xb2\xcb\xd4\xd2\xc5}T\xe4\
+V&\x0b\xb3\xec\x1a\xe3\x08\xd2\x00\xc7\x98\xcf%a\xd0\
+\xcf{\x90.\x04.\x82\x02\x9a\xfc\x8f\x962\x9e\xfb\xf1\
+\xd9\x9c\x90@7\xdb\xa4\x998\x16B\x00!;h\x84\
+@\x9fPT%\xd4\x09j\xd6\x01$\xbb@MI\xc0\
+\x83< !\xce\xfe\xc8\xbc\x02\xa9A\x85\x15\xc7\x85\xc4\
+=\xbd\x8b\x90\x1b\x1d\x1c\xd6\xc8\xa2\xa9\xc7\x9fJ\x92\x0b\
+\x05\xec\x03|.PUz\xd3\x85\xf4\x19\xef\x18\xd6\x5c\
+\x17\xfb\xa9\x90<\xc3\xab\xc2\x9a\x16<dd\xe9\xb1\x87\
+\xa4Q\x15\x22'.\x08p\xa8\x94\xd3{)\x0e \x12\
+\x0e\x96yT\x22\xd1\x89\x09\xe6\xa9\x10\x0a\x86^\xc3\xb2\
+O\x02\x9euE\xc5\x8a\x16\x0f\x1cd\x90\x19$ \x98\
+\xafp2\xc01D%\x07G\x14()\xd7C\x22\x89\
+\x9e{\x0a\x01\x9c#]\xeb\x14\x89U\x12\xfe\xeeI\xd7\
+\xfbA\xb6E!\x07\xc4\x83\x11\x97p\xf1p\x8e\xc9\xe1\
+\xf6\xbc\xebX\xb8\xad\xb2\xc4>J\x8f)\x01\x13\x10c\
+\xc9\xca\xd1\xf2@\xa01\x5c\x1e\xd6\xec\xbf<\xd7O\x86\
+5\x08\x06\xfc\x12%Z\x8cD\x01\xa1\x0a\xf2P\x95\xf8\
+\xe9{a\x15\xe9B`\xb98+,\xfd\xfe#\xc9>\
+\x9a^/\x9b\xbe1]\xd6$\xbc\x8e\x10\xeb\xfa\x96Y\
+\xcf\xa7\xa8\xc2\xa4y:\x1e\x12\x96\xfe\xfe\xea\xb0t,\
+\xbc<\xd9\x89\x0dT^\x1d\x22\xc3i\xc3\xe9\xc3iY\
+\xbe\xf3uY\xe7\x1brO\x91L;`Wo/\x1c\
+\x16\xf3\xc9aM\xc0F\xef1\xa4\xa7\xb5U4\xaf\xd3\
+\xe9\xfa\xb0\xf4\xe3\xdb\xcd\xb9\xc7\xddP~U\xb8\xa7\xe7\
+\x84\xd5\xd6M\x90Z\xf8\x89f?\x17\xb4\xdb\xe4\xaej\
+\xc9D_\xdd\xea\x1d\x90+\xaa\x90\xe6\x04\x95\x10z\xe3\
+\xf6a\x95]\x1c\xa8\xfb\xf4\xda\xb0\x5cQ\xce\xfb\xc7\xb4\
+\xcd\xb4\xdd\xb4]\x83\xe4\xd0~k\xfd\xf9k\xc2\x9aq\
+\x88\x806\x9d\x1f\xd3\xe7\xc3\x1ad\xa4\xf6Sz\xa6\xb3\
+\x8a\xc3\xeb\x1a\xbf_\xaa\x22|\x8eI%\xd1]\xbf1\
+\xcd\x87\x1b3\xd7\xd8\x9f\x82k\x0c.\x02'\xaei%\
+e\xde\x91\xf8\x12\x1b\xfc\xbc\x87\xb8\x08\xc4\xddd\xb9Z\
+Z3\x0e\x9b\x0f\x9d\x0f\xab- n]V\x05z\xfe\
+qX\x83$\xbec\x9ei\x05\x09\xf4\xb4\xa6R\x1b\xf5\
+\xfc\xff($\xcb\xb95\x19.\x15\x10\x14Q\xf9=3\
+#)\xce\xcer\x9e \xd6>\xa6\xf3\x0e\xd2r\xad\x13\
+\x17^t\x8eM\xe7O\x17D\xa2\x06\xe40\xea\x0bN\
+\x8c\x82d\xd0y9\xbf\xad$FM\x8a\x8a\x1f\xa6\xfd\
+\x84\xe7f2O\x91D\xce\x1b\xeaU\x09\x99 g\x9c\
+\xe2~>\x14\x96\xbe\x7fpXZ\x9f\x97\x87\xa5\xd7\x1f\
+\x85U\xe4,\xe7\x80\xb9+h\xf9\x15\x996\xad\xe3\x90\
+\x81\xa2>\xe2\xf5%\x049\x81\xf1\xfc\xd7\xb0\x86#\x00\
+\x84\x12\xe3\xa5\xfd\x9b\x84\x1e\x81\xf5\x8a\x1fh\x9f%\xae\
+\x84\xe3\x00Yp\x90f\x14\xae\x89c\x84(\x9a\x0f\x08\
+\xab\x08\x10\xfb\xa5\xc8\x97\x93\x10'\x91\xac\xfb_\xda7\
+\xac\x16>\x16{\x84\xa5q{cX\xc35D\xa1\x1b\
+\x7f\x80\xf3L\xad\xf0T\xfe\xf1/Vz\xc2\x130\x5c\
+1\xffp\xfea\xd3\x0byM\xc9\xb4\x03e\x1b\xce+\
+\x08\x01o\x00;\xe9\x03\xdeR*\x1b\xf3/\x0a9\xc7\
+\x8a\xe7\x94\x03`\xfc\xd5\xf8\xcb\xf1\x97\x19\xea\x98!V\
+\xcex\x0b\xc2>\xbc=\xac\x92\x9e\x8d\xc7\x865P;\
+2Q\xd7\x14\xf2\x08zF`\xc9d\xe3\xf3\x03Pf\
+\xc8\xa4&\xca,\x03\xe9d\x02:3\x82|\x15\x95\x0c\
+X\xa37P%\xae\x97\xd1\xa3bB\x00A I\xe0\
+\xfa\xcf \xc3=\x0bx\xff\xff8B[/\x0f\x10\xfc\
+~=\x19\x5c\xa7\x0f\xef\x00\x90\xca\xb2\xc8i\xfcw\x04\
+B8\xbe\x04\x00}\x80\xcfu\x10`\xaegv\xf4\xe2\
+\xd8\xe2\xd8\xf5:\xf0\xdc/\x01r\x7f\xddd\xf2\x090\
+\x91\xcb[[\xef\xcb\xf82>=$\x15\xb6m\x12\x0c\
+<\x07\x1c\x8f>\xa0\xe7z\xf9\xff-,[V\xc8\xf5\
+\xf8=\x89\x82:\xae% \xdau9ty\x15\xb27\
+\x10\x11\xdb)@#\x90\xf9k'\xdf\x06[8\x0e.\
+\x89&\x9e\x0b\x89&\x1cX\x02W\xc6\x97\xbf\xe7}\xfa\
+^\x22\xee\x9bqe\x1e\xf4=\xfc\xbf\x90cN\xeb\x03\
+\xf7\xbfqW\x09f>\xf52\x81\xfc\x1e\x121\x91\x18\
+\x99,\x0b\xb6nz\x80\x090\xb8.z\x85\xaf\x90#\
+\xab\x9e\xb3\xe4L\x17\xb9-\xc6\x0b\xc7\x9a@\x9e\xd6\x08\
+\x05T+\xfeS\x1b4\xcf\x9d\x00U\x15J68X\
+m\xdd\xcbM\xa2\xa6'\xc5\xe4~\x91\xb3B\xad\x80\xc0\
+\x9b\xebg^\xe1x\xaf\xbb\xbc\x85\xc4\x9c\x1b\xac/\xc6\
+\x97\xff\xab\xe4\x8c\xa5U\x00\x88\x19\xfb/\xf7\xb3\xfer\
+\xf5\x01\x8f{\x8f\xc8\xa1\xc7M\x07\x8eI\xddX\x7f\xcc\
+\x1b\xe6#\xf3\x82\x84\x11\xef\xc7\x01\xc1\xfd\xa2~\x01\x9b\
+<\x09\x0a8]\xd8/\xb9n\xe6)\xeb\x17\xce\x15\xe4\
+\xa4jkS\x19o\x05\xd2\xc1Y<4\xa4aYW\
+\xf8\x86&\x00\x11\xd2\xc0\xf3\xfc\xfbe\xfe\xcc\xa7\x855\
+\xef\xf78s\xbf\x94\xc0\x9d\x84.\xeb\x8a@\xf0\x80\xb0\
+\xea(:!\xa6D\xd6*\x95cd\xe2@h\x11\xc0\
+\xe2\x10\xb2\xfe\x09\xb4!E\xe2\x8b\xfd\x0925D`\
+`_\x072\xa9}\x01rY*d&\x03\xa4\xb2+\
+\x04\x82Y\x89O\x0b\xab,\xf1\xf4\xbc\xcf\xa7\x865\x88\
+5Z\x5c\x80\xb0\xaag\x1c21\x07\xfcz\xa5b\xe3\
+D\x19\x89M*_@\x9d\xd5\xf3\xe9^fz\xf3\xa9\
+\xa0\xe20\xe3p\xe0O\xfcKX\xf5\x1f\xfc\x1c\xd4\x03\
+ku\x04\x90\x1aJ\xac\xd0\x1b\x8e\x0c\x99\xd9\x9f\xa9x\
+S\xb1c\x7f\x04\xaa\xa9\xe7FB2\x93\xb8\xed\xda\xb0\
+\xfb\x93\xa0d\x9f\xb95\xd3\x83F\xcb\xc8\xa7\xb3l0\
+\x8e\x22\xe7\x12\x9c\x00\xac7\xcei\xf6->\x97\x96(\
+\xe6/\xbf\xffj\xb6\x1a\xd8\x92\xf0\xa0\xf7\x9c@\x0fh\
+*\xfb$d\x90@\x94\xfb\x16\x1f\xd4\x808\xaf\x14x\
+\x8e\x0f\x08k\x0a-\x22\x97\xf3\xfa\xc7\xd1d|D\x92\
+\xe8\xf9\x85\xaa\x83\xc61\xcb\xaaEb\xeb\x9ba\xcd\xfe\
+\x22\xee\x17\x12B\xf4\xee\x03i\x85\xe3\xc2\xf2b@\x94\
+Ap\x22;)\xc7\xdd\x0e1\x01\x0f\xd0]\x05\x1e\xc8\
+\xbe\x0d[\x86\xa5\xfb<\xa1\xe8\x5cO\x1b\x84\xc9\x11\xfe\
+U\xb3\xae\xf4\xbe\xd3\x13\xa6'NO\xc8\x81\xfc\xcf\x22\
+\x90\x9fv\x9cv\x98v\xc8\xe4\x81'\x0c'4\xfb\x1a\
+\xebS\x10\xe8\xf9\xa2\xe4\xf0_T\x0b[\x99\x9cp\xaa\
+\xc8\x92\xac[\xff\x98\x06\x09CbZ\x81\xd5\xe2\x0da\
+\x8d\xda\x14l\xe8\xa8Y!\xaf\xa6\x80\xdc\x89!\xf6U\
+\xce\x91\xafK\xcd\xe2S\x05\xea\x9d\xfd\xdd3\x9a\xc4<\
+\x097\x0aWT\x9c\xd7\x0fk\x12S\xf4@G\xcf|\
+\x83\xe8\xa3\x17\x1f\x92A\x17\x10P\xe9 \x91\x06\x22\x88\
+\x0a\xb5\xe4y\xc7\xeb\xc3\xd2x\xbc)\xacQ/\x10y\
+\xdc\xf4\xd2\xe9e\xd3\xcb\xaa\xac\xdc\xfc\xcb\xb0\x1c n\
+\x98\xd5\x04V\x0b\xab\x08\x9c\x5cynH\x04\xf13\xa8\
+\x98\x9a\x9bDr\x9d\x90\x03\x9a#@\x5cJ\xf9\xf3V\
+\xcf\x09\x98\xdf\xe4\x04\xcc\x86\xb9$T\x13\x02\xdf+,\
+\xf6YT\xef\xaa\xe6\x1c\x14\x07\xd4|\xc9r\x92R\xab\
+\x9b\xa8\xf2?\xfdB\x88\x92\xf7\x85\xe5\xc0-\x93/B\
+\xeai\x88\xfdNaRC[=\x07\xe2G\xe6\x842\
+\xfe\xc9\x8d:\xb7\x88O\xd2\xd3\xcf\xc8\x87\xf44\xb3|\
+\xa8\xfc\xa8\xe9\x03\xc9\xceK\xaf\xef\x0e\xab\xfa\xf1T\xe2\
+\xbd\xef\xcb?\x81\xe3a~\xd3\xfc\xe6\xcc\x8d\xa6\xfd\x1b\
+\xd2?\x12*\xc4?.\x0c\x90x$\xc1\x82\xbf\xfes\
+\xb5\xb8*\xb1Fb\x86\xd6\xa5\xf9\xd2\xb0\xc6\x1f\xa4\x02\
+\xfd\xadR vK\xccZa\xf5\x9c\xa5\xb5b\xfad\
+Xz=:,\x17\xa4\x93ed\xcb\x99\x81lYz\
+\xd4\xd2aK\x8fj\x0a\x9a\x14\xa2\x95\xe8\xb7\xec(-\
+L$\xbeYO$\x0e\xd4J\xe3\xc4\x16\x85eZ\xc7\
+V\x0fK\xafW*\xa1t\x83\xb8\x12 \x83\xa7 L\
+\x02\x17.\x12Z\x88(x\xe8\x9c\xa1E\xcc$\xc6 \
+\xc7@rA\x9e\xd8\xcbl\xabek\xe9\xdc\xb0\xba^\
+\x17(/\x83\xa4\x00\x00 \x00IDAT\x9f\x0cK\
+\xe3r\x9f\xb0\x9a\xb0wK\x19q\xc7\x9fsI\xc8\x85\
+L\xd4\x0aV\xce\x7f\x09K?8\xb7\x90+e1\x8c\
+/7,\x96\xc8\xed|\xb8\x1c\xec\xc3\xfb\xd4\x22 \xb9\
+3W\x0aDzC/\x85\xc9\x1f$\xc32\xfe:\xac\
+\xe9\x85\xbcNP0\xf5\xb8\x8d\x8f\x0bK\xef\xa3\x0c\xcf\
+\x0a\xaeK,\x9b\xe9\xb0(\x10\xad7\x97\x0c\xbb3\xd9\
+\x1c\xb8\xb0\xf7S9\x81\xe4\x86^G\x1d\xb4\xe3\x11a\
+\xb5\xc7\xca\xfa\xca\x04`\x0a<\x9d\xa1\xe4\xe7@PI\
+@\xec#\x87\x98\xdeXX\xc5\xfbJ>\x0e=\x8e0\
+\x89\x80\xfe\x8b\x19\xdbA\xa1]\xb1\xea\xe5\xb9\xb8\xcf\x9e\
+3\x80\x0a\x0c\x19|2\x99\xff\x0c*\xcf\x04\xa3\x22\xcd\
+u\xb3p\xb8nz\x18\xa98r_\x04n\x04\xb4@\
+\x85\xd9\xd0 \x1dc\xe1\xd1\x22\x00\x94\xf7n\x9a\xa0\xbd\
+\xa3\xc4}\x12`\x11\xb8\xf3\xbe \x02z\xf95\xc6i\
+-\xb3\xd8\x17\xc7sC%t\xfa@\x97\x00\x98\xff\xeb\
+{\xe9\xfb\x80\x0a\x87\x0fh\xec\x1d\x04q\xaf\xe4\x86%\
+\xf1\xa1\xf1\x9boR\xcf\xdd\xa1\x22\x85\xda\xca\xad\x00\xe5\
+zyn\x8c7\x8e&H\x0098\xee\x81\x82\xfc\x8e\
+^\xf3\xae\xe7\xdf\x01.\x95*]\x97\xafc;\x05t\
+<7z\x95z\x04\x05\xe3\x0c\x84\xedd\xf5\x9a\x9e&\
+R\xa3\x90\xc1\xba\xb0\x81\xf6j\x83vE\x06\xe83\x99\
+U6\xc4_\x0a\xe2FB\x03G\x18\x87\x9f@$\xc8\
+y^\xd7\xe8\xcf\x92\xa09N\x154A~\xcd\xba\x0a\
+\xfb\xf7\xfeau\xdf\x98\xaf.\x19\xfa\xe4\xae\xe7\x9f{\
+\xa3\x07\x1a\xfb\xc2\xb0\xe6\xb9\x82\xa4\xe1y\xe3X1\xbf\
+\x987\xacK\xc6\xab\x92)\x92\xb0*\x7fO\x8f?H\
+%\x90?\xbc?\x95/\x1cO\x9e\xc3\xda\xcb\xd9\xf7\xc9\
+\xa8\x9b\xac\x86\xf5\x0a\xd4\xff:e~I\xc8AV\xc9\
+u\xdd\xa4\x9f\xa3W\xcc\xfa\xe0>D\x02\x98fU\x09\
+\x8cXW$4\x80\xc6q\xa00\xef\xa8|\x03!%\
+\xd0\x06\xeaJbA\xf7cd\x082mp\x91\xbc\xb2\
+\x90\xd8\x98T\x88q\xe1:Q?Q\x02\xda\x883\xf6\
+S8P\x0e-\x10X\xefG\xccs\xe6\x97\xe6\xa3\x13\
+D\xea\xb5\xf7~\xda\xb7|\xb0>\xa9\xc4\xf2>$\x16\
+ G\xfdg\xea\x1b<WH\xdcX\xa7\xb0\xa0\xd3\xfb\
+\xab\xf3\xce=\xe5\x04\xcc\xdf\x0e\xab\xec\xe6\xd6\x15V\xab\
+\x9cU|\xa8\x1ch\xfeX%\x07V`H\xed\x18\x0f\
+z\xb0\xd9\xdf \x13\x02\x12\xce\xfe\x85\x83\xcd\xdfi\xdd\
+\x1aq'\x99A'\x92t_\x995\xfd\xfa\xa6\xc5\x81\
+\xf9Cb\x84J0\xe4\x898\x8a \xc9\x94\x18@\xf6\
+\xc8\xac\xe7\xc8\x1a\xbe)\xac\x81@\xe2\xa8r~\x00\xa5\
+e_\xc6\x81%\x90\x22\xf1\xc1\xb9F\xe2\x8f\x8a\x90\x12\
+]n\xfd \xf1\x8d^\xbb\xb8\x1b|n\xf3\xf7\xf8A\
+\x22\x9fB\xb5\xc0\x95\x5c\xe63\xd7\x09\xb7\x01\x9c\x0az\
+\xde&\xc7\xa3W\x9b\x0a\xa3\x02\x9dF\xed\xa3$h\xd8\
+\xc7\xb9o\x02n!s\xa2a'Zv,\xcf\x07\xeb\
+?l\xd2\xc8\xeai>\x83\x802B\x94J\xbd\x10&\
+T0\xcd\xd1\xf4\xfa\xb0\xf4\xfb\x97f\xab\xa4\xcaj\xe1\
+\xc2\xc1w\xc0\x0bb\x09d\x0e\xd7KK\xa5>g\xba\
+2\xacQo \xc1\x04\xa7\x84\x90\x02\xf3\xdd\xe6\x1d\xe7\
+\xb4\x9fN\xe3\xb44-eG>\xf72OO*\x01\
+\xc4\xf4\x8e\xe9\x9d\xd3;\x1a\xbf\xef A\xb5\xa9@\xcb\
+\xd1_q\x8ed\xfb(T\x9d\x22\x84\x13\xf2bQ\xc9\
+\x8d\x9e\xfbM\xc3\x1a\x993\xb1\x97\xcfw\x0d\xab\x01\xf7\
+\xe2\xc5a\xe9\xf3\x7f\x1d\xd6TV!\xc3\x84\xdb\x8a}\
+V\x5c%\xc3\xeb\xc2r\x22\xa5$\xea 1e\xff~\
+\xbb\xe4\xd8\x1e\x92\xec\xa1U%g\xde7\xac\x22h\xcc\
+\xa5\xf0iq\xa0|7\xed~\xdf\xad\x15\xf7\x9c0<\
+\xa5\xf1\x1bT\x015\xd9\xe39\xc9\xd3?\xb7\x22f-\
+\x0f\x18\x89\xa1s\xb4\x9e#`\xbb\x7fX\xd3\xba\x07\xc4\
+[\x15}*\x95\xf3\x19a\xb5\xb7\x7f: L\xc8\xa7\
+\xd3\xd2\xf7\x17\x85\xa9\x95\xe1\xb0\xdaj\x8cz\x80\xe3\x07\
+Z-h5\x91\x1a\x06\x05\x0az\xdb\xa7\xf7O\xe7E\
+@>?h>8\xeb\xa3\xa3\xff.6z\xcb\xbeA\
+\x8e\xa7\xca\xba\xfdD\xce!\x05\x90 \xb6,3\x87\x8e\
+\xbb\xc8L\xf3\xeeqTm\xe12\xeb?\xfe\xd0}s\
+\x13WE\x223\xdf)\x8ch?\x81\x83\xcd\xfb\xba\xb8\
+\xa7\xe6O\x84\xfeZF\xd4\x94\xfb?C\x5cm\x9a\xc7\
+\xc36J\xa8*13\xbd<\xac)\xe8\xa0\xa2#\xb2\
+Es!P\xb0\x01\xe9\x0aW\xca6:\xbf\xa9\xeck\
+^\x85\x98`\xde\xdf\xd42\x04\xb4\x9d\xf5\x89\xdc\x9c\xa1\
+\xe8\x04\xc2j\x89\x82\x03\x85^\x7f\xc6i\xf8iX\xf5\
+w\x16\xab\x85U\xf2\xc7\xb4'\xfe$s\xc6\x893g\
+\xdc*\xac\x92o\x9a\xd3\x84\xde|\xc8\xf8\x94@\x9d\x9f\
+\x15\xd6\xa8\xd9\x90\x08\xd1\xbcHgTI\xdc\xbdr>\
+)T-\xb2\xbfy\x9c\x0a\xe3W42\xbe$\xb2\xe1\
+L\xa0\x15P\xf3\xd0\xad;\xa88\xe0\xefP\xa1\xa7@\
+A\x01D\xe7\xa0\xfd7\xfc\x1a\xfcd\xd6\xa5\x12\xa2\xe3\
+}\xc2\x1a\xe4\x90\xfc\xe0\xe9\xe9aM\x9c\xaas\xc5q\
+E @o\xaa\xd7\xb52\x0f\xc8\xf1\x95\xe4\xcf\x8e\x85\
+\x06\x22sHn\xd6\xe8]\x22;\xc1\x81K\xe6R\x99\
+].\x90\x03\xc5\x95\x91g\x97\x96\x81q\xf3\xb0\x06\xba\
+\x80\xde\xa1*\x89\x832\xfb\xf3&%1`\x99\x88\xd3\
+tPA\x82\x82\x9c\xd0\xd6a5\xf3gvhA\xab\
+9\xa8\xed`\x90\xb0\x90\x83\x92\xb7\xb7s\x1b\x1dr\xc8\
+FX\xe0\xf4\xb8\xca\x91r\xa5C\x15lg\xa0\x08 \
+\x81\x90\xe2\xe8\xe1\xd0s\xf0\xf3 z\x07\x93\x83\x1c\x07\
+\x8dJ\x93KG\xeaE\xdb%\xac\x09\x98u\xf0#\xe3\
+a\x96\xe9\x1f\x16$\x87\xa1\x87\x04.8\xaa}/8\
+\x0esO\x22\xc6\xf7=KyeK-\x09\x08\xae\x9b\
+\xdfs\xdf8\xc2\x04pT^\xf9|2s\x04\x22L\
+|\x0e$\x1cQ\xc8\xf4p\xd4z\x92?\xde\x07\xb6~\
+\xee\xb7\xca\xd8-\xcf\xa8UR<\x028\x9e\x132p\
+\xe5~\xf9\x9c{\x97\x03z\xb8s\x09\xc8\x1d\xa0m\xad\
+\xcf\xbd\x93\xde\x0f\x12=\xd8\xda\x0f\xd7\xfc\xa0BE\xe5\
+\x90u\xc5\xf3\x07\xba\xd5'\x88\x94\x08\xb1\xec\x8bHn\
+\x1a\x9dT\xe4$K\xc2\x87\xc4\x0f\xefK\xcf\xfbj\x82\
+\xf0\xb1\xc1\x93@\xc1\xb1\xefU\x1c\xa8\x18\x13\xf0\x80p\
+\xc0\xa1\xa0\xd2\xc6<\xd8A\x07\xe5.J\x00\xf1\xbcq\
+\xb4\x09\xbc@\x0eQ\xd1b\x1f\xf9Z\xa9\x8c%\xf7\xa2\
+l\xd8\xb4\x18\x10H\x02\x9d\x16\x04\x98\xcc\xbe\x1d_e\
+\xa4\xcd\xd1\xc0< \xa3Nb\x8c\x0a\x08\x1b-d\x95\
+\xac3\xe6\x07\xcf\x89J4\xf3\x85q\xa0\x95\xa7\xaf\xe4\
+\xab\xc2\xefW\xe6?\xeb\x81}\x81u\xc8\xef\xf9\xbc\x1d\
+\x93C\xb5\xa3\x12Kwh\x02x\x02\x10\xe65\x092\
+\xd8\xfc\x17ZWT\xe4\x99G\xfc\x1f\xf3\xfa&\xabH\
+\x94}\x08\xd9R*\xdd\x90l\x82t\xe8\x13\x22z?\
+#q\xe0 \xa0\xe2\xc0<\x07)@`D\xe5\xf1\x01\
+\xea\xf5\x06\x1a\xad\x84\xc0\xfc\x91\xb0f\xbeu:\xf4\x03\
+-#\xec7\xecG\x04\x0e\xa8\xc7l\xa7y\xf8\x13\xbd\
+\xcfo5O\xf9{\xcb\xae:!Rz\xf5\xe4\xc8{\
+?Gu\x01\xb9\x22\xc8{\x08t{\xa8(\x01\x0d\x89\
+$\xc6\x8fy\xf5\xf7n\x9e\xd1r@\x22\x03\xf2\xba_\
+\x85U21Wd\x15\xf0:\x91\xc4\xb9H\xef<\xe7\
+\x14\xbd\x8c \x89\x90I=\xa9848LV_!\
+1\xa1s\xd0\x15L\xc6\x8b}\x02\x920Z\xffXO\
+\xb4F\xb0\xaf0\xaf\xd9G\x84\xc4\x0b\x08\xeb\xf0\xa2\xc6\
+\xa1&a\x034\x1c\xfdi\x91\x82\x99\xfc\x0e\x99;\x12\
+\x0e\xcc\x7f\x12y*8\xb8\x15\x82s\x80\xcf\x11d\x12\
+\xdde\xb7\x080\xee@=\x91\xcb\xa2r\xcd\xf5\x22K\
+\x88_\x01b\x8ey-\x88\xbd\x13c\xac\x07\xf4\x96I\
+\x88\x80D\x02)\xa7q\xf2~\x08\x92\x04\xe4\x22\x9f\xc3\
+<\x05Q\x83\x03\xc9\xf9\xdc\xefgp\xc8<'\xac\x16\
+H\x80\xdc\xe2p\x12\xb8\x8f\xff\x1e\x96\x1d\xc5\x82\xe8\xf8\
+Y\x91\xb7\x1b\x9f\x19\xd6\xc8,\x0bb:\x5c\x13V\xe5\
+\xe2\x98\x87\x86X\x83\x10\xa1\xe2GB\x82\xfd\x8f\x80\x9b\
+\xc0\x03\xa4\x04\x01\x02\x81\xc8K\x94HP\x8b\x8a\xfd=\
+\xc8\xb6\xe0\x86\xe1~\x05\x85\x9f\xfe\x10\x96\xf7E\x12z\
+9\xc1\xe8@\x09\xb26\xce7\xe6\x19\xa4\x95ps\xc0\
+9\xb1R\xfb,\xe7\xccQ)\xc0{R-\x1cAJ\
+\x96\xcf\xa3\x8b\xe5\xc8G\xe0\xf9\x8d\xb0\xf4\xbauX\xd3\
+\xa2\xc6~\x81\xdfE\xc2\x1c\xd9>\x91|9a\xce|\
+z\x8f\x10\x22\x9a'\x96\x1b\xa55\x16\xa8{$\x04\x1e\
+\xd2\xf8\x0d\xff\xa9\x84\x12\x15J\x12\x99J\xb4\xa2\xdf\xee\
+D=$u\xa8E\xb0\xfe)\xe4\xb4$\xe0m\x82\x9a\
+\x9ef*\xa0\xec\xd3\xda\x1f\xa6\xb7\x85U\x84Rn\xc1\
+\xf8\x88\x12e\xe9yL\xbf\x0f\xab\x08\x138\x04\xdc:\
+q\xef\xb0\xc6\x7fT\xa2\x04\xb2SC\xb5\xa3\xe5\xf8R\
+%\x80vW+\xc2k\x9b\x0a\xfc\x0d\x22\x0d\xd7\xba\x9b\
+/+\x95j\x12>Fh\xf4\xb2\xc0\xec'\x9coJ\
+\x14\x12_P\x81\x9d\xee?\xddoJ\xcfq\xdck\xdc\
+{\xdc\xabA\x0a\xc1\x05\x82\xdf\x06y0\xfe\xe9\xbb$\
+\xcf\x09\xe9*\xfe\x0b\xe7\xca\x7fI%F\xac\xffN<\
+=@\xdc0\x17\xcb\x9f\x92\x1f`\x0e\x08\x90R\xdb\x17\
+\xbf\xd9\xad;B\xbay\xdc\xf0o\xee\xab\x04\xd5\xeen\
+\xc1\xa35\x8f\xf3\xbc<_\x90\x10\xac_HvQ%\
+`>qNrN\xe1\x97t\xad\x9e\xa8q\x90\xe0\x5c\
+:.\xac\xb6.\xddzaX\xe5\x94\x98~\x1cV\xc9\
+\xef\xa6\xdd\xc3\x1a2S\xc8\xb5EZ:|$\xac\x99\
+\x9f \xbe8\xaf\x1e_\x10I\xf3\x0b\xe7\x17\xcc1.\
+w\x0c\xcb\x09\xa5\xe7d\xc4+\x09\x85\xe7\x865\x89[\
+Z\x06\x08\xd4!Ie}sN\xe2\xff\xb2\x0f\xc01\
+\xc28\xd0\xc3\x0fW\x0f\xfb<\xf1\x1c\xdc\x16$ZI\
+\x10\x1f\xaf\xd6y!\xc8\xc6\xc7\x86\xa5i\xf0\x8a\xb0\xf4\
+\xf7w\x08k\x0a\xe6\x9cS\x9a\xc7+s\x8f\xca\x19M\
+F\xf8m\x05B\x09\x94\xc0\x10?6\x9a\xaf\x08Rs\
+\x99z>\xd1W\x06\xea%\xa8\xc2\xb8GXC\xb6\xa5\
+\x00\x85\x03s\xfc\xd1x\xc5x\xc5\xb2\x8aU\x81 )\
+\x93\xe4\x1e\x0b9x\xc3+\xc3\xea\x0d\xa1\x13\xeb\xcc9\
+P@m`\x0e\xd4\xb9aA>L\x9a\xa6\x9e\xeb\xe1\
+\xbd\x05\xe26?\xbf<xo\x94\x1c\xb0 \x0c\x800\
+S!\xbe\x8f\x0e\xac\xbb\xca\xe1\xeb+\xf1\x04\xce,p\
+6\x12\xbep\x90\xf8\x1c*\xc0\x1c\x98|\x0e\x5c\x028\
+\x8eT\x0e\xa8\xe8\xb3\x01\xe3H\xe3H\x12\xa0r\xb0\xf6\
+l\xf6\x04\xce\x04\x18\xfc=\xf7A%\x8c\xcf[\xb7C\
+ \xf0>\x04\xc8d\xb4\xb8/6\xd0\x9el\x8e\xc0p\
+\xd08t\xba\xeb\xae\xf4\xd3\x12\x8e*\x01\x15m^\xb9\
+>\xbe\xe8]\x86\x0c\x04h#\x81\x07\x0b\xbd\x97#$\
+P\xabdx%\x00\xa4\x92O@\x08\xf4\xe9N\xee\xc5\
+.\x7f\xcf\xfbR)\xeeU\x1d\x18gz\xecv\x15\x19\
+#\x7f\xa7\xca\xec\xfc\x8b\x02\x85s\x22\x89\xcf%@\xa4\
+\x05b\xbf\xd0\xe9hz\xc9A\x12\xdcF\xf3\x85\xe77\
+w2oT\xbex^=[+\xf7\xcf\x86\xcf\xf8p\
+=lP\xdfV\xe5\x90\x0a\x22\x1b\xdf7\xb5\x11\xbeX\
+\xbdR\xcc\x13Xv\xa9`!\xcfF\x86\x92\xc4\x07\xd0\
+\xf4O\x17\x87\x93J\xc1*\xbd\xca\x90\x0bj\x1c\xe6S\
+\x04y&\xd0\x03b\xbfw\xc9\xd0z\x1c\xd8\xf8A\xa0\
+\x10(\x138\xf7-6\xdc\xff\x0ebe\x07\xf2\xd8\xb7\
+\x8c\xec\xa4\x8a&\x15\xf3~\xbeS\xa9\x22`f\xdd\xf2\
+\x5cy.$\x14\xb6)2BF^\x80\xc4\xe0\xfd8\
+\xa8\xfb\xe7\xc5x\xf3EbC\x9c\x00\xee\xe1\xaf\x1c\x06\
+\xe5~\xd7_\xce\xb2\xef\xfd\x92\x84\x04\xfb\x03\xa4\xa5 \
+O8\xd8\xe9\xe5\x87,\xb0\xaa\xaf\x14\xf9\xb5\x83\x86\x03\
+\x83\x1d\x1a2X\xc6\x89\x160\xab<\xe0p\x83\x08a\
+\x1c\x09\xe8\x90\x19b>\xb3?\x82\xc4\xe1\x80\xa7\xb2\xf6\
+p\xe9\x19\x03\x0d$\x00g\x9d\xb2\x0f\x00\x9dV\xc0m\
+\xe8\xa2\x1c\x09#R\xc4\xcemu\x18\x02g\xd6\x13\x0e\
+\x13\xe3eN\x119<\xec\xf3\xea\x89\xb6\x9c\x10\xad3\
+\x0ap}\xee\xaa\x07\xd4dl\x90?\xb1\xde\x90\x9b\x13\
+\xa4\xdd\xe4B\xaa\xd4BZf\x1d`\x12\x0e\xcck\xd6\
+\xd1\x05aM\x22\x8f\x04\x22\x81>\xfb:\x90h\x91\x18\
+\xc2\xcdc\x12<\xe65\xf3\x92@\x9bq\xa6\x15\xef\x8d\
+a\xcd\xbe\x02\x00\xee\xd6\xb0\xe6\xfap\x98\x09\x8cq8\
+\x816S!\x83l\x10d\x01\x09\x82^\xb6\x94s\x89\
+\xc0\xe1\xc4\xb0\x8a\x18\xf2\xf3\x02\xf1\xc8\xdf\xf3s\x027\
+\xc8\x0b\x95\x88tK\x07\xe4M8\xb2\x0a\xd8![j\
+\x0a!\xb9R\xeb\xc0N\x95^\xb3w\x0b\xbaoy\xbb\
+^n\x0f\x7f\x00y4Ap\xdd\xaa\xc5>\x8d\x0a\x0d\
+\xa4r\xaa|\xe30\x82\xf80\xc9\x1f\x9c\x19\xaal\xe1\
+\xd8\x0f7\x87\xd5\x04\x9fU\x0dh5\x94\xfcbr/\
+Kb\x00\xbf\xe8\xc9\xea\x8de^\xf0\x05\xd2\x86\xc4/\
+\xfb \xf3\x85\xf3\xe02\xf5\xe4\x0ba4}-\xacV\
+\x8e\x8d$\x82\x8c\x0c2\xccmE\xc6\xf6\x18\x91\x9d\xb1\
+\xfe:96\xcb=\x0b\xa1\xe1s\x9au\xcc\xbc\xe1\xf5\
+\xd7j1\xfde\xe1R\xca\xdcB[4\xe7\x80H\xa9\
+s%\xfc~\xe9u\xffd\x07\x08\x8a\xfe\x15\xb5.\x9d\
+^[x\xf2\xa7\xecQ\xe5\x01\x8d`\xe5\xfa\xd4\x22a\
+d\xdd\x81z>\x1a\xffq\xff\xb0\xaaw\x7f\xeb\x0b\xc2\
+\x1a.\x16\xd8\xc7Qu\x90\xff\x8c\x9fe\x84\xab\x12)\
+V\x1d \x80\x01aG\xeb\x13\xfe\x02\x95a\x90E\x92\
+\x17u\xcb\x00=\xed/\xd2s\x81\x84X\xad\x1b\xe8\xab\
+\xbb\xf2\x0a\x097~7\x88\x10\xe6\xefea\x15Q2\
+=/\xacI\xb4Fa\xf1\xd9\xd9\xbf\xf8V\xf8\x17&\
+\xe1S\xab\xce\xfc\xe7\xb0\xf4\x7f/\x09K\xdf/\xcd\xe3\
+<6\xf1\xcc\xa3U\x09\x069\xa5\x8a\xae\xfd~\xf6s\
+\xce\x0d\xfcR%\x0c-;\xae\x02\xd5\xe2!a\x81\xb8\
+\x1a\x8f\x1e\xd3\xfc_y\xf6\xd2YKg7\xf2\x9a\x04\
+\x8c$b\xd4\xd23\xdfm\xdei\xbe[\xd3\xc2\xa1\x82\
+\xa4[b\xe0\xa8\xe8\x902\xf3\xa6%P\xf5sg]\
+\xe9\xfc\x85l\x90y\x04'A\xda\xcbK\xe0\xbeR\xad\
+\x84J\xbc\xa4g[Z-9\xc79\x1f\xd9_{\x84\
+/\xadJB\x8a\xd1\x12\xe1\xb8\x01\xee\x01\xf6\xa1+\xc3\
+2\x02\xe7\xa0 o$1`\xf2\xc9\x13\xd4\x8a\x03\xb2\
+M-k\xe3\xd5a\x99\x83!Ym\xf5\x9e\xde\x19\xd6\
+\xac\x7f\xb8\xdd\xd8g@\xdc\xc0e\x22\x04\x84\xb9\x8a\x94\
+\xd04\x89\xbd\xf6w\x12\x0c.@\xb0\xbf\xe2\x7f\xd1\xd3\
+\xaf\x16\x16'<Q;\xd2\xba\xe0\xf7Y]o\xdf\xa6\
+`\xcbs\x05\x19)u\x1f'\xdex\xfeje\x01\xd2\
+\xef\xe7\x04\x17\x0b\x7f\x8fz\x8c\xb8;H\xf4\xb3^|\
+\xbe\xe0\x07i~\xaf\x1c\x8f\x18\x1f3>\xa6\xc9L\xbd\
+\xa7@\xa0\x86\xef\x85UGo:n:v:6?\
+\xd8\xe2\x10(\x83\x92\x96}&g\xe0\xc1\x8d\xfb\x845\
+=\x83\xca\x94\x8d{\x96\x84\x00\xf2R\xe3\xfd\xc6\xfb\x8f\
+\xf7od>\xd8\xf8p\x00\x91\x07\xa4\x95\xe0>a\x0d\
+\x84\x8c\x0d\xea\x18A\x1c\xb6\xd5\x86\xc0\xc2\xe5\xfa\xc8\xc4\
+\xb3\x91\xe1x\x00\xa5\xdaQ\x13\x9b\x00\xe1\x8b\xd21'\
+\x90\x97\x03c\x99!\xc9\xbb8S\xa3\x9e\xd3\x99\xc0]\
+\xd0\xd2UH\xc7p\x5c\x15\xb8\xb219q\xd1\xcbV\
+qpQ\x99\xa7\x97\x07Y\xb8\x03\xe5X\x93\x91T\x86\
+2m2e\xe2\xff\xebr\x08\xb1_9p7XN\
+\x167l\xa2\x1e\xd8Q\x9f\x87\xe3\xf3\x17\xb3\x87\x97\xef\
+\xef\xb4\x1c\x11\xe2J\x1d\xd7O\x80\xde\xcb\xfb\xf1\xf9\x04\
+P\x8c\x87\xb8\x16\x06\x1c\xfe\xad\xb5\xb1\xe8\xf3pp\x8d\
+\x08\xc0\xc1\xeb\x03\x81\x95\x9d>=\xbd\xc4l\x5c}O\
+\xf6Z\x1d\x19 \x15\x0a\xae\x93\x8d\x9f\xbf\x93\xfa\x80\x03\
+\x1d\x1cf\xfe\x0f\xb2A\x1c\x9e\xdb/\x87\x86\x0f[\x0b\
+Z\x0d\x14\x96\xe7\x80\xfa\x04\xad*T\xb6\xd8X\x04\xfd\
+\xf2\x01\xc4\xfd\x90!\xe4\xb9\xac\xdd\x91\xa91\xfe\xbc2\
+nd\xb2\xa9\xf4j\xa3w\xe2\x85\xe7N\xa6\x9d\xf9G\
+%\xff+\xaa\xd4\x830!1\x07\x14\x89\xbfg\x9c\xa9\
+\xe0s\xb0\xb1NpT\x7f\xa5\xfb\xa5\x82t\x98zr\
+AR\x90A\xa5b\xa3\xca]\x0a\xd3\xca\x81\xf7QA\
+By\x1e\xac\x87u\x9c\xb0)\xcf\x93\xeb!\x80\x221\
+\xa0\xbfsk\x0b\x0e1\xf3\x94\xff'\xe0\xc5\xf1 \xc0\
+`\x1d\xf0<\xd9\xc76ubi\xb9\xfc\xe2\xa6\x1d2\
+\x80D\x0f\xefG\xc0\xd4C\xf0{\xd2I\x0e&\xb8J\
+\xea\xbc\xa3w\xb1\xdc/\xc8\x17\xd6)\xbf\xe791\xff\
+Idq\xfd|.\xdc\x08\x1c\x80 ,\xee\xa8\xeb\xdf\
+K\x10J\x1c\x03t\xd7\xef+\xd9WH\xfa:\xae\x19\
+\x93\xc6\xf1E\xa0G\xab\x15\xe3\xc180^\x8c\x0f\xaf\
+<G\xf61\x02\xb2+$+\xa9\xdf\xbbR,\xd2B\
+'\x18ha \xe1A\x22\x84\xf9N@\xca\xc1\x8f\x5c\
+%\xf3\x92\xf5\xd5\xaf;\x1c\x10\xd6\x11\x7f\x0f)\x18=\
+\x80\xb4\xb0\xc0B\x0ey l\xec\xcc?=\x8fPW\
+\xcf\xfa\xea\x92\x993$\xf7\x03a\x8d\x83(\xf6a\x02\
+>\xf7^CN\xc4:\xc0\xa1\x87\x0bA\x95n\xcb-\
+\xf1\xbcH\x08\xd0\xc3N\xc5\x87u-\x07\xcc-*T\
+8 Yd\x9e\xe1(AbxeXu\x84M\xf2\
+\x07\x92A\xea\x0c\xae\x94\xf7j' \x9c\xe0\x0e\x80\xa5\
+\x9f\xfd\x02r<\xc8\x16I\xec\xb0\xbe9\xb7\x08\xd0\xd9\
+7\x98\x87\xcc?\xfe\x9ey\xc2~\xc3:c_'1\
+\xc4~\x8d\xdc\xa4\x1cB\xab\x17\x89\xe5\xdb\xf2L8\xa6\
+\xf2k\xe8\xdd\xf6\xba\xa2\x12\xdb\xab\xb6P8`<\xd8\
+'\x98\xc7 \x80\x088PY\x01\x22\x8e\xfe\xb8\x1cn\
+\xb3\x84\xd3zG\x0b\x04\xfe\x91\x12!F\x04\xc0\xa5@\
+\x80\x8a\x0a\xc7\xdeJ8AvJ\xe2\x10\xc85\xe7\x18\
+-\x03$\xb0\xdf/\x99B\x05\xec\xf3aa\x8dz\x82\
+\x12\x86\x86\xdc*Q\x0aY\xa3\x11=\xb4\xae@\xf2\x88\
+?\xc0\xbe\xd7s\xfb\xf4\xaaH\xf8=\x90(_] \
+\xe3\x9e\xaf\xea\xdd\x1e\xae\x0d\x96\xac\x9a\xc0\x0bu\xf8\xac\
+\x93\x9e\xc2\xdb\x8cT\x884\xcb\xfb\xb4^\x03\xb9\xf6\x82\
+Rh\xa2\xa5'\xefj\x9b\xd4\x0a:\xef3\xben|\
+\xfd\xf8\xba\xaa\xee\x92\xb9X\xd2\xbc\x1b?\x9e,\xcd\xa3\
+\xf1ya\xb5\xa5\x83\xc0\xd2\xe4b\xec;\xccc*\xb5\
+\x0a\x14,;\x0a\xc2\x92\x1eq\xb1\xe5\x83\xfc\xc8\xde\xc0\
+\xa8\x02\xe1!U\xad\xc02h\xb4\x8aD\xef\xf9\xef*\
+[\xfd\xbc}\x98\x02\x9d@\x1e}!\xd9\xe7\x9b\x1ee\
+%@\xf2U]\xd3\xc8\xf8\x12\xc8\xa2\xf2\xc2\xfc\x5cd\
+v\x8e8\xff\xbf\x9f\xcf\x7fZ\x9c\x02\xe1wcV\x01\
+\xc8\x5c\x1d\xb4\xde8@\xbe%\xacQ[\xd8\xaf\xb4H\
+XN\x0f\x8e\x0d\xceE\xd6/\x09[\x026\x90I\xf8\
+\x1f\xe2\x06\x01\xc9B\xa5\x1a$\xda\xf4\xbd\xc53\x17\xcf\
+\x0c\xf2\xc2B\x92\xb7\xf4\xac\xa5\xe3\x97\x82\xdc|\xedq\
+\x9dq\xed\xdck\x7fc\xf4\xdaO\xe7\x95^\xfe,\xbe\
+\xf8\x88|_\xaf\x8a\xfb\xa2\x05\xd22t\x92\xa94R\
+O\xfb@DQ\x11G-^\xa2V\x937\x84\xd5\xc0\
+\x9as&=\x9d\xcc\x956\x1c\xaaD\xfb\x8b\x94`\xa5\
+\xe5\x04\x04\x15\x1c>\xec\xdbB0\xb9\xa2\x0f\x12\x90D\
+\x92\x12\xe6\xd36a\x95l\xdc\xe72\xe3\xca>\x0e\x87\
+\x0f\xe7\x10\x88R\xfe^\xd7C\xeb\x8f\x11i\x8a\xa7H\
+\x80\xa5O)\xad\xb0\xf7--\x87\xf3\x8b\xc2\x9a\x84\xca\
+1aMBD\x09dC\xffI\xf4R@\x10\xa9\xa8\
+[\xf1H\xd4\xe8\xf7\xe3Qa\xe9\xef~\x1e\x96\xae\xef\
+\xec\xb0&\xb0\x86K\x062D\x9dCV?\x11B\xdb\
+\x09g\xe2G!\x92\x9cP\x22\xf1\x8c\x1f\xa1\x04\x0c\xfb\
+\xf2\xbcwX=?\xbd_k>\xd0\x8a\x82\xbf\xb6\xf4\
+\xa7\xb0\x9a\x98Z\xec\x1dV\xb9]V\xce\x1f\x9a?8\
+\x7f\xb0!\x97\xd1\x06\x99n\xef\xac\xe9\xac\xe6\xc0\xa7\x82\
+\xa9\x9eI\xd8\x09\xc7W\x8e'\x8f'7\x10\xfe\xdbJ\
+\x0f\x1a\xc8<\x99\xbb\xafL_\x9d\xbeZu\x80\x87\xdd\
+K\xc0\xe3\x84\x01\xbd\xf7\xe81R\xf1 \x80\xd6\x04\xa4\
+\xc7\xce\x19y\xe48 \x1b\x02\xdaG\x05\x9e\x83\x1d\xc7\
+@=\xe1>89\xa0\xe8myKX\x03\x19$@\
+\xe0 \xe4`\xa5\x17N\x1bJ\x86\x01\xc7<\xbeR\x07\
+\x08\x99z2aT\x1c\x99\xe8\xda\xa0\xdd\x8bJ\x22\x80\
+/\x02\x8b\xf5\xcc\xea]\xde\x07\xc4\x04\xd0?\xde\x17\x07\
+\xa1\xd7y_\xaf\xd3u\xefI\xde\x08\xfcz\xf9\xb3\xbe\
+\x82\xc5\xe7\xf0>\xbd\x9e8\x8e\xc7_\xacRP\x12 \
+kwd\x88@X\x91\x87\xdbX\x01\xe9\xf6\xcb\xd9\xcd\
+\xfd\xf7\x1c\xd8U\x05\xa1\xdc?*\x00$\x02z\xd9:\
+\xbeg<p\xa4\xb9\xfeJ\xe2V*\xf5=)\xa0*\
+\xb6\x03\xff\xcfu\xe1\x00\x12\x881nlt\xf4^+\
+ 3D|\x97\xae\x87z39r\xb3\x9e\xf7\x8df\
+\xf3/\x99<*\x1c\x0a\x1c\x0c\xfd'#\xcb+\xf3\x81\
+\x80\x88\xe7\xd6W\x84\x19\x179f\xae\xf4\xd0\xda\xa3\x84\
+\x94\x0f>\x02\x182\x94\xcf\x08k>\x97\x0a\xbe\x0en\
+2\xc9i\xce\x17d\x06\xe3\x81#\xd2\xb5&\xd0\xb2c\
+$\x01\xf2%\xef\xd2\x01A/\x9f2\xc6vH\x08\x5c\
+\x808\xf3\x5cup\xbbRO\xa0\x0e\x14\x9dq\xa7\xf2\
+J\xa5\xe3=+\xceYqN\xf3\xfe\x04\xd2$\xd4\xee\
+\x1a\xd6\x1cT$N\x98\x0f\xec3}\x02\x09\x04\x0a\xf3\
+\x9c\x8c:\x81\x01\x8e<\xeb\xb3\x7f~\x92\x05\xf4\xef\xb9\
+\x1ed\xb7\xf8\x1c\x12\x1e\xbd\x9a\x81\x900\xec\xd3\xae0\
+q\x803\xdfY\xbf\xec\x17\xec#\xe8\xd1\xabw\xd8P\
+\xc4\x0d;D\x0c\x09\xa4\x87)`\xe5z\x1e*\xc4\x06\
+\xcf\x05n\x00\xee\x9f\x00\x0a\xc8-\x09VA\xcd\xed\x08\
+\xb2\xcf\x90H#\xe1\x01\xc2\x06\xb2\xb9N\xf7\xde\xbd\xd7\
+\xe8\xf7\xd2Z@\x82\x199 9\xbe\xc3\x93\xc3\x1a\xc8\
+\x1d\x89V\x02q\x02(t\xbeI\x1c\x90(`~\xb0\
+\xce\xb8n\xf6\x19\xf6/\x02\xc2\xef\x86\xd5\x16\xb8y\xcd\
+\xb0\x86m\x98\x04\x19\x08\x12\xb1%;\xc1\xad\xdf\x83H\
+\xe0\xdcr\xc5\x9e\xff\x87K\x84\x00\x94\x9e}Z\xdex\
+\xce\x92U#\xe02K\xbd\xc8\xe0\xbc\x0f\x89\xb3\xc0\x8e\
+\x0a\xe7!\x81\x96\xa0\xc9Fx\x90x\xef\xe5\x08\xe9\x0d\
+?,\xac!g\xfcqX\x93\x90\xa0B\x8b\x83E\x82\
+\x99\xef\xf5\xbc\xa6\xdf\x84e\x07{\xedp\xb0\x0d\xe9^\
+\xb3\x93\x9be|\x80t\xb3~70gGy\xe5\xfc\
+\x00i\x86\xc3\xc8<\xe8[\xf8DZJ/)\xb2s\
+F\x90|\xb0\xf8Y\xc3Ea\xd5\xff0y)Pl\
+*V\xecs\xac\xcf\x1eYB\xe2\x98\xfd\x05u\x0a\xd6\
+9\xeb\x8a\xd61A\x86\xed\x88\xab\xe7t\xde`^\x7f\
+\xde \xcbv}=\xcbv\xb1/w=\xc4\x90-\x8f\
+o\x09\xab\x88J\xee\x07.\x86\x08\x13\xb3\xac4\xaa\x01\
+\x8c\xafH\x02\xad6%ROH\xd6\x5c\x99\xd4>\x06\
+\xd9V\xda\xcb\xf2yK\xa1\x88^\xe19\x7f5\xa4e\
+\x14\x8c\xd4\xdbm\xa4\x02\xfb2\x09PZB\xe8U\x87\
+\xc3\x06\xee\x0b\x12Z\xf4\xce\x82\xb0|FI\xbc!C\
+=\xfc~\xb8!\xcbJ\xc2\x96\x0fWM\xf2\xfe2i\
+XT\x84Oi\xc8\x02\x95\x80\xc8\x1c\x1e\x9f\xce2\xc6\
+\xeb\x04\x84\x1e\xbfr|wXC\x82\x1dH\xc1]3\
+\xb2\xe9\xc3\x81l\xe2\xfa\x96>\x17\x96\xfe\xee\xf9a\xe9\
+\xf9<9\xacV.\x9d\x08\xe9\xb9\x80\x98\xbf\xc8\x5c\xde\
+PHW\xf1_\xe0\x0e\xb0\xce{\xb4\x06\xa7\xf57\x1f\
+\x15\xa6yv\x07!a\x7f\xd8\xec\x13\xb1\x0b\xdc\xdc\xb4\
+\xac\x02\xf5.\xa5\x89\xca\xad\x10\xb3)\x05\x8a\xe3E\xc9\
+>#2\xbctnL\xdb\x86\xd5\x0a:HA\x93\xd3\
+\xe9sr \xff\xb7\xbc\xde\x0b2\xe0\x9c`-K\xaf\
++\xc3j\xe2>\x98 \x82\x0b\xc2\xef\xb3\x8d8\x19v\
+/\x88a\xff=\x01\xacT\x13|n\xb2/\x5c\xae\xc4\
+\xa1\x02\x5c\xef\xbb\xb4<)\x91\x19\xdafY\xddL\xff\
+7\x1d\x18\x96IVs+\xd1\xf4\xbb\xe9\xfa\xe9wY\
+\x8d\xe4)\xa1F\xb2\xf4\x9d\xa5o/}\xa7i\xc1\xb9\
+!,\xfd\xdd9\xd3{\xa6s\xaa\x1a\x87I\xf66\x0e\
+\xab\xc8j\xab\x91\x89\x83\x0d\x0e\xa3q\xb3\xb0\xfa\xf9\xd3\
+\xcb\x0aT\xdej@g\xcb\xcf\x01\xb1\xc7\xf9\xa5ua\
+.\x1b\xce)Z<\xd9\xbfP\xa7\xc1\xff\x83tQ\x08\
+\x03'|\xc4\x81\xe1\xf8\xaa\x22\x12\xcb>\xc0>\x05I\
+\x1d\x09J\xf9\xdd\xc8\x5cBj;\xbd9\xac\xcaB\x1a\
+)\xfc\xdfBZ\xe1\x87\xc2\x0d\x83:\x0d\xf2\x86\x92+\
+uO>~1\xf7)\x7f\xd0\x091\xce\x0d\xe6\x81\x12\
+\x0f\x90\x13:\xc1xtX\x93\x88B\x9d\x02$\x0d\x09\
+\xfb\xdd\xc2j|\x87\x1c \x88P\xd4*\x1cO\xa0\xb6\
+\xc0~M\x02\xac\xe7|\xa1\x85\x16N\x0c\x12YpM\
+p\xce#\x17x^Xm)\x9c_\x16\x16\x09\x00\xb1\
+ :\xa3J\xe6\x9e\x00\x5co0\x1e\x1a\x96^\xd7\x1b\
+\xd7\x1f\xd7o28\xc8\x8a\x88\xbdt\x9e\xca\xc6l\xa8\
+\x1c\x13K\x13\xc6\x90EM\x18C\xf6q$TaG\
+\xff\x97@{xyaE\x9dO,\x17\x9e\x06\xbbd\
+z\x1e<\x1f2\x1f\xd2T\x16\x09T\x99X\x9bvP\
+mz\xc3\xa8t\x1f\x91\xadB\xf2\xa8@\xfcP\x07\xd4\
+\xd3\xe4\xd8H\xee\x89^4\xf7\xb2\xdeY\x07\xcb\xd5\xca\
+\xb0v\x07\xf4*\xd0x\x12\x00\x1d\xe9\x9d\xc9\xdd\xc8\x90\
+\xf2\xff|\xe1\xc0\xe0\x98\xf0>T:j\x00_\x1c\xe3\
+M;h\xfbz]\xe0\x8e\x03\xcd+\xff\xc7\x81\xc9\xf5\
+\xf1\xf7=\xb4\xbc\x87\x1e\xe3\xa0\xac\xae\x0d\x86\x84\x05\x09\
+\x04*\xf3\xf4\x9e\xf2|\xee\xd4A\x9a\x81\xd6\xf7\x8e\x18\
+\x01\x0b\x81&\x90\xef\xa1#Q\xe4~\xf8\x7f\x1cp\xc6\
+\x87\x00\x87\xf7\xe3\xfdq\xb4\x08x\xb9\x9f\x9d;28\
+*\x05[,\x0f\xf4}\xff\xbd<\x1b\x81(\x89\x03\xee\
+\x9b\xca\x03\xe3\xcc\xf3\x06as\x83\x0epU\xfaQ\xb1\
+p\xc2\x0brL6Z\xde\x87\xe7A\xc0\xbd\x9a\xbe'\
+\xc1\xa0\x9exC\x00A\x12\xd0sHB\xa5'\xb1\xd4\
+s\x9c\xaf/\x1bqP\x84\xe6\x84\x192B\xcc\x875\
+:\x19<\xe6\xcb\xffi\xe3\xe2\xbe\xd8g\xbe\xac\x8a\xd7\
+\xbbU\xa1|In\x22\xa8=\xaf@\x8fq\x88\xab\xdc\
+aI$\xed)\xfdl\x02T\x05\x22\xdeO`aW\
+\x0f\xae7\xdcst \xd2\x12\xc4\x01\xd5\x93@\xe28\
+\xe2 \x90P \x80\xfd\x9b\x9e\x9b\x12R\x96\x0f\xac-\
+\x04\xe5y\xf3\xff$\x22\x80\xb6\xf7\xf2\x9a\xac\x97\xbft\
+\x1b>\x01\x07\xd7G\xc0\xcf\xfb\xf3~ F\x98o\x5c\
+?\xcf\x91\xc4\x01\xf3\x8f\x04\x03\x95A\x91N6\xe4\x84\
+$\xaeJ\x02\x83u\xca\xfb\x91\x88\xa5e\x81\xde\x5c\x1c\
+m\x02\x7f*+\x5c\x0f\xe4\x7f\x04\x0e\xaa\xac\xd1\xbb\xec\
+\xc0\x90\xe7\xc2x\x12h3\xdf\x81\xbe\x09\x11e\xd9X\
+\xee\x87\x00[=\xf0\xab$BIt\x91P\xc5\xc1\xc1\
+a\xa6\xe2\xaf\xd6\x15#\x09T\xa9\xa3\xa7\xd2${T\
+\x82\xa9`s\xb0\x13\xb0J\x8f\x98\xc0\xcd\x95zTj\
+\x90MR%\xcf\x95}\xf6\x9f\x1ei\xc5zg\xdd\xea\
+\x95\xca!l\xda&\xc5\x15d\xdf\xd0\xdd\x0f\x865\xb2\
+pBH\x0ck\x85\xd5\x84`\x864\xef_Y\xad\x9d\
+\xb8\xa3\x95\x00\xd5\x19\xf61\xd6\x09j\x15\x82\x80\xdaQ\
+\xa3b\xaf\x8a\x93\x03I\x90\x87\xea1\xe7\xf3\x9c\xb0\x04\
+IB\xeb\x04\xd0\xda^N\x97\x9ej\x15\x1c\xbc\xff\xa3\
+&\xc2u\xc1\xf1\xf0\xe1\xb0\x0aE6y\xde;\xc2\xaa\
+\xac\x99[\x18\x94@\x04\x81A\xe0nr(8-\xe4\
+\xe8\x12\xe8\xb9\xb2\xc78 \xc3\x07\xf7\xc4?\xe3\x8c\xe0\
+\x5c\xa6r\x09i\x15\xbf\xefZ\xee\x90\x01\xb4#\xca\xfc\
+\xa2BG\xc5?\xd8\xe4?U{\x81\xa7\x8f\x86U\xbd\
+\xfb\x9e\xabd\xfanX\xfa\xfdk\xc2\x1a\xae$X\xc0\
+U\x91s\xef\xf1O\x87\xab\x86\xab2;xnuH\
+\xf7\x5cZr\x1e\xa8\xfdasU\xe6I\x90+q1\
+\xee\x1e&\xf6\xfd\xcfV\xd2VH]\xe7\x1d\xc2j@\
+7}.\xac\xe1Z\x00\xb1\xc0<\xc4\x11\x06\xf2\xbb\xa6\
+\x0aU\xf4,\x93\xa0@\x9eZ\x15AZ\xf6\x92\xff\x99\
+L\x1c\x09?k\xe6\xc5S\xc3\xaa\xce\xbdI+c=\
+l\xdb\xa8o(\xc1\x98\x0bX\x87V\xc4\xc7\xf8_a\
+\xe9\xf5Ia\xe9\xf5\x83a\xb9\xf5\xe2\xaf\xb9\xf5B\xf3\
+m\xbc4,M\xdb3\xc32\x826Y\x0e\x1c\xcf\xc9\
+\x81#\xc8&\x9d#n\xfdy[n\xea-\x81\xf8\x1a\
+\xcd\xba\xea\x0a\x03\x99\xa5\x7f=\xed\xd3\x0f\xca\x90\xf4\xbb\
+\xe5@\x1a\x96~\xf6e]\x0f=\xd2&1\x04!\x84\
+\xdf\x8f:I\xcc\xd3\x90[<\xb6 \x88M\xc2\xa6\xca\
+\xf9\xe2\xaa\xb0\xf4\xfbg\x845\xea%p!\x10\x88m\
+\x9b1\xbe\xe5\x1c\xd8\xa8\x81L\x8b\x13\xc2\xec\xfa\xbc\xfe\
+U$\xe2buw \xads\xcd\xbd\xdc:'\xe9%\
+\xf7y\xcc>\xc6\xdfS\xa8\xa3\xa2K\x8b\xb2\x12\x95~\
+\x0eb\xe1g\xff\x89F\x80h\x05\x18\xb7\x0c\xcb\x89\xde\
+5\x22\xd1;\xde#,\xbd~1,\xfd\xdfI\x85\x04\
+\x17\x84\xd2t\xe3\xf4\xc7)\xf6\xdd\x87\x85\xd5V\x8f\xf9\
+0\x91\xdc\xbe~\xc5kW\xbc\xb6\x22\xdd\x86SJ\xcb\
+\x98\xb9K\xe0.\xa2\xc0#RL\xfb\x81\x14\x14H\x10\
+\xd2*\x02).r\x8ap-A\xb2\x08\xa4_\xc8\x02\
+\x07\xfc:?\x1c\x88R\x00\xa5@\x85_\xae\x16\xa8\xd0\
+\x96\xcb\xc8\x19\xd4%8\xdfH\xe4)@\x9do\x0e\xab\
+r\x8b>G5\xdf\xacB@\x01G\x88\x22d\x02\xcd\
+\x09\xa0\xc4\x10~\x9f\x11\xab \x8dD\xe2\xe9\x82\x16\x88\
+\x19\x02{\x10{\xf8\xc9\xfc^\xe7\xb9\xf7?\x91\x1b\x92\
+\x18\xc8d\x96\xe9z\xa7/\x845\xea $\xd2\x19W\
+\xb8=H\xb8\x93\xc0\xe7\xdc\xc2_\xe1\x95\x04\x9f\x12o\
+$\xdc\xe1\xb00\xb9\xf0}\xc3j\x0b\xa3\xe7\xbbd/\
+W\x22[ar\x18\x91\xccY?Wr{\xe8\x88N\
+\xbf\x0d\xab\xac\xd3\xc3\xa5\x85\xa5\xd4\xd0\xa6s\x8b\xbe.\
+\x15\x05d\x0f\xcc*\xca\xc1K\x0f?\xbd\x9d,\xb8\xd7\
+\x8b\xad\x17\x1d\xdc\x8f\x09*&VMC<\x09\x04\x04\
+qE\xef\xd1\x0e.\x8e*\xfa\xd1\x15\xda\x5c\x02\x92\xfa\
+{U\x08D2uw\x914\xdcO\x99t\x1c9\x02\
+\x19*h\xb0\xd1\x9e\xa1\x04\x86\x0e\x10\x07\xbedDI\
+L\x90\x08\xc0\xa1\xed\xf5\xe7q\xe8{v\xff\x1e\x11 \
+\x07\x8f\x851\xec\x18\xd68\xb0\x04\xc6wR\xa0J\xc6\
+\x0c\x84A\xad\xec/\x87\x00\xf3=\x0ef\xcfF^\xe5\
+\xbc\xcau\x11\x88p\xbd\xbd\x1c \x13\x97\x16\x8a\xc8x\
+\xaf\xf3\x0f \x8c8\x18\x5c/\x01v\x0f\xc5\x07\x82O\
+\xcf2\xf7\xf1\x0b\x05\x86\xf4r\xf7$a\x8c+\xd7C\
+\x00\xc2F\xdf\x8d\xab\xff\x8f\xe7\xc3\xff\x13`\xf5\x81\x1b\
+=\xcd@!\xf9\xbf\xca\x0a_\x10\x05\xdc7\xf7Gb\
+\x80\xfbg<\xa98\xf5\xec\xce|.\x5c\x00\xf7\x16\xe9\
+\xda\xef\xba\x04\x00\xf7\xa3\x0d8\x85\xf9eC\xfe_\xad\
+\x17\xc8K\x80F\xe18r\x1d8\xd8$\xc4hM8\
+J\xec\xd8\xcc\x0f6@2\x91|>\x81,\xf3\x8a\xe7\
+\xc4\xfd\xb0\x1e\x08\xac\xd8P\xa9\xac\x22\xaf\x83\xfc\x16?\
+\xe7\x8bD\x12\xad!\x87\x8b#\x00hqGn\x88\xfc\
+\x95\xc9\xeb \x03\xc5\x91>7,\xbd~Il\xe4G\
+\xab\x12\x0c\x04^d\xa2\x9e\xd7\xaa\x88\x0f@sY\xcf\
+\xac\x03\x02b\xae\x83\xe7\xcf\x01G\xc0N\xe5u\xf3\xb0\
+\xe6\xef\x98o}\xef8\x89\x90\xfe\xb9\x11\xc8\xd7\x84@\
+y_\xc82{\x8e\x07>\x87\xf9\xa4\x9f\x0f\x1b\xab\x05\
+\x88\x04\x05\x09\x00\x02\xda\xbdU\xd9\xe7\xbaIpm\xbe\
+\x1c\x81\xd1\xb3\xa1\x1bR\xc8>\xd2\xcb)\x02\xd9\xe3\x80\
+\x05\x99\xc1\xf8\xf7H\x9e~\xdd2>\x04\xa28@\xe2\
+l\xa1W\xd0dLp\xa2\xb0\xde\xd8\xa7\xa9$\xf0\xfe\
+\xacO\xa0\xfb\xd7[m\xa1\xfc\xbd\xa0\xf6\x96/#\x11\
+\x80\x1e|\xa7\x0a@\x8f\xa39-D\xc2d\x88>\x89\
+\x00\xc9\xe2\xfa\xbe\xf9\x5c\xe6\x19\x90^z\xa5\xd9\xf7I\
+\x04\xd0J@\x0f1\x15t*\x9bj\x1d02\x87D\
+\x9b\xe4\xd8,\xebI+\x0c\x1c;$\x86\x80\xea\x02Y\
+d\xfc\xe1\xd8!1A\xa5\x9c@\x9cy\xce|`\xfe\
+\x8a\xdbcxPXE&X_\x9a\xeb\x84\xf3\x00\x08\
+%r\x92G\x85\xd5q3D\x99\xca.\xd0o \xac\
+\x8c\x1f\xfe\x06\xbd\xf0\x1a\xbf\xe4>\x1d\x1d\x0e\x94+\xd2\
+\xbd<)\x15#\x90\x82T\x92\xe9\xa5\x16w\x89\xa1\xe2\
+ \x86X\xf7\x8c\x0f\xcf\x95s\x96V\xa9\x9e{\x83q\
+\xe2<Tb\xd7\xf3\x8c}\x97q\x22q\xc0>\xcc|\
+g\xdd\xa2z\xc2\xf5J\xf7{\xda-,m;\x0f\x0c\
+K\xdf_\x15\x96\xbe?>\xac\xb9\x0e\xeds\x86\xfe>\
+5,\xfd\xddqaY\xfe-W\xec\xf07\xc6]\xc2\
+r%\xab8\xb8j\x85\x83\xe5\xdbrw\xaa\xb8\xd2\xdb\
+\x0a\xa2b|BX\x03\xe1\xbeg\xd1ag>\x84\xa8\
+\x5c\xc8\xca\xa5\xa0$\x07\xb6\xaed3/\xbb\x16\x8e\xe1\
+\xba\xb0\xa60E\xc2\x9e\xf1|\xb4\x0aBR\x9b\xf2\xf3\
+\xc7ox\xb3\x02 !\x8b\xa6\xad\xc2\xea\xfcA\x06\x8f\
+\x84\x18\x1c\x0f\x19\x7f\xf4\xa3\x9a\xd0\x83|\x91\xfbs@\
+(Y\xb4\xff\xcf\xd9}@\xebvV\xe5\xe2b\xb0\xab\
+p\x00\x00 \x00IDAT?\xdfw\x0e-\x09%\
+\x90\x0e\x04\x08!@ J\xa4#\xd2U\xe0J\x95+\
+*\x17\x81K\xb9\xb4 \x5c\x04\x85\xa0\x22\xc5\xcb\xa5I\
+\x09$\xd2\x8b Mz\xbf M\x8aH\xe8E\xca\x15\
+\x03\xa1*\x04I(\x92\xb3\xd7\xba\xef\x5ck\xfe\xe6Z\
+\xfb=0\xfec\xfc\xf7\x1cg|c\xef\xb3\xf7\xf7\xad\
+\xf5\xae\xb7\xcc\xf2\xcc\xe7\xd9\xfe lITl\x7f'\
+\xac\xbd\x1e\x13\xb6R\xdbJ\x95\xad*\xd8e\x0f\xfd\x14\
+\xe0\xfe\xd1J\xbe\x114X\x81)\xf7\x87\x89\xd4\xfb\x91\
+\xe9\xbf\xbe3\xcf\x8b_\xca\xc2\xdb=Wr\x81\xd9\xb3\
+]\x85B\xad\x03\x99P\x12@\x17\xb9\xb6\xcad\xe8\xce\
+\x9f\x95\x09\x89\x93\x17$\xe1\xf0\xdf\xc3\xda\xebC\xc2V\
+\x15d\x81\x9a\x84$}\xf3\xf0\x16\x90\x11\x1f\xbcp5\
+ \xed\x14h\x95\x8a\x8cud\xff\xce\xf9_\xadD*\
+\xad\x10\x06\x898(\xa4\x9e\xbf\xf3>\x02N\xad9\xb8\
+< Ep\x1d%\xc4}xuX[.\xbf\x1b\xd6\
+\x9e\xdb\xd9\xdbol\xdb8m\x1e\x16\xb6\xcc\xfb\xcd\x9b\
+\xc2\xda\xff\xbf!lE~\x9c\x89\xca\x22\xf3\xe4\x97\xbe\
+-!\xf2H=\x1f\x9c-\x5c\xfc6\xe4p\x19H\xd6\
+\xfaHH\x7f%rB\xe5-\x02\xe0\x87M\xb6\xf8\x1b\
+\x10r\xde\x0f7\x87\xf5\xcf\xafq=)cW\xaa(\
+H\x0a3\xa1Pq\x8f\x84|\xdeo\xc5\x0b\xdeW\xa0\
+\xdd'\xf0S\x9e\xd7\xbc\x93\x18/\xe4\xc6)\xa9\x0a%\
+\xe1 \xa1\xac\xf5;\x03\xec\xed\x83\xc3\x968\xb6\x12\x18\
+\xc8_\xb5\xb2\xde4l\xb9o\xf2\xa3%7\xaf\xd0\x01\
+1\xcf\x9f\xc5\x1d\x92\x08\x02\x9c)\xc5\x89\xa1\x95\x03\xa7\
+\x85DJ\x22(\x04\xfc\xc3W\xc3V-A\xff6#\
+\x8e\xaa\xe53\xb9\x81*\xc1\x9c~L\x15\xe2\xf2yn\
+>\x1a\xb6\x923\xbcX\xd8\x0ay\x98q\xe3\xbe\x22\x7f\
+\xf9l\xd82q\xb6\xcf\xde\x9e\xbe=}\xa9D\x15{\
+\xa4\xc0;\xa1\xfd\xe3\x1b\xe7\xcc\xc9\xe6U\xb3\xdc\xcf\xf6\
+\xcc\xb0\x85\x9cg\xf3\x83\xb0\x15\x99\x89\x07F\x87\xd1\xc2\
+s\xe1\x99\xc9\xda\xf3\x8d$\x07\xf9A:8}`\xca\
+\xc1O\xd6\xe4\xcd\xf4\xb5Z\x98\x0e\xc2\x7f\x9b\xaf\xb7\x85\
+As\xc5\xb3\xff*\xb2\x9f\xf1\xfc\xf1\xfc\xe9}g\xa8\
+\xe8{&[\x06\x98\x1e3\xc7:\x91\x03\xd5\x83\x91\xfa\
+\xa8\xb5\x80\x90\x06r\xd4\x04@\x0el\x01\x81\x83\xbb\xaf\
+\xf0\xf7r\x7f*\xba\x16\x94\x0c\x90\x03\xca\xf7\x9e\x0f\xc7\
+\xf0\xc8\x84\xd4\xb9\x7f\xbd}\x99!\xab\x80\xb9\x97\xc1\x02\
+\x91\xb9d\xa9\x07\xec\xd6)_z\xef\xe7\xc0\xd9\xfb$\
+\xb9XA\x8f92\x02\x0e\x8e\xb1\xe7(\xa0\xeft\x89\
+k\xa3\x11\x88\x0a8.\xda\x91\xf3\x19?\x01\xa9\xeb\x17\
+\xf8\x08\xdcl\xe4\x1c{\xad\x08H\x02\x91\xa2]*\x03\
+\xa4^\x07\xbe\xef\x91\xce\xfb)\x08\xa6\xdf\xe7px~\
+\x1c1\xd7\xd1\xc9\x0bV\xe2\xa0'a\xb4\xa1\x81\xcc;\
+\xb8\xdco\xaf\x1a\xe1\xef=\x17*\x047\xc9\x8aLB\
+)\xeb\xf7A\x97;(y\x05J\x9e\x97\x9e\xde\x13'\
+\xb6\x8cXWs \xa2\xd5\xc6\xfcv\x9f\xc6\xc9<1\
+\x8fl\xf8\xdf\xc8\x83\xf5\xf3\xb9!\xea\xfdG\x8ev\xfe\
+D_W\x09\xa3B:\x18_\xd7\xa5\x15$\xd9i\x8b\
+\x5c\xc9|3\x9f\xcc\x03\xcf\xc5\xb8\xeaa\xccJs\xb1\
+\xefJ8`O\x7f\xdf\xf8\xfe\x80\xc6V\x05H\x00{\
+\xe3\x5c\xbf>\xcfs\xed\x13N\xfe_`\x992\x90m\
+\xfb\x9d*EE\xce\xd6'\xbcz\x15\x0d\xbd\xec\x09\xdd\
+\x94\xb9\xafJl\x07!;\x80D\xf2r\xd5\xbb\xbf\x8b\
+\xa4\xb0\xf63*\x0e\x02s=\xba*\xffz\x7f\x7fm\
+s\xc3\xcd\x0dW\xa4~\xae\xb3O\x1c\xd8\xdf$\x10\xac\
+\xbf>\x80Ohc\xad[\xbf\xd7\xb1\xaa\x1f\x90\x18\xb4\
+O\xda\xe7\x05h\xd6\x07\x84A&\x8c%\x02\x8a\x05\x5c\
+\x8f\xa3\x1e\xdf$\x0f*(0v\xf8\x84\x10V\x0b\x98\
+\xfd[ 'S\xafb\x92-+\xd5:\x80\xdc\x96\xca\
+\x80\x046\xe4Y\xb2\x90\xd7\x81\x0d\x91#q\xc6\x01\xc3\
+Z\x0c\x09\x03\xa9 !\x06!d>AJX\xbf\x09\
+\xe9.\xc4\x9d\x0a\xa9\x04\xa3\xcf\xbb\xe7L\xde&\x00\xe7\
+\xe0Wb\x02\x19\x9f\xf5j~%D\xb6*\xb0\xf9\xf9\
+8\x05\xa8\xd1l\xfe#lE^\x84\x9c\xcd\xf5x\xc5\
+2\x8f\x0c\x0fd59w\xb0\x1eo\xbe\x18\xb6\xe8f\
+o\xce\x0b[H\xfe\x8a\x0c\x98\xde\xb2\xe7\xe7\x1cp~\
+\xe9E?f\xc2\xa0\xadU^\xe6V.\x15V\x0e3\
+\xa8(\x07\x16)^B>+a\xe3\x5cV8\x10\xb8\
+\x18',\xf4\x1cKH\x0d\x09\x17\xfb\x81\xc2\x09\x07\xd9\
+:\xb1\xafZ\xef\x02t\x08\x86\x9c\xb7\xd5\xf3\xef\xef\xf4\
+\xf6*\xc0$\xe9\xe2\xf0\xb1\xb0\x15\xc4\xfc\xb6a\x0b\x92\
+g\xfb'a\xcb\xbapN\x17\xc9\xabu\x9f\xe7\xd3p\
+\x85\xb0\xa9\xd5a\xba\xdf\xed\xbb\xb3\xe2\x99\x81\xd0\xa46\
+u\x8d\x09R\xff\xfd\x80\xd4\xefy\xfb\xbc.\xa7^\xe5\
+;\xaeZf\xbe\xb69+zo\x05<S\xc5\xee\xcd\
++\x7f+\x0b\x1f\xe3\xaf\x86-\x89\xa1\xba\xcf\x8bL<\
+\xf6\xb3\xca\xc2\xff\x9e\xfc\x9f\x19\x01\xe0y\xbc1\x03\x13\
+\xbd\xbb\x12\x02\x02\xe0l1\x1d\xef\x92\xd0\xe4\xbb\x0fw\
+\x1b\x82\xdb\xea\x7f\x86\xb5\xd7W\x84\xb5\xbf\xdb\x86\x05\x09\
+s\xb3C\x96sl\xfb\xf0\xb0\xf6z\xe1\xedE\xb6\x11\
+\xd0\xff\x8f\xb0U\xe0\x7fDX{\xcc\x0f\x08[*\x89\
+\x9eC\xb5\xa4\x22\xffr\x9f\x89D(\xa4\x95\xf5\xd3'\
+\x06s\x9f\x1e\xde\x19\xb6\xd2\xa7\x17\x18\x04\x02\xe7\xed\xb9\
+\x1e\xf6N\x09\xf1fK\xc5\xb5Z-\xf8\xc5\xe423\
+~\xa8\x0aj\xb6\xfa\x8cO\x0a[Uf\xbd\x0f\xd5\x84\
+\xef\x86\xadZRb|\xdf\xbc\xb4\x00\x8e7\x1c\x7f-\
+8\xbf6\x9f\xdb|>T&\xf4^G\x1a!\x90\x0d\
+*\x9b\x95\xf0$\xc7\x97:\xea\x850V\xa1\x85\x0c\x94\
+\x98\xc0u\x80\x83\x05\x09a&J\x8bL\xce\xf9vN\
+\xb5h\xeeVGR\xc1\x15\xf8f\xeb\x18y\xc2\xe1\xb1\
+amY\xde9lJt\xdezJt\x22\x9d\xcd\xc4\
+\xd6\xf6ra+\xbf,\xff\x7f{\xabf\x91\x90\xfb\xfa\
+p\xf6p\xf6\xc2u\xb6\xb9\xd6\xbc\xcf\x8c\xc7\xa7\x0a\xda\
+;\xe7^\xf9\xe1\x9c\xe1\x07\x81\x1c\xa8\xb8\x0ai\xe1\xf9\
+\x19\xdf|b\xb7\x9a@%n\xc5\x17\xf6Y\xc8%-\
+K\xe2\xb6\xf4\xa7\x8a\x15\x1f\xe9\x1f\xbfOb\x16\x22\xef\
+\xc6a\x0bbK@]\x95x\x81\xac\x04\xca\xa5\xc3V\
+\xe7\x82s\xc9>\xa8\x80\x85K\x0d\xb7\x8d\x00\x19\xc2<\
++\xe1\x15@g\x22\xac\xe4\xab\x9d\x03\xfcS\x85<\x08\
+\x97$\xe9\xab\xc4=\xff*\xfd\x17\xad\x0a5\x1f\x9c/\
+\x12E\x17\x08\xdb\x85\x80\x9d\xf7\xe9\xfc\xbc\xcdk\xc3V\
+\xad\xe0\x12&Z\xafN\x09[\xfc\xa4\x22\xe9\xa72\x97\
+\x09\xe3\xf1\x0f\xc2V\xeb9\x13\x1c\x9b\x1f\x87-q\x98\
+\xc4g!:2\xa1\xb9o\xfb\xeba\xab\x8d\x92\x0c\x9f\
+7J\x08\xa5\x8d\xa8\xa0\xc0ge\xaf\xd8\xff\x98'\xca\
+\xf6{\xdb\xefo\xa3'\xeaEa\xab\x03Se\xceA\
+Ln\x88l\xd3w\xe7\x8d\x0a\x89F[\x84\x139\x8e\
+\x00\xa1\x1cR\x01\xaa\x83\x95\xe3\xa2\xc2\x9c\xd0\xc1\x82\xf8\
+&[1\xc7\xa0\x1e\xf8\x22\x9f6W\x00\xfe%\x0f\x10\
+\xbd2\xef\xcd\x0d\x8ec'\xa0\xe2h\xba\x8e\x94\xcf\xaa\
+\xcc\xe2?\x87\xb5\xef\xffb\xd6K/\x12\x09\x99h\x8e\
+\x82L\xb2\x8c\x9b\x0a=\x92-\x88\x03\x8e\xb4@\xd8u\
+HXX\xb0&\x96\xfb\xf2y9\xae-\xd8\x9a\x03\xb4\
+\x0b\xe4DO\xb9;\x1b\xfa\xe6R\xd9S\xcb\xa1\xf6>\
+\xff\x91\xef#\x90\xeb\x17\x22\x87\xdcu\xf5\xd0w\x0b\xa6\
+W\x1f\xe8\x13\x00\xde\xcf\xe7\x08\xa4\x04\xe8\xde\xaf\xabX\
+V\xcb\x82\xe7`\xdc\xfa\xdex\x01\xdf\xa1\xc5\xb2>C\
+U]G/\x93\x96=\x89\xf59\x02\x0e\x0e\x96\xfb\xe4\
+\xa0\xc9\x18\xf7\x95}\xbfo\xdep(\x1d\xc8}E\xd4\
+\xef\xf7\xcfY\xafgB\x0b\xf5\x92V@\xec\xfd\xfb\xde\
+\xe3\x1eI\xd2\x93\xbey\x1e\xd6\x81\xf1r}\xaeG/\
+\xd8G\xdb\xf6\xfc\xd1\xe9\xba~:%\x04_\x1f\xb6J\
+d\x1c\x9b,\xf7\xc7\xe5\xfc\xf6\x5c\xfa\x96\x04\x01\xceY\
+Y\xd1\xfevVT\xf5\xd2\x9a\x87\xc6Y\x8f,6T\
+\x8e\xb4\x0a\xda\xc1\xdd}s@\xcd\x17\x01(r\xc9\x9f\
+\xe4\xfdr\x1cA\xa8<\xcf\xbe\xe5\xa5\x93\xa5\x1c?3\
+\xf7\x9ao\xfe(\x1dX\xf3\xe3\xc4\xaeU\xc4\xfc:\x90\
+Ev\x9eW\x10\x04\xfe\xce\xf5\x1d\x9b\x01o\x17\xb0W\
+B\xcd|\xb9tG\xc6\xb9\xc8\xdb\xcd\xeb\xd7>\xd9\xf7\
+\xa2\xcb\xac\x1f\x15\xb6J\x90\x80N\xdb\x9f \x19\x1c\xf8\
+*G\x09\xdd\xad\xca\xa2y\x8fL\x07\xeb\xb9\x0a2\xee\
+\x18\x157\xeb\xc3z\x17\xf8Xo\xf6\x0d\x9f\xafr)\
+Qf?\xbcd\xa9_\xcc\xf3\xcb\xfed|$0\xcc\
+\xeft4\xabW\x9b>1]u\xf7! \xec[\xb7\
+\xacW\xe3(\xd1\xe0\xf7\xec\xbb\xbe\xe70\xfa|\xf35\
+\x13\x07%\x9b\x88\xec\xcau\xdb\xafr\xfd\x1a\xcf\xcd7\
+\xc3\xdauog\x16k\xbd\xb9\x95(\xe1\xc0\x9c\x16\xb6\
+\x0a\xfc\x05\xe8\xae\x17w\x86V;\x88\x18\xba\xedz\x08\
+\xd3a/h|\x22\xdc\xc6\xc7\x86-\x01xq\x05\xe0\
+\x8a0\xff\xcd\x87d\xf7'\x17\xc7\xf1\xc1\x15\xc0a\xc7\
+\x01P\xdcA\xd6\xa7yi\x1dSE\xb0>\x90\x11\x0a\
+\x9c\xc9\xe4f%m|V\xd8\xaa\xa2\x9f\x8e\x1a\x081\
+\xe4C9\xde\xe9\x88n\x86\xb0\xf6\xfa\xbe\xb0\xa5\x05d\
+\xf3\x94\xb0\xd5\xbcH\x7f\xa6d\x02q\x19D\x00x\xd1\
+U\x82\xce\xfc\x16phY\xc2\x99\x012/\x01\xab\xd7\
+\xd8\xf9\x08\xb9\xd0q\xb3\xd4\xf3\x17\xc8&\xe2\xb2\xf6?\
+\xbfo\xdej}\xb2~:9\xdd\x82\xc6\xa7\xbfT\xac\
+\xe8\x99`S\xb1u_\xdbg\x86\xb5\x9f?!\xac}\
+\x7f\xbf\xb0U\x85\xf8\x83a\xed\xe7w\x0e[\x91\x94%\
+\xf9\xf2\xf6\xf9\xdb\x17l\x9f\xbf ?\xb6\xb7\xdd\xdef\
+{\xdbU\x8bG\xb6^\x16\x12%[&*\xd08g\
+\xf3\x83P\xa9\xc2B/\xc1\xd5\xc2\xf7\xa9\xc7\xba\xed\xb1\
+'M\xfb,h\xef\x97\xf6|q\x92\xcb\x94 \xa3N\
+\xf1\xd3\xb9\x97\x7f\x229\xbd|r\x19\xdcf\x15p?\
+i|\xe2\x14\xd0\xe6x\xe3\xe8A\xe6\x87K\xa9\x10)\
+\xe76k\xd7\xb3\xbdWX{\xbdqX{\xfd\xd3\xed\
+\x9fm\xff\xac\xbd\x1e\xbd=j{\xd4R\xe9\xdf\xfb\xe7\
+a\x0b\x22@a\x01\x12\xb7X\xcf/\x11\xd6^/\x14\
+6\xb1\xda7[\x90O\x85\xbc\x05E\xbf\xfa\xa4S3\
+\xaby\xb5\xf3k\xb8oX{=)li%\x19\xef\
+\x1a\xb6\xf2[\xa9p\x5cpj\x22,\xa4H%\x12!\
+\xb5\xf8q\xd8\xd3O\x0e[\xb1\xfd\xe7\xfe^-S\xb8\
+U\xb2\xe5\xa5\xb8/\xa8\x04dK\x81^\xf7`\xa8\x18\
+\x0f\x9d\xe6\xf5\x1d\xa6ym^jM\x00\x0d\xbf}r\
+}i\xf1\x11\x90#\x83|j\x22:\x9c\x93\x12o\xfc\
+\x0d\x09\x5c\x89C\xeb\x14\xe2\xcb\xefe\xc5\xb7\x12\x04\xfc\
+\xb5L\x9c\x96,\xe5\x17\xc2\xda\xf2{o\xd8\x82|\xd8\
+\xfc\xe7\xac\xaaa\x1eU\xe2\x8c\xbf\xfb\xb1N\xb6q\x93\
+\xfeG\x16<phl\xcf\x09K\xee\x80\x17.-\xd9\
+\x9b\x7f\x0c[q<P\x0f@\x12\xf9\xd2\xb0\x15\x82\x19\
+\x17\x0c\x8e\x97Te\x90\xd8\xaa\xf3\x1fie\xfa\x9d\xe3\
+\x95\xc3\x96s\xb5\xd4d\x04\xf2\xb8\x18\xf2\xbc@\xe2^\
+\x88\xb7W\x86\xad\x10\xa6\x10{o\x0b[z\xf6\x0bq\
+\x91\xfb\xaa\xc4q!E\x9c\x9fT#\xfc\x5c\xab\x00?\
+B\x02\x02\x09\xa1\x84P\xcaK\xf7H\x9f\xe2\xdc\xb1\xbf\
+\x9a\xe7\xfc\x0c\xfb*?F\xa5=\xe5H\x8b\xec\x94?\
+!q\x81D\xf2)a\xab^}\x9c-\xa9\x22#\xf1\
+R\x9d\xd7\xa0\xfd\x107\xc95 Q'\x9e\xae\xd6%\
+\xad\xa89>\x90 \xc3\x05\xc3\x16\x12\xc3}2\xf22\
+\xe0U)\x01%\xca\x03\xba [ >X\x88O\x9f\
+\xa1E\xe3fvLJ\xc6\xa1\x93a(\x92&\x01\xc0\
+\x13'\x8b\x80f\xae\xf4\xffCn,\x1c\x08\x07\x94\x85\
+* E\xea\xe7\x81\x80^\xa4LK\x0bC&\x96\xcc\
+\xf1\x0a\xe3q\xe3q\xab\x80I\xe6\xab\x87\xe8\xfb\xb9\x0a\
+\xf2\xe7S\xc7\xd6\xc4!S\x81}\xf3&\x99\x819\x22\
+\x0ff\x5c\x08)+\xd8&\xe9\xd4\x9b\x83\xc4\xa6\xa0\x8f\
+\x02z\x89\x00\x0e\x9f@\x81\x03*C\xcf\xc1\x16`,\
+\xf2]\xf3\x86`\x22\xf6r\x82*S\xdf\xce\x04\x009\
+\xbb\x85\xd5\x7f\xfe\xfd\x0c\x00\xc7o\x8f\xdf\x19\xbf\x93\xba\
+\xe3G\xae\x1c\xea\x85\xe5|~\x15`z>}@\x91\
+P\x9d\x03\xe4\xf0$\x00\xfa\x1e\x96\xbe\xc2yx\x97(\
+\x00\xf9WY\xeee\x07q\x07\x08\xd8\x05DH\x90d\
+2\x05\xc8\xf4\xcf{H\xa5q\xefI\xa0zD\x82\xfb\
+\xf1s\xd7\xcfA\x15\xd8\x90\x85\xbcB\x06R\x02o\x89\
+\x15\x9f\xef R\xf9\xec\x13#\x1cu\x15J$}\x1c\
+d\x81\x9b\xc4\x96y\xe1\xfd\xfa\x04\x80q\xd4\xfb\xa5\x02\
+\x05\xfa\x9a,\xa5\xd5+\x94\x81\xf7\xc6\xc1g\x5cT\x18\
+\xcd\xcf\x5c'\xe3Y\x01\xf6K\x19\xbb\xe3W\xeb\xe1B\
+\x9d\xec^r\x00\x04\x07\xeeTQ\xf8\x5cB\xdam\x94\
+\x1c^\x09\x0e\xe3\xe5\xe7\xc8<\xbd_\xdf#\xef>\xfb\
+\x04\xc0\xd52\xd0\xf6w\xe69\xddj\xf3[\xc5O\xaf\
+o/\xeb\xf2w\x99\xb1\xd6\xfa\x00\x0ag^\x0a\xf8\x8d\
+\xaf\x80U/\xeaR\x91G\xb67\x07\xaa\x12Q\xd9\xc3\
+\xbf9!+\xf3\xee[\xc0`<!s\xdc\xa7\xc0\x1d\
+9\x1f\xc7\xc4}\xfa\xde}Z\x87=R\xc2~\xfaK\
+I\xee\x07!\xe0 \xec\x02\xb2\x0aXzRL\xef\xeb\
+9\xf6\xefo\x5c\xfa}\xc1}\x80\xf4k\xf5\xe8e\xb2\
+\xec+\xee\xe7\xe0\x8e\xc3\xa4K\x9cV\xe0\xd0\x93dB\
+\xb0Pw\xc1a`\xbe\xdbO\xed\xb3*\xb1\xc9\x16\x5c\
+\x95~\xeb\xaeWo\xe9\xb9\x5c\x04\xf8\x028\x816y\
+\xc1t\x84U\xf6j\x1f\xb3\x0e\xcc;\xf3(\x1d\xd7\x82\
+\x94^'91\x9c_\x12A\x90\x0f\xa0\xd0zN3\
+\xc0/\xb5\x1dd\x84\x02\xd2\xfb\x86-\x8e/RS\x90\
+\xe2z\xde\xf99\xa1\x22\x1f:\xf2\x9b\xf7\x84-\x15\xb5\
+\xcd\x18\xb6\x0al\x12\x82Z\x0e\xa9y-\xa1\x9aH\x07\
+=\xd6*NE\xda\x8b\xcd?+e\x85\xdc +\x09\
+\x19 \xc0\x16\xb8\xf0G\x92%\xba\xad\xb3\x13\xa2W[\
+\xe5V\x82\xa8Z\x15$\x08U`\xb2PR\xd7\x83s\
+!+.\x15\xe8\xe3J\xb0\xcf\xdbW I\xa8\x01\xe8\
+\xd1\x87\xe8\xe1\xdfH\x8c\x99\xa7\xb9\xcf\x15\x99\x94\x04\x96\
+\xf5\x05\xf9\xe3\xb9C$:\xdf@\xaaU\x92\x916B\
+\x08hY\xf8\xcb\xd9\x7f\xd9\xdc`s\xfd)\xf1\xf4\xe1\
+\xb0\x05)'\xc0\xa8\x80\x0er*\xe75\xf6n~\xa2\
+\xe7\x8e\xfc\xaa\xa0\xc8\x17\x8b\xae\xf3\x89\xdc\xed?\xc7\xd5\
+\xf97\xc9<\x1f\xb9\xf4\xcc\xab\x10n\xbe\x12\xb6\xf2\x07\
+!A\xf4\xc8_+l\x22_\x9bZR\xb7\xef\x0c\x9b\
+*\x89\xcf\x98*\x89\xf6\x05\xeb\x9a\xc3\x1fu\xc1\x87&\
+\xf9\xe6\xa9\xab\x96\x04\xfb\x9du\x96\xeaX\x85\x88yg\
+X{}~\xd8\x82\x90\xc1v\xbf\xf7ia\x0b\xb4{\
+{bX\xfb\xf9\xad\xc2\xda\xf7\xf7\x09k\xafw\x0ak\
+?\xffL\xd8*\x81\x93\xebF\x8b\x01$\xc5p\xd1\xb0\
+\xf6\xfa\xd1\xb0v=\xb7\x0e[\x0av\xdbW\x87\xad\xe4\
+\x05s=\xf1\xbf\x87\xc3\xc3:({$\xca\xcel\xf6\
+\xf1\x1c\x9fKM\x89\x92/M\x1c(\xb1j6\xab\x80\
+\xdey\x09\x91\x94\x15P\xebX\xe5sz\xdd\x97\x81\xe6\
+\xdf-\x1c\x1aUq\xfe\xcc\xc4\xb2\xb5\x04j\xb1*o\
+\xb2R!yP\xca\xca\x9d\xd7\xfc\x9e\xf3R\x1d\xe2o\
+\x96y=^?lE\x8el\x9dY\x0f\xfc&r\xc2\
+\xe7\xcc\xfeq\x05\xf8X\xd43\xe0,\xa4\x00\x7fH\x81\
+\xa3\x93\x1f\xad\x02\x93\x16\x1a\x9c\x1e\xce\x09\x09\xe5L\x90\
+L\x1d\x1am\xfe\xef\x9c\x17\xb6\x92\xa9\xcd\x1e\xed\xbd\xd7\
+\xdc{\xad\xbd\xd7\x9a\xae\xfb\xcaq\xdd\xed\xfb_\xd9{\
+\xcd\x05A=\x1e\x14\xb6\xa8\xa7\xe12\x80\x00\xa9\x02b\
+\xae\xdf\xed\x0b\xc2\x96\x80~\xe7\x0ea+\x7f2\xf7\xaf\
+\xe2\x80\xf2\xfc\xc8\xa2\xde-l\x85\xf0\xc9}\xb3\x10\xdc\
+T\xaa\xee\x16\xb6\xe2\xca\xb1.\xf9\xc1\x12\x0f\xce\xd7\xdc\
+o\x86G\x87\xad\x10\x028$\xecw\x90\xd3H\x02\x91\
+\xee\xbdz|\xd5T0>\xbd\xad\x8a\xd3\x97\xf7\xad\x16\
+\x09\x09l\xe7n\xb60\xd4|\xd2b\x92\xcf\xb5Z\x0e\
+\xf9\x9d\x12\xee\xe4\x12\xb5\x84\x0b\xd0\x15\xc2 kA\xe9\
+\xf3\xb5*\xf6\xd4p\xf8\xdfZ\xbb\xf8_\x90#\xf9\xbe\
+5?\xb5 \x22\xc9\xe5\xb7 \x93\x85\xec\xe1?\xe5y\
+P\xc8\xa4,\xe8\x0ew\x0a[\xf9c\xc8\x8e\x13\x112\
+\xbc*\xac}\xff\x92\xb0\xb8}=w\xbf\x9a\xd0\xce\xd3\
+\x12\xd2r\xcd\xf9 \xd9\xfe\xd7\xb0\xf6\xff\x17JR\x85\
+\x0b&\xbbo\xb2t\xd7F\xa9\x87#\xd9\x1b\x8b\xdc\xc1\
+\xc0YH&\xc49\xc5R:\x07\x04\x0fK\x96F$\
+g\x99!\xd9<.\xa1k\xef\xcb^\xc5\xec\xd9\x93\x99\
+\xc7\xa6\x89\xdd|\xfchf\xe68>\x16\xae\x0a\x88\xc0\
+E\x85\xdf\x80Z\xb8\x87\xef\xae\xec\x97\xbc\x1b\x87V\x86\
+\xeb\x9a\xa9GIV\x22\x1d\xf8\xa0\xd4\x99\xa0P\xc8\xc5\
+8n\x0e\x92\xcbv\xbd\xee\xbd\xc3,\xe02\x91]w\
+\xafK\x9b\xf7\x87\x1c\xa7*\x98K\x02`FHp\xac\
+\xbc\xcf\xcfvW\x98\xaa\xc5\xe1\xbc|\x1f\x89\x0e\x0e-\
+\x87\xb5g\x95\xedI\x01\x05`}\xc0)\xd0\xeeU\x09\
+\xfa^y\x01\xb6\x00\xea\xb0\xac\x98r\xf8\x0f\xee\xd8\xfa\
+\x8f\xee*\x86\x02*\xf2q\x02*\x07=\xdd\xe4d\x13\
+E\x92U\x81\x87\x83\xe3\xd2E\x1a\xb9\xbb\xe5A\xa2\x03\
+\x22A\x85\x91c\xb1\xc8\xf4\xcd\xf3\xc6\xff{\x9e\x0e(\
+\xf3\xb2\xef\x8d_\x02\xbb\xd9Aq\xd0x\x8e^%\x88\
+\x04\x94\xe6\x97\x0a\xa3y-\xd1\xd5\xab\x00\xf4\x09\x03\x99\
+\xe7\x84:M={Se>Yy\xff-I\x11\x0f\
+\x09[U\xa2\x04\x82\xc7\xe7\xabu\xf6\xc3ju\x99\xef\
+{'\xef\x97:\xc0\xf9\xf9\xba\xc8\x0c\xce\x1b0\xb5\x08\
+\x0e\xb4\xc0\xc9k\xb2\xf17'y\x17\xd9U\xb1\xfd~\
+'\x13Y\xa0\xd0\xc6]\x0b\xc9\xafd\xc5\x15$\x8e\xbc\
+\x8c\xf9\x9f\x07b9` ct\xce\xb3\xa2\x1a\xc0\xd4\
+\x09\x9ajC\xb7\xaf\x19\x0f\xcf\xd7\xbc6\x0f{\x12I\
+\xaf~\xae\xd2-q\xc0\xa1\x17(\xda?\xac\x9b\x9e[\
+@b\xc7>\xe0@u\x1d=)\xa6u\xe4\xe7\x02o\
+=l\xd7\xcb\xcc\xbc\xc4\x83u\xe8\xf3\x5c\x8f\x04\x8b\xdf\
+\xb3\xafPA\x90\x18\x14PI\x04\xf8\xbb\x8e\xe4\xa6Z\
+r\x8c\x8f\x1ej\x89'\xe3\xec\xf3\x97V\xa2\xf9\xef!\
+\x1b\xfc\xdc>\xc6!\x04\xd1\xc7\x8a\x8f\xdd\xd9+\x15\x00\
+2\x9c\xbe\xacG\x10\xfc\x0eARz\xf6\x99(/\xc7\
+\xd6~\xe6\xb9\x80\x8cz\x0ez-\x91\x85%\x84\xbd\x10\
+\x17y\xde\x81\xbc\x96\x1a\x87\xdeu\xe3\x9c\x0eU%:\
+p\xd2\x80\x18\xbe3l\x85\x88\xc3\xbd\x91*?\xc5>\
+M\x068\x03\xe8\x0a\xa4%dpj\xa8\xbc\xab\x10\xe9\
+\xd9O\xc7\xba\xae+\x11W\xdb\xdb\x85\xad\xe4\xa6\xb4P\
+\xbd#l\xb5\xef\xe4\xfcF\x12U\xfb\xbe\xc0\x01\x19c\
+\x06\x94\xdbC\xc2\x96\xf1+\x19\xc5DL\xd5\xf5|\xa9\
+=\xbd/M\xbd\xa4O\x9bz\x98\xcd?\xfb\x16\xc4\xa0\
+\xf3\xca\xfe\x9c\x5c\x02\x95x1\xff\x04\xd0\xf6\x87\xac\xac\
+o\x1e\x11\xb6Knv\xba~\xf7Y\x0e\xb5\x84\x82D\
+\x15\xe4\x85\x04'\x87\xcf\xf9e\xbe\x99\xf7\xce+j\x0a\
+\xf7Kv}\x09$\xe4\x878\x16T\xe82\x11T\x01\
+zVbk\xbe]\xaf}\xea\xf5\x96\xc4O\xf3\xbf\x1e\
+\x1f\x1c\x12\x9b\xd7\x84--\x19*\x90%\xc3\x08I\x82\
+\xb4V\xa2 [K\x0b\x22+@\xd0B\xfa\xd2\x94\xb1\
+Lu\x93Jt\x87\x97\xf1\xef+\x04\xd1\x7f\x0d[%\
+\x9c\x05\x80\xfcM=\xb3\x123\xc1\xb01\xb7\x94>}\
+B\xa2^m:\x99+1\x05\x1a\x5c\x10e*S8\
+\x95pW\xa4:I!\x0c\xc8|\x1d>\x95,f?\
+\xb8\x9d\x13\xdbk\x87M\x95\xfd\xa3\xa7\xca\xbe\xc0\x7f\xfa\
+Z\xc8\xfe\xf6\x1e\x11\xd6\xbe\xffjX{M\x04n\xa9\
+\xbbd\x80;\x5c$\xacm\xa7\x7f\x1e\xd6\xbe?2l\
+\x22\xbd\xbbo\x90\xde\xed|'l!q\xe4G@\x18\
+ln4\xbf\x1fu\x8c\xfd/\x0bK\xc8\xf6\x09\x0bY\
+\xdeT\xb7\xbe\xd7\xaau\x167\xce\x07fU\x88\xe9T\
+>x\x09\x90\x8b,oM\x96\xdb\xe6\xf9xR\xd8\xaa\
+'\xde\xba\x13\x08>o\xcf\xf3\xdb\xbf\xaaT\x8eO\x08\
+[\xed\xeb\xce\xeb\xd7e\xcbS\x9e{\x02\xec\x22\xdfV\
+\xa8K\xe8\x7fq\x13$\xd2\xa7\xe2\x90_\x0e[\xf5Z\
+\xd3]\x7fT\x16:\x91\xc0=6\xe7a\x06D\x85X\
+\x960\x94\x18N\xce\x22\x95\xfd\x22O\x04\x05\xe7\xffB\
+\xf6!\x97\xbbTX{^\x0f\x0f\xfb9\xe3rJ\x06\
+\x8c/K\x8e\x93\x1bmn\x1cz\xf1{\x1f\x1b6\x91\
+)>$\xc8\x14'\x7f\xf7\xe8\x15\xa9\xe1]\xe7y?\
+\xbe|F\x80\x14y\x9e^\xf0L@@dW\xc2\x10\
+\xd2!9\xdb \x98*1\xa0\xf5#\xef\x7f\xbb7l\
+\xf9\x5c\x81\xeax\xf4x\xccx\xcc\x8a\xad\x1e\x02\xe1\xdb\
+a+\xd2\xc4n]\x97z\x87\xb8)Y\xee!W*\
+\xd1O\x8d\x22\xc9>\xa7\xf4\xdc#W\xe3l\x9f\xcc\xc4\
+\x83\x04v!\xd2\xb4vf|$\x81o\xbd\x17y\xa9\
+sR\xc5\xde\xfe\xaf\x05-\xd9\xf3+\xd1\xe1\xbc\xf7{\
+\x0a\xaf\x9dL\xaa\x04s\xddo\x92r\x8e\x97\x0c[\xfd\
+}\x22\x91\xc67\x86\xad\xfc\x1d\x89\x02\x81>yO-\
+5)\xdf\x8b\x5c\x12\x97\xcf\xf0\xb4\xb0%qZ\xf2\x81\
+>\x17\xd2.\x13\xe5\xfb\xca\xd1\xca\x1e\xe1\xed\xa3\xc3\x16\
+]\xc5P\xf7\x9cdOb#}\xfa\xe4 \xcf\x99\xa0\
+\x0c\xe4A\xfa\xc6G\xcd,\xb2\x9b\xdf\xc8\x83\xc0\x01\x8a\
+L\xc3@A\x00|&+\x7f\x1e\xa8\xcc0=Od\
+\x09\xe4\xac\xfee\xf3\xd5\x89}U/\x9b\x03\xf5s\xd9\
+C\x99\xbdV2\xf1 &EV\x947\x5c\x9f\xe7+\
+U\x06\x86O\x86\xad\x02o\x0e\xca\x95C\x81uqt\
+\xc6\xf3g\x88GA\x80\xc8d\xbc-\xc9\x03e\x94z\
+\x12\xbd\x0bvds\x02\x05\x81Z\xcfB\xdd\x93|\x99\
+0\x12\x05}\x82C\x85j\x81\x02\x0b\xc8\xe6\xf7\xe7\x90\
+\xfc,\xff\xceu\xe0\x048,l\xe5\xe0,\xf3bF\
+.\x08\xb4=W\x99`*\x06\x99\x89%oQ\x01\xbf\
+@\xd3u\xf7\xf2g]@SH\x84K\xef\x96S\xab\
+@\xbcc\xeb_\xf5:\xcf\x95Z\x01\x87\x003U\x1f\
+\x82\x8a&\xc8h*\x13*\x90u_\x02\xe3\xcb\xec\x0e\
+\xcc*\xe0\xf7<{\x12\xc0K\x96\xac\xe2\xaeDF\x05\
+\x22\x02{\xe3\xe0K`\xebs\x91\xbcI\x90I\x9c\x09\
+,\xe8(s\x88%\x82\xf4\x86\xa7\xfcQ\xdd\x9f\xf9 \
+\x81#1\x93\x0ee\xb5\x80\xb8?\x10P\x8e\xa0\x84\x8f\
+\xf5\x22P\x13x.=T\xbb9 \x04\x80\xcb\xeb\xfc\
+\x1c\xfa\xca\xab\xbf\x97\x980?\xce\xcbV\x81\x8e\xf3b\
+\xb3\xe8\x7f\xcf\x8e\x02(\xa6\x04 $\x8f\xe7)\xf03\
+O\xccc\x81\x09\xf6[:\xb9zw\x91\xec\x19G\xd7\
+\xd7\xabG\x98w\xc6Y\x00\xdd\x07\xa6\xe6\xbbu,!\
+\x90\x0e|A\xdb\xfd\xbf\x84*\x07\xdf<\xeb\xe5(\xbd\
+\x7f\xae\x93\xb6OM\x95\xcc\x03z\xee\x05\xec\xe4\xe4\xc8\
+R\xf6\x01\xb8\xf9~\xb5t\x80\xc99I4\x19W\x10\
+9\x89\x0a\x09T\xd7\x8fK\x82|\xa2D\x86\xbfW\xc1\
+U\xa9\xe60\xd9\xdfz\x928\xfb\x83\xfb\xd1\x13\xac\x95\
+\xc7\xf8\x1a\x17${\x9e\x8f\xf9\x0fz/1-\xd1\xac\
+\x82$\x01\x9c\xebp\xf3\xa8\xb0\xd5\xbe\xec\xf9\xda7\xac\
+g=\x80\xd6\xa5\xeb\xe4Pph\xfe\xcbd\xcbx.\
+\xbd\xc9\xf3:\xf0\xbc\xcd[\xea\x15\x09\x99\xac}\x01w\
+\x05\xe4\x85u\xe69\xe0\x16\xc0*\x9c\x81Y\x05\x80_\
+\x9al\xe9\xd1\x17\xb8_\xba\x10Us\x00\x9eP\xc4\x92\
+\x11L\xa8f\xf5.J\x88J\xa4\xe0\x04\xd1#l\x9d\
+%$\xb1*\xeb\x1c\x18\x81 \xd5\x15\xec\xffy\xaeT\
+\x8f\x7fn\x1b\x9e{q\x07pD\xd3\xb1\x04\x9d-d\
+\x00\xa8\x7f\x92N\x8d\xff6~wJ\xfc\xfee\xd8\xaa\
+E\x81\xfc#\xe8>\xe4\x056\xf3\xec=\xae\x0a:G\
+5\x11\x92E\x02e\xbd\xa8\xe4 \xc5\xb4\xce\x1e;\xd9\
+Bv\x08\x99 \x01$\xe0\xf4\xff\xd6\x05\xf2(\xd0U\
+\xf3\x03\x02'I\x08\xc9;i\xbd)N\x09\xd0y\xf3\
+HOi\xde\x97\xcf\xc3\xa1\xd4F\xef\x1e\xd3\xf89\x8f\
+\x93+h\xfb\x8c\xb0\x05\xb9\x81d\x0b\x07S\x91\x8f\x9d\
+\x19\xb6\xa885o\xecG\x9b\x1f\xad \xeaY\xa9\xd4\
+2\xb6\xf9\xd5\xb9\xc5e<;\xd5\x09\x90k\xe5y\xb2\
+=2l\x95\xb0J?\xae\x85\x17gG\x80\x11\x1d\xe1\
+A.W\x81khM\xdcr\x9e\x8f\xc3\xa7\x16\xd6\x7f\
+\xf2cSe\xefBK\x0f\xfe\xf8\xadf\xdf\xce\xeb\xff\
+\xe7e~o\x9f\x1d\xb6\x92k\xfb\xc7f\x91\x08\xf8\xbf\
+\xcd\xbe\x92\x81\xe6\xdf-r\x80S\x0f\xf7\xb1K/\x7f\
+\x0b\xc4\x9b\xadX\xde3\x10#\xfb&\xb1F_\x1e\xa2\
+\x86\x0a\xc8\xf0\xa3\xb0\xb6\xbc/\x18\xd6\xbe\xbf^\xd8\xc4\
+z~n\xb0\x9e#\xd1V\xd1\xdb\x9e\x1d6%\xc4&\
+\x12A\xfb\xc1xlX\x92\xdd\xfd\xd7\x85\xdc\xb1d\xb7\
+%\x06\x9ds\xc7M,5\xf3:}K&$\x9e\xba\
+\x0a\xb0%\x02\x04$\xf6\x9f\xdc\xdf\xa6\x8a\xe6_\xaf\xd6\
+\xf9\x99\xcd;>s%\xa7\xa7\xf2\xee\xef\xed\x1b\xce\x7f\
+\xea\x14?\xcd\x0a4rG\xf2\x86\xcf\x9e\x13\xa8\xc5\x1d\
+$!\x98\x5c\x06%#\x8b\xac\xd0y\xa0\xd2\xfdga\
+K\x8bCq\x15d\xc0W\x81X\x22tJ\xe6\x0dT\
+^\xe1\xd3|\xe4_Hh\x19O\x09\x15*\x01\xd9z\
+Q\xad\x08\xb8\x86 \x8c\xa9\xb3<zF\xa0l\x0fk\
+\xd6\xce\xb3\xed\xc7\xc3\xda\xfb\x1e7^qB4'\xb7\
+G\xed\x83\x12FO\x0f[!$\x12z_\x89M\xad\
+i^\xb5H\x90\x15\xcc\xb8\x03\x92\x0a\xa9_\xc9o^\
+|F\xec\x14\x87\xc2asb\xc3\xfc\xaa\x04v&\x08\
+\x0b\xc1\x93\x08\xae\xe2\x1cJ.%\xb2\x99\xe3\xef\x8cw\
+\x8eD@\xc9\xf5\x8a\x7f\xb4@\x19_\x9c\x00\x02\xfc\x94\
+\xfb\x93\xe0\x94\x80\x1d\x9e\x15\xb6\xb4\x82\x17y\x1f\xff\x94\
+\x0c\xe6\xc9a\xab\x84\xfc\x13&[\xb8\x0f\xa8\xf4\xbc(\
+l\xb5\x8f;\xf7\xad\x17H/H\x01\x85\x9cT\x05*\
+\x84\x83\x04u\x16\xf2\x0aq\x97d\xd7\xc5\x8d\xc0\x8f\xe1\
+7H\x04\xa4?Q\x9c\x07\x19\x87H\x5c)|\xd59\
+ \xde\x86\xa8p\xce\xe0\x0c\xca\xeb\xdb\xb7\xb9i\xf6f\
+\x9a\x002\x9e\x02l\x8e\xb5\x89\x83\x04\x8c\x03\xfb\xbc\xb0\
+\x09\x025\xf5\xfc\xb7e>\x07\xeez\xb2%\x00\x04\x9c\
+d\xc9\xbc\x9f\x80Bo\x9f\x8c\x9b\x80\xddA\x9a\x0b\xbb\
+\xa0\x86{s\x22>,'\xe0\x19)\x17\xf4\xee\xcd\xbb\
+6\xef\x9a\xa0\x19\x93C\xb1\xf9\xbb\xb0\xa9E\xa1\xd9J\
+\x871Ih\x86\xd7\x86\xad\x0et\x0e3\x07%\x1d\xd3\
+\xf1\xaf\xc3V\xbdSw\x9f!0\xed\xf1\xce$\x80\x06\
+\x9cC\x9a\xe3)cX\x95\x93\x0bg@(\xd1\x80S\
+!\x17Z\xf5\x86\x0a`\xfb\x8a\xb1\xbf\xb3a\xfa\xb9\xf1\
+\x15pr\xa09\xa6\x17-\x16\xfd>\xe0\x9e\x03U\x8e\
+\xeb\xe5J\xdenv\xd8U\xb2\xaf]\xba\xca\xbbe\xa8\
+8$\x12\x0f\xbe\x16\xc4\xc1\xfc\xff{r\x01\xaa\xf4\x1e\
+\x99\x01\x0cV\xfbC\x93\x8b@\xe2\xa0\x87\xda\x1fY\x9c\
+\x01\xbb[\x05\x04\xaed\xab\xdc\x87\xcf\xf9i\x92\x81\x09\
+\xf0T\xf0\x8c\x9b\xca9R9\xe3\xe8\xfd\x05~\x02\x00\
+\x8e\xf2\xd1\xd5\x1a\x80]}\xfe}\xe3\xec9\xf5d#\
+;%C\xb9;!\xe0\x80\x12\x90\x08|A\xb0\x8dC\
+'/\x89\x9c\xb26N\x096\xf7\xd9\xcf\x1f\x9f?\xfc\
+\x82\xc0\xbc\x0fp]\xb7\xe7\x22\x90\x13\x90\xda\x08{R\
+H\xdf\xf7\x08\x14\x09\xa7\x8b'\xc9\x1f.\x11\x89\x86^\
+\xfe\xaa\xe7D0\xbe\x121\xae[\x85lY'\xdb]\
+\xaa\x16\x9e\x9b\xde>\xe3\x93rE\x9b}\xf3\xbeS\xfa\
+\xc32\xe6\x10G8J\xfa^s\x01\xba\x0a\xe9\x89\x99\
+@\xc9\xc4e!<\x04\xa2\xbd\x8c\xdf\x9531\x81M\
+\xdf|K\xb2\x9f6\xe7v\xf5T\xd7AzL&n\
+\xcc\xbfk\x94\x5c\xdf\x9c@\xf0\x9a\xeb\x17\xd4\xb9\x02\x0b\
+\xfb\xdc\xd5s}\x9f\x98\x89\x09\xebG\xe0\xae\xb7\xda\xbe\
+d\xdce\xe0U\xb2A\xa1\xeds\x02y\x9f\xe7\xd5~\
+\x02\xea\x8d\xd4\xc6\xbcr\x00z\xce\x90/9/\x8b\x05\
+\x1ed\xd3x\xf5\x89\x17\xf3\xd8\xfe#\x11*`\xcfs\
+\xa9\x12\xca\x10\x00z\x11U6d\xfc\xcd?\xf3\xa6C\
+\x1e\x1c\xc0\x92\x0c\xda\x8d\x9cR\x00\xa9\x92\x99\x0e($\
+RA\xb0A\xfe\xad;\x90s\x81L\xf6\x12\x8e/\x0b\
+[\xfd\xbe}\x01\x17\x80\x8al\xf6zr\xbc@\xa7K\
+\x16\xcd\xf5a\xc9G\xc6{\xc9\xdc\x8f\xb5<\xa8\xb0d\
+\xe5\xaa\xc8\xce\xba\x9eE\x09\x06\x90\xe1H\x8bGb\xbc\
+\x02\xc5|\xce\x9b;\x84\xad \xeb=\xb9)\xce\x06-\
+OH(3\xc0\xdc\xf3\xbc\xc9\x16\x9dd\x90QPT\
+\xf3\x1f9_\x160\xaa\x17\x93_C\x15\xc1\xfc\xc8\xe7\
+\x5c\x89\x81t\x10\xeb{\x95.\x89\x0d\xcf\x15\xf2\x08\x12\
+@K\x07.\x86L\xc8PU\xaa}\xc3z\x83\x8c\x91\
+\x18\xe0\x00Z\x07\xf6_\xdf\xdbW\x9d/\x9e\x1bR\xe4\
+\x94#\xac\x04\x01H8N\x02\x011\xb9,r\x9cd\
+z\x91Cg\x0fz\xb5p\xbc%\x94\xec'\x07yJ\
+\xb4oo\x16\xb6\xdc\xd7\xe6Ka\x0bwK%\x16~\
+\x18]\xf1\x13\xc4~j=\xa9\xfb\xf4w\x99\x88\xb2\xcf\
+\xb6\xddm\xf6K\x9e\x93\x9cP\xb9\x8f\x0f\xd7\x19\xae;\
+\xb4\xc0v8*l\xea\xe1\xfd\x8b\xe8\xe1\x1d\xce\x0c\xcb\
+\xefON\xc7\xfc7V\xf2\x5c\xc1\x16\x1f\x1c\x0e?\xca\
+\x02\x11\x8e\xab\x98\x17!\x9f\xf6\xae\xd9o\xac\xc2\x07\xbd\
+\xf2\x5cW\xa5\x83\x9e\xdfo\x8fov\xa5\x85\xa5^\xc5\
+q\xf3\xf9\xb0\x05I0q\x01\xc4}\xbf=l\xd5\x92\
+J6\x0f\x8bz\x06\x8e;\xe7\x84\xb5\xfb\xb9AX{\
+}e\xd8J\x06.\x03\x86\xe1Fa\xcb\xbe\xbb}D\
+X{\xfd_a\xed}>\x10\xd6~\xef6\xcdn\xbb\
+\x90\xff\x09\xc8\xc6\xcb\x87\xadH %\x04\x91\x94f+\
+\x0a\xa4\x9cD\xd1\xf0\xb6\xb0\x15\x8b>\x92\xdeXeC\
+\xce\xf3\xbbg\xc5\xfcsK\x8bi%\x04\x044\x12\xa9\
+\xe9\xef\x0b\xc4\xab\x90a\x7f\xbd\xf2\xee\xc4\xe8\xd4\xaap\
+\xe6\x0a\x01\x95\x09\x80\x0a\xb0\xac\x7f\x09Q\xfe\x84\x82\x86\
+\x04\x03y\xd4\xdc?\xaa\x15I\xaf\xb9\xc0/+\xad\x05\
+5\xb7\xde\xbc_\xaa/H\xe4T\xe2\xe0\x0da\xab\xeb\
+\xccxfxn\xd8\xb2nJ\x0d\xe1[a\x8b\xbf\x87\
+\x8cs\xef\xd5\xc3\xa6D\xc0\x99\x91\x08\x18\x1e\x1f\xb6p\
+\x9a\x90q\xe7\x97\x14G\xcc\x85\xe7V\xae\x22}\xeb\x0b\
+\xa0Z\x1d\xc8\x89J\x0c\xe3v\x00\xf5\x7fM\x226>\
+\x9c\x5c\x05Ib\x8c\x1bd<!l!\xad\xacsX\
+! \x91I\xc5%\x03\xf1a_\x7fL[\xaf\x8fY\
+\xc9\xfe\xf1g=G~\x8a\xf3\xde9\x85\xf3\x04\xe7M\
+&d u\xac3ji\x95@\xf7~\x89\x84\xc3\xa5\
+S\xfb{r\xd5\xd5\xb9\x95\xdcEU\xf0\x15o\x90U\
+\xa5&\x90\x88\xa4J\xe4\xf3?p!\xf1w\xa8\xe3(\
+@$b\x03R\xa4\x12\x0a\xe2H\xe3\x80\x9b#\xfd\xa5\
+hp\x9f\x12B\xb9\x1e\xca_A\xceI\x05\x88\x1a\x13\
+dK&\x9c\x14\x00\xf7\xd5\xc1\xa5\x97\x1d\xa9\x17vs\
+\x95d\x1bUBn\xda\xa6=g\xda\xde5\xcbgU\
+\x00\xf8\xd9t\xa0RW\xb6 \x16\x0e\x5c\x07\xb5\x8c\x8b\
+J\x9bD\x80\x0dI@\x8e}R\xc0\x94\x1b\xc6\xf0\xc2\
+\x99\xc4\x00\x84\xb1M\xdaI\x9e\xa7\x12\x06I\xc2\xd3\x0e\
+\xc3\x99\xf4\xce\xc6g\xa1\x0a\x04dn\x0c\x90\xca?\x08\
+!R\x8f\x9c\x98HG\x0a\xc2\xf2\xc9$\x0f\xe2\x88\xf7\
+\x95\xd3owr\x80K%s\x97LT9\xba\x028\
+\x1b`O\x96'\xa0\xe3p\x0aplL^\xfd\xdcD\
+\x5cz~\xe7\xc0\xce\xf7\xfe\xffb]e]`'\xe0\
+9\xa7\xc8\x0cwU\xac6\x17\x0a[\xfd\x9d\x0a\xa7\x8d\
+\xc0\xfb\xef\xcb@\x8d\xdc`\x92\xb7m.\x95\xc8\x83\xbe\
+\xc2)\x00]\x90\x02\xf3\xf5^2\x03m\x01\xf7\xa1\xf5\
+\xf3\xddl\xfd\xa0\xfc\xfb;\x15\x05\x01\x88/\xefO\x1e\
+\xd2\xf8\xee\xdd4\x9b\x16\xfc\x1cXy_\xbd\xfd\x97\xdf\
+]Y-\xc7\x1b\x92\xc2}\xf4\x09\x80\x9eL\x12\xcb\xbf\
+\x83O\xaf\xae\xca\x0f\xc7C\x00\xc5Q\x16\x90\xa8$\x9a\
+?\xe6\x99y\xe4\xf3\xdd'D\x01YF\xeb\xaeoE\
+\x10p\xfe\x22\x15\x84#\xa7&\x89%\x00\x94h\xf2z\
+P~\xae\xef\xfbD\x15\xbd_=\xc5Hk\xf6\xe58\
+\xb9\xae\xde\xf1u\x1f\xbe\x97x\x83\x5c\xb1\x9e\xc8\x05y\
+?\xa4\x91*\xb0\x12O\xf7\xca\x80\xe4\x83\x9b\xd37\xa7\
+/\x0e\x1dR\xcfj\x19\xf9\x9b\xb0\x15\xd9\x8fqr\x7f\
+\xb9O\xe2R\xd8\x93-,-h\x9e\x03\x8b\x05a2\
+\x8f+h\xaf\x96\x88C;\xf2\xc9c\xf2\xf7\xf4\x0e\x83\
+\x90\x1b\xffkdF\xb7\x9b\x7f\x95\xb8t\x10\x090\xfa\
+\xc0\x1b\xd4\xec\xe4\x0c\xacN\x9a\x1d\xf6\xe6\xf4\xcdPd\
+\xd0\xdb\x9e\xac\xce\xe7I\x90\xf9\x5c\x01\x97\xf1\xf7yZ\
+\x03\xf2\xf3\x0a9 #\x0d\x99!\xe1\x00\xa9\xd0\xb7\x22\
+y_\xa4m2\xffZ\x1f\xc8\xbd\x99/\xf6/\xeb\xcd\
+\xf9$\x11\xc3\xa1\xcc\xe7[\x08\x1cP\xe0\xecq\xaeu\
+d]I49\x17\xedw\xf6\x8f\xb4\xe7\x8f\x00\x00 \
+\x00IDAT\x17\x09\x02\x89E\xfb\xb4\xf1\xc9\x0a}\
+A\xe1\xb1\xf2#\x9f\xd3\xcb\xae\xc2\x94\x9f\x87\x5c\xacZ\
+\xe3\xb00\x93\xbds\x0ejI\x01Y4n\x12OZ\
+<\x04.\x9f\x0a[U\xecO\x9f\xd7A\x05h \xa2\
+\xd6k\x92\x9d\xf1\x17\xb6o\x0a[\xcd\x07\x89z\x10W\
+\x09\x0a\x88\x08\xeb\xcf\xf3\xe1\xb0\x08@\xf4\xb8s\x5c\x91\
+\xf3Y\xdf}B\xf0\x83\x13{\xd0\xb2n8\x86\x19\x80\
+\xd6z\xe1pi\xfdIG\xaa\x1c?\xd7)`W)\
+\xe7\x07d \xbayq\xd8RiC\x06\x87\xfcW\xe0\
+]\xff\x7f\x9f\xb0\x9f#\xf3\xd9\xab\xfb\xd8\x7f\xbd\xf6\xa4\
+\xbb\xd6\x1d\x04\x0c\x84\x8d\xf5\x9cj\x1aUaO\x84H\
+\x05\xe0\x107\xae\x0b\xe4\xfci\x93-\x81\x7f\x06~U\
+\x91\x04}G\xe6\xf6\xe6\x94-{s\xd8\xaa\x95\x80l\
+tV\xeapKm\xae\x90\xb2\x7f\x12&\x0a=\xd4&\
+\x92,\xba\xc8\x15\x93\x1b\xaa*\x94\xd1\xbb{\xe5,\x90\
+4\xffq8$\xac\xbd\xfeF\xd8\x12H\x8e\x87\xce\xac\
+\xeb\xe5o\xdd![#\x04\xe6Y\x09\xdc^7,\xf7\
+\xdd\xf3W\x09 \xe3\xec|%\x9f\x97\xe4[\xe5\xa7~\
+q\xfe<\xba\xef\xdb\xe7\x84\xb5\xdf\xfbl\xd8\x8a\xc4,\
+\x03\xc8Rs\xd6\xe2a\xdf\x00)O\x12<r\x8a;\
+\xbf\x1e\xd6^\x9f\x12\xd6\xfe\xff\x9ba\xa9\x06\xd2\xfc\xe1\
+a\x7fX{=o8wh\xef\xb3\xf7!a\xcb\xba\
+\x1e\xde\x1a\xd6\xfe\xfe\xd7\xc22\xf0o\xf3}\xe7\x86a\
+K\x00Y\x89@\x89\xeb$[\x9c\xe6o\xfb\xbd\xed\xe7\
+\x9a\xc5\xf5\xfd\xcd\xdc\xa21\xbc>li5\xaa\xc2Y\
+\xb6Z\x8c\x0fL\xb2\xbdOg\xc5\xf1j3\xf9`q\
+Q\xf4\xdc;\x90\xa3\xcf\xcd\x96\x82\x07\xa5\x9f\x9f\x89\xb2\
+\x82n\xfff\x22k\x04\x94H\x81o\x11\xb6jI\xb0\
+\xdf(LI\xf4R\x99r\x1e\xf1k\xac?\x09\x04\xa4\
+xZ}\xecW\xfc+\xeb\xcc~\xa4\xb5\x0a\x87\x80\x9e\
+\xee\x94g\xac\x8a\xb5\xf1\xf8\xdc\x84y\x8e}\xeeV\xb1\
+\xcf\xed\x9c\x1f\xb6\x14nv\x1e\x11\xb6p\x94l>\x9d\
+\xfb\xf3\x85\x12\xb1\xf2\xb8\xb0\xf6\xfa\x97aK\x05\xbby\
+\x05\x132ts\x81\xcd\xbe\xcd\xbe\x95\xec\xdcC3\xc1\
+\x94\xe7B!0\x9c\xb7\xf6O\xfb\xa6\xf5\x96\x89\xa6\x92\
+\xb7\xcd\x00s\xb8n\xd8\x8al/\xfd\xd2\xf1\xcda+\
+\xb2JjU\x10\x10\xc9-W\x09l~\x0f\x95\x9d|\
+\x9f\xcd\xdf\x86-\xcf\xb9H\x00\x0f\x0d[U\xb2%\x5c\
+\xb58\xd9\xdfS\x9e\x152i|U\xd8J&3\xcf\
+\x99b\xdb\x97p\x95\xf0\xc8\xf8\xafd\x84%Hp<\
+@\x92\xa4\x7f\x05a^\xe7\x9d\x96\x90T\xc3(\x99B\
+\xfb;\x7f\x8c\x9f!\xc1J&4\x0b\x0d\xc3#\x9b\x9d\
+\x9a\xf3\xe9\xd4U\x5cJ-)\x03\xfbJ4\xdd+l\
+\x85\x80\x11\xff\xdek\xb2\x85l?\xe3\x89\xcd\xa9aK\
+\x22b_\xb1}\xea\x0dP\x99\xc7\xca\xf9\xfeY\x06\x0b\
+\xb9\x87\x0cU\xbb\xec\xe9\x80@\x8aR\x03\xf9\xa5\xacD\
+\xca\xf0\xe8\xb95Q^9\xcb\x05\xd6@p\xd0\xf4.\
+\xeby\xc0j\xe8\x81\x90\xb7\xc9@A\x22bs\xf3\xcd\
+-6\xb7X\x12\x0b\xc3\xe3\xc2\xa6\x8dbf\xfd\xbd~\
+B\xa7\xf5\x8a\x18\xb0\xff6\xdee\xbc\xcbJG\xbd\xef\
+\xf1N\x07\xb5z9@4~7'\x029 \x88\x08\
+\x0e\xa6\x8d\xae\x97u;\x10\x1a=\xbf\xba\x7f\x99f=\
+\xfd\x1c\x98\x9e\xcd\x9ec\x00\xca\xe1\xe0\xe6\xf8s8\x05\
+\x1c\xbe\xf7\xda\xb7\x22\xf8r\x1f?)V\xf8y\xe2~\
+\xbft\xd0\xe7\xfb\x11\xf0,\xba\xf3\xb3Cf#9\xba\
+\x83\xec\xf72x}\xa5X\xa2\xc2\xef;\x88{9\xb7\
+\x8be\xa0\xe9}T\x04\xf5\x0c\x9f\xd0\xb1\xef\x0b\xd0]\
+\xaf\xc0\xfe\x82]\xa5\xdbxtdb\x1b\xe3u\x8d|\
+]\x10\x14\xf3\xfbs\xac\x05hX7\xfb\x0a\xa4q\xea\
+\xbf@\xf7\xb1\xd8\x22\xd5\x91\x81|{\xd8\x0a\xf1\x02\xf2\
+|\x8d\xdc\xb8\x8e\xefd\xac\xcc\x13\x81\x87u\xdc'V\
+ \x0d\xb2g\xbe2\x9ad!\xdd'G\xb4W\x05X\
+#M.\xb8\x9a\xdf\xbd\x8ce\x1f\xb0\xef\xdd\xddrR\
+\xef\x03\x02\xec\xfe\xb2\xf5\xa1zA\x05`\x10 \x12m\
+\xd6\x9b\xc0L\x22B@\xea`p}\xc8/\x93\xbcS\
+%\xb66\xec\x83\xc3\x16\xa8l\x91re\x806\x1e\x1f\
+\xb6b\xbd\xa5\xff\xcd\xa1p?\xbe\xbfi\xca\x1c]8\
+9\x05\x04\x00\x12`*\x8e\xd6\xb3y\xe2>z\xb2L\
+\xf7\xa5\x02\x7f\x5c\xa9\x06\xcc\x81\x81\xcc\xb6@\xa9\xe7\x04\
+ [&\xf0\xe6\xd0\xe3\xc2\xb8E\x92\xd5t\xc8\x81z\
+\xb5\xbf\xf4\x81\xbe\x80\xfd*\xd9*\x85c\xa5k\x99\xd9\
+\xdc(l\x15`A\xd4\xb8\x1f\xbd\xe4\xc6\x1d\x04\xd0}\
+\x9aO\x19@V\x0f\xb5\x80R \xb9$\x80\xe6uo\
+\x9eH \xf7\xadOO\x0e[\xad\x97.p\xd5\xcbX\
+\xad!\xe6\x1bG\xc6\xab\x0aL:\xf4*\xc0\x1c\xa8\xcd\
+\x1b\xc2V\xfb\xbd\x96\x07\xd7o\x9dI \xd8\xef\x13r\
+\x0a\xf2+\x10\xad\xc4E\x9e\xd3u\xbd\xd4hT\xda$\
+\x06p}\xa8\xc4p\x04U\xa6%\x18!2\x8c\xa3D\
+\x84^\xf2D\x0c \x93\xdb\x9c\x12\xb6\xb0V\x97\x1et\
+/K\xa9\x87?\x1d\xb8\xea\x11%\x13l=e\x00X\
+\xdf/$\x9e3\x92%\xcf\x97\xf1=y~r\xf8\x1f\
+9\xd9B\xb2%q\x97\x08\x1f\xe3X\xb2H'\x87-\
+\xe7V%\x06@s\xf3\xfd\xc6\xe4B\xa9V\x87\xc3w\
+\xef\x1f\x15\xd0\x9a\xcf\xf6\xabL\xe4\x16t\x1f\xc4_b\
+\xcb\xbc\xec\xce\x1d\x95\xc8\x15bp>\x7f\x14*\xec\x0f\
+\x12]\xf6}\xfe\x93J\x97\xe7\xa57>\xc9\xaa\xaa\xa5\
+\x83\x0a\x82\x9e}\x5c\x06\xe6\x83u`~K0?7\
+\x91\x17\xd6\x97\xdf\xc7u\x91z\xda-\x88\x9a[A\xcc\
+\x1f\x95/\xfe\x84\xf9\x99\x10\xe5\xf1\xfea\x0b\xf7\x80\x9e\
+\xf2\xf1\x90Y'{\xfc?s\xa1ix\xdf\xf0\xde\xe1\
+\xbdS\xe5s\x82\xc2\x16\x99\x17\xd9\xd6\x8f\xcc\x08\xd4\xe0\
+\xf0\x8f\xfdas\xc2|\xaelN\x9f\x03\x86\xcd\x8fg\
+\xb6\xff\xf1\xe6\xe3\xcd\xc6\x9b'\x82\xf5\xb9\xb9\x8fEK\
+\xc2\xf9a\xab\x96 \xaa\x09\xa0\xbbO\x1a\x9f<>9\
+\xcf\xe5\xf3\x97^\xf6\xe1\xa1a\xe9'\x1d\x92\x88\xc9k\
+/\x85\xa6\xed\xdf\x87-\x5c;\xc3\x07\xc3\x96\xfb\xdc\xff\
+\xafa\xcd-|f\xd8\xaaw\xf8\xac\xb9uqxI\
+\xb3\x97&\x19\xe0qK@\xb1=\xa3\xd9\xe9\x0brm\
+\xe7\xe3a\xed\xfd\xbe\x11\xd6^\x8f\xdb\x7f\xc5\xfd\xed<\
+\x18.6\x5ct\xb8\xd8\xa2\x1aP\xe4\xa3\x09\x05&\x13\
+\xb6\xef.a\x0bg\xc7\xf0\xe2f/Z\xed\x8f\xe6[\
+\xee\xb7\xc3\x19\xc3\xe9\xc3\xe9\x0b\x82r\xbc\xf7\xec_\xeb\
+i\xaf\x16*\x01t&\xbc\xb5:\xecy\x5crC\xe8\
+\xb9\xcf\x02\xe0&\x0b0\x13\xe7\xc1}W\x88b\xeb\xe6\
+\xdd\x93-\x09\x1c\xa4\xe5\xc8\xfb\x92\xdd}\xfcl\xb6\x0a\
+d\x0bN\xf9w\x99\xa8\x1b\x1f\x1a\xb6*<jaJ\
+\xc4B\xbd\x1f\xce\x01\x05\x19\xeb![\x07j\x7f\xb3\x9f\
+\x0b\xbc_\x95\x01\xd8\x0fr\x1d\xf1\xa3\xee\xd8v\x8d;\
+N\xac\xec\x17\x0aV\xf6\xaa\xa0[\x9foM\xa4\xcd\x95\
+\x92\xa44\x13\xdc-\xda\xb9y\xc4;S\xa2\xf4\xe8\x15\
+WK&\x00&\xa4\xcb?\xac\xfc\x9ag\x84\xadZ%\
+r?+?\xc09D\xb5C\x8bD\xfa=\xc3\xdb\xc3\
+V\xa4\xad\x0a\xbe\xc8W\x15p\x12\x09Pjo\x02|\
+l\xf7*\xe1X\xf0_\x1c\xb6R\x9dC\x1ey\xef\xb0\
+\xd5\xf3\xd5\xb2\x9a-\x0f\x9b?\x0e[\xcd\x17\xad\xa0Z\
+\xbb\xf2\x1c\x94p\xf0\xf9\x10?5\xff3\x01Wq_\
+r\xeb \xd5\xab\xe7\xc9/\xcb@_+O\x15\xb6\xb5\
+,A\xe0\x0a\xf4\x9d\xa3\xe6\x89s\x9c\xea\x83sC\xa2\
+\x1d\xc7T\x5c\xc7\xfdV\xa4\xdc\x89\x5c\xaf\xfd(\xc2\xfa\
+{\xae\xd4.\x14b\xd3\xcf\x1b\x7f-lu\xbfT\x5c\
+ /\xf8U\x99\xf0\xd97\xfcE\xd8\xc4:9\xf7\xba\
+ee^&\x0b\x17@\x91\xebX\x98\xb9a\x8f_H\
+\x87\xc3\x03\xe3\xe8\xea\x99QA\xa7\x02\xe0`\xd1\x13)\
+@\xd0\x1b\xe3`\xe1P\xe8=rpx oH\xb2\
+\x90g\xcc\x99\xb6\xe1]a\xab\x07\x97,\xd6\xedf\xa7\
+\x83p<:lE\x22\xf2\xb1\x84\x92p@{\x96X\
+\x15\xa2d\xbb\xac\xde\x9bk\x8d\xd7\x1c\xaf\xb9\xeai\xe4\
+P\xaa\xf0z\xed\x03\x7f\x99e?_z\xd4wC\xfd\
+9~\x9d\x0c\x5c9\x8e\xfe\x7f\x7f\xd7\xcb\xefU@\xe1\
+}{\x997\x1b9\xc7I\xc0xHUn\xe7\x00N\
+\x85\x93c\xba\xdc\xdf.\xb6\xf9\xf1\xab\xc9\xfe\x9e\x07m\
+=\xcf\xa3\xba\x1et\xe3\xe0}\xfaq\xf3\x5c{\x08\xba\
+@\xe8\x12]\x02`\xbb\xbb\x85\xa2\x12\x14\xfe\xbf'7\
+\xe3H\xf5\x01\xad\xe7\xbe\xb7\x90\x09\xf38H<\xfc\x22\
+\xf24\xdf\x9b\xef\x1d\xe9S\x8d\xa3\xcf\xed\x13?\xae\x9b\
+\xc3\xe8\xc0@\xe2\x22s\x9e\x19\xe9\xe8m\x1co\xb9\xf4\
+\x94\x15\xc4\xd7\xe7\x8f\xf9\xbc\x91\xf0y\xfe\x0e\xcc\x0bu\
+\x89\x17\x01~&\x08\xc6\x1f\x86\xadz\xd2\xad7\xf3\xc0\
+|4\x1e\xc7\x14\xc2bw\x8b\x81\xf1\xf5<.U\x9c\
+\x01\xf38H4\x19\xbf\x1e\xa2\xad\xf5\x81\x83\xae\x85h\
+\x7f\xce\x7f\xe4\x8c\x1c2\x07\xb4yv\xad\x16n\x5c+\
+\x03\xf1c\xa6\x83sV\xe1p0\xffcB\xa9|\x8e\
+q\x14x\x99/\xe9\xb0T\x0f\xb0\x0ab&\xe8@\xd6\
+*\x100\x8f\x04\xda\xc6C\xc2\x02\xd4Yo\xb7J\xaa\
+\xc4\xd5\x05;\x92\xcf>\x81g\xbc$r\x1c\xdc\x0b\x19\
+\xe3\xbc\x8feE\xba*\x97\x02\xbd\x9el\xd0\xf8\xfef\
+\xd7\xeb\x0f\xba\x8e}_o\xb3q\xe9\x10\x06\x95`\xe0\
+P@\x1c\x08\x08 \xc9\x92k\xa5\xc6A\x82F\xa2B\
+\x02H\xe5\x05\x843+\x22\x05\x1d\xf7~\xa0\xdf\x1c\xc3\
+\x85\x0bd7Y\xa2y\xdb#\xa3\xfa\xfd\xd2z\x10p\
+\xe6\xf9T\x01\x0d\x87CK\x80\xfd\x82,T&\xa6\x8b\
+\xab\xc3\xc1\xee<R\x11\xe2\x18\xd1iOhp\xed\x03\
+\x02%\x15\x99\xdb\x87\xad\xa0\x8f\xf6\xb7\x84\xa6\xd6\xd7\xb9\
+%c;\x05\x5c\xc5\xea\x9c$o\x95@\x91\xc0\xe8\xb9\
+\x19\xb2BY\xfa\xe7\xf6?\x151\xac\xf5\xd9\x1b\x8f\x1c\
+\x18\x19^\x91t\xe9\xadO\x99\xbf\x92\xcf\xfbd\xd8\xaa\
+\x92\x97\x5c1\x95\xe8\xe6\xd0\x98\xaf]K@q\x93\xdc\
+:[\x17\xee0#\x1d&\x08\xeb\xdf\xad\x0a\x16\xd9K\
+]\xbd\x90*\x81*\x9d\x8f\x0b\xfb9-\x85\xb8\x0dT\
+\xfc$\xf2\xde2\xd9R\x11N2\xa7\xda\x97R\xf7\x9c\
+\x5c\xb2\x82A\xed\xf3\x0a#*\xd5\xd9\xbb\x5c\xb2\x81\x89\
+\xac)D\x08\x88'\xd6t\xeb\x9b\xbf\x01\xf1d\xde:\
+\xcf\xb5\x86\xa4\xaex\x15Z\xb4\x18\xe6\xfe\xbe\xbdt\xd8\
+J=B\x020\xd9\xab\xb1\xd9\x17\x8bvrGT/\
+\xad\x0a\x98\xca\x98\xfd\xe4\x01a\xab\xf3\x11R\x06\xb7S\
+\xca\x01\xd6~)\x10\x00\x9dE\xae\x1c*\x00G-\x15\
+<\xf2]\xc3U\x87\xab\x0cW\x99X\xd5\xdbW\xfb\xff\
+?\x0c[\x02\xb7R\xaf\xd2\xf2\x97\x09\xf9\xa0\xb6\x9e*\
+\xda\x1f\x0dk\xbfw\xc4xd\xa8\x0c\x08d&D\xe8\
+\x8bV\xad\x9eI\x16\xb7\xbdj\xd8J\xeeO\xe2(\x9e\
+\xdb]W2m*n\xfc\xca\xae\x95\xa4Z>r\x1e\
+\x15d8+\xd8\xfb\xcf\x0dk\xafW\x09k\xf7w\xf1\
+\xb0%`\x1a~\xdc\xac\xbd\xcf\xce\xdb\x9a\xbd}J\x80\
+4k\xdb\xcf\xd7\xc2\x16\xff(\xc4\xe0B\x0en\xf8\xa5\
+\xb0\xf6\xfb\xcfm\xf6\xbc\xf6\xfa\xb8fm\x1e\x0d\xb7\x0b\
+[\xed\xcf*\x93\xe9Wn\x8fm\xd6\xce\xc9}\xa75\
+\x0b5\x83\x83\x9b\xb5}r\xe7\x91a\xabu\xfc\xbd\xb0\
+\x15K\xba\x9e\xf0\xe4p@\xea8\xfedVI\x19?\
+>\x93\xad\xa9@\x8f\x7f\x9c\xf1\x84\xc0Hb\xe0\xd5s\
+\x05\xbez\xd2s\x1f(\x0e\x03\x90\xee\x9b\x86M$\xdc\
+\x93\x1f^\x88d\x091\xfb[\xfaI\x854\xb6\x0f\xab\
+\xec\xe6:\xd1\xbb\xafE(f\xc74?@\xebq\x0a\
+d\x01\xb3\xf6]~Y\xb6dT<#~\xc2A\xf0\
+\xa7\x99\xb8\xe3g\xa7?\x05Q<\xfc[\xd8\x8a[\xe1\
+Va\xabV\x98\x1b\xceH\x9d\xcd#\xe6B\xe8\xf6\xdf\
+\x9b}oJ\xbc\xce\x9c\x1e)S\xb9y\xc8\xac\xbe\xa6\
+\x05\xa5\x12\xb8\xfc\x07\xaa.\x10\x14\xe4\xea$~\xdd\x17\
+\xf5\x15H\x02\xeb\x12WB\xca\xdd\xd5\xef%4\xbe\xf6\
+\x07\xfe\x8f\xf3&\x13'ER\xf7\xea\xb0\xa5\xa5B\xe2\
+\xac\x02U\x09\x95L\xc4T!\x8c\xea\x02\x15\x07\x89\x1a\
+\xadO\xc9\xfdU\x055Hs\xfe)d\x9c}\xdby\
+\x9a\xe4}\xf5\xbc\xccG\x89%\x89g~\xa0VA\x09\
+\xa7\xdc/\x90jN$\x9bWZ\xfc\x08H\x81\xbao\
+-\xbe\xea\x80\x7f\x10\xb6B\xc8gKI\xc5{\x89\x94\
+\x1a\x9e\x19\xb6\x1a\x9f\xf4?$f\xca\x9fr\x9e\xbb\x0f\
+\x09\xdc\xf4\xef*\xc1\x91\xe3\xb9O\x86\x8d^\xe6\xe6\x8c\
+\xb0\x05\xea\x04\x19\xb0}\xf5\xf65\xdb\xd7,z\xe96\
+\xd0\xe1O\xc3\x16H\x9a\x8c~\xe9u~ \x11\x042\
+D\x09\xd5\xd8\x1e\x17\xb6\xb0\x14\x0e\xaf\x08[\x91\x16\x91\
+}Ih]\x05V\x90\x03\xff\x94z\xce)\x8bQ\xba\
+\x8e\xb7I\xa8U\x06\xf8\xe3c\x93\xc4#\xa1n\xe58\
+\x0a\x18\x12*^:\xdd\x1ci,\xfey\x80M\xe9\x86\
+\xd7\xa7N\xec\xe5~\x0e\xdb\xbd\x09\xcf\xd1\xf4\xbd\x05\xe8\
+\xc0\xee\xd9\xf39\x0a&j\xcf\xbe\xdf\xb3\xa1\xf7$\x86\
+\xde\xc7\xc1\x83<NE\xb6\x97\xa5\xea\x02yl\xd7\xe5\
+\xb8\xf6\xf2a^/T\x95\xf2\xf99\x08H\xf6\x1f\xc0\
+\xf2>__\x7f\x1f\xfd\xab\xfb6.\xae\xf3\x17\x91\xc4\
+-\xad\x0a\xf3\xebA]\xcbC\xaf\x12`\xfc{V\xff\
+\xee\xf7\x0e \xf9\x13H[P\x1cA\xa4\x84}\xa2\xa8\
+\x0f\xf0\xfb\xfb0\xde\xc5f\xd5\xc99z?\x891-\
+\x00\x09\xbdE\x86Y:\xdb\xc8}\xde?\xbeo|\xdf\
+\xaa%\xa2\x83\xd6\xe3\x9a\xd8\x5c:\xa1\xd1\xc6\xfd\xdcL\
+\x04\x99'\x1cL\x09\x9dt\xd4\x8a#\x02\xa9\xa2\x00C\
+\x22Ib\xa1O8m\xf3\xfb^\xd5@@\xe1\xcbu\
+\xee/\x04\xcd\xec\x90\xa8\xd4sl{\xbd{\xf3A\xc5\
+\xcbF\xa7w\xf7:\x9b\xebNPW\xac\xac T\x02\
+fH\xa2\xcc\xc4VO\xb9\xc0\xb4oe\xd0*\xc4Q\
+\x7fI\xd8\xea9q\xfc\xba\x16\x8b\xca\xb4\x0a\x9cA\x93\
+qQ\xc8\xc8r\x14\x7f\xd4A\xd4\xb1ks\xb4\x1c\xd4\
+k\xf6\xe5\x8b\xaf\x02^\x95x\x09\x9c_\xc9\x80\xfc\xa4\
+\xfc;\x07\xb3\x0a\xfeU\xbb\xd6\x00=\xd6*\x8f \xff\
+\x0e\x14\x09\x1f-b=\xa7\x80\xc4@\xdf\x8a\xd1sb\
+X\x17\xb8\x0c \x07\x5c\x9f\xfd\x97\x0a\x0b\xb232D\
+zg}\x0e$\x83\xca\xaa\xf1\xe0\x10\xf6\xbd\xd2\xd6k\
+\xbf.%\x80$z\xbe?\xcb\xb8\x16\xd9)\xc7\xd9:\
+8\xa8T.f\xf9\xa0\xe4\x94)9\x22\x89\x1a\x09\x82\
+\x84\xd2r \xaa\xe2*`\xcf\x84@}\x81\xfa\x99W\
+\x02c\x01\xa0\xf1\xf1|\xbaD\xe2\xe6\x8da\x8bLa\
+\xc9\xf7\xea1\xec\xa0\xc8\x95\x80!c$\x81\x91-x\
+\xa1^\x1d\xfa\xd5\xb8\x016\xff-l\xd5\xcb\xab\xd2g\
+\x1e@d\xe8\xa5\xd6\x0b\xeb\xf9\xfb^ \x90\xbcu\
+& \xb4Z\xb9N\x09*\x09)\x8e\xd9\x036\xf7\x9f\
+\x02O\xcfS\xeb\xa0J8Y%\x15\xf6\x94\xdf*\xee\
+\x07\x09$\xeb\x9cz\x86\xe7,P}j\xd8*az\
+\xbf\xb0U\x82\xc8\xba4\x7f\xcd?\xf3\x13\x92\x11ya\
+B\xc4\x03\xbf\x18\x15\xbd\xd2\xd5F\x92\xa9\xa2\x05:n\
+\xdf\xf3%1\x06\x19\x94\x0eq\xc9A\xea\xfd<.\x11\
+jZ\xbe$h \x07!@\xb56I@A\xea\x08\
+\x14\x05V\x02\x99?\x9a\x1d\xef\x16vO2V\xc3\x1b\
+\xc2\xda\xf6\xff\xe2\xb0i~O\xd0\xd6\xf1\xd19\xde\xd9\
+\xe3?>!+\xf6\xf6{\x89\x8b\xbfN\xa4\x04\xc7\xf9\
+\x90\x19\x91\xd5\xd6\xca4\xfe;\x7f\xb8\xf3\xa0\x9d\x07\xad\
+\x02\xe8T\xc5(\xae\x11\xfb\xb0}\xf5\xb7\xf3\xe7\xc9\x05\
+$\xa0\x1b\xef:C\xa7\xdb\xe8O\x15\xc8*\x80\xdd4\
+lQ/\xb0_hq\x9c\x10=\x81 \xd9\x1f\xb6\xf4\
+`\x97\x1a\x15\xff7\xb9\xb36O\x0b[\xf6i\xd0|\
+\x95\xcf\xe1\xbe\xc3\xfd\x866\x7f\xf6?|\xff\xc3\xf6\xb7\
+q\xdc\xff\x9efm\x1f\x18~-,\xb9'\x9e\x9d\x01\
+|\xdbO\x86\xe7\x84\xb5\xf1\xbdZ\xd8\xa2b\x80\xdb\xa0\
+*\xb6\xcf\x08[H\xad\x87\x0b\x84\xadH\xf4n75\
+y\xcd\xf7w\xd0j\xbeh)\x89\xa7\xbe\xe2~\xb8\xc0\
+\xad\xc2\x16\xb5\x82\xfd_i\xf6\xe5\xf4_\xf6.\xc8\xae\
+\xe2&xiXr\xe8<\xbc}\x7f\xcd\xe1W\x86\x16\
+\xa8\x0f\xff\xab\xd9_N\x81\xd8\xdcj#\xc1\xf1\xfa\xe1\
+u\xc3\xeb\xa6\xc0nJ\xa8\xef\xf9\xab\xb9\x108\xfe\xe1\
+\xf8\xa0\xf1A+\x9d\xf3T{\xa8\x9e{\xe4iY\xf1\
+\xac\xf3\xb8\x83XW\x01)\xcf\xb3\xea\xe5\x075'\xc3\
+F\xc7]\xc1\xd3>\x96\x01Th\xff\x84\xfaO\xb1\xb9\
+''X\xb5pe%Xa\xa0d\xd5%\xf2$\xc4\
+\x9c\xa3\x10B7\x0f[\xa9d\xe4>\xb6s\xc7\xb0$\
+\x99l\x01\xff\xf6y\xdb\xe7o\x9f?\x91\x94\x9e\x16$\
+\xa5Z\x00J\xaeO@k\xffr\x9eJ\xd4\xe7\xfc\xb6\
+\xff\x15\xb7FOf\x98\xe7Z%:%\xb8\xec?\xf6\
+\x03\x89a\x15\xefL\x0cO\xa4\x9a\xdfZ\xed\xbfy~\
+A\x1e\x8c\xaf\x08k\xaf\xb7\x0d[\xb5\x1c\xe4\xfeS-\
+7\xce9\xfe\x1brUd\x8d\xc9\xd1Td}\xe4k\
+U\xe6\x131e\xdf\xad\xe7\x22 \xc6\x05\x93\x89\xa1I\
+\xf5\xe2\x03\x07\x92Tno\x11\xb6\xda\xb73\x01U\xa4\
+\xf0\xe6%\xf5\x0b*\x00\xc9-\xa0%\xc2\xfeN\x85\xa8\
+\xfc\xfeDLV\x8b\x06\xa8\xbfy\xf5\x86\xc9j\x9d\x0e\
+\x8f\x09k\xbf\x7f\xc1\xb0U\xe2%\x13\x92Z\xe8\xc4\xad\
+Z\xd0\x86\x7f\x0fk\x7f\xf7\xddD\xa6\xe6\xfe\xb6\xaf\x16\
+\x90\x83\xf9\x83\x09\xed\xf8B\xd8\x04y\x98{\xde\xae5\
+\xf7p\x0e\x87\x0d\x97\x1a.\xb5\x90C\xb4A\x992\x17\
+\xa5\xfbKn\xe1\xb5In\x90d@\xb5\xd1\xdc%\x1d\
+\x07\x0e\xa2J\xe3i)\x9bq\xed\xac\xb0\xbf9e\x86\
+\xd2A\xe0`!\xadk\x1by\xb3%3U\xac\xcd \
+\xe8\x02\x1c\xad\x0d_H\xc8\x07\x07\x92c\x81\xd4\x8eC\
+\xd7W&S\x06\xa8&H\xca\x88\x1c@Z\xd5\x07\xfe\
+\x1c\x00\xff\xcf\x11\x15\xf0\x08\xe8\x05R\x16\x96\xeb\xe2\x80\
+X\x08^{\xf9>Pn\xba\x91\x97\xe9\x02\xbe>0\
+\xed\xc9\x02\x0fJ\xc7\x08d\xf2\x8a\x19@\xe8\xb9w\x9d\
+\x1ceP|\x0e\xbc\xc4A\x1f(x\xbe\xc7T\x00\xbe\
+\x9b\xdc/9\x1a\x9a3>\x07\xda\x17\xe8\x10\x01\xae\xb3\
+oi8\xb8\x12\x10\xb3c\xbc\xb4\x08\xecN\x10,\x95\
+\xfa\x99\xd5\x9a:\xc1R\xd9\x9f\xef\xefJE\xb66;\
+\x9c\x17\xcf\xbf\x830\x108^\xbe\xcb\xb0\x09\xb8Tr\
+\xfb^\xf7.\x90\xab\xca_\x92\x8b\x94c\x0a\x82\xfa_\
+\xc2\x96\x8aR\xf5R\x09\x80U\x8a9\xcc\x1f\xcc\x84A\
+\x9fhr\xdfy}\xa3\x0a\xd7Uw\xb7\x8e\xd4k\x8f\
+\x14\x90\x18\xf1\x5c{Vz\xf3\xb9o\xe9X\x12K\xf3\
+s\xf3<\x8d\x8b\xc0L\xe2\x06\xe7B\x9f\x100n\x12\
+Z?\xad\x0a\xee\xbc>\xcdG\x19P=\xe5~\x8fC\
+\xaf\x92\x9c\x07X\x05\xdeH.\xb5\xb8x^=\x0b\xbf\
+\x80Oe4\xe7O\x91\xad\xf8\xbd\xdc\xa0+#\x9d\x99\
+\xee\x22m\xd1\x8b\xaa\xe2\xd7#' 3\xbe\x93\xcf\xf5\
+CYiV)8/lE2\xd6\x93\x80\x19\xdf\x85\
+\xab\x01\xb9\xe6\x8c\xbc\xe8\xd4\x07\x0a\xa9C\x9f\xd6\xbc?\
+\xae#\xfd\xf4\xbc\xfd\x5c\x05\xfe\xb2\x89\xa8P)\x17\x88\
+K\xc4\xf4-\x03\xae\xcb\xfc\xb2\xdfw2\x94+r\xcd\
+]\xaa\x07EFGV\x8f\x83\xcf\xb1\x91\x18CJ\xb8\
+p(\xcc\xaf\x1c@\xfb\xfa\xd2\xba4\x8f\x9f\xfdQ\xe0\
+\x93\x81\xc4\xe6\xaea+\xd2(\x07\xb7}Z\xe2\x15\x92\
+J+\x86D\x12d\x8e\xd6\x01\x90g\xac\xc3\x99\xf1G\
+\xc2$\x81Q\xec\xc4Z\x1d\xf4\x98[w\xe6\x1d\xc4\x85\
+\xf9\x0b\xd2\xe8:\x04\x88\x1ca\xfa\xee \xe1\x1c\x05\x01\
+z\xd7\xa3\xce\xe1\xadD\x96\xf5\x84\xcb!\xd9\xf5\xf7|\
+s\xcf\xb7&\x08y\xc8\x03_p\x95\xb8S\xf9M\xb9\
+%\xac\xcf\x95\x88\x17\xb8\xd9\x07=\xf7\x94\xf3\xad\xeb\x96\
+\x001\xce8\x17\xfc\xbe\xc0\x15\x021+\xe5%\xfb\xe5\
+\xef\x8cG\x9e+\x15\x80\xf3K\xbe:\xab\x0c\x15\xf9\xa0\
+y\xa3\xe7>\xa1\xdb\xc5v\xadEA\x22f\x91\x81\x9d\
+\x13\x13\xf7\x0e[Z\xbbJV\xef\x063\xeb}\xcd?\
+\x09\x03\x15\xafd\x8dFRV\x89\x0a\xeb\xcbz\xc4\xad\
+a\x1c\x15J x\x12R\xbc9'\x0b2*w\x02\
+\xf9\x84H\x1f\x80\xe8r~\x187\xe4`\xfc\x8f,\x84\
+T\xe5\xfe\xcc\xec\x89N\xc8\xf4\xf0\x88\xb0\xb6\xbc\xbf\x12\
+6\x91h\xcd\x81\xc7\xb3fdF\x9b\xf3\xf3\xef\x93k\
+\xfb_\xa9\xd2\x94\xf7Q\x15\xbe\x5cG\xc3Y\xc3\xd7\x86\
+\xaf\xad\x00\x94\xb8!\x90@R=0N\xc8\xc2|I\
+\x8c\x81@?t\xee-n\x81\xe7\x9c\xb0\xb8\xd3\xf6\xb7\
+\xb7\xbf\x9d--\x0fJ\xff\xe0\xb0Uk\xc1\xc1S\xc9\
+k\xcf&\xfd\x95\xed\x83\xc2\xda\xf7\x17\x09[ZLJ\
+\xf60\xb996\x9f\x0b[X\xe5!Tw\x8e\x0a[\
+\x02\xd1\x9d\xdb\xec\xfc\xd6\xcem\xda\xeb=\xc3\xda\xef\xfd\
+\xe7\xf0\xb3\xa1\x9d\x7f\xc3?\x86\xb5\xd7\xbb\x0fw\x1b\xee\
+>\xed\x9b!\x9c\xbdg{\xf7\xb0\x15\xd7P\xa4a\xfe\
+h\x09\xbc\x87/5\xfbr\xea\xcf\xefYUV\x83\xf2\
+\xec\x15+\x04\x93}4{\xab\x91\xfc\x8d\xe7\x87\xb5\xeb\
+\xf9\x5cX\xfb\xbc\x9f\x86-\xf2\xb8{_\x106\xb1\xd5\
+?:\x12_\xc3k\x9a\xbd:\xa1\xca!w\xf8\xb7a\
+\xed\xe7-\xac\x0f\xce\x80\xed\x09a\xed\xfdN\x0d\x9b\x10\
+t\xe7M\x08:$\xbbI\x82;~i\xde_\xab\xf5\
+\xcf>\xea<q^\xea)O\x16\xf8\xa0\x10\x0e\x12\xe1\
+\x10\xe5\x0eY\xee\xe1\xf8\xb0\xa5\x85b\xf3\xa4\xb0\x15{\
+\xbf\x96\x0e\xfe\x0a.\x1c\xd0u\xc8\x98\x5c\xbf\xa0\xf4\xfe\
+_\xc1\xa0\x85\xad3\xf9\xf8\xf3\xe7y\xe8~\xaa\xd0)\
+\x81\x8b\xd4\xdc9\xe0\x9c\xb3_\xe7\xfbJ\xf0Tko\
+\xca\xc1\xee\xfcRX\x1b\xc7Wn_\xb5\x0d\xb5\x87{\
+\x87\xad\x10\xd8Y\x81/\x84r\xb6\xa0\x95\xdf\x99P\xfd\
+\xe2*\xe0\x879\xb7U\x9e\xc9[j\xa5R1Fr\
+\xee\xab'\x81N\x84\x93B\xec\xf8\xb1v=\x1f[\xdd\
+\x1f\xd2s\xa4\x91\x10\x16W\x0c[!\x0d \x04\xb5\xb4\
+iIP\x902Oq\x99\x90\xeb\xe57\x8b\x17$&\
+p\x04\x91\x19\xcc\xfd\xba\x90E8\x01\xb4<\xe4\xf9\xe8\
+\xba\xb4\x88\x0c\xef\x08[q\xe58\xffR\xed\xa0\xd8\xf9\
+SVq\xbcLX{\xbdZ\xd8\x92p\xd7Z:\xfe\
+\x9f\xb0\x95Z\xc3\xa3\xc3V\xad\x19\xfc\x02\xdf\x9f1\xd9\
+\xa2.\x96\x09\xfd\xf1=a\xed\xfa\x1e\x15\xb6 \x9e\xc6\
+\xcf\x87\xad\x10e9\x8e\x85\xf42n\x89\xa0\xd9W=\
+\x5c\x060\x0f\xde\x92\xc3x^\xf6\xc0n\xb3w\xe2\xed\
+Y\x11Gz\xe6 |\xc2\x0c\xd5\x1a\xdf5\xdf`\xe9\
+L\xaa\x5cd%\xaa2P \x8egg\x8f%\xf2\x17\
+\x0e\xda+\xe7\x03\xab*+z\x83\xf3\xc6k\xa1\x09\x14\
+\xf2\x01\x9a\xd86\x86\xcd!3;\xfc\xf8\xb3\xb0)\x80\
+\x9a+\x15*\xd9\x1c9\x81\x87q0P\xc8\xfe\x9e\x96\
+r\x1a\x1cI\x07\xfe\x02I\xdf-wg|.\x9b\x81\
+\xa7\x03\x96\x03\xdfC\xf4;\x19\xbf\x82dc\x81\x97Q\
+S\xa9\x12\x98z\x1f\xba\xa9z\x16\xe9\xd9\xf6\x88\x81\xbe\
+\x12w\x81\x8e\x0b\xe0g\x1d\x1b;\xf6~\xbf/\xe0\xe0\
+\xc0\x18?\xf7\x9f\x08\x91r\xdc:\xc8r\x05\x96W(\
+Y\xb1\xb9\x82qdAw\xe7\xf1\x95\x90\x11`v\x88\
+\x86\xe6n6[\x1d\x10}\xe5\xb6\xeb\xad<\xa0%`\
+Q\x17\x98\x13\x13*)\xc6\xd5\xfdq\x88\xfc\x1d]y\
+\x89\x16\xf7'\xa0\xceyT\x9c\x11z\x84d\xaes^\
+\xd6\xbc\xcd\x80\xb8z\xd1d\x12e*9\xba\x9fJ\xe8\
+QB\x1c\x0f\xa8\xb4r\xfc9\xa4*\xf8\xe6\xe9\xb5\xd3\
+\x81T\x19G\x82\xd2\x93H\x82X\x1f\x9b\x95]\x01\x87\
+J\xaf\xf5\xec\xf3\xc9\xc7\xf9;?\xbfH\xd7J\xd2W\
+\xac\xfb\x16\x93\x85\x8bb7i[\x9f\x10\xfaf:\xb0\
+\x027\x0e\x1e\x87\xd5\xbcR\xd1Fv\xa5\x82\xc8\xe1\xf6\
+\xa5b `U\xf9\xd4\x93~\xdb\xec5\x97Q\xd6\x03\
+\xf6\x9e\x84\x00\xfeM\xb2\xb1\x83\x84zMh^\x91\xab\
+z.\xae\xdb\xf3\xefI!%E\xf4l\xab\xd4\xa9\xc8\
+\x09\xe8;\x95\x86\x22\xe3t\xfdH2\xcd\x0f\xf3\xdb<\
+\xe1\x88\xf4d\xa3=gD\xdf\xe3/\x10\xe9\x112\xd6\
+\x8d\xc0\x5c\x8b\x81y\xd3\xa9\x18\x1c o\xd8\x7f\xbe\xfb\
+\xb3~\xed\x93\x9e\x97\x04\x84@\x18\xf7\x80\xc4\x85\xfb\xec\
+HT+ag]\xe3^\xd1;\x8f\xecKE;\xbf\
+\xaf^r\x15P\xfb\xb5\xca@B\xeb\x0a\xaa.\x81\x84\
+\x15\x1f9\xa4\x00\x15\xf9Q\xca\x12V\x22\xde}\xf5\xe3\
+\x81\x0c7\x03\x9c\xda\xdf\xcd\x1b\xfb\x9d\xf5\x9a-u\xe3\
+\x0d\xc3\x16\x12\xa3\x92A\x14\xe8\xda\xaf\xfe5[\xb9p\
+c\xe8\xd1\x7fa\x9b\xef/\x5cz\x16+1B6\xef\
+A\x01FM=\xed\xc7\xae\x1c9=\xc6H\x992\x81\
+R\xac\xc5\xe9\xc0\x96<cB\xac\xab\x12\xa6'\x12\x22\
+E\xe2\xc5\x97\xf1U\xf1\xb2\x7fe\xc0\xadB\x7f@\xab\
+\x8e\xf9\xab\x92O\x0f\x9d\x83\x99\xac\xd5\xe5@ZwH\
+\xf6\xe8BCrh\x99\x10\xa0 \x13\x04\x99\xfe`\xd8\
+\xaa\xa2o\x1f2\x9f\xfd\x9d\x96\xa3TU*\x12\xab\xac\
+\x1c\x19\xc7\x9a\xefZ\x1a\xc8AB\x5c\xe4~#QY\
+\xa4\x84\xd6\x1d\xe4T\x07\x01?\xa0\xd2\xaf\xe2\x86\x0cL\
+\x00\xa1\x17\xd5\xfc\xbcm\x8e\x93\xc4\xb1J#\xf9e\xc8\
+\xa7t\x5c\x87o\x86M\x95\xdd\x19\x82\x8f\xf5[\xcb\x1b\
+\xff&\xf7\xf5\x16\xfe\x9f5\x9c\xb5\xe2nzy\xd8R\
+\x81\xafu\xce\x0f\xea\x91>?\xcb\xf9\x9d\xf2YE\xe6\
+\xfc\xfalq\xfdqB\xd5\xa35\xe0\x88\xe9\xfb\x1fM\
+\x95\xec\xac\xc4\x0b\xb4\xb7\xbf\x1b\x96\x89\x94W\xae\x0aR\
+T\x14\x12)\xb7yM\xd8R\x09\x1dN\x0ek\x8f\xf9\
+\xd2am\xb9\xeek\xd6\xce\xbb\xe1\x87\xcdZ\xa0\xbb\xf3\
+\x93\xb0\xf6zR\x0b\xf4N\x9a*\xe6\xd7\x9c*\xe6\xd9\
+\x0a\xd0\xc2\xaf\xbbD\x00\xb6\xbdx\xd8\xd4J0\xcb\xf3\
+\x81\x0a\xc7n\x12\x01\xe0\x9d\x9b\xb5\xeb\x1bn\x19\xb6\x82\
+\xfcKL\x1f:\xb1\x17-\xfbZ&\xc4\xb6\xf7\x09[\
+\x10]\xc3\xdb\xe6\x9e\xef\xe1\x92a\x89\x0c\x0a\xae\x81\x8b\
+\x86--\xc0\x9b\x977k\xeb`\xdf\xa7\xc2\x16\xff{\
+x@\xb36O\x87\xc76k\xebx\xe7\xeb;g\xef\
+\x9c=\xcd\x9b\x99\xa3\x84\x0e\xbb\x04\xd7u\xe7\x80n|\
+q`2\xda\xdf\x9d\xda\x02\x9aSS\xf7\xfd\xd4\xa9\xf5\
+\xf17\xc7\xdf\x9c\x10{\x93?\x15\xb8\x82)\xae\xa0\x1e\
+\x90\x05\x95\x8a\x072\xf0\x84(\xaeD\x0e\x84\x8f\xf3\x84\
+<f&r\x04b\xb5\xff:\x9f\xf8\x15o\x9d\x0b\x92\
+\x0a\x8fm\x8f\x99\x12\xffZa\xaar}\xd7\x84\xbc\x7f\
+d^'\xa5\x92@\xee\xd0\xba\xef\xb8c\xac\xeb\xe1\xd8\
+\xb0%\x81\x84Ls\xe7\xdb;\xdf\xdai\xf3i\xfb\xc0\
+\xed)\xdbSVr\xe77\xca\x9e\xef\x84\x92\x17\x09\xa1\
+un\x1dS\x01@\xa6\x07:o\x7fN\xd5\x82\xcd\xeb\
+\xc2V\xd0\xff}so~\xc9&\xa6\xaaY\x15({\
+\xae\x93\xc7\xedy\xfc\x84\x80K\xc8=9\xbej\xa1\x13\
+\xf8&\xc9_A\xf5\xb5T\x08\x90\xbd\x7f\xb2\xf5CP\
+\x14b\x83\x9f\xb9\xb7\xe3T\xb2/A\x82!\xf7\xcb\xf3\
+{\xfb;aK\x22l<(lEj\x98\x89\xea\xe1\
+\xb4\xb0\x85|\x97\xac\xa9Dg\xc9\xe4jq\xc8\x84q\
+\xcdC\xfb\xb1\x04u\xb6\x14h\xa1\xa9\x16@\x85\x9d<\
+\xf7\xa6\xc4\xd9\xebV\xfbm\xfa\x0f\xc3\x1b\xc3V\xfb\x1b\
+\x04\x83D\xe9\xa7\x86Y\xf6T\x8b\x87V\xb3'\x86\xad\
+\x12=\x12\xf0\x19\xf7\xec+9$,\xae\xc7V\x85l\
+\xaeD\xeb\xcdOH\xf2\xe6z\x99I\xc8\x9e\x11d@\
+\x95!N\xe8\xd5x\x93\xb0E\x16f\xcf\xf3\x12\xea\xf5\
+\xe1\xec\x05\xd2#\x04\x9aD\x96(e\xfblPzb\
+\xb0\x04\xef\xb9ff\x06o\x99\x15\x1f\xbd\x95Y\xf9\x92\
+\xa95\x00\xe3\xfb\xe6\x16\x84\xe6\xb4\xcd\x0bY\xa0\xea\xc0\
+\xd0K\xac\x02N\xf6Af\xe6r\x99\xe9\x03-\x91\x99\
+\xec+\x97\x02\x7f\x01b\xea\xdc\x96\xa3|lGN\xc6\
+!\xefI\xcb\xf4\xce\xaa|q\x9c}\x8e\x83\xda\xf7\xc7\
+\x94\x0c\xdd\x1c\xf0-dq\xf3Fv\x95t\x94\xae\xd8\
+\x91\x87\xf9<\xd7K\x1f\xdc\x02r\x80b\xd17\x1fT\
+\xa0\xb5x\xfc\xcb\xdcsS\xbd\x9c\xe4\x03Ud9\x18\
+=Y\x9c\x0a\xcbRa\x9f\x03\xec\xc3:\x99?\x81@\
+_q\x96\xb8\xe8\x91\x01~\xafW3\xf0\xff\xee\xef@\
+\x88\xff\xee\x00\xe5R\x9d\xca\x80\x00\x02\xd4\xd8\x01\xe1\xf3\
+s\x1d\xe9A\xad\x8c\xa7\x8dYo\x12d\x8au&p\
+\x11\xc8r\xf8\xdd\x1f\x12\x14\x09!H\x86\xa5\xe7y\xbe\
+\x0e\x09\x17\xf3\x07t\xffZ\xd9\xeb+\xd1\xd1C\xd2!\
+j\x04\xdc\x12e\xdf\xcd\xfb\xe4\xa0v\xc8\x82=d\x8e\
+8\xe2'\x97\xae\xfc\xfc<\xfb@\xce\xdf\xf7H\x10\x8e\
+c\x06\xb0\x95\xa8\x13\xd8`\xe3\xde\x97,\xb7\x99\xe1,\
+5\x0a,\xff\x0e6\xcfYba\x09\xac\xe7\xf9\xe7y\
+\xaa$\xaa4Z\x87X\xd2\x7f9l\x15(\x81Bg\
+\x06z\x14\x00<'+kY\x19\xc4\x19\xa2B\xc5a\
+m{\xd9\x5cI\xcc\x80\xe0\x80\x84\x88u\xa9R\x8f\x9b\
+\x00$\xcc\xb8\x19\x7f\x89/\xf3\xdcW\xdfz\x01\xa9\xa3\
+r\x9f\xd7Q\xf7k\xdf\x90h\x00\xb1\xeed\x1b\xebs\
+\x05\xf4\xc6\xcf|\xea\xf6\xa1J \xf8\x7f\xfb\x11\x96c\
+\x95P\xf3\xbfC\x9a\xd4<\xf7w\xf6#\xcf\xd1~d\
+?7~d\x0b%,\x5c\xb7\xeb\xa3\x22`\xfd\xe7z\
+,H\xbb\xfd\xcd\xba\xc3\xc2-1 \x11\xcbA\xc1\xae\
+\x0b\x81\xe6\xfd\xcd3\x89(l\xf3\xaeC\x85<I\x9a\
+@\xa4K\xf6\x07\x19n&&\x8a\xb4M\x0fkB)\
+\x8bC\xc1|A.\x9a\xdc9\xc8\xdf\xea\xfdA\xe1\xb3\
+B^\xa4JY\xf9\x0a\xe0m@o\x9d#-\x5c\xff\
+\xf8Db\xe8\x1c\x17 \xaa$^u\x12\x90\x5c*\xe5\
+\x90\x05\x02s\xf3\x0f{\xf8\xcb\xc3\x16}\xef\xaad\xab\
+4g\x82\xb2\xd6\x1fdG\xcf\xc2m^)`H\xe0\
+\xa9\xf8\xbc3l\xc5\xee-\xa0\xcfV\xc1\x0a\x9c\x9d\xa3\
+\x90\x8b\xb9~\x8b\x95ZB\x16\x02\x82:\x86\x04\xb0\xf7\
+u\xbf\xc8\xfep/`\xc3\xb6?Y\x17\xbe\xecS\xce\
+I\x88\xadL,\x14\xc7\x89yg\xdc{yQ$\x94\
+\xd9\xcaY\xac\xf4I\x0eW$\x86\xbd\x1c\xac\x00\xc7\xb8\
+\xe2@\xc8\xf5\x04\xf9\xa8\x02Lf\xac\xfc5\x8e\xf17\
+R6,\x1dt\xec\xfbu\x1d\x0f\x08k\xcf\xff\x98\xb0\
+\xf6z\x5c\xd8J.\xadOPr\xe0\xf5\xfef\xa0U\
+~\x0a\xc7\xdb\xfe\x91\x15\xd6J$eA\xaa\x10G\xaf\
+\xcf\x9e\xdd\xf47\xc9A\x0fO\x0a[\x10$\x93\xca\xc1\
+\x9b\xd3\xcf\xb8\xc0\x22\x9f8\x1c\x1d\xd6\xb6\x9bC\xc2\x16\
+5\x8f\x9aw\x9e\x7f\xae\xeb\xe1\x13\xc3'\x87\xe6p\xef\
+?4\xac\xbd\xfe}\xb3\x16\x88\xef\x5c.l\x0a\x8c\x9b\
+\xb5\xdf\xbb[\xb36_wn\xb4s\xe3\x9d\x1b/\x15\
+\x5c~r\x9d?\xfc\xbe\x0f\xef\xf9P\x04VTi\xa6\
+\xe7\xf3\xfe)@\xfc\xf6N\x0b\xecw\xbe\x13\xb6\xba\x9e\
+\x9e\xa4\x8c\x0aP\xb6\xaeL$\x80\xf7\xc8\xd6\xa5\xc7\xb7\
+\xeb|\xca\xfe'\xef\x0f]\xf9\xdfo\xf6{9\xbfo\
+\xdb\xe2\xac\x1b4\xfb\xd5\xdcn\xc7%\x01\xb3\xf7\x1ba\
+\xed\xe7O\x0fk\xaf\xef\x0ak\xd7q\xaf\xb0)\x90\x9c\
+\x90p\xdb\xb7\x86\xb5\xeb\xfd\x5cX{\xffK\x87\xa5|\
+\xe8\xdb\x17\x12\xb8\xed]\xb7\xffm{\xd7\x05\x011\xfe\
+t\xfc\xcf\x90q\x1b\xaf\x9b\xb2\xa2g\xcc\xd0\xfbBJ\
+\x99\xc7\x89\xd4\xda~\x22l\x9a?\x13Re\xd8\x0e\x9b\
+!\xd6\xc5c\xc2\x96\x02b\xcd\xafdK\xaf\xdej-\
+7\xbdZ\x87\xf3]\xc2\xca\xf9\xad\xf5\xc0~\xf4\x959\
+\xf0\xaey->\xb1\xbe\x9c/\x02V\xfel\x9e{\x13\
+B\xe5\xa1\x13\xf9\xde\xdb&\xf2\xbd\x5c\xb7;w\x0ak\
+\xf7\xf7\x94\xed\x93\xb7\xed:\xf6\xder\xef\xad\xf6\xdej\
+j\xc1\x9a\xce\x9f\xe1\xaf\xc2V\x094\xbd\xee\xd6\x09R\
+\xc4\xacPC\x9a\xf2\x1b\xa9\xcfT\x81\xca\xf9\xff\xcdi\
+e\x07\xd2g\xe6 \xe1\xbf\xda7\xf9\x1bW\xcb\x02\x87\
+\xf1#\x0b\x9c\xfbF!\x9520&K\x0b\xf1Q\x5c\
+7\x12\xecZ\xc4\xecO\x12\xee\xbd\xba\x19\xe4T\x22\xcd\
+$ \xab\xf5\x0a\xf7\x8c}\x7f\x8d\x9c\x09\x19\xf8\xdf\x0d\
+[%\xc83\x81?|1l\x91\xcb\x1b~;lu\
+>\xa5:\x12\xee\x08\x89\x1ar\xee\x15\x0f\x0b\xfc\xb3U\
+\xa8\x12\x1e\x99H\xad\xd62\xe4\x8f)\xc7\x8aS\xa7\xe6\
+\xb9\x04\x8a\xf3\xe5\x9f\xc2\x96\xfd\xa9\xe4\x1f/\x1d\xb6b\
+\xff\x87\xfc\xc2e#\x81\x9b\xfb\xd7\xbe\xf1\x98\xb0Uf\
+\x8aC\x91\xbdiErs\xf7\xb0i\x80\xe6\xca\x83\x1b\
+\xcc\xbf\x1b.:\xcb\xb3\xd8h\xf54\xd7\xc2{\xd2\xf8\
+\xc4\xf1\x89\xab\xc0H\x86\x18[-\xee\x00\x07\x81\x1e\x15\
+\xac\xebH{\x12Z\xab\xa7\x0b\xe4\xaa\xc8\x06_\x95\xf2\
+\x0c\xcf\xc9J\xdc\x0d\xf3\x80\xe0(\xcb\x80r8,\x18\
+\x95\xe7\xac0\x8e_\x9c\xc9\x1aZ\xf86g\xfc\x0c\x1c\
+G|\xdf\xcf\x878\x17\xe9\x98\x83A\xe0/\xc0t\xc0\
+\xa9\xa4r\xf8\x05\xee\x02K=<}\x0bAG\xe6U\
+\x81)\x87\xc4\xf82\xee={\x00\x00 \x00IDA\
+T]\xb4X\xfbg\x07\x9eCjc\x13\xf8\xab\xc8\xbb\
+\xde%\x00\x9e\x1dy\x90x\x99\xb6^\xae\xc8}\x81~\
+/z\xees\xe0\xd8s\x1c\xec\xef~n\x1c]_\x17\
+\x98T\xa0(p_\x02\x0c\xbd\xf8\xf3\xdf-d\x81s\
+ l\x836\x0e=y\x9f\x9f\x0b z\x16}\xefc\
+\x9c\x04P\xae\xc3\x179\x9b\x94\x17)}]\xe48H\
+>\xb0\xfc\x9f\x9b\x1b?\xb2>\xf3\xa7\x87x\xf6\xaa\x04\
+\x1c\x1b\xcf\x7f\x91\xc9\xdb-\x13i\x1c\xfc\xfdE:2\
+\xc2^\x85\x81\x83~\xfd\xfc\xfb\xef'\xa4\xdeu\xd9x\
+=o=\xcf\xd9[\xd96\xc3\xf9y]5\xe7\xa3\xcc\
+l\x0f\xc1\xee\x12:\xc5\xbd\xe0\xf7\xb0\xb9r\xfc\xcd7\
+\xd7k| b\x0e\xcd^&\x09\xa4K\xe4>\xf1\xc3\
+\x84 \x83\x90e\xe5\xb1Z\x05<?H\x08Pk\x95\
+\xdb\x932\x10\x95\x18\x80\x04\x10\xd8\xf8\xfd;fB\xed\
+S\xd9\xdb\x8a\x94\xca\xfc\xe5\xb0y^\xafM\x07\xf4\xf1\
+\xf3\xbe\xb7y\xe6,\x7fU\xe3\xa3\xa2\xe7\x00S\xb1\xe0\
+\xe0\x22m\xf3\x1c!j$\xa4\xbc\xcfO2\x91\x03I\
+\xe0\xc04O\xbaDCU\xcc=\x9f\x9d.\xe1\xe79\
+X7=\xbb{\xdf\x12C\x0d\xc3\xfb.\x9f?'\xa6\
+<\x87t\xec\x8b-W\xe2\xa5\x97\x09\xf4>\x9e\xb3\xc0\
+\xbd'9\xb2N|\xbe\xf7\xfdE\x88\x05\xf3T\x80\xe0\
+s:\xce\x95B\xa0i\x11 \xaf\x97P\xf7J\x10\xc8\
+\xb0s\x9c\xac/\xef\xaf\xe2\x83\x94\xcez\x02\x99\xe7\xb0\
+\xd9\x8f\xf2y\xd6\xba\x87\xd8\xf1\xf9}\xa2\xc5:\xf2e\
+\x5c\x8c\x13$\x82\x1eX\xe4tz@Ads\x1d\x16\
+\xa2\xe1O7\x8f\x9a\x10~Z\x05\x04\xc2>\xef'\x13\
+k\xc7\xa2\x8b\xacB\xab\xe2-\x81\x95\x0e\xe0\xf6!a\
+K\xa2\xa18\x09\xb2\xc2V\xe7\xac\xf5\x97\xe4\x83*8\
+E&\x07\xc9a\xfc$\xbc\xb2\x17\xb6H\xbb\xac\x0b\xad\
+\x84 \xa4Y\xd9\x06\xed/\xc4\x16\x08fV\x9c=\xff\
+\xf1\xb1a+\xb2;\xf3\xc5s\xe6\xd8\x1b\xe7$\xaf2\
+\x9f+1\xc8A\xe6H\xf6\xe7\xb6\xe7o\x1e\x22\xa7K\
+\xf2\xa8\xda\xa7\xf2\xf9W\xe5\x0e\x84;\x9fo\xb1u'\
+\x89^U\xa2$\xf0\xec\x83T\x22r^\x91U+\x88\
+\xab\x84Q\x8e\x87\x84\x03\xd98\xfa\xf5U\xc1\x7f\xe5L\
+z7<!l\x99\xbf\xc8\xbe\x86{\x84\xadzi{\
+\xd9C\xfe\x81\xc4:DU\x9fP\xccDe\xf9\x7fd\
+\xaf2@+\xa4\xc6\x90\xfb\x99y\xa2\x92\xeb\xf3\x93\xeb\
+J\xaf\xf9p\xfd\xe1\x06\xc3\x0d&\xd9\xc2Y\x8d\xe0\x9b\
+\xe37b}\x0f\x7f\xd6\xac\xad\x83\xe1\xa3\xcd\xfeqE\
+b\x89\xec2\xb90\x86?\x0ek\xdb\xe8\xd7\xc2\xda\xed\
+<\xb3\xd9i\xed\xfbk\x87\xb5\xd7c\xc3&\xc8\xff\xbd\
+\x02\xf2\xbfs\xfa\xce\x19;g\xb4\xbf;j8r8\
+r:_\xe6s\x09)\xe3\x8dg\xc8\xb9\x04\xf8\x9e\x07\
+\xef\xf9\xc3 \xb7\x0bJ\xc4 E\x9c\x0a]\x9fm\xef\
+\xf3\xfd\xb0\xf6\xf3O\x87M\xf3\xed\xee\xd3|\xe3\xa7w\
+-Wz\x87\xa7\xf7\x0dD\xc2Aa\xed}\xfe$\xac\
+\xbd>#,\x03\x8e\x9b/\xe4\x82\xdb\x0b\x87\xb5c\xe1\
+\x8cf\x7f\x9d\xe4\x9d\xa7,rt{\xef\x12\xb6\xb0\xd1\
+O\xd0\xe9@H]\xb5\xd9\x95\xb3\x92\xdc\xe2\x89\xfd\xdf\
+l\xf6\x8d\x9c\xb7\xb7^U\x9c\xb3\xf06\xec\x84\xb5\xd7\
+\xcf\xb4\xfb\xf9\xcc\xd4z|\xf8pX\x22\x0c\x1e\xb0\x82\
+F\xbf*+\xc4X\xfe\x13\xca\xbe}\xdd\xf6\xb5\xdb\xd7\
+.j,\xc3\xa1aK\xe2\xa5H\x09o\x10\xd6~\xef\
+\xb9a\xabD@&L \x90\xc6\xff\x11\xb6\x9c\x87\xa5\
+[O\xbf\xdd\xbe\xc5\xff\xc0I\x81\xe3E\x22\x0f\x89\xdc\
+Bn<\xcfw~\xf3\x87\xa6\xe6\xce=\xedn\x9b\xad\
+8\xc8\xd2_\xdd\x1e\x13\xb6\xb4\xf8\x14\xa2\x05d\x1c\xa7\
+K\x06\xd8\xa5\xaaq\x9b\xb0\x05\x09S\xac\xf6\x12\xd3\xfc\
+=\x95e\xf1\x00\x0e\x80Ll\x97\x1c\xb2u\x0b\xe9|\
+\xbf\x99E\xbf\xc8\xac\x91(\x92[\xcd\xeb)\xa4\xf2\xdd\
+\xc3v=\xc79P\xb5\x7fgo\xfd\xf8\xc8\xb0\x95_\
+.aj\x7fT\xd1\xa6o\x0f\xf1E&\x90,i\xb4\
+\xac<z\xd5\xda\x00\xe1\x96\x89\xedBvv\x05\x8b\xe1\
+\x22a\xed\xf7\xcf\x09k\xaf\x8f\x9b9\xe5\x9cC\xb5\xcf\
+\xe3\xe4xE\xd8\xea\xb9\xf2\x17\xb3\xc5\xac\xf6Q\xa4\xb7\
+\xce'_\xfc@-d\x12\xce\xd9bT\x05E\xe3\xe2\
+\x1c\xa32\xa4\xa58U\x13\x86\xf3\xc2\xda\xff\x7f8l\
+%o\x9c\xf1\xc1\xbe\xa9\x87\xe75\x0bD\x0e\xc4\xaf\x0e\
+p$8\x17M9\x96$u)\x87,u\xa3\xabw\
+M\xe6\xab;\x90K\xc6\x06\xa9C\xf6\xe2o\x9e\x1f\xd6\
+^\xcf\x0a\x9b2\xef\xf3\x00\xfeCf<d\x9e\xb2\xd7\
+\xa62\xe9d9\xb0\xa6\xcb\xb0-z\xc33\xeben\
+\x00\xe5\x00\x0a\xec\x16=hd\x80\xf3A\xfb\xc2\xb97\
+p\xb8y\xd8\x94\x19\x9d7\x96\x1eZ\xca\xb1\xea+\xc3\
+W\xca\x8a\xa8\xdf\xe3 \x1b\xaf\xee\xef+\xb0P\x01s\
+\x9d\xbdLVO2\xc8!\xe5\x88\x82\xe6\xe4AZ\xd7\
+\xe3\xe0\xe3\xc8\x9bp\xae\xc3\xfb\x1dV=\xc3t\xc5w\
+Ch\x05\x00=\x19[\xdf\x1a\xd0\x07\x9c\xfd\xab\xbf\xef\
+I\x0a9R\xae\xc3\xfd\xcbPBD\x1c]\x09\x8c\xf9\
+\xff\x8f\xec \xcb\x87\xe7\xdf;\xe8d\xfc8>>O\
+%\x059\x0bG!9\x11*@\x10\xc0d&2\xa8\
+\xf7&\xf2=\x1bef\xf8\x8a\x5c\x83\xdc$\x872I\
+/k\xde\x0a\xb0\x04\x22\xee\xf3\xca9\xbf\x0e\xeb\xf4\x88\
+\xb7\x1dy\xa0\xf1\xebe\xf6~\x91Z\x82\xdf\xf7\xd5\xcb\
+\xe7\x19\x07\x95|=q\x1c\xb2\x83:\x8e\x8c\x9fud\
+\x8e\x9e\x9b\x00\xf2\xb8\x0cxO\xc8\x04\x17\x12\xc6\xac0\
+o\x5c\x8fye\x9c\x8dGO>\xd9\xb5\xe4l.\x9b\
+\x19\xe1\x8b\xcc\xec\xce5\xffA\xace\xa6\x1d\xc0\xee\xc3\
+x88\x04b6j\xfb\xd5e;Y=Pa\x08\
+\xa1\x93\x93\x1d\xdf\xbc\x930\xd0\x9bH\x0f\x17k\xae\xc0\
+4\x1d\xae\xf1\x88$-\xb5/\x1a7\x15\x81\xbe7^\
+\xe0\x0c\xf2-qh\xbd!\xfb\xfbYAy\xe7\xc0\xbd\
+\xaf\x90\xbb\x7f\x09L\xf2\x95z\xe8\xed\x9b\xbd\xfcf\x0f\
+\xd9\x17\xa8\x80,wrj\xd5\x82`\xdf\xeae\x0d=\
+g\x08\x86LpT\xab\x06n\x82\xbeU\xa1S!\xa8\
+\xf1PY0^\xf6\x0f\x09\x0e\x9c\x10\xf6_\x8e\x96\xfb\
+t\x9d>\xa7'k5_\xf4\xf0[\xc7\x12\x04\xd9\xdb\
+W\xe7\x8f\xfd\xd6\xfbH\x00X/\xf6A\x95\x14\xfb/\
+rZ\x01\x99\xf7\xf1w\x9e\xa7uh\x1c\xa85\xe8q\
+\xf7\x9c\xcc\xeb\x84\xe4\x17I\xd2\x92\x98\x9e\xc7\xd7x\x98\
+\x7f\x12\xe4\x09\xbd\xe48n\x1f\x10\xb6\x04J\xe5\x18\x93\
+o\xc3Z\x0d\xc1\xc7aLv\xfdb\xe5W9\x0e\x08\
+\xf1\xcbW\xec\xcbzU\x13\xd2[\x8e)\x99&\xfb\x07\
+\xd2\xa7\xdco\x8b\xbc,\x13n\xe3{\xc3V\xc8\x06\xa4\
+Q\xfc\x04$x\x09\xed,H'\xb2M_Y9u\
+\x9d\x158j\xa9H\xb6\xef\xd2\xb7\xf7\x9c{\x8e\x9e\x84\
+\xc0Vb\x8a\xe3/A\x99d\x93EB\xdc\xed\xbb\x85\
+\xac\x93P4\x8f{\xce\x1fd~\x89$+R\xb6O\
+\x84M\x95\xc3f\xab}\x15r\xa2C\xd8\x15\x1b:\x99\
+.\xeb\xc8}Y_z\xa9\xd3\x91\x1d\xf7\x85\xb5\xbf\xff\
+lX{=3l\x09\xcc\x90\xd9\x8e\xb7\x0e[\xcd{\
+\xfb\x80\xc2\x84s\x0d\xe2\xa1\x93W\xae\xf1\xcc\x1e\xf0j\
+\xa9\xd0\xa2\x02\x9a\x8f\xb4\xf2\xdc\xb0\x15\xc2\x0e\xa4X \
+\x06\x19\x8a\xebC\xab\xc0u\xc6k\x8f\x81\xf4\xbaPX\
+:\xfa\xefh\xe3\xf9\xbcf\xed\xff\xb77ov\xb3D\
+\xf0<s\x09\xb4[ \xdf\xac\xbd\xbe9\xac\xbd^\xa7\
+Y\x0b\xe8w>\x15\xd6\xbe\xbfv\xfb>\xb8\xb4\xf6\x87\
+\xb5\xd7\x8f\x0fg\x0eg\xae\xf4\xc9?\x9b\xa4\xa3\x90\xae\
+\xb9_\xb7pe\x22kV\x19\xdc\xff\x82\xb0e\xfc\x14\
+\xda\x86S\x86\x07\x0d\xa7,rg\xdb\xdf\x0aK$\xe8\
+U\x16r\xb1\xed%\xc2\x96\xf3~\xe7]a\xed}\x7f\
+o\xff\xef\xef\xff\xfd\x89l\xec\xb1\xc3c\xa7\xf96\xed\
+\xf7\xc3\xf1\xc3\x95\xa2\xb7~\xef\x0d\xf7\xfe\xea\xde\x1b.\
+\x01\xef\x14\x88\xbe\xa9\xfd\xff\xd5\xc3\xda\xff\xdf&\xac\xbd\
+\x9e\x14\xd6>\xe7\xe1a\x0b\xa4y\xfc\x9d\xf1\xce\xd1R\
+\x1b\xe9\xefH\x80\xef\x1c\x1e\xb6\xf4\x82W\xa2+\x13|\
+\x95H\xc8\x84\xce\xe6\xc2\x9b\x8bD\xcb\x85\xc0\xc6\xfe\xe4\
+y\x8e\xc3\xdc\xfb?\xfc(l\x95\xb8\xcbV\x18\x81\xd2\
+\xce\x0d\xc3\xda\xef\x1d\x11\xd6^\xcf\x9c\x9fC\xcd+H\
+\xdf<\x1fB\xfc1\xe4\x1f\xedC\xde\x17\xf7\x86}\xa7\
+\xd4k\xf4\xa2;7\xb4b \x13w\x8e\x08\xa4!\x90\
+T\x90\xa9\x8e\xbcln1T\xe1\xdf91lE\x9a\
+\xaa\xb7;\xcfG\x1c\x0e\x12y\xf5\xa5\x22\xcf?\xc9x\
+a\xe2\x8a\x18W\xd7\x9bqY\xf9\xafZ\x09\xae\x5cH\
+b-\x9e?\x9f\xec\xfc\xc7SJ88\x0c\xce\xdd\xac\
+\xc9\xa6%\x98\x15\x90 \xd2\xb4\xd0\xe1.P\xa9\xe6\x17\
+\xe4\xbe\x5c$\xba]!\xaaHh\xed\x17\xd8\xf9!\x02\
+\xbe\x11\xb6:\x17\xb3\xe0[q\x17\x95\x88l\xd9\xac\x8a\
+;\x84lr\xddT\x02#\x11]\xf6\xa1\x22%Uq\
+\xb7\xaff\x1c@\x1d\xa6Z\xf8z\xb2F\xf2\x80\x99\x10\
+!\xfbW\xa4\x89\xb8V\x04\xf6Tf \xdb\xb4\x14\x92\
+[\x14W\x7f(li\xd5\x1b\xbe\x1c\xd6~\xfe\x99\xb0\
+e\xbe\xed\x9b\xf4\xaf\x0fZ\x05B\x97\x9cj\xaa\xf3\xc6\
+u\x9d\x95\xee5G\xe7\xec\x1c\xe8\x0f'\x09\x19]\xf1\
+ \x1b\xb9\xce\xaag\x0e\xdbh|\xf7\x1bKOH\x91\
+\xa5`\x91FFC&\xe5\x113\x0b\xe7\xe6\xd9\x9bg\
+\x05\xdb\xe5\x9e\x87OV\x07\x94\x83\xc4FV=x*\
+R\x0e8\x10\xad\xcf\xe6B\xf3\xe5\xa0!\x13\xc8\x91\xcd\
+\x8c\xee\xb4\xc1?o%[\x86\x15\xb9\x0f\x089\xe6W\
+H\xd2\xbcd\xdb]\x05\xd0\xbb!m^\xfb\x00\xdf\xf5\
+\xa8Ps\x94{\x99\xba\xde\xf1\xef\xd9\xd8\xf5\xc6bs\
+\xd7\x03\x92\xba\xcd\xf5y*\x15\x02?\x995\x8e\xe6\x85\
+\xf2\xbe9\xc8] T\xe3+\x80?lw\xc0]\xdf\
+\xf7?\xbfx\x05\xa6\x12\x05\xbbe\xb9\xbaJ\xde\x0a\xca\
+>;F\xc6M\xa0a\x9c/\x93\x8e\xbb\xc0F\x00\xdd\
+\xf5\xfe\x96\xcc\x1aG\x80\xa3\xcba\xfa^B\xbb\xb0\xaf\
+_x\xee\x0d+y\xa9\xec\xedi\xee\xc0\xc4\xbe)C\
+\x5c\x89\x17\xef\xfb\xda\x84\xdc\xa9\xacef\xbb\x9e\x97\xe7\
+ \xc0r\xff?\xde\xcd\x01q\x80J\x02G\xdd8\xd9\
+x\xcd\x17P\xee\xa3\xb2\xb2.\xa1d\x1c\x04\x80C\xc9\
+\x05\xce\xc8\x05*\x10\x10?*\xa7\x1c?\xf3\xd2\xf3\x92\
+`\xe9\x11\x1f\x92\x14\x17-\xce\x84\x199\xa1buh\
+&\x16\xae\xd69\x92\xae\xd3<\xeb9&\x042\x9e\xa3\
+\x8d\x5c\x80\x96\x95\xab\xcd\xf5\xc2V\xfb\xc4?\x84M\xc8\
+\x8d\xd9A\xbeF\x06\xca>W`g\x1dX\x17 g\
+=\xf9\xa6\xe7\xfb\xd5\x5cg;9\x8e\x90? \xbf\x12\
+\x16\xf4m\xc9\xed\x90\xd5\xd2\xcb+\x01\xa17\xf0\xc4\x1c\
+o\x8e\xbeu\xd6\xb7\xca\x18/\xf3\x9e\x0a\x84\xf1p`\
+\x9b'\x12D\xd6M\xbf\x1f\xd9\xa7\x04\x86\x1cr\xd7K\
+N\x10\x14\x15D\xff\xeaa\xabJmO\xe2\xa7\x82\x0f\
+a\xe2\xf7\x91\xf9\xe5:(rF?\xf7\xf9}\xe2@\
+&\xdc\xb9!Q\xe5\xf3\xac\xff\xaee\xa7\xee\x8f\x03\x83\
+C$[_j\x5c\xac\xcf\x9e\xd3D`\x99\xfbi\xed\
+\x83\x17)2\xcby\x1eH\x10\x9b/\x9e\x9f\xca\xbfu\
+\xed\xf9\x99\xe7\xa0\xb9\xa0\xe6\xf6\x03\xf2S\x1c\x19$t\
+K\xc2r\xfe\xdc\xabw\x88\x15\xf7k\xdd\xe3\x94I6\
+\xeab\xa3O\xc8c\xe9\xce\xdf&\xb9.\xfc\x9dy\x08\
+q\x97\x8ee9\xaa\x09\xa1\x86 \xc3a\xe0{\xfa\xe2\
+\xdbw\x86-\x81\xd7\xe4\xdf\x8c+\xb2\xba\xd4\x1fW\xa1\
+\xd6*P:\xc9\xb9OVK\x07\xc7\x0c\xb9\x17\x88\xb8\
+\xd6\x85,(\x14\xc7PV\x14\x0b\xc9\x01\x91\x90\x95\xfe\
+\x9aOd\x8b\xd3o\xd8<\x22l\xe5\x18C\xe4\x81T\
+\xdb\x97\xcd\x1b\xf3HeZ\x05\x9d*\x84\x0a\x17\xc8p\
+\xb64BV\x16\x09\x97\xc4\xac\xc2\x01\xb26\xf3\xbaW\
+]\xc1Q\x91\x15\x9e\xfayBFUR\x8b\xdc\xea\x90\
+\xb0UkH&\xf0\xb6\xcf\x0c[\xdd\x0fD\x06\xf9,\
+\xfb_\x9ek\x02\xa6r\xc0\xed\x83\xd9Z!p\xab\xd6\
+\xcd\xcb\x15\xd9\xef\xbc. \xb0\xec\x0f\x17\x0f[\x05\xfa\
+\xc9Iq@\x0b\x97\x04\xaf\xc0\x0at\x16BU\xa2(\
+U\x0f6\x1f\x0d[!F\xf2\xbe .+\x10\x00M\
+N\x96\xf5\x82d_\xac\xd9\xc5\x97\x04\x12\xd6u\xbd\xda\
+\xd3\xae}\x95\x89\xad\xfd\xfb\xd1\xdb;\x91\xf0}i\xc5\
+\xde\xff\xcb\xcd\xae\x91\xc8\x81v\x1d\x81/\x08\x84\xc1p\
+d\x06\x9eGf\xe5\x9f\xbf\xe0\xdc\xe5\xc7\xbc/\xc7\xfb\
+k3\x19\xe2\xf9\x1fo\xf6\x89I\x8d\xe6\xa5\x93\x1a\xcd\
+\xf9\x93@\xee\x9e\xcd\x8f6?\xde\xfch\xd5j\x98\xe7\
+\x80\x82\xc5\xe6\xff\x86\xb5\xe7|\xff\xb0e\xdc\x86\xb3\xc3\
+\xda1{\xca\xfe\x07\xedo\xebg\xe7w\x9b\xfd\xceD\
+\xe6\xf8'\xc3\x9f,,\xe2\x9b/g\x0b\x10\xbf#\x0b\
+*\xdb\xff\x1e\xd6~\xff\xc1\xcdZ`\xb4\xf3\xfba\x13\
+\xe4\xf9\xfd\x01y\xde\xfb\x94\xbdO\xdd\xfb\xd4\xe9\xfc\x9d\
+\x10L\xc3#g\x92\xc8\xe2\xf6H\xa4\xf0\xd4rp\x97\
+\xf6\xfa\x7f\xc3V\xdc\x15\xe6O\xb2\xb3\xeb\xbd\xde~b\
+\xfb\xc9\x80\xfa\x8f'\x85\xadz\xba3@*\x92@$\
+\xa4\xd9B\xb0\xbd\xf1\xf6F\xdb\x1bM\x95\xf1\x89\xebc\
+\xff\xb7\x02\x8b\xd0>\xf7\x89aS\x02\xe5\x94H\xa0T\
+b\x95\x1c\xa1\xe7O} \xc9[\x0b\xe1\x99\xfbC\x91\
+\xf6fKV\xcd\xe3\xdc\x8f\xaa7>\xb9P\xaa\xb5L\
+`K.4[^\x86\x0f\x86-\xfb\xe0\xce\xa3\xc2\x96\
+\xb8\xa8Z\x952\x00\x1e\xf7\x87\xad\x02b\xeb,+\xc5\
+\xb5\x8f)h\xe5\xf5Nr\x85\x7f\xba\xf2\x83\x90\x01j\
+\xd1\xe2\x07\xf6\x85;_~~\xb1\x22\xd1>z\xfa\x7f\
+\xeb\xd6\xfdI\x94\xf2? \xbcN\x0d\x9b\xe2\xbff\xab\
+\xf7\xe1\x0f8?%R|\xe5\xfb\xd5}\xe4\xfeP\xfb\
+\xb7\x16,\xfb)\xbf_k\x99\x049\xce\x98\xac\xf4W\
+\x0b\xd4\xed\xc2V\xad\x88\xfc\xb0\x94\x1fm\xeb\xa2\xd9\xd2\
+\xc22\xdc6l\x85\x88\xca\xc4\xb6\x96\x81\x92\x8b\x94\xe0\
+G\xb2\x0b9qb\xd8\x12oTk\x87\xc2\x88\xe7\xa9\
+`\x00\xf9\x0e\xd9\x81\xf3A\x81\x22\x13\xe6\xd4I\xc6\xe3\
+\xc2\xda\xff\xbfp\xb2=\xfb\xa6\xc0\xfe\x0f\x97@g8\
+8lu\x83\x09a\xdb\xd5\x93~\xcc*\x83E\xd7\xfa\
+\xf4\xb0U\xcf\xe3\xbf\x86\xb5\xd7o\x87\xb5\x0f\xbed\xd8\
+\xea`~B\xd8\x0az\xc1\x01=1\x1f\xf8\x91\x9d\xa3\
+\xc5\x91\xe58#\x93xG\xd8j\xe2\xea\xfdH\x07d\
+\xfcx\x1e\xf4_\xc9\x00h\xe9\xe1\x9c\x02\xa0\xcd\x1dg\
+\xb9\x1c\x10\x9f\xe1\xaaa+9\x90\xbeB\xbe\x04\xaa\xf3\
+\xfb\x09\xe4\x8a\xdd\xbe\x93\xbd\x12X/r_\xb3ce\
+\x02\x088\x04h\x1c@\xef#\x83\xd6\x07\xd2\x07u$\
+k\x16\x9aqR\x19\xb8H&F,\xd8\xa5\xc25;\
+\x0a]\x0fd}\xaf\x07\xdd\xfb\xa9\x9c\x5c*lE\xf6\
+wT:>W\xee\x10\x12^9\xfa\xe4\xc9T\xdc\xdc\
+O\x9f\x00p\x9d\xcb\xfd\xcc\x8e\x0f\x07\xa2GR\x5c\xa6\
+\xc8\xfbv\xf5\xf0WE\xc5\xcf\x91?JXas\xe7\
+\xc0\xbc*\x1d\xb3\xaf\xa7\xbe\xe9C\xc2&\x07~\xde\xb0\
+\xbe\x9b\xcf\xe1\xba\x09!\xc2Fl\xc1q\x90\xfe%\x1d\
+\xf4\x9cw\xf5\xbc9\x88}+\x85\x8a\x90y\x22`X\
+T$\xe6y\xd7'4\xfaW\x81\xc9\x02q\x9e7<\
+\xad\x22\x1c\x8b\x1e\x0am~\x9bg\xe6\xe5Q\xf9\xf9I\
+\xdeY\x90\xfdN\xc6\xad6~\x01\xb1\x1eC\xb2S\x1c\
+X\x094\x1b\xbb\xebv=\xfe\xdf|\xebH\x15\xeb\xfa\
+]_\x7fpZ\xffzhU\x88o\x90\x99\xd6+v\
+\xdc\x17\xc6K\xa5\xce\xc1\xad\x22\xee\xb9x\x0e\xe4l\x90\
+\x8b\x0a\x1c\xacG\xad>\xb86r\x7f\xa8\x0c\xb0\x83\xcc\
+\x97u\xe0>>\x97\xac\xb9\xd6\x05\xe8?\xe8\xb7\xe7/\
+\x81\x04\xd1\xd2;\xd6\xc6G\x85\xf0\xf2aS\x0f\xdc\x1c\
+\xf8\xe8\x91\xc7.\xdf\x91F\x1ePYv\xf0H\xd08\
+H\x05\xbc\xae\xcf\xfb\x18/l\xb9\x12\x08\xb8\x05\x1c\xa4\
+\xdeGbS\xcb\x83\x80\x16\xb2\x0a\xb9\xa4\xf1R\xe9\xee\
++\xf7\xe6\x95\xc0\xbak\xd1)\x92D\x9f\x03\x8am\xff\
+4\xcf\x8c\xa3})\xd7o\xc9\xaaI\x18\xf9=\xbd\xf3\
+d|\xec_^\x9d7\x12Y\x12\xd5\xe6?\xf6z\xf3\
+\x80\x83\xc6\xf1\x95h\xb4\xdfH\xf4e\xc5\xbd\xce\x0d\x89\
+z\x15q\xe3\x9b\x0e\x96\xf9S\x9c\x02\xc8\x87\xfc\xdc9\
+\xea\xb9\xa9,e@\x5c\xb2ww\x0b[\xc9\x91\xaa\x5c\
+Z\x9f\xa0\x98\xd9\x8bn\xbc\xb7\xef\x09[\xfc\x81\x0a\xf4\
+\xa9\xd9&\xc7I\x05b\xd6\xaf\x16\x9cl\xc1*d\xa2\
+^J\xebR\xef4\x07*Y\xfek<=O\xf3\x15\
+\x9b\xbdV\x87LLT\x81\xe2\xfc\xb0Ub\x80\x03\x9f\
+=\xf2\xa0\x9f*e\xc5)@\x7f\xdc\xfa\xb4\xff9\xcf\
+\xf2\x9c(\xce%\xc8!dM\x0a(\xd6\x89\xf9\x06\xf1\
+'\x91\x85e\xbbC\xe8U\xa5\xff\xa5\xf3u\x8f\x97\x99\
+{B\xeb\xfc&[H\xdd(\xf5\xd0\x87\xb7\x85\xb5\xbf\
+\x7fT\xd8\x92H)Y\xaf\x94\xf9\xaa}Z\xcf\xbcD\
+\xc2\xa7\xc3&Y\xc0f+\xfd\xeet\xb4\xabu\x22\x11\
+;\xd5\xeaul\x87\xb8\x92\xe0\xeae\x8b\xf9'Z`\
+\xb2u\xa4\xe6\xad\x16\xb2\x9b\xce\x1cN\xe5Ov-1\
+\x10\xa1\x10\xaf\xdb\xbf\xdf\xbew\x9a\x97/\xdb\xfcMT\
+\x98\xb7\x97\x0f[Ayq\x1d%\x99\xdb\xf8\xeba\xed\
+\xb8\xfbFX\x92\xd9=u\x81\xd6V\x0b@\x90\xfb5\
+\x07|\xe7\xf7Z@\xfc{\xed\xe7\xe7\x0f\xfb\x87\xf3\x93\
+\x1c\xef\xb1SBn\x86\x12g\xa5\xbe\xe6\x97\xfd\x5c\xe2\
+#\xc7o\xe7\x01ay=\x17\x9e\xd6\xe5\xdc\xb3\xfc\x81\
+\xb0v\xdd\xa7\x86\xb5\xd7K\xefm\xd6^?\xb9yj\
+\x5c\xcf\xe6\xb4\xcd37\xa7-\xa4q\xf61\x89\xff\xe1\
+;a\xed\xfd\xdf\xb8\xf3\xa6\x9d7\xb6\xd7'\xef<i\
+\xe7\xc9K \xd9\xc2\xf4\xb9\xd7\xf9\xc4L\xe4{\xee\x0f\
+\x0e\xe5\xf9\xf6\xfb\xef\x0c[\xe4\x1f'N\x85'.\x88\
+\x87\xeds\xc2\xda\xebM\xc2\xda\xe3|W\xd8\x12\x08\xef\
+\xfd\xfd\xb0\xdcG\x9e\x91\x89\xb0?\x9fz\xff\x7f:\xf5\
+\xfegE|J\xc4\x5clE\xca\xadU\xf9\x8c\xcd_\
+\x87ly\x91\x0af\xa1RBl|M\xd8J\xee\xed\
+>\x09\xe5\xff\x8fL\xd4\xe6y\xb5sB\xd8\x12 b\
+W\x1f\x0f\x0d[*\xb881\xaa \x94l\xeau.\
+%\xfb\x7f\xa9\x90\xbcbn\x89\xa9\x84\xd5\xd7\xab\x80:\
+'\xd6 \xc7\x04\xc6\xce\x7f\xe7J~\xfex\x85\xb0\x15\
+\xb9c&2\xb7\x9f\x0c[\xf9\xbbZ\x9a\xb3\xc7\xbd\x10\
+\xab\xceq\x9c\x04\xceK\x90\xfbS\xc6\x07M\xfb\xb5\x04\
+e\x22\x8a6\xaf\xccu`\xdf\x1c\xbbV\x1d\x09\xc7\x1e\
+9\xa7\x10\xa2\xd0\x221\xce\xaf\xa2\x92\xe4\x1c\xce@8\
+\xc4CC>\xb4Z\xa9\x1e\x18\xb6\xf2\xf3p\xb1]\xaa\
++|\xf0{$Z\xb5\xdc\xe6\xfeZ\xf7\xeb\xba\x15L\
+\x05\xd4\x0a'Z\xab\xb2\xa2>^;l\xa56\x91\xeb\
+F\xa2\x8d\x9ca\x15\x16\xec\x9b\x12O\x7f\x1b\xd6^O\
+\x0d[!-\xb5<j\xc1\xd6Z\xa2\xd5$\x9f\x03\x95\
+\x1a\xfb\xc4\xf0\xb9\xb0\xc5\xff,\xb9b\x09\x0b\x1c,T\
+|$\xd6\x93\x9c\x94_a\x1d\xed\xdb\xfb\xf4\xb0\x0c\x84\
+\xda\xc6:|\xb8\xd9GV\xf2\x15\x0e2\x15\x8a\x18\xa6\
+\x90Izu\xd8\x92a\xdd\xf3\xf7\xe9\xc8<>\xe5\x86\
+R\x07\x15\x04i\xb8g\xd8\xaa\x07\xd1\x031\xe1\xc9u\
+e%\xaf \x0c&\x96\x0c\x10\x9dE\x01\xba\xccyB\
+\xfdJ\xf71\x07|s\xaf<X>6\x93\xd2TF\
+\x0b\xd4\x05I\x8d\x0d\xe6\x88\xb0\xd5D\xb5p\x04\x0c\x97\
+Jhy\xb2\xbf\x96\x03*\x90\xef\x039\x81\x95\x05n\
+!\x80.\xab,\xf5=\xb4\x02\xf1\x1e\xa2i\xe2\xfb\x5c\
+\xdfs|\xf5\xe4p\xd0\xaf\x96\x07l\xcf\xaa}\xe1N\
+\x0e\x8bCk\xbc\xf7\xe5\xf7\x99\x88\xa8\x0d\x86\xa3\xd7\xb3\
+T\x0bL8\xf4\x02\x09\x95\x1b\x15A\x07\xb3JU\xd7\
+Jq\x80\x9c\x1e$F\x0fI\xbeL\xc7\xa9\xd0\xb7,\
+\xf8{\x0eT\xea\xac\x17T\x9f\x03\x05\x92\x03z\x9b\x95\
+\x93J\x10x~\xc6\xdfs\xfdjn\x18*6\xde'\
+!9\xe5\xb0\xf4\xec\xf9\x02F\xf3\xff\x90z\x1e\x12K\
+\x12+sEE\xe5T\x00\xd9\xb7\xa0\xf4\xad$\xd7N\
+\x08\xda\xe5s\xde{^*n6\x1c\x7fo^H\xac\
+\x98\xbf\xa96P\x95\x19\x81\x8b\xe7\xdc\xb7r\x5c\xa0\x10\
+\x01\xbb\xe7\xad@\xa8W)\xf0y\xae\x1f\xe9\xdb\x22\xab\
+\x89\xc5y\x97*\x00(~\xf5\x5c[\xa7\x0eV\x09B\
+\xf7\x07Ji\x1c\xcc\x9fN\xfe\xae\x02'\x81e/\x93\
+\xd8\xabu@\x94p\xd8\xae\x99\x81\x86\x8ae\x06P\xe3\
+_$\xbb0\xc4T\xdfb 0\xf19\xa0}2\xd8\
+\x1cC\x01\xdd\xa2\xea0\x07j\x10\x16\xd6\xc7!E\x82\
+8?\x17=\xa5\x02\x00\x81\x1dH\xdaBR\xba\xbbe\
+\xe9\x17\xb1\xf5\x0b\xf0\xfbu\x8b\xcbDK\x80\xf5.\x90\
+\x158x\xed\x910 \xc88\x1e\xcc7\x95\xe0\x8ek\
+\xa0\xae\x0f2\xc0\xbe\xd9\xc9\xbd\xd5\xf3r\xf0\xab\xa4\xba\
+>\xf7\xe5|)5\x8c\xbcO\x0e\x86\xca\x81\xf5\xe1\xfb\
+tH\x8a\xa4O\xc0\x82\x5c6e\x9a*\x11!!b\
+\x7f&\x0f\xe5z9Z\xe6\x1f\x84\x80\x04\x97\x80_\xe5\
+\xc0\xfcH\x87\xaf\xde\xd7\xb8q\xacT\xd4\x04\x96\x9eK\
+\x87\xb8(\xae\x13\x10E\xeb\x9c\xc3\xa4\xa5\xa9G*\xe5\
+<(\xc4\x02v\xe9t\x90Ad\x83Rw\x22\xd5\xc5\
+\x92O\x7f]\x85\xd6\x97}\xc29a\x5c\xb3\xd7\xbb*\
+\xbdY@\xc0B\x1dLD\xc1E4\x1e\x1d\xb6jU\
+\xc0.m\xbf3\xbe\xce\x01\xe73\xf9.\xd0r\xdfK\
+\xc8\xeb\xdd\xa7\x16\xe0\xdcH\x96\xed\xea\xb1\xa4\x1a\x22\xf1\
+d|\xb2rX\x89g\xd7An\x14\x04Y\xc0 \xb1\
+\xcco\x90P\xb0\x1fr\x18U\xb4\x12\xd2\xba\xfd\xc1\xf6\
+\x9c\xed9I\x02{\xadUA\x06\x92\x04\xb2E \x93\
+\xe4\xb5\xc3\x1d\xc3Vd\xa5\xc8O\xd3\xe1\xdc<&l\
+\x95\xb0 \x8b\x98\x05\x17H\xb2\xf1\x85a\xab\xf1\xb1\x9e\
+O\xda\x8d\xbc\xacu&\x01\xc6\xef1\xaf\xec\x8b\xd61\
+\xbf)\x9f\xa7Df9\xe4?\xc8\x0a\xde?g\xa2\xc0\
+\xb9\xe4|\xe0\xa7\xdd>\xd7\xc7\xa3\xb2\xb2\x9c\xa4\x85\x9b\
+\xbd\x9b\xed\xc4r\xff\xb5fg%\x99\xe4\xffY\xaeg\
+8\xbd\xd9\x8a\xd4kB\xc2\xfcG\xfa\x05?\x98X\xfb\
+'\xd94*\x02\xc3\xe1\xc3\x11\xd1\xcb=|$l\x22\
+\x13\x9c[\x04\xee\x15\xb6\xf2\x1b\xf8=\x9e{\xdew0\
+g\x05w\x16Y\xbb\x82\xfe\xf2\xcb<\x87$\xe9\xde^\
+y\xe6\xd8\xd8\xdep\xef\xb1{\xc3\x9f\xfcJ\xd8Jo\
+<{\xde\xad\xcb\x9dsw\xce\xdb\x095\x82\xab\xcd\xd0\
+\xf2\xf1\xa5\xe3K\xc6\x97\xac\xe4\xd2\xb48\x82h\x0b\x5c\
+\xde;\xdf\xff\xf0\xee\xb0\xf6\xf77\x0dk?\xdf\x09[\
+\xe4F\xab\x93\xf1\xfda\xed\xf5\xe4\xb0\xf6~G\x85-\
+$p\xdb\xbf\x0bk\xbf\xff\xe3\xb0U\x05\xf5v\x93\xcd\
+\xf3\xfd'\x09\xb9\x0f2\xbb+\xb5y{\xa5U\x5cb\
+?\xce\x00\xb8\x02_\x08L\xfe\xd4\x1d\xc2\xdav{\x9b\
+\xb0\x09\xf11!\x8d7o\x0f[!\xd1\xd2\xcf\xdb\xb9\
+B\xd8Bj^\xfb\x9eJ.\xb5\x15-3y^T\
+\x81\xc0y\xa3\xe2N\xd6\x0e\x92\x88l0?\xb5'\xbb\
+\xce\xd6\x94\xe1aa+\x155\xe7v\x22\xa0\xb6\x07\x85\
+-qS\x05\x868\xd7@\xfa]/\xb2\xbf$s/\
+R\xbaL\xdc\xd6y\xc1\xef\xcd\x84a\x9d\xbb\xfd\xfe\xdf\
+'\xe0\x97\xc2\xd0nN!~\xb9\xfd !\xf3\x9b\xbb\
+\x84\xad\xfc4~]\xee\xab\xc5i\xe2s\xbd\xdf\xa1\x1d\
+\x07\x18D\xa5/\xcf\x9f\x1f\x9f\xfe(\x15\x02$\xa9\x10\
+6\xd5B\x81\xdb'\xcf\xa9\x22\x05\x96\x00\x82\xfc\xcd\xb8\
+\xb5T\x10 \xcc\x9c\xab \xfa\x99h\xad\x82\xa0q1\
+o\xf9\xc3\x12\xf6~O\x00\x1fd\x99o[\xc9\x00\x8a\
+W\x93\x14\xbb\x10%\x90\x83\xd6\xafV\x0a\x08?\xa4\xff\
+\xf9~\xfb\xb6\xa7\xcc\xba\xa6\x95yU\xa9\x91iU\x91\
+3\x91\x924\xb0\x0e\x94dO\xae\x03?eu6O\
+\x0e[\xc9M\xe8\xf9X \xac3\x89\x152\x12\x90>\
+*\x02\x10\x03zy\x91E\x80f\xe9q\x01\xd9K\xdd\
+\xcc\xea\xdd\x11h\xea\xed:#e\x97N\xcb\xd6\x02\xe4\
+/\x97\x19/;F\x8f\xd3\xadf\xf9\x94\xb6\x89\xce\xbd\
+m2\xf1\x1cB\x01@\x06$\x93\x5c\xcc\x8fVP\xf1\
+\xb3\xd2A2\xc1As9\xec&\xac\x03\xae\x0f\xf0s\
+B\x94|\x0f\x87\xd6D\x91\x01\xb3\x00\xfd\xbc\x83\x0aW\
+\xcf{\xdf\x8b\xcb1\xe4\x80\xf7P\xd1\x9e<\xce\x02\xae\
+\x92n\xde\x97\x1e\xf3_ \x07\xe7\xf36'e\xe0\x8a\
+\x84Q\xa6\xad\x97\xe1\xeb\xc9\xec\x04**\x7f*\x1e\xae\
+\x0b)a/\xe3g\xe3\xc1\x9e\xfd\xd5\xb0]\xea\x09\xf3\
+\xf8\x9b\xe7\x1c\x02\xaf\xe6I:\xb0\xcd\xe9\x9eI\x22\xcf\
+\xce\x00_\xab\x84\xe7hc\xfc\x5c:\xf0\x7f\x9f\xd0$\
+\xcfI\xe5\xa9\x0fxz\xa8\xb2\xf5%\xf0\xcf\xc4K9\
+\x8e\xd6c_\xf1\xfdE*\x06*\xd1\x9eG\x0f\x9d\xbe\
+b\xb5\xaa\xcc\x7fo~\x08\xc4\x04D\x0b\xe4Ret\
+v\xa4lT\x9e\xff\xc5:\x92\xc8\xe4Ph\xc7\xfa\xac\
+Zp\xcd\x84\xfa\x99?\xd6e\xf6\xb6n\xbc\xdfu3\
+q\xe1\xf3q1\xf0 \x90O\xdd({\xc5\xff)7\
+V\x07\xaa\xeb\xd7\xdb)p\xe1hr\xe8UP{\xee\
+\x8d\x9bgb\xf0J\xb9N\x5c\xc7\xd1\x93\xce\xc2\x92(\
+\x80\xacY\x10Ks\xa0\x22\xf04\x1eOOr\x1a\xba\
+\xd4\xe4\xcd\xb0\x0e\x0b\xb0\x04$\x0e(\xec\xc4\x9e\x8f\xdf\
+\xeb\xa0\x97E\x96w\xed<HSO\xf9\x80\x04\x87u\
+a\xbe\x99\xbf2\xe6\x1207\x0a[\x1d\xc0\xd6\x9d\xeb\
+\xcb}\xb0\xe6%\x08\x9au\xe9\xf7\x8c\x87\xf5\x0e\xc9\x00\
+\xbam\xfc\x5c\x9f\x96\x13\x07\xbb\xf7\xb3\x8f\x0bx\xec_\
+\x9e\x83\xe7\xe7}\xf4\xfa['~\xdf\xfc\xee\xb9&|\
+\x7frq(\xcc\xfb\x84\xfbD\xca\xea\xbe\x04\xfe\x19\x88\
+\xd5\xbc\xeb[\x01\xec\xcbH\xa4\x92\xa4\xac\xc8\xd2\xec[\
+\x1c[\xd7m_p\xbd\xe6\x91\xca\xaf/\xad\x0f\xe6'\
+\xdd\xe4\xac\xd0\x16\xe4] \xda\x9f\x03\xa0\xa3\x02A\xd7\
+c\xbdx^\xbf9\xd9\xe2\xa8\x9d\xd8\x91|\xfa9\x12\
+\xdf\xdf\x0a[\x02\xe6\xcd{\xc2V\x95\x87\x0cp\x8b$\
+\x10\xa9\x1f\xc8\xa5\xcf\xe7\xf8\xa8\xd8&\xe2\xa0\xd44\x92\
+\x14\xabZ\x12!\x10\xf3s\xfc~\x91\xfb%+r\x91\
+kJX\x19\x7f\xeb,u\xe9k_\xb3o\x9e\x12\xb6\
+Z\x0f\x9e\x8b\xeb\xb5\xef@\x1e\xe99\xc5A\x93r\xb5\
+zD\xa9E@\x8c\xd4uI\xf4\xd8\x8f\xcc\xfb\x8e\xc4\
+\xb28\x10\xb2\x22\xbdyB\xd8\x8a\xac/!\xb4\x1c\xe6\
+\xbd\x0fhv\xff\xa5R,!U\xfb\x07DBB\xbd\
+\xeb\xdc\xf4\x9c!KR\x9ep\xfb\xdc\xb0\xd5~b\x9e\
+\xd8\xff\xb5\x08\xe9\x99%\xdf\x8c,\xcb\xfa\xc7N.A\
+L\xe6\x8b\x0a\x8c\xc4\xbas\xc8\xfa\xea\xe4\x0b\xc9\x9e\x15\
+\xd9\xe09a\x93\x7f\x8aSj\xe2p\x90\x98\xdc\x5c7\
+\xac}\xecK\xb2b\x9d\x81y\xe9\x84\x87\xea\xd3\xe5r\
+?\xbfY\x8e\xeb!+\x12j\x15\xc68eBe\xea\
+\xc1a+9\xcd\xcb\xa6?\xf9\xafam;x\xcb\xce\
+[w\xde\xd2^o\xbcs\xa3\x9d\xb6\xbf\x0eO\x1f\x9e\
+6<m\xf5\xbc\x17\xc8\xf4<\x0e}!\xa6\xbf\x7f\xfb\
+\x8b}\x08t\xf9\xe9\xb3\x9a\xc8x\x8b\x19\xa10\xcd\xf2\
+\xc3\x96\xe7\xa3\xa29\xfc\xd6p\x9b\xa1\xad\xd3\x9d\xf7\x85\
+-\x81?\xae\x08\x10\xf7=\x0f\xcc\x8a\xf7}\xc2V\xaa\
+\x0e)w7~9I\xb2Ok\xfej\x9b/\xc3\x9b\
+\xc2\xb2\x80\xf8\xe1\xf6\xfa\xc0f\x0fX\xb5>\x5c6\xac\
+\xdd\xe6\x1d\xc3\xda\xeb\xde\xb0\xf6\xf3g\x87\xb5\xf7\x9f\xbe\
+V\xf1@\xae#\x15P\x89\xa6=\xef\xd8\xf3\xceIw\
+\xfe\x09\xe3\xff\x0e\x04\xb1\xca-5\xb2b\xf9W\xc9%\
+\xafl\x1f\xd7\xe2\x99H\xd6\xbdWO\xae\x82Go\xff\
+b\xfb\x17\xab\xf5F\x0d#\x9f\xcb\xceE\xc3\xda\xf5>\
+(l\x85\x88Q\xe8\xa2\x92\xf1\xb4\xb0\x95\xac\xa0s\x9b\
+\x9fO\x1e\x18{\xbd\xc0\xd6>\xef\xb9\x9b\xe7\xe6\x1d\xe8\
+{\xb6$\x0d\xc7\x87eB\xfcr\x89\x8cz\xfcJ\x1e\
+R!D\xc1)\x13\xbfH\xaa+\x80\xbc\xe9x\xb3\xf1\
+f\x0b\xb2\x85\x9c#\xb2\xbb\xea\x99\x7f]\xaa\x88\xdc3\
+e^%L\x9d\x9b\xbdls\xcf\xfd\xd5\xc7;\x90\xba\
+IR\xb8\xe7\x0d{^\x1f\xb2\x8a\x93\xff\x15\xea3/\
+\x99\x13QH\xfe$\xba\xc6\xdf\x0a[\x10\x1fuN\xe0\
+f\xc0\x9eo]\xe6\xf9W\x5cp8\x83\xf8\xfb\xb8\x1b\
+p\x0fX\x97\x12\xdeI\x96[\xf1&\xee/\xfb\x0f\x84\
+\x14.\x08\x05F\xc8\x83;N\xb6<\x0f\x89\xf9\xf4C\
+JUE\xbce_\xe4\xc7(t!c|\xd6d\x0b\
+\x09\xe15\xc2&\x7f3\xac\x12|\xe5\x07K@@\xc8\
+\xe0\xbe\xc9\xb8b\x1f\x07p|\xc3\xccR\xb9\xbdS\xd8\
+4\xf1wC\x95s\x01U\x0fAV\x026w\x98\xa1\
+\x06\x9b\xbbd\x22\x00\xfb\x22\xf2\x9e\x0b\x04\x0f\xe8*\xa3\
+\xe3\xfdl|t\x833\xf31~{\x1e\xd0q\x7f\xf6\
+\x1c&\xdb8\xe8`s:g\x07\xe3%a\xed\xf5g\
+a+\x9d\xde\xc7\x85\xad6j\x90Oj\x02t\x82O\
+M\x16\xcf\xd7fo\xcf\x7f\x09[H\x81\xca\xc1?\xbc\
+#e\x13\x08\xca$}5+\xc5\x1cj\x99j\x10\xd6\
+kdE\xac\x87\x86\xf6\x81uw\x00\x14K%\xe8\xbc\
+\x0a\x91qsPp\x04\xfb\x8az\xd7\x1b^\x8e/\x07\
+Z\xa5m\xc9\xc8\xcf\x8e\x87\x00\x80C\xba\x90\xfd\xed\xae\
+\xa8\x19\x0f\x9f\x97\x7f\xbf\xb9Z\x06\xfe\xd7\xc9\x00@o\
+\xaa\x8a\x13\xf6x,\xe5\x1d\x17\xc0\xe6\x92\xd9b \x80\
+\xed*\x84\xd5z\xe1\xd5\xf8\xc9\xa4I\xd4\xf4\x15\x84\x1f\
+U\xe0>\xcf\xbf>\xa0G\xd6\x96\x15\xb0\xf1\xecy\xfc\
+\xdb&0W&l\x0880R\xf6\xa8\xc8\xab2c\
+X\x15V\x1c\x13\xee\xc3\xf3\xf0\xfc\x04\xfe\x9eO\xf5X\
+%\x19\xd5q\x19\xc0\x08pz\x07<9\x106\xc7f\
+\xc5\xee\xe4\x0c\x98\x16\x8e\x84\xdd\x01~G\xa2V\xff\xef\
+\xf9\xf7l\xf0Z\x00.\x9e\xd7ic'\xbbg]t\
+\xbdQ\xed\xea\xe7\x00Q%ZES \x8a\xd4\xd1\xb8\
+\x5c#3\xa5\xae\xcf<up\xf9\xdcN\xb6\x93\xfca\
+\xe9\xa8\x7f1l\x05\xa9\xf6w\x02\xe6>\x01\x22A\xe3\
+\xbe\x05\xac~n\x1c\xc9\x10\xea\x19\xe7\xa0{U\x89G\
+b\xc7\xf1H\xe8\xe1\xe6!a\xab\xf9\x0b!\x00Rn\
+\xff\xcb\xf95\x82\xc6\xf9\xfb\x84\xd6\xd6\xe7\xe1n\xc8\xca\
+I\x0b\x1ff\xe8\xb1\xf5\x8f\x84\xc8u!\x11\xf3\xdc\x1d\
+@\xf6+\x8e6$\x82\xe7)0\xee\xc9\xf8\xecC\xd6\
+\x8d\x8aZOR\xd7\xa9\x95\x94\xec\x1f6\xf9^&\xb2\
+'\xb34\x1f2\x10\xe2\xb8\xd7:\x90X\xb1\xff\x98\xe7\
+\x028\x90`\xeb\x11\xf2\xcb\xf3\x05!\xd5\x8b\xda\xabc\
+\xa8\xb0[\x1f\x1cq\xbd\xe37\x99\xd9\xb9k\xdd\xa7\x9e\
+tA\xda9\x069\xbe\xe4z\xca\x91\xb5.TvU\
+\xa8</\xe3\x97\x8eJ!\x18@\xdfU|=?\x09\
+I\xa4\xbdd\x00\x93\xa4\x8ecT2j\x12\x8b\x9e\xaf\
+\xf1s\xbf\x9d\xdc\xd1\x01-\x18\x10{\x1c\x0a\x81\xa2\xc4\
+\x83y\xac\x22\xe3ys\x9c\x92$\xb3t\xa7UL$\
+hA@S>\xae\xc6\xfbMa\x0b\xcbq!\x10q\
+V\x9c\x13\xb6\x82H\xde)l\x05\x1du\x1d*O\x0f\
+\x0e[d\xa2j\xbej\x91p\x1f*\xae\xe6\x93\x80\xfb\
+\xac\xb0\xf6\xf3\xdb\x85\xb5\xd7\xef\x86\xad\xf6\x03\x1cB\xb8\
+yN\x0b[\xb5\x1aA\x8a\xe4}r\xac\x8bL\x11i\
+b\xees\x1c\xf4j\xb9\x94\xc0N\xd9\xd1\xba\xae\x94\xd5\
+\x22cU\x5cKy\xdf\xc5\x96\x8f\xc3!\xa1\xd6\x85\xec\
+\xccJ\x7f\xf9eIFV\xf3*\xe5\xc9B\xcc9\xe4\
+\x9c\xab5\xb0G\x06J\x94H\xc0rl\xedg\xe6\xb7\
+}\xdd\xbe\xe4\xfc\xf6e?\xe7'I\xc8\xe1|\xc1e\
+C\x8eSO\xadV>j\x02\x99\xe0\xd5\xf2\x15\x22\x97\
+Q9\x138\x22\xfd+\xbf\xc4\xf5\x08x\xf4\xd6K<\
+\x90\xc1\xce\xe74\xb1\xdd_e\xc5Z\xff\x8e\xe1\xed!\
+\xe76\xbc2l\x15\xc8\x19\xa7\xde\x1f\xac\x0d$\xf7\x1b\
+_\xbd\xff\xc8\xff\xd3\xfb\xfe\x98\xb92\x5c\x95\xea\xa8\x1b\
+\xdek\xd9\x9f\x87\x9b\x0f\xb7\x08R\xeb\x9d\x97\x87\xb5\xef\
+\xffz8c8c5?\xceL(\xfa\xd5\x93T\xf0\
+\xe4\x0c,\xf8\xcf\xce\x93\xf4\xbb\xcbO\x8dJ\xea\xc3\x16\
+d\xcbp\xfd\xb0\x89\xccl\x96%\x13\xb0e\x02\x8c\x9e\
+\xf9\xe6)a\xaby\xdc\xa9\x8b\x90\x19\xac\x84\x1f\x95\x91\
+\xf4\x8b\xcb\xbf\xcf\xe7\x8a\xfd\xdd\xbeX\xbd\xfac\xb0\xdc\
+\xad\xc6\x91<o\x92\xac\x99/\xd6\xeb\xbeG\x85\xb5\xff\
+\xff\xc7\xb0E\x17\xbe8\x00\x86\xf9\xfd\x86_\x0d\x9b\x02\
+\xd77L\x81+\xa4\x90}\x182\x8b\x9fy~\x91\xf4\
+\xce\xc8\x9bL\xe0\x15\xa2\xe3#\x93\x1d\x884\xa4J\x82\
+\x5c\x9d|\xddc\xc2V\x05\xb7\xd8\xd7\xdb\xb8m\x0f\x0f\
+[\xb1\xc2\xdb\xdf\xa9,|/li\xb9\x1a\xff|\xfc\
+\xb3\xf1\xcf\xa6sy&\xaf\xa6\xae\x96\x89\xc5\x92\xa3\xcc\
+BX!\x13\xc5\x09\x0a8\xe7\xa5_\xad\xf5\xf5\x02\x1d\
+B\xb2#/\xad\x84\xc0/\xa7\xbfa\x9e\xb9\x9f\x87\x86\
+--Zu\xce\xd9'\xec\x07\xd9bQ\xe4\x89Z\xe6\
+@\xb5\xad\xae$\x00\x00 \x00IDAT\xf3\xa9\x9b\
+\xe0\x88Ir\xd0:\xaf\x92\xf4\xbe\x10\x10\xb9\x9fW\x02\
+\x06w\x82\xeb\xf7\xbc\x5c\x8fD\xaduM\x16Vb\xc2\
+\xf9\x98\xf3\x02'K%\x22\xa8\xf1\x88c\xc8$K|\
+Y\xefd\x11\xf9G\xe6\x89\x04\xc1\x13'+\xff\xb2Z\
+\x0e\x8cW\xaa\xc1\xb4\xfd\xa8\xd9B\xc2\xb9o\xd87\xec\
+\x1d\xf6\xae*\x16)\xef\xb2\xfd\xdb\xed+\xb6\xafXA\
+\x17@\xda\xe8\xbev$t\xe5X$9_\x91\x10\xf4\
+z\xccz\xacA\xd7T\xf4A\x19\xb2\xa7k\xbcJ\xd8\
+\x8a\x857'pA\x06\xb3W\xa4d`\xb0\xe0r\x10\
+\x0d\x94\x8dT\xa0\x96\xec\x9dA}\x18\xe4\x87\xd5+\xd8\
+\xeb\xbfs,MX\x0bY\xa6\xabw\x84\x1d\x10\x1d4\
+\xba\xb9\x81\xb3\x83xB\x06\xdc\x0e\x16\xaf\x02\x03\x0e\xb0\
+\x03\xc7\xab\x0d\xa5\xef\xd1\xef q\xe5H\xba\x8e\x1e\xa2\
+#\xa1\x03Z\xbd\xb0r\xcf\xf7}BV88\xc8*\
+\x0e*aH\xd4\x8cK\x7f\xff{r\x02\xf7\xe4\x81\x97\
+\xef6\x80C\xf3>w\x8a\xe5>U\x00R\xe6\xe6\x12\
+\x1d\x22a\x91\xf5\x9b_eT{h\xaeqr\xdf\xc3\
+\xee\x9e\xf4Z\xd0\xc6G\xc5\xd5\x02\xe1P\xd8X~V\
+r\x86\xf3\xab\xf1\xferfj\x91\xb9\xa4\xaem\xb5H\
+\xd8\x00\xa8\x14\x5c\xb6\xee{\x17\xdb2\xf9\xc2Z7\xc7\
+V\x0b\xc3|\x10^?\x03\xb6\xbe\x92\x89\xb4\xf2\xd8\x84\
+\xcc\xabX\x0b\x00\x97V\x959\xd0<8l\x15\xe0z\
+?\x1b\xb8\xc0\x10w\x07(|/\x97w\x5c%d\xe6\
+\x84\xc5A9\x7fA\x87\xcd\x93_\xeb\xa0\xc3}\xcf}\
+?\xdf\xdd\xf7r=\xc7O\xd7s\xc4\x84\x09Y\xb7\xac\
+\xcc\xefwN\xces\x0e$H\x22\xce\x0f\x15\xd1L \
+\xd2\xb7mA\xef\x9c\x89=&\xe7\xaf\xeb\xbf\xe4\x84\xd5\
+\x89J\xfb\x9c)\xbeQ\x06\xd4\xae\xdb\xbcq\x9d\xee\xab\
+'\xdf\x94\xb0\x00\xe5\xcd}o\xbc\xf5x\xab\xf1Vy\
+_\xc7\xaf*\xfa\xd9+\x5c\x1c(2\xe5\x1fJ\x92\xd3\
+\xef\xcf\x1c+\x91\x9f\x8f\x0c}\x1d\xbc*\xaf\x12Z\x9f\
+N.\x96+$D\xbeO\xb8\xb8\x0f\x0e\x96\xbf\xb7\x1e\
+\x05\xda\xd6\xad\x00\xde|\x92A\x07\xed\xb7?\x98\x1f\x0e\
+\xfa\x9e\xab\xc5>\xeasz\xf9@\xaf\xfe\xce\xf3\x17\x08\
+J(iq\x90\xb80~\xf6\x17\xfb\x81\x84e\xfe}\
+\x05X\x90\x5c\xee\x1f$NB\xc1\xfbI\xc0\xd9WT\
+\xe6\x05\xca\xd6\x7f\x9f\xb0T\xc1H\xce\x9c\x0a\x149\xb6\
+\x9e\xab}R\x22\x5c@\x22\xe0\xf5\xbe*\x06\xaeK&\
+_\xe2\x1c\xa2\x0e\xb9\xab\xe7\xe19\xe8\xe9L\x99\xb3\x0a\
+\xd8p:\xf4-H\x12;\x10\x1a7\xcb\x1ej\x9f\xef\
+z\xec\x1b=\x17\x85\xfd\xd2\xf8\xf2#\x8c/\x07\xc7:\
+\xe2@\xa9dt\x01q\x91f\xe5\xf8W\xcf2\xb5\x81\
+^\xcf\xde\xfe\x8f\x0c\xee\xada\xedX9+l\xf1[\
+\xa8\x18\xd5\xfa\xc5\x96\x9c\x15z\xf7\x815\xbed\x89\x9d\
+\x17\xce\xbb|\x1e\xc5I\xa0EJ\xa0\xfe\xefaK\x8f\
+y%\x92\x04\xbe\xe9P\xf2;J\xed\xc0<\xf5\xfc\xb2\
+RW-\x8d\xb8\x0a\xde\x15\xb6\x82~\xdb\x87\xc8\x1cf\
+\xaf=\xb6\xfd\xe1O\xc3\xdax\x5c/l\x09\x806?\
+\x09[%\xaa\x8cg\xb2\x8fWk\x0ah\xf9\x11a\xab\
+D\xab\xf3([(\xbcO\xf9{\xe6\x15D\x00\x88\xaf\
+\x04\xa0\xfd%\x03\xa8\x22\xaf3\xde\xceo\xf3\xcbs\xb3\
+\xaf\xf5*4\xe6\xb3\x04SBu\xa9A\x848\xf4$\
+\x0f\xad\xf2\x96\xf3\x0e\xe2\xa1 \xf97\xdfs\x8b@\x94\
+l\x1f\xb1\xfd\x93\xed#&?\xf6'\x93\xa3\xad\xc2\x8f\
+T\xefcaK\xc5\x0e\x89Y\x84\xfb\xe1`\x0f\x1f\x1c\
+>4\x84\xbfy\x8f\x94;CF\xe6\x1c\xdct\xea>\
+\xff\x7f\xbf\x8c\x93D\xec\xbb\xe6\x04\xf8\xf0\xeclU\xf8\
+\xfa\xe6k\x9b \x87{\x7f\xd8\xd4\xea1\xed\x07\xf1\xbf\
+\xf1\xff\xe3m\xe6@i\xf8\xca\xcc\x12>\x89\xd0}h\
+:wf\x99\xc4\xefeB\xea\xee\xc9\xfd!\x01}\x89\
+\xecM\x7f\xce\xf8\xdc\xe89\x1e\xef7\xdewB\x22\xdc\
+8l\xc5\x8e\x1e\x90\xea\x9f-H\x02\x15o\xfa\xe7\xc3\
+?\x87-\xb71\x5c/,\x112\x1f^%\xd2\xfe)\
+\x13q\xcf\x9b\xf4\xc0\xaa\xd5\xb0*\x9e\xce\x9b\x84\xf0\x97\
+\xcc\x5cr\x8aT\xab\xad\x84\xdb\x7foO\xe6\x1e\xcb\xb9\
+\x87\xc3@\xeb\xe3\xbe{\xec\xbb\xfb\xbe\xbb\xafT\xcb\x5c\
+\xa0u\x9a\xf3\x88\x9a\x83\x96#\x15b\xe3]\x09D\xfe\
+&\xff]e\x1f\xc4\x1c\x22@B\x86_l\x1d\x22c\
+U\x99\xb7\xee\x92Km8mx\xd6\xf0\xaci?\x99\
+\xb9E\x12\xd1T2\x95\x99@\xb6\x0epuPKC\
+:(aY\xa4\xb1O\x9e\x135m\xcf\x9a\x121-\
+\x1a|\xf8\xf8\xf0I-d\x961\xbes&\xe2\xb5\xf0\
+ \xcdN\xd5\x8a\xcdM\xd2\x9f\x22{g\x1d[\xb7\x17\
+\xceW=\xf8\xfc\xba$!\xdc\xbc l\x15\xe7x\x0e\
+)\x13?\xfer\xd8\xa2:S\x88q\xe7!\xae\x97\x8c\
+7+\xe1o\x1d\xda\x8f\xb25b\xf3\xe2\xb0\x95\x9a\x00\
+RB\xfb\x0e\xe4\xa3\xd6,\x05<\x89\xd8<\xdfb\x94\
+b\x9cj?\xcf\x04|\x915B(P\xaf@Z\xfd\
+\xc2\xb0\x95\x1f\xc6\xef\x81L\xc8\x16\xa1I^\xf3S\xab\
+\xfdNa\xde8\x9a?\x12\x13\xe2\x1c\x08\xe9\x94\xa5\xdc\
+\x072\xb2yc\xd8\x8a\xcd2\xd4\x01\x0e^d\xab\xda\
+\xb1:W0\x0c,\x87\x8b\x03\xa3\xb2\x01\xd2)\xd3u\
+\xf8\xfc\xf7\xa5\xeb\xf8\xc790\xd8\x1aS\xae\xce\x01W\
+\x0eoBZ&\xa8\xd0\xbe\x05iP\xfa\xa8\xc9\xb2y\
+\x00iJ\xdf\xf3i@\x90c\x98\xa8y\xbd\xe3\x1f%\
+D\x08i\x04rC\xbd\x8e\x0e*=:&\x02\xc7v\
+\xa7\xe4\xe3\xe6\x07f|\x04\x8e\xfb;\x16\xdb>\xa3\xdd\
+\x1fl\x02\xa4E\xc7}w\xaf\xbe\x07\xeb>9@2\
+\xb2*\x12X\xdd\x17\xee\x81\xb9w\xfd?2P\xe6\x90\
+\xfe\xa4\xcb8r(\xdcG\xafB\xb0\xb0\xd4\xce\x13\xdf\
+uZ\xa0\xdf\xceqr \x81\xd0\xffs\xf6\xb6]%\
+\xff^\xe0\x98\xd0\x9d\x16\x86\xcd\x0b\xf2\xa8\x0e\x22\xef\x15\
+r\xc0\xfd\xbb\xaf$sl\xf7\xb7\x1b\x81\xd1\x1f\x90}\
+\xc5\xd2\xf3\x94\xc9\xb30\xbf8\x93d\xed\xf9b\xb5\x00\
+\xcc\x0e\xfb\xf7\xf3\xef\xfeu\xde`Jv\xce\xfb\x0bp\
+\xcc\x17\x09\xa5\xcb\xe6\xfc\xcc\x80\xbf\xe4X$\x0cz\x92\
+>\x10~\xaa\x12*rI\xb2X\x01\xd1\xb5\xb2\xe2\x7f\
+\xe9N\x1f\xbdo\xb1\xe8{\xb0</\xcfS\x85\x5c\xe5\
+QF\xb3\xeb\xd1\xaf\xdeu\xdc\x0b\xb8&8\xc0\xde\xaf\
+'u2\x0e2\xbbZ;d|{}\xe7 \x01=\
+\xf1\xe7\xf4\xd0\x1dVP\xdb\xf9~r\xa3\x97\xd1F\xc6\
+\xd8\xf6\x84\x19j\xf5\x9fI2\x06z\x7ft\xf5z\xcf\
+\xf3\x03B!\x11!\xed\xa0\x9a\xa1\xb8\x02>\xbfo^\
+\xf7\xb2z\xe6[&\x16+\x01\x05Z\xcc!q\x80\x1f\
+\x91\xaa\x16\x09\x15\xac\x8d\xf9\x87E\xda7#\x0d^\x91\
+\x09O\xeb$3\xd5\xe5x\xdet\xae\x84\xee99!\
+}\xdf\x08[\x91\xfa\xe9i6\xfe\xe6w/{(\x91\
+t\xc3\x94ST\xa13\x8f\x04\xd6\xf6%\xcf\xd1\x01\x0d\
+! \xa0\xce\x0a-v\xf9\x82P\x93#\xd53i\xdf\
+\xc8\xeb+\xb27\x89(\x9c+\x02\xce\x8e\xf3\xa0\x1c0\
+\x81\x05r\xda\xfe\xfa\xf4rJ\x88$\xb2\xa1\xee\x17\x22\
+\xc0|\xb7.\xec\x7f\x90R\x12[\xf9\xfc\xab\xb7\xb4g\
+\xf3\xef\xcfE\x15\xfd\x84&\x17{~&\xba\x8b\xfc\xc9\
+\xf3\x92\xd1\x97\x00Q\xe1\x178\xaa\x94z\x7fH\x0f\xe3\
+\xed\xb9A\x1c \x9fLN\x93\x1a\x8f$\xc3\xaa\x8a\x93\
+y\x8d\x0c\x10\xbb\x7fB\xc2\xab\x85\x00\x22\x00G@\x8f\
+<\xeb\x12\xd3\xa5B\xd3\xf5(\x8fo\x0c;\x90\xd4\xb7\
+\xb8\x03\xecC*\x1e\x12A\x19`\xd5\xfe\xa1wV\xaf\
+\xb0sR\x05%\xdfg\xfb\xc5\xb0\x05\xf2Z\x8eT&\
+ j\xbdf+\xe1\xf6\xb2a\xabJ?d\x01\x95\x11\
+\xeb\xd9}#\x1dNvr\x0e \xe4\x1e\xfdi\x15\xf7\
+\xe1\xa6a\xed\xf7^0Y%\x10\xb7\x87\x85\x1dX\x89\
+.u\x85\xbc\xff:\x0f\x1e1\xd9\x22\xb7\x98\xbd\xbf\x13\
+\xb4\xff\x97V\x01q&R\x8a]\x9d\x0aD\xf6\xc0K\
+\x90\xb6\xbf\x9ez\xfe\x91M\x82\xe0\x96j\x83\xc4G\x92\
+\xc9\x91\xb9\xaa\xf9\xd8\xc9\x8d\xd5\xf9a\xfe\xf6\xdfCj\
+%\x0b|%\x88\xfc\xbd\xd7\xbe\x15\xd1\xfe\xdbA\x8ek\
+\x9f\xc1\x09\xd5U\xc8\x8bs!\xcf\x03\x01\x01\xb2\xb66\
+\xea3GE\x9e\xeb\xa0\xec\xdb\x83\xb7\x07m\x0f\xce\x9e\
+\xe9\xb321\xf4\x1f\xc9\x0d\xf0\xce\xd59t\xc1Y\x1d\
+\xc8\xef\x05@=\x02\xb3r\xfb\xdcO\x1f\xf8[\x7f\x12\
+\x85\xae\xbb\xf7\x17\x7f\xd1\x97\xf7E\x1a\x97\xf3\x06\xe2\x80\
+\x0a\xc7x\xb9\xb0\xf6\xf3\xd7\x85M-IS\xa1m\xf8\
+@\xd8\xaa\xf2y\x9d\xdcg\xb5\x02\xa5\x7f9\xfee\xd8\
+j~\x5c<l\x820\xcf$\x86d\xde\xf2\xfcGv\
+8\xb1\xd8\xb7\xf3q81\xac\xdd\xfe\xd9a\xcb\xbc\x1f\
+>\x1e\xd6^\xaf\x19\x96\xd7\xfd\xaa\xf6\xfa\x85\xb0\xf6\xfa\
+\xb4l\x99xM\xf6\xcc\x07\xf0\xfe\xd1\xd3\xfe\xf0\xd2\xd8\
+\x1f\xc6;\x87\xad\x12\xd5\x0fL\xb2\xc9\xab\xce~\xd5x\
+\x87\x19\x09\xb3\xe7\xb6sa\xc6\xf3-\x926\xb2o\x19\
+\xb8n\x7f=lA \xec{\xe6\xbeg\xec{\xc6\x8a\
+<\xed\x9ea\x0bb\xa7\x12\xad\x89t\xa8V\x22\x05C\
+\xd0\xf2\x8e\x9d\xbd\xfc\x0aH'\x09\x03\xdc\x00\xe6=\x04\
+U\xfe^\xf9\xbdZ\xbe\xb0\xc5\xff\xe7\xf0\xd3\xe1\xa7\x0b\
+\x97\xc1\xf6[aK\xab\xf6\xf8\xe9\xb0\x95?\x95\xe7\xfd\
+x\xef\xb0\x95\x9a\x8a\xc2,\xff\x91_@^\xfc\xfea\
++\x84#.\x14l\xfc\xe4V\x1f\x93\x90\xf8\xbb\xa5J\
+B\xcfEC\x1dEb\xe1\xf1\xf3\xfc\x92\x98\xad\x04\xb4\
+\x02\x8b\xfb\xef9\xa8\x9c{\x90o\x02v\x89g\xe3\x9e\
+\xbd\xf4E\xbaI%\x0eB\xcb9\x9eH1\xad#\x93\
+\xba\xddu\x97\xf3\xeb\x00\xf2v\xada\xfe\x1e\x82,\x13\
+\xa1\xd4R\xc8\xa4JH\x89\x93\xab\x05\x012=\x13\xac\
+\xe4-+!/\xf1\x96\x5c-\xb5\x1e\x91\x13R\x9b\xa2\
+\x96\xa1\xa5\xde\xfe\x22\x01%\x01\x90r\xb6\xfb\x0aj\x90\
+\x0e\xd4\xc4\xe2\xf9\xa4eC\xde^&lE\x8av\xea\
+\x9c\x99\x19\x0f\x9d{\xf47\xe7n~\xb8\xf9\xe1\x94\xc1\
+\x9du\x11\xdf4\x1f\xf0\x05\xc5\xe7 \xbf#\xa1\x14\xe4\
+\xa4\xd2\x01+\xf2\x84\xdf\xc9\x9f\xdfo\xcf\xfd'R\x8f\
+\x98\x1e\x8f_\xf5rIP\xe4\x83,\x07\xbb\xef\x95\xe2\
+\x88 k\xb3\xe0l\xac 5\x99\x09-\x07Y\xc6\xda\
+\x01/C\xc7!\xe3\xb8:\xc0<p\xd7\xd1\xf7\x82\x0a\
+p\xf5\xe4\x0b\x90\xfc~\x0f\x09\xe7p\xab aQ\x07\
+Y\xb6 9\xc4}O+(\xad\x85q\xfen\xf2\xb4\
+\x03z\xd7\xbf_\xec\xf6s` P?<3h\xee\
+O\xc2\x84#\xbd\xc8(\xce\xe3\xc0\x91\xf3\xb9C>\x07\
+\xef+#wx\xa9(\xcc\xe3\xe4>\x8c\x97\xbf\xef\xe5\
+\x10Uj\xdd\x8fL\xd6XrvseL\x22\xe0\xa7\
+%g8\xbf\xdf\x92\xe8\x98\x03?\xf7\xef}\x1cpt\
+<_\x91:\xc1\xe6\x95\xf9\x91\xfa\xbc\xe3\x07\xe6L]\
+%\x8an\x94\x07\xe51\x1d\xa9\x9e\xf9\x92\x08\x80\x92\xe7\
+\xd3\xeb/\x80\x10\xf8t\xe4\x89\x95PP\xd1<)\x1d\
+\xe3\x84\xe8\xb5\xb1\x9f\x9f\x87ypL!9\xe6\xc0H\
+\xe0r\xe8\xee\xc4C}\xe9u\xd6b\xa2\xd2\xaf\xf7\xda\
+\xf5p\xdc\xfay\xcb\x11\xbflGJ\xe8\xf7{\x08\xf9\
+q\x1d\x0b\xbf\xeb\x95\xf0\x01\xfdCR\xe8\xefU\x9a\xfa\
+V\x9c\x0c\x9c\xab\x82\x96\x01M\xe9\xa4\xd2\x9b\xc5>\x8d\
+;\xe2_r>B\xbe|?\xf7\x09\xf3Y\xcb\x8a\xcf\
+\xb5\x9f\x987Za X\xcc\x7f\x8e&\xd5\x0b\x1b\xb0\
+\x1e\xb2[\x86\xad\x9e\x17G\x9e\xdc\x93q\xd3ba\x9c\
+SG[ Q\xea(\x12!\xdf\xcay,\xb0\xb1\x1f\
+H(\xf5\xe4v}\x8f\xa9y*\x11\xe5\xf9\x83\xd0\x0b\
+\xf8\xfc\x9c\x03n}\xdb_\xbb\x0a\x7fA\xfe\x05\xda\x0e\
+J\x89#\xa4\x8f*\xc7>\xdf\xbc\xeb9.\x04\x5c\xc6\
+W /\x10\xe9[^\xac/\xeb\x07\x99\xa6\x04\xb5\xeb\
+\xe2\xe8r\xc0\xadw\xfb\xadq\xd4\x0a\xa2\xf2\xde\x93g\
+\x1aW?\xf7\xfcd\xf0\x91\x00\x82\xb2\x22\x07\xb4\x0f\xaa\
+h\x92?\xd5\xa2\x95\x89\xe5\xfa\xfd\x1e\x19f\xbc\xb1\xca\
+\x1b\x07\x8e\x93\xc47r\xd2\x5cW*>\xd5\xe3n\x7f\
+\x94\xc86\x0e\xf6\x13\xe3-Af\x9c\xb5\x8c\x18G\xac\
+\xf9\xce\x8d\xacp\x8dO\x9e{\x907\x0f\xdd\xfc\xd1\x04\
+\xed|\xe1\xf8\x82 \x89\xab\xcf\xe7\x18q\x14\x9f\x19\x96\
+dl_[\xc9\xd7i\x89\x918\xb8N\xd8*\x10V\
+AI\x07s\xfb\xd8\xb0\xf6{\x7f\x18\xb6\x92\xf5\x93H\
+\xf2\x95\x09\x96\xcd\xd3\xc3V$\x83\xfc\x18\xa4\x85\x90\x14\
+\xe6s:T8\x07\xaa\xa5 ?g\xf3\xfe\xb0\x95\x83\
+\x9f\x81\xdap\x81\xb0%A\xb3\xd9\x86-\x0e\xf6\xf0\x8c\
+\xb0\x95\xae\xb4}\x09\xe4\xd3~\xf9\xee\xb0\xf6\xfa\xf9\xb0\
+\xac\x9c=b!a\x1b\xaf\x1c\xb6T\xaa\x050\xb5/\
+=yn\xc5\xe0\xe7\xd5\xb8p\x8c\xb3\xe2U\x89\x19\xf7\
+\xcd\xa1\xe4g\xd9\x07\xbb\x16\x1b\x01D!\x88r\xdfQ\
+!\xae\xfd\xa9W\xff\xb1\x1e\xfbB\x89W\x09=2\xa2\
+\xa7M\xb6\xb4.\xd8\x97zU\x86\x17%\xc7S\x16\xbe\
+\xb0|SA\xf0<\xb7\x1f\x09\xcbJ\xfe\x07'\xa4\xde\
+\xc4]\xb0yo\xd0\xdf\xad*o\xaf\x08[Ur#\
+\xb1r\xfbU\x8f|:\xea5>\x12\xb0\x02\x08\x95K\
+H\x1f\xeb\xc6}\xff\x7f}Q\xc1H9\xbc\xe1\x93a\
+\xab\xd6\xd8$\xc9\x1b.\x176\xb5\xde\xcc\xa4\x82I\xc2\
+W\xebX\xe2\xeew\xc3VP\xf0\xd4\x0d\xdf\xbc,l\
+\x95\x88L?\xcd\xfb\x0c\xd7\x1b\xae\x1f\x95\xfb\x16\x0e\xde\
+7\x02\xc2\xed\x1f\x84\xb5\x9f\xdf\xb8Yp\x1f\xbc?\xac\
+\xfd\xfc\x0da+dQ^\xdfT!\xfd\xedDf<\
+kjY\xb8y\xb4,\x0c\xe7\x87\xadZ\x5c\x9c\x13\xce\
+3\x5cez\xb0\xaf\x9f$\x87gf\xa0\xff/\x89,\
+A\xfa\x98\xfb\xb9\xfd\x80*J\x0b\xa0\x9b-r\xbc\xdb\
+k\x87\xb5\xfb\xf9dX;\x96\x1f\x1d6q\x93M\x5c\
+.5NW\x0b[*\xd6\xc3s\xc2\x96\x02\x8f\x04\xc3\
+\xf8\xb6\xb0\xd5|\xb7\x8f\xab\x1c+\x08X\xdf\xd6\x01R\
+H\xe7-\xb6\xf8\xbf\x09[%\x182\xce\x1a^\x11\xb6\
+\x5c7N\x82\xc9k\xd9;\x05\x947\x8f\x80r\xfc\xd0\
+\xf8\xc1\x09\xda\x8fK\x22\x113u^\xa5lk\x05\xa8\
+\xf6g\xe7M\xee\x8b\xe3#\xc3V\xe74\x0e#\x15z\
+\xe4\xab\xeeG\xebU\xaa\x91\x90\xa1\x05\x89/\x04\xc9\x8f\
+f\x8e\xb5J\xb4\x1c\x16\xb6$Rk_\xc3\xc5\xd0\xc7\
+=*\xf8\xd6\xa7\xf5\x07\xa1\xce\x9f\x85\xc4\xd3J\xe29\
+\xe5|\xaay\x95\x1c\x00\x12)\xe5g*$#Y\xcc\
+\xf5\x5c\xfb=5\xa6D\xd6*\x00T\xab\xfd_MV\
+\xe4\x8b\xb8a 4\x86\xff\x1d\xb6\xeco\xe3\xdd\xc2V\
+\xf3\x05\xa7\x94}-\x91\x0c\xe5\x8f\x19\x8fD\x90\x94\xfa\
+N\xae\xdf}\xc3\xfd\xc3V\x8eBn\xbc\x0e\xce\xca\xd4\
+\xca\xd8=vx\xdc\xf0\xb8U\x05B\xcf+\xd9\x0b\x1b\
+J:\xe4\x9bo\x86Md{\xcdV\x13\xdf\xc4v\x80\
+`-\x8fi\xf7\xaa\x9c\xf0\xff6\x91\x17L\x13\x98\xaa\
+\xc0\x01\xaa\x00\xbd\xcc\x9e\xf7\x07\xd1\xf0\xf3t\xac\x90s\
+\x98hUA\xf0\xfb\xa0\x96\x1c,\x99i\x90U\x95(\
+\x81\xaa\x0a\xab\x8c\x9d@\xfe\x98N\x17[\xa6\xbc'\xbf\
+\xe30.\xac\xf0?\xbf\xf2\xdf\x93l\xf5=\xf2\x1ck\
+$;\xfe\xdf\xf5\xfd\xb4\xab\xf0\xbb\xaf\xe5~gh\xf5\
+\xb9\x15P\xef\xd6\xed\xf4w\xbe2\xe0\xdd\x5c5+x\
+\xae\xfb\xa4\xd2\x9f\x9f\xefwo\x1e\xec\x02\xf3Efp\
+v\x98\x1d\xf4\xc6\xef\xc2\x9d\xac\xe19\xa5\x9a0?\x8f\
+>3\xee\xf9\xbb\x9f\xfd9\xe1%0\xc8\xf7am7\
+\xce2\xaf\x7f5C\xd1@\xc9\x90ZV\x80 \x81@\
+\xb6E\xc5\x02\xc9\xd3e\xb3\xf2\x80\x0c\xc9\xf3\xbfPW\
+\xb9\xd0\xfapB'\x97(\x808\xbe\x12\x01\xb3\x83u\
+BU\xfc\xe7\xf1\xed{'\xcd\x03\x09*\x15K-\x05\
+\xdd\xcf\xeb\xf5\xf8\x92\xa9\x9b\xc7\xa7g=\x07\xf5\x07\x09\
+\xe6\xf8yN\x1c\x98\xbd9\x7f/\x91\xf7\xd9\xab4 \
+\xc7A6\xd5AB\xeb\xf7\x8e\xd9-\xdf\xb8\xe20\x98\
+\xc7\xe7\x06Y\xa1\xb5?p\x14\xcdk\x88\x13\xeb\x5c\xc5\
+\xd2|U\xe9\x94\xc0:)\x0fR\x01\xda\xd7\xd2\xe12\
+?S\xafxs\xcb\xcd\xad6\xb7Z\xcd\x9b\xf3r~\
+m\xf2\xf3\x0f\xcb\xf5x\xd1\x9cO\xf6C\xad8\xee\xe3\
+\xb4\x94\xddyw\x06\x1e\x1cw\x08\x07\x01\xac\xf5j>\
+\xb8\x1f\xeb\x84\x8c\xa1\xca\x02h!\xe4\xcf\x07\x93T\xec\
+\xb6\xc9\xf6\xaaW\x9b#\xe9\x00\x94H1O%\x86\xac\
+_\xad?\x02\x1d\x89!\xf3\xcd>\xd4\x93SY\xbf\x12\
+\x84\xe6\xa9\x00\xdf\xf8\x08\x18\xcd\x03\x01\x85\x84\x88\xde|\
+\xfb\x98Jx\xbf\xbf\xbb\x0e\x95\x02\xfb\xb2\xbf\x87\x94\x11\
+\xc0\x83b\xfb\xde\xfcV\xe9\xcd\x84m\xb8\xed\xe1\xb8W\
+O3\x96i\xeb\x15\x19\x8f}\xb9\x93\x89\xacq4\xae\
+\xf6;\x01\x93u\x9a2hU)\xc7\x82\xefsT\xec\
+q\xc9$i^\x05\x0e\xd6\x1b\x07\xd2z\xd7#\x9e-\
+U\xee\xc7\xbeg\x7f(\xb9<\xbd\xe0d>!\x13\xb0\
+\x05[\xff*&\x1dI]%\x06\xb4L\x18\xe7\x9e$\
+S\xe2>\xc96A\xd9K\x97=\x11\x0bH\xc0\x8a\x8b\
+\x87l\x95u\x0cq\x98\x5c\x08\xd5\xb3\xad\xc7\x1f\xd2(\
+e\xdc\xb0\xb5W\x22\xabw\xac\xb5D\xa4\x83\x0dZ\x89\
+\xf3\xa3z\xfa\x8f\x08[\xb5z$\x99\x22\xbf\x08\x09\xe1\
+\xf6\x0baK\xe0\x09\xca/\xb0F\xee\xbbys\xd8J\
+\xd5\x80\xeaQ&\x96\xb7\x0f\x0f[X\xe0\x8b\x94\xcc\xfa\
+\xe1\xaf\xf9\xbe'%\x14`I\x1cp\xcc\xed3d\xa6\
+\x90\xbbiI@\xdeL\x97^\xa51\xf5\xb0\xab%\xd3\
+\xfe\xb1\x90\xa5\xce~\x8e\x0a\x9d\xef\xads\xd7\xa9 \xb0\
+\x90\xbf\xce\xfb\x8b\xc4\x13j$\xc8\x19\xeb\xc7ye\xff\
+\xcfJ\xff\xe6\xa0\xe4\xde \x17\x99\xe3\xba\xf9Q\xd8J\
+'=\x03\x12\x15\xd6bA\xc7\xa9\xa1U\x047TB\
+\xb1\xfd\xfd\xe6aa\xd3|}K\xcc\xd7*l\xe5:\
+\x19\xbf\xd2B\xfe\xaf\xb4c\xe9\x83am[|\xe7\xdc\
+k[\x95K\xfb\xa4\x84\xd1\xe7\xc2\xda\xed\x5c4l\xd1\
+\x0f\x0f\xb5\xfa\xd0\xab\xaf\xf3\xd2\xfe\xff\x8b\x12\x02\x9e;\
+\xa8q\xca\xc5\xb5\xf0v\xeay\x8ep:\x02\xea\xf15\
+s\x81C\x22\xba\x90\x02_\x0d[\x10\xbf\xe5\xf7t\x5c\
+0z\x8a\xc7;\xcd\xdc\x1b\xc3\xb3g\xc8y\x91\xea\xbe\
+b\xf3\xcaM \x0en\x1a\xb6\xf4\xa8\xe3\x88h\xc1\xf1\
+\xa9S\xe1\xf03-\x80\xfa\xccB*Y\x81R\xb2\xfc\
+\xab\xe0\x0e\x87\x86\xb5\xd7s\x87\xf3\x86s\xa7\x00\xe7\xc5\
+S\x80\xf3\xc6=o\x9a\x90\xba\xe4\xe3\xd2/j\x7f5\
+\xa9\x82\x81\xf6\xb7Q\x98\xc9\xeeR\x9f}J\xdc\xbcw\
+\x15\xc0\xbd5l%\xeb\x96\xbfW\x89\xc2$\x1d/Y\
+\xd0W\x85\xb5\xc7p\x93\xbd7\xde{\xe3\x09r\xdfl\
+E:\x88}\xfd\x1e\xf9\xf9I\x96X\x85&\xf3\xc0\xfe\
+e\x1dH\xdcC\x82I\x00\xe0\x0c\xc9\x04E\x91\x17j\
+-\xd2:\x9d\x9f\x87+A\x85\xbbZ-~)l\x05\
+5\xff\xfb\xf1\xdd\x93\x9c\xac\xdev\xe7I\x97\xd8/\x92\
+R\xc8B\xe7s\xee\xe7\xe4\xedp\x9fTaC\x0f>\
+\xae\x06\xa4\x84\xc8\xe8$\x14\x90\x1ej\xd1@.\x99\x5c\
+\x0e\xe3\x95\xc2V-c8L\xf8\xe3\xfc\xf8,\xd8\xe2\
+\x94\xa9Vo\xd7o\xdd\xda_pG\xf0G \x17 \
+z%\x22\x92c\xa6d'=\xbf\xe4\x0a\xa8\xfd5\xfd\
+\xfe\xe2\xa2z\xc6L\xc6\xb9\xf9l\xd8\x8a\x1c?\x913\
+\x95\xd0\xce\x84/\xc4\xa3\xc4\xc3px\xd8*\x11#\x01\
+L\x95/U\x1b*\xb1\x98\xe7\xf5\xf6Va+u\x18\
+\xaa\x1dTF\xf8\xed\x10\x16\xc9y\xb3\xaf\xc8\xa4\xbe\x1a\
+\xb6b\xb1\x95Y\x91A\x05\xa5M9\x88\xe13a\xed\
+\xf7\xf7\x87\xa5\x03r\xe2\x02\xcdG&S\x19\x8e\x84\x1c\
+\xd4\xc4WA\xcd\x8d\x1b\xb4\xa1\x02q\x10\x89\x17\xcdr\
+26\xb6:\x808\xf0K\x80;g|A\x1c@\x9a\
+@\xc4\xb2\x22Z\xfa\xc4\xcf\xc9\xcc\x8f@?\xaf\xa7t\
+\xbe9\x90\x1d\x0bv9\xa02+\x1c=\x8e\x0429\
+\x95\x7f\x0e\xae\x80\x9f\x03\xde\xb3\xd8\x83\x8c\x22\x1bS\xc9\
+q\x9f=\xab\xa6\x05\xab\x95\xc2\x81)\x03/\xe0[\xb8\
+\x0c\x04\xd6\xd9l\xd5\xe9w\xf6\xf7\xa1w\xbf\xafL\x0b\
+`8D\x1c|P\xf4\xa5\x82\xbf\x9b\xe4\xce\xab\x0a\xf8\
+\x22{7\x1f\xec\x16\xa8\xde\xfb\x1e\xb2\xbc\xe9 \x80\xf4\
+H\x87\xee\xf9\xfb\xfd\xbe\x15\xe3\x88\x94a\x929M\xe8\
+\xec\xa8\xe7\xfa\x7f\xce\x10\xb6b\xa9V9\x06\xfduP\
+}\xa8\xe4\xdc\xe6\x8a\xa4\xfb\x02\x19_d\xec\xe6\xfb9\
+\xbf\xe3\x12\xe08-\x81\xff\x1c\x90\x0b\xbc\x93;`s\
+\x5c\xaa@\x1c\x88\x14\x98\x03\x98.\x01P\xf2b=k\
+\xba\xe7\xd7\xf5\xfeW\xaf\xa6\xf7w]\x17\xcb\xe7\xdf\x93\
+\xaby\xae\x02k\x09\xa2~\xbc\xcdk\x7f\xef:\xcdG\
+\x0e\xe3\xd2\x221'\xae\xae\x94\xdc\x03\xb8&\xaeP\x08\
+\x88\xdd\xbd\xfe\xd6\x95J\xd2\xa7\x93L\xe7\xdb3\x92\xa3\
+d\xa1\x92\xe4\xa7Zy@\xcb\xfbJ\x0c\xc4\x8f\x83\x10\
+\xb2\x02\x97\xc3QUq\x9f\x7f\x7f\x99O\xf3}\xf6\xe4\
+\x8c\xde?\x03\xf5\xaa\xc4%\xc4\xb4d\xb1R\xc7\xba>\
+\x97#\xe7y\xec\xc9@\xe5K\xf9< k\xf6\xce\x99\
+\xfc\xb6WM,\xd4\x05\x85NdC\x1c\xef\xd3A\xf3\
+\xd2$kZ\xc83\xe7u&\x104\x8e*~\x9e\xbf\
+\xeb\xe7\x80\xf6\x90\x7f\x01\x06\xc7O\xa5_\x80g\xbf\xf2\
+|\x05\xdc\xe6\xdd\xa2^0\x07\xec\xe6W\x8f\x00\xe8e\
+\x029\xc0\xf6\xfbN\xd6os\x9d\xb0U%\xda\x01\xca\
+q\xf19TFT$%\x18@\xcd\xef\x1e\xb6\x22\x19\
+T\xf1\xe6\x10\xdb'\xfb}\xdeu\xf6\xb2\x8ed\xcb\x9c\
+G\x12% \x85\xee\xcb\xba\x95\xe8\x03M\xb7n\x9c;\
+{;r^\x0eQ\xce\x83\xba\x9e\xdc\xdf\x0a\x89\xe2\xba\
+\xb2\x17\xb9X\xda\xb58\x19\x07\x90O\x90\xfdtL\xc8\
+e\xd5<u\x1e\xbao\xd7\xe99\xe3\x12IG\xa3\xed\
+6\x13\xa2\x81L\x98\xcaU\xb5\x8e\xf0/8Z\xc8\xba\
+.\x15\xb6\xaaX\xab\xe8\xe4s)\x16}\x09\x13\xe7@\
+VR\x87\xcf\x87\xb5c\xe3\x8f\xc3\x16\x87\xb4\xa0\xabd\
+\xee \x89r\xddn/\x1d\xb6\xf4\xa8\x17\xf7\x00\x0e\x06\
+$[\xe9\x80m\xfe)\xac\xbd~\x22l\xe5hy.\
+_\x0f[\x12*\xc6\x017A!\x9f\x04\x08\x12\xca\x12\
+;\x02\xf8\x0c\xcc7/\x98\xf5\xa6K]\x89C\xef9\
+ \x13\x04\xf9\xd7\xfb\xfc{aK\xe5\xd4\xdf\x17Y$\
+\xce\x08*\x11\x02c\x81\xa9\x80\xc6\xbe\x80\x1bJ+\x8f\
+\x04\xa5\xfd\xc6<\x96x0\x8f\x9d\x7f\xb8g\xb4XX\
+\xd7\xbd\x0c%?\xc9\xf9j\xbf\xa1B\x91\x89\xad\xed#\
+\xc2\x16\x0e\x87J\x88g\x85\xb6*\xd7T%\x9ck\x12\
+;_\xca\x8a2\xe85\x16\xf2\xfbl\xee\x1d-1\xc5\
+\x81%Q\x97\xeb`|\xc0\xf8\xc0\xa9R\xf9\xb2\xf6\xbe\
+/[\xc9b;w\xd2o\xd9\xee\x0b\x9b*\xcc\xd7\xd9\
+^gE\xd6\xb5\xe9\xf4\xd5\x05\x86\xd6\xa7ym\xdd\xd9\
+Gzr@\x05\x9b\xec\xdd\x0f\xef&\xfc\x9b\xe1\xfe\xc3\
+}\x87\xfbN\x95\xd5) /r;-t\xb8\x11n\
+\x11\xb6J\x949\x07\xf2\xfa\x86o\x0d\xdf\x1c\x9a\x7f\xbe\
+}d\xd8BN7\xbc+\xac\xbd\x9e1\x93\x0b\xee\xbd\
+\xd6\xdek\xee\xbdV^\xff\xd7\x97@\xaa \xe2z\xb3\
+\xef\x12\xb6\xe2\x82\x90\xa0\x08\x88\xf9\xab'$\xc2\xec\xff\
+\xe3\x9e\xb0\xff*\x1cj\xdd\xfc\x8d\xb0\xa5\xd5`\xfc\xed\
+\xb0U\x00\xa4\xd2\x0d\xfa\x9f\xadN5\x0e\x19\x9fT|\
+!\x11~\xc5\x19!\xb9\xbd\xf5\x1c`Q+\xd8~<\
+\xac\xbd\x9e\x17\xb6\xf4poo\x1f\xb6$0*0\xb5\
+\x1e\xb4\xec\x8a\x7fpI\x09@%`=G-\x01\xe9\
+/\x97\x9a\x86}3[[\xf4\x94\x8f\x7f\x1c\xd6>\xff\
+\x96\xa9j\x96$\xc3\x9bw\x84M\x08\x8e9\xd1 \x0e\
+\x93X\xc5\x11\x00\x09\x00)e?\x82\x083/% \
+\xd2\x9f\x86\xe8\xab\xf9\xc4\xafr\xdd\xa9\x1eW-h\xfc\
+%$\x9e\x12W\xb8#2A]\x09\x80\x9c/8\x16\
+JE\x06\xc2!9\x06\x0aQ\xe0\xbaq%$\xa2\xa5\
+\x0ak\x890\x1b?\x12\xb6$\x06\x0a\xfa\x9f-.\x15\
+\xff&\x17D\xa9\xdb\xa4\xff \xb0/?\xe4YI\x82\
+\x7f\xfc|\x7f\xb8M|^=\x7f\x5c\x02\x9d\x1a\xc8\xf6\
+o\xc3\x96\xe7(AZd\x88\x990\xaf\xc2D\xee\xb7\
+\xc8q\xf9s\x90\x19\xb5\xbf(\xe4'R\xd5\xbe\xb8\xaf\
+d]Ro\x11{%R\x14d:U\x81'o\x90\
+P\x8a\xf1\xe9a\xab\x9e\x8b\xabM.\xfb\x9e\xe1fa\
+\xcb\x8d\x04e\xc8x\x89Ue\xca\x06\xa6\xb7\xd0At\
+\xef\xb0\xf6\xb9\xbf\x15\xd6\xbe\xff\xd2\xe6\xcb\x9b/\xaf\x0e\
+\x92^NO\x05\x98\xc3e\x03U\x11\xee\xc9\x00\xc9s\
+\xc9\xb8\xe5\xc4\x1e\xbf\x1c\xb6r\xac8\xc4\x1c.\x95=\
+\x0bG\xa0,\x00\x5c*\xbf\xf3\x81\xc5\xf1\xee\x03\xf6\xbe\
+\x97\xcd\xef\xfb\xfb\xbe\x92\xea\xa0\xe1\x98\xab$\xf5d\x82\
+=\x04\x95#\xcd\xb1^\xe4\xe2v\x07\xea*\xeet\xc3\
+\x8d\x13n\x00\x1b\xae\x80\xf7W2\x10\x10(\x9d\xd8U\
+\x9a\x17\x08\xec|\xbd\x97\xe8z\xf9A\x9e/\xd8A\x91\
+=\xafEe`v\xf4\xcf\xcf\xe7\xf9\x8b\xd8p\xbbD\
+\xc8\x01\x10+z\xba\xa9\xc7^\x90\xac$\x9b,y\xb9\
+$\x8f\xaa^\x1b\xbd\xba\x9e7\xa8\x15\x9d\xfb\x1e\xea\xef\
+\xfe9F\x1c\x15\xf3\xc4|\x87P0\xaf\xfc\xbf\x04\x90\
+J\x5cG\x86V\xe3\xdf\xb3\xab\x836\x0bPT\xba\xfd\
+\xbd\xc0\x7f9\xd0\xe6\xc4B\x0f\xbd\x16 \xf5-\x03\xe6\
+\x97\x0d\xdb<\xf3\xbc8&>\x87\xac\x1c\x8e\x03\xeb\xdd\
+\xe7\xf4\x09\x00\xaf=\xc7\xc4\x09\xbb\xc9\x0d+p\x14\x98\
+\x83J\xdfi\xce\x88\x17\xa9Mn\xfc\x95P\xe8\xd8\xe2\
+\xa3\xae?U\xf6\xcd\x1b\xac\xce\xdf\x09[\xf5\xa8\xe9i\
+4\x9e\xe6\xa9y\x06\x12\xae\x82,P\xb4\x0f-d\x8f\
+3\x19c\x06\x18-l\x98[\x99\xee0\xf7\xdc\xb5\xb9\
+\xb7\x0b\x11S-\x19d1\xa9\x03p\x808\xc2\x17\x9e\
+\x9ai\x96\x03e\xc8ub\xffr\x9d\x12\x89\xbd:\x88\
+}\xc6\xbe\xd0\xff\x9e\xe7\xd4\xcfo\x95s\x8e\xb5L\xba\
+\x80\xbd\x9f?\x12&\xf6A\x9f\xdb\xb3\xcf\xab\xdc\x82\xbe\
+\x1bw\xf3\xc3zs\xff}\xe5\xdd\xf5\xab(\xe2\x98\xd0\
+\xc3}\xf9\xb0\xd5<\xce\x9e\xc7R'\xb1^\x9c/d\
+\xdd<_\xeb\xc5\xbav\x1f\xceM\xe3\xe8z\xecc\x19\
+\x88n\xfe l%o\x94=\xee\x15(\x9b\xd7\xe6Q\
+Vn+02\x9e\xce\x0b\xd7\xe1\xfcC:\x0b\xba\xcb\
+\xe1P\xd1\xd3\xc2\xe1\xf7%X\xbd\x1f.\x10\x08(\x15\
+x\xa4\xe4\xb9\xbe\xe8hW\xa2\xfd\xb3a+\x96z\x8e\
+b\x87\xec*\xb9\xab\xec\xb5E\x0aW\xba\xd3*\xd1 \
+\xea\xe6\x9d\xeb6\x1f!_\xbc\xbf\x84\xf4\xf7\xc2V\x81\
+[\xcam\x15\xb42!\xa4\x9b\x8f\x87-\xfb\x02\xbd\xfb\
+\xd2/\x87\xfc /\x96\xfe\x88J1RBd\x7fz\
+\xf1\xabpb\xfdx\xffo\x85\xad\x02]\x15\xa0/\x85\
+\xad\x90\x18t\x9c%b\x9c\xc3\x1f\xce\xd6\xa6?\x9b\xd9\
+\xba\xb1V\xb7\xab\x9c\x13=\xa0\xaa\x9d\xaaEAY%\
+\x96\xb2uH\x8bA!\x1a\xd31\xac\xfb\x84\x8cHd\
+\xd2\xf6\x99a\xab@D\x00\x9d$a\x15\x80hQ\x91\
+`L\xf5\x93*\x14P;\x91@0N\x12\xdb}\x00\
+\xec\xff\x9d\x8f\xd6\xbb\xd6$d^\x0aU\x09\x81\x1d\x7f\
+9\xd9\xeb\xd3OB\x82\xb6}k\xd8TI\x9b\x10%\
+U\x09~\xc2\x1cp\x14Y\xec[\x12\x91\x92\x15_\x89\
+\x9f\xcd\x176\x9f\xdf|a\xd5\xba\xa4\x02\xad\xf2+\xc0\
+\x85t\xb5\x1fJ\x5c\xffCX;\xf6\xdf\xb4\xf7\xcd{\
+\x03\xa1\xf0\xe1\xb0\xb6m?$\xac\xfd\xfc\xc5{_\xb4\
+\xf7ES\x82k&+T\xe9\xbbH\xd8$\xf75\x91\
+\x9d\x8d\xf7\xc9\x1em\xcf\xc9\xf9k\x5c\xc8\x8e&\x99f\
+\xfb\xed\x89|o\xb8\xddp\xfb\xe1\xf6\x0b\xa9w\x058\
+\x12<7\x0a[\xd4#\xea<\x16\xc8A\xd8H$]\
+?lU\xa9\xb5\xde\x92\xfd\x7f\x92\x01|\xe0\x9e=;\
+7\x08k\xe3\xff\x94fOn\xaf\x7f2'h\xda\x98\
+\xbd|j\xb1\x85\x94\x01\xf9\xc6\x15v\x85\x99\xd4L\xe2\
+tx\xe1\xf0\x82\xe1\x05S\x01rB8\x95\x7fi\x1e\
+\x9b\x1fIbY\x89B\xadr\xef\xcfV\xa4\x9d\xb0\xd5\
+\xb8f\x85\x5c\xc5\x14\xa4\x1f\xf2\xa6\x0a\x87\xa9\x0fO.\
+\x17rc\xdf\x93\xc2V\xe7\x03\xb2\xc8\x17\xfe?\xca\xee\
+;\xdc\xb6\xab*\x1f\xff\xdd\xeb\xdc\x00I\xa4\xf7*\xbd\
+\x97\xd0\xbb\x80\x88\x80\xf4\x0eA\x10\x90@\x88\xb4\x00R\
+\x02J\x91\xde\x9b\x94\x10J\xa8\x82\x80\x22\x01\x04\x94\x22\
+\xa041\x01\x14\xe9\x04\x08 Hh\x92\xd0\xce\xda\xbf\
+5\xd6\x1a\x9f\xb1\xe6\x9d\x97<\xbf\xe7{\xc6\x1f\xfb9\
+\xf7\x9e\xb3\xcf\xdak\xcd9\xe6\x18\xefx\xc7;\x16\xe0\
+b\xb8f\xd8t\xfd\xf7\x0akD\x0b%~\xe2\x05-\
+\x84ZA$\xe6\x00Q\xe7*m\xb5\xbf\x08k\xc4R\
+\x93AU\x894m\x8b\x9cV1\xef\x8ec\x13x\xf8\
+ls\xee\x8a/\xb5\x9e\xd0\xcaH-\x03\x9f\xa3\x12q\
+\xf10F\xd3#\xc3\x9a\xfb-\xc1\xe7\x87id\xe8Y\
+'nz\xfb\xd4t\x03\xf4\x11GM\x00\x12`WS\
+\x5c\xb4\xb4\xb9>\xda+Z\x09\x1e\x18\xd60\xc6$\xc6\
+/\x0fk\x0a\x04]+\x91\xf3\xb5\xfe\xae\xffw\x0e\x13\
+\xb3\xcfV\xab\xd22\xc2\xe4\xcbi\x16\xc5\xc4\x13\xd7d\
+\xa1p{\x96\xb0\x86I\x95\x8c\x93\x02(L\x0b\xd0\xb2\
+qlX\x03\x80`Jd\x9cUb\xa6y\x9f\xb7/\
+\x0ak\x00\x11\xfe\x07\x93$\xf3\xf5\x12!\xa4\x15\x92\x80\
+\xd9\xde\x12\xbf\xcb\x0dl\xce\xe5\xbc\xd0\xaf\x9fj\xb2\xd3\
+\x07\x0e\xcd\xfcY5?\x0e\xaaOg\xaf\xc1\xf4\xc1\xb7\
+\xd7\x9d\xeczy@\x9f\xb7\xe9\xa5>z\xae\xb1/c\
+C^\xd7 PA\xacyi\x02\x06\xef\xcb\xc4\xfaG\
++U\x025v\xfan\xee\x0d\x1c\xee\x11\xd6 y\x12\
+WT\x95\x1c\xe7Rj\xbe\x906\x15\xaaL\xa8\x5c\x17\
+\xc7\xb5\xe7\xb0\xec\x9d\x80$:\x98\xfa\xc0\x15C@\xe2\
+\xbd\xa9\xca\xf3\xb2q{\xf5\xe8\xd3\xa2~\xf6\xbdl\x02\
+E\x81\xcdJa_\x0e@\x09\x8aD\xa2\xef\xb1\xbe`\
+\x89\xc5-\x819\x07\xd8\x8b\x09\x0a\xa0U\x1ezj\xa6\
+\xdf[+W\xa8\xd5Kb\xf1?y_\x86\x14\x01\xb9\
+@R)\xa9gR}\xe7P\xce\xd0M7\x00l\xac\
+\x14\xffe\xc1\x1b\x17\xe7\xdf\x01,\xbb\xfb\x8a&n\xdd\
+\x0f\xf3\x81\x89\x91\x9c\xbe\xfb\xfd\x9cW\xbf\xfd\xcfL\xdc\
+?\x94=2o\xcc\x03\xfa\xbf\xb6_\xd8~av\x8c\
+\xcb|\xd6\x04\x08*\xb1D\xe9\xe9\xd4\xb4\xf7|\x22\x1d\
+1\xc7\xa3B\xb7\xce\x83^\x02Q\xc0\x06\x07\xd0S\xf6\
+\xac\x87\xedi\xcc\xf7\xb5n\x88\x1d\xf6\x89\x9a\x04H@\
+$1w\xbf\xacK?\x8f\x19 \x81\x91P_+\x13\
+\xa4^\x5c\xcd\xd8F\xd4}s\xd6%b\x17\xeaz\xfd\
+}>\x9f\xc3\xbfK\xb0\xac\xcf\xbeW\x1aP!\x81!\
+\xc6\xe79[\x87\xfe_\x22\x9c\x0c\x8eb\xd48p\x8d\
+\x15\xbc\xc1\xa26[S=\xb4\x06|:\x9f\xa3}\x08\
+`\x90X\xe4\xfe\xafq-\x12G\x81\xdb\xed3\xe1q\
+\xbf\xadSS/\xaeX\xd4\xb8\xe5}\x01i\xfe\x9e/\
+\xbdZ\x12L\xfbN\xe2z\x91b\x80,\xdfg+B\
+!\xd6\xb7\x0ek\x12\xac\xef\xe4\xe7\xb3\xfes\x8a\xc1\x9e\
+\xe7/\x8c\xab\xba\xcf\x00\x01\xcf\xc9\xfa\xee\x01G@\x8b\
+\x04\x5c\xe2\xe8\xba\x04\x98y\x9f+q\xf6\xff\xd6\x0d&\
+\x12\xe0\xa5\x1fk\xe4::\xcar\x89x\xa9@\xf3S\
+\xd6\x11\xd5}\xa2\xa1\xa8\x85=`\xe4s\xa3\xa8;\xf8\
+]/&\x03\xe0Y\x05\x19s\xca\x97\xeb\xf5{\x80\x0e\
+~\x8e\xdf\xce}Q\x89<\xbf.A\xfe\xca\xa2\x8d#\
+@\xb0\xceP\x0ck_Y\xd7\xc9|\xab\x0al77\
+\xb8\x9e\x9b\xef\x01'\xc9\x1c\xdb\xbe4\xac\x11qK\x15\
+\xe5J\x98\xfa\xe9\x16\xd6\xa1\xfb\xa2\xc2\x9dc\x98\xeas\
+\x0aH\xf9)\x95\x04L\x22\xa2N\x02'\x22u\x02F\
+\x94rT\xe5\x0ct\x0a\x18\xc9y\xe6E\xa9\xcc\xc0\x92\
+\xa8\xd1~b\xb4\x80\xda\x18C\xf6\x88f=a\xb4\x10\
+\x99\xa4\x02/0\xcaBB\x01\x1d\x12\x08\xad\x0b9-\
+\xa7\xee\xff\xd3g\xdb\xb3yqXS\xf9\xcaJU\xf5\
+\x0a\xd3vC\xc5\xcd9\xcd%\x0e\xa8GSB\xa5\x22\
+#Q\xc4\x9c\xa0\x11\x91\x95\xb4\xf1\x22ak \x07@\
+(\x0a?\x0a.\xf11SH\xee\x16\xd6\x00/\x00\x1f\
+\x15n\xeb\xd9\xd4\x14\xe7\x85}\x88\xc1`\x7f\xf99Z\
+\x16\x00&\xcc\x03\xeb\x02\xe0\xa0\xe2\xee|\xb3\x9f\x05\xbe\
+\x9dfM=__\x00 \xeb\x95f\x8d\xf3Ze\xdd\
+\xb9\xf1\xa9\xd4\xb8\xd8\x9b\xfe\xed\x11\x09\xe0\xdaw\xb9\x9e\
+\x8c\x93\xa6\xce?\xa5\x83\xf3X\xb7\xc9\x0b,b[\xa7\
+\xe6T\xab\xd4\xc6\x9a\x99\x16\xafJ\x8d\xaa;7\xc00\
+\xb1\xb0\xd4\xd2\x18\x0f\x1d\xef>\x1e\xda\xb4|\xa4\xe8\xef\
+\xf0\xa0\xb0\xe9\xf5\xc0\xb0\xe9\xf5#\xc3G\x87\xa0(_\
+,lz\xff\xbfX\xc6\xd0\x0d\xaf\x9f\xecus\xa5\xf3\
+\xef\xe6Jg\xae\xc3\xf1o\xc7\xb7\x8eomz\xd6\xb3\
+\x15\xa3\xc6\xfde\xafvM\x95!\xde\xf9\xb4\xd9\xf6\x8c\
+\xf7\x0c[\x01\x9a\xf1\x8f\xc3\x1aJ\x7f\xc4\xef\xd7m\x12\
+\xff\x04\x1e<\xcf\xaa\xa8JLs\x9fmO\xd5r\xac\
+]\x00\x00 \x00IDATZ\xa6[m\xef\x1b6\
+'\x803%|JKg\xa0j\x1e7\xf6\xbeU{\
+`\xbchX#n\x16\xc0\xd8\xf4\xfb\xe3]\xc2\xa6\xd7\
+;Mv\xe7f\xde\xfa;\xa6\xac\xe4\x1d\xcd\xfa\xcd\xd6\
+\xa1\x02\x1cr\xfc[\xf9\xcd\x8c\xdf6_\x0d[[\x93\
+\xc6O\x86\xcd\x95\xea\xe5s\xe8MO\xcd\x04\xc0\x94q\
+\xae\xfc5\xbf\x11\x0ag\xa1q\xa6\xc0YL\xe9<7\
+\x86K\x85M\xe1\xd0aa\x0d\xc0\x90\x95z=\xdc\xc5\
+\x0cJ`\xcd\x14\x04\x0c@\xeb\xba>\xbf\x16\xd5|\x1f\
+\xf1t\xb5d\xf1\xab\x12C\x05\xad\xa4\x8a\xd7T\x8bd\
+ \x0d\xc7L\xf6\x8a\x06\xb8\xccDY\x01\xa9\xc6\x0cf\
+kQ\x01\x88k+\xed\xe2?0|\x14|3\xd1\x05\
+\xa4\x16s\xdb\xba\xa0\x11\xa0\x15\x09\x93$\x81\xaf\x8a\x0f\
+\xb4\xf4`\xe6u\xd3W\xb4\x06\xec\xd7rFT;\xb5\
+[\xaaG\x1e0\x98~\xb2\x98'\xe2Q\x1a\x22\xa6\xd5\
+\x00P\xf3\xfd7\xaf\x0bk\x12f\xcf%\xe3\x82jQ\
+T\xf0\x03\x08\x12\xe55\x1d/\x81E\xd3\xe7\x14\x98\x8a\
+9\xe0\xfe*X&\x00L\xc4\xbd\x80\xb6\xf7-\xda\x13\
+\x05\x94g>^L\xe6Y\xadu\xd5\xc4\xe1_\x88\x03\
+\xce\xe3I/\xd3\x8c\x0dM\xf1\xe8\xbd\xe3\x8b\xc2\xd6\x9e\
+\x8e\xf9\xe0\xf9\xdfT\x1f\xbcqR\xf3\x9e\xd8T\xcc\xf5\
+H<q\x99;Z\x01Z\xe0\xe5\xb1\xf1n\x11\xd6P\
+e^\x1e\xb6.\xacBR\xb2\xf7\x9e\x98B\xcdoU\
+\xc1\xf5\xbe\x1e\xb4\x85\xe2\x03$bX\x01\xb5\x83F\xa0\
+( \xf3\xc0Q\x04\x9f\xb9\xccC\xdcOMV\xa2/\
+\xb1\x01\x0cX\xf0=\x05U\x05\xc2\x01.A\xd0\xbbs\
+b\x8e3\xca\x80ws\x8e\xac\x88\x0a\x80\xcf\xd9%\x8c\
+\x022\x9fg\xff\x8a\xf8\xf2\xf9\x04\xf0=\xc5\xfd\xa7\xa5\
+\x86\xbfo/?\x04\xcb\xcf_\x07 \x90\x89\xac\xebw\
+ \x0b,%~\x12\xc3\x0b\xd6\x98\xba\xe5\xa0\x06<\x08\
+\xd8=\xaf_W\x8f\xf8r\xbfv6\x93\xc5}\xdb\xfe\
+f\xdbT\xf2\xcdi\xdd\x0f`\xf9y\x8d\x15\x5c\xbe>\
+\x95\xf7\xfb\x94\xec\xc1O\x80\xa2z\x89T\xd4\xa9\xb2\xbf\
+z\xb6\x12\xa3\xda>/\xac\x19\xc3\xa3\x97\xa8\xab\xa4W\
+\xa2\xa9\xa2*P;!UDQ\xe3%Lk%|\
+\xb9^Hm?\x06\xcd\xfd\xf2<\xf6T\x22\xb6\xaf\xca\
+q\xdd\xafN\x05\xb9\xefy\xb7.9\xa6\xacdT \
+\x0e \xf0\xfc \xe5\x12^\x09\x8c}A\xad]\x82\xa0\
+\x12\x0a\x18p\x9f\xfa\x8a-\x80\xc2\xf5\x0b\xd0PY\xad\
+\x0b\xbfG\xc5?\x01\x82\x9a/\xde\xb7\xf28h\x00E\
+*H7\xca\x84\x94\xc3\x14q\x0b,\x01\x02\xfe\xee\xbf\
+$\xd5\xbe\x1f\xa3\xe6\xefa&\x00&P\xf1\x1d<\xfe\
+}eH,\x7f\x07Ro?\xfa|\xaeO\x22\x02\xe1\
+7\x9d\xe0V\xd9\x9b\xff\xc8%\xc1*\xed\x03\x81\xf7\xa5\
+R\x13@\xc2\xe9`9}\x8d?\x5c\x9e\xfb:\xd6\x93\
+\x16\xc1\x12(\xa7\x7f+\xd5X\x95R\x9f\x9bX\x92\x84\
+\x87_\xf3\xea\xfd\xba\x1e\xefJ\x941# \xe0\x12\xe6\
+^t\xcf:\x03\x08\x9dV\x8b\x91\xe7\xd0\x7f/\xe1\x04\
+$\x09\xf0\xec+\xc0\x9b\xc4\x1b\xf5\xd8\x98\xa1~\xaa\x85\
+\xc0\xc3\xe7\xc1`\x10H\x00\xfehG\xf8;\xfc\xb0\xf5\
+&Q\xc1\xbc\xe9\xd5\xf0Un%\xe8z}U:\x88\
+le \x22q\xdb\xfesX#Z) \x11H\xb8\
+~\x80\x14f\x8d\xbf\xeb\xbe% [b\x80\xa8\xa4\x12\
+1~\x08\xd3\x00\xd0f\xfdx\xce\xb7\x0ck\x00 ~\
+\xddy%\x0e\xc8\xf5H\x1cx\xb8PX\xb3/\x88v\
+\x01\x96^\xb2P#7\xff\x17\xd6\xb4\xaePm\xb7\xae\
+/\x5c\xe3S\x97\xbf\xeb\xdc\xe6g:\x86U%\x84\xd9\
+\x9aX\xad\x02\xa8\xa1*\xa5*\x5c\xb9\x7f\xc7\x7f\x0e[\
+\x13\xea\xe1\x8aa\xcd\xf5w-J\x95\x00\xfc$l=\
+\xaf\x8a\xba\x8baE\xfd?+K\xd1\xa1\x1e=\xea\xa6\
+\x7fl\xcf\x1d6\xab\x93O\xb6\x8a\x16\x16C\x85\xc8\x97\
+\x00\x9c\x16C\xce\xe5.\xc6\x81\xe7\x84\xa2\xaae\x80?\
+\x12\xe0\x9a\x1e\xe0\xbe\xe4\x18\xb1\xfa\xfd\x04|\xa8]\xeb\
+M\xaf\x804\xcf\xd3\xcd\xf3\xc2\x1a\xaa\xb0\x96M\xfb\x01\
+3\xc4\xdfWXJ\xf1\xc1:\xe7\x89\x1cg\x00\x8dA\
+rZc\xff*!\xb0^\x01U\xce7\x00\x05\xcd\x98\
+\x04\xcc0\xfa\x00\x92\xc4\x02\x87o\x0c_\x1f\xbe\xd1h\
+*<1[O\x00W\x91V}c\x9e\x93\xbd\x88A\
+\x06\x104\xed\xbf\xe1\xc9a\xeb>S\x81\x1d?\x1a\xb6\
+\xc6M\xc3\xab\xc3\x1a@8\xa9\xed;W\xd9\xb9\xea\xce\
+U\x9b\xf3%\xcf\x87\x99a\x1b\xeb\xef\xee\xc3\xa1\xc3\x1f\
+\xaf\xda\x15\x12\x84\xe1\xd2a\xd3\xdfy\xd7\xf8\xee\xf1]\
+k\x5c\xb9\xbdE\xaa\xce\x1b/L\x0b&+\xfb\xe3\x97\
+\xc2\xd6\x0a\xb01\x8d\xb5\xfe\xce\xb6\x88xo\xcf\x15\xd6\
+\x14\xc6\x8c\xbdS\xc0\x01\x8c\xa9pb\xcc\xaa0\xa7\xd8\
+\xa1\x0a\xf7p\xca\xf0\xf3!*\xd4?[\xe6\xcc\x8b\xb7\
+\xb6\x17\x0ak\xc6}gk\xc2\xf6\x1ea\xcdk\x8cu\
+\xbbb\xa3\xce\x9f=\xd0\x05\x80\xe4\xfb4@\xfc\xf2\xd5\
+1\xd76\x1f\x0fk*\xa5\xc4\xe8\xf2<1\x8d\x04\xe5\
+\xbb(\xd9\xb4\xce.\x16\xd6\xbcO\x9e\x13\xc3qa3\
+\xe0\xb6\xb4\xe4d\xdc1\x5c;lz\xfd\xfb\xb0\xe9}\
+\x0f\x0d[[\x9a\xb5\x08H\x04\xf7cX\x12i]\x99\
+\xb9K~!\x0f\xd0\xa2\xac\xc0*\xbe\xd0\x0a\xa5\xd50\
+\x19\x14\x80\xc8Pj\x98\xc7\x03\x02\xee\x01\x91\xe2m\xf9\
+\x03 \xd8\xb9\xa7\xd5\xd5\x14\x99\x04x\xabR\xee\xbct\
+N+pe\x22L\x5c\xd3\x98\xec\xca\x17M\x8b\xd3\x1a\
+\x9e\xeb`s\xc6\xb0\x06\x18\x17\x87*\xccb\x12d%\
+\xbbZ\xdb\x00\x84\x87\xcdV\xcc\x9a\x9a\xd6`\xaa\xdc+\
+\xc2\x9au\x93\xe7H\xb5\x06\x00\x12\xe5\x9b\xe2\x1bL\x03\
+\x80\xb18\xec\xfe\xb3U<T\xf9\xab\xf8\xd3\xb9,\x1e\
+R\x00\xf2\xdc\xe4\x07\xc6;\xa6\xa8\xe4~\xad\xcc\xceI\
+Z{9m\x22\x1az\xe6\x96\x9ed\x00TK\xa1\xcf\
+\x07\xb0\xb5\x8f1t\xdc\xef\x143\xde\xbb{\xa5\xb0D\
+\x0c\x9f\xba\xaaN\xcf\xe9\xcc\x17\x1b$\xd8\x1b\x0b\x88\xfe\
+i\x9e8Z\xea\x89\x90|T\x94\xe1\xdea\xcd\x5c\xdd\
+k\xe6\x81\xf8\x85E\xad6\xa6c\xc7|\xec\xcd\xd1\xf9\
+`^\xb7$l\x9b\xfb.T\xb4Z\xb0z\xa0,\xb0\
+\x9f\x9c\xc6\xb8\xb7\x9ez/\x91\xfdR\x8aR@8%\
+j\x02y\x07\x93\x04\x00\xe2\xf4\xfd\xb0\x86\xf2\xd5\x8b\xcd\
+\x09l-@\xd7\xe3z}\xaf\x87<)F5\x06\xcc\
+\xfb\xf8\x5c\xeb\xd8\xc0\xe5\xc1{\xed\xa7\x1b\xf4sr{\
+\xd1\x0e\x81\xad\x9e\xf4L\xd4\xeb\xf3\x18\x0f(P\x15`\
+\xafc\xec\x96^\xd8\x1bge\xec\xaeY\xe9\x97\x10R\
+O\x97\x00C\xe0\xce\x10\xb6\xaa\xa3\x87\xfb\x9f\x0f\x80\x9f\
+\xe4\x9c\xe1SS\xb4HB\x02x\x91p\xd3~\xf0|\
+\xb7\xd5\xd2\x01\x00\xd8\xf7~iQ\xf8Q\xde\x8fo\xe6\
+\x01\xf5\xf9t\x94\xefK\x87o#\xf8\xe2X\xadg\xf7\
+\xd9x8cCz\x8aV\xf6\xe6\xd7\xfa\xf7\xd5\x8ds\
+)\x87N\xfdX%]\x02!\xe1\xc1\x94p=\xfd\x18\
+\xc9~\xcc\xa3\x00\xd8\xbf\xafS\x0f\xe6\xfbP\xe2ez\
+\xc3 \xc4\xff\x9b\xeb\xba\x0f\xa08\xee\xb3u-\x1a\x12\
+\xdf~]t\x95\xde=\xc9\xac\xd9\xf4@@\xf6>\xd5\
+\x81,\x90>oG\xe5\xf6\xef\xfe\x8e\xfb\xd6\xcf\xa7\x17\
+\x80\xdb\xcf=\x03\x86#U9%\xc6b\xae-\x11I\
+\xf7]\xc0\xd8\x8f\x85s=\x9e\xbfDY\xa0\x090\xc8\
+\xca\xcct\xcf\x97\xf5{\xce%\xb1\xaa\xc4[ F\x15\
+\xd6>\xf7y\x8c\x97<\xa8\xd6\xd1\xb2\xbf\x1d\xfc\xeeC\
+?u\xc4:1]\xc4\xf8;\xf79\x0f\xfcb\xe6x\
+\x1f\x142\x07\xbbq9o\x08\x9b\xde\xe7Or\xbe\xb3\
+\x8a\x9a\x00\x5cB\x93\xf3\xd9K\x04Nbh\xec\x12\xed\
+\x09\xeb*\x01\xe2z\xae\x00\x1f\x00\x15\xea}\xafQa\
+}\xf9<>?fA\x8a\xe6U\xa2\xe3\xb9\xf8}\x0c\
+\x05\x0c\x06\x88\xbc@%\xaf\xbb\x12l\x95b\x81\xbf\xca\
+s&p\xfce%\xe6\xa8\xe1\xfe^G\x05\xacu\xc5\
+\xaf\xae\xfbt\xf1wD\xe62\x90\xa8DL\xa5\x1b\xc5\
+\xd1\xf3\x96\xf0'\xe5\xb4>\x87\xfb'\xa1\x97\x98[\xbf\
+\x12^\xfb\xd1\xbe\x01\x18\x98\x82 \xc0\x02\xb4y>\x80\
+\x12\x9f\x07\xc0\xd3\x03\xd0\xd4\xc0\xa9-g\xa0\x17\xc3\x82\
+c\x5c\xf0\xe6\xee\xd3\xe7\xbc{\x8a`\xbex\x9d;_\
+\xa2\xbb\xde\x87\xff\x15\x10K \x01S\xfc0\xd1U\xe7\
+\xa7\xfb\x84i@\x9c\xd1x==\xf3\xcf\x9cmM4\
+QS=\xbf\xf4\x93\xe3\xd5\xc2\xd6\x9e\xdf\xa8\xfb\xce\x95\
+\xdf\x17\xccVq\xc0\xf0\x89\xb0&\xe1\x15o\xe4\xf9(\
+\x911f\xb0\x12g~\xd3\xe7\x95Xu\x00\x12\x0d\x87\
+\xe1\x0ea\xeb:\x1d?\x10\xb6&\x94\x05\xd8\x99\x9a\x80\
+\x8a\x0aH\x91\xf8\x98\xded\xbf\x12\xc5\x03\x88\x13\xe72\
+'=\x03\xd6\xe1ia\xab\xc6\xc7\xe6/\xc2\x9a\x9e\xd6\
+G\x845\x95\xd8\x0c\xeckjB\xb6\x92\x16\xe5\x15\x83\
+\xe4\xec\x1d\x10\x8c\xa1\xd3k\x01\xd9?\x98\x0a]\xcf}\
+\xf9\x0f\xff\xff\xa8\xd9\xd6\xfbj\xcc#\xff\xf1\xda\xa5\xa2\
+7\xb7:\xdc/E\xb8v\x92\xe1\xf7\x89y]|v\
+^\x17\xc1\xc0;\xe3*\x22X\x1a\x03\xc9\x1c\x00\xa4\xfa\
+\x5c\xe6\xd4\x0f_\x0bK\xad\xa2(|}p\xb2\x0f\xcd\
+\xcc\x81\x05\xc83\xf5*\xc7\x0cO\xbbm\xd6\x98\x1a^\
+0<\x7fxA\x03\x8ceb\xb1\xf9\xab\xb0\xd5\xcf\xed\
+\xdcf\xe7\xd6;\xb7\xc9\x0a\xfb_4c`\xef\x9e\x94\
+\xf9\x04\x8cv/\xbb{\x99\xdd\xcb4c$\x0f\x5c*\
+\x85%\xca\x97\x89X\x10\xf5\x83\xaaO\xecP\x8bL\xf9\
+\xf9<\xb7\xc4/U\xb1L\xffb<\xa5JzQ\xe9\
+\xcf\x9ej\xedAu\xbfv\x93X\xd3\x18x\xd8d\xd3\
+\xba\x1b\xff\x22,\xd5\xdc/\xbd2'\xb6W\x0b[\x01\
+\x96\xed%\xb6\x17\xdf^|\xa5x\x97\xa8)\x11L\xf1\
+\x84\xbc\x85\x96\xc0\xcb\x16\xeaw\x15\x8c\xb2UY\xe1)\
+\x94\x0cB\xcb\xa0\xa6\x5cd\xa5_BXc!\xdf\xb4\
+hE\xd4\xdf\xcd\x96\xaf\xe1\x85\xd3\x93{\xc1\xcc\xc0X\
+\xd6?\xe6T\xb6\xc6\xa1\xa6\xf3\x87\xc3\xa3\xc3\xd6\xf8b\
+|fX\xf3y\xed?\xad\xceD\xa7{\xc6\x90\x04Q\
+<\x90\xfe\x7f{dX\xe3\x8f\x00!9\xadi|w\
+X\xe3\xbf~\x1d\xd6\xe4=z\xec\xe5C\xe2Z\xfb\x98\
+H(\xed\x98\x04T\x8b9\x90-cZ\x94\x0a0\xa5\
+\xc9\x84qb\x1a\x92\xe7\xf6\x8c\xa5 \xbb=.\xaca\
+.\x01f\x14\x84\x00o4\x15\xc4\xaf\x00|ZO\x00\
+,_\x99@o\x9f\x1d\xf6[\xcec\xccO\xe7\x88\xf3\
+\xd3T\x0f\x22|\xe2?y\x0b\xd1Q\x0c,\xcc\xa0~\
+Z\x16f\xc3\x8f\xc2\x1a\xe0\x050v\x8b\xb0F\x5c0\
+\x19\x22\xe3;\xc2\x1a\xe6}\xb6\x8e\xd0\xacp\x8e\xd2,\
+*\x06\x86\xfb\x94co\x8d\xe3\xb4O7\xbf\x08[\xfd\
+\xee^\x94\x1a\xaa\xbc\xf3\x07\xbam3\xaf\x13B\x1f\xc7\
+\xdb5\xf2\x00\xfb\xf5\xda\x83ZcWR\xec\xa7\x16\xc6\
+[\xc2\x9a@Z u\x91<`\xaf\xb1\x04b\x9b\xf7\
+\xe6<U\x0e\x1f\xa0`\x8cY\xa7Z\xcfa\xd5\xbf\xf7\
+br\x020\xe2\x12O]z\xd5\xb6\xe7\xda\x9es{\
+\xce\xe6`@u\x11\xe8\xe9q\x93\xd8c\x1a$5\xa8\
+\xe6\x0f\xfb\x7f\x07\x111\x8f^;@@\xdf\xf7\xc4\xeb\
+\xb9\xdf\x9c\x06\x15\xdc\x97\x00\xce\xcfIX\xfbDs\x15\
+\xf9[~\x1eb\xf6\x83\x0c\xa0 V6\xf6\xffu\x15\
+\xf6\xbe\xc7Z`\xbd\x8eC[6\x9a\xfb\x9c\xe22\xb5\
+Q\xfe}\xa94\x09\x0c\xaa\xa7\xd9\x86\x94\x80\x00P$\
+\xf2T\xfd]W\x7f\x9d=\x00\xd23#P@\xf3\xf9\
+\xec\xf9\xef}\xaf\x07\xe2U\x95\x8f\x7f\xcc\x8aJ\xf6v\
+V@qr:@\xffn\x1dr\x8c\x12\xb7^tG\
+\xa0\xe5\xb9\xf9w\xcfy\xad|\xef+\xfe\xa8\xc2\xd8\xcf\
+\x0f\x97\xc8[o*\xdf\x1c\xb1\x80\xb8g\xaa\x9c=\xdf\
+\xdf}\xea\xe7&\xbbN\x89&j\xac\x84\xb5O\xbcO\
+\xab\x02\xeb\xf7T\xf8/\x98\x89\xc1\xe5\x129\xce^\xf7\
+\xfd\x008\xeb\x1f\xd5;\xc7yUe\xdd\xf5\xa1n\xab\
+\xd0J\xf8 \xb2\x806\xaf\xa8\xf1\x07\x875\xeb\x0f\x15\
+\xf0\xb5\x8b\x08\x9e\xde\xb3\xcd\xa1\xcb\xc1\xb2\xf9\xf7\xec\x01\
+\xc6\x14\x11H\x1aS)\x11\xb1\x0f\xb2\x82\xb5\xb9^V\
+\xc03\xe1\x9f\x9e\xc9\xb2\x1f\xfd\xfc-\xb2r\x9f\xfb[\
+\xc5\x7f\xfb\xee\x14o\xb1\xbePp\xf5h\xf5\xc8\xbb\xe7\
+j=\xb9\xef\x12[\xcf\x05\xc5\xde\xfd\x95\x10\xf5\x09\x9b\
+\x80\xfa\x8b\xdd\xdf\xcd\x0aq\xcd\xf3\x95\x18\xa0j\x9b\x13\
+L\x0d\xdb\x18B=\xf5\xd4\x81Q\xd4\xad\x13@!f\
+\x89\xc4\x12CC\x05\x17\xe5\xces\xc6|\xd0\x13h\x1d\
+\xfa|\x12S\xeb\xc1\xf3\x91\x80[o\xbe\x07H@\xf0\
+]\xafJ=d>E\x03k?\x08\xf8\xf5\x04{\x1e\
+\xc6uI\xe4\xba\xfb]\xcf\xc7\xfe\xc6\x04\x03\x84\xaa\xf0\
+$\xd0Y=\xf0*\xbd\x12]\xfe\xc0\xfd\xf49%\xee\
+*\x13\xf6\xeb*B\xbah\x5c$\x10[\x01\xab\xfb'\
+\xa0\x940\x12ot\xbe8\xa7\xddG\xfe\xcb\xe7\x048\
+\xb8\x0e\xeb\xd9\xfa\xcf\xf1\xbe\xa5\x09\xf4g{\x8e\x88@\
+\x99\xd8\x9e\x8aqUR\x00x\xde\x8f\xdf\xa0y\xa1b\
+\x04\x18\xe1\x073\xb1-\x11?~\x91\x1atR\x861\
+/$\x12\xd6aU\xec%\x8c*'\xa8\xe9I!/\
+\x95x\xa2S/\x0c[)\xc2;\x9f\x0akT\xd2\x05\
+fy~\x0cW\x0bk\x00&\xfb6\x81\x8a\xcd\xd7\xc2\
+\x1a\x0a7J-\xb1\xa9L@\x87\x1b\x845\x95w\xaa\
+\xe0\x00\x1c\x81&\xea\xb6\xc4\x08eX\xeb\x82\xcf\x97\x22\
+R\x00\xc0j\x19X5JfqC\xad\x08\x9b\xd7\x87\
+5\x0c\x91\xac\xa4o\x9f\x14\xf6[\x18U\xd4\xaa\x016\
+\x09T\xd6}w\x9e\x8agz\x80\xd9zVH\x11P\
+\xdb\xcf\xceQZ\x03g\x0e[\x81\x9d\x02,1Pr\
+\x1aQ%\xb0\xd1\xb25\xad\xe7\xf19\xe3s\xc7)\x80\
+\x1e\xf7n\x0f\x98\xe7s\xbf7U\xb5\x89,n\x97m\
+1\x5c+l\xf5\xcf\xa5\x99\x95\xf7\xbb\x98\xae\x07\x0f\x07\
+\x0d\x077\x05\x97\xa4,\x8f\xc7\x84\xcd\x94\xe4'\xcc\x94\
+\xe4\xcf.\xf1\xa2\x8a\xed<\xae\xef\xd7\x8d\xdf8a\xe6\
+\x1c\x96*\xfe~\xda\x07\xdf\xda|3\xc4$gx\xae\
+\x11I\x1b\xff3l\xaet/c\xea\xce\x12\xaa[\xd3\
+\xeb\xfc\xb5\xb6\xc0T%\xfeGa\xd3\xebU\xc3\x9a\x96\
+\xaan\xca\xd2\xac\xca\x7f\xd4\x0a\x00U\x81\x8cX\xdb\xd7\
+\xc3\xd6\xe7*\xf1p\x9eo/\x1d\xd6\xb4\x1a\xfcn\xd8\
+\xf4\xfa\x8b\xc9\xa6xp\xf7\xf4a\xd3\xeb\x1b\xc2RE\
+\xfdE3P\xb2\x8cQ\xbc\xd42\xe7\xbe>\xc7G\x97\
+\xd6\x9a\xe9^.yI\xfa)yLi\xe5\xa4\xc8n\
+\x89\x8f\xf3\xe3\x18\x05\xc4\xde\x14\x221\x97\x9f\x16\xb6\xb6\
+|\x8e\x87\x85\xad\xa2\xd0Z\xaa\x8a\xf9\x92\x80\xf2\xe6!\
+a\xab\x9f\xc4\x10\xc3D\x9ev\xcd\xd5b\xdfD\xb6\x13\
+\xf9\x0e5\xff\xaa\xe8cV`\xd6\xf0\xd7z\xea\x89\xf2\
+)\x94\x89\x1f\xe5\x1f\xf6\x8f\xf5\x92\x80\x88\xf1\x86\xc3e\
+\xc2\xa6\xef\x9f\x1e6}\xff\xae\xb0\xb5r^\x85\x0f\xf9\
+\x04\xf1\xdad\xa8\x19oZ\xda\x03*\xdf\xfc\x03M8\
+\xff\x9f\x80@\x891\xf3\xd3\xfc\x0f\x06o2\xca\xa6\xb8\
+l\xb2\xe6s`\x98\xe5\x94\x9a\x9a.p\xd6e]\xd7\
+~\xe9\xa6\x13\x00,*\x0e\x02\x04\xbbo\xe2\x07\xd7G\
+\x14^\xcb\xc5\x87\xc3\x1a\xe07\xa7\x08\x948\xa2\xb8\x8a\
+\xdfr\x0e\xf3g\xe2\xac~\xda\x16\xc6{\xf6\xde\x17C\
+\x22\xe3\x03y\xe8\xf8\xba\xb0\x99A3\x8b\xf3\x17\xb3\x11\
+\xc3\xd3xZcc\xe5\xe9\x18W\xa9\xe9\xb1{TX\
+3%B\xdc\xf6\x85\xb0\xe9\xf5\xd3a\xd3v\x9e\xd5\xfa\
+\xdf\x92cl\xa6\x04x8\xcbp\x96p\xa8\xd1\x015\
+<!\x0f\xa2S\x9a\xc4S\xa5]`\x99\x07ZQ\x8c\
+2\x10G\xe5(\x0a\x17\x15\xce\x1431\x8f\x90#\x84\
+\xd4\x17\x92\x07\xe9\xb2\x10\xfb\xc4\x9f\xba\x7f&\x00\x150\
+J\xbcQ\xa4-\x18\xe2\x10\x89\xb4T\xe2\xefsI\x9c\
+\xfb\x9e\x0c\x89k/\xb2g\x01\xa8\xcc\x08\x9c\xdc\x9f3\
+To\xf8\xa2Ep\xa9\x0c\x84\x05Z\xfeNG\xa1\xae\
+@\xa8Wu\x95 x\x7f\x01\x99\xf71\x976[#\
+*\xe0\xedZ\x01j\x01\xfb\x1e\x83\x00\xb2\x0f\x91\x97\x90\
+S\x0d\xcd\x0ay\x8d\xff\xf0\x5c\xf5\xc6\x0b\x8c%t\xee\
+\xebIy\x90\xff\xbac6H\xb41\x1fPdS\xd3\
+\xa1~\xce\x97\xc4\xdfu\xd9pz\x1fU\xa4\x12)\xad\
+\xf1,\xbf\x9f\x95\xcd\x8f&\x95I\xa5\xe8L\x09\xd4h\
+\x1d\x10\x80\xbb\xcf\xe6\xb1\xab\xac\xf5L\x0d\xaf>\xefJ\
+]\x5c\x9e\xbb\xc0z\xfd\xff}\xa9\xfd~\x7f\x1dc\xb7\
+\xack\xc0\x94\x0a\xb2J\xacD\xaa\x17\x19s]\xbb%\
+\x9a\xb8\xef\xf5\xd5I^\xaf\xcb\xf3\xb7nN\x8b\xe2\xdf\
+U\xdc+\xf1\x17\xc8\x0a\xe4\x1c8\x0e\x8e^\xfc\xd0:\
+\xf5\xbd\xf5\xed\x0b\xc2\xdb\x8fw\xe9\xdf\x97\xa3u=(\
+\xb3Dp\x88[\x99\x8b\xac\xc7X\xa5\xee\xf0TM%\
+f\xd4QR\x8b\xe1q\xc8\xbe\x14\xd3),\x98\x03\xe1\
+Jt\xdd'\xfe\xc1uS\x9f_\xc5\xcb\x96y\xb9\xc6\
+j\x11\xf3zIR\xe8\x9e\xb6\xf4\x16\xd7\xc1\xf3\x83\xb0\
+&\xb1Q\x99Uy\x96(I\xc8\xf8#\xfe\xd0s\x91\
+\x80\x9f\xae\xd3\x22\x90P\xf6\x01\x84\xe7\xac\x12\x98T\xc5\
+\xcdk\xc2\x9a\xcf\x09\x10\x13 \xaa\x10\xdbO(\xf9=\
+\x90\x881\xe0\xba\xcd\x11\xc6\x1c\x90\x90;\xc0\x89\xa5y\
+\x1f\x80\x81\x8a-\xe6\x86\xf5x\x8f\xd9V\x7f\xe9\xbe\xa8\
+\xfci]\xe8\xe7\xa9\x03V\xb4\x10x\xbe\x98\x03\xce\x93\
+\xbeE\xc1\x14\x01-f\xf6\x01\x913\x09K\xfa\xd9\x9a\
+*\x90\xd3\x1fj\x0a\x89\xe9-Z\x01\x00\x99\xbd\xf8\xac\
+\xf5\x8fQ\xa4\x95\xc4\xf3\xb4O\x5cg\xaa\x99\x131+\
+\xff\x9f\xeb\xa2\xc6;\x0a\x84\xfc\x1e\x7fa\x7fZ\xc7>\
+\xaf\xc4\x0a`\xe6|\xa3Ia\x7f&c\xa9*8\x12\
+1\xa2H*U\xb4\x5c^\xb9\xa8\xd9\xd7\xf3\xe95C\
+\xac\xbfT}\xaf^\xc8\x1c\xf76\x9c.\xac\x01\x90\x88\
+\xd2\x01\x1c$\xac\xd9\x1bZZ!\x8f^\xc6\x86\xd59\
+\x88\xa2\xe9\x1c\xc99\xcbE!Mj\xf6p\xe3\xb0\xe9\
+\xf1>4\xac\xd10\xc8\xca\xd4\xf0\x92\xb0\x06\xd8\xa1)\
+\x22@\xcb\x0aOi\x22\xb9^?\xaf\xc5\x02P\x94\x14\
+\xe4a\x0c[\xc5\x8ak>\xf6E\x17\xb1\xb4\xfa=q\
+\x89\xd6\x09\x899?\x802\x8cy\xa2\x82\x86\x9a\x9fS\
+\x03\x88\xd6\x15\x85_\xdc\xc1\xaf\xd8\xc7\x09d\x11\xc3\xdb\
+\xaf\xa0\xe1\xfc\xcaD\xa9oy\xa9\xfd\xea>\xd9\xef\xc6\
+\xecY\xbf\xfe\x9e\xe9L\xfd\xd8Q\x9aA\xa9\xf2\x1eR\
+\xab\xb3\xd8\xaa\xf3 \xc7\xbe\xfd\xe6\xb6\xbf\xb9\xddon\
+;\xfd\xf9\xb3\xed\x9eu7\xc6\xcc\xdd-l\xae\x14\xce\
+s\xb6M\xd9!\x22\xbbs\xf6\x9d\xb3\xedL\xfby\xe7\
+\x97\x93M\xebd\xe7\x12a\xd3\xff\xbf9\xc7\xde\xfdG\
+\xd8\xd2j1<vIp\xe2\xb9\xec~2l\xadh\
+Ng\xfcw\xe6s\xfe\xf6\x93\x97\xb9\xfd\x5c\xe1\x7f\xd2\
+\x5c\xe1\xc7`H&\xc5|\x7f\xfe)\xe3\xc1\x83\x9aV\
+&~\xbd\x1f\xe3\xba;s$\xd7\xca\xdf\xa3\xb6\x8f\xdc\
+>r~\xce3\xa3i\x9e\xf7\xfe\xb1\xa6\x82L\xdc\xcd\
+z\x8b\x96\xb4G6\x80\x9e\xfd\xf6;3\x17b\x05\x9e\
+2\xe1/\xd1\xcd\xd4\xc8PY\x1d\xbf\x1d6\xfd\xfb\x0f\
+\xc2\xa6\x7f\xbf\xf8R\xb9\x1f\xdf\xbfL\x07\xd8^k{\
+\xcd\x98\x22Q\x80C<\xbd)>\x1f\xff$l\xad$\
+o\x8f\xd9\xber\x9e\xb7\xfe\xe8\x14\x0f\x07\xa0J\xf4\x93\
+\x02>>+l\xcd\x17\xec\x87\x9a&\x22!%Ni\
+\xaa\xc9\x95RL1\xfd\xf0\xf8\xd9\xb0\xe9\xba\x8f\x0a[\
+\xf7\xf7\x0c\xa4\xbc\xbf\xd1\x22\xc8\x96\x87\xdd?\x0c[5\
+\x18\x86\x7f\x0bk4&\x12\x08\xd8|1l\xfa\xff\x07\
+\x865\x05\xc5\x9b\x845\x80\x8bxB\xfc\xc9\xaf\x02\xc0\
+\xbaV\xcf\x02\x06<'\xe7\x03@=\x19c5>4\
+\xdfg\xfcP\xd8t=\xef\x08[\xf7Ii\xb7\xa8x\
+c\x10\x02\x1e\xba\xe9+\xc5\x88\xd6\x22\x90\xc0\x01\x91\xd2\
+:\xa7\x9d\x0b*\xf2\xe2#\x05\xc1\x14\xd5\x9e\x9e\xf6d\
+\x0ds\x0b\xe3\x95\xf6K\xc6\xa3\xd5\xa2\x9e\x00R\x15 \
+\xc5\x0d\x00e\xfe \x99\x14%\xae\xba\xae\xeb\xe5|\xd3\
+\xa3\xff\xa0Ek\xae\xf22\xfe\x90\x7f\x11'\xc8\x8b\xe4\
+%\xe2Z\xcfO|\x84y\xcb\xffa\xa4\xe4\xd4\x91\xf1\
+\x17ak\x9c0\xfe \xacada\xa4\xe4\xf8\xd9\x8a\
+wR\xe3\xa0\xceM\x9an\xd9\xb2Ub\xb2y>\xd6\
+\xf5%\xf3j\xf3\x91\xb0\xe9\xf9\xffq\xd8z\xff\xf7V\
+\xc5'\x8e\xbf?](c{\xa6\x8d\xb59ys\xf2\
+\xdc+\x08\x19\x8ap\xf9'Y\x81\xb8z#\xce\x97\x0b\
+\xc5\x07\xab@&\x1fh\x89@\xb8\xb1z\x85\x8f[\xa8\
+1\xe5\xd0\xba\xcan\x89(\xe5\xb8\x8e:\x08\x04z\x07\
+u\xe3\xe4|\x0f00\xde#{\x94\xaa\xe2\x05\xd9\xb7\
+\xe1 6\x00\x00\x81G?\xdfZb\xd2\x05F\x15H\
+\x0b\xa4\x040\xc4\xc9\xce\x9dc\xfd\x1c\xcc\x1e\x8cDn\
+e\x08,\x01\xa6\xc0\xcf\x81\x0d\x00\xf0\xef~\xce}\x10\
+\x00B\xd8,t\xf7\xb3\xd7\x12\x90\xb0\xd8\xa0\x9f\x9am\
+\xad@\x7fa\x11\xcb\xab\x1em\x08\xa3\x0ai\xaa\x09\x97\
+\x0a\xb0\x03L\xa2\xbc\x8a\x08\xee\xcbD\xe8{\x81\x05\x0a\
+\x9e\x9f\xc4\xf4\xbd)*\xf4\x9bJ\x9ci5,\xd7\xef\
+\xbe\x00\x02T\x88\xcc9\xe5\xf0_2\xdb\x1a\x98\xa8\x90\
+x\x9eI\x0d\x07\x5c\xed7\xe7\xde:\xbdR\x1e\xc0\xd6\
+\x9fD]\xe0\xd8\xbf\xba\xbf?\xcd\xe7\xe0\xdfM\x0f\xf0\
+>*2*6}O.@\xa5\xa7D\xae\x09\xbe)\
+\x18Z\x22\x96\xff_[U\x96\xd6\x13\xad\x1f\x02\xb5t\
+\xf4\xdb\x0f-\x00\xc9\xe6&K/P\xedC\xd7\xeb}\
+<\xa7\xfe\xfa.\x90\xeb\x7fE\x9e\x17\xc7k_\x9c\xab\
+\xd4\xd2\xf7\x1d\x93\xd8O\xb9\xe8U\xde\x0fJ L\x80\
+\xe3\xdfWQ\xc0e\xbd\xfb=\x0c\x95\xcb\xed;\xce\xb0\
+\xd4\x90\x89\xed\x9c\x98\xf7\x190\xc5\xe1\xbb\xcf*\xc2\x12\
+G\xeb\xfffI9\xef\xc7\xc1\xf1\x0f\x02\xa7D\xa2+\
+\xb1\xf5<P\xc6\xad\xe3D\xf2+p'\xe6wr\xae\
+\xe7m\xf54.\xf7K\xa2'\x81\xb6\xdf\xdc\x1f\x07\x8f\
+\x00\xc0u\xf33\x9ec\xa7\x16_\x9f\xdf\x81e\x1e\xb6\
+\xef\xad\x03\x09\x91\x0a\x04\x8a-\xe0\x86\x1f\x03@\x00\x06\
+T\xec\xfc\x1d\xd7\xef>\x0b\xf4\xad\x1f\x00(@\xc3\xbf\
+K\xec\xb4(\xf4S\x07\xba\xb1\x84u=\xd6\x89\xeb\xa1\
+\xaa\x9f*\xee\xe5\x8f\xbd\xbf\x04DE\x14p\x80q\xd2\
+\xfbi\xbd\xd7\xfd\xb4\x16\x7f\xb7\x9f\x1e\x03\xd8H\x91\xae\
+\xed\xd1a\xcd\xdcs\x95q\xd7\xef\xb9\xea)\x94\x00\xf4\
+L\x89N$\xb1\x02\x1c\x88?\x11\x5c\x95\x14\x01\xb2s\
+\x01\xb3\xc2\xe7\xb3N\x9cg\x12\xb4N\x5ct\xbfq\xb3\
+\x98;\xa9\xfe^\x09i\xcey.`T<\x91\xeb\xb3\
+\xd4\xb61.P\x1b\x8da\xb5.\xf5B\xe6|\xee\xed\
+\x8d\xc3\xa6mxBX\xa3\xe6\x9f=\xf5\x05h\x01\x1c\
+P\x91%\xb2\xf6\x95\xfb\xc1o%3\xa8(\xb9z\xc5\
+\xf3\xdc\x1a\xef\x1d6\xfd\xffU\xc2\x9a\xd6\x92L8\xeb\
+\xf3g\xc0[j\xeb\x09p\xd4\x14\x16\x80}\xb6*\x95\
+\x7f\xce\x80\xad\xc4#Qy\xb3bC\xb3`{\xba\xb0\
+\xe9z~\x1e\xd6\x9c\xe3\xc6<ZO\xfc\x96\xe7M\x14\
+K\xe0m\xfd\xe5\x18\xc0\x02\xd6\xec?\xbf\xe7\xdc\x16\x80\
+j\xa5\x01\x08\x89Gz\xe0\x99\x9f\xf2~*v\xfc\x0b\
+\x7fD\x041\xfdg%<DZ\x15\x1c\xfc\xbe\xfd\x0f\
+\xd0\xb0\xaf\xad\x13\x1a@\x7f\x1f6%n\x97\x0a\x9b{\
+\xe9\x8f\x1b\x8f\x9b\xbe?(l\xae`/-\x12\xce\xff\
+CSK#[\xa3\xaa\x97x\x9b\x85\xf1\xa3\x97\xc4r\
+\xe7\x84\x9d\xe3w\x8eo\xc4Y\x0f\xdbs\xd8,\xbe\x15\
+\x05\x8c\x93W\x06\x8e\xc4\x16\xd0X\xda\x0b\x12Z\xd4\xe8\
+\x9c\x1f>k\xb5\x1f\x9b\x95\xd9\xfb6\x15Z\xc0\x9e\x16\
+N\x00\xde#g\x8b\x04\xff\x03s\x82\xafR\xfa\xb0\x5c\
+\xf7\xe2n\xd3\x90\x9c\x874b2\x0e\x99\xc7\xc76c\
+\xc2\xaa\x92\xad\x15W\xeb\xce\xc7\x97\x96\x89\xed\xe5'\xbb\
+\x5c#\xa2j\x8c\x22\x15\xfc\x98\xc6\x10\x89\xf6\xf1a\x8d\
+\xc8^N\xdb\x99)\xf1\x8fJ\x91\xe2\xeb4\x1a\x1e\x9f\
+M\x95\xfa\x8b\xe6\x18\xb5\x03\xb6{\x83\xa1\xb1=\x7f\xd8\
+\xaaUQ\xfb0\xf7\xf7\xf6ea\x0d\xa5\x1a\xe3L\x1c\
+\xa8\xf2\x9c\x05\xb2\xf1\x1aa!2\x9d\xdaT\xc6\x12\x1a\
+\xa7\x06\xb8J@~<5l\xf5;\xa6\x13\x10[\x1b\
+\xfe<l\xd6\x98\xf8FhL\x14#,\x13\xd5\xe1|\
+ak\xabE\xe5!\xf9|\xc6\x9b\x865\xda\x22\xd4\xef\
+1'\xcf\x14\xd6\x882*d\xd8o\x19\xb7\x94\xe6\x95\
+\x96\x1f\x22\x7f\x09\x88\x86\xe4e\x88^\xce\xcc\x8e\xd0\x12\
+\xf9JX\xf3\xbc\x01\x9a\xc6^k\x0dH\x86w\x89\xcb\
+\xe6t\x8cb\x12a\xfc\xf5\x8cL\xeb\x94\xf6\x96\xf8\xda\
+9%_\xc3\xe0\xc8\xe7X\xd7\xa1\x15D\x1e\x98\xcfu\
+|gX\xd3\xfa\x04\xa8\xe4\x1fRl\xb6\xc6\xf5\x01|\
+\xa9\xf1\xe7\xba,?\xe4\xf7\xb4*\xf1k\x00\x89~\xfc\
+n\xcf\xd4\xf4\xef\xb4f\xc4G\xa8\xfd\x18#Y\xd0\x19\
+\x7f\x16\xd60+\xb5\x80\xfd2\xac\xd9\x97w\x09k\x0a\
+7\xe9\xf76\xa7\x845\xd3f\x92\xa1Q\xad;\x18d\
+\xd7\x09[\xa7\x94\x98\x82\x83y\xb9\x17\xc5\xa9\xc6\x83\xe4\
+\x8dA\x1d)\xcaK\x1c\x1bo\x99\xde\xf0v\x93\xdd~\
+E\x1a\x88\xe7\x0c\xe7\x09k\x16Z\x88\x15\xdc*+`\
+\xcfZU\x15k\x5c\xce+\x13 J\x00\xe9\x94\x88\
+\xa2@\x08\xa0\x04&\x02|=\xe7\x0e\x98\x0c\x1c\xb7O\
+\x0f\x9b\xae\xff\x8f\xc6\x9b\x8f7o\x02P\x81\xa5W\x89\
+\xb5\x07\xec\xef\x08\xf0,\x8c\x95B\xbd\xefW_q\xb5\
+\xb0\xf3@\xdb\x9c5{t\x05h\x02\xf2sT\x22\x8d\
+:\xbd\x04^\xf9~\xdbo\x855\x09\xb3\x037E2\
+\xf6\x1b\x0bh\xe1IH\xfa\xca\xb3D$?\xaf\xf10\
+Ua\xfbI'\xc2\xf7\xe3\xa4\xde$5\xb8\x02\xa3n\
+\x9ca\xb5h\x18\xbb%`\x94\x00\x03$$\xaa\xc4j\
+\xf6\x1f[\xb8\xdc\xef3d\x00\xfb\xeb\x1a\xeb\xb8\xafj\
+\xb9\xe7\xef\x80\x12 \x1bK\x93\x1a\x085\xae\xc4x\x9e\
+\xa4`on\x9f\x01\xc2W\x12\xf89\x7fGy\xef\x99\
+\x1b\x02{\xf7\x050e\xfd\xf4\x89\x95\xd7\xd3R=\xf7\
+\xbd\x84qm\xf9X\xfe\xdf\x14\x01\x09\xa3\xbfo]y\
+\x9e^\xd71\x98\xfb\x8a\x86\xb8\x0e\x09\xafi\x06(\xa6\
+~\x1f\xc0\xa6\xf7\x8av\x00\xc7\xd5\x8b\xeb\xf8\xdc\xbe\x0e\
+\xec\xd4\xfa\x05d=s\xc0X\xc3\xf3\xe5\xfb\x5c\xbcK\
+\xb8%\x8a\x90\xce+&%\xdc\x01\xee\xfdT\x1eR\xed\
+\xbc\x12#\xda\x02*\xcd\xf6W\xae\xab\xcd\xb1a\x0d\xd5\
+\xd7}\xeb\xd5\xfeo\x1a6'8\x0b\xa2|\xed|\x7f\
+\x08\xb3\x0a\xaa\x80\xcf>t\x7f\xad\xa3L<\xca\xb1\x0b\
+\xe0\x1c\xa4^s:A\x05~?)Q\xa3e=\x9c\
+'\xef\x97D\x05P\x01h\xb0\x7f\xad+\x9f\x1b\xd2\xee\
+\xf7\xfaV\x13~#\x13\xea\x9a\x13\xee\xfe\x09(\x05\xfe\
+\xc6\xb8\xa5\x88\x92\x03\xb74\x04\xf4\x04Z\xe7\xfc)\xc0\
+\xb4\x03X\x0a\xa0\x90@\x02\x0e\xba1Gu\xe0Il\
+\x89%\xd2l\xe8\xc7?\xf5SUz\x00\xa9\xa7\xd4c\
+nYG\xd6\x81\x80\x16\xe5_\xa2\x0d\x08\xe0\xff\xb4\x84\
+\xf1{>\xafD\xa7\xf3\xdf\x12I\x95b\x09n\x8dO\
+\xb2\xef\x5c\xb7\xef\x89\xdd\x99\xe6\xa1\xd70E\x02\x8b\x89\
+ A\xe3W\x9c7\xb4\x0d0\x11\x00(\xfc\xb3\xfbk\
+\xbf\xb9^~\x9c?\xe4W\xf8\x19\xff\xae\x15\xc7\xf9-\
+\xe0;d\xe6\xd2\xac\x7f/\xee\xd2\x99\x1a\xcd\x18\xfb\x18\
+ \x90TM\x94\xc6R\xe1\xfe\xc7\xb0f\x1ff\xa2\xeb\
+\x9c\xdf<&\xac\x99\xf7l*\x80\x1e\xf3\xf7\x845T\
+U\xc0\x88\xdeOT\xd3\xd4\x08\xa81K\x12\xe3\xa7\x86\
+5cF3`/\xcd\x83\x95\xe2;3\x0dj?j\
+QK\xb1\xbf\xda_\x80\x00c4\xf9O\xf7\x09\xf0\x8c\
+\xc1\x87!\x84\xda\xec~gK\xc2\xe6[ak\x00\x8d\
+\xba_=\xf9\x18&\xa6\xe8\xe4s\xae\x16\x94\xae%\xa2\
+D\x0311\xfb\xe9D\xf6\x99\xf5 \xfe\x11\x08\xf3\x03\
+\xfd\xb4$\x8c\xcd\x04\x18\xaa\x95!\x7f\xbf\xa6\x8787\
+\xec/\xbf\xcf_\xd8\xbf\xf6\xed-S\xd4\x12\xd5\x17\xa3\
+B\xe0\x9c\xe7\xcax\xe5\xb0\xe9\xf8\xbba\xd8\xf4\xfd\x9c\
+\x09\xad\xad\xaa\xc5\x8cI\xa0p8\x7f\xd8\xf4s\xbf\x09\
+\x9b\x19BK\x22\x9dS\xac\x00x\xc3\xad\xc2\xa6\xd7s\
+\x0cg\x1f\xce\xb1\x02\xa6\x18]\x05XeB\xc5\x7fU\
+E\xf3\xbb\xdb\xef\xcd\xcc\xd9|\x9d\xd3\xa2\x83W\xa0`\
+\xfb\x9c\xb0\x068\xd4z\x01\xd0\xfa\xdc\xacz\x14\x0c\xde\
+\xb7m\xde\xda\x8c\x9d\xd4\xc2\x95\xdaW\xd5\xa2\x82\xa9\x94\
+\xfev\x8a\xf6O\x98\x13!Z\x0e\x0a\x13\xe9\xc7\x8a\x02\
+\x9e~q{\x9f\xb0\xf5\xb9\x8d_\x08k\x18\x1e)~\
+7\xf7\xee_b\xd5,\x99E\x07\xcf\x9a\x89\xdc\x8f\x9a\
+\xe9\x1a!\x06y\xc1uZ\x06\xc6K\xa9\xb0\xbf\xb9\xbb\
+.~\xcb\xb9\xf4\x07a\xd3u\xec\x86\xad~\x01\x03a\
+{\xf7\xb0\xa62\xcd\x7f\x98\xb3n\x9f\xe4\xbaW\xe9\xaf\
+\xe9!\x99\xa8K\xa4\xc7\xbf\x0ck\x00\x1eL\xa7\x04\xd6\
+\x00\x88\xc3U\xc2\x9a1\xaeI)\x8f!\x881\x06q\
+{\xf8\xf6\xfe!~^q\x90)l\xbf\x176}\xff\
+\xa0\xd9\xf6l\x8f\x08k\xb4K\xf8u\x050\xad\xb6\xbe\
+\x00\xed\xe6\xc7?2\x19!\xd6\x83\xb1\xa8\xd9\x1aQ\xd3\
+K\xc4\x0d\xceY\xf1\x8b\xc2)-\x11\xc0\xae\xf8\xdb\xfe\
+\xb4\xef\xce\x17\xb6^\x87\xfc\xae\xee\xfby\xc2\x1a&\x04\
+f\x94\xd6\xc4\xb5ew\x99~\xd0iuE4?\xb7\
+Tb\xcc\xa4\x86B\xe5\x05\x0a8\x98e\xce5\x00X\
+\x02$\xb5\x9frzB\xed\x7f\x0c\x08\xf1\x81s\x9f\x9f\
+Spt]\xf2H7R\x9c%>|\xc0\xc2<U\
+\x81W\x80\x1bv\xc3\x1a`\xad\x03\x12\xea\xbcI\xcd\xa9\
+\xcao\xf8W\x05\x08\xf7\xbf\x03\x08\x87_\x85\xadZ \
+\xd5\xd2\x90\xe7\xc3pTX\x00\x00_\x0aKd\xea\x9c\
+Y)}h\x13(?\x7f\xb6e|\xc4\x0fST\xed\
+\xb5M@\x82B\x9dH\xfa\xe6\xfda\x89\x84|cu\
+hE\x01\xf4A \xb5\xa8]\xd9\xd3P\xc8\xca\xaf\xba\
+\xca\xa6\xc4\xa5\x9f\x87\x9c\x01\x93\xde\x8d\xed\xab\x12\xd9~\
+\xcf\x82\xf8\xd5\x8d\xed\xc7\x96y\xa0\x0e8\x0f\xd2\x01\xd7\
+1\x11*\x01r==cA\xe2\xd7\x8f\xb9\xea\x19\x02\
+}\xa5\xca\xfba$\xf4\x07h\x06h\x95\xb8\xab \xf8\
+}\x8e\xc0\xe7\x83\xa8\xbb.\x88\x94J\xde\xe9\xb2\xc7Q\
+\x0f\x0e\xe4O@\x86\x11\x220\x97\x80\x09\x14\xb3\x92Y\
+\x15,\x15Q\x01\x01\xc7 q\xee\xb5\x19<G\xc0H\
+\xaa\xc3\x17SB\xc2\x09!\x04\x18t\xcc\x85\x02J0\
+\x19$x*84(\xde\x97\xe3z \x97\x10t\x95\
+,\x7fO\xa2 \x80w\xddk\xe5]\x0b\xc0\xbe\x09\xb9\
+\x0d\xd8\xbf\x12\x8b\xf3=FD?\xb5!\x9fG\xaf\x95\
+QL\x0a\xfb\xc0\xeb\x0a0,\xaf\xd6%\xe6\x07\x8a\x95\
+\x8aP\x06T%\x12h^w\x8a5V\xc2\xe6\xf7\xac\
+\x1f\x899\x87f\x1f\xad\x7f\x7f\xf9\xbb\xde\xc7sR\xb1\
+2N\xaa\xaf\x0c\xfb\x9c\x028\x95CS\x08z\x15|\
+\xafZ\x13\xbc\x1f\x84Vb)q\x93\xc0k\xa5\xf8\xf8\
+\xf6\x13\xdbO4\x07$*\xa4\xfb\xefs\xf9=\xea\xeb\
+g-`jIt$\x9a}\x0f\xba\xcah~\x9e\xe1\
+\xaea\x8dX\x97\x83 \xe7\xbe\xc7\x14\xe7y\x8e\xf3\xdb\
+31\xcb\xde\xdb\xed\x1d\xb7w\xd8\xde\xa1\xa1\x8e\xab \
+\xe8\x01\x93\xd8\xf6\xf3\xee\xfby\xf0\xee\xb3\x84\x02\xa3\xc9\
+\xe7\xb1\xdf\xf5\xde\x13}\xf2s\x0e\x16\xe3\xbd\xfc\x1e\xe0\
+\x0ac\x8a?\x90\x18`\xe0Xg\x123\x09\x0d\xff\x82\
+\x92l\xffA\xde\xfd}\xad@\xb40\xa8\xeb\xfa\xb2\x0e\
+<\x07\xeb\xb4\x1f\xc7\xea\xcbz\xb5\x7f\xf8U~\xcd<\
+cc\xdf0\x0dTvQx\xf99\xef\x9f\x01Z=\
+\x17\xfe\xd8\xf5\xf1\xc7\xee[\xee#\xe2^*\xb0U1\
+\xe6\xa7=_\xeb\x93\xfa6 B\xef\xa5\x8a9\xd1E\
+\xcf\xc3:p?\x00\x1f\x9e\xa3\x00\xce\x94\x00\xfbU\x02\
+\xcb\x0f\xf2\xb7\xee[\xdf\x1a\x07\xa0\xe0?zM\x9e\x9d\
+\xf9\xa4Xza/\xd0\x88.\xda\xcf\x99\x00TB*\
+\xe1\xcf\xd6@\xe3\xd3\xaa\x02o\xdf\x13U\x02\xec\xa5(\
+W\xad\xc3\xa4\xf2\x1b\x87X\x15\xfeT\xbf\xaey\xf7O\
+\x9cm]G\xae\x9f\xc8&\xa0\x095\x93\xb6Qj\x1c\
+T\xe5\x09\x83B\xe0\x9d\x15i\xbd\x9e\xf5\xb9\xb5\xc8\x10\
+U#f\xe5yIp\xf9\x13\xcf\x1d0\xfa\xe0\xb0U\
+\x95[\x05\xaf\x98m\x02`\xc0E\xb6,\xecy\xcbl\
+U\xb1\xab\x169\x9f\x03\xb54\xfdF\xd4[\xe7\x9e\xf8\
+\x9c\xa7^b\x7f\xfc{\x0f\x00\xf4b\xc6\x9e\x83}f\
+\x1f\xf8\x9eV\x05\x00S\xfc\xb22\xc0\x96u\xcc\x1f\xf8\
+\xbb\xe2\x85>>\xf0\xb9\xff!)\xcb\xdf\xcf\x0a\xea\x1f\
+-\xbd\xdd*\x91\xbb/\x0d\x9b\xdc\xeb\x0b\xc3\xa6\x7f\x7f\
+\xc22\x0e\xb8\x12u\xad\x19D:\xef\x166\xfd\xfc\xb3\
+\xc3V\x8d\x89\xe9\x94Y\x80r\xf7\x1de\xf7\x01\x9b\xc3\
+\xa3RLdk\xde\xed{\x9b\xcfG\x1c6\xa9\xd73\
+\xa3`\xbb\xc61\xe6\xb7\xd7}J\x80\xbaz\xaf\x8f\xda\
+>v\xee\xc5Of\xdb\x1c\xed\xbcfN\xbc\x16\x7f\x9c\
+\x8c\x87:W\xcf\x9c\x1a\x09D\x88\xb5J\x8aC\xf8\x17\
+\x00\x9cs\xd1\xf7\xfc\x18\xea\xfa\xc1\x16\xaf\xd9\x00\x00 \
+\x00IDAT\xdb\xc3\xe6\xf1\xa0\xcbz\xf8l&\xa4\
+ZH\x83\x11p\xf9\x86y\x9bj\xff1\x1cq\x9c\x12\
+\xf0\xf1\xa5\x93\xbd$\x81\x99\xbb\xae\x09\xdc\xdc\xda2\xdd\
+\x87\xe1\x7f\xc2\xa6\x9f\xfbiXS\x11\xcdx\x85\x88]\
+\xb5\x88\xd2\x9a\xb0\x0e\x88\x91\xa6\xca\xbe1g\x80\x97\xed\
+C\xc3\x9as\x1c\x93-\xd7U\xb5\x0a+\x0cx\x0e\xe9\
+7\xaa\xd2\x9d\x1ae\xa51\xf5\xdc\xd9\xf6\x8c'\x865\
+\xf1\x9bD\x9a\x88\xabs6\xf7\xd9p\xcb\xe1V\xc3-\
+\x9b\xc2\x09\x86W\xc6\xdf\xe3)a+\xc0Qj\xfc\xfc\
+`\xfa\xed\x02\x06\xfd\xbf\xf3C^\xa5P\x9a\x95\xefj\
+\xd58K\xd8\x9a\xd8\x97\x88\x9c\xbc\x05\xb3k\xd5\x9a\x9a\
+\xfd\xd2\xf6\xd6aM\x9c \x0eq>\x8a\xfb\x9d\x0b\xc4\
+/_\x1c6}\xff\xd4\xd9\xd6\xfd\xe3<\xb1\xfe\x88\x19\
+{\xfe\x00n\xf1\xaci\x08\x18\x94\x00\x04\xe7\xac\xbf\x9b\
+- un\xf1\xc3\x99\xcf\x96VL\xc6)5\x86V\
+\x82OlX\xfeg\xbf\xc8\xd3\x14(zqz\xfe\xcb\
+4\x22\xfeS\xa5>\x81\xf8\xc9?M\xd6\xb4\xd6\xc8\x87\
+\x89>z\x8e\x18\xc2\x18\x18\x09\xe8\x98\x1a\xa0u\xa54\
+\xa1\x14\xc8S\xb3\xa3\x18U\xc4i\x9d\xa7\xe9\x07\xf6\xd6\
+8\x1ccz\x88W\xe4\x98\x80Ru\x84\xd8%5j\
+s\xd9\xa4\xbaB\x8a\xf5l\xe8\xc9\x0d\xfc\xee\xb5\xd9\x22\
+p\x5c>\xd8\x7f\x9c\x03\xf7\xa5\x22\x84\xa2\x01\xb1\x16\xb0\
+\xfc\xb2*\xc0Kb\xd1S\x91{*\xb9\x0d\xfd\xe5\xec\
+\x951\x06\xe3Y\xb3\xad\x95\xd4\xce\x11\xd7\xfbK\xf0\xfc\
+\x7f\xdfc\xee\xd5\xbf{\xd0\xfd\xb8\xbd\xbe\xf7\xda\xc2\xf0\
+w\x04F\xfdX\xaf\xb5R\xbe/\x92\xdek\x0e\x98&\
+`Ni\x22\x92\xf5\xf9\xf5\x0c\xa9\x88\x9bC\xec\xa0u\
+\xffT\x8c\xbfR\xa2G\x8b\xa8KRo\xea\xc0\x05X\
+8\x88U\xa2\x88\xeet\xe2p\xcd4\x85\xe5\xf3\xfc*\
+?\x8f\xf7\xd3\x1bj\x1c\xcb?\x16\xd5\x7fA\xf6\x12\x90\
+ \x8eR\x81\xad\xcaO_!\xa4\x19\xa1W3\x13\xfc\
+\xfa{\xa8_]\x02[\x88\xb6^\xc2\x8b\xa5\xa3\x93\x88\
+\xd8x\xd6\xe3\xc1y\xc0l\xba\x0a\xc7\xb6K\xf8\xfbJ\
+}\x97\xc84\xc0\xd1\x12Xg\x05\xbd*g\x97\xc8\x84\
+\xb6\x9f3\xee\x80\xeb\x01\xac\xdf\xd4:[\xf6\x87\xf5\xa1\
+\x97\x1ce\x12\xa5[@\xefy\xaaDI\x9c\xf5F\xfb\
+\xfc\x0e\x1ac\xa9\xb2U\xa2(\xee\x17\xca\x80\xcc\xe7\xb2\
+n9\x5c\x81\xa2\x83\xe4\xf7\x12a\xben\x8a\xb2\xa5z\
+r!\xad\xa8\x8a\x02i\x95c\x22k\x9e\xd753\xb1\
+\x95\xf8Ax\xaf\x9b\xaf\x7f\x94=\xe5)\xe6\xb5yr\
+&\x5c\xcf^*)\x05p\x18\x0f(\xa1\xb5\x8f\x1d\xdc\
+\xd6\xa1\xe7\x88*\xe8s\xb9n\xfbY/{V**\
+q%^\x9aT\xcf\xcd\xdb\xc3\x9a\xfb\xec\xe0\xbeC\xae\
+\xf7\xabg\x22\x00\x91w\x1fP\x12%\xd2z\xef%\x86\
+\xd6\x87\xeb\xa3a\x00H\xe8\x9f\xab\xdf_[w\xf6\xe9\
+\xd9\xad\x83=\x13\xf6J\x88$\xa0\x00\x04\x22f\xc4D\
+%\x92\xd4\xea\xfbD\xa0\x17\x89\xf4|\xf93\xff\xcf\xaf\
+\x18[g\xdf;`\x058(\xaa\x00\x19\xeb\xa1gr\
+\xe9\x19t\xbf\x1d\xd0)\xaaC\xc5\xb9\x02\x0f\xfbR/\
+5m\x00\xeb\x19\x15\x8f\x16\x85@\x8e\xbf\xb2/\x00\xdf\
+IE\x16\xe0\x14\x03@\xa2*\x91\xe9\xa7b\xe8\xf9\xf4\
+~\x12 \x7fO\xc0\xea~9g\xb4\xa0\xe5T\x83J\
+,;q\xa5\xaa|\xd0\x98p\xde\x9c\x16\x03\xceuy\
+\xae\xde/)\xb1\x9b\x9b\x875\xd2#\x12\x07L\x91\x14\
+\x0b\xacqm\xc4\x08\x89\xed}#\xac\x11\xd5\xc2\x88r\
+\x7f\x5c\x97\xf3.\xf7\xb1\x04\x19u\xdf\xfbn\xef\x19\xd6\
+\xac?\xcf1\x03\xf2\xcd3\xc3~\xcb\x14\x87\x14\x05.\
+\xcd\x05\x15\xd1<gJ\x8b@%?\x13\x81\xaa<\xfe\
+:\xacYw\xb9\x8fJ\x940\x99\x09%J\xcc\xdfc\
+\x14\x09D\xf9\x17\xebJ\xa0\xab\xe5G\xc5\xde\x98\xe5\xec\
+=V\x19\xac\xf3\xdf9\x9b=\xb1\xb4Qj\x8c\x145\
+\xee\x9c\x17]\x22\xa6\xaf\x0e\x9b\xbe\x7fXXs\xfe\x88\
+\xbf\xdc\xd7\x9e\x19\xd9\x8f\xf5\xeb\xcf\xaf\x9e\x99\xd4\xaf\xaf\
+\xcb\xef\xdb\xd2\xd5\xb4\x0a.\xbf\xef\xf9\xa3v\xa7\xb6\x14\
+ w\xfb\xe0\xb0UE{<[\xd8\xf4\xfa\x84\xb0\xa6\
+\xe2\x88:\x9c\xcc\xc1bv8\x9fT\xd6>\x146\x17\
+\x10\x16\xed\xaa\x1b,@\xc0\xe6'\x8bz\xfc&\xc7\x1d\
+o>\x116\xbd\x9e\x10\xd6\xf8\xfd\x14\x91\xdd~2[\
+\x14\xb32X\xe7\x8f\xe7\xa3\xf2'\x1e$\x1a\x99\x15\xd9\
+YE\xffa\x8d\x9f\xbc\xfe\xbeZH\xd3.\x98{\x9a\
+\xabgY<\x01@\xe9\xe35\x80@\xfa\x99\x12\xa5\xd3\
+\xfb\xec\xbc7\xce\xee\xbdY\x99\xcd\xf8\x0dpg}V\
+\x82rr\xd8,:\xf7\x8c\xf1\x19\xa9\xc11%>\xe3\
+\xcb\xc6\x97\x8e/\x9b5\x01\xae=\x8f\x9d\x0cQ\xe0\xe9\
+\xf9\x0e\x97\x0a\x9b[Q\x0e\x9f[Q\xee\x136\xbd\x8e\
+\x9b\xdd\xcd\xee\x0c\xb4-~\xfdU\x8b\x9f\xa8\xb8Y\xc2\
+\x87i\xa7\xd2/1\x14\xf7$\xc3\xa5\xf2\x03~3\xfd\
+\xeax\x9d\xb0\xe9:\x9e\x15\xd6\xecG\x899\x91\xd3l\
+\x91-\x7f$1M\x8a\xfbx\x8b\xb0L(\x0f\x9f\x99\
+\x11\xd7\x08\x06\xc0p\xe3\xe1\x0fB[@\xa2gJ\xc0\
+\xf0\xb8\xb0\xa6P\x90\xeb\xbcT\xf7s]\x010j_\
+ZWy\xbeWk\x87B\x0eQT\x89\xb7\x845\x01\
+\x9b\xf1Va\xeb\xbe\x9e\xee\xf3d\x0d\xc3\xc0\xba\xe1w\
+\x88\xe9\xfa{\x87\x845\x09*-\x1ey\x03m0\xfb\
+\x95H|\xe6s\xb4\x04J\xdb-\xcfE\x00\x8e\xf8\xc9\
+}\xe0G\xb5*9\xff\x8b\xf1\x91*\xf9\x9b\xbb\x84\xad\
+\x09~\xf9\x9d\xf4\xb3\xc5d4.0E\xa2+\xf16\
+\x85\xc1\xfes\xce\x02\xc6\xb4\xb8h\xd1r_1\x972\
+o.?\xe6\x9cIm\x8c*\x00\xbb.q\x8b\xf3\x9d\
+\x9fs\xff\xd2\xcf\xd5ujm\xca\xd6^c\x01\x9d\x9b\
+u\xbee\xdc\xa1\x85e\xf3\x81\xb0f*N\xb6\x9e\xed\
+\x9d\x7f\xfc6M\xe0\xc41Pq\xcdq\x11\xd3\xf1\xfd\
+\xf8\xcd\xe3g\x04c\xa6\xceUOJ\x22P\xd5\xcb\xf6\
+\xd5\xb0\x85\xda\x1a\xa2{\xb3\x1a\xef\xc3\xd7\x9f\x9f\xc2\xa5\
+\x99\x026\xb9\xcdy<`mP\x95\xc1\x9e\xca\x08\x00\
+\x90`\xf8\xf2\xbd\x1b\xf6\xa2D\x04\xff8E'\x04\x98\
+~\xbf\x9f\x9b\xdcS\xcb\xfb\xc4\xbeK\xfc\xa9\xa6V`\
+(\x81\xc7\x1c\xe8\x12\xfa\xed\x0f3\xc0\xba\x5c\x06\xb6\x00\
+\x81\xdeq\xf5\xe2|\x16\x86@W\xe0\xe6\xe7]\xcf'\
+\x96\xcaf11|\x1e\x07#U\xd6\xa46V \xe3\
+}\x93\x82\x5c?\xdf\x8f\x1bt? {I\xdd\xae\xde\
+\x7f\x0bY\xa2\xec>\xa8\x5c\xb8\xcf\x0ep\x0eS\x85\x84\
+c\x92\xa0\xa6\xe8O\xa9?\x0b\x10\x05\x82)\x02U\x01\
+\xb8D\xce\xfdA5C\xb5\xcb9\xc3UYq\xbd\x19\
+xl\xbf\xb4\xac\xdb\xcd\xb5\xf2\xfe\x0d\x1d\x83\xc2\xf3\x10\
+\xd0\xf4\xe3\x19U\xbe{&\x09\x87\xf0\xcf\x89\xb4\x01:\
+$f(\xb9(\xf7\x90;\x09\xb0\x8a6\xea\xfcy\x12\
+\xe0\xd1\xeb\x0e\xf0\xd1Rq\xc6nn\xac\xe7\xa8B\xc7\
+\xb1I|\xde\x9e\xd3.T\xae\xfa\xca\xa3\xe7\xc5\xb1[\
+\x07\x02`\x88\xb1^F\xeb\x95\xd8\xa59\xe5*\xf4\x12\
+\x9a+\xe7\xe7\x82\x88K@\xbdRc\x97\xb0JL;\
+D\xbb\x02u\x09\xae\x00\xe5\xeeK\x05g:\xa4\x96\xf7\
+\xe1\x88}\xa9\x88gE\xb0\xa8\xc2z\xbe0W\x04\x9e\
+\x9e\x8b\xca\x9d\xc4F \x85b\xec@\x82|s\xdcz\
+,\xdd\x07\x95\xf0\x10]\xfd\xdb\xa6\xb2\x82\x02.\x00H\
+q\x96Z\x7f\x026\x89\xbb\xef\xf93\x075\x00K\xa5\
+Y\xe2\xd7k\x1d\x00X\xd6\xb1\x9f\xcb\xe7\x11P\xfe\xef\
+\xbe\x9a\x1dEE\x06\xa8\xe9\xdd\xce\x1e\xe8\xcdK\xc3\x1a\
+j\xba\xaf\x9e\x22\xdc\x8bU\xf6~\xce\xf58\x87$\xa4\
+\xc6;b>\xd9'\x12U\xf7E\xe5KE\x1f\xf5\x12\
+\xa3\xc3\xcf\xdb\xdf*r\xd9\x13\xa9\xa2[\xeb\xc6A\x8a\
+\x91\x92\x80d\x01!\x12SSr\xf8I\xd7\xcf_\x0b\
+\xcc\xb3b_\x95\x06\xd7#`%\x0a\xe8\xfd\x05Rz\
+\x01\x89\xfb\xf4\xadE(\xed\x98M\xbdx\xa1\x04\xc7\xdf\
+#.i<\x1d\x86\x89\xfd&\xe1\xec\x01\x80\x03;m\
+\x0e\xaf\x80aSKPZ}~c\xd3\x8c\xa9U\x11\
+\xc1\xb4\xd02\x97=\xee\xc3C\xc3\x1a?\xa1%\xc5\xf9\
+f\x9d\xd2\xf2\xe0\xdf\x8e\x9a\xad\x02\xbb\xda\xbf\xeb8\xe0\
+\xe5\xe7\xf9g\xfbKo\xa6\xf1u\x9e\xab\xfb\x07\x00B\
+\xbd\xcf1\xc7\xc6\xcb\x96\xca9U\xf5\xdf\x0bk\xa8\xda\
+\x99\xa0Z\x97\xa5\xca\x9c\x15\xb9\xcdo\xc2\xd6\xf1\x7f\xc4\
+\xea\xfa\x9e\xf9bH\xd9\x7f\x99\x98W\xe5\x08\x90\xa0g\
+\x1e0\x06\xa8\xc4\x0c\xc8\xc4\xd6|\xf8\xcd\xd3\xc3\x1a?\
+\x00P\xb4\xff\xac\x0b\xbd\xac\xf6i\xcf\xb4\xf9\xff;/\
+\xfb\xf8\xad\xa7\xcc\xfa\xbe\x9fK\xce_\xf1K\xe2\x0b\x94\
+b\xf3\xecQ\x81Q\xdb\x8f\x09\x9b.\xebO\xc3\xd6\x8a\
+\xafqr\xf5\xf9\xb2\xf2_\xd312~\xf5>T\xe1\
+\xdd\xff\xcdc\x96\x96\xa9\x9d\x8b\xec\x5ctgz>\xc3\
+\xcf\x86\x9f\x0eS\xfc\xbas\xfe\xb0\xa62\xabr\xab\xd2\
+\x99\xe2\x825\xcf<\xa7\x04h\xc1\xa8\xcay\x8e\xd3+\
+f\xa3\xfb\xe69>p\xb6\xf5\xdf\xbf\xbd\xdc\x8f\xed7\
+\x93I\xe0\xf3\xbd1+\xd4>W\xc6\x89\xc6\xe0\xd5\xef\
+\xe7\xfd,\xed$\x85\x95\xbc\xff\xc6\x95\xd6t\x0a\x1a\x1b\
+T\xd4S\xe3Ko}\x89\xb6e/\xbe\x8a\xfdx\xdb\
+\xf1v\xe3m3\x91}\xc8\xca|@\xd5\x9e/gz\
+\xfe;\xaf\xdby\xed\xce\xb4\xafv\xffi\xf7\xfd\xbb\x0b\
+\xf3'\x22\x9fh\xc9Xz\xe8\xb3G_\x9c!\x81\x1d\
+\x9e\x17\xb6\xaa\xc0G\x03\xf0\xdc\x02L$\x10\xe3F\x9c\
+N\x0c1[ \xc5\x19\xe3\xf5\xc2\xd6}b*F\x15\
+\x141p\x0e\x08[5\x22\xdc\xdf\x8aWs_N\xd7\
+}\x81h%\xd9\xde+l\x9d*az\xda\xe6O\xc3\
+\xd6\xa9%\xb4D\x86\xcf\x85\xad~t\xbceX\xd3\xa2\
+\xa0\x92|\xbf\xb0f\xdf\x12\xd3\xc3\xe4u\xee\xca\xab2\
+\xae\x1b\x1f\x12\xb6\x7f\x9e5<5\xac)T8o\x01\
+\xcf\x09@\xf2c>\x97\xeb/\xbf\x85\x11\xf8\x0fa\xd3\
+\xf7\x8f\x9dm\x8d\xd7L\xf1H\x00\xb5D\x0b\x8d)\xbe\
+iX\xc3\xc0\x030a\xfe\x12Q\x94?\x02\xd2\x00\x8b\
+\xe2\xb9\x04\x82j:\x01\xe6\x86\xfb$oI\x91\xde\x8a\
+Gh\xcf`X\x8a;\x01\x87\x803\xfe\x9d\x9f\xd4\xaa\
+\xe2\xf7\x00M\x0ao\x98=\xfc\xb3s\x0aC\x14\x00\xe8\
+|\xcdsK\xfcS\xfbQK\xc3\x1d\x929\xcaO\x12\
+s\xcc|i\xf3wak\x1e\xaf\xc5\x8d\x88\xe9^\xbd\
+\xdc\x150Ar\xb2WH\xaf\xd6\xf0\xc7\x8b\xe8\xdf\xf0\
+\xb6\xb0\x06\x09\x91\x88\x12\x8fyk\x8a\xcc8\x18?\x13\
+\xf6[\xc6z\xa9x9 :\xe0a\xbf\x03\xa4\xebA\
+\xafW\xbdv*,({'\xa4:%\xc7\xe6\xe0\xb7\
+0\x04\xa0\xbd\xba\xbc\xbf\xdf\x03\x01=@\xe0\xe7%Z\
+\x1c\xb6\x00\xd3\x03T\xf1\xb5\xd0z1\xbeS\xabu`\
+\xd9\x886j7\xce\xb0>?\x84\xcfF\x140\x10\xd1\
+I\xa0\xa5\x12\x19\xe3\xa8$\xdc*\x9d*K\xbe\xfa\xfb\
+\x8b\x12\x89\xe2\x06y\xa4\xcd@l\xe2\x92a\xab\xb8K\
+\xb5\x1aHH\xf6n&\x8b\x802\x06\xbf4\x07\xae\x9e\
+=j\xbf\x80\x08\xf7/\x13\xe7\xa2Rr,6\xa8\x04\
+,\x03v\x8c\x87\xaa\xb8\xe5x\x9aJ\xb4%h\x9e\xe3\
+\xaf\xbb)\x03\xbe8\xcc\xbe\xe5c\x9dJ\x80I\xb1\xac\
+\xff\x93\xb7?\xdc\xfep\xbd\x0f\xd3\xdfX\xd6\xc3/2\
+\x01\xe2\x182\xd0\xde\xdc:\x81\x18\x0c\x07\xe3=\xa8\xd5\
+K r\x1e\xf0~\xda\x0e\x00\x0f\xc8\xa4\x04\x19\xb5[\
+ \xae\xe7T%9\x1d\xf8\xf6\xab\x99\xc0\xebE\x84\x88\
+\xa3@rL\x02\xe7\xbeb\x0c\xb1\xfc\xd9\xb4\xeb~\xb6\
+>\x8f\xaa\xfc\x02\x16T\x90\xb3\x22\xbf\xb9\xf1R9\xd9\
+s\xa3\xdc\xff\x02\x1a\x22N\x1c=\xd10\xfb\xc0u\x9c\
+?\xefc?\xe6\xed\xb2\xe9\x98{M\x8d\xaegT\xe0\
+\xbe\xfd\xab\x0c\xcco\x9b\xaa\xefY\xf9*\x8d\x01s]\
+\x05n\x12*\xebR\x00j\xdfC\xc8\xf95\x8e<\x0f\
+\xea\xfaw\x01\xacDU%=\x03\x00\x89f\xcd\xc9\xb5\
+\x1f\x1c\x94I\xd9+j\x9a\xfd\xa0\x12M\x94\xcbA\xed\
+\xefz~\x90}@\x08M\x03\x15l\xfb\x1f\xc0h|\
+\x0f\x80\x01%^\xc5\x14\x85\x5c\xc2\x98\x15\xd3\xaa\xf8\x0a\
+\x84\xf29\x14\x80j\x8e\xfb\xcfk\x1c\xe8\xbe\xd3V\xdc\
+\xef~\xce\xae\xfd\x00P\x02\x1c\xa2\xb4\xdb7>\xbf\x16\
+\x83\x5c\x8f\xa5\xf1\x80\xe9\x82A\x80\x22+\xd1\xb4\xdf\x00\
+v\xf6\x15\xe0W`\x80\xe9F\xd3\xc0\xbe\x10\x88\xa1\x8c\
+\x1b\xeb$\xc0\x10H\x08\xcc\xad{~\x075^B\x96\
+-M*buN\xda\xdf\x00&\x80\x85@\xa0\xbb\xfe\
+\x02d\xfb\xa93^\x05N\xfc\x9c\xf3\xa9\x1f'\x09\xe8\
+3\x9d\xc2\xf9\x84bi}^zNy\x16J\x7fK\
+a\xe5\x1f\x00\xc2*\xdd\x184\x12o\x81\x96\x00\x8a\xbf\
+\x07tX\x07\x02?\xe7r\xc7$*\x0a\xf1\xc7\xc2\xd6\
+\x9e\xdajU\xb4\x8e}n\x22z\xce\x8d\x8eI\x12\xde\
+~\xdb\x02\x85\x02>\xbd\xdf)\xf25^!l}\x9f\
+\xe1\xeca\xd3\xff\x9f\x12\xd6T\xf2\xadW\xfe\xf5y\xb3\
+\xad\xe7\x021?\xcf\xd7\xf9\xed\xb9[\xc7\x00J\x80\xb3\
+\xfd\xc4O\x00\x00\xf9\xb9L\x9c\xaa\x95\xcf\x18\xbd\x1c\x07\
+Z\xda\x0bc75\x060\xd4\x8b`\xf9\xea\xe3\xb6\x1e\
+ \xe8\xff\x1f\x90 \xde\xe1\x0f\x00\x09WJ`\xedk\
+y\x9fQ\x80\xf3\xdc\x1a\xdf\x1a6\xbd\x1e\x12\xb6\xb6.\
+l\x0f\xdd\xdem\xeeE?wX\xa3v\xfe\x82,\x14\
+a*\x02\x80\x01Vz\xeb\xb3\xa5\xb0\xc4\xb4\x1e\xb3\xf4\
+\xcc\x0e7\x1dn6\xdcl\x1e3{l\xf4\xa8\x0f\x9f\
+\x0fk\x00!\xe3\x06\xc5\x0fz\x8a\xf9W\x13yh\x82\
+\xa4\xa8\xdd\xf6\xdb\x99\xc0o\x17@\xb2\xce7\xeb\x9b\xf6\
+\xc8e\x93\x09w\xa6e\x9f\x94X\xe21\xc9\xa0\xb9d\
+\xc6\xf3Y\x00\xd9|6l\xa5\xb2W\xdc\x9a\xbd\xef\xb5\
+\xff\xdc\x07\xeb\x12\xd5\xb9o\xedD\xd1&\xb2\x99\xc0$\
+q\xba\xf1\xa4\xb0F\xf4.\x81\x81\xed\xc1\x93\xfd\xce:\
+\xdeof\x1e\x7fpZFGL\xf6\x80&\xe1\xce\xc4\
+v\xf8\xbf\xb0\xe9\xf5\x05ak>!\x11\x1a\xee=\xdc\
+g\xb8\xcf\xecwf\x7f^\x89\xa1\xf35\xe3\xed\xf1\x15\
+a\xd3\xef\xfd0l\x05\x0a\x89\xf7\x95J\xfb9\x971\
+\xe1z\xd3\x89\xd9\xf17\x9b\xef\x855\x80\x1bJ\xfc&\
+l\x15\x07\x04\xe4\xd5\x18\xc2#C\x8eq\xfe|\xd7\x9b\
+\x81\xb7\x9cN5\xdc>l\xf5\xa3\xa5\xd2\x9e-\xd9\x95\
+`\x8ac\xf2<\x19o\x17\xd6$\xb4\x0ae*\xdfZ\
+\x83\x00v\xae\xd7~\xe5\x0f0FS\xa4\xb4\xf6O2\
+S\x86;\x855@\x80V\xeb\xd4T\xa8)A\xd9J\
+US\xb7\xc4C\xe2\x1d\xd3\x04L\x03\xe8\xc5\xdb\xfb)\
+F\xceQ\x1a\x08\x00\x0e\x95yb\xc4\x80_\xf9\xc6\xc3\
+f[[-\x9c\x7f\xe24\xcc*yEN\x85)\x86\
+a\xee\xd3\x8a\x13\x14\xc6\x148\xc5\xd9\x0a\x0a\xee\xa7\x16\
+3\xad$9\xbd\x8b\xa6E\xfd}b\xea\xb4\x12\x8c\x1b\
+\x14\x7f\xfa9\xf9\x90s\x10 B\x13\x81\xc6\x99\xf3\xce\
+\xff\xe78\xcb:W\xedgyO\xe6\x8d\xc6\x96\xda\x0f\
+{+@2\x1f0\x1d\x1e\xb5@\x15\x0e=S\xe3\x8d\
+\xc3\xd6q\x1c\xd5k\x90\xbd{\xa8!Eq\xe3\x18!\
+A\xa89*\xa4\x10v\x0b\x03\x00\xe1\x86\x09\xec\xfd\xbf\
+\x00FB$\x10\xb4\xe0\x05<\x1eP\x22\x95\xe5\xf0\x04\
+`\x02(\x0b\xd5\xeb\xb9j\xce\xf7r\x10\x09\xb8\xfa\xef\
+\xfb\x7f\x170\xf5\xbd\xa7~\x0e@\x00\xe1\xee\xdeo{\
+\xea\x12\x18\x04!j\xd3\x8aW\xf5\x09\xb9\x83X\xc5\x90\
+\x03\x87<'5\xa8\x12\xd7\xff\xc8\x00\xe7\xe8\xd9jN\
+l-\xb0\xdch\x9bC\x12\xa0Au7\x06\xcf\xf8\x14\
+\x08\xea\xdfe/\xd9\xef\xa4C\xc8^\xaf\xba>\x14j\
+=\xb5\xe7_Da\xa6\xcd\xb8lP\xc8XG\xc9-\
+Q \x22Q*\x986\x869\xda\x9d6\x00\xcaP9\
+:\x89\xa7\xc4d\xf74z\xe9{\x8d\x09\xcf\xef\x97\xa5\
+N\xbcT&\xfa@\x07`\xe3\xa0\x04\xb0\x18\xabs@\
+\xae\xcf\xa48MI\xfd\x12\xa8\xb9\xdf\xbf(5\xf6\xe5\
+\xfd9<\xc0\x08`\xc0}\xe2\xe0l\xec\xd3{\xfft\
+H*S(\xd4(\xb6\xb9\x8f6w\x0ck\x02L\x01\
+\xba\x84D\x22\x96Z\x0c\xa8{\x95\x18\x9eR\xbd\xfe\xfb\
+\x8aJ\xc6t\x87\x1f4\xc0\x1a\x87\xae\x12*\xc1\xbcq\
+\x06\xec*\x91z\xc0\xcd\x956\x86M\x02p\xab\x0ct\
+/\x5c\xea\xebK\x00\x9e\xd3\x04\xea\x80\xbdb\x02L\x12\
+]\x01?\x8a\xbc\xf7s\xdd*>\x02\xfcTy/\x8a\
+\xb0\x96\x06\xcfY\x22\xe5@s\xbf\xadC\xf7\xc5:\xb0\
+\x0f\xadk\xf7\xd7\x17\x06\x0a@H\xc2\xea:Ub\x05\
+\xea\xc4}\xfa\xde\xda~z\x86\x04\x05 \xe4~\xf0\x13\
+\xd6\x17&\x03\xa0@\x22\xe6@\xb3\xaf\xf2\xf9\x0a(\x0a\
+\x00\x10\xc0\xbb>\xeb\xc8\xbf\xaf\x9a\x16\xcb\xfat@\xf1\
+\xab\x0e\xa2~\x8a\x07?\xd9\x8b\xeaXg\xde\xdf\xbar\
+P\x03:\xf9S~\xc2\xfb\xaeS;\x96\xf7\x11\x10x\
+\x8e=\xb0\x83\xb9\x05\xd0\xfe\xfd\xb0\xe6\xef\xdb\x7f\xc6\xf1\
+\xe9%\x07\x08\xb8\xcfW\xc8u\xf3\x9f\xd93L\xcc+\
+\xb5\x1f\x8a\x01\xe2\xb9\xaaL\xbbN\x01\xbf\x84D\xcfb\
+\x8eg,\xc0\x03\xf0\xc6\xcfR\xcf\xc7 \xf0<\xf9A\
+\xeb\xcf~\xf0\xb9\xbdZ\xf7\x02\xfd^\xdc\x08\xf0\xc8/\
+\xd9\xc7\xd6!\xff&\x9e\x08f\xcc\xe1\xcd\xb9\x9b\xfb\xbf\
+\xd6\x9f^Z\xe7\xb0\xbf\x9b\xad\x00\x05\xb0h\xc5\x01\x04\
+h54\xb6\xcfu\xe6:*\x06Q\xc70\x8at!\
+\x12\x86\x02\xb6<7\x81\x1ej\xaa\x1e\xeb\x04\xf2\xea+\
+\xe3\x8c\xcd\x1b\xc3\x9a\xfbJ\xa4\xefma\xcd>V\xe9\
+Q\xf88\xc3<\x07\xa1D\xa7\xaau&\x13\x85\xbao\
+\x98\x08\x02u@\xa0D \xd75jg\x05\xc8\xd6=\
+*\xadJiR\x8d\xeb~\x89\x7f0/\xb2\x05\xa4D\
+\xe9\x88F% V\xd7\xd3\x17\x0a\xfaVJ\xe7'\xff\
+\xd4\xb7\x02\x00\xcc\x8dus\xee \x04\xf4\xa2\x9a\x9d6\
+E\x89\x90%\xb3JAc\xf7\xd8\xb0\xac >\xabY\
+\xa7\x7f3\xcb\xc7\xed\x99\x1bP\xdf\xd9\x00j\xa7\xcb\xe7\
+v\xe0\xf4)\x0el\x9e?\xc6\x9bD\xfb\xa9K\xe5\x7f\
+\xf8\xcd\xf0\xeb\xe1\xd7\xab\xca\xfb\xce\xd3w\x9e\xb6\x13\xff\
+~\xccp\xcc\xce+\x1b\xf1\xebl\xa9\xd9\xfd`\xd8\x1c\
+\xef\xbes\x8ewo\x9e\x14\xfe?\xd9\xdc3ZgK\
+m>\xc5\xf7&o\xf3\xf1\xed\xc7\x1b\x0d+\x05\x0f\xc0\
+\xb6x\xc6\xfa\x07\x84\xb8\xff\x00V-\x90\xdf\xcaV\x90\
+l\xed+\x91\xef\xbc_\x80\xd8)\xd6\x98\x13\xb2\xed\xed\
+\x968\xbe*\xc6\xee\x03\xff\xc9?$ W\xbd\xf0\xc6\
+\x8b\x1d\x1d\xd6\x00W\xe6\xcf\xffW\xd8\xf4\xf7\x1f;,\
+\xe3\x11S\xab\xa0z\xf4C\x1c\xee_\x17\x11\xc1\x99R\
+?\x9d\x0a3s3\x19e;\x9f\x0dKm\x84`\xb2\
+^(l\x05\x1abX\xe2L\xf1\xber\x8a<^7\
+lm\xfd\x19\xae\x1f\xd6\xe4\x13*\xdf\x07\x875\xf1\xac\
+\xd6\x06S?$\x8a*\xfeZLO\x08\x9b\xde\xff\x7f\
+\xc2\x9a\xf1|\xa8\xf7\x19W\xd4~\xc4\xf4|[\xd8\x9a\
+_\x11\xd7\xae\xe9'\xa9\xf10\xdcj\xb8\xf5p\xeb5\
+_\xd9\x9c\x186\xbd\xfelaJ\x0f\x7f\x19\xb6\xc6%\
+\xe3\x1d\xc3V\x7fY\x80\x00\xe0;\xf3\x87*\xcca&\
+bvg\x8b\x08j\xf9xXX\xb3\xdf.\x19\xd6\x88\
+\x8fk\x91\xc3lt\xde\xd9?\xfc0\xffm\x1f\x03\x00\
+\x14\x04\x9d{\xfd\xd4\x1fL2\x05\xbd\xa4\xf4\x13\xd1\xac\
+V\x0b\xc0/\xd1W~\x01CQaI\x9c\x05X\x04\
+\xa8x\xbe>\x87\xfbb\x0c-\xbf\xa4E\xd4\xb9\x08\x08\
+\xe0g\xf3\xbc\xd5jTZ6\xce\x07\xa2\x8d\x982\xc4\
+3\x01j\xf9y+/\xc6\xf4\xbb\x5c\xd8\xf4z\xa3\xb0\
+\xe9u\x08k\x0a\x03\xce\x03\xe7\x8f\xfb\x0aXHf\x97\
+\xb8\xa1\x00\x05\x22\xc7)~\xa8\x05q/dz\xf3\xd6\
+\xb0i\xe3\xbdt\xe7e;/[)\x82\xe3\xd9\xc3f\
+J\xdbL\xcd\x1e\x9f>>m|\xda\xdc\xc3s\xad\x98\
+\xeb\xb9\xf3\xb8\xb05\xf0\xd8\x1c\x99\xe3\x08<\x88\x1e\xa9\
+O\x84\x86\x1a\xe4\x9ew\xa4C\xbc\xe7\x22R\xb0y\xc5\
+\xe6\x98\xcd1\xcd\xc2\x13(\xe7\x81R\xa2\x16\xa8\xdcY\
+\xe9\xad\xc0\xf2\xac\x19\xe8}5+\xe5\xd4\xf5\x89\xc2q\
+\xf0)\xc6T\x01\xbc\x00\xd6\x02\xb5\x108B\xea\x8cI\
+i\xaa\x84\xab\x9f.\xe0U\xef\xef\xc9Y\xf9R\x99=\
+%\xff\xfd\xe7Y\x0981\x13\x87\x8f%\x05\xde\xd8B\
+\x81\xbd\xeb\x81xy\xff\xac\x84V\xc56\xa9\xe0S:\
+>\xf7\xb0\xf5\xa2\x19\x05(<n\xb65\xe0J\xb1\x98\
+\xed\x9d\xc2\x9a\x85\xbe&\xacK\x80\xde\xabC\xab\xd0\xfe\
+W&\xa8*\x0bWY*bDt\x0a\x91\x15\xe0\xe8\
+M\xf3\x5c\xcc\xbb\xe7(\xf4\xc2y^(\xf1z\xc0\x05\
+\xb2\x0e&\x01i/\xa2'\xa0\xee\xe7\x98w\x22%\x1c\
+\xe4\xe6\xf7\xb2\xe7\xcf\xff\x7f/\xff?\xc7\x8f\xd4<x\
+\x0eC\xa2\xe79q8\x12\xa4\xf3l\x7f\xb9\x8d\x8d\xbe\
+\x93\xe3\x9dN\xca^\x9e<\xf0\x03\x0f\x9e\xff\x1e&\x8c\
+\xdec\x15O\xe2:y\xf0\x94\xc3\xf4\xb9\x13\x18\xab\xfb\
+\x99=nUQ\xbfEX\xc3\x88\xb9G\x06\xe0\xf7\xce\
+J\xa2\xcf\xe9y{\x9e\x1c9JwG\xcd.\xcd\x80\
+n\xfaCQJ\x8dcR\x11K\xe4\xb2\xe6\x92C\xac\
+\x05\xf6wN\xc0\xe22\x99h\xdf4\xaf?{&\xeb\
+\xf9J\xe0\xee\x98\x80!f\x80DV\x82o\xec\x95\x83\
+\xb0\xd3$\xa8\xde|=]>\xb7\x1eB\x89\x97\x9ev\
+\x9f\xd7A\x22\x01\xe3\xc8U|{\x91\xb9\x9eR\xed \
+\xb1O\x12\x98\x91\xd8\x15\x03\xc4s\xe9{\xb1\xbd\x8f\xd7\
+\xbe\xa7\xd6\xba\x97\xf8Q\xf9G\xa5VQR\xe1r\x80\
+\xabd\xba\xde\xbe\x07\xcdA(AWa\x14\x80\xaa`\
+\xf2G\x980*\xed\xee\x07\xbf\xe5\x00\xc5\xa4\x10\x80\x11\
+\xfd\xb3.z\xa0\xc0\xba\xec\xc7\xd7y\xce\xce\x9b~\x8a\
+\x86\x9e\xca\x14\x03\x03T\xd7\xef{\xde\x0eV~\xa3\x17\
+\x81\xb4O\xdc7\x15o-\x07\xeb\x14\x89\xf9z\x0a\xe1\
+\xffTN\x85H\xa0|\xbf\x96\x07\xefo]\x11\xeb2\
+\xd7\xdc\x181\x15k\xd7\xcb\xbfge\xb3\xa8\xe9z\x8b\
+%^\xce/\x00\x91u\xd8\x8f\xb1\xb5\x8e\x00z\xfdt\
+\x19\xeb\x1fp\xd2\xb7T8WQ\xd5\xf9\x1dTDs\
+\xe7\x93\x0aZ\xc0\x8d\x16\x06T\xf4\xec\xa5\xaf\xf5\xe1\xb9\
+\x0a@\x010\xa6\xd0Hh]\x97\xe9\x0d\xb4+Rd\
+ss\xfa\xb0\x95\x02\xad\xa0Q\x09\x82^_L(\x15\
+.-\x0c\xb4c\x00c\xae\x13\xc0\xa5\xa5\xc1\xf5Z?\
+\x0f\xdf\xf3\xb0\xf0\xa3\xdbCS\x8d<\xc2\xceO\xac\x94\
+}\xdaK\x95\xa0\x13\x97\x04h\x01Pn\x9a\x80\xc6\xcf\
+2NA\xf5\x170\xab\x80\x02\x94\xac\x7f\x8c\x0d@\x91\
+8F\xc2\x88Q\x88\x81\x94\x1a\x06\x05d\x88\x1f2`\
+\xae\x9e\xef\xbe\xe5\xec\xc75\xc5d\xdf\x8a?\x80\x1cs\
+\xd0\xfa\xb5\xbe\xac+~Ba\x03\x10\x9c\xe2`S\xf4\
+4S\xbe\xc7\xbf\x0d\x9b\xdc\xdd\x11aM\xc2\xf5\xf1d\
+4z\x1f\xeb2\xb5`\xf6\x8b\xef0\xa1\xec\x1f\x95\xe5\
+\xc3\xc2\xa6\xd7\x83\xc2\xa6\x7f\x7f\xc3\x12\xd0\x0fw\x0c\x9b\
+\xbe\x7fo\xd8\xf4\xfd\xa1\xc3\xa1\x9bSS\xeba\xfa~\
+\xf7va\xf38\xb7\x9b\xc58\xb7RC\x7f\xd0B\xd9\
+\xdf|g\xf3\xbdP\xe7\x1f?\x1f\xb6&X3S!\
+\xc4\x06\x1f\x1f\xb62R\xea\x9c\x02D\xff[\x8e\x87|\
+\xc0\xf6\xf0Y=^\xcb\xa2\xf3\x0b\x95\xf8i\xb3U\xef\
+\xf8p\xd3\xb0U=}\xfcb\xd8\x5c(Z\xc6s{\
+\x8e\x98,\x98K\xc9t)\xcd'\xe7\x0dq5\xeb\x22\
+\x01U\x1aN\x05\xb0\x01,\xecK\xcf\xfd\xeeK\x1c2\
+\xa5\xc1\x8b\xd6\xc0tZ\x053`\x1e\x028\xdd\xe7\xcd\
+\x01a\xd3u?'l\xfaxw\x09k\x0ah\xb9\xde\
+v\x1f\x15\xd6\x0c[IJ\xf3\xe6\xddaM\x82\x9f\x7f\
+os\xd0\xe6\xc0\xcd\x81\x0dp\x81\xd1\xe5\xdc\xcc}[\
+c\x1f\xaf\x1a\xb6&h\x91\x95D^R\xe7\x92\x8a\xf4\
+\x8bg+Q\xb7\xfd\xb4\xc0\xb4\x1cfk*qS-\
+\x0a\xc5@\xbb\xcb\xf2\xfc\x86\xa3\x16\xc0d\xf3\xcc\xcd3\
+6\xcf\x98\xbe\x7fS\xd8:\xc5b\xf3\xf5\xb0\xe9\xdf\x9f\
+\x196\xfd\xfb]\xc2VQ\xbe\xedG\xc2\x1a1a\x14\
+{S\xbd\x00\x1a\xd9;_\xfb \xa9\xf15\xde\x90\xc8\
+\x9e\xb8*\xf77\xcd\xb6b\xd8:\xefM\xbb0u \
+\x01\xde\x12\xdf6=\xe8\xdba\x8d\x96\x80\x96\x94\x5cW\
+%N\x9e\xf7\xb7D\xe33~\xc0\xc8(\xe6\x0bF\x10\
+\xe6C\xc6\xf9%\xd2\xaa\xa5\xd2\xd4\x08S\x09\xd2\xbf\x96\
+\x86\x8au O\xd5*@4O>\xf7\xf2\xb0U\xf4\
+\xb2\xfc\xa4\xf30EW\x01\xaa\xfb\x89\xc3\x03\xd2$\xfe\
+\xa6GhI!1\xf6\xaa\xb0\xf5\xf3\xf3'\x00\xc2\x1a\
+k\x98\xcc\xcb*\x8c\xc4\xd4\xbdg7\xd3\xa6\xe4k\x0a\
+\x82\x99W\x13}\xdc\xbbs\xd4\xcecw\x1e;\x1f\xb0\
+\x8b\xea\xeb\x99\x96\x0d\xbfA\xdd\xce\x03z\xbc\xdcx\xd9\
+1z0\xae\x1e6\xfd\xff\xd9\x961w\xdb\xd7\x875\
+\x89\xcf521\xa0\x12i\xe3K\xb4\xf5zg\xef\x88\
+\xc0{8g\xd8\xf4\xbe\x97\xceD/\x11\xfa\xaa\xe8\x09\
+ \xfb\x1eE\x0f\x5c\xc5F\xc0w\x8f\xa46\x0b\x88\x05\
+^\x10+\x14CH\x92\xc4^\x85\xa2W\xfb\xf7\xea\x86\
+zu\x90\x09T\xfb\x00\xfe\xe4\xe5\xfa\xb6\xdfM18\
+\x07\xf8\x07\x93\xca\xd2\xa9\xfd\xd6\xe7\x82\xc4\xa2bQy\
+\x85p\x03R>\xbe$\x94u\xbd*\x0b\x18\x11*\x93\
+\x12\x96^5\xdeAy\x8e\x9a\xd7\xbe\x04\xf4\x12\xae\xfe\
+\xab\x1fw'1\x85h\xbd(\xc7\x9aI8\x8c\xe5\xb8\
+\xdbB\xc5\xb4\xb0\xebyX\xa8(\xa2\xee\x9f@^\xcf\
+\x5c\x06\xc2U\xc9\xd4r\xa2\xe7\xd4u\x09\x9c ~\xd6\
+\x9f\xc0\xd6\xfd6\x06\xf0B\x95\x88,\x15\xbe\x1f\xef{\
+_\x04\x8eE\xb9\x94\x10%@\xb0\xe7Ry\x9d\xd7.\
+\xf5\xdd\x058\x11\x18Zo\x9fO\xa0\xe4\xa0\x04\xaeR\
+l\xc7\x81\xb5yQX3?Z\xaf\x0f\xe0\xc2\xf3P\
+\xf1G\x85M\xe4s\xf3\xd4L\x00\x04\x80\x0fI\xc7t\
+\x8b\xa4\x1ag\xc5\xc8\xbc\xddjE\xc8\xcaz\xadc\x95\
+f\x07\xbeu\x0ci46\xe7\x9d9\xf7:\xc7dM\
+k\x7fI\xd0vRTR\xaf\x11\x15W\x95>\x89\xdc\
+e\xf2\xbe\xdd,+\xe0*f\xb7K\x8a8F\x84\x8a\
+\xadu?v\xad2Z_P\xb1%\x9e\xd6\x85@\xbc\
+\xfb\xf9z?\xd4o\xd4\xb2d,Ub\xa0w\x0b\xb0\
+\xe0}<W\xeb\x1f\xd0\xe9\xe71\x97$Z\x12H\xfe\
+([\xac\x00\xafz\xb7J\x15V\x8b\x8c\xbf\xe79x\
+\x7f\x00\x05\xcd\x05\x15Y~\xc9~\xc6\x08p\xfd\x80\x1b\
+L\x1d\x0c\x0c\xfe\xc7\xe70\xfe\x07\x10g?a@\xf0\
+\x13\x9ek\xcfLB\xe9\xeb\xd5\xbb\xdd\x8f>!\xb5n\
+\xf9%\x00C_i\x14\xc0\xf3[\x12y\x94z\xa2\xb2\
+\xa8\xb7\x12:\x9f\x13\xa0\x84\x02\x99\x14\xd5\xa2\xe2\xbb\xdf\
+\xce3\x89>\x0a\x9dV\x0c\x89\x99\xfb\x86\xe2\x98\xeb\xaf\
+\xc6H9\xa8\xef\x9f\x15g=\xe7\xc4\xef\x9cW\x02!\
+\xf7Y\xc2u\xf4\xe6\x15\x9bW\xcc\xcfc\xa9\x5c\x5c\xb1\
+\x18\x06\x8b?\x91hG\x1a\xf3\x94\xdc/\x17j\x02\x1a\
+\xebAK\x05 \xb5\xab\x14\xed'.\xd8\x89\xb7V\x82\
+\xc0\xef{\xf5\xfe\xfc\x85\xfb\xees\x0a\x10\xa9?\x03\x00\
+\xf9/~U\x22h\xddX\xbf\x12j\x8c\x80\x1c_W\
+\x15|\x9f\xc3}q>\x88\x1b\xc4\x11\x12z\xe7KR\
+Fk\xbex\xf6NW\xc5\x1b\x90B|S\xefs\xf6\
+|\x96\xe8\xdb_\x875\xbd\x9b\xc4\xf7\x92I9k\xed\
+\x04\x00\xf4\xcfa\xd3r\x7f\xfadMO9\xbf\xb3\xf9\
+\xf7\xb0\xe9\xff\xaf\x16\xd6\xb4\x10\xd1N9\x22\xfd\xb7\xca\
+\xa3y\xe0)\xaeE\x9c\xb9\x12:\x89\xad\xf1S\x80\x91\
+\x8c\xc3\x0a\x80\xd4\xb2\x93@\x09\xe6\x92\xb8\x025\x9a\x88\
+UM\x13\x00$\xeet\xd3nj\xaeX\xd7R\x07 \
+p\xff\xfd\xbbu\xe7\xbc\xb7>\x1e\x96\xd312A\xa1\
+\x0d\xa4E*$\xff\xe69\xf3\x124\x8cAq\xc5/\
+\xba\xd6\xca_\xcd\xb2\xc4+0\x9a\xe7\x9fy\xda(\xde\
+\xc3\x03\xc2\x9a\xd7\x8b\xec\x5c$z\xfd7_N\xc6Q\
+\xec\xc3\xf0\x8b\xb7\x09\x9b>\xf6\x8b\xc3\xa6\xd7;O\x89\
+\xd8\x9d\xe7\x84\xec\xae\xe3]\xe7\x84{\xe9-\xffhi\
+\xef,\x01~N\xa92\xb6q|RX\x93\xa0%\xd0\
+\xbe\xbdnX3\xc5\xc7yJ\xcb\xc99\xe2~^\x22\
+\x99Z\x7f\x9f\xe7\xc6\xedR\x84\xd5}\xe7W\xfa\xfd\xf6\
+\xcd<\xc7\x88\xfdJ\xe0U$\x01\xa7\x007-3\x80\
+\xe0^s\x04\x93*\x81\x19\x22e\xdb7&\xc3\xe4\xa7\
+\xdb\x9f\xcc\x0c\x90\xf4\x07\xdb\xd3\x855\xfe\xd3\x18\xdd\x7f\
+\x0a\x9b\xee\xff\xd7\xc2\xa6\xcb\xfbQX2T\xce0\xbf\
+\xdfdMkY\xfa\xb5\xcd\xf7\xc3\xd6}\xbcy\xeeR\
+\xc8\xdc\xfenX3w\x9e\xf8\x9c\x04\x17c\x08 \xfe\
+\xa2\xd9\xea\xdf\x0bh\x02\x14kU\xcc\x96\x82\xcaK0\
+\xffL\xa3\xbaa\xd8\xfaw\xc77\x84M\x9f\xeb\x9ea\
+\xeb~\x19\xef\x1f\xb6\xc6\xc3\xc3s\x87\xe7\x0d\xcf\x9d\x81\
+\x8a+\x04P\x01\xb0(\x8d\x8a\xcc_j\x5c\x1f\xc6L\
+j\xa9\x14 !/\xc1 R\xf9\xd6\x12\x92\xbd\xf0Z\
+\xa3h\x0d\x00.\x86\xff\x0e\x9b^\xaf\x1d\xd6\x88L\xa7\
+vI1z\x9c\x8f\xcf\x0d[\x01\x8f\x8a\xdf\xb3\xb2]\
+\xa2\xf2\xe2Z\xf1\xb8u\x95\xc0ei#I\xc4u\xcf\
+$C\xaf\xe2U\xf1\xa1\xe9&\xa9\xcdP\xcc\xf0db\
+\x14CBB\xdf3\xab\xb5T\xfb\xbb\xbd\xf8\xad\xf8$\
+\xfd\x93V\xa3\x028\x1f\x12\xb6&\xfa\x0ap5\x8eT\
+k%\xa6Xj\xc0\x14\xa3\xc9t\x90\xcb\x865\x05\xee\
+lu*\x15\xffl\x19\xa8\xc2o\x7f\x9d\xf69\xe6*\
+F\xb0V\xee\x5c\x1f\xdeg/D~\xf8\x9d\xb0\xb5\x82\
+\xe7\x03mw\x16\x0a\x82\xb9\x91E]I\xd5Ab+\
+\xe5p\xbf\x9f\x95\xd3\xdf\xd9\xce\xc8\xde\xe6Ya+\xf5\
+\x0dR3\x1d\x9b3\xf2=\xbc|x\xd9\xf0\xb2T\xff\
+<|\x15-\xa8@U\xa0.0\xeb\xe7\xb0\xa3\xec\x13\
+S\x120\xa2\xd0\xa1\x96$\xa5Y\xe2U\xc8\x92D\xfb\
+\xb4\xe6\xb9\xff\xa2\x1b\xb7vZ\x00@\xdf\x12\xd0\x8f\x09\
+\xf4s\xc4',P\x08\x92\xcf'\x11\xd6\xc3\xe1\xe0p\
+\xd0\x19\xaf\xe5\x00\x95(\xa8H\xa3\x9eX\xb0\x12Q\xa2\
+W\xbf\xcc\xca4\xca\xa4\x04\xa2\x1b\xc3U\x07\x0cH\xaa\
+\x1fs\x07\xe1\xec(\xb4\xe5p|\xfe\x04 \xa6\xe3p\
+\xa1$\xde9+(\x9e\x93\x1e\x16\xd3\x01\x92\xc2\xb6\xe7\
+\xaaIY\x11\xf0\xb9\xff*c\xa9)P\xbd\xe7\x0e:\
+\x89\xbe\x96\x08b3\x10_\x81\xa5\x04\xed\xbc\xf9s\xd4\
+\xdb\xef\x94H3\xca\xa2\x03\xd1\xf3\xd6\xe3\x8f\x92N\xd4\
+\xea\xba5\xb7~\xb9\x8f\x9e;D\xb1\x1f\xa7H\xc5?\
+\xa9=z\x01+\xb0\xe5\xa8$,\x12\xff\x9c\xdb\xbe9\
+0\x990\xe6(\x1b\xa3\xe9\xf9A\x06\xf7\xa4\x98\x9b@\
+\xd0\xfb\xbd8E\xa3\xec\xaf\x95Jk\xec\xe1\xbeS\x0d\
+21D\xd5\xd4\xe3\xb7\xf9\xd3\x14\x05}\xce\xe2\xf8\xa7\
+ n\xfe9\x22\x98\xd3{/T\xb4\x03\xc3\xa6\xd7\xb3\
+\x84\xcd\xebb\x09<\x0eN*\xf3\x95S\x8d\x5c%>\
+{\xb3*\xb1W\xd1\xea\x017\xcf\x11\x03De\x95\x03\
+\xec\xb5#\xec\x1b\x81\xbd\x1e7T)\xf7\x01\x05_\xe2\
+\xe3\xef\xa0\xec\x03J\xf2\x00\xab\x80\x1e5\xbe\x17O\xeb\
+\xc7\xc3\xa9h\x08\x98%\x16\x8f_\xc4V\xf9\xcf\x0a,\
+$\xd2\x02\x14\x9fW\x02*\xb0\xeb\xc7Z\x0a\xd0P\xc0\
+0C\xf8W\x95#\x00\x8f\xfb\xa5\xf7\xfdA\x8b\xaat\
+\x1d\xd0\x00\x15~\xce\xdf\xf1|\x00U\xfcB^\x7fQ\
+|\xado\x80\x84u\x85!\xe5zz\xe6\x87\xbf+\xd0\
+\xf4\xfeD\xed\xbc?\xe0\x886\x82\xf9\xe2\xfe\x9e\xcf\xa9\
+\xa7\xdc\xff;\xd8\x1d\xa0Z\x8a\xf8\x1b\x09\x1e?a|\
+Z\xac\xb2\xcb\xad\xcf\xc5\xf3\xabs\xc3\xe7\xf1\xbe\xe9W\
+k\xbfRs7g\x1b\xd5\xffyI\xfd\xcfqm\xd5\
+2g\x1d\x09\xe8\x9c_q\x17/9'6\x935\xcf\
+\xdd:\x05\xec\xe89\x04\x0ca\xa4\x98\x06\xa0\x12\xed\x5c\
+u\xdd\xf6A\x06n\xa5\xb9\x82\x89 \xa0\x22ZG\x9c\
+V\x80\x86b\xaf\xe2\x95\x95\xca\xd2(\x11p\xdbO\xc4\
+5s\x5cX\x05\x8e\x02\x1a\x8c2\xfe\x1fP\x00\x10R\
+\xa1\x07\xe4\xbc\x7f\x19\x07\x8b\x89\xb4yW\xd8t\x9c=\
+0\xacQ\xf9\x06\xcc&@\xb39]\xd8Jm\xaeu\
+j\x1d$\xa3\xa4\xc6Ie\xa5uxCX\x8e9\x9b\
+\xce\xcb\xe1\xada+\xe0W\x81X\x9e\xef\xc3?\x845\
+\x22YZ\xf6\x8c\x0d\x95\xa0\x00V0\xad\xec\x03q\x80\
+\xe7\x0a\xc0\xce\x1e\xf0\xd2HR\x18\xd0B\x92\xc0A1\
+\x02\x00\x83/\x0fk\x00\xf5\xf4g\xe3W\xc3\xd61\x8c\
+\xa5.\xbd\x8e\x09\xdeW\xf5\xbf\x07\xa2\x9c\x8b\xf6\x01@\
+*\xc5\xed\xaa\x82\xa5\xe0!\x0eJ\xa0k\xdc\x99n\xe7\
+N\xd32\xd83/\xb5\xd6\x89O\xc4/\xe1=/\xb4\
+\x16\xaev\x0e\xdfy\xc0\xdc{N|\xf2\x82a\xd3\xeb\
+U\xc3\xa6\xd7+\x84M\xaf\x0a]/Y\x0a\x1b%\xf6\
+\x98\xd3;\xe6\x84d\xba\xbe\xf1\xbe\x8b\xd8\xe0\xf8\x95\xb0\
+\xe9\xf5\x03\xcbt\xad\xe9^.~\xe1\x0a9G>\x19\
+\x00\x02\xf2\x12\xd1\x93\x90\xa6\x86\x05\xe0\x85\xa6\x91\xfd!\
+\xde.\x8d\x0aLJ\xd3\x1dTV\xaf\x1f\xb62\x13v\
+\xdf\x16\xb6V@R\x94/_\x00\x00 \x00IDA\
+T\x8bb\xadP\xc7\x8f\x03\x14\xec\xf7|N5\x86:\
+\x0bd\xdb\xbf\x0e\x9b\xfd\xcf\xb7f\xffc\xca\x05\xbf\xf0\
+\xf4\x9c*\x91\x15\xf5=\xc7\xcc\x16c;\x8f\x88\xb1\x9d\
+D2\xc7\xab\x85\xad\xda\x135u'{\x9a\xf5\x9co\
+\x1f\x15\x96-\x96\x07\xacS?6_\xcb\x84\x98F\x8c\
+\xb8G|\xe9\xdc\x00\x98\xa76\x0d\xc0\xb7\x12+\xc0P\
+2e\xb67\x08k*\xcb\xfc\x08Q6\x00&\xc0\xcd\
+\xf9\xa2\xc2.Qu>i\x91>2l\xfa\xdcw\x0a\
+\x9b\xd6\xd7\x9f\x86\xadq\xcd\xf8\xe0\xb09.\x8eA\x8b\
+{\x86\xbf\x1a\x9e4\xfc\xd5\xca\x8c\x1b\xde\x1b6\xfd\xdc\
+\xa1aM\xc12\x13\xd2\xe1\xb9a\xd3\xff??l\xff\
+V\xed\x02\x16\xf39o\xff<leD\x02\x00JS\
+ \xef\x0f\xe0\xad\xfcp\xfa\xe5JxM]\xc1\x04M\
+\xad\x1f\x1a\x1d\x18@\xb5\xfeL\x8dI\xed9b\xe5\xe5\
+\xa7s\x8aU1\xb5\x14h\x14p\xe4'\xd6\xadx!\
+\xfd\x881y\x15\x07f\xc1\xa5\x80/\xe7\xb2\xf5\xaeU\
+\x1c0\xc1_\xf1_\xc42\x15D\xe4[\x0aj9=\
+\xaf\xa6\xaaX/\xfe.`(\x81\xea\xed\x13S\x8b\xea\
+3\xc9\x08\xc8\xf8\xb8\xc6\xda\xca[_\x1b\xd6\xecS\x9a\
+\x05\xce\xe5n\x8aH\xb5\xda*0a\xb0\x12+\xc4\xa8\
+\xbf\xe6R\xb0\xdc;\xcc6-\x9c'\x84\xad\x09\xcfx\
+\xa3\xf1\x86\xe3\xe4`\xc6K\x875\xbd.q\x19\x0f\xc9\
+@\xe5cMo_RS\xcc\x81\x9e\xe7\x1c\xbf\xaa\xe9\
+!\x0f\xc4\xf4\xd6\x0d\x12\xbe\x19\xa6\xaf\x19 \x98\x1d~\
+9~\x01h?\xbf\xd9W:\xf6Jd\x1d(\x02C\
+\x07\x01\x8aR\x1eL\xd5\xfb\x94\x1b\xb4\xfe\xdf\xef\xab\xd0\
+\xf5=\xe3\x00\x81\xfe\xfb^<P\xe2\xd9\xcfK\xb7\xc0\
+\x88\xa6\xa84d/F\xf5\xa4\x10\x0d1\xf6\xc2\x83\x15\
+\xe8[\xd8\xa9\x22M\x9d[\xcfvU\xa6\x05\x00\x12\xf5\
+\x9e:\xac\xe2\x0ea\xca\x83\xb4\x10^\x9f\x8fc\xeb\x13\
+~\xdf\xfb\x12\x80\xd8\x90\x124_6(D\x19c\x84\
+\x83\xd6\x02\xf1\xa5\xfc\xbc\x16\xfe\xe9\x16*\xd8t\xa8,\
+\x15F\xf7\xbb\xef9\xee+\xb1\x02\x91.\x11)$[\
+\xe5M\x80,\xd0=G:\xa0\x0f\xe5\x86\xf1\x1c/R\
+\xe3\xbd\x96J\xd3U\xb3\x22\xf3\x84\x9c\x8a\xf1\xd1\xb0\x86\
+i\xd1\x03!\x02!\xa2C\x1c\xccO\x93\x8aI\x85V\
+%\xef\x0a\x190<?U\xba\x7f?\xa9\xa5*\xddY\
+\x89\x0a\x82XP\xc4J\xbb\xe3\xe4\xcd\x8f6?\x9a7\
+\xf6\x12\x00K\x84Uc\xf4\xdc\xbao\x12 \xf3\xa5\xa9\
+\xfe\xa6\xfaj\xb5\x14\xd8\x17\xe9\x98\x87K\x0e\x97\x18\xa6\
+u2\x5c'l\x16\x07\x9d\xacq4\x00-\xf3sS\
+Tg\xbcd\xd8\xf4\xfa?\xe3\xf7\xc6\xef\xcd\xf7i\xb9\
+\x0f\x02\x1c\xeb\x0b\xd0A}^\x8f:\xa0\x02\xd0#0\
+\xb5\x8eT\x00\xed\x17\x81\xecU\xc2\x9a\xe7\xec\xb9J\xf4\
+!\xd4\x10k\xff\xaf\xe7\x1bB\x8di\x040\x03\x04\xb8\
+n\x94@\xfb\xcf\xfa\xc3\x80Q\x81\xe6\x8f\xf4\xae\x01\x02\
+U2U\x96\xb3\x82P\x07\x9b\xc4\x15SB\xa5\x1b\xe3\
+A+\x82\xff\xf7<\x88\xa2Y\x0f\xee\x8f\xca\xb6\xbf\xeb\
+\xc0\xf2y\xfc<`\x01\xc3\x80\x7f\xe5\xefz\x7f\xe8`\
+\xe4/\x01\x8f9>\xa9*\xac(\xe3\xee\xa7\x04\x0e\xc5\
+\xde\xfet\x1f\xf9\x05\x15x\x95\xe6\xbe7\x1d\x00\x82\x89\
+\xc0\xef\xb9>?\xdf\x8d\x99\xac\x0a$\xe6\x12 Jo\
+= R\xe5GK\xd6?\xcf\xa9y\xf8\xbf\x85\x01\xa1\
+r\xec\xb9\xa7\xaas1$$\xc8Yy,\xbf\xe1~\
+\x02\x1e^\xbb\x9c\x9bS\xb0\xb2\xf8U\x019\x8a!\xb5\
+o\x95\x1f\xeb\xdcu\xa3v\xf2\x8b\x12}\x15D\x81\x82\
+\xf36+rUQR\x91s\x1f\xed\x03*\xc3D\xd5\
+\x04\x82\xce;\x89*\x7f\xc3\xdf\xd9\xb7\xfd\xd8P\xcf\x81\
+\xdf\x06\x84\xa7\xd8\x11\x15v\x14S\x09\x5c\x01\xb9\x02\x22\
+q\x08\x00\xa4g\x9c\xe8\xf1\x04\x10e\xc1@\xa2W\x89\
+\xbf\xf7\xd7\xda\x94\xbd\xf4z\xc0\x01_D\x946\xbf\xcc\
+\xb9\xef\x00\xa7o\x85M?\xff\x9fa\xd3\xeb\xb9\xc2\xa6\
+\xd7K,~\xb3(\xcb\xaf\x0fk\x00 \xe2\x984`\
+T\xea\xee\x9d\x81\xdc\xe5\x13\x18\xc8\xeb/\x0a\xefO\x13\
+\x88K\xc0\xa04R\x00\x9a\x19\x7f\x14\xc3,\xe7\xa7\x97\
+\x16A\xae\xcb\x12\x1b\xb4o=\x97~?\x8aKr_\
+R{'\x06V\xe7k\xcf\x08\xe8\x13r\xfe\x98_y\
+\xd4\x02lO\xbes\xa1hK@20\xa6Z\xbe\xdd\
+\x0dk\x12F\xfei\xa81\xbd{\xf6\x19\x17m\xdf\xc7\
+\xd5\x9f\xab\x99j\xa5\xf7:\xe3^S:\xea\xdc\xcbs\
+g|b\xd8\xf4s\xaf\x0e\x9b+\x84o\x8a\x0a\xe1x\
+\xfd\xc9&\x7f;>||\xc4\xf8\x885\xe1\xda}~\
+X3/]\xfcG\x84\xf7\xe8\x04\x12\xc5_*\x93\xa9\
+^\xbfy_\xd8\xdc\xfb\xbb\xb3\x0d\xa0\xe3\xbea\x0d\xf0\
+\x83\x82\xad\xc5\x12 \xa7\xb7\xdc\xdc\xfbL@\xc7s\x87\
+M\xaf\xbba\xd3\xeb\x0d\xc2\x1a\xcd\x01\x09\xa0\x8a&?\
+\x84yj_\xa6\x1f5\xf5KA\xa5(\xde\xa9\x9dQ\
+\x94\xe5\x10\xfd;x\xbd\x9e\xf15\xe3\xab\xc7\xb8\x7f\xc7\
+\xe6\x18M\xa2e{g\xb5\xa95A\x89\xb4\xe6\xbb+\
+3k|@X\xd3\xfb\x7f\xb5\xed\xd5\xe7i\x0fZ\xa5\
+~\x9c\xad0\xc6\x8cJ\xec2\xef\xa8\x0a?\xe0<\x81\
+\x82j9\x024\x19'y\xbb\xb0\xe6<\xb2\xber\xcc\
+_\xb5\xc8\xf0\xe74\xcc\xa8\xcd'\x10S\x95kj\xf8\
+9^\xb3\x0am\xe9\xe7=\x0f\x85\xa4\xe1)a\x0d@\
+\xf2\xf7a3\x03h\xb2U\xb4\x10p\x1d\xad(C\x88\
+\x9c\xbe=l=\x07\x87/\x875\x94r=\xe8\xfc\xb7\
+B#\xa6\xdf\x15\xc2\xd6\xd6\xec\xf1,aMkS\xee\
+\xff\xe1\x88\xb0\xe9\xfb\xf7\xceV@\xaa\xf5\x04\x18\x94\x90\
+\x0eO\x0b\x9b\x01\xb2\xc9\xd6\x04\x9a_\xad\x16H~\x03\
+`\xac\xe0\xa2\xb0\x80*/\x9f\xc0<\x14gS\xc5O\
+\xbfV\xf1\x16\x06\x11&\x1e\xa6\x02\xc06[\xbb*\x0e\
+\x008\xf2W\xf2\x1a\x09\xb6\xb8\xd1u\x8aO\x00\xe7Z\
+\xc60\xa7\xb4,\x10\xf13\x0d\xe6\x0e\xa9\xbd!\xffI\
+\xffY\xef\x07\xd0\xcax\x05#\xa6\xf2\xd3>\xafsn\
+\xf2\xd3\x18\x82/\x9fN\xcd\x97\xcfq\xdb\xa9s\xdc\xb6\
+\xe6ms\x5c\xb6wxa\xd8\x8aD\xee\xde+l\xba\
+\x9f\xf7\x1e\xef5\xdek\x1d\xa3R\xd4\x8fwNv\xdc\
+JM\x18\xee\x1d\xd6\x04\xfcIa\x98\xe7\x86\x7f\xa7\x19\
+\xe3\xf4/\x93}$\xc7b\x5c\xa0Id\x8c\x13s \
+\xf4\xd4B\x95\xa6\xbc\xf1\xae\xa3\x1c\xab\x00T\xa0rj\
+\x06\xa8\xbe\x88\x0e\xb6\xe3\xea~\xd4\x04\x22=\xc5\xf4\xb4\
+Tm]\x97\x1e:\xf7\xc3\xb86\xd7)\xa0\x13x\x09\
+\x80\xa9d\xaa\xf8\xde1\xac\xf9;\x91&\x0e\xb9p\xce\
+\xd5Tx\xbcz?\x01\xbf\x0d\x81\x8a\xa7\x12#\x01\x15\
+\xe8\x0b\xf0z\xf1D\x8e\x8dcO\x84\xb7z\x06i-\
+\xe8\xc9GQ\xed\xc7\x8a@8{Q\xae^]\xba_\
+\xb8\xfd<a\x1b\x1dbGLK '\x91\x96\xf0\xa3\
+\xded/P!\xa1*\xa5\x1d`P\x9a\x12\x127?\
+\xc7!\xa7\x08^]\xbf\xdeH\x1a\x04Tu?\xb2\xf4\
+\xceT\x00\x97\xcf\xa3\x1c\xcc\xfb\x96D\xb9\xd6'\xca\x18\
+1\xbb\xb3$P\xe5\xbe\x00\xae$\xb4\x1c\xf47\xb2\xb2\
+\xe7\xfeHP\xf4\xf2dkB\xb5\xce\xa8lA\x0co\
+\x93=\x94\xd6\xf5\xfbSu\xf8!\x8bh\xc9\xe6|9\
+\xbf\x9a\xd8M&\xe2\xe3\x83\xc2V\x8d\x0f\x95\xe2\xe11\
+\xc3\xa3\x87\xe9\xf3\x0dO\x0a\x9b^\x7f\x146\xbd\xde(\
+\xac\x19k\x93\xe25\xd6\x11\xc4\xb7\xc4\x82\xf2\xbe\x8co\
+[\x90\xe1Jx<w\xebVO\xae\xc4\x17\x92\xef\xf9\
+\xf4\xa2s~\x0e\xd5\x99F\x87\xc4\xd8z\xe7\x07\xecs\
+\xe2^*\x1b\x9e\xa3\xc0W/\xa3\xc4\xde\x01\xe4\xfd\xec\
+\xcf^S\xc1\xfcfs\xb8%\x96\xc6\xf4A\xb8M)\
+\xc9}\x1b<\xa8Y<\xcd~\x16H\xe8\x19\xa6\x11!\
+\x11\xc5\x94P\x91PQ\xd5\xc2\xc0\xffb(P\xc9\x85\
+\xa4\xab\x5cc\xc8\xe4z\x83\xd0\xd7\x01[\x91\xc4i\x8c\
+\x99\x04p:\xe8T\x18U\x0c\x04T\xb4\x05P\xcb\xf9\
+\x13\xc8\xbcDJ\x8b\x0ff\x97\x83\x98?\xf0\xf3\xfcI\
+\xdf\xab\x8fJ\xce\xbf\xeb\xb1\xf7\xfc\x9c\x17*\xe8}b\
+\xea\xfa\xff5,\xe7U\xc7\xdf\x7f\xccl\xeb\xbar]\
+ZG\xb2\x97\xba\x02L\x7fG+\x82y\xea\xb4Q\xcc\
+\xdfN\xe0\xbc\x80\xddC\x17\xf1\xd4\xd2\xaaI\xbf]b\
+TD\x08\x01H\x9e7\xffF\x9b\x80\x98\xa7\xeb\x94`\
+\x9aon|\x93\xfdf\xea\x80\xdet@\x00\x0acV\
+rj\xbf\x18k\x88\xd1\x82\x92\xae\xe7\xdf\xfe\x14\x90\xd8\
+\xdf\x9e\xb3\xf3\xdf\xdf5\x0e\xebG\x09hZ\xaf\x02i\
+=\xa2\xc9|)\x11b=\xee\x80!\xcc\x18*\xf9Z\
+\x04\xed+\x01\x1f\xc0Zos\x8eACe-&A\
+\xaes\x0c\x9a\xcd\xc1\xd3z88\x81\x9aH\x80^\x96\
+\x15s\xe3\x1c\x7f\x126\xbd~7lZV\xcf\x08[\
+E\xc1T\x8e\x8aI`Ntj\xf4\x10\xe7\xda<h\
+\xf3\xc0\xcd\x03\x9bD\x19s\xe9\xf8e\xce\xbc\xfd0\xed\
+\xdeEl\x90\xc6\x0f\x807\x19T\x80\xf7\xed\x9f\x85\xad\
+\x09\x7f\xcd\x97\xf6\x9c\x00&\x09\x1c\x16@\xfc\xd7\xd9j\
+\x86\xa1\x94\x89\xeb\x9c\x10\xbf\xa9I\xc8\xec/\xfe\x19\xf0\
+\xd3MG\xaa\x82\x83\xf7\xbd[\xc6YG\xa7\x86\x86\x1e\
+\xd8\x5c_\xe3\x1f\x85\xad\x22l\xaek\xf7\xcf\xc3\xb2\xa0\
+\xf3\xf9\xa4\xf2~5\xe3\x96\xdd\xe6\xbc\x08X\xec~+\
+p \xc1\xda=W\xd8\xf4\xef\xff\x156=\xa7\xfb\x0d\
+\xf7\x1f\xa6\xc0{\xfb\xfc\xed\xf3\xb6\xcf\x9b\xc2\x8e;\x85\
+\xcd\x89\xf8a\xdb\xc3\xe6\x02\xd9\xffD\x81L\xbc\xb4{\
+\xcd\xb0\xe9\xf5\x80\xdd\xbd\xbb\x93\xdf\x1c\x9f\x1c\xd6\x8c\xf3\
+\xc3\xc4t\x1f\x8eX\x00\xc2\xf2\xaf\x00\x87\x14\xd1+M\
+\x07\xea\xf2O\xc8\x8a\xadB\x11\xe6\x8c\x846\x81y\x15\
+TS(0\x000+k^\xba\xc4\xeb\xaca\xab\xa8\
+f\xcd5\xcf\x04\xb3\x00\xc7\xd3*\xac\xf0\x9b\x12\xe7\xec\
+\xb9\xe7\xf7\xb4H\x98\xc2\xa0wy\xbc\xf9\xf2\x1c\x8d\xb9\
+\x03\xc4l\xcf\x14\x96-\xc6\xd7X{\xd9\xe7D4T\
+\xea\x8f\x1b\xdf=\x06c\xe7\x1c\xe39\xc7\x98\xb2\xf1\x94\
+\xe5>\xd7\xb9\x9c\x80M\xf5t\x03\x84\xf9%\x15Q\xe3\
+O;\xf1\xba\xed\xb1a\x0d\x80\xa6E\x98&\x82\xc4?\
+\x01\xd6\xf1;a\xcdy\x8c\x01\x80\x81\x90L\x9b\xaa\x18\
+\xa7\xc8b\x89\x8c\xa2\xb4\xbf,l\xbd\xbeb$e\x81\
+\xd2\xb4\x80\x8a\xe3\xc5+\x1f\x0e[\xfd\xa38\x0c\xd0^\
+S\xd8~?l\x9d\x1b?>'l\xd58\xa8|E\
+\xc1#[\x88im\x14\xa0\xef<5\x9d\x84\x1f3\x96\
+R~\xe4\xbc\x03XE\xde\xf7/\xeb\xf3\xaeq\x86w\
+\x0ek\xb4G\x14t\xe5[Z\x96\xf2\xbc\xdd>'\xac\
+y\xde\xfe\x8e\xca\xb88\x1ec\x8f\xb8\xb31\xbeD\x1a\
+\xff,\x81\xf3\xf4s%\xda\x07\xb86\xe5B\xa1\x03\xd0\
+\xacp \x0e\x15g\x88\x87ho\xe5\xfb\x016\xc6\x97\
+\x8c/\x1d_\xd2\xfc\x9c\xf3\xd4\x94\xbd\x9c\xa2a\x0aF\
+\xe5wg\xad|a\xd9o~_\x1e$\xaeY\xf38\
+\xa2\xd0\xfb20wf\xb5\x90\x15\x18\xd5\x8a\x9f\x0c\x82\
+\xbd\xb3\xca\xe6\xb4\xb0v\xef\x186]\xf0\xa5\x96J\xdd\
+\xee\x97\xc2\xd6\xb9\xb65\x87=\x13\xa2\xe1\xcaas\xcf\
+\xfed\xcd\xc2\x8f0\xe8\xb5\x0d\xa2\x9e\x15\x1b\xe3=6\
+\xef\xc8\xde\xe1T\xe1\xae\x0f\xea \xee\xc5\xa2\xf4\x14I\
+\xfc\x05r\x9d\x98[\x89\xc8\xa1\x08\x1e\xb2\x04\xf0\x85\xa0\
+\x1a\x13q\x969\x05[\xa9\x9b\x02\x05\x0f\xb4G\x8e{\
+uj\x1b\x05\xf5\x8aH\xdb*:\xb3$l\x80\x09\xc0\
+\x80J\x09\xa43\x1dz\xa9\xe8G\x9a\xb6\x9b\x81\xd0\xab\
+~\x8b\xf8\x9eD\x11\x00\x81\x91aa\x08\x04O?\xeb\
+\xc4/\xcf\xe9\xaak\xe2Z_\x90\xb5~\xcc\x9a@:\
+?\xaf\x80\xb4\x02t\xad\x05}\x0f.\x00\xe1\xcba\x8d\
+\x0a\xb3@\xdas=q\xdf^\xb3\xfa\xfb\x10Z\x95\xac\
+\x83\xc2\xe6\x0a\xe4\xe2pzUZ\xef#\xe1\xb3A\xdd\
+\xef\xbe\x97\xb4\xa3\xfc\xd6A\xe6>\x10\xb7#\xe2\xa5\x92\
+K-\xf5ua\xd3\xc791l\xae\xccO6\x07`\
+\xf3\x94\x8ci\xf7,b)GfO)G\xe5zU\
+\xc0\xdc7\xeb\xddu\xfb\xde:\xcc\x9e\xcf\x99\xd0{\xc9\
+F\x5c\x0dS\xe6Ua\xeb\xc1\xed\xc0\x1dN\x1e~8\
+L\x7fg8zx\xf9\xf0\xf2\xb9\x129\x07\xe2\x02\x84\
+)\xd0Z\xc4j\xce\x96\x07\xffCs\xcc\xdd\x81\xd9\x83\
+|\xe7E\x04R\xe0Z\x0c\x99|%\x1a2\x5c%l\
+z\x1d\x92\xc1\x83B\xf9\xb0\xb0\x15\x08\xe0x\xa9\xd5\xa2\
+\x8a\x0e\x8f\x0f[\x0f\x9a\xa2\xe0Q\x9dVi\x85\xf0B\
+Z\xfbJa'\xf6T\xd4\xe2\x1eHp_%\xea\x0e\
+\x0e\x80\x93\xfd\xe3\xfd\x04\x0e\x12[\xd4\xc1d\x5c\x94\x18\
+\x99\xe7i]\xd1\x1c\xa0j-\xc0\x95\xf8\xea\xad\xb6\xee\
+Q\xecS%\xbc\x12\x1b\x89\xa5\x84NO\xa4\xc0\x01R\
+\xec N\xbfZ\xa2\x8d\xa8\x8c\xc4!\xdd\x07\x89\x9f\xfb\
+)\xc1M\xeaZ]\xa7\x84B%\x95\xbf\x93 [\xd7\
+D4\xb3\x22T@\x17\xff\xed\xe7\xfc\xbbW\x95%\xaa\
+\xb5Ztr\x5c[\x1dx\x80\x0c\x07\x22\x7f\xc2\x1f\x08\
+\x5cT\xa6\xf9?\x15JTL\x94T\xf7\x1be<\x03\
+*\xbdw\x02\xd1\xf2/\x00h\xeb\xe9!\x0b\xf3m\x16\
+q=\xa5i]\xa0\xada\x1d\xa0\xb2\xdb\xd7\xc9\xec\xaa\
+\x96\x01\xaa\xef\xd6\x19\xe0'\x03\xa5\xd2\x82 \x22$\xb0\
+q\xfdI\x8d\x97\xc8\xd5\xfd\x00<\xf0c\x9e\xa7\x96\x0b\
+\x95\x01~\x96\xd8b\x8aXU\x05\x98\xdf{Ej\x0f\
+\x084T\x06\xad{\xe7\x85\x7f\xe7g\x04\xaa\xe2\x01\xc0\
+\x8c\xc0\xc3\xbe\xc2\xd8\xc9@\x0f\x03\xb0T\xc2U8\x89\
+uju\x22&\x8a\xc9\x06\x98\xa0\xe1\xa3\x97]\xcb\x8b\
+1\x9b\xf6\x87\xf1\x9b\xc4\xfc<'\xeb\x99\xff\xce\xfdR\
+\xcf\x0d\xe0\x9c\x89\xd4\x14\xf6\xdf6\x02\x7f\xe3\x197_\
+\x09k\xd4\xd0%t\x80\xb5|\x1e\x15\x0f\x9d\x90\x09<\
+\xd5l\x01/\x15\xf0\xa4*W\xfc\x92\xf7\xb5T\xfd\x05\
+\xb6\xfc\xc0\xcd\xf2\xb9\xeb-\x15?\x00.\x04\xba\xc6y\
+\xa1\xea&0R-\x86Z\x1cn\x98\x22\x8a\xd9\x024\
+y\xe5e\x7f\x12W$\xcawlX\xd3{K#\x04\
+\xe0\xd9\x9fw\xd6\x03\x7f\xfe\xbb\xe9\x8f?\xbd\x003\xf6\
+# k|m\xd8\x9a\x90\xee\xdc6l\xa6\xd8O\xb6\
+\x8a\xe5m/\x1c6\x07\xb6\xdf\xddgZ\x14?O\xe4\
+-\x01\x8f\x1a\x7fk_\xa5\x96\x8d\x0a{\xf52\xe7\xb8\
+\xb0\x12\xed{u\xd8Zi\xdc}\xd8\xee\x91\xbbA\xe9\
+\xfeP\xd8\xf4\xfa\xac\xb0\xb5e\xa4\xa8\xc3\x99\x98U\xbc\
+\x0a\x10\xcbx\xc3\xdf/\xea\xbf\x8af\xc6\x87\xdb\x0b\x86\
+\xad\xc0]\xb5\xf4\x18;{\x8d\xb05^'\xaaZ\xfb\
+\xc8\xbat\xae\xf0k\xfc1?\xe2\x15\x00\xe0>v\x00\
+\xc0\xf6\xa4\xb0\x06@\xcc\x04W\x22\xbd\x9d\xbf\xd6\xc4n\
+\xfcZXj\x1b=%\x19\x14\xd7\x9f\x81\xf6\xc5\x0f<\
+i\xb9_\xbb7\xdc\xbd\xd1\xee\x0d\xe7\xf3\xf0\xc3\xb3\xa8\
+\xe0\xf3\xb6\xcf\xdf>\x7fN\x8c\xffl\x9c\xfc\xdd\xf8\xaf\
+\xcb8\xcf\xf1La\xeb\xd4\x8a\xed_\x865\x1a\x11\x8f\
+\x08[\xefC\x9d\xdb\x00d\xf9L\xfa\x05\xe3m\x01C\
+\xd5b\x04\xa0\xccB@\x01\x9eZD\x1f\x17\xd6\xc4i\
+Z\x9f\xf8ITm\x9a3\xaf\x5c4 \xaa\x15K\x5c\
+`\xeaH\xe6/\xf1i\xe3\xf3\x020\x00\x1b1\x8c=\
+\xc6\xb1WA\xc0\xb89@)\xaa\xb9u\xef\x5c\xe2\xd7\
+%\xa8\xa9\xc1VSc0\xab%\xe6\xe9G\x8a\x11\x9e\
+Z\x15\xf63\x00\x988m\xb5\xbe\xf9{\xfe\xbe\xc2n\
+\xc6{\xb4q\x86\xdf\x0b[5\x04\x0a\xb0\xa2\x0d\x97\xcc\
+\xbb\xd2h{hX\x93(c\xf6&c\xbaZL1\
+0\x00\xa5\xfc\xa8\x02\xec\x1d\xb3\xd5\xcb\xf9\x89)\xfa7\
+a\xcd\xbetN\x89\x17\xe5\x11\x0aq\xce\xbf>\x1e\x15\
+\xb7\xfa\xfcY\x817\xae]\x1cY\x1a.\xf6\xb3\xb8\x05\
+\x80\xef\xfd\xc4\xa7\x9d\xe6]\xe5Q\xfe\xce\x99r\x9f*\
+\xf8)\x04\xa7\x08b\xec\xa2\xd8G\xf5\xef\xc9\xfc\xd8\xbb\
+{\xe7\xdd;\xed\xc6\x82;p<\xc389\xe6\xf1}\
+a\x8d\xda\xe1\x95'\x9b\x02\xe8\xe1\xc9a+RZ\x09\
+}\x8e\xed j2W\xd0\x1e\x93\x1b\xe4W\x8dh\xc1\
+-r#\xa5\xe3\x8f!\x1e1\xc6\xa3\x0e\x9cN\xbd\xbd\
+\xa8\xed\x02P\x14w\xc8\x9c\xc0@e\x80\xb8BR\xdc\
+*\xe0\xb8|R\x5c!\xa8\x11\xa67\xe2t\xb5@!\
+\xd6~O\xa0\xde\xab\xe2K4ml\x01R\xdf:\x00\
+\xc0\x10\xf8\xea\x85'\xda\xa7\xa7EO^\x84\xaf\xdfh\
+\xfe\xbe\x07\xee>\x9e}\xee\xa6\xde\x9fJ'\xd0\xf69\
+N\xbf\x8c\x1b\xaa\x8a\x1cq\x19\xd7Iu\xf9\x9ea\x0d\
+BjA\xf5\xd4j@\x88\x85\xe3\xef\xbb?*\xd9Y\
+Q)\xe0 \xefW%\xf4*P\x904\x15x\xf7U\
+\xaf\x99\xde\xbe3$\xf2l\x0e:\xa0I\x22`cB\
+p\xa9z\xde5\x9f\xa3\xeb\xd2\xeb\x94\x80T9\xb0\xec\
+\xa5/D\x8e\xe3\xbaZQ\xc8\x17\x84\x9d\x83\xc8\xf1]\
+\xd5\xab\x99\xd3*\xc6?\x09k\x1c\x87\xc0\xd4|\xd9\xcf\
+\xa5Z\xe9\xb7\xf3>K\xa40-\xa8\x92\xab<\x99\x9f\
+\x9e\xda\x1c\x058</_\xcf\x96\xd4\xaf\x8b\x87M\xdf\
+\xe7\xb8\xc1\xe1mK\x8f)\x11\xa9\xcd\xe7\xc3\x9a\xfd\x06\
+hJGV\x01I\xf6\x8e\x8eW\x0f[\x13}\xfbv\
+\xfb/\xa9*\xfb\xc2=/\xd8\xf3\x82&\xc0\x14`\x9b\
+\x0b\x9f\xd4\xe7\xaa\x0c\x9a\x87\x9ab\x5csAc\xbbR\
+l7'\x875sT\x89\xd2H\xfc\xac?\xea\xfd(\
+]\x9e;\xa0\xc7\xab\x0a\x19@K\x80\xa4\xd2\xadb(\
+ \xe7\xd0Q\xa5\x01\x88\x000\x951\x8c\x0c\x00 \xaa\
+\x97\x0afV\xf2+\xc0\xb5/\xf4\xd8\x0b\x84]\x8f\x00\
+X\xe2\x9a\x8e\x1e`P=d\xb7M\x11'\x09qW\
+\xe95\xc6\xa5\x18@\xb9\x8e\xab\xe2\xee9\xb9_\x12@\
+\x07\x08\xff!@G\xf9\xd7\x12`\x9f\xfb\xf9\xd3P\xf1\
+\xaf\x84\xb3\xef\x9d\xe3'\xed+\xe3N\xb5\xe2\xa04\xf2\
+\x03\xfc\xa0\x00\xd4\xc1\x86\xba\xed\xc0\xcfq[\x15\x08d\
+\x00\xbb=>\xac\xa1R\x0b\x5c\xdd\x7f\x15n\xf7Q\x80\
+\xcb\xdfz\x1e\x02\xf4~\xfe\xb5\x80\xe2\x8d\xa1\x0b\xde\x00\
+\x16\x00C\xfe\xc6\xd8\x9f\x1c\xc7\xaa\x02\x5c\x89\x13\xb12\
+\x80\x94\x83>\x03\x0e\xbd\xae\xd4\xc6\xeb~\x9a\x1b\xfe\x07\
+a\x0d\xa0\x93\xe7c}\xee^\x1c/\x03\x12\xbd\x96\x05\
+\x00\xa9\x88\x1d\x15\xb6\xf6\xe8\x16\xd0\x94\xd4\xd8\xa2\xe0\xf7\
+c\x13\xf91\xe7\x06@\xc6\xfdu\xbe\xf5\xe3p\x9d\xe3\
+\xc66\xb9\x0f\xd4\xb4\x93\xf90\xde'\xac\xb9\xce\xdc\xff\
+\x80)b_\xd53\xe9\xdc\xf5\x1c=?\xebK\xe2\x9f\
+\x09{\x15\x0a\xb4d\x103%\xea\xe5>\x0a\xacQa\
+\x014\x1f\x9a\x02\xca\x0f\xadZ\x0e\x15H\xeb\x89\xa5-\
+\x92\x81z\xc51\x09\xf0m\x1e\x1e\xd6\x14\x10\xdc7~\
+\x06\x10h\x9cj\xee\xf7\x127\xd4\x12s\xc1\x04\xf8\xd3\
+\x8fV\xeb\x8fs1\x03?@k]g\xfa#bs\
+\xf5\x9cM[2\x0e\xfa\x80E\x0cz\xf3\xa1\xb0\x06 \
+I\x7f)\xfe+ H\x00\xdaU\xae\x9cS\x15'\x01\
+&\xb5`\xdd6l\xee\xb5\x9f{\xcbK\xfc*{\x96\
+\x87\xbb\x84\xad\xe2i\xb4\x14\x8a!\xf0\xc8\xb0\x86\xb9\xf6\
+\xc5=_\x9a\x99Fq\x97\xce5\xb7\xa6\xcd\xd3\x15\xc6\
+\x8b\x8d\x17\x1d/63d\xfepf\xc8\xd0\x9c2\xce\
+\xf1\x84\xc5\x8fT\x22\x9f\x9aM\xf3\xbe\x7fC\x93\x10}\
+c\xfc\xfa8]\xf7\xf8\x99\xb0\xe9\xf5\x0ea\xcd\xb4\x03\
+\xfb\xcc4\x9fL\x88+\x8e\xa2\x81\xf0\x9d\xb0\xe6\xdc\xd1\
+3\xef{Tz\x94}Z$)zV\xad\x95\x9eK\
+R\x871\x10\x8a\x89\x90L1\x09r\x8d\xd3T\xe0\xb2\
+?=G\xfe\xd1\xf3\x94\xe88/$\xd2\xc68\x9bV\
+\xf2\xca\xb0\xc6\xaf\x89\x87\xf8\xff\xf3l\xcf\xbb\x9d~o\
+\xbc\xdfx\xff\xf1~s\x85\xf7\xa8\xa8\xf0\x8e\x7f3\xbe\
+y\xfc\x9bu\xea\xd8\xf8\xae\xf1\xb8\xf1\xb8\xb5\xa5\x90\xe6\
+\xc0x\xc5\xb0\xf5\xb2\xaaW_\xbe\x92\x00\x0d\x86\xec\xf6\
+\xe1a\xab\xd8\xe5\x9c\xcf\x5cym\xa5*`@+\x91\
+\xe7\x92\xadRUIN\xc6]\x8dU\xd6\x22\x94\x89i\
+\xcd\x97\xd7\xe2\xaa\xc0\xd43`\xa8\xc0\x13\x8d\xc30\xe4\
+_\xd2_\x14\xd0\x00\xa0=5lm\xd5\x1a\x0e\x0f[\
+\x99gZ\x920\x9e7g\x0f\x9b\xee\xd3\x11a\xeb\xe7\
+$\x1e7\xdc$l\xcd\xb3\x9c\xcb\xf5\x9cM\x15\xc8\xd6\
+\x00\xe7\xc8x\xfe\xb0\xe9}\xfe#\xac\x014\x01\x1f\xc9\
+p.\x7f*^\xd2cO\xe4\x13\x83@+Y\xfaq\
+S\x8b\x14\x14\xc77\x86\xadq@\x01.\xf22\x0c\x1a\
+\xd7}\xc0\xbeS?j_\xac\xadKK\xbe\x81\x11\xe0\
+s\xa7\x88p\xc5\x1b4\xd2\xc4\x8b\xbd\xe6Y\xc7\xf0.\
+\xbf\xa6P*\xde\x88t\xfe\x8f\x9ai\x05\xc9\x1c\xda\x9e\
+-\xac\x89\xdf\x00\xe14UzF\xb9\xdf'\x12\xad\x95\
+\x01\xd3N\xdcl\xaa\x12\x11\xcel\xa5\xc14\xa88/\
+\x99\x87{w/\x11\xd6\xf4\xeeF\xba\xf7\x7f)6\xf2\
+\xca\x0c,\x0fm\x02z\x15H\xf3L\xb3'k\xcf\x9b\
+f[\xa90'\xcd\x83\xcf\xd6\x9eB\xc8\x86\x83A\xef\
+\x12\xc4\xb7\xef\x19S\x89A\xc5FE\xd1\x1bg\x9a\x80\
+\xb1\x0e\xa8\x1b\x10\xe8\xf3\xe4\x06\xbcq\x222\xa8X\x12\
+N\x09\xbc@\x06%G\xaf\xaa\x80I \xeaz\x1c\xe4\
+\xfd\x18\x1c\x81\x9a\x03\xbc\xfb\xf9\x9a\xc7)Ql\x91\x9c\
+\xbdMb\x1b\x8f\xfb\xeb\x09\x1c\x9c\x94\x81\xb7\x84\xb1\x15\
+k\x13\xb8r\xc8\x16\x80\x03\xc6\x82W\x01\x95\x08X\xc0\
+\xaeW\xc2\x8fzcAKd\x04\xfc\x02c\x1bA\xe0\
+'\xa1\x17\x80\x01\x14\xf2\xf3\x14\xf2\xa6\xb7\x1b\x15\x19\xf2\
+)1r=\xbd\xd8\x98\x00\xde\xf5\xfby\x95\xa6\xd2~\
+\xc8\xb1\x8a\xc7g/,J.\x8a\x8c\xf1Qz\xa7s\
+\xbdNa\xfc\xa2\xfe}X\xaaEC2\xb3'n\xf3\
+\xb5\xb0\xe9u\xb3\x04z\xc6\xd3TO*\x111\xcf\x1b\
+\xf5\x1d\xc0\x85J\x9ac|jC\x03\xa6\x8c\xed\xd1\xc3\
+&\xf0\xce\x00l\xf8v\xd8\xdcjs\xafa:\x80\x86\
+\x0f\x86\xad\x14\xe09\xfe\x9c\xf6\xcb\xf0\xc6\x14\x9d\xba\xc0\
+\xd2b3\xfc$lM@\xb6\xef\x09[\x1dOU\x08\
+\xa8\xb8f\xa0\x5c\xe2F\xc7,\x81\xc6\xe6e\x19\xe0=\
+c\x01(\xa6`j\x1f\x15\xf5b\xe4\x00\x80\xae\x16\xb6\
+:\xd6\xa2r\xde!\xac\xa1p\x11#Q\x09\xb5\x8e8\
+>\xeb\x8e?\xe8\xc5\xfez\x0d\x07\xef\xd3M\xa5p]\
+\xc5L!\x12\xd6Q\x84\x0b\xa0\xd2+\xadB\xfa\x90d\
+J\x98\xae\xa1e\xa1\xa7\x92\x0b\xd8{\xd1:\xeb\x15e\
+\xd3z\xe5G\xfc\xbc\xfde\x9d\xe6X@\x15\x95\xea\x11\
+\xd5\xea\x92H\x7f\x89A\xa1\xe0:\xc0\xfa\xfbd\xbf\xf2\
+\x1b\xfc\x96\xfb\xda\x8b\xcb\xf1\x13\x9e\x83DN@\xc3\xcf\
+`b\x01\x22\xfd\x9c\xe7\xe8\xef\xf0o\x00Q\x0c\x93\x04\
+\x08\xf4\x8en^\x18\xd60\xa6$n\xf7^\xc4&\xeb\
+\x9c\x00\xec\x00({\xb5z\x95s\xcf\xc9\xfa6n\x10\
+\x03MK\x02\xe0A\x00\xec~f/zi&x_\
+=\xcf\x09\x88\x97x\x97\xca\x22\x00\xa6\x1b{Vb]\
+\x803\xfe\xcd\xfd\xd6\xb2\x91\x80c\x01Z\xe9W\x83\x88\
+\x1cT\xe4Z\x9f\xfc\xb1\x96\x02\xcf]\x0b\x0a\xa0\x02\xd0\
+\x86\xf1d\x1d\x09\xbc\xb4&\xe4\xe7\xae@\xdeX2\xd4\
+\xf7l\xadQq\xac\xcaQ\xaar\xd7\x988\xbd\xf6*\
+&\x12\x7f\xe78`6\xc7F\x956\x8e\x84\xcc\xf9h\
+\xfd\xb9?\x99\x90W\xcb\x99\x80K\x5c\xe09y\x9e\xf6\
+\x19\xa0\x100G\xacS@\x84\x81t\xe4\xa2>_\x95\
+(\x158\xcc(\xd3b$\x10\xd6C\x02\xa9\xc6\xc9m\
+>\x18\xd6$\x06\xc4\xb7\xd2\xefTba\xbd\xdaGy\
+\x9fL\x17\xa8D\xcb\xb9\x9a\x95B\x9aK\xb5\x1f\xdc/\
+b\x80\xf9\xf9K4\xd8\xbcp\x15\xe1+&\xf0qD\
+\x02\x89\xa6,$\xd0^\xe2|\xd6\xb1D\xc9\xfev\xdf\
+=\x97\x1e\xd8\xef\xd5\xe1%\xc4\xfc\x80}\x8bB\xae\xf7\
+\xf8\xd9a\x8d\x96\xc9\xc1a\x93\xfb\xfa\xef\xb0\xf5\xf9X\
+';\x97\x0b[\x01\xd3\xdd\x9b\x87\xcd\x95\xd6E,O\
+\xab\xdb\xa7\xb3\x00\xe4~}{\x89O\xb7\xd7\xda^{\
+\x06\x0c\xb2\xc7{\xf7\xc3a\xd3\xfb\x9e7l\xad\x08\x13\
+\x83\x1b\x7f\x126\xfd\xdc7\xc3\xa6\xef\x7f\x1c\xd6$\xe8\
+\xf7\x0ek\x0aNz\x82\xcf\x15\xf6[\xa8\xc5\x00+\xc0\
+\x90\xe9\x0cT\xeeM?\xb8v\xd8\xfa9\xab\x82h}\
+\x89/\xf9\xd3\xa7\x855@>15q>fm\x8e\
+9\xae\xca\xb1xP\xc1J\xcb\x0fF\x99\xeb6\x9d\x80\
+8 &\x94}\x88!\x9b\xad\xae\xc4#w7a\xf3\
+\xef\xcdc\xe4\xc6W\x86e\xe1p\xf2\x1b\xe3\xc3\xc6#\
+\xc7#\xd7\xdel-\x9e\x01\xb7\xcd\x8c\x80\x9c\xaePZ\
+c:\xd3\x8c!\xa4A\xd0\xcd\x91\xa7mT\xe32\xf9\
+e-C\x09\xb0\xd2\x82\xa8\xc4^\xc1Lk\xd6\xc3\xc2\
+\x1a@ \x01\xf7\xd2\xe4\x00\xcc8\xe7\xf8\x07\xfb@\x5c\
+M\xe4Y\x1eD\xb4\xcez\xc88||JX\x137\
+;\xaf0\x7f\xf2\xb9\x18S9\xbcyx\xcb\xf0\xe6f\
+\x9d\xe5\xdf\x1f\x8f\x0e\x9b\xfe\xff\x95a\x0d\x90\xf5\x88E\
+\xc3b\xb8t\xd8\xdcj1\x03/\xa5Y@\x84<\xc6\
+]\xb6\xdak\xfc\x05q\xc2\x98n\xf2\xf4\xe6~\xe5\x94\
+\x94\x02X\x15\x0a$\xea(\xf8\xc6\xd7\x02\x5c\x01!(\
+\xf5D\x02=\xef\x1b\x875\x05\x03\x05c\x8ch\xfeJ\
+\x9cv\xa5\x8c\xf3P\xe3\xc5\x01\xd9zYSMh\xd6\
+\x88\xd7\x14\xcehC\xe5\xb9Q\xadd\x9e\xa38\xc7\xbe\
+\x00\x04x=\xf3<h\xbdZAi:T\xfe#~\
+\xed\xb5\xd20\x17_\x90\x857\x85\xee\xcf\x845\x0c\xc7\
+\xbc>\x05\x00@\xdc6\xf3!\xc0Yi\xe0)x%\
+\xa0\xb3\xb7z\x96\x82\xfaq\xa75\x90\x98U\xd6\x9b\xf9\
+\x8c\x9b1lup\xc4\x01K\x8cL \x84zx\xeb\
+\xa5\x07\xb9T\x8do\x9d\x95\x92\xbe\xa2,\xe1\xec\xe7\x0c\
+\x0bX\x1d\x90\x02\x08\xa2\x15\xe6\xc7'\xf5h\xbf\x03\x09\
+r\xdf\xcfSWy\xa5\xa2\x0b\xa9A5\xf5`\x1dt\
+\xfd\xdcZ_\x07tj\xb3>\x0f\xca\x17*\x8a/\xe2\
+\x12\x02_*\xe3\x12z\xd7\x9d\x07\xf7\xfc\xa0\xff\xe3\xb7\
+\x88\x1c\xa2\xac\x11\xc3\xbaPQ\xe8\x16\xe0c;\x0f\xbe\
+Y\x02\xd2;4\x95N\xd4^H<\x0a\x98\x00\xc9u\
+\xf4\xd4\x13\x81\x09\xc0De\xc5}\x92\xe8\x08\xb8$4\
+\x16\xb8y\xf5\x17\x0ak\x024\xc8\xa7\xd7^\xa5\xfd\x22\
+I\xa9\xd2cE\x14C\x80\x0c\x99\xf3wl@\x01\x9e\
+\xcf\xad\x17)\x03\x07\x09\xeb\xe6\xa3\x8b*\xfe\xe6\x9e\x8b\
+\x0a\xb2\xeb\xab\x9em\xbdp\x7f9\xdbZ\x11\xc9Jm\
+\x8d\x07\xcc\x03w|oXC\xb13\xf6\x0a\xa0\x01`\
+\x91@}.)F\xb4\x1c\xb2\x17\x7fJ\xb7\xe7\xde\xdb\
+\xcd9\x17fL\x10M\xe3\xf3\x0f\xc7\x84M\xaf\x87\x0c\
+W\x1a\xae4\xbd\xfer\xf8\xc50\xad\xcf\xe1\x94\xb0\xe9\
+\xf5\xc1a\xd3\xebc\x979\xb2\xa1q<\xab\x1cgO\
+\xdb\xf6Fa\xd3\xeb\x07\xc2\xa6\xd7C\xc2\xa6\xeb>_\
+X3\xde3+D\xa5\x01\xa12\xb8\x93\x95.\x89\x81\
+\xf9\xaa\xf6\xb3}\xf9\xe2\xb0&\xe1\xf0y=g\xeb<\
+\x99:\xa5\x1eK\x8c\x85x\x95uf=A|=o\
+\x09<\x7f!\x90\x17\x80\xa2\xe2K\x14$Z\x12G@\
+\x80^\xff\xf47u\xa0kM0\xb7\x5c\x82\xc5/\xd8\
+\xef\xf6K?\x8e\xac\x0b\x88K\x93\x00\xa0\x08x\x14 \
+f@W\x07\x22\xa0P\xcf\xa7\xbfk\x1f\x13\xf5r\x9f\
+Q\xd2hV\x00\x06\x00`\xd6\x9f\x84\x0aP\xe2s9\
+\xf8\x1c\xd8YAp\x90\xd4\xbe\x14X\xf0K\xfdT\x94\
+\x1e(\xe8\xc7\x8dZ/\x00\xb3\xbe\x12/\xc0\xb1^\xf2\
+\xf9\xa8\xf0\x0bhT\x0a\xf6\x03\x90\xdc\x07\x89\x06?\xad\
+\xe5\x81\xe8 ?\x01\xc8u\x7f$\xeaZ\x1b\x04\x06\x12\
+k\x81\xba\x04\x1c\x85T\xcf\xba\xd6\xae\xab\x845\xcf\xd9\
+\x01o\x9dZw\x12e-\x05\xd9rT\x01\xa2J\xa0\
+1`\xa8\xaa\xcf[z\x94\xcb\xef\xf6@\x86/\x07>\
+\x0d\x82\x07fOy\x8a\xc6\xedWi\xce\xbf\xbfyO\
+X\xe3/\xf5\xc6\xba\x0f\xcey\xf7-?\xf7\xe6\x9ba\
+\x8d\xb6DN\x17(Ul\xe7\xb4\x0a6\x95ub\xb4\
+\x00\x04\xe3\xf1\xec\x07S]RcB\xe2P@\x89\xde\
+X\x80\x87s\xcd:\xf5\x1c\xecW\x8c \xaa\xdf\xcek\
+\xf3\xae\xc5\x07\xf6u\xb6\x10\x02\x02J\xc4\xe9\xa8\xf4\x0f\
+\xc4\xfc\x12X*\x8a\xac\xf1]Y1\xabJ)\xcd\x02\
+\x0c\x19\xfb\xcb\xb9K\xfc\xd4X\xacL\x90U\x886\xef\
+\x08k\x181\xc4\x1d\xedO\x0c\xb4\xec\xbd\xae}\x0e\x00\
+J\xd1Hb\xa4\xc6$b\xa8\x002\x04\xa0\x95\xc0\xea\
+m\xce\xe7Pc\xdc\x88\x8d*D\x5c;\x01^\x22\xb4\
+*\xac\x02^\x80YW\x09\xa5\x0d\xa5\x82\xa5U\xa3>\
+w\x02\x84U\xd9\xd6\x03\x8f\xd2\xeb\xbe\xf9\xfc\x99\xe0\xd2\
+j\xda~3\xac\xf1O\xfc\xb1\xf8\x22\x13\x91\xf1]a\
+\xfb3\xc6\xcc\xff\xd63_*\xfe\xc6}\xa5_\xa9\x16\
+\x1e\xcc \xf1\xa88R+\x86^\xec\x04\x14K\xdcS\
+\x85\xd2\x189\xbd\xfa\xe9\x070UL\xe5*\xf1X\xe7\
+21<\xf1\x87\x84\xd49\xea\x1c\xc9\x16Q\x14\xe5\xfa\
+\x7f~\x1c\xc0\xdf\xb5\xc4\xd5y\xc1\xbf;\xc7\xf2s+\
+\x0c*\x00\x8c'\x855\x85!c\xea\xee\x92\xe3\xac\x8f\
+\xcf1h)\x9eX\x95z\x0c\x80T\xb3/M\x81d\
+\x8c\x00\xe8\xed\x03~{zJW\x98\x9fS\x02'\xee\
+c1\x05\x92\x19\xeb\x9c\xa3]R\x09\xbb\x9ep\xdf;\
+\xd7\xed\x1f\xda\x1aZt\xba\xc2f\x15\xe0\xf8\x1d\x00\xbb\
+<\xc7\xb9\xd7\x9d\x93\xdb[\x855q[2\x17\xea\xfe\
+&0iZ\xc0\xf0\xf7a\xcd\xf8\xd9\x8c36\xbf\xda\
+\xfcr\xf3\xab\x06\xa8N\x8a\xfb\xf8{ak\xeb\x8ex\
+q|lX\xc3\x10J\x00\xbe\x80Pc\xf2R\xeb\xa1\
+\x80$-\x0b\xc9 \xad\xc4\x9c(k&\xd8\x0a\x1a\x05\
+l&0S\x80.&\xa5<#\xfd\xf3\xf0\xe6\xb0\xe9\
+\xfd_\x1f\xb6\x026\xe2\xd5jQ\xd7\xe2\xa5E\x85\xa6\
+\x0e\x8d6\xff\xef~\x8b\xaf\xe4\x87\xa9\xd5Pb\xabW\
+\xc9s\x0e C\x0b\x02\x95_AIaGK\x96\x82\
+\xb5\xf5\xf0\xadyN\xc6:\x85%\xf3\xb5\x9a.\xd6\xf5\
+\xe4c\xb4T\x0b\x04f\x1cf\xb4\x02\xa2\x02\xa8\xb1\xb0\
+\x09\x18\x16s#\xa7m\x150vPX\x13\x17%\x10\
+\xbf\xb7zY\xe2\x80\xfed\x8e#\xbbVs\xf0\xa5#\
+\x99\x11\xb5\xeb6\x95(\x22\x14\x1c\x0fq\x1d\xbd2\x10\
+\xb7\xfc\xc3\xdb\xeb\xe5\x5c\xd3\x9c\x13^bA\xc6|\xa9\
+\x14\xa8@I,;\xcafQ\x97!\x96z\x9888\
+\xc0\x81\x83\x15p\x10?\xf5\xa5\xfc\xe0\xff\xb5\xde\x98\x1a\
+7$\x10\xe4\xa0\xf4\x14\xaa\xf0B\x8e\xfb9\xe9z\x03\
+\xf5\x1a\x09\xc4 P\x1eT|\xf7\xe1D\x08?\x90\x81\
+\xc0?\xe4\x02\xfbf\x93\x90K\xb8\xddO\x0eE\x82\x8c\
+zD\xc5W\xe0\xdb\xf7\xb8\xc6Sm\x01\x0c\x8e\x9dC\
+\xf2w\x00\x18\x16\x06\xe4J\xa0na\xa6\x88H\x05\xfa\
+\x09\x00\xec7FPk\x85D\xadS\xf1\xae\xef\xddO\
+T\x1b\x89\xf7\x85\xf3~I\xf00J|N\xf7\xdd\x01\
+D$\xcc\xf7\x00\x07\x09\x90\x8d\xa9b\x9f\xaa\xa5*\x1c\
+\xc3\x1b\xc3\xa6\xd7\xb7\x875s\xab=\x8f\x0c \xa9\xaa\
+\x0e\xaf\x1f^7\xbcn\x16\xe7Z\xe6\xcc\xdec\xe9\x9d\
+\x9d\xee\xfa\x1c\xf0\x8d_\x0e\x9b^\x7f1\x9e:\x9e:\
+\xf7(-\xe22\xa8\xfe\x9d\xda}\x01P\x97M\x95\xff\
+\xaf.\xbd\xa4\x9b3.\x89kQ3\xff=+q\x9f\
+[\xc6:\x0d\xef\x0c\x9b^\x0f\x08\x9b^\xaf\xb4\x00\x03\
+;\x97\x0f[)\x93%\xe2\xc4Q\x98?\xacu!\x11\
+\xd3\xf1\x84\xb0\xe9\xf7n\x18\xd6P\xa7T\xecL\xf3\xc8\
+\x80Mo\xad^\xbb\x02X<\x07\x8eJ\x00\xee`@\
+\xe9\xd7\xcbl\xac(Q*\xe3 \x05\xf0=\xc0c\xfd\
+8P%\x1aD\xe3\xac\x1b\x81&\xaa\xb4\xc0_E5\
+\x13\xa3JP\x8c\xa1\x91p\x0bH\xb5\x1e\xa8\xcc\xa1p\
+\x0b\x1cQ\xc0\xb5\x8a\x98\xcf*P\xf2sZ\x14\x5c\xb7\
+\x840\xf7\xd9\xe6\xb8\xb0F#\xe4A\x0beUe\xb2\
+\xa8\x8d\xf6\x83DW \x07\x10\x04|\x09\xb8\xad3\xeb\
+N\xa2\xd1\x05\x82%\x9eh\x0c\x19&\x02Jq\x8fl\
+\xf7\xe3R\xf9\x15\x09\x08\x0a2\x00\xc1\xdf\x97\x90\xdb\xc7\
+\xfc\x90@\xd3T\x08\xa2N(\xdb\xfc\xa1\xf7\x01\xb4\x01\
+<TH$\xd6\xee?\x86\x83\xf5\x030\xd5\xab'a\
+\xb1\xdf%\xa6\xc6\x0a\xa6\xdaq\xd3\x1a\xb1\xf8{\x01C\
+R\xf0\xea<\xa4\x01\x80:\x9c\x80\xab\x16\x98\x02\x840\
+\x8dT\x8c<\x17\x14Q\xe2QD\xe8h]`\xe0\xf9\
+\x5c\xd9k_L:c\xaa\x04T\xb9\xbfk\x7f\x98\x0f\
+\x9f\xbd\xd3\xe5\x17\x89\x1dfOg\xcd\x8b\xffbX3\
+\x0e\xcf9- &\x22\x8a)!q\xe7g\x89\x82J\
+\x84<\x1f\x00\x9a\xbf\x93\x95g\x89e\xf9\xef\x0c\xd4*\
+\x11K\x7f\xb9\xfdaX\x13h\x1e\x18\xd6\x8c\x93{t\
+\xa9\xca/\x8c#\xcf_\xeb\x0eq\xc4\x0cdk\x9c+\
+?\xa7\x17\xd8~\xa4q\x10\xbb\xe2\xdas/\xfe\xa2u\
+\x92\xcf\xbbD\x19\xb5\x16`\x12\xa5\xb8_\x01\xccz\xf8\
+=o\xf1\x02\xbf\xe9<\xa0\x8d\x03\xf0\xb6\xbf\xd7\xe9.\
+K\xeb\xd0\x9b\x96\xc0~zj\x8bJt\xee?\x95\xa2\
+j\xb1D\xc1\xa5F\x9f\x09\xabV\xb1\x02*h\x19\xa4\
+\xdf(\xe0X\x00\x89*+\xae\xbaoN\x9dP(\xba\
+\xc9/7\xe5\x89\x00\x00 \x00IDAT\x22bW\
+s\xe2\x15\x16\xc4c\x00\xb6\xcf\x85\xed\xef\xdfj\x1c.\
+*6\xb1]\x8c\x0d-6\xc9\x5c\x1b\x0f\x09[\x01\xed\
+\x12U\xed\x0aM*\xc9\x15\xa0wb\xa6\xf5\xbcU\xcc\
+U\xda$\x1c\xa6\x1d\xa4\xdf\xd8^(\xaca*\xa1\x1c\
+\x0b\xc4\x01\xd9\xfc\xa2q\xc7\xc9\xc4+?j\x1fk\x89\
+q}\xe9\x8f\xaa\x92o]\xe4~+\xa0\x1d\xe3\xe3\xfb\
+U\xa8Y\xe2\xbd^\xbc\xd59\x04\x10t\x1e:G\xec\
+K\xe7\xa7xMA*\xcf\xc7\xd2\x86\x91\xf8\x88\x07%\
+\xb6\xee;\xcar&\xb4\xe3\x15\xc2\xd6\x04\xc7s\xab\xf5\
+\x018\x19\xc3\x9a\xb1\x88*\xc24::\xc0\xa84\x07\
+\xce\x10\xd6\x00%\x87\x85l\xe3\xf4z\xfe\xb0U\xa3b\
+{\x81\xb0\xd5\x9f\xfb{\x15\xa7(\x04j%\x06\x0cI\
+\x1c3\xcf\xa8u\xe6<6\x0d@~ /\x01\xf8\xf4\
+\xa2\xd0\x12\xcb\xbee\x093*\xb5P\xf8\x15\xfe\xbd\x12\
+wS\xdb2~2\xa6\xbd(\xf5Z\xa72\x01\x1e\xfe\
+6\xacYw\xc9`R\xb8\x1a\x9e\x1a6\xfd\xfc\xc5\xc3\
+\xa6\x7f\x7fZ\xd8Z8-\x7f\x91\x05\xb0\xf1\x8ba+\
+#m\xbb7\xac\x99.\xe0\xbcJ\xad\x13\xd3Qj*\
+\xc9\xf7\xc2\xa6\xd7\x7f\x0c\xdb\x9f\x89Y\xf1\xa7\xd6\xd8/\
+\x855\xeb\x14\xa3(\x0bT%R\xae\xc0\xaae0[\
+*g\xf1\xfaw6c\x1di0X\xaf\x19\x17n?\
+\x96\xe3\xe1\xedKS_\x00\xac\x18o\x09$\xd5\xcf\xd1\
+\x80\x12\xe7)\x00\x1a/,\x8eu\x7f\xc4;)\x06\xeb\
+>\xd6\xbfc\xae\xf0K\xe2a\xfb\x17 '\xaeN\x06\
+|i\x81$S\x82\x18d\xf9\x7fqg\xe6\x93{\x8b\
+\x8a\x1b\xc7P\xa8G~z\xb2O%5\xf0\x81\xabH\
+U%\x88\x81\x83\x1f\xd9\xa8S\xa7\x83\x18?\x1a\xb6\xce\
+\xa7\x9c\xb7\xc1\xaf\x9b\x03N\x8f\xed\xb9\xb3b\x97\x0e\x86\
+C\xac@S\xe2\xdf9\xa0zU9\xf2=\x04\xb2\x1b\
+\xd37\xbd\xdbL\xd5\xd8\x1c\xb4\x04\x06\xe5H\x03F\xf8\
+J&\xaa\x97l\x10\x18\x8eH\xa2\x09\xf1\xa1\x8e\xdaU\
+\x88\xcaq\x0ad\x1d\x88\x02@=\x90*\x17*\x9c\x01\
+o\x5c=\x91\xb9\xc77\x94\xab\x9b\xcc]ik\x82\x83\
+B\xf6\x83y\xf2\xfc\x128\x13c90\xefS[Q\
+\xf2\x1cU\xda\xbe?\x1f\x09+u\x10\xe2\x9cT\xb1\xea\
+%\xe4\x98|\x01\x84P\xa5$r\xa8]6\x8c\xc4B\
+@\xad\xc2\xea\xfeqh\x00\x08\x0e\xd4\xef\xbb\x8fkb\
+\xb0\x5c\xb7\xe7\xefK\x0f6uc\x00\x91\x85\x0fY\x87\
+\xcc\x0a\x1c9\xee\x87d\x80\xf7\xe8\x85\x0a)P\xd7\xfb\
+Z\xbdLYy\xd8yC\xd8\x0c\x10,T\xc8\xdb.\
+\xc8% \x8c\xd8\xde\xf4.KOd\x88\xda<\xb9\xe9\
+y\x22~\x95\x01\xddx\xd9\xb0u}U@\x06\xf9\xd4\
+\xdbu\x96\xd4&8\xebR\x11\x1b\x9e\x1f\xb6\x06\x12\x9b\
+s$R\x9d\x07U\x89\xff\x1d\x1f6\xbd\xde<l\xfa\
+\xf7\xcf,\xe2\x84\xc6\xc9\xcc\x8c\xbb\xdd\x95Bm=\x97\
+\xe3MU[-\x03\xdbK\x85\xcd\x08\xf2\xaff\x04Y\
+\xe0\xd5\x8b\xcb\xe4s/\x91\x1c\x8e\xc5\xd4\x0d\xc0\x9d\x03\
+\xc7\xfe\xf0*\xe0\x95\x10g\x22V\xbd\xcc\x90`_\x87\
+\x14\x95k\x1fQ\xa9\xd2\x86P\xd1\x15\x98\xf4\x896 \
+\xcd\xefIt\xfd\xdd\xac\xdcU\x02\xa2R\xda\x01U\xa5\
+\xbe\xdfS\xe7{\x00\xd3~\x90`KH\x01\x82\x0e0\
+~\x0b`\x01\xd0@\xddU\x89\xa0\x92>\x7fM\xafo\
+XzR\xcbOZ\xef\x9d\xe6A\x1d<\x02Q\xaf]\
+Og\x89\x16\xba\x8f\x9eO_Q\xc7\x1c\xf0%\xe1\xef\
+\xc7\x01\x12\xb7S)_Ui\x17\x7f)\x01\xd7z\xc1\
+\xef\xc4\xf9\xf3\xe9F\xf4L%\xd2\xc1\xefyH\xec\xba\
+\xf1\x87u\xdf\x01=\x12\xbf~\x5c\x0e\xa0\xd0\xf8<\xad\
+\x1e\x98!\x80\x85\xac(\x07\x918\xa8\xc4\x15\xb8\xe8\xb9\
+\xa4}\x91\xad6\x9b\x7f\x0f\x9b.\xf3Sa\x8d\xf8\xac\
+1\x9e/\x0ek\xc6Ty\x0e\xbe$\x00\x02Q\x01\xbe\
+\x8a\xbb\xebD\xc9\x06\xfc\x12\xa9\xe4\xa7\xb5\x82h\xbd\xf3\
+\xf7\xbau\x5c\xd7\xad\xe2\x9fL\xb5\xfaw\x9f\x1b\x85\xd3\
+\xfd\x14\xf8'\xd0]\x95H\xeb7\x99\x0a(\xdcU\xf1\
+\xce\xe7O\xe5\xbb\xd6\x03&\x9f@*\x13\xab\x9a\x82\xc0\
+\x7f\x12\x1d\x93`%\xd3\xb0\x80\x12\x957-^\xa8\x91\
+\x17M\xb1V\x09\x0d-\x0ac\x1aU\xb01\xd4\x00\x87\
+ZB\x9c\xa3\x00\xfbL\xf4\x0b\xf0\xc3\x14\xe2\xd71~\
+0\xfd$D\x19\xd8\xd7\xfe\xc8}\x5c\xc4;LE\xc0\
+8\x8d\x06=\xdb\xcf\x9fm\xcf\xf6\x0da\x0d\xf0\x04x\
+\x7fx\xb6\xae}v\xf3\xb9\xcd\xe7\x1a\x7f\xa8\xd7>+\
+\xb4\xd5\x02CkF\xa2m\xff\x00t\xfa\x16\x16\xd7\xef\
+\xf9\x10\x17\xbcs\x02\x1f\xbf\xcc\xf5\x85\x91\x88A\xa3 \
+\xf2\x8a\x0c\xd8_\x9d\xada\x12i~'\x01\xb1\xe1\x15\
+a\xcdx>b\xc3\x99\x88\x98B0>!\xac\xa1\x00\
+\xf3o\x00'@S\xdf\x8a\xd4\x7f\xa9\xc8\xe6\xfd\xad\x8a\
+\xa1\x02\x88\x84\x8c\xa8\xb2\xf8\xcc>3\xfd!\xe3\x88^\
+\x83\xa2*\x80\xe2\xb5Ll\x0a\x98\xd7:$\xd1\xe7\xaf\
+\xb2\xc7\xd9\xb8\xbd\x02\x86\xac+\x8c\x9a\x9321\xfd\xcd\
+B\xd5\xae\x96X\xa2\x9fY\xd8(\xb1Y\xe7\x8e\xebN\
+@\xac\x80\x85^3\x06\xf3\x03\x10@\x5c\xd3\xfbXg\
+\xfc\x96s?\xd7W\xf5\x22'\x83\x02\xb0\xce\x0f\x14c\
+\x82\xc6\x17`\x05\xf0\xca\xef\xe4\xb9\xa9\xb7\x9f\xbf\xdb\xde\
+2\xacQ\xbf7\xdeP\x22.QO@\xb7Z\x98h\
+\x14X\xaf\xceu\xfb \x13\xb9\xf2Wz\xdas\x7fn\
+\xdf\x15\xd6\x00\xc5\xfcb?NQ\xdcC\x0c\xd0\x18\xe0\
+\x5c\xaf\xc5\xcc\x15'\xfb\xb9l\x1d*\xff\xab\xa5\x98\xc8\
+\xe1\xc5\xc2\xd6\x96\x87\xf1\x02a\xd32\x7f`X\xe3\x8f\
+rz\xc6\xf0\xa9\xb0\xa6\xe7<\xa7\xdb\x8c\x8f\x0e[\xa7\
+H\x14\xd0E\x84\xf2%a+\xe3axYX\xc3\x88\
+\xc1\xe80\xae\xfcfY\x00\xceu]\xcc.c\x0c3\
+\xfe\xd2*\xb0\xf9D\xd8oa\x14\x0240\x1d\xc5\x0b\
+\xe2@\x85\x12\xcf\xcb\xf9\xad\x15\xc0\xd8\xdcd\x94TB\
+\x9cZ\x05\x0a\x0b5V\xd4z\x17\xaf\xd0\xb80%\x82\
+\xc8\xb5uO\x8b\xce\x97\x02\xb2\x02\xad\x96:\x05\xae`\
+\xd6\xffbe\xd8\x8e/\x0ak\x00'\x05\xe5d\xea\x02\
+r*\x7fv\x8e\x8b\x17\xf3\xfe`\xe6\x17\xf5\xff\xbc\x8b\
+\xd6F\x15\xa8\x9c\xfb\x00\xb5\xfc\xfd\xbdn\xc0<\xb6\xe3\
+\xd6M\x8fa:\xde\xcdI\x93E\x0f\xf2\x8f\xc3\x9a\x0b\
+\x88\xf0\xe3\x91\x0dR\x04\x09\x8a1\x80\x11\xe8\xbc|\xb2\
+\xa3\x1b1#\x8e\xf5\xa19\xef\x5c\x82\xe0`\x85X\xf6\
+\xe3\xfd n1V\xf0\xbbk\xefCm0\x1b\xa6\x17\
+cX\x03\xe1%p\x8cw?\xb9\xeb\xe1={3\x86\
+!Ey*\x80\x15\x98Ip\x05\x9e\x1c\x94\xef}\xa5\
+C.\x91\x8a\x08\xcb\xcf\x91\x09\xf4\x89\x8d\xa8\x97\x83X\
+\x8f\x87\x8a(\xf5b\x89\x81\x85\xe5s:\xb88B\x8e\
+Q\x80/0wp\xb4\xe3\x05\x1b\xa6B!\xa9\x1c\x10\
+\xe6\xc3\x9e\x1c\x13\xf1\xf3T\xb9F\x91\x81\x8cz_=\
+\xd5(\x92\xe6I\x0bP]\x9f\xebFm\xfa\xfa\xd2\xf3\
+\x85\x0aT\xd7\x93\x14\xc1\xea5;kV:T\xc2N\
+\xda~{\xfb\xed\xb52\xb8\xb9_26\x1c\xf0\xee\x1f\
+5s\xc8\x1e\xaa.Q\xb4\x17&0\xe3\xfe\xba^\x15\
+\xb3T\xa1\xa6&o\xbdO\xe9\xfe\xff\x0e\xff;\xaf\x83\
+\xa5r\xa7\x92\x96\x8e\xa7\xd4\xab\xf5(I`>\xb4\xac\
+S\x09D\x89\x13I\xa8\x7f\x7fA\x0a\x87\x9b\x0e7\x1b\
+n\xb6jUH\xcc\xf58\x0e\xef\x1b\xde;\xbc\xb7q\
+\x00\x02A\x95Cj\xb5\xdf\x08k*\xff\xd4\x8cS\x84\
+Q\x0f[\xed\x97\xdc\x8f%2H\xeb \x03\xc1\xda\xff\
+\x1f\x0dkT\x84\x89\x96\x18c\x95\x95\xe4\xea\x99\xb3o\
+T*\xa8z\xa3$\x1d\x11\xd6\xcc\xb9\xe7\xc8$p\x9e\
+\x8f/@\x00\xa0\x88\xe3\x074I\xb0\x01R\x12W\x15\
+\xddnz@\x010\x90Y\xc0Y'6\xa9w\xaa\x00\
+G\x80\x1e@\xc188\x81\xbc\x03\xdc\x1cv\x07\x91\xc4\
+\x9f\x88\x1c\x86\x89\xebU)\x17\xe0\x09\xa0\xa8w'\xa0\
+U\x15,~\x11\x92,\xc1\x93\xf0ge\xb6\x185\x02\
+9@#?k\xdf\xf3\x1b\x90e\x00\x86\x8a\x9d\xfb\xdc\
+\xf7\xfa\xda\x7f\xfc\x83\xfd\xec\xe0v\x90zn\x18\x07\x12\
+p_\xab\x1fX2 \xd7\x95\xf7\xbb\x02\xef\x1c\xf7V\
+\x01\xb7\x9e<\xf3\x83%\x82\xf65\xa0\xea\xcc\xdd\xd8M\
+\xd7\xe3\xcb\xe7\xa4\xa2O\xe4\x89\x1f\x01\x80J,%D\
+\xee'\xff'\xd0\xc2\x10\x01p\xf4\xe3\x1d\xb3\xa2\x5c\x89\
+\x84\x03?\x03\x03\x01c\x05\xc8\xb9\x0e\xab5%E\xdd\
+\xaaWU\xebH\xfe\xddJ \xf3\xbaK\xf3\xc4\xf4\x08\
+\xcf\x0f\xc0\x92\x95\xefj\x95\xd1\xf3\x9f\xda%\xeeG\x8d\
+A\x94P\xe4\xdfG\xc5\x1f\xae\x1b\xd6T\xa22\x01A\
+\xf1\xaf\xca1\x80 \xfdf\x050\x99\xc0\x15\xb3\xe8\xc1\
+\xcb\xb8\xd2RIO5~s\xd2k]\xe7\xfa\xad\xd6\
+$-\x15\x12A\xbd\xbd\xff\x16\xd6\xf8\x9b\xae\xa5ms\
+\xb7L4\xaf4w\x8d\xae\xbd\xd4\xd4\x93\xed\xb3\xfc\xbd\
+\xfa\x5c\x00{\xbd\xc4\x00\x04\xe7.?\xa9\xe5\x02\x10\xaf\
+\xa2\x9c\xc0v\x9c\x02\xf39`\xbde\xa2A\x93\xa5\xd6\
+q20+\x01\xa5\xf2\xfc\x91\x9c\xa7-\x01\x15\xff\xfc\
+\xed\x92\xc8O\xab\xe0\xe6\x9b\x9b\xafS\x14j\x1d\x19\x9b\
+\xe6\xbe\x89O\x8c\xf9\xfbv\x9e\xbf\x12\xcf\x8c\xff\xea<\
+\xe1\x8fO\xc9\xb8\xc9\xf9@TO\x22\x96\x09\xc7\xf6R\
+\x8b\x9a~Q\xd5i\xe6\x9c\xb8P\xf3\x87+\x0f\x87\x0c\
+A\xfd}w\xd8\xf4w\xfe/\xacI\xe0\xb5\xd8d%\
+\xd88\xbb\x0a\xb8\xfb\xf8\x87_\xf1zZ_\xfc\x02\xff\
+\x99\x9f\xaf\xc4\x1c\x8d\x17{AX3\xf6V+\x16\xff\
+\x92\x8c\xd8Z\xdf\x09\x88\x8f7\x09[\xa9\xbd\x950%\
+\x13\xb6\xe6\x97\x9bf\xa3\x22\x891@\xecL\x85\xffk\
+\x09X\x88\x8f\x15lT\x94\xad?\xf1\x18\xe0\x01`\xdd\
+W\xa2\x01\xd3\x12,\xe7\x82}d\xbd\x89;\xf9y\xcf\
+\x1f\xa0H\x142\x81\xbc\xf1\xdf\xc2\x9aB\x8d\xb8\xff\xf0\
+yN\xd1\x9e=\x8f\x9em?\x8at\x01\xbb\xceQ\xe7\
+y\x02\x94\x18\xc6z\xe0\x89\xd9Q\xcf/5\xfb\xac\xcc\
+o\x9f\x1d\xd6\xb4\x02h\xd1\xb2\xee{\xad!\xe7\x15\xa0\
+\x19\xf0\x86\xe1\x91\xfbZ\x1c\x5c\xffn\xffZ/\xa8\xdb\
+}\x8bOWx\xac\x16)\x0c%\x14\xf3\xccGJ[\
+\x02\xd0\x90\xe7\x8e\x84}|G\xd8\xda\xb2j=\x0d\xd7\
+\x0e[\x7fO!hxDX\xa3\xbdr\x95\x85\x89=\
+\x1e0\xee\x1d\xf76\x1a\x10\x19\xb7\x9a\x16'\x0f\xab\xb1\
+\x88D'\x93\x91\x85\xf1A\x03k\xbc\xefx\xbf\x10{\
+\xac)\x16\x09\xd4n\x0f\x0fk\x00\xde\x5c\x07\xc5\xbc\xc4\
+\xe0\xca\xf3\x0aP[\xfe\x90\xf8\xab\x16\xd5l\x15+1\
+`\x80\x17\x11M-:\xfe\x0e\xed\x80\x07\x855\xf9\x15\
+\xcd!\x85\x01\xfbH\xe2\x9c\x85\xb0\xf2\x8b\xa6\xb8`\x1e\
+\x88\x7f\xb5\x94\x00\xc8\xb5~i\xbdJ\xb1H\xa2\xdb5\
+\xc5\xc0\xf9-\x0f\xd6\x0a\x90\xeb\xd4\xf3r\x7f\xeb\xcb\x14\
+\x09\x00\xfe\xb3\xc2\xa6\x9f;2\xac\x11s\xec\xf6\xfb\xde\
+\xaa\xac\xd8\xf8\xc6\x97\x98\xef\x1ec&\xbe\xd8P\xe1\xa3\
+\xdeqD\x22P\x0f\xcf\x9e\x9d\xa0\xf8\xbci\xb2\xbfI\
+$'.\xe0\xe3aMb\x81\x22\x9c\xbd\xdd\x15\xc8\xaa\
+\xfc\xa0\xdc\xa3r\xaa\xec\xa3>\xb8!\x10]\x01\x98\x83\
+\x1c\xc2\x01\x00\xd8S\xd4\xa7\xa5\x12\x14\xe1\xe8\xc9\xab\xfa\
+a9l\x8e\xb1=X!\x81\xe7i*p\x12\x81\xa4\
+v\x16E,\xf0\xd7\xe3\x1b\x87\xaaw+\xe7\xadV\x05\
+[@\x0c\xa8\x88\xf4\xfe?2\x819_s]>\xaf\
+\x048EV\x8a\x12\xe7\xfe\x08\xa4\xfb\x00\xd7\x01\xc8\xa1\
+9\xd8\x00\x1b\x1c\x14\xca\x96\xdfw<J\x100\x228\
+$\x14v\x0e\x112\xd5\x8d[\xab\x8a\x9d16zw\
+\xbd\x1fJ9\xc7\xfe\xebdV|%\xd5\xbc!\xd4\x00\
+\x84d\x90TEVE\x81\x0a\xa6\x7f7\x8f4\x13\xb0\
+\x1a'w\xbd\xa4\xf8B\x08=G\xef/A\xb3n2\
+\xd0\xdb\xfcl\xf3\xd3\xcdO\x9b\x009{|k\x1fp\
+|\x02\xde<\x10v\x9e\xb1\xf3\xf4\x9d\xa7\xaf\x89|\xf5\
+\xa4\x19\x93d\xce\xfa'S\x84\xe4\xccas\xa2\xb70\
+`~\xb8\xac\xef\xe1\xe4\xb0\xe9\xfd\x1e\x1d\xb6\xfe\xfd\xd2\
+\xd4\xc0\xacA\x99\x16\xa0\xa6\x83\x93p\x14\xb53\x03\xe0\
+r\x5cY\xe1\xda\x9e=l\xedE\xe4\x98\x86\x8f\x84\xad\
+*\xc5(\x97\x95\xe8\xa2\x98\x0b\xc4%\xc8)b\xe8\xbe\
+\x94X\x91\xfda\x9f\x9a\x07\xad2\xa82\xa7\xf7Z\xa2\
+m\x1d\xdb\x1f\x02~\xad'\x90}\x81\xbd\x00BO\xae\
+\x96\x18\x15\x0a\xebV\x80\x812\xaf\x92\x8e\x92\x8fz\xf7\
+\x94\xb0\xfd\xc7\x8f\xf6\x07T\x1d\x10zm\xa9\xafcP\
+I\xf8{q4\xe3y\xb2rl\xff\x1a\xc3\xa6\xf7\xb1\
+\xa6vx\xde\x80\x8e\x04\x94j\x7f\xfa\x5c\x02F@\xa5\
+^P\x81H\x02\x18\xf59\x88\xcc\xa8\xf0\x11\xe9\x11\x88\
+\x08\x88$<\x12u\x00\x00\x7f\x8dr\x0b\xb0\xcd\x83\xb5\
+z\xf1\xfc^?n\x95_\x14`\xaa\xe8\x02|1\x86\
+\xf4\xca;\xa0=\xcf\x04XK\xbcUK\x92\xfb\xec\xef\
+\x01\x8c\xf8=\x95yc\xe1R\x0cL\xafq\xd4Q\xe7\
+J*\x06\x0c\xff\xec\x15\xf0\xc2O\x1d\x1f\xb6\xf6>\x1a\
+OU\x81\x8d\xeb\xe3GQ\xb9\x05\xb2\xd4zMu0\
+\xc6H \x99\x8c\x83\xf2\xcb\x80ks\xa6S\xab\xa4*\
+\x8c\x9e\x1bJ:\xa03\xcf\xe5\xaad\x1b\xe7d\x9d\xd9\
+\xdf\xd6Y&\xb65\xbe.\x03\xd0\xe1\xef\xc2\xd6\xde\xdc\
+)\xe0\x9bl\x16\x0f\x9d\xac\x01@\xb2g\xbd\x9e\x93\x00\
+\xcdt\x12\xcfE`\x0c\xc8\x01\x98\xf2\xfb\xf6\xbb\xfd\xea\
+\x1c\x04L\xdbG\x80\xd1\xac\xb4T\xab\xcf1\x8b8\xdc\
+~S\x08\xce\x96\xfb8\xc6\xdf\x85\xb8\xd5K\x16-\x96\
+\x02\x08\xf9\x15\xfb3[\x0e\x9cw(\xe8%Z\xa5\x82\
+\x030\xc2\xcc@\x15V\x81#.\xf6\xd2e\x1e\xf8\xe4\
+\xa5\xe7\xb8\xa9\xf6\xad\x96$\xf1\x99\x0a\xa4\xc4\x0e\x03\xe7\
+\xf8,L\x00\x06\xf9;\xd7\xff\xe4\x04\x22\xb4\x9a\x11\xb3\
+rn:\x9f\x158\x5c7\xe6#\x11_\xe3\x22\x89v\
+ab\x8a\x17\x01\xee\xbdj\xbc\xc4M\x05\x8e\xa8*\x80\
+\xe7c\x0b\xd0<y\xeby\x1f\x94H&\x06\x8d\xeb\x10\
+7\x0a\xb8\xb5\xa0\xf4\x22\xd3\xff\xaf_\x98u\xc9\xec\x19\
+\xde\x12\xb6\xf6,\x170u\x97\x14k\xcb8p\xf8\xf3\
+\xb0\x95qRb\xa6G\xe5\xfc\xf2\xd7\xe4\xbe\x13`\xb9\
+\xbf\xa6\x97\xdc'\xac)\xcc<n\x01^\xea\xf3\x8aK\
+\x8d\xfb\xcb\xf7\xaf\xf8\xd7yj\xac\x1d\x80\xdf\xfe\xe9\x0b\
+l\xd6\x15\xbf\xe0\xfc\xf2j\x9du\x15\xcd\xa2\x1c\xabd\
+;\xbfS\xfd\xbd\xa6s\x10U\x93\xf0'\xd0>>7\
+\xac\x01\x22Q\xdd\xb3w\xbf\x18[\xce\x11q\x9c\x9et\
+\x1a\x0c/\x0ck*\xd4D\x8d1\x0c\x8e\x0ekZ\x05\
+\xb4xa\xe8`\x0e\x99\xf6\xe1>\xba/\x18X]\xef\
+wQ\xa8\xdd\x0f\x0c\x8c\x04\xa4\x15JJ\x13@\xbc\x03\
+8\x17\xf7\x02T\xec7\xcf\xc7\xcfY\x07D\xd7\x89/\
+b\x04\xa4\xa6\x07Q\xd6\x12[\xcc\xa93\xd5\xcb/n\
+\xfb\xcf\xb0\xe9\xb2\x1f\x13\xb6\xfa\xadb\x02\xa4\xbf\xd5\xba\
+\x0a\x086\xa5\x07\xb3[\x82Z\x9a$\x0a\xbe\xa6\x9a\xe5\
+\xf9P\x85\x9e\x14\xaf\x0c\xe1\xa8\xb8]\x98\x0as\x9e\xf8\
+\xa6\xb5\x05h\xfc\x5cXS\xf0tN}*\xaci-\
+\xba\xc6\xe6\x9a\xf3}p\xdf\x9c\x83\xc6\xc3j\x8ds}\
+\x185\xfdxb\x00\x94\xbfg\xaa\x0b\xcd\x09\xfb\x80f\
+\x0e\x11o\x80H\x02\xad\xe5g1cL\xe7\xb0~\x14\
+\x00\x9c_(\xfd\xf6\xafV\xfa\xd4^)\xa0!{\xfe\
+k\xdd\xf9\xbc\xf2\x94\x04\x04j|4\xc6\x86<S\xbc\
+\xe3\xfd\xf8\x7f\x1a\x12\xa9\x81\x82\x01\xb3wFb\xee\x9f\
+\x14\x84\x17d\xef\xc5s\xd7\x1b:S\x01\xbf\xb7\x8e\x07\
+*u\xef\xa4\xfc\x8d\xcf\x0c[)\xc3\x12\x9a\x0a\xe4P\
+l\xae\x90=\x83\x02{\x08#\xcf(\x90\xb4\xf1$J\
+z\xcf%<~\x8eC\xeb\x01\x00\x1b\xf9|\xd9\x1b\xfb\
+\xd4\x14\x11\xca\x83f\x0e\xb0\xde\x9f\xd4\xd4;\xa6c\xb9\
+bR\x7f\xdf\xd3$\xd0\x0b|\xb0\xdexS\x04\x5c7\
+m\x04\xa2,\xdf\x99\xf5\x81W$\x15\x90\x22\xf0\x16\xe8\
+\x02\x1c\x1c\xd0\x10@\x89o<\xbeK%\xb0\xf0\xd9\x86\
+\xe2\x15w\xf3\xb2M\x00\xcd\x81s\xd8\x0e\x5c\x0f\xbe\xbd\
+\x9f\xdfl\xfe\x1fP`a\xb9\xdfq7\x7f\x9c\x07\xe8\
+\x99\x9bJ\x8f\x04\xca\x01\xeb~\xb8\xdf6\xe0\x19\xc3\x1a\
+\x0a\xa7^\xd7\xfb\x855\x07\x87\xe7\x83\xf2)\xf1\xee\xd4\
+\xbac\xd8\xd6<n\xebt\x9b\x036\x07\xcc\xbf\xbf\x1c\
+\xf8I\xb1\xaf\xde\xf8\xa3\x17\x07\xb1\xe7\xf69^\x84\x1a\
+-u}cE \xa8D\xf7\x5c\xc7\x99\xf3>f/\
+c\x1dd)z\xb7\x9f\x98\x0bj\x1d\xb5\xd3D&g\
+\xa6\xccI\xeb\xe7\x18n\x106}\xbccw_\xb3\xfb\
+\x9af\x1cT\x1eH\xc4D8\x8e\xcd\x83s\xderV\
+\xd6\x86C\xc3\xa6\xd7\xef\x87M\xff~tXC\x89$\
+\xa2g\x9c\x9e^X\x09\x1d\x15Uc:s\xbc\xd8\xf8\
+\x9e\xb0y\xec\xe7d\xd3\xeb\xc7\x96\xb9\xba\xdb\x9b\x87\xad\
+\xa2\x82\xa5\x1d \xf0\xd3c\x9b\x81\xc6\xcc\x18\xbaMS\
+\xc9\xc9\xca\x0fj\xde\xe6\xcba\xeb\xdf\xaf9\xb2\xe9\xf8\
+\xea\xa0\xec\x0e\xc2\xea1\x14\x10H\x0c\xf48AH9\
+j\x01\xa6\x84.+wU\x01\x074q\x84*\x09D\
+\xcf\xb4\x028`%Z\x00#\x95=\x8c\x85\x9e\xf2\xaf\
+r\xaeG\xdd~\xe2'$\xe4z\xc3\x00\xae\xee\xab\xbf\
+\xaf\xa7\x9a\xff\x91\xe8Kp\xf4\x1a\xab\xe8&\xf2\x5c\x00\
+\x0a\xd1\xa7\x04\x22P\x93K\xdb \x03\xca\xcd'\xc3\xd6\
+V\x11\x07mQ?%\xdaZ\x99\xf8\xb1\x1e`\x04,\
+\x0a\xa0\x00\xb4\x19\xc0\x18\x13[\xfe\x1d\xf0\xd1\xfb\x7f\xfe\
+\x0a \xc9?\x0a\xdc\x04^\xee\x83\xe7\xa9\x15C\xe5^\
+Bc\x9e\xba\xfb\xc9\x1fyn\x0a\x83z\xaa\xb3bR\
+\xeb\x10\x03\xc3\xe7\x91\xa0c\xd4$U\x96\x18\x5c\x8d3\
+\x920\xbbN\x1a\x0a\x9e/\x06\x1c\x7fb=\xfaRa\
+\xe3\xd7}\x0e\xfe\x96?\x97\xf8f\xe5\xb8\xc4I\xdf\x1d\
+\xb62\x85J\xb5Y \xe4\x1c\x02dI\xa0\xac\xf3L\
+\x88\x0bPp}\xe6M\xa7\xaa}\xad7\xe3(\xf3\xbe\
+\xd7\x5c\xf6\xac@[W\xc3k\xc2V \xa7\x02Z\x1a\
+\x0fy\xdd\xdb3\x87\xa5\x1a\xf8\xa3\xd7\x9e\xcf:\x17\xf9\
+\xb7\x1c\xbbW\x89\x84\xf5\xf6\xe4E\x93\xa5\x983*\xfe\
+\x189z9\x01:'f\xe2\xea<\xb0\xae\xc4\x15\x18\
+&Gn\x1e:O\x05x\xe3\xf6Ms\x85\xcf\xf3K\
+@\xbf\xfc\x22&\xc7\xef\x865\x7f\x8f\xc8)\xa6\x86\x80\
+\xd29\xa0B\xf3\xaae>\xf8f\xefr\xdem\xae\x98\
+\xc0\xe1or\x9f\x99: \x8ep\x1e\x01\x1eO\xedD\
+\xdb<_L\x18\x81\xe9u\xf2s\x0a\xa01`$(\
+\xb4\x0e\xacg\xa2z\xfc\xac\xca/?*a\xe3\x17\x92\
+)\xb6_\x85\x8c\xbf4\x05!\xc7=\x0a\xc47\xaf\xdd\
+\x1c\xbb9v\x06*\x16\x7f\xc3\xff\xd8\x87\xfc\x03M\x04\
+@\x96V\x1c\x01\xf7\xff\xeb\x17\x7f\x07\xb0\xcd\xf5A\xab\
+\xa1\x18\x12\x18\x15\xe7N\x8d\x90?\x08\x9b\xcf\xef\x05P\
+\x02la,\xe4\xfa\xda\x1c\xbc0_v.\x1c6\xed\
+\x93\x83\xc2\xa6\xd7\x8b\x875\xad\x8c*\x8b9\x15\xa3\x9e\
+w2\x0a\xb4|TEP!\xcc\xbaK\xd1\xc4\xa24\
+\x1f\xb3\x8c)\xae\x0a\xb2\x82\x94\xf5.n\x94x\x02N\
+|\xdf\xf9\xf3z\xe5\x87\x00\x98YH(M\x11@7\
+\xe0VE=)\xf6\xe3\xab\xc3\x1a\xff\xed:\xbc:\x1f\
+P\xfd\xb3r_cR\x01H\x12z\xe7P\xb6$W\
+k@\x9e\xbb\xfc\x89V\x93\x02dMy\xd1\xfaa_\
+\xf9\xdc\x12;\xfe'\x9f\x7fM\x01\x10\xffi\x85\xc88\
+a\xf3\xe7a\x8d\xb6Q\xfa\xff\x1a\xc7\xdd\xf9\x8f*D\
+\xd9\xcf\xfdsM\xe6_\xf9MS\x03\x8c\xf7\xc4T\x04\
+0\x8a\xc7\x9c\xcby\x8e\x98\x02`\x9d\x0dG\x87\xad\xfe\
+\xa8\x12\xf5\x93\x97J\xbe\x96\x83*<e|`\x0c-\
+\xc0\xb3\xd4\xf2\xb5\x22\x10\xb1\xc3\x185\xbd\x86\xe8\xf4\x19\
+\x96q\xf3\x01w\x06\xe09>$l-<\x95\xf8r\
+\x16t\xb6g\x0c\x9b\x0bUg\xdb6S\xa2\x8a9@\
+C\xe6\xa1a\xd3\xebG\x16q\xef\x1a\x0fI\x1cT\xfe\
+\xa1\xa5\xce\xfd\x96\xa0k\x01\x01\xf4\xcb+\xc5\xa1\xe2\x94\
+\x13\x128P\x00\x90\x9fe\xe1\xabZ\x80; \xa9\xe2\
+0\xfePk\x02-\x14\x9a\x01Z9\x8d\xc5&\x1eO\
+\xa4\x1a\xf3/[R\x14@\xabU\x9dx\xb0\x82\x1c\xbf\
+h\x1f\x12E\xcf\xd6\xbe\xbd\xe3\xe9\xc3R\x84\xe5\xd8\xa4\
+\xea\x85\xe3?b\xb6u\x8e\xaa\x0a\x8d\xde\x17\xe3\x11\xb2\
+\x15\x00\xc2T\x01C\xf4|<\xb2\xa1\xd4q,*\x86\
+.\xa8\xedY\xff\xfeJ\x15\xaf\x03\x05Bf\xc3\xd8\xa8\
+^\x05n\x12R\xef\xf7\xd3t\xec\xa8\x18\x0e4\xc8k\
+V\x1agD\xfb\x1e\xcd\xf5\x08\xe0\x05\xe0\xa8<(\x17\
+*\xe8\xd4\x99\x89\x8f\xc4\xe3\x19\x9a\x83\x0a\x959\xc2\x88\
+kd\xc5\xe6\x22\x8d\xd8V\x884\x1d\xf2[\xc6u\xc5\
+\xbb\xfe\xa8\xe9\xe1W\xd9\x14\x08r\x90\x02E\x81\xb9\xcf\
+\xed@\xe3hN\x99\xc9y\xfb\x8f\xeb\x13p:\xf8%\
+\xf8\xe1\xe6\xae\xd5\xfc]\xef\x9b-\x01TIK\x14\x8a\
+\x88O\x22K\xd5\xf3k\xe3\xa8\x9c\xe8\xb1\xf4\xa5\xc5\x80\
+\xc3\x95\xb8\x1d\xbfT\x98\x86\x9f\x85M\xdf\x1f\x9b\x08\x99\
+\x04\xcfX\x0c\x95\xdb\xd7eK\xca\x87\xf3\xc0\xc9\xcaa\
+\x1d\xdcT\xac\x05\xec\x9f\xc9\x0a\xd1\x11\x0b\x85h{\xe1\
+\xb0F\x85\x97\xa8\xca\xcf\xb2\xe2-\x90t\x00J\x04\x05\
+^\xfe^R\xf6\xa9`S\xbf-\xe0\x8a8\x94D\xf6\
+\x9b\xdb\x13\xb7'\xce\xea\xa9W\x1b\xaf\xb6Vv\x8az\
+\xd8U\x1eU\xb2\x88\xf4\x05?af(d\xc5ix\
+|XS\xa1K\xe4t{\xa6\xb05\xe0B)\x1c_\
+\x15\xb6\x8e\x85\xdayi\xd8:\x8e\xd0\xbc`\x01VU\
+\x98!\xa1I\xd1%\xca\x89IP\x81a\x02U*\x83\
+%V\x97\xa2bu_\xb2\x12T\x14@\xeb\x13\x80(\
+!TIv\x10\x02\xda\xfc\xbf@\xd7>q\x1d\x12A\
+\x897\xf1?c\xd0Pvi\x1a$E\xb6z\x10U\
+v$\xc8\x00\x09\xc0\x97\x1e`\x80\x92\xcf\xa5\xc2\xa8b\
+\x89!\xa3\x05F\x82\xcb\xe1\xabXK\x1c\xff0\xc5\xb4\
+\xf2\x80\xaa\x03W\xc0\xa5gN%\x0euMe\x00%\
+SkQ\x1e\xd4\xd5\xd3.a4N\x08p\x94\x95\xe7\
+JX\x05f\x0e\xc0n\xecX\xac\xe2m;\x1e\x95\x9f\
+\x86\xb8\xfb\xe2\xb7T.\xf9\xaf\xdc\xd7\xa5I\xc2_\x08\
+\xd0\xb4N\xa9\x0c\xb8\x7f\xf6\xb5\x8a\xbaD\xc6}\xa0\x06\
+\xef>Kh\xf9\x0d\xe2n\xce5\x95\xa1nj\xc0~\
+j\xcd\x9e\x97\x00\xd8}A-Ty\xa6\xd2\x9e\xfb\xaf\
+*G>\x9f\xeb\x01\x18XOz\xc7\xf5\x8e\x0a\xcc\xf9\
+\x1d\xeb4\xf7\xd1\xf0\x92\xb05Q\xabq_\x02\x1e\xad\
+5\xd6\x89s\xd6\xf8\xa0\x0cX\xab2\x8dy\xf0\xe9\xb0\
+F]:\x01\xce\xaa\xa8g\xc2]\x14\xd2l\xc1*\x80\
+\xc0\xe7L\xe0}\xf8\xdd\xb0\xe6<\xf6\x5c\x00\xbe\xa9\x8d\
+@\x83\xa4\xce\x1b\x14N\x81\x92\xeb\xf9EXSqV\
+\xf1\xcc\x16\xa9\x9a\xa7,@\xa3Z-\xb1O\x80\xaa\x18\
+G\x02B-u\x9e\x0b\x06\x03`\xd2\xbeN\x0a*\xf1\
+\xba\x02z\xf8G\xe2c\xc7-c\xcb\x5c\xef\x0c\xb3\xff\
+\xb8\x89#\x92\x89\x13\xc4\xf8\xa0\xc6\x175\xf6\x1a9E\
+ \x01\xf4([\xcc\xe2\xa8\x1f\xc9\x16F\x89\x03\xbf\xa7\
+\xd5I\xfc\xd13\x01\xb3el\xf3\xf6\x04\xacT\xe41\
+\xca\xb4\x12\x10Y&\xbe\x95\xcc\x98\xd20\x12wa\x5c\
+`\xf6\x88C\xeco\x7f\xb7\x137$2V=\xc1\xf6\
+\xf5;\x17\x11\xd4\x02>\x88\xf7\x02\x1e\xec\xcb|\xce\xa5\
+.\x9e\x89x\xf9\x17\x0c\x01\x00\xe3\xb6J9\xbf\x9d\xf2\
+\x9f\xfej\xb8M\xd8\xf4\xfa\xb8\xb0\x99\x018Y\xf3\xb9\
+\x15^\xb4\x06Y/m\x0b\xe5\x9eF3\xe8\x05\xd9b\
+\xa7\xf5G\xdc\xfc\xd1l\xfd\xbcL\x02\x22\x12\x02\x0c\xa1\
+?[\xc62\xd6>\x16\xd0\xbb\x8f\x0a\x10\xc6p\xff\x7f\
+t\xdd\x0b\xfcuk56\xfe\xbd\xe6\xef\xe9\xa4t\x8e\
+$\xa4\x13JE\xe8,\x89r\x96\x88\xa2TN\xa5\x10\
+r(\xe7C:I\x84W\x8a\x7fo\xc8\xcb\x96\x0a\x11\
+\xca\x9b\x94$\x85\x9c\xa2\xa4\x92v\x07\x1d$[\xda\xd5\
+\xdek\xfd\xe7\x98\xf3\xfa\x8ey\x9b\xdb\xfb\x1b\x9fO\xab\
+\xe7\xd9\xbfg\xad\xb9\xe6\xbc\xefq\x8fq\x8dk\x5cC\
++\xa7\x04\x84\xd8`\x12\xac>\x1f%&\xc6u;_\
+\xf7c\x98%\x8e\xfc\x1e \x09\xe0\x15\x7f\xe1\x5c\xe9\x04\
+X\xc2\x12\x80\x86\x88iS\xbf%8\x98~\xceS\xe7\
+\xac\xf8\xcas\xdc\x8d#\xbc\x14#V\xfc\xcaO\x12g\
+\xbbK\xd9\x10\xe7\xfb3M\x8f0\xbc\xfa\xf3\xfc{y\
+\x04\xcd\x07-%\xe2B\xa2t\xce\x89\x00\x85\xa7\x07\x95\
+\x0d~Z|\xea\xfe\xf1\xd7\x18H\x0a\x86\xbe\x9fsS\
+\xe2\xef\xfc\xb4n\xad/\xbf\xef\xbcI\x9e%\xf1n\x7f\
+I\xdc<S\xd9\xb4\x84\xf68\xc0\xbb\x97m-\x14\xd3\
+\xd7\x96m\xad']\x91\x0e\x10xv\xfd\xb2\xa1\x87\xfe\
+\xcfO/\xaf\x16\xd7\xe3C\xcb\xb6\xe7e\x8caS\xcd\
+\xc3\xd8\xc4\x10hF*f\x5c\x98\x8d\xb4\xae\xf8\xf7\x9e\
+\xaeq\xad\xb2AD\xfe\xeee[\xab\xe9\xf1\xaf\xca\x86\
+\x049\x9a\x1d\xd3K\xca6m\xaf\x06t1\x09\xf8\x8d\
+0Y\xb5\xec\xf69-\xbe!\xa6J+\xc6>\xc6(\
+0\x15!\xfe\xbd\xd5\xf7\xc5\xfdZt\xe5\xaf\xf6\x9f\xca\
+\xbe}%\x0e\x01\x98)4k\xcd\x7f\xca\x0a\x0c7P\
+\x08XI>\xd7\x22\xcb\xfc\xd1~\xdc\xbb\xfdc\xaa\xc2\
+e\xcb6 \xfd\x1c\xf5\xefE$\xefQ\xc3\x17\x8b\xfa\
+\xe0\xf1\xa2\xb28\xfc\x1bm\xa2+\xc7/\x9d\xed\x1e\x09\
+D^\xb5\xcd\xff&\x92\xb4\x10\x1e\x9e<\xf4D\xfa\x11\
+\xb8\x0b\x88\xf6T&\x81\xa3\x00Q\xe0\xb5\x9f7\xed\x0b\
+\xef\xc7\xfc\xa8\x90d\x03\x1d\x9eTj\x04[\x0f\xe9\xe9\
+5\xb3\xfd\xe3\x90\x80z\xa0E\xe8xq\xbe\xff\xeb\x07\
+\x95\xc7\x04\xd2\x8dDV]\xf9Qq\xbc\xaf\xcf\xfb\xfc\
+\xdd\x1088\x08\xeb~UB{\xbf\xd9\xee\x9f\x80\xe7\
+\x0e\x09\xfcn?h\x0fT\xc2\xf79\xdb\xfd]\x8e\xf1\
+\x1b\xc6q\xdf`\xa0\xbcV\xef\xf9\xf5\x93 \xdcz8\
+\x18\xcb=\x5cn\x00$\x1c\xe0*W%\xc2\xf4AY\
+X\xaf\x19\x02\x04\x0b\x8d\xe3\xcf\xbc\xcav@\xf9\x1e\x90\
+\xb9N\xe8\xa9\xfb\xaa\xdc\x07\xc0\xe8\x8a\xab\x00\x9bC3\
+/\xf4\x17\x0f\xbft\xf8\xa5\xa1\x12xQ\x0e\xea\xd7\x04\
+)\xfb\xec\x15\x80\x98~|\xfa\x89i^\xe0\xd3\x9d\xcb\
+\x96\x80a\x1d\xbb\xa7\x97\xfe\x99e\xdb\x81szo6\
+\x00\xc7\x98\xc0Ho\x8d\x83\xa3[\x02$\x82\x12\xd2\xef\
+]\x81\x82\xd3\xbf\xads2O7-[\xa85kB\
+\x0b\xb8\x00\xd4\xf8\x918\xfd\xdfU}\x19\x03\x02\x12>\
+}s\xd9R\xd9X\xbf7\xcaX\xae\x0fU\xb6)\x94\
+?\xbbX\x8f\xdbl\x11\xbf\xbc\xdf\xe1\x5c\xd9\x16\xf0N\
+7.\x1b\xa8]/[\x13\xc2\xf9\xb7\x97u\xde\xbd\x8b\
+*\x00\xb7>\xdd\xaa\xd4\x95\x05\x98\x12\xd3\xb3_)\x9b\
+\xdf\xe7\xd9e\xdb\x98\x17c|\x1a\x00\xf8\x87\xb2-1\
+j\xca\xef}\xca\x86\xcaB\x90\xf1\x0e\xe4\xb5$\x10\xd9\
+\xd3\xea\x13\x04\xb2\xc5U\x8cwzT\xd9@\x8d\xdf\xf7\
+\xe4\xf3\x13\x9e\xf7n\xfaD\xb7(h\xddQ\xf9\xf5\xdf\
+\xcd\xb7V\xf1#\xba\x04(\x00\x04\xf2#D\xf2\x88\x8f\
+q\xa8\xfc\x91\x8a\x87D\x1f\x00!!u\x9d^\xfdw\
+\xe2,>?\xfb\xcd}i\xc0\xcbu\xa2`\x1b\xd3\x18\
+?\xabw\xb0ET\x89W\x09\xa0Q\x96\xd3\xab\xd8\x09\
+\xb4\x80\x91\xdf\x02|J$P\x83Q\xdc\x1d\x8c\x02&\
+\xda\x19z\xe6\xf7\x1a\x03\x80\x1c\xdf{\xaf\xd9\xc0\xbf\xbb\
+\xcf4\x15\xb6J\xdb\xfa\x1c\xdcG\x94R\xa2I\x02O\
+b>\xd6\x05@\x07UZ\xa5\x99\xe8\x99\xfb\xb9\x9f\x12\
+\xc3o\xbbN\x0c-\x89\xa5@\x8d?\x0e\xc5]B\xd3\
+\xe2|*\x9a\xffU6\x04\xf2\x9e\xbb\xfb\xa7\x82\x84B\
+\xae\xa5\xcc\xf7\xf7yZ<2\x16\x0a\xe0t\xf8@\xd9\
+\xbco\xefP6\x04b\xa94\xb5hS\xe69\x9f\x1e\
+X6\xccw\xa6\x92,\xc0P\xe9\x95@\xeb\xa97\xfe\
+.\x80\x80\xd6\x0b\x9a#\x98\x05\xd3'\x95-=\x99\xeb\
+\xbc\xf9\xa8/\xf7\xf9\x1c\xe6PW\xf0\x01qz\xc9\xa9\
+\xd3_\xaelcp9'\x8f/)\x1b\xa8\xc1\xa8\xd9\
+\xd4\xfc1\x22\x88\x92Z\xc7\x00\x1b\xbd\xd9\xfe\x9d^k\
+\x09\x92J\xb6u,.\x90\x18\xa3~\xff\xc1\x9a\x90u\
+\x05\x1bU4\x15\xa9\x16S\xb4\x1e$8\x00\xf5\xeb'\
+\xfe\xe1GUn|\xae\xf3\xf3\xcfR\xd1K+OS\
+\xe2]\x8fD\x08\x80\x068R\xf1\x11gI \x00\x1a\
+\x11\xe1;\xef\x19\xf1\xd7{\xcd\x0e\xfbHBC\xb3\x01\
+\xb0#n\x13\x0f\xd0v\x90\xf0\xe7<\x03\x08uK\xcb\
+\xbe\xa7\x1c\xe0o<X\x80\xddf\xf6\xa5\x95\xb2\x13B\
+\xd7/\xae\x0b0\xaf\xc7y\xfa\xac\xb2y\x9d<\xae\xec\
+\xd2\xda/M\xa9\xb7\x1e\x01\xca(\xd1\xe9\x89\x9e\x9eQ\
+604\xcc=W\x11\xe4\xaf\xef\x14F\x17j\xfc\xef\
+\x84y\xf3C\xeb~o\xea:\xe6_\x18`\xd3\xcd\xcb\
+\xe6\xeb\xfc\x8d\xb2-\xb1\xa1-\xd4\x8c\x1d\x00\x0e?\x11\
+\x00\xaa5)0k\xf5\x84K8=o\x09\x85\xeb\x16\
+W\xabl\x8b\x03h;\x00~1\xf4L\x15Q!\x0d\
+\x80\xd8\x85\x0e\xd2\x0a\xa6\x86`\xd8\xa2B\xd3j\xf1\x1c\
+TX%(9\xb7\xbb\xa7;\xf1O\xafC\xeb\xd2y\
+\x0bx\x8a?\xee\xf8\x5ck\xa0<!\xdf\x838s?\
+G\x15xq\x98\x0a\xadB\x99JuZ\x09:aS\
+\x08\xa4\x1d\xe6\x8b[\x97\xee\xb3}\xbe\xd7\x22s]\xce\
+\x17\xe7\x0e\xa6\x8e\xef\xc5\xdf\xff?\xc6mw\x81\x8d\x98\
+3&\x02 \xc4\xfe\x02le\x1f\x1f_W\xb6i\xb4\
+4U<\xeb\xe6\x92w\x94-\x0c\xee\x0f,\x0c\xee\x14\
+\x10Z\x046-\x80Z\xba\x01\xa9\xd3\xcf\x94m-U\
+\xdd\xa3\x1fm\x85f\xb6&q\x06\xf8`\xd6t\x85^\
+\x0f~\x80\xdd\x1e\x03i|)\x11\xc60\x8a\x8e\xd7(\
+\xdb\xfc\xde\xf13\xca\xe6\xd7\xb7\x96m\xe7\xae)>\xd3\
+\x8f\x96\xcd\xff\xfd\x93\xca6u\xfc\x9e:\x11&+\xa0\
+J\xebe\xc7\xe5Zv\xb4\xe2x\x1e\x807\xeb\x04\x03\
+\x14@D\xf3\x05\xf3NA\x0a\xf0/\x0f\xc9\xbe\xe8\xf5\
+J#\xc1\xf9\x99s\xb2\xf3O\xc0S\xc6\x9b6\xf0\xa8\
+5K\xdc\x92<\xb9\xcf\x05\xcc.q\x5c\xe2\xa4s\xcb\
+\xd7\x1c*\xde=\xff;\x8e\xeex~\xd96\x9e\xcb\x18\
+\x8d\xe5F\xfd\xdcP\xb1\xacy\xbcO\x1f\x02,\x07\x9a\
+\x0a\x12\xf5\x7f\x8e\xcd\x01\x0bys\xe0\xd8\xf8\x90d\x1b\
+\xc4\xfb\xd9P\xc6\xae\xfcG\xc6\x85\xf8\xc2\x1f\x1d\xc0\xc1\
+A%\xd1\x0b\x85z!\x9e\xbf \x88\xd6-7\xaar\
+k\x11d\xbc\x87\xf9\xb6\x0b\x85\xe8a\x03\x12[\xc4\xc7\
+\xfb&\xc0\xfc\x9a \xa9z\xedn;,\x1c\x14\x16S\
+\x0eT\xe6\xae\xb3\xa8\x12l\x0e\xd9\x03\xa9c\xed\x18\x07\
+q\xc3\x81\x22\xac\xa7~\x0c\x8c\xc7\xfbXi\xc8;\x12\
+\xc0\xfc\xc7nL\xe1\x14\x95\xd2\xdf\x1d\x10\xc5\xbd\x1a\xae\
+^_\xe3\x18i%8\x18\xf6\xaa\xa6\x98\x02\xc47\xa8\
+\xc9C\xb2\xdf\x9d^\xba\x1fX+\xc9\xe7=r\xdd\xc0\
+\x87\x17\xac\xaa\xf9\x8d<;\x98\x05\x02\xcfK\x0fj\x02\
+\x00\xea\xc8\xd3\xa3\xcb\x86\x04\xde\x01\x0e\xf0\x08Eh\x91\
+\x5c\xbc\xe6@\x11sP;P$,7\xcb8)\x09\
+\xd7\x95\xd7\x96\x95\xd3\xa3O\x8f9=f\x11;Y\xd5\
+\xa2\x1f\x1ef\xc3\xe3\xd7\x8dW0\xce\x02\xe4Xg\x09\
+\x88\xcc\x91U\x89\xd4;>\xbd\xbfl~\xbdr\xd9\x86\
+\x14\xb7:'\x8a\x0e\x95\xe0$\x00\xd3w\x97\xcd\xaf\x0f\
+/\x1bz\xf1C\xc9\x9f^\x5c6?\xde\xef+\xdb\xde\
+\x7fv\xdf\x17\x1f.\x1e4\x0bP\xffC};\xbc\xaf\
+l\xfe\xfd\xbb\x97m\x07z\x8f\x7f\xa1\x02\x1c\x87\xae\xe7\
+\x1fs\x86\x08W\x8b\x13\xa5\xd7\xcb}8\xfeN\xd9\xe6\
+`!\xcd\x02p\xaa\xf6\x0b\xbe1\x1f\xa0\xa7\xaf)\x1b\
+z\xb7\xf8\x01\x89/\x87*!\xd1\x0b\x0d\x08Pi\x97\
+`\x0a|$\x8e\x80\x01\xe2{\xa6\x05p\xc0\x02\x13\x15\
+4\x9a\x01I\x0c\xf4&\x1bC\xd7\xa2B\x0ev\x81\x89\
+\x83\xda\x14\x0a\x096?\xe8: \xbe\x02g\xd7\xa5\x82\
+\x0d\x80 f\xe7\xfb\xa9xB\xce\xdd\xb7\x88O\xb5J\
+85\x5c\xe3\x7f\xf4rc\x22\xa9\x80\x06\xa8\xe9\xcao\
+\xae\xbbU\xdc\xa9\xe3'\xc06\xae\xae\xc5-\xb3\x1e\x9a\
+j)\x00\xe6\xa7\xf7\xe2\x7f\xfc?\x86\xd3^\x9c\xcf\x7f\
+\x07\xd0\xb8\x1f\x12&\xfb\x9d&\x80\xc0\x89\xfa\xfd3\xca\
+\x06@T@f\x1c\x9cV\x04\x80\x86V\x0c\xd4\xf7\xdd\
+XD\x95\xc9V7\x07l\x01L\xad7\xd7o\x7f\xb8\
+n\xea\xc3\xa9\x146\x93C\x00\xcc\xef\x00\xaa\xd2\xba\xd1\
+\x14Z\x01\xa6\x00\x95\x1a\xbc}\x82Rh\xce\xb1\xb9\xed\
+\xb9\x0f\xa7\xeb\x94m\x09F\xaf#\x09Cz\x97\xfb<\
+5F0s\x95{\x1d\x85\x01\xd8\x01`\xc6\xd8M\x9f\
+Y6T\x22\xec\xd3\x04\xf6\xd3\xdfL\x7f=\xfd\xf5\xfc\
+\xf9\xaf(\x1b*U_Z\xb6\xed'\x80\xe2\x1e@\xe9\
+qM\x80\x89\xdc\xb7\xf9}g\x1b\xc6\xc4%\x91\xe9V\
+\x96JL\x9e5\xcc{W\xb1K\x0bK\x8bob8\
+D\xc4\xafE\xbc\x00\xcb\xfc\xb2\x80\x9ch\xdfSB\xf5\
+V\xe9\x89H^S\xadUf\x89\xc8\xa9@\x09\xc8\x00\
+\x86\xd9\xdf=\xde\xd2\xbe\x0f\xe3\xa5{mi\xbd\x82t\
+C\x00\x00 \x00IDAT\x9d(\xa0`N\x18S\
+\xe9\xdf\x03\xd40<v\x09V\xc7\x19\x80\xfa\x17\x1e^\
+tx\xd1\x02\xd0\xae\xe7\xa4J\x95\xb8\x85?\x03\xcc\xd1\
+H\x00t\xee\xfd\xac}'>\xf0\xef\xc5s\xae\xc7\x14\
+\x84\x88\x89a\xc4M\xb7)\x1b\x98*\xf6\xbdJ\x19\x7f\
+\xc1\x7f\xd8\xaf\xa9\xe8M\xff2\xbdq\x9a\xf7\xc3\xd9\xad\
+\xcb\xb6\x02E\x8f-\x94\xf0x\xee\xe6\x90\xa7\x07\xbc\xcf\
+iSt\xb4\xc0H,\x03\x80\xd9o\xed\x1f\x01M\xee\
+\x0f\xa6X\xd4\xe8\x9ba\x06@$\x86\xac\xa2\xa8w>\
+\x95\xda~\xee\xfc\x8b\xf8\xe8\xb2\x89\xf3\xc4a\xfe\xde\xba\
+\x91P\xf2O\xe2\xbf\xfd\xd4\x1d\x15Ebxz\x9e\x01\
+\x08\xb4\x18hw`\xf0\xa5b\xedz{\xec\xb2\xc4\xc8\
+40\xc0\x14U|j\xf0\xd9\xafM\xa5\xe7\x0f\x8c\xf1\
+\xd4\x82\x15fM\x8b\xdd\x02|\xf8A\x22g\xa6\x88\x10\
+\xd1\x04\xf0K\xe4\xe5\x15>G\xe2/1\xc3\x08\xca9\
+\xb2\x14\x04_3\x9c+\x80\x14\x95[\x09\xb9|D\xef\
+7\x06\x81J\xb7\xf3Q\xe1k\xaf\xbd\xb5\xab,\xf7\xbe\
+\x15G\x00\xc6\x00\xf1\xfc\x85\xf3\xd1\xf5\x06\xd8\xed\xc2\xc8\
+_\x94\x0d\xc0X\xc6\xbf6\xe5<\xd7s\xfc\xf9\xb2\xad\
+e\x94\x18r\xfb\xdf\xec\xd7\xd3\x9f\xa5b\xbf\x8f\xc7\x1f\
+\xbd\x9bre\xca\x8a\xc2\x8d\xe9\x22\xbf\xb8\xb6\xf2h\x99\
+\xebVQ\xbd\xf7\xc4\x98Q\xd9\x892b\x16\x07x\xd6\
+\xb2\xd2\xe2\x96\x98\xd39\x1f\xa6\xcb\x95m\x80\xfb\xf1\xdd\
+e\xf3\xebe\xcb6\xa0\x0dS\x0b \xd0\xf9\x9dV\x86\
+0\x17\x1aH\x96\xc7\x00T<\xdf\xdc\xf7\xde_\x98`\
+Zw\xaco\xeb\x14\xd0\x96s\xa2\xd7U\xa6 \xf4T\
+\x89\x00\x05\xdd:\x11\x0d\x00b\xa3\xcd\xd8\xfb\xd4\xb2\xf9\
+\xcf\xdf\xbeNyiF\xa0\xf3)\xda\x18\x87O-\x1b\
+\x00\xe6\x14\xf2\x9aA\x80!\xf4\x1be\xb5\xcd\xaa\x93\xe6\
+\xbb\x87\xb1G\xa1v\x1f^[6Pi\xa2Z\xba$\
+\x18\xdf6\xa8\xfc\xff\xcd:\x97\xfc\xf0\xb6\xd9\xde\xbe%\
+*\x1d\xd0\x10{\xb9GzT%\x9e\x0eX\x0e\xcd\x81\
+b\x83\xec\xc7K\xed)2\x80\x00\x89\xc3&F\xb5\xfe\
+\xbd\x03\xcc\xc1D\x9c\xac\xa8Q?;\xf4\x1c&\xa0n\
+\x0ae\xa8?-^W\xb8\xde\xaf\x0e\x81\xff\x07\x16\xd9\
+\xbam\x83\xd7r\x18\xe7c;\xb08\xf2\x7fZ\xe4\xed\
+V\x07~a\x02\xc0\x0f\xcaA\xf7\xa1C\xc5\xbf\xc2\x84\
+\x9b\x0d\xf7\x87C@\xe5\x10pr\x8c{5\xea\xfd}\
+\xf1\xef\xbc\xba\xberc\xd7\x18\xa8\xaa\xe6\x9c\xabt\xa3\
+J%P\xee\xc0I\x05+\x8e\xd6\x18:\xc8\xd2\xbcj\
+.w\xb8\xdc\xb6\x81\x0fw\x0c5\xdaF\xb1\xa1P\xc9\
+\xcc\xd5\xd4\xabN\xac.\x95\xadNd3\x8eozQ\
+\x12\xe1T\xdc\x9b\x82|\xff\xb2\x8dip\xfa_I\x10\
+\x13x\xf4X\x98PI\xe7\xe4`\x9dS\x1dQJc\
+\xf2Z\x14$\x07\xc7\xf1Ye\xcbs\x5c\x9f\x879\xef\
+q\x88gw*\x1b\xc6|\xe4\xba\xa6\x0b\xca\x06\x06\x00\
+u\xee\x88\xc9\x11\xdf@y\x9e\x9eV6 \xfb\xa9\x94\
+\x9d\xdd\xabl\xfe\xef?U\xb6\x05\xc04\x0e\xa6\xdb\x95\
+\xcd\xbf\xf7\x95e[\x02\xd0=\xa6\xc6\x91\xdc\xbbl\xe8\
+mN\xc22=\xb5l~\xfd\x84UuY%\x98h\
+L\x03)\x1c\x97@\xc1\x1c\xe6\x17\x96\xcd\xf7\xe9\xd7\xca\
+\xe6\xf7\xf9\xbe\xb2\x0dq\xa6\xca\xda\x94\xc6\xb4Z\xf4|\
+u\x22@\xe6\xa9\x87\xe1\xd0\x88\xb6\xcf\x13\x18G\xe4\xa6\
++a\x02\x10\x15+\xc8;\xa6\x86\x00\xd4\xba\x95\xf0\x03\
+\xa0vS\x02P\xf4\x9a\x82\x9f\xf5\xd8\x80\x03q?\xfb\
+\x9eX\x99\x03A%\xd1>\x92h\xea}\x15\x08H\x04\
+U\xca\xf7*\xb3\x00\x828\xea\xae\xbcm\xf3\x8dW\xf1\
+\x9d\x88Gu\xc5L/\xbc\x84\x13\xf0\x92\xf1?]\xb1\
+5>Ne?\xfea\xbaj\xd9@\xd9\x948\xa5\xa5\
+\xa5\x13%\x01\xa1\x8a\x15\x11ITY\x81\xa8\xe7\xc2\xaf\
+S\x9dO\x22\xd9\xdf\x93\xbf\x92X$\xc1\xea\xc0\x99\x16\
+\x09\x0a\xb6\xdeo\x01\x01\x06\x82@X\x22\xe6:L\xcd\
+\xe0\xcfT\x9cUJ\xad\x07\x95N\xaa\xdeZ\xc6<w\
+\xd4c\xda\x01\xae\x93_\xa5\x05\xe1\x1cM\xe2\xdc\x14Q\
+\x80-?\xe8|\xc2T\x01\xf8\x06\xb1\xef\x00N@\x8b\
+\x22l\xac^\x02-\x22Z\xd4\xf1\x05v\xd3K\xcb6\
+\x8a\xe2\xf1\xaeeC\xe5\xc8\x14\x0c\x89\x05\x91\xa2\xf4\xa4\
+w/=\x7f\xaeR\xfb\xca\xb2\x01\xf8\xa1\x91!\xc0\xe0\
+_\xdeP6\x8cy\xc3D2\x05\xc4\xf7\xa1\x19\x10\xd5\
+\xe2N\x90\xc3\x9cju\xe9\x8c\xaf\xed\x00N\xc0\xadB\
+Z\x00\xccm3\x9e\xea\xc9\x9b*\xb8\x04\xa0[a0\
+\xe3\x88%Z\xe7\x80\xbf\x8c\xdd\xea\x84\xc2>|Q\x12\
+\xe7\xa8\xda\xb7\xa81\x15\xf3PZ;q'\x1ak\x8a\
+\x82q\xafzP\xb3n\x00l\xed\xf7\x00\x87a,\xa8\
+\x84\xb7\x06\x13\xa0B\x82\xb0c@\xb5\x1f\x14?Id\
+\xf8\x17\xf1\xc31\xeb\xf6\x1dy\x1fs\xbb3\x0e\xb4[\
+.0\x09\xf6@\xab\x0a\xa8\x1f\xfeX\xbc\xc5O\x02\xb4\
+T@\xdd\xff$\xc8\xa7\x9f(\x9b\xff\xfcM\xab\x06N\
+S\xd2]\xb78\xc7~\xf1\xbe\xf9\xde\x0dL}\xf6\xca\
+\x000\xf5\xa6\x01\x00\xf1g\x02\xeb\x9e\x1a\x92\xf8s)\
+\x5c\xfd\xfa\x0607E\x1d\xb5\x17\x10\x10\xcd\x8b\xa6\x9a\
+\x9b\xdb\x8d\x01\x11\xe0\xb1\xcf\xc5\x07\x97\x0d\xcc#\x94b\
+\xf1H\xe6\xdc\x0b\xf4O_T6\xc4_\x12\xf77\xa7\
+2M,\x0fs\xcbs\xa0q\x22>\x96\xc8\xeeE\xca\
+\x12\xf0\xf7T\x0a\x89\xb3\xca\xb5\xca\xffw\x97\x0d\x89\xb2\
+\xf5,^S\xa9\x0f\xf3\xaa\xa9\xd3\xda,L\x05\xa2\xd5\
+\x93\xfb\xc3\xef\xb4\xc6A\x98<Uv\xa9\xc2K3\xbc\
+\xf8oq0Q\xd90%\xda\xef8\xbf\xf8/\xf7W\
+b\x05H\xf7\xfb\x80P\x7f\x16\xef\xf9{\xe7\xb2\xfb\xea\
+s\xf9a\xf7\x15p,\xef\xc0Hs\x1e\xd2Z\xe0?\
+\xf6\xcc\x22\x7f\x96\xd8o\xfbq\x15\xcd\xa6\x9d\xa1%\xcc\
+\xf8?\xe3\x95=\xa7O/\x9b\xff\xfb\xe3\xcb\xb6V,\
+@L_\x8f\xd6J\x89i*\xd2\xdd*\xf0Oe\x9b\
+\x7f;\x5cce\x9a\x9d\xce/\xdbZ\xcd:\x9e\xff\xe5\
+\x00>\xfc\x01\xb1\xe1\xfd\xf8g\xc0 \xe0\x91\xc8-f\
+Z*\xe8\xcdd\x22J\x1d&\xb9\xc2\xb3\xf5}\xba}\
+\xd9\xa0q\xa0\x90\xf3\x9a0\x9b\xaf4\xa7\xc1W\x1a\x0a\
+\x1d\x80\xc2\x1f\x9e\xbd\xfb\x0f\x0f\xcc*\xd3I2\xc5\xa0\
+E\x8e\x89\xcc\xda\xcfZ}\x00\xe6\xf21\xebR%\xde\
+\xf4\x06\xfbH\x9e\x191\xca\xd6\xc62U\x05C\x1b \
+\xaf\xf0\x0c\x10\xc3\x08\xc0\x8c \x82\xba\x9fJ\xc4\xcf\xca\
+\x0b\x89G\xfeB\xd9\x10g\xa4P\xdb~L\xbc\x9a\xfd\
+\x7f\x8e\xfaw\xcfY\x0c5~y\xf0\xff\xb8-@\x94\
+w\xad\x01K\xb8\xf0\xb3I\xe0\xaf8TdBa\xee\
+\x9e8\x15\xa8\xb7v\x8f\xe8z\xe0\xfc{6B*\xb7\
+s\xf0\xb3:\xfe1\xb1\xbex\xa8X\x0b\x98\xf7\x89\xae\
+\xc4\x9f\x98\xde\xdb2\xe7\xfe\xa6\xa1>\x08\xc0\xbf\x22\x22\
+\x1d?X\xb69\xdc\xe3\xf7\xcdV\xd4\xc1\xcfY\xc7\xe4\
+,\x14\xc9\x9bd,\xd7/\x0e\x0b|lA\xf8\x8f\x81\
+Y\xa0r\xee\x80\xd2\xf3/!\x10\x00\xdb\xf0\x90@\xad\
+\x0c\xc4\x039\x5c@\xc1^%\xdb\xdf{\xf0\xae\x87#\
+2\x0f5\x0bl\xa90]/\x09\xd0u\x87\x84GE\
+B\xa0\xa1\xf7\xd3\x01'!\x97H\xa8\x9c\x01\x0c\xa8\xee\
+?m\xb1\x16\xbd\x99~\x7fz\xe6\xf4\xcc\xa1\x15 c\
+\xed\xce{\x5c\x02\x19\x08~\xbe\xbf\xf7?\x5cP\xb6!\
+pMiG\xa5\xbf~\xd9\xfc\xfa\x11eK\xe0\xb0\xf6\
+\x80kQx\xf0\x1a`\x1f\xbf\xbdl\xa3@\xb7\x0a\xbf\
+\x0d\xa7\x95\xc3\xbcY\xaa\xc5\x01\xb0T\xa0N\xdfU\xb6\
+U8Q\xcd\xb4\xca\x9c\xbd\xb1l\xdb\x88T\x80\xa7/\
+-\x9b\xff\xfb#\xcb\xb6\x9e\xd7>8\x01\x0b\xcb\xcf\xfc\
+\xf7O+\xdb6\xe2\xf19e[O\x90\xc4\xfc\xec\xf9\
+e\xf3\xeb'\x94\xcd\x7f\xffae\x1b\xf2>]\xa5l\
+\xe8\xa9\x14\x08Z7\xa1B\x03\x10\x1a\xe9\x17\xa0\x06p\
+\xe9D;\x8e\xbf\x1d\x9a\x04H\x00\x1f\x07\x8d\xba\xef \
+?^\xb1l~\xbf\xef,\x9b?\xef\xd7\xcb\x86@\xc9\
+z!\x16\xe9\xfe\x87A\x81\x0a\xdbc\x15!\xa0\xc4O\
+2\xae\xf0\xf4\xec\xb2\xa1re\x1f\x08\x18}o?Z\
+^\x04<\xa8Wz\xf2Un\xf5\x9a\xef\x81HT\xe5\
+j\xe5\xb9\xdf\x100\xe8\xa5\x04 P\xa5O\x0f \x7f\
+\xd2\xfe\xc7\xc1\xa1\xa2`\xdf:p\x04,\x12Y\xcfQ\
+\xa2\x10\x91\x9b\xf6+~\x04.*\x80*h\xc4^\x00\
+\x00\xc6\x1fJ\xd4\xcc\xf9\x06\xf0P\xd3G\xf9F\x1dC\
+eN\xa5\xab)r\x02u\x07\x8d^\xc9j%{\xf4\
+\x10\xc0\xb8/\xfc\x8dsF\x05K\xe5Q\xa0i\x9e=\
+\x80X\xa2\x11\xc4\xbb[b\x9c/Z\x07\xbc\xbf\xde\xfc\
+\xdc\xd7\xbeoZ\xbe\xf6b\x8a\x12#@\xa9y\xbc\x98\
+\x04D\x86$\x0e\xee\x93\xf7\x07h$\xc0\x02\xd8\x98\xd3\
+,Pn\xbf(\xc0U\x99\xb4\x0e\xad\xaf\xdc\xc7fh\
+\xe8qt\xdf\xae\xb3S\x15W\xb1\xcfy\xd9\xad<\x19\
++\xd9-\xd0\x02\xde\xf4v\x1b\xdf\xdb\x81n\x02\xc2\xd3\
+\xa1l\x18Kh=\x87\x91\xd5\xcc/\x14\xe0\x00\x8e\xc7\
+\xaf.\x1b\x00bS,\xcc\xab7\xd6\x90\x0a\xbf\xf3\x1b\
+%\xd7\xf4\x15\x94b\x94\xfe\x14\x14P\x92\x01N\xc7\xb7\
+\x97m\xef\xd3\xd4\xe4\xccs\x9e\x1eR6\xf4\x1a\xeb\xcd\
+WA3\xee\x94H\x1f\xca\xa9J\xb7\x00\xd7s\xc5\x80\
+\x02(F\xc4\xa9\x01MZ:\xe2\x11S6\xa2\x89\xd3\
+@\xb3@\x8e\xba\xbf\xdex\xe2\x9cZ\xc9\xde\x18\xe0\x0d\
+pa\xec\x98i\x0a{j\xb1\xc4_\x00.\xf1\x93\xc8\
+\xab,\xaa\xe0\xed\xc5Q\xf9\x01\x8c<@\x99\xc0\xd7>\
+\x17p\xba?\x120\x15J-(\x80\x94\xfdz\xd7r\
+\xc4\x9f\xfc\xce\xe19\x87\xe7\x0c\x15\xcd\x14f\xfa}\xc5\
+M\xbe\x9f\xeb1\x05(\x0c(\xe7`W\xf6\x002D\
+D\xe3\xcf\x9b1%\x9et\x1f\x05\xf4\x80\xa5\xf8\x9b\x06\
+\xe6%\xbe\xfc\xc8\xde\x9f\xa3\xb4G\xabEe\xd3:\xeb\
+J^\xf6\x15u\xf5\x1eg\x86\xe1\x09\xf0s}\xee\x83\
+\x84\xc6}\xc0X\x02\x5c\x85\xa1\xdb\xdf\xc7\xb9m}a\
+\x08%A\xd5\xa2p\xba_\xd9P\xf94\x96\x93\xe8\xa0\
+\x96\xa5l\xf8\xa6P\x03\xd8\x01\xbd_\x12\xe0;\xe3\x92\
+\x9b\xa2\x0c\xc8\x8d\x1f\xc1\xcc\xe9\xcfME\xb4\xfd\x13\xe6\
+\x87\xf8\x7f'\x16\xde\xcc \xc0\xabuh]\xc8\x0f$\
+J\x80s\x89\xb5s\x1d@\x8c\xa2\x0d\xc0\xf2\xb9Zk\
+P\xab\xed\xa7\x00\x8b\x9d\xd0c\x06\x00\x0e\xc4\x17\x00=\
+@\x8eu\x22~p\xfd\xf2#\xd7\xe5\xf7\xb4$\xbc\xa0\
+lP}w\xbe\x02\xfe\x88'G\xa3\xa9\x0b\x9a\x00\x08\
+\x8e\xda\xfd\xc0D\xc4\xd8\xf0\xfbab\x1c\xdeQ6\x14\
+\x82\x01\xce4\xa7\x88Pk1\xe4\x0f\xedS\xd7E\x8d\
+?\xad\xa0\xcd\xa0I\xfcr\xba\xb8l\xd0\x16\xd0\xa2\x16\
+\x06[k\xc1a&\xbc+-\xba\x89\xcf\x8f\x9fW\xb6\
+\x88i\xde`\x11\xd3|\xee|\x8a<w\x03X\x1b`\
+\x88\xd6\xc1\xe9V\xa7O\xa9\xc2[3&\xdco\xf1\x8d\
+\xe7\x07\x00\x94\xc0['~\xacG\xc0\x0d@NK2\
+\x7f\xa1\x85\xcdxH\xad\x99\x18C\x98w\xa6Z\xa4p\
+\xd4\x00\x12f\x9d\xf8\xce\xba\xd1\xa2\xff\xf6\xb2!\x8e6\
+\x06]\x9e\xc7\xdf\xf8|\xe7\x1a\x06S\xe2\xbbs>\xc0\
+\x01\xad\x97JO\xdf\x12\xd0|fDj>&j\xf9\
+\xcf\xcd\x05\x7f\xc9\x90\xf8\x0a,\xf5\xdc\x09\xb8\xa9Y^\
+\xb0\xf6\xb0t\xe2/\xf0\xd3S\x19\xd1\x9b\x0e\xc4ll\
+7\xda\xc1*q\xbe(\x1b\x9ec\xdcT4\xd7\xca\xf0\
+\x05\xa77\x9d\xde\xb4\xcd\xd1\xa6\xd6\xbc\x88\xa4\xfd\xd5\xa0\
+\xb2\xac\x17\xe48\xdbix (Cul^\x90\xc4\
+\xe2?\x07\xea\x8e\xc0^\x05\xc9\x0d\xf6S\xdb\xe2#\xa3\
+\xa2\xff\xc9A\xc2>yp\xe0\xf5m\xde\x9d\x0d|\xc1\
+\x80\xe0\xa2\xae\xc7\x01q\xa4=]\xa1\xd2\xe8\xb7\xe4\x00\
+\xf8\xe0\xfc\xfb7\x0f\x15\xb8h\x19,\xe2F\xaf\xca\xf7\
+\xff\xb4!qP1\xa9\x80\xf4\xe6C\xef\x97\xe7\x90\xfb\
+\xd5\xa2u\xd4m\xa9lg\xa1\x1e\xbek=H\x0fw\
++[\xa8\x85\xb3\x0d\x95F@\x85\x05\xccaH\xa8\x22\
+.\x84\xb24=xz\xd0\xf4\xa0\x85\xea\xbaT\x9c\xce\
+\xbe\xa1l\xfe\xfb\x0f-[T\xf5\xef8\xddq\x987\
+\xad%E\xcf\x99\x8a\xdd\xb7\xae\x95\xb9\xc3KV\x0a\xf3\
+\xf1{\xcb\x86\xca^\x02\x9e\xe3\xcd\xca\x86^%T~\
+b(T\x80\x9fwx\xee\xa1\xe6\xa9\xfe\xdf\xe9\x0f\xa6\
+\xf9\xf3J\xa1\xa04\x0a\xf4z\x0a\x80\xcf\xeeX6\xff\
+\xf7g\x95\xcd\x7f\xfe\xa8\xb2\x01\x00\xc8F\x9dNe\xdb\
+\xd8\xbd\xe33\xcb\xe6\xbf\x7fU\xd9\x90x\xc4\x81\xa0:\
+\x9d=\xb4l\x98\xb3\x0b\x90\x91\x10\x01\x00 \xcc~\x00\
+s\xc4]\x8c\x11\xc9\xfb\xf4\xf4\x82\xac\xcbfJHl\
+U^\xb3.1\x04.yq\xd9\xd0\xfb\xba\xfcl\x0c\
+\x88\x0e\xa0>\xbel\x11;\x9cmK\xb0\x8e7*\x1b\
+\x12V\x89@*\x91}\xe0\xab\x18H\xb8|O\x88&\
+&\x88\xb1s\x1c'\x07\xcf\xb1;\x98\xacs\xc0\x9d\x0a\
+\xac^G\x8c$\x09\xbaD\x17E\xd5\xfb\xf1o~\xdf\
+\xbe\xe6\x80U\x84\xfd;\x81\xb3\x1f\xd4X\x80\xdb\x17\x95\
+\x0d\xfe\x85\xea\xb1\xf5\x9d\x00\xbeE\xcf\xf8\x0b=\xd1(\
+\xc1\xf6\xab\xca\x93\x00SEH\x8f<\xc0\x03`\x22\x90\
+@\xf5t\xbd\x80\x08\x08:J&\xa6\x93\x00O\x22+\
+\x01\xc6\xa0\xe2G\x82\xccw\x00!\xc1\x978\xf1\xe3\xc6\
+\xd9\xe5\xf94\xd5=\xd4\x5c\xfe\xa5E\xe9B\xa1\xbd\x14\
+0\xea|\xc1\xd0\xa1\x91@\x13\x81V\x8d\xca<M\x02\
+?\x18(\x02R\x95\xd0\xdc\x87n\xb1\x08\x13\xa0\xbf\x97\
+\xe7N\xb3!\xc0\x95\xcaj'bzj\xb5\x8c\x98Z\
+b\xfa\x06D_\xc2\xec\x5c\xd0\x0a\x81jn|! \
+7\x09\xe1\xf4\x9e\xb2!`\x17\xf8\x09\xe8\x93`w\x82\
+\x18JuW0\x12\x18\x9enW\xb6\x9d\x87\x87\x07\x96\
+\x0d\xe2\x97\xe9\xb1\xed\xf5\xa6r\xad\xe7\x19`\x99u~\
+Z~\x86V(\xeb\x11@\x8c)\xa2e\xcf\xb4\x81\x00\
+\xa6\xd5\xa0\xb5\xb4h\x05\xa0l\xca\xb5\x9e\xf0\x00\xb2-\
+F+ \xcc\x14\x98\x0e\x9c\x9cc\xc4V\xa9\xae{\xde\
+\xf65\x7fIm9\xe3\xfd\x0ege[\xab\xd4\xf4\x80\
+\xb2a\xfcq\x00\xd6\x06\x0a%\xa0\x12z\x09\x1cQ\xaa\
+0+\x0e\xd7^[\x18\x16F\xe5\xdb\x96\x04z\x01\x84\
+\x0f\xdf\x13F\xa5u\x8a\x19)\xc0\xcf\xfa\xef\x80\x8f(\
+\xa5\x84HO*F\xde\x0f\x84z\x8d\x11$\x0e\xd0\x02\
+!P\x15oIXT\xf6$~\xbb\x8aX\x17X\xee\
+[6\x8cE\xa6\x09\x93V\x86\xe9X6\xbf\xfeC\xd9\
+\x96`\x08\xec\xfb\xfa\x89\x81\xa2\xd0\xd3L\x90\x18\xdb\x97\
+\x9e\x9f\xc2\x8c\xf3\x9e\x9f\xe6\xff\xdd\x07\x81\xbd\xf3F\xc2\
+\xb6\x17\x09\xb4_\x88\xeaJ@\xc5\x9b\xee\x87}iz\
+A\x00;\x9a7D\xf9:\xf1M\xa2\xdd\x15i~\x8b\
+\xdf\x15_f\xdf\x1e\xaeu\xf8\x90\x1a{{\xfa\xf5\xd3\
+\xd3O\xbf>h\x95\xec\x99\xa1\xd6\xc5\x9e\xf9)a\x95\
+\xf0\xfa3\x80|?\xb5+\x95\xcb>_\xc5\x05\xbeW\
+\xc6\xec5#\x8ff\x03Jt\x12\xd7\xa6N\xcb\x13L\
+\xabQq\x05\xe4\xfbw\x12?\xad\x96\xc4a1u\xc2\
+\x14iF\x03\xe0_\xe2\xbe\xab\xa87\x90B\xbbj\xaf\
+y\x01\xd0q_\xfc\xbe\xf5\xc2/\xf1\xfbZ\x8cL\x0b\
+r~\x88\xb30h~\xbcl\xb8\xcfZ`\xd2\x02\xd2\
+Z\x19\xa9\xd4\xf7\xfb\xf8|\xebS\x22\x97\xa9Q\x1d\xf7\
+\x88\xab\x03\xe86\x85\x5c\x1eb\xfdHX\xf7c\x1d\x9d\
+oT\xef\xb3\x9e\x1b \x12\xcf\xfd`\xd9PX\xbcn\
+\xd9V\xe8\xe9\x96\x8c\x8c\xfdk\xa0!\x9f\xdb\x8c\xad%\
+\xf0\xdd\xe2\xa9\xd6zR\x98\xcb\xfd\x14/vKZ\x9e\
+\xe3\xf1Qe\x1b\x93\xed\xf8\xcbe\xc3\xfd\xe0g\x03D\
+4\x83U\x0f=\xb1\xbf0\xd2\xa6[\x96\x0d\x85Oq\
+# H\xfc\xb0o5u.\x88\xd3\xb4\xe4)\x889\
+W\xf5\xec\x07\xf0mM\x0db\x99{\xcd\x00\xebx'\
+\x0a\x0c\x10l\xa6\x81<\xdb\xf7\xc5H\xc2\xa4\x11\x7f&\
+\xae\x22.\xdb\xeb\xcc\xb8\xc6\x00)\xe7\xda!W\xcf\xc4\
+-\xe6\xd7\xcf\x9dmv\xc0\xd3S\xca\xb6\xb9\xc6=\xaf\
+\xd7\x98\x97\x1a\x1b\xf6\xb99\xd8\xef\x92\x0a\xe7\x13\x87\x0d\
+\xae\xf4`\xa1B\xcaP\xba8(\xbf\xf7\xee\x1d\xa5\xdf\
+\x86\xf0{\x1c\x9b\xd7)\x0f\xc4\xef\xb9q\x02\xff\x0b\x12\
+h\x09\x0c??\xbdK\xf5\xbf\x83\xba,\xcaV\x07\xa4\
+\x10\xe3\xc2\xed\xfezp\xccD\xfa\x8c\xd9B=U\xc1\
++7\xf1aC\xc5\xca8=TW\xc8\xb7\xdf\xab\xbb\
+q\xad\xe1\xd5A\xe2@\x07\x0cd*@\x8b\xe9H`\
+\xa8X\x86\x1a\xd9\x0b\xaa\xfe\xf5\x94\x03\xe2\xea\xf9\xfd\x8f\
+\x1d\x16\x06\x07\xe1\xe0\xf4\x5c|>j\x95\xb18*\x01\
+\xc4\xb4$\x92o\x0cRM$\x055GbJ\xfc\xce\
+A%`\xbdnD\xce\x22\xa2\xd3\xe3\xe2>4\x94\xf8\
+\xfbO_5}\xd5\xe2\xa7\x96D\xf9\xecG\xca\xe6\xd7\
+{\x9c\xbd\xe2\xec\x15\x03%*\xbdh\xc7\x97\x95mc\
+\xa3\x1aY#\xa2q\xef\x884=?\xad\x03\x97K\x02\
+\x17\x95\xde\xd3E\xab\xc8O\xcf\x95\x8f\xf6\xc1\xf4\xb0\xb2\
+\xf9sOg\xc7\xb3\x0aT\xaeQ6\xbf~\x5c\xd9\xfc\
+\xfa\xabe\xf3\xeb-\xca6\xbfZ\x1d\xb0\xd5\x03+`\
+\xed\xf1a\xd6K\xd6\xab\x0d=\xfd\xef\xb2\x0d\x81\xed\xb9\
+\xaa\xa5\x9d\xf0\xc8\xa5\x22\xfa\x98\xaa\x88\xa2\x9c\xa2\xda\xb7\
+\xa32f\x0eU5ba-\xb6\x97\xb1(\xf6\xc7\xf4\
+\xc2\xb2-\x10k\xd1*\x14d\x09\x85\x83k?\xde,\
+\xd7?\xdd\xa4l\x9b\x1b?\xbd\xa0lh\xad\x09u\xae\
+[ \x88\xfd\xe9)N/W\x07\x1a\x09<!\xdcz\
+\xcb:\x81\xd6\x8b\x99q\x86M\xb5W\xa1}\xf2*\xf6\
+\xd9\xc8\xb6\x9e2\x9a&\xa6\x9a\xf07\xfb\xc0G%\xcc\
+\xfeU\xc1&^h|\x90\xbf\xa7\x01AT\x10\xc3A\
+b\xa4\xe5B\x85\x19\x90\x90\x03\xaa\xa9g\x00\x08\x89:\
+\x7f\x91\x83T\xa2\xd9\x07f\xa6n\xb4\x9f\xd4\xf2\x90\xfb\
+\xd8S\x12\x88\x12\x0ax$6\xa8\xb3\x00\x07\xeb\x11e\
+S\xe0\x13@\xa3\x01\xac\xf8\x89\x0e\xbc\xac\x0f\x09\x1bJ\
+:Q \x091\x11H\x14o\x1a\x044Q\xa8.\x87\
+\xd9\xd1\xea\xfd*\x12\x12$=\xe3z\x18\xc3\xb0\xe81\
+`z\xf5\x9d\x17_\x9e}\x9f\xcaI\x8b\xa9E\x8b\xa2\
+\xd7\x83\xf5\xc5\x0fb&\x00.T\xa8\xacS\xeb\xc3\xba\
+!vE$\xca\xe7\xd3\x94H\x0bL30~1S\
+K\x04\xa4\x12Q\x8c\x04\x89\x0c*|\xe61\xb7z5\
+\xa6Hz\x01\x89\x1e\xf5\xf3I\xa0\xd5\x1a*\xa1\xe2w\
+\xa2\x9d\x84\xb6\xb4\xc8\x175rj\xfc\x00Z\x9a\x10\x09\
+\xc0\xbau\xe9\xdae[@\x87a\xd5b\x84I\xbc\x8f\
+\xf7*\x1b*\x0d\x980\xbeg\x02\xf8\xe3\xff-\x1b\xb4\
+,.\xb7\xb6\x905P\xe5\xfe\x99F\x90\xb8\xe3\xf0\xd0\
+\xb2\xa151TI\x95\xaaV\xbb'\x06\xf5we[\
+\x82\xd2\xd3O\xb2\x9f\xf8\x19\x09\xe8\xe9\xb1e\x03\x15\x1a\
+P\x97\xcaz\xfbq\x22\x93\x97\xef\xf3dU\xff\x06\xe0\
+\x1aSfl\xdd'\x97\x0dTY\xc0\x19?\x04\xb8}\
+w\xb72\xae\xe3\xae$\xfe\xc4\xe4\xacOb\x8aD\xea\
+\xb2\x1f\x0f?\x5c6\x88TarI\xa01;~4\
+\x1a\x15\xf6\xa9\xb8CB\x04\xd0D\x99E\xd5\x95P\xfa\
+\x11\x8fI\xc0\x88M9\x9f\x00b)\xb8\x9c\xbbc\xd9\
+Vh:\xfck\x80\x0e\xcc\x1d\x9a8*\x87\xa8\xb0I\
+X0i\xf8w~\xb0[N\x89\xab\x8aK\x5c\xaf\xfd\
+*\x9e;?\xd3g\xbe#L\x1d\x09\xa0D\xd5>\x07\
+\x80\xfa\x1e\xfe\x0cH\xc1\x10u\x1f\xf83\x15\xf40\x07\
+\xba\x15\xc6\x9co\x15\xe5\xec\xa7nU\xe0W\x05\x14\xfc\
+\xd2\xe5\x165\x80-\x11\xf1\xdf\xf7\x8cRL\x0eq0\
+\xad,\xf1\x90\xb1mZ\x93\x8c\xcf\x8bVUW\xac#\
+n\x89\xc9$\x9e\xe8\xf87\x85\x8f\xd6\xca\xd1\xc2\xa1\x90\
+\x10\xa0\xa3\xd7\x8d1zZX\x92\xb8\xf6\xd8\xd2\x00\x06\
+\xcdP\xb1^UT\xb5\xdc\xf1#\x00\xbe\x14\x0e\xba\x97\
+\x1fcJb\x85!\xe3~\x01z\xdcg\x00\x8f\xe7\xf1\
+\xe6\xb2\x01xP\xa1\xb7\xbe\x01\xd5\xe2!\xfb\xdf~q\
+\xde:\x9fs\xeev\xe5\x19\xe0#\xb1\xe7\x87\x9d\xfb\x00\
+\xf6-\x8fY\xe3l\x89\xae\xfd\x99\xc4\xb4\x0b$\x18$\
+\xfc\x89\xb8\xdb\xfa\xf0\x5c\x8c\x8f3\x1e;\x80f\xfb\x8f\
+\xb4\xfa\x89+\x8f\x7fW\xb6\x89\xfcu\xeb\x07\x86M\xce\
+\xbd\xd3\xb9\xb2a\xfdIL\x13\x1f\xf6\xd8\xef0\x90O\
+\xb7(\xdb\xf2\x92n\x8d!Z\xfb\xfe\xb2-?kM\
+\x00@\x83\xfb\x821\xa7\x85S|\x14\xc6Q\x03n\xc4\
+Z\xd3\xf2\xd0\xe7\xa8\xb8\xc8u\xefD\xe6\x9bA\xcc?\
+\x03T\xf6S\x82\x02h\xf5\x94\x07\x8c\xe2_/\x1b\x80\
+.\xc0\xce^\x03\xcf\xfa\xb1\xdf\x15X\xf6c\x08\xad\x0f\
+\xcc*\x8c/\x85\x1c\xffN^,\xe17\x15\x04\x80\x9c\
+\xf8\xf2\x9c\x00\xb3\xc5\x1b\x12\x80M__6\xcc\x1bW\
+)|D(B\xd5+Xb87\x9f\xed\x16\xdb\x18\
+\x9f\x167\xe20%\xd6(>n \x87\xef\x8b\xbf/\
+\x1bk\xbf\x81l\xb0\xce\xb0\xf2\xea\x8b\xa8 Z\xe86\
+\xaa\x07\x08\x91z\xc80\x86\xe9\xa3\xe2\xa8\xffu\xb8Q\
+6\x18\x84\x85\xc3\xf1\xfbzH\x8b2x\xfbMD\xa6\
++c\x1e\x5c=\xae\xeb\x0e\x94\x0c\x94 \x14\x99J\xb3\
+\xaf:lP\xdf\x03\xc3\x81\x83\xa8\xbbt\xf9\x04\x94\x97\
+\x1b\x16\x1cq\x87:\xe0_;,$\x88\x91q\x84\xee\
+\xb3\xc4>\xbd\xff\x1d\x88\xaa\x18\x19S\x82\xf2kC\xa9\
+\xe8P\x87N\x00z\xf8\xeb\xcc\xc9\x8d\x03i\xaaP*\
+\x93\xbd\xc1\x04\xfa*\xb6z\xab?1\x94`\xeb\x03u\
+\xec\xaaQ[\x7fFz\xf2Ra\x81\x5c\xa1\xfcN\xaf\
+(\xdb\xc6<\x9d]\xa3l~\xfc\xe7\xca\xe6\xd7\xe7\x96\
+\x0d\x085\x91G\xe3\xf7\x92`\x9f}}\xd9\x10\xc0\xdf\
+&L\x90\x0fY\xc7\x8ft\xc5\xeb\xf3\x92\xc0\xbf\xbel\
+\x13\x0b\x9a\xbe\xbclS\xe3\xa7\x950}C\xd9\xfc\xe7\
+\xe7\x869p\xb3\xb2\x81B\x98\x03t\xfa\xe2\xb2\xe1\xe0\
+A\xfdA\x11}\xfb:\x06R\x02C\xf5|a\xe8\x9e\
+\x86\x80\xc3\xba\xd1B\x22!NOW#\xf6(\x89\xd1\
+\x10\xe8\x83\x11\xb5\x14\xe5x?\xe6-\x15\xff\x0e\xc02\
+\x96\x0a#\xc4~7u\xe1t\x87\xb2\xa1w\x97XV\
+\xa8\xdd\x10\xe4\xae\x0c>n\xb1M\xe5;~\xc2\xd8M\
+\xdf\xbbEfr_\xfb\x00V!2\xae3\xaa\xeb\xcd\
+\x5c\xe0@!\xac\x90Q\x88v\xc6\x99\xb5\x08\x8c\x84\x10\
+bO\xc4E\xeb\x8c\xfdf\xdf\x03\xbcTr\x01\x82(\
+\xb6*\xa4\x80\x01\x15\x85\xcc5\xbfTo:J]\xfc\
+ *\xad\xfb\xde\xd4a@\x86\x9e\xceTH:q\x95\
+0\x1a3\xa3\xd2\xae\xc5@\xafi\x02\x87\x16\xc7R\xa9\
+7\xb6H\xc2\xafR\xb0\x137\xec\xf9\xeb\x02m\x223\
+\xa8\xd6\x99\xbe\xd2\x15\x1c\x15n\x09\x12Q\xb30nP\
+\xfe\x1a00\xc7]\x82o,[4B\xba\xb7Q\xa5\
+\x0c#\xe9\xae\x19[I\xa3\x04\x85=\x09f'>\x00\
+Q\x07\xa8\xc0!\xda\x19\x1d(\x03\x86\x9d\x17\x02AL\
+\x0c\x89\xa2}e\xdd9'\xb4>\x19\xeb\x06\xb8UI\
+$2\x1b\xa6V3)0@\x00B\x80\x13\xbd\x91\x09\
+\xa4z\xfd\x86y\x83\xe2\x7f\xf6[e\xf3~\xbbU\xd9\
+0f.\xe7\xb99\xd9]yR\xd9U9O\xafd\
+S\x22%\xe8\x01\xae\x1a@Lec\xfa\x82\xb2!\x90\
+\x02\xb48\x9fR\x91\x9d>\xb5l\x08X%\xd8\x11;\
+\xb4\xcf{\xfa\x08`:\xfbfz\xd2\xf4\xb3\xd3\xecO\
+\x8f?S6$\xe0\xff'j\xcd\xd6\xb1\xd6\x00\x14\xd6\
+\x00\x9c\xc7\xb7\x95\x0d\x00\x83\xfb\xf6\x88\xb2%\xd0^{\
+~\xdf\x92\xa92(\xb6*{Z\x85\xc4#\xf1\xc7\xdd\
+\xd3OcB\xc1#\xeb\xa0\xc7\xb4&\x11\x99\xc3\xea\x05\
+\x08m\xaa\xed\x1fE,W\x02\x9b}\xdb\x0c\x1f\xda\x22\
+\x1f\x9c\xfd\xfd\xbaUt\xb6)\xf8\xd4\xdd%\x94D\xdb\
+r\xdfZ\xd4\x94\xd6\x83B\xc0\xad2\x1e\x11\x15\x1f\xd5\
+9\x15\xe1>\xc7}\x1f\xdf[\x22\xf2\x92\xb2!n\x22\
+V\xe5\xfa\x8d\xab\x05\x9c\xff\xf1*f{\xf8\x8bU\xc4\
+\xf1\xbc'%>\xfc\xe4\x88OS\xf3\x7f\xc1\x9a8\xb4\
+\x08k\xe2\xac>\xaf\x8c\x87\x0b\xf3\x01\x10\xd0\xe3\xc70\
+\x9a\xf8o\x14\xda{\x94\x0d\x01\xb5\xf8\xcfy\xa2\xa0\xa1\
+\x07WA\x84\x16\x03@8\xd4\xf9\xde\xa7\xd6\xbd\xf7\xb3\
+\xaf\xc5[[\xc1kM(\x04\xf0\x00-\x89,J>\
+*7\xe0\x82\x9f\xdaOY\xc1\x04\x10Wb\x1aat\
+\xd0\xee\xc1\xcc\x02\x5c\x00\x9aT\xae\x93\xa8R\x81o\x91\
+1\xe2\x8d\x01r\x00\x82\xde\xa7[7\x00\xde\x0aN\xc6\
+\x02F;\xa3\xe3\x11\x15S\xa2\xd2\x80\xd1}\xc5\xd5\xf7\
+\x10\xcf\x8a\xf7%\xc8\xfc\xae\x02\x9b|\x01\xe0\xee\xcf\xfc\
+\xb6|\xc0y\xa8\x82+\xce\xd1#\x0f\x10w\x1e\xfb\x91\
+\xcf(,\x02\xce\x9c\xd7D\x0c\xf9}\x9f#n\xd8\x8b\
+\xe6\xba.\xdf\x87\xff\xf5<\xb7\xfch\x8d\xf7\xc4\xf3Z\
+\xb72\xc6\xb9[\xedLw1}\xc6z\xb3o\xed\x17\
+\xbd\xe2\x98\x184\x08R\xb8im(\xe7\xb4B\xaex\
+\x13\xd0\x0dx \xfa\x08P\x00TXg\x89\xa7\x9d7\
+\xbd^|n\xc6\x19\xb6\xa6\xd0\x85e\x03\xe3\xebcV\
+@\xf8\xf4\xc2\x88\xed\xa1\xd4\xfb|\xf1GZ\xd4\xba\xe2\
+\xfe\xa0\xc5z\xacu\x17J\x9c\xa3\xd6U\x80\xaf\xd3\xdb\
+\xca\x86\xefG\xfb\xc1>t\x8e\xd9\xbf\x00\xa4\x00Y\xdd\
+z#\x1e\xb7\xde\xecs\xeb\x8d\xa6\x87\xe9\x02\x9e\xab\x02\
+\x0c`>\xebD\xdclJ\xd7\xa5\xc6\x10j\xfd\xe1\x97\
+\xad\xfb\xfdt<\xeb,\xdf\xef\xdc\xb9\xef*\x1b\xc6\xf4\
+P\x1b\x96\xa0A\x1a\x88L\xe9e\x14\xe8\xe8\xdd\xd3\xdb\
+\xeb\x80\xb2Q\x88\x94\xa0F\xa1N\xd8\xe0\x1e\x9c\x0bu\
+cwc_.\xb5\x91\xe3\xe8\xf4`\xce\xe1\xd4\xfa\xe0\
+l\x94\xf7\xe6\x8b\xbe#\x94\xbfg&\x11\xb7\x11|?\
+\xef\x97@\xb9\x13\x8f\xa8\x04/\x84\xf9[\x069\xbdq\
+\x90\xe4\x9b\x0cc\xf3$\xe6\x02\xe2r\xa47\x1e*\xef\
+u\xbc^\x7f\x08\x08\xeb1_}xP\xa8H\xe5\xf6\
+8\x8a7\x0e\x81Q\xb9\xbbk\xe7\xf3o0<\xe8\x8b\
+\x96&\x88\xadg\xa8\x96\xc9\x7f\xe5\xf3\xae\x17\xb1\xaa\xab\
+\x0d\x09\x01\xad\x06\xcf\xad\xe0\x88+\x0e\x09\x09q\x13\x01\
+\xbe\x00\x06\xf5\xfa\xe1\xa9\x9c}Y\xdeo\x03Z\xd6\xfb\
+\xfc\x90\xa88?9\xe3\xb1$`q\xf85l\xaf\xc6\
+\xed\x9d\xf7]\xa9\x08^}\xa5\xdc\xcf\xd7\xbaV\x10\xa9\
+\xeafC\x1c>3\x15V\xbd\xea\xe6\x07G\x9d{z\
+N\xd9\x10\xe0\x07p\x99\xfe\xb4l\xd3\x04 \xf2s\xba\
+L\xd9P\x19\x07,\xe8U\xfd\x82\xb2\xad\x02\xbd?\x00\
+\xba\xf2\xa8\x12\x1f&\xc0\xd9\x17\x95\xcd\x7f\xfe\xb9\xb2\xf9\
+\xf5\x1f\xcb\xb6\xde\xe3\xae\xf4\x0a\xec\x01d\xa8G\x09\xb4\
+\xa7k\x95mT\xaf\x16\x7f\x13(\xfa\xb3}\xc1\xc1X\
+\x0f{\x80\x0d2k\xac\x10\xc7B\xfc\x0b\xf5\xfc'\xca\
+\x06\x0a>G$p\xa3r\x8d\x12\x15d\xb8[\x19B\
+\xe5\xd5\xdb\xa7\x07\xb7\x1ap\xaa\x05\xe7\xf8\xe7e\xcb\x98\
+\x99\xf7\xd7\x98\x99\xe9\xfee\x1bu\xfa\xf8\xfc\xb2\xad\x82\
+\x08\xa1n\xaap\x10\xe1v\xd8*\x9d\x7fZ6\x04\x0c\
+*Oz\x18\xa3\xee\xda~\xc5A\xca/\xa1D\xc71\
+C\x9c;aE\x89\xd5*\x04)\xdeU Z\x84\x0f\
+#A\xc0M4NK\x8d@\x07 \xa8\x97\xdb\xc1\x8d\
+i!\xe0ppl@\xd9\x1a@:\xc0$\xe8\x90]\
+\x00\x87\x03\x09\xb0(A\x05l\xf2\xbf\xa8\xeb*\xb4\xfc\
+\x91D\x1f\x85\x9d\x88#j *\xb4\x00\xc2\xba\x89\x06\
+IO!0n\xed\x05e\x83\x9fT\xd9\x97\x80;\xe8\
+h\x98\x98\xcb\x8e\xaa\xff\xe5e[\x00\xd5\x94\x7f\x94L\
+\x89\x91\xcaT\x002\xe3\x14\x89\x95\xa2\xfc\xf7\xd8\xce$\
+\x84]\xf9\xa6q\x11\x11DS\x11\x8e\xbfU\xb6Q\xfb\
+ZTP\x00\xe2\x00\x07\xb4\xe8\xf9\x8f\xbf\x03 t\x82\
+N\xbd>S9\xfa\xb9X?\xce/\x81\xb9qb\xce\
+\x03\x9a,\x80K\x09\xb9\x1ek\xf7s7>i\xba\xa8\
+l~\xfd\xf4\xb2A\xebD\xa0Ed\x0b\x058\x09d\
+W\x00C}\xee\xf9\xf6\xd4\xc4U\xd2\x1f^6\x04\x8c\
+\xb4\x14\xf6\xd3\x1e\x9c\xb3\x02n\xa2\xb0a\x045c\xc9\
+u$0;\xbc\xbcl\xdb\x8f\x0d<\xf9I%\x86\xf6\
+\xc1|F\xaf\x15\xc7\xf4\x8ev\xeb\xc83\xd7\xf1\xa8g\
+O*[\x18*\xab\x86\xc4o$\xf1\x0b\x00{\xfc\xd1\
+\xb2\x0d\xa0\x9c>\xbel\x08p\x01q*\xc2\x12\x10\x89\
+\x07M\x0ecDS!m\xd5m\xd3=\xfe=\xe7\xdb\
+\xc5\x99\xe2b]H\x88P\xc5%\x10ZwT0\xad\
+?\xfeI\xbc\x04\xb0U\xa9\x0d\x93\xa3\xa9\xcaT\xba\xc3\
+\x14hf]D\xaf\x0e\xe7\x97\x0d\x94V\x09\x9b\x04@\
+\xa2r~\xa8\xa8Z\x96\x88R\x12\xc1\x0c\xa5\xb7\x01\x98\
+\xf7G\xe47-\x99\x1d\xc0G#J\xdc\x85\xf9w|\
+x\xd9\x22.\xfb\xda\xe3k\x87\xf3L\x1c\x17\x7f\x05\xf8\
+\x03T5#\x80\xff\x16\xe7Y\x8f\xce\x81\x00\x88\xad\x15\
+a\xca\xc37\x94\x0d\xe7\xa5\xc4Z@N;\xe2+\xcb\
+\x86\xb8\xd5\xf3P\xc0\x92 \x0a\xc0%\x16\xfe~\xd7\xea\
+\xaa\xf2\xdc\xc0\xab\x04\xc4\xe7{\x1f~\x5c\x85z\xd72\
+\xd0@\xbaDc\xa7}\xd2s\xee%6\xb4;\x00X\
+\xb4\x82\x9e^6\xf4(S\xf9\x07<GK\xa6\x19'\
+\xfc\x16&\xa2\xd6T\xe3Z\xf9IS-\x5co\xfcX\
+3\x11v\xea\xf7}\x9d{\xd1X\xf7S\x22k\x1fx\
+\x95\x98\xb9O\xde\x0fp\x95\xf1z\x0d\x04\xf1\xbf\xceS\
+\x05I\xcf\xcb\xba\xf1\xfb>\x87\xd8\x9a\xeb\x16\x97xn\
+\x0a\x84\x120\xefc?9\xa7\xf7\xe2\xdd\xceq\x00\xa8\
+\xe7L\xdb!\xd3\xb1.\xd5\xca\x95\xd6f\x85\x05\xa2\x81\
+\xcd\xcc\xc1\x94\x0dp\xa7\xf0\xdbZ-\x0a8\x19\x8bm\
+|kkI9\x7f\xc4\xa3Z\xd4\x00\x1f\xbe\x0f\x06Q\
+*\xe1\xd4\xec\xbb%\x00e\x1fCF+&\xc0\xce4\
+\xb5\xcf\x8aFK\x80\xc5\x8e\x93\xc3\x90k\xa6\x81s2\
+~\xac\x99%\xce\xc9T\xfe[\xdc\x193\xc8\x7f\x07\x98\
+\xd9_\x9e\x0f@C|\xc5\x1f\x03^\x89O\x9a\x8aa\
+\xff\x03\xd6\xe5ioo\x0d\xbcu\x1d\x03\x14LG\x88\
+\xff\xeb\x02\x81x^\xbe%N3&\x9b\xd8#\x11A\
+\xbf\xe7g\xaf5\x018\xcc\xcf\xb9\x9e7^\x95\xb6\xaf\
+\xdd\x0e\xdeV\x0bV\xc1\x8a\xaaw\x8f;\xc8\x86\xd3\xfb\
+\xdd\x88\xaf\x0d'\xb1\x95P\xee\x10\xe3\xdeX\xc6\x8d\xfc\
+{\x0e\xea\xa8Pv\xc0\xceq\xef_%*D\xb2\x88\
+1m\x07\xd4\xca\x00xQ\xd9\x96\x104\xa5\xec\x11Q\
+\x874N\x0eU\xa3\xd2\xa6?\x1e>\xbf\x96\xc1\xb5\x87\
+Wc\xf8\x88\xa0T:}\xa5l\xd4\xab\x0c\x08e\xa5\
+[\x1f>,\xa4\x0f\x8eJ%\x07Cl\xa2\x90\xaa\xbf\
+\xdcz\xd0\x97\xc7z\xcd \x9b\x1f18\xbazl\x1f\
+\x18D\x08\xeb\xeeM\x03\xe2~\xbd%\x95^{\xf7>\
+eH4\xb4\x1cH\xfc\xdd?\xd3\x0b0\x0d8\x0c\x14\
+\xe2'\xac\x14\xf9\xeeY|b*\xd8(Z\x12\x98\xdf\
+-[\xc4\xf9\xd61x7X\x03\x9c\xe9\x95\xd3\xdfM\
+\x7f7,\xc0'\x84\xc2\x99J\x02\x84Q\x0f\xd9\xe9e\
+e\xc3\xfc\xe0\xd7G\xc4#\x89d;\x22\x22I9`\
+\xa8PS\xffE\x01\xeb\xa9\x02\xa8\xe4\x1c5d\xde\x0f\
+D\x9b\xc8\xc8]\xca\xb6\x83\xa8\x13\x9d \xbe\xc6N\x95\
+\x22\xc0\xa2\x09\xf0\x97eQ\x9f~\xd2\xa6i\x80QA\
+\xdc\xa9\xc5\xca\x04\x86\xa8\xd1o(\xdb\xa8\xe4\x9d0J\
+\x04\x89\xb5\xa1\x0e:\x10\xac\x0b\xeb\x10\x90c_\x00\xee\
+\x00\x0f\xa8]{\xe6\x00\xd17\xd3\x03B\x95j\x87\xe7\
+\xc0\xf4\xbe\xd4\xe5i=\xc4\xb1\xf5\x18@=|\x01 \
+\x88\xfa\xf13]a\x89\x1f\xd0bt\xfc\xee\xb2\x0d\x80\
+9>\xb6l\xf8~\x10T\x15\xeb\x001]\xc9A\xb1\
+\x12\x98J\xe0\xedcS>8~\xf7q_\xc9\xb5?\
+\xa2J\xdc\xe3\x07\x1fP6T\xe2\xdd'\x09\xb0J>\
+\xe0\x0b\xb5\x1f \x91\xdfO\xdf\xc0\x18\x90\x00r\xd4\
+\xdeW\x0f+\x06\x8du\xef\xfa\x02\x9c\xb5_\xe6\x0fP\
+!\x1d\xf8\x02L\x9a\x11o/\x1b\xbe\x87\x83F\x02\xd1\
+*s\x993\x1b\x86C31T\x12U\x1a\xa8\x9b\x13\
+\x91\x05\xa4$\x911\x0f\xb8\x03\x9bP\x9a\xbb\xc5\xc0s\
+\x92 '\xe1\xeb\xf9\xc3\xf6\x03U\xde\x97\x9d\xf7\xf2\x05\
+p\x00P:\x87\xf4\xe2Z\xbfZ\x972?\x99\xe8g\
+\xd5\x8f\xab\x82|xI\xd9v\xdf\xac\xc3\xe3m\xca\xe6\
+\xdf{\xd0\xaaMb\xbe\xb1\x8aB\xdf/\x95\x1f\x00\xc9\
+\x9f\x95\x0d\x9a)Z;\xecC\x01\xb5@\x0e52\xd4\
+\xff>\x9fT\x88$H\xf6\xb7q\x93\x126\x89(\xbf\
+f=%Q<\xbd}N\x00\xde\xbeT\x5c\xae\x5c\x15\
+\x17\x00\x9c\xf1@\x02\x8d\xe3\xaf\x96\x0d\x14\xc6\x04:\x12\
+\x9d\xe3\x05e[K\xcd\xf41eC\x85\xc7\xb8\xa5\xdf\
+)\x1b\xae\xdbs\xa3\xd2\x9d\x84\xe0p\xb5\xb2\x81\xd1\x11\
+\x86\x86^~\x80FS\xf91\xcb\x04P\xd9\xefg\xf7\
+)\x1b(\xe3\x09\x84\xdb/\xc4\x1f\xd02\x98\xeeYV\
+T\xfc\x95\xd2zH %N\x98O\x9f\x95\xa1t\xf5\
+\xb2A\x1c\x90\xff7\x8e3\x00Q3\xdfh\xb3D\x03\
+\x81\x86\xc1\xe1\x8b\xcb\x86\xc2\xc8\xd7\xac\xad\x03\xcd\x98\xfc\
+\xfb\xb4\xb6\xe4\xdc\xedi(\xfc]ZP\x0e\x8f_\xfd\
+\xa8\xfd\xd4\x22\xa9*z\x02P\x01\xf6\xa5\x05\x00\x00 \
+\x00IDAT\xfbM`\x1c\xa0\xa7\xe3/\x80E\xfc\
+R\x03q\x0a5(\xa4\xe23\xda\x1e\xce\x0f\x09+\x11\
+^\x95\xf0\x000\x9d\xf8\x19W\xfa\xac\x15p9<g\
+\x8d\x13<'c\x22\xfb\xf9\x86q\xd8~#\xe7\xb5\xb1\
+\xce\x87cD\x14\xbf)\x00\xd8?\xa6bN\xd4\x97(\
+ \xd1\xc8P\xb9\xfb{H4\xf9)\x81\xb7\x84L<\
+\x06\xe82\xbe\x0c@'\xd1q\x1f\x010\x18{*\xc2\
+\x18D\x00j\xe7\x11j\xbd\xca\x9d\x84YB\xbc\x07\x0a\
+\xb4 \x00\xee1\xceT\xd6\xc53\xa6\x19\x00\x5ch@\
+\xd0\xf01\xcdFK\x02\xed\x09\x00\xa5\xbfw\xfd\xb4G\
+h\x1dH\xdcM_\x91\x88\x02\xba\x14\x0a\xb2\x9f\x1bP\
+\x94\xf8cD\xf8w\xc4^\x8d\x813\xa6\x0f\xb0\x12\xa6\
+g\xb7BZo\xee\x8b\x84\x0aC\x06\xf0\x9c\xfb\xd0\x15\
+x\x09\x9d\xf3S\x1c\xe3\xdc\xf7\xbe\x12}\xaf\x123\xd7\
+\xed\xb9x\x1e>\x97\x06\x09@\xd0\xfd\x90\xe8i\xf1\xc9\
+\xfa\xeb\x96\x85\x14tZ\xb3H|\x87)\xa0\x15\xc5\xf5\
+x\x9f\xdd\xb8\xc9\x06\x9c\x88\xfd\xa65\xa9\xc7;&.\
+nF\x90\x82\x1em&\x09\xb3\xb8\x09 !\xces\x7f\
+\xb4fj\xc5H!\x13\x90\xdcq\x96\x0a\xbf\xf8j/\
+z\x88\xc9\x87!\xa2\xb7\x9d\x18 \x8d\x89\xc4M-\xe6\
+y\xf5\xb2\x8d\xc1\xda\x00\x9bs\xd7\xbf\x0f\x83\xa0E\xca\
+U\xfei\xd8\xd8\x7f\x12s\xf18\x00\xc0\xba\xf2\xbc\xed\
+7\xf1\xa7\xfb\x0dXS \xc4\x8c\xd0\xba\xa7\x05U\xeb\
+\x0b\xad\x85\xbdh\xbb\xf5\xc5\xffh\x99\xc0\xbcR\xd0\x02\
+\xec\x8b\xd7\x01J\xc9\xd7z?+\x10\xbaNq>\xff\
+C$\x1f\xe0\x95<\xf5\xdcR!y\xecPA\x84\xe4\
+\xaa\x08\x08H!{(\xc4n\x8c\x1bK\x04dW\xc1\
+\xe8^\xfb$\x06M\x95\xdd\xf7:\xa1\x82\x00\x02\xae\x93\
+^q\x1bV`\xba;\x80.\x85t\xb8\x91\x17f\x8e\
+9\xf1!s\x14\xe3\x88\x96\x07\xf8W\x03\xf2t\xfe\xd2\
+\x15\xb6\x05,\x1c\xaf\x84\xbfp\xe3\xab\x0e\x95\xf7z\x1c\
+\x17\xe6\xba\x8e\xc3\xc1-\xf0\xa9\xc7\xfb\x9f\xa1|\x98\xaf\
+{Q\xbe\xf7(RE-\xb3\xa8Y\x7f=\x8c\xdd\xab\
+\xbbv\x95!A\xa9\x84\xfd\x03y\x9f\xf7\x0f\x09\xa0\xcf\
+\xc9}\xec\x9ed\x15f\x1b\x8e\x08\xa0\xf7\x8b\xa3\xd7\xd2\
+\xd0\x95&=4\x80\x8b\xaf\xc8\x06W\xc1\xb4\xa0C\x99\
+\x9f\x9d\xd3\x1a\x90\xfe\xcdJm4\xde\xe7\xf0\xcb\xe9A\
+Mew~Vk\xcf\xdc;\xd7\x85X3\x03\x96\xa9\
+\x01\xdf\x9a\x9eN\xc0\xd1\xd5S1\x09\xe5\xbe\x03\x92\xcc\
+\xd7n\x8aP\xd4\xe5\x9br\x9a\xdeK\xf3\x97U\x0e-\
+\xafN\xdc\xac\x07cE \xd8;\xb5\xd2\xe3g\x94m\
+S\x00Z\x0b#=\xce\xdd\xebn\x0c!\xaa[\x80\xa4\
+\xee!\xb3\x01\xc7)\x12\x17\x0e\x15|TC\x09\x9b\xc4\
+\xc2\xfe\xd1\xb3F\xfbA\xc2d_\xeeUI\x1d\xe0\xc6\
+m\xe9\x11w\xd0\xa0\x5c\xa3\xa4\xdb\xf7\xe6$K\xec%\
+\x12;1\x9c\x06(h\x08\x08\xe4S\xd9=\xde\xafl\
+\xab\x00\xb6\xe6\x00\x00\x03\xb2+p\xd0\xdb\xfd\xaa\xb2\xf9\
+\xdf?\xb9lP\xed&\x16\x06\xd9\x0cS\xa9)]\x10\
+c\xc8\xabqn*\xf3\xc4\x85\xb2n\xbaW[\x8f\xa0\
+}\xc1\xc1B\xf6\xf9\x19\x15w\xa2\x81\x121\x07\x85\xe7\
+\xe0\xa0V\xc97\xd6\x08\xc5\x5c\xab\x0d\x80\xcd\xefy>\
+\xa1\xe4w \x17\xcd\x8f\x9e\xeb\xabbC[\x00\x85\x1f\
+%\x16C\xc2\x81b\x9f\x13\x13M`\xa6u\xa6\x03\x1d\
+~\x5ce\x0c\x00\x22\x01\xd5\xb3fLX\xe6\xcc\x1aC\
+\xd8\x01Q\xa8\xae]\xd9\xe3/\xac\xa3T\xa4\x89Fv\
+\x05\xcf<y\xaa\xe0\xc6\x8b\xba\xcf\xa8\xd3z\x10_\xb3\
+\x8eU\x9d\xbd\xedY\xf9[\xea\xea\x87+\x95m\xe2D\
+\xdd\x9a\x14m\x90\x9e\x86p\xff\xb2-1k\xed\x8f\xac\
+\x9b\xe9/\xca\x06\xbf\xfc\xbf\xcb\xe6u\xf9\xbf\xca\xb6\x0a\
+x\xefO\xcf\xdd\xf9\x83\xb1\x83Y\xe3\x5c\xf4\xbch&\
+\x04\x18\xeb\xf3*\x95\xfa\xee\xf9\xa7I\x01H\x12@\x0b\
+h\xb5x\xe81\x8d(\xaa\xef\xd7=\xff/\x9e\xc3\x87\
+\x17o\xd3;\x88!\xb6\xb8S\x02\xac\x9e\xa7\xfc\x07e\
+C\xc0\x90\x9exL\x15\xe3\x80\x891adt\x22\xf7\
+\x83i\xe5\xb8_\xf6\x8d\x96\x87\xbf,\x1b\xa6\xedH<\
+T\x5c\xado-L\x99\x06\xd0\xe2\xb2\x01VZD\x16\
+`\x99\x0a-\x7f^\x0d\x5cK\x0b\x17\x7f\x13 \xfbt\
+\x9b\xb2ATW\xc0w\xb5\xf4\xe6\x03\x16\xc3d8\xbd\
+\xb8l\x98\xaf-\xc1\x078\x03\xc6=\x0f\x9a\x0d\xd1<\
+A\xa1&2h\xdf\x1d\xee\xb6jo\x10\xf5mM\x14\
+Z\x16\xc48\xbf7\x8c9\x0c\xbb\xc7-\xf3t\xd6\x04\
+\xe0W\x86\xb9\xee*\xa6\x02E\xfb\x16\xc0\x84\xb9\x99\xeb\
+\xad\xd9FK%_\x5c\xa52\x89\xa1\xa3\x05\x8c?\xe4\
+\xaf\xf99~O\xab\x14\x06\xcd\xc3\x03\x04\xf9<\x22|\
+\xb9\xff\xd3\xdf\x97\x0d\x9a\x15\x12r\xeb\x18\xe0a\xac$\
+\xd1\xc4\x17\xad\xcf\x7f\xfa\xdd\xb2\xf9\xf2n\x7f\xbc\xc3\xf1\
+\x0e\xcb\x98\xbf5ap}\x18R\xc6\xf5\x12K\xe5\xff\
+\x8dCs\xfd\x97\xcf\xb9i_\x893\xb4 \x11{S\
+\x00\x10\x90K\xcc\xc4\xc9\xf1\x0fM\x85\xd7\xd3\xed\xdc\xf6\
+\x9a\xf3\xfd\xf4[eCK\x93\x16&\xf1\x80\xfb\xce\x1f\
+\xbb.c\xf6T\x1e\xc5\xcf\xfc\x8e\x04\x15@\xc0\xbf\x9a\
+\x92A<Ob\xae5A\xfcn\x8c\xa1D/\x9a6\
+\xfd\xbe\xfc\xb9x\x00\xe3\x05\xb0\xa5\xc5\xc9T\x0cqt\
+\xe2\x92nqt\xbdI,\xbb\xd5\x0b\x03,\xf7\xa7\x19\
+(\xe2~\x00\x85D\x93\xbf\x908;\x07\xb3O\x9b\x99\
+\xa1\x10\xe6\xba%\xa4\x985\xee\xb3xW|f=b\
+\xe2\xed)\xf4\xe6\xd3c\x18\xd2\xfa\xa0\xd6\xff\xd6\xb2!\
+\xbe\xe2o\x88\x1b\xa6p\xd6\x9f\x0b@\x00d|E\xd9\
+&^\xda\x95g\xbf/N\xd1\x83\xae\x80As\x82f\
+\x1b\x06\x92\xf8\xdeu\xdcb^\xf5\xb7X\xfc\xc6R\xf0\
+l5\xfe\x88\xc9\xc9g\xb4\xfa\xee\xc7,\x1e\x7f\xa5l\
+`\xe4i\xe9\xd6\xfb\x9e\xf1\x9e\x1d\x97Fl\xb4\xa7k\
+\x19\x07\x18\xe0\x15\x03\xb9\xc7b^\xb5l\xf0/\xf67\
+\xff\x8b\xa9n\xdcu\xfc\xfb\xf1\x95e\x03\xd3%\x8c\xee\
+\x16]\xccz\xebiv\xfcE\xe2\x87.\xe0\xda_\xf2\
+\xb9}\xe5~\xdfJ\xe2\x95\x7f\x00\xa8x\x1f\xebGa\
+\x9c\x9f\x96\xa0\xf0\xbf{m\x09\x09\xbf\xeb\x10o\x88\xfb\
+\xadk\xeb\xc3:\x10\x07\x8aS\x88\xb4\x9af\x94\xbc\xe4\
+\x5cW\xf4\xd2\x83\xd6\x0b\xdbF\xd9S\x89!\x1e\x10%\
+\x15&7\x08\xb2*A'.&\xb1\xb5\xf1T|\xdc\
+P\x8eA\x85h'\xc6p)\xf1\x99\xbd\x88\xe0&\x16\
+\xb8&\x5c\x1c\x1ajw\x10\xb7\xa6t\xdex\x19<\xb8\
+\x8a\x22\xfd\xd8\xb0\x01o\xbf\xa4\xb4\xdb\x01\x8a\xba\x7f\xf5\
+%5\xdd\x1eT=\x9e\xa1\x92~\xfa\xaf\xd9\xde3\xf4\
+\xd8C\xc0P\x820\x08h\x0aT'\xee\xf5\x07` \
+\x95\xf8\xd3{\xcb\x86\x84#S\x9c\xfa`v\x80y_\
+\x0b\x16\xe2\x09`\xc8\x81\xdd\xe3\xfc ]\x127S\x11\
+\xee\xb9\x22\xb1\x87\xcfO\x02\xf1Ayn\xc6\x1f\x09\xe8\
+%\x0a(\xbc\xc6\x14\xa5\x82\xa6\xe25\xddz\xba\xcdt\
+\x9b\xad\xe7\x94j\xbf\xc4\xfc\xf4\xbd\x99\xe7\xfe[k@\
+\x7f\xf6Egw;\xbb\xdb@\xe53\x17\xfaIi%\
+H\xa5q\xbaK\xd9\x96\x10\xf5\x01\x13\x15_c\x9aT\
+6\xbb\xf2.0\xa2\xe6\x1c\x8az\x8b*\xa1\x8e~p\
+\xd9|\x9b_Z6PL\xf5\xe2\x85\xdaz\xb8\xb0l\
+HP#\xc2t|Z\xd9\x90X\xe7yM\x8f.\x1b\
+\x80\x15\x0e\x19b\xfb#eC \xa9\x12\x8c\x82g\x0c\
+\x0d\xc7\xadgSb\xe0\x00\x138\xe8U\xce\xfb\xe99\
+\xed\x0a\x8e\xc4\x8acq\x80\x04\x19\xee\xca\x8b\xc0U\x85\
+\x88\x03B\x89L\x02\xdb\x81\xb9\x84SO\x7f\xc6&\xb6\
+\xe6A\xc69\xb6\x08\x16\x91\x9f\xa8\xd7v\x02k\xbf\xb9\
+>\xaa\xa9\xe9\xf1=\xbe\xbalHD#>\xe3>v\
+\xc2\x1c\x11/\x07N\x8f\xf5I\x0bI\x8f;TA\xf0\
+y\xfc\x98\x83\xdb\xfd\x22~C[B\xcf\xbc\xd6\x9f\x00\
+_\x8d,c\x04\x00\xe48\xea\x04\x0a\xed?\xd3R\xd1\
+\xc0\x0eq7\xea\xe4\xfc\xa4\xca6\x95\xffh#t%\
+N\x80\x05P\x0208\xe0B\x91mum\x81%\xb1\
+\xb5\xf4\x98\xf5\xc1\x12\xff\xdbH\xb7\xe7\xeb\xa0\x91\x00h\
+\x1dB\xe9\x0c \xd3\xeb\x8d\xbfG\x9d\xdf\x8b\xf7\xa4\xa7\
+\xb6\x0f,\x15\x92\x04\xa2\xd6_3\xa4>n\xbe\xda\x8f\
+\xdb\x02\x14\x95\x88\x1egIk \x94\xea\xe9\x9ae[\
+%\xb2+\x11\x9e/Jy\xa8\xe7\x87\x17\x97\x0d-*\
+ia\x99~\xadl\xfe\xf37\x96\x0d\x01\xa9J\xea\x0d\
+\xca\x06\x11\x5c\xf3\xce\xe3\xf7\x1a\xa02u\x876IT\
+\xc9\xf9\x9bN\xc81@\x04\x0e\x12\x09\xeb\xd4\xe7\xa8\x00\
+\xf1;\x02r\xeb\x1a\xc0\xf9=\xab\xdf\xedq\x9b_\xb2\
+\xfa\x9f\xe9E+@wzC\xd9\xe6g\x9bRH\xb5\
+\xf9\xf3\xca\xb6\x00\x1d5\xbb\x19\x14\xe9\x89\x9f\xee^\xb6\
+0\xa0\xd6VA\xe7MD\x03;A\xcc86\x81\xbc\
+V\xa3\xa6 \xc7\x8ft\xe2Ed3\x0c\x83\x06\x883\
+U\xa8\xfdi\x80\xe1\x16\x1b\x03\xc4\xa1\x92^g\x05\x14\
+\xbbuD\x9c\x82b,\x11\xbb\xd2ZA\xea\xd6\xb3\xaf\
+\x8e\x06K\x18h]YO\x22\x84\x190}Z\xd9\xc6\
+d\x03\x90\x1e\xae\x97\x963*\xda\x00(\x89\xbf\xf9\xdd\
+\xafX\x19f\x0b\xe3\xe1\xb59g\xde0$\xb0\xaeO\
+\x8b\x11m\x02\x80\x0a\xc0\x99\xe8U\x02e=\xd8\x87o\
+\x8bv\x86\x80\x95_:K \xfa\xeaPvUR1\
+\x97\x04\xb6\xe2\x10\x85\x9eOIeR\xc1\x81\xff\x8a\xe8\
+\xe1\xf4\xf4\xb2\xa5\x85b\xd1\xc2\x99\xbekzx\x8d\xf9\
+\x95x\x1f\x9fZ\x16f\xc4W\x0f\xfb\x89&\xca\xf3\x03\
+,\x02`\xc2H\xbd\xe4\x81e\x83\x16\xc3(\xc6|\xed\
+\xe1<\x14\x1f\xba/\xdbx\xd85~z]\x12\xbd\x9b\
+'0WY#\xaeK3Eb\x85\x9a\xaf\x10\xa20\
+\xa1\x15\xcb:BE6\xcd\xc6z\xe4\x070~$J\
+\x7f\x90\x84\xdcubZ\xa2P\xff\xc2\xe9\xa9\xa7\xa7\x0e\
+\xe2y\xf6\x85\x9e\xe2\xf7\x94\x0dq'`\x07@\x22\x11\
+0\xe5\x83\x98\x1a\xe0\xe2\x97\xcb\x0618\xe3X\xb3\xce\
+Z\xc4W\xa5Q%\xd3\xb8:\x1a!*\xed\xce\x17\xc0\
+\xb0\xb1\xad)@\xb4\x16\xc1\x9e\x19`\xcc%\x80\x08\x83\
+\xc74\x01b\xac\x12(\x09\x93\x84\x1dp\xe4\x5cq\xde\
+\x8a\x97\x00B\xd1\x94\xe8s\xca\x7f\xb7\xce1\xa1U\xb4\
+\xb5\x18\x00\xaaM?\x10\x17\x8b\xbf\x9d?\x80n\x15v\
+q\x9aB\x06f\xb4\x9eq\xeb\xc5\xdf\xab\xc4cv\xe5\
+<j\xe0\xc5\xba\xa7Y\x00\xb8\xf9\xb1\xe43\xee\xbf<\
+\xe8!e\xc3\xfaz\xc3\xeaW\xfa\xbc\x97_E;\xe5\
+t\xab\xb2A\xd47\xf1H3W\xb4\xc0a\xa2\xa8\xcc\
+\x9b{\x9f\x7f\xdfb\xb7\xf6\x15\xf1T\x9a\x5cZ\xfeh\
+\x17\xdc\xb9l\x10}\xc6H\xa3\xc5!\xde\xb0\xce1\x97\
+\xaf\x5c\xb61\xd1\xec+@kO\x0d\xbbu\xd9\xa09\
+\x84q`\x7fb\xea\x01L\xc4%\x98D\xe2\xc3}+\
+\x94\x84\x9d\xff\xf1<\xc5M\xd6+\xffi\x7f\xca\xcb\xf2\
+~\x87\xcf,\x1b\x00h\xcf\x05\x93$qf\xef\x1f\xeb\
+\x0a\xa0+^p]\x00\x07\xf9\x83\xeb\xc8\x9f\xcf\xf5\x1b\
+\xa8\x00>\xbflPut\x01\xa8c\x029s\x89%\
+\xfc(:zA\x8c\xef\x11\xa8\xfa}\x15/\x17\xba\x1f\
+\xbb\x031\xc4\x04\xb8a\xc6'9p\xdc@\xc8\x09\x07\
+\x90\x9f9lY)\x14\xb7]7\x16*\xd7\xf1\xdee\
+A\xcc\x7f7H\xd3\x13\x86\x04\xda\xc6\xa6\x1a]u6\
+\xe3\x89>tX`z\xf0\x00\x13\x16F\xe1=o\x1d\
+\x02f\x0c\x01\x15\xd7\x88\xebt\x02?N\x09\xb8n\xee\
+\xf3q8\xa0\x88\xf9\xf9\xbeZ\x00\xfc=1A\x09\x02\
+\xa0\xa6\xa8\xec\xefL \xfb'C\xaf\x10\xea\xbc\x84\x1f\
+u\xf1uk u\xb8b(\xf4WO\x80\x09\xe16\
+\xf6H\x82\x22\xa0\x8bz\xef\xe1\x01\xebX\xa8\x1e\x83\x84\
+\xca\x1e\xea\xfd\xf4S\xd3ON?\xb9\x04\xd0\xe7O\xe7\
+/\x0ej\x09\xecN\x97/\xdb\x12\xb9\xd6x|W\xd9\
+\xd2\x1b9\xdb0\xfe+\xf7\xaf\x19\x06Y\xa7\xed 9\
+ \x01\xbd\xde\xe3$\xac*k\x0d\x0c\xd0\x0eP\xa1J\
+\xcb\x8b\xf9\xf5\xc7_+\x1bzs\x8c\xfd#\xca\x175\
+\xf1\xe9+\xca6\xf5\xe5~_\x147\x0c\x02\xd4`\xea\
+\xf7\xe9\xd5*\x09\xa7E\xc4I\xef\xaeJ\x8bu\xe9\xf9\
+\x02\xa8P51;\x00!\xd6\x15M\x0ec\xce\x04\x8a\
+\x9e\x9f\x0a\x01\x04\x93\x83\x93\xd0x\xbe\xa1\xfa.T\xe3\
+\xcf\xce\xe7\xddy\xa8\x8cKDR\xd9\xec1\x85\xa9\xe8\
+_\xf2\xe7e\x9b\x83>>\xbdlc\x16uon\x80\
+\x9e\x0e\xa8Qh\xf5X\x06 \xc0\xcc8\xbbk\xd9 \
+6\x17j\xfe\xf1O\xcb\x86V\x1e\x0c\x1b=\xed\x02\x8f\
+P\x0e;\xc0\xa1\xf2\xce\xff`\x14\xd8\xd7~P\x9c%\
+\xd2\x80\x10\x15\x12\xea\xd3\x80\x91\x1a\xff\xf9)\x03b+\
+\x90\xe4\xf0\xedK\x22U\xfe\xbd\x04\xc9\xe7@\x92\xf5\x9a\
+\x11\x9b\x92\xe0E\xe3\xa3)\xd2\x80\x1c@\x90\x03X\xa2\
+)\x10\xd3\xa2\xb1\xd7 \x10x\xa8TH0\x04`\x00\
+\x1a@D\xc4\x1f\xcd\xa3o5^\x07\xa4^f\x80\xd4\
+\xaf\x95\x0d\x07ez\xcd\xbb\xa2*\x90\xb7\xee\xf9\xdb\x00\
+q\xcb\xb4\x9a\x9b\x0f\xe3]\x8d\x7f\xbbC\xd9\x10hh\
+\xb5H 6=\xafl\xab$\xb4\xa8\x98V\x04c\x8d\
+B\xf9=\xfb\xac\xb2\x8d\x9a\xdc\x15\x8f\x00?\xc7[\x97\
+\x0d\x07+\xad\x15\x01\x8e\xd6\x89w\x97\x0d\x94\xf4\xdc\xbf\
+\xc3\xb1l\x98\xff\x9e\x8aWu:/\xbd\xce\x12\x0d\x80\
+\x85\xfb%\x00\x0e\xa0\xd9\x89r\xee\x7f\xaf_\xcf\x09\xf3\
+'L\x8d\xdew\x17\xae=\xd9\xc6\xb0\x09 .yy\
+\xd9\x06d\x19\xb3G\xa5\xf9x\xcb\xb2a\x7f\x98\xb3\x9d\
+\x04tN\x03\x16\x7fw\xf6\x8deC\xebJ\xb4X\x1a\
+8\x22\xaa\xf6/\x01\x923>\xae5\x14\xf8S\xcc(\
+~<-f\x87\xc3\xe1y\x87\xe7\x0d\x81\xd6-\x92H\
+\xdc=\x1a\x1d\xa9@\x9fnQ2\xc5\x03\x90+ \xbf\
+b\xfe\xdd\x033\x8e1\x09~k\x8e\xe4\x1ck`1\
+\x80C\x03z\x80I\xd3m2\x1e\xb1\x99\x07\x12\xe2+\
+\xe4\xfc\xc8\x94\x03-(=\x9d\x80\xc8\xde\xaf\xad\xcf\x7f\
+a\x0a\xbc`x\xbe*7\xc4P\xd3\xab\xee\x1c\xe9\x96\
+\x0aZ\x19\x12\xb3\xac\x97\x06,1\xe0\x88\xaa\x9d\x12W\
+8\x07\x00~\x98\x1a\xb4_v\xaa\xea\xad\x8a\x9ds\xc6\
+\xd8\xe4\xc3\xfd\xca\xe6\xd7G\x95-\xe3s\x17\x06\xc7t\
+\xbd\xe9\xa3\xa7\x8f^4n\xaeY\x1a7\xf3j\xfb\xfb\
+e\xbd\xed\x80\xa0\xe3\x0f\x1c\xbf\xff\xf8\x03K\x82\xbc\xce\
+\xd5\xfe\xf99\xdd\xfa\xb9\xa5\xa00[\x02\xf89\x91\x9c\
+>b\xfa\xc8\xe9#\xb6\x16\x96\xe3\x83\xca6?\xde\xd3\
+\x01|\x1f\x95X\x9a\x12\xe2S\xebPB\xaee\xc8T\
+\x14\x09\x81D_AJa\x0c\xf3\xc9\xb9\xc9\xaf;\x8f\
+\xfdw\x89\xac\x84\xc5\xfd\x17\xff\xf2s\xd7\xc89\x02\xe8\
+\xa3\x95!\xb1K\xc2\xd5-\x0f\xfb\xa9\x01D0\x15\xd4\
+\x00\xadI8\xbb\xe2\x1a\x06L\xb72%\x81lm/\
+q\xbe\x02\x18J:&X\x12\xc4\x8eW\xb4\xf2a\x98\
+\xa0\xee+\xc8\x01\x98\x00\x11\x12\x19\x85\x05\xe7\xb4<\x02\
+\xa3)~\xaa[\xa4\xc47\xee\xa7|`\xafz\xae@\
+\xc2o\x02rvc\xbb\x15VZ<R\x0b\x99\xf8\x88\
+_W\x99&\xfe\xe9\xb9J\xdc\x15P0\xfd\xac/\xcf\
+Y\x9c\x84R\x0e\x00\x10\xe7\xf9\xb1\x8e\x00\x104\x9a\xd2\
+R\xd8\x22\x8a*\xff\xbe\x8f\x96\xb0\x14\xceN?zz\
+\xec\xd2\x9adZ\x0a\xa0)-K\x1d78\x9f\x15\x12\
+]\xb7\x04\x17\x00\xf2\xc0\xb2m\x9f\x1c\xff\xacl~\xff\
+\xf7\x96m\xcc\xd8\xd6.\x01\xb8\xb8o\x89\xf3\x97\xf1\xf1\
+\xbf?h\xc3\xd0\x8a\xf9\xce\xf3\x1eV\x85\xb1\xd3\xfd\xc2\
+\xa45F\x16\x00.A\x97\x10k\xa1\x957:\x87\xc4\
+\x19;\xad\x0d\xdaT\xbd\x8e\xa3]A\xe3\xa3\x0b\x9c\xd6\
+'\xf1\xeb$\xd8]\x88\xc54\x08P\xde@,\xbf`\
+=\x8a\x8f\xedk\x7fv~'\xff\xed\xc2\xac\xf5n\x1a\
+H~\xbfE\xff\xc4\xb3\x80\x9f<\x9f\x9e\x86BK\xc7\
+\xfe\x01H\xc9\xdb\x01\x00\xee\x93\xf5\xd7\x00\x00\xc7\xa4G\
+4\x09W\x07\x9a\x12]\xe3M\xcc%\xb6\x11\xf5\x1a9\
+\x80T.Q\x11\xf5\xc0\xeeU\x08\x05\xa6*1*\xa0\
+\xfb1]\xff\xb9c\x02@T \xf7n0\x87\xf3\xcf\
+\x11\xf5J\xe5\xff\xf8\xe0\xb2\xf4\x16?j\xd8\xc0\x0e\xe8\
+\xcb/d\xb0\xf5\x81]v\xa7\xb6\x7f\x85\xbc\xff8_\
+\xb5\xb6\xe9[\x86J\x18\xe4g\x7f\xc3\xdf\xbb\x90\xf7\xb6\
+\x0a\x0a\xea\xa1\x0a\xf6\x9e\xd1\xf0\xff\x004\x1a\xb1qP\
+g,`W\xb6\xab#\xf6\xa9C`Y\xe3\xbd\xee\xbe\
+1\x11$\x22\xd3\xeb\xcb\xe6\xd7O*\x1b\x12\xc2gf\
+N\xf6\x1fG5\xfeuqhzb\xafZ6\x00D\
+(\xb5Q\x91\xee\x048=\xd9\x1c\xc2\xf4\xc5k%h\
+\xfa\xb7\xb2\xf9\xf5^e[ \x04I\xec\x9eWc\xc7\
+\x226\xa2\xa2\xd3@\x00Jo\xe6\x93.\x22\x87W\x1d\
+\x00\x96\xe7\x94\x0d\xbd\xc3\xa8\x86\xc4\xc1\xe2\xa0\xba\xb5Y\
+\x82\x10$\xd7\x5cP\xbd{\xd3\xfd\xca\x06d:\xbdE\
+\xc6\x1bv/5\x0a\xbc\xf1S\xbf\x5c\xb6U\xb4\xbb\x92\
+a\xecH\x0e\xf2N8Td\x1d\xbc\x1c\x1b\x87\x85\x02\
+\x0d\xd16']\xe2h_\x09\xf8\x01\x04;J[W\
+H9\x00\x08\xb2\xb1R\x02G=\x8f(\x8a\x00\x16\xd4\
++\x95N\xbd\x94\x1c]\xfe\xfd\xf4ee[@|\xfa\
+\xa2\xb2\xad\x22{|h\xd9\x10(Q\x09O\xa5\xf8\x92\
++\x96m\x00\xcf\xf1\x01e\x83\x7f\xf0}Q\xb4Q\xa7\
+s\x7f\x8e\x9fY6\xbf~S\xd9 \x8a\xa3\x02\xc2\xe1\
+~c\xd9\x10@\xf0+\xa8\x8e\xfe^ob\x18.=\
+\xfeF\xe5\xc2\x01j\xff900&\x04\x14\x9e\x0b\xf1\
+:@\xa3@\xca\xf3\x07\xfc\xa8|\x14\xb3\xe8\xbf\xb6D\
+\xaf\x03'\x94c~\xd7\xf8,\x95\x18\xad\x0e\xfb\x83\xca\
+\xf7\x140\xf9|\x15\x10\x07\x8d\xdf\xf3|\xf9[T:\
+\xe2\x96\x01\x1c\xec\xbf\x0e\x98\xf7\xd44\xfb(\x89oW\
+LPn\xc3\xcc\xb8\x14\xc0%\x012}\x22\x00\xc6\xe1\
+\xf1e\x83\xf8\xe6\x15\xca\x06\x06P\xa8\xd8\x02\xb1\xc3u\
+\xca6@\xa3\xc7\xd9\x1a\x03\xabRE\x15\xfe\xa5\xeb\xba\
+\x9f\xfeiz\xed\xf4\xda\xad\x82\xdd\x12\x09\xf9\xbe\xc7O\
++\x1b\x806=\xdf\xa6\xe7\xa8h\xa7\x05\xc4\xdc\xf8\xe5\
+\xae\xfdB\xf6\xd3\xf5\xb7\xd6\xba\xb37\x94\xcd\xbfw\xb9\
+\xb2-\x81C\xad\xd4\xd3{|^\xd9\xa6\x8d\xd2Z8\
+(\x9b\xa8\x93\x18E\xf6\xb9\xb9\xcb\xc4\xd9\x00\x10\x97)\
+\xdbZ\xb3\xec\xab\x9e\xcb.@2\xb6)\xf7\x01C\xa2\
+[\xa8$\x00Y\xc7\xd3\x07MW\x9c\xae8\xf4\x82\xbf\
+\xb9l~}b\xd9\xb0\xafi5\xd0\x00@\x85\x8f\xda\
+\xfb\xfc\xbf\xab\xbf\xd4b!\x81\x8e\xe8$\x86\xd5\x9c\x86\
+\xaeq\xc7\xab#\xf2\xa5\x97[\xc0\xfb\x0dk\x0f9?\
+vxK\x80R\xe3=3N\x94\xf8\xa1\xeb\xed\xca\xa8\
+\x02\x89\xc0\xd2\xb9\xad\xc5\xc54\xa5\x9c\xaf\x87\xa7\xad\xe7\
+A'$\x00\xa20'\xe7\xd5\xf1\xfd\x87\xef\x0f\x93\xe2\
+O\xb7\xf3\xae\xe3#\xe2h\x11]\xec\xd6&\x89k5\
+.\x9e\xbf\xa9C7p\x1a\xe0\xb9\xe3\x19\x01\xb7DD\
+\x1cf\x7f\xab@\xa5\xf5\xa2\xa7@<\xadl\xabtw\
+\x0f\xfb\xf9\xd1\x021\xb6\xf3_\xb2\xcf\x8aq6\x9f\xff\
+\xe7>\xfd\xdc\x9d\xce\xddy[\xffs\x98\xfd\x8c%\xd0\
+\xfe\xfa9\xed\xfc\xfa!\xce\x03\xf8`\x88\x84\xd1\xb7\x94\
+\x1f^\x19\xbf]@\xd5}\xcaV`l9w\xbe\xf2\
+\xbc\xfbV\xfcF,\xf6\xf8oeC\xc2\xb8\x1f\x7f*\
+\xa1I\xa5\xde\xc7/S\xacn>\xb4\xb8\x12\x0f\xcd\xf9\
+\xaau\xf5\xf4Ye\xc3\xb9\xcaO\x11\xe3\x0a\x90\xd1j\
+\xfe*\x97D\xc5\xb4\x9a)\x80\xf1kz\xde18n\
+0\xef\x86\x1b,\xfe\xef\xce\x8b\xff\x93(\xaatR\xeb\
+\xa7\xbd\x80\xc9!\x91\x0e\x90\xd1@\x08\x8d\x01S;\xd2\
+\xe2\xd7\x9a\x11Z\x01\x9c\x8f\xde\x07\xb3\x97\xd86\x80V\
+<\xca\x9f\x99O\xaf\xf0\xa0\x07\xdb\xefQW\x07\x1c\x89\
+c\xe5\x0f\xe2\x0by\x80\xf8Y\x02\xed\xfc\xd6\x12\x95\xf8\
+\xa5\xcfA\xc0:\xed\x85Tz\x9b\x99\x07\xb0\xf3\xc0i\
+~\x85j\xde\xda#\x19\xdb\xdc\xe3\xf9L\x09\xd2\xb2D\
+\x13\x01p$\xef\xd0\x83m\xac.\xa6\x11\x0d\x08\x00\xc1\
+n<l\xfb\x0d\xff\xdd}\x17\xf7\xa9\xb0\xcb\x9f\xc4\x1b\
+\xcem\xf1\xda\x0eP\xd0\xe2\xd5\x89*\x00V^\x07\xd8\
+\xb2n\xea\xe9^3\xeb\xee\xfa\x99z\xf2\x96\x01\xb8\xf0\
+}\xbe\xb4l\x98\x9eV\xab\xea9\x03\xb0\x06\x980\xe6\
+/@\xa2\xeb:=\xbdl7\xe6\xfcM\xc3\xbezX\
+\x18\xb2\x0a\x1d\xd6\xaf\xe7\xaf@\x22\xd1\xc5\xdc\x0d0\xd2\
+\x80y\x00\xef>\xaf\x8d_\x94\xe7\x86!\xd7c\x081\
+\x11\x89\xcf*\x88\xdbG\xbe\xc7~\xec\x9f\xf7C\xb9\x07\
+\xb8y\x8e\xf6\x93\xb8\x5cK\x9e\xca<\xa0\x8evJ\xce\
+\x8b\xe2\xf9,L\x1f\xc0\xab\xb8\xd0\xbfs\xff\x9c\xf7D\
+\x003V\xbc\xe3Qy\xa4}h\xfd[/\xb9\xff\xe7\
+ZL!\xa2-=oZE\xd5\x82\x83L\xed)\xe8\
+\x90O\x95\x87,8\x01\x84\x0bo\x8al6LS\x8e\
+P\xab\x89D\xf9\xa2\x9b\x9a\xff\x9a\xf8\xef\xc7d\xec\xc7\
+\xa0\xa0\xb2\xe4\xef\x97\x9e\x90[o\xe3n\x96\xc0\xfd\xee\
+\x03R\x0aI\xf2\xbd^\xbd\x84\x0c\xdb\x83,|\xf6m\
+COND\x1d\x96\x83\xe1vC\x05\xdeu\x16\x5cq\
+\xe5\x01\x81\x11\xd8\x5cn\x99<\xff\xdf\x13\xfd\xc3N\x05\
+v\x1a\x1c\x84?S\xf5\xe70Q\x97 a\xd4\x93+\
+\xa0>\x0dT\xc3\xea-z\xce\x06\x00L\x7fU\xb6\xa8\
+\xd3\xbffz\xcd\x86t\x1ac7\x1fwK`\xdc\x01\
+\x8a\x03>=Dg\x9fpv\x8b\xb3[,\xd4\xc9\xb5\
+\xf7U\xe0.\xf0\x82\x9cK\x98\x8ceym\x1c\x82\x85\
+\x17\xd5P\x01\xca\xf4\x13e\xf3\x7f\xbel\xd9 \xc2\x13\
+\xb5\xe2\x1e\x17F}[\xc54\xd4\x9cNhm\xe0T\
+\xda\x04*\x0dp\xe4{\xa1\xeew\x02b~0$3\
+\x89[S\xfc\x05\xd0\x025\x07\x85\x8a\xa7\xd6\x16\xe3\xc5\
+\x88e\xfa\xef\x12\x00\xcc\x11\x00\x0ajQ\x02\xc1\xeeU\
+\xb4oP=\x1d\x80*\xb2\xae\x83\xa8!J\x9a\xfb\x9e\
+\x80\xc4\x98\xabf\xb4HHU(U\x94\xadSS*\
+\x1c<(\x8c(\xdd\xf6g\x98\x1a\xadB\x8e\x91\xc01\
+f\x9f\x1e\xfe\xa2l\x03b\xba\xf7\xd8\x18\xc7\xff(\x1b\
+\x12R\x09\x89\xb1Bz\xc2\xa9\x16\x07H\x91\xa8\xb5\xd8\
+g\xfcRSH\xc3\xbc@u6mA/}WJ\
+%\xce\x123\xa2y\x0eT\x95s\x81\x1ef\x8du\xaa\
+\xa2\x0f\x88\xd8\x8b\xbb\xecEX\x04\xd8\xa6I`\x06\x08\
+h\x1c\xec\x80\xd4P\xd6\xf4.JTz\xdc\x8b\xcf\x95\
+`K\xccS\xd9&.\xd6\xf3\x91\xf5\x10\xa2\x8c\xeai\
+\x0e`G\xcc\xa8\xa7S\xd8\xbf\x01\x88:\xd0TYA\
+\xc1\x03d\x19\x03\x99\xa9\x1e=\x0f\xda\xd4\x17\x0c&-\
+7z|\xf5\x0c\xaa\x84\x19\xbb\x99\x00\xa6\x03%\x81\x8a\
+^a\x81:-\x19\x15\x85T\xb4z\xfd\xe9\x1dWI\
+\xd6\xeb\xaae(\xfb|\xbaZ\xd9P\x09J\x0f\xeb\xe1\
+MI\xfcJ\xbc\xb4z\xc8\xafT\xb6\xf4\x98\x7fH\xf5\
+\x987\xc0\x90\xe7\xd4@\x8d\x03_\xc2-@\x90\xd0\x99\
+\x13\x7f\xbb\xb5\xd5\xac+\xc2ZJ<w\xe3>U\xde\
+|\xce\x15\xca\xe6\xff\xfe\x9e\xb2-\x10\xe8\xe7\x8c:l\
+\xcc\xa4i\x0e\xfc\x8cqM7+\xdb\x18\x19\x00\xbb\xe9\
+X6?\xb6'\x96m\x896-\x80\xe9)eC\xe0\
+q\xdd\xb2-\xb1:\xfe}\xd90\x867\xbd\x96\xd3\xdb\
+\xcb\xe6\xd7o,\x1b\xd4\xe8U\x0e\x89I\xa6Be\x8a\
+J\x03\xf6Dg\xa3z\xed\xfb7\x83\x85\x98e\xc4\x7f\
+;@\x0c\x83\xa8\x03)\x8c\x08b\x93\xa9\x5c73@\
+o\xf2\xc3\x028\xa4ec??\xdbsk\xc0L\xc1\
+BB@\xf5\xdesM\xbc\xd4\xbd\xff\x19s;\xc7\x18\
+K\x9c\xb10\xd4\x1e4h\xc7D,\xb5\xfd\x99D\x04\
+S\x8a\x9f)-\x9e\xdb,@\xf6c\x17J\xf2\xef\xa6\
+\x95\xe0\xb7k\xc0\xe0\xe2\x07\xfe`\xa9\xa4\xa9\x14\x0b\xa4\
+\xf7j\xf4\xefN@j\xec\x9e^\xe0O^\xcf\x8f9\
+\x9a\xba\xed\xe9\xb6\x83\x08Y\xe2'\x00\x0a\xed\x84\xb3{\
+\x97\xcd\xaf\x8f(\xdb\xfc\xc6\xe9A\xa7\x07/\xe341\
+\x94$|\x9e\x9b\x00\xb9N\xeb\x07lqZ\x17\x00\x00\
+6O8,\x9a\x02\xe7\xdd\xeb\xbc{N7Z\x80\x81\
+\xaf\x5c\x80\x81h\xf14e\xdb\xb9\xa4\xa2NTR\xa2\
+\xc6\xef\xd3N\xb2\xefQ\x9d\x89\x15^\xe3x\xcd\xe35\
+71\xb1\x8e+v\x9a>\xcd40f4\xcc!\xf1\
+g\xef?\x89\x85\x84\xd2\xfa\x16\xb0\xbfs\xf6\x16\xef\x5c\
+\xfc\xfa2\xa5\xa9\x99\x8c\x80\x05\x1aC\xf6\x0d\x0d\x02\xcc\
+\x84$&\xc4\x14\x9b\xc2M[\x05\xd3K\xdc\x1c\x7f\xd8\
+\x15Z~\x12p\xed\x1c\xf3}%@\xe2>\xf1\x82x\
+PA\x0c\x80\x90\x04\xbd\xd5\xe8\x01\xae\xc6\xe1Y\x074\
+-h\x14\x04\xd0\xeb\xf5.\x11\xc4\x5cPi\xa6\x1d`\
+J\xc5N\x14\xb1\x81\x1a\x05L\xad-Z2\xc59\xc6\
+9F\xc3\xe1tV6$V\xf2\x18Sq\x14B\x01\
+M\xceE\xfe_\x5c\xa6\xf2+A7\xde5\xe3\xf6\xfa\
+|\xf0\xefi\x05\xd1\x90q\x1f1\xbf<\x87\x9c\xa7\xfc\
+r\x03*\xe2]qb\xe27\x9a=\xcd\x04\x12\x07\xa2\
+\x8e\xd3`\xfb\xd3\x00\xb84\xc2\xd2\x22!\x0ehq\xcd\
+\xc4S\xa7\x9f-\x1b\x000qP\x98\x17\x0d\x84\xc8'\
+\xedG\x09p\xee\x7f\xf7\xea\xbb\xae0\xa0\xfa\xf9\xab\xf0\
+\x03\x08\xd2\xd2\xd0\x80:\xbfD#\x093+\xad\xc1]\
+pu}\xe2\xa3\xcf)\xdbD[\x1b \xb5\x0f\xe4\x9b\
+\x00\x11\xcf\xcb\xfb\xec\xc6\xea\xb5\xff\xc7 \xc3\xb8\x01\xf8\
+\xf8\x01d\x8cc\xdf\xaf0h\x17`z\xb9\xff\xf6\x8d\
+\xeb\xc1\x18\x91\x1f*\xe8\x01\xec\xd2\xd2\xdf\xf1'\x86\xbc\
+\x16\xff\xac\xa3s\x8d\xb8\xa1\x5c\xd8\xf0\x16\x86qq\x12\
+q\x8e\xc3\x81V\x15\x89\x9bE\xec\xe8\xa1\x83#\x8a\xf8\
+\x0b\x84\x11R\xdb\xd4\x9aPS\xba\xe2\xa2\xb5\x00\x02\x93\
+\x1b\xd2=\xf1\x1f\x96D\x95\x83q\x1d^]7\xea\xfa\
+\xb5O\x1fz\xfa\xd0\x88\x03\xdd.\x0b\xe4\xfc\xf4\xfe\xfe\
+\xda\xf0 i]\x07i\xee\xc4_\x02\xc6\xe1U\xb8r\
+\xad$\xc6\xaf\xcc\xf7\xbe\xc5\x00\x18\x08\xc8\xcb\xbd~\xe1\
+\xee\xba\xde\x9f\x05x\xf1\xd0\xd3\xef\xb5\x96\xcd\xe5\x86\xdf\
+/w\xf2\x9e\xa1R\xe9`\xa9\xb4\xe4\xb7\xb7\xe7\xd4=\
+\xaeo(\x9b\xff\xfc\x8c\xb2\xa1R\xabR~\xd9P\x0f\
+_\xb0\xce\x17\xeeqH\x01\x5c\x88\xf3tbga\x87\
+\xe2\xd8j\xf8W=]\xed4\x8e\x15$.\xc6a\x06\
+i\x9b\x97\xd7\xa22y|\xfc\xf1\xc7\x8f?\xbeT,\
+\x16J`#\xd19\xf0\xcf.,\x9b?\xff\xef\xd6i\
+\x01]y\x90X\xa2X:\xa0\xc3\x00 \x02\xd7=\x8e\
+\x7f8\x7f\xb3?\xdc\xc6\xcc\xf5\xc6\x02\x04\x84\x0a\xda\xe2\
+v(oT\xa0\xa9\xf0o=\xa5\xabh\x0e\xc7\x01a\
+V\x81C\x8d\xff\xfe\xb5r\xd3\xda\x02\x90o\xd30\x88\
+\xf6\xf9|L\x00\x15o\xa2SZC\x1c\x1c\x02\xc9\xac\
+s\xe3\xc3\x1a\xd9\xa6\xda\xafb\xaa\xa2\xe0\xf736q\
+~\x86\xeb>S\xb1\x05\xc0I\xc88,\x81:\xf1\x22\
+H\xae\x8a\xb6\x8a&\xc6\x8cq\xa1\xc4\x00\xad{\x80\x02\
+\x84\x91\x18\xdf\xf3B\xd5\xd5\xf3\xe5{8\x00B]n\
+\xff\x90\xca\x93\x04\xbd[w\x88\x88\xa6\xc2\x8b\x9a\xdc\x09\
+\xb4\x8a\x84\xb1/\x80\x84T\xb6\x8e\xb7*\x1b*\xe3\x00\
+\x0f\xeb\x85\x83\xd73\xe7}\x048\xc6\xd2\xe9\x81\xe4/\
+\x01\x06\x02;\xe3i\x04\x8a\x12Y\xfe\xd3\xe7\x10'\xd2\
+c\xab\xc2\x8a9\x80\xba\x18@\x93x`\xcf\xdb\x16\xb8\
+\xabl\x0a\xec\xac/\xd4z-&(\xd0\x80\xb8P\x06\
+[\xe5\xd9\xb8,\xc0\xae\x83D\x85O\xcb\x83J\xad@\
+Z\x80\xe5~\xa4\xc7\xf4pQ\xd9\xc6\x98\xe9\xdeF~\
+U\x05^\xe2*1\x0ec\xa1\x995*.\xd6\x0b\xc0\
+\x00\xc0\xa6gT\xc2+\xd0\xc8y\xd2\xbd\xff\xf6A\x12\
+\xd7\x9e\x16B;D\xe5\xd6uc\xf2\xbc\xe1\xf0/\xe5\
+\x1f0\x95ZlO+O\x12\x89K\x1eQ6P\xd5\
+\x93\x004\x95\x13C\x02\x10\xf2\xe29\x0d{qDO\
+\xaf>\x009\xfb\x8a\x8dy\xc6I`;\xe0\xd7k\xab\
+\xf5\x82\xff\x91\xe0\xa9\xc8\xa1\xa6kMQ\xc9\xe3\xefi\
+\x92\x00\x0a\x01d\xf1o\x0dt\x00<\x03`\x9d=\xab\
+lI\x8c\x16\xf1\xbdK^Y\xb6\x05T\xc7\x8f*\x1b\
+\xd4\xc3\xb3N\x89\xaa5\x00\x1d\xc0g\x0e\xbf\xd6q\xac\
+\xbf\x1a \xe67\xca\x86^z\xadb\x8f\x9e\x1e3=\
+f\x08\xe0Q*1?\x9e\xbf\x8ey\x5cf\xfc<b\
+\x03\x84\x1a\xd8J\xc1\xe2\xf4mk\xcbW\x8f\xbd\x0aP\
+\xd1\x1a>\x9f\xb3\x02\xc0\xf3\xdf.j\xd9\xdd\xd3\x8bQ\
+\xa3\x12\xa9\xe5\xc5\x180\xfe\xf9\x8f\x02@\x19\xb3\x99@\
+\xac\x81\x84\x9b\xae\x9f+P_\xd6\xdd\xfb\xb6\xfd\xd5~\
+E\x02!>p>K\x181<\x04\x90yn=\xd6\
+\xee\xab\xe6\xb4\xec\xab\x06j)\xad\x95[&\xe1\xc0\xc4\
+\x22\x1e\x1b\xe6\xa7\xe7\xdc\xf3\xdfw\x8c\xc5f\x8e\x84y\
+5\xbdnz\xfd\xf4\xbae:\xces\xa7U,\xef\xcd\
+Ka\x85_\xe0\x07\xf5\xac\xd70\xde\xff\x0cPx\xb3\
+\xe1\xdcO \xdbc\x13\xd3R\xd6\xfb\x1b\xc3\xf4?\xcb\
+\x86q\xbbW\x09\xd0\x9e\xa9\x18-\xd6)>\xcb>\x9d\
+\xbe\xbel\x13\x89\xebi\x0a\xd4\xcc%\x10\xe2L\xe2c\
+\xf6Y\xc6\x88vE3\x89G\xb7\x94i\x950F\x90\
+_\xde\x9d\x8f\xfcrOK >\x89\x0a\xcc\x0f{\xee\
+\x18\x86a\x0a-\xfe\xe8\x1b\x87\xf7q.\xf0\x0b\x98\x91\
+\xc4\x18U\x94\x01A\x00]c[\x01n\xd67\xed\x01\
+S}$D\x12P\xbd\xf6\xd6\xb7\x82\x97\xb8\x958%\
+\xa0J\x1c->\x908)\x10)\xe0\x89\x83\xac\x1b\xc0\
+\x02\x86M\xb4%z|\xa3\x04Q\xdc\xc4\x8f\x02\x94\x14\
+P0\xd1\xe4'\x18o*\xd6\x00\x10\xcf\x8b\xb6\x0a\xa6\
+)\x7f)o\x89\xaa\x7f\x03\x0f\x0a\x03\x80J\x22\x92;\
+\xe0\xb0\xfd\xb0D\xdc\xf3r\xae)\x8c\xa0\x9cc\x0ec\
+<e\x1d\xf5\xd4,@G\x00\xaf\x16G\xa4\x19\xe4\xfe\
+*8`\x18\x8e\xe2\xe2\x17\x0f\x80\xceG\x07\xd0\x14\xd7\
+9\x8fr\x1e\xf6\xf8W\xe3V\x03\xf4\x9f\xeeP6\x14\
+\x8c%\xf2\xfc\x93\x84uk\xd9Z\xe3\x1f\x85G\x85>\
+\xf1\xa8\xf5\x8c1\xa5\x85-\xfb\xaa[\xf8<\x17\xf1\x85\
+\xfcD\x5c\xb2\xd7\x9a3\xdd\xc6\xf4\xb1\x14\xa80\x81Z\
+\x93\xc5:\x07\xf0\x00t\xc4\xcf\xfe\xde\xfd\xb5\xbf\x9d3\
+\x98Aa\xec]\x8a\xe1\xed\xbe+|\xf2'\x189\xf2\
+Y\xfe\xcb>\xda\x17\xbc\xe5\xe1\x80c\xdfW<\xb9\x1f\
+\x07\xedz\x03\x88\x9d\xeb\x00\x92\x18]]\xe6\xd9p\x81\
+\xc6\xc59\x00\xf6\x94{\xbf\xe7BC\xe9i$V\xe5\
+\xc9\xbf\x93\xf8$\xd0j\x87\xeb\x829\x06\x9f\x97\x0b?\
+]\xb0\x22\x17=\x1d\xc0\x0d\xca\x17:\xbd\xb6l\xb9.\
+=Uk\xa0-q)\xbc\xf0\x8e\xc3km\xe3_\xcf\
+\x82\xbd\xecv}\xcb\x9c\xf8\x0b\x930\xdd&\x08\xcb\xeb\
+\x87\x8a\xbf\xb1\x85\xc6\xf7U\x05\xeczC\xab@m\xa3\
+\xbf\x1b\x16\x88\xc0\xbf\xd2\xc8\x8f\x06\xc3\x0c\x9f\xeb\x81\xd9\
+\xf8I8:Q\xaa:\xef\x93\xe2\xb8^=\x1cT\x18\
+\x17\xc6\x83\x18\x07%\x01\xbd\x5c\x0e0\x08 \x15\xf0T\
+\xce\x1d$\x0e\xfa\xa6\xe0atH\xac\xcc\x93\xfe\xf0T\
+z\x22\x06\xd5\xaa\xf0qL\x87\x7f+\x1b\xa6\x06\xa4\x97\
+\xb7{\xe0\xbf*\xd4L\x14\x9c\x04\x16\xed\xd8$~\x00\
+\x0a\x95R\x95?\x22 \x12\x1f\x1b\xf1f\xf3\xaa\xb9\xd9\
+0~,\x14\xcd\x0e\xb8U\x22\x9f\xb8N!\xe8\xf1\x5c\
+\x0e$\x09/\xd1\xaeP\x8b\x0f\xaf,\x1b\xd4\xbb!\xc0\
+\x19\x03\xd8L\x04b\x22*\xa9\x90~\x95&\x8e\xd4\xc1\
+\xf1\x0be\x03%\x0fc\x00\xf0e\x1d]iu\x94\xad\
+\xaa\xcbq\x020\x8c\xdb\xd2\xbb\xe5\xc0OO\xedy\x7f\
+\x9b\x03\xfbE\x09\xf0$\xbc>G \x99\x83\xbe\x9f?\
+@P\x05\xc0t\x06\xe2(\x12[\xbd\x80\x027\xa2&\
+\xfc\x02\xed\x84P\xaf\x89%\xf6:\xe1\xe8\xd3['\x90\
+<\xbbg\xd9\xb0.1\x09h\x92D\xfc\xac{\x04\xfd\
+9\x89\x929\xaaM\xa1\x92@\xa7\xa5D\xa0~\xfa\x81\
+\xb2\xa1\x92\x05\xb1E\xb5M\x8fVS\x88}O\x8e\x97\
+\xbfJ\xc2\xdb\xe2{y\x1e\xcd\x18\x22\xe2\xe8\xbe\xfaA\
+\xed\xa4j\xae%\xc0\xfe6g\x97\xc3\xe6\xa7\x89\xf6a\
+\x0a\xa8\xa4:h$\xf4\xa8\xc3\xc6\x95\xd1\xd2xG\xd9\
+0\xbeM`\xee\x80S9\xfb\x97\x85\xd4\xbb\xf5\xee\xeb\
+\x09\x06\x0ca\xb6\x08\xa8$\x9e\xa9@\xdbg*\xf0\x0d\
+\xd0\x11?\x04\x0c\xa7\xc7\xb5\xa9\xee\x0e^\x1a\x0f\xa9D\
+\xf6\xe7`\xda\x84\xb2)\xe1\x99\x9eU6\x88\x06\x9a\x03\
+\x9e\x80P%\xad\xc7\x01J\xd0UN\xf4\xa4g\x1a\xc5\
+\xf4\x89e\xc3\xe7\xbdhm\x91:=\xa8lP\xaf\x8f\
+Zq\xbfji\xd2\xaa\x13\x86\xd1\x1c\x8c\xae\xd3G\x8c\
+3\xdak\xdf\xf8\x91x\x08\xc8\xf8o\x81J\xa8\xfb\x9d\
+X\xab\xa0\x12\x9fTi\x92\x98~\xc7|\x1a|\xc7\x92\
+\xf8\x7f\xdd\x92\xf8\x0b\x8c\x05JZ6$\x04\xc6\x16\x02\
+\x14\xa9U\xab\xdc\xb8\x1fa~Lo\x9d\xde2\xbde\
+\x13I\xbb\xe4\xc1e[\x22y\xfc\x94\xb2-\x81\xa0\xa5\
+\x82\xe29]\xb7lk\xfdjf\x9b\x9e\xfb\xdc\xf7\x06\
+h_\x92\x0a\xeb\xffLn\x96\x00\x00 \x00IDA\
+TS\xd6\xf58=d\xfa\xe6\xe9\x9b\x07\xc6\xd0\xf7f\
+\x8c\x5c\x9d\x16\xdf6\x009\x18/D\xd4J\x1a\xb0\xc6\
+d\x15\xd1\xa2\x02\xed\xef,[\xb4m\xd6\x96\x00\x89\x92\
+\xfb|\x9d\x95\x114\xdd\xa3l\xfe\xfd\x87\x95-\xf1\xcc\
+\x9a(<|\xd5\x84\xc1`;\x9d\xads\xae\x8d\x8bm\
+\x86\x0b\xea\xf2\xb5\x12\x88\x9b\x12a*\x09j\xa9\xcf\x17\
+\x0f\xa9\xf0\xec\xa7I(\xa0x\xae\xd1\xfa\xe8\xb1\x85\xd5\
+\xe3\xfa\x8c\x81q\xf3\xc2yU\xbep`\xdax\xff\x0a\
+\xaf\xff4@\x5c\xb5N^T\xb6\xf4\xd6\xaf\xa2\xad\xbf\
+\xb7\x02\xf8\x00\x96R\x00*\x0d \x22\xd2\xd3\x03\xa7\x07\
+L\x0f\x5c\xb4g\xde\x5c\xf7\xaf[\xacPP\xb5\x96\x19\
+\xdbYZ\xdc\xd7[5\x13\x96i\x18\xd6\xaf\xeb\xd1r\
+\xe0\xbeH\x90Pl\xf9w\x89Z4yN?\x95\x84\
+\x1e\x90\x08`y\xc2\xc2\x1d\xe8\x8as38\x00\xc54\
+\x17\x88\xe2\xbd\xbblK<\xa6W\x96\x0d\xe7Y(\xc7\
+Mmw^J\x94%\x1c\x12\xd5\x88\xd2v\x9c'A\
+\xc1D\x958bp9\x9fi\x01`\xc8(\x18\x01\x8a\
+\x03\x9060\x1d\x7f\xd6\xbd\xc1\x00$\x89\xa6\x96(b\
+bZv\xb4\xbe\x11\xf9&V\x0a@\xce\xf3\xebDY\
+|\xe8\x5c\x02\xec\xfa~\x12\xcd\xdd\x98\xc5\xce\x13\xc4\xef\
+\xae\xcf\xba\xf7\xbc\xf3\xdf\xbb\x80\x00`\xd0#\x1e\x7f\xd3\
+Th\xf1\xa2x\x88\xf8\xa7s\xc6\xfd\x00\x04\xa8\xf4\x8a\
+\xbf\xc5\x93z\xac}\xae\xf8\xd1\xf5\x06xnf\x87\xf3\
+\x1d\xf0N\x13(\xa2\x84\xce\xdd\xf6\xb7\x80\x02\xc0\x84s\
+M\xa1A\xde\xe3\xfb\x1b\xe3\x08\x18R1\x96h\xfb\x1c\
+\x00\x03M\x16\x8cJ\x8cA-\xa8\xfb\x9ep\xe2\x89\x0a\
+_9\xd7\x9bR/au\x8ebN\x9a\x86@\x1c\xf6\
+\xfb\xca\x86\x16\x1c-\xca\xee\x87s\xcd\xab\xbc\xcf\xabs\
+\xdfy\xac`\xb1cp4\xc3\xcd\xf3\xf2\xefMa\x88\
+\x88^3\xbe\xe4\x0b\x00\xadg\x97mq\xa3\xe9@\xa7\
+\xf7\x97\x0d\xa2\xae\xcf-\x1b\xee\x93\x04\xdc\xf7\x91\xf7\xee\
+\x0a\xe2}]\x9e\x8f\xfco/\xe2\xee9[\xd7\x0ay\
+\xf6\x8f\x82\x991\x93\x98\x90\xce\x05\x9f\x0f\xf0\x12O\x8a\
+'\x00\xbb\xe2}LB\xeb=\xefs\xae/\x10B\xe0\
+\x81\xfb\x87\xfe\x81\x9e\xf8\x9dJ\xff\x82D\xbd|\xd8\x08\
+\x12*\xd4\x04_\x18\x92\x94\xb9\xda\x9d\xf8\x98\x9f\xb8\xa7\
+\xf6;8\xdcx\xc8\xd7\x9b\xd2\xf3K\x8d\xf7me\x0b\
+\x12\xb4\xaa?\x968\xcc\xc5\xc3\x03-i\x98\xdf\x8c\x98\
+\xd4\xdd\x07\x07\xa4\x22_\x8f\xef\x0a\x03\xf5^e\x1e \
+\xe2\x81p\xe8\xef\x5c\x06\xd9]zz\xc1^\xb4O\xc2\
+f\xa3\x7f\xd0\xa2\xaf\xbf%\x10^9H\x1b\xbb\xdc\xfe\
+;\x87\x07\xee\xc1\xd56\xf8\xa4 L\x1f\x91J\xc1\x97\
+-\xd4\xfc\xd9\x86\xb9\xe0*AZ\x17~\xbal\xfe\xfb\
+\x0fZE\xfe:p\x17\x10\xe8\x917v\x89\xda\xae\x03\
+\xe6\xd3\xf2{?\xbf\x06\x16\xa7\xf7\x9e.:]4T\
+\xb2B\xdd*m\xe1R\x17\xf6\xfe\xd3\xa3\xca\xe6\xe5t\
+\xd3s797\x1f\x8cg?Q\xb6Q\xa8\xf6\xa2\x92\
+\xddS\xaf\x07/\xe3\xbd\x9a\x12k\xdc\x17j\x93J\x89\
+\xde\xcdT\xca\xdb\x81D\x8c\xa9\xc7\xcc\x01\x04\xf4\x1cB\
+\xbc#\x0a\xd2\x88\xe4n,K\xf7\xa4\x9a\x87\x8c9\x90\
+J\xbb\xfb\xda\x14o\x81\xac\x0d\xea \x14\x90\xfd\xc5\x0a\
+ to\xb9\xd6\x85\x91\x1a\xf4\xfea\xec\xdam\xd6^\
+\xc4\xee\xed\x848\xebu\xd2\xbb&\x91\xc4\x94\xb0.\x89\
+\xbep\xbc\x00\x09\x01\xbd\x1e<\x09\x89\x7fg\xdf90\
+\x00\x1a\xa8\xd6\x99?\xdf\x07\xcc~j\x87\x1f@\x80\xf9\
+\xf5(\xcb\xa1\x8e\xf5\x5c\xeb \xba\xdd\xb3e\xacP(\
+\xff]\x99\xcbs\xb9\xe4UeC/g\xa8\x83\xa7+\
+\x97m\xd3*:\xe1\xdc!\xc5\x1c|\xf7\xd0s\xc0\xa9\
+\x9c\x9f\xbe\xb0l\x00\x129~\xeb\x11\xa3\x82\x86\x03Q\
+&\x8c\x82}\xc5a\x87\xec[g\xf3\xf3\xbd\xcd\x024\
+\x0a\xecU\xe8\xb3\x9fZ\xd5\xdd\xbfs\xc0\xfa~\xbb\xb1\
+E*\xda=F\x90_\xf6\xfb\x00CL\xac\xf2J\xf5\
+|n\xb0\xb6\x82\x9c\x8e\xb9\xa1\xde\x97\x9f\x10P\x09$\
+\xa8}K$T\x8e\x04B\x98J\xees*7=\xfe\
+.\xeb\x9f\x9f\x96P5\x150~ZKK'\x5c\x10\
+r\xa2\x86\xce\x13=\xd7\xa1\xbe6\x10Wi\xfa7/\
+\x94\xeag.\x00\xe3\x13\xe6\xfb\xf3\x84\x01(\x8a\x9fn\
+\xbf\xe2@v\xdf%\xd8\xd9\xff\x9d\xb0\xaa\xa4\xba/Y\
+\xc7\xc7\xc7\x95\x0d\x80Q\x12\x8a\xc3#\x02\x84\x00\xbe3\
+\x16\xa9\x13R\x07;\xf1\x22\xf3\x80%F\x12\x04\x01!\
+\xea\xe2\xe7\x1c>{\xa9\xc0\xddz!\x83o\x010\x86\
+\x04\xed\x10\x8c<\x8c\x0a\xebYK\x17\x80/\x95L\xea\
+\xf7\xf6\x0f\xf5\xe4\xa5\x8et\xdbaZH\xfc\xe1\xf4\xea\
+\xb2\x8d:k*\x8a\x04\xc3X\xd5\xe9Ae\xdb:6\
+6\xf4\xf0\xd2\xb2\x81\xc2\xac5\xcb\xba\xe1\xd7\xe2W\xa7\
+\x9b\x94\xcd\xff\xfeG\x8e\x8f<>r\x19\xe7\xb8\xfa\x97\
+\xac\xf3\xe9\xf2eC\x05*@fk\xc3D[\x05\xb3\
+\xee\xf0sk\xef\x7f\x9f\xc7(\xf8\x11]k\xb1\xc2\x1f\
+_\xa9\xb9\xd3\x8d\xa6\x1bN\xf3\xfd9\xbe\xa4lX\x97\
+(\xefY\xc7\xc7\x1f.\x9b\x7f\xff5k\x0b^3i\
+\x88\xc5\x9a\xde\xb0kq\xe9\x84C\xa2b\xfa\x8e\xc4D\
+\x80\x89\xb1\x01\xb0\xbcm\xa8\xfa\xe2*\x0c\xb6k-\x90\
+\xc3Z\x11\xba\xca\xd0\x9b\x1e\xe0z\xb9\x0f\xcfY\xbe\xff\
+\xa2]d\x1f\xd1\xc2PPX\xf6\xfb\x9d\xd3\x8b~\xc3\
+\xa5\x10q\xd7\xa5\x10!\x81q\xde8\xdf\xc5\x83\xce\x09\
+\xf1`\xe2\x9b\x16\xb9B\xedF\xc9&\xe6\xe9\xbe\xa0\x8a\
+\x9b\x1f\x1e\x8d\x86E\xb9\xe92\xc3\xf7\xf4\xfe\x98U\x00\
+\xda\x00\xbf\xddRE\x0c3b\xabz\x91\xbb\x07\xf7\xf9\
+i\x05y_\x18A\xdf\x93\xb1\x8c8\xa3\x17\xa4u\xf4\
+\xc7\xc3\x00\xd4\xaaF\xb4V\xc2.\x91\x8b\x98[3 \
+B\xc5m\xe6@4\x1d\x9a\x1a.\x1eT9\x05\xb0W\
+\xc7\xf65\xb2_o0$\x94\x12\x01~\xc2\xe7a\xc4\
+z_q]\xe2\xf3\x06\xc6Tl\xb5\xd2\xa9\xe0\x8b\x87\
+\x9c\xe3(\xca*\xcd\x18u\x12%\xd7!\x0e\xa6Ro\
+J\x0d\xaa\xb6u\xa2`\xa8%\xd8\xba\xe5\xdf\x9d\x83Z\
+\xa8r\x9e\x9e\xbe\xbcl\x88\xb3U\xeeQ\xe5]7f\
+\x99\xb8\x06\xd0\xbdg\xd0\xf1\x83\x80\x0d@v\x18PM\
+\xe5v.\x02\xce1R\xf8\xd9\x5cOk@8g\x01\
+x\xce\x17\xe7\xb9\xeb\xf1\x5c\xdc7\x85\x0a\x95a@-\
+\xf1^\xcc\x18\xdf\x1b\xe3\x8fh`\x0a\x19\xcd\xd4\x10\x07\
+\xec\xa8\xe3\xa7?*\x1b\xe2\x1c\xf9\x1d\x00J\xe2\xcd\x1f\
+I0\x89\x22\x03\x88\x15z\x01h\xc6g\xd2\xbe\x10_\
+\x12eNa\xb1\xff\x1c\x00\xa0\x0b3\xd6\x07\x80H\xfe\
+\xe7{)D8\xe7]/@O\xbc\xab\xc5\x9bf\x95\
+\xfc\xd6\xf5\x00\x10\x88\x7f\xd2\xe2\x90\x17\x99r#\x9e\xf7\
+\xdc\xbc\xbf\xfbe\x1d\x02\x04z\xfex\xd6\x99\xfb\xf7\xff\
+\xd2|s\xff\xadG\xf1\x94<\xd3\xb9\xb0\x17\xa7\xde1\
+\xe6\xfb\x15\xa0\x0f\x08\xc0\xf4\xc3\xeczx\x19\x11\xc0\xb7\
+\xe4\x83\xde=\x1c,.\x0c\xb5AerG=\xe8\x05\
+\x0b\x11\xa2\x82\x0fI$.H<L\xc0#\xf1\xd0\x8b\
+\xc5\xc1\x01\x02\xfc\xbd\x04\x98\x83\xf7\xa0\xf4\xe6|\x7f\x10\
+\xaf\xdb\xaf\x14\x94\xe3W\x96\xcd\xafW)\x1b\x90\xdcZ\
+\xae\x0fN@{\xc7\x01\xd8\xa8\xc73<\x88%\xa1\xbb\
+\xc2\x80<y\xb0n4&\x80\xc4\xbe\x8e\xb5k\x0e\x0b\
+\x15\x05\xe4\x1a\x8b\xae\xebz\xe0~\xf0\x008\x8cc\x1d\
+\xde\xb3%\xd0\x8d\x90V\x18\xff\xbaa\xe3q\xf4\x1e$\
+\xd1\x8eJ3.NE\xe9\xd3\x07\x84\x17\x85J\x8f\xbb\
+@\xf5\xf3WGq\xba\xcf\xe9\xde\xa7{/=n\x8b\
+\xaas#\xb7\xa9\xe8\xce\xe9\xee:\xd6\xef/3\xbe\xea\
+\xc3\xf2\xbdn\xb9&H]\xe1J\xcf`\x8fe\xba\xf1\
+*N3\x87\xfbK%y\xfa\xd8\xb2\xf9\xf5%e\xf3\
+\xebo\x97\x0d\x08y>w\xfa\xac\xb2!q\x86\x00\x03\
+\x8cv\x15\xa0\xc3\x15\xca\x06\x0a\xaf\x7fG\x04\x0a\x10\xe0\
+{Y\xcf\x09Dz\x1e\xb3\xf1\x5c*\x05qd\xadV\
+-pA\xe5IeP\xc0@\xbd\x1e\xe5\xb8)\xd5\x90\
+s\x81\xddM\xff;\x15\xe7\xf0\x9aUD\xd1\xf3jQ\
+B\xd4G\x07\x1e\x07%1\xbc~64\x87\xaa\xd7-\
+\xd7\xd5\x00\x1e\x8a\x93\x8a\x80\xfd\xc4\x81Y\x1f\xbe\x9f\xe7\
+!qwA\xd6\xe5\xbe\xe7\xc9\xba\x84\xd0Zwzh\
+1X\xec\xbb\xfd\x5ci\xe2R\x17\xad@\xd2\xe9ze\
+\xf3\xebG\x95\xcd\xaf\x9f]\xb6\x05.\xcd\x80H\xc2h\
+N\xb91~Zd\x1a\x81v\x9f\xa3*\xdes\xd5\x89\
+\x02e:B\xb7PP\xf3\x0d\x83\x86x`\x07p\x80\
+&\xc8\xb0\x04\x16\x00\x83\x0a/\xa1\xd3\x83GUYe\
+h\xdf\xb2\xe4 \x15\xa8\xd0l\xf0\xdc\xe2'\x9baB\
+e\x98\xff@\xa1\xd7\x22\xa4\xc5F\xa0\x96\x16\x9f\xeeU\
+\xe4\xaf\xf9s\xd41\x94\xf8\xdb\x1b'\x97\x83\x89\xdf\x05\
+\xc8\xde?\xd35 \xec\x025\x81\x99\xdf\xb7\x8eS\x91\
+;\x5cP\xb6\xcd\xd9E\xb9n\xe6Ez\xb0\x8d\x8d\xec\
+\x03*\xa2f\x9d\x00\xa10J\x94\x89K\xa1\xe6g\x0e\
+|\x03\x9d\xa1\x847\xa3\xe9\xce\xeb\x14\x8b9m\xf8\x8e\
+E\xdc-\x15\xf2n\x01\x00\x08\xd0\xd2P\xb9\x11\x18\xeb\
+\xe9\xcf\xba\x9c>\xbf\xec\xd2-;\xd6\xc9\xf1Qe\xc3\
+\xc1\x0d82\x0d\xa4\x12\xa8\x1b\x0f@7\xff\x04X\x13\
+\xc8\x02|\xa2\x95\xd1\xe3\xff\x9c\xb7z0\xb5j\xa8\x04\
+\xa8\x88\x98oL\x5c\x0d\x00\xc0\x1fX\x7f\x02IS%\
+\x9e^6\xb4\x82\xd4>\xfa\x86\x058\xfd\xe6\xd2f)\
+\xc2~Q\xf6{\x7f\x00,\xafU6\xdf\x9f\x7f.\xdb\
+ZK\xe6\xab|b]\xe7\x02 \xbfw\xa8\xe4\x008\
+\x5c\x97@\x19\x90f\xffP\x9d\x0f\xd3\xef\xf4\x9a\xb2e\
+\xbf\xd1R\xb9\xef\xe1\xbe\x9bX\xd5\xf1}\xc7\xf7\x1f\xdf\
+\xb7LuyzMu\xb1\x0e\x1b\x00\x15O\xfc\xd82\
+8\xab\xc7J\x9e^:\xc7\x15/]\x988\x0b\xe5|\
+\xfa\x9e\xb2\xad\x17\x7fzg\xd9\x22Z\xba\x02\xc7\x18\x1a\
+\xc4\xf2\xec\xef$0\xa7\xaf\xc8y\x9b)&\x87G\x96\
+\x0d\x89\xec\x0bO/\xa8\x00\xfc\xf0\xb8\xf8\x15\xebL\xcb\
+E\xa8\xe1Ktr\x96\x7f\xf7\xa6\xc1\x7f\xd0 @\xf1\
+\x96\x80\xd9/\xb4A\x8c-\xc3\x04\xcb\xfd>}d\xd9\
+\xa0\xfd\x04\x10\xb9\xe4pq\x01\xee\xa7[\xaf\xf3\xb5\xe7\
+5\xb7\x14\x1c\xa6\xcf\x9d>{\xfa\xdc\xa1g\xd6:\x05\
+\x14\x03\xca\xb5\xc8\xa5\xe7\xbf)\xf1\xce\x19\xbd\xcd\xfc\x96\
+\xd6\x19@\xbd\x84\x1f\x80\xeb\x1c\xab\xf4\xab\xa8\xff\xf7]\
+\x9f\xf7\xe1\x11\x87\x1fYZ3n\x1e?A\xdbAK\
+\xa1\xf5MT\x94\x0a\xbc\xdeZ\x05\x14\xeb\x0d\xe3-\x15\
+\xb8f\x0c)89g\x14\x1e0!T\xa4\xc5-\x19\
+7\xdc~X\xe5\x11\x93\x90\x98#\x86\xc0\x7f.M\x11\
+\x1b\xf3\x0b\xe59\xcc\x94.PX\x17u\xfd\xf7\x08U\
+\xfaO\x86\xef)\x81\xc5p\xc4\xb8\xa5\x0dD\xe3\xe9U\
+eC\x02#1\xb4~\xc5\x01\xbb\xb9\xe7\xcd\x18\x00(\
+\xd2\xc81w\xde9\xa0@\x04\x18\xb7\xbfs\x7f\xbb\xb2\
+\x098\xe2\x8f\x14nP\xdbQ\x98\x89\xc6\x89\xfb\x9d\xb7\
+\x18s\xbbi\x04\xddr\x94\xde\xf5\xd6\xd0\x00\x5c\xb8?\
+\xe2\x17\xe7\x84V\x1e\x94zc\xeaT\xb41\xfd0Y\
+\x8c\x13\xe5\xc7\xb4\x0a\xd2\x16\x11\xff\x00\xc0\xecO\x8c\x16\
+\xf7\xf5\xedeC\x81\x92\x1f\xf4*_\xe1\xb7\xe4\x1b~\
+<\x7f-H\xf6\x9f\xf8Wk#\xe0\x0c\xa0\x00\x80\xd8\
+\x03\x00\x12\xcd}\xfc\xe8\xef\x01\x1bz\xed\x89\xa7\x9a\x0a\
+B\x83\x02\xf0\xe3\xfe\xa9\xd8X\xf7\xd6\xb7\xf7\x15\xe7\xf8\
+\x01,\xb8\xaf\x98\xaf\xc6\x85\x02D1\xe6v\x0c\xd7f\
+N`\x0c\xb9\x1f\xb4\x16\xc4\xdb4\x0b\xfe\xb6l~l\
+?[6\xfb\xbb_)\x1b\xc6\x87\xdb\x0f\xf2U\xe7\xbf\
+\xf8\xca\xfd\x03$\x8fL\xfa\x8b\x87}\xe5>\xf0;\xe2\
+cy\xa5\xfd\xbeg\xd2\x8c\xad\xf9W\x1a\xd6\x93\xf5q\
+\x99\x1d\x03\x1e\x10j\xff\xc9#S\xd88\xd7\x0b.\x09\
+e\x1f,n\xa4\x83G\x80\x03\x18\xf0\xc5Q\xf0kl\
+\xc2+\x06\xe4\x92\xa3w\x80{\xb0\xfb^a\x1b\xd1\xdf\
+[X\x10u\x07\x81\xc0F\x82\x0d\xd9\xcc\xc1%\xe18\
+}F\xd9\xfc\xfa\xaf\xb3\xbd5\xc8\xf9\xf7\x0d\xea\xd8\x90\
+\xbe\x821.?|.d|\x0f\x80\x00\x08\xc6\x07v\
+\xf1\xb01<8\xea\x98\x1c\x8a\xd6\x09\x89\xbeW\x89\xa9\
+\x07Y8\xd7\xcb\x07\xc7\x16&A\x07\xca\x0ex\x1b\xde\
+\xbf\xb3P \xc0\x18\x03\x09\xac p\xe6a\xf6\x98&\
+\x89\xd6\x9bV1\x8fN\xa4B1\x0d\xff\xa1\x80\x83\x05\
+\xe9\xed\x0d\xf6\x9c\xb5'\xf1\xf4\xf5\xebX\x90V\xc3\xff\
+\xaa\xd5\x01N\x0f_E\x93\x0e\x97[+/\x0e\xf2\xe9\
+\x13\xca\xe6\xd7/*\x1b\x9e[\xc6\xd2\xb4(\x9fD\x1a\
+\x13@BNL\x89\xe8U\x02\x86N\xc83\xe7\xb8\xa9\
+\xcd*S\xa6\x02d>sO\x01P\x81\x03 \x84\x1a\
+xxu\xd9\xa0\xca\xe9\xdf\x85\x22\xa4\x17\xac\xc79\xa9\
+$Ad\x7f5\x09e*\xa64\x18\xce\xfb\xc4\x1c\xc8\
+\x00%\x22f\xa8\xd1z\x94\x89\x0e\xaaDKL\x05\xac\
+\x12l\x0eH\xc5\xf7\x8fVm\x87V\x8b\x95H\xe6\xba\
+\xdb\x11\xec\xe78\xdbO\xd6\xfb~,\x8cD\xdf\xef\xdb\
+\xff\x02\xbd$~=&f7f\xac\xa9e\x12\xa8\xc7\
+.\xb6\x89\x86%\xf1oQN\xcc\x0c\x8c\x06~ \xfb\
+\xff\xf8\xba\xb2\xf9\xf5\xdf\xcb\x06\x0a^*s\xe7\xae[\
+6\xff\xf7;\x95\xcd\xaf\xef)\xdbD\xb8L#\xe8\x00\
+\xd0\x14\x05\x22_D\x7fP\xe6\xfd\xbb\x04J=\xeeF\
+e\xd4\xfd\xd0k\x17*l\xb7\x98`\x1c\xf0W\x80\x1b\
+\x0e\xda\x81\xb7\xbf\xcf*\xb3\xfe\x9d\x03:\xfe\x18\xa0\xd1\
+\x81\x8d@\x03e\xd6zA\x0dM\x22\xde\x81\x99\x00\xc6\
+s\xe6O$\x1e\xae\x13B\xcd?\xea\xc1\xfd\x84$\xb2\
+(\xf6;Q\xc8\x0e\xdc\xacW\xe2\x95\xf6cz\xd2\xdb\
+\xaf\xf8\xde\x02\x14\x14y\x89\xbe\xf3a\xd7\x12\xd6\x01\x8f\
+\xc46->\x9d \xdb\x07\xe9\xc5\xec\xc4\xda9\xb4S\
+\xe9\xc5$\xe81\xa2\xa9@/\xd3c\x1e=P\xeb1\
+?\x04\xf2\x12\x840\xa7ZL\xf4)e\xc3\x18C\x07\
+\xb1uR\x09\xc5\x95\x86\xd6.\x95J\x01\x151E\xd7\
+I$\xca\xf7\xe6\xef\x052\x182*\x80\xa6\xcd\x080\
+\xd2\xb20P\xe9\x97\xfd\x8a\xb1\xb0\xaf\xf8wE\x0a\x05\
+\xfeY\xe7\xfd\xc6R\x11;\x7f\xf6t\xe7\x0f\x89\x92s\
+\x92\x16J\x80\xd1\xd6\x140~3\xea\xd3\xa7\xab\x9c\xae\
+|\xba\xca\xb2\x8f\xdfu|\xd7r\xdf\xd6\xdf\xb7.^\
+W6\xf8#S3~\xa4l8\xaf\x92pwB-\
+\x91PQ\x12\x87<5Sr\xfc\xe4\xfe\xf7>#\x1a\
+\x8cYx\xf3\xc3-\x96V\x9a'&\xa1\xb3\x0f\x14,\
+\x02D\x00\xae\x05j\xfcR\xc7\x09\x803\x01\xfe\xa7\x9e\
+\xeex\xba\xe32\xa6\xf8\x9d5\xa6\xb7\xcf\x89;E\xb5\
+;\x0c\x97\xd6\x96\x00\xf8\xd0\x90\x10\x0f\x88\xbb\xc4\x05(\
+\xe2\x9f:\xdb\x1d\xf2\xfc?|\xf0\xa3\xfc]\xa9\xf3\xff\
+\xf5\x96`\x1d_S\xb6\x89[\xf6\xd4\x05\x00g\xad\xf6\
+\xeb-\x00\xc6l\xcb\xe7-\x7fn\x11M\x9a:\xce)\
+\x15S\xcf?\x22\x87]\xd1\xb3^\xf9u\xd7\x8f) \
+\x1e\x04\x0c\xa9`\x89\x1f\x9dc\xb4\x87j\x0a\xc3\x8f-\
+\xd3\x84^\xbf\xcc%\xff\x87$\x80\x0f\x89v\xc0k\xd6\
+\xb1\xa8Z2\x9a\xc2\xfcSaH}\xe3\xae\x90aj\
+\x8dJ9@+\xf1E3-T\x1ci\x14\x89\xe7\x1e\
+\x9b\xc2\xd6\xb5\x92\x18`\x5c\x19\xabK\x0b%\xfbY\x5c\
+\xd6\xcfSe9qP\xb7\x9e\x89\x07\xf8\xe1OK \
+\xffI\x01*\xefz\xb8\xcb2N\xac\xa2\xcf\xa1u\xe4\
+R\x858\x80\xbe\x02\xc5\x8d\xcb\x06M\x11\xf1\xbesM\
+\x82\xaa\xe2\xfe\xe7e\x03c\xc4\xf3t~\x89\xf7M\xa7\
+\x00\xf4G\xc3\xab\x0b\x1a\x00bc\xea\x14\xfa\xf6-\xc5\
+\xf2\x90\x00\xa3-~ml\xaf\x04\xdcXg\x09\xb8\xfd\
+-\xc1\xb5\xce\xf8U\xadv\xae\xc7\xfdw.H\xb4\x14\
+2\x88\xa6I\xc4\xac#\xef\x83\x01\x08\xb8\x11\x9f\x01R\
+\xaco~\x01\xd0\x22au?\xb4 \xd2|!\xdeJ\
+\x5cO\x1e\xb4\x9b\xe7~\xfa\xa7\xb2\xe1s\xb5\xb8h\xb9\
+\xdb3h\x02\xdc\x18\xc7\xacw\xbc\x0b\x05\x00\x87jA\
+\xbd\xd2P\xb9\xf6\xea\xba\xc7\xd6\xf1\xf7\x0d\xebw7%\
+\xe3\xf0\xf1e\x83\xaa\xbf}\x0c\xa0\xcc\xb9\xd6\xd3\x1a\xc4\
+\xb1\xde\xd7\xf3\x10\xa7*X\x89\x0bh\x04\xf0\xb7\xf22\
+\xa2\xd4\x18>\x99\xde\xd4\x00\x91\xde{\x0c/Z\x19\x01\
+\x22\x01Z\xa7\x1b\x96\x0d\xf9\x85}\x22\x1eq\x8eXG\
+\xfc\x81\xfd\xa1p\xe6G\xfc\xe7\x5cv\xdd\xee\xa7<\xcf\
+\x98e\xc0\x15qL\xdfO\x5cm\xbf\xd8\xaf\xf6\xa1\xf8\
+Q\x8b\x14\xd1^\xcc\x8c\x14\xf2\xcf\xb5\xe8\x9d7\xe2h\
+,x7^\xc0h!\xefU\x10\x05r\x12\x0d\xbd\xa3\
+\xa5\xd2\xfb\x89q\xa0w\x1bn\x94\x1b\xa0\x12ic\xb8\
+\x81\x90E\x08\x8e@\xc3\xbfK\x02\xd7\xf3\x89/\x9c\xed\
+?6\xaa!jf#\xb6z\xdcZ\xc5&\x89\xbd^\
+|\x80\x80\x8d\xebg\xd7\x93\xd3\xe3\xfd\x04\xf0\x1e\xdc\xbb\
+\x97\xa3dk\x11P\xd9\x19\xe7AN\xc3F\xe5`$\
+\xfe\xe5\x96_>8\x8cz\x0aW\xcb\x82\xf8\xd0\xa1\xe7\
+\x9e8\x96\x00\xc1\xfd\xf0\xfe\x90FT\xc4\x04\x16=N\
+\xed\xf5\xa1~\x05!<~_\xd9\x10\x18\x9a\xc3\xfeo\
+\xab\x18\xc6\xf4\xe1e\xdb\x98\xb6\xeem\xa5\xe6\xff\xacu\
+l\xd4\xe1\xd9\xab\xc3\x99\xc3\xec%p\x9e\x9e\x5c6\x8c\
+}\xb2\xf1\x04T\x1c<Q\xb9\xfd8\x16b^\x10.\
+\x88\xfb\x1b\xcb\x86^r\x07N\xa8\xfc=\x8fX\xa2n\
+l\x98\x00\x88\x16\x80\x96\x07j\xe1\xa8\xfez\xe4\x00\x0f\
+^\xb5\x12\xa4'\xbdU\x85Q\x03\xffv\xd5~8\x5c\
+0_\xdf\x05\x03\xb5[ c\xdd'\x81\xe9\x16\x18\xda\
+\x07\x90d\x08\xbe\xc0\xca\x81l\xfd\xd9\x9f\xee\x07\xa0\xc1\
+:0\xf6/\x22\x91}\xb0\xf9\xf7\xd6\xed~\xaa\x86\x83\
+\xdczWa}S\xd9\xf0\xfe\x9e\x9f@@%\xcbX\
+!\xbd\x9e\x10\xd7\x88Y\x95\xe4V\x89nu\x85\x1f\x15\
+0\x89eS\xb0\xdf\x919\xacU1\xa9\xb9\xceW?\
+]\xedt\xf5\x8d\xd90\xfd`\xd9P\x814\xd6G\x0f\
+/\xd5w\x94O\xd3ETh\x8c\xc3\xca}q0\x1c\
+?P6\xbf\xff\x0d\xca\xe6?\xff\x9f\xb2A\x8c/\xd4\
+\xf6N\xf0U\xdc\xecg\x0e\x99V\x85\x04T\xe0\xee`\
+\x94\x08\x8e\x8c\x9ek\x0c\xaf\x9e/\x7f\xc7\xa1\xdb\x07\xd1\
+\xfe0o\x9bC\xef\x1e@\xf7U\xe5\xdcA\xe9\xf9c\
+`\xa1\xd8\xf2\xbb\xd6\x99\xef\xeb\xe0H\xa0\xd8\x80\xac\x80\
+\x07\x22\x1f\x15y\x81E\xb7\xc8\xa0\xfe\x87\x1a\xd9\xad=\
+\x804\xe3\xd5R\xa9\x9e\xfe\xb8l\xbe\xef?S6\x5c\
+/J8\xb16@\xae@OE\x93\x9f\x15\xf0\xea\xe5\
+\xa4r\x1f\xd1\xb0\xbe\xbf\xfe;-\x05\xd3.\xcc\x83V\
+Q\x8a&H\xdf/\x81\xe5\xcf\xa7R\xf4\xa4u]I\
+\xf81Kz\x8a\x89\xf3\xd0\x94\x87$\x10K\xe01\xef\
+\x9f\xe9\xfee\x1b\xb5\xbf[R\xcc\x93Oe~\xfa\xc8\
+\xb2-!;~k\xd9\xf69]\xe9\xd7\xd2`N\xf0\
+-\xcb\x86\x16!\xaa\xf4i\x95\xea\xcf\xd3B\x86\xca\x1a\
+J\xf6\xf1\x8f\xca\x16\xe6\xc7g\x14\xf3\x83\x96@?G\
+\xadT\xb9/\xc6\x94u\x00CU\xfd[N\xdfz\xfa\
+\x96%\xd0|J\x05\x9a\xc7\xcb\x1c/{\xbc\xec\x00,\
+\xe5\x1ch\x00\xc8\x5cw\x22_a\x1cMO+\x9b\xff\
+\xfes\xcb\x86\xf1\x83\xb7I\x8b\x02\xb10\x15\xde\xe7\x9e\
+\x9eW\x15\xbf\xae\xd0\x8bK\x1e\xb7t\xa1o\x89\x04u\
+\xef\xfa\xbc\xef\xde\xb4d\xce\xfb\x930\xd2\xecO\xc0T\
+\x12\xf3\xb3\x1f={\xec\xd9c\x97\xf5\xbd\xccm>\xde\
+\xf5x\x97\xe3]\x86\x80\xd8\x98M\x8c\x8d\xaf-\x9b\x7f\
+\xff\xef\xcb\xe6??\xe3\xf4\xcc\xd33\x96\xe7p\xaf\xe5\
+9HX\x888\x02\xa6\x00]\x12\x03\xe3\xe0\x02\xac\xb4\
+_BiUy\xc5\xf8R\x91M\xe5T`\xde\xd4{\
+Sj\xb4\x98\x84YS\x0d&\x8bz{\x12\x93R6\
+(m\x83fh\xe5\xfc\xeb\x84\x13\x93\x91\xbfr\x9eI\
+\x1cT\x02\x89\x16\x12\xf1\xe4\xaf\xdc/-\xa4\x80(\xfe\
+\xf3\x7f/v\xde\xe9\xbeeC\xafr\xfe\xdd\xf4\xae\xe9\
+\xdf\xa7\x7f\xdf\xfcPIA\x97\x18t3i\xf8\xbbW\
+$!\x9a\xd6\x8a\x5ck\x16\xf8\x5c\x22q~\xc4\xc1Z\
+\x9f0\x08\x03t\x9f~)\xady\x18\x83\xf6?\x95\x7f\
+\xcf\xc5\xf9*\xfeq?\xb4>\xd0pQa\x070\x13\
+i\x8d\x7f\xa7\xea>\x7f\xe7;.\xf7\xcb9O\xd3'\
+\xc0dO\x8f\xe1O%\xbe\xfc\xa5\x84C\xdc(\xcew\
+\x1e\x88\xeb\xc5\x0b\xce#\x89\x10\x80)\xfe\xbd\xb5\x0eh\
+\xaa\xa8D\xf3\xbb\x00\x0d\xe3\xe1\xa8\xd8k1\xd4\x9aH\
+\x94\x12\xf5\x9e\x9f\xa7\x9d\x94q\xae\x985-\x16\x08p\
+u\xdf\xc5]4\x0eT\xfa\xf9e\xc0\x83\xef\xeb\xfe\xec\
+{\xb9\xfdwq\x99\xf5\x8d\xa1\xe9s$t\xfc\x9a\xfd\
+\xacp\x82\xda-\x8e\xc2\xa8v_\x15\xf6\xe4\x01\xb4=\
+\xc4\x0b\xaeOk\xa1\xf7\xc1\xa4\xf1}2%\x8a\x88\xea\
+\xecg\x9eQ~\xa6\x81\x00\xd7\xa9\xc0\xe0\xf3\x8c\x9b\xbc\
+\xd7\xe1\x9e\xa5U\xb2L\xa5\xfa\xadA\x0b\x0d\x80\x15\xed\
+\xa6~?\xfb\xc6\xf8h\xc0\xd1[\xca\x86\xf8\xc1\xfa\x12\
+_\x88{\xed{\xf9\xa5\xef\xa1\xd2.\x1f\xddM{\xeb\
+\xf8K>\xba\x1f\x8f\xc8\x0f\x13/\x8e\xdf\xd7\xa2\xd5b\
+\xbb\xd6\xad\xb8-\xd3eN\xcf)\xdb\xce\xd1\x8e[\xf8\
+#\xfb\xc7\xfd\x13\xb7\x85A\xd4\xeb\xcc~\x97_Z\xdf\
+\x988\xee\xa3\xef\xc7\xef\xb9\x1eb\xe0\xa6*\xf8\x1c\xd3\
+-\xecsSthu\x19C\x1fFe3\x9e\x92\x97\
+\xf4\x18\xc0\xbeQn\x9c\x85\xa1'\xdeB\xe3\xc0\xf6*\
+\x92~$\x12nH\xe1I\xd7\x1e\x90\x12\x1bJ\x82l\
+C\x04\xd9\x22\x9e\xd5\x81\x5cz\xf1\xfa}Q\x81\xe28\
+\xa8\xa8\x1e\xef1\xdb\x97\x84\xe2\xf3\xfbC\xaf4Jy\
+m\xdf+\x0c\xbd\xf8\x16\x1a\xc7\xe6\xfb\xa0h\xd4\xed\xbd\
+\xcc\xff\xe0 <\xc8\xdd\xd8\x9f\x1e\x03h\x03\xfb\xbe\x16\
+\xaeD\xb0\xd2\xad\xf7-\xc8\xf5\xeb\x16\xe4\xda\xf7t=\
+\xee/\x07\xed\xba9\x1c\xaf\x97M\xef\x9b\xe7W\xee\xe5\
+]\xd9\x10\xef\x1a*A_S6\xf4v-\xb2G\xf3\
+\xfd\xfa\xe2\xb2m\x03\xea)\xa5\xae>\xa7]\x8b\xa8\x15\
+\x86\xc1\xd9\xd7\x95m\x95\xa5\xee\xf9\x0f\x95M@\x22P\
+\xf5\xdc\xf4\x8c5\x92\x9f\xef\xd5\x94Ds\xc0\x8d\xdf\x03\
+0\x10\xf3{M\xd9\xd0\x02\x10\xca\x7f'\xd0\x80\x11\x15\
+E\xc8<\x07\xee\x80\xca\xc6\xefV\x14\x81\x91\x83B@\
+\x93^\xd4\x1aj\xb6\x8c5\xf3\x0ap 6\x98\x8aT\
+\xf7\x08I\x88P\x9d\xf5\xf6{\xff8\xb2\x16\xe7\x22\x22\
+'a\x16@\xabh\xd9\xe0{@J\xef\x99@\xe3c\
+Sq\xbdI\xa8~\xc4p2\xb5\xa0\x13%\x81\x99\x9e\
+=\xc0\x9b\xca\x19\xd18\xbd\x7f\xc6\xeeH\xfci+@\
+6\xa9p;\x98\xec\x0b\xd4N\x0c\x81\xdf*\x1b\x18\x1e\
+z\x1e\x01`\xc5\x1c\xfa\xabAm\x99\x18\xe3\x93\x0fO\
+ZzrSy\xeb\x80u'\xc2\x07 47\xbd\x03\
+]\x95\x94\x8f+\x1b\x0eL\xfb=\xc8\xf8\xf1\xe1eC\
+\xef\xac\x83\xdbz\xa5y \x81\x0d\x15\xb4\x99\x03a\x1e\
+\xb5:\xb1\xb9\xb8\x1c\xb8\xfb$\xf1\x17\xa8\xb9_\xf6\xb3\
+\x00\xcc\x81\xe7\x80\xf1\xf7\x10]\x7f/\x80\xd6\x82\xe0\xfd\
+U\x16\x93\x10t\xcf\x1cu\xea\xeb\x97\x0d\xebB\xe2'\
+\xd1\x95\xa8~V\xd9\xd0\xb3\x8c\xda+\xe14\xbe.\xe3\
+\xea\x9a\xba\x9b\xde\xff\xe97\xcb\xb6\xfd?=\xb4lH\
+\xa4wT5\x94\xfd\xe9\xc5e\xf3u~J\xd90]\
+\xe1\xdb\xca\x86\x8aAT\xe2\x9b\xdaf_\x08\x98\x13H\
+\xf6\x9cj\xff\x8e\xc8(\x8a0\xc0\x8cv\xc01\xdfG\
+\x22\xa4'XkE\x80\x96\x9auR\xd3N\xe6`}\
+i\x1d\x99\xee\x9a\x8a\xb0\x00\xd7\x18\xab\xc7\xe5\xfecf\
+x\x9e\xee\x031\x22*\xcb\xa6\xdeh\x15\x00\xa8\x18\xb7\
+\xe8{\xab0j\xf9\xc9\xfa\xec\x04\xf1\xa5\xeb\xbf?\xbd\
+v\xad\x10\xb5*<\x91Xb\xa2\xc4N\xf9K\x01\xda\
+nJ\x07&\xc5\xf4}e\xf3\xeb\x7f\x95m\xdfg\xfa\
+\xda\xb2\xf9s>\xa9l\xf3\x13\x80\x1b\xe2\xa9\xc6\xdeM\
+\xf7.\xdb\x187\x18P\x0dX\xd0\x92\x88FL\xef\xd3\
+\xec\xe7V\xa7W1\x0e >}\xfb\xf4m\xd3\xbcN\
+\x8e\xdfP6\x04l4)\xdeR6\xa8\xcc\x03\xa6\x01\
+@\xc4\xe2\xb4\xfa\x89W\x00\x9a\xa3\xb8\xde3\x87\xc4\xea\
+\xf7\x02\x0c=>\xe3\xb12\xae\xb1\xfd\x0d\xbf\xa9\x12\xbb\
+\xcd\x83\xff\xb7\xe5\xbc\xe6\xff$\xe8\xa6\xfa\x00\xe4\x8by\
+r\xab\x00\x01O\x1e\x98sY\xefz\xa8\x1b\xc8H\xab\
+\x04j\xae\xe7\xde\x05\x87T\xe0\xfa\xf9`\xc8\xd0\xae\xe0\
+_\x7f\xa4l\xa0\xf8F\x5c\x8cfK\x8f\x1f\xd6K\x9e\
+sK\x8fi'\xfea\x80\xf5\xb9\xcb\xcf\xf9\xa1}\xf2\
+Ok\xe5\xbe\xff]D\x12{\x0cY\x98_}n\x99\
+\x96\x90sg\xfa\x90\xb2!\xe1K\x00\xdd\x80Q\xd4\xbe\
+\x01\x19\xa7\x7fH\xa5\xcf\xb8X\x9aD\x98\x82\x180\x18\
+R\x12@\x81\xbdx@\xa5\x16\xe3\xe5\x9e\xa7{\x9d\xee\
+\xb5M\x93\x98\xef\xe9\xea\xf71\x0c\xd3\xa2f\xdaLS\
+\xf4Q\xfc\xb3\x0e\x8f_X6\xf8\x93\xddX\xc1n\x85\
+\x11\x87\xeayW\xd8;e_\x03\xa8\x9d\xbb\x12g\x80\
+&m\x02\x09\x89q\x8d\x0a\x5c\xd6\xb1\xf5\xbeO@\x8c\
+\xd7\xe3O\x01\xdf\xfc\x09\x7fo\x9ci\x12\xab\xd6\x14 \
+\x1a.\x11\xd6\xc2\xea\xdc\x17\xbf\x88\xc3\xedK\x22\xbf\xb9\
+\xff\x00\xfd\xfe\xf7\x01\x0az\xbd\x11\x83#\x1a\xee\xf3\x14\
+\x1e\x01E\xd6\x9f\xebWa\x15\x7f\xd0~\xe1\xd7\x8d\xd7\
+\xd5\xfa\xe9\xef\xe5\x13\xc68\x12#\xe4o\xe5\x1d\x80n\
+\x89^\xa8\xe8\x97\xa2\x8e\xfb}Sm\x02\xc4vb(\
+o\xd3\x02\x81\xc1 .\xc3\x90\x93OY/\xf2\x14y\
+\x8d\xeb\xff\xd89\x8a\xf9\xd8A\x9b\x0c\xe3,\x0c\xca\x8e\
+\xefh\x1e\xd9\x97\xe2-\xeb\xc7\xfd\x07\xf4I\x9c%\xec\
+\x9e\x83x\xd3\xf7\x15\xf7\xb8\x1e\xdf\xdf\xfe\x93/\xf9w\
+\xee\x17\xa6\x04\x0d\x84\x00b\xdd\xe2\x96\x16\x22\xe3C\x9b\
+\xe1gZ\x17\xed\x9b\xcb\x97m@\xab\xb8\x98\x98m\x7f\
+\xaex^\xde\x0bh\xc4\xb8\xb4\xee\xc4#\x98j?\xbc\
+\xd8\x96\x0f\xbb\x1f\xf2H\xcf\x13c\xd7}\xdbk\x19\x04\
+\xf0i\xff\xa8\xe5\xc9u\x89\xef\xafX\xb6iW\x9ck\
+\x07L\x03\xc0\xc2t!;\xb5\xfdK\xfd\xec\xb5\x02<\
+8\x0f\xc0\xdc\xfb\xdd\xfc\xc3^\x98\x02`\xc8\xba\x84\xdd\
+\x81)A\xa6B\x9a\x9e\x1c\x94\x95\xe3\x1f\xce\xf6\xfc\xa8\
+\x93\xfe\xdeRi\xf8\x96\xaa4,\xb8\xec?\x0f=\xf8\
+\xae\x8f\x0a\xbf\x05\xa7\x02\xeaA\xfaQQ/\xb7u\xee\
+\x7f@\x02\xbdb\x0e\xecE!$n\xde\xb7\xdc\xef[\
+\xb3\xb1\xfff\xa0Hs,\xee\xee\xbe\x05\xc1\xfb\x8c-\
+\x09\x87\xad\x17\xae\x13\xb9\x8b\x96\x09\xc8\xeb\xf3;\x0dL\
+\x01\xbdl\x09\x08\xbb\xb7\xff=+p@l\x8ajs\
+\x8f\xf5\xbb\xdb*\x82\xe6~\x1e\xbf\xablA\xd8g\x1b\
+\x12\xa4\xf4<O\xcf(\x1b\xd4\xd69N=y\xfbq\
+\x18\x09\xc8{\xbe%&@\xd4\xc6;\xf1'\x06\x98\x9e\
+\xa1\xa6\x80\xa1t\xa1\xda\xa2\xb6\xa1\x1a'\xb0\xed^V\
+\x09\x12\x91,j\xd6\xf7_\xa7\x13\xf4t\x84\x8c\x01\xe9\
+\xf1T(\xbd\xc6a\xa1X\x09\xc4\xdd\xdf\xa7\x1d~i\
+Q%7v*H\xa8\x83\xbe{\x96\xf4\xfcs\x94\xf6\
+\x15\xa0\xc2u\xd020u\xe2>eC\x8f8\xc7\xf8\
+\xa85\x019\xdc'\xd4DTa\xeb\xfb\x8f\xb3\x9f\x04\
+\x00\x00\x07\x09\xac\x84\x9f\x0a\xf2n\x9e\xadu\xd4\x14.\
+\xa2}\xd4\x801C8\x9c\xe3\x7f\x0f8\x00\x1e\x1dp\
+\x10\x91#\x1e\xa9\x17\xd2\xfdHEDEF\xe2\xd1\x15\
+w\xeb]B\x97\x9e\xf4\xd3\x07\x97\x0d\xbd\xe5QS^\
+Z\x81\xfeu\x1b3\xd3L\x84\xf4\xc2u\xc5\xd7\xfeu\
+\x9frpUcK\xb5\xb6L\xef/\xdb4\x09\x04^\
+\xdd:\x22\x10\xe5\xaf\x04\x8c\xd4\xba\x01\x04\xa8o\x0e.\
+\xad\x1f\x9e\xa7\xfd\x81\xea\xeez\x1c\x04*S\x0e\x02\xc0\
+\x0cD]k\x03\xaay\xa8\x96\xddk\x87\x1a\x17\x8a.\
+U\xeb\x06\xc0\x1c\x80\xe6,S/\xd6*&q\xa1\x19\
+\x92\x96\x84^\xd7\x00]\x01$Q\xa4 \xd0\xc6'\xed\
+\xc5}\xf6\xea\xbb\x9d\xa0g\xbfA\xec{\xcc\x22\x15o\
+\x01\x01\x7fc\x1c\x90\xf5$q\xa3y\x10d\x1f\xd06\
+\xfdN\xd9\x06\x94J\xbc\x01I\x0d,:\xa0\xd3\xf2\x80\
+\x81\xd2\x15\xee\xbf_\x03;\x15\xc9\xe9\x1f\xca\xe6\xed\xf0\
+\xe0\xe3\x83\x8e\x0f\xda\x12\xbb\x9e\x8a\x82\x02\x9b\x0aR\xaf\
+#\xc0@\xf6U\x03\xa5\x8fNe0\x81\xc9\xbc\x1a\xdf\
+7\xbdoi\xfdX\x80\xac\xc3o\xc6\x1f\x01\x1c\xbf8\
+=\xd5\xd1\x90\xe8J\xc6M\xca\xe6\xd7\x07\x97\x0d\xcc\x8a\
+\xfc\xb9\xa9\xa0\x80\x02\x95a\xc0\xc9\x85\x87\xff,\xa0\xd6\
+8T\x95\x9d\x1e\xaf\x16?\xd1\x15dL\x1d\x15m-\
+\x90\xa5\xc5\xf0\x1d\x1b\xb0\xd4\x09@\x00\xb7\xd3\x93\xca\x86\
+\xa91i\xeds\x0e\x1c_\x5c\xb6\xb5\xac4\x13 ~\
+\xe0\xf0\x0bi\x0d{\xc9\x0a\xe8\x1e\x7f\xa4l\xbe\xce\x9f\
+)\x9b_\x7fw\xfa\xbdi^G5T\xb0\xc6\x0a\xb6\
+\x9fv\x1e{\xde\x0a#\xfc\x1a5\xff\xf4\x84\x02<\xa6\
+\xf7\x06\x10\xc9\xf9\x7f\xc9o]\xf2\xecK\x9e\xbd1\x05\
+N\xcf\x88\xd8]\xfe\xdc\x95\xbd\x8f_Tb\xb6\x00\x94\
+\xa8%M\x0a\xfb_\xe2\xef<\x92p\xa3\xecj\xc1\x0a\
+ :]\xb1l\x19\x87X\xd6\xa2\xa6}_\xb5\xa2\x19\
+\x17\x9c\x16\x92\x06B\x01^i}Z\x94\x07.\x18\x12\
+\x95k\x1d\xaeQ\xa2\x8b\xf3\xaa\xfd\xc7Z\xb7\xcb\xba\xff\
+\xcd!\x81J\xfc\xb7|\x9f\x87l\xe2\xc4\xfc\x909\xde\
+\xcd\xb4\x89x\xd9\xe1\xdf\xcb\xb68G\xcbbO#J\
+\xc0>{\x81\xdf[\x02\xe9\xb4\x5c\x9e}\xcb\xd97\x9f\
+}\xcb\x12\xe7,L\xbe\xd3\xb5N\x1fr\xaa\xefs\xd9\
+\x15\x18>}\xcdZ1?]i\x0d\x80k8t\x8d\
+\x87\x9e\xbd\xca*\x1e\x9b)5\x1dP\xef\x80\xe0N$\
+\x93`\xf4\x982q\xae\xf5\x91\x82\xc9\xe1\xd9a6\xfc\
+\xf3\x7f\xaf\xd8\x9e\x1e\x93\x96\x22L\xc0\xeb\xae\xcc\x11\x15\
+\xc8\x16s\x8c\xe8\xa6V\xc3\xd6^B\x91\x96\x88\x01x\
+\x00AZ.\x0a\xfe\x5c\xa9\xff\xebyDl\x8f\xc8\xaa\
+J\xed^l\x90\xf8\x9a8A\x22,\xc1S\xa9\xf4g\
+\xebHk\x94VG\x8c\x05\x89\x9a\xf1\x80\x12 \x0c\x15\
+\x09\x9b\xd63\xe7\x9e\xb8Y\x22\xe4\x9cs\x1fM\xd9\x09\
+0\xda\x8e\xc5\xefy?\xd4|\x95x\x85\x08c\xf8\x88\
+Q\x9a\xba%\xce\x96\x17\x00>\xc4\xe1\x98\x0d4~\x00\
+\xf2\xe28\xd3\xb9$\xacZ\xb8\xb4\x94\x10\xa1\x04\x98\xec\
+\x13<j\xfc\xc4\x07\xb5\x04x>\x12j\xf7\xf3X6\
+\xac[\xf9\x1a\xa0\xc2\xf7\xd1\xa2g\xca\x04 \x08\x90j\
+\xdf&\xc1mQ\xc6g\x05`\xf5\x5c\xc4\x95\xee/@\
+l\xcf\xecU\xa0RH\xd0\x0a\xf5\x86\xb2\xc1\xafQ\xff\
+\xf7\xbd\xbc\xff^\xcd\xdezp\xae\xbb\x1e\xcc\x0a\x80\xb5\
+\xf7\xb1\x1e0\x900V\xbc\xbf\xe7\xba\x17\xf5\xf3|S\
+\xd8\x98\xbe\xb0l\xde\xde?Y6\xf8+\xf1\xbf\xe7\xa6\
+ \x13\x06\xdd\xa5Zk\xb4\x9e\x03@h\xe3`0\xf9\
+=\xd7#\xff\x95\x0f*\x1c\xd8\x0f~\xf8\x1f\xf7\x11\xd0\
+\x90\xf1\xca\xc6\xe7v\xfc\x1d\x86\x91\xe9J\xe7\xfa J\
+`\xdf\x0b\xdf\x1bC\x8a\xf6s\xcam\x08\x07%GQ\
+\xc4\xe1\xbf\x1ez\x09\x8d\x15\xe4 m\x08_p\x8f\xd8\
+X\xe8zV\xf54I\xfc3v\xe5\xf8\xa4\xb2\xf9\xf5\
+ze\xf3\xdf\x7f\xc1l_8\xdc(\xaf\x90G\x88>\
+`c?\xbea/\xe6$\x91\xf7\xef}\x0f\xaf\xa3\xda\
+\xe3\xd9\x00\x18\x8cc\x1e.\x1e>\xaf:\x9d^;\x00\
+-\xb5\xac\xaf;\x8cu\xa1\xb5`\xe3\xee5\x17\xf6\x88\
+\xa1\xfbn\x81\xb8\xdf*\x8c\x90=\xf7\xf1\xcbW\xd1\x87\
+\xc3\xfd\x92\xf0\xbe9\xa2H\x1f\xc8\x81v\xbb\xf5@<\
+>\xb0l\xab\xd4\x16\x01\xa8\x10\xbe\xc3\x0dW\xc75\xfd\
+\xfe\xf4\xdci\x0e\xd0\xa7;\x96mc\x8e \xb0\xd3e\
+\xca6\xeaQoT\xbd\xde\x98\x10\xa9T\xfa\xfd\xae0\
+R[N\x22\xd2\x95-\xa2y\x19\xa3\xd7\xe2w\x90P\
+=\xda\xc6\xf4\xbd\xa1l\xa8\xf8\xa8\xa8\xa0\xc8\xa0\x9c\x9b\
+\x02\xe0\xd5z\xb0\xb1%r*\xa3\x11\x0d\xc34\xf0\xbd\
+\x05\xf0M\xbdO\xa0\xda\xa2%_\xbe\xd8\xf6\xdf\xfd\xd8\
+oz\xcb\x12\x88\x09\x0c\x1aQt\x90Ap\xa9vS\
+a\xb7~\xa9\x13;\x086\x86\xc3ZIM\xcfS?\
+\x17\x00\x1c\x86\x02j\xa9\xdf\x83l\x133\xd2#\x1f\xea\
+\xaf\x80\xbf{\x1cQ\x14Qn\x89\x10\x11IT\xa9\x08\
+\xe5\xef\xf4\x94\xb2a~3\x8a\xb7\x16\x10\x08)\xc0\xc9\
+\xfd\xb0\xaf\xb4\xc8|\xf9\xb2\xc2\xab\x028\xdb6=\xe0\
+t\x8b\xb2!\xa0L`e<YS\xd4T\xee%\xe6\
+\xf6\x8fJ\xab\x8a\xbe^W\x09\x83@I \xaeW\x98\
+\xda\xbeW-\x08\x80\x1e\xe2\x86\x02$~q7\x87\xb8\
+_\x03\x5cu\xa5(\xcf\x17\x80\xd6\xeb\x05\x05\xda\xf3J\
+\xef&1\xcd\xa6\xea9\xc0M#\xc0\xcc\xb0^\x8cW\
+\x22\x92c\xfd\xaa\xe4R\xc7\x97\xd0\x00p\x01m\x98&\
+\xce\x15\xe3\x5c\x7f\xa8\xec\xd2\xadJ\x1d(X\x87\xae\x17\
+%\xd6\xc1\xa7\xc2\x9d\xb1\x95\xad\x86,0\xd8\xf5V6\
+\xe2\x9f^@\xcc\x989\x8dZ\xd5\xe5\x03\x80\xb4X\xa1\
+\x84\xd9\x81i\x1f\xed\x02\xde\xf6\xcf\x00\x9c\xacS-$\
+\x02\x84@B\xa1\x00\x00 \x00IDAT\xa0\x16\xcd\
+r\x8ex\xdeZ-Bi\xf6>\xb4JJzm\x11\
+_C\x1dFU\x7f\xfc\xda\xa3\xdd\xbd\xda7\x8fX\xd0\
+\xe3\xba\x07y\xbd\xaf\x802\x14U\x1a\x09\xa8\x89\xa9,\
+\x13\xe3j&\x13`VKM\xe6\x9e/u\xed\xc7\x0d\
+T\xdd\x04*\xd3C\xca\xb6V\xa6\xe3\xe7\x96\x0d\x81\xa9\
+J>&\xcf\xc7\x96\x0d\x9f\x17\xc0F\x85\xb6\x03\x19\x0c\
+\x8eT\xc2T.Zc$\x94N\xe2i\x97|U\xd9\
+\xa0\xe2\xac2\x9b\xf3dz~\xd9F\x1do\xcd\x91\x87\
+\xae\x89tk\xce`\x88\x85Y\xd7\xbd\xcf\x09\xe0\xa6\xbf\
+,\xdb*\xe6Z\xa4N?yzB\x8d\x9f\x9b\xbf\xc5\
+\xe7\xd5\xf78\xbc\xa9l\xd9Gk|\x03\x88\xa5\x02\xce\
+\x0f\xd6*\xb8\xfd@\xe1\xb5\x8fPV\xa9\xf1\x13u\xb4\
+N\x01\xa7\x98<\x02Hc\x14\x014\x01\x92|\xef\x85\
+\xf1\xf05\xf1c5\x86\xf1\xbb\xca\x06 %b\x9a\x1d\
+W\x10\xf9\xbc\xfdy\xb7[\x12\xdb\x1a\xdb\xfb\xb7a\xe8\
+\xfd\xe1\x00\xb8a\xe0`\xf4`\xa2\xa1f\xf3\x9f\xe6\xa0\
+kY\xb2O\x03\x8c6C\x89\xb6\xc1=\xcb\x06\xd1\xd5\
+\xdf\x886\xcf\xd5\x0fW\xab\xca\xe7\xd9\xc3\xce\xbe\xf3\xec\
+a\xc3\x94\x88\x82\xc3~h\x11\xe1|t\x89p\x12\xc9\
+\xac?-\xa2\x9c\xb9\x0e\xfb\xab)\xe8\xc6\xa2\x9a\xfe\x91\
+}\xd7TZ\xfb\xdc\xb9#\xce\x930\xa7\x97\xbdU\xd1\
+i\x1d\xfd\x7fka\xe5\xbco\xc9\xb8G\x8cV\x94\xf6\
+\xec\xa3\xc3c\xca\x86^wq\x01\xa0Tk\x0f\xc6J\
+>\xb7\x194\x12!\xf1bE1W\x1c\xfc\x8d\xc4\xd8\
+\xf5\xee\xb52hWI@\xf6\x22t\xe2]\xf1\xa7\x8a\
+\xae\xbc@\x5c\x07 \xf6c\xda\x84\x84O\xcf\xbf\xbc\x02\
+\x83S\xcb\x92\xc4\x98\x1f\xb3_v\x1a\x10\x12\x1b~\xb5\
+\xf7\xa9\xc2\x1a&\x0d\x91[\xad\x82\xa6\x0cI\xbc\xf7\xad\
+\xba\xbe\xdf\xee\xa7\x99\x08\xd6\xb9u\xb2O0]\xb7\xe7\
+\x000\xc1`\x10\xdf\xdb_\xae\xc3\xba\xb2\xff}\x0fy\
+\x88\xeb\xd2JT\xd4\xfc\xdf\x1c\xcek\xe7\x92DX<\
+\xe8\xb9\xec\xa7@\x01,05\xc3\xb0\xe9\xf1\xce\xf6\xbd\
+x\x01\xd3X\x1e\xb2\x074\x8c\xc3\x94\xb8\x8b\x9f\x01\x13\
+ZS\x88\x92[\x0f\xbe\xb7\xd6\x02\x9a\x11>\x07\x00\xbb\
+oet?\xbc\x8e-\xda\xef\x1d\xce\x11\xcf\xc5u\x01\
+N0~0\x93\xfc\xf8\x9e\x98\xa8\xd1\xc6Q\x88\xc2\xe0\
+8~I\xd9\x06\xd8\xf1\x13\x0d\xc0\xed\xc5-=wq\
+(\xe6\x04\xa0\xdds\xf1\xdc<O\x85\x17\xf9\xb1\xef\xe9\
+\xcf\xbb\xb1\x9b=\x05\xe2\x11e[\x8b|\x8b\xf5\x8a\x8f\
+\x92'\x9e\xd33\xdbs\xb6\xf5\x90\xba\x91\x10q\x0bk\
+\xdf\xa3\x8a\xd2\xa6'\xd8\x81\x8fz`\xa1\x0b\xac9$\
+\x0e\xcb\x17\xf0\xea\x8bS+\x0d\x92\xd2\x8e\xfc\x87\xca\xe6\
+\xd7+\x95-\xa2t\xb3\xe5\x06\x0c\x01\xe5\x7f\xa3\xe6\x7f\
+\xf0\xf0\x80!D6\x16\x07\xcb\xa1\xed{\xa0$\xe8#\
+ pnW\xa1?\xb7\x03\x08\xc6q\x80\x1eX\x85c\
+\xaf\x1d\xae\xd3\xfdu=\x1f\xbd\x8e\xe1\xea\x83S\xa5\xd0\
+\xf7p\x1f1\x18T\xfck\xf9\xbfos\xbc-.G\
+\x9d\x96\xf8\x13\x91\x0d\xaa\xa9\x90;\x01\xbc^\xed\x97\xae\
+T\xa2\xe3\xbb\xcb61\xb9\xe9\xfc\xb2\xa5\xf7\xe7\xf1\xa7\
+\xc7/\x09\xc0\x92\x10L\x9f^6\x04j\xb7*\x1b\xc6\
+\xbe\xa9\xc8F3@ \xdb\x94y\xcc\x00=@\x0e\x1a\
+\x89\x8c\xeb\xde\x1f(z\x9c\xd2C\x88\x9a\xdd\xa2_^\
+\xffqU\xdd\xef\xc0\x0eR'\x117\xefZ\xcf\xa7^\
+K\xcf\x1b\xa2m\xbd\xa2L\xa7\x05\x00#A\x02F{\
+\xa0+\xc8>\xc78\xa0k\xa7\xa2\xfd\xf1\xe9E\xc3|\
+\xf8\xe3\xb2A\x9d>=\xaf\x1d\x18|\xc8Z\xd1h\xf5\
+}\xebK\xc2\x15\xd15\x88\xf1\xa5\xa8d(\xb0\xa9|\
+\x9e\x1ep\xfa\xba\xd3\xd7m\x01y'\xe2\x12\xbd\xef(\
+\x1bz\x8bTh3\x07\xb6)|\x02\x9e\xec\x7f\xa2\x9c\
+(\xb6\x8d$sd\xee\xe3\xfe r\xf0\x01\x00\xedK\
+\xcfa?\x86\x06pQ\xe1\xc1\x8d6`\xa8\xf7\x15$\
+7*\xdaM!G\xb5E\x89\x8d\xff\xe8\x1ej\xa22\
+\xbe\xef\xc3\xca\x06J\xa39\xc4>_ \xb3Gd\x13\
+(4@\xe3{B\x82\x03xt\x85U\xef\xb5\xdf\xd3\
+\x03n\x8c\x9c\xca|\xf6s\x03\x02\x12`\xda\x15~O\
+\xa5\x1a`\xb5\x17\xa11M\xe5Ee\x1b\xa0\xa7\x02\xd9\
+\x14^\xd3\x08\xac\xcb\x9d8\xab\xb1W\x1d\xd8\xabL\x86\
+b\xd6\x95\xa0\xb4\x5c\xa8\xfc5\xb3#\x15\x13c\x93Z\
+\xd4\x90\x9av\xb49\xf4\xdc.bg\x9f:\x1cxQ\
+o'\xda\xd9\x01\xd7\xfb\x12@\x0b\x1c\xf4\x8e\x12\xf7L\
+K\x8fV\x9d\x9e.\x82\x0a\xae\x02c\x1a\x81\x84:\x94\
+\xd9\xae\x00f?\xaal\x9c\xeeR6\xbf\xfep\xd9 \
+j\x07\x10\x91@c\xda`4\xa1\xe4?\xb1lhe\
+\x01\xe0Zg\x12\x03\x95\xa7\xb4 4\xa0\x09\xb0\xdc\xcf\
+\xd5\x06\xf8`@\x01\xd8\xac\x93\xec\xd7\xe3\xbf\x96\x0d\xd4\
+g\x00J\x98Y>\xff\xb4\xfcl\x80\xd8t\xa7\xf5\x1c\
+8\xdc&\xf3\xc51\x01\xa2\x0a\xddTH\xcfU (\
+\x81\xe5\x17\xf4\x00c\x1a=\xa8l~\xbds\xd9\xb6_\
+\x88\xd7\x1d\x7f\xa7l`09?\x00\x1c\x9fY6h\
+\x039wn\xb4\x06v\xd3\x97L\xf7\x98\xee1\x88\xf6\
+\x86r\xde\xd4b\xe7\x96\xe9\x22\x95\x08\xcc~{\xfa\xf3\
+\xd9\x0a\xa0\xb8\xf7\xaa\xf2_\x8a\x06\xa5i0{\xf1\x17\
+-~\xfc=\x87\xff*\xd1\xda\xd3#\xa3\xae/n\xc2\
+\x8c)1\xcdO\x184\x5c\xc2\xa0j\x15m\xe3|\x05\
+\xb0\xce\xeb\x88E\xf6\x981Z\x0e\xa1\xceK\x10i\xb2\
+tB\x05\xe0\xaeS\xe0\x0f\x86\xc06\xc0\xf5\xd2*\xf4\
+\xb8A\xdc/\x00\xf7\xe9\xeae\xf3\xf7\xfd\xc9\xb2A{\
+\xa94Zn60\x9f\xea4\xbad\xd0\xbe\xc1 \x92\
+\x10\x018\xf8}\x14\xeaL\x11\x10/\x9c~\xa5l8\
+7\x12\x174\x057\x8c\x86\x8e\x0b\x9c\x1bz]\xf5\xf2\
+\xfev\xa6\x19\xfc\xc9\xe1\xc5\x87\x17/~tm\xc5R\
+\xd1'\xb6\x98\x04\xacE\x89\x15\x1cT\x1c\x01\x03z\xc7\
+1\x8a\xfc\xa0\x8e\x03\xe8\xb5P\x00,\xbe?\xe7\xa5D\
+\xdd\xbe\x14\xe7:\xaf\xf8\xe5\xdc\xafnE\xc9z\xee\xf3\
+8\xd7\xd9\x85\x1e@\xc0\x9bWQ\xe7\x9e\x03_\x95\xf6\
+\x91\xd9\xe7s\xc5\xa7\x12k\x09\x8a\x96\x90\x00\x8b]\x00\
+\x00\xe8\x10#\xc3\x18\xdcW\xc6\xc5\xcf\x9e\xaf\x04oG\
+\xed\xc6`t\xee4\xf5\xdc\xfe2e\x06`\x8c2\xbf\
+\x17\xeb\xe3\x8f\x03dt\xa2/.\x17/\x8b\x93\xc4\x0d\
+\xfc\xaex\xc4\xfb\x8a3\xf8U\x8cM=\xea\x80y~\
+T!\x02\x00\xa6u\x03cR\xab\x0d\x8d\x07@\x83<\
+\xc8\xf5\xed\xa6vu\xde\xe1\xf7\xf6b\xe3\xf2\xa7}\x02\
+\xbdoaPq\xc7\xb0\xf5\xf9\x18\x0a\xf24\xccC\xcf\
+\xd3\xf9)\xbe\xf1\xfc$\xb4\xbb\x1e\xfbe\xec\xfa%C\
+\xe2\xecy\xee\xc5\xa3\xf91\x80\x87\xf5(\xbf$BJ\
+\xb3\xc0z\xf6\xbd\x00\x22\xfb\xca\xbdW?\x9e\xa3\xeb\xb7\
+?LY\xb0\x7f\xb5\xb8\xfa\xb3\xfd\xce_I\x943u\
+\xa1\xa7\x80\xa4\x87\xfe\xf8\xcfe\xf3\xc7\x7fZ\xd9\xd0\x0a\
+\xaa@\x998\xd9\xfe\xe8\xd6\x1a\x8cJ\x1a\x00D\xf9|\
+N\x80\xdb\xbe\xaf\xceE\xfe\x02\x80\x08 \xd5B+\xff\
+\xb6\xce\xe3\xe7\x9a\xf1\x93\xa94\x1d\xdf&_87}\
+\xe1t\xb7i\x0e\xd4\x8e\xaf>\xbe\xea\xf8\xaaE\xa5\xf7\
+*\xa5\xd2\xdb7\xc4\x83\xdd\xf7\xfeH\x94!z\xab\xb0\
+\xdeV\x89\xf6\x008\x08\x00\x02\xc4\xd1\xc2\xde\x8b\x09\x0a\
+0\x8a\x8a\xfe\x92M\x0c\xec\xf8\xdb\xb3={~=\x9b\
+m\x1a\xc4\x82\xea_\xbd'\xd7\xf3\xd1\xffC\xa2`C\
+\x13\xfd\xf3\xbd\x0a\x8f\x1b\xd4\xf8\xbb\x22W\x8f\xe1\x86C\
+\xe2?V\xfa\x0f\xbb1\x0e\xe7\xedZ#N=%v\
+\xfb\x1c\x89\xba\x0dx\xde\xb2\xc8\xd6\x03\xfd\xb6\xc3\xbcs\
+\xbd\xbcE\xa8\x7f\xc0\xe0\xa0\xaf\xbf\x0c\x80\xdb\x1cE\xd5\
+\x95\xae1h\x038\x00!uU\xdfz\xc8\xb2\x10\x7f\
+q\xa9\xc8^+\x1b\x12E\xfe\x9e\x11\xe5\xd2\xdb\x1ed\
+\xb3\x03\x82T\xd6\xe6\xc5\xbfV\xdc\xaf\xba\x8ad\x9d\xdd\
+\xe7\xec\xdegs\xa0s\xf6\xf2\xb3\x97\x9d\xcd\x1b\xea\xec\
+Fe\xf3rxI\xd9\xa0b-\x80\xa2A\x80\xf2\x1b\
+\xf1\xb0\x1ek\xe4\xc0{\xf6|L?{I<\x1e\xb2\
+\x88\x1dA\x16Q\x999\xe2\xa8l7\xf5\x9f(_\x90\
+\xe3\xa6\xceK\x08\x92x\x131k\xd5~\x01\xa0\xc4\x5c\
+\xe5]\x05U\x8f\xa7\xf7\x0f\xc5WE\xa7\xa9\xc9Y\xf7\
+\xd3\xb5\xcb\x86\xc4\x08r\x98\xc0\xbf\xa9b\x02\xdf\xdb\xe5\
+{\x19\x17\xa7\x97Z\xef#@A\x8fQ*\xd3\x8d0\
+\xea\xe5\xe5\x10\xf4\xe0e\x1c\x5c\xf7\xf4J(Ba\xef\
+\xc0Z\x82\xfa\xae\xb52\xd8*\xa8\xa1@wo\x1c\xaa\
+\x5c\xd6\xa5\xc0\xac{\xfc\xf4P\x09\x08\x9e\xbd\xd8\xb6?\
+\x042\x12\xa9\xb4\x96\xb4\x8a\xab\x8a\x84\xebQ\x89\xf6=\
+\x8d\x15\xf2\xb3\xd7\x1c\xb1\x9fv\x0e\xaf\x0f\xe2\xb4\x86\x08\
+\xd0;\x01\x0dE\xb8\xc7.\xa1\x18\xab\xd4\xaa\x94:H\
+\xa8\xeb\x07\xd0\x04\xc8t\x00\xe0 \xdek\x9f\xf0kO\
+[l\xebAKB\xea\xfbu\xcb\x0c\xe4\x1dR\xec\xe0\
+\xd3Z\xc1\xaf\xe6z\xf7\x89r\x07\x0c_\xbd\x02J\xdd\
+\x03\x1bU\xea\xd6.\xe0_\xa9c\xdb\xb7\x0el\xbd\xb8\
+\x11\xe5\xec\xef'QD\x9d\xa4\x96\xafUG\x85D\x00\
+\xa8\xc2\x94\x7f\x7f\xbak\xd9V\xc1\xa7\x82\xdd*\xdb{\
+\xcd\x14\x89\xafs#\x8c\x0c\x22\x90]\xb1\x0a\xb3h\xf6\
+v\xb3\x0d\xeb}\xcf\x94\x92\x80[\xd7\x11\x89\xa3\xe6\x0c\
+\x080F\xcek\x8f\x9b2\x17\x1e\xb3\xe5Y\x99+\x0c\
+`\xd0\xda\x02h\xf3\xfe\x01\x96\x9a\xc1\xf6u\x01\xde2\
+\xbd\xa3+\xe1\xbe?\x11&\x81xZ\xb4\x88>v\x05\
+(j\xe5]\xa1O%\xe3\xf0ue[+FS\xad\
+\x01\xec(\x95\xb4-\x88\x95\x09\xd0\xf3\xefO\x97-\xdb\
+4\x08\xa6\x17\x94\xcd\xaf\x8f/\xcb\x98\xb8\x8b\x17j\xfe\
+\x92`\x1f>y\x05\xae\xa7\x7f,\x1b\xa6j\xfcA\x02\
+\x90\x9f^\xac+\xaf\x87\xd7\x06\x18yu\x9e\xf3\x17d\
+\x9f\xab \xbe/\xcf/\xe7\x9e9\xed\x80\x1c\x95\x8d\xe9\
+\x11e\xdbt\x91\xa6V>\xa0l~}}\xd9\xf6}\
+\xb4\xee\xa8\xb4\x1e\xdf~|\xdb\xf1m\x19S\xfb;\x11\
+\x8b\xfd\xaba\xfc\xae8's\xaf[\x13C\xe2m\xfd\
+K\xc0\xafX\xb6\x00\x0c7^\xc4\x101`T\xc2\x88\
+\x9fUK\xc3\x9d\xc3\xe8\xb9\xd7F1\xa7\xca\xdd\xbd\xe4\
+\xa1&73%\xe3I\x0f\xf7*\x1b\xf6\xbf\x80\xde\x98\
+0@\x03\x06M\x98/\xd3\xad\xcb\x06\x15s\xe7\x84\x96\
+\x94\xf8\x91\xe3\x9f\x96\x0d\xcc;\x80\xb7\xd6\xad;\x94\x0d\
+-\x11\x19\x13\xd9\xfeJ\xfc\x22\xd1\xe1\xef\x01w\x0f*\
+\x1b\xce\xb1\x00\xa2\xcb:\x7f\xe4\xe6w\xbbU\x14c\x8c\
+6Hy\xcbo\x1a\xe2:\x89\x06\xe6\xc7\xc5\xb5B\x17\
+\x8d\x90U\x13\xe5\x8f\xd6V\xaf\x06\x1aoU6\xc4o\
+Z\xb7\x00\xf7\xcem\xd7-\x90\x0fu\xb6\x81s\xc0\x84\
+\xc4T\xdc\xbb\xfb\xde-:\x99D\xf9\xf4\x09e\x03\x00\
+(\xd1w]\xde'\xe7\xce\xf4\xcde\xf3s\xf9\xea\xb2\
+\xf9\xf5o\xca\x06Q/\x0c\x1d@[\xe2\x8b\xae\x84\xa2\
+d\x13\xc7\xbc`\x9dz\xd1\xf1\xfb.\xd1k\x00\x1f\x10\
+\xac\x95\x13#\x85\xbf\xdak\x03\x88{\x89\x08\x9b3/\
+.\x10\xdf\x11\xf1\x93\xa0\x88\xb3\xddG=\xfcw*\x1b\
+\xfc\x99\xf1\xc2\x18\x8c\xfc3?\x9fu\xde\x89\x95\xf1\xde\
+W.\x1b\xaecW\xb1\xc7\x04k\xc0\x8c?\xdf\x03\xb0\
+\x0a\x13\xe2\x15\x05,\xfb\x10\x00D[\xc1\xb8\xdc$r\
+\xa7\x0b\xcb\x86\xf8@\x02+\x1e\xf6=\xbc\xee{\xe3\xed\
+\xab0h;\xfe\x97O\xd9\x7f\xf6Y\xa8\xea\xa7\xff*\
+\x1b\x80_\x00H\xe26c\xba\x97B\xf0e\x86\xd6\x03\
+@\x0cm\xb6=u\xdfz\x03P\x88\xe7\xfc\xde\xbe\xe0\
+\xeb\xb9\xd9\xf7*\xff\x18w\xb4\x03\xecG\x05!\x80\x8f\
+\xcf\x1d\xf3\xab\x8b\xfe\x07&\x00\x7f@D/\xd3\x89\x9a\
+!\x06xp=\xfb1\xd9\x18\xea\x12kZe\xaf-\
+\xdb\xfc\xd1\xf1\xcb\xca\x86i\x0aa\x94\xf6\x94$\x80e\
+Z@[\xcb\xe4\xa6e\xc3\xfb\x03T\xbe\xb7l\xfe\xf3\
+w/\xb6\xdd7\x00\x88V\x1e\x0c\x02\x05\xcb\x00?\x0d\
+<)4\xf8\xf1~\xe3\xf8\xfay\xdd\x9f;\xdd\xa1l\
+\x09\x14\xd6\x1e#\xbd\xb6\x16\xa0\x07\xeaF\x0bP+\xbd\
+\xfb\xb0aC\x15Lp\xe1\xb0\xc1UT\xdcP\x14\x18\
+\x0fH`\xc8\x11\xf9\xe1\xf8n\xbeLv=\xef\xf8W\
+\xb3\xcd\x1b\xff\xf8\x11\xb3U \xf0\xf4\xd9~}\xd8\x98\
+\xfb\xf9\x94*\xf2\xae\xb7\xb6\xd5e\x93\xe0WO\xd8\x07\
+f\xbb8\x09\xc3M\x87\xf1I\x1f\xb3\xc8\xb4\xac\x01\xd2\
+G\x0e\x94#=\xfe*\xfc\x0e\x8c \xde\x1d8\xef\xc7\
+\xffTX\xf8\xbaa\x83Z\xb0\x18\x0aU\x1f\xfc\x988\
+\x90[\x041\xbf\xe3\x80$C\x9c\x1d\x0c*\xea*\xd2\
+zE\xf5\x04\xdb\xd0\xb5\x0c^\xb8\x05BM\x89\xa6\x86\
+\x9f9\xcdz\x80\xa7\xef/\x9b_/*\x9b__R\
+\xb6!q*\x0a*!*7\x1e{\xab\xe4\x9b\xb3\xac\
+\xc2\x099W\x89%F\x18J`W\xdcmP\x95\x87\
+\xf4j_\x8a\xca\x04\x08\x085\x18@@D\x86\xca?\
+\xca}S\xf2#\xe6\x03 \xe8J \xd1A-\x04i\
+\x15h\x91\xc2\x8c\x01\x13\xa0\xf7\x94\x80$\xfa\xc6\x82t\
+\xaf\xa6\x9e\xc7h\x00\xb4\x18`Daz\x1c\x1b\x91!\
+\x95\x12S\x00\xa2u\xd0\x81\x9dD\x22T\xe5\xd3\xe7\xae\
+\x22\x8d(\xe0\xa7\x97e:F\x02\xbd\xee\x85\x83EI\
+h\x8d\xb9\x82\x14\x1a[\xa8R\x9b\x00\x97\xa8SS\x9d\
+Q\xf21\x00P\xc2\x8ck#.G\xd4'\x89\x0dj\
+xS\xf2T\xac9T\x08\xb3\x80\xd8\xbe\xd9\xb5\x86\xb8\
+?}0p\xfc\x0e\x0e\x07\x05?\xb5\x17I\x19\xb52\
+.\xdcD.\x8f\xdfT6$z(\xa0q\x90]A\
+\x92(ZG\xc4\xb2\xce/\x1b\xd6\xa51E\xf1c\xdd\
+\xeb\x1f\xe6K\x1f\xec\xc4\xcaT\x16Q\xe9SA\xeb\x80\
+Z`\xe2@\xd5b\xa0\x12K\xed;\xe2l\xad\xe2\x9d\
+\xfb\xd0\x0c\x22\xfbH\xcf(\xaa\xa0\x80\xd3\x14\x91\x00v\
+\xc7\xc7\x94\xcd\xee\xe6\x91e\x83\x8av\xd6Q\xab\xbb\x1b\
+\xf7&q4U\x00\xb5\x5c\x05\x826\x86}o\x1c\xd1\
+W.\xb6\x8d\x17K\xa0\xd8\xc0\xa0\xebv\x80\xc5\x9f\x10\
+\xbd\x92\xa0\xf6AL\xcd\x7f/ff\x1d\xe7<;|\
+P\xd96\x0d\x00C\x0a\xe5\xbe\x19G\xa1\xf4u\x05\xa5\
+Z\xcb\xbe`;8M)\xc1,\xf2\xef\xf4\xfe\xf6\xfa\
+\x8a8\xad\xe7v\xc9c\xca\x86\x0a\xbc\xca\xb7\x8a\x03f\
+\x13 \x17\xa3\x22\x94\xbe\xfe{\xad\x19_Q\xb6\x8d\xc1\
+\xa2m\xd0\xcc\x01\xbf\x0f\xc8\x22\xca\xaa\x15*\x09m\xef\
+[\x95\x19\xcfI\x0bSZ\xad\xa6\x7f-\x9b\xd7\xc7\x05\
+e\xc3\x1c\xf8\xcf\x0b\xa3\xeb9y\xde\xaf\x0ap\x1af\
+PI\xc9.b\xb2\xd7H\x85p7\xfe\xa9\x03\xff\xdf\
+\x8b\x7f\x01\xac\x00\x92\xbe=\x01\xbe\xf3=\x00\xd7\xe9\xe3\
+\xcb\x06\xeai\x98=\xa7w\xac\x95\x1e\x01\xeb\xf1ae\
+\xf3\xebS\xcb\xb6\xde\xee\xd6\x1c\xb0\x8f|\xfe\x8d\xcf\xbb\
+\xd1\x12\x07T\x1a\xf21\x01\xf4n80\xd9$@\x12\
+V\x1a\x18\xd6_\x18?\xd3\xe3\xca\xe6\xcf\xfd\xfc\xb2J\
+H\x22NKM\xff\x900\xe2\xa6\xb3\xcd\xdf\xe3\xeck\
+\xcb\x06\xe0N\x80*\xd1\x02lJLQ:\xc5\x09\xa8\
+\xda\xe9\xednq\xab<\xcf\x16\x93\xbc}\xd9\x00\xb0K\
+\xacB\xfd\xef\x04\xcb\xf8A\xc0%\xea\xb3D8\xda*\
+\xc4+;\xd0\x177\xf1\x8f\xe29\x1a\x1c\xf7)\x1b\xae\
+_|\xa8\x90\x83\x11PL\xb5GmS \xda_f\
+?/\x22\xcf\xbf4$\x9a\xd5[\xff\x98\xc5_\xbel\
+\xf1\x977Ydq[;\xa3\xef\xdbuR\x10\xc2P\
+\x12\x8f:\x97\x89\x99\xaa\x10\x8a\xdf\xcc#\x17\xc7\x89k\
+\x00#\xe2b\xd7c\xfa\x14\xa0R\xa2\xbc\xd7pq\x8e\
+Y\xdf\x0aVZ\x04$(\xfe\xbbD\x1fsS\x02\x09\
+\xa8\x00\xe0\x06X=\xdd\xa3l\xa0\xaa\xe7\xbe4\xc3\x80\
+\xbfV)\x95X\xd8\x97\xfc\x93\xfb\x05\x08O<8\xc7\
+!\xb3\x0d\x05\x06~G\xc2D45\xadF}^\xd3\
+@\x88\xa6E\x8bb\x8b\xfb\xe4\x0b\xceO\x15\xd2\x14\x1e\
+\xda\xafa\xb4j%\x8a:}\xc7k\xe3\xd8\xef+\x0c\
+\xf9\x02\xa0L\xc2\xae5/\x9aP\xdd\xb2\x82\xe1\xacp\
+\xc9OZ\xe7\x12n\xf1\xb88\x09\xa3\x16\xd5\x5c\x9e\xe0\
+{\xf9\xb3\xe7*\xbe\xd9S\xe8\x01\xb6\x80q\xad\xa8\x01\
+\xf0:Q\x07D\x8b{\xec?\xfe\xd6\xf7\xcc\xf9\xd0\xe3\
+\x03G\x8d\xb2\xb7\x0c\xcf\xaf\xa2\x8e\x97\x0e\x09\xa5ul\
+?\xf0O\x12t\xff\xde\x9f\xe5#\xceQ\x00\xc2^\xcb\
+`?\x0d\xc3}\xde3%\xdc7\x9f\xbf\xd3\x94k\xa0\
+\xc4\xf3\xb5~\xc5S4\xa3\xd2j\xd8c8\xdd\xb7\xbd\
+\xd8\xa0D\xd9\xfd\xc4\xe8\xd4\xfa\xf9\x13\x8bm\x95v\xda\
+s\xf1\x0b\xc7\x17\x95m@\xc0\xf4\xd6\xb2\xa1\xd5\xd4\xba\
+Ne\xbe\xef\x8fua\xdf\xfb\xde\x0aB\xe2\x87\x8c\xbd\
+\xec8\xdf\xf3\x1179oh\x88\xd9_\xfcJ\x80\xa4\
+ss:\xfc\xfe\xd3\xfb\x87\x0a\x9e\x8ab\xc6o4\xd5\
+\x0a\xb5\xd0\xc2\xaa\xc7w\xe1\x10\xd8\x96;\xba\xcb\xff\xd0\
+{\xbfS\xf5\xec\x9e[\x09\x811n\x1et6\xf6\x82\
+\xfc^0\xcc{\x8dx\xd7\xf2\xb5~q8\xf0<`\
+\x1b\x5c\xef\xd38\xb5`\xa4zW ;\xf6\xe0U\xfa\
+\xf9ICe\x9d\x03\xaee\xf0\xe1\xff\xc3\x86\xf7\xfd\xeb\
+j\xc7\x1e}<\x80:\x06\xdf\x9c\x0d2\x8eUs\xff\
+\xbc\x7f-\xe3\xb7o\x88r\x8fi\x92\x08V\xc0{\x9f\
+\xe1\xf7\xab\xf3\xfbK\x87\xcf\xad:\xe0\x9dR\xa9~\xd5\
+0\xf7=\x07\xa8q\x7f\xf3\xb3Y\xa9h(\xaf\xff\xb1\
+&\xbe\x87\xf7\xaf\x81\xef\xf4\xbf\xca\xe6\xd7E\x16w\x0b\
+\xf4 \xd1\xd3-\xa7O\x9c>q\x18\xe7\x85\xeaN\x8c\
+(\x01\xc0t,\x1b\x10,\x1bZ\x0f\xe0\xc7.z\xa2\
+k@q\xffA$.\x07\x15\x15\xf0\xfe\x81\x00\x87\xfa\
+\x86\xd2\xde\x15\x96ld\xcc\x0d\x09J'\xdc*3\xb9\
+/=\xee\x8bhM4\x02\xbag\x12@@\x84\x05\x00\
+\x10FA'\xf8D\x06%\x12\x19K\xc8Q\x1f~3\
+-\x09\xef^\xc5\x8c\xfa~\x05(\xf0}\xcc\x99V9\
+\x9b\xff\xff:\x9e\xf0&\x01jn\x93\x00\xed\xd6A\x96\
+Uvo\x16\x06D\xc6w\x99\xe7\xda\x8e\x95\x08\x1b\xaa\
+\xa6\x8a\x07\x84\xf2ze\xdb\xfe>\xfeC\xd9\x00\xc4%\
+aiq\x12\x8e%\x07!\xb1\xc8\xee\xc1E1\xf3\xb9\
+\x18 (\xa7\x1c\x99\x84_\xc0\xa95\xc1\xfb\xf3\x13\x0e\
+v\xfe`?}D\xa0A,\xacT\x9c\xffa\xa1\xea\
+?\xbc\xa8\xfaM=\x0d\x85\xb9+\xaf\x12\x868\xfe\xe3\
+\xcb\xcb\xb6^\xe5f\x14\xa9\x9c98U\xf4%\xcc\x02\
+7\xc0E\x0e\xf0V\xd1'\xde\x86\xc1\x01P\xe5\x17\xf5\
+|\xaa\x1c\xe8\x09\x13 \xf9\xde\x90_b\x5c\xd4\x85\xd3\
+\xa2\xd1\x22\x7fD0\xf5\xa8\xa2D\x0a\xdc\xbd\x9f\x00]\
+k\x81\x96\x1bT\xb4<\xff\xe37\x96mj\xef\xed\xff\
+\x1c\xa8*\xc9\x12lSY\xc2\x04i\x80\xc4A\x85a\
+%\xe0L\xa2{xV\xd9\xd6\xab\xd6=\x95\xee7\xff\
+,\x81P1\xb9\xe9\xd2<\xd3\xe7R\x8f\x0fM\x8f\x7f\
+\x8b\x03\x02\xfa0\x19\x12\x90MO,\x1bz\xa4\xd3\x83\
+\xdf\x81A\x00\xf1\x06N<?\x01+\xb1@-F\x98\
+0\xe9\xc9\x9c\x9eU6\x8cM3\xa6\xd1\xb4\x84\xa8\xc7\
+7cI\xeb\x89D$\x80\xa0\xf5\x0b(m\x06\x0e@\
+M\xa2\xe8|p~\xab\xf4\x01\x1c\xadW\x14\xf3\x1b\x97\
+\x0d\xbd\xb7\xa9\xf4\xb58\x11\xcd\x00\x09n\x02\x18\xdf\xdb\
+xW\x9f\xd7~\xe3o\x13\xb8%Qh\xe0\x95Z\xbe\
+\xcay\x02\xac\xd3O\x97m@t\xef7\x81\xa3V\x8c\
+_><mI0?r\x0e\x87?r\xa08\xe7s\
+\xbb\xb2\xff\xc6\x5c\xc7O\xaf\xeb\xbb+\xb37M\x80\xf6\
+\x9eT\xc0>|'\xce\xf57k\xe2t\xba\xef\xe9+\
+\x17m\x80\xfd\xf8\xbcZE\x9f3\x00{\x12Y\x80\x18\
+\xe6\x0e\x80 \xe7\xc3\xf4\xff\xd3u'\xe0\xda\x95U\xf9\
+\xc0\xbfw\x7f\x1f\x0e\x88\x80b\x0e\x88c*\x88\xe6\x08\
+N\x19h\x96\xe6\x90\xa6\xe6H\xe6\x00\x8ah\x81S\x9a\
+3\x99\xa9Y\xe0l\xe6\x08\x9a\x82b\x99\x99\xa6\x19\xce\
+\x16\xce\x9af\x8e\xfd\x1dp\x224\x09\x9c\xd0o\xbf\xff\
+\xbd\x9e\xbd~k?l\xe8\xac\xeb\xe2\xbd\xce\xc79\xef\
+\xd9\xef\xde\xcf\xb3\x9e\xb5\xeeu\xaf{}e\xf8\xf2\xf0\
+\x95.\xb1\xcaDv{x\x06\xceT\xba\xdf:\xaf\x9b\
+\xf1\xb3\xe3\xe7\xc6\xe9:v\x1e\xb2\xf3\xa6;\x0f\xe9\xd4\
+\xa6\x9d\x8f\x1f\x0f\xeb(\xa0=\xb3q\xd3\xc5[Z\xc4\
+\x00\x03\xd6\x11qM\x00@\x02\xe5m\xde\xfc]\x17 \
+\xa5\xee\x9b\x04\x13\xf5\x99\x86\x0f\xca\xacJ\x94\x04\x93?\
+\xc1,\x11\xbf`Rx\xbe\xd7i\x10\xcb\xec\xcf\xc7\xce\
+\xcf\xa9D\x8b\xb3\xb2\x15\xb5DJ#\xdc>qa\x06\
+\xd0v\x100o\xff{{\xf6\xf6\xacE\xcb\xa8\xa8\xae\
+!\xc2\xf7\xb5n\x5co\xc6\xab\xdb\xbdR4\x16\xa0\x06\
+\xd8\xe3\xc7\xd3O\xd7\xfd\xa0\xd5A\xd3\xc5\xe7\xe1\x07]\
+\xbfsN\xc0\x8eA\x82:\x9e\xfb\x00\xd0_\xe3\x07\x01\
+\x89\x00v\xe7Aj\x11\xd4zwn\x8a\x9b\x01\x0a\xeb\
+\xf84+\x86\xa5}bZ\x8a\xf1\xd0\xc6kJ\x98\xec\
+;\x09\x888HaAaK\x01*\x81\xdc\x12=\xa3\
+] \x81s\x8e\xe7\xfb\x17`\xb0\x9eg\xae\xe0\x82\xfa\
+\x9fq@}N\xe7\xff\xea\xe7k\x1fjysnd\
+E\xb4\xc6\xe4\x02\xfa\x9f=\x8b/\x0e\xfb\x86-\xc0\xc5\
+\xf6\x91a\x1d\xf0\x90@n\x9d_\x18rY\x90\xa98\
+\x9e\xa8 \xbf\xbd\xd2(*\xa0P\xc1\x03\x03\x8a\xe6\x8a\
+\xb8R+\x1em\x02\x091\xe6\x02f\x821~\x12^\
+\x15a\xebL\xfc\x87\x89\xba\x1e\x87g\xac\xa4\xfb\xe4y\
+\xa7\xdf\x1f\xdf\x1b\xd61\x143n\xaa\xe7i]\x8b#\
+\xd6\xaf\xfe\xfej\x9c\xfb\x85\x12O\xfb\xc4\xdf\x97h\xbb\
+\x8f\x001\x00\x03?\xe7{\x05\xe9u\x8b\x87\xf8\xd0z\
+\x11\x9f\x01\x9c\xe4\xb5g\x87u\x05\x0b\xad\x9e\xc48\xed\
+\xbb\x15\xd3\x02\xd0WS;\xb4\xea\x11\xf1\xcd\x169\x80\
+\x0f?\xbb\xfb-a\x0b\x13m\xf8\xe3\xb0Nk\x85\xc6\
+\x14\xe6\xa9u\x88)+\xae\xa6\x85g,\xa6V\x02\xe7\
+> C\xdc\xafp\xa7\x853\x0b\x06\x0a\x5c\xfe\xfe\xae\
+J@S\x94\xa8(;z\x0c8@\xd4D\xe3\x91\xf2\
+FT\x22\x97sm\x89o\xad\xe7\x957\x8a\xf2w\x96\
+\x1e\xb4R\x9bD\xa9\xf4\xa0\xf4\x96\xc6\xd7\x98=\xa6\xb7\
+\xe9\xc6;y\xe0k\x91\x92u\xc0\x08\x10HU\xfc\xda\
+\x08*\xf9\x01\x1b\xec\xdb\xf5\xe4G\xd8t\xb9\xee\xfb~\
+>\xf7\xe5\xba\x1e\xa7\xf8T\x97Y\x12\xd1\x12\xf3\x0b\xfc\
+\xee\xac\xee\x01:\xe0 o\x11F_\xb9[\xb8\x91\x1e\
+\x7f 7\xc2\xb7\x96\x83\xa7U\x10n\x93\x15\xf8\xabv\
+\x14\xcfDx\xabb\xf9\xc2\xc9^\xb4T\xc2\x88\xa2\xd4\
+\xb82\x95p\xbd\xa1o\x98\x0f\x8c\xc9-\xb5\xb9\xac5\
+/7UAK\x15<{\x12\x87\xdd\xc3/\x86\xe9~\
+\xed\xbcj\xd8\xc2\x0c\x18\x0e\x0e\x9b^o\x176\xbd\xfe\
+w\xd8\xd2\xf3R=Pz`U\xde\x1c$\xd4\xc6S\
+\x9d\xbf\xd4\xfa\x05T\x1c\xab\x83\xc6\xab^6\x8e\xd6x\
+\xaal\x0d(F\x00@ +\xc8\xa8?S\xf8\xdd\xc6\
+&m\x1e\xbbyL\xcc\xfdl\x95\xab;w\x8c\x15\x07\
+\x89J@\x1e \xc5,P1\xa1=\x90\x095\x84\xbb\
+z\xc5\xdf\x91\x89\xdf#sn<\x00\xc2u\xdd)\x19\
+\x14IY.\xca\xa1\xcf\x91\xc0E\xf5,~#\x1d\xbc\
+\x0a\x8c\x00\x8c#\x14\xe0\x9f\x9b\xa2U\x12*\xc0XR\
+\xe2h:\xd8\xb7\xa8n\xa5\x8a/\x90K \xaa*w\
+\xc6\x8b\xbc \xac\xab$K8U\x0c\x1dD\xa8Z\x90\
+_\xe3\xd28(\x88&\x15\xe2\xf5A\xe2}P\xee|\
+N\xd3\x01\xae\x15\xd6\xf9\xa9\x13&\xafpB\x02\x85'\
+,\x95t\x89W\x05\x12\x02)S\x01RL\xb1\xb4\x0f\
+P\xa40M\xcc7W\x81S\x11\xb0\x1e\x89Vf\xeb\
+L\x05x\xd4\xbcU\xacT\xdc\x05.\x10}\x9fK\xc2\
+\x9e\x14\xdf\xa2@R\x8f\xfeF\xbe\xba\xdf*\xc3*!\
+\x18)\x12l\x7f\x87H\x1f\x119\x07\xb3\x16\x0e\xad,\
+\xa8\xfcZ\x0a\xd2\x7f\xa2\xda\xd6\xbeX\xf5\xbc\x96\xf8 \
+&\x89\xf7\xcf\xf5A\xf4Qez\xf8\x87\xb0n\x1d\xab\
+\x90\xe49]\xe3\xdfLk\x10\xf0X\xc7\xa8\xc6\xd1c\
+~\x8b\xa5\xc7\xb94\x0e\xbc\x11\x80%\xefg%\xea\xa9\
+R\x1d\xde\xb5QJiA@\xd2\x89\xf7` \xe4\xfd\
++\x11D\x15?\x8c'-A\xc6\x92\xde;\x999\xd6\
+g\xf6N\x0b\xec\x04\x16%\xca\xb3\xa6\xe8\xa2Rz>\
+Yip\xde\x96\xe8&\x00N@,\xb1V!>2\
+\x19[\xc9P\xaa\xcaT\x02\x07\x95xK\xfcQ-]\
+\x07\xb5\xfe\xf4\xdbU\xf9S\xc1|@VhQ\xf8?\
+\x95\x81\xdd+v\xbcr\xc7+\x17J2\xcd\x88)|\
+\x9d\xef\xff\xc76\x1f\xdd|\xac\x03\x1a\x1e\xddd\xd1\xe2\
+\xfcn\x95\xad\xed\x9f\xcd\xe3\xe6Z\xb4\xf0\x8b\x06\xd0\x5c\
+<\x00\x9a\x12Y\xca\xca\xba\xfb7\x9e<\x9e4\x9e\xdc\
+\xad\xcf\xeb\xcc\x81-\x8d\x08L\x8c\xcdS\xe6\xc4\xaf\x18\
+_\xbf\x9f\x89\x8b\x00\xee\xfeYA<m\xc7\x9bZ\xe5\
+<U\xf4\xab7_\x8f\xafD\x95F\xd2us<\x96\
+\x96\xbb\xa8\xb0\xbf\xadk)\xb9\xecf\xbf\xc6\x0c\x0b\x98\
+~\xba\xee\xf11\xe3c\xc7\xc7t\x15\xac\x1b\xcc\xf7a\
+{\xbf\x99\x09\xb3}\xf9\xf6\xafC\xfct{\xe5\xb0\xee\
+\x1c\x00\xa0\x13\xbf\xc4\x00\xb2\xcf\xf3\xb9T\x8f\xab\xd6\xbb\
+\x97\x85-s\xd1%X\x0d0|\xe52E\xa8i,\
+M\xfbt<2\xac\x1b\xef\x87\xe9G[E\x859\xfd\
+\xe3\xf6\x97\xc3\x96\xc0\x9eV\x831\xc1%>zZ\xd8\
+E\xf4\xe6\x02|%\x04\xc4S%\x02\xd6%\xf1\xd4\x1b\
+\xce\x9a\x09\x05\xdc\xf89\x14\xee\x0f\xa4\xf6B\x8a\xd1\x8e\
+7\x08k\xeb\xe1\xb0X\x0fDQ\xab\x10u\xe8\xf6\x90\
+\xed!\xcbx\xbeP\x0ahZ\x01Z&\x00\xa5*\xba\
+\xfc\x0a\x15u@(\xc6\x85x8{\xac+a\xa0z\
+O|\x98h\x1a\x86\x90\xd6\xae<\x07L\xa7\xa9);\
+\x12Qba\x00Y\x15\xc9l\xc9\xaa\x04R\xc5\x1bC\
+VA\x88\xdfM\xc0\xab\x12+\xe7\x918Z\xe5Y\xa2\
+(\xe1\x5c\x8b\x80\xbb\xffD~%\xf0\xc4\x0f\xd3?W\
+b\x06h1\x9eVK\xa0\xca\xab\x84\xc7\x94\xa5l\xb1\
+\xb8P\x22\xa7\xe0f=a\x12a\x08\xbc1\xac\x03\xc8\
+\x8f\x0e\x9b\xbe\x7f\xe5\xec\x9f\x8aA\x96\xcc\xaa\xf1\x94\xb0\
+\x04\xc2\xee\xd6%\x84\xe6\xc0\xcb\x7f|\xee\xf4\x075=\
+E\x85<\xfdZ1;\xc5\xf9\xces\xe7= \xc1\xfa\
+\xd2\x22$\xf1\xd7\x02\xa5\xd0\xb1\x16#\x07\x90H\xd0\x15\
+R}Y/Z!\x1e\x18\xb6\xb4\xf0mO\x0d[*\
+\xd1\xe3ya]%\x1b\xe3\xd2\xfb\x8a\xc3V\x89}\x01\
+\x02+\xc0\x8b(j\xc5y\x0a<\xe2B\xeb\xd2\xfb\x03\
+\x00\xe4k\xfc\xec\x9aI\xb0\xae\xc8\xf3\x1f\xbew\xbf}\
+\xbffX\xac\x99\x0ak-\x01\xf7_\x1ei\xbd{n\
+\x98\x9b\x8f\x0d\xeb\xfc\x96W\x89\xf8\xaa\x901\xdc%l\
+\xba\x9c+\x85M\xdb\xe0\xd7\xc3:m\xb6\x9c2T-\
+\xe8y\x1fJ\x83C!\xd5\xb9\x81\x01\x04\x90\x93o\xd2\
+h\xe0G\xf9\x01y\xa3V\xaa\x04\xd6\x01\x0f\xbb,P\
+\x09\x9b\x9e\x85zc\x89pRP\x9a\x18\xcfm\xbbq\
+0\xe6\x15\xeb\x0du\xe3<PHT.\xb8\x12\xf3\x81\
+`\xa2\xb6\xf8\xf9\x14\xb5+\xf1%\x223q\x15\x97\xed\
+\x10U\x00\x83\x03\x85c\x88\xff\xee\xd1}\xef\x01\x13\xf9\
+\xb1p\xbcrP\xc4\xfd\xfa\xf1~\x97\xec6\x9e\xde\xfe\
+x\x9f\x9f\xb7\x8a\xc2d]om\xfe{sW\xe6W\
+\x1e\xd0m`\x1b)\x08\xd8\xef\xcf\xeb\xde\xabSu\x8f\
+\x03\xee\x06\x99\x18\xbf9\xc5G\x1e\xdc\x8d)\xd3\x83K\
+]\x18\xb2\x98\x89\xcb\xf0\xe2y\xbc\xd1\xe6\xaaI\xdd?\
+{\x1eg\xd7\xea&WmH\xd2\xec`U\xf2R$\
+ks\xf7\xb0Ethx\xfe\xf0\xbc\xe1y\xd3\xeb\x1b\
+\xc3\xa6\xd7\xa3\xc3\xa6_;/lz}J\xd8\xf4\xef\
+7\x0b\xeb\x12\x7f@\x03q2S\x04\x00<\x1cp\xf6\
+\xc2U\x85\x9e\x88\x99\xb9\xd1\x99\x98\x103,DVE\
+.\x91\xec\x12\x11\xcb\x03z\xf3\xa7a\x8b\x1ap\x01\x1a\
+\xc1\x1c\xb8F\x13\x89\xb9f{=0\x0f\x96\x877\xab\
+\x83\xaf\xb4\x03\xf2}\xf4T\xea\xc5\xad9\xdcO\xbe`\
+@Y\x1a\x04\x00\x18\xbd\xbf*\x0e\x8fi\x16\xcfe\xfe\
+\xfd\xeci\x1b\x1e\x1c\xd6\x1d\x8c\x80\x1e\x95\x17\xe3{8\
+N\x8e\x16\xc2g\x9cXRPkL\xd0'r\xbc_\
+\x8e\xa7\x12HLn}\xee}\xcd1`\x9eG\xa9\x8b\
+S\x15GEN\x07nnr\xed3\x0e\x15\xa0\xf6\x7f\
+\x8c\xd3\xdc\x9e\x15\xd6\xcd\x9f%\xaa\x02Q\xe68\x1d(\
+*\xd1(\xa8\xf6\xcb\xf3\xe7\xca\xd3v\xef\xb9b3\xde\
+#\xacK\xdc\xdf\xd6l\x09\x8c\x1c\xa8\x0e\x00\xc8{2\
+%*P\xc9J_Q\xa2\x8d\xb5\x93X\x13!\xcd\x03\
+\xb1z\xbb\x00V\xf7\x08[D\x1cK\x1cR\xe55\x13\
+\xcbV\xb9\xbcZ\xa7\xdel\xbf\xaf\xb5R\x1c\xfc\x02\x9d\
+\x9bd`\xf3\xc3<\x80T\x86Q\xbc\x92\xc2]\xc0\x1a\
+`*\x99!u`fbY\x01%\xbf!a\xf4y\
+\xf3\xe7K\xcc\xd3\x01$\x00\xce\xfbZ=\xf6\x98\x0b\xc6\
+\xfb=/\xac\x0b4\x1d\xfc\x12\x10\x09\xb3\xb1V\x02.\
+\xe2\x98Y\xe9\x1c_\x1e\xd6\x1dT\xfcg\x02\x1d\xe3\xa7\
+\xc2\xa6\xfd\xf3\x9ba\xd3\xf7\xfb\x85-\xfb\xaa\xc6\xa8I\
+\xfciyd\x222\xdc=\xacQ\x88_\x1b\x14b\x0c\
+\x8a\xe9\xae\xcd\xad7*\xc4\xc6\x8eR\x037\xe7\xdb\x01\
+\xeb\xb9\xfdOV\xca\x12h\xd4\xf3\xb9y\xe7\x0c\x04\xb6\
+\x96\xb5\xe9\xfb\xf1\xadaKE\xdd\xf9\xb1\x9e+\xbd\xf9\
+\x9f\xb0E;\xa5(\xa9z\xbci\x82$cJ\xc25\
+\xbc>\xac\x1d\xfc3@G[\x86*p\xf6>\x96\xbf\
+EU>-\xc7\xd3e\x00=\x5c/li\x0d(J\
+0`\x96\x8a\xf8\x893\x05\xb2*\xa6'\xe5\xbe\xcb\x80\
+m{\xcf\xb0L\xf4\x1f\x95L\xb1\xd7/\x22\xa9>g\
+\xf36\xef\xed\xb48~'lI\xe4\xec3\x0c*\xbd\
+\xd3z\xe7K\x842\x13\xb1\xf1\xa5\xe3K\xc6\x97\xb6\xfb\
+svc\x94\xd9\x07(\xed\x80v\x158-\x05\x00P\
+-#\xdf\x0d\xeb*\xdf\x02V\x95\xa3\x04\x8a\xda\xb9\x19\
+@\xc38\x03\xcc\xc5\xb4x\xde\xf6\xc4`\x1a\x0d\xef\x0b\
+k\x95\xe3\x9bF\xe5x|\x7fX\xbb\xaeyJD\xf6\
+\x04G\x1a\x1eb\xc7\xe3\xe3\xc7?\x1a\x1f\xbfT\xd4w\
+\x1e\x1a\xd6\xf9\x0d\xfbA\xc2&\xbe\xe2\xef\x00\x96\xb4G\
+\x00\xcb\xce\xd3L\xf8\xc6\xef\x84M\xaf\x0f\x0f\xeb\xc6^\
+f\x80[\xd3\x1ar\xcex%\xbc9\x8f\xbe*\x85\xa9\
+EQL/-A\xeb\x16>q\xa4\xc0U\x9c%A\
+\xd2kL4\x12\xe5\x9e\x1f5\x95Eb\xe1<\x14\xbf\
+\x99\xc2\x94\xd7W\xe3\x7fUlQbU\xd4\xf8\x7fS\
+\x15\xbe\x90c8\x7fg\x06\xd4\xa6U8\xfb'\xd7\x87\
+Y\x86\x22\xdc\x03A\xd7\xed\x12B\xfbE%V\x02C\
+CD\xeb\xc9\xc3\xb2\x05\xc8\x97\x84\x0f\xe3\x22\x0b\x1e\xdb\
+\xab\x84uS5\xfc\x5c\xc6\x83\xb5\xae\xcde\x07\x9cJ\
+\x5c\x88q;W\x96\x96\xa9\xc6\xa0\x9a\xd2\xdby\xbc/\
+\xc6\x80\xde|\x95P\xf7{-\xb6&Q\x03 \x00\xc0\
+\x8d'\x5c\x8b\x06zN\xfc\x12\xad\x1f\xd4g\xe7\x86\xfc\
+\xc1\xfb\x03\x00\xacs\xeb\xdf\xbe\xf6|\x00\xe3Z\xb8\x88\
+\x80\x1e2\x03=\x0a9\x05\xf0x~\xf9s5\xadI\
+\x02(\xae\xd1\x9ah\x8c\x9e\xe9\x15k\xf1^\x80\xb2\x82\
+\x08Q;\xc0m2*kzG\xfa\x11\x1a\x0b\xb5~\
+h\x1f\x01\x1eiJa\xa8=9\xack\x91\xfc\xb7Y\
+\xb4\xbb\xc4^3N\xa8J\xef/\x85u\xefg\xea\x1b\
+\x7f\x86A\xa2\x00\xb3.\xbc\xd8\xf7\x12f\xaf\xd6\x93x\
+\x100'Q]k\x00\xd8\x07\xde_\x0b\x00&\x03\xbf\
+%\xaf[\x8f\x1d\xf4\x5c$\xf8\xfd\x14\xa8+v\x09<\
+\xc0j\xa5\x09\xb0\xfd\xdf\xb0\xae\xa5\xc3u[\x97\xce\xe1\
+\xf5t\x0b\xd7)\xbe\xf5\x8aQ\x9e\x00S\xb5*Y\xf7\
+\xa1]\x17\xda\x0a'\x87-\xad\xcbM\xcb\xeemK\xa1\
+m\xfc`X\xc7\xb0\xc6L\x96\xef\x88\x93]\x9f\xcf\xe9\
+{~U\xc1MK\x80\xb8m\xcdPr\x7f\xb2Uh\
+W\x9b\x8f\xfb\xa7\xc9\x00\xf8\xb5\xdcHw\xc9\x8a\xecu\
+\xba?\xc8\xf1\xa9\xbcRQE\xb52\xaeKB\xaf\x17\
+9\xc7zU\xc51D\xc6\xfe\xabC\xeeb{]=\
+\xbf\xbf\xc9\xb2\xe1\xa9\xc97\x11\x9c\x7fN\xc7\xf7\xc9\xac\
+\x08\xf5\xaa\xf8\xa8\xf7z\xf2\xd7@\xc0\x9a\x12\x22q\xb1\
+\x90\x1dT\x0e\xa4\xbe\x15a\x8f\x95\xe8\x9f\x1e\x7f\xe2\x88\
+?\xeaD\xd3\xe2\xb7/\x9e\xe2z\x97\xeb\x00\x87X\xc6\
+\xff\xdd!\xa6\xa8%*\xd9\xa8\xc1qL\xee\x95H\xef\
+c\xbb\xca\x06\xca\x99\x00\x11\xc2\xa9\xd2\xf6\xdcL\xa8%\
+\xa0\xc6\xde%\xd2\x5c\x89\xea\x1ea\xdd\xfbfe\xa7\xd4\
+)3P/$\xf5u\x19\x80%\x15}xa\xd8\xf4\
+\xfa\xcc\xb0\xe9\xf5g\xf3\x1c\xea\xaa$fOLQ\x95\
+9\xe4\xec\x15\xadqq*\xf5\x18\x14\xc6Ca\x90\xa8\
+\x98\xa7(WQp\x88\x06\xd9\xb0*\x04\x1c\x94\x83\x0a\
+5VBu\xd7\xe9*\xee\xdaz\x0f\x1b%\xd1\x5c\xfa\
+Ru_\xf5N\xd6\x5cd\xe2\x85z\xec1-P\x8f\
+\xa9\x87\x13\x19L\xb1;\xda\x17\x9b\x0fm>?\xa8\xa7\
+\x02\x00\x00 \x00IDAT\xbc\xf9\xf0\x02\xb0\x14\x10\
+@\x9c0)\xc1\x85\xec\xeb%\x93\xc8\xda\xa8\x09\x00\xf8\
+\xfc\x11&\xb6\xf9\xa2\x97\xca\xde\xfd\x0c8$\xce\xdb\x8f\
+\xcc\x0e\x80\xc3\xab\xc0_/\xf1Cs\xbf\x02\xb6\xeck\
+\xe2b\x80@T\xde\x044J-\xd9<y\xa2jz\
+\xc6\xec\x1f\xbd\xe8\xd9\xb3mZ\xc0\x85\xc6\xa090\xd2\
+A\xa1H\x15B\x0c\x10\xb8\xce\xf6\xda\xdbkO\xdb\xfb\
+\xbaa\xa9\x09\xf2\xe9\x0ei^O\xcbP\x11JG\x5c\
+T[\x94\xa8\xdcw\xc3_\x86-=\xf6T\xa7U\xb6\
+P\x98Q\xfa\x8b\xc1\x80\xb2\x07\x10\x00<Q\x0bO\x06\
+IU\x82$p\xa8\xc2\x19(l\x8e\x08\xeb\xd4\xb0\x05\
+@\xd65\x0a/\x91\x1c\xf3\xd9\x01\x01\x02/\x80\x8d\x03\
+!\xd7YUn1L\x88\xbb=!\xac\xbb_4G\
+hq\x10\x91\xcc\x84\xaf\x12\xa3\x04\x18*\x80 :\xf7\
+\xa2\xb0\xee\xb9\xa9\x00Q\x81\xcf^\xc3h4\x8bV\xb3\
+R\xf5\x97\x90`Td\xa25\xbc!lQo\xaf\x0a\
+\xa8\x80D\xe2\x9a\xff_\xafs\x01\x8b\xfb\xce\xe3\xc1\x86\
+\x13\xc3\x96\xfb\x06\xa8\x160\x95\x06\x80\xde\xedd2L\
+\xe9\xd2\x5c9\xc5\x042E\x22\xa9\xab\xd5\xda\xe1~_\
+%\x01VT\xeb\xd4X\x99\x0e\xf7\xb9\xf2\xbe\xf7\xcc`\
+ ^8\x1e\x1c\xd6\x05\x9eI\xf1\xc4\x90\x18\xae8\x5c\
+i\xb8\xd2\x02\xec\x95\x18\x95\xfbDo\xf77\xe6@}\
+8\x22\xac\xf3\xab\x09|V+VV>\x86\xa7\x0dO\
+\x1f\x9e>\xfd\xfd\xe3\xc6c\xc7c\x17u\xedJ\x94\x92\
+\x01\xb8\xb9\xcd\xec\xbf\x87C\xc3&w{B\xd8\x05z\
+\x07\xe7\xca\xa0\xfd\x9e\x95\x7f\x22[\xd3U\xdc\xa2]\xc7\
+;6ooc\xf5h\xecde_\xe5\xa1\x18\x0e\xce\
+\x8bl\x1dj\xe2H\x07wc\x11sjI\xf9\xd9\x00\
+\xc4?\x90\x00J7\xa6O\x80=<+\xac\xed\xf7\xb7\
+\xc7~\xe7\x0f+\x11\xbdG\xb3\xa5\x12\xfa\xf3\x0c\x14\xdf\
+\xb1\xe3\xed\x8d\xf1\xf8\x86\xed)\xad\xd5\xe2O\xa7h\xe6\
+O\x97s\xb3\x12\x8f\x04\xeeP\xe6\xa9\x84\x0b\xd0\x1b!\
+d\xb3\x8c\xbb$:X\xe7L\xc6O\xdbkl\xaf\xde\
+\xe6o\xf3?Z\x93\xee\x1c\xd6\x98|\xfb\x07\x93o\xdc\
+?lz\xdf\xf7\x84u\xa2|\xfc\xb2DI`M\x9c\
+Lo\xba\xfd\xa3w\xde\xbeI\x0d\x0e\x80\xcb\xf0\xfba\
+]\xc2\x9d\x85\x85\xf2S*QZ\x92\xb25e|p\
+X7.6\xb5|J\xf4S\x00*A\x5c\x8f5\x16\
+p\xa3\x82\xa7\xbf\xac9\xda\x09\x1c\xf3\x1f\x18_\x05\x00\
+8\xff\xfb\xc0x\xcfn\x9f\xfc\xc9\xb4\xce\xfe\xa4\xcd\xc5\
+~H\xcc\xc5\xdeq\xd2\x8eW\xb7\xf3<)\xff\x95\x18\
+\x01\xdeS\x1d\xbbI1?\xac\x89\xa8\xb5V\xa5\x8a\xdf\
+\xcc\xd9V\xa0\x92\xd8\xe49ZS\x18\x00\x9c\xe2\x12\xcc\
+\xb0G\x865\x95\xef_4-\xaa\x04\x220\xeeL\x17\
+Q\xb9\xd5\xbaV\xea\xed\xa8\xbf\xee\xa7\x04\xce\xb9G\xcc\
+\xd1\xdf\xcdx\xa9\xd6\xa1\xc4\xed\x9b\xa9}\x14\xe7\xc2Q\
+\x09\xa8\xbf\xba+H\xd0x\x91\xd0\xadD\xdb\xaa\xf5K\
+\x0b\x90\xfb\xe0\x1c0\xb6\x90\xea\x7f\x9e\x07\xf5\x05\x80\xa6\
+y\xe4\xdc\x90\x00{?\x09\x98\xf5\x82\x11Fc\x80\xf8\
+\xac\xeb\x02\xd0\xd1V\xa2-\x83B\x9e\x89<\xca{1\
+\xdf0\x02\xb5H\xf1S\xb4#h\x06\x98\xee\x80A%\
+!\x94\x80\xab\xb8b\x94%\xf5\xbez\xf6\xb5@`\x12\
+\xd0\xc2R\x98\x93\xf8\x1a\xa7\x9c\x9a\x06\xd5j\x0d\xd0W\
+\xc9\xcf\xd6\x94\xd2\x9c\xc8\x84\x9ax\xac\x16P\x09i\xdd\
+\x1f\xe7\xb9)=\xe2\x01~\xce}\x96`\x8bG\xd7\xe2\
+{+`\xa9\xe2<\x9fG\xbe\xe59zu~zU\
+ R\x88\xc0 !\xd2\x0dh\xc9\xbfS\xe7\x97\xb8\x96\
+_q}>\x87\xa9_\xc4x%\xc8\xce/@\xbe\xf5\
+d\x1a\x091H\xeb\x86\x7f\xe1\x07\xc4\xb1\xf6\x87\xfb%\
+\x1e5\xe6\x17\xe0\x95\xcf\x7f\xe7\x03\xc2\xba\xa9 \xc6\xaf\
+f\xa1\xa9i\xdd]\xa5\x13\xe3\x14\x07\xc8g\xc4}+\
+\x91\xd0:\x07\x96\xb1\xdfs\xa1\xcd\xbe\xf0\xf3>w\x02\
+\x07\xbb$\xaa%\x9et\xfd\xb9\xc7\xb2-\x8b\x87tT\
+7\x144\xa2Nz#!-nx\xdeH\x89\xc7\xf6\
+~a\xdd\xb8\x1e\x15\x04@B\xb4\x0c\x5c\xa5SG\x8d\
+\x84\xe6\x1f\xba\x9e\xb2H\xff\x0e\xef\x16X\x8a\xf7\xd5\x07\
+\xb1\xd0L! \xda\x17\x8f\xeb\x92\xddu\xad\x13y\xda\
+\x00\xae\x1f `\x81F\x98\x7f\xb1\xaee\x80\xda,\xb5\
+\xffx\x97\xb1c\x06\xb8\x1e\x80\x83\xf1|6\x88V\x82\
+p#\xd7\xec\xdeW\x0fzT\xee\xee\x9b\x8c\x82\xbd;\
+`\xc2\xfd\xca\x00\xb9\xe63s\xd0\x12\x86\xfd\x13\xb1B\
+\x15N\xb1\xa3\xa2\x90JL\x93\x0a;\xdc1\xacKP\
+\x05\xfcw\x0ek\x8ex\x1e\xbfB$F@L\xb5^\
+\xa2\x9c\x89;\x84\xbe\x02&\xcfo\x8d8\xea\xa5\x86\xa0\
+\xaa\xb0g/=u\xec\xaaHh\x15\xa0q \x90\x83\
+\xc8\x9e\x18\xd6m<\x0e\x88C\xb9q\x8a\xdfx\x0e\x0e\
+\xce\x04\xae\xea\xef\x01>R\xf4\xaa\x18\x01\xe6\x93'\xc5\
+G\x8bE(#4m\x84\x1b%\xe5\xf3\x80d^|\
+3\xc5\x10S\x05\xb6\x80\x0cL\x05\xf3\xcdU\xd48X\
+\x01\x88\x0d\x0d\xdazwV\x12$~\xc4\xaa\xd6c5\
+\xbf\x9aL\x01T\xb4\xfc\x1c\x15\xe0\xfcv\x8auq\xf8\
+^3\x81\xd4\xc3\x5c\xc0\x87\x9e\xa9w\x85\xb5qF\xad\
+u\xa4*(\xd4m!\xaa\x12\xed\xa4\xd0VeW\xa5\
+<\xa9o5\xbeJ\xc0\x0a\x01^\xab\xdez\xce\x094\
+\xd4\x81\x96\x81\xf7x|XG\x0dGE\xcfD\xb1\x12\
+~\x81\x91D\x04\xf3\x08\x05R\x05\xc1zL\x8a\x22\x91\
+\xb7\x020sl\x11\xc0LOm\xf5\xf8ReW\x09\
+\xf7|P)\x01\x02\x09\x8c\xd4s\xb1\x8e\x8d\x0b\xe4\xa8\
+\x05\xb8\x0e\x1e\x0e\xde:P\xc9\xc7\x0c\xc2\xa8\x899\xdd\
+\x9f\xeb\x98\x15(\xba\xc9\xc4)\xea3?\xa8b\x96=\
+bD\x1d\x0b\xd8E\x99%\x86\x97@H\xb5\xb0\xe4\xbe\
+\xae\xc0\x06e7\x0f\x18\x01\xddx\xe5\xb0\xae\xd2\xfc\xf2\
+\xb0\x8e\xa2\xa9\xa2\x03\x88\xe4\xc7T\xfe\x00$z\xcf\xb3\
+\xc2\x5c@\x93\x00($\xe3\xa6\xcf3\xde0l\x19\x1f\
+X\x01eV\xf6\xb7\xaf\x09[\xa8\xeeS\xda\xf8\xec\xe1\
+\xd9\xcb\x9c\xf9\x1a+\x08\xa8\xb5^\x05h\xce\x95[\xcd\
+\x0c\xa5\x9a#\xef@\xe0\xf7$L\xd9\x138\xbc2\xac\
+S\x83N?Y~\x10#\xe5\x8c\x04F1\xab\x0e\xc8\
+\x83\xffU\x99p\x7fd\x16\xff\xab\x80\x0e\xc51\x99M\
+5\x0d@@\x0fX=e\xd6h0N\xb7\xa6aX\
+G\xbf\x92\xfe\xec\xb3\xf3:\xaa\x8ay\x06Z\xe5\xff\xdf\
+\x13\xb6\x00\x97\x80\x94\xe1\xcd\xc3i\xc3i\xd9{\xfc;\
+\x8b\xa6M\xed\x87\xf4Oz1U\x02KE?\xbe\xbf\
+k&\x8e_\xea\x02\x1fSd\xb4R\xa5\x7fk\xcf\xfd\
+)\x0b\x93a\xbceX\x178\x87W9o\x01\xce1\
+P6OLF\x87i\x15\x9fl\xcd\x0c\xb1\xbf\xfe\xae\
+\xed/\x800\x80[\x5cc\xfe\xb6s>\xfd\x95\xf3X\
+\xc20~\x22l\x01\x90\xa9l;\xaf\xc7\xbb\x85uq\
+B\xf0'NZ\xfc\xc9\xf8\x99\xc9>\xbd\xc45%\xca\
+k,\xd9:\xee\xe2'T\x8e\xf4\x22k\x9d0\xa62\
+\x99b\xa6*\x94X\x1am\x0e\x9a\x22Y)\xad\xd6<\
+\xf1\x88\xca[\xee\xa7\x02Z\xf5\xb0K\x90\x9e;\xd9\x9f\
+'\xa3\xf4\x99\x17Q\xa9\xb3\x1e\xd6\xe3\xd1\x00\xa4\x18\x84\
+\xc6\xcaj-\xa4yC\xdc5(\xd8g$3\xee#\
+\x9d_\x13?\x00\xa6\xbe5\x9d\xcb\xdf\xea\xc4(\xf9\x13\
+b\xb7\x12z\xd4\xf1\xf4\x93[\xd4^\x89\xc3i\xc9\xf0\
+1\x1d\x07\xf5_\x85M\xcb'&I\x02\x5cZ\xe8\x0a\
+h6\xef\x9chn\x02@\xce\x17\xa2\xb5\x0aF\xce!\
+\x89`1\xbd\x88\xd0\x12\xdd\xc5,\xe3\x0fLE\xd0\x83\
+\x0f\x90w\x9f\xae\xbf\xe3k-^\xc8\xc2P%^\xe2\
+\x0a\xfe\x8e\xff\x04,d\xafv\xc5\x0b*\xaa*\x91\xa8\
+\xf3\xae\x03\x83B\x81\xd0\xfa]i\x03\xd5\xf8K\xe7\x97\
+\xebp.\xa2\xb8\xfb\x9e\x98$\xf1Cq\x80\xf7\xf7<\
+h\x0f\xbd,\xac\x1b\xdf\x96\xda\x00\xdb\xdb\x86u\x89\xdc\
+gW\xad\x12I\xa9\xdf\x9c\x11\xd6\x8d\xd9\xb6\x0e\xdd7\
+\x05\x10cs\xf3\xfb\x1a\xef\x99\x00P1\x0c\xb5\x88\x00\
+\xb2\xb4\x82\xe4\xd8\xf3j\x95K\xff\x86\xd1P\xccJ\x9a\
+/\xcecqm2!\xc6\xbf\x0a[\xce\xe5\xede\xc2\
+\xba\xbcA\x01RKc2\x0a\xc5[\xb5o\x01\x98~\
+^\xa5\xbegn\x9f\xdf\xb5\xb8|&\xac\xdb\x17\xeb\xe9\
+M\xd6\x9f\xf7\xcf\xfb^\x0c \xcc\xef\xfc\xbb\xe2\xd0\xf2\
+C\x12]\xcfI+\x89\x03X^\xb8f\x96J\x8c\xe5\
+\x09\xeb\xc2\xaf\xdfs}\x12\xfe\xf5\xb4\x0b\xf1.\xbf\x80\
+\x99)\x7f\xf49Q\xf3\x01\xa8\xae\x1f\xe0N\x84\xd8z\
+\xc8\xf8YK\x97V\xca\xda\x87\x00\x00~\xdf>q\xfd\
+\xce3q\x0e\x91\xdc\xb5\xd6J\x9eK\xbb\x88\x22A\x80\
+Z\x8f\xf9s\xbb\x1f\x84\xac\xe8\x8d\xf7\xf5\xd5\x96r,\
+=C(\xa1)\x82@\x15q\xbc{X\xf6\x8c\xbe/\
+\x0f\xf4C\x12\xa1\xfe\xd3\xec\xdd=1\x1d\xc1\xd7:\x84\
+\xfd\xb7&\xbbCWyC\xfdW\x99\x87\xf4\xf6\xd4\x91\
+\x0e\x19\xb4\xa0\xda\xc1\xb1o\xf7s\x12\x0bb\x81\xa8\xf8\
+\xf1=\xd5\xda=\xbb\x83\x0a\x90\xe0\xd5\xdf\xed\x7fo\xaf\
+\xd5\xfb\xeeu\x11\x94\x0d\x0f\xec{\x9d\x08\xd0\xb9y\xdf\
+/\xdd\xdd\xb7\xe8Q>k\xd5z\xb0\xe9\x1c)\x87$\
+0\xe5\x10\x1d\xf8\xc4l\x88\xd8\x0d\x99\xa8\xab\xa0\x10\x19\
+\xcc\x80\x7f87lz}\xd7\xf0\xceaJ,\x87G\
+\x84u\x89\x97\xc0\xdf\xfcs@\x90J\x1eJ)\xc7\x97\
+\x94\xe2\xeai\xd6S\x9e\xc0BUH9Z\x9f\xcf\x86\
+Jds\xf3\xc1\xb0N\xbd\x96\x1az\xb6\x04\x14E\x94\
+CF\xa1_\x8dW)\x8a\xb4D\x0fR+\xf1\xd43\
+\x99\x01V%\xb4\x9e\x1f5\xf3\xacX\xd6t\x8b\xa4\xe2\
+\x09\x80\xa6\xbf2\x8b\x14\xba\x1fz\xcaQ\xce\xae\x9b\x01\
+\x87qt\x99\xa0\xd6\xf8\xb2\xa4\xde5)\xcd\xdbw\x94\
+\xc6L\xb4\xb7\xf7\xd9\xdew{\xdf\x16p\xcf\xbd\xc8\xf7\
+\xc8\x0a\x90\x00\xd9\xba\xb8a\xde\xaf\x9be+\x86\xf9\xc1\
+\x12\x1eH4\xea\x8c\xfbo\xff\x03\x02\xa85k\x11\x92\
+@JH \xdd\x12\xbf\xd4\x0cA\xb1\xaf\x80\xc5sv\
+ c\xfe\x00hT\x0c\x1c0\x02\x8d<\xa0J\xd3\xc0\
+\xf8\xac<\x08\x1c0\xdbK\x84u\xd4U*\xce\x1c\x22\
+\xa0\xc3A\xa2\x05\xc9X/\x08\xae\x80^o\xe5K\xc2\
+\x16\xa6J\x89\xc3A\xe2U\xce\x1dD\xc4\xb9\x04\x8cz\
+\xef\x1d\x00\x12\x5c\x01\x9a^k\x8c\x1c\xc0\x18\x80\x8a\x1a\
+vV\xd81\xaeJ\x8b\x81\x8a\xbc\x04\xf2\xfbs\xcbO\
+\x8d\xb7TQ\xc9\x9eq\xd4\xfd\xa2d\x12y\x02H`\
+p\xf1#\x02;s\xc7s\xcc\x1aq\xbbR\x81\x17\x10\
+\xda\x9f\x12\xd2\x1co\x13D\xfb\xa0\xda\xebA\x1b\x9f\x16\
+\xd6\xf5vg\xc0W\x22\xa0\xfc\xa8\xf1Y*4\xc9\x88\
+\x88\xbaYT\xce\xb6\x07\x86uS\x0a\x00y\xfb\xe4:\
+v\x9f\xaco\x94D\xbd\xf6\x0e\xe2\x14M\xa3\xd6\xde\x12\
+\x97\xe7v\xfe\xf6\xbf\xf3\xe0UY\xd0\xda\xe0\xf7\x0f\x9d\
+\x99\x13\xd3\xa7\x9b\xb5.\x1e=30\x86;\xcd\x00\xab\
+\xca\xfd\xe6\xf5\xb3Xj\x01\x9a\x09$n/\x15\xd6\xbd\
+? \xf5\x84\x19\xd8\xac^~\xcc \x95\xd2L\xc0\xb5\
+j\x19\x03Z@\x05\xb5a\x81rVl\x86\xc3\xc2\x96\
+\xf5K\xf4q\x0a3\xe6^o\x8c\xb3Ge\xc0k<\
+\xec\x1ff\x82\x0bh\xd2\xea\x92-6Ey\x8e\xfa\xf1\
+\x93:f\x03\xa6M\xb6\xb8\x95\x96O\xfa\xad\xf2\xdfq\
+^\xfd8+z\x07/\xe3x\x8b\xd2\x9c@\xd3p\xff\
+\xb0NC(\xa8\xd1\x93#\x1bo\x16\xd6\x01G/\xd9\
+\xf1\xd26\x0d\xe1\xb8l\xed\xc9\xf3a\x0a\xb7\xce\xdf\x9c\
+\xdf\x89.I\x10\xbe5k\xf1L\xf7\xec-\xadU1\
+\xfde\xf5j\x02\xb6Wj\xef\xb5o.5\xc7\x13\xa8\
+\xc6\xc3k\xc2\xba\xb9\xf6\xb7\x0c[4\x19J{)\xea\
+\xb9\xbf\x9b\xcf\xed{\xed\xfc\xf9h\x0b\xcc\x7fc\xf2\xf4\
+\x1d\x03f\xfcVX\xa7\xb1\x94qDi\x0e\xa8T\x02\
+\x96i-\xf0\xb7I\xcd/\x91<\xadt\x02L\x9a!\
+\xfc\x02\xed\x0b\x15f\x15X\x01\xb2\x84![\x00\x89\xcb\
+\x16\x90\xade\xc1\xf9d_\xfb\x92\x10\x08L\x15x\xf8\
+Is\xe9Q\xa3\x7f%\xac\xa3\xf4\x8b7\xa22x\x9f\
+\x85q\xd0\x94\x08\x8e\x99\x19W\xdb\x97v\xcf/\x00\xad\
+\xcfv-\x85\xce\x1b\xfe\xca\x18.\xe7\x96\x8a\xfd=\xe6\
+\xf8w\xfb\xa6\xdc\x17\x02nb\xc2Zl\x8c\xb3\xc3\x88\
+\xf3\x05\xd0N\xf1\xd6\x1aK\x9b\xfb\xa5\x98\x12\xa6\xc6`\
+D\x00V\x01N\x00_=\xfd~\xceT\x1f\x893\x86\
+\x82\x04\x0c\x80j\x9aT\xfa\xf5j\x09\xd32\x97\xcc\x98\
+j\xf1ZO\x1f\xf8B^\xcf'Su^+\x94x\
+\xcb9O\xf4\xcf\x14\x90L\x5c\xab\x10\xa0\xa5\x11\xc5\x9a\
+\xe6\x97^z\xeb\xcc\xbap\xfd*\xc1\xb4y\xb2\xf5\xa2\
+\xe2\x15S\xb2\x88\xaa\xd1>\xb1_\xd3\xff\x01\xeeKK\
+\xc5u\x03j%dD\x8c\xb5\xb4$\x00P\xbd\xfb\xc6\
+\xfc\x01z\x00\xeb\x12@\xd7/\x1f\xc1\xe4\xcbBB\x01\
+f\xfe\xfdJa\x99\xf7\xfc\xd6E\x88\xc1I\x18\x13\x18\
+\xab\xb8){\xbd+\xd1s\xde\x01\xf6O\x09k\x09\xec\
+\x8fZ\x02\xfb\xed\xe9\x14\x9c\xce\xb5\xedaa]B\xbc\
+j\xc9\xa91\xa1\xe26\x05!LM\x9fK^\xe3k\
+-\xde\xace\x05\x90\xb3fb\x8b\xf7\x9c\xcf\x80\x10\xe7\
+\xaf\xc2\xa1}e=\x9an\xa5\xa5F\xe1\x02\x03*\xe3\
+\xf4\x12\xcd\xb3o=\x17\x95\xf1\x153\xa1\x80\x02y\x80\
+\xf3T\x9c\xa3\xc0DL\xd0\xf9\xa7\xf5\x02P\x01`\xf1\
+\xb9\xc4\xcb\xd6\xb9\x96\x11\xf9\x8d)D\xc9d,\xf1\xea\
+\x9b\x87uy\x85}\xb9\xce\x0b\xe57\x00A\xa2\x9c\xd6\
+k\xc6\xa9\x0a%\x98.\xbbj\x9c\x01\x91\x92\x10\xbf\xb8\
+q\x87\xe0\xb9a^\xdd\xb0\xc0C~\xd2m\xb0\x5c\xb0\
+\x12\x82\xf1s\xb3\xaam\x13\xfb\xf8Pw\x00$\xe2\xda\
+\xdc\xdf\xe9\xe9\x00>\x937\xeccK\x80\xde\x00\x84G\
+'\xa5\xf5\xd1y0H\xe0\xf7\xee*\xf4\x02\x1c\xc8T\
+V\x9eZ\xc7`?Wz\xf5\xff\x1b\x1cp\x99\x0e\x18\
+\xe0P{\xd1\xbf\xfd\xba\xff\xdf\xff\xde~\xab\x9f\xbfl\
+:\xa0^4\x10 \xb1\xa6\xd6\xa4\xf8N\x01+\x90\xa5\
+\xa8\xbf\x042\xbfOX\xd7*@\x0dYo\x93\x0a\xca\
+c\xc3:\xaa\x9b^\xde\xf33\x90\xbcAn\x88?O\
+\x15H\xc0@\x06\x10\x9b\x8fF\x0d)\x0f\xfa\xe9}v\
+\xfeR\xd8\xa2\xf2<\x1c\x196\xbd>%\xacC:\x93\
+2X\x1b3\x0fz\x94C\xbd\x935\x1e/7Hi\
+\x17$\xe2W\xf3\xa0U\xdcSL\xab\xc6\xf2e`Q\
+\xc8\x1a\x07 A\x12\x888\x88T\xa2\x8ce\xca\xc4\xa1\
+z\x8f\xb5@|x\xa6\xe6Wo'\x84\xd5\xbc\xed\xac\
+D\x95\x83\xe5\x80\xc7t\x5c\x10G\xe2x\xd9\x8b\xdf\xc2\
+\xd5k\xb5\xc4l\xae\xc0\x19\x1fHS\xc0\x81\x94c\xb3\
+J\x9d\x97(\xcc\xf9m\xf2\xf52\xdf\xf5\xd2\x09$q\
+\xfc\xa7g\xc5-\xdc\xdb\xfe\x1d\xf0\xa3\x17\xd0:\xcf\x83\
+\xd5z\xd9>t{\xd4\xf6\xa8\x0e\xd95G\x19\x10\xe5\
+K\xa2\xf3\xbeD\xa0\x1d\xdc*\x89\x80,\xc8b\xb6\x1e\
+\x94\xda\xee3S\xc4+)\x9f\x98%\xd5\x13\xa9\xf2\xce\
+aq\xc0\x0e\x0a\x81_&\xccEU\x8d\xb9\xb4\xbb:\
+\xca\x94^N\x88\xe9~a\xd3\xeb\xd1a]\x85/\x13\
+\xe6\x0aP\x05\x90\xee\x17Q?\x14k\x81\x10`\x02\xb0\
+I\x9b\x82\xba\xbd\x80\x07\x19(+\xb9\xc5\xf4\x10PJ\
+4\x89\xb1@\x84\xad[\xbd\xd2\xa9\x92[\x957\x08\xbe\
+\xf9\xc7\xd9\x22R\x09\xb9\xf1\x9a*A\xfcBVB\x0a\
+\x00@\xfduP&%\xbc\xe6\xd3\xa2\xf0Q\xcbG\xa5\
+\xa3\x02\x9f\x89\x8d\x0a\xa8Dn\xfch\xd8R\xa1\xa8\xb9\
+\xe5\x00\x00\x81kRY\x8d%,\x000\x0f\xfe\xf1\x1f\
+\xc2\xba\xb9\xe4\xd9\xbb?\xbc\x22l\xfa\xff'\x85u\xd4\
+z\x89g\xf6\xf2o\xff(lz\xbddX\xa3\x94\xcf\
+\x80\xe3ms\xff\xf8|\xe6\x1e'\xf0g\x9dV/\xa6\
+\x04\xd0\x81\x8f\xb9$\x10\x11p\x98\xcb\xae2\xe3\x00\x7f\
+\xf3\xfc\x1c\xc6g\x85M\xd7\xff\xa0\x99J]\xa2\x86\xfc\
+x\xfa\x9b)Mk\x94\xd5\xe9\xae\xb6\x84t\xfb\xb3\xb0\
+\x0e0\xe4Osl\x1bM\x8f\xcd%\x12x\xa4\xfd\x00\
+\x80\xfd\xdd\xb0\x8b\x004\x01'\xc6\x00Ilr\xac\xdd\
+p`\xd8\xf4\xba_\xd8\xd2\x1a\x82\xb1\x17u\xfc\xa8\xe4\
+k\xc5\xc3\x88\x99V\xdbo\x0e\xb7\x9f\x13\xeaX\x87D\
+\x0f\xeb>}oNdU\x9e\xab\x02\x1b=\xb6o\xef\
+\xee\x87\x96(\xe3d\x83\x01vf\x16\x02\xbe\xb1\x9c\xaf\
+u>\xd0\x9a\x09\xe0\xe9\xaf\x93j=\x9dO\xe3\x1d&\
+\x8b\xf5\xfb\xa3\xb0\x14\xc7}a\xdbom\xac\x9c\xc4\x08\
+ \xe4~\xd1t(\xf1L\xd7\xf5\xb9i\xf7\x7f\xae[\
+\x0f\x0a!46\xf8\x01\xf7\x99\xd6D\xae\xf3\x06\xec\xec\
+\xdf1\xa4T\xb41sh\x96$\xa0\xbe\xfb\xc8\xc9\x8e\
+\xeaDW\xff9\x13\x0b\x15jL\x12\x01j&\xf0\xe5\
+\x0f\x9c\x8b\x18E4I\xc4\x17\xd9\xc2T\x00&f\x9a\
+\xca?\xaa4\xd5r\xbd\xf8Zp\x8e\xd81\xb7\x00L\
+^\xafU\x04#]\xf8l\x17\xcf\xe4\x18\xabj9\x22\
+\xa2j\xac\xa9\xf8p-\xceE\xcc\x8c8\x95\x7f\x17\xa8\
+\xf3#\xd1\x02\xfa\xee\x0eP\x15\x7fF\x98\xfb\xe5\x0e\x90\
+\xe3\xcf\xa7x\xb2\x8d\xbb\x0d\xde\xe2\xb3:Q\xb3`\x06\
+\xcdb\x9es\xab\xdd\xbe\x99\xf8\xf1\xf3\x00\x0d\x15L\x94\
+u\x09\xd0Y\x09P|o\xd5\xc3\xcc\x9f\xfb\x9c\x12\x85\
+\xf4\xa3\xe3s\xc3\x16\xff[\x09\x80sn\x8f\xb0\xe9\xf5\
+\xc6a\x1d\x93)\xfd|1\x1c\x01\x84\x12/\xf1\x98\x0a\
+\xb2\x961\xc0\xa9\x9eq\xf7\xcf\xfd%2\x9a\x05\xa1\x02\
+.\x005\x80\x98\xb5FV\x00\x00_X\x18\xc0\x05 \
+\x98\xd6\xa4\x95'\x86\x0c\x1e\x9c\xadO{w\xad\x02w\
+\x0a\xeb\xf2\x00\xeb\x9b\xa6\x89V\x00\x009Q9Tz\
+\xf1\x8d\xb9\xe7ZLi-\x01\xbcr\x1f\x17SY\x82\
+eNzj\x9b\xd0\xc6\xa8x\xce\xb9\x07\xa0\xd4\xf2\xa4\
+E#\xc5\x8c\x0b \xb9\xc5<\x9dI\x8bR\xf9?\xf7\
+\xcd\xe7N\x00\xb0\x0ab\xa6)\xd1t\x00\x88\xd0\x14\xb1\
+/%\xc6\x18\xc0Dc\xb5\xc0\xa5\xe8q\x8d+N\x00\
+\xb0\xf26\x80\xd1Z#\xc4\xf9\xc6\xdf\x01\x1a$\xe4\x0a\
+\x8f\xe2=\xffN\xec\xdd<{\xe2\xca\xbe\xf8\x1b\x09\xaa\
+u\xb4n\xe5\xe07\xfc\xfc\xba\x80\x8a\x01\xab\xb5\x11\xe3\
+T|a?\x02\x1a\xd6\x22\xa2\x19\xff*<T|\xed\
+\xef\xb9\x0e\xf1\xa7\xe7\xe6\xbc\xf7\xff\xdd\x17\xd7\xaf\x15\x89\
+\xe6\x09\x80\xddT\x91d\xf6\xd4\xfa\x94\xf8[\xc7\x18\xa9\
+\x19\xdf\x13\xb3-\xe0\xd4\xba7\xfd$\xf3\x96\x1a#)\
+.\x14'\xf2\x07\xaes\xdd\x92\xa1e%_\x0bx\x14\
+\x17&CjW}\xe0\xbc\x11\x8d\x82\xf0\xf1\x0e9\x10\
+\xa0KxQ l\xe0|\x80\xe37&\xfbz\x13\xe1\
+yiPN\xc6\xc7\x86\xe5\x8dzkG\x15G\xa53\
+?T\xe0\xf2\xd0\xd6\x9d\xbcPVPP\xfd]\x15N\
+\x89{\xdfCr\x89\xae\x22\x0f\xd1\x9b\x96\xd3\xc6T\x80\
+\xfd\xba\x05\xad\xf2/1\xe7P% \xc4\x06\xfd\xdd>\
+\xd1\xef\x13|\xd4\x9b\xfdR\xedw\x0d \xc4\xbb\xed\x9b\
+\x7fg\x9f\xee\xfd\x01\x0b\x11N^\xbe[\xf0A8\x9c\
+\x12\xdd\xed\xb1a\x0b\xe5\xb1(N)\xd6Vbe\x19\
+\xe0I@\xabg.\xc7\xff\xa9\x88\x19\xe7'p\xae\x8a\
+\xce\xbfN\x89\xf0\xbf6\xb5\xf2O5\xb5rb]\xa9\
+~\xba\xf3;a\xd3\xeb#\xc2\xba\xc4*\xa9\xac%\xf6\
+\xa7GEEE%\xc8\x98)\x95\x97T\xbb,\x0a3\
+\xaa\xba\xc4\x03UZ\xa2h\x01\x0b\x98$\x96\x19HU\
+b\xad\x87\x1a\x22\x9b\x00HQ\x9a!\xeb\xee\xbf\xb9\xe2\
+\xae;\x1d}\x0c\xefk\xe3\xfb\xf4\xfas\xc4T\xdcU\
+v\x89\x13Yg>\x0f j\x9f\x5cO\xa9\xf2\x5c\xf3\
+e\xf5\x8cA(\xaf5\x05\x1a\xd7\xca\x1e\xd4\x9fw\xbd\
+`*\xd2\x00\x03\xeb#\xee\xe6\x95\x16$}\xfb\x90\xb0\
+\x5c\x07\x0f\xca1v\x87\xe7\xf4\x8c\xedR!m<\x93\
+s\x1b29\x8f'\xb9u>?T\xa2\x05\xe0\x98\x0f\
+\x88L8\xda\x8c\x8a\x0f,b2\x15Hg\x80\x12\xc3\
+\x0ac\x5caM{\xd0;\xf5\xb4\xb0\xce\x91f\xebC\
+Q,\xadk\xc8>\x7f\xe2\xa0\xa2-\xe0\xb9s\xa0z\
+\xd9v\x87u\xafIiS\xa16^\x0e\xe5\xb1\xc4\xe1\
+\x1c\xd4\xb4*h\x98X7+\xe4\xb4\xa6\x17p\xbc\xa9\
+\xb1Qb\xa6y\x00\xd6x-\xe3\xe6\xcc-\xdf#\x0f\
+\x1c\x81\x84\xfb\xa1\xc7\xd4\x01\xed+\x81\xad\xea\xe1\xcc1\
+K\xe5\xf7\xb2\xf2U\x81\x84\x80W\x00E\x9cH@\xff\
+\x9c\xb0\xae\xe2\x85\xca\xff\xfba\xdd\xc1N\xe4\xc8\x81\xab\
+\xd5\x07\xf0\x83j\x98\x81\xe0pPXGi\xcdJ\xa6\
+\x83\xa9\x98-\xa9\x1e^\x1a\x02\xc6\xe5P\xe3\xa6\xfd\x90\
+\xd3\x1c\xb6\xef\xc9\xf1:\x19\xc8\xe8y\x96\x98\x16#E\
+\x85\xda\xf5\xbb\xee\xa4\xd8m\xee\x94\x22<\x10t\xe3c\
+\x05l*5\x80(~\x07\x05\x1a\xa5\xd9\x1cp\x89\x9e\
+\xf9\xbf\xeb}\xc9\xef\xa1n\x1e\x98*\xf5'\x865\x86\
+\xc5|\xdd\xa6\x0a|b\x9e\x0eQ\x89\xa7i;\xd9\x93\
+]\x00\xd4\xdd\xd2\x1fch\xd0h@\xe5\xe7\x9fTJ\
+1_\xf6\xccs\xd1\xf9M\xe4\xd4\xdfK\x86P\xa3D\
+\x9f\xd91I\x88b%\x13ex\xdd\xf07\xc3\x14\xd0\
+\x8c\x0f\x1d\x8f\x1a\x8fj\xd3\x16\xda\xef\x0f\xbf=\xdc%\
+D\xfc\x9a\x08\xec\xbf\xb6\xfb\xfc\x85v\x9f\x8d\x0d\xbd\xd3\
+\x8e;F\x05\xbe(\xf8T\x8bM\xbb0\xbeM\x055\
+[\xa2j,\xa6@\x10\x80f\xbcj2|\x86G\x87\
+-\xfe\xbc\x98\x1f\x98fA\xe9}\xd6\xe2\xf7&/0\
+Oo\xf1~\xc4\x14?\x9a\x09>\xcd\x98kN\xbb\xe0\
+\x9a\xdd|\xe7\xbe\xd0\xf1\xe3\xee|\x07\x8ca\x84a\xde\
+\x04\xe0}\x99\xae\xc5\x0b\xb5?:\x80\x9f\xb7\xc4\x0b;\
+\x0f\x9b\xec\xf0e\xacm\x8d1\xa4\xe1r\xef\xed}\xb6\
+\xf7YZ\xd0\xaaU&\x13\x0f\xfe\xad(\xbd\x7f\x19\xd6\
+\x8d\x97\xa4\xf5\x91\xd3\x1eT\x90\xf8\xcb*\x18$\x83\xa4\
+4J\x8c\x87K\xf1\xd8b\xa2\xc4_\xbb\xe7\x9ch\xc7\
+\xb9Q\xfb\x99\x9f\xb6^1\x03ME\xb1\xaf$\x14\xe2\
+H\x81\xab\xd6G\xe7\x06\x15{\xe7\x81\x0a|\x8e3u\
+\x9fP\xc6[\x22\xfd\xd1\x0eh\x01\xe0\xf2\x9b\xc4\xf9\xb4\
+\x08\x9d\x92\xda\x0e'\xa7\xb8\xe7m\x93i\x9a\xc0q\xb5\
+\xa8}2lI\xc0k^\xf8kr\xbc\xa2\xfb\xae\xa7\
+Z\xc2cz\xc9\xa5S\xac\xf6\xd7\xc2\xa6\xd7\xef\x87u\
+\xd4f\xad\x9c*\xb6\x18$\xc6\xcdIDU4%\xf6\
+\xebB\x12\x0a>m \x89\xc2j<Z\x89\xc5\x11\xfb\
+\xa4\xc9\xa0%\xcdy#\xeeP\xe8C]\xa7\xb5\xe3\x1c\
+\x8bV\xd3\xfdS\x84\xf3>\x99\x80\xfd\xbf\x8ei\xa7\x15\
+\x13\x13\x80\xbf\x97\xb89o$*\x18t\xfcj\x02X\
+\xa6\xf5\x94\xb6\x8e\xc2\x08\x06\x08f\x0b\x7f\xe1\x9c\xc4\x00\
+\x92\xd8\x01\x8eT\xf4\x9d\x9b\x00\xbe\x04\x0c\x87\xc7\x86u\
+~+\x19\x11*\xf3kF`\xc5M\xc4\x94\xe51\xae\
+\xc3\xfe\xa0\x0a\x8f9(a\xa4!r\x8d\xb0N\x94:\
+\x19\xa3\xc5\x10\xca\xf3\xa1\xf6\x8ds\xcf\xfd\xa4\x8dc\x9a\
+\x95\xb8\xec\xc79\xf6T\x02\xab\xf0\xaa\xd55\xe2\xd1?\
+\xc8\x96\x90wt\xf7C\x9c\x0cpY\x01\xe05~\x11\
+\xe0\xa0W~=v\x90f\x0dM\x91\xb5\xf8\xb3u\xb8\
+\x1e\xef\xe7\xf7\xe5[\xfc\x86VF\xd3Nr\x9dW\x01\
+b=\x15\xce\xf5\xfb<\xe2uL\x875U_\x02\xed\
+\xbe\xba\x0e\xf7\xdd9\x80\x11\xc0\xef\x89\x8f\x14~\x12@\
+\xd2JX\x0c\xf6\x8c{\x15.J\xab\x89&M26\
+LW\x13_\xed>&\xac\xd3.\xca\xf3\xa6>\xa7\xfb\
+\xe3\xba\x88F*\xf8\x89\x8f\x01\x10\xd6Y\x16\xd2v\xb5\
+\x8f\xf1\xb9\xee\x83\xc41\xf9\x8fIe\xf8\xe7\xae\xc2D\
+\x04\x0cE\x1b\xf5)?\xd0x\xb5\xc9\xae:\xbd\xde6\
+lQ\x01\xdf\xbc3\xf4\x90\xbb\xb1M*B\xa8$\xa1\
+u\xfa\x97\x99h<y\xe9]\xaf\x1b\xdf\xf7J_\xa1\
+;\x88=P\x08\x92^\xfc\x1f\xcdT\x97\xea\xe5\xcc\xde\
+\xb1\xa59\xb3\xfa\xea\xe6\x9e~\x08n\x1cS\x17[\x89\
+C\xec\xd5\x89\x17\xf9\xfdlAh\x8e`\xcfncp\
+\xd0\xae\x0bc\x01\x10\xd0\x03\x0c\xfbu\xe2k\x90K\xc0\
+\x06\x04Q\x80\x1ai\xe7[\xd3q\xbc\xb9C\xf0 \x87\
+\xd4F_\x9fc\x97\xb2W\xbb\xd4\x93\x89\x00>;\xc7\
+\xda\xfdW\x8eo\xb2\x01\x8d\x19\xd32\xa1\xe2\x92\x01\xbc\
+Db\xe7ia\x0b\xd2[\x9a\x11\xe6\x1fc\x00H\xac\
+ `*9z\x9f\xb2\xe2Z\x22F\x12x\xf3\xcd\xdd\
+\x17_z\x0dS|\x0f@P\x9f\x83\xc8\x87\xc0HO\
+]&\x00\x85L\xdb(\x10E\xe3^0\x05R$\x04\
+\x05\xac\xe6.\xa3Z\xd2<\xc8Dd\xf3\xff\xc2\xba\x04\
+\xf0\xcb\xd9\xc3\x0a(\x91x\x12\x19#V\x13\x12\x8f\x8f\
+\xebD\x04\x1d\xc0\xe6\x1bcr\xf4S%\xb6\x1d\x05K\
+%\xdcAc\x9c\x1e\x8a\xd7\x8e\x5c\xe5\x1c\xf7\xc9Y1\
+O \xa3(\xf0\x0e\xe2\xf58\x1d@\x06\xc7\x88i@\
+\xd4\x040c\x9d\xea\xb1B\xb5\xca\x8a\xed\xf6\xd3\xdbV\
+\x89\xd9\xee\x0c\x9b^/\x1f\xd6%\xa4\x1c#$:\x0f\
+Rc\xa8J=\xfdKaK@\xb0\xbdFX\xf7\xbd\
+\xcaB:T-\x01\x12\xaa\xea\xcd\x16@\xe7\x94\x88R\
+\x87mj\x8c\x8b\x98\x5c\x05x/\x0d\xeb\x188\x80'\
+\xbd\x9fZc2\xf1\xa8\x96\x9c\xbc\x8f\xc1\xa3\x0a&U\
+\x8diS\xf1Q\x11Hq-\xfb\xa8\xa8\xbd\x99\xa88\
+\xc8+\xa0Rq6\xb5\x81v\x87\xb9\xf0I\xb9\xaf\x8a\
+\xb6D\xe5\x8b\xa9n-\x01rpdB\x5cL\x17T\
+FTM\xd3`\x1c\xa4\x98(*{(\x8c\x12yZ\
+\x11z\xd8\xf5\xea\x1b\xab\xf6\x96\xb0\x8e\x01\xe4\xfe&2\
+?>j<n<n9\x87\x86\x9f\x86M\xaf\x97\x0a\
+\xeb\xa8\xc8\x8b\xfa\xfeL\xc5\xcbi\x10\xf5|\xf5\x94\xa7\
+\x16CUZ\x04\xc6\x02F\x95C~P\xefj2\x15\
+\xf4\x92\x96\x98\x9eJ'\x86MVLU\x5c\x0a`\xda\
++\xaf\xefI\xf3\xba\xd9>ffj\x15u\xf3\x88\xa4\
+Z\xbft^g\x9b=\xe7\x80\x92\xbf\xb0>*\xc0x\
+P\x22\xf6\xbf\x9c\xcc'\xe7\x1d\x06\x96\xc0\x0f0t\xf3\
+\x5c\x8fq*|\xbb\x0b\xc4.\x96\x89\xd8W\xa6\xa7=\
+W\x9c\x9e\xd4*N\x98H\xfc\x85\xdeK\x94[\xfe+\
+[4\x86\xcfN6\xed\x83\xe1\xef\xc3:\xd1^\xe3E\
+\xed#c\x851\xbd\xb2\x95\x01\x10\xb1\xf9tX\xb7\xbf\
+Bt\xf3']B\xa0U,\xbc\xfd\x94\x18\x0d\x0f\x99\
+\xecA\xd9\xa2\xf1\x17\xad%\xaa%\xca\xd3=\xf8|\xbb\
+\x0f_O\xe6XR\xc2\xa7\xddq\x8f6\xdd&\x13\xd2\
+\xed]\xc2\xda90\x9f\xf7\x00\xb8\xecMn\xe3\x13\x8f\
+l\xfb\xe8\x94\xb6\x8f\xc4\x05\x18i\x00\xe3\xa8\xdb\xffE\
+'\xe6\x9a\xe7P\x03\xd8\xdf\xb4\xac\xdf\xcdya\xddt\
+\x95|\x9f\xf1\x8c\xc9\xfe-\xd7\xf3\x1d\xbb\x80ZeG\
+\xcb\x88\xf3.+_\xc3\xc3\xc3:`[@\x1ai\xe7\
+\x93s\x8c\xdd\x87\x97J.\x06\xca\xf8\x80\xb0\xae`\xe3\
+UA\xc1\xb9\x0b\xf0\xd2\xab\xfd\xe3\x99AQ\x00\x9b\xc4\
+\x9c?\xe0\xb7\x9d\xbf\xb4r$\xae\xe2(\x957\xf1\x93\
+J\x9b@\xdb~v\x9e\xadE}\x01\x08\x98\x10\x97\x9b\
+\xa2\xad\xcb-\xcc\x8b*|\xa0\xb8\x1bS\xad7\xb7\x1f\
+/\xf6\x83\x04\xcac\x9f\xbd8lQ\xd9\x17\x87\x84\xe4\
+l\x88\xce\xd6\xf4\xa4{eB\x8e\xc2+\xe1I\x00p\
+\xfcXX7\xbe/\xfd\x8d1\xa9\xd5\xfa\xf1G30\
+\x5cb\xae\x123\x0c4\xa2y\xd6\xd9Z\xbc\xcb}\x00\
+\xe4R\xe9\xf7{\xa9\xedT\xaa\xf0*\xf7D\x84%\x86\
+\x80\x16\xe7\xbau\x04\xc8\x90\xc8\x01h\x00\xaf\x18T\xb4\
+\x060c\xb5T\x02\xe4\xc4\x85\xc4\x07\xc5+y\xbf\x0a\
+pR\x99\x97\x10Z\x874u\xd2oT\xe2\xaf\x02\xae\
+\xf0dL\x1f\xd1@L\x84d\x12\x10\xa3,\xc0(\x81\
+\xb2\xaa\xf8c|(h\xd1hr\xbeg~Rb\xd1\
+>\x9f\xf1\x9c\x0aC\xce\x0f\xf7-\xd7\xbf\xf5U\xcf+\
+\xd5\xfb\xf9\xa1\xf2\x0bD\x86\x13\x88(\xe6\xa3q\xb2\x18\
+\x1e\x00]L\x0dq\x16\x80J\xde\xe4+\xff?\x91\xc0\
+\xda\x87\x12\xce;7.j\x89\xebM\xabb~\xae\xe7\
+dbl\xbfJ,\xd7\xe3\x06\xf3\xbc(\xc6\x0c@\x8c\
+\xff\xa2\xc5`\x9d[?\x18'\xe2\x11q\xa4\xd6\xc3\x04\
+D\x8a\x81\xe3\xfcr^\xd3\x8c \x06\xe8\xef:\xd7\xe5\
+c\x80c\xad\xbd\xf2/\xfb\xc99\xea\xb9\x01 \xec;\
+\xfb\xc2\xcf\xbb>\xd36\xb4\x88\xf1w\x80%\x8c\x22\xfb\
+\x09P\xb4j\x05\xaa\xc2\x82VJL\x05\xad(\xa6\x02\
+\xa46\xdaxH\xd82>\xb3\x18o\x0a\xf7Y\x10\x14\
+\xa7\xb8/\xe3\x17\xc2\x16\xa6\xec\xe6\x15aK\xbc\xb3\xab\
+\x1d\xbf\x81\x5c> ,\x91\xd6=:\x04K\x0f\xeb\x8a\
+\xda\xda\xd4?\xa7\xc4s\xdc\x1d6\xbd^j\xb2\xbd2\
+\xf1\xff^7FLOD\xa6&\xe5\xb8\x8cYrc\
+RU\xfa\x02j\x9f{w\x0f6\x8e\x93K\xaeT\xfa\
+\x05\xf2\xe7w\x09\xf3\xd8\xc8\xda\x95x7\x8a\xd97R\
+\x04\xec\x0a\xdd\xcfs\x90\xc4\xfcL\x13\x884q\xd3%\
+\x8c\xb1mvvc\x02\xa9\x80\x07\xf5\xf7\xbc\x8e\xf2\xe7\
+\xbaW@\xc1\x05T&/\xd3\x05\xe0zm\xc2\xc1\x5c\
+\xaf\xdb\xc0\xb4\x16\x00\x0a\x97kG\xde\x12\x00C\x88Q\
+\x7fTP\x8c\xa7#\x16\xc4\x11~\x22\xac!\xcf35\
+\xf2\x8bs\xc0\xbf\xf9\xc7\xa4H\x9bco\x9c\xa3\x03\xc8\
+u\xa3\xd0fe\xa8\xc6\xec\xa1PI$,|\x1bV\
+\xe2\x9f\x95\x8cR\x01G\xc1'RhA\xea\x09#\xc2\
+#\xa0\x80\xe8s\xdc\x90e-\x05\x1c0u\xe4\xec\xa9\
+6\xbe\xa8\x80&\x894\x84\x8c\xe8\x9a\x84\x16\xf0\xc01\
+\x18\xff\x95\x89\x04 \xc9\xc6\x8b\xa9\xd61\xd7Z\xa0W\
+\xeb\x8fCQ\xc1\xb8\xe3t=\xd1\xeb}\xd3\xe9\xc0\xba\
+\xe9\x22.VS\x03\x88iI,~\x1e\xb6L\x99\xa8\
+\xc4=55j\xdd\xa3v\xebu\x96\xb0\x7f\xbc\xd5\xf0\
+\x17\xc4>+\x05S:>\xf7\xcc\xff8\xc7\x8f\x09\xb8\
+T\x18\xacK\x22Rz\x8dS\x04\xaaz\xad\x04b\x80\
+9\xd7\x0d\x10LQ\x9dz\xffD\x1a\xb7{\x85M\xaf\
+?\x0f\xeb\xa6\x1e\x08\xb4!\xa2\x99\x80\x8f\x7f\x14\xd6\xcd\
+Ow0&\x22_\xebB\xa5I\xe0(\xa0H\xaat\
+S\x15\xbf^\x07p\xaa\xf0\x99w/q\xd9\xb9\x1d\x1a\
+Pq\xcd\xed/o\xaf\xb90=*q\x11\xf0K\xd4\
+\x01\x5c\x0e8@\xdeOr.7\x913\xbdt\x98F\
+\xc4j\xf4\xfe%\x05vs\xa7\xb0.\xb0\x16\xf8\xd8\xef\
+\x803\xad\x01T\xa1\x13\xc8\xa9\xc0\x8aX\x9aq2\x9e\
+\x17q\x18\xbf\xa7g\x0c\x80\x94\xeb\xa4(bz\xce1\
+ur\x9f\xa2\xbaU\xa0\x0dP2v\x86\xd8\x0djr\
+\xefGwu\xfbDB-\xb0p\xa0\xdfw\xd6\xba\xa8\
+}\x9b\xd7=\xfcnX\x97\xa8$\xd0\xa1\x85\xa0\x00\xcc\
+\xdc?\x00<T\xc9\xd2\x92H\xa6S}/\xe1%F\
+\x94\xfe\xce\xffo\x00\xf6;\x17\xc6\x1a1\xc9\x1a+\xf9\
+\x82Y\x13c\xfcvX\xdb\xe77m\xfb\xfcY3 \
+:<{x\xce\xf0\x9cN\xf5\xff\xcff \xb6\xd5\x87\
+{\xea\x7f\xb6\x0e\x153\xe7\x88\x04\x1a\x8d\xab\x13p\xaa\
+t\x06\x5c\xf8\xb4\xae\xd7z\xaf\x04\xac\x01\xc4\x02\x5c\xe3\
+\x09o\xd2\x06K.\xe7\xad\x8a\x1b\xd1\xb6|\xbe\x9b\x13\
+\xa6\xc0t\xba_\xe3?\x8f\xef\x1e\xa7\x80dxu\xd8\
+\xd2\x0a\xd64\x04bJ@\xfb\xeaZ\x8d\x9e\x1f6\xbd\
+^6l\xfa\xfdW\x84-\x95\xd1b\x86\x11\xbd\xc4P\
+\xcb\xd6\x8f\xc6\xcb\xfaP\x978\xc6\xee\xe8\xa6\xf3\x10\x07\
+\xac^w\x89\xe7+\xe7\xb9\xf6\x8d\x01\xf1\x8e\xac\xacO\
+~wx\xd5\xf0\xca\xe1U\x0d\x08\xfeR\x13U\xd3\x02\
+q\xe9\xd4\x88\xb8jXw\x8e<lN0j\x1a\x84\
+s\xd1\xf8W\x0c\xb6 \x9a\x9e\x91=\xa6\x97H\x80\xf9\
+\xb0\xec\x11>\xb6\x13\x8f\xb4\xdf\xf3\x5c\xda>\x22,\x13\
+\x99\x87-\x15b\xf7\x0b\xd3\xcf\xf4\x8a\xe1aa\xcb\xf9\
+>\x9c\x1e\xd6\xf9/\x81p\x9c~_\xe9\xce\xe9T\x1d\
+\xaf\x96\x02Z%\xae\x07@H\xa3\xc3T\x90\x14e\xae\
+s6\xeaa\x01\x90>,\xac+\xbc8\xdf\xf8wq\
+\xc2Z\x940\xa7\x22\xb5h\xe9\x12]A\xc7\xfeWi\
+\x96\xd8\xf2\x0f\xcei\xffn\xec\xa0J\xaa\x8a\xa2\x04R\
+K \xff\xeb\x1cSh\xe1/\xa2\xf2\x7fr\xd7\x22\xc2\
+/\xe5\xfb\x97\x86\xc0\xc5fJ~U\x001\x8e\xf2\xe7\
+\x8b\xb2\x9f\xea\xf7\xc6\xea\x8e_\x0d\xeb\xce\x99\x04\x86\x15\
+d\xb6\x7f\x16\xd6\x01=*\x9f\x80\xc7\x93\xc3\xbasU\
+!I\xc5[Baj\x92q})\xb6]\x8c\x1ab\
+~\x189\x80D\x85\x0c\x05\x06\x80\x0e\x7f\xa0\xc5\x84\xf8\
+\x9b\xe7$\xf1\xb2o\xfd>\xc6\x93\x84\xce9\xee\xfc\xc0\
+(\xc8\xd6\xc2b\x0c\x88\xfb\x9do\xc6\x06f\x01\xa9\xc6\
+\xa9\x01\x1e\xc4\xfb\xd6\xa5\xeb\x02pg\xcft\xc5?\x0a\
+J\xcf\x98\xd2\xdfgtq\xa8\x96/\x09\xeeC\x92\xb1\
+@\x83 [\xf1J\x1b\xc3\x18\xd0\xfc\xbe\xce\xa9\x04r\
+*^\xb5\x0f\x9d\xeb\x98\xb4\x18\xaa\xa6+\xd1\xe2\xc9\x02\
+\x91\xbc\x06S\xba\xc4\xb7\x156\x8c\xf1\xfb\xb5\xb0n\x7f\
+)\x08\xf0\xdf\xc9\x08\xc6\xf8Yk+\x99F\xc2/\xd4\
+\xefIp1\xc4\xf2\xbc\xa9D\xd8\xfd\xd4j\x99\xda?\
+\xdd\x18\xf1\x0b27%\xc2\xe2\x13\x81\xbe,\x00\x00 \
+\x00IDAT\x06\xef/\xaeXMg\xaau\xc3\x1f\
+a\x08\xe4:\xafs\x85h%\x0d\x01\xf7]k\x84B\
+\x92\xebX\x89\x1a\x96\xe6\x11\xbf\x00\xd8N\x0d\x9e\xda\xd7\
+4t\x00\xd0z\xf8\xc51\xf6\x09`\x12\xf5^\xbc\x06\
+P\xd5*A\xa4]\xcb\x86B\x08\xe6\xdejj\xc5\xf6\
+^a\x1d\xc3T\x8bejxa \x8e\xa7\x87uc\
+\x89\x15B\xb2\xa5\xa0\xa6\x0ad\xe1\x8d\x1f\xd9\xf9\x9a\xb0\
+\xc5\x9f\x89\x8bv\x8d\xff/,\x91\xc1\x8f\xe5\x1b\x18\x83\
+\xf5\xb3\xa5\x92\xd7\xd4\xb1o\x97\xdf\x7fj\xa1\x14\x8c\xfb\
+N\xb6OR\x90\xde\xd5\xf5jp\xcc\x1fo)\xc9\xb2\
+`$\xd8n\xa0\x7f\xa7\xae\xdf\xf7\xf6\xef\xd5Q\xf7\x1d\
+\x08\x12\xed\xac\xf4W\xa2\xa4\x82\x81\xca\x11\x8f\xfb\xf2\xcb\
+\xcf\xb7\x07\xfc\x9d\x0c\xe0\xaex\x11\x09\xbe\xb1\x81\xfd\x14\
+\x01H\xd1\xb9\xb9a\xfb\x1e\x91\xf8\xf7\x1f^\x04R+\
+\x81\x8c\xe5\xb2w76\x10\xd0\xe0K\xa0\xe3 \xe5`\
+U\xfe\x22\x1c<\xa6\xab\x98d\x05\xba(\xf2I\x0d\x1a\
+\x0e\x9e\xe76\x0fg\x0c\x1f\x19>\xd2\x0d;\xc8\xf9\xa2\
+z\xb5\x8a\x22\xfa\xb3t$\x07db \xf1=\xa6Y\
+\xa9\x03W\xcf4\x8a\x13\x95\xe8\xcf\x86u\x88)\x8aV\
+\x8ai\xd5Ac\x1cU\xce\xbb\xae\xb9\xcf\x0ef\x95`\
+\x0eT\xefk\xf6(\x03$j\xdc\x18Q\x22\x0e\x06u\
+\xd3\xf3\xd0\xfb\xe6\xfa \xc6\x1c\x16\xc4\x9acr@Y\
+W\x1c\x87\xe7\xe1\xbexN\x00\x0e\x80\x94\xf7\x13hg\
+\x85S\x820\xdc0\xacQ\xe0\x1e\x16\x14\xb8\xcdm\xa7\
+\xfds\xdb\xc5\xb1\x0d\xbf\x1e\xb68\xd8\xc6\x90xD\xd7\
+j \x10XS\x04\x89\xaa\x00\xb0\x8c}I*u\xcd\
+\xbdO@o|_XK\xdc\x9a\x88\xdf\x94\xe0^\xb3\
+%\xb8\xa6>\xe4\x81\xbb\xe3~Y\x99\x04L\xe9\x9d7\
+u\xc2\x81&P@\xad\x96\x88KPQ[o\x18\xd6\
+\xad\xa7\xacl\xee~oX7\x8f\x98\x08\x95V\x0a\x15\
+\x00b\x7f\xa8\xe6I\x99Cm\xdb\xfejX\x87\xb0f\
+`P\xc8=\xd1.\x08)5\xe9\xa4\xf2\x19\x93H\xad\
+{<(\xac\xab\x00\x9b\x9f\xfd\xca\xb0n\x0c% \xcc\
+x8=\xd0\xb4\x09\x00\x1b\x09 l\xff\xbe\xe6\xff\xce\
+\x94|\x09\x9e\x80A\xcf\xab\x03PE\x1e\xa0\xa1\x95\x06\
+\xc5\x1fe[\xe5H\xc0m\xfdz\x1e(\xd7\xe6\x10\x13\
+kT)\xa3\x1a\xac\xb2\x85\x99\x008\xa3\x89A\xac\xee\
+\xdbaK+\x8b\xfbY\x01\x89\xc0\x0e\xc3\x86*p\xf6\
+\x80\x03\x0a\xad\x8b\x0a\xd8%\xac\xc6h%pY\xe2N\
+\xa9v\x0d\xf9\x1e\xde\x11\xb6\x00\x9d\xe3;\xc2\xbau\x9c\
+\x01\x7f\x89\x7fJ\x14$N\x00\x10\xf7_@\x91\x81k\
+\xad\x13b\x96\xc4/\xb3\xb2\xb5}[\xd8\x22\x16\x18J\
+5M\xab\xe6\xa8\xa4\xae&\xe5\x0e\xe3g\xfb\xafsE\
+n\xf8IX{\x9f;o\xee\xdcU\xb2\x9e\x96\xbd\xd7\
+oO\x11\xcd\x17\xa7\xe8\xe3M\x92:\xfb\x84\xd4\xb4Q\
+\xa9\xb1\x9er\xfd\xb5\xf7\x0b\xc6\xc3\xab'{U\xa7\x99\
+\xa2\xd2\xab\x05J\xe0\xc7\x7f\x06l\xf5\xcdT\xf9\xff\xcb\
+l\xd1\xfb\xcf\x8e\xc1\xf2\xd6)\x91}\xeb\x12\x80\x0f_\
+\x1c\xbe0|qz\xfd\xe5\xb0N\x1b&\x99 \xc3C\
+\xc3\xa6\xeb{d\xd8\xf4\xfb\x17\x0f\x9b\xbe\xff\xcd\xb0\xce\
+\x9f\xf6\xe3\xcb\xee\xd0\xf9\xfb\x04\xc0T\xeaT\xf6Li\
+\x10\x08\x0d\xb7\x08\x9b\x9e\xfb\xdf\x86u\xe35c\x17\x9d\
+\x99T\xdfg&\xe3\xe2\xb9\xed\xf7\x1e\xdf~\xef\xde\xc3\
+}\x86\xfbt\xda\x0c*B\xf7\xdeq\xafv\xeeP\xd7\
+\xcfs\xcc\x5c\xf0\xea\xdd\x07\xe0\xfco\xd8r\xbd>g\
+i\x1d|;\xac\xf3;\xb9~\xea\x0b\xd0\x19\xc4\xf5\xb3\
+\xb2g\xf4\xaf\x96\x04e\xb8z\xd8\xf4\xfa\xd5\xb0d>\
+<$\xc5W_\xd0\x89\xc3\xd2\x5cR\xd1\x15B\x01\xe4\
+\x00\x87\xceG\xfb4\xf7\xdb\xf6\xf8\xb0\x851S\xfb1\
+\x9e\xd2\x95;?\xe5\xfc\x94\x80t-\x96\xed\x1ct\x1f\
+\xfb\xc4}WW\xb0\xe1\x9f\xc4{\xe24\xf1\x92\x0a\xbd\
+\x9fs\x1e\xaf(\xb8\xe5\x97\x8e\x9a5m\x9a\xd7\xea[\
+\xd7$j\x12\xbe\x0c\x98Q\xe3%\xa0S\xba8\xef\xdb\
+\xdb\x85u\x01\xfe\xd9\xd9\xb3,\xde\xccV\xad\xaa\x1cK\
+\xa8\xb2\xe5\xad\x98f\xff\x92\xe3A1\x9f\xb4\xfc%S\
+\xaa\x80\x1f\x801\xa04\x13y\xd3\x19*>[\xb7\x9c\
+\xa0\x96k\x1d\xa0\xfd\xe4y\x89\xa3$l\x9e\x93\xe7\x07\
+\xe0W\xe8\x10\xf7\x88\x1fV\xd3\xaf\xa6he\xb2.\xae\
+\xcd\x04\xabZ\x0cT*imekN\xf9\x9b\x8c#\
+\xab5c\xcc\xbf\x13e\x85;u\xa2\xb7\x80O\x9f\x13\
+\xc3MK\x1b\x86\x10\xea\xba\x82\x06 @B\xa6@\xa9\
+\xf5\xe9\xf0\x04\x16~g\xc7\xdd\xdb4\x99\x15\xa0\xb49\
+5E\xf1\x0e\xcbs'\x19H\x05,\x10\xe3\xfdd\x8e\
+\x1d\xc7\x80\x11\x07Z\x1f4\x05\xb2\xb2_\x95[S7\
+\x003\xb9\xdf\x86_\x0d[\x9e_\x8d\x1b\x06\xfc\xcb[\
+\x00\x1e\xfc\xb5\x04\xf2\xa7a\x1dp\x97\x0c\xd7\xda7\xd6\
+\x95\xd6J=\xf1\xa6\xf2h\x89\xa1\x01\x04\xe8\x96\x88\xab\
+`\x03\xe6$\xd4\xc6\xd1I\xdciX\xd8\xbf\xa6\xcc\xe4\
+\xb8\xc7\xb5\xc8\xe7\x85\x18)\xc4;%\xf8Zn\xf8\x19\
+\xcf\x81\x88w\xfa'\x8c\xd0\xba\xbf\x0aM\x0a\x0e\x12w\
+\xf7C^a}\x88\xdf\x89AkA\x07\x8c\xda\x9f^\
+1\xc4\xc4\x97\xe9\xef\x8a\x01\x93\xf9P14\xe4\xbd\xfc\
+\xd1J\x0c\x9e\xe6F]_>\xef:\x1fM\xc13\x05\
+\x003)\xf7Qk\xb9\xbb\xd9\x028\x96x(Q\xf4\
+\xf4\x8f\x98\x22!u\x1bb\xb7\xa5E\x96\xe7\x99\xe7\x87\
+\x91\xbdk\xdc;,\x1dM8\xa2}&\xdb\xb7K\xb0\
+\x03_\xf8a.\xb8\xff\x5czq\xc7\x0f\x86-\xaa\xcc\
+\x95\xe8K\xe49\x10\x07\x81\xc4\xdf\x86\x5cUd\x0b\x01\
+\xa6\xb2Ou\xdf\x81 \x81\x96\xf0s\x00nx\x9fh\
+o\x97\xebn\xcb\xaaC\x96[e\xee\xbf\xdb\xd8\xb6\x03\
+\x1a\x02\xe4\x00\xb2\xa0#\xec\xbetwPq\x90\xfe\x9e\
+\x8d\x8aB\x9c\x1b\xb3Q\xd2\xf6_\x01\x13\xe7]\x84\xc8\
+D/\xa6xN\xf7\xf9\xb4\x00\xc42\xbdzG-V\
+\xf9\x17 \xa3zr\x98*+OH$\xfbe\xb3&\
+@\x89u\xa8\xa0\x9a\x97\xac\xc7y\xdf\x1c\x07\x220O\
+*k\x89RQ?\xd5{\x9c\x95-\xbdBu\x1d\x09\
+\x10\x14\x22\x85\xaaDl&\xa9Zz?-\xcc\xaa\x08\
+$\x82U\x220zF!i)2W\xad\x1c\x12\x7f\
+\xc8\xb4/\x08\x9f\xdfS\xe1\x07T8\xa0U\x04\xac7\
+\x011$\x92\x83_\x1f\x94~\x1e\x80q\xf5\xa4\xd0\xa7\
+\xd8bQ\xfe\x1f\x9f\x88\xdd\x0d6\xbf\xd2\xc6/^g\
+s`\x9b\xbe\x90\xff\x7f\xb8U\xd8\xc2p\xa8\x0d\x1a-\
+\x05_\xeb\x12}\xaa\x9d\x99\xa8no\x14\xd6\x89\x09\xa5\
+\x9a\xec\xf8\xe5\xb0\xe9\xfb\xdf\x9b\xec\x88\xe9\xfb\xb7\x85-\
+\x89\xec\xf8\xc7\xe3\x13\xc6',\x8e\xaa\xc6\x0bI\x0c\xbe\
+\x90\xd4\xf4/\xa7X\x92\x04\xce\x01\xf2\xbd\x95J>`\
+E\x8f!\x07\x9d\xaa\xb2\xe3\xe7\xc3\xa6\xd7\x8f\x84M\xaf\
+g\x87M\xaf\x8f\x0e[(\x94\x80\x88\x12\xcf\x03\x04&\
+\xb0R\x00\x00J\xa5y\xc8DM\xf44\xa9\x5c\x11\x9d\
+\x11\xa8\x19\xcf\xa4\xc2\x90\x81M\xcdY\xce\xc0\xbc\x80.\
+\xeb6+\x08Z_\x8c\x0f\xab\xde)\x81T\x1e\xac5\
+\x15\x01\x12-\xd0\xd5\x12 QG\xf9\x02\xf0\x9d\xd0l\
+\xd1\xf2\xf8J\xd8\x02\x88\x94\x88\x1e\x86\x0c\xff$\xc0\xb4\
+\xbe\xf58\xa2\xf0\xdb\xa7\xb4\x06\xa8\x01S\x93\xcf\xf5U\
+\xf3\xec1q\x04\xd8\xb9\xaej\xbf\xf8}\x09\xb1\x1e\xb6\
+\xac\xe0\x94\xd8\xe3\xa3\xe7DX%\x18\x00c\xcc\x5c]\
+\x17$\x9f\xdf\x03\x00\xe4\xbe\xad\xc4\xef\x09a]\xc0\xef\
+\x80L`k\xe7~a\x0b\x05q\xf7\xfd\xc3\x16q\xa8\
+\x9aV\x90\x0c\x1e\xe2\x82\x15\xb0\xa12{\xeeZ\x99\xf8\
+\xb1\xdc\x7f\x9b\x1b\x85u\xeb\x02\x10D\x0b\xe4\x7f2P\
+R\xe9\xe6/hW\x9c7\x8bD\xd6:{\xd3\xcc\xb8\
+\x18\x8e\x08\xeb\xb4?\x9cC):Uc\xd0\xb2r\x88\
+b\x8c\x22\xb9\xd9?\xc5\xe7rJD#v\xde\xb3[\
+w(\xb7\xee\xbb\x00]\xab\x8f\x8aj\x84\xbb\x0f\xee\xc6\
+\x9cf\xe0m\x8a\xcc\xb4\x86f\xb1\xde\xa7N\x9f\xee\xa9\
+\xd3u\xef\x1f\xd6\x01\x9e\xe6\xc4ge\xb5Df3\xd0\
+\x1c\x0f\x0c[\x98w\xad\xb0\xf0\xd3\xbc\xae8\x17\xee<\
+\x03\x22\xa5\x01\xa0\x02\x95\xfevJ\xdc'k\x15\xf0\xa6\
+\x09Q\xadZ\xa6c\xe8\x89\x0cX\xe7\xb7\xba\xc4?\xc5\
++\xed\xa7j\x19#\x12\xe5yH\x88_\xb1}yT\
+\xe8*\xe1\xce\xeb\xaa\xf3\x17\xc0\x99\xad\x0a\xc3#\xc3\xba\
+s-\xb4\x80\xf6\xeb\xa8\x99\xe9?'\xff;Y\xe7O\
+\xe3\xb4|U2O\xde\x96\x9a\x0eg-\x81\xfb\xf0\xf3\
+\xb0i}\x1f\x1b\x96\xc0\xff\x8e\xce\xef\x8a#b\xd5}\
+?\x13\x94\xd3;\x0aq\xf4\xe8\xdf\xab\x0b`\xd7\xf3\xa3\
+\xd7\xd4X\x94\x7f\xc0w\x16\x80.\xc4\x88[\x8f\xc5\x92\
+h\xba\x1e\xeb^\x80\xeb\xf7\xd6\xd3\x03$\x16+q\xe5\
+\xd2\x02\xc8\xf9\xdek\xf5\xedj=\xcd\xf5\xd6\x00\xc2\xb7\
+t\xf3\xc1%\x0e\xa8\xed\x9eW2\xa3\xc6k\x845\x0d\
+\x9b\xa75\x91=@\xe9\xc53\xb1\x13\x07\xa8d\x02T\
+Up\x89\xe9\xadDw\x87;\x87\xb5\x84s\x16A4\
+\x0d\xc6}w\x1fU\xcc\x13x\xa9\xb1w\x18\x80\xa6\xc2\
+\xf0\xeb\xa6\xb8\x5c7l\x89\x03\xea\xfd\xa8\xf6kq\x04\
+\x9cgBUbu\xe2C\x0c\xab<g.\xa4q!\
+.\x95\x00IxQ\xbd\x15`\xb2\x00U*\xfa\xe2[\
+\x22\x94\x9e\xbb\xf3\xd8\xb9)\xc1\xbc\xee,\x12\x08X\xaf\
+V!\x80\xcc\x8a\xaa\xee\x1c\xae\xf1\xc2*\xdc\xe23\x09\
+\xa0\xf8D!)5{\xaa\xb2\xff\xaeL\x90\x9f\x9c\xc0\
+\x83\xbfC\x13\xc4\xfd\x0f\xcd\x89\x87t\x22\x95ZIR\
+\x94ys\xeb\x04\xe2\xbf\x96\xda\x07\x98u\x12M\xe7\xbd\
+1\xc89\xf5\xa5\xf6\x99\xf3\xc6\xf9C\xeb\xcc~Up\
+\x03\x04\x98\x86D|\x1b\xd0@$\xdb\xd8\x5c\xaf\xa9\xe5\
+\x22\xd1\x1b\x0e\x0e[\x98\xb9D\xe7\xaaE\x12c\xc4\xba\
+\xe0\x7fW\xf1T\xc5Q\xce{\x05'\xf1\xb2\x04\x1b\x10\
+%>\xd4\xdaF$\xcf\xbe\xb6\xae\xb2\xd5\xa9\x98\xe1\x98\
+\xcf\xe2\x03\xad\x87)\xde\x8a!X\x1a<\x187\xee?\
+\xc0\x0c \xa0U\xda\xfas\x0eZ\xb7\x80\xcc5#F\
+\x9c\x8f\xf1\x8d\x89\x80bOdPAFa\xce\xfa\x97\
+'*\xd0i\x1d\x12\xffh\x9d\xcc\x96\xa3\xed\xd5\xc2\x96\
+\xf7\xaf\xa9H\x80>\xefO\x93J\xcb\xb3\xc2\x0b?l\
+]\xad\xa7\x1f\xad\xa7\x07\xa4\xc6\xc9\xae&Z\xb2W\x22\
+\xdb\xe7d \xf0\xb6\xa5B\xd0\xf0\xea\xc7f\x828\xfd\
+\xc1\xf1o&{}&\xfe?\xef\x10T7\xd0\xc6r\
+ \x08\x5c\xd7\xe3!\xfc\x9c\x7f\xef{\xef\xf7\xec\x80\x03\
+\xbd\xfaII\xab.g\xef\xb3\xfe\xf2\x01\x7f\xd2\xc8\xb8\
+K\xa2\x8d\x11\xb0V\xb9\xcc1|\xb5\xf00\x0f\xd6\xe3\
+-$\xac\xae\xe3\xff\x00\x04\xda\x7f\x7f\xda\xfd\xbb\x9f\xb3\
+1L1X\x03 \xee\x83\xe9\x01\x16\xb8\x85\xe8+\xd5\
+\x22\xeb\xe0[zG\xf4n\x1b\x931; \x94e\xd7\
+\xa3\x97\x05\x12(\xd05%\x80\x9a\xb1\xc4=\xb5\x00\xca\
+!\x9b\x0b\x9cs$\xab\x87]eC\x80\xc9\xe1\xad\xef\
+\xa3\x9e5T}s\x96\xcd]\xce\xc0\xbfD[8z\
+\x95\x00\xe3n\xee\xd5l\xf9y\xea\xe86\x98\x83M\xe0\
+\xa5e\x02\x85\xcd}\xb518&\x15\x0e\x7f\x17\xe5\x87\
+#\xc9\x9e\xee\xcdQ\xb3\xd8\xd2\xe6\xa0\xb0n\xee\xf0k\
+6\xafn\x15\xed\xbf\xd8\xf1\xdc\xd6+\xfa\xb0\xcd\xd1\x91\
+xVOOT4\xef\x9b\xcc\x89_\xedD\x19\xcd\xf5\
+5\xe5!{i\xb5N\xa8LB\x96\xc7\xdb\x8d\xbf1\
+N\x07\xe6\xf8\xdd\xf1{\xe3w\xdbA\xf7\xb5\xa8|\xc7\
+w\xed\xfb\x93\xb7'mOZ\xa8\xca\xbb\x1f\x1d\xd6\xa9\
+HK\x0c\xf2>n\xf7\x0c\xebD\x0a\xb3\xc2\x19\xc3\xcb\
+b|YQ\xf6\x04\x0a4\x09$()\xa64>5\
+\xac]\xc7d\xd3\xeb\xfeaK\x22\x80\x91RH'\xb1\
+B\x15*\x81\x22\x87\xa7\xd7\x1c\x92\xbd\xd6\xfe\xe0\xf8\xec\
+3\x01&Q\x1b\xaa\xbb\xaes\x08[\xc6)\x19\x87B\
+\xbd\xb5ZOPj\x05\xc6\x80*\xcf\xdb\xd8\xd3\xac\xe0\
+T+\x8a\x00E\xc5\x01\x05[O\xbd@U\x05!\x0f\
+\x96R\x17Gms\x9f\xb5\x18X\xa7\xf6\xb1\x037\x03\
+\x98\xeaA\xcf\x03\xa1\x00&\xcc\x0d\xfe\x0d\xd3\xc0\xef\xe5\
+\xfe+\xcd\x14\x80\x87\xd6\x13\xaa\xc2\xfc3\xd19\xe2\x5c\
+\xa8j\xa8\xdc**DR\xb3r[byk`4\
+\xf7M%\x14*o\xc4\xc80\xa3 \xdcy_\x1d\xc0\
+\x12\xc1\xe1\xeba\xd3:\xbboX\xd7RE\xf4\xd1>\
+\x13`[W*<\x12\xbd\x93f\x8a}\xa9\xd3KL\
+\xf9\xff\xdc/\xe5\x8f\xf6\xc9\xebJ\xe0Ae\x09 R\
+\x1a\x19z\xd6s\x8ex\xec\xce\xd8\x9f\xd1H\x14\xadD\
+\x05\xb4\x1asuD\xb3\x85\xba\xea|9q\x06\x8e\x8a\
+\xca\xfa\xe9)\xfc\xf9tW\x09P\xd1\x05 \x1b_%\
+1\xd2\xb2\xa3\xd2\xe7sK\x80\xf4\xa4g\xcb\xcb\xf0'\
+a\xdd8\xbe\xac\x98\xb4\xc0\xed\xa0\x04\x82\x8f\xcfD\xeb\
+\x81\x0b\xc3\xa2\x01to\xef\x12\xd7\x08\xd3\xfe.+\xed\
+\x0fN\xf1\xa6+,\xe7IM_\xa1\xf9\x92\xda\x04\xd5\
+\x9a@\xb4\xee\x9f6\xef\x08\xe0js\xee\xe6\xbc\xd0\xb6\
+) .\xd6\xdf\xa3:\xa6Y\x06\xd45\x0d$\xc6\xe1\
+\x0e\xddXO\xad?\xc4\xf2\x22@\xfbLGY\xcd\x04\
+\xd1y3<5lz\xbd\xe7d\xd398| l\
+\xd9\xc7\xc3\xcd\x86C\x87C\x1bp03E\xbe\x1f\xb6\
+\x00\x18\xe3\x13\xc3\x161d\x8c\x8b\xcdw&\xfbn\x06\
+\xb8\xd3\xba\xda\xf9\x98\xc9\x1e\xb50\x00\xaaR\xaa\xb5\x89\
+\x7f\x90x\xf0C\xc1\x88\xbau\xe7\x07\xc5W=%\xff\
+\x12\xdd\xab\xca=-\x18L\x19\xaf\x02I?o\xfd\xf3\
+\xb7\xceW\xdf\xfb\xff~\x9e\x7f\x16\xf7\xa8\xe8\xfb=\xff\
+\xaeP\xe4\xbc\x15/\x02\x08\x00\x99Z|\x22\xa1zc\
+\xb6\xf8|\xa2SC\xf7\xb9\x01`\x99\x18\x8c\xa7Lv\
+j;\x07\xef\xd1\x12\xa8d\x0a\x10Y\x9b\xce\xcd\xafn\
+\xbf\xdaM=\xc8\x8a\xb3\xfdY=\xbb\x18C\xd9\xcb\x5c\
+ZA\x18<\x18{\xce\x1d\x95C\xf7\xe5\xbf21\x11\
+\xf7\xd1r\xb9qj\xc5db\xafU\xa5\x12\xff\x04P\
+U\xd6\x8b!\xa5\x07\x19\x00\x8c\x89hj\xc0\x19\xcd\x16\
+\x0at~_\xe2\xb0\xd6\xb9\x04A\xfc#\xf1\xc3\x9cu\
+\xbe\xad\x0bnZ\x8fTt\xb3w\xde\xba\x22\xfa\xbb\xf9\
+\xeb\xb0N|.\x98J\xaf\xee\xa60\xa1\x86\x13\x9du\
+\x9f\xf9\xe5Lh\x87\xcb\x84u\x15k\xff_|\xe7\x0b\
+\x90\x9a\xadR\x05\x90\x12\xe1S\x19\x16\xff;w\xe4\x05\
+\x07fk\x9cV\x80\x17\x87uq\xc9\xd3R\x9bD\xde\
+c\x9c0fB\xfe{i\xc8h5#\xb2jl\x9c\
+\xbf\xab\x12\x1f\xe3\xd7\xff\xbc+P\xdc \xac\x9b\x82`\
+?\xf0w\xc1\xdc:\xa1\xd3P!\xfe\x99\xbf_\x8c\x00\
+\x09\xbc|\xc9~\x05\x9ch\x1d\xa1\x05\xa3\x80\x81a\xf4\
+\x85\xb0\xceO\x00\x10M!1\x86\x90:\xbeB\x08\xc6\
+\x868\xdb\xef+\xb4\x89\x83\xc4\xeb\xe2\x19\x05\x16\x80\x08\
+\x00\xc4\xe7\xf2\xf93\xae\xaas\x09\x93\xd2u\xe7\xf4\x8f\
+\x9a.\xe6~{\x8e\xf6\xe5\xba\xa5\xc1\xfd\xe17\x8d\x85\
+\xc6\xe8\xcb\xd6\x8cb\x0e\xa4?\xab\xcf\xbf\x16\x11T\xa8\
+\xa4\xd1\x84\x19\x9a\xcc\xda:\x7fii\x18\x07\x18\x05\xea\
+\x03:&\x05&\xb7\xa9[\xb4DL#\xd0\xb2o}\
+\xfb<\xfc)@j\xc5\xf0\xdc\xd5\xc4(NH\x87O\
+\x1c\xea\x96K\x0f\x97\x0f6\xfe\xc7d\x81H^|\xb2\
+\x8beB\xf4\xa5L\xf4\xc7n\x81\xad\x13s\x0e\x83\xe3\
+\xf3\xff\xdd\xe05\x00`c\xea!C\xd1\xc7,\x18\x1b\
+\xa9\xe8\x82\x94\xfa\x1e\x10\xd0\xcb\xef\xe7Q\xf9\xb3\x07\x1f\
+E\xdb8\xa452Nm\xbd\xb9\xa5\xcbu\xbd\xfb\x12\
+\x0f\xd7\xbb\x9eg\xeb\xc1c\x22\xf4\xdf\xff\xac\x13\x13t\
+\x1f\xd6\xaa\x9eC\x93'Z\x00\x8fo\xb5\xc9\xc4\xcbF\
+\x81H\xfbz\xc8L9\x1d.6\x5c|\xb8\xf8\xe2\xc0\
+K<\x888\x98\xf9\xa7\xc6\xe3\x11\x1f\xbbx\xf6\xf2\x13\
+\xb1\xcb9\x93\x95\x00\xa1zg\x02)\xc1+\xea\x12\x8a\
+\xb5\xb9\xbf*\x89\xc4\xfeT\xf2!r\x0e\x1c\x0b\xd2s\
+F\x85\xa5\x16+\x11\x13\x08\xeb\xd1E\x11G\xa9\xc9\x8d\
+P\xaa\xfe/\x08\xebz\x9b%<(\xa7y\x1f\xabB\
+C\x1c\xc5\x06\xd2\xeb\xb7\x1eW\x94\x01^\xf5\xf4?$\
+\xc7\xcb\xb8\x1e\x81\x09j\xdb\x9b\xe7i\x0e5\x86\x86\xaa\
+z\xf6\x12\xb7J\xec\xf7\x17F\xc3p\xa5\xc9\xae\xd8\x1d\
+d_Jd0\x02\x93\xffZz\xc9\xc7W\x855U\
+\xe1\x1f\x84\xaa\xb0\x9eC\xcc\x80\xf1\xef\xc2\xa6\xd7\x9f\x84\
+u\xe38\xffx\x0e<\xb7\xbf6\x8f\x81\x1a\x7f;\xac\
+\xa3\xbay~\x02\xa3\xd4\x1a\xd0{\x8c\xe9Q\x15d\x09\
+\x9a\x03*\xc7\xaaUO\xeb\xe1a\xcb\x98\xb7\xf1\xd2a\
+\x8b\x18R\x8d\xf5#\x16fL\x1e\x8a\xb6@\xd0z\x17\
+XYG\x10W\x01\xac@\xd7zZQ\xac\x8a\x9a\xc5\
+\xc1b\x08\xac\xe6r\x17\xd5>E\x03\xab\x82\x04(\xc9\
+\x83\xb6ZZ\x88\xf798M\x11\xa0\x9al\xfd$u\
+\xb8\x12\xd7\x14K\xac\xca)1\x9c\x1c3V\x9f\xdf\xc1\
+\xadW\xd4\xba\xe4'\x01yD\xfbP\xbf0f\xf2\x00\
+\xb1\xbf\x8b:H\xd4n\xa510\x5c%l\x9e\xa3\xbd\
+=\xa6\xab8\xab$9\xc8\x88\x19fB[*\xec*\
+\xf8\x7f\x18\xd6U~\x00\x01\x09,\x94F\x89\xca\x97\xe7\
+h\x9fI\x08\x00\xc8\x00\x18\x89N\xf6H\x96\xea\xb4\xe7\
+v\xe6,\x96S\xaa\xca\x02\x02\x09{\xb6\x12\x0do\x09\
+\xeb\x98D\xee\x8b\xf5\x08H\xdc{\xde\xd7\xa5\xc6\x9c\x15\
+\xaeR\x1d\xf6|\xf2\xfd\x8b\x12\xff\xc1\x14;\xfaj&\
+\x16\xc6eeBT\xa2XW\xcbu\x0d\x80\x05\xe8\xde\
+#\x01\xc6\xec\x1dn\xa7\xd4\xb5\xf3\x5c\xbey\x0b\x8cf\
+\x86\xce\xfey_\x00D\x02_\x958\x00H\xee\xef\xaa\
+\x14\xd2\xcc\x00d\x0a\x90\x054*T\xc6_\xaaD\xa8\
+\x88EK\xcf\xed\x17\xa0a\xf8\x9f\xb0\x8e1\x90\x81H\
++\x14\xbc\xaei L\xd6U\x90\x8c/t\x0eQ\xd1\
+\xbfBXw^%\xd5\xbe\x98\x12\xa6\xc9dk\xce\xf8\
+/\xe3\xe9\xe3\xbf\xb4ss>/\xa3\x81\xe2\xed\x09\xc0\
+}\xbek\xe1I@\xa0\x8d\x0d<j\x01\xbeM\xcf\x19\
+_;\xben|\xed\x12xMi\xcb\xfc|<\xdfL\
+\xe8\x86;\x86-\x0c\xae\xe1Ua\x9dh\xe73f\xa0\
+\xad\xb4w\x12x\xa8\xd6\x9b\x0c\x14\xc7\xbd\xc2\xba\xf1\x80\
+\xd9z`,#\xd5vSi\x8a\x91e\xffi\xf1R\
+\x11\xb4\x7f\xbe\xd1\xe4|\x97J\xd7\xaaw\xbd\xe2\x8c>\
+\xde\x18\x12\x90\xdf\xab\x9bBb\xda\x89}\xc7\x8f\xda\x97\
+zNs\xfci%\xf2\xe2\x19\x00R\xb4n\x98\xc3}\
+N\x17\xd7\xac\xd5\xcb\x01\x05\x02V\x80;\x7fo<u\
+\x02D\xc3\xb9a]\xa1!\xc5s\x89LK\xac\xc7\x9b\
+\x86--\x12\xc6\x8a\x1ak\xb9\xbdT\xd8\xf4\xba\x7f\xd8\
+\x02\x94i=\xc2\xd0\xaa^z\xda\x03\x12V\x22\xcb\xa6\
+\x18\xb9^\x95\x7f\x89\x84\x04{\xaf\xac\xdc\x8a[\x8c\xfd\
+2m\xe0\xa8\xed\x91\xdb#\x1b :\x03\xa5\x98\x8a\x00\
+R\xe7c\xb6\x9a\xd9\xcf]\x85\xfa\x82\x22h\x99\x88\xd5\
+\x1cx\xad\x85Z\x0f\xcc\xa3_\x8b\xd8y\xdey\x0e\x15\
+\xe5\x1a\xd5\x99\xfa\xba\x04P\xc2\xa8\xf7?\x01\x98\x9ag\
+N;h\xa5\xf5@\x04\xba(\xd5\xe9\xcf7\x1f\x0d\xeb\
+\x18\x0a\xcem\xf1\xad\x82\x14f\xc3\xba\xe2\xaaW\x1f\xa0\
+\x91\xfb\xa7\x80\x22\x00\xb8\x96\x11\x1a#\x09\xa0\xd7\x94\x1c\
+\x80\xa8\xca:\xff\xca\xdf\xf2\x8f\xc7\xe6t\xa73St\
+5\xa7\x17\xb5\xc4\xff\x19\x1dP\xa2\x22\x8eAF\x03\xc8\
+XZ-H\x0a\x7f\x80P\xad$w\x0d\x9b\xde\xe6\x99\
+a\xcb\xdf)-.\xcc\x01\xc0\xb4\xfb\x94\x85\x07\xe7[\
+i\x12\xa5\x9f(\x0d\xa9\x04\x88\x0a\xa0\xd3\xc2'\xbe\xa1\
+eb\xbd\xd1\xcc\x11\x17\x9bN\x05\xa0\xb1\x1f\xf8\x83\x8c\
+Gj\xdd\xd9\xe7\xd6i2\xa8\xaa\xe0\x80\xd1\xeb\xb9Z\
+?\x00J\x15\x7f~@\x81\x04\xf38\xcf\xe9P\xbej\
+\xc0\xae}K[\x82\x1f\x92\x8fY\xc7\x80;\xc0\x85\xb8\
+\x12s\xc0\xb9\x89\x91\xa0E\xd6\xfb\x8a\x8f1O\xacO\
+q\xabq\x8fZ3iC\x00\x9a\xc4y\xb4\x9b\xf8}\
+\x9f;\x0bW\xc5\x1c\x05\x808\x07\x00/\xe2F\xfe\x99\
+\xbf\xb5\x8f\xf6\x0f\x0b\x00\xc0\xbcaT\x8b\xa8H|4\
++0\xd3\x012\xbe1l\xfa~\xef\xc9zj\xbcy\
+\xe4\x16\x8c\x80\xcd\xc1\xe2\x81I\x98/\xea\xf5\x12\x17A\
+\xc1\xf7\xfd\x1a\xb1F\xe5_\x03\x0d\x12g\x09\xdf\xba\xa7\
+\xccF6~\x0f\xd5\xde\xb8>\x22{\x10o\x07\xdf\xff\
+5u`\x9d\xc0\xfa{Z\x1c\x00\x14\x80\x11\xf7\xc5\xbf\
+Sw?\xa7\xd5p.\x1c\xe8F\xfaz\xed\xee\xfe\xfa\
+\xff\x16\x92\x9eU\x017j\x9c\xdef=\xaa\xe6@\xfb\
+\xbaL\x22\x88\x12q\x88\xd4\x99\x89\xc0\x9d\x91\x07C\x06\
+\xf6\xe3#\xc2\x96\x9e\xc6\xe1\xf9a\xd3\xff?r>\xa8\
+\x86\xdf\x0c\xeb6p\x22\x90\xc6\xe8\xd5\xc1\xe2\xe0\xe4\x90\
+m8\xc0\x86\xcf\x07\xb9\x97\xc0C\x04mTT\x1f\xc8\
+\xab\xfb\xee\xb9\x99\x83~FXG\xc9\xb5\xde$\xd8(\
+\xb6\xd4\xe1\xa95\xe7AY\xdf\x13O\xcc\x04\xb2\x126\
+\x14\x9dt\xd86\xd2\xb4)\xe7\x8a\x91\x0a\x1cU\x7f\x14\
+T\x07\x9b^R\x80E:\x9e\xe1\xf6a\xdd\xbcN\xbd\
+\xadzz\xb37u{\xec\xf6\xb8\x18\x13\xe9\xb9\x8f\x0f\
+\x1a\x1f8>pq$\xdb\xc3f\xd1\x98\xddCXC\
+\x90\xdbX\xbe\xf1\xa1a\xd3\xeb\xbf\x86u\x07e\x06\x1a\
+\xe6\xbb\x17\x02\xf9\xc3\xb0\xd6\xa36St\xcf\x9e\x13\x01\
+\x15]*\xad\xdb\xcb\x85M\xbf\xff\xb9\xb0\xe9\xf5\x06a\
+]e-\xc5\xffZB\xf07KE\xb0*\xef\x02\x93\
+\x9e\x01\xb3o\xf7\xbc\x05\x86T\xc13P+\x07\xa8\x17\
+\xca\xfa\xe2\x08Q%9\xc4\x04\x92\xb6\xff\x99\xaa\xc1\xef\
+\xcb\x0a\x9a\x9e\xe7\x0c\x00J\x15\x18\x03\xe0q\xcd\x16\x84\
+_o\xa3\x80\x8b\xf8\x0b-\x07\x07\xf9\xda\x91;(%\
+:\xc4\x8a\xf4\x0a\x9b\xab\xeb\xe05N\x8c\x9f\x11XY\
+_* \x10j\x00\x1a\xc0A\x05X \xa9\x02\xe3@\
+7\x96.\x91\xedb\x0aA\xe0\xf9\x09\xf7\x81\xdf\xc9D\
+\x8e\x9av\xa9\xf6&E\xb5\x800\xcf\x13C)\x03\x91\
+b$\x18\xd7DT\x89H\x91\xbf'\xc0\x00Py\xee\
+*\xf8\x12\x12\x07bTR\xbf\xb3\xf4\x22\x12W\xdb\xfe\
+V\xd8\xe2v\x8c\xe91^\xad\xc4gU\xfeR\x8c\x07\
+\x85\x12\x03\xa7*\x11\x09\xf0T\xcfc2\x95\xb6\x0f\x0e\
+k~\xb1\xedc\x89u\x0c\xd5\x8d\x007\xd2\xccH4\
+=\xff\xd2\xd0\xb0~T\xd2^\x99\x22a'\xcd\x0c\xab\
+\x96\xc6\x1d\xda\xadK\x15\x0e\xbd\x93\xf1\xd7\x9f\xd5\x05\xb6\
+\x02HTAc\x0d\xcd\x15\xc7\xfc\x8a\xd5w\x9f.\xa0\
+\x15\xb0I Q(\x05\x0c\xd9\x8b\x0f\x10o\x14\xd2#\
+r\x1d\xddo\xfa\xdc\xbf\x16\xd6\xfc\xf1\xcc\xb4\xcb}L\
+c\x03\x004\xfcq\xd8\xc2\xf0i\xbd\xf9\xf7\xeez\x95\
+\x1f8=\xcd\x07v\xd4\xff+\x86M\xaf/\x08\xeb\xa8\
+\x92\xefo;xI\xc4R\x1c\xb01\x0a\xae\xd3\x89\xda\
+\x12\xadM?m\xecm\x89\xb7fB5\x9e\x15\xd6z\
+\x95\xef\xd4DPU\x00\xb3\xb2\xd9zV\xa7}<|\
+<\xac\x03.R\xc5\xb9\x80t\x22\xae\x19\xb8\x8d\x1f\x0f\
+[z8Kd0\x00\xb0\xd3\x97\x04wxaX2\
+\x8c\x0e\xec4\x7fTt\xf4\x02\x9b>\xa2\x82\x07\xd0\xa1\
+\x95\x13\x81\xff\xc9K\x8bFM\xdb\xc0 \x10\x08z\xfd\
+\xdf60q\xf9\x12\xe8\xa2\x9e\x0a\xd4\xf9W\x22Z\xfc\
+\x85\xf8\x0f\xb0\xc0\x7f\x9b\xc7N\x13&\x00\xb1\xaft\xad\
+\x0b\xe2\x99U+`\xadG~;\x81'\x09'\x15\xee\
+\x1aC\x86i\xf3\xba\xc9^\xbb\x9c?\xe3u\xc3\xa6\xd7\
+\xc3\xc6\xc3\xc7\xc3:\xcd\xaa\xff\x0ek\xfel\x8e\x0b\xf9\
+s\x0c>\x8c\xa8L\x18k\xff\xf0gZ\xb70$\x01\
+5\xfc\xad\x04\x5c\x22!\x0eN\x7f[b\x9e\xd9\x8a%\
+\x01\x9c\x92\x86\xd9\x9f\x13)t=\xce\x01\xe3\xe1hJ\
+\xf0\xfb\x18[}\x0b\xeb\xb9\x9d\xeazN#\xa8\xfd\x85\
+\xc1\x90\xe7TQ\x93{\x86\xebO\xbbu\x07\x18\xcaV\
+\x8a\x024\x9d\xcb\xe28c\x05M\x1b\xc8\xf7-\xc6\x81\
+\xe7)\xae\x01\xa8\xd2V\xc1TH\x7f^~\xc7T\x01\
+\xe7 f\x1a5t~X<\xa3u\xc2\x18\xb6\x1c\xf3\
+\xab\x85\xa1~\x0f\xc0\x8a\x19\xe5\xf3Z\x87\xfc\x9f\xbf\xeb\
+\xbc!\xd2F\xa5^\xe2\x88\xf9\xf1\x99\xe9\xa9\x7f\xa6k\
+\xd9U9\xce\x0a\x7f\xe5O\xfcK\x88\x89^\xb2\x03z\
+Vc\xfd\xea\xe0\xd2\x8b\xff\xc1\xb0N\x1c\xd3y\xad\xc0\
+\x05X7~Y|d]\xf8\xbc4\xbd\xb20Xb\
+\xed>\x8fB\x84D<[c\x8a\x81b\x1d\x88\x83\xc4\
+-\x09\xf0\xeb\xd9\xafs\x9c\x9fR\x90\xf3\xbc\xc4k\xf2\
+9\xf7\x19p\x86\xd9b\xdc\xa5\xa9\x1f\xa6[P\xe5\x07\
+\xb4\xba\x7f\x00-qK\x16\x16\xb7o\x0d[\xc6\xa3W\
+A\x88\xa6\x02\xa6\x08\x00\x95\x08\xa7\xf5n\xffz.\xf2\
+\x16S\xb2h\x22$\x90{\xa1\xbc'\xd7\x13\x06Z\xdd\
+\x7f-\x05\xee\x0b\x80\x03\xa0\x11\xad\xf9\xfbt\xad\xad\xc6\
+\x02\x03\x02\xb5(\xc9S\xadg\x0c\x0b~\xd5ud\xbc\
+\xb1\xabm\x8fwf\xc5\xf2\xa8\x5c\x18\x8fL\xb5\xed\xfd\
+\xf3\x0f\xbe\xa7C\x22\xa2N~\xd5\x8b\xa8\xdc\xaf\x01\x80\
+\xb5\xb8^,\xe7\x8bw\x95}\xbf'\x91\xeb_\xf7\x5c\
+\x01\x00\x97\xec\xa8\xf1\xfd\xef\xedy\x11\x89\xb1\xca\xbd^\
+\x19s;U\xf2\xfd\x1c\x84\x87\xea~,\xf3+f\xe2\
+}\xc5.!\xe7\xd0s\xac_\x89Z\xd1(\xb0Q\xdd\
+x\x0e\x7f=vPE\xd0A\xe9A\xe8\x0d\x168\xeb\
+\xc5\x8c\x03\xfc\xef\x165\xeb\xa6V\xfc\xed\xa5W\xae\x0e\
+\xc2\xd7%E\x1bUmEi\xd1\x0b[\x1a\x00TF\
+\xcd\x8b\xbfB\xd8ty\x7f\x12\xb6\x5c\xcfp\xcb\xb0\xa5\
+R\x5c\xf3rU\xd6T\x1cQ,\xff#l\xd9 \x95\
+\x90\xd8\xf8\x128\x95>\x08.G\x03\xf1EAs\xb0\
+DX\xfa\xb5\x0b\xf7\xa8\x95H\x19\x91&\x81+\x8a2\
+\x06\x01\x00\x88C\xe1(\xb37k\xf3\xde\xb0\x0e\xb0p\
+\xff\xcc\xd9\xfdLXGa\xa6\xfayn:r\x0e\xed\
+\xd8\xa4\xda\x9e\xd9 \x95\x05\xb1C\x89\x82d\xfbZQ\
+\xccP}\x05\x14D\xee\xc6?\x0b\x9b\xfe\xfd\x89a\x8b\
+\xc8\x5c13\x8e\x98{\xb9\xc6k\x85M\xdf\xff\xc1\xac\
+\xd1\xa1B\xb4\xfb\xc5a\x0d\xa9\x9c\xc7u\xfe\xcex\xb7\
+\xf1n-\xe1\x9aE\x85\x120*\xaa\x9a\xebE\xa1\xfb\
+\xc5f\xf7fw\xa3\xac\x8e\x9b@\xb0/\x1d\xd6\x8dA\
+\xfa\xfb\xb0e~\xeex\xe7\xb0n,\x92\x83\x80\xda.\
+je\xb6\x88\x94\x0a\xb5\x00\xc4\xfa\xe2O<w\x89O\
+Vp\xaa\xd7R\x82\xadu!+\xf6\xb4.*\xf0u\
+@\x9f\xd5\xe4\x9e\x96\xf7U!\x86\xd4;\x00\xac\x17\x8e\
+]e\xc7\xefY\x9f*\xe9\xc4\xff8\xdc5\xb0\xe9 \
+\xb5\x1f\x1c0D\x05s\xbcW\xa9\x8d\xa3\xfa\xfa=\xf7\
+E@\xa6\xa5\xe4\xac\xb0.`\xa42m\xdc\x8f\x8a\x00\
+&\x80\xf1L\xa1\x19\xf1{\x17\x16\x91*\xf1\xcd\x0c8\
+k\xbf\xba/\x02\xfb\xd7\x87uZ\x00z\xf6=_c\
+\xaf\xb2\xd2Z-A\x005\x00S\x8a\xa8\xd5}TI\
+\x02\xbc\xf2\x0b\x00!S-\x88g\xed\x98\x13%\xe2t\
+\xee\xef\xf8?a\x17\xae\xe0\x08\x0c\xf5\x80\x038Q\xe3\
+\xdc\xcf\x12\x9f\x14\x18\x98\x1e\x90=\xca\x9b/\x85u\xa2\
+K\xde\xff\x9e\xf3\x9ct\x14\xe1\xe1\xbc\xb0\x85\xfa\xb8\xbd\
+w\xaa\xfd\xd2\xdeH&\x0d\xe0r\xf3\x8d\xcd\xd7\xa3\xa7\
+\xbcz\xc5Oo\xa9\xc1\x22\x06\x9a\xe7FQi\x89\xbd\
+\x09\x04U\xb4\xb2E\xa3\x00\xbd\x08x\x9f\xda\x05\x92!\
+\x02yR\x07$iq\x12\xa8\x03\xd4\xbd_\x8a\xab\xd6\
+\xfaL\x11Z\x9a.\xc3\xb7\xc2: V\xc5\xfd\xee\xc9\
+Py\xfc\xbc\x1e\x86\xfb\x87u@\x0e\xe0!\x81b\x00\
+\x11\xca\xfd\xce/\x87-\x22\x98*\xb9\x95X\x18\xa3\x15\
+i\xea7\xbb\xca\x97\xfd\x99\xfb\xa6%J\xa7v\xda,\
+\xfcDR:K\x8c\x14 %\xe0\x8b\xf4\xf0\x8d\x1d\x80\
+\x97\xe3\xd6v^6l\x01\xb86\xef\x0f[Z\xe9\xca\
+\x8f\xe6\xb9\xb2\xfbua\xdd~\xcb\x8a\xf8\xf0\x84\xb0\xe9\
+\xf5z\x93\x1d\xdc\xb5\xa8\xd1\xf8\x91\x90{N\x02n\xfb\
+2\xa9\xd4\xc3]\xc3\xa6\xfb\xf3\x9e\xf1\xbd\xe3{;\xc0\
+G\x82E%\x9c?\x12\x8f\xa8\x9c\x09\x10%\xfc\x00x\
+\xf1\x8d\xc4^|\xd3\xb7<\xfe\xac{?\xfb\xd6\xefe\
+\xdc\xb7\xf9\xa5\xb0\x04:?\xd7%Vk-\x1e~T\
++U\x9eC\x00\x92\xe1\xf8\xb0.\xe0}t\xb3\xb9P\
+\x15\x80\xf8\xa1\x93\xdd\xac\x1b\x9b\x95\x0c\xba\xd2|\xc8)\
+-\xd3n\x9f5\x85n\x99\xadg/\xcc\xf3\xd0\x986\
+L\x08\xeb3\xc7\xaa\xc5\xac\x89V88q\xd6\x16\x99\
+\x92\xde\x19\xa0\xfcQ\x02!\xfb\xe7\xe7>/+o\x97\
+\xccx5\xe3\x1c\x9a&\xc4\x011)$\x005\x15\x86\
+\xe8\x9a\xc4L<\x12\xe3&O\xbb0\xe5\xb94G\x8c\
+E\xc3\xa4\x94 '`Tj\xee\x80\x15\xea\xfc\xe2\xea\
+\xb5\xfa;\x11\xb7,\xb4\x94\x18\xa9\xca11_\xd3\xa3\
+\xf4\xc0\x8b\x9bQ\xbf\xb5<\x10\x8d\xd6{\x9f\xfe\xbe4\
+\x01\xfc\x9ex \x01\xdb*\xec\x10y\xf4\xb9\xf2\xfc\xaf\
+\xcar\x02\xb5%r+a7G]\x5c\x88y\x9a-\
+\xac\xdb\xaf\x85u\xe3Z\xc5\x0b4 N\x0b\xbb\xb0\xc6\
+T1\x18\x9c\xd7\xdf\xcd\xb8A<i_\x19G\xf8\x9d\
+\xb0\x0e\x10\xe2W\x8c\xf7\x94\x00\xaf\xc6\xd5Z'\xd5R\
+\xa1\x87^\xeb\xa8|\xc5:\xf0|0\xc0\xf4\xfag\xbc\
+U\x00\x90\xef=\xbf\x15\x03\xb1\xa8\xed\x0a\x02\x18\x1c\xf9\
+\x1c%\xd4u~\x00\xa0M\x07[W\xe6M\xd1\xc1(\
+\xe1/\xbcj\x011\x8d\x0a\xc0\xa8\xe5\xc9\xe7\x04P\xda\
+\x9f\xfc\x15?\x05\x90\xc8\x96\xcd\xd2\xde\xa0y\x16\xd3\xee\
+.\xb6\xf8\xa9bn\xca\xe30\x17s\xdch\xb5\xc4\x00\
+\x96\xc43Z-\xc4\x8bk1S\xf9\x848\x06\xc0&\
+oM\x7fW\xe3'i]\xf8=\x0c0\xfba\xc5\xb4\
+\xaa\x96\x8c\x1cWY\x85\x01~U\x01U\xdc\xbab\xe8\
+\xef\xaay\x94\xa8\x8f\x02\xe9L0\xeb\xc0Z\xf7\xb2\x0b\
+p\xd7c\xf9|\xf0\xf5kO\xf9\xbfD\xa7\xb6\xcf\xf1\
+\xc4O]\xac\x9b\x02\xe0\x80\x90hs$(\xfan@\
+$\xe6\xfb$\xc2\x7f@\x97\xe0\xef\xd5\x06#\xcd\x89\xd6\
+\xe1\x171\x9eF\xa2/\xc0\xf6\xbd\xdf\x87\xe0\xa9\xd8\xc5\
+r\xd0\xcbr\xf5\xees\xf8|\xfd\xf8\xc0\x9d\x17\xf1\xb9\
+$\xfe\x0e\xccHW\x0f\xea\xc4\x98\xf2\xe7\xaa\xe2\xd0\x06\
+\x94g\xa2\xfc\xee%\x10\xdc\xfc\xc5\xfc\xbc\xa6p\xeb\xdb\
+\xc3\xb7[\xc03W\x98\x0f\x9e\x91\xd76\x0f\xf8C\x9d\
+*q&\xe6\x1c_U>~/Ep\xbe\x9a\xd4\xe5\
+S\xb7\xa7lOYD\x0dU\xce\x8a\xcaoA\xe6\x81\
+\x0b\xe9-J}\x8e\xb3(\xe6\x01\xb5\xed\xbb\xcd\xe28\
+\xd5\x1a\xa0\xd2'1\xd3#kL\x86\xde&\x81h\x5c\
+\xdd\x97;5\xda\x0f\xccT\xbf\x12u\x82 r \xd6\
+\x8d\x96\x0e\x15B\x01\xa7\xe7\xa2\x17\x8b\x88a^\x9f\xf9\
+\xb15\xef\x95C>\xff\x82=\x8eS\x1a\xd0\x1c\xa3^\
+Z\x01\xce\x8eGN\xc7\xda#\xbb\xe7M\xcc/{v\
+\xea \xf3\xff\xad\xf7L07g\x86M\xcf\xf7\xa5a\
+Kb\xa3\x129\xdco\x0a\xa0'\x87?\xfey\xd8\x82\
+x\x8e7\x0c[*N\xe3\x15\xc2\x96\x1e\xed\xf1\xc4\xf1\
+y\xe3\xf3\x9a\x08\xd2SC\x04\x09\x93C\x22\x15\x0d\x02\
+\xad\x87TKD\xf6\x9en>\x90\x81\xed\xd7r\xac\x9c\
+\xc4=\xa9\x91E\xa5\xcc\x9e\xed\xaa\xb4B\x9cU\xa0\xed\
+_cORu\xbez\xbdU\xaeW\xbdZE\xedt\
+\xc0\x00\x5c\xa8\xee\x1bOJC\xc0\xc1\xee\x80\xce\xcf_\
+\x80\x0c\x86\x89\x0a\xa2\xf1y\x02X\xd4L\xe3\xef\xa8\xef\
+\x03\x08 \xc2\xc4\xeb\xd6\xf3\x8f\xd7\x22J\x02x\xebR\
+\x0f\x9c\x80*\x13\xa5b\xcaX\xf7\x10`\xdfg@l\
+*K\x05\xea\x02\x01\x00\x9c\xfdytX\xd7\xea\xa1\xa5\
+!\xc5\xfc\x00(E\xf1\xcf\xcaV\xb5\xb4Hd\xecO\
+\x89/\x11:\x14\xd0\xac\xe4\x12\x07\xf4\xefZ\x0d\x8a\xda\
+G\xe4\x87\xca3\xbf\x81\xe2\xfb\x8c\xb0n\x0ch\x8a\xdc\
+\xd4\xf5\x19\xdb\x98*\xdc\xd5\xca\x85\x02x\xc7\xb9\x97\xce\
+\xe7\xe3\x1fJ\xb4\x10\xf3\x84\x7fC5\xd4k\xff\xb7a\
+-\x01\x9f[\x09~%\xa9\x92\x9f\xcb)\x09\xc7\xcf\xe3\
+\x94J,\x09\xc0\x92\x81\xc7p\xf9\xe1\x0a\xc3\x15\xba\x1e\
+\xc5\xd4t\xa8\x1e\xf2?\x0fk\xad;m\xeaN\x8dA\
+\xf4\xdc\x05|\xd6\x97\x0a~\x8e\xfb*&\x84u\xa4\xb2\
+\x00\xe9\xa7\x99aL\xa0u\x01\x88M\xbf[\xaa\xdd*\
+\x99\x02\xe9\xb5\xd6\x8c\x80\xcf\x98\xa8\x10\xab\xfb^\x07 \
+D\xa2\xfe\x8c\xae\xa5\x83\xa6\x8b\xb1\x89ZH\x92\xe9d\
+\x9c\xd5pV\xd8\x02`TOc\xb6\x0e\xf1\xe3\xc3\x8f\
+\xc2\xa6\xd7\x9da\xcb\xfb\x9a\xfa\xe0sl\x0e\xdf\xdc&\
+* Q\x9f\x0fU\xe9Fd\xfd\xb7\xc5\x8f\xd68\xcc\
+,\x18\x10]\xd5\xa3_\x22t_\xdc|i\x13S\x0e\
+\x8e\x19\x8e\x1e\x8ei\x95\xfdWDe_k\xccpx\
+\xd8\xf4\xfa\x17a\x1d\x83LO\xff\xb9a\x1d\x80\xf4\xe5\
+\xb0N\xc3\x01#-[\xc7\x86\x9bNv\xc8\xa2\xa53\
+\xfcx\xb2\x1fuTP\x01\xad\xfd\x9f\x09]%f\xc9\
+T)F\x0dq\xcf/\xcf\xc0TK\x14\xdf\xdcQ\x8c\
+\x89\x95\xf2\xa3Z\x9f\x00\x024]$JZF\xd6\xd3\
+p\xf4\x22\xaf\xb5\xfb\x03\xac:\x00\x00 \x00IDA\
+T\x91\x14<$\xf2\x02M~U\xa2*\x80\x17\xa8\xfb\
+\x9c\x12!\xc0VVr\x8dM+`3\x81\x91\xed%\
+'\x9b\x9e\xe7x\xcb\xb0\xd6\x1a\xf7\xfd\xf1\x07\xd3\xeb-\
+\xa6\xef#\xc0\xdfl\x87\xed\xa6\xeb\xa1O\x00\xc59]\
+\xe3\xd8h\xc4\xa8\x94\x02\x1e\xb2\x85\xa9\xb4U~+E\
+\xe2\x12\x00\xafD\xfcV\x19\x1f;\xcf\x13\x90B\xd9\xae\
+\x164\x8cK\x9a\x06z\x9c\x15\x14\x12\x90/\xe6!\xcd\
+\xa5\xcb\x86u\xf7W\x5c\x85\xe2\xab \x92\x89\x7f\x89\xb4\
+\x11;]\xab\x99;\xa0\xc5\x9d\xeb1\x8e\xe2\xd3\x04\xb2\
+K+\xc4\xf8o\xd3b$\xd2~\xffi\xcd\x96\x96&\
+\xadR\xae[\xc2\x9b\x09}\xb5\x04a\xa4\xad\xd7\x03\xc6\
+\x82\xeb\x06\x0c\xd3B\x90\xb7\xb8\x7f\x181\xe2J\xfe\x0b\
+@M\xac8\x19D\x0a_\x00\xd4\xd2:J-\xaa\x9a\
+rC,\x99\x88cj\x1bL\xf7n\x8e\x130KU\
+v\x8d\x933\x8eM\xfc\xe2\xf9'pZ\xad\x7f\xeb1\
+\x83\x0aYy\x0e\x14cA\xe1\xc5\xf9 \xae \x1a\xed\
+\xb9ek@\x9d\xf7\x09Xno\x1c\xd6\xdd/\xe7&\
+\xc0\xc6\xdf\x05X\xe4>\xa8\xfb\xa6\xc2.\xbeQ\x81\x97\
+x\xaaLg\xe5\x1dC\xa6\x0a\x02\xce7\xd7\xed\xd5\xf5\
+db\x0e\x00-\xed\x01\x096`'\x99G%*(\
+\x0f\x94\x87\xf2/\xd67\xa6L\x8a\x1a\x97Xq\x8a \
+\x16\x80\x9c\x80C=?\x09\xb4W\xfb\xdb}s\xbf\xb4\
+\xb0\xf2\x8b\xf2\x03\xd3\x12\xf4\xe6\xcb\x97\xe5\x9b\xf6\xa5\xf3\
+\x1b\xd3\x81\x96\x83\xb8\x15\x93#\x81\xccz\xbe\x9e\x13\xbf\
+\xea\xfa\xec7\xdf\x03\x1c\xd6b\xf4\xf9{\xbb\x0a\x81\x80\
+\x88\xe7x\x846W\xf0\xc0\xae\x17\x0ee=>\xc6\xf7\
+W\x09\xd7e\xb2b\xb0O\x97x;0$\xden\xa4\
+\x8a>\xb1?\x89%\xa6\x8017~\x1f\x22(!\x8f\
+\x05w\xbd\x8e\xfa\x0d\xb1A\xc1\xe2@P\xfd\xdd\xf8\xf5\
+x\x19\x8e\x0b\xd5\x1eUEE\x9eJ.U\x5c-\x01\
+*#>O\x7f\x10\xfe\xa2\xd3\x1e &\x88\xb9`a\
+&\x05\xaa*>!\xb6\xf6\xe7y\xb0\xfdn'\xee\xa2\
+\x12\xff\x1ba\x19x}\xa9%\xc2\xb3\x83\xd3sO\xac\
+\xe9EI!\xbc\xc4L)\x1an\x1b\xd6\xc6a\xb5\x0d\
+3\xfcGX\x17\xb8\xdch\x0ep\x89\xc6\xa8\xf8\x0f7\
+\x0a[\x0e\xc0\x1a\xda@\xb4\x82#\xb3\x90!t\x9e\x93\
+\xfb\x221\x22\xa2\x95*\xe5\x95\x00\xd90\x16\xb0\x1e\xa4\
+\xac\xa8\x95\xe3\xd3\x93m\x9d\x18\xf7\x22\xf0Pq\x854\
+\xba`L\x02\x951b-\xa9\x1a_\x80\xc4\x8b\xb2\xe7\
+\xf5=y0'e\xac\x90\xb5\xec\xf1\xabJ\xe1\x9e3\
+\xa3\xa4\xa6\x19P\x91\x06`\x1c\xb6\xf9\xb5\x960Bn\
+\xef\x17\x96\x01\xd7\xcd\x16\x0d\x85\xaa<\xc7v\x0c\xad\x85\
+[\x84u\xbd\xdd\x81<N\xebq\xe7\xdd&\x8b\xca\xce\
+\x87\xc2:\xf5m\x89\x9c\x03\x00\x95<\xafc<.\xac\
+\xa34\xff\xee\x5c\x99\xdc\x1e\x10\xd6\x89\x0b\xeaUNd\
+Z\xa5\xa4z\xb9s\x1aDi\x18\x18\xb3\x88RE\xa5\
+?\xd5L\x1b\x15\xf3u\x1dE\xcc\xcf9x\x0f\x09\xeb\
+\x12q\xd39\xcc\xab\xe5`\x05\x9e\x98#\xf6;\xc7\xcb\
+\xff\x00\x16h\x05XO\x12\xfeT\xbf\xadJ`&\x0a\
+\xdb\x87\x86u\x07\x90\xaf\xf5xH\xfbVo5Q5\
+\x01\x93\xf5\xbe>P\xed\x0b\xdf\xbb\x1e\x88\xae\xeb%c\
+\xa2\x02i\xaa\x81\xbfO\x8bC\x02\xfe\x86\xb0\x0e\xf8\xe0\
+\xd0\xf93\xe2v\x02j\xef\xcb5\xe5\xf8\x1cc\xe4J\
+\xbc\x0e\x00%!\xd4+\xea\xeff\xe5\xb7T\xfa\xb3\xc2\
+\xb2}xXG-D\x05M\x0d\x8cj\x0dHm\x91\
+J\xbcs\x9dT\xa2\x91\x9a%\x9bGl\x8eiZ%\
+\x99\x80\xed8\xbeY%\xb6*\xb6\xe37\xc2\xba\x844\
+\x01\x8f\x9a\xde\x80\xba\x9b\xcc\x05T\xcb\xe9_g\xa6U\
+j\x80\x14\xe0(\xc1\xde/+L'd\x80ydV\
+\xa8\xceOj\xf7\x83\xe6^\xd5\xfa\xdc\xef\x9d+\xb1(\
+\xa6\xd5\xe3\x99\x89\x9eJb%\x9e*\x0d\xfe\xde\xfd\x93\
+\xb9u\xdb)L\xbdm\xd7\xeb\xab\x12\xa2\x97\xbf\xa3|\
+\xc6\xd4\x838\x8f\xa3\xb7\xba\xc6\x1d\xa6\xf8lM\xcb\xe0\
+\x173\xb0)\xad\x88li\xd1[Zc\xb6\x04\xa2\xfc\
+*\xe0\x93Hn\xc0\x14O\xca\xa9\x0a'.\x00uU\
+\xe2%\x0c/\x0d[\xeew\x89\x97\xdeaN\xb0\x86'\
+\xce-\x00%R\x99\x22\x80\x98=\x98\x15\xd6\x0f\xa0\xc8\
+\xfa\x93`\xebe\x9dN\xe9\x03\xda9\x9d\x15\xb7\xd6\xca\
+u\xear\xee\x0c\xf7\x0a\xeb\xa6\xa8\xa4\xda\xb8\xc0|\xfb\
+\xc6\xed\x9b\x8215<gx\xf6\x10\xeb\xe6\xc9\x9b\xa7\
+l\xa6\xc4i8v\xb2i\x1f\x0e\xf7\x08\x9b\xfc\xf0\xcb\
+\xc2\xa6\xef/>k\xee\x0c/\x09\xeb\x80\x11\xd3f\xb2\
+W\x1d\x00Q\xea\xe6\xf9|\xab\xc5,\xc76n\x1e0\
+\x05\xbc\x0f\x98\xdeo\x08\xb5\xaa.10\x87:\xcf\xb5\
+\x8a\x0b\x8e\x9c\xb5\x7f*p\xcd\xf8\xaa\xce3\x80M2\
+\xc9L\xfb(\xea\xb8xn-\x9a,\x90V)\xb2~\
+$f\xe2\x1e\xaf\xe2:\xf1\x94/\x00\x80\xc4_\xe0\x89\
+a\x94\xad\x18EM\xf7w\xc5]\xc6\xa2a6|b\
+\xb2\x8f'c(\x98;\x0f\x0c\xcb\xf3\xe9\x0f\xa6?\xf3\
+\xa8\xb0\xa5\xf7x{\xab\xd4\x9a\xc9\xf1\xac\x95\xf8H\x04\
+_\x16\xd6ZM\xc2\x16?\xb1w&(\xd7(F\xdf\
+\x1c\xa7]:\x19\x9f*\xcf\xa9\x85S\x89\xb9\xf1^Y\
+\x81\xd6\x1a\x85!\xb9=.\xac\xf5N7`E\xeb[\
+\xf5J\x13\x8d\xcb\xf5R\x95\xe7<w\xa7\xb4k\x06N\
+\xaf\x92\xe7\xe1\x152N\xfd\x97\x9cB\xa2\xf0\xa2\xf5\xe9\
+Na\xdd\xf9\xea|\x04\x08fbV\xf1\xb2\xe7\xb8\xea\
+\x196N\xb7\xa6\x22\x88K\xb4\x00\xe6\xf3\xdb\x5c3\xac\
+\x03\x8a\x13\xf8+?C\xf3\xc0\xe7\xc2\x5cA\xd1&b\
+\xa8b\x8cj\xaeB\xadbN\xfb)\x99g\xf2\x95J\
+\x18s\xfcj1=\x14*\x01c\xcf\x0c\x9b\xd6\xcb\x09\
+a]\x0b\x9es\x00\x13\xc0\x98d\x00\xbc\x84[|+\
+\xbe<'\xe3\x0c\xcc\x11S\x89\x9e\x91=\xf7\x80\x02\xf1\
+!\xd5\xfc,0l\x1f\x12\xd6\xc5G/\x0b\x9b^o\
+\x1e\xd61$\xf8\x01\x09\x22\x8d\x1b\x05\x08\xd7\x99\xc0s\
+\xb5\x90z\x9e\xf2(\xad\xb3\x00E\x00\xccz^\xbd\x9e\
+y\xe7\x8f\xfb\x9e\xfe4\xca\x84Q(\xac<\x8b(\xb9\
+\xa9\x0b\xfc\x0c \xcd:\x13\x9f\xf3W9]\xa7\xe2D\
+\xc0v\x9f\xe7\x1d\xdc\x01\x08\xe20\xeb\x15\xc0\x08\xc0\xd5\
+j\xa1\xa5E|\x05X\x11\xcf\x03\xfa\x13\x18\x17\x9f\x03\
+\xccL-\xa8\x82\x8b\xf1\x97\xf2\x13\xf1!?\xe9>\x89\
+\xff\xb2\x00S\xcf%[\x81\x8b\xa9\xa00I\x03B|\
+\x05\x98\xd7\x9a\x91\xc0?\xa6o\x89\xf7avh\xf9\xd3\
+\x9ahz\x8a\xf8\x92\x9f\xf7w\xf9\xf3|\xc5x\xd9\xd5\
+.\xffjK\x02l\xfe`Q\x8f\x04\x96\x0e\x0aH\x93\
+\x8d\xd0\xab\xca\xee\x9b\x0f\xe4\xb2\x9d\xda}\x7fP\xec\xee\
+\x00\x02\x15t\x07\x88\x84\xd0\x81@\x9c\x86\xc8S\xa4\xe3\
+\xe6\x9a^%\x91\x9d\xebv\x94\x7f\x14\xfeH\xf7\xae\xd9\
+%\xf6\x16\x96\x80\xdat\x00\xd7\xaf\x82\xec\xefP_\xbc\
+F;\x0a\x96\x8ac\xfc\xf7\x1a\x9df@\x10i\xa9\xda\
+\xf6\xd3\x00$\x06\xeb\x83\xcd\xd8\x22\xaa\xc6!\xaetv\
+\xe7\xf8\xee\xd8jX\xf3\x9c\xedc\xb3\x22\xfa\x17\xcbx\
+\xc5\xe1\xe93\xf5M\x85}\x0a\x9f\xe6\x8a\xcbUR\xec\
++\xdfw\xb8X\xd8\xf4z\xce\xf0\xc3!z\xcb_7\
+\xfc\xcd\xf07K\xcf\xe2\xf0[\xc3\x1d\x86)\xf0\x1a\xbe\
+\x10\xb6\x8c1\xda\xf9\xba\xb0\xae\xf2r\x83\xb0\xe9\xf5\xc6\
+a]O\xa29\x9a\xd9\x83^\xe2\x1a\x10z\x88\x97\xb1\
+#?\x09\xebz\xae\xdc\x1f\x15\x07\x95\x12b&\x10U\
+\x15-\x01iV,8\xfc\xa2\xe6K\xd8!\x93ku\
+b\x8eBB$\xf0E\x8d=:+\xf8\x99X\x97Z\
+\xab\x0a+G\xba\x8c\xd7\xb8\xa0\x9a**\xde\xf1)F\
+t\xb7\xb0\xee\x00\x0e\xc9\x90@\xf2Ck\xe3\xad\xdd\x01\
+\x9bb`\x95\x10=y\xae\x10\xc5\x90\xca\x18SYS\
+\x15\xb2BT\xd4g\x89\xf9);Nm\xd7\xf9\xabY\
+\xf9\xb6\xf1\x93\xaa\xac\x07i|W\xd8\x22\xb2S\xbd\xfb\
+Y\xc9\xd4\xc3\xef\xe0+\x00\x90\x88\x89\x1e\xe7\x1c\xbfR\
+\xc0\x87\xf1L?\x0e\xeb\xc6\xb5%\xa3\xa2\x90o\x09\x8c\
+\xebO\x00\x82\x83\xae\xb1\x84z\xbf\x05\x8c\xfc\x8d\xc4R\
+ \xe39`\xea\x00\xf8\xf8\x11\x15\x00=R(\xb0\xe6\
+\xbe\xe6\xc1\xe9\xfel\x1f\x16\xd6\x01\x0e\x90U\xeb\xd4\xdf\
+\xf7{\xc6\xf8Qo\x05\x84\x09\x10\x040T\x8d\x05\xcc\
+\xfc\x0d\xa4:\x0f\xc4\xaa\xd0\xe6\xba\xdb\xbc6\xac\xeb\x91\
+\x14\x18J\x00Q\xe5%hYa\x82\x5c\x97\x0a4\x91\
+1\x00\x80\x8a\xb5\xb16\xe6\x14\x9bn\xa0'\xce\xdf\x01\
+\x0c\x1bc\xc4?\xa6($\x0a\xee\xb8;\xacS36\
+\x1eJ%@\xe2\xff\xbc\xb0\xa5%\xa4(\x95\x12\x05\x95\
+-\xc0\xceA3C\xca\xe7\x91\x00\x15p\x81R\x9b\xa2\
+]D'w\xde!\xac\xf37\xd4\xaf\x93\xba:\xdcw\
+\x9e\x07\xbfy[\xcey\xa7YB\x8b\xe2\x1b\xf9\xfc\xb5\
+:<1\xc7\x02jm\xd2RvJ\xae\xd7\xcb\xe5s\
+\xff\xab\xb9E\xa8\xc4\x08\x9f1\xdd\xa7g,Z\x07\xdb\
+\x07o\x1f\x14\x1a\x01\x9b\xe3g\xd5\xfcR\x1d\xffh\x06\
+\xc6q^\x9d\xb9TZ\xaa\x12\x88\x91g=E\x9a~\
+\xfc\xbc>\x1bp\xac5I\xa0&\xa1!\x92(at\
+_\x05\xbeD\xbePH\x05\x9cD\x8ar\x0aH\xcd1\
+wN\x06\x5c\xf0\x9cd\x06\xde\xaa\xa3\x08\x9b\xb6\x90=\
+\xcb*V\x18G\x054e\xc0;\xbc2l\x01\xc2\xc3\
+\xeb\xb5\xf1\xbc\xe9\x9f=\x97\xba\xdf*R\x98\x03\xc6\x0d\
+&\x15uz\x9as+Z~\xfe\xe16a\x0bc\xa0\
+Z\xe2T\xb2\xacs\xbd\xbew\x9d\xae\xee\xae\x9d*{\
+\xc0\xd0\xef\xe9\x02\xc6/\x84-\x89\x02\x15\xea\xd2\xc2!\
+\x0a\xb63\xac\x9b\x1b\x9d*\xdeD\x0ck\x1ex&,\
+\x95\x80\x00\x90\xf4tJ|\xfe6[\x9d\xb2W\x1dS\
+\xa2\xa8\xca\xfcM^_\x89n\xe9@D\xb1\x06\xec\xf1\
+\xaf\xe2\x13\xf1\x9ds\x12UU\xc5\x8e\xbfZ\x8b\xcc\xad\
+{\xf8\xc5yz\xb8%`96n=6\xb0\xfc\x8d\
+\xdf\x03\xd4\x13\xeb<zx\xf8\xf0\xf0\x96p>\xae\x05\
+\xc6\x09\xa8\xb5\x96\xb5\xe8\xe5\x7fkX\xc7DK\x86\xc9\
+v\xd7v\x8f&2{\xf9\xb0\x8e\xc9\xe7<\xc8\xef\xeb\
+\xdc\xb5\x7f\x9c/\x18\x81\x00o*\xe2\xae\x1b\xc0\xe3}\
+\xb3b\xbc\xe3y\xb3_*?GL\xee\x88\xac|\x03\
+F\xb22\xa9u\xb2\xce/\x09F\xb6F\x12\xf7*f\
+\xa1\x0a\xfc\xfd3\xc1s_\xfd\xbb\x04\x14\xb0\x8a\xdaO\
+\xbbFK\x9d\xe7\xa9\xb2N\xdc3[\x0fjz\x06\xff\
+I\xd4N>`*K&\xd4Z#$z%\x06\xf7\
+\xed\xb0E4\xad>\xbfVH\xd7e\xfd8oP\xd1\
+\xb5\xd6\xa4\xb6KQ\xb2\xf3\xbe+\xc8\xd4X\xbf;$\
+\x03L+\xadV\xa4L\x0c\x0b\x08M\xb1\xeb\x02\x1e\xc4\
+\x8f\x80s\xe7!\x91\xb7l\x01\xab\x96\x10\xeb8\xaf\xaf\
+46\xc4\xb3\xf7\xcf\x84\x12#\xf2\x8aa\x9d(\xae\xc4\
+YK\x06F\xa6y\xf0)N[-\x8cZ\xaf\xf9\x09\
+Z0\xc9h\xa9\x84]\x8b\x9cJ:\x8d$\xe2\x87\x12\
+\x7f\x80\x86D\xd4>%*\xe8\xbc\xf6\xf7\xf9\x0b\xcc!\
+\xad\x8b\x0a-\x0a\xb0\x12L\xd4x\x80\x13\x06\x81\xf3\xfe\
+\xac,\xccY/Y`+\x80d=\x0dD^%\x1e\
+\xf7\xef\x80\x85\xb5\xf8\xa8\x82\x82\xe9\x04>\x87\xdf\x97g\
+\xdaw\xe2(\x8c(\x05&\xf1\x80\x82%\xff\x81\x81 \
+\x9e\xcc\xd6\xbc*\x08`\xa2\xb8Ny\x00@B!\xc8\
+>L\xa6m1(\xc57\x9e{2[\xabp\x00\xf8\
+\xa5\xf1A\x94Q\x8b\x84\xdf\x03\xf8\xc8O\xc4\xeb\xff\x19\
+\xb6\xe4Y\xbb\xda\x07\xbaZ\xd7\xb3o\x0c\x19\x0a\x8cq\
+lk\x11\xbf\xbe\xa7\xbf\x1f\xfb\x22AF)\xec+\xe6\
+\xfd\xbc{\x0f\x1a\x95Q\x22\x1f\xb7\xfb\xa0n\xc3\x87\x03\
+\xbc\x5c^\xd7\xfe\x19\xa8_\xb5K\xcc\x1d\x1c\x10\x22\x00\
+\x80^\xd9\xa0\xc2\xef\xd3\xf5zDE\xea\x9ct|?\
+\x9d\x03\x95v\xdd\xd32\xde\xa0 ]=_\xaf\xda\xbd\
+_t\xb6\xfcJ\xc7\x04pP\x12\x9d\xb0\x10%\xa0\x09\
+H\xb4\xb9\xd2O\xcc\x80h\xef\xa57\x13\xd5\xbc\xc6\xd9\
+E/\xec%\x92:zJS/\x9e{d_0S\
+\xf7\xf4\xaa\x0fo\x0dk\x0ee\xa6&]6\x11\xb0D\
+\xa6#\xdd\x8f\x84\x7fxZ\xd8\x14\x10\x7f0\xac\x89\x0f\
+5\xca\x96\x84\x9e\x9a\xee\xf0\xb0\xb0\xe9\xf5\xeea\xd3\xeb\
+\xeb\xc3\xa6\xd7/\x0d_\x1e\xbe\xd4\x18\x08\xb7\x0b\x06B\
+U@\xa22rl\xe7XQN\xf5\x0cQ9G\xdd\
+\xd5:\xe2\xfe\xb8oz49\x92\xffk|\xd1\xba\xc5\
+DB\xb6rtu\xa0\xaczX\x8b*\xec\xa0\xb6\x11\
+o\x9a\x8e\x0c2)\x81\xe4\xc0\xbc\x1f*\x99\x8d\xf5\xb9\
+D\x06\xf5\xd2a\x1aH\x1co:\x03\x1f\x0dX8\xba\
+\x9b\x02\xa1g\xc9\xfbf`VsM\xf3~\x8c\xc7\x8c\
+\x0f\x1f\x8f\xc9\xf7\xfft2'\x1e\xd7\xf5\x06E\x9d)\
+*:{\xc4<\x8e6.\xe8\xa0\xedA\x1d\x85>\x03\
+\xb9:\xb0!\x84\xe6\x98\x12eC\xcd\xf7\xb90\x128\
+\xf8< \x8a\xf9\xe1\xc0\xcb@\xab\x10\xcc\xab\x86u\x07\
+>G\x93\x95\xfeJ\x5c\xf2\xe0\xab\xcfk\x0e\xb3\xf9\xd5\
+>_>\x87\x8d\xca\x8a\xe7%\xb1\xe7OT\xac\x89\xce\
+\xa4:\x7f\x01}\xbe\xf40\xa3\xda\xa3\x9e\x09\xf8\x00M\
+\xd4[\xd3\xb1\xd7\xd8\xb9\x5cOU\xc9\x90\xa8\xd2\x1e\x00\
+\x04\xb8\x8f\xeb\xebL\xe6\x0b\x80\xae\xd6\xafu.A5\
+\xa5#+\xc5\x15\xb0\x9c\x13\xd6\x05l\x1c;\xca\xa5\xfd\
+\xa7\xd5$\xc7\x1c\x16\x82\x9c\x01r\xa4\xa5-1M\xb1\
+\xd0\x02\xea\x5cw\xbe\x1f$\xdaAQSE\x04\xf6z\
+tS#\x00\xf0\xb7\xdd/\xac\xeb]E\xe1\x03LY\
+\x17\xc9\xf4\xd8\xfd\x92\xb0\xc9\xaf<1\xac\x0btU\x8a\
+\x04Hy\x80WK\x82)\x04*PZ\x1d2@\xa7\
+:\xcdOU\x05\xd0\x14\x87\x8f\xe4\xc1\xed\xbcR9&\
+\x9e\xf4\xf9\xac\x18\xe4\xdc\xe8\xed\xe7\x12\xa1\xa7r/ \
+\xf0\xf9?6\x8b{6 \xe7\x98\xae\x85Ae<\xa9\
+\xac\x02\xd3\xf15\xe3I\xe3k\x96\x8at\xb5&\xe4\x98\
+\xca)l\x9f\xa7\x01dO{\xb5\xe0\xa1\xc4Z\x7f\x12\
+\xbfC\xc2:\x0a\xaa\x0a\x8c@G/\xba}@\x05Z\
+\xc0\xeb}\xbe\x1b\xd6\x8d7\x8b\xc0\xec\xb7\x93\x81\xf1\xf4\
+\xec\x05\xfd\x8f%\x10i\xa2V\xcfY\x00\xde\xf1\xe0\xb0\
+\xa5\x82\xbb\xf3ca\xd3\xebC\xc2\x16\x00\xa24\x0f\x92\
+\xaa\xbc\xf9dX\xb7?\xb4\x1e%0]\x80\xd3\xbea\
+\xdd\xfa3\xc5\x01U\xfaR\x9b\xbd6{-\xad\x16\xad\
+W\xf3\x07K|1^)\xac\x03F|\xee\x04\xdc\x8c\
+\xdd\x1b~\x106\xbd^;\xac\xfb\xf9\x04\x0c\x00\x14\xc3\
+\x89a\x0b\x03`8 \xacK\xd4Q\x8c\xd3\xcfn\x9e\
+=\xad\x87g/\x15\xd0\xaa\xf8|%{\x85\xff&\x13\
+7\xad#D\xd7\x0e\x9a\xfd{\x05\x88)~7\xc5\x1c\
+?hq\xc7\x15\xb3u\x91vP\x8a<\xd6\x18E\x9a\
+2\x18f\xd6/\x84\x00\xa0\x0a r>\xa1\xa6ZG\
+\x128LI\xfe-\x99yz\x93\xab\xd5\x0e\xb3\x0b\xd0\
+\x1d*\xe4\x0f\xec\x02b\xfb\x0fC\xf2V\x8dL\xbfc\
+\xf3\xcb\x9b\xc6pi\x09\xec\xbd\xdb\xff\x9f\xc7\xca\xbd`\
+\xfb\xc2\xedtN\x8c\xaf\xcf1\xd4*\xee4=2\xee\
+\xd8\xee\xbf\xbdrhWm\x8e\x0fk=\xfb\x93-\x80\
+v1\xd8\xb2b7\xfeWXW\xb1\xce\xf5@\xf4\xb2\
+\xc4#\x13\xa8\xad\xd6%\xad~\x01\x87M\xcfu<=\
+l\xfa;\xfb\x84\xb5\xf3\xbe\xf5BWo\xba\xd6,\x9a\
+C\x12\x0f\xf1\x22Q\xc0\x14\x8b\xab\xd6\x83\x8c\x0b\xb6\xb7\
+\x0dkb`\x8d\x91P\x14\x7f\xf1\xe3\x9b\xb2%a=\
+\x86m\xcd\x88\xcb\xcae\xb5d\xd1\x02 R\x9c\x05\x87\
+\x9a~`<\xa9q\xcf\x00\x81\x9c\xaeP\x89\x97\xb1l\
+\x09\xe8K\xfcJ\xc4\x10\x95\x9b\xff\xe2\xd7\x00\xd3y\xfe\
+V+[\xae\xcfj\x81\x92\xf0\xd1\x5c\xa1z\x0f\xa8\xcd\
+\xa9\x02\x05t(\xd0\xfcu\xb6Z]>\x0bUD\xf7\
+\x00\x9e\xc90\xc4\x08\xb4oJ\xe4O\xc2\xfe\xc7\xcd\x0a\
+h\xab\xd6\x9a\xf4c\xa5\xf1B\xf3F\x5c\xe8\xfe\x03 \
+Ss\xa9\xf6\x978\xcc\xf5\xe69\xb9\xb9DX\x17\xcf\
+\x00\xe0\x14\x12\xc4\xd1\x0b3\xf6\x82c\x0d1\x07\xc4\xd9\
+*\xf5\xfc\x0e\xad\x00\x85\x1a\xd7\xe9\x9c\xd0\xe3\x0f(s\
+]\xcew\xf1\xa4\xc4\x1f\x80\x83\xc2\xaer\x0fP!\xd6\
+\xf7\xc6Y\xa3j\xca\xbd\xe6x\xdf\xdfK&[\xdd?\
+\xcc#\x85\x19\x1aL\xc6\xd0\x9a\x8e`\x9d\x02@\x001\
+\x80\x11\x00\xcfZ$\xd2x\xc5\x5cOUx\xf1\xff\x9f\
+6\x8bg_HL\xddy\xe3>\x8aW\x007\x17\xcf\
+\xb8\xfc\x01a\x9d\xff\x94\xc7`\x0ax\xae\xa6C`D\
+\xdc9\xaccL\x9b\x82\xa6\xa5\xc1\xf9\xe2\x9c7\x8d\xcc\
+z\xc2\xbcP\xf9\xcfBL\xb5\x10\xc8g2\x1f\xda\xa5\
+\x22\xdf*sWn\x222\x93u\xbd\xa3\x90\x12\xe3\xf4\
+z\xb5\xfe\xbe\xc7\xddB,u\x81\x0cpU\xc82\xe0\
+.\x11\x88\xa4 4\xfc\xe9\xc7\x0be\xbeU\xd8\x0e\xce\
+\x0a\xdf\x01\x9d\xe3\xea\xd5\xf9\xbb\xf1\x13%\xaa\xe5\xfd#\
+q\xb8v\x87\xe4\xc4\xb2\xfc\xf5\xe5\xfa\x1b\x92wX\xa7\
+F\x1b\xb8\xcf\xbe\xb9\xc1\x0e\xe9Z\x19T\x18i\x0e\xec\
+\xdf\x06/-*\xfd\x116\x7fa5\xde\xa4ka(\
+\x046p\x963\x16\x80\xa3\x89\xb9=i\x19\xafT\x8e\
+\xf26\xf3\xc1ILk8$\xac!\xe1\x93-\x0ei\
+\x0a\xcf~\xba\xf9\xe9\xf4\xef\xb7\x98)\xfb\xb5\xd0\xa9\xf3\
+\x1a\x9f\x94\xbd\x8a\xc3wR+ \x0f\xbe\xe1\xd6a\xd3\
+e\x9e\x1a6}?\x86M\xff\xff\xdf\xc3\x16\xc0\xa0\xfe\
+\xfe7\xc3\x96\x80(:][\xaf\xab\xca\xae\xe7\x82z\
+\x88\x92\x9a\x15\xecJ\xc0\x13\xb9\xaa\xc4.)\xf9\xa5\xa2\
+\xcf\xa1K\x90\xf4b\xa3:K\x80<o*\xe2\x18\x08\
+Ie\xd2;\x5c\x22f\xa82~\x0feg\x1d\xc88\
+8\x00RD]\xf25\xc2\x8f\x08@\xa8\xf5\x96h\x0d\
+`\x83\x83&\x1aw\xf3\x04(T^0\x0b\x92B\xde\
+z\x16\xcf\xce\xa9\x1b\x1f\xcf\xfd\xf6\xc0L\x9c\xa6\x04g\
+\xf7c'{\x5c\x1e|!ft\xf2d\xa1r\xfc\xb6\
+\xf1\x1f\xc7\xe9\x00\x19\x8f\x1a\x8f\x1c\x8f\x5c(J\xdb'\
+\x86u\x14{@\x1eJ\x145\xfb\x0c\x0c\x1c\xe0\xe6\xa5\
+\xea\x8d.1I\x95fc\x9fhBd #\x91\xdb\
+\x1e\x1a\xd6\xa9\xfb\xaa$\x99\x07\xae5\xc0\xc1D\x84E\
+\x8f\x94\x83\x9d#%\x22#\xe0\xb4\x0f!\xcd\x80 \xf7\
+\x9b\xba\xbdu%`:3\xac\xf3?\x0e\x10\xc0\xa4\x1e\
+\x7f\xd4\xd95\x22.\xe0'\xca\x85\x9a\x9d\x9f\xafZ0\
+\x8cwY\xf5\xf6W\x85\xc6\xfd\xb0?T\x5c=\x0fj\
+\xfc\xa9\xf2ZH<*y\x8e\x07\xac\x83\xc8\xfdQ\x91\
+N\xd5\xea\xa2\xdeK\x98P\xd7r\xeel1h\x04X\
+\x0eF\xf7C@\x9e\x07ii\x1ax\xae\x02d\x80@\
+\xb66\x04\xcf(\x98F\xa8\xe7\xd6I\x89V:\xf8\x1c\
+\xd0y \xf2g\xe3e\xc3&\xbf\xf3\x9ba\xdd~'\
+v\x97\x14\xf1j\x05\x118g\xa2\xb2}~\xd8\xf4z\
+VX\xfb\xbc\xad\x82V\x94\xff\x04\x16\xc6\x8f\x84-\xd3\
+4\x8ai\x94\xc0\xdd\xf6\xb4\x14\xab|\x7f\x02#\xa8\x8a\
+\xa8\x88\xdf\x08\xeb*x\xc4\x85\xfe!E\x90\x12\x08\x8a\
+\xa9\xe0Ml\xcf8;=\xddy\xf0\x0f\xa7\x0f\xff2\
+\x9c\xbe\x88bU\x82\x90\xcfy{\xabY\xfc\xb3y\xc7\
+\x1b%\x80\xfc\xe4\xae\x95\x05\x95\xd1\xf9\xa2\xb7\x1c\xc59\
+\x99^\xd5\x1a!\xb0\xb9\xfe\x05\x13\x92\x12\xf3[\xf9\xbd\
+\x96\x80]\xb3\xab|\x03\xc2\x22\x5c\x9c>\xff\xf8\xa9\xf1\
+\xd3\xe3\xa7\x16\xaa\xb3\xe7^\xe3E\x89\x8f\x99~\x92\xeb\
+}\xe7\x0b\xc3\xba\x8a\x92\xcf\x0bh\x22ji<\xe0?\
+\xce\x0c\x8d\xfa\xdc\x18(Z\xb1\xae\x156\xdd\xcf\x07\x84\
+-\xe2m5m$[,\x86\xc7\x87\xb5\xe9(\x87\xb5\
+\xca\xb9\x16\x1a\x94\xfd\xa4D\x97\x18\xdf-&\x9b\xf6\xc9\
+\xf0\xea\xb0\xa5b\x0fh\x1an\x12\xd61\xeer\xfc\xa3\
+D\x13PS\x1a+\xe9\x1f\x1b5\xfdV\x1d\xe0tz\
+\xd8\xe2\xc7Z\xeb\xc1<\x1e\xea\xb8\xcdq]\x22G\xc5\
+<\x99\x09\xed\xfd\x0ei\xe7\xce<n\xf8J\xc90L\
+\xad\x09Tbj\xe1\x12\xb0bh\x11\x17\x94x\x0a\xa8\
+\x93iQ\x95d\xbd\xeb\x12\x0e\xe7& [\x81\x05\x90\
+\x03\x18\xf9\xecd\xff\xbe\x00\x98\xe3\xc3';\xba\x01\x19\
+m\xae\xfd\x94\x94|\xac%&\xe27\xe3\xdf\xb2 \xd2\
+\x80\x94+\xe7x\xb5\xa0\xf8_e\xb2\xe9\xe7\xc6\xaf\x8c\
+_\x1e\xbf\xd2\x9ds\x98g\xbf\x1e\xd6z\xcb\x9f\xd7z\
+\xcb\xb5\xac}8l\x09\x98K\xb4\xd39\x821C\xa3\
+$+x\xfc\xd6\xf0\x83\x1co\xf9\xd3\x19\xf8\xdb\xec\xb1\
+\xd9\xd5\xc6\x1e\x13C\x8d\xa1\x93\xef\x98~\xef\xe7a\x1d\
+\xa0\xed\xdc\xd5\xc2h\x1cY\x16\x0cT\x96\xeb\xf9:\xaf\
+$L\xee/&\x80\xfd\x0a\xe8K\x91\xca\x02^sz\
+Lc\x8e\xfeaW\xb8\x93\x10*l\xe8\x1d\xe6\xf7<\
+\x7f\x1aO\x09D\x97\x96\xc0\xd3\xc3:\x11=\x09\x9f\xf3\
+\xf6\xce\xf3t \x80\xf4\x85D\xf2\xb2\xf5\xa4\x0aE\xc4\
+h}\x0e\xe3W\xcd3\xcf\x96\x8c\xf2\x9b\xe2cj\xea\
+\x1854*\x8c_L\x0d\x97b\xd2bN>{\x15\
+\xff\xc9c\x00\xb7\xbf\x1e\xd6\x0a(\xf3\xba\xcc\x16\xb4\xa2\
+\x82\x03\x96\xc5A\x0a \x12N-\x97\xa9J\x0f\x007\
+\xb5\x09\xa3\x07@S\xc0\x0e\x86\x04`\xef/\xc3\xbaV\
+\xceu\xa1U<!\x9f\x02\x14\x00\xf0\xe4\x1f\xb4%h\
+e)\xa8\x000\x8d\x19\xa6i \xa1\xa7\xd9c\xfc\xa5\
+x\xd8s\xc0\x94\xe4\x170a\xf4\xf8\x13\x01T\x88\xd5\
+\xfa\x0b@xyX\xc7\xe0\xf2{\x80\x10\xcc\x02\x9f\x93\
+_\xc04Y\xff}q\xa4<T\xe2\xbb\x9eza\x9f\
+R\xed'\xe6\xa8bN\x8c\xd89\x93~\xa1\x80\x9d,\
+\xd4\x16\x00\xa2\xf0\xa2p\x0dPX\x0a\x7fsA\x0a\xf0\
+\x8fQ\x90\xeb\xb3\xc4\xb0i\xff\xac4\x00\x88\xb2W|\
+\x0b\xe8\x06\x84d\xbe\xb4=6\xack-\xd0\x8a\x00`\
+\xca\x96\xde\x02\x02\xf8o\xcc\x1b\xad\x0d\x09\x80\xec\xaa\x83\
+\xf33a\x99h\x9c\xdc9\xa8\x9e\x92\x7f\xe9\xee\xfb\xbe\
+\xb7~WG\xe5\x94\xd0\x07\xfeu\xf6E\xf4\xf2\xab\xcc\
+\x9a7\xaf\x17\x88\xc3R\x81\x94\x00P\xef\x87P_\xb9\
+\x0dpY\x02\xfb\xc0\x87\xae\xbc \xc7\xcd}^\xbf\x0b\
+\x1cbH\xc3\xf5\xf2\x01\xef\xdd\xa9sF@#A\xb8\
+|\xf7\xf7\xf4\xf2\x1b\x1b\xe8\xe0#.f\xec\x15\xd1\x0b\
+\x07J\x02\x16\xed@\xb9l&R\x11\xd8\x1f:\xd9!\
+\x99H~l\xa1\x88\x15\x92\x9f\x14\x92\xcd\xbb\xe6\x80l\
+8!\xac\x89\x11\x1d\x13bDM\x1c\xe8\xc7\xdd\xf8\x16\
+\xe2Gz\xfc\x1c((\x96\xa9\xb6\x5c\x15\xf5\x9b'\xd5\
+\xc6\xdc\xf9w\x87M\xaf{\x86M\xaf\x0f\x0d[\x80\x80\
+\x9d\xf7\x0c\x9b\xbe?c\xf8\xb7\xe1\x8cED\x89\xda>\
+\xc4\xd0\x81S\x0ei=/\xd8z\xb0NPH=7\
+\x89\x1dG\xe7}\xf4\xceX\xc0\xd6\xdb\xaf\xe7\x86\xd8'\
+\x1d\x94\x7f\xb7\xae\x04\xb2\x1c\x89\xbfk\xbd\xe9\x9d\x92H\
+p$\x1f\xc9\x04?+\x87\xc64\x11\xbb)\x912\x81\
+=*\xd1^+\x8a\xe4\xbdg\xca\xd9\xb4\xd9\xe6\xcf\x0d\
+y\xe50T\xba\xb3\xc5\xa6\x0d#|SN\xdb\xb8\xd2\
+2.\xcf\xff\x1f_<\xd9\x8b\xda\xf8\xbe\x87\x8d\x0f\xcb\
+\xf9\xe2\x1fL\xe0`\xda\xf0\xe3\xd9a\x0b\xa2\xba}d\
+X'f\x02\x81\xcc\xc4\xa4\xa6\x06\xfc,l\xe95\xaa\
+\xe7\x82Rv`\xd82e\xc1\xefa\x18l\x7f)\xac\
+\xab\x00\xa0@q\xbc\xfc\x86@\x1f0\xe8~\xa3$\xa1\
+\x0e\xfa\x02\x04@|\x1d\x04\x0e\x16\x096\xc4?\xd7s\
+!\xa3+\x11\x98\xa2\xecA\xca3\x10*\xaa#\xc7\x0d\
+\xc82\x0e\x90\xb8\x93\xb1<\x80#\x81\xb2y\xed\xee\x1f\
+-\x0e\x09\x99\xde<@\x96\x03.\x0fjj\xcf\x95`\
+\xa5\x88\x97\xefk\x1fd\xef{\x89\xe3Q]Wq\xd0\
+\x8a\x95\x89\xb0\xfd\xa9\x12S\x07\x1f\x86\x82y\xd9\xc6\xd8\
+\xe9\xb5E\x85t@\xf0g\xc6\xee\x11[\xf2\x5cR\x9d\
+\xbez\x9f\x13\xd8\xa3\xee\xbe\xfb\xaf\xc2\xbai\x1b\x90\x7f\
+Tq\xcfQ\x85?)\xe6*q;?\x11\xb6\x88\x87\
+\x16\xe0\xe1 \x04\xb89@M\x83p\xd0-\xe2\xa2m\
+\xdf\x0dg\xce\xea\xf4S:\xd4\xc4Q\xa7\xb0hnq\
+qPz\xffw%3\x06\xa2\xfe\xa9\x9cZ\x81A\xb1\
+\xea\xed\xafD\xeb\xa9I\x95M\xc4\xbd\x01\x09\xa7u\x09\
++\xbf\x91\x89\xfappX\xee\xcf\xdf\xeb\x12-\x22\x96\
+D\x85RK\xf3B\x1a\x0f\xfc\x1a\xe0Ue\x07uP\
+/?@-+\xf8\xad7\xff\xaf\xbaq\x95\x02T\x80\
+\x8b\x04 \xc6\x19>\xa8\x9bv\xa3\x22\x9f\x80\xca\xce\xef\
+\xed\xfc\xee\xce\xefv\xd4E\xf1\xc3AaK+\xc8\xee\
+?\x0b[*\xbe\x00\xda\x9d\x9f\x0d[\x122-$D\
+\xea\xf4\xec\x97X\x16\x86J\x8a\xef\xb6\xc4\xff\xda\x0b\x00\
+S\x9a6\xb9N\x87\xd7\x86-\x09\xd8x\xeb\xb0\x8eq\
+\x85\xaa\xa9%l\x8f\xb0\xe9uwN;\x89\xfd}\x9f\
+&\xea8\xd92\xbeOKA\xf5\x1e'0T\xad\x08\
+A\xfd\x1f\xba);\xc9\x5cAm\xad\x1e\xcd\x13\xb3U\
+Bb\xc4\xff\xfcA\xfa\x97\xe7\xa5\xba<`'\xc7g\
+V\x05\xf2}a\xcd\x7f\xceS!\x92\x1a\x5c\x80F\xb6\
+\xccT\x02\x15\x9a\x09\xdf[\xbe/`\xdb>\xb2o\xb2\
+\xe7\xbe\x18@\x19\xa7\xd4y\xae\xb5\xcc\xbck\xfe\x1a@\
+A\xd3 E\xc7J\xfc\x90\xdf\x0bj\xf4\xfd\xdb\xf9\xf9\
+\xf5\x96xh\x15\x89\xb1\x89\xe7w\xe2\xc7\x09`\xa1V\
+c4\xb5\xde\xe3S\xbb\xb1\x7fT\xf1\x01\x1c\xef\xda\xbe\
+\xb31\xdeve<\xfa\xd4le\x89\x04\xfe\xa7\x8d)\
+uR\xd3\x10\xd9\xb5\xdd\xb9\xdd\xd9\x80\xc1y\x9aR\x16\
+`\xc6\xff\x0d[D\x9f7\xc7\xcf\x09\xf0\xf0\xac\xc9\x9e\
+\xdd%\xd0D\xb9^1%\xae\xafh@\xf3\xb7\x02h\
+\xde^=\xac\x0b\xf0\x8f\xceD\x0b0\x87\x11\xa9\xd0\xa1\
+\xb0e\xde{\x02\xd1\xe2\x10\x09\xdf\xf0Ka\x19G\x1e\
+\xdaQ\xf6\xa9\xb7\xa3\xe2k\xf5\xd0\xd3\x8d!C$\x10\
+\x93O\xe2/><'5f\x88\xfb%\x83\xa4\xe6\x8b\
+kEK\x11\xb5\x1a\x97\x9a\x89s\x9d\xfb\xfc]V\xae\
+K\xfb$E2\xeb\xbcL\xc0|\xb8U\xd8\x02|l\
+o6\xf7\xbe\xd7~\x22\x22\xc8\x9f\xa94Kt\x15\x94\
+\xac3\xf1;\x11\xbf\xd7\xa7H\x1c?\x99q@}\xbe\
+\x14um@Z\xc4%\xafm\xb6$\xd6\x0a\x024|\
+\xf8i\xcf\x8f_\xe6\xb7\x01\xdc\xb4\x9f\x00\x22\x12\xb5L\
+\x18\x8by\x91\xcc/@fQ\xca\xfd}q\xa6\xe7\xe5\
+{L?\xf7\x1d\x83\xe1\xc5a\x1d\xa3\x02\xb0\x9f\x85\xb2\
+*d`\x80\xfckX\x07\xb4\xab\xecKx\xb5\xd4\xba\
+\xefkU\x7f\x14\xff\x07\x84u\xd7#!\x05d\xd1X\
+\xc2\xe4\x94Oy.^\xd7c\x02\x15\xe8\xe4\x85\xfc\x94\
+<C\x85\x1b\x83\xd3\xbf\xaf\xb4\xdc\xea\xf7\xc5o\x0a)\
+\xfc\x9f\xeb:o5\xd5\xcb4\xb1,\xf4\x14\xa0\xe2\x5c\
+\xd2K\x9f@d1W1\xd9\x00-\xe2\x16\x8cK\xe3\
+\xbc\x8d\xbdT\xd84\xdeRK\xaa\xf5\xa6\x97\x1f\x83\xdd\
+\x18X\x0cV\x05&\x9f\xd7\xb4\x18\x7f\x0f\x13%\xe3\xd0\
+\x9a\x9e\x92\xe7\xc9\xae\xf1\xd8\xc9\xa6Dn\xfcRXw\
+\xf0H\xdc\xf5\xf2\xa3jEx\xb8\xefE\xa8/\xba\x10\
+\xbd\xf1)J\xd4\xc2\xc0\xef\xe4\xf7\xe7w\x88&Q\x22\
+\x94\xa0\xcb\xb7\x09\xc2KBBK@@\x9ac\xf8.\
+\x94\xf8\x07~\xbb_n\xd8\x03\xba\x05fAa\x02\x08\
+\x9c\x5c\xa7V\x05-\x09\xb1L\xaf\xddQ\xb6Q7\xf4\
+~\xc4\xc1v\x8bn|\x9b^\x1c\x00\x85\x0a\xa3\xb1L\
+I5n\x09\xc7\x99Y\x99;>\x91\xbe\xd7w\x88\xe0\
+O\xe7\x8a~Q\xf8\xa8\xf5\xe7\xfc\x5c\xa2\x14%\x86D\
+u>{\xa3\x04\xb85w>+\xe0\xc3\x1f\x0d\x8f\x1b\
+\x1e\xb7P[\x877\x84u\xe3\x99r\xec\xc8\xcec\xc2\
+\xa6\xff\x7f\xa9\xb0\xe9\xf5\x9f\xc3\x9a*\xf2\x17C\x15\x19\
+2Z\xe2-\x02`\xf34\xb3\xb7\x91\xa3\xa2\xba[H\
+\x98\xc4|\xed\xc8 r\x10\xddLtT.\xabr%\
+\xf0\x05\x00qH\x1c\xc0j\xc1\xebm.\xb1\x1f\xc8`\
+V\xf0\x8a\xca\xfd\xbe\x14\x1b|\xe6<\xfe\xae\x02b\x09\
+\x85\x0a\xa9D\xdeW\xcf\x88\xd9\xb3s\x1c_J\xe0\x02\
+\x80\x11a\xf6W;d\x15\xc2x\xe9\xb0\xce1f\x0f\
+b\xa9\xe9\xa78\xcc\x14\x8e\x9c\x1b\x01\xc9\xeeg\x85%\
+`\xf0\xc6\x05\xa1\xa4\x82:\x9e\x1a\xb6 zz\xc1\xab\
+\xb7,\x11C\x15\xf1\xa2\xf0\x12IR\x19\xd2\x83\xa8\xe2\
+\x0f\xe9\xceu]c\xa4\xa8\xf8: i$\xa8,x\
+\x1f\xff\xee\xb9;8\x00\x22\xf6\x97\x04\x15%7\x03\xeb\
+BP9j\x95y\xeb\x00\xd0#1\x05(\x09X\xfd\
+\xfc\x22\xda\xd3\xfe\x9d\xc6G\xcd]\xe5H=\x0fb\x7f\
+\xfe={*\x0b\x90\xe2\xd0%^\xfc\x18&\x00\xe6\x0a\
+\xd1$\x94k\xcf\x1fpHLS\x85\x01`\xa9\xb5\x80\
+\x1f\x91H\xe7A\x8b\x12\xb6\xf9\xfb\xb0N\x8c\x0aPB\
+D\x06\xa0\xa0\x07S\x05\xc0~B\xc1\xd4#\xee\xef\x12\
+\xbb\x02(`\xe8|4\x0f$\xfbC`\x98cJ\x8b\
+R\x98\xbd\x8cE9C\x89\xb7\xbf<\xa7\xdc_\xb5\x1e\
+S\x5c\x10\xc0\x84\xc9T\xfbM\xe0k\xfcg\x8aD\xd5\
+8Q\xf77+X\x15\xc0\xbe%\xa7\x0e\x18[(\x01\
+6\x9f\x1c\xa0\x99\xa2s\xd3!<\xf7\xfe\xa5\xdatQ\
+\xef\xad\x0f\xcfK\xcb\xcc7\xd3\x9f\x9d\x9c\x01$\x8d\x19\
+\xada\x02,S\x13\xf29\xd7\xd8\xdd3\xa6\xbbzF\
+w\xeeE\xa7\xe8\xd1\xed<xk\xa3\xda\xd2>\xc8\xca\
+x\xad\x0b\xd4k\xcc\x17\xe7\xb6J\x9a\xe9\x06\x09\x94\xa1\
+\xf6\x17\xb0\xa2\xe2\x9f\x89\xbd\xf1j\xad\xd1\xe3\x01]`\
+\x85\xb2mL\x1fj~\x02\xc3%:\xa6\x179\xbf\xdf\
+\xbdgXGE\xd6S\x09\x08I\x8d\x19\x0c\x8d\xe1\xfc\
+\xb0\xe9u\xbf\xb0n=E\xc2\xf7\xa8\xac\x94|ca\
+\x00\xe8\xbd\x1fo\x166}\x7f\xc5\xb0\xe9\xfbs\xc2\x16\
+`Ge\xde\xd8\xc3\x96@\xbf\x7f\xa1\xac\x0fO\x0a[\
+\xe6[7f\xd7+R\xd5\xff\x7f\xbb)\x07\x99x\x03\
+\xb4\x86\x0fO6\x9d+\xc3/\xc2r\xbf_'\xc7M\
+\xc59v\xd9\xb0E\x13\xa6\x9e\xc3\x9a\xe1 \x816\xde\
++\xf7\xe1\xf0\x07a\xd3\xe7y@X\x8a\xe1}\xa2\x9b\
+&\x93\x89\xd2\xf8\xe6\xb0\xa48_~ILK\xed>\
+\xce\xc1\xbf\xee\xa8\xcf\xce+\x95Q\x8c7\x81\xa6\xc0\xdf\
+\x10c\xfeZ\xa2\x1a\x8c\xb5\x8fu\xbfg\x9d`\x8cb\
+\x06d\x81b\xb8zX\xc7\xb8\x8cF\xa3\xa7v\xcf%\
+\x19r\x80\x8f\xf1Ia\x09\x84_\xb5\x8b\x17\x22\x8c\x0d\
+@\xef.\x93\xfd\xf6\x22\xa67>a\xb2)\xb1\x1d\xf6\
+\x09\xeb\xe2@\x15\xce+Ov@R\x8b_\x96\xa2\x8b\
+\xbf\x9f\xbd\xe4S@<\x9e\x19\xd6\xe2\xd3\x16\xf7m\xbe\
+\xb0\xf9\xcf\xa0x\x9bV\xa1UR\x8b\x14\xbfFsd\
+\xfb\xef\xdb\xcf6\x86\x1d\xff\x8f\x89\x99\x89\xa9\x04\xb7\xc4\
+\xf2n\x97\x80\xeb\x97\x13\x18~\xdd\xec7\x8c\xfd-F\
+H\xc6m\x80\xe5\xcd\xad\x13\xd0\xe6?\x0f\xcdB\x99\xf3\
+M\x9cb\x7f\x03\x18P\xe6\xc5g4)\x00\xbb{d\
+e9\xcf\x15\xe3|+\xb1v\x9eg!\xa5\xa6\xa0h\
+mI\xc6\xaax\xb4D\x9f\x1f\x91\xa2\xcb9\xcd\xa4\xf9\
+\xb9\x8f\xb4\xf58k=%cbx~\xd8\xf4\xbe\xf7\
+\x08[\x00\xc4\x9a7\x9fS_\x0a\x083\xd5I\xcb\x18\
+&\x9d\xc4\x8f\xf8\xaa\xf8\xd3\xbf\xa3\x86\x07\xc0\xf9\xe0.\
+\xae\xc0\x88\xc1|\xb4?\x14\x22M\xddH\xf1\x5cL3\
+\x85\x94\xd2|J@\xb4\x00e\xf1-\xd1<\x00\x88s\
+W\xbe\x90\x7f\xb7\xb4z\x9cg*\xb5\xc6\x0c\xd2*\xc1\
+\x5cI\xc6O\x152$\xdc\x0a\x03\xfcq\xb6\x96U|\
+A\xe3\xc1\x94$Trb\x94\xa9qT\xe2|\xc6<\
+\xae+\xf1Z\x06P\xfc\xc5U\x80\x8f\xf5\xd8\xd0u\xcb\
+\xb4\xbc@\x81h\x15\xa7\xd5}\xd7\xc3\x8f!\xa1p\xa0\
+uAe>\x0b\x19\xe5G1\xcch4\xf0S\xfe.\
+\xff\xa7\x90\xc0\xcf\xb8\x9e5\xe3|}\x9d\xd6\x8f\x04^\
+%\x1fP n\xc8\xb8\xbd\x18\x05\xces\x9ag\xce\xc7\
+\xb5\x86YN)+\xb1H\x00\x07F\x8f\xbf\xafe\xcb\
+}\xc0\xc8\x01(i\xc1\xf49\xb5\x16$\x90\xb9\xab\x02\
+R\xc8\x9a\x84^\xa0(\xf1\x97\xe8J\xc81\x02\xfc\x1c\
+u\xff\xf5\xfcC7\xccAB\xf5<\x90\xf1\xf7g\x22\
+z\xbf.a\x8f\xfa\xd0u:DC\xa2\xd03\x01\xf6\
+\xcb\xc0\xf4\xca\xb9\xb0\xf7\xcfJ\xf0u;\xf1?*\xfc\
+\xae\x93\xe3t]\x11\xcem\xbb\xf77.\x22\x02\xea\xfd\
+:\xca\xbf\x0d\xcd\xb1\x02\x100\x17\xbc? \x03\x82$\
+A\x01\x94\x10\xeb\xfa\x83\xb0\xae\xd2\xa8G8EW\xca\
+\x91~f\xf3\xe9\xcd\xa7\x1b\x22\xdd(\xf4\x12\x80\xe1\x9e\
+a\x9d(\xd1\xe7gJ\xef\x14\xbe=}xz\xa7~\
+\xfc\xe2\xb0\xe9\xe3>'l\xfa\xfe\xaf\xc3RU~\xfa\
+\x1c\xc3\x0b\xc2:&\x81\xeb\xe1\x10SU\xb4>\xdf:\
+\x11\xb3\x10\xf5T\x1b\x1f\x06\x18\x11@\xa3\xb4\xa4#1\
+\xa7\x12\xf2^\x1bE\x22o\xdc\x9a^\x15\x0b\xdbs\xd3\
+\x03\x9c\xe3\xeb\xca\xa1R\xc3\x85\xf0\xa2\xdc\xa0J\xeb\xed\
+J\xcaV\x8d\x9f\x81\xf0\xaa\x8c\xa0@q\xa8\x10B\xfb\
+\xe2\x9b\xe9p\xad\x1b\x07/\xa4\xed\x8b\x19H\x11\x87\xe4\
+\xb8U\xb2\x00\x15\xa9\x12\xbb\xbd\xfe\xf6z\xdb\xebe\x82\
+\xfe\xf3\xfe\xa7\xeb\x00\x00 \x00IDAT\xcdE\xbc\
+h\xf7\xb1\xbb\x8f\xdb=%\xee\xe3S\xc7\xa7\x8c\xf1y\
+\xae\x97\x14\xeb\x8f\xcc\x14\xa6\xf1+a\x0b\x12?\xfeS\
+\xd8\xf4\xfa\xa2\xf1\x85\xe3\x0b;\x0a\xd1\xd9\x89\xc8b\x02\
+\xa4\xc3Gu\xa3\xd2^\x1a\x09\x0e\xa4\xa4\x9c\x8e\xdf\x0b\
+\xeb*\xe7T\xea\xf9\x01L\x0f\x8eL\xaf\x1f*Z\x8a\
+{ql5]\xc3\xbe\x82\xb4\xaal\xbbn\x0eX\xc2\
+\xef~C\xb6\xf9\x07\x80\xa0u\xc4\xc1[\x9f\xa8s*\
+\xf1\x02W\xbf\x87B\x86\xc2\x95\x15\xbeZg(l\x02\
+\x03\xefk]\xa8\x84I\xec\xf4,J\x14\x05\x86z\xc1\
+?\x15\xb6\x04\x04\xc5\xdc\x00P\x00\xae\xf8Q\x9f\x9b&\
+J\xbe\x7fi\x03\x00(\xdc'\xcc\x09\xef\xa7Ue-\
+*\x09(\xc8\x96\x81\xda\xdf\x80\x0d\xd7\x09 \xb0\xef\xdd\
+\x07\xcf?+MM\xa5\xfb\x87\x0b\xb3\xa9z\xb6\x1d\xe8\
+\xf6\x89\xf5\xc2\xdf\x12\xe5\xa4)\xa1\x07\x0e\x85\xcf\xcfc\
+\x8e\x00\x00Qg\x8d\xb1\xd4;\x98@RQ3\xf7\xd9\
+\xee\xbd\xdd\xbb\xa9\xcfO\xb6\xb4:m\xbf;Wj\x05\
+\xa6m(\xe4\xfb;1P\xda\x0a\x80O\xc0\x87@#\
++\xd0%\xee\xe4s\x1a\x17\xab\xf2\xf6\x98\xb0\x85\xa9U\
+\xe2q\xa7\x86M\x1f\xef\xf8\xb0\x8eY\xb2B\xfcQJ\
+\x0b(\xa5E\xa0\xd2c}\xbb.\xcc:j\xc4\x02\x0b\
+\x0c1\xeb0)\xe8\xc5\xe4\x08i\xc0\xfbt\xc0Q2\
+\x96\x0a\xd8['\x8c\x077\xdb\xb1\xb9XX\xc7\x14H\
+q:\x95\x8c\xf1\x94\xb0n:H>/\xc7\xe8\xf0\x96\
+\xb0\xc9\xbd\xffS\xd8\x226\xbb\xf3\xa5\x93\xbd\xa4S}\
+O`i\xfc\xdd\xb0e}V\x02\x92\xe2^\x12\xce\xf1\
+\x89a\x1d\xe3\x0f\xb3\x8f\x7f\x03dx.\x09\x887\xd1\
+\xb7\xcd2\xff\x19SFa\xae\x18q\xc7\xcdT\xfd6\
+N\xce\x18\xdcwf\x01\xe2*I=\x7fc\x07\xcce\
+\xe5\xa7D'\x9d7\xd4\xf1\x01\x0c\x09\xec9\xd7\xb4\x06\
+\xed\xfcP\xd8t\x1fv\xce\x15\xecb\x08\xe5\xfd\x9f\xd2\
+\xa7{F\x02UTr=\xc9\x01H<=E\xd1\xee\
+\x9d\x05\x91\x83\xbbD\x88(s\x02\x85\xc50H\xa0\xa6\
+\xdd\xff\x07u\xc0\x948J\xa5\x0f\xe0\x1d\xf5\xcc\xa3\xba\
+\xc0;[\x13\x01\xa4;\xbf\x136}\xff\xfc\xb0\xce\xff\
+$\xb3\x86\x86L\x89$\xa7_\x1a>\x18\x96\xe3X\x0f\
+_\x00\xeb\xd2\x9c\x09xo:\xdf\xc7;\x87\xb5}4\
+S\x9a\xcf\x9f\xa9\xf9\x18-5\xc5\xea\xebS4\xf1\xf5\
+\xee\xdc\x07l\x1d\x13\xf3GR\x03b\xfa\x5c;\x1f\x1f\
+\xd6M\xa9\xc8\xb1~U\xe0H\x0a\xfcf\xdcl7c\
+'v\xa9EL\x0f\xff\x0b\xe7@~\xf3\xd0\x1c\xa7g\
+\xbff\x02\xbd\xfd\xfe\x0c(\xa8\xd0\xd3\x08\xa0yR\xd3\
+/$\xbc\xf6\xdd-\x93b\xad\xc5\x0f\xa0`\x9f\xa6\xdf\
+\xaa\x82\x88\xd63\xe7\x11m \xaa\xf7\xc6\x1ej\x9d\xa0\
+\x85\xe2\xfcq\xdd\xeb)K7J\xe6\x5c\xb6:\x01\xae\
+T\xd4\xb7W\x9aE\xf0j\x5c5&J\x8a=\xd6\xe7\
+\xc4\xe48&l\xf9\xfd\xa2\x92\xa7\xba\xfd\xe6\xe5a\x1d\
+0\x01\x98u=\xce\x0b\xeb\xd3\xb9c\x9d\xfa\xff\x19g\
+\x16\x10\x22AW\xe02\xbdC~\xa3\xd0 \x81\xc5\x00\
+\x90\xa8aX\x98\xaabz\x82\xf8BAD\xdc\xa1\xa5\
+\x0eCN\x05\x1de\xdf\x18LSj<O\x89\x1d\xa6\
+\x18\x86j\x02\x08\x98\x99\x058;W\x931RLL\
+L<y\x97\xfb\xe8u=u\xc9\xfd\xb5\x1e\xc4S\x12\
+P\xf7C|\xe6sJ\xfc\x8dQTx\xd1\x9aH\x1b\
+HeZK\x0a\x06\xa3\xfc\xc2t\x14\x00YN\xa3\xb8\
+\x90\x88\xbc\x1e\xfel\x85i-tO\xea\xa6n\xa8\xac\
+\xcb\xdfh\x97i\xe5\x01\xc0(\xf0y\xfe\xde?\xd7O\
+1\x1aM)\xe2\xcf\xf9\x15y \xa0G\x81\xd6\xf5`\
+\x18\xfb{\x18\xde\xa6'\xc9\x93R\xcb\x04\x90T\x8cP\
+\xe3\xb4\xb5\x80\xbb_\xf2\x0d\xc0\x90\xe7\x22nS\xd8\xcf\
+\xf3eW\xf5\xf6\x0a\xdc\xf7j\xe4\xe6E\x85_O<\
+\x0a\xbd\xb1@k\x15Y\xaf\xd4\xfd#|\xd9\xa3\xbb\x91\
+NP-\x02\x10\x09b\x15*\xf7^!H\x10\xe5<\
+\x90+\xd0\xbd\xee\xac\x12]S\x0c\x1c\xbc\xfb\xb5AN\
+\xcb\xc1f\xc1\xd0\x16\xe8\xc7H\xec\xbc\x88qb\x12`\
+Hr\xfc\x9d\xeb\xa5\x18\xca\xf53\x00\xfa^.\x9c/\
+v7TB\x13a\xff\xe1]e\xc6B0U \xb6\
+\xdb\xb5\x96\x8aqH\xc5\xb5\xf1U9V\xa9DAT\
+\x1c\xf7I\xeaJ:\x02\x01\xe0\xe6\xd4\xcd\x1b7ol\
+\x15\x88V9\xd1cI\xbd\xd9\x98\xa2\xe1\x91a\xd3\xff\
+\xbfu\xd8\xf4\xfa\xb3\xb0T\xd9=:\xa9n\xc7w\xd4\
+e\x0b\xd9\xc2A\x9dN\xaaK\xf5v:\x00\x8d\xc5\xe1\
+\xd8U\xc6l\x18\x95\xdf\x8fuj\xd7W\xea\xc6\x89\x19\
+\xe3B\xfd\x1a\x85&\x1dD\x89\xb1\xac(P%\xfa\xe2\
+9\xbf\xbfu\xefV\xc2\x06P\xa9\xca\xb5\x1e$*\xcb\
+z\xf2NN\xa6\x81\xc4i-B\xe7>88|}\
++\x0f\x16\x94w\x811\x95U\x8e6)C%\xda\x93\
+\x8e\xb5\xc6\xf0=gf\x82\x8c\xe7\x8e\xe7\x8d\xd3\xdf\x19\
+\x7f1\xd9\xe4\x88v\xdfu\xf7o\xef\x0ej\xe2\xa5\xc7\
+\xbd\xc6\xbd\x96\x04\x07\x83@\xa5t\xbcM\xd8\x02,m\
+\xef\x106\xfd\xfb\x07\xe7\xb1\x81D\xd0jz\x00\xc7\xa7\
+\xf79E\xbcj\xddA\xec!\xeb>\x1f\x04\x16\x05*\
+\x91\xe8B\x84\x89\xac\xe9\x15\xfc\xf7\xe9X\xf8\xf7\xe6\xa8\
+f\xbfr\xad\x0c\x84\x1d\x10\x0e\x1a\xf7K\xe5\xdc\xbf\xdb\
+W\x98\x06z\xc2\xb2r[Z\x0b\xde\xcf\xfeUI\x95\
+@\xcb4\xb4\x8a\xa8\xd0\xa4(\x9b\xeb\xad^C\xe2@\
+\xc6\x06r\xc0(\xbcz\x1c\xb5\xde\x98O\xec\xef\x0a\xf8\
+\x01\x82\x12d\xc0\x18 \x11\xa0e\xac\xa0\x83V\xa2\xa9\
+\xa7\xd4\xf3\xf2\xf3\xe9\x17U\x22jl\x9a\xa9\x18\x0ev\
+\x07\x91\xd6\x81o\xe5\x5c\xf4\x0f\xcdT\xf8\xaahEB\
+\xf6\x8d\x85\xf9T\xf3\x86\x05\x22\x9e\xff\xf7\xeb:\xe6\xfb\
+\xb9fV$\x808\xfcg\xd8\xa2\x81\xa0\xd7\xb1\x0e \
+\x95|\xbd\x8f(\x9e)J'\x80\x19\x1f\x196\xbd\xdf\
+\x95\xc3\xba\xc4\x94_\x04\x08x\xcd\xde\xd8\xf1\xc3a\xdd\
+\xd8\xa77\x84-\xcc\x9f\xe1:a\xdd\x18>\x152\x15\
+\x10\x22]\x00(\x01N&\xe2UY\xe1\xafTRR\
+\x8b`\xf3\x96)\x81{KC\xde\xe7\xf3-\x81@\xbd\
+\xcb\xa6h\x10K\x1a\x1e\x13\xd6}.\xcf\x0d\x10\x098\
+3665U\x8a\x92k}Y\xbf\x00:\x9a\x0fZ\
+\x03\x88\xfe\xad\x010\xfb*\x12\xb1\x87/\xbd\xe3\xd6_\
+U\xc0\xf9[\xbf\x97@[\xcd\xcfV\x09I\xad\x13\x89\
+\x00\xff0\xde=l\x09\x9c\xa8\xa4\x8fo\x0c\x9b\xbe\xbf\
+gX\xc7\xa8\xc9\xcf\xbd\xf3\xb4\xc9\xde\x94\x15\xf9s\x9b\
+\x86\xc2\xe9\xa1\xa10\x9e\x1c\xb6\x88\xf7Y\xa7\xfc\xe1\xe6\
+\x05a\x1d3\xe2\xfc\xec\x99O@K\xab\x97D\xbei\
+Y\xfc\xcfr\x8e\x0e\x87\x85u\xad\x06\xce]\x14\xe5\xa0\
+\xaa\x87\xe8\xeeAa\xcd\xdfN\x96\x9f\xeb\x81]\xaf\xa6\
+\xfbdz\x8a\x04\x1a\xc0\xa2E\xc2\xbe$\xfa\x94\x00\x14\
+`m\xc7\xf3\x9b\xd5\x14\x04\xbd\xefz\xb5\xab\xc5\xcb\x14\
+\x0e\xe7n\xfa\x1b\xe3\x82\x9b\xbf\x8fJ\xf0\xefMvD\
+\xe7\xc7\xd2\xefT\xe2\x1a<\x92\xdf_\xe21\x15\xef\xd2\
+v\xb1\x7fie\xa4?\xd5\x1a8\xbc\x22l\x01\xbcj\
+<g\x02/\xd3\xb9\xf7\x9c\x10\x91,M\x9aL\xa0K\
+\xec8\xa7D\x8co\x0aK?\xf3\xc3\x8c+.\xb70\
+\xd1j\xfa\x01\x7fE\xb4\xce\xb4\x16\xaa\xd9\x12\x05\xbd\xe4\
+W\xdd^\xad1\x0c\xde\xd0\xe6y\xec\x18\x9e\x196=\
+\xffCw\x1e\xb2\xf3\xd0.\xf1\xa6\xa9\x01\x90D\xedU\
+\x89~\xde\xe6\xf9\xc1\x5c\x18\xde\x1f\xb6\x00\x04%J\x9b\
+\x89_\xa9\xd6\x03H\xf6\x08k\xcfaNl\xb3\xd2?\
+\xc5s\xbb\x87\xdd]\xc2Cs\xe4\xdb\xa9\x86\xbf\x9e\xce\
+\xc0?c\xd8\xfcc\x8a\xf4%\xc5\xb8\x12\xe8\x5c\x8f\xa6\
+\x18\x14`\xaa7\x9fX\x9f\x16\xaa\xcf\xe6~^\x03\xee\
+\xe2y~7\x13u\x0c\x95\xe1\xebaK\xc2Ub\x94\
+\xa6&`\xb0\xa9(\x7f?l\xf9\xbcU\x19\xcd\xe7V\
+S\x82$\xcc\xc9\x0c\xa8\x02\x0d\x00<\x9fO%\x92+\
+\x91\xdb\xea\xfd\x96\x88\xdd\x7ff\xe2l_6\xcf[\xaf\
+1r\x09\x1c\x17\x90\xb2\x1a\xdbV\xf9\x89\xfb\xe0\x15E\
+\xfb\xdc\xb0\x8ey\xa7\xf0c\xea\xa6B\x87\xfc)\x19?\
+\xc5\xb8\x90X\x1b\x87\xedz\xc4\x9f\xf2\xa8\xd4f\xa8\x84\
+v\xad\xbd\x96@Q\xb56fkKQ\xfc\xc5C\xe2\
+#\xf1\x12`_\xfe\xe5\x1c\xc4\xc8T\xc8\xcd\xfdW\x09\
+\xbd\xfbC\x05\x1f\xf0\x9a\x95w-Y\xc5\x94\x90g\xa8\
+P{\x7f\xad\xa8\xc6P\x8aK\x01\x12\xa6t\x10\x9d\xc4\
+\xb0\x95\xf8b&h\xc1\xd4\x82\x93-4\x18\x82u\x8e\
+\x11\xb1\xdck\x16\x91\xadi\x04\xf2\x17\x0c\x00\xaf\x0a(\
+\xe2S\xcf\xd9\xbe\xa4\x9d@\x0b-\xbf\xaf\x96Y\x05\x16\
+c;\xc5\xcf\x80\xa5\x153\xaf\xb4\xdf\x8c\xc5L\x86N\
+15\x89=cD\x88OM\x97\x92\xef\x02\x0c\x92A\
+\x89)\xb2\x8bHJ\x05t\x11\x1e\xefy\x11=\xff\xeb\
+\x84?\xc2\xff=/\x82\x12-\x10\xee\xa9\xfc\x97\xeb\x1c\
+V\xb8\xe1\x9fw\xbf\xef{\x88\x05\x07\xa4\xc2&\xa0\xf5\
+\xc0\xfc\xbb\x8d\xd9\xab\xf6_\xad\xeb\xe9w\x9d\x12\x8a\xa4\
+\xe8\xd5\xef\xfb|\x16|\xfc\xeb\xd5\xf2\xf5\x1a\xdd\xd8\xbf\
+\xa8\x97\x5c\x7fI\x08/0o\xf1\xd3\xdd\x86$B\x18\
+j\x8e7\xeez\x93S\xdd\xd6t\x83\x868>7\x03\
+\xdf\xc3\xdb\x9c\xd8G\x05\xc51$\x82B$HBV\
+\xbdQ\xa9\x9a\xdc\x0e\xec\xdf\xeb\xc6\x81\xfcQ\x8e\x0d\xba\
+KV(r\xfc\x90\xb15\xa5\xe6l\x9cM\xf6\x1aU\
+E#\xc7\xd0\x14\x95V\xef\xab^\xa5\xa4\x8c\x97\xe8\x97\
+\x04\x9cCS\x81\xa3\xea\xe9\xa0[\x8d\xf3Sq.\x0a\
+\xb3\x84\x0f\x22\x8a\x9a\xc3\xa1\xe9\xb1\xd3\x0a\x90\xe3\x13+\
+\x11\x8f\xed}N\x22f\x1f\xccD\x1a\xe5\xe9\x1d]/\
+\x9d^k\x15\x07=Zz\x81Tj\x1d {^\x90\
+j\x5c\xebP\xe0\xc0\xf1qX*\xde\xff\x9e\x09\x02\x87\
+\x01y\x86D\x12\x03J*8\xe4\xcf\xdc\xeb\xed\x81)\
+\x06\x13\xcf{r,\xbb_\xb8\xfb\x05\xbb\xa7\xc0\xb5\xb5\
+\xe6\x04\x03`\xff\xb0e\x9c_\x89\x85d\x808\xde<\
+,E\x01\x8fj*\xfb\xf7\x0b\x95}\xf3pk\x1c\xcd\
+\xdes%\xb4*H*\x8d\x18\x09\xb7\x0e[(\xaa\xd5\
+\x02\x80\xaa\x0e)%\xda\x03Y\xa7\x1a\xfc\x8f\x99\xf8G\
+\xaf\xe5I\xdd\x01 \xb1\xbdI\xaa\x9f\xda\xc7\x807\x0e\
+\x8a\xe3\x06\x9c@\xdc\xed+bp\x806\x81\xb4\x00E\
+\x85\x5c\x0b\x81\xf7w\xb0A\xb0\xf3\xfd\x1d\x1cUqW\
+\x19\xa4v\x9c\xef[@\x91\xfdtRX7uA\x00\
+\x9fH~\x1d\x08\x0e^c\x89\x8c_K\xf1\xb7\xd2\x14\
+!&\x97T\xc7b\x08\xa1\xd6\xfb\xe2\xb78~\xe3\xd2\
+L\x0d0\xd6-\x01\x8bb\xce\xa0\x84k\xddB\xd5\xcd\
+^\xd5V\xf1{o\xc7\x00\x80$;\xe0\xec\xbbHg\
+?\x93\x07\xf4\xe9\xdd\xfd\xf4y$VZ\x96\x12\x98\x88\
+\xa9\xdc1\x97\xbb\xfc\xb8\x84\x88?\x10\xc0f`M}\
+W\xaf\xdb\xf6\x9cm\x9bwO3\xa2Q\xb9O^\x18\
+>(\x7f\xc5\x1cH\xe6PHd\x86H\xa6\x1e\xfc\xf1\
+\x96a\xad\xc2\xd5\xee\x97\xc4\xaf\xd6\x07u\xdfT\xa5\xaf\
+\x80C\xa0$\xd1\xc1\xa8xZj\x89\x08\x0c\xde\xded\
+\xc1\x22p;\xbd\x050\x11\x88\xfeK\x87\xf0\xfb;4\
+,\xac\xa7L\xe8\xc6\x1f\x87u\xeb\xcf\xf9\x96\x89bU\
+\x9eS\xb4\x0c\xe0V\x94O\xe7M\xc0\xd7\xf7Xz\xb1\
+w<\xa1\xd9\xd2\xfaD\xad9\xefK\x05\xe8\xef\x9f\xec\
+}\xc9\x04|Ownd`T\x8c\x07\xd3W\xb4~\
+\xd1\xa0\x00\x98>3\xa9\xba\x12\x83\xdb\x85-\xfe`\xfb\
+\xd8\xb0\xe9\xf3\xfemX7>V\xe0B$\x98\xb8T\
+\x8e\x0f\xdey\x5c\xd8\x02\x08\xed<>\xac\xf3\x1b\x09\x90\
+5\xb1\xbf\x00\x94Nh\x16\x8c\x88\xdbon\xdf\x12\xf7\
+\x16\x90\x0d/\x1d\xfejxi[_w\x89\xf5\x058\
+\x1b^6\xd9tn\x0d\xe7\x85M\xaf\x9f\x0c\xcb\xf1\xad\
+\xff\xb0T8\xabe\xe1Na]\x22d_\x85\xa4\xe7\
+\x11]\x0b\x10qC\xe3\xa9\x04\xb4\xceS\xebB\x0b\x14\
+`\x22\xffn1\xa2\xc4g\x00X\xfe\x0f\xe3\x89\xea>\
+\xca\xb4\x1e\xdd\x1f\x84M\xd7{\xc7\xb0\xc6$k\x8c\xb3\
+\x12y\xa3-\x90\x00\x8f\xe7\xddN\xe7\xef.\xadf5\
+m\x05s\xc0\x18E~)\x01\x8a\xe1]s\x0b\xe1\xd0\
+\xbe:&\x91\xd6*\x8c\x14\xbd\xcb\x09Po\xfe-l\
+9_\x01BDH\xdbT\x85+.\xbd\xcb\xe33\xc3\
+\xa6\xd7\xdb\x87M\xff~\xfb\xb0n\xbfa \x02\x96i\
+t\xdc+l\xd1\x8a\xda|kN\xccw\x1d\xb4\xeb\xc0\
+]\x07-\x00\x13\x11\xe5:\xd7\xd3\xdf\x85\xf4r\x13_\
+\x16HS\xe1\xbf\xe1\x14\xf7M\xcfo|\xf7\xf8\xcf\xe3\
+\xbb\x97\xd6\x1e\xfb\xae\xb4~\x0e\xcc\xd6\x85\x97\x8f\xaf\x18\
+_\xd1\xe2\x8d\x06t\x0d\x97\x0d\x9b^\xbf5\x8b6\x97\
+?>u\xa6\x10WaE\xa2\xc0\xff\xe6:7%\xa2\
+ZT\x8f\x9c[=Q\x88\xa3\x5c\x14\x05#\x1a_\xc5\
+\x80\xcc\x0av\xf9yL\xafU\x01\xaeD\x9b\x89\xcc*\
+\xe0\xe4\xf96|>\x81_\xe3_?\x9f\xe3\xf6\xc4O\
+\x00\x1ac\xe0\xb2e\xaa\xfc\xdd\x8b\x9b-\xc0\x92\xf8]\
+\x02Gs\xca:\xb2\xef%\xbc\xeb1\x96\xf6\xa58N\
+|{Z2\xaa\xde\x11\xd6\xfc\xf5\x9cp\x1a\xcbj\xbd\
+\x00\x88\xed?\xeb@O\xbf\xeb\x03`\xeb\xb5\xcfBe\
+\xb5t`\x02`d\xb9\xee\x8c\x8b\xf8a\xe7^\xc5S\
+*\xd6\x80g\x895\xc6\x81\x0a2\xe6\xa6s\x14\xb3P\
+\x8f9\xe0\x0a \xe0\xba\x89\xd8\xd9/\xa6CaJx\
+n\xe2]q2\x0d\x01\xe3T\xe5\x8f~\x8fh6\x91\
+?\x093f\xaf\xc2\x0d\xaa\xbb\xe7\x04\xd0q\x1f\x93\xc9\
+[\x85\x84\xfb\xcd\xe3\x15+\xeev}\xf2O\xf1\x0e\x00\
+\x05e^\xde)O\xb3\xaf\x00*\xfe\xbf|U^(\
+\x9f\x05\x10\xd0~\xcb8\xba\x0aN>\x0f\xad\x13\xcc\x11\
+\x05\x0fq\x0f RkH\x8aw\x16\xc3n=\xa6s\
+[*@\xf3\x97xD\xfc\xec9\xda\xafZ\xa2\xc5#\
+\xaeK\x01\x09\xf3\x0f0\x9e\xfecW-\x1c\x17\x80\xca\
+\xdf'\xf6\x97\xec\x02\xc2^\xa5\xf2b\xdd\x14\x00\xaf\x18\
+\x03}b~\x95\xec\x81\xdb\xaf\x03\x18T8\x82@{\
+\xf3\xee\xc2}\xec\xb3\x1byyA\xb2Q\xf8\xfc^\xa4\
+\x07W\xe9\x12u\x00@\x1eH\xd5\x22\x00\xb1C\x11\xf6\
+\xea\xef\xd9\xd8~?\x08'\x07f\xc0s\xddnlC\
+\x06\xbaUA\xce\xf16E\xf9\x0a\xea\xfd\xaf\xe4\xcf\xdd\
+5\x03\xa5[v\xf3H\xf5\xf6\x87\x18\xd5\x87s=n\
+\x96\xc0nJ\x06f*qRu\xb7\xc7\x85us\xd9\
+\xb3\x824\x9e\x16\xd6\x10\xeawm\xde\xd5T\xdf\xe7D\
+\xf2\x92aMM\xf8\xc9M5\xdaB\xb1\x00\x8c\xb7S\
+\xa1\xe4\x10T\x9e\x1c,T\xb2\xb5,\x08\xac9B\x89\
+\x9f\x0d(\x00U\xb9p\xbf\x04\x16\xa8g\xaeGE\xc2\
+\xbce\x81\x0cDP\x85J`\x81\x02$1\xb41?\
+\xda\xba\x92\xe7\xc4\xff\x9f\xba\x1e6\x15\xddT\xa1\xad\x0d\
+/\xa1tp\xa2fmW\xbd\xfd\x90\xdc\x14s*d\
+\x5cbDd\x06%\xde\x81Fl\x90\x98J\x22\xd1\xe6\
+\xa8W/R\xd4\x97\x8fi*\xfas\xc2w\x93\xb0\xe5\
+\xf9\xa2\x22W\x85?z\x1c\x9f\xb0\x88\x1fIH\xb7c\
+\xd8\xf4\xff\x9f\x92-\x02D\x93\x92\xca\xb4\xdd3\xacS\
+\xe1\xcf\x03-\xf0\xee@\xbc\x1d\x10\xb4\x07j\xec\x9f\xb9\
+\xb1\xd4\xfe\x93\xdaVTu\x07 \xc8+J2f\
+\xcf%\xd3_\x5c!\xc7f\xae\xf7\x1b\x7f\xc2Q\x0b\x0c\
+\xadK\x15o\x00\x81\xe7n\xffs\x80\xfe]\x00\xc0\x91\
+[7\xd6\x9d\x9f#V\xa4\xe2\x86JgJ\x83\x83J\
+`\xa7W\x97\xdfH\xb1\xac\x12\x1bL\xeap%d\x00\
+\x0a\xfb\x80H\x10\x11-\xc0\x93\x1eC\xe3\xfe\x88\xccq\
+\xfc\x80\x17\x07\x9b\x03\xc5\xab\x03'\xd7\x81\x0ai\xf91\
+\x15\x5c\x81\xd3\xdfM\xe1\xcf\xdf\xb5\xfd\xfb\xdd\x96h\xf9\
+\x5c\x00\x1a~\xd6\xfd\xf6\x9c\xdc\x1f=\xfbY9\x04@\
+\xfd\x7f\xb6\xce\x04\xec\xberj\xe3\xff\xb3\xcf+I\xb3\
+4\x0fJ\xb3\xd0\xa02\x84J\x9f\x14\xa1$\x94\xea\xa3\
+T\x142\x16\x89&\x91\x90\xa9\xc1\x90\x92\x94(\xa2P\
+\x94\xf9C\xa3PJ\x92\x06\x19RI\x91\xa8w\x9f\xef\
+Y\xcf\xbe\x7f\xf7\xb3\xecj]W\xe7\xfaO\xe7=g\
+\xefg?\xcfZ\xf7\xba\xd7}\xdb\xef\x1a@\x83\x0e\xb5\
+\xc4v,v\xaa\xef\xefQ\xa0wF\xa4\x04\x03\x0a;\
+\x94H%@\xfd\x03\x11\xe5\xf6\xbe<\x22\xed\x1f\x8c.\
+\x90H\xf0\x5ckt\xc9Z\x1a\x07\x0f\xcfOx\xbf\x84\
+\xfbK\xff\xcc\x88\xb2\xbc\x9e\x12QU\xdc\x0f\xe9\x0eI\
+\xfb\xb9\x0e\xfc\xee+\xdd9\xddW*\xf0\xf5\xdb\x0a|\
+\xed1\xdb\xbdv\xfcB\x9b\xfcc\xe9\xfe\xde\xa7\x99\x7f\
+F\x98\x98%\x05`\xc3=\x82s\x93\x91\x17\xa8\x9d\x00\
+O\xdc\x0f\xdcSn\x8bH\x9d|D-a2\x01`\
+0\x02\x05\xa0\xc3z\x04\x90\x89\x8e\xfe\x0f\x93\x9f6\xcf\
+\x03be\xdf\xd0\xbe\x19\xe2TA=\xfeGDJ \
+HT\xa1\xa6K\x13\x86\x11\x14k\x13 \xea\xc9\xfa\xc1\
+\xcdB#\x17vm\x81aC\xc1\xa1\xe7\xb5\xdf#\xa2\
+\xa4!\xbbD4\x11N\xdb\x04\x0a(\xe9.-qI\
+\xeb\x8c\x90\x882r`\x1fv\xed\x93\xf3g\xcf\x9f3\
+\x7fNb\x02\x06\xf0\xb4G\xda\xcf\xa1\xfe\x06\xdf\xec\xdb\
+\x15\xa8\x1b\xee\xc7\xf7\xd5\x89~SDZ\xcfQ ?\
+:\x8d\x0aqN.\x5c\x22:6+\x0d6ttv\
+\xcc\xfc\x92v\x03\xdf\xc3\x85\x12\x1dwD\xfc`\xd8\xa9\
+cgJ1\xe7#\xf6\x9f\x12\x11sB\x89\xfa;\xae\
+!\x01\xe8\xfc \x15\x08\x8f\x18\xeeK\x0c\x0av\x89\x8a\
+j_t\xfe\x1d#0\x00\x9czn\xfb\xab#\xca\xeb\
+\x9b\x22\x92v\x0b\x9d;\x9d\xcf\xdd##\x92h\x9d\x0a\
+43\xde\xe4\x8b\xce6\x87\x98&\x09n\xff\xaf\x88\xf2\
+\xfa\x9e\x88r\xff\x9eU\xa2\xe4-\xfd\xad%nQG\
+\xf4di\x00D\x07\xf0\xe4\x88\xa4\xb5\x01pJ\xbe\xc2\
+y\x02P\x89\xd8V\xb8O\x5cW\xf6\x81#\xa6\x87O\
+\xcb9\xdc\xfd\x22\xa2\xbc\x9e\x15\xd1\x9e?\xcfp\xd3\x00\
+P!\xd1\xad\x1eQ>\xd7O\x22\xea\xf3sq\x88\xbb\
+M\xfa\xc9|\x8c\x04,\xd8q\xb8n\xb3\x7f\xeb{#\
+\x0e)\x00`r\xda\x00dv\xb7\xc8e\xe9\xef\x11\xf5\
+\xf3\x0f\xae@\x1a\xbd\x9d\x9d>P\xf8}?\xd0\x0c\x12\
+PlW\x00\x12{\x00\x01\x015\x93\xf7k$G\xb3\
+\xe4\x93\x83\x07\x97\x03\x18\x00f&\xd0\x08\xe3\xfc\xa2@\
+\xe2\xdc\xa2\x11\x03#\xf4\xc0\xa1q\x05\x03\xa3\x1c\xbe\x93\
+n\x92\x1ay\x14\xb2\x1f\x18F\x1d=\xd2I\xa1(\xaa\
+w)\xf7\x87?\xa7\x10\xa5\x00#o\x87IG\xfeF\
+>K\xfeF\xe1\x03\xa0F>K\x07\x9d\x8e)v\xab\
+\xdfT\xa3\x02F#\xea\xfe\xb8\x22\xa1E\xc3\xfd\xda9\
+\x22\xd9\xbbI\x03\xc2\x85\x1e\xe7;\xe7\xb1\xfe\x9dGK\
+4\xa2\xe4|\x86\x8e\xb8\x5c\x90\xfc\xf9\x10U\xa5\xa3\xad\
+\xfb\xec|\x93\x99|\x80\xcd\xb0\x0d\x7fd\xda\xf7\x0e\x8e\
+H\xe76\xe2\xa2h`1*\x22[w3@p?\
+`\xd4\x11`\x00\xa0\x91\x86\x1c#.0\x97\x10\x99\xa4\
+\xe1A\xe3L\xf9 ZeV\xd5\xa7\x0e\x10P^\xef\
+\xc37\xd3\xf9\x02\x03BL23\x15\xd0\xb2@\xac\x98\
+\xeb$\xf1`\x8b\xd8\xd2p\xa2~\xa0N\x19k\x86\xd1\
+pd\xb4\x8fQO\xd9\x84\x9a\x11H>\xc1z\xe3\xd7\
+\xb8Ca\xd3\xca(\x92\x1aF\x00Z\x06\xe4\x18u@\
+\x83\x81u\xcdH&\x9f\x0f`H\xaf\x16\xebF|\x14\
+\x86\x1dL\x07\x80\x16\xdc\xb4`\xd2sn\x93o\x90w\
+\xa3\xf1D\x9d\xaf\xe7q\xce\x9dX\x0a\xef\xb1\x0f;\xf6\
+v\xfc\xfe\xf8\x15\xb1\x18v\xf4\x91oe=\xc8VH\
+\x89&\x05\x1f\x89\x08\x1d{\xa8&A4Z)\xcd\xe0\
+\x93\xd8\x93\xf8\x02\x04@\xfd\x1e\x89\x03V1\x8aU\x92\
+]\x1f\xd4\xfbH\x8bWM\xaf\x14\xc2\xfc<\xec\x95P\
+\xe7\x0dB\xfc\x16\xa9\x90\xe7\xf3\x03|\xb0Q\xf2\xdf\xe6\
+\xd5\xf8m\xe8\xc4l\x99\xa8=\xcc\xe2\xa8 .\xdfa\
+\xb0\xd1\x10BZ\x96\xcb\xa0\xea\x8f]\x0c\xb6.\xea\xbc\
+\xc7\x04_\xcc\xf0U;\x9d\xfd\x92\xfa\xedE\xb2\x11z\
+\x916h\xd9\x9ax\xf6\x98\x8e\x82|\x85\x83_Pm\
+\x88@bUxx\xe1)\x81\x83q\xe0\x99@\x12?\
+\x0e|\x16 \xf7\x99\x19h\x1e\x14\xee\x03\x1d>\x0a#\
+\x01M~\xd0\xa1\x98\x8f\x0b7-\x5c\xdb\xbc\xa0\xc6\x8e\
+J\xf9\xd8\xae\x86N\x09\x1d~\xd6%\xeb\x89\xffx\x80\
+\xc7v\x7f\x00\x04\x00a\xcc\x96\xf1\xe0\x01l`\xcb#\
+\x91\x13\xd4\xa7\xeb \xc94m\xbc7\xab`\x0b3\xa2\
+cT\xe0\xfc2]\xbf\x80Y\xeen\x1d\x8a\xfe\xd8\x88\
+JU\xfeB\xf8\x1b\xf7\xcf\xed\xb7\xed\xb7\xad\xb6\x83\x1f\
+\x9d}\xb4\xa9\x0b3\xd3\xea\x04J\xb3\xf5tHg\xeb\
+G\xb4\x83\x89\xd1\x9e\xf1\xc8\x00\x89?\x85\xbe\x19' \
+\xcel\xe4\xba?>\xe8\xe8\x140\xcb\xcb\x81\x04\xf5\x8b\
+\x82\x87\x7fOg~\xa9A\xbb\xc3\xaa\xe2\x14\x02\x1c\x88\
+\x00H\xdc\x1f\x80\x00\xfe\xbd\x0aS\xfc\x9e\xf1K5\xd3\
+\x82\x7fG\x01Ka\xc1\xfa\xa4 \xa6\x80\xe7\xb9g\xff\
+\xa1\xb32f|\x90\x10\xf1\x1c\x93\xf0#\xb2\xa2\x0e\xa5\
+;!\xcc$\xeb`\xb0\x86\x06\xcf\x19\x087\x093\xa3\
+\x00t\x1c\xf8<\x88\xfc\x1c\x1b\x91f\xcc)\xb0`\xde\
+0\x02 \x0d\x0f?GtR\xa1R\xeb\x00\x0a\xa2j\
+0aH\x90\x0d<\xd2\x19!\xf1\xe2\x80\xe4>\xb1\xef\
+\x85\xa4\xdc\xae\xa9\x80\xe3@\x12U\xd4\xeb\xb1\xce2\xb5\
+\xefGBm\x91\xcb\xd5\x22R\xc7\x9a\x0e;\x89:T\
+S\xee\xef\xa9\x03\xa3d\xf6\x9b\x88\xf4<r\xa0\x81\x8c\
++Q\x80\x81\xe0\x82i\xa4\xbd\xc2\xf3\xdb\xbf\xac\xdf\xa5\
+/\x85\xe6t\xb3\x88\xf2\xbaq\x84\x80\xd7\x03\xa5N\x1e\
+\xd4\xd8\xb9\xc9t2\x97\x0e\xd4\xf8t\xc7\xa5\x82\x82\x8e\
+\x13\xc0\x06#G\xcc\xda\x8a*\xec\xe7\x83\xfbM\xc1r\
+\xd5\xa0\xf5\x82\xb6\x8b\x13w\xd4\xb3Q\xa7\x86\xfa\x08e\
+\x9b\xfb\xfa\xba\x88\xb4\xce\xa1F3S\x1e.\x13G5\
+\xb7\x89\xbaK^\x99\x80%\xd6#y\x00\x1d\x19\x00W\
+\xa8\xc5JTl\x8f\x05`\xa6\x0e\x06\x8c\x01\x9f?\x5c\
+\x17%^\x9e\xb5\x97\xda\xbfG\xc1\x9e\x1c\xd1^\xfb\x8f\
+G\xb4\x84\xaf\xdb0\x22\xd9\xb0j\xbdN\xd7\x8bH\xfb\
+\x03\xda&0\xe7TpN\x9f:}\xda\xb4\x9c\xcb\xfd\
+\xa6\xfdS\xfaMew\xbcr\xfb\x9e\x8c\x84Hz\xa0\
+\x89\x9bI[\x87}\x0bJg\xb7c\x89\x17'Q'\
+Q\x8bg\xbbFT5\xfa\x0b\x83\xb9\xd6\x1f\x1c\x91\x18\
+\x12ZO\xd6Z\x82\x09\x02\x10\xaes\x94D\xd96\xbc\
+b\x1a\xa0\x86\x1f\xa7D\x9c\x13\xa6\xd2\xbf,\x22\xed\xa7\
+\x00Fh\x1a\xe8|\xe4\xfaYK\xe8'\x11\x9ay\xbf\
+\xab\xf9\xc0\xbbc\x0f\x13Pv\xcd\xb8:t\xaf\x8aH\
+\x9d-D\x82a\x86\xd0i^1\xa2|\xdeC\x22\xca\
+\xeb\xdd\x11\xe9|\x8a\x0e\xec\xb7\x92\xfb\x8d>\x1f\xa2\xb6\
+\xfd\x07\x22\xca\xeb\x91%\x82\x0a\xfe`\x89y\x8d\xb2\xbc\
+/\x158P\xd8afA\xf1\xfe\x83F\x9e\x0084\
+\x82\xd8/\x17\xa1\xfc\xeeY\xe5\xb2\xadVb\xd5v=\
+\xfc\xdc1\x93+\xa6\xa4\x81a\xce+\x15\xb8\xd6t\xe0\
+\xfc9N\xd4\xe8\xa3fG\x87\xf8\xdal>\x22=\x97\
+\x8c\xf20\x92\xb4\xf7\xe0\xc2Tv\xf1!\xcf\x0a@\xee\
+\x1b\xed\xf9\x9b\xec?9\xa02\x1a\xd5\x88\xf1>(\xe0\
+\xd4#8t\xd0\xd5\x08r\xc1\x84;\xc0\x99\x11\xa9\x83\
+:\xd1y\x01PN#\x84\xf3\xef%\x02\xac`\xae\x88\
+\x89\xc1u\x9e\xad94\x16\xca\xaa\xae\xa3%aV:\
+I#\x8e.\xc4\xc9\xcb\xa0\xe8\xd3\xe8\xc06u\xa7\x81\
+y2\xdbE\xcc\x0c\xceA\x18tr\x87\xb0]*\x85\
+\x0e\x85\x13\xf9\x07\xf7\x85\xc6\x00L\x01\x15\x5ch.\xb1\
+o\xcd\xde\x1a\x91\x1a\x16\xdc?i\x13\x18XEt\x15\
+\xc0\x17QT^\xa1\x9a\x03\xec\xe2\xe7N\x07\x9c\x91b\
+\x0aT\xf2a\x80=F\xcc\xc8G\xd9\x97\x95\x7fZ\xdd\
+\x1f \x0f\xb19\xf2/F\xc6\xc8\x9f\xd5\xa0p\xc3\x89\
+\xe7\x14w(\x80B\x80\x22\xb4\x07\xc8\x03\xf8<\x00\x01\
+4x8\x9f\xd9_\x006\xd8\xe7\x016\x18Y\x00\xd8\
+F\x0c\x93\xcf\x83m\xb74\xc0\xacY\x02p\xc4\xfd$\
+/\xd0\xfd\xf3\xfb \x8aG]@\x03\x89\x0e\xffX\xb3\
+\x0c\x0d\x04\xe5\x8f\x0608\x8f\xb3+\xdc\xad\xa9\x1e\xa2\
+\xb1\x00\x85\x1fQc\xf6oF\xefp\x17\xe3\xb9!O\
+\xc0\x0eT.9\xd8\xe3Z\xc4\x90\xc2\x1d \x8b\xfbO\
+\x1d\xc5\xf7c\xbd\xc2\xe8\x80\xa9\xc1u\x14\xd3\xcf\x0dK\
+D\xa1\xa9\x83\xf8\x8fz\x1e\x06\x87\xce\xad9?8\xfc\
+\x05^I\xa0\x99\xe5\xcf>\xf7S]\xf0.\xfd\x80Y\
+5@k*\xfa\xdc\x80\xd8f&I;\x80D\x85\x19\
+~\x0ap\xec\xfd\xd4\xd9g\xd6\xce\x80\x01\x89!\xef'\
+j\xa0\xff\x83\xb9\x80V\x01\xa3\x07\x00\x09P*\xd9`\
+\xf8u\x94\x03k&\x95V\x16:T\xf51c@\xef\
+\x0b\xa5\xde\xd7\x0b?R\xfc\xc5c\x81\xbf@\x09\xf3\xfe\
+iC\x19Q|fK\x0f\xfe\xa1F|\xf4 \xf5\x1f\
+\x89\x90\xf8\xcd\xb3\x9a}T\x7f\x5cD\xa2\xf6\x88J\xe7\
+\x83\x00\xca\x14Tn\x90w\x0e\x90\x8f\xca7\xfbGR\
+\xd7\xa4\x80\xa7C\x87\xba7\x1dR(\xd8\x022\xf0\x11\
+G<\x0a\xf5O\x17\x1e:h\xecs\xcc\x0c\x9b\xa8\xbb\
+\xf6\xe9\xa5\xc0\xe7\xc1\xc5fD>\xad.x\xc6\xd44\
+\x5c%\xe8 \xd3\xb9\xe7\x15\xea\x1a\x14\x1d\xd6+\x08>\
+\x0f\xc6]*0\xeeP\x01\x09R\x0a\xb0@\x87\x8e\xd9\
+\x19f\xda\xd4\xd17 \xb5\xac\xd6\x13\xe2c7\xc8^\
+\x8c\xf5\xaf\xe7\x08\x06\x88\xed\xd5>19\xbe\xfa\x83\x9f\
+=l\xect\xfa\xfb'G\x94\xd7G\xf7\x8b\xf4\x8b\xa4\
+\x8e\xffS#\x1e\xda\xb9\x07\xd8\x99=>B\xa2O\x87\
+\xa5\x0e\x1f\x14#Dd@:AN\xd9p98\xa1\
+fbW\xc3:;sP\xe7\xf5\x8c\xe9\xc9\xb2\x9f\xc2\
+F\x87\x8d\x8f\xce\x01\xaf\x14\x12l\xd4\x00\x04l\xb4l\
+\xfc\xcc\xdcA\xdd\x07\x00\x00\xf9\xe7\xfeq\xf0\x03\xb8P\
+\xa8C\xd9\x97\xbd[\x10\x7f\x83\xfa\xeb\x03\x90\xcf\x07@\
+\xc5\x8c(\xa3M:\xc8|}H`8\x08Anw\
+\xad\xd1\xfc\xdd\xd5\x99\xf1\xf3Bg\xb1\x1b\xcd\xca\x8f\xfd\
+k\x11\xf9\xa2\x83\x0a@\xc4\xfe\xa4\xc4\x81N\x9d\x0b_\
+\x010\x1e-\x80\x82\x07\xc2\xcd\xba\x83\xba\x86_3\x00\
+\x17\xf7\x85\x99wi\x8fXu\x99\xf5\xc3\xf7\xd6\xf5\xe7\
+y\xb0\xaf\xf93#\xeas70+\x00R@\xb6I\
+\x1c\xf8\xdePr\x11\xcd\xc1\xd7Vj\xfdvK\x80j\
+\x0as\x00\xd5Z\xed\x03t\x14\x0c\xe4Q\x982z\xc4\
+\xef\xb3\x7f\xb3\xbe\xe8\x94\xd21\xb9c\x98=-i\xda\
+0\x83wa5\x02l\x1a\x01\xcc\xaa\xd2\xb1\x1d\xfb\xff\
+B\x8d\xc5\xf7X\x85\xe2\xec\xee\x88\xd4\x91\x81\x02I\xa7\
+\x04\xa0\x09\x95~ur|\xee`3EBI\xa7\x1f\
+\x8d\x16\xc4\xe4$\x9e\xe5\xd9X\xf6W\x00+Q\xcf\xbb\
+\xf7\x958Z\xebk\xdb\x04\xdcP\xf0K\x1b\xc0\xda\x0f\
+t\xd2H\x88aV\x89\xba\xefN8\xa3\x03*h\xcc\
+L@D\x0e\x00\x99\x04\x89\x84N#\x09^\xff\xda\xfe\
+gWG\xa4Q7\x00\x02f\xa5u\x8e\xf9\xba\xdfR\
+\x0d\xe5\x06\x11\xc1R8Mo\x8dh\x85\xe7\xfc\xdb\x22\
+\xea\xfd\x19\x5c~^V\x8dZ\xadQ\xe4u\x1f#y\
+\xc7\xb6\x19\xf9\xee\x95\x11\xe5\xf5\xcf\x11\xe5\xf5\x9e\x88\xf2\
+\xfa\xfb\x08=\x8f\x874\xbb\xdfz\xbf\xff\xae\xe7\xeb\x86\
+Z\xc8\x94H\x9d0F%\x10\x85D\xa3F3\xd0\x14\
+\xaa\xa6\xec#~w]D\xd2^\x10\xa3c\xbarD\
+\xd3\xe4a$\xcb#\x15r\xef\xf1\xc8\x86\x00\xb4\xfeu\
+\x11-\xf1\xee.\x88(\xef\xf7\xbb\x88d\x07\xbciD\
+\xa3\xf4\xd3\xe1F\x83\x03\x06\xa2\x19?\x14<:\x17\xbc\
+?@Q\xdeK\x9a2\xb7\x0f\xeb\xcd\xa2\xb2\x02\x02\xfb\
+\xed\x22\x1a\xa0\xd6\x9f\x18Q^\xcf-\xf1\xb5\x968W\
+5\xff\x95\xd2:\xd2\x08`]\xd7\xdb\xa5\x11\x171$\
+\xbaK\x22\xd2\xac\xed\xcb#\x9a\x9a|e^\x1c\xd5l\
+'\xbb\xa5J,\x99\x98\x03q\xd5N\xd1\xfb\xbd\xa7\x01\
+-\xcek\xd8o\x11K\xd4\xba\x9b-T\x22\xd6\xeb\x96\
+\x11I\xd4\x8e\x82v\xc7\xa1\xa0\x9d\x9e6\xfd\xfc4\xf6\
+\xf1\x1b'\xbf\x9b\xe4\xf3\x18\xc0MyN\xed$\xbe\xb5\
+^\x9f\x81)\xa6\x8e\xbe\xf794I\xa0\x9cs>a\
+\x8b\xcd9;\xb6k\x86)\x8b\xea;\xea\xfe\xb8=\xc0\
+HC\x8b\x82|H\xa3\x9a\x93S\xb5\xdf\xc0p\x05`\
+$_\xc2M@\x22{0\xbe\x00\xa6\xddp\xa0\xf0\x81\
+*O^\xc7s\xae|\xc1#\xb8\xcc\xf8s\x9e\x93\xcf\
+q\x8e\x93\xa7\xb3N\xc8o\x04\x5c\xbb\x93\x8fK\x0c\x05\
+7\x0d=\x00n\xcec\xceS\xf2K\x80\xba\x17JT\
+Z\xb6\xa2\x06\x04\xdf\x15\x91\xae\x07\x00%\x1dv\x1aK\
+\x00\xfb4\xb6\xa0\xf8\xc3\x98aV]#|.\x18i\
+\x900\x83\xcf\xc8\x04\xd4\x7f\xf26\x18\x8f03\xc7\xae\
+\x1db\x04\x07\x1f\xa42B\x0e\x97-\x22\xd7\x0f \x97\
+\xf5DC\x02F\x023\xed0)h\x0cR\x08\x93\xbf\
+qnQG\x91\xdf,\xac\xfb\xc7\xfd\xe1\xbc\xa1\xf0\xa6\
+\x90'_\x14\xb0df\x01\xcc*\x98#\x00\x11c\x11\
+z\x1a\x8a\x9c\xcf\x88\x83\xc3\x88F\x13\x0a\xad\x8c\xab\x22\
+\x12\xa0\xc4h\xb3\xeaQ\xcf\xec\x93\x97\xe6\xf3\xe8\x96\xd4\
+\x90\xc2\x85Fy\xbf\xef?\x85;#\xc1\x88\xf0\xf3\x9c\
+\x02\xd0\xf1\xca\xf5\x811\xca\xf5\x03\xb8\xa7\xbe\xc2e\x89\
+Q\xd3\xb1[\x00\xd7\x15\xc0A\x9fo\xee\xbfT\xfc\x17\
+~\x18\xbfa~\x7f\xe1z\xcbZ\xc1\xcb\x05\xa6 \xe7\
+\x07A\xdd\x8f\xaf\xf3\xb7$\xfa\xc7\x9f\xf3\xc0\xb2@@\
+ %\x8eWUo\x97\xd4\x82Y?\x15\xce,L\x16\
+\xc4#\xe4\xf7\x0a\x03!\xde\x15\xca\xf0#G\xa3\x06K\
+$\xdb?\x10Jfi\x11\x17\x04\x90\x90\xdfp\x85\x07\
+VM\x80\x05\x0br<\x1bE!Bg\x11UM\xa8\
+AR_v\xc1K\x22,\x8a\xef\xec\xfe\x88:\xe3}\
+A\x7fACT\xfdsTHx\xc6\x8d\xc4H\x94p\
+f\xc0\xad\x02{\xce03d\xbfb\xfc\x8d%B\x16\
+}\xe5\xe8,\xf7\x8bE\x94\xb7?7\xa2\xf9\xffr\x90\
+\xba\xb3\x88\xed\x1b\xd7\x8d\x03\x92Y\x1b:o\xf8k\x0a\
+\x91\x9c\xfd)\x22\x1d\x1cP\xbfH\xa4)\xdc\xa0t\x03\
+4@u\x85:\xcbu\xe4\xdfi\x03\xb3z8\x1b\x00\
+\xb3\xc5\x9bE\xa4D\x9b\xfbv\xc3\x7f\xab\xe4\xce~6\
+l\xa8\xd8\xa9X-\xf7\xc2a\xb4\xc2vxA\x15\xbc\
+6\xb9$P\x18RH\xad `\x8a\x83\x04\xbb56\
+\x02\x12\xfb0\x05\xbc1\xad\x13\xa8\xdf1\xdb^\xd6}\
+\xf7\xfd\x88\xf2\xb6\xdb\x0e\x0c\x00\x8by\xb1^\x84\x08\xba\
+\xd3$\xaa\x98\x0f4\xb4\x224\xfbo*2b\x7f \
+\xe8\x88\xcc\x81x\x82\x80r\x00S\xb0r`p\xdd~\
+\xa7\xeb\xf9G\x1d@\xf3\xda`x\x1e\x01hx\xbeI\
+P(\xdc\xb0o\xdb\xa6$d\xdb$J\xa06h\xcf\
+\xda3\x9b\x88z*@\x0b\x09\xb4:R.,\xf2\xe8\
+\xd2\xc2m\x83\xa5\xa00\x10\x00\xe0\x070\xc4s\xcb\xcf\
+a\x94GL\x1ak}\x8cUf\xa1\xf2\xe2\xd7\xcd\x9f\
+\xd3\x11f\xe3\xdf8\x22\xed\x93\xec\x0bt\xfe\xd9\xd0\xe9\
+,@\xb5\xc4\xaf\x97B\x10j\xbcf\xa5M\xd1e\xc4\
+\x06\x15\xf4\x91\xc8\x92\x19\x07g\xa8S\x8b\x9d\x8f|m\
+]h\xbc!\x22ur\xd5\x01\xf4\xac\x1b\x9d04D\
+\xa4\xa9\xc1\x9f\xf7{F$j\xa1\x0a_3sP[\
+\xfeUD\xf9\xfb\x1f\x8ch\x1a\x18\x16E\xa2\xc3\xc4L\
+8\x22X\x00/\x9a\x05\xf4\xbe\xc1\xba\xa0\xf3 Q1\
+\x12a\x8f\x00i\xbd{\xf6W\xe7\x9b52\xce\x1e\xa8\
+\x86!\x8d\x16L\x98\xee\xa0\x88\xf2\xef\x97\x8cH@\x0e\
+b|\x14l<\xc7<G0\xb3\xa4\xa2M\x82I\x87\
+\xb3\xf6\x95?\xa5\xfb\xbcc\x1a\xb5\xe2}\xe9\xb4\x91\x88\
+J5\xd96q\x88\xf9\x91\xb8\xb3\x1f\xe1o\xcd\xe8E\
+\xa8\x04\x1f\xde\x0a\x13\x7f^DX\xd9\xa7H$\xf8}\
+\xd4\xe8Q\xf5\x1f3k\xee\xd3s\x0e\x00\xf78\x9d\x93\
+\x9c\x8f\x9c\xa7J\x84\x9d\x18\x02\xd0\xc0p\x83J\x0a0\
+\x8a\xdd\xe4\x8d\x11\x09\xd0\x14e\xb9\xbf.\xa2<\xe6\xbf\
+\x89h\x09m\xed\xdc\xae&\xa0\xa3\x14 \xd3\xf3J\x94\
+\xf56\x7fb\x89\x93\x1a\xd0dun\xeds\xb6\x89\x8a\
+~i\xd9O\xa7_\x8b(\xaf'E,\xa8D\xe6\xa0\
+2w\xff\x8aH\xee\x02\x01\x0c\xad\xa5\xfbp\x90\x00\xb8\
+m\xb5\xee\x8fN#\x82\xa1\xb1\xf3\xfc6\xcbo\x00\x96\
+\x19Z\xce;\x125\xf6\x0b\xdcx\xb4\xeelc\xa6s\
+\xb0\xdaX\x9e\x9e\x0a.\x01\x80\xfd\xdf\x22\xd2u\x94&\
+H\xb7WD+\xbc\xba\xf3#\xca\x9f\xbf2\xa2\xd9\x17\
+bs7\xbd&\xa2\xbc\xdeT\x22f\xe5\x8f,qD\
+\xea`\x22\xee\xb8{D\xf2\x11\xd7\xb9\xdc\x1f\x1f\xd1\xce\
+\x19\x8f\xac\xcd\x86\x11%?\x7fzn\xe9<2\xc24\
+\xfb\xdf\x08i\xcf\x9c\x9b\x1a\x03\xa8\xc13\x8a\x07\xb5\x17\
+1`\x01_\x16%>\xa3D\xd9'\xbak\x22\x94\xbf\
+\x94\xfcc\xfe\xe2\x88&\x1a\xd9}+B\xc0W\x00\xa5\
+\xcbD\xa4\xfd\x85\x0e,\xc0\x01nM\xcaO\x85\x93\xe5\
+v\x00\x00 \x00IDAT\xd0\xd2a$\xa2\xbf\xa8\
+\xbf\xb8\x8f\x91\xa5]#\x92\xc8\xa1\x00/l/\xbb]\
+\x22\xca\xeb\x92\xb2-D[G\xf6`\xee\xc0\x22b'\
+M\x09\x8b\xa0.%\x11X\x01\x12\x1e\xcd\xd3>\xd8\xed\
+\x17\x91l\xa8)\x08\x19\xb5b\x9d\x8a\x19j\x00\x91\xe7\
+~;\x15\xbe\x9f\x16\xe3Hb\xaa\xe5\x8c\x1c\xce+\x89\
+&\x96\xfd`8\xef\x7f\xaa\xc2\x0fF\x06\xcc_\x89\x9c\
+\xda\x86\x8e\x99z\xce=\x80Y\xea\x8c\xe7\xebs\xed\xa5\
+B\xfa\x18\x8dd\xb1_Q\xd0\x93\x17\x8f5\xc9\xf8\xf5\
+\xa8\xd3\xe9\x82W\x85\xac)\xe6\xca\xf7\xc8\x07f\xfbF\
+\xb4\xd1\x06\xaf3\xec\x07\xc7v\xc1\xeb\x97\xab\xbb^\xda\
+\xcf\xb1\xd7C\x94\xf3\x8b\x11\xa9!\xc09\xc1\xa8\xed\x8a\
+\xa3\xbc\x11@\x89\xbf\x07@\xcb\xe7 /\xa3!\xc3\xf9\
+\xc0\xf7\xe6\x9c\x822O\xbe\x0d\xe0\x8a=\xa2\x5cE\x18\
+QpA(\xc0\xcf3\xf7\xb8\x0d\xb0\x0e)\xe497\
+xN\xc8o` \x8c\x1b<cJ>\xbf\xdf\xeb\xfb\
+\xf0\xefh\xf4\xc2\xe8\xd1\xf3\xe8\x82\x9d\xf3\x9e\xfbO\x01\
+\xcf}fT\x11\x80\x8bu\xc0\xdf\xa7`'\xcf\x050\
+`\xfd\xd10\x91\x8b\x9aG1\xc8\xfb\x00T\x00\x9e\xf8\
+\x1e\xb8]\x01\xa0\xc1,`\xc4\x00`\x80\xff\xf8\x1c4\
+Z\xc5\x00\xf3sJ}\x05p\x03s\x1aM\x04\xea\x1a\
+\x1a\x1a\xb8\x00\x90\xc7\xb3n\xc6\xc0\x1f\xe7\xb8\xcek\xce\
+\x81\xb9Z\xd6-\x97\x0aj\x1e\xa8x\x8c\x17\x7f\x98\x07\
+\x8d\x02\x1bf@\x95\xb6TA4/\xe4\xe4\xfeD\xbd\
+\x08\x84\xfco\x0da\xa9\xe9\xfa\x83\x89A\xc0\x85\x0f\x84\
+e5un\x9e\xf80\xb3\xf9\xccP\xf0\x85\xf8\xb9\xd8\
+\xfeQ\xe8\x8f5\x0b2\xb0\xb1\xc8\xc3\xa8\x5c\xf2\xeb\xb1\
+x!\xbfO\x02\xca\xbf\xe7\xc1%\xa1\xe7\x15j\x0cj\
+\xdf\xd8\x22\x91\xe0*A\xa6\xd06\xe2\x0b\x02x\x93\x1e\
+Df\xdf\xa1\xbe\xe8\xc63K9ytDJ\xf8\xa1\
+\x9aj\xe6\x17\x8a`=6v\xab\x09\xf0\xb0a\xe0\x1b\
+Mg\x08\xea\x9f\xeeK\xf7\xba\x88f\xc3d[=\x89\
+\x8aAUu\x07\x0c\x9b,\xa9\xc6CAw'\x97Y\
+\x5cf\xcd\xe8\x0cQ@\x89\xc2h\x9fp\x89\xf79\x91\
+\x94\xd8\x96\xfd\x82\xa1&\xa2\x22J\xe2K\xc1HBM\
+\xa2\x07e\x1bJ?\x1b(\x94/uN\x99\x89\x7f\xc8\
+\x03\xc6\xf7\x94/\xad\xbf/\x07\x17\x1b\xdd]\xda\xd0\x01\
+\x04\x00\xba\xd8\x80\xe7$N\xf5\xdb\x127$\xe6\x08\xcf\
+\x95:4\x93\x0d\x06$\x1e\xa4\xdb\x94Z\xd4\xbb\xd9\xf0\
+Y\x97$\xee\x00\x03\xf8\xa9#\x9a\x86Z<\x09\x02\xdf\
+\x87\x99$\x0e\x1a\xa8\xd2\x14\xd2 \x8e<g\xbc\xb2\xa1\
+\xae\xad\xf5\x8e\xff9\x1b3\x9d^\xde\x87\x83\x8e\xeb\xb9\
+\x8a\x9e#\xdc\x01\xee\x19\xec@}\x1dy\xce8\x08\xd9\
+\xd0\x18\xe5\x00\xd9\xc5\x86\x05\x0a\x1c\xb3\xf8/\x88H\x1b\
+:\x00#\xeb\x91\xe7\x94\xef\xc7\xe7#\xb1\x00\x08\xc0\x9e\
+\x0e_x\x0e<f\x11)\xfc\x94\x88\xbb\xf0g\x9f\xe2\
+@\xe2>1\xab\x0b3\x08\x9b6\xee\x1f\xcc\x1b\xde\x17\
+\xc0\x8b\xf7\x07\x00\x05\x11\xe6\xa0c\xbd\xc1p`\xbf\x00\
+\xc8C\xbd\xfa\xf8\x81\x1a\xea\x0e?\xb3\x80:(\xe8X\
+v\xbbE\xa4\x8e\xac\xec\xa1f[E\xa4D\x06q\xb3\
+H\xb4C=\xfb\x98\x88\xf2q\xae\x8fh\x80\x19\x05\x8e\
+\x9fc\xa8\xdf$TJ\x18\xfb\xf3\x22\xd2\xfd\xa23\x01\
+\xd3\x86\x11\x04\x80b\x0e0:\xd0\x88\x9e\x82\xe0K\xdc\
+\x09ui\xfb\x12s_\xf0\xb3\xc6>\x90\x91\x80\x0fE\
+\x94\xf7\xb9dr\xe9\xe4\x92j?\xf6\xc3\xae$>\xdd\
+\x9d%\xd2>9\x99\x8bh\xcf\xa3\x99\x0b\x02\xa8Y\x97\
+\xbc/\xcfe\xfd\xe9w5\x0a\xfal\x9d\x88\xf2\xbaW\
+D\x03\x8c\xcc\xa8b\xdf\x82r8\xbe\x9e\xeaX\x03\x04\
+\xd4\xfb\xfefQ%\x8fN\x89/\xd7\x15f\x05\xe70\
+\xa2q\xcc8k\x1f\x86\xba\xda-\x13\x91\xf6\xcb\xd8\xe7\
+\xeeJ\x1a!\x00\xb2J4,\xbe\x0a\x90\x87(-3\
+\xed\xeaH\x9aI\xc2\xba\xe2\x5c\x94\xef\xb9\x13;>\x8f\
+DL\xe7C\x1c\xbd\xab\xb6\x8e%T\x80\xcd5\xdb\xbf\
+Z\xc8\xfe\xa3\x89z\xa2\x05\xe0\xd1%\xce\x1d]\xe7\xe9\
+v%J\xa13\xb7BD\xf9\xf5\xf3\x22\xca\xeb\xa7#\
+\xca\xdf;!\xa2\xbc\xef\xa7\x22\xd41\x0e\xca\xf6\x99\x11\
+J\xa0\xf6H#5\xd8`\x8a\xd1aqQ(\x97\xba\
+.$\x88<\x8fht\xd8e\x00\x80\x82u\x1e@\xdd\
+aI\xc4X\xeeD\xa6\x06S\x98hV\xb7{{D\
+z_1\xf6\x18\x05\xe3s\x1a\xf8\x17\xb0\xd0mUb\
+kQ\xf8\xbf\xa8\xe7\xf5\xe3idG\xd4\xd9\xfeS\x11\
+M\x8c\xb8??\xa2Q\x8b\xfbK\x22Z\xc1\x0fc\xb1\
+\xce\xf0\xdf\xda4i\x10\xf9\xab\xee\x19\x1fM\xfb\x0bb\
+\xc9\xb8QD\x99rp*\xbc\xe8\xa0\xa1\x99\xa1\x91\x8d\
+n\xcb\x88\x06 vG\x97x\xaf\x80\x89\x13\x9a&\x14\
+\xea\xd8\xd5F\xec\xad\xc9\xde\xf1\xfe\x88\x94\xb0\xff\xb4\x96\
+\xb6\xc3H\xce\xabS'W@\x05@\xbd\x81\x8eO\xcf\
+>\x13\x0c\x08\xd4\xfcK\xf61\x00\xc0\xa1\xb8\xf2\xe7\x06\
+\xd0t\x7f\xea\xfe\xd8\xfd\xa9\xb9\x1d\xd4\x7f\x7f\xa0\xa8\xf5\
+\x9fK\xe7\x1e@\x1b\x0d.1\x94j94\x88v/\
+\x08[7\x8bu\x9e?9o2\xb8\xf1\x0c\xf9\xd1u\
+r\x99\xe2\xbca&\xfeZ\x8d\xac\xbda`\x16\xcd\xb6\
+\x99=\xa7\x8a\xdf\xe1\x9e\xf0\xcf\x88T \x1d\x5c\xca\xc7\
+\x83+3\xf0\xddU\xf4\x94|u\xdd\xe1>\xd5*\xe0\
+\x11u\xbf\xaa\x9aL\xa6\x98\x93G\x03xQ\x98\x91/\
+\x8c\xdc\x05x.m\xdf\xa6\xf3\xdc\xeb\x1c`\x84\xf7\xa5\
+\x90\x1a\xdb\x85\xf3\xe7\x8c\xf4\xc2\xe0b\xfd0\x92\xa4\xe7\
+m\xf6\xa2\x88\xc6\xd80P\xc1\x88\x1a\x05:\xff\x9e\xef\
+\xf1\xa4RF>\xa9\xe5\xf7u=\xef\xd4\x18`h3\
+X\xa3B\xe7\x1d\x0c\x01\xbb&12\x86\x0b\x1b\xd4o\
+~>?\x8fB\x9aF\x0by\x09@\x22\xea\xf1\x14\xce\
+\xec\x7f,p\x1a\x0a4\x068\x0fa\x1e\x90o0\x9a\
+\xc6\x08\xb2D@\x9d\x97\x91\x87\x92\x873\x1aC\xfe\x07\
+\xd0\x02p\x00\xd0+&\xb3\xb5v`\x10q\xfd\xa0\xb8\
+\xc3p \x8f\xe3\xbe\xc2\x0c]\xd8\xdaR\xc3\xf7g\x1d\
+\xf0\xf7)\xd0\xa9\xefX\x1f4\x18a\x92\xa0\x9a\xcfu\
+E|\x14\xaa?L\x0d\x0ai\x0ak\xae\x83\xd6\xa3\x19\
+\xa3\x5cg\xd6\xf5h\xf6\x9e\xbc\xdf\xa3!0\x22p\x9b\
+\x82\xd1\x89\x06\x19\x22\x81\xe4\xd3\xac?\xf2iF\xc8\xb4\
+\xdf\x98\xe1I\xc3\xef\xcf\x11\x0f\x03\xc0pn\xeb\xf9\x9e\
+\xab\x1fs\xb9\x84 \x8d\x10\x11S\xeb%J\xf2_T\
+\xfc.mT\xd1\xc7\xf8O\xb2\xdb\xb9\xb5:\xa6\xb7\xc4\
+\x9e\x07?\x96\xf3\xbf\x13\x100\x9eQ\xe0@#\xe1\x03\
+y!a\xa7c\x06\x15?\xc4\x05\x97J\x17\x1c5\x7f\
+T\xaf\xf9\x1e#\xdb\x8eZH/\xaa\x9f\xb3\x9e\x0a|\
+\xfe\xde\xa2\x09\xc9\xc4v\x0c\x95aT\xd0\x03\xc7\xdc$\
+Q1\xa0\xd2K]\xd66\x82,\x0c\x16\x10\x1b\x0a\xd7\
+\x8d\x8d\xf6n\x15&\x5c\xa7\xb1=\x073g\xa2\xc6\x82\
+\x08c\xb7\xd3\xdd\x11Q\xa9 C\x01\xa0\xd9)w\xf4\
+\x8f\x8fH\x05\x13\x9d\xc3\xcb'WL\x22Q<K\xa2\
+c$\xf8\xa2\x06Y\xf4\x0c\x15Kl\xed$6\xd7\xff\
+'\x22\xcd\xba\xd2\xb9\xe3\xf3\xab\x13\xe4\x03\x16\xaa#\x1d\
+:\x18\x04\x12=b\x86\xd0\xd4\xcbHL\xb6j\x1b\xb9\
+\xc5n\x98\xa9\xc1=\x80Y-\x1e\x10\x1eT\x0avf\
+\x1a\xa1\xf2\xa3>\xcb\xfa`\xd6\x86\x99$!x\xf8\x8d\
+\x9a\xfaC\x87\x8e\x19\xbd\x0d5\xc3\xc9\x86C\x87\x83\x0d\
+M\xee\x02.\xc8X\xa7P\xc7\xa1.\xc2\x14\xc1\x17W\
+\x8c\x91\xee\xe9\x11\xe5\xfd\x96\x8ah\x89\xbc'o\xb0K\
+a=Q K\x0d\xdb\xa3\x01\xfc\x1a\xbb(\xec\x8a\xd4\
+Qgv\xd2\xe2\x86P\x11\x1f\x94\xe6\x06\xeb\x10 \x85\
+Y%6\xc8\xd1\xc8\x83\xff\xa3\xd3O\xe1u\xc1\xec\xc2\
+Z\xb8\xaf\xa2Q\x1f\xc4a@\xe6U@Y,\x8f\x7f\
+?\x1e\x09\x80\x91\xa2\xfb\x01E\xce6AZ\xc7\x1e\x09\
+\x80J\xab\xf5a\xad\x0d\xa8S \xc3\x14\xdc\x00$\x00\
+\x02r\xcfpA\xc6:\x80\x12H\xc7\x9f\x7f\xc7>F\
+A\x0bP\x05U^\xc0\x80\x993$.\xa2\xfc\x19\x90\
+\x02x\xc0~\x8a\xeb\xcf\xf3\x05#\x85\x83\x93\x84\x0b@\
+\x92\xef\x8dH\x1c\xd4N(\x83\xa2\xf2\xd7\xd9\xe5\xe84\
+\xff9\xa2u~\xcc8\xd0,\xa9\xa9\x88\xac7lm\
+\xd4ABu\x9c\xe7\x8dB\xc8~\xe6\x1bF\xb4\x03\xd0\
+\x94N\xad7\xef\x03\xb7G\xb4\x03\x0cu\xf3\xc9\xc2\x11\
+M\x03\xc1\x14\xbe\xbd\x07\xd5kF\xb9\x98\x95\xed\xf7\x89\
+H\xd4f\xd4\xc0\x11\x19\x94\xcb\x86\x81.f\xf4\x04\x80\
+T\xaa\xf6\xd3\x92\xff\xae\xfc\xd4\x19\xf9\x80\x1ai\xf7\x05\
+\x1d\xf8\xde\x1f\xbf\x1b\x91\xf6\xcde#\x92x\x1d\x14a\
+%6\xd60\xa0\xe3(;2w\xe4\xa1DK\x8d\xbe\
+R\xba\x9f\x9f\x0aO\x98\x0b\xd8\xab\xbd9\x22\x01Z\xac\
+_\x5c3`<\xf1\xfc2SJ\xe2\xf6\x86\x88\x9aX\
+\x0e?\xef\xe7\x93+\xebyqF\xed\x05\xb6}\x82\xce\
+\x07\xe2Q$\x1c$\x96tr\xc5@\xf1y\xbafD\
++P\xdc\x89$A\xd2\xe7\x82\xea\x0a\x93\xc83\xe5b\
+\x9a\xd5\xa7\xf6\xe9\xe9\xe7\xf2<\x053\xee\xb7i}(\
+\x113\x05\xfeI\x11%\x11\xba!\xa2\xaa\x99\x97(\xaf\
+\x1f\x8a\x90\x9dn\xf8\x9b?\xa3\xc4\x16\xe5u\x85\x081\
+.\x1e\xab\xf5\xfdI\x8d\xc8\xed\x9c\x80\xdf\xf8\xff\xf5\xea\
+\xac\x1d\xd7\xecy\xbd\x7f\xe1\xf3\x0d#\x87\xfb\xc6\xfe.\
+&\x15\xe7\xa1\x13\xff\xc8~6Ny\x834}\xfc\xfe\
+\xa2\x16\x87\xb4e\x88[\xda\xb6O\x85\x09\xe7\x0a\xeb\xc1\
+v}\x91\x88\xbf\xb8\x15\xde1\x98\x18\xa3\x89\xb5\x93\xbb\
+w\x1a\xcd\x83\x918\x17Q^\xf7\x8e(\xf7\xe3{\x11\
+M\xab \x94\x8bB\xbb\x08F@\xff\xc2\x884\x03\xae\
+\xfb]\x81\xc7]S\xa3\x00\xa0P\xfbJe\x22\x84\x06\
+\xc02\x11\xc9\x05\x88\x825\xce\xcbp\x9bxj\x89\xcd\
+\x05\x80\xbc-\xd9'\xc2\xb8\x02\x08\x8eo\xf1\xbed\xbf\
+\xa9N\x9a\x0b\xc2\xf7E$\xfbR\x15\x1a10\x19n\
+>\xe4\x7f<Wn`<B\xc0`HI~G\xe7\
+\xca[\x9ao\xbd\x9fO1\x84\xfeK\xccz\xe5\x94\xc7\
+\x8cl\x87\xeb\x08\xc36\x95apQ0\x0c\xeaO\xf9\
+\xca\xf0|\x07\xa3j\xf2\xdb\xc9\xf5\xd1\x08\xf2>\x0dE\
+\xfb\xbd\xb3\xa3j\xe7}a\xd9r\xaf\xa2Q\xaeh\xc4\
+\xfc@\xb6\xb0\xb7\xa5\x02\x15\xca\xf31\xe5\xfa\x1cS\x01\
+\xc4\xcb+\x80\xc8\x88\x03\x05e\x98C\xee\xd9\x98u.\
+T^;\x88\x1b\xe3jP\x07tnN\xe7\x13\x9dM\
+5\xf2\x0c\xd8\xca\x95\xc0\x9a\x05\x1au\xa8|\xa9O\xa5\
+\xce%\xe2\xbdb~\xda\xae\x8d\xf3\x96\x9f\xc3\xf5\xa4\xee\
+@\xac\x8e\x0e3\x00\x80\xf6Y\x03\x16\x8cp\x0a\xd0q\
+\xc3\x07\xaa:\x8cT\x0a1\x00\xf8\xe0w\xae\xf7\xd0}\
+\xd0L'1\xf5h4\xf9\xf9\xa6!\xc3y\x8e\x18!\
+y#\x056\xe7\x1b\xf9\x90\x0aB\xf2>w\x90\xb1{\
+\x86\xb9\x08p\x0b\x03O\xc0\xb2\x01i\xae+@\x89\xf2\
+\x04\xe7\xb94f?\x1c\x91:\xf1Z'\x16\xe1\xc5\xdd\
+Eb\x9e\xe4sv#\x19\x8d6\xb8a\x01\x10q\xc3\
+\xb0?\xd7jn\x99\x87\xb1\xdf\xa3\x01\xc4\xebx\xc4c\
+\xec*E\xe3\x85\xf7\xe1\x95\xfc\x91<\x9d<\x15\x06'\
+\xfb\xadF\xe1\xdc`\x22\xcfd]Q/\xe8\xe7X3\
+\x8e:\x0f\xe60\x9a\x03\x00zj\xdc\xb0\xdf{\x84\x82\
+\x02\x9f\xf5OC\x8eB\x9d\xfb\xa3\xf3\xde\xf9:\xd7\x93\
+u\x0ep)F\x87\x99\xaf\xa3z\xd3\xb6\x9b\xba\xffs\
+\xf5r,\x95\xa8\xfc\x00\x00Ym{\xd1T\xf8C\xe1\
+\x89c\xf6\xb6D!\x811\x90\xfdV\x17M7 \xdb\
+\x1b\xf4\xe9\xefq\x01`\x10\xf0\xc5\xd0\x06\x80\x92\xcf\x0d\
+S\xc7\xdf\x17\x1e\xca\x0b?\x87\x05\xc1\xe7\x8de\xb2\xcc\
+\x88:\xb4Xb4\xc4\xff\x1f\xce\xf5\x80\x05\x87\xd8\x07\
+\x1b$\xef\xcf\xc8Alg\x9b\xa4\x99bf-qE\
+\xa0\x00\xc5\xdf2\xc4n>\x9afj\xe8\x80\xbeET\
+,\xa8lsC\x07e\xc1\x11\xea\x98\x91\xd0\xa3\xbaZ\
+\x8e\xbb\xee\xa9\xc9\xa6\xe8\x0b\x83\x06\x00\x9d\x98\xe9\xc1\x11\
+\xe5u\xdf\x88\xf2\xbayDy]>\xa2\xbc\xde\x1bQ\
+}\x8c\xd7\xe9\xc2\xf5\xe0\xbe\x88F\xddr\xc1\xc1\xc8\x81\
+F\x07L\xa9]2\xa2\xa9]2\x0b\xe5\xf5\xc0\x063\
+\xf25u\x87CT#'fR\xa9v\xa2\x8d\xfd\x95\
+\x0e6\xcf\x90}:\x22i\x06\x90\xa8\x92@I\xbc\x8c\
+Y\x1ek#\xd0Qc6\x99\xfb\xa2B\xd6\x05\xe4\xbb\
+#\xd2\xfd\x07\xc1\xa3s\xa0u\x17\xd2`\xf5\xc0\x07\x81\
+\x85\xeaO\x87BbY\xa5\x9c\x19\xa8\xb9\xf7\x94\xb87\
+Q8\xf1\xb5\xfe|D\xda\xc0\xaf\x8bh\xe2\x7f\xcc,\
+\xbb\x93&-\x06\xcf*I\xfc\xc7\x09!\xeb\x9a\x83\x05\
+\xea4\xe26\x00V\xack\x12m\x12\x0f\xd69\x1b\xcb\
+\xd3JZ\xfd\xb4\xa4vN\x87\x9aB\x82\xeb9\xb6U\
+aC\x84\x22\x06\x05\x91D\x0c\xd7\x0b\xd6\x07\xaa\xf7t\
+*@\xcay\xaeA\x8c\x99\xbd\x17`\xe2Yi\x0a'\
+\x0ax\x9eg\x0ae\x90\xf4\xf1\xf7\xe4`\xc0\x0f\x1d;\
+?\x90S\xf6\x1df\xdb\x11\xbd\x02\x90\xe4\xe0\x01\x00\xa4\
+\xc0'\xd1\xe1\xe0\xc6\x8e\x0fQ@\xae#6B\x1a\xf5\
+0\x93\x81YU\x00\x0a:\xffh|\x00`a\x93E\
+\xe2\xc2\xfdV!\xc7\x0c\xa6\x0f^4(\x00\xd4\xa4\xd9\
+\x01%\x12\xbb\x1d:\xb2\x1e\xb5@\xa5\xfc=C\xa1;\
+\xdb_*\xbcz\xae\x98-\x9e\xfc>\x221\x9c\x98\xa9\
+d\xb6T\x0c)\x00K\x17r\xb2\xc92@\x88\xab\x01\
+\x09\x04#W0*\xe8\x18\xaa\xd3\xd2\xdf\x1e\x91\xec\xc7\
+\xe8(\xc9\xff\xba\x7fsD\x1a\xb1`]\xc0\x88\xf9\x94\
+Fw6\x16\x13\xe4\xaaR\x16\x94\xe7\xeb\xc1\x93#\xca\
+2~~Dy\xbd\xa0\xc4\x85\x02T?\x91\x00il\
+\x04\xc3g\xfb\xb7I\xe4+F,^\xaf\x11\x9d''\
+j;bwP\xe5\xd9g\x18\xf5\x00\x80E\x95\x98\xfd\
+\x94\xe7N\xe2\x8bu&\xf8\xfdit\x82\xc2\x92Q*\
+\x0a{|\xb6y_\xf6\x09\xd6/To\xf6El\x5c\
+5k\xe9\x11\x84\xb7\xd4\x93\xaa1\xd2D\xdd7\xf3\x04\
+\x17\x02:C<\xf7\xb87\xd0\xd2d\x1fB\xe3\x81\x84\
+\x10\xa0\x1ef\x80\x00\x084pX\x17NT\xc5\x9c\xe9\
+O\x8fh\x00.\xb3\xdff\x14\x1c\xb4\xe0\xed\x95\x8a\xbd\
+uDy=4\x22Q\xb2_\x18Q\xee\xef\x13#\xca\
+\xaf\x97\x18(\xdaU\x04\xb7\xac\xb3n\x8f\x12\xbb+\xb1\
+\xfa\x9f\x94\x9fDZ\xb8R\x02\xb2\x05\x18\x03\x84y]\
+\xd3\xd1G<\x0b\xb1O\xce]\xce?5\x1c\xec\xda\x00\
+\xb0\x8e\xf80b\xc3$\xc00=\xf4\x5ctGF4\
+`\xc7\xe7\xe7\xeb#\x9a\xa6H\xf7\xec\x88\xf2\xfa\xab\x88\
+\xf2\xfa\xcb\x12\xbfHb\xc0\xc7G$\x91F\x9d\xef\xb3\
+{\x22\x9a\x9d *\xd8\xa6\xf2#\xf2\x87F\x8d\x00\x02\
+S\xf5iL\x88!bqN\x89{\xa1\xf2_%\xca\
+>\xac\xc4\xf6\xd6tN\xc0\xe4\x88\xeb\x14\xa2\x8c\xa7E\
+\xb4\xf3\xb1\xdb?\x225\x00\xe2\xaa\xec\xdd\xf6Kk\x17\
+\x89\xe1a\xc0P\x80\xc7l\xe9\x08\xcd\xf4\x97\xfb\xda/\
+Ub\xe9\xf4\xbd\xe2:\x1e\xd0\xec(\xfb\xbd#Z\x1e\
+\xe3\x86\x09L\x06%\xe2U<r\xc7\x91K\xc8o\xd2\
+s\xa7}`\xf6\x94\x88\xe4\xba\x225t\x03\xd0t\xfe\
+`\x02\xa1\xdd\xc1\x88\x09>\xe47E\xa4\xeb\xc6yN\
+\xbe\xcc\xbe\x03PM\xe7VT\xf0:b\x90D\x0fm\
+\xa7\xcc9\x12\xa7\xcb\x0e\xa9 z@\x8d\xbf?\x8bY\
+v\xb7\x98\x88bZ\xba\x03\x0c\xe3\x88\x8e\xb1\xa8\xc8\x0b\
+\x1e\xa5\xef)Q\xec\xd9k\x22\xd2($\x94\xea\x11P\
+\xec\x0e:\x85\x0e\xa2\x83\xe4\xa1*\xdca\xa6\xcdv\x1b\
+4Ff\xb7\xcen\x99\xdd\xd2\x98,\x06>\xcf\x1al\
+\x17g\xebE$\xc6\xe0Fb 3\xeav\xf5\xecW\
+1b\xb8\xe0\xd8\x05\x1f\xacn\x06\xdc7\xee\xff\x88\xc2\
+\xed<\x9f\xbcR@\xa5;\xc3\x8c*q.Qx\x02\
+8P\x10\xd2H\x84\xf9\x89\xb8\xa1\x18\xc0\xa5^\x88\xf0\
+h\xab\xef7\x80(\x0d\x1b\xea\x18\x18\x88\xd8\x19\xe3\xf6\
+\x80f\x94\xee\x975\xacp\xffA\x8cR\x05\xab\xc5\xe8\
+\xa4\x85\xe1s\x8a\xcfK\x83w\xa4\xd9T\xb3\xbb\xc7\xd4\
+\xef;\xecg\xd4m\x006\x9cO\xac3f\xfa\xd9?\
+\xe4\x06\xe3<\x8d\xba\x95\x83f\xcc<!O\x86\x01\x01\
+p\xcd+?\x07qG\xf6\x11\xd6\x15\xfb\xeeX\xdb\x80\
+\x7fO\x9eF\xfe\x08\xd3\x93zJ\xff\xce\x0c\x17\xec\x14\
+\x01x\x01\xfe8G\xc9\xaba\x88\x92O\xf39\xb8N\
+\xac\x13\x001>7\x9f\x0b\x8d6F\xa7\x05L\xcc\xf9\
+\xc2e\xf5\xffG\xa6\x1b\x15e\xcd\x13\xdaL~\xed@\
+?I\x88\xc2\x1fZB\xe3\x05&\xc6\x80}\xbb\xe9\x94\
+\x07\xa1e\xeb\x94\xc81z\xc0\x05\xe7\x95\xcf\x83h\x01\
+74\xd2\x83@|\xd7\x89H\x1b\xd1\xb2u\xe9,0\
+\x90A\xc1\x0fR\x14\x97g\xe5\xf4\xf325i\xb1\x11\
+C\xe0Q\x0f\x15\x8f0\xf2\xc3\xf5a\x14 \xb6\xaf\xc5\
+\x12\xa5\x1b\xca\x0e\xf6\x87\x5c\xbf15\x1cF\x05\xef{\
+\xf4\xa0\x06\xdam\x1bQ\xde\xef\x98A\xe4\xc5\xd4V\x00\
+\x014\x04P\x81\x14\x05i\xc1v\xa5\xdc\xdd\xae\xf9\xf6\
+zD@j\xad\xdd\x8f#\xca\xd7\xfabDy]&\
+\xa2\xfc\xfeN\x11\xcdW\xda\x891\x07\x01\x1b\x11\x05\x05\
+\x0f\xbe\xa8\x84\xfd+#\xda\xec\x8aE\x80\xa4>\x0f\xa5\
+\xdabU\x88$\x82t\x91\x00\xa1Up\xc7\xe4\xaf\x93\
+\xf0\xd9}B\xc4\xc3Pp\xb0?\x92zi\xb7YD\
+C\x1e\xd9\x90&}D\xf9\xf3U#\x92j,\x07\x08\
+\x09!\x05\xa4\x1eL\xd4\xdbM\xa9\xc5o\x9b\x83\x05\xc0\
+\x8au9\xaf\x07\x95\x8e\xa5\xd6\xa5\x99\x0e\xccXq\xb0\
+\xc7l\xe3W\x93+\x04j\xfc\xd1\xd9:\xb6\x162\xd5\
+^\x04\x00\xc0\x07\xb6\x0a<'\xccl8\xd8\x8e\xe9@\
+\xf4}\x80\xfaLB#$\xd2\xc8!\x07\x1d\xaf\xa3\x02\
+\xc0\x07=\x05\x00H(\xb3\xc7\xd8\x1cb\x0f\xf9\x1f\x15\
+\xd2\x0b\xab\xe0\xe6\xf9e\xe3\x1d\x89\xa9\xf8\xe7\xa9p\x9a\
+]\x16\x91\x10q\x9e\x17\xfc\xca\x9502jbq\x1e\
+:\x02\x1ai\xb1h$\xebN3\xc7\xa6\x90\x03\x181\
+\x03\x095\x90BC\x05\xac\xdf\x9f\xe7\x97\xf5G\xc2B\
+g[\x85\x89\x138\x0a|\x0a\x18\x0a\x1a\x12,F{\
+`\x0cP\xe8S\xf8\xc3\x04`\xdd\xf0~P\xffU\x08\
+x\xb6\x18q\x1a\xc4\x86P\x09\x06@\xd96\xa21@\
+\xec\x0a\x80\x0a=\x07\x87\xd4\x88\xcd\x10\x02\xc1\xd6\xec+\
+\x14=\xc4\xe8PG\x07\x80\x82\x0a\xcb\x0cz\xf7\xc6\x88\
+\xd4i@\xa3\x03\x00A\x94T\x12\xe3\xc9\xd9\x11i\x06\
+\x0e\xb5\xe2\xef\x88\xa9\xf3\xf9\xc9i\xd1\xe1+\x7fk\x98\
+y_U\xa3\x16\xac\xff\xed\xcb\xdf\xde>\xd9\xa7\x02\x8c\
+\x91pA\x19\xa4C\xa4\x82\x9fN_\x7fBD\x1a!\
+R\xe7jv\xd6\xecK\xb3\xb3\x9a\xbb\x81\x9f?%\x16\
+\x14H\xdd\x85\x11\x0dx\xb5\x86\x00\xfb*vk\xf2Q\
+7\x95?\xec\xf6\xeeU'\xfd\x0b\xe9\xe7s_b\x15\
+o\xac\x83\xfa\xfa\xf4\x5cD\x19\xfd\xc2T8\xc2D\x80\
+\x81\x82\x1d)\xe2\x82t\xa4\x01\x0aE=\xad\x94\xe8\x15\
+\x13\xd3\x8e\xe7U\xeb\x9e\x11\x093&\x10k\x14\xa0\xe4\
+\x82\x15\xe0\x07W\x14f\xfe\xe9@\x90\xc0\xb3/h6\
+\x9f\xf5b\xb1F\x0aODX\x19\x9d\x83\xa9\xa2\xfb\x05\
+\x13\xcdZ\x03\xecSk\x0f\xf6j\xd5\x86o\xa5\x06\xf8\
+[\x03G\x8c3\x0a\xc1n\xe1\x88\xf2\xbaMD\x03\x00\
+\xba\xd7\x978@\x0c\xbb\xf2}\xbb\xbf\x96\x08f\xdd/\
+\x22\xca\xeb\xdf\x22\x1a\xf0_w\xe7\xd7\xeb\xb9\xfb~\xa2\
+\xc8\x02\x8c\x090\xf6h\x16Z5\x02\x1a]\x90BE\
+\x8f\xe7\xec\x0d\xea\xc8\xed\x9c\x98\x92Q\xc6\xdd*\xea\xe9\
+\xd5\x1a\x85X\xbc\x8dR\xf0s\xba\x7fG4;`\x8f\
+\x16\x84\xdf\xf8\xbb$\xda\xb7Q\xd30\xa8\xc0\xd6\xf6J\
+\xfc?\xd1\x00\x8b\xfe\xc6\x88\xf2zi\x89\xcb\xda\xcf\x99\
+m\x10Q^\xff\x10Q\xfe|\xe3\x88\xf2:\x17Q^\
+\x1f\x17\x91T\xa9\xa5m1\xfdJD\xd36\xf0\xa8\x8c\
+\x00\xa6\xbe\x8b\x90\x8d\xef7\x93\xdb\x8aFi\xe6\x7fY\
+\xe2Wb\x5c\x9c\xa8\x99\xfa\x00jV\x8bH\x80%\xb3\
+\xe7\xcc\xc6Rh\x89\xd2\xdc}.\xa2\x15F\x9c\xb7\xfd\
+I\x11\xe5\xf5\xeb%\xcek\xda\x13t\x9am\xb3\xfc\xef\
+\x88T\xe0\xa1\xc5\xa2u\x81V\x01\xbe\xee\x00\xa2\x16c\
+\xa5\x93\x0c\xf5W\xf7\x89\x06\x80\x0bp\x01+\xac;\x03\
+\xd0<\xdf0\xb4\x18A\x02(\x05\xf8\x070\xd4\xbe\xe7\
+\x99f\x18:\xd8_F\xf9\xf7\xa2d\xbb\x06\xd3#\xbe\
+\xddK\x92\x0b\xd6\xa8\x83n;\xe0?\x0f\xb6\xb2\xb5\xdd\
+\xf5\x88$v(\xe0\xbb\xec\xa3g\xc5>\xca\xe7a\xf6\
+\x18\x97\xa3RK\x0c\xe2\xcb'+\xdfa?z\xb1D\
+D\xc5X\xf3\xe8\x11\x05\x15\x0d\x0c\x0aI\x0a\x1d\xf6Q\
+\x18Pa\xcf\xb9p\xd3l\xa8\xd9\xf2v\xa9\x10Gd\
+P\xccZ\xdb\xf2\x01\xf0\x93\x87\x22\xde}Z\x84Fl\
+wM\x85;\xfb+\xea\xf0|OiA \xfaiq\
+X\x98J\xd8\xb6\xb1\x0f\xb2_\xd3XA\xb3J.'\
+|?\xab\xe1#\xbe\x07\xa3P\x1a\x04\xce\x97)\x1c\x19\
+\xe9e$\x84:\x88\x86\x08\x1db\xa8\xe3ZO\x1e\x1d\
+D\xd3\x02\xfbR\x80\x0b\xb4\xa5\xa8\xd3\xa8\xa7hpp\
+\xfe\xb2\xef\x01\x04q\x1d\xd9/9\xaf\xa9;\xa8\xbfh\
+\x10\x93G\xaaP\x86\x09\xc6\x08\xad\xaf\x17\xeb\x80\x8e8\
+LU\x0a\x7f\x80\x00\xde\x97|\x0d\xe0\x01\xc0K\xf5\xab\
+E\xafY\x0f4\x96\x18\xfd\xa4\xae#\xcf\x01\xb0\xe7{\
+SOQ?\xc2\x14\xc1\xc5\x83\xbcS\xfb\x81G\x13\x00\
+\x80\xc8\x8b\x19\x11!\x0f\x85\x19\x80\xb6\x0e\x8c\x03\xeaJ\
+\x00\x1e\x80\x02\x00\x09\x9e_\xe5\x13s>`\xd0\x00\x18\
+\x03\x01Q\x0ewJh\x96I\xf6Kt\xa2\x02\xd1>\
+8]\xd0x\x1c\x97\x16\xb2\xff\xe6\xc4\x18x\x5c\x95\x0d\
+j\x1dRl\xc1X\x88\x91\xeeo\xad\x8dy\xa3\xd4\xf9\
+\x83\x02C\xc2\xf2d\x15\xbe\xcc\xf4\xf2\x85y\x1f~>\
+\x85\xc6r\xd5\x89\xbc\xa9Y\x07\x15f\xa54\xb3\x9b\x01\
+\x81%\x92\xbd 7\x96W\x1eT\xde\x0fF\x01\x1d<\
+\x16<\x88\x1b\x00\x05?\x87\x0e@ \xb7A\xb9\xdbj\
+\xb2ut(\xf0\xb7\x86\xfa\x86(\x0f\xfe\xac\xa6\xd0R\
+\xd83\xf3\x81\x7f\xa6\xb4\x00\xbawG\x94\xd7OF\x94\
+\xd7\xb9\x88\xf2\xbaXD\xa3.\x1a1\xe7}\xd8\xc8)\
+\xd0I\x049P\xb0\xdd\x93\xb8V\xbfuDy}l\
+\xbfl\x1f>\xf5\x1f\x8b(\x7f\xbeSD\xb2Y\x92\x0a\
+twFD\xdb\x90&O\x89h\x07\x0d\x1b\xa8;\x87\
+,P6T\x10U\xa8F\xcc\xd0B}\xc7\xe6FT\
+\xa5\xe9e\x11\xc9\x07[\xaa\xa1\xf6\xaf\xc6\x9eP>\xab\
+$\xee\xb6\xfba\xd6\x8c\x82\x85Yc\x10uD\x08\x1f\
+\x1d\x8e\xd0\x09hb\x03\xd5\x03L\xe2\xe3\x19\xca/\x95\
+\xf2\xecK5\xa19\xbb\xce$\xe3\xf7)\xb1\x95\xfe\xbb\
+\xfd\xc5\xfd\xc5m\x9d\xcc6\x8fhH\xb8EF\xb0\xe7\
+\x93\xaa(\x07\x9c\xef#\xa2S\x14\x9e<\x07\xfc\x1a\x04\
+\xf2\xa7\x11\xa9#\x87k\x00\x09\xc3A\x11\xa9p\x17#\
+\x03\xca\xa0G#\x0e\x12\xa5\xf3\x8f\xa2\x84s\x80AA\
+\x1b\xfb\xa9\x82\xac\xf2\xf7HTd\xd7\xe6\x0d\x99\xe7\x0d\
+\xb5p\x80?:\xecl\x90\xa8\xfaSp\x80\x84\x93\xc8\
+\xb0\x11r0\x03\xf0\xe8\xfb\xbb0\x97\xbf\xab7x:\
+z\xd8\xae\xb1\x1f\xf1\xbe0\x12\x94\xc0YC\x80\x11\x14\
+\xf6CF\x0b\xf8\x8f\x83\x84\xce\xc0\x88\xf2i\xe6\x00\x05\
+\x10#\x01\x00t\xfa\xf9\xb6U\xc3g\x1d\xad\x08\x00*\
+l\xa1\xa0\x22\xe2#M\xa7\x08*\x223\x7fPH\x85\
+\xd4\x9b\x22\xf9\xabAL\xb1$yC\x22\xad\xef\xdb\xfd\
+!\x22\xdd\x07\xb9{\xf4GE\xa4\x0e\xd6\x9e\x11)\x91\
+ \xc1`\xd6M\x94G\xbb\x1d zy\xb5\x9eC\x0a\
+o\xae#\x80\x0e\xe7\x14\x09#\x1d\x12ut\xdc\xb9\xc0\
+\xa6\x0b*\x1e\xfb\x08\xf6<\x9a\x8d\xb4\x1a\xb9\x12\x8f\xee\
+\xe0\xa1\x90\xef?\xdd\x7f\xa6\xffL\x05\x0a\xf7\x0d\xa0\x10\
+7\x8e\xe99\xd3\xb3\xa7\xe74&T\xf7\xbc\x88&n\
+\xd6-\x1bQ^\xef\x8f(\xaf;G4\x80\x90\x8e\xb6\
+\x13\xd4\xa7E$\x80\x82Q\x9c\xf3\x95\x80J\x84\x0b1\
+1\xf6\x17\xdb\x15*\xf1\x03 \xa2C\xeb\x8e\x00\x22O\
+\xac7\x80d\x00E\x00\xceE\x87\xf3\xb6\xdb\xb8\xdb\xa4\
+\xdb$\x01a\x02\xc6f\xbbE\x94_\xbf\xa9F+|\
+\xa4\xd5b{\xaf[#\x92\xb8$\xc0\x22\x9d\x0e\x807\
+|\xc8\xe9\xc8\xd0\xb9c=3\xb2\x87\xaf<@.\xc0\
+\x19\x05\x10bW\xf8o\xc3H\xb8c\x18\xbd\xa2\x83Z\
+\xca\xbfS\xbbS[\x07\xd7\x94\x7f\xb4\x04\x028\x8e\xce\
+\xf2\xbe\x11\xcdnp\xbavD\xf9\xfd\xf3J\x9c_\xd6\
+\xc5kK\xec\x97l&\x83\x22\xfbe\x9dK7&\xe6\
+\x0dTZ\x9d#\xb8\x1cTF\xd8=M\xb4\xb6v\xd0\
+6\x13\x00\xbe\x81\x18@G\xb4}\xa9\xae\x8f\xa7\xa7\xc2\
+f\xbb\x12\xcfk\x80@\xf7\x8d\x88\xf2\x1aut$\xda\
+\xaf\x8e(\xbf~k\x84\x80\xea\xe5\xa5\xa6\xbf\xa2\xce\xb3\
+\x9b[g\xban\x03e\x1f\xe8\x7fQ\xe2\x97\xda\xe7c\
+\xc6\x7f\x85\x88\xf2\xfa\x95\x88\xb2\xad\x1d\x10Q^w\x89\
+(\xbf?\x8dhj\xd6\xdd*\x11\xe9<Rg\x8a\x19\
+}\x8f\xf4\x08`\xec?\x19\xd1\x12Z\x03\xd5\x123\xed\
+_\x11!\x17\x86\x1b\xc5\xb0\xb9\xa1\xb95\x98Y\xa0Q\
+\xbcr\x95w\x88F\xc9l\xcb\xd9Vu\xa6{9\x01\
+\xc5\x88+\xca%\xc1\x0c;f\xb6a\x14\xc5\xdd\xbc4\
+1\xac\x18\xc5\xc1&2\xee\xcbQM|\x99N\x1d\xe2\
+\x91\x06h\x01\xac\xe5w\x8f\xab\x83)\xbe\x88\xda\x8a\xe1\
+gW\x14\x156\x00\x89\xces)t\xa3\xcc\xb9\xa6\xad\
+\x1f\x9f[c\xf1/\xce\x01^\xc9k\x18\xe5zv\x84\
+\x0a\x99\x1d\xd2\xfa\x94\xbf\xba59\xc8\x7f9\xffc$\
+\xe3\xc8t\x1e\xc2\x84Y\xa1\x5c\xe5\xcc\x98e\x94\x94\x99\
+k\x1a\x85\x9c\xfb\x00\xb9t\xd8\x01\xbaa\x0c!\xde\xcc\
+y\xb8\xbd\x1a\x0f'\xcbf\x8e?\xa7\xa1C\xa1C\x81\
+\xa8sg\xb6\xfa0\xca\xe5u'`\x86\xfc\xd0y;\
+\xc0\x05\xe2\xaa\xbc\x8f\x983\x06\xee\x11\xf9\xd3H\xa5\x99\
+T\xec\xa3\x8c\xc6)\x0f\x81\x12\xdf_\x1bQ~\xff\x7f\
+k4`\x84\xf3\x0a\x9bn\xd6\x0d\xe2\xb6h\xf6\xb0?\
+\x92\xc7^\x16\x91\x0aW\xe5[h&XT\x16\xa0\x83\
+\xbc\x8e\x11\xbe\x91x\xad;\xf9\xca\xb3<\xabN\xdeH\
+\x9e;M\x9aV\xbfM\x8c\x09\xec\x04\xb1\xe1\x14C\x85\
+\xc2\xdc\xdf\x97B\x9f\xf7\xa5\xde\x00\xd0\xa7\xee`\xbd\x02\
+\x94\xb0N\xf8\xf7\x9cW\x5c\x7f\xee?\xeb\x95\xff\xc8\xe7\
+\xc6\xdao\x5c\x17\xea5\x12a\xaeKc\xb6\xfcW\x1d\
+\xe8\x91U\x001\xf2x\x006\xb4\xc9\xb0\xe7e\xdd1\
+\xda\x01\x00\x81M%\xcf\x8b\xd6\xbf\xc5\xda\x7f,\x976\
+\x0aw\xce\x11\xb4\xcd\xc8ka\xc0\xc2x\xe4>4\x1b\
+\xee\xa1\xbe%?\xe2z\x08\xe8\x98\xf3\x0d\xc8\xea\xdd\x0f\
+\xa6\xc4\x1d1\xbf\xe8\xd4]*j\xf3~\x09\x08\x88\x8f\
+\xb1l\xb2\xe5\xe3BG\xf9\xbb\xb6\x0a\xbeMu\xa1\x9f\
+\x9c\xd4\xf5cRm_m\x84\x7fI\xbf\x8fm\x1fL\
+\x01\x16\x0a\x9d~\x12Nn\x00\x09 \x0b`i\xd9\xfe\
+\xe8\x020;\xe1\x05\x1c\xef\xb6FR\x05\x87!\xc0\x05\
+\xe5\xc2\xf1\x1f\x88\x12\x14\xcfPO=3\xb9\x1b\x80\xa4\
+\xd2\xb1\x05h\x10\xe2l\xaa\x08\xb6O\xb2\x05\xea>\x1b\
+\x91\xfc~Q\x1f>?R\x8c\x86\xf8N\x9e7l|\
+\x95\xf2\x1f3n\xb7F4\xb5\xd7\xeeo\x83\x98\x1f~\
+\xc9\xdd\xba\x11\xe59}UDy\xfdGDU\x9d]\
+\xb2\xda\xdc\x80\x88\x83H\xa3\x0a\x0f\xb2\x04\xd5\x05;\x12\
+fUE5\xc2\xa7\xba\xbf-\xa2\xbc\xbe&\xa2\xbc\xee\
+\x16\x91\x0a\x0c%n\xee\x1c\xa93\xefB\x06\x84\x0f\x04\
+\x13@\x00\xd5X\xa8\xd2\xcc\xf0\x81\xec\xea\xbeQ/1\
+\xeb7\xfd`D\xdah\x10!a\xe3\x00\x90\xc1\xaf\x18\
+\xaa7.\x07\xa8q\x8f\x91z:W qt\xdc\xb1\
+\xb1YJ\x07\xe1\xb9\xf2Q\xe5\xe7P\xc8\xf2\xef9\xf8\
+\xc4`\x80\x9a\xe7\xc4\x9f\x82-: \xdf\xa8\x85\xe2 \
+\xae\xc5F\xae\x84\xd9\x1b\x12\x9dl!\xaa^\xbfB>\
+\x99\xb5\xc4?\xd5\xd4u\x0eLD\xe3\x84 b\x8be\
+$Z\xcfA\x7fxD\x1aQP\xa2\x07\xa3\xc1\x0c\x8b\
+K\x04\x14\x01\x1c N\xc9\x06x}D: \xa1\x84\
+q])\x1c.\x89HTe\x0aW\x10d\x01=N\
+0HT\x04\x8c\x98JMg\x9cB\x05J4\x22t\
+ \xe2\x14\x16\x00u$6 \xc1\x8c\x1a\x910\xf0\xe7\
+\xec\x97\xd8\xe5\x00DRh\xb2\xe1\x8ef\xdal7*\
+\xea\xba\x191\x12\xb3\xf2\xbf\x03 \x00P\x80\x99\xc4\xcf\
+a\x9d1\x02\xf3\x13\xcd\x96~x(\xf4&OT\xe7\
+Q\xc0\x9c\x0f:l\x85H\x00\xb5\xce\xfbOD\x94}\
+\xe2]\x11i\x04\xe10%<\xb2\xdf\xb3\xbb\x82\x18\x0b\
+\xddB\x11\x09\x08\x85\x92\xff\xb6\x88\x84\x5c\x0b\xb81u\
+O3\xb6\xee\xf0@Qf\xbd2\x83\xfa\xfd\x05?\xa8\
+\x05\x9fD\x94\xac\xa5\x00\x10\xb0\xcchv\x10\xfb5\x9e\
+\x1b]_T\x99=Kw\x8b(\xa0$\xcc\x00o\xcc\
+\x9aC-\xd4\xcf\xe9\xdf\xd3\x1f\xd6\x1f\x96\xc4\x94\xd8\xaf\
+b\xe6y\xd2\xc4\x83\xa0`[\xb46`\xa2\xa7\xb4N\
+EwJD\x13\xfd\xe9\xbe\x10\x91\x00D\x181:\xf7\
+\xfa\xdfE$\x11W\x01\xbe\xb5\xa3{h\xdb\xd7\xbb\x1d\
+\x22\x92\xdd\x95f\x0c\xad\xf5\x01EU\x05\x89\x13n\x00\
+\x17\x808:l?\xabOt\x00}o\xad\x94v1\
+\xd3\xb0\x03t\x22\xad\xf5j\x9b6\x00Hl\x01u\xde\
+\xc1h\xf3(\x00\xa3V\xdcGFV\xd8\x7f\xd9\xb75\
+\x83\xcc9\x85m\x9b\xdf\x0f\x06\x8e\x12H\x03\xb5|?\
+%\xd8\x88\xd0\xda-A\xd4\xe9\x80\x03\xe2~\xf8\x5c\xfd\
+\x9f\x88r\xb95\x817\xdd\xb4\xc4f\xed<\xb5\xb6H\
+P\xe2_\xdb\xceC\xf6s'\x88t\xa0\x0025\x9a\
+f\x06\x85\xec\xe4\xd0\xb4\xe9\xde\x19\x91\xcec\xdcS\xc2\
+\xf5e\xb7\xe6\x9e\xc1\xac\xb8\x0b\xaaH\xb7\x0f\x13\xd3\xef\
+GIm>:\xdd\xa7\x89\x9a\xbe\x97\x0a\xe7\xdf\xb5\x91\
+\xa2\xee\xe2\x12\x17\x89\xa1\xf1\x06\x8dT\x9c\x97f\x96u\
+\x9f\xd9\xdf\xfa\xcb\x22Z\xe13\xb9-\xa2\x5c\x97S\x22\
+\x1a\xd0\xd8\x9d\x1d\x91:\x9fP\xed\x19-\xd4\xfd\xeaw\
+\x88hL\x0e\x98t\xfd\x81\x11\x12\xd5\xfbL\x05j\xab\
+\xab\xc1t\xc5\x88D\x85\xff\xf2\xe0v\xd4\xad\x15\xd1\xec\
+\xf5\xea\xba<\xb4\xee/\x03\x85\x1b\xa6\xde\xad\x12\x1d\x86\
+\xfa\xce\xba\x15\x03i\xb2ZD\x13\xd3\xac6\xcc\xc7i\
+\xa6\xfa\xd7\xad\x83\xec\x99yf\xc9CD1\x5c\x07\x1e\
+\x1bQ^?\x1e\xf1P\xa0\xbc\xae\x8b\x97'\x8d*l\
+\x87%\xd2;\x7fMD\xd3\x08\xf0:\xc5^\x96\xfd\x04\
+\xaa\xf6\xa2j@0B\x83\x1d \x00+\xf6\x9d\x88\x00\
+\xab#\x09s\xc3L0\x0a@\x5c@p\x07\xa0@b\
+\xbd\x01TP/0\x02LA\xc3\x88\x0ay0\x8cX\
+:\xec\xca\xb7\xdc a\xe6\x5c\xb6\x91\x06\xe2\x11\xcb\xc5\
+\xbe\xf1\xbb\xa2H\xb3?\x01\x88\xd0\x99g\xdf\xa4PF\
+\xc4\x8f\x82\x19&\xdem\x1am\x92K\x13\xe2m\x00\x1e\
+\xb3\xad#Z\xa3e\xb6}D\xd3\x86r=\xb4\x92\xce\
+_:\xbc\xe4\x01\x14\x96t\x9a\x95\xe7\xf5\x0fD$Q\
+f4\xc4h$\xe0\xb2#\xad\x08\xd73\x5cW\xa8\xf4\
+\x00\xa3\xe4M\xfc\x87f\x0d\xa3\xa2\x8cH\xc2\x08\x04\xf0\
+\xa5\xc0\xd7z\xe4\x5c\xf6l?#\xb2\x00\xb440\xc8\
+7\xf9^\xe4o\x14\xe8t\xb4i\xcch\xd4\xd4\xf6\xc6\
+\xe4\xef\x00\xef\x02\xde\x5c\x7fe\xa6\xf6J\xa9\xb0g\x14\
+\x0d`\x8b\xef\xc1\xe7\xa1`\x1f\xdb\xd6S\x7fR\x0f\xf2\
+\xe7\x00a\xd490\x0a\xf8>4\xa0x\x7f\xf6o\x0a\
+pF\x0fiH\xb0\x0e\xe9\xe4c\x03\x89h%\xa3%\
+\x8c\x04\x90gP\x0f\xf2\xf3\xc9\x9f\xf95\xf9\x1f\x00\x04\
+@\x17y9T\x7f\xeaT\x18\x13\xb8\x10\xc1\xcc\x80\xb9\
+H\xde8\xd2\x08\xe3\xf7\xe7\xfc\x85\xb9\xe1\x14\xf2qy\
+\xb3X\x1f\x17\x84\x99\x22\x0e\xe8H\xb7\xb7i\x1d~\xcf\
+$1\xbb\xaf\x83\xcf\x1d2f\xe6xp\xf8`P\xe3\
+)\xc8\x03O\x8bY\xeb\xf5K\xac\xa7\x8do\x9d\x94\x00\
+#^\xc8\xfb\xa9\xb0\xb7\x9d\x0b\x89!\x17\x8e\xce=\x85\
+\x12\x0bn\x85\x8a]\xb6\xf7]y\x10'\xf3\x88@l\
+\xf37\xa6\xce\x03\x08\x1d\x1d@\xa8\x9d,\xb8\xa5\xaaQ\
+K\xfb\xb9t\xfe\xa1\xe4\xd1\xb1Q\x22\xd0\x1d\x18Q^\
+\xbf\x19Qg\xf2\xae\xee\xa2\xe3\xb6\xdc`O\xd8m8\
+t8\x98\x8d\xef\x9e\x13Q\xee\xdf-\xd3\x9b\xa7eC\
+\x98\xee\x1a\xd1D\xae\xba\xbb#\xca\xef_\x1a\x91\xd4q\
+%\xc2e\x11\x0a\xa9{2\x13\xd2\xff \x22=(,\
+D=\xa0\xfd\xe3#\xca\xeb\xfd\x11m&\x90\xce\x19b\
+[u\x86\xef\xb3\xadP\x83\x1a\x8ax\x97gQ\xb1\xeb\
+\x83r\xcd\x82\xc7\x9f\x9c\x19{\x1e@uv\xb0\x1f\xf2\
+,\xe3\x07#\xca\xeb\xde\x11i\x86^>\xc9\xeelR\
+@s\xd04u\xd0\x01h\x82\xc2\xc4\xf7\xa6`\x17@\
+\x01E\xd9\xea\xfc\x00C\xb7Ju\x13\x8a?\x08\xaaD\
+\x92|\x90\xb2\x11\xa16\x0a\xb5HTw(q\xfe\xf9\
+\xa2FY\x1c)T\xa8\xdf\xdb\x0a\xa8n\xd7\x88r\xdd\
+\x7f\x16\x91\xec\xeb@\xf0\xb5\x01g>>_\x00\x00 \
+\x00IDAT\x1bYf\xf6\x90\xe7V\x94\xf2\xee\xcb\
+\x11M\xb3\xc0\x94\xda\xf9\x88F%\xb6\xef\xb4:\xab\xfd\
+\x93#\xca\xaf\xf7\x88H\xf69\x00;P\xd1u\xd0\xa2\
+\x96m\x9b:%4\xb3\x1d\x22\x12\x10C!)J0\
+\x09\x09bh\xd8\xb4\xf8zJ\x5c\xcc\xcf#\xb3S0\
+8p\x91`\xa6\x9c\xd9t\xae3\x142!\xf8\xa6R\
+c\xbf\x87\x9a6\xaa\xd40T\x04\x08\xd0\x11fv\xd4\
+\x00\x00\x078\x89\x0b\x058Z\x11JT\xb8\xaf\x9e\x95\
+\x14\x15\xd1\x07\x1a\xe2~ \xd3\x00t\x88\x06\x01\xb8h\
+\xe6\xba{ID\xdb\x87'_\x89h\x1dt\xab\xc0\xf3\
+<\xb0\x9fS\xd8\x00Hq \xa2\xd2,\x911\xdbu\
+-\x12\xd1\xdcD(\x9c\xe8\xfcSh\xf6\xbbG\xa4\xfb\
+\x04 \x03\xb3\x89\x84\x05QO\x9eO\xae\xb3\xec\x8b\x8c\
+\x98\x03\xf0\xbc=\x22\x1d\x88<\xbf0\x1aD}\xf6A\
+L\xc2B\x01\x8a\x88\xea\x17#\x92\xa8\x9e\xae\x97U\xea\
+\x05\xc0L\xb4\x0f\xdb.*\xa8\xcbe\xff\x99\xfdt\xf6\
+\xb3Yy\xfe\xfa%\xfa\xc5\xfb%\x92V\x0a\xd7\x17\xb1\
+H\x8d\xb0y\x9d\xeay\xedn\x88h\x80\xb0\xb5d`\
+0\x01\x84q\xfe\x92\xd02\x02\x82\xcf<v\x81\x02f\
+\x0ct\x88ae\xea6TN\xfc\xbc5\xdaAa\xe1\
+\x0e\xd1o\x86\x19\xe5\xc9\xed\x93\xbf\x84\x18#v\xb9\x16\
+\xa5\xa3\xb3\xc3\xf7\xa5\x80\xc0\xae\x0d[,\x9e[:\xf5\
+b\x86!^\xe5\x8e\x0e\xfb)TN\xf6\x03\x00u\xed\
+g\xd6\xae\x80\xda\xcfl*TY\xc4\x22\xe5R\xe1\xe7\
+X\xae3\x1e\xcd\xa0\x03\x1f\xb3\xe4\xab+\x9f\x9c\x09\xa0\
+)\xef?]?\xa2\xbcn\x11\xd1\xec\xef\xfa\xa7D\x08\
+\xe0\xdc'\x01!P2\xc5|\xf0\x0c?\xc0$\xeb\x9b\
+N\x8f\x80\xd7n\x83\x12\xb1\xef\x5cQ\xe2\xcaTHH\
+t\xb92\xc8\x1e\x97\x18\x1b\xb8O\xa8\x93\xdd\x9d\x1eQ\
+>\xe7\xd3J\x94}\xa8{dD\x12\x05\x8e\xd1\xc1\xb2\
+\xbfv\xef\x88\xd0}x\x92\xae\xff\xc6\x02\x8a\x0f\x16`\
+s\xb5D\xd1\xde\x9f\x80|\x98\x86\xa20\xe3\xe6\xc0\x08\
+\x05\xc0q\xbfSD+\xf0\xbb\x8fF$\xed\x22\x01\x0f\
+h\x8c0:\xe3Q\x13\x01WP\xa7\xed6\x00\x13\x10\
+@\x92Q\xbd\xbd\x06\x86\x83\xb5\x92\x10\x83]d\xd0\x1e\
+\xf0h\x9f\x1a\x0e\xb6?\xdc8\xa2\x8dd\xd8~\x0f\xfb\
+X\xb4P\xb0\xd7\xd5H\x1d@\x86\xedJ\x014\x18I\
+\x11\xe5\xdd\xcc\xcd8/\xcas0Y\xba\xc4RI\xa3\
+\x03\xdb\xdb\xad\x06\x86B\xbd|\xc1\x1c8\xad\xc4\xe7\x95\
+'\xbeSy\xef\xfa\x0d\x181P\xc6(\x9e\x98_\xf6\
+o\x07x\x93\xc6K\xd5\x1cy\xa2\xce\xdb\xf3R>\x1c\
+\xa7\xea\x11\xa9\x81\xc0H\x06\xa3\x87t\x5c\xd979\x7f\
+`\xf0Q@\xa1qE\xde\xa6\x06\x1e\x00\xde\xeck\x11\
+\xa9p\xe4\x5c\xe4{\x8c\x98]f\x88I\x8c\x16\xeaz\
+\xf9\xddAT\xee\x85\x11\xa9`:{\x00\x80\xbc\x7f(\
+\xdf\x06\xb8e\x04\xd2\x1dV}nF\x8c\xfa\x8d\x22\x92\
+v\x85&'\xea\x80\xd2\xe1\xc9\x85d\xec\x0b\xafB\xda\
+\x1a\x050\x95\xb0\xf5\x06@\xa6\xb0\x86\x82OCr\xac\
+\xfd\xc5\xf5\x84)\xad\xbfW\xdd1>\x92\x0av\xcei\
+\xdc[\xde\x18\x91\x1ah\x02\x1c,\x92M\xc1I\x1eI\
+\xc3\x86\xfc\x1e\xed\x1b\xae'\x22\xb5\xa8\xdaS\xd8\xa31\
+\x02P\x04\x10\x92\x19 +\xa6\xe7\x01M,\x8d\x9ay\
+\xffF\xf4\x11\x11n1\x81\xb1\xb3\xac\xca&OML\
+\x1c\xf6A\x0a\xe0G\x8dFL)|y\x05\x10\xa0\xae\
+\xe4\x86r\xdf\xa8\xf7\x10-\xd6H\xb5\xed a\xe6\xa8\
+`\xb7\xdd4\xcc\xd3\xb1\x8d\xbd\xd6\xb5\x1bv|\xbe\xd1\
+\xc8\x83;\xf7:\xef-\xd2\x0d\x80\xcb\xfa\xe0\xbaJ\x0c\
+\xdb\xdf\x9fF\x0fu\xebX\xac\x1f`d4\x82\xe1\x91\
+q\xf2\x5c\x00\x98_\x0f. |\xce9\xd6}\xc5\x03\
+\xe6\x1e\x06Q\x01\x00\x18\x17\x86Q\xa6\xfd>\xa9\xa1G\
+b\xfe\xc4\xa4Z\x0d\xc2\x035F\x1a\x02.\xf0\xb1\x11\
+\xc4\xdeF\xd4\xfbz\xc0\xac)$l\x9d4\x12@\xa2\
+\xc7\x05#Q\x5c~\xa0\x1eY\xad\x1f\x04\x8d\x0b\x06\x93\
+ p\xc9U\x12\xd00V\x99\xe4\xcfW\xad\xe4\xa4&\
+*\x87\x9b\x00\x89\xb7\x12u/,(\xbd\xb1\xad\xad\xdb\
+\x80\x0b\x17\x98 \xb7\xa8\xd4/9P2L\x91\xa1C\
+\xb1\xcf\xf0\x00M\x16\x92Z\xec\xae\xc3\xc679S\x9d\
+\x1e%\x8a\xd3\x0f\x0d\x9dn\x8b\xfa=9BvUw\
+\x0a\xd9\xbf\xb8\xcd\xc8O\xfe\x13\x91fWw\x8fh\xb3\
+)\xfd\x1b\x22\xd2\x8c4\x14\x1fm@P\xbe@\xb4g\
+\xff\x89(\xff\xae\xb6\xf4[\x01\x88\xc8\x96\xd5\xd5\xe5\xfb\
+m{\x12\xf9){&V\x80\x80\x13X\x8d\x08\xcc\x9e\
+\x1bQ\x96\xddw#\xd2\x86\xc2A\xa2\x0dk\xf2\x9d\x88\
+\x96x\xf6\x7f\x88h\x88\xbcG&\xd4\xf9\xed^\x14\x91\
+:\x92\xcc\xea\x00\xdc\x08\xd9\xb6x\xa0T\x92-*u\
+bD+ \xcd4\xd0\xec\x0f\x89\xbb\xc5cx^(\
+\x88y@y.\x84\x90\xcf\xd6\x19fW=+\xcb\xcc\
+\x10\x09\xba:k\xdd?#\x1a\x85\x0cj\x8fE\x13\xa1\
+xQ\xa0\xa8\xc3\xeb\xd9j\x90?:\xed\x12{\xe9\xfe\
+\x1e\x91\xd6\xbb6\xc0\xfe9\x11\x8daa\xb1\xa7\xe5\x22\
+\x92\xaf\xbb\x125(a^/R\x81\xc6\xdf\xda\x1d-\
+\xad\x17#\xdb\xf8\xa8\xfeix\x7f\xa8\xe4N@@\x90\
+A\x86\x01f@`\xb5!\x1a\x18\x90O.\x85\x93E\
+'QOG\x05\x1fm\x076\x5c\x9eS\xd6\x97T\xe8\
+\xd1\xe6\xa03\xe6\x83Z\x88w\xb7QD\xf3{wG\
+\x03\xe0\x08q>f\xc4\x10\xbfD\xa4\x0cJ?\xa3)\
+\x14\xca\xb8uHs\xc1\xa30\x88\x82\x91\x00\xc1\x14\x10\
+\x15\xac\x8a\x8c~\xac\x15\xc8\x06PPs\xd7\xcc\xb1;\
+\x10\x00\xb3\xd8b\x92\x80\xa1B\x0c%s]%n\xba\
+>\xfe\x9eJ\xd0\xbb\x97\x0c\x14w\xabw\xeb`\x07\xf0\
+\xb4\xbd\x11\x9fW\xd4U\x00<:\xddV\x0f\xbec\xc1\
+\x9d\x158\xa1\xf0Y[\x07\xe1\xd2\xa2\xb4\xe1J\x82\x08\
+\x1f\xf6\xa1\xd8\xb0\x22\x86\xc7\x88\x06\xfb=\xda\x17t\xc2\
+\xa1\xa2\xdf\x1c\x91\xf6\xad\x91X\x90\x13\x05u\x80f\x8f\
+\x8d(\x9f{\x8d\x88\x87\xaa\xf0{t\x88\x04{\xf1\x88\
+\x94\x18\x8a\xf1a\x80D\x14S\x80=k\xb8\x84\xf8\xdc\
+\x1e)\x01\x87\x12.\x1b5\x8b+2\x13/\x80\xcdn\
+\x22h?\x90\xe0\xf1\xef(\xac`\xd4i\x7f\xea?\x1d\
+\xd1\xf6#\x17\xb2\x02P\x5c8\xffu\xd0lYph\
+\x8d6\x8b\xae\xce\xa4}\xe9\x7f\x10\x91\xc4S\xd1V\xd1\
+ue\xf4\xcd\x8c\x10\x8d\xb6\x98R\x09`\xcc\xbf\x17\x00\
+a\xed\x15\xb44\xb4_N\xf7\x88(\xe7\xc7\xffF$\
+\x0d\x1a\x80xlpa\x12\xe8{T\x11\xb9\xcf\xca\x8e\
+x\xd5\x06\xecO7*\x91\xf6\x85\xdao\xfba\xdb\x07\
+\x00\x1c\xcd\x80`\xb4\x8c\xef%f\x88;3\xa8\xa6\xb3\
+\x9f\xe9\x5c\xb6\xfd\x1av{G\x968\xaa\xdd\xf7\xee\xb0\
+\x08\xbd\xff\xf1\x02\xd0\x83\x11\xf8\xda\x08\x15\xfc\x7fm\x9d\
+\xd5z^\xfc\xa3\x01A\xb5q\xb0\x8d\xf6\x99=\xd4\x08\
+(\xfb\xcf\xfc\x0d\x11\x89)$\x06\x02\x85\xbd\x0bZ\x00\
++\x89l\x02\x1c\x9biA\xde\x88\xea\xb8\xae3\xaf\x16\
+\x09\xa6\xc3\x08\xf3D\x80\x18b\x84.\xc4$f\xe6\xc4\
+[\xcf\xcbd\xab\x88\xc6\xa4B\xc4\xb4_$\xa2\xfc\xfb\
+\xb7F\xa4\x0e\xfc\x8a:?\x7f\xd0}\xbf\xfb\xbeD\x1d\
+\xcfM3\xda\xea\x88\xcf\x16\x8aH\xaa\xf0\x14\xbe\x00\xb5\
+\xa7\x0dZ$<\xf7~^\x05tT\x97\xca\x92\xf0w\
+o*\xf1\xc6V [\x8b\x03;J4\x81\x96\x8fH\
+\x14^\xf6I1\x8c`\x84\xd4s\xe8/i\xd6\xfe\xdc\
+\xca5\x1c\xf6\xa3\xd3\xf5|\xef(\x00\xfa1I\x8bI\
+\x00\xbe\xc5\xda\x04\xe8\x90\x1f\xd9G\x1c\xf1c\x9d\x97\xb3\
+\x9d#R\xe1\x88\x1f<L<\xea\x02\xed\x1b</V\
+5\xd7Dayz\x06\xd5\xf9\xa3\xc4\xe8\xa4\x80e?\
+\xa7\xc3K\xa1\x08\xc3\x0fF\x18\xe7\x10\x85,\x85\x15\x1a\
+5?\x8dH\x8cF\xa8\xe00?\x11\xb1\x93\x8d\xe8l\
+\x9b\x88\xd4\x18 \x9f\x839\x81]\xec\xbf\x06\xb1ck\
+H\xa0\x99@\xc7\x1c5\x7fi\x99\xb8\xd0\xa3\xde\xe0<\
+\x17\x80c\xa64\xdf\x1f d\xacq\x86{\x80\xdc\x16\
+\xdc\xd0\x81\x0aN#\x01\x97-\x18\x89\x00%\xe4\xf9\xcc\
+\xd4S\x97(O`\xe4\xd7\x80-\xf7A\xd7\xcd\x94~\
+\xce{\x98\x05\x00\xc2\xe4c468\x8f\x18\xa1\x80\xf9\
+\xc1\xa8\x1e\xf9&\xeb\x08\xb1;\xd6\x0fy1\xcc\xa8W\
+\xaaa\x05 @\x9eG\xfdF\x83\x96\x11r\x9d#\x00\
+:\x06\x0a\xc6\x22\xd4\xd4\x8d\x00O\xec'h9\xa9\x1e\
+1\xb3\x87\xf5\x01\x83\x94\xce?\xd7\x9f\xfb\x07S\x8e\xfb\
+\x88\xa6\x19\x0d@\x18\xc20\xd8i\xa8\x90\xb7\xb1\xd1Q\
+\xe0s\xbf\x18i\xd5\xfa\xb1\xcb\x0d\xcc\x9b\xb1\x1b\x17\x0d\
+t\xd6\x11y\x0e\xcf\x17\x9f\x17\x97\x03\xce!1f\xe6\
+L\xddA\xdc.S\xecWL\x14\x02\x10D\xd4\xfd\xb9\
+ 7U\x07\xfb\xa1 \xfe\x8f\x12\xe9\x8dR\xa7+\x96\
+\xe7\x9a\x89\xba\xa4\x0d\xc3\xef\xc3\x17\x812\x1d\x04\x89-\
+\x92f\x00\x05?7\x92\x05!*U\x9d\xe9_E\x7f\
+o\x8dD\xf1\x87\xd2\x0b\x00\xc1\xbf\xc3\xed@n\x02\xfc\
+\xbbJ\x01{\x5cB\x8a\xe8D\xb2\xb1\xb0\xa0\xb2\x7f\xe6\
+\x0f\xb5\xb0/\x12\xf2\xf9\x82\x04p0\xbb\xcc\x8c9\x9a\
+\x07gH\xed\x1c\x9b\x11m\xcc\x88\xce\xd0\xa9\xa7\x80\xe8\
+\x9e\x19Q;\x91U\xd5\xd3\xb3\x8c\x07D4\xbfl\x0a\
+lf\x9dgO\x8c\xa8\x08\x7fU\xcfw\xa7U\x85\x97\
+\xed\xe1\xfe/\x22\x15\xb4'\xd6h\xb6p\xea0\xe2\xdf\
+9\xab\xff\xb5\xceG\xff\xaa\x88\x86\x94\xf7\xcf\x8fH\x9d\
+3\x89\xe6\xd0!\xb4\xc8\x13\x00\x00\xb6\x86RG\xee\x1f\
+\x15\x91\xec\x1d\xd1 `\x86\x86\x83\xf7\xcf\x11\xcd\x0f\xbb\
+\xdf\x22\xa2\xcd\xdc\xfa\x01@\xfd\x9e\x07\x00\xb5^\xee/\
+\x00\x10\x09?\x05!\xc8\xaa\xd6\x8d\xc5a\xd8p\x95\xf8\
+y\x16\x1f-\x83u#\x12E\x87\x8e\xe8j\xda A\
+\xcc7Q\x07\x9c\x83\x87\x07\x98\x0e\xa7:i$\x16\xfc\
+\x1cf\x0c=\x83\xcf,\x1a3\x97\x1aU\xe9\x9f\x1b\x91\
+\xee;\x07(T/\x12pD\xd6\xb6\x91h\x8f\xd6\x8d\
+\x99.\x88\xcb\xc0t\xd1hJ\xf7\xf8\x08u\xae\xaeH\
+>\xd0\x87\x0dT\xe9\xd9\xbf\x22\x92\xea?\x1dk\x8d\x84\
+\xe0\x1eaD]\x1de\x90mw\xf2)P\x19m\xc0\
+n\x86\x19y\x12I\xee\x0b\x1dM:\xfb\x1cX\x00\x09\
+P\xe9T\xb8X\x93\x02\xa4Z@\x02\x14W?\x0f\xdc\
+\x17\x10|:cJ\xfc\xab\xb8\xd6\x86iV\x92\x03U\
+\x1d\x02\xcf\x9c+A\xb6H\x1e\x1dO:{\xd8\xf6\xd1\
+\xf1\xc2V\x8f\xeb\xa8\x02\xda6W0:H@\xe8\x00\
+I\xfd\xde\x9drf\xfe\x19E\x80b\xaa\x04\xda\xc0\x82\
+\xae\x8b\x81T\x01N\xf69G\xfd]\xb3h\x9ei\x96\
+FK\xf7\x87\x81J\xed\xcf\xc3\xf3\xcb:\xa5\xa3\xaf\xfb\
+c`\x82Q\x0bD\x109w\xf6\x14\xe0\xf5\x171\x81\
+z%\x5c\x14\xa80\x89\xa0\x9c\x8a\xfa\x080\xc6H\x89\
+E\x91\xf8\xfep\xbc\x19\xb1x\xc6@\xd5\x9e\xdc\x11\x91\
+\x12S\x9e+\xd9\xad\x91\x00B\xc9\x06\x88,er-\
+\x94\x10W\xe5\xe0\xee_\x1d\x91\x80?\xd9\xce\xe2C^\
+;\x92e\xdd\xf4O(\xb1AK\x14\xad\xe6\x8e\xc8\x9e\
+|\xcf\xd14\xe0z{\xd6\x1f \x83\x82\x9b\xfb\x8b\xfd\
+\x13\x05\x11\xeb\x09\x00\x85\x91\x01\xed\xf3\x1e)R\xc2\xdf\
+\xbd-\x22\x01\x00\xda\x97l\xe3\xaaN\x106\xa5\xb3\x17\
+G4`\xcc\xa3_0\x98\xb4\x8fx\x96Q\xfb\xcc\xe4\
+\xb8\x88\x06\xcc`\xab\xc8\xfe\x05\xc0:Y$\xa2\xbc\xfe\
+,\xa2\xbc\xfe=\xa2\xb9\xe1\xe0\x1e2\xfdIDb6\
+\xa9\xb3\xd9m\x1fQ^o\x8eH@\xdf9%\x82R\
+\xfe\xb3\x12e\xbdt+\x97\x88\xc2\xf1\xda\xee\xba\xee\xda\
+\xd61\xed\xffU\xe2\xbe\xc4\x08\xa4\x13\x03U\x98\xd1\x1e\
+\x89k\x22R\xe7\x06\x00\x00\xe3\xaf#\xc48\xdaH\x0c\
+\x97\xa7'\xe6\x83\xf6\xad\xee\xac\x88FU\x07\xf0\x8c\x81\
+\xc0\x0a\xf0S\xd0\xc2\xf0\x13\xd3\xa1\xbb\xb1\xc4\xef%6\
+\x19\xef\xb3F\x84\x0a\xd2\x85$\xfa\x16\x9d\xd2\x7f\x97\xb8\
+_\xcf\xcd\xd9*\xd8_&f\xcf\x9d\x8d\x11j\x8d\x1f\
+\x89\xe2y\xdf\xd49k\x06K<\x0f\x175w\x083\
+K~\x1e\xd1\x80\x1e\x0aS(\xeb\xee\xcc\x1e\x13Qm\
+\xf5J\x94\xf7}oD\x1au\xd2\xfd\x82\xb2\x1f\xfc\x9b\
+`\xe0\xf8\xfc9-\xa2\x15\xec\xd3\x13#\x9a\xeb\x03\xc0\
+\xad\x818\x15\x90\xee\xf4*\x0f\xc0~\x98\x04\xbe\xa4\xcb\
+\x03p\x83\x0a\xb9\xb4<p\x19\x0a\xbeb\xec'\xf5\xb9\
+K\xfb\xb0\x99\x8f\x8c\x18i\xb4\x02\xe6Jx0\x85\x0b\
+\x93\xf3\x15\xf2\x90\xab\xab\x0aJ\xdb\x8f\xc8K\xb1\xf9\xdb\
+d\x18\xe9\x99]6t\x12g\x0f\xcc\xfe\x13\xb6\xa3\xd6\
+(\xe2\x1c\xe1\xdc\x83y\x88j\xbc\x00Ywf\xe5r\
+\xe0\xc2\x06\xc6\x19\x9f\x87\x02\x87\xce\xad\xceq\xe7U\xd8\
+\xf3\xa1\x11@AF~\x05#v4\x8aF>\x86\x1b\
+\x84\x01\x22\x0aQ\x18\x83\xcfV\xbe\xb6\x8c\xf2*F(\
+\xc4\x80\x98\xdd7\xe4\x1b\xe4i\xfd\xae\x11I\xdb\x88\x02\
+\x8c\xba\x84z\x80\xfdG\xfb\x13\xe7\xb4\xcf\xcd\x1fj&\
+\xfd\x11\xea\xfcR\xa70b!\xc0\xdd\x8d%\xf2^\xed\
+\xd7\xbe\xaf\xfc\x07S\x83\xeb\x83m\xb4\xf2p\xb4R<\
+j\xc7\x88#@\x04\x0c\x22\xd6\x05y\xdd\x195\x1ap\
+\x0a0\xc7\xef\x03, :\xc9h\x08\x0c\x1d5\xca<\
+\x82\x0b\xc3L\xcc-D==\xaa\xa5\xfd\xf6!\xb6u\
+:'\xbc>\xc8\xbf\xb9\xee4\x1a\xb1\xbd\xc6\xa5D\xcf\
+\xa35#\xc4\xf8\xe0\x1c\xb3He\xb6{\x7f\x5c*\xb0\
+Yg\xcc\xbc\xf3\xe74\x06\x00\x9e\x19\x85A\xfb\x03\xb1\
+i\xdc\x0fp9\xc3N\x11F\x0c\x0d`\xf2-\xf6}\
+\x80\x0f\x0ay\xeaM~\x9fF#\xda>0\x0b\x10\x8f\
+\xc7\xce\x1b1E>7\x8d-:\xf9<\x17\xd4\xa1<\
+\x97\x88\xf4\x92oR\xbfs\x1d\xa8\xaf\xf9\xfb\xdc']\
+\x979\x7f\x11\x90\x13\xa8\xf5P\x15\x03\xd1X7Qi\
+\xb0\xf7\xa1s\x0aB\x17o\xfb\x97\x87\xb9A\x14\xd8\x91\
+\xe0=!Q\x7f\x00\x14$2\xe8\xce\xfc2\xf5\x11o\
+T|F\x09\xe2qEM{\x8d\xd4\xf1\x8fm\xe5\x89\
+I\xe5\x7f\xb5Zj5\x00\x80\x1b\x01u\x92\x04\x10j\
+\x15\x7f\x8fY\xbd\xf1l\x0aT\x0c\xae\x0f\x9d\x7f\x10\x99\
+('ni\x88\xa4U\xcb\xf9\x9ePv\xa0\xae\xaf\x22\
+\xc4\x14\x11\x1af\xb6Th\xf4_\x8e(\x97\xe5]\xd3\
+C\xa6\x87\xa4\x05H\xc7\x92\x8e\xa9:\xf9\xb6\xe1c\x01\
+\xa9\x03gU\xdd'\x0e\xd4O#rP\x5c\xf8\xf9t\
+\xa6d\x93\x02Be\x8a:\xb3V\x14p\xb2_\xc2~\
+\xa5\x7ffD\xf2\x99\xc7\x1eHTb\xcf\x96S\xd0\xd0\
+\x11\x13\x90\xe0D\x12$P\x1b\xf1t\x97\x88\xf2\xfeg\
+E\xa4D\x90\xce\x04\x88'\x14\xaa\xd1,(\x94w(\
+Q\x93\xeb#\x92]\x1b\x858\xf7\xf1z!eB\x90\
+\xf9\x9e~\x00\xd14`\xe3\x04\xb1\x83\xd2\x8a\xca\xab\xc4\
+\x12\xffK\x14\xf31\xe9\xe0\xe0\xe72;\x0e%\x9d\x07\
+\x9e\xc2\x96uy\xa7\x90\xd65T\xe0\x0aP\x01X\x82\
+R9\x1e-0@\xb0VDy\xdd,\xa2\x89\x0b2\
++\xd5\xaf\x1cQ\xc5\xc8\xaa\xca\xf1\xecw\x11\xe5\xf7W\
+\x8b(\xbf\xde0\xa2\xbcn\x1c\x91\x00\x05\x0a\xe0\x9fG\
+4-\x0c\xcf^Sh3\xd3JGE3xt\xb6\
+\x0d\x18\xf1\x9cJT\xc6\x149:\xfd \xd0\xa2\x90\xfb\
+y`\xf6\x0c\x8a\x9a\x00\x1c\x12D\x1f8\xd8\xe5\x89\xb2\
+\xef\x04\x12_j\x80\x06:\x08$\x5chw\xa8@\xa1\
+3a\xd1$Q\x01\xcdH\xd1\x81\xebN2\x07\x1d\xbf\
+\x16\xd0\xc3\x01\x83\xa6\x82\x91]\xd6'L\x10\x00)\xec\
+#\x19\x19@\x5c\x0d\xb11\x90v\xde\x8fN\x09\xa2\x9c\
+Jx&\x1f\x8aH\xef/\xdf\xf0\x92\xae\x0fj\xd5\xb7\
+\xab\xb3+\xcd\x0dS_I\x94\x00\x1e@\x96\xb9\xaf\x88\
+\x1eA\xadW'\x9bN\x17\x89\x99\xa9\xf5J\x80\xba[\
+\x22\x9ax\x0d\x09\xbd\x018\xae\x07\x1dF\x12\x0e\x12\x1c\
+\x0e8\x9e\x17\x18h\xdcGl\xc3dg\xc8\xec\xfcD\
+\xaa^\x14\x0a\xd6\x96`\xbd\xf0|\xc2T\xe1\xfdHL\
+\xd5\xe9u\xa2p\xd4\xb0\xbf\xf5[\xf6[\xf5[\xd5\x7f\
+\xff\xec\xf8\xf7<O0\x9b\x10W\x82\xb9\xd5\x1f\x1c\xa1\
+\x0e\xcd.\xed\xe7\xb2\x8f\x84\xf4[\x8c\xf0t\xbbM_\
+\xd9\x95u8}\xc1\xe4\xf9\xd3\x17\xa4\xd1\x14T\xcfI\
+\x00\xb8\xcf\xef\x8aH\x05\x01\x1d/\xce%\x98Uh]\
+\x88Z\xed\xce\x0bT\xee\xc3#Z\xc7\xd4TvF\x8a\
+\xb4\xce,\x8e\xc5\xa8\x01\x8c\x00T\xcc9G\xd1v\x11\
+\x00kq@\xdc\x11\xc4|\xe0\xfc\xf5(\x17.\x03\x02\
+\xce)\xa0\xbd_\xc0\xfca\xbf\x97]\xae\xc52\x19\x1d\
+\x80\x11\xa1\xfb\xdc\xad\x19Q^\xffX\xe2\xb6F\xf5G\
+\x14\xb0^\xb7\x93\x12\x80\xf6N\x01T\xecG\xea\xd8\xd6\
+s\xf8\xed\x89\xf9\xc2\xe7\x90=\x9d\xedI\x19m\x8a\xf7\
+=!\x89+\x1fS\x1d\xd8\x07`\xf0\x0f\x0d\xe0\xafT\
+\xf9\x0bF\xa2]\xe5\xfeL\x1f\x88\x10\xb3\xed\xc5md\
+\xc0\x1dd\x01Q\x88\x19VQ\xaa\xfd\xc5\xd0(\xcf\xdd\
+\xfc\xa9%NI@\xb3\x18\x86\xb5\x91\xb1\x9dF\xc7\x9e\
+\x96\x98I\x88\x8c}3\x22i\xd6\xc4\xf9\xb2\xa6:\xe1\
+\x1fI#\xa0:\x17a.\xe1\x1a\xe3Q\xb2\x13\x22\xda\
+\xf9n1;\x01 \xac\x03\x03\x0d\x12\xb1\x0cI\xc7*\
+\xea([\xca\xf9[#\x1a\xc0\x00\x03\xc8Z\x07\x1a\x91\
+\xe8>\x14\x91:\xfe\xda\xc7Q\xcf\xee^\x15Q\x99Z\
+5Q\xef\xf7\xe9\xf7\xed\xf7m\xe7r\x7fe\x84\xf6\x8b\
+\xcf5\xcd\x0d\xec@\xbbOG4\xe0\xca@\xd7A\xc3\
+\xe7\x9c=XJ\xf4\x07R\x01!\x86\x95\x19\x02P\xaa\
+\xd9_\xc8\x07\xb4\x8e<\xa3\x8e\xcd\xda\x9dj\xc05\x97\
+\xac\x0d\xea\xec<j\xf6\xa2\xe0\xe3\xeeb-&\xddO\
+\x9f{\xe4w\xe4\xbdt\xd4\x99]&\x8f\xa7\xb0\xc1\xff\
+\x5cL\x02\xc4\x1c+\xaf\xed\x8cTX\xb3o\xa35\x00\
+SI\xe2\x94.\xe0Q\xd1G\xf4N\x85\xaa\xed\xf6\x18\
+q8@v\xb2P\xa0\xc9\x8b\xc9K\x05\xb8\xcen\x18\
+\xd9R\xab G\x14\x90\x06\x09y\xdc\xecE\x11\x89\xb1\
++\xa0\xd7\xf6\xb5\xec\x97\xec\xab\xd8\xe6\xcae\xc7\x00\x85\
+\x1a\x85\x88\xbb\x9a\xb17.\x8c\xd1B\xa2\x13\xcd\xc8\xab\
+\x80[\xe7M\xcc\xb2\xd3\x00%\x0f\x82\xf1\x86v\x10y\
+(?\x87\xbc\x09\xdbqFS5\x1af\xf7\x00\x98-\
+\x00@0\x80\x00\xd2\xe9,\xcb&\xd0\xfb\xefXD\x8f\
+z\x02-\x05\x1au\x02\x90\xddX\xc4}\x86Q T\
+\xebu\xde \xba9\xdbG\xa3\x154 \xb4N\xbc\x0e\
+a`\xe2F\xa0\x86\x8dG\x1c\xb0\xbb\x83\x11\x0ae\x9f\
+\x11B\x00\x01\xb4\xc8\xd0\x90\xf8\x5cD\xea\xc0\xa3Q\xf1\
+\x9d\x88\x04\x00\xd0\x00\xe6\x95\x06\x13\xf7\x81\xfbG>\xca\
+:\xe5\xb9\x01`\x17\xf0`\x80\x88z\x93\xfc\x83z\x14\
+\x0d\x04~\x1e\xeb\x86\xdf\x87\x09\xac\x91:\xaf/\xea=\
+\x98\x1a\xfc}\x80\x1d\xe5Cs\xffe\x83\x97\xd4\x14\x99\
+\xf5\xaa\x1d\xf9g%\xf5n\x1e\xec\xe8\xc7?\xfea\x0a\
+c\x12&\x1eT\x10*\x18\x02\x00\x07\x14\xe4,t\x0a\
+$\x90\x0b\x16\x98\x10\x9e\xfay\xd6H\xcc\x00\x12v.\
+\x1c\xefK\xc1\x85h \xb3yt\x98\xd8\xc8X\xe8\xd9\
+wre%\x92\xab$\x00\x02D\x05&\x00\xdf\xeb?\
+\xd5\x00\xad!3\xa2\xf4\xf9 \x92\xc8\x13\x9d\xf3n\xc5\
+\x88vc\xcb\xf63\xf8\xdf2K\xc4\x8d\xa7\xb3p\xc6\
+\xd0Q\x98\xbdE\x94\xb6%\x86B\xbd\x7fE\xff\xf2\xfe\
+\xe5)qb#\x95\xda\xbcg\xdd\xb0\xa3\xd2\x81\x09\xf5\
+\xc7\x89%*\xd3\x88\x82!\x12\xc5,]\x88[ui\
+\x03\x84\x12\x0c\xf3C\x9d\x8e\xd9\x19\x11\xe5s\xfd(\x22\
+\xf9\xf9B\xa1\xd2\xf5e\xd6\xcf\x08#\xaa\xd4\x14\x8eJ\
+\xd0\x10\xd3\xb1\x1a0\x0f\xbc\xa8\xeb\xb5SsNJL\
+\x10u\xa3 \xc0O\x1e\x0a\x93\x122\x0a_:&F\
+\xc4\x16\xd2L\xde\xf74\xe3\xbf\x81f\xb0\xf5\xe0\xd2y\
+w\x82J\xe1\xc7\x8c\x16\x9d*%4^\xbf\x14Fl\
+\xcc\xac\x1b\xd6\x1b\xc8+\x1d:6N43x\xdev\
+\x12\xc0\xb0\xfa\x00x\xcd\xf6\x8aHH,\x949\xd4_\
+\xf1\x11\x97\xc8T\xff\xee\x88*\xbeS\xa9d\xb3\xeb\x06\
+\xa0\xa7\x7f]Dy]8\xa2\xd9\xb2@QE\xf5y\
+\xb6LDZ\x17\xa8\x8cr\xddQ\xcbG\x05\x1c\xaa\x16\
+\x94Y\xae\xb3\xd6\xbd\x01 (\xe4$D\xd8\xb4\x014\
+\x22>Jg\x80\xebIb9\x16/\xe5\xa0G\xfd\x9d\
+Y8\xfe\x9c\x8d\x90\xfb\xa1\xe7\x0c\xaa\xae\x01O:\xdc\
+t\xf6\xc5\xb8\xe1\x80p\xa7\x83\xfb/13:+V\
+\x81F4\x94\xcfA\x82\x8b\xb8'3\xc9\x9aU\xb6=\
+\x10\x94P:\xa4$d\x5c'\xee;\x1dn(\xce\x1c\
+D\x12\xcb\xe3:9\xc1a\xf6T\x9dZ\x00\x80\x92\xce\
+\x0c\xa2O\x07\xaacu\x9c\xb4;\x04|Y\xe5\xfd\x03\
+b>0\xa2AA\xf2\xc0\xb0\xef\xa1\xce\x0d\x92\x1e|\
+\xa8\xca\x88\xda\x7fx\xbe\xfb5#\xca\xeb\xfb#\x9aO\
+1\x9d\x5c\xd4\xa9=\x03\xc9\x8c\x1c\x09\x00@\x08\x94<\
+\x00\x1d:Z\x5c\x171\xa2\x0c\xdc\xfcl`\x00tG\
+G\x94_\xff!\x22u\xfc\xafU!Ib\xb8JD\
+\x02\x16\x98\xe1F\x8d~\x8d\xe1\xe0\xf4,\xa1\xee\xbfE\
+\x9c\x9e\xa5\x8e\xe2\xd7K\xa1\xff\xf5\xe4\xa7\x0e\xe5W#\
+ \xb3c\x22\xd2,\xa6\x00\xa0\xaa\xba\xbeb\x9a\x89\x85\
+2\xfe\x85\x05\xc7\x07u\xb8\xac\x89\xbfT\xdbT\xdd\x17\
+\xab\xd9\x7f\x7f\xa08\x9b\xe2\x89\xd8)\xcc0\xec\xf74\
+\xa2\x00``\xd7\x00\x01\xd8\x88\xc6\x1a@c\xb6\x1f`\
+\x0f\xa0J@\x9e\xcf\x03fa\x19\xe5z0\x22%z\
+\x00\xb2\x129s\x874:\x5c\x17'\xe0?\xca\xeaS\
+T\xc0_\xab\xefyw\x02\xc0\x10o\x85A\x17\xfc\x92\
+\x9f6-\x09:\xda\xb6\xbf\x14\xe3\x81\x82r\xfa\xa5\x88\
+\xa6\x9dc\xf7\x9d7\x94x}y\xdd\xab\xc4\xde\xe5\xcf\
+\xb7\x9an=\xdd\xba\x01\xc7\xfd\xf9\x11\xb5\x00\xae3\x9f\
+\xf5\x5c\xf8\xa4:c\xb7\xa7\xf3\x85\xd1\x8b\x85\x22\x12P\
+\xad}\x0d\xad\x9cz:\xfd8\xad/\xb9\x10\xd9\xcd!\
+\x0a\x8d3\x12u[\xcfIwA\x89rNL\xdf\x18\
+\xd1\xb4\x83\x9c\xe0\x05\x7f\xe7\xdd\x899\x80]\xdc\xf7\x22\
+\x12\xb0\x1d\xe7\xc4g\xca\xfb\xd4\xff\xca\xdf\x7fF\x84\x9e\
+\xa7\x0f&\xe0]#[\x15\x08:,1\xae\xe2>\x9d\
+\x9c4^B\xbc\xf3\xfd\x12\x9b}cr\xab\x09@\xfa\
+S\x09\x08\xf8\xcf\xd0\xa9f\xb4\x0e\xe6Q\xb55\x5c\xa2\
+\x9d\xdf\x8cH\xd1\x11\xf4H\x09\xe7\xadF\xdd\x0c\xb4\x0b\
+0\x040\x98~'\xa2\xbc^\x17\xd1\x80@\x03\xa2\x1a\
+\xf9B;h\xf2\xe7\x88\xday\xac\xfb\xe5\xe4]\x1a\xbd\
+\xbc\xb1\xfb]\xf7\xbbVHw\xb7E\xb4\xf59\xbb'\
+\x22\x89\xb9\xe9~\x97\xdd{\x00.&:\xf7\xafR\x01\
+!\x80\x12&\x8a\x0bM\x15H\xce7\x04h\xf9\xfb\xc1\
+\x14\xc3}K\xaeE\x16O\x85\xda\x8b\xf8\xafT\xc8\xd9\
+\x0f\xec\xea\xc2\x08\x10y3\xaf<\xd7c\xbb4\xfe\x83\
+\x91\xc59\xca\xf9\x0e\xb3%\xe0\xad\xa7\xa7\xc2\x06\x11\xd0\
+M\xc5\x188E\xf7\x9bs\x1eM\x16\x80v\xce\x13\x1a\
+\x5c\x9f\x18\x1aL\xb6\x85U\xa3\xc3b\x8cO\x8e\x90\x1b\
+\xc6v\x8dyg\xa6\x82\x80\xf1\xd9.\x11i\xc4\x8d\x99\
+m\x01\xb8\x1e\xfd\xc3\xed\x01\xcd(\x0aX\x89\xc72\x82\
+2[6\x221\xfa\x18Q\x12\xc3\x17\x11P^-\xea\
+\x0a\xa0\xfd\x88\x91\xf81\xdf;\x06\xb0\xa7\x899\xccL\
+=\xf5\x00ZXt\x80\x01H\xc5\x1cp]F]\xc3\
+\xbe\x22\xa6\x97m\x9b\xd1\x90 \xef\xe4\xfa\xe0\xb6\x00\x80\
+\xc4h\x08\xe2\xc94h\x10uF\xe3\x81\x0e<\xc0\x03\
+\xdf\x8b\x11F\x01\xd5v\x15\x10`\x0b\xb3\xcdy3u\
+\xe0\xd6Z?\x8c\x16|e`\x0c:\xefV}\xe5\xd9\
+w\xb4\x82\x10\xd7#/\xa4^c]S\xe7\x02`P\
+ \xc3\xc8b\x84W\xf9\xa3\x9f7F\xb5r\xa3\xfb\xf6\
+$\xa6\x09\xc3\x97\x02\x9d\x9fG\x1e\x0c\xf0@\x83\x82\xcf\
+\xc1}\x84!\x00\x90\x070\xa3\x11f\x03\xfb\xfc|\x00\
+\x00\x98\x8b\xd4\xdfh\x1f1\x92se\xc4\xc3\x8c\xba\xf3\
+\xbc\x09\xb0\x983U\x93\x1b\x99\xed\xeb\x1e\x97\x0a}\xc4\
+\x8c\xa2\x1c\xdb\xa4m(.\xd0\xa2<<\xa4\xf9\xd1\xd7\
+\x89\x96\xdf\xaa Z:Q\x1f\x94\xd8\xd4\xdb\xbdx\xa2\
+\x86\x8c\xd4\x9c\x11\x1d\xf2\xe7\xda\xbc\xcaD\xb4\xcf\xc3\x17\
+\x8a\xcb\xb9X*\xd4y\x1f~\xcd\xec\x07\xff\x0e\x04\x0d\
+D-\x03\x00+&*p\x5c\xc8\xd5\xd2\x05\x03\xa1\xa5\
+\x90#A\x8c\xff\xf7i\xa3\x8c\xb2\xf1O\xda\xb8\xfb\x96\
+\xb8\x1a\x81\xddO3\xc8|\xfe\xb1\x0d\x98\x90\xcf\xfe\x8f\
+\x11\x8d\xba\xd2_\x11\x916\x02\x1d$P\xad=\xf3\x0e\
+\x22\x86\x0f-\xd4mQ\x12)\x5c,\xfa\x87\x8a,\xd4\
+\xb2oG\xa4\x07\x99\x0d\x12\x91&\x16.\x89\x9ef\x1c\
+An\xfb\xb5\xfa\xb5\xfb\xb5\x9b*i\xf7\xc4\x88\xf2\xfb\
+_\x1d\x0aJ\xd4\x98\xe9\xc4z\xd6]\x1b\xaf\x13.\xd9\
+\xa6\xd86\xeb\x7f#\x12`\x82m!\x8c\x05\xdd\x0e\xd4\
+\xc7\x8d\xd8#\xda\xc7\xcc\x9a\x90=o\xb0\x88f\x9c \
+\xa4\xfc\xe3\xa2t!\x1e\xc5l-\x089\x07$\xa2\x5c\
+\x88\xa5 \xe2\xc1\xc6\xc3\x03\xcaF\xc2\xac\x10\xcf\x9b\x90\
+]\xcf<iF\x90\x8e\xa1]\x08@\x80\x01\x16\xee\x17\
+\xd0\xc6\x86\x02p\xc4\xf3\x89\xfd\x1e\xc0\x8aD1Kz\
+v\xf4\xe4\xe8&R\x83\x86C\xff\xb2\x88\xf6\x5cxV\
+\x0e1\x16f\xe9@\xe2\xf5\xfb\xb6\x97\x832\xa5u\xe0\
+\x19'F~\xb0\xf9b\x86\x10-\x00Q\xe7f\xf7F\
+\xa4D\x05\x11!\xa8\x84\xdcX:\x22\xfc\xf9\xffD\xb4\
+\x04\x19`irxD+\xa8\x11g\xb2=\x8d:\xf1\
+t\x82\x0d\xb8\x8c\x5c@\xfc}Q!\xa7\xc3.\xfbI\
+\xdb\xd6\x91(\x81\xf0\xeb\xa0\x83\xc9AgbrMD\
+\x02\x08\xd87)T\x19\x9e\xa4\xe0\x85\xca.\x8a\xbc\x99\
+\x14\xa8\xd0\xa3v,j\xa55E\xc4\x90\x98\xad\x1a\x91\
+\xa8\xde\xdc71\x87``\xcc\xf6\x1e\x00%w\x86\xa0\
+\x22\xc2|a]\xbd^\xe2W\x14\xba\xb2]3\x05\x19\
+\x9f\xac=\x16\xec\x1e\x09\xbdE\xd8\x00\xe4\xe84i\x7f\
+f\x1d:\xe1\xd82\xa2\x15\xf2\xf3gE$\x910\x00\
+ \xec\x03_\x1b\x91\xecv\xd0\xc0 !V\x87\x10\x00\
+\x04\xa6\x92g\xfb`\xd4h\x84e\xc1\xdbe#w\xaf\
+\x9eo4\x1b\x10W\xba/\x22u&\xa0z>]\x9a\
+\x03\xec//U\xc7\xf99\x83\xd8\xea\xe4\x0b\x93\xd3\xab\
+J8\xb6\xac?\x8aH#P1\x83~{\xea\xc0\x07\
+<p\xba:\xc5\x8751\xab\xfe\x97\x11iDL\x09\
+/\x07\xfe\xf4\xae\x88\xa6U\xd1\xbf=\x22\xa9\xce\x7f:\
+\xa2\xadg\x00j\x9f\x0f\xa8\xa3k?\xf6\xf7\xa7\xe0P\
+a\xe5\xc2\x02W\x10uH\xdc\xd9S\x02d\xfbS\x12\
+\x22F\xa9TP\x1a\x18[\xb2\xaa\xe24\xb5s5\x10\
+*P\xb1D\xb2;\x8b\xf2\xf1#\xc962\x12\xee\xc5\
+ZBW\xf3\x91g\xa7D4\xf8%\x8b7\x1b\xda\xe9\
+9\x11\xe5\xf5\xd1%\x16i\x9d\xf5\xb9\xcd#\xca\xef\xbf\
+\xa4D\xb9o\xd3\x1fGTw\x9d\x12\xadP\x9b\xff\xf2\
+\xfc\x97\xe6\xbfTG\x0c\xaao}\x15Y{\x92\xc4\xe4\
+\xeei\xc0\xa6\xc5\x0a9g\xf4\x1c\xf5{E$\xbb\xdb\
+Q\xbeU\x01\xb1\xfd\x93\x86\x90\xce\xdb\x0a\x04\x86K\xd0\
+R%\x96l\xe2yu\x04\xae\x14\xfc\xdd\x03%\x1e\xd4\
+>\xb2ks]2\xd3\x05m\x02|\xabu\x0euk\
+\x97X\xa71q\xc2,mV>\xcf\xfc\x96%\xb6J\
+b}/\x8bh6\x96\xb3-J<S\x14\xda\xbf\xb7\
+\xc2\xa2\xda\x0d\xbe\xa5\x9d\x83\xb3\x15J\xac\xd8\xec\xf2\xaa\
+\xc8\xdco\x12\xd0\xbczD\x9b\xbd\xf7h\x93l{}\
+\xee\xbf.\xa2\x89I\x9a\xa9\xc8h\x9a\x1a!\xdd\x9f\x22\
+Z\xde2\xdd3\x22i\x0b\xb0n^\x1a\x91\x98v\x14\
+\x5c\x8c,0zy@\xb7\x7f\xb7\x7f\x13\xcdB\xeb\x06\
+\x95\x7f\xf2\xbc\xfe\x9e\x12\xf7&qQ1\xf4\xdc\x11\x94\
+\xfa<\xcf\xdf\xe4\x88\xb2\xff\x1cQ\x81\xe07\xd5\xbck\
+-\x8dH\xe0:B>\xca\xe8\x18@!T~\x98\x8e\
+hP\xc4\xfe\xf9\xa4\xd6\x91\xae\x1d\xd6\xb7\xe9\xfc:,\
+5\xc6x\xa5\xe0\xd4~\x8ch\xb3\xf3p\x0a\x14\x98\x95\
+\x14\xfc\xe4\x7fq\x8a\x9c\x9b>\x17\x85\xe6\x18`\x8f\xec\
+\xe8\xe6\x9a\xcf\x0c\xa2r\x88J\xaaC\xea\x02R\xc0\x9e\
+\x0b\xd86\xcb?4p\xa4%d\xc6\xaaF\xe7\xea:\
+\xdc\xa2\xae\x83*\xf6X\x15\xb8\xd6M\xf91\x057\xf6\
+\xa0\xd2\xd6\xa1\xf3K#\x051Z\xef\x1bP\xfb\xe9\x88\
+\xd3I\xdf1\x22=\x970\x90\x01\x82cde\xa1\xf6\
+\xfbt\xba\xd1\x18\xf1\xe8\xcc2\x12g=@LR\xf2\
+BF\x0c\xc3u\xe7\xb0\xb4\x1e6[\xb0i\xbd.\x8b\
+\xab^\xa2\x13M\xa3U\xdf\xcbv\xbb\x14\xdc\x02@\x9d\
+\x0f\x92\xc7\x03\x10 \xbeM\xfe\xc8\x88\x06y\xa3F[\
+L\xe1\x87q)\x86\xa3\xef7\x055\xa2\x92\x8ctH\
+\xbc\xda\xe7\x22\x80\xb6F\xb4\x9c\xcfR\xd0\x92G\xd1\xb0\
+e\xf4\x00M\x0a:\xdd\x8c\xa0\xa8\x8eq\x03\x0a\x91=\
+=\xff\xce\xa3\xc9\xd7i\x04\x01d\x8dEg\x19\xc9\xe0\
+s\xd1\xb8&1\xe3s\xd2\x88\xe1\x95\x863\xeb\x17\xd7\
+\x0bF*\x10U\xe4y\xa2~D\x13\x82<\x02\xa6\x13\
+\x7f\xce\xf7\x12\xb3\xd8\xa3\x22\x00\x8e\xfc=\xf2\x22\x9e\x1b\
+\xbe\x1f\x7f\x0es\x12\xa6?@\x83G\x006\x18\xa8C\
+\x88\xf4y\x96\x95\x0e$\x07U\x94\xcbk6D\xd6\x0b\
+\x89/N\xa1\xcd\x8dd#\x80\xfa\xf0\xa8\x08Qb_\
+\x90\x0af\xd9\x08z\xd4\x00\xc4b\x5c\xa8g\x11\xc05\
+\x92\xaa?_\x8c\x8e?\x05<\xda\x00Y\x04b\xdd\xf4\
+k\x18\x040\x0c\x22\x11Z9\xd9\x11\xe6\x91\x80\x95\x9b\
+\xd8\xe0CT\x1e)P\x00\x1e\xb8\xd1P\xd1YX\xfc\
+\x5c!\xde\x93\xad\xb4`\xd5\x11\xac\x8fwP\x83\x9f\x17\
+\xd1\x90\xac\xfeG\xfd\x8f\xfbHH\xbe\x17\xd1D\xdd\xfa\
+\x17E\x94_\xbfs\x98\xf1\xefv\x89h3\x91\x9e\xf1\
+R\x22\x8c8\x87\xa9:\xeah\xb2\xc1\xfaz\xf3\xc0\x03\
+L\xa8\xd3\xc2\xac\xba\xa9\xb20\x1e\xc4\x14\xe8/\x8a(\
+\xbf^3\xa2v~\xaa\x9f-\x89h\xf7\x9an\x9fn\
+\x9f\xba.\x06\x04q\x15%\x88K)\x81\xc3\xc7R\xf6\
++\xfd\x9b\x22\xca\xbf;6\x22QK\xd5\xc1\xe8?\x1e\
+Q\xfe\xddZ\x11-\x11\x98\x5c\x1a\xa1Df\xcb\x9aP\
+\x0f\xa2;\xda\x10,\x82\xa3\x990(]\xa6\x82\x22\xb6\
+\xc4\xc6v\x8b\x0eL6j\x1e,\xa8C\x02L@T\
+\xf9sSq(\xe8\xa0\xfa\xf0\xa0\x02(@\x99c=\
+1KJ\xe1\xc4\xcc\xdc}:\xa0\x96\x1e1dx\x1f\
+\xd6\x1f@\x12\x00\x85\x98\x06\x06F\xb6\x8fHv40\
+9\xd0z\x00)\xe6\xf9\xe7?\x0e\x10\x10|\xa8\x8a\x1a\
+]A|\xc9j\xb8h=\xf0\xdc\xd3\xd9\xa7P\xd3\xdf\
+\xb7\xaa6\x80\x12*\xe5\x1c\x1c\x1c\x04\x14\xe4\xf8\xe0B\
+\x85g\xc3c\xa3\xc3N\x8f\x9f\xc7\xfbhTa\xac\xa1\
+\xe0\xfb\xaa\xfb\x89\xba\xb8\xaf+\xb3\x83\x88\x14)A\x85\
+\x1ag\xbb+\x80\x22\xa8\xf5P~a\x08\xd1\xe9\x85\xa9\
+2\xf6\xaf\xa5\xc3)\xaa\x1e\x8c\x01\xd6\xb77nf\xf2\
+a\x5c@5\x13P\xd4}'\x22u\xd6\xde\x17\x91\x0a\
+o\xf9\xce\xe3\xdeQ\xca\xce\xe1s/=\x1cd\xd8\xd4\
+\x99\x8aO\x22\xfb\x0bu\xe0\xb9\xff\xec\xb3P\x9ca<\
+0\xab\xad\xeb1\xddq\xfa\xe2\xe9\x8e51Z\xbd&\
+F\xf2\xed\xc6v\x10\xd9(\xc4%m\xd7\xc79\x03\x15\
+\x9f\xd1\x0f:Gb\x00\xb831\x12\xa9E\xac\xd4\xa3\
+H0=\xe8\x14!V\x06\xf0x\xca\xc0@\xf2,=\
+\x05\x88|\xcd\xbboG\xa4\xfb\xf6sQ\xa2\xd7\x18\x0a\
+\x99\x05\xdf\x18f4\xc3e=f\xf3\xadBN'\x93\
+\x99M%p\x8c\x8aU\xf1\xc1\x9b\xeayqq\x15\x13\
+\xbdx\x98\xf9DL\xc8\xd4Kux\xfb\xf7F4\x11\
+\xb8~\xad\x88\xf2\xfa\xd2\x88r\xa0\x1f\x18!M\x95\x83\
+\x93\xf6\x81\x18\x16\x9eu\x95\xa8\xa7]ip\xcf\xa1\xb3\
+/\xc6\x13\xb3\x97u&zK\x01G\xdb7f\x8eG\
+\xdfpO\xa0#\x07#\x80}\x94\xce\x9c\x80\x02\xbb\x13\
+\x84\xa8\xda2:\x7fWM\x1a\x06\xa8\xfc\xefWb_\
+%\xe6\xdfPB\xf7\xf7\xd4A\x85\x11\x02\x10\x0c\xb3h\
+R{\xaf\x0b\xa6\x17D\x94\xeb\xf2\x9a\x88v\x1f\xb1\x8d\
+\x9d[\xb8D\xf9\x5cs?\x89\xa8\xb6v\xa7N\x83)\
+\xf0\xd3\x88\xd6\xe9\x83\xca\x8a\xb6\x86;?zn\x01\x0c\
+\xea\x88\xcc\xdfD\xb5\x7ft\x15y-!&\xc3]i\
+\x94\x82}Z\xeb\xc4\xd4\xd4\x18\xa19[\x1d\xa5\xbb\xda\
+\xba\xa9\x1d\xf6r=\xbbC\x22\xcakL\xf8\x85k\xc1\
+\x9b#t\x9d^[54\x06j\xf9\xe5\xf2\x09\x7f\xb9\
+F5\xa0\x1a\x9f4\x8c\x82\x00\x8c\xf1\xf9\xeal\xfe:\
+\xed{2B\xd2=7\x221T^Yb\xb7\xa6\xfd\
+S\xc5\xea\xde\x91\x80&\x9d\xe3\xf3\xdf\x8eH\x1dQ1\
+\xa7\x18\xed\x839\xe2\x06\x82\x00\x15\xa8\xe0\x88\x1b\x1a8\
+d\xd4\x0b\x11\xdeG\x0fj\xff\xb6\xcd\x13\x80\x14e{\
+\x14\xee\xd3\xff\x8bH\x8c1\x00U\xec\x1f\x05lP\x10\
+\xc3\x9c\x9b=\x22\xa2\x89\xdf\xf5O\x8d\xa8.2\xf7\x84\
+\x8b\x0c\xcc%\x03\xddt\xea\xc5\xecqg\xf9\x81\xca\x8d\
+j\xa2\xa3q\x0ao\xa6\xb3t\x92:\x8bc\x8d \xf6\
+\x17\xc4\xb5\x05X\x8d\xce\x22\xc4\x00\x00 \x00IDA\
+T\x98\xf1@\xe1\x01c6\x06\xb3\xf6j\xf6\xa9\xf5s\
+_\x96:\xd9P\xeb\xa1\xfcS\xc8\xc0x\xd3s\xdf\x7f\
+>\x22\xed\x8f\x14(\x14\xc6tV\xc9\xeb\xe39\xfcG\
+\x02d\x83\xf1\xf9\xcb\xba\xdf\xbc\xa7\x8a\x82~@\xcc,\
+\xae\x07\xb3\xe8\x88\xb6\xa1=\x22\xa0\xde6\x83h\x0fQ\
+wP\xd8\xd3\x01\xa5\xc0\x87\xe1y\xa8\x0a\xcaSj\xb4\
+\xbc\x05*6\xfb\x1e\x851\x0c\x10\x98\x0a\xe45\xe4\xed\
+td\xe9,\xd3Y=Rb\xcb\xdf\x97\xc8\x1ey\x1b\
+\xa2\xbe\xb1\xae\x16\x95\xad\xe8\xa9I\xcc\x17\x06\x95\xb4\xa1\
+fK\x8b\x81G\xe7\x96\xc6\x06\xdaE\x8c\x86l\x1b\x91\
+\xc4\x0ea0\xc0\x88\xbc\xb2\x9c\x22W\xa6Q<}\x7f\
+\xbb\x92P\xd0\x0b\xa013\x8e\xe7\x8e\x06\x0a\x9dz4\
+\x97XW\xcc\xa6#\xde\x87\xe8!\x94v\x1a\xc5P\xfb\
+\x11\xc9\xbc \xa2i\x5c\x98\xd1\x02c\x84\xf7\x1fS\xe8\
+\xa9\xa3\xb8.4\xbe\xc8\xa3\x18\xb5\xe0?\x1a`t\xd8\
+i\xe0P8\xa3\xf5\xc5\xf3\xc2\xbaW\xc1\xecF'\x8d\
+]\x0a\x7f\xf21F\x01\xe4\xd6b\xad\x07\xce1D\x1e\
+\xb9Nh$\xb0\x8e\xd0\x0a\x91\xf8\xa2\x7f>\x0c\x0a\xae\
++\x8ct\x80r\x98\xf4\xacw\x00A\xe5\xf3\x88\xecb\
+\xa7\xe9:\x0d\xc62u\x07\xa3\x92<\xc7<7\xe4I\
+\xfa9st\xe2M\xf9\xa3\xa0\xa7\xf0\x1e\x8b\xea\xf1`\
+\x92x\xd1i\x872\x8f\x98`\xdc\xd6\x7f\xea\x86?*\
+Q\x22\xb8\xe0\x14\xee\xf1\xf7\x17M\xef\xc7\x8dG\x95\x9f\
+\x8e\x0b\xd4\x7f\x12s>\x0f\xf6\x1aR\xbb5\x80@\x87\
+\x8d\xc2\x1b\xb7\x01\xdeO\xaf\x1e\x0d\x08\xc2\xc93\xd2\xcf\
+\xcf\xb6\x80\xf9s\x83\x90.\xf0f> D\x00\x03c\
+q\x08D\xd7\xa0\xce-*@`\x1d\x15(\xf8\xca?\
+3\xa2l\xc4'D4\xaa;\x9du\xdb\xd20S\x0a\
+\x05\xf9\x07\xc3\x0c\x1f\x88!\xaa\xd1\x16\x8dCdO\x9d\
+:k\x07@-\xd5\xac\xafg?\xe9\xfc\x83\xd4\x0ai\
+\x05\xa9G\x85\xd7\xb3W\x88\x0d^)\x91\x9fW\xea\xfd\
+\x995G}\x1a\xf1\xc0]g\xbb\x85\xaf\xf1\xecyC\
+\xa2\x18\x04\xd0\xa0\x80\x22\x22h\x1fMm\x84\x16\x1f\xd2\
+F\xc8\x83c\xbb?}\xae\x98\xd8\xab3{\xa8\xe43\
+\xa3{\xde\x00\x18t\xef\x8eh\xd4k6\xc2\x92\xde\xaf\
+\xda\xadZ\x0b\x9da\xa6h\xbd\x88\xa4\x96\xfeOmP\
+l|ldl\x80z\xb0\x8d\xa4S\xf0\x91 0\xa3\
+J\xe14\x16\xc7!A&!`\xa6J\xa3#\x16c\
+D\x85\xfcSJ\xd0A6\xd9p\xd8`\xa0zK\x0b\
+\x80\x0eL\x7fKD\xbb\xbe\xb3\xf5#\xd2\x0c\x1e@\x03\
+\xa2m\xcc\xc8i\xf6\xd0b:t\x08y\xbe\xd80y\
+\xceX\xf7\xa8\x1d\x8bR\xe5\x04F\x09\x13\xeb\xc3\x05?\
+\x856\x8c\x14\x12\x0df\x86\xa1\x84\xa93\x89\xea\xb0;\
+\xe4\xecC\x8c\xac \xf2\x08\x10\xc7\xf5\xa1\xa0\xe5\x00\x22\
+A\x10\xb5\x94\x84\xd3\x0c\x11\x80B\x0e(\xfc\xec\xf9s\
+4\x1c\xa0\xd4s0`\xe3\x86*=\x89\x1e\x88-\x85\
+-\xae\x0c\x1c\x14\xcc\xe4\xab\x83`\xf7\x02\xd4\xb4\xd5A\
+\xf3\x08\x03\x1dG\x0a9:\xb5P\xfc\x18\x01`=\x8e\
+\xc5.\xb5>\x99\xd9.\xe9I\xb53\xec\x0f\x8d(\xef\
+s\x99\x0a\x091\x08\xba\xa5#\x9a\x96\x80\x19\x05\xea\x0c\
+{4\x87\x0e\x83F\x18\xba\xe3\xbbOt\xc7\xd7\x84\xe1\
+\xd0\x9a0H\xbc\xcf\xbe\xc0\xea \x90@\xb0n\xe6\xbf\
+\x16\x91\x0eru(|\x1d\x01f\x98\xed\x86Z\x8e\xab\
+\x05b~\x8cV\xe0\x0a\xc0L\xa74\x0b\xbc\xcf\xc3\xe8\
+!q%A\xe1\xe7<7\xa2\xceN\x0f\xb6\x90<\xb7\
+\x00\xac\x9a\xd9\x9fl\xafBY\xd7\x071@D\xec\xfc\
+\xbehD\x1c'\x00Sv\x99f\xaa`\x97\x080\x84\
+\x18$\xf6\xbb\xdc?i\xc0\xf4\x87D\x94\x02\xe8{%\
+\xbe\xdbF6\xac\xa1\xc2\x0c5\xf6\x82\x12\xdd\xeb\xb6\x88\
+h\x9f\x07@\xc7\x89\xa5:\x0fhB\xa0:_\x13\xfa\
+\xf3Rb\x0f\xe0\xa6\x82\xcf\x05.\xa2\x8d\xb8\x07\xf0\xbc\
+\xc4>\x1bb\xae?\x19\xfc\xdek\xc2\xb5\x5c\xa3\xf4\xd7\
+s\xebkb\xbc\xfcOJx\xa4\xc9\x80\xbd\x1d\xaa\xe7\
+\xfd?J\xfcS\x1a5!\x06\xf8\xa9\x88\x92\xe8\xbc,\
+\xa2\x15\xfe\xd3\x8fDHd\xee(u\xd8\xcb\xba\x9e\xfe\
+)\xa2=\xc7\xf3\x1b\xcdo8\xbfa+\xac*\xecy\
+\x95\x12\xea\xb3\x92\xa8\x22\xc0$\x1d\xec\xe8X\x7f\xa7\x89\
+\x05\xd7\x8e\xfc\xbb\x9bo}\xa5v^\x9fD\xf8\x82\xb7\
+q\x90\xf6\x85gkT\xe5\x96\xc6\x0c\xe8~\x1eQ^\
+\x7f\xdd]\xd3\xfd\xba\x8a\xdd\xfe\xbb\xfb\xb7\xc4\x0aW\xae\
+\x00\xd7 b\x85\xdb\x06\x1d:DG\x11\x9be\xffz\
+\xbb4b\x96\x15\xf0\xa6\xce~\xfc\xeb\xa0^W\xe6\xd6\
+N\x8d\xb1\xe2\xf3X6\xa0\xb8\xd2\xb0o\xb9C\x8fm\
+-.\x00*d\xba\xedJl\x9flF\x05\xe0\xf5\x97\
+D\xa4\xefO\xe2\x0d\xb3\x87\xc2S\xc0T\xff\x8e\x88\x06\
+4L~\x1a\xd1f`)<\x18\x91\xf1zQ~f\
+\xd1S\x00\x01=\x0f\x16A\xc5.\xebU\x11\x0d\xb0\xed\
+\x0e-\xf9\xc3\xa1m_\xedO\x8fH#\x85\xccL\xc3\
+h\x0c\xb7\x8a/\xa6s\x1f\x86%\x1a-\x17\x0d\x80\x9f\
+\x996\x8c\xech\x1f3\x15\x19*=b\x96\x9c\xf7\xe4\
+\xb9\xcc\x9a\xd3\xc0QC\xcd\x9db\x80c\x1a\x02\x14\x14\
+\xb8\x9bH\xc4\xd5\xd4\xfb\xd1\xf9bq\xbb\xacZ\xbfD\
+\xd2\xe4\x02\x08^}\x00x\xabH\xea\x09\xa9s\xce\xcc\
+9\x9a\x11\xb2_4SH\xa3\xa2\x88\x10\xce^!M\
+\x01\x9d{%\xeb\x1d~\xcd\xe8\x19\xee-\xe4\xdbj\xac\
+8\xaf\x91\x08\x9e\xef\x1f\xc0\xb7D\xe5\x5c\xc8\x91\xbe#\
+:'\xca\xbbGe\x1f\x90f\x83\x1a\x1c\x93\xbf\x8b\x89\
+D\xfd\x00\x10E\xfe\xc4\xe84b\xa7\x88\x9ab\xab,\
+\xed\x0b\x8bY\x0a\xb0q\xfd\x00\xa0=\xa6js_\xb0\
+s\x06\xa0\xf8\xe9\x82\x9fT1\xc1\xc7W.[+8\
+7\x8fh\x05\xe2\xe4\xca\x88\xf2\xeb\xcfG$\x97\x00\x80\
+5\xea9\x00\x0b\xd6\x07\xbf\x06\x08\x81i\x09s\x83\xfc\
+\x81:\x11\xa6\x1c\xdaT\xe4\x1d\xe4\xb70\x08\xd0\x12a\
+\xe6^\xff\xce\x85*\xeb\x94|\x0b \x03F-\x80\x1d\
+\xdf\x93\x0e;\x0d6\xf2tF\xd3\xc63\xfa\xe4\x99h\
+\x0ad[\xf9\xe5S\xfe\xca+\xdf\x8f\xbc\x92\x91\x17\x18\
+\x04\x00\xab\x12-\x87\xe9\xe1\x06\x14\xfb0\x9f\x8bQ!\
+1\xdcm\xcb\xc7\xdf'/\x05\xd8\xc9ZsQ\x8f\xfd\
+3\x221@\xb8^0\x19\xa87Y'\xfc>\xfb \
+\x0c\x09\xad\xdb9\x7f0\x90>\xa8\x12\xccd\xc4\xb2^\
+F_piQ\xa3\x9f\xf3P\xca\xac;\xa0\x88\xf0\x91\
+pC\x85g\xa1\x89\xf2\xe7WF\x01($\xb8\xe0\xf9\
+\x06\xad\x926\x9c(3\xd6J\x1a\x05<( \x7f|\
+.\x1e$\x0a\xfaq\xe1Og\x8d\xc2\x07$\x10\xca+\
+\x0b\x17dh\xe4\xb3h\xc4\x86\xeb\xc5+7l\xdc)\
+>*\xa2Q\x84M1\xbaC7\x9c\xeb/\xc4\x0eq\
+(\xdf\x07\x12wD\xd4\x04\x5c\xcc\xb41O\xe8\xd8-\
+\xa1\x8e\xba:\xa7>\xf0\x10\x0d\xc1w\xfe1\x9a\xed>\
+T\x94PD\xa2\x04`@\xb5+ie\xddHJ\x99\
+6P\xbe\xb0!\xd9@\x1a\x0e\xd8\x821\xe3\xaf\xc2\xcc\
+v>B\xa0\xfb\xa3\x22\x12\xe2\xc5F\xae\xd9\xd0\xd9\x09\
+\xc3\xac,H\xf4\xf4\xbd\x11\x09\xd9\x123\x82\x03\xaa\xbf\
+:\x22}\xeeQ\xe1i\xed\x01:\x81\xa2n\xc3p\xb0\
+\xdf\xfb\xf2\xc3:1\xe5\x8f\x82\x86\xc4\xe0/*D\xd1\
+Z`f\x89\xc4\x9d\x99T\xee\x0f\xa3\x000\x01\x98u\
+d\x03d\xc3\x01\x08\xa0\x90!\x81\xc0\xaf\x96\xf5\xc1:\
+\x93\xf8\x947`(\xe1tD\xa1\xf6\xa9\x83`\x11\x13\
+\xdc\x1b\x00(\xa0\xf6\xa3n\x8e]\x1d\x07'\x1d\x19\x90\
+r\xc4\x80@Z)\xf4\xd9\x08Ip\xa0(j\xc3\xa5\
+S2\x9b\x8bh\x80I\xff\xd9\x88dC\x07`\xa6\x11\
+\x15S\xca\x7f/J\xe6\xab4\x1b\x1e\xc7\xf8c\x13\xa5\
+\x0dD\x5c\x1a\x14\xa6\x14\x03\xc0\xc0\x88`6\x8c\x03\x80\
+\xf5\x81M\x9c\xd4\xa6)(l\xcf\x87F\x09@##\
+!\x88\xb8\xd0\xd9A$G\x85\xb8\x7f\x9f\xfd\x04\xd5{\
+\x0a7\x9e\x1f\x90pD\x92\x00\x1a\xf8\xbczN\x5cH\
+i#\xb7-!\x07\x1c\xb6;\xcc\x00\x03(\x88\xc2\x87\
+\x0a\xb955X\x9f\x12#\x9b\xfdY\xe2I\xa8)\x0b\
+\x88\x04I\x9e\x5c?\xf9\xed\xe4\xb7M}\x1e`(\x06\
+\xa4\x020F\xc4\xd3\x1d\x8b`\xfe\xfc-i&\xbc\xae\
+$\x04\xaf\xab\x09\xce\x1b\xeb\x08\x01#\x10|o\x15\xda\
+\xdd\x99\x11\xe5\xb9\x7fFD\x13M%1\xeb7\x8bh\
+\x05\xbc\x9f_\xb9\x9eX\xb3\x81\x99E\x0eH\x98*\x8c\
+@i\x9dC\xe9gt\xc2\xcc&1plozg\
+\x7fW\x7fW\x15;\xab\xcc&\xd4\xd4\xbb\xe3\xbb\x13\xba\
+\x13\x9aZ?@\x96ER\xe9\xb0\xee\x1e\x90hZ\x8f\
+\x00#\x01\x1b<\x90:4\xea\xa0O/\x99^:\xbd\
+4\x8d`\xd0a\xa1\xc0AU_\x09\x87\xddR\xd8\x9f\
+\x18\x85\x89\xeb|\xa0\xd4\xeeoi\xcc\x1fD\xdf\x00\x14\
+\xad\x19\x82(b0\x0e\xbe!&\xd5%Z/w\x08\
+\x10zW+P\xba\xd7G$Jw\xec\x1bw\xb6\xf3\
+\xb4\xfe\xfe\xe7\x94\x1f,\x93\xf6;:u\x1a\x15\xac@\
+R\xb9\xee\xdd\xd3\x22\xf4\xfcm\xadQ\x97\xf2\xb9\xba\xd5\
+#\x92\xfd\x19\xd4N\x0a\x91\xe8s\x5c\x92\xd4\xb5\x83\xff\
+\xf3\x99\xa6\xfaNa\xda]Q\xa2\x9cSs\xcf\x8e(\
+\xd7y\xe1\x12\xd1\xf9\x7f{\x89Rxv\x97\xc7\xdf(\
+\xbf\xff\xb8\x88\xd4qb\xbf\x91\xc8c\x85\x15\x9f\x994\
+'\xfe\x15\xd1:s0b\xea\x88\xc7#\xdbs\xd7m\
+\x12!\x8d\x8c\x8f\xd5\xd9\xe8M\x83\xaa\xdf\xef\x16\xa1\x0e\
+\xe9\x99\xa2\x8a\x7f\xaai\x01\x98\xf2\xff\xfb\x88\xf2:)\
+\xd1\xb5\x99\xfd\xee\x9b\xdd\xb7B\x13\x00\xca\xbf5~^\
+\xaa\xd9\xde\xef\x08\x80!\xf1=]\x89\xfc:R\xe3\xd7\
+\x08a\xb5\x85\xbaj\xd8\x1fC\xc3`\xba\xdat\xb5\xee\
+\xd5m4\x05\xe6\x10T\xden\xdd\x884\xab\x1a#=\
+\x1f\x12\xd0\x18\x8c\x91\xff\x94x\xa01\x18*\xfe_\xd6\
+m\xbfm\x89\xe7j\xff\xbaSL\x9b\x7f%{\xd0\xc8\
+\x0a> \xa0b\x97\x06\xac\xf4\x9f\x89H\x8d\x18\xfe\xbe\
+\x9eo\xdbS\x8a\xc1\xca\xc8\x95\xff>\x22tz\xce\xb9\
+\xfe\x14\xd6\xb3\x95\x22Z\xa3\xc5\x9d_Fe\x04|\x01\
+\x80\x18\x98\x85Q(\xe0\x10\x86\x86\xdd\x1c\x040\xbb\x10\
+\xa6\xd0\x80:\x0cuZ\x1d`\x18\x9a\xee\x18\xa3q\x02\
+\xc3\x8ds\x17M\x22\xad?3\x0du\x0e\xc4\xdd\xa8#\
+Vo\x98\xbc\xbe\x02\xe4hy\xa1A\x02c/\xf8\x9d\
+\xa7\xaa\x10\xfbp\xda/\xc7\xd4oD\x90\xd1\x8e\x02\xb8\
+P\xden\x1b\xe0+fW\xd6\xfcO\xdf\x17\xcd\x97\xd9\
+\xda\x12#f\xbd\xbd^\x0c\x22\xbd_\xd9=\x07\xa6\x9a\
+\xce=\xbb.q\x9f\xb1\x85\xa4\x8e\x801\x89\xdb\xcf\xbe\
+5\xda>\x0c\xa3\x04{g\x8d\x86\x01\xc4X\x0d\x1e\x9b\
+D\x9d\xbf\x16}Cd\x17J\xbf4\xaa\x5c\xb0\x93\x17\
+\xd1\xa8\xd0\xbe>[2\x22i\xfc\x008s\xee\xc3\x94\
+\x86AM\x81H\x9e\xc1(\xa1\x80\x11S\xdb\x19\xe1Q\
+\xbd\x83\xf8\xac\x19\xbe\xec\xaf\xd4\x11\xe4\x9304\xc5l\
+q\xde\xc7\xcf\xa5\x9e\x00@\xa7@\xe4z\xd1\xb1F\xac\
+\x9c\x82\x9d\x91\x0e\xea#\xe5G\xb6\xd3\x83y\xc3h\x09\
+LE^\xb9\x8f\x14\xfe\x14\xae\xe4\xd1\x8cF\x09P0\
+s\x14qr\xe5\xa1fT\x8d:\xdd4\x14\xfd=Y\
+\xc7\x00\xf9\xd4O\xbc\x1fLp\xc4\xa1\x01\xc2\xf8\x1c\x00\
+\x0e\xac\x0f\x98\xa7\xe4u\xba\xfe\x16\x81\xc7v]n\x0e\
+\x06^\xb8^h.(or\x81\x8f\x1b\x09\x80\x06\xeb\
+\x9c\x06\x08\xf7\x15`\x06\x80\x08 \x01m\x1c\xf2|\xae\
+\x9b\x80\x03\xdb\x9d\x0a\x90\x9asG\x1dJ\x1a\xd4\x03n\
+\xc4}\x95|\xdc\x0a\xfaX^\xf7\xa7\xbfGB\x19\xdb\
+\xd3#R\xa1M\xa1LB\xce\xaf\x97\xaa\xa4\xef6{\
+M\xa7&:\x1a\xcfM\xd4\x1a\x0a\x0d\x10)u\xf0M\
+\x0d\x8de\xb5\x9en\xdc\xe3\x93{\x01\x00\x00\xaf\xd9~\
+i\xdd\xd6\x11w\x82\xcf\xe7\x05\x81\xe1\xe7rp\xf0`\
+1k(\x0a\x86\x11H\x0a4]?\xfb6\xb21\x08\
+\x101\xc5FH\xe6dg\xcd\xa2\x89\xf2\xe8\x1b\xa3\xd9\
+;'\x80\xd8<\x1c2\xcc\x1ez\xb6\x13U\xe37\xe9\
+\xfb\xac1t\xea\xfaS\x22\xcaA\xb4LD\x9bY,\
+\x9b\xe4@\xe5\x7f\xf50\xfbT\xd2\x84\xda\xd9\x9f\xfca\
+r\xeb$\x10\xb5\x0b\x87D\xc9j\x92\x17\xa9\xd3.j\
+.\x88\xb7\xa9\xe9\xd7\xeaA\xbeV\x08\x93\x0a\x14\xfb\xcf\
+*a\xae\xae\xc5\xc7'j4j\xcaB<\xdd\xd9D\
+UU\x1b\x06\x09\xaa\xedi\xb4A\xf6\x1f\x8dh\xb3\xe0\
+U4k\x85\x04\xb80\x83\xa8\x19u\x90\xe1\xfe-\x11\
+\xed\xfbM\x8f\x8b(\x7f\xbe\x9b\x18\x09\xccx\x81\xf4\x81\
+T\xfeL\x14WTE\x7f\xac\x8d\xff\x94\xe1\xe0\xf1\xc8\
+\xc3\xe7\xb4a\x1c.\xaa\x14\x1a\x05t\xa6wV\xe7e\
+\xc3\x01\x98)O\xde\xb0n\x10\xaf\x83\x91\xc1A\xaf\x04\
+\xd3\x22/\x14\xca\xcc\xdc\xc9\xae\xc7\x1b\x0c\x88\x1f\x1b\x0f\
+L\x0f\x00\x80>\x22u\x16x~\xe9\xe8spp\xa0\
+\xc2\x0c\xe19\xe1\xf9\x87\x8a\x0d\xb2:\xb6\x09\xe5yU\
+'\xd6\x00\x1d\xff\xd1\xd1\xa7\xc3\x0a\xa5\x9d\x0e'\x89\x13\
+\x098\x07\xa76Z\xec\x9e<\xdb\xcf\xf3\xcd\xc1\xcc~\
+\xc4\xf5\x00\xf9d\xe3\x1dQ\x04\xf1\xd9%1\xf4\xf5Q\
+a\xcd\xfa\xf4\xc1\xcd\xfb\x00\xe4\xb0_p\xa0\xf1\x0ar\
+=\x02zf7D\xa4\xe7\x1b$\x1d\xca'\xda'\x5c\
+?\xc4\x13\xb1\xcb\xa3\xe0\x83\xc2\x88\x9f;\x80)\x80!\
+\xf7\x0b\xdbF\x89]\xb9S\x04\xd3c\x0b\x15\xfc\x1c\xf8\
+\x00tt\x90\x16\x11%u\xa4]Q\x0e\xfb:\xb3\x88\
+x(\x9d9\x03\x117\x96]\xeb\xc6t_6,?\
+u\xc3\x04X\xa1N\x8f\xfd\x8e\xc4\x0bK\xd9\xf6\xae.\
+:\xb7+G\xa4\xfbEG\x08\xf1%\x008l\xe0\xd4\
+\xc9\xc7\xde\xcf\x1d\xc4\x91\x8d\xabg\x0aQ\xbfW\x01P\
+m\xbc\xe6R\xc1\xad\x99]\xef?\xea\x88\x18\xc0\x9a\x0c\
+\xcb\xb9\xbb\xac\x94\x8e\xa5\xb0\xec\xee\x8bH\x9dDiK\
+`{\x86\xa6I\xf7\xc1\x88\xd6\x91\xe9\xae*\xf1\xf3F\
+i\x9f\x9e\x15\xd1\x0a\x98\x90d\xab\xe2\x92gN\xce\xa8\
+\xa3J\xd1y\xbf#\xd9\x171#\xc8\xa8\x9dF\xa0\x5c\
+\xa8\x85H\xdc\xb7\xe4\xfb\xbeM\x1b\xed0\xc3ddW\
+f\x8d\x04\xd4\xf6u=\xa7\x9f(q|\x13\x1f\xabi\
+\xf4\x974K\xbe\xb6\xfc\xb6\x9f\x92(\xf2\xc2\x7f\xcd\x08\
+\xd4s\xee\xd9\xd0\x8b\xaa\xdezc`\x04,\xf0\xd9D\
+\xe9\x96\xcd\x94\x13hfC\x83P\xfe\x8a!\xa1\xa9\xe7\
+16l!v\x17\xee17\x97\xb8I\xcf\xc5\xf1\x9a\
+]\x8fY\xfcc\x22\x94\xc0\x86\xbd\xe1r%\x96\xaf\x9a\
+\x00\x8bN\xcby>\xb7eD\xf9\xfd\x17D\xb4\x84\xc9\
+\xf6\xbd\xec\xbf\x00\xa1\x8c\xec\xc0\x90\x01x\xc5\x16R\xa3\
+\x0ea\x8aYm1\xb5/1\x02C\x01f\xfb\xe1\xe0\
+q|Q\xc0\xeeW\xd5A\xfcp\xd3\x22\xa2\x01C\xa1\
+\xdf\x1d\xd4\x1d\xdc\x95\xc4?\x9e\x96x^\xdcQC\xf3\
+\x03 \xeb(i\xa9\xbcW\xbf\x0f\xe0\xac?GD\xb6\
+\xb6\x01\x0e\x91\xd8\xde5*xOl\x80\xc4l\xd1\x88\
+\xf2\xf3^Yb\xf7t\xdd\x83\xfa\xff\xa1V\x18\xd7\xf3\
+\xe8\x1a%\xaa\xb76{\xc3~\xbf\x12\xafm\xeb\xb0\x02\
+\x07Ae}vD\xa2\xd2\x06\xe31\xb4\x1en\x8f(\
+\xff\xee\xf0\x12\x87\xb5Nu\x7ffDy\xbd-\xa2\xcd\
+\x84\xdb\xcdC\xaa\xe6!mZ;\xf0h\xce\x088\xc2\
+\xbe\xd6\x8c\xac\xb1\xff:\xf6|a\xb3\xb8y+\x84g\
+\xa7D\xa4\xfc\x8e\xbc\x8f\x91\x85\x97D\xa4s\x09\xe6\x05\
+ZGZ7e5U\x0d\x8f\x80\xc7\xea\xfd\x02\x08\xa6\
+\x93\x07c\x92\xc2\x84\x82u\xa4Bo\x17\x0e\xee\xb3\x80\
+\x1f\xb4(8\xdf\xab\x88\xf4[\xea\xf9P5\xbd\xd0z\
+\xa0\xa3<;\x22By\xdd\x99:\xcf\xe7\x92M/y\
+\x01\x05\xeah4\x80\xd1\xcc~\xdfr\x7f\xcb>\xda\xaf\
+\x14Q^\xffo\x18]\xc5\xf6\xd0\x22\x8f;\x88\xe9\x05\
+U\x99N\xaa\xf2B\x8b\xe6i\x14\xcb\x9dv\x0a\x9c\x03\
+\x06&Q\xc9j\xeb\xe8\xabm\x1a\x11K#\x7f\xe1\x9c\
+\x160\x83\x1b\x89\x01\x1c1\xc2\x00l\xad\x05\x81\xad,\
+n\x1d0B\xaf\x8aHy\xd7\xde\x11I\x8c\x9b\x11$\
+\x9dO\xfd\xd6\x11\xadpd\x14\xc6n2\xfc\xa7\xf5\xe3\
+\x82\x8d\xcfO\xdeC\x83\x81}\x97\xbc\x09@\x06\x95\x7f\
+\xb4t`\xd8P\xf8\xc5\xfd^#\xb9@\x91g\xaa0\
+\xf6:\x17\x03\xd8\xa3\x184F\xd5\xf8\x9c\xac\x11\xd1f\
+\xf8=\x9a \xed*3\x0a`\xacR(S\x90R\x80\
+\xa3]\x81&\x00\xee\x0c42\x01\xe4\xc8{G\x0dX\
+\x8f\xb6\x90g\xc0DV#\xc8\xa3\xbdh|\xf0\xf7h\
+\xc4b\xffI\xdeE>C\xfe:\x16\xa3'\xef!\x8f\
+'\xbf\x22\xaf#_\xa2q\x0d#\x90\xc6:@\x1fy\
+\x08y!\xefK\x03\x8d\x86\x0e\x9dS\xde\x07\x00\x80\xfa\
+|D\xf9w\xe3\x0f\xc6\x00#?\xack\x1a\x85\xca\x0f\
+i\xac\xb0\x0e\xe7\x8cX0kA\xc2\xce\x81\x87\xc8\x9d\
+4\xaa\xdc\xe9f\x03\xe4\xa0_\xa8\xea\xa9\xb7N,\x89\
+0\x94%\x5c\x00(\xacI\x0c(\xa4\xb9\xf0t\xda\xb9\
+p\xa8V\x86\xca\xe9Zi\x96\x9f\x82\x1d*v\xb6\xef\
+[.\xd9\x02\xea\xd7\x951\xb0f\xea\x98\xb1\xc0\xa5}\
+P?\xf5ji!\xe8{L\x96\x8eH7\x9e\x1b\xcd\
+\xe7\xe5\xf3SP\xf1\xfb\xdcH:\x15\x5c\x17fp\xe8\
+\x0c\xd3\x01\x97\xdd\x9a\x13O\xa8\xd3P\x99(\xbc\xe9\x88\
+C\xb5c\x06^\x85\x03\xb3p\xa8O\xdbW\xf4\xab\xc3\
+\x88@\xf0\xf0\xeb\x0d\x13E\xb9\xbb(\xa2\xa9\xf2\x1b\x11\
+\x95\xad\x97)b*\xdc\xfa\xdfE4\x15\xf2\xb2\x0d\x0c\
+\x0b\x0a\xb5[u\x82gk\xcd\xd6\x9ee\xdb\xc8\xd3\x84\
+\x18j\x01\xd3\xb9\x9f\xbd9\x22\xa9D?c8\xc0\xfb\
+/F\xb4\x02\xab;?\xa2\x15l\xfd\x96\x11\xa9\x90A\
+%6fr\xd7hv,0/\xba\xcd\x22\xca\xf9\xb6\
+~D\xbb\xae\x16\x95\x89\x03\xe97\xad\x83\xd6_\x1e!\
+\xea\xe2v\xa9\xf3\xcf\x83\xcb\x86&\x91\x99\xfe\xae\xfe\xce\
+\xfe\xce\xd6\xf9\xb3\x1a\xb4\xc42\xedS\xcd}G\x0d\x16\
+\x7f\xf3\x13\xb5\xb1C\xd9\xc5-\x81\x8e\x1av*\xac/\
+\xd6\x13#\x0ft\x16T\x98\xd2\x91*\xc7\xd0s\xfa\xe7\
+T&\xc7\xa0\xdeO\xe2\xc3\xa8\x00\xf6~\x9a\x15\xb7\xb8\
+\x0f\xcf)L\x18f\xf6\xc4\xa4@\xc4\xcdL\x1b\x98/\
+0y\xf89\xda\xc0L\xbdC\x94\x87D\x14\xe0H\x9a\
+\x04\xb6/dd\x80}\x89\x82\x5c\x94z?\x17\x88\xe8\
+q\xa0\xc8\x9e\xd2\x9f\x9f\xe7\x99\xd9-!\xeaN\x1c?\
+\x19\x91\x0e2\x90W\xc4\x894k\x08\x00\xe0\xd1\x03\x90\
+i\x12$6x~\x1e\xeb\x84\xfb\x04UR\x09\x05\x94\
+h\x17\xf2\xf8/\xb3\xef\x01L\x02\xc4r 0k\x0f\
+\x03\x8a\xce\x00\xfb\x83\x124\xbbzH4\xca#\x02\xf8\
+\xcf\x0a8\xb0\x0b\x81\x12AFz\xe8P`Se_\
+d\xad\x87R\x0e\xd4\x19\xdc\x98\x1c\xae\xb3\xc3'\xceN\
+\x9a\x9d\x94\xa8\xdc0s\x18\x1d\x01(!\x11>@\xd7\
+\xef\x1f\x02\x88\x11\xf9\xb9v\xb0o\xeb~\x10Q;\xba\
+\xc3\xbf\x17\x02>\xbfCDK\x8c\xbc..\x19\xd4\xfe\
+M\x99g\xdf\xe6\x1c\xe3z\xea\xe7xV\x1d\xa0\x89\xfb\
+\xce\xe8\x06\xb6L\xb8\x13\xe8>\xce\x16\x8bH\xc0\xda/\
+\x06\xc4\xbe\xceB\xbf3\xbd\x9f\xde\xc7\xd4\xd6\xaf\xc8w\
+\xfd\xcb%\x01\xf9rR\x1f\x8e\x0e^\x88\xb2-\xd6-\
+\xde-\x9eF8P\xaf\xff\xcb\xe4\xcf1\x8a\xc4\xba\xf5\
+~\xcd\xb9\x88O4\xeb\x80\xd9^\x01 \xdd\xc2%\x1e\
+\xd9D\xaf\x5c\xc8\xc4\xebgS\x01\x1a\xa7\xcam\xc9^\
+\x0fU\xf5?E$\xdf\xe7\x807\x0fO\xa3TQ~\
+\x04\x03\xe7\xcb%\xce\x16P\xf2\xb9d\x0b\x1cO\xd5'\
+\xb4O\xed)\xd1\xcf{\x1a\xd3\x84\x8e\xafg\xc8\xe5\xd2\
+P\x81\xda\x0d\x938\x12>\xd8%}\xaa\xd4\xd9/,\
+\xf8B\xa5\xb8\xde\x14\xd1\x0a\xd8\xe9\xfd\x11\xcd\xbd\xa3\x16\
+d\xdb\x88\xea\x7ft\xa2x\x87\x88\xe4\xeb\x9a\xe6\x04\x8c\
+\xb7\xc9o\x22Z!8\xfdkD\xeax\xc7s\xf4`\
+[_f\x8a\x09P\xa4#\xdb=\x18\x91\xf2\x03\x9ec\
+DF\xc3%a^\xeb\xee\xd6t=\x02V\xbf6\xd9\
+-j_E\x0c\xb0v\xba\xefMb\x5c\xccv2R\
+\xc4\xb9\xad}\xca\xfe\xf3{\x0e\x8c\x16\x18F\x9e-?\
+0B\xeb\xfd\x87\x0d D\xc3\xc0\xf9\x98\x80\xdf\xda\xe1\
+~W\xd2`\x89S\x7f\x9a\x18K?*\xf1C\xd9z\
+\xbdI\xa3E[\xa6\xf3R\xcf\x85\x01nF\xfbPw\
+\xa7\x83\x1b\x05\xdf5\xfa\xf3\x9f\xb5?\xb7\xcb\x09\xd7S\
+\xfb\x8b]1>\x1c\x91T\xf1\xc9\x83X'\x00\xab$\
+\xfe\xa3\x02\xd1\x22\x99\xd8\xe7\xe1\xaa\x01\xd3\x95\x82\x10\x97\
+\x07\x18\x02\xb8\x81\xc8u\xc3\xb3\xd8P\xc35\x1aR\xb2\
+\xbc\xaa^\xef\xbc8\xe0\xd0\xab\x9b\x9b\x8aG\xd78\x17\
+\xd8\xf7\xc7\xfe\xe0\xca/l\xcb\x8b[\x0c#\x9ck\x88\
+\x1a~\x81\x0a\xe88\xe77I~\xea\x00r\x12\xb1\xac\
+\x00\xf0\x1b\xda\xb9h\xe0\x1f\xe6(y\xb6\xf6\xb7\xfe\xd8\
+\x12\x1f\xa8\xaf\x1f\xec\x8f-\xaf\x8f\xec\x17\xea\x17\xaa\x85\
+x-\xecg\x0b\x8bI\xa1\xeb\xec:\x03&\x1e\xff\xd1\
+\xf0c\xdf\xc2N\x14\xcd\x82\xefi\x14\x01@\xfa\x1eu\
+B\x01Xb\x84\xe6\xdfiF\x1dw%4r`\x5c\
+\xf1\x5c\xc0\xacT\xc7\xdf#\xadb\x92\xb9`\xa5\xc3\x8c\
+\xdb\x0e\x22\xa5\xe3\xf3\x1d\x06,6\xdc\x02\xdc-n,\
+\x06*n[\x1eIC|S\x8d=\x03\xe30\x01\xb1\
+k\xe39\x93H\xa0\xc5\x7f\xb9\x1f\xaa\x83\x98\xe9w#\
+Q\xda\x5c\xb8\xb1\x90'\x87BMh\xd4\x18\xf8S~\
+e\xfbE\xd6\x1b\xf5\x0e\x05%\x0cZFgp\x8f9\
+i8\xf7=\xda\xc9\xa8*\xe7\xe0\xa8\xe3\xcfh\x97\x0b\
+l\x1a\x12\x00Y\xa7G$\xa6 \xf9\x13\xccH\xd67\
+\x8d\xb2q\xfe\x89\xd81\xee\x0dW\xab\xc0\xbeL3\xf1\
+\x5c_\xf2\x11\xf2[\x1aZ\xe4s\xfc\xc7\xfe=\x12\xcf\
+s\xe1\xcf\xaf\xf9w\x00\x0e\xca\x1b\x19\xf93\xe0\xc5\xf7\
+&\xdf\xe3\xfa\x982=\x1a-\xa7\xc16~\x05\x10\x80\
+\x190\x02:\x0c\x10\xd0\xc8T\xfe\x0d@\x0a\xb3j\xce\
+\x89\x14\xe2wq9\x11\xd7[$]`\x10\xc0 .\
+l\x94:\xa5c\xaa,\x7f?\xd2\xe5\xf5\xf5>\x0b\xa7\
+\x0b\xc4\x81\x81\xed _\xfc\x9fu\xdaz(\x90\xff\xaa\
+\x82zy\x15\x10\x0f\xeaF-\xfe0\x9d7\x1e\x046\
+t\xa9\xf9\xd7Y\xc2\x15\x928 \x1d<\x0a\xf8\xec\x0e\
+\xb0V\x02>\xd4\xc1\xb4( @\xc6\x98\x11\xc0\x82@\
+\xb4B\x9dz:\x06FZ\x00JXhWH\x04l\
+[Q\x86P\x13\x86\xea\xc5F\xa1\xcf\xd9\x9f\x1a\xd1\x12\
+j\xec3<{xh\x8df\x03'\xf1*\x176t\
+\xa2_&Q\xa7G\x0d~\xef\xb6%\xd3\x81\xd8\x1d\x13\
+\xd1\x12\x7f\xdb\xe7\xdd\x12\xd1\xec\xe3\xa0\x02\x95\xc7t\x98\
+)b\xd1\xe2K\xcb\xac\xb66T\xcf\x1e!\xa6\xc7\xcf\
+\xd5\x02\xb6\xe8$\x221\xeb\x0d\xb3\xe9\x9em\x15 A\
+ab* \x07\xb9\x80\x17\x8be\xa1\x9e\xab\xce\xfe\xf4\
+\x8f\x11\xa9\x83\xf8\x8f\x88\xf2>{F4\x95\xfa\xf97\
+\x97xK\x03lj\xe2\xbcp\xeb\xa8X\xb4K\xd4\xbc\
+\xfe\xdb\x11\xe5um\xb9\x1e\xd0\x01\x91\xdf7\x14\xe3\xe9\
+^\x11I%]*\xdd\xee\x94k\xc6\xd0\x1dX(`\
+B\xce] \x8b\xfa\x0fE\xd0\x80\x13\x9d'\x89\xdc\xf9\
+\xf3\xa2\xfd \x17\x04\xfb\x85C\xe5\x12\x85\xde\xff\xf1\xef\
+P\xd1g\x96I\x9a \xb5\x13sx:\x88\xa1xQ\
+X\xf1\x5c\x8a\xf2\xee\xc2G\xd7\xdb\x9a\x0d#\xaa\xac\xa9\
+\x8b0!\xd8\xa8\x10q\xa10\xe39dD\x87_\xa3\
+\xa1\xc1l!\x09\x06\x9dc\x90Q1\x8e,\xca\x85\x1a\
+7\xd7[\x07\x8f)\xe5t\x1e\xb9\xcel\xb0|\x7f(\
+\xb5hgd\xc6\xd4}i\x03g\x9f`\x7f\xe4\x95D\
+[j\xfc^\x17_/\xc7\xd7\xd7S\xa7\x91\x0d\x9f\x9f\
+\xcb\xaf\xf9\xf7\xa2t\x1b`\x02\xd8\x12\x85\xd2#\x0dP\
+\xa4E]\xec^\x1c\x91\x0at\x9e\x0fu\xac\xa1.{\
+_Q\xc2\x00Uu\xf2\x19\x89f\xfdK\x05\xca\xee\xa2\
+\xdc#v\xc8z\xe0\xfbS \x88\xb9S=!>\x94\
+D{\xd49\xed~,\x95|\x128\x89R!\xfa\xc5\
+z\xeb\x97\x8c(\xbf\xff\xc6\x88\xb6\x8fB\xb5\xa6\x93b\
+\x86\x91F[\xdc\xa1\xe5\xf7\xe5\x07\xee\x8e7\xc0\x8e\x00\
+!\xdb\xb8\x09Igd\x00\xed\x82\xfe\xc8\xfe\x88\xfe\x88\
+\x0a\x14\xd6\x0e~\xf7\x9b\xee\xba\xee75q\x1e:\xf4\
+!\xc6vyJ\xb44z\xd5_\x15Q\xf6\x9dM#\
+D%>\xbd\x89\xd4uGE\xa4Q.}\x8e\xee\xed\
+\x11i\xbf{\x87|\xe9\xf5\x9c2c\x8fH*\x85~\
+-\x8c>\x94\xec\xb3\xd4a\xb5\xe6\xc4\x0bJ\xec\xa0\xce\
+\xd3\xf9\x89\xf9\x02\xd0\xc0\x88E\x00\xca\xc7%\xc6\xc46\
+\x95\x0b\xd2:q\xcc\x9a\xc3\xb8\x8b\xe7\xfc\xb3i\xd4/\
+\xee\xf6+\xdb\x8c\xad)\xd7\x9c\xcb\x8c\xce\xc4\xe9\xb8\x9d\
+4\x02nO\xe2`Q\xce\x5c\xa0\xfbp\xb2\xce\xe3E\
+S!+\x1b\xcf:\xd3\xbfT\x1a\x19\x09\xb1\xb3\xc76\
+\xa0\xc83\xed\x1b\x0fn\x06\xecg\x8c\xbaT \xb2\x5c\
+\xe7\xe97K\x94u\xd8\xbd/\xa2\xbc\xee\xd6\xed\xda\xed\
+\xaa\x0e\xcby-\x81\xc3\xb5\xc7\x85n\x00 \x7f\x95&\
+\xcfS\xb4O\x5c\x9f\x98G\xec7J\x08\xfb\x8d\x22\xda\
+\x88\x12\x1d\xb7\xc9,\x221\xbf\xe6d\x17\xb6\xa7D>\
+\x19\xcd\xa3c\xca\xfew\xbeT\xde\x8f\x1b\xf6\x01\x9f\xfb\
+$\xea\xb2\xa5\xec\x9f\x1b\xd1\x0a\x99:*qE\xd2$\
+!?\x90\xc8p}\xca\xbf\x9b\xc4\x1c)\x90\x19\xd1\xa4\
+\x11\x14\xa7\xdbJI\xbc\x8f\x86\x0f\x85\x05\xfb\xb6\xb4h\
+\x00\xf4\xfb[K\xdc\x92D\x8e\x99%\xd6\xfa0\x10v\
+CD\x03&\x01D=j\xa1<\xc9\x00\x09\xe7-y\
+\x1c\xa3o\xa2\xc2vKF\xb4\xd17\xbb\xe1p])\
+\xbcE\x1d\xc6\xf6\xd4\x9dy\x8d\x86U\x11\xc8\xbbS\xa1\
+\x86F\x10\xa2\x9b\x1a=\xf0\xb9\xf6\xf3A\xcc\xadd9\
+\xf5|\xf4H\x01\x85\x0f\x85&\x94s\xed\xd7\x1e)@\
+\x03@\xda\x0f\xb3]#\xca\xeb\xb3J<S\xd4\xf8}\
+$\xf2\x1bb{O\x88H\x00z\x5c\x9d?\x8df\xea\
+oM\x8d\x9f\xcb\xca\xaa\xb8\xac\xde\xa7'T\xcd\xa0\x1b\
+K!X\xce\xe9\xfe\xb4\x88\xf2\xfa\xe6A\xac\xd9\xda)\
+\x9bK\xcb`e\xb9O0\xb2\xc0(\x0d\xcc<\xb9\xd9\
+\xd8\xd6\x18\xed\x0a(\xd50\x87i1R\xd8P/\xa8\
+\x80\xa1\x00b\x9f\xf49\xcc(+\x0d&\x00m\xa8\xfc\
+\x14\xdc\xe4\xabP\xdb\x11O\x83!\x06#\x00&\x06T\
+u\x0a?\x8d\xb2\xce\xe6\x07@\x8f}\xc8\xa3N\xfc9\
+\xaeF\x9c\xe3\x14\x9c\xd2Hq\xbe\xa5\x02\xdcZB\xe4\
+148\xa1\xf0\xd3@A\xeb\x0a\xad,^u\x8e\xc3\
+\xe44S\x89\x0e4#\x08\x1a\x0103\x8b\xba\x88z\
+E\xa3\x17\x93\xdb\x22Z~\xe8\xbc\x94\x917\x8d>\xd8\
+]B\x9aB\xde\x8f\x00\xb6\xe4^\xe6\xd13\x5c\x03p\
+-\xd2\xf3\xe6\xfb\xc6~\x81[\x01\xef\xc3z\xa0\xc1\xa1\
+<\xd7\x8cN\x18_hO\x08h\x01\x00\xa1\xe1\x85\xcb\
+\x9a\xdd\xc5\xc8\xafh\xc4\x8c\xb4\x01\xb8/\xd6\x1e\x18\xe7\
+\x87\xac_D(9\x07\x119\xc7\x9e\x8f\xba\x11 \x83\
+\xd7\xb1[\x01\xccf\x9eO\xf6\x05>\x1f\xf9\xe6X\xf3\
+\x80\xfc\x8b\x91P\xdc\xf7\xb8\xff\xaa\x97\xe7\xb8!\xb8\x01\
+\xd4\x0d\xee\x09*\xbcgz\xc3{\xf5\xe7\xb9S.Q\
+>?xAT}f\xb2\x0f\xa40\xe7A\x81I\x00\
+5\x15\xfb>:\x9a\xb1\xec\x99u\xb8G\x17\xf6\xefi\
+#@U\x95\x0b\xc7\x05`c\x07i\xa4\xd3\x0f\xb2\x04\
+ Agr\xac\x9a\xce\xab\x00\x00l\x95\xac=0\xfe\
+\xf7,H~>H\x0c7\x02d\x88\xc2\x08\x0a\x07\x9f\
+[6SP\x88\xdc\xa1\x02\x88a\x96S\x05\x93\x0b\x8d\
+\xb1F\x03\x85\x04\xbf\xffu!_;\x0cb'\xd5\xa7\
+\xf6\xbaD-\xd2\xe7\x9b\x1d\x16Q\xfe\xfc\xc1\x88$\x16\
+w\xea0:P\xd2\xc7afO\x949T\xa6\xcb&\
+6\xf8\xa2\x22>\xc8\x83\x83\x1f&#\x0f\xf2\xadwg\
+N\xa3\x0f\xee\xf0b/\x82\xcf\xbb\x0au\x8b|p=\
+\xf5\xc0c\x9f\xd8\xef\x1d\xd1\x0ejS\x8e\xa1H\xb31\
+\xe9\xd7\xd3\xcfG4\x8aa\xff\xa5\x88\x96\x88c+\x88\
+8\x9e)A\xdc'!\xdfu\x86\xf6\xe6$\x9a#\xfb\
+\xb1~\x93\x88r{w\x8a(\xbf>)\xa2^\xefJ\
+\xa9\xef\xae\x8eh\x94G\xcfZ\xd1\x99\xa4\xe0\x92\x8b\x03\
+\x9dEw @\xc2up\xf4\x17G\xb4\x11\x0foh\
+\x88r}%B\xe2C\x89B\xdc\xfd%\xa2\xa9\xae\xe3\
+\x0b\xcd\x01a\xd16\xadC\x80\x0d(\x9f\xdc76V\
+'t$R\x1c\xc8\xd8\xe41;\xc5\xec\x99\xc4w\xfe\
+K=\xf8\x9eD\xa9b=\xb3\xc1Q\x00 \xf6\xc6\x8c\
+\xf4\xce\x83\xbd\x9aU\xda\x8f\x1el\x0d\xddQf\x96\x9f\
+\x8d\x98\xd9{\x0a|\x10q\x01Z\xee\xf0BiD\xf4\
+\x06\xdbN\xc4\x09)\xac\xd4\xa1\xf4\xf3\x89+\x06L\x18\
+\xdc \x10%\xe4`\xe0?\xf6\x19:9\xbcR\x18o\
+3t*+\x0c\xf0\x8e6\xaa\xe2YK\x80\x06>/\
+\x00\x0e\xc0\xa7\xae\xaf)\xd9h\x82\xe8~\xd9\xf6Hj\
+\xc8\xa5h\x1f\xecj6\x1f(\xe4\x93\xd5\x87\x82\x03\xbb\
+\xc6\xfe\xcc\x81\x81\xd3w\x83]$\x85\xb2\x0b*\x0a\xa5\
+e\x05\xe4\x1c\xa9\x04\x8b\x04V3\xf7\x0b\xbe3P\xf4\
+\xf0\xf1\xadfn\x1fi\xd7\xcd\x00\xa5\xce\x19\xa8\xcf\xa5\
+<Ya\xb6B\x05\xbe\x06\xcd\x94W\x89*\x08\x90\x01\
+\xa5_\xf6\x81P\xa0q#\xe9\xbe\x1e\x91f\xb5\xa1P\
+r.h\x1d2C8\xf9ZD\x12ke\x14\x85\x0e\
+\x15\xe7\x06#,\x00J\xa2\xac\x02t\xce\xde\xa6\xd9\xda\
+ \x0e\xbf\xbf&@wG\x02\x04\x15\xbd\xda3\x95\xf3\
+\xe9\xc1\x0dJ\x94\xfb\xde?;\x22\x89\xef\x01|\xca\xef\
+x\xee_\x11\xe5\xdf\x9f\x14\xd1\x9e\xf7\xe9\xce\x11\xa9\xe3\
+\x04p\xc6L\xa8\x0a\x9f\xfe\xb2\x12\x97'{8\x89\xee\
+U8\xf8e\xa9\xd3\xa4\x11'\xab\x9c\x07\x8f\xeb\xc5\xda\
+\xa7\xefn6i\xb5\xd3\xffeQ\xf5\x7f\xa2\xeb\xf0h\
+%\x94['\x1fb1\xaa,\xc6\xc6yE\xa7\x8eD\
+\x93B\x10\xc6\x13\xa30\xea\xa4W\x06\xcaBi\x14\x11\
+\x95d\x1a\x0f\x02,\xec\xfe\xc1+\xa3\x1c\x88\xf1I+\
+\xa0\xe6+\x1b\x96\xeb\xf9\x9c\x12\xb1\xbf\xff;\xa6\xd5\x93\
+\xf8\x22~\xef\xda\xbf\xe7\x0f\x89h\x85_\xb7BD\xd2\
+\xbaQ\xc7\xab\xab\xff\xa5\xd9\xe2\xd8\xcf\xcb\xfa\xe8\x7f\x11\
+Q\xfe\xfc#%>\xda\x12_\x80\xfb\xfa\xcf&m\xfd\
+W\xfb\xbc\x15\x12\xe0\x8f\x8d\x9f\x00\x8b\xeay\xb0O\xed\
+\xe8\x0fTf\xf6?\xf6q\x1a\x14\x14\x5c#\x06Q\xdd\
+\x8fwH\xb6u\xcc\xce\x0b8\x99\x5c(\xdb\x5c\xeeS\
+\x94Yoj\x1dn\x9eW3&\xb0_$_:\xbf\
+B\x0f\x83h\xe4\xbd\x09\xc8\xd4:\x81\x12\xdf\x1f\x18Q\
+;\xc7%\x1a\x00^\x19h\x1fHj\xf44D\xc8S\
+\xc9+)\xbc\xc58\xe2\x9c\xebn*\x11\x8d\x98\xbdJ\
+\xbcZ@\xd3\x83Il\x90sW\x00\xbbGc\xc4\x14\
+0\x05[\x85*\x85\x99G\x12\x01\x90q\x1d\xd2\xb9c\
+\x86\x0c\x0c-\x9dW\x16?F\xbc\x99Ylf\x95\xb1\
+\x87C\x14\xee\xb35Z\xc7\xf3'\x83\xd8[\xa5\x96?\
+?\x8d,\x0a\xc0\xf1\xb9\x86\x8b\x0a\xe7\xb64\x19\xaa\xdd\
+s\x88\x83.\x1e\xd1\xa8\xd9fz\xd1\x91\xa63)\xed\
+\x94\xca\x9c<\xb22Q\xbf\x18L\xd4\xfes\x11\xc9\xf6\
+\xf7\xb0A3&v\xb5\xd8\xd787c\xb0\xa3\x8ev\
+\x88\x9an\x86%\x9dp\xdcW\x00\xd8\xb9\xce\x00\x130\
+\x10Ygr\x85\xf2(\x16\xe7\x1f\x9a\x00P\xe5)x\
+\xe8\x88\x0a\x98\xb3\xd8\xac\xf2\x5c\xbb\xf8\xc08\x93\x86\x8d\
+mJU\x88\x9aBM\x83\x02j;y\xb1l!\x19\
+\xc1d\xf4\x95F\x8a;\xe3\x00#\xd8 \x03 \x88\xba\
+\xed<\x9fF\x05\xe2\x88\x00\xa9t\x88)\xa49\xefY\
+g|~F)\xe8\xe0\x93W!\xeaNAJ\xc3\x09\
+*\xff\x9b\x22\x9a\xbb\x18L\x09\xd6\xa7\xcfyF\x18`\
+\x1aq\x1e\xd2\x88\x19\x8b6\x03|\xc1\xc8d\xe4[\x9a\
+!\x14\xee\x1ea\x85iG~\xc7\xf7\x82a\x01\xb3\x80\
+\xef\xc9}\xa6\xeeb\x84\x03\x9bZ\x1ae\x1a\x110\x90\
+F\xe3\x98:-\x03\xce\xcfK\xb3\xf5\xe4g\x9c[\xe4\
+\x01\x8c*\xd0I\xe79\xc6\x9e\x94B\x9c\xeb\xc3\xba\x1c\
+\x89\x16\xbb\xc0\xa7QD\x1e\xcd\x9fS'\xf3\xfd\xc8'\
+\xa9\x87\x19u\x86Y\x80\xa6\x13\x00\x03\x0c\x0cFNh\
+`\x84[\xcc~\x0d\xf8\x9f\x83\xa2l\xdb;\x12\xa0(\
+\xc3f\xfaA\xb7\xa7\x83\xf7\xb6\xeal:$\xa4\xd7\xa5\
+\x1b\x01bD\xc1L\xe7 \x90\xec\xd5u0>*Q\
+\x9fX\xa0A`YG\x0b\xe9q\x09q\xa1\xe0fc\
+\x1a\xd9f\xf8\x02\x0a@\xb0\x8dQt\x18\x9e\x9c\x18\x08\
+\xdcp\x0av\x0a\xeel\xf7\xb0lC\x86\x1e\xa2\x0e\x09\
+\xc0\xc0\x02\xa2\xf0\xe1\xdfs]\xf8<\xa8MS\x90\x82\
+\x04B\xa5b\x16\x03J\xf4\x8ft\x83\x1e+\xb5R\x89\
+\xb5M\xce\x8fx\xa8X\x8c\x0ft|\xe3\xf1;\x17b\
+?[{8\xa0@X+%\xefG\xa9c\xcb\xfbQ\
+\xd0\x22\xaat\x936\x08\xd4[Q-U\x87)\xb4X\
+\xab\x1a\xab\x12\xaf\xd9\x8fT\x10\x8a\x92g?{\x1e\xc4\
+wp}_\xf2\x00\x00 \x00IDATI\x94\x08\
+[/\x0e86>f\xb6\x98\x81\xfa\xb5\xa8:\xb7k\
+V\xf2\xa5\xea\xd0\xbdQ3\xa5\x00\x02bV\x98\xaaJ\
+g \xec\xb4nN\x057\x1b\x1dvs\x02\x00\xa0\x08\
+3\x0b\xd4\xef\x10\xd1\x98\x03PjM\x01<\xb9\x14\xc0\
+'7Q\xbd~\xb1\x88\xf2\x9c\xee\x1cQ^_\x17\xd1\
+f\x8b\x9d\x18>_\xb3\xca \xde\x12\xdf\xe9\x8e\x88h\
+\xf6w$@f4\xe8\xbeu/\x8fh\xaa\xe3\xccr\
+\xcd\x9f\x17\x91T\xb9\xe9\xf8]\x11Q\xfe\xdd|Ds\
+\x83\xa0\x83\xd4=6\x22\x15\xfe\xba\x1f\xfdk#\xca\xfb\
+\xbe4\xa2\xd9\x00Z\x0c\x8e\x83\x0c\xb5{\xa8\xeb\xac#\
+l\x0b\x11\x8f\x81\xf9\xc2\xf3\x0dR\xcf\xfe\xa0\xc4w\xc1\
+\xabj\xb4\x0e13\xcd\xef\x8cH\x09\x15\xcf=\xbe\xf3\
+\x88\xbe \xc2\xc4\xec7\x9d=D\x95(d\xa0\x9a2\
+\xfb\xc5s#*\xb4\x13-FU\x10g\xd1\x0c\x99\x0f\
+\x1e}\x9f\xc9[\x22\x92\xba*bsl\xd4#\x1b'\
+\xef\x0f\xa3\x8d\xdbv\x80\x1c\xfcKhTh3!\xfe\
+\x1cP\xec?\x1c\xb4\xec\xb7h\xaap\xe0\x08Avg\
+\x96\xcfE\x87C\x9d\x84\xd9\xe5\x11m$\xc8\xf6\x88\x88\
+\xca\xdd.\x95v>\xaf\x98=\x00\x0a\x1eMR\x01\x02\
+\xb2\xdd\xed\x16\xd1\x90q\x0e\x9a\xc9r\x93eC\xd5\xbd\
+\xf6\xb9~\x9e\x90n\xd9a\x99\x12\xa8\xeb[\x13\xe2\x1f\
+\xb4\xd9\xc9n\xae\x9bv\xd3FY\xa6c9\xbfOD\
+\xf9\xf59\x11\xc9\x17\xfa\xa9*86\xd1\xc1\x8eO3\
+\x1d\x01\x12\x1cF\x8e\xd8g\xd9\x1fqiA<\x0a[\
+\xb45B\xe7\xba\x9e\x93\x03\x85\xfa\xc7\xc3\xac\xfal\xc1\
+\x90\xe0\xcf\xff*\x22\xd9k\xbeR?\x07\x0a\xde\xdeC\
+\x87\xa1\xecN\x03#\x83\x045\xf6\x9b\xb2?\xf4\x0f\x94\
+(\xcf\xed\xfc\xc7J|\xbc\x02*G\xd6\xce\x8b(\xf1\
+\xd3\xcb#R\x02\x85\x9a0\xaa\xfeA\x11\xdf$\xcdX\
+k\xd6\xdc\x9d\xf9\xd5J\xac\x9a:\x95\x00\xf7\xea,\xb2\
+O\xd8\xa5 N\xd9\x89\xce\xf3\x15\xd5Q-\xcfU\xf7\
+\xd4\x88\xd4\x89\x87\xc1\x15We\x0bu\xb6?\x9fFM\
+\xe8\x84r\xfe-Qej\x07\xd7\x8d\x92P\xf7\xdf\x88\
+H\xd4\xea\x10E*\x89X\xf7\xc4\x88d\xab\x05\x15u\
+\xadAL\xacN\x92n\x92:v4\x14X\xb7\x02\xfe\
+\xcc\xe0\xc0\x05\x03\xa6\x1e\xcc\x0a\x8d\xd0u\xcbG\x94\xd7\
+E\x22R\x07N@\xd9t\xc5\x88\xf2y\x0f\x8b(\xaf\
+\x1f\x88(\x7f\xff\xff\x22\xca\xe7\xfak\x89;\xda\xf7\xab\
+\xbb\xd3'\x93O7\x05\x1b\xa2\x80o,Q\xce\xb5\xee\
+\x92\x12\x97\x8aY\x13\xaa\xf8\x17\x96\xf8\xb6\x0a\xa2\xf5\xd5\
+Y\x8b\x91\x95\xbb\x06qM:\xe30\x22\xa6;M_\
+2}I\xeat\xd3q\x1d\xdb8\x03\x94k\x84\xca\x00\
+\xc3\xe5\x93+&W\xb4\x02cv\x8bD\xde\xe8\xb0!\
+\xa2\x85\xa8\xadF\xbfXo\xb6-f\x9fa_\xfbT\
+\xf5\xabi\xf6\xbd1\xd2\xb5OJ\xc8\xa1\xa8\xa2.\xfe\
+\x92\x12;\xb7\xc2\xce\x94d\xf20:}rk\x09\xe5\
+\xa2\xd0.\xe2\xf3MN-qJ\x12\xc5;\xa5\xaa\xf4\
+4\xe0\x04\xb1,\x80l\xf2\x09:\x9f\xe4\xbdz?\xbb\
+Z \x0e'J:\x0c&\xf2\x01\xbbg!\x82+\x11\
+=\x8b\xec\xc1\xb0\xe2\xfc\x03\xc0\x00\xd8\xd6\xfb\xcd\xf6/\
+\x05\xcb\xfe\xa9q\xa2\xbc\xbc\x94\xad\x9f\xa9Z\x00\xec\xfb\
+\x14\x0c\xec\xa3\x5cw\x98q\xe4\xa5qu\xff\x94\x18\x94\
+\x8cT \xd6\xa7|\x02\xc6\xd6\xeco!\xdf\x9a\xec\x9c\
+\xef\x1f\xa8\xf5\xf6\x93\xa7\xf3\xac\xfb7\xdd3\x22i\x1a\
+\x5c3\xcc\xe8[\x8b\x82\xd1\x87-E\xb1?R\x22\x9a\
+b\xc8\xd8.\x0e7\x1d\xf2g\xf2O\x18\x18\x5c\xbf\xb1\
+X\xaeFR\xcc|D\x94\x0e\xd5}\xbd\xbf\x0bn\xce\
+cu\xe4=\xc2!\xbb\xda\xfe\xc4\x88\xfa\xbd\xef\xaf\xae\
+\x1cb\xa6\xf5gE\x94\xdf_1\xa2\x8aE\x0e\xe2\xc8\
+[\x0d\x85\xb0\x19\x17\xd2\x5cr\xfd\xc0H\x81\xf6y\xe7\
+\xd9\xe4\xbb\xb8Iq]s\xa3\xf3\x814\x93\x8f]\x1c\
+#\x95\x884r\x9f\xc9w\xa4\xf6\xef\x02X\xe2\xb9\xb6\
+Kd&_\x0d\xa6\xf0\xfa\x09\xb7\x1fk\xf10\xe2\xc0\
+\xf3F#\x0e\xe6\x03\xeb\x8c\x06\xa8\xea \x80C\x8f\xa2\
+\x8e\x98+\xd5\x1db\xf5\xd4\x18\x82\xc9D\x03\x03&\x8c\
+\xea\x0c\xdb\x09\xc2\x88\x96\xb8\xa3G\xc0\xb8\x0et\xba\xc7\
+\x8cK\xb4\x08X'w\x098YV\xf5\xdbht\xc2\
+\x8dZ\xf2-F5\x97\x8b(\x9f\xe3[\x11i\x1f\x85\
+\xd1MA\xaf\xfb\xe4\xbf\x8f6\x02\xf91\xd7k\xdc\xe1\
+\xa7\xd0\xe7\xbe3\xdb\xcfs\x0e\xe0\xc3+\xfb0#\x10\
+\x8c\xa62\x92\x89\xdd\x22\x8dL\xb4#\xc2\x0e\xf8\xa0\xc4\
+<\xa1~\x95\xe6\xc8\x5c=\x9e\xb7M\xa2z \xf3P\
+\xb9\x98\xfd\xcf\x22\x04\xffH\x1b\x1a\x9d\xbbx|\xbb\x94\
+\x88R\x90s\x10A\xc5g\xd2\x81\x072\xca\xde\xc7$\
+\xe6\x00@\x00\xa2?a\xef\xb7lz\x1f:\x0eQ\x16\
+,\x94n\x08\x178\xd2\xb7\xc5S\xe2\x0c\x00\x00\xb0@\
+\x82\xae_W\x95\xcf,\xde\x05r\xc3+\xef3f\x02\
+\xd0\xc1\xe4F\x8e|)M\xa1\xc3\x97\x1a\x1b?\xd9\x9f\
+MV\x94\xd8\x17\xc8\x0e\x0b\xf8\x5cQ\xa8\x8fRG\xe4\
+rm\x18P\xa6\xb0\xf7\xd0\x06\xb6\x80\x03\xe9<\xd9\xcb\
+\xf0y\xd8`\xa0\xe42\xdb\xcaL\x11\x0b\x8d\xfb@\xe7\
+\x02\xf5\xeb\xe5#\x1a\x22^\x13\xc8\xd5R'\xf2<!\
+\x9bZ\xc0\x00\x04~\x7f\x16\x1c\x1b\x96\x125'\xd4\x88\
+M!b\xf1\xad\xf2x\x7f\xab^\xc7\xc7\xd5\x99E!\
+\xc1\x91&F\xa2\xe8\xfb\x00\xf2\xcf\xcc\x9d(D\xcc*\
+[4\x91\x99f\xbd\xa22\xdd\xef\x12\xd1:E\xf69\
+\x165\xa6\x1e\x84\x7fk\xea\xf5\xfd\xef\xfb\x9b\xfa\xdf\xb7\
+B\xb1?7\xa2\x5c\xe6\x8fG\x94_\xef\x1aQ^\xd7\
+\x8dH\xcf\x0f\xc8\x22\x1b\xa8\x90\xea\xfeg\x11\xe5\xf5\xfe\
+\x88\xf6\xea\x83C\xeb\xb9{LD\xa3d\xf6gG\xa4\
+Q\x88\xb0\xbbJT\x1f\x12Z\x8f\x12\xa9\x004\x85\x0d\
+\xa6\x08\x09\xd7R\x83\x1fm\xbfrDy\xfdkD\x12\
+\xedA\x9c\x85\x84Y\xc0\x89\x11f\xa8m\xb5rHv\
+\x81t\x9e(\xb4P\xc7\x95*\xabg\xd7\xf1\x09\x87\x9a\
+\xc7\xf3\x02`@\x81\x0d\xf0\x06\xf2\x0cP\xc9\xf37F\
+F9\x88\xc4 \xb08\x93\x18+\xdeG8\x888\xa8\
+\xb1;B\x5c\x89\xd1\x0a\xf61>\xef\xc8\xad\xc1\xf7\x99\
+\xf5\x89j1\xe2.0[\xf8w0\x14\x00\x86t\xa0\
+U\xe0(\x0a\xbc\x0f\x9486%H\xcc\xa6\x02\x5c\x92\
+ \xb0\x0f\x918q\x1d\xd4\x19\xe8\xf6\x8aHj\xf4\xfb\
+\x0d\xcc\x15wL^1\x88rF\xb9]\xb5!4c\
+8yTD\xf3\xc9\xf6\xcc(\xfb\x0a\xd7\xe1>=\xf7\
+\xa2\xb6\xb2o0z4\xb9o\xf2\xcf\xc9?\x93\x1a7\
+\xd7\x81}\x97\x19\xf7\xeb#Z\x87\xa8&\xf2\xa7\xb6\xf5\
+\xda\xad\xdf\xadW\xb5<\xa4U\x81X\xe4\xe4\xe3\x03p\
+0\x7f\xd6\xfc\x17\xe7\x83\xa9\xf0\xd5\x88\xf2\xbaJD\x12\
+q\xc2\x1d\x02\xd7\x11\x00ZT\x8f\xa1\xfa\x8bqS\x92\
+\xa9\xc1\xc5\xe1\xa5\xeaT\xa9\xc0\x9d}S\x89\xc0\xdaR\
+\x05\xdeO#\x11g\x0dbc\xa1\xb0\x19\xc7c\xbfW\
+D\x15g\x1bT\xe8\x99\xb5T\x81Qg\x83\xcb\xefO\
+7\x9an<-\xdfg\xba{\x89r\xdd\xa6\xbf\x8f(\
+\x07\xf2Us?\x9f\x0bQ\xc0\xc5\x07M\x00\x17 \xd2\
+8\xb18'3\xb3\xa8\x9a\xc3h\xa1\x00\xa4\xe0\xfdu\
+\x85V\x07M\x88M\x95p\xbe;i\x9b\xd0\x19\x030\
+\x13c\x0c \xae\xde\xed\xf75U\xfbz\x7f>\x97\x0a\
+Nf\xdf\x83\xe1\xf1B1s\xde\xd7\x98M\xfe\xbc*\
+H\xdc\xc1\x0a8\xef`u\xda\xaf\x11\x83\xe2t\x8d\xc4\
+<\xaf\x89\xfaasWa\xe6\xdd\xc4@\xfbhS\xfb\
+\xf7HC\x00\x96[\xe8\xf3\xad\x9cF\x00c\xb0\xec\x0b\
+\x8d\x11T\xed\x15\x7fY\x81\xab\x010yBD-h\
+\x07\xad\x01\x00\x0b%H\xdd?\x22\xca\xfdyLD\xb9\
+\xbf\xdf\x8d(\xaf\x1b\x8b\xb2\xaf\xe7\xbf\x16\x0e\x99\xa1@\
+'\x8c\xd9T\xce\xcd(\xef\x9e\xa4\xc2\xe6\xd3z\x0e\xca\
+y3]\xa5\xc4\xaa\x8d\xa1\xd3\xdfS\xe2\xef\x0d\xe0\xaf\
+\xe7\xc6%\xa2\xfc\x1e\x9f\xf2,5\x1a\xba\xc3\x22\x92f\
+\x80\x9e+\xdb2\xee$W\x98e\x86\x11\x14\xbb\xad\x9c\
++\xe6\x0b\xc0\xe7\xd2b\xf6it`\xc1\x07\x87D|\
+\xb6\x9f\x12n\xce\xb7\xb1m3@\xed\x9d\x152l*\
+\xf0\x1bD\x94\xd7GG\xb4\xf3\x12f[uE:?\
+\xd9\x00\x07\xc0\xb3\xb6\x98,\x07%5vu\x04\xab\xd8\
+\xe4&\x09\x88\xe6\xbaF\x9fs\xf3\x94\xefh\xa4\xa76\
+&v\xf9o\x0d\x89z\xfd\x05@\xbb\x80\x81!\x81\xd6\
+\x0f\x09\xb7\x0ak\x17\xfah\xa7@\xf5\x07\xd8R\xa7\x0d\
+&\x98m\xe5\xd0\xcayM\x8dV\x00\x02\xd0RH\xc4\
+\xac\xf2\xd5\xc9\xad\x07;05\x0e\xca\x9f\x0dZ\x01\xe4\
+\xaf\x00\x980\xe3\x10YF\x9c/\xce\xe5.1'`\
+\xda\xb2\x1e\xb5?\x22NZ\xae\xd2\xcb\xa3\x81\xd3o\xd9\
+o\xd5o\x95\xf6\x11\x15h\xe5)\xb8\xb7\xbb\xb7\x02\x8e\
+wT\xc0Q\xa3kV-\xd7\xb9\x82\x08\xa9G\x13\x10\
+\xf9ef|\x91\x88\xf6\xb9\xac\xf5\x03\xa3G\x05\x9a\x99\
+\x0e4\xb8\xd0\xa0\x81\x02\x8eF\x06y\x08\xa3\xa6\x00(\
+*\xec\xd1\x5c\xe2y\xe0<\x85A\x88}\xb4\xdd\x09T\
+\xe8\xdb^PZ1\xce\x87`:Rpa\xdf\x07\xb0\
+/QeT\xfa\x9d\x0f\xc1\xc4\x85\xd1\x0b\xd0\xf1\x03\x9d\
+\xbf\x14\xc2\xdc\x1f:\xd104\x18\xdd\x11\xe3\xd6\x1a\x17\
+\x14\xca\xd8\xf0},\xa2\xf9\xd7\xd7\x91\x9a[S\x87\x9e\
+s\xe3\xf6\x88\xd4\xc0\xa1p\xd4\x88.La\xd7U\xe3\
+\xce5\x9fSu\x91\x99MhW\xe0F\x01cX\xa2\
+\xb3\x06\x02\xd0\x02C\xbb\x09\xf1GF3x.\xe8\xf8\
+\xe3\xae\x04\xa0rQ\xc4\xc3\xe4[hN1\x22\x83\xd6\
+\x1b\xdf\x8f\xfbD>L\xfd\xc8\xfeE\x1d\xc6\xaf\xa9\x03\
+\xc9{\xc76\xf6\xd4Qc\xcd\xac\x11Pb\x06(\x0d\
+/\xde\x0f\xc0\x11qQ\xf2B\xee\x17\x8dZ\xec\xff\xb0\
+\xe5\xe5\xfbSo\x1e\x1b\x91lw\x01\xc6y\x8e\xc9\xbf\
+`^k\xbf\x9d\xf3\x85\x8d\xb42w\xe6)x\xe3\xe3\
+.\x96.\x88f\xf7\xbd!\x82\x0ca\xf7\xc0,\xfdX\
+5\x9aB\x9c\x05\x05r3\x16s\xe0B\xc5e_9\
+\xfd>L\x00\xb4\x09`\x14\x00\x04\xe0B0\x06\x04\x00\
+(\xb8\x11\x00\x0bP\xeb\xa0vp\xa0\x8d\x01\x00\x101\
+>\x07@\x02\x05\x08\x0b\x01{\x89gG$\xb13\xf9\
+\x9a\x93\xb8Z}\x15\x06\x003\x1aP3\xf8\xfe\xdfJ\
+\xe2-\x1b\xab\x13\xfd\x99\xf4\xc0P |L\x1d\xa1o\
+\xaa\xc3\xc5\x81\xb4\xa2>/\x14f\x12<\x0e\xa0w\xd7\
+h\x1b464k\x0e\x88/3`P\x94\x10cr\
+\xe7\x1eQ\x0d\xddw\x100:\x13t\x1aIh,\x9e\
+\xb6GD\x12M\xa1c\x80\xad\x9b6\x08T\xcbg\xab\
+\x0c\x94,\xa8\xeb\x9eyE\xbc\x87N1To\x1d\xe0\
+\xb3M#\x1a\xa2XU\x88\xf7K\x89\x13\x94I:\x1f\
+t\xbe\xa1xu\x11\xe59\xfd`D\x9b\x99\xb6\xea\xf9\
+\x8f\x22\xcam\xdf1\xa2Q==\xeb\x0bc\x02\xc4\x12\
+\x15S\x89\x06\xd1)\x9d\x7f \x22m`*p\x8d\xd4\
+_0\xbb\xb0\xfa\xa2\x9f\x142k\xe5\xe7l\x1aQ\xfe\
+\xdd\xf2\x11\xa9\xd3%\xd1+\x03\x18\xea\xccPh1s\
+\xdb\xff0BvL\xdb\xb6\x8e\x9a\x11n\xcd\xec{$\
+\x05\xc6\x06\xa2r\xc7\xd50B\xef\x03\x08{=D\xf9\
+\xf0\xc1Ub\xe0\x99)\x0a\xeb\xff\xa7\xebL\xe0o\x9d\
+\xaa7\xfe;\xfb\xfc\xcc\xd7<\x94y\x9e\xa7\x94\xcc\x95\
+)*\x19B\x22\x12\x912eJ\xc9\x5c\x0a)\x22Q\
+25\xe8\xaa\xcc\x85\x882\x15\x22I\xca\xfcW*s\
+\xa6B\x8a\xf3\x9e\xff^{?\xdf\xb5\x97\xf7\xca\xfa\xd4\
+\xf9\xdc{\x7f\xc39\xef\xbb\xdf\xbd\xd7z\xd6\xb3\x9e\xe7\
+:\x8b\x80\xec\xf7g\x9b\xd8\x00I\xf0x\xe5\x80`\xdd\
+@!\x14R\xcehK\x99i~\x7f\xb0}\x14\x85\xcd\
+\xed\x9f\xb4\xcf\xfbL\x18\x9d!\x80*\xa8kRsw\
+\x0a\x1d*\xbc\xcc$\x93\xa0b\x07\x092\xcd\xa8\x80\x12\
+A\xa7\x98\x034\xb2o\xd2\xb9\xb8\xb2\x02`.Z\x05\
+E^\x94p\x07\xdaTp\xfb\x01\x8a\xed\x1d>\xf4h\
+,(\xc1A\x8b\xa2\xc0\xa6\xb3\xb4}\xd8;l+U\
+\xe4\xbb;\xae;\xb6;\xb6\xa8g\x97\x11\x12\x10\xe6\xf4\
+V\x8b2BRf\xca=\x91V'\xdc\xa9\x91J\xe4\
+\x9cJ~}\xbe\xbf\xd7\x87\x04\x1b\xffc\xdc\x0f\xb8~\
+:\xc0\xcdl\xd0\xec\x06=\xf1\xe1\xbc\xa0\x80\xc1fp\
+^\x8b\xa6\x19Rl\xe4Nl\xcf\xed\xe8\xf8\xd1q#\
+c\xb6lc\x11:\x0d \xff\x140\xac\xbb\xad\xd4\xf9\
+\xbfY\xf7q/\x15\xec\x14\xde\x0f\xd5\x9f\x8bo\xba\xfb\
+u\xffD\xf7S\xe7G\xb1g\x1b4`\x85\x84-=\
+mQf\xf7\x0f.\xb3\xfb\x97\x0c.\xb6\xc2kx\x91\
+E~\xfd\xbcE>v\xef\xca\xf1\xfb\xe2W\xbf}\xf1\
+\xabW\xc7\xdf\x995J\x9c\x195\x1a<a\x11\x12\x09\
++/v\x17s\xe9\xf4F\xa9tQD\xa3\xec\xef\x1c\
+\x00v\xed\xffi\x0b\x8b\x90\xc8\x00\x88\xe0&px\x8e\
+\xc3\xd4Y}E\xeb=\xba\x08<_G\x1cHh\x19\
+\xf9\x82YQ\x00\xcbUB\xe7\x97\x04\x91\x11\x0c\xfb\xfa\
+\x1d\x02\xc0lW}\xf5\x06\xe8\xa6\x07-\xcc\xe6\xd6\xa2\
+i\xac0B\xd7-o\x11\xec9\xa5\xa5Q\x18$k\
+5\x0d\x8c\xa2!1\xb3\xce\x83\xef\x17FC\xd9\x1f\xd2\
+\x19\xe9\xdb)'\xf2iv\x8b \xe2w\xa7E\xbe\x0f\
+\x97Z\xb4D\x1fq/\x0a\x98\xd1.\xa3]G\xd6A\
+\xdc\xa9\xdb\xd1\x0a[W\x8d\xc7m\x82\xcfm\xa7\xc2:\
+\xea4\xad\x14\xc4\xcb\xb4\xcf\xba\xdd\xdfi\x16\xf9\xe7m\
+o\xd1\x9e\xe7\xf1\x07\xcd\xd8O\x09\xf0\xfdm\x9f\xf0N\
+\xe9\xf3\x9a\x85&\xb1\xa7\xe3\xff>u\x98\x01\x90N\xae\
+\xfb\xb77t\xa0\xbeRh \x92LG\xfbL\xb9\xdf\
+\xfc\xa5\xda\xe4\xb9\xaa\xb4\xa5\xe5\xf7kT\x06\xea\xf2d\
+\xa3\xc8\x17\x8d\x89\xa7\x1b\xe0\xdf\xedk\x11\xce\x1f\x1b-\
+\x5cFZ\x15_o\xfb\x5c\xba\xc6B\x0c\x8c\xe5\xb5\xef\
+\xfe%h\x92\xc8\x1e\xcd;xP\xae\xe9h\xdbi\xfb\
+\xf3\xc6\xb8(\xe5\xe1W\x83\xa8\xa5l4=QV\xa3\
+\xc2;\xa2\xb8\xdch_s\xed\x0bu\xd2\x9cI\xc6L\
+>\xc0\x1e\xae;0\x1ea\x98h$l<\x9fEP\
+\xf7\x07\xf0\x07\x10\xdd,\xaf\xc7\xcd\x82-\x1e\x00\x1a\xb6\
+\xc044D\xf9\xf7\xd1\x08\xf2h\xfb\xdc9O\xe8\xee\
+\xce\xf1\xc7\xfc\xbaT\x8e\xa5\x1b\xc3\x8fB\xd0\x01[\xa9\
+\xf2;\xf5~\xcd\xf1Z\xa51E\x01\xc9h\xc8 \x9f\
+\x93\x83&~I\xa1i\xfc\x94\xa2\xd5\xb4\x96D\xf7V\
+\x11\xa3\x88|R\x00\xa2\x8b3c\x17\xca(\xc5\x0b\xe3\
+\xe7\xc7\xcf\x87\x0e?y8\x1dU(\xe7\x1a\x89@\x5c\
+\xd1\xcf\x05\xdci\xf8\xfc\x00\xeb\xda\x87\x9c\xe2\xcf\xa8\x01\
+y\xba\x1a\x0b\x8cRv\xebY\x04qc\x1a\x1a\xe4\xb9\
+\x00M\xd6\x98\xbb44\xacx\x05(\x82\x91\x07\xd0B\
+\x01K!\xc6\xfbB{\xe2J\x8b0\xea\x02P\x00\xc0\
+\x0f\xa0\x0f\xf3I\xc0\x92\x03\x01\x88Is\x1eAI\xc7\
+\x85F@\x98\xdb\xa8\xaa\x1e\xc3\x86\xdc\xdf\x1f\xf9\xa9F\
+~`\xec\xf8u\xa5\x9e\xa2\x13\xcd9\x01\x10\xd5\xa7\xb2\
+\xc3\xd0n\x1a\x0e\xf5?\xce)F8`&P\x07P\
+\xa0\xd3\xa0\xc0\xbd\xe3:56aR\xd3)\xa7\x8e\xc1\
+\xc5\x0a\xed\xa9\x13\xc7'\x15;R\x1aI\x00\xd5\x00\xb3\
+0.a \xf1\xf7|N\xee\xa3\xf2\x04\xf2:\xa7\xda\
+3b\xc5\xf5!/\xe4\xef\xb9\xff\xfd\xd9~^\x01\x1e\
+\x00|x?|\xfe\xbe\x86\x00\xeb\x0c`\x00 \x09\xc6\
+\x02b\x95\xd2\x8c\xf1\x91+1\x8a}\xbf\x81\xc1\x0b\x00\
+\xa5\xcf?\xe9\x85,7\xd0\x1e\x9b\xb9\x02\x85\x03[*\
+K\xcb\xe7\x0a~\xdc\xa8s\xd3\x01\xd3\xc1\xe6\xd4BT\
++\xa1X\x00\x04 \x0a\xc8L\x1f\xbf\x17\xe0\xc0\xca\x80\
+\x85\x9b\xfd\x8d\x7f?\x857\x85|\xbc\xd03\x84\x1b\xc8\
+\x82\xa4\x15J\xa7\x0e\x11\x17f\xb09@H\xc8{j\
+\xdd\xfeg\xde\x17\x00\x00\x88\x17\x05/\x05{_\xd5\x94\
+\x82\x05D\x08\xe4\x18\x1b\x8b(\x02sg+,L\xc1\
+\xa0 {\xcfH\xb4j%\xd9\xfc\x81\xe4\x90@\x81D\
+\xca\x97\xdbg=@\x9eV\xd1A\xfe;\xfd|\x80\x01\
+i\x05\xa4\xf5\xd3\x06i\x83 \xbe\x07\x85\xfd\xd2:\xbb\
+\x95\x8b\xb8\xaa\xb6\x0b\xe5\x9f\x02\x8e\x85|\x8b\xa8U\xd8\
+\x91\x80LRxa\xeb\xa3B\xcaG\x11xP\xb8\xef\
+0\x04\x00f~U\xbf\x0e\x84sp\xbb\x10e\x0a-\
+u<J'\xe7\xee\xa0\xa6*`\xc5\xd5\x91\x11\x95b\
+C\xc2\xeeGv\x83P\xf4\xbb\x13\xba/w_\x0e\x0c\
+\x0b\x15\xb4\xe3\xb9-\x1a2Gg\xd1;2\xa2\xdc\x8f\
+^\xb1\xc8\xafg[\x04\x9b6\xec\x1e)PPQ\x05\
+\xc1\x14\xf5\xb0\xfb\xb7E\x98M\x97\xb8\x90\xdb\xb6\xa0\xde\
+\xadDot\x8eE~}\xc6\xa2}\xbe\xe1\x8a\x16M\
+L\x0a_\xe3b\xeb\xf4\xc7\x060\x14\xaa\xb1\x01\x01\xef\
+\xb0\xc8_\xf7\xbc\x0eb\xdc\x07\xb0e\xe2>3r\xc2\
+z\xc3\x8d\x80Y[Q\xa7\x9dr\xc6l\xd2Q\x16\xe1\
+\xb9\x97&\x80\xff\x5c:\x1c\xfd\x03\x95\x82G\x07\x83\x8b\
+9\xc1P\x11\xc0\xe3\x052\x07\x93\xd6\xa9\xaf?:.\
+\xecoP\xfdU\xf8\x00\x88\x81\x9c\xa6\x83,\x02\xe5N\
+\x1d\x12\xdfGp\xdf\xf8|\x9d}t\x1b\xa1+,\xc2\
+u\xa2\xc3D\xa1\xc9\xdfCE\xe4yG\xbd\x97\x11\x03\
+u\x0c\x07\x9f\xb3h\xcc\x912\x1b}\xac\x9e\xef\x1b\x1a\
+\x80\xe1*\xf4\xcc\x10\xd2\xb9\x04\x08{\xbe\x8a\x22\xba\xdf\
+=\xe2G\xec_r\x1bqM\x07]\x97\xee\xa1\xea\xf2\
+\x91>_;\x8a\x00h\xe9*\x8b\xb2.\x0b\x83\xc9\x19\
+\x13\x88\x09\xf1g\x12\x17\x13\xfd\xfck\xd3\x020\xa2q\
+\xa1\x1ak6\xcdm\xba\xd8\xb7\xfb6k\x02\x9c}\x96\
+W\xf6D\x83o[\x94\xce\xfe\xc9\xd6\xd9\x1f_S\x13\
+\xa3\xee\x05\xeb\x99\x96D\xb5P\xbe\xbb\x93\xba\xafu_\
+k\xe2Dn\x7f'\xean~\xaf%\xf1\xc1\xe7\xdcG\
+R\xd8/\x10\x11\xd4l\xb8\xefw\x0f\xa9\xe3\x00\x10\xa5\
+\xf3\xc6;\xae\x8cx\x09\x00\xc5=#\xa7\xa1\x87Z\x22\
+:\xfc\x9eE~\xfd\xb7E>\x80\x8f\xc9\x91\xd7\xf1\xf0\
+\x00\x0b\xd9\xd3\xbd\xa9\xd9\xe1\xe5}:G;\xa7\xdc\x85\
+\x05\x9b<Qh\xd3\x03\x16\xa1cg\xae'o\xd7s\
+\x7f\x8f\x00\xa9\x9b\x04\x0c\xbeW\x89\xc0\xada=\xd1\xa9\
+\x91\x8d\x19\xa3$\x0e\x98\xa1~o\xe2\xb8\x0b\x87u\xde\
+\x03\xe6\x07W[\x04\x0a&\xc0\x0b\x09\x0e\xe7\x1eL\x9e\
+5\x8blX\x1b\xc12\x00\xe3\x1bM\x04\xd1\x81\x85\xe7\
+\xab\xddc\xfa\x9eE\xd1\xa4\xa8\x9dV\x01\x9b\xa8\xbc\x17\
+W\x8b\xf3\x8b\x08\xd9B\xf6>\xa1\x8c\xbb\xfa7\x8d\x89\
+#\xb4\x0f|Wn-\x88\xee\xbd\xb7\x02\xb4\xa9\xab\xa3\
+T9\x9b\xa9\x050\xd4\xd2\xf9\xc5\xf4\xd1\xbag$b\
+\xb4\x8d\xb4`>\xdb\x1d\xd2\x1dR\x0a\xb6\xb2O\x00\xe0\
+{\xfe`\xe5\xf7\xc9b<m\xd7\x98\x8f\x83\x0b-\x0a\
+`V\xce\xb5t\x9bEI\xf4\xcb\xa8R\xb7w\xb7W\
+\xb7\x97F`\xde-q\xce\xd3$\xee\xf6\xd9\xd21-\
+\x80\xbd\xbbQ \xaa\xc6\xf5f\xbf\xe5~\xdd\xa7Bk\
+\xde\xc1|\x85a\xc9\xcc(\xa2\xc2\xbb\xeb\xdc\x11C\x88\
+\x913g2\xca6\xd7E^\x17\xb7\x083\xe6\x02\x02\
+J\xe1\xbfO\x03l\xca\x8c\xea\x9d\x1a\xf5\xb9N6\x93\
+\x93\x8d9T\xec07\x0bL#\xd6\xfd\xca\x16A\xb5\
+]\xfb\xa5\x8b\x8f\xe1n\x003\x92\x0e;\xb6c\xd8\x82\
+\xf5\x18\x8b\xec\xdf>K\x0f\xf3\x90N6\xe7\x17\x85\x09\
+\xebY\xe7\x8b3\x97\xd4\x10K\xef\xb2h\x85\x8e\xedB\
+\xb6\x0f\xb9\xfd1\x0c\xa4\xd9E\x9d\x97KQ\xbe\xda\x1f\
++\x9aP\x06W\xfe(4\x80\x10\x07\x16\xf0\xceyV\
+\x00\xa1\x0f\xb6s\xb6\xbb\xcc\x22\xaf\xc3\xc7rX\xbe\xb2\
+G\x8e\x8f\x87Bw\xd1n\xb1n1Q\xd8\x17\x0c\x8c\
+M\x1b\xf92\xed\x98\xf7\xa4M\xd3{\xc2\x88\xd0\xdb\x8c\
+#S\x0a\xabbK\x99\xef\xe6r\xc6\xcc(\xdf\xb7C\
+\xeb\xf0\x03\xcc\x96}h\x8f\x96\xef\x99\xb4f\x11\xd7\xa4\
+\xa0EcK6o\xae\xe5r|\x05\xcc&\x0e\xd5\xa8\
+\xe9o\xe5^\xa1|-\xcd\x92\xa6\xa4)a\xa4\x0b\xd1\
+X\x80e\xc4\xa6\xe7\xab\x1a\x08^\xf8q\xfe\x0a\xe0\xf2\
+\xd1\x9d\xad-\xf2\xeb\xba\x16\xad\xb0s@\x84\x91\x07\x5c\
+\x06\x18\x81\xa4\x00\xe39R!\xef\x0dF~\x1f\x8dC\
+\x1a\xa6\x14\xbc=\x86\x88\xff<\x00\x01\x0a]\xf2 \x0a\
+t\xf6M\x0a`\x00r~\x0f\x1de\x1a\x0a\x14\x84\xb8\
+\xb4\xc0\xa4\x04\xb8\xa70\x97k\x84\xe7\x99h\x1e\xc1h\
+\xa0\xc0GU\xff6\x8b\x00Tp\xee\x93_\xa1\xadA\
+\xfeH\xe7]\xf5\x88\x03\x0f\x00fZ\xf7.~\xccz\
+\x97\x88\xa2\x8fT\x907R\xf0S\xd0S\x80\xd3\xa0\xba\
+#\xef+w\x14@\xe5\x94\x02\xa8\x90\x17\x0a\xa8s@\
+\x07 \x02f\x01#\xe40*.\xb5\x08u\x1b\xeeQ\
+\x1aQ\xf3s\x9d\xfa\x0e \x95u\xce\xcf\xe7\x95\x86\x10\
+\xcc\x03\xec>\xb1idd\x00\xf7\x09\xe5\xd9\xced\x86\
+\x19\x80F\x15\xa3\xf50p`\x18\xa1]\x12G\xe2\xa6\
+\x04\xa0\x91\xcf\x03\x80\xa3\xeb6Y\xf0\x94\x7f\x86B\x96\
+\x8e\x8b\x15\xfeonb\x7f\xa5,^0\x14\xc4l\x8c\
+\xcc\x1e\xb11\x82\xd0\xc1\x08\xe0\xcf\x0b\x94\x9et\xa3\xe8\
+\x93h\xf1\xa0\x008\x88\xba\xe2o\x5c\x80\xc04\x05y\
+\x1f\x10\xe0\x03\xf3@\xc2d\xe8\xdb*P\x80\xf0\xe0\xb0\
+\x80)\xfc\xa1\xf2\xf3\xe7\xbe;\x00\x80\x08_\xc7\xf7s\
+\x81\x9b\xd8_E\xaa\x98\xd1\x05\xb1\x81z\x0c0\xc1\xcf\
+\xddK\xea\xd3\xda\x18\xd3\xd6\x12W\xe9\xcf\x5cS\xe0\xf3\
+\xbe\x10)!\x81\xe5\xba1z\xa0\x07m0\xabE\xb0\
+\xb3:\xac\x8a\x80\xe4\xc5XU\x89\xa5\xa2\xce\x02g\xc3\
+\xccIb\xf5\xd5DM\x9c\xce\x19\x07\x22\x00\x0d\xe21\
+\x97\xebA\x9f\xa1\xde\x07\xc4\x93|\xc6N\xd4p\x0a\x1d\
+\xfcU\x99\xd5d\xb6\x96Dr\xb0c\xed(a\x0b\xe6\
+\x85\x1f\x94=u\x06\xbc\x83N\xe7\x18 \x86\x0d\x0f\xff\
+VQi\xba\x9d\xba\x8ft\x1fi\x05c7\xb6(L\
+\x83c\x8aH\xdec\xf9\xc1{\xacQ\xb9L\x1a\xb1\x88\
+#J\x9c\xa5[\xc5\x22\xbf\x9ef\xd1\x18\x01\xd3\x887\
+iCu*\xab\x00\x8b\xee\x8b\x16A\x8d\xf9b\x8b6\
+\xab\x8c\x9d\x8b\xa5\x93\x96P2\xd2\xd1\x9dg\x91_\x17\
+\xab\x07\xba\xab\xa3\x22z\x05\xe2\x8d\xda\xbb\x89\x8fm\xdb\
+\xd6G\xf7N\x8b\xfc\xfa\x92E\x10\xaf\xe1\xf99\xb8\xc4\
+D\xf7\x94E\x98\xd9g\x7f\x00q\xe5\xbe\x03\xa4q\xa0\
+p\xbdxN(\x14\xd8\xa0\xd8\xc0\x99a\xe2\x80\xa3\xa3\
+\xc2\xf3\x8bZ\xb6\xa8}\xa8N;\xf5\x8c\x8d\x0c;\x1f\
+\x805\x89\xe6\xf9\x8c\xa6D\xa2\xfcy\xc7n\x06\xbbF\
+\xd9}\x91\xa0\xa5\x1d,\x0a\x83\xe7\x90\xa29\xb0\xef`\
+\x9f\xc2`a\x86\x8f\x8e\x13\x09-\xb6j: q_\
+\xf0\x03\x80\xc2_\xcf\xbf\xfb\xf6BAg\xa6\x8bu\x8a\
+\x0f\xb4D\xe0(\xc0\x1d\xe1\xd6\xef+\xa3\x02'4\xd1\
+0\xdf\xef\xb4\xef\x16;\xcc\xc5\xc3\xcc#\x14H\x89\x83\
+\xfa\xc8\x05\xd7\xe5\xcc\x0a\x80\xf9L\x22\x1a\x22\x8b\xd5\x19\
+\xbetf\xfav:\xb3\xd9\x95\xe2w\xec\x80\x1b\x89\x81\
+\xf6\xe3\xf1\xdd\xe3?\x98\xdf\xb0\xdf7\xd4\x7fe;\xe8\
+*\xda\x8cF\xb0\xbe\xb4\x9e\xf2s\x9f#\xecW$j\
+\xa8\x8e\xa3\x89r}\xb5\x89J\xfb\xa7\xfd\xd2\xfe\xad3\
+\xeab\xa1\xdf\x95Z\xf5}\xa2\xba\xfe]\xf6\x8f\xeaT\
+\xfbl\xf1\x81U\xdba\xf0\xcfZh\xfa\xbeK\xa2\x01\
+\xf5\x14\x04\xbf\x8d\x82\xd4\x83\xff\x05%\x1c$F\x14 \
+\x9c\x0b\x9cW\x8c&\x08(O\x07\xe68 \xd8\xf9\x91\
+0\xe0F!m\x8b\xe1\xc7-\xf2\xe7x\xc2\xa2Q&\
+G\x8fZ\xb4\xcf1\xfc\x81\x85\x00\xb4\x9b\xe4>2\xd1\
+4?|$\x22R\x17\xe7n#\x04\xce\xa0\xb1\xffR\
+\x03\xc8p?\xf1\x82R\xc0\x18\xb3\xe0~\xbe\x92\x80H\
+\x05\x9eu\xea\x85\x18\xfb\x13@\x18\x80\x15\xe2_\xf8\xd1\
+\xdfa\xd3\xe9%\xcf\xa8\x09\xad1\x11\x0eo\xda\x00t\
+\x0e\xbb\x0fv\xdbv\xdb\x96\xe7\xa5\x88\x1f\x99\x19\xa1\x15\
+\xd2\xe9\x80\x1c\x07j\xc6\xfa}md\xa3{\xb9\xee{\
+\xf9wV\xd1\xb2\x87%r\xb5\x9ef\xe3\xd1B\x10\xa5\
+5\xfd\xc2\xa2\xa9Fcg\x0b\x10\xfd\xda\xcf,\x0a\xc0\
+_\x0bn\x98\x02G\xd6\xc2l\xbc\x8e|\xb9\x05\xb0N\
+\x5c\xa4\x0e:\x9d|\x137\xdb\xb8\xec\x8f\xd5\x85B\xe7\
+tz\xde\xa2\x01\xd5\xe3\x1d\xea\xacq~w\xa5\x83\xed\
+v\xa9\xf2k\xcf\xcf{-\x5c\xc4\xaca\xb4m|\x84\
+E\xa0L\xf3\xfb)\xc8\xa4\xa1\xe2\x94\xe4\xadja\xef\
+\xa2R\xb2\xb3\xa3\x83\xcdsZF\x11oT\x81\xb5i\
+\x032JB{\xb3D\xe3\xf2~\xdf\xbd?\xc7\xe6A\
+LV\xb3\xf5i\x1f\x0b\x01N\xf9}\xa6\xaf\xe6\xf8J\
+\x00L\x8f/a.\x1b\xc7\xd899\xb8%\xc7\xcdM\
+\xed\xbb\xec\x86\xf9\x1c\xea\xae\xc9\xf1\xf3\xd0!\xc6\x16P\
+\xf7\x9d\xfd\x91\x02\xbf\xfb\xaaE\xd8\xb7\xb1=\x16 \x95\
+\xbeo\x11\xa8\xf80\xf2\xd4\xc1\xf6\xc2\x93\x82\x0f\x15z\
+\x8dTx#\x81\xc2\x9d\x11J4{P\x11\xa7\xd3\xca\
+\xf3B\xe2\xdf\xd7\xba\x82J\x8d;\x8b1\xf6\x96\x123\
+$\xaf\xb3\xd1\x99\x16b \xe6\xf7\xd5=\x97#\xaf\x9b\
+\xee=\x16Adt\xfb\x89\x1d\xcc\x05j\xb0S\xdeW\
+w*\x22\xb3o1\x91\xd9\xf4Zz5\xbd\xda\xc4E\
+\xdd\xc5\x82\x02D@\x833\xf7\xe84\x93\xbf\x92\x7fr\
+\x8e1R\xf7R\x19\x12kbr0\x96\xb0?{T\
+\x80:\xe2\x9fW\x08\x18\xe6<\x06\xa8{\xa4\xbe\x9f|\
+j\x14qYg(h\xdd\xfay\xd0\x89\xa2\x8e\xd6\x83\
+\x18\x1d\xdd\x03\xdd\x83].\xfc\xba\xdb,\x8a\xf6R\x11\
+o\x1e?i\x11\x18\x10\xaco\x8d\xd0\xb9($#L\
+\x14\xc20\x05)\xd4a\xb2A\xb1f\x14\x90s\x83B\
+\x8f\x02\x1fF\x1a\xfb\x1f\x85(\xf9\x0f\xaf\x88\xff!J\
+L\xa7\x1c\xe0\x19&+\xcf/\x80koT\x99\xeb\x09\
+\x93\xa8o\xbb\xcc\xa8\xa43\x94\xc5@a\xf4\x11\xa0\xcf\
+\x19\xc0\xd2\xc2\x18\xafk\x11\x5c2\xd4\x00p\xe6+6\
+\x93'Z\x04\xed\x01\x80\x00\xd9\x8e\xbbF\x8a43`\
+\xe2:\x00H\xc1\xccz\xe4y\x05\xd0h\x9ar\xa9\xe4\
+?}\xb1?\xcea\x18\x1806\xfa\xf5 \x8d`\xea\
+4\xea\x08^\xa9\xe7\xc8\x97\xc8\xd7`\x12\x00\xcc\xf0~\
+\xf9=\x8cN\x00\xbc\x02\xac\x00\xf0p\xbf\x11\xd7\x04`\
+\xe0\xfbXg\xec74z\xa8;\x19\xb1Uc\xd3\x19\
+\xa1\xe4S\xd4A\x5c\x17\xfeS\xe3e\xd2\x91\x89\xbe\xc8\
+\x9d\xc4\x7f\xa6Q{\xb4\x8d~\x91\xf0gf\xb2\x0dq\
+_(\xcc\xea\xd2\xe9\xa5\xc3\x838\x0e3\xcbsX4\
+\x1b\x1f/p\xf9\xa0$L\xbd\x02\xbc_\x98{\xa1\xd5\
+\x17A\xe1sp\xc3x?t\x9ax\xe5\xef\xf9\xfa\x9e\
+\x9f\xbaw\xa6\x11\x09\x04\x88\xe0\xfd\xf0\xfbx\xf0\xf8\x1c\
+\xdc\xa0\x05\xf5y)\x0c\x96V\xc1\xc4\xf5VbD\xe1\
+\xe5\xa2\x0d\xd8\xb2\xa1\x9e\xcd\xfb\xa1@\xe2}\x83@q\
+\xc3\xf9:\x12Iu\xe0|\xa6G\x1d6\x7f\xe0\xe8\xfc\
+c\xfb\xf7\x89\xdai+\xea\xd5\xcf\x87Q\x86\x0fK\xad\
+\x1b\xc6\x073t\xea\x18y\xa2\xcb\x83\xc0\xc2cF\xe7\
+wB\xf0\xe8\xa0A\xbd\xd3\x86\xe3\x0f(\xea\xdaP\xcb\
+gT'P\x1b\x94\xcfhC\x1d\x13\x12\xed3`\xa8\
+\x9er?I\xd8\xb5\xe1x\xe7\xfd\xbf\xdd\x7f\xba\xa0&\
+mZ\xe8\x852\xba\xe9\xe0=\x86h\xa7#-\xdaA\
+\xe1\x05+\xb3s\xef\xb6h\x05\x1d\x7f\xa6\xb3\xea\x050\
+6fR\xe9u\xa4S\x07\x0cv\x84 \xd2\x83\x7fY\
+HT\xea\xe9`\x1f\x08\x22\xadD\xa4\x1bZ\x84\x19\xf2\
+\xb5k\xa2\xc9L\xa0S_Q\x95\x96(X7\xa7E\
+~\xdd\xc2\x22\x14\xd4zN\xdc\xf6Q\xb6i&\xc1X\
+D\x18\xb5\xbe\x5c\x84\x0f\xe4\x155e\x89&\xfa>\x00\
+\xe0\xa3\x0e33yP,\xbd\x10\x06\xc9\x94\xdb\x83\x8f\
+\x94h6\xd7\xd5de\x83\xe8j\xdd\xbdB\xc6\xb5 \
+(\xa48Xa.\xe8s9\x00!\x84\x18\x11\xb9\xf4\
+\x0e\x8bv\xa0\x0ff\xcb\x89\xf8lA+bM\x8bf\
+\x7f\x8a\x1b\x04\x9d\x03W\x11f\x86\x94\x8e8\xfbk\x9f\
+r' \xc5g8\x01\x0a\x10\xbd\xe1\xe0!1Wg\
+\xcd\x19\x02P\xc78\x88\x00Xx\xae8H\xf59\x9d\
+I\x01p\xcb\xe8\x91\xa8\xd5\xde\xe9\xfd\x9d:\xf5\x12\xf7\
+\xcc\xe5\xfb\xaeV\xc0\x93H8\xc3\x02\xe0f\x91j\x1f\
+\xeb\x22VR\xa5/\x93\xab\xe75\x91$\x072\x00F\
+H\x988?\x8e\xb7h#\x17>\xb2$\xe6\x93\xabu\
+\xcb~m<[\x8e\xd9\x95\xf0>\x17:\x80JPK\
+y\x9c\x13\xcd\xe1R\xc3\xa5\x0b\x93\x88\x19T(\xa9\xf8\
+g\xa3>\x0c\xd3\x03\xc4\x9f\xcf\xb9o.\xe7\xf6\x0d\x9d\
+\x1f:\xc1$\x18{O\xecU\x80\xdb\x0b'.*\xeb\
+\x97D^\xaa\xfe\xe6\xed`\xfb#\x05\x8fi\xce\x9b\xea\
+\xfcp\x8d\x1co\x0f\x80&\xfb\x18\x22\x8d\x7f\xb0\x08\xe7\
+\x80\x5c(\xa6\x9b\xc3\x22\xe7\x07\xd7[\x84Yj1W\
+\x98Y-\x0c\x805\x94\xc8\xcd\xad\xfb\xf9\x11\x01/\x0f\
+\x86Yi[m&\xd6x\x7f\x8e\x07\x9ahS)g\
+OW\xe7\xe5\xb7\xcd\xd6\xce\xf7a\xa8\xbe\x12_\xf5\xeb\
+sk\x81\x8c\x1d0\xf1\xc2L\x89/vR\xaeE\x22\
+QI\xd6m)\x14\x9e,\xcfs\x15\x07\x93k\x8e\xfb\
+*\xd3\xe9\x97\x86\xcc\xe4\x9c\x93sM\xe6}>\x1dc\
+\x11\x0a\x16\x89A\xba\xb8\x9f\x18>yU\x16\x00\xd0\xc5\
+<E\xa5Fdr\x90\xea~K\x07\x1e\xc0\x01\xbbI\
+|\xd5]\x9c\x95}\x12\x06\x94(\xba\x9e\xa0j\xffp\
+\xb191\xfd\xba#\xbb\xa3\xba\xa3\x82\xd8\xdc\xf6\x9a\xe9\
+F\xe4\x0e\x06\x9c\xf69\x003\x989n\x9bJ\xc7M\
+\x00\x82\x8fV \xdeDA\xc9\xfdB\xf4r95l\
+v\xd2\xb9~\x8a\xa8\xc8\x12kCl2]d\xd1\x18\
+\x80\xdd\xaf-\x9a\xf8l\xf9\xfb?\x87BO\x22\x83~\
+\x1e\xf7\x00\xe4tO\x8e?\xb5\xd1\xa2\x22Z\x96\xf7\xd1\
+\xf4\x83\x1c\xe7\xb5\xfc\xaf[\xc3B\xa3\x91{J\x9cr\
+&\xbd\xbf/\xb6Nm\xd9\x97\xd7h\x85[\xb9\xbb?\
+\x0c\xcc\x1f+\x10OV\xa7\xfe\xd5 n\x8cF\x12\xfb\
+0\xe7\x86\x00E44|\xdfE\xc4\xb8\x0f\xc4\xd2\xc8\
+\x10\x83\x83Yq\xa7h\xa3j.-\x10\xf7\x87\x17`\
+\x5cF{f\xd2\xfb\xfaw\x10\x11\xd6\x88\x16\x1d\xe3n\
+\x11\x0b\xed[[6\xed\xa0\xd1\xb3\x16\xf9\xcfg[\x84\
+\xfd\xc3\xf2\x8b\xd3\x83\xab\xc6c\xf9\xb93\x1b\xc2er\
+\xe4\xfb\x9eV\xb2\x08\xe7\x11\xf6k\xa6\x0d4Wp#\
+\x10\xa5\x1c@\xdd\x19\xa7\x14,\xdf\xccqz\x18\x0d\xd4\
+\xa8\x823\xac`z1\xea\x06\xb0\xb1\xa3F\xa5\xf8\xef\
+>1\xff\xd8\x0f\x10\x05~\xba\x8e\xb4\xa4/\xa5c\xd3\
+\xb1\x01h@\xb4\x95|\x98\xe7\x81QG58\xbas\
+\xeau\xe9v\xb5\xc8\xff^:=a\xc4\x91<\x15\x91\
+\x5c\xf2\x10Fd\xd9\x97yN\xa1\xec\xc3\x5c%\x7f\xa2\
+\x10e_\xa5n\xa2\xd3\x8f\x9b\x0f\xfb\x02\x22\xd5t\x80\
+a\xe0p~\xc0\x0c`_\x81qI\x9e@g[\xc0\
+\x12#6\xe9V\x8b\xe0bC\xfe \xa6\x90\xefO\xb8\
+\xefp\x1d8\xf7\xa4\xe1\xe5\xcc*\xec\xebT\xb8\x0f~\
+l\x11\x18\x8a\x00\xf3\x00fZ7\xe3c-\x02\xa3\x88\
+?\xd3\xe9\xd6\xf5p\xb7\x22\xf2\x06\x5cz\x00\xa2\x18\x81\
+\x80\x81L\xa3\xa1\xef\x8a\xf4P\xbe\xfb\xa1\xae\xf0\x11\xcc\
+{\xaa8%\xc0\x9c\x17\xdc\xdc/\xf2\x11(\xf7\xe4S\
+l\xa0\x14\xec\x14\xf0\x14\xe6|=\xa2\x9f\x88_S'\
+\xf0\xfe\x01\x02`\x08\xf0~\xf9\x1c\xecC\x02\x0e\xbc\xce\
+\xa4\x9e\xe4\xfbi\xe8\xc2dP}\xc79\xe4u.\x0d\
+\x08\xd5\xa1\x9e\x0fq\xfe\xa0\xf5$F\xd4\xa4\x7f0:\
+\xff\xf3\x89\x12\x86(\x07\x058\x0b\x1a\x1b\xc0\x05Ki\
+\xeb*\xfa^\xf8\x22\xd2\xc7\x05\xe4\x821\x03jb\x5c\
+s\x85YD+\x9f\xe7\x0b#\x06\xf1\xcf\xf3\xa8 \x7f\
+S(\xcc\xfb\xa3\x09 6qF\xffM\xe1\x86Q\x98\
+\xf6\xc5\x19\xfa3;} \x80\xdf\xc3\x0d\xf9_\xa2\x80\
+\xbcR\xf0S\xd8\x0b \xc9iu\x15a\xdbT\xb3v\
+\x14\xd0tP\x85\xe80\x83\xef\x14&\x0ay\x98\x15\x00\
++\xfc|\xae77^_\xe7*\xf8\xcc\x88\x09X\x98\
+\xd8\xa2&\xa4\x14l\xdd>\x16a\xc1C\xb5\xf9\x8c\x80\
+\x08!\xad\xfe\xb9\xa1\xe6r?A8A\xc6@\xee\xf9\
+\x8f\xfb\x22\xbb\x09\xdf\xf0.\xae\xea\xe3\x14h\x83\x1b\x06\
+\xd7\xdb\xac\xb0\x8f0P\x00\x1c[7\xa22Z\x9bZ\
+\x87\xd9G8\xa0\x12!B\x83x\x0cbt\xbco\x0a\
+|l\xf5\xb0\xe5\x91/2>\xe7\xe9\x03\x16\xa5\xd3\xff\
+L\xe9\xf4\xab\xc3\xe9\xf6Hh\x19\xe8`wUt\xd9\
+\xf7u\x1f\xb0\x08\xb3\x7f\xd8a\xe9\xc1\x1b\x5ck\xd1f\
+\xc1\x99e\x86\x22Xf\xf6\x96j\x1b\xf7\xf85\x8b\xe6\
+\x0b\xcel)T?\x0ayf\xf3}f\x0f \x03\x95\
+\xdbe-\x82\xd8\x9a6\xec\xee\x19\x8bV\xe8\x8c\x7fm\
+\x11\x12\x136v(\xf1lh\xdcWF*4\xbbK\
+\x81\xe5\x88*@\x0c\xeb\x97\x0d\x17\xea\x1c\x89\x00\x1b \
+\x85)\xb6`\x02\x80\x5c\xcd\x1cm\x81\x03-\xdaA\xeb\
+\xeb\x14\x95ju\xac\xd0\xde`\x1f*\x89\xcf\xb3ZY\
+u\x00\x00 \x00IDAT2\xe1\xb9\xd7\xf3\xc5\xc1\
+\xd6\xfd\xd4\xa2Q\x81\xd3Fi\xc3\xb4QI0f\x8a\
+\x8c\x84\x89[4K\xbaFU\xa9\xf7B\x18Uv\x00\
+\x1b\x988\xb2\xffq \x85\x03\x8a\x19~\xd63\x89\x08\
+\x09\x0e\xfb\x09\x1a\x04\xccn\xe9\x00\xf1\x84\x04\xaa\x1b\x1d\
+\x03\xf6]\xc4\x0e\x01v\xb0\x9f\xe29\xa5\x93\x80\xbf\xed\
+\x86b\xf8Ht\xca\xef\xe7\xac\xd2\x80\xd1\xefw\xf10\
+\x0a9\x00B%&\xaeQ\xc0L\xb1\xc1}\x0f\x17\x0d\
+\x93\xb3\xcdM\xc3\x01Al[\xd1(\x10\xa5\xd6\xbcC\
+\xcc=\xc4U\xb2\xb1\x03\xe2\xf3 B{h!\x8dN\
+\xa4\xc7-\x82;\x81%\x1a_\xaa\xd4\xfe2\xda\xf4\x81\
+\xf1V\x06\xd0\xa6?U\xb1\xb9\xfc\xbb+5W\xb3\xe3\
+>;\xcc\xfde\xf6_\x05\x0c\xe2\xa1\xc5\xe5\xdc\x00\x9e\
+G*\xe3\xa8\x88\x90\x1e\x15\x0a\x1e\xe3\x05\xadS\x0a\x93\
+%\xac0\xc9\x9f\xe2H\xfb\x1c\xe9\xf0tX:\xbci\
+b\xa4/\xe78~bb8\x8bE\xa1\x9a\xe7\x08#\
+R\xd8[q\x9fxEKf\xbb\x1c\xb9P\x9d\x5c\xc9\
+\xa2m\xb7P[\x11I+\xfb\xfc\x81M\xfc\xd2\xed\x9c\
+\xf4\xfc\xa4\x9d,\x1a\xa5\xdf\xd5\xb4\x19\xd9\xb82\xc7\x15\
+E\xcb\xe1\xfa\x22.h}\x9a\xefj]/\x1aFH\
+x\x0e\x11;\xa4c!\xe6\x8f\xbbA\xa8\x03\x98\x0b\x91\
+\xc7\x07\x8f\x87\x8e\xea\xc5\x16\xf9\xfd\x7fD\x8c,\x89\xab\
+\xb9Z\xfd\xb9\xd5f\x92B\x02\xaa5\x1a\x17\x93\xa7X\
+\x04*\xfa\xe5\x95\xd2mn\xf2f\xef\x0a\xa3*\xbd`\
+\xd1\x80\xb3\xee63H\xcc_\xbf\x8b\xc4\xbd\x00\x90\x96\
+\xd4\xf3\xbf\xbcE\xbeO\x9b[\x84B\x5c\xf9\xc0h-\
+\x8b\xd2\x81/\x1d\xf6\xd2\x89\xb6\x99\xdb+-\xc2\xfd\xd2\
+\xa8\x9a\xcf\x80k\xf6\x7ft\x9eE\xfe\xbe\x15-Zb\
+\x8c\xbb\x0d\x94S\x9e\xbb\xd2\xc0\x1e\x97\xcfY\xc5\xa0\xba\
+\x0aXu\x1bY\xe4\xaf\xbf\xc2\x220\xf4(l\xc5\xa8\
+\xf4F\x02\x09\xe5,\x02\xd2\xcfR\x87S\x9d\xb8\xee|\
+\x8b\xfc\xfb\xee\xb6h\xe7\x8b\x8f\xf8i\xfd\xe4OS\xce\
+\xaf\xc2\x8cz8\x00\xda\x12\xa7M?\xb4\x08\xfb\x81:\
+\x80\xe9`\x8b\xfc:\x93E\x1bu)\xe5\xe1\xf74*\
+i\x0c\x9ek-\xday\xc6l,\xaa\xdc\x88\x09:\xf3\
+O\xb3\xbc\x05\xb0\xcf\x89\xb2\xf5}\xbb0\xf2Wx+\
+\x8f\x86\x06\x0b\x8d,\x0aG\x01\xba\xde1\xa4\x83\xaa\xf3\
+\xd3\x99\x144\x5c`\xd0\xe0\xe3\x8e\x1b\x02\xe7\x0e\xbe\xf2\
+\x88|\x01<\xcaN5\xe4\x99%\xaf\xb5\x81\x08\xeb\x10\
+\x8f\xdf=~w\x97\xf3\xb7n\xe6n\xe6R\xe8\x7f9\
+\xc7\x09\xf9\xf5\x1e\x8bf\x7f\xcc+#\x89\x0e\x00r\xce\
+X\xb9h#\x15'\xe5\xf8ZS\x87O\x9f\xca\xb1o\
+(@\xa0\x88S\xb8!6&M\x07\xf6cg|)\
+\x0fsq\xe0\x1d+\xa3\xc0\xed\xd1\xc8{\xbe\x9b\xf3\xa4\
+\xef\x96|\xe6[%\x9f\xe1>\xc0\xa4\x82\x19K\x81z\
+\x9e\x00#\x156<\x7f6X`\xa3\x05\x833\xea\xe8\
+\x17Z-\x8ch\xa2=\xc4\xf5\x87\x19\xd9\xbdl\x11\x1a\
+_\xec\xab\xb8\x02\xa1\xa9\xf0N\x8b\x02\xfc\xd7\x91A\x0a\
+D\xc4\xfc(\x9ch8\x91\xf7\x08\xa8\xf1\x99m\xcem\
+\xf2#1\x07\x9c1\x00\x85[\x8d\x80\xa2\x91\xf1T\xf8\
+\xbe\x9e\xdb\x99S\xbf\xd1\x00\x02\xa8\x91\xa6H_|\xd1\
+\x19\xbc+Tm\x86\xc1\x8d\x16\xa1!\xc3\xe7b}\x92\
+\x8702M\x1d\x01\xd3\x83\xfb\xb8\x95Eh\xcc\xd2h\
+T\xc1\xeey\x15b\x95b\xee\xb8\x0b\xc6\x0fK\xb4\xfa\
+\x81\xf7K\xfe\x02\xc3\x82\x06\x09u\x1a\xda\x5c\x00$\x14\
+\xd6t\xd8\xe9\xbc\xd3`yI\x0dO\xea\x22\x1a\xcf\xac\
+3\xf6=\x18\x10\x884\x92?\xf1s\x01b8\xc7\xf8\
+=\xfc;\x00\x0c\x1a\x06\x12e\xf7\xcf\x0f\xc0\xc3}F\
+\xb3\x84\xbf\x07\x10A\x03\x82F\x11\xa3\x98\xd4\x97\x00\x13\
+0\xab\x1f\xb1\x08y8_\xc7\xfd$\x7f\xa4!M\xbe\
+\x0d\xb0\xa3F\xad\xdbK\xaa\x0e\x9d,\xdf\xb6d\xa0\xda\
+\xc7Bz>\xfd\x99N\xfc\x02\xe1\xeb\xf8s\x9c\x01\x9c\
+Q\x89\xf8\xb0m \xaf\xa34\x0dDU\x8d\x0b\x0e\x80\
+\xa1?kO\xa1\x8b\xe6\x00#\x04\xfdB\x9f\xf7\xc7\x05\
+\xe1\x95\x85\x80]\x05\x8c\x03F\x13(\xf8\xfb\x0c\x01\xc4\
+\xdaH\xcc\x99%\xe7\xf7RX\xf6G\x11x\xbf0\x1c\
+V\xaf\x1d5\x9f\xbd\xe7`f\xf6\x11\xea2\xd4z\xa9\
+\xf4;Ur=\x8b\xe0\x0f\xcd\xc6\x8bo8j\xea\x8c\
+\x22\xc0\x808P\x226\xb2\xa1\xf2\xd9\x16T\xd8\xe9\x04\
+\xbe_?\x97\x07\xfbS\x95\xf2\xea\x1dI\xa8t;\xab\
+\xe3\xc3\xf5\x14R\xeb\x1d\x9fu\xf5y6\x91\xe6\xc3\x07\
+\xe4O\xba\x81\xec%\x0f\xae\xaa\xa2\xbe\x01\xf1}<\xb8\
+\x1b\xe8\xba\xbcO3\xd0\x96x^Y\x12\x9a\xf2\x8a\xdd\
+\x8a\xcf\xd2\x9eg\x11|\xe2\xf5\x00`\xdf\xe2\x1d{\xee\
+\x0b\x9d^Q\xee\x07\xa7Z4D\x0eJ\xb2\x8b\xa7\xa9\
+c\xe5\xb6aB*\x8b]\xd3o\x82X\x22\xb3\xf9\xf2\
+\x8b\xa5\xd3Na\xed\x05\x0e\x94Z\xcd\xbe\xd1I\xc6f\
+ot\xbbE\x10\x85D\xcc\x06\xa6\x00\xb3Y \xa1\x1c\
+\x5c\x9a\xdd\xc7\x9f\x97B\xdeg\x91\xe9\xa8i\x1d;\x90\
+B\xa27\xbdE[o\xe3\xe5-ZG\xa9;\xc9\x22\
+\xd8>\xc9f\xc6\x11cT\x7f\xf1A&\x01\xa5P\xa3\
+\x93\x82\xea\xa8\x0a\xb4\x5ch\xe6\x08\x89\x91\x10w\x17\x87\
+c\xe3\xe3\x00\x100\x01\x80\xe2\xc0\x13\xeb\x1e\x15`\xb9\
+k8\xb3\x87\x02\x9aN3\xcc\x1d\x00\x00\x0a_lj\
+$\xdeD'\xbd\xa8!\xaf\x1ff\xe9\xf4s\xb0\xa5\xcb\
+\x87d\xfd9\xb8<@%\xc7\xbf\x1c\xffs\xb4R\x04\
+\xf89\xd5Ybk\x9e\x00\xd0\x81f?b\xa3g\xff\
+D\xedUT<\xff~\xae\x136\x9c0\xa3\x00J\xd4\
+Aw\xd1P\xdc\x22P\x1f&q\x9eb2i\xad\xc3\
+\x81=[\xfa\x5c:$\x1dR\xeek\x05t~\x9fW\
+U\x14+B\x8dZ\x1dY\x07l\xd8\xe7H\x98\x95\xb8\
+\xf8\x08\x80\xa8j\x5c'\x7fN\x00\xae\xf6\xd6H\x14j\
+\xea\x00E\x00A\xb2\xc7\xf3N\x89\xd6iw\x9dEX\
+\xb7\xcc\xb8\x9b\x8d\xda\xb3\xed:\xe5\xf2\xe2\x1a+0\xc6\
+\x8f\xdaP@x\xfe\xae\xd4h\x13\xf7\xf3\xd9\xc13\xe5\
+>\xae=\xb1V\x01\x84g3\xe3\xab\xc6\xd0\x01h\xc5\
+m\xa2;\xba\xfb\xbcuvs\x12S\xed\xeeD\x9dO\
+\xe7[\xe4|\xeb7\x16\xe1z\xe1\x9a\xa2\x0e\x19@\xe3\
+\xe0\x17\x16AT\xcef\xc9Wk3\xfc\xc37\xe5\x98\
+\xafQ\x88a\xb0t\x7f\xb7\xd0\xfe\xf0B\xeb|\x02|\
+\x03@\x96\x19\xe7\xdb\xc3\xfa6\xb8\xe6p1/\xf6\x95\
+\xcd\xda_\x05\xcc\xde\xd4\xf6C\x9b\x98/\xfb/\xe2\x5c\
+\x14\xfeZ7N\xe1U\xe2\x94\x9f\xda\xf29\x06Wi\
+\xa4\x8b\xce6#;M\x9d\xb8\x02\x1d0\x80\xf6\xae\x0c\
+\x90t_\xba?\xdd_\xc4\xe1JA\xe8\x1d\xd5\x1f\x88\
+\x12\xac\x19d\xcfC\xf4<v/t\xcf\x17\x15}\xb4\
+\x1f\xce\xb2\xc8?g\x1e\x8b r\xa7\xc2\xdf;Lo\
+\xaa\xfb\x86\xbb\x0d\xbf<|i\x98\x0b\xa24\xa7E\xd0\
+\x12\xd1(\x9b\xfbh\xd3\xe1\x92\x8a\xf6\xe0\x1a\x01\xbe\xf8\
+\x90+Q\x1c\x1dk\x11:r\x00\xf0\x88\xef\xa9\xa0@\
+;\x06\xe6\x97\xbb\xc1\x1ch\x11\x98\x0b\xa7\xc8\x8f~\xea\
+\xe0\xfc\xa2}\xc0H\x1d\xcf!\xd4\x7f\x1a\x02$\xda\xa6\
+\xb2ob\x89\xcc\xd2k\x1f\xc6F\x16fL\xf7G\x8b\
+F\xa9\x1e/\xa9\xd1\x06\x8d\xde\xe52|\x87n\x876\
+\x92R\xd6\xdds\xe1>\xe9}\xa4_Y\xa8\xf3\xb4\x95\
+\x80'\xdb\x7fG9\xba&\xfeX\xe0\xa7\xe3\x03\xd5\xde\
+\xfa\xaf'7q\xb6n\x05\x8b\xd6\x91\x87\x094\xde \
+\xc7\x86\x8d\x89W\xe0\xa7U[\xbeY\xce\xbfA\x9b\xed\
+w1=\x18z\xf8\xcdK\x0b\x03\x0a\xb2S\xccy\x0e\
+\x11EF\x04\x1bF\x22\x85\x99\x18\x95N\xbd\xd6\xa8\x99\
+\x8f2!f\xa8\x91\x12\x5cC\xba9,$\x8a\xf8\x8d\
+\xfcz@\x8eW\x0bS1\x87\x98&\xcf\xb4\x11>D\
+W}\xdf\xd7\xb9F\x07\xb8\x14\xe66:y\xa2E\x10\
+\x87\x83\xb9\xab\xf5\xe0b\x83\xd8)\xe7r\xdb\x987\xc5\
+\xd5\xe5\xa3\xa1c\x0b\xa3\xe7\xe79\xae\x0ey6\x05$\
+\x14p\x01\xbd\x83\xd3\xeb(\xe4xO\xf3\x9f)\xf5@\
+\x15\xe9Ft\x0d\xbb\xbeOiT\x02\xa6\xd3\x9f-\x9a\
+\x18-n4^P!z\xf9'\x01B*\xa4m\x15\
+\xda:$\xaf\x81aXFl6j\x0cI\x9fq'\
+\x8f\xe0\xfd\xdf/\x00\x1d\xdbV:\xef0\x018\x8fy\
+~\xf8~\x0aL\x1a\x01\x9cS\xeck\x9c\x93\xe4+\xca\
+\x03\x5c+\x0d\x0d-\xb4|\xd0\x94Y\xcd\x22P\xf5\xc5\
+<\xf4F\xaa\xb4k\xfc}\x22\xe2\xa7s\xcf5O\x94\
+G\x02@\xc3\xa0\xf2z\xa3/z\x0e\xb0E\xa1\xaeQ\
+G\x1f\x09\xd2s\xe2Z\x14\xe43\xb8\x070j\xc0\xa8\
+$L\x18\xdc\x06\x10E\x85\x89\x00\x13\x0c\xc6\x10\xff\xce\
+\xcc?b\xcf\x8c\x8e0\x82F#\x01\xa6$y#\x1b\
+7\xcc\x10\xea6\x80\x05\x98\xd14@\xfa.\x02\xfc^\
+FI\xee\xb6\x08\x0dJD0\x19e\x10#\xc8\x19!\
+0\xa0\xc9\xe3i\xcc\x00`\xd0\x90\x14s\xc8\xdd\x0f\xfa\
+\xael\xbc\x0f\xad#\xea=\x07\x02h\x0c\x91\xd7\xf2\xb9\
+\xc9\xb7\x00<\x18\xd1E\x14V\xf5]\xd1b\xf9\x9dm\
+\x8f\xa8\x1db\x87\x17)\xf8o\xd4\xe9\xd6l_\xd9F\
+\x96\x10\xc2\x1c\x0a_\xb7\x03\xb4\xc7\xfc\xbf=q\x84Q\
+\xb0\x01df\x15\x8a\x05L\x82\xc84X$\x00\x0d\xf8\
+\x11\x1b\x02?\x7f\xfb\xfde\x19F\x86\x00\x80\x01H\x15\
+H+\x9d\x7f\x0a}\x0a\x01^\xf9w\x12\x89>\x95\x9f\
+\x9f\x1f\xafCd\x06@e]A\xd4e\x12`\x0a\x00\
+:\x0c\x14\xfct\xf4\xb1o\x01\x10@\x5c\x10\xd1\xbf\x15\
+\x05X\xd0Q\xc1e\x00\xca\x1b\x05\x97\xd4X\x11)r\
+\x80\x00\xd1\x94M\x94(\xb1Pg\x7f\xbd\xc8\x85\x17\x22\
+{T\x0a\xf2`s\x15d \x97 K\xa8I\xf2@\
+@\xd9\xc1\x1f{]\xcd\x88\xa1\x86\xcd\xbf\xc3\x1c\xb8N\
+\x88\xef.\xe3]\xc7\xbb6D\x9e\xcf\xed\x1b#3M\
+z\xbf\xcel`\xc6\x0c\x91\x9dc\xabz\xb9\x1f\xe8\xcc\
+$#\x96Ha%\x11F?\xa0\xe5\x02\xe0\xaa\xbd$\
+\xdcP\xde\xd4\xe1tf\x866\xcc\xf4\x17\x8b0c\xf6\
+\xe5*\x22\xe83\x85\xa2^\x8f\xd6\xb3h\xc0S\xda\xc5\
+\x22\x88\x0e\xc9\xb7\xdc\x13v\x89\x9c\xf9\xc1,\x11\x1d\x0e\
+D\xee\x93S\x5c\xe5o\xecTt\xec\x9dH\xe8QW\
+\xe7\xba\xd2a\x14U\xaf;\xcb\xa2\x1d8\x1c\xac\xdd\xf5\
+\x16A\xfc\x11qB+|f\x0b\xd4<u\xb6\xdc\xaf\
+\xd8\xa8\x80\xdf|\x03 \x8c\xf5\xae\x99iT\x94\xa1\x96\
+\xb9\xe8\x9f\x12i\x9e\x0b\xdc.\x5cu\x9a\x0dY\xd7\x8f\
+\x99`\xb7\x85Rb\xc1\xe8\x80kCp\x80\xb0\xee\xe9\
+|\xc04\x10\xd2\xee\x22u\x1c\xec\x885\xfe\xd2\xa2\xfd\
+\xben\xd3\xee\xbd\x9d\xcdf?\xa9\x99FF\x1c\xe8\x88\
+\x82\x103\xc3\x0dEZ\x88rZ\xc1\x22\xff\xdc{-\
+\xda\x88\x8a\xcfn1\xf2\x80\x18\x8d\xde\xbfw\xc2\xf0\xed\
+\xb5N\xb0\x8d\x84|\xc6\x22\x00\x11\x02\x9e\xb0\xb1\xf4\xce\
+\xba\x0aN\xa8\xa5\x8cr\x00du?\xb7h\xebdp\
+\xaeD\x03\xaf\xaf\x94\xc4\xc1De6\x0c^\xac#*\
+\x83\xc7\x8cT\xda\x12\x1f(\xc1\xbe\xaf\xcb\x17\xbe\x88\x0f\
+\x9e\x1b\xdc:H\x8c\xd8\xbf\x10\x0b\xd2>\xe1\x85\xa6u\
+\x9e\x0e\x0f*\xe5vJ\xcc\x1c:\xc2\xd6\x91=\xb9u\
+t\xba\xc7,\xda\xbeGG\x96u\xd1\xfd\xc4\x22t\xbc\
+(\x88I\xb4\xb6\x1coQ\xec\x12\xd7\x1f\xbfk\xbc~\
+Q\xd1\xdd\xdfTtK\x1a\xf4S\xcd\xba\xaf\xde:\xc8\
+|\x1f\x0c\x08\x00\x8b\xe1G\x87;\x0fw\x09\xefGZ\
+\x03t\xfa\x87KY\x14`%GK\xec\xbcS\xae\x8e\
+h\x11G\x1b\x86s\x06Q]\xec\xb3d\xcf\x98>\x9c\
+c\xc7\x06T\x0e\x17\xb2\xc8\xbf\xff\x879~\xd4fO\
+\xbb\xd9-\xdaL\xbbSW\xd1f\xb0\x82\xeaX\x8d\xd8\
+\xdc\x1e\xdc\x00\x8cB\xb8\xae\x00\x5c|\xa2\x03\xb3\xca\x99\
+n\x02v\xa0\xb0BMt\xed\x89I\x01\x85&\xea\xb8\
+[(P\xe9\x1c\xbeb\x91\xdf\xe7\x0f,JbX]\
+E\xf4<\x0df\x1dL\x19Li\xeb\xde\x0b\xcby-\
+4j\xb1qIx\x96.\x1a\x12\x8cR\xa9\xe3\x9ew\
+\xfb\xea>\xf3\x99:3\xcf\xb9\xe6@/\xff)QM\
+\x7f\xb2\xc8\xd7\xf3\x06\x8b\xc0\xbc\xd1\xfe\xce\xb9c\x13\xd4\
+6C=\xf9\xe7\xc9\x87'\x1f.\xcfq\x01\xee\x1dH\
+\x9fR\x13\xfc\xee\x8b\xdd\x97\xba\x5c\x10w_\xb7\x08\xa3\
+EZ\x07\xa5\xb0\xfay\xebl\x96\xe7+t\xb8\x00r\
+\xe9\xac\xfb\x8c-\x8c\xa7\xab\x958\x93\xe8\xe2\xab\x0dS\
+\x87\x04\x13\xd1+\x18\x06?\x12\xe3\x83\x82\x1af\x9c\x80\
+\xe0\xb4\x91E~\xdfwZ\x84Q4\xdcc\xb0\xfb\xd3\
+h@\xd1\xae\x99N\xe7\xc2\x06\xf9\xfa]b\xd1\x98m\
+\x05\x98<H\xda5\xeb(\xcf\xd9F\x00\xf6\xe6a\xfd\
+\x19\xac\xffiu\x12\x0f\x16\xa0\xf4hs\xb5q\xf10\
+5\x06\x0a\xdc|]\xd1t\xc8\x11\x5c\x82L\x8d\xfes\
+\xb2\x95\xdb\xa9\xd95\x96\xc2y\xfb0\xe2\xa9s\xcc\xf7\
+_\x5c\x04\xc4dr \x80\xc4\x1aW\x011g|\xa6\
+\x9f\x11\x01\xc4b\xc9\x7f\xb4/\x8e/\xab\x9d\xcf\xc2P\
+0&\xca\xda\x169_x\xc0B\xaa\xdd\xf9\x5c\xee\xbe\
+c\xd1\xfe\xddg\xab\xd9/U\x90\xa5\xbd-\x04\x0c\xbf\
+\xad\x89\xf1\x15{\xd0\xaf\x85\xc2I\x8d\xa8\xf1\x8c\x16!\
+\xef\xe5\x5c\xd69WN\xf7\x0d\xc5\xdc[.h}\x00\
+HQ\x88\x92\xf7B\x81\xde\xc5\x22\x14\x1c\xe4\xcf\xf8\xb0\
+[\x961\x08\xe7\x03\x1dh1\xe4(\x5c\xd0\xc6Iw\
+\xa7?\xa4?\x04\xd7\xa4\x1f\x8c\xa7\x8e\xa7\x16;\xdb\x1c\
+\xf9\xcb\x17W\xa7\xff\x93\xd5\xe5\x80\xfb3\xde\xcb\xa2\x15\
+\xc0.F\xa8\xd1:\xb7Oc\xd4\x8e\xce4\x94r\xf2\
+\x05\xf2o\xf2k:\xcaP\xaf\x01:\x19\xb9C\x0c\x98\
+\xbaCu\x06\xcc\x1b/\xf4\xa8k(d\x05(\x00(\
+9\x00\x05\x10*\xad\x1eol1b\xa0\x02\xdb\xb5h\
+p\xc7\xa2\xd1\xb0\x94E\x98\x9dg\xfdh\x7fp\xcd\x0a\
+\x1a\x0e\xdc\x17\xde\x17LB\x01\xa5.\x86\xa8\x06\x90\x7f\
+\x1e\x80\x1c\x98>h(lg\x11\xecw\xc9\xf3\xe8\xe8\
+K\xa4\x94\xd1N\x17-\xa5 '\xcf\x07\x18E;\x01\
+1ED\xb5\x1fV\xc1M\x01O\x01L]\xcb\xe8 \
+\xf9%\x852\x1d}\x9e\x0f\x1al06\x00t\xa8'\
+\x00v\xfav\x82\x5c7\x1a\xb0\xdc\x7f\x01\x00\xacg\x0a\
+w\xd7V\x00Hd\xa4\x02\x86'\x9f\x03\x86\x01\x8d\x1a\
+\x80\xa3y-\x02`\xd4/\xf8\x01\xa8\x00 \x00\x98y\
+\x1e[\x9dZ\xb4H&K\xe1\xbf\x98\x12\xc7%\xc2\x01\
+\x1fg\xef\x17\x0c\x94\x7f\x15\xe4PD\xbc\xa3\xceh\x00\
+\xd4~\x0aj\x12\x0d\x0a\xb1\x19\x8a<\x5cChx\xc5\
+\xde\x8f\x03\x8c\xc2{\xe1:c\xea\x88\xeb\xd2\xf5\x80\x9f\
+\xc6\x9e\xaf_\xe8\xd3\xf9G\x95\x1d\xe4\xb3_\xf8\x03\x08\
+\x90\x10\xe2\xfb\xcdF\xdb\x1f\x81\xe8\x03\x00P\xef\xb1A\
+\x81\xfa\x0c\xd5\x9fWf\xfd\x01\x06Hl\xf1AW\xa7\
+\xca\xbf\x9f\xeb\xbaB\xaf\xe3\x8f\xf8\x15\x00\x82\x00\x06\x17\
+c\x82\xb1\xb0y\xaf\xc3\xff\xa2\xa8\xfa\x88\xb2\xa1F\x8b\
+\x9d\x13*\xa2 \xb4\xcc\x08k\x03\x06\xa8\xf1\xd9\xd4Y\
+u\xfd8@)\xe8@\xa6\xd6\xd3\xfb\xdaP\xaa\xbd\x8c\
+@\x90\x80\x90 \xaa\xa39\xb8B\xb3\x89$* \xab\
+P\xa0\xd4\x91\x18/d\x11T\xe1\xe9\xec\x89\x1a\xe8\x1d\
+e!\x9e\xe6fl~\xc6t\x0cI@\x9db.F\
+AN\xfc\xd7/\x89?\xb38\x9aI\xf6\x82_\x89\xa4\
+\xab.3\xfb)\x91\xc5\xee~\x8b`\xfb\x86\x0d\x1b\x14\
+,!{i;\x8bF\xc5A\x5c\xcegy\xd9\xb8\xf1\
+e\xd6\x83\xea\xfe\xe8t\x9eH0@^\xf9\xbdt\xc4\
+D\xbd\xc2\x87\xdd\xa9\x9bb\x1e\x8c\x87\x16\xcd\x8e\xaf\xfb\
+\x93E\xbb\xbf^\xf8J\xc4\x91\x91\x00\xa7l\xab\xf0u\
+\xca!~\xc9\xd8\x91h\x1d@u\xf2\xd9a\xcd\x8a\xfa\
+A\xa7\x03\xc6m\x19Y\x9f\x8c\xe6\xb0\x0e@\xe0U\x98\
+\xb8\x9a.\x89\xa5\x18\x02\xd8 \xbaz;\x14+\xbe\x0f\
+\xd5}m\x8c\xce\x90\x81R\x87\xa8\x22\x08,\xc0\x95\x0e\
+\xfe\x9c\x86\x94\xef\xb7~[\xe9\xb8I\x85\xdd\xd5\xa3\x99\
+Q\xd6\xbarQ1\xb42z\x14\xadB\xb1\xbe> \
+\xf4\xd8|B\x01d\xb6\x9f\xefct@\x05u\xa1t\
+~* \xbc'V_\xf8\xf1\xfc5\x81\x05pq\xa6\
+\x8a\xdc\x03<\xa1\x831\x80\xe8&\xef[\xb6|hW\
+\x0cnVazV\x15G\x1b\x5cX\xc5\x87J\x07o\
+T\xa8\xcb\xf7\x1au\xb9\x00\x7f;\x94\x02\xfe\xf0B\xe5\
+\x87\xa1\xa1\xd9K\xd6\x0f\xea\xe9\x8c\x08\xb9(\x22>\xce\
+6\xf3\xfc@\xbb\xce\xaeI \x8a\xb4\x17\x86\xd2\x90(\
+3\xec\xf9@\xb4\xc9\xea\xee\xc8\xb6\x0f2\x13\x9b\xbea\
+\x91\xff\xfdP\x8bp]\x19\xc12J\xff\x91aFw\
+\x85\xf1\xf2\xc5\xe6\xaa\x0a\xc8z\xa1\xe9\xc0'\xfb\xbf\xc4\
+\xa1\x06\xd7X\x04\xc4^\x85\x08\xfbg\xe9\xac\xef\xdd\x0a\
+;\x00\x19O\xe4\x94\x880\x9b\xc7\xec\x9e\xbb7`\xff\
+C\x82n\x09\xf5d\xb0!\xbc\xd4\xa2\xa9E\x17@3\
+?\x0f\xdd?r<\xd3:\xe1\xc5\x0e\xec\xaf*x\xac\
+\xc0;6\xc7qb|\x9d\x11\x80\x1c\x83U\xb6\x14\xc3\
+\xe0\xf6p\x0eH\x03\x01\x9fv_73Y\x14\x00\xb5\
+v\xa6\x1f\xa8\xeb'\x97\xe1/\x0e^\x0c\xa2\x9c\x02\x9e\
+\x00\x06}\x1dB\xfd\xdd'\xedk\x14\xe5\xd1\xfd\x16\xe1\
+\x9c\x14p\x93.\xb6h\xae\x14\xe9Y\x8b\xfcza\xba\
+ ] \x9b\xc43\xca\xf3\x7fG\xd1\x0a\xc1\xcd`\x1b\
+\xad/\x9e;[/\xf7\xb7\x11\x04\xd7\xa0\xe0\x5c\x91Z\
+\xfa\xc4\xdfjB\xec\xe7+\x80\x9f\x80\x88\xe1\x99\x16\xf9\
+\xf5!\x8b\xd6\xd9\xc2\xad\xa2[\xcb\x22\x7f\x9e;,\xc2\
+\xe8\x83\x00G\xf6\x0f\xf6\x0d\xef\xe8\xa1\x09\x84v\x8a\x80\
+\xa72\xa3=gHH\x05Xw\x07Y\x94\xc2\xb8\x02\
+R\xec'\x00-$\xfa\xcc\x86r\x9f\xc9\x83h\xc4\xd0\
+\x81\xa2\xa3\x0d\xc0(`\xb1\xfb\xbeE~\xdd\xac{_\
+\x97\xf7\xf7\xd1\x9f,\xda\xfbH'X4[\xba\x22^\
+\xb7|\xd18\xd8\xbet\xca\xf9\x1c\x1aq+\xd4\xf5k\
+\x1b`\x07\xf0W\xce\xcd\x05\x9b\xf6E\x01\xb6\x1fi\x9d\
+\xcf\xb4\xbdE\xfe\xbe\xefU\x91O\xb7}\x83\xe1\x04 \
+oZ\x00s\x86\x0e\xe6a\x16\xe1\xfd\xa9\xa0\x84B\xee\
+v\xb7$\xf4$\xce\x5co\xce\x05\xf29\x01\x10\xd8&\
+c\xd3\xdb\xbd\xd9\xa20Q^0&J\xbe^9\x8a\
+[\xd0Y\xa3\x5c\xe0\x8fN\xb4\x90\x08\xddJ\x1a\x05Y\
+)\x00\x97\xe4\x8d\xe4i\xca\xaf\x5c\x8c\x93\xff`\x8c\x0a\
+\x88\xc0>\xcf\x19-\xd8\xb4\x8a\xe1\xe46\xaa\x06\x18]\
+\xdd4\x1f|\xf4\xc1\xb2\xc5\x15\xc2\x8c\xfdGzL\xd2\
+\xa9\xb5\x10\xcf{\x85E\x9bIF\x13\x05W&\xc4\xe2\
+\xc4\x08\x19\xcf]\x1b\x14>\x0a#\xf7\x84|\xd5v\x1c\
+\xef\xd8\xf6\xdf4W\x9a;\xe5\xeb\x9d\xbe`\x11\xb4\x10\
+\x94\x17\xe52\xf8\x89\xf1\x13\x05(\xf9\xf6\xf8\xdb\xa5\x10\
+*@\xbaIZ\x17Qk(\xe5h?\x09\xb0r\x06\
+*\xee=\x88\xc9\x01\xf0 \xbe\x06\xa0\xcb\x08\x1c6\x8c\
+\x8c\xae\xa2\xbd\xc3\xc8\x18\x8d\x0e\x89\xd6:\xc5\x9a<\x5c\
+\x0d\x07\xec }\x06\x9c\x86\x86FP\xbdP\xa3\xfe\xa1\
+N\xa0\x81G\xde\xcaH\x03ZF\x00\x00\x9cK\xbc?\
+(\xe10\x80\x98\xb9g\x84U\xa2\x92^0\xf65\xd0\
+\x10\x15\xe7\xfd\xb2N\xf8\xf7\xedK\xb8\x88\xa3\x17\xe4\xd4\
+%\x88\xfb\xe99\xf4\x82\x99\x02\x97\xf7\x8dk\x10\xf9\x0d\
+\x0d$>_O\xbc\x0eqd\x1f\x89\xe0\xfd?+f\
+1\xf9\x22\x85>\xf5\x0cb\x9a\xff\xb6\x08\x0cJ\xf2J\
+\xb4\xa4\x00\xf6\x01@\xd0\xbabd\x03\x91\xe9\xad,B\
+\x1eJ\xc3\x92\xcf\xc3\xfa\xc0\xa6Q\x1aY\xbe\xbe\xc8\xc7\
+a>\x00\x0c12\x8b\xda\xbfD\x94m\xb5\xdbz\xf7\
+|\x96:\x97z\x89\xebI\x83\x03@\x8b\x86\x0b\xf7\x11\
+QI1\x1b&_G\xf1_\xb0\xf7\xba@x\x95\x0b\
+\x80\xdb\xf3\xf1F)\xc8I\xdc)\xb4)\xac\xf9y\x9a\
+\x1d|\xdd\xecz\x9c\xc5g\x84\x80Wi\x09\x94\x0e\xea\
+\xec:\x80\x96\x0a\x89\x17@\xc3\x12e:\xf3\xf5\xa2|\
+\xf3\xbd\xc1\xec>\x9d}\x0a\x0b:\xdf}\x91\x07\x16\x1c\
+\x94\x1d\x1edf\x94\xfbj\xd5\xab\xa9\xf0\xc5\xa6d%\
+uF@\xae@\xa2\xd8\xb8A\x16)\xdc\xdfb\x11\x0e\
+\x146~\x0aw^\xb9\xdeh\x07Pp1\x83C\xe1\
+\x02\x80\x00RK\xa7\x86\x05\xc3\x83\xc8\x9f\xe9,\xa93\
+\xec*\xb5\x9a]\xf1\x8e!\x89\xac>\xc7\xf8\xe6J\xcd\
+vd\x14\xa4\x9b\xf7\xb1\x84\xae\xd7\xda\x02\x16D\xa9\xf5\
+\x82\xef\xccJ\xc9t\xf1\x19D\xef\x0e\xd1\x8c\xde\x85\xb5\
+\xa3\xe9\xfe\xf6$\x22\x00Jl\x18\x9a\x15\xc6\x06\xd0}\
+f\xd5\x19A\xdd\x9a\xc4\x18\xea\x9c\x8fz\xbcd\x11\x0a\
+\x01\xa9\xaa\xba\xdd\x15n\x03$\xd0\x8fZ\x04\xb1\x99\xd2\
+\xdak\xe28t\xf6\xa1\xc2y\xe1\xf1+\x8b\xb0\xb1\xb0\
+\xd1#\xd2\x88(\xa3(\xff\xc5\xb7z\x960s\x8d\xa8\
+\x13\x8c\x11\xec\x1b9\x80\xe9hc;\x85\xed\xa5\xd4\xa2\
+\xdd\xd6\x8e\xfbOa\x0b\x15\x16W\x07\x12\x06%\x10N\
+\xc9&\x11\xc5vG\x1b\xbf\xbb<`\xf7\x02\x15\x9fY\
+b\x89\xbfq\xd0\xf9z\xe5\xf7j\x7f`6r\xf0E\
+\x8b\xf0|\xa2)\x00\xd5\x9b\xce8\x9dGF\x1e\x00\xe2\
+4\xb3\xe93\x7f0?\x10/\x22\xb1\xe1\xf9\x142\xed\
+\x94,idx'\x9f\x03\x0b\xc4\x18\x84\x9a\xd91F\
+ZH8\xb4\xbf\xd1i\x80z\xec\xd4wS\xb3\xbe%\
+\xd8\xd1\xc1\x10\x02\xf0\xc4~\x8eYU=_\xa6]_\
+\xd4\xeb\xd5\x11p\xbb&1\x1e\xdc\xeeO\x85\xce\xf8\x14\
+%|\xd7V\x11+\x9f\xbd\x04\xd8\x83i\xf4\x7f*X\
+)\xb4\xb1\xb1\x83\xd2\x0c\xe2\x8ek\xc2\xa3\x15HK\x1f\
+O\xbb\xa7\xdd\x0b\xd0T\x00\xbaB\x0d\xff~I\xa8\x0a\
+3\xa5\xecZ\xcb\x85\xf5~ay\xa2]L\x0e\xea*\
+b\x7f\xbe\xee5\xaaPf\xba_j\x9d\xc0\xc1\x8c\x16\
+m\xfdx\x81\x03\x80(\xb5\xfc\xd2\xf1\xfc\xbb\x80\xad_\
+\xaaC\xb9[\x98\xb5\xd6\xfa\xc5\x06\xb3\x94w\x7f\xd3\xbe\
+\xb5vc\xfap`3j\xc3\x0c4\x1dv\xdf\xef\xa0\
+\xd6\x8a\x81\xc1(\x00#_\xdd\xe6\x16\xf9\xfb\xb7\x10\xc3\
+\x80\x02\x84\x91\x08\x98FrAa\xa6\xd5g\xb6\xe9|\
+\xc0\xa4\xbb\xb8\xdar\xf9z\xb34\xe9\xf1\x96\xb0\xa5\x0f\
+Z\x84\x8e\xd4\xc3\xa5G\xe2\x0c\x80\xd29\xb87\xb8M\
+\x18\x80y\x8c\xa8\xbf\x9fh\x00\x03\xf6\x8ber\xfb\x88\
+\xe0W\xbeJ\xb5\xc5s\x7ft\xc4m/\xae\x9dOw\
+;\xd1\xba\xa1\xb0\x06\xe0\x01\x10\xf5\xef\x170\xe8\xcf1\
+\xe7\x1a\x00.\x80\x95\x00\xc2\xf4{\x8b\xfc\xbae\xda\x22\
+mQ\x98 U\x15\x9cQ\x84\x17\xcb4hs5\xa0\
+\xc0\x7fj\xf0\xa4\x89\x0bN\x1c)\x7fw4\x11\xa6T\
+f\xc1\xf0\xfc\xe1\xd4a~>\xd3\xeci\xb64[\x13\
+\x99C|m\xf8\x8f\xe1\xd3\xc3\xbcn\xd3\xf1\x16\xf9\xcf\
+\x8bZ\xe4\xd7\xfb,\x82x\x97\x98C\xdd\xb3\x16y\x9b\
+]\xde\xa2\x9c\xa3\x15\xf0\xd4\xf9\x98\x1e\xb1\xc8\xaf\xe7Z\
+\x04[;\x00\x80IQ}\xa5u\xe4\x9d\xa3?Z\xb4\
+\x99r\xdf'\xb5?\x8d\xffV\xd7)\x1d\xec\xf4o\x8b\
+\xfc\xfd]u\x0f\xf0\xfb\xf8+\x8b\xa0Z/\x06\x193\
+\xc4\xeeB3\x83E\x13\x9d3\x97mS\xf5\x1e/b\
+\xd1\x80\x04o`\xa0zn?g\xc5\xc0H\xb2\xd1\xb5\
+cD}\xcf\xe7\xc6\xe8\xd0\x1c\x9f\x0b\xa3t\xd6\xf9\xb6\
+\x04\xf7C%\x5c\x0b\x22-\x98c\x01\xb9\xeb\x9c\xde\xa8\
+\xbb\x9c\xd3\xe9-\x16\x81\xea\x8d]\xa1\xa9\x94\xaf\xa3\xe7\
+\xe3\xc9\xb0\xae\x01\xac\x9e\xac\xeb\x81\x82\xd6\xed@\xb1\x09\
+T'\x10 \xdf\xb55(H%\xf6\xc7\xfb\xed\xb6\xb4\
+\xc8\xafkZ\xe4\xd7\xc7-\xf2\xeb\x12\x16\xf9\xf3n\x9a\
+#\xe7\x17\xdd\xc3\xd5\xc6\xd3L\x1d;\xcb\x17\x16\xb6h\
+\xfb;\x85\xb5\xaf\x93;-\x1a\x93h\xf0\x0d\x0bi5\
+Lm\xfb\x8e\xe71\x00\x89z\xeehX\x94\xe7{\x8f\
+p\x0e\xfca\xe2\xaeR\x08\xc0\xa8\x93\x0b\x00\xb6\x82\xb8\
+\xc5x#\x8a\xfc\x00\x0a\xb5\x11\xa1\xbf\x1a\x00}\x1a#\
+\x1f\xd6\xbaD\xdb\xe0\xf1\x5c\xb0?&W\x95O\x85|\
+\xf42iT\xc8\xd6\xd1\x14w\x8ci\x92\x9e\xb2\x08\xe2\
+{\xf7\xd6N\xe7\xf8\x92\xcax\xea\xce\xb1(.\x07\x85\
+\x897^u\xbc\xca8\xefG\xf6\xff\xe5ue\x8b\xa6\
+\xcd\xe4LI\x01\xe0\xe4%\xd3P\xbf)\x9c\x01\xf8\x00\
+\xce\x10\x13f\xd6\x9a\xce\xac\x1aN>\xea\x085\x1f\x86\
+\xae\x98M<\xaf\xd3\x88\xd7\xa9P\xf3\x11T\xf2l\x0a\
+K\x9d7\xae\x01\x83f\x16\xee\x1f\x8cZ\xc0\xec#\xaf\
+EL\x1b\xdbI\xea\x06:\xfb\x88\xc4\xc1\xbcP\xde\xe8\
+\xa3\x0fOT\x80\xc5\xeb \x0ad\xf2%\x0al\xea\x07\
+\x80t\xb4\xc6\xa8_8\xaf\xe8LKT\xd3?\x0f?\
+\x87:\xb1\x0f\xb4\xf1\xf5\xe4G\x14\xfa\x7fR\x81\x8b\xa8\
+\x22\x05.\xfb\x1fv\x85\xfc\x1c\xea8~\x1e\xd7\x85z\
+\x8f\xba\x15\xc0\x04\xed&>?\xc0\x801\x89\x0e\x0d\x0c\
+\x9f]\xc5`ft\x95<\x15\xc0\x81\xcf\xcd\xf3B~\
+G#U\x9a\x1d0\xff\x10\x8b\xf4F\x14u\x1c\xa39\
+\x00\x01\xd8\xf5B\xe5\xff\xaeE\xb8\xaet\xfeYg\xba\
+\x0e>\xca\xc0:\xd4\xf3\x5c\x8f\x99\xe9\xf5\xc6\xa6\x04U\
+~\x0acl\xfb\xac\x5c\x99\xf3\x0dT\xefA.\xfa6\
+}\xd8\xdb\xd1\x01\xe5\xc2\x02\x10PHS\x08\x01\x08\xf0\
+>f,\xf2[\x8d1\x00C\x00\xc0\x80\xef\xe3\xe7D\
+\xeaq,\xfc\xa1$\xfd/\xbb>^Y\x88 \x5c\x14\
+\xde,\x906\x9aP\x16TN\xbbK\xa1\xec\x14!\x10\
+c6L:Y*\xa8\x1d\x19\xe3\xfa\xb0\x00\xf9\xb9\xfc\
+>\x1e4\xbe\x1f\xaa\x1e\x94\x98\x1eBT`\x90\xc5\x02\
+@\xc1\xcf\x019\x94\x98\x92\x7f\x0e\x1e\x5c\x10G\x00\x0e\
+\x16\x0e\x0f.\x89\x07H\x1a3C\x14\xfc\xcb\xebsB\
+\x81\xe1\xe7\x03l\x00x`\x93\x22\xea\x90\xab\x81\x938\
+CU\xa4PR\xa2\xe7\x07\xaf6Z\xefD#\xc6\x03\
+\xc2\xc8\x8c\x113v\xd8\xad\x80 \xd2q\x80\xe2\xc6\xdf\
+\xb3a\xd3\x91#\x01\x90X\x91w\xda\xd5)\x1f?d\
+\x11\x90>\x1d$\xdd\xac\x16\xad\xd3\xe3#\x12\xda8\x10\
+[L\x87Y4\xa0\xc2\x13Vf\xd0H\x00m\x96q\
+\x83F\xb9b6\xdfg\x84%\xe6\xe3\x9a\x12\x88\xd3\xf0\
+\x1f\xf7\x0b\x1b=\x0aZ\x15\xbe\x14\xd8~p\xa0Z\xac\
+\x04\x07q4\x0eF\xef\xccc?\x02uN\x1b\x0c*\
+\xef\x0e`\xa1~~\x81E\xb0sA\x0d\x1bF\x00\xaa\
+\xca\x9a\xad\xf4D\x14\xaa%\xfb\x87\x00\x10D\xa6\xfc\xba\
+!>\xc9~Db\xc1\xfdE\x8cF\x22I\xae\xf2\x8c\
+\x08at;\x99?\x1c\x90\xbaNt\xda\xb0\xfb\xf2Q\
+\x91\xb5-B\x02\xc0s\x86z.\xae\x08\xea\x18\xba}\
+\x18@\x92Ti]\x14\x92\x0e%\x0c\x15:\x93\xf2\xc5\
+\xf6\x91\x0e\x00\x07\x9e{\xf6)\x00\x08|\x95\x85\xf4\xa6\
+9r)3{\xd8\x97A\xa6\xd9w\x00\xfe\xce\x95\xda\
+3\xfb\x063\xf6b\x8e8\x85\xef\x0eQ#\x99\x0d\x14\
+@\x90\xb6\xb6PAy\x85\xa8\xdc\xffQ\xc12o\x10\
+E\xb4wwkP\x05G\x15\x9a\xf3\x80\x03\x0fj\xa0\
+:s.\xf2\x88}*\x09\x19\xfb\xa0\xd6c\xba\xc9\xa2\
+\xdd\xaf\x22\xb6\xf7\xe5\xa2\xe5\xb0~\xb1\xc128\xe8\x98\
+\x00p\x89\xba\xec.\x00JP]\xb5\x1a`nA\x8b\
+p\xbd\xb4?\x00\x88Y\x7f\xbbt\xb8%\x96\x05\xe3\xa3\
+\x1c\xff\xcf\xb4\xe7\x81\x8e\xcb\xe8\x9a\x1c?o\x05\xffp\
+\xd2\xa2%\xf0t\xf0<\xa1`\xb6Sn)n\xcf\xb9\
+AQG\xa9\x80\xde?\x04H\xbc\xb5u\xf2\xd2\x1e\x16\
+\xf9\xe7\xafm!W\x93\xa3D\xd5|4\x8c\xa8\xd8\xf5\
+=5\xd8\x05\x1as\xe1\xcf\x0dpq&\x9d\xecM'\
+~(\x15\xfdm\xabj\xbe\xab}\xc3P\x928+T\
+E\xc4\xdc|\xffB#\xe3?\x16\x81A\x82\x86\x09\x7f\
+\xcf\xf3\xa3\xd9o\x17\xe7\xfcC\xa5\x06;\xf5\xff\xfa\xca\
+`r\xe6\x19\x8c\x16\xed?n/\x0b@\x85\x96\x8e\x80\
+\xc1|J\x15\xc00}\xda\x22_/\x93\xf8\xc8\xfbg\
+Z\xca\x22\xbf\xce\x96fMf\xcb\xb7Y\xf5\xa7\x1f>\
+\x98\xe3\x81\x00\x883\x8b+\x91\xb3\xeei\x8b|\x9f\xff\
+b\x11f\xac\xa5\x19\xc2(\x9e\xab\x9b\x9fg\xd1\x0a\xbe\
+\xf16uD\x8dN\x8f\xfb\xc5o\xa6\x19\xf5;\xea\xec\
+\xa6\x03r\x02\xc8\xa1\xfavo\xb1h\xeb)}\xde\xa2\
+\xd9 \xfa\xba\x82\xda\xcb\xf9&J/\xfb??\x07W\
+\x09\xa7\x82k\x9fb\xf4\x81}b\xfc\xf1\x1c\xbbk\xf4\
+\xc5\x0a\xdf\x99r\xcc\xa8\xf3k9\x8d6\xcc\xa3Q\x01\
+\xd3B\xb8\xc5\x22\xf8\x90\x0bP\xf0\x8e\xe9\xed\x16\xf9\xeb\
+\xb7\xb3\xc8\xbf\xefr\x8b\xa0\x0d\xc2\xfd\xa6S\x09\x83\x11\
+\xea\xf4g,\xc2\xfe\x08\x83\xcb\x80\xd9\x90x\xa3=\xe2\
+@ #\xa4h\x00hd\x90\xce\x99\x03\xf9P\xa1e\
+\xcf\xd6Mg\xd1FCF\xff\xb1\xc8\xaf_\xb2h\xa3\
+\x0cnC9\x93f\xbf\xe9\x18\xeb\xfd\xa3\xf5\xc0zw\
+f\x14\xf6\xaao\xb7h\x80\x9dk\xfbP\xa0\xe7\xdd\xbe\
+0s\x9f\x9ax\xca\xf6O?\x07u\xaeb\xc3\x89}\
+d_E\xdf\xed\x00m7~{\x10E\xa3`\xc4\xed\
+\xc6\x00\xa8\x0f\x87}\x11\x06\xed[\xf5\xdcZ\xc7~I\
+\x15\xac\x9f\x09\x05\x0e\x0c\x0b=\x87i\xd2\x22?W\xc7\
+[\x94\xfd\xbf<\x97\xdd\xecU\x13\xc1GL6\xb4\x08\
+\xa2\x87\xf2\x89\x07hq;c\x98\x08P\xd1\xc5\x80\xf3\
+\x99t\xfe\x8c\x0d\x1d6\x86\x9a\xedv\x8d\x2243^\
+y=#\x96|\x01\xd7\x10\xff\x5c\x12\xe1\xf3\x82O\x8d\
+\xaa\xc1\xa9\x15\xb0\x99\xb8@@.\x8d\x04\x0a`\xea\x07\
+\xf2w4\xbe\xd0\x90\x10\x00\xea\x9aP?\xb2\x08\xccC\
+\xe5\x89\x0e\x0c\xe0N\x81\xbb\x0cL\x0d\x8d\x8c\x01P8\
+\xa5\x9f|\x1e \x04\x9bg\x00M(\xeft\x90)l\
+aJ\xa1\x85\xc3h\x02_\x0fc\x8d\x86 \xa3\x15\x88\
+\x8132\xc0\xdfS\x7f\xd0p\x00\xc0F;\x80\x11\xce\
+\xa7{\xb6|\x5co\xe5W\x88\x9e\xba\xbb\x00\xccs\xc4\
+\x0da\xb2@\xa1\xa7\xa1\xca\xd7\xc1,\xe7?\x981\xbc\
+/1a\x01\xea\x19\xc5\xf2|\x92\x06%\xd4|^\xf9\
+=\x8crc\x8b\xc9z\x05\xd0`}\x90\x0f\xe3\x86\x86\
+\xed\xa3\xf2\x7f\x9e_\x00b\x17\x17\xe5\xf7q]\xc8\x87\
+\xc9\x9b\x18\xbd\xd1\xc8\xc1\xa4_x{|g\xd3/\x9a\
+\xae7\xa3\x1f\x0bnD\x17(\xb8\xad\x5c\xfco\xd8H\
+\xa2J\xfcK\x8d\xea3X\xda\x22t\x84\xf8\xf9\x1cH\
+|?\x7f\xe6\x95\xafCD\xd0[\xa1\x95\x9a\xe9\x1f\x98\
+\x8e\xa7D\x9a\xfc\xc1\x02\x00 \xd1\x041g\xe1S\x80\
+\xf1{\xa0\xca\xf1\xf5\x14\xc8\x88\x86-\xa3\xc2vU\x8d\
+\x08\xa0\xfaI\x01\xdc\xa8\xfb\xf5\x95\xc4\x9a\x07\x9c\x82\x1f\
+\x80\x85\xcfMb\xbe\x90\x12\x98\xa5D\xf9\x87:\xcf\xcf\
+\xa3\xd3I\x87\x9a\xc4\x99\x85\xbb\xa8\x12\xfe\xc5\x84|-\
+\xab\xcf\xcf\x01\x093\x80\x04zv}^\x890\xf9L\
+\xf4|\x1a\xf1x\xbf\x1e`\x0e\x5cf\xc05\x13\xed\xbf\
+\x17\x80`\x0d]w\xc4\xbb\xe8\x94\xb1n@L\x111\
+\xc26\x0f&\x04\x9d\xea\xa5\xf5`hc\xc1\x7f\x1cD\
+\xd2\x13x(1\xb8\x07\xa8`E\x1c\xcf\xedPH\x14\
+@H)\xa0P\x17\xc6\x9f\xf8\xeb\x16\xf9\xfbw\xb4h\
+bU\xbea\xb0!\x08\xb8\x80\x92\xe5H\x1c3\xe4 \
+\xca\xcc\xdc\x7f\xd6\x22lT3X\xb4\xceK7\xbfE\
+~=\xd8\x22\xcc\xae\x81@\xea\xc0qQ\x16\x90M\xb4\
+#\xb0\x87\xa3P\xa2\x93F\x87\x0e\xbfm\x1d\x9c\xfe9\
+\xf4\xfcP\xe0\x02\x08\x0c7\xb1\x08L\x1a=\xffn\x87\
+E\x81\x0e3\x80N\x04\x14*\x1d\xf0\xfe\xf5\x88\xa1\xf0\
+{\x95`y\xc7\x9f\x02\x9e\x82\x9e\xce\x82(R\x1c\xcc\
+\xfe\xfe\xd1\xac`\x86\x8b\x0d\x8e\x0e\x07v'\xa2\xe22\
++\xee\x80\x86\xd6\xab\xab\xc0\xb3o\xd1\x81\x82\x12\x8c\xc8\
+\x9d\x00)FR\xa0\x00;\xc5\x8e\x03\x14J\xa8f\x22\
+A\x8e)\x98\x9d\xd1\xa2\xce\x97S\xf7\xa0\x8c\xa1>+\
+\xc6\x8a\xef\x0b\xa8\xc4\xb2\xef2\xf3\x8f\x1d\x904\x05\xa0\
+b\xbb\xab\x85\xa8\x8c\xdeae\xdd\xf0\xca\x01\xcd\xfb`\
+\xc4\x00\xe6\xcc\x9e\x12\xdf\xc4\xe6j+\x89\x0bQ\x98J\
+{#\xad\x96#\x17\xa0i\xba\x9c\xd0M\x17DL\x8d\
+Gq\x8bFS\xde\x13\x12r\x01\x12n\xb3\x85\xa6\x81\
+\x10p\x17}\x94Z7\x14Kg\xc0p]HPU\
+\xd0\x16q\xbc7\x05\xc0H\x1d\xde\xd2?xT\x22`\
+\xbf\x91\x88\xe8\xbey\xf9/l\x11:\x19\x9c\x0bt\xd8\
+Y\x97$>Pnu=L\xa2\xceD\xeaJ\xc2\xbe\
+\xb8:!\x9f\x0e\xf6<\xba\x8f\xddl9f/\x14\xe0\
+\x1cZg\xdbIlk\xe7|\xfc<o\x91\x7f^\xc9\
+\xe8\x9b\xb8\x9f\xab\xdbK\xa3\xc3\xc5\x0aEu5\xa9,\
+\x13\xcbr\xc0\x90\x91\x0f\xa3\xda\xe6\xeb\x90v\xb3\x90\xcf\
+zN\xe0G\xff\xb5\x08\x80\xb5\x00\xda\xf2}\x17h\x1d\
+\xa1B\xbfB\xb0\x89\xa4@\xbf\xad\x8e\xd6\xa4Y\xd2\x94\
+4%\x004\x9c'\xea\xe4\xe02`_\x95\xa6\x84\xeb\
+\x01@\xc0\x88\x14?\xf7U\x8b\xd2\xa9/\x85\xb1k\x93\
+\xa8\x93\x0d\x80\x87\x18)\x00E\xfe-;\x9a\x06\x02j\
+\xdeia\x8b\xa6A3xn\xf0\xcc\xe0\x99\xd0\xc1\xa3\
+\xe3E\x82.\xc0\x8d\xe7\xda\xd5\xc5\x05x\xfah\x8f~\
+\xef\xe4\xb2\x16*X\x17m\xfb\x7f\xb4e\x11\x00\x00 \
+\x00IDAT\xed\xe8\xfd\x16\xf9uv\x8b@\xb9\xde\
+\xdf\xa2\xed\xfb\xe9\x84\xf4\x95\xe2w\xcf\xc8\x8e\xf6\xa7\x5c\
+\xae\x17 \xc9\x99j\x17\xcb&\xf5\x13\xb5s\xdb\xad#\
+\x9b\xd8\xc3t\xee\x22\xe6\xfa\xbeJ\xc5\xf7}V\x00\x1b\
+\xe7\x0b\x80J\xba\xad\x8a\xd8\x22v\xd6me\xd1\xec\xd1\
+\xba\xe5,\xc2H\xcb\x09\x16\xf96\xec`\x91\xff\xfdB\
+\x8b\xaaR?\xce\xfbjw\x8cE\xd1\xa4)\x05\xb2\x17\
+\xc0V\xb0[G|\xc1\x1c\x0b\xb4\xe7y<C\x8e\x19\
+%b\xf7\x8e\xa0N\xad\xeb?\xde\xc4\xa21\xe1\x8a\x08\
+\xde\x81\x01`\x10#-\xbd\xc7\x22\x14\xc6\x9c\xef:W\
+\xbc\x10:\xcf\xa2t\x88W\xb5\xbc\xa1\x00\x8a\x9f\x08\x1a\
+\x1aP\xd9\x95\xbf\x99g\x84\x8d\xc6xao\xdf\xb7j\
+;\xf7\x8b\xd8\xe0l\xed\xdc\x1b]:\xbadd\xf6\xbf\
+swsus\xc9_~\xf56\xdb?\xfa\xaa(\xfe\
+\x12\x19\xc5\xddip\x91\x18)\xa2\x84{\xfec\x05\xdd\
+\xeem\xa4\x8f\x19|\xd6\xf5xq\x0b\xad\xe3\x03\x1b\xd3\
+\x07\x0d\x8b2\xaa5\x9f\x1a\x17;\xd5FB\xc9\x0bi\
+\xe8\x90\xdf\x92\xc7\xee\x5c51\x1c\x10'_C\x1c\xcd\
+`\xdf\xafJ\xbcwj\xe8\xc0\xb2\x1f\x02\xb40\xda\x07\
+E\x9cF\xda\x86E\xde\xb9\xe6\xc9\xab\x84\xeb\xads\x0e\
+-\x92b\x8b\xfaj\xd1 [\xd4F\x91\xbb7\xd7<\
+\x08`\xa8{w\xb7qqE\xd0\xe8\x89\x03\x00\x00\xb3\
+hA\xa8^pQ:f\xca9\xd7($WQ\x83\
+\x0d\x86\x1f\x00'\x1d^\x9dk\xdeH\xf9\xbd4\xa88\
+\xb75r\xea\x9dt}\x7fZ\xc2\xa24\x14k>\xff\
+O\x89\x1fkT\xc1\x0bC\xec\x06U\x90\xb3\xcf\xa5\xf9\
+,\xc2\x88\xa2\xf2z\xc4\x95a\xc0\xe2\xd2\xe6\x9aW\xb8\
+\x19\xf5\x98,\xcex\xd4}w@AZM0\xac\xbc\
+\x91\x06P\xa9<\xc9\x81\x0d\x8d,\xf9:a\x1dp\x8e\
+c\xdf\xd7\xd3L\xf2\xf3\x05\xb1?\xf2O(\xf30\xdb\
+\xc8\x9bh,\x08\xe0p\xd5|\xf2\xc6\xd6\xb0\xac\xf5\x0c\
+\xe74\xf5 \x8d\x5c\x80,\xf2.\xceK\xea-f\xe0\
+\xd1\x98\xe2sPo\xd2`\xa6.@\x84\x1b7\x00\xde\
+\x07\xda=k\xca\x0d\x8az\x82\xebCa\x0f\xe3\x9c:\
+R\xf9\xa5\xd7\xa10\x06\x18a\x12\xc3\xce\xf3C\x5c\x14\
+\xa87X\xdf\x88\x8f\xb2\xae\xa9[\x01\x22\xf8\x1c<\xf7\
+\x911\xf8DkxM\xbeN\x9cb\xe1\xe0\xbfm\x93\
+/\xaf\x86\x07A\xea\xfeP\x09\xbc\xb0\x80A\xc0+\x94\
+|l\xfc\xb8Q\x14\x80\xbc\xd1\xbe\xd8\x9e=.\xcf\x07\
+\xe4\x827l\xef\xe3?\xe1B\xf1 Qh\xbdPJ\
+\xd7\xe6\x93(\x1b\x13fC\xbd\xc3\x07\x10\xc0\x9f\xfb\xff\
+\xf1sI\xf4x\xe5\x86\xb3\x91\x22c\xc8\xc2\xe3\xf3\xb1\
+\xc0\xb0\x8f\xc1\xa6\x90\xce(\x9f\x93\x05\xc1\x8d\x01y\x02\
+\xc8\x98\xd0\xcf\x9d^\x0b\x9a\x8e}\xdfm\x80?\xf7\xdd\
+\x0f\xde,\x84r~\x15n}\xfb@\xd4\xe9\x11\xdb[\
+X\x80\xc1,z_|\x0e(\xdaPz\xa4\xf2o\xda\
+\xbd\x05\x18\xe0\xfaspp}\x10\x0d\xc4\xb6\x0f?o\
+\x10ju\x14\xddO\x9e\x19Xl\x08\xe5\x93\x5cD{\
+v\x0c3w\xbcB)\xd4\x01\xe0>\xec\x88\xb9\xd0\xb9\
+_\xa9R\xc1\xf2g\xa8\xaa\xf5P\xdf\xff\xa2BK\xd7\
+\xc97\x04\xb9#\xb0q\xe6\xe3<GP\x0d\xd6\xba\xa2\
+\x00\xf5\x0d\x06\x9b\x14l@\x00x\xf4\xfbHD\xd2{\
+-\xf2\xcf=\xd9\xa2\x15Z\xdd\xe7-\xda2\xe0`q\
+\x84t6\x07h\xea\xac\x0f\xcc\x05\xcd\x0a\x93PC\x99\
+s@\x09*#6~\x8c\xac@%\x92Z\xec\xc4\x09\
+%&\xbaO[\x04\x7fl\xddw?ha\xa0\x90@\
+0\xf3\x86\x98\x89\xec\xda\xf0CE4\x90Q\x09\xb7\xe3\
+\x93(\x9e\x8f&P\xc8 \xaa\xc3l\xfe?,\xc2\xc1\
+Cb\xca\xec4\x85\xb7\x006\x07\x88H`@\xf8\xa1\
+B!&\xc8~\xc6z\xe5\xe0\x00H\xe0\xfdP\xd8\xf0\
+\xfd\x007\xa2\xe0\xf3\xf3\x1cxAs\x83\xc2Z3r\
+N\xa1\x03\x90\xe4\x155q\xec\x0b\xb7\xb1(\x09h\xed\
+\xcc\x1d]5\x1e\xe8\x84\xb9\x8d%\xa3\x17\xa8\xa0\x0bX\
+\x85A\xc3\xc1\xd0]n\x91\x7f\xfc\xaa\x16\xad\xe3\x80(\
+%\x85\x843\xb4\x00xv\xac\xb3\xac<7EL\xea\
+\xa4\xa6\xf9\x82(e\xf7\xdd:{;\xfeu\xa5\xca\x8e\
+\xb7\x938%\x94q1S\xca\x8c\xf9\x97Bg\xdc`\
+\x9a\x07E\xf5\xffY\x98\xe5\xa3\xc3\xc0l\x1e\xa2\x80\x9a\
+\x9dw\xb1\xc1\xdd-\x82\xbb\x05\x8c\x09\x18\x14\x14>\xcc\
+\xa4\xef[\xddM\x9c\x89\x84J/#\x22v\xca\xbc\x12\
+\xecz8g\xd8O\x01xA\xe8\xd9Oa\x0e\xb0>\
+\xac\x7f\xf4\xbb\xb6na\x84\x0c\xcf\xb6\x10\xe5\xfa\xd7\xe1\
+\xe0\xd7H]\xf7\x90E~\xfd\x85E~=\xdc\xa2\x8d\
+F\xb9[\x89F\x1c\x9c\xa9\xc2\xcc\xb5f\xe1\x0b\xc0\xb2\
+I\xe8 P\x10\x19\x03m\xc5\xc2\x08\xc9\xd1\x00\x17\xd7\
+L!A\xb24\xce\xeca7\xb0h\xeb}\xb8\xbdE\
++\xcc\xd3\xdf\xd3\xa3\xe9\xd1\xe6#\x8e\x8b\x86?\xcf\x88\
+yI\xb3&\x1dd\x114\x04\x00\xba\xd4AIGY\
+\xb4N&\xa2H\x83\x9fT\xb7\x02\x00c\x93\x1a.#\
++\xff\xae\xe7N\xfa\x82:\xdbz>\xdc\x95\x84\xe7Q\
+\x89\x9d\xef\x17\xe4\x07\xdbT\x00+\xaf\xea\xaa=\x80(\
+\xad\xa8\xd8\x14\xba\xa3\xf7Z\xb4\xcf\xc1u\x98\xfcl\x8e\
+\x5cp$\xfbo \xe06\xaf\x93n\x8b\x1c[\x8a!\
+15\x88+J\xbb(-b\xd1\xdc\x00|\x1f\xbc\xa4\
+\x16\x84\x0e8\xa0\xbd2)\x11H:\x93\xff\x1c\xbc0\
+x!\x14\x88j8\xa4oZ\xb4\xc4\xda\xb5a8\xc7\
+\x1f*\xc6\x97\xa6\x09qM\x01\xd4`\xf2\xb0\xae\x99\xf1\
+V\x22\x0bs\xc0\xd5\xea\xe5\xae\xc3y\xe3\xae\x00\xd8\xfe\
+}\xd0\x22\xbf\x9e\x90\xc3\x0a\xd1S-\x04,\xae\x19\x1a\
+GJ\xe4\xd3\xa19>\x17\x00Fu\xc6\xba\xab,\xf2\
+u\x9f\xcc\x91\xcf\xb7\xd7\xdei\x91\xff~5\x0b\x9d\xbb\
+;5\xdbA\x1f\x8d`\xf6]\x80E9eRc\xd2\
+\x95\xac`\x1d\x15\x946\x9b\x7f\x91Ec\xec9e\x5c\
+L\xbb\xee\x16\x8bF!\xa7\xf0\xea.\xb0h.\x03\xa3\
+\xe9F\xd3\x8f\xa6\x0f\x85\xfe\x07,\xca\xfb\xab\xb3\xf7r\
+\x13)\xcf\xc7\x12a\xf4@\xea\xfchp\xb8f\x8f\x0a\
+\x03W\xf7\x07@B\xe4\xd6x\x95\xeb\x84\xe7\x8e\x11%\
+f\x839\xef\xad`\xfb~\xd0\x02\x91\x96\x8b\x03\xe4:\
+\x17\x99yw\x86\x16\x05\x98FP\x10\xd3\xf3\xfd\xbc?\
+:H>\xcbH\xe7]\x16!\x1f\xbeu\xe27\xc5\x16\
+\xf6\xad\xe3\xd5m$\xd1G\x0d\x96\xb4\xd6V\xfe\x1cG\
+\xa4\xc3\xd3\x11\xe5\xb9\x1f\xd8s_\xc4\x11\xcd\xde\xb8\xfc\
+\x97\x7f\xcd\xd5\xa3\xabFW5\xc6\x05\xb3\xdf>k\x0e\
+5\x1c\x97-^i\x00\xd0hP\xe1\xe6\xb6o7\xa9\
+\xe3\x0fs\x81\xba\x00\x86#\xfb;\x00\xfbL\xca\xa7\xb6\
+,'bk\x04\x90\x9732@>\x0d\xc3\x17\xf1\xce\
+\xdd\xd5\xa9\xd7\x0c\xb9w\xa8a`\xd0\xd9V>\xe3\xcc\
+\x15\xf6q\x18\x17'j\xf4\x86QX\x18\x040\xfbP\
+\xd3W\x83\xc8\x1bF\x88!3\x8bN^\xc3H\xe59\
+\x16\xa1\x91\x03\x95^\x9aT\x00U\xce\xcc\xecS\xf4Y\
+7\x88\xfb\x01\xa4\x93\xb7\xf1{\xa83\x01`\xe9D\x93\
+\xafq\xfe\x93\xef\xf6\xea\x15g \xedXGa\xfcs\
+s\x9e\xea\x5c\xf4\x82\x1d\x80\x17\xf5|\xc4\xfd\xc8\xcf8\
+G\xa97\xc9\x03aZ\xf2\xca\xd73:E\xa3\x92z\
+\x8d\xc6\xa8\xf6{_O4\xa0\xd0\xae#\x7f\x07x\xe2\
+sR\xe7\xea\xb9\x82\xc1\xec\xe2\xe3<\xd7\x8c\xd0\xca\xbd\
+\xc5g\xf9\xd5\x08u\xb1C\x00\x14\xee\x13\xbf\x87\xe7\x92\
+\xfaS\xf9\xcdd\xd9\x96\xef\x0dvz<\xd8JP\xbc\
+\xa0\xd1\xcc}I\x03\x17\x16\xa21\xaf\x0a\xf99\x82\x8a\
+?\x9a\x00l\xfc\xd1\xceo\x9e\xd0\xe1\x03\x00\x90\xba\xb3\
+\x17\xc4\xf4\xf7\xb1u\x00\x88\xe0\xcfl@\xf1\xdf\xff\x1b\
+\x0aR\x128\xfe\x9d\x9f\xcb\xfb@M\x11\xb1?T_\
+\xa1\x10\x81\x90\x08\x01s`\x00\xf1\x90?\x0a\x00Y^\
+\xd4~\x90#>/\x859\x0b\x14\x00\x81\x9f\xc3\x82\xeb\
+\x03\x1d\xff\xeb\xf3\x8d\xb5\xd0\xf8\x5c\xfc<\x0a\x196\x22\
+\xae+\xafs\xf7\x5c\x10\xe6\xee!C$\x08\x0b\x05\x8d\
+\x868\xa2\x01\xa3aeu\x92\xd7\x97\x98\xdf\xc7\xd4I\
+\x9f\x22\xa4\x17\xbb,\x1dd\x14\x80\x8e\x043k%\xaa\
+\x8cop\xfc=35\xd8\xd9\xe0\xab\xca\xfbGE\x96\
+\xeb\xc5ue\x16\x1d\xbb\x17\xcd\x8a\xf9\x03\xa6\xfb\xe0~\
+\x9b\x5c\x07%\xee\x9e(\xce\xa3\xf5.?_\x0a-\xf7\
+o'A\x10\xc5\xc6U\xf7\xcb\x7f\x01\xa1\xe4\x00b\xc3\
+`\x03\xd4l\x8e\xab\x823\xc3\xf7\xb0Ec\xc883\
+\x01\xfb>\xd4\xf3E1\xf7N8\xbe\xc9\x88\xc4\xb0\x01\
+\xb1!\xf3\x9c\xb1\xa1a?\xa2\x7fw\xb5^\x1d \xee\
+\xef\x0bR\xac\x0d\x8e\x99:W\xd7\xd7\x0c\xa9\x8b=\x22\
+\xde\xc6\xa8\x07\x89)\x9d{\x89\xf1\xb9\xca\xbd\x00\x02f\
+h\xdd6\x8c\x9f\xa7\x11\x01\x07\x02D\xed\xc6\x16\xcdU\
+\xc9)$\xed \xbf\xa9 \xc9\x17\x14$\xf9\x95Z\xc8\
+9u\x8fB\x0f\xb1\x1d\x0e\x5cf\xac%\xa2G\xe2\xe2\
+3\xb2\x00)P\xe7a\xac\xa0b\xab\x83\xcc\xa9\xa3}\
+J>\x0c\x1dQ\xa0\x9d:\xc8\x01\x87X\x0b\x8c%:\
+\x9b\xa2\x90\x17\x09\xbd\x1d\x02\x85\x8e\xe7\x1b\x00\x0d\x0a=\
+\xeb\x8c}\x85\xbf\xc7\x16\x13J\xafD\xef\x00.\xd2q\
+\x16\xe5\xf7V{\xb6;e\x1b\xa6\x02l\xbc\xab\x985\
+t\xda\xe9D\xe0\xe3\x0e\xa3\x02\x9fc1\x1b\xc6\x0b\x8c\
+\x17\x1c/\xd0\x00\x1f\xee+\x89W\xe9$\xffF3\xfc\
+K\x17[\xb8\xabl=\x94\xb4\xe5\xbc\xd01\xc0\x1d\x00\
+\x7f\xed)\x16\xa1C\xc3~\x80\xdd\x9aD\xf2(\xb8]\
+=_@Z\x9a\xd1\x22\xff\xfd\xcc\x16\xcd^ntR\
+M\xdca\x10uw[\x041P=7\x9eh+\x01\
+s\x86\x86\xa5-\x7f\xd0\xe7}M\x0c\xa3\x8f5?s\
+f\x03\xd9\xa6\x99\xed\xf4\x91\x0a\xc4_e\x83\x08\xe3'\
+\x17\x16\xd3Y\x01\x04\xb3g\xf8\x80ExN`\x86\xb0\
+\x8f\xd9\xea\xb9V\x0c\x8cO\x07\x1b-FG\xd0|P\
+\xe20\xdc)G.\xf8F'\xe7\xf8Z\xeb\x1c\x17\xe0\
+\x7f\x85\x90\xc0\xda\xae\xbem\xe9\xe4U\xc6\x17v\x86{\
+\xa6O\xa6O6\x91?l\xc6\xa0\xf2{gp\x16\x8b\
+\xfc\xef\xc3j\x9b\x89\xa8\x97\xdb\x88\x22\xde\xc9\xfa\xd7\xfd\
+\xa1\x83\x02`A\xe1\xe4\x9d\x22\xd4\xfb\x05\x04\xa5W,\
+z\xa3\x84\xa1\xc1\xe0\xefK\x00\xe4x1\x8b\xc6t\x02\
+\x10\x1d\xdcl\x11\x00o\xf6\x01\xed_\xf8\x81\x17\xd1\xb6\
+\x95\xb5/\xed\x13\x0a\x11K\xb7no\xa2\x81\xbe\x9fj\
+t\x8d}\xcd\xa4nM\xec6]m\x11\x1a)\x07T\
+\xfb\xde\xee>\x8b\x90\xcf\xc0\x5c\xa3#\x85\x18\x19\xe7\xb6\
+\x9eS\x9eO\x18l\xb8*\xf8\xbe\xa2\xe7x\xbcq\xed\
+\xe0sn\xa4\xe9,\xdas\x86\xa8+b\xbb.\x0a{\
+\xad|\xe6\x054t\xff\x91&\x80]\x8f\x15\xd5\x01]\
+R\x1d\xe1]$\x9a\xfbJ\x1b\xa5*\x05\xf2\xd6\x121\
+\xde\x5c\xcc\x8f-\xda\xbe\xd9}\xc1\x22\x88\x0d\x8a\xda=\
+\xba\xccB\x9a\x01\x875u\xf7\x02\x80N\x0d\x0d\x05\x03\
+(\xb6\x0e3\xd5V\xc0#z8\x97\x80\x91/h\x94\
+\xef\xc1\xe0\xe6\xf0O\x8b\xfc\xf3\xffl\x91\xff\xfc\x7fu\
+F\xdf\x01\x81)\x16\x0d\x18c\x96\xbc\xdb\xd7\xa2uT\
+}TQ@D\xfa\xadE\xdb\x8f\x0b\x03\xe6\xdda\xb6\
+\x9e\xfb\x09@\xaf\x06\x86\x8b\x122\xbb\xcf\xf3,f\x1d\
+\xb3\xfc>\xf3\x0d\x19vn\x0b\x01\xcck\x84s\x86\xfc\
+\x1713\x18tb\xee\x16\xd8k\xe1\xca\x80)\xe2|\
+\x00H\xe45\xa2\x0a\x8f\x0f\xb4(\xfb\xfc\x02\xb6\xcf\xbb\
+=\x9e\x1a\x19^`\x03h\x03\xc8\x7fg\xe2\xbbE\xd3\
+F\xfbt.\xfb\xcb(d\xd1\xeaY\xae\x896c\xbb\
+\xdbM\xb5\xc8\xaf\xdbt[w[7\x06\x8d\xbb&]\
+b\x11\xf2q1\xa8\xe8(#\x1a\xe9\xd7G\xf9Wp\
+\xe5(\xf9\xafw\xe0\x05\xe0\x22\xb2\xe7\xcf\xbf\xec\x0f\xbd\
+ c4\xcb\x06\x04\xb7j\xa2\x85.\xd6\xacF\x91\xe7\
+\x03\xdc\xdf\x97-\x82;\x85\xec\xab\x07?\xb5\x08\x8c7\
+\x0aU\x1b\xa5\xf9x\xa3\xe2\xbb6\xd2\x01\xca\x8bh \
+P\xa0\xc2\xc0\x85\xe9\x00\xa3\x99\xff(\xb4\x050\xa0\xb1\
+\xe3y\x9dF\xb7\xbc@\xc7\xa6\x0e[g\xf6s1\xfa\
+|\xff\x81\x12\xcf\x88\x10\x85:y:\x859\xae\x03\x14\
+\xa8\xd2.\xf0\x91lD\xcda\x1e\xc2\xbcD\xbb\xe9\x0e\
+\x8b\xd0\x81\x07\x18\xe9\xd7U\x88<n\x94\xb3\xf0\x8d\x02\
+\x03\x97\x86\x95\xf2i\x1fY\x80\xf9N]\xc5A\xcd\xba\
+\xa7\xe1\x88\x9b\x18\xa2\xf0\xd4k\x00\xf30\x918\x07\x18\
+\xe1\x10\xf3\x10\x0d!\xcf\xe7\xfbu\xa5\x98\x04n\xd3\x8c\
+-5\x1a#4\x96hp\xc2\x8c`\x94\x8d\xbaC\xb6\
+\xbc\xfe\xbc\x937\xd2\x10\xa4\xf0'\xcfR\xfe8Y\xca\
+\xe27\xeb\x00\x9eE\x0blu\x15\xb63\xb4/t\xff\
+iK[\xd6V\xa1\xbfa\xa3h\xf6E\x04]\xec\x8b\
+\x05\xca\x0c\x04\xd4\x08\x0aM\x1e\x18\x12nT\xe5\xa1\x1e\
+\x93\xe8\x02\x18p\xd0\xf75\x00\xf8>\xc4\xad\x98\x91\x06\
+\xf9\xd0\x85\xf0\x9f\x0b\x02N\xc7\x1e\xd1%(0\x88B\
+\xb0\x90)(\x00\x0c\xee\xac\xb3x\x83\xf7\x88i\x00\xc5\
+C\x9d\x07\xa8BN\x85\xed\x17\xfe\x14\xb2,\xc0\x81w\
+\xfe+\xa0@\x01\x97\xf4@s#)\xdc\xf9\xfaq\x8f\
+\x91\xe0\x19\xa7\x8fI@\x91a!\xd4\xcf\x03\xb2\xc9u\
+\xe4>\xa0A\xd0(.\xc5\xc78/\xb2\x8a\x98n\x22\
+\xa4\x8b\x8d\x8f\xeb\xa9\xf7\xeb\x9d\x1e\xfcG\xe9L\xfeX\
+j\xfe\xdb\xc8\x97\x5c\x9d\x10_\xb8 \x89\x14\xbaB\xa6\
+\x9d\x22*\x7f\xe3\x89\x8f\xab\x937\xd6\xe7\x13\x92\xe5\x85\
+\xf9+\xb2}b\x06\x8a\xc4\x11\xaa\xbc\xec\xd4P\xdf\x1f\
+\xfcNj\xccPPq'\x10\x22\x8a\xbao\xff\xd55\
+\x0c\x10ud\xd4\x01\xe6\x08\x07\x09\x1b\xb2\x90\xe5\xee\x0c\
+\x8b\xa6\x82\xcc\xf3\xe0\x1d\x02\x18\x13*\xb0];A\xaa\
+\xa1n\xb7\x85?/# <W\x00\x1d\xfc^f\xc3\
+A\xb4\xd5\xf9\xf4\xcf\xc3\xf2\xd1L\x19\xc0\x87\x8b\xad\xe1\
+\xd7.\x0a\xac\xfb;#^\x22\xaa\x9d\xffY\x08\xb0#\
+\xf5\xccj\x89\x22\xe8\xcc\x06\x0e2\x10t\x0a<\xf6\x0b\
+\x9e\x03\x9e\xbf>@\xf5f\xed[<\xb7\xdc\x0f\xb4\x0b\
+\xb8\xffb\x96x\xe7\x1e\xdb(\xd6\x1d\xef\x83\x8e0\xb6\
+F\xea\xe88b\xad}\xc6?\xa7\x18\x03N\xf1\xe5\xba\
+sP\xa0>\x0cr\xcc\x01\xc4\x8c\x1e\xd4miXP\
+`\x0d\xfe&\x7f{\x18\x0c\x008\xfb\x95h\x80\x05\xa2\
+\x7f:h\x9cQ#\xdb?\x1f=Bl\x08@\x82\xcf\
+\x83=\x10\x8c\x0d\xd9\xfe\xd1Q\xcc\xc5Y\xe9<\x96O\
+5\xb7\x983\x7f)\x1a\x1eE\x1c\xc9\x13\x04:\xe1\x02\
+\x94\xdc\xe6\x0c_j\xf9\x7f3\xc3Na\xca\xaciY\
+g\xcb6[\xbfb\xaf9\xa7|\xc0\xef\x0a\xf7\x89\xce\
+1\xeb\x19\xc0\x8c\xf5\x00\x02\xaf\xe7\x82\x0e\xabi\xca\x9b\
+\xaa<\xa3:\xe9\x12\x8bF%N\x0fY\xe4\x02\xe05\
+\x8b\xfc\xfe\xaf\xb5hb\x9fnC\x8a\x9d\x0f\xe2`7\
+\xe6\xb8I*\xf6_\x0d\xebG\xd7\xdfU\x83\xb5\x1e\xd3\
+\xa5\xe9\xb2tY\xd9w\xca>\xc5\x8ce\xba\xab\x8a\xda\
+y\x82\x88\x0b\x89\xdc!\x10\x11Mo\xb7(vr9\
+\xda\xba\x1b\xdd4\xba\xc9\x18Dv\xf7\xd2sAtO\
+\xda/.\x82\x87\xd6\x841\x14\x9e\x16\xa5\xf0\xd0\xd6Y\
+\x85\xca\xc9\xa8@\xda\xd5\x22\x7f\xfdt\xfa\xbe\xeb\xd5\xb1\
+\xbd\xa8\x02\xb6hT0c\xee\xa3J\x9a\xb5O7X\
+\x14\x86J\xd9G|\x86[\x22\x98~\x9e\xae\xaa\x99\xc8\
+\x95U(\x7fN\xfe\xf4C\xcd6+At\x06\x04\x9d\
+;f\x92\x11\xaf\x95\x9b\xc0p?\x8b\x90`\xa2\x0a\xae\
+\xe7\x11\xea;\x1a\x0f\xee*\xb0\xb1\x85\xdc'\x1ej\xeb\
+\xccN?\xeb\x8c\x97B7'\xc2\xa3Ss|#$\
+rP\x86\xed\xa7\x7f\xa8u\x96\xd0\xbaI7[\x04\xc6\
+\x0fR-\xbbW\x11Mwa\xc2>Q\xd7\xb5\xaf\xcd\
+\xe2\x1a50\xeeH\x88\xf5\x1c\xa4\xafY\x84\x11>\xb9\
+\x0a\xa4\xcd-\xf2\x9f7\x93V\x80\x0a\x90\xe1m\x16\xad\
+c\xd4\xbdl\x91_o\xb0\x08\xaa\xdb\x00\x02\x14T$\
+\xde\x00l\xb2\xb7L\xdf\xb7h\xae\x0f\xb9L\xaf\x1dq\
+\xdc^\xfe\xad\x8e\x1c\xccH5$P\x85\x1f\xbd\x9c\xe3\
+%\x15\xe4/\x141\xc6\xd9\x8b\x18\xa3\x8d\xa6\xe4\xf77\
+\xba\xd6\x22\xbf\x1ee\x11\xecU\xe9\xa0\xc2pc\xe4I\
+y`\x11\x8d\xb5\x06\xc1\xcc\x16\xa2XOm\xa3_\x0e\
+\x00\x5cR)\xfd\xa3\x8d,\x1a@\xe0\x05\x8e\xfc\xe3\xdd\
+~\xf3\xe3\x16a\x84\x0a B\x05\x15\x89\xbc\x17\xe2\xe4\
+\x05h\x8bP \xabS\x8d\xa8\x18\x8c-\x5c\x87\x1c8\
+\xe6\xf7\xb0\xfe\xd1\x9eQ\xfeU\x1a\x0c\x8f6-\x90b\
+\xaf\xf6\x93 \x92\xfc\x8cE\x03\x18\x00ZK\xd6\xb3h\
+\xdd\x0f\x0a@\x85\x18\xa9f\xe3\xfd\xfe\xd1h\x10\xf3\x8d\
+\xf7?\xde7\xc7\xa7\x1a\xf3\xcc\xc5\xf8d#\xc9\xf9:\
+\xfc\xcc\xf0\xe0\xe1\xc1m\x06\xbb\xfbH\xb7S\x97\xf7\x9d\
+\xd1\xf6\xa3\x1dF\xdb\xe7\xd7dQ\x80\x80wuuF\
+\xbd\x00+\x85YrB\x03D\xc8\x8bp_\xa2A\xe3\
+\x89\x0c\xd4|\xa9\xfb\xfbsJ\x83BL g,i\
+\xd4\xca\xf3\x07\x00h=\xd7\xe9\xad\x16\xa1q w!\
+\x17\xe1E\x5c\x91\xfdB6\xb50\x7f\xdd\xedI\xd7\x1f\
+\xca6\xc0\x9a\x8b\x0d\xf2\xbe\xfb\x05\xb1\xf6\x07\xef\xb0c\
+o\xa9FU\xf7\x8c\x85\xce\xcfS\x02\xc3KZS\xde\
+\xf8\xa4.cD\x13\xc6\x1fb\xd9\xd8\x15J[\xc4\xed\
+Ea~0\xfa\x06\xb3@\xa3\x18\xfe\xef4(`\x9a\
+\xc0\xeccD\x11\x97*F\xfbX\xd7\x8c\xa0\x8aQ\xe4\
+*\xf6\xda\xe7\x06\x9f\xb0\x08\xcf\x91\x00b\x18\xb9}\x17\
+\x832\xaa\xb1YiL\x14\xa6\xa4\xd7K\xd8\xcd\x92/\
+\xf65\xcf\xc8\x97\xb1\xc54\xd1\xd2/\x14\x0d\x87SM\
+#\x87\xe7\x1f\x06%\x22\x8d6`VF\xcc\x00\x0e\x04\
+\xe4\x226\xe8n\x12\xd4\xa30\x01\xf8\xfc4<\xd5\xb8\
+D#\x0a-\xa6\xbe\xb6\x9a\xffG\x83\x95\x86/\x801\
+\x9f\x17&\x0c\xf7\x01`b\x0d\xd5sj4O\x96\x89\
+\x89\xff\x93\xdf\xe0\xf5\xe1\x02a\x07H\xe1\xde\xf3W,\
+x\xc4Z!\xf1\x05\x00\xc8\xe5\xfa\x00u\xfee\x9b\x8d\
+\x9f\x17\xf80\x0dZ\xa7\xbav`y\xa5\xa0\xef\xbfR\
+\xa8\xf6l\xfb\xa6\xf9\xfd,\xf8>`@A\x1d)\x98\
+\x0b\x85\xd9E\x0a(>\x1f\xc0\x03\x88\xca\x8b\x8e8U\
+\x04h\x1e\xbd\xff\xbeV\x00\xea\xe4\xcc\xe83s\xcf\xfb\
+\xe4\xfd\xf1\xf9\xfb\xef\x0f\x06\x00\xc0\x00\x88\xd3\xcb\xfa\xfd\
+\x14T,\xa4\xbe\xaa&\x89\x01\x14\x17\x16:_7t\
+\xa6E\x05\x0a\x00$\xfe\xa9\x9f\xcb\xef\xe5}\x00\x1c4\
+@\xa2\x02\x0a0(\xe6P\xa2\x05\x13\x83\xfb\x08`\x01\
+\x95v\x0e\xdd/\x90(l9@\x9cq\x09\xa0\xf3\x09\
+U\xed*!\xeb\x8f\xc8^m\xceJ\xfduq-\x89\
+\xac\x8d\x1fp[\x97\xaa\xfa\xba\xbb\x90T6>D\xa5\
+t@\xb9\x88\xcb^\x9aI\x15\xc0`i\xba%\xeaP\
+\x8c\x99mt\xb1%u\xaesZPD\x99\xa6Y7\
+P\x85\xb9~\xbf\x16\x05j\xde\x9a\xe8\xf8\x8c\xfe:\x12\
+KTg<\xaf\x96J\xc5F4\xaf\xe7\xd7\xe9\xb3^\
+\xeaD\xe2\xd7\xce:B]\x9c\xc4\x1fq>\x128T\
+\x939\xd0\xa1v:BJ\xc2\xc2\xcc\x16\xeb\x9e\x8d\x89\
+\x99$\xee\x13\xb3IP\xf0)\xec\xa1^\x09\x11w\x11\
+Jm@\x06\x9b\x15\xe0\x0c\xb15\xae'\xd4Q\x00\x11\
+f\x1b-\xc1\xd8\xb7\x01 \xd8\x90\xb9:>\x94YD\
+\xd8\x98\xf9F\x1c\x91\xc4\xa0\xad\xff\xba\xd1C\x09\xd6\xcc\
+\xa9\x8b\xd7\xf4f\xbb\xbc\xf3K\xc1\x09\x13\xa0?\x0a\x05\
+B\x0bp\xa8\x0d\x9f\xc2\xc4)\x97\xb2]t\xea8\x85\
+\x10\x85J\x8fb\x89\x06\x85\x8b,\x91`0r\x828\
+\xcc\xd1\x16\xe1\xe0\xd1\xfav\xaa\xad\x12!_\xc7h\x0a\
+\xe8\xe7\x8cwVGT\x07.*\xdc\x14\xba\xbe\xdf\x98\
+rB.\x5c\x86\x9b\x0e7\x19\x9a\xe8\xd9\x0e\xdd\x87\xbb\
+\x1d\x02Sf\xa6\xf1,\xe6#\x9e\xcb\x88\x1bK!q\
+\xfa\xc4i6\xd2\xc3\x81\x84\xdf9v~\xa5C\xfbZ\
+SEw\xe0\x8b\x03W\x09\x8b\xfb\xa5o7\xf8P\xf1\
+\x81Gd\x92u\xaa\x02\x16`\xcb)t\xd8\xe9\xe8\xa0\
+\x06\xd0J\x17Z\xe4\xd7O\xd6\x8e6\x22\x82\xa3[-\
+\xf2\xfb\xff\xb0>\x17\x9dP\xa3\x14\xaf/[\xaf\xe7\x1b\
+\x15\xb4|\xdf\x8d\x8d\xd9\xe3\xcf\x01\xe2K\xcc\x90\xa3:\
+\x7fb\xedP\xf9\xf9\xa5\xd1\x04\x00\xa2t\xa6E\xb3\x0b\
+u\xe6\x8d\x12\xc5\xe1\x1d\x16\xc5\xe61Gs7(\x1a\
+&\x97\x89\x91\xf1\xa50S-\xc6OI\xd8\xed:\xde\
+j\x91\x7f\xce\xae9vQ\xe7\xec\x82\x96\xc0\x97\xc2\xff\
+c\xf9\xdf7\x1cn4\xdc\xa8u\xbe\x06\xb3Z\x14@\
+\xb7\xda\x12\x02\xc4\x9e\x5c\x0bp\x0aP\x80\xc3\xb4LZ\
+:-]\xd4\xd6+sd\x8d\xaa\x12\x0f\x03\x0c\xe0\xd5\
+\xa9\xc1J\xac\xd3\xa6\x16a\x84A\xcc\x05\x7fnX\xf7\
+\x00\xf1PbQ\x87G\x9b\x06\xc0N\x1dY:\x8b\x83\
+\xbfY4\xfbL\x07~\x99\xc5\xd7\xe8\x08\x00b\x11\xf7\
+\xdb\xa4ilx\xe7Gb\xa0\xddy\x16a\xe4\xcd\x98\
+A\xaf6\xe6HZ\xd1\x22\x9c\xf3\x02\x8aqK\x00\xd8\
+q\x0a\xb94\x08\xdcu\x06\x11<\xa3\xce\x1f\x1a(\xe1\
+\x88\xd2\xed\xdf\xed\xd7\xed\xd7Fy\xd2\xcd\xe9\x96tK\
+\xd1\x00\xd9*mU~\xfe\xeai\xf5f;\xe8\xa2\xab\
+\xda'\x1c\x90\xc6]\x00M\x1b\x80\xf8\x17\xea\xe8A\x11\
+\x91<\xb2\x01[\x14F\xe9z\x8b\xc6\xd8\x80\x99\x96\xcb\
+\xb3:\xaa\xc4(\x22\x9d4\xce\x0b\x15\xe0n\x83+\x91\
+\xbc\xf4\x0e\x8b\xbc\xfe^\xca\xf1\xa2\xa8\xc7\xa6\xc9\xb3n\
+\x8eu\xa4Uc\x80\xc5\x7f-\x82z>@\x90D&\
+]\x94\x0c\xc6\x8e\xc1/\xeb\xc9\xee\xf6\x9ef\xcf7\xda\
+\xcf\x22\xff\xf9\xe7\x16M\x83(=h\x11F0`\xf0\
+0\xbb\x8c\x9a<\x89=\x9df\x00z\x00\x5c18\x5c\
+\xed\x7fi\x8b\xc0\xf0<\xb8\xe6\x03\x83\xdf\xa8\x83\xcc\xf5\
+Q\x01bYF\xc93\xc8\xe7\xd8\xe7\x18\x11`\xb6\xde\
+\xca\xca\x1f\x06\x06\xa6eQ?\x09\xae9\xd8J\x02\xb4\
+K<\x94\x91)o\xfc\xa0\xb9\xc4\x0c9\xf9\xf7o*\
+\xa5\xdf\xf3]F\xe6,\xdb|4\xb8\x85!^\xads\
+\xcf\xc57\x0f)\x06\x95U+\xc9\xb4+\x8e\xeb\x8e\xef\
+\x8e\xcf\xd7\xff)\x8b\xfc\xe7\xcfu\x87t\xf99\xefV\
+\xb1\xc8\xaf\x9f\xb0\x08\xae\x0b\xb2\x15\x841\xea\x1dl\x18\
+\x8bP\xd4\x19\xb9\x83\x19\x83m,\x1dW\xe5\x974\x8c\
+\x9c\xe1\x0c\xd0\x88]\x1f\xfb\xb2\x0a\xed\xc1\xb3\x16m\x06\
+\x9f\xc6^\xfa\x89E\x189\xa6\x81\x08\xe3\x12\x91H\x13\
+\xbf\xfcu`\xbej\x1f\x18\xafd\xd1\x00\x0d\x17\x1dF\
+\x1c\x12\xd1A\x01\x80\xdd\x99\x16\xadS\x9f~-\x80Q\
+\x8c\x80\xee\xa3\x16\x81\x81\x04P\xaf\x82\x13\x1bhoL\
+ \x06MA\xcf\xe8\x1d\x80\x80F\x01\xbc\xc3\x0f\x83Z\
+\xe7+\x9a n\xeb\x08p\x00 \xcfsH\x01O\xa1\
+,f\xa5\x03\x03\xd8\x91\xd3\xf9gt\x01\xa6\x03b\x8d\
+\x00\xe4=[E\x17\x0dT>\xe5\xdaR0T\xd4\x80\
+\xc89Pet\xde\xa3\xc6 \xf9\x16y\xa2\x1a\xb3\x9c\
+;\x007>Jv\x86F54\x82\x09\xa0\xea\xf5\x1c\
+@\x1fu\x1bu\x10\xf5\x19\xf9\x1en\x120\x94\xd5\xe0\
+\xa1\xa3\xef\xa2~\xda\xafq\xb7\xf2\x86\x13\xccLD\x1d\
+%\x0e\xea\x22\xe5\xe4k\x88\x0e2\xda\x8b\xc8\xb9\xea\xbe\
+I\xb7\xff\xb1rwaQ/?\x11(\xfd\xf8`B\
+e\x81\x02J\xe1\xc3\xac\xbf\x0a\xdb\x92~3\x0b\xff\x9f\
+p\x03\x11\x17D\xcc\x0f\x1fc\x0aK\x0aC\xc4\x08)\
+ty}\xa5\x94\xde\xad\xd0\xa4P\x05\xf9\xe0\xef\xe9\xf8\
+\xf7E\x04\xf93\x1dr\x80\x00\x80\x03\x80\x00\x0a\x7f\x0a\
+\xc7y\xd49\x83:\x0f\xb0\x80(\x1f\x07\x1b\x85\x83D\
+\x1c|CEs\x00\x00\xa0\x8f\xdc\xb0\x00\xd9\xe0\x85\xa0\
+\x99\x14S\x11c\xdaB\x80\x0c\x94\x96\x15E\xe1\xe0\xba\
+B\x89\xe9\xd9\x1cr\xa0C\xbd\xf1\x02\x15\xc4\x0c\xfb\x0c\
+\xae\x1b@\x00#\x07\xa8|By\x86\xc2\xe2@\x8c\xec\
+\x8a\x9e\xae\x1du/\xc8\xae\xb7hL\x006\xb2\xc1N\
+\x12\xf1\xe2?\x80\x8a\x9bD%\xa2\x10\xd3\xe7p\xbf\xe4\
+\x15\xaa&\x85S\xd7PG\xa6#\x07\xd2,\x11C\xef\
+\x94\x22\xf6\xc6\xa8\x00\x08#\xf7\xf7\x00\x1d\xa4\x88\x92\xdc\
++\xe4\x91\x03\x06\xe6\x84\x90\xe3\xf1Z\xb2\xb7\x132\x07\
+%\xd2\x115\x1d$\xccT\xf9\x06\xb0O\x9dA\xf6\x0d\
+n\x19\x01E\x123\x19\x1f`\x11\xec\xd3\x0e\x12b\xbf\
+\xd8x\xd1\x222\x85X\xe2\xc5*\x04\x8f\x10\xf5n;\
+\x15p0\x1ct\xdf\x07\x13\x959\x91\xd3\x80\x8a\x18\xff\
+L\x22\x89\x14\x80R\x01v$\x96N\x19\xaf\xa8\xfb\xcb\
+\x17\xd9\x8ee;\x98\xfd\x80c\xb6\x89\x0e\xa3\x5c*\xdc\
+\xf7\x9c\xd9t:v$P$\xd8\xda\xb0\x06\xff\xb4h\
+\xd7\xdb;\x5ct8\x10\x1b\xe2\xf9\xa1\xf0F\xcd\x16\xe4\
+]\xeb\xd8\xc5\x11)\x9c9 \x10u\x02\xe9\x16\xa2\x0b\
+\xf5\xd0\xfdX\xb1uAD\x07J'\x85\x00\xf6m\x88\
+\x98\xbd\xdb\x22\xacw1K\x5cE\x17d\x99\xd1\x00\x18\
+\x0ct\x02\xf9w13H\xb8\xe8\xe8\x0c\x1e\xb7\x08\xd7\
+\x89\xfd\xee[\xb5\xb0\xe4\xef),]\xf4L\x1b=\x85\
+\xb6\x1f\x98\x88\xab\xc9\x87\xd6Gx\xd8\xb7e\xcb\xe6\x1d\
+\x10{*o\x12\xa5z\xd6`\xdf\xa6\x9f_\x00\xe3\x5c\
+\xe0\x0f\xf7\xb6\xd0h\xd4\x1f\xd5\x91\xfb}\x99M+\x80\
+Q\xf7d\x8e'\xd4\xc1\xb8\xb5\x01~\xc3\x0b-Z\xc7\
+\xb2\x00V\xf9\xb9JW\xe4\xb8<\xd8^\xa9\xb3\xe1\xfb\
+\xac=\xa7\xf7\x96\x83\xf4/\x85\xc1\xf0\xfb\xf1\x9d\xe3\xdf\
+\xbf^\x05\xbb\xb8\x81\xe8\xc0w1@\xae\x07\xae#\xa2\
+|b\xdb\x97\x8e\xb6\xc8\xafgY\x04\xdb<\xad\x8b\xd1\
+\xa5\x16A\x1b\xc3\x12\xd3\x93\x82f\x85\x00\xad\xb4\xb8E\
+p{\xa0\xc3\x83_\xb4:\xb3t\xb0\xbd\xd0\x17\xb0\xe3\
+\xda\x06\x8cJ\xc1\xa4\xd2\xbf\xa7\xe9-\x04\xc4\xe5\xfb\x94\
+\x96\xcc\xb1D\xb35K\xfbX\xb4?\xfb\xfe%q)\
+\x17\x1d37\x8d\xbd\x8aH\x5cU\xc9\xb7\x02\xf1w\xe5\
+y8\xc8\x9e\x87\xb4vZ'\xad\xd3F\xe5\x06\xebX\
+\x84\xf5$\xca*\x09\x9d\xfb\xb5\xc3\xa0\x92=\x5c\xfaq\
+\xfaQ\xfaQ\xd0\xf4\x90\x0b\x03\xcf!\x9dT\xb7q\xd4\
+\xf3\xe7\xa2\x8f4\x0e\xc4 \x02\x10\x05\xd0\xed\xd6\xb0\x08\
+\xe7\x92:y\x0e\xac\xa2Q\x80F\x09\xcc+\xceM%\
+X\xe9\x0c\x8b\x22n\x98\xa3\xa9\xef{\x9ep\xee\xc4w\
+\xcaL\xb5\x80IF\xc8\x109D;\xa0\xb8\x1e\xe4\x84\
+wx\xaaE\xfe\xfb\xa3,\xda\x88\x81\x8b\x182\xb2\xc2\
+\xe8\x8dD\xbd\xf0\xa9vJ\xae\x0a\xc9\xf2\x1c\xd9\xfd=\
+\xdb\xa2\xed#>\xf2\x82\xf8\xae:\xc3\xe9\xb0\x0a\x18\xa4\
+\x0d,\xc4\xa8\xf9CH\xc8\x11\xbf\xd2H_\xb7r-\
+\xbc\xdc\x95An+NIU\x82\x89\x0b\x05\xf7m\xf8\
+6\x8b\xa0\x9e.\xf5j:\xa8t|\xdd\xe5\x86\xd9z\
+\x8d\x0euo\xb5\xc8?\xef\xf4\x1c\xdfT\xe7\x7f\xf6\xc2\
+\x8c\xc9\xd1FL\xb0\x03\x1c\xaf\x9dc\x9d\xf6|\x8ef\
+\xb5\x90\xcd\xe6\x16!\xef\xa2\xd1B\xc2m\xa7\xdb\x9bZ\
+\x02]\x00\x85|~u\xbbY\xb4\x02`x\xa4E\xd1\
+\xba\xc8\x11\xf2\xaa\xde\xf9H>XF\x99\xae\x0a\xff\xce\
+\x0c\xb5|\xe9\xfd}Q83\x1a\x88\x88\xae\xf2\xbb\xf1\
+\xc1\x15\xc8\xf2\x99l\xdd/\xa7^\xcb\x16\xb8\xfb\xb1E\
+\xd0LB\x9b\x07-\x07\x98\x92r\xf3rj\xb9\x5c\x8c\
+\xfc\xcf\xf8\xb3#\x9eL\xe3\x00\xd17\xf2B\x0a\x09\x00\
+u\x1ag\x88\x1aj?\xf1\xd1\x0c\x03\xe0\x8e\x08\x22\x9e\
+Z\xc7\x00\x1a\xa3\x0bF\x17\x8eLKa)\x8b\xfc\xfa\
+C34\x0cZ\x12\xd2^\xe2\x9c\xa0\x81\xe1\xa2\xbf\xd8\
+j\x0b\x98,\xf6\x91g\xbe\x81m\x1f\xf5\x04\xcc1\xee\
+\x0b*\xfa\x12/t\xa0\x8b\xfcF\x1dz\x1fa\xa2\xc0\
+W\xfe\x96\xb6\xb7\x08\xfb\xd7\xb8\x96\x13\x8c\xac\xf9L;\
+\xf6\xc6\x88\x98j\x7f\xeck~a\xb7\xe9ZK\x88\x5c\
+K[\x8a\x11\x1b\x1a\x1d\xc3\xe5,\x02p\xc0\x8f\xfb\xa9\
+E\x00X5\xe2\xe8\xa2\x83\xfa9\x9e\x870\x12\x85\x9d\
+ \xf9\x17\x8d\x08\xfe\x03\xe8\xa13\xaf_\xe8u\x01b\
+\xc8\x00(4\x18p\xdd8\xcb\x22<\x1f4^$:\
+\xe8b\x84\xeaT{c\x05&V\xdf\x0e\x9a\xd9w\xc4\
+\x12\xc50\x80\x99\xc9:s\x00\x82\x06\xc0\xdd\x16\x85!\
+X5\x0a\xe8\x8c#F\x8c\xfd!\x0cI4\x5c\x10\xaf\
+\x85\xd1\xb9\xb2\xf6\x97\x19U\xb7\xc2\x88\xa2\xc0\xe7?\xea\
+9\xea\x1c\x98\xa5j\x049\x93\x11\xe63\x05?\xf9\x17\
+\xff\xa1%\x05#\x82:\x02\x97/\x8d\xe6x#\x0f\x97\
+\x03\xea)\xec\x199G\xb9\x8ej\xc0N\x82\x9c\xfa\xc2\
+\x80Z\xc4\xc6\xff\x88EH@\xa1,\xb0\xc1>[\xa6\
+2\x9b\xef\xa5Q[\xee\x0a#\x04\xf8\xad+\xb1\xf17\
+\x02\xb3\x00\xbb$\x0aP\xfd\x1e\xfc\xcd}\x94\x80\x07\x1a\
+\xc0\x81\x0b\xffR\xf5\xfd\x9df&\xa4\x0f\x14\xf0\xf7$\
+\xde\xbc\xf6U$gPGM\x1d\x8f\xbci\xbf\xde\x1f\
+\x92\x0e\x1f\x1d\x7f\x901\x0a{\x98\x12\xbc\x1f\x0au\x90\
+!\xfe\x8c8\x09\x14\x5c\xc4\x22x\xbf\xcc*\xdd&\x84\
+lk\xf9\x86K\xb4/_\x9dbG\xe1Z\x04|^\
+n0\xb61\x12\xb7\x1al\x5c\x0b\x16/\xec\xe5S\xee\
+3>P\xf3\xf8\x8f\x0e\x95\xc4\x01]\xbcH\x1d4\xae\
+g\xdeN\x8bz|.\xd2j\xa7\x1f@\x86W\x80\x06\
+\x12\x8e'\x04@\xf0\x00p\xdf\xfb\x0f\x906\x0c\x93\x16\
++\xe2b$x z\x8c`,$\xa6\x05#\x1d\xba\
+/n7\xc7\x06\xc5z\x05\xb8\xb9W~\xc5\x8c\x0e\xa0\
+V<\xa3E\x13#\x84\x82\xd6Mo\x91_\xdf\xa5Y\
+@\x0e6u0\xfc~\xcf\xa5\xd9S:~t\xa4\xa0\
+\x84I,-?U\x7f\x1d\xff5P}\xee\x92?'\
+\x8c\x8b\xc9\x1eS\x03\x91\x18Q\xc2\xf2O\xaf\x1b$\xe2\
+.\x12i\x1b\xef,\x91B:\xec\xf8\xc7\x92\xb8j\xb9\
+\xfb\xfd\x86\x1a\xa7\xd7\xee:\x8b\xe0S\xcf\x81\xab\x0e\x08\
+\x85S\x7fv\xd7;\xb20\x04H\xd8\xd9@\xe9\x98\xd0\
+\xc1G\x95_6\x7f\x14ftL\x98\xcd\xf5\x0e\x04\xbe\
+\xe9t\xba\x99\xf5\xe7y\xb2\x89\xec\xbb\xc3\xcc\x22\x94s\
+(d\x00\x89h|\x90\xd8p\x82\x92\xe8ac\xc8\xef\
+\xe7\xbac?\xa8\xce4\x9a\x05\xfe\xfe\x98\xf5\xc4F\x09\
+\xed\x00\x10\xe99-\xc2\xac\x1a\xb3\xcah94@\xac\
+\xce\x9e#j'\x9fx\x7f\x8e\xe8\xd4\xcei\xd1\x18'\
+9\xed+bX\xfe\xbe\xd4\xf9B\x8c\xd1;\x9d\x003\
+\xe7\xea $\xb1b\xdf`t\xe5\x83\x13\xdb\x16\x80I\
+\xd7\xdd\x01\x19\xcd\xa0\xa7wZ\x84}\x0a\xffh~\xbe\
+\x90\xf1\xa2b\xffR\x10\xb7\xd2\xe5\x1e\xcdb\xd1:o\
+\xe9\xc5\x1c\xff\x12\xd0\xb8\xa1\xd4\xc7?\xac\xfb\x9b\xf7\xcd\
+\xb4\x9fE\x10'U'\xc5\x0b{\xbdO\x12o\xa8\xf2\
+\x0e\xf8\xe0\x9f\x8bj\xb5\xf6kf1Id'\xff`\
+\xd1:o0@\xd2O-\xda:\x1fM\xb1\x08~\xf3\
+0\x1aT\xb8\xba\xb8\xe2\x9fkB\xe7be\x9a\x01w\
+\xa0F\x22]\xe9a\x8b7\xa0\x8cCee\xa6\x1d\x97\
+\x07+\x04\xcfi\x1d\xe4R@\x9d\xd6f\xe2\x0b\xf5\xff\
+\x12Q\xeeon\xd7\x8f\xfb3|\xc0\x0c\xed\x82\x9a\xf8\
+\xab\xea\x5c\x0b0v-\x0e(\xa9\x8cB\x00\xf8\x1dQ\
+\xf7\xb5t\xa3E\xd1\x80\xa9\x85\xbf\xd6k~\x97E\xa5\
+\xdf\xed\xf8\xa6\xb7hZ1\xfes\xa0\x1ck\xb6\xd1\x81\
+-F\x8f\xd0\x00\xd1\xfd\xf2\x8e\xf39\x16\xf9>\xcfh\
+\x91_7\xb1\x08\x22\xb4\x12\x97\xf5\x91\x16\xb4X\xfec\
+\x11\xdc'\xf4~\xd3\xfc\x16\xad\x03\xed\xfb#@=\x9a\
+)&\xba\xb4[K\xec\x87\x8f\xe4\xf8Kp\xb1@M\
+\x1b\xd1M\x98D\x8bV@\x97\xce\x1a\x1dy\x07\x10q\
+\xd9\xd8\xf6\xf5\xaa\xfaN\xd9_\xc2\xa2\x8d\x16\xd0Y5\
+\xc2t\xb1\xb9D;F\x80%\xa3\x1f\xc3\xafY\xb4\x0e\
+\x92'\xfe\x02\xde\xba=,\xc2\x88\xe4\xbduF}x\
+\xe1\xf0\x22\x03\xe8&\x96\x99X\xca\x80\xea\xd1^\x16\xc1\
+\x8e\xf1\x05\x8b\xfcu\xe5\xbf\x06\xd89\x10\x0b\x13R\x1a\
+\x08\xe4{<O\xa3_Z\xe4\xdf\x7f\x8fE\xfe\xf3\x13\
+\xa3\xc7G\x8f\xe9\xfb?\xde\xec\x09)x\x11I-\xe7\
+\xd3\xb1\xc1\xe6\x8b\x0e.\xa3\x97\x00(\xd8\xbd\xd1QT\
+\xa1\xe8\x22\xc3\xd2|\xc2\x068\xado\x91?\xcf=\x16\
+\xa1@\xa4\xd0\xa2\x91\x01#Ebn>\xe2\xa9\xd12\
+/\xd0aX\xe1\xbbM\x9eH\x81\x0aP\x09#\x8e}\
+\x8c}\x18f\xdc\x1c9\xe6\x94\x06\xc5\xb7\xc2L7n\
+L\xea\x18;0\x8f\x8f\xfc\xaf-\xc4\xf4\xd8K\x9d\xe0\
+\xcb\xc3\xc8\x9b\x01\xbc7\xb4\x02\x83\xe7\xa1\x949\x1ft\
+\xa9\xeb\xd60\xe1\xbc\xfe\x8aE\x98=\xc6\xb5b{\x8b\
+\xfc\xf9\xcf\xee\xce\xe9\xcen\xbf?g\xaf\xb7Y\xfe\xda\
+\x1dg\x91_\xef\xed\xee\xeb\xee-\x8d\x85\xe2\x8a\xd4\xfd\
+\xcb\xa2\x00\x08\xe5\xfe\x8e?'\x95\x7f4\xa1\xc8\xd3\x99\
+\x85\x86\x0a\x8d\xcb\x91\xf2\x1c\x00}\x1f\x99\xa3^\x80\xf1\
+G\xfeA\x9eL\xc3\x0e\x1fw\x80C\xd6\xc3\xdd\x16M\
+C&}\xd6\xa20\x9b\x96M\xcb\x96\xf3\xef]\xe9]\
+\x81a\x8b\xca\xfd{42\xb2\x85\xde/\xd4\xebk,\
+\xa6u;r7+\x89\xd5\xc2xt\x11N\x80l\x89\
+\xff\xfa:\x06H\xc2\xce\x14 \x0a\xe0\x0d\xf1j\xed;\
+0O\x5c\x1cW\xdd\xfao\x07\x00\x00 \x00IDA\
+T\xcfA_\xed\x1f\xe0\x00\x80\xdf\x99\x97\xca3\x1cp\
+Q\x83\xcd\xc5\x02i\x94\xf0\xdc\xc1dE\x14\x16q7\
+\x18\xd1\xfc\x85\x185>\x0a)\xa0\xd6\xeb\x02:\xda\xe4\
+Y\x8c\x1c\xd0ha\xa4\x15\xbbg4\xbc\xb8\xefP\xe2\
+a\x8c\xc1$aT\x93<B\x007\xc0\xa47\x84\xa9\
+\x17`>\xbcS\xf5\x0f\xae\x13\xf7\x1b\xf780\xa8\xf9\
+\x5c\xd4\x814t\xe52\xe6\x0c6\xb4\xcaxe\x04\x85\
+Q\x0b\xf2f\xf2T\xd6\x0b\xef\xaf\xef.@\x1eL~\
+\xab\xe7\xdc\x1b\xb74\xeci\x80\xe3\x02P\x1e\xe3\x8d\xa4\
+b\xf9\x96\xb0@\xa1\x922\xc3\x0d\x85\x96N6T\x1b\
+\x0a3n\x18\x17>\xaa\xe4O\xb6\x05\xe5o\x0cM\x01\
+\x12ofM\xedc\xce\x13~\x1e.\x00}\xaa\x06\x05\
+\xd2\x94\xd2\xcb\xaa\x05\xfc\xf4\xe1\xc2\xf3\xa0\xd3\x89\xd5\xfb\
+\x9ff6\x9f\x07\x98\x02\x9d\x0b\xfd\x9c\xc4\x1bH\xe4\xf8\
+\x5c}\xb7\x00:\xea\xcc\xa6@\xc1\x82\x0a\x05#\x80\x8d\
+\x9d\xc2\x9a\xf7\xaf\xc4\xc6\xa90P\xcdXx\xf7\x09q\
+\x86\xa2\x0c\x02\xcb\x0c\x0fH\x1cj\xb2}w\x02(^\
+C\xa9\x9b\xb2\x00\xa0\xa6P\xc8k\xe6\xcc\xaf\x0b\x9f\xef\
+)=p\x14(P\x98\xb8o\x93\xba.\x14\xae\x5c'\
+>/\x88\xe1\xd3\xe3\x7f\x8c\xff\x11\x00\x1d\x00#(|\
+\xb2M\x19\xcc%1\x1b\x90|6\x004\x076\xb3\x08\
+\x07\x193\xf8\x1c\xb0\x5cw\x00\x95\x0f\xea\xdfy\x80\xd5\
+\x81\xce\xc5iu\x1fP\xc7x<\xa8\x1d\x18\x90\xe9B\
+}\xbe\xb1\xd9\x1d1k\xd5\xad\xa9\x8e\xd3\x92\xa2\xaao\
+ qD\xc4\x10E\xcdw\x11.\xc4\x97\xe4\x0f\x8f\xc8\
+\x10\x0f\xaa\x8b\x02}_3f\xa8g\xaf\x90\x96O\xcb\
+\x97\x0d\xae\xda\xeb@1\xdcM\x85)\xaa\xb5\x88\x89\xd1\
+1\xd5,\xf7\xc4Oj\xa1\xed\x0c\x10f\x89(TQ\
+MFLD\xeb\x80\x0e\x18\xfe\xc1\xeeW/D\x1c\xf1\
+\x1d\x0a'/T\xf0E\xa5\xb0e\x06\x89\x83\x9b\x8d\x1f\
+D^*\xa5\x14l~P\x22rD\x87\x1e*!\xa3\
+\x10 \xed\xac3\x10\xe27\x15U\x80\xa6Y\x82\xcd\x11\
+\x05;\x85-\x1b>Z\x15\x88\xe7\xf1<\xf2|\xb1\xc1\
+\xa2\xae\xcb\xfb\x04\x09\x86b\x0cE\x1f\xb10D{d\
+3\xe3\xc8\xae\x80\x1e\xa8\xe2}F\x80#\xbb\xa8\xe0\xd3\
+qa\x1f\xa6\x80\x5cI.-O\xab\xc0\xb8\xa1\xce\x8a\
+{!\x85\xf4\x87\x9e\xfb4\xb3E\xe8\xd8\xeeW;7\
+\xdc\x07\xf7{\xc7NO\xf7\xbd(\xc1\xe0\xd7\xfc\xce\xd6\
+As \x0d\xd5u\x012\x0et\xd1\x19\xa2\xb0\x16\x00\
+C\x87\xc8\x08\xcbFY&\x01q\x91+\x0a\x05\xddO\
+fs\xcbs\x93\xaf\xcb\xe4\xa9\x16\xf9\xb6\xbfl\x11\x80\
+\x16FQ\xa0<\x02\xf80\xfb\x09\x05\x18\x86\x00\x094\
+\xebA\xfb\x9cw\xde%V\xe5\xe2x<Wg[L\
++zD\xe2\xcb\xec\xb3k3\xd0\xa1\x82\xb2'\x800\
+}\xc4\x22hl(\x81OO[\xe4\xd7\x97,\x82\xeb\
+\x02\xd4\xc3\xbd\xca\xb0\xd2\xc4x\x9f\x1c\x96 .\x99c\
+\x89f#\xca\xec?\xc0\x10\x80E\xfa\x9b\x85\xdc\x18\x8e\
++bmK\x9aX\x9b\x8f@\x94\xe1\xdb\xa65\xe0\xd4\
+\xf5\x81:[_\xa8\x94\xe8\xf1=\x95\x02\xef\xe7\x14\x8c\
+\x83\x8b,\xda(\xc5`\x97Z8q\xbe\xc3\xac\xc0\x86\
+\xd2\xd5\xfe\x01\x22\xe94\x0b\x18\xf1\x84Q\xfbN\x01\x86\
+^l\xfe\xc7\xae\x09\xb3\x9b\xdc \xce\xb7\x08\x9dg\xf6\
+\x19\xe5\x0f|\xbeB\xfc\xbdT\x85\xd5\xa9\xad\x13\x9d\xbe\
+h\xd1\x1806Aj\xe7K\xda\xd9\x22\xcc\xd8?f\
+\x11\x984vU\x8enb\x81fFhv\x84\xc3E\
+,\x82\xc8\xde)9l\xe4\xeat1\xd0v\x16p\xf9\
+\x81\x12\xf6\xfd'\x17\xb1\xc1krz}M\x1b5\xc0\
+\xd6\x11`\xc2\x0boiZ\xf8\xec\xb2\x80\xcd\xf4\x1d\x8b\
+v}\xcb\x88\x87\xcd\x94\x9fk\xd1\xce\x19\x0a\xd9\xeeR\
+\x8b\xa6\x0a\x9e~fQ\x0a\xe3n\xdc\x05Um\x89f\
+u_\xe9\xf6\xec\xbeRl\x0cs\xe4\x9f?\xd5\x22\xff\
+y)\x8b\xf6y\xc6\xd3Y\x04M\x88\xfb\xf5{5\xb2\
+\xe2\x1dO\x8d|u?\xeb\xae\xec\xae\xcc\xe9\xddA\x16\
+\xf9u\xa9\x1cy}\x8e6\xb4P\x03`\xdb6\xc3\xef\
+v\xb3\xf7Z\xe4\xdf\xff~\x8b\xc0T\xa5p\xd2\xefq\
+@\x1a&\x00\xe7\x01\x89\xb8\x00\x96t\xa7ES\xedg\
+\xdf\xf5\xfc\x0em\x07\x0a9\x1a>\xe4}\x88\x95b\xef\
+\xcb\xbeOG\x95\xbc\x89\x82\x84\xfc\x0c\xb5z\xdc|`\
+\x18\x1ea\x11\x0asF\x07\xc9\xab\xd0\x1ca\xfd\x1dc\
+\xd1\xc4\xcb\xc8C\xdcN\x98\x91\xca\x0d-B\xa3\xed~\
+\x8dNJ\x94\x93\x11\x0b?\xd7u\x0e\xb9\xd8/y8\
+\x1a2\x14\xb0\x889\xabS=\xfa\xc0h\xeb\xd1\x07\x82\
+\xf6\x82\x8d\xea\x1c\x1c\xb4&\xe4&\xd1\x9dmQ(\xe2\
+\xb5c\x8a\xdb\x8f\x001\x07x8\xe7\xe9\x00#F\x87\
+X0\xa3\x06\x8ch\xc0\x1c\xe4\xeb\xb7\xb3\x08\xf9$\xf5\
+\x8c\xd6\x8d\xef\xc3\xb2\xe3K\x9f\xb0h\xf9P\xda3\xed\
+\x95\xf6*Z\x069\x82\xad\xde\xa4\xc5\xb4y(\xb3\xf4\
+^\x08\x038#\x0e'{\xd7\xc1\x1f-B\xbe\xc4(\
+!\x0dR\x00#\xce1\xf2'\xd6\xd1\x87*\x80\xc3\x08\
+\x1d\x80\xd2\xc4N%\xda\xf9\x80\x88,\x80\xbdl-\xd9\
+O}$E\xf9\x8ek\x94)\xaf\xf3\xc2\x93\x8e\xb44\
+K\x1c\x08\x22\xaf\x82\xb1\x22\x06\x87\x03F\xbc_\xb4\xab\
+p\xbd\x80\x99\xc6u\xa0!\xc1\xc8\x00u\x0f\x8d\x1d\x5c\
+\x90\xd0\xe8B\x9b\x84\xbc\x0c-.\x1a\xa9\xcc\xda\xeb\xfb\
+\xdd\xce\x11\xd7\x1f\xf2\x04\x00[5\xbe\xc6\x7fS\x83N\
+u\x8d\xab\xff\xf3\x5c0\xca\xf0d\xce\xe2\x9f,\x7f\xae\
+\xef\x9bF\x8d\x18\x13\x88\x94\xbbx/\x8d\x0a4\xd0`\
+\x22\x08\xf0\xf3\xcf\xcf\xf3%\xad\x08\xff\xb9\xdc\x1f\xce\x0f\
+\x1a\x8f\xacsioy}\x8d\xe8.\x00\x00\xf5\xb1~\
+\xfed9\xf8\x16R!\xb1~X\x88v\x19\xdf\x12\x12\
+?\xa9\xa9\xfa\x8d\xfcg\xc1<Zg\x8d7\xf2r\x99\
+V\x8f\xb6vU\x90\x0e&\x00\x89(\xa2&t\xd4\xa3\
+F\xc0\x02\x812be\xe6\x5c\xa1\xb0\xe0\xf7S\xf0G\
+\xc4e\x1c\x0a~\x10\x116\xf0>`\xf1;\xd9\xe1P\
+\x10\xf3~y\x10(\x8c\xef\x91\xba)\xff\xf5\xc4\x16\x0c\
+6)\x0b\x03\x8a*\x00\x05\xbf\x07\x80\x81\x0e8v\x88\
+ ;|N\x0a\x8f\xbe\xe6A\x9f\x82\x06\xe2C\xa1\x8b\
+m#T0\x0acfn\xb9\x9f\xeb\xd5\xc2\x8d\x07v\
+\xf0\x0e\x15\xfas\x0a\xd0\x99_T\xe5\xd5\xf5\xfd\x00\x10\
+0\x04(\xc0\xd8@\xd9\xa0VVa\x09sD\xc88\
+\x85\xa2\x1f\x18 aWK\x85\x94\xebpM~\x1c\xae\
+\x11\xb3a\xe1\xb0q\xaf\xab\xef\x7f\x97\x80\x0b(=l\
+8\x00U\xd8n\xf0\xfba(\xf0\xf5kj\x9d\x01(\
+0\x13\xc3\x88\x00\xb38\x93\xb5\xe3\x80\xb8\x8d\xdb\x05\xed\
+T\xc5j\xba\xb9\xbby\xbay\xda\xe7q\x8d\x07\xcd\xcc\
+\x93\x10S\xa8\xd1\xa1\x86\xb2>\xba\xdc\xa2l\xb8%\xc1\
+\x1c\xdc%\x8a\x9f\x0e\x1e\xa7\x86\xce\xa0N\x19\x9dq\x90\
+\xf7\xe9,\x82\x0f-\xb3\xdf*\x1c\x01,r2Q\x12\
+V\x17\x85\x93\xfb\x82\xcf\x00\xaa\xa0&\x01\x82\xca\xee\x9d\
+>f\xa0P\xc9GE\x1a\xb17\xbeN\xa3\x18\xd3\xb8\
+J\xf0<\x02\xc0\xf1<P8\xc2@\xc1\x8fVb:\
+~\xb0\xc8\x8f\xdb\x11Z%8P\xc9\xfc\xa0G\xfc\x90\
+D\x8c\xe7\x83\x91\x00|q%\xa6\xe63a\x5c\x0f\x0a\
+\xc0\xddJ\xb4\xce0\x22n\x1f\xab\xd4\xef\x89o\xcan\
+\x10\x91Q\x00\x0a\x00\x01f<9\x88p\x01\xa0p\x84\
+\x99!\xb5g\xae?\x85\x87S\x05\xf1\x1fg\x94F\xfe\
+\xcf.\xceH\xc2\xa7D.\x97\xcdu\xe4\xe2_\x16\x8d\
+\x82\x8b\xb8Q\xfe\xf7\xaa\x99\xf1\xb6z\x108\x15\x9a\xfb\
+\x0f\x03G\x07JZ9\xad\x94V.\x9d\x95\x95\xcb\x88\
+\x11\x89\x87\xf6\xf9\x82$o\x1c\xb4\x05\x048\xb8\x08\x0e\
+\xf6IP\xf2Tp\x000\xf0\xfb\xe9\xdc\xa2\xaanD\
+\xf4R\x00\xfelpe\xa1l\xe3\xc6 1\xda\xee\xed\
+\x16\xf9\xf99\xc6B\x89\xccj\x05`\xa9\xb3\xe9\xcfW\
+\x15}\xa7 \x02Hp?I\x9c\xb5_!Z\xe7\xb3\
+\xed\x88\x86I\xd5\x19\x0a\xb2\xcf \x0a\xd0\x18\xeel\x11\
+\xc4\xb9P+\x17Pas7\xa5\xa0\xc5\x96\x11\x9b2\
+\x89\x99\xd29\xc1\xa6h\xf8\x0e\x8b0\xf2!*\xb7\x03\
+7\x14\xf2\xfb\xe7\xd8O.\x0a\xb7*a\xb9>\x00\xd1\
+\x1a\xa9\x03(q\xb1*4\x05\xe6Ls\xa5\xbc\xbfO\
+nk\x91\xff\xbct\x9d\xcdg\x9d;\xc0\xa7\xeb\x95f\
+\xb2\xc8\xef\xef#\xe6\x17P\x0a\xdd\xdaa\xf9G\x9d\x85\
+t\x00\x13@X\xcfO\xfe\xae\xea\xb6\x80\xbb\x0a\xcf/\
+\x89\x15\xeb\xe1[\x16\x01@X\xc0\x22h@\x90\x08\x89\
+\xf2\x88J\xbd3Y>k\x91\xff~\x8d\xf4\xf6\x94\x9f\
+\xff\xd1\xfe\xa3\x03F\xf9\xfe\xa4\x0b,\xc2s-f\x0d\
+\x0c\x02T\xd2\xcbu\x9el#Ai\xf1\xb4XZ\xac\
+\xd8\xa1Vw\x061\xde\x9c\xb2/FGzs\x8e|\
+?\x87{Y\xa8`\xce\x85k\xfa\xab\x85F4\xcei\
+\xc0\x0c\xcc\x8a\xd1s\x16\xb2\x09\xdc\x22\xec\x87h#A\
+\x0d\xbfm\xe2v+\xe8a\xc4p\xae3\xb2\xe5\xb3\xf1\
+?\xb6\x08\x00\xb0\xf2\x18\x07p\x94\xa8\x1a\xbf\xc3\x18\x1e\
+n\xf3\x86\x9d\x98:`\xcc\xee2R\x02\xf3\xc0)\xb2\
+\x1a\xa5\x1b}\xaa\xce\xc8\x03\xb0\x0cO\xb4\x10\xf3\xe1\x91\
+P\xf0BE%\xd1\x84\x0a\xfd\xaa\xce\x01\xc4\xe8\xa4u\
+\x80\xed\xe5h\x95\xd1\xaa#\x9b\xf9\xbe5\xc7-m\xc4\
+\xa0[2\x87Q\xc4\xbf\x9d\xe3\xcc\xe6VSF\x84\xae\
+\x08LT\xad?\x07\xc8\x044\xba\x0d\x1e\x9dQ\xcd\x10\
+; \x09\xf3\x02\x11c\xfe\x9d\x99\xf2\xd3\x0d\xb2\x09\x9d\
+O\x0a=F\xfdT\xb8twX\xb4\xf3\x86Y\x7fw\
+c\x11\x90\x83J>\xfb\xc7x\x05\x8b\xe0\xbe`\xe7\xc3\
+\xb5\xe5\x9c-\x9f\xa7t\xfe\xe7h\x05\xb5\xc1$\x06\x94\
+\xb8j\xb8\x0ayW!W\x01\x0a\x80\xe9\x9dU\x01\x99\
+\xe3\xd5s\xbc\xad\x89\x1b\x96\x81\x81\x9d\xf5\xf3\xd6\x0a\x00\
+\x05\xa3\xba\x9c\xf3\xe4\xe9\xe4\xf7\x14\xe2\xfa|\xec\x07\xdd\
+\x8e\x16\xf9u\xd9n\xb9.\x9f\x7f\xdd^\xdd\x9e\xdd\x9e\
+M\x03\x05\xa6d\xb7\xb4E\x10\x9b\xc4\x9e\x15\x11i\xc4\
+\x86\x19Y%o'\x7fT\xe1\xef\xe7\x18@\x06\xb3\xe7\
+\xd4\x13\xe4\xa7\xea\x90\xfb\xf9\x80\x084\xf6\xa7\x14\x8cP\
+\xa8\x95'\xc0\xd0JOY\xe4\xf5\xbe\xe5p\xab\xe1V\
+\x81\xa9\x013\x08-\xab\xfb\xa4\x11\xf2Q\xe5\x17zu\
+\xc0\x1f\x00\x0a\xe6\x026\xc9\xb2Qv{n\xce{:\
+\xdd\xd4!\x0f\x88\xf1\xab\xbc\x0e1U\xdc\xa8l\xf5\xd8\
+\xfaa\xc4\xa9\xbb\xd7\x22\x00\xa7b\xaa\x8d\x97\xb2\x08\x9d\
+\x7fF\xd5\x00\x8cT\xb02\x12\xe1\xa3\xb7=J\xbc\xdb\
+\x0d\xe2\xf6C\xa1\x0b\xf3P\x8cSg:c\xc3\x07#\
+\x06\x11J\x89\x9ez#\xaa\xff\x9f\xf2\x14g\x84\xd08\
+a\x9f\xa11\x08\xd3\x17\xea=\xa3\x14\xd2`\xf0\xf5\xcb\
+\x88\xa8\x1a\x89\xe3\xf3-\xc2\xf7\xb1\x0e?&W\x08\xea\
+0\x18\xa7\x00G\xb8\x04<\xa4\xe7\x06\xc6'\x94\xfe\x9f\
+Z\xb4\xbc\xdb\xed:i\xc4\xd1\xe8\xa1!\xa1\x9f7\xbe\
+\xcd\x22\x00\x83h\xb6\xf0\xef0,\x10\xb3\x06\xe0\xc4m\
+\x01\x91j\xfe\x9d\xfa\x8f\xfa\x9az]\xfb\xe7d9\xee\
+f\x0a\xd4z\xc4<\xac\xdc\x9e\xbd\xcd\x80\x96\xaf\xa3\xf0\
+\x9eQ\x09\xfd\xcc!\xb1\xa7\xd0\xb3\xff\x7fM\x89\xc90\
+\x14\xfeP\xd0xCv\xdbVS\xc2\xbc\xdc\xb4@\x80\
+w\xdey\xe3$\xfa \xa0\xfd\x82\xdc\xca\xe90\xcb\x01\
+\xc5\xd0;{ B\x02\x06\xfc\x06\x91\xb0\xd3\x99\x06\x11\
+\xa2\xc0\xa0\xb3\xdc\x9f\xe1\xa7\xe0P\xe7\xba\x5c\x9dY\x82\
+\x08^_\xe4\xb0_\xd0\xcf\xfbz\x11Af\x1a\x1dH\
+\xa0cM\x81\x8f-\x17\x85\xbdD\x95\x5c\x9d\x95W:\
+\xc2\x14v\xa8\x06\x8bZ\xe2@\x03\x85?\x851\xc0\x02\
+\x89\x9bf\x0a\xfd\xf7\x00\x0c\xb0a\xf6\x0bp:\xee\x8b\
+\xeb\xef\xb9>\x00 P\x96\xfe5\xf1\xa24\x1d\xaam\
+\xdbb\xa2\x98\x99[\xef\xda!\x81\xdb@\x22j\xd8\xb7\
+\xb0>\xf8\x1c\xfc^\xc40@\xbcX_|\x1d\xd7\x11\
+J'\x07\x0e\xd4\xb2\xa9%\xbcc\x00\x95\x94\x84h\xb4\
+\xf4h\x99\xd12\xad@\xa3SR|\xbd\x7f\x15~?\
+\xe2?\xdc?:\xa8\x87j\xb6\x1f*\xef%\x95\xba\xe4\
+b2\xbf\x90\x1d\xdb\x8f*\x95-\xff\x94j[\xa5Y\
+Y\x9f\xf5A\x1d\x14\x7fO\x80\x184,@\xca\xf93\
+\x07(T7\xa8@P\xc4\x10\xafc]\xc1` \xa1\
+`4\x88\xc2\xbe\xeb\xd9Qr_\x01\xd8\xe8\xc8CA\
+\x22\x01\x91H\xa3\x1f\x08\xba\xde\xeeo\xba\x87\xc5\xb4v\
+yt\x94}&\x92\x8e\xaa\xd4p\x1d \xa1\xe3\x07\xa3\
+\x80\x8e\x07\x09\x0dL\xa2\xde\xf5p$\x95\xe7S\x88\xb4\
+#\xceGI\xdd{=\x8952k{H\x896\x8a\
+\xc0>\x81j\xef\xc9\x16af\x9e\x99K%tPC\
+]\x14\xca\x12\xcd\xd3\x9b\xe6@\x9a\xd7\xa2Q\xf6\xb9>\
+P\x86]\xc3A\x1a\x07\xaeFL\xe1\x89\xed\x18\xa3\x19\
+\xff\x90\xf8\xdd\xbfD\xad\xfe\x8fE\xd0f\xf8\x9df\xbf\
+\x99\x01\x84q\xa0\x9f\xc7\xc8\x81\xff\xc7,\x1a\xc0\x15\x94\
+B\x00H\x80W\x89U\xb9\xe8\x0c\xda\x1c\x14\x80B\xfc\
+\x07\xbf\x1d\xdcV|\xdc\x0d\xb6\xca\xcf\x81M\x9e\xdb\xec\
+9Z\x05\xec\xe3\xcc\xce\x01\xa4p=\x07'Y\x04\xbb\
+LD!\xc5\x00!1\xf0\x0e\xaf\xa8\xd1i6\x8bf\
+SW\x80\xb4\x83D!<\xba!\xf4\x9c'.\xd2$\
+\xdb\xbe\xc9\xcf[\xe4\xc7bq\x8b\xd6\xd1q*\xaeD\
+\xe2\x06WZ41.l\x06\xe9\xc4\xa6\x03-\x82X\
+\x15\xae\x15*t\xcbhBN\x1c\xd2\xf9\x16\xba\xeeG\
+7@6M\xe6\x98N\xb3\xaa\x97\xe9\xf9\xdd&h\x0a\
+l\xa3\xfdS\xa2T\xee\x12\xa0\x99|\xff:\x89\x5c\xf9\
+H\xd0^Z\x07\xd8\x8f\x01 ]\x94\xaf\xdfEEd\
+\xf0\xdd&\x8e\xe7\x14\xd1\xef\xcb\x9e\x0f\x8a?\xa2Y\x88\
+J\x0a\xa0DL\xce\xb5\x05\xf8\xfboY\x14m\x84\x13\
+\x8b\xba\xff.%\x85\xf6\x0eU\xfa\xafEs\x95\x18\x9c\
+\x22?k1x\x0a\x13k\xfd@q\xb7Y\xf1\xb5\x9b\
+\xfb\x01\xda\x0e\xfd\xd9\xe4\xc2$9M\x14\xd0ue\xdb\
+\xf4\x5c87\x10\x054J\xedo\xb4o\xcf\x1b\xec\x0d\
+5\xbaA\xe25\xdc\xd0\xa2\x00\x0a'X\xe2\xe6Tl\
+f\xbe\xe9\x90!\xde\xa6D\xb6hJ\x9c\xac\xfb\x7fz\
+c\xa4\xa4\x9d,\xf2\xcf\xfd\xacE\xfe\xf3n\x16\x81\xb2\
+\xab\x8e\xff\xe4u\x16M# \xfd\xd9\x22\xd8\xbf\xadj\
+\xd1F\x06\xe8\x9c\x8fg\xb7\x08\xb3\xb3\xda\xbf\x8b\xb8\xbf\
+1\xe2>[\xa9\xda\xf9)\xabL,\x01<\x83\x9bk\
+\x012\xd8C\x05\xcb(\x9f\x0e\xa3\xe6\xceb\x9e\x09\xa5\
+\xc0}\xb4\x8ab\xc2\x0c\x80\xda?:\x7f4u4\xb5\
+\xa8\xc1\xe7\xc8\xaf\xa7\xe40\xad\x83\x8fY\xa8S\xf8=\
+\x01\xa8y\x9f\x1c~\xd3B\x9d\xe8e%j{ap\
+\xdb\x80\x81&\xaa\xb73\xeb\xac\xecz\xb8\x89\x19\xc2\xcc\
+sqGS\xcb\xbfT\xc0\xf3\x0f\xdbu-\x1d\xdc-\
+d\x07\xb8B\x181\xe8\xab\xdc\x03\xe0J\xa5\x9e\x82\xce\
+\xeduU\x98\x8f\xcf\xb3\x08\x9a'\x00\xbe\xd8ri}\
+tW[\x84\xd9m\x89\x8a:\xa5\xdel\xe2\xf6h\xcc\
+I\x17w\xfcB\xe1\x0a:\xe0LG\x94\x11\x86\xc2+\
+\xd8)\x00\x19v\x1a\xae\xf0\x06L\x07\xec\xfd\x00\xbc\x99\
+)\x86\xe2\xbf\x9aE~\xfd\x89E~\xdd\xc7\x22\xdf\xcf\
+\xcf\x8f\xbe0\xb2\xfdpo\x8b\xb0\xde.\xb7\xc8\x7f^\
+\xae\xda*\x8e\xaf\x91\xe6\x12\x05\x14\x22\x8a4(.\xb3\
+h\xcc0\xb7ETa\xebZ\x16\x14x'X\x84\xc2\
+\x19\x8d\x06\xd4\xdcq=\xc0\x9eX\x0c&o`\xd0q\
+\x17\x13\xcc\x0b\xc63\xc4|\xe0<\xc7EE\xa2z\xc6\
+\x93)L\x19>\x07u\x023\xf34\x16\xa9O\xe8\xfc\
+\xd2\xa1\x87a\x0b0\xa0\x8e2\x9a\x04~\xeeH\x5c\x97\
+|\xd1\xeb\x07i\xc3xA\xca\xfdF\xbd\x9ezF\xa2\
+\x96>\x22Kc\x8c|\x8d\x9f\xc7\xfb\xc0\xc6\x11\x8d\x08\
+D\x08\xdf^\xeb\x00\xb7\xa7D+\x89\xd1:\x01\xad\xfe\
+}\xdcW\xe5S\x8cZ\xc0\x84u\x0d/Fy\xc8\xcf\
+pC\xa0A\x8a&\x17\x0d\xe0\xbe[\x1aT}\x98\xa6\
+\xaccu\xd2]\xccP#\xbe~\xbf\x10\xab\xc6\x9eP\
+y\x83\xd7\x9b\x000\x5c\x1f~\x1f\x8d\x13\xfe\x83\xb9B\
+a\xbdJi\x89\xb6\xd1\x19\x98\xd6\x00\xa2r\xc9\xf2u\
+A\x1d\x02#\x88\xc6\xb4\x5cE\xd87\xfc\xfb\x01\x0e\x18\
+u\xa1\x1e\x05(\xc0&\x17\xe69\xeb\x84\xfb\x8dh\xa2\
+\xf6\x93\xc9R\xb0wa\xc1R\xe0Gq\xbeY\x02\xe5\
+\x15q\x1c(\xb2 \x86\x88\xfaE\x11\xbe\xe9\x02E\x9f\
+\xc2\x91B\xd3\xca\xb9%C!\x87\xfa7\x1b\x18\x08\xcf\
+\x9bE\xed\xa5\xa0\xa4\xe3\xc8\xef\xebt\xf0\xb0``\x00\
+\xf4\xc5\xfe\xb8P\x14\xe2\xfc\x9c\xfe\xdf\xb3\xd0\xe8\xc4S\
+ \x83(\x82\xb4PPb\x8fG\xc7\x9a\x82\x0b\xca\x0d\
+\x055\x9f\x93\x02\x9c\x07\xab\x0f\x8c\xb0\xa0##b\xfe\
+P\xa8p}g\xd1\xfbo\xae\x0cu\x16\x9c\xce\xbeD\
+\xc1\xfc\xc1X^\x09\x0d\x1b\xc9r\xfa\xbe\xbe\x8a\xfd\xb2\
+z\x9fh\x1f\x00T\xf0{aH\x80\xcc\xb2\x91\xfdS\
+\x1b\xe7=\xa2\xc4\xb3\xf0\x01\x86xpY\xf0\x14\xaa+\
+\x97\x9ec\xa3\xeccc\xc6z\xe9\xcd\xf6{\xc7\x84\xef\
+\xef\xbb0,\xa6?\xf7\xde\xb7S\xae\x98\xd5\xc4&D\
+\xbe\xcd\xb9\x0c+\x1d\xe9|-\xaa\x86\xc0\xc5\x15\xd1D\
+\xfc\xa8Ph\x8f\x0dL\x0e:\x8b0\x12\x98m\x7fV\
+\xff\xfe\xf5\xfa\xa0\xba}\x8df\x96<\x81bv\x8f\xc2\
+\xe9O\xeah\xe0\xafzn\x9d\x89b&\xce\xfdQ\x99\
+QGT\x86\x8d\xaagw9\x8dm$\xcf3\x1bA\
+\x14\xdd\x9c\xfd\x0d\xecD\xe8\x00C\x05C\x04\x06us\
+u.H\xc0q\x1dp*8T}\xd6/\x14.\x0a\
+tf\xddU\x90\xf9\xfb\xc7~\x08\xf5Y\x98\x04\xba\xee\
+\x88\xc3\x90(\x00,9\xd5\x1a\xaa\x14\x07\x00j\xad\xea\
+`\x0d\xce\xca\x05\xd5Y\x81j\x08\x05\x0e;/\xdc\x17\
+\x98\xcdV\x87l\xf0'\x8b\x00`\xa8\xd0\x1dln\xd1\
+f\x07]\xad\x5c\xf6u\x9exj\x84\x02\xe0\x85\x82\xcf\
+\x99\x03\xa2\xb2\xe3\x07\x8b\x1a\xb2\x1f\xcc$j\x02l\x5c\
+\x0cL\xb63\xcet`\xa6Q#\x02\xd3\x8cf\xbdZ\
+\x9f\xdf\xc1\x19\xb9\x10?C\xaa\xe8\x7fW\xe7\xe5\x8e6\
+c\x8c\xbd#\xcf\x95\xdb\x1f1\x12\xc6>\xc5\xe8FT\
+\x97~:$&\xcc\xaa\xd2i{\xa2\xa8\x80x\x22U\
+l\xe2\x96\x0e\xcc\x1d4+\xe4Z\xe1\xb6E\xd7V\x8a\
+4\xcf\x19Z\x1d\xc5m\xe0\xc6\xe6\xa2\xe1\x1d$\xad\x03\
+43\xd2?,\x1a\x95\x9f\xc2\xc9;\xb8\xd2\x0a`\xa4\
+\xc3\xc5\xa8\xf0\x99FUZ\x89N\xda\xda\x22_\xd6[\
+,\xf2\xd7\xbf\xd3\xa2\x8c\x12\xe5\x08\xa3+\xa2@v\xe7\
+X4\x06\x80S~9/\xa4\x11\xe1~\xd2\x02\xc4\xb8\
+?\xc3\xc5,ZG\xd3]/lto\xd5\xe0?n\
+\x94s\xa3t\xdfg\x91_O\xb6\xbfi\x09\x9c\xaf'\
+:bh\xdd\xb0\xae\x01\xba\xef\xae\xfb\x91\xbbA\xc0\xbc\
+a?\xbf \x17L?n\xfb\x953=\xe88\x09\xa0\
+J/[\xb4\xf7\xe3\x8c\x03\x00+D.\x11\xaf\xbb=\
+\xdd\x96n\x0f\xe7\x1d\x22\x8b\xb6\xbe\xac\x13\xbe\xb7Ex\
+_\x88\xf1it\x02\xc0\x8c\x0e\xae\x8f\x1e\x98j\xf5\xfe\
+at\xceD\xd5\xa6\xe8\xe7\x1e\xde(\xce^\x10rN\
+\xc3`4\x1e\xc8~\xea\xcc\xfc2\xf8\x87\xab\xc3\xc7z\
+\xa5P\x1d/n\x11ff\xd5\xf1\xf3Yx\x89\xb29\
+#Jj\xe7\xdd\xe69\xde\xdf\x80\x05\xf67\xc4%\xd9\
+/\x0b\xd3`\xc9\xa6\x01\xc1\xa8\x08\xda\x1c\xe5\xba\xdal\
+\xf5\x9aU\xbc\x161L\xc4\xc5\x5c\xa5\x9es\x1f\xf1`\
+i>u\xebv\xebu\xeb\xb5\x042=Y;\xa1\xa5\
+\xd0\xdaC\x9d\xae\xcb\xcbl~\xed\xb8\x8b\xa9\xe5\xcc?\
+\xf6\x07\xf6gD\xf1\xe8HK\x8d\xdc\xedV\xb5\x9f\xa6\
+\x8fZ4`\xb3\xb8\x0d\xac\x16l\x81\x19E\x13\xb0\x0e\
+%\xb8\xa4\xd5f\xff\xf9\xa2Fq\x0cx\xbbB\x05\xdc\
+)\xca?\x8c\x80qR\x8e\x13\x9bjx\xb9?\xdf\xd6\
+\xb9\xf4\xd6f;X\xce\x9f/4&\xa0\x8f\x8e\xc8\x0d\
+\xc7g\xa0\xd1\x12\xd0~N\x9eP\x00\x8dS\x82v\x8d\
+\xf6U\x17\x05\xd4s\xdf\x1dm\x11:\xb9\xd2H\xe0\xeb\
+\xdc\x0d\x80\x7f7\x97\x86\xb7h\x7fzk\xc8\xa3\x195\
+`\x04\xcb\xde\xcf\xbd:\xcf\xff\x1d\x80 c>\xdc\xa0\
+\xbc\xc0\x00\xe2W,\xc2\xfd\x83\xdaM\xbe\x86h\x9b\x00\
+\xab\xd1\x9e\x16\xc1.\xf5\x1d\x16\xf9\xf5\xd0\xees]~\
+\x0eG\xbf2c\xd2\xa0\xf9\x02\xf0i\x80\xcb\xa6\xe5\x5c\
+,\xef\xd3\xcf\x11\xddG\xf6\x17w}\xd1HC\xf7\x19\
+\x8b\xa2\xa2\x7fsws+p\x9cA\x08\xa3C\x85\xb3\
+\x17<P\xef\xc9\xff\xf5y\x18\xcd\x9b\xa6\x90\x84I\xa2\
+<\x1c\x00g\xfc\xd4\xf8\xc9\xf1\x93\x05x\xa9@\xbc\x98\
+b^'\xd0\x08\x01\xc8\xdb\xbf\xae\xef\x89#5Z\x88\
+x\xb1\x18'>\xbbN\x1e\x09\xb3\x01\xbbE\xf2%\x98\
+\x17\x8c\xe4\xad\xdak\xcc\xc1\xcc\xe4\xbe\xa9\xf0u\xad\x22\
+\xde\x1fn\x03r\xddp\xbb\xc2\xbd\xab\xdd\xb4\x17\xc0b\
+\xe493\x97|O\xe2\xe3\xfe\xfe\xd0\xe0\xc1\x85Ab\
+\xa6\x8c\xf48 \x0c\xa0\x81\xd6\x18\x1dv\xea\x11F\x06\
+d\xcf\x8c\xe6\x9b\x038b\x82:\xb3\x83<\x9f\xbc\x1b\
+\xd1k\x00U\xd9\xf2y\xfe\x87\xf82\x0d\xe8\xf5-\xc2\
+\xfba\xc4\x80\x11\x10\x18\xb3\x1a\xad\x02\xa8\xf3:\x92Q\
+\x02\xf2e\x98\x08t\xf4\x07\x12\xb7\xd7\xffX'.\xb2\
+\x08@\x22F\x8c\x8b\xb1r\x9d\xd1\x02\x90\xe6\x94\x8b_\
+\x8aa\xea\x0c\x86\xc6\xa4\xae#F\xca\x1b\x9d\x11Cc\
+\x96uF}\x86X8\xee:\x02\x88&\xbd\xb3\xd7W\
+\xd9\xe7\xef\x958\xfa\xc6\x8b\xad\x1b#\x01\x14\xf8\x14\x1a\
+\x14\x1e\xf6\xf7\xfcy&!)s\x84B\x9e\x82C\x8c\
+\x03f\xdc\xfc\xe0\xa0\xc0\xe3\xeb\xfa\xb6~\x14\xee\xd6\xdf\
+\x9f\xae1\x0e\xbc\xc0EM\x9cN0\x1dS(\xe0P\
+\xda)4\x11c\x83B\xbf\xaa\x17\xee5\x01^\x5c\xef\
+\x8f\xc2\xfc==\xca=>\xf3\xcc\x8a\xd0\x19\xe4\xe7C\
+\xa9g\xe1\xf4}\xcd\xf9\xdc}\xed\x00\xa8~\x5c\x0f\x0a\
+\xff~\x81\x07\x13\x83N9\x94x:\xbd\xdc\xb7\xa5\x02\
+\x00\x13?O\x1bA\xa8\xd7\x1b\xaa\xa2\x0a\xe4\xbc:j\
+\xe7\x97\x07\xe7_J\xf0\xfb#\x0c< PTyp\
+(\x08f}\xbd\xfa8j\xb5\xd3\xd8>\xf2\x00s\xbf\
+\xf9z\xae\x1b\xeb\x82\x9fG\x01\x89]\x22\xb3R\xbc\x0f\
+fj\xe8tP\xe8\x22\x86\x22$\xd8\x0f*\xc4\xd6d\
+o\x05u\xc9GX`V\xd0\x91\xd7\x0c538l\
+\xa8\xdd\xfd\x16a}\xdco\x11\xd6#\x07\x884\x09\xba\
+]\xbb]\xba]\x0a\x22y\xdd\xf8\xba\xc0X\xb8J\xb3\
+B\x88\x8d<\xa0\x8dR\x85\x9a\xab\x86s=\x98Q\x82\
+yAg\x9b\x0d\x8d\xe7\x1c G\x8886P\x0eX\
+\xb1\xee\x98m\xc3\x0e\x90\x03\x0f\xb1\x18T\xbb\x11\xbd;\
+\xce\x22\x8c\x90\xa0\x02\x0eu\x18\x84\x94\x83\x00@C3\
+QnG\x0a\x80\x06\xf0\x86:\xbe\xd9m\xbd\x16\x10|\
+\x0ex\x0a~\x98\x17\x1c\xa4\x1cd\xfb\xe6\x8du\xdf\x90\
+\xf0K\x1d\x97\x84\x8e\x03\x85\xc2\x9d\x99\xaf\xf1^\x16A\
+\x1c\x90\x02\x05\xc0`\x1f\x1d\xa8\xf2\x9ffC\xf7Yu\
+\x00?\x00\x01\x01\xa9i-\x8b`\x7fy\xbe\x80\x00\x89\
+\xf4a\xf3\xe53\xfaR{\xf6Q\x94Wu\x1d\xb8\x9e\
+\x9a\xe5\x1c<\xab\xce\xffz*\xac\xd9\x07Ix\x9e\xd6\
+Ao\xc7\xc9\x83AD\x89\x99xl&W)\x98v\
+\xeb\x1cH%\xb7P\x09\x97,n\x159ZG\xd7\x81\
+\x8f\xbd-\x02p\xc1\xbek\xeb\xff\x810\xdaBB\x85\
+\x8d\x17#!Praz\x88\xb1\xe0L\x17D\x97V\
+\x91\x0f4\x09\x86\x01\x98\xcb\x06\xe0M\xbf\xa7\xbb\xdb\xa2\
+\xcd\x10#R\xc9\xfa\x1f~\xd2\xa2=G\xe9\xd2\x1c\x97\
+4\xc0\xc1\xca!+\x88H\x14\x86\xdf\xb1h\xaa\xd1\x14\
+\xb8\x9e\xb0\x01dj\xe61=g\xd1\x12~\xdf\xef\xa1\
+Vj=\x02H\x14&\xc8<\xf2Y\x1f5\x9b\xb5\xf4\
+h\x8e\xc7\x82V\x0b\x80\xa0\xae+*\xe0\xcc\xa8\xa6\x07\
+\xd2A\xe9\xa0\xfc~\xffh\xd1\xc4\x8e\xfcU.\x0b\xe9\
+m\x16\xa1\xe0\x96\xdfq.\x9f\xca\xe8\xc1`U\x9dG\
+\x9a=tf\x96\xf6i\xd7\x1c\x90\xb6\x80k\x8d\xe8\xfc\
+!\xa1w\xd1A\xce{\x80\xc2\xe6o^m\xf2\xee\xb7\
+h\x89\xa6\xbb\x05h68}\xc8B\xfb\xef\xed*H\
+\xafl\xf6p\xdd\xb99\xce\xd1\xa8\xd6\x22\xed\xf3\xf8\xac\
+\xe4\x1d\x16\x8d*\x99\x8e\xb3\x10\xa0\x9b\xdfG\xf7x\x8e\
+'\x82\xc8\xaai\x14\x5c\x11\xf6cK\xaf.k\xc0j\
+Z\xc6\xa2\x89\xc0\x99\xf9\xa1\xd9\x1f\x16\xe0\xe9i\x9d\x83\
+\x0f\x06J\xf4[s\xbc-0\x12_\xb0\xc8_\xff\xb1\
+\x1c\xbb\x05\xc0\x0c\xbb.\x15FP\xc7\xe9x\xfa\xba0\
+\xf1\xc8[\xf49\xe7T!\xbe\xae\x98\x8ey\xdf\xe8\xe6\
+\xb4\x08\xfb!\x1d#\x0ati[\xb8\xfd\x98\x9e\xb3\xb4\
+\xb6E9_\xeb\xbeA\x83E\x80.\x14\xd6\xa2M\xb1\
+O\xc8\xabt\xeev\x8fX\xc8\xfe\xed\xbbA\x8c\xecg\
+\x95\x19\x03\xc3\xa1\x00\xf3\xc6\x8c\xda\xdcB\x9d\xdb=\xf5\
+~\xd7l\x85\xbd'\xe8\x88\x8b\xaa\x10\xf4Yx\xad\x9b\
+\xf2\x1c\xdc\x15\x0a_+\xa87\x0f\xb6\x9e\x12W\xeb\xbe\
+f\x11\x0a\xc78\xb2\xf8\xa0F\xaa>+1\xb5EB\
+\x03\x83\xbcK\xfb\x16y\x036\xa4\xbe_SPqN\
+\xc1TR\x9e\xe0\xfb>.O|=\x1dEF\xf24\
+\x92\x82\x8a}\xc9\x92\xe6n\x0d\x8a\xf1\xbc\x16\xe1<\xc3\
+\xe6X\xe7\xb8\xbf?\xb4\x114\x22\x93\xd6\xb3(#5\
+k\xd8H\x8d\x8b\xa8\xa9P\xec\xd6\xca\x91\xdf\xf7h\xe3\
+\x1c\x1b\x15\x1b\xba\xb3l$c\xf4\xe6\xd1\xfc\xa3\xbc.\
+\xbb\xb5\xeb\xbf\xe3\x8a2\xfe\xaaEc\x00x\x81\xa2\x91\
+G\x1f\x15C#\x03\x97\x0alFit\xe0\xd6\x82\x9b\
+\x87\x00?\xb7\x97D\x5cS\xc0\x99\xdb\xa1agG~\
+\x83x*\x85?y%\x14i\x98\x04o\xb2h\x85:\
+\xb3\xf3\xe3'\x04\x00\xb0n\xf8{\x80\x1a\x1a\x1a\x88O\
++O\xf0sV\x1a\x05\xde8\xa1QA\xe1G\x1e+\
+\x0a\xfc\xf8+\x16\x01\xd0\xe1\xdf\xb7\x94\xbd \x0d-u\
+\xd2=\x8f}\xa2\xe6\x91\x83]\xc5\xe4\xa3\xae\xa0\xa3\xcc\
+\xe8#\x1d\xe4\xfd\xa4\x85A\x1e!\xed\x17\x98\x07e\xff\
+<\xb7\x01\xbc\x0e\xec_\x5c\xa2}N4[\x04\xfcz\
+\xc7\x1aw'\x0ao\x01\xdf4\x5c\x9c) \x80\x86\x06\
+\xa0S\xdc\xa1\xd4s]\x01Li\xb41\xa2B\xfeE\
+#Gy\xbaS\xe9{#\xa9>\xe2\x83\xfb\x17\x807\
+u\x05L-\x5c!\xfa\xcc\x11\xea&\x98\xbf\xbbH\x8b\
+@b\xed\xae\xcd\x82\xc6\x12\xf6}h\x17\xa0\x0d\xc5\xe7\
+\xa7\xa0\xe7s\x03\x90\xa8\xb1\xe3\x8d;F\x05x\x7f\x1f\
+\xb0(b\xe89\x82\xdb\x0a\x80\x17\x9f\x0b\xf7\x0b\x03\xb6\
+/\x0b?G_7\xe9\x85)\x22|\xff*\xa5]\xdb\
+\x80\x223`\x86\xd09'\x01F#`\xae\xa2\x7f^\
+\x0b\x90\xd9\xc2\xe8\x80\x95\x83\xb1\xe3\xce\x1bc\x16\x83\x03\
+\x0b\xea77\x82\x02\x04D\xac_\xf0\xf2A\xfb\xb3\xf1\
+$V\xfc\x1c\x12F\xc4\xc1\xf0;\x07\xb9\xe1\xeby\xa5\
+P^@\x09\xfbb\xfaz\xa8Z\x14\xf4,\x04\xa8?\
+\x14\xc0\xff\xab3M'\x9bY\x1f\xa8\xfd\x00\x05} \
+\x80\xef\xa3 f!\x0fu?8\x88\xa0\xdcb\x83\xc7\
++\x0b\xf7y\x89\x19\x02L\xcc\x15D\x17\xa3\xa6\x03\x9d\
+}\x0a4(o\xa2\xdc:\x00\x03r\xf9\xb8\xben\xcb\
+*21\xf8\x91E(\xd8)H@\xa0\xe8D\xf6U\
+2\x11\x0f\xe4\xef\xf9\xfd bP\xb9\xb9\x9f\xbcO\xbe\
+\x9f\x0e5\x05\x00\x09\x0ab\x1a\xac\xdb\xd7t\xbd\xfe\xad\
+\x99*6\x08%\xf0n\xc3\xa6\xcf\xe1\x07\xe1\x14]\x1f\
+!\xe3<Hn\xffG\x024\xd7x\xce\xa2\xd6+\x95\
+\x7f;\x16\xed`t\xd5t\xec\xbe\xa0\xd8C\xe1\xf9U\
+\xfe\xff\x5c\xe8t?\xb2h\x94\xc6\xc1\x97\xe43\xfeQ\
+\x89Q\x1d\xad\x91\x80{\x84(\x1f]U\xd7\x01\x10\x0c\
+\x7f7\x04\x9e\x02\xd5\xfd\xb1\xb1\x07\xd2z\xc3\xf6\x8c\x04\
+\xd8;\x83P\xa3(\x94\x85\xe8\x8e7\xb6\x08\xcf\x85\x12\
+\x14f\xe1Q\xc7\xa5\x83\xe8\xe2\x82R\xe1\xf6\xaf\x078\
+\xd9\xc5g\xe4\xaa\xbd!*\xdft.\xd8x\xd1V\x10\
+\x85\xda7xl\xc4\x98\x15\xc7\xb7\x16\x0d\x05!\xca\xfe\
+\xf3T@zb\x01psB\x89f\x8bF\xc1\xaf\x03\
+\xd2;<:\xb0]4\x90\x11\x02Q\xb4\xd0R@\xf4\
+\xc6\x0b:\xc4\xc9\xd8\xb0ew\xe3\x0c\x06\x0a,\x12\x1f\
+\x12\x9d\xabdW\xf6>%\xe4\xd7\xa8s'5\xdf\xee\
+\xd3\x16-1\xc8\xe9y\x01\x10\xa0\x16R \xf8,\xa9\
+\x12\x15\xdf\xbf\x00\x86T\x98\xe3\x17\x9f\x9f\xd9\x02\xd0\xfa\
+\xf5\x98a0\xa3\xcd\xf6\x96\x0e\xf6W\x83h'\xf6;\
+\xac\x17\x10{F\x07P!\xd7\xc1?\xf8\xb5E8\xa8\
+\xb9?\xa8\x1eO\x1d\x9f_\xb4\x1a63\xf9\xb56\xa3\
+\xec\xb3\x93t,\x98\xe9\xa7\xe3AG~\x01\xd9\x17\xf2\
+\x9c\x9e6\xf1\x8d\xc2\x5c\xd0>\xe1>\xe6{X\x84u\
+(jn\xf7W\x8b\x06\x08\xa4\xe3-T\xb0?\xabN\
+\xd2q\x8dz\xdeMZ\xb4\xce^Z\xcd\x22\xccRj\
+d!-l!\xd7\x8c\xfc<v\xb7X\xe4\xb7\xf5\xad\
+\x1cg\x04\xd5v\x15\x8a\xccB\xa6\x1b,DY\xcf\xf7\
+!]f\x11l\xd1H\xd8eO\x856\x07Z#\x00\
+h\xe9\x10\x8b\xfcz\x9dE>6\xf6\xb3\x08\xbe\xd6\x88\
+J\x8aI\xc31\x8f(\x18bH\x88\xe1\xa5\x87,B\
+\x22\x0b\x85^\x9d<F\xb0|\x1d\x8bI\xe1\x1d~\x01\
+\xc3\xde\xd9Em_\xf7\x99\x91\x18\x18D05\xd2F\
+96n3\xac\xc3M,\xf4<n*\xcd\x89\x9b5\
+Z\xb3mcV\xa0\xe5R\x0a\xea\x8f5Q\xaf2j\
+se\xe8\x04\x09XF\x05\xbe\x9c\xc6o\x0f\xa2\x8f\x0b\
+X\x04-\x03\x80\x8f3\x8a#t\x05\x8a\xb7o#w\
+\xee*\xf0K\x8b\x9603\x82\x85\xa8\x9b\xff~\x00&\
+\xd3\x08\xd82\x7f\xbe\xce\xa2\xd8\xce\xe6P\x01\xfb\xf7:\
+BSD\xc7r9bv\x80\x00\xcfi\xc3\x1c\x1b5\
+`\x04M\x90\xf1L\x16A\x8a\x89s\x10\xc0\x9a\xfc\x05\
+q1\x9e\x17i\xcd\x18\xfcd\x00T\xfe\x8ce$\x85\
+\x91\x8a\x89\x0b\x05\xa0]\x5c\xf7\xe7|\xcaT\xa0M\xcf\
+\xcfx\x11\x8b\xfc\xba\x9eE\xd0,\xd1\x88\x04\x00\xd0\xf0\
+\xd9\xe1s\xc3\xe7Zc\xa1\xccd\x7f#\x00\x8b\xd8\xc0\
+\xd9\x9f\x97\x0e\x22_v\xca\x9c\x1f\x12f\xfe[\xbep\
+\x1c\x9b=-\xd7\xfb\x87r)b\x81\x1b|yY8\
+\xc7\xef\xb2\x08\xe7\x1b\x09\xb9>Gi0\x0d\xc39#\
+\xc6\x97\x03\xe1t\xd6\x00F\x19\x11\x90\x0d\xb3\x8f(\x00\
+\x84JS\xc0\x1b\x0b\x8c\xacH\xec\xab{\xc0\x22\xbf\x1e\
+f\x11\xf2)\xfd\x1e\x00\xe6t[\x8e\x87[G\x8f\x91\
+(\x00\x97\xee%\x8b6B\x00\x80:\xde1\xc7\x87u\
+\xfe\xdby\xf1/\x8bP\x08\xea\x5c\x82\xf9\x04p:Z\
+s\xb4\xd6(\x9f{\xa3\xe5G\xcb\x8d\x96+\xcc\x88\x8b\
+\xbb\x8b\xcb\x08\xd4b\xddb\x81\xd9\xc1\xac6\x0c9\x89\
+&\x0e^\x123\x03\x8a\xff\xd4|>N-\xe2\x9a\x8f\
+\x1b\xa0\x99w\xed\xc3l\xdfvf\x08\xa3\x02\x14nb\
+h\xd19\x1d\x7f\xd4\x22\x9c\xc7\xdc_\x15\xbc\xde!\xa5\
+`\xd4\xe8\x9e\x03\xe10U\x04\x80QP\xb98\xa9F\
+\x10\x5c\xf4\xed\xb7\x95\xda\xef\xcf%\x0c\x03\x8d\x9c\x8c\x1f\
+\x91f\xccH\x0f\x1c\x852\x80\x04#\x00\x88\xc8\xd2(\
+\xa3\x11D\x03\x92\x02\x8dz\x85|\x11\xdbR\xf2_F\
+D\xd5\xf1eD\x81\xbc\xb6\xdb\xd8\x22\x8c$\xa02O\
+c\x8f\x0e4y6u\x84\xd6\x89I\x1e\x9a\xe8!#\
+:\x9e7\x008\xa0!\x00\xa0Ac\x10W#4:\
+hHQ\x87\xc1t\xe6\x95\x9f\xcb\xcc;\x0d;\xde'\
+u\x22\xfb.\xeb]v\x81\xfes\xa9\x93\xd8\xe7\xb8\xae\
+=\x11x\xa7\xfe\xf7\xdd2\x18]\xa5\xee\xa2\xbe\xc5\xe6\
+\x96\x86\x11\x22\xef\xb8\x96!\xe6-\xa6\xe1\xf8r\x8bP\
+\x9f\xf5D\xe3\xbd\xee@t\xd3\x18I'\x85\xc6\x19\x8c\
+\x1c\x80\x9eoX\xb4\xf5\xe4u\xb2\xae\xaf\xbb\xf5\xb0~\
+`zR\xa7\xbd\xe0#\xea\x95\xf1\x8bX\xb5\x00\xc8I\
+G\x1c,=\x5cQ\x85\xf5\xcc\xe1\x82\xc6N\xfe\x1bQ\
+\x8b\xe9\xec#\xde\x07b\xf5\xbff\xde\xf9\xb9tty\
+\xa5 \xb5?\xcd\x17\x0aH\x00\x00\x0a~~\x1e\x0b\x03\
+\xa4\x9c\x03\x0d@\x83\x82\xbc_\x98\xb7\x02\xbf\xbe\xf2\xef\
+\xed\xf7\xd5\x84\x1d\x8a\xffj\xba\xe0\x14\xe8\xbc\xd2\x19\x10\
+\x05\xd3\x7f>7\x88?\xf7~\xbf\xcf\xd6\x02@\xb0\xe0\
+X\xc8,\xe0\xbf\xe9\x81\x7fI\x853\x07\xb5\xfe3\xb3\
+\xc5b\xef\x07\xb2\x09e\x1b\xc4\x8e\xdf\x8f\xb8\x06\x1b$\
+\x9a\x08cmTt\xa0A\xf8\xa6W'\x9d\x8d\x0cD\
+\x9c\x02\xfcFQ\xc4\x1e\x16\x95tY\x8dF0\x1b\xce\
+udcfc\xe1\xfd\x00,\xf5gk\xe8D\x83\x88\
+3\xab\x02E\x1a\xe0\x05f\x83\x10`(\xc6\x8e\x88\xb2\
+\x833\xda\xc0}\xe6A\x84\xd2\xf6\xb2E\x13\xe9\xa1#\
+\x85*\xb2\x8b\xaf\xec?>`|@\x13\x91rJ\x15\
+H\xbf\xee\xcfx\xc6\xf12\xe3e\x8a\xc8\xcf+\xe3W\
+\x82m\x16\x85)\x94o\x89\xb0\x8cg\xb0\x08\x1b'\xb3\
+\xef$J\x97\xa4\x8b\xd3\xc5Ad\x0d\x00\xedP!\xe3\
+\xcc\xc2\x01\x18\xc1p\xe0`D\x04K\x9f\x0b\x0a\xe1\xe8\
+\xef\x98\x16\xeb\xf0\x00\x00 \x00IDAT\x16\xc5'\
+:G\xf0?\xa5\xf3\xa0\x8e\xa9\xab\xbc\x0b\x99eV\xd7\
+\x13M\x0a;f\x96\xb1\x0dT\xc7\xd3\xdd\x078@5\
+\x0b\xee.\x0el\xc4P\xeb\x99\xad\x12\xf5\xcb\xdd0\xd0\
+,Pb\xc7l\x99\x17\x88\x5c7\xec\xd8\xa0\x80\xe3b\
+\x00uT3\xf1tb\xbc\x10*\x9c\xed\xf0\x5c\xc2x\
+\xa2PT\xa1\xea\x9dOF\x16\x10-d\xa3\xa6\x90f\
+V\x8b\xef\xe3}\x90\xf8\xa8s\xe7\xaa\xf3\xd8\x03\x8a\xda\
+\xe6\x09\x13\xbf\x07_ZD\xb4$ZC\xe2Fa\xd9\
+\xdf\xf8\xd3\xa7k\xe7\xd7\x11\xf9\xeb\xf5\xdcj\xff\xf5\x0e\
+\x14,g\xb9Y@\xd5EK \xed\x9avI\xbb\x06\
+\x80\x0d\x9bA\x9eO4\x1e@\xd6\xa1\xbcI\x0c\x94\x99\
+e\xee#\x9dN\xdf\xa7\x1e-St\x95\x8a{\x96\x00\
+\xa1}B\x87\x1e_\x5cl\xca\x1e\x1c<`\xa3\x19\x0e\
+\x9cL\x0e\x86F\xe5\xcf?\xe5\xb12\xf3\xb9\xfex\x03\
+\x9b\xb1\x9f8\xbb\x90M\xdbl\xb0\x00\x8b\xe1\xca\x16A\
+t\xee\xb4\x02\x19\xf8,\xe9\xf89\x8b\x96`\x15\x11\xa8\
+'\xa5\xee\xbe\xb0\x0e\xfc'\x05\x1cNm\x8c\x19\xec\xa8\
+\x985\x1f\x9ef\x91_\xa7X\xe4\xfbt\xb2E\xeb\x10\
+t\xbb\x1a\xd7'\x7f\xfd\xbbr\xbcS\x00\xc5'\xa4\xaa\
+\x9e\xd7\xdd\xf0\x08\x0b\x8d\xa0\xcc\xd0F;\xd2\xe19\x0e\
+k@\x9e\x8b\x11.\x90c\xc1\xd6\xf9C\xb5>\x1d\x9f\
+\xbe\x9c\xbe\xdc\x0a\xf9\xe1\xea\x16%\xd1,\x89\xb2\xdb\x95\
+\x1e,\x17\x8ay\x94\xf8\xac\xaa\xf3I\x94[\xfc\xee\xd9\
+\x07\xe9\xbc\xf9\xe8\x0f\x85\xe3\x99\x16!\x91A<\x89\x91\
+\x12D\xeb$\xe6Vf\xfbM\xeb\xe2\x15\xed\x9bjD\
+\xa4\xabs\xfc<\xf8\xc0+!Mf\xd6\xd25`\x8f\
+\xc2\x09\xe0\xc9\xf3\x15\x80F\x15\xa0\x05\xa8\xfcL\x03\x98\
+\xba/[\xe4\xef\xbb:\xc7U*0\xbe\xde\xf6\x01\x07\
+\xd4>U\x19CE5\xfan\xed\xb7\xcb\x04\x8a9\x0c\
+\x1f\xed\x9fi\x86*\x86H\x82\x9f~`\x11ft9\
+w\xf8\xbc\x02\xbcK\xc7\xfa\xce\xb6_8\x05\x15\x91R\
+;\xefn\xacb{f\x83H\x07\x0c\xd1\xca\xf2\xdb\x9f\
+\xd4~\xbb^\xf8|\xb8b\xb0O\x1b\x10z\x5c\xd0\x0c\
+\xd2L*\x9a\x0d\xe9J\x8b`\xe7'\x06\x22\xf6z\xe4\
+=^\x80CYeV[\xcf\xd1\xc4'KL\xa4\xd7\
+,\x02S\xe5\x11\x8bV\x90\x99\xa9\x9a\xd9\xaaQ\x90\x17\
+\xd7\x1d\xf3\x8b_\xcfBT\xfd\xcb%b\xb7z\x00\x8a\
+t\xfe;\xa0h\xefr\xd3\x90GQx\x00<\x1a@\
+\xf56\x15P\xa3&\xeeF\xa1\xde\x1d\x94\xe3\xd3af\
+\xdc\xf8c\x87\x85\xfc\x8c<\xd7\xb2\xb9\x05\xa7\xd5~\x81\
+\x1a\xed\x85\x05y\x0b\x8d\x1f\x9d\xdf\x0eD\xd3\x01\xee\x8d\
+x\xba\xd8%\xe7\xbe:\xa1\x8c\x94\xf8s\x8f\x0d\x19\x1d\
+w\xd6\xd3\xe2ex\xb3u\x94/\x1d_R(\xf8\xb2\
+\x97s;4\xf3\x9d\xcf\xd7\xa9{6\xc73E\xd3`\
+}\xd34\xc8\xa7\xfc\x0dELX\x0c\x86n/\x8b|\
+?f\xb6\x90\xcd\xdf9Atn\x89\xfa\xbe\x00\xfc\xd1\
+H\xe1\xbcM\xdbU\xa6N\xda*m\x99\xb6,\x22\xa4\
+\x85)3XH\xe2\xe3\xffWd\xd4|$u\xf4\x90\
+Eh\x84\x08\x90\xf6\x0e,\x850\xf5\x02#,+\xf7\
+\xb4\xa7\xc8s\x1b\xa3\xb72k\x99\x8d\xe7:\xe0&\xc0\
+('\xdfG\x1d\x01C\x09\xd7\xa8\xe3j\xe1?\xbeJ\
+\x00\xc3\xa7+\xd3\xa9H*\xee\x5c(\xf0ET\xd6\x0b\
+;\xd57>\xca\x81v\x04#W4\xec\x86\xfa\xbd\xd2\
+\x08B\xeb\x87\xfb\x00 \xe9L<i\xba8\xa3\x155\
+y\x18\x16\xe4\xcbt\xa4\xf5\x9c;\xc3\x95\x91f\xceW\
+\xb4\xd0$&\xec\x9a\x0c\x12Md\xffp\xd1l\xdc`\
+\x10U\x84\x89\x81f\x0f\x9f\x9f\xf5\xcd\xfda\xe4\x0dm\
+\x09F\xe2\xf8\x8fF!\xf7\x17\x06(\x9f\x1b\xf1ki\
+\xa6\xf9h\x05\xf9\x0f@\xa6\x98g\xae\xb6\xdfo@2\
+B\xa0\xc6\x98\xe7I\xfc^\x0ah~\xae\x00\x09\xef\xe8\
+\xb3\xff\xf1\xf3\xa8\x7f@\x5c\xa9\x97\xe4\xc6\xe0\xf5\x0fn\
+\x00bxx\x9e\x87;\x09\x1aS\x88\x94\x93\xdfs\x1d\
+\x01\x88\x00B\xf8|4N\xa9\xd7\x00~\xd0D\xe0:\
+\xb2_)\xbf\x9f\xf4\xc2\x90\xce=\xbfH\x0f\x92'\xa8\
+\xb6\xf1-\x1c\x00\x82\xfe+\x05J\x9f\xc2-\xaaR)\
+\xff\xe7\x938\xd6\x82\xba \x0b\xbd\xc1\x07\x9c\xa3\xf4\xa2\
+\x1a\xc0\x00R\x06P\xc0\xfb\x82j\xcb\x06@'\x9e\x9f\
+G!\xaa\x02\xdc\x81\x02:a\x00\x14\x14\xa0\xdch\xfe\
+~\xf6\xde\xa8\x01\x08\x0a7\x5c\x0b\xcag\xcb\x99Ue\
+\x03\xe2}\x88\xc9\xe0\xb3\xfe=&\x80\x7f.\x10/:\
+\xb0?\x91H!7l\xbe\x0a\xa0\x0cv\xd4\xac\x0a\x07\
+\xd3\xb3\xea\x80\xabS\x0e\xd5\x8e\x84\x03\xea\x98\x17\xfa\x5c\
+\x17\xa8\xfd/\x0a\x81\xc3\xce\x0f\x80\xe7\xbfB\xb0X\xd0\
+\xb2C\xf2Y!\x01\x06\xccz\xbaM\x08\xc8\x19\x85\xb7\
+:\xb9\xbe0I8@\xae\xb0\xef\xf9`\xed\x9c\xfb\x8c\
+/\x22\x8d\xa8\x86\x82`\xcfY;\xed\xbe1\xdeQg\
+\x93\xcb\xf1\xbfi\x98\xf9\x91H\x9fS\xb6\xf9\xfdl\xfc\
+R\x0b&!\xe1`\xe8o\x5c \xab\xdd\xed\x16\xe1~\
+\xa0\xca\xf9_\x8b0\x0bK\x07\xf04\x8b\xd6i\xa6\xb3\
+\xc6\x8c7\x0f\xbe\xcf\xce2\x1b\xbeb\xa5P:\xe5\x11\
+J7\x89\x8e6\x0a\x9f\xb5B\xe4\x05D\x95u,@\
+\xc5\xa9\xaf\x02\xd0\xc6WZ\x04\xe4\x1f1\x1c\xec9{\
+j\xf1n\xb3$\xa6\x84\xab|\xb3\x81\x89\xfa\xe5\x1du\
+\x90Z\x0e\x16l\x03%\xe27\xf1\xa5\x12M\x14\x90D\
+\x1d\x0d\x10\x89\xa7\xf9\xf7\x83\xd83\xd3\x04\x02\x0d\xc0\x03\
+\xc0E'Z\xeb\xdc\x0bz>\x1f\x1dj~/\x9a\x0c\
+hO\x00H\xb0.\x01,\xb8Ot\xf4\xa1\x9e\xf1\xdc\
+\x02\xe0\x00\x98\x08pH\xabX\x041E\xde\x07\x07\x0c\
+\x9f\xafg\xcb\x89=\x0d\x94L\xbe\x8f\x19\x7f\xf7#G\
+\x14J3r\xd8\xfa\x8c\xbf\xa5\xd1\x93\xa7\xbb\xd2)\xcc\
+OU\xb1?J\x7f\x96\xcf<\x8c\x0d\x89\xec\xe5\xe4\xa6\
+R\x14\xb5\x8e\x5c\xbb\x84N\x8a\xf9oo-5\xe0\x9d\
+CGB\xfbjI$\xc3\x88\x88?\xf7z\xdf\xdd:\
+\x16\x01\x80\xf9\x7f\xc2\xce\x04\xfe\xd6\xa9l\xff\xbf\xfd\xec\
+}\xcc2\x14B2dV2'R\x88\x0c\x0dTf\
+\xcd$\x95!\xb3\x14\x07\x95(\x0d\xc6D\x19\xa2\xc1P\
+H\x992\xa7\x88B!\x09\x87\xb7x\xbd\x99\x87d:\
+\xfb\xd9\xffu\xad\xe7\xfa\xdeky\xfc\xdf\xff\xdf\xfdy\
+\xdb\xef\xef\x9c\xdf\xf9\xfd\xf6~\x9e\xf5\xacu\xdf\xd7}\
+]\xd7\x8d\xb9\x14&qt\x8em\xe6\x97M\x98~[\
+\xa8\xe4\x99\xa2\xfe\xddj]\xd3\xb1\xb8m\xea/\x02\xd8\
+\xe2\xdc\xb26;(\xc5\xb8\x9fS@1\x96n?\xc5\
+\xd4\xd4\xb4w)lBtC\xda\x1e\x8eM\xa1\xb1d\
+?P\x94\xc2\x84\xe78\x17rgY\x9a\x92\x12\xfc\xf6\
+8E\x95x\x83\xe0\xe3\xea\xafD\xf8\x89L\xc1O\x91\
+\x01\xbd\xf3\xb3\xa4\xc0\x80\xc4\xcc\xa5\x15\x15\xb1K\xee\xee\
+g\xa7\xd7\xcbR\xa4\xc2w\xb4\xaf\xa22\xa9\xb3\xc4$\
+K\x0d\xd2:\x1f~mx\xc4\xf0\x88b\xda\xa7\xf4Z\
+\x09v0\x9f\x9e2\xf2o\xf3Q:s\x83\x17\xbb\xc2\
+\xbc\xf9\x9d\xa2\xb8\xf13_;\x9e?\xce/\xbc3\xd0\
+\xf4\xbf_Qu\xb8\x9an|\xea\xe0{\x8a\x8a1p\
+T\x07<\xc4\xf3\xcd\xfeD\x81\xeb\x0ek61\x13 \
+p\x9b\xa2J\xe0L%\x1f\xee\xad\xb04c\xbf\xca\xf4\
+\x92)%GtL)\xdc\xe8\xc3\x5c\xd4&nQ\x98\
+\x18\xa0@\x1a\xd4\x9c\x9d\xe2gE2\x14S-`\x9a\
+\xc0t\x80\xfa\x8bv\x13\xb7u\xa6\xc0 \xed\xfaqg\
+\x02\xdb<\xa0\xa8\xf6\xc9\x13<\x87\xfePw\xb4\xf7U\
+d*vg\x8a\x87\x89\x99\xaf/\xc0x\xee\x84\xbe\xc3\
+\xf7\xfd\xf3U\xde\xa1\xdd\xe4\xdb\xde\xff\xf7*c\xecB\
+s\xebB9?\x0fWT\xd4[}\xfeQ\xd5\xb1\xc6\
+|x(\x08-\xbd\xef\x97\x15\xa5\xa0\x84\xba\xccX\xc2\
+`\x0c\x99a\xd4\xce\xa6(&\x82\x01\xfc\xba\xa3\x9e\xcd\
+\x13\xe7\xa8\x12w\xf6o:\xa7.\xe48\x17\xda\xd7(\
+r\xfe\xd3\x01\x8b\xcfw\xcfU\xfb\x85\x14{\xf9\xb9\xbf\
+\xa1\xa20\x8b\xf9q}u\x0e0\xfd\x05\xc6\xe21y\
+\xc0b\x99\x9f\xce\x1cn$\xab\xf6\x04\x08f\x07\x92\x1a\
+\xc6\x85\xb2\xbf\xbbsK>\x90M<7\xa8\xdc\xfb1\
+\x0d\xb4K{\xdawST\x92\x07\x80\x14\xc6q\xe1\x01\
+\xc1\xfb4\x93)K\xfe\xae\xca\x9d\xf7\xbc\xcf\x06\x10\x8d\
+\xf7\x86\xf3\x80\x18\xef\xc6\xfcu\xceU\xcc\xd6\xce\x93M\
+g\x01^\xda\x03\xda/\xb6\x07\xd8\xa5\xfeo\xc5T.\
+K\x01\xa6\xe5\xf5\xd1IR\x06i\xdf\x1d\xe4|z\xc5\
+\x9cO\x8b\xb8\x9f\xce\xbb\xf6\xe5vf\x9b\xd6E{^\
+{n{n)\x98\xa3\x90%o\xbd8GHF\x9a\
+\xbd\x9b}dn::lt\xf8\xe8\xf0,\xd9\xd9F\
+@\xc0`\x87\xf4~w\xa8\x80\x22\x03Ci\x17\x19h\
+\x1fi\xcePd\xa9V.p\xd3oOQ\x8d\xb9\xa5\
+c\x8c\x97\x09\x8d\x1a\xa6X\xf0<\x92/\x01\xc8\xd3\xf1\
+g|\x1a\x00\x0c\x9db\x1aDL\xb1\xf1\x98\xc9hP\
+8\x0f\x11\x9c\x92=B`\xb01u\xe2\x80n\x1f\x8e\
+\xe7\x85<\xc4&\xcfa\x8a\xc7s\xea1\xa4\xb8\xc3\xe3\
+\x95\x10\xf9*\x8c)>\x07\x00\x91\x01\x96\xe8\xec\xba\xfe\
+i\xf7V\xa4\xd7\x0d\x15\x15\x83\xe3m\x8ab\xd6\xc84\
+\x06$vQ\x90z}\x0e\xaeRT\xd3q8\x1fx\
+\xdf\xce\xf3\xb3\xa7\x8a\x18\x1fk)*\xc6v\x9fQ\x8d\
+\x04\x94B\x9b\xfa\xa1\xdf\xf8\xe5\x95\xfc\x01\x13V\x00\x06\
+\x9e_\xf2?L\x97\x91~\xd8$8\x0a}<\xa3\xdc\
+\xa0\x8d\xbf\xa7\xc1J}I\x03\x04\x09\x83\x9f\xe3`0\
+\xe0\xa5@}\xcb\xfa\x83yL\xbd\xc64\x07\xd6\xd5\x1b\
+\x0dD\x92\x97\xe2\xb9\xc2\xefe=\x98\xa9\x1a\xfb\x18S\
+\xb0`,\xb8\xe1\x82GR\x5c?\x00\x0c\x1aj\xd4\xa3\
+6\xc9\xa6\x01\x19\x8dw\xd7qx\xd2\xd0\x98\x1b\xc5\xc2\
+\xc7d\x80\x0b\xa4\xf2w\x9e*\xc1\xe2\x8d\xeb\x7fg\xaf\
+\x0ab:\xf35C\xa0\xbe\xc0.\xe8\xa3\x83\xca\x0d\x06\
+(\xe8\xbb\xe5Sp\xd7&\x84sTZ\x1e\xc6\xcc\x81\
+\xf4\xa2a\x87\x01\xc0\x85\xe4\xcf\xfb\xd4\x10(!\x14\xc4\
+t\xa2Y\xc0\xad\x0bE\xfe\xe3\xfb\xe9\x80\x81\x10\xa2\x81\
+\x872f\xaaFP\x85\xb7v\x01\xee\xb1\x19\xf19(\
+\x1cM\xd9\xa4\x13\x18\x094\xd4\x11\x80\x8f\xdeuF#\
+\x17\x9a\xb2]<\xcei\xa7nlE\x98a\xa0\x81\xc2\
+\x8d\x9d\xf9\xe4\xe7(\xaaB\x86\x07\x86\xcfIg\x0e\xca\
+\xfb'\xbbqhP\x8a\xe8\x5c\xf3\xe0q \x85+8\
+@\x87\x13\xad\xf67\x8a\xbc\x90;WU\xcc\xbf0\xc9\
+r'\x16\xcay\x148t\xd2\x91\x10\xb0\xa0\xf1D\xc0\
+%\xdc&OhG\xa1\xd8\xd1\xa1m\x16UT&/\
+\xb8\x98\xa3\xc5G#\xb8\xd0d\xc1\xc9\x82\xf9}wn\
+\xfd\xack\x0a\x0e\x10[\x0e\x1e60\xc6`\x9d\xa8(\
+\x09jP\xe2p\x07\xc7C\xc0\xda\xea\xd0\xb03o\xd9\
+\xe6K\x91pl\xdf\xbd\xff\xa0\xba\xb3N\xb9_\x14\x8e\
+\x14\xee\x1c\x1c0/X\x1f\x98~@\xcd\xc6\xb5\x9d\xe7\
+\x83\xeb\xca\xf4\x08\x5c\xd3\xcd0\x88N\x1e\x9aQ\xc6\x8e\
+\xd0A\xe2`\xe5\xf9c\x1f\xe0y\x03\xf9\x04qf\x9d\
+\xf3\xf7\x1cd\xdcw\x005\x80\x04\xbf?\xb4\xa91\xe6\
+\x04O\x03\xd6-\xc0\x1d\xa6\x9d\x8c\xdb\xb1$!\xbcA\
+<\x16\x08\xed3\x05\x14\x9a\xe8XWL\xd1\x80r\xce\
+\xbe\x84\xa9\x1d\x1e\x05\x8cG\xe4\xe70\xee\x0c\x86\x04\x07\
+\xa1\x0f\xac\x18/'\x85\xdc/\xbc\x9e\x1e\xa8\x0ar\x03\
+-\xedg\x14\xd5t\x09\x17R\x8c\xd1\xe3\xcf\x03\x08x\
+\xbd\xa2\x8c\x89\x0c\x8a*\x09\xa75{\x98\xe7aJ\x15\
+\x00!SL\x00\xf6<^24f\xf2\x12xG1\
+\x1f\x8b\xfd]\x9f\xfe\x93\x9e\xb3\xbcu\x05\xc8\xba\xe3\x1b\
+\x09\x83)\x9c\x14@A\xc97\xd2\x1ds\xb81wT\
+\x99\xf8\xf52%!LnL\xb9\x0c\xc4\x1b\xe0\x05\xc4\
+\xdc\x85[\x00Jx\x0c\x18\xd0\x88\xf5\xc0\xf8DME\
+x\xa9\x14\x8a\xed.\x8a\xca\x84R\xf0\xd2;Kb\x9a\
+\xe7^\x7f\xd2\x12\x98O\x17\xe0%4\xc4\x22\x94\xdeP\
+\xcc\x0e\x01H\x9a\xb7*\xa6\xa6\xa6-\xaaH_?\xab\
+(c\xcf\x9aM\x15\xe9x\xd9I\x91\xbe\xfe\x95\xa2\xea\
+\xa8\xdb\xccl\xb8z\xd7\xc1g,`\xb3\x92\xa2<\x9f\
+\xed\x82\x8a\x8a\xa1f&K\x8cC{{\xf7\xbc6{\
+)*\xa6\x8e;\x16\x83\x03\x15\xc5|\x08)\xc7\xf0Z\
+E\xfaw+(*\x80\xcc\x85?@C\x00\x15\xbco\
+\x006\xa8\xabx|P(\x8a\xc9\x91\xce\xb9\xe1\xb3)\
+\x9e\xa9\x12%w\xf2\xb3t&\x15>\xcd\x9b\x14\xd5\x18\
+.\xa6-x\xaes0\x00Lqo\xcfPXS{\
+\xb4\x0b\xd1\xf7\x14\xaa?@2\xfb[$\xfc\xdewH\
+\x80q\xfbnOP\x14\x97t\xe6P\x03\xe0\xc2\xa8j\
+\xceR\x143\xbb\xd0`\xfe\xc1\xd4\xdc=\x14\x058\x12\
+\xbf@\x9d\xd9\xf6\x1aEa:E\xc7\x16\x00\x9d\xf5\xcb\
+\xfe\x87\xb6\x17\xad\xac\x0b\x9d\xf6@E)\xc8s'z\
+\x17\x03\x99\xe7W^\x13\xbf\xe8\x18f\xe9\xdc\x5c93\
+\xea\xdc\xe8\xa1\xa0\x09\x13C{\x83\x84\x8b\xff\xc2\x8a\x8a\
+R\x0c\x05\xf6NO\xb1\xe0| \x9f\xf4\xfb\x8f\x8e!\
+\x00\x0b\xfb\xa1\x99i\xed\x99\x8a\xaaCI\x07\x93\xfc\x14\
+Wl(\xed\x9f\xc8s\x22\xf2>\x9a\xcdz\xf5\xd3o\
+*\x0c\x88\xc9\xa6\x0aK \x9f.\x1d\xca8\xbf=\xdf\
+\x9ei0\x93\xed\x15\x15\xc3\x87\x0e\xba\x00\xd9\xdb\xcc\x98\
+z\xa0\xcc\xb5\x8f)2\xe4#t\xee\x90\xc0\xf1s]\
+\x88\x85)\x9e\xd7]\x00\x08\xd6\xf4O\xee\xf0\x98\xc0\xbb\
+<\xed\x87\x0e$\x0c8\xaf\xcf0\xe93\xe3\x80\xfa\x9b\
+\xf3xp\xaf8R\x95\x14\xcd\x12\x9c\xd8\xef0\xc54\
+P\x99\xca\xc1\xac\xad\x0e\xe0\xc2\x9e.\xe9\xdeu\x92\xaf\
+#\xbb\xfd{\xb2\xae\xa2j09oa\xffh>\xd7\
+\x99s6\xb7t\xfb\xf8\xf0\xef\xc3\xbb\x87\xe9\xf7\x0c\xe7\
+\x1d\x1e4\x9c/\x9b{\xde\x9c\xcd=\x01\xb8\xac\xe9\x0e\
+\xcf\x071\xe86\xce\x05z7\x1e\xee\x0f\x8a\xaa12\
+\xa3\x1b{\x1b\x8d 7R\xc2c\x8a\xc2\x9f9\xee0\
+9`\xce\x92\x0fq\x8e\xbb\xa1\x15LR\x17\x5cq>\
+\xd8$6\xf2K\xcc\xa5=\xcdf\xb2\xba\x5c<2\xe0\
+\xb6z\xf6\xf2\xc0\x9b\x07j=y\x08c\xb7\x99\xd6@\
+c\xd4\xbf/=\xff]\x9eh \x15`\x00\xa0l\xf0\
+\xa0\xa20H\xa3ad&IL\xaf\xbaHQ\x8de\
+\xbcZ\x91\xfe~\x03E\x05\xdc\x1cmI \x00?\xc0\
+\x09\xcc[\xf2\x1f\xa4\xb0\x98\x02\x93\xc7\xe1\xd2\xcf\xc2\x83\
+\x91A=\x06C\x9a<\x8f\x86#\xf9+\xf5\x18u \
+y(\xf5\x17\x0dZ^\xb9\x8e0\xab)\xbc\xe9\xb8\x03\
+\x94Q\xe8\xa3\xed\xa7\xbes\xbe\x8cd7\xcc\x06\xfb\x12\
+h\xbc\x08\x18kh\x89[\xfc\x1e\xf63\x9eK\xcc\xaa\
+/\xf1:\xa4p\xbf\xd7^\x1eH\x82,-\x8e\xb1\x93\
+Hm\xa8\x0b9\xef\x90\x92~VQ\xf2\xfb`x\xc3\
+$\xefK\xd0\xb9\x8ex}\xc1\xa4&?\x82\x19\x8e\x04\
+\x86\xba\xd2\x9f\xa7\x89\x1bF\x07\xbe\xaf\xb1\xe7\x95\x84\x1d\
+\xb35\xb4Q\xfc\xc7\x85z6\x0fz+\x08\x86\x13\xfc\
+\xa0~B\x09\x87r\xce\xab\xfe\xf4\x89j\xc3\xe7?\x0a\
+\x9di\xd9\x86\xe6\xd5^\x04$\xfe\x14\xca\x14\xe8t|\
+\x99\xd3\xe9\xceZ\x8c\xf9\xe0A\xe5\xc2Q\xe0\xf39@\
+\xdcYp 9WX\x83\xc48\x97\x93;D\x06\x97\
+\xccT&\xbf\xbb\x95Y\xcac\xdd\x86\xda\xe6\xff\xd2\xdb\
+\xb9m|\xeb8m\x8c\x9a\xaa\xab\xb9\xba\x98\xbd\xe5\xce\
+SZ\x18\xe3\x1b\x14\xe9\xcf\xff\xadH\xafKk\x12n\
+\xd1\x8c\x84I\x09\x09\xbe\x91\xe5\xf6\xaf\x8a\xf4\xefoR\
+T\x1b\xc0,\x8a2\x9f\x95\x0d\x91\x86~{\x88\x22\xfd\
+\xbb_+R~\xb6\xee\xccuf\xa6\xc4p\xe6\x01\x8a\
+\xf4\xfa\x95\x99\x87\xcfL\x09\xd5\xcb\xfb\xceL\x91\xbe~\
+p\xe6?g\xa6\x8dt\xbc\xd8\xf8\x0d\xe3\xb4\x10\xc7\xef\
+\x1c\xaf7^/\xbd>\xadH\x7f\x7f\xe8\xcc\xe93S\
+!?s\xc3\x99\x1b\xccL\x1b\x84~\x9a~\xde\xf8\xc5\
+\xf1\x0b\xe3t?\xc7\xd3\xc7\x87\x8e\xd3A6\xbeL\x91\
+^?\xa7H\xdfw\x8c\x22}\xfd\x90\xa2r\x99\xbd\xa9\
+\xeb\xb8G\xe1\xc2\x1cx\xc6G1-\x02\xb3\x1d\xc6\xb8\
+\x19\x89\xc6\xe4\xa5]Q\x91^\xff\xa8(\xd7\x07m\xfb\
+d\xbb\xee\xe0\x9f\x5c\xdc\x8dac\xdcMt~\x9c\x08\
+\x85\x19\x93\x0b\xf2\x18+\xe6\x82\x9aqut<\x03\xe1\
+\xc7\x9c\xce.\xd1 \xd0\xb113>\x08m\xa8\x0b\xdd\
+\xc9\xbcN\x14\xbcq\xa0\xa9D\xbb?~J\x91~\xdf\
+*\x8a\xca<\x86\xe7\x13\xca\xa1\xdfgl\xa4$\xce\xb8\
+q\x8f\xbb\xb1\x83\x83\xdb\x15U\x87\x9c\xe7\x07WU\x90\
+W\x00\x19\xbc\x19@<\x99^\x80F\x8a\x7f\xc7\xf3\x0d\
+\x15\x09\xc0\x8c\x0d\x96\xe7\x0f\xe0\x86B\x0aJ\x1b\xda0\
+\xa8l\x06dBC\x8b\xa6\x95\x0d\x17)\x08\xff1\xd6\
+\x8c\x02\xc5s~\xfb\xf3\xe1\x83\xb9\x03C\x07\xe6\x01R\
+\x1d\x0a$\xc6u\xba\xf0\x8f1A\xd6\xfeF'\x12\x0a\
+\x1d\x1dJ\xff\xbb\x18W\xa9m\xff\x98\xea\xe0\x03\x08\xc1\
+\xbc\x12\x13 '\xaa\x9182\xe6\xd4\x00\xc4\xf0o\x8a\
+\xb4\xed\xfdT\x91\xbe\xfe\xa5\xa2t\xf4\x18\xd7\xc5X#\
+\xc6p\x010\xc8jRf\x93\x9a\xf2\xae9\xef\xb1\x8f\
+\xfdTQ\x12\x98x.\x98c\xfd_\x93\x7f\xe4\x84\xf8\
+\xe5n<S\xfa\xa9y\xbcTJk\xe7\xce\x89\xad\x12\
+\xc9\xc5\xf3\xfc\xf8\xc7&\x8f\x16m\xdcd~EUP\
+\xb8\xc0\xa0p\x09\xea\xf5:\x8a\xaa\xe3\x85\x89\x0e\xee\xf7\
+H\xb4\x00h`xx>r3\xb7\xa2tj\x9b\xdd\
+\x15\xc5\x5c*\x7fN\xcc\xa3\xdeY\xdc\xea\xd1\xf2\xc1D\
+\xca\x00\xc2\xf4r\x10g\xd3\xc6\x94H\xa6\xf46\x855\
+\xe9)\xd1\x1e~]Q:\xd6H\x0c\xc2\xad\xd9\x059\
+\x94\xfei/\xa7H\xd7m\x969R\xa4\xf3v\xb8\x9a\
+\xa2\xac\x17\x18\x03\xcdS\x8a\xf4\xf7\xb7)\xd2\xd7\xfb4\
+\xfb6\xfbVR\x06\x17\x9e\xa3g\x15\xe9\xe7>\xabH\
+\x7f\x7f\x9e\xa2\x00<\xcd&\xcd\xa6\xcd&\xd9|\xb2s\
+\xa3\x87\xb2\xec\x0eO6\x17L\xeb7\xa5\xeb)\xd2\xeb\
+\xf1\x8a\xf4z\xa4\x22\xbd\xbeW\x91^\x9fW\xa4\xdfw\
+\x8d\x22}\xbd\x99\x22}\xfdVE\xf99\x8c\x81$Q\
+\x1d\xee\x9e\x22\x15\xbe\xa3\x1f\xa4H\xebzx~\x8a\x0b\
+\xfc\x5c\xacf\x17\xfbt\xde\x0c/L\x91\xfe|\xf8C\
+E\xfay\xdb)\x8a\xfb\x7f\xf3AE\xe5\x16o\xb3\xd1\
+\xe6\xb7\x8aJBc\xa6J\x06\xf6\xde^Qh\x01\x86\
+\xefS\xa4\xdf\xf3\x06E\x06VR\xa4\xd7O\x0dw\x1a\
+\x0a\x80\xf9\xa8\xc2\xc0\x84\xae\xe7\x1c\xc3\xd9\x87i\x9fo\
+\x8eS\xa4\xafOT\xa4\xd7\x9f(\x0a\x00?\xfc\x88\x22\
+}\xce\xc7\x14\xe5\xbe\x0d\xd7S\xa4?\xff\x94\x22\xbd~\
+Z\x91\xfe|[E.\x98\xee\x19\xdeS\xd6\xd1\xe8\xde\
+\xd1}\xa3\xf4\xfeF\xd3\x15\xe9\xf5\x96\xd1\xad\xa3\x94?\
+\x8cV\x18\xad8J\xe7\xd9\xe8dEz]]\x91^\
+\xefT\xa4\x7f\x7f\xbd\xa22\xc3\xbbY\xe1i\x122\x97\
+\xdc\x5c\x91\xbe\xef_\x8a\xf4\xba\xddp\xfb\xe1v\xb9P\
+K\x91^\xbf\xacH\xdf\xf7ZE\xc5\xa4\x22q\xc4\x8c\
+\x13\xaa\xb2\x01#\x00\x11L\x12a\xd2M\xde\xad\xa8\xc6\
+\xdaY*\x15\xfb\x90\xe7\xdb\xe32\xdf~\xbf=\xa9=\
+)\xefGi\xe7\xa8\xa4N\x8f)\xa3*\x8c\x07:\x82\
+\xed\xe2m\xf6F\xc1\xe4\xaf]W\x91^\xefM\xa1<\
+h\xd3\x14\x9b\x14\x8a\xef\xf8\x08Ez\xddC\x91^\xff\
+\xa3H\xdf\xb7\x92\xc2\xcc\x07\x01&\xe7\xa68\xa7Lw\
+\x09\x09\xa7\x01\xae(\x84\x90\x82\x91?\xc3\xb0\x80\xaa\x8c\
+\xc7N\x1f8&\xff\xf4~\x94g]-T\x01\xc8\x9e\
+B\x13\xc0\x16?\x9f\x82\xc9&\x9b\x14\x0e\x8c\xa9\x85\x19\
+Cc\x22\x0a?\xbc,\x5c\x08L6\x9dl\x96\x01\x92\
+%;wx\xf6[\x98\x98y\xccg\xca\x13&\x07M\
+\xbe4\xf9R\xa6pw&\xae\x1eO\xdb\xacl@s\
+\xa9io\x9a\x96\xf2\xd4i;N\xdbaZ\xca3\xa7\
+=1\xed\xf1i)?\x18}LQ1\x8d\xd8\x07\xdd\
+9\x07 \x8f\xe98\x0b(\xf2x\xd8\xdb\xf3xX\xc6\
+8\x92\xd7\x1bp\xd2\xbb\xc9\xef\x87\xbc\xc3\x85\x1c\xc0V\
+\x5c\x1f\x1aS4\x9c<\x8d%\xcc\x8a\x19okF\x16\
+\xccM\xa8\xe9\x83\xbb\x0chm\xe2\xf1\xc4\xceG&\xef\
+\x9dl>\xd9<{\xf2t^\x17\x06\xc4'\xcb)\xcc\
+<\xda\xa2\xcak(xi\xecQ\xe8a\x92x\xbb\x1b\
+0\x14\xe4HD\xb7\xe9\x98{\xed\x9d\x8a\xf4z\xbc\x22\
+\xad\xd7\x19\x8a\x947\x1f\xac(\xd2\x8c\xf1%\x8a\xf4}\
+\xcf+\x0a\xa3\x06\x0f\xb0\xd0\xccojF\x0e\xe7\x9b\x01\
+\x06\xea\xc0\xf0\x1000\x8d\x97\x04S\x1f\xc2\xe4\x96\xba\
+\x8c\xfa\x91\x86\x18\xcc\x22\xce\xd1~\xa7\xbf\xf6\x8e[\xb0\
+\x02D`\x06\xc2\xec\xe6>\xd2\xc8\xe19\x02\xc81c\
+-\x1a^\xe4\xb7\xe4o4^(\x98\x91\xc4b\xae\xce\
+\xfb!\xcf\xa5\xb0\xc7\x0b\x00\xa6/\xf7\x0d\xca\xbd%d\
+\xdc\xc7\x90D\xdfdST\xbc\xbdhX\x9bQ\x81\xc9\
+.@v\xe4\xbb\x5cw3\x84#\x0f\xe4sp\x9d\xdd\
+\xe8\x0a3~\xea\x1d\x18\x044|\xf1\x0a0s/\xa6\
+7\x00\x901m\xc8\x8c\xccQ \xc9\xb8\xc3\xfa\x86e\
+\xca\xd8,\xd5\x0d\x03\xc1\x7f\xde\xf3\xdb)\x8c\x19#\xf8\
+\x9f\xec\xbf^\x0a\xf8>r\xe2\xef\x8f\x85\xe8\xce\x7f$\
+r\x14\x0a/e\xf2\xf9+\xbd\x05\x16\xf6\xcf{\xa1*\
+D\x84\xeb<\xf7\x7fI\x9c\xf9\xbd\x00\x0d\x14\xf2\xdch\
+:\xe9\xd6\xd2BMd\x83\x88\x05\x09\xc2\xe2\x7f7\xf9\
+aW\x80\xe2\xde8\xfe\x94\xa2\xd2.{\xcc\xde\xd4\x8f\
+:\xe4=\xbf\x9b\x07*\x93C\x0a\xa0\x03\x8d\xb0Y\xab\
+9\xf8BG\xa5I\xff\xb6[\xb0\xdf\xf6\x01\x8b\xd6\x7f\
+\x93\x0e\xc9\x8eN\xed*^\xe8P\x97\xfen\xc4\x09\xd3\
+5\x16$\xe6o\xb3\xb9\xe3KAed\xb8\xfdy{\
+^{^\xe5r\xceX<\x03(\xcc\xd1\x9e\xda\xab{\
+\x10S\x9a\xd8uFvPd\xadu6\x91\x8a\xff(\
+\xd0\xb8\xce~@\xa5l\x95\xb6\x15MJl\x0c\xb8>\
+\xa39\x07\x81}t\xf0\xc8\xe0\x91\xcc\x94\xe8:\x1e\xd6\
+X\x86\xbb\xfb\x1d]\xa7c0\xbf\xb5\xa8F\x92C\xdb\
+\x05\x22\xff\x16#\x88\xbf\xea:\x84\x8c?\x02\xb1\x8e\x83\
+`\xa3\xee`\xe6\xdf\x0d\xbe?8Ys\xb7\xd1\x00\xe7\
+qQs\x96u1\xd9OQi+\x0d\x98\x05\x95\x14\
+\xc4\xddZ\xaa\xe8\xcc\xe3\x86K\xa2\x846~!KZ\
+\xfe\xdc\xb9wO\xedi\xed\xb8\xef\xe3d\xdcu\xa0&\
+\xef\xf7\xf8\xa0?\x9bI\x80\x86\x0ai\x01\xd4 O5\
+\x88\xf9\xa72\xfd\xd9\xb1:\x80\xbd\xaec^:\x9a/\
+?\x8f\xcc\xa3\x0fJ\x945\x92\xcc\xf7\x8e\xce\xbb)R\
+\xd1\x997%,6f\x90w\xa6\x0b\xd8\x8c)\xdc\xe1\
+\xd1\xc6\x19\xf8\x08/\x0d(\xbc\xbc\x0f\xa8\xb1$\x5c\x00\
+\x8b\xec\x17\x98\xb1\xb0\x0f@\xc9:FQ\xb4\xec\xd1\x99\
+&a\xa03\x89\x99\x1dT8(\x83H\x02\x98\xa2\xe1\
+\x8dv\xf2\x9c\xa2\xea,\xb3A3\xa5\x80\x8e\x82\xb5\xd3\
+A\x81\xfbF\xda_\xbe\x91;\x0a\x9d[\xfb\xa9\x8aj\
+\xee2\x1b<\x80\x8c\x994\xd9}\xfcWEk\x1b\xfb\
+(\xeb\xf9,\x85\x13\xd6s\xabu\x0d\x13\xcan\xf4\xa9\
+\x5c\xef\x18&\x1cd\x1b*JA\x1f\x92\x22\xf6\xff\xe9\
+\x83C5o>\xe6U\x9b\xc2\xcb}\x89\x03\xce\x85O\
+$\x5cHS\xdca\xc9<\xa3\xf7WT`\x17\x12x\
+\x0d\x04\xa0KG\xcb\x8c\x83\x00<%=\xf8h6\xbd\
+\xca\x1d\xa4\xe6\xb3\x8a\xc2\xe8\x80\xf268@QMc\
+\xa0\xd3i\x06\xd0\xf0]\x8a\xf4\xfa\xb9\x14\x9f-s\x8c\
+\xc3\x8cR\x09\xe7]e\xde|hC\xbd\xdeR\x01\xbd\
+\x89\x0a\xe8\xb8\xdf\x98\xeeX\x13L\xc7\x98}\x10\x93\xbe\
+X\xd7\xea\x87,\xed\xc4\xff\xf2\xf4>\x0eMqX\xd5\
+\xe1\xc5]\xde\xc0Ph\xde\xddQKw\xb7s\xbf_\
+EQ\xcc\xf6\x9a\xed\x15\xa53>\x5cI\x91\x13\xb5\xa3\
+\xb2\xf7\x04\x8c\x9f\xaff\x15\xab\x00\xb6\x0e %Q\xa0\
+\xc3hFRt\xc0\x19\xa7\xe6\x84)\xcc\x07-\x09\xc2\
+\xd44\x9fF\xab\x94\xfd\x5c\xfd\xb0\xdc\x11C\x22dM\
+s\xb3\xb7H\xc1\x15c\x81\xf3\xe0Q\xed\xf8\xa5#\xcd\
+\x18\xbd8\x1f@\xac1S5\x90\x83wK$\x8e\xfe\
+\xfc\xd1\xc9\x87\x99@\xfe\x82\x99\xa4\xa5a\xcd\x1f\x14\xe9\
+\xb8\xdbH\x91\xa5^\x9dD\x00\x8a\xf0\xc5\x06\x22W\xee\
+\xce\xdbf\xc7NZ\x92Vef\xda\x0c\xce\xe8:c\
+\xc3-\x14\xe9\xef\xafP\xa4\xd7\xd7(\xd2\xeb\x0d\x8ar\
+\xde\x05\x05\xf7eE6OK\x91\xafo7\xc6\x91\xf1\
+\x9d0\x8a\xe8\xf8\xdce\xca)\x09,\xde(\xe4\x03\x8b\
+w\xc0\xe4\xe4\x84\x8e)\x03\xe3\xaf\xddAQ\xcc\x183\
+3\xe1\xc7\x95)\x9f\xa4^KTf__W\xa4\xd7\
+\x05\x14\x05\xf8\x8e\xfd\x13\xa6\xcdE\x8aJ\xa2f\xa0s\
+\xb2lW\x00\x85\xb9\x15\xde\x09\x92\x08\xcc[\xf67\x0a\
+\x93\xf6\xd7\x8a\xca\x94\x95D\xfb\xbf\xec\xca\x8e\xb6\xf9\xe8\
+\x1cQ\xc8\xb1_Dg\x9f\xf3\x0f s\xc1\x14z\xff\
+\xa7wct\xc3\xed\xdd\x05E\x98\x14>\xa3\xa8$\x85\
+0\xfdv\xc9\xa2\xa8\xae\xb0X\xab\xd2\x86{\x1f\x9b,\
+\xaf\xc8\x85q\x8aj^;c\xfbF\x06B%\x15X\
+\xbf\xf2\x0ab\x1dR0\xd1XC\xaa\xc9\x94\x1c\x8f\xff\
+\xccV\xa6'T\x0c\xa8O\xf6\xe6\xae{\xdfGR\xd9\
+\xee\xa4H\xe9\xd7\xef\x15)]_3Ez\xff\xe3-\
+\x14\xe9\xdf\xcdHq_>\x87\xcf\xd69\xdc\xde\xa1(\
+\xa6\x85\x9c\x9b1u\xe5\x1d]~\xd2\x1c\xa40S\xea\
+\xc5\xfc\x5c\xe6<i\xb8~\xdaO\xd7\xf7\xd8\xd1c\x8a\
+\x87L\x8c\xa1\xa3\x00\x83\xc17\xd3@1\x1dX\x18\x7f\
+\x98\x15#\x11\xd1\xdd\x9d\xa5*\x84\x7fm\xe0\x18\xaa\xb9\
+\xc7\x0e\xc7s\x0a@\x0f\x13\x10\xc9/\x9dk\xf2s\x0a\
+3\x9b\xd7\xc5\xfbD\xa2\x0b#\xc9\x80\xe8\xe0wf\xc6\
+\xfd\xce\x9d^\xa6dP\xf0?o/\x8f\xc7:\xa0*\
+\xf2\x12:\xc1H68\x87\x8f\xcd!\x0f\x85\x14U\x03\
+\xc8\x8d\xf4\xc9a^\xef\x98\x0a~UQ:\xf21]\
+\x0afZ\xdfs\x0bI\x1e^\x1d\xe4G\x9co\x06\xc2\
+\xc3\x83\xc2L\x06\x1aF\x00g\xe4\xe3xI\x85W\x10\
+\x1de\x1a\x16\x5cW\x80w76b_\xe6sS\xe8\
+\xf7\xcd\xbf\xa1\xb0\xbb\xa1\xc7:\x0f\xef\x05:\xfe\xbd\xf1\
+\xee1\xfd\x81F\x13\xfb\x06\x9d~$\x01\x98@r^\
+s\x7fh\xf4\xc2\x9c\xe2\x1c\xc4\xa4\xd1\x0d\x88\xd0\xda{\
+\xdf\xe3y\x0f\x06\x0e\x926\x98\xd4}\xef\x00n,\xeb\
+\x92z\xd4\xf5+y7\x92\xad\xc8\xe7\x9d\x0fG\xc3\x19\
+)\x02y7R\x10\xa4\xb7xP\xd9\x1b%\x1a\xa00\
+#\x00\x04\xc9\xbf\xa8\x93}\x1dF1\x1f\x12\xa4Es\
+\xac\xaf*fH1'\x98\x1b\xc7\x05\x07\x00\x80\xf2\xcb\
+\x06\x07r\xc2\x07f\xe1\xa0\xa5\x80\x82\xe3\xd7H(A\
+X\x8d\xc4\xc5\x02\xb6iK\xde.g\xab:`P\xcd\
+\x87\xd9\x17\xbft$\x01\x0c@\x9eX@\xdc\x18\x10E\
+\x12O\xc6\x021\xe6\x0b\x0a\xd1\xd8\x1b\x16\x14\xa5\x15\x14\
+iC\xbdXa*\xdaC.\x10\xde\x5cQ\xb1=\xce\
+,S{\xf6\xf0\xc6{\x7fEi\xa6\x03\xa5\xb9\xa5?\
+2\xb5\xf5\xdb.\xd8>`\xaa\xd8\xae\x85B\x9a\xcb\x91\
+;\x0aB\x0e\xf5\x92\xb1Bq_\x1e\xf2\xc2V\xdfr\
+\xf5\x0a\xc9\x16U\xf8\xa79\x91\xe8\x10\xd3\x8b\xbaN)\
+\x14\xe2\xc1\xe9\x8aLq\xfdQ\xf3\xa3\xcad\xcf\x9a\x93\
+\xc1e\xa6\x5cR\x10\x19\xd1J\x87~\xd7Y\xf5}\x0c\
+\xad\x12\x0f<\x85\x14\xe3@~\xedB\x06M4@\x11\
+\xda\xb89| 6^\xb8g(J\x01\xcd\xfb\x9c\xfa\
+\x86\xdd\xd7\xdd\x19\x0dM\xaa\x1154q\x93\x83\x15\xf9\
+\x01\xc9\xf79\x95\xa7\xb9\x90\xc4\xf4-\xdd\xab\xae\xc3\xcb\
+\xd8C\xc6\xf0h\xec\xcf~J\xc8m\x06F\xe2@'\
+\xe3rSX\x99\xbfm\xf7\xee\xa93\xbb\x82O\x16:\
+\xd9D\x87\x8d\xd7n\xf9lhY\x03\xb7}\x99\x13;\
+8\xca\x94A\x9b&\x05b\x8c\xcb\xa7\xb5\xdfyl\xd4\
+jvK\xdf\xbc\x9a[JG\x84y\xca\x98M\xd9C\
+\x81\xc2(\xd6\x09\x00\x0f\xf3Sm\xe2\x05\xc2\x1eZ#\
+w\xd2\xd1\xb2\x86\xe9\x09\x1e\x0bv\xcd\x0d-\x13\xdac\
+\xc64Q\xc0\x03\xf80\xee\xca\x9d\xfb(\x14\xa1z\xa1\
+\xa5g\xa3\x03\x89\x05H`#d#\xe7\x00d\x1f\x22\
+\xb1\xe2\xcf\xfd\xbe\x90\xac\x80\xdc\xd2A\x8c\xfd\x81\xfd\x09\
+\xa4\x98\xcf\x03\x10\xc88\x22\xbb\x93G\x87\x07\x8a\xadM\
+\xbd\x90\x14\xc48,Kb\xe2?\xdcq\xef\xe9\xc6K\
+\x85\xc6\x0d\xca(ce\x9c\x08\x06\xd5\x8f\xf1z\x00\x09\
+\xac\xcf\xddm\x1aC\xa7\x01\x0f\x0aSl\x07\x0bX\xf2\
+pnW\x10\xc4Aw\x86\xe7(\x9f\xd9u\xc4\xdas\
+\xba\xe9\x13A%3P\x92\xd2\x9d\xf7N\xde[\x15\xe2\
+_\xea\x0e\xc0\xc1\xd7\xcc\xa0\xf8\x84\xe7\xd3Z+\x1cR\
+\x11\x12\x8b\xf7\xa5\xb4\xfe}\xd5X:\x80C\x9bI\x86\
+\x16\xdc\xfb\x1a\x9d\xc4\xcc\x078\xaf\xfa9\xeac}\xca\
+\x05\xe4\xde\xd9\xcb Ee\x0e\x05r\xee\xfd\x1c3B\
+y\x98\xcb\xc5|\xf4\xb0\x22\xbd\x9e\xa2\xc8\x85\x5c\x0a\xe7\
+#\x832\xfe\x08/\x9bl\xe6\xf7S\xaf\xdb\xc5K\x87\
+9:\x13\x14^x\x84@UU\x87\xf5\x9f\x85\x02\xcd\
+~\xdf,\xac\xa8\x9e?'\xf8a\xea\xf73Ee\xf6\
+\x85&\xdc\x9d\xc7\xa0\x98\xaf\xa3(\x00\xcf\xe0\x0ekS\
+1\xa9\xe2|3\x95sx\x88\x22#\xfe\x1d\x00\xbd\x87\
+\x81E\xef\xaf\xb9\xbcY\xab\x02L\xbco\xb2\xbe\x9a=\
+\x15\x95\xab?\xd2%kZ\xf3\xe7N\xcf\xf9\xe0\x1f)\
+\xfeY\x99\xfd\xe9]<Q=\x97\x82\x9fv\xb1\xe7\xc3\
+\x93\xd6\xf6\xaf`\x86\xc4\x03\x05x\x08\xef\x80?*\xaa\
+\xb9\xe9Py\xe9\x88\x180i~\xa2\xc8\xc0e\x07\xa0\
+\xaego\x00'V\xcd7\x15\x95I\xa0\xd7!\x00\xcf\
+p\x05Ez]n\xb8\xfcp\xf92\x963\xf2\x1b\x80\
+l\x03\xeb\xd1I\xf3\x985<\x0e\x9a%\x15E\xe3\x0a\
+\xf00\x9a\x7f4\xdfh\xber\xae\xe0\xfa.\xab5i\
+\xa7\xc7G\x8e\x8f\x1a\xeb\xdf\xaf\xa8H\xcbceEU\
+\x18z\x9fMOG\x9e\xba\x11\x9e\x07\x00\x97t\xbc\x0c\
+,#)\xc4\xe3\xa5\xd9CQ\xa4\x5c\x8c\x8f\x0c\xe0\xce\
+\xf7\xbd=YQ1\xb3>\xad\xa8:\xd0\xee85\x1b\
+)\xd2\xfb\xbeVQ$q\xc1L[\xb1\xbb.\x93S\
+'\xa7\x89\x09\x17\x1d\xa8\x07'\xff\x94$\xb1\xddL\x91\
+^\x17R\xa4\xd7+\x15\x15\xe0\xe7\xd78G-Ec\
+\xaaC\x06\xe8\xee.\x85\x09\x92\x99\xbc\x1b\xdf\x91\xb5\xea\
+/K\xab\x0e\x856\x9b\x07\xfe\xbaL\xe7\x08O\x031\
+\x9d\x1e\xf3yv\xae\x19\xa1\xd7\x1a\xc8>\xcf\xe3\xcfN\
+\xaf\xcc\x0f\xed}\x82\xd7O\xfb\xb8\x22\xbd\xce\xadH\xaf\
+_V\x14 2\x5c\xde\x19\xe3\x05S\x95B\x00\xd3Z\
+\xce\x07\xa4\x890\xeb\x9c\xdfI\xb8\x22\xe9J\xca\xb6R\
+F\x9e\xf3\x85\x0e\xa8\xf39\xd3\xbeK\x91\xbe\xef6E\
+\xba/\xeb\xa4X\xb7L\x19\x19_\xa7H\xdf\xf7\x8d\xf6\
+\x9b\xed72\xe0\xdau\xce\x1f5`\x8e\x94egE\
+\x19\xaf\x9b\xb2\xc03\x94\x07\xe6\xbc\xef\xb2\x0c\x14-\x91\
+=\x81\xd0\x82\xcbyE\xeb\xe9\x0d\x8a\x8a\x22o\xc0;\
+\x0a@\xa4\x18\xd3=\xad\xc8\x92\xd0\x18G\x86\x87\x88\x01\
+\xe6\xb8~\x92\xb4]\x9f\x19\xb0\xcb\xb4\xcbTL[\x18\
+\x92\x06X\xc2C\x07)\x22&g\x00*HT1\x81\
+\xc5$\x19\xd34\x9e\x1f\xcc\xda\x98\xf2\xc0T\x08\xbcK\
+\x0c\xa8\xc5\xfezx\x8e\x92?x\xbfE\xea\xc1\x98Y\
+$\x13\xb1\x7f\x18\x90\x0a3K7Ba\xc4\xc5\x187\
+\xa6E\xb8\x80\x03@\x22\xaf\x88F\x1fR\x08\xc6v\xd2\
+\xc8\xc3\x84\xd7R\xe4\x18\xf7\xcat%\xc6F[J\x14\
+\xa6\xd1\xae\x8b\xda\x9f(*\x0f\x94\x7f(\xcaT\x95(\
+L\xb9~P\xce)\x88\x91\x84\x92\xd7!\x0d\x18\x84\xeb\
+F\xf7\x1f\xd2o\x1a\x0f\x009\x98\x04\xba\xe3\x1f\x85<\
+\x85;\xcf\x0f\xc0\x01\xf7\x13 \x84:\x16\xa0\xe0zE\
+Uo q\xa6Q\x84&\xde\xde\x0f\xd1(\x85\xc1\xca\
++\xd3\x16\x90\x22\x92w\x19\xd8\x89}\x18i\x0a\x00\x03\
+u)u1u-\x12\x053S\x03\xc8vc1\xc6\
+\xd4B\xe1'\xefD\xf2\x82\xa4\x82\xeb\xdf\xf7\xe0C\xea\
+L~\x83\xf4\x093H\x9b7\x8f\x22\x81\x12\xa1ho\
+\xdf\x90e}\xf0_Z\xe6|G\x81KBJB\xc3\
+/\xeei[\xf2r\xaa\xb5\xe8\xc2)F\x06\x0cf7\
+23\xa8<\x06\xe8\x08BY\xe0\x81\xa4\xd0\xc0\xec\x0c\
+\xea\x0e\x9dB6x\x12\x0e:X\x98N\x99\xb9\x00\x02\
+\x19L\x06\x1eh\x95\x8dW\x96\x0d\xa4]CQ-|\
+4p\xa2\x9c]X:\xbe\xcda)\x0eu'\x7f\x9b\
+\x8aj\x84K\xb2\xc6c\xecUuv(0\x7fm\x84\
+\xc6\xd4U6\xf0\xf6\xf6\xf6/\xed_2\x10\xd0!\xfc\
+*\x17W\xad\x1e(4\x80h\xd7\xd1xZ\xdb\x19\x09\
+(\x05\xf5\xcdS\x7f\xcc\x9d\xcd9}\x7fx\xdf\xcb5\
+\xcb7\xcbWT\xda}\xec\xfel\xcdZh,\xa1\xb6\
+m\xdf\x99\xd4Da\x06\x90s\xad\x178?\x1f\xf7v\
+\xc6\xe3\xb1!c\xf6\xe3\x8eb\x5c\x7f\x5c\xd5\xd1J\xa3\
+Q1Cbr\xb8\x91N\x12n\x80\x1c\xa8.\xc36\
+\xb7\x00\x00 \x00IDAT\xa5\x00\x18\x14\xf4\xcc%\
+\xe6s<\xa0\xc8\x89cW8\xb9\x93\x11.\xc4\xf7\xfa\
+\xc1d\xbe\xf1\x12\xde@0Gy\xc1n\xf2\x98\xeb0\
+&\x8e\x8e?\xe3\xaf\xce\xee\xdc\xbf\xa7\x8e\xeaL\xf0\x02\
+\x11t'#}\xba\xdcqJ\xf7\xbd3-\xc4\xcc\x0d\
+\x8d\x94\x0f\x1a\x0a\xef\xa08\xe1\xe6\xea\x82\xa2YF\xfe\
+\xe0%!\x0a\x97y3KbC7eR\x8aBi\
+\x0a\xa3\x80f\x1dB\x99B\xe3\x8b\xe6\x17\xc6\x89\x99\x04\
+Pi\xe3~\xf3s\xe8\xc4C\xd1\x22a\xe5?\x12g\
+6\x5c\xcc\xdb\xd8\x17\xd8\x88\xd0\x8e\xb1?\xf0\xb9\x19\xdf\
+\xe7\xc2+\xb4\xa6\xbe^\xe1eA\x07\x17\x06\x00\xd2%\
+\x17\xb0\xb9\xb3\xf8h\x19\x07\x15\x1aq\x7f~\x0el\x5c\
+\xf9\xc3\x93\xc3\x05\x16\x94\xf3\x90\x18p\x90\x19\xa1\x1f\xcc\
+\xa5\xa8\x10u\xf6%\xc6\x03r@\xc0$\xbas\xea\xaf\
+554(\xb50_\x0e\xed\x9e\x8f\x98Fa\x134\
+\xe6\x1f\x879!\x07\xce\x1b\xac\xc9c\xae\xbd\x0b\xf8\x18\
+\xe3\xf6\xe9\x0ex\x1a\x5c\xec\xfd\xe1\x12w\xd0\xe8\x5c3\
+\x9d\xe0\x80t\xff\xd3\xf3\xd6>\xe0y\xdd.8B\xeb\
+\xcb~z\x97\xa9\xa9\xa7t\xeb\x1e\xcf\x00\x0a\xff\xe6\x02\
+E\xa6\xa2f\xedd\xee\xdb}\xab\x5c'\xcc\xf9\xe2\x00\
+\xe6\xc0\x06\xe9g]\xa4cT\x9a\xc4|\x0elk\xa6\
+\xd3j%\xb1\x01XDS\x19\xae\xe5\xd6Ls\xbd\xf8\
+}\xc3\x03R\xec_1t\xb4\x1e62\xa5\x7f\x9b\x8a\
+\x8a\xebu\xdc\xbcW\xe1\x84k\xf7\x8ajg\xd7\xe5p\
+\x93FB\xa3\x82l\x09\x9b\xf1\xbc\xcf\x85\xd1\x8f+\xad\
+\xb3v\xab}*\xea\x9e\x01\xa6f3Ez\x7f[*\
+\xf2\xfd\x5c,\x03\x8dH[\xf6\xb7'\x04\xeb\xda\x09t\
+<wc\xef\xa3t\x86\x0dDF\x81h\x8ab\xb3u\
+\xb3U\xb3U\xe9\xbcMvQT\x9d'K\xab\x00\x98\
+\x00H\x9a\x87\x15\x95v\x98\xb9\xe2\xac\x1f\xa5\xa1_+\
+\x00\x19\x9e\x05\xd9Dpm\x03rKT\x14[\x9d\xc7\
+\xb3\x97\x0e>\x05es\xa8\xa2H\x1dB\xbab\xe6@\
+Pk\x9d\xe8\x0d\xee\xeb\xb4\xc0\xcc_\x06\xb0\xa0\xb3?\
+Y\xcbs\xd1\xdd\xc0\x98<\xa4\xa8(\xd8nh4C\
+Ez\x9d_QI\xb48\x9f\x9c\xe8\x87)\xaa\x99\x10\
+\x01\x8cjz\xc0e%ac\xbc'R\x05:1\xc3\
+}\x15\x05\xa0n\xcfQ\xe4B.K\x87\xdaK\x15\xe9\
+\xfb\x8e\x1b\x1e;<6k\xaesbF\x9e\x80\xe4/\
+\x95_\xdd\xb8H\xf2/\x98\x80\xebt\xfb&\x8c\x95v\
+.Ez\xbd\xc7\xe3\xe4\x8eQT\x1aW3\x8a\xda\xe5\
+\x14\x85\x92\x9f\x0b\xb9\xb4o4\xc7*\xaa\x8e\xad\xa5:\
+\x91\xa0\xb3_3\x96\x0f\xf7p_\xa7\xe6\x87\x8aj>\
+\xba\x01\xd6\xf6;\x8a\xea|d\xfa\x94;\x8ea\x96\xb6\
+\x86]\xdb?i\x89\xd5\xaeN\x88\xfd\x5c@\xb1\xce?\
+\x7f\x95\xca\xbd[\xe5\xd0\xd1\xd5si/\x9e|\x9a\xec\
+\xe5\xdf\xffm3\xd1\xce\xae:\xf3r\x5c\xf9Y\xd5\xe0\
+\xf0}n\xb7Q\x14\xc0\x82\xf1o\x91or\x0eS@\
+\xe2\xba\xeds\x02\x86]L3)\xdeF\x1d\xe3\xca\x1d\
+i\x80\xcc8\x0f\x9cw\xc1\x0c\xa5\x03N\xe3\x861y\
+\xc1\xb4\x90\x06|\xd6\x8a\xd9\xe0\x86^\xfbX\xfbx\xfb\
+X\xf1\x9c\xd1\xd3\xa7|8\x03\x87w\xe4\xfd\xe2\xa4\xbc\
+_`\x96l\xf3\xcf(\x18\xc8\xf7h\xac\xa0Ew\x83\
++<\x8c\xc8Oa\x9a\xe1\xa5 \xb8\xfe\xcejJ\x04\
+RG\xa4\x956%e\x5cezZ\x9f\xd2\xf3:>\
+:E:?\xdb\xed\x14E\x22\x12\x1a{\xa6\xd0`\xe3\
+H~\x08\x83\x81s\x12`\x85\x86\x1f\x8d*\xb4\xe2L\
+\x19\x00\x98\xfe@\xc7\x98\x8c\xfd\x93\x82\x16\xb3?:\xc3\
+\xf6\xe8\x09f\x08\xe7\x01\xd3C\xec\x99\x15\x9e\x09h\xbf\
+\xcd\xcc\x0cf\x13\xe6\xce0\xac\x90\xdc\xe0\x95c/\x80\
+\xf6#\x8aJ\x9a\x01`\x82$\x8eN\xb0\x0b\xe9\xd8\x97\
+\xec\xad\xd5|HQ$\x130xh\xd4E\xc1\x8a\x09\
+\xb0\x81\x03\xa4\xa5\xed[\x15\xd5\xe7rC\xa0\x0f\x84\xc7\
+\xfd\xe1\xfa\xd0\xc0\xe9\x15\xe6\xaf\x9a\xce\xc6\xf3\x03\x10\x00\
+\x03\x80\xc2\x97\xc62\x00\x82\x1bE0~\xe2\x5c\xa6@\
+\xc6S\x0b\xaf\x10L\xc4\xa9\x0fi$\x01`\xf0{h\
+\x04!!\xe7\xef\x91\xd4\xd2X\xe2\xfbl\x06;\xb5Y\
+\x8e\x22I\xa1!NC\x8b\xeb\x00\x13\x81\xc2\x9d\xe7\xdc\
+\xccs\x9e\x8f0/\x84Y\x09`\x00\x80E^O^\
+\x0a \x80w\x13\xcc\x17{\x98\x00\xdc\x07\xe0a\x0f&\
+\xf2\x9a&\x17\xbc\xab\xfb\x82=l\xc4\xed\xbf\xabq5\
+\xba\xe1\x0bV\x0b\x18\x17u_\xe0\x98s\xca\x8d\xf1X\
+\x06\x12\xb2@\xbc\xd8\xa0d\xa22{\x99k\x9d\x17\xf6\
+V\x15%T\xbf\xe5\x84BUC\x0b\x13\xd4\x1b#\x81\
+\xed\x06\x8aB}\xe0\x81k\x1bE\xdaH\xeeS\xa4\xaf\
+\x97U\xf8\xdf/\x95\x0f\xc6\x14\x95\x06~\xce\x14\xe9\xfd\
+\xcc\xbcE\x91^?\xa5H\x7f\xfe\xc5\x14\x07\x16*N\
+6\x1b\x92\x06\xf2\x07\x8at\xe1>\x90b\x8b2\xb7\x19\
+\xe4\x9fB\xae9Y\x91\xbe\xff\x22\x85\xb5vic\x1c\
+\x9e\xacH\xeb\xec\xc1\xd1C#i._T\xa4\xaf\xef\
+\x1e\xfd}\x94\x16\xe2\xe8\xc5\xd1K\xa3t\xc0\x8e\xe6\x19\
+\xcd\xab\x0e\xc2\xe8\xdd\x1dEq\xda\xd1\xd3\xbe5-%\
+\xd4\xa3_\x8c\xce\x1f\x9d\x9f\xbe\xbe\x7f\xda\x03\xd3\xd2\xc6\
+>\xfa\xf6\xe8;\xa3t\xb0\x8e6L\xdf\x99\x12\x9c\xd1\
+\xe6\x8a\xf4\xba\x96\xa2zmF\xc3QJx\x86\xefV\
+\x14\x8d#\x89^J\xdf\xb3\xe6t\xf0\xben\xce-\x14\
+\xfb\xc1\xddN\xfcOR\x14\xaa\xf7\xe0\xd4\xc1i\x83\xd3\
+\xaay\xcfN\xa0\xd0r\xe1\xea\xdc<\xa1(Z\xd4\xa0\
+`\xfeTQi\xaffQ\xe4\xc23\x1f\xe0\xcdc\x8a\
+L\xb5\xce\x1bYP\xf4\xdcY\x08M\x16\x0c\x92\xdf\x1b\
+\xc1\xe3\x81\x00 \x01\xb1\xfb\xb2\x916:\x9d\x14\xaa<\
+\x98\x8b\x98\x81\x02u\xff\xa3\xee\xb4\xd1Q\xb5\x0b|\x14\
+~Ow\x85\xc6\xd4\xa9\xa6\x8ec\x02\xe4\xc24:\xc6\
+F\xc6c\xdc\x07\x9a\x1d\xb4\xf8\x8cY\xe1 E\x12A\
+g\x95\x02\x13\xd7z\x98\x11 \xf7vO\xc7\xbc\x04\xb3\
+\xb1fcE\xd1\x06\x82D2\xc78\xe6\xdc\x82@\xc2\
+X05=\x12\x01\x10iL\x85x\xbfl\x90h\xe8\
+\xa1\xd8\xd3\xc9\xc6\x9d\x14f\x83\x13\xf0(h\x90\x06\xb1\
+ABM\x82\xaa\xe4\x0dn\xf0\xbc\xa2Lc\x88N\x04\
+\x12\x0a~\x9e\x91\xcd\xe6\x1eE\xe5\xe2n\xf3\xa1f\xac\
+(.\xf8\xc3o)\x0a\x851L\xc6\xbe\xa6(c\xdd\
+\x82\xca\xe8u\x83&9\xcc\xc7\xb8\x1fP\xfa\x9d\x08\xc5\
+\xc1 \xc9\xc6\x9f+S!\x03+\xbc/\x9e\x97\xa0\xd0\
+\xa3\x8d\xb4\x97@\xb8\xf1\xfa\xf9\xe2\xb9 a\x88\xe7\x88\
+\xef\xbf\xc2\x894\xf7u\x1f\x03f/v.\xca\xcd\x99\
+\x8aJ\x0b\xfc\xc2\xf0y\xed?\xc39\x14\xe9\xf5\xca\xe1\
+U\xc3\x94\xb8\x0e\xa7\x8b\xa4\x9e\xff>\xefO\xc39\x15\
+e\x1e\xfcpqE\xde\x0fO\xc9\xfb\xe1T\xf60\xea\
+4\xc7\x7f,\xdf\x97\xb7\xe3\xb6$\xe6\xa1\xe1\x9e\xd1M\
+%\xc8\xe3\xf5\xd2\xb9\xd0<\xa9H\xaf\x97(\xaa1\x97\
+</P8)@a\x9c8!l\x16Q\xa4\xd7\x91\
+\x22\xbd\x1e\xafH\xaf\xb7\xa7\xb8\xa3|\xde\xdc7\xfa\xa0\
+\x91\xf2\x05\xcaz\x8eBN\x12\x8c\xb6\xecG\x9a\xbb>\
+\xf9W1\xa7\x9c|OQI\x1ct\x5c?Vi\xfc\
+WM\xa1\xe7\xf0y\x85\xc7\x02\x9eR\x80%(\xf4\xe1\
+6\xfc\x88\x0fn{I\x0co\x18\xde8\xbc\xb1h\xbb\
+\x87\xffP\x94\x82\x12\xb3\xc7,$\xb8\xbc\x14\x10!\x1d\
+1\xe5?\xa8\x7f\xb8s?\xa7(\xcc!4\xc1QX\
+\xd9\x8cm\xf2\x09E\x91\xe65\xefI\x91\x9e\xc7\xe6F\
+\x85\x9f\x93\xa5\x8b\x89\x11\xa6\x94\x98\xeb\xa1%\x1f\xed\xa5\
+H_\x7f?\xc5IU\x82\x0b\x85\xdc\xfbPs\x8e\x22\
+}\xdf\x9b\x15\xf99\xcd\xeb\xa5\xd9\xba\x93\x184ol\
+\x16o\xd2:k\xbe\xaf\xa8\xe6\xa0[\x82\x10\xe7\x0b\x1d\
+\xfe\xf5\x9b\x0d\x9a\x0d*3\xbe\x1d\x14\xe9\xf5rEz\
+\x9dCQ\x9dc\xec/\xee87\xe7*\xd2\xeb\x12\x8a\
+\xe2\x010m>\xc5\xd4\xd4,\xcb\xcd\xb2\xec,)\x9f\
+\x98v\xeb\xb4[\xa6\xa5|at\x94\x22\xbd\x9e3:\
+{\x94\x0a\xcbf\xf6n\x0c \xe3d\x07\x07)\xd2\xcf\
+9S\x91\xbeo\x1bE\xfa\xfa\x9b\x8a\xf4\xf5\xcc\xd1\xcb\
+\xa3\x94O\x8d\xde\xa8H?\xf7c\x8a\xf4\xf5\x8d\xa3\x1b\
+F7\xa4\xaf\x7f1\xed\xe7\xd3\xd2s?\xedW\x8a\xfc\
+\xfd9?\x98\xf6iEz\xddx\xdaF\xd3R~0\
+\xfc\xb3\xbd\x06\xf0\xa08\xa4\x99\xdeL\xcfS%.\xd7\
+T\x89\xec\xadpa\xfa\xf3\xfdS\x1cPiR5U\
+\xe2o\xee@.S\x5c\xe9#\xc1%1\xa7\xd0\xc7\xd3\
+\x04\xc9\x91\xa7+\x84\xc6\x9as\xf2\x94NJ\xc7\xf8\xc8\
+\xe1Y\x8aj\xfd\xc0\xacY\xd1\xe7\xbf\x1b\x1b\xe4\x19\x9c\
+\xe7\xe1\x01\xf0\x0b\xcf\x9d?R\xe1\xbcr\xcdJ\xd2\xa5\
+\xf3\xf0\xd3\x85q#'\x87\xec\xe5\xf0\x0dEz\xddP\
+a\x93\xc5wTce\xfd\xfcF\xc7\x0d\x06\xa4\x18+\
+\x8f\x97\xfc&\x18\x8d0uH\xc4\x01z\x01\x8c`\xe8\
+\xd8{\x01\xe0\x9d\x84>\x1874\xb6\xf0\xa2qG7\
+\x98?\x8c\xdf\xfd\x8c\x81}\xcc\xe2\xc6\x8a\xf4\xfa-\x9b\
+\xb9\xa9\xedqcU \xba\xb37\x9c+\xed\xd7\xba\xee\
+\x0b\x0d\x17\x1c\xa6\xe7e\xb4\x85\x22{S<:J\xfb\
+\xcd\xe83\x8a\xf4\xba\x9d\x22\xaf\xb7\x14U~(\xaf\x93\
+\xb5\xab\xbc\x0c\x8a?\xf9\x14\xfb\xaf\xa5\xb9\xd1IU9\
+v\xae%x\xdf\xed\xc6VfO\x1e\xcc[\xbd\xaeX\
+\x7f\xf99\x14Sv\xf3N[?\xb5~\xd7`\x00\xd8\
+\x093^\x98 \x14\xf8\xdb\x1a\x80Z\xcf\x85\xfa\xae\x06\
+d\x9c7\xa53\xa2\x1b\xbfF!O\xde\xc7\x1413\
+\xb0\x02\xb8:\xa39\xbd9\xbd\x9a\x9a\xe4B\x10\x93\xc6\
+\x90\x08\x02\xb8\xe3\xf2o\x00\x01\xe0\x1f\x09E\x98.\xd3\
+\x10\xa3a\xeaF\x01\x0c\x22\xc6\xc5b\xae\x1a\xf9'\x0c\
+1{\x8e\xc0P\xe2\x9c`?\xa6\xf1\xd7|Z\x91~\
+\xdeo\x15e\x7fi\x96R\xa4\xaf\x8fQ\x94s\x97\xf1\
+\xaf\xc1d\x83\xe1\xc6\xd4\x1c\xa6\x1f\xd9kK0\xb2\x80\
+d\x80\xf70\xa7\x83\xd1\xeb\xe7p\xb2\x80\xa22\x17D\
+*@\x87\x9b\xf1\xca\x00^t\xc6)\xc4)\xd8\x19\x8f\
+\x8a\x87\x15\xd2\x83\xbaq{Ei\x88h\xc6J\x9e\xb2\
+\xc2XAKx\xa3!\xe3\xc6a0Th\x1c\xd1\x10\
+#\xff&\xdf\xa3\xb1\x050\x08\xc3\x99|\x97:\x83B\
+\x9f\x86\x16\x8d2\xcc\xba)\xf8i \xc1\x90\xe6s \
+5\xe0z\x00\xa4\xd0\xe0C\x12\xc6\xf8k\xd6'?\x9f\
+\x06\x1b\x8d\x14\x80\x1e\xf6\x1f\x80Z\x80m\x80\x22\xaf\xb3\
+\xd1\xf8\xeb)\x8e4\x12\xf5\x96jA\x5c\xddQ\x8f\x82\
+\x12\xe8\x8eE\xb3`\x8a\x05\xac\xfd\xda\xb7\xa2\xf2K\xf3\
+\xb5Gq{\x0d\xb7T\x10/\xcc\xfa\xb4\x1c~\xef\x82\
+a\xc5\x8a\x22mJ\x0fcU\xe2\xc2\xd9\xb5;'*\
+\xbf\xa9\xcce\xd0J`\xc6\xa0\xfe\xf0\x93\xd64N/\
+\x94\x8c(``(\x90\xb0A\xc9\xed\xb0D\xb7?\xab\
+\x02\x9e\xf1M\x1a\x17tv\xe5\x9ejm\xe9`\x0e\x9b\
+\x97\xbc\xabsI\xc65u\xf0+w\xda\x16s\xa7f\
+\x86\xc7CA\xf1a\xae\xb7\x91\xa2\xe1\xaa\x9d\xf9S,\
+,\x0a@\x90(>\x07\x05&\x854\xe64hR\xb8\
+\xd1##Vl8/\x98z\xe6\x8eQ\x14~Py\
+<ov\xb0jg\x0a2\xf5\x97Wj\xa0\xa3\xf3\xce\
+Bc\x9e\xa7]\xa7\xd3c\xd1Q\xf58\x10\xa0\x22\xa3\
+\x89Ec\xcd\x83\x816\x08\x17Vw`\xc3\xf5\x127\
+v:\xa7\xbf\xef6\x90\xc9\xee\xa6@Q\xe8\xb3\xae@\
+ \xe9\xe8\xc3\x04\x802\xca\x83\xf9\x82\x11<\x1e\x1c6\
+\x80\xbf\xfb:\xb0\xde\xe8x[\xeb\x16fp\x14\xc0t\
+\x927\xb3V\xafG!K\x0fi\xd7!\xc7\x95\x97\xa9\
+\x10\x98\xf6\xd0\xf9\xe7~\xc3\x94\xa0\xc3B\x02\xc286\
+:\xf7l |.(pt\xb6L}\x0es&\xa8\
+\xe5\xcc\x1d?\xd7c|\xa0L\x91\xd0\x99\xb1\x12\x92\x02\
+\x0a,\xa8sP\xa2@p\xb9\x7f|\x0e\x90\x5c\x90\xda\
+\xdex\x14: \xf1\x9c\xf3\xef\xf8\xbc<z\xa6\xc4\xd1\
+I\x8bN\x03\x89\x07\x07\xbf\xef/\x1dO\xc6\xe0\x05E\
+\x9e16\x007v1\xcf\xe3G\xdfPi\x9d\x0d\xd0\
+P\x98F\x82\xe0\x0dy\xf2>E5\xde\x8d\xa9\x15.\
+\x8cB\xd2\xc3\xe7cn/[\x8a\xa8\xd1\xff\xc8T\xe9\
+\x9b2E|\xb5\xc1\xaa\x19\xa0qa\xca\xc1\xcdA\x1a\
+\x00)\x9e\x0b\xaf30pw\xa7\x01\x0e\xaa9\xee\xe3\
+vE\x16\xff(3\x90v\x1b\xec>\xd8\xbdrg\xbf\
+?\xfd\xfd\xfdE:\x13\xa6\x95'\x0eN\xc8\x9e\x1a\xa6\
+v3\xdf\xb7\xd9\xad\xf9|\xb3[~\x0e\x07\x19\x10\xdb\
+9\xa5\x01;\xe7\x84\xf7\xea\xcc\xf4A\xebw\x99\x19\x05\
+\xbf\x1d\x5c7@Sy\x95\x99H\x97\x15\x8a\xbf\xf83\
+\x99A\xc3\x186\x12\x06\x80\x11\x5c\xfaEM\xdc\xb4B\
+\xc4Mq\xc5<jtX\x0a\x01\x11W\xa7\xb8\xa6b\
+\xf6\x00(\xf9\x00&\xf1j\xde\xa9H\xdf\x7fU\x07d\
+4\xafO\xb1\x90\xd7\xd5=^/\x07;\xf1\xde\xaft\
+\x88Cb\xa4U\xb4\x92\x01\x88?W\x8c\x05:\xed\x98\
+\xa2\xa1\xf9\xb3\x99Rx]\x080x\xc4\x0d\x8bI\x01\
+~\xb2\xd6\xfa\xf3\xd5\x01o)@{\xb0\x22\xbd\xdfK\
+\x86\x17\x0f/\xae\xdc\xf9\xdd\x09\xa2\x13\x8e\xe4$\xbc&\
+>\xe5\x82\x02f\x03\x85\x18\xaf\xef\xea:\xa0\x14\xc0\xc1\
+LSB\xbew\xc5\xd8\xa1\x93\xe3\x04\x0b\xb3\xde\xf6!\
+Ez_\x7fM\x91\xf6\xf5\xe1\xcd)\xfeXI\x18\x18\
+\xfb\xf7\xd7\x14w\xba\x90\xbc\xab\xea\xf0\x7fQQ\x8d\xa5\
+\x03\x084\xd0E\xe7?<>\xc66W\xbdf\xb0\xcf\
+`\x9fR\xc0G\xa3\xe1\x22wB\x1f\xb6\xeb<\xc03\
+\x80,\x9d_{\x95\xa4\xa7!\xff\xdc\xf1\xb5\xe3k\xc6\
+\xd7\x14\x06cs\x9f\xc7a\xbe\xab\x03,\x908)\xfd\
+\xcf\x05\x00@\xa3\x19_\xc3\x13\x9d\xa0\x1f\xd6\x15\xd4\xcd\
+\xa5\x8a\xc20\x9c\xdc\xd0iQC\x02\xc3X>w\x8e\
+\x9a\x9d\x14\xc5+ $\x09\x00\x99.lb\xce\xb9M\
+P\x83\x99\xe9}2\x12t\x9b\x92\x0dN\xeb\xd6+\xe3\
+\xad\xdaw*\xd2\xef\xfb\x8d\x22\xfd\xbe'\x15e\x8aA\
+\x9e\xa90\xa7\x13\xe3C\xcc\xec\xbc._\xa7n\xdf\xa0\
+#\xaf\xf4\xfbV'\xcc{eI[\x8aj\x5c'\xfb\
+\xe8M\x8a\xf4z\xab\xbd\x80\xdcQ\x82a\x01%\x1f*\
+||\x9f\x98A\xdf\xac\x12\xf7\xf3'\xd9\xc5?\x0a\xfb\
+\x89=op\x89\x7f\x9b\xa2\xd2n\xe3\xbdc`K\xd9\
+K\xd6\xce\x03Tx\xbc4\x1a\xf20\x85\xd4\xfdy\xbe\
+\x98\xddf\xcf\x83#+w~3cd\xbd\x9c\xcd\x97\
+\x97Qx\xdf\xdb\xad\xda\xcf\xdciD\x9a89PQ\
+\xe5;\x00\xd3\xb8\xa6\xdb\xc3\x00\x13U\xbcN\xa2\xc0\xc1\
+\xd3\x81\xfc\x18\x97\xfc5;&K\x1e\x83\xf8\x85\xac\x19\
+\xef<\x05h\xcc\x19@\x0cF\x83\x19\x0a\xcd\xd7\x14\xe5\
+\xfd\xe6\xa9OgW\x0c3\xa4\x1d\xd6\xc0S8\xd1\x00\
+\x00@\x08\xe9\xa6\xf7\xdb\xf0`\x22?p\xa1\x16\x0d>\
+Q\xf8o,\xfbjP\xe89\x8ft>\x1eTM#\
+\xa1\xc1\xc1X\xcf\xab\x06Wfi\xa9=\x99\xf0\xd8\x89\
+\xf9\xf2>o\xe9D\x87\xa4\xd2L\xb7\x94cv\x1dQ\
+\xf2\xb7y}\x1d\xaf3\x83\x99\x02hK3O\xf76\
+\xb0\xeeFG\xe4\x05\x97\xf8\xfdQ\x8f Ab\x0c\xb6\
+\xa4\xbbgVu\x89%\xc9\xe1\xa2O\xc7\x9b\xfc\xc7\xd2\
+\xc7\xc8K\xc8o\x00\x8a\xfe\xa7c\xf6\xc4\x986\xa4\x9c\
+0\x05\xbd?#\xe5d\xdf\x8c\xbc\xcb\xe7w<\xc7\xec\
+?\xe4\xe7x<\xb9S>Y\xd4\x0c\x8c\x0fu\xbf'\
+\x1a\xa8^o\x0011&\x9a|\x9a\xc2\xd1\xfbV\xec\
+c\x1e\x7f\xce\xfa\x8b\xf3\xd2\xd7':\xe2\xdc\x17>\x17\
+Tu(\xec0\xf1`\x8c \x09\xa2\x03\xcf\xf5\x87\xd1\
+\xc5XR\x1a\xd0\x9cc\xd4M0U)\xa0i\xb8\x99\
+\xf9\x1cR;\xf28\x03\x0a1F\x0f\xaf9\xf2^\xa8\
+\xfc\x5cG3F\x03\x18\x82\x810\xb7?'y\xceK\
+\xa9\xeax)7\xce\xc7YZ\xf6X\x16\xe1\x14\x00\xc1\
+T\xbc\xfet\x14\x00G\xbc\xb3b\x9a\x9b\xaf{\x98\x9f\
+s\x7f\xecuBC\x0a\x86o\xd4o\xd4\x83n\xd0\x01\
+(\x8cf\xde\x94\xe2\x0f\xa5c\xc7\x18\x16MWW'\
+\x87\x03zx\x8a\xa2h\xf5\x029\xf7k.\xbc\x0f\xab\
+\xa8\x86\xd2\xa6\x9cSQ\xbd\xd1\x22\xa3\xe5\xf7\xc6\x1b\xd2\
+\x03\x95\xb7_\xb4&\xe5c\xee\x00\xde\x5c\x16H\xb8/\
+r#eR\xf7\xf1\x8a\x12.\xc4\xfd\x98\x0a\x91\xb2\x86\
+4~\xaf\xa5\x0dyyL\xb3\x1b\xe2\xbc\xbe`?\xaa\
+:IF\xd2\xc2T\xca\x85\x95\xd2\x12%&1\xc7\xdc\
+\xd4s\x0eD\x16zP\xd2)\xf4\xe9\x14\xb9@\x8a\x1b\
+\x08\x15\x05\xc0\x05\x13 :\xa9\x14\x98\x14\xf4S\xe6l\
+^\xd5\x1d\x84Y\xf9vG\xb5\x11\xd0\xf1f\x8e3\x1a\
+\x1b\xb8\x9e\x8b\xba\xc0\x01\xe1{\x8fM\xdd\xdei\xaa\xf9\
+\xda\xfe\xbd m\x1c`hj0=\xc3d\xce^\x09\
+\xe9\xbdw?\x17\x0d\x1b\x05+\x9al\x00\x03\xa8\xf8\xeb\
+\x18y\xf7\x98;\x1e\xf8\xa0\xbc0\xd7\x1d\x8d\x15\xf7\x1b\
+\xb7\xd2\xf9\x9cx3\xaf\x17*\x0c?\x87\x0d\x8f\x8d\x08\
+\xe0\x073\x9a\xcbM!\xdf\xd2\x08\xfc\xcb.\xdc1S\
+\x92g\xc3\x8c\xaa\xd0\xe7`\xa6@d\x83\xe1@\xc1\xcc\
+d\x11\x9bY\x22\xc1\xa0Pf\xe3\x83\x02\x8f\x16\x90\x9f\
+\xc3\xcf\xe7z\xf3{\xf8s\xee\x1f\x1b)\xf7\xbb?\xef\
+\xd6f^\x01\x8c\x000x\x03\xe4\xe0\x08\x0a\x1e\xa6:\
+h\xadA\xd8\x9d\xd8\x87\x86\x1fJ\x19\x85\x08\x1b*\xe6\
+9F\xd0\xe3s\xc3\xac\xc0c\x83\x8d\xf0\x1b\x96H\xb0\
+\xf1\xb3\xee)\xac\xcdh@\x82\x81\xe9P\x144F\xd2\
+\xc3\x15\x19\xa4\x13\xcd\x1e\xae\xf9H\x1b\xe8\xa0\x98Z\x9a\
+\x12\xfe\x14N\x18\x1f\xaf\x10|:\xe7h\x06\x01\x9e\xa0\
+|1\xff\xd6\x85Q|^\x7f\x9e0?D\x02\x03B\
+\xee\xf7\x89yZ\x8cWDCm\x93\xcd`r\x18\xd0\
+\x0b\x8d\xe3\x87\x0d\xf0\x00\xa8\x00\xf41V\x08\xa6\x0e^\
+\x01P\x1956\xed;\x198Y?\x03'\xda\x91\xa6\
+\xb2\xe4\xe8;\x92\x1c\xb1_\xe5\x82\xe7\xb4\xca\xcc\x8b\xf5\
+\x05\xa0\x85\x97\x03^%\xdaW\xd6)\x7f\x1e\xd4w\xcd\
+\xa9>\xab\xcc'N\xa7AN\xb4\xc3\xcc\x8a}P\xe5\
+\xdfg\x5c\xc8\xfe\xa8\x92\x94\xa9\xd0z\xc6\x8c\x90\xf4>\
+\x9aGR\xc8\x9d|\xff\x14)\x91\x1c]\x99\xe2\x0aw\
+\xf2\x8e\xaa\x12RL[\xe900\x96\x0b\x00\x15@\x14\
+\xc0\x0f\x8a#To\xc1d[U\x85\x15L\x1d%R\
+\xbbU\x09*@\x9a\x0b\xb3\xd0\x8a\x93hQ\x983\xbe\
+\xd3\xe3\x0b\x91\xb6Q`F\xc7\xfc\xb7\xcd\xf5\xcd\xf5\x99\
+9\xa4(\x80\x0e\x0c\xab\xfb\xbb\xcfG\x87\x1b`.:\
+qx@p\x9f|\xf0c\xae\xd7\xdck\x06\x0c\x8c\x88\
+;\x15\xd5\x18^4\xc6\x9eZ\x12\xee\xdb^\xd7x\x87\
+\x04\xd0\xee1\x8eY\x88#\xed\xf5\xc1\x0a3\x93\xbe^\
+\x98\x99\xa1Q7\xd0\xdd\xdc\xa4p'USknT\
+T\x8c\x97\x8b\xba\x04\xa6\xb9N\x91^\x91t\x5ca&\
+\x1a\x9d?:3\x9cohZa\xea \x89C:\xe4\
+)&h?Czb`\x8f\xce>\x9d1\xa6\x01\x00\
+\x1c5?W\xe4y\xe6\xb9\x03\x0a#ex\x83\xa2P\
+j)\xb4\xa7\x1e\xc9Q\xd6\xa3\x13\xc5\xd0\xcc\xba\x80o\
+\x8eVTfO\xa6\xde\x87\xf4\xd1\xa6w$\xb4\xed\xaf\
+\x14\x95D\x08\xa6\x8a\xaf3\x00\xe5\xf8\x1f\x8aJ2i\
+s^4\xbf\xd1(0\xf0\x92\xb2\xa0\xee\x5c\xa2C\xe6\
+\xf3\xb19RQ1\xe2\xd8\xcf\xdd\xd9\x8e\xc4\x1bm?\
+\x92)\x00T\xa6\xc0@\xad\xbf\xc5@\xaa)\xc6x\x1c\
+\xc4\xf4\x22\xc6\x96yZ\x11\x05I\xfb\x8c\xa2\x9a\xfe!\
+\xad\xfe\xd9U\xc3\x86|\x80\xc6\x01L4\xf6\x17\xdf\x0f\
+\xf6\x850\x09\xa6\x00eZ\x8b\x19\x1a\xd9e\xfd\x8e\xca\
+\xc4x\xfd\xdc\x83.\xc0\xca\x11\x8a\x8a\xd9*i\xe7\x17\
+\xaa\xe7\xa2\x97\xef\x84\x16\x1cI\x18\x94f\x00r\xae/\
+\x1ao\xcc\xcc`\x16`\xce\x8a\x97\x81)\xf51&\x0e\
+\x09\x00\x0d\x05\x9f\xa7\xc3\xcf+\xbcOL+\x05!\x1d\
+c\xa6`e\x1e\xd5u\x15\x93\x00j;\x05\x93\xa7{\
+\xe5u\xf3P\x95\x87\xd8\xec1\x0a\x0a\x00\x0c\x9f\x03\xac\
+\xbf\xb8\xde\xf5\x14\x8eu*)\x84\xcf\x99\xf6\xbb\x8aj\
+\xfa\xc0|\x93\xf9\xf3\x94\x9bou\xde\x07\xc1\xf4t\xbe\
+\x14\x00\x19\x9dQ\x98\x7f\x1f\xb7D\xf0\xfd\x96\x96P0\
+\xf2\xfe\x98\xbaC\x01\x84\xe4\xc4\xd2&:\xdb\xcd\xdb\x14\
+\x19\x98:n\xea\xb8\x0ah\xf8\xaa\xd7?\xd2,\x8f\xe7\
+c\xbc[Lq\xe0\xb9?\xda\xef\xdf\x00BH\xf80\
+'\xb5Y5\x12R\x00\x95\xf0bCz\x81t\xe1\x90\
+\xee9m\xb6l\xb6\x10\xe38\x80/\x982x\xce\x9c\
+l\xf3j\xbc9\x98\x86\xc4\xf4\x04\x8f\x0bn7\xee\xc6\
+y\xb7[+*\xef\x10\xc6\xfb\xe2\x81D^O\xdd\x00\
+\xc0\xc7>\xc7\xef1c,\xcc\xb7\x91\xa8\x91?\xd84\
+\x1d\x80<\xf2C\x17\xceQ\xe8\xbb\xae\x8a\xf5\x06\xc0N\
+\x1e\xcft(7\xb8\xa2\xe1Cc\x89F_\xdf\x0c\x9a\
+z\x8b\x06\x1a\xef\x13\x09\x07@\x0d\x0dQ\xf2m\xa8\xfe\
+0\x12(\xc8\x91\xf6\xd0\x18c]\xd9\xfc:\x95\xf1\x9d\
+y:\x85<\xef\xc7\xf5Q\xec\xa3H\x1e\x1f\xce\x90\xf6\
+T\x1e>\xfa?y\xff\xea\xbc\x01\xb8\x0e\xd4\x09\xe49\
+\xd4\x93H\x1f\xc8\x97i\x90\x01\xb8\x22)\x06\xd8%\x7f\
+d\x0a\x88\xef\xdb\x88\x82'S\xa0n\xa94\xb0l\xe4\
+\xc2\x055\xae\xee\xdf\x0a\xcf\x19^\xa0\xa2\xcc}WQ\
+ikM\xc1\x08\x13\x0c_\xa0L%Y\xac\xba\xf0$\
+PZ\x16\x97\xb8`}]\xf5\x80c\x16hWV\xb4\
+\xb1P,\xf3\xf29\xd5\x09\x99\x0a\xf9\x97:\x8a+\x1d\
+\xd2\xdc\xf9\xdb\xa0\xea4;\x11\x03\xa1\x0d\xf36\x9b(\
+Eb\xcf\xdc\xf4;\x14U\xa7\x95\x0e\x15\x05\xff\xd3.\
+\xe8,\x89\x88i\x06l\xf0P\x9bA\xbc\xe8\xa8C}\
+\xe6A\xa00\xe4\xcf\xb9\xf1ku&\x16\x03:F/\
+\xb9 Y\xcaZ\xe8\x9ftS\x0c\xd8h\x03Y\x86\xc2\
+\x02\x95\x1a@\x81\x83hI\x178\xa6LG\x07\x9a\x0e\
+6\x05\xbb;\xd0\x03\x1e\x18kP\xa3\xd3L\x81\xcb\x83\
+\xca\x03F\xc1\xcbF\xec\x8eo\xda\x86\xbb1\x1e\xe5\x01\
+\xec\x0er\xc6{@\xd5\xe2\xa0\x04\xd1\xa7\xc3\xcf\xfb\xc7\
+\x5c\x12\xa0\xc0\x07`\x004$\xe2$\x06\x14r\xdc'\
+\x0e\x04:\xe9\xbd\xe9\x10Q\x08\xd5S/\x9e\xaf\xee\x13\
+L\x86\xfbl\x0e\xb2\xa27\x8a\xbe9]\xdf\xf5\x94?\
+\x07(\xc1\x04\x84\xcf\xc3\xef\x81i\xd1\x1f\xc7\xc9\x81\xc0\
+\xfa\x00 \x01\xb0\xe1\xf3\x18\x81\x8e\xa9\x08\x00A\xfc\x87\
+\xfb\xb6\x0b\xc5p\xb7e,\x0d\xa6w\xb8\x01\xb3\x01q\
+\x9f\xf9\xfd\xac+(T\xb8\xffSx\xc1\xe8\xc0D\xcc\
+\xe3\x83b\x9ds@S\x08C\x99\x83\xca\xbc\x93\x0b\xe3\
+#\xed\x05p\x5cw0\x07\xd2n\xcaTtn\x01\x1a\
+M-&\xd1D\x0b\x17\xde\x01xA\xf8\xfb\xe2\xe7Q\
+ \xa2\xc9\xc4l\xd3\xd7\xb9YKQ\x8d\x9d\x83\xf1b\
+\xb3\x9c\x18g\x84\x1b\xb9\x81\xb8\xe6\x13\x8aBi\x0fs\
+M\x8d=\xfbJu\xbd\xe9\xf8\x22\x89\xa1\x93\xeey\xbc\
+\x00\x01\x83EL\x89\xe3y\x81\x0a\x87\xa7\x08\x09\x18s\
+f\x9fN\xff\xea\xe9j_\xf5ud\xdew>\xd0\x8f\
+\xae\xb4\xde\x8c\xc9\x01\xb0\xa1\xc0\xf18<\x0d\xa1\x93\x9b\
+;\xd3.\xf21\xf6\x80;\xb1s\xe6\xf7}\x96:\x86\
+\xaf\xa2\x002}E\x1d\x86\xcd\xcaX\xb2\xc1\xfc)\xe6\
++\xeb\x0c\x89\x95\x08\xd5\xa2T\x87\xb4\xea4K\x8e\x90\
+\xd2\xf8s \x99\xa0\xc0\xa4\x90j\xf7I\xb1\xb7;\x88\
+k\xbb\xf3\xf7\x97\x0a!\x7f.s\xb6\xca4\x15\x12\x81\
+{3\x97\xa8P\xea|N\x05p\x03\x83\x0a\xca\xae%\
+89\xfd\x9b\xe1\xf5\xb2\xa0\xcf\x9d\xab\x8b\xc6\x9e\xf9\xc4\
+\x5c\x97p\x8f\x7fSW\x88\xc2\xf8\x81*\x8e;{L\
+\x15\xe1\xf9q\xc27\xd9K\x91\x19i\xd9\x0cW\x023\
+I\xcc\x9ai\x8a\xca\x95\xfe\xdf\x8a\xca\x05\x1a/\x02\xb4\
+\x9a\x98z\xfa\xbc\xe3<\x8712y\xb3\x22]\xcfy\
+\x15\x9e\xa6\xa0B\xf9\x0b\x8a\x8a*\x0au\x15\xca&\x92\
+\x9c[-\x05;\xa09\xb090\x03\xf6]\xe1\xc29\
+`\xa9J\x00\x01\x1e\xdf\x18SYL\x19\x0d31\x03\
+\xf5\xb1O\xb8\xa3\x16\xe7\x17&Q\xbe^\xe1\x15c\xef\
+\x15\x12\xfd\x90\x8a\x98\x22><B\x91%\x083\x9b\x99\
+e]\x0d\x9fR\xa4\xd7]\x15\xe9\xef\xff\xa2\xa8:z\
+t\xc8\x9d\x7f\xf0\xdc\x85\xa6\xdd\xef\x07\xedl0\xf80\
+Wu\x82:\xb9@\x91\xae\xf34E\xf9\xdcA\x1d\xf7\
+:\xc0\xa4o|\xb0\x22}\xff\xeb\x15\xe9\xf5\x1d\x8a\xac\
+\x99\xbe\xa4\xd58\xb0\x0f)\xaaN\x15\x80\xa2\xc7\xcde\
+\xe9\xe25\xa5\x13\x9f\xaf\x7f\xfa\x1c\xe3\x1dS|\xc4\x00\
+\xdefv+_?\xfd\xbc\xdd\x15\x85\x19\xda|UQ\
+\x01ENlq\xd7o\xb7o\xb7k\xd3z\x9cy\xc8\
+\xcc\xe93%\xb5\xcc7,\xbd\xde\xa5(\x9d\xad\xc9\xdb\
+\x15U\xc1eO\xa9\x90\xa6\xa2)\x87\xa9IB\x0e\xa0\
+\x81G\x8cN\xa7j\xdaR;#\x85\x0a\xb2\xd9R\xcc\
+^\x15\xd6\x8c!u\xc7\x9f\xe74\xf6\x81\xa7\xf3\x8e\x19\
+\x85\xb9,\x1be\xda\x88\xe6\x9a\x8e4\x0c\xd7\xd0P#\
+\x81\x9dKQ\xb9\xb7\xf7\xdc\xde\xe3\xf9\xc5\xab\x07\x13E\
+3!\xa20\xf7\xf9\x15@\x88\x99n\x93\x0f+\xaa\xdf\
+\xe3<e8SQQ\x84uZ<Y\x99\xc4aN\
+\xa7\xf3A\xd2\xd8\xd7)\x8a\xc4\x09\xc0\x22\x189\xee\xe0\
+\xe2-\x14\xf9\x06?\xf7\xc1\x14\x0fUR=\xe6\xd4\x9b\
+\xf1\xc8\xb4\x8b\x90h\x92\x870\x85\xc6\x85_Z\xbd\x0b\
+\xe7\xf5{b\xfb\xbd\xf6{\xd9\xfb\xa4\x93DP A\
+\xb1\xe6k\xe7Q\xd1\xe8b\xcc8\xde\x0a\x14n0\xb3\
+8'i\x04Q@z\x1c^*\x9b\xb2\x19q4\xc4\
+\xe8D\xdb,\x0f3\xe9t*g\xe6\xefd\xd5\xce\x8c\
+9\x0aZ:\xb1\x14\xa0\x98+\x1aX\x0eo\x053\x02\
+\xa3 \x83IA\x07\x19\x09$\x8d3{\x22\x0d\x1e\xb2\
+\xf7\x02\x8dE\xaf\xff\x90\xa6\xd0\xe8q\xbeO\x037L\
+/5\x85c\x9e\x02\xb8\xc5t\x0a$\xd5\x00K67\
+ejTH\xbe\xc9\xeb\xc9_\x91\xe2\xe2QE\xde\x8a\
+\xb9(\x8cF3'Br\x86\xd7\x0c\xd2D3L\x82\
+\x11\x07\x05\x9e\xc6\x80\xaf[xn\xb0\x05\xc0\x04\xc1\x1c\
+\x90\xfc\x93iv4\x04\xc9\xeb\xc9_1\x11d}\xe0\
+e\xc2\x7f\xe4\xfb\xe4\xe3\xac;\x1aVLU\xb3\xa4+\
+\xa6\x04\xf1{\xf9wP\xfba\x18\xf3\xfb\xdc\xc8\x86\x91\
+\x0ac \xa4D/\xe6\x0ao*?]OV\xdez\
+\x00)H~\x00\xc6\xa8#\x00j\xf1*\xa2.\xe3z\
+\xc2H\xf1u\x8d\x06\xa3\xcf\xfdQ\xf3f\x85\x17\xd4/\
+lN\xf1-\xbf\xc1\xbf\x9a*qT9\xa02\xd5\x7f\
+OS\x8c\xfeTi\xf7\xa1H@m`\xee6\x09\xf8\
+N\x8a\x0e`\xc8\x0b\xff\x9a\xa9k2%\x15J\xad:\
+~/U\xc8\x18\x144Q\x8f\xce\xaa\xcc\xdb@@p\
+\xbbW\xdf\xef\xd4\x0aqT\x87d\xdf\xca\xa4\x84\xb1\x1c\
+\xcc\xed\x06\x91\xe4\x02\x99*\x13\x9dC\xc6h\x19\x91\x8d\
+\x8d\x81\x03\x02\x93\x1a\xc6rY\x9b\x1aHW\xcft$\
+^\xf9\x0f`\x80\x02\x8f\xce/\x1d\x1dw \x07\x14\xc0\
+\xd3]\xc8\x83|[\x93\x13\x09\x1c\xe6ilp>\xe0\
+\x83\xea\x01u\x9d\xa9\x09l0t\x8a\xd7\x8e9\x9a\x1d\
+\xf5\x9c\x02\x7f=\xff^\xc6\xe4\xd1y\xe6\x81\x07i\xa7\
+`\xa6\x10]\xcd\x89\xd8\xdcA\xc5\xea\xae3\x07\x08\x1a\
+\x18\xfe\x1d\x0f\x0e\xd7\x85\xdf\xc3u\xa3\xb0\xa5clJ\
+\xed\x04\xea\x0c\x0f(\x12\x09\xc6\xbb@1g\x03\x00\x98\
+\xc1\xad\x9aN/\x80\x03\x88\x22\xd7\x09-$\x14{L\
+\x85@8\xd9@8\x80\x1e\xeb\xe6\xa8\x0f>l@\x86\
+\x84\xc0f\x92A\xf5cCE\xf3T#\x81\x0fW\xc8\
+!\xeb\x88\xcfM\xe7\x11*-\x00\x03\xeb\x98\xb1\x9at\
+4A\xf4\xb9\x0el\xd0.\xfc\xc3\xcc\x10j#f7\
+\x8cS\xc2\xcd\x98\xe7\x0d\x00\x08*:\x85\x22\x8c\x1bw\
+\xea\xa2\xe3\xe9\x82\x22\xe6\xea\xba\xe0\x0df\x05\x1b\x18\x85\
+;\x8c\x1a(q[xc\xe3\xfe\x01\xa0\xa1\xb9d}\
+s\x1fX'\x8c\x99\xf3T\x0f:O\xb1\x1f\xf8\xfa\xe5\
+N\xf3#\x155\x15\xed>\xa6\x8c\xeeH\x86\xc9\x0f\x9e\
+\x06$Jt(\xe9L\xc2X\xc8\xffU\xe6d\x14\xca\
+PC\x197\xe3\xc4\x11jf$\x00\x00\x0cN\x5c\x82\
+\x02i\xa6\xc3\xe4\xab6\xc7\xc4|\x13\xed!\xe3\xdb|\
+@\xa5g\xf7=\xf9\xf9\x05\xf9\x85\x22\xe7\x83\x9d\x0eA\
+\xbb\x97\x22]\x8f\xaf(*\xc0\xceT|\x00\x88\xc1\xc5\
+\x8a\xf4}\xdfNqt\xa1\xe8\xe3\x9e\x1b\x1e\x08>\xb8\
+\xc2,\x88\xc2\x1fSE\xdf\xc7fKE\xfaw\xfbv\
+&\xa4h\xc3\x87\xa7**\x8a\xe4\xfb\x14\xd5\xba\xc0\xec\
+\x89N\x1e\xfb!\xde4N\xcc\xb3\x19Z\xda?f\x1e\
+\xa8H\xcb\xe8\xac\x142\xc5\xfb\xbd\xc2\x88\xf9^\xd5:\
+d\xcc\xa1:\xab\xef\xad$\x1d\x1c\x98\x98\xf0\x1c\xa7H\
+\x7f\xffUOCp\x01\x82\xb6?\x17\xf2\xab\x96s\x89\
+\x0e}\xcc\xd5>\xaa\xa3\x1e\xb6\x17(*\xcd/\xc02\
+\x14y\xa8\xf4\x87+\xf2T\x82\xcchI\xa7pW(\
+\x00\xb0\x7f\xcf\x89\x1a\x09\x8b\x13\xca\xc1\x7f\x14\xe9\xdf?\
+\xab(\xd2\x85\xa0\xc8\xf3\xfa\x16K\xff0\xfb\xb2\xe7\x08\
+\x00B\x98\x9f\x02\x08Y\xd2\x15\xe3Y\xbd\x1f4\xbb(\
+\x8ad\xa7YH\x91\x0b\xe9\x1b\x067\xa4\xfb\xfa\xb0\xa2\
+\xea Au\xcf\x0f~\xe5\x1d\xe3\xf1y\xd1iF\x0b\
+\x0c \x09\xb0\xe8\xf1\x9c1U\xc2\x8c $\x84\x01|\
+\x5c\xa8\xa8\x00\x00S\xf8\x87\xe7(\xf2T\x89N\x12\xb0\
+i7\xe6q\xf86E\xfa\xfa\xc0\x0e\xb0\x8095\x5c\
+PQ\x0a\xf8l\x02|\x98\x01\xac\xf9+ c\xba\xa5\
+\x02\xcc{v\x87\x98\x8e1\x05!\xc07\xd3\x03\xda?\
+)\x0a\x93\xa6\xb9LQ17\xdc\x19\x1co\xaf(\x09\
+6\xa6N\x93G&\x8fN\x1e-\x89\xfc\xe0\xf5\x8aj\
+\xca\x8f\x19\x0e\x98xNf\xf7s\xf2yE\xfa\xb9\xd9\
+$\xa508\xdb\xb5\x15\xd5\x14\x0fk\xfeCz\x03\x80\
+\xed\x82\x891\x87\x12\x94JR:\xf3\xb0\x99\x87\xcfL\
+\xd7g\xbc\xb6\xa2\xb8\xe7\xc7\x982${+\xbb\xe1\xe0\
+B*\xc6\xe9\xd1\x81\xc7\x84L\xa6q\xdb\x999y{\
+5\x8d\x88\xce?\x14Y\x99i\xed_u\xbc-e\xa3\
+\x10\x8a\xf1l4\x86\x94o\x9e\xe2\xe7|a\x03u\xbf\
+)\xf9\xd5\xf0\xdf\x8aj\x0c\x9b%ZH\x1c\xc6\xb3*\
+<]\xe0\xf1\x8a\xc1\xe5s)\xee\xcf\x9e\xd6\xf0{\xce\
+z6\x95\xfee9\x8f\x98\xde\x10\x92\x19K\x08\xc3\xfc\
+\x14\x86\x13\x0d.\x17\xe6\x1a\x9a\x9c\xc7&c\x12\xea\xfd\
+\xb8\xddCQ<K\xf2u\xdd\xd2\xcc\x94U\x0b\x03\x88\
+\xfc\x84\xc6\x00\xd3\xaeb\x0a\x11R<\x9f\xf7\xe1\x95b\
+s\xdd(t\xfe\xd5u0\xb3\xc4\xf0\xfa\xaa\x03\x89k\
+>\xcf\xbb\xef?\x05\xcd\xe4>K=\x9e\xb3\xc7\x8a\xcf\
+\xa5`(\x92\xafR\xe8\xd2@D\x9a\xc9T#\xc6-\
+\xf3{\x98ZD\xde\x87\xf4\x90\x82\x91\xf7\xbd\xb8\xf39\
+L\xdc\x00\xacy%\xaf\xb6\xa4 \xf2?$\xa3\x00\x0a\
+\xbe/!\xc1pGvp\x8e\x9f\x1b\xc6/\x1b\xb8\x0d\
+\x13G3\xae\x02\x10\x85\xd9\xc99\xcet&\xf6a\x1a\
+\x160O`\xb8\xc1\xb4\xf39\x16\x1d~3<B#\
+\x0f\x83\x84\xa9@\xe4U\x14\xcc\x98\xa63&\x1d\x06\x96\
+\xf3\xd2\x90\x90\xd2\x18%\xbf$\x1f%\xbf\xa7aG~\
+\xce}\xa4QD\x03\x85<\x9c\xfc\x17\xc6#\xd2\x09\xcc\
+`oVT\xe6v\xae\xe3$\x0c\xcb\xd20\xcc\xbb\xf9\
+\xb9\xd4'\xd4W\xac\x1f\xf2}>7\xd7\x8fN}_\
+[O!N\xbdB\x1dF\x1eK^E\xbeo\xd3\xcd\
+`\x14\xa0\xf1G\xea\x00\x13\xe0\xd1n\xbf\x0e\xc6\xc7\x0c\
+\xef\x87\xdeO\xc3S\x83)?\x06\xa4\xe2:\xd2\x18\xe5\
+\xba{\x9d\x86I,\x8dC\xe7\x87\x01X\xc0\xf8uc\
+r4\xed&E\xa1\xd4\xa1\x0d\xcb\xfd\xe4\xb4\x11\xb7K\
+(\xd2\xeb\xd5\x0ao0\xbf\xaf\x16\x0as=M\xc5o\
+\xe6U\xa4\xd7\x7f(\x8aY\x16\x88\xd1`\x7f\x85\x13\xc6\
+\x7fy!\xefTu\xec\xb9\xc0F\xee3^xU\xd5\
+\xb1\xf3\xf8\xb7\x8c\x00]^LP\xa2\x83\xa6\x03\xf4\x89\
+\xca\xfc\x81\x8e4\x9dq\x108:\xc4,\x10\x0a\x07o\
+\xd8\x98\xd4\xa4t;w\x944\xac/wz\x00\x14\xb8\
+Qv3\x0df\x01\xdam\x16\x1c\x05:\xd4\x9a\x1e\xd5\
+;\xc6\x1e2\xce\xa4_(S\xb8\xd1Y\xa13\xe5\xc2\
+#(\xc1t\xd21\xef\xe9#`s\xba\xa0\xa4\xb0\x84\
+Q\xf0\xb8\x13`\x1e\x80\xdeF\x10\x7f\xee\x8e7\xda\xb3\
+\x98\xb2\xc0\x03\xcb\x03o\xc9\x02\x89Ml\x00$\xd20\
+\x03\xfc\xa0E\xc7ruE\xb5\xb1\xf29\x19\xefeW\
+\xf4\xa0p\xed\xec\x9f\xbb\x8b\xaf\x17\xd7\x03\xcf\x84>\xb0\
+\xc2\xfb\xe0\xfa.\xedBgY\x17\xfc|?\x9dmo\
+\xf4q\x90mn*\xfbB>\x10\xfc\xef\xc3u\x9eD\
+\x10\x0f\x006\x12\x5c<A\x88)\xfc\xfd\xc0j:\xbb\
+\xe6\xb3C\x05\x8eD\x9e\xebNa\xc3\xf7\xe1\xc6\xcd\xc6\
+\x01\xb2\x09B\xdb\x97\x0c\x00$\xb1qr\x1d\xb9^ \
+\xb0x7\xb8\xa3G\x87\x81N1\x1aL\x0a~(\xf3\
+\xa1\xc9\x04\x11\x06\xe1\xe5}\xf4\xd3\xe7\x7f\x97\x00\x00 \
+\x00IDAT\xdcY\xc3\x93\x03S\x13\xf6\x07\x0a_\
+\x80-S\xa1&'(J\xe2\x1d\x077\xd7\x89\x0d\x1f\
+ \x80\x83\x1e\xe4\x93\xf5@\x87\xdc\x9a\xd8\xc9\xa1\x8a\xb4\
+O}]Q6\xf4\xe8\xb8C\xd1\xc6\xb4f\xffn\xec\
+%\x92\x84\x18\xf3\xc4s\xdb+\x90\x82\xda\xe6\x8e@\xcc\
+\xe9u\xa2\x18R\x046x\xef'\xe1R\xec\xce\x1a\x05\
+r \xc6tTpC\xc6]\xda\x12\x85\x00\xb2\xbc\x1f\
+Nm\x99\x9e\x96-\xaa9\xda\x1c\x94\xacG\x7fNL\
+W\xe3\x80\xa6\xc3\xd1\xbf\xce$\xfeF\xbe\x87\xeb+\xca\
+X\xc9\x18\xf7\xb8\x84\xa2\x8c\x99LisF\xba'\xb3\
+\xca\xb7\xba\xea\xe02=\x85\xb9\xb8w)*/\x18\xa8\
+\xdd\x9eV\x11ZV\xb4\xdfh\x92\xa1\x82C\x15\xf6\xfa\
+\x1e/\xae(\xf7=k\xd9S\x22\xa1\xe1o\xc3\xe5\x0a\
+\xa5=\x9b\xcdn[\xed\xef\x96\x08d~\xc6A\x95&\
+\x16\x93=:\xb9\xf2\x84\xd1X\xbb\xc7\x15ve\xfe|\
+1\x0d\x84\xba\xdf\x9c\xde\x9c\xd1\x9cQ\x01\x8c\x8c\x19{\
+q\xf2\xc2\xe4\x85R\x10\xb4\x0b+\xd2\xfb^e\xbc\xea\
+x\xd5\xca\x83\xe7\xa7\xdd\xd8\xbb\xe6EE\xfa\xfb\xcb\xc6\
+\x97\x8e/\xcd\x09vG\xad\xe5y\xc6[\x81\x8e\xbc\x0b\
+r\xccgcj\x0c\xd2\x17\xb4\xe8\x00\xbb\x98\xaa1=\
+C\xe7\xf4ie:Btn\xec\x01\x84\x064L)\
+1\xd3<\xbe\xd3\xd66[+\x0a0:\xfc\x9d\x223\
+\x08\xf3>\x96\xd2\xfcN\xe3\x8d\xfb1\xe6\x8fPLm\
+&\x1c@'\xa6L\x06~\x02\x18\x058\x86\xd1@\x07\
+\xe99E\x01\xfa\x9aY\x15\xe9\xf5\x96\xe6O\xcd\x9f\x0a\
+01\x5cVQ\x5c\xfbc\xec\xa4\xc74b\x1e\x98\xcd\
+\x7f?P\xeeC\x00P\x06\x96\x9b\x0b\x15UAb)\
+LP\xc3\x01<=v-\xa6\x95X*\xd1\xfcBQ\
+\xad\x7f\x03\x9d\xed\xc7\x15\x95\xbb>\xde$\x14\xfa\x9e\xd2\
+\xd1\x5c\xad\xf0x\xbb\xeb\x8a\x14\xa0\xfd\xb0\x22\xbd\xde\xaa\
+H\xaf\xff\xddy<\x84\x19%\xfb\x01\xd3\x1dzT\xdb\
+\xd8\xc7\xbc\xce\xda9\x14i\x1d.\xa7H_\x7f\xa2\xfd\
+d\x9b\xce\xafvOE\xe94F\xc7\x9e<\x86\xf1\xb3\
+h\xcf\x01$\xc5@[\xb92\xd9\x9c7\xb7\x0e\x82\xb1\
+3\x99Sa\xcd\xb5:\xfc'\xa48\xbe\xbc\xaf0\xc1\
+\xa33n\xa0\x224\xbd\x00\xd5x\xce8\xcf\xcd\x0c\x81\
+\xd9\xcc\x5c\xdb\xb6\x92\xfe`\x02KG\x0f\xe6\x89\xcd\xb5\
+\xc2\xcc\xd2\x05xP\xb8\x19\xb3\xe5B\x0b@&\xa6\xb7\
+\x00\xf0\x93\x7f\x92\x8f\x99)\x1a\x0c'(\xd7\x9a2t\
+v\x01\x8e\xe2\xb9`N\xbc\xf7\xf3\xf8\xfc\xa2\xca\xcb\xf3\
+g\xff\x14\x07\x94\xf1\x85\xf9\xb4\xdd\xa0\x92\x9ap\x0e\x1a\
+\xd0\x8c\xb1\xc9\x14\xbeP\xae\xb5\x1e\xbeR\xc6X\x02\x8c\
+f\x09\xed|\x15\x15\x9d\xcf\xc5\xb8?\x99\x00\x1eS\x80\
+u<E\xda\x15\x15\xe9\xf53\xed\xaem\xba\xce\xedq\
+\x8a\xcc\x18\xe8\xde'\xd21\xe7\xf9\x91\xbf\xf6]\xfd)\
+|h\x1c\xe1Y\x84\xb7\x91\x9931v\x18\xef\x163\
+e#\x9f\xe0\xfe\xde\xd5I\xfd\x22Od\x5c\x1e\xd3\x18\
+`\x5c\xd1\xd8\xb0\x096\xf9^\x98Z.j \x97N\
+,\xe7>^E\x8ca%\x7f\xa3\x11h\xc6H0\x05\
+\x90x\xb8^\xa1\x81\x12\x9ap3)b\x1c\xb1=\x94\
+\xf8\xbdLOi\x0fUTSQ\xe6ST\xd25\xf2\
+1\x1axh\xdf\xa9o\xcc\xac\x0b\xc6\x0dR\x07\xa4#\
+\x98\xf4RP\xd3\xd0#\xdf\xa3@f\x9c\x1e\xf5\x18\x12\
+R$Q\x14\xf2\xdcW\x004\x8f_\x8d|\x84B\x9a\
+\x863\xd37\xf0\xe0\xa1p&\xef\xf4\xd8\xd8\xf8\xfe\xdf\
+\xf5\xcc\xc2\xbd~\xc2\xcb\x81\xebB\xc7\x1cF4\x80\x00\
+\xff\x8e\xf5\xde\xeb\xd4\xc7z%O\xc5<\x94\xeb\x89w\
+]\x9f9\x82$\x1c\x89%\x0d\x01\xbc\x17\x18\x8b\x08c\
+\x87\xf7\xc1\xcf\xe1\xf7s\x1f\xc9\x17\x19\x83h\x001\xa6\
+\xfa\xb9A8\xca\x07\xf2\xefMI\xf9H\xe5\x06,-\
+Z:\x98\x86\xbfH\x91.\xe0\xf0\x87\x0a_\xf0?\x1a\
+\xe1\xf8[5w\xd2c\x03\xa1\xf0\xe16K\x07$L\
+\x098\x10t\x9c\xcf[\xdd\x90\xb9\xb2M\xcd\x94\x86P\
+i\x0cU$`\xccS\xe4\x83\xb93\x1b&V~\x1f\
+a\x06\x08\x92\x07B\xe2\x05M\xc7 \xc6o`J\xe5\
+y\x89\x81\xac\x00\x1c\x90P\xad\xe6\xce?\x0c\x02\xccP\
+\xa0v\xb3\xb0q\x07\x85\x8aHA\x09\xc2EbN\xa1\
+\xcb\xef\xa3p\xa2P\xa3\xf3\xfd\x92\xe7\x113\xd6\x82q\
+.\xb8\xb0C9\xa7\x90\xa6\xd3\x0c\xc3\x81\x05\x8b\x86\xea\
+\x8a\xc9\x95\x93+\xab\x84e\x86\x0b%\xcc\xf1\xbc\x11\xa5\
+4\xbd3![\xdb\x14+6\x5c\x12\xac\x05\xba\x0d2\
+\x12\xab-\xba\xf1)\x91\xa0Q\xf8\xf1\xef\x00^\xf8\xbc\
+t\xc0\xf9{\xfe\xe3\xfd\xf2\x00Q\xd0\xb1!\x81\xe4r\
+_W7@\xb0\xbc\x0bv\x80\x16\xae_\x1f\xf8\xc1\x83\
+`q\xcf\xa5_\xd2\xc0\x00\x1au\xee[\x9fR\xcf\xef\
+\x07\xa1\x5c\xc5\xdf\x87\x84a\x0d\xdf\xcf\xf5\x5cx\x00\x5c\
+P\x88\xf2~y\x1f\x00\x0c \x91P\xe2\xd9\x08|0\
+\xd0\x11`>7\x7f\x1f\xda]Lr\xfc\xbc`f3\
+\xb9OQy!\xf0y\xe8\xdc\xd09G\xa3h\xc0h\
+\xb0\x91\xa2\xeax\xbb\xc3\x1a\xe3\xa0<\x8d\x831N\x9a\
+\x12\xafNix\x07\xd0!\xe2s\xfb`U\xbf:w\
+\xac\xf1J\xa0\xc0\xc6\xec\xc8\x89nt\xf88\xd0\xb9\x8f\
+}\x06\x07\x92\x1a\xae\x1b\xeb\x04\xe0\x08$\x94u\x09\x83\
+\x81\xc2\x86\x8e3\xdaX\x0e\xea=rLM\xde\xa2\xa8\
+\x0aA\xe6\x82\xe3.l\x09NJ\x17;\xb3E\x8f\xe1\
+\x89\x0e7\x07\x0d\xc0\x13\xae\xc3\x14\xe4Hu\x90\xaaP\
+\x90\xa3YuG \xc6E\x02\x04\xb1\xaf!A!q\
+\x01\x105\x956\xfd]\xde/D\x04\x16\x15\xb8\xf9\x9e\
+\xa2*\xfc\xd87\xd9\x9f\x0cl\xb0\x8fQ\x90\x00\x8c\xf0\
+{\xc23\x80\x04\x90q\x85H\x1d\x98\xdaa\xa6B{\
+\x99\x22\xbd\xaf\x83R|\xc9\xe7\x84:\x8fK**\x80\
+\x13\xc9\x08\xcf\x1b\x07\xf9\x96\x8aj^6\xc0$TR\
+:@tL\x00\x80\xfd\xbe\xc2lv\xd7\xec\x0f\x1dR\
+\x0b\xe6\x9e\x93 \x0dwVTT>K?\xb2\xeb\xfc\
+I\x15 \xadD\xf7{~n\xb6\xf3\xbe\xfcPeF\
+gSI\xbc&&\xdfTT\x9d\x12<'~\xda\x15\
+\x16\x83\xcf+J\x82\x11c\xa3\xa0x\xffl|\xf6\xf8\
+\xec\xbc\x9fv\x12:\x17\xda\xa3\xfdG\xfb\x8d\xf6\x9b\x9a\
+\x92\xf7\xbb\xdc\xdf\xa1\x80\xe3\x09\x93\x0a\xdb\x14\x95\x84\xcd\
+\xde h\xe3\x9b\xe7\x9a\x7f\xe7i\x00\xf3Yzq\xf6\
+\xd4\xcf\xb2w\x85\xc7\xc3\x85y\x9d\xa8\xf2k\x97NV\
+s\x8d\xa2*\xf0\xc5\xb8\xfb`%Q\xf0~\xd3\x1c\xd1\
+\xad\x1b9\x1d\xc8\xeb\xa0Y\xb6Y\xa6Y\xa6x\xc6\x00\
+$\x0c\xe7\x1f\xce7\x9c\xaf\x9c\xc7\xed[\xac\x11g\xbf\
+@:h\x89P\x14DW\xbb\xf3{\x84\xbdx\xacq\
+\x9e\x9a\xb5\xdb\x17\xe8$\xca\xd2R\xa6\x96H\x19c\xfa\
+\xc4|\x8aBa\xe7\xf9\x18\xfeT\x91^\x17UT&\
+\xc0\xffT\x94\xb9\xe7\xcd\x92\x8a\x02$\xe0\xc1\x92\xcd\xd6\
+\xce\xa9\xceg\x9f+\x5c?\xcc\xe2&\xb3*\x0a\x10\x0b\
+\xd0\x80\x04\x01fHP\xea1YC\xd2\x04\xc3\xa87\
+U\x06\xc6B:\x83:-\xaa\x81\xeb\xf1)\x8aB\x81\
+\xa7\xa3\xd7n\xeb1w7*\xd2\xeb\x99\x0aw\x8a\xce\
+/\x89f\xfbsE1\x0bk_P\xa4\xd7\x1f*\xaa\
+\xb1\xa8\x96&1\x85%\xbc$\x9cO\x06E\x99\xf1o\
+\xafQT\x85\xb5\xcf\xaf\xe1\x95\x0a\x03\x13w\xa7\xdf\xf3\
+\xaf\x14\x8f\xb8s\xf6\xa4\xbd\x136-@_\xfb9E\
+\xe5\xa6\xaf]w\xc9\xea\xf3`J\xed}'w\x86\xcf\
+u\xc2\xfc\x07\xaf\x8f\x8f\x1a@}\xa6\xa2Z\x9b\x91\xd5\
+\xde\xadH\xaf\x7fU\x14fY\x8cw#a\xc7\xa3\x08\
+\xe9%\xf9\x0e&\x8fH\xae<\x05 \x98\x08\xfe\xbe\xc1\
+\x9c]C\xa5\xf9\x91\xa2\xa2\x0c;_l\xafm\xafk\
+S\xe2>\xf3g\x8aJ\xb2\x87\x04\x02\xa6\x83:\x8b\x8f\
+U\x05\x13T\xf6\xc7\x14\x15\x03\xc1y{\x00+\x96:\
+p\xbe\x04\x00e\x93\xb1voE\xf1\xfc\x82A\x07\xe3\
+\x85s\x81\x02\xa3\x9d]\x91\x81\xa6\x14\xe9\xcf7\x16\x07\
+*\xad\xc7\xaf\x8d\x8f\x18\xa7\xe7\xb6\x9dG\x91\x01\xe2N\
+\xe2\x01\xe3\x8d\xf1m\x00\x00x[`\xb2H\xdeH\xc1\
+\x09E\x1aww\xa4\x8a\x8cY4\x00\x16\xe3'\xf10\
+2\x107up\x8e\xa9\xc9\x19\xfe\xbcL\x9b\x81jm\
+o\x81\xf0\xc0\x22\x9f\xbf\xd8\x9e0\x8f)\xf2\xdc\xf9\xce\
+\xa3\xc3\x8d\x84\x18_\x8a\x84\xc0\x92\xe9\x94\xd3t\x0c9\
+\xef\xf3\xe11C\xc1H\x9e\x88\xd4\x92B\xd6\x85iH\
+\x87\xbc\x0eC\xba\x86y1\xc0\x0b\x1au\x18\x0c\x14\xb6\
+H\x22\xdc\x09\x9el\xaa\xa8<\x03\xecq\x10\xf9)\xf5\
+\x1a\x0d\x00\xde\x1f\xf9\x16&t\xe4%0\xea\xc8\xcfh\
+D\x91\xc7\x91O\xd1@\x86\x11\x04\xc3\x85\x82\x9e\x82\x98\
+\xbc\x1b\xc0\x84\xfb\x0d#\x80<\x8dF\x1by\x05@\x04\
+\xd7\x15\xd3J{!D^H\x9eIc\x03\x066y\
+\x07@\x04\x854\x9f\x13\xa0\x88\xeb\x02\x93\x17\xc0\x03\xa9\
+\x04\x8c\xcf>\x93\x07\x00\x81F+\xd7\x07\x00\x0c\xf3A\
+\x00\x08$\x10?4\xd3\xf2\xa6\xee\xba\xd3 \x8bF\x8e\
+\x1b\xb2\xe1\x99a\xcf\x88hH\xf2\xeas~\x84YP\
+\x14LN\xc4&\x17*\x9c\xd8\x9fW\x15\x0e\xdc\xf8U\
+r)T\x10\x96Zk\xbeR\x95\xd8R\xe8\xcf\x9a\x8f\
+\xe8RPQ@\xb3@\x8c\xfc\xe4\xc4\xe5v\x9b\xd4\x1c\
+Z\x8dK\xe1\x81\x86\x1aC\xc7\x82\x0b\xe6\x1b\x15\x1dR\
+\x16>\x9dg\x106\x0a\x7f<\x08\xd8\x08@dy\xdf\
+\xb8>\xdfn\xc4\x0f\x97_:vt\x1ap\x036\xc2\
+\x16\xc8\x177\x94\xc2\x07j6\x05?T$np\x8c\
+S3#`\x1e\x17l\x5c/:q\x98DP\x18\xb0\
+\xc0y\xf0\xfa\x9av\x16\xaa\xa7\x00\x80\x08C\x01\x8d\x8e\
+\x99\x11\xa1\xc1\xba\x06\x10\xb8\xaeP\xae\x18Sf\x0du\
+\x5c_\x0a^\xbe\x96\xc5\xe3\xecUG\x9a\x02\x8d\x8d\x9b\
+\x04\xbe\xc7p\x88\xf5\xc7k\x7f\xc3\xe0\x81\xe1\xbe\x83\xa4\
+\x16\xea\xfb\x82\x83\x053p\xd3\x01\x01\xb3\x98i\xe0\x8d\
+L}\xba|]\x01v\xb8\xde\x14\x1e$\xfaP\xf5\xb9\
+/\xefu\x87\xf7\xb5\xbe\x8e\xfew\x01\xe4 \x91\xe0\xe7\
+\xf2\x9cP\x98p\xbd\xf8{\x9e\x13\x18#h\xf5)h\
+8\xd8`\x0a0E\x81\xebB\x07\xe3DE\xa5Y\xc7\
+u\xd5\x05\xf2\xe4tE\xd5\x89\xa2\xb3\xdbc\x16\xc4\xf5\
+\x04\xc0\x01\x88\xc2\xd4\x84N\xd5\xdb:O\x0a\x12\xd1\xa0\
+\x9a\xe2\xbd\x00\xd0\x01 \xd6Gj\x91\x18\xd8D)\xc6\
+$\xc2 \x81Z\x07U\x1ef\x0b\xcf?&\x87\x00\x00\
+\x1cd<\xb7t\xfc9\xe8\xb9\xbe\x8c\xe5q\xc2\x1d\x94\
+Z\xc6\xaai\xec\xe9\xc3\x15\xd3\xc4\xee\xfa\x01\xb80\x9d\
+\x00M/\x94\xeb\xc7|\xe0\x00\xfc\xf1{90\xed\xce\
+\xcb\xc6\x8cF\x11W\xea8\xd8]xF\xa7\xc2c\xb6\
+\xa2\xe0\xe7\xb9\xe2@\x85\xc1\x02p\xc9\xcfy\xd4\xfb\x00\
+\xeb\xc7\x07P\x98HQxp?\x19\x83\xc4\x5ct\xbb\
+\x95G\x87\x1d\xaf\x02u\xea\xd3\xbe\xd1\xdc\xa5\xc8\xe3=\
+o\xcd\x9an\x9b\x9aa\x0e\x15\x94M\x0eP\xff\x9e\xfc\
+\xb4,Wu\xd0\xd1\x94\x02`06\x12\xb3G4\xdb\
+P\xd8\xefVT\x80\x0d\xc0\x05\x1aO\x00G\xf6/\xc6\
+2\xea\x1c\xd8\xca\x09\xc29\xd5<d\xa5\xcb\x1f\xad\xc6\
+\xc5\xae\xa4\xf0\xef\x9f\xa50>b>\xfb\x9e\x8aj\x9d\
+\xad\x9dw\x98\x8e\x81vi\xd1\xe4\xa6\x04\xfd\xda\xf6\x9a\
+\xaap\xf5\xfe\x10\xf7\x13f\x0c\xe7\x03\xc0\x00\xd2\x19\xa4\
+g$\xb0'w\xde\x12\xdc\xbf(h\xbe\xd9I\x08R\
+\xa1\x9d\x22m\x93\xe7*\xd2\x9f\xcf\xab\xa8\xcc\x8aLY\
+\xee3\xa2p\x1b\xe6\xba\xe6\xd3\xa2\xb5w\xc5oJ\xc7\
+?L\x1e\xcd\xd8k6J\xf1\xee\xd2\x09l\xde\xa8(\
+\xaf\x01\x80\xfcV\x91\xae\xdb\xd2\x8aL\xadOQ\xae\xff\
+`\xa7n?b,'\x8d\x81\xa0D\x1a\x08FKO\
+b.\x87\x89\xec1\xf1\xa1n?\x08\x0a\xf2|N\x94\
+m\xe2Ha\x19\x09\x22SC\xae\xb2\x19\xe8y\x0a\x8f\
+\x87L\xd7i\xb8\x99\xa20Y\x86\xf7(J\x1e\xd1|\
+Y\x91\xfe\xfc8E\xfaz=E\x19\xb3*^\x86\x98\
+\x19Q\x98\xdf\xa9\xa8\x12;\xf2#?'\xed\x19\x8a\x02\
+\xb8\x04S\xd2\xae\xfa\x93\xfd\x15\x05\x08\x98y\x85\xa2\x9a\
+fb\xe6K\xb8G3\x1et\xc3n\xfc!\xe7\xf9d\
+K\xbb\x89\xfb\xb9\x8b\x82~\xaf\xceU\xbe\xddPQ\x0a\
+\xb4\x0c$\xa5\xfd\xbb}\xbf\x22\xbd\xae\x9eb\xb5\x8ab\
+\x8f\x04\x12\x13a\xc68\xee\xa8\xa8\xcc\xb1\xcc\x00\xcc\xf3\
+\xe9g\xa9\x0a\xc9\x1b](|\xb6\xa3\xbc\xa7O\xdf\xcd\
+#\x7f\xb0\xcbk0c\x0b\x0f\xa9\xe9\x1dC+\x15\xf5\
+\xb9\x13*\xd8>\x03\xf7\xec7\xd3\x14e\x1f\xcb\xcc\x88\
+\xd5\xdc\x99\xfcSit\x00$\x8e\xffKa\x09\xd9\x0d\
+E\x92\x9aO\xd7[\x8aI[P\xa9O\xceO`\xc9\
+\x1b1\x1b\xa3@D\xdb\x8b\x04\xcb\x92\x84`>\xe1\xad\
+\xb5\xb1\xa5?O(\xaa|\x8ds\xc3\xc0\x05f\xacx\
+S\xe0-\x13\xf9\x09\x0c\x193u\xa3\xb0\xb0+}t\
+d\xd1nS\x888\x8f\xe0\xf7\x87T\x01\xa9\xc5\xca\x8a\
+\xc2h\x9b|WQM\x058^Q\xf6\xd7,5y\
+\xc4\xa6\x8d\xe9ynWRTS\x11\x00\x8a\x1eL\xf1\
+O{\x87\xccSy(X\xfa\x06\x13\x8c<%\xe6\x98\
+\xfb\xbc\x0f\xcd3\x9dX\xf6y\xea\x06\x1a&t`1\
+\x7f%\xef\xc0\x84\x18\xef\x1b\x03\xcdq\xbe\xc1\x00\xe0<\
+\xf1\xdf\xa7r\xbd\x9343\x86\xf2\x18_\x0f\xa8\xf8\x06\
+n\xd9\x1f\x82y\xe6u\x13\xde\x11+**\x09\xd0i\
+]\xe3\xa6\xdf\x80\x0c\x13H\xcew\x0aR\xce\x01\x18\xb3\
+\xe4\xc9\xe4\xe3\x06\xa8b\xec\xddGm\xf6\xf7\x8d\xc9Q\
+\x92l\x07\x80\x02\xe0A\xa3\xc6\xf9m0\x89X\xcf\xaf\
+\xf14\xb73\x14\x15U\x9c\x86\xdd\x13=\xa60\xfb\x1b\
+\xaf\xe4\x1d\xfc\x07\xb3\x01 \xa3\xc7t\x89\xff\xa8o\xa0\
+\xec\xc30\x80\x99D\xe1O\x81\xdf\xff\xf9\xe4\xd30\x83\
+\x0d\x18\x07\xa3\x80\xe7\x19\xc9\xab\xf3\xc0\xb8\xeeL\xd5\xc1\
+\x84\x9c\x8e\xbd\xf3Q\xbc{\xa2\x90F\xaaI}\x03`\
+\xc6\xd4\x16~\x1f@\x05&\x844\xa8a8\xb0n{\
+ub\xdcg\x00D\x00\x17\xf2\xc0\x9b\x0c\x90\xdc\xde]\
+\x97\x90H\x00Hr\x9fx>\xd8\xa7(\xfc{\x12\xe3\
+Qv\xbb\xdf\xdf7\x1am\xcb\xbc\x95\xcb*\x9d<L\
+\x1c\xe8\xd8\x0b\xc7\xf8\x91\xb5\xf0\xdf/\xee\xfe\x91\xc8\x93\
+\xa8.\x99m\xe7\x8af\x1f\xe0\x00\xaa\x0e\xe6{$\xf0\
+|p\xcc\xe9\x18\xbb\xc2\xfcQ\x12)\x0a\x5c:{P\
++)H\xe9\xe8R\xe8Q0P\xd8\xf1\xf3y\xd0\xb8\
+p\x14\xf6\xaf\xb7\xa9\x1f\x7fN\x87\x9aB\x013%\x7f\
+\xce\xa0\xbc\xf7)\xd8\xdc\xd8~\xa7\x9fW\x10N\x0a\xef\
+u\x9c\xd8ob\x93\xbb\x0d\xfc\xefV\xf4A\xf0\x16k\
+n\xea\x84t\xed*!\x22\xb1\xc4\x1d\x94\x82\x16m\xfe\
+\xd2\xfe\xbdt\x22q\xf9\xa7s\x86\xe6\x87\x0e&\x9d\x7f\
+\x0ay\x16>\x1b,\x1b\x00\x0b\x8b\xf5b7\xe3\xf0\x14\
+\xe0\x01\xe7\xfb\xd8\xc8y\x00\xf8\x9a\xc2\x94\xdfC\x81\xca\
+F\xc1\xd7}\x13\x0f\x00\x01\xfe\x9c\xfb\xc5\x06\xca\x86\xc1\
+\xe7\xe1`\xa5PG\xba\xf1Ak\xcfW2\x02\x07\x80\
+\xc4\xba\xa6\xc0\x7f\x93\x91\xe0\xe2}\xd0\x8d\xa5A2\x80\
+\xe4c\xf3\x00\x10:D\x95y\xa8\xee\xe8E!\xc7u\
+\x07x\x82R\x0ds\x86\xce\x82\x0f\x880\x9d\xb4y\x1d\
+\x14&Y\xda\xc8\xd4&\xae#\x9d\xf3~\xc1\xcf+\xd7\
+\x9d\xf7\xd7\x1fK\xc8\x7f~\x9f\x14h\xcc#\xa7C\x15\
+\x089\xff\x8eD\x07F\x00\xd7\xc9\x85<\x07ML1\
+\xb0\xdb~\x00]\x98\x8a\x9a\xc2\x89F\x981fA\x89\
+c\x0c\x13H:\xf3\x98\xd1\xc43v\x87\xce\x5c\xdf\xac\
+\x85\xc4\x81\xfd\x84\xbf\x87i\xc4|k\xdc\xf2a\x02P\
+\xf0\xa3I\x07xt\xe7\x80\xc4<\x12W{\x17\x04\xa3\
+\x03\xf3>L\x00a\xee@\xb1f\x7f0\x90\x81\x0bu\
+\x98\xd0\xb1\xa1s\xa0\xf2\x1ca\x82\xc3\x7f~\x8e&\x07\
+M\xbe89\xa8blaV\x86\x07\x04\xe6\xa7$\x98\
+\x9bg\xd1Ky\x9e\xaci\x9b|{\xf2\x9dl\xfa\x85\
+\xfb\xaf\x19\x04x\xa0\xc4xB\xb4\xd9\x06\x04\x9a}\x14\
+\x95\xa9\x9e5\xa5\xd1\xb9d\xcc\x17\xe7\x0e\x9f\xc3\xcc\x0c\
+\xc6&F'\xfd,Ee\xbe\x88I\x1e\x89\x8b\xe0\xac\
+\xd7d*\xfa\xf1\x99\x19 \xe6\xc7>\x95;\xba;Y\
+\xed\x9fS\xfc\xa5\x98\x9e\x0dnLqC\x01\xbc\xda?\
+(<Vl\x19\x03\xd0_,s\xb2syM\x07\xe2\
+13e\xb6.&y1W~\xd4\x99\xf3a\x92\x15\
+\xd4m:\xe8~~\xf0F\x08@\x1c\x97u\xaf\xcf\xf1\
+\xef\x14\x05\xa8\x18\xcePx\x5c\xdf_+\xc0\x17\xad<\
+\xe7&\xfb\xaf\xd7I\xd6\xda\xdf\xe8\x9f\xb3t9\x17c\
+*\x80:\xfc\xea\xd8\xef\x99b\x8f\xe2q\x10.\xf9t\
+\xc01\x0f\x9c\xee\xb1~\x96\xaa\xc5\xe7\xff^sb\x93\
+\x0a\x92\xe1\xfftT{\x98\x22\xcd\xe6\x8a\xd2A\x16\x81\
+\x5c\x14\xf2\xe8\x90\xb2\x9f\x9e9\xf8\x91\xa6\xf4\xc48P\
+\x98'<\xcf\xb8=\xbbC\x03\xc3g\xf2^\xcf\x157\
+s\x00\x80\xab\xb9_Q\x0a\xbe\xe1g\x15el\xde\xf0\
+W\x8aBm\xc63\xa09@\x91^_P\xa4\xd7\xed\
+\x14\x85\x0a\x1e\x00\x1a\xde\x1f\x00\xa3P\xbf\xbd\xaf1\xa7\
+\x1e\xa6\x13R\xaa\xe6_\x8aB!\x9f\xf9oEz?\
+K*\xd2\xf5\xd9T\x91\xbeo\x0dEz}X\x91\xfe\
+\xfe$E\x91\xa6DA`I\x12\x8c\xb1\x00\xfaI<\
+\x01\x98\xd1\xa8Z\xc3\x1d\xe6c\xfey\xcd\xcb\x8aR0\
+p\xff\xe8@\x8f?\xa4\xa8L\xa8^t#\x06\x89\x89\
+;\xfb0Hb\xbe\xfa[=%\x01\xa0\xf2\xca\x8e\xa1\
+\x18L\x1c'\xe2HW\xc2\x8c\xefS\x8at=~\xaf\
+\xb0\xf9\xdc]\xc5\x5c4\x98\xa3\xde?b]`\xfa\x0c\
+\xb5\x9a\x82\xcb\xfbD\xdeev\xf7\xf3\xf3\xda\x92\x0f7\
+k*\xd2\xcfy\xc1R\x1d\x12}3/&\xafS\x14\
+\xe9R\xfb\x94\xa2\x98\xbc5'(\xaa\xfc\x99\x82\x88B\
+\xc0\x05U\xb8\xc4#]\xa1@\xf7\xef\x0b\xc9\x04\xc0\x00\
+\xcf\xb3\xfa\xfb\x92P\xec\xa7(L\xd00\xe1\xa3\x10u\
+\xe1\x18n\xf60s]\x18\x06\x90LG\xd9y\x1a\xd3\
+e\x18\xf3\xdd~\xac\xfdx\xfb\xb1\xaa\xb11\xc8\x83c\
+K\xa7\xf4o\x8a\xf4}7)\xaa\xeb\xfdcK\x17\xce\
+1\x85\x9d\x86\x05\xd3\x05\x0c\xe0E\xfe\x8d7\x0e\x85_\
+\xcf,;L\xe00\xc5s>4\xf9\xb5\xa2\xca\x8b\xe9\
+\xbc\xfb\xbc\x0c\x8f1~\xbf\xaf\xe7d+\x9b+\xaef\
+\x93?\xf22{K\x05\x83\xd2\x1a\xfc\xf0\xfc:\xcdf\
+\xda\xac'\xf2,\xc6\x08n<\xd9h\xb2QaR\x06\
+\xe3\xcd\x92\xe9(\xd4\x00j\xc9{1\xb9\xe6\xe7!-\
+\x04\xd0G\xc2a`\x7fr\xca\xe4\xe4\xc9\xc9\x95\xb7\x83\
+\x99\x1d1\xed\xc3\xf5\x07\xd7m\xf2ZE\xc5\xb8\xc0\x94\
+\xd0^\x1a1e\x8b|\x90\xfb\xc0\xfb\xa1\xe1\x03#\x82\
+u\xdd/\xfc\xfb\x8d>^i\xdcY\xc2\x15@\x10\x8d\
+\x1b\xef\x8bQ\x80\x93\xaf\x22\xcd\xa5\xb1\x05s\xd2\x8c\xd9\
+\x00\x80\xe8\xc8\xf3\xef\x90~\x93?\xdb[(\x0ad\xd7\
+\x09\xec/\xe1\xb1\xc3}\xe1\xe7P\xcfQW\xf0\xca}\
+\xeb\xbdF\x81\x0e@G]\xc5z!\x8f\xe3\xdf\xf5\x81\
+\x00\xea[\xa6\xf4\xc8\x13\xe7\xc7\x15\x00\x84\x04\xdf^v\
+\xe4\x89\xc1\x08\xb0\x07T\x5c_<\x89\x0c\xc8\x8d\x22\xc1\
+\xa3\x13\xc7\x0d\xa6\x90\x05\xd9\xa1CHB\xdf\xe4\x92\xab\
+\xa3\xfc\xd4TU-\xdb\xf5}`\xaf_\x15 \xfe~\
+\x0e\xa0\xa0\xa2\xd3\xf9\x84\xc2\x8d\xe9\x1a\x14^\x1e|\xb4\
+\xcat`1;\x00\x19\x01)\x041\xe1k\x0al\x8f\
+\x11\x8bB\xaa\xef\xce\xce\xe7\x9d\xe9\xcf\xcfu\xc0t\x0c\
+m2\x0b\x05\x8d'\x9aj\x90Dn\x1c\x0fH\xff\xc1\
+ A\xe3\xc1\x01a\x03\x00\xa10]\xc7\x1d[\x17\xfc\
+!a\xe0:-\xef\xcfIa\x05\xd0\x01u\x84B\x0c\
+D\xf1)\xdf\x1f\xa8)w\xb9\xc3\xe8\xc2\x1a7\xca\x18\
+\x87\x06\x80CaHg\xd9\xdaf\xc6\xac\xc5\x83\xc1\x83\
+\xc0\xef[\xd0n\xd8\xac+\x16:\x0b\xbfO\xed\x070\
+\xe9\x9bs\xf0}\xdc\x97\xa1\xbf\x1fO\x036\x18\x0a\xfb\
+\x85\xbd\x1e\xe6\xf2\xfb\x00\x08\x80\x19\xc1\x7fs\xf4\xfe=\
+\xaf\xb3\x18\xd8\xa0\xb0\x02\x00\xc0|g9w\xec\xe9T\
+\xf7=\x1b\xb8\x9f\xdc\xdf\x15z\xe3\x15\x01n\xf8{\xd6\
++\x07\x96\x0b\x84p\xf7\x849\x80+6T}\xc6\xa6\
+0\xff\x93\xc2\x1f\xa4\xb7gZ\x17\xef\x97\xdf\xcf\xfb\xe2\
+\xfdr\xfd\x00\x84\x00\x8ex\x7f\xac\xab\xbe\xab.f6\
+\x1bu\x07\x1d\x1a\xc9\xa0Tq\x1d1\x83\xa3\x90ub\
+\x18\x1b\x19\xa6H\xb8\xddC\xf9\xf3\xfbE\x0b\x1c\x1d|\
+:\x9a\x98\xc4Y\xe3\x97\xa9\xdbr\xe5o\xbb\xb9\xe2\x00\
+$\xaf\x02\x98\x98\xe7ji\xcddyEe\xe6\x87\xb9\
+\xd2cUg\xfd\xc5B\xa5\x8e\xeb\xc2\xfa\x02\xd8\xe1`\
+\x82Z\x0f\x03\x02F\x01\x1e\x1a6Q\x0bm\xd8Q\x1d\
+r/%\xaf\xb4\xbcQ\xb8\xb9\xd3\x83\x99jh\xf9\xbf\
+o\x84\xbf\xb83\xbf\xf2\xf9\xe6yD\x1bf\xd7\xfa\xc9\
+\xdb\xa4\xba.\xa6]1\xfd\x00\x00\xcc\xeb w\x1c7\
+\xb4\xeb\x7f*\xa8\xda\x0dRl\xe8\xc4~\xb6\x8a\x0a\x07\
+p\x80K>\xe3\xea\xd6\xf4\xd8\xc6\x8d\xbb\xf5\x9a\x0b\xc9\
+=\x0bP\xcb:n6ST\x0c.wTb\xec+\
+\x09\x12\x1e\x15\x8cg\xb5\xe7Fh\xddm\x92\x94\xef\xfb\
+\xd8&\x8e\xb7T\xd3\x14\xe8\xb0\xb9cI\x01\xd9n\xa5\
+H\xaf\x8f\xa4\xf8W\x01b\xe8d\xe7\xe3\xf3\xbaR(\
+\x0d\x16\x11\xd9\xd9\x8c\xa1\x8d*\xb3,\xe6Y\x8b\xd1\xb3\
+\x5c\xd9o&CE\xeeXfs0\xb4\xa0\xb1\x8e9\
+\x8f\xd8\xf7\x9d\x80\xf1>Sr\x99M\xfd\xda\xf5\xba9\
+\xef\x83];\x93\xd3\xf6^E\xfa\xbe\xcf(\x0a`F\
+a\x8d\x869\xa4@\xcc\xe5f\x5c\xaa\x13\x8a\xdc\xd9\xdf\
+\xa8$:\xc1\xbc\x10E\xfe\xf0B\xedmNUT\xde\
+\x1f\xf6\xb0hno\xeeh\x04\x00\xcc\xae(\xc0\x09\x89\
+g\x8c\x13\xfe\xa1\xa2h\xec\x87\xcb(J\x22\xdb\xbc_\
+QIY\xe8`\xba\x83\xd7\x9c\xa2\xa8\xbc\x17\xfc\x9c\xc6\
+\xf89S\x9cI\xe8BZdm}P\xfb\x9fP\x94\
+\xfd\xa9\xf9\x9b\xa2\x98\xee5\x87(\xca+\xcf\x0d\xeb\x1d\
+\xd3<\xb4\xa61udAE\xfawW**\x8d8\
+c7]H\x02xN\x16QTTSk\xa5c\xda\
+\x01S&\xfc9\xf1*@\x03\x0eu\x99}a\xe6\xe7\
+\x14e=\xc4\xf3\x81W\x0f\xccF$V\xad\xcfC\x00\
+H\xcc\x98\x17L\xb1P5\x17\x9d\xf1ytL\xe9\x80\
+\xc1L\xa3\x01\xf0\x90\xa7\xbax,)\xa6\x834\x0aB\
+{\x8a9\x16\x9eP\xbe~\xed\xdf\x14\xe9uKEa\
+^\xc5\xb8h7,&S\x96\x14\x90g\x01h\x0cr\
+)\x1a\x8c\x0b\x98V\xf1\xbe\xc5K\xbb\xbfj\xf8\x00\xf0\
+\xfeV\x91~\xee2)\x96\xad:\x80\xaf\xcfv\xca\x92\
+\xcc<'\xc9L\x98\xd7Q\xc8\xd3Yw\xc7\xbc\xbdE\
+Q\xbcM\xa2c\xcc4%3\x9f&\xdb)*\xa6\x18\
+\x00\x00\xfb\x81\xa7M\x91\x17\xb7\x07)\xd2\xeb\x07\x14\x06\
+\x22\x97\xae\x12\xfe\x05\x14\x15\xe3B\x05SZ\xc7\xed\xd7\
+R\x1cQ\xf2\xe0\xf6\x9e\x14\x7f/yJ\x98\xb9q\x1d\
+\xc9\x1b|\x8er\x9eG\x03l67\xf8\x0c\x5c\x847\
+\x90\xcd\xe4\x02\x800 \x1f\x85$\xe7?f{\xe4=\
+\xef6\xc3\x0f\xad>@\x15\x85\x1ay%\xeb\x96\xf3\x9b\
+\xbc\x82\xbc\x8c<\xdb\xf9\x12\xe6\xb5q.2\xae\x17\xe6\
+/\x051\x9av:\xe5th\xf1\xbc@C\xcd\x14\x05\
+\xea\x03:\xe6\xe4e\x17\xba\xe3K\x81\xcc\xe7\xa4qs\
+\xb0\xa7\x09aR\xea\xf1\x8eQ/!\xbd\xc5\xfb\x82s\
+\x95\xba\x81|\xdau\x10\x05;\xd4}\xc6\x1f\x07\xf3\xc4\
+L\xc3\x00\xa6\xec\x0d\x14\x0c1\xea\x22L\xc0W\xef\xd6\
+Y\x98f\x02l\xe15@\xc3\x06\x86\x0f\x80\x08\xd4|\
+\xea'\x1a(\xd4\x0b4\xcc\x5c\x87p\xee\x87\x06\x1e\xa0\
+\x09\x09&\x8ch\xf2\x16\x00\x82u=6\x9c\xcf\xcfT\
+\x00\xf2.\xdeG\xcf|=\x1aq\xbe/\xc1(\xa0\xf1\
+\xc3\xfb\x06\x08e_c_p\xfe\x19\xf7\x1fIB\xdf\
+\xec\x9e\xfc\x84\xffx\x9e\xa8\xc7h\x18\xd3\xf8\xc1,\x10\
+\xe6\xa9v\xa5\x19\xf9\xf7?\x90\x7f\x7f\xdd\xa9\x7f\xa6j\
+\xbc\xc0h`,\x22\xcc\x08\xeaS\xcc\x9e\x01,\x5c\x1f\
+L\xbe\xaf\xa8<\x87\x18Si\xe0m\x84V wj\
+W\xf5Bo\xab\xb1\x1aN|\xa33\xc6\x85\xf7\x0d\xcb\
+\x08\xdb\xb6\xde`\xef\xab:\xf8kd\xbf\xfcR`\xf4\
+\x0b\x0d6\x02\x0a\x12\x90\x1f\x0a\x7f\xa8+\xb8c\x92\xf0\
+Sx\xd2\xc9\xe7\xf7\x01L\xb0\xf0\xd0\xdc\xb3\x80\xe8\xf4\
+QX\xd1a\xeb\x99\x07\xa5\xc3\x91\x07\xaf;X\xb8\xd0\
+\x98nPP\xf1\x1f\x00\x0a\x85,\x0f\x00\xef\x87B\x81\
+\x02\x91\xdf\xc3\x02\xc7dl\x0dS\xec\xfa\xd4\x9f\xbe\xa6\
+~\x0e?h\x13\xff~6\x92\x7fx\x01\xdf\xec\x84\x1f\
+\xa0\x02S\x0c\xde\xc7\x22v\x95\x7f\xad\x01\x947\x1ax\
+\xf0\xf5\xe0\x01\x1b\xbc\xc3\xd7\x8d\x0d\x08\x00\x03\x97o\x0e\
+\xae\xb7\xfa\xf7\xd3\xd9/\xd4\xffW\x02)\xbcr\xbd\xd8\
+\xe0y \xd9\xd8y\x808x\x00\x00^r\xa2\xc1\xe7\
+\x1e\xf5\xa8Qe\xdaB\x87\xacs\xfd\xfa\x1dR\x80\x80\
+\x9e\x16\xe9Uc\xff^\xf0\xab\xa5\x13\x01P\xcc\xdbC\
+2\xd9\xa8\x01\xc8x\xe5~q\xbf\x19\xcfg\xd3\x93(\
+\xa49\xc8(\xa8\xfb\xae\xa5\x00^\xb8\xee\x03\x841\x96\
+\xd2cV\x02\x08\x80Y\x00\xd2\x8c\xb4\x01\xd7z$,\
+P\xaf\xe9\xa41\x0e\x13I\x02.\xb3t\xbaI\xd8\xa0\
+\xa2\xda%?\xc6*!90\xf5\x99\x04#\xb4\xfd\x1c\
+\x9c0\x88\xd0Nq\x1d\xb9\xee~\xeesGgs\x9b\
+\x10I\xab\xebi%\x99\xb9\xddV\x1d~#\xac\xe1\x8e\
+\x0b\x80\x84\xc4\x07f\x85\x11\x7f\x5c\xf5\xc3k\xc1s\x88\
+9\x18\xd1p\xc7\xbe\xc2\xfeCg\xca\x94\xf6\xc1q\x83\
+c\xd5YN\x9f\xfa\x8c\x8c\xac\x9a\xf2\x8f\xa9R$\x08\
+\xcc\x03f~\xbb\xcd\xb5x\xdft\xa2\xb9_\xcd:\x8a\
+\x94\xef\xdc\xa1\x09\xd5Y\xbb\xdcu\x84\x01\xb6\x18;\x88\
+y\x18@\x87\x7f.\x94\xf4@\xf0y.9X\xd6J\
+\x9fr\xad\xb2O\xb5\xd7\xa4\xb8\xbaP\x9b\xdb\xf7),\
+YZ\xd0\xebr\xe1bR\xd9\x1c\xaf(\x9aX\x12\xfe\
+X\xcf\xecG>\x981y\xcc\x09\xf62e\xac\x1f\xeb\
+\x1a\xe6\x0a\xe6jq\xbe \x15\xe2\x9c`\xbd@}\x05\
+01\xa5\x1d\x8akx'\xb8\xa3\x94\x7f\xdf\x89\xa6\xb6\
+\xff\xd0\x05\xd0\xbf\x0c$\xec\x9f~\xdd\xad)$i\x98\
+\x91\xe2\xbe<^5E\xe9Dg&\xce\xba\x150\xe4\
+D=\xb4\xff\x1a\x9f\xf8L\xc5D\xb0\x17F.\xa4\x16\
+\xacL\x1dM\xedF*\x11\xe6\x96HKp\xb3\xc6$\
+\xd7\x8c\x96f?\xb9\xe9\x14\xb3\xbe\xe80\x03\x04\x014\
+\x01\xe8aV\xb9\xe1`\x83\x0c\xe0\xb8c\xaf>z\xee\
+\xa4\x03\xec\xcd\x9bw\xb2\x0e\x08PG\xe2\xe8\x14\xdf,\
+\x9d\xef\xdci_\xb2tn\x07\x07+J\xc1\xa4\xbek\
+\xeeX:\xb1c\x0a\x00\x05\x13T\xd9fWEz\xfd\
+\xa4\xa2h\xefa,\xb4\xdb+\xaas\x9f\x8e9\xc0\xbf\
+%\x13\x8c\xd9k\xceTT\xd35\x18\xab\xb6\xba\xa2\x92\
+.-\xdf\x8d\xed\x8a\x0e=\x1d{\xdc\xd3/S\xa4?\
+_]a\xa6\xc8\xf1\x95\x96\x9b\xf3\x84\x0e\xa1\x81\x9c\xa0\
+\xa0{z\x01\xe7\xd3\xf8\xb7\x8a\x8a1p\x81\x22\xbd\xbe\
+CQQT}\xdf\xc2\x8c\xcf\x80\x02R\x05\xa6*\xcd\
+\xbcM\x91\xfe~\x07E\xa5\xa1w\xe7\x1d\xe6NL3\
+\xf1>\x1e\xe3\xc7\xccHd\x9c$\xda\xf2\xe6\xf5\x8a\x0c\
+\x84d\xd3\xca\xf6<E5\x85E\x1eG?\xa9LN\
+\xfb\xee\xd6\x9c\x9b\xeco4$8\xbf\xed\x99\x14\x9e\x13\
+\xa6\xf6\xb7'*\xd2}\xff\xae\xa2*P|~P\xf0\
+\x02\xf0a\xd2\x8a\x09X\xbb\x80\xc7\xd6\x01$p\x9f\x91\
+\xa8\xc8\xa3aQ{\xb8\xac\xec\x0e\xe7\xeb\x0a\xd5\xbe]\
+KQ\x01\x06\xe4G.H0\x19\x8d|\xc3f\x88H\
+S\x82\x99\x02U\x9c\xb1\x85HH\xe9\xec\x01\xb0\xb1\xcf\
+y\x9f\x8d\x82\xdb\x9e;\x14\x5c4v(\xa8\x19\xe3\xd6\
+\x9e\xafH\xeb\xea\xbe\xf1\xbd\xe3\xfb\x8a$\x09s\xd8\xf6\
+;\x0aO\x17\xf8BE\xd9\x97\x87\xc6\xe1\xe5<\xcf\x1d\
+\xedU-U8\xba\x14\x08\xcd\xb6\x8a\xc2\xbcC\x12\x01\
+0\x15\xd3\x8d\x00<\xde\x96\xe7E\x95\xfb\xf3\x8dN\x8a\
+\x14R,\x1a{\x5cG:\xd6\x7f\xb4\x14\x87\xfc~\xff\
+\xee\xdfG\x1e\x00 e\xef\x9a\xa9\x0b\xcc\x80\x03\x881\
+\x10\x18.\xe6\xf66\xc8@\xec\x22\x05\x18\x88\xf5\x89\x04\
+\x0bSf\x1ak\x98\xc9\x9e\xa9\xc8\xf5HW'\xc0\x98\
+\xa5\xb0\x05\xa0\x22\x1f\xa10t>\x84\xb7MP\xcd=\
+f3\x80\x7f\xf2.\xbc\xa5\x98w\x8f\x97\x87\x99\x22\x91\
+\x871\x1d\x00\x86\x87\xcd*1k\xe4sb\x96\x0d3\
+ $SH\x08\x0d\x94\x85\xe4\xe4K\x8ab\x1eM!\
+\x18\x8d\x16k\xe7\xc3\x83\xe1\xa8\xa9#\xf344L \
+y\xff4\xec\xa8\x83\xb8oH\x11\xe8\xa0\x03\xd0`\xf6\
+\x89\x04\x87i\x024\xb8\x5c\x98GG\x9a\xc6\x1af\xd0\
+4J0Q\x06 \xc0\xd3\x82\xfa\xa8\x9fo\x03\x04\xc1\
+X\xa0n\xa2`'\x8f\xa0\xee#O\xa4\x1e\xa1\xa0\x07\
+\xc80s7$F0\x11\xa8\x83\xf9y0\xd50\xe9\
+\xe3}S\x07\x22\x89\x05h\xf0ud\x5cg0\x03\xa8\
+?h\x98r]\xf5\xa7wW\x8c!\xa6\x11\xf1{\x18\
+7\xca\xfebF]\x8cE\xf6>\xcbt\x88Xw\xbe\
+\xce\xa3\x8c\x8c\xdcS\xe6\xb7\x86\xab\xb7<\xb3\x8f\xad\x0a\
+\x11\x95\xc9\x8b:\x91|\xaeJ\xdc\xa1\xc6\xd0\xc1\xa0P\
+\xa4\x10'\x91C\x8bM\xe7\x9e\x7f\xc7\x0d\xa6\xc3\xa8~\
+}MA\x86\xf2\xc1\x03\xdf\xef\xa8R\xd8\xf2>\xf9y\
+\xfc=7\x9c\xef\xe3\xe7\xe1\x9a\xbf\xa6)\xddl\xe0\x14\
+\x9e\xbco\x0e\xe6\xda\x13\xe1\xdc\xde\xdc\xd8\xa7+\xea\xc9\
+\xcb\xd1\xa9\xee\x12Y\x90H\xa8\xe6NL2\xd1\xec\xb5\
+\xd5\xe7^\xc6\xef\x97\xc2\x83\xf9\xf6H\x0d\xf8},\xec\
+\xff\xf8\xc1\x04\xe1\xba\xaf\xd3\x9cE\x018\xf6\x03\xb9\xb5\
+M\xde\xa0\xe2c~G\xc2Na\xc1\x03\xcc\x01\xf8\xb4\
+\x13\xb0\xa7{\x05>\x9d:>\xdf*=\x93\xb6b\xe6\
+\xd7\xbd\xf25\x0b\xb8h\xb9\xbaB\x9c\xdf\xc7\xc2\x07\x10\
+\x80\xe2\x86\xa9\xc53\x1d\x92\x19\x9dm\x10W\x1e0\x1e\
+t\x0ex\xee\x03\xbf\xb7\xff>\xf8\xbcl\x00\x14H$\
+\x9e\xcf\x86iFw\x9d\xd9\x08\x01\x06\xf8\xf9\xfc\x1c>\
+\x17?\x1f\xc0\x81\xaf\xf9\x0f@\x82\xe7\xa4\x0f\xb0 \xad\
+\x00\xc0\x00H\xe0s\xb1\x01\x02\x14\x00\xac\x01D\xb0\xde\
+\xfa\x7f\xbf\xd4+%\x0b!\xf9\xe0\xc0b\xdd\xf1\xef\xf8\
+\x9a\x8d\x1b\xa0\x00i\x0d\x00\xc2}\x8ar0\xe0v\x1d\
+\xc8\xbe\x9f\x9b\x002l\x96\x15T:\x98'\x98e\xf9\
+\x00\x8b\xa9\x05\x1e\xb7\x16\xda\xd0U:\xea(\x9d\xbd\xb8\
+\x9e|~\xdc\xecAFm\xf6\x12\xd4X\xcc\x07\x91\x0e\
+x|]\x00\x09\x14\x9a\xac/:n \xb1hZ\xd5\
+\x17\xbe\xb6P!\xb3\xeb\xf2\xfe\x15\xf5\x8a\x84V\x85\xd7\
+\x99\xe5\x00@s\x1f?\xc7c\xa0\x06\xe7)*\xf38\
+\xaf\xb3\xf6BE\xd5\xe9E\x82\xc2\xfdD\x22\xe51\xa8\
+\x81\xa4\xb3\xde\x19{Y\x98:\xa3<\xa5\xc3\x9dn\x0a\
+\xe8\xdc\x079\xc5\x12\x00\x01.+)\x8a\xa6\x1e-\xf4\
+\xe0\x81\x14\xf7\x97)1\xaf\xf2\x1e\x99a\xea\xdd3N\
+ \xcd\xdch\x97S\x14\xd7\xee\xe6\xb3\x8a\xd2q\x0e\x93\
+\x1cL\x80\x8e\xcbQ\xc6qB\xf5\xb3\xf4\x84\xceS\xbb\
+\x9e\xa2\xeaXz\xbdD\xa1\xc7z\x13\xfct\xbd\x13\xb5\
+OV\x80\x0e\xae\xec\x14P\x9e\xff\x1e\x07\xf5\xe1\x0a\x9b\
+#}\xbd\xa2\xe0\x22\xf1Y/\xdb\x7fv\x05\xe2\xa8J\
+\x80\x90j`\x12\x86D\xed\x04kt\xd9g\x163\xe3\
+\x02\x13C\x03:!q\xb0\xc9]3\x9b\xdd\xeb\xcf\xe8\
+\xa6\x094'\x9b\xe9\x82\xf4\x86y\xdcL\xb30\xc3\x82\
+\xf3\xbcYQa\xd3\xc3O\xa7\xaf\xf3\x7f\xe9\xefwO\
+\xb1[\xe5b\xedy\xde\xd9\x04\xf0m\xd5\xfd\xb7\xe6}\
+\xb0c\x078\xe2\xd6\x1f@\x94\x13b4\xed\xc3\xb5\x14\
+\xe9\xeb\x0d\x9a\xf5\x1bi\xeb\xd7TT\xe6\x80^O\x00\
+\x83\x01,\xed\xac\xa8\xccM\xe9\x90\xc34\x01\x18\xf9\xb3\
+\xa2\xa2\x9e\xdb\xbc\x91\x840\x183\xce7\x9as\x14\x15\
+\xa0\xe1\xbfo\xeeU\x94\xf1\xb2\xd1\x01\xa4 `_'\
+\xf1\xa3\xf3\x8b\xb6\x93\xc4\xce\xf7\xb9\xddIQ\xbc\x08\xda\
+\xe5\x15\xe9u1E\xa5\xa5\xf6\xb4\xa1<\xaf~F\xa1\
+j\xb7\x07+\xaa\x7f7R\x94N0\xdaw\xb4\xed\xe4\
+5\x937*\xaa\xb9\xe3\xben1.\x8fB\x06\xe9\xc1\
+\xb6\x1d5zp\xd1\xe0\x97\x83_V&\x86\xf2\x82\xb8\
+\xbcH\x9ab\x8c\x18f~0\xcf|\xfe\xe1\xfd\xc0\xb9\
+\x8c\x09h\x00u.\x000\x95\x0d`\xd6\xe7v\x14\x98\
+\x00\xe5tf\xdd\xc9\x9f\xac\xa9H\x9f\xff\x08\xf5\xb4\xf3\
+\xcf\xeb:\x93\xee\xe42\xa6:\xcc\xcbV\xcb\x10D\x97\
+o\xce_\x9d\x7f\xe4'\xbd\xe9-1]\x0a\x00\x033\
+:\x03\x0d\xd1\xd1\xe7\xfcGZ\x81)\xae\xf7=\x9e\xf7\
+\xd8\xdf\xe9\xb4Y\xd2A\x811\xf9\xb8\xa2\x00\xd3\x93\xb1\
+\xa2xH\x85y\xde\xb9\x8a2\xf6\xb1=]Q\xfe>\
+\x00{3\x9fb\xae\xbb\x0a\xcd53\xa5}+I\x91\
+8\xc7\xc2\xb3\xe3\xa3\x8a\x8a\x19\xb0\xa6\xa2\x9a\x22CA\
+\xfeh\xca\xbe\x1e\x5cg_I\x00\x00 \x00IDA\
+T5\xf3\xf5'\x95\xcb<\xf9\x02\x9eB\x14\x82h\xa8\
+\x97\xb0\x94\xc3\xf9\x18\xd3\xb3Ry\xdby:\x90\x0f1\
+e\x82\xba\xc0\x80\x5c*B\xbb\xeb\xcb\xef\xe3<X\xce\
+\xf9=\x8c\x00\xce5:\xccH\x00\xc9\x7f` \xd0\xa8\
+<\xad\x1b\x879\xd8\xb8\x93\xbe\xc5s\xcd:\xf5\xf3\x18\
+\x0c\x04\x98p~.\xc2<\xce\xd7\x13@&\xa8\xde\xbe\
+\xefq^\xd0x\x81j\xceu\x9a\xbd\xcb\xe74\xfbD\
+L\xbc0q\xe3\x1cu\x1e\xc3\xfe\xc7s\x1d\xd267\
+\x8c\x00\x8a\x00t\x82\xf2\x8fw\x17\x14x\x1aK\xdcW\
+\x0a_\xea\x09\x00\xbe='_\xd0\x98\xca<^x\xce\
+\xaa\xe3M~\xe5\xfa&$$\x98Xr\x1d\xfb\x12\x08\
+\xf2X\xeaD\x98\xcf\xe4\xb9\xdc'\x18p\xe4-\x98\x11\
+\xdb4\x16\x8f\x8bx?\xe4\xbf<\xd7\xe4\x95f\xda\x04\
+\x05\x9e\xdf\x83\x14\x0ef\x0bR#\xea\x0d\x98\x08\xec?\
+}&\x03.\xfc\xae\xab\xc2;\x00\x06\x0f\xf5\x0b\xd3i\
+\x18Oh\xb3\xcd\xa8+\x00\xb4`\xbczJK\x865\
+.\xf1\xcfy\xfe\x15\xf5WWw\xf5\xa5\x17\x000\xd4\
+\x8d\x98 \x225\xe6ss?\xd8\xaf\xc9Kix\x1b\
+\xd0\x1aMvQ\x14\xcdK\xd6\xfa\xec^u2LI\
+\x0d\xa4l\xf1Lr)\x09\xe8\x9c\x99\x8c].\xe8K\
+\xb9\xf7[\x16\x007\x8c\x02\x86W\x16\x06\x9d}\x0a\x12\
+#\xfa\xf1\xef\xf9@}S?\x16\x10_\xf3\xc1\x98c\
+\xcd\xd8\x0f\x0et\x0a=\x17\x96\x93g\x15\xb9\xf3\xd0u\
+D@\xb2a\x16p\xb0\xa3\x8d\xc24L\x1b\xebV\x85\
+\xd219[QQ\xa7)\xf0y\x00y\xf0f\x8f\xce\
+}\xf7\xc0\xf0\xbe\xded\xc0\x82\xeb\xd9\xef\x08;A\x8c\
+\xc2\x8c\x8e=Z~\x104\x0a|\x90y\x1ep#\xa0\
+1~\x0c\xed\x16\x00\xc7\xe2\x06\x04\xec\xee\x1f\x05)\xf7\
+\x09\xaa=\xef\x1f\x0d\x1ff\x82\x98\xe1Q\xf0\xd2)\xe7\
+\xdf\x83\xd0Q\xa0\xb1\x1e^o\xc4n\x09\x7f\x1e\xbe\x8f\
+B\xa5?\x97\x13\x00\x82?\x7f\xd2\x1b&\x89\x19\xff\xcd\
+\xfd\xbfP\xff\xfb\x1e\x06\xfc\x1e4e\xee4\xbcj\xca\
+B\xef\x01\x7f\x15C\x80?\xef\x9b\x1e\xf2u_\xeb\xc3\
+s\xd2\x9bw\x1a\xc0\x07\xaf\x1c\x08$&P\x8d\x00\x9a\
+\xd8\x18\xf8\xfe\xfe\xef\xe1\xef\xd1\xd4\xf3{z\xde\x19\xf1\
+\x9c\xf1~\xfb&\x81\xdc\xb7\xbe\x07\x02\xc0\x1a\x1a%p\
+\x0e'\xceA\xc1\xe5\x00d\x9a\x05ce\xf0\x00\xa1C\
+\x0c5\x0e\xb7o\x17\xb4A\xc1\xf2}\x9d\xec5\xd9[\
+\xe3x&\xcbv\x94\xcdH\x1c\xa0\x222n\xc7\xeb0\
+\xcc\x06\xd1\x9abr\xc4\x86\xed\xc216|\xb4\xe7v\
+\xa7\x86rIB\x17\x1ay\xe6V3\x9e\x09S'#\
+\xd1\xe1\xf2\x0e\xe3\xe8\xc8\x1c\x058yNQi\xae=\
+]\x04\xad*\x05UP\xf3\xf16\xc1\xbb\x83\xe7\x01\xa0\
+\x8fi\x03x\x1e\xf8\x00\x1d\xccjJ\xfe\xb4\xc1(\x9b\
+\xec\x91\xa80\x17\xde\x9d]:\xb5HI\xd8'r\xa7\
+h\x9b\xe2\x19\x10\xfb$\xee\xbf_\xf1\x18:\xae\x1f\x8c\
+\x09\x9e;\x90{\xdc\xa4\xafPT\x00\xa4\x0f\xa2\xdc\x81\
+\x9fQi\x11A\xc4]0\xc5\x81\xcf\xb8'Lv|\
+\xd06?P\x94N#Z\xfe\xc9;\x14\xf6\x10x\xb0\
+\x92rq~0e\xe6\xafS\x1d\xb5\xf0\x92\xa9<%\
+\x01\xd7\xf80\x91S\x82\xbbs\xa5\x0dU\x9a\xb5\x89\xa9\
+\xd8\x87T\x1d.\xa4-P\x919G\xed\x92\x9e\x19\x03\
+\xcf\x16S::b1\x9f\x9dqD\xab\xfa~\xb3n\
+\x963p\x87\xb6\xda\x0c\x1c\xa4\x0dxN@%\x0f\xb3\
+\xaaCR\xa1+\xc0e\x98\x22\xed\xcf\xc3\x1b\x15\x1e\xcf\
+\xb7U\x05|\xd8S\x03\xaa?&yPg\x03H\xb8\
+\xad+\xbc\xa3\xb3\xbc\x8a\xa2\xd2\xe6C\xf9\xdf\xdd\x0c\x0a\
+<!\xdc\x99nvW\x94u\xc6\xf8\xc4\xe1\xfb\x15\xd5\
+\x5c\xf4\xab\x15\x95\x19\xe8\x1f\x14\xd5\xfe\xc0:\xa6\xe3m\
+\xe0'\xbc\x0c\x0c\xa8`v\xc8\xfb\x0c\xf3>(\xfe$\
+Pxop\xdes\xfeR8?\x1f\x8c\xb0W\x9a\xec\
+\xb2\x8e\x98\xb6\x03u\x9d\x82\xca\xcf\xfbd3E\x95g\
+y\x1c\xd7\xf8\x1cE\xa1\x86\xb7\xf7+*\xf7}M\xd1\
+\x10\x05<#C\xe9\xf5\x9d\x9d\x14\x04 \xac\xfd\x9d\xa2\
+\xd2\xf6\xda\x1c6\x5c\xcc1U\x84i\x08\x13k7\x9b\
+\xa3\xad\xe3\xe7Y\x9e\xe1\x97V\x9du<L\x04\x0c\x1d\
+Q\x80:\x98\x18\x01\x18\x19@m\x8eQ\x94\x82\xaa]\
+_\xa2\xa1\xf4\xe7oWT\x1df\x0a\x9f\x07\x15\x15\xb3\
+\xe8rE\x19#\x18\xf9\x1b\xd4\xe9E&\x0bO4\x1e\
+s\xc7\x14;\x94\xf5A',:\xf2\xb8\xde{J\xcd\
+\xe4\x00EU\x88\xbb\xf0\x8d\xa99t\xe0\xb4\xdb\xcb\xbb\
+\xe5\xd8\x14\xc7\x98i\x92\xf6\x99\xf6'\x8a\xf4}\x1fU\
+T\x8c\x14\xb4\xf1\x9c7P}=\x15&\xbc[\xccd\
+\x88\x8e\x9f\x99K\xd1\x11\xb6\xb6\x1e\xe6\xd8\xf8\xe9\xf1S\
+\xe3\xa7\x8a4)\xe6\xc6\xc3\xa8r!\x12\x1dV\x5c\xfc\
+\xf5>\xa6\x97Nt\xac\x7f3P\xb2\x04e\x8d\x8ai\
+\xe3\xc2`<w\x8a\xd7\x14O\x97\xc9;\x15\x95t\x8c\
+\xfc\xa0x+uy\x1ey,\x12[\x0a\xf2\x9b\x05)\
+V\xf9\x03y\x08\x94x\xf2\x14\xa4uHx\xec\x8a\x1f\
+\x05 f\xdf\xe4\xd10\x85\x91\xbaQP\xf1J\xde\x07\
+C\xd4f\xd0\x83\xefv\x92\x80`h\x99\xe139B\
+Q\xa44!\xfd\xe4\x5c\xe2\x5c\x80Zm\x80q\xb0\xb3\
+\x22\xdd\x9f}\x15\x95\x06\xdf\x1dX\x1a\x18\x00\xfa\xc1\xac\
+5`\xc7s\x1f\x80\x1a\x92\x0c\x00E$\x16s+*\
+\xe6\x83\xf7\xa1\x0c\xd8\xee^<\x04b*\x05\x80\x09\xe7\
+3\xf5\x0bLj\x1a9~\xff\xd41\x91\x17R\xa7\xf0\
+y\xed\xc9\x13\x053\x9e\x054\x86\x00\x04\xfe\xa8\xa8\xf2\
+\x1f$X\xf6\x00\x0bf&\xf9+\xf9,\x8d$\x0aY\
+\xf2O\xf2/\xf2Z\xea\x14\x18\xd3\x96T\x85\xd7\x03\x8d\
+^\xf6}\xd7A\xc1\x14\x22_\xa6>,f\xe5\xdd\xfe\
+M\xdd\x01@\xb1x\xd4W]]\xc6uA\x9aj&\
+n\x00B\xacc\xf2i\x00\x13\xd6?\xd7\x97<\x9c\xf3\
+\x043`\xb5\x95\xfe^1\x10\xa8\x0b\xb8\xbe\xe4\x030\
+\x02\xd8\xbf\x19k}r\xe7\xfd\x10\x0cT\xa44\xde\xef\
+\x06\xf7(\xca\xfb\x0dO\x0c\xaf\x8f\x86\x8d):B\xa2\
+\xc8\x9c\xe5\xce\xd9\xd5^\xe0\xb3Tf\x22P\x89\xd4\xc7\
+8\xa1\xa2\xc6\xeb\xb1\xfeOu!\xea\x02c\x96 f\
+\x97\xffF\xb9G\x5c\x1e\x5c.<\x1d\xfe\x85\xac!\x07\
+\x99\xe1\xc2\x82\xe4\xb2\x91P\xa8q\xe1\xb8a\x5c0.\
+4H\x0f\x1d>Lb\xce6\xa2|\xb1)\xb3 \x7f\
+\x1cp\x17*\x8ay\x08\x9d\xca(x\x8f\xceQ\x90a\
+\x5cY]\xb8\x84\xab&H\xe3\x1d\xdd\x98\xbd|\xb5\xfe\
+\xf3\x8a\xb9\xf4\xdd\x82\xa3\x80p\x82\x13\x94\xf3\xe2%\xf0\
+J7M4\xf1\xe3\xe8\xa8w\xd7\x85\xeb\x01\xb5\x8a\x05\
+\x85\x89\x0d\xd7\x89D{Z\xaf3M\x01\xff\x9a\x1e\xd5\
+\x86?\xe7\xf7\xf1\xef\xfb\x0f\x14\x05\x01\xd2\x07\x00\x8c\xc5\
+_)9\x08w~\xee;\x85e\xcf\xcc\xaa\xcc\xc1\xf0\
+Jj^i\xca\x18\xeb\x84\x8e\xb9\xc7gE\xe2\xd6_\
+'\x14\xd8<\xc0\x1cT<\xb0\x14\xfe}\x0a5\x05\xff\
+\xcb\xfe\xdc\x5c\x87\xb6\xf7\xfb\xfa\x85=\xc0\x93\xc7;\xc5\
+\xc6\xd4[\x97\xa1\xc5Bc\x09\xc5\x0b\x0d\x10\xd4n\x90\
+p\x10A\xdc\xbf\xf9\xf7\xd6\x96\xc7x 4]\x98\x82\
+`\xfe\xc2\xfb`\x9e0f*\xfdy\xf1\x5c?\xee?\
+\x89\xb9\xc7\xd2\xc48\x1cw\x06\xd1\x8e\x87\xf6\x08\xb3\x12\
+\xd6\x09\x9f\x8b\xf1y\x14:\x98\xe3\xb1\x0e\x01$\xd8\xf0\
+\x9e\x98<\x9e\xdd\x8c=\xf6\xa7}@Q4n\x009\
+\xb8\x80O\xe6PTfJ\x1a\x03\xa5\x84{\xe1.\xa1\
+\x0c\xcd\x9c==H\xc4\xda/*\xca\x01G\x22\xd7\xbe\
+C\x91^\xe7S\xa4\xd7\xb7)\xaa\xb1\x88\xb8\xd8\x82\xf0\
+RXP\xb8r\x90\xfa\xfa\x86\x1b?\x1d\xdb\x0b\xba\xfd\
+\xa6\x99(\xd2\xeb\x03\x8aj\xec\x12s\xc8\xad\xddf\xce\
+:\xae\xfcP\x9a\x9b\xa5\x9b75ra\xbf\xa8\xf9e\
+sQ5\xd6L\xe3\xfcN/\x05]\xcc\x1d&\xc1\xb3\
+&\x98\xceC{A\xc7@\x88\xcf\xbb\xa8\xa2 \xed\xed\
+m\x8a\xea:\x00\xf0`\xb2\xe4D*\xc6\xbb\x19\x10i\
+\xbf\xa9(c\xf9b\x5c\x14\x1dG:\x1c\xa6\x22\xe6\xf1\
+_\xef)\x89\x7f\xcc5\xa70zBa\xf7i\x8dA\
+\x9c\x9e\x22\xdd\xaf\xf1w\x15Ug\xf5\x1cE\xe9\xb01\
+\xfe+\xa7\xe1{T\xfb\xd3\xaa\xb9\x04\x0fM)\x14`\
+y\xad\xab\xa3\xdd\xbcUQ\x99\x02\x9e\xa6(\x7f>\xfa\
+\xf0h\xabQJ\xb0\x86\x07+\x8aIks\xb2\x22\x03\
+/\x9d\xe9\x1f\xf7\x03\xe0f\xb6\xae\xc0\x9f\xda\xc4@\x0a\
+\xe3\x9d\x98+\xce\xf3I\x07\x0e7x\x00\x01?\x87\xa1\
+\xe9\xbf/\xfd\xdc\x19UBjI\x0d\x14Y:\x82\xcd\
+Q\x8a\xc2(\x80B\x1en\xf8\xffl\x1el\xd2um\
+~\xacH\x9f\xeb\xbf\x15\xe9\xf5'\x8a\xf4\xe77+\xb2\
+D/\x17&h\xcf\xa1\xaa\x0fnUT\xd3|,E\
+\x18\xce\xa6(n\xfc1f\x0f\xa6\xc3\xc1\x8aJR\x81\
+\xf4\xc2S&(<\x9b\x0d\x15\xe9\xe7,\xa7H\xd7\xff\
+u\x8at\xac]\xa8H_?\xa7H\xaf;)\x8a\x07\
+A\xf3yE\xb9\xfeQ\x10\x90\xa0\xf6\xbd|\x18\xdbF\
+!\x06\xf0\x0e\x10\x8fT\x8b\xfd\xcb\xeb\xb7=MQ\x80\
+x\xc6\xe8\xb5\xb3)\xd2:\xdd]\x91\xbe~V\x91^\
+\xdf\xaaH\xaf\xb7+\x0a\xe5{<S\x91\x8e\xdd\x93\x14\
+\xe9\xeb\xdd\x14\xe9\xeb\x87\x14\xe9\xf5\x18E\xfa\xf3\xad\xc7\
+\xdb\x8c\xb7)\xd2\x88\xa0\x88\x92@\xfe\xbc\xf3@\x09\xaf\
+\x05)\x89O\xad\x0a\x07\xce;\x000\x7f\xae\x90\xc6\xc0\
+\xb0\xc1{\x03 \x09\x93\xcd\x1d\xbb\x02y\xf0e\x8f\x0d\
+5\x13#\x03s2\x9f\xbcXQMI\x80Yh\xe0\
+\x17\xe9\xcap^Ez\x9ds8\xd7p\xae\xe2\xd5\x10\
+\x1d\xde.'(\x80\xa0\xa5F\x8c\xc3\xcd\xe5\xc7\x05\xa5\
+3\x1a\x12\x97\xab\x15\x95W\x80\x80\xe2/\x15\x00*\xdf\
+\xedy*m\xbd\xa7j\xe4\xf3d\xf6\xaa`EZf\
+\x808\xc6\x1c\xa2\xf5\xe7\xfc\xb3y\xedd)E) \
+\xdb'\xbb}k|\xb8\x22\x9b\x16v\x85\x05\x0c%3\
+\xda\xf0\xd0h^\xab\xa8\x98\xa16\xbdmfQXb\
+\x91\xd6\xc9\xe8o)dr\xf9\xf5\x14\xa9\xd0\x1d\xfe1\
+Ez>\x87\x87(\xca\xf8\xc9\xe6\xeet.\x08 [\
+\xbfc\xea\xe0\xf9\xf1\x0aO\xb0\x99\xf9\xfeu\x1e\x05\x1e\
+\xbf\x1c.\xf8\x02L\x8e\xad\xe6\xc9\x7f\xd9&\xddh\x91\
+\xdd)mVST\x9e\x08\x00\xe0x\xc7\x5c\xdbI\xb7\
+\xf0\x10\xc2\xf45\xa6k\xd8L\x17`:\xed^\x9d\x14\
+\xeb\xdf\xfe9\x0b\x1a\x08\x94G\x8a$G\x7fR\x94\xfd\
+mx\xd9\xf0\xd2\xe1\xa5\xd5y\xf9\x95\xe6\xf0\xecq2\
+R\x14\x13\xd9\xc1\x7fu\xe7\xe1\xe0z3\xc1\x9c\x97 \
+\xe5\x0a\x93L\x9b\x9f\xc6\xf3\xcf>m\x5c$$,6\
+\xed\x8b\xeb\x01\xa3\x8d\xe9'\xce\xcbhHF\x9e\xc28\
+b\xbe\x0fs\xc5\x8b\x14\xe9\xeb\x7f*\x8a9g\x8ck\
+\xa6a\x81\x04\x80i\x17\xaeS\x82\x92\x0f\x10\xee\xf5C\
+~\x15\xa6\xaa6_\xe69\x8b\x82\x97\x02\xb6?\x86\x99\
+<\xbf\xdf\xe9\xa7N\xe1\xfb\xfcux\x94x\xaa\x09\xfb\
+{\xec\xbb}I7\x0c\xed\xbew\x1a_\xf3Z\xc6\x95\
+w\xc0A\xaf\x1e\xa5\xe1\xf2*):\xfb:\xdet\xd4\
++|\x9e\xd2\x10}\xa5\xc9a\x1f@\xe87\xbc{\xa6\
+\x87\x01@\xf4?\x1f\x92$\xc6t\xca\xec\xef\xac\x8a\x09\
+I\x07\xdf\xf7-\x98\xb5\x06j\x028\x83\x89\x85\xa9(\
+\x8cB\xaf\xdf\xd8\xa7\xdd8\x1b\xf1\xff\x04r\xa2\x02\xe5\
+Aw\xb8~]4>\xb1\xc0@4ef\xb3M\xd5\
+\x91\xe2\x83L\x8c\xc1Q`\xa9l\xc0\x1d\xfe\x89\xffG\
+\xa7\x93'\x87\x0b\xc3\x0d`\xa1A\xf5\xa6\xe0z\xaeG\
+\xcd\xe6\xe7A\xb1@\xb3\x01E\x88Nu<\xa1~5\
+\xb2\x9a\xca\xf5\xf3&\xe7\x15\x8dc0\x01\xf8|hK\
+\xe8\x5c\xda\xc59\x0a:(!,t\x12\x07\x0a\xd6\xfe\
+X\x86\x1e\xb2\xc4\x18\x8eX\x98\x00\x03\x14\xb6,\xa89\
+z\x0f\x16\x05r\x9fj\x0e@\xd1\xf7\x1c\xb0\xebf$\
+\x90\xdc\xb1\xc6\xae\xd3\x1e\xc7\xc5<\xe1\x00h\xfa\x8c\x8d\
+\xf9\x14\xd5u\xa2\xe0G\xba\xc0\x03\xdd\xd7\xba\xfbA\x1e\
+,\xa6\xa8\xae+?\x87\xeb\xc6\x83\xc4\xef\x85\x12\xdf\xff\
+\x8f\xebM!\xcf\xf5}\xc8?\xc7\xd7\x991H\xd1\xe1\
+\xa7\xe0\xef\xbf\xf2s(x)\xe4y\xedo|\x14\xfe\
+\xfc\x07\xf2\xc7\xbf\xe7\xfd\xc0\x8c`\x03\xe0\xcf\xfb@\x15\
+\xeb\x9c\xc4\x8c\xeb\xef\xe7$\xa8\xb1\xee\xdc\xa2\x09\x8cy\
+\xd9P\xd5\xbf\xae\xa8\xd6+\x94|k\xe0e%&3\
+1\x10\xc4\x90\x8e y\xf1\x01\x12\x9dE\xccix\x7f\
+|>\x10a\xa8Xt\x18`\xc4\xd8\xcc.\xb4\xe9\x00\
+\x00 \xbdL\xf5\xb062\xae\x0f\xbf\x0f\xb3#:!\
+.\xb0\xdb\xb7(*\xea;sr\x8fV\x94\x03/\xa6\
+)\xb0\xae\xb8\x1e{(\xd2\xcf\x19+\xca\xf8\xa1(\xc8\
+1\x8f\xe2\xfd\xf8\xfes\xdd\xe3y\xe4\x00\x01\xe1e\x7f\
+\xe2\xf9\xeb\x9b\x8cb.\xe4\x0eDx\x06\xb8Pf\x1c\
+\x5ct\xb4\x00,\x0d\x10\x06\xd5\x11\x97\xe0_\x19\x10\xea\
+\xbb\xc7\x02\xec<\xd1\xbd\xef\xb8\xfe\x00XP\xea='\
+=\x12 \xcc\xec\xd6P\x14\xa9\x05\xe6\x7f\xd9e}\xbf\
+j\xdf\xc2E\xda\x07S\xfb\xbc\xa2PT#\xf1\xa3\x83\
+\xcbA\xb9\x8a\xcd\x1d\xddY\x9b\x5c\xa2\xa8:\xe9>\x97\
+&\xbb*\xd2\xcf}T\x91\xbe^AQ:\xa3a\xd6\
+\xf3nE\xd5\x09!\xb1\xf9~\xb6K\x0c\xea\xf1\xe4\xab\
+\x0a\x17\xba\xd3m\x0a\xf7x\x95\x90\xba#\x99%\x09\xa7\
+V\xd3\x0c( \xfc\x1c\x85\xc9\x90\xa9\x99\xcd{\x14Y\
+k\xbe}\x93\x12\xbef\x05E\xfa\xbe'\x15\xa5\x83\x14\
+\x09\xbc\xf7?\xf6[$\x1e\xcd\xc6\x1d\xb0\x83\x09\xa5\xfa\
+\xf4\xea\xd4\xe3>\xff*)\x8a\xb5\xad!Y\xe0~\xcd\
+\xdf\xed\xcf\xd9\x94q\x9a\x13\xe9\xc6\x85\xf3\x7fW\xd4}\
+:\xfc6\x05\xec\x03\x11\xcd\xd5\x8a\xf4\xfab\xf3R\xf3\
+Re\xb2i\xca|\x98&2\x1e\xf0\xc3\xdd\xb8?y\
+\xff\xcb\xfd?\xc62\xda\xdc1$\x1a\x97*\xd2\xf7m\
+\xa1H\x09\xfa\xef\x14\xe9>\x7fUQ4\xf2\x9c\x9bx\
+\x9d\x04\x83\xcd\xe6T|\xde\x98.p\x85\xa2\x024\xd8\
+\xd70\x91\x9bMQ4\x91\x937+*\x0d.\xf3\xa1\
+\x01\x96\x916\x92\x8f\xf4)\xaftfY\x0f0\xcf\xfa\
+\xdaO(\xdf\x06\xb6\xc2\xa5\xdd\xcf\x7f\xc6\xfb\x9a2&\
+0\xc6\xf3\x1d\xaf(_\x8fWP\xa4\xaf\x97T\xa4\xd7\
+\xed\x14\xe9\xf5\xaa\xf6jyy\xb4\xfb\xb7\x07\xb4\x07\x14\
+\xa0!\x98\x09$f\x8c%=\xa4\x9bO>\xd9\xc2n\
+\xf3\xf6B\xc9\x9a\xfc\xd7V\x85\xa5\x0a\xa6T\xd0\xb6\x0b\
+\xa5X\xa0\xf2\x98\xc0\x8c\xd1\xcf5\xd4\xffXG\x98.\
+\xfby\x9f\xbcm\xb2\xf6d\xed\xec%\xd31z\xe80\
+{\xda\xc0\xc0\xf9I\x00\xc5tB\xd9\xb7\xc8W\xe6\xb7\
+w\x854\xf6'\xd9\xb3\xe3\xc7\xbe\xee\xa3\x8a9f\xa0\
+0L\x8d\xf5\xd3\x17\xac\x12g3\x05\xa2#j\x13X\
+\xce\xef\xf0\xecp\xe1\xde\xae\x9bb\x9d\xaa\xc0\x7fC\x8a\
+\xc5*`\xf2|E\xfa\xbe\xc3\x14\xd6\xe6\xefY\x18H\
+\xecs\xed\xb2\x8a\x0a`\xfd]7\xcd \xa4\x09t\x02\
+\xdd\xb9\x0d)\x06\xd4f\xce]\x9f\x0bH~\xf0\x8e\x19\
+<\xa5(\xfb\xce+$M\xb7Wn\xf84\xfc\xec\xf9\
+\x93;\xab\x8bU\x00\xac\x81\xf3\x18kff\xd6\xe0\xa6\
+t\xbfo\xca\xe7^7\xdd\x8b|o\xef\xb4\x0f\xefm\
+\xe9\xe4\xb3\xb9\x91\xb3tn\xe4P\x18\xfa|\xe7<\x8e\
+\x0e\xed\xd3q\x8etS\x09`>\x95\x8e~\xf6$\x0b\
+\xc0\x88s\x87\xbf\xc7\xdc\x94\x0e\xf7\x9f\x067g \xf4\
+\xc9\xb4/<\x99\xff\xdd\xaf\xf5\xef2\xa3d\xd9\xcc\x90\
+\xdaY\x0c)\x00\xe1(\xcc\xc8\x9f\x91\x0c:\xff\x99z\
+\x9f%\x01gxJAO\xb2\x17@\x0d\x0d\x1e\x9fK\
+\xb1?3\xdd\xc8\xe3\x1ec\x1c\x22\x8d\x07\xdc\xfc\xa1\xfa\
+\xd3Pd,#cM1\xf1\x83\xe9\x88)\x9f\x01\xbd\
+\xe8\xb8\xe39\xc0yj\xa6b\x14\xd6\x9c\x83\xf6\xba\x09\
+\xc60\x926\x0ak\xf24\xea*\x1a1=\xd3\xbf\x90\
+\xe4\xd2\xf88FQM\xb3\xa0\xf1\xc4~H\x83\xcc\x12\
+M$\xa0a\xe6GA\x0b h\x86WH\x01\x183\
+l@1\x98b\xfdB\x9d|\xbb7v0\x98Y4\
+\xce\xfaLe\xf2(\x1a\x9b\xd4i0\x91x\xbf\xe4W\
+}\xa9.\x124\xde\x1f\xcfm_\x82\x8b\xf7\x07\x92\x0a\
+\xbc+\xf0\xf4B\xda\xb1\x8f\xa22\x8b\xfe\x93\xa2z.\
+\xa9C\x00Hx\xdf\xd4\x9bH\xb5\x90\xe8p]\x9c\xa7\
+\x8e(\xb4\xc2T\x82\x8e'T\x12(a\xff\x93\xe2\xe1\
+J\xab \xab\x81#\xab_L\x82\xdd\x9f\xd3\xc9<k\
+\x16\x12\x07\xa4\x96\xc1\x0b\xd5\x85\xbdHQ\xb9\x99S\x90\
+\xa1\x89\x01\x91\xe2\x02R@R(P`\xe2\x05@!\
+FaJ\x01\xc7\x05\xeb%\xa2q`\xf1\x00\x92\x00P\
+\xa0\x82\xf0\x83\x10a2\x08\xa5\x82\x85\xcdI[L\xe9\
+^9\xb7\x92\xeb\x81\xa6\x85qr\x98\xac\xe1\xda\xdb\xbf\
+\x9e}\xf3\xbc\x17\x9d\xc8\xb71v\xb0{\xbf\xf3\xf4\xc6\
+o\xc0h`\x1c\x19^\x08\xb8\x952\xdf~\x9e\x9e\xeb\
+\xe8\xffO\x93\xdeG\xe4\xfa\x88[o\x8cE\xfc=\xf7\
+\x89\x8d\x86\xc4\x8aW\xbc\x1f\xe8\xc4\xf1\xfeM\xfd\x09\xb3\
+D\xae\x0b\xee\xa0P\x0aI\xf8\xf8=\x14\xf4\x00M}\
+\x0a>\xeb\xdd\xafh\xf1\xc2#\x82\xf5\x83\x17\xc1\xcb\x1d\
+\x10\x96\xca\xc4N;\x08\x00\xc3F\xc3\xf5a\x9d\xf7\x0b\
+\xc0\xbei\x09\x054\xeb\x89\x0e\x12c\x9bV\x8a\xf1\x8f\
+\x1d@\xc2u\xe7A\xe6\xfe\xf0\xf3y\xce\xb8>$\xaa\
+P\xb6\x99\x97\x8d\x89\x9a)\x8b\x01\x18\xe0f\x8f\xbb\xb5\
+\xdd\x8fA\xf8I\x98\xa2\x80\x07\xf8\xe2\xf7\xf0>`r\
+\xd8]7\xb4\x94\x8c7\xc3\x0b\x04\xe4\xd5\x9d\xa1\xb8^\
+v\xe7\xa5\x80\x08\xc9\x0cH6\xe6&h\x09I(\xd9\
+H=6,\x5c\xa4\x99_\xfd\xedN\x93\x18\x07\x02\x09\
+&\x055\xae\xdf\x96\x00\xc4\xcfEk\xbf\x82\x19+\xfc\
+Gb\x0a\x95\x0df\xc4\xd3)\x11{\xba\x98\xfcEG\
+\x94\xc2\x89\xce\x01\x07\x1f\x0c\xa2\x95\x14\x85\xc2\x05\x93\x01\
+$\x17\xca_\xb3\x8c\xa2\x00HA-\x7f\xca\x1d9:\
+m\xa2\x96\x9fbJ\xe4\xda\x99\xc2\xfbr\xa6\xf0\x92\xa8\
+\xdb\xfc\x0c\x86\x12\x9d\xd4`v\xb8c\xd3<\xab\xa8L\
+\x15\xd1\x00\xb6y\x07\xea\xd6\xf5\xbcUAC\xc7\xda\x9a\
+\xe5\xe6\x19E\x01X\x9a\x19\xdd8\xb6\xf0l\x80BJ\
+af`\xb5\xddZQL\x07#\xe1b\xcc\x92\x99\x05\
+\xcd'\x14\x95;\xfe\xba\x8a\xf4\xf5\xa9\x8aj\x0a\x82\x99\
+\x1f\xd9\x1c.\x1d\xa0\xed\xdd)R\x816<5\x85:\
+l?S8\xc1;\xb7\xeap\xaa0\xbe\xc7\xcf\xcf\x19\
+\xee\x84\xee^$r\xc3S\x86?\x18\xfe '\xe2\xf9\
+\xf72&\x90Nu\x98\xfc\xd9sA\xfdtu\xd4\x87\
+\x17)\xd2\xeb\xdc\x8a\xf4\xe7\xb7*\xf2\xfd\xc9\xfbu6\
+7\xd3\xfe\xb7\xa7\xa2<g\x01|y\x1f\xc0C!\xa6\
+Z<\x97\xe2\xdff\xc4<m\xe0d\xc5\xca\x0cHO\
+\xd7\xc1\xe5\xf9\xc7$4\x00\x1bwF\x03\xd0`\xec\x9f\
+\x13\x17\x80\xa8\xc1m\x8aj\xae\xfd\x0f:\xb7\xfe\xe8\xe4\
+\xbf\xa8(\xe6xQ(\x93p\xdb\xf4\x0a \x87\xb1s\
+\xd1\xe98\xb8+T\xa3\xf3\x87\x19\xa2\xd7'\xa6\xa0\xc3\
+\x7f)\xd2\xd7w)\xaau\x8a\xa9\x15f~v_\x86\
+\xf1\x13\x1d-^9\xaf8'\xf1*\x02\x08d\x9f'\
+!F2\x80V\x99\xf3\x13)\x8c\x195a\x1e\xe8\xe7\
+\x19\xa9J;\xab\x22\xbd.\xac(\x9e\x00\xb8\xca3\xee\
+n\xbc\xab\xa2P\xd2S\xf9\xbfT\xbbT\x1e\xb7\x96\xc7\
+T\xa6U\x9e\x19\x06\xe3\x03\x14\xe9\xeb\x0f)J\xde\x13\
+\x1e\x03\xd7*r\xbe\xd1\xedwPt\xe9hI\x18\xb0\
+\x87\xcf\xd5\xa7\xede\xb2Z\x99v\xd4|OQ%\xc0\
+\x9cg\x9cK4.\xdc\xe9\x94u\x9f\xcc\xfb\x06\xbf\xe8\
+\x98\x1bLK\x08\x86\xd4\x99]\xa7\xbe\xbd\xad\xddPS\
+F\x00\xfa\xda\xf5\x15\xe9\xf3\x5c\xaaH\xafk)\xd2\x9f\
+\xff\xa0=\xb9=%S\xa6o\xcf\x94i\x0a[\xc6\xff\
+Q0j\xaa\x81\xb4\xd2\xbb)\xfc~\xb6/\xa6\xd0\x98\
+\xac\xd1 \x81a\x17s\xdcM\xc9\x0e\x89'c\xea(\
+\xb0\x0c\xd0\xb2\xcf\x85\xf7\x83\xdd\xf3\xdb/+*\x06\x9a\
+\x81\xf7pk\xb79\x1b\x00{h\xbe\x05\x0c\xbdT\xc6\
+\x10\x06\x93\xc0\xeb0\xde\x8f\xf3\xde0\x05\xc5\x9c\x94\xb1\
+\xda. \x01t'K*lZw\x9eM\x06/(\
+\xef\xbb=ZQ\x0a#\xcc\xf2B2\xa7\xa7\xe9\xc0\xe2\
+\x9d\x11\xf9\x80\x01S\x0a\xd3(\xa8\xb8^\xe4!4\xe6\
+\x1e\x98\xdc\xaf\xfd\xa9Y@Q\xed_:\xcf\x17\xa8\x9e\
+C\x80N\x9b\xd6\xa5ll\x8d\x9c\x9f\x7f0\x0fj\xee\
+\x98d\x1f\xac\xdc\xec/O\xe5\xd1\xe59\xffyL\xf9\
+O\x8c\xef\xe5\x9c\x85IF'\x9b|J\xd9\xe6[\xf2\
+s\xdf\xe5y\xbd\xc21\x00\x22\xbc,\x8e\xe9<Y\x00\
+\xa6\xa3N\xb9,G1_dL R\x1c\x1a\x9b0\
+\x01\xc9\xff\xf8\xbcP\xd9\xcd\xd0\x9al\xa1(\x92.\xa4\
+r\x91\xcf\x98\x99@>\xc0\xd4\x89\xfe\x18\xee`\x0c\xf3\
+\x9c\x92W\xf2\xbe\xa8\x83\x00\x08\xc8G\xc8\xd7i\xe4x\
+\xff\x05\x18\x8b\xbc\x17S:3\x14BjC\xbd\xc5\xcf\
+\xe3\xdc\xa6\xc1D=\x87\xe4\x80q\xa4\xec\xa7\x00\x0aH\
+t\x00f\xa9\xeb\x00(\xc8\xb7_\xed1\xd6\xad\xbb\xfe\
+ko\x9cd|\x7f\xbf\xb1\x8c\x07\x19\x0d\x1b$\x07H\
+\xc6h\xf8 i\xe8\x8d/\x8dF\x04L^\xea\x10\x98\
+\xc5\xd4\x07\xd4i\xe4\xcb|\x1e\xce\x17\xea\xa2\xbey9\
+\x8db\xbc%8\x7f\xa8+{\x12\x84WMa\xb1\x14\
+j\x94\xf1\xc6{*\xe4\x80q)P\xf4g\xcb\x03@\
+\xca\x05WY7\xaf\x1f\x90Y+\x13\x0f\xdc\xcd\xf9@\
+\xbc\x01.\x10\x1b\x03Z \x16\x1c\x9e\x02|@\xa8\xcb\
+\x14h\x14@\x5c\x10\x0a>\xcc\x18\x5c\xe8\xd1\xb1\x8a\xef\
+gas\xa1\xfa\xd3\x02x\x9f\x0b\xf8\x95\x7f\xc7\xfbd\
+\xe1R8\xbas\x16\xf3\xd6\xd1\xd4\xf1\xef\xa0\xf0\xffo\
+\x85oo\xbe=T\x9f@\xa8mr\x12.\xfc\xa6`\
+F\xc2\xd1_\xd8<\xd0K\xf9\xf3<o@\x80\xef+\
+\x12\x81W\x9a\xf1\xf5\xe7q\xce\xe5B\xbf\xdfa\x87\xe2\
+\xce\x03\xc1\x03\xcd\xc1\xcfB\xe2s\xca-\x7f\x9c\x0b\xd2\
+W\x8c}{\xd5+\x05\xeb\xfff\x92\x07\xf0\xd03\xdf\
+\x88\x02\xado\xf6\xe8\x84#\x18\x09l\xa4\xfc\xdcA\x8f\
+1P$\x04e<e\xcd\xa0\xe09\xe0\xcf\xeb1C\
+\xd5\xbc\xdbW\xbdr}\x01\x1ex\xa0y\x9f\xdex#\
+\x01FK\xccx?\x12zL\x900E\xc1\xc4\xc6\xd4\
+\xca\x98B\xe1\x02\x0c\xednP\xcc,\xa5\xe0\xe0\x8f\xe7\
+\x8cqoh\xeb\x9c #q\x81z\x1f\xd2\x00\xd6\x0f\
+\x1dF(\x96~\xeeH\xc0AfS\x82\x97\xe2\xff\xb2\
+\xc1a\xba\xc9\xf8BL\xbb\xbc\xa13\xb7;\x90h\x10\
+^\x0a\x13\x96\x07\xfb\x02\x0c\x92E=\x8em\xd7\xa9\xcf\
+fD\xde\x9d\x90\xe8\xa4c\xc2F\xe7\xc1\x1d\xff@\xf0\
+q_\xe7\xe0!a\xa7\xe0\x07\x80\xf2\xc1\xcb\xf3\x18\x05\
+:\x94+\x5c\x8f\x0d0\xc4\xbe\xa2\xb4\xf4/\x95\x87\x01\
+\x9d\x00\xf6\x03\xae\x0b@\x08&f\x5c7\x0e\xea\x13m\
+\x1a\x87\xc9\xe2\xf1\x8a\xe2\x0e\x1e\xeb\x02\x06\xd1\x0cK}\
+v\x9c\xec0\xd9!\x17z\xdd\xd4\x00\xa4Lh\xc6y\
+\xbdsp\xc7\xe0\xce*\x11\xb6\xe6PS\xeb5\xb7\xbe\
+\xf9\x88\xa2\x9a\x96@\x22\xea\x04~p\xa4\xa2:\xb8t\
+\xb5\xb7\xf6\xe7\xbd\xab\xd2(;\x01\x85z\xca\xfaBK\
+\xde\xae\xac\xa8L\xd6\xe8\x9c\xa9\xd3\xf6\x06w\xda\xbfP\
+\x01\xd3\x96\x9e5#E5n\xed!E\x01\x1a\xc2$\
+\x0d\xad.\xd2\x16?\x7fy\xea\x83\x18\x0f'+\x0c\xe8\
+\xac\xe3D\xe5f\x1f\xdc\x8f\x1b\x99\x97\xb9\xdew\x14\xe9\
+\xf5\x06E)\x80\xc3S\xe2\x976U\xbb^Qy<\
+`\xb2\xe6\x84\x1f\x13\xbc\xe1\xeb\x14\xe9\xeb?476\
+7\x16O\x8a\xe6\x5cEqm\x97\x85\x95L\xac\xc2C\
+\x02\xd3C{h\x84y/\xfb\x0fc[?\xaf(\x1d\
+\xa9\x0c\xc8\xccR\x0a!\x18:\xcd%\x8a\xf4\xf5\x11\x9d\
+\xf4\xad9\xba\xf9V\xf3\xad2\x15\x03\xad>\xee\xee\xec\
+W\x83\xeb\xcc\x98s\x823\x98\xc3\x1d]\x9f\x8fa\x1e\
+\x08\x05\xd1\x9a\xc40\xd9s\xc2\xcaz\x1c\xbe]Q:\
+RAa\xc5\xb4\x8d)\x04W(\xaa)\x04\xfb)\x0a\
+\xe5\xb7]@Q\x8dA\x82\x09\xd7;G\x19\x7f\x17\xfb\
+8\x05\xac5\xc7\xb1\xafPhp\x8e\xd1x\xe0\xb9\xa4\
+\xa0\xa5\x13\xc9\x18O\x98]\x8c3\xb5\xd92\x14\xcf(\
+\x08\xed\x8a\xdd\xde\xa0(^\x19!aA\xba2n\xd3\
+\x7fY\x9asA.\xe0^T\xa4\xef\xbbE\x91\xbe\xfe\
+\x9c\xa2\xca{\xf7l\xf7h\xf7\xc8\x1d\xe9Nk\xeeq\
+\x89\xc1\x84@R\xe6s%\xc6\x1a\x93pS\x00\x88\xf2\
+|{%\xe5\x80\xd9GAC\x1e\xc4\xbey\x8d5\xc4\
+vI\x9f\xbcK\x91\x0b\xed\x9cH\xe3\xf9\x12\x05\xe8\x9b\
+\x15\xe9s\xac\xab(\x80\xdf\xf8\xb2\x0e\x00hgmg\
+iE\x91\x1di\xa0f\x05$\x08\xa0\xfe\x8f\xcf\xe9\xb9\
+m\xce\x96\xd6\xf1d\xf1\x14K\xf8\x5c\xfc\x89=\x91\xd6\
+\xa8\xa4t\xe41\x9c\xd3*\xb3v\xb1\xe4\xeb\xe6RX\
+\x05\xa3M0\xd2\xef\xbd\x1ew\xae\x0a\x00\xf6s\xc6\xe8\
+\xf1|\xcfTT\x14mL\xfa\x98z\xc0t\x80}'\
+\xfb\xc8|.$k\xea\xec^]\xcc\x0f\xe9(\xc7\xd8\
+J\x8f\xcb\x84\xf1\x16\xe7\x1d\x0c^{3\xc1(\x09\xa0\
+\xc2R\x90\xf6>EJs\x9eO\xf1B1\x01D\x92\
+\x15\xcf\x01\xe7\x9e=o\x06\xb7+*f\xa7\xf34\xce\
+\xef\xa0\xe8[\xda\xc3\xfb\x0f\xa9\xad:\xb5W\xb9\xd1\xb5\
+A\xb5\xde0\xa9\xc4\xbd\x1c-\xbc\xc7\x7f\xc6\xfd\xb9\xb4\
+\xf3\xa8\x18\xbcG6~\x9en\xb0z\x91\x02\x06\xf0\x89\
+\xc6\x1ei!\xf9+\x0d\x1e\xce\x93\x8b\xa6~\x95\xa7\x17\
+`\xa6\x88\x19.^g|?\x8d\x12\x98\x8c\xf6J\x88\
+q\xa7\xd4#P\xf6\xc9\x8b1\xd7\xf3\xf3\x1e&\xd5L\
+U\xc2\xdb\x86|\x17i\x00u\xd0A9J\xe7\x9b\x02\
+\x92\xce\xb9=$\xa2Q\xc1x?\xcc\xab9\x8f\xff\xe4\
+\xc2\x94\x8e\xb2\x99*Q\xdf\xd0@\xa1\xa1C\x83\x86\xb1\
+\x89x'\xc1Ht\xa3\x12\xc0#$\x7f0\x0d\x5c\x80\
+\xc6\xb4\x03\x80\x06\x1a\xbd0\xa6iH\xc1\x90\xe2\xf7\xc0\
+l\xc0\xc4\xd9\xdav\xce\xfb\xa8\xfb\xc8\xdb\x904Q\x80\
+\xc34\xa0\x80\xa7\xc1\x87T\xce\x8d\xe3\xd8\xaf\x91\xe0\xe2\
+]`iE\x8c\x85\xe4:Q\xc7\xf2|P\x98\xf7\xa7\
+U\xb0~y\xff\x00\x00\xbc_\xa4\x22\xb7\xd8\xc5\x9f\xef\
+\xe3\xf7p^0\xee\xcf\xa6\xc9\xd1\x08\x85\x81\xca\xf5\x07\
+H\xe1\xfd\xf1{\xa8_\xa8\xb38\x10\xc8\x0flR=\
+\xcai\xff\x95Frf\xb8@}\xc9\x09\xeab^\x90\
+\xad\x0b\xe8%\xfc\x03\xdf\xe4\x02rZ\xd5\x91\x060\xa0\
+\x13\xa62dE_\xa8E\xaa\x7f\xafc\xa2B\x94^\
+U@C\xdd\xe4\x8d\xf6\x0bE\x0ai]\xa6\x7fV\x0f\
+\x0c\x086\x1b\x06\x85\x10\xa6|\x1c\xe0t\x06p\xe9F\
+\x83\x8e\xf9 \xbf\x07*\x96\xcd\xffb#\xc1\xb4\xe3z\
+E\xfa\xf6O(\xaaN \x8c\x81\xfe\xd87\x0aS\x0a\
+L:\x05l\x080\x01@\xbe@\x90\x18\xdb\xf7\x063\
+\x1e\xe8H\xa3q\xa7@\xe5 \x02\xf0\xe8S\xe9)\xe8\
+JaL\x01\xfcJ\x80`\xd8\xd3\xdc\xf7\xdd\xfd\xfb\x1e\
+\x01|=\xf1\xff\xbd\xf4J\xa0#(\xc7\xff\xf6\x83\xd8\
+\xa7\xeas\xdf\xe8\xb0\xf4M\xe8\xfa\x8c\x03\x0aZ\xa6*\
+\xc0\xdc\xc0$\xcd\xd7+$)}m\x12\x89 \x80\x07\
+\x05\xeb\xff\xe6\x05\xc0\xfb\xe6\xc1\x84\xd9\xf2\xb0\xa9A}\
+)\x0b\xdaI\xae7\x05-@\x06.\xad\xac\x13^Y\
+\x97$V\x98\x15Aa\xc7\x9d\x16\xc0`\x13E9(\
+B\x9bf\xeaU\x00\x0cvY\x0d\xa6\x0a\x897\x7fO\
+\xe1\x0a\xf5\xfa\xef\x8aj\xbc\x1c\xda#\xee3c\x90\xdc\
+\x19\xa0s\x18\xee\xc6\x1c\xec\xa6\xf8\x06\xe0\xc5|`\xcc\
+\x92\x9chJx\x93\xa576\xad\x8b\x82\xcd\x85.\x1b\
+;\xe6xy.\xfa\xe9\xb9\xa3\xb6\xbf:j\xe1\xf2~\
+I\x8eB\x91wb\x0aU/\x0a~\x12T#\xcf\x01\
+\x0c\xf8z\x90\xe00\x16\x0f\xc47\xc6\x839Q\xa1\x13\
+\x1a\xeb\x08\xaa\xbe\xcdp\x98\x86\x10\xe3s\x000Xg\
+<\x1f\xa6\xa2\xc6s\x8b\x94\xc2\x09W\xb8R\x7f\xcbR\
+\x0fk\xc91\x15\x0b\x00\x06M\x1d\xf7\x8f\xb1:\xd6\xdc\
+O\xa6{\xfe\xbc\xb5\xa3\xcdr\xcd\xf2\xcd\xf2\x15\xc3\x80\
+\xce\xce\xb1S\xc7i\xfaK*#>\xdb~\xb6B\xb4\
+]HA\xd9\x0e\xef\x00<\x0d\x5c\x085\x8b*|\xb0\
+\xdf]\xf6\xd90M\x84\xd2o\x0a3Z\xdd`f\xf0\
+\xbc\x02\x80\x8c:jo\x86\x8d\xb6\xa9\xcc\xc9\xa0\x1eb\
+\x12\x05u\x10\xd3Ak\x17\xa3\x10w\x82\x07\xc3\xa6\xb9\
+HQ\xa6\x11\x0c\xcfR\x14\x0d\x7f\x86U\x97r\x22\xbb\
+F\xa1\x02C\xf5\x8fm\xd4\xe3\xe8R\xe1|\x84\xcc\xd2\
+\xb2\xb2\xfa\xbcj\xbf\xf0\x9c\xe6\xa0\xca\xe3\xe9\x00\xee\xf8\
+\x91N\xf2\x11\xf3\xd3\x0d\x90\xc48\xc0\x9b\x14\xe9\xcfw\
+S\x94\xf5\x84\x17\x04\x8c4$,\xcd\xf9\x8a\x8a\x0a\xbf\
+D\x8a%\xed\xbe\xff\xbbb\x22\xc8~\x15\x9d\xfek\x9a\
+k\x9bk\x8b\xe4ax\xbb\x22\xfd\xf9\xa7\x15\xd5\xf8=\
+K\x13B\x0a\x81vw\xe2\xfd\xc2\x92\x9d\xd8\xdf\xdd\xc9\
+\x07(BB0<SQ\xb4\xfeQ\xe8\xa0%6\xf0\
+\xd5\x1e\xa8(\x09b\x14ZL\xe3\x01H\xb3\x19]t\
+D\xd0\x88\x7f&G9\x0fh\x180w\x1d \x9ds\
+\x80\xc4\x91\xfc\x03\xa0\x15f\x22T_\xa8\xa7^\xd70\
+\x18\xc2\xcb\x85\xce\x15\xe7\x02\x89\xb1\x01D\xbc\x80\xe8,\
+\xb5_R\xb8p]\xbc\xf2\xb8\xb0G\x80\xfa\xfd\xb9\xe3\
+\x7fe{U{U\x99\xaa\xd1\xbe\xa4(\xda\xf7\xf6$\
+Ef\x0ed\xe0\xad]C\x91^wU\x94\xc4\x97\xe7\
+\xae\xbd<\xc5e6)\xfb`EI\xc6\x84L\x1d\xd3\
+\xeb\x0b\xb57\x15\xe0\xa3\x5c\x80\xfb\xfd\xb7?U\xa44\
+l\x7fE\xfa\xfaiE\x96.\x9c\xd0\xcad\xefS6\
+\xff3\xf0\xd0~P\x91\xbe\x7fe\x85\xe7\xd3\xa7\x04\xbc\
+\xddDQM=\xb8Y\x91\xfe\xdd<\x1d\x05:\xceM\
+\x00\x98A\xce`b:U\xfe<\xf7V\x9dg\xad\xbe\
+\x87-q\xfa\x98\x19V\xdf\xec\xf2SI>\xb4kg\
+WoL\xb0u\xaa\xff\xb3H\x04c]\x9a\xaa\xdd\xbe\
+WQ\x18\x1d\x01\x1c\xf9\xfe\x07C\x0aJ\xb6\x99e0\
+:(t\x03\x00\xc2[`\xc7\xf4\xfev\xac\x1a\x19\xec\
+\xef6_\x8b\xe9\x02\x1eg\x19\x8c\xba]R|\xda\xd7\
+U\xf9\xc7\x1eS\x9d\x87\x89\xff>\xa6Ex\xca\x00\xcf\
+Q^g_N\xaf[(\x8adKB\x10IA\x82\
+\x01\xf0\xb8\x22\xbd\xbe\xa0\xa8\xf6O\x80?3\xfa\xc87\
+\xd8GS\x11\xbb\xa3\x0a\xd9\xc9\xce\x06J\xe8\x8c\xebT\
+[\xa1\x00\x22\xf1\xdcz<i\x00\xbb\x00\xccx,\xd0\
+\x91o|\xbf\x9dW\x85\xa7\xc6\x0e\x06\xba1\xbdFJ\
+\xb2\x9c\xa2*D1\x1b\xfc\xe1\xe4\xd4<m\xe6\xdbf\
+\x84Y\x02\x14\x9d]\xa8\xd5\x00_n,\xe2\x1d\x14\xf9\
+'\xe7\x1a\x0cX$\x1bf\xba\xa4b\xbb\x93\xc4]\xaf\
+\xa8$\x1e\xe4\xb5>\x00\xc2\xb4\xd3\x80\x07\x8c\xb6\xf0\x0e\
+\x83\xb9\x00\xa3\xc0\x05^\xb3\x8d\xa2\x00\x8e\xe9|\x9f.\
+\x13\xc8\xf0R\x82\xe2~\x83\x0bk$16e\x0e@\
+\x9f}\x95\xc6\x1c\xf9+\x0d\x19\xf2|\x03\xb2\x8c\x81\x06\
+P\xe7\xdc\x89\xf1\x82\x00\xba\x8c\xbf\xe5\xf3!\xc5\xe6\xcf\
+\x9dwD~\xc4\xfe\xdb\x97\x9aR\xa0\xf3}\x9c\xf7\x00\
+\xb9\xec\x07\x98y\xd3\xc0\x02\xc0\x04\xa8C\xea\xcd\xdf\xe3\
+5E\x9d\x07 H!M]\x8bt\x9a<\x17/\x15\
+\x00\x0c\x98\xcc\x8c\x99\x944~\xdbJb\xd1\xaf/\xf8\
+\x5c/\x1bH\xa0\xf0'\x7f\xe4\xfc!\x1f'\xef\xc5K\
+\xc9\x80WHy\xdc@\x86A\x14\x85>L\x0a\x98\xab\
+\x00:\xdcO_\xd7\x11\x89s\xee\x8b\xfc\xd6\x0f\xe6\xe2\
+U\x81JanS\x94\x9c\xd6<\xe4B\xb6v\xc3\xf5\
+\x06\x1a\x89\x0fTn\x1e$\x5c\xa4)t\x98g\x0e\x15\
+\x87\x02\x90\x05\xc8\x85#S\xea\x17\x8a.\xe4\x82\xf2\x84\
+\xdb6\x9d\xed\xbe\x06\xa4\xa7\x05\x09\xca;\x85;\xef\x8b\
+\xf7\x03c\x80B\xbag\xf6\x10\xbf\x97\xce!\x0f6\xbf\
+\x97D\x96\x05\xc2u\xa4\x90\xb5\xabs*Z\xbb\x8dd\
+y\x7f=\x0e\xaa\x0a\xe3\xf7\xf2\xf5\x08\x97z\x0a9\x5c\
+K\xf9\x5c\xdcX~\x0f\xee\xac\x98^P\xf8R\x90S\
+\xd0\xcf\xd53\xb5@\x12\xc0\xfb'\x11b\xc3\x86\x8aO\
+\xc1Mb\x05P\xc3}#\xf1AC\xf3\xa0\x1fD\xcc\
+\x08gxl!@\x10\xbf\x07\xa0\xa5\xef\xb6\xdf\xa7\xd2\
+\x03\x0cP\xd8\x17\xc6\x07\xd2\x82\xee\xe7\xcd\xd9\x1b\x0b\xc8\
+\x03\xc7\xbab\xbd\x951i\x9d\x19\x87\x01\x98(\xa8q\
+\x97\x85A\xf2\x90\xd79\x0f,\x09/\x080\x05\x1d\x05\
+'@\x15\xf7\x01\xd7v:\xc0t\xc6\xfb\x0c\x89\xde\xf7\
+\xc7:\xe4}\x83,\xb3\xd1q]8\xa8@\x9a)\xa8\
+@\x12m\xfe\x09\xa51:\xf1<Gl\x90\xac#\xe6\
+\xd1\xb2\xa1\xe3\xeao\xaf\x8dpG\xc5\xbc\x84\x0d\xd5\xd4\
+\xb4\xffC\xd7\x99\x80m7\x95\xed\xff\xb9\xf7\xf3\x98\xdf\
+\xccCf\xe1%\x1a\x88\x10\xa1A\x83P\xc8P\xa2B\
+%\x0d\xa2\xf0\xa1d\x88P\xa4\x22T\x12\x0d\xc6\xfaD\
+$%eh\xd2\xd7@2$S\x83y\xaa\xfe\x91x\
+\xef]X\x88\xd7\x00\x00 \x00IDAT}\xff\xd7\
+\xb5\xf6\xf9;\xd7\xb2\xde\xbc\xd7q\xbc\xfbx\xa6\xfb\xde\
+\xf7\xdak\xb8\x86\xf3:O#f\x90\xb1\x01\xda{z\
+X\xb5\x8fp\x9f\xda\x00\xad',\xb9\xa8\xd1.\xa3\xb7\
+e\xf5\x0d\xf5\x96\xa5\x00$Y\x95HA\x05\x84\x0c=\
+d7\xfc\x5c\x19~\x93\x9d\x91\x18\x10\x17\x01$\x86\xd6\
+\xed\x96\x0c\x9b9\x06 \x8d\x82KB\xd0u\x93 \xb2\
+>\xa8\xf8S\x89\xbd(\xac\x0a$\x14(\xb9\x95\x09\x04\
+\x87\x0e\x12\xa0\xa4N\x90>2\x1c nu\xd1A3\
+\x97\xfc\x0e\x99\xfe\xcb\xc3\xaa\x80\x19\x0e\x14e\xaea\x8b\
+\x1d\x9d\x17VA\xf9B\x16\xf6\xb6\x1c\xb0\x0e=|\xea\
+y5\x04\x90\x03\x88\x0a\xe9\x96a\xe9\xeb\xb7f\x1b\xf6\
+\xc3\xd7\x96\x16\x0c'\x0a\xb4\xdf[\xed\x81D/\x0e\x08\
+\xd0\xbc\xf9s3S9\xd8Ta0\xa2\xa3\xe6\x9a\x99\
+T--\xf4\xe6\x12P}:\xac\xea\x1d\x87\xe3 Z\
+\x1e\x82\x1d{\xbfd\xfb\x16\xb9;X\xef3[\xf6\x86\
+\xd5s\x8f\xd3\xebEJP\xbd\xb9\xea\xa1\xa4B\x88\xae\
+\xf1\xb6byF\xb7\xfc\x81\xb0J\xdd\x00\xc7\x88D\x0d\
+\xf3\xe7)\xedk\xdf\xc8VzmUiu\xe5\x1c]\
+{\x91t\xd1\x13\x0b\x89`wSX\xba^\x18V\x90\
+\x10\x99\x05?\xc8\x1fWK\x16\x89\xc8\xe9\xb0j\x1c\x81\
+\xba\x8a\xd4-\x93\x86\x1d[\x12=\x06J\xed\x11VU\
+\x00iu\x81\xf5\x9f\xf1\x05\x99\xa0\xe7o9At\xe1\
+\x854 \xc0\x9a\xde&\xac\xf4\xb6\xc3Q\x03\x87\x82\x03\
+xt\xa9\x81\x1e\xabw\xd9\xb2r$\xf0\xb5?\xd2\xca\
+eG\x0d\xc7\xa8\x90\xde\x0e\x89;\xfc\x05\xcey\x12p\
+@\xab\x91o\xa4\x92\x05)\x9e\x90\x01&ed\xdfR\
+\x02\xdbj!J\x08\xd1\x13nRP\xb5N\x11\xf0\xc3\
+q\xd2/\x1aV\x02\xf7\xc92b\xfb\x874p\xd7\xb0\
+\x8a\xfcRP\xf3\xf1\xdf\xc6\x7f\x1d\xff5\x07\xd8\x19\xfa\
+?>j \x95\xeb?\x15V\x02%\xc8:\xfb\xcf\x85\
+\xa5\xeb\xfa\xc96\xd0\xba|\x7fE\x82\xaa\x16\x82\xf1\x19\
+\xc9\xd2\xe7\x1e_\x1aV\x91wr?\x0a\xe8a\xad\xef\
+\xbf\xd9\x9f\xdd\x9f\x9dIT\xb3la\xbfN\xbfn\xbf\
+n\xf5~\xc1%\xb0L\xd9\xff\xfb\xa3\xc2J\x00aY\
+\xb4HC\x9eT\xe9\x9e_\x17V\x12)\x99\xe5\xfe\xa4\
+*\x11\x80\xc3\x1b8\xb7#\x0a\x22 76E\x82c\
+\x89dK\x0edky?^l\xb2X\xbfx\xc5m\
+\x15\xd0\xe6\x03\xc5\x15\xb1]\x09p\xf2}]\xac\xde\xfd\
+H\xb8\xcc\x09\xab\x02\x1e\x9d\x1bN\x98(\x906W\x09\
+,\xea\xf8\x93$(i\xf9\x04\xf9G\x80B\xaf7\x05\
+$%\x9eG\xdd@\x867\xd9)\xac\xa2\xb2\xa2\xc7\x98\
+}_\x95hz\x95\xfb\xc3\xc2\x94\x98\xf9g\xd5bq\
+Z\xb2S\xd5\xa2\xb0PU\xe8\xd2zc=w\xd7\x87\
+\x15y;\x93\xd1\x1e\x19V!\xc9\x82s\xe0\xd1\x9c\xb0\
+\x1f\xce\xeb\x19A\xd5c5.\xac\x02F\x04\x9e\x87\x84\
+U\x85\xb9\xc0\x19\xbcK\xebs\xac@\xef\x86\x8aTQ\
+\x85\x05Z\x1f\xd8WiQqBS\x5cc \xf5\xfa\
+\xcb\x92}/#\xda\xbe\x13\x886\xfc\x94\xcc\x8d\xf1\xb0\
+d\xef\xf6\xab \xf6\xf8m\x04\xf6\xc8PR1G\xed\
+\x86\x848\xc8\xbe\xaf*\xc1\x0bBK\xad\x8b\xfc\x1d\xb2\
+\x9a^\xe7 \x9ax?\xfc\x04*\xd9$r\xe06 \
+1\xc49M\xfc@e\x19\x19J\xa9\xbe\x98+\x89\x84\
+\x19?\xd7\xdf{>\xe2\x97SyG\xb6R\x9f\xcfj\
+\x16\xf8\x9d\xfc\xc3\x1f!\xee\x81\x03E\xfe\xd6\xe4\xf4\xb0\
+\x8a\xd4\x9bx\xa4\xe5\x16h\x91\xca\x14*\xf1\x9b\xf1_\
+\xf1w)\xc8\xb5\x88\x5c\x10\xc1\xb4h+.3\x07\x02\
+q\x81\xe2\x1b\xce\x17W\xce)\x18+ \x9eK.\x90\
+x\x09\xce\x038,\xe4\xcf\xf9\xfe\xb9?>'-\xab\
+\x14\x0ci\x95\xa5\xc0I\xbcAa\x8dqf\xbcZu\
+\xaeV\x06\x9c\xf8K\xdf7\xc7\x17\xf7\x0d\xb2\x8b\xf8\x83\
+\xf3\x9e\x04\x8b\xe2\x85\x99\xfc\xe7\x0bU\xd0(\xdep\xcd\
+\x0cJ\x1f2\x1f\xafQ`\xf7x\xf9~v\xff^\x5c\
+\x1d\xb8\xca\xf0Z\xce\x8f\x00\x86^[\x02>\x0eF\x1c\
+F>0P\x0d \x11\xdc(\x196&\x02l\x8e\x04\
+\x14\x04\xec\x1c\xe8\x04BZX\x90\xca\x90\xa92\xe9\xc8\
+\x93\xcf\x0c\xf8\xac\xdfL\xaf<\x90\x1c /d\xb0D\
+\xfe\xe7\x8d\x82\x01&\xa0f\x22\xf0\xe0\x09\xd0\x08\xe4\xf8\
+\x1c\x04\xfa$Z\xe6(@,\xbd\xe2C@N\xef0\
+\x0f\x90\x0a1\xcf\xe9\xef\x96\xf1x&\x84\xe4\xaf\xc3\xfb\
+\xe3\xd0\xf3>\xeem\xe7~\x17|\x96\x8a>\x0b\x95\xdf\
+\xe3yr\xe5y\xb1\x91\x14\xfd\xd8\x5cAw/=\x15\
+l&<\x8e\x18\xea\x02$t\x18\x17>?\x01\xcd\xe3\
+N(\x0c\x95\xf6\xfb\x14h3\xbe\x5cI \x80\x84\xa0\
+B\x0f\xd2A\xe3\x84\x5c\x92\x03\xe1\x86\xac\xc8\x9f\x0b\xcf\
+\x17yD^\x97\x859\xa7\x91\x17\xc4\xb1\xe4k\xfe^\
+\xdf\xf7x\x10\xb8A\xea'\xee\x0d'\xc8\xd8\x08\xa8\x9c\
+\xb3n\x80\xf8\x16D\xc5\x90\x00 #\x0a\x84\x8b\x0d\x86\
+\x16\x0a>\x9f\x02Z\xaf'6X\x90\x00@\xb1\x04\x09\
+sk\x0a\x99y\x1dH\xceH2\x1f\xe5\x98{]\xd0\
+\x0b\xc8\xeb\xeayB\xbeb\x96a\xd8\x96y\xdedF\
+\x09\xa8\xd1A\xff\xc3\xe8\xa6\x0cQGm\x04\xddX\x0e\
+N\xa0_d\x88\xe5`;a \x0e\x81\xc9iaU\
+\xa5\x9by\x8e\xc3/\x88\x9f+\x1e\xf46\x07\xf7\xc9\xfd\
+\x15\x1b0Pq\x1d\xc0\x90.\xe5\x80r\xbf\xd2\x8bo\
+H?\x95o\x05\xee\xaePQ\x11\xc0\xe1\x82\xc4Q\x09\
+\x1c\x93R\xa9\x02\x09\xf9\x8b\x13Rr\x8ca\xb5\xf6\xfb\
+\x80\xa8\x00\x09A\xef\xa5z\x02G+k\x7fc\x9fb\
+<5?\xba\x97\x84\xe5\x84\xc1z\x910\xa0\xb5\x03\x16\
+l\xcfo2\xee\xb7\x87\xa9\x97\xfbs\xea%\xfd\x8cT\
+SN\x17K\xf6)r\x8c\xb7U`\xfd\xf9\xaa\xe7\xfb\
+\xe4\xb0\x0a\xd2\xaa}\x8a\x0a\xb7\x9f3\xf79= \xcd\
+\xa2\xfe5\xda\xab \x10\xa8\xb0\xe1\xa8\x9aK\x05\x04G\
+T\xe8\xd3\xb9\xd3=\x16\x96\xaeo\x08K\xd7\xa7\x06r\
+;\xf7\xd4\x86c\xba\x96\x12C\xe9\xf5\xba5\x92\xc5:\
+:7\xd99j\x11\xf9\xbf\x5c\x09\xcf$z>\xc76\
+\x90<&*.\x9a?\xdd;\xc2\xaa\x04\x0c\x89$A\
+v\x0d\x99\xbfet\xf3\xe8f\xb5\x8e\xdcX\xc8 }\
+\x1e\xd1\xe3\xc9|\xe5\xe7pL(\xc3\xef\xc0\xfa\x07\xc9\
+~X\xa9F\x04\x99_|\x9eYa\xe9\xe7\xdf\x0d+\
+\x90\xfc\xe4\xbe\x0d\x09\x09\xb1\x0e\xbb\xc7\xfe\xe6\xb0\xc2M\
+\xd0=2\x90\xedM\xed/\xe4\x87\xf6)zzA\xae\
+\x98\x04P\x15M\x02i\xcemX\xcd\x0dq\xd4\xfe\x03\
+\xf2\x01\xa4\x11\x88\x08\xf7B\xeb|1Y!\x09@\x90\
+\x87$\x08DNg\xa8,\x90eZ\xc5p\xd4ph\
+\xd9\xf7D\x8e\xea\xdex\xee\x8b\xcal\x03\x1due\x85\
+\xf3\x18\x04\x00\xb2_\x07\x86\x95s'\xc2\xe3\x08\x90A\
+\x08\xb97\xffua\x22\x9b{y\x09@\x09\x9c-\x1f\
+G`\xb7KXr#N\x0aK_\xbf),}\xfd\
+\x91\xb0\xf4\xf5#a\xe9\xf7\xd7\x0dK_\xbf,,]\
+\xbf\x14&\xbf\xe0O\x95\xca\x89 \xdb\xfd\x89aEn\
+\x8f\x1e~8\x0a\xc67\x86U\x9c\x05T\xeaEF\xdb\
+\x1f\xd0\x1f\xd8\xa7\xcf\xdb\x9f\x17\x96\xaeO\x0f\x08\x85\xfe\
+\xbe\xb0\xd2\xc3l\xddu\xce\x0b*`$\x9eI\x10R\
+Y\x83;\x85\xe7\x1di\x80\x9b*2=\xdd\xf7\xe8\xc8\
+\xb0\xf4\xfdu\xc2\xb4o\xa5se\xb2M\xb2\xadK\x82\
+\x01\x12Y\xfbq\xf2\xff&\xc7'\x8b}\xf3\xfd\x03)\
+]n\xc9H\x01R\xbfWX\xba>7,\xfd\xde\x1b\
+\xc3\xaasZ\xd0~\x02\xdc\xa9\x83\xb2MM\x16\x08\xab\
+>\x1f\x88O!\x83,\xabK\x01j%q\xf0Hm\
+\xc1l\xf2\x1b\x8b\xa4q\xcf\xb0\xb2\xef\xf6\xdf\x0b\xab\xce\
+\x15\xf9S\x93\xeb\x93\xddP\x9d3\xb4@D\xa0w|\
+\x05\xf5\xa6U\x10n-\xc8\x03u\x1e!\x87\xda\x9d\x1f\
+\x96\xae\xbb${\xab\x90^\xcbU\xe4\xbd\x14\x12\xa9\xf8\
+\xe3\x0f\xe1\x8f\xd3*\x8c\x5c\xa7Z\x0c\x5cq'\x11\xc7\
+\xf7\xe1\xe0\x10\xd9g\xee\xc1?\xaf\x9a\x07\xb1\xee\xd2\xfc\
+\x0f\x8d\x9aP\xa91y\x1fr\xbd\xa1&\xf0k\xc9h\
+\xaf\x98\x13\xe2\xdf\x8f\x84\xf8d\xcdt\xae\xae\x999\xc7\
+\x86\x84\xd3\x99\x92M\xbbR\x15cZ5\x95\xa0\xc8\xad\
+\x06\xebe\x04qNx\xc6,\xcaj?$\x1e\x91\xbf\
+# \xa3\x85\x80\x00\x19\xa4\x15\x09e\xe2%\x10\x91\xf8\
+]\xf8o\xc4\x13\x14N\x94\x884\xb2\x10\x88<\xd0\x7f\
+%&\xcd\x0d@\xa2r\xab\xe4\x95m\x95\xcf\xbf\x01\x09\
+\xf5\x80\xfca\x9dW\x961\xd7}P\x00\xb2:\x12\xad\
+\x12\xc8/\x1e\x93\xad@\xcc\xdb\xd6`\xce\xe9\xb6\x82\x8e\
+\xbf\xaa\x0a\xb8I>\xf1\xdb\x88\x8b\x08\xe0_\x1dV!\
+q\xf1\x87D\xde\xeb\x80\x9b\xc2\x01\x89?\x90\xb8\xfc\x9c\
+\x82&-]@\xf6g?S>}.59\xae\xac\
+K\xee\x9f\xd6\x0bH\xf8\x88;(\xf86\xdc\x15\x8e\xfb\
+H@\xd3\xa3O<\xb5\xd1\xd4\xcbr\x8b/q\x0f\xe3\
+\xd7\xca\x7f\x13\x07\x83\x9c\xe5\x1c\x02\xd9B\xfc\xa4q2\
+2\x92\xfb\xc5\xef$\x9e\x02\x19!\xffu&o\x7f\x1b\
+\x08\x01\xf03=\xb8'\x14P-\xaf^\xfc\x7f(@\
+Z\xaab\x8bd\x81\x02\xfd\x87=\x15\xf9\x15e\xfe\xb2\
+\xe3\xf3\xd2*c\x13\xd3\xf8\xdbU\x00DE\x91\x8d\x9f\
+\x00F\x81\xae\xd96\x09(4\x80\x93'\xc2\xfe\x0b\x99\
+\x16\x13\x8f\xf7c\x80Xh\xe8\x98\xf2\xa0\xe9\xe1\xd0@\
+;P\x91\x83\xe5\xca.\x10~\x02@^\x9f\xfb\xa5\xe2\
+\xd9\x90\xaf\x01\x953d\x98\x09\xc0\xc4\x01\xd2O\xc6\xa8\
+\xc9\xf4\x8c\xb8\xff5\x94\xf9\xe3\xe78\x1c\x0fk\xe2\xdf\
+\xa1\x00\x0a(,\x01\x8e\xd8\x8f\x93\xe3\x9f\xac\xea\x15\xe2\
+u\x10hd\xa2\xf3y\x80\xac\xb0q\x10H\xe0\xf0\xab\
+\xd29Z[\x7f\xcf\xfd\xd3j/v_W\xa0Y\x90\
+,\xf8\xf9\x9b\x96\x04&(\xdc\x0fT\xd6\xef\xd1\xf8\xdf\
+\xae\x055K\x09\x136\x86\xdf\x0c\x0eL\x0aW34\
+\xc9\xffHH\x90`Y\xa4I8p_\x04\xea<\x07\
+2\xefk\xaa\xc2\xb4\x95\xe6\x1d\x1b\x06\x19\xd8%\x94\x89\
+c\x9c\xa9\xbc\xb7\xac\xa2\xfc\x9c\x8d\x86\x8d\x03\x87\x80\xca\
+\x00\xe4\x1d\xbc>-\x0e\xa86\x90\x19\x06\x81\x80\xc3\xa0\
+\x8a\xbd!\xf4\x92%2Y_\x93\xc8\x82U\x98\x83\xc2\
+z\xf5\x22\xa1s\xc2\x80u\xae\xde[\xb7$\xb0\xde\x08\
+|h1X8\xacJL@vIB\x8a\x8dZ\x95\
+:\x07\xdc@\x0090\x19G\xd6\xd1\xdf\xb4\x01\xb2\x1f\
+\x1c\x11V\xcd'2\xc6\xbc\x1f\x89\x0d6z\x10\x00$\
+b\xd4\x0b\x8d\xfc\x0c\xa4`F\xf6\xa8Bk\x87\x84\xfb\
+\xa0\x05\x83L0\x1c\x05TD\x0f\xcfV2\xe2bY\
+w\xa5_\x1c\x08\x93]\xc3*H\xac\x1cs\xb35\x8b\
+,\xcc\x81\x05\x89'9\x04\xae\xa0\xc3U\xc0s\xa0\x05\
+\x84D\x0c\x8e\x09\xa4q\xc8\xb1\xc1\xee\x8f\x8e\xfa\xf2\x83\
+>}\xb7UX\x86\xa8\xdf\x15\x10\xf5\x5c\x81;\xb9\xc8\
+\xa1R\x99\xf6\x01\x052c\x9909\xc4\xdbT\xebv\
+\xab\xbcr\xca\x95V\x18\xe4\x9d\x22@\xbe!\xcb`=\
+\xd6\xff\xbd$\x10L\xb2\x08{-\x0e\x9f*\xd4&i\
+\xa4wS\x90u\xe6_\x97\xff\xa5\xeb\xfca\xe9\xfa\xfb\
+\xb0\xb4\xed.\x91,d\xe1\x0e\x0c\xab\xd4E\x09\xc8%\
+\xf3\x9aW\xc9+\x14\xb0\xce\xae\xa0\xa58\xcc\xc8\x02n\
+/(\xec\x0e\xa3\x1dG;V\x8e\xb3\xd4\x04,\xab\x85\
+,\x0f\x01?\x9c\x1b\xe7\x08\xcaK\xa5\xe5\xba\xe1y\x8e\
+\x0e\x0a\xab\xf6C\x1c\x08\xe6\x91*\xebv\x94Y/z\
+>\x99\xa3\xe6\x01\xe9\x9f\x1f\x5c\x91\x0f\x06\x12\xe3\xcf\x95\
+\x0c\x1a\x9c\x04_\x1f\xc8\xbe\xec\xb8p.B&\x05\x9b\
+\xf5-\xc3\xfa\xea\xf6\x0c+\x15x\xa0\xb1\xdd\x8b\xc3*\
+\xb2?H\xfb\x84\x90\xe8\x0e\x09\xabd\x89P\x07\xd0\xf8\
+\xd0\xb2\x00\xc4\xdc\x08)\xc9\x8c\x19\x9a\x0e\x92\x86\xf3G\
+\xe4\x83f_\x86dq\xa1\xb0\x8a\x04\x92\xd6\x02\xf6\x0b\
+\xce+\x10\x80$\x98H@\x82\xb4#\xb0\xc1qV\x02\
+\xd3rZ\xf27\xac\x0b\xaf\xc4\xe3d\xcb\xb0\xa2\x0b>\
+>/\xacR\xb3P\x85\xd0\xf2r@~?1p\xb5\
+\xb8\x07\x5c\xf2`\xfd\x95a\xe9u\x16\x0aK_\xcf\x0a\
+K\xd7\x97\x0c\x15v'\x02\x9e\x0c\xcb\xac\xfb\xc9\xd2\xd7\
+'\x87\x09\xb1\x12\x15\xc2\xfd\x92}\xb8\xdag\xee\x0e+\
+-*\xf8I\xfd\xad\xc9n\xa9\x90X\x04( U\x90\
+\x0b\xa35\xe0e\x03\xcb\xbf\xe5TQ\x15\x90\xbf0y\
+2\xac\x90\xe69\xc0\x87\x13\x0a\x87\x9f\xf3\x9fV\x0d\xb8\
+K@\xae\xe8|!Aj$X$\xe8\xce\x15\x14\xfa\
+\xb0\x12\xf0\x1a\xb1\xa5\xd6\x95\x9c\x08\xfe\xa2\xc8M_R\
+%\xfc\xf1{B\x042\xfd\xfd\xf8\xf0\xb0\xea}\x84\x08\
+\xec\xdf\x12V\xc8qM\xbe)N\x02Z\xea@\x5c\x98\
+d\x96\x02\x05\xebK\x89\xc2\xc9\x1aaUe_\x09\x1b\
+T\x228w!\x83\x9c|&\xac\x92\x83\xc3\x1f\x93:\
+\x03$\xdd\xfd-\xfd\x10 |i\xeaK\x93\xcdE\x0a\
+zm\xe5\x97Gb\xf7;E\x1d\xa1\xfbuX\x85\xd8\
+\xd9|(\x00\xa4pc@\xf2L\x84\x04z[\xb2]\
+\xca8\xb9\x17\x192:\x02\x16\x02C\xbe& \xe29\
+\xe3\xa7?\x92\xb1mC\x81m\x9dJ\xcf\x1d\xd5\x98&\
+\xa1\x1ax\x98@\xc40\x0e&\xcd\xd3\xb9h\x92Oq\
+\x1e\xd8o\xf9\xca\xe8\x8c,\xe3M\xeb\xd0;\x86u>\
+YL\x89\x9b\xa7\x86V\x8f\xa9\xd3\x86\xd6\xa34\xab\x86\
+\xf5\xbd\x80\xfct\xfc(\x91\x962\xef\x0d\xc1\x07\xb1\xa7\
+\xc4\x0f\x08C?o\x02:\xfc~\xfcm\x90\x17\xf8)\
+\xda\x87i\xfdb\xff6d\x9f\x82\x0f\xeal\x0a\xe0Y\
+\xef>\xd8\x8e\x18\x900\xd6\x85\xa7\xa7\x9c\x04\x01\xff(\
+8\xe1\x87\xd2\xe2\x84\xac1\xdf'n`?\xa0e\x82\
+\x82\x9f\x90o\xde\x1f\xf0w)\x18B.M+,H\
+\x0a\xa9s9\xaeb^\x00\xfd\x07Q\x0c\xb2\x93\x16\x06\
+Z2\xf0\x9by\xbd\xdf\xa9\xb7\x9e\x16\x08\x02kH%\
+\x09\xe0\x19G\xfe\x11\x97\xb9b\xad\xc2T\x8bl\xe6\xfd\
+\xf0gi!@\xe6]\xad\xe1~\x7f\xceqZ\xd3h\
+=\xdf&\x9d{\xdbT$\x83p\x07p\x0e\xf3\xf9y\
+\x7f\x0a\xe5\xc4\x05:7\x8d\x00j9\xdfH\xb8\x89\x93\
+\xc3\xfb5\x85~\xc5A3\xae|\xea\x83XnC\xac\
+\xce9?w\xb1&\xfa\xc6\xd5\x07\xc3\xd1F\xc6\x8b\x83\
+4\xf2\xf9!/\xf3\xe9d\xc7+s}\x9c\xc8{\xa2\
+\x97\xec\xb8d!\x7f5_X\xd5j~nX\x95!\
+\x85\xe5R\x10\xac\xbc-\xbcP\x8e\xf0\xeeU\xa0\x8b\xbc\
+ \x0e\x122\x0a\x0c\x08d\x1eT\x00Y\x98\x04\x10,\
+P\x02\x17\x12\x09dl\x08\x00`\x81\xa7g\x16\x92>\
+\x1c\xde\xbf5\x90p^\x97\xc4\x08\x89\x00X\xde\xdb\x1e\
+{\xde\x87J\x06\xcf\xa5\xd5\x8d\xc4\x81Y\xc8z\xf7\x13\
+\xf5\xde\x0f\x959\x12\x03@\x87\x80\x18\xb3\xd0\x09\xb8\xd9\
+\x88\xff\xac\xc4\xc5\xa2\x0aX\xefR\x22\x81\x00\x88\xf7o\
+\xe5\x1bW\xd0\xfd\xb7\xc8\x06\xbe\xc61\xe5\xf3\xb1\xb0\xd9\
+\x08o\xd5D\xbfY\x0b\x89\x8d\x91\xca\x0c\x09\x87[D\
+\x8a\x089\x11\xe3\xd4\x90\x5c\xc0r\xe9\x0d\x86\xd7!\xb0\
+\x07\xe9A\x80\x0d\xbb3?g|\xf8\xf9\xca\xba.\xa2\
+\xcf\xb3d\xd3\x1a\x01\x14\x87\xcf\xdb\xb2\xf17\x99O'\
+\xa08\x08\x99/l\xa0$\xb4\xe4H\xce5\x9e\xbc>\
+\xf3\x16DJ\xf4\x02\xeeU2~\x0e0\x9a\xde}#\
+\x0c\xa8\x98\xbe'\xac\xea\xd1\x05\xa9\xc1\x06\x0f\xb2\x86\x03\
+\x14\xe4\x82\xc8\x04\xa9\x90\x98$\x0br\xc2F\xd6\xd1\xfa\
+\xb9\x8c\x1f\xcf_\x07%\xeb\x13}o\xb7\x1c\x90\xc0 \
+\xd1\xc1\xbc\xa5\xc2G%\x9e^~U~hU\xf0\xef\
+\x03\x85\x22\x13Oo<\xe3\xc9\xc1\xa8\xf5\xe5V\x1b\x02\
+Q\x12H\x8c;\xc8\x072\xbe\xac\xc7\x96d\x92\xcf\xc5\
+z\x87\xccQ\x95O\xf4z\xe9u\x9e\xbc;\xac\xaa\x00\
+\x80\xd8@\x07\xfa\xd4\xb0\x0a\xb2H\xc6\x5c\xe3\x04\xd4\x90\
+@\xca\xbd\xe1@\xc7\x7f.\xd2:d\x9f\xc4^\xef\xca\
+\xecJi\x9fX)\xeb\x22O\x87.\xb2\x0f.th\
+\x8f\xcfVz\x11\xa9\x08\xb0\x0f\xd3\xfb\x0eK6\x10H\
+\xc8\xf8p\x0c\x04\x81\xcd\xe7\xc3\xa7\x87\xd6\x97\x98W\xa3\
+\xef\x8f\x06\x0e\x07d\x08\xa5:3\xbdwXu\xf0\x89\
+\x04g\xf4\xe7\xb0J\xc7\xf9\xfc\xb0\x920\xee\x8e\x0b+\
+$\x83\xb9\xc7?z\xce\x1f\x0aS\xe2\xeb\x83Z\x17\xaf\
+\x97\xdc\xd0\xd2U\xc0\xcf\xbc\x8f\xc0\xe8\xe5e\xbd\x8c\xbe\
+9:{\x94\x02\xf7n\xaf\xb0\xac'\x9e{\xe0\xbb\xf7\
+t;t;\x14\xc4\x8a9\x06\xf4~\x96\xcf\xd3\xf9\xea\
+sV\xf2P\x9e\xbfO\x84U\x951\x02!\x90(Z\
+?\xa3=\xc3\xaa\x8az \x1e\x16\x12B\xe7\x8b\x052\
+Ke6(\xe0\x82\x04\xceH\x1b\xce\xeb\x7f\x0f\x8e\x8d\
++H<G\x10`\x90\x16\x89\x04*Ck\xd3}O\
+_\x1d\x96\xae\x9f\x0c\x1b\x9e_z\x82S\xd3o\x0fK\
+\x9f\xf7\x13\x83\xcev\xb7LX\x85 @\x1eQ\x09\x97\
+\xee\xa3a\x15W\x85\x02\xeb\xc9\x15aU\xcf%\xad\x84\
+\xaa\xa4\xc1\x19\xe1D\x19\x89\xa1\xfd\xb3y~\x22?\xe8\
+\xd6$t\xe7Y\xb7\x142\xd8\x0f\x08@\x09\x089g\
+\xe8\x89\xd5\xbe\x07I\xa69O\x94`\xef\xaf\x09K\xef\
+\xb7UX\xfaz\xbd\xb0t\xbd)\xacT(\x0d\xc5\xdf\
+*\xac$ PC\xca\xd0\xe5\x90\x95\xdbL=\xfc\xdf\
+\x08K\xd7W\x84\xa5\xeb\xc2\xfds\xfa \xbd{8\xac\
+R\x13X(,]\xff\x19VH\x8b\xd9_\xac\xce\x01\
+\xa2\x02u\x14\x10H$h\x91\xfd$\x81\xc5>\xa3D\
+&\xfb>$\xa8N0\xd2\xba\x82\xaa\xcb\x17\xb3E\xc2\
+l\xbb\xdc+\xfc\xc0\xe4\xc1\xec\xf0o\xa7\xc2\xc4[\x86\
+\xe7\x87\x0a\x0d-anQR\x02htoXf\xcf\
+\xff\xcb$\x90\x8d\xcbO\x96\x9b,WU\xb4\xe4\xf7d\
+n\x87%\xcb|\x9c\xbc2\xac\xf2+\xe3i\xbdU\x09\
+\xb1%*\xb2]\x1c|zf\x95H\xca\x9c\x04\xd3%\
+\xc0\xea\x9e\x08\xab\xb8\x14\x90o#\xa0\x00\xa9\xd6\xfa\x09\
+\x9a\x97\x9e\x87JP\xbb\xe2\x8a\xec\x1e\x15W\xed?&\
+/\xc5\x1f\x00\xb1\xa0\xc4\xe5\xe4\xd1d\x8f\x09I\xf8p\
+i\xfd\xcal\xf9\x1f\x13\x09\xe8[\xab\xd6\x80\xc0\x9b\xac\
+] \xc9\xe6\x84\xd9<,]\xdf\x19\xa6\x16\xa2\xbf\xe5\
+\xc4\xcay\x91X\xf1:\x8bUul\xb5\xefK]\xc3\
+-\x81py\xa06B\xe5\xfa\xd0\xb0\x92\xf81\x990\
+\xeb\xf97aU\xa2\x9d\xe7\x82\x1f\xcfsF\x16X\x10\
+\xef\x9c\xe8<H\x81\xed\xe9B\x94|\xa7B\x1e\x0a\x01\
+\x14\xa2\x8d\xb9\xa2\xcdsQ\xc1\x112\xd7t\xb6\x0d*\
+<J\xdc\x19\xc1\xa1\x84\x9e\x03=\x02[\xce\x09\xbe\x86\
+\xa4\x9a\xc4\x22*\x0c\xc8\xbdIu\x82D\x95\x13_\x9c\
+\xb3\xec?\xbc\x8f*\xfc>o\xf1+\x1bR;\xef\xd3\
+\x04\xea\xf8\xff\xf8;\xf4\xec\xabE\xce\xc8&\x90\x19\x14\
+\xa4(\x18\xe0\x87\x13\xc7\x800\xa0\x92La\x8d\xf8\x00\
+\xbf\x9e\xf3\x0a\xd5\x15\xe2\x0b\xe6--\x01\xbc/\xa4|\
+*\xa0X.\x90\xf1\xc0\xff'\xa0F]\x00\xbf\xab-\
+\xb8\xd1bK\xfc\xd6\xca\xb0\x12X\x93\x90\xe2\xfb\xfc>\
+\x09N\x0aI\xfc=\xe3\xc3\xe7\xa5\x15\x0d\xbf\xb0\xe5\x96\
+An\x0f\xd2l!x}\xdf$$\x18\x17\x05\xec \
+\x04\x8d\x90h9\xd1Z\xc4/\xe3\xa7\xc4\xad\xc9\x11I\
+\x00P8\xe2s\xe2\x97\xb2\xbf\xe8y\xccP\x81r\xaf\
+\x14\xb2\x1bb\x97\xce\x99\xb8_\xaa\xe2\x92\x1c\x84\xfe7\
+a%C\x99\xc9\xbe\xbe/\xf2\xa98hOJvr\
+\x05]Te\xbc?$\xd9\xc1\x95\x1e\xa726\xc8\x1f\
+\x01\xbdecA&\x05(\x06\xba\xcc\xd9\x8d\xfcf\x09\
+d\xb2N\xe2\x875A\xceT\x0f\xc4\x8f\x95p\xb8F\
+\x03\xb1d\xd5z\xc0\x81N\x00H\xc0\xc7\xc2!SD\
+\xef\x0f\x1b\x10:\xdcb\x85E?\xddP\x112T\x04\
+\xa0\x04\xaa,(\xf4p\x95!7\x1b<\x0f\xea\xc5\xea\
+\xa9}\x81\x02]\x02\x01\x1e\x18\xbd.\x04f@Z\x08\
+t\xd9\xd8\x08\x18!\x13\xa4\xd7eu\xdd\x1f\x81t\xc3\
+F\xee\x80\x15\xc8<\x1b\x0b\x13\xb5\x09\x90G$$\xd6\
+\xd7\xdf\xf39%Oh\xc81\x01\x10?g\x5c\xd8\xa0\
+u\xa0\x07\xb7k\x0eP\xd9`X(Z\xd8@\x1f=\
+\xbe,|\x16\xe2s\xc4bN\xcb\x07\x90[\x02|\xc6\
+\x05\xb2E2\xf2\xfc\xbcM\x04\x00\x1d\xe2\xfb\x04\x80$\
+\x04\xa8\xec\x93\xa1S\x02\x06\xfde\xf7\xf8\xf2\xb95\x9e\
+\xf9\xc0~\xb4\x0a\xf4\xd9\xc8\x99\x97\xccC*p\x22\x93\
+\x82\x84\xc4\x07\x0c\x8e\xb9\x107\xee\x99\x05\x0a\xcf\xe7\xc5\
+\xa1eCa\xde0\xef98\x98\x07\x04\x06\xcck\xc6\
+\x09\x87\x99\x8a?\xf3\x17rM\x05\xfeN4p \xa2\
+\x22\x00R\x81\x9eqA\xfb\x8c0\x10\x07\xc2\xe8{a\
+\x15\xbb1\xea\x01bo7b\x80\xc0\x18\x19;*J\
+\x04\xa6\xb4\xf4\x88\xb5\xdd\x01\xe4\x1da%1\x00\x02\x82\
+\xd6\x18\xcfW\x10\x10\xb0\xdb\xf2\x9cy\xee\xcc\xe3\x96\xe4\
+\x85\x0dW\x81\x9a\xd7;\x89G\x109T\x12\x09\x94\xe9\
+!$\xd0A\x7f^\xbd\x9d\xa3\x13\xc2*\xf95\xa0\xdf\
+jA\x98^1\xac\xf4n\xe2\x90%\xf7.#\x1d\x1c\
+0S\xe9V\x85\xc6\xe3#\xe4\x08l\xcaQ\xd7\x8e\xca\
+\xb69\x0c eT\x02\xc2\xac\xc0d\xc4q\x84\x98\x9f\
+8\xbc\xb0(\x9f\x92\xec\x0br\x84\x8e\xaa\x12\xb5gL\
+\x9d\x11j(\x11^\xe5\x00\x9c\x84m\xa8\x00lV*\
+dF\x88\xbd&\x831\xa7\xcc\xca\xa1\xcal\xf7\x83\xb0\
+4\x0e\x1f\x0eK\xd7\xcb\xc2\xd2\xf5\xc5a\x82\xf4G\x85\
+\xf9Wa\xd5\xfe\x16\xb8\x8d\xc3\xaa\x83\x96\xd6\x94H\x8b\
+\xc5\xb8\x9f\xad\x80\xff\x8e\xa1\x97\xdf\x81}\xf4\xd4\xaf\x96\
+\xc7)#o\xd2\xe9\x9a{t\x81\xbewW\x85\xa5\xeb\
+_\xc3\xd2u\xbb\xb0\xaa\x02\xbf\xd8\xc0\xc1a\xc7\x1a]\
+o\xe9\xa9O\xef\x1cV\x12]\xee\xb5}*\xacB\x14\
+(\xc1\x9b\x03\xa4\xe8\xf9\xbf \xd9\xb7J\x00\xe7\xcaR\
+t\x84F\x80\xb9sX\x91\xd1\xb4^\xf9\x09\xaa,n\
+\x19V\xf6\xaf\xd19a\x159\xdd\xd2aUe\x96V\
+\x19\xc9\x86\xbaUF\xf3\xcc,\xe1J\xa8\xe1\x10w[\
+\x87e\xf9\xc4d\xe9\xfb\xfb\x85\x95}\xb4\x7foXU\
+\x19\x81\x1cL\xba\xc9F\x02Q\xb1g\x5c\xc5\xc5a\x87\
+\x8e\x84+=\xfa W\x04\xad\xb6C\x087\x8dz\xe0\
+\x9d\xcfc\xdf\xe5\xdc\xa3\xc5\x07d\x0d\xdc\x14\xc8-\xd1\
+\xcb.\xc7/\x05\xea\xc9\x0a\xb4\xbf_;\xac\xb4\xea8\
+a&\xbd\xef~\x95\x81\x1c\xb3\xffKX\xba\xfe9\xac\
+\x82\xdc\xaf\xde\xaf\xd6\xafV!\x0024\xa2\xa8w\x98\
+M^\x8esN\xd8|\xbf$\x98M\xd6\x8aC)\x7f\
+\xc2\xea\x00\xb0\xf6\xc7<\xd9\xa9\xe2F \xb1K\xe5Q\
+=\xee\x0eT`;\xbfH\x01\xc6\xd1C\xcf4*\x22\
+\xfd\xe7\xfb\x93\xfa\xcf\xa7\xaf\xaf\x08K\xbf\xff\xea\xb0,\
+\xeb\x97,\x8d\xe3Ea\x05\xeaku\x95\xd7\x8a\xf4\x96\
+\xf3\x86\xc4\x8e\xb8ZL\xfex|\x0e\xe1\x86yq\xa4\
+*\xc2{\xab\xc2\xfa\xbd2.>'y^\xd1\xaa\xb1\
+my_Z\x05\xe6\x9c\x1b\x96\xeeo\x8b0\xb5\x5c\xbc\
+\xad\x9c\xefNh\xf2\x0f\xae\x02\x12Vja1\xdb?\
+\x81?rn \x04`\xadG\x86\x10\xee\x01Z\xc0\xd4\
+z\x17\xe1k\x04\xb0\xfd\xec\xb0J\xe6Q\x09U\x10+\
+~.\x04\x8ab'77E\xa4S\xf6\x1e\xd4\x86b\
+?\xe9\x0e\x08+\x5c\x04\xf9\xf9\xa4}\xb4{wX%\
+\x8bM\xe0A\x02M\xcf\x81\xc0\x1e\xb5\x11\x07\xb6\xf8\xf1\
+\xac'!\x18]\xb9W\x01#\xab#\xac\xae\xc2\xde\xdb\
+K\xa2\xc7\x05\xc0`\xf3?FH\x8a\x1d+h:\x09\
+3\x91\xadA\xe6\xe8\xdf[*,]'\xc9\xbd\x9a\x94\
+\xc4\xbe\x91\x1a\x14,\xd6\x92_Mb\x05\x0e(Z/\
+\x98\xd7 \x81(\x90P\x00\xc5\x8f&@\xa5\xa2\x8f\xff\
+\xces\xa0@\x07\xb2\x09\x84\x91\x9e\x8b\xf75!\x8f\x91\
+\xdb3\xb9,~\x12\x09\x94 \xb7\xdc\xadB\xfe\x810\
+d|\x09@\xa5.\xc2s\xb1\xaa@C>G\xa2\xd0\
+-\x9f\x04\xba \xfe(X\xd1jB\xa2\x02\x7fU~\
+\xa7+\xd2\xbc>\xfe\x01\xfe\x12~\xd1\x0da\x15\x94\x9f\
+\xd6\x11\x90\xd8 [HX\xd0\xe2\xc1\xeb\xcb?4\x92\
+\x96\x82+\xe7:\xfb\x16q\x8a\xfc`s\xf6@\xd2\xca\
+\xfb\x92@\xc0\x0f\xa7`\xd8\xa8|q\x8e\xe5\x16\x9b\xeb\
+\xab\x84\x06q\x08~\x22\x90|\xc9(\x13\xbf8\x10\xe7\
+\xf7H\xfc\xd0\xcb\x0f\x12\x8b\x84\xda\xdd)B\xba[\x08\
+\xbc[\xaa\xfb\xe1\xf3Q0\xe3}\xf8\x5c\xc4GM|\
+\xe2\xcf/\xae\x80\x999\xeb&[\xa7\x82\x22\xfe5w\
+\x8f\x0f\x95\x95\xe9\x02m\xcco\x17\x01\xc4'\xb3\x0d\x95\
+\xac\xaf\x149\x99\x0c-K\x07x\xf7\x8f\xb0t\xbd&\
+\xd9\xb5\x05\xe2\xe1\x1e\x18}0\xe4\x81\xc8 \x01\x11\xb3\
+<\x0f\xbdz<\x10\x0er\x0e\xe6\xa8d\xcd\xd6\xc0\xde\
+\xac\x8d\xee\xf7\xba\x9f\xf9$\x832R\xc0\xf0\x8dj#\
+\xd2\xc2\xa0\xf2\x95I\xad\xbe\x94{\xae\xf6\x89\x8a\x903\
+5\x0c \x13\x8b@\x87\xaf\x09\xdc\x98\xe8L<*\xe4\
+\x1c\xb0L|\xc8\x96\x80J\x13`\x90Y\x9aW\x13\x8e\
+\x00\x03\x12;\x027\x02P\x1e<\xe4P@\xd3\x09\xd8\
+ _$Q@\xe2\x02n\x06\x10\x06$\x0e\xda+\x01\
+b\x1b\x00?[e\x9f\xf1`\xdc\xf8<\xf3(p\x90\
+\xc3m\xd2&\xc6\x05\x15\x03\x02\xee\xbbu\xc0\xd0\x1a\xc0\
+\xeb\xb2`P_xt\xf2X\x0e\xa0_\x16]\xab9\
+\x00\x1b\x02\x0f\x16\x06\x0bjI\xddwK\xca\xb1\xb1\xe4\
+\xefV\xd3x\xbcY\xe4Qp$\x88\x8d\xdb\xbd\x5c\xa3\
+F.\x102@6>\xee\x93\x00\x90k{\xff$\x02\
+\xc8\xd0\xb5H\x016Z\xc6\x91\x83\x9b\x0d\x13\xd2< \
+\xafT\x98\x91\xbf\x94\x1a\x80+\xe0lh\xf4\xe2qP\
+!\xf7wqX\x15h\xd2\x0aC \x0f\x14\x99\x83\x91\
+D\x10\x1b\x0a\x1b\x1e\xef\xc3\x95\xe7\xcf<SB\x01\xe8\
+V\x96s\xdb\xb7\xaa\xe4\x13\x08j_\xc1\xc14Y\x9e\
+\x1c\x09'\x06\xe4x9\xb0\xf8IX\x05QS\x80\xed\
+\xf9@O\x1f\x88\x01m\xf8@J\xad\xaf\xce\xba\xa1\x82\
+\x83.=P*\x12\x03 \xa0p\x04\xc8t3\xaf\x81\
+\x86\xf1\xfc\x08D\xd8\x07\x04]7BG\x88\x00\x1c`\
+\x8f\x0b\xbd\xc8\xb4n\xa0\xbf\x0e\x1b\xb3*\xeb\x19\x92\xf9\
+\xb6\xe2pL^\x1cV!\x1d@\xb2 \x7f\x07\x14\x0f\
+\x8e\x87\x03R\x98~@E^D @\x85\x90\x7f\xb4\
+BQ\xf9 \x81\xc4~\x05\x17\x04\x95\xbfF\xdf\xdd\xb2\
+\x8f\x22%\xa4\x12gN\x0a\x12\x088\x16\xc8\x8b\xc5_\
+]Yq\x99\xa8RA/\xb0\xe5\xf2\x1e\x1ez\xd33\
+\x0b~\x90\xe0\xdd\x90\xec\xf7J|\xdc\x9d!\xf7\xe7d\
+90\x12E8zd\xceq\xf0\xd8?\x90\xa1b\xff\
+\xb8Dl\xef\x9a/\xa3\x9f\x87\x15\xd2 \x93\x1e\xaa\xa2\
+a\x88;\xf3\x18\x04\x0c\x15\x85\x17\x0c\xfb\x91\xb9sx\
+\xfe$N q\xbc'\xac\xe2\xf4PB\x02N\x9b\xd1\
+\x03aR\xa3\xd9\xa3\xec3T\x9a\xf2\xefmW\xce3\
+\xf7\x10\xef\x18V\x1c\xc2\xc9|b%\xd78#\xa3\xe7\
+\xca\x1c\x09h\xf6\x89}\xd4\x03\xcb\xbc\xd7\xfe\xd0}7\
+,\xbd\xce\xab\xc2*H3\x01\x96\x1c?\xcb\x10\x8aD\
+p\xe6\x8a\xb0\xf4\xf7\xb7\x86\xa5\xedd\x81\xb0*`F\
+\x15\x87\x04\x14$L$\xfa\xee\x0b+\xf3a\x92\xff\x95\
+\xc0\xdb2Opd(\xe0A.\x0c\x127\xf6+\x07\
+RR\xe9\xe8.\x0bK\xdb\xf7\xc3a\x05!8^4\
+,]\xf7\x09K\xd75\xc2\xd2uvXz\xffk\xc3\
+\xb2|_\xb2\x22oi\xd5\x11\xc8\xd0XG\x87\x0f\x9c\
+\x08\xae\xdco\x1c&\x12\xbb%\xca<\xe8o\x08\xab8\
+\x09Pw\xe1\xbc\x08\x8e\x81w\x96q\x87#\x00\x998\
+\xf7\x94\x92\x88\xbe;\x9f\xc0C\xe0qP\x85\x9c\xfa\xec\
+\xd4\x89\xb1\x8es\xa3\xe8K+\x12C8\x96\xd0\x97\xe6\
+\xf7I\xd4)al\x19Fz\xde97\x997 \xbc\
+X\xff\xc8(>=\x90Iz\xff\x13\xb7\x07\x95\xdft\
+\xcae\x16~\xd6W\xaed\xcf\xaa\x02\x17\xf6]!Y\
+3\xc2\xec\xc2\x8a\xdc-z\xfd\x8fW@\x91\xee\x7f\xbc\
+LX\xba\xfe;L\x09\x80\xf3\xd2\xd7\xefK\x16\x5c\x00\
+\xbf\x0a\xabZ<\xd0i\xa7'\x9a\xf3\x11?\x90s\x9d\
+\x0a\xa9\xf6\x17\x90\xa8p\xff\x80\xcc1+\xff\xfb\xa4\xbe\
+\xa2\x16E\x12;\xa8_\x10\xf0v\xc7\x87\xa5\xcf5o\
+X\xfa\xfe1\xc9>YA}\x81p\xc3&\x8e\xdf\x00\
+\x12\xed\x1bC\xebO\xe6\xdaI\xd7\xe9\x95\x93\xad\x94^\
+\xf7\xf9\xc9BVs\xc3\xb0\x12\xb8\xd0\x8a\xe2\xe7\xab\xc2\
+\xc1\xe8\x07a%\xe1g\xce\x8b(\x90\x9d^\xb8WL\
+\xaa+\x99T8\x14\xfac\x93\x1dW\xed/\x0a@\xb3\
+\x0a\xc0^%\xa0u\xcb\x8d\xd6\xa3\xf7\x03\xfc\x09\x029\
+\xc6\x1d\xff\x8dy\x8b?\x0b\x92m3\xc9\xcc\x0a\x89\x87\
+\x1a\xc0\xe4uaU\xc2\x90\xd6;\xce\x09\xfc4\x10\xac\
+\x04\xa0 \x1bo\xd3\xf8K\x95\xc3*9j\xb1\x04\xd9\
+\xe4y\x81\x9fH\xa2\x96\xf3\x01?\x1b\xff\x98\x04\x1c~\
+RC\x9amh7\x09\x02\x90\x03$\x9c\x84@0\xc2\
+\x0b\x889\x89\x1dZ\xacy_*\xf6 \xe1\x848\xcb\
+\x05\xde\x93\x0aw\x91IP\xf1\x8bx\x1e\xf8\xc1\x14\x98\
+\x16|&b\x99\x16.\x12\x8e\x8e\x9bZ9<\xfc\x0e\
+\xfce\x105\xec\x17\xfc\x1dl\xfd\x90\x11Ry'\x01\
+@K(*\x17\x04\xf2$b\xf9\xbc\xc8\xd9\x12\x1f\xb2\
+\xbf5\xc8n\xabC\xd0R\x80\xdf\xce\xfaoT\xd9(\
+\x88#\xff\xee\xe7\xcf\xe7h\xf7\x0b\xde\xef\xb14\xdb\x1e\
+\xab\x10\x09\xf8\x95|n\xe2\x0b\x90\xbeR\xb71\x92\x80\
+V\x1c\xde\x07RH\xf9\x873\xd3\x8f$K\x13\xba\xfb\
+C\xb2\x9bJ\xc5<\x03\x13\x0f\xd4D\xb9\xadd\xea2\
+9\xd0\xc1\x05jE\xe5.g\x02?\xa6@o\xcd\x01\
+\x12\x92\x91\x04\xc1B\xbfH\xb5\xd1\x13\xf8\xb2@\xa9\xf4\
+\xe2\xb0S)W\x05\xd9\x90\x1022\x04\xa2q|T\
+\xb2|L\xfcn\xcd\xb0jC\x16\x1b\xacIaD\xca\
+\x02[4$\x87\x93-\x92\xbd&Cr\xf3\x06C&\
+\xd2\x95i\xc8N\x080 \xe3#s\x83\xac\x10\xbd\x1a\
+m\xa0\x07Y\x0c\x10\xe3\xcd\x95\xd1\xa6\x02\x01\xe4\x85L\
+\xd5\xba\xaaH\x11`\x90iba<O=73r\
+\xe4\x1b\x16\xe3\x14\xfc\x0f\x10qZ\x00p\xb4\xa9\xf4\x92\
+X `\xc3\x01\xe1\xbe\x09\x1c\xdb\x1e&9\xe8\x93[\
+\xc3*\x95\x01&\x1a\x81`S\x195\x9b\xf7\x86\x22!\
+$\x80\x5cN\xac\xe4\xbf\x1aX~S`?\x90\x9c-\
+\xa0\x0d\x83\xd7#\x812k\xb4`>\xe8#\x90\xdf\xb8\
+\x22\x13\xa4\x87\x1b\x16\xf6W\xaa\x02]T\x17\x06\xa8'\
+\x5c\x0e+4-\x02T\xe8\xe5 Yf\x8f\x0a:\xd7\
+\xc7t\x00\xf0y9\x10\x9a\x05V%\x22\x06\xc7\x9f\x03\
+\x88\x00\x1a\x07\x88\xe7J\x0f\x13\xfa\xea\xa8#\xf0\xdcH\
+`\xf0\xfa\x92#2T\x8e\x8dG\x8e\xa03\xba$\xce\
+p\xbc8\xb8a\xdf\xc71\xd1F\x0c\x14\xd9\x01\xbcz\
+\xec\xfc:\x04h\x82\xdeW-!\x03B\x80u\xcc\xf3\
+e|\x99O\xf4\xea\xaa\xf2i\xc7\x84\xbf\x87\xf5\x1b(\
+\x16\x19iH\xf7 \x89\xa1\xc5\x81@\x9a\x1eq\xd6\xa9\
+\xf6\x15\x93\x0e\xe9\xf7]I\x17[\xac\xe5\xf6x\x1eT\
+\x06`k\x16I\x953\xf4 \x08 +\x05\x9a\xc8\xe7\
+D\xf7\x18\xf2F\xc9\xd0Y\xb6\x05D\x03\xf3\x91\xe7\xa9\
+\xf9\xd5\xad\x1cV\x05\xe8@\x8f\x91\x9bZ6\xacb\xf9\
+%\xa1C\xcf#\xfb\x12\x07\x10\xeb\x90\x1ef8U4\
+?I\xa8e\x08\xea\x02\xf9\xf7\x07\x0e\x98P\xc5\x0e\xc8\
+\xfbij=\x00\xf9\xa1\x80\xdePv\x02~}\x9e|\
+\x1eM\xaa\xf1\x14D\x14\xe4\x94[+\xd4\xb3j(1\
+\x89\x01\xcd7WZ\x05)\x8c\x06\xb2,\xe7'\xa4\x06\
+\x95\xc4n\x81\xb0\xc2!A\x0f \xe4M\xb0rgr\
+\xb9\x03+v\xe0\x22\xc73\x9c/\xcc7\xed\xd7\xfd\xb7\
+\x93Eba\xd7d\xbb\x15\x07\x81\xd6\x85~\x8f\xb0R\
+\x016Y\xdd\xaa\xd2\xfb\xbem8\xe8\xfb\xab\xfb\xab\xfa\
+\xab32\xe0\xb4L\x8aGo'\x09^\xf6#\x10?\
+\x92\x1b$p\x22\xc1nh\xae\x90\x07\xdd\x1da\x22\x05\
+zM\x81Z[mA\xd0\x7f\xe6\xbf!\xd6\xe20\x98\
+\xbc<\xacp\xf0\x98U|\x8b\xa1\x97\x15=\xe4\xfe\xe8\
+\xb0\xca\x91\xe29\xab\x15b\xb2\x95\xe4(\x81\xda\x02\x8d\
+\xde<\xac\xb0\xb7\x9b+B\xba\xf7\xfd\xbb\xc3\xca\xefw\
+/\x08K\xdb\xe3\xb5a\xe9\xebk\xc3\xd2\xf2\xb8=,\
+\xfd\xfe\xd7\xc2\xd2\xf5\xd5a\x95#\x8b\xe3D\xa5R\x89\
+;\x02v\xa0\xa9 \x17H\xc0MV\x0c+\xb2|\xfd\
+_\xc3\xaa}X\x01\x22\x0eW\xff\xeb\xb0B\xe2\x87\x03\
+=g\x1c\x96\xae\x17\x85\xa5\x9f\xbf#,]\x7f\x1fV\
+\x05\x18\x22\x9f\x83\x05\xbc;:\xac\xac\x1f\xf4\xdd\xe9\xc5\
+Na\xf9@\xf2\x08\xb2A\x81\xd3\xd4\x16R_ \xa1\
+\xaa\xf3\xcd~\x0d\x10\xecp\x1f\x1f*P\xfa\xdczy\
+\x9c\xe6\xd5\x17+\x99\xb5\xaff\x1e\xf3\xe2Wi\xff\xcc\
+\xfe\xd0\x169`:!\xcb\xe7\xdd\x91YxJ\xab\x16\
+2\xab \x85H|n#\x087\xe7\x0d\xfb\xa1H\xff\
+hE\xe8\xdf\x16V\xb1Vk^\xc1\x9d\xe1\x8a'\x15\
+R\x15\x98\xacw\x7f\xe9\xe0\xbfu\x1f\xea\xf6\xe9\xf6)\
+\xadJ\x93YaJ\xe8F\xc2\xf4\xd1d\x8f\x98\x13\xe1\
+\xfa\x00\x00 \x00IDATU\x95\xf8\x08\xa8\xd3\xfd\
+\x8f\x0f\x0bK\xcf\xed\xb3\xc9\xd2:\x99ssX\xfa\xfe\
+\xb7\x92\xa5y\xd5\xff(\xac\xb4j\x80\xa4t\xa0\xc5\xf9\
+\xa6\x80\x8d\x0a\x9cI[\xe9E&`!\xc0\x22Q\x02\
+\xb2J\x1c\x11\x19y\xb0ME\x86\xaa\x82\x0e\x9c\x22\xa3\
+?\x84U\x09`q\xa3\x18\x81\x81\xdf\xa2\xd6\xa9\x8c\xa0\
+\x89D\xf3\xe7\xb3\x19Z\x9f\x13\x98\x1f*\x89\xb7\x8c\xc3\
+;<\x8d\xe3\xc7\x93\xa5\xf1\xe8\x8e\x18\xd8\xfd3\x92\xe3\
+\xa2\x0a\xd1G\x01\x83\x8a\xb6H\xf0 \x0bM{\xce@\
+R\xaaDO\xdeWNQ\x22m\xed\x0aq\x01\x87\x8d\
+\xd6/-]\xfd\xcea\x159\xa8\x02\x1bs\x1f\x08Y\
+a\xd9>\x05\x9a9\xf1qL\xa5\xc2\xa0\xe7\x9fv\x9f\
+W\xc4\xfec\x9d{\x0ax\xf8!\x8b\xeb\xbc>}H\
+|gR\xb6\x97UHNz\xe7\x09h\xf1\xe3\xd4\x02\
+\x99\xeef\x80\xa6\xab\x85\xca\xaa]\xe2\x0c\xc8\xf1\xd2j\
+\xd5\xf9N\x85\x5c\xf2\x8fN\xa4\xe2_\x13\xc7\x90x\xc6\
+/\x13\xc7\x84\xfd1\xe2 \xce\x7f\x02l\x0a\x18p\xc6\
+\xa8\x05\xc3-\x0c\xe2\xfc\xb0\xfa\x88\xfcq\xb7:S\xd9\
+'q\x06I\x1f~\x9f\x0a`\xae \xef\x12V\x05\xaa\
+T\xf2\xf9\x9c7\x0f\xad\xbb\xfe\xfb\xf6\xf3\xe2\xe7\xc1\x8e\
+\xcf\xf7\xd9\xcf[R\xbe\xa6\x12\xef\xc4<H\x0c\xe2K\
+%\x0c\xdcB\xca~Nk\x0c\xfe*\xfe\x1a\x85^\xe2\
+ \xbe\xcf\xf3&\xae\x02\xd1A\x82\x82\xc4D\xdb\x22\xca\
+\x95\xbfo\xe2\x8b\xb6\xa5|\xaeV\x8c\xf6\xf5\xf9\x9a8\
+\x83\x83\x1a?\x5c\x7fg\xc4<\x5ct Q\xdbD\x0f\
+\xef\xa7\xe763\xfd\xaf\xb0\xaaw\x8e?\x08\xf7p\xfe\
+\x8a\x14I\x1bQ\xeel\xf9\x88n\xa4\xafX\xb3\xa3\xe2\
+p^\x15\xe0D]\xfaHm\x80\xebT\x81L,\xbf\
+\xa7K\xa5\xcf\x81:\x03\x0c\x09\x9b\xc8\xa9\xfc\x81\x0b{\
+\xfcpP\x01\xc9\xa3\x17\x9f\x80\x0b\x07^\x10,H\x10\
+\xcc\xa6\xb9\xb9\x02CX\xf3W\x10K\xa8\x1c$6l\
+W0\xaeS\xe0J\xcf&\x81&\x01\x22\x10-!\x18\
+,\x0fH\x06\x8c\x00\xbf\xd5\x9f\xa7Wf\xd4\xc8\x1c\xae\
+\xa4\xcc\xd5\x9d\x22[{\xd2\x95\xe6a\x83\xc1a\xe5\xf5\
+x\xa08\xfa\xe3\x86\x9d\x9e\x05\x85\xeed\xc3\xe2\x8d\xbc\
+\x98+$w\x0f\xa4D\xc1\x85\x9d\x1d\xf5i\xd8\xb2\xf4\
+\x8f\xf7gCG6\x8c^o2}-\x0b(\x0b\x8c\
+\xcf\xc38\xb0\x00IL\x90\x89\xc31f\x01\xb2\xa0\x16\
+\xcf\xf4{s/TH\xf9\x18G\xb5\x04\xa4\xf7|\xe6\
+\x82\x5c\xea\x99\xb2 \xbe_6\x96v|\x08d\xcau\
+\xf8>\xea\x04\xad\x0a\x00\xe3Of\x8ey\xdbr \xb0\
+\xce\x98\xff\x8c+\xe4\x98\x82:\xb9\x95`\x95\x86\x04\x92\
+\x84\x0d\x1b+\x81\xa0\x1c\x7fW\xb0\x19g\x1dd\x0e@\
+\xd1\xa5\x07\x1a\xaf\x84@t4GO3?'ps\
++\x0c\x9f\x87\xfb\xe1\xf5\xd9\x90\x1b\x19?C\x9ah-\
+hZ\x13\xd8\xb8\x0c\x91g\xe3#1\xc8?\x9e\x13\x9f\
+\x1b\x84\x0b\x0912\xf1p\x1c\xc0Y r>CJ\
+\xe9M\xa4\xc2\x0c\x87\x00\xeb\x1b\xc7K=\xa4\xb9\x97r\
+\xfb\x8a\x04\x92\x8d\x94\x83\x96\x96!\xe9-\xb3\x0e\xbb\xa5\
+\xc3\xaa@\x93\x03\x1aG\x99\x96\x08zh\x09\x84U\xd9\
+\xb7\xce:\xcf\x03\x99@\x1c\x12 \x95\x90\xa61\xefH\
+,\x08Zl\x87\xed\xa1a\x9d\xf7\x8f\x87\xa5\xfb\x9b/\
+\xacJ\x18\xc0\x01s\x82\xc8\x19a\xd5_J\x89^\x1d\
+\xec\xaep\x8bL\xd2\xad\x05\x221\xcc\xbd\xd0\xabT2\
+q\xb4\x1c\x81,\x89^\xe1\xdf\x146\xdb\x9c\xd6\x09\xf2\
+\xa9K\x93]\xa2\x9e\xed[\xe5\xf0\xdeXZ\x1d\x18\xcf\
+n&L2`'W\x81\xfb\xb1\xd9J\x02h\x81\xec\
+\x8a\x0d\xf3s\xa6B\x8aE\x98|Z\xe9\xbd7\x02M\
+P\xcf\xee\x9b\xc9\xce\xae\xf4\xd3\xa3\x82\xbc\x89Z\xc8\x8e\
+\xc9\x0e\xf8\xee\xa3\xdd\x8b\xdc\x11d\x96\x93\xcf\x86U:\
+\xd7r\x90\xbb[\xba[\xbb[J\xe0\xe7\xc0\xfc\x9d\xea\
+\xb9\x86\x14HPO'\x8cx\xce\x90=\x82\xcc\x22!\
+\xc4\xbc\xa6\x027\x09\xab\xe6\x89\x1cv\x02\x9e\xcc*\xfe\
+\x81\xaa\x82\xa9\xca\x85\x1dgU&\x92[;8\xda\xb0\
+\x97\xc3\xd2N\xe5\x8f}\x8b\xfd\x1a\x0e\x0dX\x87\x91\x89\
+To9\x8e\xa4\xa1\x9br\xc4\x8d4\x90\x0eywP\
+X\xban\x12\x96\x1e\xdbG\xc3\xd2}\xff#,m\xaf\
++\x84\xa5\xdf\x7f\x7fXu\xce\xb3\xcfj\x1f\x03\x1aK\
+k\x0bl\xd7 \x0e\x1c\xd8R\xb8\x90>\xb6!\xf2$\
+F\x14\x90\xb9\x07\x9b\x80\x96\x8a\xa0*\xb1\xfdZa\xe9\
+\xfa\xd6\xb0t\xfdcX\x96\xc3K\x96\xae\x07\x0e\xac\xf8\
+f\xfd\x96\xdf\x93e\xe5\xd2\xf96\xfd\xee\xb0B\x9ak\
+d\x12\xc8\xcbSG\xa7\x8dN\xcb\x90\xed\xa1r\xa5\xf9\
+a\x84\xc7f\x92\xa5\x02\xfa\x8f\xfca03\x1dZ\xad\
+3\xed\x0b8\xee8\xc4\xe6\x22\xd1:r\x85O\x89\xbb\
+\xfe\x17)\x00\xfbE\x91\x1dD_\xdd\xfb?\xe7\x0a\xbd\
+\xaf\xcfW\xa2\x0c\xae\x01%N\xa9\xdcZ\x8e\xebCa\
+\x19I\x93\xf7\x8d\xc9\xb7T\x89\xa3\xb7\x9c\xdeqZ\x12\
+\x94\x00\x98ZO\xe7\x152\x8c\xbb\x0cH%\xb76P\
+`\x22\xf0\x8b]q\x8e\xce\x8dYJlEk\xc5\x06\
+\xc9\xd2\xba\x1b?\x15\x96\xbe>+\xd9\xd7\xa5Vpo\
+i\x85r\x0b\x1b\xc80A\xa9\xfdyA\xd6\xa0\xd2B\
+\xab\xe9i\xd9\xca~O\x00\xadD\xd5\xe8Ga\xe9\xba\
+zX\x9a\xf7\x9f\x09+\xef\x0b\xc4\x18\x19@#\x9f\x94\
+\xd0\xb3|\xb0\xc8\xd8@\xd6t\xdf\x0bK\x9f\xe3\xdc\xb0\
+*\xe0a\xdfC\xeeV\xdc\x0a\x96\xd3F]\x06n\x9e\
+\xef+\x01N\x05sf4\xcfh\x9e\x8c4\x1c\xfe>\
+X\xf6\xff\xaf\x9a_b\xc1\x9f|br\xe4\xe4H\xf9\
+OO\x14RqC\xba/\x10+}|\x9a\x0b4\xae\
+?)\x89\x93\xf1EaUk\x9a\x10\x1d&\xcd\xd4>\
+\x02\xa7\x96\x912\xbbM\xde\x9e!\xf1\x8d\xfc8Pz\
+\x93T\x12\x98\xd3\xaa\xf0\x1a\x91\x0fo\xaf\xf3X\x9cJ\
+F>\xa0\x1aEb\x15\x99\xbbcT\x89\xd7\xfegR\
+@\xfc\x03!\x1e\xdc\xfa\xd1\x90};\x11M`GA\
+\x8e\x96_\xf9Y\xa8K\x10\xe8\xa7O\x99,]\xdf\x1c\
+\xf6_z\xd2\x89;hi\xc3\xef\x05!\xcc\xfd!#\
+x\xf6@F\x8b\xbf\x07w\x8c\xe7/\xfe;du \
+R\x1a\x8e)\xc7}\xb48@:Nb\x9b\x82.\xe3\
+\xa2\xfd\x93\xc4\xbde\xa8\x89c\xf0\x97\x19\x1f\xe61\xfe\
+\x0c\xfe9\xcf\x9b\xb8\x01\x7f\x94\xd6\x03\xfc\xa0Y\x8d\x1c\
+8\xfe~](\x9e\xf5_\xfc\xcc\xd2b<\x5c\x1b\xff\
+\x1b2e#\x01\x18o\xee\x97\xf7\xe1s\x910!P\
+\xa7\xa2\xafx\xd0\xa4\xd4\x14~o\x1b\x0a\xf0sqE\
+\xe8\xdc32\x12?\x01\x7f\x88\xc4\x0b\x89\x80\x96\x0cQ\
+\x05\xdc\x99\x5cw\xbe[\x0e\xf4\xcd\x0ad\xc6\xffE\x1e\
+a\xf5\xdcE^*u\x0bf\x019\xb3\xf3:\x03J\
+\xa5\x92\x80\x00\xe8\x05\xbd\x0a\xf4\xd4\xd1#\xcc\xc0\x00\xe5\
+C\x9f\x9c\xbf[\x22+\xd3O!W\xe8\x07\xc4\x03i\
+I\xe8\x98\x08\xb0\xbcS)Uo\xa7\xe5\x8e\xa8\xd4\x13\
+\xc8\xcdh\xe2\x00\xc5\x91\x83e\x96W\xe9\x88\xa2\xd7i\
+=n2\xb2T\x12\xe9ag\x02\x01\x1dg<\x09|\
+.\xd7\xc6\xb2\x9e\xc6eS!\x02$w\x07D\xdb\x13\
+\x5c\x81l0(d(=\x09\x13&\x06\x0b\x1eR=\
+2\x99\x92\xf91T|^M\xa060e\x1c\xc8\xb8\
+C\xd2\x02D\xf1QU\xbc\xdb\x8a8=\xfa$\x02X\
+\xf8\x04\xc4+5\x1c\x01-\xd9\x1e\xd0\xd6e\x07H_\
+\xda\xa4\x86\x8av\xe9\xb9\x1f\x9e+\xcf\x9d\xd7\x99O\x01\
+)\x1b\x0f\xd0|\xe4\x1d\x19\x8f\xc7t\x9f8p\xbd\x12\
+J8\x8e\xad\xec \xf3\xb1\x85\xe6\xf05?\x7f\xb2I\
+p\x90 `\xe1\xb3\xd0\xf9\x9a\xde|\x16.d\x92$\
+N\xb8_^\x8f\x8d\x86\xd7\x05\xf2\x05\xd4\x88\xdet\xf5\
+\x9c\x01\x15\xf5?\xc8\xa9\xd0\xe9\xde#\xacT\x04,\x97\
+\x16\x5c\x19\xd7\x96\x9eJ\xb7\xc8\x00]\xc6\xa1\xe2\x00\xe3\
+y\x12\x90\x00\x11\x93\xce\xb7\xa1\xdf\xc8M\x22\xa3\x09d\
+\x9e\xbf'qE@\x0eD\x94\x1e09\xde\x0e\x80\x19\
+\x07\x0e\x04\xae\xfc\x03\x89C\xe5\x5c\x1b?\xd05\xa0\xab\
+\x86n\x0b\x09`\xbd]Z\x8f\xe8E\xc6\xb1\xd581\
+\x0e\xaeT\x13\xa0\xf1>\xd2#\x86\xe5\xdc\x07\xdb>a\
+e~\xb3\xbf\xb9w:8T.\xaf\x0eh\x12\x90\xec\
+;\xaa\x9c\x91p\xb4C\xad\xf95\xfa\x9e\x12\x17r\x8c\
+\xa7\xd6\xd0\xbe\x09G\x04z\xf5\xeb\x0d\xdc\x19A\xc5\x95\
+\xa1\xe3\xd7\x0c\xcf\x1d\xa8\xa7\x1d\x8f\xdb\x15\xe0\xa1\xaf\xfd\
+X\xc6\xbc\x84L\xdd-90\x8f^\xfeS\x8a<\x1c\
+\x0ej\xf7\xab\xb0\x12\x98\x8f\x1eI\x16P\xba\x8f&;\
+\xa4\xea\xd5\xfe\xce\xc0>=Zw`\xe1v\x0b\x84Z\
+A\xe0\x88\x80\xd4\x8f\x80i\xfa\xec\xb0\x5c\xa1JV\x91\
+\x0b\x82x\xda3\x9b\xf7g\xf4\xaf\x0d\xf9_<\xa7\x0e\
+\x1d\xc8\xe7\xe36*\xaf\xaf\x09S\xa5\xf0Q\xf5\xde\xae\
+Y\xb1M\xcb\xe1\xe2\xfc\xe8\x17\xe8\xe7\xef\xe7\xcf\xf3q\
+h\xc193,\xbd\xce\x1ea\x05\xe2\xdd\xff \xac\x22\
+}R\xc2\xc7dd8\xde$\xdeH\xa00\x8f\xd4\xe3\
+n\xa4\x0e\x01\xda\xcaC\x05}2\x1dV\xd4z@\xa6\
+\x00\x857\xfbyS\xe9\xb3\x1a\x0dPR8\x17\xd0\xdd\
+\xfeXXv\xd0\x87\x0a\xbb*\x8c\x0el\x90\xed\x13\x12\
+nr\xcd\x00\x91\x04\x92\xef\x96@\xc8\xb9\xf4\xdc\xe9\xdd\
+\xa5\x82\x0e\x82\xa3_\x22,\x1d#\x9f\x18t\xeb\xe1x\
+\x012\xd9\xfd+\xac\xb4xP\x18\xc8-~]\xe5\x90\
+k\x5c\xc7G\x87\xa5\xd7=8\xacJ,\xaa\xc2E%\
+\xb5\xffIXq\xf0\x09P\xc6W\x85U\xd0\xfby\xc2\
+*$\x1b\xc8\x00!\x18\xfb\x1f\x87\x15\xee\x84\xfe\xd0\xb0\
+Ra\xef\x8f\x08+\xeaBN\xec\xee\x1fV\x1c\xfb\xe9\
+\xbf\x85U\xf3_\xfbq\xb7\xe5\xb0\xee\xfb\x03\xc5\xf9A\
+\x02\x80D!\xbf\x0f\x99\x99T\x9b&{\x87U\x8ev\
+\xcc\xf7\x9f\x97s\x01\x8e\x00 \xe8\xec+\xd6K\x17{\
+=\x89\xab~\xfb\xb0t=.,\xaf\x83d\x05\x91\xd1\
+_\x1eV\x12\x22\x13\xa0\xfc/\x17{?*3z\x1e\
+p\xd7\xa40f`\xc9'\x00\xb9',\xbd\xce\xa5a\
+\xa5\xb7\x1c\xe4\x0dl\xeb\x93\x93\x87D\x05\x10d\xb7\x84\
+\xc8\xeft\xa5\x19}u% \xfaU\x93\xa5\xf1\x1e\xbf\
+;L\xad.KW\xbd\xd3T\xe0Id\xe3\x87\x80\xe0\
+:.,\xfd\xfe>a\xda\xdf>Z!\xc5t\xae[\
+UB\x89\xe6\xeeea\xd5\xb9\xa9s\xbe\xdf-\xac*\
+\x90P)$A\x8d\xac\xdf\x0e\x0a\xf8\x08\xd0iyc\
+\xdf\x93\xdfM\x22{\xfaUaU\x00J\xc2\x93\xf1h\
+T~\xfc\xf9a\xb5\xff\xaa8\xb7\x14\x98sn[\xfd\
+\xe4/C\xe2\xd7$\xe0\x9c\xe3\x0f\xa9\xc0\xb1\xbd\x10\xbe\
+\xec\xcf\xf8\xeb\x14\x8e(\xb8\x814\xde#}\x8a=\x8a\
+\xff\xd0o\x1eVq=@f\x07\x12C2\x9a~\xfd\
+W\x0c\x85J\x93\x9f\x22\xd3\x88|*\xfe\x02\x89C\x10\
+\x11<\xbf\x87\xc4~\xaf\x9ey\xef\xbb<WH\x1a\xe5\
+?M\xce\x0e+\xec\xef\xde\x0f\xe9\xcdG\x16P\x05\x04\
+\x9f\xdb\xa8\x05\xe1O~<[y=\x0a \xc8\x19C\
+b)\x04\x89\x91;\x22\xebt\xc1\x07\xb9D!\xaeL\
+\x8aJ\x81\x0a\x7f\xb7\x9dg\x90P+N0\x97\x01\x89\
+\x04T7\x90\x1f$\x91\x07\xd7\x01\xeaT\xf8\xd7\xc4\x1d\
+T\xa4\xf9<\xf8\xe9\xbc?\x89j\x12\xc4$\xf8(H\
+\xdc\xfbL\xb9o'\x90\xa8|\xf3\x0f\xbf\x90B\x0bq\
+\x1d\xfe<\xdf'0\x06\xa1@\x0b\x09HO\xfcQ\xfc\
+p\xc6\x8d8\x89\x7f|\x0e\x0ab\x5c\x09\xcc\x89O\x88\
+\xfb\x14/\xb0\xff;\x91\xce\xfbq\xae_\x9c\xf6\xaf\x8b\
++d\x1b\xf1#H\xe3\x16\xca\xcf}\xf0\x1c\x89\xe3@\
+\x12\xd0\x9a\x84\x1f\xc8\xe7\xa5P\xa6\xf5:\xa3\xf0\xa7l\
+tq\xdb\xd3\xd5\x07` \x91\xe3\x88^\xd8\x17\xa9\xa2\
+\xbfZ\x15\xc8E\xbdg\x0bU\xca^\xa4\xef\xaf\x5c\x91\
+\xe3\x01%\x8aN\xe5C\xb4a\xbd\xa0\xca\x98\x10\xd0\x12\
+\xe8P\xf9%\x91\x00\x84z\xf1\xa6\xd2K\xe6\x8c\xbf\xd7\
+\x06\xebJ<\x0b\x1e\xa8\x0b\xbd\xe68\xbc/\x10\xe9\x16\
+\x95\xce\xc2\x968@\xe8\xd5\x03\xe9\xcc\x17\x19%\xe9\xcc\
+{\xa3Q\x0f-\x95A*\x0fF\x00\x90Ha\x82P\
+!\xdbL:\xack\xaa\xe2\x8d\xbe\xfc\x1d\x0d\xc9\x06\x95\
+= !\xed\xf3\xa1\xc7\x97\x8c\x12\xd0\x18\x16\xf0MC\
+\xc64\xbd\xc7\x00\xe1\x84\xa4\x91\x09\xce\x04f\xa3f\xfc\
+\xc7Me\xfb\xa9\x06I@\xa0\xcf\xfb\xd0C\xb3\x91~\
+^\x9e\xd3\xf0\xfcx^$nPI\xb8o\xc8\xe4Z\
+f\x8e\xe7\xce\x84g\x82\x97\x00}\xb8\x96\xc0p8X\
+x\x1d\x12\x1e\xcb\xea\xfdX@\xfc>\xaf\xd3f\x1c\xdb\
+\xde\x9c\x16\xc9\xd0&L\x08\xf0Y\xd0\xca\xb0\x02\x81\x82\
+L\xd3\x01=\x1b\x122\x86p$p\xbf\xac\x07\xe4X\
+\xd4{G\x00\xef\x0a\x0d\xcf\x1f\xa4\x04\xbd\xdd\xcc;\x10\
+6$\x5c\xf8}\xd6\x09\xe3\xcfsTe\xce\x013\x09\
+:\xe6\x1d\x099%\xd8\x9c\xf0\x83\xad\xfe\xa4l\x85M\
+z}\x07\xa4\xc3\xfd\x09\xb2\xe6\x00\x1d\x07\x8bL7\xe4\
+\x8d\xaa\xd4\x19b\xcf\x86L\x02\x85\x1e\xf9\xf7\x86U\xd0\
+/\xc6\x9f\xfb\xc5\xc1A\xeeJ\x07=\x09\x0f\x1f\x5c\x04\
+4l\xbcdNA,\x01\xb1\x03\x02\xcd\xf7A\x06\x90\
+Y\xe5\x80\xc1\xd1`\x1fa]\x01\xc9g}\x01%\x14\
+t\xdf\xbd\xb28j\xf44Rq\x22 T\x8f\x1b\xbd\
+\x8c^\x7f K@\x16\xb1O\x82\xbc\xd8T\x5c\x0cb\
+\xe9\xf6\xfe@\xc6\x5c\xf2G\xb9\xf2\xf2\xb9*AA\x8f\
+\xbbH\x0b\xa7\xdf\x1b\x96Y\xef\xdf\x13$Q \x052\
+\x14\x7f~U\xa4/\x97\x9cb:\xe8\xbbC\xc3*D\
+\xd6\x12\x81)(\xec\xfdY\x9f\xfe'\xa5\x17\x99\xf7u\
+O>z\xcb@\x06\xe9-V\xef:\xbdl\xf4V\xf6\
+\xc7\x84U\x8e\x8dX\x9d\xbb\xc5\xc3\xd2u\xc9dKT\
+r\xb71\x0b\xf6\xa9\x9e\x13l\xc8\xb4\xbe\x08a\x83\xee\
+:\x95\xb7n1\xbd\x1e\xf2w;\x0c*\x00\xdd\xe1a\
+i\x9c\x16\x0e\xab*x\x92\x91\xb2\x0a\xc3h\x98\x1e\xe6\
+\xb6\x00\xe2\x09\x22@\xd3\x87\x807\xab6\xdc\x92!\xe3\
+\x83\x9a\xc3\x95C\x051\x7f\x8e'K\xa0\xe4\xc0\x92D\
+\xf8\x13\x99%\xc5\xe7\x9f{\x5cQ;R%\xcd\xfb\xd6\
+\x87\xc3\xb2\x03:8\xf4 _\x80.S\x89\x22!\x8e\
+J\x04\xfb\x22\x8e\xb0*o\xfdo\xc3J\xebN\xbfr\
+X:N>\x1aV%\xd0\xc5u0~(\xacp\x15\
+X\x8eW\x8eZ\xb7\x5cXz\x9d\xab\xc2\xaa\x80\xe1\xde\
+\xb0\x8a\xdc\x92}\x10RB\xf4\xe1\x09\x14\x91aS+\
+\xa0\x91\x00\xb4B\x80\x08\xd0\xfe\xeb\xdf[5\xac o\
+`W\xef?\x14\x96\xbe>*,}=\xff\x90(\xea\
+\x9f\x08S\xab\xcdc\xb9\xd2\x9d,\xefc\xc3\xbcV\xab\
+Zt\xbcG\xcf{\xb7MXr\xcc\xbe\x16Vz\xfd\
+\xbb\xa3\x86\x96\x81\xc9\xa2a9\xd16\xb0\xe3\x8f\xc3\xd2\
+\xcf\xbf\x18\x96~\x7f\x930\xad\x97\xbd\xab\xf3W\x8e\xbd\
+\xc9\x19\x91\xcd\x13\xd7\x81?\x878\x13\x90%\x04Q`\
+\xd2\xc1\x9b\xc3\xd2\xf5\xb9aU\xa5\xff\x05\x034\x9b\x0a\
+u\xb7\x96\xf6\xd1\xe7\x0f\x89\x8a\xc9\xb9BL\x1c\x1eV\
+\x05\xb8\xf4d#g\xa6\x8agK\xe2\xdb\x7f\xa9\xffr\
+\xff\xe5\x1c\xd8g\xb5\x8a\xc9\xca\x03\xfb>\x09\x9c\xfe\xae\
+0Ud\xaf.\xe4\x91\x99c\xe3!A\xed\x93\xbf5\
+~c\xb2t?\xfd\xab\x92E@\xf9\xfa\xb0\x8a\x14\x12\
+\x7f\x88\xc4\xfa\x91CE\xdbj\x04\x82\xac{\x1eh\x9e\
+\xfb\x1c\x95\x7fc\xe8\xbe*\xeb&=#\xb0\x93\xec\x9f\
+\xd5A\x94H\xf4\xbe\xcf\xbe\x0d\xdb\xff\x99C`\x1a\xda\
+\x07Y\xfd\x80\x80\x90D\x04d\xb8 \xfah\x95\x10\xd9\
+ \xcf\x1f\xd2O\xf7\xd2\xcb\xafu\xcf\xb3\x0az\xc9G\
+\xb9+\xfb)\xf87\xbf\x16y\xe6\xfb%\xb7G@|\
+\xae\x029*\x90\xec#G\xaa\xe7\x5c\x014\x89\x13\x17\
+\x0cnNv\x8b*\xed\x7f\xc8~J\x96#to8\
+2\x96z\xae\x90\xdbZ~\x97D \x90\xfak\xd4\x92\
+\xc8y\xc6y\x0b\xa4\x1d\x04,\x88A\xe2\x09Z\x03\xb6\
+VbV\x81\xbb9B~\x16V\x9d\xef\xc4\x11\xf8\x8d\
+\xa8\xf8\x88\x14\xd7j*\x04\xb0 \xab\xf9}\xc8#A\
+\x8eh\xdf1\xd2D-K\x86\xfe\x1f5\x90i\x9ae\
+\x9f\x80\x18V\xffS\xf4\xfe\x90\x96#\xf3G\x8b&\xe7\
+\xa8\xf6o\xb3\xea#\xe3\xc7|'\xce\xc0\x9f\xc0_%\
+\xe0&p\xe4\x1ca\x5c@\x92\x82D\xc5\x0f\x01i\x00\
+\x82\x0c\xe4\x18\xf3[~\x14\xfbLV\xb1Y\xf0\xbf\xa8\
+\x07P)\xe7\xf5\xb8R`#\xe0\xc5\xaf'!\x03b\
+\x81\x16#\xd4*hm @\xa6`[Z|\x878\
+\x81y\x8f?\xd7\xaa\xc5\xb5\x08a\xfe\xbe\xe50\xe0k\
+\xde\x87\xf1\xc1_%\x1e\xb8>Em\xd7W\xe3H\xfc\
+\xc5\xf3\xe1>\x98W\x90z\xaa``\x04\x02\xfb=\x85\
+Y\x90\x17\xcc\x03\x90\xabB\x80\xcc\xe4@|\xad*\xe3\
+\xb0@\xee\xbe\xb6N6\xba\xa1\x96\x05\x8c:\xde\xe6\x82\
+t\xa2\xdb\xf9b9\x0ak\xcb\x91yQ\xd9P\x9c\xf1\
+\xa1\x92\x1d\xcb\xae\x0e\xd8\xc9,\x12\x90\xe2h\x93)\xa5\
+b\xc8\xef\xb7\x90p\x12\x13@M\x81\x06\x83\x00 p\
+!Q\xb1\x92^g\xb6\x02\x13z1\x09\xa4\x09t\x09\
+Tu\xdf\xddj\xdd\xea\xdd\xea\x15\xf4\x85\x9e\xf1]\xc4\
+\xe6\xfa\xce\xc9\xee\x93\xdd\x8bLI\x0a:\x06y\xa7\xcf\
+\x0crEN\x04p\x1fd\xaa8\x08q\xc8\x81\x00\xe2\
+\xc0\x93\xe9a\x5c$/\xe2\x9eT2~\x90S\xb4r\
+nlt\xb3Dr'\xa8\xe1\x5c\x10{2\xa9\x0a\xa8\
+\xcc\xba\xfbz\xf5\x1a\xad-\x87\xf2y\x0a\x80Zd\x87\
+\xe4\xa8\xd2k\x0d\x15|\xc8\xe3\x08\xa0\xe8\xd5gA\xd0\
+;\xcd\x02b\xe3f\x03h{\x80\x80\xfepeA\x90\
+\xa9\xfc\xbb\x16.\x01#\x89\x8bi#\x04\x06\xcf\x8e\x0d\
+\xae\x95M\xe4\xda&\x06\xf8=\x1c\x5c\x10\x1c\xaaT\x8c\
+^\xa4^}6,\x16 \x15\xf3\x96$\xa8kZ*\
+\x94X \xc3i6m>W\x93)4\x84\x8e\x8d\x8f\
+q\xa0\xc2\x08\xb4\x1ch\x1e\x8e;\xeb\x85\xf1\x83,H\
+\x0e\x94\x13t\x04\xb8\xac7\xd6-\xe4A@\x05i1\
+\x10\xe4\xda\x81)\x811\x818\xf3\x83\x8a\xedn\xd9J\
+\x85D\xec\xdeN\xfc\x10\x08Q\xd9`\x83\x84;@:\
+\xbe\xb9\x22}K\xf5\x5c\xa8@h\x9c\xdcz\xd0\x90\x0b\
+r\xe0\xba2\xc8z'\x13\x0dI\x98\xa0\xdd&\xb7!\
+S\xcc\x01F\x8f*\xf3\x95\xfd\x82\xf9\xb1kX\x95\xc8\
+\x80\xe3\x83\x0a)\x88\x19t\xe5\xe9\xad\xdfz\xe8\xedu\
+K\x80\x90\x03T\xaa\x8d\xc0\x82\xf4k\x97\xa1\xb7\x1f\xc4\
+A:,\x07\x84\x88\x12\x19\xee!>\x7f\x08\xb0F\x17\
+H\x07\x99\x03\xe1\x85\x92\x13\x8c\x8a\xc7WJo)$\
+\x90\xddya\xa5'{\xba\x0fK_\x9f\x18V\x12'\
+\xdd\xfea\x95\x0e\xfb\xc1\xd2}\x87\xac\x11D\x89\x9e\xeb\
+\xe8\x95\xd2\x99V\xe5{\xfa\xada\xe9\xeb?\x85U\xa4\
+GT,\x15\xf8\x18\x92\x8a\x1a\x04\x8e\x1eH\x139\x08\
+\xdd}a\xe9\xfa\xd2\xb0t\x9d\x13V8'\xba\xcd\xc2\
+\x94\xa8X\xbcZ?p\x1d\x88L3W*\xef\x94\xc3\
+\xbd\x958O\x96\xce\xcf-\x07\x04\xc8\x01N\x1f\x1e\x96\
+\xbe>9\xacJ\x0cl\x11\x96\xae\x7f\x09\xcb\x01l\xe6\
+p\xa0u\x8e\xcc<\xe4\x8d\xfd*aU\x02K\xeb\xbd\
+{*\xac\x9a\x97\xaaxg\xc8\xf2}\xe2xH\x0ea\
+\x7fzX\xfa\xfdu\x92\xad[H\x22sb-\xc80\
+\xe7I6S\x12\x0c\x04\xd0\xd3{\x84U=\xe0\xcfU\
+\xcf\xfe\xf3\xc2\xca\xb8r\xbe\x18Y\xa0D^\x0a#3\
+ky\xdf\x85\xa5\x9f\x1f\x15VT*\x1cP\x01i\x05\
+\xba*\xf2RW\x1aI\x08\xab\x95\xc0\x89FX\xc5\x09\
+\xa4\xa8\x9cP\xb9\xd4yf\x08+\x09C\xd8\xb0EN\
+\xc6\xe7\xeb\x7f\x17Vq\x02\xe0p\xeb\xdc4\x0b\xb8>\
+?,\xfdT\xea\xe0j@\x9e\x0f\xb2\xa8~\xdf0q\
+HD/\xf9\xbb\xc4u0\xbfz\xf4\x17\x9d,2Y\
+\xa4J\xd4#\xeb\xa9\xf3}\xfa\x96\xb0\x22\xcf6\xbdS\
+X\xda\xa6~=\xfe\xcd\xb8\xe2@\xf1sxj\xf4\x9f\
+\xd1\x7f\xcaz\xc8\xbd\xdc\x1f/\x90\xfd,w\x17\xf3n\
+\xdbdi~\xf7W\x86\xa5\xaf\xf7I\xf6\xc1\xca?[\
+6yA\xcb\x16\x87\xbe?*\xac\x22\x0f\x03J\x0a)\
+*\x8e\xa7\xc6\xdb\xf2\x80\x8b\x84\x15G\x13\x12D\xb7\xc0\
+\xec>\xf8IN\xb0\xc0\xa6M\x05\x1b\x04\x16\xa4\xbf\xbc\
+>\xe4V\x87\x84\x95@+\x1a\x16\xa3e\xd1\x90\xedH\
+d\xbcX\xba\xe9\x1b\x17\xf2\xc3\xfe\x8c\xb0\xb9\x13P\xfd\
+:\xc9\xd6\x15R\xe2l\x91V\xbe\xa4\x14vr\xeb\xcc\
+\x07\x0b\xc2btxX\xfa\xbb\x0f\x84\x15\xbf\x05\xc4\x12\
+\xaa/\x96S\x04\xda\xac\x84z\xff\xd1\xb0J\xdd\x05\x19\
+VZ\xf3(4\x90X&\x91\xa9\x163\xfc\x0e*\xfb\
+\xf4:C\xf6\xe8\xf3F\xef\xc7<1d\x1c$\x0b\x01\
+\xa3\x12\xe4F\x9c\x81$$\xb0\x0b\xef\xe12!_>\
+]\xd8\xfas\xc0\xbbg\xf6\xb7\x86\xc0\x07H=\x88+\
+\x02\xe5\x86|\xcd\xfe\xeb\xf2\xd9\xf3.\xfe\xc6$c3\
+\x8b?!(~\xff\xc6\xb0B\xee\xcdya6{T\
+,\xee\x9d\xdc7\xb9\xb7B \xcb\xef\xb5z\x0d\x016\
+\xe3\x0a\xd9*\x95\xed\x1fHM\x81}_2\x9e\xcfh\
+]\xae\xc8\x94\xad\xc3NA\x06U\x10\x15\x1e]\x99'\
+ \xc5\x8fT\xaf\xbc\xb9$Hl\x0by\xec@\x0eh\
+\xbe\xe6\x89\x11\xc1 .v\xcd\x16\x09\x9f!a\x112\
+\xb6\xcb\x14\xb2\xe8\xb9\xe4\xc8\xdb\x16\xd5V\xb6\xb8\x95\xd1\
+#\x80m\xe5\xcay]\xc6\x91\xc4\x0f\x81+\x014\xfe\
+4\xdf\xa7\xa5\x07\x12D\xe2(\xdd\x9f\xb9\xaf %%\
+\xde\xc1\xcf%\xe0\xa6@\x83_H\x82\xa0\x91a7\xeb\
+>\xfe\x1a\x5c$\x90\xf0\xd1\xbaF\xc1\x99\xf1\xe1\xf5\x89\
+\xbb\xf8>\xf1@\x13\x87X%\x82D\x13\xbfG\xa0\xcf\
+x\xf25~=\xad\xbeR\xd3s\xc1\x8e}\x96x\x91\
+\x7f$$\x1ayB\xab\x92\x90\x18\xc1\xcf\xa7E^\x1c\
+pnQ\xe1>5\xee3&\xed\x8bps\xb1\xaar\
+D\x85.\x96\xd1\xd2:(\x16\xaf\x1c]\x02\xfe\xf52\
+\xf8\xb4T0\xf9;\xc8,\x08|\x08\xcc\xa8<\xc2\xba\
+\x0ek9\x0b\x8d\xc0\x9f\x07\xd3&\x02\xb8\xe2\x08B\xfa\
+F@K\xc0B\x05\xf2E\x0a(\xd8\x18\x08\xc0\xe9\x05\
+\x07J\xc5\xebZ\x7f}`\xeb\x1f\x91\x89\x95L\x96\x03\
+4zZ\xd5{\xc9\xc2s\x05\x81\x8d\x87\x85\xb5Q\x03\
+m'\x03\x87\x9c\x19\x8e\xd2\xd1\xca\xf4~C\x1b\x0d\x07\
+\x22\x15Y\x02j\xc83X\x00T\x16I,\x1c4\x90\
+lM\xa9e`\xc4\xdf\xf1y\xa8\x10\x91(\x00\xb2G\
+ \xcf\x02\x1c\xb9r<\x8c\x1b\x7f\xaf\x84\xcd\x08\x07\x9c\
+Js+GH\x80\x86\x03\xc7\xc6\xc8\xf8\xa9\x17\xd0=\
+{\xcc\xafVm@\x0b\xd12{k\x8b\xa3\x80@\x95\
+\x83\x93D\x02-\x1d\xad\xec\x06=9\xed\xc6\xd7\xb2\xb2\
+>\xd6\xb4<\xb0\x80\xc9\x84R\xb9\xbe^\xac\xd6\x90\x1b\
+\x92H\xd3\xd5\x1b\x1b\x813\x1b\x00\x1b)\xefK\xc0\xcc\
+Bg\xbd\xf0u\xab2p\xd33[=\xfc\xb9\x17l\
+\xc8\x13[]T\xf4P\x99?:\xa0,\xd7\xa6\xden\
+g\xc6\x997\xfckd-\xbd\xaeH \xb1\xbe`o\
+\x96\xae\xbbe7\xe1\x06 !\xa0\xde:\x02\x00\x0e~\
+\x93\xfb\x89\xb4nt^X\x95 \xe0y\xab\x92\x91\xd9\
+\x8c\xbf\xf9_dsH0\xd1[\xcas$\xc3\xadL\
+y\x96\x13\xdd??\xc7dU\x82D\xec\xc3T\x1e\xac\
+\xe7{|XE\xd6\xf3\x85\xc9\xc9y\xbd\xef\xa3\x8a2\
+\xadBkg\xe5\xe5\xe2\xd8h=[\x1f}\xde0\x91\
+\xd4\xa5\xf5\xda\xbd7,\xf7\x00gH\xba!\xd8\x92\xbb\
+\xb2\x9a\x0a\xfb\xc9\xde\x03;t\xa85g\xa89\xc8\x19\
+\x02\xe2-\xc5\xce\x0fD\x5c\xe34\xbd\xe2\xf4\x0a\xd3+\
+\x082\xfa}\x91\xf3\xad\xad\x80q\x97\x92`\xc9H\xeb\
+\xb4\xa1M\xef\x96,9\x1c\xdd;\xc2\xd2\xf5\x9cdg\
+\x97\x03\xde\xf7\x7f~X\xba\xae\xdf\xad\xd7\xadWZ\xa3\
+ ]\xc31v\x02\x88u\xc8A\xcf>L\x22\xeb\xa6\
+\xb0J&\x96\xd6\x17\xb5vY\xbe\xea\xa4\xb0\x8a$\xef\
+\x87\xc9~Pz\xf4\x98W\xb95\xe1\x11\x91\x97\xedP\
+\x12\x03A}\x95\xc9\xaf\x94p\xe8\x16M\x16\x08\x86\x9f\
+\x86\xa5\xeb\xd9\xc9\x82}\xfb\xd8d\xc7\xa5\xebNa\x95\
+\xaa\x0b\x15\xf5\xc7\xc3J\xa549\xa6\xf7f\xc7\x14H\
+\xe6F\xe2\x98\x90\xbc\x1e\xf2\xaf\xc8z\xa1V1}L\
+X!o\xccz\xe43\xd5\xb8\x118k\x1d\x8c\x1e\x0c\
++\xaa\x18\xfd\x9d\xc9\x22\x11r\xe7 _\x98!\xb4\xe9\
+\xfc\xc8\xf1y<\xcf\x97$[\xb7\x9cw&\x8b\x02Z\
+\xfa\x89\xa1\x92=\xf9\xb5\xb8\x02n\x09\xab\x020\xc9i\
+\xd1\xe3>u\x86\xf4\xa2\x05\xd56\xe9\x14\xe7\x12\xe71\
+\x09\xd1C\xb3\x15((\x0e\xaf\x12\x03\xfd/\xc3JK\
+\x0dH\x0a'\x82\xd8\x7fXg\x22\x97#1\x02)\xa1\
+\x03\x22 \xe6\xc8\xf4\xd1C\x0c\xf9)\xaaC\xb4\x04\xf1\
+w \x1c\x90\xadEv\x0c\xf5\x04*\xe0\xda\x17\x18\x0f\
+\xe4\xfchere\x9d\x8a\x14\xe7\x07,\xd4\x97k\x1f\
+9\x7fr\xc1\xe4\x82Ry\x9e\x5c2\x04\x0a\xccs\xef\
+\xb7\xec\xff+\xab\x80\x02\x82F\xfeI\xf7\xb7\xb0\xc2\x06\
+\x9e\xdd\x94Qi\xcdr\x8bU$rB\x1e\xef\xfe\xb0\
+\x5c\x89\xfejT\xa2-;\x097\x81d\xcb\xf8\xba\xff\
+EXQ\x91\x81T\x0c\x0e\x0cz\xfa\xe1\xa8\x80}\xbf\
+{\xed\x90\xc8\xec\xaf\xee\xaf\xe9\xaf)\x1cNT\x02I\
+|\xf5+\x84U\x81\xbdZ\x12'\xfb\x0e-\x0bV=\
+\x81\xf4\x0d\xd9\xc3}\x92}P\xad\x17\x87\x17\x8e\x83\xfe\
+\xefa\xe9X<%\xd9\xa9E\xe5\x82V\x84<K\x17\
+\xae\x12, \x914\x9f\xdc\xda\xa5\xc2R\xb7}X\xc5\
+\xed \xb9\xb2\xfe\x81\xb0j=\xaae\x03N)\x93\x80\
+\x22\xf7\x8al+\x01\x11-~\xb0\xb9\xc3\x19\x02\xe7\x14\
+\x09`\x0a]\xf8GJ\xc4\x82,`\xbfqb\x8by\
+\x8d\xbf\x84\x9fK/\xf3\x97\xc22\x22\xe9\xd2\x8cHz\
+z\xe0\xea\xca\xf3\xf3[\xf9\xdc\xc9\xc8\xb0\x9cH\xd8\xa1\
+\xec\xc3\x90\x0fZ\xa5\x02ro\x0228\x07\xc4\xc1\x05\
+\x92\x06\x12X#\x8eoV\x0b\xf2\xe5y%\x14vx\
+\xb8\xa9 E\x8d\x04\xe2b\xa55\xc7\x050\xd4\x1d\xa8\
+L\x13\x87\x90\xf8\x87\xcbC\x057\xb7Fl#$\x05\
+\xaf#\xd6|Z\x04\xbc_\x11\x08\xf2>p\x03 \xc3\
+(2L\x12]\xe6\xa2!\xf1IK\x14\x08=U\xea\
+=\xef\xf1\xb7\x80\xe0\x93\x10@\xc6\x0f\x841\x5c\x14p\
+\xac\xe0\xdf\xe0wm\xa0VB\xe2\x05H\xcb\xa9\x18\xcb\
+\xbf\x8b]&\xf6\x19W\x84)X\xcd\xfb\xcc\xd6Z\xcb\
+\x88C&\xd9\x16\xe4h\xd9TK\xb4\xfdK\xfc-\x9e\
+\x1f?'\xd0\xc5\xaf&\x1e\x02*O\xdc$\x84\xb4\xdf\
+\x8f\xc0\x15\xff\x97\xc4\x02\xa4\xe4\xacc\xd6\x0f\x05F\xee\
+\x03D\x04\xaf\x03\xb2\x01\x7f\x96uE\xe1\x12?\x91\xf8\
+\x13\x7f\x91\xf8\xa1\x913\x9f\xabE\x80\xdf\xe3\xca:m\
+\x90\xa1 \x0a=o\xf1\xf7\xe10 \xb0\xe7~\xf9\xbc\
+\xa8\x1c0\xde\xac7\x9eK\x91=\x7f\x06y\xaf\xe3l\
+\xfd|\xc6\x816\x8e\xe3r\xca\x04G\x18\xb6lU!\
+\xe6J\x80\x07\xb4\x9f\x1ef\x1cR\x02D\x0e|\x1c\x00\
+2B|Me\x9a\x00\x92\xc0\x8f+\xef\xc7\xfdqm\
+\x11\x03|0>(\x0f\x92\xdf_F\x90\xac\xa5\x87\x0c\
+\x997\x06 \x9fp\x0fP\x81\xa45`%m\x98o\
+Q/\x0f\x13\x83\x81e\xa0\x950\xb1\xacJ\xe8M_\
+Y\xd8\x8e\x0d\xb1\x22\x13L\xc6\x0f2\x10\xe4G\xc8\x1c\
+S\x81W\xaf\xb0\xa1\x90 \x03\x80\x8a1\x01\x81\x84\x90\
+IS\x8f\x90e\xa8\xce\xd1\x03_W\x9f\x8b\x04\xc1\x8a\
+\x1a'&$\xbd1\x97\x84\x15d\x84\x11\x05 \x00\x80\
+\xb8\xf1\x9cF\xba\x0f6\x222h\x04h<w\x1c|\
+\x02Q6X\xbe\xcfs\xe3J M\x80\xcb\xefQ!\
+\xbaa\x80\xf8YW\x1eG\x98yAE\x94\xf9\xda\x92\
+\x95\x10 \x93Y\xa4\x92\xcb\x86\xa5\xca\x82\x03\xc2\x02\xc5\
+y\xa6\xcc#\x8e\xbf \x87\xe9\xb7\x87J8\x1b)r\
+cb\x05v\x22\x80D\x1b\x1b\x04\xffx\x9fV\xc6\x8f\
++\x1b\x0e\xf7\x09W\x83\xe4\xc1\x1c\xd0\xcaqr\x0f2\
+\x1b\x84\xc6\xdf*\x0eb\xcf\xb7\xa3\xfa\x8f\xb0\x8a\xdc\x0d\
+\xb2#\x1ck\xcd\x0f'\x0a\xe8u\xe3\xf9\xb0a\x83\xa8\
+\xc1Qg\xde\x11\xc0\x03-&\x11\x04\x8b?\xac\xefT\
+\xfa\xa9\xd4+Qf\xc7\x97^F\xde\xaf}n\xcf\x0d\
+\xab\x1c\x15A\x5c}\x80\xf0\x8f\xf1'\xf0\xa4B\xf2h\
+X\x05\xe1\xa6G\x9f\x0c3H\x01A\xd9]i\x91\x83\
+\xdf\x9d\x11Vz\x10\xad'\x0f\xcb7\x0e\xb6\xa0\x91\xdd\
+\xe7\xc3\x8aC\x9d\xf5\xdc/\xc8\x9fc\xe0\x0e\xa0\xb7{\
+,G\x94\xc0\xff`\xc95~R\xfa\xd8\xe2Xq\x85\
+D\x89\x19C\xfaW\x1a\xad\xd8\x85\xdc\xd3\x03\xdd\xfd\xa1\
+'?\xbd\xd8\xf4\xe2\xd3\x8bW\xa4bz\x0e\x04\xb6\xb9\
+\xd7?\x8dw\xf7\xa6\xb0\xf4\xfd\x1d\x06\xdd{\xeb\x0fS\
+\xe9\xd5\xdfw\xa7\x84U\xaa\x99\x04<:\x1fL\x12G\
+\xaf\x1f\x10{\xb1\xa7w\x17\x86U\x07!\xc8&\xed\xab\
+\x04\x8e\xa3\x0b\xc3*\x87]\x08\x16CMa\xc5\x8f\xdd\
+\xefy\x82^_P\x91\xa4m\x9dA\x9f%\x90{\xc3\
+\xc0f?\xb3TXz\x9d\xbf\x86\xa5\xfb\xf9~X\xfa\
+\xfa?C\xa5\x15u\x04ZH\xfa\xcd\xc2\xaa^k\x10\
+\x0eZ?\xd3\xef\x0f\xab*\xa6o\x94*\xc1\xbf\x95\xd0\
+Pb\x99V\x89\xd1\x05a\xa5g0\x93\xcc\xcf\xa9\xb8\
+\x5cT\xe9\x81\x9b\x85y>\xfa@X%w\xa9\xc4Q\
+NT$Gt\xfa\xc80\x05\xfagHG\xf9j9\
+\x86\x7f\xaf\x1c\x12\x12[\xef\x15g\x8eH\xf8\xc6\x9f\x09\
++\xf7k5\x91\x13\x85p\x03\xa2\x7f\xcb \xe3\xd7\xcf\
+\xeeW\xefC5\xe8\x87a\xc5\x91\xe6\xbe\x81&{\xbf\
+\x91\xbc\x22rz\xdd\xf5a\x85\xb3\x83\x04\xb19\x84H\
+0\x90h\x15\xe2\xc6\xbd\xa4\xe8^C\x1e&(\xa49\
+/\xd8g\x84\x901\xb9\x1d\x90[\x12\x0b\xc8\x17j\xbf\
+\x9cz\x7f\xb6\xc2j\x0fG\xf1ja9\x00\xdby\x12\
+z\xec\xaf\x08K\xdf\xdf)\xac\x90\x04\x9aC@\xd0w\
+#\xed\x08|7\x1d\xe6S\xff\xbe\x81\xecp\xf2\xde\xa1\
+\x97\xdf,\xf6p\x09\x88t\x18\x12<\x10\x07\xe8\xc7S\
+\xa1\xec\xceJv\xa6\xb8\x12\xbeR\xe9\xcb\xef9\xf4\x5c\
+O\x16\x0a\xabZ\x18\x80$\x0brl\x8e\x8a\x95\xc2\xaa\
+\x96\x14q58!'\x8e\x8c\xc9\xb2a\x99\x0bcH\
+\x8c|=\xac\xac\xa7\xd1b\x03\xe2\xc6\x01\x13\x89\xa4\x7f\
+\x85\x15\xee\x0e\x10\x02>\xb7)t\x808\x11\xc7A\x0e\
+_~Y9\xd8\xb4\xa4q\xbe\xe0\x07\x12x\xe1'(\
+\x107wB\xcc\xae\x1d\x0b\xe7I\x0e\xbf\xce\xd19>\
+\x9f\xfc\x9ee*d\x89\x909\x19)\x15$s\xaf\x0e\
++\xea\x13$Z\xb9o\xf4\xb9MNIbK\x9c*\
+\x9e\xbf\xf8\x8dj\xc5!P\xa5U\xd0Pfz\xc7\x91\
+\xb7f?\xe5<\x86\xb5]r\xa1\x04\xb8n\xad\x80L\
+\x14YoZ\xff^\x9e\x9b\xc5\x0a\x07\x96\xe4\x0e\xad.\
+\xc1?\x10\xab\x04r\xf8ej\xb1A5\x83\x82\x92\xfd\
+\x11Z\x22\xf1\xdb\xe1\x16\xe3\xdc\xa5\xa2\x1e\xa2\xad\xe7V\
+-\xb8\x8c\x83H<\xa9\xdc\xa7Q\xdf\x22\xc6\xdd\xad\xbe\
+\xdc7\xad6\x14\xf8\xf0G)|\xac>\xc4\x0b\xae\x14\
+\xa3*@\xe2A\x89W\xb8+\x1c\x88i\xfd\xfb\xbc\xa7\
+\xc5\x82x\x06\xe4\x05\xf3[\x89<#!@\x1c\xd1s\
+O%\x9dD\x05\x01?\xf7MB\x80\x04\x0f\x08'\xd6\
+\xc3\x22\x0a\xa0\xf1'i\xb5U\x82\x88s\xd1\x9f\x8bx\
+E\xe7&\x89S\xcb\xe2I\x16\xd5\x85#\xfc\x22\x0aK\
+\x5c\x89\xdb\xa84\x13\xaf\x90\xe0\xa1\x82ME\x9cx\x8b\
+\x80_\xeb\xd2q\x97\x0ak>G) \xe3\xbf\xf3\xfc\
+\xf0\xdfXW\xac\x0b\x10'<'\xfcD\x10`\xc8\xa5\
+\x92\x08\x80\x04\x11?\x9bB(\xf1\x07\xe7\x1b\xad&\xad\
+\xfa\x07\x05\xb7\xb6\x15\x9b+\xdf'\x0e\xa0W\x9f\xbf\x7f\
+6\xd5\x01\xc6\xa7\x95\x0f'\x01\x0d\xe2\x80\x04H\xcb\xf6\
+\x8f\x9fO\x02\x03\xb9p\xc51V'Q\x9c6\xe3\xcc\
+\x06\x01]8L\xab+S\xb8\xd2\xb3T\xe0W\xac\xd8\
+\x9e\x81j\x128\x93\x89j{\xc9\xa9\xf8\xab\x22\xe3\x8d\
+\x99\x8c\x04\x0b\xa8M\x0c0\x01\xa8\x08B\x16G\xc0\xcf\
+}\xf1\xbed8\xf9;\xc9\xcc\xcd\xd5:\xc0\xe7\xe6\x01\
+\xf15\x13\x80\x05H\xe0\xdfB\xf2\xf9;<\x006B\
+\x1cc\x05\x0el\xc0\xae\x80\x92q\xa5\xf2\x0d\x94\x87\x8a\
+022@;\xd8\x98`?\x85\xa4\x84\x00\x8c\x8d\x98\
+\xfb\xd78s\xa0$w=oD\x96\xeb!\xe1\xa1^\
+@C1[r=\xe4\xf9T1\x19}a8\xa8\xfc\
+\xb9\x9b\x83\xd9\x0e\x12\x908\xb1\xdb:\xb0\xe6\xf3\xb5=\
+\xd2d\xba\xa8\xb8\xb3\x80\xa8\x8c\x93P \xd1\xc1\x02!\
+\x90E\x17X=\xd2\xfe{\xc6\x83\xdf'\xd0#\xe0\xa7\
+'\x87\xd7o\x7f\x9f\x1e}\xe4\x0bii\x99\x9dV\xc7\
+\xec\x8a\xaba\xbef\x81\xb3\xa1\xc3=\xc0\xc6\xcf\x06\xc6\
+\xef\xb1\xf0\xb9\x92X\xe29\x14$\xc30\xdf\xda\x0c\x22\
+j\x14r\xcc8\x98\x9c`i{\xcf\xf9\x9a\xcf\xdfp\
+\x168\xb3\x0c\xc7\x05\xec\xb6\x92\x093k0\x10wU\
+\x96L\xa6\xc7\x06\x0c\x12\x80\x03G\x0a\x8a~\x00\x00 \
+\x00IDAT\x9e\xe7\xca\xfb\xb7\x09\xbe6a\xc7\xe7\
+\x04\xe2\xab\xca\x8e{\x1c\xe9e\x93\x9e2\xe4d\xc8\x8c\
+\x19\x92FB\x93\x80E\x0e\x92\xd7\x1d\xf3\x98J\x0c\xe4\
+\x95jQ\xb0\xce\xba*\xd0Nl\x02\x81U%\x9f\xc4\
+\x1f\xe3g\x04\xcdg\x84h\x104\xd7$\x80\x0a\xd4\xba\
+o\x87\xa5\xebua\x85U9W\xd6\xa3\xd2\xfc\xdb\xb0\
+\x5cQ\xcf\xba\xe6\xe9UW\x1d\xc5>)\x87h\xf4t\
+\x16.*\x95\xbf\x03F\xfb\xe7\x04\xe3\xeb\xa7^\x97+\
+\xc4!otz\xa9\x00\xd0\xc3\x9f\xc5\xb1~+y\xbb\
+uJ\xc0\x98\xb9]^\x5c\x02\xca\xa8\xdfw/\xa9\x1c\
+696\x90\xe4\x99%\x18\xf2\xc5\x80\xc0\x9eW\xd6\xd9\
+d\xe5\xb0\x8au\x1e\xf6uH\xac\xd0{\x16\xebz\xff\
+XX\x99\x07\xdds\xc3\xaa\xc0Q\xe3\x0a\x12\x0492\
+\xc8\xa1L\xe6\x14u\xd4\xcb\x8a<^V\xd1\xd8\xa8\x04\
+ $\xd2\xc6\xbf\x0b+\xb2cYO{\x9e\x22\x17\x9b\
+W\x7fT:7\x0eK\xbf\xb7yX\x99\xdf\xfd*\x03\
+\x94\xd8\xeb\x07\xf9VUH\xa7\x97\x08+\xc8\x9a\xfe\x8e\
+\xb0\xaa\xc5B\xf3\xb6\xbb2\xac8>\xe3\x87\x87\x1e\xf8\
+\xf1\xfaa9\xe0\x1f\x9e\xc7\xed\x83\xec\x9f\xb96H\x14\
+\x1d\x13V\x91)\xaa\xf5g\xf4TX\xba\x8f\xd7\x85\x95\
+\xf3c\xfa\x82d\xe7k\xfc7\xa9z\x86c]\xec#\
+\x95\x86\xdf\x96\xc4\xab\xe7\x17\x15P=?*\x7f\xdd\xbe\
+a\x15\x89\x95\xf6\xfb\xd1\xb7\x06H4-\x09\x04:\xf4\
+\x80\xc3Ear\xc0w\x86\xa5\xd7{UX\x09\x94\x9d\
+\xd0P/i\x7fPX%;\xa5DO\x7frX\x99\
+G\x90\xdb\xd9\x91\x05\x82\xaaJQ\xf7\xa9\xb0\xa2\x16\x82\
+\xba\x05j\x13T\x1cY\xe7$\x88\x5cQ\x15\xd2\xd0\xf2\
+~\xd7\x0d\x8e\xa8\xa1\xfe@\xb5\x15\xd09\xe1-\xc7\x8c\
+\x84\x7f\xff\x9d\xb0t]?\xacB\xcc@\x22(2C\
+\xe4\x83+R\xc5\xe5'\xcbWz\xef\xb4\x12\xc0~\x8e\
+\x9a\xc1\x86\xc96\xaa*c\xe1\x0e\xfe\xb3@B\x09\xb8\
+\x02\xaf\x90\x11\x0b\xe20p\xa5Id\x98p.8P\
+\x7fOX\xa5> 9\xbb\xfe#\xfd\xfe\xfd\xfe\xd5:\
+\x82\x9b\x08\xce\x12\xfc*\x90SJ\x9c\xb3?'\xeff\
+@,\x8c\xd5\x8b.\x0e\x87\xa9\xf3D\xceL\x0f5\x01\
+\xfeC\x99\xbe\xcd\xe7u\xf6\xbb\xee\xa9\x02\xcf\xe8\xf1\xdf\
+R\x01\xc9_\xb4\x1fl\xa2\x96\xaa-\xe4/\xcd\xaa\xfc\
+\xacH\xf8|R\xe7\xe8]\x95\x7f\x03w\xc4\xc2\xb9\x99\
+q\x80\xa2\xffT\x01\xc9#U\xc5\x92J;-\xa8\x22\
+\x9fd?\x9bl\x97l\xfb\x22\xc7\xe8\x0a%\x08\x18\xfc\
+#\x05(\x96\xa3\x03\xf1\xc0\xfc# \x80M\x1e\x7f\x81\
+\x16T\xfc\x0e\xcd\xd3\xd1\xfb\xc2\xaa\x00J*\x18F\xe2\
+Q\x98\xa2\x12M\x85\x9a\xd6\x02\xb8Q\xa8D\xae\xa4\xf8\
+`\xcfL\xdfWZ\x93P9\xf8gX\xd5\xf2\xc3\xbe\
+\xcf\xeb\xe3o\xc0\xb5\xb2A\xae]\x97\xcf\x0fg\x01\x89\
+v \xee\xcc\x17\xfc\x18~\x1f\x7f\x82\xc4\x86\xfc;\x17\
+\xb4h\xc1\xbbW\xeb\x92\x82\x9b*\xeb\x93\xf3\xc2\xd2\xf5\
+?a%\x9027\x8f\x90\x92pn\x90\x004\x92\x96\
+y*\x8e\x07'\xb0\x09\xc4\xe1\xaaQ\x82\xcc\xcf\x9d\x9e\
+\xf4\xab\xb2\x95\xca\xb5\x10%F\x08\xe8yy?\xc3\x0f\
+\x14\xa7\x99{\xfbu>x}\x810\x82\xe3\x888\x05\
+?\x11?\xdb\xc8\xe7\xa6\xc0IA\x0a?\x8d\xb8\x0b?\
+\xae\xa8\x8c\x0d~w\x8b\xe0nY\xf6\x89\x1b\xf0s!\
+\x1d\x87\xfd\x9e\xf9E\x02\x81y\x87\xdf\xcc\x15\xff\x1d\x7f\
+\x1b\xff\x13\x7f\x9e\x04\x09\xaf\x03\xa2\x96\xcf\xcb\xf3!\x11\
+\x009\x1fq\x02d\x95\x92\xc3u\xc0M\x5c\xdb\x22\x94\
+\x19\x87\xf6}\x18\x17\xc6\x91\xe7\xc6\xfb\xe0\xdf\xb3~\x19\
+/\xc6\x91\xd7A=E\x85\x19\x07\xf2\xbc\x1e\x05I\xc6\
+O-fF\x0a\xb4\xad\xc4\x9ao3\x1eP\x1e\xcc\x12\
+\x92Y\xe3\x06x\xe0dD\x22\xb0[\xad\x82\xda\xe3\xf0\
+\xc7\xffkV\x13\x85\x0fB\xcf\x0c\x81;P}&P\
+[\xf9\xe5\xba|\x13\xb8\xb7\x08\x81\xf6\xda\xb6\x0c@\x06\
+H\x8b\x00\x99Q\x02\x22\x02/\x1e(\x13\x92qh3\
+25GB;^K\xfc\x17\xb6z*\x9e\xcd\xc6d\
+}\xcas\xb2\x05iZ\xee\xf5u\x22D\x13\xc6d(\
+\x04\xd6g)0#\xc3\xcdAJ\xef*\x8e\x1c\x99<\
+\xf4\xa4\x17\x0b\xcb\x0bp\xb8_\x90\x02@\x1f\xd1I\x17\
+)\x19\xb2\x89\x0e\xa0`\x91\xfcrX\x91\xe5r\xcf%\
+\xd0Q\xc8\xbap@\xd0\xddT\xc6\x9e\x1e>'\x8cD\
+\x0a\x07\xc4\x88\x9ecC\xde\xb8\x0f\x12B$Z\x18O\
+z\xdb\xc9\xec\xeb\x00u\xa5\x9d\x80\x00\xf9\xc4\xbfi#\
+\x18\xa9b\xaf\x8c\xbc\x03@*\xfd\x04\x86,dm\xb8\
+\xae\xb4\x83x\x99'\xfdV\x0d\xb9_b\x98/\xc9M\
+\xcb\x15F\x1f\xac-4\x9f\xcc\x1f\xf3\x90kKn\xc9\
+F\xcc\x95\xf9\xc6\xebq\x90B\x12\x87\xec\x1d\x15Hz\
+gi5a>\xb3!\x91)\x04B\x04y\x0fd\x97\
+\xc7\xa8\xa2,\x16|;\xc4\xef\x09\xab\xee\x97D\x81z\
+\xbbLB\x86C\xd4=S\xe6\xd2\xfb\x00\xd0\x7f\xf6\x0f\
+\xd6/\x0e\x0a\x0e>\x9f\x1f\x99\x14\x90\x0bB\xb88c\
+\xad\x0d\x8e@\x83L\xbb\x13]$\x10u\x10\xbbB\x03\
+\x92@\xefg\xd21\x1c\x13\xa0\xca\xb4(\xc8A\xc7\xc1\
+\xb1\x8c\xa02\xea\x86z\xe3\xd0QqP\xa0BEc\
+\xb4\xf7\xe0\x90\xd1\xeb\xeb\xca+\xe4d\x87\x87\x15\x04\x90\
+{\xd6\xaeO\xf3;*\xa3\x07t[uo\x90\xfc\xe5\
+\x12\xa5\x22M\x82a.\xddYA\x1b3\xe4\xff{\x95\
+\x1a\x84\x9e'\xfb\x0dH\xa3\x9c\xde\xea\x05\xe9]\xaf\xea\
+\x89%\xe1\xc3z\xd7s\xa3\xb7\x8e\x9ehZ?h\xad\
+\xf0}\xa8\x07\xd4\xf7I\xc2V\xf7\xeb\xc0v\xdd\xb0L\
+\xb6\xb7X\x86\xe2\x8f\xc3\xaaV,\xb1\xb9\x1b\x11\x00\xe4\
+\x16U\x05\xf6\xf5\x18\xb5k+\xd2\xba\xed\xb3\xe0\xd3\xa0\
+\xe6\xf0m\x05\x14\x91\xa096Y\xb0{\x7f.\xd9g\
+\xcbz\x99\xccI6.\x01|n\x018\xb6\x92\x89<\
+a\xd0I\xcf\xbd\xf5i\xdf\x98\xdek I4\x04\x17\
+\xb2\xa7=\x07\xb2Gsi\x08\x1a=\xb9k\x90\xfd\xea\
+g\xf5\x0b\xf5Q\xc9\x9e/\xac:\xbf\x94\x98\x1am\xad\
+y\xbb\xafZH~7$\x88\xd0)g\xbf4\xa9\xe2\
+<\x92\xed\x22!C+\x82\xce\xa5\x5c\x89_S\xad-\
+\xe99\xf4\x97$\xbbTP\xf9\x1fV\x15\xfd\x0d\xc2\xd2\
+\xcf\xff\x14V*\xb8\xfd'\xc2\x0a\xd2\x8aD\xd6\xe49\
+\xea\x95_H\xd0\xec%\xc3\xd2\xf5/aU`,\x12\
+1*\xf6A\xe9\x96I\xdd\x1a\xc7\xdc\x09<\x02x\x91\
+\x9e\xf5\xff\x0c+\xfa\xe0\xe3\xf5\xc2\xaaD \x9c\x1d\xb4\
+L\x00\x85\x15\xf4x\xfc\x91\xb04<?\x0cK\xf7?\
+\x1dVd\xc5\x90\xe1\xa3\x05\xc9\xd0{X\xaea\x1b\x87\
+\x95\x9e\xcfu\xff\xe4\x81\xc9\x03\x15\xb2O\x15B\xc6\x9f\
+\xfd\xb5\xbf,\xac\x92\x0fEUD\x81\x8a\x7f\xfe\xaea\
+\xfd\x1b\x1a{\xf5\xe0\xb8\xf9\xe7B\xb4\x98\xacP\xe7_\
+F\x0a\xfcS\x81\xcb\x15U\x8b\x83\xd4 |\x9e\xe0@\
+\xe3\x88\x83h\x08Y\xbc\xb3J\x85\x1e\xc8\xb0[ \xa4\
+B\x11\xd4|\x99\x9cO\x15bz\xa7\xfb[\xfa[\xfb\
+[\xd4\xa3\xbc~\x1e\x87A~p\x13%&\xa8\xe4\xc2\
+\x0d \xf5\x8c\xa9U\xd4r\xa6\xe7\x94fMv\xc0\x1d\
+8\xd1\x82\xa7\xfb\xeeOJ\x16\x89\x9f-\x92\xbdZ\x1c\
+\x07?\xaa\xc8\x0d\xdf*\x99@q\x0f\xb8\x80%\x12\xd9\
+\x9c\xb8:G\x0e\xf4\xe3%Q\x9a[\xbf\xce\x11\xc2\xe1\
+{\x15\x07\x01\xcf\x81q#P\xc2o\xe5\x9f\x02\xb8\xdc\
+\xf9\xfe\xd3\xca\x9f\x8a\xf4\xc0;\xab\x848\x01\x19\x01\x06\
+\xfe,\x08\x9e\x0f\x85\x95\xcf\x03\x12\x0ed\x0b2\xb2\x93\
+\x1d\xc3\x8a\xdc\x1d\x89N\xabw\xe0/\xa85\xce\xfe\x02\
+-~\xf8\xa77\x84\x95\x16\x18#\x14\xa8t\xd3S}\
+\x998d\xbe\x9d\xf5BJ\xa2\x80\xf7\x85\xe3D\xe3\xde\
+\xef\x97\xec\xc3\xe2dY\xbf\x22_\x95L#\xfe\x9f\x9f\
+\x8b\x0a\x0c^opQp^\x93\xd0\x0f?\xeb\x8d\x95\
+Z\x0e\xe4\xc0\x04\xf0\xc89j<\x1d0m&$\xb0\
+\xfc;\xcb*r\xfe\x0a1h\xbf\x10n\x10TG@\
+\xa6\xa9\xf5\xd9\x89>t\xe7I\x1c\xa8e\xc0\xe7\x112\
+\xc5j\x99sb\x09?\x89\xc4\x0d\xff(|\x11\xc01\
+\xdfX\xa8\xf3\xaa\xe06\xaf\x10fR\xc7\xf0?\x12$\
+\xac\x1b*\xe2\x9c\x87\xf8) u\xf1\xb7@Z\xc3i\
+\xa0\x04\x89\x0b;Ma\xd7\xfe-~\x1c_\x13\x18s\
+\x1f|\x8e\x16\xcaN\x05\x1b\x7f\x14\x0e\x10\x12\x9f o\
+\x08\x9c\xf1\x83\x81\xf4\x93H\x81cA-ks\xb5\xf0\
+\xe2\x7f7\xb2\x80\x9c#\xf6\xd7H\x98\x82\xb8\x01\x89L\
+\xe2\xa1U\x09\xe0\xf9q_\x86\x067\xaac\x04\xfc\xac\
+\x7f\xf6a\xe2G\xfc\xea\xb6\xe0\x8c?\xc7\xfe@\xc1\x9b\
+\xcfG\xa1\x95\x84\x07\xaf\x0b\x02\x83\xc4H\xd3:>\xf3\
+\xac\x99\x99\xa6\xd2kr\x97\xd6ag\x03Y6\xd3\xc8\
+\xcc\xf5\x81\xdc#\xc9\x06\xd9\x06\xfel\x8c|\xdd\x06\xfc\
+\xe8J\xb2@\x0b\xa9\xdc3\xb8\x04|e\xa0\x18x&\
+`\xdb\xa3\xc1}2Q\xf9\xbcm\x8fxK\x82\xd1\x06\
+\xfe-\x84\x83\x80\x95\xcf\x81\xcc\x1dPz\xa0Jdl\
+\x98\xf0\xf4\xda\xa3gO@/R-C\xc0\x99\xc0l\
+\x0cd\xf6 m\xa1\xe7\x0a\xb93\xf5^\xc1V\xea\x0d\
+\xe6NU\xae\x08\xd4\x14\xf0\xb8\x87\x89\xef\xe30\x8a\xbd\
+\xda\x1b*\x8e\x15\xbfG\xcb\x07\xe4m\xdc'\x10\x1b\x02\
+[\xc6\x85qg\xc1J\x16\x06\xdd\xfb\xc9n\x22Q\x93\
+j\x81\xd9\xb1\xd1s\x86\x1d\x9f\x83\x196Q\x91\x8dA\
+\x124:4\xac\x82p\xffQ\x90\x995\xb4P\x98'\
+7\x09\x89\xc0\x82b\xfe\x91)\x04j\x1a\xac\xc2\x0fW\
+\x07\xc3=\x0a\xa4\x81\xa2w\x9a?\xad<H[\xc9o\
+\x12N&\xdd\xa4R\xc4\xbad>3^ ^x\x1d\
+~NO \xbd_$F\x18\x7f\x12\x1a\x04\xd6z>\
+\xd6/\x96\x5c\x9d{\xde\xe8u\x93\xe3\xe7\x1e\xfcV\x0d\
+\xa1=\x98\xd8\xb8Z\xc8\x18\x88\x1c\xe6\x1f\x81\x10d\x85\
+\x82\xdez\xbe#\xdf\x89\xe3\xde\x92EBbG%\x00\
+\xc8\x1e=\xe6\xdc\x1f\x07\x0bP) u\xac\x17\x12\x86\
+\xa8XPq !\x05\x0b\xb4\xa0\xef\xd63g<y\
+\x1e\xecK\xdc/-Q\xc8\x0b\xea\xf9\x9a\xd3\x03\xd9C\
+ i\x04\x18\x04\xc4_\x94\x0e\xf7\xb7\x06h\xaf\x1d\x8e\
+\xd7\x8c^\x1b\x95m\xee\xab\xfb{\x98\xc8^\x22\x80?\
+$\xd9\xc1J\xb4,WA]\xd5\x82`\xa8\xfc\x9d\xc9\
+\xee\xaa\xa0\xd4\xc7f\xab\x03\xbd!`@\xe6\x90\xca\xfb\
+\xc3\xc9\x1e\xd2\xfc\x09\xc8\xdf\x06a\xa5\xc71\xcbl\xad\
+Z\xfd\x1dz\xd7A\x9e\xb7T\xc5nO\x8f\xad\xe6C\
+wyX!\xad\x83lpz\xdd\xb0\x8a\x1b\x02\xfdv\
+\xb1\xb0\x9bD2 \xfaO\x16\xb2\xda\xfe}aU\x0f\
+\xaf\xc8\x05\xb3\x5c_\xda\x9f\xba\x15\x93\xa5\xf1\xea\x1e\x0c\
+\xd3\xeb\xee\x5c>\x87\xf5\xa2i\xe1\x08\xf2\xaf\xc32\x1b\
+y2q\x02\x9c\xad\xf1>D\xf3\xf7\xe8L\x06wU\
+\x96\xc5{K\x0a<\x82\x94\xef\xac\xf1\x1b\xc6\xd1\xd3~\
+\xa1\x12@B\xb2\x90\xa8h\xf5\xe9\x8d\xb8Q\x22\x97\xc0\
+\xb7{IXI\x1c\x04\xc5_N\x90\x1c6\x90\xbeu\
+G\x0c\x1c\x06Y\xbe+\xcd\xab\xee\xe2\xee\xa2\xee\xa2B\
+\x8e\xeb^le\xfe\x1d\xc0F\xc2a\xfe\xaa\xf2\xc5\xfe\
+-G\x82\xca/=\xc8\xe8\x8b\xd3\xca2Y/\xac\x22\
+wC\x97{q%\x9e!q$\x80Df\x8e\xca \
+\x95G\xc8\xae\xd4z\xe3\xf5\x8c\xca\x07~\x07\x9c%\x0a\
+\x08\xc7\x0b\x86UPP\x12\x06m\xe5E\x09\x01\xc6\x97\
+\xf5\xd4\x7f-\xac\xc8\xa6Mo\x1b\x96~ogA\xf9\
+\xf5>\x96K\x95\xcc\x9ae\xed\xd4\x02dr\xb3\xcf\xaa\
+Uiv#\xc7)\xf5\x05\xcb%\x8a\xcc\xb0\x9f\x1d\x96\
+\x9fGv\xb0\xad\x1a ]\xfb~\x8d\xb0*\x00Y`\
+@\x18d\xf9\xc4%\xb5\x8f|U\xfe\xc0}\x92G\x1c\
+\xe5}\xe3[y\xdf\xa0\xf5F$\x88Y\xa6\xf3\x0bZ\
+oi\xff\xecO\xedO\xebO\xcd\x89\x9c\xd7\xe6\x969\
+\x1c[\xd8\xea\x059u\x02\x87\x84?\x88\x97\x97\x0d-\
+o\xe9\xb4\x1e\xe4\xcft\xce\x8ev\x1d\x90#&\xfb\xd3\
+9\xc3<s\xc2\xe2\xa1\xb0\x82D\xa0\xe2=\xf9\xe5P\
+\x18\xe8\xe7\x84\xa5\xeb\x8f\xc2\xaa\x1en\xb1\xa0\xc3\xc6\xdf\
+\xbf%\xd9\xceU\x22\x02(=\xad_\x90\xd0\xc1\x05!\
+d\x8e\xfd\x9e\xe0\xae\xf8TI\x10\xe4\xd3\xe5rU\x16\
+\x7f\xa5\xfb\xff\xb5\x12\xe3\xc7VdkQ\xaf\xfdI%\
+\xab\xa8\xfd\x90\xfd\x14$\x84\x03\x12\x1ctZ\xda s\
+&\xc0e=\xe0W\xea\xfe\x9c0\xe5\xef\xa9\x14\xa3\xae\
+#\x19\xde~\xf7\xb0\xd2B@k\x88\x13\xa4\xa7\x86\x95\
+\x00\x9f\xf9\x08\xc7\x83\x11\x95\xb4\x1a\x81d\x85\x1c\x8f\x16\
+\x11\x0a@p3\xa0&B\x8b\x8cTI\xec\x87D\xa3\
+\xc6u\x05Q\x95\x11Y\xf7\x08ip\x86\x0a\x10wW\
+~4\x01\x11\x5c6$\x5c\x1a]\xf3\xcc\x99q\xbe\x12\
+F\x07U2\x8c\xa8l\xc9\xaf\xb1\xfa\x09\xdcapO\
+\x00\x0d\x07\x02\x0e\x82W$\xc2\x0e\xf8I\xe8p\xe5\xf9\
+\xe0\xcf\x22\xef\xca\xfd\xe3WH\xfd\xc6\xb2\x87T\xfa\x97\
+iT\xb1\x88\x97Pc\x10\x09\xa9\xef\x93J>\xfe\xcc\
+\x8f\xe4\xbf\xfcB\xfe\xdc\x22\x8a\x7f(t\x82\x0c\xe6>\
+\xf0\xc7\x09\x1c\xb9O\xfcR\x02E\x02I\xfc`\xfc\x7f\
+T\x11\x84\x10r+\x17\xea\x19 }@|\xb2\xef\xe2\
+\xe7\xf2>\xadl9\x89\x01\xde\x97\x0a5jb\xf8\xf7\
+p\x16\x00\xed\xe7_\xc3\x95e\x92?\xfc;\xe2\xa4\x16\
+\xa9\x8d\xbf\x8e\x9f\xd8\xa8\x99\xf9>H,\x10\xf8\x93(\
+\xe1\xbeA\x00\xb6\xe4\x87\xfc\xc3_m\x0b\xc7\xc4\xaf\x14\
+\xc6h\xa1\xf8\xb5\xf6\x99\xf9\x9b\xdf\xe7y\xd1\xc2Db\
+\x86u\xc7\xfbS@\x03\x89\xb7\xea\x80\x1cu\x82\x03\xe4\
+\x87\x9eKA\x00D81\xaa\x06\x84\x17\x8c\x8f\x1d\x07\
+\xcb\x03Cf\xdbl\xfb8\xf4M/\xb4\xff\x91YQ\
+F\x1f\x07\xb0\xaa\x98\x0e\x0b\xa8\xcd\x94<\x1b\x1b;\xef\
+C\xa0\xd1\xb2\xb4\xb7\xba\xf6d\x00E>a\x99\xbf\xb6\
+\xc7\xba%q\xe0\xfd[28\xde\x0f\x0f\x96\x07\xc8\x06\
+@%\x97\xaf\x09\x08p\x5cp\x08X\x88\x0a\x5c&\x0f\
+\x0e\x07\xa0\x1d>\x02\xbfe\xf4{\x0b7\x89\x8d\x05\x9b\
+\x09\xb4\xb4\xdewU!5\x80|\xe9\x00N\xceA\x0e\
+4F;\xaae\xa0p3\x0c\xefs\xa3\x02_ \xf5\
+\x90\x9e\x01\x89\x06\x99\xc0\x04D\xbe\x83\x8c\xa7\x12\x18d\
+|\x0d\xb1neE\xd8`\xb9\x22;\xb7\x97*\xca\x07\
+\x8a\x14\x06\x1dz\xd8+UY1\xf4\x89\x80\x19\xd6y\
+\xe6\x13\x905\x91\xed\x18\xb9\xc2x\xeb\xa0\xb4\x1c\x17l\
+\xa3d|98T\xc9w\xaf\x1c\x1b\xaa>\xb7\xdf\x97\
+\x80\x9b\x0d\x96\x8d\x9c\x16\x97\xf9u 4\xa4*\x9e\x7f\
+\x04\xae\x8cS\x0b\x11j\xd7\x05\xf3\x9c\x8d\x87\x0d\x89\xf5\
+\xd0Tr\xdc\x93\x0f'\x00=q\xb0-S\xa9g~\
+\xf3>-D\x9f\xfb\x83\x8d\x98^>\xe4\x90T\xd9\x82\
+D\xc8\xf7\x01\x04\x8b\xf5\xc8\xbcnXJ\xbd.x?\
+\xc6\x09V]As\x0d!\x14\xc4\x0d}v\xb7~\x10\
+(\x00\x81\xe2\xf7p\xac\xe8\x91\xa4\xa7\x0f\x04\x0d\x0e\x17\
+\x15h\x12F\x902Q\x19#\xa1\xc4\x81\xa4J\x17=\
+\xf0N\xbc\xf0\x8f\x0a$\x07\xbd f&\xc3\xe3\xf1\xd2\
+J\x01\x87C\x13\x88\xe3\xf0\x846@\xa8\x03\xb0n\x90\
+\xfd\x1a\x9d\x14|\xf4\xe9\xfa\xc7\xb0t\x9d?\xd9\x02%\
+\xf1:\xba(\xac |H<\x18\xa1#Vg\xcbs\
+\xf1\x5c\xf4\xdc\xdc\xa2\xf0\xcb0\xc9[\xde\xa4\xca\xe02\
+\x0a(\xa2\x027oX\xc5\xdd (9\xcf\x8f\xf92\
+\xbdIX9\xa0!m\x84\xdb\xa4\xbb$\xac\x1agA\
+\xb6\x8d\x1c\x99\x95\xb1L\x83\x03\xff\xe9\xc2Z\x9d\x13r\
+Q\xa9\xfekX\x95PV\xa2r\xfa\x88d\x87W\xa4\
+\x82\x22C3\x89\x11\x01\xce\x07\x93\xedS\x91H\xc2N\
+/\xc7c\xfa\xf9a\x85E~t\x7f\xb2\xfb4\xde\xc9\
+\x81\xeb\x97L\x96\x02\xdb\xf1f\xe3M\xc7\x9bfGw\
+\xe0\x90\xa0\xf5J\x15\xbbn\xcd\xb0j\xfe\x93\x08\x96\x83\
+\xe8\x96\x0c!X\xd2n\x9b\xd9\xe8A\x8cL>\x1fX\
+\x85\x5c)\xffR\xae\x94\x9f\x991bS\xd3o\x0a+\
+\x10i\x02^*\xe3\xf9\xf3}P\xfc\xcfS\xb9\x82\xb5\
+~\x1e\x07A!\xb3\xe3\xbbqa\xb57\xc9\x97\xe4\xc7\
+L\xba\xb6\x95\xa0\xe7GH\xd7\x1aH6PLH\x01\
+\xd9w\xa8\xe0@\xae\xa7}\x91\xdeJC\xf1\x91\x83\x22\
+\x81\x86#\xa7\xc4|N@=\x5c\x9dW\xec\xdb$\x04\
+9\xd79/\xf9G\x0b\x1a\x08\x1d\xed\xdbp\x03\x00a\
+\x9f^0,]O\x0fK\xdf\x7f\xd3\xc0\xd9\xe0\xf1\x10\
+\xa9\x9c\xe5\x1b\xa5\xa2\x90\x19\x93\x96-\x90c\x90w\x0e\
+\x00\xe5\x07y<\x85\x98\x9a\xfc\xef\xe0\xd8\xd3\x02\xd1\xbf\
+7,]\x1fJ\xf6`!\xaf\xeb\xcf\x0cK\xd7\x0d\x92\
+mXZ\xa0\xd0\xbb\x1f\x9d\x15\x96\xee\xe3}\x037H\
+\x0a\x9a^\x95\x03'\xd4\x8a '\x8e\x00\xfb\x0c!\xf1\
+\x22\xa1\xf4\xc4\xe8\xf1Q\xf2kF\xdf\x1d]<\xfan\
+\x0eXr\x22\xccz\xdf\xda\x07'\xdb\x84\x15\x92G\xc8\
+\xe6&7\xca\x01\x95\x5c]:\xbb\x87\xe7\x1f\xdeS\x04\
+\xf8\x9c\xff\xe7\xe8\xfb8\xd4$\xd6i)\x83\xd5_\x10\
+\xf7~\xc3\x01\xd9\xd2\xff\xa1\xff}\x9f\xe6M\xff\xb2\xb0\
+\xe2wfR\xcc\xe9\x8a{A-\x93\x90\xae\x86\xd6B\
+\xa8-\xa0\xae1yAX\xa5\x1a\x10\xf3y\x85\x8aM\
+;\xf6\xb5[\xe4\x90/&N\x86W\x95\x80\xd0\xad\x99\
+$\x0e\x94\xf8\xf5\xfb\xa90\xe0D\x97\x10 \xfd\x0ea\
+U\xe2\x98\xc0\x16\xff\x99\x1e|\xb8\x9d\xd8w\x84`s\
++\x00\x09\x12!\x1a\xfc\x9c\xe9\x0d\x97\x9a\x82\xb9\xa6\x98\
+\xdf\x0a<\x1d\xe8\xe27r^\x89\xb4\x0f\x0e\x03\xb7d\
+\xea\xf7\xe0\x000\xd9\xab\x02\x0a\xfc\xe1\xd1\x8b\xc2\xaaJ\
+\xff\x0f\x92\xfd\xb0 ]|\xdf\xc8`\x86|c\xf2+\
+\xbbE\x92-Z8\x00\xbc.\x04\x057\xa9 \xbd\xe0\
+@\xb5\x99\xc8\xf8?\xb7\xa5p\xf8\xb6\xaauE-\x10\
+\xb4\xae\x9a\x94\x90\xc0G\x89\x13\x93\x02\x0a\xe9hrP\
+d\xd3\xe0*B-\x00.\x1b\x90\xcf\xc8\xa1\xd2\x92A\
+\xeb\x05\x1c^\x92!\x9dl\x1fVZA&\xc7\x84U\
+\x9f\x8b\x80\x16D&\x9f\x8f\xc0\xb1\xad(\x13P\xaf\xa8\
+\xf9w\xb4\x10\x90T\xc2\x19'\x0a\x0f\x90~\xd2\x9b\xcf\
+>OAC\xadF\x0e\xcc\x19W\x02[\x02h\xee\x03\
+d3HnZ\xbf\x19\x17\xe65q\x0f\x1cO\xcc\x13\
+\xb8\x89H,\x10\xa0\x820\x00\xa9\x00\xe2\x13\xe4\x1a\xad\
+\x9d\xc4\x01\xf8\x99\xf8\xd1|\x9f\xcfA\xe1\x0d?\x98\xc4\
+\x09\xfer\x8b@ AHA\x0b\xbf\x17\x95.\xc9z\
+;1\xc0\xb8\x90\x88\xe3|\xc1\xef%\x10g\xffk+\
+\xf9m\x81\xac\x90\x87/\x98\xaf\xe1\xe5\xcc\xaa\xe2d\x0a\
+o\xc4\x07\xac?Zc@4S@j\xd5\x07xn\
+\x8d\x1a\xc1\x0c=ay\xfa\xdd\xa37\xfaO5P\xe8\
+%\xc7p<UA\xac_(\xf93>\x18\x8en\x1b\
+\xe8\xc0\xee\xa8L\x85I\xda\xa8`\xf2\xfb|\xc0\xc7\x1a\
+97\x02e\xa0\xbf\xf4\xd8\xf2w\x04x<x68\
+-\x10\xf7n\xd3\x93\xd5d\x18\x8dl`\xa3\xa7R\xdd\
+\xeav\xf3\xe0\xda\x9e\x0d\xde\xffY\xd4\x0b\xacr@ \
+I@HB\x81\xcfK`G\x00\x06\x12aI\xdd\xc7\
+rM\xa2\x81\xeb\x0a\xd2\x7f\x87\x94G,\xd3)\xd8\x19\
+6\xf8\xa74.Ll\xc8\x005>Y}u\xe9\xe2\
+\xc0\x99\xf4\x0dn\x022\x89\xaaL\xa3G\xef\xca'\xd0\
+kA\x9a\x0c\xf1\xe7\xa0c\xdc\x08\xf0\xd4Km5\x85\
+C\x85X\x10\xcb\xba+\xf5\xf4bS1e>\xaa\x22\
+\xe7\xf1a\xc3\xa3\x17\x19\x96\xdd\xb5\xb4\x01!;'\x99\
+\x17o\xb08\x8ad\xd4y\x0e|.\x12@\xcc'9\
+\xe4S\x9b\xa9B\x86\x8c$\xb2\x88\xf4z\xf19_\xa7\
+Jx\x0b\xe1o3\xa1-2\xa5\x9d_-I \xeb\
+\x02\x19)\xc8s\xd4\xabd\x08#\xdc\x0d\xb0G\x13\x80\
+\x93Qg\xde\xb6\x5c\x16$\xdaZ$L\x9b\xb1e\x83\
+c#l7\x1c~\x9f}\xa0%?\xe1\xe7\xd7ic\
+\x17D\xcf\xad&\xea)$\xa3K/\xba+\x16\x1c\x1c\
+\x90\xa3\x09\xf1bVf\xa0m\x1c4B\x1aPYs\
+\xcf\x17\x90E*#$\xb8`\xbfEW\x5c\xc8\x04#\
+Uh! \xd0\x04Z%H\xb4I\xaa\xb4\x9e\xfbS\
+\xc3J\xef<\x15\xdd\xdc\xa9\x7fz\xc5\x1a\x0c\xa9\x96Z\
+$2T\xfd\x7f\x8b\xfeywk\xf7\xc7\xee\x8f%\x10\
+\xccP\xcc\xcb\xc4\x8e\xbdo9\x88\x0cM\xc4\xd1\xe1 \
+S\xa0c\x073\xc2\xb2\x1bu0\xa7\xcf\xd3\xdd\x15\x96\
+\xae\xff\x0a\xcb-J\xc9\xd2\xfd\xdf\x16V\xe9\xb6+c\
+\x9d\x9f\xea\x0b\xab\xe7\xcc8P)9@r\xa8\xda7\
+\xd8oq\x08,_\xb6jXq\x84-\xb7\x86\xba\x0a\
+P\xe1\x90\xe9Z\xb7\xe8YS\xa9\xcf\x89\x94\xb3*r\
+7\xcd\x9f\xee\x8daJ<nZH\x8fr\xc2b>\
+\x05\x02\x95\x8c\xec\xe8\xad\xc9v)l\xd3n\x1dQ\xcf\
+z\xc6\x8f|\xad -\x1cH\xc5}\xa7@\xa9\xbf1\
+\xac\xea\xb1\xd5\xfe\xdf\x9d\xd6\x9d\x9a\xc9\x11w\x0b\xcb=\
+\xc8Y\x1e\x90D'\xcf\xab;3LP\xed#Je\
+\x8fD\xae\x1d,\xf6\xd9HX.Q\x05\x0a\xd1c\xbc\
+]Aj\x19\xb2\xfd\xef\xb0*`\x01\x9aN@\xa8\xc4\
+\xa8Y\xbe\xd9W #\xd3z\xb0\x1c\x9ez\xc3'[\
+\x86U\x10f\xf6\x19\x1c3\xe49Y\xff\x9c[p\x0c\
+h~\x8d\xae\x0b\xab\x1cY\xf6%\x1cd\x1c>UN\
+y\xaevp\x919\xc3\xe1#\xa1\xd2\xb22\xf3\xba\x5c\
+iQ\x94\x1cg\xf7\xfa\xb0r\x1f\xfd9a\x15I\xea\
+\xb1a\x05\x09\x10Z\x1d\xa1\xd6a.\x96\xb3\x14\x08#\
+\xff\x85\x83\xa8\xfb!A=\xb9_\x81\xce\xcf\xc4^\xff\
+\xcb\xfe\xba>*\xa4\xd7$\x0b9\xc1\x9f\x86\xa5\xeb6\
+aB\x06\xa4\xe7\xd7\x1f\x10&\xb9\xc5\x91\x10\x18/\xa9\
+X\xcdI\x84\xd2\xca!\xce\x00C\xc1\x83j\xecb\xed\
+\xebS\xe5\xdc\xef\xde\x1c\x96^g\x8d\xc9\x9a\x935\x0a\
+\xa4\x9c\x9evZ\xca\x8c\x8c\xa0\xf5\xe1\xd2!\xb0\x98\xac\
+>\x99=\x99]A\xd1\xff<$\xd4\xa6\x16V\xeb\xc3\
+%\xe2,\xf8sX\xba\xce\xd6\xef\xab\xa7\x1b\xc4\xdf\xf8\
+\xde\xf1}\xe34.\xe3\x0d\xc6/\x1d\xa7\xf5\xd0\x7f>\
+\xac\xaa8\x07\x07\xc9ZE\xa6\x90\xe7\xe1\xc4$P\x7f\
+X\xd2\xd9\xe7\xfe\x98\xb1\x7fE\xf5\x22\xde\x7f\x8dJ\xfe\
+u\xf9\xe1\xfe<\x8fIX\xc5W\xbf\xd7\xf98U\xb1\
+\x8d\xeb|\xee\xff/\xac \x1a\xf0\xf3\xfa\xa3\xc3\xd2u\
+\x99\xb0\xaa\x97X\xad\x9f\xad\x9c,\xf3\xc8\xf2\xae\xb0\xe4\
+s\x1e3\xaf\xb5/\xb8\xc5A\xe7\x99\x0b%\xc8\x0b\xd2\
+\xaa(\xce\x04'\xbaH\x18i\xbe;\x11\x00\xf2\x10\x7f\
+\x1d5\x07!kL\x96\xc7}\x90\xf8\x82C\x0a\xf9]\
+U\x86sK\xd1%e\x9c}\x1e\x0a\x8a\x9c\xe5K\xef\
+\xad\x021\x123$\x82\xb4\x9e\xddB\x04\x07\x87\xf6\x9b\
+\xc9\x8a\x93\x95\x22\x91\xcey\xe0\xc4\x1e\x1c\x11\x04<$\
+4\xe0\xf2\xdaP\x89\x7fZ\x10\x89Ch\xf5\xa3@\xa6\
+\x00\xd2-\x1f*\x18Pxpk\xa5\x12\xe5F\xc6\x08\
+\xe2\x0fw\x94\xfd~\x0a\x82<O\x90\x7f\xc4\x1d\xc4\x0f\
+\xdc\x0f\x85\x07\x02\xbb\x16\xb9H\xc5\x1c\x04\x1fH\x0b\x91\
+w2\x9en\xd5\xc3_\xc4\xcfc?\x96\x7fg\xe4\x15\
+\xea2\xec\xd3p'@>\x08\x82\x81\x82\x14\x9f\x8bV\
+_q\xf2\x18aB\x02\x98\xc0\xb9U\x8b\xe2<#\x10\
+V\xe0\xedu\xc6\xe7\xc2O\xa7\xa0\xc4\xd7\x90\x07\x92\xb8\
+!q\xd1r\x8f1\x0fH\xf8\xa9\xa0\xeds\x82\xc4\x07\
+\x89\x02\xee\x97\xf7i\xc9\xc2\xd9'\x80\xd6\xf3>\xc4Y\
+\x8c\x9b\xf6;\xaf\x1b\x12\x0b\xf8\xf7\xc4\x05-\x92\x1dn\
+\x12\xc6\x85\xc4\x0f\xf1)\xe3F<\xcb\xf3j\xb9\xf4\x14\
+\x8f\x10w\xdb\xaf\xd5\xe7\x9a\xf1\x00\x84\xfb~\xbf^p\
+\x89\xb9Y\x98\xf3W\x8fVP\x8b\xc8(^]\xd4\x02\
+\x80$\xb8\x12\x10\xf5\xb6\xcd\xf4\xc0\xd7\xaa \xc7\xca\xb8\
+\xb8\x02C F\xe0\xc0\x8d\x13`p\x1f\xe8&\x92H\
+\x90\x03\xe9\x01\xa4\x95\x80\xcc\xd4T\xd3\x02\xc0\x83\xe1\xf5\
+\x08\xc0p\x0c\xda\x0a%\x81<\xac\xf7@b\x81\xea\xb6\
+2\x0f\xed\xdf\xb7\x0f\x88\x9f\xb3\xc0\x99\xc8l \x82\xc6\
+9\xc3Z\xf4\xec\x87\xf1YL\x01%\x90x\xd87\x19\
+w6\x9a\x97\xab\xb7\x89\x1e'2s\x85]\x7f\xb8\x0f\
+\xc6\x0b\xd6\xd0't?Lp\x02x\xbdNr\xfb\xb3\
+\xa36\xf5)A\x1f_1\xe8x;`a\x5c\xf8\xbc\
+/T\x85|\xa9f\x82Jw\xdc\x1b\x80Z\x1f&Z\
+0\xa3-E\xaa\xd2\x22*X\x00l\x94<w \xbe\
+J\x5c\x8c\x1eQ\x85\xa8\xe5l\x10\xd2!9\x1ay\x03\
+'\xc0\x18\xed\xa0\x00y^e\x0c!w\xa2\xf2(\x07\
+|\xc4\xeb\xbdO\xcf\x81\x8d\xef\x05\xc3\xfd:\xd1\xb4\xb1\
+Hh\x98?\xcc\x032ym\x8f?\xe3L`\xcc\x15\
+(=\xe3\xc0\xb8\xb2!\xb4\x1b\x12\x99G\x02[\x1c\x1d\
+\xd8\x87E\x12\xe6@\x8d\x84G+;\xc8\xc6\xce\xbc\xe3\
+\xc0\xe2\xe7\xac\x1b2\x9b\xdc\x07\xf3\x9by@e\x93\xcf\
+\x87\xac\x1e\xe4}\xe2H\x98\x1c\xad\xcc=\xb2\x81\xe8\xb2\
+o=\xc8\xf3XE\x81\x9e@\x90\x1e\xb7\x87U\xbd\xe0\
+\x90\xc5\x10\x08\x01\xdd\x17\xf9\x91\xe5\xfb>\x1dVz\xec\
+Id\xc2V\xcd\x01\xe9\xf9\x0dB\x04\xdde\xb1\xcf\x13\
+\x98\x18\xfa|\x5cX%[(\xbdy \x80>\x10\xa8\
+\x0c\xfd8\xac\x92\x09R\xef7\xf7;\xfd\xe3\xb0t]\
+nz\xf9\xe9\xe5\xab\x00I=i\x04\x06\xfc}rF\
+.\x08\x87\xc4\x01$\xa4\x85\x1f\xc8f\xee\x90I?\x99\
+\x04\xb9\x16\x90\xe3L>\x98\x02\x9dn\xd3\xb0\xaaWR\
+=\xa1\xe3_\x85\x95\xfbb\xbf\x19\xfd8,]wK\
+\xb6\xabz\xe8\x8f\xad2\xd0\xb0\x1d/9Yj\xb2\x94\
+\x9e\xd7\x9fT\x91\x0b\xf2\xc1\xab\xc3*\xce\x05 \x94r\
+\xcc\xfa=\xc2*\xc4\x82\x12\xc0\x0eh\xe5\xc8\x02\x05f\
+\xfeuW\x85\xa5\xd7\xbd\x22\xac\xe2:\x08n\x83\xae\xcc\
+\x0f*s\x99-}\x9b\xd2s\x9eIjgUP\xbb\
+\x1ay0\xab\xb0[[\xd6\x88\x96\x19Z\x99\xa2\xa2\xb2\
+Wq\x5c\xf3\xb8\xa6\xe70sSX\xfaz\xb3d\x9b\
+Wj4p\xaf\xa0\x1e\x02\xa7\x0b\xfb\x16\x8e\xc8e\xe2\
+<9op<\xd1\xa7\x1f\x7f9\xac\x92\xb5\x03\x9aL\
+\x22dGUz\x90\xc9\x83,\x8e}E\x10\xdc\xfe\x82\
+\xb0\x82\xd4\xe8\xfe'Y\xb4t\x5c\x11V='zC\
+\xfbA\xfe\xd6\x8e\x0c\xbd\xa1\xf4NBz\xcb\xfe-\x96\
+{s\xb3\x100\xc0AA\xa2\x04\x19\xc7\xe7\x87U$\
+\xba$\xf4\xb4/\xba\xf2\xcf>J\x00\xc3\xb9\xda\xfe#\
+\x91\xc9\xbe\xa7}\xad\xfb\x7fai\x9d\xad\x12\x96\xbe>\
+0\xac\xea\xfc\xbb',\x8d\xc3\x09a\x15\xa2E\x08\x15\
+\xe42G\xab\x8ff\x8ff\x97V\x01\x9f\xc7b%\xc7\
+Qt\x22fW\xa9 H6nr\xea\xb0/\x02\x91\
+&A\x95\xe7\xe9\x8e\x8d\xec\xe0\xa6\x85; \xb4\x16B\
+m\xc1\xfb\x81\xd8\xf8\xfb\xef\x86\x15n\x01\x90R\x91>\
+\x8c\x04\xa2\x0b\x0d\x82\xa0\xc3i\xe2\x84\x19~\x93\xce\xb1\
+\xf1\xa7\xc2\xd2\xcf\x0f\x08+\xf34\xb9\xd1C\xcbG\xe8\
+\xb4\xcf_*\xa5pS\xa0\xfa\x11LG\xc1ud6\
+r\xfcJZR\xa4\x8e\x01\xb2f\xfc\xded{Ud\
+\x8e\x8ff\xfd\x9d\xa1\x92y\xa9\x12`\xebT2\x87\xea\
+\xe5\xcf\xf2\x8f\x1b(\xd1q\xa9*\xbc\x9f,\x81H\xbf\
+H\xb2t\xfe\x8e?\x14V\x12(y^\x1eR\xee\xd3\
+\xe7\x0e\x1c&\xad\x03O\xcb\x07P~H\xb7\xe0\x5c\x22\
+\xa0$\x90W\xc5\xde\xc8.*\xc2\xb0\xb0\xa3jBK\
+\x1c-0\xf8\x11\xf8K\xac3T*\x04\xd9\xef\xd7\x0b\
++\x89-\xf7\xf8\x13\x98h=\x12\xd0\xb2/\xbb\x95\x05\
+\xee\x17\x02*\xb8\x13@\xaa\x80\x10\x80\x1b\x00U\x1a\xa9\
+\x84d\xce\x97Wh\xdf\x9a\xbf\x22\x01\x04\x89!\x04\x8d\
+!\xfc\x9c[\xda\x9f'\xcf\x09\x13i\xe5\x86sC\xb0\
+Q\xbd\x98z\xdb\xd4\xae\x91\xa8\xcc\xb3\xf6\xf9\xd5\xfaV\
+B\x05RN\x12\xed\xa8f\xf89\xac\xafVR!\xea\
+\x18\x0f#BA\x16\xa9\x85\x81\x16/s l/D\
+\xc1\x93M\xcf<-3\xa8\x90@\xa6LA\x09D\x01\
+\xf1\x16\x01=\x95\x7fZS\x90\x83\xa3\xf7\x9c\x9f\xff<\
+\xed\xe6?\xaf\xb8\x05\xe0B ! \x7f\xcd\x95j\xb5\
+\xca\xb8@FB\x8b\x00\x93\x04\x04H\xd6\xd2\x22;\xdc\
+\x1f\x88\x09~\x9f\xf8\x8cyG+\x08\xb2~\x04\xce\xfc\
+\xc3\xef\xc3\xdfm9\x89\xd8\xa7[\xb50~\x0f?\x94\
+\xc4/\x017\xeb\x102U\x12\x1d\xed\xcf\xf9;\x02{\
+\x10\xe1$T\xe0T\x22\xc0'q@\xdcI\xa2\x00\xb2\
+=\x10\x08\x14\xbc\xda\x16n\xfc[\x12\x11\xdc\x07\x09m\
+\xceE\x0ae\x5c\x19\x07\x10\x0b\x04\xfe\xf8\xd3$\xb0\xf9\
+=\xc6\xaf!\xc7w\xbc\xc0\xb8\xb7W\x9ec\xf3\xfd\x19\
+\xb3j.\x96C\xcc\xd2k\x1f\xc3\xfb\xa0n\xfc\xeeJ\
+\x160\xa6\xc5\x1d\xd5\x07\xc3A\x8e\x1e\x83kT\xe9\xd9\
+S\x95\xb4\x9a\xa5\x9f\x80\x81J\x14\xd0|6\x1e\x1c\x09\
+>H\xdbcCbA\x95`\xcb\xae\x91H\xe0\x03\x12\
+\x90\x93\xa8\xb8Bd\x17\xab\xa9\x12H\x8f\xb12\x84@\
+\x8e,'\xc7\x83mY\x1c\xdb\xca1W&\xee\xdc\xac\
+\x8f\xc3\xcfy`\xfc\x1e\x81\x14\x13\x93+\xa4\x17\xc8\x98\
+A^\xc8\x02\x22\xa0\x02\xaa\xcc\xcf\x09\xb8\x80\xea3~\
+\x0b\x98\x84c\xb8/*\xe8\x04\x8c \x10VlT\x14\
+Xx\xdc\xe7\xd2\x9a`lx\x04,\xf4\x8e\x13(\xb5\
+2u+(P\xa7%aY\xc9\xb2\xadb\xd2\x99\x01\
+\xe2I@\xdb\xb6`\xf0\x1cI\xe8\x00\xc1\x07A\xd2\xca\
+R\xee\xac\xde\xe0\xfd\x86\xca\xa0\x1dV66\x1c\x1dH\
+\xe1Z\xae\x02*B<\xff\xe7i<\xd88\x09\xc0\xf9\
+\xfd'\xcc\xa6?\xc8\xcf=98vfMo\xc8\xfe\
+,K\x07\x14\xbd%\xafd!\xf3yH<\xa9B\x98\
+\xc9\xcb\xb6\xaf\x10\x19\xea\xb9\x9a\x5c\x16V\xe4\xf2L\xee\
+\x88\xea\x03\xcf\x15\xbdm\xc6\x13\x16^H%\x1bh\x90\
+3\x9bl\x5c$\xd08\x18\x9a^<\xf7V5z\xa9\
+@\xcf\xdcR\x82\x9c \xd0w\xd8\x89A\xe8\xf0\x0f(\
+\x18\x09\x0a2\xc1$\x0a\x98wr\xc4 \x07\xb3\x0c\x0f\
+\x08\x02d\xa8\xd4Ci\xae\x08\xd4\x03`Y&\x80 \
+S\x0c\xe9\x1f\x953\x8d\x97\xc9\x8e\x98\x9f\xb0\xb2\x8b\x95\
+\xde\x07\x18-\x06@^I\xcc\xb0oB\x0e\x87\xae9\
+\xf3Drq@\xeb\xe8\x95\x8e\xce\xde\xe8\xed\xcd\x10\xb1\
+\x05341W\x1a\xbc\xee\x04\xd9\x05R\x9c\x82\xd2\xa1\
+\x12\xff\xb1\x8c\xb1\x99\xea\x8fO\x01\xcc\xf1%Q\xd4=\
+\xaf[\xb5{^\x96\xb3:?\x93\xab\xd1S\xab\xca^\
+P\xd2\x05)\x1d=\xeaf9&\x01\xa3\xf1f\x9dQ\
+\xb91\x84\x15\x16fX\xc6\xbf\x92\xec\x8c*q\xa0^\
+x\x02\x07\xf61C\x9e\xdf?\xc8\xa0\xd1Z2\xd9#\
+\xac\x90\x8e\xb9\x12\x81\xac\x91\x02uH\xb0\xe8\x0d\x06\x9a\
+\xdc\xdf\x1fVd\xc62\xb2\xe8\xc3%`\xebnL\xf6\
+\xfb\xe2\xd8\xe6\x0e\xd2\xd7\x16V\xeb\xdc\x22\x90\x1c\x85\xf1\
+9\xc9R \xda\xbf>\xd9\x96\xda\xdf\xc7z\xae\xbf\x91\
+#\x1b\x89\x88\x95\xc2\xd24yQX\xfaz\xbed\xe1\
+\x18\xdf\x9e\xec\x8e\xea\x5c\xa4\xa2G\x05l\x13\xb54(\
+\xf1\xc8:\xe9N\xe9\xbe\xd0}\xa1@|\xad\xdb.\xf5\
+\x88\xd1W\xc3\x8az\xc3\xf4\x99\xd3_\x9dN_\xe7\xe3\
+5\xcd\x9b\xe9\xbb\xc3\xd2\xcfg\x85\xa5\xeb[\xc2\xb4\xce\
+\xef\xac*\x868\x1c \xb0\x82\xed\xfcg\xd5\xfa\xc0\x11\
+:@\x95'\x1cu\x02\x0d\xce\xf1\x8dD*&\xa8\xbc\
+\x13)Z\x0f$\x8c\xdc\x12\x11\xdc\x0c\xe9\xf9v\xeb\x87\
+\xa5\xeb\xcf\xc2\xca}\x98u\x9b\xca\x1b$\x81\xec7p\
+\xd1\xb0_\xc0:\xcfyB\xe2\x1d\x04\x93\x12x\xa8%\
+\x98\x8b\x81\x8a*\x01\x0b\xfb\x10\x08/!T\xe0\x940\
+\xf4}\xdf\xa9\xfd\xa6\xf6\xab\xc8i\x15\x00\x182O\x85\
+\x99\xca\xd8\xfb\xc3\x04\xd5\x7fU\xc5\x01\x11\xa4~\x7f\xaf\
+\xe6\xc3\x0eai\x9a\x1d\x9a\xecc\xaa\xa4\xbe\xaf\xf4\xac\
+C\x9a\x0b\xd4\xbd_6\xac\xaa\x8c\xef6\xf4\xe6w\xa7\
+\x85UP`\xfc\x15\xe4\xe2 \xb5\xd4>oD\x01\x08\
+\x18\x91s\x1aY\x06\x19(\xe3\xadsir\xc8\x80\xc0\
+\x1am2\x8c\xa7efAr\x01u'QKo\xb6\
+\xf6\xc7\xd1\xa7\x95p\x17gJ?N\x16\xaa\x1d\x9fK\
+\xf6\xf9\x82\x00t\x0b\x93\xd6\x8f\xcf\xad\xa8\x03\x9fP!\
+\x85\x02\x11\x96\x02\xb8\xf1\xa9\xc9N+\xea\x1ay?\xfa\
+J\x95\xd8\x15\xd9\xdd\xf4\x8f\xc2\xd4\xca\xb8o\xe5G\xa2\
+\xfb\x0e7\x13\xaa8p\xb9\x90X\xd2\xbe?\xfapX\
+\x91s\xed\x8f\x0bK\xdf\x7f(,}\xfdhX\xc5\x09\
+\xc1\xeb\xd3\x1a\x86\x0a\x06\x1cZ\xb4\xc4\x00i\x07\x09\x09\
+B\x16\xee\x03\xb85h\xa5\xd4\xfb\x91\x80s\xc2\xe5A\
+\x91U\xd2\xa2\xab\xe7kH\xb7\x10i$,\x80\xe8\xfb\
+\xf3*\xe1n\xd2@\xd6\x19d\xba\xf2\xd3Ln\xab\x02\
+J\xff\xcb\xb0\xca\x1f\x15B\x0c\xa4\x89\x11] \x8c@\
+\xecQ\xc1&\xd0$p%\xe1\xdc\x9c\xdbn\xfd\x834\
+\xf1=J\x80\xaa\xe5\xcf\x01,r\xb1\x04\xa2\xf8m\xcc\
+Oz\xef\xf7R\xab H=\xda4A(\xd1\xf2\x07\
+9\xa1\xe43=/\xf9\xbc\xac\x7fqy\xf8\xfc\xc7\xff\
+\x04Q\xc1\xd7\xb4\xd9\xe0\xf3\xbe\x00\x00 \x00IDA\
+T\x0a\xac\x9a=\xe7\xf0\xb7\x86\xfdH\xad\x0bNl\x12\
+w\xb0O\xe3w \x8f\xcc\xfcb\xbff<y\x9e\xb4\
+\xc86\x08.#\x1b\x08\xf4\xf1\xf78\x7f\xcf\x95:\x87\
+\x90\x7f\x93?\x85U\x010\x89\x0a\x12\x19\x04\xdc\x90G\
++\x8epB\x88\xb8\x84\xfd\x9ax\x85\xfb%A\xd5\xb2\
+\xf3\xe3\x8f\x12\xc8\xf39A\x98P\xf1\xa7\x05\x8d\xbfc\
+\x7f\xc7\xdf\x85\x0c\x1bD\x0d-m\xbc>\x01?\x9f\x03\
+\x95\x10q\xba\xf8\xf7\x09\xf0\xf1\x9f\x9b\xd7\xf7\xf8pn\
+\x92\x10\x8dQ\x7f\xa2:G\x99\x07\xcc\x1f~\x8f\x04\xfe\
+\xb3q\xd8\xb5\x08^\xe2P\xe6\x89\xc6y&/\xa7\xdb\
+\xab\x808*\xf4w\x14\xc8\xbf\x17\x86*\xc6\xd9\x91_\
+\xa9\x92\xbf\x88<\xf0\xf6\xeaY\x5c\xa7:x\x91\xe3x\
+2\x87\xa0fYu\xa0\xc0\x83d\x02\xf0>8 @\
+\x17\xc4&\xed@\xa6\x85L\xb7\xb2i\x0c\x04\x99\xb9\x22\
+\x9f6\xfc#\xc0\xe3>\x08t[6E\x1e \x81\x1a\
+\x95\xce\xf6A\x94\xbf\x07\xca?\x1c\x88\x8fh#i+\
+\xea-$\xbc\xd1yto\xd9-jy\xd8^l\xf8\
+\x0d7\x02\x19Q\xebh\xf2\xf7, \x02\xba\xbb4A\
+\x95\x19\x8c:ET*\x8c\x08\xe0@#@\xe5\xb9\xb6\
+\xd0s\xc8\x099\xf0\xb5 \x80\xb8\xd0\xb3\xea\xf1\xc5\xb1\
+ \xf0\x93C\xe8\xe7\xb8\xba\x12\x1a\x04>\x8c\xcf\x06z\
+\xdfF\x86\xc4\xafCe\xa5\xd6\x91]\xbdb\xb1\xe5\xf3\
+q\xe0\x11X\xaf\xaa\xc4\x03\x89\x12\x02j6<6j\
+66\x91$z\x03\xd4\x06\xef\x9eo\xc6\x89\xcc.\x09\
+\x026:\x1c\x02\x024\x16,\x018W\x02\x01\x12\x01\
+\x0d\xf2\xc4\xf7\xcf\xf7I\xf80o8\xf8\xc8\x04\x83\xb4\
+Qo\x1a\x157z\x00\xd1\xedv\x05]:\xd8\xde\xd0\
+\xa8T1_H,\x80\x88@\x15\x00U\x04z\x0e\x05\
+\xf5\xa5\x02\xe4J\x1f\x99q\xb8% ?\xa3\xb2'\xc8\
+\x99\x13\x16\xb0?\xbft\xb2\xc1\xe4\xa5y\x83\xcc\x89\xc8\
+,3w~U\xd1&q&\xc8\x9d\xe7\xc1'\xb2\x95\
+@\x05G\x81J-\x1b4?\xe7\xc0\xc6\xd1\x82,\x93\
+\xfb\xc6A\x84C\x04\x87\x83\xcc:\xfb\x04\x89\x11\xf6!\
+\xa0\xf0kf\xccN\xe9\xed\xe2\xe0\xc1\xd1\xc3\xb1\x82\x84\
+\x10r\xb3\x9f\x86\x95\xde[\xd4\x1e\x1c`\x13H\xd1s\
+\xaf}~\xf2\x1d\xe90\xdf\xd5\xdf\xd9\xdfY\xfd=\xbd\
+\xa6\xa8\x15D=5TH\x1e\x08+z\xed<W\xee\
+\xc7\xad\x11\xe8\x14S\xa1\xd1:\xea\xff\x10\x96~\xef\x92\
+\xb0*1I\x05\x0d\xfdf\xcd\xb7~\xe1\xb0*!\xc2\
+:\x95c\x87\x8c[\x7fG\x7f{\x7f{\xc5\xa2L\xcb\
+\x96t\xe0\xcd\x1a\x0d\xe2B\x9c\x1d\xe6\xb6\xa0\x22\xaf\x96\
+\x92\xf1\xf6a\xb9\xe7\xf9\x89\xe8y\xee\xae\x0dK\xd7\x9f\
+&\xbb\xb6\x92\xa5\x0b\xc7\xf0*%\xc6\xde\xa8DD\xb0\
+\xe4\x7f0\xd9\x07\xa4\xeb\xbesU\xc9U\x00\xc6\xf3F\
+\xe5%\xf7d\x7fM\x89\x88ph7O\xb6Y\x81\xd2\
+NNHv\xbc\x02\xe4\xcbr\x00>\xf4\xfc_\xa0y\
+\xbe\xfb\x00\xdd\xeeN\x0c+$\xac\xdd)a\xe9\xfa\xee\
+\xb0t}yX\xba>',]']\xdfM\xcas\
+\x1e}.,}?\xff+\x81 \xadA\xdd\xeea%\
+\xf1\x9f9\x0d\xd2\xba\xea.L\x162\x95\x8b'\x0b\x15\
+\x86\xcf\x87\xa5k\xc6\x9e\xa7\xebC\xdd\xc3\xdd\xc3\x95\x03\
+\xa8\x0a\x1cd\x8d&\x11\x93|\xe5\xe8\xde\xb0t='\
+\xac$6\xbb\xc7\xc2\xd2\xf5\xdfaU\xe5_\xfb\xb8I\
+i\x09\xfc\xe5\x80\x8eN\x0b\xab\xd6\xc1k\xc2\xd2\xef\x7f\
+,\xac:g\xa9\xd8\xe0\x00\xf1\x0fYK\xb5L\xf4\xa7\
+\x84\x95\xf5G\xa2h\xbcr\x98\x02\xf0C\xd3\xf5\x95a\
+\xe9\xfbg\x87\xa5\xaf\xdf\x11\x96\xbe\xde.,#)\xbe\
+\xd5G\xa5\xf9\x03C\x02\xcb\x0e\xf1\x9e\x82\xa4\xbfT\xe7\
+\x17\xb2\xad\xdc'\xfe\x84\xa0\xeb\xb0\xf0g\xe8\xff\xe3\x95\
+\xbe\xfa\x83\xc9\x1e(\x01\xb5\x13\x84\x0a\xa4\xfb\xd7\x84\xa5\
+\xeb\xf7\xc3J I+\xc3\xcc\xc6a\x95^\xba\xf4\xd4\
+\xddB\xf7\xd3\xb0r\xbed\x96\xfd\x934\x7f7/\x15\
+n\xcb\x06\xd2\xdb\xce\xf9\xf9\xb8\xfc\x13*\xc8\xa8!\xc8\
+a\x0f\xef2\x10\xa0@\xa4IH\x98\xd5^\xa4g\xdd\
+<\xddL\x97\xfc\xbb>\xd4\x00'\xd5\xfd\xec\x96l\xd7\
+\x0a\x92\x1d\x89\xa1\x03\xab@F\x89\xd0\xfe\x8c\xb0t\xdd\
+3,=\x9fk\xc3\x0aW\xd1\xf4\x85a\xe9\xfb[\x84\
+\x89[a\x83\x92\xc8E}\xc4jE\xc8/\xd3\xdb\xcd\
+<\xe3\xdc\x04\xc9#\xe4\x97+\x87\xb4V\xde\x11VZ\
+E\x9c@\x22\x80\xc8\xff\x0a\x02\x82\x84x\xbfmX\xd5\
+\xe3\x8e\x7f\x8b\x7f\xa5}\x1b\x7fh\xb2IX\xd5\x22$\
+H<\xe76\xad\x06<w\xe6'\x086\xb3\xc3+\xd0\
+u\x02\xab\x97,#\x08 %\xaaI0e\xbc\xdeV\
+\x95\xaa\x92\xd8\xf8!O\xcd\xfb\xd5^\x05J\x9eU\x1b\
+\xb6\xd09pE%_}[X\xfa\xf9\x1f\xfb\x81\xcc\
+\xed\xa8\xa9\xa3\x22!\x9d\xc6\x22s2LN\x13\x89\xe7\
+\x85\x92\xdb\x03!\x80\x5c\x1e$\xdb\x14\xe8\xe0\xfc\xf9\xd4\
+\x90\xc06\x07\x8a\x90P&\xe7#\xf0;9\xac\xf2#\
+\xe8E'\xf1\xbf\xb7\x12\x08$\xa0h1\x91?9\xba\
+2\xac$\x8e)\xd48aFk\x01\xba\xf2\x14:\xf5\
+~\xbe?\x0aq\xb4\x8a\x5c\xaa\xc4\xe2\xf7T\x80\x03\x99\
+\xc2?\xfc\x12H\x9e!=\x85\x14\x8fs\x14\xae\x14\x10\
++?\x0a\xabZS\xd8'\xf1\xa7\xb8?\x10\x8f \x14\
+h\xb9\xa0\x10%5\x12\x9f\xeb\xd7e+\xcf\x87\x96\x08\
+\x90\x095\xc7\xdc\xfd\x15\x82\x95\xc0\x98\xb8\x89q\xa0\x22\
+Ob\x16\x7f\x8e\xb8\x8c@\xbb\x09\xecM\x92G\xa0O\
+!\x0b?\x9d\xc0\x9e\x04\x06d\x9d$P\xf8=\xe2<\
+\xfc<\x15\x06=\xbe\xf8{\xbc\x1e\x7f\xd7\xcam\x830\
+\x91?\x94\xd3\x13wTr\xa6\x8c\x1bq\x03\x8e\x1d\x85\
+%>'\xf1A[\x98\xe6\xef\x187\xe2j\xc6\x89q\
+W|8\x93\xd9\x8b?\xa1\x85\xb3k\xd1\x89\x9d\x8b\xec\
+N\x81\xc8\xe4\xc6\xb0\xc2\x0a\xecL\x11\xe4`\xd1C\xf9\
+\xd6*Pl\xd9\x10[\xc8B\x0b\x8d\xe7\xca\x84\x86\xcc\
+\x8d\x0d\x0d6xX\xd8\xe9a\x02RI\xc5W\xbd&\
+)l\x1c*\xc6k>\x93M\xde\x99\xbe6\x81\xd0f\
+L\x90!\x11\x9b-=NsAW\x18\xf0\xa7\xf5\x00\
+zXw\x1a\x19\x08\x02\xeb\xf9\x05\xf9 \xf0\xe5\x81\xea\
+\xf3:\xe0\xa5\xa7\x8f\x07\xfc\x90\x0eZ\x16\x0c\x13\x92\x09\
+\x02\x94\x84\xabu}\x86\xcfCf\xcb2u\x1c@\x90\
+<\xca\xc16\x84x\xad\x06\x92\xdf\xea\xd8\x13\xa83\xb1\
+\xda\x9e\x96\x96\xbd\x9e\xf1g\x83\xa1\x15\xa1\xd5\xb9\xe7\xfe\
+\x99\xd0\x5cy]\x12\x09\xb48P\x19g\xde@r\xc8\
+\xf8\xae\xa3\xf9\xc3\xbc\xd3\xeb\x9b\xd4\x92\x00\x9b\xe7H\x00\
+\xf1\x8e\xb0*\xc3K\x22\xa9\xa8a\x0cH\x84V\x07\xb4\
+\xed\x95o\x13\x02$6B\x7f|\xde\x0a\xf2\xd7\xaaI\
+\x80\x08`\x9d0O\xdb^(6\x1eH\xf0xnz\
+=Xm\xad\xd3\xab\x80\x82\xc0p\xae\x0c\xe2T\x930\
+ccf\x83e\xe3\x17\xc4\xd3$]\xb0\x09S)\xda\
+7\xac\xfa<\xa8)\xc0%\xf2\xc1\xb0J\xcf\x18d\x07\
+\x81:\x19q\x02\x0cU$\x81\x82{\x1dh\xfc\x080\
+\x9cY\xe5\xf9\xf3\xfe$\xc6\xc8\xc8\x02%\x13T\xd0\xe4\
+\x868\xa4\xc7\x85U\xf3\xb8e)f\x9e\xf2|\xb9\x7f\
+\xd4\x08\xc2-\xda:\x1f\xb0\xe7\xc6\x01\x9be\xe5\xaa\xd6\
+\x09W\xc48P\x90\xc3\xc2\x01\x5c \xacRI\xb8q\
+hypK\x07\x19y%\x82&\x8f\x0f\xfb\xd4\xf8\xac\
+\xf1\x99\xe33+Gl\xa7\xe1\xb9X\xa5\x00\xc7%\x8e\
+\x9d\x87\x0a$\xb0[>\xac:h\xe0\xd0\xe0\xc0\x8d\xd9\
+]\xe9\x91{\xbe(\xa0\x19A\x82\xa9\xe7bn\x10*\
+\x8b\x04\xce\x22\xa7\x1bo\x1cV\xe6\x0b\xbd\xcfS\xc7\x0a\
+q\xb0\x92\x12\xcf\xe2\x0c1\x22\x86\x8a\x04\xbd\xf2p\x97\
+h\x9c8Hy\xbf\xd1O\xc2\xaa}\x9f\x1e^\x052\
+\xfd\x8b\xc3*\xd9\xc5_\x0e\xac\xd5\xd9\xc1}\xbbzz\
+?\x99\x03\xbb\x0fD\x22`\xb4{X\x15P\xdc\x16\x96\
+\xc6\xef+\xc9N\xd7\xfcI\x01\xdb\x9c\xd9aJ\xd4\x5c\
+PH\xf6\xba\x15\x92\xadXZX\xa8\x94vgu_\
+\xeb\x92#\x9b\xfe\xffz\xf7\xf5\x22\xc3\xd7\xfd#,]\
+\xdf\x1eV*\xe6\xd3k\x87\xa5\xaf_\xd0\xad\xdd\xc5\xf5\
+\xdbC\xc51\xb9\xfb9Q\xe9J\x94\x12-\x93\xff\x09\
+\xab\xf6;\x91\xb5\xf9\xdcd\x9f\x8fzzp\x14\x5c\x1c\
+VZ\xd3\xd2\xabf\xd9\xd8\xd1w\xc3\x0a\xb2\x06}l\
+\xf6\xa3\xd1\x02AG\x99\xae\xf7\x04\xdfw\x85$\xd0y\
+evq=\x17\x93\x1e\x0a\xd9\xd3}9,\x8d\xf7\xbb\
+\xc2*\xf23A\xa7\x09T\xbb\x83\xc3\xd2<:s\x98\
+\xef$\x0a\x9c\xb8\x83<\x93\xf3_\x88\xa7\xee\xc7a\xe9\
+zPXzN\xbb\x85\xa5\xd7Y+\xacB\xc2\xbc:\
+,}\xff\xcda\xe9\xfa\xea\xb0t\xfd`X\xfa\xbb\xc3\
+\xc3\xd2\xd7'\x8c?3\xfeLi\x991g\xc5\xd6\x03\
+Yb\x7fC\x7f}\x7f}\x86\xb4\x0fH%\x12\x8c\xaa\
+\xf0g\xc8q\xec\x83\xbb\x0cry\xdd\xfea\xa52\xdf\
+\xff0Y\x0a\x94\xfa\x05\xc3\x0a\xa7\xcd\xe8\xb2\xe1\xe7&\
+\xb7\x84\x0c\x10\x128Ux\xfb\x83\xc2JO}\xb7d\
+X\x15\x98\xabBH\x22\xb4\xfbaX\xd5#,\x84P\
+N\x80\xed\x94\x13\x11\x0f\xf5\x0f\xa9\xa5hR\xe9\x9f\x13\
+x\x90\xf8P\xc2\xde\xb2\x81\xcf\xed\x97\xed\x9f[Z\x0a\
+\xd2\xb8$+\x09\xe6\xc9SR\x09\x987\xd9<B\x08\
+-\x90\xf7\xaf\x9d\x22A\xcc\xfc0\xb4<\x128\xdb\x16\
+9\xd8\xfe\xa9dO\xab\xb5\xe2A\x05\xda\xe9<\x9c\xe7\
+\xe5\xc96Q\xe0\xf6\x83\x82(\x02\x01\xd6\x1f\x18\x96\xc9\
+;\x93edT\xd8\xd4(\xff+\xc8\xb5\xfe\x91\xb0\x8a\
+\xd4\x1a\xff\x0cr\xe3Z~\xf4\x9a*\xf0\x02\x99&\xae\
+\x1aZ\x95\x088Q\x1f\xf1y\x04\xa9\xa1\xd4\x1b\xe8\xe5\
+\x86\x842\xb7:\xbc\xb4Bf\xb1\x1f+\xa1n\xb29\
+\x12\x10\x92o\xb6\xbc%\xdcTJ8Q 05\
+\xd9g\x04\x88WV-\x00 \x1c@\xfa\xea\x9cf_\
+\xc9\xfe\xf1ZB,l(r\xb5(\x14|9Y\xa8\
+\xa7,\x1cV82\xfa\x8f$\xdb?\x07\xf4\x17\xe6\xf5\
+\x80\xcaT\x0a\x9fb\xbedo\xe9\xf4\xaaG\x9d\x02\x99\
+\xc8\x18!\x815i \x9c# \x86\xdf%\xa4\xe7\xbf\
+\x14\x00\xf1\xf7j\x11t\xcf>\xaa\x05p\xa1\xd0\xf3\xce\
+9\xb9\xadZ\xb3\xf0+\xf0\xf38\x7f( P@\xe2\
+9(\x81\xe2\x80\x92B\x15j\x22*\xe8X\xc5\x04?\
+\x05\xb5\x1b\xb5L:\x00\xd7~a\xa4\x11\x95n\x90\x11\
+p\x07\xa8\xc5\x95\x96 \xfbm\xf8\x09\xc8\x8b_\x98\xad\
+$\x06x=\xe2\x06\xfce\xfcz\xfc}\xfcu\xe23\
+\xfcC\xfc6\xd4Z\x08\xd8Y\x07\x8c\x0f\xbf\x8f\x7f\x89\
+\xff\x8c\xff\xdd\x92\x88\xb7\x81>\x89\x03\xee\x83\x00\x1b\xae\
+\x158+(\x90\xb5\x15\xff&\xe1\xe0V\x02\xee\x9f\xf1\
+$\x90\xe7kH\x83\xdb\xd6\x03\xe20\xfc1\xbe\xe6s\
+J\xe5\x22\xefs\xb7WHP\x10$\xfc\x1eqg\xcb\
+\x15\xc6\x15\x7f\x9fx\x80\xc41\x85\xdf6\x1em\xe3\xa7\
+\xa6\x90<\x90\x00\xa2\xbb\xfb\xa5\x0a\x12\xbc\xde\xa0\xdf\x9a\
+\xc3\x8f%\xe5\xf8.\xa5\x0a\xcf\x8aUo?\x81\x07\x10\
+Y\x0e\xde\xd8\xa87\x17t}\x8d\x0a\xc2DE\xee\xd9\
+\x12\x01\x0a,Mj\x87~)\x01$\x95k\xaeTR\
+!\xef\xd0\xd7\xa3\xd9\x0ap\x08\x0c\xdb@\x116tz\
+\xe8I \x10pqm\x03#&\x1c\xff\xc6\x86V\x0c\
+\x01:\x0f\x0a2\x0b*\xf5\xab\x87=\xa3\xf7ex\x10\
+,4\x02k\x02`\x1e \x13\x90\xf1\x99\x98-~\xa8\
+ \x92x\xa1\x02\xcf\xfd\x92\xd8 p!\xc1\xc0\xeb\xb3\
+\x90\x99\xa87k\x22\xde\xae\x89\xdeV\x9a\x05\x0d3\xf9\
+#\xcf\x8f\x16\x05 \x98<\xdfU\x14\x88\x130\xb1\x81\
+,\xdd\x90\x0e*\xe3\xef\x80\x95\x00\x9e\xd7'\xd1@\xe0\
+\xcb\x02\xe1s\xc2\xae\xbd\x84z\xc77Q\xe2bY9\
+\xb8\xe2 \x08\x91\xb4\x5c\x99\x5cO\xf3\x84\xf9\xa3\x8d\xd6\
+r:\xb4\x82\xf0~dFI\x84\xbdA\x15X\x02)\
+\x12M\x22I\x9az\xfd@\x02\xe7\x04\x0a\xf3\x0e\xc7\x1a\
+\xa4\x09=\xe1@\xf0hMi\x13f\xbc/\x81\x0b\x1b\
+C\x9bX\xe2\xf7q\xecY\x0fd q@h\x8dh\
+e\xb6@V\xe8jU\x0az\xd89\xf0\x08\x9c\xd9X\
+Y\x97:\x9088}\xc0\xf1\xfe\xfc\x1d\x07\x0d\x19\x7f\
+e\xbc\xdd{\xc9|\xe3\xf9K\xdf\x1e\x87\x8c\x00\xc0\xf3\
+\x8dD\x0c\x1b!\x07\x0a\x09\x18\x12\x5c\x90\x05B\x92H\
+\xab\x8d\x02~\x1f \xcfB\x02c\xc4\x04\x81\xa4\x12\x13\
+nAb\x9e\xb0\xfei\xb9 3\x0c\xd2\x05yN\xb8\
+\x0bH`\xf2\xb9!\x05\xd2\x86\xed\x96\x05U\x90\x8c4\
+\xbaH\x01\x84Z@\xdc\xbb\xaf\x831\xf7\xe6\xefV\x91\
+x\x11h\xd1\xe2E\x85\xe3\x7f\xb2\xfeFqhcU\
+\xae]\x02\xd5\xec\xce\xff\xa0BF,\x95WT\x81\x8a\
+\x12\xf8\x07\x14\xf4\xfa\xe2\x80\xa1\x0e`\x194A\xe4 \
+i4\xf2\x8b\xfd\x82J\x07\x10F!\xc9 At\xeb\
+\x81\x12\xd0\x8cK\xb7kX\xda\x16\x8e\x0c+\xaa\x05N\
+@K\x05\x80DU\xae\xbc\x9fP\x1c\x01\x10.F\xac\
+\x11\x08\xf3\xfc \xa7\x04\xe2\xb7S\xb6\x12\x80\xae\x1c\x96\
+\x96\xe5&\xc9\x22\xb0\x7f*,\x07\xc0\x0b\x84\x1aC\xf7\
+\xe9d\xd1;}BX\xfa\xfeU\xc9\xae.\x95{\x9e\
+\x939\x14\xb6\x1a\xb8/\xa8p\x9b$P\xac\xcd\x96U\
+T/:\x8e\xecd\xbe\x08\x99JB\xaa[\x22,]\
+\xcf\x0d+\xf3\x8e\xf1\xc5a\x9e,\x94l\x96\x02\x91/\
+\xa8\xc5fs\x05\x02\xdf-\x09)HZ\xd1%\x1f-\
+\x1fV!H\x84D\x1b]\xa8\xe7\x85,\x14\x8e\x96\x9e\
+swhX\xba\xee\x15V\xb1\xfa\xeb\xf9C\x06\x092\
+\xc0\x90a\x1c\x1c\xb8o\x04\xb1\xb6<\xa5\xe6\x89I\xbb\
+H\x08\x92\x98\x90\xa3\xde]\x19Vdy\xe7\x5c\x15\x96\
+\xae\x1f\x08K\xc7\xf9\xeda\x85L\xab\xffc\x7fk\x9f\
+\x1c\xba\xf1-a\xe9zuX\xfa\xfeg\xfa\x13\xfb\x13\
+\xd3\xd7\xbf\x08K\x7f\x7foXz\xff\x95\xc2J\xc5\xb4\
+?=,'0\x86\x00\xfa\xa5a\xe9zQX\xba\xee\
+\x18V\x90*y|\xf7\xa9\x12\xa7\xb1\xab\xa5}\xf7\xe9\
+\x9f\x86\x15\x7f\xc9\x81\xf3m\xaa\xe0R\x89\x02\xe9#\xae\
+\x13#\xaafO\xd6\x082\xb6~\xd3~\xb3>\x05\xaa\
+s~:\xe7\xda9\xd7\x96\x9e\xe8\xc9\x16C\xc2c\xf4\
+T\x08j\xa6\xfbX%,}=\x19\xb8\x1e\xf2<\xfe\
+t\xa9\x0cG]7#\xc3.\x1c\x12\xa5F\xb6(P\
+\x9bl3yc \x8f\xfa\xb5\xc3\x0ai\xe7x\xc7\xb0\
+\xf4\xfe\x9f\x9ds\xe2\x9c\x13+$\x01\xe4\x95OL\x1e\
+\xcf\x09\x8b\xbd\xc3\x0a\x12#\x93'\xbeZ\xebs\x83\xca\
+\xdf\x5ci`\x95\x1f\xef\x1cV\xce\x85\x99e\x92\xa5\xf5\
+\xd1}.\xd9\x89b\xe9O\xfb\xc1\xf8\x82d\xe7W\x89\
+\x96\xc3\xc2\x92{\xf7\xbe\xb0t_\x97\x85\xa5\xeb\xff\x86\
+\xa5\x9f\xdf\x10V\xf9-$\x02n\x1d\xe6\x85\x0bB@\
+\xb2\xf1\xd3\x98\xaf\x90@\xe2'\xb1_>\x1dV%r\
+\xd97\x95X\xcb*+\xc15\xf1\xfb\xb0\x9c\xc09\xb8\
+?8W\xee\x07\x8e\x05!O\xdc\xe3\xae}\xa9\xffx\
+\xb2\xc3\xf2\xdfg\xd5\x8f\x14t\x0d\x01\xde\xe6\x99\x16\xba\
+\x90\xb0\xceI6.-YNX\xe0\x17\xaaPC\xab\
+W.\x84\xbc\xb3\x1awU\xea\xdd\x22\xb9Q\xc6x\x16\
+\xf9U\x15\xac\x9c\xf8C\xae\x15$\x02-K\xeb\x0er\
+\xa6\x90[\x82\xb0h\xc9\x87\x19\xa7\xfeJq\xe7\xfcB\
+\x5c\x04p\x81\xa9E\x16\xf2BW\xfe\x09\x14O\x19\xe4\
+A\x8d4$\xf0\x83\x14\x11\x92\xe0\xbd\xc2\xca8M>\
+7\xf9\xec\xe4\xb39\x01\x95\xff\xce\x1cFJ\x8c:.\
+\xa0\xb5\xe2\xb3\xc3\xef\x9b\x04\x14\xff\x08?\x16\xa4\x80\x12\
+\xf3. \xf0s\xfc[\xfc\x17\xfc\x10\xe2\x01\xfcAd\
+S\x85\xf0\x81<\xd2\x1c\x08\xb4>\xd0\xc2\x00\x14\x1f\xff\
+\x88\xe7\x86\xbfC\xcb\x1e\xa4up{\x81\xf0\xa2\x22O\
+\x82\x8bB\x07\xfe7$\xa1\x14\x84\x08\xf8\x81\xcc\x13\xf0\
+R8\x82\xc3\x05.\x02\x02[\xfcc\x02~\xfc)\xfc\
+[\xd6\x17\xf7\x8d\x1fJ\xc5\x9fyI \xce\xfb3\x8e\
+-B\x80D%?\xa7\x90C\xa2\x01\xff\x0d\x84\x08\xe4\
+\x84\xbc\x0e\xbfG\x00\xcf\xd7\xc8TR\xe9\xbf3c\x8a\
+\xcb\xfd\xf2~|\x0d\x92\xb4\xe6\x02xNu?\x1a?\
+sU5-\xc6.\xfc\x91\xa0\xe293~maU\
+\xfb\xd1\x8c\xa1u1\xdc\xffRFguA\xf8\x96\xd6\
+\x1fv\xd5D\xd6F\xe3\xaf\xb9\x91\x08\xbbg\x17\x1d\xf6\
+\x0c\xc4:\xb5\x0aX\x98\xe0\x91\x97^N\x13yQ9\
+2K\xfd\x97D\x00\x99%\x02\xd8\xb629n\x02\xee\
+Vu\xe0^U\xba!Wb\x02\xb1\x11\x13\x98\xb6\x19\
+.\x06\x88\xdf'!!\x87\xc7\x01\x07\x95\xebe\x15X\
+/\xa6\xd7\xe5\xef\x0b\x92`\xb8O\x160\x0f\x86\xca0\
+\x018\x9f\x13Y\x1c\xa06 \x026T\xa01\x8f\xc6\
+sQ\x8d;\x1c\x0c\xd2\xeb\xb5|]\x0b!a\xfc\x0a\
+\x94e\x08\xc8\x98\x88 <~'9\x99\xed\xd4z@\
+\xe2\x80\xc0\x9cq\xe6\xf5\xa8\xe4\xe38k#\x06\x02:\
+\xb5\xa92\xe3<\x7f\xc6\x99\x89K%\x1fR=\x9e;\
+\xe3K@\x0b\xa7\x00\x7f\xc7<\xe1\x8a<b\x0b\x99\xe1\
+\xf9>G\x1b'\xf3\x96\xfb%\xf0%\x00\xa0\x17\x1d(\
+\xdb\x9f\xc3\x0a\xe4/\xfbC\xe9\xf5G_\x0b\xab\xe6\x09\
+\x1b6\xf7C\xa6\x5c\xba\xeb\xee\xb1\x22\x11\x86<\x0a\x08\
+\x04\x02\x1fm\xf0F\x06P\x01ouFI\x00\xb4\xc8\
+\x09\x02a\xe6\x15\x81\x10\xe3A%\x8c\xcf\xcb|\xc6\xc1\
+a|Y'\xfc\xe3u9P\xf9\xbc|~\xfe\x9e\xf9\
+A\x8b\x886z \xdb\xee\xb9\x07\x99\x80\xee-\x19x\
+\x1dd\x86\xcc\xf1\xb9\xc8\x80Kf\xcb\xec\xe8\x04\x90\xcc\
+\xc3\x96$\x91\xfbf\xdc\x80\x04s\xe0\xf0y\xf8=6\
+\xf2\xe6`\xf1\x01\x0a\x99\x99z\xd8\xddkI/\xf17\
+G\xdf\x18}\xa3\x92\xd1\xa2\xe7\x8c\x16* \xea\xe2.\
+0k.\xcf\x8bD\x04\x9c\x1f\xec'@\xfb\xd4\xb3h\
+\x04\x05j\x00J\xdc\x8e\xb6\x0a+\xd7\xee\xab\x03) \
+$G\x96\xfd\xbaC\xbd\xe8\xc8\x1dj=d\x88\xffF\
+\xaa\xd0\xa7\xfb\x1f\xfd\xbfd\xff\xaa\xd8\xaai\xe1\xb85\
+\xd9\x1f\x05\x05\x9d\xb7z\x1eJ\x8cY^H\xe4m\x19\
+\xb2\xf8\x91j=*\x01\xe1@N\x81\x06\x89\x14\xd4\x01\
+\xccb\xfd\xc5\x81\xfc\xc8\x0e\x8ezG\xfbu\xc3\xd2\xe7\
+\xfcmXa\xadw\x80\xadD\xcb\xf8\xd00\x91\x80U\
+z\xcb\xa3\xa9\xa1\xc0\xe7@\xfb\x1bz~ \x0c\xd4k\
+;\xba+\xacT\xb0\xdc\xb3\xbeu\x98\x12+K\x14\x87\
+\xb4\xfb\xbf\xb0t\xbd3Y\xfa\xbb\xe9C\x92\x1d\xacJ\
+\xe6N\xe5\xb9Y>S\x88\x11\x12\x90\x86\xe4?\x1eV\
+9\xac\x22\x0d3i$\xeb\xe4\x95J$\xa1\xca\xa2\xca\
+\xf1h\x9e0\xc9\xc0\xee\x98\x13=K\xe4\x04\x10$f\
+\xe1\xb6^\xad}\xe79\x85\xbc\xcc\x15>*\x5c}X\
+F\x02dd\x1a\x09#\xc8\xbe\xa8D\xd2\x022z\x89\
+\x12\x02p,<\x1a\x96\xae\x8f\x87U-\x0b\x7f\x0bK\
+\xd7\xef\x84\xa5\xeb\x0ea\x15d\x1a\x04\x89\xc8\xc2|~\
+\x91\xe8?0\xac\x92-\xa3\x12\x08\x1b\xb8 \xbcFP\
+|5,\x1d\x8f;\x85\x95@o\xce\x85a\xe9\xfap\
+XE\xcew\xf2\x90P\xe8\x97\x0b\xcb\xb2hC\xcb\xc0\
++\xc2\xd2\xbc\xda%\xac\xc8$\x1a\x82\xfff\xc9\xbf\x1d\
+'\x19\xb6\xfb\x07\xb2\xbc\xfeUaUO\xbc \xe3\x90\
+\x0fv\xdb\x86\xa5\xf9\xf2\xbb\xb0\xf2\xfas.\x0e\xd3y\
+\xff\xdcR\x11\xee?\x11V\x05\xcaJ$x\x9f%\xf1\
+\xab\xf9\xde?\x1cVZy\x0c\xed\xd7\xfd#g\x98\xc2\
+\xf2U\xfbh\x95\xfb\xf8\xd4aS\x01\xe1^\xaa[\xba\
+\x8b\x80z\xcb\xee\x0d\xdd\x1b\xaaD\x1a=\xd5\xc8\x12\xee\
+0\xb0\xb7G\x9d?\xb8\x08\xc6\x1b\x85ev\xff{\xc6\
+i^\xce\xb9f\xce\xd5s\xd2|\x1b\x9f\x14V%\x06\
+\xa3\x82\x7f\xb48>N\xaf \xf4\xb4Z!\xeb\x1a\xa4\
+t)\xb0\x1a\xcf\x0eS+\xc69\xa5\xf5\x86q\x9c\x9e\
+\x95l\xa1\xb2>\xc6\x17\x87\xa9\xe2\xbb\xbf\x10\x5c\x7f/\
+\xa4\xa3\xddYa\xe9\xef\xb6\x09+\xe3>\xfeRX\xa5\
+\x16\xa5yn\xee\x12\x91\xcd9\xe0g^\xaa\xa7\xde\x09\
+.\x05\xd8p^\xb8u\xa2ie\xeb\xce\x0b+\x90|\
+\xfbKp\xc2\xac>\xf4\xc8G\x9a&\x125\xb4\xdc\xa1\
+\xf3\x9d\xc9AW)\x89\xa0\x9c \xf8gA~\x82\x9c\
+\xf0>\x0b\x92G\xadB\xe9y\xc7\x13/\xe4\xab\x11\x10\
+\xc7\xf3\xdd \xac\xda\x17\x91\xa7Em\x06\x99L\x90\x09\
+\xf3g\x8c\xeb\xc0\xe1\xd0Wr\xb4\xe2^\x02\x09\x17i\
+\xa9\xac\xc6\xc0y\x09\xc2\x07$\x0b\xa4sR/\x19\xed\
++\x99\xe9\xd3\xc5\x01\xf2\xe1\xa9\xfd\xf2>\xf6@n\x16\
+\x9c\xcaa~\xac\xd7\xeb\x06U\x8d\xe4K\x0c\xf2\xc1\xe7\
++\xa1K\x0b(\xe7\x99\x12m\xd6\xb7W`\x0e2c\
+t\xea\x90\x88ua\x83\xcfA%\x1d}z*\xf2\xc4\
+%p8\xa9\x90\xe2\xc4\x01-\x93\x9c\xe7\x14\xa2\x08\x1c\
+A\x92\x00\x05\x87,\x92B\x09-\x9d\x87\x84U\x08\xca\
+#\xc2J\xc2\xdf~=\x05G\x90\x11\xbc\x0f\xfeh+\
+OG<EE\xbe\xe5\x0c\xc3\xbf\xe5\x1c'\xdeB\x05\
+\x03$\x10~6q\x16~\x0c~\x18\x05<\xde\x97\xef\
+\x93\x80\xe2\xca}P i\xd5\xd9 \xf7c\xbf`\x5c\
+\xeb\xca\xfb]ssW!\x9b\xe9q&\x00\xe7|!\
+N#\xf0\x87<\x10.\x826\xf0o{\xfb\x0b27\
+\xcbT&\x1f\xf2\xe6\xecG\xb6\xc8\x00\x0ad\xfc>\xfe\
+<\xe3\xcc\xf8s%AB\x82\x06?\x1d\xbf\xb7U3\
+\x00y\xf9\xf7\xb0*\xf1\x03\x09`\x9e\xaes\xaa\xde\x1e\
+\xa0\xe7Q'_O/\xbc\x80\x06|\xe1\xaa\x82\x0e\xc9\
+UCZ\xe6\x0d\x0b\x07\x9c\x00\x8e\x00\x10$\x01\xfa\xde\
+\x04zL\x98\x96\xcdp\xba\xe9\x09'p\xe6\x81\x81@\
+\xe0\xc1\x93\x01\xd1\xfdLn\x14Y\xe0\x1b\x05y'\xd0\
+lU\x0e\x98\xe0,\x18\xee\x9f@\x9a\x09\xc8\xe7\xe0~\
+\xa9\x94\x13\xb8\xc2]\xb0\x9cH\x8fVR\xe0\xdc\xfe\x1e\
+\x01\x0b\x01\xf0\xc2\x9a\xd0}C2\xc8}\x14\x1d\xc8a\
+\x82\xf0\xc0\xc9\xc01\x9e\x04vl,\xad,!H\x04\
+\x02?>\x17\x09\x0a \xd2\x04>Tb\xb5\x90\xdd#\
+\xccA\x07G\x03-\x1a\xad\xbc#\x0b\x9dyA\x06s\
+\x9e\xa6\x92\xcd\xf3\xe6~\x09\x98\xe8)\xa6u\x80\x9f\x93\
+\x81\x94\xc3R!C\x86D\x01\xaf7K\xe3\xca\xfb\xb3\
+\xb0\xf8\x5c\x92\xf1\xf3\xf8A\xd2\xc7\xeb\x93\x08\x88\xca\xdd\
+U\xa5\x87\x89^9\x02x\xb3\xcc_<\x1c\x10N\xa0\
+\xa8\x02\xd9\x92\x16Z5\x00\xf6s*\xf1 Q\x18O\
+\xe6\x07\xf3\xee\xd9Zg\xd8@A\x8cPq\x07\x09\xc0\
+\xb85\xac\xb1\x0et\xe9\xcd\xd2|\xb0\xec\xa6d\xbaX\
+o&\xefD\x9e\x91\x03\x15.\x04\xee\x8f\x0dH:\xc5\
+v\x94\xd88\xe9\x81\x87=_\xac\xf0\xbeO\xd69\xf3\
+\x91D#\x9f\x07d\x10\xb2\x92T\xe2q0\xa4\xcb\x8c\
+\xc3\xe5\x0d\x9d\xccp+/\xa6@\xde$\x8a\x90\x13\xd2\
+*\xa2\xcaD&\x87\xfaP\xa5>\x81j\x87*\x86\x99\
+9\xe5\xa9\xc2\xdao\x07\x8b\x0a>\xeb\x96}\x8f\x8a\x00\
+\x95$\xd4\x0c\xc8\xe8RI\x80\xb4\x11\x96g9^ \
+:\x0c\xc5\xee\xc2\xca\xeb\x8d\xa6G3\xa3\x99\x02\x11\xb6\
+l\x90\xae$\x0e\xfb\x17\x85Ul\xe1\x1b&\xdb\xa8\xb4\
+zY\xb6O\x15_\x93Q\x81\xfc\x10+\xbd\xffA\x9e\
+\xb5U(\xc6k\xde\xdc\xa3\xf1\xb8\xa4\x0a\xb4q\x00p\
+\x5c\x80\xee\x8b\xcc\xcf\x07\xa3\x0e@\xb7\x10\x00I\x052\
+;\x13V*\xb0\xfd\xa2ae\x1d\x8c\x1f\x0cK\xdf\x9f\
+\x1dV\x9eWr\xcf\x1f\x0a\x07\xbd{\xb0{\xa8K?\
+\xef\xce\x09+\xb2\x8b\xd33a\x05*\xce\xd73/\x0f\
+K\xdf\x7fO\xb2w\x97\x8a\x96\xefg\x85\xb0\x92H\xc9\
+P\xeb\xbf\x95^\xc8\xfe\xe2\xb0\x82@\xebfwkt\
+kT\x15\x12A\x7f\x9d\xf0\x90\x83A\x00\xdb}\xaa;\
+\xaeK\xebfz\xdb\xe97M\xa7sm\xfa\xdba\xe9\
+\xbajX\xfa\xf98\xac \x14\xba+\xba\x1fvW\xe4\
+\x16\x81o\xe7\xde\xfe\xed\xc2\x04\x85\xffI\xba.\x18V\
+8BF\x17\x84U\xf2dG\xabU\x08.\x06%2\
+L\xa2\xc5y*\x08m\xda-3\xe2\xa4\xfbSX\xba\
+\xfe'\xacT\x96\xadr\x91\xff\xa5\xeb%a\x15\x09\xe0\
+\x93a\xa5\xc5\xc2\x89p!+,o\x09\x84\x15\x84\x10\
+\x0e\x90\x02\x01W\xa4\x95\x18\x1a\xaf\x18V*\xf0\x04\xc8\
+\xd3\xab\x87\x95\xc4\x0a\xaf\x0f\x97J\x0a\xd7r\x80c\x92\
+\xca\x17\x86\x15?\xa3\xbb=,s\x95\x0c\xe3v\xea@\
+*\xd7\x9f\xdf\x9f\xd7\x0f\x81G\xbe\xffn\xb7\xa1\x85c\
+\xf2\xf6\xa1w\x9a\xca7\xb2j\xdd\x8a\x03yd\xb7\xeb\
+ \x17Ieq\xfa\xb1d\xe9}\xa7\x9fN\xf6\x94d\
+\xd4\xee\xabH %\x8f\xdc\xdf\x1d\x96>\xe7\x9c\xb0\xca\
+q\xdcZ\x01\x8f\x90\x1a\xe6\xf2`?\xa6\xe5\xed\x15a\
+\xe9uN\x0e+\xe7\xc1\x9c.\xac$0\xcdV\xff\xf1\
+lS\x91.\x88\x84A\x0a\x93r@\x04T>W\xdc\
+\xd3\xd7s^6g\xe39\x1b\xa7\xaf_?~\xdd8\
+dR\xd7\x1c\xe4\x06\xcd\xe6\xces\xc3\x0f\xe1\x5c\x8a\xdd\
+\xf0\xdb\x82\x8a\xa7\x00y\xfc\xfb0\xe9\x86\xa7\x80l\xe6\
+\xdd\xc9\xde\xa5y\xb5\xb2Z\xdbf\x97\x84^4^D\
+\xeb\x85\x03\xa2\xbds\x17\xf7P\x99\xbfJ\x01\xcb\x85U\
+\x22\xe0\xf2\xb0\x82X\xc8j\x0c\xf3\xaa%a\xde\x12\x08\
+\xe6}m\xab\xca_\xa4'\x9a\xf5\xa1VX\x12]\xac\
+\x93\xb9\xfc^\x02\x02\xf6\xb9\xa2\xb2\x91\x13npn\x80\
+\x80\x0af\x97\xe0v\xc9\xb3\xe2'\xf9\x5c\xbe7Wn\
+\xa5j\xd3M\x87\x95\xf3\xba\x7fKXI\x10\xf5\xbb\x87\
+U\x1c\x0a\xda7s\x9a\xe7\xb0\x92\x8047\x83\x02+\
+Z,\xd2>\x10\xe6V\x02\x17P>6\xc89;a\
+\x0bd_\xe7]\x7fHX\x15\x08.\x94YqL\xda\
+\x98\x91\xa0/,\xe7\x97Uk\xba\xb0* W\xc2<\
+\xb7\xe6}*W\xe8?\x97+\xee\x22\xe14RO\x08\
+\xaa\xfe\xec\xb0\x0aa\xf6v\x91'B*\x0c\xe4\x1b\xf5\
+\x15\xfcgT\x88\xe4W\x99TX\xaa\x08$H\x1c\xe0\
+\x8b\xd4\xd3\xf2\xc4\x22\xbf\xb5\x9f\x8f\x7f\x84\xdf\x81_\xa3\
+\xf1t\x9c\xc1\xf8P\xa0\x22\xbe\xc2\x1f\xc2\xdf\xa3\x10K\
+AC~\xe6h\xcf\xb0\xb2\x7f\x99\xa4W\xc8\x06'Z\
+.\xac\x90!\x9bW\xfb\xab\x90\xc4\xae\xe4\x13\x7fP\xf0\
+\xe1k\xfci\xfe\x0e\x999q\x958\x1e\xc4\xef-\xfe\
+\xfa\x7f'\xbf\xc6\xef\x94\xba\x89\xfdF\xde\xaf%Y\xc7\
+o\xc0\x0fn!\xf2$\x0e\x09\xcc\xdb\xde\x7f\xbeO%\
+\x9f\x02\x1b\xef\x03r\x8dx\x12\x7f\x96\x04@\xe1X{\
+f\xe0O\x8f\xff\x9d\x93\xbb\x82\xeb$\x87\xff\x7f\xaa\xd6\
+9\xefG\xfc\xda$\x10\x8c\xe8!.j[!x?\
+\x0am$\x9e\x987|\x9f\x82\x01\xad\x10\xb4\xa0\xe0\xef\
+j\x1cf\xd0\x81vF%\xfdY\x86\x80\xa4\xb0#\xb3\
+l\xc7\xe3]U\x81\xdb\x22U\xc0\x88c\xdc\x06\x94\x5c\
+9xx\xc0z}\x93\xcd\x11\xd8\xf0s\xe4\xdd\x9e\xd7\
+\x90\xb5\xb5l\xef\x04\x90\xad.:\x0f\x8c\x81\xe0\xf7[\
+y;\x0e\x1a\x02\x1a\xc96\xb8\x12\xc7\x04h\xf5\xd8y\
+\x10-4\xa5y?;\xf2\xf4\x9c\x93( \xf0\xa7b\
+\x09\x84\x96\xcf\xc9\xeb\xe0\xe0\xcf?\xf4Pz\xc1\xf0w\
+-Y\x1c\x07\x09\xe3\xb6\xba\xde\xe7\xf9\x0dI\x1e\x01$\
+\x812\x01\xf5\xfa\xda\xc0\x91\xed\xe3\xf9\xf1{\xfc\x1d\x1b\
+\x0f\xe3G&\xae\x95\xb5\xc0\xf1\xff\xe7\x90\x11Ln\xc2\
+@:\xc6xi\x5cG\x8b\x09\xb2OE\xba%w\xfc\
+\xff\x84\x9d\x07\x94-E\xf5\xf5\xa7\xfb\xce\x03\xc9I\x14\
+$\x0b\x82\xe4\x9c\x05\x89\x0a*\x22Q$KN\x02f\
+\xe1\x0f\x86OI*9\x09\x08\x92L\xa0 Y\xc5\x00\
+\x82\x22\x08J\x0e\x0f\x05D\x11E\x04\x89\x0ao\xba\xfb\
+\xabS\xb5\x7f\xa7\xea\xd5c\x96o\xaf\xf5z\xdd\x99;\
+\xf7vWWW\x9d\xb0\xcf>\xccG\x22\x88\xf5\x02\x92\
+k\xe4\xa7\xcfX\xcf\xaf\xfb\xce|\xe2}\x9co\x19\x88\
+J\xb5\xf6\xd3\x97|\xc0\xe4\xc8b\x85i\xfc\x08\x14\xd1\
+M\x00\xd5d\xc4\x04\xd5\xd6\x05j!\xb5g\xcd}\x86\
+\xe2\xba\xa0v+#\xe4\xedg\xc8\xfcSbA\x89\x01\
+\x01\x01Q\x1b\x9dQ\xc0\x86E`\x89\xf9\xc0\xb8)P\
+\x07u\x17&\x83\x8f\x03\x94\xf1_G\xe4\xda2\x98\x0b\
+\x12u\xabE;=b\x0a\xa5\x0bG\x95\xebc!\xa3\
+\x06\x11\xe6\x08\xe7\x8bz\xf0\xc6\x86\x22\x12Mf\x9d\xc0\
+\x095|\xcck\x02:\x04\x940\x5cY\xd0YH1\
+\xf4\xd8\x00\x10\xa5\x81\xe1\xa2\x0d\x0aub\xc4||\x5c\
+\xd9@X\xe09?\x9eW\xa8wP\xef\xa9u\x87\xaa\
+\xae\x8d\xba9#9\x00\xcd\x90\x0c9\x1f'm .\
+\xc6G{\x22(\xe7P\x09\xd1 `ce\xbeP\xc2\
+\x81\x0at\xcd\x94a\x1d<!\x22\xd7\xe8\xb2\xa1\xc8p\
+\xf0\xf6yk\x84\xbb\xbdFv\x18]\xe4J*\xc5~\
+\xffQq\x96X\x1a5\x8fP<c[4\xcbX\xff\
+\xd6\x10\xfe\xfe\xad\x01\x0b\xe4y\xd0\xbc\x1c\xf0R\x16\x89\
+\xf3\x12\x0ej\xb6\xdf*\xca*\x1b\x15\xea\xd0\xaamE\
+4\xaa\xff\xb1!\x97\x92 \xa6EMh\xbf\xa5\xa1\xe8\
+\x03N\x9b)D\x9b\x14\xe8j\xe77\xc4y\x9e\x02\x12\
+\xb3\xab\xfd\x9f\x98\x09\xed\xee\x069^&R\xf7\xb8!\
+\xbc\xbe\xde\x90k\xb4\xa1\x10{\x9bF\x02\xe38\xf2\xaa\
+\xa5\xed~\x18p\x85\x22\xf1\xcf\xe7\x0cj\xfb\x9b\x80_\
+\xab\x04\xe0\xf8,\xa6\xd4\xdf\xd7\xdf\xdb\xdf\x9b\xaf\x13\x15\
+\x7f\x1c\xef\xf6\xa5\xf6\xe5\xf6\xe5\xf0\xf3\x9d\x0d\xe1\xb8\xbc\
+!\x1c\x7fi(\xdat\xa1U\xf0\x8c!\x8bo\xba\x98\
+\xe2\x9d\x01wISg\xcd\x82\xd1\x01\xb5\x7f\xaa\xa1X\
+_\xa16\xd2]\x83y\xcf\xfe\xb4\x7f\xaa\x99m\x1eS\
+\x06_*\xe4^2\xc0\xf7\xe2H\xca\x80\xf6vz\xa2\
+\xe6\xb7\x9b\x1b\x8a.A2\xc4\xc8tz@L%\x5c\
+\x04*\xda;\x0dEf\x11\x15h\xda3\xa9\x1d\x1bv\
+\xcb\xe8\xf3\x86\x19K\xca\xc8tN<1\xf1\xf8\xc4\xe3\
+q\xfdJ\x81\xba\x9f\x18r\x09H\xb0f\x92\xd8\xa1\x1c\
+\xf1\xe0n\xedh\x22\x91\xfd\x9b\xfa\x99\xad\x8d\xdfpR\
+\xa2\x04\xe3h\xa1\x06\xef\x01Z\xda\xf2R\xfaA\xfbJ\
+(\xb9\xcf\x0c\xff\x1c\xc2\xf8\x8d?5\xfe\xd7\xf1\xb0\xce\
+u\x7f\x0f\xf8G\xd6 \xe8\xdfc\xc8\x01*\xc4\xca&\
+\x161D\x0d\x91\xa4\x19p\x8e\x025\xdfR\xd7\x02\xa8\
+\xdc8\xb4\x0a|\x8c\xed\x12\x91\xc7[m\xc7\xa8Q\xef\
+f2\xe4~\xd2^z\xa0@\x00?\xef\xb6\xec\xb6\xe8\
+\xc2\xba\xd9\x8dw\xa3n\x94\xc5?c\xa6\xf8\xa6Bl\
+\xda\xf2\x9b\xc1a\xeco\x0e\xb8\xa9p\xb8\xe5p\x0e\xb3\
+\x06\xbcI\x01\xf6/\xeby\x08\xcf\xdf\x94\xa5\x03\xde\x91\
+\xef\x9f\x07\x86T\x12\xd3\x7f\xc8\x10\xde\xbfOD*)\
+\xb2\xe7\xed\xc8\x80#r\xc0\x9d\xf3\xf56\x98\xdf6\x14\
+\xeb\xba1\x9d\x1e\x96\x18\xa3i\xab\xecg(\xec\x1d\x95\
+*y\x80@\x81I\xef6DI\x9d\xd6E\xb7\xbb$\
+\x1a\xe8\xfb\x89\xd6//1R\x80\xd4\x19<*\x11$\
+ O\xbb\xd1\xb1y\xa3<\xb3\xadW\xbb\xd9ze\xb3\
+\xc5\xe6\x0bTt\x02S\x9eh`=}\xc9P\x88\xd0\
+\xca\x0e\x8b%\x04G\xe7\x80\x80S\xda\xaf\x8a\xc8\x1a;\
+t\xe3\x9a\xd3P8\xd4\xb2[\x22\xf3\xc1\xec\xc0\xe5\x0d\
+\x05c\x02J\xf9\xe9\x11i\x7f[\xa2(\x89C#\x08\
+\xc7E\x8eg{\x88\xa1\xd0L`\xbe\xc2\xcc#p\xa2\
+}\xd5\xd7'\xf6y\xd6\x03\xd5\xc4\xbb\x83\xae}3\x06\
+\xa4\x96\xc9]\x04\xfc\xfeb/!\x16\xac\xf6\x8a\xae\xa5\
+\x82\x1d\x89\xdd\xd5U\x8c_\xfc\x13\x1cI\x1cD\x18 \
+\xa8\xdfS\xfa\x87}\xcb\xf7\xb2\xbfW\x89\x0f\xbf.\xc4\
+\x00\x19\x87\x9a\xd9\x88?\x83\xa3\x8c\xa3\x0d\xa3A\x9aM\
+3\xb4\x99\x86y\xc9\xfa\xc9\xf9\xa2\x85\x05\xb5\x1e\xfb\x80\
+\xeb\xae\xda\xffa'x\x1bg\xc6\x09\x7f\x80\xc4\xee$\
+\x22u^*\x8b\xea?%5\x5c'\x81\x89Z\x93\x8d\
+\xf1&\xe0\x82\xb85\xed{\xf99\xdf\x8b\xdd\xc8}\x87\
+q\x8a&\x05\xf6$\xf6\x15\x8e<\x81\x05\xba-\xfc\xcd\
+P\x88Lc7s]\x8c+\xe3\xc6yQ\x8a\xc0\xe7\
+\xd6\x01\x0f\x02\x00$\xaa\xf1o\xf0'H\xccr\x1f\xf8\
+{\xee\x13v\x15\xe7\xa5q\x1d\xd7\xe9$\x07\xafI\x11\
+\x881Q\xc9cd\x89\x89\x88\x83\xc4\x0d\xc41\xc61\
+\xc4@x[\x94E\xcb\x7f\xc7\x84 b\xc4\xfb\x98\xe8\
+8Z8xU\xc6\xdak\xf5\x11-\xc3!\xa3v\x16\
+\xaa,\x116\xce\x93\x89\xcc\xf91\x90\xdc\xf0Z\xac\x8d\
+\x09\xc3\x04`\x02\xb2\x11\x12Y\xa4-V=q\xf9\xfc\
+\x5c\xc3\x9c\xce#;\xe6\xe9\xbc\xd1,P\x8d\xbc\x8bZ\
+\xe1\x98\xf2\xa0\x12\x01d\x5c\xf8{\x8er\xd0\xbd\xbd\x12\
+\x91\xbc\xcc8H\x0e\x14\xb5\xf6\x8b\x8b\xd9\xa1\x9a?\x1f\
+\xf7e\xe5@\x8a\x9a\xee\x99T\x1c\x1f2\xadd\xa8q\
+\xf4*qH\x9f\x0f,|\xafz\xd7\x84\x94y}i\
+\xfa\xae\x09\x03\xb5]\xabW\xa5\x1cu\x1fz\xbe\x8fq\
+a^A\xb1\x22\xa2\xbe\x9a\x98)d\xa0\x09\xc8 v\
+\x83\xc3QiH8\xc3\xa0\x16\xc1Z@\xed\x8f\x18\x8f\
+\xccDI\xd7QE\x1e\x87{\xd4Ns\xaaDH~\
+\xa163z\xed\x81\xb2\xba\xc6\x8b\x88\x1e\xd7\x99\xefK\
+\xd2z\x0b\xebS\x00\x00 \x00IDATD\xa0K\
+C-z\xc9\xe7T\x81\x176rj\xdd\x5c\x5c\x06\xad\
+\x03\x0c]\xc6\x97\xefc\x03 \xb2\x8aF\x00\xff0\x00\
+$\xb6\xe6\x8c\x076DD\xff\xbe\x92D\xc2|\xe1\xe3\
+yT\x04\xd5\xdb\xdc\x89\xf2\x08\xd5\xafy\xd2P\x18\xe0\
+\xdcG\xd6\x03\x9e+\x9eK\x22\xf7Z_\xa0\xbczm\
+\x9d\x9e36.(\xa2\xfe\xfc\xb1\xa0\x1f\x17\xe1\x06\xd8\
+\x0c\xed\x01YpY\xb0e\xb0\xd1\x1f\x98\xc0\x8f\xcf\x13\
+\x98H\x94\x920\x9f\xb9?P\xf8U\x9b\x87\xca\xbe\x7f\
+\x1f\xed.\x09\x10h\x9d\xf1q\xa3$\x84\xf3Q\xad#\
+\x94@D\xba<\xe3\xa4\xee\x09a\x1bN\xb5\x9fr\xa8\
+\x5cE\x9f\xf6\x88f\x90\x07\xc3\xa4\xfbp\xb7S\xf7\xe1\
+\xa2\xbb\xc0S\x86\xc2\xe1\xc7\x01\x82\xa2-\xb5v\xa7\x88\
+\x9b\xa8\xe1\x85\xd9phn\x91\xa3t\x89(\xfd\xb6}\
+\xff\xbc\xa8eS\x0d\xe0\xb0\xa7\xa1\xa8E\xa5M\xa26\
+F\xcb\xa3\xf6\xdf\x17\xf3\xe6\xd2\xa2{\xc4<\x06\x05 \
+\xe6-\x1c(\xda\xd8\xbe-\x95\x9c\x85\xbb\x13\x19\x13\xa3\
+\xd5\x0c\xe1\xf8'C\xa4\xa4\xbf\x1a)\xe93\x19\xb2\xe1\
+>\xba\xceP\x18H2\xc48\xcf\xd8\x86\xf6\x9e\xc2\x00\
+C\x9b\x02m\x1c{\x9a\xa7\xc8\xc0\xbbN\xcf\xc3\x83\x85\
+*\xfa\x15\x01?T&\xe9\x82\x9c\x91\xed\xbfa\x88\xa5\
+$\x019\x80\xe7\x81S\xed?\xed\x0f\xda\xcb\xdb\xcb\x0b\
+\xe6\x8a\x1c\xbf\xfedC.\x81\xf0\xc0\xb2\x02\x1f1\x00\
+\xb0\xad\xe6\xfd\xf12\xc4\xcfP\xcd\xe6\x15E\x09\x1a\xb5\
+\xa0\x04bd \x0d\xd7H$\x0c\x15q\x95$8\x13\
+\xed#\x12\x01&\xe0\x87a\x86\x96\xc2\x0e\x86\xac\xc9A\
+f\xde\x1d\x07J3\xe8\xee\x00\xe5V\x81J\xcf\xf4\xb3\
+~\xc28@$\x12\x86\x0e\xfb?\xda\x15b\x04\xb0_\
+\xb6;\x1b\xf2y\xa2\xad\x80\xe3\xe3\x01E\xcd\xcfn\x95\
+n\xe5n\xe5\x18\xa89\xb696\xcc\x8f\xdb\x0dQ\xf4\
+\xf1<\x13}\x1c\xfbd\x84\x05\xa8\xa2\xfa\xbe\x85\x01,\
+\x10\xc0\xfe\x1d\x1f\x8f`_\xf57\x1a\xf2\xe7\xe2\xb82\
+\xef(a\xe8\xcf6\x84\xe35\xfd\xd5\xfd\xd59@7\
+\xbe[@p\xf4\xfa\xf5\x03l?6\x82\xb3\x89 \xfe\
+\xc4\x90\xdb%\x8e\x1fb\x08\xcb\xcf\xbb\x0d\xc1N|r\
+\xe2\xaf\x13\x7f-T\xd2\xe9\xa6\xa2\x80\x08\xed\xc6\x9c\xf1\
+\x80X\xa9\x98\x090\x86\x9c\xd2N\xa9\x0f\xdd=\x14\x88\
+\xe8\xee\xee\xfe\xd0\xfd!g\x9aM\xd2\xcfD\xfd\x5c\xd3\
+@\xd4\xf0\x98\x8eyV\xe2\xc3\x7f/\xc4\x0d\xc5\xe0\x8a\
+\x8c\x9aoi=\xfe\x8a\x0c\xe3\x07\xf2|oo4\x88\
+\xb9\x12\xec\xcavcC\xf8\xfe}\x02\xf6\xce\x14\xf7a\
+e\x83\xce\xf3\xd1\x82\xa1i\xcf\xd5\xc1E)\x1f\x193\
+Q\xe4\xbd\x8b\x0d\xea\xfa\xaa\xfdE\x94s\xd8\xc8P\xb4\
+\xe1U\xc9U\xec\xd2`L\xa3/\x18\xc2\xf15\x93%\
+\xcc\xa5080\xed\xe1\x86\xacu\x85(\xa1?\xf7\xec\
+W\x88\xdf*!\x84\xa8g\xfb\x1eC\xee\xee0<=\
+\xfc}x\xbaX\xf7p\x00e/\xc2\xa4\x89\xcf\xd3\x95\
+a\xfe\xeei(\xb4*\xd4\xee/\x86\xf7\x1e*\xda3\
+\xc2hBtQTv\xba\x908s\x0b{\x82\x0c\xba\
+\xec\x17o\xbf\xc6\xfd\xa0\x84\x8f\xc06\xed\xfa\x08 \xd0\
+\x15\x86\x1a~\x18F\x9a\xb7\x1eHQ\x1bPj\xf8\xc7\
+n\x0d\xab\xc3\xad\x85\xda\xbc\xeeg\xb8\xbbi\xdfY6\
+%\xb6\xfc\xba\xe4 \xb9}D\x97\x1d\x1cC\xec/\xfc\
+\x02j\xc6\x15\x88\xa7\xcd\xa7\xfb\x010sYo\xf9|\
+uS\x1a;\x22\x22\xdb\x1d\x94^\xc3\xc8\xa3$N\xcc\
+J\xef~Rk@\x91\x18AL\x10\xcd\x88\xc3\x0dE\
+\x02\x8a\x00\x0e\xe2\xcah\x04\xd0}\x80\xc0\xbb\x9ewO\
+\xfc\x91\xa8\x10\xe3\xc4\x1dGj\xf5k\xf1A\x98y\x04\
+lH\x10\xe1\x10S\x1a\xa0R\xc0\x19D\xee\xf8\x87\xc3\
+\x8a_F\xc2\xb6\x16\x9f~\xc0\xb5\xca\xd2yr$\xa0\
+JB\x08\xc6\x04\x81T\x02\x95d\xf0k*>\x8e=\
+\xa5\x1dt\x03\x802\x8f\x9d^\x97n#\xde,\xc6i\
+\x0cK\xfc\xb5\xb0\xcba\x0e\xc0@\xc5_D<\x9f\xe7\
+\x83\xef\xe1\xfc\xeb\x12\x08\x02\x00\xd8}$$\xabR\x0c\
+\xd7,\xe0{8\xdf\xba\x14B\xf3z<\xf6-\x7f_\
+\xe1\xb8\x9b\xfb\xb8\xb8\x22R\xebdM\x00\xcf`\xe3\xd0\
+\xd6\x19b6\xdcYb\x07\xfa\xbc `\xf8r\x828\
+Ru-8\x99\xc2:\xa3\xc5\xe7\xe3h\xf2>\x1eP\
+2sd \xa0\x8e#vE\xdfy\x0c\xff:\x80A\
+f\xac\xae\xd1'\xc3\x88\x03S\xab`N\xd6\x16\x90\xd7\
+\xaf\xcb\xa1\xad3\x0bYE\x9c\x8c\xf5\xf4\xb5\xf0|\x1f\
+\xd7M\xa0\x84q'\xe3K\xe0\x03\xb1\xbd\xb7)`B\
+\xc0\x80\x1akJ:\x18'\xc6\x8d\xef[D\x91S-\
+\xc8\x1eH \xe2\xa8\x0c\xb4))D-\x85\xba\xcd\x22\
+%!\x95#\xe95sh\x00\xcc\xa4\x85\x91y\x01E\
+\xec\x1f\x12/d\xfc\xb8\x1f\xcc\x93\x9a\x89Q\xd7\xf6\xe7\
+\xcc}z\xcdx\xd6G\xde\xc7\xbc\x85\x99\xc11S\x95\
+\xd2\xbc\xc3\xc1G\xe5\x9f\xf9\xc5u\xf3~\x8dk\xbbV\
+2\x0c\xdcq>W\x06\xaf\xfa;\xfbF\xc6FCw\
+\x09jAa\x0a\x90!`\xbef&Kz~\x10\xd7\
+\xa2\xb6\x9cR\x17\xc4lh\xdbG\x9fi\x16z\xd5\xd8\
+\xd3\xfe\x8b\xdao\xcf\xe0\x89\x1a\xe6\x81\x06E\xa4\xfd\xef\
+\xe8\xb3\x0ee\x95\xc0\x1e\x0b\x1d\x91s\x22\xa2\x88\x1a\xd1\
+\x07\x98\x00\x1d\x1b\x07\xdd\x07X\xd80DY\xe0\x99\xaf\
+<\xf7l\x1c0\x16T\xeb\xea\xa2\x8d\x88n\xaa\xa6\x14\
+\xb1?\x8fxrT\xed\x1f\x01\x0b\x16\xd8\xd8\xae\xc8\xda\
+b\xddn\x90j\xf1\xb9\xc5\xc6ED\x98\xf6\x88\xbf7\
+\xe4\x0d\x98\x0d\xd33\xdc\xb4\xf5#P\xb2\x8e!\x8b\xdf\
+5\xb7\x19\x8a\x0d\x95#5[D\xcc1\xa8\xd8\x909\
+*3\xec\x99\x8b'\xa5\xbeN\xa6\x08\xad\x01\xfa\x19\xcb\
+\xd0!3\xdc.\x93(\xe7\x88\xf2\x91\xe9\x85\x82\x1d\xee\
+\xd5\xf2\xf1~-\x19\xc9\xcby\xfe\x11\x18\x5cs,\x06\
+<\x5c\x1b\x05&\x8c\x0c\x0dw\x1c\xe4`\xf5\xf1\x9f\x0c\
+\x98\x15e <\xad~\xdfs\xa8\x96\xf8\x80\x223)\
+\x15v\x0c\x182U\xc3\xce\x86\xdc\xad&\xce\xdf\x1f\xa8\
+F\xff\x09\x95$\xbd;\x8bMQS;:\xdd\x10\x8e\
+\x8b\x1a\xc2\xcf\xef2\x14m=\xc9\xf0(\xe3\xe6\xa2R\
+\xf4og]$\x00E\xc0\x90\xda\x5c\x0cK[-\xd7\
+/\xba\xe9\xd8j`\x01\x15\xdbg\xb7T\x06\xfc=E\
+\xed\xba\xd6\x012\xa0\xec_\xa3\xc3F\x87\x8f\x0eS&\
+<\xbc\x7f4\xbf\xa1\xa0\xf8\xfeN\x8e\xbfjsa\x14\
+\xf4\xdb\x1a\xc22\xfb+C\x16\x17l\xd75\xe4\x0cX\
+s\x85\xa1\xd8\x8f\x08PX`\xe2\x8a\xec\xa0\xf7\x8b\x1a\
+\x8a\x0c\xbd2\xdf\xb4-#\xe3\x18\xf3\xca\x17E\xcd\x8f\
+\xe4\xd8?\x91\x02Jau\x8b\xa2L\x04><\x10K\
+\x00W]0<0\xc5:#1/\xa8\xcd\x9e\xd9C\
+\x15]\x06\x13\x19[/\xd1a}\xc3~ \x10\x85x\
+\x22\xfd\xc9\x09\x5cI\xc3\x80\x92\x0f/y\xd2\xfa\xe8\xf7\
+_\xfb[\xbb\x87!;V\xed#\x86\x1c\x90\x80zK\
+I\xcd\xb0\xed\xb0\xcd\x10\x9e\x8b\xfe\x03\x86b\xbc\xa4\xf9\
+\xd2,\x9fJ\xc8\x9a\x1b\x92hj\xbfp\xbfH\xbfH\
+\xa4\xcc\x07\xc4\x0c\xf4#Qk\xe3\xf1\xe6\xb1\xe61\x89\
+9\x86\xf5o\xfc\x9b\x86B\xa3H\xf3\xc9\x03vdv\
+^\xd7\xba\xb8\xc6\xb0\xda\xb0\xda\xd8\xd8\xb4\x8b\xa6]<\
+\xed\xe2\x82QD7\xa0\x8d\x222s\x86\x00&\x86?\
+v\x08\xe2\xa1\xb41\xc4\xbe#\xc0\xfb\x5c\xa2\x86\xb7\xcb\
+\x1b\x8a\xcc\x9d\xd6\x8d\xfe\xbd\x06=\xef\xfb\xe5R\xb7\xd1\
+\xaf\x02n)\xe6\xd1\x22\x01\x8b\xca@\xff\xb3\x12Gs\
+\xe5n\x02P\xc3\xfb\xbb\x02\xee,(\xe8\xd87\xa2\x10\
+\xb3>\xc6\xef\xddB\xfb\xf6\xdb\xb2C9l\x1e\xf0\x9e\
+\xa2]\xa2\x18\x08\xdd\xf1\x86b}T\x8d\xbc\x97\x96Q\
+\x02G\x82I\x01\xea\xf6jC.\xfd\xe9\x7f\xdb\xdf\xde\
+\x87\xe7\xb4_R\x9a\x0aZ\xcf\xfb\x8f\x19b)\xcf\x09\
+&\x12\xeamf\x15@\xee\xbfj\x08?\x7f\xc1Ph\
+qH\xd3`X\xccP0\x05\x09\x0cc7\xe00I\
+\xc5\xdezqX7\x8e\xd1\xa1\x86\x22\xb1e]*\xde\
+\xa7v\xa0\xc6\x0c\xb8\xd4 \xe6\xd6qq>\x06\xe4\xee\
+,8\x98&Ih\xa2\x84^\xda\x86#\x0b\xa3\xd5\xdc\
+\xac\xbb\x0b\xa6!\x89+\x95 z\xb7\x152\xfe\x88\x87\
+\xbf\xdfP\x04\xfc\xf9\x5c4\x92H\x88 :\xaa\xc4J\
+\xd8-6\x8f\x22\x96\x88\xfav\xca\x8c\xeea(\xda%\
+\xb2n\x13 \x11C\xd0\xdb\xfc\x11\xf0\xa1\xa6\x9e\xc0\x04\
+\xf6(~\x10\xb5\xe7\x04\x10h\xabI-\xfa9\x11\x99\
+\xa2\xcf~M[ii\xb0\x10\xb0#\xd0\xca8\xb8}\
+\xc4\xfa\x8c\xfdB\xa9&\x0e\xb2\xf6w\x18#.V\x0b\
+\xf3\x11;\x1eG\x19\x07\x90\xe7\xfa\x97\x119\xe1\x8a\xfd\
+\xa6\x84\x8f\x9f/\xf6+]\x1f$\xc6\xeb\x8e3L\x06\
+\x1cl\xba\x06\xf1\xbd\x8c\x03\x0e~\xad50Y\x17\x00\
+\x02\x03\xf8\x07d\xfea& \xcaGi+\xa5C0\
+\xd5\xc8\xe0s>8\xe48\xc4\xf8y\x042j\x87\x9c\
+\x12s\x9e'\xae\x87\xc0\x02\xdf\xcf<!\xd3\x8f]\x8c\
+?\x88\xdd\xc0x\xf1\xb9\x04\x988\xf2{\xde\x8f\x9f\xc9\
+\xb80\x1e\xfc\x1e\x07\x9f\xe7\x85\x00\x01\xe7_w\xbd\xe2\
+\xfc4\x9e\xe3\xd3\xd5\x1a/V8\xfc<\xc8\x1c\x99\xf8\
+\xa8\xf0\xa2\x9e\xcf\x82K\x04\x09G\x09G\x9d\x8c\xff|\
+\x89\xaa4\x83\xaa>\x8e]U\xd3\x8e\xe1\xef%\x038\
+\xbc|\x1e\x8e\x18\x8e\xa0\x1cC#\x96Gj\xf9Jr\
+ p<p\x9c\xab\xf3t\xf5|\x0cm\x8ePr\xb2\
+\xd8_r\xf88_&l5Ai\xdf\xe2\x8e\x14\x03\
+^3\x05\xb8\xa18\xbc\x5c\x0f\x8e~\xfd\xbd8\xd8d\
+x)5\xe0\x01\x87\xfa\xbf\x90\x0c\x1f>\x8fc]b\
+\xc1Qm\xb6\xfc\xf78\xc8u \x85\xf1\x80\xb2\xcf\xfb\
+\xf8\x1c\xee\x8f\x22\xad\xe1|\xd2k\xde\xcf}XW\x91\
+\xcbet\xfe\xdco\xee?\xc7\x5c\xb3\x9f\x8e\xbc\xe6\xf7\
+Lx\x02\x04\xfc\x9e\xf9@\x00\xa5>\x92\xf9G=v\
+\x0d\x8d\x1f\x81\x82,Z\x92>\x1f\xc7\x13\x83\x92\x0d\x04\
+m\x00\xda&B5\xc4\x90\x92H\x93g\x18\xfe\xa0H\
+*\x0b`\xdd\xf5\x81q\xe0\xb9\xa9\xda\xcb9\xc5\x87\x05\
+\x08G\x9a\xf9\xc8\xdfi^y?\xdaZ\xa4Q\x99\x1e\
+\x17\x09C\xd5\x9e\xf6i\x12q\xf1\x0c\xb0(\xc4\x1e(\
+a\xa1\xa5\xef2\xf3\x82\xe7F\xcf\x83wE`c\xa8\
+j\xd8\xa2\xe37{!\xaa\xa4\x8d\x90vh\xee\xf8S\
+\xaa#*\xaa\x07\xa2\xc8<\xe0\x982\xcf\x090\xb1 \
+\x13hQ\xdb9Ds\xdc\xc0\xe5\xfc\x89\x04\xb3`W\
+%9\xd44\xe28\xd1\x1e\xd23\xa5\xcc\x1f\xc6\x81H\
+?5\x92\xdap\xa0p{\xdb'\xd6A\xc4!\xa1\xf8\
+q\xff\xa4\x9d\xe0m\xc5\x10UT\xbfv\x18,\xed\xc1\
+\x86\x1c\xd0\xa1\x8d\x9a)\x00\x98\x06\xc0\xd8\xf7\x94q`\
+\x1d\x14S(\xf6\xa1\xbf.\xbc\x7f\xd5v\x95v\xd5\xd8\
+\x8f\xfd\xd5\xd8\x8f\xfd\x87\x86\xe8(-\x15\x1d\xa5\x9f6\
+7\x9a\x01\xc5\xfd\xf1\x8c\xbf\xad\xb7+\x17\x19Z\x22\xe2\
+\xa2\x5c\xf6+\x1br\x9b1s\x87L$\x8c\xe7\x15u\
+{\x7f~\xb9\xdf\xea\x9eB\xc6\xd83@d\xe6\xa2\x80\
+\x84\x02H]\xa6\xfa\xb7\x1f4\xe4\x80Z\xa4\xe6\xffV\
+\x19\xfb{\xf3<\xf0\x08\xbf\x0258N0S\xbc6\
+S\xea\xd5\xb4M\xa3t \x16\xc0\x98!\xb4R\xc0\xca\
+\xc5zi\xf7wGu\xcf\xd8\xa1`\xec`\xc0\xd8v\
+\xfc\xf7\xdc]\xa3\xff\xa8!\xafK\xb1\xfd\x9ae6\xdf\
+\x1d\xb0Q\xe1\xa8\xcbp\xebw6dG\xb6\xbd\xdf\x90\
+\xe7a\xbb\xa1!\x8b\x04\x0d\xd7\xa5\x8cOl\x8f\xf6z\
+f|\xb4\xef\x0d\xd8\x22gdc&\xe8\x82\x22Pe\
+%(Wd\xea|\xbf\x8e\xa1(-8J\xdd4\xd6\
+\x1b\xd6\x1f\xd6/\x02\x83\x88I~F\x1a\x06\x12\xef\xf2\
+\xee\x03O\x1b\x0af\x01\x22_\xab%\x07\x15\x8d\x07\xa7\
+B\xd3\xc6\x12\xc7\xf6(C\x0e\x0c!\xb6\x86\xe3\xe5\xed\
+\xef\xe60\x14\xedOE\x85\xc4\x11\xa0\x1f;\x99L2\
+\xec\xec\xcf\xfd\xff\x19\xc2\xf1\x05C\xeejB\xc6\x14\xc6\
+\x0e\x01&\xba\xd9\x0cW\x192\xa3\xc6\xdb[J\x1cp\
+\x98\x18\xa6\x0d\xd3\x0a\xed\x0f\x95H\x8c\x1d\x161\xd6\xad\
+`\x08\xef\x1f\xef\xa7\xf4S23e\xb4\xe2h\x85\xd1\
+\x0aY\xcc\x12Gc\xf4\xa1\x80m\x14h\x0b\x8e`\xfb\
+1C8nk\xc8\x0c\xad\xa2;Q\xb4[^\xdf\xd6\
+\x10\x1e\x9f\xcd\x0cy\x9di\xfee(\x1cOQ\xd5\x9d\
+\xe9\xc2sA@\x8cuW\xfb\xb1\x8bB\xa29$\x11\
+\xc7aqC\xa1\x9eN\xe0\xc0\xf2U\xf7(\xe3\x7fa\
+\x11\xd0\xba$\xe0\xe2\x82jM\x9b;(\xf72\xec\xbd\
++\xc8\x06\x86\xdc%\xc0\xc5 \x09\x94k\x9f\x89\xed>\
+W\xcc\x8eR\xff}C\xae\xf9\xee?n\xc8\xa2_^\
+\xf3Mi\x8f\x02\xc8\xfc\xf3\xeb\x83\xc9\xa2\xfb\xda\xfe;\
+\xe0\x85XZ\x16\xed\x83\xfe\x0cC8\xeea\xc8\x1a \
+<\xa7\x88\xfa\xb9\x08\x1e\x8c+\x18m\xec#Z'x\
+\xde\x83\xdb\x9aJ%vV\xe6\x17\x11P\x02\x9b\x04l\
+\xd1\x22\xa2-#\x8c\x03\xb5U$\xf0\xca|\xf3\xf5\xda\
+2\xcb\x87\xa9\xcb\x8b1\x9e\xf6\x0f\xd8O\x01\xbaU\x94\
+\xf1\xbd\xa3X\x97an}\xd0P0\x0f\xa1\x22\xab\xf6\
+\xdc\xfb\xdd\xe3\xf0\x04\xab\xbe\x99;\xd9\xb3\xc3\xa1\x85\x9d\
+\xce~\x8cH*\x01v\xec/\x05\x0e\xdb\x8b\xac\x81j\
+\x18\xd7\x8d\xfa\x8d\xfb\x8d\xd4\xdd\xe6\xd39cN\x9bC\
+_\xe7q\x90\xc8\x98\x12(W\xc0\xc7\x03*$P\xa8\
+\xa1\x17\xf3\xc0\xedI\x05f\xdc\xa1F\xeb\x081<1\
+\x94\xdc\xfe%\xb1\x81\xddG\xbb<\xd97\xbe\xdfK\xdc\
+\x91\xc0\x02v\xc2p\xb4!\x1c\xe7\x19\xe6\x1e\xe6.\xba\
+< \x0aw\xb8\xb4\x10\x98\x8f\xd8i\xd8C<w8\
+\x8a\xb4\xed\x84\xf1C`\x81y\x03\xe3J\xe3\xe4\xe2\xe4\
+h*\xc0\xf4\xc4\xb1\xc6\xf1V\x00\xd9)\xfb\x04\x06x\
+_M\xf5\xaf\x1dZ\xecd\xec;\xfe\x910\x82\x01\x86\
+\xddV\xd9\xc5\x94\xf6x\xe0\xa4\xce\x80\xf3\xba\xd6\x08\xe0\
+\xfb\x19'^\x13(\xe0\xf3\x1f\x1e\x1e\x19\x92\x96\xd4\xfd\
+1a\x85=\xcey\xf0\x8f\x8c>\x7f_\xb7\x11d<\
+\xf8\x1e\x02%8\xec\xdc'\xfcL\xfcF\x98z\x12\xf7\
+\xf4\xf3\xc7\x9f$\xc0\xc5\xb83\xde\xd5q\xdco8\x8e\
+5\x0f\x1c_\x88\x03\xc4\x02?w\x93\x1eT\x1c\xbb\x9a\
+\xb2Of\x10\x07\x87H\xbfQ5\xe7-\x1c\x15nd\
+\x1d\x01b\xa3\xe2_\x9d\x09\xe6\x1f\xefc\x22P[\x03\
+U\xff\xdd\xaa\xe9\xe7\xfckG\x18\x87&g\xc2\x93#\
+L\xa4\x9b\xcc+\x11^\x1c\xf8\xff\xd5oq\x9aGj\
+\xd2\xfb`\x140\xa1\xb9\xc18\x18\xfc\x9c\xeb\x9cW\x8e\
+ \xe7E\x00F\x8e\xb6S\xc9\xa1\x02\xd5\x81\x1a\xde\x07\
+\xf5\x9d\x8d\x83\x05\xab\x12m\xf4\x12\x02\x1c\x17\x1c`\x1c\
+\xd2\xda\xf1f\xdcV\xac4\x03\x10\x05$0\xb1\x92~\
+O\xe0\x88\xda\xf9\xe5U\xe3\xbez\xd5\x8e\x8fvyP\
+\xa09\x7f\x0c\x0d\xce\xbf\x9e_\x99\x91\x90\x98\x1dsL\
+r$\xa3\xcf\xdfs\xbfabdm\x8b\xf4y\xdc\x9f\
+\xbat\xa4n\xb7\xc7\x91\xfb\xc7\xbc\xe0\xef\xca\xb6\x9a\xab\
+\xcdX3\xe4\x0b\x0d\xea\xbal0\xfbF\xe4\x9a9\x16\
+\x5c\xee\x1f\x11q\x02B\xa8\xa9\x8b\x8a\x88\xe1\xe3]\x06\
+\xd8\xf0\xc8\xe0\xa0.kbJ\xdf+D\xef\xb8\x0fD\
+<\xb9>\xfa\xe1\x92\xb9\xa2\x9d\x0e\xd4Z\xdaN\xc1`\
+\x90A\xe5ba\x88\xba\xd0\x96O\x1b\x89G\xec\xa9i\
+\xc7\xd0b\xc1\x84\xc2\xcb<QI\x85?W\xb3V\xed\
+%\xa1r\xca\xd1\xf3u\x0b\xb5\x5cD\x07QO\xa7O\
+.\xf7\x95\xc8,\x1b\x05\x0b8\xf7\x95\xef\x115\xce3\
+\x9bP\x16\x99Wh0\xe0P\xc9\xe1\xc7\xb0Bm\xbd\
+\xdd\xc4P\xa8\xd0+\xd3\xe4j\xfe\xd4\x96\xa3\xb9@\xa6\
+\xda\xda8\x85\xf5\xa6\xdd\xcb\x90\xc7\xbf]0e2\xe9\
+\xf2\xe1%.\x1bKc\xe1\xf9T+M\xa9F\xfb\x7f\
+\x86p<\xa0\xdd\xbf= S\xaf\x11\xc3\x83\xd9A?\
+\xf5\xe6o\x86p\x5c\xd7PP\x0f\xa5\x19\x80\xa1dZ\
+\xe0\xd1\xd1\xa7\x9f\xb1jE#u\xf6\xddE\xa0H\x01\
+\x05\xefK\xcc|\xa3m\x0e\x8c\x0fj6\x95Y\x81a\
+4\xba\xcf\x90K\x13\x5c4O\xf7\x81ZW\xaf\xa5\x95\
+8\x14\xd7\xd5.c(\xee;\xcf\xab2(\x1eh9\
+\xd5P\xccK{\xd7\xd69\xc3\xe4\xcf\xeb\xd6\xb1ct\
+R\xef\x7f\xb9\xa8\x05Vf\xa2\x7f\xd9\x10\xfe\xee\xd6\x80\
+[\x0aG~vC8\x1e\x13`\x14\xf3)\xa3\x99F\
+3\xe5Zx\xd7\x88\x80!B\x00c\xbf\xf4\xbd\xdeM\
+\x00&\x8e\x9e\xdfaA\xa9\xd3o\x924\x14\xc8\x14u\
+\xdf4\xc4\xe72\xb6kj?e\x08\xef\xfb\xa0!;\
+\xc6\xc3\xfd\x86\xf0\xf3\xeb\x0d\x99\x19C\xd7\x0b\x0f\xe0!\
+\x1ew\x87!\x9c\xff\xba\xa3uF\xeb\x14\x0c\x1a\xa8\xf6\
+\xa28\xf3|\xf6'\x1arm|\xff\x16C\xd8\xee\xb7\
+6d\xaa~\xd4J\xf8Mv\x08\xdb\xad\x0c\xd1\x10\x0e\
+\xc8\xa2\x8b\x9e!%\xb3\xa6\xfd\x1a\x91F\x02\xf3\xde\xcd\
+\xe1+\x86\xac\x0aM\xa6\xb4\xfd\x82!\x9c\xc7)\x860\
+^w\x18b\x9b\xba\x80\xa2\xb4N\x0e\x14\xed\x11\xb17\
+\xbc[\x83D\x9dL\xd1\xc14\x1d\xa8\x89\xc6\x10\xb4\x82\
+\x02+)\xf0\xc0\x82J^`\x16\x98\xf4\x9f\x89\xff\xd1\
+\x06n\xfc\xde\xf1\xfb\xc6\xef+J\x15\xf4\xbc\xc4\xd2\x87\
+\xc3\xd4Vp\x07\x89\xd9\xdd \xb1\xb4\xe3\xe3\xfb\xbf\x10\
+)\xc18\xd8\xcb\xab\x14\xe5\xcb)\xf3\xd9\xfd\xa8\xbb\xb2\
+\x0b\x0eK\xb7\xa9!;0\xed\xb1\x86\x82a\x05\xd3\x8c\
+\x92\x0b\xba\x9f\x10H\xc6\xe1V\x00\xdcK\x0dp\x8c\xd0\
+\x88Q\x9f\xf2~A\xeb\x17\x10\x8e\x07\x07\x1c\x94K\x09\
+\x86)\x013\x15\x813\x1cK\xa9\xb5Gu\xf9.;\
+8V\x88\x11K1\xe8k\xbfE@p\xe0\xfa\xd5\x03\
+\xcc\xe1]\xd6\xa0@\xc6\xa7r\x97\x87\xfe5CA\xd9\
+\xa6V\x1c\x8d\x09u9\xe8\x0f1\x14\x01,\x0cm\xec\
+.\x9e\x03\xb4t\xd8g)U\x22\xf0\xa4\xf5\x9c\xf5\xb0\
+\xffg\xea\xca\x10\xf6\x8a\x98\x88s\xb5{J^\xd5v\
+\xd1\xbb\xe3\xa8\xe4\xd1\xb59h\xd3{|*e\xf3}\
+R\xe3\x00#\x06-\x16\xef\xce\x22\x87\xdak\xc1\x11\xd7\
+SI\x15b\x92\xae\x09!G\xdf\xed\x0eQ\xe0]\xac\
+U\x9a3\x1ehPI\x0c\xa5\x12.\x9e\x0c\x83\xcb\xc2\
+$\x1fR@\xfb\xceTje\xd7\x11\xf9>\xfb\x17b\
+e\x88\xeb\xe28\xb1\xaf/\x13\xac\xcde\xa2\x18\xee\x9a\
+V\xdaEf\x9a\xf5\xbc\xffT\xffik+\xe8\x8e\xb6\
+\xecU\xdf\x97\xd0D\xd0\xb8\xbb\x06\x18\x01r\xc4w\xb1\
+\xbbH\xc4\xac\xaf\x80\xa7\xf6=Op@\xe9\xe6\xfe\x93\
+\x18Cl\x8f\x8cp]\xfb\x8e_\x82\xa6\x02\x22z\xea\
+z\xe1\x0e\x22\xf6\x04\xed_/4( \xb3\x7f\xa1n\
+\xbf\xba!\xdb\x17\xae^\x8fF\x00\xcc\x00\xf9[^\xd2\
+\xa0\x8c\xbf;\xd4\xd8\xa3\x04h\xc9\xa4\xd3\xde\x0f\xe6\x00\
+m~\xd9\x8f8_\x1c\x7fJ\x22a\x0eP\xa2A\xa9\
+\x00\x99y\x1c\xde\xcaQ\xf7\xef\xe5~\xd4L\xebZc\
+\x81\x80\x12\x09\x18\xbe\xa7v\xe4+\xea\xbfg\xf29\x8f\
+\xba\xb4\x96\xef\xcdZ\x0e\x7f\x8a\xf6!\xea\xfe\x040\xf0\
+G9\xc2X@\xcb\x00-\x1a\xcec\xb2\x00\x08\xe7\xc7\
+y\x90`VI\x95\xfb#\x04\x1c\xb0S\xf1\xe7\xf1G\
+\xeb\xd2\x0a\x98jJT\x8fGC\xe4\xd6\xc2Q\xe0\x0f\
+xpJ\xca\xf3\xdb\x8a\xdf\xe3\xf0\xe0\x88\xcd\x1c]\xa7\
+\xbc0\xe2\xb0\xebHF\xc7k\xb6\x89D0\xc0\x1c\xab\
+\x01\xf4\x8c\xba({30\x00p\xdc8\xdfY\xd3\xf9\
+\x0c\x0f\xa6\x9a\x94f=\xd5\xec\xf3\xfe\xda\xa1%\x82\x85\
+#\xc9\xe7p\x9d,\xf0,\xacL<\xae\x8f\xefg\x1c\
+\xe6H\x91\xdb\xe0\xac&\x87\xba\xd6:\xc0\x81\xc6\x91\xa8\
+\xfb\xdd\xcfR\x94R\xccR\xa8\xca\x92\x89\x87q\x013\
+\xa0\xee\x9a0\xcf$\x19p\xae\x1f\x878\xbf\x7f\xfa\x9a\
+k~\xceu\xe1\x181>\xfc\x1cC\x1d\xc7\x1f&\x05\
+\x8e=\x11O\x18\x01u-7\xe3\xc2\xfba\xa2p$\
+\xc0T1O<\xd3F\xdfr\x1cV\xce\x9b\xf1\x9a\xc3\
+\x903x>\x9e\x04\x9aXh\xf8;\xae\xbf\xd7\xfc\x9d\
+E\xe7\xc9x1\xdf\x09\x00\xf1@\xb10\xf0\xb9\x04\x8c\
+\xa8\xbdc#g\xc1\x15\xc5\xdc\x0dz9\xb8^\xbbE\
+[6\x9e\x0fm\xa4\x1e\xf8\xa1\xbf5\xfdr\xd9\x18\xa8\
+U\x86\xf2\x87\x98 \x99\xee\xf7Dd\xe6\x0e\x19\x156\
+X\x02\x0d\xa8\xdf\x12\x00 r\xaf\x05\xc6k\xdd\x15\xa8\
+\x88\xed\xc2>Z\xfc\x1d\x81!\x027l\x18d\xe6q\
+\xac\x09\xcc\xa1\xe2/\xea\xbao\x9c\x8c\x0f\x01C2\x1f\
+\x0f\xa6\x8d\x06\x11\xc1\xe1\xeb\x89\xba\xe9\x94\x7f\xe6\x0b\xf3\
+L\x9f\xef\xd40\x16J\x16rEHQ\xbd\xf56\xa6\
+\xcc\x0f\xadC\xde\xaf]\xa2P\xce\x84`\xa3\xa6\x96]\
+\xea\xd1\xde\xa6G\xb5\x9f\xc3n\x860=6j7\xb6\
+\xccn{k{K{kA\x81\x16\xc5\x19\xe6D\xf3\
+]C\xce\x946'\x1b\xb2\xa1\xe5\x0e\x1f5\x93\xb4m\
+b<f5L\xd7%\x22\xcdO\x021\x18\xd4\x88m\
+Y\x1f\xf9\x99\x8b\x8d\x0aGd\x03C\xf1}\x0aD\xa0\
+.\xed\x06\xb9\x1c?\xcf0Yf|%Q8\x8d\xda\
+\xb8n\xc0z\xc5}g\xde\xa3\xfa\x8bA\xaa\x0c\x87o\
+\x80\x1f\x1b;\xd4\x18+\xd6\x1c\xac?7w\x1bh\xe7\
+1\x14\x9a\x04v\xdf,\x00\xf6H\xc0\xd4<?b\xbb\
+\xbdYE\xc1\xdf\x22\xf6\xeb>&\xf6\xeb^$r\x9f\
+\xbc;\x82\x07\xc0\x98\xf7\x18jP7\xe7\x0e\x98\xab(\
+\xad\xc1\xb1Y \xaa\x85$&\xc3\xf6\xb9\x1dn\x5c\xfd\
+\xd7Uf\xe6\xba\x9c\xb9\xa5\x1f7\xaa\xf7\xa3\xd5\x0d\xe1\
+\xb8}\xc0\x0e\xf1\xe7\xd7\x8e\xae\xcd\xeb\x16\xed\xe7\xfc9\
+G\xa4\xec\xf80\x0b\x8e\x8f\x86\xcb\xa3\x16\xf0\x86j\xed\
+\xdd\x10\xb4\xce\x0c[\x1b\x0a1\xae\x8f'\xc3\xb5\xbf\xc8\
+P\x18\x9e\x12\xe9\x82\x993\xac\x1d`\x81\xab#\x0da\
+\xbc\xbfd(\x1c\xe47\x8b\x09\x01u\xd2\x1c.S\x0f\
+\xbf\xdc\x90_\xb3\x7f4\x7f0\x14\x94_\x89PB\x09\
+\x87\x22\xdfon\xc8\x94\xee\xd1\xd9\x86B\xad\x5c\x19i\
+k\xb2\x17\xdb\xec\xc9 wC\x8f\xfd\x84uZ\xfb<\
+\x99\xf0\xf6\x1cCQ\x9bo\x14\xf2\xbbr\xcd\xbd;N\
+\xf4)\xff\x9b!\x07\xb2\xfa\xbd\x0dE\x86\x13m\x081\
+\x18\xda\x07\x0c9\x03\xef\xa2\x9e\x18\xb2\x0a\xd08\xc3E\
+5\xea\x13\xfb\x18\xf2\xfaJ\x7f\xf6\xd1\x1a\xa35G\xe1\
+u\x7f\xaa!\x97\x80\xb5w\xa66\x93\x13\xe7\x19\xd4\xd5\
+ 8\xec\xfdR\x01a\xfd\xeb\x1e\x0b0G\xfb\xbb\x86\
+\xe80O\x98\xc3<~\xa1!\xfc\xfe\x01C\x0c\xe0\xc7\
+\xfd{b\x9b\x89m'\xac}\xdf\x1f\x0d\xe1\xf7\xef7\
+\x84\xd7\xef3\xe4R\x90\xe1Wj\xf7F\xb7\x14\x98d\
+\xd22\xf1\x92\x98K-\x87\x1f\xfe\xee\xea\x94\xe9\xa6\x8d\
+nl\xc7\x17\x1c\x9c\xee\xcc\x803\x92\xc3\xd2\xaf\x9e\xc4\
+=c\x00\x90\xee$hKX\xc1\xc8\xa6\x99\xc9\xe4\x89\
+\xa4_\xab\xe6\xdbJ\xe8\xc2\xf3>q\xbfAm\xd6\xec\
+\xef\xcfH\xed\x1b\xe9\x0b\x1e\x03B\x9f\xce\xe7\xe1\x01U\
+\xee\x07\xcf\x0d\xa5-Z\xd7(\x01\xf1\x9f\xb3^\x911\
+^\xd1\x10\x8e_5\x14\x8e\x11\x0e\xe1{\x0d\xe1\xf8\xb2\
+!\x5c\xe7)\x86\xe2\xf3\xc8\xbc\xe2\xa0\xfeR\xdaAZ\
+\x0f\xdd1`\xbf\xd6\xb1\xbd\xc4Pd\xa8U\x1aA\xe9\
+\x93\x97`\xee\x1a\x91\xa8\xfe\xef\xcf\xfb\xa3;\xe2\xac\xbb\
+tUQ\xc0\xc2K\x0e\xac\xfb\xd1\xcd\xb9}\x1dZ\x02\
+.\x0e\x89\xe3\x87\x16\x87\x89\xbd\xbe\x5c\x94\xfa(A\xe4\
+\x8c9\xba'\xa05\xb0\x5cX\x97\x96\xcbb\xb4\x94,\
+\xc5\x82\x8f\xb9\x0b\xed\x00\x1c\xeb+\xc7~\x143\xeb\xa3\
+\xb0\xab\x8d\x8a\x12J\xc4\x94a\xf6\xa2\xe9\x01S\xcb\xb4\
+\x07\xae-\x18\xa00\x1b\xefP\xd7\x99mR\xa9\x8e\x07\
+l\xa8\xc5W{C\xda\xdf\xba\xfa>\xf7\x05\xaa<%\
+\x04\xdcw\x18\x0e\xf8\x11d\xd4\xa1\xfa\xeb\xf9\xf1\x00K\
+\xad\xe9D\x17\x13\x05\xca\xdc1E\xf4Tv\x833*\
+\xd63\x14\xfe\x0av\x13\xfb\x18\x09'JHq\xcc\xf1\
+\xbbpHa2\xe0\xd8\x8b91\x83\xe3\x8f\xbd\x83=\
+\xab}\xd2\xedE\x0280\x02\x09\xf0\x13P!P\x88\
+\xfdE\x8d\xbe\xee\xb7\x97\x82\xd6vh-\xe6G\xa0\x82\
+\x00\x8d\xba\x1a\xb9\xc6B\xdd\xd5\xacj\xbf\xe7\x19t\xec\
+=\x02\x18\x1cy\xbf\x1csg\xa8\xdd\x16F\xef\xb6h\
+G\xfe3\xda\x918\xeeu\xa9\x02\xf6\x14\x19\xff\xaa\x06\
+\x7f\x86\x80\x01G\xc4\xd4\xd97p\xec\x19\x0f\x12\xcfu\
+\x8d?v.\xdf\x8f\xbf\x0bi\xf2\x15C\x9eg\xadS\
+;\x9e\x1c\x92\xfa\xbfM\xdf\x97\x8bL;m\x00\xcdM\
+\x9a\xf3\x0d(\xd68\xb2\xf3F=\xd2\x19\xa9\xd9L0\
+\x22\xbf\xa8$\xd6T\x0b.\x90\x1b\xc6\x83\xc0\xc4\xad3\
+\xa7P\x1c\xf8\xfb\xac\x02\x99\x06\x86\xbf\xffg5\xd08\
+V\x88\xd11 \xb5\xda\x22\x0e\x0b\x0e \x0e,\x19r\
+2\xca\x95C\xdd\x10\xa0\xe0}\x04\x0e*\x87\xd63s\
+d\x9a\x998\x9c7\x0f$\x13\x88qc\xe2<[\x05\
+L\x9e\xd5\xf8\xf1\xf7PG\x18\x97\x9a\xb9P\x07j\xea\
+@F\xcd\xb8\xa8)\xfa\x18V\x04&Xp\xa8A\xc3\
+\x11\x5cM5[8\xa48x01\xaa\xbfC\x15z\
+lyEb\xab\x12\x13\xff\x9cZ%~ae^\xcb\
+\xf98\xef\x1b\x04~\x08dd\xc6F\xba\xef\x8c\x17\x0b\
+\xf1\x1cU\xad?\xf7\x8f\xef% \x81\x83\xc5\x03H&\
+\x91\x07\x94\x8c8\x14f\xb5\xa5\xf3\x8d\x8e\x05\x9by\xc9\
+\xe7\xe9>\xa3\xda\xed\x22Y\xb4]D5\x9f\x0c;%\
+\x18Y\x842\x05\x96\x98\x7f\xf4\xc9F\xac\x84\xc8\xab\x0c\
+!7<\xa0rc\xe0\xa0\x9e\xce\x86\xc1\x86F\xe0\x84\
+\xf3\xe5y\xa1\x9b\x81(\xb6~\x1f\x18\xe7Z\xdc\x91Z\
+D\xc4\xa7\x94\xb9\xc3\x80sC\x0d\xaa\x1e\xfd\xa0\xc9\xbc\
+\xaa\x14\x00\x83\xc6)\xa3<O\xdc/\x028l\x14\xd4\
+\xeeQSG\xc0\x01\xa6\x04\xf3J\x91t\x17y\xe3~\
+\xaaVu\xec\xeb\x11c\xc3\xa1\x86\x5c\xe3\x8f\xf6C\xbf\
+\xae\xa1\xa8\xa1[$\xceT\xd7\xecpGM\xa2\x80>\
+O\xe9\xaf+\x0d\x06\xc4\xc3|\xe3#\x92\x7f\xb1\xfa\x9d\
+c @iW\xdb\xd3f\xb5(\xe7\xea\xea\xe8\xed\x9f\
+\x0d\x91\x11q\xb01\x22\x9a+\xa4\x01\xc1\xfc\xe7z\xe4\
+\x88\xf7\x0f\x19\x8a\xb6XS\x125\xb9\xff\xa9!\xdc\xce\
+\x97\xbb\x97\xba\x97\xa2\x01\xb9\xa9\x19\x90\xdd\xa3\x86\xf0\xfb\
+G\x0c\xe1\xb8t\xc02\x91\xd2{\xa99\x04\xa6\xe5\x1d\
+\x03\x06\x0f\x87\xdf\x9b\xba\xf6\x9b\xfb\xf9\xfb\xb0~t\xbf\
+\xe8~\xd9\x05\x87\xa7k\xbbQ\x17\xe6\xd3\xc4\xdf'\xfe\
+1\x11\xd6\xf7i\xd7\x19\xc2\xcf\x0f0\x14\x81\x05\x19\x9c\
+\xd1\xf0\xfarV\x93.De\x93\xa6\x8dJ\x03\xbc=\
+\xe2\xcf\x83c\xf5s\x19\x9ckf\xed\x89\xe1\x1d\x86\xec\
+\xe0\xf7'\x182\xf5=\xb6\xc5\xba^\x14\xcb\x8f\x17\x91\
+w\x1c\x16\xeb\x7f\xbd\xba\x02i\xdfS\xa6#\x18\x08\x13\
+7\x06\xd88-\x13\xb0\xb4jK\xbfP\x18Vrt\
+1\xf4\xdcQZ\xa9[\xb1[1\xd7\xf2\xc7\x84\xa7\x89\
+u\xfd\xde\x10\x8e\x17\xf4\xe7\xf7\x17\xe4>\xedN\xf5D\
+K\x83\xe7\x8b\xd2\x12\xa8\x9e\x0b[uu\xf8\xfb\xdd\x0c\
+\xe1s\xaf0\x84\xe3\x9d\x86\xf0\xf3\xf9\x02\xe6\xcd\x0eg\
+\xf8\x96\xf8=\xfdQ\x01F=\x9d\x96(\xec\xc1\x8c\xdf\
+\xd22\xac\x1ex\xa4\x0d\xda@u\xc6\xd0\x0cM\x0eH\
+\xfax\xea\xfc\xbb\x8b\x0c\x85\xf8#%\x02[\x19\x8a6\
+\x8e\x0a\x14\x8f\xb61\x84\xe3\xbd\x86pyK\x1a\xc6\xc6\
+\xa6\x1cc\x08\xcb\xfa\xc3\x86\xb0\xfc\xedi\x08\xc7\xf3\x0d\
+a{\xdd\xc5\x10\xde\xf7\x92!\xcc\xff\xe3\x0c\xe1\xf3\xe7\
+7\x84\xf38\xddP\x04\xb2\xbef\xc8\x06|\xffIC\
+8\xfe\xc4\x90\x19D\x8c_\xff+C!\xda\xf7\x94a\
+\xc6\x8c\xd9\xe8\xc7\x86p\xfc\x8f!\x1c\x8f0d\x07\x0d\
+\x83>\xaa\xd4\x07\x07dt\x87!\x06\x14b\x89\xc7\xf8\
+\xcd\x86p\xdc\xc0\x10\xaf\x7f\xa9\xf1\xa5\xc2\xf1\xa8\xf1\xa3\
+\xc7\xc3}i\x9f2\x88y\xf2JbX\xc5u\x1c&\
+\x98\xd4\xdb)\x0d\x9a\xb2\xa1!\x1c\x173\x84\xf1[\xd3\
+\x10\xc6\xeb\xeb\x86p\xdc\xdd\x10~\x7f\xa4!\x1c\xcf2\
+\x84\xf3\xba\x7f\xf4\xc0\xe8\x81\xa89\x10\x1d\xc2\xf0T\xee\
+\xdf\xed\x1f\x9e\xd3\x8fM;dZ\x18\xafiS\xa6\x8d\
+O\x0b\xf3n\xe2\xf2\x89\xcb&\xac\xfd\xdf=\x06u%\
+\x08\xfbP\xf7vCQ\xc3~\xd3Xl\xaf;z\xc6\
+\x10\x8es\x06\xcc!\x91\xd5\xcf\xe5\xae\x18n\x88\xdbj\
+g\x14\xf9/\x19r\x80{\x987`>\xadO\xe3Y\
+T0j2\x1c\xadn\x02\xb3\x16\xf3\x14C\xf9\x94\x88\
+\xccl\x83)\x22\xbb\xa6\x9d\xdb\x10\x99U\x01\xd9\xc1\x1e\
+;6\xc2K\xfe\xbck\x13\xcc\x1bJ\xbc\xd0&@\xc4\
+\xf3\xaf\x86\xf0yK\xb5K\xb6K\xc6\xef\x89\x89\x0c\x98\
+5\xedY\x86\xf0\xfa\x0eC\xb1o\x8b\x19\xd0\xbf\x12\x10\
+\xf6\x85\x89\x13\x03N\x0a\xe3\xb9E@x\x0e\xbbu\x0c\
+Q\xac2 \x1c/0\x84\xe3\xbb\x0c\x99\xb9\xd1\xff\xd5\
+\xa0\x80\xe6\xdcY#\xc1\xdb\x94Zi\xcd\x8f\x8b.1\
+\xda\xaf\x9b\x93\x9bS,\x00\xdd\xeed\x08\xc7\xdf\x1b\xc2\
+qGCx\xff\x96i=\xe8\xa7\x19\x22\xb3\xe1\x9f&\
+\x868\xbc\xd9P$&60\xc4}8\xed7\xd2\x98\
+\x22\x00\x1fE\xe3^\xd4>\xf1\xff\x0a\xfb\xef\x09\xf9\x0f\
+Z\xff\x87\x9f\x0e7Z\x1b\xe6\xe1\xbc\xe1\x9b\xc3y\x85\
+(\xeb<a\x1e\xccS0\x1e\x8c\xd9sO\xc1\x8c\x15\
+\x93\xcdK6\x8f\x17s\x81\xd2\x0e\xec_\xec@\xfc\x0b\
+D\xab\xd5\xa5\xa49\xdd\x10\xe7Sb\xc8\xa9\x94\xae\x99\
+f(J7\xb0_\xb03`\x04\xe0\x88c\xa7\x10\xe0\
+E\xfc\x17\xff\x01{\x8cR\x032\xf9\x94\x96}6\x22\
+'\x12N3\x14\x01\x19i\xcf\xb8(+\xed\xbc\xb1\x7f\
+P\xf5\xc71\xc51F\x95\x1eG\x9c\xc0\x80Dz\xbd\
+\x14\x00\xa6\x0c\x01\x00\xb4\x8c(A\xc3\xaeD\xb4\x19\xfb\
+\x0a\xfbR%\x8d\xfesj\xfb\xd1\x0e\xc1\xdf!q\x83\
+c[\x1f\xf1\x0b\xf1+k1q\x02\xd5\x0a4P\x12\
+Xw\x09\xa8\xdb\xf9y\xe0\x81\x00\x02~\x99y\xc9\xaf\
+\x14\xf3\x05\xbf\xa8\xa6\xe8\xa3\xf9\xc2u\xd4~\x02\xe7]\
+\x8b\xfb\xe1\xaf\xe1\xdf\xc1l\xe0|Y\xbf8o\xec\x11\
+\xce\xb7\xf6\x8bk\xa6\xba\xfc\xc0q\x17mC\xcc\xc9*\
+_\xde'\x87k\x99\x82bL\x06\x1e\x03\x18\xc7\xad\xce\
+\x90\xe3\x80p#pl\xaa6\x14\xee\xe8c\xf0\xf2\xf3\
+\xda\x11\xa5m\x85\x1c`w\x10y@\xa0\x02s\xa3q\
+\xf02\xe5{z\x87\x1c\x87N\xe7\xef\x94u2\x96\x1b\
+H\xb4n\x95\xe9\xdb\xf8y\xe6\x14\xc7\x96\xcf\xc7\x81\xc7\
+\xe0\xc2\xd1\xc0\xc1\xc6a\x22\x80A$F\x8e\x02}\xeb\
+\x9b\x95\x9a\x95c--7\x8c\x7f\x8c\x87j\xe1\x07\xda\
+\xd3\xac\xa8\xc0\xc3\x9cUF\x7f\xae\x94\xd1\x0f\x8f\xcf\x93\
+\xc3\x93\xb1\xd6>\x8d\x17\xe7\xab~\xc4a\x92\xa5\x0c6\
+\xa5\x0a\x8c\x1f\x0e\x1dG/v\x133\x82\xeb\xe5\xc8}\
+\xc2\xd1\xc6\x01'SO\xe6\x9a\xf1\xc4\xb1\x22\xa0\x82Z\
+\xff[S;%\xaf\xc9\xa6\x9b\xc1\x92\x9a_+\x8aQ\
+\xc0\xf8S\xdb\x8e\x08!\x8e\x1e\x19`\xe6#\x8ep}\
+\xffk\x11@\xe61\xa5\x11D\xd0?(\xca\x1b\x9f\xa7\
+\xebp\xb1\x1aDx\xb8\xef8\xba\x04\xb4\x1872\xd1\
+\x04\x12\x94Ao\xd76\x14\xd4q\xae\x83\x05\x08\xa6\x84\
+\x0c\x17\xcf` \xba\x06\xc5\xdd\xec\xed\xa1\x98\xa7\x8c3\
+\xb5I\x95\x1a=\x9a\x02.f\xc4yVb\x94.N\
+\xc4\x86\xc9\x86VG\x1c\xb9\x1fl \x8ax\xbaH\x1f\
+\xef\xe3\xefpH\xb67\x14\x144\x98\x0a\xda\xc8<\x10\
+\x80\x18\xe5\xcazND5tUaj]\x09\xc8\xb1\
+\xe0b\x90\xa9f\xd6\x0d8\x16N\x9eK\xe63\x14F\
+(\x82\x18\x020%\xd8\xf0\xa0\xb4QkG\xe0\x8b\x80\
+\x0ab\x81\x94\x1aP\x1b-C\x8c\xe5\xc1)\xc3\xba\xaf\
+P\x9a1\xe4\x9dJ\x0aS\x82ZQ\xad\xab\x8c/\x81\
+\xa1v?CA)^$9|^\x03(FI\xbb\
+\xa5!Ru?fT\xdd\xa8q\xf0|A!\x94A\
+\xd4\xdcl(>G\x19\x0b\xcf\x8c\xcd\x91\xa8\xac\xdd\xf3\
+\x01\xcfE&\xc0\xef\xfa\xdf\xc5\xe7\x22\xd6${_g\
+\xee\x83\x1c\xc8\xfe\xac\xd4N\xd07\xdc]\xe4\xd0\xa3\x05\
+1U\xe2g\xd7\xcb\xb0\xfa\xb92\xa2\xfb\x18b\xff\xf8\
+\xd6\xfa\xc7\xb7\xff\x0ax.\xb7\x87s\xa6\xc4Q\xc1\xec\
+>*\x8b\x9c\xd1\xdd\x81~\xe5\xcd\xdcz\xbe\xa9\xb1T\
+\xad#%\x0e\xed*\x86,v\x163J7\x16\xb5\x9d\
+f\xfe\x1fW\x88L\xd9\xfc\xdb)g\x14\xfay\x03\xe6\
+S\x9b\xc7\xcf\x8ar\x1e\xe6e\xfb\xd1\x80=\xa3z\xfc\
+7\xdb\xf3\xf5\xf9\x07+P\x12\xe6O\xb7x\xb7X\x17\
+\xd6\xbd\xf6hC\xf8\xdc\x8f%U{\x9f\xf70\xb2\x08\
+\xa8/i\x88\x0ek\x0c\x14\xf9>\xc4\xfc\x16\xb3g8\
+\xd5P\xf4w\xc6\xf0`]\xc0\xc0\xa4\x14G\x0c\x04\xda\
+\xaa9\xd5\x98}\x1d\x83\x8f@<\x01\xc2\xdbuDL\
+\x8b\xee\x12\x9b\x1b2\xa5\x19\x8d\x11\xda?\xa2N\xdd/\
+c\x08v\xcaO\x0c\xe1>\x7f\xd1\x10\xc6#\xaa\xbe\x85\
+\xcb[\xc3P\xa8\xb9\xab+\xc9\xe8XC\xae\xd9\xeeV\
+5\x84\xe3\xd3\x86L\xf5\xee\xd60\x84\xe3M\x86\xdcV\
+\xcck\xfeU\xa3\xdd\xbd\xc5\x10^\xbf\xcb\x90q\xca{\
+`\x00\x00 \x00IDATK \xb8\x9e\xfe\x97\x86\
+\xa2\xc6R\xa2\xa7^\x9b\xae\xc4\x02\x0e7\x81P4L\
+\xba\xe5\x0c\xe1x\xbe\xa1P\xc1G\x83\x021>Je\
+`8)\xb3\xea\x81\x94k\xbbk\xbak\xb2\xe8\xe0\xc4\
+5\x01a\x1c\xbb\xfb\xbb\xfb'\x0e\x8a\xcc\xb2\x9d\xe2:\
+\xf4P\xf3`\x13\x8e\xa3\xcd\x0c\xd9\xc1\xc4Q\x19\x1dm\
+\x88\xcbQX8\xc2y\xff\xb7\xfdO\xd4\x02\xf9\xba!\
+|\xde\xd6\x06\xcd\xdf\x8f\x86\xf7\xbf\xdf\x10~\xfep\xf7\
+Hg\x81\xbe\x03\x0d9\x90\x16U\xd9\x7f\x1d\x99O1\
+\xf3\xdb\xcf\xde\xcf\xd6\xcf\xa6\xfd\xe79\x05\xa0\xef.2\
+\x81\xa2^w\xff2\x84\xe3\xfb\x0c\x1a\x87}\xb4\x9eu\
+E\xc9\x96\x99\xe1Oj\xbf\x5c!w\x01\xe9\xffl\xc8\
+\xa2\xd6\xc3\xa2\x01\x8bIKd\xc7\xa2]\x9f\xd6!g\
+\x8e`W\xd0\xaeZ\x01\x00\xda\x8e\xf6k\x19\x8aL\x9e\
+\x02\xa5\xb4!u\xc6#\x86<\xf3\xa2R\xe1w5\xf6\
+c\xd4\x1eUmT\xdda\xf8\xd1p\x95Q\xc0\xa3v\
+\xc7uE\xad\xbf\xa8\xd3\xfdI\x06\x05\x1e6.j\xc5\
+-\xbc|\x8e\xf6\xcb\xb3\xd4\x85\x82\xd2\xbb\x1fF\xf1\xd8\
+\xd8m$\xae#\xabd\x11\xba\xc8\xdc8\xbb\xc8`?\
+\xa4\x1a\xe7\x0f\x18T\xcb\xfd\xbb\x18`\x09\xaeu^G\
+\x5c\xdcWv<\xf6Gd\x0e\xad\xad\xbf\x7f\xbf2\xea\
+G\x88\x09\xf9\xce\x82\xd1H\xf7\x1b1T\x86\xa9\xc1\xe1\
+\x9c\x1a\x03\xa9q\xffi6m6k6\x8d\xddb\xa2\
+\x16D\xb3q\xb3Ql\x1bl\xab\xe9g\x0a\x91\x5c2\
+\xea\xa7\xa6\x121k\xbek\xedw)\xc9p\xbb\x8e\x12\
+\x04\xba\x19\xbc\x942\xc5a~\xee:\xecZ$P\x94\
+\xd8\xf4\xb6\x8c*\x01\xf1L<v4\xf6\xc0 \xfb\x80\
+R#\xba7\x10\xb8@\xd4\x12\xbb\xad\xf2\x0f\x86\x9f\x19\
+\x0aF\x9c\x983aOH%4\x94\xe6b/\xa1\xc5\
+\xc1>\x04#\x01\xa6'%\x94\x04~q\xdc\xeb6\xd1\
+\xd8\xa7\x04$\xd8\x87\xf1W\xb0\x9fX\xdf\xd9o\x10\xff\
+#p@\xd7\x1e\x98N*\xc1vG\x19\xbb\x03\x07\x9a\
+\xe7\x02G\xb5\xce\xf4\xf3>\xec2\x1ca\x1c\xe3\xba6\
+\x7f\xb2\xc41?\xafKr\xf9{\x1cp2\xfdU\xd7\
+7\xff~\xc4\x1ea0PZP\x07\x1ep\xd4\xeb\x12\
+z^\xb3.\xf0\xfd\x044p\xec9o\xbe\x1f\xbf\x16\
+\x7f\xb0\xee\x1a\xc6\xf9\xe2\xb7\xe1g\xd7\xe7\xc1u3^\
+|\xae\xf6\xfdq\xef\xbb\xad\x05\xc5)t\xcb\xc6\x06q\
+)S\xbbp1q\x868\xe5s\x0d\x82]\xd6\xf3:\
+\xf1\xd9\x8a\x08\x03'\x88\xc1R\xaag\xfe\xa50\x90q\
+\xe81\xc0\x09\x08\xe0P\xd6\x19\xf5\xbaT\x80\x81\xe5|\
+x\xc0j\x0a{\xad\x22\xcf\xf5\xcc]\xa9\xf1\xd7\x14}\
+2\x98P\xe5\xeb\xd2\x03\x1c\xe5\xber\xf8\xb9!<X\
+|/7\xa6\x16\x15d\x22\xf1\xfd\xb5\x16\xc2\x94\x14\xd8\
+h\xf8\x9c\xd5\xe5\xf0s\x9e\xa8\xd5\xd3\xc7\xfe\x15e\x10\
+\x9fJ\x19Cj\xf6\xc2\xe7\xa4\xf1A\x95_\x9f;C\
+\x00\x83#\x8ea-\xda\xc8y@\x95\x9f\xd5\xc75-\
+\x90\x9c\x07\xe3V\xf75\xadE\x0e\xf9\xfd\x8c\xe2})\
+@5\x9f\x98\x06\x04h\x18'\x1c/\xdaE2\x9f\x98\
+\xc78\xb4\x8bUm\x17\xa1\xa8\x11\xc8\xaa5\x0d8?\
+\xce\x8b\xbe\xa6\xaa\x91\xf3Za\x1cz\x16|\x02\x0el\
+(\xcc\x072\x00P\xe8\xa1\xf8\xc9\x90\xf06\x8b\x8c\x17\
+\xf3\x9ay\xc0BA\x80\x8b\x9aES1\xde\xbcP\x8d\
+\xc5Q\xa7\x9d\x92\xd4r\xfd\xf9!\x80\x87\xc1\x02#E\
+L\x02W\xf5%\xa2H-\x17\xe7\x87\xaa/5\xf08\
+\xd62\xc4=@\xc0\xf9\xd1\x8fw\xa7\xd4\x1e\x0c\x83\xdb\
+\xd5\xb6\xa9\xb9#\x82J\x80\x0c\x95\x7fD\xff$\xca\xe3\
+m\x97\x10\x03\x12%-2\x98\x9e,\x1c@\x16\xf6\xba\
+\xf6\x8e\xe7\x92\xf1\xe5>#\xfa\xc3\xc2\xcf\x91L?\xda\
+\x02P\xf7h\x8f\x03\xd5\x8c\x1aHQ`\xa9\xf5\xc4q\
+\xf3\x00\x97\x02\x8d\x1e\xd8P\xa0\x07\x95u\x8fT\xabV\
+\xcc\xc5\x9c4\xef]\xe5\x9c\xfb\x01\xd5\x8e\x8d\x92\xeb\xa4\
+4\xe61m\x18PE%\xaa\xd7/\xdb/\xd7/[\
+0A\x9e\x08\xdb\xf5\x13\xc5F{^0\x19\xc3}n\
+\xfeh\x88\xb5\x86\x07X\xad!m\xe9\xfa\x8b\xfa\x8b\x8d\
+B\xdeo\x1d\x10\x9e\x83\xee\xb3\x86\xf0\xfa\xd3\x86\xa2+\
+\xc2\xc9\xcdI\xcdIE&\x00\xa6\x05\xcf\x09ba*\
+\x01i\xdf\x9e2cq\xb9\x09\xebN\xfbp\xaa\x85\x0e\
+\x8ep@x}[\xaa\x05\xa7\xcf\xb4k(\xa0\x82n\
+\x86\xe6;$\x86f\x0c\x87\x7f\x07<\xaf\x9a\xfb[\xe5\
+\x18Z\x89\xc5L\x86\xa2\x06[Z\x188\x9a\xa3M\x0c\
+\xe1\xb8\xb2!\xbc\xef\xca\x80\x1f\x15\x0c\x122L\x12\x9b\
+\xf3\xc0\xda*\x86,\xc64Z\xdc\x10\x1e\xff\x83\x02\x82\
+\x834\xbe\x88A\xa5\x15\x1b* \xf5\xa5\x22\x93\xb3x\
+\x0a\xe0\x19\xf1\xdb\xa8\xdf\xa3\xfbF\xf7\x8f\xee\x0f\xc7\xf9\
+\x0c\xe1\xef&\x0cEw\x17\xba\x80(S\xdaol(\
+\xb4D\x94\xd9l\xe75\xe4\xcc\xb6\xd7p+#\xd9\xbc\
+\xdd\x10\x8ew\x05\xfc>\xd7\x18\x93\xe9\xf2\xb6}F\xcd\
+\xde\xbbpXV7\xeeC8~\xcc\x90k\x82\x87\xf5\
+\x13%\xb5?\xa5\x1f\xf5\xa3\xbc\xbf\xb7\xa7\x1b2\xb3\xa8\
+;\xc1P\xac\x1f\x88X\x91\x11T\xc6\xa6=\xdf\x10\xc6\
+\xe1\x1d\x86\xac}1Z\xc2\x10^\xafc\x08\xe6\xc79\
+\x86\xf0\xbd\xb7\x19\xc2\xe7\x9fb\x08\xc73\x0c\xe1\xf8\x9a\
+!\xb7=\xeb\xbfl\x08\xc7#\x0d\xe1\xf7\xdf0\x84\xd7\
+\xb7\x1b\xb26@\xff\xa2!\xb7y\x1b\xbec(\xd6\x1d\
+i\x0bPc\xed\xdd+$6GW\x03\xda\x81M\xac\
+`\x08\xc7i\x86\xa8\x16\x1f\x90\x19(\xdd;\x0c\xe1x\
+\x9f\xb9\xf2\xe1x\xa3!\x1c?f\x08\xc79\x0c\xe1\xb8\
+\x97!<\xf6\x9f\x0c\x08\x8e\xd0\xb4\xd5\x02\xc2\xf7L\x9c\
+k\x08\x9f;G\xc0\xec1\xa3\xbb\xd3\xb0Sv`\x08\
+p\x8f?h(D\xf1\xd4\xbe\xaf\xfd\xaa!\x8c\xefo\
+S\xbb\xc3\xee\x19C1>_7\xc4\xf9\x1e\xc5\xe0&\
+\xee5\xc4@\xd8\x8e\x16\x88m\x0eo>n\xa5T0\
+$`ZDQ<\x0b\xf0^\xd6\x5c\xde\x5c\x16k\xcd\
+\xa3\xc3\xde=\xd2M\xed\xa6\xc6\xf6\x92?3\x87\xb6]\
+\xa4]\xb4]X\x9a\x06\xdb\x17\xedM1d)}\xb2\
+\xb0\xe1G\x0a\x8d!\xd3P95g\x9e\xa3\x98\xe5\x95\
+E\xa0\x1e\x87\x00{\x13;\x15M\x1c\xb4\x1b\x94!\x1d\
+.2\xe4\xcc\xab\xb7\x1d}\xaf\xa1\x08\xcc\xc0\xe4Q \
+\x8by\xe3%\x02\x04\xd2\xc8\xe0\xb2\xce\xbeI\xe7\xa1.\
+<\xee\x10a\xd7q\xde\x0a\xbc\xb6\x8f\x1b\xb4?\x9eS\
+\xd8\x93\xb4\x835\xc7\xf5\xf8\x22\xe0\xaa\xd2\x94\x18\xe6=\
+\xa4(]\xc1N\x87\xf2\x0f\xb5\x9b\xda\xeb\xaf\xa6R\xb2\
+\xe8\xfe\xfdC\xb5\xf9_\xc8\xf6P\x0c\xac,Zhm\
+\xa8\xbb\x11\x01\xe9\xf8\x1c\xec\x17k\xe5?\x1ek\xe5\x7f\
+=\xf6\x1b\xcbx7/J\x5c\x12F\xe4\x13\x01\x8f\x17\
+5\xeb\xb4\xc1T\xa9\x84\x8b\xe7\x0e\xc1\x0c\x1d\x8a}\x8e\
+\xd2\x0dJ\x17T\x1a\xe4v95\xe3\x04\xde\xd1\xe0\xf9\
+E\x0a\x98\xe0\x7fP\x9a\xe1\x99Z\xda^\xab\xd4\x92n\
+\x00\xdcG\x9f/\xf8\x0f\xb4\x03\xa4K\x10\x8cI\x89z\
+B\xfdg\x7f\xf3\xb6{$\x16\xa0\xb4\xdf\xa4\xd2\x1a\x95\
+bE)\xf6\xa5\x8a6\xc5h\xdb\x10\x908\xd9\x90E\
+1\xfd\xfea\x0fc\xb7\xe2\xaf\xd4btU\xad\xbc\xb7\
+\xf1\xc3\x0f!\xd1\x81}\xc1\xcf\xf9\x1c\xecC(\xfc\x94\
+\x02\x90\xe9\xe7}8\xda\xcck\xde\x8fC\x8d}\xc9\xf9\
+\x10\xb8\xe6<\x09@@\xc1\x97\xa6\x8a\x8b\x1e\xd6Z\x00\
+8\xb8u\xed\xfbd\x0e5\xe7G@\xa2b\x8a;\xe3\
+\xd2\xc2\x94\xb7\xc5\xe7\xea\xde\x18\xa8x*\x8cF)\x1a\
+X1\x14(]\xf7D\x1e\xe7Y\x1f\xf1g\xd1\x22 \
+\xc0X\xdb\xa1\x9c?\xe7\xc7\xf8\xf3<\xe0\x87\xf2>>\
+\x0f\xcd\x1a\xfc\xe3\x8a\x01?\x8ejj\x9c6\xcb\x14\x13\
+\xe6\xd5\xd8\xc9=S\xd0\xb5\xa0\xb9\xc1F\xdb8\x22\x12\
+8.8\x8c\x18xd\xd6y0_\x89\xae\xe9\x8c\x22\
+z\xa4\xc4f\xaaD\xd8*&\x80\xff\x1c\x87\x94\x85\x8c\
+\x88\x0f7\x94\xf3 R\xc3\x83\xcb\xfbj\x95I\x0c\xe7\
+\xaa\x0d\x1d}z=\xc3Y\x978\xe46\x82I$G\
+}/Q\x05\xf6\x12\x04\x02\x09o\x96c\x8b#=\x83\
+\x86\x80\x16\x16\xdeO\x06\x98\x0c4\x11M\x1c8\xc6w\
+C9\x08\x8b\xe9\xbe\xd4\x01\x0d\xd4\xe9\x97\x93x\x11\xcc\
+\x07\xa8D\x8by;\xc1\x14)\xe4~\xd65\xf28\xe6\
+\xfc\x1e\xcd\x81\xb9\xfd\xfd\xc9\xf1\x9f]\xd7Q\xab\xf4\xd7\
+\x0c\x01\x0cY\x22\x979sO{\xbf\xf4y\xb5\x18#\
+\xf3\x84n\x11|\x0e\x0c\x02\x16B\x8e\x8c\x1b\xa5\x07t\
+\x17\xe0:\x98\xd7\x94fl\xa4q\xe1\xfd5\x93\x80\xbf\
+\xe3\xfe\xe1H\xa3\xaa\x0b3\x81\x08.\x81&\xc6\x83\xf9\
+F\x80\x08J\xff{\x0c\xc5x3\xdfq,\xcf7\x14\
+\x14D(Sj\x1f\xe3m\x8a\xe4`\xe3p\xfb}\x85\
+\xc1p\xb1\xfa\xe32\xae\x04L`\xfc\xa0\x09\xc2\xbca\
+\xa3\xa2&\x0e\x0d\x02\x98\x0dl\x10\x188dv\xa0\x8c\
+i#E3\x80\xf6^^\xda\x00\xd3\x00\xca\x1b5f\
+\xaaQG\x1c\x8f.\x06>\xff\x15\xe9vq\xc9\xcf\xc6\
+\x9ck\x9e\xf7t?\xd0u\xa2\xd2\xed\x81O\xd6\x07\xe6\
+\x07\x94Rj:\xe5h\x0f'\x19\x0a\x83\x89\xcc\x11\xd4\
+=u+i\xdfo\x08\xc7\x93\x0c9\xd3B\xfb0\xfa\
+\xb8{?g\xfaA\xab\xb6\x9a\xcfm\xee5\x14\x0c\x02\
+\xfaA\xff\xc3\x10\xd5\xd0\xa3xb\xcc\x8cl4\xa3\xc3\
+\xd6<\x93\xd4\xc5\x9b}\x9a}\x9b}c\xedh\xca\xec\
+\xd2\x86ieQ\xe9\xff\xa8\x0d\x97\xc0\x10\xeb'\x81\x95\
+\x8d\x0d\xb9\xad \x86\x14m\xaa\xbaO\x18\xc2\xebw\x1a\
+\x8a\xc0\x18\x94\xbe\xcf\xc8\xb1U?w\xafa\x17\xe3\xa3\
+]\xd8\x10\x1e\x8b\xf5\xc6\xd7\x1f__\x0e\xb8-\xdf'\
+\xa5\xc0A\xfb\xa8!\x1a|'F\xaa\xe5F&\xefZ\
+\x88\xf2\xd1\xbe\xd2\xd4\xc5\xaf\x96Z\xf5\xddE\x06\x8b\x0c\
+\xef=\x06\x05\xc6\x82\xa3\xd9.n(\xba^H\x8c\xb2\
+\xdd\xccP\xb4\xe9c\xbdQ@\xcdk\xaa\x1f4\x84\xf7\
+\xad\x9eJ,\xc8\xa0\xc5\x9a\xe8\xeb\xc3\xe7\xfc\xc8\x905\
+\x06\xa2\xc8\x9e1/\xe6\x0b0j\xf1G\x0c\xe18\xd5\
+\x10\x8eo5DQ\xbac\xdac\xa2\xa3\xbb\xf4hi\
+\xb5G\xfbU\x0c\x8c\x04\x14%@P:\x0f\x8d0\x87\
+'\x19\xce{\x19\x0a\xf1H\xe67\xfb%\x1a#\x18\x1e\
+0^\xd8gl7,\xb5oX?)\xbd\x11u\xd2\
+\xa9\xefr\xa4\x99\x7f\xfd\xf3\xfds\xfds*\x09\xd94\
+R\xf9\xe7\xea\xe7\xcaL\x96nw\x83\xda\xd9\xfd\xa6(\
+\xb1\xa1\x16V\xcc\xa5\xd11\x86\x1c\xe0\x1c\xcdc\xc8\xeb\
+\xc6\xe8YC\xa1\xea-\x11F(\xf8\xdd\xc9\x86\xf0\xfa\
+\x1b\x86,j\xd6\xaff\x08\xc7\xff\x18r\x02\x05\xa6\x00\
+\x8ec\xbf\x9f!S\xa1\x87w\x19\xb2\x88\xa3\xff\x9e\x00\
+\xc0\x9f\x0d\xe1\x83\xb6\x8d\xc8\xd4\xf1o\x19\xc2\xf1iC\
+\x0e\xc4M\xdcg\x08\xdf{\x9c!\x1c?n\x08\x9f\xbb\
+F\xbff\xbffn\x13\xd7\x9dg(\x1c\xfe\x0b\xbbo\
+u\xe1\xf3\xfa\x83\x0c\xe1\xf5\xcf\x0c\xe1\xf3n1\x84\xe3\
+s\x86p\x9c\xc5\x10~\xff\x87\x00\x0b`\xacj(\x18\
+V\xf7\x1b\x8aL0b\x97\xd2\x0e\x99\xb2\xa0!\x1b\xdc\
+\xdd\xb1\x86p\xdc\xbe\xdb\xae\xdb\xae\x10}\x5c\xb6_\xc6\
+\x9e\xfb\xd1i\xa3SG\xa7\xe5}\xa9\x19%\xe6O\xbf\
+e\x80\xb5\xff\xfb\x90!;FP\xf2\x11\xe3s\xe6\xd4\
+U\xc35\xd65\xa1\xdb&\xc0\xdaY\xdeb\x08\xef;\
+\xce \x06\xc9\x0e\x85F\x944*\xa24\xe8\x01E\x22\
+\xcbv\xb9Us`\x89\xae\x02\xd1\x0dy\xb0\x10MC\
+DMv\x90\x97\xb8\x88Y\xe3]R\xc4\x98j\x7fe\
+(\xc4\x11\xc5\xb0C\xbc\xb2\xdb\xccPd|I,\xe0\
+hI\xeb\xc7\x1d\xf1\x0f\x8cmeL\xb3\xe0\xce\x9dd\
+\x0e\x9d\x15R\xc5\xb6\xc1V:\xb9Z\xb1\x8f\xa9\xd4\xcd\
+\xbbb\xb1/C\xa1\xb7\x12\xb2\xcbs\x89!\xed\xb8\x87\
+S\x0c*u8Y\xfb\xe1\xda\x99\xd9D\xe0k\x86\x84\
+\x07\x0e\x11LB9\xa2\xd1\x1a\xfa~.]\x89\xc4~\
+DH\xcf\xcd\x8e\xaa\x07\xfc\x8d\xb2\x1f\xae\xbf\xdf\xc6\x10\
+\x03&\xa9[\xc0+\xf2/nV\x06\x19\x86\xa8\xf6\x05\
+\xbaw\xf4\x0f\x1b\xc2\xe7\xbc\xd3 \xd5\xf5\xfb\xa3\xe3}\
+a@n\x0f*\xad\x052\xff0\xbe\xb0#\x10\x7f\xf5\
+@\x0c\x01\x17T\xeee\xcf\xc1$\x83\x11\xe5\xf3\x03\xc6\
+\xa5\xa8\xfb0\x81\xdc\xa1\x22\x81@\x8d;~\x91(\xf1\
+\x04\x0c\xc9\x9c\x13H\xf7v\xcb_\x15\xe3@\x19\xf3a\
+Ki\xaa\xa8[\x83/T\xca\xb4\xfby\xf3\xfeK\xc4\
+\x1c \xa1D\x02\x80\xfd\xbc\xd6.\xc3\xcf\xc3\x9e\xc5\x8f\
+b\xdf&\xa0 f\x97\xab\xfa\x93\xf1\xc7n\xad\xc5\xac\
+qxq\xf8a\xa0\x12\x90\x82zO\x02\x85y\x86\xc3\
+J\xa93%\x8eu\x9b<\x1c`\xfc7\xf6\xe7\x9a\xea\
+\x8e\x7f\x85\x1f\x88c\x5cS\xecI\x04U\x22\xf2\xfe\xfe\
+\xdc.0\xb5#\xe5\xfd\x04&\x18\x07\x1c\x7f\xed\x07>\
+\x0e5C\x80\xf3\xae\xcf\xbfv\xd0\x09(\xf09$\xb2\
+\xf8;\xae\x97q\xaf\xda\xd8\xa31\xe3~o\x1dx\xf0\
+\x00\xc0\xb3\xb1\x9a<\xfd\xe2\xae\x82\xaa\x8b#\x8a\xc3W\
+epQ\xa1\xf4\xcc>56\xcb\x18\xa6SYO\x0e\
+$\x06\x06\x99XJ\x0ep<k\xc7\x8a\xef\xe3\xef\xf8\
+<\xbe\x8fL-G~\x8e\xa3I\x06\xf2\xd1$\x02\x13\
+\xdc\xaa\x18\xb1\xf5\x8cm\xad\xbaX3\x0a\x08P0\x81\
+*QCw\x9c\x08\x00@\x05\xe25\x11\xbe1\xfd\xfd\
+L\x9a\x90sN?\x1eN\xd9\xc6\xa1\xa9\xd5\xe5Q\xf9\
+e\xbcppkQ\xbc\xb7\xe9\xf7\xa8\xcd\xbf]\x0b\xf7\
+2\x1a\x9f\xdc\xb7:-\x0cP\xcdy\x8d\x03H\x9fU\
+\xee#\x8elU\xea\xe1\xdd\x03\xd8\x88\xc8\xe4s\xbe\x04\
+\x88\xf8\x9e\xba-!\xf3\x82\xfb\xcc\xf52\x1f\x96\xf0\xee\
+\x06\xe9\xbe\xd6\xe2&\xfc\x1d\x9f\xc3<\xc5ag|p\
+\xcc\x974\xbcA\x89An\x83\x98\xbe\x7f~\xcdC\x1c\
+p\x9e\x03\x024\xb5\xda?\x0f\x22\xf7\x1dG\x9f\x8d\x9f\
+L\x05\x94,\x1c-\xe6\xadkG\xa8\xbb\x06\x14P\xfe\
+\x8e\xf1\x869@\xcd\xa2(\xba\xa8\xdb{`\x80\xfe\xa4\
+j[\xe7\x0bUE\xc9\x1av1\x145\xfb\xd4\x8a\xe9\
+\xf9\xf7~\xb4\xb4\xa5\xa3m\x22\xa2.2,\xc8P{\
+\x84\x9a\xebf\xa1\xe1y\x97\xca.\x99B\x1c<\x0f0\
+\x92I bN\x97\x01\xda\xe8\xc0\x10\xe0z\xd8`\x10\
+\x9d\xfaiR\xd7\xa7&y8\xcePP\x151\xa4\x14\
+P\xf1ZBT\x90\x9fO\xfd\xab\xbd\xdd\x9f\x0c\x08j\
+\x1b\xbd\x86\x9f\xc0\x0d*\xd9\xbfKb\x5c\xb4\x83\x8a\x19\
+\xe7\x7f\x17\x94\xfd\x07\x13\xf5\xd6k\xd1\xe9O\xafv]\
+\x18\x02\xae\xd6-\x0a\x5c\xf3\xa4\xa1\x98\xb7jg\xd3~\
+ \xa9\x9f7\x9d!\xbc>\xc8\x90K9\x82{\x1dk\
+}\xbd\x9d\xd7b\x89\xf1\x12k\xd4\xd7(\x1c@4\x15\
+X\xc7.L\x06\x155\xce.~\xb7\x8d\xda\xbb\xfd#\
+\x8d{\xff\xcd\xfe\xbc\xde\x1c\x92\x9f\x18\x8aH>\x99\x10\
+2(\xe7&\xa6\x88\x07F\x16k\x17m\x17-\xbaT\
+h\xdd\x0a^B\xf8W0:\xa0\xf8\xa2>\xac\xae\x02\
+\x04N|\x83<=\x22\xcf{Q\xd4\xa3\x83h}\xd8\
+\x8f0\x88\xa2\xffQ9\xb0\xa7\x17\xed\xded8C\xbd\
+lT\xb2\xde\xceb\xc85\xbdd\x10\x11\x8b\xf3}\x8f\
+\x8c\x85\x1c[\xcf\xa0[\x89F\xd8\x88\xdb\xdd\x03v\x0b\
+\xcbET\xe7\xd2|1j\xef\x89\x86d\x98\x0e7)\
+\xe05\x7f\x14\xc7\x8d\x0c\x91\xd8\x06\xf0\xa79@\xd5\x1c\
+f\x08\xef\xdb-\x22_\xbf\x02\x00\xfd\x0d\x86\xbc\xde\x8e\
+\xde3\xda|\xb4y\xb1\x9f\x92A\xe0\xfe\xaa\xe4\x06\x07\
+\x0e\xa6\x86\xb7\xe13\xe6\xc9?\x8b\xcc\x07\x9fCF\xcc\
+\x18\x0e+\x17\x8c\x00\x89s\xf5\xdf\xea/\xecM\x5cn\
+=\x83\xc4.7\xce\xeb\xb0\xd7\x8c\xf2\xfc\xea\xfey\xbb\
+6\x02\x11Z\x0f\xc9\xccY\xc5\xb9\xd5\x9c\x13\xd8\x1c\xbd\
+\xd9\x90\xf7\xf9\xd8\xce\xf0\xbd93\xea\x19$\x026t\
+\x1b\x103\xa2\xff\xa1\xa1h\xb7\xf7nC\x0e, \xba\
+\xd8\xdfi\xc8\x19\x14\x17SD\xdb\xe3\xc2t\xbd\xde\x9d\
+\x02\x03\x9a\xae\x15\x882\xaa\xd6\xbd\xff`\xbfUo\x1a\
+\x07\xbb&1\xd0\xee\xc7\x86p\xdc\xb9\xdb\xa5\xdb%j\
+i\xbc\xd2\x05\x03\xb0;\xa8;\xb8;\xb8\xd0\xda\xf8\x8a\
+!2WRm\xf7i\x86\xf0\xf3g\x93z\xfcDo\
+\x08\xcb\xd2\xe3\x86\xf0z?Cx\xbd\x83!3,\x9c\
+\x9a-\x8d\x85\xf6\xba\xf6\xfa\xf6\xfa\xa2\xc4\x91@\xd5\xe7\
+\x0c\xe1x\x81!w#\x18?\xc1\x10^/a\xc8\xa5\
+B\xf4\xcd\xee_\xeb\xff\xdb\xff7jP\xa4\xe7\x97\xf9\
+r\x85!\xfc~d}C%V\x18\x9e\x83\x89\xa9\x86\
+l8\x8fV3\x84\xf3\xfduwkg\x22\x87\xab\xb5\
+\xabZ[\xd2\xd1y\x01sg;\x22\x96n\xdc,\xd5\
+\xee?J\xf4\xeb\x85\x82RMM;\x0e6\xcf\xf9y\
+\x91\xd3\x94\xed\x94J#\x89n\x1704\xdag\x0d\xe1\
+\xfbO0\x84\xeb\xbf\xc5\xa0y\xf6\x98\x02B\xeb\xe7R\
+(\x0fx\x93\xd9\x16c\x89\xee(.r\xf9kC\x0e\
+dSZ\x82C\xeeL\x04D4\xb1\x07\xb0;9o\
+\xf6C\x12\x0c$\xa8\xeeU\x86\x92}[\xe2}\x88\xf0\
+y`\x17\x0d\x12\x1c<\x9d'\xfb\x94g@o2\x88\
+\xb2\x7ffQ\xe3M \xdc\xa4\xea\xce,\x98\x7f\x88\x01\
++#\x8f\x98\xe5\xd8W\xc7\xbe\x16\x19\x0a\xb3'\xc6T\
+\xd4l\x98\xb7(%\xa2\xbb\x8d(\xf4\xae\x95 \x8d\x81\
+X\xd2\xb0c\x0c\xbc\xed\xdb\xef[\xd8C\xea\x02\x84V\
+\xce\xd8\x89r\x80\xc7%>\xaa\xeeH\xce\x88\xbc)\x95\
+\xb4y\xa2\x02\x06\x1f\xfb:b\xba\x8c\x7fU\x13\xee\xed\
+\x98\xb5\x9eb\x07\xc0\xf8q\xbb\x90\xee'\x88\xda\xe1P\
+*\xb3\xee\xeb\xa1\x02+^b\x8d#\xa7}\xc5E\x22\
+\xf59\xcd\xef\x0c\x856\x06\x99z\xec_\x12\x9cu-\
+<G\xecW\xfc)\x12(b\x8a\x0e\xe7\x19\x0a\x8d4\
+\xb4\x00\xf8\x1e\xec\x061,\xbd\x8b\x00\x09\x11\x1cU\x18\
+\x98d\xfc\xc50\xf2y\x02\x95\x1e\x06b-\xd2\xc7\xf9\
+\xe3\xf8s]\xb5#\xcd\xb82\xeed\xfe\xf99\xf7\x15\
+\x7f\x8c\xd7\xbc\xafj\xe3\xee\x09\x91?)\xc3\x8e\x1d\xfb\
+\xb8\x1c\xf1\x97\xa5\x91\xc7\xdf\xc9\x8f\xf4\xc0E\xa5\xdd6\
+C\xa0\xa4\xee.\xc0\xf5\xf0\xfd|.~E\xdd}\x80\
+\xbf{\xb5\xea2W\x076\xd8\x8f\xb8\xef\x8cW\xc5\x80\
+\x1d\x8f\x94\x95\x1b\xf4\x01D\x08^\xf4\xba\xef\xe4\x80,\
+\xa4L\xc7\x1a\x85#\xc3\x80\xdb\xe37k1\xa1p\xf0\
+\x14\x81\xac\xd5\xd1c\xad\xd6|\x85cH\x86\x01\x87\x8d\
+\x0c0\x8e\x17*\xc23\x1b\x0aG\x96\x85\x1c\x0a1\x0e\
+\x15\x91\x1f.\x98\x1bW\xb7K \x00\xc0\x80\xd6}\x12\
+\x198\xfe\x11\x81\xab\x1f\xa8Z\xdc\xac\x0e\x18d&C\
+\xdd\xbf\x9e\xb6\x7f\xc9\xd1\xc4A\xa9T\xcf\xfd\xc8\xf8J\
+3\xc0_\xe3\xf0\xe6>\xf7\xe9\xf5\xb2\x1a\x17\x1c2\xd4\
+Q\xdf!Uz\x98\x03U\x0d\xbc;\x1c+U\x81\x02\
+(\xedD\x84\xf9;\xbe?\x9foz\x8d\xe1\x88cO\
+ gng\x08L\xaf\x09Q\x97\x80(\x10\xd4\xbc\xcd\
+\xdb\x14&\xc7\x9d\xef\xcfb_i\x1e\xf0}\xf5\xf7\xd6\
+\xed\x1ey\xff\x12\xdef1\x05\x08j&\x02\xe7K@\
+\x8a\x0d\x17G\x9f\x88]\x1d(b\x81\xc5\xb1\xa2\xdf9\
+\x9fO\xa4\x98\xf1\xe5>0\xaf\x19g\x18\x018\xe6\x88\
+{\xf1\xb9,$\xccc~N\xc0\x00&\x02\xf3\x10\x0a\
+;5\x5c,\xd8P\xefp\xf8\x11\xaba\xbelj(\
+Tm\x09<@iS\xad\x1c\x86\x86?\x87\x15\xb3\x80\
+\xccilWuh\xce\xc4\xbb\x01\xba\x86\xa1\x08(!\
+\xca\x83\x06\x88\xda\xe3 \x8a\x88\xd8\x9f\x8b\x90)\x22\xee\
+\x99\x00\xe6\x15\x11T\x02*\xcc\x03e\xea\xc8\xc4[%\
+`\xac\x05d\x83\xa3\xc6\x0eqJ\xf5\x1b\x8f\xaa\xf2\xb3\
+\xe5vj\xb4\x97\xf3H6]\x01p\xf8i\xcf(G\
+\x95\x80D\xf3EC\x9e\x17\xb4\xd5sC\xe8BC\xa6\
+\x16\xd3n\xab\xddP\xaa\xfc\x0b\xca\xb1F\x9cja\xb5\
+\x11|\xb9y\xb5y\xb5\xb8\xef\xa8\xe4J\xb5\x1e\x0a\xa2\
+\x97\x86h\xdd\x22\x83=\xcc/\xea\xacD\xde\xfa\xc3\x0d\
+\xe1mw\x1b\x0af\x04\x06\x95\x1c|j\x5c\x9d\x89\xf0\
+j:\x8f\xf6\x87\x86\xac\x02\x1f\x0c\xfb\xd5\xdb\xd5\x0b\xc7\
+\xf4\x13j\x17\xa5\x0c\xeb\xb0@\xc0[s\x7fu\xef\x82\
+@\xa0\xf4\xe4\x08\xbfon \x8b\xea\xde\xedg(\x1c\
+K\xa9\x88GF\xc6\x89\xb9_\xbak\xdf\xe8\xb1\xf5\x00\
+\x9c\xfea\xa8\xf7\xcb\x1a\xc2\xdf\xff\xd1\x90\x03ad\xf0\
+\xfd\xef\xb9Oj\xfb\x18\xd5\xb3\x7fY\xac\xd3\xb6+\x8d\
+\x17\xa5?G\x8f\x1dmb\x84\xb1\xed\xe2u\x91\xe1\x92\
+\x18\x0d\x94\xd8\xe0@\xa9\x14\x04\xf5yo\xbb\xa6\x0c.\
+\xda\x17\xce\x5c\xbaE\xe2R\x8dJi\x94\xf1\xf2\xf6R\
+\xf4\xc5\x96\x83J\x06\xd6\x9a\x05Z\xbb@\xafm\xd5:\
+\xd5\xdef\xc8\xf3>>5\xdb\x14\x81B\xc4\x9a>\x98\
+\x98<\xc3\x9fS\x06\xa4?\xbd?\xad\xb7\x9a\xdc\x97\x0c\
+E[P\xa9s7\x97\x192\xa5\xba\xfb\xbe\xa1\xf8~\
+\x95\x02\xf8~\x88\xfa\xb5\x98k\x04\xb8\xfa\x8f\x1a\xc2\xf1\
+1C\xf1\x5c\xa3\x86\x0e\x93\x09\xb1Q\xb5\xedd^\xf7\
+K\x18r\x0d~\x7f\x9f!w#p\x8d\x05\x95z\x10\
+\xc0\x81\xaa\xdbw}\xf8\x17_'\x07J\x01\xd6~m\
+Cv\xb8(\xed\x08\xf7=\xae\xb7\xfd/\x0c\xe1\xba\xf7\
+\xe8\xf6\xec\xf6\xcc\xe2x8\xfe\xdd.\xdd\xce\xdd\xce1\
+\x03\x1aE8\xbb\xf3\xbas;\xa3\xf4\x9f\x99\xb43b\
+\xbb\xbe\xcd\x82\x9dwS@ph&\xb62\x84\xe3\xe2\
+\x86p\xfc\xb3A]\x01\x82c\xd8\x9f\xd3\x9f\x1b\xbbh\
+\x5c>\x5c6\x5c&\x91\xd0\xadr\x0d{\xfb\x0bC\x0c\
+\xe4\x04\xe4R\x93\xd1V\x86p\xfc\xb6!\xfc\xbcM\x01\
+;\x1c'\x02\x9e\xc1:\x8c\xddK\xfa+\x93\x83\x0fE\
+9\xb6\xf3\xb3@\xc6%\xfd\xa5\xfd\xa5\x91\xf9\x10K\x05\
+`\x02L\x9ce\xc8\xfb\xcfh\x91\xd1\xa2\xa3\xb0\x1f\x8c\
+?n\xc8\x01\xd4(n\xb7\xaa\xd4\xfe\xef\xcbZ\x0e\xe6\
+\x0e\x9aCH\xfbC\x18\x5c\xb1k\x8bi\x95\xec\x94J\
+\x1f\x9c\xf1\x86\x9a\xbe\x0ce/I!3)\x83|\xf4\
+5C8\x8f\x9d\x0c\xe1\xf5'\x0db\x84\xad[\x94\x84\
+H\xb3\x82\xed\x8e}\xac]\xd7\x10~\x7f\x9d!\xbc\xde\
+8\x05\xc4\x10\xb7$\xf0\x14v\xb3\x0f\xd9~\x86\xd8$\
+\x81\x01J\x89\x9cI \xa6\x86\x97\xa0\x11p\xa5\xb4P\
+%f\xb1+\xc6\xbb\x0a{\x82\xfd\x18;\x10\xca8v\
+\x10\xfb\xa1\x1c\x14\x0fxk\x9d\xf5R\x08\x0b\xf8\xac\x91\
+\x19d&\x1dk\xe2\xb11\xd0~l\xe1\xa0(P\x0e\
+s\xc2K\x12/\x19\xbb(\x8a\xd5v\xc1\x0d\xeb\xb2\xfd\
+\x83v\x843\x8cD\xb5w\xa6\x03\xa5n;)\xb0\x22\
+M)(\xfb\xde=\xe9$i$\xa1\x05\xf3\x9b\xe6\xb6\
+\xe6\xb6(\x8e\x97\xdaSbo\xd2\xbd\x87D \xf6\x1d\
+\x8e\x17\xe3\xc1z\xb5\xbb\xec\x1c\x95\xf6\xb8\xfdA\xe0\x9b\
+\xeb\x86\xb9\xc8\xf5\xe2G`\xc7I\x8b\xc6\x19\x0507\
+\xcf6\x14\xf6\x0e\x81\x1c=\x1f\x88E\x13\x90\xa4\x0d\xae\
+\xfb7^3)\xbb\x94}\x95\x0c>\x0e7\x19wj\
+\xf0\xd1l!\xd0N\x1b<\xd6_\x1cf\x8e8\x9a\xd8\
+\x9d\xd8U\xb5\x83\x8b=J\xed<L\x09\xbe\x8f\xef\xc7\
+\xf1GK\x89v\x85\x9c'\x0et\xed\xaf\x11\x08`|\
+i\x8f\x87\x98;\xf7\x17\xbb\x1c;\xbdfx\xd7\xe3\x86\
+\xc3\xfc\xaa\xde?U\x01\x0c\x89O\xfa\xfc \xf0\xcf8\
+\xe3?2\x0f8O\x02\xdd\x8cK\xc5\x14\xf0\xbf\xd7x\
+z\x09\x0a\x9f_w\x17\xe3\xfbq\xf0\xf99G\xba\xf9\
+\xfc\xdbP\xcc\x8fZ\xec\xbc\x0a\x1c\x8c;\xd5\xa2n\xf3\
+f\xff\xcfR8Rd\xd8\xc9`\x92I\xad\x22H1\
+\x8f\xbd\xbc\x1c\xd2y\x8b\xcf\xe3\xf3\xeb\x1as2\xabP\
+\xc3y\x008\xe2X\xe28\xd6\x22{\xfc\xc3q\xc4\xe1\
+k\xb4\x223\x008\x98\xdc0\x227\xb4\x19D\x1d\xb4\
+z\xb0\x9c\xd2O_z\xce\x03\x07\xb1\xae9Q)\xc0\
+\x0c\xdd\x04\xea\xf3\xac\xd5#kM\x029\xf4\x1e0!\
+\xf0\x22\x91?\x7f?\xe3\x9bot:\xf2{\xc4\x92\xa8\
+}_W\x11c4\x03\xdeZ9\xe6\x9c_]\x82@\
+f\x9fq\xd8@\x91\xf5\xaa\xa6\xdf\x1d\xdd\x95Rf\xd6\
+\x17\xd8\xbat\x80@Q\x1d\x08\xc0q\xc1\xb2~\xdd'\
+nz0[\xfd\x9cZ\xc6y\x0dE\xbb?\xa8\xfa\x94\
+\x06,\xa4\xf3}\x97\xb4\x03\xb8ni\x0b8\x93`A\
+\xcd\xf3\x1chI\xf3\x8e\xf9\xcf\x86\xb9P\x15\x80a\xc3\
+`\x9c&c\x0ep$@\xc5\xf9c\xa0\xca\xc0\xf5q\
+Dk\x00Q.Q7\xfds\xe8\xcb\xacH\xb032\
+jQF\x9eW\x02*8\xa2_0\x14\x01\x0f\xa9U\
+\xa3\xf6\x8eC\xe1\x1a\x03\xca4\x90\x91\xa4\x0d\x10\x99|\
+\xa8\xfa~\xfdtm@\x0d\x97\x00\x06\xf7\x1bC\x84\xe7\
+L\x1b\xa1\x8b\xf8\x90\xa9\xa6m\x1d\xed\x8b\xf62\x84\xf7\
+\x1dl(\xd4\x8aq\xf01\x00\x95!p\xc7\x9e\xcc4\
+\x99y\xfa\xb3\xa3\xeeO\xe6\x9dvwZ\xa0\x9d\xba\xae\
+@\x03\xcc\x84\xe6\xb7\x86\x5cC\x8e\xa3C\xc6\x83\x0cP\
+\xb3vr\x08-\xdff\x197\xd7>`\xc3@E^\
+5\x89\xed\xfb\x0c\x05\xd5_L\x84vWC\xce\x144\
+g\x18r7\x10o\xbf\xf6\xebT\xeb>\x1cT\x89\xc2\
+A\xfdU\xfb#\xaf!D\xcbA\xf7yx\x7fj\xd3\
+4\xf1CCX\xbe\xben(\x9e/Q!c\xbb\xbd\
+G\x8a\xeb\x95\xa1\xde^g\xc8mA\x9b\xae\xe9\x9b>\
+jL\xa4@\xcdH\x81\xe0\x85\xd2\xfc\xf2vF\xcap\
+7{\x05\xec-*\xff=E\x80\x87\x8c\x96\xfd~\xaf\
+\x82\xe9\xa4}(j\x11\x04\x07\xd4\x08\xe8FA'\x93\
+\xe7\xed\xa0(}\x11c\x05\xc6\x05\xa2f\x04f\xfa\xfb\
+\xfb\x07\xfa\xfb\xa3\xaa\xf6\xda\xa6\xaa\x8dc0e\xaa!\
+\xbc\xff\x10C\x91\xe11\xf7t\xd1\xac\x0e\x1d\xcd\x8f\x9f\
+\xa9&\xf7\x84\xac\x15\x10\x9f\xca7I\x5c\xf2\xfd2\xd0\
+n*\x0c\xb0\x9de\xc8\x8a\xca\x8e&\x00\x81\x08\x0f\x08\
+\xa1\x95@\x00B%\x01\x94\x22\x10\xd8\x1c\xden\xc8\x99\
+\x09\x0f\xfc\xa9\xbdT\xff\xaa!\xfc|AC\xf8\xbc\xf5\
+\x0c\xf9\xfe\xb1\x0eD\x02\xed\xaf\x0aM\x0b\x9b\xef\xc7\x14\
+L\x1ai'\xf4?\xe8/\xef/\xcf\xa58&Mg\
+\xe2t\xc3\xe2\x86p\xdbo0\xc4\xfb\x9c\xa8\xc3h_\
+\x88i\xc6\xfcin4\x14\x9a&<\x9f2D=\xd0\
+$\x83\xba{\xc8\x10\xbe\xe7(C\xf8\xf9E\x86\xa2?\
+\xb7\xf6\x91aMCQ\xbb\xae\xb6h\x04V\xa0\x1a\xa3\
+a\xe15\xfc\x12a\xa3\x94\x00\xd15\xfa\x80\xf7\x1b\x89\
+Y\xa0\x80\x82\x1b\xde\xbfH\xc7\xfejCn#\xd6<\
+\x91J\x05\x10\xcfD\xd4\xad\xfb\xad!\x1c\xef\xe8n\xef\
+n\x8f\xdd0\xc2\xa3\x13~\xbf\x8aA\xea\xef/g*\
+u\x1c\xdfk\xe5\x18\xaf\x5ctqP\xb7\x05\x02\x16\x13\
+\x8bO,1\xb1D\xfe\x1e\xda\x91\xd2\xf6\xb2\x99\xb3\x99\
+\xdd\xda\x16\xb7\x1f6\x84\xe3\xeb\x86|_]\x5c\x0c\x0d\
+\x12\xd9I\xcd\x84!\x1c\xbfa\x88\x0c\x9fXR\x83\x06\
+O\x14\xc1\x9c7S\xcc\xdb\x9b\x0da9\xba\xcc\x103\
+\xbd\x91\x9aO\x17\x12g\x06\xc1p\xd3\xf7\xc6\x92\x19\xd3\
+\xbe8\xd1\x10\xe6\xd1~\x01\xfb\xc6.\x19\x01\xe1\xf8\x9c\
+A\xf7\xedS\xb9\xebJl\x17j\x01\x95/\x05|Q\
+\x86\xb6=\x07\x1b\x06l\xa0\xe3\xbb\x0b\xb1J9 0\
+\x1fF7\x05\x84\xfb7\xbe\xb1!\xefk\xd2\xba\xcb\x0e\
+$5\xd20\xd9`\x0cY7\x890\xcf\xda\x0b\x0d\xb9\
+\xff|s\xad\xa1\x10o\xa5\xc4T5\xf4\xccc_\xcf\
+U\x13\xcc}CD\xd0\x99{\xa2\xca\xc7\xf5{39\
+\x02\xaf\x14\xe2\xc0\xb4\xe9\x85j\xbe\xb4!\x97\xdcD1\
+\xe3\x0f\xc8!_\xf1\x0d\xf6c1\xd4<\x10\xa1u\x95\
+y\x1d\xc3@\x97\x15LL\xecY\xe3\x81\xec/\xbb\x7f\
+\xe6\x22\xf0\xad\xe7`X\xca\x90\x03\xe5\xfda\x86\xbc_\
+\x0f\xd7&q_\x17\x7f\xfe\xad\xc4\xe4\x08\xe4)\x83\xce\
+:\xe7\x22\xc2\xd8\x15\x88\xca\xe9\xba\x9b\x87\x93\xc6N\xb3\
+\xa9T\xf6\x95hp\x11\xe2:\xd1F\x22im\x05R\
+`\xa6!\x12I\x02\x84\xf5\x1d;\x10F\x22\xdd\x88\xc8\
+ \xf3\x1cA\xd1\xaf\xa8\xeb\xc3{\x0cE{\xc8\xf1\x14\
+8\xf3\xf3S ?\xb6\xd3]7\x07~}\x1fW\xe0\
+\x18\x11T\x0f S\x9bO[A2\xfa\x94tT*\
+\xf9\xee\xb8\xe2\xd7\xe0W\xf0\x8f\xd7\x9c?\xfe\x12\xcc\x94\
+\xdc\x95,e\xf0\xf9<\x1c_\x18Z\xb2\xb7\xd0\x90\xf2\
+\x84\x14L\x00\x18\x04<W\xb4\xeb\x83\xb91\x19s\x9b\
+\xf1\xaeJ\x02\x9cI\x81(a-nN\x04\x0f\xff\x92\
+\x04m\xdd\x9d\xad\xd2Bp\x06D-\xce\xc7u\xff\x8f\
+\x80\x80\x07\xd0\x09\x08\xd4\x81\x8e\xc9\x18\x02\x15S\xc0k\
+\xfd\x19\x97Z\x1b\xaf\xee\x02\xa0\x80\xc0x\xdc\xc6\xdfT\
+\xd4\xfe\x9a\xe1\xb6\xa22\xc2K\x16\xd4p\x1c\x14E\xe4\
+\xe8W\x1d\xf3\x09\xcb\x155<D\x1a\xc9\xd4\xe2\xd8\xf3\
+@\xb1P\xd4\x8e_]\xfb\x8f\xe8\x1a\x99\x1f2\xfdP\
+\xc1q$\x99\xc0\xa8\xe5\xbeE\x91\xc3w(\x80\x80#\
+\x84\xa3\xc3\xf7\xd75\x14\xdc`\x220\xd4\xce\xe0h\xd1\
+\x85\x00\xeaQ]s\x82\xa3\xfa\xba\xb7\x13\x9c\xbe\xad\xe0\
+X\xa5q \xea\x92G\xd8jJ\xf9kU\x84'\xdf\
+\xf0tdb0\x11\x9f6\x14mD\xf8\xfb\xc6K\x10\
+\xd2\xf7f\x87\xb4f$L_\xda0c7\x05\xba\x0c\
+\xa4\xe3\xdc\xae\x010}\xc9\xc6[\xe4\x80\xe3\xf0\x13X\
+\xe0\xef\xd8\xb8\xe64\x14\xf7\x05\x87\x99\x0d\x84\xef\xaf\xbb\
+\x11x\xd1\xa6\x8e\x95f\x83__.\x09\x98\xae\x0d^\
+\x8c@\xf7oP{SG\x08\xf9|\x0cO\x89\x86y\
+\x8d3\x81\x00\x02,\xf4]\x87rXw\xa7`\xfe\x13\
+H\xe3\xef9/\xe6\x11\x91x9\x1e\xdem\x80q\xa4\
+$\xa3b\x9c8\x85\x91\xd2\x12Q\x92\xfd{q\x80\x09\
+\x08\x10a\xc5\xe1`\x9e\xa0\xe2O-\x9c\xc6\xc3k)\
+e\x00\xbbh\x1d\x19s(]0\x1bP\xb1\xa6\x06L\
+\x0b<\x14j/ia\xdd\xe0\xba\xa1\xa0\x131\x85\x1a\
+\x8c\x03\x8b\xe3O\xed'\x8e!\x8e\x22\x0b\xab6B\x18\
+\x0c\xfc\x1c\xaa\xbe\x8b\x04a8(3\xeb\x99e2\xc4\
+\x12\xc1#\x83\xed\x8e\xbf\xd4\xe2\xcd\xbd\x8d\x0e.\x81:\
+\xbe\x87\x12\x07\x05\xdcx>\x87\xab\x0dy\x9c\x9cQ\xf0\
+\x8c\xa1`\x8c\xa8\xafq\xbbSr\xf4\xfa]\xfa\x9d\xfb\
+\x9dsf\x9dL\x80S\xc4\x7f\xad\xda\xc4\x0b\x0c\xb9V\
+\xb1\xf9k\xd2\x16h^Q\x7ff\xc6s>\x05j\x9e\
+Q T\xa2k\x13?N\xea\xeb\xdd\xf7\xba\xefv\xdf\
+\xcd\x14_\xd6a\xdaU5\xcf\x192\xb3\xa0\xd9\xccP\
+t-\x80JI\xdfpi(\xb4\x9f1d\x11'\xd6\
+=JY\x86\x13\x87\xafG\x8a<\xa2N\x0a\x80\xe1\xc8\
+#\x0e\xe9\xa2[\xea\x9a\x80\x8a\xbb3\x14\xe8\xb2q\x93\
+\xa10\xbc\xec\xaa\xe7\xc9\xeb\x9a\xd7\x82\xcb\xa1p\x0a\xf8\
+\x03\x16\x0a\x08\x7f\x7f\x9a!g.\xd0\xe8\xc0\x01\xf7\x9a\
+H\x89\x12\xc5\x80\xde\xb2\xa2\xce\xde\x5c\x94\x18X\xc6\xfb\
+\xfb\x85\x18\xa4T\xbb}\xfe\xff9\xcd\x9b\xfeo\x86\x9c\
+\xa9wf\x8c\x1c\xe6\xf6C\x86B\x84L\xa5 d\x9e\
+\x86]R;\xcc~\x01C\xec\xf2\x90\xc4\xbf$N\xd5\
+\x1eh\xc8T\xd2\xd1\x81\x86\xa2[\x07Z\x13\xb4\xb9\xa2\
+\xa6\x1aq'\xd9\x0b\xb4\xeb\xea_2\x14\x06\x0b\x99\x1e\
+\xb4e0\xc8\xe8+\xfe\xa1\x94Ac~S\xe3N\xb7\
+\x02\xdf\x07`\xd2p\xa46X\x0e&\x1a\x0d\xd3\xae5\
+\xe46w\x88qZ\xfe\xcf2\x80\xde\x96O\xed\x06Q\
+S\x1f\xd62d\xe6\x03\x22\x91h^\xe0\xa0\x90 p\
+1@ep\xbbC\x0d\x91\x92|@\x1f\x1c\x83~\xaa\
+\xda^J\x85>\x98\xb5I\x04naC\x11\xd0\x17S\
+\x04fQ\x7f\xba!\xf6\xf1\x8e\x86\xbd)&\x98fB\
+w\x95\xa1H\xc4Y\x80\xe2\x11iO<\x1cE\xf5N\
+3Q\xbdX\xea\xf2\xb9|>\xdd\xec\x86\x98QOm\
+%\x95I\x8e]:\x9e/2m\xba/\x94\x10\x0d\x0b\
+\xa5\xf3\x1cf3\x84\xcf\xfd|\xff\x85\xfe\x0b\xc5s\xa5\
+\xe7\xae\xfd\x8b!w\xc9\x18\x8e0\x14\xeb\xbc\xee\x1f\xcc\
+\x19\xa8\xef.\x96)\x07kt\xb6!\x8c\xc7n\x86\xb8\
+\x9e\xa4\x92%\xba\xd9\xa8\x96}bIC,\xb5\x8am\
+L\x83\x1b\xf07[G\xfb\xdd\xfb=L\xac\xb0{\xad\
+\xfbo\x17\x9e\xdf\xfe#\x06\xf5C\x0f\xe3\xd8\xbd`\x08\
+?\xff\x8c!\x1c\xc3]\x8a]\x0a\xacd\xe3T9Z\
+c\xca(/\x99\xc5CM\xa2\xceD\xeaF\x8f\x06L\
+\x8d\x1a+\x1b\x9b\xfa\xfc\xf0\x0b\x83\x98k?*\xec&\
+\x1c\x17\xd9\x11&ehb\x860\x5c\xbc\xa4\x8d\xc0\xab\
+\xd6+\xdf\xcf`\x92i\xff\x8a\xed\xf3\xfe\x99\x18B\x01\
+f\x97\x98E9\xd6\xed\xdb\xed\xd7\xed[\x94\xee\xa1Y\
+\xa4\xfd0j\x09l%\x15\xff\x87\xf2>\x15\xd6\x84}\
+cF\xfa\xed\xb1\xa82\xd7\x9e\x93i\x15\xb5\xdb\xf8\x19\
+\xfd%\x05\xc3E*\xfb^\xeag\x8c\xa6\x9b\x8aZ\xe7\
+m\x0c\xb1$, 2\xc6b\xe0\xb8no\x1d\xdd\xa3\
+\xbf';\xd8\x1c\xb0\xe6zC8>\xde<f\xe2\x7f\
+\x91\x01\xf5\x83\xdc>\xcfEp\xf7L\xb5\xefa\xd6\xcc\
+>\xcc^\xac?\xb4\x0bElU\x81`o'\x87}\
+\xa4@\x12\xa5;^b!\xbb\xc4\xed\xb9\x17\xb5>\xd1\
+V\x96\xae>\x94\x18\xe2\xb8\x8b\x1f\x0ffT\x00\x00 \
+\x00IDAT\x89\xe6\x8e6]\x08\xc8\xf8#\x02\x5c\
+\x89F\xa3\xd1\xe2\x8e\xa8\xb5\x93\xbd.\x07|\x9c\x91\xa2\
+\xc0A\xec\xca\xf5\x9f\x18\xc0H\x99r\x89\x01\x12\xf8\xf6\
+\x12\xa4+\x0d\x85C\xc9\xe7\x10\xf8\xc4n\xc6\x0ef\xbe\
+r^$\xb4\xb0\xef\xf9y\x9dX\xac\x1d\xe37\xb9\xe8\
+w\xb2\xd3\xf9\xfbJ\xc4\xd9\xfd\x16\xeck\x1cX\xfc\x96\
+\x8a)\xe0\xaf9r]\x1ck\x0a\xfcd\xe2~u\xc2\
+\x15-\xb7qCQ\xc2A\x22\xae\xd6\x9a\xc3/\x9a%\
+\xca\x9ag?\x04\xfb\x9c\xd2r\x18\x078\xfe\xecs\x5c\
+'\xe7W\x07D\x103\xac3\xfeu\xbb\xfb\x9a\xe1\xcb\
+u\xd7T\xff\xbad\xa0.\x81 \x10\xc0\xeb\x8aA0\
+\x1e7\xe2\x8f(\x82\xb5D~\xc0\x22\x11y\xe9\xa26\
+\x1d*x\x9d\x99\x7fKt\xf9\xf2D\xc3\xe1\xe7X?\
+\x10\xf5\x11\xc7\x90\x89G\x06zfW\xa9O7\x8a\x09\
+\x86CC\xc4\x0dG\x8a\xf7\xe1h\x93\x09&\x80\xc1k\
+\x1c]\xce\xaf\x9e\xe8\xb5\xca=\xed{\xc84c\xb0\xd5\
+\xe7Yg\xae\x87\x8abR\xb7\xa1 \x22\xf6\xb4n|\
+-J\x88\x8a\xbf&\x1a\xd4R\x0f\x140\xd1)\x91\xa0\
+m\xdd\xfa\xa2LM\xabj@r\xc9\xc2\xf4\x94\x10\x8e\
+eW\x87\x7f\xbf\x818#\xff\xea\x05\xa1\xee\x16@\xc0\
+\x03\xcb\x85\xf73>\x99i\x92\xc6\x8d\xd7\xf98}\xd7\
+\x06\xee\xcflZhT\xdb\xe5\x0b\xea\x8b\xa9\x9d\x8b;\
+ <\x88\x8c\x0f\x7f\xcf\xf9\xb1\xe0\xf0\xfd\x8b%\xc6\x88\
+\xb7M$\xb0\xc5}%\xf2O\x00h;CAAb\
+\xc3BE\x15\xcd\x01\xfa\xdd\xb2\xd0\xf2~\x02&L\x0f\
+\xd5Fy\x0d\x18\x8e9\x141Du\x10\x07\xa4\xe6\x8f\
+\x0cD\xad\xfa\xca\xf9B\xe9\x97\xc3\xef\xa28Z\xb0q\
+\xb4]U\x9e\xb6wdJ77\x14\x0e=\x948\x18\
+\x1el\xb0\x12Mq\x86\x09%\x0c\xfc\x1d\xcf7\x99\x12\
+\x02y\x88\xea\xc8\xd0\xf1Z=\x98\x14\xd4x/\xad\x92\
+\x15\xd6\x1b\xee\x0bbyd\xf2+*8\x11\xfa\xd8\xe4\
+\xed\xf3\xe1\xf5\xad\xcd-\xcd\xadE\x06^\x0b\xa2\x8ba\
+\xf1<\x8az\xec\x99\x19\xda\xc4\xa1\xf2\xae\x9aV\x8fP\
+S\xd2\xc1\xbc\xa7v\x0e\x95a\xd5H\xfb\xfd'\x93\xa6\
+\xe7\xb9\xbd\xdd\x90\x1d\x1a\xefs\xaf\x9aR\xd3\xd87\x95\
+}\x0c\x80\xe6\xf7\x86B<\xa9\xeefA\x9bP\xdaS\
+\xe1\xd0\x89\xc9\x80\xf8\x11]\x08\x86E\x92\xe1\x1f\xbc\xc8\
+\xb6kcMq7a%\x01G\x1b\x0a-\x82\xef\x1b\
+\x0aq\x1e\x9e3=\xa7^\x93\x88J\xb1jpY7\
+\x9b>9\xaa^\xfb\x88\xa8\xa4Q\xfe\x17\xc8\x86w\xf3\
+\xf5\xe6D\x13=4\xe2f\xa4n\xee\x12\x1b\x04z\x06\
+m\xa0X\x9f\x00\x015\xb3_\x92Z\xf3\xb7\x93\xd8\x12\
+\x94_jG\xbd\xfd\x94\xb4(b\xa6\xf8\xe2\xcc<\xe8\
+\xec\xb2'\xb2\xb8!\xa2mS\xd61\x14\x0c\x0c\x02\xd2\
+\x88W*\xf3\x8e\x03\x11\xcd\xaf\x1b\xd4\xbdb-1\x1c\
+.\xc8\xf7\x9d\xb6\x95\xd1\x00x6\xab\xbe\xf7\x7f2\x84\
+\xef\xf9l\xaa\xc1\xc61%\xb0\x14fy\x0aL\xb1\x8e\
+\xd1\xb6\xef\xa7\xe9\xfe\x0e;J\xacn\xd9\xd4/\x1c\x86\
+\x06\x86a\xbb\xb4!k\x07\xb8\x08\xa2\xda\xd7\xf9>g\
+\x0c\x98o\xe89]\xbe0(X\x8f\xcd,\xbd\xbb\xd0\
+\xec\xa84<\xfa\xbb\x0d\x05#\x09\x0a\xbc\x028\xfd\xae\
+\x86\xa2\x0b\xc15\xcd\xd5&\xde\xe85\xb5\xacCz\xee\
+X\x9f\xa8\xb9G\xb5\x7f\xe2\x0aC\xb1\x1fR\xb2\xa4\xfb\
+N\xa0\x9eL\xb7\xd7\xb0*\xe0\xec\x8e\x0e\x0e>\xea\xed\
+\xea\xb7N;;j\x81\xfb\xbd\xc4\x14xHL\x81\xab\
+\xfbk\xfap\x1f\xbb\xdbS\xe6\xbe\xff\x83!\xdf\xc7\xfe\
+\xe5\x14\x18\x19&$*w\xb4\x18\x0a\xf3\xab\xef\xfb\xd7\
+\x92\xb8\xa7wK\xf8\xa3!3Y\xa2#i]\x0a\xc2\
+\xb7\xf4\x96\xe9\xbf\xd4\x10^\x9fo\x08\xd7\xff\xf3\x800\
+\x9e\xd3\x8e\x99v\xec\xb4\xb0\xaeO,0\xb1\xe0\xc4\x82\
+q\xdb\x8b\xcc\x01\x18$\x04r\xfbk\x0d\xe1\xf7\xbf7\
+H4\xf3\xaa\xecPxw\x12\xa3\x90\x1bC\xea\x9fI\
+Dt\xf8\x8f!S\xcaG\xdb\x1b\xc2\xe7]e\x08\xf3\
+\xe8>C~_\xbb\x82\xa1\xe8\xbap\xa1!\x8b\xc0:\
+3\x0f1T1\xd1\xda\xe7\x0ca\x9a\x9db\x08\xaf\xb7\
+j?\xd0~ f\xe2o\x1e\xdd\x1cE\x08\xa3Xb\
+\xbf\x89!S\xa2\xbb\x7f\x18b\x7f\xfb\xa7,p\x16\xc5\
+\x1e\xc3|\x1c})\xc0D'7\x0e\xd8$\x8b\x11\x22\
+\x96\x17K\x13\xc6cI\xd5\x86\xadQ\xf1\x9f\x0e\xf8\xbb\
+\x02vg\xcbA\xdb3\xf6\xa3\xff\x7f\x03mc\x1f\x93\
+\x9d2\xa5\xd8\xc7\xd9\x87)\xa1D\xdc\x92\xfd\x04\xfb\x19\
+\xfbSv\xac\x85cc@\x96\xb6\xac\x12\x0d\x1d^7\
+d\x11Y\x98+8\x8e\xaeE\x22\xb5T\x0f\x5c\xcdn\
+\xd5\xf5\xe1\xf8MC\x0e\x5c\xb7\xeb\xa5R\x84\xe1\xfc\xe1\
+\x82\xa8>/\xc6R\x0c\xc8\x9e\x98K9\xda\x87\x0c\x85\
+\xe6\x05\xcc!e\x8c\xbd\xfd\x1c\x8e\xb8\x1c\xed\xf6o\x86\
+\x5c\xbaB\xd7\x0ewh\xcc\x0a01\xe2\xbd\x87}\xcc\
+\x8e\x89m!w\xcb\x99\x7f\x17k%\xe1\x80\xb8\xe0v\
+\xa9\x94gl\x0b\xed\xaf{K\xd3\xe35C\xd1\xb6\x95\
+\x00z\xc5$sf\x07\x81<\xd5\xb6C\x91\xf6\xae%\
+\xb2\x83\xbc\x0d\x22\xaa\xf4\xb5\xfd\x8a\x9dK\x82\x07\x11f\
+\xecf(\xfc\x95\xb8\xaa\xefw0[`zp\xbd*\
+\x1d\xa0\xd4\x93\xf6\x84a\xd5Kv\xe6\x1c)A\x04E\
+\x1f\xfb4\xce\xe3\x1f\x14\xfb@e\x7f\xfb}\x80\x12_\
+\x89\xed\xb9C\x88_U;\xaeu-y\xedX\x93\xb8\
+\xaa\x13Y\xb56Z\x95H\x9b\xa1T\x16?\x8a@\x02\
+~\xd7d~U\xad\xc5\x86}\x8f\xff\xc8s\x99\xbb\xa3\
+\xa1\xed5\xbdf\x18\xdf7G\xd5N}\x8e\xd8\xc7,\
+\xbd.\x19\xca\x5c\x1f\x0c\x10\xd9\x87^:1S\xd5M\
+m\xb2\xc4e\x1d\x18\xe1>\xd4\x01\x03\x02\x1e\x04\x02\xf0\
+\xcb*\x06\x80?\x0fu\xdbC\xdeW358\xca~\
+\x1b\x8f\xc3\xdaj`\xe6\xac(\xe8\xf3\x16\x03\xc0\x05\xf2\
+\x0f\x07\xb1\xce\x5cc\x18\xd6\xea\xfa\xf5D\xe8+\xd1\xbc\
+\x89I\x1c\xd6\xfa\x82\xea\xc8G\xdd.\xefe}?\x03\
+\x8b\xe1B\x00\x83\xc0\x01\x996(\xed\x944T\x8e\x95\
+gRi\xf3\x86\xa1\xcd\xc4\xc7a\xa1o:\x99@\x16\
+\xfe\xb9*\xd1;&v\xa6d\xa4q\x81r\xc2\xef=\
+\xd2\xa6\xcc\xf2\xecr\xecs\x06>\xdd\xa7\xc9\xda\x1d2\
+\x11\xebZ\x97\xbe\xba\x0f\xfc\x9c\x09\x9b\xdb\x1a\xa6\xdfO\
+8\xb3a\xfa\xfb\x5cSQ\xea~\x9dD\xbc\x98p\xdc\
+\xc7<_\xd2\xb1\x16\xb3x\xa9*\xa9\xa8\x17 \xe6W\
+\xad\x92\xc9\x91\x08\x1a\x86\xe9m\x86B\x94\x90\x00\xd6\x22\
+r(\xd9\xa8T\x934\xdc\x9c\xc4q\x9a\xb5\xc4\xf4`\
+\xe1@\xed\x9e\xf1g\x9c\xea6\x228D\xa2f!\xce\
+\xe6\x94yQ\xc6\x9d\x0a\x85\xe8\x956nog\xb8\xaa\
+\xa1\x10Q\xf9\xb2\xa1\x88pk~yF\x89\x12\x11~\
+\xcf<f\x9e\xb1\x10\x90\xd9\x16E\xdb\xdf\x87F\x06\xf3\
+\x1aQOQ\xb1\xbdv\x99Z79\xfa\xcd\xe7\x0d\x05\
+\x85\x1e5\x7f(\xd2\xca\xf4\x92\xe1\xf5\x85\x0a\x03_\x99\
+r\xaf\x19dA\x86Y@;3(\xdf\x18\x90P\xb9\
+)\x95\xa0\xd6\x8dL\x9b\x0c \x1c\xd2\xe6\xf1\x80'\xf2\
+\xc6\xec]0\x94\xa1\xf1\xe7X\x14B\xc4\xbd\xb8>\xa7\
+D\x1e`\x08\xaf\xbf\xa66I\xcc;6VQ\xfa\xfb\
+'\x0dy\x9e6G\x18\x8a\x8c-\xa2\x82\xdc\x179>\
+8\xbe\xde\x8e\x91\xcc(\x86\x05%\x03d\xfa\xff\xa8@\
+\x84\xc6\xa7\xb9\xc2Pd\x1e\xf4<\xf4\x8b\x192\xf53\
+\xb87\x91\x0a\xda\xafa\xc8j\xe2n\xf0bX0\x9f\
+\xd1`\xa0+\x01\x19\x15j7\xef2\xe4\xccLs\x81\
+\xa1\xc8\x8c_\x9d\x1c\xbdae\xd5\xb6NK\x86.\x14\
+bg\x18\xd0\x17{\xbe\xd8/%Q\xff\xfeVdh\
+\x8c\x02\xb9^\xcc\xd4nb\x99\xda\xd8\xdf\xfa\x9bE\x80\
+D\x14p\x0clg\x16(c\xd5\xcdo\xc8\x9a\x03\xce\
+\xd4\x10\x83\x05\xaa1L\x90\xe6nC\xd1nO\x81\x11\
+7`L\x12\xeb\xdaH1\x0dPI\x841d\xee\x0c\
+\xf8]a\x90\x99!\xf8\x9b\xec G\xb3\xc42x\xb7\
+\x18\xa2\x8a\xfaiQE]b\x86\xb1\x97\xc5g\x0a\xd5\
+\xf4\x17S)Z\xbf\xbf\xa1PU>)\xad3\xb1\xad\
+\xe0\x069S>\x1a7D\xc7;R\xea=\x90\xa6\xda\
+^2\x5c^\xba\x22FA\xac4>\x5cL\x8a\xaf\xe5\
+\x00\x12%>\xfd\xdb\x0d\x0a\x10n\x165\x1d\x02\xb2\xba\
+\xbe)<\x98\xc6\x83\x97\xde|9\xc2\xdb\xe01~P\
+g\xfb\xed\x0c\xd9\x80\xc6\xb0\xa2T\xc9k\xa5\x95)\xee\
+F\x86p|\xd2P\xacS\xdcw\x05\x16\xda\xd7\x0ca\
+\x1c~i\x08\xaf{C\xae\xcdf\x7f\xa7\xc4\xcf\x1d*\
+eh\x09\x10t\xa7\xcb\x91]\xd6\x10\xce\xe7_\x86,\
+\xc2\xe7\xa2\x8a0\x04\xb6\x15E\x7f#Cv\xec\x19\x07\
+\x7f\xae>\x90\x02\xaa\xc3\xf7\xd4\x07]bk\x88\xfeE\
+G?<?\xdd\xe2\x86p| \xe0\xfe\xf0\xf3S\x03\
+\xac\xad\xe1E\x01\x17\xe6\xb6\x87\xdd'\x0d\xc1\x1c:c\
+\xda\x99\xd3\xce\xcc\xeb8\xcf\xa3\xb7E\xdc\xad\xdb\xb5\xdb\
+Mm_\xb7\xcf\x81\xc4\xe1\x09C.-\x22#M\xcd\
+?Z\x11t}\x18\x9d9:kd\xb5\xfb\x9d\xa8\xb5\
+*\xd9\x80\xc2\xdc\xbd\xcd\x10\x8eK\x1b\xc2\xdf\xbd\xd9\xa0\
+\xe7\xf5\xfc\x18x\x8d\xa2\x83\x1c\xdbs\x0dY\xbbf\xfc\
+\x05C\xf8\xf9\xa5\xed%\xed%\xe1\xfb\xd6\x1e\xad3Z\
+'\x96\xe8\xdco%:\x91x\x15\x1c\x82n\x16C\xbe\
+\xfe\xfe\xabF\xbe\x8f\x01\x8a\xa8E\xd0~\xae=\xa2=\
+B%\x14\xaf\xaa\xa6\xfdw\x85\xb8\xa8\xb4:hS\xea\
+5\xef\x88\xe6\x91\xe1\xc7\x01\xc1\xfe\xb8$\x22\x06\xd6\xed\
+\xba\xd1p\x89L\x9a-e\x0f<\x5cd\xcc\xa5E\xe0\
+ZX\x04\xa8\x15\xe8\x1dN5\x14\xcc\x1e9\xb6\xed]\
+\x86X\xb2\x92\x1ce\xfa\xd3\xcb\x115I\xd6\x98\x81\xa7\
+}\x8a\x02\xfe\xfd\xef\x0c\xd9\xcer1\x5c\xec(\xe3\x8f\
+\x9d\x9b\xc5\x0c\xc7>\xab\xd2\x02\x12H$\x02\xb1\x0fQ\
+\x87\xa7\x86\x1b\xc6\xdf\xf6\x11\xdef\xb4?\xd6P\x88N\
+\x1e\x17\x1c\xec\xe3r \xc3\xf7;\xd9K\xc3\xadr\x84\
+\xb1\xdb\xb0\xf7\xf8|izx\xc9\xc2:i\x9c\xdb\xed\
+\xdam\xdbm\x8b\xdf#f*\xa6\x0f\xe3\xd3\xfc\xc7P\
+\xd8m*ap\xedn\x05\x02\xba\xad\x0dE{O\xba\
+\x05\x90Q\xaf\xed\xbc\x9a\xb9\x8c_\xa0\xc4\x87\x8bPR\
+\xc2\xa8u\xd9Ed%\xea\xeb\x89SJ\xd6\xaeI%\
+\x22.b\x8c\xf8\xb2\xd4\xff\x87O\x1br\xc9\x94wS\
+R \x09;\xd3\x03\x0e\x88<^\x96\xb4?\xdc\x9eR\
+\xe0\xd73\xe2\x9c'\xf7\x19*>\xd7[\x8b\xfa\xd1\x15\
+\xaej\xd37\x83\x88z\xed\xe8\xe3\xb7\x10\x10c\xdcH\
+\x90\xe0\x0f`\xef\xc0\x04\xa54\x83\xd7UI.\x8cR\
+g\x82\xe0\x87\xbc\xe25\xfd\xe9\xfe\xd5\x01\x80\x1c\x08H\
+~\xda<\x91\xdb\x9c\x13\xcd\xd8\xff\xb5\x03]1\x9a\xfd\
+s\xb8\xceY+\x865\xf3\x04\xff\x8cq\xa9K+\xea\
+\x00\x01\xc7\xc9\xfc\xdf\xc9\x18\x00\x9310\xaa@\xc3\xb8\
+\xf7IU\xed\xbe;\x06D ^O\x14\xa4\xe8N\x8e\
+\xf2\x85P\x1b\xe7j\xf1s\xfa\x00N\xdf>\x8e\x9f3\
+1\xb8\xb18\x02u)@U\xc3\xec\xd4v\xce\x0bC\
+\x9d\x09\xc7D\xa2/1\xef\xdfR5euD\x0b\x8a\
+4\x99^\xa8\xd1LD\x1cp\xce\x8f\x1bS\xab\xd6\xd3\
+\xa6\x8e\x89\x98'd\x8a8\xd5j\xf4j\xbf\xe7\x19P\
+\xae\x83\x8c\xe9\x02^\x9b>]\xad|\xc3\x03\xb3\xde\x0c\
+\xcc\x894\xae\xf5\x04\xab#QuD*3\x14\xa6\xcf\
+\xec\xd7Z\x04\xbc\xef\xbf\x95\x98\xc6dG\xc6\x89\xf3\xa9\
+\xd56+\x86\x81S\x8b\xb9\xafD\xec\x18\x17\xa8\xe8R\
+\xa3\xf6~\xf0\x9c7\xf7U\xf3\xc5\xe7\xa3DZ\x9c\x8a\
+\x8a*\xfeO\xa4\x12O\xfb\xb7\xe7\xb4\xe0\xdc%*\xdc\
+\xe3r\xe0t\xc4\x10\x88\x86\xd2\x0e\x05\xc5\xb1n\xd3\x81\
+\xe3\x89a\xc0uP\x9b\xa3\xcc\x92\xd7\x8cQ\xcb\xa7\xcc\
+\xad\xab\x9b+C\xe8\x1b#mc\xa0\x10\x22\xea\xc7\xc2\
+\x8a\xa3\x0f\xd5\x161A\xbd\xf6\xd2\x01\xdak\xc9\x00\xf5\
+\x00\x84(\xda>\x9fY\x90\x98_0]\xa0\xaa\xd3\xef\
+\x98\x8c3\xd4{>\x8fy\x87\xc3GM2\x99\x7f9\
+\xd6~\x7f\xa0N\xd1\xd6\x0fJ\x22\x99~\xae\x8f\x9a~\
+4:p\x90\xa0\x06\xd3oW\x99\x03/\x81\xd9X\x9a\
+\x00\x88\xcc(\xd3\xea\xb5sP)\xe9\x1f\xad\xda~\xcf\
+\xa0\xa8-\x1c\x94r\x0c((\xc4\x9eQW[\x1fo\
+\xaf\xf7yC\xc1`\x10\xb3\x81\x0d\x93\x9aL\x1ci\xab\
+\x98\xb6\x9ai\x98\x09\x04\x18\xda\xab\x0cE D\x99w\
+2>\x8c\xbfo\xe0D\xbaE\x99\xa7\x86\xd7\xa9\xabs\
+\x19r-#j\xe0c\xfb\xc7FN\xb9\xc6\x8e\xd2-\
+\xd6C2\xc4hDP\xa2A \x88\xc0\x1d\x99\x17(\
+\x91\xac\xb3r\xf0\xbd\xbf\xed\xf5IE\xdakBUJ\
+\xd2|Jm\xf7\xb4Na\xc0\x0e\xf7\x0e\xf7Eq\xae\
+\x87e\x88PBD)\x82\x1c>JsplF+\
+\x05\xac\x5ct\x17`\x9e)\xf0F\x1b7\xbe\xdf\xdb\xf6\
+Y\xa0\xe2\x1a9\xd4\x96\xe9\xf9J\x84\xcf\x0b\x1c\x1c\xda\
+\x22F\x0a\xeb\xe5Y\xfd;J\xe3=\x90\x0d<\xc6\xcb\
+\xc5\xd5\xee\x0c\xb8\xab\xc8\xb8\x8bQ\x04\xc5\xb6YE\x81\
+?\xce\x93\xc0\x0d\x01\xb3A\xcb7\x0e\xcc\xa5\x86\x98\xf9\
+\x0f\x08\xd7\xfd\x8c\xa1\x08\xccl\x9d\x0c\xd1\xe1\x00C~\
+\xfe\xa8\xb5wm\x0a\xd6'cr\xfc\xbb0\x1cq\xd4\
+\x8db\xbdsQ\x0a!\xf1K\xc4\xb0\xf8\x1cJ\x8a\xda\
+\xb9\x0cY\xe5\xbc\xd959\xf0\xfdY\x86\xa2\xd4\x06\xc6\
+\x8e\xdaU\xf6'$\x06Fsa\xca\xe8uk\x19\x8a\
+6`\xec\x9fWD8\x03\x88\xb6\xa4\xa3}\x0cEm\
+\xac\xd6\x07~N\x00\xc0\x19\x12\xdao\xc9\xf4\xd3\xe6\xb2\
+\xdb6\xb5\xbb\xeb~j\x08\xe7\xb5\x9b!\xd7\xda\x13\xd0\
+\xa0\xbd\x1d\xa5\x10\xae%p\xb3!\xff\xdc\xd5\xb5\xc9\xf0\
+\xd0\xdf\xdb\x9e_+U\xf8\xb1!\x1c\xef5\x84\xe3\xf7\
+\x0c*\x118-2t\x92&\xc0\x8a\x86p\x1c7\x14\
+\xf6\x83\xe6\xbfg\xfa\xd5\x8d\x81>\xe9\xce 8\xbe?\
+\xce\x1c4_\xc7)\x9d\xd4:\xe4%mjc\xdc.\
+d\x08\xc7\xcb\x0c\xb1\xdbJ@\x0e|\xb4\x97\x1b\xc2\xe7\
+n\xd0o\xd8\x87\xfd\xa7\x9d\xb9\x9d\xa9\x9d)R\xa9?\
+1X{\xd0\xef\x1b\x22\xb3!\x8d\x93\xa8\xcb\xcd\x97\x0c\
+\x99\x12\xdev\x0a\xd0,\xd9.\xd5.\x15\x1d\xe1\xc4x\
+\xa3T\xf7\xff\xe9\xfd\x1b\xa6}\xb0]\xceP\xa8\x8b\xc3\
+\xe8\x82R.\xd1\xe8f\xa3D\xe1\xef\x8e\x17\x83\xe0\x07\
+\xa6V\xa1\xda\xdb\xbf\x8a\xb9\xf0\xdf\xdc\xfe1je\xdc\
+\xabn\x05W\xe5L9]2`\x88\xc1\x94\x88O\xd5\
+\x81\xaa\xf9\xfeN.\xf9q\xfb\x07\xc6\x14\xed\xe0(\x05\
+Cs\xe5\x22C\xd6\xa4\xf0\xc0*\x99f\x05\x8c\xda\xbd\
+\xdb}\xda}\xe2:\x1c\x1d5\xe6A$\xa4\x9f\x9b_\
+{\x80\xd2x\x82\xc1^\xea>g(4i\x08\x98\xeb\
+\xfe\x1b\xbf\xcc\x18f\xc1&K\xaa\xff;\xa7\x12\x22\x18\
+Nv\x17\xed>z\xc9\x9cJ\xa9\x9a\xa3\x0cEm\xba\
+i\xf1\xec\x98EJ\x9d\xaa\x7f\xc2\xf0\xb5\x18\xb0 \xc1\
+\x00\x83\x00\xa6\xe3z\xd2\xe4!A\x80\x16\x8c\x02\xe0\xe1\
+)K\xe3\xbe\xba\x98\x8ctg\xd1>\x8bC\x0cC\xc0\
+\x03\x14*}r&\x22\xa5\x81\x12\xf3s\xca>\x09\x0a\
+J\xeb\x08< \x9eK`\x8b\xf5\x1f\x91a\xba%`\
+g\xd2]A\xa2\xad\xce\x18\x86q){\xd2\x03\x0a\xd8\
+K$n\x08\x80b\xe7h\xfePZ\xe1\xfe\x04v\x1a\
+\xccC\xecN>\x8f\xc4\x1d\xddH\xb4\xffc\x97\xf9\xf8\
+\xe3\xe8\xe3\x97\xe1\xb8\xd6]\xae\xf8\xfcZ\xe4\x8e#\xf6\
+\x1d~\x1d~\x04\xfe\x10v\x04\x81\x82\xaa\x16\xbeY\xd4\
+Ph\x01\xd4\x09\xbe*\xb1\xea\xcc\x09\xfc1\xce\xbb\xd6\
+\x98\xab\xff\xf1\xf3\xc9\xda\xcc\x93\xd9\x97\x18\xb0\xdf/\xfc\
+\x11\xfc\xc1\xba\x14\xbav\xfck\x06C\xed\x97\xd5\x89\xda\
+\xfa|s\xe25\xf9S\xf5\xf1\xb5I\x12\xb1\xf8\xb7u\
+\x80\x80\xd7\x8c+\xf7[~\xcc\xb8G\x06,\xceyG\
+V\x19\x8d\x86\xc9\xf6\x05\xc5\x1f\xc7@\xa2\x1e\xeeP\xf2\
+ \xd7\x91\x9d:BA[\x11\x1c?2\xefd(q\
+8\x09\x18T\x8e\xbd_@]\xcb\xc0\x80d&\xc0\x1b\
+\x8b:\xd4Tw~\x8f\xa6\x00\x19F(\xd5\x88\x99M\
+\x16\xa0\x98mz\x0a\x89S\xf0\x11-\x99L\xfc\x0e\xc3\
+\x0f*)\x9a\x095U\x85\xef\xafksr\xcd\xce<\
+\xd3E\xaa&{ h\x8fC\xc6m-9\xd25\x05\
+\xa5\xee\xa7\x89\xa3\x9bkSR\x8d\xb6jW\x82\x9b\x95\
+j\xab_\xd2\xfc\xa9EC\x18'&4\x0b\x04\x91^\
+\x16F(\xe4\x88Hr\xbd\x5c?\x81\xa0\xdb\xe5x\xa1\
+\xa6\xcc\xf7\x91\xc1\xa6\xaf\xaf\x02Z\x9e\xf1\xc2`\x14\x85\
+\x11j<T`\x0f\xd0pTM\xb4\xdf\x07DCt\
+^\xae\xe2\x8a\x83\x0c\xf5\x8f\x00\x05L\x12\xda)\x8a\xf2\
+\xe9\x11u\xee\x0b\xf3\x9b\xfb\xcex\xd5\x8c\x16\xee\x07?\
+\xd7\xc2\xe2\xfd\xc0/\x8apj+5\x8b\xd4f\x8f\xed\
+\x10\xe1\x062\x91f\xd7\xf2\x90\xa1\xe7\xe3\xc8uQ\xcb\
+\xad\x8d\xd2\x03\x228\xf6\xba\xaf~\xff\x10\xcf\xab\xb5\x14\
+xn1\x80nN5\xe1\x9e\x91\xe0>\x12\xd0\xab\x17\
+:\xe6\x0d\x1b\x16\xeb\x15\xa26\xa2\xea\xba\x96\x04]\x04\
+x\xbe\xd9H\x08\x18\x110\xc1\xa1\xfa\x84!S\x1d\x9b\
+\x9f\x1a\x8a@\x04\xe7\x8f\xa1\xcc\xf5\xd3\xf6\x09M\x07\xee\
+;\xb5xD\xaca\x1a)\x03\x0e\xa5\xde3\x00<_\
+\xd4\x18\xde\x98\x0c\xad0\xdf\xd3x\x8bA\x82\xe3\x14\xc5\
+\xe5\xbeZ\x04b\xbf\xadZ_\x8d\xeb\xb0\x88\xa10\x8c\
+\xe8\x0aA\xbfd6Z\x1c{\x1c~\xc4\x92\xc8x\xb3\
+\x9e\xb0~\xd7\xe2\x97\xca$x\xc0D\x0e\xa5\x8b\x8b\xa9\
+/\xba\x97\xc6\xa0\x9d\xa1\xfb\xe3L\x8acS\xa6\x83\x1a\
+\xde\xb0\xc9&\x91\xa7\xc7\x140P;SWu\xa7\xbf\
+=\xeb\xaa\x9e\xbf\xf6\xc5\xf6\x856\xcc\x8b\xf1\x8d\x026\
+.\xfa\xc4\x07\xb72\xb6\x95\xb2\xeb2\x86\xcf\xc5\x01\x17\
+e\xc6\x02\x86i;[@0\x5cF\x97\x8f~0\xba\
+<g\x8cM\x9b\xdf\xd4\xf9\x87\xeb\x0dy\x1d\x89\x99\x99\
+\x95\x949\xb9\xac\xd0b\x81\xd2z|\xca|\xc5\xab\xf9\
+g\xd6L\x88\xeb\xdc\xca\xe1\xf3\xb7\x0d\xd8\xae\x98\x0fz\
+^\xc8 \xfb\xba\xb3\x87\xfa\x7f+\x93\x85\x06\xc0\xb0\x90\
+J\x04\xf6V\xdb,\xbaIH$o\xec{\x11vL\
+\x0c\x12T\xfbE\xc5\x1eN7\x14\x14\xf15S\xffy\
+\x0c\xad\xf6\x94\x80p\xdd\xdd\x0f\x0cY\xebb80\xc0\
+\x02T\x8f\x06\xd8\xb8}#\xe0\x1c\x05\x98\xe6,\xda\x9e\
+)\xf3M\x80\xc5\xa9\xf5\xa2,\xe28{\xed\xb3\xda\xf3\
+5\x9fN\xddD\xa0\xfa#\xae\xd8\x7f\xde\x10\xfe~\x1f\
+C\xf1<*\x90\xd0\x1en\xc8\xf3\x7f\xd4\x18\x0a\x07\x12\
+\xa6\x12]N\xd8\xf7\xd9\x87$\xc6\xd4]b\x08\xc7\xf3\
+\xbb\x0b:\xcb\xc0\xbf\xd3\x10\xbe\xff\xb3\x86\xd8\xee. \
+\xb7\x9b\xeb\xa7\x19b\x17\x81Yz\xbb\xee9\x0cY\x83\
+!f\xce\xad\x8b\xc3;\x02\x96.J\x8adW!\xce\
+\x18KO\xc2:\xdb\xdf\x13\x10\xd6\xb9\xeeC\x01[\xe7\
+\xc0Qw\x84!w\x01\xe0{a\x04E\xd5\xfb]\xe3\
+\xfa\x145#\xe8b0\xb1\xe9\xc4&\x13\x9b\xc4u\x22\
+\xee{\xb1\xdb\xc2eY\xfc1\x06\x18\xc2:j\xeee\
+t0\xb5\xbeP[N`r4\xd5\x10\xfenVC\
+\x16\xa9#S\xd8~\xc9\xa0\x12\x81\xedD=_?k\
+\xd9\xb8\xc6\x80T\xe6\xfb\x83\x0c\x85\xca\xf9\x0e\x86\xf0w\
+\xb3\x1ab\x1b\xcd=\xda=\xa2\x03\x9c\xc6\x0b\x11_\xad\
+\xdfts\xf0}\x8b\xae\x11\xdfU\xdb5D}\x11e\
+D\x13\x8av\x98\xda\xcf\xd0P\x80\xf1\xd5\x1f\x1cp\x88\
+T\xef\x8d\xd9r\x8c\xa1\xe8\x92A\x89\xdd\xa1\x01\x87\xe5\
+\x00\x87\xb7%\xb4\xf6\x9a\x1b\x16]#\xa0\xe6\xeb9s\
+\x8a\xbd\xb4\x16<\xb0%\x11[\x02P\xce@\x80\xc2\xbd\
+\xaaJ\xf3\xd0\xa0\x81\xfa.\x11\xc0\xf6bC\xd6l\x88\
+a\xd8\xbdsF\xb8\xdb\xcdP\x88\xf2\x22\x96\xa7@C\
+<\xcf\xd9\x0b\x87\x9fRC\xf69\x12R\xec\x8f\x04\xfa\
+)\x11#\x80h\xfb\x8b1a\xbek(\xec\xdc\xcf\x8c\
+}\xd6\x18MCo(\x02(\x1b\x18\xa6k\xcf\x9cD\
+\xbcq\xbc\xd0`B\xa3\xa4\xb6\x97\x1eV\xa6\x1aq8\
+\xb5\x15\xec\x7fk\xc8\x0c:\xda\x9e:\xc3C\x22\x9e\xf8\
+\x1f\x9e\x18\x82\xa9\xc3\xbe\x8e\xc3\x8e\xd8\xb9J;\xfd\xf3\
+P\xf1'\xd0\xa3\x00\x09\xeb\xab3G\xb1?\x18O\x8e\
+\xd8c\x88\xecb\xe7\xf3\x0f\x07\x1a\xa6!v\x12\x8e7\
+\xf6}\xdd\x16\x10\xbf\xa0\xd6\xc8b\x1f\x87\xe1\xac\x04\x9c\
+\xef\xd3\x04P\xea\xb6\xdbUW-\x18\x94\xd8\x7f3$\
+\x0e\xe5\xb75o1d\xfbd\x06G83\xb7\x93\x1d\
+\xc8\x11\xbf\x90.E\x9a70!\xdc.\xa9\xd5\xefy\
+\xdeadR\x8a\xc3\xfb9?\x1c\xf4Z\xcb\x00\xffc\
+\x9e\xc8\x05\xb0\xe3t~H]\xaa\x8e\xf6\x97w\x85\xe0\
+s\xeb\x00@\xed\xf0\xd7\x09\xd9\xc9\x8eu\x895\x84\xee\
+\xceP\xcc\x87\x9aa_k\xa4M\xf2\xf9\xe3\xee\x98r\
+ad0\x19\x18\x1cC\x1c\xb7Q\xd4q\xf6\xcc\xb2g\
+\xdc\x11\xc7\xc3`\xae\xd5!\xc9D#\xaaGFL\x11\
+ \x1f\xa0\xbaOkM\x81\xa8\x1d~\x8eZ\x10\x5cd\
+iC\x19\xfau\xa4\xa7r\x8c}\xa2\xf1s\x1ch\x16\
+ \x8e\xb58F}\xa33u?}O\xae=O7\
+\x9a\x89M\x06\x80\xeb\xa9\xc55\xfe\x17e$G\xb2R\
+\xed?\xed\x99\x08\x5c\xfcG\x0e\xe3\xb3\x95\xaa\xe7\xdf'\
+Q\xa7\xa4\xc6\x84\x9a\xdc'U\x0b\x8f\x03\xcdDb\x9e\
+\x90qxJ\x8e\x15\x94\x1cQ\x91\xa9}\xf6L,\x13\
+\x14*Q]\xd2A\xa4S\x86\x90;X\xb9\x06(]\
+?\x0e\xe7\xd3\xaa\xc5Wd\xdf\x1fpe\x84\x08\xa8\xf8\
+y\x909g>a\xa8?8<4<\x143\xf0q\
+\x03-4&\x92\xe3\xcf\xb8O\xab\x1cR(|d\xee\
+q\x98\xd90q\x10\xd8\xb0\xa8u\x87\xc2\x86\xfa>\xe7\
+M\x06\xbb\xaeQ\xa2\xa6\x15\x8a?\xdfC[<Ev\
+\x9b\x13\x0d\xc5\x82\x02#\x81\xcf#\xc0\xc4\x82HF\x19\
+G\x8e\x05\x81@\x09\x0e\x1a\x81\x01\x182\x1a_W\x87\
+V\x86\xbe9\xcdP8\x94\x9a'\x9e)f\xde\xe0\x88\
+\xcaA\xa4\x96\xde\xdb\xea@y\xc3Pg\xde \x1eH\
+\x9f_~N\x09\x05\xcf/\xf3\x19\x83\x10\xea?*\xfe\
+\xb4)$\xe2O\xe6X\xed\x95\xa85\x8e\xd4\xed;\xb3\
+\xb8\x9b\xb7a\xa4+\x01\x1b\xdb\xc9\x86p\x8c\x9eF8\
+\xdee(T\xeaE\x99k^4\xe4\xc0L\xf3\x98!\
+\xdc\xaeM\x0c9\x03F\xe6\x07\xaa:\x01\x82~\x1fC\
+8\xfe\xc6\x90\xa9~\x8c'm\xfdP\x07\xf6uZ\x14\
+U7,P1\x16S\xc2U\xde)\x09\x91*\xbe?\
+\xcf\x184\xac\x0fZ\x8f\xdc\xa0\xdb/1\x07<p\xc6\
+\xf3B[\x1e\xddO\x0f\xd4\x22z\xa5\xfb\xdd\xdfd\x08\
+\xaf\x7fb\x88\xfbG\x12\xbb\xc3\xb1W\xadzs\xa6\xba\
+\x1dP*\x85\x01\xa3\x8c{\xfb\xf6v\x896\x18*\xe3\
+o7\x84\xe3\xce\x01\xf6\xf3}\x03\xf6)j1i\x0f\
+\xa5\xccu\xb3\xb2\xa1`\x5c\xbcd\x08\xcb\xebE\x86<\
+\x0f\xdc`\xd5\xfa\x04\x93\xc8)\xad\xacct\xcd\x91\x96\
+N\x9c\xaf\x87DG&@\x01\xaf\xaf\xe6u\xc6\xa9\xef\
+j\xe7\x85\xc1j\x92\x8d&\xda\xd8\xfe\xca\x10\x8e\xeb\x1b\
+ri\x02\xfd\xc9\xdb/\x18\xc2\xf9\x9eo\xc8\xea\xe2\xce\
+\x0cQFqxk\xd2X\xa0F\xdb\xcf\x7f&C\xf8\
+\xde\x95\x0c\xc5<U\xa0%:\xea\xaf\xeb\xe7/\x88R\
+o\xea\xfbO\x05X x\x0dC\xc1h\x82\x81\xd1\x1a\
+\x8ayH\xa6{J\xfa>\xcf\xdc\xa1\xae\x7f\x86!\xab\
+\xc0\xf7\x1f7\x14\xedCQ\xb1\x96V\xc8\xf0_C\xc1\
+\x9cP\x80uX\xd9\xf0\x06\xfd\x97\x11\xa9TM\xfb\xf8\
+R\x86p=\xdf2\x14b\xb4\xec\xcf\x9aW\xc3\xbc\xa9\
+\x8d\xa4S\xc3\x158CD\x8f\xf3\x0cn\xf8\xeb}\x18\
+\xa7~I\x83\x02$\x07\xe6\xda\xe3~/\x83\xa8\xda\xe7\
+\x15\x81:\xb5/\xe3y\x8f\xfbU0\xc0\xfb\xff\x06\xfc\
+'\xb7\xdd\x84\xda\x8e\x88_\x7f\x89!\xf7Qw\xb1\xbd\
+\x95\x0d9c<\x5c\x90D\xca\xfa\xfb\xfb{\xfb{\x14\
+\x90y4;.\xb1=\x9d1\x05\xec\xdfDv\xe0i\
+w\x1a\x09\xd5\xe7\xe5.5P\xee\xfb\x85\xfa\x85{\xd3\
+\x0c\xf9\x8b!\xfc\xferC\xf8\xfb\xcd\x0d\xb1\xc4\xe5\x1e\
+\xfb\xbe\xd1\x19\x01\xc1\x01j75\xe4u\x17\xc7\x16\x8a\
+4m\x02q\xec\xe3\xe36d\x86T\xbb\xa8\xa1\xe8\x1a\
+\xa1\xc4\x91;\xd0\xca\x90\xbaA\x0c\xf3\xea!\x95\xe4\xc0\
+0\xd8\xd9\x90\xdbS\x22\xce\x88xn\x7f\xb4!3\x01\
+\xfa\x93\x0d\x85F\x04j\xfc\xe6\xb0n(\xb1\xc1\xf5d\
+/\xfdY]n\x0e\xd2\xfa\xf7\x82\xd4\xfc\x8f\xce\xed\x22\
+\xfd:\x11\x7f\xa3\xb4J\xd4l\x0fHJ\xa3\xc53\xd7\
+\xb4Kc\x7f\xeb\x83\xd5\xda\x17\x1a$\xb4\xd5E+\x88\
+\xb6\xbd\xb6\xbe\x1f^0=d\x1ft\xbb\x07\xecV\x94\
+\xa2\xd0v\x90\x801\x012\x95\x5c\xc5B\xe0\xf9\xa2\xfd\
+6\xd5\xec7g\xae\xa9t\xc9\xdb\xe0\xd25G\x8c\x1c\
+\xd6)\x18\x19\xfd\xf6i\xbd\x1b>\x9a\xba\xf8\xf4\xdb\x1a\
+\x0af\x85\xda\xcaZ\xf8$\x8e\xafT\xf1q\xf0=\x91\
+B\xc9\xde\xff\x8d\x1d\x19`\xf3<\xb5\xe9\xfc\x90!k\
+\xcap\xc4n'\xe0\xe5]\x16$J;<g\x08\x9f\
+\xff\xac\xa1\xb0\x03)\x05\x84R\x8f\xe3\x89\xdd\x043\x93\
+\xc0:\x011\x1csi\x14\xb8v\x92\x18/>\xef\x15\
+(\xf6\xc0\x0a\x22\x7fh\x91H]~X\xcc\x90U\xec\
+y\xed\xdaf04\xc5\xecpF \xf6\xa3\xeci\xb4\
+g<!\x02#\x03\xbb\x10\xbf\x02\xc7\x9f#\xfb;\x01\
+\x11\x12\x06P\xea\xf1\xabp\x9c\xb1\x93a\xde\xd2\x06\x10\
+m\x05\xc6G\x8cZ\xff=\x01\x11\xe6;\x22\x8c$H\
+HH\xb2\xdf\xd6\x0en\x9d\xf0\xad5\xe4j\x06@\xdd\
+\x85\xad>\xce\x16S\xbcY\x1b\xa0.\xe1\x9e\x8cY]\
+9\xea3\xfc\x9b\xec\xf7\xff\xeb\xe7\xf5\xef\xeb\x9f\xd7\x1a\
+v3&\xac\x93_[\xb5\x0f\x1c\xaf3\xd5^+]\
+\xf5\x07\x9d\xe1\x04,^2G\x91)c\x03\xe5D\x18\
+0\x06\xbc\xce\xe0S\x1b%ub\xa7.\xa3\xe6M\xad\
+v\x95\x81\x9b!#\xca\x91\xc8\xc7\xccU;\xc3\x9a\x82\
+\x91E\xe5\xa6\xaf\xd5x\xa36\x88oz\x83\x89RO\
+\xacz\x5c:\x17\xd9K\x8eI\xae\x8dO\x01\x11\xc4\xc4\
+\xf4\x80\xbbX\x1c\x0e*\x81\x93\xbaf\xa3\x0e\xa8\xc0\xa8\
+\xa0M!\xaa\xea/zF>\x8d\x1b\xf7\x81\xfbD\x00\
+\x00\x03\x8d\xc8b%j\x88\xc1\xe3\x01\x1a\x023K\xa6\
+\xee\x10lX&u\x15\x1d\xd4\xc1kYR\xc4\x8e\x8c\
+\x19\xa2x\x9c\x1f}i\xb9\x1e\xc6\x11\x87\xf5o:\xaf\
+g\x14\x09~\xa1\x0a\x04\xa1\xda\xcau\xdc)J\xd3R\
+\x0aL\xec\x956X\x9fGP\x93\x890#rG\xfb\
+\xbd\xb5\x949\xc6q\xe4}\xfc\x9c\xb6\x89\xa2\x5c\xb9\xa8\
+\x14\x8e\x18\xd7\xa3\xe7\xc5\xef\xa7\x16~o\xdf\x87#\xad\
+\x9aZw\xb8\x09\xa8h\xbe\xd3\xe7\xd6\x1dw\xbaoP\
+\x22\x00\xb3\x80\x12\x16\x16f\xd4iq\xbc\x88X\x8b\xaa\
+\xe7\xcc\x08\x19\x0c\x1e\xd1e# @C\xad\xf3\xaf\x92\
+\x16\x82\x7f\x1f\xcc\x82:B\x8f\x18\xa3\xa8\xe9\x1ep\xe1\
+\xf7\x04\xa6\x94\xa9\xf2\xe7G5\xf0\xc3:\x86bc%\
+C\x8f\xe6\x00\x1b\x0b\x7f\xc78q\x7fQ\x89\x97C\xe7\
+\x8e.\x1b\x95\xda\x0fz\x1fh\x02\x07rpa\x00x\
+\xcd\x9c\xd4\xe5}c\x91C\xe0\xed\x94\x08\x04\x10\x10d\
+<(\xb5\xf8N\xca@\x91IG}\x96\xbe\xf6\x88&\
+\xa1a\xd0\xaea(\xa8\x8d\x88=\xfd(\xd5\xb0B\xe9\
+\xed?\xa1>\xd1\x94N0/`\xca\xf0\x9cK\x9c(\
+f\xbe\xf7\xcd\x94Fg\xae\xb0\x1e\xa1\x8a\xaf\x1aN\x9f\
+\xc7\xdc7\xda*\x12\xa8\x92X\x94\xdfg\x9e\x03\x1c\x0e\
+2V\xac?\x18>\xf4m\xa6\x06\x91\xf3\xa7M\xd3\xf1\
+\x11Y\xccT\xaa\xf70\x08\x9a{\x9a{\x9b{s\xe0\
+\x8an\x14\xedj\xed\xaaV{>\xbe\xa1\xa1\xc8\xf8^\
+\x1ep\x994\x18\xfe\x123\x8f\x0bE\x15v[\xe5\x1e\
+\xcf\xed\xe3|\x1e)\xc3\xec\xea\xf2\xb4\xe9:\xdbP\x88\
+\x0c\xc2\xac\xc0\x81\x91\xf8h\x0cSl#\xa6\xc0)\x9a\
+g\x16@x\xde\xa0@P0\x94\xfa\xf7\x1ar\xa6\x80\
+\x0cx\xbbb\xc0\x0a\xe1\xfc\x9f3\x84\xe3|\x86\xa2\xa4\
+GL\x17\xef\xff\x8c\x8a\xf5\xa7R\x09Bp\xf3RW\
+\x0d\x1ca\xdaq\x8a\xf9\x13\xdb\xa1-\x11\x19.S\x87\
+\xa9\xb9V\xdf\x99\x07\x1a\x87v\x1bCVuw\xc7N\
+\xd4o\x02\xd7\x91\xfa\xbd]d\x94M\x8b\xb5\xdf\x0a \
+!J\x15\x03\x03\xab\xe7\x8c)\xd4v\xaf1\xed|\x9f\
+NL&=\x7f\xd4\xbe\xb3^\xf5\xbf4\x14\xf3v\x8a\
+\xf6\xe7/&\xf1\xc7f\xaeD\xd5l\x0e\x96\xc6\xc3\x7f\
+%V\xc7\xf70\xffN0\x84\xaf=\xdcPdLO\
+0D\xb1\xb9\x80p\xfc\x8f!\x1c\xdfl\x88\x01\xb1\xf8\
+wd\xc4=\x10\xa4}\xcd3\xdb\xcb'f\x83g \
+\xe9\xde@\xfb\xc9\xf5\x22\xc9\xd9\xff.\xb6\xf5[9\xab\
+\xea\xf7\x9b\x05l\x9a\xa9\xe0P\xb2q\xe8\xd1\x12\xe9v\
+2d\xb1J\xd6\x89\xe1\x12e\xf6\xcf\xee\xbe\xd1Y\x17\
+\x8fm\x0d\xe1\xef\xf6M\xa2\x85Q\x84\xd4^?f\x08\
+G\xfb\xd7\xe5u\xae;+ \xcc\xf3~\xa7\x80\x0fg\
+\xa6\x883V\x148\xed\xcf5\xa8\xcd\xdezYkd\
+\xb4\xb0!\x8c\xdb\xc7\xdaC[\xeb\x8a\xf0\xb4A5\xf7\
+\xafd\xe6\x00\xf3\x8b\xcf\xf5\xc0\xe6\x16\x86\x5c\x92\xe6m\
+-\xa5\x95\xd2\xbf`\x88\x81\xd66\x06ZQ\xbd\xc7N\
+!\xd3.\xd1\xb3\xfeSj\xe3\xd8\xa8\xc2\x11;V\x81\
+PJ\xbb\x5c$\x15\xaa=\xda(\x0a\xa8:\xe5\x1dG\
+\x04M!e\xc8#\xd5\xfe\xa8b~By7\xe6\xc0\
+\xea\x99\xd2\xed\x19g\xf5\xb7'c:\xccm(\x1cp\
+\xbaT,j(J\x0eY\x8f\xb1\xbfd\xef6\x07(\
+\x90\xfe\x9d\xc4\x00\xf3\x0c\xbc1\x19,\x00\xf2C\xb5W\
+T\x09Z\xbb\x85!k\x0d\xc4\xedm(J\xc4\xee4\
+\x14\xb5\xdeWFd;\x8b6\x8a\x16\xe0:\xa8`\x22\
+\xc8\xf1\xa4\xc4`\xec\xf3\x11\xb9K\x8d\xba!\xb4\xf3\x18\
+\xe2\xf5-\x12\xafo\xa9\xa8o\xef\xeb,\xe2\x87\xfd\x89\
+\xa9]\xa5\x97\x9c\xc9\x01\x1f\x9e\x95j\xfaU\xaa]W\
+\xe0\x91D\x8f\xaf\x8f\xac+\x042\xd5\x85\xa69\xb99\
+\xc5\xd6g\xf612\xfb\x04>\xfa=\x0c\xd9\xdf\xb0^\
+bMYj\xcc\xe7\xab\xbb\x8e\x8b\xd0\xa2)$F\xa9\
+\x078\xd1\x10\x12\xa5\xdfK3(\x19\x90C\xea\xf6\x0f\
+\xfb\xac\x02Xq\xf5\xde\xb1\xf8~\xf6M\x1c_\xf6q\
+\xba\x07\xf0{\x12\xb8\xd8%\x04\x08\xb4\xafz\x17\x02\x02\
+J$\xb4\xe8vA\x97\x229\xea\xbe\x7fK\x03\xc8\xfd\
+2\x12I$`j\x8d\x084\x04\x98\xc7\xfc\x5c\x09\xaa\
+\xe1g\x86\xc2\xf1g\xdei\xfd\xf1\xd2M\xba[\xf1\x1c\
+2N\xf8\x0f\x1a\x0f\xba:x \x8d\xe7\x06\xff\x15?\
+\x0e\xc7\xbd\xce\xc4\xd7\x14|\xc6\xb9\x165\x9f\x8c\xaa?\
+\xcd\xb5\xd2\xa6\xd7\xb0\xab\xb5\xecf\x14eO\x7fWk\
+\xa4M\x96\xe8\xee&\xd1p\xab\x03!\x5c'\xfe\xd5\x8c\
+b\xeb\xf18\xee\x8e-T\x92\x97\x0d\x99\xba1]\x84\
+\xa1)\x06\x12\x8a\x09\x14\xddRto\x5c\xbf\x9f\xafX\
+\x80\xb9\x00n\x1c\xff\xa8I\xc1A\xc5\xb0\xae\xfb\xb0\x93\
+\x19\x82\x8aQS,r&\x9e\x0c\xfd\x1b\xd6^x\xc4\
+\x12jN\x9d\xc1G\xa5\x15\x15p\x1c\xb5Z\xbc\xb0\xbe\
+1\x04&^\xf5\xda\x8b\xe9K \xb8\xa15\xc5\x99\x00\
+\xc7s\x1a\xc7\xac\xfe\x98(\xf7d\xe4\x11\x85\xc3!\x82\
+\xb2\x22\x86\x01\xb5\xc9\xde>\x11J\xfa\x8aZ\xc0\xd9\xc0\
+d\x80z\xed=\x13\x87\xf3\xe7\xc1\xa85\x11\x88\xdc\xf1\
+\xbd\xd6\xa5\xe0\x95\x98Q\x8a5\x81\x18V\x1e\xe8\xa0f\
+\x866*\xbc\xe6\xfcq8\x98G\x1cs7\x89D\x91\
+g\xfe\xe0\xb8\xa39A\x84r\x09\x1di\xe3&\x83\x10\
+\x03\xd83\xf2\x8c\x07\x8e>\x22\x8d,h\xbc\xa6\x1d\xe6\
+r\xca\x80\xbfW\x0e<\x7f\xc7\xf3B$\x15\x07\x97\xeb\
+\xa1v\x9d\x08>5\xe6\xa8\xe4\x13Y\xaf\x98'\x1e \
+\x115\xdf\x19\x05r\x04\x9cQ\xa0\xfe\xae\xdeF\x8d\xe7\
+\xa4\x0e q\x1f\xc9\xe0\xb2\x80r\x1f\xb5\xe0z\xa0\x07\
+\xa6\x01\xf7\x89#\xcf?\xcc\x15\xfa\x0b\xd3\xee\x07\xf5\xdb\
+\xcb#\xdc\xc0p\x07\x8b6|\xba\xae\xd8F\xc9\xday\
+\xcdn\xc8\x99I\xcf\x5cH|\xc7\x1d|\x1c!9\xaa\
+\xb4S\x22\x80@&~\xec\xea\x88\x5c\xda \x0d\x04\xd4\
+\xe5\xd1\x0e@m\xdf)p\xac\x07lD\x18\xa2t]\
+@+\x81\xeb\xdeG\x94k\x02\xb0R\xf3\xf7\x9aV~\
+\xae\xf53R\xa4\xbfQ8\xfe\x88\x01\x12\x98\xd1x`\
+\xc8D\xe6\xb9\xd5\xc0\xafm(2\x01\xcb\xa5\x1aoo\
+kC;Cj2i\x07HM\xb36z\xef\xf2p\
+\xbc2\xb1\xe7$\xc7\xc3k\xb0\x09\x5c\x10p\x92!\xe1\
+\xf3\x91\x8c\xa8\x0cc\x1c\x02\xef\x0bM\x06C\x14dT\
+\x8f\xa1\xf6\xfa\xfe \xc3\x09\xc3\xb79\xd2P\xa89\xcb\
+\xe1o\x7ff\x88\x01\xad(\xea4\xf6\xb5\xf4\x9c\x90\x09\
+lO7\x84a8.\xe0\xd8\x1c\xb8\x8a*\xdf[\xaa\
+6\xf34\x05tN\xcd\xea\xfc\xed:\x01\xeb\xca\xf19\
+2\xb7\xc1\xc3!h\xd74d&\x84k\x07@\xc1\xa5\
+o1\x19A\x95\x1e\x09@\xf0\x00\x00 \x00IDA\
+T^\xb8\xa3oOa\xd1\x05c\xd8\xc8\x90\x03\x11Q\
+u\xfd\xeaBk\xc7\x1c\x90\xa99\xe0\x1e?\xa7\xa8\xbd\
+\xf7\x8c\xf7\xf1I\xf4\xcb3\x9e{\x1b\x0a\x0d\x03=G\
+\xd4\x1e\xb7/\x1abF=\xce\xffHU>\xb40\xf4\
+\xa9\xe1~(1\xa0\xfc\xf3\xd61\xe4\xf9\xd5^d(\
+\x18{\xca\x94\x0d\x87\x18rF\x0a\xca1\x99\xc1\xc8\xec\
+\xfbC!\xa6%j\xbd\x97F\xac\x93\x98*\xfc\xde\x0d\
+o\xd6y\xf6#\x18O*\x1dr\xea\xb1J#\xbc}\
+\x9a\xc4\x17\xdd\x90\xc51\x11\x13\x10\xa6\x85I\xc1\x99\x18\
+\x1c\x22Q\xedF\x86B\xd5\x9e.\x03j\xc3\xd7\xfe\xa5\
+}\xb2}2\xd7\x06\x0f{\x18\xc2\xef\xe71\xc4n\x00\
+\x0f\xf6\xf6\xbc\x1ej(\xba\x90Pr\xa5\x00\x0b}\xec\
+\x11\xcf\x8b\xcf\xe5\xb5\xb9\x1f{\xbf\x96!\xdb]\xfdz\
+\x86\xfc\xb9\xfd\x0a\x06\x05\x0a\xacf\xfb\xb4\xd46\xb0{\
+\xaf!\xbc>\xc5\x10\xcc\x8aE\x0c\xb1\x8dg@\xf8\xfd\
+\xdf\xbb\xa7;s\xc4\x977\x84\xe3'S\x00\xb1\x7f\xa7\
+A\xf7\xd3\x18\x05\xb3\x07\xccV8,\x16\xc8:M\x0e\
+\xdd!\x85\xc3\xa9\x00Y\xff\xa6\x80`\x0f\xb4\xe7\x19\xc2\
+\xeb+\x0c\xe1\xf5\x1f\x0d\x85(\xe4\x8b\xd2>P{\xd1\
+\xd1\xa5\x86\x22\xb3J)\x884\x01\xccm7\xc7\xbdY\
+A\xda\x03\xdfn\xbf\xd3\x86\xf9\xd1~>1]\x9ai\
+\xaa-\xd7:O\x97\x1a\xc4\xf5\x10m\x0c{Q\x0c\xd4\
+3\xbe0\xa3\x9c\xe2\xac.Q\xee\xe8\x18\xef\xea@\x05\
+\xa8?#m\x91s\x94Q\xdeF\x99\xe2\x93sil\
+\xcc;\x1f\x19\x03?\x01\xb2\xbbn/\x02\x07\x04\x8c(\
+U!\xf0\x8d\xe1\x8e\x88\x9a\xe6!%\x11>.\x04\x0a\
+\xa41\x01\x93m\x86.BR\xc9'\xd0\xebmo\xc5\
+D\xf3\x84\x04\xf3\x17F\xd2\xa7\x0d\x991\x13\x99\x13\xc1\
+\x9e\xed~l\x10\xc3\xe1]Q\xeb$\x05P\xd6\x1a[\
+\xdb\xec'\xb7\xef\x9f\x8a)\x9a\xb1\xe6\x01\x93o\x8c\x01\
+\xee)\x16\xe0\x0ekn\x5cw\x9d\xc1\xa7\x12B\x02\xaa\
+..\xab\xc0\xaf\x8b\xb4\xde\x9e\x9eW\xc6\x13\x11a\x1c\
+9J\x09\xc2\x1e\x92\xec\x0fi\xee\x0c\xbb\xa7\xe71\xac\
+\x05I\xabDv\xb2\x97>\x11\x98\xdeLZ\x0b\xea\x22\
+S\xb7k\xf3Rd\x12\x1fjs\xccz\xc8\xbe\x86\x1d\
+\xe9\xa5&\xec\x0bu\xdbl\xec:DZ\xf5\x5cG\x89\
+\xc5\xcf\x15b\xe40\xec\xe4\xc8\xfb|\x81!b\xd6\xdc\
+\x0bJ\xf4\xacZtu\xaa\x12!^\xba\xac\x80\x95S\
+\xfaI\xe0`\x0f\xca\xaf\x80\xa9\xcd|q?\x84\xf7a\
+Or\x9e\x04\xeaI4\x11\x88\xaak\xde+\x91L/\
+I\xd0\xfa\xed\x81\x8c\xba\xcd\x1f\x89'\xb4\x17(UC\
+\xdb\x03\x11N\x02\x08\x04\x14\x080\xb0/\xa3a\xc4\xef\
+k\x11\xc0\xfaX'X\xeb\xd7U\x97/?\xd6m\x07\
+kG\xbev\xf8_\xfb\x1f\xe2\xe9\xf5\xb1>\x8f\xda\x7f\
+\x9c,0Pk\x05\xd4\x1ao5s@\xfb\xfc\xb8;\
+\xb45\xa5\xa1\xae\x99\xb7\xe1\xf8w\xd5\x9e\xa0\xe8[\xe8\
+\x19mS\xeb\xddU\x8e\xf2\xf0\x06\x22\x0aD\xca\xb90\
+\x1c j\x9a\xa9=F\xe5\x1cF\x02\x91.\x0c\x05&\
+*\x0b\x22\x8e%\x01\x82\xc9\xd4\x18'\xcb\xe0\xd7\x03V\
+\xb7\xb5\x9b\xac\x1b\x01\x0f0\xd4D\xc4t\xf8\xbc)U\
+\xbb\x8aZS\x80\x7f\xafi\xe2\xbc\xec\x01\x81\xe9' \
+\x19{\xae\xb7\xae\xb1g\xc2\x22*\xc2y\x12\x99\xab\xba\
+88E\x9eL2m\xf1x\xd0\x09\x08\xe9\xc1\x22C\
+\xe9\xe3K\xe6\x9a\x8dm\xe6*\x10C \x07G\x98\xcc\
+.\x8er\x9d\x91G\x03`59\xd0dpQ\xf9\x94\
+\x01\x12\x9c\xbb\xf4w+\xc8aY_j\xaf\x1f\x96\xc3\
+(J\xb7\xd7*\x110 \xa3YwO\xa8\x19\x12P\
+\x8c\x11y\xe4\xfdDl\x11y\xa1\x04\xa0n\x87\xc2\x02\
+\xc7sS\xab\xf0\xe3\x90\xb3\x00\xe2\xb0\xc9Pv\xc7\x13\
+\x07\x9e\x0c/\x01\x92\xba\xdd\x0a\x9a\x12\x94N\xd4]\x22\
+\xe8^\x81(!b\x89\xb43\x84\xb2\xaf\x8d\xcf\xdb\x06\
+\xb2\xf1\xe1\xf8\xb3 \xf1\xbccP!\xf6\x86\xb8\x10\x1b\
+\xa5(r\x9e1V\xdfo\xa7\x86\x11Q\xe69\xe1\xf9\
+\xe6z\x99G\x04^`P\xd0\xdf^b~8\xee\xee\
+P\x12\x99\x86J)\x8a\xb5\x8b\xe8QzDw\x0de\
+\xa0\xbd\x06\x10\x03\xe1\xec\x88\x9c\xe9\x86\xb9A\x9b2\x02\
+\x97\x95x\x22]C|\xfc(\xf1 3B\x0d+\x8d\
+\xa8\x11c\x92\xa1C;1\xa7\x02J5\xd8\x19\x0e'\
+F\xe4\xefe]@D\x91\xe7^\x06\x01\xb5\xd7N\x8d\
+\xc6p\xb1|\xd5\x07\x8b\xc0\x1d\x01\x146`9\xb8.\
+\xc2C\xe9\x06\x19b\x98$j7\xe6\xfb\x87j\x10\xbd\
+\xc6\x12\xb1@4\x06\x94\x11\x22\xf3\xde^i(j\xe9\
+\xe4\x186\x87(\xa3\x84\xa1c\xfc \xcb\xcc\x9e\xd5\x9c\
+\xd9\x9c\x95\xdbrE\x0d\x88\xa5\xd5\xe7\xfb\x80\x9cqi\
+/4(p\xf6^\xd5\xbe\xee\x97\x19\x19.\xc6\xf8E\
+CA\x0d\xa5\xdd\xa02\xbc\xde\xb6\xed\xb3\x86\xf0\xb93\
+%\x91\xb3vkC8\xdeo\xc8\x01,\x02\x09\xed\x13\
+\xed\x13\xd6\xe7\xda\x9ev3\xc0#\x83:\xac\x93\xed\x8e\
+\x01;(\xd0pB\xd1~\xac\x8b\xdc\xb1L\xdd?\xd2\
+\x10\xe7}\x9c\x1fP\xb7=c\x88\xfa3L0\x8dw\
+\xffmC\xbc\xbf\xa9\xab\xc4~\xc9A\x08fy\x12\xb5\
+<#\xd5\xa6\xf6\xef1\xe4y\xe3q\xfeCS&\xd7\
+\xc5Z_0\x14\x19lQ\xd0Yg\xa2\xc1n\xe2n\
+\x97\x19\xe4\x00\x1c]\x04\x90\xa1tJ\xab\x84\x12\xa8a\
+v\x054TS\x1e\xfb\xdb\x9bC\xbdM\xd2@@{\
+\x81L \xf3\x0f\x11?\x98o\xed\xc8P\x94P\xec\x9e\
+2\xa1\xed!\x86\xc2!PW\x0cW\xb7\xff\xb8!<\
+F\x7f2\x84\xe1\xbf\xcd\x10~\xffWC\x0c\xd0\xc4.\
+\x2284\xb4I\xc3\x91\x1e>\x9d\xda\x1e:\xd3\x8d\x12\
+(\xa8\xbf\x94\x16\xa9\x9b\x81\x07\x0a\xd5\x8d\x84\x0c\x18\xeb\
+X\xbf\x88!\x06\x16\x02\x8an\x07\xdb\x1b\xd4\xde\xee\x89\
+\xac\xe6\xdf_n\x08\xbf\x9ff\xc8]<\x9cj}p\
+\x12=\x8d\xab\xe6f\xea\xf3n\x22\x80\x9f3\xe8{\x1e\
+TI\xd7\xf7\x8b\x04\x97\xd6\xb1\xf6\xf8\x80\x13T\xaa\xb0\
+\x932\x88k*\x807WfJ\xb4w\x1b\x14\xe8\xb0\
+\xd7\xefJ%+\xe1\xde';\x0d\x86\x18mt\xa5\x15\
+\xd3\x9fh\x08\xc7\xa5\x0cQ;a\xf6~\xf6\xa2\xf4\xe9\
+\x99\xd4u\xa0\xb9'1\xa9\xdao\x1b\xc2\xeb{\xc5\x08\
+\x22`+\xe6\x1b\xdd\x05|?]1i\x04\xf4\xfb\x1a\
+r`\x92\xbe\xf6.\xda\x8a#\x04\x93\x05\xca7\x1a:\
+\xb6j\x96\xa5s$\xa4\xea\x9a}\xfaz\xa3\xd6\xfeV\
+C\x161& \xe8L\x22\x95,\xf8s\xbb\xbd\xa1\x08\
+hp\x1e\x0a\xd8\xf7\xd7\xf7\xd7\xf5Ids?\x13\xd9\
+\x1c\xce2\x14\xe2q\x94\x02\xe2(i\xbd\x8f\xeb\xdc\x9e\
+a\xfc\x0e\x0c8 ?\xa7n\x87i\xff\x1d\xedaP\
+`\xf0\xe1\x22p\xb4\x91\xa1\x10/T\xa6\xde\xb5\x8f\xd0\
+\x008\xbc\xf9\xb8i\xd54\xf7\x19\x0a\x91M\x1c\xe1\xf1\
+!\xed\x0f\xc1}\xb7R\x08\x17\xa55\xb7\xf0_\xd1~\
+~-\x8a12nh5\x1dd\x88\x0c\x80g\xadm\
+\xaa\xef\xaf\xeaVA\x86\xd8_\x13\x98\xc1\x1f\xc1\xc1\xc7\
+\xef\xa0= ]\x9a~n(4\x99Hhh\xff\x1f\
+66\x14\xf3\x8d\x84\x84\x18x\xde.\x19\xfb\x1a;P\
+\x8e\xb9g\xa4%&\xe8v:m79\x8f7\x1bb\
+@#}\xcf\x8d\xb2W$\xee\xea\xfb>\x01%\xecI\
+\xbe\x8f\xf3& \xaf\x84\x17\x09\x86\x19\xfa\xcc\x93\xd8\xc4\
+.@\xdc\x95R\x02\xfe\x0e{\xac\xf67p\xe8a\x88\
+\xe0/b\x07I\x04q\xb8\xc1P\xd8\xaf\xf8\x83\xec\xeb\
+\xd8\xc3\xcc\xdb\xba\x0b\x00%\x0a\x04\x22\x10\xd7e\x5c)\
+yU\xc9\xa6;\xd00=\xf9{\xfcV\xecY\xee\x03\
+G\x98\xd9\x0a\xf0\xbbF\x13\xd7\xc9\x91\xf3\x22\xd0A\x9b\
+T\x02\x19u\xd7\xb2\xfa8\x19c`\xc6Dr\x1a\x07\
+^O\x16P\x98\xecX\x7fn\xcdd\xd0s\xdf\xc6\xb7\
+\xff\xa7\xb8q\xf4\xef\xc5\x81\xa3\xe6\x9f\x13\xe2\x86C\x1d\
+\xe6\xc6\xe0hZe\xc8\xa3\xc5\xef\xd9\x18\x8d@\xf3\x8d\
+\x22\xf2\xc5\x89\xaa\xf6\xc7\x0dk\x1c\x1bMX\x1ed\xff\
+~\x1c{\x1c6\xa8.D\xa6jM\x83:\x100e\
+\xfa\x9a\xf2\x19J\x088r~D|\xea\xc8L\xdd\xee\
+\xb0\xce\xf0\xe7\xbe\x97\xe9zf\xf6~\x951\x00\xe0\x0e\
+\xd3\xdc\x95\xba?\x0f\xdc[\xaa.\x03P\xa4q\x8cy\
+\x80Y\x90\x10A\x93%g\x84O\xa3|\xfa\xc4\xc5@\
+\xc7\x81\x9cW\xe3D\xd7\x022\xe9U-\x8f/\xa0D\
+\x04q\xe8q\x14e\xc8\x07##9h[\xa7\xda]\
+Woga\xe3\xbap\xf4p\xfc\x97n\xde\x11\xfbg\
+\xd7\x19t\x8e\x04|r\x89E\x1aW\xc6c\x19e\xe0\
+\x17\xd0\x02^E\xf4\xbcO&\xf7'\x07z\xd2\xb1\xbe\
+\xffuM\x0d\x0fn%:2CI\x8b\x162\xef\x0b\
+J\xa6]\x99w\x8fh\x92\xe1C\xe4\x8b\x05\x8c\x0d\xea\
+\xe6\x88\xbc B\x8d\x82\xfa\xc4\x82\xcd\x82\xceF\x00s\
+\x82R\x01\x98\x02\x94\x22\xc0l\xc0\xf1\xadKi\xb8\xfe\
+\xccHI\x0b%\x0e;\xf3\x89\x85\x16C\x97\xf66\xaa\
+\x95\xf5\x8d\x12J\x1a\x0b,\x81\x11\x9e\x17JC\xe4\x10\
+\xd0\xfe\x8d\x1aB/\xb1\xd0\xfa\xe0\x0e?b\x8a0;\
+\xd0\xaa\xa0\x1d\xd8\xe7\x0c\x05\x95\xfbtC!\xfa\x87\x03\
+*J\x9c/\xdcP\xfdU3J\x86\xd1U\xcaE\x1d\
+o\xae4d\xb15kbe\x99\x10\xa7\xb6\x91!\xad\
+j\xac\xfb\xa9\x86L\xc1\xc6\xd0\xa7/:\x99<\xab(\
+\xb6\x9abj\xce\x11\x15\xf4\xf9S\xcfS\xd4\x8d\x95\xd1\
+\x82\x02\x8e\x9a3}\xbe\x9d\x82\xc8z0\x12sH\x99\
+`j?]%\x19\xc7\x1e*\xe6\xb7RM\xb1\x8b\xec\
+\xb0\x0f\xd4Z1d\xaeQ\xd5V\x8d\xb3\xf7\xfb\xc61\
+W\x0d)\xfd\x97\x09(\xb9\xa8\xa12aQrvf\
+\xad\x1b\xab\x14\x99\xf0\xcd\x026\xcd\xeb\x00b\x89\xfe\x1c\
+\x90)4j\xa3i-\xdc`(D\xee>\x90\xfa\x8c\
+C\x11\xb7U\xc8\xd6!oK\xf8mC\xee\x97\xee\x8c\
+\x12\xbd\xa6\xdd\x1d\x14\xc9\xf6L\x83J\x8b\x96M?7\
+5s2\xa5\xedO\x0c\xeaW}\xa1JB\xac\xff\xf6\
+u\x06\xd5\xca\xfe\xb0\xd0\xb0\xe19\x223B@\x87\xfb\
+\xa96\x86Pu\x11\xd7u\x0a\xa5\xf6]\xba[x\x89\
+\x95J\xa2\xbc\xb6\x1d\x87C\x06\xb9\xcf#9\xd8\x88\xb3\
+E\xea\xf7\xbaE)\xc7R\xe9\xf9\xa5\x1b\x01\xebW,\
+\x91\xd8#\x07\x1a\xdd\x01\x92X\x96\xf7-W\x0d6\xed\
+\xe1&\x0e\x98\xd8\x7fb\xffp<\xd8\x10\x8e?\x9b\xb8\
+q\xe2F\x89\xe2Y\x0d\xfb\xbf\x0da9\xde\xdb\x10^\
+\x9fm\xc8T\xf2\x81\xc0#L$\xbe\x8f\xf6vjw\
+\xd8\xfe\xc9\x90\x1d\xca(Y\xd0\x14\x81\x9d\xf7\x19R\x00\
+\xa7}\x22\xb6\xa1\x0bP_\xf9/e\xc6\x88gze\
+\x00\xf6\xb7\x18\xf2\xf9zm\xb9\x02-\x91\xb1\xb1o.\
+5b~\xb57\x1a2\xc5\x98\xe7\xd4\xcd\x91Y\x0d\xe1\
+\xd8\x19\xc2q~C8^c\x08\xc7\xab\x0d\xb1\x8bA\
+R'\xd7\xfe\xea\xa5hZ\xe7\xdbs\x0c\xf9:\xc6\xb7\
+3\xa8\x04i\xf5\xaceB\xd7\x86\xd7?i\x08\xdb\xc3\
+\x02\x01\xc1\xfe\xe8\xae\x0d\xb8F\x81\xb6\x03\x8b\xc0\xc3!\
+\x86p\xbf6\x08\x08\xf3q\xe2\xd1\x80\xb0\xceM\xbba\
+\xda\xf5\xd3\xc2\xe7L\xbbo\xda\xbd\xd3\x82]8m5\
+Cx\xff\x92\x86\x82\xba}\xbb\xf6C\x05Ba\x80\xf5\
+\x8f\x1b\xe2\xfa\xb8K\xbfK\xf8\xbb9\xbb9\xba`\xcf\
+uo2\x84\x9f\x7f\xc1\x90\xcf\xb7\x9b\xa9\x9b\xd2\x05\xbb\
+\xae\xbb\xc1\x10>g\xe6T{O\xe9\x1e\x14\xf28/\
+\x9f(4\x05`\xd6\xc1\x08\xc5\xc0\xd7\xf3\xe2mj\xef\
+0\x84\xe3\x84!\xff]l\xdb\xfa\x8b\x1c\xb8\x87I\x81\
+\xc3\x8ax%%@\xdcG\x1c\xcb~6C\xd1\xfdA\
+Z\x12\x91\x19\x12\xec\xb9~+C\x0c\x04_d\x81`\
+D }\x9d\xdcP5\xf3t\x99`]\xa6-\xecN\
+\x86\xbc\xefz\xe6\xfd\xbb\x86\xac\x81\xe2mL\xc5$k\
+\xcf2\x84\xf9r\xb7!\xbc~\xd9\x90\x19OP\xf0\xfb\
+\xa7\x0c\xd2\x16\xd8=\x1c?o\x08\xc7k4_\x10%\
+\x0c\xee_\xd4V\xf8c\xff\xa7\xfeO1\xb0\xb0\xb1\x05\
+\x16\xfai\xfdD\x14\xd141\xc6#\xd4\xa5\xe1\x07q\
+\xbfK%6\x94x<\x95\xd6\x11\x0f\x80\xdd\xab\xe7\x8c\
+\xfb\xfa\x92J\xb2p\x84\xe9\x82B\xe0\x07\x916\xec2\
+\x12\x0c$\x86HD*\xe0\xe0]f\xd8W\x14\xd0$\
+!fJ\x06Q\xcb@\xeb\xa3w\x07`\xdca\x0a\x92\
+\x80\xc2\x01e\xbdV\xe0\x88\x92=J7\x87\x83\x92\xd6\
+\x11\x81\x16S80\x8d\x03\xb7\xd7\xb0\x93\xf9\x1e\xe6/\
+\xa5,uW\xb2\xcc\x94\x9d\xbe\xbb\x0f\x81,\xfc\x0c\x8e\
+\xb5\xd6\x19\xccG\x18\xd1$0\xf9\x1c>\x17\x06-\xcc\
+-^\xe3\xa7p\xde\xd8i\x94X\xe0\x8fp>\xf8u\
+\xecW\xf8o\xf8U$Da\x00`?\xe3\xb0\xd7m\
+\x0c\xf5\x1a\x91g\x0f8\xd4\x81\x00\x18\xb4\x1c-,\xf5\
+l\xf1}\xf8\x7f\xbc\x9f\xbf\xafE\xeak1\xf5\xdc\xee\
+\xfd\x8dK\x09\xfe\x17\x85\x1f;\xaf.M\xe0s\xeb\x80\
+\x01G\xce\xa3\xee\x0aP\x95\x22\x8c\xc7\x88\xd9\x0a\x8a\x84\
+\x95\x8e9\x13\x08\xea?'X\x0f\x80\x99\xf5\xcf\xe8\xf7\
+}\xacI\x0b(\x0c\xc3%U\xebc\x86\xd6\xf12\xdc\
+\xd7.D4\xa0\x08\x13\x11B\x5c\xa2\xd6\x12\xe0\x01b\
+ \xab\xbe\x92\xeeh\xae&q\x8cz\x22s\xfe\x0cL\
+\x9dY\xe7\xa8\x07\x86\x1aO\xa7:\xe3\x18s\xfd/V\
+\x0e\xe0\xcb\x15\xc5d\xb2\xb6\x0c\x88\xf4q>YD\x83\
+6\x83\xc9\x91E4M\x11O\xcf\xac\xf2\x80\xb1a\x89\
+\xd2\xd3\xf0 \xce\xed\x0c\x81t\xdd\x04\x08\xf8{\xc4\xdb\
+VU\xe6\x1f\x87\x91\x0c+\xf7\x85\x9ao\x16\x16\x1c\xf1\
+\xeas<\xf0\xc0\xf9@M[S\x94r\xa8\xc5\x18\xe6\
+u{D\x16\x12\x8eKj\x1eP{\x0eu\x7f\x09\xbd\
+\x1f\xa6\xc1d\xd4\x196@\x1cP\x16\x042\x91P\xf6\
+\xa5.>\xe9\xfd\xa2\x84\xa3R#\xf5\x07\x92yE\xc0\
+\x89\x0d\x85\x85\x80\xf9\x84\x03\x0f\xc5\x0c\xed\x04\xf5\x0d\xae\
+K0\x9cB\xad\x8d\x88\xc0\x8bg\xae\x11\xaf\xab\xc7\x8f\
+\xeb~\xa9\xd2~\xa8K \xb8_\x04r8\xc2\xb8A\
+\x83\x80\xfb\x8cA\x84V\x04\x0b.\xf3\x96\xf1\xd1\xf3\xe8\
+\xa2\xa0\xa7\xa4\x9a;\x0f\x10\xa1\x85\xc0\xf7(c\x0f\xf3\
+\xa3y\xcd\x903v\xceTP\xe6\xccE\xfd(\x01\xa0\
+?\xba(\xa6\xd4\x86\xfb\xba\x85\x16\x00\x1b;\xa2Ej\
+\xf3\xe2\xd44\xe6\x0d\xe3&q%/\xd5`\xdda=\
+R\x06\xb6\xf9\x8d\xa1`\xfc\x90A\x87\x19C{@6\
+\xfc\x91!;\xf4P\xf3\xfb)\x86\xac\x1e\xee\x81\x0f6\
+n\x02\x9c\xfc\xe3>H\xed\xd87\x06\xe6\x01\xf3\x8e\x0d\
+\x90\x0d\x9b\xee\x04P\xe4\x10\xcd\x9c9r\x7f\xdc\xf1 \
+#\xee\x01\x5c6p\x02x\x88\x85\xd2F\x91\xf5C\xb5\
+\x90Q\xb3~\xcf<\xdf\x9a]\x0c\x99\xe2O`p\xd8\
+\xd1P\x9c\x87\x98\x181\xf3x|<\x8fXR1\xda\
+\xd7\x10\x8e\xb7\x07\xdc\x11?\xe7\x09\xcb\xa0\xd2\xb6\xaf=\
+\xcaPhz`\xe8\x92)z%\xe0e\x05\x98\x1e\xcf\
+\xed\xc1\xe2(\xfd-\x8a1F\x91\xb2fE\xddG\x02\
+g\xf4\xf9\xa6\xcd\xdc\xef\x0d90\x02c\x80>\xcd^\
+\x1b\xac\x1a^\x17%\xc3!\xbb\xd0\xa0\x00\xc4\x9bs\xdf\
+\xea\xd84o\x9f\x22\x90N\xc9\x94\xc4C\xbd\x14\xe1\xc8\
+T\xb3myg\xcb<S\xe3\xea\xd4\xcf\x8b\x0c\xc5z\
+\xc7~J\xe0@\x99NW\xa7\xa6\x8b\x842\xa2\xedz\
+\x86\xe2\xf9\x13\xc5\x9f\x12\x93~gC,]IL\x82\
+\x93\xd4f\xcf\x9e\x92\x8f\x14Th\xec\x19\xd3\x00X(\
+\x8b\xd5\xe1\x88\xf7\x9b\x18\x8a\xeb=e\xec\xe4\xb1\x93c\
+\xdb\xb8\x98\x09\xa5\xa4\xa1\x99j\x90!\xf6/e0\x0f\
+\xcc\xf6\x85S\xffeg\xb4\x7f1D;#\x89l2\
+?\xf6Hj\xf2.r\xa8uf\xb4\xa0!\x07\x88\xc9\
+X5\xb7\x1ab\x09Klo\xda\x9c\x96\x02\x88\x18\x90\
+h)\xb8\xb8\x9b\x98\x7f\xc3M\x86B\xf4U\x01\x98\xe8\
+\xf8m\xa1Z|k+x\xb5!v\xcfH\x0e\x1b%\
+^\xd2\x04i\xfee(\x1cd=O\xd8\x0d\x1e\x00\x92\
+C\xe3b\x8c\xd7$\xc6P\xbc\x1b\x1f)Db\xcdp\
+\x0f\xe79\xfe\x13\x83\xe6\xc9\xc5\xd2\x14\xf8Ha\xe0\x9b\
+\xe6\xc3ebN\x9d\x95\x03\x0b\xdd}\x86\x5cJ\x12\xd7\
+\xbb\x15\xb3v\x02\x1a\x05\x04\xae\xda\xbd\x0c\xe1\xe7\xcb\x19\
+$\x82\xb8w\x9c\x1f\xb7\xc5v\x87S\xfbG\xfaG\xc2\
+\xf8\x1f::ltX\x5c/\xe3~\x8c\x16\x14Z\x08\
+d\xdc\x87\xef\x1a\xc2\xe7\xdf\xaf\xcc2\xda&\x7f\x92\x03\
+/&\xdb\xf0\x8f\xb4\xef\x04'#1\xc6`^!\x02\
+\xb7\xa35\xaa\x8b\x8e\xd7\xe7\x06S\xfd\x7fK\xc0\xfcY\
+\x143\xbaS\xab\x17\x01O\x02a\xca\xec{)\x8b\x02\
+f.2Yu\x91\xa2\x94\x0eM\x02\xf6\x1d\xda\xa3z\
+\x0d\xb6D_\xdd\xe1\x94C\xe4}\xe2-_|l\x0e\
+\xec\x91\x09\x1ef6\xe4\xf5r\xf8\xa4\xa1\xe8\x96d\xa5\
+\x10'\x89\xa1v\x87\xba\x9e\x5c\x9c\x1d8o\xfbMf\
+^\xcc?\xc4\xe3\xb03\xbc;\xc1\xddc\x7f\x88\xda+\
+\x1a\xe7\xf60C\x0c0mh\x01\xa6\xee[\x86|\x9f\
+lTm\x5c\x9b\xdb\x0c\xb2\xa3^\x8d\x01\xfc\x9db\xfb\
+\xdd\xff\x0b\xeb\xe6\xff\xc5\xf51\x89\xda\xa9\xcdh\xd8\x8b\
+\x93\xda\xbe4N\x86\xef\xa5\xcf\x1b\xbb\x5c\xda3Z\xa7\
+\xe8b\xe2\xeb<\xa2\xbb8\x92r4]\x93\x86@\xb6\
+\xd6a\x98u\xde\xf7}Ae\xa4\x09\xe8A\xb5\xa7\xd4\
+\x08;\x0c\xc7\x141dJ\xa8\xc4\xe4\x83\xb9\x10v\xad\
+\xb4.\xb3\xbec/aga\xffb\x17S\xf3\x8f\x03\
+\x0b#\x93\xfd\x83D\x0b\xe7#\xe6)\x81&g\x22\xe2\
+\x0f\xb1\xdfc\x97\x92(\xc3>\x80\xb1\x89f\x0c\xa50\
+\xd8\xe7\xf8M\x9c'\xf6\x0cG\xaeC\xfb\xbek\x1f\xc0\
+ %1%?\x8e\xc0\xba\xcf;\x1c}\x18\x178\xfa\
+\x9c\x9f\xbe\x07\xe6\xb73E\x09P\xd4\xdar\xfc\xc3\xb1\
+\xc7n\x91\xfd\xef\x81\x9f\xba\x04\x16f\x00\x89\xa9\xda\xa1\
+\x7f!\x95`\xd4%#\xce\x8c\xa3\xc4\x01\xfb\x1e;\x99\
+\xcf\x99$@0\xbcb(\xfe\xae\xa6\xf4cg\xe2_\
+L&6Xk\x18\xb0\xf1b\x0f\xd6\xcc\xe3I\x12\x97\
+\xe3\xb1\xd6em-|W\xc4~\xac];\x91k\xee\
+\xa0^s\xe2\xde'Q\x0bb\xbc\xecg\xb5\xf0\xad]\
+8Z6\xbdW\x12\xa5\xffK\xc5\xc4d\x02\xf1\x1a\xaa\
+\xc6K\x95\xb8\x1b\x8e\x18\x13\x92\x9ak\xfee\x95v\xda\
+\xa3M/\xde\xc7@p\x03\xc8\x941!j\x8a8\x81\
+\x05>\x97.\x078\x22\x9a\xc8Naya\x06\xd1>\
+\x98\x01\xd3\xd7\x9e\xd4\xd4\x0c\xce\xb7v`\xff\xeb\x91\x19\
+\xde\x87\xe3\x99\xcek\xac\x8a\x10q\xbe\xca\xd4\x8c\xb5\xa2\
+\xd0\x93\x11_^\x86\xfb\xf2\x8a\xc4Q\x8b\xbe\xa4\xa1P\
+\x11\xe5A\xa7\xff\xaf2dd\xf8\xfdz\xa1\x92\xcb!\
+\xa0\xed\x94\x1b\xfe,\xc0\xafWm\xe0\xb8\xdf\x04.\xc8\
+\xd8\xc14\xa1\x14\x80\x85\xe0-3\x1c\xd3\x83\xcf|\xa1\
++@\xa6\x0a\xc5\x8cf\xd8\xfe\x13\xe5\x0b\x87\x93L\xb9\
+\xfe\xde\xdb\xd5\xa1\xa5P\xb7\xab\xac#t\xfd$\xd4\x9d\
+:\x03\x9b\x99\x09\xd33\x05\xea\x9a\xa3\x9a\xca\xc3\xdfs\
+\x1e,\xb0\x8c7\xef\xc3\x01eA\x83\x9aL\xbfX\x22\
+\xd3\xfc\x9cR\x1a6,(\xf4|\x1e\x1b\x05\xe3M\x1b\
+K2\x8fh\x0f\xf0w|\x0e\x01\xb0\xbad\x82\xf7\x91\
+1\x81\xaa\x8e\xa3\xc9\xfdc\x83\xc1AG\xa5\x96~\xc2\
+\xea\xb7\xee\xea\xf9\xbb\xa5\xbe\xe1\xd4\xce9\xe5\x5cm\x09\
+=2\xcf\x06\xa9\xdaL\x17?T\xc6\xd6E\xfb`\x5c\
+\xe0\x98\xf3\xfc\xd3\x8e\x10\x87\x1f\xaa2%)8\xfc\xd4\
+\x8c\xa3\xfe/\x87\xcb\x1d\xb4\xa3\x22\xbc=\x1e\x19u\xff\
+=5\xc2:\xe2\x08x\x9fwQ\x0e\x11\xe7\xf2R\x10\
+\x0c\x056\x0c\x98\x06P\xf4\xf9=\x01(6B\xcd\x0b\
+\xd7\x00 \xf0\xc3\xfc\xe4\x1f\xcf'*\xc7\xb4\xf7C4\
+R\x8c\x07\xe6\xf1\xb0\xab\xa1\x08\xe4(\x93\xf4\xff\x09;\
+\x13p]\xc7\xb2\xfd\xaf\xe7y\x97!\x193%dH\
+(3\xf5Q\x88d\xaa\xc8\xf0\x99\x87\x0a\x89\xd4\xa7\x0c\
+Q\x19R\xc8\x98\x22D\x86\x06\x99\xbeJ\xc6\xf0Q\x84\
+\xc8\x9025\x19\x922\xa7\xbdml\xd3~\x9f\xf7\x7f\
+_\xf7s\xfe\xae\xfb^\xd7\xb6\xfe\xed\xeb8\xf6s\xac\
+\xb5\xde\xe1\x19\xee\xe1\x1a\xce\xeb<\xfd\xf9okV\xe6\
+\xbb\x93[\xa1\xab\x8b~1\xf2N\x92\xf5s\xf2\xbf\xe3\
+\xfb\xe7\xd1\x8c\xcc2\x0b\xfe\xfb\x0dR\x9cv\xbb\x9c?\
+i/4\xab\xb8\x1d\x18\x0f 3\x80\x5c\x1b\xe2\xe0\xf0\
+\xaa\xc2\xae\xf5\x06\xee\x0489\xac#;;\x84$\x92\
+a\x9bF\xae\x8d\xd6%\x90kT\x96\xa4\x02@\xe5'\
+\x93\x9b=W\x91\xf4i\x1e\xb6\x0f$\xfbc&IK\
+\x96\x8e'\x9aU\xf7\xc1\x18\x18v\x91\xee\xb4\xb5|\x5c\
+\x9c\xec\x22\xb1K[\xa0w\xa4Y\xe1\x8e\xf0y\xa4q\
+\x8d\x9a\x03r\x8c\xeeh@\x8av\x8eY\xfa\xde\x8b\xcd\
+rE-\xcb}5W\x99\x15D\x83Wh\x04}v\
+r3\x1cS\xadC\xdd\x8f\xba\x1fvi\xdc\xb7G\x99\
+\x95@1\x7f\xeb4\xcd\xd3\xcf+\x91yKE\x9e'\
+\xf5\x10\x10\x00\xce\x9a\xaf\x84\xa8\xf7\x00\x0bR\x0bB\xc3\
+\x1d\xb5\xcd\xa52@\x8f3\x8e\x98 \xd4@\xc3\xdb\x03\
+\xda\xfd\xdb\xfd+\x12>\xd6mZ\xf5\x14p\xcc\xd8\xd4\
+,\xcd\xc3if\xe9|^4+\xac\xfb\xddqfU\
+\xe2\x82\x8a\xf3J}O\xbes)(\xa0\xe8\xce6\xab\
+\x0a;\x96h9\xb5B\xfa\x18\x02 \xdd\xcf\xee\x97f\
+\xe9{N\x1e\x9e2<\xa5\x22\xb7T\x02\x00\xb6l_\
+\x97\x98\xd7\x1fSb\x12\x7fIr\x99\x04\x04\xed<f\
+U\x02\xf3\xa1\xac\xcb\xd3\xef\xd7+\x14\xb2JT\x03r\
+Z\xe7\x84\xa2\xe2\x92[R\x8eI\xf3l\xe9dK\x09\
+\x81c\x10\xfa\x83\x92\xa5\x00j\xf8L\xb2g\xcb\xfcn\
+_2\x93\x9fx\x9dT)*\x99F\x0b\xf7-\xe0\xcf\
+-\x12W)\x80\xfbV!\x05\x1c\xfby\x1fH!\xdf\
+\x08\xb9_F\xf6l\xa8\xcf\xd9\xa3r\xac\xadC\xdfd\
+\xe4V\x1d\xad\x9e{\xe3\x85\xdcj\xe62\xcb\xeb\xed\xf9\
+c\xe7W\x81\xeb\xf4\x9e\xa3\x88\xf1\x92\xa1\xbdV\x91?\
+\xd6\xac\x22\xf1\x93\x0c]~~F\xa2\xbb\xb9Y5^\
+\xb5\x0e\xba\x8a\x06\xcf\xdd\xd8\xcb\xffV\x15\x92H\xc8\xa3\
+v\x22\xc4Is\xbfY%\x8b)\xf2AZ\x22\x1c\x1a\
+\x8d\x9c\xe3\xe9fZo~\xa9\xc0\xfa\x82\xca\xe1Wb\
+\x0fD\x98\x9f\x97z\xbe]NUj/ \xe2\x5c\xc5\
+@\x08E\x7f>\xb4\x9a\xedg\x96U\x1e\x92eD\xc1\
+\xd9\xa3\xea~4757\x9b:\x84_\xd7\xdd\xe9\xbe\
+\xde\x9d\xfe~\xa2Y\x1a\x1f;\x9ae\x95\x8c~>\xcf\
+\x92A\xff\xf6\x9cz2\xb9\xff\xd6\xbe\xb0_\xdfC\xef\
+\xea\x0d\x8b\x88\xad\xff\x8fj={J\x89\x1c\xfcv%\
+\xd4\x5c\xa6\x90\x04\x11\xe4\xac\xe7\x9aU\xfe\x00\xfe\xb1\xfc\
+Z\x90\x18\xbe\xbf\x92\xb8\xe1\xf3A\x0cP\xb1f\x7f\x04\
+\x91\x03\xe2\x89\xd6dZ\x0aY\x87)t\xea<]\xbe\
+T\x1c8.\xd7x\x85Y\xe1\xaa\xf0\xf1\x0e\xe7\x03r\
+\x82\xc4O\xa8\xf8\x90@\x10\xf2\xceY\xfeE6\xec\x05\
+\x01\xd6I\xe2(\x12{\xc8\xf0\xe1/\x10PR\xc0\xc1\
+og\x1c\xe27\xc8O\xf6\x82.\xfe)\x054\xfc>\
+\xf9y\x9e\xc0\x82{\x00\xff\x10\x7f/\x92Y\xf2w\x0a\
+\x97 \x13\xb9\x1e\xfcF\x0a\x0f\xb1\xd5\x9b\x9f92?\
+\xf49\x8c\xf7\x99\x02~\xd6O\xfc)\x0a\x1a\xc4\xb3 \
+o\x89\xebb\xa5=\x22\xc2#2<\x90\xb4\xcf\x94\x10\
+`=+\x85\xe4\x89\xf1\x22\xdf\xf7\x9fz\xf8c\x22 \
+\x92\xd8\xf39\xc4\xb3|\x1e\xe3\x9b\x04\x80\x93\xa9\x1c\x9f\
+\xcc\xd8r\xff\x99\xec\xf1B\xea\x02\xa41\x87)\x0b\x95\
+\xdeC\xef\x1dU%\x18\x99\x89,\x9b\xb5\xa9~\xbfz\
+\xd5\xbbmy\xaeS\xab\x00\x0a\x15\x00\xa0\xad\xb5\xce\xe2\
+\xdc\xaa\xbc/Z\xf58j`\xf9\xc6\x18\xf5\xe6G\xa1\
+7\x85\x81D\xe0\xc3\x03 C\xc5\x83\xa7G\x99\xc0)\
+\xb2j\xeb\x86\x8d\xb4\xd0\xa7\xcdv\x22+?\x0f\xae\xf4\
+\xc2OT\x0f\xe0A\xbd:1\x11\xe0\x9c\x01T\x82\x0b\
+\xc7\xc0DH\xc7\x8b\x81\xb4\xa2\x0c\xb0\x89r\x82\x0cL\
+\xfe\x8e|]\xec\xc9\x8f\xad\x06\xfc\x1c3j\x9cwl\
+\x1d(\x81x\xff{\xce\x93\xc0#B\xd6I\x1cD=\
+\xca8\xc0\xf9\xb9\x04\xbe\xfd\xc6\xfa\xa0\x10!o\xd5\xc2\
+\x01\xa7BT\x05`B\xf1\xfc\xd9\x98yN|.\x13\
+&.\x84s\xe8X\xe4\x1c'rF\xc4\xc4\x0b\xf7\x9d\
+\xcfg|E\x1dS\xde\xc7F\x11\x03a\xee'\x5c\x07\
+\xc8i\x22wC\xcb\x04\xec\xd2 BH\xa8\x80t\xd0\
+u S\xe5\x95\x12 \xfcp\x17\x908`\xbcF\xf9\
+\x10\x16jZ>h\xf5\x00A\x00d\x8e\x0c0\xac\xea\
+\xb0\xd2\xabW\x9e\xde:6>\x7f\xbe\x8c\x0fX\x97\xb5\
+\xc1\xba\xc3\xce\xc2\x0f\x99\x16\xa4B\xb0\xdb\x8b\xd5\xd8\xc9\
+\xe3 \xf5Sf\xd9\xd9\xfea\xe3\x87,L\x8e\x10$\
+>\x04\xd8\xd6\xe9k\xbd\xbe\xfe\xdc\xb6\xee\x11,\xce&\
+\xac\xcao\xae$\xbfT*\xff\xae.!\xc7\x0d\x07\x1c\
+H;\x89\x04O,\x88\x03\xc0\x03\x0cA{\xdd\xe1\x17\
+b\xc2\x03\x1b\x91D9w\x02\x15S\xa0\xe1\xac\x07\x8c\
+g\x12\x8b\xb0\xfe^dV \xf9.\xeb(\xb96\xce\
+\xd3\x03\xf6\xd5\xd4\xb3\x08\xb9\x9d\x9e\xab\xf7b>cV\
+%\x0aIP \xefC\x82J\x8e\x9d; J\x08y\
+\xcf\xa7\xd8\xb8\xdb\xa9f\xe9\xf47\x1cl4H\xfb\xcf\
+\xe0\x80\xc1\x81\x83\x03s\x8f\xf0\x19\xd6#\x9c\x13.w\
+d\xb2\xb6\xf5\x8c\xac\xad\xbd\xc6,\xfd~\xaaYAx\
+\xb8\xbc\xe3\xb7\xfaJr\xeeIO\xe7\xdd\xde\x9e\xec\xb7\
+\xe9x\xabY\xfa\xfd\x13fU\xcf0\x08# \xbe \
+\x08H\x141\xaf\xa8\x10\xf0\x9c\xaeIvu\xd5\xfa\x81\
+#\x06\xa9\x94UD\xd6\xabHHqtV\xcbJ\xde\
+=\xa9\xe4P\xea*\x8b\xeb{\x1e-\xac\xd4y\x9cM\
+\xaf\xc6\x0f=\xd4S\xfb^\xfc\xe6h\xb3R\x81r\x96\
+i\x91l9\xc9\x93*\xaa\x9e8c\xbd\xa7%\xe8j\
+\xb1`\xc3\x0a.\xb9\xbd\xcc\xf2\xbfMi\x85\xf0\xfb\xa0\
+\x16\x19\xde\xefl\xe7pD\x1c\x92\xec\xd0Jv\xd2\xdc\
+\xc2?I\x8eka\xe9\xd2o\x5c\xd6\xff\xe6WfE\
+\x0d\x01y+\xd43\x5c-A\xac\xf2\x83#\xcc\xd2\xf3\
+\xfci\xfb\x93\xf6'\xf9\xb9\xfe\xd6\x9e/-I\xbc\x7f\
+x\xaeY\xfa\x9co\xf4\x15|\xc8!\x87\xf3\x99U\xeb\
+\xb5\xd6W\xa0\xd93^7K\xaf\xdb\xc0,\x07\xbc\xcf\
+Z\xc0;c\x17\xb3\x9c(x~\xf8|\xc5\xce/\xf2\
+B\xc8\xf9r\x02\xf6\xbeBr\xd9-m\x96\xde\xb7\x5c\
+\xb2\xe40\x0f\x176K\xbf?\xc2,\x1d/2+$\
+\x8c@\xb5\xbb\x85\xcdJ\x8fw\x0ax{28Z\xf2\
+\xa4\xb2\xd2~\xd7\xac q\x084QU\x18leV\
+A\xd1\xd73+\xe4\x9d\x04\xce\xed(\xd9\x98\xe6\xc5\xf7\
+\x04]\xde\xb3$\xc0\x86G\x99\x15\xf2\xc0\x19G\x99\xa5\
+\xf7e\xb6\xd2t\xdc\xc3L\x5c\x0eoV\xcb\xc9\xb6U\
+\x0f5\xb2\xb1Z\x97\xfcg\xf3\xae\xe6.\xaa\x17.\xeb\
+(.\x16G\xacX%t\x86Z\x03\x8e\xa8\x12\xc7\x96\
+\xe0;\x22\xb7>$\xab\x12\x94\x0aHs\xfd\x7f_\x91\
+\x88U\xac\xeb\xb4`x+\x91*\xd7\x04v\xb4 \x8c\
+\xa6\x9b\x95\x84\x82\xf7\xf0s^\xc8B\xaa0\xe6\xf2s\
+p\xae(@\xf5\xc2\x8bd.\x1d\xd9B@\x0a\xb7\x0c\
+\x81\x1e~\xd4[\xb2\x00_\xe1\xea!@\xa5U\xed\x00\
+\xa9\x80\x90p!\x907\xce\x86\x9d\x0aYcV\x95\xd8\
+\xbc$\xb2s\xc3\x9e!S.Kvy\xf1\xab3\x22\
+b\xa1*\xf1\xb1S\x1aW;U\x89\x02\xad/\xed\x0d\
+f\x19\x89\x97\xb96\x9a\xd5\x9b5\x9aJU\x04\xb2L\
+\x0a=\xb4,\xa4\xdd\x22\xc7\x19\xcd\xbc\xcd<\xcd<U\
+\xeb\x10\xe4\xc0\x92\xc5t.\x06\x100\xa8=,g\x96\
+\x8es\x9b\x95D\x00j\x14\x1e8G]\xf7=\xb3\x15\
+\x99>\x10\x1b\xf8W\xf8\x85T\xa6I\xb0\xa0\xa6\x02\xe9\
+\x1f\x95v\xc8F!\xdd\xd5\xf3\xf5\x849\x15q%\x96\
+\xf2\xdd\xb6\x04\xeb\x0f\xd2j\xfe\x83J]\x81\x842\x08\
+1\x0a\xad\x90Y\x92\x00\xa0\xe7\x9d\x16K!T\x9c\xd3\
+HH\x9fL~{r%\x9b,\xff\xc1[K\xaf\xcc\
+V>\x0fv}\xf6;\xe22\xb8\xae\xa6\x9aU-\xdc\
+\xf8\xcb\xb1\x22=\x1e8\xce\x22\xd7\x19qCP\x9bs\
+\xd5\xb9y4\x1e\x84|\x9dTu\x8d\xef\x89\x057\xfc\
+\x1e\xfcW^\x8f\x9f\x1e[P)0\x13\x07\x96\xd6\xda\
+>1\xc4\xcf\xcf\xe8\xf5EU\xad\xf7\x0f\x89;b\x22\
+ V\xd8\xe31&\x0c\xe2\x91\xcf\x8b-\xe5\x81\xf5\xdf\
+\x91!\xc49Q\x15 \xca\xca\xf3\x1cbk\x80\xbew\
+\xbc\xfdk\xb2\x07\xab\xdeU\xcbD\x9d^U\xc0YP\
+mz,ZX\xfe\xb3N\xe7F\xd5\x82\x0fT\xfc\xac\
+\xcc\xdf\x5c\xc8;`\xff|>\xd7\xcc\x0b\x0b\xa8\xc8B\
+\xdca\xe0\x01w\xb9\xf6\xda/D\x17*C\xb4tE\
+\xd6$H\x88\xebV\xcb!eAN\x83\xac'E\xa3\
+b\x0f\xb4$\x90\xaeyF\x0b\x07\x8d@\x15\x08(\xef\
+\x83d\x8d\x0c\xd9\xaa\x1a\xa0\xf3\x85\x1ez\x02'&\x06\
+\x03\x8d\xc0\x9b\xc0\x86\x07KE\x7f\xb2^\x8e\x17g\x1a\
+h\xfd@*,\x95SkR\xc6\x99\xd4\x02\xc8H\x93\
+q\x02\xa1\xc0\xe7G\x92\x08\x8e1 \x0f=\xee$V\
+F\x7f\x91\x9a\xc0\xda\xaa\xb8\xc7\x05Td\x1a\x9eX!\
+\x03\xa7\x8d\xc1I\xef\xd6\x11\x99\xde?5\xf1\x1e\xd1}\
+\x9cC\x90\xf2\xfb\xfb\xde`\xef\xf5fA\x89\x13'N\
+\xa0\x98I#\xc1\x81#\x0c4\x8a\xe7&HX3\x87\
+z\x9dh\x9d`\x02\xc5V\x13\xc6;\x130\x9eO\x9c\
+\xc0LL*\xf0a!\xf4D\x0c\xe3\x84\x0c+\x81\xb6\
+\xa0\xd4N\x02C\xe6t22C\xc6\x1d\x0bj\x84\x14\
+E\x19\x11\xfe^8\x22\xfa\xfb\xc4\xf9-<\xb15\xc5\
+\xef\x1f\x0b/PV\x02\x0e6\x0e\xc8e\xa4\x07L \
+\xef\x0b#\xf3\x05\xf9.\xcd?\xc8\xba\xa8\x04\xd3\xdb\xeb\
+\xb2~\x22\x93B.\xca\x03R*\xc2\xb0\xd8#\xd7\xc3\
+\xba\xa3\xcc\xbbC\x14E\x06\xe5\xac\xfa\xdco\x02~*\
+\xff|\x8f\xe9\xa0?^*9l\xf8\x04\xea\x04\x94\xf4\
+\xf4\x03\xfd\xef\x0e4K\xc7\xcf\x9a\x95\xfb\xde\xfc\xd8\xac\
+\xe8\xe1z\xc2\x83\xfb\xcc<\xa6\xb2\x8b\xc3\xca8\xe7\xf9\
+\x11\x98\xefhV\xa0}N\xba\x86^;\x09B\xd6C\
+!\x03\x1c\xaa:\xa3_\x07\x1cz+\xce\x04\x02T'\
+\x09\xfcl\xdf\xab\xe8\x1b9\xf2ZT<\xb4^C\xf2\
+\x87\x9c\x1c\x10\xef\xc1c\x83\x7f\x0c\xd2|\x1f,3x\
+\xe7\xe0\x9d\x19\x22\xff\xfd\xe6\xfb\xa5\xf2M\x0bR{\x97\
+Y5\xde\xe8\x89gc?\xa8\xaf\x0c\xe6\xe7\xfd\xb6R\
+\xf1\xf0D\x0d\x90z]7l\xf5\x8e\xf4PO\xabs\
+\x04\x08*\xeb\xcf{+\xb3\x02)\xa7\xa7>\x93n\x9d\
+T\x12\x12\xed&f\x22\xfb\xab\x1d)H\xfd\xc4\xa1@\
+\xcfr\xfbm\xb3\xc2:N\xc2rtB\xb2\x13+u\
+\x07\xe6\xcd\xadr\xd4\xa8h\x08\xea\xe8Po*0J\
+\xe0\x00\xd1f? 1\x90\xc2\xe2\x9c@ \x01b\x1c\
+\xd9\x99%[\x95M\x12\x1d\xec\xfb\xed\xd3f\xe9\xf8\x82\
+Y\xc5\xd1\x012\xc7\x02\x9a\x07K\x82\x89\x84\x1b\xfa\xde\
+\x90\x9ee\xf6q#;\xdb+\xd9\xa7E\xea\x97\xfc\x03\
+S\x95\xb7\x8ac\xb7Y\xb2\xcdE\x1ah\x15\xf1s\x93\
+}\xbf\xa8gd.\x81\x7f\x94\xc0w\xb0\xd3`\xe7\x81\
+\xad\x87\x9f\xce6\xd6\xbclVZ\x00\x1d\x09\xa6\xf5\x00\
+R\xbe\xe1\xb2f\xa55\xa2;\xd3\xac\xc8\xe4yo\xef\
+\x1d\xdd\x9d\xdd\x9d\xb9\xe2\x9f\xac\xaa\x1c\xdflV\x90\x81\
+\xc8\xfc\xb9\x1f\x03\x82\x0a\x87\xdb\x18]n,\x09\x93\xee\
+u\xb3\x8c\x00HV\x05\x9a\x82\xf6\xe7\xe1\xd3d\xce\x85\
+\xac\x060\x5c\xc9,\xfd\xbc\x88\x99\xc6\xc7\x09% q\
+rA!}\xe00q\xb2\xbfe\xd4S\xfe\x9c\x99X\
+\xf1\xd7\xaa\xa0\xd4\xdc\x1f\xfc\x1d\xd4$v2K\xf7y\
+\xe3d\x96 \xb9\xc5,\x1d/5K\x9fw\x96Yz\
+\xdd*f\xe9\xb8\xa3Yz\xfd%f%\x01\xd4^\x9d\
+\xec\x9a\x0a\xa9F`\xa2\x841z\xef\xe3\xc7\x9aU\xeb\
+\x08\xfb,diBbd\xe8\xf3\xc9\x92[;L\xaf\
+?\xbc\xe8\xba\xc3-3\xda;\xd9^\xda\x97_\xa8*\
+\xae\xbf\xeee\xe12\xe3\xc0\x87\x94\x109\xb4\xb0\xfc{\
+]\x82@\xcb\x1a\xb2\x0eT\xe2\xeb#\xda?g\xd1\xf5\
+,YZ\xc9 ;#\x91\xe6\x89_!W=1\xcc\
+>\xa4\xe7\x05\x09\xe6L\xbd\xc9\xd3\xe5\xff-\xa6u\x8f\
+\xf1\x85j\x8b\xf6iO(\x88$\xae\xdd8\xd9F\x0a\
+\xfcnQ\x0f\xfe\xa1\x15\xb0\xf1\xbed\xf7\x97\xc4\xbe#\
+\x88\xe0\x10\xb0\xf0\xf0\xf6\xea\xbcQ\x97R@\xda-d\
+\x96\xbe\xe7\x1bf\x19\xd1v\xa0\xb5\xac\xb5+\x98\xe5\x84\
+A\xdfJ\x80n=\x95\xd8\xadU\xc9\xa75\xc2\xd6\xf9\
+\x0d*h\xb8\x90+\xa3m\xcd*\xee/\xce\x03\xae\x03\
+\xd4\x11T\x00\xe9\xfelV\xad\x93B`\xb9j\x10\x10\
+t\xcd\x1b\xff>Z\xa5\x80\xea\xe3\x7f\x81\x8c\xa5\x05E\
+\xad^\xee\xcf\x91\xf0\xc6\x0f'\x91\x0c\x07\x84\x10\x09\x04\
+\x92\xdd\xaef\x15\x07\x93\x15H?\x5c!\xae\x02\xb9 \
+\x9cE\x8e\xb4\xa3\xa5\x8f\x00\x16Y_\xc6\xb1\x90\x86\x8e\
+xF\x0e\xc4q\x00\x00 \x00IDAT\x05Y'\
+\xff\xc7\xd5+\xf0O\xf9<\x10\x9a\x81}\xdf\xfd\x82\x88\
+@\xe5\x18I\xf1b\xa1-\x22^\xa3|]@\xd4\xba\
+\x9c.\x08\xc4\xc8\xb2\x1f\x11\xd3\xfc=\xb2\xf5\xf3\xbd\x14\
+\x18\xf1Kc\x81$p\x5c9B\x84\xca?q\xdb3\
+\x81\xfd\x1fdA\x84\xfe\xff\xa7\xc0\x1f\xbf\x0d\xa46-\
+\x0a1\xa1\x10[\xc5\xff\x13\x89_<\xc6D\x00~u\
+\xeb\x1ct}b$\xc43\xe3@\x1a!\x07\xf3J\x08\
+\x81#7\x94@\x02\xf6T]\x90\xf7\x14*\xe3J\x06\
+\xd2Y\xb0w\xcf\xca\xecc\xcd\xe5\xc9\xaeH\xe7s\x82\
+Y\xa5\xb3\x1a\x1dR\x02mA\xb8\x5c\xbe\xee \xb3\xb2\
+A8Y\x15\x0e(\x13\x0b\x87\x9f\xf3'\x10\xe2\x81\xc4\
+\x0c\x12\xbd\xec\xdc zP\xe8\x85&\xf0\x092q\x95\
+.k\xff`\xe4\x98y&\x8b\x09\x0fR\xe2\xf9\x10\x80\
+\xbf\xae\xefg\xa2\x95@vB\xc6\x08\x16\xe6\xe6\xbfT\
+\x19\x8e\x90\x93\xc9X-#\x04\x05\x07\x93\x1em*\xcd\
+\x5c\x1f=\xea\xb0\xf5\x12\xb8\x93\x11c@r\xfe\xdc/\
+ UL\x94\x08u\xe1\xf9\xf29$\x02\x08p\xfe\xa6\
+\x9f\x09|\xe7V \xcb\xe7\xd3[\xae\xf1\xe6\xaa\x051\
+\x13\x17'T\xfc{$md\xa2\xb1\xf1\xb2\xd1<\xad\
+J\xf9\x06\xe2@\xe0~\xb3 \x11 3\x0e\xd88\x98\
+\xa0\x91\xf4#\x90{\xa0W\xea\x95f\xde\xcfxb\xfc\
+\x93`\x02\xaaO HOv\x80\xe8\xbbZ\x06\xb20\
+\xf4f3\x0e!s$\xb1\x113\xac$&\xf8\x99\xeb\
+\xe5\xb9\xb1p\xe1\xe0r^$B\x08\xd0\xb8\xcf\xac\x13\
+b\x8d\xf7\xeb\x07\xeaME\x9e\xf1\xc1\x86H\x82I:\
+\xd9\x5cG;O;o\x86\xb8J&\xc7\xc9\xd9\x1e\xe9\
+{~\xe1F\xa0\x82\xe8P/\x02c\xb1\xbf\xbb\x1c\x0f\
+,\xdd\xc8\xf7\xd1S\xacy\xe5l\xe0\x04P \x05T\
+i\xf6\x0dQ\x89\x12\x02\x07\x12\xa9\x90uA\xc6G\x02\
+\xc0+\xd5\xb06\x03Ad^p\x9fU\x19rV|\
+\xe9<\xbb\xe3\xc2\xf5\xf1\x0f\x0e\x0f*\xb6\xe8\x1c\xd33\
+\xfd}\x05\xd8\x0aXI\xa08\xb7\x02\xac\xcd\x22\xe3B\
+\x1e\xd1\xc7+\xac\xc7p)\x10\x08\xca1\xc9\xadc\xc6\
+r\xbf\xa8Y\xae\x0c~\xaa\xfdT:~\xc0,\xed\xc3\
+\xb7\x0en\x1b\xdc&5\x917e\x99\xb9\x1f\x98\xcc\x5c\
+\xba\xab\x0f\xe6\xfbJ\x8f\x1e\xf3S\x89\x09*j\x04b\
+\xed\x9ef%1\x94\xc9\xd4\x92\x03\xd4\xde\x99\xec\x8e\x8a\
+T-\xca\xf8\xc0\xd1\xa0\xfbD\xc5\xd4+\xed\xaa\x8c8\
+\xb9\x97t\xad\xdb\xa3\xcd\xca\xf3\xf2q\x01W\xa8*\xa0\
+\xc8\xfa\xf9\x86\x8f\x1c\xa6\xd6\x01S\xb76}\xeb\xe6u\
+3\xc9\x96\xa6\xf9\xdf~:\xd9^\xa5R\x9e\xa1\xda\xc9\
+\x11n\x1eN\xf6H\xd1\xad\xb6\xc6<k\xcd\x1bm`\
+VH\xa6\xbc\xf5\x04\xe8&\x8e0\x5c\x12\x0a\x0cF\xa7\
+\x9aU\x0e\xb0T\x02\x98\xf7@\xde\x9d\x05\xfe\xab\x92_\
+\x13\x07\x8e\xb7\xd4\xa0\x1a\xc0\xb8\x80\xed\xda\xd4\x13\xfe\xbb\
+\x04\xb8\xd6qm=\xd7\xe8\x91{\xa2\xc9\x123\xb7\x15\
+\xa4\x92\x07\xaa\xffN\xf6\x5c\x05)U\x22!\xb3\xcd\xef\
+/\xd2\xc0\xb4\xbe\x0c\xa6\x98eR\xb6\xbeud\xb1\xde\
+\xd1\xedn\xebU\x00\x90\xcf\x9b\xf1\xdc\x8c\x7f\xcf\xf8w\
+N(\xf6\xc8\x85\xeb\xa5~\xf1\xb9l\xbe.9\x94\xfa\
+\xfdf\xe9\xfd\xc7\xf4\x81\xfe\xf0V\xb3R\xc1\x1c\xdbX\
+\xf3\x0bY6\xe4\xba\xac\xce{^\x99\xf7\xb9\x95\xe3\x8a\
+*\x01`\xe9\xa7\xf5\xd3\xf1|A\xd4_7\xcb\xa4\x81\
+7u7e\xa4@f\xc1\xb7\xcet\xebM\xef\xfe\xd0\
+\x93\x9b\x0dw5K\xd7\xb1\x83Y\x09\x08\x9cK\x04\x07\
+Zd\x90\x1epARv\xa9\xa0\xeb\xfa{\xf7N\xb3\
+\xf4\xb6\xf3\xcd4\x8e,\xe1\xf0T\xb2'\xab\x02\x90q\
+\x22\xbc&\xee\x86\xf9\x0b9\xb3\x8f+\x05F\x99C\xc0\
+\xce\xeb\xa7f\x95Z\x83Z\x0a|\xff\x85d\x95\xc43\
+l\xe6\xa8\xf5\xcc\xc8)\xc7\xb1\xf6f\xb3\xf4|\xe74\
+\xab\xe4Y\xe9m\xb7\xca\xf2\xc7K\xef<\xad7\xb0\xa8\
+\xe7\xf4\xd8\xad\x99D-\xab\x1f\xe4\xc4S\xa5\xea\x93\x13\
+\xab_\xd5x\x9f\xa3ZG\x17\xc9]\xe0e\x1c\x8c'\
+\x9b\xa5\xfa\xd9\xe4+?ZU\x8c\xd5J1\xf6\xe5d\
+_\xaa\xd6O!Z\xe8\x11G\x1e\x91\x1e|\xfcRG\
+\x1eh>\xba\x9c/\x8e>\xfb\xed\x0c\xf9\x87\xb3\x07D\
+bt\xf8\xb9\xafr\xecM\x04\xd9\xe4\x1b\xdb\xdf\x9b\x15\
+\x04\x182\xb8$~\xba+\xcd\xaaJ0\x9c?V\x08\
+\x99\xab\xf8G\x14^\x5c\x9df~\xb3\xf4\xf7\x03\xb3\x95\
+\xb8`\xfdlc\xcd\xbf\xc4a\xc1\xfe\xad\xd6\xbc\xee`\
+\xb3\x0a\xf1\x8a\xdfC\xc0\x85\xdfC\x80\xaaD\x94\x93\xd9\
+\xfe\x97Y\xf6\x9b\xb2\xdc\xb3\x8f;\xf9#&\x8ei\xf2\
+\x98\xf8{\xde+\x8f\xfc\xa8\xe2\x07\x12\xabN\xb6\x8c\x9f\
+\x85:\x0e\x81\x1d\xadu\xf8A\xb4\x1aB\xe2L\x22V\
+\x09\xc8X`I\xbbu\xe6*\x1a\xfdIH\x06\x15.\
+@*\xf9~\xfd\xe5l\x05a\xc9\xfe\x07\xd4\x1e\x04(\
+?\x13\xc0q\xdf@&\x90\x00`\xdfc|\xe0W\x92\
+\xe0\xc3\xef\xa6\xf0\x85\x7f:\x89L\xb4\xb7^\xf3}\xec\
+\xa7$$\x90\x93V\x8b\xad#Y\x88\xe7x}\x84\xbe\
+\xc7\x1e\xf9X\xa9\xe7\xef\x93\xc9\xf9\xe1gG2\xf7\xd8\
+j\xcb}\x88\x85\xcd\xd8#?5\xc4S\xcf\x05Yv\
+\xce\x8b#\xbf\x8fq\x0f\xd73Y\x5c\x12\x7f\x1f\x13\x06\
+\xbc.\x90\xf5M*\xf7\x17\x03\xff\x88\xac\x8e\x89\x00\x12\
+\x22\xf2\xf3\xc7\xb3\xdb\xbeX\x91U\xf2\x1b\xbeP\xee\xc2\
+.\xd0Z[\x90g\xad&\x8c\xe4}\x9c\x8cHz\xd9\
+\x90\xff\xe4\x0e\xc5sJf6'\x00.\xafn\x98*\
+\x99\xa3\xb5\x92\xad)h\xd2\xe5\x85\x8c#;`\xfbV\
+\x0e\x0b$V\x90h\xa9\x12\xe3=:\xe8\x82?m\x96\
+\x03\xf1\x0c\xed\xf7\x0a&7\xe5\x15-l\x1f\xec3\x90\
+.\xff\xa0\x0a\x99\xf7L]d\xdd\x98\xb9\xa2\xd6\xb3\xa8\
+\xb2 0P\x99x\x90m\xd1K\x0f\x09M\x99\xa8}\
+\x80\xc9\xc0\xe1\xc1\xd3c\xfeJ\xc8l\xbd\xe8\x19\xb4\xa8\
+\xff\xf8\xc6l\x92\xf1\x01\x8f\x5c\xc5`\x229\x9e\xc8\x94\
+|\x22\xb3`P9& \xd4\xd1[.\xe0\x0c\xa0\x22\
+\xcc\x00\x82\x9c\x8e\xc0\x1c\x07\xf1\xc5\xc0\x22O\x80M\xa2\
+\x80@\x16\xd6|\x12\x0e,\x80o\xcb\xe0\x1b[\xa8\xa6\
+\xe4q\xf9|h\xb9\x98\x1e\x16\x02\xbe\x07$\x04\x9fG\
+\xe2\x85\xc0J\xa4$\xa3\xbb\xcc*\xdd{&2\xf7\x93\
+\x05\xf3\xb1\x00\x09\x22\x11%h\xaa\xb3\xaf\x22\x9b\x18[\
+>\x22I\xc7d\xad\x0f\xc3\x90\x08\x8al\xa0\xfc\xccs\
+d\x1c\xd1\xc3N\x0f$-\x01 18\x1f\xa0\x91\x22\
+\x13\xf2DYlE\x00!\xc1\x06\x0c\xdb\xbf\x1cr\x97\
+\xa3CnO\xd0:?O2\xaa\x22\xc3B\xcf\xd73\
+\xd6\xaa\x04:9\x13\xeb\x88\xe6\xbb\xcf\x1f\x1c\x99\xb9\xcd\
+J%r\xb4\xcc\xe8\x1d\xa3e\xaa\x1ep\xfd\xdd\x9f\x0f\
+\x81\xbbZ\x00\x80\xc2\xfa\xf3e\x9c\x93\x10\x14w\x85\xeb\
+\x8b\xab\x12\xe0H\x02\x1c'\xc6\x01rfp\x89h\xbd\
+\xf0\x0a\x87\x12\x0b\xdd\xd5fE\x05\x80\x04\x9bC\xab\x81\
+h\xab\xe7\xcf!\xf8\xb4p@\xda\xb4\xa1Y\xd5\xfb\x07\
+4\x10G\x89\x8c5\x9c\x07\xaa\xfc\xe18Y\x98\x9d+\
+\xd9J\x88\xc0E\xd0\xeemV\xc6?\x8e\xab\x07\xc4\xf4\
+\xf6\x8b\xeb\xc5I\x13!\x0f\x05\x91!\x07\x1a\x04D{\
+A\xff\x5c\x06\x0f\x0e\x1e\x1a\x98\x1e\xf8/\x92\xa5\xfb\xd0\
+\xbe\xa3]\xbaM\xf3cp\xe7\xe0\x8e\xc1\x9d\xf9\xb9\xcf\
+;\xa1w\xcf\x80\x9b\xb7\xa8\xb2\xf7\x9d\xaa\x03\x09\x92E\
+\x12%T\xac\xe4\xc0\x0ev3K\x9f\xff\xc1d\x06\x89\
+\xfe\x96Y5.\xc4\xf5@\xe2\xc6\x91\x1c\x90\xbd\xe5\x7f\
+\x15g\x00\x09\x0fA\x90\xfd\xf5\xdaO\x9a_\x9bU\x9c\
+\x0e\x90\xc5\xae\x9d\xec\xfdE\xcd\x81\xf1\xd3\xae\x9bl\x9d\
+\xaa\x12\x81^1j\x07\xba\x0e\xe4\xdbr\x18\x7fHa\
+o\x1f\xdc\x9b\xec\xber~<W\x02'\xf4\xc3\x81\xba\
+\xe7\xc0d\xcb\x0a\xe2*\xae\x09*\xbf\xed\x87{v\xfb\
+\xee\xc7\xbd\x8c_\xbb\x91Y\x0e\x88\xfa\xf5\x9e\x8a\xdb\x0f\
+{\xe8\xb2s\xfd\xccb\x96\x8e`\xc5\x85\xd0\x81\x9d{\
+\xb8\x9fY\xe5`[:pmAR\xbf]A<-\
+`\xdbX=\xd9w\xab\x82\x9c\x02\x84\xee\xff\x92]\x9b\
+\x8e\x7f\xe9\xc9\xe1\xa8p\x02u\x1f\xfc\xaf\x99\x02\xcb\x14\
+0\xb5\x7f3K\x9f\xb7\xb2Y\x95(\x129\x22\x81\x8d\
+'j\x81v\xdf*6p\xb8\x1b\xe0\x1ex\xb7d\xc3\
+\x1eS\x0f(\xeaCp\x17\xc0\xadt\x87Y\xd5K+\
+(\xb6\x07r\xaa8fY\xcawV,\xef\xcf\x9bU\
+Pr\xbd\xbe\xdb\xbe\xdb\xa13\xc8\xff\x92f\x85\x0ct\
+\xf8K\xb3\xf4\xf3\xedf\xe9x\xb4Y\xda\xf6\xef2\xab\
+d\xdf O\xa6ED\x88\x8b\xae\xed\x11\x04\xc3\x8d\xcc\
+\xa4\x16py\x91\xc9\xe4zf\xfc<\xd9%\x95\xfc\xe8\
+\xa9\xc9N\xab\x1cy}O\xb7\xbfY\x95\x98\xd1:\x01\
+\xa9!*\x07N\xdeH\x22\x95qh\x09\x90\x0d\xb4_\
+-^!\xb9@z\x08a4|K\xb2\xf9*\xb9\xc7\
+\x9f\xf4\xad\x1e\x1e\xe0Z\x1a\xf8\x03e>\x8d\x966\x13\
+g\xc6\xc5J\xc8\xec^\xfc\xc3\xee\x063\xf9\x9b\xcf\x88\
+\xf3c\xb1\xaa\xb5E${NB\x0b\xb2\xcb\x12[\xb3\
+\x89\x93\xe2\xdd\xe2.\xb9\xb3T\x9e\x9d\xd4\xf2M\xc9\xe6\
+P\xa2m\xf7J\xc7\x1d\xe4\x9b\x0ak\xa8\xe4d.\x85\
+\x83J\xaf\xbd\xcf+%\x8e]]\x85}\xf9\x05Uf\
+\xa7j\x1f'0\x03\xfaM\x85X\x89>\xdf_\xe5\x87\
+{+\x98\x12\xbb\xed[\xcd\xca<\x01q\xd7\xcdg\x96\
+~\xff\x193\xc9\xb8^_\xb1\xa7\xbf.2P\x02S\
+%pH\x18z\xa1\x88@\x95D\xbf\xf6\xa3\xd1/{\
+\xb9\xcb\xb13{n\x19\xe6\xa7\xab\xf4\x80\x04\xc6\x0f@\
+\xf7]\xadj\xde\x82\x88<\x1d\xd0\xfa\xd8\xc3.\x84\x82\
+\xcb\xb8r\x7f(,\x11\xa8\xe3\xe7i\x7f\x80;\xc9\x91\
+\x00p\xa0\x14r\xc2\x9e,X\x89bG\xe0\xe1wR\
+A\xc7\xaf&\x1e\x90\x9f\xce~\xe1\x05K\x91\xf7\x8e\xfe\
+\xc7\xac\xb4\xea\xb9\x9c(~\x06\xdcET\xc6\xf1\x7f\xa3\
+j\x18\xd7\x83\xffE\x01\x92\x96AdPI\x5c@\xb2\
+\x1e\xb9\xd6\xb8\x9f\xf8\xad\x04\xf0\xbc.\xf6\xacG\xbf\x9c\
+\xc07B\xec\xf1\xff\xf1+\xe3\xe7N\x86,\x88\x81t\
+\x0c\x88y\x1d\xbf\x8f\xaa]\xb1`\x19e\xf5J \x0d\
+\x22a\x22\x12\x9a\xd7\xd3\x82\x8e\xcc'\xf3\x90\xf3\x8f\xc7\
+p=\xdeJAa&V\xfc\x09\xfc\xb9^\xfe\x1eY\
+\xfb\xa3l`L\x04L\x96\x10\x88-\xdd<_\x1d\xc7\
+s\xa5\xfb\x9d\x85\xcc/\xb3\xdd>T\xf5\xea\x19k\xf2\
+\xecU\x80 U\x00\x97\x17\x81\x04N\x0f\x0a\xe8a\xd6\
+\xb95(\xe1\xbf\x93=Wz\xb1\xd8\xe8\xfc\x02\xe7\xc8\
+`\xef\xa2B H\x0d\x8et\xbe-S\x0a\xc4\xcf\xd4\
+]\x8d\x9c\x86\x8cc\xce\x07\xfew\xb5\x80\x01\x91V\xa6\
+\x9f\x05\xd2\x11\x098\xda\xdb\xf4\x1b\x98WL\xe7\xd1B\
+BO\xcc\xbfT1\x7f\xa4'M\xb1\xce\xcc\xac\xe7\x8c\
+\xac\x12\x0f\x86\x89\xc8D\xe0\xc6\x8b\x0b`tO/\xe7\
+\xd5l\xa2\xc0\x82\x85\xb2\xb01Ndi,=\xe4\x13\
+!\xf9\xb3\x06\x08\x07\x0e4\x01\x81\xa0\xafc\x0b\x0a\xa9\
+0O mCe\x00\xf9\xbf\xb7\x06H7G\x10\x01\
+\x04J\xb1\xd7'\xc8*\xa6\xed\xb2\xcf\xd4o \x88\xda\
+K\x1a\xd8S5q\xd0oEv-\xcam\xcc\x9c\xe1\
+{1\x1f\xb9\x9fOj\xc1\xf8\xbb6\xc6\xc7\xf53\xd0\
+8\x02@\xbf\x0fZ\xf0C\xcb\xc1L,\xe9|/\x9c\
+\x02L\xb0\xc9z|8_\x12'T6\xf8\x5c\x9eG\
+\x84\xda3\xe1\xe4yA\xda\xe3l\xfe,d,\x10d\
+\x5c\xf9=\x01?\x15_\x16v\xd8b!7\x84\x1b\x80\
+\x05(\xf6\x8c\xd3kG\x0b\x0drV\xf4fJv\x8e\
+\xca\x9e\xeb\xd4\xb3~\x88D\xcdIl \x87\xe3{B\
+\x0f\x1e:\xc6@\xfd\xbc\xf7\xfcX\xb3\xdc\x13gV\x12\
+G\xb0g+\xd1\xe6\xac\xda@\xfd\xa4GL`\x0ci\
+as\x96Y\xa9Tx\x05J\xe3\x82\x00\xd5\x135\xf4\
+dBV\xc8\xefE\x9a\xe4\xcf\x0b6tA$\xfd\xf9\
+\x00)'\xa3\x8f\xc3\x0f\x94w)\xb3\xcaA\x80\x94\x0b\
+\xb9\x1f*\xf2\xf4p\x0a\xca\xe7\xeb\x93\xe6\xa1\x07\xfc\x90\
+n.eV\xe9\x1e+\x91\x83cD\xe0\x0b\xb4\xb4\xfd\
+q{^{^\x9ew=\xf4\xfb\xd1\x9e=\xdfe\xac\
+\xb8\x7f\xaa\x94@\xea\xe9\xe4{\xffeVA\x8d!\x85\
+\xa5\x85\xe2$\x91!>,\xd6uU\xfe\xc77\x1f\xdf\
+l|\xf3\x8a,\x0c27\xc6\x09\x15\x02\xc8\xf4\x0c\x1a\
+{tE~E\xc2\x19\xb9*\xc8\xef\xe8}\xd5\xf7\xe7\
+\xba\xc3_\x15\x90n_A?\xf9|\x1068T\xaf\
+i\xbd~H\xf3\xe8\x96l\xa5\x07\xf3.\xb3\x8a;\x03\
+\x12C\xe9!#\x83\xd9}\xcf\xac\x90\x10zB\xca\x02\
+\xa3\x07\x94 \xfbr\x81\xba\xba\xc3%\xc7\x16\x96y\xd7\
+\x01\xb7^\xfd\xab\xcb\xf3\xcd\x09\x87g\xaauL\x01\x04\
+\xd7\x83\x1c\xde`\xb1\xc1\xa2\x83Es%\xbf\x1f_Z\
+\xaf\x9c\xc4\x0c\xae\x9e\x8f\x9bed^\xcf^\xaeu\xd5\
+T\xd6Mg\xddecW1K\xd7\xf3\xdb\xbe\xb7\xbe\
+}\xde\xac\xaa\x0ci\x9f\x03\x02OO\xb8s\x12\xa0\x13\
+\xfe\x15\xb3\xd2\x0a\xe4\x0e\xae\xd4\x11\xf8\xbcn5\xb3\x92\
+X\xf4\xdeF\xed\xab\xed2m\x96Qd\xbf\xcf\xeb\xc1\
+\x0d\x0a\xe8\xcf-\x0e:\x95V\xc8\xc9\x1c\xf9r\x89Y\
+A\xb40\xaf\xba\xb5$g\xb8e/O\xe9-\x1a\xeb\
+\x99U\x95u\x91/z\xc2Z\x95p'\xa9\xa3\xd7\x9b\
+y-V\xeen6\xb3t\xfc\xefd\xf6\xbc\x1e\x96\xec\
+\x19rnB\x864\xd7*\xf1(\x12\x5cz|\x91A\
+\x1b\xcej\x96\x8e\xfb\x8b3d\x9dn\xed.\xcd\xd3\xe1\
+\xcf\xcc\xd2\xf3_\xd2,'T\xf2\xb8\x85\x15\x1fR\xb5\
+\x1c\xa0\xa6}h\xb8\x99Y:~\xd9L\xfa\xee+\xea\
+<Lv\xf4\x95d\xaf\x169\xc5nS\xb3\xf4\xf7/\
+\x9a\x15\x04b\xfa\xfed\x15BL\xfbT\xb7\x9cY\xa5\
+\x02\xc4x\xa2W{\xd5d\xab\x14VzOT\xbf\x92\
+i\x8f\xfb\xc4\xd6u\xd5:n\xbd\xd0\xcbW\xfb\x19\xf3\
+\x98\xfd\x95\xc0\x9a\xd6O\xb5\xd6\xd0\x83\xefl\xee\xc8\x9b\
+\x8a\x5c\x96\x96\xa5\xe6\xb7fUo\xb71\xb9\xecR\xed\
+\xfbdH\xd8\x87o\xcd\xcd7\x8e\xac\xf0D\x898u\
+\x1c\xe9&\x88\xba\xf7\xda\xb3\xee\xb3\x0f\xa0.@ \x08\
+\xe9-\xf2\x99 \x0eH4h?vRC\x90\x7f\xf8\
+\x97\xc8\xb6\x8as\xc2+\xe4Gd\xeb\x13\x93k\xe7\xc4\
+y\xbf?\xedfVZ\xb3\x9a5\xcc\xca\xfa\x95\x0bw\
+o\xd3\xf8\xfb\x99\xd8\xf3\x0fJ\x7f_\xd8,\xfd\xfe\xb7\
+=\xc2\xc6\x91.J\x04v\xab\xf6\x9c\x18\x1eX\xdd\xad\
+\x80X\xf7\xb3\xb9\xa7'\xe7t\xd5\x01\xe4\xed\xe0P@\
+M\x85\x96^\x90K\x90\x13\x0b\x89\xe5\x88*\xcd\x17\xff\
+\xbd\x10\x1f\xb1\xd2\xcd\xbc\xf6\x84%\x5cC\x90\xe2\x12\x07\
+\xd0\xfaDE\x9cx\x00\x8e\x22T\x22\x18\x0f\x14\x22\x03\
+\xeb\xbe'\xce\xe0tXR~\xa1\xe6\x85\xb7|\xe0\xff\
+h_\x1d-jVZ\xd0\xfc\x9f\x02v\xe7\xcc\x803\
+@\x08,\xf7OA\x82B\xe6K<\x82\xbfHbI\
+\x88\x07g\xeb'Q\x052N\xfe\xacs/\xfc2\x9b\
+\xfb\x9f9\x8e\xfbw\xd5\x0aH\xbcRZ\x9a\xfb\x7f\x8c\
+O\xfd\xde\xa1\xefp\x1fD\xbf6\x22\x85\x09\xb8\xb5\xee\
+\xf8\xfd$\xc0\x8d*\x5c\xc4C\xacK\xa3IZ\xab_\
+z\x03.5\xc8\xdb\xa7UqXl! .(\x85\
+\xd4\xfe\xfc'K\x00p$\xf1\xf1d(\x00\x93H\x99\
+\x8c\x1b`fr\xf8\x89\x88\x86\xc9\x02\xfe\xfft\x8c\x08\
+\x01]\xe7x\x1e\xf6\x0b\xab\xa2\xfb\xee\xca\x11\xe5\x0b \
+\x0db\xc0[\x1a`\x16\xbd~\xc5\x8a\xac\xeb(\xb3\xe2\
+\xb0\xb4K\x9b\x15\x87\xc3{\xd7N\xcbV\x1c# \xf8\
+\x17&\xbb\xa8|Os\xb2YU\xd1$\xb3)]p\
+'\x1f\xa2\xd2\xa8\x00\xa7Y\xde\xac8\xe8^\xd9\xbe\xb2\
+\xcf\xe4%w\xb9\xafl(3\x93\xdc\xde\x1e:\xcd\xf7\
+\x90\x09\x12\x97\x00=r\xa3\xf7j\x81\xe5~\xa8\xc2\xd2\
+\xaclV=\xa8\x99+\xd6=\xfb\xb0\x16\x12O \x00\
+\xb9W\x05\xd1Y\xc7\x81B\xf3\x8f\x81\xfd\xa6@JG\
+B\x86\x85\x92\x00x%\x87\x90\x93)\xec\x03\x7f\xb8\x11\
+T\x01K\x8bh\xbe_\x1e\x00\xb1\xb0\x92\xd1\xe5<t\
+_\xdd\x11\xa2G\x8a\xc0\x97\x04C\x90\xb3sU\x83\x19\
+\xaeb\xf0\xc6\xba\x97\xfc\x9d\x05\x8d\x0c\xe1\xb8\x021\x06\
+>\x9c\x14\x90_!\x0f\xc7De\x03\x88,\xe7\xdc/\
+\xc6\x01\xe7\xcb\x82\xbf\x84\xae\xab\xc8(N$Ed\xe2\
+\x84\x05\xc4\x03y\xc6\xdfd\x997\xae\x8f\xf1\xc0\x02A\
+e\x99\x84\x04\xbfg!\x88\xf2{d\x1e\x81\xdc\x07\xae\
+\x09\x1cs\x7f?\xe7\x03\x04\x92@\x9bJ\xa4\xc8z\x9c\
+\x14P\xcf\x17\x88\xb1\xcbO\xa9\x22\x1c\xd9v\xdd\xc1\x82\
+\x9c\x10\x16^\x16rz\x94#g\x07\x09&\xfe~\xb1\
+#mr\xef\xba/\xdc\xaa y+\x8e\x1c\xa6\xee\x0c\
+\xb3\x02}n\xcf6\xabte5\x1eX?\x9a\xa7\xcc\
+\xaa\xe7\x07\x09\x1c\xb2\x84l|\xe8\xdc\x03\xf5c\x5c1\
+\xce\xa9\xbc\x08*\xec\x95\x1c\x91\x13y@\x89\xa3J\x22\
+Rl\xef.W\x04\xd4\x92\x0d\x81\xf1\xce\xf8\xa0\x05\x80\
+\xe7/2\xae\xe4h%\xab\xd8\xfcia\xa0\xe5\x01N\
+\x13Z\x0a\x80d\xd2\x1aA\x85N2xT\x8e\x9d\xf5\
+\x1e]l\x02|\xf5\x10z\xa5F\x01]{C{c\
+{c\xd1Go\x16J\xef\xb7\x9e\xd05\xdb\xffj\xd7\
+,\xfa\xc9\xed^fUE\x04\x87\x04\x87X\xeb\x8b\x07\
+\xa8b\xa7&\x10\xf6\x1ex\x93\xef\xfbMIL9\x0b\
+<rQ 1T\xb1\xf5\xd6\x04\x12a\xd7\xa8\x95\xe2\
+\xc3\xa3\x8f\x8c>\xaa\x0a\x8c\x05\x88\xe7\x98\xa5\xd7\xff\xc3\
+\xac8x\x0e\xd8\x11\x82\x84J'\x95\xfb\xe6x\xb3J\
+\xbe\x897\xd0B$\x87\x92\xcfu\xa4\x05\x9c4\xda?\
+\x86\xa7\x9b\x95J\xdc\xe0gf\x15\xa9\xa01\x1b\x1c\x9c\
+\x9e\xfbuf\xe5{\x9b\x97\xfbD\xf4h\xff^\xfe\x8b\
+\xc0\x8d\x84\x15\xb2\x88\x8cKWi`\xbd\xd3\xb8D\x7f\
+\x1cr3X\xf4\xd3\xb7\x1c\xd7\x1cW!\x1d sS\
+\xc5j\xf8\xb8Y\xf1\x13\x9c\x15\x1c\x99G\xc6\xfd\xa9\xd9\
+\x5c\x9e\xcf\xe5\x13!\x1b\x14\x94\x9d\x84\x81\xab.P\x09\
+$\xf1e$\xc5\x1b\x97\x16E\xaf\xa0\xcdg\x96\xaec\
+)\xb3\x0a\x91\xf6\xed\x1e\x12>Z\xd3\xb0\x85U\xc5\x18\
+\x08\xbd\xb81\xa8\xb0{\xa5_\xd0| \xbb\x99\xa4\xf1\
+\xed\x05\x19\x90V\x93^\xd6\x14$#P\x7f\xe3\x06?\
+\xb2\x92\xb3D\xa5\x83D\x9d\xb8B(\x8c\x0c:\xb3\x8a\
+\x04\x0e(<\x888\xf9%\xdd\xd3\xdd3\xdd3\xe2L\
+\xd8+\x17D\xae\xc9\xc8\xa2\xc5R\xc0\xb0X\xf2K\xf3\
+\xbf\xf4\xb9[\xb7[\xb5[g\xb2\xb8>\xc00\xe4^\
+r\xf4\xbb\x8b\x93]&r\xb8\xabJ\x00\x9c!\xd1\x9b\
+\x97\xfd'\x93\xaa~\xa1R\x83\x00Q\xa1\x0a5\x09\xaf\
+n\x1b\xb3t\xfc\xb8Y\x15hni\x96~?\xddL\
+\xdc\x0d\xe7\x16\x84\x13\x09\x93\xdc\xaa\xf579\xd4\xaf\xe9\
+>\xdd\xa9\x00\xe5\xc6\xa2V\x91[A\xd2\xfa\xd0\xbd=\
+YZw\x07\xc7&36\xf5\xef&;\xa3\x0aP\xf4\
+~\x97g\xa4\x15\x02R4\xf9\xa1\x99\xc4\xf4|\x05\x0c\
+\xb3\xa9g\xfe/\x15\x12\xce\xc2\x9f+\xb4^\xaeW\x12\
+\x91\x9eH&@\xa2\xd0pd\xb6\x82,\xa1\xf5B=\
+\xfe\x907z\x00$\xb2:\xe7\x8cP\xc2\xb1{\xd6\xac\
+\x04:^a$\x00F\xce\x1a\xb2lH!\x975\xcb\
+\x89\x9edU\xe0\x072\xc8\xb8\x0f\xf6.,\xf6\x8e\xd4\
+\x93\xaa\x80C\xd4\x8d\xa5\xfe\x1b\xfa\xfc\x7f\x96\x046\xeb\
+m\xde\x85_\xcfrz\xbbZ\xebE\xb3\xb7YQE\
+\xf1\xc4\xf8\xce=\xd7\x81'\xbe5.\xbc\xe0\x81\xdf\xaf\
+J\xb9\xfb\x0f\x90&\x0a\x89\xe3\xea9\xefW\xc0|z\
+sZsZ\xd5zK\xeb\xdf\xea}\xe2\x22\xcd\xe6^\
+\x86\x96\xc4\x13~\x1f\xfeE\x84\xb6\xab\xe0\xe0\x08\x02\x0a\
+\x88\x22\xe7\xf5\xca9\xfe!~\x08\x89?X\xfa\xd9\xdf\
+\xf17)\x94A\xc2\xc7\xfbb\xab(\x09\x1cZ\xd0\xa4\
+\x12\x80:\xceh\x19\xb3j\xffF}\x86\x96\x19Zx\
+i}\x10\xe2\xd9\xfd\x05\xfc\x07\xce\x87\x16MH\xc7\xc5\
+\xa1\xe1\xeb\x16\x08f\x0ae\xfc\xc3\x7f\xa4\xe0A\xc1+\
+B\xfa\xf1\x83_4\xab\xee3\x05\x94\xa8\x92\x15\xa0\xfa\
+\x90\xa0;\xc2\x82\x8ax,\xb8q]\x059\xdd\x7fN\
+\xe4\xceb\x1f\xfeO\x81?H\x09C\xbc=\x99\x13#\
+=\xd2\xf5\x01q \x10\xe0\xc7\x00\xbcp\xb3\xf5\xe7\x81\
+\x1f3\x09\xe2\x81\x84\xb8\xdf\xc7H:\x18\xfd\xfd\xd8\xc2\
+\x10Z\x95\x91\xab\xf5\xfb\x11\x03\xfc\x18WEY\xc0x\
+T\x5c2\xee\x01\xd2[3\xcfzM\x8a\xd6\x0f$\x02\
+\x7f\x06>?\xe3\xc0Q\xe1#3\x06\xe4\x176r\xf4\
+\x98\x8f\xeb\x1d\x0b\x0f\xc4\xb8\xc1L\x1c~\xc6\x91%\xe0\
+\xe4\xc1\x92\xb1\xd2\xeb\x9bk\xcd\xb2c\xd1\xf7\xf4J6\
+\xafy\xa6y\xb6y6C~\xfa^=2E|\xce\
+\xa7\xfa\x05\xb1\xb9\xb8\x87\x9e\xd9\xab\xf3\xeb\x91\xf9P\x85\
+\x0f}g\xd7K~O\x0f\x1d\xa4\x97\xcf3\x9a\xc7\x98\
+U\xbd\xd1\x0a\xa8\x1d:\xcf\x04\xe3\x01\xffQ\x13\x85\x01\
+\x81\x83\x1c'\xe2l\x81\x95\x9f\x81A\xe0@@\xc8\x82\
+GF\xe9i9\xbe\x8fi\xa0\xcd\xeb\xcf\xad\xcfT\xe2\
+\xc8\xbeO\x10y\x12\x1f\x90B\xa9\x12\xe3\x89\x0d*Q\
+<\x0fZ\x01\xd8\xe0\x8c\x9c\xe9\x9f\x99\x04\xaa\xd7\xd1f\
+ad\xa0r\xdf\x09\xa8\xa3,\x05\x0b\x09\x01\x00H\x06\
+\xc9\x1c\xa5E\xa4\x7f?\x90\xc2A`\xd5\x9fK\x19@\
+\x12 \x8c_~\xe6u\x9cG\x84\xf8p\x8c\x19\xc5N\
+\xe7\xc7\xfd\xa6\xe2\xcf\x82C\xe2\x84\x05\x83\x05!\xf6\xf4\
+\x10\xe0\xd3S\x05\x22\x81\xcf\x05z\xc5}e\x01c\xa1\
+ \x13,6^H\xe6\xfc\xfeQ\xf1\xa4\xe7\x94\x85\x9d\
+\xfb\xa0\x1ez\xcf<\xab\x02C\xe2b\xf41\xb3J\xbe\
+\x08v[\x12\x0d\x90cR\xf9f\xc1\xa1\x97N\xb2u\
+\xf4\xb0\xc2\x8e\x0f\x89\x9b\x07\xb2\x0a\x00]\x15\x84\xcaN\
+\xe4\xb2\xe0\x1f\xcf!pT\x8c\x9d\x90m\xac\xfb\x81Y\
+\x05\xa5T\xc5\x95\x00\xbd\xfd\x93Ya\x09\x06Z\xed\xb2\
+6\x0a$\x9c\x8b\x84\xe7I\xe2\x83J\x80\x02\x99\xecP\
+_\x5cA\xfe\x81\x5c\xb3\xd1Q\x81V \x83#\xec\x9f\
+\xcbsg\x1e0\xef\x91\xdd\x93>4\x9c\x04N\xce\xa6\
+J\x13\x8e\x14H\xa8\xe6R\xb3\xf4\xfe\x8fg\xf3\x1e\xff\
+\x14\x0e$K\xc7\x97\xcd\x0a\x09 \xeb\x91C\xeb\x91\xdf\
+\x13i\x1d$\x93\x04\x8c\xe9\xb7\x19\x090x\x9fY\xe6\
+\x98\xc8\x81y{\x88\x99H\xfb~P\x90=\xed\x87\xcc\
+\xaa\xf1)\xddk\x9eWN\xf0^X%\xf4\xd4\xba\xe0\
+\x95}*\xfdr\xb0\xbd\xd5$\xc8Of\xd5\x87\x03+\
+\xfdlH\x0a\xa9\xc4\x90p\x92\x83\x8fN\xba\xaf;o\
+\xc9\xa9P\x1fo\xa8/8\xfb7\x0e\xbbt\xa7\xdbc\
+\xcd\xaa\xc4\x08\xf2y `\x0e\xecI\xb02\xb0\xf9\xa7\
+}\x02\xc3\x12\x89\x8c\x7f\xd65\x87T\x1b+\xf7\xc7D\
+\xda\xfa\x0f\x91\xa4]\xadD\xd8\xff\x96\xf5\x17\xce\x08\x90\
+\x159\x80H\xfb\xc3`\x8dd\xef\xc9\xb2X\x19\x82\xcf\
+\xba\x82\xaa\xc4\xe8\xcc\xd1\x19\xa33re2'\xac\x1c\
+\x19\x22\xce\x07*\xdd\xdd\x01fe\xde\xc3\xe1\xd0\xfc\xd1\
+\xac$\x9cs\xef}\x0a8\x87\xcb\x9bU\x01>d\x9d\
+j\xdd\xe2}Y\x0e1\xdd\xd7v=\xb3\xf4\xfe\xad\xfa\
+J\xfbp\x0e\xb3\xd2\xa2\xc5\xefq`\x9b{\xcc\xaa\x0a\
+\xadz\x87s\x22b\xaf\xd2\x92\xd4\xd9\xbfQ\xe5@\x09\
+\xb9\x03\xb4\xbf{\x9bY\xbaO\x17\xf7\xad\x03T\x9e\x5c\
+g\x1e=wz\xa1\xef\xe9{\xee\xd1\x1d\x1f\xdd%\x92\
+:\x02\x81}TH\xa0\x05F\xb2\xc1\xb0\xa1\xe7:\xec\
+y\x22\xf1\xdb\xb0pD\xa4\xc0|k\x0b\xcc\xbd\xb5\xe8\
+I\xb3\xa2F\xe1j&\x04\x92\x0a\x84\xda\xc3\xcd\x0a\xc7\
+A\xbb\xa0Y\xba\x7f/\x0d_\x1c\xbeXz\xde\xbb\xf3\
+\x93\xfd8\xab/]i\x81\xbe\xb9\xb9\x99\x04Q\x89\x10\
+\xc39\x18\x89`wJ\xb2\x93\x85\x08xSi\xc5\xc8\
+\xe4\xccGV\xea*B\x12\xb5\xeb\x9b\x95@;\x9d\xc7\
+\x1d\xa6\xc6\x012\x12yH\x10Z\xb9g~\xbc\xb0\xe3\
+S\xa0i\xcf5+\x81O\xf7\xddd\xa7\x17\xce(G\
+|(\x90\x19\xde\x95\xecw\x85\x0b\xc0\x91\x19jM\xf1\
+u\xef\x95d/\x17\xe4'd\x8f\xc6\xa8\xd0\xdd\x5c\x12\
+ \xd9\x0b\xbd\xbb\x9c\xdf\xd81\xc9\x8e-\x15l\x12\xd2\
+\x99\x0c\xf6V\xf9?\xabW~\xa8\x12\xc5\xae\x03o\x80\
+\xec\xefW\x81\x1d\xc8\x0f\x12K\x227\xb4\xd9g\xf3/\
+\xabj\x1d\xafV\x83\xa3+\xddv*\xd4\x0a\x80F\x9f\
+\x1a\xed\x99Y\xfc\x85\xc0\xf1\xc48\x10t\xfcR\x02}\
+*\xb0$\xb6@\xd0\xa8\x05$\x87\x8d\xebW\xe4o\x86\
+\xcb\xbb\xb5\x9a\xaf \xe2\x08\xf0IT\xdddV=g\
+\xd3\xf4\xba\xa2\xf2cLf\xf1\xc7\x15\x97\x87T\x0d\xdc\
+?\x86\x04qa\xb3\x8a\x1b\x84q\xc1~\x89\x0e\xbd\xfc\
+wo]\x11\xb2\xa9\xd9\xacOX\x8f\x0e\xe8[\x15\x9a\
+\xaf\xf7\xfb\xa1\xfb1\xa7\x08\x09 n\x14\x0f\x80!\xc3\
+\xa3R\x0e\x195-;j=\xf4\x04\x0d\x10{\xfc\x0b\
+q<8r\x0b\x7f\x83\x00\x1e\xae\x06\xfc\xee\xd02\x9b\
+\xc3\xbe'\xb4\xafL\xc9\x88\x80~\xdd\xbfT\x95o^\
+\x87\xbf\x80\xca\x12H\x16\xb5h\x92\x90p\xd5\x15\xb8\x16\
+\xf0\xab\xb9>8\x0c\xd4\x0a\xe8-\x5c\xf8\x83\xf8\x971\
+\x00'\xb0\x06\xa2.\xf2p\x1f\xf7\x04\xfc\xf8\xc5\x04\xfc\
+\xf8\xb1\xf8\xa5\xa8\xa2\xa9un\xf4\x07\xb3\xff\x0f\x19w\
+`\xa9\x87l\x97u\xd9\xef\x0bqN \xeb\xf3\xf3\x85\
+\xb4\x0f\x84\x02\xe7\xc7uE\xb6\xfb\xd8k\x1f\xae\xdf\xc9\
+\xc7\xa9\xd4s\xfd\xba^G>\xc0\x19\x12?\x1f\xff\x95\
+\x16d!\x85<\x9e\x8b\xdc\x01\xc4} J(TD\
+\xce\x03\x10}R\x19\x99\x09q\x119\xc6\x22\xd4?\xfe\
+\xe3uA=a<\x9f~\x9d\x81`\xe3\xa3\x22\xcaD\
+`\xa2(\xb0r\x96m\xf4\xe2\xf9\x82pc\x9c\x0d^\
+\xba\xcb3\x91\x8d\xd1\xfb\x8b\xa3G\xa0G\xcf=\x0b\x1f\
+\x15~d\xbf\xc4\xfe\xcc\xc56\xf3\x8b5\x96\xca5\x01\
+ \x81+\x0e8\x01\x10\xbd\xbe \x05`\xff\xa67<\
+\x04\xbc\x9e!\x87\xdd\x19h\xe6o\xd4\xfb\x182<\xde\
+k.\x99E\x9f\x98o\xd3\xf5*3\xeb\xf7\x05h\x1c\
+\x81\x0f\xa4\x14\x0fkC@\x16L\xa4G>\x11U\xe9\
+wG\x13\xd23*Np\x0dL\x9f\xc8\xceI%\xc6\
+\xcf\x8f\x05\x09\xb2\x1b\x16,2z<W\x16@&\x8a\
+2\x7fl\x00\xde\x1b\xaf\x05xl\xf3l%\x81\xc4?\
+&.l\xa4\xf4^\x92\x11\xc6\xe1\xa2B\x0d\xd2\x01\xc4\
+\x06\x99\xd2w\xeb\xbc\x17W\x0b\x03\xd0{\x02O\x90&\
+\x8c7\x8do2\xf2\x0e\x09c\xa1\x82\x13B\x10<g\
+\xff\x7f\xbb\x9e\x13\x10\x1e\x12'\x5c\x07\xcf\x8d\x89\xcb\xc6\
+\x0a\xb2\x83\xfb\x08i\x1c\x0e\x16\x0e\x06\x10}\x12* \
+Y\xd8\xe0\x90\xadT\xe6\xddYg\xa9\x88\xf0\xdc\xe9i\
+'\x90E\xb6\x8f\xf9\x1b\xb8\x01\xfc\xbe\x8au\x9f\x8cl\
+\xb3\xbdY5\x0f\xd43\xe7\x08\x1c t\x82.\xfa\xfb\
+!\xf1\x13\x84\xd4{\xf9\x08\xa8I4@\x02\xc8\x82\xc7\
+s\x8b*\x03<\xb7\xf0|\x1cB'\xf9\xa0\xee\xda\xee\
+\x1a\xeb%\x06\x82IE?\x93\xce\xcd^\x02]\xa0\xdc\
+\x9e\xf0Q\x80\xea\x08&Z\x11\xe4`xo'\xdc\x05\
+l\x00\x22U\xf2\xca\xc4\xc5f\x15\x89\xaa\x02{\xafh\
+#\x93Ho\xe5\x01}\x05\xd7\xe7\x13H\x04\x1cJ\xf5\
+\xb8r= w\xda\xef\x98\xa5\xe3\xaf\xcd\xd2q\xbaY\
+:\xeeg\x96\x86\xd9\x8ef%\xa0vvv\xc9\xf8!\
+\xd7\xe4\xc8\x08A\x04\xf9}{\xaaY:\xce\xd5\xce\xdd\
+\xce\x9d\xd7\xd5d\x15D\x11\x95\x94\xa72\xbbI\x81\xea\
+\x22S\xa3\xd6\x11\xdf\xa8\x99?RU \x81\x9ae\x1f\
+\xafSE|\xb3*\xd1\xc8\xfe\x00b\x00r&\x12p\
+\x04\x86 <N5\xab\xa0\x82\x90\xde\xc1.\xcc\xfb\xac\
+\xfe\xf3\xfd\xbc\xaf-i\xfbZ\xbbN\xbbv\xee\xd1\xbf\
+?\xe7\xfe\x0bBf\xdflE\x96l7\xb3t\xfc\xbd\
+Y\xe5\x08\xf6\x9bj\xdf\xea\xb0]q\x14s\xa7|\xdb\
+s\xd7X%\x93\xca}\x86P\xaf+\xf2\xb9t\xfe\xed\
+\xbd\xc9\xd2\xbci\xdfg\xa6\xc0\xf0\xf1\x0a\x12\x0cy\xdb\
+\xcf\x93]\x92\xcf7\x9dq\x91C#\x80\x1b\xed\xda\x8f\
+\x17Z2\xda\x83\xdb/\xb5_\xaa\xb8\x06\xd4\xbb\xef\x90\
+X\xc8j\xe1J\x11r\x06\x19\xce\xe6\xf0\xbe5\xa8\xfb\
+@/\x1b\xd7\x0d-\xe2.\x89&g7\x87$L\x09\
+\xf4v[\xb3\xf4\xf3uf\x15BB\x88\x1a\x87\x84+\
+\x80\xf4V\x0fz\xc6\xe5\xd8\xb6;\x9b\x95\x04\x0b\xd0\xdf\
+\xee#f\x15;\xb7U\x1c\x97\xac\x10HjEp\xce\
+\x86\xff\xd5|\x5c\xaa\xdf/P\xdf\xf0J\xcac\xe2t\
+\xd9r\xb4\xc5h\x8b*\xc1'n\x03\xc8:\x1dZM\
+\xe0\xc78C^K-&\x90]z\xcb\xdb\xb4d\xd6\
+\x22\xb2\x8dY\xd1go\x8e4K\xbf\x9f\xbb\x9f_\xed\
+|f\xe9x\x86Y5\xae\xd7\x97\x0a\xc6\xd7\xcc\xd2\xb1\
+m\x07\xed\xa0\xc8\x93\xe5\x8a\xf9\xd9\xc9\x9f\xbb|xy\
+w\x85\x02\xe9\x872\xf2aM;\xdfn\xbbd\xdb\x97\
+DV\xb7[\xb2\xdd\x0b\xa7R\xf7\xeed\xef\xca\x9c\x01\
+\xc9\xe4?\xa4u\xbb;\xd9\xac\xe8\xd6wS\xcc\x0a\x97\
+\x84\xb3\xd8\xabW\xdf\x91cw\xf4\xfeD\xb7\xa4\x10\x19\
+8\xacBt\xcc\xf8\xa6Y\xba\x8e\x9b\xcc\x0a\x14\x9cq\
+G\xa2\xa3\xfb\xaaY:\xbe7\x99%\x16\xdf\x9cl\x8e\
+\xb2.\xe1\xf87\x7f2\xabH`\xad\xb5\xe6\xe6*q\
+\x0a\xd9\x9eX\xec]\xcdJ~\xad\xcb\xd4\x1a9\xec\xa0\
+\xf2[\x94Xp\xd25\x1b\x05\x86\xfc\xd85\x99\xcd\xb3\
+W\x93\xbdV\xb5\xa2\xb2o+\x01\xee\x10w\x90a$\
+\x0a`m\xa7\x12\x8c\xa3~k\x1f\xa0\x8f6\xef\x91\x19\
+ \xcb<\x80\xd0z\xe7\xfb\x0fPn\xa0\xd5\xaaP;\
+'\x89A\xc6/\xae\x02\x5c\xf6m\x0aT \xc8\x14h\
+\xa2v\xc2\xbc\xa2\xe7\xdc\x98arB\xcb\xf6\x855r\
+b\xf1{\xd6\xd2\xe7\xfe\x11\x15s\x121\xec\x9f\xf2;\
+\x90\x05w\xbf\x98\x02\x1e\x01\x0fd\xdb\xf8\xd5\xac\xdb\x92\
+\xa9t\xbf\xf7l\xb32\xcf\xbcU\x87\xf9\xa8\x02\x04\x9c\
+\x0f\xae2\xa1J\xbb\xcb\xff\x11\x9f\xd0\x8a\xa8\xc4\x89\xfb\
+C\x04V{(q\x8d_\xfa\x90H\xee\x08pI<\
+\x169\xed\xde\xaf}!\xb3_\xf5\x81\xde3\x99\x93\xa0\
+\x97\x81\xe4\xbeF\x92_z\xfb)\x84\xe0OP@E\
+\xa6\x97x\x07\xc4b\x907w\x0e\x03\x12\x03\xf8\x13p\
+8\x11\xb8\x12\xe0\x12\xe8G\x88;\xea\x06\x5c7\xe7\x1b\
+\xa1\xea\x04\xb2p!\x11w\x80\x00\xe0\xfeDh\x7f\xe8\
+mw\xe4\x00\xf7\x01\xff\x8f\xc0\x96D\xc0\xcb\x81\xcb\x8c\
+\xcf\x8d\xe4\x82\x04\xd0\x04\xe4\x91\xab`Jh9&1\
+@@\xcc|\xe4\xf5\x5c\x7f$9\xe7z\x22i\x1f?\
+s>\xdco\xc6?\xf7-\xaa'D\x12A\xe2f\xee\
+\x0f\xe79\x19'@\x94W\x9f\xec8\x89|\xe2\xb8\x9f\
+\x10\x81\x0d_\xc8\xdb\x18\xe8l\xd8\xc66\xbe\x84\x16\xb2\
+wU\x81\x10\x8ez\xec\xd1\xc0\xa1\xe3s\x80\xa6\x00\xe1\
+\x00i@\x80\x22r3_(\x158\xd0\xab\xea\x991\
+nh\xd1\x99\xec?\x9f\xc0\x9f\xc4\x02\x81-\x88\x05X\
+\xe4a\xe1\xa4B\xc7\xc0c\x80\xf0~\xce\x8f\x0c\x1c$\
+<\xfb\x00\xedV\xef*\xf7\x8d\xc0\x19n\x04A\x8f\x1c\
+1 \xfdS\xd7/\x1d:\xdbk\x7f\xbf\x80\x8c0\xa0\
+\xfe*\x07\xf6\xad\xca\x14^ y.\xa0\xe7_\xd5B\
+\xfe>A\xe2y\x8eT\x1a\x7f\xef\x0b\x10\x99\xad~@\
+\xd2k\xa3LqlM\x80\x15\xdb\xcf\x83\xde\xa3\x98Q\
+\xe2\xf5\x826\xbbn\xf8\xa7\x9a=\x9a=\xaa@=\xb2\
+\xee\xf33\x8e>\xe3\x83\x04\x0e\xe3\x83\x05\x85\x89\x19\x11\
+)\xdc7d;\xd0AUB\xc2\x11\x19\xeay\xf3\x05\
+\x9f\x0a7\xcf\x97\x00\x93\x80\x81\x85P\x89\x93\xe4F\xf5\
+\x99gAx\x9b\xafI\x96\xf2\x96\x9el\x92\x9e4\x1f\
+G@\xf3\xaf\xefIp\x9c\x94\x90\x85\x8e\xf1\x05\x89\x0c\
+\xad\x16\xe8\xe0\x929ga\xd0\xf3$\xf3\x0etw&\
+\xce\x0b*\xf3TV\xe1^ \xa0f\xfe\xe1\xd0\x93\xa0\
+\x81$\x86\x85\x97\xfb\xcf\xe7\xc3\x0e\xbf\xa2\x90\x1e\xcc+\
+H\xfb\x14h{\xcf\x98\x1c18\x08`\xf3E\x8d\xc0\
+e\xef\xb4\xc1y@\x02\xd9\x1a\x10M\xb5\xa6\xf8\xf9\xf3\
+\xbc\x81\xfa\x93@\xd3\xf5t\xff\xec\x1e\xef,\x81rc\
+sCsc\x05!\xe7\xfeC\x8aC\xc2\x06rG\x1c\
+\x7f\xc8\xffx\xfe\x8c\xffc\xb3\xf9\xf9y\xeb\x13\x95\x10\
+\xe9K;\xa2\x80\xf9\xc7\xf7P\xe9\xc31\xc2\xe1\x91\xfc\
+\x17\xdf\xe3\x15P\xad\x0b\xb9\xe2\x95\x9eG;\xabY\x0a\
+\xf0\xbf78s\xf0\xbd\x1c\x10f\x92\xb9\xf6q\xb3t\
+<\xde\xac\x90\xbb5\x7f3\xabz\xfe\x81\xa2\xf3\xfc@\
+v\xa0J@\x80.Vbt\xa1\xe9\xd5\xe6}\xed\x96\
+fy\xfe\xe6DH\x0el\xd7V\xcf\xe4.3;\x16\
+N\xba\x05R\x81V\x10\xd6ok\x08;\xbd\x04\xda>\
+\xae`Y\xd7\xbe\x92\xd9\xfe\xcf\xd7z\xb3pE\xe2D\
+\xc5_\xe3\xdcI\xde\x90\xc7\x13Y\x1a\xa4r\xe9\xee\xde\
+\x9e\xef/\x89\x08H4\x03Y'\xbd\xa9@\xcdA\x06\
+\xb8\x03gnV\x0a@Ld\xcdX\xdcq,\xe9\xf1\
+\xf7\x0a/\xfb\x8c5\xb0\x1c]\x12t\x99\xbc\xd13\x09\
+\x81\x00\x00 \x00IDAT\xd0\xc8\x13o7\xab\xf6\
+5\xd6#\xe3\x0c\xffz\x95p\xb2t\xef\xe3%\xc1\xd2\
+=\x99\xec\x89j|h\x1c\x80X\xf1\x16\x15*\xeej\
+e\xf0J\x85\xa0\xd3\x9e\x08W \x97f\xcf\x13\xf6\xb9\
+\xdd\xb6\x16B\xe6\xfd\xe8\x11\xdb\x8f\x9a\xaf\xa7\xc0\xb5\x97\
+1\xeb\xa1\x92\xacG\x92!# i\xdfmV\x90>\
+\xdd\xcefU\xe2\x84\x04\xbc\x10v\xcd\xbf\xcc\xd2\xfb>\
+n\x96\x03\x8f_fR\xcac\x9b\xe3l\x9c\xa0sO\
+\x82\xc8e\xb6t\xbf\x86\xfb$\xfb\xac\x12b7\x89|\
+\xf2\xaar>\xdd\x0f\xcdJ`\xe6\x89C!\xf7\x5c\xd7\
+\x9d\xd6\x04\x15,F\x87\x99U\xf3\xc1\xd6\xaf\x9d\xb5\xee\
+~\xb0\x04\xdaN\xc6i\x01\xf8\x99\x157\x848\x142\
+\xf7\xc1\x12U\xcf)\x90\x7f\xad\xc3Y\x1e\xf1\x8b\x05A\
+\xd3\xe6\x7fi\x9e\xdf<\xb8epKA\x8c\x0c\xdem\
+\x96\x03\xcd\xac^0\xd86\xd9v\x0a\x14\x8eL\xf7\xe1\
++\xc9\xd2\xef\x87\x03\xb3\xf4\xbe\xf5\xfa\x04N\x96\xd9\xdb\
+\xa4R)Q\x85\x96\xd6\x02*\xf2\xdd\xb7\xcc\xd2\xf1\x22\
+\xb3\xa2b\xd2}\xc1,\xbdn\x0b%J\xce\xebI$\
+]\x7f\xfe\xe3f\xe5\xb9\xe4\x9e\xffUK\xe5\x9b\x96\x96\
+\xd1\x82f\x15\xf4W\x08\xa8\xe1\xaf\xcc\x0aWHV]\
+H\xe3wxJ\xb2t^\x83\xb7$\x9b\xbfBV\x19\
+i\x9c%\xecn0\xab\xb83D\xde\xd9\xbe\xcd,}\
+\xceN\xc9v\xceH\x99d\xe98\x9bY\xc5U\xa3V\
+T\x02D\xe6-\x05\x10\x0a\x0f\x90\x03\xa2\xf6\xe0\x15x\
+\x12@\x9a7\xbe\x8f\xc1=A\xc5Y\x08;*y\xa8\
+\xba8\x02\xea\xd9\xcc6U8Rh5\x03b\x8f\x9f\
+\xa5\x96S\xefe\x17\xe7\x8d\x93a\xb2~IU\x81\x96\
+4G\xfe\xa1^C@Hk\xa0\x10\x14\xf8)\xee\x1f\
+Qa~*\xad\xd2OUP|\x0a?\xf8\x83\xf8\xfb\
+\xab\xaa`\x83_\xaay\xc3z\xe6\x1c]\xec{T\xe6\
+\xf1\x93I,\xc2\x9d@\xab\x81d\x01=qIb\x99\
+\xc4\x8a\xc6\x9b\x07\xf4J\xe8\x8f\x0e6\xab \xff\x04L\
+VV\x5c\xb9*\xc8Pp<e\xec;\x99\x93\xe6G\
+i\x9d\xffQ\xe5\x0fAJ\xc8~\x84\xff\xb6\x8c\xe2\x86\
+\xb7\xabE\x10\x7f\x96\x80\x0f\xbf\x96\xf3\xa6E\x13\xff\x80\
+\x82\x0d\x9c3$\x92t\xde<OWS!\xd1M\x9c\
+\xc5x!AN\xa2\x81}\x95V$\x91y{\xc5\x1c\
+\xb9?\xfcJ\xfc^\x02Q\xfcQ\x12\xad \x22\x18\x0f\
+1\xe0&\xee\x01!\x10{\xdec\x22`2\xee\x80\x08\
+Y\xc7\x8f\x8e\xe4w\x93\xb1\xe3S\xd8$p\x86\xfb\xa0\
+\xb4\x12\xe4\xa3\xcb\xf8\xdd\xd8\xcb\xb3\xce\xa4\xf2E\x01\x8f\
+\xca?\xf7y\xb2V\x08Z\x0a\xe0,\xe0\xfe\xf2w\x0a\
+\xb5$\x12\x8a,\xfb\x84\x96\x04O\xacA\x1a\xc8\xef9\
+\xafx\xfd\x11\xfa\x1f\xb8\xc6\xfc\xef\x91\x84<\xa8\x88\x8c\
+\xe7\xc7AF$\x92\x12\xbcP\x0dl>\xd8\xdc;\x1c\
+\xdb\xb9*\x07\x17\xc7/d\x1e\x9aA\xb2V\x19\xd5\xe5\
+\xaa\x00\x9d\xdeZ\x02\xff(WA\x86P\xe4T\x1e \
+\xf1\xc0I\x5c(0N\x17\xd9\xdf\x00\x1co&\x0a\x81\
+\x22\x89\x05*\x9aou\xbd\xf9\x89\xd0\x1cn$\x89\x05\
+*\xd9,\x80\x9c/\x81(\x0fdaq\x12\xec\xae\xc0\
+\x97\x85,BE\x90a#\x00\xa7RJe\x15vw\
+\xb1'{\x82\xe5\xed\x0a\x80VPO6\xbd\xd3\xfb\xf6\
+\x90\xed\xd1\xf7\xb5\x00\x12\xe0\xe18r\x1dp&\xd0\xda\
+\x10\x07\xbc\xa0kc\x1fR\xc5\x98\x8dn]\x05\xca+\
+\x8b\xbc\x90J\x1d\x90u\x10!r\xb0\x9d\xdb\xe0Z\xf5\
+\xc2\x0aZ\x0c\x09\x8dg\x8c%\xaf6S\x02(\xf4P\
+\xb9#\xaf\x0d\xde\x13\x16@\xd5\x19\xaf$>x.,\
+\xec\xea\xb9\x03j\xe4\xe4{T\x9a\xc9\x94r\x1e\x05\xd2\
+\xff\x5c\x9e\x80s\xe6&\x83\x99[\x08\xa8\x04)a\xe1\
+\xe4x\xe8O\x83\x5c!S\x8aZ\x05\xb2J\x92u\xf3\
+\xdezd\xde\x80\x86\x13\xe8\xf2\x1c\xb9\xaf$X\x08\x90\
+\x05\xb9\xf7\x84Y\x94\xd7\xc4\xd1\xa0\xe7\xadp\x1f\xf4\xb2\
+a@\x02\xf9\x1c\xe6'd\x95\x82\xee97\x08\xc8\x1b\
+80T\xa9sD\x10\xbd\xe9\xcf\xf5r@^\xd1\x84\
+,\x8f\xf3\x17\xf2\xc1\xd9\xf0\xa5\x7f\xeb\xe3\x17\xc7\x00d\
+\x0c\xeb\x03\xf3\x09=zH\xf4\xa8@\xc0\x06\xac^Y\
+ \xe5d\xca\x9b\x0b\xcc\xaa\xf5\x8c\xde]\xee\x17:\xcb\
+r\x5c\xad\x131\xf7\x22\xb2\xfe\xd0\xebO\x85\x08\x0e\x13\
+6L\xf5\xa4{\x86\x1e\x19Dz\xd6\x15`x\x02\x0a\
+(\xbaz#\x9d\xd3\x00\xf6~\x93\xaf:<-K\x9b\
+\x98\x95\x8ab\xbb\xafY:\xfe\xc5,\x1d\x8f2+\x09\
+\x09g\xbfW\x0f2\x81\x16\xd7;\x9a\xdd\xac\xda(@\
+\x5c\xd1JB\xc5\x01\x08$\x0e\xc9\xfefU\xc2\x84\x8d\
+q\xf9\xb1w\xe5\x04+*\x0cb\xef7\xea\xb6\xac\x0a\
+A\xa5Y\x95C\x10\x19\xed\xa6fe\x5c\xb9<!\xb2\
+|\x96\x10\xb9\xad\xbc\xde[\x86\xd4\xea\xe1\xf7\x9f\xc4!\
+\x1c\x0b\x1a\xef8\x86\xed\x16f\x82\x02\x1f\x93+R\x97\
+YEj\xb4\xa9Y\xe5\xe8A\x8a\xb9V\xdfC\x9e9\
+\x11\x9b\x02\x95\x84,\xcb\xcf\x97y+\x96h\x90-N\
+\x0eh\xbd\xf5\xf7U\x01\x05\xaa\x0aJ e\xf2\xa8\xba\
+\x82b8\x11\x83\xea\x1ebV\x91Xq\xdf\xad\x07\xf8\
+\x9d\x22uL\xf7}\xfc\x08\xb3\x5c\xf9\xee\x11\x1dr\xf4\
+2r\xc0\xe6\xe5\xc1f\x15\x82\xcez\xa9\xab\xdelH\
+\xa8\x8cb\xce\x129\xa6>o\xd0\xf1\xb4~\xf7\xeb%\
+\xbd\xd0T\xc6\xb4\x9f\x22\xef\xe7\x09\xf5/h\xde\x8b+\
+\xa2\xbb\xd7\xac\xba\xae\x1f\xf5\x15\xb1vW\xb3\xea>\xad\
+f\x96!\xe3\xe7\xb4\xe7\xe4\x16\x96\xad\xad\x85\xc5!\xad\
+\xda\x17\xba\xcb\x93]\xa6\x16\xb1\x85+\x99@\xf5\xd6w\
+\xd7'\xbbN2\x97S\x0a\x17\xc3pk\xb3B\xb2\xe7\
+\xfe\x85ZT\x08l=P\x83\x13\x80\x96\x22c\xe7\xbe\
+\xba\xec\xb7\x0eu\x06Q\xb1d\x8f(qYF\xfc\x09\
+\xcd\xa7\xf6u\xb3t\xfcJ\xfb\x95\xc1Wz\x95\x8f.\
+\xdd\x87\x19\xbb&\xdbE$|\xafdY\xcc\x1f\x9a,\
+\xe6\xe0P\xb3\xdc\xe2\x94\x13\x17\xdd\xb5f\x15\x92\x83\xa3\
+\x12R\xed\xf2\xc9\x96\xab\x12>\x90\xcci^tG&\
+;\xaa\x8c\x87\xee+f\x95J\xc0~f\x85\x1c\x8c\x80\
+!\x93\x18\x1a\xcb\xff'\xcd\xc4\x8a\xbfB\xe1\x82\xe8~\
+bV\xf9\x03\xacw\xfc}\x11\xb3\x82\x10\xcbr\x97\x9f\
+\xae\x10A\x22\xa1E\x16nx\x9dY\xfa\xb9M\xd6(\
+\xc0M\xe3|\xd8\x99U\xc86*\xdebu\x87\xab\x03\
+N\x92\xee\xd7f\xd5zC\xab\x93\x0a.\xf9zv\xab\
+\xb8/P\xd90/\xe0f\xa99l[\x05\xa8\x0f\xe7\
+Zt\xbf\x9e\x9d\xa8}\xef\x80\x8a\xcb\x8a\x1ef\xaeK\
+\xad\x93\xae\x1fO \xc2\xbe\xae\x04\x84'\x18\x8d\x0b\xa3\
+U w}\xd5;O\xcf62\xa5\x04z I\x09\
+\xd4I\xd4\xaf\xa2}\xd2\xc2\xd2\xa5+?\x98\x8a2-\
+\x05$\x00\x94\x90\xf3\x84\x04\xc8_\x12\xb5\xc8\x9d\xca\x7f\
+kW0K\xf7\xef\xebi<}='P\x7f\x9ce\
+--\x11\xb6f\x85\xf0\xc3Of\xbd\xc1\xdf\x22\xce\x93\
+\x1a\x8e\x9f7~\x1b\xe4\xdb \x17i\xc5\xdd\xca\xac\xcc\
+_\x13\xd7\xcb\xf2zp P\xe0\xa1u\x8e\x84\x0e\x05\
+-\xfc\x84\x0d\x94h7\x86\x82\xaf\x16\xe4\x80\x9f/\xfe\
+\x1a\x81\x1b\xa4\x8d\x223\xf6\x0a;$\xc2\xb48\xd2\xb2\
+Le\x9b\x16A\x02A\x12\x84<G\x02A\x021\xfc\
+1\xfc4T}\x94\x10'\x81\xe1\x893\xf69H\x8b\
+i\xa1&0%\x81\x0dG\x13=\xff$\x00\x18\x7fJ\
+\x00{\xa2#\xb0\xd8\xa3v\xe5$\xd2\xac\xe3\x14L\x08\
+x\xd9\xff\xb9\x0e\xe2(\x12\x03\xb1b?\x99, \xf1\
+Q\x0cp\xa3\xeaY\xe4\xf6\xc2o'n\x8b2\x99\xf1\
+s^\xef[_r\xd4\xfbB\x85H\x89-\x04\x91\x93\
+`\xb2V\x88X\xe1\x8f\xd7\x15U\xd7\xf8\x9ep_\x9c\
+T\x94\xf3!>#\xde\x88=\xfcQ\xde\x90\xc4T\xac\
+\xf4\xf3\xfb\xa8\x16\xe7$\x803\xb2\x10B\x7f\xe3_\xab\
+\x02~\x12\x02\x91\xb5=\x92\xdc=\x9fs+\xe5\x81s\
+\xc2d4\x04-s\xddy\xfeQ\xf1\xa5\xb2G\x80\x0e\
+\xf9\x972\x9c^\x11b\x80\x11\xd0\x93xh\xf5y1\
+3\x14\x8f,\x88,t\x04\xc6,\xa4\xb1W\x9d\x8d<\
+\x9e'\xac\xd1\x90\x93\xf1:\x90\x04\xe8z\xeedV-\
+t\xb4\x0e\xb0\xb0\x13@\x12P\xa8B\x08D\xcd+\x85\
+J@\xf8\x82F\x86\x1a\x92&\x16.2\xb2\x04n,\
+\x8c\xf4\xf2\x83\x90\xc0A\x86<e\xc3\x9e\xbd?\x85\x0d\
+=\x04\xf6\xd0~a\x84\xfc\xcb\x07\xfa\xcd:O&x\
+d\xab\x04\x19A`\xce}\xa37\x8b\xf1C\xcb\x802\
+\xa2~\x1f\x09\xc8\x02y\xa2\x8f+ 9\xea\x19t\xf6\
+W\xae\x83q\x03\xe4\xfaQ!)\x98\xb8\x03\x91\x08\xb2\
+\x91\x00\xa1\xc7a\xc2\xb1\xe0\xbeI\xff\xda\x17\xe6\x80t\
+I\xcbk/\x07\xb8E\xf3\xb1\xe6c\x15{\xb4X[\
+=\xb0\x8e\xbdT\xdc?\x02Od\x9c \xc3\x82\xbc\xed\
+c\xfa\x5c*\x88\x90/\xb2\xd1\x12\x18\xd3\xbaBo=\
+:\xd5L|\x1c^\x90\x0b\xb4\x86\x90` 1@\x8f\
+ \xe3\x8c\xdeP*\xdcB\x02\x10PP\xd9\xf5\xc0\x12\
+(\xf9\xddfUf\x1b\x12A9\x1a\xdd\x9ef\x15T\
+\x8d\x8a%\x81\x98\x02xo\x15\xb8\xc6\xac\x9c\xaf\xf76\
+\x92A\x17\x9b?$W\xc9\xe9^1\x07\xb2z\xde>\
+\xffq\xd4\x98\xc7\xacSb\x95v9\x22d\xc8\x80\x84\
+\xc3\x22\xae\x0a?$L\x90\xea9\x09\x14\x8e\x10\x89K\
+\xf5\x96{F\x9c\xc4\x06=\xf1\x82H\xb7O\x9a\xa5\xe3\
+\x1cf\xa5\x12\xdaN1+=\xb1\x90\xaa\x82\x04h\xef\
+7K\xc7\x95\xcd\xd2\xf1_f\xd5FDB\x8d\xf9\xa1\
+\x9eVw\xe4\xe9\x855\xbd\xf9\x87+\xe8+\x09\xb4\xeb\
+\xe50\xb0\xbe\xfd\xa0w`\xba]\xfb\x8a\xeeh\x15U\
+\x9e\xae\xee\x13\x85\xcd\x89\xcd\x09\xcd\x09\x19\x12\xde\x8f\x07\
+\xa0\xc27\x9ae\xe8\xf3Q\x06}\xce\x7f\xb7\xde\xc1\x83\
+\xcc\xca\xf3\x18\xfc\xd8\xacp\x05\xb0n\xe5\x8a\xea4]\
+\xcfBy~\xf6\xbd\x9dj\xfd\x00\x99\xe0\x89B\xd4\x12\
+$w\x05\x97\x80W\xf0\xdf\xa5D\xd9\xf5r\xb8q4\
+\x19g\xb06\xab\xd7\x9b\x84\x88\xb3\xd8\xa3\x0eA%N\
+\xe3\xc6\xc2W\x0b`\xf3>\xf7\x9e\xaa\xb5L\xfb\x92#\
+q\xf6Nf\x95\xd7/\x98\x15\xd9\xdc\x5c\xd9J\x1b\x7f\
+{I\xb2K\xabu\xc6\x10c{\xa9%d)%\x10\
+\xe6\xabX\xfa\xe5(t\x17\xf6\x95\xdbt\xee\xbd\xe3-\
+\xce\x82\xee\xeffU\xe0.\xce\x9e\xee\x0ffU\xc0\x01\
+y\xa1\xd4>\x90\xb5k\xe6h\xdel\xe4{YU\xe0\
+\xf0\xc2\xb9\xe0d\x8f\x82\xa8\xe7\xf9\xb7Oi\xc5q\xd9\
+Q\xc8\x10I\xf8J\x06\x0e.\x89\xf6\x08\xb3\xb2Nz\
+\xe2B=\xe9\xcc\x9bn\x09\xb3\xc25\xd0~\xcfL\x10\
+\xfd\xf7\x8a\x9b\xe1\x17\x05\xb92\xfc\x82\x99\x12\xd9\xc8n\
+}\xaejyR/\xbe\xcf\x0b9\xbc^!7\xd9\xbc\
+\xcf\x08r\xff\x8d\xd2[N\xcb\x95\xcbv\x81\x944\xca\
+\xb53\x94\x88<\xba\x92%=\xa1\x9f\x17\x83\xfd\x93\xa5\
+\xfd\xa4]\xb6]v0\xbd$\xe2s\xa0yA\xb5\xde\
+\xaa\x85a\xec\x0b\x82|\xffA=\xbe\x90\xdd\xc1a \
+\x07?;\xe2\xd3\x0a\xb9g{\x85Y\xba\xfe5\x92\xbd\
+G\xaa\x01\xc6M\xb1G_\x98\x18\xbe\x92\xec\xe5j?\
+\xd6\xba\x8d\xea\x80;\x9e Z@\x12\x09*\x0e\xb4\xde\
+\xc9$Mf\xf0\x8ar\xfe \x1e\xbb\xab\xcc\xd4\x0a1\
+\xadJP\x87\x02\x07\xeb]\xb7\xadY:>!\x04\x8a\
+!\x11.N\xe7\xb5S\xb24\xcf\xdbk\xcc\x94\xf8\xfa\
+\x9b\xe6\xfb\x0d\xaa(N+\x09%*\xf1\x8e\xf8\x01i\
+bP\xffY\xca\xf5t/\x9b\xa5\xe3Jf%\xa1\xe4\
+GHi\x81\xd0C\xba&2A\x0f\xa0\x80\xd6SH\
+\x81\xec\x8f\xc0\x0c\xff\x09\xff\x06\x84'\xfe\x04\xbd\xcdG\
+\xa4\xf9uDE\xf2\x072LP~\x97\x85\x95\x7f\xe2\
+\xac\xf8\x04\xcc \x0a\xf1\xe7c\xeb&\x886\xc6;\x09\
+\x0e\x10o*@\x81\x94\xa4R\xea\xc8\x88\xc5\xb3\xee\x92\
+\xa9\xc7\xe4\x04\x9c\x07\xc6J\xec\xf9\xfe\xc6?\xb8\x0c\x08\
+$y\xfe\xb4\xec\xd0\xfaH\xc1\x81\xd62\xf6\x1b\xfe\x81\
+TXY\xf3e\xd3^\xfe\xd4\x0b<\x5c7\x01\x0f\xba\
+\xf4\x22\xfb\xf4\xfb\xa6\xfb\xee\xf3G*\x1e^8\x00Z\
+\xff\xb9\xb1\xcff$%\xf1\x05\x81\x1a\x09\x18dy\xc5\
+\xd9\xe3\x05B*\xdb\x22u\xf5\xca1G8\xa0b\x00\
+Mb\x88\x82\x83\xf6\x1d/\x0cA\x168\x87YI\xd8\
+\xfa\xfd\x86\x9b)\x14\xfa<\xd1\x03\x12\x81\xe7\xa1\xd6T\
+G\xb0\x90\x00\xa0\xf2\x0f\xc2-\x06\xba\x9c?\xe3\x88\xfb\
+\x85_\x8e\x9fCa\x93\x84\x05\x05\x05\xfcx\x0al\xbc\
+\x9e\x80\x97\xfbL<\x11\x03\xdf\xd8\xeb\xce\xdf\xa3L`\
+\x84\xf4G9\xeeYDbO\xe2\x80yH\xc5=\x22\
+\xd9\xa3Lw \x01t\xee\x06\x12$\xf1\xba\xa2\xdaY\
+L\xb4\x90\xe8\xe6}\xbc\x0e\xbf5V\xf8c \x1f\x13\
+\x00\xf1\xf7\x5c\x0f\xfe~\xad\xe6\xd7\xda\xdb\xf8E\x94O\
+\xb0\xed\xf8\xe5\x99\xc9\x18`+u\x92\xbbZ\x16\xee\xcd\
+U@\xcd\xfb\x08\xe8x\xc0l0<\xd8\x98\xc9d\x00\
+\xf3`\x98\xe01\x01\xc0\xf7\xce\xa5\x81\xcf\xcf|^\xb8\
+P\xff\xbe(g\xc7@`\xe1\xe1\xfd\xb3\x07\xd6}\xfe\
+\xaeJ\x7f\xaew-_\xf5\xa0\x93\xa8\x00\x1a\xc4\x03#\
+\x10V\x00\xee\x90K\xce\x87\xfbC\xa5X=\xe08D\
+\xb9\xe5b\xc9\xc2\xaej\xd4[F\xbe\xc5\xc2\xe1\x01\x1d\
+\x13\x96\xc4\xc2\xacBdPI\xa5\xe2M\x02\x00H\xb7\
+*\xeb\x0e\xb1\x03\xca\xbe\x8eW\xfe\xfb\x04\x03\x0b]D\
+\x00HN0\x85a}\xaf\xbb\xa0o\x1e\x00\xd2\x03\xce\
+\xfd#@a\xa2\xf3=\x9c\x1f\x9c\x12\x1fRb\x02\xf6\
+Y\x91\xb69G\xc3m\xcaL\x16\xce\x87\x89\x95c\xee\
+/\x95\xda5\xd4JBF\x1a2I\xc9\xb1y\xa6\x16\
+\xee\x0b\xc8\x9f\x9e\xd7\x84d\x81%\xc0Co|\x03-\
+\xc0\x8c+\xc6)\x95I\x05\xe8>\x9e\xd9\xb8\xb8\x8f\x8c\
+{\xa0\x84\x9b\x98\x95\x0a\xbb\x07\xfel\x9c\xaa\x98\xb8\x1a\
+\x05\xf7\x97\x05\x1d\x1dw\xf5~g(\xf1\xd7\xaa\xdet\
+\x90&,L,\xa4\xe2J\xa0b\xea\x1b\xbf\xc8=a\
+W\xcf\x88\x9eAE.\x06\xc4\x5c=\xd3\x1e\xe0j\x9e\
+\xe7\xde\xc9]\xab^qA\xe9\x09\xd0F\x1f1\xabX\
+\x9b\x974+z\xbc\xee\xb0\xd3+H@N\xc2\x85V\
+\x086Dt\x83\xd5\xf3\xee\x8e\x05\xe3\x15(2\x1b/\
+duld$\x82\xb4\xd1\xd13\x1b\xa1\x9f\xde\x8b\xc8\
+\x86(G\xc8[\xae\x80\xd8C\x02&\xa8\xb4q\xb8\x1b\
+\x8b;d[\x04\xfeTf\xdb\x87\xcc\x0a\x9b{{\x8f\
+YI\x04Pi\xcc\x81\xa2\xf5\x86\x9ffV\xe6K&\
+\xf9\xda\xa4\xaa\x10,\xa5\xde\xd09z\x120*\x19\xce\
+\x05\xa0J\x0f\xef'\xf12\xda\xa0\xd71\xf7\x80\xfb\xbd\
+\xa35F&\xcf\xba\xb8Y%\x07%\x95\x83\xc1\xef\xcd\
+\x0a\xd9\x99\xaf\xdb8R\x97\xe5\x9a\xbb\x91\x7fu\x99d\
+\xd4\x12g[T\x90l\xf5\xe8B\x22\x07G\x8a\x93\xc5\
+\xc1M\xb2\x83*\xe4V\x81\xbeD\xa4mw\x94ub\
+4k\xb2\xd9\xc4\xc2\xfbT\x95\xf0#\x91E\x85\xcb*\
+\x8d\xa6W}\xb3Y\x86\xb8'+\x88\x0a\x10\x14\x1e \
+\x03m\x06) \xc7\xba}\x87Y:^d\x96\x8e\x7f\
+M\xf6`%k\x08\xf4\x96#\xfb\x8b\xd6\xa5\xeeP3\
+\x9d\xffg\xaa^W#\xdf[\x5c\x0e\xde\xfae_\x1e\
+\xec\x9b\xec\xf3\xa5gy\xf4I\xb3r~\x8e\x0c\x82\xfb\
+\xe9\x85\xee\xc5\xee\xc5\xd2\x0a\x90\xc6pN\x84u\x1f6\
+K\x9f\xb7\xe0`\xa1\x81\xa98\x9chV%^~h\
+Vz\xd7a\xf1oN4K\xaf\xff\x81Y\xd5sm\
+\x15hS%\xf8W\xb2g\x0br\xa5\xbd\xcf\xacpX\
+8\xa2F\x89Uz\xf2\xe1l`}#\xc0n7o\
+?f\x15\xfe\xe4\x84\xf5\x81\x8d\x10)\x1e`\x1arf\
+\xbf\xf4\xf3\x9cf\xe9xY\xb2\xcb\xab\xd6\xabo%\xfb\
+\xb6\x12\x97_\xaa81,0\x5c\xb18\xc0\xdd.\xc9\
+v-\x0e\xb6;\xdc\x86\xd0;P\xad%k\xe8u\xbb\
+T\x8e\x1f\x08\x1e]o&\xd1\xbcH\x89\xfd\x9b+$\
+\x94\x8d\xba\xb4\x8e\xb6\xb3\x9b)!\x99\xaeo\xfc\xa3f\
+b\x01\x7fG\xc5b\x8f\x9c\x1cd\x8c\x92\xa3\xcc\xd7\xf3\
+\xad\x12\xd0\xb3\xfe\x0e\xb7\x1dn7\xdc>\x1dw\x1f\xee\
+6\xfcd\xe5\xb7PX\x80\x15\x1e\x04$\xb2|\xfb$\
+\xfbl\xc5\xb9 $\x04\xdc\x00.\xb3\x8cL\x9d\x10[\
+\xdd\xcdf\xe9\xfb\x167+\x89\x80\xe1\xebf\x15\x09\x9c\
+\xcd\xc7\xe4\x87u\x9b\x99U\x88A%\x9a \xaft2\
+?#-49\xc5k\xcc2\x17E\xb2Je@\xeb\
+zV\xb1\x98\xa3jQ\x83\xd4\xf5\xf4l\xc5\x9f\x05q\
+h\x95\xe3O\x88\x8c\xda\xd44>\x97\xcc\x12d\xbfK\
+vw:>h\x96\x9e\xcf\x95f*\xb0\xec)\xe4\xc1\
+\xb5\xf2S\xd6\xad\xfc\x17\xdb5g\x94\x1eug\xfdf\
+\xdf\x82\xfb\x82\xc4\x0d\xe3I2\x8d\xbe\xae\x8a\xb5?\xad\
+\xb6\x1b\xd8z\xdb\xedoV\x90G\x90\xf5\xe5\xb0\xec\xe1\
+\x0aZOK\xc0qf\xe2\x9c9K\xeb\xf8\x86\x95\xfc\
+)\xeb0\xfe\x09-\x10\xacG\xa8k\x91(\xd6}\xf3\
+\x82\x02\xfe\x98\x12\xb5\xcd\xf2)@]>#8\x0e7\
+\x04\x87sz0\xde\x08|h\xa5\xa42~\x96Y\xf5\
+\x9c\xf0\xe3\xd5\xfb\xee\xfb\xa3\x90\x1a\xcev\xcf\xf9n\xa6\
+VE\xed\xfb$l\xbdB\x0e\x09\x22\x01\x1b\xc8\x07Z\
+2 ]CFR\x09N\x9e\xbb\xb7\x18\xe3\x1f\x10\xe8\
+QPc\x7f\xd4:\xe8\x7f\xd7\xfe\xe7\xf1NTm\x82\
+\xa4\x0fN)~O\xa1\x83\xf3\xe2\xf7Q\xd5\x0a\x8e\x00\
+\xb8 (\xa8\xa1\x16\x81\x7f\x88\x9fN\x81\x83}\x97\x80\
+3\x06\xd4 \x11(\x1c\x82\x0c\x10g\x86'\x04\xe0\xd0\
+\x22>\xa1RM\xe2\x00\xe4\x06\x85L\x8e\x11:O\x01\
+\x8c\xca8\x8eR,\xfc\x11\x00G\x12\xc1\xc9\xe4\xedb\
+\xc5\x9e\xb8\x22\x16\x10#9\xf7\xcb\x13\x11\xd0\x1e\x97\xf2\
+o\xb2@\x9b\xef\xe5\xbc&!\x03\xf4x\x8c\x9fC\x1c\
+\xec\xeb\x05\xaf\xe3\xfe\xf0:\x10\x0b\xc4\x911\x1e\x0d\xad\
+\xb0\x1e\xefr_\x99\xef\xa1\xe7\xdf\xef\x8b\xaew<\xbb\
+#uf\x80/\x8c\xec\x91\xb17c\xb2\x07\x22r$\
+\xcf\xec1 \x09\xb8\xf9\x9c\xd8\xd3\x00\x89!\xbd\xc4@\
+s\x82\xee\xbc\x9fg\x84\xfaG\x99\xb7y]\x06\xaf?\
+2!\xb8q\x1c\x09\xec8N\x96\x10\xa0\xe7x\xf6\x9e\
+\xbd\xd2\x03\xbb%\x84\x5cXU\x0b\xc5\x12\xae^\xd0\xdf\
+G\xee'\xb2\x82\x04\xba\xb1\x85\x80\x8a\x01\xe4k\xfc\x9e\
+\xde#\x02>2r\x0c\x5c\xae\x83J/\x01\xe6\xfc\xfa\
+\xbe9\x03\xc4^\x8e\xa7'p\xf8\x5c\xc8\x04_\xec{\
+\xd5\x9a5\x04\xed\xe4\x1f\x08\x07-8NRG\xa0\x8b\
+\xc3B\x00\x0e\xe4\x89\x09\x84\xe3A\xc0\xce\xc4\xe7\xfcY\
+\xf0\xe8\x11%\xd0\xd5\x86\xea\x15\xa4\x0f+\x10`\xc1[\
+H\xd7U2|\xfd\x84\xe0z\xe1\x90 \xd1\x01D\xdd\
+\x1c\x80*\x80\xf1\x84\xce\x22\x0a\xd4\x19\x07\xc8/\xc2^\
+\xcby\xac/\x99\x16\x16`\xce\x9b^sz\xec\x19'\
+T\x1a\xc5F\xef\xf2<T\xde\xf72K?\x7fI\xaa\
+\x16 \x0f CD\xb7\x9e\x9ex\x12$@O\x09\xf8\
+`\x07\xa6\xa7^PK\xffY\x19e\x1f\xd7@\xd5\xc8\
+\x14s\x9e\x22\xf5\xf3\x96\x11\x02`6\x14\x12MpE\
+P\xd9\xa0\xf7\x9b\xc4\x95\x1cP*+\x83\xef\x98U=\
+\xa4\x82T#?\xe8z\xced\x92\xa5k\x8eC\xe3\xd7\
+\xcb?\x12)1s]\xe4('\xc8\xaax\xe0\xfaO\
+\xbdN\xf3\xc4e\x11\x055\xf5J\x0e\x89!\x12\x0b\x0a\
+\x14\xbd2C\x85,\xff+\xbd\xf4\x0e\xbd\x96\xa3\xd5~\
+\xc3\xac$x\x9c\xfc\xeat\xb3t\xfc\x95Y:nb\
+\x96\x8e\xaf\x98\xa5\xe3'\xcc\x0at\xdc\xc9\xaa4\xae\xba\
+w\x9b\xb2w\xce\xd0\xf7\x09\x1c\xc9\x0a\xf9:\xf3E\xb1\
+\x08\xc3\xda\x1bu\xb0!\xe1\x81\x84\xf3{f\x85\xfd\xdb\
+{\xeaU\xf1\xe961+\xe3\xa0\xf9\xa9Y!Y\xa3\
+ek\xb0\xa6Y\xae\xf8fG\x18\xd2\xc1f\x98\x02\x96\
+a\x81\xfa;\x19\x17d\x99\x8c_A\xd4}\xbd\xa3e\
+\x052>HM%o\x95\x11\x01;U\x1c r\xac\
+\x91_\x1c\x9dj\x96\xee\xe77\xcd*\x15\x01!}\xda\
+]\xcc\xd2\xf1\x18\xb3\xaa\xb7\x1d\x1dn\x1cc\xc9\xa4\xb6\
+\xb7\x9a\xa5c\xce$(\x11\xbb\x8c\xa0\xdf+V\xe4M\
+\x9a_\xf9z\xcfP\x82\xc5\x02\xe6\xf9\x93-\xa0\xd6\x91\
+\xbb\x8b\xac.\x10m\x12\x1aT^\xdb\xe3\xcc\xe4\xb0\xfd\
+\xae@\xc7]5A\xcf\x81\xca|s\xa8YU\xd9\xd3\
+\xe7\xa13\xef\x81\xfc\xf4^-\xa2\xdb\xdd\xac\xc8\xfa\xe1\
+xz\xe0)\xbf\x02\xc8=d].\xc7\xf7\x94YN\
+ \xefk\x09\xe4\xf6\xa8\xf6\xc8\xd6\xc8\xea~\xdf#\x0d\
+\x90\x854\x06\x1b\xe3\xb0\xe9\xee0+l\xe9\x90\xe1\xf9\
+\xbe\xa8\xfd\xa6;\xb6;\xa63\xee\x8d\xd7\xcd\xd2\xebN\
+1+\xfb:dv\xf9<\xe6\x15\xf9\xda\xb2j\xb5\xf9\
+W\xa9\x10\xb7\x7fHvO\x91[\xcc-\x1a\x17\x09!\
+\xf1X\xc5\x09\xa0\xde\x7f\xc8\xe1P\x0b \xd0\xa2r\x9a\
+Y\xed\xbf[%\x18\xd5Z\xe2\xeb\x1e\x1c!\xfc,Y\
+G\xf6;\xa3,6\xd2\xe2\xe6@\xb3t>\xab\x98\xa5\
+\xf3;\xdbL\xad\x0cSK\x82t\xf4\xe9\x1e\xa9\xc6\xfc\
+E\x9d\xa2\x1d\xeb\xc7\xdf\xebg\x9b\xe5\xf1\x99\xf7\x97\xe6\
+\xcdfU\x05N\x15&81\xbc\xb5\x07d\x88\xcdw\
+#\xf1[\xd1\xac\xf2\x0bH\x8cR9F\xdd\x09\x84\x06\
+\xec\xee\xbc^\x89\xee\x19\x07\x9b\x95\x16(o\xc1\xa0U\
+F\xebe\xb7\xa8Y\xba\x8e\x95\xccJb\xa7[9\xd9\
+Je\xbcv\xe3\xc9f\x91\xfa\xc9e\x05i\xe7$\xb8\
+\x91\xbc\x1a\xe8\xb3]\xe5\xf2\xe59:\x04\x1c\xf2W!\
+A@\x98\x0c\x175K\xe7sW\xb2\xdf)auz\
+im\xf1@\x9b@\x1c\x95\x09\xc6\x07-C \x86x\
+\xdd\xdb\xdc\xaf\xe8\xd5JXWQ\x0f\xa0\xe5D-m\
+y\xbf~\xb2\x92\xd5\xb3p\xea\xde\xca\xef!\xf1o\xe9\
+\xf9O\x16\x95 \x12=\xa8\xdd\xb8\xac/2\x9c\x9a\x7f\
+N\xd6\x07+>\x5c\x0d\xf4|\xd3\x12\x087IdQ\
+\x0f\x88I\xaf\xec\x92\x10\x07\x1a\xcf\xf8\xc1\x9fFE\x0b\
+\xff\x1eD#~\x85\xe2\x02\x0a\x16\x8e\xcc\x99\xa6\x8a9\
+\x89\x03\xfcz\x8do\xe7r!\x00$\xf1A\x02\x8c\x8a\
+\xabZy\xdc_a\x5c\xa3\x16\x13e\xf4(h(\x8e\
+\xc9-[\x0f\x95\x00\xd8\x0bf\xf8\x9b\x04\xb0\x14TD\
+\x06\xee\xad\x99T\xe6\xf1W@&P\x99\xc7\x9f\x22\xd1\
+\x1c\xfc*Gl\x82(\x16\x87\x07j,3\x15\xd4x\
+^\xdc\x17\x02L\x9e\x17\xfb>-\x03\x9c'\xad\xb1J\
+\x10\xf8\xf9\x91\xb0\xa0b\xcd\xfe\x0cI5\x88\x0f\xfc\x0a\
+\xb8\x09\xf8\x1cH\xbe)\xc0\xe0\xaf\xc1\x1d\x85\x1c&-\
+\x0b%`\x9fH\x82\x17\xd9\xf0\xe3\xef9\xf2>\x02u\
+*\xfd\xa8\x8cE\xb2>\x12\x14\x04\xca\xf1{b\xbc\xcb\
+s\xe1u\xbc\x8f\xfb\xce\xe7\x81\xf4\xe1\xfa\x82\xda\x80'\
+\x16y\x1fqrT'#N\x8d\x88\xf5(\x0f_\xb7\
+\xec\xcf\xf2\x06\x5c\x00\xf2\xff\xc7\xf3\x8fm\x15\xa8\x929\
+\xe0\x8d1\xe3PW\xce\xe7\xac\x16^\x02~\xabg.\
+P\xbd\x9e\x09\x1b\xa1=\x93\xf44\xcc$C\x17{\x1e\
+&#\x89\xe0\xe7\xa8;\x8f\xec\x84t\xa4]_\x93\x1b\
+\xc5\xf5\xc6\x1bI\x80\x14\x13\x01\xdc\xc0\xd7\xf4\xc0_P\
+ >ebo\xc7h\xaa T\xda\xe8\xfd<\xdf\xac\
+\xcf[V\x1b\xf0BZhD\xaaU]O\x7f\xbd\x91\
+#\x81\x81\xc3\x02A&\x8f@\x88\x04\x80*\x7f\xbe\x10\
+\x93 @/}1\xfd\x9e\xf3\x99\xa6\x89\x06t\x9e\x89\
+\x0dr\x83\xfb\x8an\xf8\x0a\xe22 P%\xd0%\x01\
+@\xa0\xcf\xc0\xe5\xfc8\x8fH\x0e\x89\x83Ob\x01h\
+\x1d\xa4x\x82Ly\xef\x15\xcf\x8d\x0d\x88\x0d\x16\x87F\
+:\xce\x1e\xa0\x13\xe8\x13@/\xe2\xdc\x11pV\xf4\x13\
+\x84\x8a\xfc\xbb\xd5\xeb\x05\x07\x05\xf7\x15G\x07\x08>\x09\
+\x10\x16^\xee7\xf7\x8b\xf3\x01\xb9\x00)\x22\x01<2\
+\x9a\xc8\xc8\xf1~-\xe0\xde\x0a\xc3\xe7\x93\xa9\x07\xc9\x81\
+\xbc\x1a\x0b\x18\xe3\x87q\x8b#\x84\xfa\x81z\xd4=\xa1\
+\xc0\xf3Cw\x9b\xc4\x08\xe4\x80\x8c3\xf5\xc4yf\x9f\
+\x1e\xb9=\xcc\xaa\x05\x9d\xf7!\xef\x85\x5c'\x1b\xbc\xc8\
+~\xdao\x9bU\x88\x04\x8d\x07H~\xbc\xc7\x9bJ\x92\
+H\xacx\xee\x0e\xc1e=\x00A\xa1\x9ed\xc8\xa9\xa8\
+\xc0\xfb\xfa\xc1\xf8\xdcJ\xdc\x06$t\xe408\x97\x83\
+\x02!\x02pz\x06\x1d\xf9\x80l\x9e\x1ca\x87\x9a\x82\
+<\xd0\xbcA\x9e\xaf\xb9\xc8\xac\x0a0Uan\x974\
+K\xc7\xeb\xcc\xc4\x0e\x7foEn\xa8\xf1\xea,\xea\x92\
+es\xc8\x99\x9e?\x0e\xb1\x93\x8c\x11\xe03nX\x07\
+E\xc2\xd8~\xd6\xaczn\x8b\xa9\xc2sq\x7f\x9e\xa3\
+\xa7\xfa\x0ag\xf7%\xb3\xcaA\x10\x14\xb0\xfd\xb3Y\x05\
+\x89\xc7\xb1\xa2\xe7U\xe4\xa3)\x5c\xdc\xcc\x02FZE\
+\xe8\xd9\x051\x82\xec\x99\xcbIJ\xd6\x91\x84\x96\xcb\x90\
+\xc1\xc1`\xe9\x94\x93\xa4\xf2p\xae\x10<\x07V\x88\x92\
+{F\xf7Z\xa5\xc5:vsK\x82H\xbc\x5c\x06\x11\
+\xe4\x83\xe4\x10y\x1e\xedSf\x15\x04\x13]o8G\
+\xf8\x1cA\xe0\xdb\xbd\xcd\xaa\x8a\x94\xa9\x01l[\xb5\xc4\
+X]k[\xcd\xd7u*G~\x8f\xdcM_\xc8\x8a\
+l\xb6/\xab\xe73^\xc8\x872\xe9\xd3i\xe9\xd7\xa7\
+&\xfb\x8e\xd6\xd3w\xa9\xd7\xfd\xfa\xc2\xd6\xce\xbc\xcf\xdc\
+\x11g\x15n\x88\x9c\xaeZC\xdf\xff\xfe\xaarD\xef\
+\xdf\xa3f\x19\xba\x9d\x03Wg\x8bW\x22\x87\x84\x9f\xb3\
+\xfa+1\xd9\x1daV%\xca`Y\x17$9\xdf\xbf\
+es`\xf1\xdd\x91\x9d\xffJ\x83\x15\x07+eh\xff\
+%Y\xcd@\xbd\xee^\x11\xd4\xba\xd0\x9diVq'\
+\x08\xa9\xe5\xea2p\xab\xd0\x83\xfbq\xb3Bv\xe7\x81\
+\xe2YfJ\xd0\x9d\x93\xc7cf\xb7\xee\x96\xef\xde\x95\
+\x13\x05W&K\xeba\xfb\x9edkh\xbf\x9f\xb5\xcc\
+\xfb\xbc:\xedX\x90'\xa8u\x98\xc8_\xe6L\xd8\xa9\
+o=\xf1\xc0\x13\x07\x139O\x108\x04\x98\xda\xafr\
+K\xd8ze\x1f\xf4\x84\xc7/2&c\xac\xfd\x96\x99\
+\xc8\xd2\xf6.\x89\xa3\xc1\xdcf\x99\xcc/#-\xe00\
+i/j/n/\xae*G\xdf\xcdf\x7f\xefe<\
+\xafn~a-\x11\xdcG\x02\xff\xe1\xfafUe\xdc\
+\x12\x1di\xdc\xcd\xf8{\xb2G3\xf7\xc3\xb5\xb9\x15D\
+\x099\xf4\xc9Y7\x90\xef\xf2\xf5\x1a\xfdw*\x95\x1a\
+\xe7\xedRf\xea\xe1\x1f\x09\x91\xf1\xcb\xd2\x8a\x93I\xfa\
+\xd2>\xd0\xfd\xc3,\xbd\xee\x1ff\xe9}\x03\xa9\x1d(\
+\x81\x97\xe5\x0c\xdf'RB\xbbo\xaf%{\xb5\x90\xc8\
+v\xcf\x9b\xa5\x9f?`Vz\xf8\xb37\xf5R\x15\xc0\
+INmtR\xb2o\x15\xa8}\xde\xc5.)\xa4\x85\
+$\xd6\xf8\xfb\xe0=f\xc5/\x18mmV\x05(\xaa\
+\xf4;b\x0c.\x05\xf9\xb1\x90vz@\x06r\xcd\xe4\
+\xc2\x9eP%w\x7f\xad\xf3k\x95\xf5`\xf4\x16\xb3\xaa\
+\xd2{e\x1a%W\x16\x0e\x95\xdc\xd3\x7f\x8c\xd6\xef?\
+W\x09;\x91\x12\x83\xb4s?\x87D\x10\x89p\x05\x8e\
+\xec\x8fp\xf38\x82\x82}~\x9a8\xc2n\xca\x8a\xe9\
+\x96P\x7f5'\xd4\xf1C\xf0\x9bQ' \xa1\xc0\xfe\
+C\x82H\xd7\xef\xac\xf5$\x02~+\xff\xe2\x1eq\xe8\
+(Q\xeb\xaa\x01\xf2\x17\x5c\x1d@\x81\x9c\xb3\xcfS\xa9\
+\x864P2\x99.\xa7\x07W\x84\x12\xb2\x90M\x82\xe0\
+\xa1\x85\xaf{\xd6\xac\xacsp\x16\xd1\xaa\xe7d\x90\x14\
+>\xf4\xf9\xee\xff\xc0\x99\x03\xe2\x94@\x1b\xf2<\x8e$\
+\xa8\x09\xa8\x81\xd6#k\x88\xbf\xc5\xef\xf9\x19\x04,\xdc\
+\x00\x90\x05\x8ak\x84\xfd\xcf\xe31\x127\xfcL\xdc\x00\
+\x02\x83DM\xd4\xb1\x07\xc1\x00\x12Mr\x9f^\x08\xe1\
+\xbc\xf8\x19\x84\x00\xf1\x02\x15\xef\xc8vO\xa0\xcb}\xc1\
+O\xe5{\xa3\x1c\x1e\xaf\x8bl\xfb\x14tb\xc0\x1d[\
+\x92'\xfb}\xfc;~!\xe3\x0a\x12>\xae/~\xff\
+\x7f\xfa\x5c\x8e5\x92~zE>H\xa1-\xdew\xee\
+\x0f\xd7O\x9cI\xfcD\x1cM`\xcf\xbc\x8b\xaaz$\
+\xb0b\xcb;\xbf\xe7\xa8\xdf\x8f\xcfD\x92\xf0F\xc77\
+\x0a\xb0#\x0ba\x84H\xc4\xdf\xf3/\x06\xee\x91\xe5\x91\
+c\xa8\xdc\xf9\x83 \xa3B`\xca\x0d\xe2F\xb2\xe0q\
+\x83\xc9\xbc\xe8\xc1\xba\xec\x1d\x03\x88\xef\x89d\x13\x91\x95\
+\x12\x96Id~\x80T\xc7\x16\x04\x12)\x0a\xe8]>\
+D\x09\x04\x0fp\x91\x03\x5cq\xa2\x1e\xa8'\x1a\xf8<\
+\x05<\xde\x9b\x89\xac\x1b\x90\x1c\xc9=y\xa5\x96\x8d\x86\
+L1,\xedK( ^I\x01\xf1j\x82\xf4/\x16\
+\x10\x1a\x91\x03\x81\xfb\xf0\xa2\xee\xff\x8b\x92\x9f\x19\x0a\xaa\
+\x1e!'\xdc\xd7H\xf6\xc1s%\xb3\xaa\x0a\x04\x8e\x85\
+#\x04\xc8p\x02=S\xa0\xeb\x014\x81\xf8+\x8e\x1c\
+\xe9\xcfO2\x80\xe9\xa9\xf4\xd0w>\x07\x08\x17G\x12\
+\x05<o\xe4[\xd8\xf0\xc8\xb0\xad\xe0\xf2\x82\xfd\xfd\x89\
+d1!\xf0w\xe8-=\xfb\x90\xaa\xb1!p\xdd\xb4\
+\x08\x90h 3\xc7\xf8\x8d\x09\x9d\xd8\xe3D\x86\x90^\
+79T\x9e\xf0\xe0>\xb2\xf0\x9cfV\xddoq4\
+\xc0~\xedz\xeb\xfcC\xad\x82\x8a\x82*\x03^q\x00\
+\x09\xc0\xbc\xd5\x06\xcbuxO\x1d\x81%\x15\x10\xb83\
+\x18\xa7$B\xb4\xf1y\xe5\x12\x0e\x096\x10\x02`\xa0\
+\x92\x223r\x1diH\x18\xc9<\x0bR\xce\xfdu\x92\
+\xa7\xa3\xb2\x95V\x05\xddG*\xba8r 4\x5cf\
+J\xfa\xd3\x0e\xd1c#\x86\x03A\xac\xdf\x04$\xae\xe3\
+\xad\x80%\xf7\xac>Z8P\xda9\xcdJ\xef=\x09\
+\x1e\x0f\x1c\x95\x81\x87\xbd\x9c\xf9\xee\x95}H\x0e\x8f4\
+\xab\x1c;6b\xa0\xf2\xf4\xf0\xd2\xe2\x02BE*\x06\
+\xee\xd8\x0b\x9a\x9d\x82\xc0\xbe\x07y59\xfe\x1fV\xaf\
+%=\xbb\xaa0\x0c>i\x96\xae\xe3\xa3fU\x02\x09\
+\x07[$b\xe9i\xf4\x09\x03s\x0b\x1eS\xe2e\xd3\
+\xaa\xf2!\xe8g\xee\xc9|\xacJ0\xc1\x8d@\x80\x84\
+#\xa2\xd6\x90\xdc\xe3\xbd\xb06\xcc'*\x88\xa8*/\
+\xcd\xbc}o1\xf7\x9bD\x8e\x8f\x032\xed\xaa\x9c\xfb\
+z\x07i\xa0\x12)\xdd\x96f\xd5\xfa\xcbs\xfe\x9dY\
+\xb5\xdei\x1c3\xcf\x9c\x93\xc2*m\x17\x14(mN\
+`\xedV\xedc\xb6\xca\xccU\xf5\xf0\x0a\x22\x0eG@\
+C\xa2U\x8e\xf6h\xf1d\x8b\x15\xb6\xf6\x1c\xa8]3\
+!\x91\xd9\x934\x1a$\xf7\xd3R\x03\xf9\xa6X\xb9?\
+\xa6Jer\xa8\xc7/7K/_\xb1\xaf\xb8\xb2~\
+u\x9b\xf7\x10\xed\x14\xe6\xf6\xbd\xc7\xaa\x8c\xd1\xe2\xe0\xac\
+\xe2j}\x01\xc1\xc1u{\xa0n-\x1cS2\x9b}\
+cl\xf6\x5c\x87\xd5S\xad\xa2J\xa5\xb4\xdb\xca\xac\x22\
+\xab\xa45K\x8eL{\xa0Y\x85d\x80\xeb\x04\xa4\x88\
+\xd6CH\xea,\xbd`\x09\x86\xee0\xb3J\xbe\xef_\
+B\xbe\x08\x81D\x05\x8f\xde\xe0\xe6\xabf\xb9\xb7y\xe1\
+L.\x08'\x06\x156\xb5\xe4\x8d\xde\xd1\x07\xba\xce\x19\
+\xa3@\xd7+\xacT\xc6\x90\xf3T\xe2\x80\x16\xa8\xb1\x1f\
+\xaaW\xfaD\xb1\x94\xabB\xeb\x89\x5cA|\xa9\xd0\x92\
+\x00e]\x1f\xdcd\x96\xae\xef\xfb\xdd\xc1\xdd\xc1E\xae\
+\xb4]\xdc,\x1d?e\x96^7\xafYi\xc9\xf3\x1e\
+|\x90 w\x99\x15\xc4\xd9\x8c\x1b\xcc\xd2\xfb\xd66K\
+\xdf;\xddLP\xf4\x03\x0a\x22\xc8IC\xe9\x85V`\
+F\x22\x08\xb26\x13\xa14\x19J\x906\xae&`H\
+\x8d\xe4/u\x87'\xfbj\x91\xcf\xcc\x88\x03k\xc9x\
+\xcd,\xb9\x15O\x9b\xa5\xf7\x7f\xd5L\xfb\xd0o\x8b\xec\
+\x5c>\x8f\xd9J\xebH\xba\x1f\xc9*\xd6|+_<\
+Z!\xf0\x8c\xd1e'\xb5\xaal\xac\xc0\xf3\xbc\xea9\
+\xc1N\xcf\xbe\xafV4\x12\x0f\xa8\xeb\x18wC\xbbl\
+E*\xb7\x9aYA\xa8\xc1\xad\xe2\xfb\x1d\x85\x0ed\x12\
+!\x8f\xe4>Z\xba\xe1(!\x81\xe6\xaf\xc6\xab8+\
+\xe0\x10\xf1\xbf\x8f\x8f\x06\xa3qA\xe4\x7f^U\x8a#\
+\xa2\x94\xca=-\x81\x9a7\xbe?R\x10\xc1\x8f\x0a\x01\
+\xa6't\xd5\xeaAb\xc9U?\x8eW\x0b\xc5\xe1i\
+\xde\x1c^\xf6I\x0f@\xe7\x90\xff\x0a4\x5c\xaaD\x8e\
+|$ \x81\xad_\x88\xd3\xb4\xba/aj\x19\x1e\x98\
+S\x00\x00\x92\xaf\xf3\x86\x1b\xc1\xb9\x80\xf0\x9bH\x04\xb0\
+\xff\xc1=\x04)/\x01\x12\x09\x15\xfc\xb75\xe5_\xd2\
+z\xa0\x96\x0e\xe4\xa1\xf3x=\xbc\x92\xad\x14G\x92\xb7\
+\x06\x820\xc5\xef9.[\xf1\xe39?Z\x07Q[\
+\x10r\xa4\x92\x1b\xec\xf7E*\xe6\xf4\xec\x13?\xc0\x19\
+E\xc1L\x052\xb8/\x1c\xc1\x84\xda\x05\xfe,2\xe6\
+pZ\x05\xe8=\x894/\x14\xb1\x9f\x92\x08 0e\
+<\xf1\xb9\xf8C\x90\x1f\xd3\xe2\x80\xff\x05rA\xeb\xa2\
+'\xbc!\x15d\xbd\x8cq\x02\x08\x8a\x18\xf0\x07\xb6\xff\
+\x99Z\x03bB \xca\xf3\xf1\xb9\x14l#2\x22\xca\
+\x0f\xf2\xfe('\xa8\xcfs\x99aZm\xf8\x9e\xd8R\
+\x10[\x05\xb8N\xfc\x90 \x1f\xef~o\xe4\xca\xe3\xfa\
+x~1\xe0\xa7`\xcf\xf3\x06\xa1\xc5sF6\x94\xf8\
+Y\xdf;\xee'XgF^\xaa.\xc4\xfe\xaf\x7f\x9e\
+\xac\xe7\x22\x927pC\xffS\xa6$~^\xbc\xf1d\
+D\xc8\x10\xb1P\xe3\xb8\x81\x1c\x90\xc3\xd9\xac%\xe88\
+\x81\x1e\x90\xb0\x08\xb1\xe0{8O\x02\xdd\x18h1P\
+C@\xec:\xef\x0441P\x0c\x0bl\x93\x00\x00 \
+\x00IDAT&\x90\xa3\x82\xcf\x82\xcb@\xe1s\x19\
+\x10T6H\x10\xf0z\x16L\x02K\x12\x06,\xfc|\
+>\x08\x8c\xa8\x92\x00\xcb$\x89\x0b\xc8\x18q`\xe7\x9a\
+\x04Z\x12'\xd8k\xfa\xdci\x139!|\x02\xc7\x00\
+\x96\x04\x0c\xbd\xd7\xfc\x1e2\x18\x10\x22\xa55\xa0GD\
+,\x17\x8e\x5c\xdf\xebA\xf6\x83\xfb\xfc\xa4\xbe\xe7i\x9d\
+\x07\xe7\xcb\xc4\xe0\xbe\xf0}\xdc\xef\xdf\x8f\xdd\x9d'.\
+\x13\x1bG\x9a\xf3E6\x11yA\xc6\x09\x1b-\x13\x0d\
+Vo\xd4\x1d8?\xbe\x8f\x8d\x80\xfb\xc9s\xd1\xc2J\
+&\xdb\x03Q\xdeG\xa5\x1b\xc8%\xcf\x8d\x85\x19\xe8>\
+\x19e\xd8o!\x1fd\xdc\xc4\x85\x82\xe7Eb\x8b\xcc\
+\x22\x89\x0a]\x87;\xae\x0aHq\xc4M\x1f8\xcbt\
+Q\xf9\xa6WP\x1bTs\x9bYI\xb4y\x05W\x1b\
+\x96\x07\xb2r\xb4\x1c\xb2(\x96sw\xc4\xd1\xad\x17\xab\
+|;\xc3\xacJ\xbc\xb1\x10\x0bj\xe9\x0e\x01\x95\x03\x91\
+\x0b\x02\x19wd\x00\x1b7\x15Q9\xd28\xda.O\
+\x08t\xf7\xd0l\xde\x8a\xe3\xbd\xbe$\x08\x84,\x82\x8b\
+\x03\xa8(\xf7\xa5\xbd\xc0\xac\x90s\xd1Z\xe1\x09!A\
+\x87]\xb6\x0b\xb6fq/L\x80\xae\x1eQ\xcd;\x02\
+\x07*\xe3@2Uy!!\xe5\xf7Ud|\x0e\xf1\
+'\x11\xf2\xf5l\xde\x9b\xedrC\x1a/\xcebN\xa5\
+\xfc|\xb3t|Y-\x0a\xcb\xb4\xefl\xdfYU\x9e\
+\xd4\xab\x09\x94zx\xfb\xf0\x8e\xe1\x1dY'~\x9b\xac\
+\x13/G\xa9\xbd-\xd9\xadZ'\x9e\xae\xa0\xe7\xb0\xd8\
+\xef\xd5\xedm2e^\xc9a\xfe(3\xefl\xf2\xf3\
+\x9bU2\x85\xc6\xad\xb0^q\xd4P#\xf0\x04\x9d\x9e\
+\xb7\xcb3)\x00\x80\x9d\x9aD1\xa4\x92\xdez!\xa8\
+\xb6\xab9\xf0:U\xd2\xda/\x9b\x15\xd2=o=\x10\
+Y\xa9\x07\xcc\xc8\xefY\xc0\xbbY\x05U\xb5U\xca\xae\
+\xe3/fUE\xf25\xb3*q'\x96u\x02t\x12\
+m\xce\x8amn\xf0\xddU\x22\xc1T\x08\xeeM\x01\xde\
+\x15\xc9R\xe0?\xf8\xbcY\x197\xc3\xfb\x86\xf7\x0e\xd3\
+\xdf\xbb\xfb\xcdJ\xc2\xa1\xfd\xa3YN\xbc\xf5\xf7\x079\
+-\x1c|*\x19@h%\xc7\xd8^kVZ\xf9\xba\
+G\xcdJ/.\x08\x06\xd4\x13\xbc\xc5a9\xb3\xf4\xf7\
+\x1b\xcd\x8a\x5c\x18\x01\xae\xebT\x8b\xa4\x93\x80\xa3{\xc0\
+,]\xc7t\xb3B\xee\xc6\xbc\xa5R\xcf\xf8\xa6\xd5\x01\
+\x04\x07\x09\xd0\xf6\xbbf\xe9\xe7o\x98\xe5\x8a\xe2\x072\
+R\xf0\x8a\xb1+\xcd1\xb6\xb4SN<i\xbex\xa5\
+\x97V!\x022\xd6Q!\xce\xba\xdf\x9b\xe5\xfb\xddW\
+L\xf7\xeb\xe7g{K{\xb3\xc9\x16\xe6\xd5\xfc\xe1L\
+\x0a\xd9\xb3\xf8\xdf.D\x05-\x16J\xc4BN\xe8\xb2\
+jS{D\x5c\xf77\xb3\xf2woe\x12[z\xfb\
+K\xb3\xb4\x9d\xec>\xbe\xc7\xf8\x1ey\x9d\xeaIw\x91\
+Q3\xe4C\x0a\xb0\xba\xf3\x93] \xd2FC\xc8\xdc\
+\x9f\xec\x81*p\x05a\xc4\xbe\x82\x9a\x06j\x1d\x7f6\
++\x01\x82\x93 \x8b[(?\x8dC\xc4z\x9f\xf6\xb5\
+n\xb1d\x8b\xe6\x04\xd1B\x96 j\xa66\xcf[\xcb\
+Cw_wow_\xe1\x14@\x95\x22\x93\x04nS\
+\xb5\x1a\xa2\x8ea\xea\x1c\xff(\x09%\x97\xcfTkP\
+>\xbb\xdb\x0b\xcb\xfe\xe8p\xb3BF\xe9l\xfe8\xe0\
+$2\xffj\x96>\xf78\xb3JfW\xc8$d5\
+q\xfb\x08\xe0\x8di%s\xad\x808\x04\xc9\xc8<g\
+|\x10xs\x84\xdc\xcf\xc2\xf4\xbf\xc8\xdf\xb6D\xd0\xad\
+f\xa5\x82\xd8\xceoV\xb5\x86\xe2GS\x18\xa2\x00\xc5\
+\xf7\xeaz\xbc`\x04r\x85\x0a6\x10u\x12\xb2\xa8\x15\
+\x89\xd3&\x93`\x1e]\xb5B\x91X>\xb5\xf9\x8e\xed\
+\x13\xc9+8\xcc\xfc\x02\xe4?\xd3(\xcc$\x9c\xa3]\
+\xcc\xde\x80]\x9dJ\xab\xc8\xf8\x1cy\xf9\x7f\xaa\xac\xcb\
+\xcfE\xc5\xa1\xfb\xb3Y\x95\xc8@\xb6S\x88\xd0\x8c\xe8\
+8\xa9\xec\xfb\xae\xf6\x04\x92\x0b\x04\x06\x05%*\xe1\xf4\
+\xa8\x7f~l\xdf\xb1}3\x22\xb3\xe7\xc4B^\x11N\
+\x9as\xcd\xca\xe7z\xa2\x86q\xcd>LK\x00\xfe\x10\
+\x9ci\xa8\x8b\x90\xf0\xc3\xef\xa0\x92\xcey \x1b\x0d\xd2\
+\x0e\x84\x1f\x019\x015\x03\x8e\xc0\x90\xc2\x22$\xb3 \
+-D\x86\x0a\x14\xdfI\x8a\xdf\x9b\xad\x14\xa8@\xec\xc1\
+\xc5\xa3\x16\x14\x0fl\xf179O\x02|\x12h\x8c'\
+\x12\x17\xe1\xe8\x90\x7f\x10\x10\xb1g^-\x22>\x1e\xe0\
+\x16\x88\x9c\x011^\x8b\xdcn\xfc>\xb6\x96\xc7#q\
+Dl\x1d\x88\xb2\x82\xb1@\x1c\x0b\xd1\x9c?\xe7\xc71\
+\xc6\x97\xc4\xcd1!\x81\x1f\x17\x13\x01\xc4M\xc41\xf8\
+\xe7\x9c\x07\xcf\x9f\xeb'\x1eQ\xbc\xeb\x05\x1d\x90\xc4 \
+?\xe1\x8a#!\xa3\xf5m|\x02\xcb?\x1725\x90\
+2<\xff\x06$\x0a$\x06\xb8\xb0x\x81Sg\x82\xc4\
+\xf7\x15x \xb7\xf1\x06\x11\xf0\x07\x92\x04gu\x8f\xdc\
+\x04\xdc n\x0c\x15\x10\xb1\xec{@E\x06+f\x98\
+x\xa01QA\xa2\x81\x09\x1a38\x81\xb3\x80\xcc\x97\
+\xf7\xd43\x10\xc84\x11h\xab\x92\x06;f\xb3\x95z\
+\xd2\xe9Ey6\x04\xb0$8\xd88x\xa0\xb1\xa2<\
+\x8b>\x9f\xcc\x90\xf4.\xfd\xbaI4Py\xa6\xf7\x99\
+^w*\xdc\x5cWl\xcd\x88\xe4\x11e\x00O\xe8m\
+\xf1\x81L/\x0f\x90} \xecd\x0e\xc9\x8c\x03\xddg\
+\x9c\x90`\xa8\xf5lgL \x95\xe9+\x9c\xb0\xbb\xe3\
+\x880a\x1eR\xcf\x95\x16P'u\xe1u\x8c\x1f\xd8\
+zoL\x0b\xdd\x8dUe\x9a\xd6\x02\xbew\x8a\xc6\xa1\
+*@\xcdz\x1aO\xa1\xe7\xcd!\xbb\xf4`\xd1\xf3F\
+\xe2\x81D\x0e\x19S\x16n\x02r\x12\x0e,\xf8$b\
+\x98\xf8@\xeb\x08pU\xf1\x86\xad\xd7\x13\x0c\x913\x83\
+\xf1\xc2\xc6G\xa0\xc8\xf8\xe1{XP\xe2\x82\xc8s\xe1\
+\xf7@\xf5\x81\xc2\x8b\xa3\xc1\xc9\x065\xde\xbc\xa7\xdb\x1c\
+\xc8\xfb\xab\x1e?t\x91\xe5\xd0\xf8<$\x00?\xde\xac\
+\x9ao\xdc\x1f\x02T\xc9\xfc\xf0:\xaf\xa0\xf3> \x99\
+$r\x08\x18\xb8/l\x8c\x82pZ\xbd!W\x1cP\
+_\x90\xbc\x92\x93\xd0iA\xf6\x84\x0a\x1c%$@\x04\
+\x9duh\xacH\x0a\x9bY\xccJ\x8f\xb8\xf7\x082\xfe\
+\xe5\xe0\xb8\x9e\xbb\xa0\xdc^i\x84=\x175\x07\xe6\x15\
+\x90]\x05\x96\xae^\xf0\x88Y\xc5\xaa\xac\x8d\xd7e\xda\
+T\xf1G\xd5\xc0\x03\x7fU*\x9c\xedZ\xad\x1bN\xea\
+\x08\xd4}]\xb3t\xbc\xd3,\xab\x0e\xe4^\xe5\xf6z\
+\xb3t|B\xfa\xf3\xf3\xa6Y6of\xcb\xfenf\
+\xcb\xfe\xd4\xd8\x9e\x19\xea\xbe~_1F\xf5#m\xf3\
+\xff\xcc\x1b\xbd\xb9\xdf?-\xa4[8\x1a.\xcf\x05\xdb\
+\xbc\xd4N\xda\xdb\xcd\xd2q-\xb3\xd2SOb\xa7]\
+\xc3\xacp\x0dP\x01\xa4\x22\x09\x82\x88\x84\x94s\x00H\
+\xed\xc4u\xe3\xe9\x91\xa7\xd2,h7\xf3\xd6\xa1\xc6\xcc\
+gZGh\xcd\xd08\x1c\x1ddV\xce?\x93Z\xfd\
+\xa4\xda_W\xcd\xca\xd9\xbd|\xe6bB\xd2\xecY\xd6\
+\x95ns\xb3\xaa\xb5\x85\xca4H\x1b\xc6\x1f\xfa\xe3\xf3\
+\x98\x15\x07\x17\x12\xcfv\xaaY:nlV\xd6{\x02\
+\xe5\xe1}f\x0a\xe0\x7f\x9e^\xf7\x96d\xf3W\xeb?\
+\x10\xd3\xd3G\xa7eh\xae\x05r\x96\xd8\x19\xef\xf5\xe6\
+\xd3X\xeb\xb99DN\xe7\x15-\x90!<W*\xa5\
+\xab\x98IEb\x95\x0a\xa1\xa2\x8aW\xfb?f\x82H\
+?^ \xbd\xdcO\x12\xa6\xc8i\x0e\x972K\xc7\x17\
+\xcc\xd2i\x1fmV\xed\x87\xe2\xe0\xf0y\xa2\xc4\x04-\
++\xed\x09f%1\xd8\x1efV!\x9fpxA\x5c\
+\xa9\xf5\xc8+\x94\x0a\x0ca\xed\xf6\xfd\x8aJ$*\x06\
+\x22\xb3#QcT\x95V\xa9\x83C\x04Vr\xef!\
+G\x86R\x8e\xbb\xff\x1d\xe83\xea1$V\xde\xd1-\
+\xd3\x19g\xc2\xebfU@1\xa7Y9O\x10\x19$\
+\x82\xf2\xfb\xd3u\x0f\x17J\xb6\xa0Z\xb3N\xae\xe6\xc7\
+/\xfaV\x82n\x0b\xb3\x0a\x19\x06\xc4<\xfaq\xc8\xab\
+\xc1\x05sR\xb2o*A\xb9y\xa9Pv\xb3\x99\xe5\
+q<\xc8\xe3x\xeef.k\xad\xea\xa6\x98\xa5\xe3\x8b\
+=y%\x5c\x11\xdd\xc7\xcd\xca\xbe\xee-\x1b\xc8\xfc*\
+\x01I\xa51sK\x1cW9\xda\xb4\x18\xa2\xfe\xc3\xb8\
+\xd2}u\xc4\x9d\xd4^\xe0x\x81|\xd0\x91j?\xe8\
+I\x98\x0d\x87aH\x0c8e\xfc\xf9HF\x92}\x9f\
+V4\x97\xc1\xd5<\x1d\xbd\xcf\xac@\xee}\xbd~\xb2\
+yr$H\xb0%\x02\xf3~z}I81\xcey\
+.YM\xe5\x8b\x15B/\xfd\x9f\x11?iw\xcd\x15\
+J\x10\x08RM\xc9\xcc\x14\xdb\xa8`\xf0\xd3R\xa1w\
+D\xd9\xbe\x0a\x88\xf1\x97(\xa0Q\xc1V\xab\xd0\xd8.\
+c\xbb\xe6\x16-\xed\xf7\x0e\xf9\xff\xbb\xfc\x1f\xb8\xb0\x1e\
+Q\x8f;\xaaO\xfb\x99\x15D\xdeL\x852\xfc5U\
+\xe8\xdb\xdd\xcc\xaa\xd6\x0b\xf6w\x9e+\xfe\x0e\xdcN\x0a\
+t\xba\xbf\x9a\x15\xe4\x9b\x93\x15\x02\xed\x06\xb9x\x89*\
+\xf1T\xc0\x19\xcf\xc4\x03\xba?\xfe<\xd76\xab\xf6M\
+%N\xf07\xe0L\xf1\xf9 \xbf\xc7\x03m\x12+\xa8\
+H\x10g\xe0G\xa3:\xc1:\x8a\xdf\x002\x93\x80\x1b\
+YB\xee\x03~\x1a\xad\x19\xf2+\xbd\xd5\x0a\xb2?\xe4\
+\xc0E\x22\xea\xf1\x05\x08B\xfc>\xb8\x0a\xd8\xe7\xe0*\
+\x10\x19\xa8\xcbQ\x92\xa0\xa0 \xc5\xef\xf9>\x12k|\
+.\xaf'\x81\xccz\x19+\xe1\xf8\xd1$\xae \xcd#\
+A@|\x1a+\xee\x11\xa9\x8e\x7f\x1bU\x01\xf0\x9b\x89\
+\xcfb\x02!&\x02\x22\xa7\x00\xdf\x1bI\xeey\x1e\x93\
+\xa9\xe7\xe1\xf7F9@\xfc<\xe6\x03\xe7\xc1\xe7\x05\xf2\
+>?\x9fXH\x05\x11O\xbc\xc7\xf52O\xb8.\xf9\
+\xff\xe3\xce\xea\x8f\x1c\x1b=\xfc\xc8\xfb=\x9fy\xd0\x9d\
+L\x87#\x0e\x93W\xac\xb9\xc0:\x910\xa5\x0axb\
+\x0f\xc5\x8b\x01\x8a\x01\x19\x03\x81/\x1b\x9c\x06\x9cC\x9c\
+co\x08\x9fG\x85\x9e\x89\xc3@\x89\xec\xf2\xf1\x01\x11\
+(\xd3k\x0eDP\x95H\x1f\xa0\x5c\xcf\xcc\x19\xa8\x1e\
+\x81\xc0\xfb\x80\xaa3\xb0\xd8X\xe8\xe9\x06\xda\xb9\x9e*\
+\xc6\xd35\xa0\x08\x9c\xa5#\xea\x99\xc4\xd9B\xaf\x07P\
+\x0f\x1ed\xa3D\xc4\x03\xaat\xbcCl\xeb\xdcw\xae\
+?\xb6B@\xb2\x17\xc9.\x22\xeb\xe4X\x90Y\x8c\xcf\
+-\xcaz0qK%\xbd\xff\x99\x80\x93\x01\x8eC\xa5\
+L\x94\xebIGH\x0b\x89\x1d\x91\xd387\xc4\xdcz\
+]\xa9\x98\xf7\xe7=\xb7z\xdd\x95y\xf4\x8a1\x09\x16\
+\x9e\x7f\xe4\x10\x18\xea\xb92A\x9f\xf4\x1e\x9d\x89\x89\x14\
+\xae\x87\x8c,\x09\x14\x16.62^\xcf\xc2}\xbbY\
+\x95\x98`\xa2\xb2P\x0b\xea\xe5\xcf\x85\x05\x8b\x05\x82\xfb\
+\xcb\xefyn\xcc\x17>\x8f\x0d\x94\xf9 \x04\x80#\x15\
+\x04\xdd\xf4\x85\x84\x85_\x1b\xcf\xe8kf\xa5B\xef\x01\
+#\xf3\x17\x07\x8f\x05\x9c@\x81\xf9\x00d[\xec\xe0\x9e\
+Y>\xc1\xacr0\xd4\xb3G\xe0\x0c\x19\x92\xcfG \
+nT>\x81\xda\x22\x17\x0a\x94Q\x8e\x07rx\x0e\x05\
+\x84\xdd\x98L=\xe7\x8f<\x1b\xf3\x11\x99 \xee3\xf7\
+\x97\xfbH\x0f#\x0e\xb4\x12\x92\x90tA\xea\x07\xc9Y\
+{\x90YF\x1e\xfc\xc1\x90\x07 \x85\xa8<Q\xb1 \
+q\xe8\xec\xecp\x15H\xb5\x81\xcaMs\x8fY\xa5k\
+\x0dK;$qp\x11\xa8W\x1b\xe8,\x89V\xd7\xc1\
+\xa6\x87\x11\xf5\x0b\x12\x16\x90'1\xee\x09\xc4\x961\x93\
+\x03\x7fR\xfe\xfe\xdc\x82D+\x12\x9c\x06\x9e\x10\x22\xf1\
+#\xe4D\xb3V\xb3fc\x01\x8cz\xcc\xc7\xfe0\xfa\
+p&3{f\xf4tf\x11\x16\xe4\xbe\xfb\x95Y\xd6\
+\x7f\xdf\xca\xf4\xdf\x9b\xcd\xccJ/x\xfb\x92Y:\xce\
+\x96\xcc\xe4\x0f\xa7%{\xbeps\xd0k\xec\x9c\x09\x8f\
++q\xf3\xb9^\x06\x8f\x04N\xf3\x1d\xb3\x0a\xba\xcc\xf9\
+k\xfc\x02\xe9\x05I\x81\xae\xba'\x80pPX\xff\xd5\
+\x0a\x04\xa2\xc3+\xa4$\xd8\xe8\xf5e}\xe3\xfe\x98\xa3\
+\x7fR\xc5\xdd\xc1\xfa\x8c\x8a\xc3\x5cf\x0a@/\xac8\
+\x1cl\x97\xe9*\xd6sK\x9bm\xad}\xee\xb6\xca\xc1\
+d\xde\x90\xf1g]\x12\xeb|w\xafY\xfa\xb8\xaf\x9b\
+\x95\x8a\xbb'\x96\xc4v\xee\x09\x1b\xa0\xbd\xe8\x86\xab\xb2\
+\xe7\xc8\x12\x8d\xcf\xc1nf\xa5\xa7\xd79F\x14x\x81\
+P\x1a\x9e4\xfc\xd6\xd0\x02\xf2\x1d\x92m\x9f\xb9/\xfe\
+\xcf\xb8/ \x8b\xeb\x0e1+\x08\x08'\xdb\x14\x12\xc8\
+{tE\x22JK\xc4\xf04\xb3\xf4\xf3Bfe\xdd\
+q\x0e\x0e\x10I\xea\x85o\xb73+\xa4w\xcdO\xcc\
+\xd2\xe7\xbe$H\xb2*\x9f@\x99i\x15p\xc7\x8c\x0a\
+\x19\xc8<\x05\xfc\xee \xc7\xfdT2\xa4NjFb\
+\x19\x7f\x01\xd5\x10!\x1fF\xdb\x9a\xa5\xe3nfU\x82\
+rj3\xc5Z,@P\xa4{\xd3\x93\x9cq>\xfa\
+\xde\xe1_\xcdr@\xd8s\xb2l)\xe4\x0b\x880\x0b\
+\xe7~\xa3y\xb3\x98dG\xa7\x8ad\xef\xe7Z/l\
+\x1e\xfd\xc1\xac\xf81\xdd\x22f\xa5\xd7\xdb9lt\x1f\
+\xbaOw{\x19r'\xb7\xa8\x5c\x9b!\xbf\xbd\xc3\xaf\
+\xeb\xf2J\xae\xf6\xf3n\x9ddk\x17U\x94\xeej\xb3\
+\xc25\xc1x5\x06\x07\xe3p\xc8\xc8\xab?\x17\xa8;\
+\x10\xf9\x8c\xcb\xd9\xbd\x92eU\xc2\xc8\xc9\xcc\xf0\xafH\
+\xdc \xd3\xa7\xc0\xcfeh\x05\x81\xf7\xf5\xc9\x90\x0a\x8b\
+\x15\xa4\x19\x09K\xd4r\x80\x86{`\xcf\xban\xe3\xe0\
+^A\x9e\x7fS\x90+3\xf9\x8f\xec;\xa8\xfc\x80\x10\
+\xb3\xce\xfe\xbf\xe4\xf3~2\xfb!\xaa\xdc\x22\x0f\x0dY\
+n^W~UH\x1f\xb3\xb8\xeaA\xf2\x8bN\xacX\
+\xd9Y_L\x8e\xf7\xc2\xd2B\xe1\xaa:\x04\xf8\x1f5\
+\xd3~tVQ\x19qn\x19+S\xdc_\xfc\x99L\
+nyP!\xbd\xf4\xebS\xe2\xc0\xfd\xbau\xfbu\xcc\
++\xeb\x1a7^\x10P\xa2\xacY\xa3\xafd\x8f>\xa4\
+\xfd\x1e\x92dZ\x84\x08\xa8A\xba\x81\xdc#1\xa1y\
+\xe8-$\x8aS@0x\xef=\xa4\xb8\xa6\x0aq\x5c\
+\xe5g\xfe\xde\xac\x92G\xc4O\x84;\x08\x7fN\x09'\
+\x12\xec\x1e\xc8\xb3\xae\xe3\x9f\xe3\xcfP\x88`\x7f\xa0\xe0\
+\x03\xb4?\x06\x82|\x1eH5\xb8\x13h\xc1\xa4\xa2.\
+H\xbdC\xf0IX \x17\xaeu\xc2\xc9\x1f\xe1\xda\x01\
+\x99\xb6\x8bY\xd5\x22\x02\xa7\x05d\x80\xf8\xbb\xf8\xcd\xec\
+'$FA>\xc1\x81\x01\x82\x80\xc4\x05\x08\x02Z\x1c\
+H\x0cp]\x8aw\x1c\x09C\xbc\xc5}\xe0\xfb@n\
+p\x1e\xa1\xd0\xec-\x06\xcc\xf7\xd7&V\xfa=1w\
+\x93Z\x19b+{L\x1c\xfc\xa7D\x00\xfes$\x19\
+$>\x05\x01\xa2D\xb5'R\xf8{D\x10@R\x89\
+\x0a\x1c\xfe\x18*X\x0b\x99U\xf1\x16\xef'\x91\x81J\
+\x1b\xe7\xcd\xfa\xc2\xf8\x8d\x5c\x02\x8a\x9b\xc6}\xe0\xd9i\
+\xfc;d,\xa6U\x08\x00~\xae\x7f?mBo\xc5\
+\x0b\xde\xbb1\xbd\x0a\x0c\x0ai^\x7fbQ\x0f\x91@\
+\x8f\x1b\xc8\x00 \x80\xa2r\xae\x09\xe0\x09\x87(\xd7\xc0\
+\xc6FK\xc0\xad}\xcfX\xf3\xc9\x9e4\xc3\x1f\x08r\
+Cr4}\x80s\xa3\xe8\xf5g\xc2)\x90\xf2@\x92\
+\x1bN\x80@/\xf7\xb2\x1a(\xfc\x9d\x1b\x1e\xd5\x08\x08\
+\xcc\x86\xba?\x0c\x00\x068\xd0oZ\x0c\xb8\xde\xa9z\
+\xe0L\x08\x1e8\x01 \xbd\xfc\xb1\x97%\xb6\x5c\xbc:\
+S\x0f\xcdD\xd2\xc48p\xc8\xa0\xf1yz~\xa3g\
+{9\x90f%\x0f\xc8\xfb\x00?\x06\xb6\x9a\x00\x1e\xf8\
+\xf2\xfc\xb9\xde\x18\x00Syc\xe2\x8d&\x8e\xa3\xf4\xaa\
+\xbc@\xfb\xf7\x92@\xe1s\x81\x94\xe9\xfd\xfe\xfa\xf7\x89\
+\x9d\x9fLYD6<\xa1\x00\x9b\x80\x98\xf1Db\xe8\
+\xb1\x1e\xa2\xd4|P\x01A@X\x00a\xf2\x0d\x8f\xfb\
+\xc0\xf8\xe6\xb9\x82\x18\x81\x8d\x99\x84\xc1d\xf7\x01\x07\x92\
+\x8c^$\xc5\xe4\xb9\xb202o\xb8\x0e!\x01<\x81\
+\x22\xb22\x0f\xd4E\xe2\xe5\x19m\xee\x8f\x02Q'\x0b\
+\xc2\x91\xd0B\xdd\x9dmV\xc6\xa7\xf7\xb0\xc3\x96+v\
+o\xef\xe1\x83\x0c\x11\x19.\xc9\xc5y\xc5\x1drF\x02\
+nZ\x1bV2\xab\x1c\x04\xc6\x11=~\xea\xa9\xeb\xce\
+1\xab\xf4\xe5y\xae{g+\xac\xf3\xf4r\x8b\x05\x1d\
+H\xe1L=V\xb4\xe4\x08\x22\xcc\xf3h^1+\x89\
+\xbc\xe6\x14\xb3J\xffW\xad\x07\xdd\xaf\xcd\xd2\xf1\xd5\xee\
+\x95\xceH\xab\xce1+\x95\x1a\xd7\x91g\x1c\x00\xadT\
+\x85\x09\x04\x05z\xee\xedg\xccJ\x05\xc3\xe5\xeb\x14\xa0\
+\x22\xe3\xd6^jV%(\xa8\x14\xbf\xa7G\x8c\xb8\x8c\
+\x98\xd4\x0a\x5c\xbf\x9by\xaeu\xd8\xcf\xe3)\xe9\x92\x93\
+\xc8\x94*\x87\x93\xf51OT!\x81\xa4\x0a\xc4B\xfb\
+\xf3\xbeg\xb5Y\xa5\xbd\xa3\xbd\xa3b\x9b\x06\xaa)\x07\
+\x04\xae\x05\x12U\x8e\xa00\x84\x85%\x1cri4\x1d\
+o0\xabd\xd0\xe0\xf0\xb4J\xfa\xa2Y\xbe\xae?o\
+\xc6\x15\xe3\x88\x0a-\x15\x0fZOp@Y\xf7\x14\x18\
+\xb47\x9a\x15\xd2\xba\xe6Y\xb3J\xdeK\x01\xa8\xb7\x88\
+\xa8\xb5\x09\xee\x04\x02\xca\xacO\x7f\x95Zk\xd6\x15d\
+\xf4\xbdU\xe2\xd2\xf0\x02\xd7\x17\xb6\xf7\x0c\xe1\x9b_\xcf\
+\x03\xee\x99\x97\xab\xdeTA\xbb\xe9\xc5\x1e\xfd(\xd9y\
+%\x91\xd9\xfc\xc6L\x89\x9f;J\x02,CP\x7f$\
+\x15\x87\x8dE\x06\xb7^\xa9D\xc2>O\xa5\xd6I\xb1\
+XG\x84\x10\xf1V\x00!s\xdc\xa1<\xd4\xacT\xd6\
+F+\x9b\x15\xf2\xca\xee\xa3\xddG\xbat}\xed\x8f\xda\
+\xf3\xda\xf3$+\x9a\xe6\xc3h\xe9\xbe\xb7\xbe[\xdf\xac\
+\xb4\x82x\xa5_H\x00g1GvPd{\xc3o\
+\x9b\x95^\xf0nn\xb3\x9c\xd0\xec!\xc5\xbf\xe9\x1d\xe4\
+\xf6K\xed\xc1\xad\xc9\x18vfe\xfft9\xc8?\x9a\
+\x95qH\xcb\x9cC\xbf%\x17\xea\xad?w\x9bU\x81\
+\x01\xfb\x0f\x09\x0f\xd6M\x90z\x90r\xe1(\xc3a\xa2\
+\x8a\x1d\x898O\xdc\x00QG\xae\x0d\xf5\x1d\x90\x0cB\
+\x9c\xb5\xb3\x98\xa5\xe3o\xcc\xd2\xf5\xcfjV\xf6\xcd\xcc\
+\xa6\xbfr\xe6\xaa\xc8\x90\xf4\xe6\x04\xad{\xd6Z\xf6;\
+%f\x8f\xaf\x10\x0f\xebg}\x1bW[q\xf2N\xe4\
+=\x81\xc0\x8b\x94\xb5\xfb\x9aY\x19\x97\xa3Kz\xa4Z\
+Z\xfd\xfb\x84\xaf\xf6)\xe6\xf5\xe8e\xb3\xd2\xaa\xd0\xbd\
+\xcd,\x1d\xff \xb5\x88\xd5\xcc\x0a\xa2\xc6\x03l\xc9\xe8\
+\xe1\xe0\xe7V\x18\xab\xbco\x97l{%\xec\x8e.\x01\
+>j\x0d\x8e\x14\x80\x95\x1cN\x13\xf5\xa4\x8f\xbe`V\
+\xf5\xa4\xd3\x0a\xa4\x8a\xb9\x89\x9f\x9a\xfc\xa3\xcfwz\x98\
+\x09,h\xbd\xe0\xba$\x93\x96\x03\xcfiU`M\xe5\
+V\x90\xf1Qk\x96\xb9%\xde\x91\xe5\x1f\xed{\xb7U\
+\xa5{\xab\xfc\xfei\xb9\xc0\xb6\xba\xe91\xcd\xcc\x0e\xef\
+\xfa\xe1\xb6K\x1f!\xee\x94S\xab\x16.\xad\xcb\xb9\x10\
+b\x15\xd9\xcb\x93]Q\x15\x92\x08$\x09\xf4 u$\
+!M\x8b\x87\xfcU\x97\xbd\x14I\xe6\xd8]J\xb4\xc3\
+\x11\x80\x9fCA\x04h<\x85\x19H\xaf\xa3L\xb7\xfc\
+Fz\xd4\x1dbO\xa5\x9f\x80\x99}\x86\x0a3\x88\x07\
+\xc8'A\xdc\xa80\xc3\xbe\xec\x88`\x158]}\x08\
+\x04\x06\xc8\x10\x12\x96p\xb20^\x98\xd7\xccs\x02\xd8\
+\xe3\xb3\x95\xc4\x8c\x02_O\xcc)@\x1b]eV%\
+\x96\xf0\xbb\x89\x03x\xae$\xf0@@\x13\x18\xb3\xfeB\
+>\xc8\xf8\x03\xda\x0f\xc4\x9e\xf3\xa5PD|\xa0\xd6\x10\
+8\x0dF\xa7\x98\x15\xff)\xf9'\xaf\x9a\x7f\xc2\xfa\xe3\
+\x95v\xc8\x9c9_\x9eW,\x80\xb1\x0f\x91\xf8\x84\xfb\
+\x81\x04\x07\x05?~\xd6\xf3\xf3\xd7S\xb0\xe1s\x89\x0b\
+\x09\x88Y\xffA<\xe0\xdf\xe2\xefF\xe8}Dx\xc7\
+^\xfc.p\xd4q\x8c\xf2~1\x01\x10\x8f1\x81\x10\
+e\xe6cKyD\xbaGD=\x01=\xd7\xcfsD\
+\x15\x89\xc4\x14~4\x9c\x0e|\x8f\xe2\x03\x1f\xef\xe2d\
+q?\x83\xd71\x8f\xe4\xef\x8c\xcf\x04e\xb6@w\x85\
+7H\x04D6\xc4Z_\xb1N\x04D\xd22n\x0c\
+z\xa0d\xbe\xe7\xe9\xc9\x9a\xfcBq\xcc\x08@8a\
+\xa0\xd4,0\xb1\xb7\x9b\xf7\xb1`P\x19Fv\xef-\
+\xcax0\x809\x1f*\xc2\x90\x95\xf13\x81)Pu\
+\xf5\xa2\x93ar\xa8x\xac|\xc6J9\xf7\x83LV\
+\xd4{\xe4A\xf3~\x06r\x18\xc0\x90\xdf\xf8\xc6\x05\xe7\
+\x00\x15v\x06b\x94\x7f\x98\x1e\xa0*\xe5\xb9\x81\xc4\x00\
+\xea4\x91d#N\x0c&\x12\x89\x22&4r6\x04\
+\x96\xf4 E\x88V\x84\xc8P9\xe692 \x09\x90\
+\xe9\xd9dA\x1e\xb8\x1e\xe7\x04d\x82#\x19\xd62\xab\
+\xbe\x0f\xe4\x07\xc8\x09 lq\x023\x9e\xc9\xa8\x91X\
+!\xb1\xc3F\xb9\xb4\xde\xcf\xf3\xe2\xf9\xc5\xe7\x08T\x89\
+\x8a\x1f\x09\xa3X\xa1\xa7\xe2\xc7}\xa0\xa2\x1d\x13\x01$\
+\x14he\x09\x89\x1d\x97\xf5\xa3\x82\x0d9\x11\x9c\x01\xc8\
+\xc5\x91\x98a#G\x1f\x1b\x08\x18j\x061\xa1\xa1\xde\
+V\x02\x19g\x9b\x87\x8d\x97\xcc\x7f\x90E\xf1J=$\
+\x7f\x82D\xb7?3+dl\xb9\xd2tiE\x9a\x03\
+r\x87L)\xe4v8\x0cdzUIt\xd27A\
+\xf2\xa9P\xb8\xe3\xaeLx\xbb\xa3YE\x8a\x82\x0e\xb0\
+6\xf0\xe6&\xb3\xea{\xf5\xdc\xd90\xd9\xe0\xb8\x9f~\
+\xdeT\xfe\xb8\xef\xea\x81\x06\xba\x0d9\x19\xcf\xc3\xc7\x8b\
+\x1c8w\xd4\x98/\xb0\x86\xabw\xb1\x1d7\xcb\xa4s\
+we\xd29\x90\x17@\x18a\x9f\x07\xb9%H\xa5#\
+\x91 ;e\xfe\x89u\xd93\xf4\xe8\x10\xf3\xfc Y\
+\x13\xb2\xc0\xc9\xce\xce\x15\x92bA\xad\xb7\x91\xedw\xe3\
+\xe4\x16m\x9c\x13;+\xda\xbe1\xdaa\xb4\xfdh\x87\
+j}dc\xd7\xbcr\x19=\xb5\x10\xb8\xea\x84 \xe3\
+.\xd7\x09\x94^z\xd0\xd9\xb1\xfax\xd5\x1ava\xcf\
+v\x9e\xd5\x00\xbe_\x91\x14)p\xf2\x8a\x87z\xe3\xba\
+\xd3\xcd\xaa\x8dQ\x8e\x87\x07~\xe2\x08`>\xb5\xb7\x98\
+\x95D\xc8hA\xb3\xca\xe1U\x05\x8a\xc0\xd7\xe5 \x95\
+\x88\xf0\x0a6\xb2\xabV\xf1\xde\xb1$fX\x17r/\
+\xf16Bv\xac\xa2@\xe6\x0b\xd5>\x08y\xa3%z\
+>X\xf4\xe8\x1d\xd9#\x92Izz\x818;D[\
+\x8er7\xbfYI\x00x\x80#\xf22\x10\x01\xd9\xe1\
+\xfa\xa7ZwV\xab\xf4\xbfa\x7f\xb7\xd9s\xb2\x1c\xc4\
+\xf4\xb9\x83\xf5\xccr\xe0\xb6z\xbbzf\x9fOVU\
+\xe8H8\x09\x99\xe6\x1cT\x1f4K\xc7\xd7\xcdr\x0f\
+y\xe6>h\x9e\xe9\x13-$\x86\xbc\x12&\x07\xa7\xbb\
+\xd0\xacJ`\xee\xdeW\xc8\xbb\xbd\xbb}\xba}\xf21\
+Y\x81\xaaCz7\xfa\x92Y\xfay y?\xado\
+m\xfe\x97\x8e7\x99U\x15j\x91dz\xe0\xa6}\xbd\
+\xdd\xc8\xac\x8c\xb3\xe6\xe7fU/+\x95FU:}\
+~\xd3{\xcb>\xcc\xf8\xe6\xbcP\x05\x11\xf7\x82W\xa8\
+\x19\xd7\x0a\xc8<\x01r\x8aT\x17\xd6\x16\xd9\xe8@\x89\
+>*\xc1\xc8}\xaaE\xa3\xdb\xd0,'.z\x12K\
+[-\x8e\x94l\xa2q/\xec\x97,=\xafn]\xb3\
+\x22\xa38:\xc3\xac\x82\xca\x93\xc0S+Lw\xabY\
+\xd5\x93N\xab\x95\x1cQ'\xa15\xa6\x88\xb3\x0b\x14\xdb\
+\xef\xab \xf0]\x9blPZ\x03\xb2\xec\x9fq\x05\x5c\
+iV\xf5\xee\xb3O\x09\x09\xe3\xea(\xf4\xa8S\x19%\
+\xe0 @\x93\xaa\x83\xeb\xb2\xd3kM\x82\x9f\xc4\x81\xd6\
+\x13\x0f\xdc\x94\xc0\x06)\x02\x22\x06\xf9\xc0\xd1\xc7\xd4\xda\
+r\x83\xe4\xfb\xd4\xe2@+\x87\x17L\x14\xf0{k\x86\
+\xd4\x13\x5c\xeet\x9f\xb1}\xb2\xfa\x83y1\xdf(\xfb\
+\x1f\xa4w\xce\xb9\xa3D}\xe6R\xb0\xfb\xf5\xa1d\x1b\
+V\x08?\x90\x22\x22\xb5\xcb\x8c\x09\xfbV\x08\xa5-\xb2\
+\x95\xfdZ\xad&\xbe\xae\x0bq\xe3\xeb*\x88\xb4\xc52\
+\xcd\xb2\xb7\x22\xfa\xfb@P\x81\x14\x80{\x00N\x01\xf6\
+k\x10 \xd1\xef\xc6\xff\x0f\x95P\x0f\x8c\x85\xb4\xc2\xaf\
+r\xbf\x1c(=\xe7\x89\xdc\x1fHF!y \xe7\xf5\
+\x040~\xa7\x12\xfc\xee_S\xf9\x96\xff\x0f\xb9\xb6?\
+7\xf9g\xec\xf3\x1e \xe2G\x88k\x86\x96\x1c/\xcc\
+\xc0I\xc4|\xa7\x10\xa0\xf3\xc7_\x85k\xc3\xfdXZ\
+\x01\xf0KH\x04\xc0\xf9\x02\x02\x83\xf1\x8e_\xc0}\xe5\
+\xfc\xf0;I\xc4ARk\x89\xb3\xed\x0aW\x05\xc8\x19\
+WI\xa3 CB\x87\x02\x14\xeb\x97\x9e\x9b\xf7\xee\xd3\
+B\xc1\xfc\xa4`\xc4:\xcd|\xa7U\x80J=\xd7E\
+\x9c\x84\xbf@\xa0\xcf\xefc\x80\xccxe\xfc\x84\xc4\x81\
+\xfb\xf5S\x84H\x9f\x16\x02\xedH\xf6\x1e+\xfd\x91K\
+ &\x06b\xe0\x1fI\xef\xbd2\xa1cl]\x8f\xa4\
+\x86\x11\x19\xcf\xf53\x8eb\x9c\xc48\x04\x89($\xa8\
+s;p\xfd\xc4\x89\xfc\x833BjV\xe3y\xb8=\
+'\x07\xfb\xf97\xc8PD\xb2>\x90\x02\xe8G\x8a\x84\
+%C\xd6\x97W\xa5{\xbe\xaa2\xbeP\x16\xba\xeb\x1f\
+\xd0\xdc\xd5\xc0\x81\x0c\x8cJ\x1b\x15O.\x94\xcc9\x81\
+/\x5c\x00d\x16ac\xe7g\xc8\xe5\xa8D\xbdW\xd0\
+:\xe49\x98\xf8,4q\x01\xe2\xfb\xc88\x02\x95\xc0\
+qe\x81\xe5\xfb\x98\x08@C\xc9\x88\xfdM\x90\x17\x02\
+;\x1e$\x95\x01\x02W\xd8\xef\x19\xc8|\xdf\xd3!\xd0\
+d@3p\x18\xc0\x0c\x1c\x16\x0c \xf5d\x80\x08\xc8\
+\x99@\x05\x02\xdf_\xff\xf3!a\x13\xa1\xfd\xbc\x9e\x09\
+\x19e\x13gOOi\xf6*\xd1\xf2L\x08\x8c9\xf2\
+\xbcm\x9c<V\xb56D\xf9\x0a2\xa2,XF\x8d\
+\xf4Hu_X\xf85\xe1<\x81\xf4~-T\x11\x12\
+?\x0c\x5c\x06\x8cc&F\xc8\xb4\x91\xe1\xf6\xfb\xf6\xaa\
+#(\xfa\xe3\x0b\xa1w\x87\xfb\xcas\x8f-\x13@\x9e\
+HT\x052J2\x9b\x1e\xe0s}\x8c'\xc6%\x09\
+\x97\xc8!\xc0}c\xa3\xa4BK&\x90\xd6\x19\x02*\
+T\x0d\xf8\x1c\xbe\x87qL\x22\x8a\x8c<\x90YA\xf5\
+\x9c\xe3\x02\x88*P:\xe4k\xe8-\x03\xea\x8c\x5c\x1e\
+\x15^\xc8\xf3\xe4\x98\x22\x077\xf6\xc1l3\x93E\x22\
+#yy\xb6\xd2;\xc6\xb8' Ve\xcd\x1dn=\
+\x9f\xf6Wf\xd5|\xd1\x02\x9d{\x9c\xdfR~\xdf\x1c\
+kV}/\xe3\x9b\x0c8\x1b\x14\xe3G\x90\xbd\xd1\xa2\
+f\x95\x03\x0a)\x98\xa0\xa7\xdd2fe\x9c\x81\x5c\xa0\
+\x92\xec?S\xe1\x97\x0e6\x89\x01\xc8\xd1\xbc\xf2\xa5\xd6\
+\x09 \xa2N\x16Ge\x80\xf5P\xad\x1b\xf4\x18\x8e\xce\
+4\xabH\xba\x90{|Zr\x85\x04\x98?4\xab\x12\
+u\xac'\x90K\x02\x81\x16k\xf2\xd8\xfe=\x9b2\xe4\
+jY\xa5\xe13Z\xafj\x08#\x95\x8d\xdfg\xda\xcd\
+>P\xd8\xbd\xe2P\x11I\x92\x07T\xd6\xc3\xffd!\
+\x9dl\xb75S@\xbcD\x85\x04\x92L\x97;T@\
+/\xb5^\xfay\xe9\xfa\xa9\x9c\x909\x8f\x01&\x81\xce\
+`>\xb3R\xf1u\xbdq\xa0\xc3r\x14\xdb\x0f\x98U\
+\xf7\x8d\xe7\xa0\x1eb \xa9\x04x\xccK\xc8\x183t\
+\xf4F9\x8e'\xc9A=G\x01\xfc&z\xfd\xc2B\
+\xa8\x5c_X\xb9s\x0f\xfbl\x15\x92f\x8a \xe1\x03\
+\xb3t|\xce\xacb3\x9f#\xd9\x9bT\xc1\xda\xb8@\
+!i\xfd\xeb\xbe`VHF\xbb\x07\xcd\xaaV$%\
+\xc0\xda\xfd\x93\x1d (\xf1\x06\x82l\xa7y\xdb\x9e\xd2\
+~\xa75\x12\xc4\x0f\xb5\x1b\xb6\x1b\x96\x0a\xee`\x1d\xb3\
+t\x5c\xc4,\xfd\xfe\xdf\xeds\xedsy\xfd\xca\xeb9\
+\x95c_\x07A\x80\x80\xacy\xa9\x99\xdeL\xaf\x1c\xef\
+\x1fI\xed\xe4\x9e\x9e\xd4\xd0\xe5\xd0\xa6\x0b\xb2\xbf\xc8\xe8\
+m#K\xf4\xccc\x96~~\xb3Yz\xdd\xabf\x15\
+\x04\x176\xf33\x9a3Mud\xf0\xf9\xc1\xbe\x83\xff\
+I\xc7\xb7\x9b\x95V\x14\x87\xd6\xaa0\xe2\x8e\xb7\x02\x1d\
+\xc3\xc5dd\x0c\x10j\xb8^\x84\x00\x02\xd1\xe1\xd0r\
+ \xb3\x14\x18@\x04\x10\x18\x89\x15\x9c\xf3\xf7uY\x0e\
+\xfe\xf0N\xb3\x02\x85\xef66K\xbf\xff\xc9\xf0\xa7C\
+\x93?\xbc\xcb\xac\x9c\xa7\xe1\xdd2\xe2\xedZ\x05D\x9a\
+\xc7\x19r\xbfNU\xa1T`\xe5\x01\x81\x1c\xc4\xcc*\
+~\x5c\xb5\x7f\xc1\x0e/\x95\x00Z\xba\x1c\x92\x0e\xe4\x9f\
+\xc4\x15\x81\x00:\xed\x86L\xb9\xa5 \x97|\xfe\x8a4\
+\xaf[\xdd,\x1d\x1fI\xf6p\xba\xae\x1d\xcc\xd2s\xf9\
+\x99Y\xfay?3\xb5\x00M+\x89/8CF\xf3\
+\x99\x15\x95\x0aOp\xd1\x12@\x05\x8d\xfd\x06\x84\x05\xa4\
+\x82\xcc_8=\xe0\xac\x10\xd4~\xf4+\xb3R\xa1\xf6\
+\xd6\x0d\xb5`x\xe0/\xe4\x8b#\x82\xa4\xd2\x03\xd7\x8d\
+'@L\xd5c\xf1\x0aQc\xf5\xcd\x0f\x09\x9am\x01\
+\xf6\xbefe\xdd\xf7\x84\x05\xadb\xec\xe7\x90\x92*\xf1\
+K\xeb\x8e\x07p\x90)\xc3\xa2O\xe0\x88\xca\xc0V=\
+\xe2\xc0\xc9\x02\xaf\xcc\xb4\x97c\x99\xe9\xe3\x90<\xef~\
+l\xc8\xa1\x9cF\xdc\x22'*2\x02,\xdd\xbb>`\
+&P%\x11\x00\xd9\xdd\x9e\xfd\xfa\x99\xc3\xaf)U\x02\
+\x87D?\xfb,d\xdd\xf8\xcb\xb3\xca\xaf\x89\xea\x06\xf8\
+\xa1\xf8\x87\xec\xeb\x0a\xc0]\x05B\x09Z\xf7O\x08\xc0\
+\xb4\x8f\xb3\x8fu\x0f\x99\xe5}l\xff,\xc3\x08g\xc9\
+>\xd9Ja\x02\x0e\x14\x12\xca\xf8?\xc8\xc3\xd2\x22\x19\
+\xd9\xf2\x99\xbfT\xb8\x99\xffj\x05r\xf2TCp\xfd\
+\xa8\x22\x07$0\xe4\xfd\xdc/\x0a\x0d\xf2\xa3\x9d\xe3\x08\
+\xee#\xc8\xf7 \xeb\xe3\x08\x14\x9f\xf7\xf3\xfcIP\xcb\
+/\xa5\xa5\x8b\x80\xd7\x91\xa2p8\x91\x08\x00\x91\x0a\x12\
+\x82\xe7\xc2}f\xbfg\xbdD\xc5\x80\xfb\xc2\xfb\xb8.\
+\x12u\xac\x8b\x8a\xcf\x1c\x89\x10I\x10\x89\xa7\x1479\
+b\x85\x84\x03\xe7\x83\xff\xf1\xb7\xccBQ\xfc]\x0ao\
+</\xe2\x86\xd8ZN<T\x90\xd3\x90\x08NT\xad\
+\x8b\xdc\x00\xd3\x83\x9c{(\x90\x15\xc7g\xa2\xca\x9c#\
+\xc2\xb8?\xc4\xe1\xc4\x87\xb1\xd5\x80\xfb\x00\xe2V\x1c6\
+\x14F\xbc`\xc8<\x0b\xfe=\xfb\xd5x>\xcd\x19\x81\
+\x8d\x9f^\xfd\x97g\x96\x1d\xf3\x00\xca\xdc\xc4\x7fW\x15\
+I*\x9fV\xa1^\xb9\x0a\x88\x98\xc0\xf40Ra\xd5\
+B\xdb\xcciV\x91\x94Q\xd1ga \xb0!\xa1@\
+@H \xc4\xcf@#\x16\x96\xce==u\xdcHz\
+Q\xe8\xf5\x91\x5c\x95\x9f\x07\x15[\x16\x22\x0647\x8e\
+\x1bO\xe2\xa0d\x98&p\x1d8\xa7\xc2F\xaa\xc4p\
+\xff\x0aY\xddDy\x0f\xfe!\xd7\xb7|_\x01\xf4\x0a\
+~\xe8\xf1\xf0\x16\x06t\x91c\xc0H\xa0Ib\xe0)\
+\xfd\x9e\xf3\x8d\xa4\x14\xcf\x87\x80\x16\x87\x98\x00\x92\x80\x9d\
+\x89O\xa0n\x15\xc1\x05+\x12\xc3\x7f\x052C\x12\x17\
+\x9c\x17\x13\x8e\xf3%\x80\xe5sy\x9ez\xde\xc9\xed\x9a\
+\x92\x11)82\xdc\x0f\xb5B8\xf2@\x15S\x0f\x18\
+y\xee\x0c|\x9eO\xcc\x14FN\x00\xc6\x09\x13u6\
+\x8d\xdf\x19\xce\x0d\xd0\xb3\xce\xabU \x8d\xf1>0\x8c\
+\xa4\x85\xc8G\x91\x88\xa1B\xcfBA\x80\x15\x9f[\xbc\
+O \x0aP\x09\x00\xe9\x108\x12\x9c\xf4P\xac\xe73\
+e\xd4Y8bF2\xea\x89\xb20\x90\x00\x83L\x86\
+y\xa8qO\xc5\xcceP\x04\x09o\xee3\xabz\xc0\
+\xd5;J\xef\xae\xf76\x02\x85c\xc3\x85\xbc\xe7\x08\xb3\
+J\x1f\x98\x00\x9f\xeb\x84\xed\x97\xfb\x0d\xc9\xa1\xc8\xf2\x1c\
+\x12/\xe8\x1f=\xe1~\x1e\x81]\xbd9\xcc\xac\x92\x8b\
+\x94\xe3\xee\xeb\x13\xe3\x00Vht\xc1a!\x86\xccL\
+\x0b\xafW\x1e\xd1!\xa6e\x81\xf5\x8d\x04%\x09\x16A\
+f\x9dkD\xea\x0b\xb02#{\x87<\x9e\xd5Os\
+\x05\x15\xc4\x02\x15A9\xa8^\xb9\xa4r\xaf\x8d\xb5\xf9\
+\xabY\xd5R@\x225@\xc9<\x90&\xe1\x81\xc3\xc2\
+\xfaC\xef%d\x8f\xeb7\xeb\x99\xaeyr\xe3s\x05\
+\x11V\xec\x9c\x98\x9b;\x07\xaa\xb3\xe5@\x95\xe7 \xe8\
+5\xaa\x0c8\xdc.\xc3&$\x83'\xf6DV\xe5\x90\
+ic\xe5\xdf\xa7\xa8#t;\x9bU\xeb\xf1G\xb3\x8d\
+5\xc7\x98\x95\xca\x15\x811\x01\x9e\x93\x92\xd2\xfa@\xef\
+\xad\xbd\xefX\xdd\xaf\xbfT\xfa\xf6_7+\xa4z\xae\
+V\x00\x12\x80q\xaaV\x00\xe4\xce\xbc\x02\x0dI\x96\x1c\
+\xcd\xf1\xc3\xcc\xaa\xc0\xd4\x98i\xd6\x90\xe3b\x95\xa7\xff\
+3\xab\xd4[\xe6M6\x8f\x12G\xcfT\xb2y\xfa\xd9\
+\xf7mZv\x80\x14\x1b\xf4\xd9zm\xf74\x13\xa9\xdb\
+g*\xb22\x80^\xb0\x8c\xcbq\x87\xfc\xcd[T\x8c\
+$\xf1*\x05\x9e\xcb\xab\xc5\xe42\x91\x0anRZ\x0e\
+\xda3\xcd\xd2}\xbe\xc8,\xfd\xbc\x8dY!7\xc3\xa1\
+\xb6:\xbdU\xea\x87\xc7\x98\x95V\x92\xf6\xf4\xf6\xb4\xd6\
+\x10\x1a\x874\x876\x87\x14\x99I\xc8\xe7\xd2\x1e\xdd\x07\
+\x04\xab\xf4\x09\xabv\xa7v\xe7v\xe7\xac\xfb\x9e[M\
+\xc66\xea\x13\xfdTV\xbbg\xccJ\x0b\x8cW\x0cg\
+5+\xeb`\xf7=\xb3t\xdc\xd4,=\x9fs\xcc*\
+\xb2b\xb8\x83(x\x10`)1\xe1\xea\x1a\x90\xbc\xe9\
+\xbey@\xc6\xbc\xa2\xd7\x97\xf5\x17\xc7\x1a\xf6v \xd8\
+_4\xab\x9e\x13\xe4\x94J\x98tK&3\xd2\xc3\x0d\
+\x87\x1b\x0d\xad\xe7\xfe\x09\xb3\x12\xd0t/\x98\x15\x88\xbd\
+#\xa3\x84\xcc\xca\xe4\x87\x17\x95\x0an\xb7\x94\x99\xc6\xcd\
+2\x0a\x10\xee\xa8\x1ce\x12\xd3\xec\xab\x04\x1c\xe8\xb7\x93\
+\xd0\x96j\x06\x1c\x0d\xbe\x8e\x12\x80l\x90\xc2\xee\x0d2\
+R\xa5\xe7dQ`\xe4\x95\xec'\xcd\xd2\xf1w\xc9\xde\
+\x92\x8e\xff2K\xd7\xf9\x9aYz\xde\x0b\x9a\xa5\xe3\xd5\
+f9\xf1\x94\xacj\x11\x10\x89\x9d\x93\x1e\x92\x90\x01\xd2\
+\x8dz\x82\xee\x8b\xb70\xd1\xe2)\xae\x14'g\x83S\
+\xe3\xbe\x9e\x0c\xcd\xd5Y\x14p\xbb\x7fAk\xe9\x0ef\
+e\xfe9\xe2U\x08\x0b\x0f\xb8\x90'\xc4?\x92_\x9b\
+!\xe9\xef\xaft\xc8\x85\x08s\xbf\x81}S\xfe6\x1c\
+&\xdcw\x12U\xc8`\xb6\xd7\x98U\xe3\x17\xf9F\xed\
+\xbb^qV\x0boG\x86\x93\x00\x00 \x00IDA\
+T\xc0h\xbb\xd1\xb69\x01t\x9b8E \xfd=C\
+\xadRj\xed\x18;O\x81*\x08\x15\xf6\x0b\x12a\xf8\
+a\xcbh\x7f\xc6\x8f\xc2\xdf\x11\x02\xcf\x03\xce\x1fd+\
+\x05A\xfc\x0e>\x97\x00\x1a\xf2f\x91w\xba\xdc!P\
+w\xc8M/\xea.\xee..r\xb2\xa33Gg\xe4\
+\x04\xb0\xa5\x9dw+-!\xce\xdd\x22?\x9c\x04\xbe\xfb\
+\x85$\xc8$\xe7\xc9\xfe\xea\xe7\x83\xdfH\x81\x89\xc4\x04\
+\xfbf\xe06s\xf2L\xad\x83\x8e\xc4\xa3\xd5\x82\xf5\x01\
+?\x8c\x16\x0e!\x11\xbcb\x0e\xd2\x01\xa8\xbd\x8e\xde\xb2\
+L`MO=\xf3\x18\xbf\x90\xf9H`)n\x0a\x90\
+q\xceQd\x5c\x11\x17Tj\x1e$\x18\xf0\xc7@Z\
+\xd2B\x02\xf2\x16\xf2@\xbe\x87\xc2\x0a\xcf\x93\x82\x15\xdc\
+P \x03H\x040Nhu\x88\xfe2\x08\x82(S\
+\x88_\x1f\xe5Xi\x91\xb8G\xe7\x1f!\xf7\xc4c$\
+V\x08\xc0#\xf7\x1b\xe3O\xad>\xfe\xbaH6\x18+\
+\xfd\x11)\x10\x13\x01\x90\xfa\xaa\x15\xcd\xe3\xc2@Z\xee\
+\x09\x12\xae\x97x\x9c\xc2\xf5\xf6\xd9\xca?\xfcv\xe2\x85\
+\xd8\x0a\xa1\xf15\xee\x17@\xcf\xf44\xf5\x1eA\xaa\x04\
+\xc4\x9f\x05\x9d\x8c\x22\x01y\x9d8x\xf9\x0d\x12\x09\x5c\
+\x00'B\x86\x18\xf252Kd\x9a\x03dy\xa6@\
+1Vty\xf0l\xa0\xf7i\x22h\xa3\xf5^\xf1H\
+\xa6\xc6\x06\xc1\xf53 \x22\x99\x03\x90-H2\xf8G\
+\xc5\x93\x9e\x1f \xe7\xb3\xcba\x8e$ l\xfcL<\
+\x02\xde\x05t\x1f\x05\x15L\xdbO\x0f\xe1%\xc0\x9f\x1a\
+d&X\xa0\x08\xd8\x9f\xd1\x91\xeb\x223\x06\x84{]\
+}\xce\x14\xaf\xfc\xf7Pjz\xf3\xa9x\xab2\xe3\x1b\
+\x1b\x89*d\xd1\xe8M\x9c-dh\x9f\xf5\x16\x92,\
+S\xe3\xe7]\x12\x10\x13!\xf2\x8f\x8a\xe4p\x19}\x1e\
+\xe3\xaa\x9c_$\xc7\xe8\xaf\x97\xfb\xf6\xa0\x16\x927\x0b\
+\xd2\xfe\xa0\x12O\x1f\xe8\x03\x92\xf4\x8c'\x92\x12\xf2\xfc\
+\x22\x17\xc1d\xac\x9a\xf1\xf9?\x1b8)\xe6U\xc5\xe4\
+\xde~\x83s\x8e\x06\xee\x1b\xcf\x15\xe8'\x0b\x15\x95w\
+\xc65\x90*\xce\x93\xcf\xe7}\xfc\x9d\xf9\xc1\x86\xc2\xf8\
+\x0f\xbd<3%\xacbb\x22\xb2\xfa\xd3R\x13{\xf2\
+\xb8\x0f\xdc\x7f\xf4\xd9\x09\xcc\xa9d\xd2\x93\x0d\xe4Y\x01\
+\x11\x0e\xb1\xf7\xce\xb2A\xb0\x11\xbd\x90\x05\x1c\xcb|\xc6\
+aPE&9\xf6\xc9\xaa\x8a\x0e\xa4\x84l\xb0\xf4.\
+\x82<`\x9e\x91yf]aa\xa4\x07\x93\xde7\xe4\
+\xd3\xa8h\x91\x11\x17\x14\xd5\xc9tX\xd0\xd9\xb0\xa8\xec\
+\xd2\xe3)\xb6\xdf\xee\xc3fU\x85@\xe4A\xb0\xae\xbb\
+\x8c\x9c\xe4\x84 'tH\x22\x8e0,\xf2\x5c\x97\x12\
+y\xed\xacf\xa5\xa7\xde\x11\x01\xb42P\x01\x82\x0cK\
+\x1b\x9a\x070$4Yw\x81\x80\x92X\xe5\xfb\xd8\x90\
+\x91\xbfSE\xd8\x03x\xa0\xfa\xf4|\x03\xf9|PH\
+\x17*\xac8Jd\xee\xe7\xd5\xfc\xc7\xb1\x03\xa2*\xa8\
+xs\x8dY\xc5\xb5`\x1b\xe1@\xad\x16\x97U-)\
+V9\xdb;\xdd\xef\xb5\xba\xf7uki\x83[T*\
+\x0b\xfbV\x81\xd4\xdc\xb9\x09\xac\xb4~\x08\x89\x92\x1cY\
+\xb3\xb1\xf6~\xb3\xf4\xfb\x93\xcd\xaa\xd6\x03\xb1\x95C\xb6\
+\xc38\xb00\xd3\x02\xcd\xe6A\xb3\x8aDR\x89#\x9e\
+\x07\x01\x02\x01\x8d1\xcfd\xee\x19U\x18]\x0d\x82\x8a\
+#\xeb\x04\xeb\xa4\xcd\x8e\x87\xb4A\xbf\xaaJ\xe2*r\
+\xd4\xaf\xa9ZR\xcc\xed\xb6\x9e\xf7\xdd\x92\xed.\x87b\
+Fa\xcfw\x12\xac#\xcd\xca\xfc\xa2\xe7\xd5+\x99J\
+0\xb9CC\x85\xc5:I\x7f]\x9d\xa7\xad\xba\x8f\x95\
+\xf5\xbf]\x22Yz\xdf`e\xb3\xdc\xdasI{I\
+\xd1\xa1o\xf6\xec{\xc7\x93s\x9e\x03\x9dnU\xb3\x0c\
+\x09\xde6C\x825\xee\xb3\xac\xdb\xb6e<u\xa7\x9a\
+\xa5\xcf\xd9\xde,\xfd\xfc\xdb\xee\xb6\xee\xb7U\xab\xd1\xe6\
+\x99\xce\xce\x12\x15\x99\xf3`p\xa9YAP\x11\x08;\
+\x84\x1bvv\x05\xd4$\xbc\xfc\xfaI\xe8\x9d \xe4\xd0\
+\xe9J\xe8\x9c\xdc\xcf\xf3\xc1\x1afU!\x83D\xa5z\
+\xe3\xbd\xe2\xcd\xf9\xfd0[\xa9@Z\xab\xc6{\xab\xf5\
+\x84B\x85z\xe8\xe1J\x00\x19\xe5\x01\x82\x10O\xdd\xb7\
+\xcd\xd2qN\xb3\x9c\x08\xd9\xb2\xdb\xb2\x22\xd9S\xe5\xd8\
+\x11*j\x95\x19\xfe|x\xc9\xf0\x92\xdc\xf2\xb1@\xb7\
+@%\xeb\x06\xd7\x84*\xdb$\xd0\xba\x81Y\xc5\x16\x8e\
+\x83\x0d\xb2\x8a\x0a:djj\x8d\x18\xfb\xba\xa0\xe1$\
+\x8cE\xae\x09K:\x95\xee\xe6\xa0\xe6`\xd3)\xcf\x94\
+\x96i}l\xae\xe8U7\xfc\xbe)\x11\x98[\x1b\xd2\
+z\xd9\xddbV\x12N\xc3\xd5\xcc\xd2\xb8\xf8\xa2YQ\
+\xf5\xf0y\xc3\xba\x8d\x0a\x86\x12z.\xef\x09\xfb;-\
+\x0a$t\xdfc\x96\x8e;\x9b\x95\xcf\xf1D\xb0\x12\x00\
+\xa3cF\xc7\x8e\x8e-2u\xc8\xf19\xf4\x9c}\x02\
+\x95\x9bw\x99U\x81\x06\x95zd\xfe$\xcf\x96\x91\x14\
+/+\x81\xbbH\xa9\x00\xfa|\xa4\xf2\x0c)\x1f\x81\x15\
+\x01\x15\x90o\x90j\xdb\xf4\x09\xd3n\xc7n\xa7n\xc7\
+j\xbf=2[9\xcfm\xb2\x15\xff\x86q\xfb\xd7\xec\
+Y\x8d\x8df7\xab\x10\x9b\x90\xef\x01\x91\xbf\xa4\xf7\x07\
+ \xed\xf4}\x99\xfd\x17\xbf\x85\xc4\x03~6\xf1\x02~\
+\x12\xf7\x87\x16\xa3-\xcc\xd2\xe7naV!(\xb5\xaf\
+x\xc2\x1e\x04\xd8\x0df\xe9\xc7\xd3\xcdJ\x80\xdc\x1c\xd2\
+\xef#\xdez\xf7\x97\x9eLq\xb4\xe9\xe8\xc3\x19\x89\x03\
+w\x89H\x11]\x95g{\xb3r?\xfc<H\xd4\x11\
+_(@vD$\x85\x8c\x88\xa8\x04\xfa\xaeB\x90W\
+\xf8\xe10\xe0\xf9\xe1\xaf\x13\xf8\xe1/\xe2\xa7\xf1>\x02\
+p\x02~\xd6\x0b\x12\x0e@\xf0I\x88\x83\x00\x80l\x0f\
+$\x13-\x09\x8c#\xfc>\xe2:\x9e\x1b\xfe\x0e\x09O\
+\x9e3q\x07\xcf\x07?3T\xd8}\xdd#\xf0\x7fv\
+\xa2\x1f\xef\xa4\xcf$\x14\x09p\xa3\xdc!~\x22~2\
+\xd7Cb\x84\xf3\xe0\xfb\xe1\x0e\x90\x9f\xe6\xdcL \x10\
+\xf0\xb39O\x90\x22\x8c_\xbe\x9f\xfb\x13[\x0d\x88#\
+\x19\xbf\xf8\xcb1\x01@\xa0\x1d\xe3\x0b\xfc\xd5\xc8\x91W\
+\x90\xd5\xfd~C\xbcL\x01\x9d\xcf\x8f\x1c\x07\xf8\xf5\xb1\
+\xe0\x17\xef\x1f\x9f?>Q5n<\xe7I\xfe,\x08\
+\xee|z\xa0M\xe5\x18\xc3B\x88\xdc\x17\x0e;'F\
+\xc0\xceq\xde,\x08UZ\x01\xf8\xfddd\x09\x93\x91\
+&0\x91&\x93M\xe0\x81\xf0\xfe\xa0+\xc9\xf7\xa6\xc7\
+\xdb\x93\xae\xad+\xa85\xff\x08\x80\x80|\x01\xcd\x87\xf5\
+9\xb2r\xf2`\xa8\xe0\x89\x0d\xdb\xe5\xba\x16P\xc0\xc1\
+\xf9\xc7\x81\x8f\x03@\x80G\xe6r\x15Aw\x17\xd6\xc2\
+Yd+\xc8$MLx0\xf0\xb8/\xcf;\x19\xe3\
+D\x99\x89Br\xd7\x0f@\xae'f\xc8\xa8\xf4\xc3\xae\
+\xcf\x84\x0e\x01\xa2o\x08T\xe4\x0b\x1b\xe7\xc4V\x02~\
+&pfb\x13\xb0\x12pr\x1d\x9cg$\x7f,\xa4\
+\x16}\xc2\x00\xd9;\x12EA]\xc1\xc7\x03\x9c\x0f<\
+\x0f\xeeG\x9c\x80\xb1\xe7\x87\x0c\x9f2\x9b.\xeb\xa7\x04\
+\x87o\xa8<\x9f\x97\x03\x8b>\x10v\x02.*\x03p\
+k\xc0\x1d1\xcd\xefO_\xe1\xa3\xf5\x80\xef{2 \
+6\xb8\xaf\xcc\x1b\xc6!\xf7\x93\x85\x82\x80\x17.\x016\
+\x5c\x16n\xfe\xb1\xe0\xf3\xbe(;HB\x06h\x12:\
+\xd7_\xc9\xe6\xec\xcc.\xdfFo+\xe7\x05\x19\x0d*\
+\x1eK\x9bU\x1b\xfd\x1d\x22'3U\xe6\xeb*H\x9c\
+\x12\x0d\xddQf\xd5\xbcc\xbe\x81p\x10\x19\x98op\
+\xbc\x0e\xf219\xc4\xb0\x89{\xa0\xa7\x8d\xaf\xb9\xde\xac\
+J\x04\xf0<\x84dp\xd2D\x05\x0a\xae\xe7.G\x91\
+\xc0\xb7;\xc5\xac$\x02\x80\x9c;\xe2\xe3\x80\x1e\x22\xef\
+$9\xf4\xc2\x92\x00\xa2g_\xa4q\xcco')\xfc\
+\xaeY\xa9,y\xe2\x80\x8a\x12\xf3\x00\xd9*Ul@\
+h8\x12\x086`\xf5\xb2{B\x8c\xcfa]\xd93\
+[\x81\xc8\xab\x92N\x05\x1d\x12\xa4fZ_\x01\xf7^\
+mH\xd1\x90i$\xe1\xa1@\xba\xd9\xd8\xb0P\xe98\
+G\xb27U\xa4k\xf9_:^l&V\xf6m+\
+\xb9;\xb8>4\x7f\x08\x5c\xc6\xbe\x9cm\xac}\xd8L\
+-%\xe6\x10mf&\x87\xe9\xfc\x12\x004g\x99U\
+\xbd\xe98\xd2\xb0\xc4\xa3j\x007\x80t\xc1\x9d\xfd\x5c\
+\x89\x05\xaf\xe4\xcaA\xecn0\xabX\xf9\xe5(:)\
+$\xf3N\x15\x1b\x97';\xcc,\xbdn\xb6\x1e!\x91\
+\x81\xc1[\x8aK\xe0\xb0\xaaG\x19\x9dk*\xcb'\xf7\
+=\xdf\xc3\xdd\x92\xed\xae\xca\xe6'*\xf2/\xd3o\xff\
+Giyk\x8eN\xf6\x8d\xb2~t\x9f0+\x08\xb5\
+\x0c\xdd\xbeRl\xe0\xafi\xfd}\xa4\xec\xdf\xae2!\
+\xce\x99\xc1\xa9f\xe98w\xb2\xf4\xf7\xb6\xb3\xe6\xd8t\
+\xfc\xb5Y\x95\x08\x15i]\xb7\x87Y\xb5\xce\xe8\xbe{\
+`\x0e\x19\x97Z$\xdaM\xcc\xd2\xf5mgV\xd6S\
+\x9f\xbf\xcb\xa6Y\xb9l\xc5\xbd!rO\xbe\xdf{\xc7\
+w1\xab\xe4\xf0\xe8\x91%\xd0$\x90\xa5\xc7W\xcf\xc3\
+\x03\x83\x1f\xaa7\xf7\xed\x22\x07\x9b\xdf,\xb3\xe2\xe7\x9e\
+\xef\xee\x00\xb3\x8a;B\x89\x11\xe4\x1e=\x11\xa5\xc4\x1a\
+\x88\x04*\xbfp\xa0x\xe0\x16\xb8\x83\x08LS\xf8\x9b\
+\x91$\xdd\x91f\xe98\x8bY\x91\x95\xb3:\xa7U:\
+\x1d)\x80l\xe0'\xb4>=\xd0\xdd\xd7\xdd\x9f\xe5F\
+\xc7Ln\x14u\x09\xb8\x00\x5c\xae\x8c^d\xed\xf7p\
+Q\xb4w\x99U\x899\xd4\x14\xd4\xb2\xc4z\xe1\xe4h\
+T\xa8A\x86.\x93k\xc0e=?\xa0G\xc0\x8c\x16\
+0\xab\x02\x19\x91\x81:BD\xba\xef\xc3\xbd\xcc\xd2y\
+|9Y\x1a\x1f\xc3\xe5\xcd\xd2\xcf\x0f\x98\x89Sc\x87\
+\x22\xebI\xcf\xb7\xef\xe3\xac\x07$&\x08\xe8\xe0\xc6\xd0\
+\xf3\xee\xe6\xee\xe62\xd2\xc8\xd1b\xa3E-\x01\xeb2\
+\xa28\xf07\x08j\xcd\xf3! \xa7\x22\x0b7\x0d\x81\
+\x12\x81\x18\xdc\x02T8\xd9\x0f\xad5e\xce\xaab+\
+\x12;\x97\x17e\xbd1\xb9\xc9\xab*\x92QK;\xee\
+\xad\xf94g%\xb3h\xf3\xfc\xe8\x8c\xf0\xf8`Fx\
+,0Z\xd0\xeeowgwWwgN\xdc_\x90\
+\x13\xf7\xa8\x83\x5cn\x96[hzD\x90*\xe4i\x14\
+\xad\x90\xc7\x11\xcf\x07\xd2M\xf6\x1f*\xb4\xfcS`\xea\
+-N\xf4\x1e3\x8f\xd4\x82\x94\xc5\x02wy\x83B\x04\
+~;\x89i\x05\x9e\xcd7\xcc*\xbf\x8e\x00\x9c\x80\x87\
+\x7f\xf8]\x22\x87\x8b\xea].{\x18\x02!'O\xd4\
+\xfa\xe12\xc4?6\xab\xfcZ\x12I\xc8E\x8e\x9bU\
+\x09w}\x0e\x885G@\x0ba\xe7\x09\x22\xe4\x0eI\
+\xb0+q\xe1l\xfd\x8c#\x8e\xdc7\x12\x01\x81l\xdd\
+\xc9\xf3x\x1d\x88\x04*\xff\x04\xb6\xb4\xbcP\x89\x07\x22\
+\x8f\xdf\xc4\xe7\xe2\x8f\x83\x08TB\xd5[\xe7@\xfe\x11\
+\xe7P\xc8\x8a*'z\x1e\xcebO\xc0\xcd~K`\
+]\xb7\x92O\xa9~\xcf\xcf<W\xe2\x86@\x1a\xee\x01\
+;\x09\x11\x12\x1e$\x02\x1eW\xfc\xc0\xfbl\x94\xcdR\
+\xed\xc7\xc4\x1d|\x0f\xef\xe3~\xf3\xbd\x04\xfe\xa5p\xd9\
+'r\xf8\xbe\xc8\xe9\x16Z\x07\xd8\xbf\xfd<\xa7\x84B\
+\xeedr\xf4\xc4_\x11A\x8f\xdf\xc8\x91\xf8,\xb66\
+\x83\x0c\xe0H\x9c\x84\xdf\xcf\xfb\xb4>\x8dg\x95\xe3\xb3\
+\xaa\x1bby\xcae*\x07\x92\xcc\xb9\xa0\x82\xdeSl\
+i\x80\xe5\x0aKq\x0e\x17\x86\x15\xd4\x9f\x0b\x22\x90\xc7\
+Q\xe7\x02p\x0c\xb8\x915g\xc0B\xd5\x91\x1e@e\
+t\x1c\x92\xce\x0dbA!\x90!\xc0&\xf3\xaa\xc0x\
+\xa4\x07\xda\xac\xaa\xef!P\x8a\x81V\x80r\xfb\x03\xa0\
+\xe2\x0f\x09\x1f\xd0a\xce\x93\xc0M\xd7\x9b\xb6\xb5\x1eb\
+\xb5\x90\xa0\x82\xcb\x09z\xcayG\xf6~\xc8\xa2\x96U\
+e|5-|T\x8ab\xa5\x96\x07\xc9q01\xb3\
+\xe3\x09\x84\x9740\x99h\xdc\xff@^\x01\xc2\xc1\x03\
+Q\xee\x0f\x19\xdc\xc8\x9a_\x02\xe9\xfe~q\xff`\xd3\
+\x9fK\x03p\x102[B<x\xab\xc4\x8af\xd5\xc0\
+'\x00\xe5\xbe\xf2<I\x10\x90\xc8`\x02q\xbf\xd5\x9b\
+\x98\x9eN\xffyd\xdeB\xaf\xcdL*\x09\xb1\xa7\x9f\
+\xcc\x1f\x0b\x01\x815\x09,\xbe\x17\x84\xc43\xde\xf2\xd1\
+\x07~!\xc1\x04)\x13d+~_yN\x91\xd4\x04\
+\xe8\x0e\xe7\x13\x91\x11\xf1\xfa\x0bYa\xff\x9c\xc8\x98\xe3\
+\x90\xc3\xaa\x0f\x04\x9dy\xc7\xfd\x05a\xc0\xfb\xa3\x9e(\
+\xcf\x85\xf3c\x83\xe7\x1f\xec\xac@\xddV7\xab6p\
+\xc9\xf8\xf8BI\xe2KH\x19g\xa7\xdd\xc3\xacld\
+\xc8\xff\xf9\x86C\xaf!\xe3\x03v\xf3\xe8\xc0S\xd1\xa6\
+7Pr7@\xb0\xd1\x01w}u\xd4@\x80l\x1e\
+lVA\x13\xc5\x0aM\xc5\xcc\xe5d\x08 %\xbf\xe7\
+2}\xfb\x9aU\x819\x0e\x00\x09\x06Z\x85\xb8O8\
+r\xea%\xf4\xcc>\x95\xb8\x00\xed\xc6\x01!\x80l\x1e\
+0\xcb\x95\xb5d\x95J\x80\xc8~|~\xd1+&d\
+\x85sO\xa0\x92 U\x04Z8<!\x04\xc9\xccn\
+}\x22\xa49\xc3\xac\x04<\xa8.\xc01\xd0\xfc\xbdy\
+\xb4\xf9{\x15X\xabW\xd6\x18\x072\x84]\xdc\x06\xb9\
+%\xc0\x10$G\x99\x95^\xf7\xccB\xff\xd1\xeay\x82\
+\x00Poo\xf3m\xb3\x8al\xd2:\xa7/U\xe2m\
+\x89\xdc\x0a\x92[$\xda5\xdb\xb5\xda\xb4\x8e\x0dV5\
+K?\x7f\xc4\xac\x0a\xf4\xa9\xe4#'I\xe5\x8f\x80\x9d\
+@\x19y@UfA\x92\xe0\x10\x02\x91D\xb6\xd0\xa1\
+\xb0\x8cW![\xba\x97\xcc\xaa\x04\xb3\xe6es\xa0\x99\
+Z}\x1e)\x5c\x04.w\xa7Jr\xbemM\xd5s\
+\xaa\xf1\xd1\x9elV\xddOZD\xb4Nt\x9b\x99\xa5\
+\xe3\xe1f\x0a(\x8f\x12\x8b\xfb\x1eE\x97\xde\xb9\x0cl\
+\xf5K\xf3\xbc\xdd4\xd9&\xea\xfdO\xf3\xc64\x1cL\
+\xc5\xa1=#\xd9\x999\xf0\xcd\xfb\x99\xeb\x9c\x03)7\
+\x88\xfa\x92\x15T\x15}p*w\xaa\xccu\xcb\x99U\
+-/\x90\xe7\xc1\xb6.$\x0dH\x8a\xf6\x13f\xc5\xa1\
+mn5K\x9f3\x9fY:^o\x96\x8e\xab\x99\x15\
+d\x8e;\xec\x22[s\xb6v\x917\xb6_3\xab\xd8\
+\xf6) \xe89\xb6\x0b\x99\xa5\xe3\x9b\xcc*\xb2O\xc9\
+\x0d\xba\xfa\x04=\xe9\x22\x15\x03j\xecPZ*\x98T\
+\xda@*A\xc2\x8a#\x07\xe2j\x15AS9\xef\x7f\
+\xf6d[\xbe\x0e(p\xf1\xca\x97\x12\xb4\xec\xcf\xdd/\
+\xba\xab\xba\xab\xf21Yi-\xf1V\x00z\xd5\xc5=\
+\x90U\xd7WW\x02\xec\xd4\xd2\xa22\xf8J\xb2/\x97\
+\x04\x18\x89\xc3\xd1\x8af\x95\xa3\xcb\xfe`\xc0\xd8\xdf\x95\
+\x00\x172=G\x0e@*GBd\x81dFNy\
+\x7f\xb2\x07\xaa\xfb*\x12\xbb\xe1\x85f\xe9\xe7\xe9='\
+D\xfbw\xb3J\x05A\xf3\x9a\x82\x95\xcb\xcd\x12\xf0h\
+\xff\xf1D\x0c\x81\x17\xbd\xf5\x9f\xb4\x94IN\xec\x1c\x98\
+\x13;j\x05H{ZFL\x8cm?\xb6]\x86\xd6\
+*\xf1\xe8\xfe\x12\x882H\xb4\x95\xd8\xca^\xc3c\x15\
+TZ\x88Z/ 3*d\xa5\x17\xdc YD\
+\xf6\xf3\x83}\xcb\x84#\xcb\xac!\xe0\xc4\x8a\x83\x0a\xe4\
+EA\x00X3\x8c\x91\x04\xe6\xf5\x88\xf5\x09\xb2M'\
+\x0f$a-y\xd7<\xca?\xa4\xeb\xfde\xc5\xad!\
+\xf5\x1dT\x12h\x91\xf5\x00\x9a\xc0\x10\x7fA\x89S\xef\
+\xc5\x0f\xf2\x97\xee\x07\xe0\xbf\x80(\xa4\xc5\x04\x99L\x90\
+(\xc8\x0eFvv\x12\xdf\x1c\x09p\xa9\xf4\xf2O\xad\
+b\xeeG\xd1\xb2\x03\x09\x1ed\x8e\x22\xf7u\xa4\x90\xe6\
+?\xdc@$\xce\xbb\xe3\xcc\xd2\xf1Of\x85\x0c\x98\xf5\
+\xc0[\xa7\x90\x0f\x85tW\x5c\x01\x9e@\x81\xd3\x88\x9e\
+|z\xd8QK\xba:[i\xd1`~\xe3?\xff?\
+\xc2\xee\x03\xec\xb6\xab*\x17\xf0\xd9\xfb?\x84\x12Z\x10\
+\x08M\xe9EB\x09R\xa4\x83T\x95\x16A.\x02\xf7\
+\xd2\x14Q\xaf\xf4*U\x01\x0d\x04\x01\x81D\x94\xd0\x0c\
+\x08\x88J\xbbT\x0b HQ\x0ch\xae\xf4^\x12Z\
+B\x09\xa1\xe7\xac}\xd7\x98k\xbcc\xcd\xcc\x93<7\
+\xe3\x81\xfd\xfc\xff\xd9\xff\xdek\xcd5\xcb\x18\xdf\xf8\xc6\
+7\x94\x0a`\x12\x00\x00$\xf4d\xbeQ\xf2\xfd\xbb\xf9\
+\xa7\x8d\xa1\x1a{\x9f\x87\xe1`=\xf3\xe7i\x15\xd8w\
+t[\x18\xbb\x9d\x8d%\xd2\xfch\x01\xb6\xeb\xe5W\x8b\
+[\xf8\xa1\x80\x97\xb1db\x14\x05\xb4\xae\xdd\x0f\xe0C\
+\xa9\xe0\xc7\x93\xa9\xfd\xd1\xf4\x9f\xb4\xa57\x8f\x9cC\xfc\
+8@\xc5\x98\x80\x14\xf8+\x0dp_\x030p\x90X\
+\xa18p\x14#\x1c\x99\xdb\x9e\xab\xd22\xcf\xcd\xf8\x8c\
+\xed\xd9\xcd\x7f\x1a\x09\x80\x96\x5cg\xc504\xaf0\xc0\
+\x93Y\xd3\xc5\x89\xcb\xba\xcc8`)\x01\xf8i\xf7 \
+/\xdaB\xb4\xf5B\x04\x182\x13\xc4\x88\x02\x99\xff\xb3\
+D\xee\xae\xdf]\xe0\x88\xf0\xb8q\x01:\x043\xbf\xaf\
+T\x9d\xb5O\xeb5\x06N\xeb^Q;d\xa2\x13\x99\
+?(\xf0\x17\xb0\x98X2\xb8\x9f\xcf\x0d\xf7\xa3Y3\
+\x8e\xaa$\x90r\xfd\x06HFW\x80$\xb3K\xa3@\
+`\x09\xe1\xb1\x11\x0120%nP\xe2vK\xe0u\
+\xa9\xbcN\x9fg#[k\xca\xce\x8a\x8c\x09\xcc\x5c\x9f\
+\xffd\x80\x05D\xdb\x0c(\x05\x8a\xd9\x0f{\xf7\x99\xac\
+!\xd76\xc2\x84\xf2}\x1c}\xf7% \xf6}&\x0e\
+ bP\x15\xad\xe7\xa5\x96FM:\xc6\xc8\xa1\xf9~\
+\xcf\xe3\xb4\x5c\xe8\x16\x88W\xd7\xe1\xfb\xc7\xb6\x1e6\x98\
+\x95r3%\xb2\xbbm\x0b@`\xc7\xa1w\xbd\xe6\x83\
+\x80\xdf\xc6\xe6{m0\xeeS`\x9f\x14\xa5bF\xa8\
+\x81<3\x81\x8f\xc3\xf3~Vu\xcd\xb3\xb6\xdb\x10P\
+\xe6\x86Z\x0b\xd1\xf5{\xbe\xd4\xc03#U\xe2B\xe6\
+\x9d\x0d\x023A\xc0:\xb4W\x92\xd9(\xad\x00\x81\xbf\
+Zyb\x9bj\xba\x04\xc4\x9e\x93\x8c\xb5\x03\xd9\xf3\x1a\
+5\x1a<\xef\xcc\xacU\xc0b\xdd;\xe8\x92j\xd8\x02\
+\x89_\xee\x98\x01\x19XS-\xdf\xfdvX\xd7\xd6\x07\
+\x85<)\x99\xdb\x07\x84u\x14A\xe2Z\xda\xeed\x0d\
+yu'\xc0\xfc\xa1\xc1\xa0\x8f}\x96\xba\xc8\xa4\x96\xfa\
+\xaev\x9bIu\x17\x90\xd4\x81\x9a\xfd\x9f\xa7\x1b\x87u\
+\x9f\x97H\x7fe\xb2\x95>\xa0\xf8jW%\xa0q`\
+R\xdbOu\xe2\x0a\x90\xac+\x80\x87\x80\xd3}>,\
+l~}EXG\xd1'*(\xb3\x9e\xd4\xc4\xd2\x16\
+0\x0f\xb3\xc6\x92#\xb7yG\xd8\xfc\xfa\x95\xb0N+\
+\xe1Ka\xab\x08\x9cq\x9f\xff\xff\xce\x9b;wZ\x0f\
+\x98\x02\xaf\x0d[3mU\x9b(\x00V\xcbH\xcb\x82\
+\xf8\x1e\x0ap23\x8aR\xfa\x8dV\xf4\xb3\xf6WV\
+Z\xa0\xfd\x18\xd1\xc5\x04j\xb6M><E\xf9\xe6q\
+\xdd\x9e{\xb6y=\xed\xbd-l\xfe\xf9\xbaa\x1d\xf0\
+\xa2\xf64\x81\xb6rh\xb3\x16\x938e\xcd'm\xff\
+\xfc\x9cZ\x03\xdbK\x85u\xe3\x9f\x8c\x8d\xca\xb0ph\
+\xf5\x8bN&\x09\xf1\xb6\xea\xc3\x9c\xda\x17\xa5\xd2m\x7f\
+\xca\x8c\x18\xc0F\x80Z%g\x19(n\x7f#,\xe7\
+\xd7y\xd6\x0cd+\x11\x08u\xfc\x07-\x94\xf13\xff\
+~\xb6\xa0\x86\x1f\x11\xb6\x96\x1al\xaf8\xdb\x95\xd6\xb6\
+h\xdb\x93\xc3\xe6\xd7W\xce\xf6\x8aT\xf9\xbf\xe5\xfa\xfb\
+F\xe4~M\x0b\x00\x97\x00!\xba\x16\xcc\x8e\xfa\x81\xe7\
+\x87u\xfbxf *\xa02\x0f\xb4?K\x0d\x91\xdd\
+O\x97\x1a\xee\xca\xd0Ss?%\xb5&\xb4\xefJ1\
+\xb5\xbd\xa3\xc3\xbavY\xd9\x86m\xbaW\xd8\xfc\xfa\xe5\
+\xb0Nl\xedGa\xf3\xefo\x9e\xea\xf6\x02\xaf\xbf\xce\
+\x0c\xe6s\xb2&\xf8\xb0h\xc0\xd8\x95r\xe4\xf3)&\
+\xc6\x9bg{K+\xf1X\xae?\x1d\xac\xaa%W\x0b\
+\xff\xe7a\x1d\xe0Fk!5%\xb6?\x17\xb6\xce\x9f\
+Z\xef\xd4\xea\xf3\xefK\xed?K\x14v/[J'\
+v7_\x80\xb0\x12\x11\xe4\x80:\xc7\xfa\xdf\x7fy\x05\
+\xf6\xa7\xdf\x9d\xedA\x9d\x9az\x02,4L\xdas\xd9\
+\xebj\x92#\xdc}|\xae\xab\xe8\xf2p\xb3\xd9\xa2{\
+\xc7?\x86\xcd\xafo\x0ak%\x09\xb3\xb5\xf5\xb9\xd4d\
+\x07O\xe9\xa5]\x22\xc1\xb9\x99\xe7\x02fH\xd5\xeeG\
+\x89\xd7S\xbb\x8cr>\xff\xe9Va\xf3\xeb\xabf\x9b\
+\x03\xe0\xe9#\xb3}x\x9eg\x87\x1f\xb8\xc4\x81Kt\
+Z&\x80\xa6\xf4\x13\xa6\xa3\xc3:\xc6Y2\x17\x8a!\
+Ac\x83v\xc7%\x9bGV@X\x05\x86\xff+\xac\
+\x03\x16\xac\xc3\x175[\x81\xaf\x08x\x1f\xd6\xf9C\x00\
+\xfe\x04$\xab\xed\x9fZ\xe4A\xfb\xa6\x95r\xdc\xbcc\
+\xca\xa5\x16L\xf9\x9f\xc9\xb4\xa8@R)\x83\xef\xa1\x09\
+\x90\xcc\x92V\x9a\xf2\xf6\xb6\xbf.\x19|%J\x12x\
+y\xfe\xef\x9e\x12\xd6Dg\x1bs\xad\x02n\xfbq2\
+\x8f\x8a\x22\x7f\x9d\xdd\x91\xbb#;\xc6\x93\x0c\xa3s\x8d\
+\x1f\xfe\x89\x14\x7f{j\x96\xee\xe9\x1e\x93%X\x02\xe4\
+\xca\xe4\xaa\x89w\xee>8\x81\x19\xe7t\x02\xd4\xf5\xb3\
+Lt\xfa7%\xa2\xc8\x9f\xa0\xede\x1f\xb6\x1f\x8d\xea\
+\xea\x18\x98\xa8\xea\xc6U\xc9\x1f\x06\xa7q\xf7w\xfc\x9b\
+\xac\x9d\xafv\xc4\x09<UBC\xff\xf7l7[\x19\
+{\xdfK\xf3\x80\x98\x1ff^\x02\xcf\xd5f0\x01\x81\
+\xba\x0f\xf3L<\xe6\xfa\xad\x7f~\x96\xc0X\x89\x80\xc0\
+\x9f\xc6\x85\xcc\xbc\x04\x14\xffM`\xeb\xef\x00\x0f\xae\x93\
+\x08%\x00J\xbc3\xb6\xa56^\x00\x80\x1c\xb7Z\x07\
+(\xf7\x12\xc0\x02\xeb\xb1+\x97\xf7\xad\xa2~\x8b\xdf<\
+\xb4#,\x91\xcc\x8fdm\xbe\x80\xdd\xfe\xea\xefe\xfa\
+\xc5\xa5}7\xbb\xbe+\x98\x00}\xe8\x8eU\xd7\xe5\xd5\
+\xef1\x14\x00\x06\xc6_\xc0\xbf\x96l/q\x87\xe7\x0d\
+\x88\x19\x99\x0f#\x13X\x1c$\x8e\xf1\xef\x12\x9b\x12F\
+\xf9=\x0dX\xbdh\x07\x10\x8a\x17\xc5\x1f\xf99\xfb\x9b\
+;z\xf3l\xffp\xcb.`0\xc0cf\xd6\x849\
+\xac\xe9\xbf\xaf\x8e+\x0d\x80ou\x01\xde\xd7;\x00\xc1\
+kO=\xbe\xd0\xd9\xf4q\x1ck\x1a\x0c\xdc@\x1d\xaf\
+\x9a\x99\xcc4\x96\xb8\x93\x09\xe9\xc1\xf8;\x8e\xf0\xc7\xb3\
+\xcd\x5c\x22\xa5\x07\x89#\x8cm\xf3\xdc\xbf\x8161L\
+\x00\x19e\x99M\x01\x8c\x80)\xa9\x84\xad\x89\xcae\xba\
+Z{\x9fgBBv\xd2Q\x00 \x14\xe3\xe2*\xf9\
+\x5cF\xf1\xbao\x15\xb5\x7f\x99\xa8\xfb\x12\x08\x18\x90S\
+\x0b\x7f\x0eg\x17\x06\x03`\xc1}\x8em\x00]\xdf\xa8\
+v\xe9\xfbM\xf0\xb1\xd6\x5c@\x0b\xd8\x11\xd0\xae\x01\xfd\
+Y\xd469\x02\x15h\x9fS;\x0e\x9f?\x95\xba\xff\
+\xee,\xafc\xfb\x8d\xd3\x07\xe6\x03&\x896\x94j\xb8\
+~X\xe2\x82\xcb\xf5\x19Wm\x18\x93J\x15\x0a\x03M\
+c\xc0\xc1\xab\x9d\xe2\x9a\xc9_\xe6)@\xc8\xf8\xbb\xcf\
+\xac}\xad\xf1\xc0P1\xffr\xa3\xb1A\x0a\x18\x0e*\
+\x95\x18\xe7#F\x08\xe6\x80\x0cd\xb6\xe1)j\xdd\xaf\
+\x86\xad\x99\x8cj\x03\xe8 \xbbv\xb3}\x9b\xcb\x86u\
+5\xaf\xa8\xca\x991)\x07!)\x8bj\xc3\x0b\x91\xcc\
+q\xd4~\xab\x80\x04\x1b\x1c\xf1:\x99\x02\x19hm\x0b\
+1k8\x14y \x97\xca\xbf\x8c\x03\x0a\xaaL\x9a\xfd\
+\xc9\x81i\xde\x0b\xc0!\xef2^\x9e\x9b\xefQs\xa9\
+=\x13\x871\x03\xb8\xaaU\xa3\x16\x8d\xeaIu_\xc9\
+\xc0\xed\xc3\xba\x00\x9e\x86\x86\x8c;F\xc9\xd8\x97u(\
+\xbd0\x0f+#\x8fia\xfd\x19O@\x1e\x91\xa7\xcc\
+\x1cO\x8f\x08[\x03%\xb5\xb3\x02\xfc\x02Le\x088\
+\xc4\x10v\x0c0\xe3\x9b\xe2\x9b\xf35.\xfb\x9a\xfb\xbb\
+WX\xe7\xd8Z\xb7\x18 I1\x06\x5c\xa1\xe6W\xe6\
+SF\x81Ju\x02<\xae[\x0dj\xa9K\xe7A\xb8\
+\xfd\xf9\xb0\xb5\xa4c\xfb\x94\xd9\x9e\xdci\xd7\xa8a\xbe\
+lX\xab\xfd}t\xab\xfd\x8d\xfd\xff\xe3k\xe0\xaa\xed\
+\xd1\xe6\xaf7\xaf\xdc\xfcu\x0b`Z\x1b\xacF\xcc?\
+\xaak\xd3\xf5\xb4\x85\xc9\xb1y\xf5\xfc\xce\xbfn\xfb\xd5\
+\xc2\xb0P\xda\x83Q #\xf8\xcc\xb0\xeey\xda\x7f\x92\
+\x9a*\xb3]b\x80j\x901\x9a\xd4\x04\xbb\xce\x14-\
+\x04\xd8m\x1f\x1a\xd6\x05Lw\x0eK \xfd:\xc9\xa0\
+x\xda\xbcm>|\xb6y\x1e\x1c\xf8\xa7\xb0\xb5&x\
+{\x93\xd9n<\xbf\x1e\x98\xed\xcc\xd4\xde\x98\xafk\xef\
+~\xb3\xddw~\xfd\x8f\xb0\x0c\xc0\xaf\x9c\x8euhi\
+\xbc;\xac+M\xc8}\x8dC[\xdd\x122#]]\
+\x90\x9e\xbdd^\xe7\xabm5\xd2\xbb''s'\xf7\
+\x9d*\x09\xb8\xd4\xa2\xe6/\x80\xdb\xbe<l\xcd\xa0\x97\
+8cR\xc7Q\x94KD\xee\xd8\xe9\x05\xd3\x0bR<\
+\xf1\xc2\xeb8\xb66w\x0f_\xbbw\x94\xe6\xc8\x97\xc3\
+\xba\x80;U\xfb\xa7\x8b\x85u\xea\xe1\xc7l\x9e\xb59\
+\xa6i\x07\x1c\xb5;\xaa\xfb|\x8e\xa7\x80\xe4\x7f\x86\xad\
+\xfbT1\x1c\xf2\xbe\xa2\x19d\xcb\xc4\xa6\x18!1\xd0\
+\xe9ya]\x9b\xb53\xb2\xbb\xc1\xd3\xc3\xd6\xee\x0c\x02\
+\x9d\xda\xb7eXs?*\xaa\xfb\x0bs>\xedo\x9d\
+\xd8\x97\xda\xfc\x9bv\x99j\x22a\xd9\x0e\x14\xa3\xa2\x9d\
+\xdb_\xcb}\xedM\xb9\xdf\xcf\xfbe\xf4p\xd8\xce\xfb\
+\xd1\xf6W\xc2V@H\xc0\xb3\xf9\xde\xe6\xf4\xcd\xe9\xdd\
+\xf7sHe\xea2#[\x22\xa0\x02\x92\x14\xd9\xac@\
+/\x99|\xd3\xf5g\x9b\xcf\xc9\x03\x0f\x0c\x9b\xff\xee\x0f\
+\xc2\x92\x22\x7f\xcb\x15\xe0\xa8\x12\xb1\xd4\x1e\xf2\xf7%n\
+Ge\x9d\xc3\x9dm\xcb\xaad\xf7\xee\x8b6\x05\xd1\xd1\
+\x0aPi\xcf\x00r\xf3\xbe\x1a`\xfd\xc0\xcc8\xff}\
+\x07\x10j3xX\xe7\xdf\xed\xba\xfd3N\xcf\x07\xaf\
+@gui\xa1\xfeM\x04VI\xc4\xe8we\xe0\xab\
+\xebB\xed\x97\xd6_\x9e[\x9bK-\x8c\x14\xa5.\x05\
+\xa0\xe5>8\xbdw\xd1X\xd8\x9cwI\x98\xec~'\
+\xb5\x1a$\x160\x1dt-\x00\x98:g\xc4\x07\xfc\x16\
+b\x802\xc97LM\x95\x0c@\x0a(\xc1<\xb9k\
+X\xd7\x16\xcf\xb9\x9e%|M\x81\xe4_Zi\xc4\xc2\
+p\xe1'\xc9\xf0\xe6|\xa9R\x9e\xcc\x14W[B\x0c\
+\x13q\x09\x7f\x5c\xa9\x0a-\x1a\xe7\xad8'\xfd\xf0\xaa\
+MW\xd2\xe2\xbah'd\xe0\x8b\x01S\xcc\xdd\xa7\x85\
+u\x09\x11\x8c\x04}\xef\x03@|s\xe7?`\x06\xca\
+\x8c\x0b\xdc\x9d\x87\x02[\x80\x15\x7f\xd2u;\xff\x01\xee\
+\x02m\xaf\x02^@\x81\xc0\x9b\x7f\xe4\xef\x01%\xe2\x19\
+\x1b\xb6\x00\xda:&2\x87a\xc9\xdf\xe0\xdf\x01\x0a\xc6\
+\xdaw\x0c>\xc0#q?\xdfk\xfc\x01\x04\xb4\xd6\x00\
+1\x02p\xf1\x86D\xab\xe7\xf5\xf9\xa5D\xb8>o\x0c\
+\xfc\xc5W\xda\xb4*i\x1d\x01\x88!\xae*\x91CZ\
+\x0d\xe2\xde\x11\xb0p\x7f\xae\xc3\xf7\xbb\xaf\xff_\xbbB\
+\xf1\xed(b82\x1fF\xe6\xaf\xbf\xf3\xdf\xc8,\xf0\
+\x1c\xc5\xbf\xe7\x19\x12\x94\xf9\xfb\xfd\x95\x91\xf7\xe08,\
+(\xc3\x1ednd\xd5\x1e\x22\xa9L\x150\x11w\xd0\
+\xbf<j\xe3\xae\x94\x81\xff\xf9;\xc0 \xdc\xa0\xd3\xcf\
+\xa6\xa6]\xc0?\xd6\xf8\xcb\xcc\xbaq\x19s\x99J\x01\
+\x90\x01\xb5@\x00\x0d\x90T\xef\xb7A\x8f\xa2\x0a\x020\
+T\xf8l\x7fV\xdf\x07\xb9\xd37\xd4\xdf\xe7\xbfW\x86\
+\xd7\xf7\xa4\x03]H\x0c$\xdc\x83\x16\xd0z\xd0\x18\x01\
+\xd7i\xb6>@\x80\xc4\xa9\x03\x13B`!\x83{\xea\
+ N\xe1?\x01\x0e\x87|T\x81\xdf\x0d\xd4xH \
+\xe4\xc9\xf5\xd9\xc8\xf4\x99\xd7\x7f|TA\xc5$\x18\x81\
+\x9d\xb5\xbd\xe4r?c)\xc19\x01\x0ej\xef\xf2\xfd\
+s\xf0\xfc\xad\xbe\x0dem\x94\x02u\xed$\x7f\x92\x9f\
+\xfb\xb5|\x9f\xe7\x98\x01Xm\xf4\xa8\xca\x97\xcf\x05\xe4\
+z0D\x8c\x8b\x85\xe4\xf7\x02n\x99\xe4\x97g\xbb\x9f\
+\x0c$\x0bh\x01@\x08\x0c2\xa3\xa0\xefxm\xc42\
+\xed\x02|\xe3\xb9v\xb7X2\xbaT\x8dQ\x01\x05j\
+J;\x00m(o\x99\xd9+\xf5bm1\x95$\x8c\
+\x99w\xcc\x15\xebfd4Dmb'\xc2W}\xbc\
+\x13P\xe0HV\xe0\x9e5\xad\x95y\x10\x90'\x85P\
+M\xa9\x0c(u\xe3\xda\xb0\xb3\xedR\x05\xe0j\x02\xb3\
+\x04\xa0D\x8a\x922^\x0eK\xde\x97Lv9\x1e\xe6\
+W:\x5c\xe5 \xa5\x06\xc8\xf4\x8a\xb0\xae\xe6\x8b\x06\x8a\
+@\xcd\xfa\x91\xe1\xe5\xf8y\x1e\x0e\xca\x0clj\xfe\x1b\
+O\xefK1\xaa\xca\xd8\xa3`\x9b_\xbe\xc7Af\x1f\
+6\x8f\x13h\x92\xb1*f\x85\x83\x13\x1e\x96]\x08J\
+\x1d?\xc7\xad\x1c\x0a5\xcb\x1c-\x81\xc1X\xba\x05\xd0\
+\xe4\x88\x09\xd4t\x05xBX\xd7G\x98\xca\xbe\xf9C\
+TN\x9b\xb4T\x1b\xaf\x0c\x0b\xd1\xd6\xa4\xf8W \x9c\
+\x8ex\x01NJ\x0dR\xdd~\xfb\xb7\xb3\xbd\xb6\x03\xf4\
+d6\xa9i'\xe5\x9a\x9a\xf3\xee\xeb\xbb\xaf\x85\xe6\x86\
+\xccm\xa9i\xdfnw\xfb\x10!\xabZu\x19\x9a<\
+O\xb6/\x0d\x9b_/\xbd\xbd\xcc\xf62\x9dC\x08\x10\
+S\x13\xfa\xa0\xb0.\xf0\x91\xa9N\x95rL\x9d\xdd+\
+\xc3\xe6\xcf\xbbaXW\x02\x93\xf3\x87c\x5c\x80\x01\x00\
+)\x01\xac\xcaTg\xc6x:|\xb6\x8b\xaf\x80\xf1\xf4\
+\x90\xd9\xe6\xf5u\xe6=\xc2Vq\xba\x12\xeb\xbb\xdd\xd2\
+\xa5\xa61\x1e\x1e\xb9\x02\xe8\xd5\x8d#\xc5\x00Q\xd81\
+\x86\x1aS)(\x86/Z\xa8\xba\xd3\x95\xc3V\xed\x95\
+9<n\x81\xd2\xe6\xfeK`\xab=\x1f&\xcd\xee\x17\
+s=g\xbb\xad\x02|>\xdaH\x9b\xeb~\x98L\x0b\
+\xcfQ`m\xdcJ|3\xc5\xef\xa6\xbf\x0a\x9b\xa7\xf5\
+\x0b\x92\x89@3#5V\xa6\xcb\x84%\x93\xe3\xf1\x1d\
+\xc3\x04u\xf9ZK\x86\x93&\x87\x9a\xf9\xea\x92\x90m\
+\xf2j\xbc\x7f\xb0\x94t\xf8\x9e\xbd\x1b\x86\xcd\xbf?o\
+\xd8\xfc\xfa\xdcE\xc4/\xf2\xc3\x91!\x9e\x8e\x9e\xfe\xa4\
+e\xa6\xf3\xbe\xe6\xab}\xf9\xf4\xf2\x06\xc8-\xda\x0d(\
+\xb8\xd7YJ\x83\xaa\x1b\x00\xc6\x0bq8\x998\xe7\x09\
+\xd1=\x81\xe1\x8f\xd2\xaf\xca6\x96\x0d\xce{\xef\xca\xd8\
+\xd1\x85\xa1\x05\xa2\x8f\xef\x80\xd1\x5c\xa7m?\xbcb\xee\
+kw\xcdy~\xf7\x15\x18\xdc^-\xac\xa3\xe4\xdfr\
+{\x8b\xc6\x10\xf8\xce\xf6\xbb\xdb\xefvm\xf9\x92\xd9\x85\
+\x82^\xe7\x0du\xf9\xdc\xaf1\xaa\xd4\xf0\x97(_2\
+\x8a\xa6g\x84\xcd\xcf\xf5Na\x19\x00|\xa2\x89\x0a\x86\
+U@\xb8\xff\x97\xc3\xba\xfd\x12`J-^\x97\xa9\xa4\
+Z\xeb\xd61\xbdv\xb6\xbf\xe92\xe5\x12Kq\xba\xbd\
+&\xaf\xe3\xde\xeb9W\x8c\x8fG\xb4F\xa8%\xc2Y\
+\xebW\x06/\xd2P\x17\xe9\xda\xb3:w\x89\xb9\x12\xa9\
+\xb3?%\xf0d\xde\x95\xbf&Q\x935\xfc%\xc2\xaa\
+\xad\x1e\x11\xbfC\x9b,\xf2\xbe\xdd\x8b\xc3\xd6\xd2\xc3\xca\
+\x10\xcb\xe8\xbez\xa1\xa6O\x9fI@\x89\x0a\xf9I\xc9\
+\xec:e\xd1\xba(\xad\x0d\x9a;\xfc3\xfe\xa4\xc0\xe7\
+oSd\xf2c\x99\x19\xff\xc3fk\x06\x5c\xbbE~\
+\x94\xfd\x0f\xc0\x92\x19\xcay\xf4\x16\xbf\xc0\xf7\x00\x14<\
+O\x19\xd6\xd7\x85u\x0c\x1f\xe3\xf6\xbf\xc2\xd6\xf5\xb2\xef\
+\x1a\xa9I\xe0y\xf0\x8b\xf9I\x02W~\x1c\xbf\x07\xd0\
+\xc1\xaf\xcb\xae?\x18\x0c\x80\xeb\xda\xcfQ\xed%Z\x9c\
+\xe3\xbe\xc7y,\xe0$2\xa8=\xa4\x00S\x89\x84s\
+\xd2\xf5*Y\xb1\xee\xc5\x03\x98\xbe\xee\xcfyC$O\
+\xa6_\xe0<\xb6\xe1\x13\xa8j\xd7g\x9e`\x068\xff\
+\x05\xc6c\x1f\xfa\x7f\x0a\xeb\xfe\x9d\x7f ^s\xfd\x9e\
+\xe7\xa8\xf2\x0f\xa0\xe0\xc7\x10\xf5\x93\x90\xf0\xfe\x91j\x8f\
+\x99\xf9\xb1\xf9\xfd\x1f\xeb\xc6\x7f`\x04\xd4\xe7\x8f\xb5\xfe\
+>\xef\x9c\xbao\x8d\xdd\xb9\xfc<\xb6S\x1f\xdb\xa4\x03\
+\x1a<\x07\xaf\x03\x00Q\xebF\xe9\x87\xf9=~\x9f\xeb\
+\x19^i]\x14\x003t;+\xb1\xc7\x5co\xe5\x97\
+y~\xfc\xdf\x12\x01\x14p\x08@\x04\xf4\x1ed\x22~\
+U\xfbn\xa1\x98H\x02W\xa5\x04D\xe3\x82\xcarj\
+\xd7^O7\x81\x98Vg\x1c\xac\xb6N]\xb52\xf9\
+\xaeG\xe0(c%\xc0\xb6\xc0\x88\xad\xf8{\xdf7f\
+\xb4\xc7\xda\xef\x11I\x19k;L \x88\x95\xff\xa8d\
+\xd2\x04\xa0I\x80rm\xe3\xb6P\xd2\x01)Q#\x94\
+m\x8e>\xe6\x00\xe6\xc2\xc8\x98\xf0\xc0<\x97R\xa3O\
+J+\xc0\xc2\xf3\xb1\xb1\xb9o\x13\xc4\xf3\xdc\x9f\xaf\xfe\
+\xddx\xd8P\xc6\xf1\xb8\xe8p](\xd6!\x1e\xf5\xe3\
+\xae\x0d\xdfX\xab~\xfa \x0e8Rm\xbewVq\
+\x93\x83\xde\xe7\xf3,\x08\x99\x96\x13\xb3\xa6\xd9\xf5\x1f\x18\
+\xbaX\xe4FVj\xff\x97\xce\x9a:\xe3\x07i5\xde\
+WI \xe0KI\x9d\x07\xd4X0\xde\xe7\xb9\xa2\xfa\
+\xff\xdfDF\xbf\x94\x1b0`\x89X\xcb\x17\xb3T\xe5\
+\xee)^\xa7\xff\xba\xcc;\xca\xb4\xf5\x07I\xcevo\
+Eu\xf3\xbd\xe6\xbf\x0c\xb2@\xf2W\x9b\xadb|(\
+Z\xe6\x89\xf14\xffdH\xd5\xf0\xe5\xfa-QK\x8e\
+\x0a\x874U\xa0\xab\x8d\x9f\x00\xe9\xf1a\xf3\xef\x1f\x1b\
+\xd6\xdd?\x84\xdd\xbc\xd577\xc5tJ\xccO[\xa6\
+\xac\x11-\x95|\xaa\xfd\xda\xe9e\x86\xaa\xe6\xf1\x1f\xef\
+{zk\xe3\xf7\xf0\xb0\x95JX\x99\x04\x07X:\xac\
+\x1c\xba\xca e\x8d%\xf1\xa4\xe9\xa4\xb0N]_\x8d\
+n:\xac\xda\xae\x15r\xae6;E~\xd4\xce\xd7\x01\
+C-\xd9x\x8c\x80\x9a\xd2\x8d\x1c\x07\x14\xf6rX\x1d\
+\x14\x03\xd5\xae\xc4\xb7d\x0c8\x06\x00\xc5t,9T\
+\x9b\xef\x87\xad\xa2\x82\x15\xc8\xe5~S\x80\xa5\x92\x05\x8e\
+Dvo@\xd5/1<\x94y\x19DL\x8fC\xc2\
+Vf\xc1\xf6!\xa9F\xff\x92\xf9\xea_\xb2\xd6HV\
+[\xa6\x07\x87\xad\x19\xa7&\xfa\xf4\xf4\xce\xd1\xbe\x7fX\
+'Fe\xde~'l~\xfdV\xd8\xfcz\xae\xb0\x04\
+L\x8f\xecj\xb8_\xbad\xf01R\x88\xa5\xd5\xbc\xca\
+\x8cj\x01\xcd\x00\x0b\x14\xd5\xac}\xb5/n\x7f\x1a\xb6\
+~\xf5\x02\xc6F\x00\x00 \x00IDAT\x7f1P\
+\xd4j\xfea\xd8Z\xd2Q\x01\xed(\xda\xe3\xb9\xbf1\
+l\xdd\xa7KL0\xfb\x93O\xff\x106\x7f\xef%\xc3\
+\xbaLr\xd6\xc6n\x9f\x1c\xd6\xf5SOGB;\xc8\
+3\x1f5\xdb#\xf3\xbe_\xbbjW\xec} \xaci\
+\x95\xdc6\xb4J\x9a\x86\xc3\x03\xb3\xf4\xe7\x11\xabXb\
+\xfb\xf9Q\x09\xf4\xbdm-Ai\x14\xf0\x9b6q\xb1\
+\x0f\x85\xb8\x18J|s[\xef\x91\xeb\xeb\xf1]{-\
+\xc0\xce\xab3P{\xc7\xfc9\xef\xce\xda\xe4\xbd<'\
+\x22\xb0\xbfiX\xae\xb7_^Ki6o\x0d\xeb\x02\
+\x8e\xa4\x88O\xef\x0e\xeb\xba\x18d&\xfd\xc0\xad\xc3Z\
+\x1b\xb9&~\x86\x99R%\x07\x11 \xbf)3\xcd\xbf\
+\xbb\x96P(M\x99\xae0]q\xbab\xd7\xa5\xc2>\
+\xcc\xcfIM\x8f\xe9\xa9a\x09t\xbeo\x15\xa3S\xda\
+q\xe0\xfda\xab\x98\x1d\xbfdz\xdf\xf4\xfe\xe9}\xab\
+h\xda\xbc\xdb-\xa2z\xdae\xca\x98F\xe0<\xef\xfb\
+\xd3\x09a\xab:9@\xb2j\xc2\x89\x88r\xf4\xed[\
+I\x81\xad\xb6\x9f\x01\xfc\xfdI\xe7\x9fx\xbdmk\x9c\
+\xb8/\x9b\xb9,\xcc\x8d\x9bt\x01aj\x9a(\xf9\xac\
+\xfd7\x03\xef\xed\xfd\xc2\xe6\xd7\x8bl\x7ff;\x9f\x8f\
+\xdboo\xbf\xb3\xfdNWR\x10\x80I\xcc\x8b\x17\x84\
+u\xed\x17\x83\xa7\xf0\xa6u\xbe\x17 @\xfb\x00\x93!\
+\x18\x19\xf3<\x9d.=\xdbe\x92Yu\xbbn}g\
+w\x8c\x06\x1c\xbfz\xcdX\xebNQ\x1a\x22\xba\xd0\xa0\
+\xee\xe7\xfe2\x1d\x12\xb6jcT\x9b;\x09\x96d\xbc\
+4\x80\xec\xe1\xc9x\xb9J\x03\x0ao\x17L\x91\x12\xeb\
+K\xa0F\xc9\xc3\xeeg\xc3\xba\xd2\xa2\x0ff[=\xe7\
+f0,N\xc9\x0c\xfe\xf5\xd6\xf9\xb0\xbbsXW\xbb\
+\xee\x1cK\x00\xb22\x97\x80\xd1\x04Vj\xbf\xdc\xcbu\
+\x95\x80\x01 \xa6\x02\xe9\x14\x1b\xec\x12`K`\x96\xda\
+4m\x1et\xc0v\x01\xed\xd7I\xa6\xd6\xaa\xdd\xb3\xf8\
+?2\xcb\xb4$\xf8'\x12pc\xe9\x03\x7f\x87\x7fp\
+\xfcr\xbe9\x0f\x0a(zJR\xf9\x89\xd8\xe5\xfa\xdb\
+\xdd:l\x05Nh\xe8T)\xd1\xc5\xc2\x1a\xd0\xb9\xec\
+\xe3\x1fH\xe0\x0e\xe3G{J\xddi\xfc7\xf6\x83\x17\
+\x88\x01\xc2%\x1e2\xc3\x8c\x09Z]D\x8e\x08\xeb\x80\
+\x18\x81\x9f.H\x98n\xc46\x05\xb8\x09\x1c\x16\x83B\
+\xe9)`\xc8\xf7\x0a\x10\x05\xc4\xfcW\xd7;\x8a\xe4\xd9\
+\x0f\xf8\x13\xe2\x18\xf3\x09\xb0ALP\x80L,u\x0c\
+\x90\x05\xf0\xe2)q\x00?^\xbbL\xf1\x95\xb8f,\
+\xb9\x95\xd0\x10\x10\x0b\xe4G\x15~\xd7\xe9g\x0c\x04\xed\
+\xc9%f\xfc;`k\xd4\xf0\xc20\xc2<\xe0W\x0d\
+\x80R\xfd\xddPj^\xfe\xb3\xeb\x05\x98\x8c\x1a\x01y\
+~\x1c\xc4x\xf2j|\x013\xde\x0f\xa8\x18\x01\x871\
+\x0e\x1d\xb5\x03Ff\x81\xd2:%\xaf\x09\xe0U\x09\x16\
+f\xe2\xd8V0\xfd\x91\xfd\xed >\xfdl\xc4&\x04\
+>2\xb1\xe3\x84\x10\xc8\x0b,e\xb8Fu\xc3\xb1\xdd\
+Z\xfc\x7f\x97\xd9-&\x80\x8dwP\xf3<(\xa3\x0d\
+ir#\xfe~\x10y8\xa8\x1f\xa3\xf7\x8d\xda\x042\
+t&\xb8\xfbW\x83m\xc3B\xad\x96\xd9\xbfTX\xb7\
+Q\x0a\xcc\xb2\xcd^!{\xda\xd6\x11SLJ\xe0\xe6\
+\xc8\x85BZ\xdfc\x5c\x8d\x8bq[\xdb\xe9\x9du\x82\
+\xd8\xc8\xc7L\xb5\x83\x9a\xe3\xd9k/\x5c\xa0\xbb\xbf}\
+\xd5u\xe1,\xa5\x0f\xd5\x0dA\x1b\xb1o\xe7\xfdx\x0e\
+\x80\x1b\xafc_M\xd7-c\x9c\x99\x8b\x9a\x90\x18\x00\
+\xdf\x1aJ<\xcc/\xf7%\x03.\xd0G\xe9N\xaaM\
+Q\xf2\xa9\xf1\xaf\xf3p\xf9{\xe3\xea\xfeQ\xa5<o\
+\xb5\xc5\xe7K\xc0\xea\xc7K\xad\xe8\xe6\x0eI\x85\x1b\xdb\
+\xe1\xd9\x80\xbfR\xa5\x1fg\xad\xf9\xf3\x9a\x00\xd8\xec>\
+-\xf3W\xe6\x9d\x83&\xe07\xff,L\x8c\x1b\xf7o\
+>\x01\x00d\xfa\x01O\xa8\xe1\x19\xb8pD\x8b\xb2\xe6\
+\xe0\xb1\x8e\xcd\xaf\xb1\xcb\x83\xd7\xb1\xad\xa0\xe7\xe8\x80\xb4\
+\x01*q\xc0\xf40.\xe6\x97\x0d\xd6\x01Gm_\xc0\
+\x9f\xed\xb3*S\x0aP\xd3\xa7[`\x9d\x01{1\x00\
+\xb4\x1f<6lU7\xae@\xe0\xa8\x85\x9a\xdb\xa8\x9c\
+w\xef\xe6\x1b\x15\xe8p\xdcn\xd7\x95\xa8h\x9f\x95\x99\
+\x9d:\xb0Q~\xb3=\x9dLH\xd5\xd8S\xe9G\x99\
+D\x89\x03xp4r<\xab\xb4!\xc7\xa3j\x04\xf3\
+`\xaa\xb6{\xc4\xf1^\x14\xd6=7\x01\xfdIa]\
+i@^O\x89\x19F@\x7f\xd4\xda&\xae2\xfa\x9e\
+\xaf\x03IW\x82\x0c(Ku\xd9~!\xc0\xc5\x94y\
+y\xd8J=.M\x80g\x86\xcd\xd3\xe5\xfca\xab\xfa\
+\xfd\xee\xba\xb3cv\xdd\x16 \xbe\xa5Q\x1e\x93\xaa\x1c\
+Z\xd3A\x8d\x0c\xa2pP\x85\x05TM\x9c\xea7:\
+\x84;T\xb2\x0f\xed\xda\x19&\xa3g\xf3\x81\xb0N\xcc\
+J\x0dvP\xd2\xdf\xd5e\x9c\x887F\xb7\x86\xfbv\
+}\xc1\xad'\xeb%\xfb\xd3\xef\x1e\x12\xd6\x05\x1eG\x87\
+\xcd\xf7\xf5\xc6\xb0\xf9}\x8f\x0ck\xcf\xa9\xd5\x84O7\
+\x0d[\x9fSe03\xf0\xa9\xdaH@\xac\xccQ2\
+>\xec\xdf\xa5ys\xa3fk[\xb7\xf6\xdf\xfc=\xc7\
+\x84\xad5\xb7\xda\xa0m>\x15\xd6\xb5w\xcby\xd5\xba\
+\x03\xdc?\xc5\xd6\xae\xbc\xee\xe3\xad\x86\xfb\xe6\x19\xf8\xdf\
+6\xc5\xaa\xfewS\xb5?\xb9i?<7\xac\x0bh\
+\xb4\x93\xcc@k\xf3\x96\xd9\xde\xdc\xb5S\x8b|\xe0\xe3\
+:Q\xb9\xa0F\xdfy\xcd|afl\xce\x0c[\x99\
+X\x00\x8a\x12\x83\x03\xe4\xf7\xb5\xb1\xdf\xc8}\xf2j\x9d\
+\xc8g\xd6FO/\x9d^6\xbd\xac\xd3\x9c0\xaf.\
+\xbf\xac\xff\xe9\xa1a\xf3\xeb\x0bf{~:D_\xcc\
+\xb6\x8c\xdbt\x88\xff9\x01\xc7\xf9~\xb6\x7f5\xdb\x09\
+kW\x13\xfb\xc2\xe6\xa9a]\xbb\xb7\xac=\x9e\xae\x1d\
+\xb6\xd6\x86\x97z{f2\xa7\xd3\xa6oM\xd1\x87\xfd\
+7\xa6{F\x1b\xb6\x03/\x0b[\x19\x1b\xda\xdb\xd5\xf9\
+\x7fz\xee#oZ\xc4;7\xa7\x86%\x83\xe3.k\
+\xe9\xc7\xa4\xd4\xe1\x84\x044\x94\x08$3\xa42\xd3Y\
+r\x12\xb0N\x1b\xff\xec\x9eP\xda?\xc9X\xb1\xef6\
+\xe0\xe5&\x09L\xc6\xbay\xf3l\xff'k\xed\xffs\
+\x0d\x80\x002\xdb\xc7\x87uL\x90\xdc\xbf\x883n/\
+\x1d\x96\xeb\xe4\x7f\xb7v\x9d7\x9c~\xb1+\xdd\xd0\xfe\
+\x8ex^\x06v%\xb6\xa64\x898\x1f -\x0aV\
+B\xad\xff\x1ba\x9d\xb6\x88v\xb0\xfcM\x00e\xf6\x89\
+\xdf\xde4l\xfe\xdc\xd3\xc2\x1a\xe3\xa1\x01\xd6\xa5\xa5\x90\
+T\xff\xe9\xeba\x1d0\x22\xc1\xa1\x16;N\xbdO\xac\
+\x89\x96\xaa\xd5\xf7\x9f\xf3E\x1fy\xa5 \xa8\xdb\xd67\
+q\xc2\xe0\x1f<\xb7\xebrBd4\x01\xdd\xdd_\x87\
+\xad\x80E\x05\x024A\xb4\x8f%\x02\x19\xe1\xfe\xe5\xbb\
+\xee5\x98N\x00#\xe2m2\xf9\x00\xde;,%\x81\
+Jh\x94\xee\x14 \x97\x01\xfc\xe6\xc5a]I!\x7f\
+%\xfd\xf9bZ\xf1\x1bd\x22\x89\xd8a\xa69Od\
+\xee\x93IQ\xea\xfa43\xcc\x13\xc0\xb1\x12\xbb\x04\xf2\
+J\xbd\x9f\xffa|t\xcbzS\xee'WK\x7f\x8b\
+_, \xcc\x92\x90\x12\x85L\xca}1h\x12H\xae\
+\x9fS\xab\xc6y\xa9Mb\x05\x904\x1a\x12\xe0\x020\
+WB\x030o~\xd1Z\xc2P\xd2\x0dBI!\xe6\
+\x9c\x84\x83\xb8\xca\xb8f\x09V\xf9\xdd\xee\x8f?)\xf0\
+\x1f3\xdf\x98{cI\xe3P\xc3^\xe3I\xd5?\xf7\
+\xc1\xda\xa7\xf9\xd3\x98\x13\xfcU\x99x\x9f\xe3}\xae\x83\
+\x7f\xe4:Q\xf9]\x1f\xbf\x11\x00 ~\x0a@\xf3#\
+)\xee\xf7\xf1\xee\xf7\xfe~`\xa0\x97\x08\x1e\x00\x09\x03\
+\xc3u\x8d5\xfd\xfc\x22\xe2\x83D\x10\x01@\xe2\x93\xa1\
+\x9d\xf7A\xdd\x08\xdc\xe7\xa8\xc2\x0f\xb8\xf8dXw\xfd\
+\x02\xf91\xc0\x1f\x9f\x87\xb8X\x89\xad\xeb\x1a\xdb\xcb+\
+\xdd\x14\xdfI\x08J\xd8\x8f\x8c\x82\xfc\xdc\xfd\x07eZ\
+\x95\x04\x10\x15\xa2\x9a(\xd3,\x83\x08\x09\x12\x08\xa6\xa8\
+\xd0Am\xd6\x04\xe0\xa3\x8a\xfcH-\xf1>\x13])\
+\x81\x0c;\x00a\xac\x05?\xa7\x9au\x01\xbf\xeb\x03\x18\
+\xa0\xf2g\xe6\xe4 q6\x9f\xefsmlc\xcd\xae\
+\x89\xef\xfd\x02$\x13\xd3\x83\xe0x\xca,\x13\x03DQ\
+w\xbd\xdf;k)\xc2\xec<.\x7fg\x9cP\xfcO\
+\xcd\x9f\x01\x0d\xeesd<(\x8d\xc8@\xba\xb5\xe1:\
+_GM>$\xef\x03Xb\xfc<\x873\xcf\x9aY\
+\xaf\xeb\x1ck|F\x0a\xff\x99\x83j\xeb\x88T~k\
+h\xafH\xe4Nm>\xf5z\xd7\xe1U\x00-\xd0\x04\
+\x10\xec\x1f\x98\x22\x9fHd\x11\xd5^[\x18\x9fo>\
+\x8d\xb5\xcd\xa7\x16\xd0\xb2dTm\x846N\x94'\x81\
+\x92\x92\x185\xdf\x02'\x8e-`\xc6\xfbG\x06\x82\x0d\
+K\xed4\x06\x03\xb1?j\xf2\xe6\x19u`\xaf\xbe\xcf\
+\x06`\xbc\x8d\x0f@\x02`f\x1d'\xd5\x92\xa8\x5c=\
+?\xebc\x14_\xc1\xe8!\x22w\x8f\xb0n\x1e\x99\xef\
+\x10\xd1\xdc\xe8J\x157k\xf4J\xbd\x5c\xad\x97\xcc\xa9\
+vw\xe90U@\x95\x14g\xe2}u\xf0\xff\xf7B\
+\x15\xc6@\xa8\x0c\x9d\x0cGR%Q\xec*s\xaef\
+\x9dH\x17\xaab\x06\x80j\xb9\xb5\xa5+\xc7\x94\xba\xaa\
+\x0d\x1bb\x9f\xed\x99\xaa\xdf\xbb\x0c\x08\x80\x09\xf5.\x19\
+D(\xc7\xa5\xb6O\xb5\x9f\x83`\x9fI\xcajT\x9a\
+\xb7\x9a\xf4\x9c\xf7\xb4\x16\xaa\xcbC\xb6\xe3\xac\xef\xcf\x1a\
+\xd3R\xb3'.\x08\x88H\x8d\x8d\xcd\x0f\xc3\xba\xfd^\
+\xad\x22 Cf'\xa9\xb8-\x00|K\xb7\x8f\xe5\xe7\
+GEt\xd4D\xcfNb\x9b\xbfj\xfb\xa7OL\x1f\
+\x8f\xccg\xeb\xfe\xb1\xd7j\xa7\x1bPP\xd4\xf2\xe7\xa6\
+\xdaq\x02\x1c-\x83\xf5\x80\x8eR\x99\x07\x99u\x8a\xa9\
+\xd1*u\xef\xde\xd5H\xa2@\x07\xb5<j[_\x9e\
+\x94\xeag\x87em\xed\xae\xd3\xae\x08\xbc\xfd\x0b\xb9/\
+\x9f\xbb\xab\xd5\x0c\x82\xee\xb5\xbb~\xd2\xda(\xa5\x08\x5c\
+#hl\xd7\xfd\x05u~\xfb\xe2\xb0U\xbd\xbb\x98=\
+Ji\x94\xc0\xbc \xac+Q\xb0O\xa1z\xaa9\xd4\
+7\x9e\xe8X:\xca\xdbO\x85\xad\xebpj\xffu]\
+\x11\xcco\x19\x1c\x9a8\x09\xb4\x14P\x91%G\x8d\xd1\
+\xf2\xe9u^c\x12pL+\xa3\x16\x81\xe6\xdfu}\
+\xd73\x93HT\xaf9\xbaO\xeb2,\xa9\xfe\xbe\xfd\
+\xc1l?\xccn\x01D\x11O\xeaj\xc3\x93\x09\xd2N\
+\x97\x03\xc9\xd8:im\x1b\xbc\xfd\xc5\xb0.S\xf5\xb7\
+a\xf3}\x7fl\xfah\xa8\xc4\x17#\x08\xc0\x9c\xfb\x8d\
+\x80\xa3\xed\x9f\xa7\xad\xcc\x84R\xa3\x0f\xea\xf0\xdfw\x01\
+\xf9\xa3\xc3\xba\xe7z\xeb\xb0\x95\xb1w \xdb\x08n\xf6\
+\x96\xfd\xc0\xbe\x15\xb3>\xe6\xfd\xf6\xbf\xc3Z \xb1\x04\
+\x84\xdb\xe5\x1c\x0aByc^|f\xfa\xec\xf4\x99\xb5\
+DG\xfb\xafj\xbf\x97\x1a\x15%\x92x\xfd\xa4\x10\xa7\
+\xa8h\x05\x88\x80\x9eo\xe4\xfe\x9a\xf3\xb6j\xab\xf3\x5c\
+\xd2\xeex\xf7;a\xeb9\x0a\xe0\xa1\x191\x9d\x18\xb6\
+2\x11[&\xf0\xa4\xd4\xa08.3a\xa76 \xef\
+\xba\x01\xe4\xd59\x99\x89\x05\xc0\xb3}a{\xcf\xb0\xf9\
+\xf5\xb9a\xcdo\xfbJ\xf8m\xdb\x13\xc2r}\x1c\xd1\
+i\x168\x8f\x04B\xce\x9f\xdcW\xcd\xd79,\xbdg\
+\x0bL\xffy\xf7\xce\x08\xac[I\xcbC\xba\xc0\x87#\
+\xaeM\xdb\x85\xc2Z;\xbf\xcbD;\xbf\xfd\x87\xec?\
+\xd7\xfes5\x80\xf2\x02\x01PV?u\x8e>&\xc5\
+]f;\xaa\x01\x88\xdf\xdai\x93|\xf2\x0aT\xb50\
+\xfa\x0b\x0b\x10\xd1\xda)\xca@\xf2[b\xf6gms\
+\xdcw\x01\x80\x02(\xd4f\x01\xae~\xf3\x80h\xe3,\
+#\x98\x8c\x88j#'q\xe1\xbc\x05|Ew\x9a\xbb\
+e\xfb\xbe#\xd6@\xbf\xb4)\xa8\x9c\x13\x1b\x04@<\
+}\xd1\x00\xa9RV\x81=\xbf8\xba\x83<\xa0c8\
+\x1d\x1b\xd61\xf7\xeco\xb9\x0e\xed\x07\xe5\x87\x02b\xce\
+\x1d\xd6\x8d\x87nP\x18\x86w\xcf\xef\xbd\xfa\xe2\x17W\
+\xd7\x8c\x04\xf41\xb3\x00.\xf5=\xc9xtn\xef\xae\
+\x1d\xd61\x16]?\xe6\x07\x7f\xc9\xbc\xc1\xa0\x1bE\xae\
+\x05\x5c\x18\x02\x12\x7f\x02T\x81\xb5v\x8a\xd9&\x95\x18\
+\xed\xeeFa+@U\xfeM\xb6\x17\xdc<9,\xe7\
+\xdb]\xd6\xebq\xce\x95\xf6\x83\x126\x8cF\xf1\x8b\xc4\
+^\x96r\xd5x\x8f\xb5\xf7\xe2\x07\x01(qn\xd4q\
+\xf7\xaff\xde\xbc\xf3:\x8a\xdda.\x8a\x8f\x94\xc2\x8e\
+\x8ce\xdf\xaf\x9d\xe1\x900\xac\xf980\x16\x0ej\xe3\
+'\x90\x16\xc8+\xc9\xf9@\x02\x0c\x9f\xcf@|\xa4\xd6\
+\xd3\x04\x00\xa8\xf0_G\x91\xf6\xb1\x06_\xa9\xa9\x00\x1d\
+ \xe0\xdf\x8d3\xff\x8c\x7fg\xbc\xc6\xeb\xf6=\x18\x0e\
+4\x0d\x8c\xb7\xeb\x928\x13Gy\xce\xe2\x04\xfe\x0dm\
+\x01\xcfslS\x08\x90C\xf9\xd7\xe5\x88\xc6\x84\x12\x22\
+\xf7-\x9e\xca\xef\xdb_7\xd8S\xc0\xbf\xd1}\xf0\x8f\
+[\x8e\xb8\x10\xfa\xdd\xc9\xb3}\xa5\xab\x91\x17\xf8\xed\xcb\
+`r\xac1w\x83\x10~\xbf\xef)\xe3\xbd\xea\xbc\x81\
+\xf6s\xa9\xb5\xe0\xc8\x14\xf5\xfb\xec\x03\xcd13=f\
+\xa8}\xef7\x866kc\x86\xdb\xefM0\x03\xc8\xd1\
+\x1f\x11\x1a\xc8Q^O\xa9\xd4\xda\xb8\xd5\xee\x028\xf4\
+\x7f\x97\x09Z\x17\xd4\x12\xd8\x12\x0d\x14\x88\x9b\x18\xa9\xee\
+?o\xb2g\xad\xb5\xf7\x1c\xa7\x1c\x97C\xce\xda\xef\xb1\
+\xa8Y\xe7\x1aJ\x00\xc6\x80\xff\x9c^\xbd\xcf\xdf\x09l\
+\x1d\xe8+2\xbc\x5c\x87\x85\x8eZ\xf3\xcdR\xfd_\xc6\
+\xdd\xc6\x82\x09`\xdc}\xce\x08\xc0\xd8xlD\x16\x00\
+ \x80(\x9f\x8dAm\x91\xb6,(\x80\xc4\xda\x00?\
+\x00\x1d\x07\x95\xcf\xb5\xb0}\xaf\x8d\x11\x85Z\xe9\x83\x9a\
+o\x1b\xb1n\x0c\xae\x13\x90\x90\x81 J\xad\x0c=\xf1\
+\xa2z\xfe\xc6\x13P`\xc3\x80d\x1aw\x88+\xc7\x5c\
+\x06(\xdb\xb4U\x97\x0d\xea\xbf\x02H\x1b\x0f*\x1aj\
+\x22Ds,m\xf1\xfc\x01\x1b68\x0e\xce\xd0\xff\x98\
+J}\x05\x98Y\xbbV\x01{\x8e\x8b\x8cn=_\x07\
+\x97\x8c\x81\xf5\x0c\xe9\xbf|R\x1b\xef\xb7P\x1e\x0b\xb8\
+\xf2\xfc\x8d\xdf\xbd\x16\x07)\x08\xa3\x11\xa8\x95\x88[\x06\
+\xba\xd5\x97\xd9<\xa3\x95\x90\x01\x7fQQm\xd8\x02\x96\
+T\x9b6\x8e\xfa\xdc\x17\x85^[\xb7\xcc\x18W\xc6\x9c\
+\xe8c\x96B4\xf1\xb5\x9btb^\x00>\x14I\x99\
+-\xeb\xd9\xba\xcd\xda\xe1bL\x00\x22\x00|\x99\x19\xae\
+\xc0\x1f\xa2\x9e\x0eW\x95\x22a\xa8\xa4\xfa?\xa0\xb5\xc4\
+\xb40\x02\x8c\xcb\x13\xc3Z)\xcbR\x02r\xa3\xc5\x01\
+\x9a^4\x1d?\x1d\xdf9\xd6\x87eIR\x04:\xef\
+l\xed\x01[i\x88\xcc\xd8\xf6\xce\xdb\xbbl\xef\xdc\xe6\
+\xcdr\x90]r\x01\xc8\xaa_s\x96\x88m\xdf\x156\
+\xbf\xfe(l~}{\xd8\xdao}{\xe4\xf6\xda\xdb\
+#\xd7\xeb\xe2\xd8\xaa\x0doL\x80o\xad\xda\x13\xb5_\
+\xd3\x84H\xc7\xad\x02\xfflgX\xa5\x22j\xc3\xb3f\
+\xb8\xa8\xb1\x09<h[8}/l\x0d\x1c+S#\
+3\x22\xb0\x170'\xe0,\x10\xab\xae\x14\xa9Z=\xdd\
+!l\xfe\xf9\xbca\xf3\xfb\xfe0\xac\xeb\xf3\x9d\xb5\xad\
+\xd3\xe7\xc3\xd6\xf5E\x03\xa3\xda-\x9e\x106\xff\xfd\x13\
+\xc3\x1aP\xd3\xc4\xeb\x00\x00\xdb+\xcc\x16\xdd\x07^\x1f\
+\xb62\x0e\xaa\xfd\x16\xcd\x8b\x14k\xab\x12\x03*\xdd2\
+\xb4\xc9\x94\x88|wd\xbc[\x9e\xf3\xc6\xe9\xf0|\xbc\
+\xd3\x8a\x89s\xf0\x0aI\xd5\xfc\x8f\x8eivF\xc8\xdc\
+e&\xec\xc5+@\xa3o|T\x96Gm9\xf1\xbe\
+Zo\x1c\xfb\xec\x8b\xdeT\x97\xbf\xbc\x02\x16\xed)\xdd\
+\xbe\x0b\xa0\xa2\xe2\xf8\x99\xd9\x17\xfe\x0e\xdd\xfe\x15D\xe7\
+7gi\xcc\xabW&\x80\xb6\x8c\xfb\x1e\xb7\x94`\x1d\
+\xb8fv'xF\xd8\xbcm\xdc!\xac\xcd\xff\xd9V\
+\x07\x1f 0\x9fm_k\xdd\x00\x8e\x9e\xdf\x7ftj\
+3\x1c\xdeeZ\x89\xfcR]\x07\x14\xa7\x8fSZ#\
+\x80\xc0\xec\xd6a\x1f\xd8\xbc*l\xad\xf5\xae\x80\xe1O\
+R\xbc.\x81n\x81Q\x03\x8an\xb9\xd6\xa27`f\
+>\x1f\xa6w\xcc6\xaf\xab\xed\x9f\x86\xcd?\xff\xaf\xb0\
+\xf9\xe7;\xce\x16\xf7w\x97\xd9\x8eZ\xc5|\x0b\xb8\xc8\
+}q{\xd9\xb0\xf9}\x7f\x146\xff\xfc\xcc\xb0\xf9\xe7\
+\xff\x136\xff|\xfc\xf6\xc5\xdb\xe330\x8fy{T\
+\xd8\xba\xde\xa6\xe7\x84u\xe3@\x84\xf6\xd3aM\xeb\xa6\
+Q\xe1\x05\xf6\x00\xb3\xe9\xa3K\xbb@\xe7C1\x1c\xec\
+\x9f\xf6\xbf?\xda\xf7\xd4\x10\x83\xdb\xfbv\xd8|=o\
+\x0b[)\xe7\xa5A\x11\xe7\xd2\x13\xd6uX\xcfG\x82\
+b\x0e\x07\x03\x80j^\xca\x07\xbaR\x06\x89\x01\x99\xff\
+8\x8d\xdf\xd5u\x83p\xdd\x19`\xab]\xafn&(\
+\xec2\xe0\x1cu\x22\xb8Y\x9a3\xcf\xe2\x97\xb7Z\xf1\
+we\x0d8\xe0\xf4\xfa\xc9\x8c{~\xb3U;\x8a_\
+E$\x10\x13\xe1\xe1\xcb\xb8\x14\xa3+\xb5\x10\xaa\xa6\x9e\
+\xa8]\x96 T\x00J\xc4X\xbb;\x9a:\x11\x07\x9c\
+\xdc1\xfd\x00\x15Jz\x13\x90\xa8\xaeD\xe9\x9f\xd5\xbc\
+M \xa2\x98w\xc4\x05e.\x8d\x83\x80\x12\x80\x7f\x5c\
+X\xd7\x8d\xc0x&\x93\xae\x80\x02\x9f+`\xe3\x1f\x88\
+\x03$<\xc6nc\x00)~Ej:\x95\x88e\xfa\
+\xebJ#\xeb\x5c\xf9\xd7\xb0n?\xcd\x12Y\x0c\x22\x22\
+\x81\xc4\x91\xa3\xa7Nt\xd5\xa9s9E\x07+\x10\x95\
+\xf0\xe0\xe7\xf9O\x80\xca\xbfT\x9a!\xee\xa29\x03\xa8\
+\x128\xfa\x1c~\xadL4\x7f\x10\xf0\xcd\x1f\xc0\xc8\xf5\
+~\xe3F\xab\xe7\x82a\xf3\xfb\xdf\x14\xd6e\x9as\x1e\
+\x00\xb2+\x90\xa6A\xe0\xbaG\x8a\xbd\x00\x9a\xa6\x97n\
+-\x02\xff\x93\xf2z?;\xbf\xfb\xb3\xd9%\xe6\x94N\
+\xc3\x00\x10\xed\xbe$`\xf8q\x80\x00\x81{\xce\x8bb\
+\xfa\xf8;T\xfe1\xb0\x07\x14x\xbf\x8c\xbb\xb8P<\
+8\x02.>\x8f?\xe6:F\xad%\xf1\x0e\xf1q\xcf\
+a\xfc{\xf7\xe5\xfb\xc6\xb6\xe9\xa3v\x1f\xbf\xda\xf3\x1c\
+J%\xf6w\x22s\xcb\xc6A\xb4\xef|\x8d\x1c\xbd\x04\
+H\xe7I\x87y\x9bH\xd4\xb9\x06\x0a\xf1\xfen\x82\xfa\
+b\x08\xa9Z\x93\x5c\x80\xc5 \x08\xdc\xefj\xdd\xc2\x14\
+@\x09p\xb6K{\xb7s\xcc\xec\x8f\x81\xfd\xf8:\xd6\
+\x94\x1b\xe81s}Nb\x84\x1c\xf3\x91:\x81\x22\x06\
+Au]\x1eh:\x82\xc5`\xb8nX\x17Xz\x90\
+\x10`\x94@\xfd\xeb\x87\x92\x87:\x90\xae\x95\xe2r\x87\
+/\xb5y\x15\xe8'B\xbf\xfb\xf6\x22\xfePj\xef\xdf\
+=\x87\x1a{@\xc2*\xce\xb7|\xdf\xd8wrdr\
+\x9cSi\xc2\x1a\xe0/\xe3e\xc1\x8f\xdd\x0a\x5c\x0f\xca\
+\xfe\xda\x8eb\x19\x7f\xcfeP\xcd.\x07\xde\xb8\xa0r\
+e`[\x1a\x15\x1cD\x0c\x8bCs\x1e\xd9\x18\x05\xb0\
+\x0e\xca\x0b\xe6\xfb\x04\xb8\xe6\xab\xb6p\x9e\x9by\xe3 \
+\x80\xe4+m\xb8MX\xb7a\xe4\xf7\x94\x03\xfc\x0b\xf9\
+9#SC\xe0k\xe3\xb9@]\xf7\x82\xa8\x8e*\xad\
+D`\xa8\x89\xcbp\xa7CU\x8e\x94\xef\xb1Q\x08L\
+\x06\xb5YT\xd2B\xf6\x1d\x14\xdaQ\x01JP^m\
+\xcc\xbaI\xf8;\x88\xb9\x0c\x22\x8agf\xb6+\xa0\xb4\
+\xce1\x1a \x94\x9e\xb7\xbe\xb9\xd9o\xba\x80\x0c\xf3\xed\
+\xdf\xf2 \xf8\x9bT\xe7\xb5\xe1\xd9\x08i\x91x\x8e\xc4\
+\x00w\xf9?\x99n\xfdvSL\xa9D{R%\xb8\
+\x80\x0fj\xc2ki\x0f\x15\xfce\xc3Ub\x02\x183\
+\xbf\x92\x9a\xb9\xf9\xad\xb0\xce\xa1!\xeev\xfb\xb0\x95\xca\
+^\x22Q\xf6\x1d\x01\x8a\xf59jt\xd8\xc8\xbf\x94\xa2\
+\xaboO\xaae>\xef\x16\xf0=k\x15\x01\xdb\xbc3\
+l\x15\xedBI-\x0d\x01\xa5%\x98\x19\x99\xc9\xa8Z\
+\xf5\xbfK@\x84x\xd5\xdfd\xe9\xc4\x03\xc3\xda\x01\xb5\
+\xccO\xed\x0d\xb5\x17\xdc\x0b\xeb\x02\xc6\xc3v\x17nm\
+\xb4\x1c\x9c\x09tl\x1e\xb6yh0Q\xaa\x9d_\xb6\
+\xb5\xdb~,l~\xfdt\xd8\xfc\xbe\x7f\x0fK\x87\xff\
+\xd2\x9d\x03\xae\x86\x14R\x8e\x19\x93baM\xa3\xe2q\
+\x9d\x83\x92\x00[\x89\xeaiG\xe89S\xfd~R\xaa\
+\xd4\xeb\x12\x90\xe3\xb8\xef\x8f\x9b\xed\xdb\xfde\xd8<}\
+\x9f\x1d\x96]\x08\x9e\xd2i\x0d\xc8\xb8Y\x87\xbe\xdf\xfd\
+\xe7>9]>\xacc\xcah+\x09\xa8\xd0w\xfc\x17\
+\xc3\xd6@\xb22\xf7\xe9\x08W_\xf4;\x85\xad\xed3\
+\xb7\xc7\xcev\xdc\xfa\xfc\xed\x1b\x959MJ\xe9\xf6\xf0\
+\xb0N\xfd\xfd\xb4\xd6\xb05\x02\xae\x96y\xdf|1l\
+\xcd\x0c\x1e\xf8B\xd8\xfc\xefo\x0e[\x01\xc5VS=\
+\x8f[(A\x84\x16\xc4\xf6\xcc\xb0\xf9\xf5\x12a\x1d3\
+\xcd9\x9a}\xc6[\xc0z\xadl\xe7\xda14Z)\
+\xda\x91\xab\xf8\x1c\x7fcwLX\x024\xdb,\xd1\x8b\
+\x12\x87\x8b,\xed\xfcZ\xf8\xf0K+\xa5\xbaD\xe6r\
+\x7f\xda^<,\x03\xe1wt~\x8f\x1a\xe8\xdc\x977\
+?\xdc\xfch\xf3\xa3\xceQ\xd6\x9e\xf4\x93a]\x00\x9a\
+L\x9d\xe9\x22a\x1d5\x9f\x88\xa0\xefGq\x16\x08\xad\
+\xe2X\x8b\x98f\x02]\xd5\x05\xc6\xf9\x93]\x15\xaa\x84\
+\xe4ma\x1d\xf0\xfa\xaee~Vf4\xa9\xdcMK\
+\xe3gr}\xde4\xe7\xe7{:\x86@\x00iO\xca\
+\xe7r\xae\xf5y\x16u?\xfc\x93\x13;\xca\xb9\xd29\
+\xcc\xa2d\xf6(\x19\xdc~(\xac\x01\x0f7\x0f\x86\x8a\
+.\x15{7\x98\xed\xfa)\x96\xf7[\x9d\xc8c\x04\x10\
+o\xec\xc4Is|\xab}\xdf\xb9\x17\xcau\x01z\xba\
+y$P6?\xb3\xf6\xdc\xa6\xef\x86u\x14}\xfbw\
+\xe4\x7fo\xd2\x89\xdd\xda\x87\x89\x9e\xc5\xe9\xf2\xfd.\x80\
+M\x00\xa1\x02`\xe7\xaf\x8c\xe4\x9d\xc2V\xbf\xa4(\xe1\
+\xfc\x1d\xfb\x07\x07\x1e\x83\xc2\xfe\x99\xfbfQ\xff\x93\x01\
+\xd8\x02\xbfOt~\xb0},\xd2\x04\xd7\xee\xbaK\xfc\
+W\x0b\x85V\xe0@\xf7\x1a\xa5LJ\xbf\x04\x14oO\
+*\xb9R<\xfe\x94\xc0\x9d\x7fHd\x10\x00-\x11\xf1\
+\xfaE\xe4t\xdf\xa53\xb3\x7f\x85,)H?kw\
+\xfc\xeeE\xbb\x17u\xe7\x22?-\x99H\x8d\xa9\xf0\xeb\
+\x9d\xff\xf4\xda\x14\x0f\xd6%EiB\x02\xe4J\xe6\xaa\
+[\x0c`D\xa9-\xff\x81_\x09\xc8\xb7>\x94\x0e\xa5\
+\x86\x0cf\xdf\xd8\xad\xa3J+]\xafq\xf0y\x00\x00\
+\x1a4\xc9\xa0\xabRB\xfe\xb4\x80\xdc\xbeNTw\xd0\
+d*\xa6\x87\xf3\xdby\x90\x01[\xf9\xb39\x0e\x05x\
+\xa4FR\xf9\x07\xa3\xba;?ddr\x9a\xcf\xa38\
+\x9d\x84&?z\xd4\x02\x00\xb8\x88W\xc4=\xa36\xc0\
+\xd8n}l\x97..\xe2\xdf\x1a_q\xe3\x080\xc8\
+\xe0\xab\x91w\x1d\x1f\xcf\xf3S\x5c\xf1\xb9\x06\x01\xac\x09\
+(\x19v\xa5\x03\xe2\xab\x91\x91-\xd1\xe5~\x05\xc2c\
+\xb7\x01\x9f\xe3\xdc\xe6\xf7\x02\x18\xf8\xc9\xe2\x1e~\x9a\xf8\
+y\x04\x04\x00\x0eC\xc2\xb8\xe2\x1f\x808\xc0\xc6\xf3r\
+]#\xb3\xc0}\xd9o\xc6Ri\xfb\xb3\xebr\xbe`\
+v\x02r\xb3\xa4c\x7f\xd7W}\xa5\x8e\x9f+?\xf8\
+lT\xf4\xab\xf6=\x96\xb3\x80\xf5\x8c\xbc\xd1\xae\x9d]\
+[\xa6\x17\xce\x0c\xdee\xba\x09?R*\xce\xa9O;\
+\xd1\xc0\xb1-\xa0\x85\x7f\x0e*\xf3Eq\xa6\x8e\x7fN\
+\xd4~\xafc_xb\x1a\xa8\xcc\x02<\x99t\x0f\xd4\
+\xf7C\xf0e\xe8|\xae\xebt\x7f\x02<\x1b\x98\xcf\x13\
+\xb8^*\x03S\x99\xe8\xab\xe6\xab\x85\xfd\xf9D\xa0r\
+\x02G\xb3\xa7V\xa3\x7f\xbd\xdch>\x97\xd7\xe5\xd5\x84\
+\xc9\xeb\xab\x12\x0e\xe3\xe2\xfbm\x80\x9e\xcb\x08\xb4\x18\xdf\
+\xd3\xaa\x04a\x99\xe8\xa8t\xda\xfd\x11_\xfc\xceP\x9a\
+0j3x\x0eJ\x18\x06U\xcd\xfa<\xd7)@\x1c\
+\xdb\x93\x18w\xcfK\x9b\x95\xf1\xf9\x9a\xb7\xf7\x0e\xeb\xc6\
+\x9f#\xea~d\xdc\xf3\xfa*\x80\x17(8\x90\xc7\x12\
+\x16\x0b\xd6:\x11H\xa4\xd8b\x01<7\xcbL\xff\xd0\
+7\x17\xe5\xb6\x1c~\xd43\x07\xb1\xcf\xf3\xbc\xfc\xbdy\
+\x91\x817\x04Z\xdf\xd9Z\xa7\x10\xe2\xf1\x005>\x9e\
+\xbf\x00]&&\x1d\xd1\x12k\x1a5\x11ltj\x9c\
+\x88\xf9e\x97\x90:\xd0\xac\x03\xa5\x0e\xd4\xa0G\x0a\xde\
+\xad\x9bU&\xbeT\x823\xa3\xaa\xdfzQ\x7fS|\
+\xa9\xae\xdf\xfcp\x10\x99g\x0e\x92D\xd87\x1f\x0b[\
+\xa9\xe2\xa5\x82m\xbcQ\xed2\x83\x22\xb3\xa46\xb8\xda\
+\x00\xc9\xa4\xd0\x04Q\x9b\x9cT\xec\xdd\x9f\x85\xad\x99\xea\
+\xa2\x10\xe6\xf3\xd1W\xbe\x80\x14\xcfY7\x83\xaci/\
+GX&\x01\xa0\xf2\xd5dXx\x1e\x9eO>/\xa5\
+\x1a\xba/T\x97\x86\x8f\x875\x0a\xe6R\x13\xfc\x909\
+\x00\x8f\x8c\xf4'\xc3\xe6\xd7\xd7\x85u5\xe1Y\x0a0\
+]c\xe9\x1f_\xa5\x19\xf9\x9c\xdd\xf7\xde/\xec]w\
+o\x1e\xaf\xedU\xc2Z\x0d\xe4KZ\x0d\xa4y\xc2\xb1\
+\xfe\xf9h\x04\xd72}\x9f\x8aL\x9fL\xef\xf6aa\
+\x1dP\x91\xf3\x01\x95\xb2D\x04\x95\xe2\xc4\xd3\xdef\xad\
+\xf1\x0d\xd7u\xb8\xf9hX\xce\xa3g\xae\x8e\xcb\xe6\x1f\
+\xc2:\x07\x8b\xe31\xcew\x8c\x0e\x19W\x0c\x9dt,\
+\x89\xbb\xe9\xbb=\x87\x17\x0b\xf0\x91\xb5\xd2\xe5`d\x89\
+I\xd5^g\xc6]fk\xbaM\xd8\xfc\xfa\xb9\xb0U\
+-;\x94a\x9a6\x8c\xd2\x9b\x0c\x18\xa7\x7f\x0e[K\
+f6'\x86\xad\x99\xe7\xed\xdd\xc3\xe6\xd7\xbf\x09\xebD\
+\x12e\xc8\xa2\x0d\xd8\xe5R\x9c\xec\xab\x9d\x16G\x02$\
+\xd3\x07\xc3r}|<\x81\x86\x98??Z\x02\xe0\xa2\
+t\xdf-\xac\xd5\xe4\xbf4j\xf2\xa7\xb7\x87\xad\xccA\
+%\x06\xadm\xe3+3\x80\xb9Z\x07T\xbck\xb6w\
+\xa7\x7fq\xe8\xdaV\x0d01\xfdz\xd8*J\xda\x00\
+\x8cc3\xc0yh~\xce\xa3:\xf12\x80\x15QC\
+\x00j\x8c\xf2-\x12Xy\x7f2\x1c^\x9c\x00\xdc\xec\
+\xc0O7\x08\xeb\xf6\x958\xcd\xbe\xd6\x89\x8b&\x95x\
+\xfad\x8a\xf9e\xd7\x0b}\x9eK\xbb#\x03`\x01]\
+\x89\xff\xdd=\xac\xa3\xa6\xffcfbOH\xc6L\x8a\
+\xb0\xed\xfe`\x11\x81+\x0d\x8a\xcc\xe4on\xb8dZ\
+\xe3i\xc4\xf3\xd8<\x7f\xa9\xe9/\x15\xf2\xac\xd9\x9e\xde\
+:\xbdezK\xa7\x86\x1e\xfd\xdd\x9f\x9c\xe2y\x97^\
+\x99\x112\xfe\xd3\xf9\xc2\xd6\xfd\x08\xd3\xa3J\x8a\x82q\
+\x12\xeb\xfb=\xb3\xbd\xb7+I\xa1Z\xae\x16=U\xd7\
+\x89\x80\x01$\xb6'\x85\xcd\xff\xfe\xc4\xb0\xae\x9bB\x8e\
+\x9f\xb6\x8b\xd3%\xc2\xb2\x94\xe1\xbe\xeb\xfeV\x01\xbc\xfd\
+7\xfc\x9e\xcf\xaf\x0c\x1f\xe2\xb5\xe6\xc9\xf6~\xdb\xfb\x86\
+\x18!\x0a\xb5\x12\xb2rx\xb3$\xa2i[\xcc\xe7\xf3\
+\xde\xd3\xc2\xe6\xf7}8\xac+\xdd\x09x\xfc\xc4\x8e\xa9\
+\xa6M\x9d\xeb\xe1\xef\x84T\xdd/-L\x93V\xda\xa1\
+\x96\xdc\xf9,\x01\xa4\xfd(\x87\xdc\xb9\xa1\x14F\xdfz\
+\x22\x8b\xb9/T\x8d\x7f\xb4[\xbdP\xd3\x10ZJ\x02\
+R\x9ct\xf7\x99\x14y;.\xdb<\x12\xc9\xa3~\x9f\
+\x1a@%v\xfa\x84%0.\x8d\x12\x00\xa6\x9f\xb5\xfd\
+s._1\x03n\x19\xe1\xfb\xed\xee\x1b\xcf\xa7\xfc9\
+\xfe\xc0\xf73p\xa1\xb1\x22pv\xfe\xf2\x87\x00\x12\xba\
+\xa6`L\x02\x80\x88\x1ff{\xd2\x0a\x0c\x05.\x00\x00\
+\x22\xca\xc9<\xaeR\x17~\x93}\x9d\xf6Q2\xdfZ\
+\x97\x87\xd7v\xdaH\x02s\x19\xf7\xdc\x07K\xc4\x8f?\
+\xc7o\xe1\x97b@\x0d\xcc\x83\xcd\xe3\xc2:\xca\xbf\xf3\
+<U\xfdu\xc3(\xed\x1d\x00\x02f\x858#\x19\xc3\
+\x95a\xc6\x1cV\xab\xcf\xff\xe6O\xf3G\x05\xea\x02\xec\
+\xb1\x9b\xda\xa8\x8aOk\x07`.\xd0\x1cK\x02\x04\xac\
+^%V\x04\xaa\xceO\x7f'P5n\xae\x93\x9f\x8c\
+\xc9:jL\x01\xd6\x04\xfeC\xe0}P;<\xa5\xa6\
+c\x97\x831C\xee\x15P \x80\x97\xb0r\xddc\x89\
+\xfa(R\xe8\xef\xc4\x1d\x80\x14\xe3\xee\xfe0\xbbi\x11\
+a\xd8\x8e\xaa\xfe\x9e\xcb\x18\x1f\x19\x97\xa1\x9bC}\xef\
+\xd8\x15A\xa2\x1c\xa0g\xffQj>\x96^\x8bs\x88\
+6&#z\x7fe\xfa\xfb6b\xe7\xeb\x90\x85<\xa8\
+i\x02T\x7f\xd1\x0b\xcdv\xc1\x1c\xb0\xcfw\x01\x84\x89\
+\x09\xf1\x0b|\xa8\xaf\x85\x16\xc0(\x19\x18U\xb2}\x0e\
+*\xcb7\xc2\xba\xcc\x9c\x1b\x15hB\xc8\xc7\xccu_\
+\x9a\xd0\xf7\x87\x17px\x1fG\x1a5c\x10\xe3\xd3\x06\
+\xa4\xa8\xfa\x1c\x0c\xd7\x09Q\xf4\xf9(\xb9J\x00 \xe7\
+\x0e\xb4\x0c\xf0\xe6\x03~\x11)\xbbA\xd6\xb4\x1e\x95\x99\
+9\xaa\xd4\xd7]\x02\xb6\xca0\x5c\xb8\x02\xd7\xe5\xfa/\
+\x97\x99;\x00\xc6\xa8\x22i\xe1\xc8\xf0e X\x81\x85\
+\xda\xea5\x13\xbf\x000jO\xbe\xb4\x88lm\xae\x91\
+\xdd\x05\x12\x01\xae\xf1>'\xd1\xc5\x11\xd8Q\xdb\xaeM\
+\x16ue\x07\xc6\xf9\x86\xae\x07\xc4e\xb2\xdd\x5c\xf5\xd9\
+\x06\xa0\xd8\x90\xdc\x97\x0dGw\x03\x1a\x03\xaeS{\x15\
+\xa2$\xae\xf7\x94\x1c/\xb5i\x00\x05\xe3\xf1\x93\x018\
+\x1a\xdb$\x9a\x7f\xe3\xab\x85z\xee\x04\x18\x94r\xd8\x08\
+F\xca\xd9(\x068R\xee\xbe\x10\xd6\x01LD\xe1\x1e\
+\xba\x04n\xc5<\xd1n\xc7}\xa3\x22;\x80\x1d\x8c\x0e\
+\xd2k$\xe3D\x17\x01\x01(`\x04\x95\xc8:\xd6-\
+\x808'\x87\xa1\xba)$`\x85\xb2o\xa3M\xea\xfc\
+A@\x83\xbe\xc6\xe9\xf0T7\x01\x99\x09\xed\xce\xb2\xcd\
+U=\x7fm\x10\x89\xaa\xf9O{\x15\x227y\xe0\xcc\
+niS\x13\x17\xa0\x95\xba~\x1e0\xb5\xaf\x10\xdf\xb1\
+?\xc9\x10\x187\x8eO^W\xd5\xf6\xdb\x172\xe3\x84\
+y@E_\xedoe\x22\xd4\x84\xd3>\xc8\x80\x02s\
+Gf\xb9\xc4\x9786C\xe9F\x01\x81\xde\x07i\xd7\
+\xbeI_y\xc0kR^\x0b\xe8|N~\xae\x83\x9d\
+\xe8Q\x8a\xf3\xd5A6j[\xa0\xdef`\xbcw\x9b\
+\xbd\xdb\xee\xcd\xdf\xb7}ZX\x0b`\xaf\x15\x01\xac\x0c\
+b\x1d|\xe6]\x96*\xb4\x1a\xf5\x10A\xfb\xbb\xb0\xee\
+\xa0\x16\xc8\xe8\xd7\x9dm\xd9J\x859\x99\x05\xda\x1b\x02\
+\x18\x9a\xa8[0b>\x18\x96\x8e\xed\xe3\xba\xee\x152\
+\xa5\xc4C\x83\xefq\xbb.3\xea>\xed\xa3\x19 \xed\
+\x9e\x13\xd6\x9d_\x1c\x0bmo\xaf\xb4d\xc4\xa6\xff\x0c\
+K\xc7\xfc\xb8\xaeV\x96f\xc3\x97\xb3\xdd[2u\xa6\
+/\x86e\xe9\xc1\x7f\xa5Z\xfa\xf3;\xc7/Kad\
+d\xab\xdd\xa6\xae\x0c\x18\x14\x18:\xa8\xb7\xd4\xb2\x93\x9a\
+\x5c\x1a\x06)b[\xcf%\xf2\xa1wYk|\xb7\x7f\
+\x14\x96\xeb\xf1eM\xbd?\xac\xb4H\x1a\xa0\xf5\xdc\x14\
+\xef:\xa4\xab\x08C\x05\xd6\x96S;\xc1\x14\x89,&\
+\xca\x1b\xc2:Ub\xfb\x00\x8ac\xee/\xd3%g\xbb\
+Tf\x02o\xbf2\x146o\x9e\xed-]\xb7\x1b\x14\
+\xe7\x0c\x84\xb7/\x0b\xeb\xf6\xb3\xdc\x7f\xa6\x0b\x85\xcd\xaf\
+\x17\x9b\xed\xa2\x1d\xd0g\x7f\xcbu_m\xfe~>l\
+~\xffWg;%\xef\xef\x94\x06\x844\xed\x8c\xddm\
+\x96\xf1\xb5\xce\x0e\x9c\x18\xb6\xaa\xeeO\x1f\x0b\xeb\xa8\xf3\
+\x18\x00\xaf_\xf6\xf3\xd9\x9d\x5c(\xbe7_\xe6\xc7\xee\
+\xb0\xb0\x06\x90\xde\xa0\xf5O\xd7f\xf9\xdc\xa9\x01\xa0d\
+\x89\xdfC\x0c7\xdb\x1f\xeen\xb4\xf4?\x0f\x18 \x80\
+\x80\x06\xcc\xbc4\xfd\xb4\xd3\xbb\x1aj\x00KP\xfb\xef\
+\xb2\x96\xb6\xd4\xf9\xaa\x94Q_z\xfb\x08\xc6\x99\xf6w\
+\xf7oV\x22\x9cU\x22\x94\x0c\x91b\x00d-\xbev\
+\xbbD\xdc\x9a\x98\xe0\x1cp\xee\x1d2\xdb\xb9\x92\xa2\xfe\
+\x8f]\x06\xfb>\xcdV\xa0\x0f#\xc3>\xa5\xfdh\x96\
+>L\x8f\x9c\x1e5=2\xbb*\xbc\xb4\x01\x96\xf7\x0a\
+\xc0\xb2\xf5\x85\xff\xc5\x8eJl\xde\xa5\xc3\xbc\xbd\xd8l\
+\x17\xcd\xf9\xf7\xd1n}\xfcm\xd8Z\xdaT\x8c\x0a\x1a\
+%1\xbbNN\xa0\xa0\xeb\xaa\xd0DG\xef\xb7\x9e\x7f\
+\xad\x96\xfd\xb2\xdd9o?\x00\xc8e\x09\x0d\xaa\xf7\xee\
+)s\x00\xf9\x94\xb6_/\x0e\xbc\xf3\xce\xb9\xfc\xbe,\
+!\xbc\xfb2OG\xe6n\xcd+]\x91n\x90\x81\xae\
+L\xa7\xda{\xfb\xbf\x00H\xc0\xc1/\xbaRR\xf1\xed\
+\xdbj\xfd\xf9\xc1\xce)\xb5\xef\x98\x0eJs\xf8\x012\
+\xc1\x98w\xfc#\xa2\xc8\xba\x04$\xa0X\xccL\xfbp\
+\x9eC\x80\xe0Z\xaf\xfcc\xb5\xf42\xdd\xc9lC\xad\
+wno\x7f%l\x15o\x15\xbf\x94\xffO\xcc\x13\x15\
+?\xe7_i\xe2\x08\xc4\x04\xca\xba\x82\xe9\xc2d\xdc\x5c\
+\x97\xd2\x05\xe7\x05\xffK\x00\xcc\xaf\xd1\xc6\x11cA)\
+\x5cj\x0b\x15p.\xd0\x16\x1f\xb9n@\x0b\xa6\x06\xbf\
+\xef;Cb\x0dpe\x1d\xf0C1\x16$\x0a]\xdf\
+\xd0\xc7\xbe\xfe\xce\xbcY3\xf3\xcb\xfb\xf8\xdf\xa3\xea\xfe\
+;\x96\xd2\xa9\x0a@\xcd3\x81<\x06\xb4\xee\x16\xe3\xf5\
+\x8c~\xb5\xf3\x96\x18\xde(\xa6w\x0e\xea\xfb\xc5\x10p\
+\x7f\xfe\x9d?e\x9c\xc4+\xfcH%\xb1\xbeG\xe0\xed\
+\xfb\xc6\xb6\x82_\x1fJ\x9bGq?q\x99\xfbp\xdf\
+\xd6\x99\xf8sd\x10(q\xa0\x85\x90\xf1Q\xc5o\xd6\
+\x1b\xa6\x91u8v\xedp`K\x98&\x00\xb8\xbf\x85\
+\xbb}\x9b\xbc\x98F=\xc5\xdbD\xf6 >\xbbP0\
+*\xe3\x9a\x81[s\x08o\xd6!v\x10\xc0\xf8\xff\xbe\
+?\xa4@\x13Ruj\x93\xb5;8\x83\xaa6\xdbF\
+\xe8\xfb\x05hc@?\x8a\xa1\x8dj\xf52\x9e>_\
+\xad\x85L%\x87D\x00\x7f\x93\xcc\xfc\xa0\x80\xa4zh\
+9t\xd4\xbd\x05\x0c\xfe.\xfb\x8a\xd7\x86\x86\x22s\xfe\
+\x0cp\x8d\xe7y\xf2\xefR\x85\xbe>g\xbd\x8fe\xa1\
+\xbb\x7f\x0fX\xad\x94@\xcb\xefm\x9c\xbe\xcfx\xa2f\
+\xa12\x09\xe0 E\xc6\xd3D\x94\x01u=k?\xcf\
+e\xfc\xfc^\x86,\xdb\x05\xd5s7\xd1,\x04\x07\x8d\
+\xda8\xb5\xb6\xda\xf4\x09\x949\xde\x16B\x8e\x98p\x8d\
+\xa2\x00\x00 \x00IDATs\xd5\x12\x09h\xa9\xb4\
+s\x5c \x8f\x00+\x0b\xceu\xa6\xc3R\xc0\xcb\xf5\xc3\
+V\x07l\x1e\xcbe\x01\xa9\xad6.?\x97\x01\x8f\xf1\
+\x04 XP\xe6\x9d\x8d\x03p$\x907\xeeJ\x19,\
+H\x084q\x1a\x81\xa6q\xf2\xfcQ,\xef\x1b\xb6\x22\
+\xc8\xc5H\xc9\x0cX\x1d\x08\xd4\x911\x0b\xd4\xfe\xeb\x16\
+`\xe3WZ\x92\x8e\xa5\x0cq=\xafq\x9d\x8d\xa2/\
+\x80\x12\xd7\xed\xb9\x00\x0e\x86\xb6\x95%\xbe(P\x01\xec\
+)\xb5xtXG\x95\xe3h9H\x8d\x1b\x0a\xa7\xf1\
+UCo\x9cQ\xb7\xb4O\xcc~\xc3E\xe1=v\xe9\
+\xf7\xadf\xba\x00\x04\x07:\xe6\x05\xb1/\x0c\x0a\xea\xb7\
+\x1c\xef\xd4\xfa\xa8@\xcc\xfaDAt\xdd\xe6\xa3q\xcc\
+\x7f\xdf\xfcS\xd8Z\xbb\xa9+\x00\x87c\xf3gaM\
+\x1d|\xb6.3r\xf3f+\x00\x94m\xe9\xb6\xff;\
+\xac\x03\x1a\x95x\x10GR\xfa\xa1mh\x8a\xaaUF\
+\xdc\xe7j+& \x11`\xe6\xf5n\x0e\x0b[E\xda\
+\xb6\xb7\x0e\xebT\x92Qr?\x90m\xaf.9\xcf\x8a\
+Kf\x0d\xec\xdd\xb3;\xc3\xffXk\x98Q\xcc\xd5\x10\
+N{a\x8d\x1azLPCK\xbb\xe1\xcb\xad\xefF\
+1\x5cZ[\xaeG\xcc\xd3\xe0\x0da\xf3u|8\xac\
+\xab\xe9\x03\xa0D&\xf7aY\xca\xf2\xae\xb5\x06\xb3\x98\
+*\x99\xb9\xa9\xe7\x9a\x7f7;yK[\xa1C\x1b4\
+\xb9\x1c\xc8_O\x87\xf6g\xbb\x1aq\x07t\xeewT\
+\xfc\xe7=\xeb\x88\x96\xf1\xc3h\xc9n\x03j\xbaw\x97\
+\x0c\x9b\xef\xf7\x11a\xd9^\xec\xca\x9dj>\xed\x01\xfb\
+\x9e\xcc\x95\xefA\x8d\x05\xa0\xe5~J\xa4s\xfb\xac\xb0\
+\x95b\xbe\xbbj\xd8\x1a\x00m_\x17\xb6R\xaa[-\
+\xfe\x19]\xfb\xa9\xb8\xfb\x7f\xef\x02\xa2\x18\xb7\xa7\xa6f\
+\xc7\x07\xd7}E\xcdx\xcdo\xd4\xd7\x0b\xb6\xe2\xaa\xca\
+,\xaa\xad\x9fn\x1f6\x7f\xff\xcf\x86u\xfb\xce%\xdb\
+LY\x1c\xcc\xaf\xa7\xa6I\x88\xf4\xfd~\xd8\xfc\xbeo\
+\x87\xcd\xbf\xbf\xe3lw\x98\x7f\xbe\xd8l\x17]\x03n\
+j\xcf(\xd2\x02P\x99\x9c\x16\xc8\xcf\xe7\xca\xf4[a\
+k\xbb\xc9\xed\xed\xc3\xba\xfd2\xb4\x0e\xe2}7\x99\xed\
+\xc6\x19(\x9c\x91\x0e\xd5\xec\xc8\xee\xdd5l\x05D7\
+gl\xbe\xb7\xf9^\xa7\xde\x9f\xa2\x8a\x07\x1e\x15\xd62\
+\xd5\x8b\xf8\xa4s\xef\xaa\xbb\xab\xb46r\xff\xbah\xa6\
+\xa89/\x0d\x8dK4U\x8cu_W2\xa9\xadb\
+\xb6\x1d\xab\xb6pw\x08k*\xe4\x0d`\xa9\xcc\x1e \
+/z8\xbcd\x05\x84\xac\xaf\x906\x9c\xcel\xcc\x86\
+O6\xb1\xce\x04.[\x89\xcb\xbbV y\xf7\x98\xd9\
+\x1e\xdd\xed\xe7\xce\xe3\x9b\x87\xad\xc0\xa6R\xa2\x127\xd5\
+U\x02\xe3k\xa8\x09\xde;!l-y\xd9~v\xb6\
+\xcf\xad\x99\xe9\xe9\xe2aYk~\xc3\xc64hb\x87\
+\x05P\xe4\xfc\x97\xe1\xde^+\xec``\xd9}LG\
+N\xd7\x99\xae\xb3\x96\x98\xd5\xf9\x91\xcc\xafb\x82\x01\xba\
+\x05\x9c\x00\x10\x8e\xbb\xf3I\x89\x9b\xfe\xf5\xb9Oa\xf2\
+\x95\x1f}\xa9\xa6\xd2\xb4jC\xf1\x13\xd2\xc1o\x94\xf0\
+_H\x06\xd1M\xd7\xf3A\x09\x5c1\xc6\x00{\x9e7\
+`2\x19d\xfb\xde\x99L\x05\x81\x11\x7f\x05p\xcd_\
+$JJ\x83\x08\x83&K\xfd\xf6=\xabYig\xec\
+~\x12\xd6e|\x89\xef%\xe0W%.\xce\x19\x001\
+\xb1f~\x83\x80\x09\xb0/\x90\x07\x5cP\xf7\xa7\xb1\x92\
+\xa5)\x95\xe1%\x0e\x99~\x0c\x11_\xe7s\xb5\xd5\xcc\
+\xd2\x1f\xdd3\xecG\xc4v1@\xab\x9b\x83\xd2\x0d\x81\
+;\xad\x1f\xfb:m\xa5\x04\xdaJ\xb5\xdf\xf31\x1e\x18\
+_\xe6\x17\x7fA`\x8eyI\xac\xd8s5\xcf\x00%\
+y\xceK\x08\x1c$\xb2\xce/\xe3_\x8bc\x8c\xb3\x8c\
+\xf2\x98P\x15\xb8\x0b\xc8\xdd\x9f\xcf\x13p\xa2\xc8\x0b4\
+\x05\xe2\x18\x08\x02Z\x9f\xef\xdf\x05\xd2\x83\x96@\xf9\x9b\
+C \x5c\xf1\xd6O\x8a\xd9\xbcd\xfa\xf9\xed\x00\x971\
+\xb1\x098\x18_\xc7\xc0\x5c\xbcf\xde\x8a'0 \xac\
+g\xf7OL\xd4\xfa1n# b\xdcF`F)\
+\xe2X\x220\x96B\xfb\x5c\xf7\xe9\xf3\xc6\xd2\x8c\xb1\x1b\
+\xc3\xc8\xc8\xe0o\x8a#\xfd\xacD\x14\xe0(\x1e3\x7f\
+\x5c\xb7x)\x81\x82\xfd\x07\xa9\x0f\xc6c\xf9\xc9\x90Q\
+\xfeR\x22N?\xd7MX\x14\xff+5\xccpA\x22\
+\xae\xdcQ\xfe1\x0bL\x18\x8e\x7f\xa8\xf4~33\x05\
+W\xcd\x07\xfd\xfd\xb3\xa1\xa0\x0b\x84l\xd8\xb4\x08\x00\x03\
+\x02.\x13a\xa0\xacC\x9e\xd5\xeeT\x80\x22 \xf3\xb3\
+\x80\xc6uR\xdf\xf5\xf7\x10E\x81\x9f\xf7\xbbN\xe3\xa4\
+\x86E\x1b=\xd4Q\x80\x87Z\xfb\xb5day`~\
+o\xc2{?\xc0\xe2\x5cy\x9d\xa8\xdb\x97J\xca\x07j\
+Y\xaa\xa8n\x8eH\x0a\xfe/d ;\xaa\xc0\xbb_\
+\x01\xbe\x83\xca\xc4\xf3\xfd\xfa\xc3\x02\x14\xceI\x8c\x11\x15\
+[f_\xc0d\x9c8\x862f2\xf6\xc4\xe9\xd4d\
+\x09\xac\xf3\xf3\x89\x8b\x8c\x07\xd7\x08\xec\x94\xda+\xc73\
+\x03/\x19(j\xb9\xa5\x92m\xe3\xf5y\xc6O\xc0\xcf\
+\x01\x00\xf0d\xfb\xb1bn\xc8\xa4\x0aH\x1dx\xc6\xd9\
+\x86\xec\x80\xbb~\xb6\xd1\xb9Q\x8a\xe0`\x22\xa0\x04\xcb\
+Lf\xedy\x05\xb4\x0e\xae\xbf\x0c\xeb(z\x164\xe0\
+\xc7\xfa\xb0Q\xd8\xe8\x00B\x02\xfd\xac\xf9)\x15~\x81\
+\xee\xd8Fs`\xb0\xd4|\xe1\xb8\x8c\xc0\x90y\xc5\xe1\
+p`y\xdfX\xf21jJ\xf8\x8f\x83\xa3TB{\
+@\x1b%GF\xbfW\xd7\xe3~\xad\x0b\x1b/J~\
+R\xe7\x0bh1\x7f\xec\x1f\xaeWfM\xe9\x07\xed\x00\
+\x00W\x02\x14\xd5\xbf\x9e\x83\x92\xfbC\xa9\xf8'\xc5\xbd\
+T\xbd]G\x06\xf2E\xb1'\xd6\xa7=\x1c\xb1\xc0T\
+\x17\xafL)\x8a\xa1n\x00\x90\xdf'o\x9e\xb2yJ\
+{\x9e\x0bp\x90\xe2>\xda\xbc\xd5\xfaJ\xaa~Q.\
+\xad_\x07R\x02\x0e\xadM\xda^\xd7v/K^\xaa\
+\x0bB\x06\xa6u\xdd\xfaL\xebO\xfe\xeaE\x13`\xf3\
+\xa1\xb0\xd5\xe1\x89|Vd\xb4J\xa3\x22\x1d\xe2\xa2:\
+_e\x09\x88\xa6\xf3N\xe7\x9b\xe6\xf9t\xe0\xa8\xb0\xf9\
+\xdf\x9f\xd9\xac2\xa1{w\xd9\xbb\xf3\xde]\xe6\xd7g\
+\x86\xad\xcf\x7f\xfb\x9e\xb0Nk!\xef\xb3\xba[D\xf8\
+\xf5\xd0\x0e\xa8\xcdLT\x01\x801\xba\xf7^\x81\xb5F\
+\x88;\xbe[/\xfa\xa0\xa7\xd8\x13\x00\xa4\xd4\xe4\x058\
+4320*J^\xcekj\xeb\xa5\xaa-\xd3\x93\
+\xed\xa3J\xd5;\xff~zXXf\xbc\xdf\xdcQ\xc8\
+\xb3\xdf6\x87V-\xf2\xf4\xea\xb0y<\x1e\x1b\xb6\x8a\
+XN\xc7\x85u%\x10YZA\xb3\xa0\xfa\x94gf\
+\xf2\xc0#\xc3\x92B\xfd\xdcU\x0c\xb1\xda\x92\x05\x0c\xf1\
+\xa0.\xc0TcM\xf4\xf6\xad\x0b\xd3\xa6\xf6\x9d\x8b\x84\
+\xad\xeb\x02\xe0Q\xc0\x0b\x8av\xa8\xe4\xcf\xebk\xba\xd2\
+lW\x5cE\xf3\xea\xfbB\xbc\xef\x8e\x1d\x80\xb6?l\
+U\xa1\x9f\x8e\x9e-\xe6\xe9\x13f{b2WNM\
+ \xe5&k\xa9E\x01\x8e\xbf\x1b\xd6e`\xae\xda\x8a\
+\xed\x96\xae\x00\x8fZ\x81\x14\x80\xf0\xf6Ja-\xe0?\
+c\xf3\xfdN+$\xbbF\x10\xf5\x8c&\x85\xad$\xe2\
+\xfd\xd3\xfb\xa6\xf7u\xe7\x00Ut5\xffJa\xc2O\
+\xf8\xf6\xd0\xb5\xe5\xe2\x9d\xa3\x06(\x1e3\xc1\xce\x9b\xff\
+\x935\xc2\xda\xbe\xa9\xedT3\x9e}\xe0K\x03!J\
+\x03\x02\x88\xf9\xf7\xb0\xf9\xf5Ma\xa9\x85\xf2\xc4n\x1f\
+\x02\xac\x04\xe5<\xfc\xa6cf{f\xb6e}\xfc\xca\
+\xac\x10\xa0U\x86\x103\xcau\xda\x0f\x1f\x1f\xb6\x02?\
+M\x03\xe07\xe7\xf5\xfc\x9a\xb0N\xc3\xc19'\x10I\
+`p\xf3\xab\xd1\xb0\xae\xa3N\x03l\x01\xcc\x029\x8e\
+\xaf\xc4\xcb\x89I\x8d?!\x8aQ\xda\xcf\x8d\xe2\xbf\xf9\
+\x5c\xd8\x9a\xa8\xd9>(\xac\xd5\xa6\x87\xad\xe3\xaf\x06;\
+\x99Pu\x9f\xf6M\x0c\x0c\x9a\x0e\x11\xe8\x7f\xa7u9\
+\xf9\xb3\xd6\xe6/N\x95\x9f\xc9\xf3\xf8\x0a]\xfb\xb6\xab\
+\xef;\xa2\xcd\x8b;&\x80\xf0\xd4\xb0\xd5\x9f\xadZ\x7f\
+\x81\x0a\xb1>\xc0\x1f?\xe1W\xb2}\x1d\xb1\xcb\xa3\x9b\
+\xad\xfb\x0c\x112\x01#?O\xdb:\xa5\x0eDw\x05\
+z\x09\x9cWB\x84?l\x9e\xd1~9\xa6Y\x95x\
+\x1cT\x83. \x01x(!\x11\xb8\x00\xcc\xd3\x9f\xa3\
+^^@\x07\xa6I\xb6u,\xbf&\x99mU\xc2 \
+0\xd7\xce\x17\x95\xffr\x8d#\xbb\x9e\xf7\x98A^e\
+\x88\x93\xa2_\x9a<\xba\x09(9Q\x92\xa7\x1bG\x8e\
+O1\xe4r\xdeVi\x07\xf1A\xc0\x9e\x00\xd2\xf8\x8e\
+}\xe6\x01\xf3\xc4\xff0\x14G\xd1n\xfe\xb4\xe7\xc9o\
+\xe6\xa7\xf1\xe3FQw\xdf' Gq\x1f\x02\xfa\x0a\
+\x98Q\xd7e\xbe]\xe77J\xc4{y5~2\xe5\
+\x02Y\xfe\xbe\xbfs\x1dcw$\x81\xbeD\xa5x\xce\
+}\x89\xab0\x110M\xf8}\xff?@\xc0\xeb\xd8\xd5\
+\xc0\xcf\x80\x02\xe3\x8eI\xeb}C\x5cW\x80\xc70\x0e\
+\xf5\xf7\x12P\xc6A\xc0.\xf0\x17/a\xa0\x18\xe7A\
+<\xb0^\x95\xd6\x02\xc2\x8c\x97\x84\xdbP\xba\xbf\xb9t\
+X\x02\xe5w\xec\xfc]\xfe\xb5\xfd\x00\xc3%\xe3\x9a\xfd\
+\x07\xb5y \xea\x17n\xf5E\xbav\x80\xa8\x89\xd9F\
+\xa9\xe5\xff~6k'\xaf\xd4\x01\x01\xdfo\xd5A\xcb\
+\x00}3\x0f\xb0\x0b&B{\xd1\xae\xab\xc0\xd8\xaeN\
+`\xc1171\xfa6f\xbb.0\xb0\xe1\x0b\x08\x04\
+\xac\x026\xd4\xf3\x14{\xa9\x80\xceF\x95mx\xea\xfd\
+j\x8d/\x9f\x14\xf5^\x84\xe5\xc8\xeeg\x07\xb0\x85\xb9\
+\xb6\xb7[\x00\x94\xf1\xe7A\xa3\xe0\xa0\xc0\xeb\xa7\xf9\xa0\
+,\x00\x9f;\xb6\xf7\x18\xbb\x1b\xacb\x87K@|z\
+\x96f\x5c'\xef\x13\x15\xde\x84E=I\x04\xb7\xdaR\
+\x8d\x99\x7f\xcf\xe3Z\xcb\xf3\xde\xa1\xfc\xde6\xaf\xdb\x01\
+iA\x10\xb1H\x04\xac\xc6\xd9\xe7\x1ao\xe3(s<\
+\xb6\x17\xa4\xe1\xf0\x82D\xd8\xf7e\x009d\xd27\xb7\
+\x0c\xcbL\xdb\x11]\xdb\x0b\x1b;\xaa\x9f\xd7,\x99(\
+Q\xbf;\xe5\x02\x11\xc8'U\xae\xc4\xfa \xd8\x00\x01\
+\x81?*\x97\x9aa\xf7y\xa5<\x98\x06\xb1\x9a\x0a\xfc\
+\xb3/}\x89\x89\xc9\xe0k['\xe0\x17\xa0\xa3\xc8%\
+\x22_m_Pw\xb2\xcdI\xeb\x17}Tw\x9d6\
+*\xeb\xc3<s]\xc6\x9d\x83&p\xb6\xe1:(G\
+1N\xaf\x80\x01\xebq`\x04Ti\x07\x80\xc1\xe7\xfb\
+<@\x9e\xf5\xdaw\x19\xf9q\xb7\xd1gW\x81\xfa\xbc\
+\xacY*\x8a(\xc7\xda\xf5$ R\x81\x1ej\x1eD\
+\xda\x81\x91\xf7QT\xc6\x04\x86\xb4\x83j\x01\xc4\x13\xba\
+}N&\xddx\x0b\xcc\x01\x066d\xa5\x11\x19X\x14\
+\x13\xe3\x84f+\x85\xdf8{.T\xf7\xd5\x0c\xaa\x19\
+\xcf\xebl\x94\xf0\x17t%\x0a\x99\x91\x98\x83\x95\xb6\xcf\
+V{&\xaa\xc4)J*\xe0\x16\xa0\xb4Z\xde\xf7\xac\
+\x8e{\xa98\xe7\xc1]\xc8w:X{\xff\x16\xb6\x22\
+\xe05\xee2k\xe9\x18\x12\xe5\x9b\xe7\xe4\xf2\xdc\xec\xb3\
+j\xd8\xdf\x9a\x8e\xe8K\xb2\xc4\xe3.\xa9z|\xadT\
+'\xff\xfb%\x90\x9e\xbd\x99\xdd\x81\xdd\xda6j{\xef\
+\xb0\xf9:\xb6{\x9b\xbdy\x9e\xec?5l\xfe\xf9\xb0\
+\xd9.\xdc\x95\x5c\xa0\x8e\x9bg\xc7-\x0c\x8f\xea_\x9f\
+L\x01\x99\x0f%\x19\xb5\x8e\xc3\xfd9\xb5\xeb\x16\x92\xfd\
+\xe1\x1b\x9c\xf2o\x9d\xca\xb3y\xa9T#\xa8\xce_\xe8\
+\x18-\xb9_\x978X:V\xa5e!\xa3f\x9ee\
+\xa6T\x0df\xd5\x88\xda\xdf\x01\x824\x07\x88\xd4\xe9\x0b\
+\x0d\x08\xca\x92\x96\xcd)a\xddy\x97\x0c\x83&\xdd\xf5\
+\x86\xee\xbc\xc0 \xc8\xf6\x86(\xdaE\x9d}_X\xd7\
+~/\xd5\xb6\x0b\xd0\xca}\x08E\xbe\x00\xdd\xdcO6\
+\xaf\x09\xeb\xa8\xda42r?\x98\xce\x1f\xb6f\xead\
+\xf6\xab\xd6\xfe\xdaa\xab\xb8j\xa9}\xcb\xccefm\
+\xf33a\xeb\xf97\xfdx\xb6\x1f\xad\xcfy\xfbwa\
+\xf3\xeb\x9b\xc3\xe6\xcf9\x22\xdb\xa4e\xe63\xe0\xaa\xf6\
+\x1c\xb2\xc6}\xfb\x91\xd9>\xdc\xddw\xb6\x7f\xab\xe7A\
+\xcc4\x1c\xac\xcb\xac\xa5\x0d\xbb{\x85\xcd\xdf\xff\xc6\xe9\
+\x0d\xd3\x1b\xd6\xeb\x9d\xae3\x1d9\x1d\xd9iId\x80\
+\xb5\xbbDX\xb7\xaf\xff[\x935]\x80\xa4h+\xf6\
+\xf5\xb0n\xbf\xccy\x5c\xc05\xbf\x88\xe3)\xa0|\xc4\
+l\x11\x98\xddw\xb6\xd9\xb1\x9b\xde3\xdb{\x9b6\xc0\
+[\x9b6@\xee\x13M4noe\xba\xc8\xbcV\xfb\
+1%S\x00t\x01}\xc0\xe3W_)\xc7\xe6[\xb5\
+\x11L\x80fzZX\x97\xd9\xcc\xf9f\xbc\xb6\xff\x15\
+\xd6\x18/W\x09\xc6\xcb\xec\xce\xb7\xee\x0d{\xbf\x1d\x96\
+\x19\xf7\xdbu\x00\xf0\x9b\x9bUI\xd7\xbck\xdd\xb8\xed\
+[\xd9V\xb1\xba\xfad\x1bN\x9a1\xa5\xe9\xa0]h\
+f\xba\xaa\x0b\xc1\x03s\x7f\xbcz\xb6\x19\x05p\x12]\
+\x94a\xcfs\xa2\x02'\x8c\x9b\xfbg\x17\x1a\xcf7\xcf\
+\xcd\xdd]ww\xdb\xdd\xb5+\x8d\xe0\xa7\xd8\xf7\xaf\xbe\
+\xec;\x98\x0fU\xea\x98\xa5'\x15\x98\xe4z\xa9\x80\x19\
+\x05\xf8\x86K\xa9\xc7\xbe\xdb\xe4\xf8\x12qu\xfe[\xff\
+T\xd9\x89\xec\x0a@1\x00\xb4?\xc4\xdc\xd2\xc5GI\
+_\x06\xbcu\xce\x02\xd0\xf3\xdc\x22\xb6\xac\x94\xadj\xdb\
+1\x12F\x7fW\xa6\x1f\xb3\xcc>\xed\xfc\xe6\xa7\xd9\xf7\
+\x92\x01U\xfe\xb3n\x0d\x80\x12\xf7\x0385\x9e2\xf0\
+Q\xb0pB\x17@\x11\x1b$.i?\xe3\xc7<\xae\
+Yuw(f\x0e\x862\x06i\x8a\x06\x97\xb8+ \
+(\xe7\xdd\xee\xdba\xdd\xbc\xd3^QW!\xf7\xabd\
+X\xa9'\xe0\x00 \xe2\x5cs}\xe6\x8f\xf8\x80\xdf\xdc\
+\x8b\xa5o\xcfF\xa4[|!\xbeCmW\xfb\xcf?\
+\x07(\x08H%R\xc6@}\xc8\x5c\x1fTS?R\
+\xe3\xc5\x07\xce\x83\xec\x8aP\xa5\x15c\x80=\xc6\x03\xbe\
+\xe7\xff\x17\xf8\xbb\x0f\xf7\xc7\x9f\x11\x90\xbb\x1e\xdf7\xc6\
+g\x80\x10\x80\x81\xbf\x93y\xf7\xf9\xd4\xfd\x8d\x9f\xf8k\
+l\xa38v!X\xbb\x9d-\xdf7\xb4??(\xd3\
+O{@\x82T\xe2\xcb\xfd\x8e\xf3\xa1O\x90\xf7\x89-\
+\xf3\xc1\xf7\xf9{\xe3\x9c\xe7\xf7\xfe\x86\xfc|~\xcd\xb0\
+\xd7\x01K\x04\xf0\x87M\xb7}\xbd@%\x02\x90\xc1l\
+\x13T\x07\xc7\xa0\x9e\xd9\xb69\x99\xfd\x1fw\x0f\xd8\x85\
+\x8c\xed\xe5\xc6\xcc?\xe4$\x06\xfe\x0b\x07\xb7\xa5+\x87\
+\x10b\xce1\xa1\x0e\xcf\x81\x16\x80\xca\xf8r\x1c\xf5\xb7\
+\x15p\xa0\xc4B@\x05t2\xfa\xa8aY\xdbX\x81\
+\x95@uh\xe7p\xd0\x82\xb4\xf1g\xbb\x92\xfa\x5c\x0e\
+\xc7H\xe50qe\x02\x8c\xef\xa1\xf5\xba<p\xbf\xff\
+l.\xa8\x0b\xe4D\xc1 0\xf1\x89\x9a\xd889\x1c\
+\x02l}\xde\xab\xcdb\x22\xab_\xcf\x00\xd9\x06eB\
+\xabEr_2(&\xa4\xb6cjV\xfc\xbd\x05\xe0\
+~\xc7\xfe\xa5\xee\x9b\xc3\x8e\xb2-\xc0\xbc[\x8a\xcad\
+m\x5ce\xf41\x01R\x15\xbb9H\x8f\xe8\x16\xfa\x97\
+s!\xe4\x81\xdc\xc4v.|\x96\xcc\xfd2\x8f\xae8\
+\x04\xf6\xda\xff\x99O2\x80\x00\x02T\xaf\x9b\xe6\xf5Q\
+\xd5u\xa0\xa9!G9\xa3\xfen>\xfa\x1e\x0c\x13\x07\
+)\x07\xd0\x81\x84\xc2\x03\xb14\x1f\xad\x0b\x01\xaa\xfe\xf1\
+\xda\xd0A\x06\x01\x00\xe7\x94\xe97\x7fG\xed\x83Q\x8c\
+\x11`d\x9d\x8e\xa58\xe3\x86>\xae{\xdfc\xde;\
+\xd8\x05T\x90\x7f\xeb@\xe0\xac\xcf9\x0a\xb1Z\xf7\xa4\
+dj\xd7S\xb5\xbd\xba\x19\x10\x0bB\xf9\xa5\xa6~\xff\
+\xb0n\xbcSd\xca\x01T\xe2\x91\x90\xf9\x1c\xf7\x02l\
+|\xbf\xfb0\xbfs\xdeU\xe6 \xe7S1\x92d\x1a\
+2\xa3Z\x00\x04\xd1\xc1l\xe7&#^\x07l\xae\xbb\
+\x12\xa7\xcc\xda\xceZ_\xf6%%\x13\xaeG-\xaf\xd2\
+-\x19h\x8eH\x96\x06\xd4\xbe\x80\xea\x8cz\xa9t'\
+3\xe1\x9b\xdf\x0bk\x1a\x0fK\x06\x89\xc3\xa5\xc4\xc0x\
+\x13\x93\xfa\x9f\x8bh\xd8\xee\xf0\xb0y{9>l\xfe\
+\xf9\xb6\x0b\x85v{\xea\xf6\x9b\xdbo\xaej\xefQ!\
+\xbc7\xcf\xcb\xbdG\x85\xcd\xbf?4\xac+9\xe2\xa8\
+b\x14\xa0Hg`0:\xb2\x05P\xd0\x0e\xb0\xefa\
+\x5cEe\xe3{;F\x80L@\xd6\xd8\xcd\x81\xc3\x03\
+Cdn\xf3\xd5\xd9N\xe9\x1c\xd0\x1c\xcfr\xa41.\
+\xd4\xc4g\xd7\x9b\x0a@\x93\xa2\x0a\x90\x9c~;\xacc\
+\x0e\xa0Zg \x0f\xb9\xaf\xae\x0a(\x87\xd9\xb6O\x89\
+\x90\xd2\x19\x01uu\x83q\xff\xa8\xba\xf6Y\x8e7\x00\
+\xdc\xf7fm\xf2\xe6~a\xdd\xb9i\xfeh\xa3\x96b\
+\x97\xf6\x95\xcap+e\xcay\x5cm\x1a\xd3\xa1ij\
+\xed\xa7'\xa0\xf1\xf65#1\x1d\x1b\xb6\x02\x12\x18A\
+M\xcb\xe0\x9d\x19\xa8F\x80\x7f\xab\xb0\x15\x88h\x00\xdd\
+\x7f'\xb3 J\x0e\x9e\x1f\xd6i\x85\x04\x0c\x18@\xd7\
+\xf9\xc2:\x8a\xae\x92\x19\xcf1E;\x9b\xf2\xc1k2\
+P?&3\xe7O\xc9\xfe\xea\x87%\xe0w\x99u\xff\
+k\x22b!\xae\xf7\xdfa\xf3\xebcg{L\x8a\xd8\
+^#\x9f\xdf\xa7;\x8d\x16\xe3\x7f\xc9\x85\xf2O\xb4\xae\
+JE\xbcO\x0dz\x026u\x1e\x13\xcdJ\xf1\xb9&\
+>xdf\xc8o\xdb\x05\xeejr\x05(\x97\x0e\xcb\
+\xfd7\xf6\xf3W5+q9\x8efi\x94\xd8\x8f\x9c\
+G\xba\xb4Di@\x04\x8e/Z\xd4\xdf\xa3\x19]k\
+G\x87\xe2\x9b\x19\x5c\xa5\x07\xa5\xf1a\x9e\x11\xad\xcd\x12\
+\xa4\xedG\xc3\xd6R\x14m\x04\x95.i\x83\xa9\xbb\x06\
+\x0d\x88Ph\x08\x8d\x86*\x91\x02t\xa1\x9a;o\xd4\
+\xc4\xe6|8\xf0\xa5\xb0\xf6\x1c\xbe\xd2\x9eC2\x06\xf6\
+\x1e:\xdbC\x12@\x0e-\x86\x7f\x0e\xeb\x18_\x02\x5c\
+\xddn\x0e\x0d\x9b\xaf\xe3\x1f\xc2\xb2\xdd\xf0\xd3\xdb\xbe\xbb\
+d\xf6\xb3\xcd_\x9d\x9f\xd6-\x00Mb&\x03\xef\xdd\
+\xb3\xc3:\xbf\x09SD\x1b\xe3[-\xfeC\x05\xc2y\
+\x1d\x95\x81\x06\xe4d\x06\x1cU\xbej\xf0u\x7fA5\
+\xd7\xf6\x13\xa3\xe0\xa4\x5c\xb7\xda\xb5\xe5x\x15\xc0l\x1e\
+a(8'\xbd\x8a\x0fd\xcc\xb5\x1f\x94(\x10@\xab\
+\xf9\x17h\x09\x80\x04\x82\x80\x15~\x9fsY\xb7\x03\x94\
+\xfc\x0b5\xcfm\xdd\xe7\x01FO\xcd\x12B%8\xfc\
+9\xfb\xb9\xeb\xc9\x84Q\x13%}W\xa79\x91\x09\x18\
+\x22\x9f\xe5\xdf\xd0p\xc8}\x03\x93\xa5\xb4\x15\x00\xfd\x02\
+\xfe\xb1K\x96\x9f\xbd\xa6\x08a\xad+m\x22ex%\
+\x16\xf2\xbc-M2q\x03\xa6,\xe6\x88\xf6\x87\xce3\
+\xfb\xc5PC_@\xb2\xc0p\xd4\xec\x1a\x03a\xfb\x88\
+\xd2\x04\xff\xce\xff\x14\xe8\x8f\xa2}\xfc\x01@\x81@\xdc\
+x\x0ad\xad[\xfe\xfe\x18\x18\xfb<?\x8f\x99|\x81\
+?-\x1a\xe7\x8f\xf7\x0dm\xab\x8b\x91\x92\xdarU\x9a\
+a\x9c\x5c\x87\xf5*\x03o\xdf\xe6OI\x84\xfa;\xd7\
+'~\x01\x9c\x88\xb70\xee\x00\x19\xe3}\x19\xbf\xb1\xfd\
+\xa0\xcf\xe3_\xda\x1f\x86yR\xe3*q%a\xc1_\
+2\xceC\xf7\x88\xfdEY\xb0\xa0\xbe[\xd4\xf4%`\
+\x94\xc9W\xdb\x17\xe1\xc5\xc5r\x82Mk-geT\
+0\x07F1\x04\x1b^,\xbf\xaf\xa5H\xce))F\
+v\xcd\xb3\x09pG\xd16T\x09\x0bH\xc0$\xe0\x11\
+\x88\x1b\x10?s\xacP\xa7Q\x96m\xcc\x1e\xe0\xa8\x86\
+/\xa0\x19k\x9f}\xbe\x00\x11\x15\xdc\x81\xf3\xa3\xa1\xcd\
+\x1d\x00`\xcc\xdc\x9f\x96\xf7\xf1\x8d\x1c\x1f\x13\xda\xc4\xc9\
+\x059\xbbM\x8b\x08P\x8a\xb3\x14\xe0a\x9cz\xf1\xc6\
+C\xbbL<Uk\x1b\x90\x85\xe5:L\x18\x01\xb3\xcf\
+\x85\xe0\xdb\x10\xbe\x9e\x0b\x86\xe8X\xd4`^\xac\x9b\x80\
+Tc\xc7\x8d\xc6\xb8\x08\xac]\x87\xfb\x03\x5c\xb8.\x13\
+\xdfx\xc9\xd0\x0b\xa0\x05\xba\xb9\x80\xaa\xff6D\x15\x10\
+\xe1{/X\xb51KI\xc8G\xc3Z&r\xb6\xee\
+\xc0\xb1\xe0\xcd3\xa5\x07\x02\xf8d~l\xae\x1a\xd6\x1d\
+L\x10\xda\xcb\xe6|HG\xa2\x021\x88\xba\x92\x02\xa2\
+{J\x01\x04\xe8\xba\x1d8H\x04\xe8\xe6\x8f\x0d\xcc|\
+3nC{F\xfdgKL\xcf\xf3\x1d\x01\x22\x19\xe6\
+h\xb7u\x9e\xce\x11\x1eJ;:1\xc4e^{.\
+c\xdbP\xcc\x92\xa4H\x96\xe6\x00\xc6\x8cu?\x1e\x84\
+\x00\x0d\xcf\x1f\x02\xed`\x020\xb8\x7f\x1b\xb5LA\x02\
+0\x9b'\x87u\x8c\x1e\xfb\x82\xfb\xc8\xf6\x89\xd5^P\
+\xe0n>Q{\x8e\xd2\xa4\xa8\xe5}uX\x17(8\
+\x08\x89\xe89\x08l\xc8\x80N\xf3^\xdb\xbb\xcc<\xd6\
+\xe7\xc8\xc0fMve\x12\xad\xd7\x03a]\xe6@\x06\
+'\xf2\xb8\xaf\xcf\xfd\xf8{\x1d\x80$\xd3\xc0\x01\xf8V\
+\xb6\x01\x95\xe9\x96\xd1L\xb1&\x00m\x1dD\xfafs\
+\x00\xf5\x7f\xf6\xef\xc4~\xd2q\xdc\xde<\xac\xd3\x10A\
+\xb5\xb5\xafB\xbe\xa9+\xa3\xac\x9a\x87\xc7,@\xc6t\
+\xc8t\xee\xe9\xdc)\xcav\xb1\x95)\xb1\xb9Y\x96\x1e\
+\x1c\xbb9ns\x5cs\xc0\xff)\x1c\xf0\x02\xce\xd4\xd6\
+\x07\xb3\xe0\xad\xdd|\xb2\xeeS\x14\xccyP\x14\xfe\x5c\
+\xf7E9\xcf\xf6r5\xbf=GL\x1b\x07\xb4\xe7L\
+|S&,\xdc\xb5Wv\xed\xbc\xb2\x94\xa1\x80\x18\x8c\
+$\x99\xda\xcc@m\xde\x1f\xd6\x95\x0a\xe8:\x22\xe0}\
+\xdb\xd2\xce\x110e\xff\xa1\x86_b\xa0\xd6\xb1L\xa1\
+\xfe\xdd\xc4\xd2\xa8\x90\x0bhQQ\xdd\x97y\x9f@\x89\
+\xfdp\xf7\xd0\xb0\x15\x18\xd7\xdda{\xbd\xb0n\x9cu\
+\xb9@\xd1N&T9\xc4\xd6\x83\x00\xe21a\xf3\xbf\
+\xff\x5c\xd8\xfc\xdcO\x0b\xeb\xfc\x02\xed\xdf\x12\x10\x95\x11\
+\x93\x19\x9d\xae\x11\xd6\x89\x8e\xe5\xf8\xec~?\xac\xbb\xde\
+\xd4*\xd8\xee\x85u\xaa\xeaY\xd2#\xc0\x04\xf0\xeb\xca\
+P\x9f\x03\xe8\x08\xf8\xe7\x1fV\x91\xceb\xe6X\xbf\x01\
+8\xfc\xdfU\xbd}\xfapX\x96\x10<&\xc5\xc9\x8e\
+\xea\x02\xe3\x5c\xa7\xd568\xbb\x80TA\x1d\xa0D{\
+\xd5\xa3\xc3\xd6\x00\xbb\x12\x0b\xe6\xab\xfdZ\xa0\x12\xffM\
+\xb9Nn\xd5uqr\x1e%\xc0\x09pjj\xff7\
+\xe9\xda\xa0\xa6\x9fPj\xf9\xc4\xfb\x88\xdaq\x84\xff \
+\xac\xcb\xbcg H\xc4UM~\x01Q)2\xd8\x98\
+\x09\xf7\xed4=\x94\xcc\xa4\xe6\x846q\x8d)\x83)\
+q\xc9n=&Sb\xf3\x95\xb0\x0e`\xbc\xcc\x02\xac\
+M\xffw:i\xea\xdb\x7f\x9d\x9c~\x94@@\xbb\xbe\
+\xdf\xcb\xae\x0d\xday\xa2|\x7f\xa5\xa5\x04\x96\x84\xcf|\
+]\xdb?\x0e\xeb\xda\x9a&c\x85v\xc6\xf4\xd9\xb0\xf9\
+\xf5n\xd3\xafOwk\x89\xa9/\xb6\x04\xda_dw\
+\x97g\x84u\xa5\x0a\xa8\xd2\x1crm\xb0e\xc6\x01\xc4\
+\x12\x1c\x09XT\xa6\xfe\xf7\xb3V\x1f\x10\x90*\xf4\xa5\
+Y\xc2\xe1O\xc0\xb0\xba\xc4\xd8\xaf</\x019\x86\x1b\
+\xf1\xb9\xbf\xcf\xc0\xf3\x83)\xa6\x97\x00\x86\xeb\xaf6\xd4\
+4b2\xd3]\xfb\x94\xc4\x8b\xd2\x02\x8c1\xfb\x13\xaa\
+<\x7f\x1ee_\x9b\xcf,\xc50\x7f\x8aA\x96\x89\x95\
+\x02V\xf9\xebJ\xe7\x94\x8aP\xe7\xd7\x9e\xf9NY2\
+\xf4\xb5\x14\xbf;*\xac\xd3.\xc8}H\xe9F\x950\
+\x99\x17J\xfa2#?\xfdeX\xa7\xfeo>]1\
+\xdb!\x02\xb60\xf4\xb4\x81\x05\xc8\x00\x9a\xf9;\xfcN\
+%\xd1\xbai\xc8\x8c\xdb?s\xff\xaf}\x83\xbf\xe5|\
+U\x8a\xc5/\x03\x1c\x8e]\xb0\x8c\x1b?\x8c\x9f-\x80\
+\x1d\x135\xfc1\xc0=\x11=\x01\xff\xd8\xde\x8e\x7f\xe6\
+U@\xae\xc4\x8a\xdf&#>\x96\x1c\xf3\x07\xa9\xfb+\
+\xb5\xf1>\xe35\xd6\xc6\x8f\xaf\xfc\xaf\x91R?\x88m\
+\x17 !\xc06.\xae\xc3u\x89g\x06@\xe3 \x91\
+u\xcfe\xecR'\xb1\x82\xc1\x80\x91\xea{\xc7\xda\xfe\
+QtQ\xe6_|.\x0e\xe5\xdf\x8a\x070%\x88X\
+\xd2H\xa3yd}\xb8\xfe\xa1\x8d\xe4\xfev;_\xc9\
+\x89r\xa0s$\x83\x22~\x85.\xd0\x09\x07\xf4\xa2\x83\
+x\xdfi]w\x00\xd4r%\x01&~\x9fa\xdc\xdf\
+\x05\x1a\xf1}?\xcd\x8c\xf1\xbf\xe5\xdf]\xa5\x0b\xc8\xbc\
+\xa2d\xa3\xde\x1b\x00\xea\x87\x02z\x01\xc3\xd8\xc6n\xac\
+I:\xbd\xfa\xd1/\xff>j \x08\xc4=(\x99\x0f\
+\x01\xa4\xc0\xd3\xc1,\xc0u\x1d2\x98\xf9=\x9bk\xe6\
+\x04\x1b\xa8*\xb5\x91d[\x97y\xdb[(\xe5\xeec\
+m\x0f\xb1<\xb0C\x12\xf9\xf1\xf7\x02\x7f\x0b\x9d\xa3\xad\
+\xbdP\x8a#\xd5\x86\x8a\x19!p\xff\x85t\x10\xb4\xef\
+s\x1f\x00\x02H\x97\xf12\x0eDd\xd48c~|\
+/\xc7\x99\xa3\xb2wVd\xb1j\xbce\xe6\xb5\xcd\xd0\
+\x06\xc5\xe78\xb8\xbc\xde>\x1dk\x99w\x01V\x1eD\
+\xe5p\xa3\xa2\xbb_\x99x\xa5\x04#R\xc7a\xb0\x11\
+\xfa\xcf<Cu\xd6n\x11\x10q\x9e|\x0e\xdf\xcc\xe7\
+\xfa\xf1\xfc\x9c\x9b\xe4\xf5bf\xf8\x1c\x00\x95\xe7d\xfd\
+\x00\x988\xd6\x18\x01y\xdf%rHT\xce\xab\xc0\xcf\
+\xba\xb0\xa09\xd4\x1c\xfd\x0c\xc0K\xecO\xbb#T\xc1\
+)\xac+%\x00\x5c9P\xac\x8b\x912e\x03\xb4\xa1\
+\xd9\x1f\x88\xa9%E\xaa(\x95\xc6\xd7\xdf\xd9\x88\xf2@\
+\x81|\x17`ec\xc38\xf0\xdc8\x10#E\xd0\x06\
+n}\xabQE\xb9&6)s\x96\xd4\xe4j\xdf\x95\
+\x14m\x19\xf5\xca\x90\xbb\xef\xdc\x88K\x0b@\x86\xdc>\
+d<\xd5bz\x0e\x02\x8d;\x84um\x99\xb2\xd6\xb4\
+\xd6\x01\xca\xa9q\xc8\x8cYQ&\x0fi+\x7f\x01>\
+n\xdc\xda\xbf\xfdG\xb4\x7fkbu\xff\xdeeb\x01\
+W\x0e\x5c\xfbM\x06\x0a\xd3\x89a\xdd>\xa1T\xc2\xc1\
+x\x9fEl\xabjm\xcd\xd7d\xa8\xecn\x156\x7f\
+\xce\x8b\xc2\xe6e}\x8f\xb0\xb5\xff\xb7\xc0\xb2\x02I\x81\
+\xea\xf1\xe9\x80^bqP\x0f\xbc\xe8\xc0_\x1c\xf8\x8b\
+\xd5!\xdf\xfe8l\x9dO\xdb\x9f\xdd^\xa6\x89\xc4)\
+\xe9H\xf1\xbc9\xec~U\xa3x\x9a?\x17N\x0d\x1a\
+5p\xfa4\xe7\xf9UbC\xa8\xd42\x81\x03\xd0X\
+\x99\x00\x19!\x80\xdc\x08\xb8\x11\x0b\xcaZ\xd8\xaa\x81\x8f\
+]\xf0\x0a\xabVLe\x922\xf0\xaeZ\xfa\xcc\xf0\x15\
+\x10\xa3&\xcf\xe7j\xe3\x95\xaa\xdb\xba\xc8X\xde\xd5\xf7\
+=\xfbfW@\xa0]\xa2n\x1a\xda\x13\xa6\xc8\xa4Z\
+\xef\xcd\xcd\xc2\xbav\x84\xb9\xcf\xa8\x11/-\x85\x07,\
+m\xc7\xec_\x9ew\x89\xc8\x0a\x8c}\xaf.\x1d\xce\x0d\
+\x0e\x9b\x00\x07\x03'\x03\x1f\xa54\xa5\xd1\xe1\x1c\xe70\
+\xa5#Sm\xe4R}\xbee\xd6\x03\xc8\xfa\x95\xb0\x15\
+\xe0\xaa\xee\x0e\xc4\xe72\xc0i\x22f?N`\xe5\xad\
+\x9d\x86B\x88l>/K\x8b\xde\xb9\xb6\xa1k\x15\xdf\
+o\xccu{\x8b\x14=\xfc@\xd7\xee\xf2\xa4\xb0\x04\x9c\
+\x7fm\x05\x000\x03j\x1c\xe2\xd4\xb8n\x9e\xe3\xe7\xea\
+\x1cjT\xe6\x98?\x8fJ\xa0\xf3k)\x1e\xf8\xfb\x19\
+8>\xb3\x03\x8cST\xb0\xfc\x10\xffatD\xa9\xc4\
+\x0f\xd6.\x12\xd5\xb5 \xba\xc7\xbc1\xaf\xe7\xc6]\xa9\
+@2:\x89in\x7f5l\xfe\xbb\xdf\x0c[3\xee\
+\xa59\xa1\xed\xa1\x8c\xaf\xb6m\xc7\x84u\x99f?\x13\
+/\xcc\xdapb\xa6\xc5\xcc1_\xf4\x85\xc7@\xc9\x12\
+9%Y{\xf7\x99\xed\xbe\xdd:\xcf@\xafu\x1bx\
+\xc2\xcap<\xf0\x1ba\x1dP\x99\x00\xe3\xeeJ\x8b\xa8\
+\xe6\xee\xee\xf9=\x02\xf9\x87gI\xd0K\x97\x00tz\
+\xdf\x81\xdf?\x10\xc0\xcf\xed\xe7\xf1\xfbH\x07l\xa5H\
+\xe8\xf6\xb8\xb0\x8e\xfa\xfe\x8e\xb0\xf5\x9c\xaay\xfc\xee%\
+\x83<}$lM\xd4\xec\xde\x94\x9a\x0cJq\x12\xb8\
+\x8d6\x82\xbb\xbe\xadn\xde\xff\xeeU\xa9\xb5\x81Q\xf8\
+\xf0d\x00<7\xac\xd5\xf8/\xb5\xe7\x09X\x15\xa3G\
+\x00j\x9f\xfe\xd5\xb0.`\x03\x84\xd0\x08\xf8\xd3%S\
+\xbd\xfb\xcb\x04B\x1f\x9c5\xeb\xfc=\xb5\xd1\xa8\xceY\
+*P\x22}\x7f\x11\xb6\xb6\xcf\xab\x1ah\xda\x1fJ\xa1\
+\xd4\xca'\x83\xa6\xfcK\xcc\xb4\x04\xd6\xcc\x1f@~\x9d\
+\x1f\xf6\x05]\x84\x04J\x1fL\xbf\xe1\xed\x0b`Z\xa5\
+v\xc76[\x03\xd0\x8b\x85\xad\xc0\x7f\x01\x16\x18\x82\xba\
+b\xe5~^\x8c\xc2\xec\xd2R\xfe\x15QVm\x89\x05\
+nD\x14uk\xfa\xb9\xb0\xd5\xef\xaeR\x07\x016?\
+P\xe0\x08 \x02\xc0{\x8e\xee\xc3\xf9\x0d\x90\x10\xc7\xd8\
+O\x5c\x878\xc9\xbf\x8fLNq\xc4\xa8\xc6\xcf\x1f\xa3\
+\xa9\x05 \x1d\xba\x07\x94f\xd69\x04\xac\x07\xa9\xd4\xf3\
+\xaf\xfd\x9d\xef\x1b\xc4\xc0\xeb\x15\xd0\xa0\x0d\xe0\x18 \xfb\
+\x1e\xafC\xa0_\xda\x05c\x9b\xbc\x91\xc2?\xaa\xf2\xfb\
+=\xff\x94\x1f)\xa0w\x9e\x197\x9f\xeb\xfaF\x00b\
+hW\xcf\x0f\xa9\xfb\x1e\xefc\x00.\xea>\xf8o\xbe\
+\xc7x+u\xc5\xd0O?\xae\x804\xdd\x8f\xf8\xcdJ\
+30`\xc6\xfb\xc9\xeb\xdc_\x0f\x9ac\x18y\xd3\xf3\
+\xa7\x83\xfd\xed\xbc\xb1\xbe\xaf\xe4\xd7\x1a\xb6\xb6\xbe\x8f\xd8\
+\x9f\x09\x1enU/\xe6\xd7S\xfc\xa7\x0e\xf9\xce>\xce\
+\x07\xd5\x04\x0b\x8c\xfc\xdcS#\x8f\xe8\x1c.j\xfb\x1c\
+\xd9\xa1\xed\x5c\x054\x02\x19\x0b\xc4\xab\xdf\x0b\x5c\x92\xea\
+^\x94i\x03\xd6\xdf\xf7\xd7\xba\x09=\x8a\x09\x0a\xc8}\
+.$\xe7\x13\x999\xe6H*=\x00 \x5c \x1de\
+\x8e)&\x84\xf1\xfca\xde\x87\xb6\x19Yr\xe1~+\
+\xe3<\xd6\xf0_<\xaf\x8f#\x0e\xa0\xf0\xb9\x07r\xa2\
+\x98\xf8\x00\x11\xaa\xe1\x00\x03\x07\x92\x9f\xafp\xd6\x8c\x7f\
+\x89+\x11\xd7\x92\xc1\xf6\xdc\xdf\x9d\x01\x8aL5\x11\x19\
+\x01\x12\xe6\x81\x1a~\x19\xce[-\x19\x8d9,\xbbE\
+\xa3:\x13\xfb\x1bj!\x0b\x10q\x9f\xa8Z6N\x14\
+{\x07\xcaa\x19\xb0\xaeT\xa4e\xbc\xcd3\xd4\xab\xa4\
+\xfe\xcdW\xb1\x04\xde\x97\xcd\x8c\xf6\xfe\xfc\xbb\x9f&\xb2\
+z\x85\xa1T\xe0\x22\xf9|\xcf?\x94h\x98\x1f\xbew\
+lSi>\x00\x04 \xf5\xe67\xc6\x00\x80\x03\xe5\x1d\
+\x02?\xf4!\xae\xf5\xe0\xc0\xb0\xf0\xad\x8bQ5v\xcc\
+\xf0\x9b\xef\xa3h\x8a\x8c5-\x03\x19`\x94q\xa2g\
+\xda\xf48\x90O\x0ck\xed/\x17m\x04\xf3\xcc\xbc\xd0\
+\xee\x8d\x83\x90\x81_\x95\xc8\x00@\x942\xa8I\xd6\xff\
+Y\xcd\xa5L4J*\xe0\x89\xfa\x7f\xd6\x0a\x17\xd5U\
+\xe0\xa6$ \xfb\x0c\xd7u\xe7\x01\xaf-\x91\xdao\x19\
+\xc9\xa2\x8c;8r\x1e))*@$D\xc4\xce\xc8\
+\x1a\xe4\xd7t\x81)\x91\xb0{\x87\xcd\xd3\xe2O\xc2\xe6\
+\xc7wfX\xb7_\xc8\xe8=>\xc5\xb8>5\xbb\xc7\
+\x9fZkb90\xd5\xad\xc4<\xa2\xfe\xab4\xc0~\
+\x97\x01i\x05\x8e\xdf\x0a\xeb\xba\x10\xfcQX\xa7\xf6\x9f\
+\x14\xcb\x0a\x00\xd5\xb4\xa2\xb4f\xa6\xbe\xdaSb&d\
+Fp:WX\xeb\xc3\xde\xda\xfc\x01&6_\x0bk\
+\x0c\x83\x9b\x05\xc3\xa02)\x19\xc0V)E\xf6U/\
+18\x9a\x0b\xee'\xdb\xaeU\xc6\x9b\x88\x97ZZ\xeb\
+K\x1f\x5c\xeb\x85\xe8\x15`\x09\x90\x02\x90\xb3\x1f\x0f\x8e\
+\x896{\x95\x01\xbfu4\x88K\xed\x86c\x93y\xf2\
+\xcf\xd9w\xfe\xf6\x9dVJ\x06D\xd5O>k#\x95\
+F\x94\xf6\xc3\x0f\x97\xb6s\x9eK\xd5\xb8\xaa=\xcd\x0c\
+\xe0\xf4\x81\xb0\x14i\xfb\x83\x0e\xd0\xc9\x80tze\xd8\
+\x1a\x00\x94\xe8\x99\xf5\x95\x1a\x14\xa5\xae\xfd\xd1\xb0n\xdf\
+Ju\xf6*yB\x09\xd5\xdd\x83\xfa\xb6\x9a\xff\xecZ\
+\x00\xc0!\xd6\xb7\xf9nX\xa7:.\x80\x97\xf9!\xaa\
+\x16\x01u\xd7\xadb:&l]\x872\xd3\xd5\xbf\xfe\
+\xc4\xb0\xce\xe1\xcd\x12\x0cb\x82Ml\xef\xbb\x1d\xb5;\
+\xc7\xa9\xcd\xfb\x97t\xfe\x88\xf6[\x1c'\xd7w\xe5\xd6\
+'f\x15\x15\x0bo`^\xe7\xd3\xc7g#vur\
+\xb6\x97\xbc\xf9\x0a \x94_d\x1f\xb2\x8fdw\x85r\
+|\x03\xe8xR\xd76\x94\xe3h\xfd\xc6iz\xd1\xae\
+mr\x94(\xbcj\xfe\xfe?\x9a\xed\xa9\xf3\xebCg\
+{XR\xc3\x9f\xd6\x8d\x93\x12\x81`\x9c\xdc,\xa9\xc9\
+\xaf\xeb\x1c\xe0PVx~\x02?\x0f\xec\xb4\x0f\x04&\
+^\xad\xbfd.\xe9ZQ\xe7L\x02\xe5\xc58\xc1\x5c\
+\xd2n\xefw\xc3\xba\xf7\x0fb\xc7\x98-\xdb\x87\x84\xcd\
+n\xc3G\xc2\xe6\xdf\x1f?\xdb\x8b\xe6\x9f\xffe\xb6\xf7\
+\xe4\xbe\xf6\x8a\xf9}\xd7\xdc^k{\xcd\x8e1s\xbd\
+\xd0\xd3\xef2\xbb\x18\x1d\xce-\x8c\xcd\x0be\xe9\xd7\xbb\
+\x12\x90\xca\x80\xbe\x02r\xd4w\xe7j\xee\xcf\xdb_\x0b\
+\xebJA\x12(\xa5\xa1\xb49l\x99\xff\xd5\xfe\xef\xe5\
+\xcb~*S]\xcc\x89\xbfM\x91A\xe7\x04*\xef\x95\
+3\x10\xc5\xe4\xb1\xcen\x9b\xf3\x04\xe0\x97\xa5C\x05\xc8\
+\xe4~\xae\xff|\xf9\x1d\x17\xcc}\x0eS\x0ep\xaet\
+\x01\xa0 \xa3o=\x0em\xc7\xea\xb9\xa7\x86D\x95\xa2\
+\xd14\xca}qw\xa3\xb0\xae\xdd\xdc\xf7\xc3\xba\xee\x07\
+\x18\xa5\x12\x05(\xfeJ\xab\xee\x18\xd6u\xff!~\xcb\
+\xcf\x91H<%\xbb\x5c\xbc3\xbbO(\x8d\xc4\x80\xe0\
+o'\x80Z~\xc5/\x86u\x8c\x09\xda6\xe6\x0b-\
+\x14\xe7\x15\xe0\x00\x83\x8d\xbf\xcf/\xcdyQb\xc1)\
+\xea\x5c\x00A\x02\x92\x80\x8b*=\x13W8\x87\xf8e\
+2\xf4\xfc(\xd7\x9d\x00\xe3\xe6ua\x9d_-N\xb0\
+?a(\x0e\x22\xe6\x15\x07\x09\xf0S\x9c\xfc\xa0v\xe1\
+\xe2\x1c\x0c\xb2\xb1=\xb5\xf9z\x0e\xd4|\x1aI%r\
+\x08\x00V\xf2-\x8e\x14\x90\x0fZU\x95!\xc7 \xf0\
+\xef\xde?\xb6\xf7\xf3\xbdj\xfdG\xed\x02\x7f70N\
+\xcb?0\xbfGf\xba\xfb\x1c\xda\xcfW@\xee\xf3F\
+\xad\x03@\x02\xc6\x1f\xc6\xcb\xf8\xefc\x89\x83\xd7s\x12\
+14\x0e\xfe\xdeuIl(!!\xea\x87\x19\xa3\x14\
+\xd9}\x19\xb7\x91\xf1\x9e\xf3b\x7f}\xb1\xc0[\x9b\x19\
+\xfd\xe2e\xf4m\xe0\x81\x1b|\xa7\xd3\x06\xe8k\x85\x0f\
+t\x9f\x03 \xf0w\xe7@\xa1o\x81\xd6\xcfw\x81\x0c\
+\x8a\xf5\x11\xa9\x96\x8aJ\x1c\xd3~{\xaaV\x00\x00 \
+\x00IDAT?\xda\xc3\x5c4\xacC\xe8F1\xb1\
+\x11\xe9\xf0\xb3\xc0\x5c\x00\xe4\xbaG\xca\x8c\xc0\xc9\x06=\
+\x8a\x9fq\xc8\xfd,p\xf4z\xc8Yk\xeeQh*\
+\xd0\x15\x88{\x7f\xf6\x89\xaf\xf6b)\xd2U\x01\xb4\xeb\
+\xfe|N\x88\xb1\x96\xc9\xc4Z\xfb\x84R;?\xab\xea\
+\xbf\xfb\xe6\x00@\xee\xd4\xecK5\xd9@\x92\xda>\x1f\
+s\x0b\xd0\xe2{\x92R_\xe3e\x1cN\x1b\xda\xfe\x8d\
+\xa2\x83D\xf8l\xf0YS[\xa5\x1a\xe3\x06F-\xf7\
+\x0e\x09\x0c\xdc!\x03\xbf\x0c\x88+\xe0SS\xf8\xbbY\
+s\xfc\xf4\xc5a-*4\x00\xc0\xf7\xdc?3\x5c\xc4\
+\xaf~93Jj\xeaP\x9b\xd7.\x0b\xcb|\xb4\xb0\
+\xccc\x8c\x83#\xf3\xa0z{\xf6\x97F\xb1\xf5\xbd\x18\
+\x17\x9e7\xa0\xc0\xef\x01\x03\x02r\x0b\x1e\xa2\xe9\xfb\x1c\
+\x106\x16\x8e\x14dP\x7flTu%\x0c\xee\x83#\
+\xd0\xb7\xfb\xec\xdb\xcb\x8cT)\x0e\xfe\xed\xc2\xba\x8d\xcf\
+\xf5a28h\x00\x1a>\xd7\x06d\x03\xb5A>:\
+\xac\x03\x18\x00\x07\x19x\x0a\xf0K\x1c\x0f0$\x93\xa3\
+\x94\x22\xfb'\x97\xb8\x91\xf6n\x1c\x07\xf3]M6\xf1\
+-\xeb\xc1>\xe5\xe0\xc8\xb6w%2\x95\x9f\x8b!Q\
+\xea\xc4Y;[5\xf4\x02)\xb5\xfd\x09<a\xca\x08\
+Tj_A\xe1\x03@$eszM\xd8\xfc\xb6+\
+\x86u\xaa\xe9\x02\xee\xbc\xff\xe9)\xd3\x1fNQ[~\
+\x81\xb0\xf9\xf5>a\x9d\x98\x10f\xcf\xd1\x8b\x08]9\
+`\x00K\x8e\x1e&\x09G\x11\xc5\x91\x1a\xb6}3\xf7\
+\x8b\xedo\x85\xad\x99\xe4\xdd\xd1\xd9e \xf7\x91R\xa7\
+\xbfkX\xa7F\x9d\x8e\x07Q\xad\xca\xb0e\xed\xaf\xf5\
+\xd72\xc2/\xef\x10k\x14\xcfp\xe8\x1f\xbc\x06BD\
+\xf4j\xbf\xb2\xefe\xa9G\xb51\xc3\xc8\xc8L}e\
+\xa2\xb4\xb7\x1b\x19\x06\xd6\xf7\xa0\xedQ\xe7\x0d\xb1-\x8c\
+\xa2\xc8s>k\xa5\x98\x96\x88\xde\xfb3\x80T\x03\x99\
+\x99l\x94\xbb\xca\x94\xd0\x98\xa1I\x91\xe3R\xc0\xd0\xd3\
+\xf7=\xad\x05R\x98\x1e\xcfmV\x94\xdc\xfa\xdc\x17\xce\
+\xc7\xfe\x0b;G\xea\x8eM_|\x09\xd4\xae\xb4\x8a\xeb\
+\xd9\xaf+\x809wX'\xca\x87qD3\x05s\x0b\
+C\xcbs\xa7\x05\x91\x7f?\x9d\x1a\xd6\x01{\xee'\xdf\
+\xb7\xbdkXG\xbd\x04dk#'\x93#\x00\xa5\x09\
+\xf0\x8c\xb0\x96\x19\x9d\xad\x0b|8\xe2\xd6\xb3\x92\x87d\
+\x84M\xbf\x166\xff\xfc\xb0\xb0\xb5m\xa3v}\xa8\xd0\
+\x80\xc5\xea\x96!\xc6~\xfblo\xeb\x80\x808\x95\xbe\
+\xbf\x96<6\xf5\xf4?X\xcf\xf7V+\xff\xf8N4\
+.v\xdd\x1b\xa5_\xb2\xcd\xf5\xf3\x8d5\x83>\xfdk\
+XW\x8a\x14\xb3\xed\x06\x9d:\xb4\xf3\xd9\xfe\x7f\xab\x06\
+\x85\xd7\xe7\xb4\xfd\xf31\xf3\xe7<j\xb6\x08\xe8\x1e\x14\
+\xb6\x8e\xe7t\xcf\xb0.C\x1b\xda\x0b\xb3\xff1\xbd>\
+\xac\xa3&\xbf\xb5\x15\xd3\xac\xfbpj!\xd4\xbaM*\
+w\x95\x04\xc8\xe4\x0b\x1c\xf3{+\x00\xa3\x96O\xec0\
+\xcf\xc1\xed7\xc2\xd6\xd2\xb0\x12a\xd3f43\xa7\xce\
+\xa1\xedO\xc2\xba\x9a\xef\xf0O>4\xff\xfe\xe4\xb0\x96\
+\x88h@L\x01\x98\xc1d\x9b\xfd\xa4\xe9[\xd3\xb7\xa7\
+owj\xf0\x18:\x02;@\x9c\xf3\xcb\xbe\x90\xeb\xb7\
+\xda(\xfe\xc3\xee\x9fb~\xec\x9d{\xef\x5c{\xe7^\
+E(K\xf4\xd3\xf9\x9d5\xfa-\xdd\xf5\x83n}\xe4\
+\xbc#\x12\xb9\xbbz\x02\xa4\x03\x80Vm\xa1o\x97\xfe\
+\x02\xe0\x92c\xafV\x19\xd3\x87\x08\xab\xf3_\xdf\xf4,\
+1\x8b^\x1a\xed\x5c\xf59\x02\x08%T)v\x87\x91\
+\x00\x90\xaf\xf7+I\xc2\x94\xc3t\xa3}s|\xb3\xd5\
+\xdf\xcb\x0cx[/o\xef\xb4A\xae\x99\xfeF^\xdf\
+\xee\xada\x9d\xa6\x83\xf3;\x01X\xeb\xaf\xb4\x1e\xf8\x1f\
+\xda-\xd2h\xcaR\xd4\xd24\xc0p\x10\x00\xf37\x9c\
+\xef\xd6Q\x02\x17Urr\xb5\xb0N\x1c\x90\xdfI\xe4\
+M\xe9\x9e\x9a~\xdd\xa40\x04\x93\x09W\xc0Ljt\
+\xd4\xf5\xeb\x82c?O@\xa2\xba\xa9\xf0\xc3\xf8]\x02\
+_q\x8csA7\x03\x1a\x0b\xb4.\x8c+-\x04\xfe\
+\x95\xff\x00\xdb\xe2!~\x1a&\x8aq\xb2\xeeGqr\
+\xef\xe7\x0f\x0e\xd4\xf6J@\x0a\xb4\xdf\xddR|\xcb\xf3\
+\xfdP\xc7\xcc\x1c\x13K\x03\xb3\xba2\xde\xa3\x86\x00\x7f\
+\xcc\xab\xf5B\x1c/K5\x0f\xaa\x99\xc7\xe8\xf5\x0a`\
+U\xc3\xef\xf3\xc6\xf6\x84C\xe0\x7fP\x89\xea\xf8{\xef\
+\x07D`\xf2\xb9?\xcfcdR\x18\xef\x01x(\xea\
+\xbe\xc4\x95\xf7\xf9;\xfb\x95\xb6\x84j\xf8\xf9G4\xf8\
+\xf8E\xe2\x17\xfe\x9bq\x12\xafy\xde\xe9?\xedo\x1f\
+/\x83\xda\xab\xef\x0b0W\xb5\xf9\xb3\xaa\xd7\xfby\xac\
+m\x0f\xb7\xfb\xc7\x9dF\x80\xff\xb6\x8d\xcc~\xb0\xe8D\
+q\x1c\xf3\xb5N\xe2d\x08\x08, cIU)\x15\
+{\x13\xdauC\xcaL\xd8\xec\xcfZ\x01\xa8\x09)p\
+Y\xdb\x94\xfd\xe4l\xbb\x13X\xb0>\x172\x0f\x80\xb8\
+\xde\xd0vo,A\x00\x04\xa81\xe6x\xaebh\xeb\
+\xf8l\xcfF\x1cm\xacU\x07@\x5c/)C&\xaa\
+\x05/3\xad;\x00U\xea\xebe\x00\x07\x81t\x9dc\
+\xbb\x11\x1b<j\xb3\xdaDm\xfel\xb0\x18\x06\xdaL\
+@`\xbf\x9a\x13X\xa0a\xbc9\xf62k\xfe\xb30\
+-dL\x03\x0b\xe1\x229\x0f\xd5\xd8\x12\xb7zp\xb3\
+}\x9bgm\x8e\xd9<\xabe8^\x17\xe2+E\x9d\
+\xccR\x81\x12\xbfI\x8aU\x011\x1c<\x1b\xac\xc0\x13\
+R+@\x92\x11\xbcn\x8aA\xa2\x08_-\x9f\xbf\x9a\
+m\x19D\x99Z\xf3\x13\x10\xe0:\xac+\xe3l\xdc\xcd\
+\x17\x1b\x94\x8d\x91\xa6An,\xc4\xf1\xaa\x1f\xb9\xcf\x1d\
+\x91F\xf3\xc7\xfc\xf6\xbc\xc7\x8d\xde\xfa\xf1wc\xbb\x17\
+\xd73R\xa3\xbc\xda\x18e\x00\x12i\xad\xcc\xbd}\x01\
+\xc5T\x89\x11\x06Of\x96Q\x8f\x8b\xe2\xeb\xbe\x8c\xbf\
+W\x80\x1c@B&\x80\xda\xac\xf6\x9dY\xe39\xcf\x8f\
+g\xc5\xfc\xd8|'\xac\xdb\xa8=\x07\xa5&\xf6\x19\xb5\
+\xf3\xcf\x09\xeb2\x15\xd9\xce\xaa2\x034\x08\xa8\xbd'\
+\x85\xad\xda\x9c]\xb8\x1c\x97\xc5\x111\xbec\x86qh\
+\x1bCd\xab\x90{]\x08\x9e\x17\xb6\x22\xde\xbb?\x0d\
+\xeb\x02\xd4t\xcc7\xafN5v\xe3\x93\x0e\xab\x00\xaf\
+j\xfc\x1d\xa8\x1c0\x14\xcc\xcb\x85e\xa6\xf1\xd5+E\
+S\xad\xbb\xfb\xad}*3\x07\x15(<v\xb9\xfe\xcd\
+S\xf2\xf3n\x1c\xb6\x02\x1a\x1c\x1b\xf3c\xfb\xdba\xf3\
+\xcf\xdf\x9b\xed\xf4\x15\xd0(\x87\xe8mY\xf3\xafM#\
+\xca%q*T\xd5\xa4\x14W\xed4&\x01\xc7\x96\xb8\
++&\x89\xf5\xaa\x0b\x07QE\x8e\xbd\xfd\xdd\xbe\x9f\x80\
+\xf5\xeen\xbb_\x0f\x11\xab\xdd\xfbv\xff\xda\xba.\xc4\
+\xb9r\xbd\x15\xa8k\x22Ww]\xa9\x9c\x9bc\xc3\xd6\
+\xf9f<h\x97\x94\xa3\x98\x19h\xed\xfaJ]\x5c\xa0\
+\x95\x99\xf8\x12\x85\xc3<\xf1\xb9\x09\xac\x95Zxj\x8d\
+\x14\xf55\x19\x04\x07\xfe<l\x1e\xf7\xa7\x87\xad\xfb)\
+G~\xfb\x97a\x1d\xc3,\x01\xb5\xca\xa0h\xcf\x95\x0e\
+h\x95^\xa4\xe8\xdb\xb8O+e\xc1l\xd9\xbc\x22\xac\
+{^\x19\x98U\x8d\xb2qL5\xeeb~p\x80\x05\
+\x08\xa8\xce\x02\xa0\x04\xd4*\x13\x9d5\xa7\xa5\xaeo\xff\
+#\xba% \x04x]\xa9\xf5s\xd9\xb7y\xefl\xff\
+\x9am\xc6^\xb7f\x94\xa7'\x84\xcd\xc3\xf2\xc6\xb0\xf9\
+}\xff\x11v6\xeda9x!\x8d\x19\x19\xc0#g\
+\xbb\xce**\xa6\xbfz\xed;\xe9_L\x9f\x0e[\xc5\
+\xf1\x9a\xdb\xf6\xb9\xd4&xx2W\xe6y<=2\
+l\xd5\x18\xb0\xae\xa6\xdf\x0d\xeb\xb4\x09N\x08[\xc5\xe8\
+Z\xe0\xf2K\xeby\xdcJ\xf4w\x1ds'\xee\xfb=\
+kW\x81\x83\xc4\xc4\xf8gJ\x14t}\xc0\xcc\x03p\
+e\xc9Yk\xcfx\xf4\x0a\x1cl\xef\x19\xd6\x02\xf4\xa5\
+\xbf|\xecC_\xed2\xe7\xda\xfa\xe6\xf3ib\x9b\xf3\
+\xbfoo\x186o\x07\x17\x0d\xeb\x980\x80;\x8c\xbf\
++f&=KF\xf8[\x15\xe0\x03\xf8\x94\x9a\xfc}\
+\xd8Zz0}3\xac1q.\xd6j\xc3_\x9cb\
+\x82\xc1\xf8\x9b\xfd\x9d\xedk\xc3\xbas7\x88\xdbOZ\
+\x19\x14M:\xf2\xd5\x1dCL\xed\xbas\xdcu\xab\xad\
+wN*\x05\xcb\xc4X\xf0\x19\x1a\xa3\x01P\xce\xaf\xc4\
+\xc8I\xca8m\x05%\x17\xe5'\xf8w\x89\x97\x0c\xb8\
+1&JkH\xcd9\x0d\x1c\x80)&\x84\xc0\x9f\x86\
+N2\xd7*\xf3\xca\xaf\xc86\x85%\x1eMK\xc3}\
+f\xc0\xbc\xbbY\xd8\x0a\x08(U\xda\xfcUX\xe7\xd7\
+h\x8f,\xb3+a&\x10\xa3\xe5\xa26\x9d_\xf2\x81\
+E\xc3\xa0\xda_\x02\xc6hQ(U\xc0\xc0\x91H\xc3\
+\xd4\xb8sXW\xf2\x80\xc2n~\xad\x9aO\xcb8+\
+)\x03\xd4\xfc[X\x97\xb0t\xfe\xf0\xb3\x00-\xfc\xed\
+\xaa\x99\xc8s\xd4\xdf9\xa7\x92\x09\x89\xa1W\xfb\x0a\x0d\
+\x10] \xf8\xcd\xfc\x19\xfb\x11\xbf\xfb\x9c\xfc:\x9f7\
+&H\xc5+\xba\x1a\x8c\xe2\x85\x18\xbd_\x19D\xf6F\
+\xd1\xc3\xb1F^\x9c\x00@\x10\xf0\xba>\xd7\xc3\x1fR\
+\x92\xc2o\x04H\x0d\xddp\x0a(\xf5~\x9a%\x00g\
+\xffn\x9c<\xf7!s_%k2\xf8\x02n\xf7\xc5\
+\x8f\x1d\xe3F\x9f\xa7\xf4v\xbc\x1f\xf7?\xfa\x81\xc6\xc9\
+\xeb\xa8%0\x8a\xa3\xfb\xbd\x00^`?\x96\xc6\x8a\xbb\
+\xc6.\x0b\xfes?\xe9\xef\xeeo8\xd4ws\x22\xf4\
+}\xe8{\xb5n\x01\xea^\xd7&P\xa6v\xdfY&\
+\xf3\x8a|\x0bh\xfd\x07\x10\x88c\xb8\xa7\xe8\x8f5\xfa\
+\x90\xb1139P\x97!HE\xd5\x1e3\xf2\xe3@\
+\x8e\x13}\xacq\xf6:\xfe\xfb\x18\xe8\x8cm\x1cLt\
+\xdf\xe3\xa0\xb4 \x93*\xb594\xac\xcb\xc8\x09\xfc\xd4\
+\xf8sP\xdc\xef*R\xb1|\xdf\x853\xf0\xe7\x98~\
+7\x17*U\xd0_\xca\x8c\xb8q\x13\xe8\xe4\x81\xbc\xef\
+?3Ci\xc31\xe1F\x918\x19g\x13\xdcx\xcb\
+\x08\xdf4k\xaa\x87\xae\x02\xfb\xde\x91\x0b\xe1c\xb9\xe0\
+P\xe69:\xc6/\x1d\xae\xddqI-;O\x22Z\
+\xc9\xfc\xa8\xdaq\xd7\xff\x83|\x0e\x90M\x1b\xb8\xf6,\
+\xf9\x9c\xeb\x00\x92\xc9\xd7\xbeIm\x17\xeaZR\x83\x0b\
+H\xa1ep\xb3\x0cX]\xaf\x1a`\xaa\xf3\x97\x0d\xeb\
+6h\x19\xf6A\xed\xbf\x00\x06\xd79P\xe4\xab;\x05\
+\xb1<b\x81\x98/2\x052\xdf\x0el\x07\xc4\x08\xcc\
+\xc94\xa2\xd8\x0b\xa0\x1c4\x80\xac\x11\xf9\x1c7\xa4\xf1\
+\xf5\x9cj\xa2\x00k\xda\x1da\xac\x9c\xbb\xb4\x11\x16\x07\
+\x9d#\xee\xfb\x5c\xb7y\x96\x07\x1c\x0a>G\xa2\x10\x5c\
+\x8e\x0f@\x08U8\x0f\xda\xd2\x0c\xe0\xd8\x99\x1f\x1c\x86\
+\x14\xdb*\xed\x03\xa5\x05\x02K\xcc\x0b\xfb\x85u\x90@\
+\x15\xf15bYu\xdd\x18\x0b\xd4US|\xae\xfa\xb0\
+\xe6\xc1\xbc\xb9mX\x97\xd1q\xe0ynC\x1f\xdeb\
+\x84\xd8\x0f\xb3\x8bA\xd5\xaa\xa3Hf&F\xe9\xcf\xee\
+Ia\xeb}\xee~+\xac\x050\x8b\xa6\xc01\x0b\x00\
+R\xd4\xd6\xac\xc5\x9c\xbe\x11\xb6\xb6\xdd\xd2\xd6O`\xb3\
+}V\xd8\xfc\xf3?\x855J~\xcb\x84\xed\xce\xc8L\
+\xa5\xeb\x96)\xd6\x0f[\x86\xf82a\xad\xdd\xd8\xe2\x80\
+\x1d\x97\x14\xf3\xf3/\xfb`Tb7@\x83\x0a\xf6{\
+R[$\xe0\xb3_\xe8(\x9b\x00\xc7\xdc\xdfK\xf5\x9e\
+\x98\xdf\xd8\x06G\xe6\x86c\x17\x04\xfb\x1f' \xf8\xae\
+n\xbda\xa2y\xb5\xbe\x00>y\xfd\xb5.\x05\xe4\x97\
+\xdf].\xa8\xd5\xfb\xee\xb1\xef\x7f4f\x89\x0cE\xac\
+\xd2'\xb6L\xdb\xd2\xcf\xfcR\x8b\xca{\xa9Fc \
+d\xc0\xb4{r\xd8\xfc\x1c.?\xdb\x15\xb2k\xc2\x83\
+\xd6\x12\x87]tG<\xb0\xde\x8fvh\x05\x1ce&\
+\xac(\xc0\x09DN\xff\x12\xd6e*1<PS\x83\
+\x7f\x15\xa5&w\x9a\xed\xce+\x13k\xdb\xfe\x9b?\xef\
+\x9ea\xdd\xb8\x9a\xa7\x1c_@\xbb\xcc\xa2ue_T\
+\xbad<1\xa2\xec\x7fC\xb7\x13\xe3@c\xa7\xda\x98\
+e\x86\xad\x1ca\x01\x95\xc0\x808c^\x8f\xcc?&\
+\x0a E\x0d<M\x85\xcaHf\x89\x12\xe0A\xa0y\
+\x96\xbe\xd4\x07\xb2\x94b>\x0f\xa6\xeb\x87\xadm>\x8d\
+\x17\x15v%\x1bT\xf6\x8bb\x1c\x81\xdc\xa3:\xaa1\
+\xc7\x9d\xa3\x1b\xf0\xc5\x1b\xd2\xa1\xfbB\x06.\xbf\x93%\
+\x15\x7f\x95bj7^3x\x8dq\xf1\xcd\xb5\xff\xfa\
+t\xd5\xb0u\xfc\x0a\x108eQ\xc9\xc7\x18h\xcc\x85\
+'t\xe7\x8b@1\xb4'.\x90\xb5\xcf\x8fH \xee\
+{])\x88\xf1\xb6Or<\xedSJ\xd4\xbc\x02\xea\
+\xb4\xb1\xca\xfb\x9d~/\xac;\xd7C\x22r>\xbf\xa7\
+{\x85u\x01[j\xd3\x94\x16\xc6\xf3g\x9b\xf7\x89\xed\
+o\x86\xad5\xb0\x07\xa6\xb0n\xdd\x03`\x1e\xb50\x99\
+\x0e\x5c,l\xd5Xr\x1eT`\xc3\xcf\x12`\xe4<\
+\xdc|:\xac+!t.%c`\xfb+a)\xda\
+:\xad\xe2\x84\xdbkm\xaf\xbd\x9d\xfd\xab\x03'\x865\
+\x00t\xb6\xe6\x80/\x99H\x99e\xdf\xcb\x0fR\xcbO\
+<\x8e\xc8eR\xd1\xab\xb4R\x02\x8c\xe8b\x96dT\
+\x00\x96\x01{Q\xfaiN\x5c$l\x9d\x8f%\x02\x9c\
+\xd4\xfb\xf2\xf3\x00\xf1\xdan\xf2\x17\xf8\x09\x128\xc6\x9b\
+Hi\x94\xbe\xdc\xa2\xd30\x11p\xd0n\x92\x19\xcfq\
+\xd4^\xb5\x00\x8ed\xfcl\xfe;\xac\x03D\xd3_(\
+\xd1D\xf7\x9fb\xd4\xa5\x0d@K \xdd\xda\xe9\xeda\
+\x1d\xe0\x81\xf1\x95\xa5i\xbb\xeb\x85u~\xba\x9am*\
+\xfc\xa3h\xb6q\xe1\x9f\xf3\x13\xcc7\x00\xf1\xa8\x02\x8f\
+\x99\x00@S\xf2(\x10u\xae\xf1[$<$\x16\x1e\
+\x12\xb6\x02\xa8\xbb\x1b%p\xac\xed\xb48@)\x0d\x06\
+\xa8.Y\xfc\x0c\xf1\x89\x04\xc97v\xdf\xdc}\xb3k\
+\x13\xce\xaf\x13_I\xe0\xbe7\x19&\x98\xbdcfZ\
+|\xc4\x0f\x10\xaf\xc8\xbcc\xa4\xf1#\xed\x17\xae\xc7\xe7\
+\x08\xdcG\xd1x\xd7+\xc3\xee9\xd0\xfc0n\xde/\
+A\xa6$\xc1x\x9b\x8f\xf6\xdbQ\x13`\x9c\xe7##\
+`\x0c\xa4\xfd\xfb(\xb2h|\xf8\x03>w\xd0\x18(\
+\x06\xc3XR>\xc6\xab\xba\xaa\xd1f\x10?\x0d\x89\xa5\
+\xa6\x8d\xf2\xc4\x8e)\x9ab\xa2\x98\x05\xd6g\xad\x1f\xcf\
+%5O\xf6\x1f\x14\xd0s\x8c\xd5>z\x15P8 \
+9\xe8\x11\xdeP\xdb\xef)\xcd\x16\x98\x01\xea\x03\xfe\xd3\
+Wm\x81\xb3\x94\x1a\x5c\xb9\x0b\xcc8\xdcjI|>\
+`\xc1\xf7\x18H\xd7\xe3\xc1\x8d\xfdHG\x00`T\xfd\
+\xcf\x8cyM\x8cQ\x0c0\x07\xbe\xfam\xa3\x1a\x9bP\
+\x1c\x1bb\x1e\x02i\x1b\xa6q\xf4\xb3\xff\xbe\x9f\x0b\x08\
+\x92\xa8\xc6Z-\xb5\xf1\x16\x90\x0a\x14\xc6\x12\x06]\x05\
+\x04P\xc3\xb8W-\xd25\x93\x82\xe5\xfelh\xbe\x87\
+C\xec\xef\x95\x12Xp\xfe\xce\xc2\x86\xb0\xd9\xf0L\xe0\
+\x0b\xe6D\xb5!\xaaENu\xd6F\x94\xbcQ\xe7 \
+Z\x00\x90\xb7\xcf\xe4\xdfe\x1b\xc3\x1a\x8fl\xfb\xc2\xa1\
+\xab\xcc\x90@7\xef\xa7\xfe=k\x897/\x0a\xeb6\
+\xceQ\x8c\xef\x16\x99\x19\xe4\xb8\x1ao\x01\xfca9>\
+\x1c!\x9a\x026l\xdd\x058\xdc\x16\xaa\xd2\x03\xcc\x00\
+\x00\x01\xc4\x8e8\x8e\xcc\x8a\x03_\xb7\x00\x8c\x09\x0c\x06\
+\x0c\x04\x07\x86\x03\xc8\xfd;p<W\x08\xa1\x8dz\xa0\
+&\xc9\x08on\x1fv6H\xa3\xf5a\xbd\xd8\xc0\x89\
+\xedE\xa6\xec\xf5]\x80\x8f\x89\x92\x818\xf1\xbc\x1a\x7f\
+\x99\x1b\xaf\xa8\x8c\xa8a\xd6\x17J\xb2\x83\xd2zF\xd5\
+\xcb\xd2\x95\xaa\xed\xff\xca\xa0\xfe\xac\x8d\x16\x8a\xb6\xef\xb7\
+^\xadS\x19,\x22p\xda\x9f%\xc3\xa4\xb4\x0c\xcc_\
+\xcf\x8b\xc3\xcb\x11\xb0\x7fB\x92\xadc\x99{m\xb7\x88\
+\xa2E\x8d\xeb\xf1\x1d\x95QFW\xed`\xb6\x9d\xaa\x8c\
+\xbbu\xc9q\x97\x19V\xe2@<2\xd5_\xcb!L\
+Q?5\xd5EQ\xc3\xa0\xf9\xdb\xb0\xf5\xf9oo\x12\
+\xb6\xd6\xb6\x17%\x9c\x08\xd5\xb1\xd9\xff9\xd7}Q\xb9\
+\x05\xc8\xc9 \x98\xdd\xd3\x85j\xa9\xdf\xf8\xf3\x16@\x08\
+%\xbc\xd4\xa6\x13\x00l\x99\xb3\xfbt\x01\xa5\xe7\x87\x89\
+\xa1\xedlh/<n~\xff\xa7f\x0bj\xfa\xcbg\
+{Y\x97\xf9\xff\xb9V\xbc\xb4\xf6\xd7\x8e\xa7{r\xce\
+\xdf\x0ft\xc0\x9b\xe7\xca1\xf1\xfc\xc6\xee3\xce\x13*\
+\xc6\x99q+\xed\x09Trj\xce\x80\xc9\xd8-\x7f\xa6\
+\xcb\xa4'\xb3\x85\x03;]w\xb6\xeb\xad\x0e\xfa\xe6\xad\
+\xb3\xbd\xa5s\x94\xd5\xde:\xe7\xac+\x81w\xbeo\xba\
+eX\x97\xa1\x97!J\xe0\xa9\xda\x98%5Z\x86\xb6\
+\xb4\x1dP\xa4\xb34\xa0\x98S\x09\xbc\xd5<\xb4\x1ee\
+\xf8\x5c\x0fU\xfb\xecw\xefz\xa9\x92\x17\xd0\x17\x81\xdc\
+\xf3\xd7\xfd\xb0\x02\xbe\x5c\x0fj\xa0K\xb4\x8e\xc3\x05\x80\
+\xb1\x1e\xed\x17\x80\xd7\xa1v\xb9\xfa\xc6\xdb\xcf\xf4)\xcf\
+.)\x05P\xeaZ\x80\xf2\x9e\xcc\x8aj\xdf\x86q\x81\
+\xda\x1f\xabt\xdeo\xa6\x0b\x86\xad\x14\xe2\xed\x0f\xc2\xe6\
+\xd7\x97\x86\xe5\xfe\xff\xcbk@\xa4\xfd^\x05\xb6\xc90\
+iL\xb5\x87$ \xf1\xf6\xae\xb4!\xf81/\xcf\x92\
+\x9e;\xe7\xf9\xf5\x82d\xe2<+\x8f\xfb\xdd\x0a\x00\x84\
+\xa2FhjTW\x8al\xb3\xd6\xc4L\xe7\xf94=\
+ l}\xeeD\xd6*S\xfd\xdbak\x7f\xfb\xdd\xcf\
+\x86u\xa2\x8f\x9f\x0c[\xb5\x1c\xaa4 D\x08\x7f\xb8\
+\x06p>\xbf\xda\xf0\x11\xa1\xbc]X;\x8f\x9b&J\
+i6\x00\x92Stu\xbaY\xd8\xfc\xf3\xcf\x84u\xa2\
+s\xc4/3\xc1$\xd0\xd9\x9e7\xac+\xe1\xd0\x15\xe1\
+\xc4\xdd\x87\x03\x08\xa7\xd1\xb1\xfbA\xd6\xa4\x9f\xb4\xf8?\
+\x15\xd0+\x1d\xa3=\xa3\xc66\x03\xef\x02\x12\x7f>E\
+\x17\xf3\xf3\xf6\x9e2\xdb\x93[\xdb\xd2\xd9\xd6\x1a\xed\xed\
+\xe5\xb6\x97\xdd^\xae\xbb\x9f\x1b\x85u\xa5I2\xd7\x19\
+\xf8\x16\xa3\x8c\x98dj\x05\xec\xce\x13\xd6\xd6\xeb\x12(\
+\xab\xd9O\xc6P%\x92\x00\x85J\x04\x9c\xcb\xc4\x19\x01\
+\xf0\xba\xa3\xf0\x8f\xadOm\xee\xf8\x172\x98\x98aY\
+zS\x00\x10\xc6@\x8a\xe4\x15\x10{\x8f\xb0\xb5\xddg\
+\x01\x05\xba\xf2\xf0s\xec\xb3\xce%m)1u07\
+]\xafL4\xea<\xbfL\x09C2\xfd\xa6\xff\x08\xeb\
+\xba\x88d\x9b\xc4\x12\xa7\xc4\xb4J\x86R\xa9\xff\xdb\xb7\
+\xf8\xab\xfc\x07\x1a1\xc6\x93_\xcbop.\xf0\xf7\xf9\
+'\x80Y\xff>t\x93\xa9\xd2/\x8c4~\x95.S\
+\x12)\x006\xd7\x15\x05]wl~\xc5\xe2\xb7\xbd-\
+KM\xf9\xe3\x09\xcc\x96\xd6\x11M\xb0\xf0\xeeNI?\
+dQ\xaf\xffRK\xd0\x01\x1cOo)\xc4\x88?\xce\
+H\xa6\xe8\x81\xe6\xef\x8b\xafh\x84}k\x00D\xf8\x8f\
+\xfcf\xe7\x93\x04M\x96ZT\x00>\x8a4;7\x9c\
+\xab_\xae\xc4\xe1r\xbe\xf2\xf3\x04\xda\x98\x99\xfc[\xe3\
+F\xfc\x18SYm\xbc\xf1u.x\xaec\x97\x80\xa1\
+\xc4\xa1\x98\x09C\x97\x86\xb1\xdbUi\x00\x09\xa41E\
+\xc4\x95\xe2Q\xfe\x91n\x08\xae\x03\x03\xd4x\x8c\xcc\x89\
+\xb1+\x9d\xfb\x177z\x0e4Z\xac\x17\xdf\xcb\x7f\x19\
+E#}\x9f\xfb\xcf\xf7\xef\xaf\x07H\xb4\xe6<M\xe7\
+|m'\x03 \xf0\xc0\xa9\xdb\x9a\xf8\x88\xfb\xdfoS\
+iUg\xa7.\x0fY\x01 \xb8@\xaf\xa9N[\x17\
+:\x06\xc8\x80\x03L\x04\xffn#\xcb\x07Q\x81\xd5\xd8\
+v\xcc\x80\x8e\x0c\x83\x91\x19\xf0\xed<\x90\xbe\x9c\xedZ\
+\xae\x9b\x0bi\xcc\x5cR\xf9\x17P+-\xf0\xef\xae\x17\
+b\xe8\xf7j70+ K\xc6_\xc0\xcdA\xf9\xe8\
+\x22\xae'\x93^\x81\xdf\xc9\xa5\x02\xbaL\xd4\x9c\xb0\xde\
+_\x812\xb1\x8b\x1f\xe7\xf5\xd0v\xf8\xafD\xc8\xd6\xcc\
+\xff\x120_\x223\x9e&\x8eq\xbeD\x01=\x8b\xe3\
+vj\x026\x90%\xe3\xf9\xef\xd9\xb6\x82\xfa\xbf\xc0\xf7\
+\xf0%\x10,\xca\xdb\x9d\x12y\x168'\x05\xaf\x80\x0d\
+\x81\xea\xa7\x13)\xf5{\x80\x8a\x8chf\x846\x8f\x0c\
+\xeb\x1cr\x99\xd0W\x84\xa5c\xddQ\x88\xebyp\xf8\
+\x05\xf6)\xc6S\x00An\xacU\xa3\x98\xb5\xd5\xa3\xa8\
+_\xf5c\x951\x00\x10p\x943`\xac\xf5\x80a\xe0\
+\xdf\x01\x0d\x0eh@\x91y\x92\x99\xb8\xcaHc\x16@\
+z\x8d\xa3\xcf\x97\xe14\xaf\xccC\x81\xbd\x83\xcc\xab\xf5\
+9\x8a\x04\xaa\x19N\xc4\xbe\xd4\xf4mx\x0e\xc6\x91\x12\
+\x85\x82\x96\x0eJe\x9eQ\xe2|\xbe@\x19\xc5]F\
+\x22\x01\xc0\x02\x02P$m\x94\xf6\x09\x19D\x19g]\
+\x22\xac\x1fj\xc2j\xdf\xec_\xb4\x03\xf2\xb5\xfa\xd9\xab\
+\x9d\x12\xe0gF\xb5\xe6'\x87F\xe0\xbf\x8a\x13-H\
+\xb5\x038\x1d\xa3\x9a\xffj\xd2S\x1d~\xf3\xa6\xb0\xae\
+\x7f\xbdn\x05\xa8\x90\xda\x15&\x15R\x00\x0c\xe9\xad@\
+-\x03\xff\x0a@\xb5\x93\xf2<\xfe\xbcY\xa8_\xcf\xd6\
+Q;\x950\xa95\xd7\x0e\x8a\xe3\xa9\x1b\x81\xeb$\xf6\
+\x84y\xf1\xc4\xec\x0f\x8e\x22*\x80\xcc\xe7X%\x04'\
+/\x07S\x1d\xac\x80I\x8c\x8a\xcf$\xf2\xcdq\x92i\
+P\xe2\x90\x8e\x5c\x01b\xd4\xdd9\xca\xd9\x87\xbb\xd4\xd9\
+\x01C\x198\xcfn\xf5\x9f\x87c\xcd\x91\xab\x1a^T\
+\x5c\x8e\xed\xb0\xdeKM\x1b\x85P\xcd\xa9\x0c\x83.\x09\
+4N\xd4\x9ag\x1f\xf7\xcd\x9f\x87\xad\xed\xcb\xcaq\xc6\
+\xd4\xd1\x96*\xdbH\xd5\xf7\x18G\x8e+\x80\x11@%\
+\xe0\xe5\xa0\xe5>\x86Y0\xbdb\xb6\xe8:\xb0\x9dm\
+o\xcd\x94\xfa}e\xe8\x22\xdf\x12\x99\xe2\x17\x84\xcd\x1f\
+\xf7\xec\xb0\xae\x84 \x19$\xc5\xc4Rc\x9f%'%\
+\xde\x9a%6\xc4\xc9\x0a(w\xee\x02\xac\x9c\x97\xc4\xd9\
+\x883\xe6z\xa96}T\xf4s?\xab\x8c\x1c@\xd3\
+\xfe\x92\xa5\x03\xf5\xfdY\xeb\xbe\xef\xf5\xcd\x8aQ4}\
+=l\xfe\xf9saM\xad}\xb6N\x13%\xf7\xdb\xcd\
+\x97\xc3\xe6\xcf\xb9f\xd8\xban\x8a\x92\x9c\xcc\xb2\x12\xf9\
+J\x06\x80uM\xab\xc0\xfe\xb4\xf9\xf8l\x1f\xeb\x1c\xd4\
+\xb1f7\xf7\xef\xe6'}'\x81\xe2\x0b5\x80\xecy\
+-`\xcb\xcf/\x87\x16\x93%\xd4\xd5\xef\xb8\x9es\xd3\
+s\xc32\xa09|\xedV\xb2\xdb\x0b\xebj\xd0\xb3d\
+F\x17\x055\xd0\x9b\xbd\xb0\xae\x8f|2\x14\xa6\x0f\x86\
+\xb5\xf6s\x8b:<FSvM\xd9\xfcF\xd8\xbao\
+\xc9`W\xd7\x86\x5c\x97\xd4\xfeK\xa4\xf2\x0f\x97\x8c\xb8\
+s\xca~\xa5\xc4c\xba\xdcl\x97\xef\xc45\x1f\x16\x96\
+\xfb\xf1\xcfw\xc0g\x06\x9c\xa8\xda\xdb\xaf\x86%c\xe0\
+\x84\xf9\xb8|\xc6\xde\xd1{\xcfh~\xe9Rr\x9a\x14\
+\xf7\x03o\x0b\xeb\x80\x02b\x93\xe6\xe5\xa0\xca\xcd\xef\x9e\
+w\xb3\xcb\xee.\xdb\x80\x81\x8b\xef:\xf1d\xa5\x1c{\
+\x8f\x0e[EI\xb7w\xd9\xdey{\x97U\xa4uz\
+OXW\xd3\xfdk\xd9\xb6X\xa0\xc9\xdf\xa1\xad`\x9e\
+\xbd*KU\x88B\xe6\xf9Ym\xf9\xac\x07\xda-\x18\
+f\x02\x16\xfb\x86\x9a~@}\x06\xf8\x00\x88b\xd0\x09\
+TQ\xfc\x01\x0c\x18F\x808}\xee\x05r\x98Y\xc9\
+x\xab\xf6x\xfcp~E\x8a\xe5\xd5>\xab6>E\
+P\xa7\xe3\xc3\xe6\xcf\x99\xc2V?\xa6\xba\x93\xf0\xf7\x13\
+\xf8o\xe2\x97\x0f]\x81\xbcjS\xcdOv}\x00)\
+\xe3\xec\xfc\xd7}e\x14%\x15\xf8\xcb4\x0b\xe4\xa8\xfb\
+\xf3k$*%\x88\x9c+\xfc)~y\x8adW\xc0\
+&\x00\x14\x10*\x81\xf9\xeb\xa1\x0b\x84}\x8f\xe6\x90\xb6\
+\xbd\xf6\x7f\xa5\x8f\x02\xf2\xdc\xd7\xaa\x14Af=\xb56\
+\x0eR\xab\x1fk\xf4GM/\xfe\xffP\xe2Y\xafC\
+\x09w\xa9\xf8\x1bG\x01\xbd\xf7\xf3?\xc76\xe9\x02W\
+\x81\xf5X\xda!`\x05\xac\xf0\xcf\x94L\x02\xaa\x88\x18\
+Z\x07\xee\xd7\xf3\x90\x81W\x02\xe9\xf7\x02w\xfe\xc9\xa8\
+- >\xe4?\xf2\xa7=\xbf\x91A0\xb6\xc9\x1e5\
+\x0a\x86\x00\xfc\xa0\xee[\xd6\x8d\xcf\xcbq\xda\x1c\x16\xb6\
+\x02_\xfc\xbc\xd2\xce\xc2\xc0\xe3\x97\x12i\x07Tx\xee\
+\x12d\xf9\x5c\xf7\xd7DC\xfd\xa0\xe2\x7fF\x22CJ\
+\x03\xd6\xfe\xf5g\x15E\x00\x04\xb8a\xff\x19H\xff.\
+\x00\x1e\x99\x05\x87\xb6\xc6i\x8b\xa3xr\x06\x5c\x97\xed\
+&\x98\xbf\x07P\x0c\xfd\xcc\x0b\x19\xf2}(\xc3\x83\x98\
+C\x01\x13\x10\xb2\x91r2\x8a6|5\x1f\xac@i\
+\x14\xef\x1b\x11\xad\xb1\xef\xba\xfbs\x1f\x90+\x0f\x00B\
+(\x13)\x00\xe18\xb9\x0f\x0b\xd1\xfd\xf9\xbc\x1f\xe5\xe7\
+\x9d\x9a\xcfC\xdf\xd0\xf7&U\x14\xd5\x5cM\xd5H\xdd\
+3\xa1\x896\xfdW\x06R\xc4\xcc\xc6\x0d\xeery=\
+\xc6\x8d\xc3G\xd4\xe9\x8bY\x92!`\x06\xd9\xc8$\x5c\
+=\x03\xb4{df[\xe6\xd4\xfdB\xe6o\x98\x01\xed\
+\x8d\xa2cq\xa7\xea\xca\x91\xb6\xd09\xe4jQ\xdf\xb5\
+\xb4\xe3\xa9\x8dg\xa4\xf8\x1d\x1d6\xbf\xef\xf7\xc3:\xed\
+\x06\x8e\xf6\x15\x13\xd1\x15\xb0\x1f\x91\x01\xf5\xf5\xf3}6\
+\x1e\x01;\x04\xd6s\xb7`-l\x00\x81\xc0\xd4\xf3E\
+\x85u\xf0b\x06(eA\xf97\xcf03l\xcc\xe6\
+\x7f\x0f\xa0\x9d\xbf\x9b\x17\x9e\xaf\x0d*\xe7-\x8d\x86\xaa\
+uv\xdf\xae\xd7su`\x8f\x9a\x01\x98\x1c\x0eH\x1b\
+*\x910\xe2>\x09L\x14\xa3'3\x062i\xf5\xfd\
+#\xd3\xc8\x019\x00i\xd5\xef\x16\xe5\x90\xb6\x80\xe7\x00\
+HH*|\x89\xb7\xa1\x1e\xaa\xe9\xe7\xc8\x10\x91\xa4\x9a\
+n\x1e\xdbg\x1cT\x0eD\xf3\xd4\xf8s\xe8\x05\xe6\xd6\
+\x97}TF\xff\xae\xcd\xea\xf7\x05\x0c\xa4C]\x9a\x01\
+\xc4[\xec\x07\xe6\xab\x80[\xa6.\xfbt\x170\x05 \
+0\xaf\x13\xa0)U~\x80\xab\xae\x16Y\xb3\xbb\xfbA\
+\xd8<].\x18\xd6e\xfa3\x10F\xdd\xd5\xfem\xf3\
+\x8fa])@\x96 T;\xbct\x0c\xb5\x0d3\xbe\
+\xd5\xb7=\xbfo\xf3\xc5\xb0\xce\x01:\xb14-Z \
+0=rz\xf8\xf4\xf0\x1c\xd79\xb0\xd9\xbe\x22\xac\xcb\
+\xfc\xca,\x01\x88\x92\x1a\x18\xcd\xb6Z\xdb3\xb5\xf5\xcf\
+h\x5c\x85\xca\x846\xaa\xee\x81U\xe3\xc0\xfe\x5c\xaa\xf7\
+4\x1b\xb2\x96\xbc\xda6f&\xb42\x92\xe6cR2\
+\xab\x9d\x1e\xa6\x02\x07T\xc9\x11\x91\x9eG\xef\x1e\xd3\xa8\
+\xae\xe9\x10N\x97\x99m\xfe\xdc\x03?\x99\xed\xa7\xab\x06\
+B\xdb\x05\x8e\xec\x006\xc0L\xf6\x15\xaf\xe7\xc4Q\xc7\
+\xac\x88\xeb\xb9\xc8\xaaeR}\xd7e\x003\xe3\x0c\xc8\
++\x80\xd0\xb9\x98\xb5\x952\xef\xf6\x09\x99\xe5\xcd3\xc3\
+:\xe6\x81\xfb\xca\xcce\x01NT\x88\xf5/N \xa5\
+Jpr=\xec\x1e\x17\xd6\x05\x98\x00M\xe7,G\x08\
+`\x95\xb5\xbd\xf5\xef\xe6\x9b\xee\x1a\x8f\x0d[\x99\x0a\x1c\
+ \xda\x185OQ\x9bed\x89\xaa\x01(\xfd;\xc7\
+2\xb5\x83\x0a\xc0\xfaq\x83\xd2WG5\xa8\x9c\xf3\xf9\
+\xb2\xdd\x9bm~\x0e\xd3\x9f\x87\xad\x01)?c\xf3\x89\
+\xb0\xb5\xed\xe1trX>\x9f\xe7vm\x94\xb5O\xbb\
+_\xb35p\xe4\xc8F>\xfa9\x19\xf0<`\xcd\xe0\
+\xc6\xaa\x89uS\xa2\x94(\xe2Y{?\xfdMX\x97\
+\x01M\xb1\xd0V\x12\xf0\xf8u\xbf\x9a\x1e\x13\xd6\xb5\x99\
+\x03\x04\xfdN\x8a\xeb\xd2\xee \xde\x8b\xf1\xe1<Sb\
+\x97\xe3Y]I\x92\xd2>\xfd$\xacc\xc8q\xd4\xf9\
+o\x09\xfcL\xef\x0f[3\xa2\x18T\xb5\x7fEW\x83\
+\x9bw\x8c\x8e,\x15\xd9>'\xac\xdb\xbf\xcf\xb3\x8ck\
+1b\x22l\xdf\xad\x8c\x84\xe9\xa7a\xf3\xe7\x5c!\xac\
+\xeb\x06\xe0\x1c@\xa5\xbdm\x02~\x01\x9b\xfe\x5c\x0b \
+\xdb\xbc\xd9=`y\x0e(\xbc\xdb\xdf\x09\x9b\xaf\xf3\xfe\
+a\xf3\xcf\x17\x09k\xc0\xc5S\x1ap\x91\xc0\xee\xf4\x9f\
+a\x1d\x80\x93\xfbV\x01t\x18\x8d\xe7?kw\xa8\xe9\
+\xd5a\x9d\x7f\x95@F\xf9\x15\x80i\xe7vv\xad\xa9\
+\xc0?\xbbsT\xa6\x9e\xbf\xe5\x9c\x128\xd0@\x01\x10\
+c\x18R\xbf\x07\xccY7\x18C\xfc#~\x8b\x00Z\
+@Hd\x92_\xab\x9b\x08\xc0\xc0y\xab\x942\xdb;\
+\xd3\x9e\xa9\x80\x1d\xc0\x8c\xa1\xe1y\xd1\x02\x01\x08\x0a\xdc\
+\x89\x5cSK\x97\xc9u]\xee\x93_\xce\x1fRK\x9e\
+Z$\x05\xc0$0X%H\xe6\xafn4\xde\xcf\xaf\
+\xe0\x0fH\xc8\xd9\xdf\x9d\xf7\xfe\xde\xef\x01\x94\x9e\x7f\xae\
+\x7f\xfeT1\xee\x22*\xfb^+%\xf9\x9b\xa6a\xa2\
+6\x9e_\x8b)\xc5\x0f\x1c\x13\xa2\xf6Yq\x89\xff\xf8\
+c\x83\x98y\xf9Y\xa9-qP\x977~7\xffP\
+i\x0a\x8a\xbb\xef\xe7O\x0e\xed\x09\xebs1\x80}\x9e\
+\x00\x1a\xa0\xe1\xef\xc5'\xfcX\xf3\x8d\x9f\x8a\xe1#\x03\
+\xcf\xbf\xe5\x7f\x88\x0f\x87\xae$\xc5\x00\x00\xe0\x8a\xf3\xf8\
+\xd7\xe2X~\xff\xf8_!\x87\x83\x96\xdb(\xee=j\
+'\x18o\x09N\xa5\x02\x03\xa3\xb44R\xde\x1c\xd6i\
+\xb9\xd0\x22\xf3\xbc\xccs\xd7\xed\xb9\x03,\x0a\x00\xa0\x01\
+\xd0\xab=\x9e\xb6\xb6\xbb\x89\x8a\x91\xa8\x19\xa9\x0c#\xc7\
+\xf2\xec\xc4\xcc\x0e\xc9\x0b>m\xadI\xab\x1ak*\xc1\
+\xde/\x80\x11\x08\xa0\x90\xa2$\x13Q\x1bK\x0fFj\
+\xf2\x80\xec\x94\xc8\x9e\xfb9'5\xc7Q\xd5qP\xc3\
+,\xb1\xb2\xeb$\xb3`T\x87\x84\x0c\x99@\xe3\x00{\
+\x00\x102\xc8\xea\xa0\x92Y\xd4J\x81\xfeH\xf9\x10`\
+\xa3\x14g\x1f\xe9\xda\x98\xbd\xda\x80\xc7\xda)\x00\x83\x0d\
+\xe9s\x05\xcc,\x13\xe3\xb0\x1a\xd7E\xa4C`r\xe3\
+\xcc\xf8\x0a\xd0\xdd\x8f\x8c\x10J\x93\x0d\xf8\x87\xb9\xa1\xd8\
+\xe0\xaf:\x88#]&3\x8f\x027\xed\xf8,<\x14\
+\xf7w,\x22H\x8d\xe2\xfb\xa9.\xf3\x9a\xa5\x03\x95I\
+M\xb1>\x99\xf1r\xb8R\xed\xb9\x18\x03\xb9\x01\x97\xb8\
+\xdf\xaf\xa6\x03|\xb1\x04t\x5c\xcfU\xb2\xcd\xde\x1a\xb0\
+/\x19z5\xad\xc6\x97\xc3\x83:g\x03r\xdf2\xac\
+c\xfb?\x07#\x04\xdc\xebXr\xe0\xf7\x80\x17\xeb\xcc\
+\x86i\x9e\x01\xaa\xa8\x91\x0a\xf0\xad3\x7f72n \
+\x91\xae{@\xfeK\x9d\xda<v\xf0:x\xfc>\x9f\
+{\x01\x17\xfa:\xab15\x8f\x1d|\x90\xee\xdc\x17J\
+\xec/\xa9t\x15\xf0\xa2\xc2\x8d*\xa8\x00+\xbf\x07\x18\
+\xa0\xb4;h\x04j\xe9pQ\xeb\xd7\xd6\xae2|\x1c\
+!\xfbS\xf6\xc7\xae\xcfs\xe0'pP\xc0!FJ\
+:\xb25\x1f\x9f\x14\xd6i#<a\xc9\x94W\xa9\x82\
+\xfb\xca\xfd\xac\x80\x0c\x01.\xe4\x97\xc3\xa0\xcfkf\xc2\
+\xab\xdb\x83\x8c\xbfL\xbd\xb6fY\xc3Z\xda\x17\xc9\x5c\
+\xa8vE\xda\x1f\x1d\x17\xb6j\x0a\x08\x18\xabF2\x03\
++\x19\xae\xed\xe7\xc2:\x95\xffG\xe6\xe7\x99\xd7\xc4\x02\
+e\xe6r^\x15\x92\xff\xbcfk\xc6\x9dc\x82\xd5\xfb\
+\xec\xe59\x1c\xf8\xaf\x03'\x1d8\xa9\xa9}\x9f\x12j\
+\xdf\x00\x8d\xcd\xc7\xc2\xba\x83\xd8y\x905\x81\xd3\x0b\xc3\
+\xba\xf6o\xa9J_bt\x18\x04\xc4\xffd\xde\xf4\x83\
+\xd6\xe7\x9bh\xdd?.5\xe1\xbb{\xef\xfeg\xb4e\
+\xdc\xdd&\xac\xdbG\xf3\xb5\x0eh\xed9_\x1b\xb6R\
+\x80[\xdf\xf1\x87\xaf\xcc\xa8\xe6\xe0\xcc\xebf\xfa\xd8l\
+\x1f_\x03\xc9\xcd_\x86\xe5\xfa\xbfB\x97\x19\xcb\xf9\xd9\
+\x9e\xe3\xef%E\xfb\x01]\xc65\x9e\xff\xebS\x03\xe6\
+\x87\x9d\x0a\xb7\xf3\x88\x83\x91bU\xbb\xab\x87\x1ey\x07\
+d\xe7\xfbZ\xad\xf8WS\xdc\xec\x91\x99\x99?q\xfd\
+\xdc:w\x05\xec\x18\x00\x8f\x09\xeb\xe6)\xaa{\x96b\
+T\xf7\x0cb}2\xf4\xd9\xf6\xb12\xaf\x1cF\x19l\
+\x99\xb6\x0c\x18\xaa\xbd \x80^\xf7\x165\xb2\x99\x01\xa4\
+eQ\x19t\xa5#\x19 \xd5\xfb\x88\xc8\xe6>\xbd\xf9\
+|\xd8\xba\x0eK\xcc03\x9d-\x80\x8eR\x8a\x9f\xce\
+vf\x02!\xb7\xcasb\xde\xf7\xa6\xaf\x86u\xe2\x8d\
+\x09Xl?\x16\xb6\x9e'\x9b\x7f\x0e[\xd7\xc9t\xf3\
+\xb0\xb5\x86\xdc\xf5*\x15\x00\x00\xb4R\x83c\xd6\xf1\xd4\
+\xce\xb1\x05\x90s\x807]<\xacsLs?\xad\x00\
+3EE\xa7w\x87u\xe7\xcc\x8b\x9aU\x00\xa6\x0bI\
+\x01\x88\xb4*r\xff\xb0\x7fU\xa9\x8b\xd2#\xfb\xae\xae\
+8)&\xc9\xff\xd8<=l\xfe\xfc3f\xfb~W\
+\x92\x84\xc1\x13\x0c\x8d\xcfw~@\x06\xa4\xd3o\x86u\
+m\x04\x05\x0a\x09dM\x8f\x0b[\xe7\xf3\xf6\x1ea+\
+si\xef\xc9{O\x0a\xaa\xfe\xbeW-m\x13\x1b\x93\
+cv\x90\x0f<8\xac\x95\x00-\x99\xf8\xc7.L\x02\
+\x8c\x91j\x1b'\xf0\xfc\xce\xe2\xefM\xb7\x9cn1E\
+\xad\xfbu\xc2\x1a\xd5yQ\xd1\x8f.\xf4\xc1\xdc\xbal\
+p\x05\xe6\xeb\xb8\xd7\xf6\xde\xdb{%S\xea\x89\xeb\xb9\
+\xcf\x7f\xc3|\xa9v\xb1\xc9\xac\xa8\x92\x94\x5c'\xf5>\
+~Qj\x10\xd5\xfb\xf8\x03\xfc\x13\xfe\x87s\xd2~\xa7\
+]`2B\x04\x98\xb4B\x00\x16\x05<\xa4\x18o1\
+\x14\x13\x18\xdb\x1d\x1f\xb6\xbe\xaf4XP\xec\x130\xaa\
+\x921\x0c\xb8\x81\xaa^\x8c+\xc0\xa4R\x04\x0c\x01L\
+H\xf7\xc5\x1fOF`1h\x88\x0a\xd2\xc6\x91\xd9\xa7\
+\x09\x90\x0c\xddb2`0\xd1F\x90\x10HFZ\x9d\
+W\xfcn@\x80\xd2<\xa2\x7f\xc6\x95\x1f&\x10\xe4o\
+\xfa\x19\xa00f\x96\x95*}`\xf7\xc1&j\xf7\xf9\
+\xe6\x91\x97\x1f_\x8cb\xfe\x9f\x00\x90\xa6\x81Zxq\
+\x8b\x80w\xecZ6\x00\x19\xa3\xf8\x5c\xd5\x96\x8b\xa3d\
+\xd8\x05\xa2\xe6\x91\x04\xa7\xfb\x05\xdc\x89\x83\xc6\x04\xb0\x00\
+\xda\xbe.\xe0\xe5gjG8\x02\x08\xde/Cn_\
+q\xfd\x00\x1d\xdao\x87\x84u\x81\xb6ye\xbde\xdc\
+Z\xed\x09\x8d\x93\xfb\xf0\xbd\xee\xcf\xcf\xa7\x9eU\xf3\xa0\
+\x12\x5c\xe7\x09\xeb4D<W\xe3f\x1c<\x07\x80\x9a\
+W\xef\x1b\xa8\xf8\xc5\x9c\xc8\xbf\xdb\x9c/\xac\xfb<\x01\
+|\xfaY\xa5\x95\xb6?\xac\xdb7\x8d\x9f\xef\x13g\xfb\
+o|>\xf9<\xf6\xd7\x00x\xd5\xde\x0fB\xb4R\xe4\
+\x97\x07>\x8a\x88\xf9;\xc8Q\x02\x07g\x11\xb9\xfa~\
+\x17@\x1e\xdeH\xd3\xa0\xd3\xc4\x00\x00 \x00IDA\
+T\xe1\xab#7f\xcc9\x1c\x90\x13\x13tU\xb9_\
+2\x0e\x1e\x98\xc0\xc6\xe7\xa0F\x8d}\xcd}\xde\xf8\xf3\
+\xf8\xba\xaa\xa4\x9fU\x84\xd0\xeb\xa0\x9a^\x0e\xff\x8d3\
+cm\x03\xb3\x80\x5c\xaf\xeb\xf1\x9f\xc0\xdd\xb8\x9a\xf8\xee\
+c\x9c8~oB\xd8XG\xad\x81C\xf2{\xbdz\
+N\xdf\xa9\xcc\xe6Y\xd5G\xc7\x00\xf3\x12\x19\xa8\x8em\
++d\x22\xbc\xcf\x82\x92\x91\x1c\xd5\xdb9\xa0D\xf7\xbc\
+?\x0f\x96\xcd\x9d\xb3f^\x1b5j\xe6\xcf\xccZ\xe3\
+\xa4\x18\xd6}\x9f\x985EI\xbd\xacya\x1e\xd90\
+s\x83\xdf\xfc]X\x17\x80\xde-\x91n\x9f\xe7>/\
+\x9d\x01\xdd\xc8\xd8\x18D'k^\xe5sE\xb1-Q\
+G5a\x0e\xba\x91!\xe09\x0a\x9cr\xden\xce\x1b\
+\xd6\x8d\x9b\xe7\xee\xf9\xc88\xa9m\x15Hr\xf8 \xa1\
+\xda\xea\xd8\xb0\xae\x13\xd6m\xe8\x80$\x94{\x99k\x1b\
+\x02\x80\xc8\x86;\xf6M\x07\x5c\xe9\x96\xf0\xdc\xb0\x0e\xb9\
+6\xaeT\x96m\xd4\xda\x08\xda\xa0\xcdG\xf3\x1d\x12\xae\
+\xc6;\xd5\x99\x8b\x89\x91\x19Y\x81w\x89z9(\xdd\
+? 0kQ\xabO\xbc\xda\xcb\xb5M\xd1\x22\xe2\x97\
+\x8eW='Te\x815\x11?j\xc6Yk9\x87\
+u\xb3u\xf3\xc2\xba\x06x\xf8\xd9}\xfa\x8f&\x02m\
+\x0a]&\xf4\xc35\xdf\xd5\xf2\x03V|\x0f\xa0\x80\xa3\
+\x97\x88w\x95:\xa0Lj\x0b\xc8q\x7fv\xd8\xda\x17\
+\x5c`#3*\xa3V*\xed\x09\x5c\x10\xbb\x12\x90\x95\
+(\xdf\x13\x17*n\x13\xb9\xbbd\xd7\xae\x89\xa3\x84\xaa\
+O\xad\x9eH\xda\x1b\xc2\xd6u5}(lm\x9b\xb7\
+9aQ\x87\xdf\xdee\xb6\xa3\x1au\xb9e\xae\x8a\xf2\
+\x9a\x8c\x99\xcd\xbd\xc3\xe6\xbf\x7f[X\xb6\xa3;$3\
+\xfe\xbf\xbe\x06p\xe5 (U!N\x96\x8e\xde\xee\x8e\
+ak&\x07Sa\xfe\xde\x85Q@\x0d8)\xb62\
+\x14\xd55\xe16a]f\x0b@\x88\xca{\xdb\xddm\
+v\xb7]\x1d\x97\xe9\xcda\xf3\xf6yZ\xd8|\x9f\x8d\
+\xab\xdf\xed\xdf\x91?\xbd[\xaaf\xdf\xba\xab\xb1&\x9a\
+\x9b\xc8\x7f\x0b\x1co\xb12\x03Z\x9e\xef\xb9]?v\
+\x0e\x16\xa0\x96\xea\xbc\xcc\x12\x00@f\x88\xcaw\x02\xba\
+Uc\xee\xfe\x9d\xbb\xf6]\x0c\x9aT\xab\xe7h\x13\x0f\
+,\x07)\xcf\x89\x9a7\x98(\xc4T\x01\x822\x1b9\
+O\xec7\x18$\xf5{\x00}\xae\x0f\xaa\xf1\x9b\xa7\x86\
+uL\x1fL\xa3,\xed)\xc7\x1ee\xd69n_N\
+fI\x95\xb0\x98\xcf\x09\x5cW{J\xb5\xd1\x02\x89\xbf\
+X\xda/6\xb8\xf0#\xf9|^9?\x9f'\x87\xad\
+\xebS)\x856\x87M\xf4\xf1\xf2k@\xaf\x1b\x83\xda\
+dby\xd3\xb7\xa2\xb1\xddZ\xeb_\x22_\xe7n\xaa\
+<k{D\xda\x09Jx\xac\xd7\xd4`\x00\xa0\xec\x0e\
+\x0f[\xb5\x06\xea\xef\xb4\x0f\xfc\x83\xb05\xa3[\x01\x17\
+\xa07\x01\xaebXe)@\x05\x8a\x80z\x19\xf7\xac\
+\xb1\xde\xbej\xfb\xea\xed\xab\xdb\xf75\x11\xbc\xe9\xf4\xd9\
+\xbe\xbb\x02\x17\xd3\x11\xd3\xd5\xa7\xab\xb7\xb6\xbdK\x89N\
+\xb6w4o\xa6\xdb\x86u@\x1em\x06\x1a\x0bY\x12\
+T\x94w]\x0d>\xb0\xf9\xe0f\x0e\xb0\xf6\x9e\x19\x96\
+m\x83\x7f\xa9KxD\xef\xab\x93\xdb\xf3}y{\xbe\
+\xf7\x5c\x98\x89\xd6i1a\xb2\xad)\xe0t\xf3\xc6\xb0\
+\xd6\xee\xb0\x8d\xa7\xc0w\xfb[\x8bH\xe1\xde'\xf6>\
+\xb9\xf7\xc9&*y\xa3\x10\x95\xac.%9\xff\x88\x8b\
+\xce\xd7\xf7\x81\xb8\xbe\xdd\x99\x8b\xd8\xa7\xee\x02\xbbk\x85\
+u\x01\x92W\x81\xa7RN\xdd=\x9c\xdb\xd6\x87\xfdD\
+\x82\x22\xdb\xf5U;<Z)\xa9\xa5\x84)Rmw\
+1\xad\x88\xb9\x11\xe5\xc3\x5c\xc3\xb4\x13\xf8c\x02\xd1.\
+\xb1/\x09\xc8\x95\xd2\x01\xe0\xf97J\xb3\xb2\x9d\xad\xee\
+%\xb4J\xb4y\x064*e\xa9R\x9a\x13\x9a\xad\xf3\
+%\x99`\x80-~e]_\xd6JW\x97\x9d\x04\x1c\
+<\xd7R\xe9\xe7\x07\x8a{0\x05\x04\xbe\x12 \xfc{\
+\x80\x1a\xc6\xd3U\xc3\xbaR\x0e\x09\x05\xf1\x0f\xbfZb\
+\x83\x7f\x85\xb2}l^\x8f\xc4\xd9Or\xff\xe5G\xfb\
+<\xfbd2\x0e\xcaO\x92\x80\xe2_\xf1\x1f\xb5\xc3\xe3\
+\x97\xa8\xd1\xe7_\xf07\x05\x9ec\x86{\x14/v\xfd\
+\xde/\xce\x01t\x88\x17$\xa8$\x84%8|\x9e\xbf\
+\x17\x7f\xb9n\xe35\xc4Y\xc5\xfc\xc5\xf4\x90\xd1w_\
+\xfc\xac\xc3\xc3\xba\xe7/ad\xbd\x88{\xc4M\xae\x7f\
+\x5cw\xbe_\x97\x1a\x09\x0c@\x82\xf8mdT\xf4\x22\
+\xfa\xbb\xb3\x11\xc5\x1f5\xdc\xf8\xcdJ~\x9c\xbb\xe2\xa6\
+L\xe0l\xbe\x14\xd6i\xa9\x88\x1b<\x17q\x81y:\
+\x02\x0f~\x9f\xe7\xff\xfe\xe6\xb6w\x19\xf8\xaa\xf9\xd7\x86\
+\x8f\xba?\x07\xf7@\x8aE\x9c\xder\xc6\xeb\x83\x1e\xd5\
+\xb5!\x10I\xf1\xaf\x07\xfc\xed\x16Z\xaf\x7f/\xd02\
+ >\xdf\x00\x8e5\xc61\x5c\xd3\xc1\x81\xb1\x8d\xa4\xa8\
+\xd5c[=\x81\xab\xcf\xf3\xbd\xaek\xcc\xf0\x7f3\x03\
+\x0a\x81\x8c\x03\x18\xe0 \xf0\xf0\x0a\xb1\xe2`\xb9>\x13\
+S\x80\xa8v\x9bx\x05*#\x87\xdf\xf8\x8dH\x8e\xf1\
+\x1f\x17\x1c\x8a\x8c\xe7Gd\x09c\xe0\xb0\xa5\xcfs\x01\
+\x02j\xbb\xbf\xbd8\x8a\x9b\x0b\x85\xad\xb5\xfa\xb5\x11e\
+_\xe2:xm\x80\x16\xb8\x83F\xfb\x1fTI\x1b\xa3\
+\x0d\xb4\x9f\x07\xf1\x9c\xce\x08\xeb\x16\x98q\xf8Ri/\
+,\x8c\x8b\x9c\xa0\xd5\xbe\x05\xa5\xfe!\x8bXL\x1d\xac\
+>\x070#\x10A\xad\x8f\xf6F\xef\xed\x02\xd0\x03C\
+\xbfzm\x0b9\xacj/e\x88\x88&\x02\x86r\xfc\
+k|\xc7\x8dwl\x1b2\xb6\xcb\x1c)U\xee\x9b\x86\
+\x85q5o\xad+\xed\xbe\xd2\xc1+\xd1A\xdfk^\
+z\xbe2\xcfy\x90\x16\x03\xc1z\x1d\xfb\xae\x0a\x943\
+\xa3]\x1bdnh%z\xc9\xa1\x00\x108 W&\
+\xc8\xb2\x01\xfa\xd9\xf7\x0d\xda\x03\xc5X\xf0\xb9\x0eF\x1b\
+l:r\x02@\x94\xc0\xca\x1c\xa7CP\xeb\x1c\x02j\
+\x9e\x12\x15D9\x06<\xfdvXW;\xe69\xa3\xb6\
+\xca r\xf4\x89v%\xe5\xaa\xa8\x8f\xe9\x90\x15cD\
+-&`OF\x8c\x9a\xbc\x1a\xef\xa4\xae\x17\xa3@@\
+\x020\xe3\x98\x08\xa0s=n\xde\x13\xd6\xdd7&\x01\
+ *3\xde\xbb\xeb\x87\x9d\x8d\x98NR@\xdd\xff\xf6\
+\xd3\xdbOmc\xfe~8l\xad1\xab\x0c\xb4\xb6P\
+\xb9\xbe\xa6c\xc2\xba\xe7\x0a\xf8B\xd5\x16\x08\x9b\xf7(\
+\xaay@\xa9}\x9f.\x11\xd6\x98L\x8d\xd2\x08\x10Q\
+\x8b=\x9dk\xda?\xed\xb5\x80\xf8\x7f4Jq\xb4\xdf\
+\xbc\xee|\xbdw\x0f\x9b\x97\xe9g\xc2Vq0\x80\xc0\
+\xee~\xb3\xdd\x7f-\xfd\xd8\xfcd\xb6\x1fw\xe3\x82\x02\
+M|N\x9b\xac\x7f\x09\xeb(\xff\x02\xa6\xb0MWk\
+/\x90\xd4\x0f\x9b\xc6Bf\xce\x1ba\xf8\xd1+c@\
+\x9b6%K\x07\x0e=p\xe8th\xeeK\xd1e\xe0\
+\x83a]Mr\x9c3_\xcas\xe4s-C\xb58\
+\x90\x91\x9f|l\xee\x1b\xdf[\x9922\x95M\xca\xf0\
+\xa8\x0c\xb0/\xdb\xd5\x8ajog\x7fN\x91\xb7\xaa\x15\
+tn\xe4\xf9N,\xaa\x05\x86G\xac\x8eH\xcd\x83\x0c\
+\xfc\xb7\x17\x0b\xeb\x98\x22\xb9?\x0b\xbc\x05L%^\xa9\
+\x9d\xa5\xcc\xbe\x1a\xe4\xcc\x0c\x97\xe3\x93\x81E\x89\xd0i\
+c\xc8\xf1\x93\xc1\x02\x0c&\xe0\xbe;!\xaccr\x08\
+\xd0\xf4\xf9V2\x80\xf2>\x88.\xa1\x14O\x97\x0e[\
+\x1d\xc5\xedaa\xddz\xc8R\x09\xfb)\xf1\xc6\xb6\xeb\
+|1\xcf\xddK\xafT\xe4F1\x0f\xed\x94\x93g;\
+e-%\x99\xae1\xdb5;\x95x%\x00I\xd5n\
+%\xd0QR\xf0\x86\xb0\xf9\xf7\xdf_D\xech\x19T\
+-4\xc0\xc5\xb8\xa76\x80sxw\xdb\xb0\xf9s^\
+\x1e\xb6\xb6/\xc5P\xa9R\x83\xd7\x87u\xe7\x1e\xff\xe1\
+\x90\xb0\xb5TB\x89\xc3\xe6%\x9b\x17o^\xdci\xd2\
+<c\x01\xec\x95\xe0U{\xc5\xdc\x1fw/\x0e\xebJ\
+\xf7\x94\x0a\x04!\xfb\xbe\xf3\xe7\x1e\x1e\xd6\xd5\xb4\xaau\
+\xcd\x0c^\xa9Y+\x81I1V\xeb\x99\x08&fD\
+\xed\xe3\xf6\xa7\x0c|\xb7\x7f\x1a6\xff\xfc\xc2y\xd5\xbe\
+\xb0\x9d/\xb7j%-\x01\xa0=\xaf\x01\x88w\x8d@\
+\xd8>v\xe0?\xc2:\xd1O\x00K\xde_\x95\x00\xbd\
+05\x1a\x1e\x15\xd6\x02\xe3\xa5\xbb\xc4K\x97u\xd3\x9e\
+\xff\xc9\xab\x08f\x05\xc2I1\x9e\xbe\x1dP\xcf\xaa\x82\
+\xcf\x8f,\x86\x8b\xd2\x04~\xc0X\x92\x97\xc0K\x89g\
+*\x81\x91\x00\xc8@\xb2\xfe]\x86<\x01\x96\x1aoL\
+1\xb5\xfe\x02\x1aT{%\x1f\xb4w\x9c\x9f\x11\xf6?\
+weB\x94?\x07\x08HF@e\xdc\x9d\x0bc;\
+p\x9a*W\x0e[k\xf7\xab\xfb\x89@\x0f\x00\xa8+\
+\x08?N\x80\x0c\xe0VSO\x03\xc0~\xa8\x84,\xd7\
+K\x01\x9b\xfc\x07\xfb\x03Q;\x00\xa5\x8c/\x919\x89\
+\x15~\x15&\xa7\xf3\x9f\x1f$\x00\xc6\xa0\x14\xffD\x18\
+v\xf2\xd9P\xe8\x9d\x9f\x9fJ\x7f@ \xa84\xd0\xfa\
+U\xca$\x11\xa0T\x12\x803v\xfb\x92\x89\x17`\xf3\
+\x0fFJ\xbey6\x96`\x8fq\x92\xcf\xe1\x7f\x8b?\
+\xf8\xe1\xee\x1b\xb5\x1f\x03\xd0}\xf2\x0b\x07M\x9b\xf2\x03\
+\x01\xd4c\xad\xbdsKbo\x0c\xd8\xc7\xaeS\x98(\
+\xa3\x88\x9e\xc4\x97\xef\x1d\x02\xf5b\x10x\xee\xe6\x878\
+o\xec^\xe7|\xd2\xee0\xe3\xa7\x02l\xc4kc\xa2\
+\xc8\xabq\xf79\x02y\xa5\x08\xbe/\xf7\xb9\xea\x923\
+>G\xdf#\xee\xf4}\xe6\xe3\xd0m`\x7f\x0b\xab\x89\
+\xec\x08\xb4\x0ft\x816\xf1=\x1f\x04\x18\xf0\xaa6\xce\
+\x7f\x11\x86\x5c\xa0\x0b\x84=\x08\x81\xadR\x01\xaf\xda\x06\
+\x0a\xf0\xbf\xdft\xf1\xd7\x004\x11\xb5\xb3db\x0f\x0c\
+\xa2\x84\xfb\xbb\x80{\xac\xc50\xb1\xd5\xe8df\xa5j\
+\x96-\x10\x01\xca\xd8\xde\x10\xf5L\x8d\xe7\x8d3\x03\x0b\
+)Tc=\xf4]\xad@O\x80\xe6:m\x10\x98\x0e\
+\x0et\xd4{\x01\xf7@\xd5,G)\xdbx\xcc\xe1\xc3\
+\x92\x01\x95y\x1d'\xa4\xb6\x0f\xda\xf1\x1c\xc8\xf1\xfdq\
+.\x94\xb1[\xc0&\x17\xe2 \xceQ\x01\xa7\x00\xe1\xf0\
+\x0cP\xaf\x9a\x14r\xe3ka`@\xa8\x05\xa7)\xa0\
+=\x1fJ*\x91%\x144Z\x04OX\xc4\x84\xf6}\
+(3\xcbwX2\xce\x15\xe0ZP\x16\xb0\xbe\xce\xe9\
+\xf0\xd4Fe\x01\xa5C\x5cT[\xe3\xeey\xf8\x1c@\
+\xc5\xd0Nn\xf7\x96\xec[\x8b\xe1\xe0}\x02uH\xaa\
+\x80xh\xa78?\xaf\xd9Z\x9b\xc1\xd9\xba\x0d\xcc\x86\
+c~\xfd\xcb\xd2\x06\xad\x80&\x07<Q\x18\xc0\x91y\
+e\xa3\x18\xbb/\x0c*\xfc5/\xcc\x13\x07\xa0\xee\x1b\
+D\xf6\x8c\x87\xef\xb5\x0e\x12\xd9\xae\xcf\x91iC\xb1\xcd\
+>\xb9UrB\xacL\xa6\xda\xba\x1a\xfb\xbb\x02RR\
+\xf4\xa9\x9e\x8b\xc0\xd6\xbcPr!\x83\xe7:\x1c\x00\xc6\
+\xc1F*\xc3\xa5\xdf0\xf1\xc2\x9c\x972|\x9bw\x84\
+u\x01\x7f\xd6\xe06\x11\xaf\x8fw\xfb\x89\x0d\x15\xf5_\
+\xa6\xd7\xab\xe7\x93\xff^\x019\xea\xa5\x00f\xa0|W\
+\x8d\xb6\xf5\x22\xd3F\x0d\x19\x00\xf6\xdd\xb0U\x0c\xa8\xe6\
+\x07\xc7\xeeFa\x1deR\x86\x8e\xe8\x1dja\x02\x0e\
+{\xbf\x146\xbf\x9e\x14\xd69\xe6\xeeO_i\xd4}\
+\x1a\x0ew\x08\xeb\x1c\x1f\xedMuW\xb0\x0f\xa4\x83\xc4\
+!\xae\x9ax\x94c\xf7c\x1f\x94\xd9\xfeN\xd8\x0a(\
+\xcc\xeepkC\xb6;\x22\xc8\xeb\xf36u\xde3\xcf\
+w\xe6y\xd7\x00q{\x9f\xed}\xb7\xf7\x99\xef\xe3\xc4\
+\xd9>\x9c\xdd\x13^\xbe:\xdc\xa5\xee\xado}f\xa6\
+\xa7\xe7\x87\xcd\xef\xfbBXG\xe9\x95\xf1#\xa2F\xd3\
+\xc0zxm\xab\xb6\x5cK\xe1r=6\x80)\x18\x0e\
+\xc7\xcdvlj\xaf\x5c\xa5\xfb\xbeC\xa7\x16\xf8O\xb7\
+\x0a\xcb.\x087X5M\xa6\xe3\xc2\xe6\xbf?%l\
+\xfe\xf7k\x87\xcd?\xbf2l\x15\x19\xac\xee\x10\xfa\x9a\
+\xebW\xcd\xb1\xe3\xb0r\x10\x95\xc2\xdc4l\xa5\x00\x17\
+\x95\x9c\x03\x96\x94\xdfR#\x7f\xf6l\xd1\xb6\xed\x8da\
+]Mn\x06.%\x96'\xa3\x96\x81\xb1>\xf6E\xd5\
+\x94y!b\x95\xaa\xf0\xc5\xe8@\xcd\xbdh\xd8\x0aP\
+\x15\x10\xeb\xef9\x9c\xf6i\x99Hm\xdb\xacc\x0c\x07\
+\x19\x22\x80\x0f\x0d\x80\x1co\x99\x1c\x01\xf5\xf4\x96\xb0\x95\
+\xf12]3\xac\x13WU\x8a\x12\xe7\xdf\x85;\xd1>\
+L+\x89\x07\xfb\xd9_\x85%\xc3\xea\x1e]\x17\x90\xc8\
+\xc7^\xfb\xff\xd1u\x1f\xe0\xb6\x9dU\xb9\xf8\xf7Z\xe7\
+\x10\x08\x09BBob\x08\x10P\xe9M\x90\x1e\x8a \
+E\x05T\xda\x9f \xc5\x0bB\x08\x0a\xa2\x80\xa0\xf4\xce\
+\xa5)^\xef\xa5\x83@.\x0a\xe2U\xaf \xed\x02\x82\
+4A\x10)\x89t\x08 \x10Z\x02d\xcf\xf5\x9f\xe3\
+\x9b\xe37\xe6w\xbe\x13\xf6x\x92\xf5\xec}\xf6^k\
+\xceo~e\x8cw\xbc\xe3\x1d\xd9\xdes\xf6g\xf6\x7f\
+7l\xfe\xbc{\xcdv\xcfU\xa4\xb0\x05j\xefXE\
+\xf9\x00\xb2\xb5_\xc8\xe4\xea*\xa0\x8f{f\xf4e\xf2\
+C\xba\xae\x89\xd7e 6\xfdQ\xd8\x0a\x84\x96\x88_\
+\x8a\x9451\xb6\xb3\xd7@\xc6\xfb\x15P\x9d\x00\xc5\xee\
+\xf1\x0b\xe5\xba2Q\xef\x0f\xeb\xa8\xb7\xe6[d\xe6\x1f\
+\xb5fX\xa7;\xcd\xf6+\x1dc)\xf2\xa6WHq\
+\xd3G\xaf\xc0G\x9bm\xbf\x98\xe7\xe8Q\x9dX\xe5\xa3\
+\xc2\xd6\xe7]\xe2o\x19\xd8N\xb7\x0f[\x999\xdbk\
+\x85\xcd\xdf\x1f\xbb$@\x9a\x7f\xf6\xc5<\x87o\xd2\xa8\
+\xfaw\x0f\xaa\xfe\xee\xcaK\xc9\x03\xd5\xfd\xf2\xb3\xbc\xef\
+\x0f\xc3:@\xef\x9e\xcdj\x1f\x9b\xb6q\xe5\x0d n\
+]\x12\x94Fh7w\xe0\x1ea\xf3\xbf\x7f;\xacK\
+H8\xe7\x94\xba\xe6\xfa\xde^5l~\xdfW\x86u\
+\x01\xbe\xf3\x96\x1f\xac\xf6_\x00*\x00\xd6\x1e4\xc5\x15\
+\x8bi\x96\x9a\x06\xa5\xa9\x84I\xe0\xfcP{\xed<\xd2\
+\x9d\x89f\x08\xf1\xe2l\x87X\x9f\x1f\x05/\xef\xc9\x8c\
+\xec?\xae\x0c\xa8\xf2\x8f\xf8\x15Y\x22H\xbb\x84\x16B\
+1\xafr\x1f\xae\xf3Fi\x80\x04\x9b@\xd1\xb9\x91\x0c\
+\x84\xba^\xe7\x0fF\x22\xca\xbe\xf3\x9d\x16\x00\xd5t~\
+\x92@\x16\xb0$S\xcd\xbfp\x1e\x8e\xed\xef\xfc=\xbf\
+EI\xa5\xfd\xf89\x0b3k\xf7\xee\xdd\xbb\x1a\x93f\
+\x14\xc7\x1b\xbb3\xc9L\x0bP\xf9k\xf6u]6\x88\
+\x1a\xaby\x1f\x13NJ\x0f\xc6\xf6\xde\xee\x93\xff)\xee\
+\xe1O\x09\xa0\x07q\xbf\xc3\x98\xcc\x02H\x19z\x01\xe8\
+\xc8\x00\xe5\xf7\xf8<\x81\xfd\x90p*?\x98\xbf*n\
+\xc3\x8c\xf4>\xeeK`;\x06\xe6\xde\xc7uzN\xe2\
+O\xcf\x87(&\x00h\xac\x95\x17\xa7b\x0c\xf0\xb7=\
+o\xfe\xac\xe7e\x1c\x8d?\x00\xc4s\x19\x19\xc4#\xa3\
+[\x22\xda\xfas\x9f\xeeK\xf7\xa9,\x8d*\xe6\xaau\
+a\x5c]'\xbf\x1d\x102$Z+\xe1T\x00\xc0\x07\
+\x1b\xb9\xba\xfa\xdeV\xc6\xbe\xa7\x16_t\x15\xc5\xa9\x1a\
+t7\x14\xc3v\xa0s\x0c\xa9\xfa\x13\x7f\x8b\x0d\xf8\x98\
+\xcc\x80\x1f\xdf1\x0c\x5cXj\x06\xb4\xcb>\xf2p\x07\
+s\xbc\xe0\xca\xa4Z\xf0\xfa\xd4\x13\xf9C\x0d\xfeIT\
+\x7f\x13\xd6\xc0A\x86z1\xc4\xb3\xbb\xbf\x87\xecy`\
+\x1f\xcf\x05|\x91\x9c\xb0\x02\x00\x08&\x0a2\xb1\x16\xf7\
+c\x03\x19j\xa2\x0b\xa1\x1a2\xc351m\x14\x02O\
+\xaa\xdc\x00\x09\x80\x83\xf1\x1c\x17\x82\x0d\xd8\x84\x10\xe0\x12\
+\xe3\xb10\xfc\x9d\x89mc\x12\x08\xa3\x04j[r\x85\
+<\xb8\x5c\xef52\x00\xe10\xaa\xb5T+\xa8\xcd\x91\
+~\xd4T\xbbex\x05\x90\x02g\x08o^\xf7\xe6\xbe\
+I\xa5L\x8a\xf8\xe6\x16a\x9dZ\xf8\xaf\x85\xad\xe2\x87\
+\xf5\x95\x14\xaa\xdd+v\xaf\xdc\xc5\x81J+\x000\x83\
+\x99q\xa9\xa1\x14\x00\x22\x87\x0a\x07\x08\xf9\xf5\xcd]7\
+w\xed\x020\x0c\x0e\xf7k\x83\x1c3\xff2\xee\xc6u\
+D69Z\x09\x04\x94\x03\x8a\x8an^\xca\x5c\xe9B\
+\xa1t\xc2\x81l\xbe\xda\x80lH\xe6\xbd\x0d\x96*\xb9\
+\x1av\xa2}\xe69\xc6\x04\xc0\x80\x16\x88q\xb6\xb1\xaa\
+\x01NuR\x19\xd9\xc3\xda\xe1\x01\xb6|\x8d\xed\xd5d\
+\xf6\x8c#\xc7\x83*\xbc\xf9\x07\x10\x18\xa8T\xf5\xfec\
+\x97\x0d\x07\x18\xd1\x1ebf\xe69d\xda~\xe0\xbeG\
+\xaa\xb4\x03\xd7s\x1c\xf7\x09\xdf\xfb<\xfb\xa7\x0d\x9fc\
+\xf2\xc2fk\xa6\x84v\xc9\x93\xc3\xba\xb6c\x1c\x09\x81\
+\x0b\xf5y\xd7O<MfD\x8duf@\x05\x0aU\
+\x13\xfb\x07a\xf3v\xfd\xad\xb0\x8eb\xc8A\xa0\xeao\
+\x9f\xc5XP\xeb\xe9>\xa9\xd2>=\xac['\xd6\x1d\
+Q%\xfd\xeb\xb3\xcdX\xcdC\xe3\xc31\xa5\x1dA\xc4\
+\xe8\xf2\x0b\xa5r\xf7\xc0\x85\x01\xb1\xff\xd6\xfd\x7f\xda\x0f\
+\x15\xefG\xee\xff\xfe\xfe\xef\xaf\xf3~{\xff\xb0\xf59\
+\x1f88\xdb\x81\x04~\xfe\xbeeB\xae\xd7\xa8\xdd\xf7\
+\x98\x03\xdf{\xac5\x94M}\xfc\xd4lk\xf6\xb7\xeb\
+>\xd8\xda\xf2Em\x7fS\xd5\xe9\x1c6L\x0e\xcc%\
+\xe2ZI\xa5U\xd3\xbd}y\xd8\xfc\xfd\xd1a+S\
+a:\xfft\xd4t\xfe\xc3\xd5\x81\xa7\xf3\x85\xad\xe3\xbd\
+}_X\x07P\xc9\x10\xbf\xa0Y\x89\xb7\xd5\xfaM@\
+\xac\x98*\xf6\x95\x9c\x07\xa3Xje\xb2e\xa2t7\
+\xf8^\x8aI\x09\x5c\xa2\xc6\xfb\x9e\xddy)\xf0\x06\xa4\
+df\xad\x05\xee\x17\xed\xb4`\xec\xa3\xf6\x0f\xda7j\
+\x9fC\xe5\xfe\xb9\x9d\xe8Wf\xca+\xa0M\x00\xb7\x02\
+\x17\x80\xc0\xe8\x08g)O\x95\xe28\x7fdnR\xdd\
+}\xba\xc2t\xfct\x85\x8e\x99\x03 \xe3\x90%\xd3h\
+\xbaV\xd8\xba\x7fn\xff)\xac\x0b\x8c\x95\x04\x10\x85\x0b\
+\xa0\xbe\xeb+]\x14\xf4|\xff\x06\x04\xfdi\x96\xa6\x9c\
+7kG\xe3\xf5\x8c\xd9\xbe\xb2\x06l\xd3]\xc32\x80\
+\xb9D\x97\xf9\x0d\xc0\xe0y\xa9\xd9\x10j\xf9\xfb\x0bE\
+\xbc\xce\x95lWZ\x00\x00\xd1(\xeb\xf41\xcd\xea\x1c\
+Qk\xef\xfe\xa6\xd3\xc2:m\x84\xacuo\xfb\xcb\xad\
+: >5aJ\xf4-kP\x89\xb8\xca\xcc\xd7~\
+\xe1\xdcTC\x0e\x00Nq\xcaj\x0b\xf8\x99\xd9>\x9d\
+\x00\xc4kR\xdc\xf4\x81\x9d\x1a;\x06\xe2\x05g\xfb\xa9\
+n\xdd\xd2\x82\xb8LS\x13Z\x02\xb5\x8fu\xb5\xedQ\
+\x00s\xed\x14\xad|\xc6\x0a\x9cU\x09L\xc0u7\xca\
+u\x1d\x1a\x0d\xcf\x9f\xed\x05\x87tkxwc\x9ea\
+\xfc\x9c?\xac\x03.\x93\xd2]\xa2}\x09\x88\x16\x10\xf4\
+\xe2\xb0\xae\xab\xc5w\x17\x7fY\xe2\x05 ]]\x03h\
+\x18\xe5\xf9\xbd\xbd\xde\xf6\xfa\xdb\x10A|\xda\xd2Ub\
+\xfb\x87a\xad\x9d\xe0\x0d\xa7\x1b\xe6\xfc9\xa3[7I\
+\xa5\xaeR\x00\x00\xccH\x85\x97 \xe0\xf7\xd9o\xb5\xe3\
+\xcbuY\xdd-P\xa8\x9d\xc3\xf6i\xddu\xa8\x90+\
+\x8d\xd2}\xc6\xe79w\x95$\x02\x08s\xbf\xdb\x1d\x0c\
+\x9b\xbf?6\xac\x0b\x04\x13\xd0\xc48*\x8d\x1c\xa5\x0f\
+\xda\x0e\x9b\x8f\x03\xe3\xb5\xfcc\xcf\x93\xa6\xc7k\xc2:\
+\xaa\xfd\xa8\xbe\xceo\xe7w\x11\x9b\xb6o\x02\xd8h2\
+\xf0\x13\x05\x8c\xeeW\x89Y\x96T\x14\xb0i?\xe6\x8f\
+\xb9_\x81\x1a\xa0\xdf>*>p\xaeZ\xf7j\xc0\x89\
+\xa2b\xdeY\x7f\x12,\x12Q^\xf9\x83\xce\x1f\xfb\xf9\
+\xa8Zo<|\x8d\xb5\xed\x03\x95\xbc\x18\xbf\xc6\xd3\xfd\
+8\x9f\xcc\xbb\x91\x01\xea\xf3\xc4#\xe2\x9c\x91Q-\x00\
+\xe6o\xf1\xc3F\xed6\x01=\xb5{q\xa9xh\xd0\
+.+\xcd\xa7\x8c\x9bj_\xe1\x9f\x19w\x09\xc41\x80\
+7N\xba?a\x06\x1aO\xd7\x87\xd1i|F\xad\x85\
+\xb1\xbd\xb5\xe7J\xcc2\xcf\x9f\x8a#\x89\x83\x03\xd6$\
+h\x8c\x03\x80\xc2\xf8\xfb\xf2\xb9~\xee\xf32\xde<X\
+\xb5\xc5\x02\x8dcZ\x95\xd4:`\x1c}\xaf\xa8\xfb=\
+\x12\xd6\xb7\xbd\x93\x87\x17\x18DM\xcf9I\x19\xbbD\
+7 .\xe8\xec\xa6g\xbf\x06\xa0k{\xb6C\x03\x0f\
+\x81\xae\x05\x07\xd1\x1a)+\x06\xc4\xf5q\x8c,$\x0f\
+\x0e\x15\xf7\x12a\xddB\xf2j\xe0\x06\xf5\xc7\xca\xd4\x0b\
+\x84\xdc\xcf'\x0f\xa5\xec\x94c\x8f\xe2l\x02\xbbO\x13\
+j\xa0\xfa\x17\xe2E\x14\x02\xe0b\xc2\xf8}\x19\x07\x80\
+\x83\xcf\x19\x90\xb8z\xe0\x80\x08\xfdd/\x1a\xd6=W\
+\x88\xa9\x80\x08\xb0q\xa5t\xec\xafT\x14\xfa%C\xa3\
+\x1d U\xf7+\xe4\xef\xd9 ]\xaf\xeb\xe1\xf8\x0bx\
+Q\xbd!\x86\xa8\x82\xe6\x11\xca\x99~\xdd\xdf\xcd\x8d\x83\
+\xa3\x9a\x14i\x19\xc8j\xc3\x96\x14\xe7\x12\xebJ*\xed\
+<\xbb\x97\x9a\xdd\xab-\xb5\xa3\xbb\xa7'\xc2\x0dY\xbb\
+i\xde\x07q@\xd7M3\xe1\x079\x9f\x005\xe6\x95\
+\x857\xce_\x80\x12\xca\xbb\xf6,9\x8f\x0a\xf0\x18\x91\
+e\x7f\xef`\xb3\x81\xda\xe0\x1d\xe4\x1c\xa5<\xf0+\xb3\
+G\xac\x8c\x83 \xc0\xcf\xda\xf0\xc3\x90Nm\xcf \xa2\
+\xa8\x98\xda\xf2\xa1\x0c\x9b\xbf6f\x1b\xb8\xf5'\x13a\
+]Ch\x89{\xa6\x83W\xa5\x0e\xd6\xafL\xba\xf9\x0f\
+h\x14\xd0;\x10\xcc'\x81\xbb\x8dT\x0d\x14\xa0LF\
+\xc0Fi~'\x95\xb5T\xa5\xf5%Gq\x949\x11\
+`(\xb1\xc0\x1c\x92\x89\xcd\xfb\xab\x1ah\xa2o\xcf\x0e\
+\xeb\x00\x08m\xc6\xac3\xb5\xb5\x99!,\x07\x03S \
+)\xbau\xbd\xd6\xaf\xd2\x85\xa4\xb6\x96\xea\x7fR<[\
+\xc6\xf6Y+\xb0\xa0\xf6\xad\xc4\xf92\x93\x22\xb3\xa1\xd6\
+_\xa9\x8c62\x9b\xd7\x86\xad\x8ezi=X\xdfT\
+\xa6e^\x5c\x1f@\xc6\x01\x95\xd4\xb4\xaa5%J\xaa\
+\xd633\xed\xe6\xfd\xe6\xcf\xc2\xe6iy\xeb\xb0.P\
+\xb8JXS\x05\x7f\xf74;~\xd3\xd7\xc2\xe6\xdf?\
+)\xac;\xa0\x01Y\xb7\xd8\x9d\xd8\xc4\xfa\xf2\xba\xabT\
+\x22)\xfb\xd3}\xa7\xfb\x85\xa8XH\xf3\xb5\xc01\xf7\
+#\x14\xe8\xfdm\xd8\xba\xde\xb6\xe7\x0f[\xdb\x9d\x0a\xe8\
+\xac\x03m\xa8Pj\xe7w\x9fm~\x9f3\xf7\xbf\xb3\
+?\x9f\x1f\xfbw\x0c\x9b\xdf\xe7\xe2a\xf3\xeb)\xdb\x87\
+n\x1f\x9a\xb5\xcb\x17\x5c\x81\xd0\xcd\xc5\xc2\xba\x00\xfd\xda\
+a\x1d3H{\xbe{\x84u\x14m\xe3\x98@f\x95\
+\xd4\xfcLXW\x9b\xff\xfc\xb050\xde\xdc3\xac\xa3\
+,\x9f\xd0\xe4Z\x97L\xf9\xc3\xbbL\x9e@\x80\x96F\
+\xeesT\xe5\x0b(\xb3O\x03T\x05\x16\x00;% \
+)\x12\xa8F\xbeD3\xb5CD\xfdE\xf1Uz \
+\xf3\xc81\xce\x12\x9c\xa6]q\xe3\x0eX\xd6\xff\x1cu\
+\xfc\xc6\xf9\xef\xf6\xe5\xa4\x9eWW\x0d\x1a\x03\xdau\xe9\
+\xaa\x905\xdd\x18A\xe6\xe1\xf6\xa4\xb0NM\x9cv\x02\
+fLj\x994\x86\xc8U\xd6v\xbc\x02\xc3\xcd\xd7g\
+\xfbF\x02%\xc7\xadm\xf8\xf6\xdf\x12\xd6u\xf9\xc8\xfd\
+\xbd\xda\xa1\xd9\x0f\xf8/\xf6\xd9d^Ee}+\xd9\
+\xc8\x84@\xf5\x85\x1fJ\x10\x03\xfen\x008\x00+\xc5\
+\x19i\x83\xb4@\xfa\x1e\xe9\xcf\x9c\xd1i9$\xf0S\
+\x01\xa0\x12\x0f\x1a2\xe6\xa9\x92\x14\x09\x19\x81w\x8a\x92\
+\xb6\xf9\xf0\x9e\xdc\xcf\xae\xb9\x9e\xdf\x02\xaf\xe9\xc5a\xf3\
+\xfb>e\xb6'w\xdd&.\xb4;\xa6\x01:W\x0e\
+[oK)E\xd3\xe6\xbfl\x9b\x1f\xff\xde\xe6\x87\xc4\
+F\xec\xb6\x0fYK)\x8ccS\xeb\x7f\xe0Zs\x7f\
+\xe0Ua\x9d(W\xf41\xff`\x9b\x97\x97o@\xd5\
+3\x13\xc8\x94\xb9\xce\xf9P\xcc\x99\x9co\xd3\xbf\x84u\
+])\x94\xdc\xf0#OY\xf6\xff\xcd\xfe\xa2\xda\xbd\xbd\
+l\xd8ZZ\xb6=f{\xa1\xed\x85V\xe6\x91\xf6\x9e\
+\xa5i\xf0\xd8\x04\x04\xf9\x0b\x029~\xc6\xaa\x95\xb4\x00\
+\xe6J\x85h\x9d\xf0\xcb\x94\xb0Q\x8bW\xd2$p~\
+\xd3\x222W\x8c\x03\xe2|\x02\x1b\x81\xce\xfb\xe6p\xe9\
+}]\xe0\x9f\x9a\x0f\x95\xb8!\xee\x8bYt\x89\xb0U\
+\x9b\xa2J\x1a\x95&\x00\x5c\xd5\x5cg[\xc9b\xf6(\
+\xe9\xf0y\xfc\x0e\xfe6\xed \xe3b\x9f\xbcYX'\
+n\xcc_\xe3o\x090Q\xfb\x01,\x98\x8e4\x10r\
+\xdd\x14\xd0\x0d\xe0\x12\x10\xda\x9f$\x0a\xfc\x1e`l\x0c\
+\xb0\x13\xf0.\x118\xfe\x00\xbfx\xcc,\xf3\xbftO\
+\xb0\xbf\xf2G\xeds\x02\xecL\xec\x956\x19\xff\x1b\x90\
+\xaa\x1d\xde\x18\xef\xf0\xdfF\xed*\x7f\xcf\xef\x15\xe0\x0b\
+\xec\xc53\xfc0~\x22?P\x1c\x02pq\xdf\xe2\x0d\
+\x9f\xebs\xdc\x87D\xc8\xa0\x09P\xfb\x0e\xad\x1a\x01<\
+\xff\xd0\xe7\x01\x8a<o\xebD\x02\xd6\xab\xfb\x90\x90\xe2\
+_\x8c\xed\xff\x5c\xe7\xd8\xc6\xd0\xf3\xf7\xbdu\xe2z\x07\
+\xf1\xf7\xc3j\xf3=W\x89\xc6\xf3\x84\xad%3\xb5\xdf\
+\x8e\x09\xf1\xf1\xfdF\x0d<\xf7m~\x0cq\xcb\xc1\x12\
+\x19\xfav'z\xf7\x8d\xae\x1b\x80\x0f\xeak\xf5\xf7\x07\
+D\xa4\x17\xe7\x1b\x07F\x0d` \xa5\x9f\xea\x1c\x1e\x07\
+\x9a\xdfW\x12 #\xe5\xe0\x93\x89s=\xe3F\xc4\xe1\
+\x1f)\xff\xae\x87\xa3*\xf0\x1c)\xee\x90=bv\x02\
+n\x0f\x1e\xe5\x88\x83\x83J\xef}Mt\xbf\xef\xd5u\
+\xf9\x5c\x81\x97\x07\xe0:\x056\xa3\xda&$^\x86\xf9\
+\xc4\xb0s\x11\x03\xf4\xf76\x08\x1b\x0e*\x89\xe7\x84\xb2\
+\x7fzf.\xd4\xfc\xb9^\x94\xb4\xac\xcd\xad\xf7Y\x03\
+\xfaeC\xe0\xa0\x103\xbbY:`\x02\xae,\xc3(\
+d\x1c\x05;\xc5R\xe6\xe3a\x11-\xb9v\xd6@C\
+D\xdd\x87~\xe0WN\xea9d;\x91f\x0e\xe9\xe6\
+Ea\x87\xd7\xd6W;\xa5\xcc<T-\x1dJp\xd6\
+\xe8m\x9e\xbfyA\xa3\xec\xa6#U\x00\x09\xe0\x0b\x00\
+\xa2-\xe1\xe5\xc3\xba\xcc\xb4\xc0\xd4F1\xb45\xa9\xf9\
+i\xe1Y?j\xf4\x05\xc4\x02,\xf3\x9d\x88\xa0\x0c\x13\
+$P\x17\x03\xf7;\x88\x984\xc7\xe5C]\xe0jc\
+%\x02\x93\x81\x80\x1a\xb1\x0a\xb0\xef\xd8\xac\x17\x81\xf4\x1c\
+\x97\x0d\xc5\xe7\x8d\x1a\x19#\xc3\xc0\xfcCer\xbf\xfe\
+]\xdb1\x19nm*1v\x1c8\xc4\xf8\x94D\x10\
+[s\x1d\xd6\xb5\x8c\x1e\x00`TM\x1d\x99\x0c\xf6\x91\
+A4\xb1\xfa\x92\xa7\xaap9\x90JV2@\xdf\xdc\
+!\xac\x13!\xd4F\xd0|q@\x8d\xb5t\xe6\x91\x0c\
+)J\x9c.\x03\xd9\xad\xa02.\xe6\xbb@?\xfb\x1a\
+\x13\x9f+1\xc7\x14\xc1\xa9}!\xe7e\x05\x00\x80\xa4\
+'7\xdb\x9b~#l\x1e\x9e\xa7\x87\xcd\x7f\xf7\xd6\xb0\
+\xaeV2\xaf\xa7\x0e\x5c\xfbi:^\xd5\x0e\xce\xc1\xac\
+\x061\xdb\xd5Q\xafU+\x5c\x99\x0f\x19\xb5\xa8\xd1?\
+i-\xb1\xd8\xfer\xd8\xfc\xfa\xa3\xb0\xce!D5\xce\
+\x80u\xff^ak\xdb\xaf\x83\xf7\x0b[U\xd61{\
+\xa6\x97\x87u\xed\x0as\x1d\xcdw\xfd\x9bq\xdf\xbb;\
+-\xd4\xf9\x03\xf7?p\xbf\x03\xf7\xef\xd4\xacs\xbc8\
+D\xdb\x1f\x87\xcd\xaf\xff7\xac\xa3\xe2\x87\x83\xf9\xbf;\
+\x8d\x80l\x07\x08\xb8\x99\xbe6}=\x00\x8as^}\
+\xce\xab\xceyU\x9bO\x8d\x0a]\xc0:\xe6F\x94\x12\
+\x9c\xbaR9\x01\xc9\x9e\xb7\x9at%G\xd5>\xd2\xba\
+\x1a\x1c\xa3\x0a\x14\xb4\xf9\x02\xa4*\xc5Hq\xad\x0aX\
+0\xa8r\xde4*\xf3|\xdeL7\x0f[\x81\x9c\xed\
+\x9b\xc3\xba\xd2\x19\xfbo\x06\xee\x95\x99\xf3\x9c\xf5\x03\xcf\
+\xb6\x8a\xda,V\xbfw%Z\xd6+\xb1Dj\xeb\xd4\
+\xb8\x89u\x86\xd2\xc8\x83\x92\xa9r\xc5\xb5\xedU\x05\xee\
+\xdf\xcfs4\xa8\xf5W\xedj\xe2\xbf\x985\xa7oJ\
+J\xf4\x9d\xe7\xf0\xe5\xce\xad\x9f\xf8}\xa3\x9fx\x05\xb0\
+/\x0f\xeb\x1co\x0e=10\x99\xaed\xdeL/\x0b\
+\x9b\xff\xee\xd5a\xdd\xfa%\xc6\x97\xf7\xb9\xbdUX\xa7\
+^\xae\x8d\xa3R\x00\x19\xff<7\xb6\xb7\x0b\x9b\xe7\xf9\
+\x83\xc2\xe6\xcf\xf9\x9fa+\xf5x\xfb\x98\xb0\xee\x9c\x02\
+\x98\xd2H\xc8\x8c\xaa\xc0\xab\xb4\x00\xa2\x8b\xc3\xd9\x1d\xa3\
+B\xe9\x84\xdfK\xbf\xa7\x02\xf7\xd4N*Uum%\
+\x95b\xe4\xbeZ\x00\x92\xd2-\x0c$\xfb^\x02\x9d\xd3\
+#\xc3\xda\xfa\xfb\xf5\xe9\xd7;F\x81\xf9\x8a\x81B\x14\
+,*\xb5\xe7\xfb\x9e\xde\x1a\xd62\xf6\x0b\x10D\x8b\xe2\
+\x96!\xab9\x7f\xfeG\xc3Z\x97\x8cg\xb6..\x7f\
+\xd6lo\xf3\x9e\xcd?o\xde\xd3\xce\x9b3\x9avS\
+\xee\x8f\x95\x89\xcds\xae\x18.1\xcbo\xb3\x8a\xe1\x01\
+X\x0f\xfc\xef\x03\xa7\x1ex}'V\xad\x0d0\x86]\
+2\xaf\xa6/\x86\xad\x00L\x93F}\xec\xca *-\
+\x16\xeb\xe3\xab\xe9\x0f\x9c\x93\xe7\xd7\x1b\x97\xf9\xb9\xbdR\
+\xd8\xfc\xf9\xdf\x0dk%d\x8d\x11@\xdc\xb2\xbaG\xe4\
+\xfe9\xef\xe9K@#\xd0\xd4\xa5\x09P\x90\x00D\x95\
+r\xfcBR\xfc\x7f+\x19<\xd9}C\xf7\xa9\xca\xa8\
+\xf3\xf3\x88\xf2\x12\xedLQ\xd8\xa2\xc8\x13\xf5\x0c\xd1\xc4\
+\xbb\xad\x00`\xb5\x1f\xfd\xe0\xd2\x1dA\xc0?] \xac\
+c\xfe\xd8\xbf\x88\x14\x0a\x90\xf8\xab\x00e@\x22\xa0S\
+@\xac4\x81?.\xf1\x96\xfeD\xcd/~M\x8a\x88\
+\xee\x9e\x1e\xd6\xads\x09\x12\x0c\x86L\x10T-=\xbf\
+\xde8\x0f\x9a*U\x1a)\xf3O\x9c0\xe7A\xf9q\
+c\x22\x92\xff\xc1?\xa2R/p\x15X\xbb/\x09\xcb\
+\xd4\x8a\xaa\x00\x15\xa3A\xe0\xce\xdf\xb4\x9f\xe9\xe2a\x9d\
+\xf2\x17\xc5#JW\xc7\xb6\x80\xa3\xff2v\x07\xf0\xef\
+\xfc:\x09*\xfe\xe0\xa8\x81\xa0\xe4\xd3\xe7z\x150;\
+\xd7\xbc\x9fx\x85\x9f\xe7}F dd0\xf8|\xef\
+\x0bPr\xbd\x12j\x02\xfdQ\xd4\xdc\xfd\x01\x84\x93Q\
+P%^\xe2$\xcf\x1b3\x8b?g\x1e\x03<|\x8e\
+\xe7\xe8z%\xde\x5c\xf7(\xca\xc8\x8f\xe4\x7f\xb9\xefL\
+|V\x97/\xe2\x93\xe2\xb4\x91\xb9a\x1c\x8d\x1f\x00\x83\
+\x1f]%\x00\x97n:\xe8\xeb\x85\xa1\xf4\x0b\x5c\xbc!\
+\xc7\xda\xc4\xf0\xef\x02W\x0b\x94#\x1e\xef\xf6\x8d\xceA\
+N\xaa\xa1\x80\xa6\xc4\xb7\xd4T\x9a\xa0\x16\x8c\x09\xd0S\
+&\xce\xd39\xb6\x16\xe2\xd8n\xcd\xf5\x8d\xd4\xeb\xb5?\
+\xec\xf2\xf7\x80\x06\x0bu\xcc\xdc\xab\x8dv\x1d\x90$\x0b\
+f\xc8p\xd6\x04\x12X@2\x89\xd5\xc9\xa8`\x1cx\
+\x1f\x99T\x80\x81@\x85\xc3\xe8>,\x14\xdf[04\
+\x04\xbe\x12\xd6\x1d\x10\xf9{\x9b\x9fN\xd5e\xe3\xf4\xf6\
+\xdc\xd0L\xac[e\xbb,bf?\x9b\x220(\xc2\
+W,\x06\xc0\x02 d\x86i\xbe\xc7\xe5`<P\xfd\
+\xd3\x97\x05\xf8\x1f9\xe1\xcf\xcey\xf1\x89\xdc\xb0\xde\x97\
+\x0b\xd2\x02zEXw\xf0(\x19\x01\x18@\xe60!\
+\x88\xa6\xbd\xa6\xd9\x9aA\xcb\xf6\x1cU#\xaf\xf6\x95\xa8\
+M\xd6|\x15c\xc3\xc1\x03\xf0 \x96C\x9c\xc8\x01\xe1\
+\xf7\x88\xe2\xf8\xb9y:\xb6I\x19\x99 c-\xceW\
+\x0f\x15\x1b,\x8a\xb5\xf6{\x99i\xac\x83p\xaf\x98\x07\
+\x0b\xc5SM; \xc2\x01$\xf3J\x05\x1feU\x97\
+\x01\x99\xff\x9eqsv\x87\xd4j\xdb\x87\x82\xaf&\xd1\
+\xcf\xad\x13\xeb\xd0Fb=Y_\x182\x98\x0e\x005\
+\xe3kC\xf2w2S\x10O\xed;\x05\xca\x0e\x12\xf3\
+\x1e\xb2o\xde\xa2\xfc\xd9\x97\xac\xc3\x91\xb2f\x9d9\x18\
+P\xac8\x0a\x99a(\x8d\x07\xb5\x91T\xff\xa93\x13\
+U|}\xd8\xea(\xa8\x85-d\xdb\xfd\x9c\x13\xd6i\
+P$\x82+#S\x94\xc3\x0c\xd0\xcb\xf1\xb0\xae\xb3\xd6\
+rw\x97\xb0n>z~T\xca\xd5(g\xa0*p\
+SR`^m\x9f\x146\x7f\xff\xa7a\xeb}\xd5|\
+V\x9a\x93\xa2H\xd5\x8eFF\xc2\xab\xfe\xe9\x19\x80T\
+-|\xaaWW`,\x90\x05lx\xfe\xc4k\xb2T\
+\x083\xa1\xa9\xdf\xdf\xa2\x03>/\x93\xa2|7\xc8\xb6\
+\x5c/[\xc4\xde\x04\x80\xbb\xb3\x96\x00'$\x03C4\
+\xb0\xda\x80\x9e\xb59{sVjw\xfc\x9f\xf9\xf5\x89\
+a\x9d\xd8\xe1\xb77\xdf\x8aZ\xdcj\xbb\x06\x90\xe2\x88\
+Q\xa7\x07\x8c$\x05\x7f\xba\xc2lW\x5cK\x96\x1a\x05\
+{?\xc5\xc1\xe6y\xbf\x7f\xd5\xfd\xab\xed\xff\xfc\x22\xf6\
+\xb7\x7f\xd4\xea\xe0\x97\xf8\xe2\xc3\x92y`|\xf3y\xd5\
+\xba\x95\x11\xc9@\xad\x9eK\xaa\xaa\xef~q\xb6\x1b&\
+\xe0\xf2\xc7]@\xadf\x16PH\x93\x81c\x90\x01m\
+Q\x9a1\x84dv\x9f\xd9r\x9c+\x95\x1a\x83C\x9b\
+\xadG\x87\xa5\x9a\xfd}\xd3\xb1\xf9\xe2\xb9t=\x91\xa9\
+\xe3\xe0\x01t\xa2\x96\xfd\xd2\x87\x97\x10\x16U:\xe7I\
+\xcb\xa4\xdf.3\xc6w\xe9J\x1b\x9cC\xdag%5\
+~\xfe\xd9RC~\xc5\x80\xac;m\x09\xed\xcc\xacw\
+\xfb\x12`\x01\x13 \x03\xd9\xe8=\x11\xdd'Z\x9b\xbf\
+\x1fw\x94u\xe2`\x02\x88\x1c\xbf\x12\x1dD\x8d\x96\x89\
+\xcf\xeb\x9dN\x09[\x99*%2\xf9\x9c\xb0.\xb0N\
+\xf5n\x81\xfa\xde\x1f4[k\xf3\x89\xdfb\x8c\x11\x8f\
+K\xed\x04\x14`\x80\x81n\x01\xd5O^\xc9F2\x84\
+\x002\x05p\xd8\x87\x89\x88a>\x5c+\xac\x03j\xac\
+W\xdd\x12\x92\xf2Z\x22x)JU\xaa\xdc\xd6/F\
+\xc5\xf9\xb3\x04\x01s\xc2\xb9\xa7\xa6\x99\xe6\x07\x80u\x93\
+\x99\xf6\xeb\x84\xad\xb5\xf4\xb4\x84t3p\x9f\x05\x08\x9c\
+\xbe\xac\x9fVS~\xd6\x1aP\x17\x83M\x00\x17\xb0[\
+\x88->e\xb6\xa7v\xfbX\x9e\xdbJ@\x0aX\x7f\
+\xdd\xee\xd4\x16 ~)\x031\xfb\x9b\xf5\x96\xa2\xa3\xc5\
+\x04\xa1\x8e\x9f\xe7p\x89L>7l\xfe\xfd\x97n^\
+\xb6yY\x1b\xb7\xb6\xef\xef=iy\xdd^:le\
+\x8c\xec\xbd$K\xa98\xf0\xe7\x19\xba:\x090\x9c{\
+\xbaT\x9c\x1a\xb6j\x0al^\xb70\xbbv\xf7\x0c\xcb\
+\xb6~/h\x8c\x9c\xa61!\xa0\xd6\x05\x83&K\x05\
+P\x80D\x89\xb2l\x0bX\x09\x97d\x10\x0b\x80\x0bp\
+\x14p%@|\x98H,@\x0b\x90\x08\xa0\xfc\xf5\xb0\
+N,\xd0>\xc5\xdf\x16O`\xfeHp\xb8>%h\
+\x00j\x81\x1e\xff\xdc\xef\xa7\x86Hi;\xe49\x5c\xa5\
+p\xfc6%\x0048\x04\xe0\xfc\x13\x8c\x1c\x00P\x02\
+ N[v\xc2\x00\x00 \x00IDAT\xc5X\x00\
+\x1c\xf1G\xc4I\xfc(\x81\xab\x84\x0d\x00\x00\xc0\x9bL\
+\xe5*\x91\xf3{\x00\x03\xf7\xc5\xbfs\xdd\x12k\x00\xa2\
+\x11\x00\x10h\x8e\x89X\xd7\xe5\xcb\xbc\xe3\xcf\x8a\xaf\x86\
+vv\x87% \x8d\x0f\xff\xd5~f\xfc<O\xfe\xb2\
+\xfdz\x14\xb3\x1b4\xdcF&\xc1a@\x00 c\x15\
+S\x5c\xc6i\xd0\x8a\xc2\x98\xaay\xe2\xef\x07\xe0\xa2\xfc\
+2\xfe\xa6\xf5\x06(\x1b\xd5\xff\x8d\x83D\x8aRg%\
+\x0a\xe6\x01\x80I\xa9d\x9e\x07\xf5s_y\xfeo\xbe\
+\x13\xd6\xc5a\xfcaq\xf8\xd8\x95j\xac\xfd\x177\x8a\
+K\xb3\x84\xe3`\xcb\xc8_\xbc\x0b(b\x9a\x1c\x9b\x1b\
+\xf9\x05\xf3\x00\xd2\x97\xf0@\xe7\xc8\x8d\x08F/\xe2\xf7\
+\xfd.C\xc7\xa1\x15(\x08p9\xea#\x02#P\x1d\
+\xfb\x97\xf7\xb5-?u.\x81\x89\x1b\x95\x815\xd1\x0c\
+\xe8\xd8'Sm\x0c\xe0\x80c\xedz\xbc\x9aH\x02\xb8\
+\xbc\xbey:/\x07\xa1\x00\xc7\x04\x11\xb8\x9a\xa0\xc6E\
+Mt\xd6D\xd5BJD\xb02\xea\x9e\x83\xfb\x91\x89\
+P#'P\x16\xb0\xa3\xe6\x9a\x90\xdf*$n\xa9\xdd\
+\xa72\xaf\x96\xc4B>.\xdb\xf5@\x5ce~G\xea\
+4\xa0e\xca\x89\xc6\xd1\xfaB2%\xfc\xfb\x9a\xe9^\
+6\x12%\x0a\xa7%5\x15\xd0sz\xce\x03\xed\x832\
+\x10\xd8\xbbcR\xd3tq@Q\xcb\x9aG\x8e\xf1\xe6\
+5a\x9d#d!h;\xa3Ot\x8a\x8fm>\x12\
+\xb6Ru\xab\xb6\xd6\x86\xff\xa1y;\xfdP\x87\xcc:\
+`\xcc\xc3q\x1e\xd8H\xcc+\xed\xb6\xb4\xd7\xbbBX\
+G\xd51\xcfm\xf4\x9e\x97\xf7\xb5 \x05\x98\x00\x22\xc8\
+\xa2\x83\x1ec\x85\xf6\x83\x80\xd5\xb8\x13W\xb1\xf0e\x9e\
+\x07\xd5\xeb\xc3\xbab\x8c\xc8\xf4Ojg8je\xd8\
+\x88mx\xees\xa0\x1e\x95V\x81L\xbf\x8d\xc8\xf8Z\
+\xf7\x0eJ5\xa42\xe1jM\x89\xe4Q\xd5\xb7~\x01\
+H\xa3X\xd0(\x16\xf8w\xcd*c'\x00\x10\x10\x14\
+c\xe56a\xdd\xfdC\xb0\xfb\x12\xa7MG\x9dtP\
+d\xa0Y\x1a\x19\x11\xf0=l\x0d0\x0a\xa8I\xf5\xf8\
+\xaay\xf4\xb99_\xeb}\xa8\xf9\xa2\xf2\xc9 *\x89\
+\xe1 %\xd5\x9fJ\xbe\xcc\xf5\xf6\x95a\x9d\x16\xc0\xbf\
+\x87\xad%/U\xeb\x88!\x91\xeb\xad\xc4*\xb5\x9dI\
+q\xba\x02\x1a\xde\x17\xd6\xed\xcb\xf6\xb9|\xee\xfa\xb1\xab\
+I\x16x\xf8\xbb\xcah\xc9\xa4\x0b\xf4d\x90_\xb00\
+s\x88\xb1MGMGO\xf3~\xbd\xf9\xaf\xb0\xb5]\
+\xd5\xee\x05a\x8d\x0a\xde\x02\xd5\xcd\x19\x9b\xafm\xbe\xd6\
+\xfa$7 \x03\xe5|s\xc7\xb0y<\x8e\x0dk\xeb\
+b\xb9_%\x122\x85_\xdf}\xa3Q\xc7e*\xaf\
+\xb2;\xa1\xd5`\xa7\x03\xb6\x7fVX\xb6\xed:\xa79\
+\xaa\xad\xf6?`\x80\x00\x02\xf6\xbf\x1d\xb6\x06\x5c\xdb7\
+\x86e\x06\xfa.m\x9d,\xe3\x84\xc1! \xc7\x90\xd0\
+\xe6*\xd5\xf0\x95\x8e\xc8\x107\x86\xc0\x93\xd3\x01\xfcP\
+\xb6\xb3zD\xb7\x0e\xb53L\xaa\xb7\x1a\xdaV\x02\xf4\
+\xe6\xd4\x10\xf8\x95\xee\x5c$\xd6\x99\xc0\x8eL[e\xba\
+1\x84\xa8\xf6g\x17\x8e\xc6\xc8\x09F\xc8\x83\xc3:-\
+\x0a\xe7U:\x9eJ\xd2J3 \xc5P\x0b\xe8\xb1\x9f\
+\x115$\xaev\xd7%\x00\x00\x18\xcc\xc1\xea\x22\xf2\xfa\
+\xa8\xac\xb5\xcf}\xbc\xd4\xd9o\xb6\xbbyP|\xcb\x01\
+W\xf3+\x13\xa6\xdf:\x00\xd9\xf9*c\x9a\xedb\xab\
+o}jfx\x9f\xdd/\x85u\x9a\x0a\xfc\x17\xc0D\
+\x02D\xf5s\xed\xc00w\xb2\xcdfe\x1c9\x94\x19\
+ \xd0 \xb0\xff\xdb\xef\xe6\xc0\xb3\x89\xe4N\x97\x99.\
+;]vm'\xb8yw\xd8\xfc\xf3O\x84uT~\
+%7\xba\xa7\xc8\xb8\x12k\xc4\x90\xb8\xe9<b7m\
+\xedr\x1f\xd8\x18\x16\x1cU\xe7\x02&Ff\x8a\x01\x13\
+\x05$\xdbgQ\x98\xf5\x87W\x13\xee~\x05\x8a2U\
+\xceq@\xba}9\x034\x81\xef\xf6%\xdb\x17o_\
+\xdc\x95r\xe4s\x98\xfe1\xace\xc2Z[\xb9\x90\xec\
+k\xa5\xa5\xaf_\x9e\xdf\xfc[m\xbc\xec\xef\xdb\xb7m\
+\xdf\xbe}[\x03F~\xaa\xb5Q|\xd3\xe6o7o\
+J\x86`\x97\x19\xaeR\xa4,\xe9\xe2\x90\xf3W\x0e<\
+\xf9\xc0S\x0e<y-\xb1\xda\xddw)!\xac\x04\x0d\
+\xc0C\xa9U\x8a V\xe9\x91\x92\x99\xe74\x0b\x95\xfa\
+\x85\xf9`\x1e\xf2[\xf2\xdf7\xe7\xdf\x1c\xb59j\xd5\
+\xe4\xd9|#\x8aG\xe6\xd7\x1f\x86um\xf8\x9cC\xce\
+w\xeb/\xbf/\x0a\xbf\x04N\x96b\xccg\xf8\xf9\xda\
+\xfe\xf3\x9al;K\x93F\xe0+pK5\xfd\xe9Q\
+a\xddu\x0a\x881\x01\xf2\xfc(\xf1\xc7\xec\x82R\xda\
+O\xfc\xac\x91a)\x01\x98\x8c\xe0\x02\xd4s\x9d\x96\x06\
+F\x06\xea\xe5\x0f\x11\x1d\x06,\x8b7\xc6\x1as*\xf4\
+(\xfc\xf6=\xcc\x9d\x04\x96\xf6\x1e\xdcl\x0d\x9c\x95\x9e\
+\xa8\xed\xc6P\xd1n\xd0:\x93`\x93\xb0\xe2\x17i\xc7\
+\x8a\xa1\x97ZUun\x032\x05\x84\xc4\x1b\x07\xb5\xfe\
+\xd2\x04\xe0\xd7\xf3C\x003\xfc\xd1\xb1k\x18\xff\x8b\x7f\
+j\x9d\xf1\xdf\xc6\x0c\xb8\xf7\x19k\xdc\xed\x07\xfc{q\
+\x93\xe7\xe8\xf7\xf8\x9d>\xcf\xf5\x88\x83\x00\x0c\xfcO\xfe\
+\xc2(\xe2\xe7\xfe\x94\xccj\x83;\xc6c>\xd7x\x09\
+\xf0\x01\x11\x83&L%H1!<g\x22\x7f\x12L\
+\xc6=\xcf\xa9J\x08(-\xe0\xff\x89\x8f\xccc\xeb\xce\
+\xfb\x0a\xc4\x9do\xbaHx\x8ej\xfd\x95\xeah\xff\x0c\
+\xb8\x1aD\xc8\xa3\xe7J\xeb\xba\xf2Sa\x1dCU|\
+f\x1f\x18\x81\x9csJ\xf4\xfd\x10fy\x95\x98\xe7\xb8\
+\xafm\x00\x03\xb79:\x07\xec\xa8\x01Y\xda\xcf\x85\xf5\
+\xfd\x1c\xa03\xb2\xa6\xffR\xe7B]\x1f/@\xa0k\
+\xe0\x04\xf0\x0eL7\xec`\x11\xe8\x0b\x10\xb2MN!\
+Q\x07Z\xce\xf90\xeaz\x89\x0e%\x15\xba&\x80\xdf\
+\xd3\x86\x8e\x8a6\xe4n\xa4\xba\x8c\xd4\x09\x13\xc4\x02\xb0\
+ h\x1c\xd0\x0481\xa9\xca\x00\x11\x0b\xce\x06=\xaa\
+i\xbao\x01\xef(\xde0\x8a\x18\x8e\xfd$\x05(&\
+\xbc\x8c\x85\xeb\x14\x00B\xdcOK\xcd\x83\x9bd\xa6\xd9\
+\x84\x19\xfb\x92\x8e\x1b\xca \xa6W\xd4F\x94\xf3tt\
+j\x1c=\x0f\xd7%\xc0\xcdq\xd9\xdc$\x1dp\x14.\
+5\xce\xd7\xca\x00\xd1FI\xbd<\x1d\xd9j\x17\x96\xfd\
+s\xeb\xfa\xf5\x99\xcd\xbe\xcfu\x90\x0aT0\x03\x00R\
+\xfa\x15C\x90\x9f1\xbb\x91\xcf\xe8\xdeol\x93rF\
+.\xe4\xb7.\xe2Y\x9b\xeb'\x15\x7f\xec\xe3\x89\xe2.\
+\x13\x220\xb5a\xc9\xe4\xa8\xa9\x05\x8cq\xc0r\x9e\x15\
+\xe52\x1d\xeb\xa2\xf4;\x98\xdd\xc7\xf0\xb9\xb5\x91s\xb0\
+\x04\xd4\x1c0H\xb0yo\xbe[\xafc;N\xef?\
+0}\xf4\x19\xaf\xb6L\xe6\xcb\xa8\x85\xe0\xe7j\xced\
+\xc6i\x1f\x00\xcc\x5c\xbf\xfd&\xe7\x91Z\xe6\x9aO~\
+?\xc5}J\xcb\x02p&\xa0\x19\xda\xc5\x14\xc3B\x0d\
+ \xca*$]f\x1d@\xe9\xb9\x8cj\xae\xfe=\xd7\
+\x19\x87\xba\x0e@]\x00\xb2\x9d\xa7vQ\xd3'\xc3\xe6\
+\x9f\xdf`\xe9\x1e\xa2\xbd\x16\x0ai\xad\x93<\x18v?\
+\x1d\xd6\xf5\xd3\xb6\xd1\xff\xedR\x9bIEz\xf3\x0fa\
+\xeb\x81Pm\x99d\x0a\xd2q\xafL^\xfe^\x01L\
+)\x16V\xf3\x12\xf0\x91m\x936\xf7\x0d[k\xab\x0b\
+\xd9\xc7\x04\xf0\xdc\x00\xae\x0e\xf8\x5c\x8f\xa5\xe9\x90L\x8a\
+\xe9\x09a\x1d\xa3\xe2\x1ba\x9d#E\x05=3{\xfb\
+\xd7\x0a[\x03\x8b\xed\xe9ak\xc01\x1d\x11\xb6\xce\x9b\
+9<Yj\xbb\xf3\xc0\xdd\xbe3l~}tR\xa8\
+1N\xde\x92m\xd3N\x9e\xed\xa1\xad?\xfb\x15\xa3?\
+{1\x18\xb2\xf4@\xfb\xd7\xe96\xd3/M\xf3\xb8\xec\
+o\xf6\x0f\x84F\xc0\xee\xe8%\xa3\xb9{o\x8a[\x9d\
+\x146\xff\xfb\xf7\xc2V`r\xf3\xcc\xcd\xb36\xcfZ\
+3\xc0{\xaf\x9e\xc3\xd8Ww]K\xa2\xc6\xf5\xd1k\
+`^m\xeaP\x01\xd3A\x9a\xfeWX\xce\xe7\xd3\xba\
+\xfd+\xdc\xf6?]K\x07\xca\x91\x07\xe0\xa5\x16B\x0b\
+\xc7?\xdaiO\xd8w\x01H\x99!\x9d\x1e\x12\xb6\xee\
+/\xdb\x13\xc2\xd6\x92\x0cTt\x8e~\x03\x00\xa2\xa6\xf9\
+3\xb3}zm_X\x0e\xd7\xc3\xc2\xba6\x8cY:\
+S\x01\x12\xe6\x83@_\xc6\xf5\x8c\x85\x817\xfd\xee\xf4\
+\xb0\xe9a\xab\x03\xb6\xbbz\xd8\x0ad\x99\xafEa\x97\
+a\xce\xccg\xads\xa2\xb9\x19\x08T\xffd\x00\xb4s\
+^\xa6\xd3\xef%\x90\xeb\xfd\x8b\xd2\x0dXH\xc7S)\
+P\xedW\x09\x0c\x14\x95?\x01\xb8:\xc7\x9d\xd3\xc4n\
+\x93\xd95\xfdTX\x8a\xe4\x85x\xe4;\xa6\xff7\xc5\
+:\xff\xfe\x22>\xb9\xbdI\xd8\xfc\xfd)akFY\
+iL1 \xae\xb2\x9c\xfbs\x98\xbf\x00-o\xdc\xfb\
+\xeb(5A\xd1\xb6\x8f\x14\x10\xa5[@\x02]\xf5|\
+\x5c\xb7\xd2\x92\x14\xdb-\xff\xc3\xba}hX\x97\x01N\
+G\xbb\xc4\xe9P\xa2s\x1dWw\x17L\x9bl\xa7\xd8\
+\xba\x10,\xb5\xdc\x8d\x92\xee>7\x07\xc3\x9a\xb8\xda\xd2\
+F\xf4?\xc3\xba6\x85\xb9?oo\x1e\xb6\xce\xd79\
+\xe8=\xa1e\xca\x9c+D`\xdf\xdfl\x15\x9b\xbb_\
+\xd8Z\x1a!\xd0&\x96\xb7\xb9T\xd8|,\xbd\xe3\xc0\
+\xdb\x0f\xbc\xa3\xf3K\x7f\xb3\x91\xe0#\x93\xf6\xa5\xd6v\
+1\xe7\xcd\xf4\xbd\xb0U\xcb\xa3\x18\x00\xcf\x0c\xeb\xe6\x9d\
+\xf6x\x98\x12\xa91\x03\xf0+\xed\x88\xcc\xfc\xf1\xb3\xcc\
+\xffz\x1e\xf6g\xe7\xa3sw\xa4P;\xd7\xa3`\xe6\
+j\x1d\xa3\x22\x98E\xc1\xe0\xba\x7f\xd8\xfc\xef/Z\xda\
+\x1a\xd6\xfc$\x8aj\xdf\xca\xf3\xbf\xfc\x5c\xa5c2\xf5\
+D(\x9dG\x18\x18D\xec\xf8\xc5\xfc\x94\xdc\x1f6\xff\
+-l]\x0f\x98\x97\xa5i\x82\xb1\x97%\x1fJ\xe7j\
+\xbfs\x9e\x0f5\xe2\x15p:\x17\x05\xdc\x18<\x18\x01\
+4\x04\x04h\xb4\x06\x9c\xefD\xf70$\x04\x8c\xb4\x81\
+\x00\x82\xfc9\xdd6\x94\xa4*]p.\xcb\xd0\xf3\xbb\
+\x89\x02\xabi'\xca\x98\xf3\xb5\xae\x83\xbf\xce?\xe5\x1f\
+\xf0\xeb$b\xec\x7f\xf6{\xfe\x9e\xf1\xe0'y\x1f\x01\
+\xee\xa8U \xde\xf1\xdc\xbc\xd2\xfa\xd05\x81\x7f$n\
+\xe0/\xf0\x0biX\xf9\xbcQ\xccO\x9c\x90\x09\xa3\xba\
+\xfe1\x9e\x1c\x13\xcd\x12P\x00\x9e\xa1+\xcea\x80\x01\
+\xff\xc5\xf5\x02H0\x11\xbc\x02&\x04\xee\x12\x8d\xc6\x13\
+\xb0\xc6\xdf\x1d\x99\xbe\xa3V\x00 IW\x0a\x09]\xcc\
+K\x9f\x03(\x95`\xe1\xef\x9b\xd7\xde\xd7>\xf4\xc3C\
+\xe3\xb2\xc3J\x8e\x01\x82\xe9\xcf\x8c\xcc\x84\x835aF\
+*\xc1\xd8\xd6\x80z\x7fL\xd3\x1fu\xc8\x06\xa4\x82\xd8\
+\x15\xc70\xde\xe5\x07\xb9\x01\xdc\xb4\x0bHd\xb4d\xf2\
+d\xa0\xc7\xeb\xe8\xa9\x1f?\xee\xc4\x06\x7fR_\xf5q\
+b\x0d\xe2z\x951\x1c\xfb\xab\x8f\x99\xd0\xb1K\x80\xc0\
+\xcb\x04\x00dx@\xc6\xc9\xdf\x99x\xaeo\x0c\xa4-\
+\xd4\xa1\x9fq\x1dP2\xdf(\x95~\x0f\xf5\xdb\xc4\xb3\
+\xf1\xd9\xd8<7\x14\x11\x0b\xde\x81\xa0\xc4\xc0DJ\x11\
+\xb0\x12\xf5\xa3\x09p\xc5\xa4\x16\x1f\x97\x9f\xb7\x22K\xcb\
+\x84\xda\xe6\xb8\x19\xd7\xef\xe5}Z\x98\x80\x8ec\x13\xd0\
+\x11\xc8\x0b@o\x99\x1b\xe5\xe5\xf3\x00\xf0s\x01\xb3\x05\
+\x06a\x13\xc0\xdf3)dwI\xaa\xbeyI\xac\x85\
+\x18[f\x0aK\xec&_\x0b\x89M1\x97\xca\x08\x99\
+O_\x9b\x97\xef\xd7:\x00\xc5\x02s=\x9fM\x91\xa0\
+w\xa6\xa3\xa0\xf6\xdaAk\x83\x06\xec\x18\x1f\x1b+\xa6\
+@RA\xeb\xefez\xcd\x135\x9eY\xc3U\xd71\
+f\xccm\x04\xe6\xb3\xf1B\x0dG\xe5\x97y6\xce\xe6\
+\x81\x8d\xddF\xe19\x8f\x01\xb0\x83\xc2Ae\xfe\x8e\x22\
+D\x0e\x06\xcfq,\x092\xcf\xd2AT\x83X@\x0c\
+\xa4ul\xebb\xbe\x03\xb4\xac\x0b\xa5$\x18.\x18&\
+\xae\xd3\xf5[\xaf\x80<\x0e \x11\xd0\xdf\x09\xeb~\xdf\
+:\xf2e?A\x95\xcdZ\xc2R\x91\x8d\x9a\xd2{u\
+\x9f\x83\xc2\x0d\xd1\xd6\xc6I_r\x81\x1ajd\x1e\x00\
+\xbb+\x87u\x99\xe1\xcc\xacT\x0d\xa6\xfd+\xfbwW\
+?\xe7\xcc\xb8U-\xfaYak\xa6\x7f\xfb\x8e\xb0n\
+\x1eX\xf7\x9e\xbb\xfd\xc0~\x88\xba\x09\x08\x13\xd0\xa3\x98\
+fF\xae\xc461q\x1cT2\x83\x19P\x9f\xf3\xf5\
+\xb0\xd5\xb1\xad\x12\x97\x0c\x0c6G\x87\xad\xb5m\xc4\x8d\
+\xb4\x0f\xdb\xfe[\xd8*\x06\xa7\xa6t\xf3\xae\xb0u\xbd\
+\xce\x01\xf7l\xf3\xef?7l~\xfd\x8f\xed'\xb7\x9f\
+\xecD\x1e1=\xbe\xbd\x04J\xfbG\xed\x1f\x1dT\xfd\
+\x02r\x88\x22\xa6\xd6Fc\x16\xdcd\x05p\xa6\xfd\xb0\
+\xf9\xf5\xcea\xf3\xeb\xd5\xa6\xabOW\xef\xd4\xac\xd3\xf1\
+\xdd\xdeb{\xe2v^\xd7\xdb_\x98\xed\xfaMt\xee\
+\x9e\x919\xc5\xac\xc0\x00+\xaa\xb6\xfd\x83cj\x1e\xa9\
+EL11Z!\x9b\xd3\xc2:J\xa5Lx\xc0\x86\
+\x7f\xb60\x83Z\xe6\x0b\x15\x17\xe5;\xde\xf5\xe2-\xf3\
+\xb1\x00M7\x9d\xef\xf0\xa6\x99!~L\x02WWY\
+3_\xd3\xc1\xb0\x06\x90\x5c\xa1\x01$Y\x8b\x8dr\xbd\
+}\xe9l/\xe9\xf6\xdf\xbc\xaf\xed_\x87\xadm\xec\xa6\
+\xe7\x84\xcd?\x7f\xea\xf6i\xdb\xa75\xea\xf7\xe20\xe6\
+>'\x00-@ \xdb\xe9\xaaE/\xd5q\x8e\xae\xfd\
+5\xef\xab\x80+\x01\x05\x87^f%\xf7\x1d\xcc\x12\x8e\
+\xf8\xe6WS4\xf5\xb8\xe5\x1c\x9d\xde\x1b\xb6\xfa%\xa1\
+\xc5\x1e\x14\xf1\x12\xb3\xd3>\x0c\xa0\x9a\x80\x03@z\xfb\
+\xbc\xb0n\xdd\xcb \xb9/\x14|\xeb\xce\xfa\xcd\xf1V\
+\xbb\xafM\xe5t\xad\xe9\x9a\xd35\xd7\xf6w\xda/R\
+\xff\x9f~gz\xd0\xf4\xa0.p#\x8e\xa8t\xc5\xf5\
+F\xd7\xf1ou\x81\x1b\x87Q\x80\x92b\x7f\x15\x80\xdf\
+1\xac;\x7f\xac\x7f@,?\xc7y\xf7;\xcd*@\
+\xaan\x0e{\x0d\x97X\xba\x80\xfcv\xd7\xce\x8a\xb8h\
+\xb4C}Q2!n\xd91\x19N_\xba,\x14 \
+'\x93}\xf5\x04j\xb5\x95\xcc\x00\xca\xfe\x8bI\xb1}\
+F\xd8\xfc\xfd\x1d\xa6\xdbOwX3\xfd\xdb\xfb\x86u\
+\x22\x9b\x01\x8b\xfeB\x03\x0e\xef\xdd\xd6'*?Q\xca\
+\x04|6/Z\xaes\x0e\xbb?\x1e\x81\xf7\xf6\xb6\xf3\
+>\x16Z+w\x0ek\xc0\xdaK\x03X\xab@>\x9f\
+\xc7\xe6%a\xdds\xcb\xf6\xa2\xfb\x9f\x0d[\x9f\xc7\xee\
+\xa2a\xdd\xbe\x97@\xd7\x81O\x87u\xfe\x8f\x8c:\x7f\
+[\xa6\x5c \xe1\xdc\xd5\x15\x07\x03\xc8\xf3L\x80\xbc\x02\
+m\xcc\xab\x0c\x841Ji7\x94(-\xbf\x0e\x85\x1f\
+\xb0h\x1e\x8d}\xeei2\xe4:\xaa\x8c\xb9\xf3\x84\xbf\
+\xce\x7f\xb6\x9ed\xf8\xf9\xbb\xb9\xbf\xcb\x84\xd7\xfba\xe4\
+\xd0b2>\xba#\xc9\xf4\x8emR1\x123!P\
+\xfb-\xbfK`,\xf0&\x8a8\x96\x18\xd8O\xf9?\
+\x02O~\x11\x86\xeec\xc3V\xd1C\x80X\xb5\xc5u\
+^\x02\x02\xdc\xbf\xf1\xe1\x8fYg\x18D\x98\x03\x12%\
+\x99p\xa8s\x1bp\x93\x0c9\x00]\xdd'\xd1\x5c\xe3\
+\xc0O\xe3\xf7\x8c\x00\xc0\x18\x97\xf1g\xc5K4\x12\x8c\
+\xc7(\xfe\xed\xfd\xbc\xff\x18\xb0J(f\xdb\xf7\x0a\xfc\
+=7\x81\xb5q\x19\xdb\xe9\xf9\xb9\xcf\x97\xf8Qb4\
+2U%*\xc6\xdf\xa7\xb1\x00 \xf0\xef\x09\xc4W\xc2\
+\x13\xd0\xebs\xc7.o\xba:`\x12\x8c\x00\x02?\x94\
+\xbf;\xb67\x14?\xf1\x030\x8d\xc4y\xe2\x13~\x83\
+q\x14\x0f\xf8\xb9R\xe8dR\x15@6\x94^\x1c<\
+D\xb4\xeckyC\xe7\x1d2\xe2?>\x97\x1a\x83\xbe\
+-\xdfw\xba>\xab\xda\x89\xc52\xb8p\x17@\x998\
+\x9fhU\xe1\xd5\xc6\xa5e\xc6n\xd8\x89\xae\xc4t\xec\
+\x03\x08\xaf\x06Hi\x82\x80\xc3\x00\x8cT\x11\x0b\xd2\xc4\
+\xb7\xe1\xc4_\x1d\xd1M\xc41\x13\xae\xfb@R%\x0e\
+k\xb3' 0\x11\x0d\xbc\x00\xc2\xfb\x8e\xda\x04\x16\xa8\
+\x9ar\x1b\x1f\xc7\x05%\x0c#@\xc0\xe6\xba\xdd\x97\x09\
+\xa6\xd6(\xafgsBX7q\x86\xcf-j\xba\x8c\
+\xa7\x89k|\x05N9^jD\x8a\xba}\xe6\xd0\x0f\
+se,,\xf3d\xd4\x8a\xb8@^7f\x87\xbf[\
+\xb5\x1d\x0e\xd5\x940\xf1!\x87\x80\x10\x01\xc5%\xb3/\
+\xb7\xfb\x82\xe0\xe6\x010\x1fk\x8dz</\xf6\xa5d\
+\xe2\x03\xd9\x96\xee\xc1K_u\x22x\x95\xb1\xe08q\
+,\x05\xec\xe6\x0d\x91:Z\x10\xee\x97\xba\xac\x83\xe9\xb2\
+\x09d\x99\x8f\xee\xfb\xc8\x9cw6N\x94(%\x1d\xd4\
+\xfb\x7f3\xac\xcb\xec\x01,\x04\xf0\xe6\x83\xf56\x8a\xef\
+Y\x97\xc6q\xbd\x8e\x0b\xf4\xed8\xcb\x81\xb3\x1e\xc6\xbe\
+\xae\x0e\xd0\xcc\xcc\x16@2\x8a\xb7\xa0ha\xbeX\x1f\
+ci\xd0\xc8\xa4\xb0\xbe\x88\xfc\xe5\xfc\xdd<*l\xd5\
+\x0e\xa8\xdaR\xf7\xe5\x80\x1c\xbb!`\xc0\xb8\xee\xec\xef\
+m\xbc\x0b0\xb3\x9eu\xcb\xd0>lTi\x1d\xdb\xcd\
+\x10\xdf!\xd2w\xb7\xb0\x8e2\x9d\x01}\xd5\xd2\xdb\xe7\
+\x00,J\x03N\x08\xeb2\x082o\xff_X\xb7\xbe\
+Q\xc2\xf4+\xfen\x93=[\x196\x80\x90'5\x8b\
+\x00\xee\xa6-\x80#\xd2\x96\x8e\xc1\xf4\x91\xb0y\x19\xfe\
+eX\xf6\xd9\x8e\x00\xef+a]\x09\x82\x83@\xc6c\
+\x10\xcf\xa9\xb6\x8e\xc9\x98j\x94\xf3\xdf\xefD\xde\x8c\xe7\
+\x7f\x86u\x0c\x96\xbf\x09\x9b\xb7\xab7\x87\xad\x0e\xed\xf4\
+\x92\xb0\xae\xe4\x09\xf0\x92\x0e}1]\x00XG\x86\xad\
+\x0e\x96@T\xfb;\xda\x0a\xdb;\x84\xad\x14\xff&\xe6\
+\xbf\xbfv-\xa9\x0c\xc5y\xb2$\xe9\x22\xbb\x0b\xef.\
+\xdc(\xfc\x8b8Z\x060\x07\xee\x1a\xd6\x95\x16\xa4C\
+\xb2\xff\xc4\xfd'\xed?q~}\xed\xfek\xf6\x83\x8a\
+\xfc\x0fa\x0d\x88h\x19\xdb\xbd\xc7.\x81V\xf3\xff\xe7\
+yw\xe0\xb2a\xf3\xeb\x95\x0f\x9cp\xe0*\xe9X_\
+yU\xb9W\xe2\xb1;r\xb6\xf3\x95p\xcf:\x9f\x01\
+\xe5\x02H\x81\xdc\xbd\x9a\xad\xe7\x04\x8d\x08\xfd\xb2Cz\
+\xed;KF\xaf\x9d\xa3\xf6q\x9a\x09A\xb5\xbfS\xab\
+A?e\xef\x94\xae\xe4#\xa9\xfa\xd3wg\x9b\xff~\
+{\xe7\xd9\xee2\x7f\xff\xf1\xb0U\xcd\xbe\xae\xcf\xe7\xa6\
+\xe6L\xab\xd9\xbdk'\xa2\x95L\x9f\xd6\x0e1\xfa\xb8\
+\xbf{\xe9\xe2P\xe7R\x9e?Jd\x88\x90\x95&@\
+\xce+\xd4\xe36\x0f?\x90\xa2h\x7f\xd2\x95\xb4\xec\x16\
+5\xf5Z\x17\x18\x85\x1cr\x0e\x93\xbe\xd9\xe9@\xd3\xc0\
+\xd8\xbbS\xd6jg[7]\x18\xa6\xb7\x85\xcd??\
+oX\xb7^r\xddU\xe0\xff\xe6\xb0n\xfde\xc0Z\
+\xfb4\x80\x15\xf0\x9b\xc0a\x05^\x9ecR\xaf}\xee\
+t\x9e\xb0\x5co\x8fL\x0a\xf4\x1fu@Av\x83\xd8\
+\xbdx\xc9`Ww\x085\xd5\xda\x04*\xadp\xffD\
+\xd2h0\xe9\xbe\x83\xf1\x02\x08\xcb\xfb\xab\xf6\xbc\xba\x0b\
+9\x17i*\xa0\xa2\x03&%J\xee\xddl-U\xc1\
+\xa0H@\xa8\x00P\xc0/\xbf!f\xfb[\x1a\x03\xa9\
+Qa\xab\xb4\x80\xd8a\xb6\x03,\x8d\x07\x99g\xc0\x03\
+\xc0 E\xff\xb4\xf5\x0c\xe2\x7fP\xff\xa7\x9f\x0dk\xfb\
+y\x13\xc9\xdc\xfc\xd9\x22\x22<\xefB\x8d98\x9f\xe2\
+\x0b3MW\x9c\x04\xa26\xbf\x176\xbf~as\xbd\
+\xd0z\xe9\xda~\xbeb\xfb\x8a\xa6-q\xf2\xee\xe4\xb6\
+o/\xaa\xfbD!S}\xbe\xc4Y\xf3y``\xe9\
+jR\x8c\x9f\x04\x5c\xec\xf7\xd3\xfb\xc3V\x00\x88\x1f2\
+\xff\xeb\x02<c\xaa\xe8\xde2\xf4e/\x06\x06\x7f\x22\
+Kv\xca\x0f\xcaR*\x9aJ\xba2\x14\xc0L4\x12\
+\xf3\x85\x1f\xa1+\x07?C\x17\x10\xdd>\x9c_\xde\xc7\
+\xf9\x02\x08\x13\x18\xe9:%Q\xc6\xff\x1cD\xf06\xb7\
+\x0e\xeb\xe6\xa7\xd29\xe2\xa12\xea\x02E]j\xf8;\
+2\xf3c@\xcd\x9f\xe1O\x0d\xa5\x9eU\xaak\x1f\xc9\
+\x92\x881s\x5c\x22\x85\xe2\x22\xa5\x8a\xba\xf1diS\
+\xf9\xb1\x12@\x18\x89J\x83\x01\x0c\x18F\xc6\xc3\xf3\xa4\
+\xf1e\xbe\x8cm\xd2\xf9K\xae\x0fsJ)\xc21a\
+]\xe0/\xf0\x1c\xbbP\x8d\xfe\xfd\xa8\xfd4&^\xc5\
+\x0f>\x97\xbf+\xfe\x19\x03U\xef7\x96\xd6\x1a?\xbf\
+\xe7\xba\x00\xaa\xfcI\x9f?v\x87\xc2\xf0S2\xca\xdf\
+\x02\xac\xf8\xbb\x911\xcb\x0f\xf4\xea~\xfc\xde9\x87\x8a\
+\xbe\x17\x93U<% \xa7\x89A\xf3\x0ds\xc3\xf3\x94\
+@\x01\xdc\xdb\xbf\x00\x04\xa3\x9f\xedz18\xf9\xcf\x00\
+p\xc0\xca\xc84\xf0s\xcf\xcbs\x1a\xfd\xdc<'\x0f\
+\xb6@\xf7\xf3Iu\xba\xe4\xb9\xbc\xd1\x88\xe0\xfc\xa8\x91\
+\xc1\xd7\x07\xebA\x0b\x07\xe3\xbb\xa3\xbb\x80\xce\x07\xba1\
+\x99\x88\xcc\xec\xd7\x80FF\xf4\x16\xdd\x0d\x0e\x81Y\xa9\
+\xe1\x07\x02s\xdc\x0a<T\x0d\x88\xc0\xc6A\xe5\xd5D\
+\xc9\xeb\xae\xfbEa\xe6\x80{\x906\x0e\x07\x9a\x89\xd0\
+wI\xf8\xaf\xc3\xfb>\xee>\xb3\xfb\xf4\xee\xd3\xdd\x83\
+S{(\x90\xbb\xfc \x227v9\x18)\xdaC-\
+s\x89V\xc8\x90B\xc8dDmt\xbe\x1f_\x05\x92\
+6p\xb5\xe8\x1c\xa8\x8b\xe7u\xe4A\xb8\xc1$\x00\x5c\
+\xb8^\x07\x81\xf1:o\x02\x09#\xa5\xdc\x84\x13\xb8\x8d\
+52~o\x04\x96\xbe{(\x02\xba\xfb\x83\xb0n!\
+\x02\x00\x04\xe8\x0f\xc9\x00\x1fu>U}\xf7N\xcdZ\
+;\xf3\xc3\xfdC\x8c\xaf\x96\xcc\x93\x9fK\x118\x81\x16\
+\xf1;\x19\x155\xf7I\x15\xac\xfb\xca\x85\xbd{K\x22\
+\xf0S\xd5\xdc,\x0b\xcf\xfcW\x13~\xbb\xac\xd9w\xfd\
+\x1c}\x81\xbf\xe7\x01Q\x971\x92\x09\x16\xb8\x12\xd7\x12\
+\x809H\xc6\xf9\x0e \xb0\x01\x18g\x1b\xbdy\xed~\
+\x1c8\xe6\xbd\x0d\xc7\x86h\xde[\xcf6^\xaf6\x22\
+\x01\xba\x0d\xde\xba\xf4\x0a\x081\x0e\x10w\x07lRx\
+\x8b\xca9R\xcf\xf4q\xd5\x15\xc1zu@\x10\xe3\x13\
+\xa0\xa3Rj\xfbw\xfff\xeb\xf8\x0c\xb5\xc2\xa5\xc5\xe0\
+y\x13\x0d\xcc\x00\xd8<*\x0a2\xed\x87\x7f\x0d\xeb\x02\
+%\xfb&\x91,}\xdc\xf3\x00G\xdd\xad\x92\x17\xcfO\
+;\xbf\x1fm~\xb8\xf9Q\x0bx\x9e\xde\xa8\xb8\xc4b\
+R\xe5]\x86\xa1\x98\x14\x99\xe9*\xa0\x82\xb8S~.\
+\x91\xaa\xed\x0b\xc3:-\x80g\xee=\xa39z\x00\x98\
+l\x93V\x8c\x0d\xb5\x99O\x08\xeb\xf6=\xed\xc42\x80\
+\xd3\x16o\xff!ak\xe6wzu\xd8\xfc\xb9o\x09\
+\x9b\xbf\xff\xefak\x8d\xf1\xf6Zak\xa6\x7f{\xd1\
+\xb0\xb5K@9\xaaD:s?\xdc|.\xac{\xee\
+\x99\x01\x9b>\x14\xb6\xb6\xb1\xdc|j\xf3\xc9\xcd'\xb3\
+]\xd8Ow\xfbV\xce\x7f5\xb7\xa5Z\x9f\x94\xf4\xa2\
+f\x1f\x156\xdf\xd7-\xc3\xe6\xef\x7f\x14\xd6\xc4\x83Z\
+\x80\xbe\xbdO\xd8\x1c\xf0\xbf/l~\xbd\xd9\x81\x9b\x1f\
+\x98\x9f\xc7\xf6\x01\xdb\xfbo\x1f\x90\x0c\xb7\x9f\xef\x02\xda\
+3\xe7\xf7?\xb3\x9b\xf7\xd6\xcf\xb1\x8b\xf6\xce\xe6:\x9b\
+\xeb\xb6\xcc\xde\x13wOh\xe2\x85\xd9\xa6\xb1\xf6\xf1\x1e\
+0\x88\xfbyj\xb3\xea?]\xf7\xc7\x11{y\xb3X\
+\xb7\x9fm\x99,\xdd$\x92y\xb1\xf7\xb4T1\xcf\xf5\
+>])\xac9\xf0\xf7\x09\x07\x9e\x83[\x0c\x8et\xa0\
+\xa7'\x85e\x80\xf3KyY\x9b\xe5\xbc\x9e.\xb4\x02\
++\xdb\x03a]\x863\x81e\x01QQ\xa6#0\xfd\
+xR\xc2c\x7f\xbb\xc6l\xd7\x5c\x99\x86E\x81\xce\xcc\
+j+A\xbc\xe4\xfa9T\xd3\x0b\x10\xa1ZNSA\
+\x1b%\xcc9\x9a \xc4\x14e\xc6\xb4MLFN9\
+R\xf63\x0e\xf8w\x16\x07\x92\xb6NQ\x97ex\xd2\
+\xb1\xab\xfe\xf1\x00\x93d<T\xeds\xaaIOw\x88\
+\x9c\xf5\xfcz\x8b\xd9N\xcc\xfd\xf2\xbc\x1d\xe0\x92\x00\xe7\
+\xeeG\xd1X\xb9\x89\xd1-\x81;\x113\x8e\xb2R\xad\
+d\x0a\x00\xb4\xaa\xddm\xf6\x9d\xaf\x12\x1c\xb5\xf0\xe9?\
+4\xed\x8e?\xcfL\xec\xcfu%\x017k\xfd~\xd6\
+\x00*\xc2\xc6\xd7v\x81\x98\xf3;\xae\x22\xda\x8d\xbe=\
+l-\x85*\xc6\x8b\xb6\x80\xaeK\xc0\x96\x0c\xbc\x0a\xf4\
+u\x89xY\xf6\xe9\xa6\xb5\x90b~Ur\xa0\xe43\
+\x9fg\xf4\x1c\x88\xae\x03\xdavn\x1f\x1c\x96]\x03\x9e\
+\xd9\x89<\xa7\xe8\xe3\xf6\x19\xdbgn\x9f\xd9\x8d\x9bZ\
+\xfe\xe3\x16\xea\xfe\xfc\xaf\xcf\xda>+K\x86N^\xbb\
+.lO\xde>d\xfb\x90\x15\xf8\x9b\xf7\xe6\xa5F\x5c\
+\xdb\xbb,\xb9\xc1\xac\x9c^1\xbd|zEw.\x1d\
+\xbf\x00\xd4\xbb\x1b,\x00Tug\xc0\x00C\x05\xe6\x8f\
+\x5c\x22\x81\xe5_\x5c4\x93\x88\xbb\xee\xfe8\xac;?\
+P\xcdS\x05\xbfJ\x90\xf8gDA\x9dg~\xee\xfc\
+\xe5\xd7\x0b0\x9d\xc7\x02\xc9\x0b\x86u\xa2\x90\xcei\x00\
+\xd9)\x090\xf27\x00\xf4\x02\x5c\x81\x19\x00Z\xe0f\
+>*Q\xd1\x9dG\xcd\xb2\xd2N]\x93\x00\xe17X\
+\xba\x1c\x94\xb6\x88\x80\x9d\x9fp\xd7\xb0n?\xe4\xbf8\
+\x871_1K\xf8\xa9g\xb6TR\xfc\xfe\xe9\xed\xf7\
+\xd5\xdek\xd7\xe6~\x00\xb5\x00\x18\xdd\x9bn\x1e\xb6\xae\
+\x7f\xfbt\xf9w\xb4@\xf8\xc1\x80\x12\x09\x0f\xeb\xcc\xf5\
+\xa2\xa6[\xe7\xb4\xc8$b\x92\xe1Z\xcf\x83\xb8e\xd6\
+\xba\x97\x88!\x06\xa0\xaf\xb1\xa4\xc0~\xc7\xdf\xb6\xef\x8d\
+\x09\xd3\xf1\x95\x9f\xef\xf7\xc6D\x93\xf90\xc6\x8d~\x9f\
+\x7f9\x02\x01\x122\x00\x97,u*\x80\x05 \x99\x80\
+]\x01H\xfcP\x818?w(\x09\xd8}/\xac\xdb\
+\xd7G\x11D\x89A\x09\x1e\xed_\x8d3\x7fV\xbc\xe6\
+\xf3\x01\x0f\x9e\x97\xebq?\xc3|\xa9\xf8X)Z2\
+\xd86\xef\x09\xeb\xc6K\xa2od\xea\x8f%\x99\xee\xd3\
+s\xe5\xc7\xfb\x9cd$\x1cl\x97\x19\x07\xdf\x1c\xbe6\
+J,\xb18\xb5\xff}\x1f\xc8\x83]\xc0\xbc\xcb\x0e\xe9\
+\xc9\x18h\x99\x025\x0b\xd7\xe8\xda\xf6\xb9P\x14%\x0e\
+JL\xab)\x07\xa4\xef\xef\xe8\x02\x01\x01n\x5c\x8d\xbf\
+\x1a\x91x,\x17\xec\xd4\xce\xd5\x16\x0b\x08\xc6~\x88j\
+\x14\xb5-4a\x05\xe0\x02]\x01\x12\xc4\x07\xf5\x11\xb3\
+\xc1\xfd\x0b\x84\xdd\x97\x071\xaaI\xca\x9c\x1f\x99\xf7A\
+\xec*\x11\xb9r\xc4}\x09L\x04\xae2s\xde\xdf\xc1\
+\x90\xa5\x13\xd5\xb6Pf_\xa0\x9e\x1b\xf8\xe6\x02\xe9\xe8\
+\xa1\x928(\xd4\xa2)\xc9\xc8Z\xb79\xa8^2\x09\
+7M\xca5\xa6\xc2@\xc1\xae\xcc/\xc7\x94ce\x1c\
+-\x18\x19\x02\x80\x82\xeb[\xa9\xe1\xcbs\xfaN\xa9v\
+.\x1b\xdf\xdf/\x07\xfa|\xf0-\xd7+\xf0MG\xa8\
+\x02\xb0\x14\xa3\x91\xd9\xa9v/\x02}5m\xe6\xb1\xb6\
+nj\xf1\xb5\xcb!z\x94\xb5l2\x9dU\xc3\xf6\x9d\
+\xa1$\xc6F\xb67\xd4\xdc|.\xe7\x95@Z\xe0\x02\
+\xb8\xc9\x1a\xeb\xda\xf0 \xe8(:\xfeN)\x80\xf9i\
+\xbez\xb5q[7C?\xd7\xda(S\xbc\xeb0F\
+\x8d\xfb\x10\xd09\xf8\x00/I\x0d-\x06\x84\x8d\xcb8\
+\xca`Y\x9f6<\x88\xba/\x81;`\xe2;\xb5\x1e\
+\x96\x8d;\xa9\xaf\x00\x0e\xb5\xd0\xd5\x15@@\x0d\xe0\xd2\
+\xce\x09\x03CM\xa9\x8d\x17\xc5\x1f\xa5\xcb8igG\
+}=)~\xa8\xe6E\x0d\xce\xb6k\xd5\x97;\x9f\x7f\
+Q\xe9R\x0c\xac\xe6\x9d\xb6s\x0e\x10\x22I7_\x1c\
+\x92B|\xb3\x06\xb6\xee_\xcd\xb2u\xe39\xa0\xd4z\
+>\xfa\x12C\xec\xed\x8b\x1cg\xcc\x81\xcb\xa6j~R\
+b\x05NE\x09\xce\x12\x80\xe9/\xc2Z;\xb3Wm\
+^\xd5\xc6\xe5\x96m\x5c\x82B\xff\xac\x8e\x99\xa2]k\
+:\x86\xb3;|\xb9\xa6\xd6\xae+A\xce\xdb\xe9\xc9a\
+\xf3\xeb7\xc2\xe6\xd7S\xc3\xe6e\xfd\x8e\xb0\xd5\xef\xaa\
+LT\x22\xe7\x18K\xda\xee\x1d\xb8FXG\xb9L\x87\
+\xdb\xbc\xda\xde)lu\xd4*\xa3\x98\x99\xe5\xe9\x82a\
+\xdd\xf3xq\xae3\x19\xef\x0f-\xe3\xd4(\xbf\xf7^\
+\x03\xc6\xea\xbf\x8d\x02}\xe1\xa5&y\xff-\xfb\xff\xb4\
+??\xc7\xfd\xd3\xf7O\xdb\x9f\x0f\xe8\xfd\x9b\x84\xad\x01\
+\xcd\xf6Ka\xf3\xeb\xa5\xc2\xe6\xeb\x7f\xf9\x81W\x1c\x98\
+\x1d\xfc\xed\xff\xdb\xbek\xfb\xae6\xee\xafn\xe3\xfe\xbd\
+\xa4\x9e>gv\xc0\x9e\xd31B\xac\x07\x07\xb4\xfd\xf8\
+qY\x1a\xf1\xa9\xcd\xa77\x9f\xca\xf3\xe2\x98N\xa5\xff\
+\xc9M?\x1c\xef\xaa\xa8\xd3\xcd\xdd\xfb\x8d|\xdfc\xbb\
+\x0c4\xa0MI\x94~\xd6?^jjw\xbf[*\
+\xd1m^\xcda\xd2\xb3\x22P\xda<\x22l~\xfd\xcb\
+\xd9^\xdde\x94\x01}D\xcd\x88y\x05\xe18\xfa\xb5\
+\x9f>-\xa2\xaf\xda\xec\xd1\x00xh\xd8\x1a(\xa3\xf2\
+N\xff1\xdb'Wu\xfd\xe9]a\xebs\xdd\xfe^\
+\xd8\xfc~g\x86\xcd\xaf\xef\x0d\xeb\xee\x87\x03\xf9\x9c\xbd\
+g\xef=\xbb\x13\x0dL\xc6\x05Q\xbbR\xb3\x07\xe8\x1d\
+\x17\xd6\xad\xbb\xdc\x9f\x01T\xed\xdd\x9e\xdd1\xf48\x82\
+2\xea\x09\xac`\x0al~9lu\xfc\xfd\x9e\xc0_\
+\x9b\xca\x12\xb7\xc2\xe4{m\x8a\xfd\x05C\xe6\xa5YS\
+\xfc\xb0\xd5Q/1\xcdk\x86u\xdd\x08\xd4\xf4?\xbc\
+\xd9\xde\xee\xc4\xb0.\xb0#\xbe6\xa8yW\x22!\xf7\
+\x8d\xcd_\x85u\xfbx\x02\xa2\xd3c\xc3\xba\xee\x03j\
+\xa29\xb4DP\xdf\xd4:\xc7\xaf\x01t\x06\xf0%\xa2\
+\x08\xf0\xa1Q\x90\x81}\x018\x09|W \x9f\xedW\
+\xabd\xea\xb9{\xcf\xdb{\xde\xba\x9e\x89\x5c\x96h\x96\
+qRB\x90\xe2\x9f\xdb\x9b\x85\xcd\xf7q\x9f\xb0\xc68\
+i\x9a\x02\xbb\x8f\xe6\xfd\xe798=q\x01\xb2\x88l\
+\x05\xad\xa4\xedW\xce\x87\x8b%E\x1f\xa0\xf2\xa4d\xf0\
+$CA\x9b\xda\xd9\xfbm\x81\xf1\x81\x97\x86\xad\xdd\x14\
+\x04\xe8\xd3\xe7\xa6\xcfO\x9fk%\x8cM\x14\xb4\xc4^\
+\xb3\xeb\x12M\x83*\xa10^\xee3\x19+\xa5.O\
+\x94\x92_\xc5\x9f\x10\xf8\xff~\xd8\xcal)1=\xa2\
+\xaf2\x8b\xce\xe7\x04f\xaa{M2\xadJ\xd4\xd19\
+C\xa5_\xc0\x91ZE\x05\xe8\xf0\xbb%\x96\xeco\xfc\
+\x1e\x81\xb4@\xd7\xf9,\xb0\x19U\xe6%\xd4F\x8d\xa9\
+\x04\xce\xeb\x5c&B\x09hwn\x19g\xa5\x0b\xcei\
+\xfb\xa2\xcf\xc7\x1c\x120\xfe\xcb\xfc\xff\x7fi\xfe\xcc\xb7\
+\x9a?#\xd1\xa7\xcb\x11\x119\xf7\x03\xd0\xc0XS\x9a\
+A\xf3\xc3\xfd\x8e]\xbf\xf8\x8d\x00\x00\xef\x831\xa1\xd4\
+\xda\xbe\xe3\xfa\x004\x18\x8e\xb9\x8fT[F\xe2\x87y\
+\x9f%\xee+N\xe0W\x8e\xa5\x9fc7\x80\x91\xf2o\
+\x9e\x09\xa0K\x14<\x03Z\xf1\x0f\x00\xc0\xfd\x89\xab|\
+o\xfc=O\xfe\xa3\xeb\x18\xfa\xdb\x97V\x0cf\xa5\xe7\
+\xe0}\xf8\x7f\xa8\xf6\xe2H\xc0\x09\xe0F)\x94yz\
+\xb8?\x7fh\xf7\x03\x1aI\xc7\x86\xadZ6\xc5`\xf1\
+>\xe2Bq\xdf\xf0\xf9\xe5\x8f*\x85\xe2\x07J\xf0\xea\
+\x02\xe4y\x11\xe1\x95 \xe2'\xba^\x09;\xe3..\
+\x00\xb8aB\x98Wc|\x9d\x7fw\xb0\x85[\x9f\xe9\
+2\xf2Y3\xd0\x02\xcb+v\xb5\xfcS\xd3\x81?T\
+M\xff\xa8\x81Z\x7f\xbe.\x00\xf0\x00u\x150PK\
+\xc8thFc/'\x14\x95\xc8/\xe6\xfb_\xa0\xcb\
+x\x8cT!\x81\x92\x00s\x18\xd0\xbaa\x07\xb7\x0c\xbb\
+>\xec\xd9~\xa72\x89&\xba\xbf\xb7PQ)e\x5c\
+\x89\x8e\xb9?\x0e\x04\x8a\xa3\x80\xd9\xf7\x0eV\x0b\xce\xc2\
+\xb7@l@\xfaz\x9aX6*\x01[\x1e\xf4%v\
+\xe6\xc0u]\x0eT\xe3\x94\x81B\xf5\xb3\xbcm\xaa\xa6\
+\xda\x90\x8d#\x86\x05\xca\xdb\x08\xa4`\x06\x8c\xed. \
+\x83\xa8\xee\x02\x13\xcfC\x1b8H\x9d\x8d\xa7\x07\x90v\
+\xed\xb9-\xd7\xfb\xf9\x9c\xc8\x02\x1d\x8e&\xe0\xc1\xefs\
+\x9c\xc7\x9a\x1a\x1b@n0U\x12\xc1\x81\xf3\xbe\xd9\x97\
+\xb7\x1c\x89D\xb2\xab\xd4\xc1\xe7\x0d\xe2|{\xef\xca\xda\
+\xa4c\x12\xf8\xb9X\xce?\xf3\xce\xc2\x04\xf8\xa8\xa1\xfc\
+hn<\x1c\xb3/\xe7\xbc\xbcV\xb6\xe3r0\xa0\xb6\
+\xca\xf8)\x81\x00d8P\x05\xc4\x90G\xeb\xc0<[\
+\x99\x19\xcb:\xf55\xaa\xbc\x8e\x8c\x00\xf3\x7f\xd4\x02\xb1\
+\x9em\xd0\xe6/\xa0\x07U\x1e\x15\xce\xfb)11\xcf\
+iA\xa0\xe6{\x7f\x1b\xbc\x80:\x01\x8b\xa20\xda'\
+\x12\xd1\xd6\x86O&\xab\x9eW\xae\xd7\xaa\x19\xce\xf5\xb4\
+\xfb\xed\xb0n\x83L\x07\xac\x02~\xa2x)\x8aV5\
+\xfeJ3\x00\x812\xef\x007\x01x\xaa\xe9\x13\x03*\
+\xb1\x22\xcf\xc1\xbc\xe0p\x99O\x90\xdf\xbc~\xc0\xab\x9a\
+\xffR}Us(s\x02\x10\xcc\x8c\x18\x87w\xef\xcf\
+\x9b\x15@Z\xfd\xc1usM\xb12Z\x19M\x1a\xec\
+\x0d]-\xe5\xcb\xf7^\xd62\xc5!\xb1\xf8\xe0.\x80\
+\xa4r\x9dj\xda%n\x96\x01\x12GGF\xb8\xfa\xd9\
+\x03\xe2d\x22\x92y\xb1\xd9\x86\xad\x81s\x95P\x10\xb3\
+2\xcf\x89`fm.\x11@\x22\x88u\xff/\x0e\xeb\
+\x982Y\xba\xb2\xbdcX\xd7?\xf7\x87\x9b\x1f\x05\xa3\
+b\xfb\xd1\xb0\xae-cf\xce\xa7\xe3\xc2\xe6\xd7\x07M\
+\x0f\x9c\x1e8oo\xaf\x0f\x9b_\x9f\x1f\xb6:\xf4\xdb\
+\xd7\x85\xcd\xfe\xe8U\xc3\xe6\xd7\xaf\x86\xcd?\x9f2\x13\
+\x98\xfd\xcd\xa3`\xa9\x95,=o\x09`JlK\xa6\
+*3\xbbU\xc2\xb4\x1f\xb6\x06\xe2\x15@\xdegwR\
+\x0b\xf4\xe2T\xf8\xbf\xad;\xc1\x95wW\xe9\xa8\xe5\x0f\
+\xdc=(ju7O\x9f\xedi\xdd\xfa\xfcj\x93/\
+\xddk\xdd\xceo\xdd\xe6qk\xc3[\xcc%T`*\
+\xd6\xa8\x88\xe6\xf5\x17r\xbd\x9c\x9a\x19\xd7\x08\xe8^\xbb\
+\x9eO\xbb\xdf\x0b\xcbZ\xee?_\x993\xdb\x8b\x87u\
+]\x05R\x5c\xb0\xd5`\xff\xd6\xdae`\xf7?R\xcc\
+\xf1\xf2a\xf3\xeb_\xcf\xf6\x865@.\x06\xc8\x9bf\
+\xfb\x9b\xae4e\x7f\xe9\xc2\xc0?hb\x8a\x8fY\xcf\
+\xe5\xa0\xd5\xb4\xda\xf3\xa7\x86uj\xf4\xb9\xbfb\xc2\x00\
+\xf6\xcb\xb1B\xd5\xbdNf6\x7f/\xdb\xc8\xda\xa78\
+\xca\xf6Ym\xf6\xb2\xc6\xbb(\xe7D@1Jr\x9c\
+\xa7\xdf\x09\xeb\x00\xce,y\x89J\xfe\xa8\xe5Hos\
+o\x00\x00 \x00IDAT\x9f>\x1b6\xbf\xdek\
+\xb6(1\xf8\xfa\xa2\xfe>]\x22\xacS\x95\x1e(\xff\
+\xad\xc6\xfe\x01+\xd0\xdd\x02\xee\xafd\x86\xfc\xf5\x19\x08\
+>\xa2\xcb$\xc6l|\xfe\xda\x8e\xb49\xb6\x17\xce\xfd\
+rvl\xa7W\x85u\xcc\x08\x81\x17\xc7\x11\x90-@\
+\x93\x00\x11\x88\xa2\xecg\x8d\xfc\xf4\x96\xb0\xae\x0b\xcf\xb5\
+\xc2\xba\xfd=\xe0\x987\xb4\x84\xc0\xf29\x00\x06\x8e\xf2\
+\x87\x93\xa1\xe5\xfcr\x1e\xc8\x94\xd1\x8a\xc86\x88\x80\x8a\
+\xe9\x95a\x9dv\xc6\x0f\xc2\xce\x85\x91\xf8\x9a\x14\xa7\xcb\
+\x9a\xecR\xb7\xcf}C\xa01\xdd%,\xdb~\x9e\xaf\
+\xb5\x1bm\xef\xb7\xfd\xde\xf6\xbb\xdby]m\x9f\x1e6\
+\xff\xfc\xef7\x7f\xb7\xf9\xbb\xf9\xfb7\x84\xcd\x7fw\xf7\
+\xb0\xa6\xe6?\xdb:\xbf\xe7]\xa0\x016\xf6e%\x11\
+\x9b7\x86u]~\xf8{\xa8\xe5\xba\xac<\x22K\xb2\
+\x9c\x97\xb9\x1e\xab\x9d$m\x87l\xe3Y\xf3$\x19i\
+\xad\x07\xc4\x83\x9a\x7f\xb4\xf8kcW.~\x02\x91\xe5\
+\x1c\xc7\xdd\xaf\x85u\xcc\x83\x07-\xefC\xb5\xbf\xfc\xe9\
+\xd4&)\x7fZ\xbb[\xed\x06\xf9\x13\x02\xaf|\x9e\xc5\
+\xc8\xf3\xefC\xad}\xd5\xf8\xfb}~>\x7f\x8bV\x81\
+\xf9c\x9f\xf5\xc5_\x1aK$\x05\x92\xfc \x09\x0f\xfb\
+\x22\x80`\x14\xcdv}\x00\x12%g\xa3\xd8\x1c\x7f\x8c\
+\x1f\xca\x8f3>\xfc}\x01#*9\x80A\x82\xc8\xab\
+\xf7\xe3_\x01\x06\xd2\xbf\x1dK\x1f$\x026\xb7\x0a\xeb\
+\x80\xa0\xa1=\xdc\xc8\xd0-\xc0\xd2\xef\x0d\xa2}\x15\xaf\
+\x8c\xed\xf8\xc6\x12m\xe3\xe6{q\x80q0\xee\xf6\x17\
+\xfb\x8duo\x9e\x0c\xcc\x91\xf23e\xe0\xfb\x92\xf6\x8e\
+\xda_\x89c\xf3\xc6\xfe5\xd6\xce\x8fq\xe4X\xf2 \
+\x0e\xb2\x7fx\x9e?\xa9M\xa2\xfb1\x9fF\xb5~_\
+\xd6\x9b\xd2\x0dm\xcc\x89kb\xd6H\xa0z_\xfb\xd9\
+X\x02a\x9c\xf8\x99~_\x82%E\x01\x0f\xd6\x85\xec\
+\xb7\x5c\xec\x1a\xa0S\xdb\x17\xd8\xf7bdGw?'\
+\x0a\x08\xe1\x80\x98p\xd0\xbdo\xe0)Gt\x81e\x84\
+\x09\x1d\xd5\xa3j\xce\x83\xe2\x7f\xb9\xc3U\x0c[\xb8q\
+\xe9\xcc8\xfct71d\x86\xbf?\xdb\x0f\xba\xcc\xb4\
+\xbf\xf3*\x00\xf7\xe5\xc1\x8f\xb5\x12\x16\xf6\x88\x10\xa1\x16\
+'\x95\xb1\x1c\xf7TS\xad\x8d\x05\x00p\xcd\xa4\x9c\xaf\
+m\xf6\x0eA\xfc\xaa\x86\xdf\xdf\x8db\x12\x19\xa8\xa3\xb2\
+\x96\xa3\x22`\xf4@s\x01A\xa6\x0a9r \x8fm\
+w\x04n\xee[\xa0\xabF\xf0\x9f\x17JT\xdd\x17\x84\
+\xe9\x139\xa1\xd4\x80g\xcd\xdb\xe6vK\xe6c\xdel\
+\x16\xc7\xdd\xb8\xb9\x1f\xaf\xe7\x1d\x16\xea\x18\x90\x8e\xb5G\
+c\xbbF\xf7oc\xb1a\xfb=\x0b\xcf\xfb\xfb\xb9Z\
+C%\x00\xcfm\xb6n\xb8cfz\xecO\x7f\x8f\xb0\
+\xae\xc4 \x19\x18\x9b\xab\xe6<\x93\xe1CUK\x07\x9c\
+\x08O\x1dh\x9e\xb3\x80\xf5\xba\x19\xe0\xbf{9(\x8a\
+\xa2*`r\xe0\x98O\x10\xc9\x04Z*\x10U\x1bL\
+[\x82\xe6C\x22\x96\xc5\xfcp\xc0\xfbr\xd0\xff\xa4~\
+\xab\xc6\x03\xc5\xda\xdf\xdb\xb0Q\xc4\x89\xff\x00\xb0D\x9c\
+~\xdfs\xca\xfbG\xb9\xab\x1a*\x1be~ne\x12\
+\xd4\x82kwi\x1d\xa3\xeab(\xa4\xf8h\xed?\x0e\
+\xcc\xa1\xd6\xafj\x08e\xb2\x1c\x10\x98\x01\xd9\x9en\xcc\
+H\xe9O]@\xc5\xa7\x97R\x1f}\xbew\xf7\x0d\xeb\
+\xf65\x14F\x81'J\xbe\xf6B21\x19\xe0m.\
+\x1c\xd6\x8d\x0f\xf5t5\xda\xd9\xd7\x1du\xdb\xfb\x95\xf8\
+\xa0u\x9e\xfd\xdd\xab\xbf}\x02\x9c%\xa2\x85\xb9\x93\xc0\
+F\x05\xa2\xe9\xc0\xcf\xa3\xfe\xc2&\x1at\xff\xb0\xaeV\
+9\x01\x9d\xe9\x01a]&\x12\x05\x8e\xc3}L\xd8\xfc\
+\xfa\xe9\xb0\xb5\xc6\x7f\xd3\xbe\xe6\xd77\x84u\xa2|\x98\
+\x122\xa4\x7f\x1c\xb6\x066\xdb\xaf\x86\xad\x81q\x84\xef\
+\x11\xc0c\x86T{\xc5tX\xb4G\x9b\xdd\xec\xa5]\
+\xe0\x1d\x97\x00k\xf3\x90lWw\xbd\xa4\xd2\xe6>3\
+\xfdM\xd8\xfc\xf9\x7f\xb8\xb4\x97\x9bn7\xddv\x9a\x1d\
+\xee\xe9\xc6a\xf3\xf4\xbew\xd8\xfc\xfd\x0f\xc3V&\xcf\
+\xf6Va\xf3\xeb\xad\xc3:1\xc2\xf7\xa5\xa8\x0f\x15l\
+\x19L\x81+FC2\x90v\xb7\x0e[\xdbPm\xfe\
+OXG\x11}\xfc\x12\xd8\xcc\xcfv\xd9W?6\xef\
+\x06A\x91\xbfmj?`\x86`\x90].\xf7\xc9\xeb\
+e\x00{\xeb\x85\xa9P\x19\x5c\x00\x00\x87U{8@\
+\x0dq6\x80L\x02D5\xbfC\xb3e\x93m\x5cO\
+o\xc0\xc5\x8d\x1a0\xc9\xf1\x14\xa0\xca<\xe9w\x9fZ\
++\xbb\x03\xbbm\x88\xa05\xc9\xa8\xe8_\x7f\xc2t\xa5\
+iv@\xa7\x9b\x86u\xf3\x91C.\xc0\x8eu{\xf7\
+\xae\x168\x01\xbd\xe9\xdba\xad\x96{\xb6\xf9\xf5?\xc2\
+\xd6L\x8a\x1a\xfa\xed\xf3\xc3:J\xbf\xe7#S\x9f\x81\
+_\xf0a\x1a#\xe6\xda\xcb9Q\x0c\x13\xfb\x22\x87t\
+\xa8\xc5D)7?\x88\x09\xaau\x9e\xfe<\xac\x1b\x17\
+\x80\x04\xa6R\x8a\xc0M7\x0c\xcb\xda\xe3\xf7\xaeTS\
+\xc0H\xf9\x1fW\x99\xedgW\xffl\xdeM\x1e\xd7\x02\
+\xb1\x08\xaf\xff\xa4\x0b\x5c3c]\x09\x94\xc8\x93\xbf\xa5\
+SsO-\x80\x1a\x97\xe0\xd9E\x09\xcd\xe7\xc3V`\
+ms\xe9\xb0\x8eY\xe3\xbc\x0c^\xd4\x8dW\x00Q`\
+\x01X)\xad\x0b\xfb2G\xda>\x9a\xfb\x0bfL\xf3\
+*\xbe\xdc\x01\xe8\xfc\x00\x8e5`\x10 +\x93GS\
+\x85\xe8\x97/m\xed\x1e\xd6\xacj\xdc7\xa7\x86ef\
+\xf7[\x1d\xc0\x0a\xb8\x93i\xcc\x00r:%l\x15\xc5\
+\xdb\x1d\xb10>\xaa\xe4\x93_|\xf7,\xe5\xc3\xf8\xd3\
+fU\x89aj\x09\x94\xdf\x81\x09@\xcd\x9f(\x18\xe0\
+\x9f*|&p\xaa4\xe1\xeaQ\x1c\xd3\x02\xb1%\x00\
+\x91!\xc4\xa8\xbb\xf1\xd2\x16u\xbaMX\x07\x14f\xa6\
+\xb6\x98<\x02\x81<ov\x97\x08[KD\x8b\x82\x9c\
+\x80\xad\xdf\xb7\x8f\xa3\xb0\xef.\x1f\xd61$\x9cK)\
+j\xcd\x1f\xe5O\x95_\x03\xf0\x1d\xdbe\x13]\x8b\xf6\
+\xa5o\xe9\xa8\xf9\xfc\xa8\xa1]_\x89\xf5\xe9r\xf3k\
+a+\xd0]\x89\x17mjs\xbf(?M)\x0e&\
+ f\xe3\xb5\xf39\x8c\xea\xf5\xfc7\x00\xc5\x98\xf9\x15\
+\xf0\xfb;\xfb\xed\xd0\xa6\xb1J.\xc4%\xfc\x1a\x81*\
+\x86\x01\x00\xc2\xbc1\x0e\xa3H\x9f\xd0\xed\x1da\x9d\x08\
+\xa2\xdf\x07\x04(qL\xd1\xe4\x12\xdf\xb3\xbf\x09p]\
+\xaf\xfd\xdd\xfd\x8b\x87\x04\x9e\xeeW\xdc\xe2\x0b\xc0b\xdd\
+\xfb=\xf7\xcf_2\xde\xfcw\xe3\xe5\xf30N\xc7\x92\
+\x01@\xc8\xd8E\x8a\x9f\x8c\xa9\xe0\xf3\xcd\x1b\xe3)p\
+w=\x80L\xe3\xe9\xfe\x88\x04~\x22\xac{\x0e\xdeW\
+\xa0-\xf1e\xbf\x02\xa0\x08\xc81\xba\x7fR\xbb>\xaf\
+\xae\x87h%-\x14\xfb\x09\xa6\xe0P\x82^\x9f\xef9\
+\x88\xf7\xac7\xeb\x0a\xa3$\xf7\x9b\x835\x01e\xca\x05\
+N2\xfccF\x91(`\x1c\x83_\xe9\x90\x92^D\
+\xed\x12k;\x8bR\xfb\x07($u\xb1\xda\xfb\x99\x08\
+\xda\xd5E@\xf1\xf6\xae\x9f\xae@\xd4DHJdM\
+P\x07\x85\x01\xec\xa9+?<\x97\x1a>\x01\x8a\xbf\xff\
+ne\xa0\x0f\xed\x8bi\x02C\x5c\x04\xa0&\x98\xc0\x0c\
+\xa5>\x1d\xf0\xa2\xd4\xcb,Ry\x17\x90\x98\x08&\xbc\
+\xc0p\x0cd\xd5\x88\x9b\xc8\xa8\x9b\x0e`\x22+\x90<\
+\x01T\xaa\x16Wf\x07\xc5=k\x96\x0a \xb0AA\
+\xd4-Dm\x93\xfe='|\x8e{\xa9\xac\xcb0}\
+?7\x0a\xe3>\x06\xde\xc6\xcf\x828\x98\xe3v\xc4\xa1\
+\xd4\x9a\xfa}\x8e\xdf \xc2W\xc8\xb8\xf6\x8d\xe6\x9b\x83\
+\xd28Y\xc060\x0ba\xd4\xb4\xb0p<\xef\x11\xa1\
+s\xb0d W\x8e\x90.\x022hO\xc9\x0c\x93u\
+\xa1\xf6L@\x955\x8aUS}\xd5\x1c\xe7;$E\
+OmZ\x06\x04E\x15\xb3aCpG\x8a\xfew\x06\
+\x07\xc9\xba3\x8f\xac'\xf3tl\x9bB\xe4F\x00}\
+\xb3\xb0n\xde{\x7f\x0e=1L\x81\xb0\xfd\x02\x10e\
+C4O]\x97\xf9\xe09\x0f\xc8e4c\x8bvl\
+\x15\x98\xca\x1c\x8c5\xf9\x02\xd1\x14\x19\xf3|\xd4\xf4\xab\
+A/\x8a\x9c\xbf7n\xc6\x11%\x90*\xb2\xeb\xca\x8c\
+A='\xf3\x060\xe6\xfd\xac;\x19q\x8c\x80Q$\
+\xd4s\xd0\xd6\x06\xa0\xf1/\x87\x06\x88U\x13H\xcc\x92\
+\xb8\x95\x83\x8c\x83tr\xb3\xaa\x05-F\x83\x0c\xb9n\
+\x12\x1c]T\xeb\x14\xf1*\x00(\x81\xc8\xaa\x19\xc6 \
+\xb1\x0f\xaa\x99\xa6b\x1d\x19\xe5.0\xc4\xa0\x9an\x1f\
+\xd6\xd5\xf4\x0a|\xf4\xe9NM\x8b\xcd=\xc3\xe6ip\
+\xed\xb0\xf9\xfb\xa7\x84u]:\xb4}\xcb\xccx\xf5\xbb\
+\xcdR\xa4\xcdw\xc3\xba\xc0\xe7\xb6a]\xc6+)\x8f\
+\xda\x7fm\xa6\xb0n\x1e\xbf4)\xda\x7f\xb0\x04\xf8\xbb\
+\x9f\x8d\xd0)\xfb\x81\xffm\x03x\x1a\x00;\x87?\x8d\
+\x92/3\xbc\xff\x95\xb0\xf9\xf5\xed\xfbo\xdb\x7f\xdb\x9a\
+\xa1=\xb0\x09\x9b?\xef\x94\xb0uz\xcf\xabg\xd1`\
+xxRP\xd3\xa1\xda=7\xac\xa3\x0a'#iw\
+\xcb\xa4j\xdf/l~\x9f\x0b-%\x08\x80\xa8\x0a\xb8\
+\x95\x8a\x9d\x94%.\xe6Sj\xa2\x10\xaf\xdb\xbc?\xac\
+\x9b\xe7\xb9\x9f*\xe5\xa8\xc0\xe7\xec\xb0F!?\xb2Q\
+\xc8\x1f\x12\xd6\xa9R\xcb\xa8\x02\x04\xec\x1b\x1c\x0e\xfb\xcc\
+{\xb3\x9dQ\x8a\x1f\x96\xa3\xaf\x0d+Q<\xb5\xcc9\
+\x7fdN\xf7\xee\xbd\x9c[%\x8a\x98\xa5<\xd3\x8bg\
+\xfb_\xf9\xdc#!\xf0\xba\xb0\xf9\xe7\x8f\x0b\xeb2\x88\
+w\x9d\xed\xd7\x93\x02=?\xc7\xed\xc7\xc3\xd6@`\xba\
+S\xd8\xba\xae[\xc9\xc6\xad\xd7\xcf)\x86\x8c\xda\xdf\xdc\
+\xcf\xaa[\x06\xd5{\xeb\xd4>:RO\x9310\xfd\
+fX\xc7\x88Qz\x93\xe38\xfd\xc5\xc2\x98!\x1eW\
+\xe7r\xae\xdfb*\x05\x00r\xe2Z\x0a\xe1\xf9\xb5\xd5\
+\xff\xd0\x0e\xf0\x01\xe0\x13\x91\xda\xe5~\xfb\xc6<\xaf2\
+#^\x80\xac\xbe\xe7(\xf9\x02\x04\xda\x10\xdaAJ$\
+\x00\xb2Q\xbb\x95B\xe58l\x1e\x19\xb6\x06\xca\x9b\x93\
+g{H\xd7\x85\xe4\xe8\xb0\xf9\xf5\x8c\xd9\xbe\xdaJj\
+.\x1c\xa2|MC\xe0f\xdd9\x89\xc2\xce?@\xe5\
+\xd7\x9f>\xa9\xeb\x05\x9c\x0a\xf0s\x9c\xb5Um\xf3\xe6\
+\xc5\xab\x9fP\x80\x03\x06\x0d\x11\xd7\xd4\x8e(\xff\x02U\
+\x96\xc6\xc9\xeb\xb3\x14\xe2\x09\x8b\x86\x90\x8c\xf9\xe6<a\
+k\x0d<\xc0\xa6\xda1\x02nR\x945\x14GBs\
+\xa4\x80\xde\xb7\xe6\xf3\xfd\xab\x85\x91Q\xdd^\xbc\x7f\x8e\
+g\xf91\xfc`\xeb\x03Ph\x7f\xcf\xef\xab\xe4!\xdb\
+\xac\xda'\x95Fb\x98hCX\x01\x98sP[P\
+\x22\xac\xcfZ\xda\x96V[fm\x94\xf9\x13\x18\xa82\
+\xdd\x00\x9e\x93\xc2:`\xf5\xc1a\xebya\xbc\x88\xb6\
+\xd6y\x04\x00\xcb\xf9^\x81\x17\xff\xc3<\xe1\x879\xcf\
+\x04n\xf6\xa3\xa3\x0e-\xad\x1d\xfb\xd4\x17#G7\x06\
+\xe2\xb9YjR\x8c'Ti\xefsB\xb6\x91\xc4\x5c\
+M\xff\xa94?r=U\x82\x83\x1f(C>\x8a\xcf\
+\x11\xab\xc4\x80\x10H\xf3c\xdd7\x06\x0c\xffJ\xa0K\
+SD\x09\x0f\xe0;\xd7A}i772v\xc4\x1f\
+\x02Z%7\x12&\xfc%\xfe3?n\x14\xfb\xe3\x87\
+\x8a\x1f\xbc\xaf\x7f7\x0e\x83\x08\xa0\x04o\x05\xf6\xf9{\
+\x95\xc8\xd2V=\xbb3\xd5\xb8\x89\x0b\xc6\xee\x04\xae\x17\
+\xa3\xd2\xb9\x0f\x90\xc9\x03\xba\x02\xf0\x11\xc8\xe0\xc7\x8b\x8b\
+\xc47\x12\xa6\x12\x9d\x98\x18\x83\x98_\x893\x12U4\
+\x0e\xe61\x07\xc1\xefK,\x1b'\xe3\xcao4\xde\xc6\
+\xcf\xfb\xa7\xc6\x0a\xe6\x8d.@\xf5\x9c\x00\x05\x00Q\xf7\
+i\xfe\xb8n\xe3\x04\xb0\xc8\xf8\xe7`\x05`j\xe9\xcf\
+\x1f\xb2H\xe9P\x1c\x7f.\xea\xf7.4\xdc\x91^\x95\
+P\xcd7\xf1\x1a\x8eH \x98!\xbaw\xd4lGw\
+\xe2}\x90\xe9\x83-4\x5cn\xe8\xfby\xc0]\xb6s\
+L\x01\x07&\x94\xc0\x92\x03o\xa0]\x17\xc6\x81\xbf\x1f\
+3\x9c\x02B\x03(\x10\x84D\x8eb\x82\x02d%\x04\
+y\x1d\x95\xb9S\x8b\xe8\xc19X>\xb5\xd4\xfe\xd6\x04\
+'\x1e\xa1\x1fc\xd6\xbeo\xae\x96*\xbb\xda\x82x\xcd\
+\xf1\xacL\xb4\x00\x98C>R\x96\x00\x1b\x99\xb1\xad\x83\
+M\x0d8\x84\x98\xc8\x8ev+\x00\x01\x81\xbd\x8c\xaf\xfb\
+\x96a<\xdf@\xf5G\x81\xbfh~o\xa1R\xf9>\
+\x7f\xaax\xfftf\x8c\xd7\xf6\x14\xe7\xde}a\xacQ\
+\x11\x90[\xb0\xee7\x91\xdeB|\x05\xb0\xd4\x87GJ\
+\x97\x8dC\x80\xea\xfe \x812\x08\xa8\xd1\xdeW\x0d:\
+\xe4\xec\xe9\xbbg\xec\x9e\xd1\xa8\xe3K\xe0%`\x15H\
+\x99\xff\x80 \xc0\x8c\xfb\xca\x8c\xc3\xe6\xda\x0b\x05\xb22\
+\xa1j\xbe\x89\x1cq\xf0\xb4m\xe3\xd8\xfb\x82\xe4j\x7f\
+\x97\x81\xd6a\xa2\x99\xb91Ui\x83\xc0Ti\x8aL\
+\xbe\x8d\xc9\xb8\xdbX\x8d\xdf(\x82\x02H@\xa5\x02\x00\
+\x8c\x00\x9b\xaf\xb1/\xac\xeb\xb0\xbe\x1cH\xd9\x97\xb9\xd6\
+\xb5u\xe6\xfe\xb4\xc9\xd46/\xa9\xf6%\xe6i\x1fp\
+?\x00C\x07\x96\xfd\xcbz\xc7,\xa1\xea\x9f\xaa\xbf\x9b\
+\xbf\x08\xeb\x1c\x1d\x1a\x05\xd7\x0c\xeb\x0eT\xd7\x9d\x14\xe4\
+\x02\xa6\xd4&\x0a\xacRE\xbcJ\x0b032\xf3[\
+\x8e\xc7\xa8u\x90\x94\xf9\xa2v\xaa\xd1\xb4\x9e]w:\
+b\xd5\xdd\x22\xa9\xb5\xd3W\xc2\xd6\xc0^{\xb6\xda\xaf\
+ \xc3\xf6C\x14\xcb\x04\x10\xb6?\x08[\x19H%j\
+5\xd4p{\xdc%\xb6&\xc3\x92\x99\xe9X5m\xdd\
+h\xfb'c\x9b\x8e\xea\xf6\x9da\xf3\xf7\xdf\x0e\xeb\xfe\
+\x9e\xd6\x09\x8ai\xb6\xc3\x9bn\x12\xd6\x1c\x9f\xd6>u\
+\xba\xc6\xd2\x8e\xaf\xc5\xe7\xd1\x16\xe9|a]\x1f\xea\xa4\
+\x10\xcf\xc7\xf8R\x9b\x9e\xe2[4\x18\x88\x06V\xa0\x03\
+\xe0\xb9[R\x94\x8f\xca6\x83\x9f\x0a[\x01\x8f\xea\xff\
+\xfe\x84\xcd\x137O\x5cj\xdf\xa7\xd3\xbbZ\xd7\xe7\xa6\
+H\xe2.3c\x99APS\xbc\xb9oX\x17X\xdc\
+p\x11\xf7\xda;'\x81\xc3\xccd\xd5\xba\xca}\xb8\x1c\
+z\x8e\x04\x06\xddy\xc2\xda\xe7\xb7\xcc\xe7\x1c\xf6.\xed\
+\xb2\xbe\x96\xeb\x99\xa8\x16\x87\xfb\xa5\x0b\xc0\xb4{^X\
+'Z\xfb\xff\x85\x9d\x8b\xb8\x9c\xfd\xec\xbe{\xbf5[\
+\x88P>n\xf3\xb8\x06\xd0-\xcf\x17%=\x99!\xa8\
+\xeb\x98\x1bJ!\xb6\xff\x1a\xb6\x8a\xcf\xed~>l\x05\
+\xd4JM<\xba$\x1c\xb9RL\xa7mX\x07p\x87\
+\xc8\xdb\xf9\xba\xfb\xba\xf2R\x1a\xd1\xe6\xe9\xcb\xbb\xcc\x89\
+s!v\xad\xef\xad\xcc\x11\x99\xd7\xdd+\xc2\xba\xdai\
+\xa5t4\x03\x04\x22\xd6wR\xb2\xa7w\x84\xadT\xed\
+\xa2\xa2\x13%\xcb\x0cf+\xa9\xfcF'\xbe\x18\x85d\
+\xc1\x80\xfalX\xaa\xad?k\xbd_\xa5\x0b%\x8a&\
+\xa0\x110'\x10\xbay]X\x9e7\xd7Z\x19\x92\x15\
+`\x08\x80\xb5\x9b{V\xd8\xaa\xe1Q\xb5\xff\x023\x99\
+Vm%\xb3/z1#\x04 \x18J\xba\x0d\xa8\x09\
+\xc7lL \xadJ\xd7d\xc2ti\xe1\xc79\xdf0\
+$\xbf\x97\xfe\xdfw\xd2?\xa4\xd5\xf0oy?\xce\x19\
+m\xce0\x1c2\xa0\xdc]'\xac\x03:\xb3\xcbJ\x14\
+>F\xe9c\x95\x84\xa4\x88`\x9dw\x1c\xf7\x97e\xed\
+\xb4\x9a\xe6\xdc\xaf\xb4%+\xc6\x02 I\xe9I\x96L\
+n\x7f.\xac\xd3lHF\xcb\xf4\xcd\xb0\xf5\xef\xaa\x94\
++3\xc9\x80\xc2\xfa\xbc_m\x16Z!\x0b3\xe3a\
+\x0b\xf5\xb7\x98\x02\xc4WuW8'\xack\xa7I\xfc\
+N\xe9\xa5\xf3\xce\xfcqN\xf2\xeb\x8c\x03\x11b~\xa0\
+@\x8a\xbf\x84\x19\x99*\xf6\xd6\xfb\xe69a\xf3\xdb>\
+'l-\xa1\xa8v\x8a\xda\xf6)\x09\x10\x80\xac\x22\xb4\
+K\xdb\x5c~\x06\x7f!\xcfE\x89\x94j\x0f\xe7\x95\x88\
+'F\xae\xf9;R\xd9\xf9\xcb\xb9\x7f\xd5\xbe\x96\xf7S\
+ZP>_\xa0\xf4\xa5\xd9\xfb\xfc\xd2\xb9\x88\x7f\x0b4\
+\xf9A\x83fX\xf9\x1b\xee\x93x\x1d\x00C\xe6\x7f\xcc\
+\xf8\xf2{\x00\x07\x02\xecL\x18\x16\x00\xa6\xb4@\xc9\xa3\
+\x9at\xfeUvu(\x00\xd0z3\xaeC\x97\xa3z\
+\x1d\xbb\x09\x98'\xe2$\xebdh\x1f\x5c\xb5\xeb\xeec\
+;t\xf7\xe2\xf7\xf37\x866\xed\x05D\x18\x8f1\xc3\
+>\xb6Q\xf7<\x00\x0b\xba#\x00\x86\x9c\x97\x83\xa6\xc9\
+\xd8\x85j\x04\x8cv\xef\x0a[\xdb\xfcYW\xc5H\x18\
+\xe3\x15~\xb2\x9f;']\xb7}\x9b\x83\xe4\xba\xc7\xee\
+\x13\xce\x15\xe3f\xdd\xb9?\xcc\x1d\x89H\x09u\xfbj\
+&\xda+\xb1l\x9c%\x9c\xb4\x8f\xc4\xc0\xf1{\xf9\xbc\
+\x0fVF>\x86\x7f?\xc5\x90\xce\xce\x83\xf0R\xe7R\
+\x83\x1f\xd3\xec\xe8t\xe4/\xd69\xdaq\xd9\x17\xc8\x1b\
+\xfb\xa9\xee\xef\x04\xc4\xc4\xf4\xae\xbb\xa8\x1cW I\xcd\
+X\x80}\x5c\xeb\xcc\xbbl`\x17[\xd5h\x7f\x22u\
+\xfc\xdc\xba\x15\x9c\xdd\x95\x18\x18\xe8Q\x5c\x90\xc8\x06\xca\
+\x0d\x87*3\xb8\x85\xac\x99\xc8\x02\xa2#\x06\xd5{\x0b\
+\x06\x80\xe0:dZsbu\x1a\x06\xcb\x02\x94\xb1V\
+C/\xc3h\x03\x16(\x090\xc7\xf6\x81\x00\x8f\xb1]\
+\xc7\x18\x88\xd9\xc0-,\xe3\x08!\xa3\xb2,\xa0\x15H\
+\xde)\x1d\x22\x01\x96\xee\x01\xaeo]\xe0\x87f\x98m\
+\x0c_^\x16f\xd5\xe2\x1b\x7f\x7f\x07\x01\x83`i\x0b\
+'\xa0\xf7\x9c8\x02\xe9\xa8\xa1\xe4WM5\x00\xcb\x82\
+\xb6\x11\xf6b\x93}\xfbD\x99\x1f\x07%\xe4\x0feF\
+\x0dV:\xc6\xf3\xd54\xb5\xddB\xd0\xcfLd.\x03\
+!\xfd\xcb\xeb\xf9\x8d\xcc\x11\x1b\xe0\x0fr|\xd2a\xa1\
+\xe2^\x07\x86\x830\x99&5\xee2p\x1c*\xef\xeb\
+ r\xc0\x0b|\xbd:H\x1cD\x90|\x81\xb7\x8c\x8f\
+\xee\x1a\x18\x0e\x98.\x9e3`\xcb\xc6\xe4 \xf0\x5c\x1c\
+@c)\x8b>\xb5\x19\x98\xd5s\x1f\x19\x0b\x10\xd7Q\
+\xecP`\x93\xa5\x17\x9b\xcf\x84u\x88\xb5\x1ap\x19\xcb\
+a\xe3\xac\xf77\x9e\xfa\xb7rt\xacg5s\x10S\
+\xc8\xbc\x0d\x9b\x8a\xae@\x89v\xc0\x0d\x97\x00\xb4(\xad\
+\x894W-\xf2\xc5\xc2\xd6>\xc8\xa5\xa2\x9f\x19\xb7\x02\
+\x061\x0d0@dz8\xd6\x19\x00\x175\x9f#\x88\
+\x19#\xd3\x93\x01\x88L\xac\x12\x80\xe9*a\xdd\xc1/\
+\xf3HdRfU\xbb'\xc0T\x8aum\x1f\x1d6\
+\xbf\xcf\x15\xc2\xe6\xdf\xfbq\xaa\x90'r>\xfdIX\
+\x07|\xa4\xd8\xd0tB\xd8\xfc\xfdo\x84\xcd\xefs\x5c\
+XW\xab\x99%9\x95\xc1\xca\xfe\xd1u\xa0\xca\xe0\xea\
+\x86\xa1\xfd\x1fF\xc0\xd7\x17\x8a\xf5\xf6\x92\x8b\x96\xc0\xee\
+\x9da\xad\xe6\xb9\x89\xd7\x15\xd3D\x06^&(\xd5\x90\
+k_\xce\x0c\x8f\xc0\x1a\x93\xa1\xb4$\xcc\x7f%\x1d\x9e\
+[f4w!\x1b\xb6\xe9\xdeO\xa0\xc4\xb1\xa1\xf6\xcf\
+a\xfb\x85\xb0\x0e\xa9\x7f\xd0\xde\x03\xf7\xc2\x01\xbdn\xb6\
+%\xbd\xe8\x12\x08\xec\x9e\xbd\x04l\x9b\x0fl>\xb8\xf9\
+`\xa7rO\xa3\x87F\x05\xa6\x8eu\xf8\xc5\x5c\xff\xbf\
+\x9a\x99\xadc\xb3DN\xe6\x0b\xd0`>(\x91\xc20\
+Q\xaa \x93a\xbd\xd9OQ\x8e1\xdb.\x94\x80o\
+\x94\xa6\xfc\xc2\x0a\xcc\xed~\x10\xb6\x02\x1d\x9b\xef\x87u\
+\xed\xecr\xbd\x08|\xf7\xbf\xb4\xff\xe5\xfd\x10U|\xf2\
+\xf6I\xdb'w\x01\xae\xccYfT\xab-!Q\xae\
+\xa0*\xbff\x15\xe3\x9b>\x19\xd6\xb57\xcb\xb6p\x1c\
+\xf0\xc6$\xf9\xa5dj|/\x99\x09G\xae\xe7\xf8\xf6\
+Ga]{R]h8~\x09\x00\xed\x8e\x0a\x9b?\
+\xef\xfe\xb3=\xa0\x13\xfdJ`\xaf\xcd\xeb'\xaf5\xcb\
+\xd3\xaf\x85\xadb\x81(\x9dUB\x020s\x9d2\xbc\
+\x18P\xb4K\xf4\x19\xcf\xeb\xdb|x\xb6\x7f\xed4\x9c\
+\xa2\x14\xf2\xfb\xeb\xf8\x97(h\xb6\x83l\xf3\xa6\xeb'\
+_\x01\x03\xbf\xca\xbc\x00|\x00\xdc3\x81\xd1\xb4\xee\x9f\
+\xd1\xb5\x01\x94\xb9\xe6p\x03vN\x9d\xedu\xb9\x0e>\
+\xdc\xcd/\x8ev&PZ\x89\xd2\xb3\x1ac\xa4\x8dg\
+\xed/\xfb\xe9\x80cJIH(\xd9\xd0\xfdDI\x00\
+m\x04\xe74`\x83\xdfc\x9e;\x17eV9\xf8\x02\
+5\x81:\xed\x0e\xc0\x14\x7f\x110\xa3\x94\xd0s\xcby\
+\xa6$\xafD\x1fu\x95HM\x90\xdd\x1b\xc2:`\x8a\
+?\xf6\xb1\x0c`\x5cG\x8e\xef\xee\x96a\xdd\xb9\xa4\xa4\
+\xed\xc2K;S~a\xa9\x99\x0b\x84u\x1fJ?\xc2\
+\xe7VbC 42\x1f%<r\x9dV\x00&s\
+\xcf/\xc8q+\xc6\xd9\xb1\x8bxj\xb5\x9b%\x9e\x9c\
+\xfb_k\x96\xb0\xed\xc4L\x01?y\x1e\xd3\x86(\xff\
+\x03\xd0>R\xbc\xf9A\x9e\x1f\xbf\xdb\xbek\xdf6_\
+\x13\xb0S\x92\xb6\xfb\xdb\xdd\x9bZ\xa2'\x01>\x9a5\
+\x95\xe9\xe7?\x09\xa0\x04T\xeeW&;\x81\xc7\x8ao\
+\x92QY\xe78\xffu\x14#\xf7\xfe\xfc2\xd7/\xfe\
+q\xbf\xe6\xe5P\xbb]\x01\x9cW\xfe\xfd\xc0\x04.\xa0\
+\x0c\xe5\xff\xb7\xc2\xba\xdf\xb7\x9f\xb9\x0eq\xcb\x9805\
+Od\xc4\x95<\x89g\xf8\xcd\x02\xe2\x12\x1d\xcax\xc4\
+\xfb~\xe7\xd0\xee^\xe5\x0f\xfa{\xef\x07\x081\xef\xc4\
+\x0d\xae\xcb\xe7x_\xe3j\x1e\x1b'\xd7-\xfe\x1b\x13\
+\x8aJ\xd5\xf3<W\xca\x0a\xc0+\xa0pH\xec\xd6}\
+\x8c]\x13\xc4\x8f\xd6\x91\xe7\xee\xef\xfb\xc4\xf9W:\xff\
+\x04\x80\xe1\xbe\xdc\xa7}!\xafczgXW\x0a\xa9\
+=\xeb\xd8%\xc2\xba\x00\x5c\x0a\xfc=g\xf7\x91\xd7}\
+\xb0\x0d\xcf\xb7:U\xfe<\xf8\x89\xf8l.\x10:\xf2\
+\x19@\x5c\xa8\xcb \xca\xdc\xc7qtL\x0e\xf4\xb7\xf2\
+\xc1os\x80\xbe\xd5\x05\xb0WhU\xe2\xab\x86\x00\xa6\
+@OM\xee\xfa\x15\xb6\xc0\xe4\xb3]\x86\xda\x815\x22\
+p\x10\x94\xb5\x1d_\xa3\x90\xb4\x03\xe6\xd8\xc3\xfb\x97\x1f\
+\xf6w&J\x9f\xe1\xbep7\xb1LX\xef\x93\x01J\
+\xb5\xdf\xc8v,];\xa7%\x03m\xa32\x01\x06\x84\
+\xa7j\x9bo\x92\x07\x93\x00\x1f\xf5\xdd\x06N\x9d\xdfA\
+;\xd6\x12\xb9>5M\xe9\xe8\x96\x83/#=\xb6\x19\
+\xcc\xef\xcb\xa1\xb5\xc1{^\xa7g\x8d\x18\x91\xc1[\xe4\
+\x81\xfb\xd5\x9c\xc0\x1c\xcd5#\xba\x04\x86\x80\x0d\x99h\
+\x08\xe1\x85\xd3q\xb9h\xaa\x8b[\xc0\x02@\x0e\xa6\x83\
+C\xffk\x07\x0eJ\x0c\xa0 \xd5\xdf\xabV[\x9b<\
+\xcfym+\xb8l,\x16\x88\x0dG\x1b\x15\x0e\x161\
+.5\xdb\xfe\xfd+\xd96H\x9fr\xef\xebK\xe0o\
+|\xa9bg\xedd\xb5\xf9{a\xf6\x93\xfeH2\x0f\
+\xb2\xbdN!\xe9D\x7fh\x15\xa8\xed\x170\x99O\xb9\
+\xfe\x0a\xe1\xb7\xf1\x8f\xd4\xa3\xdc\x80\xd4\xa2\x16U]\xa6\
+\xd9s\xf3j\xdc8\x1a\x9e\x8f\xf7\x05tqP\xf4\xfb\
+u\xd0\x8e\x1a\x1b\x19`\x17\xe0b\xdd\xd9\xe0{\x00\xf0\
+r\x9d\x0a3@\x0e\xd5?\x1d\xbd\xda(1Ld\xd8\
+\x87\xf5rH)\xd2%;\x87F_{\xa5\x17\xf6\x0b\
+T>H1\xa6\x83\x0ct\x1eh\xb5\x0f\x09\xb88\x86\
+\x0eJ\xed\xd8P6\xb5\x19\x22v\xa5\xd4\x00\xc0\xe5\x80\
+\xa7\xb6\x8c\xba\x9b\xcf\xaf4$\x94\xe4d\xa0\x5c\xc0\x90\
+\x1a\xd2\xa4J\x17\x95\xf4\x9d\xcdV\xf1\x9etH\xd4\xb6\
+o\xee\x18\xd6\xa9\x07\xa7*=\x07\x95\xc8\x9e\x1a\xeb\xa2\
+b\xffa\xd8Z\xaa\xa0\xb6\x190X\x19k\xed\xc6\x92\
+R\xba\xbdC\xd8\xda\x8e\xab\xf6\xef\x074[K\x06\xfe\
+(\xac\x03d\xb4y\xca\xda\xd4\x0a\x1c\x92\x9a\xba\xf9x\
+X\x0b\xc4\x16\xaa\xb9\x03\xf5\xc4t\x98\x1f\xd7,jf\
+g\xebjW\xdd\xaf}\xe9\xb7\x96\x8c\xb6\x92\x8b\xe9:\
+ak\x06\xb7(\xff?\x1f\xd6\xa9\xbds\xec\xb5\x7f{\
+C^\xf7\x81\x5c\x7f\x09\xdc\x95\xd8h\xaa\xa6C\xecK\
+\x0b\xe3_\xc2:`I`\xf3\x83<\x9f>\x96\x00\x91\
+\x92\x89\xd3\xf3\xba\x01e\x02#\x19\xf8\xdfN\xb1/\x80\
+\xa3\xf5\x0e\x00t}\x97\xcb\xfdJ)\x19\x86\xc9\x11a\
+\xab\xd6\xc5\xde\xef$\x00\xf5\xa2E\xec\x0fPf\xdf\xac\
+\x8c\x89\x8c\xec\xef\xed=\xbc\xa9\xb8\x7fn\xf7\xd9\xa0\x92\
+o_\x1b\xd6\x89\xc2]9le\xc2M\x8f\x0ckT\
+\xe1\x8b5\xb5\xf5\xb7\xed\xde\x1e\x8e\xd8\xf4\xb6\xb0\xd6N\
+\xf1\x01\xad\x9d\xa2\x9aV\xd7\x99m \x05B\x1c\xb7\xe9\
+\xdea\xf3\xbf\x7f\x22l\x15olb\x83\xc7g\x008\
+;\xce\xd3\xbf\x85u\x01&-\x90/\x84%s\xe7\x85\
+]\x86\xdez\xca\x0c\xa1\x92\x145\xf3\xd3\xa5\xc22\xd0\
+zc\xa7J~\x8d\xa5f{wLX\xb7\xfe\x13H\
+\xd5\xbd\xa6\x02\xdb\x0c\xd0\x94H\xb5\x1a\xff\xc76\x07\xf1\
+\xab\xcdA\xe4\xf0\xf9\xe2\x8fe\xc6\x94\x98\xe0\xee\x8f\x17\
+m\x80\xb6o\xf6\xed\xa5\xb2\x04\xa0\xc4TS\xc4\xb1\xad\
+\x96?^\xf7\x7f\xda#\xc5H4\x7f\x9c\x8bw\x08\xeb\
+\x00\x0d\xf3\x1d\x93&`\x9bwu\xcc\x22][\x1e\x13\
+\xd6D\xecfK\xa0\xf1I\xed\xba\xde\xd9J\x13\xd2o\
+\x99\xc3\xcf\x851#\xb0V\xcb\x9e\xfb@\x05\xc6\xce_\
+\x99\xbc\x14\xf5,\xc0/\xc5Y\xa9\xf5\x17\xa0\xe8\xfc\xb5\
+\x9f\xebOo\xdf\xb6\xdf\xa4\xf6\x04fO\x01i\xc9\xec\
+\xaav\xc1\xb4\x0f\x94Z\x00`\xc6\xf6~\x0f\x5c\x00\xbf\
+\xda\xcf\x13HV\xab>]?lm\x7f\x8a\xf1R~\
+\x0bm\x03m\x1b\x01\x01)\xb2(\x91P%v\xfc)\
+\xfe\xdd\xb3[\xbf\x8c\xbd\xe0\xef4\x06\x8f\xfdI\xc68\
+\xfd0\x99F\xc0j\x01<\xf6\x9b<\xef\x8b\x09\xcb?\
+URB\x5c\x16\xe0b\x5c\x13\x88*qC\x014\x80\
+\x8f\x06\x89\x00Q\xc0\x22\x10\xc7\x5cH@\xb6\x00m%\
+-\xfca\x81\xd0(F\x1c\x0ab\x97\xed\x02\xe8\xd4*\
+)\xa0K\x8d\xbf\x80\x8e\xdf2\xb6Q\x1b\xdb\xb9\x8d\x19\
+u\x01\xa2\x84\x90\xc0x\xd0:(&\xeaP\x82[L\
+^\x8ca\xcc\x07\xd7!\x11\x03\xa8\xb0N\xad\x07~!\
+\xbfN\x80i\x1c]\xbf\xef\xf9{\xfc\xc6\xec\x8a\xd3\x98\
+\xdb}\xfb9~\xf4O\xeaF5\x96fc\x18\x1a\xc7\
+\x91I.\xfe\xf2\xf9\xff\xad\xd9z\xfd\x806\xcc\x0c\xef\
+o^x_\xe3=\x02\x0a\xfe\x9d\xa6\x82\xf1\x13o\xf8\
+\x5c\xf7'!G\xcbi\xd423\x8e\xde\x97\xff\xe7\x15\
+\xc0\xc2\xbf\x1b3\xfb\xa3\xea\xbfy0&\xec<7\x80\
+\x83y\xe2\xba\xdd\xbfy`|\xac3\xfe\xb9\xe7\xeb\xbe\
+\xcd\xbf\xbc\xdf\x83u\xa1\x97h2u\x8b\xc3\x7f\xa0\xa3\
+\xfc\xa0\x9eDXx\x99\x14\xef:\xbeS\xf7\x8f\xcb@\
+\xfd8\xd0\x0d\xbc@\x90h\x1fD\xc8\x85\xc7\xed\x9e\xd6\
+\x01\x0f^\x05\x1a6\x9c3[\xce\xf5p\xd5r\x0f\xc2\
+\x0d\x1905\x88q\xdd\x9f\xe84\x04\x04\xe6_h\xfa\
+\xc6\xeb\x03\xb1\xa1\xf4m\x99\xce\xec(;2\x882\xe4\
+\x1cX\x14\x8c\xdch+@\xb0!\xad\xb5\xefK\x00e\
+\x03\x00<\xa8\x89\x1f\xbb\x09XP2\xd6\xb9\x01\x94\xe3\
+\xbfR\xf0\x0f\xd5n\x183\xb0~\xcfB\x92I\xbe\xd6\
+\xb2QW@\xe8\xe7\x16\xa2\x00\x10\x05I\xcd\xfeG\x12\
+\xd9\xbaL\x06H2\xc8D\xd18\xae\x02\xf6\x0b\x0c\x0b\
+\xccs\x91q\xe6\x08Y \x17J\x07\xe3\xf8D\x80\xd5\
+\x86\xa3\xbc@\xda<7H1U\xeaW,\xd4\xd6\xcd\
+\xaf\x84\xad\xd4c\x19\xa8\xa6h\xb1\x88\x88,\xefc\xdc\
+0*\xcc\x0f\xd7\x03 \xc1`@\x9d\xe6P\xa3\xea\x9b\
+\xe7\x1c1\xaf\x02\xd0\xa4:n\xfe6\xf4\xacW\x95\xdf\
+\xb1f\xb7\x00 \x945\x81\x95L\x9f\xdaT\x8e\x98\x9a\
+x_\x9e3\xf18%#\x18\x03\x9e\xaf\x0djP\x0f\
+\xadu\xe9\x00\xb5\xde\xbc\x8e\xc8\xab\x8d\xd2|\xb1\x8f\xd8\
+\x08\xc7v\x9c#\xa5\xcbu\x11\xbf\xd1\x17\x97\xa8\x0f&\
+\x06\xd5\xec\x04T\xaa\xdfkR\xe4\x050\x150\x9b\xf7\
+}-\xdf\x09\xddx{^\x99\x09\xad\xc0\x95C\x98\x99\
+\xef\xca\x80\xa5c\x83\xda\x5c\x0e\xaf\x0d\x19\xd0\x91\x81r\
+\xb5\x1d\xcb\x80\x92\xa3\xb5\xf9\xb7\xb0\x8e*K\x83A\xe0\
+\x8e\xda\xa7v\xd2\xe7\x01\x9e\x04\xf6\xa8\xa7\xa9\x8e\xbfw\
+\xbb\xd9\xcd\xba\xdd\xba\x8f\xc8P\x95X Q\xb4\x04&\
+J\x0d\x9bCMS\xc0xY_\x098M\x8f\x08\xeb\
+\x1c_\xe2}4\x10\x9e\x1d6/\x9b\x17\x87\xad\xed\xf1\
+\x8c\x93\xb6\x8a\xf6\xe1\x12\x9d\xc2\x98P\xeb\xaf\xf6Ui\
+\x81\x9a\xda\x14\xed*\x11\xb8l\xd7Y\xed)\x89ne\
+\xfb<Tg\x07\x9e\xd2\x02\x0e\xa3\x9a\xed\xba\x0e\x19\xde\
+|\xee\xd3\x03\x97\x9a\xff\xdd\x15wW\xd8\xcd\xf3e{\
+Z\xd8\xfcz\xdb\xb0N\xe3\x83X\x18\xea\xa1\xf9e_\
+\xb6\xef\xabM\x96)K\x11\xc5:\xdf\xd4:\xe7\xdfU\
+\xc6\xe6\xe8l\xdf\xea<\xb1~P\x843\xa0\xaes%\
+\x81Y\x94\xfa\xca\xb0aJY\xb7\x1cc\xa2^\x8fJ\
+\x15\xf2\x7f\xcd\xc0\xf6f\xcb\xb8G\xcf\x87PU\xc7<\
+\x99\xd7\xfa\xd2\xf6\x89\xb6\x89\x00%k\xfb\x01w2\xd3\
+\xad\xfb\xc9G;\x07\x15U?\xa9\x95(\xf4\xd3\xad\xa7\
+\xdbL\xb7n\xfb`c\x16n>\x16\xd6\x89rr\xf4\
+9B\x021Z\x1ey.L/\x08\xeb2\xc1\x18$\
+\x19\xd8\xed\x0e\x84\xa5c\xf7w\xf9<NYk\x94\x8b\
+\xe1\x93\x0e\xe4\xf6\xa1\xb3\x9d\xdc\x89\xc4\x85t\xdf\x0b\x1a\
+\xb5\xfc\xdeA-o\xbf\xd5\xb5\xeb:\x04@\xban2\
+)\x1e\xd2\xb5q\xc3\xf4\x11h\xa9A\xd5f\x0d\x10\x9a\
+Z\x16T\xa0\x8b\xda\xfe\x9e\xa5t\xa0\x02i\x801-\
+\x00\x81T\x94\x94\xfcC\x8aH\xa2\x8c?'\xe7\xc1\xb5\
+;G\x13\x90\xfc\xb5\xb0N3\xc9>\x93\x01zu\xdd\
+\x90a\xa5\xa1@dT\x89Td\x18\xef\xd31\x89\x04\
+\x82\xfa\xd2\xd3P@\xc5\x97\xa1\x0cQ\xbd#\xd6\x92\x9c\
+\x12\xcf\xa4y@\x0b&\xf7\xd7\xca$\xa7\xaay1_\
+\xcc\x0f\xda\x0c_\x0a\x9b\xaf\xeb\x19a\x1d\x03 \x03-\
+j\xed\xe5\xb7\x08`\x01%\xc4N1\x8b\x94\x86\x01^\
+\xed\x87\xc9\x88\x98\xf6\xc3\xba\xfd3\x9fw\x95^\x00\x04\
+\x128\x01\x80\xc6.\x13\xfb\x0c@p\xbaYX\xa7q\
+\xa3\xcd\xe4\xc3\xc2\xba\xf6~Y\x12G\xe3\x003\x87\x08\
+\xa0\x12\xa8\xddK\xc3V-\x83\xda\xf7WQ\xc1\x05 \
+\xbdsXw\x8e\x10\xf7U\xb2@\x03\x82\x86\x05\x0a\xb7\
+\xb6\xb0\x98A\xa9iS\x89\x14\xfb\x0e`;\xf7\xfb\xea\
+\x16\x83jMM^\xc2\x8c\x06\x8e\x00&\x19\x19\xf5\x1c\
+3\xb1U\x19\x5c\xda)\x12_\xe9\x7fT\xb7\x82\xf4\xf3\
+6?\xb39\xae\x01\x96/\xd9\xbd\xb8\x95\x1c&\xa0\xb2\
+\xbbgXW\xea\x07\xa0\xb6\x9f\xf3+F\xd5v\xfe\xbc\
+\xb8@ \xca?\x1ak\xe7\xfd\x9e\x04D2\xe9\x0e\x13\
+w\x168\x8f%\x9aC\xe2\xaf\xf6]\xa2\xca\x12Q\xe2\
+$\x01\xa5s\x8a\x7f'\xd1:\xb6K\xe6\xbfY\xaf\x18\
+1\xbeF-\xb3\x11\x00\xf0\xb9\xce\xa5\xb1\xe4z\x14\xc1\
+\x1bK\x05\xcc7\xe7\xa7q\x13\xc0c\x0c\x9b7\xee\xcb\
+\xb8\x03d0:%\xb4%\x90\x8c\x87\xebs\xbf\x12a\
+\xfcw\x00\x05 `(m-&\x90\xf7\x137\x10\xc7\
+&\xb6\xe7\xb9I\x0c&\xc0^\xf3@B\xcc\xbc\xe7\x97\
+c.\xa5\x9f\xbc\xf9jX\xd7\x05\xc4ss\xbe8O\
+0`\xec\x9fc7\x05\x9f\x97q\xe2\xc1\xf6q\x9f\xeb\
+\x02\xc7\x1f7R\xf7\xfa\x07&\xbe?\x94\xa9\x170\x08\
+,\xb4\x0b\x14\xf8X8D\x03Q \x05\x80\xd1\x0e\xec\
+\xb8n\xc34!\x22\x0c\xef\xa9\xdc\xae\xc3D0Q<\
+h\x81\x18\x04\xed\xb8\xd6\xd8dos\xc5\xb053\x82\
+\x82V\x01\xbfL\xb7\x81\x17`\x8e\x88\x9f\xfb\xf7w\xd7\
+:T\xdd\xbf>\xc7\xcf\x01\x09#\x82\xe3>QN\xbf\
+\x95m\x88\xd4\x22\x09\xf0M\xb4\xa1v\xba\xda\xf9\x01\x22\
+\x042^\xf5\xe5\x94\xf1%\x0ef\x82\xaf%\x02\xcb\xc4\
+\x1e5\x10\xc6\xd2\x0a\xe3\xe2\xa0\xf6\xbe\xa8\xe2\x9f\x1b\xfa\
+\xd2k\xe3wZ\x06\x82G\x1c*f\xd1\x0a;.\xdf\
+\xdd\xd7i\xe9\x88\xa8\x9d\xd1e\xe0\x9d\xb9\x01\xe4\x01@\
+t\xa9\xfa\x98\xca\x88\x0b\xc4\xcd\xbf\xff\xcc\x05\xfc\xc1\xcc\
+\xe4\xda\xd8!\xce\xf7\xc9@\xf1\x97\xd2q2\x1e\xc6\xcf\
+\xc11\x8a\x22^&\xe7\x89\xf5! \xb6\xf1\xff`\x10\
+Ct\x7f\xda\xeb\x08@?t\xa8\x98K\xfd=\xe4\x16\
+p\x92\x0e{\x05\x9a2\xd1\x1c)\xc8\xb9\xeb\x11\x18\xa8\
+\xe1\x05Dq\x9c\xdd\x9fye\xdd\xd8\xb8\xad;\x9f/\
+\x10t_\xe6\xefOh\x13S\xf71\xaa\xf4\x8e]\x07\
+\xc6\x0d\xc8z\x00\x14\xf8\x02$\xb8/@\x93\x8cI\x02\
+\x1b2\xb4jTeZ\xea}s\xdek\x0bW5\xa7\
+6v\xeb\x19\xf5\xcf|\xe3\xd0\xa4\x03P\x8c\x01L\x02\
+\xfd\xb7\xed\x0b\xe6\xb7\x80.\xdb\x0e\xc98\x13\xbf+\xca\
+\xa0\x8d\xd9\xb8\xca\x0cG{\xb3\xfeze\xb41\x03d\
+(\x93\xcaW\xcc\x97\xd7\x84u\xcfO\xed\xe4\xc5\xc3:\
+\xad\x06\x99C\xcfK\xbb\x99l\x17H-^f\xad\x1c\
+kTj\xd4G\x07q\x0252\xf1\x02t\x22XU\
+C\x9d%\x05(\xa2\x1c\xf7\xfd\x0f\x85\xad\xef\xb79\x18\
+\xd6Q)}\x8eL\xea_-5\xc9\xfaf\x0b\xc8\xf7\
+\x1f\x1c\xb6\x028\xb4\x10\x8a\xe9\x90\xf3\x91X\x976g\
+\xfb\x1f\x08[\xd7S\xb5m\xfb\x95\xa5\x8f\xf4\xf6\xac\xb0\
+\xf9\xf5za\x9d\xea\xbb\x00\xd3\xbej\xbe\x03\xfa\x00\x90\
+\x19\x18\x95\xf6K\xeec\xc6\xbb\x00\xb5T\x1fW\x22R\
+\xb5\xbd\x09\x90l?\x16\xd6\xf5wV+\x9e\x01\xda\xf6\
+\xa9a\x9d\x98dR\xb0\xeb\x15\x85\xff/\xb3\xddY\x06\
+xUj\x82\xa1c>k\x9f%\xa3H4\x0cS\xe6\
+\xf5\xcb\xf5\xd6\xbe\xef\x5c\xe5\xb0\x00\xd2\xb4\xa5S\xe3\x7f\
+\xfd\xdd\xf5\xda}\xe5\xfa\xda\x7f]X\xa3\xe4\xfe\x9f\xa0\
+\xe4n.\x16\xdc\xb0\xf9\xf5C\x9b\x0fnb^\xbf2\
+\xac\x03F\x9f\xd3\xacD#\xab\x0f\xbd\x8c\xbcvg\xda\
+\xfb%\x15Z\xa6^&\xa9\x02\xfe\xacqG\xd1\xdf\xfc\
+MX\xa7\xbe\xff\x8d\xd9\xfe+\x99\x04\xf3\xba\xdf\xbe:\
+lm7Wm\x1e9\x9a\x00d\x99\xe8\x00\xb2n\x9b\
+m5O\xces\xe1\xc8N3\xfb\x17'\x89\x00\x00 \
+\x00IDAT\xc4>\xae\x04\x120\x93\xcf\xa5\xf1*\
+\x8fm\xfb\xce'\xdb\xb9(`\x90\x01\x8f\xfd\xf0\x89\x1d\
+@\x08\x98\x0a\xe6\xe6i\xc9\xa8\xb8X\xa7\xc1\x93\xaa\xe6\
+\xb5.\x00N\xa9Y\xb0y[X'z\x955\xe9\xa5\
+\xfd\xf1\xc9E\xd3\xa82LD@\x95&\xf0\xc3h\xb4\
+d\x97\x85j\x8b\x1aM\x18\x9f\xda\x01\x9d\xf6\xf7l\x03\
+\xb8{o\x8a+^?K\xb4\xec\xd3\x80,\xa5+2\
+\xcb\xce\x89dpl^\x1a6\xff\xd9\xff\x9b\xde5\xbd\
+\xab\xd3\x92\xc8@\xb7D\xd30$u]\xb9ZX7\
+\x9f\x01\xd2\x80\x19~\x10`\xc4\xbe\x98\xed\xf4\x04\xb2\x9b\
+\xbf\x0c\x9b_?\x1f\xd6\x01\xbb\x18j\xce\xdd\x04\x94J\
+{\x22\x03\xe7\x86\xfbl\xd6\xae*U\xea\xa8\xcdl\xce\
+\xfb\xed\x8b\xc2:&\x94}\x83\xc6\x84}%\x01\x0d\xa2\
+u\xd3\x17\xc2\xd6\x00\xbe\xb4\x1c\x120)F\x06\xbfG\
+ \x96\xda\x01\xd5\xf5\x05\x13)KT*P\xc60p\
+\x0ezn\x12\x1a\x99\xd0\xaan'\x02\x13\xcf!K\x18\
+\x00y\x05t\x10\xe3\x1c2\xf5D\x89k\xbejo\xa8\
+\xb4O\x17\xa1\xd4\x9a\xb1?\xcc{\xe4m\xda>\xa9\x14\
+0\x13]\xc5\xeczxX\x07\xc8=5\xac\x8b\x0b\xec\
+\xf7\x02>\xf7;&8\x05\x82J)\xd4\xfe\x0b\xdc\x89\
+\xb6I48\xb7%B\xf8m\x12q\xe6\x8f\x04\x8e\x9f\
+;\xc7u\x19\x91\x18\x13\xa0\xdb\xe7u\x03\xc2\x08\x11\xdf\
+`p\x8e\xe2\xd2\xee\x8f\x7f\xed\xfb\x91\x81`\xddx\x9e\
+c{\xbd\x01\x00\xa8\xfb6\x9e\xfcD~I\xee\x9f\x05\
+4\xf9;%u>W\xa2hd\x16\x88\x83$\xae\xf9\
+\xab\xfcY\xfe\x1a&\x83\xbf\x1f\xc5\x0f\xcds\xcc \xfb\
+\xbc\xdf\x07\x0c\xf0\xa3\xbd\x8e\xdd\x08\xd6\xf6\xe0KI8\
+?jl++n\x1c47*\xce\x04\xc4\x8f\xdd\xe0\
+\x00\xec\xd6+M)\xa5\x08\xc6\xd5\xbap\xce\x17\x03\xc0\
+@\x10\xf5s\x90\xf9 \x019\xe4%\x06\xe4\x8c\x8e\xe2\
+\xdc\xab\xee\xff\xb8s\xe8\xfb~\x89\xdf8\x97\xday5\
+\xfa\xa3X\xd8\x11-t\x5c\xa9\x12\x19\xf8*A(u\
+\xfd\xab6]\xf5\x15(\x80\xdc\x8c\x80\x85\x1b\x170B\
+\xc88p\xe3\x83\xf7~2\xd0\x02^j\xa1\xa8\xc6\x80\
+\x0e\x01\x93\xfbB\xad\xf1\xe0\xfd;\x0a7\xc4\x0bre\
+\xfcl\x1c\xfe\xce\x84\x1e\xfbR\xba\xde\xb1fg\x14_\
+s=\xfe\xdd\xc6\xe5\x80\xb3\xa0\x04\x8e\x90G\xe3e\x03\
+Z\xafk\x99\x904\x0cLx\x0b\xee\xcbKfv\xf3\
+sam\xe1\x1f\xda\xc6\x91\xf8\x1fd\xf6S\xc9\x1cH\
+D\xab\x9e\x8b\x80[\x86\xd8\xab\xe7g\x1c\x7fm\xc9\x84\
+mn\x92%\x18\x10h\x8e\x94\x0c\xbe\x9aQ\x01\xc5M\
+S\x8d\xf8\x929_\x04\xdc\x00\x06\x07\x9a\xf1\xd3.\xe8\
+\xfd\xb9\xd0\xcc\x1b\xf3M`e\x03\x5c3\xe3\xcb\xab\x0c\
+\x8d>\xed\x9fOU}\xed\xb986\x16p\x06zU\
+\xc3H\x957\xc5\xb9P\xa3\xeb\xb9\xca,\xf9^\x1f\x5c\
+\x8e\xb9\xbf\xcfR\x92\xa2\x949\x90\xac\x13\xa2<\x1cS\
+\x1b\xb7qP\x03i\x03\x17X\x9cg`\xb2\xe4\xbc.\
+\xf5\xd5\xb1K\x84\x0d>\x03\xber\xb0\x88\x9e\xc8\xf0\xa3\
+\x22\xaa\xb5\x07D\xa5\xc8\xd0\xe6\xc9a+\xf5\xb7\x1c&\
+\x99\x1c\x81\x03d\xd7u\xc9\xac\x13\xcd\x1b3\x04\x99\xd9\
+\xb4\xfe\xcb\xf1\xb1\x0e\xc7~\xbc\x0e\xc0tl\xb7'\x86\
+u\xed\x06\x01<\xe6\xad\xe7\x9c\x07\x7f9\x1cJ\x08d\
+\xd6\xcdG\x07\xbf\xf1\xf3\xf7\x1cC\xb5\xb8(\xd2\xa9\xa6\
+]\x07H\xf6\x85.\x07_\xa6\x13`CLI\xed\xb7\
+\xfb\xb2\x0f\x08\x90\x8f\x0e[32\xdb\xdf\x0d\xeb4\x1e\
+\x04\x9c\xa9\xd2]\xe7G\x06\x92\xc5\xa8\x02\x80f\x006\
+\xdd2\xac{~\x0e.\x801\xa0\x07S#\xc7\xad\xb5\
+G\xfb\xeb\xae\x9db\x96\x90\xec\xbd\xb0\xd9*\xfe\x95\xed\
+\x1f\xa7\xbf\x0f\x9b\xa7\xe3\x8b\xc3\xd6~\xf4u\xa0\xe7\xb8\
+n\x9f\x176\x1f\x8c\xb7\x0e[\xa9\xe45.\xceG\xda\
+\x09\xc4\xc6\xb2\xe4\x01\x95\xb5\x02D%3j\xd1\xf5\xcb\
+&Z\x98\x0c\x89r\x04\xae\x96\xfd\xc8\xffG\x8ai\x11\
+u3\x9e\x09\x04P\xe5\x9e^\x17\xd6e:3P\xde\
+\xfc{X\xc7P\x11 \xa8=\xd7FqpX\xab\x9b\
+\x06\x07H\xc9\x15\x87[\xa0}rv\x11 \xda\x88\xd9\
+\x92\xd4\xd1\xed\xed\xc3r\x1f\xf9\xd1\x9a\x81\x9f\x1e?=\
+a\x0a-\x83k\x87\xad\xfb\xe3\xf6-a\xc9|8\xaa\
+\xcb\x04\x13\x13\xa6}\xf0\xfc\xb0Uu~szX\xcb\
+\xa4\x1e\xdf2\xa9\xc4\x16\x950r$\xd3\xcf\x99N\x0e\
+[\x19\x1f\x05\xccxn\xa9\xbe\xee\xdc\xde>2l\xfe\
+\xf9\x85\xc2\xd6\x00TiA\xed\xdf\x02\x95\x5cO\xc43\
+\xa7o\x855\x91\xc1P\xd5\x89\x00z\xd1~p\x9e\xbf\
+\xbf\xfd$\x98\x15\xa7\xeeNm\x00\xe6\x05[\x89\xa0\x9a\
+\xddc\x96\xaeG\xad\x14\xed++\xb0\xd2$\x9a\x8f\xcf\
+s\xf5\xecN\x9c\xed:\xad\xc1l\xb4\xb7l\xcc\xa9\xf2\
+W\xf8EYbS\x22\x7f\xff9\x8f\xdf|~mO\
+\x0a[\x03\x04\xd4r\x81i\xb5\xa9\xb5\xce\xf3\x1c\x9a\xfe\
+2l\xfe\xf7/\x85u\x14~m\x163C\xbe\xf7\xf2\
+d\xba\xfci+\x86[\xa9\xc6\xf7\xdf=\xa0i_\xd8\
+'\xf2\xb9W\xfb;j\xf8\xa8\xfd\xda\xbe\x02\x82h\xb4\
+\xc8\x88\xf1\x1b\x8d\xc7y\xd2\xef\x04\xf0\x8f\x22g\x02\x16\
+\xc0\x18\xe6\xd9\x0f\x93z\xcf\xbf\x010\x13\xb3\xe3\x97\x8c\
+\xe2j\xee\x83f\x11\xff\x11\xa0\x9b\x19\xfa\x02\x9c\x93\x81\
+4\x9d\x19\xb6\xfaK\xc5\xe0\xfb\xb9\xd6Hp\xf1g.\
+\xbbv\x85)\xff\x81?\x99Z1\x9e\x0b\xed\x95R\xe9\
+\x07\xc8eW\x90R\x8b\xe7o\xca\xb0\xf3\x03\xec\xff\x00\
+r@\x1b\xa0@\x9bN%\x94\x98X\xce\x15@\x22\x0d\
+\x1b\xe7\x99\xaf\xb1D\xd5u(\x91 \x1e\xc8\xffH \
+\xb8\xba\xc0\xd0\x8eq\xde9'\xedg\xce?\xcf[b\
+`\xe8\x12P\xfb\xbfqM\xe0\xd1>V\x99^L*\
+ZM\xae\x8b\x9f\xc4\x0f\x12\x17\x98\x1f\x98\xb9>\x7fL\
+8\xf2\x8fi\xc2`<`\xe6\x8e\xd4v\x99{\x19m\
+\x0c%\xf3\xcf\xe7)\xd5\xa2\xfd\x80\x09\x0d\xa8\xc5<\xfd\
+I]\xd2\xdc\x9f\x00\xdd\xabq\xfbB%\xfc\x0e\x01(\
+J\x94nL(\xf2\x0f%\xc0\xf8S#\x85\x9e\xc6\x05\
+\xbf\x0c\xb3\xceu\xf3;\xf9\xbb\xc6Y<\xe2~<\xe7\
+1p\x17x\xbbn\xfe\x1b@r\xd0l\xd8\x1c\x13\xd6\
+1<]\x87\xe7\xe4\xfd\x8d\x1b\xf1\xea(\x9d\xbf@\x17\
+g\xb9\xef1n3O\xb5\x0b\xc6\xa8\xa2A\x97\x80\x17\
+\xed\xa2J\xac\xdb\xaft\xc9\xd06\x13\x93F\x5c`\x5c\
+\x87\xc0\xdf\xe7\x1f\xac\x89\xa7\xbd\x9e\x05I\xe4\xc7\xc4\x1e\
+\x10\x9e\xca\xe4\x13\xd7\x12H\xf4\xfd\x22\xcf\xe86H\x1b\
+.\x80\x00\xb5\xdf\x00@tm<C\x80Y\x08\xb3@\
+\xbdo\xbf\xd1\xab-\xc6c;\xabkC(\xa3f\x81\
+X\x88~\xdf\xfb\x08\xfc!\x872\xa9\x16\xbe\xeb6\xa0\
+(w(\xfa\x80\x09\xf7\xe1\xf7\xd5\x14\x8d\x13\x8f\xc3'\
+P\xb9|\x1e\xe8\x1e\x14DH;\xa8\x9c\x88\x15\xa0\x01\
+\x168\xa44\x00\xfc\x9e\xcf\x1d',\x84\xf7*\xf9\xef\
+WNJ\x1c\xd5\xf8_\xcc\x80\xcbs\x5c\xfb\x82.\x0b\
+\x03\x85\xde\xc6\xba\x22\x82\x8bZ\xa9\xae\x05\xc7\xe5\xbc\xf0\
+w\xae7\x0f\xe8\x0a\xec\xd2\xf1\xa6&;\x07+\xcd\xc1\
+\xa8L\x85\x80\x0e\xf2O\xd4E\xfb\xad{f\xc0{\xb7\
+%`.\x91\x1b\xe3\xef\x00[\xdb\x14.\xe3.\x03\x0c\
+\xa1\xb7\xe1\x19'm\x89l\xa0\xd4\xf41\x1b2\x13y\
+\x18`#S\x8e\xd9\xe0@8+7\x14\xd4M\x99\x0b\
+%\x06y\xa0\xda8\x8aB\xae\x1d[\xce\x1fT\xc0Z\
+\xf8\xba\x17`\x9c\x08d9\xbe\x00\x85t\x00*\xd3E\
+\xed\x19\xe2<\xa8\xef\xd7\xbaE\xf5\x83\x5c\x8e\x1b\xa6\xbf\
+s\x9f\xd6\x13\xa4\xd6\xab\xf1\xd5\xeeE\xfb>\x1b.\x87\
+83H\x95A0\x9e\x0e\x0c\x9f\x8f\x22\x98L\x1e\xed\
+\xf66\x7f\x1c\xd6e\xa6\x1c \x0e\x06\xeb\x13R\x9a@\
+\x09\x87\xbd\xdaU\xd9\xb0}\x9e\xfdC\x1f\xed\xbf\x09\xeb\
+\xda#\xca\xe4k+\x93\xd4\xf8Z\xef\xe6\x95\x03L&\
+\xcc\xc1n\x1er@Q7\x07\x95\xe2\x12\xb5{HX\
+G\x9dW\x83\xad\x16\x0cc k\xb7\xe7Y\xbc\x00\x1f\
+\x1cR\x8e\x12 +\x03\xc7\xda\xe7\xd5\x94\xdf,l\x15\
+s\xda|$\xackOh\x1e\xa8=M\xea\xb2\x1a\xe3\
+Rc\xe7\xf0fW\x03m\xe8\xec\xeb\xa5\xbe\xad\x06\xd0\
+\xfa\xb4\x0fq\xd41\x0b\xf29V\x0d*`13\xe4\
+\xd3'\xc2V\x80n\xff.a]\xcdyv\x9d\xd8~\
+;l~\xbd\xfb\xf6n\xdb\xbb\xcd\xd3\xf3\xcda]`\
++\x83\x05\x80\xfc\xcbdD$\x05\xb8j\xc3\xcd\xcfd\
+2\xed^\x94\x01\xbcZ<\xd7\xad\x9d\xd6C\x9aUI\
+\x83\xf3\x88H U\xff\xe9>a\xf3\xf5=7\xac\x9b\
+\xbf9N\xe6a\x9dg\xce\x87\xcc\x0cT\xa0 \x93\xa2\
+6\xd8\x17`\xdbyk\x9fN\xe6QQ\x91\xd5N\xa7\
+\x06\x84\x00\xbc\xf6\x89K\xe4\xf9s\xd1\xcdE6\x17i\
+L\x99\x16xLI\x81\xde\xdch\x0e\xd8n\xb4R\xc0\
+\xa77\x85um\xfc\xc2[\xf8Z\xd7\x8f\x1d#\x03\x15\
+;\x01\x04\xc0\x9dy\xba9>\xac\xed[\xe7\x8f}\xab\
+\x89%\xbd\xa3\xfd\xbc\x95*N\xd7](\xf9\xba\xad\x94\
+J\xf9e\xc2\x9a\xff\xd1\xfc\x94\xd0\xea\x0f\x80\xa12\x99\
+\xa8\xe29^\xd3\xc5\xc3\xd6\x00\xb4\xf6Q\x80I\x06\xfe\
+\x05\x84\x04\xa3\xe7\x9c\x8e\x01\x82\xb2\xfa\xe1\xa6\x02\x13\x8e\
+c+\x91 \x12Z\xcc7\x01\xc5\xe0X\x16\xa5\xd49\
+\xf6\x1f\x99\xb8\x01\x94\x85\x18\xe5^W\xcb\x9c\x80\xf3\x98\
+\x00\xd1~\xae2\xe22\xa4\x98MJNr~N_\
+\x0e\x9b\x7f\xefea\xd9-\xe1\x0e])e\xb8\xa1\xef\
+X\xc5\x07KS\x80X`\xec\xcb\xcf\xcf\xf6\xb7\xa1\x19\
+\xf0\xc1\x90\xb5l\xfb\xdc\xa7\xda\xf5\x7f\xb8\x15\x9f\xac\xed\
+Ro\x90\x80#5}@K\xb6m+J2\xeak\
+\xce\x97V\xa2\xf1\xfc\x0e \xca>\xf6\xb5>\x9d\xcf\x09\
+\x88\xd6\xb9\xe3\xefe\xde\x88\x15\xde%Kl\xd2Q\xde\
+\x5c0\xec\xf0\xda\xfa\x12\xd9#\xda\xca\x1f\xb0\xdf\x13\xc3\
+\x05\xa0(1#\xbeHD6\x99E\xbb?\x09\xeb\x80\
+\x9b\x81a8\xdd9,\xbbu\x9d\xbfK\x9c\xf0w\x94\
+*\xf2gi|\xdc~\xef\x97\xdb>FC \x01\xe9\
+\xba\x1f\x22\xab\xa8\xf5\xc9\x1c\xa8s\x1b\x00\xe9\xbc\x90y\
+\xd45EW\x0d\xf3\x88h\xb4.8J\xa6$j\x9e\
+\xd6l=\xf7~8t\x87\xe2\x7f%#J@T\xa5\
+\x9d\xd9\x86\xb1\x12\x1d\xce\xbd\xb1\xc4q\x107\xacs\x5c\
+@k\xff\xf2\xbc\xac\x7f]\xb8\x00\x7f\xfc\xdc1\xc1\xc0\
+_\x07\xa8H88\xb7F\xc6\xa4\xf1\x1c\xb5\xc1F\x11\
+\xe7!#^\x89&\xf3\x98?#\xe1\x04p\xf1s\xa5\
+>\xa9%U\x81\xe5\xd8\x15\xca\xfb\x1b\x8fM\xc9\xc2/\
+_C\xe2\xa6\xce\x19\x8c$\xb5\xec\xaeObs\xbc\xef\
+Q{m\xd4r\x13\xd7y\xfe\xfc\x0a%\xba#P\xc7\
+\xaf\xe4\xdf[\xcf\x9e\xbb\xcf\x15_\x9a\x07\xc6\x87\x9f\xc3\
+O\x1f\xb5\xaf$\xa4R\x94\xb4\x18\x07\xae\x0f \x96\x0c\
+\xb2\xfa\x1c\xc0\x968\x93\x1f\xc9\x0ft~\xf3\x9b\xf9\x7f\
+\x02w\xa5\xbe9_\x89WV\x09%`,5\xd2:\
+f\xde\x92\xd0s\x9f\xd6\x81\xe7f|\xc4\xf39>\x07\
+K\xe4-jH\xae\xd8\xb5\xe9\x13\xc0\xc7\xe3\xef\x91 \
+\x01\x02\x87\x0b5\xdc\x86\x91T\xb7j\xdfg\xc2\xf8{\
+\x94v\x22z\x91y>\xa1\x9b\x00\x1e\xc0UZ\x88\xba\
+~\xd9\xe0zU\xc9\xefv\x1a\x04c\xad\x8d\x07bA\
+r\xb8-\xa0\x9f\x19(\xda(\xb4\x02\x19\x0b\xdb\x01j\
+\xe2\xa2\xd6\xf8<\xc8\x17\x15h\x818uy\x7f\xe7\x81\
+\x08\xd8\xd3\xf1\x8d^\x0bM\xe4\x0f\xd00R\xfb]\x8f\
+\xeb\xf3\xf76x\xcf\x03\xf5\x10\x05\xd2\x836a\xd5p\
+\x09\x90M\x8cKe\xc6=\xdb\x12\x16\x8b`\x9b\x1b\x81\
+\x0d\x92ch<\x1cL\xa7\xe7\xc4\x86h%@P]\
+\x1fn\x94\xc8\xaf\x05\xa1\x86&\x03\xa5\xed\x83\xc2\xe6\xdf\
+{OX'\x02&\xb3\xa2\xe6K@\xa3\xb4\xc1\xcf-\
+$\xcf\x01\x12F,\xeeb):8\x22\x86\xe6\x85\xeb\
+\xc9\xf6\x88\x95\x01F\x113o\x8f\xae~\xb3\xcb<<\
+O\xd6\x16\xa1\x9a\xdf\xf3\xd0\x9a\x22\x8eGe\xce\xce\xcc\
+\xbe\xc9\x073c\xaa\xd6P\xc67k\x0c\xf5y%j\
+Hdl{\x97\xb0\xae\xf6\x1d\x90\x82\xa2\x0e\x915o\
+\xb2\xadUe\x9em\xa46t\x0c\x17j\xa2\x10|\xf3\
+\xca\xc1l\xbd\xd9pG\xca\x94\xdf\x07,\xd9\xb8\x89\xe9\
+q\x8cm|\xe6\xa5\xdf\x13\x88\xfa\x1c\xeb\xf1rC\xfb\
+H\xf3U\xf7\x8aT\xa3\xad\xfe\xf2\x97\x0b[\xc5\x80J\
+\xe3\x025Z\xd7\x07%;6Z\x19R\xfb\xd8\xe5\xb3\
+M\x9c\x03\xc7\xbc\x97\xc1\xc9\xae\x04\xf5\x05@ \x96#\
+C\x0b\xd1\x05\x14<qi\x17W\x81\xaf\xf5<\xdcw\
+\x017\x1c\x10\x077\xc0\xcc\xc1\x839\x80)\x02(A\
+\x00\xe2\xd8\xffa\xd8\xfc\xfd#\x16u\xfc\xdd\xed\xc3\xba\
+uf\xbc\x95H\xfcsf\xd4 \xf0y\xdfU\xd3\x09\
+PR['\x10\xce\x83HF\xbb\xf6C\xed\x0a3\x83\
+\xa7\x86}\xf3\x9fa]\x8dv\xaa\xaaW\xe9\x86u\x93\
+\x99\xeb\xa2p\xe69\xb1\xfd@X\xd3$X(\x8c\xff\
+=\x01\x0c\x99z%@)z\xc6q\x16@l\xdf\x18\
+6\x1fS\x17\x08k@B\x0b\x5c\xabT\x09\x80\x84J\
+,\xe3(p\x7f\xcd\xee\xb5\xbb\xd7\xae\x22\x84E\x89\x96\
+\xb9\x91a\xbe\xff\xee~\xbb\xfbu\xfb\xb6vs\x18,\
+\xc9P\xa8\x1aN\x19S\xa5\x13\x09\x10h_\xb5ys\
+\xd8\xfaw\xd5\xd5 \x03\x9e\xcd\xff\x0e\xeb\xa8\xda\xda0\
+\x12\xbb\xe3\x90`\xa8(I\xd1\xd62\x198%\xb2\xaa\
+\x8f\xb7R\x00\xed:\x05\xbe\x9eg\x02\xb8\xd5\x06\xee\x8c\
+\x14WS\xeb\xff\xe6\xbd\xeb\xc6~\xba;y\xf7\xd0\xc6\
+41\x8e\xa9\xf1!\x80\x9a>=}j\xfat'6\
+y\xaf\xd9\xee\x99\x00\xef\xdd\x12h\xfetG\xdd\xff\xe6\
+\xe6[\x9bov\xa50\x7f\xb2\xf7\xf8\xc8\xc06\xd1\xca\
+G\xb5u\xb6dLR\xb3h\xf7\xc2\xb0F\x11\xfdD\
+\xa3\x88^}~ZW\xef\xa8\xe0\x18[\xa9\xa5\xb2\xbb\
+\xd4\xee\xd2M\x1c3\xe7\xeb\xe6\xb4\xcd\xe9\xd1\x87y\xfb\
+\x98\xb0\xee|\xce\xfb\xa9\xfd5V\xcd\xe7r=\x9c\xd4\
+\xa8\xf67l\xed\x01\x13H\xd5\xfe\xb1\x02)%b2\
+\xd8\x023~\x83\xcc\xaa@\x0cc\x08\x93B\x89\x87s\
+\x8b#\xca\x1f\x91\x01\x04\xa4\x03\x14?\xb8\xfbPcx\
+\xdcu>\xf7\xee\xda\xf9\x13\xf6oTw\xa5\x22\xb1\x1b\
+\x87\x0a\xf5Kf{i\x07\xec\xbdb\xf7\xcaFi\xff\
+\xfc\x02\x0c\xec.\xbe\xbbd\x88w\xee\xdd2K\xd7|\
+\x1e@1\x03\x86\xdd\x1b\xc3\xba\x9aym\xf1\x00f\xc9\
+\xa0\xb2\x8f\x15\xd5\x9bx0\xf17\xe7\x93\xf9\xa8\x1b\xca\
+\x09\xd9G{\x9b\x1a\x10\xd7kE\x06%:\x0ah-\
+\x86\xa0\x80\xc0>\x879\x96\x80\xdc\xee\xf2a\xdd\xb9\x07\
+\xa8\xb4_\x00\xae\x05\x84\xfc\x0d\x997\x80\xad\xf6v\x80\
+\xe8\x0c\xac\xa7\xdf\x0f\x9b\xa7\xd1=\xc2:\xc6\x81\x92U\
+\xf3\x93?\xeby\xf13\xed3\xceM\xe7\xec5\xe6\xb0\
+\xf5\x1a\x0d\xb8{P\x03\xee\x00\x10\xf6\x05\xd7!\xb1\xe5\
+>\x9d\xbb\x02v~3\xbf\xd2}b\x12[\x0f\xceA\
+\x9a\x17\x80u\xef\x87b?\x94d\xd4x\x11\xbd\xcb\xef\
+k}*\x91Q\x1b\xfd\x7f\xc3:\xf1`\x81\x90q\x8e\
+n\x1f\xdf\xed\x983\xfc\x17\x81\xe0&\xff\xcb\x00\xaf\x00\
+[\xe3\x22\x0e\xa0\xee\xcf\x9fQ*\x9a\xfb\xc4aZ^\
+\x80\x86/\x0e\x8cY\xaf\xfc\x8b1\x03\xef\xdf\x01\x1a\xfc\
+f\xdd.\xf4\x9d\x17\x90\x02\x9e\xed\xdf\x002\x80\x87y\
+MTPi\x9aL\xf2 \xeeY\x00\x80x\xcc\xbc\x05\
+X\x8c\x94}\xcf\x1d\xe0 \xb0\xf6\xef#\x03`\xa4\xe2\
+{\xf5{\x02\xf7\xb1\xa6_\x1cB\x9b\xeeca\x1d\xe3\
+\x18C\x1d a\x1d\x1b\x7f\x19qq\x9b\xeb\xe0\xd7)\
+q\xf2s\xcfedj\x8f\xcc\x0e\x09&\xcfA\xbbM\
+\xfb\xaf\xfb\x02L\x00\x02\xac\xd3\xfc\xbb\x12\xdd\xcd}\xbc\
+\xe2\xf2\xbf\x0e\xeb\xdaAZ\x07\xf6\x1d\xe7\xb8qr\x7f\
+>\xf7\x82\x15\xaf\x1c*v\x0f\x00\xa8\x80\xd9\xc0\xdb0\
+\xe2m\xfe\xab[\x00\x16\xae\xf6~\x83\x9ac\xb5\x93\xe3\
+@\xefe0\xd9\xf7]<\xa6\x1b(Z\x03\xe1~\x1f\
+\xd9MH\x03j\x00c\xb8/\xd2m,c_\xc8\xf8\
+\xf4\x9eBb\xe3[\x03\xd2\xe5\xbe|\xaeW_&6\
+\xea\xc6\x91\xd9\xbf^\x00b\x01\x99\xf82\xf3\xfe\xddu\
+B\xa2\xdc\x07\x8a\x8d\x83b|\x15Hz\xbf\x0b\x0e\xdf\
+[\xf8\x16\xa6\xcf7\x11m\xc0\x10C\x81\x8a\xe7b\xe1\
+jwa\xa3\x85p\x9a\x80^\xd7\x8d@\xbb\xc3e\x9c\
+\xc7\x0da\xec\x0b\x8a\xea\xbfI\xc7\xc7\xc1|\xfe\xbc\xee\
+QCA \x8fa\xa1\xb6\xcb\xc6l\xbe@XQ\xa8\
+\x89\x03R\xb1\x16PB\xb68J\x17\xcd\xf1W\xe3H\
+\xf58U\x80k|\xfd\xdd\x88\x1c\x0bd\x1f\xbcd\x8c\
+* \xbbj>\xdf\xbbf\xe0Hl\xcf\xfd\xfdj\x02\
+\x11\x80\x07\x94d\xda\x10\xd4\xde\xf5\xaf\xcf\x00@_\xdf\
+\xcd?\x86u\x07\x8c\xfb\xcf\x03\xb4\xfa\xbd\xcb\xb0x\xbe\
+\x1c>\x07\x92\xfb\x93\x09\xe48@8\xd5\x9c\xd9`\xa9\
+\x19[_\xc6\xc5\xfa1\xcf\x1cl\xa3\xba\xed\xd8\xaeR\
+\x9b\xaa\x0c\xb4\x8br\xe8\xc0\x02\x08\xca\x5c\xa1\xeaff\
+\xad\xe6\xcbX\x8b6\x00\x0d%\x02\x97\xd4\xc0\xfa|\xe2\
+\x9c\x00(\xd4\xf1\x5c72\xcd\xf5\x5c9\x0c2\xef\xda\
+\xc0\xe8\xce\x90%$EI\x06\xbc\xdc3\xac\x13\xbb\x82\
+\xe0\xda?\x87\xf1\x96\xd9)m\x07\x0c\x1d\x8e\xb6\xccS\
+R\xbe\xd5\x92C\xd2\xf5\x81\xad\xfd\xc0\xbe%\xc3\x94\x94\
+\xcf\x12\x89\x03\xb0\x9e\x14\xd6ep\x01\x05\xae3\x01\x04\
+b\x93\xe5\x90'#\x05C\x0c \xa5\xd6\xb5(\xa3y\
+\xff\xa8\xeds\x983[\x07\xec\xa4\xe3H\x94k\xfb\x83\
+\xb0\x8e2\xec@\xcf\xeb\xdb<7\xac\xa3\xae\xaa\xdd\xe6\
+\x90\x0aH\x88W]c\x01\xb0\x8aZ;\x96V\xe4|\
+j\x04\x89\xc8\xa4\xbev\x09\xdc+SF\xd4Ki\x88\
+\xcc\xbf\xfb\x97\xc9\xfc\xc7%`+*\xde;\xd3a\xa4\
+z\xae\xf4A\xf7\x81\x7f\x0e\xeb\x1c\x86\x04\x9c\x0a \xa1\
+zM\xdcP\xe6\xff\xfeK;\xc0*\xb9\x00\xec\xa2|\
+\xaa\x99\xa5:\xfe\x1ba]@\xee<w\x0e=\xaaY\
+\x01>D\xdd\x88\x84\xd5\xbe\xcbAJ\x86B\xb5\xeb\xb2\
+^\xb5\xcd:.l~\x9fg\x86u\x19\xef\xd4v\xa8\
+\x12\x15\x0c\xa5\x0b,\xc0\xc8\xee\xfd\xbb\x0f\x848\xd1\xee\
+W\xc2\xe6\xe7\xf1\x84\xe9\xf1Q\x0a\xb0\xf9t\xd8Zk\
+\xbb}MX\x02\xd3\x97j@R\xeb\xf3]\x22]\x09\
+p\xec\xceY2\xec\x95\x91\xbfO\x8a\xd0\x05@\xf1\xe2\
+U\xbc\x8d_b>\xed\xae\xb2\xcc\xd3\x02 \xb2\xc6\x1d\
+\x13\xa2\xfa\xd5c\x02f\xfbQ\xfb\x80\xcc\xeb\xee\xe5!\
+;\xbb\x96RT\xfb\xb3\xdc\xcf9f\xd1\x0c0\xa8\xca\
+2\xa3\xd5\xd5B)\x8e}\xed\xac\xc1Q\xb6\x7f\xc8\xa4\
+I\x18d)X\xcdo\xddr\x00\xbaj\x96\x05\x5cc\
+\xe9Tf\x94\xd4~W\x89\xca_\xec\xfegc\x16=\
+~\xf3'\xd1n\xb2\xf6\xcb\xb3\x97\xb6\xd0\xed\xfa\xe2:\
+~3\xbb\xda\x9c\x7fa\x5c\xb4\xa6\x87\xc1\xac\xb8\xeb\x02\
+\xe0`\xf8T\xa9\x83\xf9\xa3\x1b\x0e\xffM7%\xeb\xe3\
+z\x09P_m\x09\xa01\xd3*sL4\x8fx]\
+f\x86\xab\x9bB2\xa5\xa8\xfe\x17\x80\x9dL\xbd\xf9\xb9\
+\xcf\xd6\x80\xd9\x7fn\x0c,\xfe\x92\x0c\xb9\xf3\x99(\x1b\
+?k\x04\xa2%\x1e\x00\xc7j\xe1\x05\xc6\xb9\x0ek^\
+\xa1\xb4\x13\xffs\xbe\x09\xa8\x9d\x1b\xd6Qv)\x99\x1e\
+\x166\xdf\xd7g\xc3\xba\xf3\x8d?\x801\xe1s\xd3\x7f\
+\xdb<:\xac\xebn\xe2<\xd0\x8d\xc6~\x8d\x99\x93\x0c\
+\x9a\x0a@\x5cO\x8a\xbd\x1e\x06\xcc'\x83BM\xb9\x12\
+\xa8\x0a\x84\x05\xa2\x00\x0eL\x14\xe2\x9d\x18\x879\xee\xbb\
+\xdf\x0a\xeb\xf6o\xe2\xc6\xce\xd5\xdcw\xf8\xaf\xba\xcf\xc8\
+\x84n?\x1c\xd6%\xe6\x00\x9c\x027\xe7\x1d?fL\
+\x14\xeeg\xfc\xe0>\xf9\x03\x80\x8b\xb1;\x96\x9a\xfb\xbc\
+\x8f\xcdM\xc2\xba\xfb\x17\xf8Z\xbf>\x9f_\xees\xf9\
+\xed\x02C\xbfo\xbd\xc8\x0c+\xc5\xfa\xdcR:Z\x00\
+7\xe0\xd0:\xc2t\xd1\xbe\x0e@d_7\xef\x04\xe8\
+cbqdF\xf3\x03\xc5\x1d\xfc\x0d\x09\xb71\xc3n\
+\xfc\x05\xa2\x00\x8eQ\xbc}\xd4\x962\x1e~\xee\xf3\xad\
+?~\xb9x\xca\xfb*\x85\xb0_\xfb\xc2h\x1f\xda\xed\
+\xd5\xab\xae$\xc9X\xaay\x010\x18\xc5\xe5\xc7\xf8q\
+()\xa9\x12\x01\xa5\xb5\xe2d\x9aO\x9e;F\x97q\
+\xb2\xafH\xa8z.\x9e\xbbyG\xfb\x0b\xc3\xc3\xf3\xb7\
+\xce\x00B\xc6\xc5\x97x\x16C\xd2\xf8y\xcd\xfb;X\
+\xc8\x12\x0a\x17\xca\xbc\x05!\xa3\xaf\xed\x9f\x07sFR\
+\xf68zb\xfe\x10q\xfav\x97\x81\x8b\xc79u\x03\
+\x13\xc3&p\xb8H\x1el\x97\xed\x02\xff\x14\xf1\xab\x89\
+\x19\xc3t\x5c'\x1ax|\x0b\x05\xd7\x7f?&\xc5r\
+\xc6\x80\xd9\x84\x1d).#\xd5\xa5\xd70\xf8Q7\xa0\
+\x02\x1d\x13D\x061\xfa\x95^\xfb\x5c\x90]\x1b\xb0@\
+\x065ih\xbbW\x19\xda\x8b\xe7\xcf\x05Pc\x1fy\
+\xefk\xe1\x98\xd0\x02d\x07\xd2X\xdb\x02\x900\x9e&\
+\x9a\xc0\xd6\x81\xe1s\xf3\xf36\x07S%V\x09\xc8\x8f\
+\x07QDm\xf8\x1c\x14\xfeN \x96\xa5\x04u\xddj\
+\xbc\x0fff\xb1~\x9e\xe3O\x8c\xc4\x86\xed\x15\x85\xd1\
+\xf3\xb5\x10\xff5k\x9a^\x95\x8e\xab\x8d\xc2s\x90A\
+\xd5^\xd1\x86\x8cr.c\xacm#\xca\x97\x8d\xd88\
+\xa9\x05\xfb\x83T\xc7\xfe\x9d\xa5\xafsi\x0a\x9c\x1c\xd6\
+\x89\x11\xa6\x1aoQ\xe3\x04t\x02<\x81<Q\xc0\xcf\
+\xe7\x86\x96\x0eg\xa9\x0b\xfff\xb3\xb5\xdf\xb8\x9a9\x1b\
+\xb8\xcf#\xb2\xa5V\x0f\xf0\xc4\xa11\xdf\x01;\xd6\xa7\
+L\x9f\x83M\x80\x83i1P\xbb\x0a9\x15(\xfa\x1e\
+\xe2\x0b\xd01\x9f\x94\xe88\xb0\xa8\x13s\x80\xb2\x96\xb8\
+\x80:\xe3\x9e\xd7\xa5\x86\xb3\xa8\xed\xbe\xc6yc}8\
+\xd0\xfan!gv\x1b\xac\xf5\xe2u\xc8\xa4U\x09\x82\
+\x0d\xd8\xfaU\xd2D-\x99z8q\xa6\xd3\xc2:\x87\
+V\xa0\xe5`\xa0\xb1\x01\x105\xdf\xfc\x5c\xed\xa2\x12\xab\
+|~E\xcdG\xf9\xcd\xf6L\xc5\xd8\xe1\xb8p\x14\xac\
+\x97\xa4\xec:\x08Q`7\xc7\x85u\x9a\x16\x0e\x105\
+\x83\x90\xe8|\x8e\xbb{-\x8e\xdc\xee\xa6\x99\xa1\xcb\x0c\
+\xf2\xf6\x81a\xeb\x81\x84\x19\x80y\xa2\x1d\x1e\x87qz\
+lX\x17\xe8R\xa5\xce\x921\x99\xcf*\xd1zpX\
+'\xbeh\x1c\x89\xb7\x12M\xca\x9adT\x5c5\xd7\xd5\
+\xce\xcd<\x15\x10\xb4\xaf\x95q1=.l\xfe\xf9\xdb\
+\xc3\xd6\xfd\x91\x96\xc0\xf6\xdea\x87w\xb9\x10\x88\xefN\
+M\xf5{\xf7\x8d\xe1`~\xfdL\xad\xef\xc5!k_\
+\xddz\xe3`\xc8lf&W\xe6\xa1\xdan\x09XS\
+\x1d\xbc\xb4\x0c\x00\x0d\xc4(3\xa0\xd8\xfdLX'B\
+\x88\xaa\xcc\xe1\xcf\xf5\xbf\xb9_X\xe7\xc88'8`\
+\xd6\x05\x06\x92}\x94:;\xe0\xe4\xa4\xac\xfd\xd5\xfe\xd0\
+|\xb4\x0f%5\xbb\x00\x95\xa4\x9cNO\x99\x9e:=\
+\xb5\xab\x1d\xff\xdc\xd2\xaen\xf3\x8e\xb0\xf5>k\xbf\x07\
+\xe0f\xb7\x83j\xaf\xa6\xf4@\x00\x91%&\xdb\xbb\x86\
+\xb5\x9a\xdd\xa5\xcd\xe2\x91\x0b3czn\xd8\xdaN\xad\
+\xb4I\x04\x1a\x0f\xdb;e\xef\x94\x96\x19k\x0c0\xa5\
+l-\x8f\xfd\xf9\xa6)\xf1\x82P\xffo\xbd\x81z\x07\
+K;BZ\x0a\xd7\x98\xef\xfe\x1a]\xa0J\xfd=\x00\
+\x8cw\xad\xebF\xe9C1\x90~9E^e\xca\xbf\
+\x92\x8e\xa0}\xec\x82\xe9\xd78\xcf\xae\xbd\x00\xca\xbb\x13\
+\xc3\xba\xd2\x9d\xdcgK\xbcT`\x97\x9a-5\xbf\x00\
+\x01\x008L%\x00'\x07\xff\x84\xf9\xf4:a\x05\xb6\
+\xaa\xd6\x1b\xf3\xe7\xcas@}\xe5\xb5\xc4\xaf\x00\xab\x17\
+\xe4x9wi5\xe8Z\xa2\xf6?\x19A\xbb\xdb/\
+m\x9b\xa7\x7f\xca.\x0e\xf7[\x183T\xfa\xf7~)\
+5\x17\xee\x98\xf3]W\x93d\x0cMW\x0d\xeb2\xc0\
+\xd6\x155l\x80\xf7\xe3\x9b\xad\xa5\x1f\xfc\x1c\x99{\x89\
+\x8bd\xd8U\xa6T l\xbft\xfep\xa4\x13`\xa3\
+\x1e_\xda\x05y\x1f\xe5\xf7e\x89B\xa9\xf5\x03J\x94\
+R\xf1\x0be\xe2\x93\x01T\xe7r&\x12J\x149\x19\
+e5\x8f\x5c\xcf\xd8\xee\x1a3\x05S\x03SI)\x0f\
+1B\x00=\x00#\xe7I\x01\x8b\xbax87SK\
+\xa4\xc6ol\xcf\xa6\x94\x0f`\xebyf\x80Z]Q\
+Fm\x0d\x22\x99\xf6I\x8cGL>\x09\x95<\x7f\x9d\
+\x1b\x05Lg\x80T\xfb\x15\x11\xdcO\xb6\xa2\x99U4\
+0\x01\x89\xc3\xfa\xa3\xf33\xf8)\xe6\xc5\x988C\x81\
+\x07\xec?-\xac;\xbfi\xb7`H8\x9f\x00\x04\xbe\
+w~\x00\xc2S\xeb\xa4\x9e\xa3\x80\xda\xbc@\xb5\x97\x80\
+s\xae\xf0\x0f\xf8A\xfe\xdd\xdfY\xd7\x02\x5c\xfe.`\
+c\x14]\x17\x17\x0dm\x9dG&\xef!]\xdd>\xd3\
+%\xe6\xc6nR#\xe3Ab\xc3\xfd\x8e\xaa\xf8>\xcf\
+\xdf{\x1e\xfcATw\x1a\x10c\xfbA\xf1\x9b\xfb\xa5\
+\xe5\xa1\x94J)\xe6\xc0\x04\xa8q\xf3\xb9\xa3\x96\x81\xf7\
+s\xce;O\xfc\x1c\xc0)\xfe\x04|e\xa2\xcb\xba,\
+\xe6\xad\xb8a\x04\x00$v\x88\xc3\x03\x02090\x1d\
+\xf8\xb5\xd6;\x7fX\x9ch\xbc\xc7\xae\x159O\x0f\x1e\
+\x22\x9a\xf1\xd5s\xa1L\x1c\xd1\x1a\xc1\xad\x99\xf8\xb1\x8f\
+\xb7\x00\x17\x22\x92\x22>\x15p\xba\x10@\x80\x0b\x82\xac\
+\xec7\xf2\xf9\xb2\x81\x1d\xd5\x05\xf4&@|\xda\xf9\x86\
+\x8cd\x1f\x98\xf7\x81\xfa7\xbb\x00\x06\x95\x09\xb5\x97\xc8\
+\xdd\x85Z\xee}]\xc8\x168\xea\x8d\x89l#@U\
+\xc2lp\x10[@6n\x81\x80\x052Nd\x19v\
+\xedw.\x94\x8e\xecU\x87\x1a\xf5qA\xa1\xb6\x08\xa0\
+\xf2\xf3\xaa\xe4\xc2\xc2\x01h\x08\xec]\xf7\xf9\xc2\xba\xeb\
+\xee\x9f\xc7\xae\xabu\xc9\xb6>\xd5\x06e\xa4h\xdb\x88\
+<g\x22\x902\xd0\xee\xd3\xb8\xa9I>;\xdb\xfd\x99\
+\xe06D5g\x02h\xd4F\xe3\xc01\xf5\x9c\xc7\xc0\
+\xd4\xab\x80\xd7\x01\xa2-#u\xe4\x01H(\x8a\xe1\x91\
+\xcbB\xdd\xdc!\xb5\x06NY\x1c\xc1\xbdc7\xb35\
+\x84\xb5\x1d\xc0\xd5F\x10\xa5>\x1d\x09@@9\x1eT\
+\xd1Q\x92\xd4\x0e\xbb\x9f\x8b\xe4s\xb9yff<\xa7\
+\xcc\x18\xb9\xae\xaa\x1d\xb7\x91\xa6#P\xa2P\x1c\x17\x01\
+\x87L\x87\x0d\xdcFi^@\x82m\x94c\xc0n\xa3\
+3/\xcc[\xf3\xd9A\x8e)a\xa3\x14\xd8\xd8p\x88\
+\xb7$\xe5XF\xb3\xc4\xb18\x18>\xc7\xf5\xd9\x98\xc6\
+\x8d\xcb\xb8\x99O\xbe7o\xbd\x9e=\x88M\x8e\xaf\xe3\
+~f\x1f\xb1^\x1c\x00\x0e$\xed\x9d\xec\x07\x09\xbcl\
+\xde\x12\xd61\x0bd\xe8\xb5\xc7RB\x82\x19\x00@\x90\
+\x09\x02 \x0a\xe8\x01PD\xf1\xd2a)\xaa\xbd\xf9\xe1\
+:\x94\xb8\xa8\x19\xb6\x0f\xd0<p\x90`@$%\xbc\
+\x1c&\xe3\x0b\x98\xf2\xbe\xf6o\x99\x9a\xfb.\x99\xa3\xcd\
+\x19a\xddu\xa4\xe8]e\xd8\xef\x156\xff\xde\xdd\xc3\
+\xba~\xd2\x0e\xbc_\x0b\xeb\xb4\x1a\x12\xb0\xda]2l\
+\xde\x1e\xfe&l-U\xd0\x16t\xf7\xd6\xb0\x8e\xd2m\
+\xdez\x9eY\xcaR\xb5\xcc2!\xf7k\xb6\xb7\xf7g\
+\xcd\xcaA\x98^\x1b\xb6f\xac\xaa\x0d\x0f@\x0d\x90\xa5\
+\x16W\xa0\xa9\xdd\x99\x8c\x15 \x82\xe6\x0bQM}\xb2\
+}a\xde\xe4\xfa/\xe6\x85\x03\xdczs~\x0e]6\
+\x046\xb5\xafp\xe0\x95z\x98oY\x1b\xad\xb6|s\
+\xaf\xb0\xae\xad\xa3s\x89(\xa8sW@#\xa37\xd6\
+\xfe\xdf=\xdb\xe7\xc9\xa4\x0a,S\xfc\xad\x9e\xbby\xaa\
+f\x9c6\x86\x12\x80\xdc/\xf6\xdf\x196/\xdf\xdf\x0e\
+[\x03^\x14N\xc0Te\x02\x7f\xb0\x9cC4S\xcc\
+\x97\xdd\x11\x0b\x05{\x9e\x9b\x0b\x00\x81\x02\x9a\xfd\xea\xa7\
+7\x87\xad\xf7=\x9d\xba\x88#n\xef\xbf}\xc0\xf6\x01\
+\x0d\xe8\xf9\xabi\x0e\x5cB\x1b?\xd4\xf1\xe7\xd9\xd6\x80\
+\xb9\xd2\x9e@\xdd\xc4\xfc!\xa2&\xd3\xf7\x94\xcc\xac\xd3\
+F\xd0\x061\xcf\xcd\xbdG\xec=\xbcu\xab\x08f\xc7\
+\x1f\x1dB]_\xc4\xf8\xf2\xdc\x98\xd7\xd8\x22\xc6\x86)\
+\x03\x88\xb9Yf\x96\x05\xfe\x80\xbacR\x03\xe82\xd9\
+\x06\x15\xd3&\xa9\xedsp\xd42\xa5s\xb8\xbf\xf8'\
+Y{]%3j\xbds|k]\xa1\xe4\xa3\xd6c\
+r\x06\xd0u\xea\xea7\x08\xd0\x0a`L\x0d\x9a\xaa\xd1\
+\xcf\xd2\x94\x0a\xa8\x042D\x15\xbf\x94\x09\x15\xe7\xc7.\
+\x1d\xf4\x5c\x7f\xd6q1#R\x0d\x9e\x96P\xe3\x87\x1e\
+\xb9\x02jDCu9\x01\xacT`w\xe2\xfc\xae'\
+v\x197\xebQ\x89A\x02\x5c\x98oJ;\xaa\xbd)\
+1\xd4\x04\xd4\x0a\xe8r.Y\xaf\x1c}\x9aX)r\
+Z\xfb\xbb\xcc{\x96\x9c\xd4~#\x83'\xf0\x03P\x0c\
+b\xd4\x05\xc8`\xe8\xf9|_\xfc^\x81B\xfa\x1d\xba\
+\xc9\xd4\xbc\xb2_`\x0cH\x0c\xd10\xa0a\xc3\x8f\xe3\
+\xbf:w\xed\xe7\xb7\x0a[\xc5\xf1\xcaOP\xf2`\xbe\
+\xff~X\xb7\xff\xf1\xb7\x88\x99\xb9\x0e\xdd\x8dh\xcdh\
+{\x09\xb8\x14\x88)\xa5\x22\xeah~\xd1>I\x7f\xa6\
+J\x97\x1e\x1e\xd61q\x94\xcc)a\xf9\xe7\x0c\xfc\x04\
+\xce\x00\x03\x00\x05\x06&@\xc5\xf9\xe7U\xbb\xbe\x046\
+; k)\xad\x13\x17$\xc0R~\x8a\x00T\xc0\xa8\
+\x94C\x80\xe9\xf3\xf8}\x02T\x00\xab\x00\xcf\xf7\x98\x03\
+\xfcr\xc0\x00\xbf\xdd\xbc\xf4yD\xedhN\x8d\xfe\xbd\
+\xf9<f\xea\xc7\x12\xcc\x91\x89m=\x00\xc8P\xd5\x95\
+\x22\x0b\xc8\xc7\xd2\x8b\x91I\xec|7\xaf\xbc\xff\xe0\x9f\
+\x1d\xd6N\xdd\xab\xfd\xc5\xe7\xf8}\xd77j\x09y\xfe\
+\xe2\x0c\x9f\x0f\x10r.\xba~\x9f+\x11\x9ab\xb3\x05\
+D\x8c\x22\xee\x9e\x0b\xc0B<GL\x9b8 ?[\
+)\x93\xcf\xe7\xc7\xf1\x87\x94&\x8f\xfe\xeb\xd8\xcep\xd4\
+l\xf0{#\x90\x91??X\x13'\xdc\xc3\xa3\x13\xb9\
+\xfaH\x17`B\xa2\xae\xd6\xc8Y\xcbFq\xfdt8\
+/\x9e\x0e\xd4\x15\xbb\xda\xda\xf8\xfe\x84\x5c\x98\xc7\xe5\xc2\
+\xb9X\xa7\xee/\xf0\xfff\xd3W_\x99\x04\x11>|\
+\xb5{\xa0\xba\x0a\xa4\x03\xdf\xda\xaf\xbc-\x1d\xeb\x8bd\
+\xa0z\x8dn\x22\xc74\xf9\xfe*\x02\xd8n\xb3\x13\xa1\
+\xa8\xbe\xaf}\x9f\xcd\x1e\x19\x01\x04\x08\xa8\xb4_\xd0v\
+O\x8d>\xaa\xb5W\xb5\xd5\x16\x06`ad$\x8c\x07\
+\x86\x1a\x8f\x9bg\xe6\xcf\xefA\x92\xbc\x8f\xf7\x95Y\xce\
+\xeb\xac\xbf\xff\x85\xb0\xce\xb1\xf7\xe0m(\xbe7\x11\x8b\
+\xaa1L\x1c\x13\xeb'\xf57\xb5\x90\x5c\x7f\x8e\xeb\xe6\
+\xc4<\x98\x5c?\xf5v\xa5\x14j\xd0W\x84x\xd9\x08\
+=\x0f\x19_\x13\xd5\xc2\x1b?_\xe0\x89\xfa\x92}u\
++\xd3iC\x94!\xd3\xc7\xf6\x22Y+v\xde\x04B\
+\x00\x0e\x1c\x16\xe2{2\xb0\xefY\xdew\xef\xac\x14%\
+\xf4|3\xc0(\x11>\xfdn\x93:]\x011 \x03\
+\xe0\xf3\x95\xbc\x9ft\x90\xabdB\x8d.\x91\x1b\xed\xed\
+dB1\x0e\x92\x82Z\xb5\xc1\x9e\xeb\xaaM\xb0|?\
+\xb6\xdb\xb3n\xa9\xc1\xea\xbb\x9e\x01W1'\xfc\xfe\xda\
+&r\x99\x0f\x1c\x0e\xaf(\xf2\xef^(\xb9\x85<\xda\
+\xe8\x86vv\x15\xf8\x99g\x00\xa0\xf1@I\xc7cs\
+\xf1\xb0\x8e\x9aj\xbd\x0c\xf3\xea0\x00\x0b@\x96j\xbd\
+\x02\xd2\xc32\x9aj\xe8\x1dT\x0e\x08\xfb\x0b\xb5_\x07\
+/\x00\x0d%\xdcA \xf3\xce\x91s_\xc69E\xce\
+\xd4P\x97#\x9a\x94\xf3\xd2\x04\xc04\x00\xe8@\x8c\x1d\
+(\x0eF\xcf\xd9\xfa\xcb\x8cJ\x89ri\x87f\xdd\xa4\
+\x0a~\x89/\xa9\x09\xa4\x01\x92Z\x00\xb5NP\xe82\
+\xa3\xba\xd9\x86u\xfbjf\xf4\xca!\xb5/&\xf5\x11\
+\xb5\xb92\xfe\xda\x0d\x01\x98<g\xfb~\xb6\x17+\xe6\
+I\x06\xc6\x15h}9\xac\xcb f\xcdt\x958x\
+_\x07\xaa\xf6Iy \xa3\xc0NW\x0a\x9b_o\x1c\
+\xb6\x02\x1c\xa6\xf9\xe6\xaf\xc2\xba\xf1\xca\x0cQ\xd5\x82\x0a\
+lPIQ\x7f\xed\x8f\xbe\xd7%A\x7fs\x8e4\x11\
+,\x22c\xd4\xd3\x05\xe02w2F\xd9\xef\xbb\xda\xbc\
+i\xe3\x08\xd8\x11\xa0kG&s6\x9c_\xd5\xf6,\
+?\xa7\xa8\xfa\xfa\xa9\xfb\xf7\xd1!2\x0f9h\xd6%\
+-\x89SS\xa5\x9eJ\xbc\x92$Z%YK]Z\
+\x0eJ\xc2\xd2\xb1\x99\x8e\x0d\xeb\xc6\x8b\x96@\x026\xad\
+f\xff\x0f;`\xd8\xbc\xd0\x962\x81\x80\x0a\x8c\x95\xfe\
+`\xb6\x00\xb2\xcf\x5c2\xdeD\xd5\xa6\xff\x16\xd6Q\xf0\
+\xbd\x9f\x9aO\xeb+\xf7\xb1\xda?2\xe3\xb7\xf9\xe8\xe6\
+\xdf6\xff\xd6\xd54\x03j\x94\x96\xe9&\x92\x0c\x15\x0c\
+\xb5\xddI\xbb\xfb\xec\xee\xd3\x05\xf4\xda\xb2^6E/\
+\x89?\xa2j\xda/\xd4<g)H\xad\x1f\x8c!\xeb\
+&_\xab-\xa5\xe7\x07\x08\x16\xf0~0EI\xffj\
+\xa9%\xad\x80W\x00\x06\xe0U\x13\x9e\x0e\xea\xf4\xd1\xb0\
+\xd6\xbdb\xd1\x80xb\x0644\x9cn\x13\xd6\x98)\
+\x0dp\xd2\x0eo\x9es\xcb\xf3\xa3\xfd\x91@`\xd5\xfe\
+\x0f\x8c\xcaR\xf1\xbfcX\xd7\xa6\xf1\xd2a\x1d3\x13\
+\xf0\x91\xcf\xcd\xfc\xab\xf9@{\xe7>9\xeej\xb6\x05\
+b)\xdeV\x9a\x22\xe9Xo?\x13\xd6e\x94\x93)\
+X\x80?\x00m\xd0\xec\xa9\xfdX@\xa8\x94Gf\xdf\
+\xb9\x9a\xe2\x85\xf5=f\xe8\x83\x93Y(\x10\xc4\xecs\
+\xee\x99\xcfJ\x07\x88\xfb\x12\x03\xbb\x5cXW+o\xbf\
+\xe6\xe7e\xe9T\x95\x10e\x1b\xd6\xf2W0\x0a\x92J\
+_\x22\xcc\x00\x13\x88\xcf\x1a\xe4\x00\x00 \x00IDA\
+T\x01\xaf\xe7\xe5<\xc2\x04\xe0\xa7\x98?\x02\xa0<\x1f\
+\x0a\xf8\xcc\xfb\xaa\xf3\xc3\xfe\x91%F\xbb\x1b\x85\xad\xeb\
+\xb2\x9e\x17`\x10\x13\x03#\x22\x99;\x00\xc8z_\x80\
+:?\xdd\xfc\xfe\xc2|\xba\x7f\xa1\xab\xe9\x17 JX\
+\x00\x840$Q\xc8\xc5E\xfcq\xf7'P\x04\xac\xe7\
+\xe7\x948\x1b\xff\xc1\xfeN\xb4\x9a\xc6\x0b\xffAf\xde\
+\xe7IT\x18o~\x95q\x1f\xf7k\x19h~\x8bR\
+e\x7f\xef\x8b\xdf4\x02\xd8\xe2\xa0\xf1\xf7\x87\xc4j\x89\
+\x97\xe69U\xf71j\x04\xa4\xbfY\xfb\xaas\xf3'\
+u\x03\xf0\xca\xcf\x1f\xafC \xcbo\x18\xbb6\x8c]\
+\xdc\xdc\x1f\xe0\xdcx\x8d]n\xc6R\x0c\xc0\x81\xdf\x97\
+a\xd7F\xd0\xe7\x8e]\x13>?\xb4A\xb7\xcf\x9b7\
+\x02\xf9\x11h1O}o\xfc$V\x00\xdb\xdf\x0a\xeb\
+\xfcU\xd7-\xf1s\x91\x14\xdb%\xce\xcd\xb1\xc1\xcc\xa6\
+I\x05P\xf150;\x0e\xb6\xe9\xf8\x91\xce1?\xab\
+a\xef\xcbD\xf9\x5c:\xce7\xe8\x0e\x16\x08\x97\xc04\
+\xf0\x8b\x8b'\x95\xe42]\x00\x8d\x12\xe8{\x19\x89\x14\
+\xe3)\xc7^\xe6\xfe#\xa9\x8e\x8bq\x10a\xe2\xd7;\
+F@|\xfa\xd1\xdd\xe7\x09\x04t\x01\x88\xd7\xf3u\xbf\
+\x97\x80\xc6a\xb5\x0f\xeeC\x80\x06\x81\x19(\xdbE\x81\
+D\xe1\x1ekf.vh\xadyQ\xff!\xaf>\xc7\
+\x01>\xaav\xfa\x1a)\xca\x16\x96\xf1B!\x93\xb1\x11\
+\xf8\xb8\x9e\x11\x11\xe2\xd0\x8c\xd4\xe9\x111\x1ak\x5c\xc6\
+\x059\x04\xfc\xb5@\x5c\xbfR\x89o\xa6z\xba\xf7\x15\
+\xc8\x9cw\x00\x1e\xce\x97?'Jtlv+\x90\x81\
+\xa3jl\x03\xe7\x18;p\x89\x96\x09l\x1d<6\x0e\
+\x19^\xd7\xeb\xf79,\xa8s\xaf^\xfa\xc6\x175[\
+\x0d%\xc7|T\xf3G\xc91_\x5c\x9f\xe7\xea\xa0$\
+\xae4nX4\x0b\x92\x02X\xfdw\x8d\xa3\x0c\xb9q\
+\xb2^\xf2\xe7\xdb\xeb\x86u\x07\x14\x84x\xd4d\xb0\xc1\
+98\x04\x92\x09\x1c\x15\xd2\x0f\xa0\x18\xd4@\x0fk#\
+\xe9y\x9b'\xae\xcf\x81\xe8\xc0\x11\x80\x11\xad\x92\xb1P\
+*`=\x08\x98Q\xd5\x940\x98\xdf\x17\xeb\xc4\xba.\
+\xdc\x05<\xf6\x09\x0c\x93\xb5=\xe3\xa1\x19~\x07\xa5\xeb\
+2>2\xfb\xfa7\x0b\xa8\x5c\x87\x00B\x86;\xf7\x81\
+\xcap\x9a\x1f\x83:w\x05\xce\xc6%\xa9tU\xa3\x9b\
+\x99\xffz\x9f\xb1v-\xfb\xf6F/\x8b\xd6\xcdB\xdb\
+\xc1\xac\x1d\x97IB\x81\xae~\xcc2{)\x0eU*\
+\xef\x00\x9a\x14U+\xe0\x81\x98\x95>\xf62)\x0e(\
+\x99\xe5\x14\xcd\xab\xae\x03\xd9G\xbd\xd6\x15\xaa1j\xb6\
+LY\xaa\xab\xd7\x17*\xbavMjA9>\x00\x1e\
+\xcf5\x9f\xc3\xe6\xb2a]F6kQ\xd5\xc4\x8e\x00\
+L9\x5c\xc65\x1d\xf8\xe9YakW\x04\x00\xe3\xf6\
+\xc1a\xf3\xeb\x11a\xdd\xbc#\xf6v\x8b\xb0\xaek\x8a\
+\x0c\x81\x1az\xe2\x842?\x98\x18\x98\x0d\x1cb\xfb\xbe\
+\x03>\xe7W\xb5\xe9K\x06\xd4\xee\xf8\xb0\xce\xd1\xcf\x80\
+\xa4\x1c]\xe3\x9d\xeb\x1d\xf5\x96\xda\xb6u\xbe\xbdNX\
+'\xe2\xa9;\x80\xbe\xd0T\xab\xd5\xb4c\xa8\x98\xc7\xda\
+\xa7\x0d\xda9Dl\x0b0\xa0\xce\x9f\x8c\x87\xcd+\x97\
+}t\xf7\xd3a])\x02\xc6\xc0\xfb\x13\xe0\xccv\x86\
+\x15\xe8\xd0\x8eP\xf3|\xdf\xb0\xb5dh\xbayX\xa7\
+\xfdr\xd2\xde\xbd\xf7\xee\xdd\xb4D\x96\xebH\xc0\xa62\
+\xd2\xff\x15\xd6Q\xda1o\xae\x94\xe2o\xf9\xbe\xbb\x1b\
+\xa5\x88\xe3\xffL\xe0\x17\x93M[9\x0c\x16\x22r\xba\
+](\xd9\xd2\xbd!\xbba\xd4\xf8\xdaw\xff%\x9f\xeb\
+\x85v\xc7\xec\x8e9\x04\x08Y\xf6+%^\x8f\xcd\xfd\
+D;\xdd<\xf7\xaa\xc4\x03\xf0/\x83\x9a\xeb\xa7J*\
+\xf4\x83\x16he)\x8dn0\xdb\xeb\x85u\xeb\x11c\
+&\x01\x9cb\x02\xfc\xaf\xb0.\xf3\x9d\xda\x0c\x02\xca\x22\
+Z}83U\xd9vw\xf69\x16\xbf$\xdb\xbb\xe9\
+\x12P\xfe\x89\xfd&\xcfy\x81j\x01\x04\xda\xea^.\
+\xd7\x9f@\xccsJ\xad\x0bT\xfdr\xe8\x89\xbf)\x19\
+#\xa6\xea\xfa=o\xa2\x95\xc6\x1b@`\x9fH\xa0\xc3\
+\xfa\x9b~9\xac\xab\x95\x05\x14\xd0\xc8p_\x12IJ\
+{d\xde\x93\xca[\x99:\xedz\xed\xc7\x8f\x0c\xeb\x00\
+\x84\xd4rQ\xe2\xb7\xbbSX\x97\x11\xb4\xdf^\xba\xc4\
+\x99\x97}'\xbb\xd4T\x06\x9d\xdf\xc4\xbf\x03\x8c\xea\x8a\
+\xf3\xf2\xb0\xee\x5cJ\xcd\xa5\xda\xa7\xec\xbf\xa8\xec\xba@\
+\xfd]X\x07\x5c:_\xf9\xc1\xceu]50\x8e\x9c\
+\xa7\xf2K4[t]p\xff(\xd8J=\x9d\x0b\xfc\
+_\x01\xb1\x00\xd2~\xec\xdf\xf9\xdf\x122\x8f\x0d[\x03\
+U\xc0T\xcd\xef;\xb4\xfe\x13+\x03\xd1\xfb\xf0o\xf9\
+S\xfc<\xfb\xb3\xb6\x8fJ\x08\x88p\xf6\x09\xd3\x00\xee\
+~/\xack\xffx\x9d\xb0.\xd0\xa3-B-\xde\xfd\
+\xd1\x12PR\xeb<v\xee\xb8>\xfe\xee@\xad\xafv\
+{~>f\xecs^\x94f\x89\x8c\xb5yIS\xc6\
+\xd7X\x9b\xcf\xbf2\x1f\xd3_\xac\xd2\x06~\xe1\xc0\x00\
+\xad\xfb\xe6?\x8f\xe2~\x02x\xdfK\xc4\xf0\xe3\x9d\xf3\
+\xbeF\x0d\x81\xb1\x84bH\x04\x95_m\x9e\x8e\xed\xb9\
+\xc7\xb6\xd5\xfceZ(\x98\x0b\xe6\x83}\x83\xff\xdf'\
+\xb0\xbf\xd9%&=?\x9f\xcbO\x010e7\x98\x1a\
+\x1f\x80\x81\xf1\x96@\xf4\x0a \x95h0\xef\xc5\x85\x09\
+\x90\x14\x131\x99\xee\x87\x95j\x00RF&@\x95\x00\
+|*\xdb\xb1\x1c\xd5\xe4\xdf\xd6\x80&\xd5^\x0f\xc9,\
+\xee\xe7\x00\x9c\xdd\x05\x08212P+\xe5\xf9\x22\xcd\
+\x91\x8fp\xe3\xb8N\xbc+\xa8\xf4\xc7w\x9f\x03I\x13\
+\xd8\xf7T\xf2\xf3t\xb5\xf1Wh\x9do\x97\x0d\xf7j\
+\x1d\xf5H\xa9A\x84MW\xea^c\xdb\xbe\xd2\xbaQ\
+\x16\xf5\xc5\xef\xcb\xe0\xdb\xd8\x04 2\xdc\xc4\xc9d\xd8\
+{\xa6\xc1\x0f\xba\x890\x0c\xe8a\x03mb\xdbHM\
+@\xed\xaf>\x9b\xd45\x1b\xcb@\xe5\xdf\x5c5\xd5{\
+\x05DcM\xccO\xca\xe4C\xce\xd5\x9c\xfc\xdc@\x85\
+\x19\xa9\xf5#\xc2\xe9\xdfG\x06\x80\x85\xe6s\xf6\xa4\xd4\
+\xf2\x95\x8a\xf1g\xb3\xdf\xbdZ\x17\x07\xd4\x89I\x19\xbd\
+q\x22\xc1\xda\x84\xa9%\xbbS\x22\xef\xa7\xa6\xc3\xf9\xee\
+\xac\xb5\x85\xa4\xfevX\x170\xa9\x1dW\x92\xe0\xc00\
+\xfe\xe3\x02::\x01\x81\x0fe\xbb\xc2\xc7\xa4h\x8e\x9a\
+O\x07\x8f\xf6MY\xb3\xac\xadY9\xb2\xb7\xca\xfb8\
+\x98\xcfs\x05Z\x96\xf9\x9f\xd4\xc5r\xe03\x13[\x0c\
+\x82/\xe4|\xf0<\xbdo\x22\xc8U\xd3&\xc02\xef\
+P\x87=G\x07\xef\xa8\x05!\xd0w\xdf\xe6\xdd\xa0\xa6\
+_\x9f\xdf\x03\x80gu\x07\x95\x0c\x8d\x1a&@\x89\xf5\
+0\xf6_\xb5.e\xf2|>\xa4U\x09\x82\x9f\x8f\x22\
+\x82\xbd\xb6\xc71\xe7\x02\x94\xc9\x5c\xa7cX\x22\x7f\xa8\
+\x80j\x149>J2\x88\x1b\xf9\x1c\xf7\x95\x8c\x86j\
+\x03\xa8\x9f\xb2}\x09\xf3\xc6x\x99_\x00\x0d\xcf]\xc6\
+\xc1}\xca\x80Q\xfbN\xaa\xf4\xe6Va]\xc6\x0a\x13\
+&\xc5\xfa\x88C\x95\x08\x9b\x12\x8eq\xbf\x85Ts0\
+9$\x1c=\x9f+#\x91\x19\xd5\x12\x09\xe3\x18c\xf2\
+\x10'4\xee\x1f\xa8\x00n\x09t\xfd\x9cc\x811\xe3\
+\xba\x04\xae\xda\xa7\x119\x03pq4Qb\x1d\xf4\x1c\
+3\xc0 *{\xd6\xf0\xeen\x12\xd6\xfd\xfd\x1f\x85u\
+\xcf\xc3\xe7\xa3rf\xe0\xa5\xfb\xc7\xf6\x15a\xb3\xbf\xfe\
+\xa3\xb0U\xfd[\x86\xb3\xfam_0K\xc3\xcc\xff\xcc\
+\xb0ViBf|\xf7~}\x09\xb4\x8b\x22\x8ez\x8c\
+\xe2\x0bp\x22\x02h\xbe\x08$\x86\xae0\xc5T\xb2^\
+\x88\x07a\xfc` Yw\xe98\x08Pk\x9c\xcdW\
+\x8e\x8a} \xc5\xf8\xaa\xd6\x9bh\xa0\xeb\xd1\x06\xd0u\
+\xa5\x83Q\x8c\x86\xdc\x97\xeby{\xff\xac\x8d/-\x02\
+\x80\x86\x92\x8d\x040h\x0f`T\x14u7\x03\xcd\xcd\
+?\x84\xad\xed\x1b\x89\x06\x16\x90\xf7\x1b\x1587\xe6H\
+\x13\xdf{E\xabM^\x02\xc1\xa7\x87\xcd\xef\xf3\xc2\xcd\
+\x9fn\xfet\x1d\xcf\x0a\xc4Po\x89h}<\x1dl\
+j\xcbj\xc5\x89{\xbe5l\x15\xc3$\x1e\xbb{\xef\
+\x02 \x8f\x9a<\xb5\xfe\x1e\xbd\xcc\xf39\x1cZJS\
+\xcc\xeb\x04\x10vW\xc8\xf1A\x91\xd5\xee\x8d\xe3h\xff\
+p\xde\xd28\xb8AX\xb7\x0f\xda\xffi{dFt\
+\x0e\xabZ 1}o\xfa\xfe\xffO\xd8}\xc0[\x97\
+UU\xa2\xafs\xeb#\xe7\x5cDA\x82\x80\x22\x056\
+\xa0dE\xe1\x81?\xf0\x89\xa2\xb4\xa2\x980\x80\x8a\xb6\
+\xad\x04\xa1\x11EA\x01EKTZ\x05\xb4\xc1V|\
+\x18@A1P\x82\xd8 \x08\x02\x02%<L$\x1b\
+$\xc7\x02\xea\x9c>k\xef\xf1\x9f{\xd5\xfc\xaa\xde\xbb\
+\xeb'\xd7\xfb\xd5\xbd\xe7\xec\xb3\xc2\x5cs\x8e9\xe6\x98\
+\xfb\x8f/\x99\xd4\xb5\xe4\x808\xa0\xae\x1b\xbf\xbf\xb6\xb5\
+\xdd\xff\xd4\x18\xc7\x7f\xff\x891\xb6.\x17\x87\xef\x0d\xd0\
+\xf2\x92d`\xaf0\xc6\x94!\xbe\xc5\x0a\xe8\x96\xba~\
+\x806v\xa2\x00O\x0c\x1e\xaf\x9b\xd2\x8b\x12\xf7\x04$\
+\x03n1\x96N\xc6\x98\xce\x93\x802\xf3\x80\x09P@\
+\x80Z\xf2\xec\xbf\xcah\xa7t\xaf\xce\x07\xc0\x0f\xa0\x97\
+\x0cmiJ\xc8\xf8?~\x19U\xd2U\x81\xea\x8f,\
+c\xd3\xc4\xb0o\x02(T\x80\x1e*\xbb\x04E1u\
+$\xc4\x00`\x02\x05\xe7\x85\x7f\xa5\xcd\x99@\xcf\xfb\x04\
+h\xac{\x023A\xa2$\x22\x99U3O\x8b\x81\x1d\
+Wr\x22\xd1\xd5\xb4th\x7f\x01\x8a\x8a\xf9#\xe0\xd3\
+\xbe\x0f@\xc5\xee\xea\x0e\x92\xc0\xb72\xa7\x02\x9c\xdc\xcb\
+\xbb_\x19c\xa3\xe8\x17\xb0\xc8>6\xcave\xb6%\
+z\x00!)\xd1,\xc04m\xee\xaa[\xcb\xff\xbbj\
+JT\xf7\x9b\x8f\x8c\x91\x04\xcd\x0c\x18\x8b3\x04\xf6\xfc\
+4\x19l\xf7\xa3\xf5h\xf7ni\xa7\x014\x94B\xf1\
+\xc7\xf9\x072\xb0\xfcc\xfe\xa5\xc0\xb4\x97\xd8\x0a(\xf9\
+;\xfe\xbb\xfb\x82\xd8\x9c\xc0\xdc\x7f\x9f\xc5\xd5?3\xf9\
+{\x0d\xe8\xa9\xcf!\x0e\xf2\xfb\xe2\x8fN\x89\xef\xed\xd2\
+=gg\xa0\xfa<\xf6\xb5\xcf\xd1U\xf5\x01\x02\xfdg\
+\xeb\xd2\xe3)\xf6\xd6\xe7\x13_D\xdb\xa4\xf6\x0d\x7f\xc2\
+\xbc\xbd\xbbi\xa9\xc8\xa4\xdb\xb7M\x0d\xbf\xd6\x91\xff\xe6\
+\xf7\xbd\x8e\xc4f/i\xe8%\x18\xb4\x9e\xec#\xfb\x9b\
+\x9d\x03\x00\xf8<J\xd515\xb5[\x0eS\xa7\xc4\xcb\
+\xf9\xc9\xe2\xc0Y\x04\x7f?1h\xad\x0b\x00@\x5c\xd8\
+\x19\xc2\xf9\xf7S\xcb\xf4}*\x0bq\xfe\xf4\xdd\x82\x8c\
+0\xe5]AD\xde<\x01\x05\xba\x04\x8c\xb0\xee\xbaS\
+\xad=\x0a\x9d\xd7\xf5:\xbe_z\xc9\x05\xaf\x08\xff\x17\
+\xe6\x82\xbaU\x1c\x8fk7\x15\xfc+M\x1f8\x1bm\
+\xa9\xb9;?T\x94\x1b_D-\xf1L1\xf9\xe4\xc6\
+h8\x8dR\xde\xda\xf8\x9d\x96I\x17\xe0C\xe0d\xdc\
+}\xef\x99\xd7\xae\xce\x8f\x1a\xd27\xbc\x00\xcc\xe7\xf4{\
+6\x96\x83\xeb\x00~\xb2\xbd\x8f\x83\xe1\xf7\xbd\xae\x80\xcc\
+\xc5*0\xbbR(m\xef\x0b\x90\xc0`\xf8\xde\x02}\
+mS*po}1\x17\xcd\xd4\xb9\xd6\xc4\xc10\xaf\
+\x10,TZm\xa8\x04@\xdf\xb9f0\x88\xcf\xec\xee\
+<\xc6\xf1e_3\xc6\xf4~\x11\x9b\xda=z\x8c\xe3\
+\xf7\xd7\x8e\xb1\x19\xe6\xcah\xebkK\xf5\xb8\xd7T\x11\
+\x13\x0bRv<tk&\xc7\x01\xb7/nX% \
+k\x8d\x1c\xf1%\x94K\x86\xdc\x85}\x892\x08\xeb\xfb\
+Y\x0f\x7fw\x89P\xef~\xf7\xf0\xbc\xc3\xf3\xa6Z\xe7\
+O\xef\xce\xdf\x9d\xbf\x88\x94\xad\xedV\xd50\xab5\xbf\
+\xdf\xaaI\xb0{\xe5\x18\xd3E\xae?o\xda\xdd\x95C\
++p`\x90\x04\xd0\xd6\xa7w\x91h\x00\xd1i\x06\xd7\
+\xe7\xf0:\xbe[_\x06\x12ro\x9f\xda\xb7\x1c\xd4\xc6\
+H\xa8\x0c\x89\x9au\x19ITx\x0c\x0a\xcfi\x7fB\
+b\x194\xaf\x0f\xe0p\xa1:W\x80\x0b\x0e\xa8\x80\x87\
+\xc1\xf7\xb9\x05L\xf6\x01\x91\xa1\x0e\x90`\x0c\xa0\xdc\xa1\
+.\xbb(Q\xb2\xbes\x8c\xa9\x16T{\xc6>\xff4\
+0\x18t@\xa0\xf6\x95\xfdB'\x16\x99\xb6V\xf5z\
+\xdaaET\xad2\x09\x18\x09\xc9H\x9cV\xeb\x98Z\
+\xce\x0ax\x94\x98\xc8\x0c<\x7f\x8c\x89\x92|\x89\x00\xb1\
+W\x5cv\xf6\xd6\xfe5\xc0]\xb5\x17\xa4a@\x0c\xa9\
+\xf7-V\xcb\xce\xdeP\xcd\x0f\xd3\x00cB\xdf\xf7\xb2\
+\xcb\xa8q\xda!z}\x8e,1\xaa\xd4n\xee\xfem\
+\x8c\xe34<n\x8c\xe3\xf7\x17\x8c1Q\xd5\xd54\xd3\
+(\x81\xb4\x03\xa6\xb4\x97J\x9f\xf7\xaaa\xd5w\xf7\xb7\
+\xa2\xad\xf0\xc6\xcck\x02\x87E\xfc\xf6\x83\x0b\x93\xe0\x1e\
+\x83IP\xa5\x1eD>\xd5\xfa\xe6\x82\xafZV\xdd\x1d\
+\xec\x07\xe2t2\xa9\xeca\x1c\xd5\xdd\xcb\xc6\xd82\x9c\
+\xc4\xc6J,H\x86@\xe9U\x98\x22\xa5E\xe1\xdf\xd9\
+G5\x8b\x1cB\x19\xf0\x001\x95\x19Q\x8b\x1f*q\
+9\xbc\xd4\xc6\x95\x18\x10\x15\xa3\xb6\xec>\x09\xd3\xe5p\
+\xc91&\x86\x16\x00\x9ec\xf7\x13a8d\x9f\xec\x1e\
+9\xc6\x04h\x9f\x1b\xc0\x84\x1d\x8a\xbd=<0\xe7<\
+\xd4\xea\x02\x5c\x95\xa6h\x9bH#&\x22y\xa5\x9a\x9d\
+}$\xa0\xac\xe7\xb9\xe7z^vOY\x19\x1c\xd5\xef\
+\x1d\x13\x92\xdd\xfcDJ\x91^\x19\xe0\xe7f\xb9Gn\
+\x9b\x8cr\xc4D\x0f\xe7\x8dq\xfc~\xfd1\xa6~\xe6\
+\x00\x05\xda\x16\xec\x95u\xe1(\x0aX\x05p4Dr\
+\x1fTfP\xe0\xff\xd21\xa6\xc0\xea=\xa1\x8c6\x0d\
+\xa4\xc3\xa5\xc7\xd8\xce\x7f1\x8eP\xed1R\x00\x18)\
+y(qP],\x00\x97\xce;\xe6\x04\x06\x09\x0a~\
+\xbaI\x94\xffC#A\x17\x0d\xedE\xc3\x00:\xdcn\
+\x8c\xe3\xf7\xb3\xc7\x98\x80+\xf7\x13\xe6\x98\xfd\x1e1\xbe\
+\x12e$J+`\x95xP\xfa\x80\xf1\x84A\x12\x91\
+\xc5\xb2\xbb\xc4R1?\x88#*\x8d\x89]\xaf\xf6\xa5\
+D\xf4\xbc\xbf\x12\xbck\x8f\xb1e\xf2\xab\xbd\xa0n\x02\
+\x12!\xec?\x00O[S\x0c/\xe2\x81\xfc<%\x04\
+\xec\xa6\xfb\xcc}`\x9e\xdd\xdb9\xb7C\xeax\x88\x1d\
+\x13y\xdc}\xc9\x18S-\xbf\xcc\xbd\x0c\xb2{\xb7\x8b\
+,w\xf1>\xcf\x85\x81\x891\xe6\xef\x89\x0b*\x99\xc2\
+T\x12 \xb9\x7f\xbb\xff\xec\xdf%\x9e\x88\xf7\xbee\x8c\
+\x09x\x09P\x5c\xcc\x99\xdc\xcfeW\xd9{\xf7\xb1R\
+\x8a\x9e\xa1\x05\x10(=\xe5wa\xd8\xd1(\x00\xf8\x12\
+\x9b\xa4\x0d\x12\xbf\x89\x1d\xaa\xf3#\xa1\x02(\xe8\x81\xb3\
+\xb8\x83]\x90\xb1\xef\xe2\xd5\xeeW\xf1\x8c\x00\xb71\x01\
+\xca\xaf\xf3\xdc\xda\xd5\x8aC\xdc\xd7\x00\x0e\xfe\x0d\xff\x90\
+\xffk?]\xa2%\xbez<\x85\x99`\x1f\xf3\x07g\
+\xed\xb7\x0bNoWY\xf3\xd6k\xfd{\x22\xd2\xbc\xf9\
+\xb9\xc7A]D\xd1\xbc\x9a\xe7\x0e\x1c\xf0\xfb\xec[\xf3\
+\xf4\xf6\xd6\xe6\x5c|\xe8\xcb\xfbw\x80\xa6kfy\x1e\
+\xbf\xc7_\x13\xaf\x01f\xbc\xbex\xc6}\xce/\x04\xc4\
+\xf8\xf2\x5c\x9fmq\x88\xb8\xac\xcf\xf7\xd6\xfe2\x1a\x00\
+>\xb8\x05\xbd8q\x015\xf9\xbe\xae\xbfT\xb3\xd5F\
+Z4\x03\xae\x9f\xc0\xfe\xec\x89\xd2\xdfE\xac\xd2g\xb3\
+\xa8\x882r\x0e\xe4\x1c\x08\x9f\xca\x82\xce\xed\x17\xfem\
+\xe94\xbb\x22\xfd\xe7N\x99\xbbk/\xe4\xb4\xd3\xdb}\
+\x5ciu\x5c\x8b\xe2\xe4\xe2\xb7\x91M\xa0\x85\xe4\x90\xa8\
+\x9d\x22.22k\xffi\xcap2D(\x9c\xd4,\
+{\x1b\xb8^K\xe5\xc0vJS\xcf8^+\x81\xc7\
+u\x939\xe7\xf8\xb7~\xb2\xb5\xc0\x0e\x8a\x8d\xe2\x00\x03\
+,|\xbe\xaeF\xdaE?\xcc\xb3\x8d\xd2E0:\xb2\
+\xf8\xe9\xbc?C\x0a\x99\xf4>\xd4S\xb3\x0f\x8e\xee\xc4\
+\xa2\x82.\xd0-$8\x8e\xe8\xee\x1b\xc7\xd8j<w\
+\x1f\x1ec\xca\x8cC\xc4\xd4\xaauQ;\xf3'PT\
+K\x7f\xcb\xf4\xcb|@\x9e\xfb\xb3Yw\xf3/\x00\xff\
+\x851\x16\x87eq\x14\x00\x0f\xbbg\x8f1\x89y\x99\
+?\xf3\xdf\xba6\x94\xb8\xd2\xcfE\x8c\xc6>\xbbN\xf6\
+\xbb\x00\x86js>\xf7\xee\xcc1&\x03-c\xa0\xa6\
+L\xdb\xb6\x88\x02VF\x94a\xb3/9\x90\x97n\xed\
+\x1c\xad\xa3\xe7\xeej\xfb\x1cK\x172&J\xba=\xa0\
+\x90\x96c\x80\xe2\xc4\xc1\x80x2l\x10T\x81\xa8u\
+\x12X\xdbO\x182M\x9d\xb5\x80\x03Ty\x7f\xcf!\
+\x0bu\xb2D:=\xbf\x0c\x0a\xb5v\xfb<\xf3\xb0\xfb\
+\x9d1\x8e\xdf\x9f:\xc6DUt\xf1\xb3{2(\xa8\
+\xf3\x02o\x17&\x80\xe9\x7f,c\xa3\xda\x0b40\x14\
+\x88n\xa5\xcdT}\x1e\xeb!\x13\xe8\xe2\x81d\xcbp\
+\xb8\xd89\xd2\xda\x80\xf9=\xea\xd7\x02h\x19\xe4N\xa5\
+\x8c]\xd8\x9d7\xc6\xb6?\xaa\xf4@@\xafF\xb9\xb7\
+\x85\x04\xe4\xe9\xa3\x1d\xaa){.\xb0\xa9}\xfd\xa61\
+&\xed\x0d\x0eC\xfa2\xef_7\xc6\xe4\xe8\xc6\xee\xec\
+\xde;\xc6\xf1\xfb\x15\xc6\xd8\xe6\xb7\xa8\xca\xec\xbbZ\xed\
+\x94B\x9c\xfc\xec\x18\x13\x22\x1eGWMq\xa9\xe7\x86\
+*_\x14O\x0e\x06Q*5\xacj5S\xbb\xab}\
+\xe4\xe1\xfb2?ah\x000\xf7\xe7\xee_\xba?w\
+\xa9i\x7f\xe4\xa8i?y\xee\x18\xc7\xe3\xf5\xf61\xa6\
+L$@\xe9\x01\x87\xaf=<`\xa1\x04\xdfu\xa1\x04\
+s\xa49\xc8\xbe\xe7B\xdf\xed\xc7\x98\xeeU\x19`\x81\
+\xa9}\x8b\xe1\xc6^\xa4V\xbd\x18Q\xd4\xb8e\xccS\
+\xb2\xa1t\xa8\xdaw\x0a4\xec'\x99STd\xaa\xff\
+\x98\x10J\x95\x04\x18\xa9E\xacR\x0e\xed\xf7\xee9\xc6\
+\x14\xf0\xc9\xc0p\x98\xf8\x05\xf6\x9f@\x22\x8es\xf5o\
+\xcf\xbe\xc7\xac)-\x89\x00\xcbE\x09\x0f\xe0\xa0\x8fr\
+Q\xa1\x03\xac*\x11)\xbb\x8di\x84\x91\x10-\x035\
+\xb0\x877\xa5V\xf3\xa6k-m\x01x\xbar\xc8\x00\
+\xb1\xabj\xf6\xd54k#\x17G\xb0\x98\x12a\xce\x9d\
+\xf1?\x13\x90\xb2g\xec\x84@\x05\x80c\x1f\x09\xbc\xed\
+\x0bv\x01c#\x1a\x02\xd5\xe7\xfc\xad\xb9/^\x94@\
+?\x0c\x05\x81h\x05lY\xdf\xdd\xcf\x8c\xb1\x05\x02\xc7\
+\xf0za\xde\x09l\x01,\xa5=\xa1=\xe7\xffHi\
+\x05\xfb\x16\xc0\xb2\xec\x0e\x86\x0f\xe6\x13\xb1\xe3d\xea\x0b\
+\x08P\xa2\x13\xe6F\xf9i>\xaf\x0c\x1b\x8d\x0c\x19B\
+b\xbc\xd4\xed\x89\xd4\xca\xcc\x03J\xf9/\xe6\xe9'\xc6\
+\x98\xfc5\xf7\xa5\xf3\xc3/\x22\x1e\x8cQ\xa6\xcb\x0b\x86\
+\x09q9?k\xf3\x19\xf1\xb8\x02x\xb6nGk\x80\
+. \x88?c\x7f\x95\xc8\xa0@@\xb7\x92h\x5c\x94\
+\x9d\x08\xa3\xab4{\xbcn\xfe\x0e\x90:\xd2\x13K\x82\
+\x82\xfd&\x96j\xbd1\x90\xe2\x8f\xd4\xfe1\x0f\xeem\
+\x89\x1f\x80\xbd\x00\x8d\xdf+\x80\xd4E\x82\x08(`\x89\
+f\x0a{,\xf0o\x01%\x00\xad\xd6\xeb\x1d\xc5\xac]\
+\x99i/\x1ec\x02\xa8\xb45\xcd\xfd]vP\x09E\
+\x98\x97\x80\x82\x12\x03\xe5\x9f\xcb\xe8\xa2\xf0\xa3r\xf3k\
+\xf8=\xfc\xe6\xdc\xf3\x05\xf4\x84\xf1VvIw4_\
+\x02L\xf73\xffY\xe0\xaf\xc6\xdb\xf9\xf1\xbe\xf6{g\
+\x12\xb8\x17\xf9_\xfcT\xfb\xd8\xba\xd8o\xfcP\xfe\x8c\
+\xf5\xf4:\xf6=?\xad\x97\x16\xfb\xf2\xfb\xad\xfd\xdei\
+b\x80=P\xed\x19u\xfeO\xffw\xfeO\xff\xde\xbb\
+\x0d\x88s\xd8\x85*Y\x8e\xd6S\xe2\xb9\x9a\xbf\x9e\x10\
+\x16\x0f\x8b_\xf8\x83\xe6\xb3\x03+\x98\x9c\xc4\x16\xed\x7f\
+\xf3(\xf0\xf7<\x9e\xd7|\x03J:`\xc2\x8f7\xef\
+\xce\x83y\xe1\xd7K\x8c\xf9\xefM\xe4\xaf\x97\xf6\xd5\xf7\
+*\x01`H\x5c4WYtg\xb7\x00\x0a\x02\xa1=\
+\xdf\xc0\xb5o\x9a\xff~\x8dF1\xf9`2\xbf\xe7N\
+\xea\xc4\xe9\x93\xb8\x84\x13\xb7\xdd\x98\x01K\xcd\xda\x1fG\
+M\xfd\xfb&\xc4\xa2\xd7\xea\xdb\xc0\x1b\xe5|\xfd\xf2\xfb\
+]\xe5\xd1B\xfa\x5c~\xcf\x84\x8dex\xcf\xf4\xfa\x18\
+\x06\xfb\xf4\x03\xb5A-\xd8\xcc`\xf8\xc8\xf4z\x9e\xa7\
+#f\x98\x0a\x0c\xa5\x00*mxj#\x09\xb8\x05B\
+\xe6Q\xbf\xdf\x9b\xa5d\xc1\x01\x15\xf8@\xec\xba\xea~\
+\xef\x9f\xd9\xdab\x1c\xb21v\x9f\xdf\xd43\xbbj\xe6\
+\x86\xb8\xae\x07\x9f\x01\xd82\xc6\xab\x83i\x83\xf9\xfc\x7f\
+\x7f\xe1\x9a\xd2j\x0f\x98\x00\xa6.\x14\x06\xf2\xb2\xabH\
+\xa06Pu\xf0d\x96\xf2\xf3\xee\x85cL\x01\x04\x15\
+[\xb5\xf2\xe6\xe7f\xf99\x14E5\xac\x95\xa9\x11\xb8\
+\xfb}\x19\x10\x17\x9c\xcc\x98\x8c\xae\xfe\xce\xa1\x84V\xed\
+\x7f\xa7ZQ5\xfe\x97\x00\x5cQ%\xae\x1aw\xed\xf6\
+d\xbc\xec\xaf{\x86\x92\xad\xeb\x02\xf5\xf2\x04FD\x91\
+\xaa\xcd\x10\xd15\x14w\x99K\xe2T\xbd\xeb\x04\x03f\
+\xdf0\x1c\xf6s\xaf\x0d\xf2\xb9\x94\xc28\x87\x02\x8a\xd6\
+V\xa5\x02\x7f\x19X\xfb\x98\xca)\xe6\x87\x80\xc0yb\
+\xb0\x00B\x1c\xe7\x00U\xb5n\xce\x09\x03\xab\xf6\xf8\x1e\
+c\x9c\x8e\xc0\xd6\xbc\xf8\xdc\x02\xca\xcc'\x07\xa3\xfa\xd9\
+\x9f5\xc6t\xa13\xc02).v\x99\x17\x1a\x12\xf9\
+\xbb\x12\xe1L\x80_}\xec\x95\xa8p\x94]\xfc\xa8\xb1\
+\x02\x19\x0e\x07\x07\xd09\xe4\xa8i\x0f\xf8\x981\xa6\xfe\
+\xf3Ja\x88A\x09\x9c\x1e\xbc\xd6J\xef~d\x8ci\
+\xde\x05\x90J ~t\x19\xdb:\xa38rP9J\
+\xd1@)\xa4\x9a\xfd\x00\x90\x09\xd4\x020h{V\x00\
+\x83v}\xce\x9d\x9aG\xea\xdd\xa8\xd3\x02\x0c@\xdb?\
+\x8d\xb1\x89\x88\x16%\x1b%\x97x'\xe6\x0f5o\xf7\
+\x0cjl\x1cs\xcf_\xb5\xd4\x00\xc78\xb0\x050\xa2\
+\xfa\x0a,\xa8\xa9S\xb5W\x93~\xcb\xac\x17$?}\
+\xca/\xf8\x8e1&\xd1\xc1\xb4\x89\xab\xdak\x99\xcb^\
+\xe3y\xf7\xa5/\xc8\xa6\xeaO\x03\xe1\xc3\xf9\xef\x18G\
+\x0f?\x86\xe1\x0f\x9f\x02!\xf6\x10`\x06\xb0\xe3`\xb0\
+o\xee\x0bv\x90\xa3\xed\x9et~\xdd\x07\xde\x8f\x83\xcd\
+n\x00\xc2dV\xdd\x83j\xf2eFQ\x8a\x03\xacU\
+7\x0a\xf7\x07\xc6KD\x0fK\x9d\x9a\x8ay\x13\xeb\xad\
+L\xb1@\x08\xd5\x18\x93\x80\xca\xb7\xf7\xf1\x9c\x80Q@\
+\x82\xaf\xb4\xf3\x04\x98\x12\xf9,\xad\x0a~\x8f\xf5\x97A\
+\xd4^1\xc0\x986\x83\xc5\x10\x03\xc4\xa4\xa6\xbb\xcey\
+\xda\x0f\xf2\x03t\x998\xae\xdd\x12\x98\xaaU>\xfcZ\
+2\xd4iCX\x80\xe3oD\x1d\x1aS\x83CH$\
+\xed\x0fVJ\x7f\xd99\xa5O\xcf\x19c\xb2\xff\x18\x0d\
+\xcf\x1dc\xd2\xe8\x10\xb0\xea\x7f\x0eHV\xf3\x9b\x8cs\
+\xd9i\xc0\xeb\xbb\xd6\xc0\xa4\xd4\xcf\xd9\x0f\xed\xeft\x15\
+q\x0e\x03(U\xbfw\x813\x0an\xfa\xc9\x173\x87\
+F\x85\xf9\xc4\x10c\xa7\xf9[\x00w\xf3l\xde\x05N\
+\x00\x13\x19k\x9a/M\xbc\x13\xc3@b\xa2\xc4\x18\x01\
+\x01\xba\x8c\xd8\xc7\xb1g\x95\xd9\xedbd\xba\x83\x10\xc3\
+\xd5\x86Om\xb9{^F\x19\xd0\x9f{\xab\x80m%\
+lJ\xdc$\xb2\x00\xcb\x022\x99wZC]\xac\x10\
+S\xd0<:\xff4\x110\x00\xb4e\x8d\xa6D1+\
+\xbe}\xed6\xc1\x8eT\xf7\x05\xa2\xbf\xfc\x0a\xc0=\x00\
+\x8c=q_\xf0\x17\xc3P(\xbb!c\xca\x0e\xc9t\
+c\x80\xb9\xdf\xddW\x80\x82\xd8S\xf7s\x95\x8e\xe8^\
+\x10\xcd%\xa5o\x02\xf9\xb2/J\xdch\x179g4\
+J\x94\x22`\x0a\xd9?\x02<\x80uJP\xeb^\x07\
+<\x11\xe7LB\xab\xb4\x19\x04\xfe\x00fZ\x164/\
+\xf8K\xfc\x01\x01\xfe\xc5\xf5\xb7\xf7\xdc\xad\x94\xb7\xce\x01\
+?\xc0\xeb\xd2\x88b\x1f\xd8\x95.\xca\xb7iY\xad\xfb\
+l\xd7J~}y?L\x05\xfe\x93{\xa43\x98\xfb\
+Wgp\xfb\xfd\xae\x11\xe0{Ot\xf2\xfb\x9c\xcf\xc6\
+\x00\xd0\xe6\xbe\x9e\xcb\xbc\xf9{\xf7\x99\xcf\xef\xde\xc3L\
+\xc0\x80qnzB\x94\xdd\xf4\xfa\xde\xbf\xb7!t\xbf\
+c\x96\x5c\x9cf\x81\xfd/Nunz|\xec\xb9\xc5\
+\x8f\x9d\x19\xd0J\x05\xfa:l\x00\x80\x17 \xa2\xc7Q\
+\xf7\xfd\xf2K\xf5\xf4\x16(\x0f\xb3\xf2\xa1 \x19\xff2\
+!\xb7\x16\x08\xb26(\x8e\xcf\x9a\xc4\xc8Fm\xd6\xb7\
+Mm\x978\x9c\xdaj\xa1vqXh\x0fxN\x19\
+\xdbh\x02T{A\x0b\xd3\xc5\xf7<\xbfL<\xf5\x7f\
+\x1b\xd8\xeb\x0e7\xe9j\xd3\xcf\x97]\xaa\xb8\xb7\x00Q\
+\xa6Y\xc0\x0d\xa1\xb5P\xbdO9\x07\x8c\xc1\xd4\xef\x99\
+\xa6\x80\x85\x13\xb8\x09x/5\xc6\x12\x00\xac\x0e\xe7Y\
+\xc5\x04X\x1d\x19?{}\xef\x07\xe0pP\x05\x9a\x0e\
+T9\x96\xb9PzM\xbf\x83\xd6\x914\x07\xcd\xc6\xe4\
+P\xba _\x15\xa0C\x80h\x9ee\x0a\xf5\x9fva\
+\xde&T\xd5g&\xd0\x12\xd0(\x1d\x81T\xa2\xcc\xca\
+\xb0Z\x07\xdf!\xb8\xa8\x8e\xb7\x1dc\xaam\xf5wg\
+g\x1eo\x12\x80\xe0F\xa9I\x0b\x93@\xc6}\xf7k\
+cL\x06\x9eA\xb1\xbe\xe6\xc9E\x85R\xcd\xe0\x09$\
+1\x1e\xa8\xc8\xff\xfe\xaa\xbe\x5c\x17\xfc\xdf\xc4!1\xcf\
+\x0c7\xd1\xb3\xb4O\x12\xe8\x96\xc3\x0f\x99&:\xe9\xbc\
+h[c>\x00$\x0c\x00\x00\x82\xa1\xb1\xdf\xecg\x17\
+\x90\xefj\x15\xbd\x1ej\xacvh\xc4\x95\x000\xc4\x82\
+\xcc\x17J\x1f\x877\x81a\xf5\x81v\xf19\x7f]\xc5\
+\x9c\xba6\xd5\xfe\xa6\x06[\x0et\x183U\x12\xa1\x86\
+J\xe0\x1f\xd5\xf5R\xf1\xa7\xa2\xed\xa2\xb7\xce\x09\x08\x04\
+`\xc5\x98\x91ijmZ*\x13\xc0\xf1@\x99\x0f\x05\
+\xbb\xd4\xd1\xd5\xda\x03\x18\x05\xe0>\x8f}\xe5<\xaby\
+v\xc1\xa7\xe6T\xe0_\x01.\xd19\x19z\x8et\xc4\
+\xf7\xea\xfcd_\x10\x8d\xdb\xfd\xc5\x18\xd3\xf9Q\x13.\
+\x03\x8c\x22\xc9\xf1\x018\x00\x0c\x00\x81\x9e\x8fc\xe8\x02\
+4_\xec\xffS\x96Q*\xd8\x1c\xda\x02,\xd4\xfc\x03\
+\x0a\x94\xba8G2/2\xcd\x02\xcd\x88\xcd\xed\xde:\
+\xc6T\x13K\xd5:\x81\xf6\xe1\x93c\x1c\xbf\xff\xf2\x18\
+[&\x1c3\xe3\xe4\xb6cL\xda\x1b\x187\x80\x0a\x81\
+^\xa8\xcd\xbb\xaf\x1bc\xa2zf?\xedo1\xc6\xf1\
+\xfbo\x8c1\x9dW_\xec\x10\xca>`OM\x7f\x80\
+\x82\xba\xf7d\xdc9\xbe\x02\xa6+\xaf\xc0\xbc\x8c]\x01\
+\xa9\xda\x83b\x16\x08\x90\xa2\xb6]Tn\x8e\xa7{\x81\
+&\xcf\x1f\x8c1\x01\xb7\xfa\xc5'\x80\x10\x10\xd4\xf9v\
+\x9f\xc5q\xaf{\x9f\x1dr\xce\xb2\x8e\xc5\xe8\x12\xf8k\
+\x1f\xa7o<\x87\x9d=x\xf826\x86\x00\xca\xb0\x12\
+\x00@\xc9\x15\x9bV\x80}i\x9f\xba\xc7\x9dg\x8e\x98\
+\xdfC\xb1\xf4\xfb]\xcc\x8a\x16B\x02\xb9\xfd\xbd\xc7\x98\
+\xc4\x16\xedw\x8e$\xd1'\x0c\x1c\xf63@\xd3\xe1\xd4\
+\x18\x1bp\xb1;o\xa5,\x1f\xc3\xdbu?\x9c\x93\xfb\
+\x01P\x9c\xc0\xa1D@\xdd\x87\x1c\xf7d\x90*\xf0\x11\
+\x80\x05\xc0\xa4\x05\xc2\xd9\xae\xc0\xf1%\xbb?\xdd\xfd\xe9\
+\x94Q\xce\xfa\x97\xe3\x8c\xc9\xe4\xde\xe7\xa7=`\x8c)\
+\x80 \xe6\x19?F7\x9b\xfa\xbcj\xf5\xf9a\xa1\xe6\
+\xd7>H\xc0_\xc0w\x98!\x98;%\xe6\xe9u\x01\
+tJ\xe6\x12X\x024\xea>\xa6r\x9e\x80l\xff\xa2\
+1\xa6\xfb\x1b`\xce/\x92q\xb5\xef\x00Ni#W\
+v\xdc\xfe!\x92\x88\xe2\xaf\x1b\x85\x04\x81\xfd\x9f\x80\xb9\
+J|\xd8K\x19\xef\xbc\xaf\xb6\xa4\x05\xa0\x0a\x04P\xd9\
+S\xbaP\xed\x88\x01}\xbd-s\x12\x09\xd5\xbe\xd3\xfa\
+D\xb3\xa0\xeei\xc0t\xee\xd1\xd2@\xd1\xc6/\x0c\xab\
+b\xd6\x862_v\xd4\xbd\x8f\xa1I,3\xa5\x0b\x98\
+(\x05 \xd3\xba\xc08\xa2\xa5b\x9f\xd3\xdc\xc1\xb8\xc1\
+\x90\xc1\x08!\xce9n\x87s\xb2\x8e\x9f\x98\xd6_\xc9\
+\x8a{\xd0\xfdN\x0b\x81\xfd;g\x8c\xad\xb4\xb2\x9eC\
+\xd7\x01@\xa2@\x8f\xbfd\xbf5Fc\xb5\x87\x04\xe8\
+\xf6\xf6\xcb\xfcR%\x16\xbaz\x00ni[`N\xb9\
+\x07t\xaf\xe0\x7f\xf7\x80\x19\xf0\xd0\xc5\xe7\x00O\x98/\
+\xfcJ\xff\xdd~\x8f\xff^m\x11\xbd\x0f{\xd9\xb5\xa1\
+|\xae\x0e\x00\xb4Z\xf2\xf2\xff\x95`\xda\x9f=s\xee\
+\xef\xbd\x9e\xf7c\x7f\xfa\xfb\xf2\x0f\xbd>\xff\xc6\xeb\x02\
+\xe2\x89\xe0\xf5Zwq\x9a\xe7\xf2y; \xe5\xf9\xbc\
+\xaf{\xc0\xbc\x09\xe8\xf9m\xfe\xbd\xcfK\x17\xa7\xb6\x0e\
+\xfc\x22\xef\xefs\xf9w\x9f\xc7\xcf-!D\x8b\xe34\
+\xe6\xa8\xe7\xedLn\xf3\xe9\xdf\xbd_\xd3\x048u\xa1\
+L\xc1\x95\x13X^m\xa3\xb0\x94c\xc9A\x1a\xff\xfd\
+*yam\xf6\xde5\x01\x03\xb6\xeb\xb8>\xcf\xca\xc6\
+\xba\x5c~\xbe\xeeDI3a\x1e\xf0\xa4\xc4\xd3\xd6\xdf\
+\x1f\xaf7\x8b\xea\xcd\x14\x92\xcf\xb4\x9a{\xea\xf4\xef\x9d\
+\x02~\x8euGj\x04@W\x8e\xe8\x13\xb1B\xdd\x09\
+\x00\x0f\xfav\xcbH\xa2Tvq\x08\xc0\x83\x80^\xa0\
+N\xfd\x9cc\xe1s\xf8Y\xa6\x01\xa0\x91\xbe\xf4j\xc7\
+/\xd4\xe5`\x06\x0az\x9fL\xf3\xd6\x03\xfe\xde\x06C\
+ \xe2\xdf{\xc6\xff\xe3UB\xb0\x22U\xefL\xe9\x83\
+\xfe\xc2\xd6\xc9Ap\xb08:(\xb2wY\xa9\x97g\
+<:\x81\x03\xe4Y[\xb6\x04\xcc\xbb\xa7\x84z\xcd\x81\
+c\xa8\x04\xf0\xf6\xa5\xf9D\xed\xbfq\x02\xdc\xfc^\xb5\
+%\xb1>~o\x13\xcdX\x01\x0b\xcc\x8a\xdb\x87\x99\xe0\
+\x02\x120\xc7\xc1*5\xe0\xc7D\xad\x99\x08\x8d6n\
+j\xfe\xb4\xf7\xe1\xb8\x0b\xa8\xa2v\xbc{\xfa\x18[\x0d\
+h\x01D\x02m%&\xda\xa6\xa9\xbd}\xc4\x18\x93\x83\
+\xa6\xcdT2\x5c\x02\xe9\x12\xe9\xf2y9\xfe\x90g\xfb\
+\x8c\xe3\x11\xc7\xa4\xfa@38\x11o+q.\x06\x88\
+#b}\x894E\x1c\xab\xa8uj\xe2e\x22\xed\xcb\
+dv\x0bP@\x91L\xa6\xad\x02|\xe7\xc0\xba\xd3\xa2\
+\x10\x98\xea\xd6\xc0\x90B\xc4\xb5#\x8a\xe8Se\x04Q\
+\x8f\xaf<\xc6\xe6\xb0Sow.\x8b\x92l_\xca\xf4\
+&\x00\xab\x1ax5\x99\xda*u\x86\x04\x95\xed8H\
+\xb5>2\x872\x0f\xe9k]\x8c\x0f\xf6@\xedt\xa8\
+\xe9\xd5>\x13\xe0##\x04\xa0\x88cY%4j\xce\
+\x9c\x17\xa2\x81\x9e\xef\xe5\xcb\xd82\xf1\xce\x13G\x85C\
+\x9b\x0c\x8b\x1a\xd0:?\x02\x0e\xf6\xdf\xbeb\x97\xd4\x88\
+\x87\x02\x5c\xd4\xd2\xab\x8fq\xfc~\xeb1\xa6\x00\x15e\
+?\xcc\x86\xca\x10(Up\x81\xca\xf4h\xb3\x94\xccH\
+\xed\xd3\xd8\x8bbV\xa1LFdl\xff\x981\x8e\xff\
+\xfd\x7f\x8d\xb1]\xdc\x15\x90\xca\xe8q\xf4\xe20V\xad\
+<f\x09u\xfb<\x0f\xd5\xe9\xfd[\xc6X(\xff\xe7\
+\x0e\xca\xbfL\x916d\xbb\xd7\x8cq\xfc\xf9qcL\
+\x81\xbb\x00\x14\x90\x9a\xee\x05UR!sG\x5c\xec\xa7\
+\xc68~\x7f\xd5\x18\x13\x90 \xf3\x9a\xbf\xaf\x00\xc8>\
+\x22\xda\xe6\x9e\xc2H\xca\xd7\xee\xab\xc6\xd8\x00\x99Z7\
+5\xdf\xa8\xfa\xda\xcc\xc5A\xde\xff\xea\x18\xd3\xfa\x08\x08\
+Z\xf7\x9bbB\xb1{\x98\x072\xf0\xda\xfc\x01DP\
+-\xd9\x1d\xf7\xa2\x00\xc6}\x0fPA\xd5f\x07\xddg\
+\xce\x81\x92\xb2\xcc+1\xca\xda\xa7\x00g\x99\xd5\xdd\x18\
+\xd3\xfd\x9e{\xe1p\x95U\xf3\xa0\xd4\xdb\x05\xd6J}\
+\xa2\xf9Q\xf6\xd79S\x1a\x98\x80\xa64\x14R\x02T\
+\xc0\x84\xfb\xdc\xf3+\xe5\xa1\xae\xae\xa4 \x1a\x1b\x05\xf8\
+\x0b\xccQ\xd9\x13\xc0\x958\xa4R\x12\x01/?\xe1\xbf\
+,c\xeb\xfe!s\xaf\xfdd\xee#\xf6\xeap\xb3\xd8\
+\xc9[\xc7\x8e_%\xa5L)\x11\x90Y+@\x86\x1d\
+w\x0fp\xb0e\xe0e\xaaQ\xd7\xdd\x7f(\xd0\xec\x8b\
+{CI\x0a\xca<\x7f\x8b\x080\xa0\x08\xd0\x0d\xb8\xb1\
+\xff\x02`\x16`\x8a\xba\x9e@\xbc(\xfa\x02\xbd\xd83\
+\xedD+\xd0\xf3<\xf6)\xed\x92h\x1aTFOi\
+\xa2\xdf\xb3\x1f\xd8\xd1\x96\x98\xaa\x04\x82R\x18\x19`\x00\
+*-\x8d\x88(\x96\x88\xf0\x15Kkh\xf5\x13\xf9\xd5\
+\x123I$\x9c\xd6\x95\x0b\x13.\xda\x06u\xde\x01m\
+\x00\x06v\x98\xf8!\x8a\xbf@1\xdd>J{\x04\xe0\
+\x88\xe9\x10\xf1\xc7\xdaw(\xd7\xfcA\xcc\x00@\x07&\
+\x0b-\x08L\xaf\x9be?\x8d[\xec\xaf\xa7n\x09\xfc\
+\x0d@~\x9e\xafJ\xfe\xc2\x84\xa8@\xafkt5\xc6\
+p\xdd\xa3^\x8f\x1d\xea%&2\xbc\xf6\xa1}\xc3\xaf\
+\x13\xf8Y\x1fZ;D\x22o5\xc6Tj\x14\xa0\xa3\
+\x12K\xde\xcf\xba\x9a\xef.\xeej_D\xf4\xb0\xfc|\
+\xfb\xce\xebt\x0a:\xe08\xfeQuG\xb2\xde\x02Z\
+q\xd3\xc5\xf5\x95\xbf8\x11\xbf^\x1a\xe1\xfd\xfd\xbe\xd7\
+\xf7z\xee\x87\xde.\xb0\x03\x00^\xbf\x05\xccU\xd2\xd7\
+\xb4\x9f\xca\xae\xf2s\xd9\xf5^\x22\xe1\xdf{\x17\x02~\
+(\xc6\x1b?\xaa\xcf\xaf\xe7n%\xe1\xe5\xaf\xfa=\xeb\
+\xe3s\x00\xd4\x01\x02\xbd$\xb7u\x07*\xa0\xcd\xbe\xf5\
+\xf9\xbaVB/\xe1\x16\xb7\xb5\xda\xffM\x03`\xb8\x83\
+\xd7I\xc0|\xed\x89\xf2/\x10\xbe\xc5B\xaa\xde\x0cI\
+\x0f\xdc\xcf\x08\xca\xecb\x12\xe8\x0f\xf3\xac\x9d\xde-s\
+a\xff\xa7I4h\xc0\x0a\xf7\x8a\xba\xf0=&\x15\x5c\
+\x1b\xbd\x07\xee6\xc2\xd8N\xef\xce\x04\x5cv\xab1\xa9\
+@\xdd\x02\xdaX&\xca\x81\x04th/x\xad\xa5\xda\
+~\x0bDlL\xefoA\x1be\xa4j\x91\x18\x06j\
+\xa7\xd4\x929D\x1c\x92\xaen\xees\x9a\xb7\xcbT\xc9\
+\xc2\x85\xdb\xe7uD\xcb<\xf4v\x1d\x1cY\x01\x9f\xcf\
+\x03\x08\xe9\xed8l\x94M\xecq=\xa8gf\xde>\
+\x99L\xe0\xcbcP\xaf\x11j\xe7\x8d\x13p\x9b\x97[\
+%\xf0\x16X\xdf4\x14\x5c\x0e\x7f\x10\xde\xdd\xb7\x84*\
+\xf7u\xe9\x87L$\xe8\xb9\xcb(\x11\xad\xbaP\x04\x18\
+\x80\x0b\xf3\x06(\x91\xa9\x04(\xa0t;\xe0\xdd\xf0u\
+\x11\x12\x86\xca\xc1\x85\xb4\xa1^& ?:\x09\xabX\
+\x99\xf3\xc0\xf1\xd0\xb6I__\x8e\xa9\xcf\xa3\xaf\xad\xf3\
+ \xd3\xc5P\xdd>\x019\xe6\x81ur\x11p\x9c8\
+D\x022\x19R}Z[-\xae\xb6ge@\xf4G\
+\xff\x92X\x0c\xe7\x00\x00 \x00IDAT\xd91\xa6\
+\xbe\xbcj\xa1\xccoj\xe0\x8bjm?\xf9\xef2\x93\
+\xa8\xe5j\xb5d2\xe3h\xd6\x05\xedy\x19N\xc8)\
+\x11&\xc0\x01&\x82\xd2\x8b\x9b\x8f1Q\xb7d\x5c\x05\
+\xae\xf6\x9ds\xca\x80\x03j\x04v\x80%\x8e\x1eq\xad\
+\xd6\xb6\xaf\xec\x04\x0a,Q\xab\xb4\x13*\x0a\x9fL\x85\
+\xfd#\x83*S\x92u*\x8aa\xd6\xa1T\x95\x01\x03\
+\xc4\xa8\x9cG\x81\x00\xd1L\x19,\x19\x14\xa2^\xdaN\
+QQ&b%\xb3f^\xa9=c@$S^\xe7\
+\xc7\xe77oD\xe9\x94d\x10Ac\x9f\xf4\x83\xff\xa5\
+Ue\xbd2*Qu/G\x185[f)\xb5\xaa\
+%\xf2\xe8|\xb0\x83(\xf5\x80\x0av\x14\xb59\xe2\x8d\
+\x95\x01\xbd\xcd\x85\x81\xb4\xeaZ@m\xdd=\xc1\xee\x00\
+\xa0\x02\xd4\xed~|\x8c\xe9\xfc\x0al\xcd\x83L\xa0\xae\
+\x05\x1cv\xeb\xc3a\x97\xb9&n\xc6\xbe{?\x0e\xa0\
+\xcf\x97L\xed\xfe\xb1c\x1c\x9f\xe3\xf2cL\xd4q\x0e\
+\x05\xe0\xd6\xdf\xb1\xcf\xee\x07*\xdc\xf6\xab\xd2\x0b\x19?\
+\xfb\xfd)g<y\x04\x0e\x87{\x1f\xees\xb8\xf7\xf6\
+9\xaaK\x8a\x80W\xc6?\xa5Y\x87\xeb\x8c1\xcd_\
+T\xe8+\xf3\x8a\xd9D,\x92\xa3\x0d\xd0\x08\x00\xa1t\
+\xaaj!Q\xd3{\x06^\xa9\x05\x11E\x1a\x06\xda\xbd\
+isD$\x0f\xd0\x16\x87\xb5D\xebdl\x01<\xa9\
+\xb1\xadLb\xec\xe9\xe8\x1d\xb4\x94\xcc\xfcmT\xd5\x95\
+\x82a\x02\xa8\xc9d\x87\x02\x00\x1eN\xad\xe2}UZ\
+\x80\x09\xe5\xf9\xd8\xef\xfc\x5c\x1aG\xbaq\x04\xc8\xe4H\
+\x1e\xee?\xc6\xe4G9g\xec\x11\xbb\x80q\x14\x06B\
+\x05T\xee}@\xcb-\xc6\x98^\xcf=%\x00\xa7\xd1\
+\xf4K+ }\x9c\xe5U,Q\xa6\xfe\x91cL5\
+\xb2\x02{\xb5\xf2\xf7J\x80}\xb9\xf5\x9c\xee\xee\x17\xf1\
+]\xf7\xa9\xe7\x89\x9d(\x8d\x18\xef\xcf\x0fi\x1a4\xd5\
+\x0d\x80\xbd\x06\xc4&\xe3K\x95~i\x0a}\xc9\x05X\
+\x7f\xd2\x00\xd61)J\x14\x11E\x1b\xb3\x00\x80\xa1\xe4\
+G\xe9\x81n\x1b\xeeM@6m\x08%I\xceQ\x00\
+\xe6z\x0e\xfeJ\xec\x05\x8a<\xb5\xee\xea\xde\x91\xf3R\
+~\x84\xf3\x8a)\x80! \xb0\xe3\x98\xc7o\xa8s\x22\
+\xc3\xad\x9b\x8b\xdam\x8c\xa5\x88\x92\x96H!\x7f\x89_\
+\x13\xc6T\x05\xf6\xfc!Z\x14\x98a\x9e\x1fP\xe1y\
+d\xd2\xf9\xcf\xee]\xf6\x90\xf8_\xbap\x00b\x8a\xd9\
+a\xdd%F\x94\xd8\x08\x94i\x089\xa7T\xf7\x01\x08\
+\x18\x07J\x14\xf8\x01\x18~^\x07\x10 \x81\xe4~\x06\
+X\xbb\xef\xcc\x9b@\xaf\x89qW;P\xef+\xb0g\
+\x9fi\x10\xe8r\xc0\x8fc7\xf87\x80\x03\x00\x9d\x8c\
+\xbcuQb\xa8\xd4UBC;\xe5\x00o\xe5\x97+\
+\xa9\xc2p\xc5\xb8\x11\x98z\xdf.\xba\xcb\x0f\xf6y\xf9\
+\xc1\xce+\xbf\xce\xfd\xe2\xbe\xe3\xf79\xdf\xf6\xaf\xfd\xd5\
+\x03]q\xa0\x80V\xe0\xeby\xba\xd86\xbb\xe0u;\
+s\xd9\xfek%\x00\xe5\x07\xb9\x17\xdd\x97Mc\xae\x9e\
+G\xfc\xd6\xbb,\xf4.\x07\x80[\xfe\xe6\xf9cL\xcf\
+\xe1\xbf{\x1f\xeb(a\xe1s\xf5\x92Z\xf3!1\x81\
+\xa1 q\xda\x03\xf6&\xaa^~ \xe6\xa6\xf7\xef\xed\
+\x1e\xbb&\xc3&\x92\xf9\xff\xfd\x95x\xf2T\x1d\xe8\xff\
+\xbf6\x5c\x90\x87\xb1,\x9f\x9d2\xf5\xfen\x98\xdfA\
+\xf1\xbf\xd1\x18S\x00\xcc\xe0\xddv\xc9\x85n\x19E\x7f\
+'`u\xf1\x8d\xed\xfc\xa6\x04\x10s_p\x0b'\x90\
+7\x11D\x02\xc7t~\xf4\x222\xdb]\xe5qL\xef\
+E\x89\xa2\x09\xb0QzPKP\x8b\xcd\x87\x0d\xc5\x00\
+q<9\xb2=\xe0\x97y\xc6\xa8 \x22\xb8\xa9\x07\xaf\
+\x9f\xe3\xe2\xdact\x11\x0f\x07\x8c\x1a\xf7\xbf\xaf*\xff\
+\x02\x862\xbc~\xdf\xeb\xd3\x02\x085\xb6\x02-\x06\xce\
+\x865\xcf\x0e\xb0\x8c\xa7\xf5\xec\x07\xf9\xd2\xb9 >\xbc\
+\x1a\xba\xc39iK\x91L6*]m\xe0\x04\x02j\
+\xda+\x93\xee};\x82\xe5\xbb\xcf\xed\xbf\x03dh.\
+\xb8\xd0\xed\x8f\xb9T\xe4&S\xdf\xdd\xc7\x05\x19\x97\xa9\
+x\xd22\xc6\x05\xb1\x06\x80\xdap\xdc~\x8cI\xdcC\
+\xc0\x0b\x00J\xff\xebR\xdb5\xcf\xbd\x7f\xa7\xcc\xa1\xf9\
+p\x91\xffF23\x1cb\xd40\xefC\xb4Hf\x99\
+\xa3\xae{\x82\xb6\x96\x02\xd3\x5cH\xd5\xf6\xc8yE\xe9\
+\xf4z2)\x007\x8eW\xa8\xd1u\xf1;\x0f\x02#\
+\x17\x15\xe4\x19b\x8e\xe2\xcd1\xee5\xf4\xc4-}\xa1\
+\x0a\x03:8\xacjN\xa9\x5c\xd3\x04P\xea\x10\x06F\
+\x9dg\x80\xa4\x8bI\x06\xccE\x99\x00\xb8\x1c\xca\xd4\xfc\
+\x95\xc3\xcd\x1e\xd8w\x0c\xa7\x0bQ h\x9f\xa0\xfe\xc5\
+\xe1\xac\x1aZj\xefj\xefe`P7\x9f\xbb\xf6K\
+\xafL\x9c\xd7w\xc1s\xb08jD\xe8d\xba]\xa0\
+\x17\xc7@JFE@\xe6\xc2(\xc0G\x86\x98CC\
+\xcc\x89\x83\xea<\xaa55?\xa9\xa5/\x07\x93\xba:\
+1=\x22q\x1c\x99\xec\xdf\xea~ `\xb7^\x1c5\
+\x17\xb4}\xc5\x81\xd1_\xdd\xfeE\x81N\xbfw\xf3w\
+\xf2\xf01\xb6\xf6N'w\x1dcR\x0f\xe6H\x03\x84\
+\x88Ni?\xe8\x9cr\xb49\x86\xfd^I\xa6\xb4\xda\
+\xa7\xa9Y\xe7\xa0\xca\xb0\xa91\xe6\xb0\xa3\x06\xab\x89\x8c\
+\xbd\xad\x1a\xcf\xd4d\xd6\xbcrT\x95fpd\xdd\xcb\
+\x02\x7fZ\x11\xc3}\xfb\xf0\xb4\xdf<7\xe6\xc7\xe0\xc7\
+}vy\xae\xbfY\x98\x1d\x09\xec\xab]\xde\x1f\x8d\xb1\
+\x89`\xd6:Z\x0fv(\xd4\xdf\xaa\x89Fq\x96I\
+\xbf\xfdZ3\xed>\xdb\x9d3\xc6\xd6\xf7\xbd\x80~\x81\
+>\x06\x12\x86\x15\xa0C\xe9O\x80\x95\xea\xee\x22\xe0W\
+\x02\xa3\xd4\xc1\xbeJ\x80\x5c\x00\xac\xfe\xdd_\x1b\xaaz\
+\xc4\x0a\xf7\xef\x1a\xe3\xf8\xf7_;\xc6\xf6<\x87\x87\x07\
+8\xe1\xb0\xb3\xa3\xeeU\xa5\x0a\xda\x01\xfe\xe6\x18S-\
+45\xef\xd4\xa8W\xbbH\xc0/\x86@\xae\xf9\xc3U\
+\xc6\x98\xfa\xa7\x03\xb6\x9c\x1f\x19Z\x80\x96\x8c\xb9\xd2\x18\
+\xa5)2\xde\xee\x17\x19Z\xf6\xa3Q\x9e\xcbn\x10o\
+\xfc\x8eP\x91\xddS\x00\x10\x0e0Uz\x19}\x0cP\
+\xa2^\xa9\xf9&\xf6\xa9\xcb\xc3\xe1\xeecL\xc0\x16\xcd\
+\x06\xdd\x18\xf4\xabV\x93\x1c\xcd\x92j\x9b\xc7>\x02\xa2\
+Q\xa3\xed;\x01j~\xde\xbfo\x8c\xc9\x0fh\xa2f\
+\x80X]<\x8a1\xc3\xfe(m\xe2\xcf\xb0\xcb\xa8\xe8\
+2\xd2\x98\x82\x18\x06\xec\x19\xe6\x9c\x12\x05v\x99?\xc3\
+^\xba\xaf\x1f7\xc6d_=\x07\x00\x8cV\x88@\xc1\
+\xb9\xf7\xfeJ\xa2\x94\x18\x01Ls\x1e\xcb\x9eX'\x9a\
+\x0d\xee\xc7\xf8su\x0e\xcc+\xfb+\xf1g\xdfj\x8f\
+\x0b `\x8f\xdc[I\x90\xb0\xbb%\xfe\xaa\xf4\x81\xa6\
+\xc3\xe7\x8fq\xfc\xf7\x9fZ\xc6\xf6|\x18Q\xfc\x13%\
+O\xda\xfb9\xdf\xec\x9a\xef\x02o\xf7\x09f\xa1\xc4\x83\
+@\xd6\xbdj~\xa3IV\x00_\xc4n+\xb0\xff\xd7\
+\x12\xdf\x5cK{\x9c\x07T\xf9^\xb3\x0f(r\xaf\x02\
+F18\xf8u\xd6\x0f0\xa1kA\xee\xc9\x02\x1c\xf2\
+~\x98\x8a\xc5\x14\xc2\x00\x04\x98\xb5R\xb5\xde\xc6\xf0\xb4\
+\x0c\xb38\xc0~\x13\xbf\xf8\xef\xe2\x16\xfe\xbc\xe7v?\
+\xfa\xea\xaa\xff\xce\x9b\xf3\x03X\x008Xg\x0c\x1b\xcf\
+\xd5EM\xfd,\x90\x15\xf8{}\xdf;\xc0\xd3\x03|\
+\xf1\x8a8\xc3\xe7\xf5\xbe\xfc<q\x04 \xb0\x8b\x02\x9a\
+W\x01\xb6\xf9\xe3\xcfz}\xeb\x0d\x88\xf1<M\x1c\xb0\
+\x80\x18\xeb\xe3\xe7\xde\xbd\xce<`$\x8b\x13\x94~\xd9\
+\xcf]\x93\xad\x032\xde\xf7\x82\xd6\xad\x0d@\x0d\xe0H\
+|{\xaa2\xea\xe3X\xcc\xe2\x0d\x10\xfc3\x97\x9c\xf0\
+\xeap\xbekb\x04\x8c\xeb\xf9Jy\xa3\xfd\xd4\x1eP\
+\xc0\xa8\xad\x1f\x86\x81\xc04\x99\xfb\xdd\xf25\x05\xc4\x90\
+\x11\x13,\x90\xb6\xf1\x18^\x13\x04\xc1\x92!\x1d\xcb;\
+Olosf\xc3\xcb\xd0\x9c\xaaL\xf7\x1aP2\x1c\
+\x0e\x02\x80\xc2\x82q\xb4\xba\x18\x83Zw\xdd\x05d\xba\
+\x00\x06\x0cp\xa7\xbe\xf8\xb2@\xc4\xce\x82\x18\xeen\x14\
+\xea=\xa4\xd8s\xf9\xbc.\x12\xf3\xda\xc51\x1c`\x9f\
+\xb7Q\x97\x0f\x99\xef\xdd\xa9\x5c\xa0]k\xc0\x85\xc0Q\
+\x03\xdc\x10\xfe0\xbf\x905\x81n2m\xdaHU\xdb\
+7\x8e\x9a\xef^\x17\x85\xdd\xe7\xec\xc0\x88\xe7\x17\xf0\xf8\
+\xef\xe6\xa3\x07t=C\xacf\x15UOF3\xb5o\
+\xd5\xa7X\x9b\x9e'\x85\x0a+\x93\xd1\xdb\xc6\xc8\xc0C\
+\xd4\x1dH\x0e\x15\x8a\xad\xf6U\x1ck\x17\x0dD\x9f\xc1\
+J\xc0\xbf\xfb\xf31&\xa4<\xfb\xbe\x80\x888X(\
+\xf1J\x0dJlI\xc0\xe3\xbb\xc0\x1beX\xad\xa4y\
+d }>\x99d\xf3\xa7\xb4\x01\x22\xa9\x1d\x9a\xf5`\
+\x90\x9dW\x17\xb2\x0b\x89\xb8\x8c\xbe\xf0\xa8Z\xce\x1b\xe4\
+=bv%\x1e\x04a\xa7\xe6\x1c\x0au\x05\xd2\x09\xd8\
+\xd4\xd6U\x86\xd2~r\xee\x18\x5c\xb5\xf0\xc4y\x9cc\
+\xcf\xe1\xf9\x01E\xfaGs\xa09J\xe6\x0bS@\xe0\
+'P\xa5\xfa\xcf\xb1p\xa1\x08L\x94\x8e\xb0C\x1d\xb1\
+N`R\xa2R.\x06\x0e\xb5\xcf\x85\xea\xad\xf6\x17U\
+\xfcacl*\xf5E}\x17\x10;gj\x0c\xd9\x07\
+\x8e\x9c\xc0[)\x8fvs\x00\x89\x00G\xa5\xda\xadM\
+\xdb\xd5\xc7\x982\xec\xa8\x9b\xb4\x15\xb4\x1d\x8c\xc8\xe6\xee\
+\x11\xeb\xb9(fJ\x1cR\xe7\xad\xba\xc3p\xc0\x88S\
+\xc9`\xab\xf5\x04|`<(\xd5@\x19\xb6\xdf\xa9b\
++9a\xe7\x05F9\xc7EE\x96\xd9\xd5\x1eQ\xe0\
+\x95\x00\xd59<\xdct\x8c\xad+\xc4\xe1\x13c\x9c\xde\
+\x06\xabT\x90\x9d\x07\x00\x1f`I \x89Q\xe4\x9e\x88\
+#}\xe6\x8d\xc7\x98\x02E\xd4G\x14q\xbf\x7f\xbd\xd6\
+-\xa6\xd9Y\xcc\xb4\xa2\xccc\x94\xc4\xbe\xd4\xfe\xb2?\
+hnD5\xbf\x80\xa4\x04>\xc7\xe0s\x0d\x1c\xdd?\
+\x80@Tyj\xe5\x00\xf5\xd4$W\xcd.;\x1eQ\
+\xb2R\x9d\xe7\x80\xb9\xb71\x8e\xbc?\xc6IT\xfcK\
+$N\x00\xcc.\x01\x16\xe2\xf0\xd8\xdf\xbbSc\x1c\xbf\
+\x9f\xac\xfe\x07fP\x95\x92\x01\x1e\x04\x04\xec\x83n\x0a\
+Jo\xf4\xa5'>\x18\x11@\x00K\x05\xce\xe9\x9eP\
+\xa5\x02\x1cP\xebr\xcd1\xa6\xae\x00\xee\x07\xfb\x94\x1f\
+\xa4$\x08\xe9\xb2\x89\x0dV\xfbH\x80\x16\xfb\xd1\xc5\xf2\
+\xde\x19\x87\x95\x9d\xe7/\xbc+\x00\xe7\x9ds\x1f&p\
+\xc3\x08R;-\x90\xaf\xf6v\xd4\xe7\xb3\xfe\xfb\xb7\x8d\
+1\x89\x00\xab!\x07\xec\xa6\xe6\xba\xf6oJ<\x0a\x90\
+\x04\x5cG\x1b\x00\xc5Y\x97\x97\xc3\xf7\x8d1\x89\x11\x0a\
+\xc0\x9dc\xe7\x9e\xdd\xe4\xbf\xb9\xb7\xd4z\x0b\xd4\x00k\
+\xceUJ\x80vo\x1ec\x9aw\x01 G\x9c\x1d\xf6\
+~\xda\x9a\xb2\xe7J\x01\xdc\xbf\x80,\xa5'\xce\x0dq\
+U*\xfc\xdah\xb2\xdb\x80r\xf3\xa24\xc9\xfd\xc4\xdf\
+M\xe9_\xad\x87@N\x80&\xe1%\xa1&C\x1d&\
+\x10\xff\xaf\x12I\x02$\xa5'\xfc\xbf\x00R\xcey\xd9\
+\xc5\x88\xbb\xba/\x89\xef\x15\xf0$\xd0\x95p\x02l\x01\
+\xac$\x10\x88\xd5\x01T\x89\x11\xda\xd7\xce\x05\x06\x14\x0d\
+\x12\x01y\xd3\xe4\xd2F\x9a\xc6B\x01\xb2J,\xf8\xdf\
+\x98\x8c\xfc\x18v\x8b?\xc3\x8f\xb3\x0f<\x07\xfb\x8d\x8a\
+\x0f\xc0\xf3\x1c~\xdf:Y\x87\x9c\xbb\x12#\x94\xc0\x8a\
+\x7f^\xf7\xa0\xd7\x07,\xd3v\xe0\xdfZ\xcf^\x93\xef\
+|[\xc7\x88\xd5\x9e&\xaa\xc7\x0f\xe9]\xe0\xf8\xb7\xec\
+\x07{\xdd\xe3\x17\xfb\x9d\x06\x81\xf7aW\xf8a\xfc\x0d\
+\xef\xe3u\xc4Q\x9dq\xdd\x99\x00\xde\xa7\x8bp\x9bW\
+\xf1#@\xb0\xb7\x0d\xf4|\x006\x81=?\xcd\xdfw\
+\xbf\xac'\x1c%\x82\xa2\xa9R\x80T\x8f;|\xce\xae\
+\xa5\xd6\x19\x09\xfe\xbby'F\x0e\xe8\xe6\x97c\x98\x8a\
+\x0f\xddW\xbe\xceo\xa2\xed\x9d\x09\xdf\x13\xdey\x8eS\
+%v'\x80\x17P\xf5\xda\x93\x11Fi\xb7v\xdd\xa9\
+\x16_\xed\xfd\xd8.W\x9c\x0c\x8f@r\x98\x9f\x8f\xe7\
+\xfb'&G?\xb5c\xbb\xeb\x8f1-\x88\x80\xd9s\
+\x8d\xe9\xbc\xd4\x14\xc02\xc0\xc4\x0a9.\xbd=\x83\x05\
+\xb0\x902\x97\xd4Y\xbb\x98\x1e1\x155\xa5\x16\xf2\x13\
+K\x87\xdf\xf5\xf3\x5co\x12\xeb\x08B[\xed\xc7\x5c$\
+]\xa5\xdf\xc47\xf1\x85z\xde\xde\xe7\xd2E\xf6\xcfk\
+\xbb\xa3\xdd\xe7%S/p\xf1\xbc\xe6K\xa6)\x1b\xbb\
+6\x86y\xbc\xe4\xc5\x94\x14|hE\xe6\x8f\xff\xb7\xce\
+\x17\xa6\x02\xb11\x01$\xea'j\xe8\xe5\xe3p\xb4\xcf\
+S\xaa\xf9A\xbaw\x7f<\xc6T\x03\xafD\x02C\x04\
+\xc2\xed\x22\xec\xdd\x15\xfa\x01\xee\xb5@>\x8f\xc0\xa6\x89\
+3\x96\xe8\xd1hOy\x83)\xc3\x12\xc7\xbb\x1c(m\
+q\xee\x1c\x86\xc0\x17\x8d1\x19\xd4\xde\x9e\xd2sR\x11\
+\xc7d\xb0?\x893Q\x97M&\xba\x10m\x19pH\
+\xb2\xf3e~]\xb4\x1fj\x19\xe2\x1e\xb8sp|n\
+\x99\xbbd\x8e\x8aq\xe0\xc0\xa3z\xab\xc1\xd3>\x8a\xe8\
+\x0d\xc0\x8f\xfa<\xf1/\xeb\xc1P\xba(9\xc6\x80\x0c\
+\xfb\xd8\xbca\x12\x00\x92\xd8\x05\xef\xc3\xa0\x09\x08\x5c\x10\
+\x1c\x03@\xa4u\xeb\xc0\xa4\xcc]o\x07\xe5\xc2Q\xa3\
+\xec\xf9\xcc/\xe0\xc8\x05h?\x09\xe4e\xf4e\x22\x9d\
+3\xe7\xc8y\xd3\x05\xc0E\xddjV\xeb\xe2\xe48\xc8\
+\x04\x08\x00\x92\xd1\xa8\xee\x02\xba\x09\xf8\xf9\xbb\xc7\x98\x9e\
+O\x86$\x19\xd6\xaa\x09\x0d\xe3A\x86r\xf7\x87c\x5c\
+\x84\x1a\xb5}F|\x8f#\xcfaQ\x83+\xd3\x22s\
+\xaef1\x0e\xbc\x8c\xc8\xc9\xe5\xc68\xbe\xce}\xc6\x98\
+\x02\x1e\x14\xd9\x88?U H\x0d\xfb\x0a\xb9\xf0#\x8a\
+\xa9t`\xe9\x11s\xdb\xed\xe2\xab\xda\xdb\x04\xd4\xfa<\
+\xef>6\xc6\xd4V\xd1\xfeuN0x\xfe}\x8c\xa9\
+m\xa2@\xc1\xba\xb3\xff\x01\x0e\xcaQ\xec\xed\xe8\xa8\x91\
+\x07\x98\xdb?z\x8c\x09\xd0\xb1o^\xbdR\xcb+ \
+T\x12\xc0qM\xa0F|\xb4\x00F\x08?\x8d\x8dd\
+*\x87T\xdb\x22\xd6v\xf31&\xe0\xc9\xfe\xb6\x8f9\
+P\x00\x80\x04\xb0D\x0b\xd5\xe6\x96\xfa;j;\x06\x03\
+@\xdd\xfa\xb13(\xd5\x18\x02>\x07\xea\xef\x95\x0fW\
+:\x8cL\xd6\x13W\x8d\x82j\xcf\xa8\x9f\xba\x92\x16\x19\
+P\xa5I\x9d\x82\xa9\x0f;M\x14\x01\x8c\xf5|Lj\
+\xb8\xcf\x8b\x88\xee\xff3\xc6\xb4\x9e\x02}\x19O\x0e\x90\
+\xc0\x0f\x03\x11\xa3/\xa5G\xe6\xb7DN\x1ft\xf8\xc6\
+\xc3\x83\xd2_\xfc\x8c\x09\x80\x06\xa8\xa0\xc8'3\x5c\xfb\
+\xe1!cl\x8c\x943\xef0\xc6\xc4\x90r_\xc4.\
+W \x04\xa0i\xea\xd3\x95\xa9\xb4\x0e4?^:\xc6\
+\xd6=F;\xbd\xc3-V\xb1=@\xdc\xe1\xd2\x87\xcb\
+\x1c.39\xb4\xec\xaaZ\x7f\x99\xf5t\xb3\xa8\xf6\xae\
+\x02\x10\xf6\x9d\xfdTC\x1f\x06I\xd9\x09\x806\xad\x8f\
+\x9b\x8c1iu$p\xdc=s\x8c) f\x1f\xac\
+\x9f\xcc:`@`\xee\xfc\x01\xb8\xe3\x07\x94\xf8g\xc4\
+C\xf7?8\xc6&\xe2W\x80\x92\xf6\x81\x80\x9a\xa8\xfc\
+W\xc6\x99\xa6\x0b\x7f\x8d_z\xe71\xa6\x0c\x9c\x12\x16\
+~W\xcfT*\xbd\xfa\xd11&\xa6\x82L\xad\x9a\xfb\
+\x9f\x18c\xaa\xfd\xe6\x9f\xba\xef\x01o\x80I\xfd\xe5\xa9\
+\xe4\xf3\x83r\xef\xef\xbef\x8c\x89\xa9\x90\xe7+-\x8b\
+\x9e\x19f\x1f:\xd3\xc9\xf9S\x0b\xaf\xbdl\xecF\x89\
+\xac*\x9d\xca\xf9\x04\x0cU\x09\x0aM\x0f\xdd7hW\
+D\x13\xa5J=\xe2\xd7\x1cO\xf3ZBK\x9bD\xdb\
+\xcb\xe7\x06\xe0\xd3\x86\xb5\x89\xf6V\xfb@\xfb\xda:\xf1\
+\xa7\x00\xf3\xee{\xc0\xa0s\x06H\xe5Ob\x82\xd8o\
+\x18\x05\x18\x91\xfc&\xf7x\xf73\xf8=\x80G\xf7\x7f\
+\x03\x12\x0aP\xec\xfe\xbe@\x90_\xc3\xbf\xe3G\xf1\xef\
+\xec+\x09\x15\xfb\x8d\xfd\xe7G\x8b;\xba\xaa?\x80\xc4\
+\xfbv \xa0\x97\xca\x12]M\xdb\xd5\x9ao\xaf\xcf>\
+\x9bG\xf6\xd6<y_\x09S\x00\x5cocg]\xba\
+\xd6[/\xd9\x958\xf1\xfc\xfe\xbd\x8b\xf4\x01\x98\xba\xea\
+>\x00\x0d0\xe3\x1e\xf2\xf9=_\xef2\xe2\xf5{\xe0\
+\xee\xf3vM\x01\xeb5\xc7\x8f\x9f\x98^\xaf3\x11|\
+\x9e\x16_\x14SGbK\xc2%\xa2\xa1u\x8e\xed\x93\
+.\x16i>[\xbb\xc6\xdd%\xc6\xd8\x183\xa7\x16\xb3\
+\xf2\xd1L\xd0<\xb1\x90e\x07h\x10no21\x02\
+\x88\xfe\x09\x10\xde\xb1t\xe4\xdc\xd4\x0aC\xb9.GK\
+M\xb0\x85P\x1b\xa1\x96\xbe\xf7=\xe40\x0dG\xf5\xda\
+\xd9\xe8\x97\xcb\xf3}j\x12\x09\xecb\x196\x96\x89E\
+]\x9e)\xbe\x97\x8f\x039\xd7\xe2\xe79+S\x08\x81\
+\x0a\xa5\xacD\xabP\x91\x05|\xbd\xe6\x1e3\xa1\xf7_\
+\xb7\xc0=\xf0\xb7ql\x98\xde\x07\xb2\xd7\xf4\xd88\xde\
+w\xab\x8d_\xd5]\xf5\x15\x06\xac\xf4\x0d,p\x92\xb1\
+&\x1aG\xcc\x8b\xe8D\xda\xa5U{1mg\xd4\xb2\
+{\x7fb\x89O\x1bc\xeb\xdf]\x19\xae\x93\x5c\x98\xe6\
+\xc5E\xda\xdb\xcc\x09\x10}\xb7O\xd4\xb2\xa3\x0eBT\
+u\x95\xa0\x19\xc0`\x09x\x82\xf0Vf\xcdz\x99w\
+\x06\xcf\x05`\xbf\x0b\x80\x88\xdc\xdcs\x8c\x89\x82\x97L\
+\xdf1\xecZUwQ\x1fo\x12\x0a\xef\x8f\xad\xfd\xc8\
+w\xbf\x97\xcf-cE\xc4\x8d\xc3\xf0Ccl\x81J\
+\xd5L\xff\xd6\x18\x13#\xe4\xafC\xc5;\x7f\xf7\xa9\xdd\
+\xa7&\xf5`\xed\xe68\x0c)E(\x0a\xbc>\xe7\x0c\
+=\x07\x18\xa5\x9a\xc3\xc1q\xb2\xbf\xd4\x08\xba\xc8\xed\x13\
+\xa2=\x1c@\x089G\xd3\xfcrD\xf4\x95\xbf\xd7\x18\
+S\xbfe\x17\xb4\x1a\x5c\x81\xb1}\xce\xa0\x01\xa0\x88U\
+AZ}y\x7f\xfbIm\xa9@\x80\xdd\x91\xd9\x00\x8c\
+\xb9\xb8:\x22\xeb\x02v\x8e\xd4\xea\xb3[2\xc3D\xc0\
+\x88\x84\xc5A\xab\xc0JW\x00\xed+='{\x04 \
+\xfa\xad1\xa6\xf3\xec\x22d\x7f\x89\xf3\xa9\xf5\xe7\xa89\
+\xbf(\x9d(\xdaj\x82Q+u\x9dP\xea\x01\xc8\xe2\
+ \xeb\xa6\xd0\xb4H\x8a\x01\xa1v\xf6rcL\xfd\xd6\
+us\xa0\xaa\xaf\xfda\x02\x90\xb2G(\xe0.\x5cb\
+\x7f\x10\xed\xde\x16\x08\xa5.\x19Y@G\x89&\x06\xe0\
+\xa2\xca_5\xf8\xecf\xf6{e\xee9J\xdax\x09\
+\xa0\xedg\xfb\x8a\xe3\xe7<\xa8AW\x1a\x93\xfbl\xff\
+\x8c1\xa6\x1a\xe9\x931\xb6\xff^\x9f#\x81\x7f\x05\x1c\
+\xc9\x80\x95\xe8\x1eU\x7f\xc0\x8bL\xbb\xd7\x09\xa3\xa0D\
+\xf9\x02\x90\x14\x90\x02P\xeb]Y\xd83\xeb\xab\xa69\
+\xf7\x15FV\xa9a+\x01\xd0^\xeb39w\x7ft\
+a\xd1\xd3\xaaEO\x86\xae\x02t\xf7-\x87\xeb\xe6\x11\
+eMW\x8e\xda\xf7\xd65\xda\x22D&Q\xeck\xff\
+\xd3\x10\xe1?\xa4\xc4\xe9\xb8\xfbV\xcd\x05\x0e\xe0\x19\xc9\
+\x5c\xa2^\x0al0\x0c\x9c\xffNU\xcd\xbd\xa5\xdbE\
+\x01+\xd1:\x00XW\x80\xae\xcd\x98\xfbB\x80\x1a@\
+\xe3p\xbd1\xa6R\xb3\x94\x8c\x14#E@B\xacP\
+\xc6\x1bP(\x83\x1e\xc0\xb9\xda\xa6*E\x88]V\x82\
+\x82\xf9\xb2\xbb\xe3\xca\xf0)\x00;\xfbe\xff\xc11\xa6\
+{\xffzSi\xe6\xf56\xfb\xbf\xff\x871\x8e\xe6\xec\
+\xfb\xc6\x98\xa8\xba)i\xab\xcc\xbd\x80\x0f\x85;\x22u\
+\xe5\x17\x11\xc9\x8a\x98\xea\x80\x1d\x16\xe0A\x86\x92\xda\xb8\
+uO-}\x05p?~\xc6\xe3\x87\xd8\xdb\xe1I\x87\
+\x9f^\x18)\x02a\xe7\x12p\xcb/\x89_\x06 )\
+qN\xe2yj\xad\x05\x94\xee\x19~\x88{7Z\x13\
+\xda\xb2b\xfe)e\x008\x10\x8b\xac\xeeL9?\x95\
+p\x10\xd8Xg\xf7\xad\xf3\x000\xe7\xafx\x1e\x7f'\
+`\xb4\xaf\xf9G\x18|\xec\x89Zc\xcc!\xb5\xe2\xd1\
+H\xc1\xb0\xac\xf3\x8e\x09\xa0\xbd\xa3\xd2\x9b\x88\x92V\xc0\
+\xe6>\x0d\xa3\xb1\xda\x13\x12W\xd6\x0d\xe4\xdecL\xf7\
+\x88\x80\x9c\xdfa}tM!\xa6\x0b\xe0\x0d0\xc4\x0e\
+\xd6=\xa4\x8d+\xc6\x0f\xa0V\xe0\x1f\x8d\x83:\x8fJ\
+^$R\xd8;\xf3$\xc1\xa7\xdb\x89@\x8b\x7f\x82\xd1\
+(0\xc4\xd8{\xe2\x18\x93\xa6\x04F\x81\xee\x14\xba'\
+H@```Nx\x1f\xccP\x00\x00\xe08\xc0p\
+\x89\x0b\xbao\x04\xac\xf6\x07\x8d\x11\xaf\xcbn\x89\x1f\x9c\
+\x07\xfb\x99\x1f\x03@f\x8f\xf9a=1\xda\x03\xd6N\
+\xdd\xf7\xef~\xee\xed\x00\xbd\xbfx\xcb~u\x8f\x9b\x07\
+\xf7\x12\x7f\xce\xe7\x14`\xf7L9;\xdd\xbb\x02X\xd7\
+\xaey\xe6y\xc45\xfc%\x09\x0f\x80\xc5\xd6\x9e|\x8d\
+\xff\xbaf\x9a\xcf\xcb\xff\xf3\xb3\xbf\x13\xe8\xfb}\xed\x00\
+\x95\x04;\xdf\xfc6\xbf'~i\xdd\xabNKh:\
+\xf7\x17\xb4\xb6\xea\xbe\xdf\xe6\xc2\x89\xd3*!\xb4?\xc4\
+\x97\xe2\xca\xc4c\x05\x10t\xa0\x92\x9f\xa1$#\xf7\xdb\
+\xa9%\x1f\xf8g\xa7Ss\xb5\xf7[\xa6\xf5\x03\x17\x11\
+p\x8fk\xe00=\xc0\x08\xd7>\x98\x7f??\x0b1\
+\xd4\x88\xbf\xe28\xee\x99\xcc\xc4\xe7N\x13e\xe3{\xd0\
+\xf1\xbf\x02\xf4+\x06\xc1\xbb~k\x1fq\xc6E\xa8T\
+z\x7f_\x16\xb4g\x8eM\xac\x05\x03(\x10\x03\x1ca\
+\xc2\xb5\x12\xc8_#T\x8c;N\xd4\xd1\xd4\xee\xd5\xfb\
+\xf56\x82\x02H\x19\x83.&\xd8\xdb\x5c\x08p[?\
+\xd1\xaa\x89\x8e*\xff\xe1\xdf#rw\xc3d\xce\xe7\xe7\
+\x9fkw,\xb4\x8d\xaa\x86\xa8\xb5\x0b,\xb1<\x08\xb5\
+\xf9\xe1(~\xcf\x18[\xdb\xb2\xdd\xdf\x8f\xb1\xb4-:\
+\x8e\xed\xfdJ\xac\x042+\xf0y|(\xff\xe6\xa1\x8b\
+}\x5c\xbe\xa9\x88\x9b\x07\x0e\xf7\x0bC\xf9\xfal\xd6\x9d\
+a\xa1\x0e\xeb`\xaa\xf5C\x85\xf39~u\x19[\xe0\
+-\xd0\xe1p\xbf,\xdf\xef\xbf29\xf4\x01/\x0a*\
+\x87\xfd\x17\xc7Xj:\xefq\xb8\xc7t\xa0Q\x1a\x1f\
+\x18\x07\x01\x95]@\xfe\xc0\x00Z/\xdf=c\xf7\x8c\
+I\xf4\x092\xcap\xc9\xb0\xbc#\x17\x0bG\xcd\xbcP\
+\xb3\x97AI\xfb\xc2\xa2\xbe\x85*Z\x8e\x89R\x1a\x80\
+\x8e\xcc^o\xe3\xc8\xa1\xd0\xdf\xde\x85\xab\x1f7F\x83\
+\xe7\x95A\xe3\xa8\xa3D\xa7F\xb0\xd6\xa7\xf5\xed\xad@\
+Z\x9b\xcf\xd7\xec^\xbd{\xf5$\x12\xf4\xb2\x88\x03&\
+\x83\xaaox\x89/\xa2\xc4c\xe4\xf8\x5cy\xae\xba\xc0\
+9\xac\xf6\x11\xc7@\xe0\xae&_\xa0\x03\x18\x00\xbc\xb9\
+ \xe2\x80\x16\x95\xddE~qm\x0a\xad7\xed\x82\x9f\
+\x1e\xe3\xf8\xef_?\xc6\x94!\xa6\x9d\xa14\x88\x03\xa3\
+-\xa0\x80\x98C\x85a \x93,\x13\x04\xf1\x8f\x18\xd5\
+\xc9\xad\xc6\x98\xe6\xf9\x81cL\x14J\x0efj +\
+\x93\xf8\xcdcL\x8e\x97\x0b\x0fp\x93\x92\x0b\x19F\xfb\
+f\xc0O\x0b\x00\x85\xe2O\xebA c\x9d\xbf\x7f\x8c\
+\xc9N\x10\xb3\x91\xb1\xf29zW\x14\xf6\x08\xc0!S\
+\xc7\xb1\x96\x89\xbc\xcf\x18S \x9c\xf9)\x91B\x0e\x16\
+\xf1I\x17_\xef\xc2\x00`J\xc0U\x81\x0e\xb1\xafd\
+&K\xe4*\xd4\xe0\xfd+\xc7\x98\xd4\xd4\x89\x9f)i\
+\xa0\xf5\x829\x85\xe9\x91\xda\xeaZ\x97\xa6R\xac\x96v\
+w\xd51\xa6\xc0\x92ck?\xd9\x97\xbd\x7fr/!\
+1\xaf\x02\xbcd\xf6\xaaDE\xe0\xc2\xde8WJ\x8b\
+\xd8\x8bP\xf0G\xbe\x7fd\xfcK\xc5\x1f J\x9c\xee\
+\xe9k`P\xa2x\xee3v\x97\xe3\xcd\xa1G\x99V\
+\xea\x83R\xac\x06X\xcd\xe2\xd9i\xab\xe7>\xbff\xce\
+5\x8a\xb8@X\x80%\xe0F)\xf69d\xa0e\xd8\
+8\xec4\x5c\xb4W\xd5NM\xa9\x0b\x0am\x00[\x0c\
+\xc0R\x95\xa7!\x93\xcc\xd1\xfe\xd7\xc7\xd8T\xe4ii\
+T@p\xd91&\xf1F\xf7\xa2Lw\xee\xf1\xea\xe2\
+\xc0^i\x13K\xb4\x0f\x95\xfd\xfd\xe9>\x11\xe0\xe3\xf0\
+\xe4\x94\xcc\xbc\xff8f\x0d \xe7%\xcf\xb1\xbf\xdb\x18\
+\x13p' \xec\x8ey\xec\xfb\xfe\xf5cLvZ\x0d\
+\xbf\x1a\xf0\xb4\xfd\xab\xf6j\xd4\xc6G\xad\xf3\xd7M\x94\
+p\xe7X\xb7\x0d\x1aAJ\x86\x00\x9e\xc4\xde\x94\xf0]\
+a\x8c\xa9\xa6_\xf7\x97\x009\x87\xab\x8d1\x01\x102\
+\xd2j\xff\xd5\xa0K\x14\xfc\xf0\x18SIQ\x0f\xb4z\
+\x1fz\x00\x0d\x8a\xae{\x03\xf0\xfe\xec1&\x0d\x00\xfb\
+\x8e\x1f\x22S\xcfO\xf3>\xec\x1d\xbf\x90\xc6\x86{\xd9\
+\xbe\x90\xc1\xc5Dq\xff\xe6g\x8c5]50\x1f\x94\
+\xbcT\x0d\xff\xa3\x97\xb1Q\x99\xd3\x9e\xba\x00/5\xe7\
+?2\xc6\x04\x08\xd0v\xf1\xc5\xdf\xed\x99L\xed\xfe\xec\
+o\xf3.\xb3\xca\xbf\xe5\xa7\xaa\xb1g\xff\x01m\xe6\x9b\
+\xdf\xe7}\x04\x9e\xee-\xcc\x0d\x81\xbb\xdf\x07(\xe6^\
+.\xa0Z;E\xcf\x8bA\xd0\xfb\xd6K\x08t-0\
+\xbf\xe7\xfe\xf6s\xd3J\xaa\xdf\xf7\xfa^\xd7w\xf7\x00\
+\xbb\xf8\xfa1&\xc6\x01\xbb.\xde\xea\xed\xe1\x00Q\xf6\
+\x99\xe7\xe5G\x9ag~+?\xb0'\xd8\x04\xfa\x18\xa1\
+(\xfc\xbe\xdc\xa7]\x83\xabS\xf7{\xc9\xb1\x9f\xfd\x1d\
+ \xc0\xe7\xeaL\xed\x0e\x04\xf4n\x03\x9e\xb737\x9d\
+\xe70\xcak_\x98\x0f\xcf\xe1\xef\xfd]\x07D:\x13\
+\xc2\xba\xa3\xfawF\xa7\xcfe>{\xdb\xc5N\xc5\xbf\
+8m:\x99\xfc^\xd2.\x0e\xb7?tiJ\xa9g\
+\x01A\x00\x02\xcc\xc9\x8f\x8d\xb1u\x93:|f\x8c\xc9\
+\xef\x97\x08\xc9|\x9f\xaa\x9a=\x07|\xe4Mn\xbe\x89\
+#T\x86i\x5c\x1fo\x8ec}\xf5\xd6\x0f\xfe\xeaM\
+\x84`?m\xcc1\xdd\x17\xb1\xd1j\xe2-\xb8L\x94\
+\x8d- \xf7zc;\x9cl\x1a\x02\x15\xd8\xa2\x12\xeb\
+\x06\xe0\x83\x7f\xfa8\xd4D|\xfa\x22\xda\xe4\x05\x00X\
+T\xaao\x94\x00j\xca\xa4\x96A\x82LwJ\x87\x05\
+f\xd0-h\xef\xcf\xd8\x03\x7f\x8e\x8c\x0d\xd3k8z\
+\xf7\x82\x0b\x22\xde\xf7\x96P\x8e?\x7fU9>\xad\x0d\
+\x84\xd7u\x00=\xaf\xef\x1c\x00\x1b\x90h\x97\x1a\xfd\x18\
+N\x99\xaa\x0a\x08e\xa8\xd3\x8e\xae.v\x22h\x02\x1f\
+\xfd)9\xd66vo[x\xa9|\xffx\xa3N\x9d\
+\x97\x03\xfb\x81v\x10e\x90\x5c\x14\xbdf\xfb\xa6cL\
+\x19\xe0\xff8\xbc\xef\xf0\xbe\xa9T\x03\xb5V\x9f]@\
+\xc7\xef\x8d1Q\xc2\x1cp\x00\x021\x18\x86\xc3\x17\xe6\
+C7\x14\xa8\xa5\x09D*\xc3\xaf\xbf:j\x19Q)\
+\xf3\x1eG\xaa\xceC\x1cnj\xef\xd3E\xb3\x1a6\xc8\
+\xa1\xf3\xd6\xbbC0\xcc\xce\x93@\x8f\x83\xd7\xc5N\xd4\
+\x1ar,\x04\x00\xdf\xb4\x8c\x12\xb7\xaa@J\xa6\x80\xea\
+\xb1\xe7\xc1\xa0\x09 sx\xd4\xe1\xd1\x87G/\xc0\xca\
+ZC\xfa\x05\xe97l~\xdf\x93\xf9CqR\xcb\x1e\
+\xaadQ\xbc\x05n\xd4\x98\x19x\x81\x11GR\xe9\x03\
+M\x01\x17\xa0\xf3\xeb9\x9d\x03L\x06\x17\x13\xe4\x9c\xa3\
+\x05\xb1w\xae\x01\x10\xa8\xd1j:\xd5LR\xd5\xbe\xef\
+\x18\xd3\xba\xa0lb\xd4\x08le4\x5c(\xf6\x9fu\
+R\xfbI\x1c+\x01\xcc\xeeucL5\x8cD\xc9d\
+je\x1c\xb2\xff\xbb(_1d\x5c\xbc\x1c\x12\xef\xcb\
+\x81U\x12t\xef1&f\x8c\x8c\x1b\xc0Lf2\xa2\
+t%2\x0a\x08\x90\x11\x8fCY\x8c\x10vIm\xb2\
+}\x95\xc0\xb4\xb4\x0cbW\xaa\x16\x98\x18\x1b\xaa2\x87\
+\x1f\xb58\x81Fe\xc0\x02\x04)U\xa8\x0c\xb8\xfe\xcc\
+(\xaa\xda\x13j\xbb\x99\x0co\xb5\xf7#\x02\x18\xeap\
+iu\xa8Qgg\xa8\x83G\xb4\x8e}\xac.\x1a\xec\
+5\x80\xce\xfd\x97\x80t\xf7wcL\x192\xaf\xcfA\
+\x093\xa9\xda\xf7\x01\xc8\x12hV\x8d4\xc7]\xdbC\
+\x94\xfco\x1fc\x0a\x08d\x5c9\xae2\xdbJ\x97\x04\
+\xfa\xd4\xba[\xb7\x0e]XN\xae5\xc6v\xbe+\x90\
+w\x0e<\xcf\x17\x8fq\x11\x22\xa3\xb9wQ\xb7+\xc0\
+xQj\xb0_\x9aL%\x0ar\x98\x1d\xe5h;\xc7\
+\x98E\x80)L$]5\x128\xb2\xdf\xe5\xdf\xc8d\
+>h\x8c\xa9\xad\x19*\xf1G#2\xacM\x9f\xd2\x15\
+v\xd7}@\xcd\x1c\x00\xe5\xdf\x93\xf9?|\xee\x18\xdb\
+9\xdd\xfd\xed\x18\x13\xf5\xdf}\xa0\xa4\xf0\xd5\xb1\xd3\xda\
+\x9e\x12q\x0d\x00\xb7\xfb\x9c\xa3\xff\xf29\xcb<\xbcn\
+)\xe9\xbb\xd9\x18\x1b\xd5\xff\xe4*cL\xfe\xc8\xe3\x97\
+\xb1\x95f\x84\x12Zm\xef\x12\x10\xee\xfel\x8c)#\
+\xce\xc1\x06X\xd2\xb8H\xa9\x0f\x86\x9b\xc0\xb3\xd6A\x22\
+\x09\x90\xc1\xde\xdb_)-)\xaa\xbbL}\xba\xb0(\
+u*\xbb\x13F\x01\xa6c\x01=\x80y\x14\xfe0(\
+t\x8b(\xa6\x9b\xfbZ\xcd:;\x02\x98%\x82'q\
+\x90\x92\xb9\x02t\xfc>\x8d\x12T\xf1\xfc{1E\xd9\
+\xb5o\x1ac*\xad\xb3\xdf\xf8\x85=S,0\xf6|\
+\x18\x8a\xfcE\xdf\x05\xea\xa18WW\x1d\x01b\x02\xb7\
+b\x0e\xa9\xa9w^\xf8\x1b\xec:@\x02`\xe7|\x02\
+\x9ah\x00\xf1\xcf\x05\xf6\xbd\x84H`\x22\x90\xd1=\x05\
+\xe3\x8d\xff\xc1\xdf\xcd~\xac\x0cg\xe2\x91\xca\xc0\xd3\xd0\
+\xd1.\xb1\xf7i\xf7\xdc\xfc\x0a\x9a?\x00\x17L1~\
+\x11\xff\x1a\xb0'\x91\xc5\x1f\xe2\xf7\xb1\x87\x02@\xeb\xce\
+^\x09\x8c\xbd\xbfZ}L.\x09\x1e\xf7\xf8\xe6\xe7\xae\
+\x22\x93\x12t\x1dx\xe8\x14u\xfe\x87{\x02`$\x91\
+\x0a@\xd66Y\xd7\x1d\x01\x7f\x07\x00\x9c[\x8c\xda\x8f\
+U\xfb\xef\xf5\xbf\xf3\x7f\xbaV\x92\xb8\x82=\xeb\x81z\
+cv\xd7\xf7\xce\x0c\xf0~\xfe\xbe\x03\x00\xfd\xbb}h\
+\xbdh\xea\xf8\xfc\x9eO\xc0\xdf3\xf9\x18 \xbd\x0d\x9f\
+\x9f\x9d'\x0c\x02\xaf\xefs\xfa{\xaf\xd7\xbb\x1eX?\
+\x89I\xbf\xe7\xf9z<\xe8{/\xd1\xe6\xaf;7\xfe\
+\xdez\xf3\xefh\x22\xf1\xa3\x88\xb8\xfa;\x09i\x1a?\
+\xe2a\xe7\xc1s\xa6$\xe7T\xd5\xa8\x84\x8a_\xea\xc2\
+\x10;H'\xf5\x7fZ\x00\x1c\xec\xe1\x0e|t\x0a\x8c\
+| \x0b\xa32a,\xcb\xfb\xa7\x83\x7f\x89\xb5\xbd\xcb\
+\xf2\xb1\xaf8\xd5\xd8k\xd3\xd7E\x18>\x13u\xe3y\
+\xe3\xcc\x22~\x0e\x16q\xac\x81w\xfc\xc3\xc4\x1c\xf8\xc0\
+\x12Zn\x0b\xcf\x90\xb9\xc0\xc7\xf5t\x9d\x5c\x5c\xa36\
+\xeeZ\xc7q\xd6D}\xb2q=W\x17\xab\xf0:\x00\
+\x82\xa6\xee_\xc8\x0c\x8ad\x17\xd1\xf0\xfa^\xcf\xeb\xb7\
+\xb6\x17\xd5\xe7\x99j\xb7\xbf\xb7\xb0\x0e\xa4\xc0\xdbEL\
+5\x9d\x81\x96q\x0cet\xf7\x1dcLT\xbf\xab\x15\
+\xb5z5@\x11[\xab\x00\x8b\x03u\x9f\x04\x08\xf6\xc3\
+\x8dR2\xc2\xe0\xa6op\x19\x14\x07\xe0-1\x88o\
+\x8a\xc1\xb3/P\xa4\x89\xc1\xc9\xec\xb8\xc0\x19\x125\x95\
+\xfa\xfd\x02\x18\x9e\x96\xda>\x06\xda\xfee\xe0=\xe7\x0b\
+\x92\xd9\x22\xde\x22`B\xe5N\x9b\x1c\x94\xc2\x0a\x84?\
+\x12\xea#\xf1\x1f*\xd8\xa9M\xad\x1aX\x99r\x0ee\
+.\xf2\xddS\xc68~\xff\xb71\xa6L\xf2/\xa6o\
+m\x0c\x92\xb6'\xbb\x17\x8d1]@\x02\xd7\x04\xac\xe5\
+\xc8\xa5T\xa1\xda\xce=d\x8c\xe9\xe2\x96\x11'\x9e\x06\
+\xe9\xd5/\xb7\xb7\xd7\xd1~\xe5\xd9c\x9c^c]H\
+\x22&\x8fZ\xfcP\xed8\x84\xfb\x9f\x1cc\xca\xb0E\
+#\xe2\xe4\xc9'?s\xf23\x8b\x83\xbd\xae\xc7s\xe3\
+8\xa3\xdc\xb98\x9c\x1f\x0eD\xd6\xafJ\x1d \x9bD\
+\x990B\x048\xd9\xe7%v\x96\x0b\xa5\xd4\xd8\x892\
+\xc98jo\xe6\xe2\x06x\xe9F\xe0\xa2C\xd9\x8ba\
+-\xc7O\xdb@\x80\x82\x00X&*\x0ete\x8c\xcc\
+\x1b\x00\x8f\xe3\xc0\xc1{\xd8\x18\x13\x00\x10G\xb4\x98!\
+\xa8\xff\xf6\xb1\xf9\xe3p\xb3\x97\x02$\xfd\x9c\x05\x94\xd6\
+\x1b\x93G[M\x22\x96\xda5\x09\xa8\xd9\x0b\x1a\x11\x1c\
+:\xe7\xcd\xebc\x08\x00\x8ac\x7fj?Z\x1f\x0e\x0f\
+\xea\xae\xdaS\xaa\xd9(\xda\x98I\xba3\xb4\xda\xd5\xd2\
+\xb6\xe8]JP\x99\x7fm\x8c\x0d\x88\x01t\x95\xca5\
+\x07N\x1bD\xe2\x97\x111,\xea\x1f\x80\x98\x18\x9e\x0c\
+\x9d\xf3E\x5c+5v^\xbf\xda\x0erh\x04\x96\xce\
+\xc5\x9d\xc7\x98j\xf8\x017\x00\x1e\xeb\x90\x80\xcb\x05^\
+m\x17\xb5\xa3T\xb3\xcc>\xca\x18\x03\xf4\xd8\xb7dZ\
+\x8b1\xc0A\xe50&\x90-&\x8aR\x1d\x22t\xba\
+\x5c\xa4}V1\x22\xder\x5c\xcd\xb7L\xfb\x0a\x00\x9f\
+.@E\xfd\xe7\xf8\xb9'9|\xf9\xbb\xfd\x13\xc6\x98\
+j\x90{\x17\x1a\xf7\x19\xd1>]\x1e\xdc\x97\xf6\x15\xb5\
+\xf6\x87D\xfd\x9e\x9fB\x93\xc29AQ\xc6\xdc\x88\xe3\
+Vv\x83\xbde\xf7\x01'\x02A\xe7T\xc6\xc9\xf3\xbe\
+*m\xd0h\x9d\x8cB\xca\x9bn\xb5\xf3\xb5?#\x12\
+\xb8{\xc2\x18\x13cH\xed>\xd1\xc90T\x0a\x80\xd2\
+\xc5#L\xc5\xc3\xb5\xc7\x98\x98\x1f\xb440Z\x9a\x18\
+\xdd1\xdcZ\x81\xeb\x7f\x1ac+\x0d\xa9y\xe6\x07&\
+\xf0\xd9\x7f\xf3\x18\x13\xd3HIC\x12\x08\x98\x08D\x91\
+\x0b\x00C\xa5'vG\x8b\xc0yB\x9dw\xbf\xa0\xc2\
+\x13\xf5\xcc\xe7*M\x12@z\xda?\xd7\xba(Y\x15\
+8\xd9\xcfD\x121\xd4\xdcS\x80L@q\xceI\x95\
+P\x01^\x04\xa6\xf6\x9d{\x8f\xc8#`I\x80\xe1\xdc\
+ZG\x00\x86\x12S\xef\x87\x89\xa2k\x8d\xd23@\x8b\
+\xc0\xcbztm+\x01\xbc\x9as\xdd;\xb4\xe3\x044\
+\xb7@\xa7\xfcE\x8c\x22\xf7'\x0d\x86\xf8\xa1\xd5\xb5\xc3\
+\xe7\x15\xd0\x13\xe7\xc3\x8c\x05\x18\xbb\x97\xc3X<\xdc)\
+\x80\x8c@\xea\xbf-ck\xdf\xe8\xde\x03\xe4Z\x7f\xc0\
+#\xf1\xe0\xc6$\xaa{X\x00\xe6>\xc6h\x00\x9c\x0a\
+\xd0\x05\xb6\xfe\x8e\x1f\xc9\xbf\xc4\x80\xc0\xd8\xc2d\xf1\xef\
+]\x1c\xb0Q\xc5\xeb\xfe\xe5\x9f\xc9\xfc[\x9f\xfeyz\
+bF\x89\x87\xd7w_[\xe7\xa6\x15R\xeb!\xf0\x95\
+\x10\xc9\xb9*m2\xfe\x0e\xf1;\xf3\xc7>\x8a\x87\xf8\
+\xe5\xf6\x89\xc0\x95=\xb5~\xe6\xbbS\xd7{\xad;-\
+3\xef\x0b\x10p>z\xc9\xf7\xc5\x01\x00\xbd\xcf\xbd{\
+\xaa3\xbd\xbb\xd8\xbb\xfd\xed\xb9\xcd\xa7\xbf\xd3\xcd+]\
+\xd4*\xe0\xb6\x0e\x1d(hm\xe0k]\xec\xa3\xa6u\
+PT\xfd^\x9b\xcf.\xf1+\x95\xa6\xe6\xf9v\xae\xb6\
+\xd1\x00\x00 \x00IDAT\x0a\xb0\x0b\x93\xa6>o\
+\xefV\xc7\xaf\xeb\x0c\x02?\x03\x14\xec\x9b\xd6\xc6\x1c\xc0\
+|\xaa\x1e$H0\xd5\xd2\xca\xbc\x8e\x9a\xad7N\xb5\
+\xd6\x9f\x5c:\xc4o\x17](\x90\x15h\x12\xff\x1b\xc7\
+\xffs\xa6\x89\x1c\xee\xf4k/\xa2\xbf\xbb\xdf'\xbfs\
+\x99\xa5\xd3\xfb\xa6\x8a;(\xa4\xff\x9c\x8b\xf8\x0ey\xff\
+OLm\x08-\x88\x85Z\xbc\x93\x89\xca\xcf\xe0\xf9\xbb\
+\xb4+,\xea\xc4\x98\x96\x1b\x04\xc88k\xa2\xd4\x0e\x06\
+\xc1\xa7S\xc2\xf0\xe5\x17\xd1w\xd1Bx}\x86\xc5A\
+\x10\xc8\xb7\x1a\x90\x12\xa7\x8b\x88M\x1d\xc8.:\xe1`\
+\xf4\xb6\x82\xef\x0d\xe2\xf7\xa6\xb5\x96nw\xe5\x88\xf6m\
+\x07g}\xbe[\x87\xc1\xe0\x02rq\xd9\x18\x90p\x01\
+^\x10\xe2\xdd\x7f\x1bc\xa2\xfa:\xa82_2u2\
+k\x97\x1bcy\xbe\xd5\x91\xba \xf3\xe2\xf9!S6\
+\xb0\xf7M\xdb\xc0\x12\xbbs0\x18l\x01&\xea\xa3L\
+/\x046\x9fgw\xf3\xb4\xc3;;53\xf6\x97u\
+a(o\x1a\xa4\xfa\x8f\xa2:\xebb\x8a\x01>\x9a\xcb\
+\xd5a\x89\xc3\x5c\xf3\xf0\xc9\x00/D\x92dxb\xe8\
++\x93O\x0c\xec\x01iC\xa5O\xfc_\x8d1\xa9C\
+G\x14\xa8~O\x86\xe11\xbb\xc7\xee\x1e;\x05\xf0O\
+\x1ec\xa2\xd4\xa1\xa0\xf66aj\xd2\xd4Z>~\xd5\
+ \xa8\xdag\xe7\x94v\x83\x1aS\x0e\xba\xf5E\x95\xef\
+\xdd\x12P\x86\xd5NC\xe4e\x1c\x04\x06\xce\xc7w\xad\
+\x94mbD\xfb\xf7\x8cq|\x9dg\xac%\x11'\x7f\
+9\xc6\x92\xa1[U\xb3\xe3\xc0\x1d\xff\xff5c\x97>\
+\xdf\x95\xf1g\xd0\x9d\xd7\xd8\x8br\x94d\xd8\xd5\xe6s\
+\x00\xed;L\x02\xf3m\xff\xbb\x98]\x14\xd4\x9e\xbd\x1f\
+$\x15\xa5X\x09\x81Zb\x19n\x80\x9a\x12\x0c\xed\x0b\
+\x01e\x9eG\x00\x9fv\x8e\xc4\xc7J\x8c\xaf\x89\xba\x14\
+\x15?\x0ek\x05\xc4\xd6\x11\x03\x83}\xe5\xc8\xf8\xf7\x07\
+,\xe3\xf4\xcc\x81\x8b\x8a\xbdTR\x92\x9a\xeaj\x0f*\
+\x83\x96\x9a\xdd\x12qC\x81\xed%\x14\x02p\x813\x0a\
+\xa8\x0cQJ;*\xa0\xb3\xdf\xfc\x1e\xc4\x1aE\xd3\xfa\
+\xb8W8`\xe6S\x86\x98\x96\x8c\x0c5f\x10\xf1O\
+\x8eJ\xd6\xa7\xce\x97\x1a`\xf6/H:U\xf6\xca\xfc\
+\xa0\xcc\xca\xe0\x06\x88\x92\xc9\xad\xe7\x89J}\x01J\xa8\
+\xed\xecVc\x8a\xe9BR\xf6\x04 \x9d\x00T\xfb\xbe\
+\x02b\x88\xc6q\xb88\x9a\xda\xad\xe9b\xe0\xdf\x89\xd4\
+\xfe\xc2\x18\x93h\xa8\xf3.\xc3%pbg/9\xc6\
+\xe9\x0c\xaart\x94\x04q\xd8\x95h``x\xbd<\
+\xe7\xee\xb2cd~\xbf4\x01\xca\x97]\x84\xa8-\xbb\
+\xce\x1f\xc8\xeb\xee\xdf:\xc6d\x0f\xf8\x0d\xb9\x0f+\xf0\
+'\xbah?\xda\xd7\xa8\xb52:\xad\xad\x15 \xe4\xe4\
+\x96c\x9cN\x81/\x87z\xf8\x01_1\x95\x00\xa4\x0b\
+A\xedK\x89\x02~\xc1\xd6\xcdh\xdd\xe7\xda\x94]\xe9\
+\xf8\xf4W\x9a\xd4\xef%,\x92Q-qH@\xc5\x90\
+ \xfe\xc4\xe2\xb8\xddj\x06\xecKs\x00%^\xdb5\
+\x0c\x14L\xaa\xd4R\xef_1\xc6\x06\xdc\xa9\xd5\xde\xdd\
+)%\x8e\x98{>\xbf\xfb\x13#\xc8\xfd\x1d\xbf`\xff\
+\xfe1\xa6\xf6e#ar\xad\xa9\xcd\xa8\xda\xef\xa8\xc2\
+\x97\x06\x06\x00\x0b\x80\xc2A\xe7\x90\x07(-\xe6\x0d&\
+@\x188u?+\xb5\x02D\xfd\xfc\x18\xdb\xe7-\x7f\
+\x02\xf3EF?\x99\xe2\xdd\xaf\x8f1\x01,\xd9\xf7E\
+=O\xe6Xm\xfd\xee\x87\xc6\x98J\xaa0<\x00\xb6\
+9\xff%~\x0a\xe8\xb0\xee\xfc+\xa5JD\xdd\x88P\
+Ry\x07\xc4\xb3o\xb4`P\xfe\xddk\xd6\x87=\x97\
+\x88\x08\xe3\xa7D(\x05\xf2O\x1fc\xf2\x13\x01\xdc\x80\
+E\xcc0\x81\xb3\x84\x93{\x1eP\x8dA\x07H\xe1_\
+\xf1w\x9d\xeb\xeb\x07\xe0\x04\xb0Y\x07\x80d\xda=\xd6\
+\x17\xbf\x17#\x82\x9f)p\xf7] \xc6\xdfv\x8f\xf5\
+\xf6\xb8\x9dj-\xc3n\xde\xba\xdf- \xef\x22~\x80\
+\x07\x7f\x0f\x902\xbf\x02[v\xc7\xbc\xda\x17y\x9d\xaa\
+\xbd\xe6w\xf9=\xaf+a\x84\xa1\xe1\xf3\xf8|\xbd\x94\
+\x16\xc0\xd0\xdb\xfb\xb9\x0f\x89\xe3\xce\xed\xd5\xdf<\x05\xba\
+]\x8c\xae\x8blw\xca\xba\xc0\xdfs\xcd\x09\xde\xb9\xc4\
+\x99\x96\x02\xc6\x06\xbf\xa3k\x03\xf8\xea%G\x1d\x10p\
+_y\xbf\xfe\xdc\xd6\xb33\xad\x1bC\xb7\xe2Y\xcc\x07\
+\xafC,\xf3\xe2\xb4\xd7\xac\xafD\x87\xd7\xf5~~\x8f\
+(* \xc8\xe7v\x1f\xf4/\xa5\x1a\xf6\xb1{/\xa5\
+q\xe5\xff\xe7\x9e\x00\xdcW\x82\x11#U|'\xd1\x85\
+\x11\xe8\x9e\xb4\x9e\xe6\xdf\xbc\x06P9U\xaa\xbe\xa3\x96\
+\xeb\xfc)\xe0\x1d\x8f\x7f\xde$\xe6B\xf5z\x88\xcc\xdc\
+`\x0a\xf0\xb5\xfb3A\x02m\x08\x10\x04z\x04\xe4W\
+\xcb\xc5}V\xda:]g:\xf8\x80\x85\x8f/\xe4\xf0\
+\x0b\x1f\xd4\xf7\xe7b{aT\x94\xbf\xa2\x05\xcc\x9f\x9c\
+\xfe\xee\xf2\x8bN\xfd\xd6\xad\x00\xe5L\xfbB\x19\xc4A\
+\x1d\xbfI2%\xb7\x9bJ\x0bz;\x0a\x19\x8c\xae9\
+\xa0f&T\x1em\x96\x8a\xba'\xf0\xb7\xb1 Pj\
+|\x1dPm?\xb4\xb9b@{\x8d\xac\x83\xd1\x11\xac\
+\xd7\xc7`8\xa8\xa1\xb0\x1d\xaf\x9f\xb56\x5c\xa0N}\
+_\xa6\xc3\xbf\xdfz\x8c\xe3\xf7\xf7\x8d\xb19N\xa5\xee\
+\xcd\xa1O\xednQ\xdaQ6\xd5\xf8\xdec\x8c\x8b\x10\
+;\xfc`6\xb8\x8c\x04\xaa\xdb\xcb\x1aE\xd2\xc64_\
+\xf6\x13\xc3\x8f\x12\xfb\x8cd\xb8n\x1c\x11\xb6\x9f[3\
+\x1a\x959T\xe3K\x94\xf1J\xe9\xee\xf0\xc0\xd5\xe1/\
+C\x90\xcc\xde\xeef\x11\x9bB\xc9\x0c\x82}\xf8\xc5d\
+\x92\xef\x996s>\x8fvPJ\x08 \xb0\x01\x12\x0a\
+\xe0\x91\xe1\x15\x18\xa2\x18\xca\xc0C\xc0\xads\x0c9F\
+@\x89Y\xb9H\xac\xfb\xc7b\xf0_\x1dG\xff\x05\xc9\
+\x94\xc8\x5c\xe599HU\x83\x0a@rQ\xb9@\xec\
+7\x01\x06\x83\x8cB\xfb\x90U\x94\xed\xe8\xc4\xad5\xb4\
+.\x12\xb5\x9b(\xeajE_\xbc\xff\x93\xfd1\x10\xdb\
+\xbfy\x8c\x89\x8a\x98\xb6t%\xd2\x06\x89\xfcL\x0c\xa9\
+y\xc4<\xe0x\xcc\xe7\xf7\x16S`\xdd\xda\x10V\x80\
+\xde\x80\x91\xb2\x13\x1cQ\x99\xfc\x00\x0a\xd5\xfe\x8eA\x8f\
+\x03[5\xb8\x9d\xe2\xcb1\x03\xa8AV\xed\x0f\x0e\x8c\
+\xf6I1\xecE!e\xf0e\x040\x0e\x18j\x94\xd8\
+P\xa1\xabM\x98\x8b\x0d\x95\x13\xf5\x14\x80\x91\x8b\xa3\xb4\
+!t\x15@\x91\xb5\x0f\xcdGG\xe2}\xce\xae\xee\x0b\
+\x90\xe3\x18q`0R\x00\xb5\xc9\xb0WF\x10U\x1c\
+U\x0d\xb0\x81I\xa0\xb6\xfc\xbacL\x22\x98\x11c+\
+\xad\x02\x99\xc1\x9eA\xe0\x90\xb0\x0f\x1c\x02\xeb\x1a@\xa0\
+4-\xd8\x17\x0e\xd2s\xc6\xd8\x00\xb3\x02\xd2\xa8\xe3\xcb\
+\x10&\xb0.\xca\xb7\xfd\x95Z\xd5\xd3\x80K\xe7\x95\xa3\
+\xc6\x91t\x01\x0b\x5c\xe3\x10\xee\x9e5\xc6D\xcd&f\
+\xa6=\xa3\xcc\xb5\xf7u^i3`n\xd1pH\x06\
+\xaf\xa8\xffM\x94\xaa\x1c|\xf7\x19f\x065w\x81\x86\
+\xd2(v\xf5\x0bRz\x86\x11%!@M\x1d\xf3C\
+\x0d.,^`\xa3\xdbB\xba \xb8\x7f\x04\xe0U\xc3\
++\xe3\x1cq\xbb\x02\x8ceT\xecw\xe7/\x81w\xdd\
+\xa7\xec\x1b \x04\xd5\x1cS\x88_r\xe6\x18[\x00\xb8\
+\xff\xa616\x11\xc8\xd2\xfeA\xbd\xa4\x8e\x8e\xd9\xf3\xf4\
+el\x0e\x1e@L\xa0d\xbd\x88Qj\xa7(\x80w\
+\xef\xff\xc0\x18\xd39\x02,\x01\xc0\x06\x8f\xf1\x8dK\x06\
+\xf9\xc7F\x06Y\x09\x85@\xaa\xdas\x12\xc7\xbb\xe2\x18\
+\x93VC\x00\xbb\x0alQ\xa5\x01ZY\x9f\x93\xc7\x8c\
+1i+\xd0\xf4\x01\xfca\xde\x08(s\xcf\xee\xbfa\
+\x8c\xa9\xb4\x04\x00i\xff\x87\xa1Q@\x11`\x89}v\
+o\xb2\x1f\x01B\xf6\xbf3\xc6\xd2m\xe28\xa6\x0c3\
+\x80\xee\x09cl\x0c\x16v\xa5~\xc6paG\xac\x9b\
+\x12\x03b\x93\x80\x03\x8c\x97\x88\x04\x1e\xfd\x8a\x15P\xbb\
+\xc1\x85\xb5w\xaa{\x11\x07\x5c\x868\x14\xf8\xd2:!\
+\xca\xe7\xfc\xbb\xbf\x05\x9a\xb1\x1be\xc7\x7fn\x19\x1b\xb0\
+\x80\x91& \xc4\xa8boz\xe0\xe7\x5c\x08Xe\xd2\
+\xf9\x17\x806~\xa8\x8c\xb9\xfb\xc7\xe7`\xdf\xd9S\xf7\
+\x1a\xc6\x02\xa0\xa8S\xdb\xdd\xdba.\xd6|G\x04\xfa\
+\xf0+\xd1\xfe\x083\xa9\xceM\xebo^\x19\xfc.:\
+l\xde\xbc\x1f\xff\xf7\x83cL\xf7CS\x81\xaf\xe7\x00\
+P\x12\xc9\x8e\xc6S\xcf\x18\x173\x85\xbfFt\x11 \
+\xe1s+\xcd\xec\xf7\x12\xfb%#\xaf\xc4\xc0z\x08H\
+\xdd_\xb4\xaf\xb4\x09\xb5~\xf6[\xa7\xcewm-\x00\
+\xb4\xb8\x03\x10\xdf\x99\xc0\xe6\xbb\xd7\xc0\xb3[\x9d\x89\xec\
+\xfe\xe7\x17\xd9\x0f\xe6\xd1\xbc{\xdd\xfe\xfa\xd6\xc1\xeb\xfb\
+\x1c^\x07 ~q\x00\x80D\x9e\x7f?\xbdm\xe9\xba\
+\x8f}\x0e\xcf\xefu\xfd\x9e\xae`\x98-\xee\x07\xfeT\
+\x17\x03\xf49z\x8d\xbf\xfb\xdd9k\xb5\xfd\xd5\xe5\x81\
+\x1f+~\xe9\xcfe\xfd\x00\xbc\xce\xa5u\xfap\xeb\xfe\
+\x05\x18\xe0WaLi\x7fM\x9c\x99\x96K\x17Y\x07\
+\xd8\xb0\xfb\xe2\xa2\xc4\x05\xa7\x0a\xd1\x1b\xe6F\x7f\xca\x0f\
+LH\xdb\x1c\x90\x9e\x91\xda\xc3\xf3\x92)\xba\xe5E\xa8\
+\xb9\x8f\xc7\xb9q\x0c\xc6M\xa7\x0f\x92\x0f^\x08\x85\x8b\
+Af\xf1F\x0by|\xfb\xd9s\xc9\xd8E\x84\xb0\x10\
+\xf39\x90\xbf\xe9\xa4M\x80\x190\xf2r7O\x00q\
+\xf6\xd4\xfe\x8aJ\xae\xcc\xd2\xf8\xbbkN\x9f\xb3\xb7\xa5\
+\x10\xc8s\x9cQ\xb2\xfc>\x03\xe3\xf7\x1c\x98^\x93\xdf\
+\x91<\x1b\x9f\xe3FsA \xeds{}\x07\x80\x01\
+\x94\x11\xb5\xc1<\xdf\xe5\xb2\x1e2\x7f6\x1cC!\x83\
+\xc7\x90\xeb\x03/\xb0Ca\x91YAM9g\x8c\xcd\
+a\xa8\x0c\xb9L\xa3\x0b\x1f\xa0\xe3\xc0\xf4\x8c\x88}\xf2\
+\xae\xccK\xfa\x0f\x1f\xe7b=\xf8\x97H;\xa8\x1fO\
+\xa6\x00`\xf25cL\x99\xd4\xb4q\xe2\xa0\xa8=.\
+1\xad\xeb\x05P\xe1\x88]\xe1\xc2\xd4\x98r\xecS#\
+XTB\x17\x846z/\x0c\x22\xef\xf3\xc8\xf4\xcbd\
+8\xe8\xc4\x80\xd4`\xc9\xec\xc5\xf0W\xa9\x82\xdf\x178\
+s\xfce\x94\x9c\x0b\x0e\xc2\xf3W\xaa\xe71\x8c\xb9\xdb\
+\xeen\x0b0q\x1c\x13U4\x81H\xf5m\xff\xdee\
+l\x19?\xfbX`\xe2bc\x981~\x9c\xb7|\xaf\
+\xcch\x0c\xd2\xeeN\xa1(_6\xe7\x99a}E\xb4\
+\x19\xb2\x8f\xf6\xcf\xda?s\xff\xcc\xe5\x22_\xdb\xa9\xe5\
+\xf3\xee\xde\xb1\x96<T@/\xf3\xf1\xba\xd5\xc1\xd9}\
+n\x13\xb9\xb4\xbf\x19>\x19\x5c\x8e\xa2~\xf5\x80*\x81\
+5\x03\xd73\x05^\xd7\x05\xc0\xf0\x0b\x80]\xa0\x02;\
+\xff]\xc0\xafo7j\x1d\xea#\xa0R\x06\xd3|[\
+g\x99\xddPZ\xab\xcd\xa06m\xa8\xc2\x80\x0c\xaa\xcb\
+\x18&2O\xf6\x8b\xc0[&B\xe0\xc3\xf0\xcbhq\
+\x88Q\xc3\xbd\x8f\x8b\x8d\xdd@y\x95\x91c\xa7P\x11\
+Q\x22\xffb\x8c\xa9K@\x80\xddz}H8\xca\xbf\
+n\x12\x98)\xa8\xd4\x02p\x99 \xaa\xf7C\xb4\xec\xfd\
+\x8b\xb6\xc1\x93\x97\xee\x1d\xef<\xda\xc3\x01\xa4\xbdx\xf7\
+\xa2\xdd\x8b\xa7\xcc\x98\xc0Q7\x0b\x19\xffP\x8e\xcbQ\
+\x05\xf4\xc9\xfc)] \x9aI\xe5\x1e0\xc2N'\xc3\
+\xa9D\xe0p\xd6\x18S\x8d\xb6\xd7\xc7\x18\x11\x10\xc8\xa8\
+{\xbf0}\xea>\xc8\xf3\x08\x10\xaaT\x84\x18\xe7\x7f\
+\x19c\xeaf\xf0\xc11&\xaa\xba\x00\x80c\xc6aF\
+=\xe6P\x00\xf6d\xb09\xd4\xee\x8fF\xed,1;\
+\x22\x97qd\xaa\x14\x90]\xe7\x98\x01\x12\xbb\xe3\x9eZ\
+\xfbz\x1f\x01\xae\xd2)\xcf\xa3\xdf\xbb\x9a\xdf\x00\xa6%\
+:\xa6\xa6\xd1\xf9N\xe9\xc7\xfe\x1dcL\xf7\x96\x92\x8b\
+\x00{g\xfc\xf426;\x8d\xd1\xc0\xb1\xe6\x989\xa7\
+\xec\x02\x8at~&\xc2Xm\xed\x02\xa8\x15\xa3A\xc9\
+\x96} \xf0\x93\xf1\x05Tp\xdc\xf8\x199gC\x19\
+eh\xa3T[Ev\x02e\x1c\xf3F\x00\xc9!\xc7\
+\x98Q\x1a\xe7\xbef\x17\xc3P\xa3\x8e\xef\xbc\x01\x1e\x86\
+\x94\xed\x10\xb3%~Wj\xd1\xe9~\xb1\x7f\xc4\x18\xdb\
+9\xacn\x097\x1ec\xba\x9f\xec{\x0epJN\x0a\
+\xe0\xd0\xd6\x0f\x10\x1d\xc6O\xed3\x80\xa9\xfd\x8f\xd1\x95\
+@\xa9\xf6\x91{\x1b\x83\xc8>K\x80n\xbd1\xc6*\
+\xc0\xe2/\xf1k\xa2\x99\xa1\x94\xa8\xba\xb9\x00&\xdd\x8b\
+\xda\xfa\x12\xe1|l\xa8\xea7\x1ac\xd3\x9e(\x86\x0f\
+\x95n\x80\x1a\xed\x0b\xc0\x846\xae\xfc<b\xa3J8\
+\xb5[\xee\x1a0j\xd8\x05\xe6J\x8d\xcc{\xcf\xcc\xb6\
+6o\x87o\x18c\xd24\xc1\x9cq?(\xa9\xc3h\
+\x94\xc9\x07\xa4\x06\x80(\xbb\x91\xdf/\xad\x1b\x01\x10?\
+Q`\xa5$K\xf7\xa2\x9cs\xdd\x5c\x8a\xc9\x10?\xb7\
+\x98\x1f]\x1bK\x9bd\xd4x\xdf\xd9W5\xf6\x02@\
+\xf3\x22\xa0\xf6\xbduW\xa8\x92,L\x08\x81\xb8\xf7w\
+\xef\xf9w\xeb\x02xP\xaa\xd1E\x02\xcd\xc7\x5c\xaa\xfc\
+\x99\x8bPu\x17\x88\xb9\xbf\xdd\x83T\xeb\x01?\x00\x18\
+\x99i~V\xfc\xd2*MR\x9a\xe1\x0b\xd3\x82]\xc6\
+\xccd\xbf\xc5\x01\xfc\xf1\xaeE&\xf0\xe4\x17\xd8_-\
+\xb0/\x80D\x1c\xe2\xf7z\xc9\xb2\xfd\xcc\xef\x17H\x03\
+\x02\xdc\x8b\xee\x95\xaeY\xc6_\xf3\xdf\xbb\xd6\x99y\xf7\
+z\xec\xb9\xf8\xc2\xfd\xc6\x1e\xf3\xfb\xf8\x85>'\xbf\xa5\
+\xc7i\xbd;\x00\x80\x08\xf3\xc3\xf3\xf0\x1f\xed\x1b\xdf\x01\
+A\xe6\x97\xbd\xe4\xd7\x8a\x17}^\xfb\xc4\xba\xbb\xc7\xc4\
+q\xd6\xd7}'!F\xe4\xb3w\xbf#\x8e\x98n^\
+\x87\xab\x8eq\xfc\xfd\xe7\x8e\xb1\xc5\xcd\xa7J=\x98\x18\
+\xde\x08\x9co6\x05\xa0\xdd\x01\x90)\x1f\xdb\xe9\xb2\x17\
+\xa1\x82/\x10g\x88Q\xb5G\xe6\xee\xd6\xd3\x07\x10\x08\
+p\xc0 \xe7\xe3\x7fo\x99\x07\xbc\xd9\x94\xc9\xd7\xb6\xcf\
+\x84\xb9X\x87V\xf5\x13&\xe0B\x00J\x9c\xd0\x025\
+\xea`=\x1ffB\x07\x00\xba\xca\xb2\x8d\xd03\x81\x02\
+'\x7foa\xfd^\xcf\xb4\xf92\xaf\x16\xd6\xe7\xb2A\
+}\x0e\xcfcc$p\xaa\xf9\x120r8\x01(\xde\
+\xcf\x01\xe6\x98\xe7\xe2\xaaLL\x1c\x0f\xed\xb7\xea\x00\xa3\
+\xaa\xfe\xcd\x18\x93\xa3\x02\x994\x1f\x9f\xcd\x81\xfbD\x0e\
+To[\xe399l6t\x17\x0bI\x7f\xf0\xe3\xf5\
+\xb9\x04.\x87oKF\x01`\xf2#\xcb\x18\x99\xa45\
+\x83\xf0\xafa\x14h\xcb\x17\xcao\x89\x04\xbd$*\xf1\
+\x0f\x1dc\xa2X\xa1V\xa7-]\xd5(]b}\x9f\
+\x93\xcf\x1bc\xa3\xa4/\xe1\xc8\x08H\xfev\x8c\xa9V\
+\x17\x854\x14LbN\xe5\x18\xb8\x98\xff,H\xb1\xcc\
+0J\xa0uu\xe1\xa9\x05\x95!\xd5\x0f4\xed4\xfd\
+\xdd\xc9\x17\x8e11\x11\xbe?\x19\x9a8b\x95\x11$\
+~\xe3\xa2\x14\x80\x02\x22\x9c[\x0e7\x83\x08)|X\
+\x80\x045{\xdf1\xc6\xe4X\xd9\xbf\xdf\xbb\x06\xc2\x17\
+<x\x8c\xe3\xf7\xab\x8e\xb1<\xdf\x820\x9e\xec\xc7\xd8\
+\xdaz\x150r\x9d8x\xba9<=\xaa\xc7\xf6\x15\
+Q?\xf3m_\xdf\x22\xe7\x1eU:5\xc5\x03\x1e\x19\
+\x00I\x89\x82\xca\xb0b\x0c\x00n0\x05\x18X\x94}\
+\x80\x0f\xc3\xedBv>\x01\x9d\xce\xa5\x0b\x03\xd58\x01\
+i\x01\x8c\x80\x8b\xcc/\xe0\x92\xe3Ym\xe2\xfc\x9e\x1a\
+L\xd4\x5cm\x9b\x04\x122\xa1\x11\x81);\xd1\xa9\xc7\
+\xecH\xc4\x06\x0f\xb7\x1fc\xca\x98z\xfe \xf4\xbb?\
+\x1c\xe3\xf8\xf3#\x96\xb1\xd9;%\x05..\x0e$G\
+\xa8uy(\xc7\xde\xbaE\x83\xa2\x02K\xd4\xf08l\
+\x1cU\x17R\xbd\xfek\x8e\xb3\xf0\x9a\xe9\x22E\x1d\x95\
+\x91D\x85c7\x00Vj\xa2\xb5\x07UZ\xe2u\xec\
+W\x81\x1e@B\xadq\x18-\x95Y\x0d\x10C}\x5c\
+\xe0Y5\xcd\x1cl\xa2\xa9\xfd~\xe1\x90\x00\xda8\xc6\
+D\xd6\x88&\xaa\x99N\xc0\x05h\xad\xf6\xa3jn\x95\
+\x00q\xb4\xba8\x94v\x97\x1f\x1dc\x12\xb1\xe5 \xab\
+1&\xaa\xc6\xb1T\x93\xef\xfe\xe0p\xcb\x5c\x02\xd48\
+(\x18\x83\x11\x1f\xab@\xc7\xbd\xc4A&\x96Id\xd8\
+\xf9\xa2}\xc0\xcep\xc0d\xca\xd9\x19\x8e|\xb3\x03\xa5\
+\xa2\x9fR\x8cb\x22\x00\xb8Q\x97\x03X\x95\x88\x9a\x00\
+\xc79J\xdb\xb7\x12\x99\xd4\x9d@@\x84\xa2\x99\x12\x9f\
+\xb2\xdb\x9e\xf7\xeb\x97\xb1i*\x040\xdd\xfd\xe0\x18\x13\
+@\xcc\xce:\xc7\xb9\xc7\x0e\xa7\xc6\xd8J\xaev\xef\x1a\
+cc^\x15p(\x90a\x9f\xbb\x06\x11q\xac\xdb\xa4\
+[B\xee[\xea\xf8\xbb\xb7\x8d1\x95HP\xef'\xb6\
+(`w\xde1\x0f\x88b\xe5\xf7\xb4\xd3\xdd]0\xc6\
+T\x8a\xa4]\x9b\xc0\x5cW\x04\x8c=\xf7\x14\xe6U(\
+\xabu^\xed\xa7\x9c\x8b\xaa\xc9\x05\x8c\xdfs\x8c\x899\
+ S\xcd\x1e+\xa9\xd3\xef[\x89\x1b\xfb\x1e;E3\
+\xa9\x00:\xf6\xdb\xf7hy\xec.=\xc6\x06\x10\x96\xa6\
+B\xb4r\xd4\xf0\xdbw4\x15\x0a\xf0J\x9b\xd4j#\
+(aA\xcbG\xc6WF\xb93\x08_px\xe1\x00\
+\x88\x8baB\x9b\x05\x10\xc5>\xf3\xef\xfa\xfep/`\
+\x1a\x06\xf8\xa9\xfd\x07(\xc48\xe8\xed:\x95\x028\xcf\
+\x00\x03\xcc2Z\x134Qd\xe8e|\xd9\x0f?\xdb\
+\xc7\xee\x87\x88O\x97\x7f(0\x160\xb2\x972\xe8\x18\
+\xa3\x98L\x98F\x9d\x19f\x1d\xd9{\xfe\x02\xbb/\x93\
+\x0f\xa0\x918\xc4p\xc5|\xe2\x9f\xa0\xee\x03b\x94\xa4\
+\xda\x7f2\xe1\x02L\xeb\xe2\xbc\x0b \x05\x9e\xce\xab\xbf\
+\xf3~\xec\x12\xbf\xd9\xef\xdb\x0f\x80\x18\xe7S[l\xcc\
+>\xfe1\xbb\xdb\xf7\x83\xf5\xed\x99v~\x00{\xe6\xbc\
+\xc7\x9f\xae\xff~A\xf9\xf7\xeb\xcf=\xd0\xed\xa2\xd4\xe6\
+\xa1we\xea\xeb\xe4\xf9:\x00\xc0/\xee\x0c\x80\xceT\
+\x14\xf8c\x16\xdb\x8f\xe2/_\xbd\xb4\xfa\x9d\x95x\x5c\
+\xfd\xe2.\xe6\xd7D\xeaK\x14\xb0\x97z\xf0\xb7\x00+\
+\x9d\x99\xc8\xfe\x98'\x80\x81\xef\x128\xfcF\x89_v\
+\xd5\xfb\xf1+|w\xcf\x07\xc0\xa5-wZ\x17\x83h\
+\xb4\x10o\xad\x04*F_\xfc\xe5S\x15\xf8C\xb4#\
+\x82\xb7\xe4\x8bn1\x05\xda\xc9 \x95cuQ\x81\xfb\
+\x17\x04\xb1\xbd\xf1\x96\xd1_\x02\xb3\xebO\x99x\xea\xfe\
+&\x0e\x12\xe4\xc19\x1a>\xd0\x98\x8e/mj\x87\x97\
+\xbf\x08\xb5\xfc\xb1}.5m,\x8c\x06\x8e\x92\x8d\xd6\
+U\xd2\x87{u\x85I{\xe0b\xfa'V`\xdcE\
+\x18\x86y\xb9\xd4\xb4\xb06\xdc\xd6\xb7\x98.\xc1\xfa\xdf\
+{\xfb@\x81\xb1L\xb7\x0b&\x14\xde\xaa\xd1\x22\x12\x84\
+2(c\x89\xba\xcd\xe0\x91]\xecm\x06!vD\xf6\
+\x22\xfaX\x07\xc3\xf3\xa1\xa2G%\xbb2\x93\xe7Fe\
+\xf4\x89\xbb'\xed\x9e\xb4l\xe0\xd5\x80\xffK6\xfa\xbb\
+\x83h\xa6m\xa1\xf5)\x07\xed\x1f\xa7\xf9\xba\xf4\xe9\xd4\
+I5C\x0c\xf4\xfeG\xc68\xfe\xfd\xa7\xc7X2\xde\
+kM#\xe4\xf4\x9b\x83\xc8\x0b\x08\xb4\xe3#\x86w\xaf\
+53\xb6\x7f\xea\x18\x1bC\xa0\x0c{\xfa2\x13\xfb\xdb\
+=x\xcdT\xec^;\xc6r \x17\x80\xe4\xf0\x8d\x11\
+\xf1#\xf6#\xf3\xf9\xcbcL\x8e\x0d\x07\xcb\x05L=\
+w\x88h\xfd\xf6ra\xbdm\xb9\xb0\xceJ\x80\x80\xe9\
+@\x85\x5c\xe0\xe0\xe2\x87\x1c\x02\x96 \xb0\xb7\x18\xe3\xf8\
+\xbe_\x99\xcc+G\xf41\xa1\x98\x9bW\x17\x95\x00*\
+\x19\xc6\xe3\xa7YT\x89\xab$$m\x19\x0f\xcfI\x80\
+F\xc4Q\xa0G\xec\x09%\xcf>\x0dUu\x7f\xde\xfe\
+\x1f\xf7\xc7\x0b\xea\x82\xb3/\xb8\xcd\x05\xb7\xd9\x02\xa33\
+\xbfu\x8c\xe3\xfb\xfc\xea\x18\x1b \xa2\x7f\xb1\x0c\xfa1\
+,Xk\x9c\xdf\x96\x9a\xa9\xff\xb8pM_e\xfc\x9d\
+\x17\xc0\xc8w&\xc0\xb4\x1f\x1e3\xc6d7\x04<T\
+\xdfe\xd2\xd50\xbbp\x9c?\x17\xb0vh2\x062\
+\xc6-S\xb5\xfb\xda1&;\xc4\xb1C\xfdO\x8dg\
+1\x14Pk\xad\xb7\xc0\x1f`\xc4\xbe\xc9\x9c%\x90(\
+\x87\x8dX#s\x02\x89\x16\xe05\xea}\xd5\xa0\xb9\x90\
+\x00\x9e\xadm(M\x02%HU\xc3\x16{W\xf6\xde\
+\xe7\x0f\xc0V\xf7\x82s\x0e\xe0\x09`T\x01\xa4\xf7C\
+5\xd7^\x8d\x9d\xc4@\xc0X\xd1\x96\x8b\x86\x8b\x0b\x14\
+\x93\x86\xe8%\x00\xd3s\xb0o\x18>\x18,\x00O\x99\
+[\x99$\x0e\x94{!\x17c\x89\xf5\xe5\x5cU\xe0/\
+\x00\xc7\x10aG\xd2&\xb0\xfa\xf0\xdel\x8ci?\xb1\
+\xf7\x00o\x8e/\x0a\xa9\xee\x19J~\x00N\xce=\xca\
+)&\x80s\xd0\xef\xb1Y\xb3\xe7\x1f&*\xb2\x0c8\
+F\x91.\x1f\x1cu%*\x00\xa7\xb9$\xef\x93\xa7\xb7\
+\xd3,\xbb\xc4\xf1G9\xf5\xfb>\x9f\xfb\x1d\xb0c\x9f\
+\xd2,\xd0\xd5\x85\xea\xbd\x8c\x95{\x17\xb0\xd5\xefa\x0e\
+ )\x81{\xad\xaf{Q\x1bJ\x00\x87\xdap\xeb\
+\xa1\x9b\x82\xcc\xb5y\x05\x94\x01D0\xe6\x92\xe1\xac\x00\
+\x22\x22\x8d\xce3 \x04e\xbb\xce/G\x15\xe0\x92R\
+\xbab\xb0<d\x19U\xdb\xc9^\x16\xb3\xc3}\xa2+\
+I\xebk]\x19D\x00\xb2}\x040\xd7\xfdC\x09@\
+J\x1cJ\x94\x8f\x16\x06\xc0\x84\xc6\x8b\x00\x9d\xd8\xa4\x80\
+\xd6\xfe\xa0\x09\xd4\xc4\x17K\x85_\xa63\xefS\xe2\xa2\
+\x80zv\xc6\x7f\xff\x961\xa6\xdap\x9f\x97\xbdS\x22\
+b\x1fu18\xeb\xcb\x1f\xf4\xef2\xda\x00\x1c\x19{\
+v\x85\x1d\x12\xc0\xd3(\xc9\xf9\xa6m\xb0\x7f\xfa\x18\x8b\
+\x16\xcb\xa2\xf9s\x9c\xe5u\xbe\x9e\x1f\xd1U\x81\x88\xf9\
+P\x8a\x89Y\xf8\xbe\xb5;Q\x89\x05{\xff\xec\xfbj\
+\x8f\xfa\xa8\xe3\xa7\x7f\xd4t>\x9cS\xb5\xbf\xe6\x9f}\
+\xe0\xefz=\xfb\x1b\xd0\x85\x09\x96\xee\x03\x05\x94\x08\x80\
+\xf8\x0b\xfc?\x99y\x19p\xf7\x87\xee\x08\x18\x17\xd6\xc1\
+\x17\xc6\x86\xfb8\x01\xee\xe1\xfc1\xa6s\x04p\xf2>\
+\xbd\xb6_{B\xf7\x9b\xc0\x97\x1d\xc4p\x02\x08\x08\x5c\
+\x05\xca^G\x89\xa1\xbf\xc7\x04\xd1\xd6\xf1\x8b\xc7\x98\x80\
+%\x80\xa4\xd24b\x8d\x98\x0d\x80\x18\x80\x80\x00\x0dC\
+\xc0~3\x8f\x00\x00\xf7\xb0\x0cr\x18\xaa\xb5\x9e\xces\
+k\x0bY\xcc\x0a\x01\xbc\xfbM\x06\xbc\xb7\xcdc'{\
+\x8d=Q\xe9\xec\xbf\xfa\xfd\x06 \x9e\xc6d\xec\x8c\x86\
+V\xe3_\xcf\xebg\xbf\xef\xbb\x04\x98s\xda\xc4\xf2\xaa\
+\x84\x80\xf6\x0f-1\xe7\xb7'b{\x1c\xc5\x0fe\xff\
+0\xa2\xbc/\xc0\xc0\xf3{\x7f\xf1\x10\xe0\xcd\xef\x8bs\
+\xec#\xbfo\xbf\x01\xa6\xec/\x9fS`\xee\xdc9W\
+~\x0fPe\xfe\xec\x1b\xf7\xa7DM\x98\x9c'w\x1a\
+cbHu\xa0\x8fh\x7f\xee\xf9\xbao}\xc7\xd8\xfc\
+\xefcL%\xdf\xfe>~\x0dm\xa2S\xa5\xa6?\xa6\
+\xfb\x92S <\x8bh])\x17\xf9U\xa6\x0b]\x86\
+}\xb8\x95\xd7\x9a2\xe92\x06\x0c\xc2\x08\xcb\xae:m\
+\xbc1\xfd\xef\x8aay\xc7\xb4\xb0c\x1bN\xe2\x1c\xd4\
+\x87w\x7f1F\x1c\xdb\xebN\x1b\xb6\xb7\xf5\x9bU\xf4\
+gj\xc5,\xbe\xd4\xbf\xef\x1bueV\xf1\xa7)`\
+\xe2,8\x87\x11\x03\xe0d\xa9r:\xad\xb6\xb7\x9e\xcf\
+\xc2{\x8e.r\xe1\xf7\xfc\x1c\xca[\xf5\xf5\x96\x89\x10\
+\xd0\xa1\xea\xa2\x0cr\xcc P\x1c%\x07\x025,\x81\
+I\x01\x08\x1cJ\x17ID\x85*\xa3\xe5B\xa5r\xfd\
+W\xa1\xca\xa1V\xfe\xd5\x8a\x14\xef~n\xf7\xb3\xbb\x9f\
+\x9d\xc4\xae\x18\xcc\x9b'\xa3\xf3\x86\x18\xb2\xf7\xc7\x10\x94\
+c\x18\x0a\xd3\xdf\xa6\xa4\x83\x01~[\xd4\xb8\xa9\xf3\xa2\
+\xcc\x08\x0c\xa2)\x80\xeax\xf2\x811\xa6\xda\xca8,\
+\x95i\xfd\x9a\xc3\xfd\x0f\xf7\xdf\x90\xfa\xfd9c,5\
+\xd3\xab:\xf4\xc3\x0e\x0f=<\xf4\xf8\xfb\xe7\xaf@\x03\
+J\xfc\xc9\xdb\xc6\x98.X\xea\xed\xbf1\xc64o\x1c\
+N\x81\x97yGyKf\xa6\xa8\x94q\x10v\xbf\xb3\
+{\xde\xeey\xc7\xef\xaf\xda\xbdr\xf7\xca\xc9\x800<\
+\xe6\x9f>fj\x95\xf7O\xdd?e\xff\x94-P?\
+\xf3\xbecl\xa5\x01\x80\x8ac0\xb52m8X\xdf\
+\x90\xc0&%\x02\x95\xa1\xe2\xd0[7\xcf\xcf\xd0P\x01\
+\x07L\x84\xb2}\xc1\xd3\xc68>\xcf\xfb\xc6\xd8\xfe\x8e\
+\xbdR\x0aQ\x99ym\x1ae@\x89\x9c<'\x06\x90\
+C\x88rx\x871\xa6\x8b\x8f\xfd\x08\xc0U\xa5\x10\x1c\
+\xb6\xd8\x9b\xc3\xdbs!|l=\xb7\xc4\xbbJ\xdd\x9d\
+X\x9b\xdap\x81_\x10\xe4\x02\xbe\x18hL\x80\x86L\
+W\xe6VW\x0f\x0c\x1b\xfd\xc6}^Z\x06j\xb5\xb4\
+AcO\xac{\xec^i\x05\xc8l\xd1(\xe00\xb9\
+\x00e6\xad\x1b1\x18\x011\x87\xc9wv\x0e`\xab\
+\xa4 \x8eoe$d\xc41)\xb4\xdf\xa3)\xd1\x01\
+<\x0e\x1f1\xae\x9c\x8f\x12i\xe4\xf8\xa9I\xd6\x0dC\
+\xcd?\xe6\x8c\x00\x99\x9a|\xeb\xeeP\x99\x19\x19\x10\x14\
+\xd6\xdcG\xbb+\x8e1\x05p\x80\x1eb|\x98?\xa8\
+\xf8\xf6\x8d\xf3\x916J\xa5f\xae\x7f\xf4p\xd8F`\
+3\xbe\xce\xd8\xceA\x05x6\xbc\x0c?5x\xf3M\
+\x9c\x0b#\x82\x16\x82\x0c61\xc90\xe3h\x10\x1c\xee\
+4\xc6\xb4^\xd6\x9d\xfd\xdcjl\xd7\xf7\xd7\xce3\x00\
+\xcc\x05\xef\x18c\x02\xd6\xd5\x14'#\x80\x19\xb5{\xfe\
+\x18\xd3\xeb\xda\xe7\xd6\x03\x03\x81x\xa2\xee\x04\xeei\xfb\
+[\x89I\x1cTm\x1cK+\x87\xaa\xb6\xfb*%\x0d\
+\x00\xa1\x02\x80\xb5\xd1l\x0c\xbb\xc3\x93\xc68~\xdf\x8f\
+11\x87P\x82\x03\x10\x95]Q\xea\x94{N\x9b9\
+\x8c\xa0r\x88\x05z\x01\xb0\x0a\xd0\x89\x06D\x01;J\
+\xbb\x00}\xf6\x93\x8c\x0d?\xc1}m}\xdc\x132\xdd\
+\x11\xf9\x93\x919\x5cc\x8c\xe3\xf2\xfc\xfb\x18\xc7\xf7y\
+\xf9\x18\xd3\xf39\xdf\x18g)!\xea\xc0c\xed\x13\xf3\
+\x0a\xe8A)\xd6_\x1e\xc3\x02\xd3\x09\x80\xc3a\x95\xa9\
+\x95\xa1\xe2`\xa3\xdcr49\xe0W\x1bcc\xd4\xd5\
+\xbd\xa1M\x1f\x86\x96\xf6\x9a(\xfe\xfc/%\x84\xb9W\
+Jm\x1f\x83\x85\x1a6\x80\x100\x0d`\xb4\xbf0:\
+\x88N\xb2_JF\xd9\x1f\xa5g\xc4!\x1b\xd3H\x86\
+\xb92\x7f\xbf|\xc6\xaf,\xed\xe8\xd8\x9d\xb3\x0f\xb7>\
+\x8cR\xb0G\xe7\x9e`\xffhd\xb9?03\xfe\xef\
+1\xa6\xcc\xb9\xf6o\xad\x16\xbc\x18a\xdft\xc6\x83\x16\
+@TBA\x00%`\xe1\x1f\xf0#\xf9\xbd\xbd\xbd\x9e\
+\xfb(\x00Su\xa1Q\x22(\xd0\xe2_\xf9\xee\xdf1\
+u\xcd\x0b \xa03\xc4\xd8\x0b\x01\x12@\xc5}\xcd~\
+\xf3+\xbc\x8e@\xcc>S+o\x1f\x02\x90\x04\xd0^\
+\x07\xe3\x8e\xa8\x9e\x80\xb7\xa9\xf8\xd7\xba`l\xe9\xf2\x82\
+\x01B\xd3\x02CC\xdbV\x8c\x03\xf7#\x0d\x90^z\
+\xd3\xd7\xa3g\x94\x05\xea\x18\x0e\xfc\x18?{n\xe7W\
+\xc2\x08\xf0!\xf0\xef\x80\x8c\xf7\xf1\xb5\xf9E\x17n'\
+\xde\xd5\xea\xbbx\x9f\xfb\xdb\xfe\x11\xbfx~\xaf\xe3{\
+\xff\xfdN\xc1\xf7ws\xfc\xf4\xf1\xd33\xd3U+\x0f\
+\xf8\xd05\xc7z\xb2\xfb\xf6\xb7\xf8\xc9w\xfb\xcds\xd9\
+O\xce\x13\x7f\xd6\xef{\x1e\xf3\x06\xb8\xa0\xc1\xc4\xcez\
+^\x01\xbb}\xe7\xfe4\x9f\xf6\xa7\xcf\xdbU\xf7\xbd\xbf\
+\x12\x19]\x1f\xac\xf7V\x02\xbd>\x8f\xf6\xbf\xbf=\xc6\
+\xf1\xe7\x1f^\xc6\xe9\xc0\x81}\xc0^;\xef\xfc\x0c\xcf\
+\xcb>\xf2_=\x17\x80X\xbb\xf2t':U\x0f\xf4\
+\xd9\x85\xcc\xbd>\xe0\xbeQ\xfe\xb4e\x98)\x1a2\xdf\
+[\x7f\xf7K-\xdf\x19\x90N5\xb1\x01!v\xa83\
+&\xd2\x07\xce\xc5y\xf2\xdd\xc7\xf1]\xb9\x00~w:\
+\xe0&\xc4\x85\xd7\xdb\xe7\x8d\xe9\x7f\xdf\x04<x\xdeh\
+\x08T\xa0oA\xde\xbd\xe4\xae7\xed\x80Y\x9d\xf8*\
+Sm\xbeZ*\x9f\xc7\xc1\x1ba\xf7G&\xd5h\xf3\
+\xc6\x00\xf4~\x90\x00\x94Y\xe4\xf0}\xb9\xf0n\xb3Q\
+\x12k#\xb9\x008X(T\xd4\xc7mL\x07\x02\xe2\
+\xf7\x17\xc9\x04\xdc.j\xeeg\xafb\x7f\xe5`Q\xbd\
+~\xf4\x18\x93#)\x13\x22c\xa1\x8f\xb2\xb62\x1f\x8e\
+\xa1`\x00\x7f+}S\x01\x04\xc9(Wm\xa5\x00\xc4\
+AU\xeb\xff\xe9\xb5_\xf7\xd1\xc8\xae\xa2\x16.\x96\xec\
+\x83\x93\x9b\x8eq\xdc\x8e/\x1acr\xe8\xec\x17\x01\x01\
+\xa0I\x8doT\xf7O\xee>\xc6\xd4\x9f\x96\xc3r\x83\
+1\xb6~\xc9%\x86\xf8\xf0\x15\x189<j\x8c\xe3v\
+\xf9\xe51\x8e\xff\xfe\xe3cL\xe2u\x1f\xcd\xba~:\
+5\x89\xe9\xf3[Z\x02\x11\x1d\xda\x9d9\xc6\xf1u\xce\
+\x1ac\xca\xe80p\xc4p\xf4y\xfed>\xff\x97\xa7\
+\x8d\x0f\xe0K_`\x99\xa6\xdb\xac\x22\x85\xfb\x0f\xac*\
+\xcc\xbb\xb7\x8e1e\x16\x9c\x07\x08\xa2u\xf8\xd9\x95\xf2\
+W\xb5\xb6\xcei\xc4\xe3\xcex\xc226ud\x17\x0e\
+\xeac.N\x19\xd2\xfd_\x8c\xb1edO\xde7F\
+\x98\x057\x9c\x02\x0e\xb5\xcd\x1c\xb9\x9f\x0eE\xf4\xc5\xc9\
+\xe8j\x0b\xc7\xe1\xf1y\x9f:\xc6\x94\x19G\xe5T\xa3\
+\xb9\xcb\xeb\xa7\x8dU\x01\x8fj\x81e\x12\x128\x94f\
+\x05{`_Rc\xeev\x8ac\x82\x09\xf0\x95cL\
+\x0e2\x80\x87\xc8\x19\x8d\x11\x01\x12\xc3\xec\xa2#\xde\xd2\
+\xc4\xd7\xeabE1\x94\x11\x0ee\xbe2\x9b\xd6\x15C\
+\xe1ycL\xe7\x0a\x10E\x9d]\xad4j \x95\xd8\
+?\x19cj\x7f\xc7\xbeh;\xc5\xb1\x06$\x08\xc0\x12\
+\xc0U\xed\xa1@V\x09N\x181U\xab\xaf}\x96\xf6\
+\x8d\xba\x19<)\x0c\x22\xf3\xd83\x07\x1c\xcbd\xda\x0b\
+\xb8\xf9\xfeel\x00\x89\xe7\x96\x09\xa5\x82\x0f\x80QC\
+~\xef\xb4)%jG\x04\x0cc\xc4\xbe\xb1\xff0^\
+\xf4\xf1Vr\x11`\xf1\x8co\x0b\xf0\xea\xc2\xed\x99\x16\
+\xd4\xde\xa1\x1d\xf2\xc2\x88\x85\xddw[\xbf\xa2\xc2s|\
+\x04\xa6\x11\x03\xc4\xf0\xa9\x0c\xacR\xac\xa7\x8e1\xad\xb3\
+\xe7v^\x02\x98\x1e\xbet\x8ci~d\xd80n\xde\
+;\xc6d7\x05\xaa=\x00\x00(\xa3r\x03\x8aP\xd6\
+\xe30\xd7\xba\x09|i\xda(\x99\x22F\xe8\xfd\x04\xb2\
+\x01p\x01\x0b\x05x\xa0\xc0\xb3\x93\xce+\xc7HW\x0e\
+\x8e<F\x81\x8czT\xda\x8bbODQ\xa6\x05#\
+\xe0\xe7/\xdc.\xb6\x00E\xed-\x05\x12\x80E\xa5S\
+\x8dBI\x0cN`\xaf\xbbOe\xcc}nL\x0am\
+\xfc\xd2\xfd\x82\x18\xa1\xf3\xbc\xbf\xcf\x18\x9b\xdd\xa9v\xb4\
+\xfc\x12\x0e\xac\xd7\xe3\xbf\xa1\x0c\x07P\x00pV\x00,\
+\x83\x9by/\xff\x82\xff\x060\x93\xd1\x13\x98\xf6\x8c\x98\
+\x00\x085\x5c@+\x80\xb9\x7f\x00w\x99f%\x86\xf1\
+\xf7v\xff{\x8c\xc9O\xc2\x5c\x04\xfc\xe9\x86\x80\xc1\xc3\
+>\xbb?\x88\xf5\x11\xcf\xf3<\xec\x05\x8d\x05\xfe\xa1\x12\
+\xbb_\x5c\xc6\x06h\x03\x048\xf82g\xda\xc8\xa2\x9a\
+_\xb0\xfa\xc5\x185\xfb\x8f\x8c1\xbd/\xa6\x8a\xf7\x8f\
+?`\xbd\x00a%JHL\x93Z\xba\xfd\xa8t\xc2\
+\xbd!\x80\xe7G\x02V0\x19\xba\xf8\x99\x00\x08#+\
+\x0c\xb5z}\x8c#mUSZX\xcf\xaf\xb4\x8f_\
+\xa9d\xc0=\xa9\xdb\x17J\xbf\x80Q\x97\x22\x8c\xaa0\
+zh\xdc\xc8D\x02\x1e\x8b\xe9C\xc4\x0f\xf0/\xb0\x11\
+(\x03\xa8\x04>\xf17+P\xc4\x8cp\xff\x09\xcc\x00\
+t\xbdk\x13\xbb\xc9\x0fT\xd2\x12\xff\xb7\x98\x86\xee/\
+\xcc\x91\xd8\xb1\x02\xd2\xc4)\x9e\xb3\xf7\x81\xb7\x9f\x00@\
+\xe9\xaeS\xfb\x05\xa0\xe2\x1c\x13%\xc5\xd42\xdf2\xc5\
+^_\xc0\xd7D\x17\xcbo\xef\x14s\xa5P4\x17\x00\
+w\x17\x17 [\xcf\x8f\x94\x7f{\xe1.f=\x10o\
+\xb5\xf1\xf5\xb3\xfbH\x9bi\xfez\xef\xd6\xd0\xdb\x96\x03\
+\x861\xdb\xc4\x8f\xde\xdf\xf3\x89O\xdcS^\x97}2\
+O\x1d\xd0\xf0\xdf\xf9\x85\xb4\x0c\xcc\x8b\xcf%\x9e\xb2\xff\
+<o\x17\x03\xf4\xfa\x9e\xe3\xac\xea\x82\xb6\xdac\x80\x98\
+@\xbf\x95\x16\xf4n5\xe5\xefk\xe3\xcc\xbf\xf0\xfc\x9e\
+\x83?g\xfe\xbc\x1f\xc0\x01\xc0\x82\xa1C\xbb\x06\xc33\
+\xf6\xed\xf0=c\x8ci\x160\xcb`\x9a\x88Y\xe4\xe0\
+\xcc\xd4\x1c\x5cb\xa2\xf2[\x08@\xc0%\x97\xd0\xee\xc2\
+\xfd\xed?\x96\x03\xf0o\x93\x03\x8b\x01@|E\xc6~\
+\xbc\xcee\xa6\x9aB\x0e\xdb0/\xbf3-\xd4p\x03\
+\x1f\x1eG\x82:\xe4\xa7\xa7\x05\xb0\x01z{\x08?;\
+\x00]\x5c\xc2A\x12\xd8\xef\x96\x10\xa3\x00\x11\x14\xb4\xaa\
+\xcd\xec\x17'\x06\xc5\xdc\x97\xfa\xcfbH\xaf7\xd5(\
+\xa2.\xd9\x901\xc0\xa5:\x9e\x0bk\xf7%cL\xd4\
+o\xed\xd9\x04\xb4\x09\xd8NC\x94\x1c\x08@\x03\xca\x8d\
+\xfe\xbf\xdf\x12\xca<\xca\xb0\x8d\x1c\xe4\xa82:\xa8\xb3\
+/\x1ec\xda\x1f.&5\xf5\xb9\xd8\xea\xfd\x88rq\
+\x90d\xc6\x88\x951\x90\x0d\x01\xee}PedN\x1e\
+1\xc6\xf1\xe2}\xed\x18KM\xe2J!\xbe\xee\xfa<\
+\xfb\xdf\xd8?{\xff\xec\xe5\xef\xd6\x83t\x9dltT\
+^\x0e?\xca\xcc\xe5\xa2\xb6\x1c \xa0(\xea\xa8`w\
+X\x03\x88c\xb8\xbdf\x14\x88\xc6|{9\xfe+\x92\
+\xfc\xccd<\x1f\x12\xb1\xa4\xcb\x8dq|\x9eG\xef\x1f\
+\xb5\x7f\xd4\xf1\xb9\x9fy\xf2\xac\x93gm\xf3\xb9\xbf\xff\
+\x18S\xd7\x85t\x09(*\xa1\x8c\xa7\x9aI\xfb\xcc\xbf\
+\xcbL\xe6\xa2\xdd\xfd\xf5\xee\x15\xbbWl\xed*K=\
+\xfe\x07W`e\xf7\xfa\xdd\x1bvC\xe5\xf8\xa7\xc6\x98\
+\x0e~\xfa(\xd3<8\xad\xbf,\x87\x9a\x1a9\xf11\
+\x14\xec\x5cTE\xd9\xd4w8\xa5\x18\xbbW\xee\xfe\xd7\
+\xc2hx\xe81\xdcx\xe8\xb2\xae\xab\xa1{U\xd5\x14\
+\xaf\x22n1h\xc7\xa0z\xad5d\xe0\xecc\xb5\xc2\
+.<\x0e\xacZp\xa5\x17\x02\xa1K\x85\xf1\xf3\xfe\x00\
+n[;\xabu\x7f\x0bh\x00M\xfe\xbb\x8b\xd4~d\
+\xe0]\xf4\xec\x89\x7f\xef\x149\xe7]?rT\xda\x94\
+TUW\x0a\x94b\xf6\xa2\x89T\x15\xc0C|\xcd\xbe\
+Uc\xea\x8b#G,,\x94d\xaf\xab\xcf}\x95\x0e\
+\x01\xf0\x96\xaf)\xe3&\xc3\xa1!\xec)\xc7\x00\x00 \
+\x00IDAT\x9d\x98\xcc\xa7\x80\x91\xe8!\xd1+Z\
+\x06\xfa?\xc7Q\xac\xf6_i\x97W\x81\x99\xfd\x92\xc0\
+\x8eXg\x01\x89\x18.J\x92h\x04\x08\xd4\x12x\xef\
+\xfen\x8cI\x8b\x84\xa3\x8ea\xa0\xa6\xdfyi\x19\xef\
+\xd3j\xd7\xf5\x0f\xd7]A\xe0\x8a\x09\x90\xc0[`^\
+\xcc#%:\x1f\x89=F\x05\xbdN\x1c\xe50N\xca\
+\x91=\xf7\x18>\x9c\xbb86W]\x1c\x1b\xa2w\x80\
+\x14\xea\xea(\xc9\x02\x15\x94`\x00\x10q\xb9\xdf\x1cc\
+\x02\xc2\x014\x98\x1f\xde\x17\x85[@\x9b\x9a\xedb\x5c\
+\xa4$\xab\x98`OY5N\xca\xf1s\xef\x86\x8a]\
+\x19\xdb\x00>%\xea\xa6v\x11\xc0b~\x04\x0aD\xeb\
+0\x1d\x94fE\xdc\x0e#\xad\xfa\xbb'p\xacs\xca\
+.\x098\x88\xe6q\xd0h\x0c\xa8\x19\xf7\xef\x98\x10\x80\
+,\x0c\x14\x81\x00q$j\xe5(\xa8\xa9\xc1\xac\xfb,\
+\x81\xfei\xfd\x9a15\x1e\xba2\xc7\xaa+B\x18\x1e\
+\x87\xef\x1bc\x02\xe0\x04h\xfc\x8e0H\xdc\x17\x98\x00\
+\xfb\x9b\x8f1\x9d\x0f\x19Ov\x86\xea3FBj\x98\
+\x8b\xb9#\xa0\xd2\xad\xc2\xfb\xb5Z\xda\xea\x12 \xf0\xce\
+z{\xdf\xfa{\xddF\xa8\xd0\xbb\xef\x01z\x00\x92\xdc\
+W\x15\xc0\xd8\x7f\xd7\x1fc\x12-S\x0a\x882\xabm\
+\x96\x92\x09\xa2|\x029\xf71{\xe0}\x05rJ\xa2\
+\x1a\x85\x1a\xe5\xbc\xdal\xea\x0a\x82R\x0d &\x96\x8a\
+\xe1\xe0\xfe\x09P\xc0\xbe\xd6~\xbc^\xfc8@\x8b@\
+\x1f\xb0\xabd*]\x84$j\xaa\xad-\xf1\xd4\x07\xa5\
+\xa4P\x80\x03pt\x1f\x01z|\x018e\xc8\xfd\xbe\
+\x80\xbfw\x03\xf0y\xc3p\x18\xcd\x85\x97\xf6\xc2\x8f\x1f\
+\xb2\xca\x0b\xa0\xfc\x9dK\x97!\xa53\x11\xd9,@\x1a\
+p\x82q\x0d\xa0\xec\xa2\xcf\x80j\x01.;\xc2\xdf\x0e\
+\x93r\xf7\xfbcL\xcc\x0b\x0c)\xf3\xeas\xc8X\xda\
+\xf7\xadt\xb5\xfcG\x8c<\x09(\xfe\x81\xfd\xde\x03-\
+\xcf\xc3\xce\xb3O\xd1L*\xa0\x07#\x85\x1d\xb1\xaf\xdc\
+'\xfc\x01\xff\xde\x80\x8a\x0a\xbc:\x10\xe0y\x01\x00\xbe\
+\xffs\x95\xce^\xb8ma\xcbP\xd7w~<&\x82\
+\x80\xd4s\x8bc\xc4\x03\xbe0\x09\xbc\x8e\xf7cW\xec\
+\x1f\xf6\xbf\x89\xc8U\x82\xe2\xe2\x98\x03\x02jm\xff$\
+<\xf9\xf3~\xaf\xfbY\xe6\xc9=-\x0e\xc1Ds\x1e\
+:C\xc1\x7f\x17x{~\xaf\xd7\xdb\x0eJ8\xd3\xfa\
+\xf2\xfe\xd6\xc1\xb9\xf7\xf9\xfb>h\x00\xcc\x22\x82?k\
+O\xb8?0\xc40\xe6\xbc\x9f\xf8\x86_\x0b\xe0!Z\
+\x1a\xed\xa5\xdd\x9b\xc6\xd8\xee\xe9*\xed\xc6\x9c\xc8\xfb\x96\
+\x18\xa7\xd7\xf3\xbc\xf6\x9b}\xe9\xf9\x00<\xe2U\xe7\x22\
+\xcc\xb8S\xfa\x22v\xaan\x05\xc0\x02{\x13~\xf9%\
+\xc7\xbb!5\xfe\xfd\x12KU\xb3\x0a\xf4u#|p\
+\x9aX\x88\xc8\xc7\x16Wi\xcb\xb8w\xad\x01\x19\xc7Q\
+\x9bw\xeb\xed\x22\xd8\xfd\xca\x18\xd3\x856\x8b\xe1|v\
+Z0\x06\xe5m\xa9\xb9\xb6\xf1\xe2\xd0\x16\xf3@\x9b\xaa\
+\xb3\x8e\xe3\xda\x13\x10\xd1\xd5!\xc7\xb4\xbegB\xea\x94\
+&p\x8c\xbfdi\x90\xb6Mp.\x96Z\xa0\xe1\x06\
+|\xd1\xe4\xb8\xc9d\xa6\xddUe\xae\xffu\x8c\x89\xf2\
+\xa7F\xe8\x8e\xab\x03\xb3\xfb\xe8\xee#\xbb\x8fL\x81P\
+\xa8\xe5\x05\x140\xdcqH\xca\xf1\xe9]\x00d\x86e\
+& L\x02M\xc0\x0e\x83\xe4\xb9\xb5\x13z\xf9\xea\xf8\
+V\xcd\x0ef\x02@!\x19\xb8B\xf0!\xda.VH\
+\xaa\x03\x15\x95\xfbe\xb7|p\x11\xd1Y\xd5\xed1\x14\
+\x22\xd6%3]\xa5\x11\xbf\x9d\xf6M\x1f\x1dc\xebW\
+\xbd{\xe6\x18\x1b\xc5\xb5\x1c\xe7\xd4\xdeW\x0d\x96\x1aC\
+\x99\xbb\xd4H\xee\xce]\x19\x04U\xd3x\xc1\x18\x1b\xb3\
+\xa0j\x90\x89=}\xf9\x18\x1b\xd2\xbd\xff\xfe\xfd\xc3\xf7\
+\x0f\x9f.lm\xaa\xbel\x8c\xeds\xef\xbf|\x8c\xc9\
+A\xa2\xbe\x9cvy\x95\xd1J\xfb,\xb5\x9b'\xdf4\
+\xc6\xf1\xf7>4\xc6\x94\xc1c\xf8\xd5\xf8p\xac\x01G\
+\xf6\xa7v\x81\x11\xd3;\xfe\xd7\x85*\x0a\x98\x90\x19E\
+\xb5-\xed\x85O\x87\x02y\xc3\xc3\xe7,\x19$\xfd\xc1\
+\xa9\x14s\x189<\xe9\xd2P\x06\xfc\xb51|\x1c\xd9\
+\xd8\x9dcp\xbb\x9e7\x17\xfa{b\xb8\xdf\x17J\xbc\
+\x8c\xb1\x8b\x1b\xb5^\x89H^\xaf\xa8\xd4wM@\xb4\
+\x8f%\x02\x10\xf4\xf69\xf6%C\xe9\x02\xe95\x5c\x1c\
+K\xed\xd5h'0\xbc^W\x09\x8a\xf5 :\x94\xc0\
+z\xf7\xaa1&-\x95dh\xf6\xcf\x1dc:7\xda\
+Q&\xf0\xab\x8b\x8f\xe3l\x9e\x05\xe2\x1cU\x0e\xbe6\
+v\x80\xa4Pow?=\xc6\xc6h)\x95~\xa2\x88\
+\x8f[\xc6F!\x93i\xfd\x891&f\x03G3\xfd\
+i\xeb\xf3\xbbx\xcc\xa3v`\xd4\xb7u\x9b@\x15\x96\
+\xc9\xd3\x8e/m\x99\xd4\xda\x97\xc6\x02\xc0Qi\xd4\x8b\
+\x0f\x7f\xb2h\x10h\xefv\x83\x00V\xf6\x1d @F\
+[\xc6\x85\xc6\x0d\xea\xba\xcc\xaaL\x17`\xe6\x8b\xd7\x8b\
+\xf7x\x0a\x16\xf5\xdcrL9\xe6(\x9b.R\xfb+\
+\xe7\xa3\x1c\x0c\xc0\x83\xfd\xc61\xb1/tG\xf8\xea1\
+6\xe6Q\x05\xda?<\xc6D\xa1&\x1a\x08(q\x8f\
+\x10\xfd\x94\x11\xa6)\xc1q\x91\xe9f\xf79f\xb44\
+t\xe5I\xa6\xad\xba\x14\xb8\xb7\xa3\x12_\x9f\x07\x00F\
+\xd4\xb4\x8b/\x02\x048\x1e\xec|\xa8\xd0\x02.\x0c\xac\
+\xd2\x84\xc8=_vO\x065\xa5@\xd6\xb7D\x0c}\
+^\xeb\x87\x91\x02\x10\x03\x00\x10\xbdC\x89\xe7\xf8\xe9o\
+\x0f\xa8H\x86\xbf\x981\x80v\xc0\x9e\xcc\xb0{T\xe9\
+\x09\x11@\x8c\x12\xf3\xcc\xeeq\xc0\x89\x9a%\xf0\x22\xb6\
+v\xd8\x8d1e49r\x98O\xeeq%\x19\xeeg\
+L\x97\xd8\x9d\x9a_\x81i\x1c\xdf\x0a\xbc\xf9A\xce\xb9\
+u\xa1\xceO\xdb\xa2u\x8d\xa9\xf5\xe1\xf8K\xa4H\x94\
+\xf0;\xd8\x0b\x81\x806\x9aj\xdb\x9d\x17@\x91\xf3\x10\
+;R\xda(M\xc5\xbc\x02\x7fmgu\xcd@\xd5\xe6\
+\xefq\xb4s/\xb1[5\x8f\xfcO\x9a8\xe9\x86P\
+\xc0\xbe\xcf\xcd\xdf\x91\x09\xa7E3J\x1e\xffj*U\
+\x94\xc0\xf2\xbe(\xe7D/\x1f6\xc6\xc4\x84cot\
+\x1b\xa0\x99b?\xe9v\xc0\xaf\x96\xf9\x94\xf1\x93\x99\xc6\
+\x84t?Y\x17\xbf\x0f8wo\xa5\xd4o\xf7\x82\xdd\
+\x1f\xee^0\xd9\x13\x9a\x15\x00Q\x897\x7fo\xbf\x10\
+\x13\x0b\x93\xafD\x0e1\xd0\x04\xfe4Q\x04\xc2\x09|\
+\x01\x8d\x05\x8c\xf5L\xab\xc0\x1a\xf3\x0b\xd0\x04\xd8s~\
+\x00\x9c\xec\x97@\xd9\xb9B\x9dg\xb7dp\xd9_\x0c\
+=\x99\xd0\xfb\x8c1\xdd\xeb\x98\xb72\xa9J\x8b\xd8\x11\
+\xafg\xdfbd\x00&h\x01\xd8\x8f\x9d\x22\xcf\x1e\xb3\
+\x9b\x98\x0c^\xd7\xf9\xf0{\xf6\x95\xd2\x05L\x09\xf7Q\
+\xcf\x10\xf7\xf6\xe5\xbd\xd6\xdf\xfb\xf0w\xba\xa8h\x07\x00\
+\xf8\xff\xadk\xcc\x85\xda\xa3\x9f?\x01\xa9\xf6co/\
+(\x8er\x1f\xf4\x92\x09_\x18_s<y\x89\x8b\x10\
+5\xf4\xdf}>\xaf\xcbn\x02dtM\xe8\x80\x8e\xfb\
+\xd9\xefw\xc0\x06\xf0`>\xd8;\xcfk\x1e\xdd\x83\x00\
+eL(\xf7\x91y\xee\xed\xa8\xed\xf3<\xf7\xee\xd7\xc6\
+X\x12v\xc71\xfd}\xf7Cu\xb3\x90\xc8\xe4wX\
+\x1f\xf3\x0d`\xe8%*>\x87\x12\xee0\xbbNU\xad\
+{\xda\xfcUF\xdf\x82\xc8\xec\xaa%\x98E\x18>\xd8\
+\x16\x90(\xd1\x15[\x7fR\xb5C\xe7O\x0e\xf2\xa0\xbc\
+\xdf:\x01\xde\x1db\x18\xef\x1a\x0a\xeb7&Cv\x0c\
+\x98F\xf8\xb1\x04 \xc3=\xb8\xffE\xb43\x82 \xd1\
+(\x10(\x0c\x82\xd73\xb2\x81>69\xd0.P\xa2\
+H\xc3!y\xfbD-\x1e\xcb6m\xa4\xc5l\x5c3\
+\x8e\xdfY\x13\x2292,\xe7\xa46\xf6\x81\x93\xc8\xd9\
+\xa04?m\xca\xfc\xeb+\x1e\xb1\x1dj\xb4U#\xa9\
+\xcd\xde_\xee^\xba{\xe9$\x82\xa6=\xde\x9f\xa7\x16\
+\xea\xd7s\xf1Q\xc5\x85\xd8\x12y\x10XA\x8e8d\
+\x9f\x13dJ\xa0\xce\xd1u\x80ch\x89\xc4\xd4\xc1\xf3\
+\xfbj\xb1\x04\xf0\x10)\x81\xfb\xad\xd6\xc0\xbf\x10w%\
+\x022\x04\x02%\x86L\x0d#\xc7\xfc\xd9\xd1\x22\x00\x5c\
+\xbc&\x0e\xf6{\xd7\x03S}\xc1\xa3V\x8ejl\xf9\
++\xd3\x18J\xcb\xe1\x8b\xc6\xd82\xf7\x87[F4\xef\
+~\xbb\xfb\xee\xee;!\xf0\xad\x9d\xe3\xe1\xd2\x87K\x1d\
+.5\xcdG\xdeo\xff\xa7c,m\xec\x8ec\x0b\xa0\
+\xf6??\xc6\x16\x00\xed\xef0\xc6\xf1\xfb\x7f\xdd\xff\xd0\
+~r,\x8f\xd7\xe5\x92\x81\xaf\x8b^\xff\xdd\x00\x19\xbb\
+\xb7\x8c1\x89p\x01\xc2\xbem\x19\xd5F\x07\xb5\xb4\xd4\
+{\xd5L^e\x8c\xc9Pf\xffW\x86\x14\x857\xff\
+\xbe\xfb\x871\x96\xf7Y\x1d\x1c\x00\xc5]\x0fw9\xdc\
+e\x02rd\x86\x01\x17o\x0e\x05\xef.\xeb\xef\x1d~\
+\xee\xf0\xb4\xa1\xfe~r\xb71&\x07\xc7\xbe\xd3\x960\
+\x0eE\x89[>y\x15\x9d+\x83\x0c\x88q\xd1\xbb\x00\
+\x89x\x11C\xc2\xf0\x81\xd8\x13\xcbK\xe0/\x13V\x01\
+\xd1m\x13\x089\xf7.0\x14@*\xe6~\x9f!\xd7\
+\x06\x8d*\xab@R\x0d(`\xcb\x05\xe9\xf3\xca`A\
+\x94\xd9\x19\xf3)\xf0\x90\xf9w\xd1P\xd1Vj\x14\xb1\
+\xc2\x9a/Z\x052v\x1c\x03bF\x09<h\x1dp\
+\xa8\xd5:\xef\x9e6\xc6\xd4\x0d\xc3y\xe4\xc0rPQ\
+j\x9d\xcbd\x961\x0a\x0e\x7f0\xc6$\x8a(\xc3\xe9\
+\x82\xc2L@\xf1\xd6\xcd\xc2|(]H\xb7\x91\xea\xbf\
+M\xb5[\x1bM@\xc5_\x8e1i\x12\x00D\x07\x93\
+\xe4U\x93c\xcc\x016\x1f\x80\x80h\x16T\xa0\x8dB\
+\xef\x1c\xfa\x9c\x1c9*\xe4\xbf\xb7\xce;\xcd\x8e\xdd\x13\
+\xc7\x98\x1c\x05\xeb\xaaF\xd9}\x06@EY\xe5\x90\x03\
+N\x89\x87\x9a?\xfb[m=\xcd\x92\x04<\xce]\x89\
+w\xc9\xc4r\xa8dt|\x0e\x0c-T}\x8c\xb5\xe7\
+\xadZ#\x05\xd0\x10o\xa3y@U\xf89cl\x80\
+Le\xc80\xcd\x04\x9c\xd6\x93#\xea;\x15\x7f\x80\x92\
+\xbe\xed\x18)^\xc7\xdf\x03\x90B\xc5.\x06\x8an\x14\
+\x80\xee\xb41*q8@\x10\xd5~\x00\xa4{\xcfw\
+\x89\x84{\x8d1\x05 \x1c7\x80\x0e\xb16Z!\x00\
+4\xc0\xe2\x17\x8dqz\x09C%\x140-\x00\x902\
+\x8d\x80\x1evX&W\x17\x83\xf4\xb7/&Z\xc48\
+\x8b\xf1c\x7fa\xe2(A\x0c\x90Um\xf9\xf8\x1d)\
+A(\xd1\xca\x00\xdd\x87?\x19c\x03f\x0e\xdf<\xc6\
+\x14\x80\x0ap\xf3<\xc5\xb0\x01\xc4`T\xf0\xff\xd8\xd3\
+\xf4\x91\xae\xc0U\x09S4\x11j\xbf\x02\x1a\x95b\xd8\
+\xbf(\xbf\xe6KI\x10\xe6\x85R&\x81_\x02\xe0\x9a\
+O\x89\x16~\x9a}\xc8\x1f\x14\xc8r\x801F\x94\xb2\
+\xb97\xf9\xb7\x1cj\xa5\x08)%\xa9@#%H\x15\
+ b\xe8\x048\xefT\xe6\x02\x8c\x04\x9eD\x9di\xce\
+(M\x03\x14\xf0\xcb\xf8u\xfc\x04\xa2\xabI\x00\x14\xc0\
+%\xa0\xe8\xd4\xe3\xcf4 R@\x000\xfc\x9d1&\
+\x0d\x9b\x94\xe8T\xa9\x9es\xae\xa4\x03\xd0\x9e\xf59\xfc\
+\xd71& B\xdbo\xeb\x86Yf\xff\x0b\x5c1p\
+\x94\x8e\xa0\xd6\x03r\x95\x9c\xd2f\xb0\xee\x0dp,\x11\
+W\x01\x1e;\x88I\x05xc\x7f\x05b\xee\x7f\xfb\xc2\
+\xfc\xb8W\xcc\x9f{\xbd\x03\x09\xad\xf6\xbf\x02x\xcf\xd5\
+D\xb6OS\x95\xef5\xe1\x98\x0e>\x9f\xfb\x85\x1f\xe4\
+\xbe\xec\x9f\xd3}\xeby\x04\x8a\x80\x15\xeb\xef\x0b\x00\x22\
+@\xf4\xbd\x07\xd6\x98\xc6\x98\x9f\xe6\xcb\xfe7\x9f\x02n\
+~\x84\xe7\xe9]\x1cz\x97/\x01\xa8\xff\xee\x5c\x9a\xf7\
+\x1e\xf8\xfb\xde\xdb^\xfa=_\xd6\x9b_\x07\x08\xea\x09\
+\x09\xcfg\xbe\xac\xbf\xe7\xe8\x8c\x0a\xef/a\xa0\xa4\xc9\
+z\x03\x0c\xcc\x9fD\x88\xe7\xb4\x1e\xec\x1d\xa0\x0a#S\
+\xe2\x16\xa0\xc8\x9e\x89\x9b\xac\xa3\xf9\x02,\xb1o\xe6\xd3\
+\xfc\x89\xb7\xedW\xfb\xae\x8b@\xb2\xd7I\xc4\x9cB\xbd\
+/\x87tV\xcb\xbf\xdc\xd4\xf6\xcf\x07\x1dn\xd7\xdf\x86\
+\xca\xf8\xb2I\xf5\x18\x05~\x5c'\xff\x94\x9a\xc3\x87\x06\
+\x81\xfd\xd2I\xc4O-\xaa6L\xc3\xcd\xbc\xf3$\xa6\
+\x93\x8c\xe7B5\xfc\xd6\xc9Q\xa0Q\xf0\xe9%\xd7r\
+\xd1\xaa\xfa\x97\x9b\xba\x13\xc8x\x9aP\xc8<\x83\xe9\xef\
+\x94*8\x98\x10\xd8\xcb.\x1d\xcfk>v'\xbbu\
+\xe2\x8f\xee\xe8\x226\x15\xa4y\xff7\xc7\xf1\x8a\x5c\x90\
+W\xde\x02\xfd\xca h3\xf6\xe1\xe3\xf8\xd0F\x09\xde\
+\xfdQ\x18\x00o\xcd\xc1\xfe\xe3P\xff\x1f\x16G]`\
++\x83\xfd{\xb9`\x05\x96\x18\x08i\x97S\xeb\xe7K\
+\xa0\xcePe>\x16\xc6\xc3Y\xd3AF\xb1\xb4\xbe\x9e\
+\x17\xd5$\x99\x92B\x8a\x89\x04\xba(\xd4\xfc\xbcqE\
+L\x8fn\xca\xedv\xb7\x9b\xa82\x0c\x90\x03\x91>\xdb\
+U\xd3\xe7\xc0Q\x19\x7fY\xc4\xa2\x1c$\x9f7\xb5\xab\
+c\x1dv'\x8b\x8a\xe8j\xa8\x5c \x025H\xf4\xe5\
+\xc7\xd8\xbaR\xec\xff\xea8^\xb69\x9c\xbbw\x1f\xc7\
+\xbb\xa6\xda\xaf\x0f\xc7A\xa3\xf6\xb5\xb5\x7f[\x0f\xb6\x8c\
+\xb2\x8b.\x99\x85\x0b^5\xc6\x22\x22\xb7\x22\xd6\xa1,\
+V`u\xbfUsA`Sm1\xcd#$W\xa0\
+#\xf3\xf2\xa4d\xac>\x96\xae\x0c?\xb6\xaa\x0f\x97H\
+\x916w\xa1\x82\xee\xffd\x8c\xc9\xb01\x94\x0cG\xce\
+Ue\x5c\xed\x1f\x99\xa5\x0f\x05\xf9M\x0d\xe6R\xf8\xb2\
+_\x1c\xe1u\x1f\xbf,5q\x90q\x01\xa0\xcc\xb7\x0b\
+\x98\xa3\x82\xda)\xc0v\xa1=+\xed\xb2\x88\x9e(]\
+\xa0M\x11\xa0\x09\x93\xa3.b\x0e\x1e\xcd\x82/\xcc9\
+g\xd0e\x9c]\x8c\xf6\xb5@W\xe0\xc1p\xfb\x8e:\
+\xd8\x02\xd9\xa28'C[\x88j\xaf\xbd\xd3v\xcb9\
+\xb5\x0fe\xfa\x89B\xa9\xa9M{.@\xc3\xe1\xf3\xc7\
+\xd8\x80\xc1:'\xd6K-u2\xb5e\xc8e\xa88\
+\x16\xc9\xfca\xa6T\x97\x8a8\x98D\xb2N\xab\x91\xe3\
+p\xa2\xa4q@d\xea\x04\x98.B\x19.\x01\x0b\xd1\
+.\xcf-\x03w\xad1\x96\x92\x9c\xe3\x98\x02d\xaf\xcf\
+\xae\xa2\xa4+Q\xc0\x10\xb2\x1e\xad-T\x05RD\x07\
+#\xae\xd5U\x82\xab='m\x02\xfbA\xa0, P\
+\xb3\x1cJ\xff\xe1\x0b\xc68\xfe\xf7_X\xc6F\xf5N\
+ _\xa5'T\xa61\x85\xb4CD1\x06\xa08\xb7\
+2\xae(\xf1i\xfb\xb7\xdc>\x1f\xdfDTGO\x8c\
+\xd1\x15C`)\xc3T\x80\x06\xcd\x0c\x0eBj\xfb\xab\
+\xc4\x81\x03\xc7\x0e%\xa0.{\x91\xd7\xaf\xb6d\xdac\
+\xaa\xd1e\x97\xdd\xa3\xec%F\x95\x1a\xea\x04H\xbb\xab\
+\x8f19\xbe\xce\x15 \x22\xcc(\x9a(\x05\xa0\x87q\
+U\xb5\xeeJ\x00d\xf61\xf4\xd2\xed\xa1jY\xa9y\
+\x03\x9ah\x9a\xb8\xb7^\xb9\x8a\xaaV\x1fr%9)\
+Q9\xad_4\xca\xb4@\xde\xfd\xed\xbc\x12\xe1\xec\x0e\
+\xac\xd2\xbd\x88\xb3\x96V\x04\xbb\xa0d\x0be\x97\x8a\xb8\
+\xfd\x16&\xe2\xe13cL\xef\xaf$\xadev\x0fw\
+\x18c\x02\x06P\xe1\xdd\xdbJ6\xd4>\xa3\xc8\xcbL\
+r\x80\xd3\x1e\xb6J\x1d\xfc=\xf5s\x00\xbd\xfd\xc3\xb1\
+e\xd7\x946\xe9\xbeCC\x81\x080&C\x02\xe6j\
+\x0f\x98\xf3T\xda7>\x07\x7f\xb3\x97\xbeiol\x9f\
+\x03\xd6\xd8\x858\xce\x87\xbf\x1cc\xb2\x0f\xf6\x0d\xffE\
+\x00\xcc\x1fT\xe2\xc2\xee\xe9n\xd34\xa6JS\x838\
+\x9f@\x8d?\xa3\x14\x00\xb0Ds\xe41cL\xf7\xba\
+Zp\xc0\x92\xcf\xc5\x1f%J\x8a*/C\xac\xad#\
+@G\xe6\x0f\x83\xca=\xe4\x1eh\xa2\xac\xf5:\x02j\
+\x80MDBKl\x92v\xca,\xd2\xfd\xce\xe9\xf5\x7f\
+\xe0\x8c\x87\x8f\x12\xa8\xc3\x9f\x1d\xfe|\x01\x88\x05,\xec\
+t\x12\x15\x12w\x80\x0e\x80q\x05\x1c\xec%\xa0\xc7\xf9\
+s\xff\xcb\xa0\xca\xb8\xfb.\xe0\x02H\xd0@P2e\
+_\xb8_\x04\x5c\x98\xc2\xcem\xf7\x8b\x88\xec\x12\xc5\xcc\
+\xe7\xd8]{\x8c\x16\x1fL\x22z5\x9f\x12\x18-`\
+/?\x03e_@*\xd0\xb4\x1f\xbb\xc8-\xff\xc2\xfb\
+\x08\xfc\xfd\x9e}\xef\xbb@O\xa0\xebs\x0b\xd4\xf9\xd5\
+>/?\x9d\xb8%\x00@\x00-\xf3\xefsy\x1d\x80\
+\xb7s\xd8\x03\xcf\xde}\xa0\x07\xd4]D\xaf\x8b\xe4)\
+\xd9\xb9\xc4\x18\x93\xfdl\x22\xe9\xf5{\xdat\xd2\xd0\xe1\
+\xd7x\xff6\x8f5O\x9e\x83\xbf\x08\x18h\x0c\x00\xdd\
+\xc20\x9c\xab{\x98\xd7\xe1\x8f\xf66\xbf\xecd\xef\xfe\
+\xe6\xef\xf8W\xe6\x87\x9d:o\x8cI\xbc\xb6'\x88\xba\
+\xd8}/mwN\xcd\xaf}\xeeg\xcf\x09\xc0\x8d\x1d\
+\xc0\xc0;\xb58\x96\xd7\x8d\xc3r\xd7-\x90\xad\x8d3\
+\xde\xee\x03\x13\xe5\xca\x86'\xd62\xfa\x8c~Y\xd4\xcd\
+\x7fi\xd3\x0aX\xfc\xb9\x93\xc9\xe0\x07PXDPn\
+5!\xf52d1\x8c\xe50~\xd52\xb6\x05c\xa0\
+.Y\xb5\xbe+\xe2a\x22\xba(\xce\xfb\x16\x12\xf1\xa6\
+b\xcd0\xf7\xda\x97\xb9V\xf4$\x7f\xf7\xde\x18\xe6\xb7\
+N\x1bc\xb8\xf7W_\x11\xf0%CB\xf4p\xb8\xc9\
+#\x83\xf2\xf7\xc7\xf1\xba\xadm]\xd5\xa6\xden\x0d\x88\
+w\x0f\x1e\x8d\xe6\x8e\xdf\xff|\x8cE\x8du\x11\x03\xaa\
+\xcc\x97\xe7\x93\xb1\x0d\x02J5\x5cF\xaa\x9e\x97\x81\xb3\
+\x81\xaf\x94\x8c\xc6g\xb2a\xfc^S\x07=\xbc'%\
+\x1f\x8fMM\x97\xf94\x1f6\x9c\x03/\x80T\xdb\xa7\
+\x86\x15e\xca\x05~\xa5PTd\x80\xce\xc9\x85/\xb0\
+\xf4\xfaj\xfaP\x9d\x01A.L\x06\x87Ae\xf0t\
+\x11xh\x1c\xde\x94\x00\xd4\x85\xa0\x7f3`\xc8\x058\
+\x02\xa6\xffh\xb5\xd6\xdf\x92}\xf5\xce)\xb3J\xed\xf5\
+'\x0fOX\xa8\x83WM\xed.\xb5\xe9\xb7e\x1fQ\
+\x19\xee\xedl\x9e\x15\x111\x9f\x83\xc3\x04(1O.\
+~5\xd4\x18.\xe6\x07e\xf7\x0d1\xfc\xd7L\xcd\xfc\
+\xdd\xc7\xd8(\xb0\xa8l\xfb7\xee\xdf\xb0\x7f\xc3\xe2p\
+\xadTp\xfbB&\xe3\x1ak\x86\xd2\xba\x94#\x7f\xbd\
+1\xa6\xd2\x16\x81}\x02\xe6\xca\x18?6\xea\xd1\x1c\xd7\
+0\x00v\xaf\x1ecr\xc8\x19(\x81:5j\xcc\x8c\
+\xf4S'\x82T\xb5\xc02E\xb17'\xf7\x1dc\x02\
+\x16\x5c\x98T\xef/\x1d\xbb\xf4\xddy\xdf\xff\x1c\xc7Q\
+\xed\xbcLN3\xb4\xa5\xf2/\xe3\x22`Q\xf3\xee\xc2\
+\x93\x91\x92\xf1\x97\x19\x9f\xed\xca\x94y\xa9\xcc\xdc\xcc\x18\
+\xba\xd6D\x1d\xf6\xf9Q\x5cQY9\x1c\xff8\xc6\x04\
+\xa8p\xa0\xd9=\x01fk\x9b\xb6\x7f\xd3\x18\x1b\xf0q\
+\xf2\xf81\xa6\x1ab\x883M\x0f\x08\xb3y\xb1^j\
+\x14\xbd\xaf\x7fOf\xbb\x1c95\xaeOXKt*\
+\x90\x8d\x06@9\xe2\xe6!\x81F\x01\x08\x1c\x02\xc0\x1e\
+\xbb\xc5\xfe\xd0H\xb0^\x02*%Q\x1cv\x80\xb0L\
+6\x8a+\xf165\xf1cV^\x18j\xf7\xe3&\xd1\
+:\x17l\x98S\xa3\x99\xe6h\xa7)p.\x07I\xb7\
+\x82\xbb\x8f1e\xecCa\xafZ=\x14V\x99\xa1\x88\
+\xbbU{\xb5\x88D\xee\x1e7\xc6dOte\xc1\x9c\
+z\xdb\xd1\x8a\xbcm\xd2\xb8\xb8\xf1\x18\x13\xb0\x90}u\
+\xb8\xfa\x18S-0fV\xd6u\xff\x811&M\x03\
+m+\x05\xb6q\x04N\x9e2\xc6\xe6\xd0\x02\xb00\xa4\
+j_\x13q\xcb\xfa\x16 \xa6\xbb\x8c\xee#\xb1k%\
+.\xe6\x1eQ\xfb\x9b\xf3^\x9a\x22\x09\x00\x8b\x8a\x1d?\
+\x81\xe3\xbb\xbb\xf9\x18[\xbb\xd6\x12ido\x05R\xc9\
+8\xd6~1/\xc4\x04\x03\xc4U\x1fu~\x83R\x0b\
+\xa2l\x00\xae\x94\xd6T\xb7\x0e\x22\x80\x1c\xff\xdc\x83%\
+\xb2\x86\xb9 \x83\xdb\xd4\xbe\x0b\x90\xc1h B+\xc0\
+\x1c\x8c\xb3\xff=\x9do%_\xb4s\x22\x1e[@\x17\
+?H \x8b\xc9\xc0a\x0e\xc5\xbfJ\xe5\xd8\xa3\xdco\
+%\xfa\xfb\xeeb\x18\xae\xfd\xe2\x1f9\xc6\x04\x88h\xbb\
+\xa7]\xa8D\xcfW/c\xcbD[g\x80\x03&\x8e\
+\xf9\x22z\x18\xe6\x0fm\x9e\x02\x86#\xa2\x08\x10\xab\x92\
+\x04\x00Z\xfc\xc1\x12\xedJW\x22\xcc\x86*]\x10\xb8\
+`\xc0i\x83\xd5E\x99\xed?v \xef\x8f\x9a\x0f\x00\
+<\xdc\xe8p\xc3\xc3\x8d\x16\xe6\xe9\xd7.Z\x042\xc7\
+\xe6\xd3\xfcIh8\x0f\x18+\xfc^\x99w\x0cK\xf7\
+\x0cJ/u~\xc0\x18\x06\x8e\xf6\xa8\x02|\xedU\x05\
+\x12\xf6\x81\xf3\xd0\xda\x8c\x95_\x04\xd0\x16\xe8*\xdd\xf3\
+\xf7J\xb3\xd8a\xfe\xbd\xcf\xf3G\x87?^J\xcdr\
+\x8eO\xa3\xac\xe7\x9e\xd9]y\x8cm\x9d\x01\x15\x18-\
+\x00\xac\xc3%\xc7\x98\x02\x11\x1a\x02\x98\x80M\x15_\x80\
+\x5c\xfb\x11\xa0\x8f\x01\xc6O\xf4\xdc]\x03\x8b\x18^\xde\
+\xa7\x98/\x18&\x18\x95\x02G\xf3\xc0\x8f\xb4o\x04\x90\
+\x18x\xde\x9f\xbf\xe790\x19\x04\xfe\x9dz\xde\xc5\xfc\
+\xbc\x1ef\x03\xd1M\xf71?\xa5\xd7\xce\xcb\xf0b\xd6\
+:\x1f\x02D\x00\x80\x84f\xd7\x04\xe8L\x09\x81\xab\x00\
+\x9d?\x0a8\x13\x0f\x98_~\x02\xbf\xa8\xff\xbd\xfd\xe1\
+g\x99\xe8\xff\x18c\xfa\x1c\xba:\xf0\x03}\xb5\xee:\
+5?~\xcf\x7f7\x7f\xde\xaf\x07\xc2\x80\x00?\xf3C\
+\x004\xe6\xcd\x7f\x07\xec\x01\xa4\xac\x97\xff.\x1ei\xda\
+\x0c5?\xec\x838\x13\x13F\xfbL\xf3\xf7\xdd\xcb8\
+cw\xf91&\xbf\xd5\xf3\x01\xce0\xf1\xad\x83}i\
+\xbe;\x10a\xbe\xbdO~ow\xa91\xa6\x84p\xec\
+\xe0\xa9\xe5z\xbb\xce\x14@\xa3\xd2[`\x07\xb2\xab\x10\
+\x0e\xb7\xf1\xaf\xe3 \xbf$\x8e\xde\xa0^\xde\xf98\xee\
+2\x19,\x8e\xe3U\xc6\x98D\x04M\xd4\xc0\x03o\x18\
+\xc7\xfb\xfa\x9b\x18`\x89\x05\xbez\xd1I?\xbdV\xc4\
+s\xf9\x82\x88;\x80D\x9cl \x19]\x01\xa6\xd71\
+\xa1Ta\xd5Zq8G\x05\xeb\x83S[y\xdb\x8b\
+h\xe7\xa5\x16\xf0_\xc6\x98\xd4\xe2\xb5\x7f\x92\xf9\xa0b\
+\xfc=\xa1\xbc&sXHz6D]\xe8(\xfd(\
+U6\x84\xcc\xa7@\x11\xf2\x0dQ\x87\xd0\xdf{\xed?\
+^\xe2<oO\x8d\xe7#\xd7\x8c\xe4\xee\x19cL\x1b\
+\x95A\x84\x80kk\xa3&\x14u\xf6j1\xac\x0e\x9e\
+\x80\xd3\x81\xd0\xef\xf4\xa5\x09\x08^\x1e\x06\xc6y1\xb0\
+?\x18Q-\x86\xd1z8\xd0\x90H\xeb\x18\xaa\x5c\x89\
+\x9e\x05\xf1+*\xa0\xf7u\x80<g\x18\x18\x0b\xf3\xe2\
+\xc3\x13\xc5iPk\xef\x91\x0b\xf2u\xd3\xc5\x15j\xf7\
+\xfeN\xc7q\xe7)3\x19\xff\xe18\x1bk\xadW\x02\
+\xaeB\xeeB\xe9\xa5zZT_\xd4Q\x01I\xef\xa3\
+\xdaDTJ5\xfd\xdb\xc7X2l\xf7\x1d\xea\xe1\xc7\
+0|\xcd\xe0R\xd3M\x06\xee\xe0\xef\x7f<\x0e\x83@\
+\xf6z\x17\xae\x89=\xee\xfd5\x90E\x85UBb\x9d\
+\xd5\x8c\xa6=^9\x92\xc4\x18_\xba\x96\xa6\x1c\xee\x1c\
+1\xb7+\xee\xae\xb0\xbb\xc2\xd4g\xfaZ\xa1@\xdb\xbf\
+\x80\x17]\x16\xb4\x9bt\x91\xdf~\x8c) \xf5>\x02\
+\xf3\xd4t\xcb\xf4\x17\xd5\x97\x03\xfbKcL\xfd\xeb\xaf\
+\x90\xe7\xd1&\xea\xb3\xa5\xa2\xbc\xeeS\xfb\xe1$\x0e\x8f\
+\x0bRFV\xe9\x00*\xa7@\x1c\xe5W\x00\xdb\x91d\
+\x94g\xfd\x821;\xb4\xa3S\x93O\x0c\x8b\x83\xf3\xcb\
+\xcb8\xe3\xe4?\x8f\xb1\xcdoej\x13\x88U\xed.\
+\x8a/\xc7\x80\xbak\x98/\x18 \xbb\x7f\x1ac\xab\x99\
+\xafL\xbd\x00\x07u\xb7#\xf7(\x992\x95\x98BJ\
+\x0fd \xb4E\xb3_\xd5\xe8\xa2\xba\xa2r7\x86\x80\
+\xe7+\xca\xa8\xcc*\x07>\xafG\x03\xa0\xec\x99\xc0\xbf\
+k\x05\xe8\x8a\xe0\x22\x96\xf9>{\x8c\xcd\x8e\x15 0\
+\xec\xf6\xd9[\xa6nw\xee\x18\x9b\xbax\x9d'\xe7\x00\
+\xf5W&\xdf\xc5\xcf\xd1F\x91\xe6\xe8\x9b\x07\x7f\xaf4\
+G\xc9\xc4o\x8e1\xed3\xa2[D\xdb\xfe\xdb\xe1q\
+Kfp\xb4\xed\xbc\xe3\x04\xd0\xa5\xa6\xbb\xec>\xa6\x0e\
+G'\x19\xed\xfd3\xc7\xd8\x02\xe4*\x81P*\xf5\xf5\
+cL\xa2]2\xf8\xd9\xd7'\xb7\x1b\xe3\xb8\x1d~t\
+\x8c\xa9\xbbE\xba\x19\x14\xb5=%\x01\xa5U\x90\x00\xe7\
+BL\xbe\xbbL\xedEs\x1e\xa9\x81\x17\x10\xf0Kc\
+D\xe3\xe7\x0b7\x06C\xd9yj\xed2\x93\x02\xc1h\
+\x14U&\x14\xc3\x8e\xe3%\xc3\x1e\x0d\x89\x0adG\x82\
+\xe2\x1eS\xed;\xc7\x13\xc0\x07`P:\x13\xc6N\xb5\
+\x0f\x03\x10c\x1eahe\xfd\xab\x1d\xa4\x8c9\x8d\x0e\
+5\xf9_2\xc6\xb4\xafs\xaf\xd7}\x91}\xb3\xbf\xcc\
+\x18\xc7\xd7\xfb\xe71&{\x96\x12\x87\x02\x101/\x04\
+\x94J\xe7\xd8+\x80njsK\xbbC\xb7\x02\xfb\x83\
+\xe6K2\xf7U\xcb\xec\x1e\xe6O\xe4\xf3+\x1d(M\
+&\x01<`L7\x14L\x1b\xda$\x18\x98\x9e3\x01\
+\xd7\xe1\xf3\xc6\x98~\x9f\x1f\x10\x8d\x1a\x22\x99\xb4\x12\xca\
+_\xc0h\xa0uA\x13 Z\x14\xa5\xe1\x00`\x22\x92\
+\xc8\xcf\x91X\xc2X\xe30\x03\xb0\xb4\xf9}C\xee\xb1\
+\xf3V&\xa3R\x9d\x02\xf4\xd9M\xb5\xf0\x09\xa40V\
+\xaa\x14\x15 \xa1\x9b\x89\xd2\x87\x00\x0a\x98_\xc5\xf0\xc0\
+h\xb4\x8e\x80U\x81)\x11>\x09:\xc0\x04G\x85\xbd\
+\xa2&.\x80\xc4\xc8\xf9\xe216\xf1\xc9:\x9f\x02E\
+\x81\xb7{Gi\x9f\xc4\x85\x1ae\x22\x8d\xee}\xfb\x9f\
+\x1f\xc1?A\xb1\x17h\x0a\xb0\xcc\xa7x\xa2\x05\xc2\xa7\
+1\x18\x04\xc4\xbe\x13U\x95\x98l\x01\xcfi\xfed\x18\
+\x03\x15\x17\xf8}\xc0\x0bqL\x098\x00< \xfd\xbc\
+1N?\xe7\xf5\xf7\x80\x0c\xf7\x92\xcf\xd3E\x84\x01\xc6\
+\xee\x93\x00\x08\x1d`,\x7f\xa3g\xaa[\x80[Z\x09\
+\x98\x12~O\x5c\xd3\xdb\xea\xf5\x9a\xff\xdeF\x9d\x7f\xd3\
+\xbb\x97\xf1'\xfd\xdd\xc5h\x02\x94\x7f\x85\x92\x0fPw\
+\xce\xcc\x87@W\xe0\xdaK\xbb\xed\xe7\xb9\x8d\xfb\xcch\
+\xb0\xbe\x9e\xbbk\x0f\xf8\x1c\xbdM\xa0\x84.-8\xeb\
+d\xbe\xf9\xe9\xe20\xf3g\xde\xda\xbe\xa8\xd7\xed\x1a)\
+\xde\xc7\xf9\x05L\x8b\x1fSrW\x09E~\x958U\
+|\xec\xbc\x89\xcf\xbb6BgpX\x1f\xffn>1\
+\xa9\x93\xb8=\xdcm\x8c\xe1\xa6\x8em\xf4\x8eL\xf0\x1d\
+\xa6\x0d\xf1\x86%\x07\xb9m\x5c\x07r\xd4\x0e\xfe\xe5\x94\
+9\x22\xf6\x91\xcc\x10\x11\xb2\xe5\xef_\x7f\x11b\x05\x02\
+\x0c\x1fD\xe9\x00\x06\xe7X\x98\x7f\x0d\x05\xe3\xf2\x99\xe8\
+7M\x08\x9d\x05\x19\xc7\xec_\xa7\xd7\x198\xe7\x9fF\
+\xa4\xed9\xdb\xcfK\x1e\xea\x87\x034\xdc`2\x982\
+Q.F\x0e\xdb\xd0\xe4\xd9o\xd4\xfa\xc5\x11\xbe\xdb\xe4\
+\x88\xa9\x8d\x0f\xf2\x5c\xb5]\x1c\xc6\x18\xe8\xddK\xc6\x98\
+DR8\xe0=\xf0\xe3\xd8\xb90l`\x1b0j\xb2\
+\xbb\x0f\x8e\xb1P\xc7W\xd1\xa8\x1b\xae\x99\x84\xe3\xa6\x5c\
+\xd7\xeb&\x01,P\xb7C\xe5\xdc\xddp\xedSN\xec\
+\xb1\x0c6\x06\x06G\xca<\xda@\xe6\xd9\xcf6<\xea\
+%D\x0bB\xed\xf7\xac\x13d\xfe\xbf\x87\xaa\x97\x12\x8b\
+\xbap\xee\x19\x80\x03pCLH\xc0f\x1f\xa2\xec\x12\
+\x85\xfa\x9fc,\xe22k_\xe1;\x8f1\xa9\x8a\x0f\
+w\xe5\x86[\xf7\x8a\xcaH\xc70\x16\xc5\xf6\xbacL\
+\xed\xf9\x5cLCE\xff\x07\xe2\x08\xff\xcd$f\xf7\x8a\
+ \xe2Tq#NW\x8c\x8fd\xa2\x8b\xa2O,R\
+\xad\xf3[\x1aUK\x89\x80\x0c\x12D>@\xd1\xee\x89\
+\xd1\x0eh\xfdb\x8b\xa2\x1c1\xc23~7\xfb\x8e\xa6\
+\xc5s#\x9ad\x9f?\x22\x99\xc9\x5c\x94E\x11\x95\xa1\
+\xb0\x1f\x13PT&\xfd\x0aq\x08\x04\xaeY'\x99\xcc\
+j\xb3\x98\xcf\xab\xfda\xbd/\xf1\xa0{\x05pH\x00\
+IDH&\x89\xc3\xab\x0b\xc6\xe1\xc1c,\x22=_\
+y\xf8\xca\xcd\x81- -\x81\x0bq\xbb2\x94\x1cM\
+\xfb\xe7Z1\xa4\xa72\xaf.,\xf6\x8c#)\x80\xa4\
+\xb2J\x0c\xd5\x85e\xff\xd8\xff\xce\xad\x8b\xdeE#\xc3\
+'\xb0\xd5\xee\x88\x8a|\xf6\x17\xb1\xc7r\xf4\xbc.\x03\
+N\xfd\x1feTfA_k\xed\xc8\xa8,\xa7=\xe1\
+\xe1\x83c\x04\x80\xbd\xf3\xb4\x9f\xd3\xee\xa8\xd6e+m\
+Y\xd7\xd7\x85\x05\xa8\xa1\x89\xa1\xc6\x15\x13\x84\x98\x9f\x8b\
+V\xcd?\xbb\xedy\xb3\xae\x98\x0a\x05Tr,Q;\
+1v\xe2\xa8\xa2\xe0\x17\x15VI\x0c{(\x93%C\
+\xe8\xf99\x12\xb4Td\x12\x83\xec\x17\xe3J\x0d\xb1\xc0\
+R\x1b\xae\xa8\xf5\x16s\x09\xa5\x9e\x03\x8e\x9a?\x18\x5c\
+\x0f\x9e\xf6\x91\x8cF2\xf6\xd5\xc6\xab\xabQ\x03\x90\x22\
+\xa6W\xed\xc0\x00#D\x0e\x9f\x7f\x9c\x85\xe7/\x19\xb4\
+5 =\xb3u1\xd0\xae4%\x08\x05\xbc\x10\xb9;\
+\x19cz\xdew\x8d1\xd5\xd4+\xb1\xf3~\x18\x0b\x80\
+T\xf7\x80\x8c(\xa0\xc6\xeba\xe6\x014s\xcfU\xa9\
+\x8f6\x99\x80s\xef\x83\xf2k\x9f(\xcd\xb2\x9f\xac/\
+\xc7\x0e\x00/P\x22\x0a\x86\x8a\x9fy.\xb1\xd2h\xa4\
+\x14\x15\x99&\x8e\x84\x05\xc6YJ\x0e\xca\xcer(\xe3\
+\x07(\xcd+\x00A\x09\x84\xfb\x8d\x03&P\xa4\x19\xf0\
+\xb81\xa6\xcf)\xf3\x7f\x9d1\xa6\xe7C\x81\x16\xe0\x00\
+(\xc2\xc4\x02\x1c\x9f|\xf5\x18\xd3z\xd9W2\x9a\x00\
+w\x0e'\x87\x9a\xa3\xec\xbf\xc7\xee\x14\xd5_&?\x00\
+\x94..\x80\x82j\xdb\x85\x89\x03\xf8p?c\xb4\xe9\
+\x0fo\x9e\xad\x13 g0A\x9f>\x9d\xcb\x94\x84\xd5\
+\xb9\x17\xb8\xf1\xb7R\x92\xe8\x5cb\x1a`\x86\xd0D\xa9\
+L.\xed\x0a@\x02\x15\x7f\xfbB@\xae\xfd\xad\xdas\
+\x94u\xfb\x8c\xff\xca\xee\xca\xc8nm\x97W\x7f\xe4\x8d\
+\xc9\x98*\xe9p\xde1\xdf\x94\x9e\x11\x17\xd4\x86P\xa9\
+ \xed\x9dh\xb2\x94\xff\x08\x18\x90\xf1\xa7\xf5\x10FP\
+e i0\xb0\xd3\xe6\x95_\x0d@\x01\x10\xb0?\xa8\
+\xe5\xee\x17\xfb\xc2\xbd\xa7K\xcc-\xc7\x982\x89\xfc-\
+\x01\xc6}\xd7DD\x01\xc4\xee=\x01\x85n\x22\xc4B\
+\x05R\xec3-\x11\x19L\xfbT\xf7\x04\x01\xbd\xe7E\
+\xf5\x17\x10\xf7Zy\x19w\xef\xd3\xc5\xf9\xac\x9f\x80\xd4\
+\xfa\xba\x7f\xd8\x1b\x816\xa6\x1e\xfb\x12\xbb\xa8\x04\xb12\
+\xce\xd6\x01@*\xb0\x13@\xfa\xce\xff5O\xecP\xef\
+?\xaf\xe4\xd8\xf9\x95\xd0\xec\x9a\x02]L\xd0\xbd\x95\xfb\
+\xbe\xf6\x83\xf5s\xef\xb8\xa7\xac{/i\xf8P\xeb\x8e\
+d\xbd\xf9\x9b\xf6\x91\xc0\x9c\xbd\xe4\xe7\x8b\x9f\x00\xa9\x9f\
+\x1d\xe3\x22D\xd4\xed?\x80\x8b\xf5\xf1\xbe>\x9f\x9f\xed\
+\x0f\xcf\xcb\xce\x89\x1f/N$\x100\xd2\x81\x05\x8c\x18\
+\xe2\x94\xe6\xd1:\x01b\xcc\x9b\xf7\xb7\x7f}\xf7\x1cM\
+<\x100T\xe2\xd0\xbd\xdb\x1c{o\x1f\xb0\x9f\xee[\
+\xeb\xed\xde\xc5l\x93\x88b\x87\x95\x18\xf0\xd7\xc5G\xf6\
+yo\xa7\x0c a\x9f\xf9}\xee\xe5\xdcg\xa7\xaa\xc6\
+\x90\xa37\xa6\xe3\xed\xad\x0d\xc7[&Us*\xd1\xe3\
+\xdf\xff1\x81\xc4\x17M\xfd\xe9\x89tAh\xc7\xf4]\
+!\xb7\xff\xac\x8aLt\xf0\xc3K\xf5\xf5z` d\
+\xff8\x05*\x02Q\xdf-\xc8\xf8\x98\x9f\x986\xf8\xfb\
+\x97\x06`\x9b\xf8\x1f\x87I\x9b\xaa\x91W8g\x9a\x08\
+\x081\xf5\xf7\xb7\x1d\xc7[\xa7\xb6w\xc4\x00\x1f\xb2\x8c\
+\xedb\x94\xb9\x97Y\x83\xd4s|, \xf1\xbfo\x0d\
+\xf5\x94\x9a\xaf\x85\xb7p\x1co\x8e\x89\xcf\x07\x18pa\
+\x00 \x9e\xbdR7\x88{\x1d\xe7d\x05\x0a E6\
+`2a\x87\x1b\x1d>\xf7\xf0\xb9K\x1b\x97%p+\
+\x11\xb8P@\xd4pR}\xaf\xf9\xecb\x13\xd6\xb5\xf7\
+\xcd\xe4\xf8@6\x19j\x142}\xb1}\x99\x1f\x9fG\
+\xc0&\xd3\x83\x22\x9e\x0b\xb0J \x22>#\xa36x\
+&\x83i2\x9a\xda,mm\xfe-\x07\x9c!\xa6\x05\
+\xa0\xc6r\x88x|(\xaa\xd2_\x9cy\x7f\xf6$.\
+\x15\xd1\xc9\xa2\x8cF\x9dy\xff\xbc1\xb6@\xfe\xe4~\
+cL\x22Q\xbf5\xc6\xe4\xc8\xdc>5\x83\x0c\x0c\x84\
+\xf7AiK\xf8w1\xf4)!\xa8\x80E\xcd\xb9\xfd\
+\xf7\xcf\xa9\xad\x8ccV\xff.3\xaef\x16\x02\xfd\xb2\
+\xcc\xf3}\xd2~\xe8\x9c\x5ch2/\x1cZ\x81\xa8\x80\
+\xfd&)\xbdI\x7fr\xe2w\xf6\x0b\xc7g\xf7\xba1\
+\x8e\x9f\xff\x91'\x8f:y\xd4TS\x8b9\xc3Q$\
+\x82$\x03\x96\xcc\xec\xc9\x15\xc6\x984+\xbek\x19\x05\
+x\x94\x08[\x1ca\x86oY\x86\xc3\xd4G\x9e\x98\x9b\
+\x8b\xff\x03\xb9\x10\xcfMi\xcam\x8f\x8e\xfcm'q\
+6\x88-\x00\xc5\xef\xdd=\x81>\x83\x88z\xce\xa0c\
+p\x5c\x9c\x1ao/I\xe2`\xba\x009\xdc\xa9m\x03\
+\x14\x9a\xc7\xa2.+\x85\xc1@\xf0:j\xd9\xd58s\
+(e\xe8Q\xb1]\xa0qP\x0eO\x1dc\xb2\x97\xec\
+`(\xe5\xe5\x18;w\x8d\x11Q\x81\x86\x0b\xd6\xeb\x03\
+\x80\xd3W\xbc(\xda\xd4\xccQ\xb7\x03TV\x80\xa3\x0b\
+Bj\xdc*\xb3\x1cM\x8c\xa2\xbc\xbb\x7f\xb4\x15\x92Q\
+\xcc\x85W\xb5\xf7j\xd98\xc0\xee)%\x0b\x02R\xfd\
+\xc6\xdd7\xc4L\x01\xa02\x802z\x00\x19\xf3\x80j\
++pE\x81g\x8f\xa8\x9dc\xde8\x87\xa99/q\
+Jb\x8e2\xc5j1\xf5\xe7\x06`\xc9\x0c\xe8\x1b\x1e\
+\xb1\xb2R\xd5O\x86t\xc0b\x03\x18\xab\x9a\xef\xec\x0f\
+\x19k\xda\x0b\xa5\x91\x10\xad\x0d\xebu\xf2mcl\x00\
+\xb0\xe7+\x95|\xf3 \xc3E\xbb\x03\xf0\xc9nd\x7f\
+U;C\x22i\xda\xc0*m@\xb5\x8e\x83G\xfc\xa8\
+\xdaE\x861Q5\xe8\xa8\xe5\xceW\x1c&5\xddu\
+\x9fh\xc7GLL\x7fs\xeb\xae\xad\xedm\xc7\x98\xfc\
+\x13\xf7jS{.\xad\x07]R\x88\xb7]c\x8c\x09\
+\x90WZ\x91\xee/\xa7\x95\xc8y\x1e\x01\xb8\xdax\x0c\
+\x88\x88@\x09\xcc\xab\xfb@\xe6\xb5\xf6\x19f \x07\xd5\
+\xb9\xcc\xbc\x17`\xe5\xdf9~\xf6\xa3\xfb4%f\x95\
+q\xb5\xefi\x5cD4\xb7\xba9\xd0\xe6\xe0\xd0\xba\xa7\
+\xdd\xf3\xfc?\xeb\x86\xca\x8er\x0f\xb0\xe0\x90\xdb\xdf2\
+\xa9\x18(\xf1\xab\xf6\x1f\x1ac\xd2\xc8\xf1~J^R\
+\x82U\x00\x13\x8d\xc03H\xe9\x00\x00 \x00IDA\
+T\x1a5\xfb\x98\x92\x02<~I\xd7\x1e\x0a\xf3\xaa\xba\
+\xa7H\xb8\x98?\x01\x1aFA\x98\x19\x05\xb8+A\xb1\
+\x7f\xdc\xef\x01vJT\x8f\xf6\x00\xc7_i\x0b`$\
+\xf6\xa6D\xa0\xf9m\xc4-u\xed\x91@\xc1(\xd1V\
+\x8cz\xb8\xf5\x01\x00\x08\x8ch\x0e(\x01\x10@\x0b\xb0\
+\x04\x12=1\xc7\xee\x01\x8a\xdd\x0b\x02\x8dh4T\xa0\
+\x048\xc7\xb0\xf1{\x12\x0b\x80BL\x82\x94\x0eV\x82\
+P@\x84\xd2\x8f*\x0dhh%\x00\x15 {N\xeb\
+* rO\xa3\xb8\x0bT\x05n\xc4^\xd3F\x19\xc3\
+\xac\x80k\x00\x06`\x09`\x98\x92\x93\x02\xac\x01\xdf\x80\
+\x0b\xeb,\xc0\xed\xb5\xfa42\x94\x04\xf8\xdc\xeey~\
+\x0c\xff\xb9\xb5\xc3.-\x00\x81\xa7s\xee\xf3\x0a\xb4\xbd\
+\x9f\xd7\xf1<Eam\x99|\x00\x80\xdf\xb3?\xec\x1f\
+T}\x81\xbe\xbf\xe3\xdf\xf4\xb6\x80\x80\xa5\xae\x15\xd03\
+\xd2\x00\x00\xfb\xa5\xab\xf0{?_\x80\x07\x9f\x83\xdd\xee\
+m\x02\xbb\xb6\x80\x84g\x07\x22\xcc\x93\x7f\x07\x14\xf0#\
+\xbc\x9e8\xa8\xbf\x8f\xee\x1a\xd6\x93_\x19\xbf\xa8\x98X\
+\xe6\xd3=\x9asS\xc0\xbfsDs\xc7\xfd\x02\x08\x00\
+4_m\x8cI\x8b\xc0}\xd3\x99\x13}=\xf8\xe1\xfc\
+\x03\x8c\x5c\x89\xd6\xd8\x8bS\x850|l\x15#Z\xb6\
+\xdf\xdfO\x0e/j\xd8L\xd1y\xfd\xe4X\x8e\x1a\xc9\
+/\x9d2\xdd\xb3\x03{F\x13\x17<5-\xac\x0d\xe8\
+@\x8c\xed\xf0\xf18\x80\xd4#\xdf=\xd5\xda{\x9d\xf1\
+\xd8s-\xc4\xdc\xee\xe2\xb31\x18\xaf\xdd\x1c\xaa\xaa\xfd\
+\xd5G\x1aR=\xa8\xc8\xa36\xff=\xc7\xf1\xeedz\
+_2e\xb0\x86\x1b0T\x98\xef\xb3R\xe9QF+\
+\x93)\xf3kcr\xcc\x93\xa1.\x8a\xf4\x1d\x83\xf8\xa0\
+\xa6j\xef\x15d\xb5\x1c\x0e\x1b\x14B\xb4\xf57_7\
+\xa2\x05\x96\x89\xe0\xa8%P/1&\xe2\x18\x02D\x01\
+\xb7\xc0\x8bxJ6\x806w\xa7\xd5\xde\xd0\x0c\xb0\xd1\
+\x19\x0a}/\xa3\x1e[\xcf\x03\xd9\xb7_\x1c|\x06\xa3\
+\x1fd\x94p\x19\xb1\xa7\x8c1]\x00\xfa\xf4R]\x07\
+\xc4\x9c\x17\xa47\x14\xbde\xd7||B\xe0\xbbj<\
+\xaa\xda\xc8\xc7\xfe\xc1T\xa3Fd\x91H\x94\xfd\xcdq\
+\xd0u\xc2\x05\x96}\xa4O\xf2\xee\xaf\xc7\x98J;n\
+\x13\xca\xa4\xb6BjP\xd5\x1c\xca\xf8?1\xea\xbfT\
+@{?O\xeb\xc5q\xf2\xdf\xff4\xcf{\x8d1\xb6\
+\xcc\xc1\xe1\xeb\xd7Z\xcf\xa2:\x9e\x1d\x07\x85h\xd9\xef\
+\x8d\xb1\xa9\x81\xabiF\x85\xde\x9d?\xc6\xb6\x9fK\x93\
+ \xb5\x8dE\x01\xa6\xd6\xeey|g\xf8\x93QQ{\
+\x0aQW\x1aS%A\x1c\x15T\xda\xf4\x89\xaf\x8b\x94\
+(\xd2\x7f\x8c1\x19\xc4W%\x83\xf4\x92P}\xbf5\
+\xaa\xd7\xd6\x19\x15\x1b\xc5\xf5~\xbb\xafZ(\xb2\x9f\xca\
+\xb9q\xc1X_\x06\x9f\xe3\xc7\xd1\x80hs\x14\xd9\x19\
+\x175\xc0\x8e\xddR\xc3\x86\xc9\xf1+\xab\xc3p\x9c\xdd\
+\x95\xda\xcfAeO\xf5gFQ\xe7 P[F1\
+\xff\x861\x8e\xdf\xef8\xc6q\xfb|\xfd\x18S`*\
+C\x9b\x12\x9f\xaa\xf1\x86\xf8\xb2\x1b\x02G\x0e\xba\x9a[\
+\x01Z\xd7\x18\x08 \x02`D\xb9\xaeR \x9f#\xb5\
+\xab2w\xfa\x9a\xcb\xa4\x16\x92\xde)\x8d\xec\x02G\x14\
+\x85\x18\x85\xde\xba\xb8\x18}\xce&\xf6VvJ\xa0F\
+\xd4\xd29\xf6\xfe2\xff2\xe6\x80*\xe2w\x02j@\
+\x94\x80]\xa0\x8b)\xe5\xe2'\x92\x86b\xcb\x81q\xd1\
+\x03\x141@d\xbad\x0a\xedC\x8e\xbf\xef\xba\x05\x08\
+\x00\x89\xfe\xe9\xcb\xee\xdc\xa0\xe2\x06\xe0\xdc?~\x8c\xcd\
+aV\xebw\xc6\xa3\xcf\xf8\xd1\x85\xd1\xe3\xdc\xa7+G\
+\xd5\x1cr0Q\xf6\x03L\x17C\x22\xfb\xa6\x986\x09\
+4\xaaF\x1e#-%V\x15\xc0\xa2\xca\xca\xfc\x01b\
+\x89Ej\x83&\xc3\x16M\x93\xc3\x03\xc6\xd8\xee\xad\xea\
+\xca\x13\x8d\xa0\xa2\xa0\xcb\xc4\xde{\x8ce\xdf\xbeb\xd9\
+\xb7\x0f9Z\xdb\x87L\xb5\xf9)u:\x5cz\x8c\xe9\
+\xbeU;o>\xf9\x15\xb4?h\x11\x01\xc6\xb5S\xd5\
+\x1d\x84\x08\x15F\x9f\xfbM\xc9\x1a\x91\xce\x06\x9cTW\
+\x8c\xf8%\xfb\x97\x8d1\x95\xaa}$m~\xed\x0f\xfb\
+E@\xc3\xce\x01\xc0\x94\xe6\xb0O\xecXJ\x84\x04\xa4\
+\xc5|\xd3\xae\xf0~cL\xcf\xa7M\x1f\xbbF{\xc0\
+y\x91\xd8P\xe2\x94\xfb\xa3J\xb3\x00\xad\x00)m*\
+9\xe4\x12\x1a\xce\x09\x00[{?\x7f\xa7\x9d\x18\xbfP\
+i\xe55\xc7\x98\x98OJ\x0b$\x1a\x04\xf6^\x8f6\
+K\xceO\xad\x0b\x80G)\x93s\xa7=(\xff\x85V\
+\xc1\x99c\x1c\xbf\xdfd\x8ci>u\x97\x900Q\x8a\
+E4\x8c?\x11\xc0\xa4\xba\xc9\xb8/dp\x01!2\
+\xe3J\x02\xd8e\x0c$\xc0\xcc\x93\x97\xb11\xb4t\x07\
+\xe8\xdd)\xf8\x11\x18\x0e\x98q\x02C\x01\x98}\xcb\xcf\
+\x044\xa9\x8d\xa6]\xd1\xa9\xdd\xd6\xe7\xd0\xda\xec*U\
+\x15\xf8\xd8\xaf\xfc\xb6\x00\x1a\xe5\xdf\x01r\xf8\x0d\x98\x1d\
+\xec\xa8\xfbB@\x8c\x09\xa4\x14\xce\xfe\xd2VM\xc6\xdc\
+\xeb\xc9\xf8\x02\x0a<\xb7\xfb\xd3\xbd\x84\xe1'\xc0\xf3\xfb\
+\x98#\xf6\x8f\xe7\xb3\xef\x00\x12\xfe\xde\xf3\xca0\x0bD\
+Q\xcd\x01s\xbd\x86\xdc\xdf9\xbf\x98YiOX\xfe\
+\x95\xccv\xefV\xd0\xdb\x9f\xb3\x17\xee\xd1N\xa1?\xf3\
+\xc2\x8cH~\xedi\x99y\x9fK\xa0.\xb04O\xe2\
+\x91\xde}\xc2\xfb\xf8=\xfb\xe6\xe2\x80\x01\x81\xb8y\xf0\
+\xfe\xe2\x04\xaf\xd7\xbb\x1a\xb0\xdf>\x87R\x08v\x06@\
+\xd3\x99\x0e\xfcV\xf1\x8cs\xd0\xbb\x16\xd8\xdf\xbe\xfb\xfb\
+\xce\x00u\xae\xed?\xf7\x82\xcf'\x1e\xf63&\xb3\xd2\
+,\x00\xa4\x84\x97v\x9cJ\xb0\x12wVb\x14\xb0\x87\
+\xf1b]:P\xe39\x94NGC\xac\xe6'\xe7\xe0\
+T]\xb4\xc4\xff>\xb0\xe4\xd46\x8a\xca\x9b\x97\x06`\
+[\x06\xf8S\x8bK\xbd\x8at\xfd_\xc9,~\xc1d\
+\x88\xf6\x8b^\xfa\xb6A\xc6\xf4\xed'Cb\xc3\x9e\xb9\
+\x90\x1c\xb7\x9f\xc7\xb6\xb8\xe1t\x10\x94\x10p\xf4P=\
+\x00\x02W[\xaa\xd17\xf1>\x1b\xa6\x19\xb23~r\
+\x19\x9b\x08\x0aJ3\xb5q\x8e\xb3\xf6k\x03\x1f\xb9\xe5\
+D\xc1\xfb\xdeel\xb5o\xc9\xc4V\xad\x19\xc4\x9a\xd8\
+\xcb9\xa9e\x95\xe9\xbdG\x1c\x0e\x8e\xa4\x8c\x08\xaa)\
+\x87\x94A\xebm.\xcc\x8f\x8b\xff\xff\x10v\xe7\xf1\xfb\
+\xedS\xdd\xf8\xcf\xbe\xce\xd7p\xe2\x84c\xaa\xcc2\xcf\
+d(3eH\x08?Cq'\xb7\xe8\xa4\xe9\x8e\x06\
+C\x85R\x87FE\xe6\x84\xcc\xa1\x92\xc8\x98\x88t\x17\
+R\x99B\xc2\x91\x84c\x8a\xd31|\xaf\xeb\xdek\xef\
+\xf5\x5c\xfb}\xd6\xf7|\x7f}\xd6\x1f\xd7\xe33]\xd7\
+\xde\xef\xfd~\xaf\xf1\xb5^\xab#\x05\x04\x96X\x9c\xad\
+;\x92:\x10\xb4\x07\x86\x0c\x19\xfa>\xdf\xb3\xf7\xdc\xd8\
+P\x0e\xb2W\x0e\x93\x0cm\x06\x1a\xc55\xe0\x80\xf8\xbb\
+\xdc\x88\x05!\x15\xe0R\xf46h\x1a\xdaR\xe0\xa0v\
+\xc6\xa4\xa9\xac\x806gF}\x0e\x8f\x96\x1eK$s\
+\xb5\xbe\x02\xd6\xdc\xa7\x0b\x84\xf7\xbe\x1bds\xe9\xb5\x7f\
+\xc0V\x11\x5c*rO\xd9\x14\xf3\xd2\x0b\xf8\x87\xc3\xfe\
+f\x08\x90\xd7q\x08\x9e\x97\xd0\xb0\xcb\xe6\x98\x9c$\xd3\
++6c\x90\xd6$E\xab\x84\x92\xeb\x14xJ\xa4P\
+\xe0\x14\x0c(\xfdm\xd2\xa1M\xc8\x9e\xe9\x05\x87o\x0a\
+\x19X\xb0\x7fr\xad\xc8\xedn\x1f\xb2\xad\xd7\xee\xc1!\
+\xf3\xeb\xd5B\x86\x80_\xef=C\x9e\xec\xd6\x05\xa9~\
+CB\xa8;TL\x00\x9f\x90w=\xbcE\xeae?\
+\xc9\xac\x0b\xe4)&\x95\x0b\x8a\xff\xd3\xb9\xff\x1f\x9a\x01\
+\x94\x9e\xde'$\x9b\xfb\xdd\xd6\x00\xf4\xf0+\xe9H\x83\
+\xc0\xe7\x9c\xf0B\xe2p\x90\x90U\xde<I\xc9\xbe\xe1\
+\xec,\xad\x87O\xac\x15\xdc\xe9jY\xb1a\x00;D\
+\x8cC@\x9f\x80(\xda\x8fo\xc8\x8a\xd8\xb3\xd2\x01\x82\
+\x14zh&\x00ej\xb5\xa8 \xc9\xd2\x13\x0a\x81\x00\
+1#P@\xc6xf\xc8@*j\xff I\xe4\xb0\
+q\x80[\x86<\x86\x80.c@\x9dw\x95y\x88.\
+\x06\xd9\x18/\x09P\xfbO\xa2L\x82\x83\x81\xc9\xfd\xbc\
+\xbfa\xc8\xf0\x1c\xe9/\x106\xd7\xc3`A\xa2\xa8\x84\
+\xddi\x1d\xcfYz\x89\xa3\xab2\x9b\x99|\x99\xf0J\
+p\x08LT\x94\xe8E\xfbSEI%\xfd~YQ\
+\xcd\xd6\x82\x1a\xb7\x86\x0b\xe0\x02!\x83\x1eJ\x07\xa1Z\
+\xb9\x04\x8e\xf6\x87@M\x82E\x8b\x0d(\xa4\xd6\xad\x7f\
+\x0a\x19zO\x05\x9a\x198\xcd\xfbo\x96A\xbfj\xb1\
+J\x92@\xfb\xbcz\xce\xb3G\x19\xa9\xdd\xe1\xda!\xc3\
+zC\xec<!dp8\x12\xc14\xbd)dp\x80\
+\xecGz%I+\xabW\x10B\xe5\xb7C\xb6\x9f\x9b\
+\x22\xb0{g\xc8\xc0\x8db\xdc\x5c\xb2\xf6\xef\xdf\x192\
+\x8c\x1b\xc5\x9d\x80<\xadq=TK^B\xe8k\xdd\
+\x93L\xae\x02\x5c\xa4\x85\xaf\x9d\xf5\xf0k\x97\xa9.K\
+\x22\x7f\xd6\x93\xb3lz\xd18\xbcz\x1e\xc8\x1b\xb7\x84\
+\xf7\xea\x87\x04\x9ep\x1c\x13z\xc5\x90\xc1\xbe\x19\x1f\x87\
+3 \xc9<\xab\xa5)\xed\xb3V\xa2J@\xe4\xd8?\
+\x88\xa9\xe2d\xc8\x02\xc1R\x80\x08=\xf4\xf9\x90\xa12\
+\xcf\xbe\x80d\xd3\xef\xfc5\x09b\x08\x15\x90i\x89\xa9\
+g'\xc2\xed\x95\xb3\xf5y\xe50\xbeM@\xe5\xdck\
+\xd5\xa1\xe7\xe8\xed\xde\x02\x80\xf3\x04\xc7\x07\xe4\x87\xfd\x9a\
+-\x19\x95\xf8\xe6h_8\xed\xca.\x0b\x13\xfc\x84\xbf\
+\xca\xd6\x18\x85\x86\xe4\x861.pzo\xc8P\xb1B\
+\x9a\xf5\xac\x90\xc1\x0f\xe8\xe3 \xb5\x0aH\xf4\x0b\xb8q\
+\x84\xd0_\xf4g\xe0W\xaf\x9f\x88\xbb!\x81r\x0c\xc9\
+\x9e\x00FE\x18y\x1e\x07\x9e\xc3\xce\xc1\xd6\xdad\xba\
+CL\xb5\xba\xdf\xf0\xbe\xec\xbcu\xb2\xbeZr<\x07\
+\xd7\x03\xb9\xe1y\xf0\xcf$z{\x8ft\x87\xbaC\xa8\
+@.\xf5\xb9\xea\xfcO\xd7\xafP$\x80:^\x02\x80\
+\xbd\x85p\x10\xb0@l\xd0\x8f\x10+\xa6\x18h\x89R\
+\x91WY\x17`\xb3\xb7Zj\x90\x14\x0b\xa8\xac_C\
+\x08\x14d\x9f\x9fO\xcfy~*\xaf\xad\x05\xa8\x12\xdb\
+Z\x01!:M\xb3\xd2\xc2\xa2P\xc7\x9e\xb9\x0e\x09U\
+\x01\xbf@\xd2\xfa\x0b\x14;B\xa0%\x02\x8a\x94\xae\x7f\
+\x8e\x80\x9e}\xf3\xda\xfd\x16\x88SH\xc51\x0e\x1b[\
+\xb0\xbd\xf2s\xbc\xbf\xe7\xdc9\x15\xac\xdf\xff\x94\x00\xf0\
+9\x9d\xf3\xaa\xb3\xd6\xb7\x9f\xd7\xf5:\x0f\x9d\x0b\xc0\xb9\
+\x95\xe8\xc2\x19\xe2\xe7\xee\xc3\xf3\x15G\xf2[%2\x9c\
+\x0b\xeb\xe6z\xfc\xdcs\x10O\xf5\xde~\xe7\xa4\x8f\xdb\
+\xe3\x0f\xf8\xf2\xfc\xe9\x0f\xf1\x9f\xf3\xaa\x00\x92d\x9f\x85\
+\x80t\xee$\x0c$\xb8r\x1d*1\xed\xdcX\x7f\xd7\
+\xd9\x13&\x90Z\xfc8$\xbf\xd9\x92td!i\xf8\
+\xdc\x10\xa8whFp\x86>i\x80\xea\xe7\x01\xc6n\
+_\x15V\x8e\xd9:\x8ai}\xb0_\x19 %\x1c\xb9\
+`/\xbf\xe46]\xa0\x02\x02\x1bME,*\xc9\xef\
+\x1f\x16Z/e\xb8\x8d7\xcc@\xf2\x8a\xc3\xc6\xda-\
+&f}\x9f\xb1GB\x02A\x851[\x04\x16\xb6\xe2\
+\x9b\x0f\x06\x89\xc2I\x07xw\xe9\x90\x81\xb5\xdb\x03t\
+\xd0d\xe6\x90\x1d]/d\xa8\xe0K \xa4\x03S\xa4\
+Z\x1c\xd6]\xeb\xf1\xb4~z_\x19r\x1b\x06I\x9f\
+\x16\x82\x9ei\xf2\xe0[\xc6\xaf2\xe1\xc6\xf00@\x1b\
+I\xdc\xfa\xf7\x1d\x22d]\xfb\xc1\xf5<U\x9cAW\
+\x1c\x5c\x8e\x89\xf7\xd3\x9bN1\xf6\xf9\xa3\x0e4\xc82\
+E\xc2\xf0\xe9\xd14\x17<\xa1\x9e\xfbw\x87,\x15\xf7\
+\xb5\xf7\x93\xa1\xd7\x1b\x0f\x8a\xaa2h^\xad\xc0#\xc8\
+\xabn0\x90\xee\x8d\xbdK\x9f\x1b2za^\xde>\
+T\xaa\xf4L~o\xc8p\xfd\xbf\x90\x01\x9e/\x8a[\
+\x06\xfcV\xb9\x1fp6x~\x8d<\xb1\x02\x14\xd0h\
+\xe4W7_!t\xfb)d\x1b\x9fSl\xe5\x09M\
+>\xf1\xa6'\xde\xe4\xc4\x9b\xcc\xdb\xeb\xf1\xbb\xdf\xd9\xcd\
+\xfbvw\x8b\x90\xf9\xf7\xff\x1d2\xf4d\xca\xbc\xaa\xe0\
+H0\x19\xd3iL\xa1\x1eb\x8e\xd8\x1f$\xbb?r\
+\x97$\xf9\x011R\xc1\xdb\xbd#d~\x9fK\x85\x0c\
+dB\xc6=%\x17C\x9dK\xfb\x12\xd4\xd4\xf5}c\
+\x9b?\xfd\xf6\xcc\xec\xaaH\xaaP#_bh%\xe6\
+\xce\xca\xc4\xa3sD\xf1\x83\xb4\xeb\xe5K\xce\x80J\x08\
+H\xc8px\xe8%\x06\xfa\xd5\xe9`H\x8c\x22\x81\xfa\
+\xe9u\xeeyA4\xb1c\xcbH\xfb|\x09<=\x81\
+\x02\x0b\x1c\x10GB6\xe8\xf6t\xf9\x90\xe190x\
+\xce?\x83N\xaf \x03\xcc@\xb1z\xd8%j\x194\
+\xe44\x12z\x12@\xbd\x02\xe0\xff\xd2\xe0\xed_\x1a2\
+\xbf\xff\xf7\x87\xcc\x1f\xfb\xb7![EO\x02l\xfah\
+\xc8\xc0\xa9b\xdc\xa1\x8a\xa3\xfd\xc7qQ\xe9\xa3?\xf4\
+p\x83\xcc\xab\x94i\x810\xde\xca\xbe\x91\xc8r~\xfd\
+\xff\x833\xe1\xf2\x91\xd4\xf3\xa9\x97\x0f\xb7\x0a\xd9 \xaa\
+\x87\xf3\x84\x0c,\xdc\x02G\xe4`\xec\x11}\xe5\xf72\
+\xf4\x19\x80V\xcb\x81\xdei\xffG\xdfk9Ihv\
+\x9d7\x0e\x86\xfd\x99\xc8\x10\xf6\x85\xbeb\xb7\xe8\xa5\xb2\
+7\xb8($*\x93\xec\xa7\x10\x09\xa0\xd5\xc1u\xf2\xe0\
+\x81sC`\x0a\xe2\xddI\x84$\xf0\xb5*\xbc4d\
+\x98\xef.\x81#\x80\xc5\xad\x90\x1c\x14\xa5/\x9cw\xbd\
+\xf5*\xa0Z\x12\xae\x19\xb2!_\x90\xac\x16\x04W \
+\x9d\x0eZ\xb1\xa8s\xa8\xb3\xe5\xa9*\x80\x12\xc1\xf7\x9d\
+\xc3\xdc\xfb\x0eS\x15T\xd0\x9dC\xf6\x0b\xb4\x5ce\x18\
+\xe4?\x13D\xf4\x8e),e\x07\xb5\xae\xe49\xde\xff\
+i\xc8\xb0\x1e*\x9f\x99\xf8\xae\x9e\xf0\xb4;Z\x15 \
+\xe1\xca\xcf\xe0\xe8z\xaeo\xc8\xc4\xc0)\xe9/8\xf7\
+\x02#\x01\x07\xce\x90\xb7'{\xfa\xdf\xa7\xbf\xc21F\
+\x86\xa7U\x93\xde\xf8\xfaB\xa3\xba\x06\xb4\xd7\xcd\x96\xb8\
+\xabg\x02\xff\x9b\x87\x84\x11$\x01\xff\xe0\x01\x8bl\xd0\
+i\xd7/\x91@\x1f#\x7f\x15P\xb9\xfe\x0c\xa4\x8b\x94\
+0\xd7Q\xe0\x5c\x1c0\x02`\x10sH!\x01$H\
+\xb9\xe7\xaa\xd5\x89\xbdT\x11GJ\xaa\x95M\xa22\x11\
+'\xcbT\xa7wm\xef_\xc8\x00\xc8J\xfb\x8a^\xec\
+\xa4j\x12\xaa\x12\xbb\xd9\xa2S\xad@\xec\x97VG\xc8\
+)\x81\x98s\xa1u\x82\x9d\xe3g\xf6\xca\xa4\xf3\xc9\x1f\
+\xa3g\xd8\x17\xe4\x99\xcew\x0f\x0c{\x02\x80\xfde'\
+\x14\xa2\xfc\xdc\xff[\xb7\x8e\x04\xed\xfe\xd1Xhy\xea\
+\xb0\x1f\xf4\xd6\x0b\xa4!\xbe\x8c\xfdt.\xd9;\x811\
+{\x0a\xf9iJ\x80\x84\x80\x8a;\xbb\xe6\xb9X\x17\xd7\
+\xafe\xc14\x15\x09\xf5\x8f\x87\x0c\xe7E@'AA\
+\x8fA\xd2HP8\x7f\x0d\x09P~\x89W=\xe48\
+,\xbc\xafs\xe1\xff!7\xd8\x8f\x0e\xd9\xe7\xf7J\xec\
+\xf8;\xf7\xdd\x136\xbd\x80H\xcf\x0bd\xddg\xff\x9c\
+\xder\xe1U\xdc!n\xf0%\xae\xf0\xf9\x0d\x09\x5cH\
+)\x7f\xe7~\xdb\xb8\xdfJPI\xd4\xd0\x17\xf4\xa2\xfd\
+\xd7+\xf4\xf6\xb1\xc0\xbe'6\x5c\x97}\xa10\xe4\xb9\
+\xf3\x1f\xdc\xb7\xfd\xef\xb5\x7fNG\x80x\x15\x0f\xb1'\
+\xec\x0b;\x9a\x89u\xadG\x90\x01\x85\x00\x91X\xb0.\
+\xf4\x02}\xddI\x18}a\xff\x7fj\xc8\xc6\xedU-\
+\x7f\x19\x8f\x1d\xa9\x03}\x81e\x90\xdc\xfa\xa0\xce\x1c\x1c\
+ \x90J\x068Y\x95\x175y\xcd\xe1 \x87y\xba\
+\xf0\xb0!:\x19\x03\x16R\xbd\x19a\x9e\xbe!Y\xd8\
+/4\xcc{T\xa1\xc5\xee\xa9\xa7\xdfuf\xafv\xf5\
+Z\xa9(\xa9\x80\x9c\xbc\xd0\x97\x9d=\xc0\xdd\x0f\x81_\
+@\xf0\x7f`\xab\x94\x14\xbb/.\x83P\x9f'\x0f\x0b\
+\x09\xca\xc4\xa1S\xb9\xb0.XY\xfb\x9c\xc6\x0ey\xb1\
+AU\xaeT\x82\x12\xc2V\x0a\x88c)\x91\xe0As\
+\xd49:H\x85\x04F\x0c\x91\x0d\xe2\xba\xb1\x1f\xeb\x81\
+\xb4.=`\xa0 zF\xc9\xab\xf5\xb7!\xfd\x9d\xf7\
+Q\xa9\xa0`|\xf9\x7f\x81O\xfb\xfcr|\xb3\xf7j\
+zI\xc8\xb2_V\x07\xe6\x09\x09ET\x09\xd73y\
+\x8f\x84z\xa6\xa3X_\x14:Vr$M\xa0\x7f\x14\
+@\xa4y\xee\x96\x8a\xe4|\xc9\xba~\xdd\xa1\xa2\x10\xf9\
+\xf6?\xdd\xc8\x04kl\xd3\x7f&\xd4\xe8\x19\xd9\xfb\x9e\
+\x01\xe6\xe11!\x03\x82\x01\x19\x911\x8f\xff\x1a\xb2|\
+\xde\xaa\xd08\xa0\x12\x1d\x09I\xe4\xb8[\x17\x09\x87\xfd\
+]\xf6w\xdd\xdfu\x98\xaf\x9e\xbd\xf0*\x8cH\x09\x97\
+\xbb\x0a\x08\xedi+\x89`}.v[\x06\xd0:\xd8\
+\x9f\xf6\x01C sI\xb1\x1dIC\xce\xd1\xd4\x13i\
+\xdc\x1f\x87P\x22\x81\xe3e\x9f\x0a(9N*\xe9I\
+FU\x09\x1e\xfbXe\xfc\xbf\xcbp\xaf\xd7\xa7\x92\xff\
+\xf96\xdf\x97\xa1\xf6J\x01\xf7V\x94\x7fl={9\
+\xbe\x12\xe9\xe1\xe1\x95\xc9Ap\xc1\xbc\x8fw\xa6!\xb5\
+\x1e\xafJ=(q\xc3\xa1\xd4KN\x0fq\x10Lw\
+\xd0k\xe8\xfc\x0b\xc4\xbe|8\xf3p\xe6\x02%]\x03\
+g\xdc\x1e\x9e\x87u\xd2\xfb\x9cz\xa3\xc6\x19\x8d\x9c(\
+#\xf9\x8bu\x07\xb17\xad@\xe6\x99\x83\xc00\xa9\x1c\
+\xe7\x18\xc1j\x19\xc0A\xa2\xd7\xf7K!\xf3~|[\
+\xc8\x86,\xaai\x04\xc8`%\xbe@Q\xe9\x07zc\
+\xe3\xaeX8\x04\xea~\x18f\x0e\xa5\xc4\xa8}\x0b\x12\
+\xae\xd7\xdf<{\x09\x00\x89\x1e\x0e\xa2\xd64\xf6E\x85\
+He)\xa1\xe4\x85\xd4\xe1\x90\xea\x85\xd5\x92\xe1|\xa7\
+\x9e\xac\x16\x0e\xfa\xb7A\xb1\xab\xd2m\x9fi\x0d\xcas\
+^\x1c2H\x8a@\xe4\xd9\xd3\x0e\xb9\x96 \xf2<\x93\
+]\xbe\x12\x85\xf4\xa8\x00\xc9\xfe\xe4@\x22\xaf\xca\x80C\
+/\xfa\xfe\xac\x90\xa1\x82\xa9\x92\xaa\xb2\xc9\x8e@ny\
+\x9f;\x84l\xff/\x11\xb0;#\xe4X\xc4\xd4\x82\x98\
+>\x0c\x0e0\xbbmL\xdcWC\x86\x04P\x8e\xc3;\
+\x9c\x142\x04\x9e \xf5\xfe^o\xa3B\x84\xf1\xc4\x12\
+\x1b\xd9;yx\xd8|\x1d\x0f\x1b\xec\x8b\x04\xad\xb1{\
+\xec\x86\xe7h\x7f\x08XTR\x04\xcc\x99\x18\xd5\xf2w\
+\xb8\xf2\xe1*\x87\xab\x0cS\x19Tt%\x18\xb1\xa3\xdb\
+\xdfZ$$\xc0Tz\xe8_\x01\x19\xfdL\x1f\x0a\xa8\
+\xe9I\xf6\xd6\xff\x09@\x04^\xbf\x9fs\xdb%\x80\xec\
+G\x88G~K\x87\x0c\xc7\xdd\x7fxx\xde\xc8\xed|\
+\xee\xcdsl\xf4\xc9\xe9/I\xbc\x09\xac\xdb\x18\xd6:\
+O\xfc \xe7\xd39O\xa4f!. 0\x9e\xb4\xc8\
+F:\xa8\xb0\x01\x09\x95\xef[\xd0{-w\xf6\xbf^\
+\xffO\xa5\xe3\x9e\xfa\xb3\x12}\x02\x88\xb4K\xd3\xedB\
+\x8e-`\xd4\x182\xe7\x94\xe3\xefy\xf0\x8f\xf8\x1d\xa0\
+\xea\x19\xd0A\x9e\x142\xc1\xfak)H\x7f\xa1\x90\x83\
+*\xe7\x02\x01\xfe\x0fd\x9b\xc4\xba9\xe8\x9ec\xae\x1f\
+v\xf1\xf2\xb7%F\x04\x98\xae\xd7\x97}\xd1\x03MH\
+,\x10k\xfe\x9f\xdf\xf7\x9em\x81Y\x83\x9a\xd7\xfe\xf8\
+\xe9E\xb6\x84\x8ds\xe6\xfd\x9d\x0f\x81\xbcu\x96\x08h\
+\x81j\x15\x96\xb4\xcc\xb07\x02&\xa4\xccX\xfa\xd9\x07\
+~\xb2\xcf\x91``?=w\xfb\x95\xdf\x0d\xa2\x0fA\
+'\x0e`O\x8fG\xde'\xb1`_\xf0'|~G\
+\x08\xb8_\x85I\xfb\x19\xbb<\x12@\xcf\xc1\xe7\xb7\xeb\
+,=\xe2\x5c{.}*P\x1b\x8fwL\xe0\xec9\
+j\x89\x0dN\xad/\x9cC\x8bA\x1f?\xde\xa7\x0e\xb4\
+\xc4T]\xbf\xf3f_\xba\x1e\xd7+\xc0\xf5}o\x05\
+\xf0{\xd7m\xfdz\x22\xa0\xb5:\x14BL\xa0\xefy\
+9\x07\x12\x1d\xfd}}o\xbd\xd8;\x89^\xe7\x10w\
+\x91\x847\x7f\xcd9\xf4\xff\xfdyt\xae\x05\xd7'\xae\
+\xf4\xbd\xbf\x93\x98p\xbd\xbe\xb2\x00Q\xdc^\xc9\xa1\xc6\
+n\x1f9\xdb\xbc\xcc/\x0f\x99\xc9\xc8X>n`m\
+O\xc7v\xba\xc2,W\x1cz\xd7C\x8d]uP\xf0\
+Z\x09\xe21\x1d\x19\xb8\x00<\xa0\xd8\x06#\xd9DT\
+\xd4><d`\xf4\xbe\x06\xa482\xa6\xcb\xd7\xd0\xb3\
+\x05Z\x15\x19\xbf\xb7\x0f\xbd\x8aq]W\x18\x02\xe7$\
+\xe1\x99\xce\x9a\xe5+\x03)SdB\xffy\x187\xa8\
+\x82\x17\xf5\x93\xef\xcc\x0d\xff\xf9\x0d\x92\xb68\xb8\x0f\xd8\
+~_s\x8f\xf5*goe\xf5\xbe_>{\x08s\
+\xbetA\x83@8\xf3\x01\x14) \xb2\x86< \xd3\
+\x9f\xe7\xd8\x14\xcfE@E\xf1Q\x90\x14\x19\x07\xd9\x86\
+\x90q\x92\x98\xa0\x089\xfe\x1d\x222\x15\x1d\xe3\xd9\xbf\
+\xf7\xda\x13\x04\x0e\x08\xc5 \x91!\xe0\xf3w\xfe\xcfA\
+\xed\x95$\x06\x01\x1b<\xc8*E~\xd24KTD\
+\x92\xcb\xe1\xeek\x8f\xe8\xfc\xb7K _=\xc3\x1c|\
+\x07c\xdc'/\x19z\xd3(F\xad+*\xba\x0c2\
+\x84\x87\x16\x98\x08t\xbe<\x8c\x05\xe3\xa8\x1aC\xa8w\
+\xfd\xc6\xd9k\x7f\xb1$\x8bb\xe0\xf4\x88\xa9PP\x1c\
+\xef\xca\xca\x1eh\x99\x03l.|Vj\x0f\xb7^+\
+\x93e\x80s|\x0f\xc5X\x09\x80\xf3\xad\x86>N\xe5\
+\x12\x80%d9\x80\xf3\x01\x9d\xc7\xa1P\x15\x0d\x81\xa1\
+\xf5\xf7\x1c)F\x01\x8f\xb9\xda\x1c\x7f\x86\xdez'\xf2\
+\xc0y\xad\xf1\x8e?\xb8\x224T\xe0\x0ew\x0a\xd9\x12\
+\x1eH\xb5\xf6\xcf\xdc\xff\xfe>2\x9e\x7f:\xbd|z\
+\xf9\x80d0G\x5c\x8b\xcc\x09\x05\x01;\xbb\xe2\xfb\x97\
+\x0cl\xce\x97\x81;2S\xa4i\x14rft+@\
+\x82@9\xe4~\xe7\xf8~\xba\xc6\xd4\xac\xef{\xc9l\
+Q\xe08Q\xb0 \xfe\xc6\xae!\xbf3\xc6\x0eI\x17\
+d\x91\x8a\x0c\x83\xef\xfbG\xe5\x9c\xe4\x1c\x87\xb5{_\
+\xc8\x96\xb1-\xce\x04\x89W\xd7\xadR\x06\x22\xde!\x9c\
+\x0c\x88\xca\xb4\x8a\x13\xc7\x04\xf42\x912u\xdd8N\
+T,\xb1\xed\x83\x5c_e\x0dp*@\xcb\xca\xd9\xee\
++!\xf3\xfb|2d\x80jg\xa0^\xeb\xe7\xbc!\
+\xcb\xd2B\xa5\xd7U\x8f.\xc7\x8cc-\x80\xc0M`\
+\xec\x9cD\x0a\x07\xcc9\x12\x80[\x1f\xfa\xc7\xf9KG\
+\xbf\x12}\x12\x15\xf6K\xb2\xc0\x17\xf4_e\x8aC\x95\
+\x86\xbc\x1cq\xbd\xfa\xc8+\x91w\x19;\xe5\xfc\xe9\xed\
+\xcbDQqdh\x81\x10\xa8s\xa0\xcd\x9f\x07\xad\x96\
+\xe0p\xbf\xf4>RG\x01-\x0e\x0b\x81kB\xb2%\
+>T\x9c\xaaUGb\x04T\xb9!s P\xaar\
+!!\x95\x8e\xec\xfe\x0a!C\xcb\xe032\xe04\x07\
+\xfc\x82!\x1bI\xe0\xfe\xa7C\x86\xd6\x86\xe4\x9e\xa8\xca\
+\x8b\xc09\xc9\xdfJ\xef8\xf7\xa9'\x8a[\x81\xdf\x80\
+\xed^BN\xc0\x94\x01\x1b\xc7\xacZ\x1c2AZP\
+\xfc\xd4;\xc5\x81\x90\x09\xcb\xc3\xf25|\x9e\x96\x04\xfb\
+I\xcb\x80\xf5\x055\xb7?!\x12\xdc\x8f1\xbd \xd2\
+\xf4\xb1\x96=\x011{e\xdd9\x8e\x02Z\xe7\x8b]\
+o\xbd\xc0\x95\xf0\xd3\x1a\x85\xab\xc6u\x0b|\xed7\x8e\
+#rG\xcf\x9d\xff\xe1\x1c\xd9\x87\x1cW\xfbP\xa2@\
+\xeb\x02\xfb\xc7\x8f\x90\x90\xe8\x90Z\x09[H\xb3L\x04\
+H\x08\xd6\xfe\xe7\x90C\xd4H\xa8\x81\xf2+\xd0\x08\x00\
+\x1b9\xa7\x80\x1b\xb9t%8\xb3\xf2\xca.A4U\
+e798\x0e?\x152\x04Z*\xb6\x12\x19\xfc\x1a\
+\xd7\xd9\xc7Sf\xa2\xbb\xc8\x5c\x91|A\x86\x0ahq\
+/\xb0\x13\xa6\xa8H\xec\xe0\x9c\xc1\x8d\xa45\xa0Ux\
+K\xff%\xf9\xe41\x95s\x81\xbc\xe7# \x02\xc5\x16\
+8I,4\xee\x99\xb2\x9b\xecNG\x0c\xf4W\xef\x8f\
+\xebA\xab\x88\xff\x93\x00\xe3\x87\xb8\xbe>\xd6\xcd\xab\x00\
+\x91^\xe8\x89e\x5c-\xfe\x9f\xfdu\xbd\x02{d\x80\
+\x120\xe9\xcf\xd7\xbe\xa2\x97%\xf4\xbd*hh\xa9\xb1\
+\xbe\xf6\x9b}\xcd\xbeIp\xf8;\xefk=\xad\xb7s\
+\xd5\xc6\xff\x15R\xa0\xb5\x22V\x00\xdd\xd8\xe9\xcb^\xf5\
+9\xf5\x9d\x1d\xde\xb9\xf4\x9c|\x1e\x04\x95\xf5\x12\xc0w\
+h\xba\xf5\xef\xa4\xc8\xbe\xb7\x7f\xd8\xe7\x9e`\x11Ot\
+\x88\xbf}\xe0\xf3z\x02\xc3\xdf\xd1K\xce\x9f\xf8\xc8\xfe\
+\xb0O\xdd\x97\xe7`\xdd\xacS\xab\x9c\xd7u\xd1\x97\xd6\
+\xc7>\xf2s\xe7\x16\xf7\x0d\xb2?H\x1d\x08E~\x8c\
+\xc2OrxhE4\xde\x9a_Q\x856\xfb\x0cB\
+\x12\x19\xa8\x82\x85\xeb\xd2\xba\x90H\x90)\xe3'\xebj\
+j\x0d\xff\x89\xfd?\xe2\x0d\x96\x1e\xb2w\xa5\xa2\xbc\xf2\
+0\xfe,\xf2\xafO\xce\x9e\x98oN\x07\xf8&\x83\x83\
+\x16\xe1\xc1\xe5\x07\xc8\xebm\x97\x01o[ \xda\xe7\xbc\
+\xcbh\xc4\xf6}\xd7`P\xc2\x9d|\xf80\x9f4\xe6\
+i\x9f\x9cck~\xb4U\xf6\xfe\xfd\x1cH#\x9e\xb7\
+tc\xd7\x98\x1b\x8e\xef\xf4/\xb3|`\x0b\xdc\x16\xe8\
+\xe2K\x06\x85\x89\x0b :e\xa3\x87;\xeaq\xff\xbd\
+\x91\xbb0@\xc5R\xcb\x11@^\x03\x9a\xf5\xb2\x90\xc1\
+`\xea\x91~{\x22\x19l\xdc\xbc\xee\xaax\xda\xf8\xd9\
+c{\xb8MV\x88\x8cW1.\x89!w\xc0:\x84\
+\xdfA\xe40\xb9\x0e\xeb\xdb\x03\xfdN\xfa\xe7\xab\x1fd\
+\xeb\xd4[5\x1c\xd0>\x86\xe6x\x9f\xd3\xd9H\xfd\xbf\
+\x03j_\x80\xfc\x9f?\x0d\xd9S\xf2> #~x\
+e\x8f\x9f\xfefz\xeb\xf4\xd6\xa1g\x8e\x81\x92Y\x0f\
+*\xbc\xeb\x0c$Zzn\xb5~ 7\x0c\xb5qV\
+V.@\x92/\x9e\x8a\xf3\xf77h\xec\xe2\xa8\xdf1\
+I\xb3~y\xbb\x8d\x82\x18\xffa\xb6\x1e\xbc7\x1d\x03\
+\x8e(H?\xc3g\xeeyB\x7f\x0a\x1a\x98\xbd\xf8*\
+\x8d5\xee\xab\xcd\x7f\xae\x96\x14\x86\xe4\xf69\x8d\xe0\x9f\
+C\x06G\x0a\xabvB\x92\xa7G\x86\x0c\x8e`\xef\x81\
+\x83H\xd0\x0b\x07\x81\x03\xb2)S-\x01\x80e;!\
+\xb0\x87\xef\xceq\x8a\xaf;\xe1\xf5'\xbc~\x0b\xac\xa6\
+'\x86\x0c\xac\xd8\x09\x09\x06\xe1\xe6\x08\x179\xa6J^\
+B\xd1+!\x80}\xf9#E\x96\xb3\xde?\x03\xa0\xa2\
+\xd8{\x167\x83\xbb\x06H\xb7\xcc\xc4e\xaf\xf00\xa8\
+\x99\xa0\xa9\x8a\xa0\xded\x0e\xbd^\xc3k\xe7\x1cs\xe7\
+\x07\xc9\xd8\xbb\xf2}\xfc\x9f\x002[\x06\xaa\x15\x02\xd7\
+\xc4\xf5\xd7i\x03\xb3\xba^\xc9\xc58\xf6\xae\x8b\xa1e\
+\xd0\x9cg\x09W\x01\xb3sI\xdfJ\xcc\xa9\xb4\x08\x94\
+8\x98\x0c\x99D\x10\xe8%R\xb8\xfc\x9c\xfd#B\x86\
+1}\x99\xa0:\xf1Y!C \xafB\xc9\x11\xd7s\
+f>\xb7\xa9\x0a\x02H=\xc9\x12\xb6i \xcb\x8e8\
+\xc7\x12P*\xff\x1c\xb5\xfb\xaf\xd3Uj\x1ci\xea\x11\
+\xd3,\xca\xf1h\x0eRA5%X@|!vT\
+f\xf5t\xe7\xb8\xb2Z\x7f$q\xd9\xb3\xa7\x12^\x88\
+9\x15s\x8e\x97\xf7\x17`\xe7\x98\xb3\xaaDJd\xe2\
+\xc8\xc8\xfb^\x10I\xd7\x19\x02A\x15\xc1\xd4\x0f\xc55\
+b\xba\x83q\x93\x1c\x17z\x5c\x0b\x9a\xf5G\xf6g\xdd\
+|n\x22\xdb\x90\xc2U\xcbHr\xe0\x98V\xa2\x02\x0e\
+\xa2[$r*\xb7\x129\x1c\x16-S\x90\x16\xa0\xf2\
+ \xfc\xf9\xf7\xd5\xba\xe5>\xb4\xca\xb1\xef\xf63\x07\xf7\
+\x96\xcbI\xde\xc8mU\x889\x86\xce\x05N\x8b\xfc\xbb\
+B\x0ch\xb5\xc9y\xcc\xd5\xaap\xcf\x90\xa1\x22\xc7\xde\
+\xfbz\xc8\x22\x9b~7\x05\xc5y4\xdd\xe3!!C\
+\x02\xb8\xb1\xd5\xd7\xb4\x88l]\xaa\xf5\x15\x18\xa98s\
+\x08\xf5\x80\xe2l\xf1%a \x11\xe8z9\x90Y0\
+\x81|\xa8\xdeQ\xf3\xd99\xe6\xfc\x05\xad)z\xba\x05\
+\xa2\xce\xa7\x0a\xb9\xfb\xe5\x00K\xc0\xe0\xf0\xf8\xc7\x22\xe9\
+=\xe7qU\xecy\xda\x9f\x0a\xd8p\x03A&\xfd\xc2\
+\x22\x85\xe8\xa8i\x13\x89\xa8\x98~)d(\x98\x08\x90\
+\x9d[~\xa8\x04\x0a\xf2d\x89\x92\x84\x22k\x01\x9a\xfe\
+,d8o\x99\x98\xaa\x84\x1a\xa4\x02\xbb\xc2\x0fc\x07\
+\xe8\xd5\xc6z.\xe1P\x5cH\x89H,\x12d$\xab\
+\xecP#{<\xbc'd@\x0e\xb1\x87\xf6y\xef\xed\
+\xee\xd0n\x89Q\x15J\x01#=a\x1fH8\x09d\
+\xfd\x9c=\xed\xbd\xeb\x02\x5c\x90\xee\xde*\xd0\xc9\xe0 \
+Y\x9d\xeb\x9e(\xf0\xff\xae\x8f\x9f\xd8\xa0\xd7\xf5y\xfc\
+G\xf7\xedyK\x8c\x09 %\x02\xf818b\xb4\xac\
+(<\xe1xp\x7f\xec/\xce\x09\xdc?\x12\xdb\x9eW\
+\x9f\xfa\xd4{\xda\xfd\x9d\xfb\xb0Oz\x0bh\x0f\xfc!\
+\x17$x\xe9\xa5\xbe>\x9d\xcd\xbe\x8d\xb9\xab\x9ev\xa4\
+\xe1\xa6\x9b\x9c\xafq#a\xff\x97\xa0\x10wI\x048\
+\xbf\xfc\x0d\xfec\x0f\xfc}/\xf1`\x1fu\x840\xbb\
+JO\x88g\xdc\x9f\xff\xe3\xaf\xf5\xc0\xbfC\xe1\xfb\x18\
+B\xfb\x05R\xa4\xaf_\xbf.\x9f\xd3\x111\xde\xcf\xf3\
+\xe1'K\x5c\xf3\x9f\xc59\xae\xcf\xfaJ\xb8h\x19\xe7\
+\x17\xf3w\xb5\xe6B\x84\xf9<~\x14\x12J\x89\xcd\x96\
+\x08+d\x89\xc45N\x18\x09g\xe4\xa2\xece^\xdf\
+\x91\xc3\xb9g9\xd7\x0a\xad\x8fq\x1e1uu!\x0f\
+\xa3(\xb5\x06p<#<\xbdd\xbe\x0e\xe44\xe5\xf8\
+8\x80\x14\xb2\x050\x97=.\xffmI\xfe\xf6\x93\xdb\
+\xfb-\xf3r/\x9d\x95\xd8o\xdf\xc8\x8a\xa6G\xcc\xf2\
+\xf3\x1bTca1\x1e\xc7\x98\x08L\xc3-\xbbB\x1a\
+\xb6\xe7\x0f\xec\xc3\xe1`\xfcX\xf6\xec}\xcb\xb0ab\
+\x1b\x9d{\xb8\xfe\xa0\xc2\xb9\xea\x9a@X6\xe6\x0d\x16\
+\xa9\x03\xab\xc7H%\x07\x89W\xf5(\x0a<\xf4\xb8<\
+2!\xa0\xa0\xd72\xd0\x0f\xceL\xf2\xdb\x12\x02\xa2\x02\
+`j\x80\xccs\x1a\xea\x9a\xcb.\xe1\xc2\x11\xea=\xff\
+-\x93[\x06O\x80\xee\x80\xf4\xc0\xbfW\xfa\xfb\xc1\xf2\
+=G\x80B\xa7\xc8:yPo%\xe8?w\xdd\x14\
+\x96J\x8d^\xd8\xec\xa1\xae\x8c\x1a.\x04d\x82\xc8\xa8\
+\x92\xc5~w\xc3\x90\x05b:\x7f\x0d\x15\x83\x11\x12=\
+\xe5\xb8\x9a[g\x06\xed?\x07\x84F\x84G\xaf\x1b\xf6\
+At\x94\xbdypX\x22\x0c\xfd\xee\xec\x99}\xc8\x00\
+A5=\xe1\x89k\x02i\xde\x9d\xeb\x98\x8eW\xb4\xb9\
+\xc0Q1}\xd4\x00\x19\xf6\xbc[\xa5\xaa*\xbd\xd8\xc9\
+\x91I!\xbbz\xe6J\xfa7\x9d>}|\xfa\xf8V\
+\xe1\x8f!\x881\x06\x11\x84\xbd*\x05\xe6\xa6g\xa5Q\
+\x85\xb2zL9pH\x98\xf2\xfdT\xf0\x0e\xdf\x1a2\
+\x8c\xc5y`\x92hr\x04s\xde|U\xc8 b\x12\
+\xc2\xb8\xbbh\xc8\xfc\xfd\xd7B\x06E\x1bZ\xe3\x12\xdb\
+\xfe\xa9^X\x88\x15\x156\x90\xa93\xd2\xc0\xe1\xdc\xa0\
+\xf8@\xed\x9d\xff>\x1e\xce\xfdy\x9f\xab\xe7\xba3 \
+_\xcd\xe7\x9b\x08\x82\xd9\xa9Y\x03\xe0?\xcb\xf1\xa3\x14\
+\xb1\x80Z/&\xce\x88\xac\xe4\xec\xee\x1028\xae\x14\
+\xf0\x13\x13)\xa4\xf74[\x09\xfc\xff\xee\x8fw/\xdb\
+\xbdlI\x00\xcc\xb2@\xbf\xd7\x04C\x83\xf4\xd58T\
+\x19dl\xb1\x97\x0e\x19\x90@\xee\xcb\xba\xa8L\x82\xc6\
+\x0a\x088\xfe\xf4\xbbs\xf9\xfaL\xdcp8S\xdfV\
+\xe24\x11\x14\xbbk\x84\x0c\x81\x08\x87\xe7\xae!\x83\xfe\
+7N,\x13;\xd5\x02a:\xc5\xadC\x06\xfd\x04\xca\
+\x0ba \xa1# \xbeq\xc8\xc0\xae\x9cS0\x8a\xa5\
+^\x05\xf2\xfe9\x1d\x82>\x16\x10;w\x02\x08H\x17\
+\xe4|\xd8\xc59\x08\xf6\x13H\xb1D\x8e@\x17\xa9,\
+H8\xe4Q\x06&\x85t\xd0\x9a#\xd0I\xb2\xccr\
+,\xac\x87y\xe7*\xc6\xc6\xb6\xb1\xabX\xb0/\x14\xb2\
+=\xe7B\xb8\xbc!d\x08\x08$d\x04\x0a\x1cE\xd3\
+j\x1e\xb5\x8e\xf9<<+d@\x12\xe8\xe1\xc5\xd9\x03\
+9$\xc0L}\xbc\x7fn\xc8\xfcz\xd3\x90\xf9\xef\x9e\
+\x192\xbf>%d\xfb\xfc\xfd?\x85l\xbd\xd3\xd5\x83\
+hzD\xf6\xf0#\xb7\xab\xc4#\xbb\xc1\xce\xd0\x0b\x19\
+\xf0\xd6T\x96$\xd9\x9b\xfe<d\x08\x80\xed\xbf\xd4\xf3\
+\x95\x80H\xa4UM\xf9\xe0\xd8r\xd0!4p\x05p\
+t!P \xb4$\x922!\xb8\x7f^\xc8\x90XN\
+(\xfc\xe1'B\xb6\xcatM\x09\x92`\x14\xe8\xa7\x83\
+W\xfa\x99\xbeC\x0a\xc5\xd1\x93X0=\x00\xc7\x0f=\
+\xa8\xc2\xcb\xffz\xf2\x22\x1b\x14\xfcW\x16\xd9ZT\xec\
+\x07\x9cN\xf4\x0c\xbb/P76Y\xc1\xc3~\x15p\
+$\xb7K\xd9_\x8e-{\xdf\x03=\xe7KE\xdf\xf9\
+R\xc1E.+1`\xac\xaa\x04\x9fJ7\xbd\xe2|\
+;\xbf\x99\x98/\xfd\xc6\xbe\xeb\x81G\xc2\x9b\xeb\xbc\xff\
+\xbb\x90\x01Q\x9a\xe4\x9c\x95\x80A^\xa7\xf2F\xef\x19\
+\xcfe\xbf\x0a8=\x07\x9f\xef\xfc'\x19^M\x07\xe8\
+\xd38\x90\x0b\x0a\x18 ~$\x12\xf9\x85\x12\x01\x9eS\
+\x87\xb6+\xecA\xe6X\x17\xfe\x86\xe7\xc0?\xe7\xef\x08\
+\xf0%p:+\xba\x80\xbf\x07\xb8\xec\x8b\xf3\xda+\xb8\
+^\xe9e\xdf\xf7D\x00\xfb\x97\xfeaU<\xfd\xde\xf5\
+H4\xfb\xbe!\xe0\xa6K\x86\x0c\x01;\xc4\x86\xc4\x0d\
+\x08\xb6\xc0M\xc1\x0e\x02\x04BW\xe1\x8d\xdfk\xff\xf0\
+\xb3p<\x08\xc0$~!`\xac\x87\xfbv\x9d\xd6\x99\
+\x1d\x90\x90\x12\xf0\x0b4]w\xef5\xdf\x90\x8b\xeb\xfb\
+7\x0e\x87\xba\x1e\xff/\xb1\xc3~e+X\x9dC\x01\
+\xb8\xc0\x9f\x9fe\xdfXg~u\x87\xa8\xf7/\x01u\
+'\x15\xa7\x0f\xc4\x0d\x02]\xebc\x9d\xbd\xff\xf1\x10\x06\
+\xe38\xf9qZ@KP\x147\x82D\x86u\xb7~\
+\xf6\xa9\xf7w~\xecK\xeb\xbb\x91U\xaf\xf1\xa0\xc0\xdf\
+zI\xe8\x98\xae\x96\xcf\xb1\xfc$\xf7Ao?=d\
+~\xfd@\xc8\x96(/n\x19\xd7\xcd_\x13\x1f\x8a\xcb\
+\xc4c\xe2(\xfb\xc3\xfd\xb5DX\x8d\xdd\xcdu\xdb}\
+\x7fH|\x9b\xe3\xee\x22\xff\xbfT\xdaC\xfd\xfc\xd2\xc0\
+\x22\x1d\x95\xf8o\x1c\x14,\xc7\xc2\x07p|8r=\
+\x03gA\xc3\xbc\xbes\xc8\xe4\xaa\x9c\x0a<b\xfb\xce\
+7\xb2\xbb\xc7,w\x9f?\xf7\xdc!\x03YB\x18\xa8\
+\xeb\x0f\x99\x7f\x90s\x01q\x1a\xa8\xa5rz\xd7T\xd8\
+\x8f\xca\x0d\xf8\xf5$\xcf\xbaf:D\xd7J\x07\xff\xa2\
+\x19\xb2\xbd\x16U\x00\x00 \x00IDAT(\x9f<\
+\x04\x0a\xee\xc3uS\xac60C\xa5g\xd2\x98)\xac\
+\xd2\x1ct\xec\xc0\x1c\xc8\xcb\xa4\xa1\xbb@>\xb8\xef\xc9\
+\xca\x8b\x07\xfa\xc9<`}>\xb7\x03\xe1z\xfax\x8a\
+\x1e\xd0w\xb2\x0f\x1b\x85\x82\xef\x95\xfa\xfe\xea\xffzF\
+\xcc\xc1\x1a\xc76\x9e9|\xbe\x04C\xe7\x10\xe8\xf3x\
+9T a\xc6\xb6\x09(\xcdW\xc6\x0e}J\xee7\
+\x95\xcc\x84J\x1a\x0f\x84\xc3azS\x8e\xb5S\xd1\xb9\
+\xec,1\x86\xe7\xdff\xf9HB\x9b\x9f\xb8\x8d\x7f\x5c\
+\x02\x85\x1f\x1a*\xff\xa3\x029\xb3eV?\x95H\x91\
+'.\xad\x08\xb3l\x01\xd2\xee\xd2\xbbK\xed.5\x04\
+\xf0\xa62`5\xe6\xa0\xa8\x1c\x08P_\xbc\xde\xdf\xf4\
+\xe8\xb5\x82\xa1\x92^\x10\xdcdY?\xfcQB\xf9T\
+z\xde\x9e\x19l\x0efBZ\xb5$L\xf7\xcfqO\
+\x0f_{6\xcb\x919s\xed5\x07q\xae^\xe6\x84\
+\xc2\x1e\x18\xba\xf7g\x8fc:\x82\xfbW\x85\x0c\x0e\xa4\
+\x96\x99tL\x05\xa2*\x8c\xbb\xeb\x85l\xec\xd6\x158\
+\xc8`_t\xbe\xfb\x8b\x0e\x19\xe8\x9b\xa6\xa1e\x88(\
+\xb2$\x89;\xfcx:\xd0\xf4\x8cV\x09\xe3\x09\xf5J\
+\xa7\xc1/\xc7\x13\x09\xa4\x8a\x0b\x87\xcas\xd6+\x0d2\
+\xfd\x9e$I\xc2Q\xa0rc\xac\xd5\xaf-\xb2!x\
+\xae\x9b\x10/\x08\x9d\x8f&\xc4\x1dg\x85\x0a\xaf\x8ab\
+\x92\xa4M\xfb\xe9\xe8tt\xa8\xdc\xaatqD\x9c+\
+\x8e\x0a\xfd&\x01\x98\xf7[S2\xe8Yz*I\x02\
+\x91G\xd6\x98\x1cS\x02\xccK\xff\x93\x90\xe1\xb9\xa4C\
+\xb6\xff\xb7\x90\x8d$N@\xb7\xfb\xad\x90\xf9\xfb\x0b\x85\
+\x0cH\x06\xfa\x09r!\x13#\xc8\xfe\xaa\xc2\x92\x0e\xb7\
+\x04Q\x052\x9e\x83i%\x12\x03\x10\x17\x99x\xae\xc0\
+\x19\x89d\x06 e\xd8p\xa8\xd0\x9f\x1cXzMB\
+\xc7\xef9\xda\x12\x5cH\x00\xb3rX\x1c\x03?\x1f2\
+T\xce\xd21\xa9\xc0K 'p\xc9^\xe9\x82\x82'\
+\xcbz%\x00=\x8ft\xcc%\x90\x05:5\x95\x86C\
+\x01\xb9`\x1f\x9aZ\x90-\x0c\xd5\x22\xd7\xa7\xe5p\xf4\
+9\x80~\xef\x9cAVH\xa8\x80\x14\xa7=\x9b\xee\x1c\
+2\xf4\xc8\x0b`@\xddS\xaf\xd9\x07\x87\xc7\x86\x0cd\
+\x80IJ\xb8\xff\xcb\x90\xf9\xf5a!\xc3\x98\xc4\xec\xed\
+.\xb2\xaf\xeb\x9c}\x8c*\x8e\x82\xea\xf96v\x96\x83\
+\x85e_\x05U@\xe4\x9c\x83\xf0\x9a\xbe\x92\x1c\x15\xfb\
+\xcf\x85\x0c\x0e\xad\xc4\x1d\x87W\xebE\x92CV\xa0\xd1\
+\x1dP\x8e\x7f\x22;\xf4\xe4\xd6\xff\xd1\xa7\xe6\xca\x9b\xee\
+\x91\xcf\x1f\x22\xab\xc6\xb9\xe1\xdaP\xa1\xd1J\x96\x88\xae\
+JX\xb8\xceD\xaa\x18SX\x1c\x1e\x0a\x06z\x9fA\
+\xdd\xf5\xd2\xd3\xaf\x0fZdk=\xe0\xd8\x9ag\xcd1\
+\xcfB\x82\xe9\x0f\xc5u\xc2\x9f\xd0\x13L\x1f@0h\
+\x95\xb2^\x1cp\x0e\xab\x04\x85D\x1f;!\xc0\xf2\xbd\
+\xeb\x90\xc8H$Rqi$\xe2\xb3\xc6c\x0a\x1cT\
+t\xf9+\x0a:\xde\x0fifNg\x81\xc0\xa81\xbb\
+\xc85\xd9\x03-L}\x1c\x1cn\x05\xfe\x0f\xbf\xc7s\
+J\xbf\x07gU\xb5\xe6\xd1\x8bX\xf3!@z@\x0f\
+\x02,\xd0\xf6\x9c\xb4x\xf0\xab$j\xf8\xe7\xfcG\xd7\
+\xd7Y\xd2\xad\x13\xbf\xc2\xfev.\x90\x07\xd2{\xbez\
+\xc2\xcc~\xf2\xf3\xfez\x9c9\xf3\xf5=?\xd0\xd8\xc1\
+\x8e\x04P\x81\xf7>^\xdb\xd8\xbc\x0a|\xd8m\x898\
+\x15v\xefG\xdfi\xc1\xd4\x22\x01!a\x0c+\xd2\xdd\
+>v\xd6:\xf9\xfbLT\x95_d]{\x0b\x83\xcf\
+\xef\xbd\xe4\x02\x7f\x90{v_\x80*\xa1\xe0\xb9yu\
+\xbfm\xbd+0\xed\x1cN\xd6\xc1yl\xe36+\xbe\
+a?$h\xac\xb7\xeb\xf1\x7f\x9d\xcc\xdb\xbe\xff\x9f\xb8\
+\xc4\x9c\x13\x9f\xd7\x9f?\x7f\xc2\xef\xfb\xf4\x82\x8e4\xe8\
+-\x05\xceC\xe76\xe9-\x01\x9d\xdc\xd1\xe7\x89\x97|\
+\xae\xfb\x95\x90B\x02\xed\xb9\xf4\xe7\xa3\x10#\x1e\x90\xc0\
+E\x9e\x9f-\xe0E\x8e\x0c\x19&\xf1\x8e\xb3,\x13\xd9\
+\xd5\xca\xc3\xcfH\xfb]\xd3\x83\x14\xa8\xf89\xaeC\x01\
+\xd8:\xb9\x8e,XH\xa4\x1eY\x1e\xc7W\xf3\x1f\xc6\
+J}\x0f\x08\x91\xe9\xb51\x0c\xc8F\x16\xc0\xef\x00\x11\
+\x5c~;\xce\xfb\x0e\x88\xdd\xa9i\xe8\xaf=\xf4D\xbd\
+w\x01M\x9f\xb0\xbb_\xc8\xfc~'\x87\x0c\xac\xed6\
+\xa8\x80=\xeaD\x97\x19\x1c\xe74\x9cUI\xc3n\x1b\
+\xee\xf2\xe5s\xa1\xae>\xf4b\xc8\xfc\x82\x982pI\
+\xaaR\x154=\xe1*\x89\x14)\x05\xcb1w\x00,\
+p'\xe9\x11h\x09P\xb0\x0a\x7f&!L\x0e*\xee\
+\x00\xd0\x7f\x07\x8c\xc2\xb0\xa19p\x0eXO\x00\xf4\xd7\
+~Pz\x80\xdf[\x00z\xc5\xbee~+\x01\xa2\xb2\
+\xe4\x95\xc1\xee\x0a@ \xdd c\xf5\xf7\x1c\x08\x10\x5c\
+\x86o\xab\x18\xaf\x86\x1e\xeb\xb7\x0c\x9a\x0c\xfa\xc3\x8a<\
+m\x1dsu\xda\x9axQ\xf9^\xc2\xe4\xe8u~x\
+\xc80\xc6\x12\xe4U\xcf\xe2\xbb\x16\xf0\xf7jH\xbfq\
+\x08\x8cBM\x8c=\xb39\xe6\xb2*\xeb\xcfY+\xf4\
+s\xe0\xfdC\xd3\x0f-\xfbg\x85\xc8\x0a\xb8<\xc7\xbf\
+Z\x06\x1fm\xcf\x93\x03\xf5\xbaLl\x80^\x22\x1b\xb3\
+\x0e\x14\x89\xe7\xdeIa\xfa<\xd4\xbb&K1\x05\xd0\
+\xa1\x96\xb8\x04@`\x05\xc8\x9fIC\xfaS\xc9\xb9p\
+\xc3\xc3\x8d\x0e7\x1a\xc8\xfdT\x8a\xa6\xec\xf0xE\x06\
+\x0a\xcf]\x13.\xd3-\xd7\x80\xb3\xd8\x8c\xb14\xeb\x99\
+\x13\x80q, >\x909\x19 \xf2\xb5\x90\x132\xb2\
+\x89\x9e\xa5\xecy\xcd\x0a\xed\x1cv\xaf\xef\x7f\xaf\x0c\xe0\
+\xbc/GF\x05K\xe6\x93\x81\xe6\x88=&d\xd8\xef\
+\x7f\x93\x0e\x06\xc8\xa7\x1e`\x86\x22\x1dO\x95\x98\xe9\x1d\
+!\xf3\xeb\xc7W$Fq\xa1$\xf4\xf5p\xeb\xc3\x82\
+\xa4\xf2\xb9\xd3\xe3C\xe6\xd7\xcf\x86\xcc\xaf\xcf\x0e\x19\x9e\
+KB\x12\xcb\xc1\xef\x90[\xbd\xb8\xd8\xff\xe9-\x89J\
+\x09\x80F\xcaYs_\xb5\xc6\x80zkMP\xe9G\
+\x0a\x97c\xd3\xf6\xaf\x0c\xd9\x0cLq'\xa8(\xfd\x5c\
+\xc8\xf0\xdc$N]\x87\xb1`*\xe0\xf42\xee\x02\x9c\
+\x1bH\xb7\x04\xd22\xf6*~\x029\x06\x0fR\x04\x12\
+#\x9f\x939\xf7\xd5+k\xacPBf;\xa9`%\
+^2\x11P\x9c3\xd7\xca\x96\x0e\xe7)\xcfG\x9d{\
+\x81\xad\x9ey\x95N\xf6\xc2\x98-\xe4e\xce\xf3\xaf\x84\
+\x0c\xf6BbC\xe5\x80c\xe3y\xd0G\xce\xbf\xbf\xcb\
+\xd6\x9f\xc3\x8f\x85\x0cv#\x11\x03\x95 \xa5/T\xca\
+3\xf0<\xdc.d \xc1\xe3\xe0i\x19\xb2\x1e9\x0e\
+p\xff+!\xf3\xdf?#dH\x10\xdd3d\x0b\x84\
+\xaa\x02\x9a\x81\xd6\xd1\xdf\x0e\x19\xb8#\xb2\xc2_,\xe4\
+\x1c-vR\x82\xe7;\xd7sS\x01!\xa8\xbd}\x93\
+-r\xf5\xfc\xe87\xe7\x5c\x8b\x95\x16\xb2_\x08\x19Z\
+\x09L\xd1I\x92\xc7J\x1cq\x1c!- \xa2TN\
+Ur9\xd8Y\xa9\xad\x0a8\xc4\x00\x04\x8c\x96\x16\x09\
+K=\xdfZD\x044\x107\xa7\xae-m\xe5\xc8\xf3\
+#\x5c\x97J\xa5\xa9\x19\x12\xbf\x02n\x09\xa9\x5c\x97r\
+\x18% \x14(\x92]\xbf\x1cD\xfa\xe5\xbe!C\x05\
+\x1a\x84\xbfU\xf6@\xe0%\x0e\xab\x85G\x02![\xbe\
+\x90\x95J\xb8\x14y(D\x9f\xfbt\x1eq7\x99\x86\
+\xa0\x152\xc7U\xf1/p\xd2T\xcf\xfc}\x179\xe1\
+\xf0\xb4\x90\xf9\xe7\xd7\x0e\x19\xcegrK\xd4z;\xa7\
+\xf4U\xfe\xbc\x10\x9d\x900z\xc2\x1f\x162\x04\xe0\xf6\
+\x87)M\x12\xb6\x9d$\x8d]\xef\x81 \xff\xcd\xfa#\
+KT\x10\x10\x90\xd0\xd7\x9e?\x84@\x06\x88\xd5*g\
+_\x08\xd0$6!u}\x9eD\x05;\xa3\x97\x9c_\
+\xca\xfe;O8\x87\x90\xcc\xf9\x1cz\xc8\xfd\xf6\x9e\xfc\
+q\x9c\xf7\xc8)\xe4\xdc\x98\x02\xd2\x13\x00\xbe\xf7\x9c:\
+\x12\xc0~\xe9\xad\x05\xfc z\xd3|t\x9f\xeb\xba\xad\
+\xabu\xe0\x7fy\xed\x10v\xc8\xbbD^V\x82\xda\xef\
+}\xb9n\x95~\x89\x10\xd7-\xb0\xb4>\xfd>@\xd3\
+U\xfc{\x82\xa6\xb7\x04tn\x00\x09)\x85\x996\xdd\
+\xa8>\xbf\x93\xea\xd9\x9f\xee\x9b\xff$@g\x17\xfc_\
+OD\xb8\xfe>\x16\xba\x15\x00\xcb\x8f\xeb\x89\xb1>U\
+L\xc0/\xae\xf0\xbd\xeb\x14\x8fX\x7f\xf1\xa7\xf8\xa5#\
+\x00:\xe2\xc0\xf5\xb9\x7f\xaf\xd6\xd9}\xb9_~Lk\
+!\xa9\xf3\xe0\x1c\x88c \x0c\xed\x07\xf6\xdc\xf3\xcd\xc2\
+\xde\xeef!\x03\x17\x90\x84l\x16\xb4\xca~C\xae\xe3\
+\x14b\xcf\xad\x9f\xb1\x9b9\xdd\xa9\xec\x8cD\x8f\xfd\xce\
+\x0e\xf1gn\xb9\xc8\x09A\x9d\x1e\xe4\xe9\xbe?Rd\
+Fo]{\xaa\x177\xff<\x15\x0c\xae\x0b\xf9\x95|\
+\xe0\xe38\x07\x99\xab\xc8\xc8\xbeu\x98\x0b+P\xcf1\
+(z$\x8b\xad4\xc7\xc5\x14\x9bu\xf4>\xdd}\x98\
+\x93\x1aa\xf3\xb7\x0c\xad\x07\xc91 \xa0_\xd4\xf7\x95\
+\xb2\xc2w\xc5\xc11\x14pp (V\x0a\x91\x82D\
+\xbe\x82\x84\xc7\x02\xea\x15\x04\x85\xc4\x1a?V\xc8O\xc8\
+@\xe0\x9f\x87\x04\x04\xc8!\x87\x96\xc3\x94\x95\xaa\xda\x80\
+\xc9j_l\xea\x9d\xd5\xd4u^.\x11\x0f\x0cZ\x8e\
+O\x19\xe6\xea\xae\x8eq\xaf\xd0\x1f\x8f|\xcfk\xef\x9d\
+\xe9\xbd8e\xe9\xdb8@\x0a\x99\x01I\xe8WA\xcf\
+\xad\x83\x83K\xe1\xc9\x88\xf69\xf7*=\x17h\xe3\xdd\
+\x1cx\xd7'\x81\x92\x8e\x226\xdc\xeae\x81\x88H\x07\
+\x11{\xb9\xcc\xda\x12hE\x05\xf9\x8b!\x83c\x8dD\
+\xea\xc8\xf2$\xd6\xca\xe5\xb5\x07\x05=\xceC\xfd|*\
+\x82\xf3\x0f\xfb\xd2x\xae\x1b\x84\x0c\xf3\xde/\x9a\x8aT\
+\x85\xf5\xae+\x12\xe5\xf0\xb2\xc3\x1f/\x95\xdaP\xdb\x1f\
+\x1b\xc81U\xf8\x91\x91e\x80\x163*\x96\x96\x12\xcf\
+\xe7:\x99`\x01\x05\xfa\xb7\xcc\xfc\xda\x97\x1c,H\x9a\
+\x84xV\xe5\xea\xeeY\x11\x7f\xf9Z\x11\xd9_#d\
+P|\xe9pT\xc5>+\xe7\x87k\x1c\xae~\xb8\xfa\
+\xe2h-\x8e\xeb\x89\xa7\x86\x0c\x99ql\xe9z\x8c.\
+\xb1:\x12\xc5\xa2\xaf\xe2\xcb\xc1\x93\xa9\xa4h\xb1\xfff\
+\x8fx]\x0f\x16\xf2\xdbg\xc0p\xed5\xb1S\xe7Q\
+O\xadD\x9c\x80\xd9\xf7\xf6U\x9f^\x22\xc0L\x8e\x91\
+\x0a\xc4\xcc\x8d\xbe}r\x18\xa4\x1e\xa8\x1ekc$\x7f\
+8\xc9\xe2\xfc\x9f\xf1\x87ze\xb3\x92xxAVj\
+o\x97\xd3\x1f>\x172\x90\xcd=.\xd9\xc4U\xa8\x18\
+.\xeb\xd3\xc8,k~\xb2\xcc\xadJ\xa7\x80\x92\xe3\xd6\
+\xb89\xca!r\xee\xb3\xe2]s\xe0\x13\xd1\xc0\xd1\xde\
+\x7f&d\xd3\xd7\xbb\x9f\x0f\x19\xd8\xcb\xb3\x17\xbc\xf4\xfa\
+\xef\xaf-)*i\xa5\xffA\x8c%\xe0\xe8\x0f\xe4^\
+\xf4\xa3D\x86\x9e6\x01/}H_\xa8\xc8\xbe0d\
+H\xf8\x0a\xc0<\x07\xbd\xf4\x12\xc6\xb8*\xe8C\xe4;\
+\x9e\x17\xc74\xc9\x0dk\x1e:\xb6\xf9L\xe0!\xcf\xa1\
+G\xaa\x82\x0b\x81\xe4:\xdb\xfe\xadD\x86\x80\x034U\
+\x85\xd6~f\xb89n\x1c#\xfb@\xc2#\xa1\xa9K\
+\xcb^ \xf3^\x142@>A\xcd\x19\xfc\xb4\x83E\
+Z\x0aR-\xe1\x81\x14\xef\x5c![\xa2\xaf*\x9c\x99\
+0\xdf_;dK\xcc\xefO\x0b\x99_?\x1f2\xb4\
+,\xe9\x1d\xe5\xc8a7\xbfi\xc8V\x917M\xa5\xf6\
+=\xc7W\xc5\x98=u\x1e@\xefUP%X\x04\xd0\
+*\xf8*\xe68WT\xe43\xb1\x06\xb9U\xdc(\xae\
+\xc39\xe4\xc8\x83\x96_>dH\xb0p\xb09`\x12\
+\x1a\x12\x8e\xf4\x8cD\x14\x7f\xc4\xf3\xf7\x9cMC\x12(\
+?dmy\xab\xfd\x00\xfa/\x11\xa1\x02\x0b\xa9\xa2u\
+\xe2\xd2!\x83\x9dL\xbf%\xf0_\x0b\x02\xec\xb4\x90a\
+\xfa\x8f\xf3\xc0QE\xf6\x0c\x99\xa0\xd5FA\x87\xc3M\
+\xbf\x08l\xac\x97\x8a\xfc%C6.\x9bBvz_\
+\xcf\xd1\x18b\x0e\xba\xc4\x0dD\x9a\xc0\x0b\xa7F^w\
+\x8d\x97M\xfd\x5cv<\xf5\xcc\xf4\xe2\x90!\xc1\xe1\xbc\
+\xbbN\xcf\x85=H\xc7\xb7\xecg\x06\xf6\xf5\x1c\xf4\xf6\
+J|\xf3W\xed\x03\x897\xe7Ub=\xa7\xa3\x94\xdf\
+\xd4\xc6&W\xe0\x96\xfb\xb4\x10?\x90\x07\x12\xc0\xfcW\
+~\x18\xbd\xd2\x03Y\xfew\x92\x9a\x95\x1f,\xb1\xe6\xfe\
+\x04\x8a\xec\x01\xbf@\xa2V\xa2\x84\x1f\xe6z%\xbe$\
+@\xecK\x813;\xde+\xf3\x0a:\xf4%\xbf\xca\xfb\
+t\xb2@\x9f\xe7\xb5\xbfo\xe7\x00h\xad\x00u\x0e=\
+_\xeb,\x90\x15\xa0A\x82\xb8\xfe\xfey\x1dQ\xab\x00\
+\xc4\x0f\xb3\x8f{\x80\xcc^uh~O\x00\xa8 \xe3\
+.p\x1d\xb8\x16zE\xf9x\x09\x00\x5c=*\xfd\xf4\
+\xa7u\xf1w\xfd\xf3\xe9e\x89!\xcfE\x02\xc0\xb9\x11\
+\xdfurA\xeb\xe8>T\xec\xfb\x18J\xfb\xdf\xe7\xf5\
+\x9fw.\x10\x9f\xc7\x7f\x11G\xb0\x7f\xd6\xbf\xb7:\xf6\
+\x16\xe6\x1e\xb7\xf8\x7f\xf7\xdb\xa7\x98\x89\xa7\x90\xe7A\xa2\
+\x09}\xd9\xf7>%\xa3\xef\x1b\xdfw\x92B\xc85\x88\
+\xc6l\x05\x9d\xfe&d~\xbdp\xc8\xa0\xe7}~\x1f\
+w\xe9:}~\xdf\x8f\xee\xd3\xf9\xea\xebb\xbd \xfe\
+ \x092\xb1u\xa4H\xc9\x5c\xd8\xddB\xf2\x01\x7fa\
+\x1b\xf70]<$\x17\xec_\xf3\x83\xbf\xba\xf5\xf4/\
+\x06\xf3r\x0b\xf4x\x96\xc1\x112.#\x03r\xbd\x9c\
+U\x11\xfb\x87\x90\xcc\xe0\x7fv\xeb\x818f\xbc\x12\xc7\
+.\xcc\xd6\xd8\xdb\x1b\xb7q\x95\x01B\xe7\xd5\x0d\xdb\x00\
+z\xb7\x8c+\x94!W\xc1\xc3\x96\x08\xbaO\x91R,\
+Y\x01\xaa\x0a\xa1\x0c\x13\xc3\xcb\x80`\xc1f\xd0\x05\xaa\
+W\xc9Lb\x87l\x9cwu\xd8\x0a\x81\xf0\xc2\x84\xbe\
+\x83\x16{?\x7f/\x83\xd6\x15V\x0f\xe0\xff'd@\
+'\xeb\xe3\x90\xf5^}\x8a\xc2\xc6\xa4\x90\x1cp\x1b\xd3\
+}\x22\xa9\x13\xf83\x9c\x0c\xa9uKGu\xbaQ\xc8\
+\x00\xc9\xda\xaeg\xbd\x0e\x90H\x99\xf9\x13C\xb6\xc0\xf1\
+\xf0w+d\xb1\xe6Ng\x85\xb2*&\x12\x0az\xa2\
+\x03:\xfd\xd2\x81\xad::3\xdf<\xf4\xd8\x22g\x92\
+ \x8at\xcc\xe5\x86^E\x0aJ@\xee~\xae\x95\x81\
+\xba\xde\xb1/\xce\xea\xec\x8b\x83\x81\x08\xb7\xe2\x83CO\
+v'\xbb{l\xc8R\xd9Y+LwLvp\x09\
+\x06\x81\xa9\x8a\xf6_\xad\x1c\x03\x05\xb9\xde\x85\x0c\xf7\x0f\
+\xaa\x99\xfb\xe8p\x91\x846\xde\x7f%\x15\xac\x00\xf7\x81\
+\xd3\x03b\xca\xc5\xfc\xb9+\xf2@B \x11\x17\xbb\xf3\
+\x85\x0c$E*ZW\xca@\xf8\x86\x89\x94i\xe4\x84\
+\xe6\x99VB\xcd9dHTP \x04|\xcf\xf1\x04\
+=v\xbe\xf4\x80[_\x19Z\x7fo\xff\xd9\xafH{\
+\x9e\x93\xd0\xe6\xd7d\x86\xb5O\xcb8o\xf6\xc4\xd9O\
+\x09\x81\xadi\x1d\xa0\xa3\xdf\xbd>\xa7\x82\xe4\xde(\x11\
+\x12_\x0f9\x9b![\xa7y|m\xfa\xea\xc2}\x90\
+\xd3\x0cfu\xbf\xf48\x0b\xa4\x0bj(\xd1'ps\
+?*\x0fm\xecR\x91\xb7\xf5\xb1\x9f\x9d\x9cS\x86\xd9\
+9U\x01U\x11\xbco\xc8\xd2k\xb68\x90z%\xa7\
+\xc7\xe7\x18\xc2;$\x84\x1a\xa7\xc1kC\xb6\xb1tg\
+\xdb\xd7\x1f\x18\xf6\x1dG\xc8kB\x95\xa7\xef\x08\x19 \
+\x97zI\xb3\xe7\xbb\x1cX\xd7\xcb1Qy\x93 5\
+\x86I\xcb\x15\xc3k\x8a\x01\x04\x1a{\xa3\xd5D\xa0\xc6\
+\x91\x80\xa0\xc9\xd6\xb6b\xff76\x13\xc4\xfb\xb7B\x86\
+\xc4!=\x92\x15\xf5\xd2\x07\x10c\x09)\xaeD\x91\xff\
+\x03\x19u\xee~&d\x83\xf6\x07~hA\x10q\xf4\
+=\xef\xacp\x96\x83 \x80\x01q\xa7\x8f\x8d\xe3\x94\x08\
+\x91\xe0\xc8\xc4\xe0\xfe\xb7B\x86i8\xd9jU\x015\
+\x84\x9b\x80!Z\xa8f}\xb7\xbfE\xc8\xf6|\x0aR\
+\x9e\xd3\x0e\x8a\xb3\x01\xf4[`\x92=\xe6\xf6\xab\xb1k\
+\xc5\x9d\xd0\xc6F\x15\xe9!\x08\xb8\xe7$q\xa37\xd7\
+\xfa\x7f[\xc8\xa0O9\xbc**\xd6#\xa7qTK\
+\x86\xc0M\xc0yr\xc8\x90@d/p\x0ep\xd0\xd9\
+E\x05\x83dw\xaf\x04\x90s\xca!\x96\xd8\xe2\xc7\x18\
+s\x9b~\xc2\xac\x1df\x19\x90%\xce/h5}\xe2\
+\xf3\xf9!}\xcc2\xe8h&\xc8\xaa\x15C\xa0\xe7\xdc\
+\xb37\x90\x5c\xc8(\xbd\xafD\xbb\x965\x81?\xd2\xaa\
+\x9c\x06U\x08\x03\xfb\xebz![B\xbbz\xa3\xe9Y\
+z\x8d\xbf\xc1\x8f\xf3=\x922\xdc\x0f\x99(<|_\
+\xc8\xd0\x03\x8e\x83\x00\xf7\x87V9\x8e\xb2\x16$\xcf\xcf\
+\xfb&\xe9i\xe9\x17\xeb\xac\xa5\xd5sE\x22\xd98\x00\
+\xf6/\x09\x19Zu\x04^\x02b\xf7\xa9\xe0\xd1[\x1d\
+\x9dgz\x14\xd9e\xea\xc1\x1ak\xec\xfc\xf3\x97\xf8\x89\
+\x9e\x7f\xda\xa1\xea\xddv\xee\x91\xd2\xe68\xd5Jh\xc4\
+x\xed\x0b\x0e\x899=\xfa\xce\x17\xbd\xc9\xafQ0c\
+?z\x80\xeb~%\xee!nz\x00/\xb0\x93@\xf0\
+>\xbd\x82\xdf\xc7\x10\xfb\xff\x9eP\xf0\xf7\x12\xdb\x02\xcf\
+N\xd2\xa62\xcbOu\x1fm\xdaD\xf5V[\x07\xef\
+\xe3>]\x7f\x0f\x90\x15\x1a\x9c;\xeb\xdf!\xf9mJ\
+BU\xe8\xfd\x1f\xfbf=\xfa\xf8=\xef\xe3{\xef\xa3\
+\xa5\xc1\xfb\xdb\xf7\xae\xb3\xb3\xdfK`\xf4\xd7\x8e$\xa6\
+\xf7zk\xb0\xfd\xab\xe5$9W*q\xd1\x11!=\
+q\xcd/\xf6\xda\xc7\xd7\xf5\x0a\xbd\xd7N\x06\xd8\xfd;\
+\x01\xed\xf1\xc8\xc6\xfbT\x08\xdfK\xdc4$@A\xfa\
+\xad\xa7\x96\x04-h\xceE_gz\xbe\xb7B[\x07\
+\xcf\xd7\xb8X\xf6Mk\xa8\xd6-\xcf\xc1\xf9\xb4\x0e\x1d\
+Ib\x9f\xfb|\xeb\xc9\x8f\xcaD\xb1\xd6\xcb\xf2\xa7\x15\
+Z$.MI\xc9su\x04\xf9\x8eJsed\xc3\
+\xfc|i\x80\x16\xc7\x81\xff\xcc\x06\xa9_\x1c\x97\x17d\
+\xa0q\xa3-#m\xe1T\x0c\x96\xde\xb1\xa8\x10\xfdm\
+H\xf6T\xfe\xc2@\x22h\xfc^\xa8\xed\x13\x871\x06\
+*\xbd\x1c\xc0\xf8\xfb\x11\xd2\x82\xbd]\xb8k;0\x00\
+2\xb3*\x1a\x19\x90V/\x1b\xe8]B\xcc\x0aj\x8b\
+\x9d\x1b\x22\x82\xe2\x06i\x05\xe1\xc0\xca\xfb\xbe\x90!\xc3\
+\xa3\xc2\xa5\xc7\xff\xa9\xc9*\xaa\xd7C\xa5\xf7\x8dk\xcf\
+ze\xaa%\x08$\x1eT\xde(\x1e\x99\xad\xdes\xdf\
+\x03\xf6N\xbew<\xa4@o!\xe8\xff\xef\x95#&\
+s\xe7\xe0\xe8A\x05\xb5\xd4\x9b\x99=\xb4\xd3\xf3C\x86\
+y\x98\xa0{?\x92\xeb\x9e\xe3\xe28<\xc6\xb7!_\
+\xd2\x837\x87I\x8b\x83\x17\x1d\xfd\xd1\xd3_\x0e\xfeS\
+Ox\xca,\x05i?\xdc8dcq-H\xaf@\
+(\xdc\x9f\xbbo\xfb\x119\xdf\xf2\xd4\xfe$+\x1aO\
+\x1a\x1c\xf6p\x9b\xee3\x04\xe8Q\x09\xbe\xcfP\xf9\x96\
+\xc9O\xc58=8\x1d\xbb\x93W\xce\x8c\xfd\x17\xf7_\
+\xd8\x7fa\x98\x03o_\xc7\xfe\x7f\xc4\x10p\x810\xe7\
+x\xb6\xca\xe3<;!\x89\xc6\xb6%\x19\x9c\xb1m\x87\
+\x07%\xdbv\x06t\xfb\x1f\x08\xd9\x12-\xd3\xe7\xd6\x04\
+[Uz)\xf0\x0f\xae\x8a \xa6^L\x97\x1dH\x16\
+\xb1\x9b\xe79\xdd\x9d\x1a2\xbf>/d\xe8\x85L\xc7\
+\xa9X\xc5\xef\x9c\xec\xf7\x8fZY\xd5\xab\x15B\xab\x0d\
+\xc5\xabrAqRp\x9de8\xc9\x00%\x22\x0b\x1a\
+e\x1a\xc1I\x8d\x0b\xc3>\xf5\xff\x14)\x05\xf8\xd7\x09\
+-\x04}\x97Q\x05\xdd\xdd\x85\x0cc\xba\x9e\xb8V\xaa\
+\x90LV\xa0\x05\xa2\x8a\x0d\xba\x93ke\xaf\xef\xf4\xc5\
+\x90\xe1\xbeT\x1c?\xbe\x06p\x12.U\xa9|r\xc8\
+p\xce\xe8\xbbt\xf8\xaa\x97\x7f#/\x5c\x0d\x1a\xc3\xcd\
+0\xfaBn\x97-V\x05\x19U)v\xfd\x02\xf7\xd3\
+\xb2R\xf7\xc6\x95$h\xbab\x226\xae\x9f=\xb5\x12\
+]Z$\x90\xe6I\xb0\xa6\x1e\xaaD\x1erJc\xf4\
+\x04\xc6\x10X\xf4\xb7\xe7\x84\x83\x01k7\x87\x8ba\xd4\
+\x02\x00y\x22q\x8bl5!\xf1\xe6lW\x05\xd9\xb8\
+>\xf7+\x01\xd0H~\x8a-\x17\xe4\x5c\x82\x8b\xe1\xed\
+c\xce$*\xed\xa3\x8f4D\x0e$H\x1a\xf8\xe9\x1f\
+C\x06\x87N\xef\xfb=\xd6\xb1\xa6Z\x99\x8aM_\xab\
+\x07\xc7>\x03\xf1\x82Bg\xa5pzN\xc8\xe0\x00\x08\
+\xc4\xddg\x9e\x1b\x90\xfd\xe9\x0b!C\x8b\x0e\x92P\x09\
+\x03\xd0s\xf7o\xca\xc75C\x06\x8e\x83\xe4\xf0)D\
+\xc1\xf7\x1f\xee\xbd\x04\xe6\x02\xc9\xe4\xf8(\x88v\x92\xef\
+\x15\xe9\x1c\x085\xbd\xa0\x22\x0e\x82-@\xf4\x9cz\xe5\
+M`!A\x9e\xfb\xb0\xe6\xa5[?\xfb5\xc7\x10\x1e\
+N\x09\xd9\xa0\xee\x87K\x84\x0c\xfa;+\xe7\xb5\xaf\x15\
+\x18\x14\x08:\x17\x87\xd6@?\xe7\xd0\xda7\x12\x1b\xf9\
+\xbe\xc8\x14\xa7\x8b\x84\xcc\xaf\x9f\x08\xd9\x12\xbfZ\x04\x90\
+\x0d\x97\xbd\x97\x98\xe1\xf87\xe8k\x9d\x1bzP\x82\x9f\
+\xe3iJ\x87uI\x87\xb6*\xf6\xc6\x85\x82\x82[g\
+\x89\x0d\x09\x15\xf7%\xc0\xe7\x10\x0b\x08\xed\xa3\xceN\xaf\
+\xd5\x89#\x0d1\xc8O\x93(1U)\xa1\xf7\x87}\
+\xc8\x80\xd8\xca\xca8\xa4\x11\x12\xe6\xd2'\x12\x1d\xee\x93\
+]\xcb\xe9,\xc6\x9aFzsIpz\xae\x90\x1f\x1c\
+k\xfbI\x8f=\x92b\xd3\x86:\xb7F'A\xeb,\
+\xe2\xce12A\x5c%\xa6G\xd0\x17\xd9R\xa1%\xc3\
+\xfa\x09x\xab a\x9fu\x12=vC\x22\x07\x02\xc9\
+:xn\x12\x15\xfc=\x89J\x09e\xeb@_\xb1{\
+\xc9\xfdQ\x094\x08\x1cvW\xe0\xc2>y\xff\x9e\x98\
+\xee\x81}O\x00H\xf0I0\xf4\xdf[w\x097\x81\
+\x91\x9f\xb3\xfb\x02t\xe3\xc6\xbd\x9f\xc4\xaf\xf7\x05\xf1\xf6\
+{\x88\x11\x81:\xfdc};\xd2\xa0#G%\x1a@\
+\xfb%p\x14>ZB\xff\x18R@H\x856\xd6\xad\
+\xde\xa7\xb7\x08t\xce\x05\x819\xe4\x98\x00W\x22\x8a_\
+\xa2\x80\x22\xbep^%\xec\xc4\x17\x9e\x9b\xcf\xefc\x1f\
+=\x17\xef\xdb+\xfc=\x11`\x7f4\x0e\x91\xda'\xfe\
+\xcf\xfeq=^;\xf9_\xff\xf2\xbe\xae\xdf\xfb\x08\xd4\
+%\x92\xac\xabB\xa5}-\xc1\xc1\xee\xd3\xf7\x12\x11\xee\
+\xdb\xfb\xf9\x1c\xd7o?\x8a\x0f\x0f!\xf3\xeb\xd7C\x86\
+}\x85\x13\x8c?\xc3\x9eH\xbc\xf6\xf3\xc1\xdf\x90\xd8\xb4\
+_=W\x05L\xd3\x9a \xb4\xbd\x8f\xc2\x8f\x96\xc0$\
+\xe5=\xb2\x90\xa4\xfd\xdb\x90\x11\x05Q\xb6\xd06\xac\xb1\
+\x19\xa0u1\xbf\xfaJ\xdb\x984\x0axw\x9f\x90\xf9\
+\x02\x9e\x14\x92\xa4Q\x0c\xfaI\x03;+C\x96\xe4\x7f\
+g\x1b\xe7\xf0\xd5!\x01\xa1\xf5\xa0\x1f\x94\xc8\xab_`\
+X\xd0\xd8\xc6'\x0f\x1c\x01\x1c\x89X>\x90\xe3\x0f\x0f\
+s\xbb%\x18\x18\x82\xdes\xef\x80\xa6c\x18\xd3\xcac\
+^y\xcdu\xbe\xc9JZ7\x9d/d\xd9@k\x8f\
+\xf0\x7f\xe4<l\x0aA\x00\x96\x95\x88b+VI\xd0\
+[\x9bdn\xc7d`\x1d,\xf7\xcf1\x9ej>\xfa\
+\xea(\xd8\xa0\x1c\x01\xff\xef\xe7\xfe\xcfA\xeaP\x1a\xef\
+\xd3\x91\x00\x0e8E\x98\x10\xf12\x8cH\xce\xb2RS\
+\x89\x94\x84\x80R\x9c\x02\x87\xe9:k\xc5s:!\xc9\
+\xab@\x8a\x91P1h\x8fM\xa84C\x18\xbd\x81\xbf\
+6\x90\x14\x85\xf9|F:H\x7f<T\x828.\xf1\
+\xd4\x1e\x9c\xbd4\x7f\x91\x15\x9bW\x0f\x07\x17RD\x8f\
+\x9d\x03\x15\xbb\xeb\xa3\x03'\x00G\xd0>\xcb\xc0vY\
+\x9e\xc3F\xbeT\x86&+\xbb\xc5\xba\xca\x90\xe64\x82\
+e\xdf^hp\x88\x04\x22X\xa0\xdb\xfa\xe9\x89\xac\x8a\
+\x0e\x85i\x9d\xd2\x91(\xee\x00\xcf\xf7\x89\xd9\xebz\x8b\
+\x90\xad\xa2,0\xab\xf3\x99\x95\x02l\xeaH\xde\xa6\xf7\
+\x86\x0c\xad1\x97OrK=\xdd*\xe3\xdfT\x8e\xc3\
+z\x1fX\xeb9z\x0c\x16\x05\xeb\x8b\xbeA\xe2\x97\x15\
+\xd1\xe9\x8fC\xb6\x00\xa5\x1cX\xebuf\x83V:?\
+\x02\xb3N\xa2\xd7\xc6\xf8TEN+\x07G2\xcf\xdd\
+\xf4\xc1\xe9C\xd3\x87\x86\xc0\xd59cX!\x812\xa0\
+\x98\x9d\xe3\xff\xbd\x90\x12^|\xfa\xa6@HUB\x90\
+\xe3\xd5Z\x1e\xe6\xa0ju\xc0\xfe9\xf7S\x22\x10J\
+\xf1\xcb\xd8\x0a\xec$~@\xc9\xac'\xc3MO\xebA\
+\xcf\xc0\xb2\x12\xba\x12M \xfa\xd6+\x11\x00\xfb'\xed\
+\x9f\xbc\x8f1\xafGWr\xc2\x05\x1fu\xe1!\x91\xa6\
+\xf2\x0f\x01B/BPH,$)\xe1\xf4O!\xc7\
+\x929\x96\xe1\x12\xc0\xaa@\xfa;\xe7Lb\xc3\x97\x16\
+\x17\xff\x87\x0b\xc4\xe7c5F\xa2\x99sn\xcb\x11\xa4\
+\x0f\xfc=GW\x053\xf5W\x8d\xd9\x02\xf9\x87\xb4\xa0\
+\x07=O\xad\x1c\xee[o\xb3\xfd\x0dz\x8f\xeb@@\
+b_\xba?\x89\x8e\xe4\x22){\xc8Q\xa2o\x05\xc8\
+9\x87\xbc*\x9f\xf4\xab\x04\x8d\x04\x97)2\x19\xb0@\
+0@\xf2\x1d\xbe\x122T\xe6%t@\x03!\x0f:\
+I\xa1\x00\x08\xdb\xbb\x04\xeb\x8f\x9f\xf0cKk\x88\x80\
+$\xf5\xea\xfe\x1d!C\x05W\xc0\xe0\x1c\x0a(;\xdb\
+\xbcD\x98\x9f\xb3G\x1c\xab\xac`T\xc2 \xeds!\
+Z@\xf7\x91<\xda\x07\x10\x0a\xfc\x02\xbd\xee\xf9\xba\x7f\
+i\xc8\xa0o\xb4\xf0i\x9dA\xba\xc4nt\x12b\xd7\
+I\xeftR&\x8eb\x87t\xb3\xbb\xd6\xdf\xf5q@\
+\xed?v\xb7\x8fm\x15@\xeby\xa6\x17$8\x8d\x9f\
+cW\xba\x9eq\x0e\x8c\xf1\xa3\xe7\x90@\xffz\xc8\x96\
+ \xd5\xc2R\xe3_qm\x98J\x91d\xb3\xecH\xdd\
+\x0f\x04O\x0f8qEd\xa2Iok!>\xb0_\
+Kx\x5c $\xc6&/\xb2\xf5\xc6\xe7\x18\x5ccc\
+\xab\xd2\xeey\xf5DF&\xbc$J\x0f\x0f\x0c\xd9\xde\
+\xbf\xfe\x1f\xb2\xcd\xf9\xb6O=\xd7>\x06\x90\xbf\xa5\x00\
+\xa5b\xaf\xb7_+\xa5\x8a\xbd\xd6\xa0t\xd8\xab%P\
+ \xa4\x00\x90d\x91\xd3\xb7\x87\x9cC\xc0\xdd\xa6\xc4\xd4\
+\xbeq\x9d\x19\xb8\x16\xe4_\x82J\xc5\xd0\xffi\x953\
+\xe5\xc2\xfd\x09\x94@\x8d;[<?\xb5\xf7l\xdb\xaf\
+\xbd\xb7\x9f\x9eQ\xd1w?\xfeN\xc0\xd9[\x01\xbc\x0a\
+\xa8\xfb8=\x81o\xfa\xf9\xe5\xcf;\x1f\x1d\x19\xe0\xfe\
+\xf8\x05\xf6\xabu5\x16\x90\xbe\xee$y\x12$\xf4\x5c\
+C\xc6\x95}\xebs\xe5{+\x85J\xbf\xf3\x04\x19)\
+A\xc5\xdf\xeb\x89\x02\xf7\xefs\xd9Y\xf7/\xf1#\x1e\
+q\xfd\xf4\xac\xfd\xcco\xec~\x85\xeb\xeb\x89\x86>\xd5\
+\xa3\x8f\x05\xb4\x7f\xfbkO\x10\xb0\x8b\xfe\xdf\xef}\xd1\
+W\xae\xaf#\x99{\xe2\xad'\x18:\xf2\xc0\xe7\xb41\
+z\xb5~\xfd>\xedk\xeb\xe4{~\xb8W\xcf\xd7s\
+\xc7M&\xe1{\x93\x90!1\xce\xdfW\x18\xa5\x17q\
+;\xb1'\x9d,S\xc1I\xc2\xcb\xe7\xf5\x16\x11H-\
+_\xb8\x19\x8c\x15\xcf\xb8\xe5H\x91\xfe\x09pb9>\
+\x99s\x92\x7fq\xfb\x07\xac\xbbK\xa7\xdeM\xb6\xca\xd8\
+\xf4_!\xf3\xeb\xb9B\xb2\x82\xf8\x7f\x87\xb9\xe4\x0cM\
+\xdc\xce\xd1\x81t/\x90\x07\x17\x1e*\xff\x91X\xf8|\
+>\xc8\xfdP\xd9\xf7\x00\xb1\xb3\x8f\x19\x91Ol\xe3.\
+\x16Ev\xb5\x81\xac\x90\x02\x91YI\x03[,\xd4\x1c\
+[\x06\xce\x98\xbf\xbf\x08\x19\x1c+$I\xa0\xc81\x96\
+\xf0\x11\x8b\x22\x5c\x1c\x99\xe9\xf7\xd6@\xaa\x02j\x99h\
+\x07\x09\xcb+\x08\x1a\x88\xa8\xccO\x0b\x80\x8a\xedYO\
+*\x12#P-d66<G\xd1F\xb4\xd1;\xdb\
+(\x85L\xd1\xb9>\x8eg\x1f{\xd6 \x98E\x22a\
+\xac\x95y\xc7\x1c]\x89\x07\xeb\x9d\x1bYe\xbf\xd8\xc9\
+\xbf\x1c\xb2U@\x90UL\xaf\x08YH\xa8\xaez\xb8\
+\xea\x86$\xd9\xbf8di\x15y\xe7\xf4\xce$\x93\xf9\
+\x5c\x8ew|P:\x96oX*\xd0!\x1b;:E\
+\x99\x15\xf1\xa5\xd2\xf7\xae\xa1\xc2\x15f\xe2}[&\x14\
+Tx\xe9%\xfc\xc3LL\xbcts\xc4@qK\xa1\
+\x06\xf5\xd1\xfd\xf2y>r1\x08\xebAE\x1aw$\
+\xd7\x95\xe2\x0a\xb7\xff\x94a?hu\xe1\xa8\x22wB\
+.&\xd3,\xc1\xc0\x81\xf1\xf9\xd9\xc2P\x89,\x0e\xa4\
+\xb1s\x0c\x83qX\xc9f^\xeb\xaeB\xf4\xb2\x90\xf9\
+\xf5\xcc\x90\x01\x91`?\xf8\x02I\xa7\xe0\x9d\xafw\xa7\
+#\xfa\xe9\xcc\xac\x82N\x81zs\x90\xb3\xa7x\xbaU\
+B\xc8\x91u\xda\xd7 \xb7\x0fXY\xc0\x8b\xac\x8f#\
+\xdc\xc9g\xec\xcf>\x07\xb8\xf7z\xfdyV\xda\x13Y\
+R\xe7\xfb\x0d\x19\x90\x98\x07\x9f\xe7\xac\x02S\x01\x96}\
+\x9d\x95\x81\xfd\x9f\x87ls[\xa7\xdbM\xb7_\xe6b\
+\xcb\xa83\x1c\x9e\xbb\xef\x8d\xfbzi\xee\xcf\xaf\xe4:\
+z\xff\x0c\x80g\xf7n\xa9\xa4\x97AQQ\xc0\xf1 \
+Pf\xe0@\x99\x9f\x9e\x0e\xfc\xaffo\xec\xdf\x87\x0c\
+\x95\x5c\xe3\xf1\xfe`\x91\x0dy\x90\xad+\xbb\xdf\xdc\xfd\
+\xc6\xee7\x06d\x08\x04\x87\x9ex\xadOz\x85\x8d!\
+t\x9e\xe8\xb1\xec\xd5\xae\xca\xa5\xc09\xe7yW\x80j\
+\x1c\x96\xb9\xe2\x02<z\xd4>\xa3'\xb3\x92W\x10x\
+\x89)\xfbG\xa0\xcc@Z\x1fdW\xdf\x142\x04*\
+\x89\x0c(\xb2\x22\x09\x17\xec\xffZX@\xe2\x91\x94r\
+\x04\xecCs\xeb\xb5\x0c|G\xc8\x16\xd8\xd49q\x1e\
+\x04B\xc8\xef\x90\xe1\x820\xd3\xbf\xf4\xb7}\xcdAg\
+?<w\xad\x17m\xfc\x11\xa8y!\xa4\x12\xe9p\xf8\
+j\xc8\xe6 Ve^\xe0*\xa0\x84\x08P\x11W)\
+3u$\x0a\x00W\x1e\xe6ak\xf1bW$\x08\xb1\
+\xfe\x0b\xfcU<%\xec:D\xd4\xf7\x9d\x94\x96#\x0d\
+\xc2(A\x9al\xea*\xfdE\xb6\xa7\x05DO\xbc\xd6\
+)\xf3\xe3\x93\x0c\xa9\xecm\xfa3\xfbO\x87\xcc\xbf\x7f\
+K\xc8\xfc\xfa\x80l\x91\xd2r\xc2^!\xb9c\xef<\
+7\x09e\x88\x04\xfb5\x7f\xbf\xff\x9d\x90\xf9\xbc\xfdT\
+\xc8\xe6/L\x1f\x0e\x19\x02Mv\x9b\x83\xcc\xaeK\xf4\
+\xa90\x9aN\x92-\x095\xb63\x119\x15\x10 5\
+3\xa5\x08\x12\x92~\xa6\xbf\x04J\x02\x9b\xfc?\xd3@\
+j\x0c\xaa\xe7\x0bQ \xb0\x14\xd0#Y\x14\x98\xf2\x07\
+ y@\xfa\x13\x89\xa0ru\xb8~\xc8\xd6\xfaW\x01\
+1\xff%\xf5.\xbf\xa3\x12\x9b8\x17\x12\xb1W\x09\xcc\
+l\x89\xa8i7\xb822\x90\xdd\xffn\xc80\xf64\
+\xcfG\x05\x8a\x02@\xd0|v\xc7\xf9\xec\xe4\xca*\xa9\
+\x0a.\x02S\x10l\xfbX\xe0\xa9\xe5Ce\x9e^a\
+\xbf\xec\x1f\x9c\x0d8a\xf8\xc1\xfc\xc0\xdc\x87\xa5\x97!\
+\xab@\xc7\xfb\xd4\x02\x08*\xdc\x03\x12\xf2\xfcH\x95p\
+z\xd4u\xf1K$\xd0\x05\xac\xb9O\xab\xe5J\xe0\xc6\
+\xbe\x09`\x90\xa9\x09\xec\xbd_\xef\xd5\xee\x81\x7f'\xd3\
+\xb3\xfe\xbd\x15\x8d^\x11@\xf7\x00\xbcs\x0a\xe4\xfbM\
+GB\x06\xa4\x83\xc2\xa0\x16\x1b\xeb\xd4\xc7\xd0\xf5\xc4\x9f\
+\xcf\xe9\xec\xf0\xce\xb3W~Koy\x10\xd8K\xb4\x08\
+X}\x0e\xfd\xe0\xf3\xb4\xc4\xf5\x16\x01\xe7\xb8\xf5\xeeW\
+\xe2\xc2~e\xcf\xe8/\xfb\xb6\x91\xe0\xd5\xff\xf7\x04J\
+\x1f\xeb\xd8\xc7\x03z\xae^!\xca\xf3\xbc\x1d\x13H\xd3\
+s\xfc\x00\xf6\xa4\x93\x8c\xe7\xf5\xd7\x14\x9cN\x22\xdd\x13\
+\x0b\x1d\x81\xd0\xb9\x22zB\xc1>sN\xfb\xb8D\xaf\
+\x9d\xcb-\xcf\x0b}9}:d8\xc7\xde\x8f_\x87\
+\xdb\x8c^\xb4\x9e\x9d\x93\xa3%\x02\x8eI8\xd0/}\
+\x1a\x9b\xf3\xfb\x94\x151]\x89\xd7L,\x1e\xd9\x7fm\
+\x96\xbe\xe0'\x0f\x07@%SF8\xd8f\xaf\xb0\x19\
+,s\xd9Ox\xc4,\x11`\xbcz\x96P\x1c\xa7\xcd\
+\xf2\xd8\xbc\xe1\xaf\xe5\x0d\x8e\xac\xfeWZ\xba\x88\xb7\xf9\
+\xee\x01\x85\xbc\xf5\x90\x80\xa0@ \x07\x8c\xeb\xf3 \x22\
+,8ex\xf5s_ ;\xe16\xde1+Gw\
+\xdb\xc6\x0cU mA8`>\xd7\x83r\xbd\xde\x1f\
+\xeb-\xf2\x86L\x90\x14\xe4]\xc5\xc7\x03\xe0 \x0b\xa4\
+\xbd\xaf\x03\xdc\x1c\xbb\xe9\xcd!\x83\x03\xee\xa01l*\
+\xa12W\x0e\x0e\x87\xd3\xc1\x860\xb0A\x12B]\xa4\
+1Y\xe9*h\xb7\xbf\xa7\xe0:\xb4\xcd~p?\xfe\
+\xde\x17H\xaf\x8c\xa5\xfbdX\xb2\x17\xb8\x0eJ:\x82\
+\xd3\xbf\x84\x0c\x15\x9a\xcf\xa6\x22\xd4:\xf0\x1b!\x8b!\
+^{\x89A\x9a\x03\x00\x1a\x8e\xdd7\x86dE\xea\xda\
+\x998\xb9\xdf\xd0\xcb\x88\x5c\xea\xb4EV\xc5\xfb\xef\xc3\
+\xf3W\x11\x8d^\xb93\x06\xb6m=\xda\xe18<v\
+0\xfc\x0c\x87}C\xe1!w\xfc|>/\x86\xccA\
+f\x90@&!QTf( \xa4t\xef\x0b\x19\x1c\
+\xfa$9\xac\x1e\xbf\xcb'\x1bv\x1a\xea\xda77\xc8\
+D\xc0-\xf29] \xcf\x97\xf3\x9ac=K\xe1\x08\
+(9\xf2\xa0\xf6\xbe\x9c\x0b\x8a\x1b\x99Pg\xe3e\x98\
+\xd2\x11\xab\xfb3\xd6\x8c\x22?\x9a\x86,\x03\xcf\x9a\xe6\
+\x90\x10\xa6\x22_1\xb5\xa3C\x12)4\x06A\xa2\x87\
+b\xf7j\xcaCB\xfc\xcb\xa0\x22\xa1\x04\xc1\x7f\xf5Z\
+qRY.H0$\x82\x1e\xb8\x9b\x87\x0c\x8e&R\
++\xe7\x17\x19\x99\xfbt~\xde\x93\x89\xd5\xf3\xa5\x81\x15\
+\x08\xd9G\x0cZ&@\xccy^(N\xaf8Th\
+\xae\x9e\x95,\x9f\xe7\xbaTp\x7ffe\xad?\x86D\
+\x07\xe4Z\x05(\xa1\xe9\xfb\xc7\x86\xcc\xdb\xeeGw?\
+\xb6\xfb\xb1\xad\xa2V\x01-\x87C\xe5\x87\x1e\xcc\x04@\
+!\x13rn\xf9\xf4\xcd![`\xbe\x8cc\xbd\xcb\xc6\
+\xe5P\x09\x04-PYi-\xf2.\xfb\xb0M\x071\
+\xe6+\x86..c\x17\xcdS\xa7\x07\xac\x83qj\x02\
+D\xfb\xc6T\x00\x10{z;+|\xf4\x07\x0e\x8d\x82\
+^B6A\xde\xa4\xde\xab\xf9\xd7\xbd\xf5*\xd7\xad8\
+s\xeck\x01\x18\xd6v\xfa\x15\x0b:D\x0d=\x89\xc5\
+\x1c\xa4?{\xedU\x12J\x7f\xe6\xcf\xeb\xbc\xb2[H\
+\xf9\x04\x0a\xe9\xe0!5\xac\xca^\x0f\xf0M\xb1x\xd1\
+Z9\x98\x1e\x97\xd0t\x90n\x01\xa1\x82\x00\xf6\x7f=\
+\xe5\x12\xebZ\x03r\xcaGU\xdaA\x10!\xb5\x12\xf9\
+u\x8c\x03\xcc\xae\xb1\x9f\xfc\x12z\xd6T!\x091v\
+#9w\x8a\xd3\xc0~\xa6\xbf\x8c\xe3\xa5\xb7@\xdf\xff\
+2d\xe8\xedF\xb6\x97c0k\xec\xa71\x0c\xc8\xc6\
+\xc8\x00\x00 \x00IDAT\x8e8U\xdc\x9f\x04\x80\
+\xe7\xca1\x93H\xa1'\xdc\x07\xf2;\x95\x18\xe3\x8b\x05\
+\xb2\xe9g\x08L+1\x88#\xc6\xf8L\xfb\x1b\xe4[\
+%\x15\x22,I8\xab\x95\x0a\xe2@+\x89V\xcdD\
+\xcc\xa8\xdc\xd7yO\xfb8\xfdr\xc8F\xfa)\xc0,\
+D\x08}!\x81\x07\xe9A\xff\xb1\x7f\xaeS\xcb\x82\xfd\
+\x0ai\xd1Z\xc1J_h\xcd1=)\xed\xba\xf9\xda\
+E\x1a\x98\xe3\x80\xcb/\xc9\xe7\xb8\xf8\xa5\x8f\x18\xc6E\
+\x1a\xbf\xa8\xd5@gd\xee\xe7\xb2\x17\xf9\x7f\xd3\x8f\x86\
+\x0c\x0e\xbf\xc0\x8f_vbK\xf4\xbb/\x89>\xf7%\
+\xe0\x13\xc8\xb2[\x02i\x89s\x09\x93|\xff\xe9\xfe!\
+C@\xd7\xa1\xca>\xdf\xfaj]pc\xf4\xbf\xdex\
+\xfa\xb1\xf7\x16\xf7s\xa8G\x9e=m\xe4xEN)\
+\xc1\xa95\xd4\xf9\xe6\x7f[/\x81\x18\xe4\x8a\x00\xcbz\
+\x1c\xa7\x15\xe0\x98\xa9\x02m\xea\x00\x7f\xb6\x02g\xef\xcf\
+\xbfV\x08\x11\xa85r\xbd\xfa\x7f\xbfw?\xf6/\xa4\
+\x8f\xe7\xc8\xbf\xed\xe3\xe9\xfa\x5c\xfb\x9e\x08\xf0\xb9}\xfc\
+\x9f\x84\xb5\xc0\xce\xbax_\x85\xd96\xd6\xaf\xec\x90\xe7\
+*\x81\xe4s\xfa~k$\x8d\x95X\x95\x00\x10\xf0\x8b\
+s\xd8{\x7f\xdf\xa7\x18\xf4\xca\xbf@\x1a\x09\xe4\x97C\
+\x86sc\xfd|/\xf1\xd3[\x00\xe8}\xe7\x89\xfe\xe0\
+\x7f\xb3\xb7\x10A\x10x\xfcg\xeb\xd4I ]\xbf/\
+\xfa\xd8\xdf\xf9\xea\x5c\x0f\xd6M\xdc\xe5\xbc\xf9\xb9s\xec\
+s$\x1a@\xfc{\x5c\xd69\x5cL\xc5\xca\xc4UM\
+\x8bs~\xc4\x03\xe9W\xd4\xf9\xb7\xcf:'C\xe3\xa0\
+(2iv?\x0b1\x90VG\x8c)\xc2\xc2\xbf\xb0\
++\xff\xccP\xb1I2?\xbd\xed\xd3\xdbB\xd2\x91\xfb\
+\x9e!\xb3\x10f\xe5:\x19\x90\xbc*/\xe0\xf4\x81\xc5\
+\xff\xa4\xa5{w\xab\xd8\x08\xa0<\xe0\xa8\x90^p8\
+H\xb1\xad\xdf?\x8c'\xf4\xf7\xe1~^9\x0d\xd4\xb7\
+\x0d\x8ea\x84\xcb\xdf584q=\xc6:\xa9\xa8|\
+r\x08\xa0\x8c\xb7\xca\xcaqe\xcc\xf5\x8cS 2\xdd\
+\xa6\x16\xdc23\xe7\x0c\xbf\x8a?('\xc4\x83D\x81\
+\x00T\xe0`#S\x04\x1cu\x8a\xdf\xfa\x08T(\x06\
+\xf7O1\xf4\xc0\xd2\x06\xf5\xe09\x86 ~z\xc0e\
+\x0c\x13B9\xfdl\xc8@Z\xc8a\x02Y\xa3\x10\x8c\
+\x11\xd3\xc2\x81\x8d]\xa0&\x03\x8b\xa4G\xe5\xe4{B\
+\x86\x04\x12\x08\xab\x8a\x9eu\xfe\xadd)\xfe\xd7Tp\
+\xa7\xae\x19\xfe\xc3\xd1\xb5\x17\x90\x033\xbd ds\x00\
+\xf6\xef\x09\x19\xd8I\xc3\x01\xfd\x8b4\xf4\xbf8pU\
+\xa8D\xc6j\x7f=\xaf\xff\xc5\xc3T\x87`h\xb8m\
+*\xb8O\x0d\x01d\xf4\x8c>:I\xccn\xbcA\x12\
++\xa1\x04\xb2\xf3\xb64\xd0WL\xa8&EF1\xa8\
+\x00J\x84\xe0\x960&\xacC\x9e\x182\xef\xc3\xe0$\
+\xa9\x9c^\xfe\x22\xe7\xd1#9\xad\x81\xcc\xf4\x07\xd3\xb3\
+\xa6g\x0d$tH7A\xd4OIvm,\xf7Y\
+\x19.\x07\xca9\x02M\xa2@\xfb\xb8\x11\x99L\x90I\
+\xeba\x7f\x1aG\xe2\x1c\xc8\x84\xe68G\x0e\x05\x92\xa9\
+c\xc8T\xce]\xbd\xefk\xe0\xf6\xf6$\x8d\xbbWB\
+u\x9d#\x89\x01\x95\xca$M\xe3\xe8\x15y\xdd;r\
+\xdd\xdf\x9b\x95\x8b\xe7\xe48&\xf7g\xdd)\xd6L\x80\
+\x16\xe48\x1d\xa3\xe9\xf1k\xe2s\xfa\xcct\xc6t\xc6\
+\x90`\x82X\xd0\xcb\x98\x09\x86\x9a\x12q4\x13c\x0c\
+\x80\xd6\x0c\x15g\x0a\xfc\xe4\xach?i\x9d3~\xc2\
+\x952@\xf6\x5c\x18\x12dd\x128\xb9\xbe\xf3\xdd/\
+\x8eE\xf5\xe6g\xe0\xb0\xbfh\xc8b\xb8\x16\x07d\xfa\
+p\x92\xdeqHT:8\x06\xd6U\xc0\xaab\xcf@\
+\xa9H\x22\x7f\xd5r\xa1\x12k:\x8aD\x90V\xb2\x84\
+\xb4\x17\xb2\x0a\xf2@%B\xa2A\x22.\x1da\xadX\
+E\xde\xb7|\x0d\xe4g\x90*\xf4/\xbd\xc8P'\x09\
+#r\xbb\xc3\x15B\x06\xe4K#\x93\xaa\x96\x1es\xc6\
+Me\xe1\x08\xab\x809\x07\xa0}\x9f\xccV0\xe7J\
+\xc0\xcd\x81\x82X\x80\xcc\x90\x90\xe4\x10\xe1\xa8q\xfep\
+QxN\x10I\x1c\x0b\x09W\xc8\xbc\x1c7)\x80\xab\
+\x96\x90\xeb\x86\x0ccQ\xd9%\x15\xbf\xe4\xc08\xe1w\
+\xf3\xd5\xf4\x0b\xef\x8fL\x97\xfe7vR\x0b\x9b\x8a\xb4\
+V\x08\xf3\xce%\xb4\x8d?S\xb1h\x81@9\xb6\x1c\
+3\xfe\x80\xc0 95 \xe4\xea\xb9'R\xaa \xe4\
+I\x16+\x917\xbd?d\xf8?\xeb\x97\x09_SP\
+\x0a\xe9\xf8\x93\x8blv\x00R\x22\xf7\xcft\xe7\x90\xe1\
+\x1c\x80\xf0\xe2\x1c\x02=g?s\x9d\xabE\x05\x19h\
+\x06\xd6\xfb\xdb\x86\x0c\xd0}\x10\xc8\xce\xfd\xa3\x22\x9d\x01\
+*\xbb\x8d\xdb\xa1\xc8\xa5\xe8-\xd0q$\xaa\x02\x0a\xe7\
+VE?\xa1\xa9\xe5H\x9b&\xd3\x10g\x15\xf8C\x1c\
+\xd8\xff\xa0\xfaz\xe4\x05l\xf4\x88}\xacP \x90I\
+\x92\xbeB\xb8\xf1w\xb2u\xc8\xf8\xbfBt<:d\
+\x18\x0b\x98H\x86\xc3mB\x06;\xcbObg\x04F\
+\x89\x94\xabV)z\xca\xbax\xee\xc6\xcf\xba\x1f\x81\x96\
+\xfb\x11\x00xP\xbd\xd5H\xe0(\x90r\xee;\x14\xda\
+\xfa\x0a\x14\xe9/\xfe\x91\xf5Hn\x97\x0a0\xd8\x09\xcf\
+\x8b\xdf\x09\xb9'\xc0i\x81~\xb5$d\x22\xbaZ\xcb\
+ \x17\x04\xc6\x12\x5c\x10\x84\x99\x80\xac\xf3\xd9Y\xc7\x05\
+v\x12{\xd6\xc1\xba\xf4V\x00\xeb\xe1\xb5\xcf\x97\xef\x1c\
+\x07Z,A\xed\xd9g\x019\xbf\x97^\xe1WB>\
+\xd0\xcf\x02n\xebg?6\xb2\xc0\xf2\x03<\xaf\xb1\xa5\
+x\xfc\xbb\xde2+\xd0u}\xae\xab\xb3\xf7\xdb\x8f\xae\
+\xcfs\xb2\x8e\xd6\x8b\xffn\xfa\x85\xcf\x95\xc8\x810\xf1\
+>\xfc3~\xa7\xf5\xb5\x9e\xdeW\x02@\xe0o_\xf3\
+\xdb\xe85\x7f\xdf\x13/\x90\x1c\xecUg\xf3\xb7\xfe=\
+\x01\xe0\xef\xfb\x18@\xd7\xc7\xdf\xed\x89\x08\xe7\xb9\xeb\xc3\
+>\x1e\xd0\x97\xf7\xed\xd3\x19<'\x09\x86\xce\x11\xe0\xfb\
+N\xaa\xe8\xfd\x5cW\xdb\xc7\x85\xbc\xca\xc2\xc7\xf4\xd7!\
+\x83\xdf+\x11\xe7|vrT\x88\x1d\x89\x00\x08a\xbf\
+\xef-\x17\xceEKt\xd4T\x0c\xadE\x10\xad\xd6\xdf\
+\xfeI\x7f\xe4\xc8\xb4\x0f\x19 ii`\x96\xdb\xb8\xcb\
+\xaaP\x17\xc7\x19\xfbv\x98\x85\xc7\x0c\xec\xe3\x02g\x10\
+\xe4\xc8\xe7\xdeg8\xf8}~\xa6D\x80\x80W\xc0\xe1\
+A\x9f\xb2\x84&\xab\x02\xfd\xd6ac\xdb\x189\xa7}\
+\xba\x5c\xc8\x00\x1d\xbe\xde2\x81}}\xdfK\x0c\xbd\x96\
+\xe6\x84F`\xf8\x9a\x81\xdc+\xc2\xe6\x7f\xd8 Q5\
+g8\x10\x0c\xaf\x1e\x0c\xd6\xf5rl\xe0U\x12\xda*\
+\x80\xc9\xcc\xf5\xf4\x84\x90\xc1\x11\xa7\x18\x05&\x12\x08}\
+<\x05\x05ic\xfbr\xe0\xfc\xdc\x86\xe9\xf3.m \
+\x95#\x0f\x18R\xc0\x01L\x07fzp\xc80fF\
+\xa5Ie\x0a\x19_\x92\xbbQ\xb4U\xa1F\x82\xa5\xb2\
+\xee@0\x8c*v\xbf\x182d\xac)\xa8D8\xd4\
+8\xc8{'\xc9\xa1\xca\x93\xca@&T\x0e\xf7\x5c\xb9\
+%T@w7\x0cYz\xb0WN\x85\x93B\x96\x0d\
+\xbe@1\x17\xe8\xd6?d\xa0q\xef\x0cx\x82\xd5\xfb\
+>!C\xcf\x1fh\xa6\x9e\xca\xf8\xe9+\x87\xff\x03\x95\
+\x0c*\xc0G\x0c\x0e\x05\x85*\xf1%\xf1\xa3\xc7Ye\
+\xb7\xf7*y\x9e\xd9RP\x10\x7fd\x86\xc6\xbbe\xef\
+bA\x0d%b8\xce\x0c\xb4\x00\xf0j\x894q>\
+\x8cG\x03\xedd\xe0\x93\x84l\xfa\xef\x90\x81u\xfa\xd6\
+\xf9\xbe\xa6\x05x\xff\xcej\xcaA\xa7h\xfc^\xe6\xf2\
+\xd1\x87G-d\x8a\x14\x1d\x12\xbf\xef\x0aY*q\xcb\
+\xf3*r#\xbdQX\xe1\xad\xdf\x06\x99_\x0dg\x1f\
+[y\x99L\x8c1\xf8\x0c7\xbd\xf1\xfe\x0c\xd8\xee\x95\
+\xec\xd1\xc6di]\x01\xadG\xf2\x98\x15v\xe3\x8a\x8a\
+\x1c\xea%\x19\xd8\x80\x90>\x22+\xc7\x902\xce\xe1\x0f\
+%\xe4\xd9\xfe\xf6\xbc\xdc\x87\xfd\xff\xa6\x9c\xd6\xd0\xa7j\
+009F\xaf\xc8\xf3\xb0\xc5\xaa \x99\xb6@_x\
+\xfe\x17\xca\xfb~^\x8e\xdd\x92\xe8H\xe8Y\x91\xb6\xbd\
+tu\xe4\x0e\xbf\x93\x15\xd3\x84~!\x85+\xf6k\xbd\
+\xae\xeeG \xce\xd0$\xa7\x03(|\xb1\xc9\x1b\x97\x97\
+c\xf9\xf4\xd2\xfa?\xdc\x12U\xd1\x86\x00\xd0\x13\xa7\x22\
+\x89\xc4\x93\x03\x92\x01]02,\x9c\x0cZer\xbf\
+\xef\x9f\x16\xb2\x05\x02\x87[\x86\xcc\x7f\xff\xca\x90-A\
+X\xe7\x1cd\xfe2+\x99\xa8\xc4A\x91\xb3f+\xc8\
+\xe1q!C\xc2@+\x88V\x08-F\xf4}\x9e\xbb\
+\xc3\xadC\x06$\x04\xae\x88\x5c\x9fc\xa0\xa0\x1c\x09c\
+i\x8dwTA\xf9\x83\x90\x0dAQ\xe4\xb3*'\xdd\
+QV\xb9\xcd\xf3Wc\x17\xb3\xc2m\x5c\x9a\xc4\xb5D\
+\xad\xf1pU!\xf8\xd9\x15Ir\xb8\xd3\xe1\x8e\x87x\
+NO\x0e\x19\x12#\xf63\xfd\xc5q\xa4\xff\x04\x86I\
+\xceh\x7f\xd7u\x0a\x94\xcd#\xe7\x98\xa9h\x98\xce\xe2\
+\xe7\xd6\xcbT\x0f\x89F\x8e\xbe\x0a\xaf\xe9\x04\xec\xa0\xf1\
+\x91*\xba\x02\x13\x09\x0ac\x03%2\xe8\x9b<\xe7\xc8\
+\x02\xeb\xbe\x93\xe5\xbe\x02P\x89\x07z\xdes\x11`\x1a\
+\x93\x99\xfe\x8d\x16\xac\x1a?(\xe1\x82<\xd7\xbe\xe2\xe7\
+d\xa5'\x98\x86\x82k\xa8\xae\xc7\xf8;\xc8 \x95\xf1\
+\x8b\x84\x0c\xcf\x81\xff#\xd1l\xdcjw\xfc\x1b\xc9\xf0\
+t\x83\x90aj\x00\x88:;F/\xf9\x9c>\x1d\xc9\
+y\xf2<]\x07\xbd\xc5\xef\x13P\x08\xb0\xe9M\xcf\x1d\
+\x82\x02\xa2R\x01$\xc9V\xab\xd7\x1b\xa4\x9f_\x93\xcf\
+\xa1\xec\xa9J\xe1\xb5C\x86\xe7\x9cd\xbe\x0a\x141\xf4\
+\xf60\x92\x07B\xea\xe9\xa5e'\xad\x1b\xfd\xc0\x9f\x03\
+\xc17\xcdI\x81\x88\xfe\xe9=\xc9\x9du\x1f\x82\x0c\xa2\
+\x05\xf7Q\x06\xecH\xb5\xab\x977[_k\xdc\x18\xbb\
+\xd1\xb94 \xf7@\xc4%\x12\xdc\x9f\xb1\xce\xb8U\x5c\
+\x8f\x00V`\x01\xa1\xc0\xbfU\x89l\x90\xe6\xaax\xda\
+g\xfc\xd7F\xce}\x8c\xfe\xc2=\x00Y\xc4\xcf\xe8\xf3\
+\xe6\xed;\xfb\xc7\xf5v\x8e0~\x91\xd6;\xebEO\
+\xf6\x04\x84\xff\xef\x10}\x81\xba\xeb\xe6'\xf9\x5c\x7f\xdf\
+\xd9\xed\xed\x7f\xc8\x88\x8f\x85\x0cz\xab\xb5\xf8\x95}\xe8\
+\xd7\xc3\xdf\xe1g;\x8f\x10\x0f}<\xa4\xc4\xb5\xcfs\
+\x1dg\xb5\x96\xc3\xe3!W \xb2/\x132\xb4\x8aH\
+\x9c\xd8\x17\x9e\x7f\xef\xe9\xef\xe3\xfcz\x02\xa0\x93\xfd\xf5\
+V\x01~\x12\xfb\xe8\xf9\xd3\xb3>\xcf\xdf\x89/{k\
+\x86\xfb\xf4y\x9dl\xda\xbe\xf5\xda\x11\x0a\xbdE\xa0C\
+\xeb;r\xc1uA\xec\x99\xeaa|2\xbb\x06\xa1\xe0\
+\xfa\xfbxD\x88E\xcf\xcf}\xdbg\x1d\x81\xd1[\x04\
+\xfc\x1e\xf9\xf4#B\x86\xfd$.\xcc\xfdp\xa4.\x94\
+A\xa7\xe0\xe7\xed0\x9d?\x83\x80o\x1b\xc8\xf9:y\
+\x85J5\x07\xcd\x81\x0f\xf7\xf4\xc2\x83B\x84\x04\xe8\x86\
+\x87A\xd0\x8b\xe6\xfbP\xb7\xdf1\x90\x89\xb9p7H\
+\xc1q\xbc#\x0c\x1e\xe7\xc3\xc72\x7f0\x15\xfe\xb93\
+\xa3{\x83\xacX\xdf;\xe7!\xdfg3`\x15\x00 \
+\xff\xdaz=V\xe8\xe3\x0733s\xdb\xac\x80Qp\
+*~6\x90\xfb\xb0\x0e\x9d\xad\xbf\x8f\xe9\xb3\x11\x1c\xc8\
+\x9e\x08\xe8\x19\xc6\x9e0\x10\x00I\xb8\xb8\x7f\x19l\x0e\
+5\x87\x9eCr\xe5\x90\xc1\xf1\xcd\xde\xa7\xc3\xa5B\x86\
+\xb1sXx\x91\xda|%{w.\xbb\xee\x93\xe9\xa9\
+!\x0b\x19\xcfj`^\x9b\xd0\xfeO\x85\x0c\xa4`2\
+e\xe6y?7I\xab$\x96(n\x90\xc7d\xbb\xaf\
+L:h\xe4w\xed\xbfs\xff\x9d\x83Cc\xbd\xc3\x1c\
+\xfcg:\xce\xcf\xccJ\xd8\x1d\x86\xca\xa4@Z\x05\xde\
+\x97\x96\x06S\x02\xa2\xe5\xe0\xd7\x07\xb2!\x81TB\x9a\
+j\x8e\xba\xc4\x93J\xa0\xde1\xcf\x07\x92C\xa2Ee\
+\x10\x9b\xaf\xdeO\x867\xc7\x1cN/\x0c\xd9*\x00\x05\
+u\xbe\xf3\x22'L\x0f\x0dYXEW\xd2\xb6\xac \
+\xd44\x0f=\xcf\xe6\x8c\xda\x97\xa0\xbc\x90\x02\x9e?\x04\
+\x87\xe7\x9b\x8eyq\x0b\xd8\xbfm\x5cN\x84\xfd\x11\xf8\
+\x1f\xbe~8z8:\x8cO\x93\x80\xd2\x0bE\xbf<\
+=9\x0b\xb0\x93f\xc5\xa9\xa0\xe2*{\x90'\xbb<\
+_\xce\x19G\xf2C\xe9\xb8p\xfc\xb0\xbe\xab,\x1f]\
+\xaf\xa7\x1c=\x01\x8fDW&N\x0e?\x122\xf4\x9a\
+>|\x0d\xa0O85+\xbc/\xcf\xe9\x0d\xe6\x5c\x0b\
+\xb0\xaf\x97,\xea\xc6\x1b\xeaE\xbb@\xc8\x00e\xd7\x13\
+n|\x1b}\xa2%@\x05\xfe\x07\xf2\xf9\x0a\x8c8\x9c\
+z\x8d\xb5D4CW\x99^\xac\xf2\xdf\x192\x18p\
+\xdc&9\xeem\xff\x9b!\xcb~Z\x12b\xd3\xbb\xd6\
+\xf1\xab\x0b.\xea\x93\x83\x03o\xdf6\xa4QA\xda\x9d\
+\xe3'\x85\x0c\xad\x12\x1cO\xfa\x13I\x97\xa92Z\x03\
+\x12ivxh\xc8\x90\xc0\xe4\x10I\xd8$kz9\
+\xb0\xdf\x14\x92\xdc\x1fs\x80\xb6\xff\xd7\x90A_\x09\xec\
+\x04bz\xd2q\xb8\x18\xbb\xa5\xd7\xf7.!\xdb86\
+\x15\xe1B\x86\x81\xbc\x9b\x12@O=|\x91-\xe0\xf4\
+\x9c\xb3B<\xfdI\xc8V\x11\x9f\xee\x182\xe8q\x86\
+\xde:KP\xff^\x22=\xd89\x10f\xfb\x1b\xe9*\
+\x88\xad\xc0\x88\xa3\x92\x81\xf7\xf4\xd2\x90\x81\xcc3\x03\xc8\
+\x22/\x14@y>z\xb5A~\x05^y}\x87[\
+\x85l\x8e\xe5\xfec!\x83\xdd\xa7?\x91\xf3\xe1@\xc8\
+\x8an\x05\xbc\xdd\xc1\x95P\xe3G8\xe7\xbe\x97`\x94\
+\xb0\x95p\xf1\xbe\xa0\xce\x12\x0cX\xd5\xf3>\x8b\xcc1\
+{\xc5\xcb\x8e\xd1w\xecf\xae#\x16\xfb\xe9\x1bB6\
+H}Ma\xc8\xf3Pc\x82;9\x16n\x03\xd7\x05\
+)\xa7\xf79\xcfK%\x14\xf8Q\xe9\xbfT\xa2]\xc0\
+\xaa\xb2\xce\xbf0\xa5%[\xc1*a\x93\xf7+\x81\x86\
+\xe5\xb9\x90]\x10b\xbd\xf7\x99>\xf1\xfeZ\x13\xcc\xa7\
+\xcf\xc2\xc6B\xa2\xfb\xaa\xe1\xf9I\xa48\x97\x17\x0a\x19\
+\xa0\xfc>\xa7\xebm\xfb\x9d_\xc4\xf1e?qR\xa4\
+\xfe.\x081\x8e\x96|^\x85\xc4\xe2\x17\xf2\x17\xd9)\
+\xf6:[\xe8\xa6_\x0a\xd9*\xda\x87\xff\x152\xb4&\
+\x05\xa7\xd0g7\xa4\x5c\x05\xc4\x9e\x87@\x93\xa3\xcdo\
+u\x9f\x8dl\xaf\xceg&,*Qc\xbf\x09\x18\xda\
+|\xf1\x22k\xd5j\x02\xd2\x9d\x9f\x87\xb3\xaa\xd6U\x22\
+.\x03\x84\xc3_\x87\xfc\xffTDM\x19b_%4\
+\xfc\xbd}) \xe3\x8f\x0aX \x14\xec{\x01\xa9u\
+\xb1\xee\xf6\x8b\x80\xc4z\xb1\x0f\xde\xf7x\xe3\xe2\xfa8\
+\xc5\x1eh\x09\xc8z\x0bAO\x5c\x08\x84\xe9o\x15}\
+\xd7\xeb\x1c\xf8\xff>\xef\x1eb\x00\xe2@\xe2\xa0\x93/\
+\xd2\xbf\xde\x8f\xdd\x00\xd9v=\xf4z\xe72\x10\xc8K\
+\xbcK<\xd0\x7f\xec\xbc\xcf\xf7>\xec\x9c\xbf\xd32\xda\
+\xa74\xf0\xdb|\x89\x9bz\xbc!n\xc0\xe9a|\xbb\
+}\xe4\xf3\x5c_\xaf\xd8{\x9e\xfc\xcd\xff\x89\x0b\xc0\xf3\
+\xee\x7f\xe7\xf3:B\xc0\x17\xbd\xd1\xa7\x9e\xf8?\xf7\xd7\
+\xed\x89\xeb\xf6\x9cz\x22\xa2%(j|\xa6\x04\x1bh\
+~\x9f2\x873\xc4z\xb4\x02F\xc5/\x125\xc7#\
+\xb9\xa5G\xfa\xf5\xbb\xdf\xce5\xe0<B\x04Bd4\
+$Lq\x0c\xf1S\x12\xe1\xc9\xbe\x1c\x99>6\xcb\xe9\
+\xc7V\xaaK\xa1 \x0dqp.\xb3\xd4\xe2\xd6\x00\xe1\
+Z[E\x93\xe3\xb3\x98\xa3\x07\x0c\x0fd\xcc,]h\
+\xf8~\x1cO\xb7\xdf\xc8\x00\xb5\x02,\x0a\xf8\xaaC\x0f\
+\xa3\x0c\xa4JN\x18\xc0\x7fL\xa8\xf7\xa3\x06C\x10\xcb\
+\xf1\x91|\xb0g\x0d\x81\xf0_-\x93\xd3\xd7J\xdb\x13\
+\xb6L~\xcd\xafe\xa8\x92$\xa8\xd8s\x050 \x98\
+*\x8f\x16\xda\x06\xa4\xe8d\xae:T\xa5\x7f\x1do\x1c\
+\x9f\x9f\xf7\x8a\x7f\x7f\xedl\x986\x8euw\xa0!3\
+\x5c\x0f\xc3\xcd\xc1P\x01Ir\x9d\xca\x5c\xeb%\xfc\xa9\
+dIW)\x02\xad\xd4K\xf7\xfc\xac$q\xb0\xb3\x02\
+[d4\xdf\x95\xa4ww\x08\xd9\x02\x93\x0a\xf8r,\
+N\x8d\xc32.\xefWB\x16\xc3\xb7\xf6h\xdfg\x0d\
+\x94d&\xf7\xf7]\xc7\xde\xed\xaf\x182$\xb0\xb4b\
+\xbc{\xa1\xa7\xdb <'/\xa0\xea5\x11rRN\
+\x19\xf8\xb5\xdc7\x01uz\xf4\x22\x1b\xe7Dg\x01E\
+b\xc9`\xc6\xa7\x0cdj \xa6\x8b\x03\xf0\xfa\x9c\x0f\
+\x1f\x8e\xccMB\x06\x07\x9b\xa1\x02\xbd\x05\xb1{]\xc8\
+@.\xf5mIZ\xf9\xe5\x95\x9cO\xd2\xa8\x02\xff\x5c\
+\xbfB\x5c +Lva\xc8\x87j\x91\x91\x89\xe4\xb8\
+\xeb%\xc7B\xaf\xf7M \xaa\x22e_\xe7T\x86\xaa\
+\xc0\x81B\xabdd\xa6\xbdH2\x7f7+\xca\xa6C\
+\xe8eTYR)\xe2\xc8\xf4^\xdfoL\x87\xe1\xbf\
+\xd2\x80\xc9|3P\xd6=\xa7p\x147\x81\xfd.`\
+\xc3\xe9`\x9c\x99\xfd\xcd0v(\xde\x97\xd2\x80\xe7\xb8\
+\xb3j\xb9\x00u\xceqN\xd3\xe9!\xc7B\xb7\xca1\
+\xf8\xd7t\x9c\xb4\x14\xf9\xbc\xb7e\x80\xa5E\xe0\x0f\xd7\
+\xf5\xe4\xa8\x96\x83,\xf3\x0e\x8a\xc9\x00\x08\x18s\xaez\
+\xe9\xd3l\xd5\xaa\xfbMGz\xff\xa8\x90- \xa9\xc4\
+\xcee\xf3\xf9\xbf(\x11./K=\xef\x8b~N\xee\
+\x81\xc3i!\x1bD\xb6 \xe4\x02F\x0e\x005\xa6G\
+;\xd7C\xc2\xa9\x12\x02*\xdb\x1cd\xad#\x0cf\x06\
+\xaaH\xc1\xf4\xb4W\x05\xdf\x98P\xbd\xd4ZsRm\
+\xee\xee\x1b\xb2%f\x04L\xf4\xcb\xe1\xe2!\xc3\x18\xb6\
+DlTbB\xa0\x9e-b\x95`\xca\xcao9x\
+\x1c8\xe3\x85\xb2RR\xe3\xca\xf4(7r\xd4\x22E\
+\xc5\xc5a>0\x08yB\x93+A\x91\x5c\x09\x15\xd8\
+I4q,\xe89\x10\xf5\xf7\x84\x0c\xa4\xad \xceX\
+\x88\x9dc\xad+ \xd7\xe6\x92Kd<2\x11>\x02\
+\xa4s\x87\x0cco3 \x86\xa0;\x5c8d@t\
+\xa4\xdd,27z\x86#\xd6z\x98K\xbf\xaa\x94\xd9\
+\xd78\x04\x9c\x87$\xa1-\xa8;\xce\x03\xbd\xe0ml\
+\x13\xb2\xc4Jd\xd1\xbf\x02dzN\xc2\x0b\xa2%!\
+\xbb\x02\xbb\xfd\xdbB6\xa4\xdct\x9e\x90\x01\xaa\x0eY\
+\xc0\x1f\x11(e\x02W\x80S\xd3\x84\x8c\xbf\xbdk\xc8\
+\x10\x90C\xc6i\xd1\xbcW\xc8\x80\x0c\x91\xc0\x81\xac\xd1\
+z\x83$\xcfT\x0b\x08\x82\xbf_[\xa7\xcaqT\x88\
+\x01\xad?\xff\xb4\x16|\xf2y\x144\x9f>J\xfdQ\
+\xc8\x06\xef#\xd0\x93\x08\xb2\x8e\xde?\x03\xdf*\x04)\
+D\xf8;~\xa5\xc4<\xbf\x8a=\x87\xa4\xe2'\xb1\xcb\
+*\xeb-\xa1P\xc8\x0c\xfb'\x13\xebUx\x90(t\
+\x9e\xd9\x0d\xfeQrET\xeb\x11\xae$\x81W\x0fd\
+G\x92\xdfq\xba\x8f\x9e\xfc\x9c\xfeT\xfb\x9b\xfdG\xfa\
+\xeb\xbc\xdb\xdfZ(\x15\x0a\xb4\x92H \xd0K\x02K\
+\xeb\xe9\x5c\xf5\x16\x00\x81\x89\xca\xbc\x96Q\x09\x19\x01\xab\
+qq\x9dm\xde\xf5\xaaD\xf7^t\x09nv\xd4X\
+\xeb\xde\x22\xe0<\x08\x90\x5c\x9f\xe7\xda\x03;\xaf=\x10\
+\xecd\x81\xf4^\x1bOWP{z\xaf\x93\xf0\xf5\xc0\
+\xdfzj\x81\xb0\x1e\x12#\xa0\xe4\xf6U#\xf135\
+\xa5\xec\xbc\xcfm\xef{L\xe2\xa1\xbfo\xe3\x88\xaa\xc0\
+_\x02\xc3\xfa\xf7\x04\x07=\xe6s\xed\x07\xcf\xdfz\xdb\
+/\xbd\xa2\xcep\xda\xbf\xfc\x18\xfb\xdduz\xedd\xad\
+\x9d\x85\xbfW\xf8\x8fW1\xef\x09\x00\xfe\x8c\xbf\xeb\x08\
+\xf2\xbe?|\xf58\xc8\xf9\xa4_\xda\xf4\x85\xe3\xb60\
+X/\xf7)1\x9a\x7f_\x08?\x10\xfb\x13C\x86\xa9\
+\x1a\x09\xb9W\x00-D\x1cD5\x92d\xfa\xd1u\xfa\
+\x9e\xfe\xb7\xbe\xae_bJ\xa2\xc8s\x96\x10p\x1f\xf4\
+\x90D\xf7\x83\x169\xe1\xe8_\x86l\x88Wv\xe3\xc8\
+\xfe\xed\xb3\xfc}:\x12\x1f\x1e\xd8\x95C\x0d>;Y\
+Z\x1f\xb7\x8d\xaf\x8b\x8e\xd7\xe93Ya\xc1\x06;\x90\
+\x18M\xaf\x9a\xe5\xd5[\x05k!\xd9\xf8\x8f$;\xba\
+A\x1b\xb7\xf7\xc9a\xe3\xc5v\xf8\xea\x10\x80\xb9!\x8e\
+\x12\x08{\x00\x98\xfezP\xdc8\x08\x90\x15\x06g\xf4\
+wl=\x94\xd5\x03\x1b\x7f\xff\x0fC \xe1@R \
+\xe6(\xca\x80\xffV\xc8\xd0C\xf7sk\xaf\xfc\xe1\xf4\
+\x15\x9a1\xbdxz\xc9\xf4\x92s \xfd\xa0\x80{\xc5\
+^\xe0\xde\xd9\x8d\xbd\xf6\xc0\xbf\x8f\xe9\xf3Z\x1en\xfb\
+\xb9\x8d\xe4\xf3\xfc\xbcCM\x1cP\xd7\x9b\x1b\xac\xd67\
+Y\xea\x8d\xdb;\x5cvu\xb89\x5c\xd3\x9dB\x06r\
+#smA\xf4\x12A\xb2\x7fS\xc8\xc6\xfa\xbf\xfbP\
+\xc8\xe2\x18/\x19\xee\xe9E!C\xef_\xf6zW\xa0\
+\x80D\x0e\x09Q\x06\x0e\xd3\xe7B\xe6\xf7;\x1a\xb2A\
+\xf6\xf6\x8f\x0f\xd9H{\x0e\xa7\xce\xf2#C\xa5\x8c#\
+!!\x14-#\xd7\x19*T*\xba\x1c\xf5\xa0\x88\xba\
+\xe3Py1'9\xcc\xc1\x07\x93<\xec\xe4a\xffG\
+\xddr \xcd,27\x95\xa0\xdeS\xef\xfb\xf8\xeb7\
+\x0e\x07]\xaf\xb51J\xd9C\x5c\x95V\x10\xc7_\x0b\
+\xd9\xc8'k\xba\x82\xa9\x0b\xee\x97\x83\x7f\xad\xac\xfcg\
+\xcb\xc4\xbc\x06k\xa569\x17\xe6\xbf]{\x11\x9d\x07\
+\xe7T&<\xc7\xe5i\xbdP\xf1\xda=o\xf7\xdc\xdd\
+s7\xa8v]'E&\x13\xaa\x07\xda\xf3p\xff\xdf\
+\x90\x0e\x94\xf3H\xf1\x9a\x03\xf2\xbe\xac,\xa8\xac=4\
+{M%\x02\x9b\xe3\xbf\xffR\xc8|]\xdf\x142\x04\
+\xa6\xc6\xa4\xe1$\xf0ss\x9fA@9F\xe7I\xc3\
+\x93\x81j9P\xf4\xe3\x1fe\xa2\x89\x81d\xd0\xe9\x03\
+\x81:\x92\xbb\xf7\xad\x0e\xe4\x1c.-\x89\xad9\x08[\
+\xa7|p\x84[\xe5\xa2\x0c\x12\x07\x0c\x94W/\xe0\xaf\
+%\xc9\xd9?e\xc6\x1f\x14\xfa\xde\xeb\xf8\xac\xc3y\xd7\
+\xe7$a\xb7{l\xc8p\x9d\xcfM\x07\xf4\xd7r\xcc\
+$\xc7\xaag\xf6o\x9b\x09\xbc\x87gbG\xa2\xd8\xfb\
+pD\x8c9\xcd\xc4`\x194\x09\x12\xad\x01\xd9\xe2\x22\
+!X=\xd7\xf6\x03\xc8iV\xe8\xcb\xb1\xe1\x98%\x02\
+\xa0\xc8l2\xc0\xae@\xe7\xd3!C\xc0\xaf\x92(@\
+`\xf8%4\x91\xfdeB\xaa\xb8\x0a\x04\xf4\xc6\x01Z\
+\xff\xec5\xaeV\xa6L\x90\x97#\x00z\xa7'>\x1d\
+.\xf7[\x81\x12\x16t\x81\x96\xc4\xf1\xef.\xb2\x05\x1c\
+\x02\x1d\x09\x8a\xdb\x85\x0czJB\x0fi\xdb\xe7C\x86\
+^\xe2\xadgq\xed\xa15\x1f<\x03k\x9c\x00\xc7\xb0\
+|\xab\xb0\x1e\x8a-|\xd1g\xb5~\xf6)\xf2\xca\xeb\
+\x84\x0cS\x1b\x92\x83\xc1\xf4\x8dJ@\xe2\xaa\xe0\x00\x0a\
+\x0c$\xee\x9c?\x0e\x1b\xd2?\x81\xbf\x845D\x04\xf2\
+G\x89\xdf\xb4\x07\x90\x0d\xd5\x1b\x9e\xa4\x7f\x87\x9b\x85\x0c\
+=\xef\x12\x99\x02\x17\x0e\xb2\x16/\xdf\x83\x12\xe7\xd8\xb9\
+\xb2\xafI*\x5cc\xeb\xb4@i\x0d\xdcZqV\xc4\
+\x9a\xe7\x0b1)\x90\xc6\xb1\x83kH\x05:{\xd8K\
+\xffArq\xd4q\x1fh\x11\x90p\xfb\xc1\x90!a\
+\xa0r/\xb0s>\xb1\xcb\xb3\xb7\x100\xa6\xd9\xd0c\
+9N\xb2\x10$\x1d\x02\xcfq\xef=\xc5\x99\xd0\xab\x16\
+\xbf\xee\x87\xf0\xbb\x129r\xb8R\xc8\xd6\xeaP\x89\x8b\
+\x0c\x9c*\xa1\xdd\xc7f\x09\xc4\x05\x12\xec\x03\x8e\x03\x5c\
+\x0e\xf41\xc8=d\x8cD\xa6u\xed\xad\x19\x1c\xeb>\
+6-\xcf\x97q\xba\xf5\xff\xce\x1f\xbb\x0e\xa9\xe8\x1cK\
+\x90v\xe4\x12}\x09\x09\x06\xb1g\xdc\xb4\x02N:\xf2\
+\xa5_\xf4\x0c;?\xf6\xad\x1er\xdc.\xf9\xdc\xaa5\
+\x92\x9d\xa6O\xd8\x81\xce\xf5\xa3\xd2\xa82,a\xae\xb0\
+\xc1~\x99\xf2b\xbf\xe6\xff\xd5\x18\xcd~}\xddO\xed\
+_\xf6\x89\xeb\xa27Tjq[\xf5\x9ew\x01p\x1f\
+\xbf'\x80\xee$y\x90m\x12\x07\xfe\xdf}\x8a\x1b$\
+\xda\x9c\x8b\xb47\xc7$bA\xb4\xad\x8b\x9fw2@\
+Sf\xb4D\x09\xf0\x04\xfc>_\xc0\xc7\xdev.\x06\
+\xd7\xe7\xfe\xdcw'\xb9\x13\x1ft$\xb1/~\x87@\
+\xda\xfe\x10h\xba\xfeN\xda\xd7\x9fW\x1f\x07\xd8[\x00\
+\xfc\xbe\x93\x16\xf7)\x04\xe2\x9d\xe3%\x00:G\x96\x84\
+\x81\xf3\xe9s\xb5bd\x01\xa0\xd6\xa9\xb7\x98\xb8\x1e\xf1\
+\x94\xd6KH\xaeD\x86I\xfcV\x9c\x069\xaf\xa5R\
+\x5cJ/\xba\xbe\xeeg\xf1\xff\x5c\xa7\xfdk\xbd\xfb\xfe\
+u\xbe >\xe8S\xd7a\xbd\xec\xe7\xf4\x17\xe6(g\
+\xf1\xdf\xf77\x0aY\xfc\xa6\xa5\xf5\xe9\xc8\xd1\xcf\x87\x0c\
+\x99\xab\xd8\xc6\x1fI\xc3\x13\x8e\xdf\xedC\xe6\xd7\x8f\x87\
+\x0c\xe4\x13nL\x86\x92a\xb0qA;\xc7\x00\xf9\xdf\
+\x87\x83\xfe\xb9\xc5%Y/\xf43\xc3\x83\x88\xdb\x18\xc6\
+q\x14\x841\x80\xeb\xdf\x92\x95\x88\x08 \x9f9\xcb\x1f\
+\x0c\x9c\x04\xa1&\xaf\xb5\x8d\xfdY\x96a\x97=\x9c\xbf\
+\xb7\x90v\xcd\xb2A\xfd\x96\x8c\xcc|0w?<\xcb\
+\xa9[F\xbd8\x0d2#kL\xda\x02\x10\xbf\xfb@\
+V\xf5\xeb\xc9nl=\xf4&\xe9\xc1t\xc0<\x10\x0f\
+\xdc\xcf{+@\x0f\xecm\xc0\xff\xe9\xb5\xff}\x8ec\
+\xdc 3\xeb\xdc\xe7c\x0e\x0a\x83\x06\xb2\xad\x87\x1b\xb7\
+\xc3=\xd61I\xc5\xe2l\x03\xaa\xe82 YI<\
+\xfcv:z\xafHG\xeaR\x99\x89\xcd\xb9\xcc\xfb\x9f\
+\xde?d\xff\x90\x05Q\xb1\x90\x03\xee\xce\x15\x12\x95\xb4\
+\xec\x15v\xe0\xb1[\xbbNS\x1b\x1c\xec4\xf8\xbb?\
+\xde\xbdl\xf7\xb2\x0da \x90<|[HB\xa0^\
+\xb7%\x9a\xca\xb1\xe0\x80\x09,2\xa0_:\x02_\x90\
+\x0a\xf8\x03\xdbX\xa3e\xff\xdd$+*\x11\xc0=j\
+\x96G\x0e\xf3\xb5\xcf\x1b\xa1\xd6\x10pD\xe2\xe1\xd4\xa1\
+\x97P@/0\x87\xb4\x90\xd1\x8f]\xf1_\x03t\xcb\
+u\x81\x1eAL\xa4\xe3\xa0\x97\xb4\xa0\x91\x12o\xd9\xe3\
+;}4d\xa8\x5ckU\xf8\x96\xe4\xda\xd8\xe5>\xf9\
+h:p\x0d2Y\x08\x17\x0e\x09\xb2(\x81Z*\xa0\
+\xe9\x1d!K\xe0\xbf@\xffk\xbc \xa8n\x06.e\
+\xf8%XN\xce)#\x9e/}\xf3\x9a\x15\x9aX\x8e\
+\x11\xbdb\xdf\xbe6\xdfW@\xdc\xa0\xc2eh3\xe3\
+)\xb0\x9b\xfe=dpX\xdd\x17\xf2\xb9\x1c#\xa3\x22\
+W\x10f\x81\xd5\xfd\xd6@}\xd6\x1eK\x8bPq,\
+\xdc,\xcf\xcb[\xd3q\xbcx&\xfe@\xaf\x1e\x9d\x0e\
+9hlB\xc7O\xb8O\x06\x16\xa0\xf2\x0c\x0c\x03\xe4\
+\xfa\x1a\x99\x8f1\xa5\xa5g^4\xef\xd6\x17.\xfar\
+%\xd7\xd4c,Qs$d\x0b|*Q\xc7\xf1U\
+)5\x95\xc1\xe73P\x0c(C\xf2'9\xb6/\x12\
+\xbc\xaf\x1a\x02j\x15oP\xdbl\x95\xa8V\x1e\xad(\
+*H\xc6\xed9'*\xd9\x1c&\x5c!\x02s\x0e\x17\
+\x07\x14\xe4X\xaf,\x83i<!\xb2*\x81\xaa\xfd\x91\
+\x95\xa7\xc3\xf9C\xb6\xc4\x9f\xb9\xe6\xf6cU8\x05\xb8\
+\xa9\xcfkN:\xb2>\xfb\x03Y\x9aJ\x0d.\x05\xa4\
+\x81\x12L\xe9\x10\x17\x19\x9b\xeb\xa2\x07\xe8\x7f\x0e\xfb\x8f\
+\x87l\xeb\xb0{X\xc8\x90\xd9\x970\x11\xf0e\xe5\xa1\
+Z\x91\x12iS\xf3\xdb?>\x9d\xbe\xd8\xefO\xccn\
+\xd0'6\xf2\xc1Jp \xc3=#I-\xd9\x15\x15\
+;\xe4yz\x0a\xd9\x0b\xd0b\xd3\x07\x8c\x094\x1eV\
+O=\x04\x80u\xe5\xb8hI\x13\xd8!3\xc3\x85\xd0\
+\x13\xfd*\xba\x02j$\x8b\x19\xc0W\xe0\x94\x88\xa5Z\
+Oc\xfc \xae\x92\xc3\xa2Z\x08;I\x14N\x95\x8b\
+\x87\x0c\xd7\xaf\xa2s\xc3\x90A\xaf$\xd2gzZ\xc8\
+\x90\xa8\x90\xc8QI\xd4\x0b\xaaeO\x22\x1d4;+\
+\xdf\xeeo\xfa\x81\x90!`\x92H\xa5\x1f \xa8\x04\xc4\
+\x90Z\xf7\x09\x19\xb8V$t\xac\xbb\xc0\x19R*\xfd\
+\x01S\x1cT\xec\x0b\xe2*\x91\xad\xd0BO\xd1\xc3\x02\
+\x06v\x9c^\xd3\x9b\xcf~\x0b p:d\x02\xac\xec\
+6\xbdd\xbdZ\x00VSO\xe8\x97+\x84\x0c\x81J\
+\xaf<\xea\xa9\x15(\xf2S\xad\x13\x92\xcf\x0c\x04\xabe\
+\xc7\xba\x0a\xbc\x9c\x83\x1e\xa0 \xf3\xc4\x1d4\x92U_\
+e }\xcc}\x87\xa4\xb2\x12\xe3\xc8\x9a{\x85\x9b\xdd\
+\x13 J\x80\x09\x14$tr_T\xa2B\xc2P\x22\
+B\x80\x8b\x84L\xe5>\xa7Dh1*$\x96\xe7\xc6\
+_\x95x\x05\x89v~\xe9s\xfb\xdbs\xf5{\xdfK\
+\x9cI\xd4I4H\xa4\xd03\xbd`\xc6\x9fm\xbd\xd1\
+\xc7\xb4Ry>\x02\xa5>U\xc0\xf7\x12m\xce\x0d{\
+\x02\xc1 \xfe\xf1{\xc8.\x95ySt\x8c\x13\x95\xc8\
+\x948\xf2\xdcz\xcb\xc8\xf1\xc6\xffYW\x81\xbfu\x94\
+H\xb0\xff\xbd\x0aX\xfb\xcf\xd9\x11\xff\xc7\x0f\xea\x1c\x07\
+\xd6\x8f\x9d\xe9P\xf3NJ'a\xe1\x1c\xf1\xbbz\xab\
+\x85\xdf{.\xc7k\xed\x90\xb8\xfaR\xc89\x04\xc2\xad\
+\xa5y:o\xc8`\x97\xf7I\x06\xees\xdcOo\xb1\
+F6\x9e\xd3\xae\x22\xfaY\xe2\x1f\xf7C_[\x97>\
+m\xc2\xfb\xd0\x8f\xe2\x5c\x896\xd3\x82 \xac\xedC\xfa\
+YB\x11\xa2I\x5ck\xbfw.\xb8\xceA`\x9fZ\
+\xe7\xc6\x11Q\xf6\x10y\xa8s\x9e\xfa\x1d\x92\x8b\x7fS\
+cV\x13\xd1\x7f\xf8@\xb6Z%\xb2\xec\xc8\xd1\xaf\xce\
+\xf2\xb5\x0c\x80\x9e7\x04\xbc9\xa6\xaf \xc6\xffg\x91\
+m\xecS:2\xbb{\xcd\xf2}Ce\xc8\x86\xbc\xf7\
+B\xf3\xb6e4\x83\x84\xe3\x03[\xc6\xa3\xe62c\x9b\
+\x0c\xf7\xf3\x8b\x0d\xd2qd\xabD/\x01\xd4\xed\x07C\
+\x87\xfd6\xae\xe3&\x83\xa3\xcb\x10\xe7\x98\xa9\xc5M\xb9\
+\xc9F\x1eX\x8a;\x80\xaf\x7f\xb4\x05\x84\xd3/\x84\x0c\
+\x01\xa7\x00\xd9\x81\x95\xb9\xbcp.x\x92\xa9`9.\
+\xb6e\x0a\x18\xe4\xcfF\xe5 \x22=\xb4a\xfa\xb8\xa3\
+\xe3U\xf6{\xc0\xdf\x11\x04-S6\xe9%<\xabq\
+\x0d\xf8\x7f\x1b\x8ea\xe3\xb0\xea)L\x16\xf1\xaaL \
+g\xc4\xce\xfd\xba\xb5\x129==d#\x9b\xab\x00\xf2\
+\x0d\x99\x196\x8e)+\xcc\x87\xbf_{\xdd\xccC\x9e\
+\xb7\xeb:\xfe\xe8\x01\xd9ja\xdc\xa0\x03\xd9\xc7vl\
+\xac\xcb\x8bB\x9d\x9f\xda\x12\xf8\xecn\x152\xbf\xefc\
+B\x06C\xaf5!\x1c\xb8\xa7\xa6\xe2\xfa\xd4\xd6\x12\xb2\
+\xb8a\xc8x>\x9d\xfb\xed\xef\x86\x9e\xce\x08\xeccN\
+\xe7sfy\xf6\xf0\xbe\xc9)P\x09\xa5\x18Cx\xad\
+\xa1\x87\xcd\xfa\x824sl\xbf\xb2L\x80?{O\xda\
+\xe7\x06\x12\xc3o\x9f\xe5;\x86\xc01\x1d\xb4j\x0d\xc8\
+\x8a\x15\x87y\xfa`\xc8@*\xc5!\x069Ta\x03\
+a\x97\xe1\xb6\x1f(\x1a\xe4@\x1c\x9ft0*\x10\x83\
+\x00I\xe8{)\xc2LhL?\x1c\xb2\x18\xca\xf5\xbe\
+84*\xee\xae'*\x8a\x87\x01Y\xf0\xfa\xb5e\xa2\
+8\x0c^\x9c\x8e\xf3\x88\xd4\xb8\xde`\x909\x16}\x1e\
+\xaa\x8a\x8bq`9\xdf\xbb\x12\x13\x1c\xd1\x96\xa1\x9e\xce\
+\x1d\xb2)\xe2\xfd\xa3C6\x87\x12\xe7B9\x06\xce\xeb\
+\xb3\xd6\xf5\xa8\x9eO\x0e\xbd\x9e\xfcthK_\x22A\
+\x94\x90\xd9\xe6#\xaf\x95Yc\x95.\x96\xefs\xd2\xd9\
++8\xe5 \xa4\xe3\xb5\x04\x881\xdd\xe1y9~T\
+E\x22\xe7\xb3c\xb7\xdf=%d\x18\xd7\x95P\xf9\xc3\
+\xe33 \xe2\xd0v\xc7Y\x0f\xab\x84\xc7\xe5R\xff\xbd\
+?\x1d\x22\xe3.9|\x09\x09\xaf\xe7\x82\x1cO\x05\xd2\
+\xe7\xd0\x7f\xce\xb1/\x95@=\xa4\xaeW\xc6\x1b\xc4\x92\
+\xe3\xa1b\x9f\x01\x8esxL\x8fnKh\x80\xdc\x16\
+T\xfd\xbe!\x83#I\xef;\xaf\x89X\x90@\x04\xb9\
+,\x87YeO\xcb\x82\xe9*\x02/\x01\x16}\x0c\xb1\
+\x92\x09\xa0J(k\xe1I\x03_\x154\x10\xd3\xab\x85\
+\x0c\x89D\xe7CK\x8c\xc4K\x9e\xab\xfd7\x84\xcc\xcf\
+\xffz!C\xe0\xf6\x84\x85\xe7\xff\x84\xc3\xcf\x86\x0cs\
+\xd2!\xbb|\x81`K\xd8dk\xd1\xe1\x16!\xc3\xfa\
+z\xaeZ\xe7\x8c\xcfcG\x04\x1a\xec\x1f\xff\xc0\xbe\xce\
+sS\x15J\xf6\xb3\x93\x02\x82f\x0b\xb4L\x13\x00\x9d\
+\xe6\x98\xbf`\x91-1!\xe0\x80L\x80\xd0H\x84\x80\
+\xf1\x85\xbd7\xb9\x02\xe0H\xf0\x9ewp\xf4{%\x06\
+b0\x11Y\x95\xb8t\x1f\xf4\x8d\x96\xba;\xae\xe4\x8a\
+\xf5w\x10QZk\xf8!\xb8K\xf4\x86_+d\xa8\
+8J\x18{5\xe6WBGb\x83^\xd2\xf3\x0da\
+p\x8b\x90\xe1<:\xc7\xc6Vf\x8bU\xd9\xefLP\
+\xd4\xf9\x14\x00r\xa4\xd9g\xfeD\xda\xbd\x22\x15\xd4Z\
+\x90\x89\xf5\x0aH\x91\xb2z\xde\xe98W\xef\xb3\xe7\xa9\
+\xa7\x99\x1d\xc8\xfb\xab\x00\x9e\xc3n\xbd;\xdb\xbcVV\
+\x01)G:\xc9\x00\x8b42\xc9\xb7j\x9e\xbd\xfb\x82\
+\xec\xa4\x1f\x04L\xfc8\xaf\xf4\x9a\xc4\x9f\xc4\xa1\x80\x81\
+}f'r\x9cjM\xa7R\xf0\xe2\xcf\x09\xfc\x04\x0c\
+=Q+\x90\xf3\x1c\xd9A\xfb\xde\xba\xf2K<7\xe7\
+Q`kZ\x07\xbd\xe7}\xd9W\xd3?\x9c{\xf6H\
+\xe5Y/:\xb2A\xe7\x5c\x80\xd3{\xdc;G\x01\xbf\
+\xd4\xbaJ\x04t\xd27\xff\xe7\xe7\xfc\x8c^a\xef\xbd\
+\xf6\xbe\xa7\xcf\x90\xac\xa9\xf4\xb3+\xf6\x8d\xfb\xf6\xbe\xbd\
+\xf7Zb\xa0\xb70\xf4\x16\x83\x8e\x00\x00AG\xaa\xf7\
+\xee\xe2\x04Z\x03S\xeb\xe3\xfb\xf6\xb9u\xdd\xce\xbd\xcf\
+\x13HK<Hh\xf8=\x7f\xd4:K\xc8\xf5\x82`\
+\xff\xf2>}]:\xc2\xa0\x05\xb6\x15x\xf7D\x80\x80\
+\xd6ss\xbd\x9e\xab\xc4\xaf}\xe4}\x9d\xfb\x9e\x00\xea\
+\x5ci\x12m\xfc\x05\xebg\xfd\xad\x87}\xe1\xf9\xb8\x1e\
+\x09\xbc\xde\xc2\x84\x8b\x89\xbd3mJ\x01$\xa7\x9b\xed\
+.\x1b2p\xd2\xd8\x07\xcd\x0f?fz\x8fs\xc5\xff\
+\xea\x5c\x14\xa7\x87\x0cz\xda\xf3\xa0'\xeckc-M\
+\xff\xca\x16\xf69:[\xb9\xd8\xb4\xe0\xa6?{\xa4 \
+V2\x14\x14\x88\x0f\xd0C\xf0\xc7![O\xe2\xee{\
+C\xb6\x0c\xda\x89w\x0a\x19z\x17\xcdO\xcd\xb9\xb9\xa5\
+\xa0(n=\xb3\x12\x02\x99i_n\xff\xcc\x06\x09:\
+$\xf4\xf5\x0d\x1b\xb4M\x22\x00$\xb6~\xaeg0\x13\
+\x16 \xed\xcb]\xcd\x06ww?!\xc3\xa1\x00\x00 \
+\x00IDAT\xc9Y.1\xb0\x7f\x9b\xbf\x9b\x99\xf8\
+\x1a\x8b\xd2\x0c\xc3\x90\xc1]\x1d\x8d\xc6\x9aY\x19\xc1$\
+%*\x87\xa0g\xc4\x5cWg\xcft@\xbdo\x0f\xf4\
+\x8f\xc7!\xd0\xb9\x04\x90\xe8\x1c\x1dZ+\xber\x0e=\
+:\x0e\x86\x8a\x22\x05\x9e\x95\xec\xfd\xcb\xf6/\xdd\xbft\
+s@*\xa1\x91\xff\xa7%b\x0e\xf2\x17\xc32}=\
+d\x08p8\xe2ypk\x0cS\xb2\xc0c\x89>\xbc\
+%d \xaf\xba\xe3\xda\xfbv\xf8\xb7T\x80\xc8\xb6\xee\
+\xben\x5c\x88\x94\x9a\x07\x9c\xff\xb7\xd4\xd1g\xc3\xb8\xfb\
+\xcb\xdd\x1bwo\xdcH\xb58\xc2\xd3[gyK\xf6\
+Z\xdeeHTH|\xfc\xed\x92\xa2X\xaf{`\xdb\
+]\xcc\xe7\x19\x03\x14\x152\xc08\xcc8vc\x80\xa9\
+\xd2-C7\xce\x83\xfdH\x92\xe7=z\x80\x1a\xa7#\
+\xbf\xf4*_p\x81x\xae\x8e\xdb\xd7\xf29\xa5\x81\xd0\
+R\x80\x04\xaa \xb3Y1\xady\xcfw\xcdq\x8e\xf6\
+eBxg\xa3xvEh_\x9c\x91\x8a\xe7\xf44\
+<9\xf7\xfc0\x85\x0cdi\x10\x1f\x10/\x12\x0e\xe9\
+h\x83\x06\x16\xf4\xd5\xfem\xe42\xb5\x0f[F\xbbH\
+\xd0\x04\xda\xa9\xa8\xcc\x81\x9f\xcf\xc6j\x18\xde\x93\x81r\
+\x1f'\x85m]O\xe3\xfd\xd6\x1e~$(\xd5\x9a\xd0\
+{\xe2\x04\xba\x999\xd5\x9a\xa2\xc7\xbe\xc8\xf1T\xa2\x9d\
+O\x15#\x09R\x10q\xe3\xedTh\x1c\xd7\xcc\xc0V\
+\x0f7\x03\x9c\xf7\xb5\xe0P>8T`\xe8\xe3}\xee\
+\xc3O'$=\xd9\xe6\x0fW\x09Y\xeek\xed\xd5\xc6\
+\x86\x7f\xb1\xc3E\x0f\x17\xddZi\x8a\x9c\x10\xe4Y\xa5\
+\x91~wN\x05\xee\xf4\x90\x00$\x03\xb3\xe9\xd1\x81}\
+\xd9\x12<\xc6(\x16W\x87\xdeU\xfaS\x80c\xbd8\
+\xac\x1c \x06\x9eC\xc5 K\x1cd\x02\xa7\x02)\x95\
+vv!\x13C\xc5yq\xf7\x15\xb1Tc\xca$\xb4\
+\x04\xb2*iw\x0a\x19\xa6\x8d|o\xc8\xa0\x179`\
+\xf4\xae9\xbaz\x88]\x87\xf1\x86\x10\x0e\x12\xd0\xaf]\
+\xa4\xa6%\x94C- \xfa\xd6\x90a}sz\x81\xf3\
+\xe8s*\xd1\xf0\xf7!\xc3\x186c\x03\xbd\xaf\x169\
+\xe4\x8a\x99\xf9\xdf\xffl\xc8\xfcz\xe7\x90\xd9>?9\
+d\xd8\x9f\xa9\x87+\x90V\xd96\x8d\xc2\xf4\x86$\xfb\
+\xdc\xffz\xc80N\xf0k!\x83#,\xe0D\xaa\xe9\
+<B\x04\xf9\xbb^9\xe4\x10A\xa6\x08\x00 _\x8c\
+-\x03}75D \xaf%\xc6\xff\xd3\xd3\xc8\x03%\
+\xf83\x10-$@\xda\xe1\xd2\xabX\xe3}u\xf6r\
+\x096d\xae\x90\x86\xf4[\xea\xcd\x0a\xb8\xb4\x90H\xf8\
+t20\x8e_\xea\xf7\x22\x17\xe40\x0a\x0c\xf4\xaa\x0b\
+\x14U\x8c\xd9m\x81\x9c\xefU\xcc\xf9\x1b\x90h\x02\xb0\
+\xb47\xe6g\x97~\xf5\xf7\xdeOBN .\x91\x0b\
+\x11\xe8>\xe8\x11\x01#(,?O\xc5\xdbs\xb5\x1f\
+ 6\xd2\xfeW\x02\x09d\x1fR\x8ec\xae\x05\x8b^\
+T(\x10@\xd0\x13\xfc-\x81?\xfb+\xd0\xb3\xff<\
+W\xcfK`\x82d\xd5\x94\x0c\x81\xbdD\x1f\xbb\xea\xf9\
+\xf9\x9e\xbeP)\x94\xd8\x93\xe8\x17\x90#\xcbt\xdf\x9e\
+\x1bH;\xe4+\x92^\xef\xdf\x02^P\xe4\x9a\xde\xa0\
+E\x91?\x03\x81\xcb\xbf\xec\xfb\xc8u\xd2\xd7\x10M\xce\
+\xb1\xcf\xb5>\x9d<M\xa0\xad\xa5\xc1<v\x08F\xfb\
+\xdd\xba\xdb\xd7\xbd\x10\xe59\xb0\xc7}\x8aRg_\xf7\
+\xf3\xdek\xde9}\xda\xfc\xf7\x22\xf3k\xadk\xc7\xb0\
+\xfd\x0b\xc4\xdc\xa7\xfd\xed\xf3\xed\x07\xd7\xdd\xc9\xf1\xf8W\
+\x90sg\x84\x9c\x03\x09\xa7\x00\x9e\x1f\xce\xefq\x1d\xde\
+O\x00(\xf0\xefc\x03]_\xbf^\x5c\x08\x90/>\
+\xbf\xaf{\xee\xdb\x0ap7\xbfp]O\x810\xfd \
+!-\x81\xe1}{E[\xc0\xde\x13\x00}\x1c\xa4\xf3\
+\xeb\x5c{\x9e\xae\xb3\xb3\xf5\xf3\x1f;\x89`\x87\xc2K\
+\xc4\xf9\xde~\xe8\xcf\xc9\xcf\x9b?x\xcc:\xb5\x82m\
+\xedw~\xa0i[GB\x86@\x1by\xac\xf5\x85\xf8\
+\xf3y\xfc\x22z.\xd7\xa5\x9e7\xa4G\x9f\xc6B\xdf\
+Zw\xe7\xd4\xbag\xc2\x7f\xfaJ\xc8\xfc\xfa\x96\x88\x80\
+\xb6)Q\x87\x0b\x86\x04\x09 \x88q\x98\xe7\x0f\xe4B\
+\x1e\xdd\xa0\xf66\xd0\xd2k\xfc\x82\x84\x02\xcf\x01\xf5\xfe\
+S\xb3\xcc\x1byw\xfdYf\x85\xb3\xbfn\xc8\xfc\xfd\
+\xbbCr\xe3\x9c?3\xd0\x17\x1bz\xe3\x1e\x95\x8e$\
+\x12\xb0p?/\x90\x19\xd9w$d\xeaF\xb91O\
+\x1c\xe6\xb2\xcb\x80!\xe7\x8b\x80\xff\xbe\x19\x08\xdd \x15\
+\xf6s\x87\xca$\x87A\x056\x8e\xd9G76\xd5\xe9\
+\x19!\xf3\xebkB\xb6\x9e\xd0\x82\x1a:\xf0\x0eD\x1f\
+\xdb'CGqg\xe5Ce\xa8z\x02A\xb4s~\
+}\x19\xe2\xad\xd7\xf9\xec\xbd9 \xb1\x1c\xf3^\x01\xef\
+\x5c\x01=\x83\xda[\x09\xfa\xfb\xfb\xe2@\xea\x05MG\
+O\xa5v\x0e,\x16$\x08\x16t\x81\xc4t\xc6:O\
+\xbe\x0c\x22\x85\xf5\xe2d\xb1\xbfz\x8e\xb3\xa28\x90E\
+\x9d\xb9\x92\xd9\x81(\xd7\x81JG}\x7f\xb7\x90\x8d\x15\
+}w\xf1\xdd\xcdw7\x8f\x83\x96\xfb\xe6>k\xe0t\
+\xf8\xee\x90\xa12+\xf3\x85lG\x86\x0fD>\x8e\x13\
+\xb6\xe6O\xe7\xef\x07\xc5Z\xad(9\xe5b\x81\x1e\x9d\
+4@IUz\xa2\x92\x19\x95\xbdW\xcc\xf2gC\x00\
+\xeb\xe0\x81\xec\xab(q\xac\xf5*\x87c\xff\xa2\x01\xf2\
+\xe9 \x83\xea\xcb\xc0\xaat\x80\x96cE7- \x03\
+\x8c\x1a\xb3f\x1d@\xd0\xbf\x92\x86\x91\x02\x7fg*\x0e\
+\xcfC\xe0i\x7fS\xe0zg?\xbb\x1a\xac\xd9\xbd\xff\
+\xfa\xe1\xeb[E\xaa Yzy\x19\x98\x9f_\xc7\xe4\
+M\x97J\x96\xd4\xbbg\x0b\x8c\x0ae\x83P\x95\x03\xd0\
+Yw9f\x10\x08*\xb6I\xbag\x1a\xc7\x1cd\xaf\
+\x0e*\x92\xbcdu\xaeJ\x0b\x92=\x90\xd0\xaf\xa6\x82\
+\xe4 \xba\x7f\xeb-\x13\x9b\x90\xe6b\xcfW\xe9\xfcb\
+\x06\xc6\xef\xad1<\xebu&\xe2I\xeb@U\x98\xf4\
+t\x0a\x14\x19f\x09\x84\x1e\xf8\x1c*s\xbd^\x17}\
+\xe5\xfc#C\xcc\xa9\x19\xd5KO\xf1\xcbD'\x1b\xfe\
+aZ\xc7\x9eM7\x0f\x19>/\xf7UA\xd1\x93\xc4\
+\xac\xd6\xd9>\x80\x10I$B\x8d\x81\xcb\xd6\x91\xe2@\
+1\xad\xc2\x18/d\xad*\xd7\x9d\xd4\x8dC\x88\x84\xea\
+^\x8bl-\x13\x9d\xe5Z\x80\xfe\x96\xc3[\x0fo\x1d\
+\x127\x02\xe9{N\xf7\x98\xeeq\xec>\xa9V\x08\x09\
+B\xeb\xc0\xe0'I[U\x92\xe9\x09\x8e:\x07\xd4\xfa\
+\xe6y\x0dj\xd3\x85\xdc\x14\xe48\xedA\xf5\x04\x1a\xe3\
+g\x1d9 \x02I\x89\xa9SB\x86\x8a\xb7D\x96\xfd\
+\xa3\x22\xaab\xeb\xff\xb2%\xa0\x8f\x09+{\x03y\x80\
+E\xdc\x98\xb3\x18\x87\xfa\x90-Q\x0f\xba^\xcf\xc9\xbe\
+\x10\xa8f\xa0\xb7\xbfc\xc8\x90\x18\xce\xc0\xac*\x11\xf4\
+\x98\xca`g\x07\xd7\xe3\xce>\xb0{*\xb0\xce\xb5\xc4\
+\x0f;\xeb}\xd8\xc7\x87,\xb2\xed\x1b\x01\xbeJ\xb7\xf5\
+\xe3 \xf9\xbf\xb1\xa5\xf0\x5c\x83\xe3%\x11\x86\x13\xc4\x18\
+J=\xf0Z\x11\xe8)\xc8?z\x0c2\x0c\x09\xa9\xb1\
+\x9b\x12\x99\x12\xda\x89\xfc\xa9V\x0d\xf7\xc7\x01\x05M\x87\
+ \xfb\x99\x90\xf9\x98\xfd`\xc8\xfc\xff\x9fM;+\x11\
+\xe0\xfe\xadc\x06\xea\xb5\x8ez\xb1AO\xb3\x90\x03\x1a\
+^\x15\x7f\xfb\xda}uR8\x01*H9\x7f(+\
+\xf6\xd5\xcbo}\x1b\xc2&f\xa4,SR\xfas\xa5\
+\xcf\xf4,K$C\xce$\xb7G\x8d\xeb3]%\x91\
+\xa6\x95\x08\xca\xf5\xabD\xaa\xc0\xc1\xf5\x08\x04z\x02\xa0\
+\x8fQ\xe3XkE0\xdeT\x8b\x0e=l]$6\
+:\x94\xb7\xf7\xf0b\xe5\x97@\xc8DE\xad\x8b\x84g\
+\xaf\x14\x0b\x00\xda\xd4\xa0\xb2\xdb\xdd\x1f\x95p\xca\x00\xaa\
+\x9e\x0bd\x91}\xacE@E\x142\xc6\xff9\xf7y\
+\x0e\xea\xff\xfa\xd4\x02\xfeD>\xefj\x09\xf0<\xd9o\
+\xeb\xd0{\xd7\xed\x87\x1e\xa8\x09d\xfa\x187_\xf6k\
+O\x04t\xc8\xb9}(\xe0\x17@Y_\x89-\xd7\xd1\
+\x91\x01\xce\xa5\xd7\x9e\x08`\x7f\xac\x0b\xc4\x898 \x03\
+\xfaj\xc1\x12\xd8\xe3b\xea\x95y\xfb\xb3C\xd3;\xe7\
+\x02}\xdb\xb9\x0b\xfc\xbf\xeb\xb2\xff\xfb\xfb{\xa5\x87{\
+\xfc \xe1e\xbd\xecg\xf6%\xa7\xa2\xd4\xbe\xc4}c\
+\x1f[\xbf\x8e\xd4\xf0}\xaf\xd4\xfb\xdeu\xd9\xf7\xd6\xd5\
+\xfe\x99Z\x01\xb3'\x00\xfc\xbc#\x10\xec\x1f\xef\xcb\xef\
+\xb4\xce\xd6\xcf\xf3\xb1\x0f\x04\xfe\x9d\xbb\xc0\xfe\xd2\xc2\xa0\
+U6\x11a\xfc\xa3\xe9\x89![\x22\xad\x12\xca\xae\x83\
+\x1e\xe9\x89\x0d\xd7\xef\xbe=\xbf\xee\x1f[o\x08x\xe7\
+\xa7s\xaa\xb8~\xfeG\x22\x18w\x7f\xb9{\xc3\xee\x0d\
+\xcb4\x9c\xbb\x1d\xee\xb6!\xa7\x8e,=\x93\x17\xce\x0f\
+\xfeLfbg\xc3\xbd\xff\xb3Y^\xb19\x90\x0b+\
+\xeeC\x12\x92\xf5\xc2|}\xfe0f\xea\xee![\x0f\
+\xd7\xc2Z{\xcf\xa1\x22\x18\xea|\xb7e\xe0A\xc7\x17\
+\xa0s\xf4\x9c\x9f\x16\x92\xe3r~/\x1f\xdc\xf92\x00\
+\xba\xc507Z\x85\xd5\x83I\x07kv\x08\xef\x19,\
+\xb9\xc56\x9b\xa4X5\xfe\xe0F\xb3\xdcp\x98\x83\xfd\
+\xa4\x90\xad\x82j\xfeq9 \x16\x14K\xee\x8d\x02\x9c\
+=dr\xff&\x1d\xfa}\xf6\xa8|,\xc9\x81\xfc\x1e\
+\xb4O&H\xa0g\xfc\x91\x1eJ\x99u\xffg\xc3\xda\
+\x08*\x0c\x02\x96\x1e\xc0u2\x8e\x0e\x95\xf2\xff}\x1c\
+\x8b\x0d\x9e\x0e\xf1\xf4\xa7!\x83\x03\xfa\x8f\x99\xd94\xa6\
+\xe8\xce!\xcb\xd8\xb65\x10\xbd\xe4\xaa\x00\xa7\xa7\xadc\
+\x00w\xaf\x09\x99_\x1f\xb4\xfb\xd1\xdd\x8f\x0e\xbd;\xc9\
+\xb6]\x99\xc3tH\xcb0\xaa\x84g 1}2d\
+#\xa7\xdb]$d\xbe\xad7\x84\x0c\x8e\x0f(\x22\x12\
+\xaa\x9cF\xb0\xbfm\xc8\x16H\x16\xc4W\xe0\x9a-\x0d\
+\x8b\xc3\xf7\x81\x81l(\xc6\x80=}\xd8\x07\x9d\xe5\xf8\
+\xcbK\xadv\xdb\x1f\xa0sQ!~\xfc\x00\xad\xcf\x03\
+W\x15,\xac\xe7\xd92`\xac\xdf\x12\x80<g\x81p\
+\xcf\xb2A\x88\xca1}S\x22J8\xdaX\xf6\x9f\xbc\
+\xee\xdb\xe9\x5c\x09]\xb7\xcfO\xcd\xc0`\xe3\xf2X\x1d\
+\xe1\xffJ\x05\xc4\x11\x15\x90p\x00\xee\x15\xb2q5\x1c\
+nv\xb8\xe9\xe1\xa6K\x22m!5+N\x0c\xe4w\
+G2`\xa6\xc0U\x16\xae~\xb8\xc6\xe1\x1a\x1b\xe2\xa7\
+*\x97\x14{\x87\xf4Q\x8c\x02\x0c\xe3\x1a\xcd\x7f\x17`\
+rP)p\x06\x92B\x96h\x039\x96AM\x08Z\
+M\xad\xb0\xcf\xdc\xbf\xd7^q\xb0o\xb1o\x83\xc0\xa7\
+\xa32\x07\xd8+u\x871\x8d\x12\x88H\xc4\x18z\x15\
+\x14\x8e\xc4\x073@\xc8i&\xd3\xe5B\x86\xf3\x0e\xaa\
+\xcb \x9d\xf7\xec\x19^c\xf0\xaar+p\xcb\x9e\xf8\
+\x1ac\xc8\xa1\xfal\xaeC\x06\x16\xd3\xf3\xd7}VS\
+\x1eT\x82\xe8\x89\x97\xd4\xdc\xe1uj\x81\x80\xdds\xc3\
+Y@\xbfpxTDC\xff\xdes\xc8\xecC|I\
+\xb0\xb8/\x95T$\x99*{9\x8d%f\xb4,\x90\
+q\xfa7[\x16J\xef\x19\xfb\xa6\xe2\xcb\x0e\xa8\xf0c\
+{\xcf\xcaf\xcd\xa3\xa7\xef\x8c\x05\xc4}\x81l\xd0\xfd\
+z\x0e\x0c0\xc7\x1f\x84O\xa5_\xa0\x89\x94\x89\xc3\xde\
+\x1d\x11\xfb\x9f\xc3\xe1\xba\xe9-\x09$\x957\x5c4\x10\
++\x02\xa4\xd4\x9b5\x16\x94\xbd\xe0\xf0\xbf<d\xa8<\
+C,\xe8\x99\xcfs\x8e\x9c\xaf\xeeC\x85\xd8:\xd2w\
+\xf4\xa2\x16\x0e\xdf\xe3\x96P\xd1\x87\x18\xe4\x10\xdb\x1f\x12\
+\x03\xec\x13vk\xf3\xb8\xb5\x8c\x08 \xac\x8f\x8a\x9a\xc4\
++Hc\xafp\x08xU\xd2@\xd7\xf5\xf4\x82<\x0b\
+\xdc\xd3\xee\xa9\xc4\xd44\x07cO\xb5V\xf8\x1c\xfa\x01\
+\x19\xa0\x82\x02\xe8\xba)\x04\xe6\xd1\x1b\x1f\x07\x11\x93\xfa\
+li\xe9\xfa\xf6sh\xb5a\x97\xed\x8f$\x8f\xaa\xeb\
+O\xfb\xe5\xfd*`\x94@\x01\xa5g/$|$\xf8\
+$\xa4\xf4\xf6CJd\x85\xb8\xc6$\x22\x0f\xd4\xc2\xf9\
+\xbd\x8bl\xfbB\x00#\xe0\xf4}\x1f\x07fL\x1fD\
+\xcew\x85\x9c\x037\x80\xf3\x02\xa1!1\xeb\xef\x92\xbc\
+\xb9\x10>\xae\xdb\xf3t\xae\xd8\x1f\x81\x11\x07\xfa\xab-\
+\x01\xee\x5cC\x8aaw\x87\xd8t?H%!D\x8c\
+a\x15\xb8C\xb0\xd1C\x9e\x9f\xef\x9d{\xfa\xc3\xf5\xd1\
+\xdfZT\xf8i>\xb7\xcfSw\x8e\xe8O\x9f\xd3\x0b\
+>\xee\xcf~\xa2_!\x04 \xb7\xd8\x99\xee\xd7\x0a\xd8\
+[\x22\xa7Z\xda\xecW\xe7\xd7\xdf\xf9\xff~n\x9dK\
+\x15\x7f\x09U\xf6]%\x9c\x9ei\xfe\xa9\xc2\xdda\xf9\
+\x1a\xb8y\x8c\xf5\xf5\xb9\xdd\xcf\xf5\xbd\xdf\xdb\x8f\xf4H\
+O\xb4X'\xcf\x87}n\x89\x80\xda'\x02s\xf7\xef\
+~\xed\x07\xc8\x09\x7f\xe79J\xd4\xf1#\xd9E\xaf>\
+\xd7\xf58O\xf4$n\x00\x08\x91\xde\xbbn_\xf7\x84\
+\x06\xfdOo\xf6\x84S\x87\xcc;\x97\xce\x0f\x7fHb\
+\xc0\xb40\xeb\xec\xbe\xdc\x87\xeb\xf6\xff\xc7#\x03\xec\x5c\
+\x0e\xfc\xb9\x8e\xe4\xf0\xfc\x04\xfa~\xde\x13\x00\xfe\xafO\
+\x15\xa0\x1f$\x84\xecc\xeb\xe3\xf9\xd1\x1b\xfeN\x5c\xd4\
+\x9f\x93\x84\x92V#\x08\xac\xf4\x07b&WL\xe5\xda\
+\xdd,d`\xf9\xef\x082\xf7\xd1\x91\x10>_!\xd9\
+9\xf1\x9c\xfd^A\x8b~\xf0\xf3\x9e \xf3<!\xdf\
+\x15\xde\x7f&d\xbe\xce\xf3\x86l\xdc\x00G*0<\
+}\x01\x01\xd7X\xbfbM\xcd1f\xfb\x1b\xcfr\x93\
+$\x81ze>\x80\x91|\xe1\xedKm\xee\x84\xfd\x9d\
+B\x06\xa8r\xe4\xdb\xa3%\xe01!\xdb\xc2\x83&\xa8\
+\xd0\x0a0A\xfe\x19\xee\xddEC\xd2\xd1\xf9\xf6\x8d\xcc\
+o\xe1\x8e\xff\xa1\xcd\x11\xaf\x8c\xae\x0c'\xa8y@\x8b\
+\x9f\x94\x0eTT~\xee6K\x042\x8f[\xe4\x84\xdd\
+UC\xe6\xf7\xfdb\xc89\x8cY\xb9t:\x80\xc6\x06\
+\xe1\x08\x90\xd1\x01\x01yX\x8e\xc5\xcaqr\xd3{C\
+\x86\x8dD!\x09\x108\x94\x02\x00\x9f\xeb\xa0R\xd0\x10\
+\x01\xfe\x9eA\xb0\x81\x19\x06?\xefs\x5c\x8d\xa7HR\
+\x8cr8(\x00\x81\x98\x1e\xd5\x0c\x18\x0e\xa7&\x89\x93\
+\x1eL\xa4n'\x85\xcc\xaf\x7f\x142\xbf\xfd\xa5B\xe6\
+\xd7\x8f\xee>\xb6\xfb\xd8\xe6\x88\x1a\xb7\xb4\xff\xae\x90\xf9\
+\xf5\x07C\xe6\x9f\xff~\x22/n\x96l\xe1\xc8\xa7>\
+\x10\xb2\xb1\xda\xefn\x1c2\x8c\xe3\xd1#\x0e\xda\x9b\x8e\
+\x0fh\xea\xe1\xfc\x87\xf3\x1db\x5c\xc7\xb9f\x99\x0f\xdc\
+\xfeE!\xe9P}<{\xee~o\xe8\xe5\x1c+\xe0\
+g\x0c\x0aV\xc6\xda\xfa\xa4\x83[\x95\xfdx\xba\xbf\x94\
+\x01~\xb0\x8a^t\x96\x8b\x0c\xac\xdf\x0cm\x1c\xd3K\
+\xa6\xa1\xfel:\x8a\xef\xc9J\xe7k\x92\x9c\xee\x13C\
+K\x88^\xa3\xf7N\xef\x9b\xde\xb7\x19@\x10\xf3\xe9\xd3\
+\xebX\x91\x9a\xc6\xa1\x22o\x8c\xd9\x89\x09\xb9\xfeD\x22\
+\x22\xde\xb1\xf68\xd64\x01\x06\x97BKh\xfc\xfe.\
+!\xf3\xcf\x9f\xb6H\xbc\xef\xf2|w\xb7\x0d\xd9z\xea\
+\xab5\x01\x12\xe6\xbci(8n\x1dZGAu\xc3\
+\xdd\xa0[5\xc6\x0aT[E\x99AQ\xc1\xf6|p\
+\x13Xo\x8e\xab\x0c\xee\xed\x92\x9c\xeb\x05\xb9\xaf\xdd\xef\
+cB6hs\x05P\x144\xc3/a#Q\x04\xc2\
+\xca\x90&\xa2\xe3\x84\xab\xe4\xbe\x10hf\xa2\xa9H\x18\
+\x19R\x8e\x83i\x0b\x19\xb8\x14\x89\x99\xf3\xc8\xa1p=\
+\x0c\xa4\xb1a*c\x0c\x98Jh\x92\x03\x16$\xbb\x8f\
+\x91\xd1\xf3\xff\xd6\xacL>d\x1doV\x86\x93\xdeP\
+!x]\x22L.\x97\x150\x81\xe9I\xf9w\xff\x99\
+\x86\x94c\x02\xcakL\x9d\x9e_\x813\xfd&1\x03\
+R,@\xc4\xd1a\xbe\xf7\x13\x16\xda\xd6\xb8\xbf\xb5B\
+\xc8Q\x92\x00\x15\x18J \x5c0\x7f\x9e\xcfS\x22\x02\
+2\x05\x8bz\xbd\x8f\x04\x22\xc4Vf\xea\x05\xccAQ\
+\x1a$\xa5\xe5\x08\x1bW\xf8/!C\x00\xaf\xc5\x83\xfd\
+d\xf0\x9d\x7f\xfb\xd7\xfd{n*\xa9\xd8\xc8%\x84U\
+P!\xe4 \x02\xd8W\x01X\xee\x07\xad\x07\xd3\x9bB\
+6\xfbZ\x09\xf6$\x05\xadi\x03I\x0aW\x09\x94\xac\
+\xd0\xd7|zd\x82?\x9b\xd3n k\xb4\xc2\x5cc\
+M\xf0\x19\xc3X\x8e {c\x9fp\x8c\x04\x1e\xecW\
+'\xedd\xaf\x05v \xe7\xc8.\xe9a\xadx\xdd\xe1\
+l\x15\xc6\x1a\x9b\xa5\xf5\xca~\xa6\x87\x9c+\xcfE\x85\
+$\x03\xea\xfd\x0bCf\xbdw\xe5\x90\x01\xb1\x93~P\
+!K\x8c\x99\xcbVGS\x0ej\x0c2\xfd\xc5\x81\x96\
+\xe0\xf1y\xec\xb2\xc4\x04\x92\xd8\xec9?\x5c/d(\
+\x18(x<~\x91m\x1f\xf3s\x8c\x034\xd61{\
+\xe6\x8bDP\xe2\x93?\x93\x88\xb2\xda'\xc6\x22j)\
+\xe3O\x08\xd4U\x8e=7\x88\x0b\xeb\xe3\xb9*x\xd0\
+\xab\xd6\x9f\x1fC\xcf\xd0k\x02\xc3$\xdd,\xfd%\xc1\
+\x89t\xd0\xb9\xb2^\xf4/\x87\x97^\xee\xa4d\x9e3\
+\xbd\x03\xb2,qE\x0f\xbc5\x11F\xe9\x0f\x96\xde\x86\
+p\x13\xb8w\xae%\xd7\xc3\xfe\x81\xd4\x9b\xde@\xff\xb2\
+\x7f\x9d\x8c\xcd\xbe\xa7O\xfa\xbe\xe4\xef\x09L$\x1a\xf8\
+%\xbd\x95M`\xe0s\xdc\xb7\x16N\x95D\xcfKE\
+\x5c\x22\xb3#\xf3\xe85\xeb\xc9\x8e\xf5\x9ew\xef+\xe0\
+\xc7Q\x93\xad\xa4e\xb7%<<7\xf7\xe3\x9c\x18;\
+\xaep\x03\xe1\x03\x11\xd8\xa1\xe0}.|\x1bs]\xe7\
+\xa4\xb3\xa8\xf7\xc0Y\x22\xa5\x8dq-?\xc6~\xe1o\
+{~\xf4zo\x9d\xf3\xd5\xa6(\x1d3\x06\xb0\xb5V\
+T\xc0n\xbd|\xbe\x84\x8a\xf3\xe7}\xfbx8\xfe\x0b\
+\x96{\x09\x19\xe7\xcd\xab\xfb\xf5\xbc\xfb8N\xfb\xa9\x8f\
+\x0d\xec\xa4{\xee\xb7s2\xf5\x0a\xb7\xe7!\xbe\xf1\xff\
+\xae{K\x18\xac?\xe7g\xf41\x90\xde\xaf#?\xc4\
+/\xce[O\x00H\xc8\xf5\x16\x11-\xc6\x92j\xfc\x8b\
+\xce\xd9`\xbd%\xbc\xdc\xe7O,\xb2\xf9\x01\x0a\x87H\
+Z\xad_\x8f\xb3\xac\xdb\xf1\xc8\x11\xfb\xf3\xf1\x5c\xd8;\
+\xad\xc6\xf4i\xe7\x88\xa3\x9f Z\x1f\x18\xb2\xd9s\xe3\
+\x09\xa7\xdf\x0d\x09\x0e\x80\xec)Ui\xd8\xff\x9f\x90$\
+\xab\xb9\xd3P\xd9\x8a\xe5\xffZf\x8c\x7fy\x83\xa8\xed\
+\xee0\xcbw\xa7\xc2z\xff0n!\xa0\x91_H\x83\
+\xf1\xb7ih\xffq\xa8`\x04\xf0\xfc7\x13\xa2y\x8b\
+\xac\xfc\xfe\xc7\x96\x09\xdf}~\x96/dE0\x1c\xf7\
+g\x85\x0c\xe3iL\x15P\x89\x8d\xc0\xf5\xa7\x87\x07\x1e\
+\xee\xf9U\x92\x0c\xeb[\xe7\xfb\xba\xf9,7K\x08\xfa\
+O\x0d\x10\xef4\xac\xbb\xff\x08\x19\xc8\x9bp\x19\x80|\
+f\x8b@\xb1F3\xd027\xe6\x00w2\x07\x0aU\
+\x80\xc2@\xda\xe06\xaa\x07\xc8\xd1A\xda\xc4\xc0\xf5\xb9\
+\x96\x14H\xb2\xb8\x1es\xf0l \x8a\x8e\xc1\xe2\x90\xf5\
+^&=\xa0Y\xb98\xbc {ps\xa3O'\xae\
+\xbd-\x1ca\x89\x93\x13_\x162\xff\xfcGB\xb6\xde\
+\xb7\xe9\xda!\xdb:\x16\x87\xc2\xdd\x0f\xf78\xdcc\x81\
+\xb2\xac\xac\x959\xe7\xbe\x02\xddW\x87\x0cd\x8eYI\
+(r,\xd0\xba\x9b\x9f\xdd1:\xbco\xed\x0d?<\
+ $\x15\xf7\xfb\xd3\xc0\x8d\xf3m\x91\xf0q\xbc\x1d\xa4\
+\x08\x9bN\x19\x14]\xac\xca\xb9\x86\x0c/H\xae\xde\xe6\
+h\xec\xb8\xfa\xd0\xea\x02\x92n.k\x84s\x17N\x87\
+\xe2\x1b\x86\x8c\xdc\xc8\xda\xffG\xdb\xd8\xa5\xe9?\xf3`\
+\xbe+d`\x13W\x09\x16(\xde*\x1dx\x88\x80\x8b\
+dO\xec7\xae\x0a\xa5\x02\xcb\xaf\xa7\x82T\xb9R9\
+\xe2\xd8\xffb\xc8\xe6\x00\xec\x9e\x192\xbf\xdfSWD\
+\x87\xf9\xdd\x05\xe5\xbe^V\x8e\xae\x94\xbd\x89\x90\x0e\x14\
+'\xf6\xd3\x07,\xb2Ms`\xf0\x18\x00P\xfe\xa7%\
+)V sn4 Q\x16\xf2\x81s \xb1\xc9\x80\
+a\xff\x17!\x89\xd8x\xda0\xdf>[\x15\x0e\xdf\x9f\
+P\xed\xd7\x85l\x89\x92\xe2\x8a\xf0<\xed\x7f\x15\x1aS\
+\x1dr\xfd\x0a\x12\x9cc'k<\xa6\x00(\xafw\xff\
+\x1b!C\x02\x07\xf4\xb7\xf7v\xbd7\x15\xf8\x19yn\
+\x19:\xfa\xca\xf58\xdf\x1cT\xbd\xe4\xc6\x8d\xb9o\x06\
+\x1f\x12&\xa1\xad\x93) \x1c\xb1d\xd9\x86x\xaa\x16\
+\xa8\x8dlj\xcd\xb9\xbe5+\x8a\xff\x99\x09\xcd\xa7&\
+\x9b\xb9\xfb\x10\xb0\xa7C~\xf8\xb3\xec\x9d\xfe\xee\x95\x93\
+\xa3 \x8b\x02J\x09R\xfb\xd6\xb9\x12 \xa9\xc0\xd1s\
+o\xccW\x88\x0f\x86\x9aAf89\xc4\x1c`\xeb\x0b\
+\xa1\x81\xf3\xe1\xfb2\xf0\xb9E\x8e\xdd\xc3\xa2\xfb\xb4\xe4\
+\x14\xc1\x02\x9e\x9c\x01\xd3\x1f\x86\x0c\x15@\x95H\x09f\
+\xfb\x5c\x02'3\xe8EF\xab\xb7\xdf\x97uSY3\
+\xb6I\xc2*\x13\xc5\x95\x00\xcb\xf3V\xbd\xbf\xce\x9d\x0a\
+;\xc3o\xacVN\xe5)\x04\x8a\x84\xf6s\xd7\xb1\x9c\
+\xecY\xb5f\xe0\xdc\x91\x98\xd1J\x00b/!\xf7\xeb\
+\xebX\xc8j\x9d\x10H\xe4\xba\x1e\xbe5dI\xe4\xce\
+2$\x80\x90\xa7\xa5>;\xfcj\xc80eF`#\
+\x81\xcb\xa1\x16\xc0s\xf8%:TF9\xc4\xcd1\xab\
+\x0a\x1d\x07\x99\x9f\x22\xa0\xf1\xf7\x8d\x85\xbb\x90Z\x02\xb0\
+\xc6\xdd\xb0\xff\xed\x90!\xde{v\xc8\x10\xe8\xa5\xbd-\
+H:\x04\x8b\x7fHn\x82\x22\xfd\xe4Hj\x99s\xce\
+\xd9\xe3\x5c\x97z?\xcf\xdb\xf8\xbf\x1c\xaf8\xfdE\xc8\
+\xfc\xfa\xc6\x90\x8d\x83\xa5\xc6b\xe6\x94\x86\xb2g\x89\x0c\
+)\xbf$\x11'\x85t0\x16\x11\xbb\xbc\x96-\x8e\xb5\
+\x00\x84\xff\xe1>@\xf7\xadw\x1f\xbf\x95\xf6\xad\xa0\xcb\
+\xa6\x06eo\xec\xe1\xb3!\x03\x12G\xa0b\x1c!}\
+\x07\xe1a\x1a\x03$)\xa4\x81\xd6\x9b\x1c\xbfW\xd3\x0a\
+\xfa\x18S\xcf\x85\xfd\xe7\x17\x09\xcc\x04\xa6\xf4\x9b\xff\xb3\
+\x8e\xfc'z\xd9\xfd\x0a\x9cT\x18\xf3\x5cU\x0f?\xff\
+\x87\xfd\x930\xc5\x81\x22\xe0\x15X\xd0o\x12\xb8\x10\x00\
+\xf4g'mK{:\x9d\x1c2\xf8\x95\x9e\x13\xff\xd0\
+\xfe\xb7\x0e\x99\xb8\x81D\xaby\xe6\x90*\x90\x82\xf4\x9d\
+\xffs\xff\x1d\xaa\xdf8+\x8aS\xcc9\xb7\xce=\x81\
+`}{\xa0\xd4\x03\xfa\xe3\xfd\xbcs`\xf5\x1et\xd7\
+\xdb\x03:\xc8L\xbd\xf1\xfc\x0c\xeb%\xd0j=\xf8\xa5\
+W\xfc\xbd\xcf\xe3\xef\xb3[\xd6\x9b]\xf2\xfc\x1b\x09b\
+\xb5P\xf8}\x9ff\xe0\x5c8\x7f\xae\xc7\xef\xc5\x09\x90\
+\xb5\x12\x08}\xcc`G@\xf8\xbdu\xb2\x7f\xed\xe7>\
+N\x5cE\xb9C\xfa{ \xdf9\x06z\xaf~G\x00\
+\xfc{\xfe\xdf\xb9\x1b\x94\xdd~h\xd0\xfbjm=\xa1\
+=o\xe7\xa6#\x00\xfc\x1f;l\xffY\x7f\xfa\xc9T\
+\x98+f\x9cG/\xbb\xce\x8e\x001\xe5-\xe3\x81J\
+\xf8\xf1\x97]\x87\xe7\xd3\x13\x15\xec,}\xd5\x11\xb1\xd6\
+\xcbz(\x0c\xd1\xb7\xce\xa7x\xa4s\xbcY?\xfaC\
+\xcb[\x92\x8aO\x97\x09\xc9\xb8\xfd\x0e\xb1\x5c\x11\x96~\
+\xcb\xfc\xff?\x122\xbf>.d\xcb$-\xec\xc0w\
+\x1c\x14A\xa8\xcb\xb7e\x8f\xec-\xe7\xf3\xf9\xe6\x90\xf9\
+\x0d\x1f0\xcb\x03s\xa3\xbfy\x1b\x9b\xb3\x90\xe1\xfd\xfa\
+\x00\x95\x8b\xca\xcc#\xb6\xc0y1\x94?\x90\x01\xfe\xb3\
+\xb7\xc0\xa7 \xc0H\xc9\x22S\xfc\x8c\xa1\xc2\x06\x92\xea\
+\xc1\x9c\xb4\xb8\xd4[\x06&:\xe1\x9e\xb2A\xcd\xf6\xff\
+\x12\x92\xbd\xc2O\xcf}:\x8c\x97\xa8\x0a\x90\xf1f \
+l\xa7\xe6\x9c`\x9c\x056DB\xba\xabW\x0d\xc2\xc1\
+\xe7\xa7\x83W\x0f\xa4C@z&\x91B\xb4q8\xc8\
+\x0c\x93\x8c\xad\x83\x86\x1d]\x80\xc7P\xb4\x0c66m\
+\xf3\x8bAA@0\xe7\x80|\x96\xe5\xb9,\xe3\x9d\xf6\
+\xaf\x0e\x99_O\x9fev\xe8v/\x99\xe5\xa5Ke\
+hI|0\xb8\xbb\xf3\x84\x0c\xf3\xb7\x13r]\xa4{\
+\xb7Y\xd7\x8f\xa3z\xe2\xc7C6\x123\xf7\xb1{\xce\
+\xee\xd9\xbb`\x97?+9\x02\xbe\xbaV\x02@\xd8\x8a\
+M4\x1d\x5cs-\xf77\xdd\xdf$\x10)\x1c\xb6\xa3\
+_9z\xd6\xd1\xb3\x86\x007\xc8\xac\x9e\x90\x09\xa3'\
+%$\xfbB\x83\xc2\x8a\xb4\xc6O\x0e\x06&\xc2\x83\xd3\
+\x87\xf1\x91\x19\xe0\x17\x040\xd2\x18\xf7\xcdD\xd77\x0f\
+\x86\xf3\xf2!\xc3A3\xae\xe8\xb2\xb3\x5cn\x80\xe2\xc5\
+~~\xc1\xd2Bq\x97h\xa1\x90HA^\x16\xf8\x91\
+@\x90\xecn\x172@;\xb3\x12=\xfd\xea\xda\x22S\
+=\xa7Y9U),\xd6\xe6'f\x05\x15iX&\
+L\x18\x08\x0e\x1fGx\xf7\xb9\x90\xa1\xf5\x82\x02\x14\x80\
+`\xcfF.\xa4\xd2\xa7GRb\xab\xcf#6\xae\xcc\
+~\x06\xd1\xcdV\x8d\xc3\xcf\x1d\x1ezx\xe8\xa0\xd0\x1e\
+\x96\x0e!\x03%@\x908\xbao\xf6\xca&\xc4\xf5p\
+f\xc8|\xfd\x0f\x0d\x19 \xd8\xff+\x13N\xbf\x90\xad\
+,\xce\x1f$\x83\xf3\xc7\xb1\xb3~z\xe8\x13\x82;]\
+(\xe7:\xab\xc0\x9f\x16\xb2\xf5\x8c\x1f\xbe\x10\xb2Ae\
+\xed\x03\x89\xa8\xe9\x15+R\xa3z\xeb.\x9a\xadD\x99\
+H\xab@\xb6W\xca\x05\xd2\x1c\xb4\x84p\x97C\x0cB\
+\x9f\xe4q\x87d\x95\x9en\x96\xfb\x11\xf47Y\xc5k\
+\x9a\x00\x87>\x13\xa8\xceI\xb1\xf9\xbf`\xad\xb4N\x0f\
+\xcci\x0e\x12P\xf4\xef\x9f\xaf\xe3\xb7\xa6S\xf3\xf7Z\
+\x9f\x9e\xb9B\xc4\xabU\xe4\xba\x99`\xb1\x7fT\xf0\xfa\
+\x180\xa4\x89\xff7+T \xc7\xf4\x16GY\xe0\x9a\
+\x0ei\x91k\xa9 ;\xbf\xde_+\x00\xb2;\xadV\
+2\xf9\x8f\xcf1c\x9f:{\xa5\xac\x02B\x8e\xecO\
+\x84l\xad/*\xa5\x85t@\xba\xa9r\x0dJ\xcda\
+\xa2\xdf\xdd\x8f\xb1t\xa6\xc7h\xc1PI`\xb09z\
+\xecE\x06F\xb8)v\x1f\x0c\xd9HW\x8b,\x11\xd9\
+jN\xe3\xa8\x00^%79^jz\x01G\xd8>\
+\x83\x14\x83\x00HD\x06\xd6z\x01wUj\x05\xe8\x1c\
+H-8yN\xaa%\xc4y\x93\xf8PQ\xd33\xef\
+|\xa8hK\x00h-R\xd9\xef\xa4M\xce\x05\xc7\xd9\
+~\xe0\xf0\xf6\x9e\xe5>\xffY\x05\x9b\x1d\xf7JO \
+7\xd5\x02\x91vT/}!\x85\x92\xeb\xa5\xc6\x1e\x0a\
+\xf4S\xffV/\xa8\xdeM\xeb\xd5\xe7\xc5s\xc0U\xd2\
+9vH\xf3r\xac`\xad\x87\x00\xfe6!\xc3y3\
+\xee\x0f\xdb?\xae\x0f\xebij\x91\x04\x85V%\xfb\xcf\
+:r8\xb5\x04\xe0>0&S\xe5:\xf5W!8\
+{a\x01\x02\x05\xeb>\x96\xff_\x0e\x19\xae\x9b\x1d\x10\
+\x80`\xff\xbf\xff\x22\xc7\xce\xe9\x96\xd0A\xc6\xd5\x13\x87\
+mlp]W')\xc3\x01\x90\xe32\xeb\x1c@\x8a\
+\xd9_\xde\x97C\xafB\xaf\xa0\x22\xb1\x0c\xc4\x9a\xad\x10\
+\xc7\x90\xdf\xda\x9f\x99(*N\x02\xf7g\x7f\xd8G\xf4\
+\xe7q8\xa0\xca\xeeA@\x99\x16\x04q$\x90\xe7'\
+K\x98\x09\xd0\x9d\x0f\x88*\x08\x9e$\xc5\xadu\xb4\xee\
+\x12\x14\xfcMzZ\xc5\xdf\xfbJl|\xb8Z\x11\xd7\
+\xfb\xf3\xc5\xcf\xe8\x89\x8d^i\xee\x81\xbf\x9f\x8f$\xe1\
+'\x9cC\xc2@`\x08\x01(\xe0\x17\x08\xdb/\xbd\x97\
+^\xe2\xc0\xfaI\x00x\xa5\x87\xb4P\x82l\xbbO\xcf\
+\xd3~\xe1g\x18\xfb\xe7\xfc\xdaW}l\x9f\xbf\xb7O\
+\x1a\x99a\xbd\x0f}\xc6\xbe\x88K:\xe2\xa1'\x00$\
+\x14\xd8\x17\xfb\xcd\xf3\x10\xe7u\xf2;\xcf\xa5#\x1dz\
+KB\xe7\x1e\xeb\xbd\xf4gf\xc5[|)\x81\xd5I\
+\x1e\x91`\x7f)\x03\xf8\x1e\xe8\xe2$\xf8\xef\xd5\x0f\x9c\
+\x7f\x07Y\xb2\x06\xf4\xa6x\x9cu\xf6\xc2\xd3\xe1\x13\xb9\
+n\x90\xa5\xa6\x93|x\xb5o\xd3\xe5\xd2\xbf\xe0\xc7'\
+Y\xf1t\xebDJ\x19?j\xca\x1c\x7f\xdb\xf5\xe3\xfe\
+\xea\xf6\xe7\xcb!\xc3:\xdag\xbd\x87\xdf\xfbX/\xe7\
+M\x5c\x97\xa4\xfc\xe57\xb0\x17\xf4\x91\xe7)a\x9dq\
+\x22\xae0\xe3\x97\xc5\xb9G\x16R\xa9\x07lc\xc8\x8c\
+\x8f2>kz\xf0,\xd1{x\xbb\x90!\xc0MV\
+\xfd%<>5!\xb9?\x92\x0a\xe6}Y\x01\xfc\x95\
+!\xe0w\x83\xa1\x1e\xfe\xba\xf28\x1b\x09\x1bE\x95\x07\
+q\xff\xbe\x90\xad\xa7\xf8\xc4\xef\x0f\x19\xd8\xadc^\xf1\
+g\x87\x96\x81ps\xde\x9f\xe3\xb4\xde\x93\x99\xc8Y\x01\
+\x1d\xbd\xd9,7]X\xedg\x99\xff\xefq!\x1b\x14\
+r\x81\x06\xff\xf2\xe6\xe0M\x9f\xcd\x8a\x9f\xde|\x86\xd1\
+F\xe6\xf8\xc8\x14\xca\xbc2\x94\x145C\xdc\xa1[\x9d\
+\xe5\xdf\x81\x05\xad\xd3\xcb\x97c\x8a\xea\xe0\x0b\xb8\xd2\xc1\
+\xac\x0a\x1eEl\xdc\x14\xe8G\xfe~\xff\xa3\xfb\x07\xed\
+\x1f4@\x9a\x13*X\xf3\xc2\xdf\x99\x10\xe2\xffX\xa1\
+O\x0c\xfc\xee\x87g\x99\x9f\xeb\xee\xf7\xd7\xca\xf0\xecv\
+~h\xf7\xa1$}\xbc\xfe\xc6\x1e\xbb@\xe0\xe7\x83\xb6\
+\xff\xe9\x90\xf9\xfbK\x87\xe4\xd8\xbc\xd9Q>\xf2\xc8\x90\
+\xf9\xfbG\xae\x90\xffBr\x08H\xee\xb8V\xd8\x0e\xff\
+_\xc8\x10x@V \x9f:\xac\x89\x9a\xfd\xd1\xfd\xd7\
+\xf7\xf3\x819z\xeb\xa3\xb7:\x1ac\xff\xae\xb8\xbf\xc2\
+\xfe\x0aCB\x84c\x10\xdc\x03\x17\x1b\x1cOS\x0c@\
+\xf2\x91\xe9E\x9d\xe56\xe9\x18\xfek\x1e\x9cs\x0f\x81\
+Y\xafdR\x90 c\x01\x01\xfd\xed\xc1\xb0\x86[\xf1\
+\xa1\xad\xc2>]3dp8C}\x5ce0\xb4\x7f\
+\xb3N\x13\xd8=o\xf7\xfc]\x04`\x97\xcc\x00\x9a\xa1\
+\xc1z-\xa0fX\xb0\xa5')\x1cr1\xf3\xe6q\
+f\x18\xe3g\x1c\x17\x05\xb0\xbbb\xc8\x96\xc8\xa9^\xeb\
+\xe6\x88N\xd7\x0fY\xd6q\x85\x88ZO$\x92\x1c \
+\x8e>\xc7\xc5y\xe7 \x80\xa8^5\x11\x14X\xcf\x19\
+\x82\xbf\x0a\x19z\xdb\xf5\x5cQ\xf8\x14!G\xb1\xb1\xe3\
+\xbb\xef\xf9.\x17\x16\xf3\xea\xe9\xcc@\xbd\x90\x05\xd8\x91\
+\x05n'\x85l\x10\xfe\x22\x93;}\xfa\xd8\xf4\xb1\x85\
+\x04k%\xd5\xc2\x9e\x0f1\xe0\xfa\xd2\x81\xde]#d\
+\x81\x02\xaf\xbd\xdb\xf7J\x124\x81e:`5\x16\xcd\
+}P\xe0\x12\x02\x1c\x0f\x81\x90@9\x03\xc6\xd9\xe0\xcd\
+2@\x85\xcfZ\x03\xfa\xe9\x0e\xbb\xdb\xecn3\x18\x00\
+\x0e\x1f.\x08\x0e\xbd\x8a\xa5\xe7\x93\x81\xc4\xf4K9\xc6\
+\x142F\xc2\x87\xbe\xa7\xf7^\x9f\xd7%#\x0f\xca\x0b\
+\xd2~\xbdl\xe5\xc8s3]<\xc7\xbd\x9e\x92\xfa]\
+E\xd94\x07\x5c*m\x9cQ9l \xdd\xa0\xa2\xc8\
+>\xedSzT\x02*\x13\x94\xe5\xf0\x80\x90\xaa\x04\xd0\
+\xdb-\x81|xU\xce\xa9f\x90\x91\xa9%\x89&\xe4\
+RA\xc1\xb3\xc2\x1dT\x84\x0b\x19a\x0f\xe4\x1a\x1by\
+A\xa99\x9e8\x0f\xee\x91\xef\x9b\xc8\x1fd^\xa6Q\
+\x94\x83\x81\x15\xbd\xcd\xaf\xaeV\x86\xab\x85\xcc\xaf\x1f\x0e\
+\x19\xc6\x88fkOU\xea\xef\xb6\x92\x00U\xa2\x017\
+\x8a\x9eks\xe0#Qy\x97\x81\x94\x94c\xa22\x0d\
+\xb9\xa3\x82\xfa{\x8b\x14\x19R\x9d#\xd3yz\xe0%\
+\x10\xe7\x90r\x9c\x8d\x9b\x13\x90e\xe0[\xfa\xd0\xdfC\
+4\xa9\xa4v\xf6\xfb^\x01V\xb9\x06I\xa7W\x05\xc0\
+\xf4\x16\xc7\xef\xebI\x82\x9a\x89\xd9\xb2G9\x96\xb8\xd6\
+!\x03\x9f\x9a\xf7\x0e\xa2n<#\x08\xb9\xb9\xf0\x1c\xd3\
+\xce\xd6n\x0c\x1c\xc4\xa1\xd6\x15v\xdd\xbea\xb7$@\
+\xf8\x13\x9e\x13D\x0dd\x01\xc4P\x221\x0aQg\xda\
+\x83\xc2\x85\x16,\x8e\xa4i\x16Y\x18\xaaDZ\xee\xdb\
+r\xf8qY\xe4\xf3\xaa\x84\x83V\x13\x8e+\xa4\x1e\xae\
+\x97\xd3\x16\xa9\xe91U\x88\x91`\xc2\x11d?%B\
+\xa4\xa6+\xb1C\xce??I\x02\xc3}ld\xaag\
+\x9bv\xa25\xe3p\x89\x90a<_\xdeg\x05\xd6\x0a\
+.\x02<\x01\xd0\xcdWdQqS\xf9j\x95\xc6c\
+HE\x05L\xf6\xa1\xd7>\x95\x85\xff\x019\xd3\xc9\xf1\
+\xf8\x99\x0d1P-k\xfe\xdf\xe7\x0bH\x9c;\x09\x9c\
+\xde\x93\x9d\xf6\xa3\x10\xb2>\xd7y\xe2\x0fy\xb5>\xf4\
+\xb4s&\x11\x80\xe4\xf5\xac\x90\xad\x85\xb4\xce\x9d\xeb\xeb\
+\x95\xfc^1n\xaf\xb8\x01\x8a+\xc0\x9c\xf8\x1e@\xd9\
+\x17\xa6\x13\xb8\xdeN\x96'\x01\xd0\x9f\xb7\xd7\xb4'\x85\
+ \xb2\xff\xe9?\xeb\xe7\xef\xe9)\x09i\x15gz\xca\
+\xef\xf9\xff\xaeG`\xd8\xb9\x09:R\x81\xbd\xf4\xb9}\
+\xca@O\x04x\x9f\x0d!\xb2\xee\xb7\xf3g\xc2\xbas\
+!I\xc45\xa4d\xed\xef)\xff.\x0b\x08\xb3\x17\xb7\
+\x22\x10$\xd0p:\x9c\xb5\xfa+\xf3\xff\xae\xfa\xdf\xff\
+\xf7\x04\xf0%3\xce:\xe4\xfe>+\xe3\xad/\xe5y\
+\x13\x7fu\x0e\x08\xad\x95\xae\xef<\xe9'\xe0v\xb9t\
+\xc8`\x7f:\xb9\x9e\x9f\xa7\xdd\xd0:[\xeb\x8d\xeb\x88\
+=;m\x9d\xd6\xb2\xb4\xc2\xbfj\x98\x02\x04\x19\x86\xc3\
+\xa5#\xbc}^'i\xef\x5c\x16\xceAGbd\xe0\
+\x7f\xb8q\xc8\xf6\xbc\x8d\xf9\xab\xc45\xbf\x86\xfe\x93\x08\
+\x80P\x804\xcc\xf8\xed\xc8B\xe2w\x9baNzl\
+\xcb\x8fm\x0b\xb7@\x0c_=T\xde\x05\xc4af\xde\
+\x98\x8a\xf4Y\xe9\xd0^!\xc9\xc4.7T\xccA\xc0\
+e\xa8\x22\x8c\xbap\x06dwJ\x85\xf1\x96\xc1QN\
+\xc8\xff\xfe\xc2\xb3\x9c2\xf4H')\xa0\x8a\xf5\x89\x0f\
+\x9b\xe5\xe1\xc3\x81\xd0;\x14P\xba\xe0\x22x\xc5,\xb3\
+\xc3\xb3\x7f\xc6,O_\xc6c],\x02\xc2\x82X\xaa\
+\xa8\xc9l'\xeb7\x96\xe4\xe97B\x06E\x05\xe2\x85\
+mY+C\xb6,T\x80\xce\x91\xf0\xe0=p\x1c\x00\
+\x14'\xc5\x84\xe4\xe9\x11k\x05\xbe\x14U\x92\xa1UE\
+I\xa6<\xd7\x15\x84\xa8\xc6\xb8`qM\x88\x07$\xc7\
+~Z\xf7\xd7\xfew\xf7\xbf\xb3\xff\x9d\xad\x12\xa9W|\
+\x09\xc3\xdf\x9b\x90\xee9\x00\xdf\xbd9d~\xfd\xa3\xa8\
+\xfd\xcf\xeb\xfc\x9b!\xf3\xebgB\xe6\x9f\xffL\xc8\x86\
+X\xd8\xdfh\x7f\xc3\xfd\xbc^\xfbk\xef\xaf\xb3\xbf\xce\
+f\xc8v/\x0f\x19*\xd9Z7lh\x15\xa8\x0c\xd0\
+\x90\xb5\xcdN\xd1\x12h\x0a\xcc\xf6_\x0c\xd9\xe6`\xd7\
+\xba\xe4\xf8:\xc8\x86\xe5\xf9^4\x13F\xff;\x0d\xf3\
+M\x87^\xe0\x9c#]\x06\x93\xc2\xe4\x08z.\x0e\x0c\
+\xe8\xbe\x80\xea\x94%\x84\xd9\xc8)\xbf\xb6\xa8\xb4J\x1c\
+,dbw\x1dC\x5c\xf9O\x00\x00 \x00IDA\
+T\xa6\x0eph\xd3\x913\x16\x13\x04\xb3\xa0\xf6/K\
+2,\x15P\x86\xd4sW9\xf2\xea+\xc9\xff\x82\xf3\
+=X\xdf\xb5>PP\x87\xab\xac\xf3\xe0\xf7\xb7\x0a\xd9\
+*\xd7*\xd5\xd3{\xa6wO\xef^*U\xcb\xfe\xab\
+}\x01\xea\x0f\x12x\xfb<\xc7\xd7\xcd\x04\x8b@\x077\
+\x82\x16\x06H\x08\x8eG\x87p\xa9|f\x05\xea\xf0\xb9\
+\x90%\xe1\xb1N\x0f\x10\xa0rP~3\xc7M\xfd]\
+Vh\xb0]\xab\xc8K\x0c\xddt%-\xac)\x16\x12\
+]\xd9\xf3\x8c\xbd\xbd\x02\xa2t\xb0\x04\xac\xd8\xd5%\x08\
+\xab\xe2vF\xcdO^\x1cj\x95\xe8\x82|\xf5^\xde\
++&\x99\xd5\x17\xb3R\xc2a\xe7 0\xc4\xf4\x02N\
+\x11?\xf7\xbc\xe93\x95\xfeLh\x1c\xfee\xfd\xfc\x82\
+\xfa%\x19MM\x17Q\xe90n0[r\x8a\x05Z\
+\xe5\x8e\xa1Gr\x05\xca\xed<\x80\x9a_\x22\x0d\xc8\xe7\
+\xf2zr_V\xe5Zf\xf9z\xd3u\x17\xd6h\xff\
+\xaf\xc2\x9bz\xb0\x12\x99\x1cY\x8e\xdd_6\xa8\xb7\x8c\
+\xbcW\x15\x17\x89B\xfb\xc9zI\x98\xd0'\xa9\x8f*\
+ \xe4\xb8t2\x1d\xd0\xbd\x9c*RvIE\xce~\
+\x15\xa8\xaa\x9c\x1a\xff\xfa\xdf\xeb\xfb\x98\x22c\x0e|9\
+\xee>\xd7\xfe\xe0H\xd0\x83\x99P\x99\xb5\xd5B\x8ez\
+8\x12\xac%\x8ba^\x1c\x08\x01`\xb1\xf4\xab\xec\xbf\
+!d\xd3\x83*\xa8ZN\xa6\xe4\x02\x99\xbe\x162\xb0\
+\xa7\x9b#\x9f\xe4Du^\xcc\xfd\x96\xb84]!\x13\
+\xfd\x87\x8b\x84l\xd0\xffr\xe8!\x80ZkN\x052\
+\xf4\x1e\x88\xa2\xfd\xd0\xf5\xbe\x0a\x96\x1e\x7f\xdc\x08\xc6\x07\
+\x22\xd9\xb3\x0f\x9c\x0bH\xa2<\xef\xc6\x19\xd5\xf9\x81\x98\
+@\xc6\xc4\x1e\xd3\xeb\x10\x1e\xa0\xef\x12$\xc8\xd32A\
+r\x0c\x02Q@\x98\xad!U1\x95H\xd4\xc2\x80#\
+\x087P\xee\x13H\x12\x89\xa0J\xb0(\x10\xb0K\xec\
+\x10d\x9fu\xd4\x13\x0f\x11HO\x19\xbb\xab%@\xeb\
+R&\x84:\x22\xa2\x10\x00\xc9\x0dP\xa4\x99\xc66#\
+E\x16\xe0\xe0\x8ap\x7f\xf4\x06?\xca\xba\x0b\x90\x92<\
+UA\xa4\xfc\x91L8h\x11+\xe4\x8a\x04\x94s\xc3\
+\xbf\xe4\x10\xb3\x07\x12yH\xb8\xec;\xe7\xacW@%\
+\xa8\xad\xaf\xeb\xb4\x8e\x12&\xc9\x89P\xe7\x97}K\xee\
+\x87c\x02D\x05\x1f\xfb\xca\xf9\xa1\x9f$\xe8\xe9\x0f_\
+\xf6\xaf\x00\xc8>\xa6\xaf\xfc\x1e'D\x9b6R\x01\x83\
+W\xfb\x99\x1e\xe4\xf0+<u\x8e\x9b\x1e\xd8\xaa@\x0b\
+8\xfc\xbc\x93\x0dZ\xbf\xbe>\xf6\xa7\xca>{\xe7<\
+H\xe0\xf1g%\xf6\x90WBFx\xee\xbd\x92\xdf\xd9\
+\xe3\xe9e\xaf}\x9c\x22n\xa7\xce\x11\xd0\xc7\x16\xf6\xe7\
+i\xbf\xd8\xef^U\xda\x8d\xab\xb5~}\xec\x9f\xbf\xef\
+\xec\xf2\x12\x1fZ\xbf\xe8E\xfb\xd9~\xed\x01\xbe\x04@\
+\x9f\x1a\xc0\xbe\xa7\xdfTz\xb1\x07\xfa\xbd\x22\x7f\x1c\x12\
+\xc4\xc3\xc73P=W\x8e\xa9;OrJ\x9dX\xfb\
+\x8c\x7f\x03\xd1\xb6\x16>\xb4\xf0\xd8'\x90!\xf4\xbc)\
+\x18\x90\x0e\xc6\x1b\xb3\xbf\xd6Q\x22M\xa5\x7fj\x5c\x00\
+\xde\xb7\xf7\xce\x1f\x8f\x0b\xc04%H\xea/d\xc2V\
+\xabX\xdeg\xb5\x1et.\x06\x89\x11\xfe\x91\xeb\xb5\xfe\
+\x0aAy\x9f5m\xaesW\x89\x17:\xb9\xa2\xf3\xea\
+\x1c9W\xf4W\x9f\xce\xd0Y\xfe\x13\x89\xabU\xfap\
+\xcd\x90\x0d\x89V\x88%\xad}\xe2o-\xa6\xa9W\x8b\
+C/\xf7\xf1\x11=d\xfb\xf7\x87\x0c\xbdV\x14J|\
+\xec\xffk\xecM\xc0u\x1d\xcb\xf7\xff\xf5\xbck\x99\xa7\
+m(c$C\xf4\x8dH\x86\x92\xa1P\xca\xd0@\x19\
+JI#\xa1P\xa4Y\x92\x8aJ\xbe\xe6\xa9Yd\xac\
+Dd*)\xbed(d\xc8\x14\xed\x22\xe36\xech\
+\xaf\xe7\xf9\xdd\xd7}\x9f\x9f\xeb\xbe\xd7\xb5\xec\xe3\xff\xdf\
+\xd7\xe1x\x8f\xb5\xbc\xeb}\x9f\xe7~\xee\xe1\x1a\xce\xeb\
+<7n\x1c\x11\xab,o,=\xe2\x0f6:\xa0\xe6\
+h\xef\xd4@\x82-_\xb1\x97\xe4Zv\x96#\xf8\xb3\
+Z\x81\x02\x0a\xed\xba\x8a['{\xb32d\xb75\x90\
+[*yfC#[\x22V\xf6\xee\x12\xb3\x9a)\xcf\
+\x95\xd7\xcf\xa7\x8f}_\xb2\xf7\xa7\xfb\xfaz\xb2\xc3s\
+E\xef\x01\x83\xa2\xe7\xe3l\xa7\xa6'\xd4*\xa4\xe9\xe7\
+\xfeJ\xb3z\x10\x8f\x8e4K\x7fw\xa3z\xb2\xf5\xf9\
+\xdd[\xcd\x9a\x8a,\x19|\x1e0\x07\x0a\x07\x19\x0b\x03\
+\x92\x19\xd8\xa7a\xf9d\x83\x12\xa7@\x0a\xdb\x0b\xc9\x10\
+\xd0: \x9b_\x12\xb9 \x19p*\x92l(8\x96\
+\xea%\x84\xfd\xba\xdf\xb7\xdf\xa7\xdf\xa79\xc0\xf9>*\
+\xbc&\xfb\x92\x02\xbe\xd1\xbf\xcd\xd2\xeb\x07\xad\x99#\xcd\
+\xcb\xd7\x99\xa5\xd7\x7f\x98\xa5\xdf/jV{\x0a\xfb\xd7\
+\x9b\xe5\x89\x98\xc9\xa1\xfa\x9f\xf5g\xf5g5r\x7fT\
+\x9eaG\xfec\xa9t{\x85\x9f\x0d\x8a\xeb\x17\x84n\
+\xf2z\xb3\x5c\x19\xc8\x99\xb8\xfe\xa5f\x99m\xbf\xf4h\
+?+(\x0d\x99,\xab\xbc\xac\x9fY\xe8\x935\xec\xd7\
+\xc6u\xbd\xbb\x16\xda<ME\xd5\x8eS2\xea\xe3/\
+\xc0j\x0a+1\xc7 \x07\xa9Ze\xf2q4\xbb\xb4\
+d\xe4\x9e\xcd\xe4nfG\x8e\xcf3\xf7\xe4\x0cA\xf4\
+\xcf\xa8\x9c\x06\x19\xba\xbcRm\xc1\x80]\xbe\xfb\xa7Y\
+\xb3\x01\xb0\xe1 \xff\xc6\x86@%\x9d\x1eI6v\x91\
+(\xe20\xd3\x1b9\xbcCr\x1fd\xcai9\x10\xd9\
+\xa5\x93\x1a\x8a\xcc\xce7\xbcW\x09\xca\x08t\x92\x0a\xd4\
+\x16r4U\xb9v\x07\xf3\xf0R\xc9\xc9L\x0b\xf76\
+\x8e\x93\xd6Q:\xee\x0b\xc9\xd2\xfb\xd4\xa3J\xe2\x0dG\
+\x97\x1e\x5c6B\x900$\x0c\x90\xa3\x02Z\xc5\xc6)\
+\xc7\xddY\xdc\xd5\x03\xeb\x08\x94\xbft\x7f\xee\xac2w\
+U\xf7\xbb\xceZ\x92\x14Hv\xab\xebs`\xdb\xd5\x81\
+\x0aD\xcb{\xe5\x91i\x03\x99\xc4:\x1e\x9b\x96\xa1.\
+\x81\xc3eB\x04(\x10r\xc4\x14\x8e\x0c\xcf\x91\xcf\xa3\
+'\x94\xe7\x8d#G\xc5\x18R\xbc\x95\xa4\x17\xffU\xf5\
+TS\x09\xe6\xf9\xb3\x9eE\x06\xe6\xadC$\x92p\xa4\
+A\xb0\xb0\xaf3\xdf\xa8\xf0\xe3@\x11p\xdc\xaa\x96\xad\
+\xdf\x8a\xd5\x1b\x88?\x8e-\x0e\xce\xaf-4n*a\
+\xb15\xe4%r\x94q\x98\xa9\x1c\xdc\xa7\xf9\x82\xda\x08\
+\x95W*\xac\xb4<\xe1\xe8sP\x93H\xe0\x80\xc5\xc1\
+\xe5\x95y\x84\xa3\xcdsc\xbeA\xaa\xb6\x9c\xf6g*\
+!\xc8<\xcet\xb6\xf5\x92\xf9?M\x09\xdf\xad\xcaz\
+\xf1\x04\xc8b%1\xec\x08\x00\xf6\x09*\xbb\xac\x1f\x1c\
+4\xceI\x91\xec\x0e\x0b\x0f\x8b\x0c\x8b4\x09\xee\xc3\xc4\
+\xb2/\xb2G\xcf\xec\x93\xd1\x87\xeb\x06\xce\x00A\xa43\
+\x99\xa8\xb5\xac\x5cj\xd6 \xdc4\xbf \xfd1\x8d\x88\
+\xac\x12\x81c\xc9\xb8\x800\xe0yJ\xf6\xd5\xe7\x11\x81\
+\xbf\x02O\x87\xc0C\x86\x17\x13\x1d8\x9a8>3\xa7\
+:\x5c\xde:\xc3\xbeOb\x89D\x91\xc8\x94\xfc\x9cg\
+~\xf3y\xb4\x82\xfd\xaa\xb4\xa48\x12\x81u\xc6\xb9K\
+\x22\x8b\xf3\x99y\xc9\xbc\xa0\x22\xad\xd6)\x02\xfa\xf4\x5c\
+\x925\x5c/\x04\x9e\xb4\xfe\xa0b\xc3\xf81>\x04\xd8\
+TN!\xb3\x03\x99\x22\xb2FG\xfc\xe0\xc0\xf39\x8c\
+\x13\xe3\xc9|\x22P\xe2}\x04X\xf4Z\xc3%A\xab\
+\x82\xb8s\x5c\xe6\x92\x044\x88A\xf5\xfa\xc3y\xe2-\
+^$\xd6\xa5\x02\xe4$\x98\xecS\x90\x10\x92\xd8\xd3:\
+\xf5V\x0fz\xcb\xe1\xc0\xc1\xcf\x01\xf1D\xc0\x05'\x04\
+\xad\x89\xf2S\x86\xd5\xcc*\xe2\xd3\x9f\x1b\xe72jN\
+$\xc6x\xbe\x04\x00\xecK\x04\x18\x9cSp:\xf1\xbc\
+iiA\x1d\x88\x04\x10~\x1b\x01+\x89I\x02|\x02\
+U8A\xd0g\x87\xbb\x01\x04\x07\x15A\x02w*\xd6\
+\xf8{<w\xce\x03\xceC\xe6\xb9\x1cvOx\x93\x18\
+\x9a\x9b\xcc3\xf3\x85\xef\x07q\xc8:\xc0/e\x1c\xb9\
+nZ\xab\xf4\xaf[\xd6\xac\xe9Mg=\xd3JB\xe2\
+\x9b\xdf\xb3\xde\xb8\x0e\xd63\xfbu\x94]\xe4}\x9c\x0b\
+sK\x00DV\xff\xd8\xcbM@\xc8\xcf\x91\x0b\x80\xef\
+\xc1O\xe0}Q\xe6/V\xcaI`=l\xd6\x04\x84\
+\xcc\x7f\x0av\x8cc\x0c\xbc\xb9o*\xdbT\xfc\x83\xaa\
+\x89\xbf/\x92\xf3\xb1o\xf2\xf9\xecS \x8f\x08\xbc\xf1\
+\x9b\xf9\xff\xbcF\x84T\xe4>\xf8\x97\xfcG\xee\x8f\xe7\
+\xa5\xca\xfcp\xbb\xe4\xedF\x81L\x8e\x02\x07\xeb\x8c\xfb\
+\x88H\x0b\xae?\x92\x92\xf3\xbc\xea9P\xc6q\xd1\x10\
+(\xf3\xfc\x9e\x0dj\x00Q&/\xb6\x14\xf0}$.\
+\xb8\xdeYZOpa-\xec,\xff\xc5\x8f\x98\x1d\xe6\
+\x05\xd7\xc9\xbcc\xdd0\xdf\xd9\x17\xb6+\x05\xa6\xb1w\
+\x15r`\x9fG\x90\xf6\xc6\x84\x1c\x81<\xfe\x07\xf7\xc9\
+u2N\xb1u\x22&\x04XoB\x1e9\x82\x14\x12\
+X\x9d\xc7N\x22\xcc:c\x7f\xc7\xef$1\xa0q\x9f\
+ph\xa2\xa0\xcb\x9e!\xc0\x11T\xa69\x07*3u\
+\xb0\x1d\xdc\xb07\x1f\xa4^\xde>w\x85\xd6\xca8=\
+J\x96\x11>L\xad\x02\x1fk\x0ePn\x90\x89C\x0f\
+\x95\x0242\xf8\xfdo\xccjE\xcbY\x89O*d\
+N\xa3\xd3\x92\x9dZ+G\xfd\x91\xc9\x8eH\xaf\xcf&\
+\x9b\xad\xc0zo\xc9\x18\x1eP\x03\xa4\xfe\x163\xb18\
+Z/\xfc\xa6fMf\x1e\xa8\x1b\xe4\x7f&k\xb8S\
+\xa3_\x0diN$\x95a\xc1\xd1\xa3M\xcf-rT\
+@\x9c\x97\x1f\x96\x1b\x96\xcb\x99\xf2\x02M\x07:\x0b\xe4\
+\xf19AR\xe8A\x99!6wH\xd6\x94\xe9\x19f\
+\x0a\x0a\xfa6\xb3\xea\xa8\xf5'\x98\xd5\x1e\x19\xbf~2\
+\xe8d\xf2\xaf\xec\xae0\xe8u\xf7\xa7\xee\xc6.\x05.\
+\xa3\x1f\x8aDj\x09\xb3\x9c`\xc9djY\x8cq\xb3\
+\xfa<&\xb73K\x9f\xbfl\xb9\x0f\xd8\x9b3gD\
+\xa3\x02A\xe5\xaa{\xc4\xac\xb9\x7f*\xfe8\x0a\x0al\
+q\x90'\xd71K?\x7f\xc0,'\x18\xce\xecm\xbe\
+\xbd\xdf,\xfd\xfc\x05\xb3\xa6\x22E\xe6\xcd\xd2E\xe7)\
+\x81tx\xb3\x81\xb3\x10\xad\x0e\xf7\xa3\xe6`\x00\xc2n\
+\xee\xc6Z\xf5s\xbc\x97\x1dH\xf4\xbd\x19L]*\xb3\
+\xe6\x88\x7fz\xf8tv4\xd2\xf1<lT\xe7Cw\
+y\xb2+*4mtS\xb2\x9b\xc5\x16\x9f>g\xf4\
+b\xb3\xfc\xbeL\xe64\xdau\xb4\xcbh\x97\xa6\x02~\
+R!\xc7\xf3L!\x0e\x0d\x07\xa9*=^Yf\xc3\
+\xba\xaelP\xfd7EJwq\x81p\x02-\xee\xf6\
+5K\xafk\x9b5PjZ\x11\xa2\xbe9z\xd6\x82\
+<\xbb\x1c\x1e\xfb\x02\xe3\xf2f\x91P\xee[z\x92r\
+bp\x8ff\xc3_\xa7\xcck\xaf\xfc\xabg\x8e\x0a\xbe\
+#!jOr\xa9\x10\xf0|v+\xdc\x0a\x1e\xa8\x03\
+\x19\x03\x82+.\x80\xe1\xadf\xb5\x95dt\x8cY\x0e\
+\xf8\x8acw\x80*\xa7;\x8a,\xeeMf\x8d\x8c\xa0\
+6\xe84*E\xa6\xcf\x9e\xa3\xa9O\xecnV{:\
+\x87\xa7\x86Y\xc3\xac&#\x0c{6\x01\xea7\x14\xa0\
+@\xb2\xc8\xfc\x02\x19A&vi\xb3\xe9$M^9\
+\xa1Ei\xc5B:HE\x96}\xcc\xb9<p\xa8G\
+:(\xee\xd0z\x02\x09\x80C\x88\xc3E\x22\x80\xdeW\
+\xc9>\xba\xa3\xab\x0a\xa7\x93\x9d\xe2\x18i\xbfu\xc4Q\
+\xe8as\x1dj\x1co\x90\x1d\x04\xfe \x0a\xc6]u\
+\xa1TXnV\xef(\x95\x7f\x12\x11\x91\x05\x99s\x82\
+\x0a\x0b\x99z\xd6u\xd4\x8d\x86\xecG\x01\x89s#\xd0\
+\xdaE\x82\x81}\x83}H\x90d\xbf\x0eA\xdb\x9dl\
+\x8d\xca\x22\x15\xd7\x7f\x9b\xa5\xcf\xff\xa4Y\xad\x98z\x00\
+\x83\x83@\xc5\xf6s\x82\x88\x03\xd9E\xe5D\xa4a\xae\
+#-\x87\xa7\xdb\xdc\xacrT\x10\x88z \xc6\xbc\xa4\
+\x95\x85\x96\x82\xfd\xcd\x9a\x84\x04\x01}\x90w\xf4@\x8f\
+\xf3\x0aG\x97\xdek8\x10X\xff\x90#\xe2\xe8\xe0\xc0\
+0\x1f\xf8{z+\x094`\x09\xa7\xb7\x9b\x00\x8bV\
+\x0b\xd8\x90\xe12a\x1f\xa4r\xc7x\x8b\x84sX\xd9\
+\xac\xb9N\x1c%\xedO\xec\x07\xeeW\x90\xf8!Q\xc4\
+\xf5 \xbf\xc78(\x01\xec\x08\x0bT>\xbeh\xd6 \
+EX\xcfT\x92\xb9\x7f\xbe\x8fy\xcb\xff\xa7R$\xe4\
+\x8f\xcb:~\xd9\xac\xa9\xdc\xf2w8\xa4\xf4\x1a\xa3\x8e\
+\x80\xc3Ja\x04H=\x88\x22\xce\x03 \xa1@\xdeQ\
+\x05 Q\xc7:\x92\xbf\xe0\xd0R\xd6\xd9.\xd9j\x80\
+A\xa0\x16Z#=\x11\xc1~O\x22\x01\xf9I\x102\
+T<qt\x19?%,\x5cn\x91y\x0arI=\
+\xfe\xce1\xc0\xba\xe7\xf3\x08\x9cc\x22\x85\x04\xb4\x10\x0e\
+\x9e`\x84\xabA\x9c=.c\x0aW\x03\x01\x1c2\x85\
+|.=\xf6\x5c\x07\xfbN\xfc>\x91\xacz\x02\x80y\
+\xc9\xfag\xde\xb1\x1f\xf3\x1cX\x97$8\x1fw\x88\xf6\
+\xd4\x96Q\xfc\xe6\xc8\x92\xce\xf7\x83L\x89$\x85\x91\xb5\
+\x9f\xc4\x16\xeb\x8e\x966ZH\x08TY\x0fRK\xe8\
+\xd61k\xf6Y*\x8cT\xcc\x090\xe3\xba`^\xb1\
+\x1f\x92\xd8 \xd0\x8a\xff\xe2\xfd\x11\x00\xf2y-\xa9\xf3\
+s/\x90\x00\x88\xaa\x1f\x01\x02\xefH\xba\x90\x00\xf0V\
+M~\x8e\x15t\xe6[L \xa0N\xc38\x82l\x0a\
+\xe7\x91\x07\xe8\x11\x92O\xeb*\x09\x98\xa8.\xc0>\x18\
+\xc9\x0dy\x1f\x812\xfb/\x09\xb1\x07\xc3\xe7\xce\xd4\xf7\
+\xe9\xf7\x0d\xfb\x7f\x19/\x12\x00\x8c?\xfb<q\x0e\xd7\
+_!\xf7\xe5\xf91\x0e\xfc\x1d\xf3\x22\xc8\xc0\xfa\xbe\x06\
+\xa2\x99\xfb\x7fZ\xef#\x01\xc0\xfc\xe7\xefk\x22\xb8\xfc\
+\xfdlg\xfd/\xd7\xbb\x90\xd6I\x95\xaf\xe4}S\xd6\
+G#78\x95Sd\xa6\x937\x96\xf1f\x1eQ \
+\x84\x8c\x14\x92n8}\xd8\x87A\xda\xc1\x1dG\x01 \
+\x06\xfe\x0b\x04\xf5\xac\xff\xaf\x04\x00\xe3\xce+\x7fO\x8b\
+\xd8a\xd9\xbc\xb0\x0a\xf2\xdb\x1a:sK'\xcf\x83\xc4\
+\x01\x89\x00\x9d\x93\x138\xe2\xf9r\xe6o\x1c\x106b\
+\xfb\xb3M\x1a\xb6i;\x16vn\xe4S\x18\x98\xa7\xcd\
+\x9a^l\x0bO\xae\x15\xd4\xe8\xd6fa1\xa1\xc5\x05\
+\xe0\x0b\x86\xdelz.,\x00\xb9\xaa\xf9\x5c\xdd\xb8\x93\
+\xbc\x09\xca\xd8\xcfc\xa6\x0c\x8c=\x88\x14\x8ef\xbd\xec\
+\x8bs\x08Td\xe9\xac\x15\xe0\xeed\x96\xe0\xd8Z\xac\
+\xd5\xdf\xcd66z*\xd9\xac\xda\xd2\x00\xd4\xda\x98\x0f\
+2\xf7\xc1\xbaV#o\xc8\x17b/8\x0b\x0e\x087\
+\x13\x0d\xe8\xa0X\xa6\xbdB{\x91\xc6Q\xdf\xef\x81\x1c\
+\xe3B\xc6\x06\xf2\xaeJ^U*\xe7\xda\xb8\xfb\xb7\xf5\
+\xdb\xf7\xe9 \xea\x8f\xee\xbf\xdb\x7f\xb7\x09@N\x11\xf9\
+\xdb\xcfT\x89\x90\x8c\x15\x19!\x10\x1e\xddl\xb3\x1c\xf0\
+\xff\xd8\x02~\xd7gf\xe2\xaaRA\x02\xa2?\xdf,\
+\xbd~\xd0,\xbd>b\x96!\xd49\xb11:it\
+\xe2\xe8\xc4,\x1f\x97I\xecF[\x9b5l\xb8\x97\xbb\
+\x8ep\xa9\xf0\x12\xf0\x9d^*\xf6\xce\xe2\x0f\xf4\xff\x91\
+\xfe\xdf}\xda`\xfb-\x0a\x84\x9d\x0aV~\x8ew\xab\
+\xe7\xcb*\xdbK%[\xb2\xd9H\x98\xf0$h\x8c\x0a\
+\xed\x13\x8dcen\xe4\xaf\x9b\x9e\x9e}\xcc\xe4(\xbf\
+Z\x19\xb2\xad\x1b\x8e\x0bT,8\x10Q\x9f\xe0`\xb6\
+0\xf8\xe3Uv+\x07\x8e\xe9>G\xb3\xcdj\xc5}\
+|\xad\xf1\xb5\xc7S\xe0\xdd\xddn\x96\xfe\xff:\xa3u\
+G\xeb6\xdc\x04\xef\x10\xab>\x1bN\xdb\x8a\xb0@\xb3\
+\xc1s\xd0\xc2\xee,2\x10w\xb4\xd5R\xe2\x09\x18%\
+\xf4\xba\x93\xcc\x9a\xdeyX\xfb\xa9\x84+\x01\x03\x94\xd8\
+\x03\xa2\x97\x97V\x02O|i\xdez\xcf\xab\xe6\xd5\xb0\
+\xa7\x02$\x12\x15\xacweZ\xc9\x88\xbbn\xbd\xd8\xc4\
+\x87\xff\x166Tg3_d*\xf2\x01\x07\xb2_\xd6\
+,\xfd\xfa\x03fuc\xed\xd75kd\x0c\x15\xb0;\
+{?\x19t*\xa7d\x8aW\x91c3\xab\x04\xf4@\
+\xc5\xba\x1b\xcc\x9a\x8a+\xbd\xe88\xaa?T\xcb\x08\x09\
+\x00*\xb8\x04\x9c\xc7\x89\xfc\x94\xca\x98zY\xbd\xf2\x07\
+\x8b5\x15N\x1cI\x12\x88\xd2i\xa7Be\x0c\x1e\x99\
+\xc3\x03\xb6\xf9\xab\xcd\x9a@\x10G\xb2\xf6\xc4\xa1\x93\x0e\
+y_A2\x90\x11\xe6\x00\xe0\xc0\x9fO\x07\x90\x12F\
+\xee\xb8*\x00@\x16o\xec\xfdr\x98\x85\xe8H\xbbh\
+a\x13\xe7{qp\x08\x0c\x8cl\xf5\xe4f\xfe\x92\xe9\
+\xe7~q<h\xcd!\xd1U!\x92\xb4\x00\x94y\x08\
+9#=\xa4\xac\x8f\xca\xb1R\xe6\xb5\x0ev\x87nB\
+\xf2\x88.;2\x7f\xdf6kz\xe3p\x90A\xa0\xd0\
+R\xc6\xf8Q\xe9%\x00<:\xdb\xd8\xd8!\xd9<!\
+\xeb\x09p\x12\x00@X\xaf\x97\xaa\x83T\x19\x5c\x9e\x8b\
+s@\xf7\x81\x8c\x22\xfbD\xe6\xb4\xb9\xad\x09T\xe9\xb5\
+FfuN\xe1D\xf1\xc4\xe0\x0e\xd9j`\x0d2L\
+\xdf\xeb\x10v\x12TT@\x81F\xe3\x10\x81\xcc\xc1\x91\
+\xe6\x5c'p\x07\xe9\x83CEO>:\xf4\xe2|q\
+\xc80\x15\x14\x1ce\xee\x9fJ\x86z\xc2=\x80\xa6%\
+@\x95~\xef\xa9\xdf\xde\xac\x06\xfe\xce=\xc1\xfc\xa15\
+\x89@\x85\xf5\xc79\xcb\xfc\xa3b-.\x1c\x1f'\x91\
+\x22B\xf24,f\xd6T~!e[B\x01\x17\x81\
+5\xc8@\x1c3\x90\x8dT\xe6q\xd4\x18g\x02\xd8\xc0\
+r\xef\xf3\x5c2\xbb~\xfe\xb3\xbe(\xbc\x04\xa8\xbd\xab\
+.p\xce\xc3\xbd@\x85\x18n\x0d\x12u$\xb2\x98\xf7\
+\x04\x14\x04&\x8c'\xeb\x94\x80\x92\xde\xfc\x8f\x9a5\x81\
+\x00\x10o\xc80\xf9^\x12\xb5\xb4P\xf0{\x12\x83@\
+\xc9\xb5\x8e\xbc\xc2\xaf\x8a<rU\xf4\xb6;\xf9f\x84\
+N3\xaf@ \xe8~\xbb\x97\x985\xfb\xb8\xc6\xdf\xfd\
+W\x1cg\x02w\xfc7\x0a%\x04<*4\xf8\xfa\xa3\
+E\x8e\x04/\xfb&~Al=a\xdd\xf0\x1a\xe5\xa6\
+IxS\xb9\x07\x01\x12\xd9\xd9#\xf4\x99\x84\x0f\x01\x15\
+\xcf\x8d\xf7Q\x89d\xdfg>Eu\x0d~\xc6\xcf\xe0\
+\x1c\x09\x81\x1d\x85\x03'Gf\xfd\xf29\xf8\xa1\xec#\
+\x04rT\x8e\xb9\x8f\xc8\x01\xc0\xba\x9c\x9b\x8c\x5cH\x88\
+\xf9+\xff?\x06JA-\xc1\xc9\xfa\xb8N\x12\xbc\x91\
+\x5c4\xb6\x02\xc4\x0a=\xd7\xc18\x81\xccd\x9f\x06\x99\
+\xcbs\xe6_L\x90\xf2JB\x02n\x01\xfc?\xde\xcf\
+\xf3\x8a-\x10\x8c+\x89\x88\xa7<\x80.\xf3\xe8q%\
+\x0e)\x98\xdc\xa9D\x16\x81/\xf7Eb\xc1\xa1 \x8a\
+k\x80\xe6\x93\xb0\xc7/#!\xc6u\x90\xb0b\xbc\x98\
+\x97Q\xe7\x9ey\x19\xf6\xa3t\xd6\x97\xfbe><\x13\
+X\xfbg\x07D@d\xfd\x9f\xdf\xa1\xf5S\xd5\x06\xe6\
+\x960b~\xd5V\x90\xf2\xfb'\x02w\x07\x1c_\xb7\
+\x9a5H\xbbY\xdd\x93\xdd\x93M\x22\x10\xff\x81\x04#\
+q\x05\x08Y\xee\x97D@$\xfb\x8b\xec\xfd\x8c\xff\xe0\
+,y\xe5\x1f\xf7E\x81R~\xc2\xb0\x9eY\xe54!\
+Q\xcf>\xec\xe70\xeb\x0c.\x17%X'\x1c\xba@\
+\xe5\x02Y\xa0Gs\x97\xb5o \xd9A\xbe\xaf\xca{\
+\xf5\x8b\x9b5\xec\xb8\xd6\x8b\xd8\xf6\xcc\xcf\xcaC\xeb:\
+\xb9^\xd1\xb2L\xf3k\x1bY\x02s\xc8>\xdc$\x02\
+\xd0C6\xf2\x9d\xcf6=+\xb0/\xbf\xba\x04\xe4\x19\
+\x09\x90\x1c\xa6~\xbfd\xfb\xeb\xc0\xd8L\x07\xe7Y\x0d\
+\x04\x0fd\x02\xfa\xd0\xd6k\xff\xb94\x0fnNvS\
+\x86\xbc'K\xaf\x0f%{X\x8e\x95]\xe7e\x05\x9a\
+\xd5\xdd\xa1\x03\x9f\x07\x13!J\xbc\xf2\x80\xe9\xc9\x13\x94\
+\xad;\xce\xacB\xe1\x988\x04L\xe9\xb7\xbb\x0e\xbb6\
+\x0e\x04\x9c\x02,p\x02\x11\x91=\xf9\x82\xe0\x80\x01b\
+dH\x87\xbd\xe4x\x9f\xd2\x04x\x90\x01Y\x05kO\
+\xf5\x88\xce\xc9\xec\xfb\xc9\xd2\xeb\x8df\xb5\x02\x92[&\
+\xbe\xde8d3D\x0a\x03\xe9\xd4\xcb\x87\xd5\x87\xd5s\
+\x22&\xf7X\xbb\xae\xe4]f\xe9\xf3\xce\x1b\x9d?:\
+\xbfV\xae\x1c\xb2\xf9\x8a\x02\xd1w\xb6e\xd8\xcb\xe9%\
+\x94\x834\xbc\xc5,\xbd\xae?\xbcfxM\x130F\
+\x9dT\x12e\xb0\xdbSa\x86LP\xe4i\xddif\
+\xb5\xa2\x949*^\xd6l\xe8\x1c\xf8$~H(P\
+\xc1\xb2yy\x85z\xe4\xee\xd6\x866[\x0e\xe1\xb6\xe9\
+~\x97O\xb6B\x95g\x1a\xddm&\x19\xae\xf4\xf9\xe3\
+\xc7\x8e\x1f7\x9e\x9e\xffxo\x96\xa1\xa0\x19\x92Nb\
+`\xd8r\xd8b0v\xf1\xd7\xe8~\xb71k\x1c\x0c\
+\x0en2\xa4ldr\xdc\xfb\x1f\x985\x8e<\x09$\
+\xc8\x00\xd5\x0b\xec,\xdd\x97\xa8\xc2L\xc5\x95\x00\x84u\
+\x0bT\x96\x8a-\x07\xa8\x90\x18^\x99\x5c\xb8[\xa8[\
+(\x93\x18&k \x9a\xc6)\xb2eS\x81\xa27\x10\
+\xce\x02q\x15\x00u\xee\xf7\xe9\xf7\xed\xf7M\xe3\xb5\x97\
+Y\x96\x85L\xd6\x90\xd3\xb1\x81)\xf0\xc2q\xcb\x89\xbe\
+\xe5j\x22\x10\xa8\xff\xe8\x0b\xa3/\x8e\xbe\xd8\xc8t\x82\
+\xac \x80\xe3`\x84\xf5\x7f!\xb3&@\xad\x01M9\
+\xc0\x81XQI:\xb6T\x84]\x8f\xfd'fM\xe5\
+\x04\xae\x01\x12F\xcc/\x0eD\x02\xd6\x08%D\xb6O\
+-\x0f\x90&\x0d\x0a\xc0\xd2\xdeZ*\xe2$\x1cp \
+8\xa8\xeeR\xab\x0dP}\x1c\x82\x97\xea\xc0~\xb1\x1c\
+T\x9e3\xd7A`\xa5\xca\x11\xec\xe0\xb4\xf0\xb8|\x18\
+\x08\x1e\x12w ~V\x95\xfc\x1d\xf7K\x06\x9eq\x8c\
+\xfa\xdc\x90\x01N\xe8\xc0c\xff\x8c\x89\x81\x7f\xc91z\
+@\x8e\x11\x9c\x08TBc\xa5'\xeac\xd3\x93~\xb5\
+\x9e\xfb\xef\xd43z\x82\x124\xc7\x0by\x82\xa3I\xc5\
+\x82\x04\x04\x8e\x18\xfb=\xf3\x98y\x98\xffU$C\xf7\
+.\x9d/'\x985\x9c\x1d\x1c\xdc\xff'\xa8\xfb\x8c\x12\
+P&w\xb4Td\x8e\x11d\xfbH\xf5f\x8b\xad\xd7\
+\xaf\x83\xf9'\xd5\x07Z@@\xae8)$dfr\
+\xc0\x5c\x96\x90\x00\x00\xa8?\xe7\x94\xd6\xa7'8X\xf7\
+\xaaDwG\x99U. _/\xe2\xca\xc9\x1c;i\
+\xbe\x8cN6kz\x10q\x84\xe0\xde p\x86\x0b\x88\
+\x04\x0b2\xa1\x04\xfa\xc8\x97\x02i\xa7\x05\x86}\x0d?\
+E\x01\xbe\x17$@\x00p.\xc0:\xafJ\x88\xcb\xaf\
+\x02\x19\xe7yS\xe0\xe0\x9c\xc31\x82d\x11N\x11\xe6\
+\x91\x02\xe6\xac\xeebH\xa1E\x86E\x87Es\xa0X\
+\xc8\xf8@\x9a\xd1\xea\x01\x99\xa3 \xe8\x99\x94v\xe9\xa6\
+\xf7\x9aD\x02\xe7\xf7\xb7\x8b:\xc5\xe8\x15fM\x05\x95\
+u\x0c\x92\x90\x0a6\x09!d7\xe1L \xd0We\
+\xde\x91\x1b\xec7T4\xa9\xc0\xb3.\xa9D\xf3\x1au\
+\xc3qd!\x93\xd49\xed\x01\x11\xe7\x12$z\x14\x92\
+@\x0e\xe0_\x12H\xf0<\xb8^\x12\x1a\xe8i\xf3\xfd\
+$\xdc\xa8D\x13\x80\xc2v\xcf~D\xc5^\xeaF\xde\
+\xd2\x02\xd7\x05\x89\x17%\xc8\xfd\xbeA\x5c\xe2p\x13\xb0\
+\xc3I\xc5\xfeL\xa0D\x8f\xb3\x12S\xdd\xeafM\xe0\
+N\x22\x80\x84+\xfb\x12\x092\xc6\x85q\xe5\xb9\xb0\x8f\
+\x01\xe5_\xc6\xc9S\xa7\xca\x00Fh<\xd7\xcd\xf3\xe4\
+{\xd9\x87I<\xf3\xfb\xe8\xc72\xffx~\xb1\xb2\xcc\
+\xdf\x87J\xa5\xcf/\xb5\x06\xb8Z\x13~E\x94\x8b\x83\
+\x0cO\x89\x98nA\xb3f~\x10\xa00\x0e\xdc',\
+\xea\xe8\xa4?\xe9\x01[9'\x080\xb9\x9f\xf8\xcaz\
+\xa7 \xc1\xb9\x89\xff\x17\x03\xfd\x18\xf0G\xce\x92g\x03\
++=\x09\x0f\x02\xe3\x88H \xf1\xc1\xfb8\x9f\xf4\xb3\
+#&\x98_Q\xfe\x96\xf7\xc7\xef\x8d\x89\x00\xee\x8b\xf1\
+\xc1\xdf \x10\xfeG\x98\xc7\xe2\xd0\xca\xdaW\x0f\xbc\x00\
+\x19]US(\xeb\x1b\xff\x81\xfd(\xb6 \x12\xe0\x93\
+\xb0\xe2<\xe7\xfb\xf9\xff\xf8\x1f5!R\xee\x93\xf3\x97\
+\xeb& \x07\xc2\x0f'\x13\x7f\xc7\xf5\xf1w\xf3k\xfe\
+\xb0\x1fq]\xf8\x09\x8c?\xfbODNp}\x14\xd8\
+\xc4-\xe6d{\xf2K\x8d9\xcb\xb8\xb3H\xd8x\x9c\
+C\xe1T\xf7\xe7\xf3\x5c-s\xd3Z\x18x\x9e\xb1\x95\
+1\xcabF\xd2O\xc6\x8f\xb8\x80u\x0f\xb92\xb2\xc6\
+\x22\xaf\x85|\x1b\x99l\xf7\x07\xf4w\x13\xee0\x18\x84\
+\xf1\x13\x15\xf2\x9e\xf3\xf5\xd7\xd7\x8a\x02\xf2k9\xc0z\
+\xa7\xc8<\x8c\xbd\xfcp3]P\x9b\xd1\x93\xe3\x9b\x03\
+\xbc\xd5U\xc1[.C\xd6g\xe6\x85d\xe1\xf5\x15\x8d\
+ceu\xa0\xd3\x9a\x1eFdn\xec =\xaf\x92\x1d\
+\x11\x888\xeb\xf9\xe1\xb9\x0byl4a\xd6\x1c\xb0B\
+ \xe4\x80\xe3\x83U\xe7}t\x7f2\x93\xb7{\xde,\
+\xbd\xfe\xd9,}\xfe\xbd\xc9\xee\xabz\xd0\xdd7\xc6\xcc\
+\xac\xf2Y\x0e\x04\x16\x1e\x0f&flp\x80\xd9\x08T\
+\xc9\x039@\xe52]\xf5\x92\xc3\x92y\x01\x95L\x13\
+\x88\x07\xa0\x1b\x82\x5c\xfb\xc4\xc4\x11\x15D\xce\xee&\xdf\
+\x0f\x99~Au3\x19\xdc\xf8\x0b\x90\x8a\xcd\x93k}\
+\xc5\xa1\xb8\xac\xb9\xfeoe\xf3\xf1&pC\xa6m\xf2\
+\xb1\xc9G'[\x16\xcc\xf9\xd5zA\xaf\xc9\xddfi\
+\xfc>;\xfa\xfc(M\xac\xd1\xea\xa3\x97\x8fZy\x8c\
+\xe3\xb3U\xd2\x17t\xde\xd1I'\xc3-=\xe0n\x9e\
+\x22\x8f6\xba\xd4,\xf9\x1b\xdb\x8fo7\xbe]C\xc2\
+\xa5\x03\x86DH\xbfH\xb2\x85\xd3\xcf\x8b\xca\x113\xf7\
+\xe7\x07z\xceK\x89{bW\x8d\xfb\xee\x0d\xe9\x10\xb2\
+\x80d\xfa\xda\x83bR\xc8\x93\xab\x9b\x0d\x83\xc0\xce\xdc\
+\x95W6\x0b\x8e\x83\xd3\xd2<\xefW\xe2`\xa9\xaa\xaf\
+9Z\xc0,\xbd\xben\xb4\xf1\xc8\xb8#\xae1K\xaf\
+\xc7\x14Vc\xc8\x96\xba_t\xbf\xec~\xd9\x90$\xdd\
+\xa5y\xc4F\x18\x1d\x04A\x09\x9d\x14\x11\xe8.\xe4f\
+;\x985$C\xb0\xef\xd3\xd3JE\x86\x80Oj\x0d\
+\xee\xb8\xe0p\x89\x94,\xfdW2\x9c@X\xaf\x17t\
+\xbcW\x00D\x8b\x8c\x1c!\xef\xe5\x94\x83\x0b\x12\xc1\xf5\
+\xc8\xf9\xffbq\xc6\xd1\xee\xbfl\x96\xd5\x10\x925\xc8\
+\x11\x1cx\x1d\xcc\xc8\x8ez\xeb\x91\xd6;\xfa\xe7\xb0\xfd\
+[\xe3Jn]\x89P\xd6\x13\xca\xbc\xec?n\x96!\
+\xfd\xc9\x1aD\x03\x10\xd6\xabJ\x800\xfc@\x81\x08\xad\
+7\xbf\x16\x94\xf3HU\xde\x15\xc0\xf8\xc6\xce}\x02\x0d\
+\x87\x1c\x91\xe7\xc8\x81D/\xe6\x1d\x92\xb1\xbaQ\xfb \
+\xb2b\x040rl\xbbW\x8f\xd6\x1e\xad\xdd8\x16\x1c\
+\x84U\xf7\xba\xcc_%\xf2\x1c\xfa\xcf\xc1\xc4\x81\x81#\
+\x87\xe3E\x85v!An%\xdf\xea\xff\x1fy\xb6?\
+\x97\x00<\x8dj\xee5\xf7\x8a\xdd\xb9\xaa\xd8\x11\xf0\xb2\
+\xff\x13\xc0\xc2\xbd\x81cE\xcb\x0e\xfb\x13\x0e\x22\x10h\
+~\xcf\xfd\x110\xce\xf2\x0c\xfeT\xd2\x9c\xfaZ\xf6\xb5\
+g\x83c|\x95\x12\x00\x93r\x04\xe9\x05$`\xa42\
+\x8d\xc3\x1cI\x87\xb8\x1f\xd6\x0f\xeb\x92\xbfW\xa2wX\
+\xd7\xac\xb2\x01\xfb\xf8\xe3\xc0\xea`F\xff\xd7er\xff\
+$\xc4\xc9O\x05\x8d\xa7B\x09t\x1a\x07\xe7\xbf.s\
+T\x02\x01\xd6+\xd7\xcd\xf7\xe8s\x1d\xd9G\xe5\x9b\xf7\
+\xc1\x9e\xce\xbc\x81\xb4\x8es\x98\xf9\x02d^\x15Z'\
+\xc9\x95\x1f\xc0\xbe\xedj\x14 \xcdH@\xea\xfc\xcb*\
+B\xfb5\x01\x12-`p) \x0f\x0c\xa4_$\x9e\
+\x9c\x17\x90\x93y\xaf5\x81\xe4W\xc5\x99@k\x1d\xe7\
+0\xec\xec[\x995\x90k*\xcd<W\xee\x97\xc4 \
+\xe3\xc2|\xe1\xfc\xfa\xabzcY?$\xf4\x80\xc23\
+>\xf7If\xf7\xe3\x22\xd3\xa3R\xaf\xca\x8c\x07`r\
+\x90i\x91\xc9\xeaI{6*B$j\xa8\xc0\x12\xe8\
+\xef&\x19T%\x8a\xfd\xfd\x8c;\xc8+\x12.:_\
+\xa9l\xfb~\xca\xe7r=\x81\xf4\xd2\x91\x80\xcc\xef \
+{\xe6\xf3\x11\x84\x0b\xa4\x84\xeco\xec\x1b\xa8J\xc0E\
+\xc0\xba!\xd1\x14U3P5`\xbf\x81SA\x89\x1e\
+\xd4\x00\x1ca\x04\x82\x84@\x8ds\x1ah;\x81(\xe7\
+8\x8e\xbd\xfc\x97\xe1\x1df\x8d\xcc.-<\xe8t\xc3\
+=\x83\x5c5\x05\x9aJ2VZ+@\x0e\xb0n\x08\
+\xe0%o\x06\xc2\xcc\xc7\x1d\x15\x16\x026\xe6#\x9fK\
+\x0b\x1e\x9f\x1b{\xe5y\x7f\x94\xd5\xe3}\xf4\xec#\x97\
+J`\xc3~\xc1\xf3#\x00\xa1\x15\x0c\x04!\x09\x0f\xd8\
+\xdcQu`_\xe6\x95\x02\xc9-f\x0d\x89 \xf7\x15\
+*\xd7\x1e\xe8\x92\xe8\x06\x81\xc1\xfe\x1a\xe5\xb0\x99/\xec\
+\xc7\x04\xf0Q\xae\x8f\xff\x1f\xe5\x02c\x22\x80\xf3?\x92\
+\xe4\xc5WZ\xde`s'`&a\xc8\xf7G\x12\xbc\
+\xd8KN\xc2\x0c\x04\x22\x1c\x10\x8f\x85@\x16\xe4\x1f\xe3\
+\x16\xc9\x04I\x141\x9eQ\x1d\x81\xf5[I\x03Kb\
+\x81yG\x85\x9d\x9ew>\x17dK$Y\x8c\x09\x8c\
+\xfa\xff\xa7\xaa\xabD5\x17\xe6\x13\xf3\x90u\xcd\xbe\xc0\
+\xbc\x85c\x8by\xf4O\xad_\xc6uA\xfd\x9eq\x8f\
+\xc8\x0f\x9e#\xe7 \xf3\x87\xf9\x1d\xfd\xa3\xe8Gs}\
+\xcc\x93\xa7\xa6\x22U\x9cdQ\xcf\x81\xf9\xdf\x1d\xd6}\
+\xb5\xfbj\x83x\xe1\xf3\x02I\xe3\xb4\xfb\xfdO@&\
+\xc48\x92\x7fQv1\x16\x9a\xa3\x8a\x08\x89%\x10s\
+\x8c\x1f\x05\x0a\x10Sj\x05\xa0\x10\xdf\xedf\xd6$\x00\
+\xe8\x89\xa7\xe2\x98u\xc9\xdfUe\xc1\xdca\xd9\xc8\xac\
+9\x98\xad\x9e\xf7\xb9\xda#\xe9\x8e\x1e\x19\x0a\x16\x80\xd4\
+\x01\xfc\x81\x02\xc5&\xf3\xbeh\xa6;s\xfda'[\
+\x03\x82E\xcf\xb1u\xd4\x9c\xde\x04\x94\xe6\x9elZ+\
+\xb49\xb10\xb3V>8\xb8G\x1b%{\xad\xe4\xe7\
+NK?\xefc&R\xbb\xe4\x10\x8d.J\xf6\xebt\
+\xb9\x9f3K??&]\xf4w\x985\x19\x13\x0e\x1a\
+\xdd\x97\xeb~\x03\xdd\xe1@V@\x044\xc3\xef\x0bG\
+dUM \x0e`\x02vH\x86\xc4E\xe0\xe4kr\
+x\xbaC\xcc\x9a\x9ec\x022z%\x81\x923\x91!\
+\xf9\xb1:\xcf\xf6\x82\xaa\xadY\xd9#\xfb\x97\x9b\xe5\xca\
+LI,,h\x96~\x7f\x91Y\xe3h\xe18_\xac\
+\x03V\x0b\xd8U\x12^)\xc7X\x81+\xd0\xee\xfe'\
+f\x8d~7\xa4w\xe7\x9b5\x8e\x14\x81\xe2)\xdd\xa9\
+\x9d\xc9\x0d\xfe\xc7,\x93\x16\x16\x12\x9c\x19\xe5\xef\xfb?\
+\xf4W\xf7\xe9\x00\x98|\xb3Y#7\xc3\x82\xa1B\xff\
+\xefL3R\x1c\x85\xe5\x1a\x923\x0058\x18d\xfa\
+\x99\xb7\x90\xf1\x90\xf9\xe7\xfa$\x13\x98!\x8f\x1f\x11\x97\
+\xc5\x9eM\xaf4\xe4z\xcf\x9b\xa5\xd7\x09\xe9\xbc\x03\x05\
+\x139^^W;6\xd0Z6 *\xa2\x7fV\xc5\
+Y\xf7;mC\x83LH\x09\x90a'\xb3f\xfe\xd0\
+\xebK\x80\x89,\x89d=\x1d\xea\xca\x06\xc8\x86\xa5\xc4\
+\x92\xb3\x7f\xaf]\xe6G\x0a\xe6J@&\x127\x97\xaf\
+\x92\x83ii\x22K\x1494\x92^u\xd4,\xf4\xf9\
+\xa3/\x985\x0e\xe1f\x9a\xdf\x90\xe8\x01\xa1:\xb5T\
+f\x987\xe3\xef0k \xcd\x04\x02\xab\x0b\x81\x22\xf2\
+\xaf\xd1\x0f\xcd\x9aq\x07\xda\x079\x22\x8e\x99\xc6\x91\xca\
+--4c{KO\x15\xc7\x03H\x1e\x0e\x18\xba\xd5\
+\xa7+\x81t\x97\xc8PO\xe8\x8e\xef\x8eo\x02\x13\x12\
+C\x81\x15\xd7\xf7+T\x16h\xed\xe1\xe0\xa4\xd2w\xbf\
+\x0ef*\x8e\xb4\x1cA\x8a\xc6\xe70_U\xf9t\xb2\
+\xc1\xbe\x09\x80\x9fm \xb78|\x1c\x98\xcc\x0f\xb8\x1f\
+ \x07c\x1d=\xac\x03\x86\x1e\xdc\x9dD\xe6\xb9\x8a\xe4\
+a\xcf\xef\xce\xeb,!{\x9dY\xa3B@ \xc9>\
+O\xe5\xfaj\xb14+C\xdfm(d\x8b\x12\x0e\x0e\
+\x99\x059\x05\xa4\xf0\xc9 \x874\x19z\xe08 9\
+hc\x8f\x1c\x89\xb2\xcb\x95\x109Yj\x07\xec\xe7<\
+'\xc6\x9b\x839\xb2P\xd3cH%\x8e\xc4%d]\
+R\x91\x18\xbbl\xea\xfe\xe1\xf3\x87\xf1@mf_\xb3\
+\x1c\xa8\x14\x87\x92\x1eB\x12\xdb\xea\xe9\xf7V5\xf6\xf9\
+\x09\xef\xd1,\xcf\x8f\xeb\xe1\xe0'\xc1J\x8b\x0cr\x95\
+ \xf0t\xee\xa2B\xe2\x08**\x92J`\x83@\x80\
+\xbc\x14\x87\x07N\x10\xe3>\x19>]\x91.N\xd6\x8b\
+c\xa2\xf3\xc9{!I`\x130\x13\xf0\x8b{\x08n\
+\x0b\x0f\xe0\xb8?\xa0\xd5\xec\x0f\xc8\xcd!\x17G L\
+k\x0e\xf3\x86uw\x8cY\xd3:#\xc8\xa4;\xe4\xe8\
+\x96S\xb9\x17\xf2\xd1{\xa8\xcf(\x01|\xf75\xb3&\
+1\x81C68\xbb{q\xf8p\xdc\xaf\x93\xfe9\xeb\
+\x89\xe7\x8f\xe3H`\xae\xc0\xc9!\xeaBx\xf4\xdb\x9a\
+5\xfb9H&\x023\x91B\x0eG\x995\x01:\xe7\
+\x85\xb8YL\x0b\xc6\xd4`\xf0\x0b\x5c\x1e\x8e\xf9\xcb\xba\
+c\x1d\x11\x18\x9c\x93\xad\x06tU6\xac\x04.\xbc\x1f\
+\xff\x0e\x0e\x01!>hmrR9!\x99<a@\
+\x82\x8c\xc0\x92q\xa1\xd2J\xa2^\xefw\x84\x15=\xd5\
+\x9c\xdb\xac\x0b\x12\x15p\x0e\xd0B@\x02\x80}6 \
+\xd1\xfc~@~ \xb7\x0ak8\xdf\xa7B\x0f\xeb\xc4\
+9Pbo6\x09.\xf6\x05\x12\x5c\xf8\x1b\x04z\xac\
+\x07\x02N\xe6\x13\x01\x11\xcf1\xbe\xf2\xbc\x08\x80\xb8~\
+\xf6\x05\x12T v\xd9\x7f\xd4\x1a\xe0\x9c3a\xdf\xa0\
+\xe5\xc5\x13\x13\xf8\x13T2\xe9\xfd\xe7\xbe\x17\x0a\xb2q\
+\xb1\xb79\xb2\xaa\x13(\xe2?\xe3\xff\xc7@\x8e\xf5\xc2\
+kL\x00DR\xb8\x98\x00g\x1c#K<\xf3\x95\xcf\
+\x89\x01\x1b\x08c\x12\x14\x5c'\xfb\x02\xcf\xed\x1f\xa1g\
+\x9e\xeb&\x11\xc0\xfd>\x15z\xcb9G\xf8;\xe6+\
+\xe7\x1a\x01#?\xf39\xacG\xd6=\x7f_\xd9\xf39\
+\xa7\xca8\xa1w\xcfx0\xbe5AR\xc6!\xb6X\
+\xb0oq\x1d1\xc1\x10[\x9dI\x90Q!\x8f\x01.\
+\xf3\x83u\x1a\x12\x5c\x9e\x18'N\x0c-<\xee\xaf\x04\
+\xee\x06\xe2T\xff=Px\x108\xec\xffT\xf8c\x0b\
+\xd3\x22Z?\x5co\x0c\xa8\x19/\xee\x9bq\x82\x1c\x14\
+\xc4\x12\xef\x8f\x05\x8c\x88< \xa1\xc2\xf7=\xef-\x15\
+e\xdf\xc4\xdf\x8c$\xc6\xac#\xe6/\x9f\xcb|\x00\x09\
+&\xe4\x17-q\xceQ\xa3\xf1\xec\xee4k\xc8\xa0A\
+ \xc9\x7f\xa6`3\xd1-j\xa6\x0a\xc7\x9a\x82\xba\xcc\
+\x14\x09\xda\x0aM\xc0!G\xc7!\xbal\xc0TF\x09\
+h\x9e\xa0wT\x00\x00 \x00IDAT\x09D\xed\
+v\x9a\x8a\x92;\x22T|\x95\xa1t\xd6T6\x1cc\
+\x03\xfe\xa96\x9c-\x9a\xdeZ\xe4\x81\x0c\xb0u\xa6H\
+\xa9N\xd6F\xfd\xe3\x06\x12\xbcN\xb2uk\xab\x80W\
+nl\xb9\xce\xd7@\xf3\xd5c7z\xbbYz\xdd\xc0\
+,\xfd\xfe\xfb\xaa\x88\xb2 \xf6\xc9]\xe4\xe6\xc0\x94D\
+\x04\xac\xdfs\x8a^\xedp\xc4\xf0\xcd\xe1\x9b\xb9\x15\x22\
+C3q\x88]\xce\x09\x87\x09\x87X\xf2l\x90\x22\xe2\
+\xe8\xb8\xde\xae\xb9\x89\x97H\x9e\xee\x87JD\xbc\xbd9\
+\x80 '[\xa18\x0eY\xc4\xef\xb6f\xfc\x04\x09E\
+\x85\xc1\x03V=\xafL\x9a\x96\xfe\x7f\x7f\x90Y\xd5\xe3\
+N\xc7Eq\x10,\x0c\xbd\xa9y\xceL< \xd9\xe8\
+\xcb\xab\xb2\xd1on\x96{\xcd3d\xd4+\xce\x82x\
+\x8e\xbee\x96^\xb7*:\xe5\xe8\xd6{\xe5\x04\xf2*\
+\x91\x94\xf4\x8f\x9aU\x12&H\xad\xe0Np\xf6\xe99\
+\x19\x1cT\x02\xd0\xb5\xb4`\xc7\x1b.\x8bC\xcd\xd4r\
+\xb2\xb1\xe6\xdd\x81\xaaH\xd8\xf3=\xa2\xc8\xcc\xe5\xde\xe0\
+\xcf\xd6@3\xf7\xde\xfeU\x8e\xe7[\x9b\xca\xa4\xb9\xb5\
+\x1b( ;\xb0V\xf8]>\xc9\x18\x076\xac\xb2\x83\
+\xddi\x96r\xaa\x15ew\x8c\x1489\xb4~+\x91\
+\xd1\xbd\xac$N\xfc\xa0_\x5c\x1b$\x1b\xc5\x9f\xe4\xa0\
+,)\x04\x09=\xc8\xba\x0f\x87\xfc\xb2A\x0b*j\x0d\
+\x06\xd6b\x90\x82\xb3\x02\x95%\x81s\x9bY\x13\x800\
+\xff8\xc0y\xee\xb0\xc4\x8al\xcfI\xa4\x8e\xd0|\x86\
+\x93\x03\xb90\x10EZ\xdf\x0e\x15\x85\xd5\x9f^\xcc\xf7\
+k\x1d\xeeR\x90\x1a\xc3\xa6\xc3&\xc3&MO&\xdf\
+G\x0b\x07\x0e\x13rj \x1f@\xda\x88]\xd6\xd9\xd3\
+\xe5h\xfa\x01\xa6Jr\x8f\xec\xd2Vj\xb5AN\x08\
+\x12\x17 \xd8\x1c4T\xa0\xe5\xd8{\xc0\xac\x0d\x15\xd2\
+K\x7fN8<8\x0e\x1c\x101\x80\xe4 \xb9]\x88\
+!\x9e\x1b\xf2\x85\xe8\x1a\xff]\x99z\x12\x04\xf4\xcc\x03\
+\xddWb\xc0I\xacbO\xef\x02\x01\x1a\xc7\x01D\xc5\
+\x93\x03\x82\x03\x08\x87\x99\x7f\x1cD\xec/\xeb\xa9\xe2\xfb\
+\x0b!\x1f\xa8\xa0\x89\xcc\xcc[vv-\xadM\xb0\xfd\
+z\x0b\xd6\xceJ\x5c\xd1\xb3\xca\xbe\x22\xee\x06\x87Fs\
+\x80?$\x87\x8c\xf1]\xcc{\x05\xcb\xf3\xa15\x00\xf5\
+\x009\xf2\x8cC\xb7[ii\xc8\xbb\xf8\xbe\xd51\xf1\
+\xde\xc89A\x9f\x98\xcfe<\x80H\xc6\x9e=\x1c\xd5\
+\xaf\x152 '\x93\x5cK\x81\x0e\x89<\x1c\x00\x1c\x14\
+dz \xe5\xc1\xf1Q\xe05|H\xfb#\x90\xe5\xed\
+U\xd1%\xc0\xe0{A\x80\xa9e\xc3e\xeb\x90\x89%\
+\x90\x22\xf1\xacV\x1f\xaf\xd83\x1fa]\xe7\xfaHH\
+\xa9\xc7\x1f$K\x7f\xa0Y\xc3\x22/\x0e\x018\x0f\x9c\
+\xf3\x81\x96\x14\xb5\xd6\xd0\xe2\xe5\x10D\x02t\xb5\xc4\xf5\
+/6\xab\x1c#Fu\x9b\xc9n\x83\x1c\x99s\x18\xd0\
+\x22\x00\xf4\x1d\x87\x97\x84\x16-e<O\xcd_W\x87\
+a\x1d@Fx\xa6\x02G\xad\xbb\xb1s\xd5j\xc0\xfa\
+\xfd\xad\x12\x13$\x84\xc7\xbcGv*+6\xf7\x054\
+z\x03%\x1c\xd8OY\xef8\xd2\xf8\x11@I\xe1t\
+\xb8\xdc\xac\xe1l\x01iH\xe5\x8c\xc4\xdck\xcd\x1a\x12\
+PZ\xd8\x90\x89\x12G\x8c'\x84pd\x09\xb8\x99\xcf\
+\xcc'\x02\x0d\x10\x94\x04*8\xd0@\x96\xe9\xa5f^\
+\xc1iB\xcb\x90\xd4\x91`\xdb\x1f\x03I\x89\xc3\x0c\xf7\
+\xc2\xa7\xcc\x9a}\x80\x80\x009-\x1ch\x05\xa6\xc37\
+\xcc\xea\xbe\xe5\xad)\xf4\xfcs?$~Ab\x8aL\
+\xd4\x91\x1c\x9c\x0bpX@\xfeJ\x825\xe8\xd7{\x02\
+\x19\x84\x84\x12\xbe.3I\x00\xc5\xfa!\x10g\x9f%\
+p$\xf0%\x91\x8d\x1a\x06\xad\xd7B\x0cx\xc0\xcf\xe7\
+-\x1dZ\xb7\x98O\x81l\xd3\xff?\x09N\xc6\x95\x84\
+\x13\x88\x22\x02$\x02\x15\xd6;\xfb&\xf3\x80}\x98\x84\
+\xd9\xa5fMKI\xac\xacr\x9d\xac\xc7\xc8y@\xe2\
+\x83\xf3%\xf6\x9e3\x0f\x17r\xd9\xb9\x120\xcd-\xe0\
+\x8f\x5c\x00\xff\x09\x15\xea\xc8\x09\x00\x12\x81\xf9\xcb\xf9\xc2\
++\xa4\xb0\x8c+\xcf-\xa8\x98\xf8\xf71\xee\xbc\xc6V\
+\x02\xc6\x85\xfd\xa6B\xdb\xcb\xdfS\x81\xe7\xfb\x09\x84\xa3\
+|_@\x08\x0c\xb3\x0ab\xd1\xf7\x9f\xe7\xbc\x15yj\
+\xe0\xce\xe7<1\x97\x96\x09\xf6\xd7\x90\xc8r\xe4@L\
+\x00\x10\x10\xf3\xf7 \x9e#+\x7f$u\xe4y\xe0?\
+ S\xca>\x8d:\x0c-<\x0b\x86\xc2\x00\xcf\x83\xf9\
+\xc3u\xb1\xef\xa02\x06\xd2\x12\xe4Al=\x5cD\xbf\
+\xa7\xc0\x11[L\x98\x171\xc1\xb3\x80\xfc\x0eZ\x85\xf8\
+=-\xae|~l)\xe0\xf9\xb3^#\xf2#\xce\xd7\
+\x98\x18\xc0\xcf`\xbd\xc25Ak\x1c\x89aq\x80\x81\
+\xa0%q<\xba\xdc\xac~\x8f\xefo\xda\xd7ATM\
+x/9,\xe87ga\xa6*\xcf\x226]X\x94\
+q\xc8\x9ddf\xb7\xcc\xd3]!:\xcf\xe5)Y6\
+\xc2%\x1aH\x02\xac\xba\xfa\xbb\xdc\xb3h\x01{\xc6\xec\
+VG\xb4\xfb\xbdYC\xe2\xf6p~d^A\xf1\x0d\
+\xc5\xc2\xaaC\xd5;v\xa8\x1c\xf2\x9b\xf5}\xe7\xab'\
+\xf1\x93u\xc0\xbaM\xcd\x9488\xb1\x09<\x0d\x82\xfc\
+\xe5\x9c8\xc8\x10Nw\xa4\x80\xf0\xb1Q\x9f'\x07\xed\
+\x8b\x82,\x9fmV+\xea\xa3O\x8e\xf6\x1dY/\xf3\
+\xfe\xa3\x03FV\x89\xb9\xdf,W\x16\x8al\x17\x13\xfa\
+.m\x80@a\x81\x92\x91A7\xc4\xc5s\x82\xb0\xef\
+\xa2\xfb\xba1\xfd\xbc\xadY#\xe7\xc7\x06\x0f\x14\xdd\xb6\
+\xeb\x17U]\xe4\xfc\xbe\xcb+\x02\x22\xd7\xa3/\x96\xa3\
+|\x8d\x02\xc9\xa5\x1a\x96ge\x88a\xbfw\x125\x0e\
+\x142\x8e8\xa2T(\x15 O\x9e<y\xd2\xa4\xb1\
+\x84\x1fj\xd6\x8c#\x99:\xc9S\xf4o5kd\x0e\
+\xb71\xab\x0eD\xbf\x94Yz\xfdq\xff\xa3>9\xc0\
+\xfd\xa1fy\xc2\xe7\xca\xc6\xe8\xd5fr\x04\x0fiH\
+\x01-\xf1\xb3N\xfay\x85d\xcbW\xc7\xd5Y\xbdQ\
+u@N\x8e\x03\xb9u\xac^\x80$#osw\xc8\
+!\xb8]\xd0\xd0\xe3j\x05k\xf4>\xb3\x0a\xb1\xe4>\
+\xbb?w\x7f\xe9\xfe\xd2 d\xa8\xfc3\x7fq\x84\x98\
+_:\x80\xac!\xc0Z\x02\xdc\x91\x80|gM\xb3t\
+\x7f\x1b\x9be\xc8b\xee\xb9\xf5q& D\x7f\x15\x95\
+\x88w\x97\x04\x0a2y^\xa9&c\xfc\x22!0>\
+nV\xe5\xf0\x1c\xdaI\xc0\x8a#N\x8f?\xbf\xdfX\
+=\x9f\xab\x0b\xda\xcfF\x06\xa7\x03\x15R\x90C\x8f(\
+C\xf9a\xb3\xccyP\xd8\xbaq8t \xf5\xd7\x9a\
+\xa5\xf1\xdd\xde\xac&<@2\xa0\xd7\xed\x15|2\xe1\
+Tty\x8e8\x14<\x87'\x0a\x946\x05\xf4\xa5\xf7\
+\x98\xfd\xe1\xa7\xaad\xe3\xd8j\xde\x0e\xe7\x88\xac\x8f^\
+d*\x9c\xbb\x16\x1d\xed\xb1\xb3U1\xd3F<M\xb7\
+\x9c\x00\x81\x80\x0bh5\x1b<\x0e\xc6\x05\xba\x9e\x1d\x86\
+\x1d\x87\x1d+\x82\xa7\xfb\xbeY=\x00\x87\xabT!\xfe\
+x\xb7w\xb7ws\x10\x92\xc0x\x8dY\xe3\x98\x12\xe0\
+\x92\x98\xe0:\x14\xc8x\xe0L\xc5m\xa9\x82\xf4Hn\
+F\x99\x97\x8f\x04}\xe2\x17\xb9\x9a@\x09\x88@\xa6\xb0\
+\xce\xe8\xd5\xfdZ!%\xa3\x15\xc7\x13D8\xf0[\xa6\
+\x80g\xcb\xc6\xb1\x81,\x8d\xf9\x19\xd9\x96\x99WQ\xf6\
+\x8b\x1erX\xf2\xa9d\x03y&1\x8d\xe3\x82cE\
+\x82\x8b\xcf\xc7\x01\xe3`\xc6q\x5cZ\xf3r\x1e\x97\x05\
+*\x0e\x1b\x19u \xb0\x04`\xb4p1^\x04 \xb0\
+\xfd\x7fL\xe4i \xdb@\xe4\xa8R\xe8\xeb\x97\xfbD\
+\xc6m=%\xb4\x81\xfc\xb1\xff\x0a\xf2\xec\xf2\x9eo3\
+k\xfe\x9e\xf7\x03\x9d~e\x91muGU\x01\xa4\xef\
+\xdb\xb4p\xd1k/\xf9)\xf6)\xae\xcfU4P\xcf\
+\xa1\xc2\xaeu\x9cv\xab5\x865\xaa\x03\x9a\xc2\xfa\x19\
+\xdd\x8c\xa62,\xc4\x99\xcb\xf8\xa9\x07\xde{\xe7!{\
+c\xdf\xa1\xe2\x8f\xdc%\x09\x12\x1cT\x05j\xde\x9b\xad\
+\xf3\xde\x1d*\x02\x0e\x1cJ!\x0eH\x14;\xc9\xe9&\
+J\xccP\xf9\xbdFrw;\x17\x15\x9d\x81\xf9\xf1>\
+}\x9f\xce\x93\xee\x8bjU\x82\x14\xf5OE\xc6\xd6e\
+|g\x05\x0e\x17\x1cj\xceq>W-\x00\xc3\x1b\xcc\
+\xa6pg\x94uK\xa0\x07\xf2\x8f\xc0\x8d\xeb\x052/\
+N\x06Tu<\xf0g\x9fe~\x90\xe8\x8aPb\xae\
+\x87\xf1\xe3\xff\x83\xcc\xa4u\x86\xe7@\x8b\x05\x8e/P\
+|*\x83\x9cg\x04>$\x1a\x98\xff8\xbaT\xeey\
+\xae \xf8\xe0fP!\xc4IT\x09\xd8YO\xef\xca\
+V\x03\x06\xce[\x12\xe6\xa8\x8b\xc0\x150\xe1d\xa8e\
+}s~\x80\x08$QGB\x00$\x19\x89W\xd4\x82\
+x>\x04 \x13\xae;^X\xd8A\x8aq\xbep_\
+\x1a_\xaf\xd8\xe3oE\xb5\x18>\x9fD\x0c\xc8S\x9e\
+#HK!J|^\x91\xc0\x88\xaa\x1d\x04@\xec\xa3\
+@\xf3E\xd6\xdb-a6\xbdB\xec\xad\x11\xe8\x92\xb3\
+\xeei\xed\xe0y\xf3y\xa8D\x00\xa1g\xfcy>\x5c\
+?\x89j\xc6\x8f\xeb\x8b\x81>\xfe2Pm\xce\xd9\xc8\
+\x05\x10Y\xd4\x99\xcf\xcc[\xe6i\x84r\xf3\x1a+\xf2\
+\x9c\x13\x91d\x91y\x8aZ\x87\x90\xc8\xbe\xcfp\xdd\xec\
+?\x95\xa4\xaf|oL\x04<\xe4\xea\x00\xe5\x15\x16\x7f\
+\x12\xd6\x14\xfcf{e\x99D@\xf9\x99V8~\x1f\
+\xef3\x06\xa2$xP\x09 \xf1\xc7z\x8f\xa4tQ\
+Uan\x09\x80\xc9\x808`\x9d\xb3OI\xdd\xc3?\
+\x8fu\x1a\x02|\xf7\x03\x22\xc9`@D\xb8\xaaU\x9c\
+\xdf\x04\xec\xb4\xc0EY=\xfc#\x9e{L\x90\xc0i\
+\x03\x19-\xc8lZ\xe0\xc4A\xe6-\xa4!\xe0\xe7\xfc\
+$\xc1\xeb\xf3\x82\xb8\x9b}Q\xf3\xa9\x1b\x995$\xd8\
+\xf8\xe3\xb4\x9a*\xc1\x09r\xc7\xe3X[g\xd7g\x8e\
+ \x8b8\xc7\xfa\xed\xfb\xed\xfa\xed\x1a\xa4=\xf1\xc0\x09\
+\xc3\x89\x16\xff\xd2\xd24a\xf5\xeb\x5c\xc1\xc6\x11%\xc0\
+\xc3qfC\x04Z&\x1d\xfa\xee\xc6\x22\x1b\x97!W\
+\xe7*\xc3\xfc\x86\xe6\x01\xe1\xd0\xe0@l`\xd6d\xd2\
+\xf5\xf9\xdd\x05\xc9\xac\x17y\xbed\xf362\x84d\xce\
+\x80\x06\xa2\x87\x0c\xb4\xf3\xc5fJ(\xec^\xa1\x8d\x04\
+\x94\xae[\x8al\x9b\x1d\x18\xe7TD@\x7f_\xb2\xb4\
+\xf0&\xf77\x13\xdb\xec\xd1\x95}\x19\x07\xa8?\xa1?\
+\xbe?\xbeNXz\xce3T\xfe\xc2\xa6\xb2.\x92\x10\
+Hg\xba\x05\xbb\x052\xc9\x89z\xf0=p?W\x01\
+\x03\x1b&P#M\xac\xfe\x17f\x15\xea\x81\xa39\xfa\
+\x93Y\xfa\xdcG\xcd\xd2\xeb\xad\xc9n\x11\xe2\xc2X\x80\
+\xcfJ\xf639\xe27\xd4\x9es\x97k\xd3\xe7wg\
+$;\xb3\x8e'\xbd\x92\xa3\xc7\xcc2Iav \xbb\
+\xbf\x99U\xb9\xba\x14\xe4\x17\xa4\xc2a\x05\xf2\xe9=\xe8\
+?\x96\x03\xb0\xb4z\xdf\x80\x1e\xaeW\x02%*N\xfd\
+\x13f\xe9{\xce\x17I\xa0H*8\x98\x08t\xc6\xff\
+a\xd68\xb6s\xccr`\x91\x1d\xec\xb4\x0c\xb3\x83\xd3\
+\x9flV\x13F\xce\xfam\xb3\xf5O\x95\x04\xcf!\xa2\
+\x1c\xe8@\xfd\x04\xf9\xca\xbd\x7f\xfb5\x01\x06\x10rZ\
+Ql\xfb\x98\xa7A\xb0\x88T\xd23\xca\x13\xc9\xd2\xdf\
+\x8d\xb60\xcb\x88\x80\x1cHw\xf7\x18\xab\x849\xfc\xa3\
+d\xb9\x85\xe3\xa1\xee\xa1\xa6\xa2\xc3\x06D+\x03\xe4q\
+d\xd2\xc9\xdc\xc9\xd1qd\xc4\xdf\xd5k\xba\x7f\x91\x83\
+\xf3\x03M\xef\xf7\xd6\x14\xa0\xc6\x1c\xb4\xdc\xbf\x1c~'\
+\x15So\xfb\xf0\x9062*\xf7\xe8\x10sp\xb2\xb1\
+\x01\xe1}\xa3Y\x0e\xb42\xa4\x8bV\xa1nQ\xf5>\
+\xfeN2tr`\x86\xf5\xcd\x1a\x87\x84\xfb\xa5\x82\x85\
+#\xab\x00\xd0+\xc9\x90\x9c!\x0f&rOwP \
+\x8d\xa2wZ\xa4f\xb9\xe5\xe7{\x0d\x84Y\x15\xa7a\
+\x19\xb3\x1c0\xae8\xac\xd8\x8c\x1f\x99[\xf6A6\x5c\
+\xae\x93Wzm\x95\xc0\xeb.4k \xae\x1c\xe4d\
+\xb6\x09\xcc_l\xd68\xe0\xcc7\x02\xc4\xdd\x05\x01\x07\
+1\x01\xd4\x9f\xfd\x98yr\x8d*\xf6\x17\xab\xc5d\xd9\
+\xa9\x95\x22\xaf@\x8a\x93\xc2+\x8dd\xcaao\xbe]\
+\x8e\x18\x19n8\x09~\xa9J\xd1/\x95\x00\x02\x0a\xcc\
+9\x80c\x07\xfb\xbaH\xe9\xd23\xc8\x09\xb6\xe1\xcc\xa2\
+&\xe1\x09\xce\x1d\x8a\xba\x85\xab\x09\xc8AO\xbb\xd5\xd9\
+\xc3YM\x85\x12\x07\x8b\xc4\xd2\xc8\x1d+\xc8\x80\xa6\xca\
+XA\xaa\xf7S\xe9\xc7C\x9e\x8a\xc3\x0e\xfb;\x01\x0b\
+\xe7\xd2\xbd\xba\x9f'\xf5\xbc\xa3\xdc\x13\xe7\x0e\x0e\x1e\xd7\
+C\xcf2\x95\x12\xd8\xe8!\x9be\x1c\x80\x22S\xd1\xe0\
+\xb9\x81\x00\xbbN\x15D\xc8a\xa9x\xaa\xc2I\xa2\x9d\
+\x0a\xb7\xcbP~S\xe7\x8a*\xbc\xc8\xe2\x8e\xe6\x98\xa5\
+\xd77\x17\xf5\x95n^\xb3\xf4\xfey\xccjE\xdd\x13\
+g\x90Y\xaa\xf2\xe7\x10w*!p\x91\xa8\xe2\xc1>\
+\xe0$\xb0p\x00\x88\x9b\x03\xe4C\x7fC\x7fc\x7fc\
+\xe3\xb0\xa12\x01\x89\xd2\x16\xea\xc9G\x0dF\x01\x8aW\
+\xb4x\xae\xaf\x97\x9c\x1d$\xb6\x8c?\xaa\x17\x04,\xec\
+K\xf8\x13$\x8eX\xef\xccO\xc9\xe3\x11\xa89\x99\x17\
+\x01*H\x87\xebE.I\xeb\xdbcr\x089\x9fE\
+\x229\x86\xe3:_\xe1\xd0\x81\xa3c\xec\x16\xe9/\xbf\
+x*g\xc3p\xad\xd6\xff\x9a\xf2G\xc6\x02i\x1b\x8e\
+9\x8e7j\x0e sp\x90\x09\xfcq\x8c!\x1bD\
+\xae\x15\x99_\xed\xf3\xc3)fM/8\x0e<\x0e?\
+\x90Z9\xea\xddbf\xcd~\x83\x83\x8a\x9fBB\x9c\
+u\x0291\x15x*d\x04\x8a$\x04qx\xb9n\
+Z\xfe\x08l\x91\xaf\xe3\xfc\x86\xbd\xff#f\xf2k\xce\
+j\x1ce\xf6{ \xfa\x04h\xb4\x8a\xd0:A\x22\x96\
+\x80\x1b\xb9RZ\xa3hE\x80\xbc\x92\x00\x015\x08\x12\
+v$\x92\x08Py\x1eT\xe4\xd4\xb2\xe3\x81+\xef\x8b\
+\xf2\x98\x9co\x9c7\x91\x8c\x95\xc0\x03\x92N\x90\x09\xf4\
+\xcas\xff$\x90\xa8\xdcs.3\x8e\xb4z\x00\xfd'\
+AA`\x16\xf4\xc5\xbd\xd7\x9d\x16\x09\xee\x9f\xf5#\xf2\
+KoIb\xbc!\xf5\xe3}\xec\x8f\xdc\x0f\x09\x13\x12\
+4\xdc7\x89S\xb8&X\xc7\xba>\x9f\x87</*\
+\xd21\x90e}p\xde\xb2\xef\xc4\xde\xea\xd0B9\x8d\
+\xe3%\x92X\xf2yQ\xa6\x0fd\x93\x0aK\x1e\xf8\xc6\
+\xe7\xc7}\x13\xb0\xce\xad\x87?r\x12D9HZ\x11\
+gj\xbfb>\xf3>>\x8f\xfb\xe2~\x08\x5cc\x85\
+\x9f\xfb\xe0\xbac\xc2\x83W\x12>\x5c\x1f\x9f\x13!\xe9\
+\xff\x7f\x13\x00\xf8\xbb\x5c\xef\xdc\xd4,H\x900\x9f\xd9\
+/\xa2ZF\x0c\xd8ye=\x91x\xe3{h)\xe0\
+\xba\xb9.>7\xce\x13~\x0fR\xf0N!\x16\xd4\x02\
+;\xbcF\xad\xdd\x14\xea\xe0\x98\xe2>\x18/Z\x1e@\
+\xf6\xc0e\xc5>\xc1\xbc\xe1z8\x7f)\x08\x92\xb0\x03\
+\x01\xafx\x0b\xf2]Z\x1f\x9c\xa3@\x9cl\x93\x1f\x9c\
+\xdccr\x8f\x86K\xe1\xef\xce\xa5P\x12%$.?\
+\xd0\xed\xd1\xeda\xc3\x05\x14Y\x15TgW\xd5\x06\xeb\
+z\xd3\x9f/\xfa\xc5T\xf2\xf3\xe5>S+\xcby;\
+\xb8\xb7\x0e`\x7f\x8fY\xba\xa0\xbd\xccjO\xb4\xcfO\
+\xb1{\x8f\xde\x98l\x8b\x06\x1a\xc9\x06n\xef\xbeH\x13\
+\xfe\xfeF\xf7X\xe4F@L\xad\xce\x9a+\xad\x06\x14\
+\xbb\xa0\xe9\x85P\xe5\xd6\xa8\x1b2y\x03\x90s\x02\x00\
+{\xdf\x17\x14`\xfc\xa7\x92\x82\x8d6,\xe4\x80\xdd\xbf\
+\xcc\xaa\x9c\xd0\xe4Uf\xe9}\xd7$3(\xf1cf\
+\xaa\x04\xffM\x5c\x02\x17\xaaBk\x99\xd1o\x9b5\x07\
+\xbd\xd5\x17\xde\xad\xccMC\xca\xc4\xe7\xd3*\xd1?k\
+\xd6\x90\x1c\x0a\xaa\x98I\xe4\xc7\xa5/?R\xc5\xe6\xab\
+r\xa0\xf7P\x22b\x9d\x9a\xc0\xc8\xe4~\xdfhz\xe8\
+\xfe\x13*\xa4r\x8c\xe1\x16\x18\xad<z\xd9(\x1d\xf4\
+\xa3\xdb\xcc\xd2\xeb\x1f\xcd\xd2\xff\xdf\xa3L\x94L\xb5\x98\
+\x1c\xc5\xfe<\xb3Z\xb1\x1f\x166\xab\x15\x8e\xd1\xf5f\
+9#_z>\xe9\xe5\x84\xdc\x08\x92\x22*w\x92\x9f\
+ca\x8f\xc6\xcdr \x99\x0f\x82\xe1A\xc9\xc7-Y\
+\xc6c\xf2\xa9\xc9\xa7'\x9f\xae\x90\xb4\xfe\xb5f\xaa4\
+\x7f\xbc\x09x\x99h\x90\x09\xc9!\xf2\x83.\x1e\x1cl\
+\xdc\xe6\xc6\x9c\xd5\x90ZZ\xde\xf2EM\x86\x12(%\
+\x89\x1f\xcdGO\x08\xff\xb6\xbb\xb2\xbb\xb2qt\xb6.\
+\x90\xdc\xb1\x0d\x02\xd4g\x0d\x8d\x0b\x95x\x12]lh\
+l\xb08\xc2p\x13|Y\x10\xc7\xd8\x1b\x0c\xb4\x8e\x0a\
+B\x95_+\xc8\x136X*\xe1\xf4n~C\xe4\x93\
+r\x14I4\xf8\x86\x0bd\xeaYgs-\x81\xed\xd7\
+E\xa6\xa4\xd6\x01O\x1c\xd0*$H\xba\xb7p\x1c\xaa\
+}\x03G\x00R9X\xfe\x09\xacD\x1a\x85\xac\x15j\
+#\xfd;\xccj\xc5\xda\x11I\x90\xb3\xac,G5B\
+\xc6\xc8\xe0\xae*n\x0a\xe9o{\xe6\x16r)\xad\x87\
+\xe1\x00\xb3f~\xaa\xd7\x16\x19\x18Z\x91\xba\xeb\xcd\x9a\
+\x00\x0av~\x0e0\xe6\x1f\xad\x0f@(\xf7V\xe5\x9e\
+\xc0\x9c\x9e\xe35%\xcb\x85#\xcd>H\xe2\x13\x84U\
+\xed\xcd,\x1b\xf9\x1e\x0a\xa0\x81\xc6\xe3\x98\xc1\xaa\xces\
+\xa4\x07]rE\x0e\xe5d\xbc\x98/\xcc\x1f2\xf78\
+\x1c\x90\x81\x92\xc8D]\x04\xa89\xad\x12d\xb2\x95X\
+\xf4D\x92X\xff\xbbc\xcc\x9aD\x9cze\xbd7\x90\
+\xef\xe7\x80\x0c\xec\xb9\xde{H`Me\x8f\xf9\x0fg\
+\x04\x89\x1a\xd6\x15\x89\x92.@\x199`\xa9\xbc?0\
+\x15\xf2\xef\x15\x5cT\x09\xbe\xa2\xd6\x22\x1c\x7fzg\xd9\
+g\xa8\x90\x91x@\xff\x9b\x00\x8f\xfb#\xd1Hk\xdb\
+W\x84\x88\xa1u\x02\xae\x17\xe4\x18?k\xd6\xc8\xecm\
+W\x10a\xbe\xbfRQ%\x90\xa6\xa7\x9a\xfdU\xad\x01\
+\xde\xd2\x14\x1cr\xdf\x97\xe8\x85\x9f\xd7,=\xce\xd3\xcd\
+\xaal\xa2s|\xfc\xa0\xc8a\x0ek\x16\xc7\xc4[\xcf\
+h\xd1\xb9N\x9f\x7f\xa9\xe4(\x95 \xcc\x0dT\x076\
+\xady\xa8A(\x11\xd9\x1d\xd4}\xa6\xfbL\xf3\xdc\xc4\
+\xc1\x90\xee\xa2\x04\x828\xa6\xa8\x94(1\x0c\xb2\xc0\x11\
+\x1f\xfc=\x09\x19Z4\xe0\xaa@\xe6\x94\xca\xeb\x8f\xca\
+u{\xcf\xf3rf\x0d\xb7\x0d\xadC\xccs\xc8\x15I\
+tA\x9e\x0a\xb7\x05\x15\xbc\xc7U\x09\x82\xcc\xf3\xcd\xdd\
+\x9b\xba75\xfb\x04\x90p>\x9fJ=\x0e \xf3?\
+:\xae\xcc\x1f\xe6\x17\x15V*\xbf\x04\xe2p4<\xe2\
+\xac\xdfe=\xe3o\xe1\xff~\xd4\xac\x91\x07\x84TV\
+*\x06\x9e\x18 \xf0%\x80c\xfe\xb0\x7f\x13\xf8\xd3\xa2\
+\xc5|\xc4Ag\xff\x12Y\xa9\x07\x0c\x04\xf4$HI\
+\xd0\x10\xf8\xe28_R\xe4J\xbd\xd5\x10\xd2F\x12\x99\
+\xcb(\x81N -\xf5)\xbf~\x0a\x02\xb4\x0e!\xe3\
+(\xf2\x5c_\xd7|\x0f\x88\x8a]\x84\xf8b\xfc\x09\xa8\
+H@\xc5\xc0\x83\xebe\x1f\x8d\xbd\xdd\xfc\x9e\xe7J\x80\
+\x17\xa1\xe0\x8c\x07\xdf\xc3\xbe\x05\xb2\x8c\x84\x0c-\x03\x04\
+p\xb4\xa4\xa0\x96Q!\xe3\xe5\xfa\xd9\xefA\xd6F\xce\
+\x04\x02&H\x02\xb5\xcf;\xb7\x07\x10p\x12,\xf8#\
+\x140\xd8\xefX'\x909C\xde\xc8:\x22\x80E\xe6\
+\x1b\xa4\x04\x01\x19\xfb8\xeb>\xca\xdfE\xf6{\xc63\
+\xfe\xe3\xf3\x22\x0b{$\x99\x0b\x9f\xeb\xeaS<\x17\xc6\
+\x89\x82\x01\x89\x1e\x1c@\x9es\xec\xadg\xfd\xf1\xbd\xf8\
+\xe3\xd1\xdf\xfbGP\x1d\xe0\xf9\xf2\xb9\xcc\x13\x9dG\x8e\
+\xcc\xc5\x8f\x8d\xd0q\xee\x97s\x8d\xcfa\x1d\xc3}\x00\
+\x226\x22\x1eb+\x05\xdf\xc3\xba\xe6\xf3c\xc0\xcf\xcf\
+\x8c\x0f\x7f\xc7:!\x90\xe7\xf9\xb3.\xb8N\xf6\x0b\xee\
+\x87\xeb\xe1\xefX_$\x0a\xa2\xccp\x94k\x8f\xf2\x81\
+\x91T\x97\xd7\xb8N\xf0\xa7\xd6(\x886\xceC\xe2\x1c\
++\xeb\xe5\xc2^H\xacy\xc2\x94u\x1b\x90=\xd3Z\
+]\x22\x87\x04\xeb\x9e\xfb\xa5\x80'.-cD3N\
+4dRIt\xd3R\xda\xff\xd3\xacr\xd1\xf9<\x82\
+\xbbG\x88\x92\x09\x0f\xf8\x09\x80\x08\xfc\xa9\xe4\xc2~\xcd\
+\xc6\xa6\x00\xa8\xbf\xcc\xaca\x11\xa7\x97\xd8t\x13\xd3\x02\
+\x99\xbc\xdf\xacB?G\xab\x98\xa5\xf7\xff3\xd9L\xf5\
+\x84\xbf\xa9\x81\xce\xb6\xa44s\x1aVv\xab\xbc\x1e%\
+\x87h=\xf5\xea\xbd\xb7^\xe7\xb0\x95Ys\x90\x001\
+\x85|o\xc8\xa0\x98r YEcc\xb3\x9a\xe1\x85\
+]>\xebm\xa7@\xa6\xbf@\xf2F\xdb\x8e\xb6\x1bm\
+\xd7,\x0cd\xce\xe40\xf4w%\xbb\xb3n\x8c\xce\xea\
+l\x95\xf9[\xc5R|h\x13\xb8\xc1~l\xef\xffq\
+\xd3\xcb\xcbu+\xd1\x91+\xb3\x9b)\xf3}\xb66\xa6\
+\xc73\xa4<Y\xad\x88\x8f\x9eLf\x15\xf5o&K\
+\x01\xdc\xf8\xfe\xc9\x0e\x90\x83}l\xed\xf1\xf6\xeb\xd9\xad\
+\xe8x\x8f\x9d^\x1c\xd3\xfe\xc1\xfe\x81\xde\xa0^W\xa6\
+\x905\x1d\xb4\xa3+\xcc\xd2\xeb\x05f\xf5\x95\x00\x8d\x0a\
+\xe2\xf8\xf3\xe3\xcf\x8d?W7HH\xdb W#S\
+\xec-\x10@PX\xc0\xea\xc5\xa5\xd2\xe9\x09\x06\xfd\x9e\
+\x16\x93\xd1Uf\xb5\x97t\xcevf\xe9\xfbv1\xcb\
+\xad\x1f\x05\xba\x09\xf4\x90\xde\xbe\xf7\xe9>m\x9b\xbe\xb5\
+9\x00p\x98X\xa0\xcc7[\xee\xcf\xa9\x12{\xbbz\
+\xe5~\xae\x03u\xd9\x1ah\xe6\xe3\xba\xabdV\xe86\
+\x9b\x98X\x96\x13S\xab\x06\xdc\x0d\xce\xeaNo\xd9+\
+\xe5(\xb2\xb1-#G\x15\xd2 \xae\x1c\xc8@\xa5\
+\x84\xa0\x80\x85;m\x0e\xe5\xe0\xc1\x81\xc0\xe1eC\xe1\
+\x80\x90\xc3O\x80\xeb2\x83pR\x10\xe0\x88\xec\x12\x96\
+i*\xd9\x0e\x0d\xe7\xa0\x07\xaa\xa6\x8d\xd2\xd9\xab\xa9\x14\
+\xf1|q\xec7\xd5\x86\xf4\x06%L\xc4\xaa\xed\x81\x09\
+\xba\xd5\xb0\xd4r`Q\x99P\xc2\xc6+\xf7\xaa\x04\xb9\
+\x5c\xda\x03f\xf9\x00+\x19y\xe6\x01\xfb\x14\x0e0\xb2\
+\x83\xb0h\x7f\xbb\x7f\xbe/dA\xc5q\xb8M\xfa\xd1\
+TF#\xfb;2\x89?\x90\xcc\xd6C\xe2\x1a@\x8f\
+>B\xd3\xc9\xe4\x12\x08\xbeJ\xcf]2:\x1e0\x13\
+\xb0Q\x11\xe7~;\xd3\xf3hzg\x09T\xce\x13\x87\
+\x04\x01R\xedI-r|\x04\xd0Ri\xc8Z\x18K\
+5\x8e\x02\xf7\x03\xf9\x13\x10Z*|\xc8\x0d\x8a\xbb\xc4\
+\x0f. \xac\xf4\x90\x81\x8c\x00\x19\x80c\x03\xf4pS\
+\xb58P\xa9e>\xe3(\xe2\x18q\xff\xf4h3.\
+\x1c\xdc\x1c\xe4\x91D\x07\xe8\xee\x1f\x94\x10\x01J\x0b\x02\
+\x83\x00\xea\xe4l\xb57}5\xb5\xfa@\xc2\x08D\x12\
+5\x16\x028\x1c`\xc6\xe9\xcbf\xcd|\x92\x0c\x9cs\
+\xb8\x00\xb1g<\x08\x88n\x90\xe3J L`\x15\x03\
+\x02\x91\x7f\xbaz\x03\xb2\x9d \x80\xd4\xcb\x8d\xc3F+\
+X\xff\xef\xfe\xe1\xfe\xe1\x1a\xa88\xe4\x1bd\x93\x12V\
+\x8e\x84\xa0\x05\x87uJB(\x92\x15R\xa1#q'\
+\x089\x88\x1f\xbfOZ\xa9 \xc3c\x9e\xa2\xf2\xf1\xd8\
+T6d\x127\xde;M\xcb\x09\xdc\x00rl\xbc\x85\
+\x80D\x13\x89\x0ad\x03A\x16\x90 [\xb3\xec7N\
+J\x8a\xe3\xc5~\xc2\xbc\x87O\x00\x95\x08\x1c\x22dj\
+\xbf-\x84\x17\x81(\x01$\xba\xd4\x042\x8c\x8f\x12z\
+N\xd2\xa9\xc4\xa5'\xf8\xd6W\x02\x07\x87n1\x05\xb2\
+\x8c?\xeb\x03\xc7\x91\xc0\x22&\x00x\x7f\x94\xfb\xc2/\
+\x01IA\xe2\x22\xaa\x1f\xe0\xb8\x93p \xe0\x08\x81\x97\
+Ct\x03I\x9dC_#\xfb5\x95]8T\xe0h\
+`\x9f\xc7a\x85e{\xf1\xa9\x09\x00?7\xb8>\xee\
+\x9f\xd6\x13\xe4\xfe\x90}\xa6GW-1\xa8\x18\x0dG\
+\xeb{y>\xc8\x86\xe9z\xd3j)\x1c-<\x0f\xde\
+\x07\x97\x83\xce+\x12\x5c\x8e\xbc|`\xaa<\x1a\xc8\x01\
+G\x04\x90x\xc3Q\xe79\xb2\xbeI\x5c\xe0\xdf\xd1\xaa\
+I\xc2\x06\xf5\x86\x18\xe82\xfe\xb4&R@b?\xe6\
+\xfd\x04L\xbc?B\xd6y\x7f+\xcb=\xab\xd9Oc\
+K\x00\x7f\xc7\xbc\x22Pe\xbe\x11G\x9fX \xc4\x8e\
+ E\x06\x8d\xf9\xcc>\xf7\xe8T\x04\x8d\x07\xfe$\xe6\
+H`0> 0\xb8\xde\x18\xb8\xb1\x8eb\x8f5\x89\
+\x12\xe6wl\xe1\x8a\x5c6QW>\x90\xe6Mk-\
+`^\xc6^}\x12\x06\x9cS\x8c#\xe3E\x02$^\
+\xdf\x93\xdebS\x02\xcc\x0aq/\x09\x07\x02\x7f\x9e\x07\
+\x81vL,\xf0\xf9\x91\xc5\x9fq#@\xe6\xf7\xbc\x9f\
+\xf3\x1c\xc8?\xfb \xd7\xcd\xf5\xf2\xbd\x04\xc2\x04\xf4\x5c\
+/\xd7\xc1<\x89\xeah\x91c\x84D\x0b\x81v\xbcn\
+\xae\x8f\xf37\x06\xf4\x8c;\xf3?\xca\x09V\x8e\xa02\
+\x8f\xf0\xcb\xf8\xfb\xe8O\x10X\xf3=\x8cW\x9c'\xac\
+c\xc6\x15\xee\x10\x126\xacc\xc6\x91y\x12[\xa8H\
+\x00\x90 \xe3\xf7\x11\x01\x82\x1f\xc9\xba\x079\x80l\xaf\
+!\x8e'j\xa2\x92D\xfd\xf05\x15\xe4$C\x0cb\
+\x16D\x90\xfb\x17\xa8\x84\xe9yLt'\x9b5\x19<\
+\x1e\x00\x19\x05 x\x82VB*\xd6\xdfk\x96\xf6\xbb\
+\x97\x17\xf9\xb7\xdc\xb3\x96\x1c\x84\xfe/\xc9niH\xbc\
+V6\xab\x81\xab\xd5G-\xe0\xcc\x1d\xfe\xeb7\x01?\
+7\xae\x07\xc1\x0d\xf6\xcb%[\xb6r\x0a\x10\x10\xd1\xeb\
+\x98+\x8d\xafo \xf2\xb0\x95\x7f.\xd9g\x1b\xf6F\
+\xe4\xcf\x94i\xcf-\x09\xe9\xfb\xfb5\xcc\xc4\xf6\x9d6\
+\xb69\x1f6K\xf3\xe7cf\x8dc\x08\xb9\x8d\x02\xe1\
+L\x8e\xf8\xc9\xf4\xf7\x1f1k\xa0Krl!I\xca\
+\xee\xf5*\x8d>4\xbd\x18\x22A\x22S\x9e!\xf1\x9f\
+mHa.Mv\x99\xa0\x1e\xab5do\xca8\x8d\
+f%\xb3\x8a\xfb\xdbF\xdbg\x12\xc3{\x92\xa5\x054\
+\xfa\xca\xe8\xd0\x91\xf5r>fV\xa1\xd1@D\xbc\x22\
+\xf7y\xc9\xd0\xedY\xa0\xa4\xdd<f\xb5\xd7t\x98!\
+\x08\xb6\xc6\x0b\x08\xb3g\x80\xc5\x1d0\xbe\xb7Yz\xdf\
+\x7fE\x8aH\x85\xf4.\xb3\x86l\x0c\x87\x81\x03\x18\xb6\
+a*\x9c8,@\x1b\x91\xcd\x12\x94\xd5{\xa0\xb4p\
+P\x0b\xf0J\xa4zI'/2\xcb\xa4\x8cfu!\
+\xb1\xf1L\xe4\x9aS]\xf8\x0f\xe5\xad\xb7d\xa4\xff\xd0\
+\xa8\x08p]\xb6\x1dL\xea\xc0\x5c\xb4Y\xb8\x16\x0e~\
+\xaf\xf6\xc4[]'WvJ\x8d\xb1VD.TO\
+\xaa\xe4\xfe\xe2<\xef\xce4\xab*\x12~\x00\x00e%\
+a\x05\xd2\xe2\x17\x9a\x8f\xb1\xb7\x8d\x8d\x98\x8d\x09\x07\x02\
+R\xa4\xcb\x04\x19dc>;[%\xbfb\x83\xe4 \
+\x9c4k\x0e`\xa0T@0\x09\xc4\xe8\xbd\x85\xd4\x89\
+\x8d\x17\x0e\x0f\x1c*z\xff\xd4\xeb\xeb\x1b+\x8e\xe7\x92\
+\x0a\xfcTy\xea\x8f3\xab\x9c\x0a\xc3\x98d\x07\x81\xfe\
+\xdd\xae\xc4\x04\x07'\x0e0$Xjm\x1an*\x15\
+\xa9\xfe[f\xcd\xf5@\xbeyv\x09\xd4\xa9\xf89\x0b\
+4\xea\x08\xdf2\xcb\xfbGN\xa8\x8c>d\xd68\xda\
+\xcf\x05\xf6]\x12~\x0aP\x86\x8dD\xd6\xa5@\x1f2\
+<z\xf9\xd2,/\xbd\xef\x7fT\x82\xea\xd5\x0al\xa8\
+x\xffU\x15{k\xb9\xba\xb19\x00q\xb8\x80\xfc\x02\
+\x95\x8d\xac\xff8\x1e\xeae\xef6RE\x0fG\x0f\xf9\
+>8$\x80tr\xc0\x12\xf0A\x9a\x06\x94\x95uJ\
+E~^U\xf87\x11\xd7\x0a2\x93\xb4H\xa8\xa2g\
+\x0c,\xb9\x07\x0d\xc8\xf2\x1a\x82\x8e\xe2H/%\xc7\xb5\
+\x0f\x19u\x1cVz-?\xa7J\xf4\x8e\x1a\xd7\x8b\xcc\
+\x9a\xf9t\x8f\xc6\x07\xfdx\xc6\x05\x07\xa1\xd7:\xc0\xf1\
+\xb9[\xf7I\x22\x9c\x9ecz:I \xa2\x8e\x03\x99\
+\x11\xac\xfaT`\xe1j\xb8B\x10\xe2W*1C\x82\
+\x82\x04\x07\xeb\xf0\x019Rp\x82P\xb1S\x02\xad\xfb\
+h\xd9\x9f\xbd\x97\x1bGP\xe4O\xfd\x86\xfdF\xfdF\
+\x99\x0c3\x93|\x8e\x0e4K\xaf\xef1\xab\xdc\x1e\x8e\
+,\xc1\x91\x10\xe7B\xb7\xafY\xc3\xc1\x00\x19\xa1H\xc3\
+\x1c9\xa5\xf3\xc7\x13\xd9\xbfQ\x00\x0c\xab:\x0e\x10\x01\
+;\x8esPUh\xc6-'\x8a\x09\xf4\xbd\x92\xc2\xbc\
+\xa3U\xe0|q\x08\xa9\xb5\x87y\x9dfqQ\x93\x80\
+\x1c3\xca,E(l|\xc5q\x04\x11\xf7RU\xce\
+c\x056Vf\xd9\x7fp\xcc\xb8O\xedg\x0e\xc9\xe7\
+\x9c\x9cW\x01\xce?\xa6\xf6\xf2\xe2\x17y\xa2\x085\x18\
+\xe6\x09\x01\x1c\x8e6\x01)\xad:\x0f)\xd1\xb3\x99\x02\
+R\xd8\xdfQ?\x08rm\xd3*\xa3\xec\xf7\xac\x07%\
+<\xba\xb5\xcd\x9as\x8a\xfd\x86\xe7K\xe0E\xe0Ok\
+\x1cr\x85$>)8p\xceA\xee\xc8\xbe/u\x19\
+OD@\x86z\x9f\x12\xcd$\xc6a\xf5\xc7\xf1\xa6\x05\
+\xf4Dcs\xaar\x90\xde\xaa\xc1\xf3\xe7\x5c\xfa\xae\xd4\
+\x12^\xa5D\x1d\xc8\x02\xa9Jt\x1f\x12i\xac\xce\xb3\
+\x5c\xc0\xba\xb5\xf1#\xd9\x97@\xa0\xca\x7f\xf2D)\xfb\
+\x0a\x81\x0e\xe3J\xa5\x93yO\xc2H\x95\xef\xee\xedf\
+\xcd\xe7\xc2\xc6\x8f\xff\xc7\xe7\x93x!p\xe0y\x92\x90\
+'pb\xbfg\xde\xb0\x0fF\xb6r\xe6\x01\x89\x1f\xfe\
+\xae\xee\x83e\xdf\xe4\xb9D\xd5 \x12\xb7$\x88\xd8\xaf\
+\xe0\xc6\xa1\xc5\x0c\xae\x04\xc8\x17A\xb0q\xee\xb0n\xf8\
+\xfe\x88\xf4\x88\xdc\x14\xb1R\xcfz\x8c\xbd\xf9s\xe3\x02\
+`\x1f\x22\xb1J\x0bL\xe4\x18 \x11\x13\xbf'r\x03\
+\xc4\x8a;\xd7\xcduF\xc8~\xe5\xd2)\x89\xe4\xa7\xd5\
+\xdb\x1d\xc9\x14\x1f\xd4:\x9f\xa9}\x9e\xfd\xfe_\x8e(\
+\x9a\x8a(\xe0\xf7\x5c\x0f\xfb\x1b\xf30\xca0\xb2\x8e9\
+\xe7\xe6\xc6u\x10e\x0d\xe7\x04\xa4\x01\xf7\x15Ux\xe6\
+sh{\xf99&\x00\xf0\x9f\xf9\x99W\x12\x0e\xcc?\
+\x12i\xfc=\xfeU\x90W\xf4\xe7\xc2>\xc6\xdf\xf1\xfc\
+x>\xfc\x1d\xf3\x89\xfb\xe1\xbc\xe1\x1f\x7f\xcfsa\x9d\
+\xb0\xffFN\x04\x9d\x07~\xae\xc1]\xc3\xb8\xb2\x8e\xb8\
+>\x12^\x9c/\xb4z\x82h\xc4_\xe3}\xf4\xfc\x83\
+\x98RB\x7f\xb8\xbd \xb0h)\xec\x0f0K\xaf\x7f\
+5k\xde\xaf\x82\xe5\xe8\x03f\xf5\xbcG\xe5g\xc2+\
+\x85\xd2\x83\xf7\x8c'\x15\x1f\x16\xaa\x02\xc9\xfeX\xb3\xda\
+\xfb\x05\xb4m\xf8\x8cYe\xdbE]`\xf4\xbff\xe9\
+\xe7W$[\xb3q8\xad~\xf0\x03mLs\xb4\xd1\
+,)\x07iI\xf5\xc2](\x12\xc2m\xd2\xf7\xdef\
+\x96>\xef\x0ff\xf5\x86Fk\x98\xa5\xcf\x7fW\xb2\x1d\
+\x9b\x0c\xeb\x22Y\xf8\xc1\x1d\xb3L\xaa\x95\x02\x8fn\xa5\
+d+\xd6\xcar\xffF3\xb1\xa6\x7fT\x15\xd2O\xa9\
+\xd7\xe7\xe1\xda\xbb\xea\x95\x10c\x8d?\xb8\xfe=\x89\x8e\
+\x9c)\xb7\x16\x80\xf9\xcc\xa4/\xfetMT8\xb4\x93\
+\x0a5\x1c\x09\x8b%3r\xa4\xc9dV\xd9_\xd2,\
+\xbd\x1e\x93,\x8d\xdb\xf8:f\xfa\xff\xe9\xb9\x8c~\x92\
+\xcct\xd2\xffj\x96\x91\x0a\xdb\x8e\x8c\xf3\xe0\x0f\xc9\xd2\
+\x012\xda[2\x87\xdf3\xab\x13\xaa[\xd8,}\xdf\
+\x8e\xc3\x0e\xc3\x0e\xf9\xb9\x96\x80\x8c@Y\xcfe\xd8v\
+\xd8\xc6\xc6;\xcd\x89\xd2#'\xd9>\x97\x81\xa1\xd2J\
+`\xa0\x83\xb6{\xd2\xacV\xa8|\x02\x87L\xabC\x04\
+\xb5\xf0!-\xf3\x83D,\xcf\x1eH\xa9w\xd6D\xd7\
+Lvm\xf4.\xb3\xb4\xbf\x1c7y\xec\xe4\xb1\x15\x91\
+\xe2rR\xb4\x8eP\xf9Z#\x83\xed\xeb\x86\x186\xe8\
+\x1c8\xfe^\x95\x86\xf5\x9a\x8d\x9c\x83\x1b\x99\xcc\xcd\x92\
+m\xdeT\xc4\xd9\x80\x8ca\xe1\xe3J \x1d\xdf\x04\x9e\
+\x83t\x07\xc9x\x13\x00\x93\x90\xc0\xb1\xf8e\x0a\xe9\x93\
+\xa3\xdd\xfd]\x15\xed\x17\x995-\x13lplL\xf1\
+\x95\x0d\x8d\x83A\x07\xa0\xf7\xfe\xfdO\xb6\xaa\x03j\xeb\
+\xf0\x15M\xc5\x1b\xc8.r+\xc8c!cH\xa6\x9e\
+\x0d\x15\x08\x13\x8e\x18=\xee@\xcaEv\xe8\xac\xcd\xf4\
+\xd4\xd2\xeb\x8c\xe3\xac\xcf\xcd$\x9c_\xaa\x8eg\xf7\xb2\
+\xe2\x18\x0f{\x89\x84\xf4f\xc9\x94\xe1\xe8\xf1|VR\
+b\x12(!\xec\xd8\xaa\xd8\xba\x0a\x87T\x19\x9c\x8c\x88\
+\xe7\xafqq\xe86dnTT\xa8\x00\x12\xb8+\x90\
+\xea~gV\xd9\xcf=\xa0#\x80\x13;7\x15+*\
+&\x90\xacq\xbf\xeeh\x00!\xe7 \x97\xce\xfdp\x91\
+Y\xde\x973\xe7\x8a?_\x02\x16\x0e\xa6\xbb\x95\xb0]\
+\xd2\x13)\xc5\x01D\xbe\x93\xbfS\x8b\x84\xb3\xc8\xaeS\
+\xd6q\x1a\xed\xc2\x9e\xcb\x01\x85\xe3\xc5\xc1\xc5\xc1L%\
+\x17Y/\x1cn*\xa6\xaco\xe9kw\xfb\x9bU\x84\
+AVw9\xa3\xb9>\xa0\xf8\x8c3\xfa\xf1\x11\xd1\x02\
+\xd9\xe0\xb8\xde\x8f>\xfbE\xc3\xaf\x07k)\xbb\xc4\xac\
+\xe9A\x05\x0a\x0a\x02\x07\x0e\x01\x12\x088\xb48\x9eR\
+\x8fH{A\x81\xfa\x01mf\xbd\x12x\xd0\xca\x01\xa4\
+\x9e\xfdI\x07\xb8\xf7\xee\xd1\xc3}\x89\x90\x0f\x11\x22\x0a\
+i\xa2\xe6\x87#7p\xe8\x19\xd7[\x95Hf}H\
+\xdd\x82\x96#\xbf>\xa9`\xf4{\x98eu\x9b\xb3\xba\
+\xb3\x9a\x96\x0dz\x9e\x09\x88\xb66kTP\xf8|\xe9\
+\xa0\x0fo3k\xf61!\xf82i\xef\xf2\x95\x03g\
+\xec\xb4lu?\x84\x95\x98\x16)\xfe\x7fX\x9f\xeeX\
+\x82\x94\xa0\x85\x83\x84$-*\x22\x17s\xf6r\xde'\
+\xe4V\x0as\x8b\x0a\x00\x95\xd8Xy\x8a\xac\xcaB\xec\
+t@\x8d\xe9\xe5\x05\xa1E\xe5\x1a\x04\x8f \xe6$v\
+\xfd\xfd$\x00\x98\x17$\xae\xa9hs.\xe2\xe0\xf1o\
+\xb6\x1c\xe5\xeb\xcb\xf7yK\x03\x01+*\x06o\xd4>\
+J\xe1E\x09\x0e\xc6\x85y\x91\x1b\x1e/\xc8\x01i!\
+\x05U+\xa1sg\xe0\xe0\xd2b\xb1\xb0\xd6\x13\x0e/\
+\x01\x17\xd0qUn=\xc0\xdd\xd0\xac\x99\xb78\xfc \
+ \xa8\x04+\xf1\x84\x1a\xcc\xd8\xbej\x85\x02\x19\x03\x0b\
+=\xe7{\xe4l\xc0\xd1f>\xa3n\x01\xc9*\xad0\
+\xac\x8f\x8b\x0b\xe2\xc5\x0b\x0a\xec\x9b1Pc\x9fg\x1d\
+\xfeM\x81\x05\xf3\x8e\x84\xc9y\x92\xeb\xbbA\xf3\xe0{\
+\x05\xe9\xe5$\x8e\xef6\xcf\xb2\xa9\xe0Q\x09\x07\xa1\x12\
+\xc9\xff8\x97\xd9\x87\x98\x07\xec\x93\xfa\x1e/\xe1\x8e\xee\
+\xca\x00\x00 \x00IDAT\x08\x91(\xc7O\xa0\xf7\
+\x9d\xf1\x823\x87}\x91\xf9\x1cY\xe7c\xe5\x97\xe7\xcc\
+9\xc1u\xb1\xbf\xb3^bB\x8cqf\xff\xe7s\xb4\
+o:\xb7\x16\xfb3\xaf\x04\x9a\x8c\xcb\x82A\xee\x96\xeb\
+\x8crx\xf8\x87|O<\x87\xf0o\x9e\x0a$\x9a\xa1\
+%\x00\xae1\x0fH\x99\xff\xec\x07\xa1\xd7\xda\xd7\xed\xdc\
+X\xda#\xd2 &\x00b\xa2\x81qg<Y/\x9a\
+w\x9eH\xe6\xf3A\x840\xff#\xe9m%\x05\xe49\
+\x97s\xb8\x22\x09\xca\xfdShB]\x89\xfb\x8e\xfe!\
+\x89\x17\x12\x00\xac\x1b\xae'\xaa\x0f\xb0O\xf3}|.\
+\xad\x8bpv\xc4\xde\xfa\xc8\x01 \xf9\xbdnY\xb5T\
+1/\xb8\xdf\xd0\xd21\xb0\x7f\x0a\x99Ma\x95\x16\xb3\
+n~c\x8bk\x9e\x0fH^\xfe1\x8f\xb8?\xc67\
+\xb6\x14\x92\x10\x8bj\x07\xac\x8b\xa06\xe1\xe7>~+\
+\x09$\xb5\x94\xd9\xa9k\xe7\xaes\x87(\x9e\xa6\xa0\xd7\
+\xedg\xd6\xcc\x13\xfc?\xb8v\x90\x0de]P0!\
+\xced\x7fe\xdf\x16\xa9w\xbf\xb4Yz=\xc7,\xbd\
+~\xdf\xac\x92\x83;'\x1e\x9cA\x9b\x99\xd5\x16\xe0\x09\
+\x9fp\x824\xe6\x9e\xff\x03r\xa51\x07&T\xac\xfb\
+\x0b\xcd\x1ah\xb0Xh\xfb\x1d\xcc\x9a\x03T\x8e\xb5\xcb\
+\xfc)\x11\x90\xa1\xff\xff\xac\x17\x92\xdd\xbe\x95\xc5\xca\x7f\
+R\x03\x19\x03\x01`*\x04{)\x11\xf1\xc7\x0a\xf9\xf2\
+\x03\xfae\xc9Vn\xc8\xf9F\x05:\x0b'@\xceD\
+\xaeS+\xf0T\xf42\x82\x80@o\x91P\xd1\xbaV\
+\xad\x0d\x976\x8e.\x15\xd4\xcbsMb\xac\xff\xb4Y\
+z\xdd/Yrp\xfb;\x92\xdd)\xc8\xe4\x8e\xe9\xe7\
+\xb7\x985\x951\x135\xfb\x8e6\xc0\x7feY\xaa\xdd\
+L\xb6)'\x08fe\xce\x81\x0dG\xd6k\xf7l\xb2\
+4\xc1G\xbfL\x96\xc6}\xf47\xb3\xf4\xba`\xb2\x85\
+*\xb9\xdbh\x1e\xb3\xfa G\x87\x98%\x7f\xe7\xca\xf1\
+\xdf\x8e\xa7\x093~\xe1\xf8\xaf\xc6\xad\xe2<C\x19\xf7\
+\xc8\xe6\xfe\xbe2q\xbcB\xa1\xcc7:\xeaiy\xcd\
+\xdf\xcd_\x1d\x03 \xf9\xc3>f5a`\xf5\x97\x5c\
+\x81\xe1\x00\xc4\x91 c\xcd\xc2cAi\xe1\xbb\x8c\x1a\
+\x1b\x0a\x8e\x0f,\x9a1\xe3\x87\x9c\x17\x5c\x14r\xb8\xbb\
+c\xd4\xbbm\x00\xce\xc3\xeb\x86\x07\xa4\xd4!\xeaj%\
+\x99\xd6\xab\xc9\x81\xcbF\xc5F\xc8\x86f\xcb\xfc\xb6\xe6\
+\xc0\x97z\x82\xf7\xac+\x90\xcd\x1c\x16\xc9a\xeb\xce6\
+k\x02aU&}\xc1\x03\x8d\x83\xf4\x0e\x8e\x80#\xcd\
+\x9a\xf1\xa4\x02\xc7\x82g\xe3\xe6\xe0\x8f\x07M$\xb1a\
+\xc3\xc7\xd1B^K\x15\xd7a#\xb3\x86=\x9e\x9e\xc7\
+\xbbr\xb7k\xdd\x80\xe2\xf7\xf1=dhi\xb5\x11\xdb\
+\xba\x93\x87\xc1Z\xce:\xb7O\x99O\x81\xc05\x8d\xe3\
+\x86cB%^\x953\x1c\xeb\xeep\xb3\xec\xb0\x95\x1e\
+~z\xc5U\xe1\xcf\x0d\x1b\xb77\xec\xcf\xcc'H\xbd\
+\xc4R\xde\x7f\xc8\xac\x81:\xb3\xf12_\x99\xbf\xd1\x81\
+\x84\xa4T,\xf6\x04H\xa3W\x985\x89'S!\xf9\
+jC\x92v\xa6Y\xdd7\x1d2\xba\xb1\x02\xdc\xc3%\
+\x1b\x07\xa4\xf4=\xe5\xf3=\xb0\xa7B\xc5A\x06\x94\x9d\
+\x9e~2\xd1$\xe2\xa8\x5c\xbe^$\x9fT\xa49\x18\
+q\xe8\x08\xb4\x090_#\x84\x02\x15\xde\x09'm+\
+\xf7\x7f\x9f*\x18\x1c\xd4\xcc\x87\x93\xc5>N\xa5\x0e\xc7\
+\x1drH\x02N=W\x97\xf7c\x1e\xd1\x0b\x0a\xa2\x05\
+\x87o~9\x0eT\x10Vu\xc8~\x99'<7\x12\
+\xd2\x04\xda\xfc=\x0e\x0b\x09/%P\xfc{y\x1f\x09\
+,\x10[@>q\xd8 \xd7\xe2{p\x14\x99\xb7\x82\
+\xdc{b\x19\x88\xfe\x01\xa5w\xde\xc7\xe5-jI\x8a\
+\xb2R\xac/\x05\x9e^\xe1\xc4aS\xa5\xcf+i\xe2\
+\xcap5\x8d\xcd\xd5b\x01\xc9\x0f\x01$\xbd}@\xf7\
+Q\x8bP\xef\xf2\xf0~\xb3\xaa\x8e\xe1rf\x07\x9a5\
+\xb2z\xb4\x96\x08\xe9\xe7\xf3z\x8e\x10A\xdf\x14\x12\x00\
+.\x01\x02\x00%\x00\x5c\x0e\x92\xd6\x09\x90k$\xe4@\
+\x16@\x86\xf8\x9aBb4\xbcEjC$(%c\
+\xea\x88#\x90c\xac\x0b\x02'\x12y<_\xae\x87\x84\
+\x0f\x0e\xd3\x12\xa5\x222\x5c\xa5\xf7\xf1y\xac;*\x9b\
+8\xa4\x90\x8ar\x1f\xa8\x0f\x80\xf0\xa3\xd2-U\x88\xee\
+\xbdv\xb27\x8e,\xec\xcf\xef,-V\xf4\xf6:\xa7\
+Jt\xf4Q\xcf\xb8R\x08=\x02d\xd6;\xe7\x95\xe4\
+`\xbd\x85E\x01>-\x88>\xdf\x08P8O\x99\xf7\
+\xec\x03+\x88e\x1e\x92@\xf6\x09\x1c\xde\xdf\x985\xac\
+\xd7$Th\xe9a\x1f\x13G\x8a\xfbI$P9\xff\
+\x99\xef8\xdc$\xbe\xf1\x13@\xe2\xc0\xb1\xc3\xfd\x9c+\
+\xae\x8b\x8d\xd5\x12\xf3\xa8\xb8\x14\xe8\x11'q\xca\xf70\
+\xeew\x9a5\xe7+-|\xecS\x04\x02\xac\xc7\x0b\xf5\
+9\xec\xbb\xec7\x8c\xd3\x9d\xba\x1f\xc6\x8f\xfb\xa0\xf2\xcf\
+<c\xde\xf1\x8f\xe7z\xbf\xee\xff\x0fJ\x84i=O\
+SW!P\xe6\xb9\x91p\xe0\x15\xff\x8d\xef#0#\
+\xb0\xa6\x22\xc9\xbe\xcf+\xfb6\xf7M\x80\xc6\xf3\xc4\x8f\
+`\x9fg\x5c\x18\xd7 ;\xea\x1c<V\x10\xd9\xec\x05\
+\x02\xb0\xa0\xfb\xee\xe3@`\xc7|\x86\xa3\x00?\x19\xd2\
+4\x15\xaa\xb8>\xe7\x0ea\x5c\x02'\x8c\xffL\xa1\x82\
+\x9f\x09\xec\xf0\xef\x02\x12\xc9\xfd\xa5\x18\xd8\xb3\xfe\x9f\x0c\
+\xf2y\x8f\x05\x16\xfd\xd9\x9e\x00(\x092\x12l\x8c\x07\
+\x05\x15\xeeO\x5c\x22\xbe\xfe\xf9\x9c(\x13\xc8\xf5\xf0\xff\
+\xf1\x83cB\x00\x8e\x02\x12\x93\xf8e|\x1e\xf3!&\
+\x18\xf8{\xce;\xee\x97\xfb\x8c-\x06\x5c\x0f\xa4\xa6\xb0\
+\xd2\xf3<\xf9;\x12\x85\xcc\xb3\xc0E@\xc2\xc0\xd7#\
+\x7f\x17H\x93\xc7\xe0\xe2yV-e\x90\xaeR\xb0\x03\
+\x09,Y?\xe7j\x89H\x15\xee;\xf6\xfa\xcfm\xfe\
+0?\x22g\x01\xf3E\xe7\xf3\xb0\x9dY%\xd9v\xe4\
+/\x08\x1d8Gx\x1e\x8c#\x89r\xe6\x15\x05\x05\x12\
+f\xb4\x84\xeb}\xce\x815\x8fY\xa3rD\xab\x9dZ\
+_Al\x0e\xffc\xd6\xac\x13\xfch\x9d\xef\xc4\x19N\
+^\xad8f\x22\xe7;\xbf\xdfTP~\x91\x15\x9eK\
+\x05g\xbfL\x9e\x95\xac\xc9\xe4\xab28\xeceV\x03\
+\x8d\xee>\xb3\xda\xd3O\x06$gF~\x96^\xfbd\
+C\x03\xad~.\x0bW\x14\x87dc\x91\xeb][3\
+\xff\x93\xe7$;\xb7:\xee\x8e$@\xe7\x1b\xf2&\x0b\
+\xd4g\xd7J\xb5\x1f\x94\x0c\x84\xb9\xa1\x96\xd9>$\xd9\
+\x97\x95\x89=]\x09\x8c\x93k\xe5\x16r\x98\x5c1\xfc\
+\xbcX\x1e\x7fQ\xff\x1eR\xa7\xc9\xd7\x9a\xa5\xeb\xfd\xba\
+Y\xa3\x83\xbe\x9c\x99\x1c\x86C*\xe9P\xf7\xb3dg\
+f\xa8\xfd\x9e\xb9\x82\x08y\x99\xe9\xc1__\xc9\x03\xc7\
+/N\x96\xc6u\xfcZ\xb3\xf4\xfa\xe3d?I\xff\xff\
+\x9df\xe9\xf5\xebf\xe9\xef\xfe/Yr\xe0\xc7\xdfl\
+\x96^\xf7\xb3\xee\xff\xf4\xffO1k \xbe8>L\
+tAx\xe9U$\xe1\xe2\x09\x9a\xbf\x9b\xd5\x0a'\xbd\
+-\x96\x0e\xb0\x84\x80\x07\xd4\xb1g'\xf6\xf6p\x80\xf2\
+\xca\x81\xc3Bb\xa1\x06H\x96\xf7\x22s0\xb1\xf1\xc1\
+ZO\x0f<\x8e8\x19}K\x07\x5c\xde\x04\xd83\xb2\
+\x02wq\x08\xdb^2\x90'l\xac,H\xd8\x83\xd9\
+\xb0\x80\xb0\xe2\x18n\x91\xad^\x1f\x5c\x10\x16\xe8\xfd\xac\
+\x22G\x80\xd4PQ\xa37\xdb\xc4%M^\x92\xf1\xf7\
+\x96\x9b\xf7\xc8a?\xa9\xf4(\xe7\xf9\xb1gFhd\
+\x198o\xc1!\xc3\xbd}\xd9x|\x839VPv\
+6b*\xb5@\xbb\xb8O\x1c\x86\xed\xb3\xd5@\x8b\x0d\
+\x8b\xff\x8f#anN\xcb\xfe\xcc:b|\x09\xccx\
+n\xa8\x83\x98\xac\xc8[*G\x87\xab\x0c\xf09\xd60\
+\xf2\xce\xa67\x13\x08\xe4n\xd9\x8c\x1c+Y%=t\
+G\x8f\x83\x9d\x8a\xdb\x8d\x9e\x10(\x95A\x8d\x93#\x1a\
+@0}\xa9\x90\x81B\xde\xe2\x10j\x91\x97\xd1\x22\x93\
+\xd5G\xe6k2\xbc@4M\x9d\xc480v4K\
+\xeb\xeb\xc7f\x0dY\xd1\x8aEE\x80V\x9f~\x86Y\
+\x9d\xb7@\xb0\x9dC\x05\xc8,=\xe4J\x08x%S\
+dV\xc3Af\xe9\xe7#\xb39\x82al#\xed\x9b\
+\xccS\x12\xb4\xac\x13\x1cp\xe6+\xac\xf8\x1cd$\xda\
+\x08,\xef\xd4<!\xd0x~*\x1b\xaf'\x86t`\
+9d\x99\x96\x1e%\x0c\x86_+\xd0\x86\xa5\x1d\xa8\xbc\
+\x1c\x0c'U\xa4g\x9e@\x83\xeb\xa6r\xca\xbaWB\
+\xc6u\x82y\x9e\x1c\x94\x0a< \xc5sG\xeb\xbe\xd2\
+\xba\xd1\xed.RD*}\xac\x7f*h\xec\x03/R\
+o\xf3lA\xf0\x02\xc4\xdaI\xc2\xceU\xa0\x07\xa2\x80\
+\x04\x01\xaf\x0f;)Z\x0e<\xbc\xa2\xaf\xc4\x14\xc8\x12\
+\x9f\xef\x04\x0e<\x17\xfe\x91\x88\x02!CB\x86\xeb\xd7\
+\xbe\xebj\x12\x1b*\xf1E\x82C\x0eG\xb7\x8fz\xd0\
+u\xce\x0e+\x98e\x99\xced\x8d*\x8c\xce}\x12w\
+NZ\xcb>\xb2\x89d4I\xbc(\xe1\xef\xc8\x85\x8d\
+\xcdr\x0fu\xf6\x1b|\xffR\x02\xccI\xd5v\x90\x5c\
+\xe7\x15J\xf0\xf3\x8f\x16\x8b\x07K\x82\xc1+\xfeTF\
+\xd9\x97\xf1;\x98W\x90\xff\x09\xe1\xd5\xad'\xd9K\xc6\
+\x95\xc4'\xcf\x9b\x00\x8a\x9f9\x7fp\x0c\xab>{I\
+|\xdc%\xb5\x0c\xe6;\x9f'\x87\x7f\xb8\xd9\x11R%\
+\x01\xb5\x9a\x12!<O\x1cP\xe6\xd3\xadJ$=\x1f\
+*N8\xde|>\x01^\xd0\x8bw\x87\x9d}]\x9c\
+\x11\x9e\x00b\x1er\x0e\xf3~\x1c[\xe6\x07\x01,\xfb\
+\xf7KT\x99'\xd0\xdeP\x09x\xae?\xcab\xb1\xdf\
+\xc3\xf5\xa4\x16\xbd\xb1o(1BK\x10PX\xb1T\
+\xfb\xb8\x8f{\x82\xab$^\xb5n\xdc\xe1\x06\x91\xc8>\
+@\xa2P\xaa?\xbe_\x80\xc0\xc0\xc1\xc6\x0f\xbc\xc7\xac\
+I$\xf0{*kZG\x9e\x90\x15\xf7\x8b#\x91H\
+\xf4\xb1\xbfQh\x22\x91\xb3\x8edE!\xc3\xe5\xdc\xa4\
+\xc5\x03\xff\x87\x7f\x044\x0a\xec=1zS\xb9>d\
+\xb8\xa6\xb5t\xd5\x96\xadr>3\x7f\xd9\xb7\xf0\xebb\
+\xe56\xf6\x5cG?,\xbeF}w\xfc:\xd6?\xf3\
+\x19\xff\x8d\xeb\xc0\x1f\x81\xd4\x16dh\xec\x11\xe7{\xb8\
+\x1f\xee\x8f}\x15\xa4\x15\x09i\xf6yUP}\xff\xc3\
+\x9fg\xfe\xc5\xc0.p\xef\xf8:\xe0\xf7\xf8\x991\x01\
+\xc0u\xc6\x00\x94\x9fck\xc0\xe3J\x8cQ\xf9\x8dr\
+q\x14\xb8\x96\xea\x96\xec\x96l\xdew\x87\xfc\xcc{t\
+\xaeT9\xd2\xf2\xdc\x90\x07\x0d\x15v\x0f\x14\x9f\xf2J\
+t\xf9\xf9\xe1\xc0\x15\xc0y\x1a+\xfb\xb1\xc2\xcd\xfd\x06\
+\xf2Q\x9f?\xac/>\x9f@\x9b\xf7\x83(\xa40\x10\
+9\x0e\x86\xc0\x01\xc0\xba\x8a\xbd\xf5\xdc?~\x14r\x96\
+A\x8e\xd2\xff\xf1\xf7|.?\xb3\xafp\x7fQ\xc6\x97\
+\xdf3\xbfY\x9f\x81\xf3a\x9aJ\x03\xeb\xe7?.\xab\
+X\xd6'\xe7\x0b\xfe\x86H\xf3\x87W\x96\xc0\xbb;\xcf\
+\xac\xb9\xce(\xbb\x188\x1c\xbc\xe5\x07?\x8e\xb8\x83\xe7\
+\x89\xdfK\xc1\x01n\xac]K\xcb.\x05.\x90\xe4>\
+\xaf\x19\x17Z\x11\xc5\x81\xe5-\xc0\x9f+d\xfe\xc4!\
+\x139o\xbf\x97 \x8dW\xaab}T&\xa3\xea\xac\
+\xa2\xde_b\x96~^\xc4\xac\x91\x17\xdb;+p\x17\
+\xd6\xe5w6\xd0-A!\xbc\xd2\xf9\xb7L\xf3U&\
+\xe8\xccf#y0w\xbb\xb8\xdeu\xae\xf8\xa7\x00\xb9\
+?-\xd9\xa9\x15J\xcb\x80Ar\x84\x0e|\xae\x18[\
+\x05\xf2\xa9dO\xd7\xc0\x10y\xa5\x0cD\xdeV\x13\xeb\
+\x9e\x86\xcd\x93\xde^9\xf8\xb0$fh\xfaM\x95\xc4\
+\x0eR\xa1\xec\x08\xbc\xb4A0X\x0b\xc1J\x82$\xfe\
+oU\x1d\x00\x82\xe9\x8e\xb6H\xe2\x80\xac\x8fnJv\
+\x83~o\x0e\xd7\xc3f\xe9\xf7G$K\x07\xe8\xe8\xf4\
+d?M\xe7\xdf\x1f\x93\xa5\x83ttR\xb2\x13\xd5\x12\
+\xb0T\x95y\x1a\xdfs|\xaf\xf1\xf4\xbc\xc6g\x8c/\
+>\x9e\x0e\x82\xd1&\xa3MG\x9b6z\xf0\xf4\x1a\xd2\
+\xcbK\xc2\xe6u\x1a\xcf\xafd\x1b\xebN4k\x12'\
+@\xcd\xb4\x10\xfc\xa0dc\xa22E\xc5\xa0:FS\
+YUYx,$2\xe3\x91\xfd\x93\x03#\x92\x11\xb1\
+Q@\x16\xa7\xcc\x16\x15\xe2\xfe\x15f\xe9\xf5\xa6\x22;\
+\xd5o\xd2\xbf\xbe\xb7\x04\xd2K\xcc\x1a\xc8\xaa\xd4\x19<\
+Q\xf5\x85\xc2y\x80\x8a\x05\xd0\x18\x87\xdc\xd1\xabF\x05\
+C\x08\xfe\xdc\x03~d\x93\xd9\x85\x04\x10\xbdm*\x0f\
+\x96\x19\xdc\xb6!\xbf\xdbOl\xda;\x94\x96\x0b'\x97\
+A\xaf\xf7\xe2\x02]\xf6\x1ew*\xe8\x04n@^\x0f\
+\x96\xcc\x18\x15*\x1cbz&\xd9\xc8a\x93\xc6\xd1`\
+\x83\xa6\xc7\x88\x0a\x19\xe4i$Rh\xbd\xb1c\xde2\
+\xf0\x1f.l\xe4T\xf8<0\xb6m\xf3\xc9\x86\x0b\x81\
+\x8d\x0b\x08-H\x8b\xc7\xb2\x80V%\xc1\x5c-\xbb\xc8\
+U\x8e\xcb\x10\x12\x9bk\xdf\xd8\xb19@\xd9/P\x89\
+ \x10#3\x1a!\xb6T`\xe7\x11\x09\xca\x0c\xb3\xaa\
+>\xe0\x10\xa9\xff5\xab\x81Hw\xaf\x12\x95\xac\x0b*\
+\xab\x04\xea\xfa>\xf4\x94I\x00\x8c\x9d\x92\xcd\xb8\x11\xe6\
+\x0cs*T\xd6U;\x94(%a\xe7$\x8e\x1f+\
+\xec\xda\xb4\xd6\x0c\xcb\x0c\xcb\x0e\xcb6\x07\x11\xf3]\x95\
+~\xae\xdb9\x15\xc4\x0d\x91\xae\x22CQ\x1d\xc2\xcdz\
+c\xa6R\x91\x05j\xcaAD\x8b\x97\xe4br\x22\xf4\
+\x90\x9cx)\xfb\xe0\xcb\xbaU\xbaUr\x22\xb5\xb0\xb8\
+\x83\xac8$[m\xf5x\xbb\xd9\xf4\x16\x1dd\x9a\xba\
+\x93\x94\xd8\xe2yQQ\xa3R\xc7\xf3\xac\x15\xf9\xf2\xba\
+\xa8\xe6%\xfb\x00\xba\xd8_\x09\xaa\x11<\x1f\xed\xdf\x0e\
+i\x97.xwnwNwN\xc3-\xc2>\xc3\xf8\
+\x92\xe0\x06R\x0c\x02\x84@\x89\x8a\x08\x95yS\xad8\
+\xb4\xb6\xf2t\xdbj\xbf\xf8\x1f\x91d^\xaa\x0a)=\
+\xdcB$\xe0\xd8:\xc7\x01z\xf3\x90\xf0\x80\x10b\x9f\
+!\xe0Qo\xbeW\x14\xc4]`\xe9\xe3\xcc\x11\x22\xce\
+\x95n\xa2;\xbd;='h\x8b\xda\xc1\xcf\xd5BD\
+B\x84\xd6'*\xd8 G\x90+d\xfd\x90\xd0#\x80\
+<1[\x1d\x97O\x15YGwH\x90\x19e\xff\xa7\
+2\x8c\xec\xdd\x0c\xedk\xea\x81t\x1d{\xb8\x1c\xa8\xa0\
+\xc5\xd6\x92\x18\xc0\x10\x10TR\xc52\xbe$|A\x00\
+\x00\xad%a\x80\x83F \xad\xf5\xe0\xbd\xd4Tt\x09\
+\xac\xf8\x87C\x07\x99(\xad<\x90drn\x11\x08\xd0\
+2\xc5\xfaZE\x015\x0ee@zxK\x15\xd7\x8d\
+\x83\xaf\xf3\xc4+\xa9\x8c\x0b\xf7\xcfx\xf0\xb9T\x88A\
+\xa6\xd4\x16\xa0\xa9\xb2\x88\xec\x0b\x91-\x9b\xf1\x86\xf4r\
+q%\x9c\x80\xe8\x9f\xa3\xfb]\xaf\x901Z\xc3[\xde\
+\xa7#\x0b\xf8o\x15\x90]\xa6\x84\x0e\xeb\x059@\xf6\
+\x05\xfc\x0f\xe6\x13~\xd1\xaa\x22\x9d\xc6\xf1&\xc0$p\
+\xe7\xfd8\xb2\x11\x92\x8ecL+\xc2\x0d\x05\xaa\xef\x1c\
+\x1c$\xacH,\xcc\xe3-\x10\xa5u\x84\xdeX\x90#\
+!P\xf0D\x9d\x90H\x16\xceuKV5\x0aWw\
+\xe0\xe7XI'` `\xc4\xaf@V\x15\x19U%\
+X\xbb-J\x00\x9d\xfd\x95\xbb\x9b\xde\xef\x90\x18\xea\xd6\
+R\xe5\x94\xdfs~DRG\x02\x9d\x9a\x08(\xaf\x0b\
+\x07\xc8>\x81\x11\xff\xf8{\x02H\x02b\xfe\x81\xdc\xc0\
+\xaf\xc0\xefA\x95\x84y\x0c\xd2\x92\xe7\x88\x7fH@\xc2\
+<a\x9e\x93\xa8e\x9eG\xa4\x02\x81M\x0c\xfc\x99\x8f\
+\x8c7\xeb\x85\xef\x8bl\xef\xac\x07~f\x1d\x12\xa0M\
+\xaf\xac\x17\x92\xbcG\xbd\x12_\xae\x8f\xfdh\xb6\xae\x87\
+\xfdA\xe3:\xdc\xa6\xe7\x0d\xb7\x0b\xeb\x8e\xca:\xfb\x1a\
+\x01!\xd7\xc1\xf8s\x9f\xb5\xd5\xa1\xec;\x92\xad\xf5V\
+\xb3H\xde\xc7<\xb87 \xf7\x18\x07\xbe'\xca\x8e*\
+\xa0\xcf\x88\xe4\xa7\x9a\xfb%\x11\x19+\xfc\x8c\x1f\xeb\x92\
+\xef\xeb\xbd\x05\xa0\xac;\xd6\x05~'\xe4\xd1\x04\xfc\xac\
+\x17\xcew\xfcT\x12\x1e\xcb\xcb\xdfc\xffb\xde2\xaf\
+\xe0,\xd2uw\x0b\x9a\xbd@\xc2`\xa1\x80\x94\x8bd\
+\xaa\xcc\x0b\xe6;\xef\x8f-\x01\xdc\x07\xe7\xb6\xce\xcb\xe1\
+\x9a\x12\xc8\x9bwg\xfe]\xf7\x88Y3N\xe3\xbeo\
+\x14\x15!\xd69-\x84\xf8\xcfQ\x06\x91\xfd\x0b\x0e;\
+\x12\xaf\xe3\x05\xe9\x0e\x22\xdb\xfd9\xf9\x8d\xfe\x5c\x84t\
+6\x11w\x93q\xf7V\xee\xf3\xbb\x9fw?\xaf\xdf7\
+\x91ow\xe1\xea\x08\xf7+&{IvX\xb7\xcdP\
+\x87\x17\x9b\x89\xe5}\xac\xbe\xd2\xa3\x9c\xe5\xb0\xae\xab\x15\
+tz\xd1Fk\x9bic\xbfI\x81\xcdNb\xfb]\
+\xb7>\xf8\x9c\xc9H\x0em\xbfN\xb2u5\x90\xdb\xd6\
+\x9e@\xe4\xb6\xac\x9e\x9a+\xaa\xc8\x15^n\x0a\xf5\x95\
+\xdcb\xf4\xf6d\xef\x90\xa3\xf8\xc1\x17\x80N\x0b\xd2\x8d\
+<^vSOk6<z.\x8cs\xc0\xd8\xe9\xbf\
+\x92\xec\x90\x06B/\xb6\xe0\xd1\x17\xcd*\x8bf\x0a\xac\
+\x935d\x10\xda\xd8G\xa7\x9a\xa5\xd7\xf9\xcd\x04%\xde\
+%\xcd\x87\xfb\xcc\xd2\xefo4K\xbf\x7f\x9fY\xfa\xf9\
+\xa7\xc9L^b\xffd\xfb\xa5\xd7\xd9\xc9\xd2F0z\
+\xcc,\xfd\xdd\x83f\xe9\xf5\x00\xb3\xf4\xfb\xdc\xf3\x90\xfe\
+\xfe\x19\xb3\xfc9\x19\x82h\xf8\x83<!\xa8t\xe0\xa0\
+\xa9\x12\xdb\x1dk\xd6@\xad\xe4\xc8eR\xc3\xfd\x1a\xa8\
+#\x13\x89\x8a\x81z:\x81\x06z\xa5+\x92\xcc\xe0\x80\
+\xc4^C2\xe6s\xcb\xe0\xb2\x01\x12\xc8J\xbe\x88\x03\
+\x94\x9e\xc34\x1bs\x8f\xbc\xb3\x04oa\xa6@e\xa7\
+\xe6\xb9\xb2\x90\xa8|\x10\x98@N\x03\xf9\xd4ef\xcd\
+\x06\xc0\xc2$\xa0\x9a\x9d\xb7\xfaz\x1f\x9b\x09\x82+v\
+\xf8\xfe\x16\xb3\xf4<>e\x96\x131gX\x22\xc6\xaf\
+[\xb2s\xc8a\xc2\xce=\xba\x7ft\x9f\x916\xba\xae\
+\xb7\xa0\xf4N\xd2%N\x83ag\xc9WQA3R\
+\xac\xf3U\xd9\xf8E\x95\xed\xf4\x8c-${'d\xab\
+\x1b\x1c\x9fKB\x82\x0c\xe4s\x99Nl\xac{\xde\xac\
+\xb6\x9a\xf8?\xc6\x91\xc0\x0aGK\x81\x9do@\xcc\x83\
+U\xb30\xd7\xd8\xf0\xfdd?h\x12f\xc8\x19Z\x03\
+I\x9ag\xdd\x0f\xcd*t\xb9\xbb\xda\xacq,\x90\x99\
+\xa4\x17W\xad#\xde{&Hm\xbfa\xbfA\xbfA\
+U\x05\xb0p6\x07\xb4\x9b\x98\xa5\xf7\x1d&\xee\x00 \
+\xf8@\xc9\xe0Z\xd0AJ\xe0\xd2-Zt[\xbb#\
+\xccj\xef\xf3\xe4\x09f\x0dtU\xe4gp~\xb0\xc1\
+\xc2\xb5\xe0\xdc /)H\x01Zg\x90\x91sG\x9e\
+\xca\xef\xba\xea\x99\xfd\xec\xd8\xc1c\x07\xe7\x0d\xbe@\xcc\
+\xde\xac\x84\xe4\xc1\x85c\x05\xd5\x06\x9f\x9f\x046\xf4\xb0\
+\xbf\xcf,\x1f\x1c\x85e]2v\x99\xf4t\x83\x8a\x04\
+I\xe1\xe9\xce\xdd\xce\xb9\xa7|\x8f\xc1\x12\x97\xbb\x97^\
+r\xefq\xfbu\xe9\xb1w\x87\x0a\x87\x03\x87mo\xf5\
+|\xb3\xcf\x82(\xa2\x87y\xad\xe2\x08z \xa5\x8a.\
+\x89\x15\x97+S\x8f \x0e\x8e\x07\xe4p\x0eP\xc1#\
+`\x22a\x89\xc3\x07$\xfa\xab\xe9I\x1f\x96\xde\xffI\
+\xb3f\xff!qG\xcb\x0a\xe4\x8d$<\x09\x00!G\
+\xe5`_|X\xc2HPS\xd0\x92\xf7\x8f4\xfe\x05\
+\x99\xf1\xb1\xb1=\xc7\xf6\xcc\xf3\xbf\xa8\x0f\x10@\xe3\x08\
+\xb2O\x90\xf8`\xfc@D\xb0?\xaf(\xee\x94\xed\xc4\
+R\x8e\x8c\xa4z\x0a\x9d\xb4gyA\x1ca\xdd\x07\x09\
+\x02;=\x81\xeeL\xb1\xfe\xdf\xa1@G\xeb\xdcI\x0b\
+i\x89\x00\xb1\xc78\x00\xc5\xe5\xff3\xaf\xb8~\xeeG\
+\xa4i\xee@1~\x0b\x05\xf23\x9e'\x81vd\xdd\
+\xae:\xd2\xc5\x01\xa6\xe5\x80\xde\x7fz\xcf\x09`\x1e\xf1\
+\x9e\xee\xa9=\xa3|.H\x16AB\xd3\x9c/\x81\x9d\
+\xc84i\x85\xc8\x8d\x80\xab4\xfa\xf3\x15\xb2<\xb5\xe2\
+\x16\xe5\xbe\x98\xf7\x8f\xe9\xf7@~I$\xc5\x0aT\xd0\
+I\x9f\x86\xe4\xe0\x1f\xe3\x1ce\xe1\xa2<\x1c\x8e<\x01\
+\x14\x95S\xbe\x97q\xc7A\x8f=\xc0\x9c\xbb@\xe2A\
+\x90\xcc\x90C\xcbu>\x10z\xfc\xd5\xaa\xe1-Jz\
+\xce\xe9T+\xdf\x0fr\x94\x04$\x01\x14dV<g\
+\x123\xa8\x15\xfcJd\x8e\xf8\x158\xc8 \x1c\x94\xe8\
+\xf5D\x19\x082\xc6\x03\x08,\x89\x95\xa0\xce\xe0\x0e5\
+\x9f\xcb\xf8/\x1c\xe4p9\xe7\xd9'@\xd6\x11\xf0\xa0\
+\x16\xa1\x00\xcc\xa1\xd6\xcc\x939\x81k\x82g\xcb\xef\x83\
+\x8c\xde4\xd25\xb5\x06\xa4\xf9YZ\xdf.\xd7\xf5\xf0\
+>\x02\x19Z\x9a\xc4\xf5\xe0\xeb*B\xa8g{\xcb\xe5\
+\xd4\xfb]\xc4_\x0bdz\xe1n\xa1n\xa1&\xd0\xae\
+\xf3&_\xb7\xab-\xe0\xffq\xfe\xf3~\x10?$\xda\
+\x09l@\x96\x92X\x81T\x92\x1en\x0ap<\x1f\x12\
+9 /\x08\x94\x09\xe8\xa3,\x1b~#\xf3\x80\xf5\xc4\
+\xf3e\xbe\xc7\x84A\x94\x9b\x8b\x5c\x00\x04\xd6\x0f\xe9\xfa\
+H\xc00\x9f\x22w\x01\x7f\xc7u\xc5\x00\xb1\x92B\x96\
+\x04\x1d\x1c3\x04\x9c\xc4\x1b\xdc\xef\xe3S\xd5R\xfc\x95\
+^{\x02~\xf6O\xd6k\xac,s}\xb1\xe5,\xaa\
+(h\xbe\x0c\xac\x03 \xf7T\xde\xf9\xdc\x7fi=\xc7\
+\x96\x82\xd8\xe2Bb\x92\xf1e\xbf\x89l\xfd\x9c#\xfc\
+\xcc\xf3!a\xc7\xbc ^\xab$\x82\xa8\x94\x90h\xe6\
+\xef\xa7\xf8%$\x16\x9a\xfd\xad\xbc\x8fs\x82u\xfa\xe4\
+T$\x85\x8f+\x09\xa7\xd8\xd2\xc3:\xe4~\x19\x0f\xe2\
+\x05\x0aa\x13A\x9d\x86\xcf\xa3\xa0\xc1\xbeMa\x04R\
+L\xee\x1b?Dq\x8dsZ\x80\xbcSb\xc9\x0b\xa1\
+\x22\xc9vu\xaf\xaf\x179oO\x9c*\x81\xdf\x1d\xd5\
+}\xa7\xfbN-4z\x0b\xa7\x10m\x13\xfd\x12f\xd5\
+\xc1\xf0\x8a\xabd\xda\x86e\xacfU\xf5\x7f\x91e\xf1\
+\x8c\x83=\x96\xa5j\xe5\x10\x04@7\xcbL\xd0\xd4/\
+\xd7\x85\x97\x02\x9a\x9d-\xa0\xc9\x01}\x9ap\xfd^f\
+\xaa\xd4\x1d]\x0f\x96\x1c\xf8\xa6\x8dh\xf4\x7f\xc9\xae\xad\
+,\xc1\xc3\xdaf\x0d\xfb\xbee8.\xcf:\xf1K\x9a\
+N<\x81\x80;\xea\xe6\xce\x9d\xa0J\xd1\xcd\xb5\xd2\x98\
+\xa1\xef\x8b5\x95N\xab .\xdel\x5c\xf6oL\x01\
+\xc5\xaa\x82*7\x95\xa7<\x8d\x9eh*\x968,\xe8\
+\xeb\xea\x80A72\xcb\xf4\xedW+\xffl\x8c\x04\x84\
+Y\xfe)\x05\xe2\xa3\xf7&\xdb\xad\x22\x1d\xc6\xef\x1e\xbf\
+g<\x05\xc4\xe3\xef4K\xbf\xcf\xffj\xcf\xb9W\x0c\
+\xff\x5c\xc8\x18\x9d\x8c\x89\x8a)\x1b\xecN\x85\x8c\x8d\x1e\
+\xae\x9c0y{#\xa7\xa6\xde\x96\xdc\x10q|\xae\x5c\
+\x16\xc8\xbf*M\xc9M\xdd\xbe\xdb\xbeq\x18q\xccq\
+\xec[\xb9\xbcQs\x00\x91\x88`A\xb2\x11\xb10\xd9\
+8\xc8\xd0\xab\xe5c\x98\xdf\xac\x92\x7f\xf4G\x9b)1\
+pX\x86\xde$k\xa0\xddB\xb0d$\xc9\xde\x9aw\
+_l\x1c\x0fz\xb5\xd5\xca\x90{`\xbe$\x12\x8e3\
+\x9b\xf1\xe29\x22\xef\xc1\x02e\xa3\x87-\x185\x8a\xc7\
+\xcdT\x99\xdcM\xf3s\xad\xdc\xd2\xf2\xc7\xde2\x83\xcb\
+\xda\x0a\xaa\x81e\x0a\xfc\xe7\x8c\x8c\xd3\xe0Q\xb3\xca\x0a\
+\xef\x10\xe7s\xc5\x01\xf0a\xb3\x8c\x1c(\x1bA\xd4;\
+G\xc6+\x1e\xd8\x04p\x22\xf1\xf2\x8a\x05\xbd\x8e?,\
+\x10xz\x813\xb9\xe4d\x95\xe7\xca\x89\xb5\xcb\x1b\xd9\
+.\xc9\x1c:\xf9\x18\x1b'-\x22\x0a\xe4]o\x1aH\
+9\x10_e<G+\x9b\xa5\xf7\xafh\xd6\xc8\x9dQ\
+I\xbcF\xd0\xce\xbf\x88\x1c\x07\x95\x01\x1c\x0c\x12O\xa7\
+\x9a5\xf2|\xba\xbf\xee\x17f\x0d\x19)2)\x90\x92\
+\xea{\xd3=\x97\x96\x81#\xca\xf8X=5WT\x95\
+\xe0\xe3{\xfb\xfb\xcd\x9a\x1eT\xb1\xc4\x0f\x0f\x98\xd5\x80\
+hX\xd0\xac\x81\xb4\x09\x89\xe0$X8\x80k\x97\x9e\
+}\x12\x98\xeexQ\xe1!\x01\xc4\xc1\x09i\xdf\x8f$\
+/&R=\xe4]<\x00\x114\xb4[\xbc\x9b\xd1\xcd\
+hzt\xd9\xcf75k\xb8 \x84\xecI\xeb;Y\
+S\x19g\x1d\xe2\xc0\xbd[\xf2\x84\xfb\x0b\xc2O\xa5\x11\
+\xc7A\x0ek7\xd1\x8dw\xe3M\x8b\xc3e\x22\xc1\xc1\
+\x81\x87\x85\x1f\xb2E\x10%p\x18p\xe0R!\xc1q\
+!\xd3.]z\xbf_\xe9\xaa7\x99\xf8r@\x82L\
+{g\xb6\xb1n\x05\xb3\xe6`F-\x84V\x22*Z\
+8N\x0a\x00\x98/\x90\xb5\x0e\xff,\xe4M\xae\xb7\x8b\
+\x0c\x22\x9c5@T\xd9\xdf\x94p\x1c\xce\x1f\xce\x1b\xce\
+\xcf\x81h\x96\xafE\x9f\x1c\xae\x15W\xd5\xa17\xd2Z\
+\xbb\xfe\xaf&\xea\xbce\x87\x84\x1b\xa4\x97+\x96\xf5\xe5\
+\x89\x16*\xfe\xec\xcb\x04F\xa86pN\x03%\xd4\xf8\
+x\xa0\xc18\xd2#M\xc5A\x08\x02\xf6\x09d,}\
+<\xe7\xf7JO\xf9\xb9:l\xc5q\xc2\x11\x99\x13z\
+0\x99\xf7\xff\x96CE \x80\xa3$\xd5\x14'\x7f\x04\
+JJ\x80\xa5u\xe6\xaa;\xcc\x1b\x12iU\x96\xaa\xac\
+#~V\x22\xc1\xb9Fbo0\xd0V\xdeO@\xcf\
+~\x8b\xc3\xce\xbc\x09\x155\x0a\x02\xd3\x10\x1e8\x8a\x04\
+,\x04pp\x1dIU\xc8\x13\xa5\x9c3@\xd0\xe7\xb2\
+\xbf\xbb\xa3\x1e+\xa1\xbc\xf2\x9cp`\x95\xf8\xf1\xd6\x1e\
+\xcdW'\x8b%\x90\x08\x89%'y\x85S\x88\xf7M\
+z\x0b\xdf\x14\xbdlG\xa8\x91\xd8\xe0\xfc\x07\xc2\xce\xb8\
+p\xde2/x\x8e\xc8@\x22\xebH\xc5\x8f\xe7\xc4\xf7\
+C\xf6\x1c\xe57\x09(\xa2,_d\x9b\xe7s\x91\x9f\
+\x8c\x88\x09\x12\x0d\x905\xfeF\x89>\xf6\x0b\xde_{\
+\xea\xcb\xf7<\x1f\x0a!\x04\x18<\xbf*\x13W~\x16\
+R\xc0\xc9\x5c\xe1\x1c`\x1e\xf0}\xccW\xe6\x1f\xcf\xbf\
+\x062%\xb0\x81\xf41\x06\x5czM\xe1E\xe1\xf0\x02\
+\x190\x84\xc4\x11HC\xc6\x15\xb2:\xbe\x0f\xb2H\x10\
+\xb2pIQ\xf1F\xf6\x16\xbf\x0b\xbf\x86\xe7\xc3\xe7\xe3\
+\x97\x92h\xbbK\xf7\x8f_\xc8\xfd\x83\xd0\x84\x93\xcb\xf5\
+\xe6\xa5ZU[M\xcb\xf3\xe5>\x94\x10A\x9djZ\
+\x02 \xaa\xf7\x00\xd5\x9f[\xc5\x9eq\x8e\xf2\x82\x04\x96\
+\x04\xfe\x8f{\xeb%\xdcI%\x00\x8f\x1c\x06|\x1e\xfe\
+\x0d-\x031Q\x1adic\x82`\x1a\x02 \xb2\xea\
+\x07\x19Q'\x0b\xfc\x8bs\xf8\x94\xf5\xf2\xb0\xcb\x15\x96\
+\x84\x04\xe7pl\x11a_\x89r~O\x07\xc4\x01\xad\
+2\xfc\x7f>\x17\xff!\xca8\xb2\xbf?\x17\xb8C\x08\
+\xc49W\xea>P\xfc\xday5\xdeB\x14\x0e\x0f\x97\
+\xfb\xebVS\x0bRD \x83\xf0\x88\xa4\x8cpP\xa0\
+\xfe\xd1\xaa\x86ML\xe72\xf3\xc4$\x05F\xf6\x0d\xce\
+!\xe2\x1f\xc6\x0d\xae9\xces\xfc%\xa9W\xd1bN\
+\xa2\x00N\x9eas!\xe9X\xbf\xab\x98)\x8e\xde\xb9\
+\xe1f\xd3zs2X\xe2\x03\xe6\xbf\x12)\xa3\xe5\xcd\
+2b1#`'\x5c\x17\x9c\xde\x04e\xf22\x1b\xf0\
+\xdb\x9b@\xda\x80\x9f\x87\xa8\x02\xba\xb9\xc8\x9d\xde_\xd9\
+\xe8\x81\xc8\xe6\x0a\xfb\xe1\x82\x02\xad\xa5\xcfM\x13\xa9\xdf\
+\xca,\xbd~\xdbL$z) \xeeoOvG\xad\
+\x1c\xe6\x8a\xf8\xfb%\x8bwPuXs\xcfn\x9b\xf9\
+\x17\xc4\xb8\xdb\xc7,\xbd\x9e#\x08(\x010\x10Q2\
+&G%\xfbn\x95\x0b\xcc\xdf\xb7J#\xc3b\xad\x00\
+\xafi6\x08s\x07\xdf\xa0\xff\xbf|\xe3\xc0\xaa\xc2\x94\
+3\xe4\x174\xa4\x10\xb0\x8d\x0b\xea\xdd\x8f\x9bU\x95\x02\
+\xef\x91%C.rB\x90\x01\x16\x1e\xe6\x84\x809\x88\
+\xe3Y\xef\xfb \xbb\xff\xd1\x1fG\xd7\x8c\xac%\xe0x\
+\xb3\xaa?\xee\xac\x93\xe8\xd7J7|\xf8@\x81\xc0\x8f\
+\xbdG\xa4\x87TvT\xd1\xe9\xbe!\xb5\x07\xb1\xf5\xa2\
+r\xe0\x99Az\x92\xe9\x91\xff\x9d&\xaad\x98\x9cd\
+\x8c\x0d\x17\x871:T,|\x0e\x22\x16J \x1bj\
+\x02\x9eR\x11\xa4\xc7o\xd7\xb1]\xc6,Q\xb4\x93&\
+\xbaz|\xdd\xcfQf\xb4\xdf8\xd9\xeb\x85`\xf9x\
+v\xbc\xcf\xcf\x89\x09T\x0d\xde\x9clk\xc9\xbb\xddS\
+\xa1\xd0\x1e\x10\xb2`\x81 \x1a\xc0\xf3'\xe9\xff\x7f\xcd\
+\xac\xb2\xcf;4\xd0\xea\xeb\xdfiZ^TI\xcb:\
+\xe6?n\xc6c\xc1\xbce9t\xa7\xfb\x95Y\x930\
+\xc2\xc1\x80\xbc\x036k2\x88T\xc6\x94\xd9#\x00\xa7\
+\x15&\xa7\xdd\x96j\x12*\x5c?\x81\x1a\x95YA\x81\
+\x86\x1b\x84\xa0\x11$\x18U\x8a\xee\x16\xb3\xa6\x92\x8c\xa3\
+\xcf\x81\xc2\xe7\xb0q\x01\x0d'\xd1\x15z\xcc\xfd}\xf4\
+\xfa\x8b\xfd\x1eD\x82\xcb\x90\xfc\xad\xc8R\xd2C\x9b\xae\
+.\xf7\xfcC\xfa\xe3\xeb\xf1\x8cd?m\xa0\x8f8\x12\
+\x8c\xd7\xc1\xa5\x12?\xecf\xd6\x90\xa8\xd0k\x0fK;\
+,\xda8\xa0\x1cp\x04\xbc\xdf*\xc8\x89\xe1\x8de\xc3\
+E\x16\xd3+\xca\xa1\xe7\x1ad\xc7\xd8\xd7\xb2U2,\
+\x0e\x5c\xcdwG$\x00\x05\x85\x1d\x9d\xe7Do\xd7'\
+\xcc\x9a\xf5\x00\x94\x9f\x03\x88\x8c1\x8e\x0c\xd7\x0f\x9b\xf5\
+7\x87#\x86#^\x80\x0d\x9a\x03\x9c\xfd\x0b\xd9.\x12\
+\x14\xd2\xc1v\xf5\x0e\xd8\xe3\xe9\x1d\x83[\x00\xb97\x12\
+\x09$\x86\xc4Ma8\x02C\x12t?0\xab\xb2\xa9\
+\xfe3\xe3\x82\xdc,\x99\xf8\x85\x9c\xac\xb0\x1c\xf8\x04\xa6\
+\xf4\x00S\x89\x04R\x8f#\x03\xb2`\x19\xad\xc3\x8dT\
+9\x06A\xa4\xd6\xb2i=\x9e8P8\xc6\x04\xaa\x1c\
+\xec\xc8\xbd\x1e\xa9\xbf'A\x01\xd4\x11\x87\x0c\xe83H\
+\x1a*\xac \x92p \xaf\xcf\x18\x85J\x22DK\x92\
+\xf6\x09O,\xf0\xbcP\xb3\x10\xb2\x0c\xf2I\xd8\xfeS\
+PU\x1c(\x02,=G\x87\xba\xab\xc7\xdf\xd9\xfd\xd5\
+\xd2\x96\xb9\xda\xf7h\xe4\xbb\x08\xb0H\xd0\xe0p\xe1\xc8\
+n\x9b\xad\xcaX\x82,\x82\xc3\x87yE\xa5T\xf2V\
+\x1e\xa0\xdd\x15\xc8\xd3\xa2\x1c\xd3\x7f\x9c\x9d\xba$\x1ep\
+\xacy^\x91d\x0dG_Pf\x87R\xc2NN \
+Kk\xc9\xbdr\xdc9\x97\x1eq\x88g\x99o\xb1\x15\
+\x8d\x9f\xd9\xf7\x22r\x81\xf1\xa6\xc2\xca\xbe\xc7kt\xbc\
+\xf9G\xa2\x84\xfd\x8bqc\x9cT9t\xf9Q\x1cM\
+>\x97\xf5\xc0zg\xdf\xe0\x1c\xe5:c`R\x11\x19\
+e\xfc\x22\xcb\xba\x12\x11\xecK\xde\xf2\xb7@\x90\xe9\x12\
+\xf7\x05\x95)\xff^\xc9Pz\xc0\x8d\x8a\x03\xec\xf5\x04\
+N\xac\x0b8=8\xe7\xe3\xba#\x90!a\xc0}3\
+~\x04\x16\x04\xa2\x91\x9d\x1d\x84\x04\xfb<\x15Z\xf6C\
+\xcd;\xaf\x10j\xdf\xf3\xf9\xc9\xf3\xe0\xfe\x08|\xa3>\
+7\xfb\x16\xf3\x06h=\x5c\x00\x91\x5c\x8c\xeb\xa6\x90\xc0\
+\xff'\x11\x04\x12\x83u\x1dz\xa4\xfd\xfe\x19'\xe6w\
+\x0c\xa0\x08\xb0x\xee\xf85\xd3+\xb0\xe5\xfb\x16\x0c\xad\
+\x00$\xea\x9e\x09r\xc2\x15*\x0eR\xa4\x5c\x1f\x15j\
+\xb5\x8et\x9b\xab\x05\x80\x16\x13\x9e3\xe7+\xf7\x81?\
+\x01\x97\x05\xe4\xb1\xb7\x14\xf9E_\xffc\xdeRQ\xe6\
+\xf5\xe5\x81CdaUJo\xf0\xfb!\xa115\xf1\
+\x87_\x14\x13\x00\x11a\x83?Z[e\xcaz\xe3\xf9\
+\xf3\xfb\xb8_,\x1c\xf6\x93H\x9e\x18[y\x98\x17\x8f\
+\xe7'V\x0b\x0a\xac\xeb\xa8r\xc0:\x8c\xfbL\xdc\x9f\
+8\xdf\xf8\xff|\x0f\x95e\x91\xb9\xfa\xf8\xc7\x9e{\xee\
+\x93}\x84\xfb_,$2\xb8\xaf\xaa6\xc4xNM\
+$q\x1dB\xd09i\x22\xdf\xc3zc>\x918\xe3\
+_\xafuC\xab\x0d\xf3\x94\xf9\xc1}\xc7\xeb\x01\xe1K\
+b\x9ds\x01?\x8b\x04Hl-\xe2\xbc\x89\x88\x0e\xd6\
+)\xaf\xac\xcb\xd5\x0a\x82\xc9\x18w2\xe7\x0e\xeb\x83\xe7\
+\xc6|\xe7>\x19g\xfc8Z\x1fh\x11\x04i\x8f\x7f\
+\xfe\x0a\xb3\xec\x07d\x19\xf0~3\xb3\x86#\x0a\xbfL\
+\xfe\xa4s\xcb\xcd1k\xe6\x07-\x82*\xec\x8d\x1dT\
+Z\x01\xbb\x03\xbbOw\x9f\xb6\x04\xc0\x11r\x1c\xd9 \
+\x04\xe5\xcfy\xe6\xbf\x0aZ\xf1\x0f-\x90\xc7k\x85/\
+W\x5c\xf6\xc9\x1fx\x90A\x0c\xe9]t2 e\xb6\
+3[n\xba\xa1\xfe\xb7\xc9R`0y\xb4\x99*Y\
+\xc7K\x97\xdb\x02\xdb\xa7\x93=%Hsr\x98G;\
+\x9b\xa5\xd7\xa7\x93=\x95!\xaa\xbbg\x07\x88\x7f\xd7g\
+\xd7\xaa@\xfe?\xdcp\x0c\xd8r\x5cD\x9f\xb3\xba \
+\x12\xebi\x02\x8cD\xca\xb6N\xed\xad\xcd\x1c\xc3\xe9\xfa\
+\xfbS\x92\x9d\x5c\x03\xb7\xd1\x01\xc9\xf6W\x00\xb0\x9f\xf4\
+\xda\xcfh*\xc0;%K\x01j\xbfM\xb2\xb7\xd6\xc0\
+\x1f\xc7\x18\x879##>$u\x82[*\xa4#\xab\
+\x01\xbcW\x15\xa5\x0b\x1aY1d\xfbn\xean\xeen\
+\xce=\xcb\xc9\x9a\x16\x03\xf4\xce\x1f4\xab\xec\xf1\x19r\
+\xfd\xfd\xe9$G\xee\x90\xbeT\xcf\xed;\x0aT\xa8\xf4\
+oeV\x17\x82\x93AqpR\xf1:4[] \
+w\x05GXl\x9d\xae\xf7K\x06-\xaa\x03\xfc\xa3$\
+\x84\xa6\xe9~\x92\x09\xbd\xab\x90iM\xee;\xf9\x89\xc9\
+\x14\x10M\xbebr\xcd\xc95s\x80_\x16\x86z\xa3\
+}\xfe=\x91\xe9Q\x1c\xca\x8eZ\xc30\x8fYU\x93\
+\xf0q\xa1r\xc0\x01\x0f\xb9\x14\x01\xfdg\x92\x1d\xd4\xf4\
+\xc0r\xfdV\x7f\x5c\xbfA\x80\x18\x07\xf5\xfa\x8d\xe3\xa6\
+\x8d'?\xd7\xdd*\x09Rn\xedH\x01\xech\xa3\xd1\
+kG\xa6\xc7\xf9\x90Y\xad\xbc\x22\x8b\x88L\x9a\xcbo\
+r\x9d\x9f\xcf\xb4\x1dc9\xed\xf0\xed\xcc\xc6\x9d{\xd0\
+!\xdbLNW\x81\xe6\xc3\x99@F\x91\x8a6\x07\xe1\
+1\xd9\xea\xab\x85\xad\x87\xa9\xb5\xe2\xa4\x9a\x10!\xf0p\
+\x96vZ\x1e\xc8PR\xe9g\x83$ \x9b\xcfL\xad\
+C\xdb\xaau\xe6\x97\x9a\x07\xf3\xd4\x8dq\xb8\xca\xac9\
+\xd0\xf7\xcdf\x89\xabd\x22-[^\x81\xc9\xf9\xcd\xc6\
+\x8cL\x1c\x90O\x1cA*{\xefT\x8f?\x19P\xf5\
+L\xa3O\xcf\xba\xf3\x8a\xa9\xb8N\xd2&\x9c+\xf4\xc3\
+G\x0a\xe2\xc2+U[\x8b\xc5\x9d^i\x126\xcf\x8a\
+\x05Wd*\xce\xd9\xa0\xc4\x0e\xcf\x9f^H\x97\xfd\xa3\
+%\x83Jk\xd4\x17\x87eW:\xd4|?\xbd\xdd9\
+\xb1u~Sa\xe4\x00$\xc3M\xe2\x03\xd2\xb9\x19\x05\
+\x11\xe0P2=?g\xef\xa6\x1c-\xad\xfa\x00\x00\x1f\
+\x15IDAT7\x1c\xc7x^\xb3\xda\x92\xe1\xf7-\
+\xee\x0c\x97\xf5#\xc1u\x9c\xce\x09\xd6\x11\x15z\x02P\
+\xb5@x\xc2\x80\xde\xf6\x08\xc1$\xf0\xe5\xe0\xc4A\xa0\
+\xd2\xc9A\xc6\xf5\xb0\x1f\x01\x89\xa7\xb2\xa9\xfbA\xb5\xc1\
+\xcf3z\xb1!\x09\xc31\x09\x10=w,H\xc0\x9d\
+-r\x1d\xd8\xfcq\x9c\xa8 0~\x8c\x03l\xc7G\
+\xea<\x95\xee\xb8; \x90\x5c\xc9\xe1\x83\xed\x9e\xf1\xc9\
+\x8d\x05{\xd6\x84l\xf7\xfb\xee\xaa\xee\xaa\x06b\x1d\xa1\
+\x9dT\xde\xb9\x0f\x1c}\x12F\xec\xaf\x8c+\x8e)\x95\
+\x08\xb5\xb6\xf9\xfcd_\x80]\x9fD\x17\x9c\x13\x9f\xd7\
+|\xe7\xfbxnU\xc7=\xcf\xeb\x9c\x08\xfd\x898\x82\
+\xf6\xce\x88\xbbB\xe6\xc7y\x12\x022\x0f|\x08(\xb9\
+^*\x9dK*\x90Y$\xa89p\xbf\xc8*>T\
+Z\x01\xcd{\xe8Vi\xc6\x09h4\x01\x0d\xdf\xcbu\
+\xe3\xf0v.\x9fG\xa0W\xd6\x97\xd6+\xfb|\xb7\xa5\
+\xce\xd3\x08\xd5g\x7f\x13\x0b\xbd\x01\xad3\xd4\x9as\x07\
+\xc8;?s}\xcc\xbfXQ\x8c$esC\xc8\xe0\
+\xf8\xc7\xfb\x99\xd7{`\xa7\xb2\xc2\x13\x18\xb2\xcf1\x8e\
+OL\xed5\xf6\x16\x0d>7\xb0a\xbb\x9c\x9d\xf9A\
+;e\xf5\x89B^\xcb>\x17\xd8\xec\xbd\xa5\x08\x84\x98\
+\xd8\xbb;z\xa7!\x97\x04\xd9\x81\xc3M\xe0\xad\xf1p\
+.\x9dg\x5c\x9f\xbc\x8c?\xe3\xc0y\xce\xf7\x07=q\
+d\xab!\x9d\xf4\xc47\xe4\xb2J` O\xec\xf3\xb0\
+\xf7}\xab\xecG\xb1\xc5b\xbe\x90\x00\xa8$n\xe5\xba\
+\xd5\xc2\xea\x5c\x03\xaf\x15Y\xf3R\x0a\x5cT(K\xbb\
+\xf5\xe3\x99t\x90J$\xfe\xd6|\x81d\x99\xe7\xf4\x90\
+\xe65\x09\x80\xa8\xde\x13\xd50\xf8\x99\xc0)\xb2\xb6W\
+\x12\xba2\x1f\x229*\xe7U\xe0<\x18~SH\x01\
+9\x07\x90\xf3\xf5}\x8b\xe7YIV\x8b\x9a\xc6_$\
+\xbfKb\x9f\xc4Q\x94o\xe3\xbcg}@\x06\x0aR\
+\x88\xfb\xa9\x89\xc9\xf2\xfc#'@l! P\x9e\xe5\
+\xd0\xf02\x8f\x22\x12`\xa6\xd6\xdd\xb3!\xe1\xc6z\x8a\
+\xe377RH \xeb\x8f\xa4\xf9\xfeHs\xaep\xee\
+\xf1>\xe6OD\x04\xb0/D\xce\x0f\xde\xcf~\xa1\xff\
+\xef\xac\xfdU\x8e\x91\xfb*\xcf5\xee'\x11\xea\xcf\xfc\
+\xe3s\x09\xb4\xb9\xbf\xda\x82R\xaecY=\x17\x12\x01\
+\xcc\xd7H\xaa\xc8\xf7\x92\xe8\xe3}\x8bj~\xb2\xee+\
+\xa7F\x99\xdf<'\x10,\xec_\x8c\x03\xe7\x08\x08\x10\
+\xd6\x1d\xcf\x1d\x0e\x87\xa74\x9e\xec\xc7\xac\x0b\xfc}\xfc\
+|\xe2\x16*\xfe\xbc\x7f;!\xf4v)\x85J_\xcf\
+\xb4\x8c3?\x22B\x89\x02\x0bjz\xdf\xc9V\x0b\x9f\
+\xdc\xc7\xc2\xf2'6,\xaa]\xc3\xef\x8b\xdf\xecP\x7f\
+\x0a\xca OQK\xd0~\x9b\xd5\xe4\x92\x9f4\xfa\x88\
+Y-\xf0\xc0i\x02\x99\xfe\x84\x07vFm\xb6Q\xf3\
+@\xcc\x0dZ\xbf\xb2\xc4\xe7\x1e\xe3\xfb\x15\x98\xfc\xba\x92\
+\xdf\xe5\x0a\xf3\xc5Un\xa8\xdf\xc4\xacn\xa4\xfd\x1b\x92\
+\xbdQ\x1b\xf35\x92\xeb\x1bW\xc5\xeb\x93M`l@\
+\xe0\xd7*\x00\xfd\x96d\x05O\xd0\x81o\xbdK\x07$\
+\xfbT\x93\xf1\x5c&\x83*\x9d\xb5>\x93\x91\x9c_\xf5\
+\xba\xa9\xf8\xe6@p\xdeZ\xc1\x803\xa0\xffr\xb2C\
+\xd2\xfb\x7f\x93\xec\x12\xf5\xfe\xbf\xb5q\xe0\x9f\xcc[l\
+\x81\x08\xff\xa4\xea\x81;\x8b\xa9\xb1\xb5\xef\xd0\xc8\xe5h\
+\x01e6\xf3\xadU\xf1\xbd\xa0B\xd23;\xfa{*\
+i\x0a\xbd\xc5&f\x97\xe5\xec\x8a\xabW3D\x820\
+\x22\xdfD\xe6\xca\xd5\x16\x02d\x13\xf9\xa5\x9c\x909\xa8\
+\xe99!\x03\xa5\x0d\x90\x89\xe0,\xebL$\xd4\x1b\x8c\
+\xf4\xee[\x0d\x17\x00\x1b*\x07\x01\x01\x18\x1b(\x1b\x02\
+\x07\x03\x07\xcf\x87\xa4\x8f\x09\xc4]\x15\xfc\xccz\xda\x90\
+\x9f\x0d\xa7\x995\x15\xfd{\xcc\xd2\xeb\xc9fi\xdd\xbe\
+{\xf2]\x93\x06E\xde2\xd9VU\xc6\x0e\xf9-\x87\
+\xcc\x18i\xd8!\x8d\x8c\x91\x05\xaa\x877\xa44\x16&\
+\x9f]{\xe6\x9dt\x8d\xfb\x00\x92\xcc\xf5[\x98\xf4\xf5\
+\xda\x9b\x8bc\x8b\x83\x9ee\x97N\x90\xc3mH\x8fc\
+\x93\x1d\x97\xfe\xff\xcd\xc9\xfe,\xe4\xc0a\xcd\xb8\xe1\xb0\
+S\xa1\xa4'\x1b9\x10U\xb4\xc8\x5c\x0e\xeb\x0c\xaf\x1a\
+^\x95[\x08\x96\xcb-8\xe2h\x18}\xcc\xacqh\
+\x0e\x16K<\x10.XA\xe9\xa5\xffCI\x08Py\
+\x1c\x9e6K\xafK\xa8\xc7Y:\xa4\xfd\x92f\x8d\xec\
+U\x80\x0cw\x17\x9b\x09Q\xf1\xa6Lr\xb8_\x86f\
+\x93\xb8\x81\x15\x9a\xfd\xe4\xde\xdc\x95^!\xeb\x0a\xe8s\
+o\xfe\xebk\xaf\xb3\xcf/U\x90r]\xe6\x7f\x14\x00\
+\xbf\xa5!\xb1\x13\xf2!\xdd\xef\xc1\x06\xf1\xcf\x0d\x00G\
+7=\x8e7*\xc3\x0a\xd9\xcc\xc9E]al\xe5\xe2\
+\xe0\xb9\xbe5\xf2\x91\x1c\x5c\xa7h\x1e\x1cS8Mx\
+N\xc3\xfaf\x0dY\xe0\xa9\x92\xcb#1\xb3\xa1\x02\xa5\
+7\xe9\xfa\x0e1\xab\x88\x1c\x97u$`\xe1@\xd6\xfe\
+\x13Y\xac}\x9dB\xb2G\x0b\x85Z\x5ch}\x00\xe2\
+\xedri\x1c\x94rl\x1d\x09\x04\x22\x02h;\x08\x05\
+\xe9\x84\x0f\x13f\xb9r\x93\xc9\xbe\x9c\xbd\xfdB\xb3\xf4\
+\xba\x87Y\xe5z\xf1\x84H\x1f\xc8\x9688W\xd5A\
+\x89\xa3\x07\xb4S\x01;\xe4O\xce\xa6\xcd|]\xdc\x03\
+\xbc\xf29\x04\xecW\xa8\x95\x80\xca!\xd7q\x9c\xd4/\
+@R\xe0 \xc0B\xfe\x0d\xb3&\xc0\xc11\xa2W?\
+:68V\xacS\xa0\xef\xc86\xc1}\xf2=\xb3\xdc\
+JSz\xff\xb7\xc9V\xd5\x07 7\x83\x5cS\x09\x00\
+O\xb0#\x8f+\x15\x86.\xb3\xec\xa6\xd7\xbd\xcc\xd2c\
+9\xdbLd\xb17UD]n\xdc\xda9;\xf6\xc5\
+A\xa2rI\xe5<\xca\x83\xe1HE\x9d\xefH\xeeE\
+E\x22\xe80{kKP\x8b\x99\x16@\xe2\x18Uy\
+\xc5B\xf2F\xab\x8a\x10F\x9e\x18\x00r\xa9\xf5\xe4\x15\
+S\x1c\x1e\xfc\x0e\x1c\x5c\xce\x13\x1c\xae\x08i&p\xfa\
+\xef\xd4\xca\xd1\xa0V\x9dnE\xfd~\x09\xdd_lA\
+\xc0\x81\x1es\xb2\xa7\x12X\xe0@\xc2\xde.\xe4\x9b\xcf\
+\x13zQ\xf9<\xe6\x17\x889\x10\x16T\xd6Af0\
+n\x0f\x05\xf6{^I\xdc0\x9fq\xfc\x09|\x08H\
+\xd8'p\xa0q0\xe5\x18\x0f\xcf\x15\x04U7\x8fZ\
+M\x987\x04H \xb5\x18\x07\x90\x00$\xf0Qca\
+\xbc;\xedSp6\x09I\xe6\x09a\xb8T\xf6VB\
+\x9a\xe7\xc3\xf8\x10\xf0s\xdd@\xff\x97)\xc8\xc4\xe4;\
+\x96y\x0bR\x0b\x8e\x00\xc8A\x09\xd0\x187\x12\x0c\xec\
+?\xdc\x17\xf7\xc3<g^s\xbe\x808\x90\x1fD\xa1\
+\xa1\xdbT\x95k\xf6-ZQHX0\xffXG$\
+Db\x22\x8cu\x17\x91\x02O:y\x5c\x09\x00 \x87\
+%\x11\xce\xbab\xbe\x93\x88 Q\x81\xbf\xf2\xa4\x07>\
+\xe5{\xb8\x7f\xdbG\x1fV\x02\xa0%\x0f\x8b\x892~\
+\xe6\xfb\x18\xb78\xff\x9e\xf1\x1e\xe7r>BZ\xa8\xf5\
+\xeb\x1c.\xcc\x0f\xe6\x1f\x9f\xabJ1\x09\x01o\x19V\
+\xc5\x94\x1e\xfb\xe1V!5\x18\x17Z\xff 7~&\
+T\x9c#I ?\xc7\xf9V\x13y%\x00\xad\xb2o\
+Se\xfb\xe6qR\xear\x9eE9<\xd6\xdb\xfd\xe2\
+n\xf9\xbb\xe4\xfcX\x97$\x22@ \x91\xb0\x89r\xa4\
+\xfc\xe3z#\x07\xc0\xbfC\xc2\x81s\x88\xf907$\
+\x00\x09\x8d\x88\x04\xa8\xfa\xf5S\xb9R*4\xbf\xfc\xfc\
+T \x1f|&\x9c\x83\xab5\x1cX-\x07PE\x1a\
+\x95}\xaa\x22z\xcb\xf7\x91\xe0Q\x00\xeb\xd7M\xe0N\
+KWLp\x92 \xe5\xdcb\x1f\x06\x19@\x85\x9d\xe7\
+\xca~\xcaus\x8eT5\x96\xb2_\xf0y\xacK\x12\
+\x01\xacw\x9d#\xddK\xd5\x82\xb5\x8e\x10\x8a L)\
+<\xb0\x8f\x81\xec\x94\xbcq\xb7\xa2\xd6\x03\x1c\x22<w\
+\xc6\x95s\x81\xf3\x04YH\xe4\xc8A\xe0\xbd\xb2p6\
+Q\xa0\xf1\xd6\xbb\xa3\x8b\xdf3\x1cc\xd6\xb4\x08\x92X\
+\x13\xc2\xd8\x0bZ\xb4L\xa2\x22\xb6\x8d\xc8\xb5\xd52\x9b\
+\xb9\xed\xbeR[F'\x86\xa3\x93\x1d\xa3\x8a\xe5j\x8d\
+n\xb7\x050_\xab\xac\xe7\xbeqQa\xa4\x97G\x15\
+\xa0~H6&\xfd\xe0-\x15\xe8\x8f\xd4#\xbb\x90\x02\
+\xe9\x9f6\x8e9\x1b\xba\xe5YVh \x1a\xf4`\xda\
+m\xbe\xa3\xe9i\x0c\x19\x19\x87\xc0\xc3\x02\x0by\x8d9\
+\xfaW\xa6}\xff\xcff\xe9}\xb7\x9a\xd5\x0d\xaa\xff{\
+\xb2\x07\x14\xd0\x5cReL\x5cw\xd8\xea\x83\xe6\x10\xaf\
+\x95lm9\x9eG7\x13\x86J\x88M\x0b\xeb\x99\xfe\
+t\x81R\xf8\x81A\xe5\xca:\xad\x7f(2\xb3\x9d2\
+{\xe3x\x1e\x0fUVs\x00\xb6DCv&\xd5\x03\
+z\x88\x93cY&\x8a\x024\x02\x0cw\x90\x0f7k\
+\x12\x08@A\xce2\xe1\xc1f\xa3\xe3\xe0C\xbf\x18\xf9\
+\x08\x1c&\xa0\xa2\xb0\xbf#gB%5\x90\x189\x94\
+Y\x1b\x97g\xd2I h<\xd2b+\x0b\x95\x0d\xf1\
+ZA^p\xf4p\x04!\xfb\x12\xc4\xddu\xa2\x81\x82\
+\xab\xf2\xd2\xff)\xd9u\xe2\x06\xf8D\x85L\xf7\x7f3\
+\xab\x9c\x00\x19\xa8m\x10\xd53\xb3\xd5V\x14zh\x94\
+A\xeb\xbej\xd6@\x92\x15\xe0x\xcf\x1a\x0b\x0bH\xbb\
+m\x13K\xa9b\x97\x9eWwG\xb2\xdb\x9b\x84\x90T\
+,\x86\x95\x92\xbd\xb4V\xaeAf\x0c?.\x09\x84~\
+g\xb3f\xc1S\x01\xd4sN\xa3\x9b\x0fF\x0f\xd8\xc9\
+\x14R\x11\x96z\x85\x1f\xc0g\xa8\xb2{\x95\xaeS\xbd\
+\xf4@\xb3\xfb\xfb\xcc*IJ\x7f\xa0\x99\x02\xc4\xf7V\
+5\x08\xdf\x88fd\x90`\x09(6n\xe4\xbcL\xee\
+\xf2=/\x10H\x11\x80|4[\xad0\x22\xf3\x89\xc3\
+\xb5\x5cIdx\x00'D\x8eWX\x04i\xf2\x96\x94\
+\x1d\xc4r\x0eT\x9du\x05k5\x88\x17\xcdk\xa0X\
+^\xc9?\xb0\xe8\x87{b\x82\xbf\x87k\xe0\x8clc\
+y\xff;\xba\xc9\x88#\xb7\xc3\xbc\xc5\x81\x84\xa4\x8d}\
+\x8f\x84\x11\x81\xd0\xaf\xa6f~=`\xc4A\xe4\x00&\
+\xd1\xc1\xc1I\x22\x00\xee\x86\x8b\xcdje\xc79\x0ap\
+\x94`\x9bW\xe2,\xedN\xc5a\xb9M\xe3*\x96r\
+\x0f\x5c\xe8\xc9\xb5]m\xf3\x86\x13a+\xf5n\xaa\x17\
+\xac\xbb\xd4\xac!\x8b!\xe0\xa7\xe2Oex\x0dq\x06\
+\xbc\x5c\x07#\x07\xe5\xeaz%\xe1\xc6\xb8\x11\x10S\x09\
+\xfbj\xd1\xb7u\x0e\x09\x91\x14\xe2\xb8\x90\x88\xf0\xef\x01\
+a\x81\xec\xe0/\xcd^\xc0\xd1\x07)\x82j\xc2\xce\x85\
+\xe4\xd0\xd7\x09\x8e\x0b\x812\x8e/\x8e\x16-7\xbfR\
+\x0f\xba\x1c[O\x90\xa0G\xff`\xe1(q\x92\xda\xcd\
+\x85\xc8\x00\x22O\xc2\x0c$\x82\x1c\x08\x12*\xc6\x98\x90\
+[\xbct\x10\x8f\xd64k8TP+A\xf7\x17Y\
+J\xb5\x92t\xafS\xa5\x01\x84\x0b\x8e\xf7\x84\xf7\xe2O\
+M\xd0<\xe1=\xc6e\x9e\xe1\x10\xe1X\xe2`#\xa7\
+y\xbaY\x96#,\xa4\x7f\x1fP\xa2.\xca\xcc\xc1\xdd\
+\x01\xb9\xe6\x22\x9a/\x9b\x16\xc4P\xf7y\xb3F\xdd$\
+B\xeb\xb9\x0e\x02\x1a*`|\x0f\xaf\x5c\xff\xe2\xde\xcb\
+\x5c\x9egE6\x94u\xc5\xfaz\xbe\x04vi\x0f-\
+\x81.\xe7\x99\xc6\xdd\x11Tsk\x01\xc01\xbeZ\xf3\
+\xf6\x1a\xad\x9f(\xbf\xc6\xf5Nz\x05\xba8d+\xc8\
+Oa\x1fxB\xc8\xc05\xcc\xf2\xbc-\xfbJ\xac\xd4\
+\x12P\xf0yU\x7f\x1cR\xae2\xdfI\x18\x92\xe0\x85\
+\xfc\x95\xdf+\x11\xea\xe7\xc6x \x85SB\xad[7\
+\xf4\xb6\xe2\xdf\xe1\xc7\xb0\xafs\x9f\xc8\x08O\x14d\x9d\
+#DX\xaf\xb4t\x88\x05\xdc\x91\x801\xb0b\x9d\xf2\
+\xca\xfdW\xfd\xf6\xf2\x1cA.\xd0\x13\xfc\xa0\x02\x10\x02\
+\x11\xc6\x89@`\xc1P\x19'\xb0 0\x8c2\xc3\xb4\
+^@>)\x92Y\x0f\xeccA\x83\xfd\x8c\x04\x0d\xf3\
+6\x92\x8d\xb2\xcf\xd4\xc0\xa7\x5c\x0f\x15\xd6\x89\xd0B\x12\
+{\xfd\xb9>\x90F\x14j\xa8Lr?\x04\x18\x15\xb9\
+1u=s~i\xbf\xa3\x90\xd7\xa8\x03\xcc\x9f\xaf\x7f\
+\x22\x87\xc2\xf5\xf3\xe0\x9e\x00*M\x22\x17$\xccc\xc3\
+\xa3\x19\xa1\xb0I\xb7i&\x01d\xddp~\x12\xd0\x92\
+H\x81s\x02\xae\x05z\xe4\x85\x00\xf0\x00\x09\x99\xbcJ\
+\xbaY\xde\x17I\xfc\x18\xe7H6\xcd\xb8FDO$\
+\xc1\xfboH\xe0\x10\x902\x8e\xffv\xa4UAT\x92\
+\xb8\xa4\xe0\xf6xH(\x82@\x93\x1a\xcd\xb4\x04\x0b\xd7\
+A\xc2\x91\xef\xe1\xfc\x8f\x89\xd9\x7f\x84y\x1ee\xea\x9e\
+\x09-\x00\xcf\x07\x84\x0c\xa4\x81Q\x96\xf4\xd9\xa0w\x1f\
+\xc9\x15\xa9\x98K\xfd\x00\x04!\xe3\xc4>\xe3\xaa\x18 \
+\x9e e&\x81\x81\x5c-r\xc3p\xab\xb0?\x8f\x85\
+\xf1\x08-\x93\xfe\xaf\xaa\x84\x94q&\xa1\xa0\x02\x86\xaf\
+o\xf6\x01>\x8f\xbfc\x1d\xb1^y\x0e/Q\x02\xf2\
+\xe5JpP\x80XL\xf3\x88}\x89\x80\x1f\x8e$~\
+\xc6_\xa5\x05V\x05&\xd6\xb1\x93\xcc\x22\xe7\xfbp \
+\x81d_`\xdd\xe3_!\x87\xad\x16Yd\x93\xe1\x86\
+\x813\x0cym\x12\x02\xdeB\x02)\xbf\xd4\xea\xe0\x9e\
+\x82\xc3\x89V\xccaM\xb5\x16lS8\xfe&`G\
+\xcf\x15\xd6-\x9b\x8d\x86\x83^$\x7fSH\x14 \x95\
+hHhr\xe0\xbf\x85z\x19\x96V&\xf3\x06A\x1e\
+\xfe\x92\xf5\xceO2\xa8\xb1\xf7> \x0f\xc6B\xa6\xa2\
+C $\xb2\xbf\xecf\x9d\xd5dN\x041\x1d=j\
+\xa6\x00\xc6H\xa0VN\xf62\xbd\xcf&\xea\xf1\xc9\xac\
+\xe7\xf8Z\xb3\x86\x0d[\x15\x99\xc9'\xcc\xd4{\x9f&\
+V\xbf\xbbY\xfa\xdc[\xcd*\xe2\xc1\x91\x01\xe6.\xa7\
+\xf1\xe9\x97M\xf6\x9c\x10\x0e\x17U\xb2D\xaftQ\x81\
+R\x807Z\xdd\xacV\xf22\xc4\xf7\x96\x06\xfa-\xb6\
+r*r\x99\x03\xfc\xe0,C\x95\xd9\xc2\xa9(\xd2\xf3\
+\xda-\xdb-\xd3-\xd3l|L \x16\x10\xbd]\xc8\
+F\xe9\xc0\x87\xa4\x88\xf1\x06\xb2\xe2=\xac\x90L\x91\xf1\
+\x94\xce\xa8W0\xd0\xd1\xc5\x91a\xc1\x11\x98R9T\
+\x86\x98D\x032\x8b\xdeZB\xcb\x80\xe4$\xfac\xcc\
+*y[\xbf\x9cYz\xfdg?\xb3\x9f\xa9\x80\xdc\xc8\
+\x14\xcfIf\xad\x17/7\x13I\xd1jj\x0d\xd9\xbd\
+\xc9T\x1b\xd2b7U\xa2\xbf\xd2\xe8I\xf3\x8f\x8a.\
+\x81\x10=\xb8\xb4\x12@\xa2\x06$\x87\x85\xfb'\xf5\xf2\
+\xaa7\x1bH\xb6'\x086\xcc]\xe2c\xfd\xc3f\xe9\
+\xb9\xdfmVI\xcf\xfa\xcd\xfaM{\xe3\xb2\xf8\x83Y\
+\xd3\xdb\xb4\x8f\xa0\xb2[\xa8R+rAO\x84\xd8\x82\
+\xdfL*\x03\x9fn\xc6Q\xb2h\xb0\xe4\xa7\xd1\xce\xad\
+\x1c<O\x02\xdb\xfe\x80d\xfb7=\x9c\xd6\xd8p@\
+\x85\x1cg\xf2\xcc\xa5\x1a\x19\x16{\x9aon*E\xd6\
+9\xfc\x81f~\xd1z\xc3\xf8[~q\x1b9\x8c/\
+i6zd#m\xfbZ\xa9\x1c\x98\xdd|r\xd8\x16\
+o2\xa6\xaa\xa4\xba\x83\x10+*8^\x1cX86\
+8~\x82|zB\x80\x83\x97\xfb!3JeS\x90\
+0\x97-\xe2`\xe0\xc0\xe5\x80\xe6{q\x8cI|\xc9\
+!nZk\x0a\xc2\x00R\xa4\xad\xc5\x91\x81cC\xc0\
+\xf9\xacW \xa6\xf6\x04\x12x^?\x5c7\x5cW!\
+j~}\xa7\x8c\x9d:vj\xe3\x80\x1cV\xd8\xee=\
+q\x86\x1e0\x95\x18\x12& \x01\xcePB\xf5f%\
+\x10\xc8h\x1f\x229\xd0\xef\x99Y\x86X\xeb\xe08\xe9\
+`\xf3\xbc\x09\xf0\xa9`\x8b,rl[=7HS\
+\xd1M\x07\xd9\x81C\x02Y(\x0e\x1d\x15\x02\xc6\x9d}\
+\xe7\xc9\xa9=}\xe9\xeeKO2\x89\x05\xd8sq\x9c\
+p\x00p\xa08\xf8!\xbf\x11\xe2\xa1[M\xfb\xd7b\
+\xde\xf3_\xce7*\x8c\xaco\xc6\x97\xf5\xcc>\xf5Y\
+\xc3\x9c\xe4\x03\xb9|\xfe\x86R\x8d8\xd7L\x08\xb6\xbf\
+4\x81\xfe/\xcd\x1an\x1c\xb5\x148\xe9\xa7*\xff\x9e\
+\xf8\xa3\x97\x96\xc4\xac\x12\x0d$xA$@\x16\xeb\xe7\
+p\x94\xef\xc2\xd1e\xfe\xd2\xfb)d\x91C\x9a\x17\x09\
+\x95\x99\xc0\x19\x81\xec\xe5\xb0\xe3\xf0\xae\xe1]\x8d\xea\x00\
+\xeb\x0dD\x00\x09L8\x08\xd05\xc7QSB\x12D\
+C\xff\x16\xb3\xea\xc0x\xc0\xc6z\xc6Q\xa3\xd2S{\
+e\x8b\xc3\xcdy\xc7u\x10X\xe1\x08G9-\xd6\x17\
+\xdc\x0b\x22\xb3s\xff\x83\xfd\x84\xbf\xe7\x95y\xf5GA\
+\xc9'\xa7\xf6\xc4\x12\x90\xf99\x88\x03\x8b\xc3\x0d\xb2\x81\
+\x82AhU\xf2y\x17Z\xa8\xa6\xc9\x99\xf1{\xae\x07\
+\x7f,\x22\x86\xf8~\xc6\x8d\xdf#\xa7E\x80\xc0\xf5<\
+-.\x98\xab\xc5\xe6N+\x0a\xf7O\x05\x90\xf1\x87\x8b\
+\x83\xc2\x8d\xb8(\x06\x10b\xd7\x8a\xcc\x8d\xebP\xeb\x81\
+' 9\x85s\x87\xeb\x88\x1c\x0f\x9c\x1b\xb5\xd2[\
+\x1c\xe4\xc1\xd5h\xca\xf8)\x11\x00\xf2\xa9#\xe0\x22\xa1\
+B\x00+\xa4\x9b\x93\xa3\xf2\xbcY?\xf1\x1c\x81\xcb\x80\
+\xf1\x8f$d\xe3A\xf6\x8f\xdf/\xe1\x01D\xf9\xbc(\
+o\xcc8\xf2y\xac7\xf6\xab\x08\x1d\xe7>x\xde\x8c\
++H\x84y\x03\xd9]\xac\x10s]\x8c+\xe4\xca<\
+\x0f\x02_>\x87\xeb\x8d$s\xb0\x9b\xb3\xbfr\x1e\x80\
+@\x8a-+$\xe2\xee\x0e\xdc\x1b$\x92\xaa\x0e{\xb9\
+^\xce+\xe6s\x9c\xe7\xa8\xa6\x10\xd0\xea\xf3\x5c\xbd\x8a\
+\xbf\x8b-\x18\x8coL\x84\xd6\x04\xc0TRR\xfeq\
+^A\xba\xc9}S8\xe0\xdc\xe1\xb9\xf1\xf71\x01\x14\
+_\xf9\x17\xe5\x07y\xae\xac\xd7(\x8b\xca:\xe4\xffk\
+\x1f\x19\x9e)\xf3\xda\xb9\x1a*\xe9\xe1\x14\xb9E\xdfw\
+\xa2\xba\x00\xe7\x03\x89\x04\xc6)\x14<\x5c\xae\x91\xff\x0f\
+r\x15\xa89\xadY\x8c\x0b\xd7O\xa1\x10\xc4\x08-p\
+ \x0f\x9f\x17)]D&\x13g\xe0\xf7\xf1\x1c\xd9'\
+\x80\xfc\x8fk\xdc\x03y\xdf\xb4D.\xe3\xc1\xfa\xe2y\
+\x90\x00`\x9c\xf1\x1f\x91\x13F\x1e<\xa8\x1a\xb8\x7f\x83\
+_|@\xb6\x9a\x18\x8e\xfbPx\xae\xde\x82\xc8\xbc\xc7\
+Oe}\xc0\x95\x81\x7fF\x81i=\xb5\xd4\xf0\xfd\xfb\
+e\xb3\x16\xdf\x82\x148\xb7\x14\xee\x883(x\xb9\xdc\
+\x22\xad\xc6\xfc\x7f\xb5\x1a\x8f\xddR\xe6\xf5\x04\xf2^@\
+\x92\xe8]\xf6\x8d\x8d\xc0/\x85\x9d\xdd\xb2\xcdF\x12e\
+\xdc\xd8\x88ff\x90O\x85\xb4\xdbv\xbfL\xe3\xd8/\
+\x9es.\x95\xdd\x13\xa86\xbd\xa7\xf6\xff\x17\xab\xbd\xf5\
+Y\x8e\xeb\xc8Z\x89\xe960\xab\x15B\xc8-\xc8\x5c\
+\x0fk\x9a\x894!9\x90\xa3C\xcd\x1aN\x01!\x03\
+\xfaO\x995\xe4HGf\xab\xbd\xc8r\xc8\xfa;\x93\
+\xdd\xa1\xc069|\x93\xcb$K\xe3\xd5\x1fn\xa6\x84\
+\xc7\x8b\x9a\x07*\xf2$\xdfP\xa88\x9b\x83\xf4\x16\xf5\
+*\xefP\x03_d\x8fL\xcd<\xf7P\xa3S\xab\xeb\
+\xe9?i\x96\xae\xfb\x0bfMe\x1e29X\xc6\xbf\
+R\x1cz\xaf\x18\x1dn\xd6d\xacXh\x22\xf1C\xf6\
+\xb1\xa9\xb8\x16v\xe8\x1fI\xe7\x98\x00?f\xe8\xf9=\
+\x89\x22*\xb5\xea\x85\xcd\x10mK`,j&$\xc5\
+ZM\xe5T\x19\xe5\xfe<\xb3\xf4z\x99Yz}i\
+\xbfR\xbfR&\x87\xdc?\x07\xac\xea)\xcc\xf3\xf2\xf7\
+5\x91\x90'\xf8)5\xa1\xe4=\xce\xdc\xbfd\xaf\xfc\
+@ p P\xa5e\x81\x8a\x00\x1b\xf9\xbfr\xd7c\
+\x9d\xc7\xfc\x1d\x07\x1f\x89\x16zu\xf73k\x02\xae{\
+r\x0e\xbb\xf6D\x1f\x98k\xd0\x9e9e>\xa5\x80\xb8\
+\xb0\xe0\xabB\xd2\x1df\xd6\x90\xe2hcGu#\xcf\
+\xa2f\xa3f~\x0c\x0b\x98U\x04I\x7f\xadY\xd3\x22\
+a-\x06\xeb\xd7\x04Z\xa6\x80\xbc\xb0\xb6\xb6L\xe9\xcd\
+\x9f\xd5\x04\xa8l\x5c6\x1b\xde\xa1\xde\xe0ckB\xcf\
+\xf5\x9d\x09\xf0\x0d\xf2{\x80\x90\x14\xeb4\xf3\xcd\xc2\xc2\
+\x95K\xa2,\x8f\xdfJc+\x19R\xa7\xdb8\xd9\xeb\
+\x9b\xf7-\x9a\xbb\xbe\xca\xfaY @\x99\xe7\x9fBR\
+T6v\x1cc\x02\xec\xdffe\xea\xea@\xd2c\x05\
+\x84Y\x89\x12H5\xfd\xff\x9f%v\xe7\xd8{\xce\xfd\
+\xf7\x0e\x15,\x8e\xa8\x02j\x0f\x04\xc4\xd2\xda}\xc4\xac\
+\xe1B\xb8\xa4T\xf0\xbbu\x05}\xa4%\x81y\xca\xe7\
+\xe2\xa8ANF/\xe0\xaa\x82\xaeo\xa3}\x84\x0c\xfc\
+\xa9\xaa\xf8GY!\xf6\xafPQH\xdb}\xa9\xcc\x81\
+|\xb9\xae$\x18\xbaET\x09\x82\xa4\xc9u\xa4\x0b\xe2\
+f\xecaANq\xb0p\x84p\x10'\x83\xfc\x15\xfb\
+^\x95m+\x8e\x1cH\x11\x02F\x12t:o\xba\xf9\
+u_\x1f\x95\x1a\x81\xc8\x14\xbb\x9b\xcc\xf2s*\xeb\x08\
+\xb6_\xf6S\x10a\x5c7\xf3V\x081\x97I\x84\x94\
+\x8c\x04\x84\xc8\x02\xe1B\xe9^T\xc8\xc0\x5c\x9e\x8a\xf5\
+w\x8e\xd4'\x80\xfas\xbe\x91\xe8\x14\xe9\xac\x07\x0c\xea\
+\xf9\xebN3\xab\xdc,@\xf9\x9c\xdb\x05\xf2L!O\
+<C\x0fT\x1eH \x956\xd4Zv5kZC\
+\x08$Y\x07Q\xd7\x18\xc7\xef\xb1\xa9j\x09\xfe\xfcE\
+\x82\xe6\xac\xd3$>Xg\xec\x8b\x1b\x15\xd2K*9\
+N\xc6\xaa\x04w\xf7~\xb3\xc6q\xc4\xb1\x01\x82\xf8\x81\
+\x92\x98\xed\x8e\xb3T|\x95\x19\xcd\x1c<\xeb6\x0e.\
+\xfb1\x88)*\xda\x9cWT\x9cx\xdf\x12r\xb8b\
+\xc0\x82\x83\x1fu\x9d\xf9y\x8e\xfb+S\xc9\xba\x22\xab\
+6\xf7\x11\x10G\x9e\xb8\x02\xa2M+\x0e\xfa\xec\xf4\xae\
+\xe2\x98>\x1e8J\xe8qGf\x95\x80.\xf6\xfc\xb2\
+?D\xb6p\x1cV\xd67\xf3\xf6\x1e!;\xf8\x1c\xae\
+\x93\x80\x93u\xa2y\xef\xebSdm\xae\xae\x22r\x5c\
+?\xa7\xf5|P\xe5q\x15\x1a\x90q\xeaI\x1d\xbbV\
+H\x09\xf6M\xceS\x1cwT1.\x16\xb2\x00R0\
+9\xd2^\x99\xe6|C\x8f\x9c\xe7\x16+\xea|\xcfo\
+uN^\x1cX\xc9q\xfci\xad\xbbY\xcfi\xed \
+[\xcc\xf8\x13 _\xa7\x04\x91\x12\x8ei\xd6-\xd1-\
+\xd1\x04\x1e\x9c\x03\x11\xb9\xc1}\x12\x08D\xb2\xb9 \x03\
+\xea\xeb\x8c\x843\xf7\xc9\xf9E \xc1}\xb2\xff\xf2\xf9\
+\xb1\xd2\xcd\xbc\xe1\xef\xd9\x87+{\xfa\xd4\xfd\x99\xbf\x8f\
+\x88\x93\xa7\x82\xccf$\xb3\xe4\xef#\x1b\xbc\xf6q\xff\
+\x99u\x83\xfc4\xd7\xc7\xf9\xc6\xba\x8d\x81\x7f@\xb88\
+\xb7\x12\xfb\x13\xf1\x02\xfb?\xfe]\xe5H@\x8da\xea\
+}\x05d\x83\xff\x9e\xf7\xf3<Xo\xa8\x13\x04\x96~\
+\x7f~\x5c/\xf7\x1be\xe3x~\x119\xf2\xbc\xf7\xa6\
+\x97\xf1c\x9c\xb9\xef\xb9\xads*\xec\xfc\xfe\xaf\x1a\xc7\
+\xa7\xbd\xa2?\x15\xda\xce\xfe\xc3\xfb\xf9\xf9\xf9\xa9\xbd\xf1\
+\xd3\xceO\xfc9\x0a\x86 \x11\xe1\x0e\x98\x13\x10\xbd|\
+.\x9f\x03\xe4~b*\x89\xde\x80\xcc \x01=\xf3\x83\
+\xfb\xa6\xc0\x02\xf7\x11\xf3|\xe9R\xe8\xecVR\x1c\x1a\
+\x9f+\xdf\x1bZ{\xa6%\x8eQ+\xc1\x8f\x87+\x83\
+}\xee1o\x95(\xe3\x80\xffN\xe5\x9f\x96\xaeYf\
+\x0d\x97\xd1\xf6\x8a\xbf\x18W\x0a9jI\x06\xd1\xe7\x85\
+k\xc8(YW\xb4\xe0\xe1'I\xa6\xd8\xc7\x9b\xfdI\
+\xeaA\x8e@`|P\xd9X\xbf\xb4\x12\xb3O\xe7\x96\
+\xfb7\xd4Dw&\xd3?8\xb7\xaa\x16D\xc2\xab\x85\
+x\x1e\x95\xf1\x9cpG\x99\x0d\x93\xde#\x05\xdcSt\
+f'\xf5\xf3\x84\x1c\xf4\x05\x1bG\xfd\xf1\xd0\x83D\xa6\
+\x97\x81\xd7\xfb\x1c2\x0e\x99\x13\x13\xc1n\xff5\x0dr\
+\xc0\xea^\xa75\x0fJ\xc8\x00w\x9c\x04\xa9\x87\xa5}\
+\xf8_\xb3\x0ai\xb70\xd2\x02\xfc\x5cq\xe9k\xc0\xe0\
+\x10W\xa0\xb4\xea\xad\xf6\x0dY\x0f\xa2\xff\x9aY\x1a\xa7\
+\xd7\x995\xac\xc8\x06A_\xa0\xca\xcayO\x1a\x07\x1a\
+\xf2~O\x99)q\xb0B\xd3\xb3\x8c\xa3j\x90\xfb\x8f\
+4\xf7\xab\xca\x19H\x8a\xacZpT\xd3\xfb\x0bt\x11\
+\xddrz\x8cq\x9c.\x15\x09\x8b\x10\x12v\xdc\xe5\x03\
+\x8f\xebba\xaf%\xa8<\x1b\x04\x1b\x16\x073\x1bV\
+ \x8frH1\x95Ue\xa2\x9c\xf4q\xe9\x22w\xe7\
+\x10g\x16\x16$Y\xf4\x0cJ\xb6\x82\x8d\xad\xff\xa1Y\
+Z\xa7[L\xbeq\xb2\xf4*\x17\x1du\x1c\xc5\x9bs\
+\xed\xb2\x92\x9c\xc1\xeaO\x82\x01\x04\x03\xd0\xe3oe+\
+\xd0\xb3\xab\xc4\xd2\xbfe\x93\xd0\xaa\xb21SI\xc0p\
+ \xa8x\x08j\xec\x8e\xae6\x9cL\x12\xf8\x19\xad\x97\
+\xab\x9b\xc0\x95\x03M\x1c\x0e\x90g\xf6'&3$\xca\
+\xcf\x93\xfd\x22\x0d\xef1f\xb5\x22\x87\xcc!\x090\x90\
+8 \x01 \xeb\xeb\xcf5\xabrq\x04\xe2N\xbag\
+\xa2b\x9b4\xac\xf5\x90z\x85\x8cp\x96\xd3yNj\
+\x12\xf3\xbf\x00\x9b\xab\xa53^\xd5\x04\xb4\xa8\x84\xd8\xb6\
+}\x8b*\xa4W5\xfa\xc4\x0a\xa4s\x22k\x83\x06\xd9\
+c\xaf3U1X\xf3\x05\xf4a!m|$\xbb\xc8\
+e\x1f\xa0\xe2\xf1\xb0^\x1fi\x02\x99X\x01c\xc3\xb5\
+\x84\xc8\xe5\xb9\x87+\x99H\x14\xafn\x02O*\xad\x1c\
+\x18Tx9\xd0\xf8\x5c\x1cg\x02\x00\x0e\x12\xe6\x85\xfe\
+\xbfg\x8a\xdfc\x96~>\xa5p\x03@\xaa\xe2\xd0\xc7\
+\xf3\x0b\xd7\x87\x1f\x5c\x17h\xbf\x8b\x81\x16\xfb\xab\x0e\x06\
+G\x16l/\x92R\xf6=d\x1c\xe7QB\x81\xca\xc8\
+\xef\x94\xa8\xd2~\xe6\xfb\x9a2\xf0\xcc/\xef\xe9\x07\xca\
+N\xc0\x00D\x1f\x088\x81\x22P6\x1c\x16\x12\x09\x90\
+\x0c\xea\xfe=\xc0\xbcU\xbf\x7f\xa5\xf6\x1d8\x19Hh\
+\x89\x1c-\xddc\xe9\xe5_]\xec\xf4\xeb\x15\xe4\x87C\
+\x06\xa5\xe2\xe2,\xff8\xd8\xccO\xf4\xbbIx\xd0S\
+L\xe6\xbcV.K\x05\x17\xc7\x8d\xcc\xbf\xc6\xdd\xf7\x0d\
+\xd8\xb9\xa9\x0cS\x11\xe0\x1c\x5c\xdb\xac\x81\xbcC2F\
+\x80uD\xe1J\x19\x0e*\x08&\x10I\xbeo\x9f`\
+\xd6\x90X\x1e_\xc8W\x81\xfc\xf9x\xdeiV!|\
+\xdd7\xcc\xd2\xfb>SX{\xbd\x22\x86\xcc\x11\xfa\xec\
+\x91u|\x96\x93\x83M\xed\x81\x04i\x80\x03\xcd|\x8f\
+\xb2fQ\xef\x9a\xfd\x91\xcaG\xe4T\x90\xa3?\x9cY\
+*\x0c\xdd\x09%\xe0GM\xc1\x11XT\xa2q\x8cA\
+bp\xfe\xe3\x80\xaa\x97\x96\xeb\xf4y\xa3}\xca\xc2\xb2\
+n\x09q\xc9\xbc\x10\x0b\xff\xa4\x93O\x11\xb0\x94\xfb\xe0\
+\xfbq\xd8\x9e\xf6\xbf+\xe3\xc6}\xd1*G\xc0\xbe\xae\
+\x12\xee\x04\x22\xf1\xfc\x00\xb9\xd2\x07\xb2*t\xb49w\
+\x1e\x95C\x17\x137\x91\x9b \x92\xf9\x05}o\xd7\xa3\
+\x8f\x15\xc9']\x17\xbe\xack\xe6=~\x0d\x81\x0b\xa4\
+\x8b\x7f\xd3\xb9\x00\xe2O\x883G\xe4\xf0\xf7\x92ev\
+d&~\xc0\x05\xda\x8fh\xf9\x0a\xd0o_\xb7\x14\x0a\
+x\xde\xf8\x19\xc8rB\x1eGO6\xfb\xd1s\xa1\xb5\
+\x83y\xce\xf70\xcf\xab\xdc\x1f\xd0\xe2\xf2\xfeJ.\x9a\
+\x91})\x0c)r\x8b\x90uEU\x86g\x9d\xfd\xbe\
+8\xfc\x97\x0dW\x18\xf2\xd0\x91*Q'\x5c\x8ex.\
+\x8c-\xd3<g\x9e_H8yEN\xcf\x95\x02\x80\
+\xfbuT\xb8\x85H\xf5\x049\x01hl\x15\xe1\xbe\x99\
+\xff|o\x85\xf8\x97\xeb\x8ej\x02\xfc}T\x8d`|\
+#\xf2\x00\xff\x9d\x1em\xae\x87\xf1\x0f\x81\xb0\x07r\x90\
+\x1d\x1e\xd4\x1d\xd8\x1d\xd8\x5cgT\xd5`\x1e\xde!\x92\
+]\x91\x87{\xcb\x12\x01\x13\x09;\x9e\x17\xdf\xcb\xcf\xb1\
+E\x83\xfb\x8b\xb2\x7f\x04\xa2\x91\x04\xf1\x99\xb0\x0f\xc4\x0a\
+=\x09K\x02\xf5\xb1\xa9\xb2\xa4\xd3\x02\x7f^\xb9N\x9e\
+O\x95\xcd\x9b\xdaRU\x91lE\x8dK\xa4\xa6~\xce\
+\xc4\xf5>\xcb\x11>\xe5s\xb9\x7f\xf6\xb5\x7f\x86\xc4\x02\
+-\x00cz\x1f\xad5\xec\x0b\x0bi<\xf8GB\x83\
+u\xc1\xe70>\x8b\x065\x0a\xc6+\xca\xe6\xe1\xbf\xf1\
+\xefiO4\x95\xfdj\xa1\xa0F\xc1x\x8e\xa9\xa7|\
+\xb6\xfc\x10\xbe\x07\xff,r,\xf0\xbc#g\x01\x9fG\
+kV$\x1f\x5c\xde\xe3\x9e\xb2.\xe6\xf6\x8fq\x10\xa2\
+\xb4\xbb\xc1\xaci\x95D\xdd\x8d\x16m\x02\x7f\x9e\x1b\x05\
++\xe2Y!l\xbc\x10%\xd2q'\xf9C\xb5\x0d\x99\
+x\x9d{\xdd\xdf\xbb\xfb\xbb\xfb+\x12s\xb4\xebh\x97\
+\x91q\xef-!\x0e\xaf\x8d\xa5\x1a\xf0\x22\xb3\xf4\xff/\
+5k\xc8y\xaf*\xfb+-\xf4\x13\x0e\xbd\x9f/w\
+[\x14G\xe0\xbf\x954+os3\x9a\x05D\x85?\
+B\x8d\xa8\x94\xf03\x90\x06Ao3+\xee\x82\x95\x9d\
+<C\xf2\xd7T`t^\x03\x0d\xdc'\x83\xa2+\x04\
+\x09\x96_\xb8\x07\x04\xbd\x00\xf2\x0f\x14\x91\x8al\x864\
+/\xd9@\xb5-\x902\xd2\xa5\xd9f\xe9\xf5\x0b\xc9\xbe\
+(\xd9\x9bM\xc4:\xbeB\x85\xba:\xb9\x1c\x19\x95\x9f\
+$;=\x0d\xe4{\xcd\x1a\x16t\x10\x0b\xf4\x8a\xfe\xac\
+\xf4\xdew\xf7\x98\xa5\xf7oiV+\x8f@$GW\
+'\xb3\x07\xf0\xdbdW\xd6q\xccd:\xc9A\xb00\
+\xda\x02i'k\x83\x95\xfd\x22!\x1c\x80x\x8bC\xc0\
+\xa1\x98\x90F\xc0\x0a)\xf9C\x1f\x97\x8b\x0a)\xe3p\
+\xad2\xdd\xaad{ \x82\x0c\xa0d\xc2\xba5\x940\
+\xd8Org\xef\x95\xac\xa0H\x0c\xbd\xa5\x82\x80S\xba\
+\xc1^i}k!\x9f\xf0\x0a\xf7\x0f\x8a\xfe\xfc\xb0\x90\
+Ye\xbb\xef\xf75K\xafO\xf4\x8f\xf7&\x9f\xf8T\
+\xb2YM\xaf\xb7Z\x00\xf2\xd3Y\xa3\xcaO\xf6\x7f4\
+\xab\x95\x09\xef\xddg\xa1q \xeb:\x5c\xf6\x91\x0d\x09\
+G\x83\x8c/\xd0A\xe4\xdd\x084a7\x87\x0bc\xa1\
+\xdc\x9dX\x0f&s\xff\x93\xa3\xde\x7f/\xd9\xf7\x9b\x04\
+\x10r\x1c\x22'\xeb\xee2\xab\x95\xb5LB\xf9\xe5F\
+\x8f\xf9\xcff\x0d\xa7\x85\xd5\x0f\xbf\xa6\xcc\xf9\x1d\x92\x0b\
+I\xebqX,\xd9\xa2\x0d\xf9\x928\x0c2'\xc2\xbe\
+M\xc0\xc8F\xd4\x92A\xceT\x86\xf3\xe6\x06\xe2\xb5L\
+\xae\x8dVH+\x09\xbd\x1b\xb3\x00T9\xb8[2*\
+\xee\x7f\xe1,\x80T+\xea\x06\xb1\xbd\xae\xe9e\x1ee\
+\x97\xac:\x80\x11r\x1be\x97p\x189h9\x10\xc9\
+\xc0\xd2\x92\x82\x0c%\xcf\x07\xf27*\xbdV_=s\
+\xca\xc6^\x0e\x16\x0e\x0e\x0e*\xee\x07\x12C Z\xf4\
+<F\xd6a\x1c\x099\xbc\xce\xca\xffQ\xb3\x9a\x08\xf0\
+\xd6\x1b\x1cM \x82\xfc=\xf7\xc9\xfe\xc1\x01\x05\x07\x00\
+\x99f\x91\xca9\xe4\xee2\x05\x5c8\x10\x1f\x17\xdb>\
+\xe4~\x82\x8a{\xc5\x8e\xf9\xad\x03\xcbI\x01!\x0d\xfd\
+NwTwT\x93\xe8BnN\xf3\xd3\xdc\xdf\xbc\xee\
+\xa8\x04\x93\x08#3.\xf5\x04w,\x09P\xe0p!\
+\xe0\x0e,\xc0>?\xb8\x7f\x91\xe5\xf9\xbc\xa0B\x1e\x13\
+\xc8\xa17\xd6\x1d6\xd6\xa7'\x22\xca8v\xcb\xea\xf9\
+\xe1H\xc3!\xb3\x9a\xe6\x1b\xad\x058\x0e\x91\x94\x91^\
+Q\x1cJ\x9e\x0f\xd0|\xae\xe7Q}\x0f\xf7C\xe6\x9e\
+\x1eC\x9e\xbbT\x0b<\xb1\x87#\xa5\x046\xfbw7\
+\x9fYz=\xdb\xac\x22#\xc6N\xccV\x03\xcd\xf1\xe0\
+\x003/\xd8\x97\xa8\xd4D\x96\xe8\xc7\x83\x5c\x18\x8e(\
+\x7f\x8f\x03G\xe0r\x9bZ_\x90!\xa4\x95\xe6\xaf\x22\
+\x8d#\x11qEI\xb8\xd1\x92\xe4\x89v>\xff\xc0B\
+N\x0b$\xd4\x13<\xe8\x87\x03)e}\xe0P\xc7\x04\
+&\x15%T[\x90uc\xfe\x90\x00\x88dS1\xa0\
+\x0c\xec\xdaN\xceI\x85\x8a\xf9p\xaf\x1cp\xe4Q\xb9\
+N*\xdb\xa8\xff\x18\xb2i\xe3\x17\x90\xaf[\xdau\xdb\
+\x0b\x12@\x89;'w\x8b\x15\xe0JN\x88.v\xe1\
+P\xa1\x85\x8f}3\xb0\xcc;w\x01\xaf<g\xee\x83\
+\xfdo\x99\x90x\x01Q\xc2\xcf\xac\x13>\x17D\x8a\xa9\
+9\x9d\xd3p\xb8(\x11\xe7\xcf\x83\xe7\x0cd\x96\xe7\xc2\
+\xf7\xd5D@\xa9\xd8\xb1\xbeY\x9f1\xe0\xa8\xbd\xc9\xe5\
+\xb9\xf2\xfb\xb8\x7f\xf7A~\x8c\x9fW\xd4}\x10\xf0-\
+V\xb8m\x08P\xbd@\x12+\x99\xac\xff\xe9\x81ty\
+\x9e\xb0\xce\xeb\xba\xfd\xbc\xc6\xdf\xe0\x9c\xab\xac\xf3\xe5\xba\
+\xa8,\xa2\xf6\xa2D\xab#8a\xd3\xe7\xf3\x90O\x5c\
+\xd6\xac\xb9\x9e\xf1\x10\xa8\x00\xe5\xfeo`]'a\x11\
+_\xf9{\xae3\xec\x1f\x03\xf3\xc0\x0a\x05\xff\xa9~\xa0\
+\x93?\xc3\xc5\x22\xff\xcd\x11\xa4@\xd2\xe1v\xe2\xfd\xc7\
+\xa8\x00D\x85\x93\x00\xf0>\x91\xdc\xd2c\xcf\xbeE\xa2\
+\xed\x81\xc0R\xcf|t\x1d\xe8\xf0\x1a\x03\xfe\xf83\xaf\
+\xeco\xb1\xd50\x92\xe9\xc5\x96\x84H\xdeGbq\xde\
+\x90\x18b\xdf\x8d\x88\x8d\x98\x00\xe0\xfcb_\xa3\x95\x8f\
+\xef\xc1\x8f\xe5\xe7\x08\xb5\xe7\xfa \xcb\x9b7\x90\xdd=\
+\xec\x89\x9c\xf2>\xbe\x8f\xf5\xc0z\x82\xbb\x01\xd06\xfb\
+ \x9c\x0c114\xcb\xc9-\xcb\xfe\x0cgR\xec\xbd\
+\xe7\x1f\xb2\x93\xffu\x8e\x95\xf2\x1c#\x19\x1f\xeb\xb7\xca\
+8\xe6\xef\xf5\xd6K\xce}\xd4\xca$\xbf=M\x9d\x84\
+\xc2\x152\x80 \xae\xb8o\xc6\x95\xf1\x80\x03\x8cx\x95\
+D\x17\xdcN\xbcr^\xae-$\xb0\x0a\x17\xd3HZ\
+\xa3\xca\x01\xfb/~%\xfb&~\x9a\xc8\xc8\xbdE\x8d\
+\xd6\x02H\x8f)(H\x0d\x0e?\x8c\x04@\xb7\xa2\xc8\
+\x0b\xa5&\xd0\xdfb\x96\xcf\xa5\x8c8uYz\x0a\x88\
+\xb4|i}\xfc?\xc4FS\xb5f\x9b\xe1I\x00\x00\
+\x00\x00IEND\xaeB`\x82\
+"
+
+qt_resource_name = b"\
+\x00\x03\
+\x00\x00x<\
+\x00q\
+\x00m\x00l\
+\x00\x11\
+\x05\xba\xd1Y\
+\x00q\
+\x00m\x00l\x00s\x00u\x00r\x00f\x00a\x00c\x00e\x00g\x00a\x00l\x00l\x00e\x00r\x00y\
+\
+\x00\x0d\
+\x0e\xfc\xe9\x87\
+\x00h\
+\x00e\x00i\x00g\x00h\x00t\x00m\x00a\x00p\x00.\x00p\x00n\x00g\
+"
+
+qt_resource_struct = b"\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x0c\x00\x02\x00\x00\x00\x01\x00\x00\x00\x03\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x004\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
+\x00\x00\x01\x86\xe4\xfa\x81v\
+"
+
+def qInitResources():
+ QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+def qCleanupResources():
+ QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+qInitResources()
diff --git a/examples/datavisualization/surface/main.py b/examples/datavisualization/surface/main.py
index 3b0bd095a..f43970184 100644
--- a/examples/datavisualization/surface/main.py
+++ b/examples/datavisualization/surface/main.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
@@ -49,170 +12,178 @@ from PySide6.QtWidgets import (QApplication, QComboBox, QGroupBox, QHBoxLayout,
from surfacegraph import SurfaceGraph
-THEMES = ["Qt", "Primary Colors", "Digia", "Stone Moss", "Army Blue", "Retro", "Ebony", "Isabelle"]
+THEMES = ["Qt", "Primary Colors", "Digia", "Stone Moss", "Army Blue", "Retro",
+ "Ebony", "Isabelle"]
+
+
+class Window(QWidget):
+ def __init__(self, graph, parent=None):
+ super().__init__(parent)
+ self._graph = graph
+ self._container = QWidget.createWindowContainer(self._graph, self,
+ Qt.Widget)
+
+ screen_size = self._graph.screen().size()
+ self._container.setMinimumSize(QSize(screen_size.width() / 2,
+ screen_size.height() / 1.6))
+ self._container.setMaximumSize(screen_size)
+ self._container.setSizePolicy(QSizePolicy.Expanding,
+ QSizePolicy.Expanding)
+ self._container.setFocusPolicy(Qt.StrongFocus)
+
+ h_layout = QHBoxLayout(self)
+ v_layout = QVBoxLayout()
+ h_layout.addWidget(self._container, 1)
+ h_layout.addLayout(v_layout)
+ v_layout.setAlignment(Qt.AlignTop)
+
+ model_group_box = QGroupBox("Model")
+
+ sqrt_sin_model_rb = QRadioButton(self)
+ sqrt_sin_model_rb.setText("Sqrt& Sin")
+ sqrt_sin_model_rb.setChecked(False)
+
+ height_map_model_rb = QRadioButton(self)
+ height_map_model_rb.setText("Height Map")
+ height_map_model_rb.setChecked(False)
+
+ model_vbox = QVBoxLayout()
+ model_vbox.addWidget(sqrt_sin_model_rb)
+ model_vbox.addWidget(height_map_model_rb)
+ model_group_box.setLayout(model_vbox)
+
+ selection_group_box = QGroupBox("Selection Mode")
+
+ mode_none_rb = QRadioButton(self)
+ mode_none_rb.setText("No selection")
+ mode_none_rb.setChecked(False)
+
+ mode_item_rb = QRadioButton(self)
+ mode_item_rb.setText("Item")
+ mode_item_rb.setChecked(False)
+
+ mode_slice_row_rb = QRadioButton(self)
+ mode_slice_row_rb.setText("Row Slice")
+ mode_slice_row_rb.setChecked(False)
+
+ mode_slice_column_rb = QRadioButton(self)
+ mode_slice_column_rb.setText("Column Slice")
+ mode_slice_column_rb.setChecked(False)
+
+ selection_vbox = QVBoxLayout()
+ selection_vbox.addWidget(mode_none_rb)
+ selection_vbox.addWidget(mode_item_rb)
+ selection_vbox.addWidget(mode_slice_row_rb)
+ selection_vbox.addWidget(mode_slice_column_rb)
+ selection_group_box.setLayout(selection_vbox)
+
+ axis_min_slider_x = QSlider(Qt.Horizontal, self)
+ axis_min_slider_x.setMinimum(0)
+ axis_min_slider_x.setTickInterval(1)
+ axis_min_slider_x.setEnabled(True)
+ axis_max_slider_x = QSlider(Qt.Horizontal, self)
+ axis_max_slider_x.setMinimum(1)
+ axis_max_slider_x.setTickInterval(1)
+ axis_max_slider_x.setEnabled(True)
+ axis_min_slider_z = QSlider(Qt.Horizontal, self)
+ axis_min_slider_z.setMinimum(0)
+ axis_min_slider_z.setTickInterval(1)
+ axis_min_slider_z.setEnabled(True)
+ axis_max_slider_z = QSlider(Qt.Horizontal, self)
+ axis_max_slider_z.setMinimum(1)
+ axis_max_slider_z.setTickInterval(1)
+ axis_max_slider_z.setEnabled(True)
+
+ theme_list = QComboBox(self)
+ theme_list.addItems(THEMES)
+
+ color_group_box = QGroupBox("Custom gradient")
+
+ gr_bto_y = QLinearGradient(0, 0, 1, 100)
+ gr_bto_y.setColorAt(1.0, Qt.black)
+ gr_bto_y.setColorAt(0.67, Qt.blue)
+ gr_bto_y.setColorAt(0.33, Qt.red)
+ gr_bto_y.setColorAt(0.0, Qt.yellow)
+
+ pm = QPixmap(24, 100)
+ pmp = QPainter(pm)
+ pmp.setBrush(QBrush(gr_bto_y))
+ pmp.setPen(Qt.NoPen)
+ pmp.drawRect(0, 0, 24, 100)
+ pmp.end()
+
+ gradient_bto_ypb = QPushButton(self)
+ gradient_bto_ypb.setIcon(QIcon(pm))
+ gradient_bto_ypb.setIconSize(QSize(24, 100))
+
+ gr_gto_r = QLinearGradient(0, 0, 1, 100)
+ gr_gto_r.setColorAt(1.0, Qt.darkGreen)
+ gr_gto_r.setColorAt(0.5, Qt.yellow)
+ gr_gto_r.setColorAt(0.2, Qt.red)
+ gr_gto_r.setColorAt(0.0, Qt.darkRed)
+ pmp.begin(pm)
+ pmp.setBrush(QBrush(gr_gto_r))
+ pmp.drawRect(0, 0, 24, 100)
+ pmp.end()
+
+ gradient_gto_rpb = QPushButton(self)
+ gradient_gto_rpb.setIcon(QIcon(pm))
+ gradient_gto_rpb.setIconSize(QSize(24, 100))
+
+ color_hbox = QHBoxLayout()
+ color_hbox.addWidget(gradient_bto_ypb)
+ color_hbox.addWidget(gradient_gto_rpb)
+ color_group_box.setLayout(color_hbox)
+
+ v_layout.addWidget(model_group_box)
+ v_layout.addWidget(selection_group_box)
+ v_layout.addWidget(QLabel("Column range"))
+ v_layout.addWidget(axis_min_slider_x)
+ v_layout.addWidget(axis_max_slider_x)
+ v_layout.addWidget(QLabel("Row range"))
+ v_layout.addWidget(axis_min_slider_z)
+ v_layout.addWidget(axis_max_slider_z)
+ v_layout.addWidget(QLabel("Theme"))
+ v_layout.addWidget(theme_list)
+ v_layout.addWidget(color_group_box)
+
+ self._modifier = SurfaceGraph(self._graph)
+
+ height_map_model_rb.toggled.connect(self._modifier.enable_height_map_model)
+ sqrt_sin_model_rb.toggled.connect(self._modifier.enable_sqrt_sin_model)
+ mode_none_rb.toggled.connect(self._modifier.toggle_mode_none)
+ mode_item_rb.toggled.connect(self._modifier.toggle_mode_item)
+ mode_slice_row_rb.toggled.connect(self._modifier.toggle_mode_slice_row)
+ mode_slice_column_rb.toggled.connect(self._modifier.toggle_mode_slice_column)
+ axis_min_slider_x.valueChanged.connect(self._modifier.adjust_xmin)
+ axis_max_slider_x.valueChanged.connect(self._modifier.adjust_xmax)
+ axis_min_slider_z.valueChanged.connect(self._modifier.adjust_zmin)
+ axis_max_slider_z.valueChanged.connect(self._modifier.adjust_zmax)
+ theme_list.currentIndexChanged[int].connect(self._modifier.change_theme)
+ gradient_bto_ypb.pressed.connect(self._modifier.set_black_to_yellow_gradient)
+ gradient_gto_rpb.pressed.connect(self._modifier.set_green_to_red_gradient)
+
+ self._modifier.set_axis_min_slider_x(axis_min_slider_x)
+ self._modifier.set_axis_max_slider_x(axis_max_slider_x)
+ self._modifier.set_axis_min_slider_z(axis_min_slider_z)
+ self._modifier.set_axis_max_slider_z(axis_max_slider_z)
+
+ sqrt_sin_model_rb.setChecked(True)
+ mode_item_rb.setChecked(True)
+ theme_list.setCurrentIndex(2)
if __name__ == "__main__":
app = QApplication(sys.argv)
graph = Q3DSurface()
- container = QWidget.createWindowContainer(graph)
-
if not graph.hasContext():
- msgBox = QMessageBox()
- msgBox.setText("Couldn't initialize the OpenGL context.")
- msgBox.exec()
+ msg_box = QMessageBox()
+ msg_box.setText("Couldn't initialize the OpenGL context.")
+ msg_box.exec()
sys.exit(-1)
- screenSize = graph.screen().size()
- container.setMinimumSize(QSize(screenSize.width() / 2, screenSize.height() / 1.6))
- container.setMaximumSize(screenSize)
- container.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
- container.setFocusPolicy(Qt.StrongFocus)
-
- widget = QWidget()
- hLayout = QHBoxLayout(widget)
- vLayout = QVBoxLayout()
- hLayout.addWidget(container, 1)
- hLayout.addLayout(vLayout)
- vLayout.setAlignment(Qt.AlignTop)
-
- widget.setWindowTitle("Surface example")
-
- modelGroupBox = QGroupBox("Model")
-
- sqrtSinModelRB = QRadioButton(widget)
- sqrtSinModelRB.setText("Sqrt& Sin")
- sqrtSinModelRB.setChecked(False)
-
- heightMapModelRB = QRadioButton(widget)
- heightMapModelRB.setText("Height Map")
- heightMapModelRB.setChecked(False)
-
- modelVBox = QVBoxLayout()
- modelVBox.addWidget(sqrtSinModelRB)
- modelVBox.addWidget(heightMapModelRB)
- modelGroupBox.setLayout(modelVBox)
-
- selectionGroupBox = QGroupBox("Selection Mode")
-
- modeNoneRB = QRadioButton(widget)
- modeNoneRB.setText("No selection")
- modeNoneRB.setChecked(False)
-
- modeItemRB = QRadioButton(widget)
- modeItemRB.setText("Item")
- modeItemRB.setChecked(False)
-
- modeSliceRowRB = QRadioButton(widget)
- modeSliceRowRB.setText("Row Slice")
- modeSliceRowRB.setChecked(False)
-
- modeSliceColumnRB = QRadioButton(widget)
- modeSliceColumnRB.setText("Column Slice")
- modeSliceColumnRB.setChecked(False)
-
- selectionVBox = QVBoxLayout()
- selectionVBox.addWidget(modeNoneRB)
- selectionVBox.addWidget(modeItemRB)
- selectionVBox.addWidget(modeSliceRowRB)
- selectionVBox.addWidget(modeSliceColumnRB)
- selectionGroupBox.setLayout(selectionVBox)
-
- axisMinSliderX = QSlider(Qt.Horizontal, widget)
- axisMinSliderX.setMinimum(0)
- axisMinSliderX.setTickInterval(1)
- axisMinSliderX.setEnabled(True)
- axisMaxSliderX = QSlider(Qt.Horizontal, widget)
- axisMaxSliderX.setMinimum(1)
- axisMaxSliderX.setTickInterval(1)
- axisMaxSliderX.setEnabled(True)
- axisMinSliderZ = QSlider(Qt.Horizontal, widget)
- axisMinSliderZ.setMinimum(0)
- axisMinSliderZ.setTickInterval(1)
- axisMinSliderZ.setEnabled(True)
- axisMaxSliderZ = QSlider(Qt.Horizontal, widget)
- axisMaxSliderZ.setMinimum(1)
- axisMaxSliderZ.setTickInterval(1)
- axisMaxSliderZ.setEnabled(True)
-
- themeList = QComboBox(widget)
- themeList.addItems(THEMES)
-
- colorGroupBox = QGroupBox("Custom gradient")
-
- grBtoY = QLinearGradient(0, 0, 1, 100)
- grBtoY.setColorAt(1.0, Qt.black)
- grBtoY.setColorAt(0.67, Qt.blue)
- grBtoY.setColorAt(0.33, Qt.red)
- grBtoY.setColorAt(0.0, Qt.yellow)
-
- pm = QPixmap(24, 100)
- pmp = QPainter(pm)
- pmp.setBrush(QBrush(grBtoY))
- pmp.setPen(Qt.NoPen)
- pmp.drawRect(0, 0, 24, 100)
- pmp.end()
-
- gradientBtoYPB = QPushButton(widget)
- gradientBtoYPB.setIcon(QIcon(pm))
- gradientBtoYPB.setIconSize(QSize(24, 100))
-
- grGtoR = QLinearGradient(0, 0, 1, 100)
- grGtoR.setColorAt(1.0, Qt.darkGreen)
- grGtoR.setColorAt(0.5, Qt.yellow)
- grGtoR.setColorAt(0.2, Qt.red)
- grGtoR.setColorAt(0.0, Qt.darkRed)
- pmp.begin(pm)
- pmp.setBrush(QBrush(grGtoR))
- pmp.drawRect(0, 0, 24, 100)
- pmp.end()
-
- gradientGtoRPB = QPushButton(widget)
- gradientGtoRPB.setIcon(QIcon(pm))
- gradientGtoRPB.setIconSize(QSize(24, 100))
-
- colorHBox = QHBoxLayout()
- colorHBox.addWidget(gradientBtoYPB)
- colorHBox.addWidget(gradientGtoRPB)
- colorGroupBox.setLayout(colorHBox)
-
- vLayout.addWidget(modelGroupBox)
- vLayout.addWidget(selectionGroupBox)
- vLayout.addWidget(QLabel("Column range"))
- vLayout.addWidget(axisMinSliderX)
- vLayout.addWidget(axisMaxSliderX)
- vLayout.addWidget(QLabel("Row range"))
- vLayout.addWidget(axisMinSliderZ)
- vLayout.addWidget(axisMaxSliderZ)
- vLayout.addWidget(QLabel("Theme"))
- vLayout.addWidget(themeList)
- vLayout.addWidget(colorGroupBox)
-
- widget.show()
-
- modifier = SurfaceGraph(graph)
-
- heightMapModelRB.toggled.connect(modifier.enableHeightMapModel)
- sqrtSinModelRB.toggled.connect(modifier.enableSqrtSinModel)
- modeNoneRB.toggled.connect(modifier.toggleModeNone)
- modeItemRB.toggled.connect(modifier.toggleModeItem)
- modeSliceRowRB.toggled.connect(modifier.toggleModeSliceRow)
- modeSliceColumnRB.toggled.connect(modifier.toggleModeSliceColumn)
- axisMinSliderX.valueChanged.connect(modifier.adjustXMin)
- axisMaxSliderX.valueChanged.connect(modifier.adjustXMax)
- axisMinSliderZ.valueChanged.connect(modifier.adjustZMin)
- axisMaxSliderZ.valueChanged.connect(modifier.adjustZMax)
- themeList.currentIndexChanged[int].connect(modifier.changeTheme)
- gradientBtoYPB.pressed.connect(modifier.setBlackToYellowGradient)
- gradientGtoRPB.pressed.connect(modifier.setGreenToRedGradient)
-
- modifier.setAxisMinSliderX(axisMinSliderX)
- modifier.setAxisMaxSliderX(axisMaxSliderX)
- modifier.setAxisMinSliderZ(axisMinSliderZ)
- modifier.setAxisMaxSliderZ(axisMaxSliderZ)
-
- sqrtSinModelRB.setChecked(True)
- modeItemRB.setChecked(True)
- themeList.setCurrentIndex(2)
+ window = Window(graph)
+ window.setWindowTitle("Surface example")
+ window.show()
sys.exit(app.exec())
diff --git a/examples/datavisualization/surface/surfacegraph.py b/examples/datavisualization/surface/surfacegraph.py
index 8af18b550..69eea716c 100644
--- a/examples/datavisualization/surface/surfacegraph.py
+++ b/examples/datavisualization/surface/surfacegraph.py
@@ -1,44 +1,8 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import math
+from pathlib import Path
from PySide6.QtCore import QObject, Qt, Slot
from PySide6.QtDataVisualization import (Q3DTheme, QAbstract3DGraph,
@@ -48,228 +12,242 @@ from PySide6.QtDataVisualization import (Q3DTheme, QAbstract3DGraph,
from PySide6.QtGui import QImage, QLinearGradient, QVector3D
from PySide6.QtWidgets import QSlider
-sampleCountX = 50
-sampleCountZ = 50
-heightMapGridStepX = 6
-heightMapGridStepZ = 6
-sampleMin = -8.0
-sampleMax = 8.0
+SAMPLE_COUNT_X = 50
+SAMPLE_COUNT_Z = 50
+HEIGHT_MAP_GRID_STEP_X = 6
+HEIGHT_MAP_GRID_STEP_Z = 6
+SAMPLE_MIN = -8.0
+SAMPLE_MAX = 8.0
class SurfaceGraph(QObject):
def __init__(self, surface, parent=None):
- QObject.__init__(self, parent)
-
- self.m_graph = surface
- self.m_graph.setAxisX(QValue3DAxis())
- self.m_graph.setAxisY(QValue3DAxis())
- self.m_graph.setAxisZ(QValue3DAxis())
-
- self.m_sqrtSinProxy = QSurfaceDataProxy()
- self.m_sqrtSinSeries = QSurface3DSeries(self.m_sqrtSinProxy)
- self.fillSqrtSinProxy()
-
- heightMapImage = QImage("mountain.png")
- self.m_heightMapProxy = QHeightMapSurfaceDataProxy(heightMapImage)
- self.m_heightMapSeries = QSurface3DSeries(self.m_heightMapProxy)
- self.m_heightMapSeries.setItemLabelFormat("(@xLabel, @zLabel): @yLabel")
- self.m_heightMapProxy.setValueRanges(34.0, 40.0, 18.0, 24.0)
-
- self.m_heightMapWidth = heightMapImage.width()
- self.m_heightMapHeight = heightMapImage.height()
-
- self.m_axisMinSliderX = QSlider()
- self.m_axisMaxSliderX = QSlider()
- self.m_axisMinSliderZ = QSlider()
- self.m_axisMaxSliderZ = QSlider()
- self.m_rangeMinX = 0.0
- self.m_rangeMinZ = 0.0
- self.m_stepX = 0.0
- self.m_stepZ = 0.0
-
- def fillSqrtSinProxy(self):
- stepX = (sampleMax - sampleMin) / float(sampleCountX - 1)
- stepZ = (sampleMax - sampleMin) / float(sampleCountZ - 1)
-
- dataArray = []
- for i in range(sampleCountZ):
- newRow = []
+ super().__init__(parent)
+
+ self._graph = surface
+ self._graph.setAxisX(QValue3DAxis())
+ self._graph.setAxisY(QValue3DAxis())
+ self._graph.setAxisZ(QValue3DAxis())
+
+ self._sqrtSinProxy = QSurfaceDataProxy()
+ self._sqrtSinSeries = QSurface3DSeries(self._sqrtSinProxy)
+ self.fill_sqrt_sin_proxy()
+
+ image_file = Path(__file__).parent / "mountain.png"
+ height_map_image = QImage(image_file)
+ self._heightMapProxy = QHeightMapSurfaceDataProxy(height_map_image)
+ self._heightMapSeries = QSurface3DSeries(self._heightMapProxy)
+ self._heightMapSeries.setItemLabelFormat("(@xLabel, @zLabel): @yLabel")
+ self._heightMapProxy.setValueRanges(34.0, 40.0, 18.0, 24.0)
+
+ self._heightMapWidth = height_map_image.width()
+ self._heightMapHeight = height_map_image.height()
+
+ self._axisMinSliderX = QSlider()
+ self._axisMaxSliderX = QSlider()
+ self._axisMinSliderZ = QSlider()
+ self._axisMaxSliderZ = QSlider()
+ self._rangeMinX = 0.0
+ self._rangeMinZ = 0.0
+ self._stepX = 0.0
+ self._stepZ = 0.0
+
+ def fill_sqrt_sin_proxy(self):
+ step_x = (SAMPLE_MAX - SAMPLE_MIN) / float(SAMPLE_COUNT_X - 1)
+ step_z = (SAMPLE_MAX - SAMPLE_MIN) / float(SAMPLE_COUNT_Z - 1)
+
+ data_array = []
+ for i in range(SAMPLE_COUNT_Z):
+ new_row = []
# Keep values within range bounds, since just adding step can cause
# minor drift due to the rounding errors.
- z = min(sampleMax, (i * stepZ + sampleMin))
- for j in range(sampleCountX):
- x = min(sampleMax, (j * stepX + sampleMin))
+ z = min(SAMPLE_MAX, (i * step_z + SAMPLE_MIN))
+ for j in range(SAMPLE_COUNT_X):
+ x = min(SAMPLE_MAX, (j * step_x + SAMPLE_MIN))
R = math.sqrt(z * z + x * x) + 0.01
y = (math.sin(R) / R + 0.24) * 1.61
- newRow.append(QSurfaceDataItem(QVector3D(x, y, z)))
- dataArray.append(newRow)
+ new_row.append(QSurfaceDataItem(QVector3D(x, y, z)))
+ data_array.append(new_row)
- self.m_sqrtSinProxy.resetArray(dataArray)
+ self._sqrtSinProxy.resetArray(data_array)
- def enableSqrtSinModel(self, enable):
+ @Slot(bool)
+ def enable_sqrt_sin_model(self, enable):
if enable:
- self.m_sqrtSinSeries.setDrawMode(QSurface3DSeries.DrawSurfaceAndWireframe)
- self.m_sqrtSinSeries.setFlatShadingEnabled(True)
+ self._sqrtSinSeries.setDrawMode(QSurface3DSeries.DrawSurfaceAndWireframe)
+ self._sqrtSinSeries.setFlatShadingEnabled(True)
- self.m_graph.axisX().setLabelFormat("%.2f")
- self.m_graph.axisZ().setLabelFormat("%.2f")
- self.m_graph.axisX().setRange(sampleMin, sampleMax)
- self.m_graph.axisY().setRange(0.0, 2.0)
- self.m_graph.axisZ().setRange(sampleMin, sampleMax)
- self.m_graph.axisX().setLabelAutoRotation(30)
- self.m_graph.axisY().setLabelAutoRotation(90)
- self.m_graph.axisZ().setLabelAutoRotation(30)
+ self._graph.axisX().setLabelFormat("%.2f")
+ self._graph.axisZ().setLabelFormat("%.2f")
+ self._graph.axisX().setRange(SAMPLE_MIN, SAMPLE_MAX)
+ self._graph.axisY().setRange(0.0, 2.0)
+ self._graph.axisZ().setRange(SAMPLE_MIN, SAMPLE_MAX)
+ self._graph.axisX().setLabelAutoRotation(30)
+ self._graph.axisY().setLabelAutoRotation(90)
+ self._graph.axisZ().setLabelAutoRotation(30)
- self.m_graph.removeSeries(self.m_heightMapSeries)
- self.m_graph.addSeries(self.m_sqrtSinSeries)
+ self._graph.removeSeries(self._heightMapSeries)
+ self._graph.addSeries(self._sqrtSinSeries)
# Reset range sliders for Sqrt&Sin
- self.m_rangeMinX = sampleMin
- self.m_rangeMinZ = sampleMin
- self.m_stepX = (sampleMax - sampleMin) / float(sampleCountX - 1)
- self.m_stepZ = (sampleMax - sampleMin) / float(sampleCountZ - 1)
- self.m_axisMinSliderX.setMaximum(sampleCountX - 2)
- self.m_axisMinSliderX.setValue(0)
- self.m_axisMaxSliderX.setMaximum(sampleCountX - 1)
- self.m_axisMaxSliderX.setValue(sampleCountX - 1)
- self.m_axisMinSliderZ.setMaximum(sampleCountZ - 2)
- self.m_axisMinSliderZ.setValue(0)
- self.m_axisMaxSliderZ.setMaximum(sampleCountZ - 1)
- self.m_axisMaxSliderZ.setValue(sampleCountZ - 1)
-
- def enableHeightMapModel(self, enable):
+ self._rangeMinX = SAMPLE_MIN
+ self._rangeMinZ = SAMPLE_MIN
+ self._stepX = (SAMPLE_MAX - SAMPLE_MIN) / float(SAMPLE_COUNT_X - 1)
+ self._stepZ = (SAMPLE_MAX - SAMPLE_MIN) / float(SAMPLE_COUNT_Z - 1)
+ self._axisMinSliderX.setMaximum(SAMPLE_COUNT_X - 2)
+ self._axisMinSliderX.setValue(0)
+ self._axisMaxSliderX.setMaximum(SAMPLE_COUNT_X - 1)
+ self._axisMaxSliderX.setValue(SAMPLE_COUNT_X - 1)
+ self._axisMinSliderZ.setMaximum(SAMPLE_COUNT_Z - 2)
+ self._axisMinSliderZ.setValue(0)
+ self._axisMaxSliderZ.setMaximum(SAMPLE_COUNT_Z - 1)
+ self._axisMaxSliderZ.setValue(SAMPLE_COUNT_Z - 1)
+
+ @Slot(bool)
+ def enable_height_map_model(self, enable):
if enable:
- self.m_heightMapSeries.setDrawMode(QSurface3DSeries.DrawSurface)
- self.m_heightMapSeries.setFlatShadingEnabled(False)
+ self._heightMapSeries.setDrawMode(QSurface3DSeries.DrawSurface)
+ self._heightMapSeries.setFlatShadingEnabled(False)
- self.m_graph.axisX().setLabelFormat("%.1f N")
- self.m_graph.axisZ().setLabelFormat("%.1f E")
- self.m_graph.axisX().setRange(34.0, 40.0)
- self.m_graph.axisY().setAutoAdjustRange(True)
- self.m_graph.axisZ().setRange(18.0, 24.0)
+ self._graph.axisX().setLabelFormat("%.1f N")
+ self._graph.axisZ().setLabelFormat("%.1f E")
+ self._graph.axisX().setRange(34.0, 40.0)
+ self._graph.axisY().setAutoAdjustRange(True)
+ self._graph.axisZ().setRange(18.0, 24.0)
- self.m_graph.axisX().setTitle("Latitude")
- self.m_graph.axisY().setTitle("Height")
- self.m_graph.axisZ().setTitle("Longitude")
+ self._graph.axisX().setTitle("Latitude")
+ self._graph.axisY().setTitle("Height")
+ self._graph.axisZ().setTitle("Longitude")
- self.m_graph.removeSeries(self.m_sqrtSinSeries)
- self.m_graph.addSeries(self.m_heightMapSeries)
+ self._graph.removeSeries(self._sqrtSinSeries)
+ self._graph.addSeries(self._heightMapSeries)
# Reset range sliders for height map
- mapGridCountX = self.m_heightMapWidth / heightMapGridStepX
- mapGridCountZ = self.m_heightMapHeight / heightMapGridStepZ
- self.m_rangeMinX = 34.0
- self.m_rangeMinZ = 18.0
- self.m_stepX = 6.0 / float(mapGridCountX - 1)
- self.m_stepZ = 6.0 / float(mapGridCountZ - 1)
- self.m_axisMinSliderX.setMaximum(mapGridCountX - 2)
- self.m_axisMinSliderX.setValue(0)
- self.m_axisMaxSliderX.setMaximum(mapGridCountX - 1)
- self.m_axisMaxSliderX.setValue(mapGridCountX - 1)
- self.m_axisMinSliderZ.setMaximum(mapGridCountZ - 2)
- self.m_axisMinSliderZ.setValue(0)
- self.m_axisMaxSliderZ.setMaximum(mapGridCountZ - 1)
- self.m_axisMaxSliderZ.setValue(mapGridCountZ - 1)
-
- def adjustXMin(self, minimum):
- minX = self.m_stepX * float(minimum) + self.m_rangeMinX
-
- maximum = self.m_axisMaxSliderX.value()
+ map_grid_count_x = self._heightMapWidth / HEIGHT_MAP_GRID_STEP_X
+ map_grid_count_z = self._heightMapHeight / HEIGHT_MAP_GRID_STEP_Z
+ self._rangeMinX = 34.0
+ self._rangeMinZ = 18.0
+ self._stepX = 6.0 / float(map_grid_count_x - 1)
+ self._stepZ = 6.0 / float(map_grid_count_z - 1)
+ self._axisMinSliderX.setMaximum(map_grid_count_x - 2)
+ self._axisMinSliderX.setValue(0)
+ self._axisMaxSliderX.setMaximum(map_grid_count_x - 1)
+ self._axisMaxSliderX.setValue(map_grid_count_x - 1)
+ self._axisMinSliderZ.setMaximum(map_grid_count_z - 2)
+ self._axisMinSliderZ.setValue(0)
+ self._axisMaxSliderZ.setMaximum(map_grid_count_z - 1)
+ self._axisMaxSliderZ.setValue(map_grid_count_z - 1)
+
+ @Slot(int)
+ def adjust_xmin(self, minimum):
+ min_x = self._stepX * float(minimum) + self._rangeMinX
+
+ maximum = self._axisMaxSliderX.value()
if minimum >= maximum:
maximum = minimum + 1
- self.m_axisMaxSliderX.setValue(maximum)
- maxX = self.m_stepX * maximum + self.m_rangeMinX
+ self._axisMaxSliderX.setValue(maximum)
+ max_x = self._stepX * maximum + self._rangeMinX
- self.setAxisXRange(minX, maxX)
+ self.set_axis_xrange(min_x, max_x)
- def adjustXMax(self, maximum):
- maxX = self.m_stepX * float(maximum) + self.m_rangeMinX
+ @Slot(int)
+ def adjust_xmax(self, maximum):
+ max_x = self._stepX * float(maximum) + self._rangeMinX
- minimum = self.m_axisMinSliderX.value()
+ minimum = self._axisMinSliderX.value()
if maximum <= minimum:
minimum = maximum - 1
- self.m_axisMinSliderX.setValue(minimum)
- minX = self.m_stepX * minimum + self.m_rangeMinX
+ self._axisMinSliderX.setValue(minimum)
+ min_x = self._stepX * minimum + self._rangeMinX
- self.setAxisXRange(minX, maxX)
+ self.set_axis_xrange(min_x, max_x)
- def adjustZMin(self, minimum):
- minZ = self.m_stepZ * float(minimum) + self.m_rangeMinZ
+ @Slot(int)
+ def adjust_zmin(self, minimum):
+ min_z = self._stepZ * float(minimum) + self._rangeMinZ
- maximum = self.m_axisMaxSliderZ.value()
+ maximum = self._axisMaxSliderZ.value()
if minimum >= maximum:
maximum = minimum + 1
- self.m_axisMaxSliderZ.setValue(maximum)
- maxZ = self.m_stepZ * maximum + self.m_rangeMinZ
+ self._axisMaxSliderZ.setValue(maximum)
+ max_z = self._stepZ * maximum + self._rangeMinZ
- self.setAxisZRange(minZ, maxZ)
+ self.set_axis_zrange(min_z, max_z)
- def adjustZMax(self, maximum):
- maxX = self.m_stepZ * float(maximum) + self.m_rangeMinZ
+ @Slot(int)
+ def adjust_zmax(self, maximum):
+ max_x = self._stepZ * float(maximum) + self._rangeMinZ
- minimum = self.m_axisMinSliderZ.value()
+ minimum = self._axisMinSliderZ.value()
if maximum <= minimum:
minimum = maximum - 1
- self.m_axisMinSliderZ.setValue(minimum)
- minX = self.m_stepZ * minimum + self.m_rangeMinZ
+ self._axisMinSliderZ.setValue(minimum)
+ min_x = self._stepZ * minimum + self._rangeMinZ
- self.setAxisZRange(minX, maxX)
+ self.set_axis_zrange(min_x, max_x)
- def setAxisXRange(self, minimum, maximum):
- self.m_graph.axisX().setRange(minimum, maximum)
+ def set_axis_xrange(self, minimum, maximum):
+ self._graph.axisX().setRange(minimum, maximum)
- def setAxisZRange(self, minimum, maximum):
- self.m_graph.axisZ().setRange(minimum, maximum)
+ def set_axis_zrange(self, minimum, maximum):
+ self._graph.axisZ().setRange(minimum, maximum)
- @Slot()
- def changeTheme(self, theme):
- self.m_graph.activeTheme().setType(Q3DTheme.Theme(theme))
+ @Slot(int)
+ def change_theme(self, theme):
+ self._graph.activeTheme().setType(Q3DTheme.Theme(theme))
- def setBlackToYellowGradient(self):
+ @Slot()
+ def set_black_to_yellow_gradient(self):
gr = QLinearGradient()
gr.setColorAt(0.0, Qt.black)
gr.setColorAt(0.33, Qt.blue)
gr.setColorAt(0.67, Qt.red)
gr.setColorAt(1.0, Qt.yellow)
- self.m_graph.seriesList()[0].setBaseGradient(gr)
- self.m_graph.seriesList()[0].setColorStyle(Q3DTheme.ColorStyleRangeGradient)
+ series = self._graph.seriesList()[0]
+ series.setBaseGradient(gr)
+ series.setColorStyle(Q3DTheme.ColorStyleRangeGradient)
- def setGreenToRedGradient(self):
+ @Slot()
+ def set_green_to_red_gradient(self):
gr = QLinearGradient()
gr.setColorAt(0.0, Qt.darkGreen)
gr.setColorAt(0.5, Qt.yellow)
gr.setColorAt(0.8, Qt.red)
gr.setColorAt(1.0, Qt.darkRed)
- series = self.m_graph.seriesList()[0]
+ series = self._graph.seriesList()[0]
series.setBaseGradient(gr)
series.setColorStyle(Q3DTheme.ColorStyleRangeGradient)
- def toggleModeNone(self):
- self.m_graph.setSelectionMode(QAbstract3DGraph.SelectionNone)
+ @Slot()
+ def toggle_mode_none(self):
+ self._graph.setSelectionMode(QAbstract3DGraph.SelectionNone)
- def toggleModeItem(self):
- self.m_graph.setSelectionMode(QAbstract3DGraph.SelectionItem)
+ @Slot()
+ def toggle_mode_item(self):
+ self._graph.setSelectionMode(QAbstract3DGraph.SelectionItem)
- def toggleModeSliceRow(self):
- self.m_graph.setSelectionMode(
+ @Slot()
+ def toggle_mode_slice_row(self):
+ self._graph.setSelectionMode(
QAbstract3DGraph.SelectionItemAndRow | QAbstract3DGraph.SelectionSlice
)
- def toggleModeSliceColumn(self):
- self.m_graph.setSelectionMode(
+ @Slot()
+ def toggle_mode_slice_column(self):
+ self._graph.setSelectionMode(
QAbstract3DGraph.SelectionItemAndColumn | QAbstract3DGraph.SelectionSlice
)
- def setAxisMinSliderX(self, slider):
- self.m_axisMinSliderX = slider
+ def set_axis_min_slider_x(self, slider):
+ self._axisMinSliderX = slider
- def setAxisMaxSliderX(self, slider):
- self.m_axisMaxSliderX = slider
+ def set_axis_max_slider_x(self, slider):
+ self._axisMaxSliderX = slider
- def setAxisMinSliderZ(self, slider):
- self.m_axisMinSliderZ = slider
+ def set_axis_min_slider_z(self, slider):
+ self._axisMinSliderZ = slider
- def setAxisMaxSliderZ(self, slider):
- self.m_axisMaxSliderZ = slider
+ def set_axis_max_slider_z(self, slider):
+ self._axisMaxSliderZ = slider
diff --git a/examples/datavisualization/surface_model_numpy/doc/surface_model_numpy.rst b/examples/datavisualization/surface_model_numpy/doc/surface_model_numpy.rst
new file mode 100644
index 000000000..b5b91df2f
--- /dev/null
+++ b/examples/datavisualization/surface_model_numpy/doc/surface_model_numpy.rst
@@ -0,0 +1,24 @@
+Surface Example
+===============
+
+Using Q3DSurface in a widget application.
+
+The surface example shows how to make a simple 3D surface graph using
+Q3DSurface and combining the use of widgets for adjusting several adjustable
+qualities. This example demonstrates the following features:
+
+* How to set up a QItemModelSurfaceDataProxy with a QAbstractTableModel
+ backed by a numpy array.
+* How to use QHeightMapSurfaceDataProxy for showing 3D height maps.
+* Three different selection modes for studying the graph.
+* Axis range usage for displaying selected portions of the graph.
+* Changing theme.
+* How to set a custom surface gradient.
+
+For instructions about how to interact with the graph, see `this page`_.
+
+.. image:: surface_mountain.png
+ :width: 400
+ :alt: Surface Example Screenshot
+
+.. _`this page`: https://doc.qt.io/qt-6/qtdatavisualization-interacting-with-data.html
diff --git a/examples/datavisualization/surface_model_numpy/main.py b/examples/datavisualization/surface_model_numpy/main.py
new file mode 100644
index 000000000..f43970184
--- /dev/null
+++ b/examples/datavisualization/surface_model_numpy/main.py
@@ -0,0 +1,189 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from PySide6.QtCore import QSize, Qt
+from PySide6.QtDataVisualization import Q3DSurface
+from PySide6.QtGui import QBrush, QIcon, QLinearGradient, QPainter, QPixmap
+from PySide6.QtWidgets import (QApplication, QComboBox, QGroupBox, QHBoxLayout,
+ QLabel, QMessageBox, QPushButton, QRadioButton,
+ QSizePolicy, QSlider, QVBoxLayout, QWidget)
+
+from surfacegraph import SurfaceGraph
+
+THEMES = ["Qt", "Primary Colors", "Digia", "Stone Moss", "Army Blue", "Retro",
+ "Ebony", "Isabelle"]
+
+
+class Window(QWidget):
+ def __init__(self, graph, parent=None):
+ super().__init__(parent)
+ self._graph = graph
+ self._container = QWidget.createWindowContainer(self._graph, self,
+ Qt.Widget)
+
+ screen_size = self._graph.screen().size()
+ self._container.setMinimumSize(QSize(screen_size.width() / 2,
+ screen_size.height() / 1.6))
+ self._container.setMaximumSize(screen_size)
+ self._container.setSizePolicy(QSizePolicy.Expanding,
+ QSizePolicy.Expanding)
+ self._container.setFocusPolicy(Qt.StrongFocus)
+
+ h_layout = QHBoxLayout(self)
+ v_layout = QVBoxLayout()
+ h_layout.addWidget(self._container, 1)
+ h_layout.addLayout(v_layout)
+ v_layout.setAlignment(Qt.AlignTop)
+
+ model_group_box = QGroupBox("Model")
+
+ sqrt_sin_model_rb = QRadioButton(self)
+ sqrt_sin_model_rb.setText("Sqrt& Sin")
+ sqrt_sin_model_rb.setChecked(False)
+
+ height_map_model_rb = QRadioButton(self)
+ height_map_model_rb.setText("Height Map")
+ height_map_model_rb.setChecked(False)
+
+ model_vbox = QVBoxLayout()
+ model_vbox.addWidget(sqrt_sin_model_rb)
+ model_vbox.addWidget(height_map_model_rb)
+ model_group_box.setLayout(model_vbox)
+
+ selection_group_box = QGroupBox("Selection Mode")
+
+ mode_none_rb = QRadioButton(self)
+ mode_none_rb.setText("No selection")
+ mode_none_rb.setChecked(False)
+
+ mode_item_rb = QRadioButton(self)
+ mode_item_rb.setText("Item")
+ mode_item_rb.setChecked(False)
+
+ mode_slice_row_rb = QRadioButton(self)
+ mode_slice_row_rb.setText("Row Slice")
+ mode_slice_row_rb.setChecked(False)
+
+ mode_slice_column_rb = QRadioButton(self)
+ mode_slice_column_rb.setText("Column Slice")
+ mode_slice_column_rb.setChecked(False)
+
+ selection_vbox = QVBoxLayout()
+ selection_vbox.addWidget(mode_none_rb)
+ selection_vbox.addWidget(mode_item_rb)
+ selection_vbox.addWidget(mode_slice_row_rb)
+ selection_vbox.addWidget(mode_slice_column_rb)
+ selection_group_box.setLayout(selection_vbox)
+
+ axis_min_slider_x = QSlider(Qt.Horizontal, self)
+ axis_min_slider_x.setMinimum(0)
+ axis_min_slider_x.setTickInterval(1)
+ axis_min_slider_x.setEnabled(True)
+ axis_max_slider_x = QSlider(Qt.Horizontal, self)
+ axis_max_slider_x.setMinimum(1)
+ axis_max_slider_x.setTickInterval(1)
+ axis_max_slider_x.setEnabled(True)
+ axis_min_slider_z = QSlider(Qt.Horizontal, self)
+ axis_min_slider_z.setMinimum(0)
+ axis_min_slider_z.setTickInterval(1)
+ axis_min_slider_z.setEnabled(True)
+ axis_max_slider_z = QSlider(Qt.Horizontal, self)
+ axis_max_slider_z.setMinimum(1)
+ axis_max_slider_z.setTickInterval(1)
+ axis_max_slider_z.setEnabled(True)
+
+ theme_list = QComboBox(self)
+ theme_list.addItems(THEMES)
+
+ color_group_box = QGroupBox("Custom gradient")
+
+ gr_bto_y = QLinearGradient(0, 0, 1, 100)
+ gr_bto_y.setColorAt(1.0, Qt.black)
+ gr_bto_y.setColorAt(0.67, Qt.blue)
+ gr_bto_y.setColorAt(0.33, Qt.red)
+ gr_bto_y.setColorAt(0.0, Qt.yellow)
+
+ pm = QPixmap(24, 100)
+ pmp = QPainter(pm)
+ pmp.setBrush(QBrush(gr_bto_y))
+ pmp.setPen(Qt.NoPen)
+ pmp.drawRect(0, 0, 24, 100)
+ pmp.end()
+
+ gradient_bto_ypb = QPushButton(self)
+ gradient_bto_ypb.setIcon(QIcon(pm))
+ gradient_bto_ypb.setIconSize(QSize(24, 100))
+
+ gr_gto_r = QLinearGradient(0, 0, 1, 100)
+ gr_gto_r.setColorAt(1.0, Qt.darkGreen)
+ gr_gto_r.setColorAt(0.5, Qt.yellow)
+ gr_gto_r.setColorAt(0.2, Qt.red)
+ gr_gto_r.setColorAt(0.0, Qt.darkRed)
+ pmp.begin(pm)
+ pmp.setBrush(QBrush(gr_gto_r))
+ pmp.drawRect(0, 0, 24, 100)
+ pmp.end()
+
+ gradient_gto_rpb = QPushButton(self)
+ gradient_gto_rpb.setIcon(QIcon(pm))
+ gradient_gto_rpb.setIconSize(QSize(24, 100))
+
+ color_hbox = QHBoxLayout()
+ color_hbox.addWidget(gradient_bto_ypb)
+ color_hbox.addWidget(gradient_gto_rpb)
+ color_group_box.setLayout(color_hbox)
+
+ v_layout.addWidget(model_group_box)
+ v_layout.addWidget(selection_group_box)
+ v_layout.addWidget(QLabel("Column range"))
+ v_layout.addWidget(axis_min_slider_x)
+ v_layout.addWidget(axis_max_slider_x)
+ v_layout.addWidget(QLabel("Row range"))
+ v_layout.addWidget(axis_min_slider_z)
+ v_layout.addWidget(axis_max_slider_z)
+ v_layout.addWidget(QLabel("Theme"))
+ v_layout.addWidget(theme_list)
+ v_layout.addWidget(color_group_box)
+
+ self._modifier = SurfaceGraph(self._graph)
+
+ height_map_model_rb.toggled.connect(self._modifier.enable_height_map_model)
+ sqrt_sin_model_rb.toggled.connect(self._modifier.enable_sqrt_sin_model)
+ mode_none_rb.toggled.connect(self._modifier.toggle_mode_none)
+ mode_item_rb.toggled.connect(self._modifier.toggle_mode_item)
+ mode_slice_row_rb.toggled.connect(self._modifier.toggle_mode_slice_row)
+ mode_slice_column_rb.toggled.connect(self._modifier.toggle_mode_slice_column)
+ axis_min_slider_x.valueChanged.connect(self._modifier.adjust_xmin)
+ axis_max_slider_x.valueChanged.connect(self._modifier.adjust_xmax)
+ axis_min_slider_z.valueChanged.connect(self._modifier.adjust_zmin)
+ axis_max_slider_z.valueChanged.connect(self._modifier.adjust_zmax)
+ theme_list.currentIndexChanged[int].connect(self._modifier.change_theme)
+ gradient_bto_ypb.pressed.connect(self._modifier.set_black_to_yellow_gradient)
+ gradient_gto_rpb.pressed.connect(self._modifier.set_green_to_red_gradient)
+
+ self._modifier.set_axis_min_slider_x(axis_min_slider_x)
+ self._modifier.set_axis_max_slider_x(axis_max_slider_x)
+ self._modifier.set_axis_min_slider_z(axis_min_slider_z)
+ self._modifier.set_axis_max_slider_z(axis_max_slider_z)
+
+ sqrt_sin_model_rb.setChecked(True)
+ mode_item_rb.setChecked(True)
+ theme_list.setCurrentIndex(2)
+
+
+if __name__ == "__main__":
+ app = QApplication(sys.argv)
+ graph = Q3DSurface()
+ if not graph.hasContext():
+ msg_box = QMessageBox()
+ msg_box.setText("Couldn't initialize the OpenGL context.")
+ msg_box.exec()
+ sys.exit(-1)
+
+ window = Window(graph)
+ window.setWindowTitle("Surface example")
+ window.show()
+
+ sys.exit(app.exec())
diff --git a/examples/datavisualization/surface_model_numpy/surface_model_numpy.pyproject b/examples/datavisualization/surface_model_numpy/surface_model_numpy.pyproject
new file mode 100644
index 000000000..598a6541f
--- /dev/null
+++ b/examples/datavisualization/surface_model_numpy/surface_model_numpy.pyproject
@@ -0,0 +1,4 @@
+{
+ "files": ["main.py",
+ "surfacegraph.py"]
+}
diff --git a/examples/datavisualization/surface_model_numpy/surfacegraph.py b/examples/datavisualization/surface_model_numpy/surfacegraph.py
new file mode 100644
index 000000000..c0c1acecf
--- /dev/null
+++ b/examples/datavisualization/surface_model_numpy/surfacegraph.py
@@ -0,0 +1,295 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import numpy as np
+import math
+from pathlib import Path
+
+from PySide6.QtCore import (QAbstractTableModel, QByteArray, QModelIndex,
+ QObject, Qt, Slot)
+from PySide6.QtDataVisualization import (Q3DTheme, QAbstract3DGraph,
+ QHeightMapSurfaceDataProxy,
+ QSurface3DSeries,
+ QItemModelSurfaceDataProxy,
+ QValue3DAxis)
+from PySide6.QtGui import QImage, QLinearGradient
+from PySide6.QtWidgets import QSlider
+
+SAMPLE_COUNT_X = 50
+SAMPLE_COUNT_Z = 50
+HEIGHT_MAP_GRID_STEP_X = 6
+HEIGHT_MAP_GRID_STEP_Z = 6
+SAMPLE_MIN = -8.0
+SAMPLE_MAX = 8.0
+
+
+X_ROLE = Qt.UserRole + 1
+Y_ROLE = Qt.UserRole + 2
+Z_ROLE = Qt.UserRole + 3
+
+
+class SqrtSinModel(QAbstractTableModel):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+ self._x = np.zeros(SAMPLE_COUNT_X)
+ self._z = np.zeros(SAMPLE_COUNT_Z)
+ self._data = np.zeros((SAMPLE_COUNT_Z, SAMPLE_COUNT_X))
+
+ step_x = (SAMPLE_MAX - SAMPLE_MIN) / float(SAMPLE_COUNT_X - 1)
+ step_z = (SAMPLE_MAX - SAMPLE_MIN) / float(SAMPLE_COUNT_Z - 1)
+
+ for i in range(SAMPLE_COUNT_Z):
+ # Keep values within range bounds, since just adding step can cause
+ # minor drift due to the rounding errors.
+ z = min(SAMPLE_MAX, (i * step_z + SAMPLE_MIN))
+ self._z[i] = z
+ for j in range(SAMPLE_COUNT_X):
+ x = min(SAMPLE_MAX, (j * step_x + SAMPLE_MIN))
+ self._x[j] = x
+ R = math.sqrt(z * z + x * x) + 0.01
+ y = (math.sin(R) / R + 0.24) * 1.61
+ self._data[i, j] = y
+
+ def roleNames(self):
+ result = super().roleNames()
+ result[X_ROLE] = QByteArray(b"x")
+ result[Y_ROLE] = QByteArray(b"y")
+ result[Z_ROLE] = QByteArray(b"z")
+ return result
+
+ def rowCount(self, index=QModelIndex()):
+ return self._z.size
+
+ def columnCount(self, index=QModelIndex()):
+ return self._x.size
+
+ def data(self, index, role=Qt.DisplayRole):
+ row = index.row()
+ col = index.column()
+ if role == X_ROLE:
+ return float(self._x[col])
+ if role == Y_ROLE:
+ return float(self._data[row][col])
+ if role == Z_ROLE:
+ return float(self._z[row])
+ return 0.0
+
+
+class SurfaceGraph(QObject):
+ def __init__(self, surface, parent=None):
+ super().__init__(parent)
+
+ self.m_graph = surface
+ self.m_graph.setAxisX(QValue3DAxis())
+ self.m_graph.setAxisY(QValue3DAxis())
+ self.m_graph.setAxisZ(QValue3DAxis())
+
+ self.m_sqrtSinModel = SqrtSinModel(self)
+ self.m_sqrtSinProxy = QItemModelSurfaceDataProxy(self.m_sqrtSinModel, self)
+ self.m_sqrtSinProxy.setUseModelCategories(True)
+ self.m_sqrtSinProxy.setXPosRole("x")
+ self.m_sqrtSinProxy.setYPosRole("y")
+ self.m_sqrtSinProxy.setZPosRole("z")
+
+ self.m_sqrtSinSeries = QSurface3DSeries(self.m_sqrtSinProxy)
+
+ image_file = Path(__file__).parent.parent / "surface" / "mountain.png"
+ height_map_image = QImage(image_file)
+ self.m_heightMapProxy = QHeightMapSurfaceDataProxy(height_map_image)
+ self.m_heightMapSeries = QSurface3DSeries(self.m_heightMapProxy)
+ self.m_heightMapSeries.setItemLabelFormat("(@xLabel, @zLabel): @yLabel")
+ self.m_heightMapProxy.setValueRanges(34.0, 40.0, 18.0, 24.0)
+
+ self.m_heightMapWidth = height_map_image.width()
+ self.m_heightMapHeight = height_map_image.height()
+
+ self.m_axisMinSliderX = QSlider()
+ self.m_axisMaxSliderX = QSlider()
+ self.m_axisMinSliderZ = QSlider()
+ self.m_axisMaxSliderZ = QSlider()
+ self.m_rangeMinX = 0.0
+ self.m_rangeMinZ = 0.0
+ self.m_stepX = 0.0
+ self.m_stepZ = 0.0
+
+ @Slot(bool)
+ def enable_sqrt_sin_model(self, enable):
+ if enable:
+ self.m_sqrtSinSeries.setDrawMode(QSurface3DSeries.DrawSurfaceAndWireframe)
+ self.m_sqrtSinSeries.setFlatShadingEnabled(True)
+
+ self.m_graph.axisX().setLabelFormat("%.2f")
+ self.m_graph.axisZ().setLabelFormat("%.2f")
+ self.m_graph.axisX().setRange(SAMPLE_MIN, SAMPLE_MAX)
+ self.m_graph.axisY().setRange(0.0, 2.0)
+ self.m_graph.axisZ().setRange(SAMPLE_MIN, SAMPLE_MAX)
+ self.m_graph.axisX().setLabelAutoRotation(30)
+ self.m_graph.axisY().setLabelAutoRotation(90)
+ self.m_graph.axisZ().setLabelAutoRotation(30)
+
+ self.m_graph.removeSeries(self.m_heightMapSeries)
+ self.m_graph.addSeries(self.m_sqrtSinSeries)
+
+ # Reset range sliders for Sqrt&Sin
+ self.m_rangeMinX = SAMPLE_MIN
+ self.m_rangeMinZ = SAMPLE_MIN
+ self.m_stepX = (SAMPLE_MAX - SAMPLE_MIN) / float(SAMPLE_COUNT_X - 1)
+ self.m_stepZ = (SAMPLE_MAX - SAMPLE_MIN) / float(SAMPLE_COUNT_Z - 1)
+ self.m_axisMinSliderX.setMaximum(SAMPLE_COUNT_X - 2)
+ self.m_axisMinSliderX.setValue(0)
+ self.m_axisMaxSliderX.setMaximum(SAMPLE_COUNT_X - 1)
+ self.m_axisMaxSliderX.setValue(SAMPLE_COUNT_X - 1)
+ self.m_axisMinSliderZ.setMaximum(SAMPLE_COUNT_Z - 2)
+ self.m_axisMinSliderZ.setValue(0)
+ self.m_axisMaxSliderZ.setMaximum(SAMPLE_COUNT_Z - 1)
+ self.m_axisMaxSliderZ.setValue(SAMPLE_COUNT_Z - 1)
+
+ @Slot(bool)
+ def enable_height_map_model(self, enable):
+ if enable:
+ self.m_heightMapSeries.setDrawMode(QSurface3DSeries.DrawSurface)
+ self.m_heightMapSeries.setFlatShadingEnabled(False)
+
+ self.m_graph.axisX().setLabelFormat("%.1f N")
+ self.m_graph.axisZ().setLabelFormat("%.1f E")
+ self.m_graph.axisX().setRange(34.0, 40.0)
+ self.m_graph.axisY().setAutoAdjustRange(True)
+ self.m_graph.axisZ().setRange(18.0, 24.0)
+
+ self.m_graph.axisX().setTitle("Latitude")
+ self.m_graph.axisY().setTitle("Height")
+ self.m_graph.axisZ().setTitle("Longitude")
+
+ self.m_graph.removeSeries(self.m_sqrtSinSeries)
+ self.m_graph.addSeries(self.m_heightMapSeries)
+
+ # Reset range sliders for height map
+ map_grid_count_x = self.m_heightMapWidth / HEIGHT_MAP_GRID_STEP_X
+ map_grid_count_z = self.m_heightMapHeight / HEIGHT_MAP_GRID_STEP_Z
+ self.m_rangeMinX = 34.0
+ self.m_rangeMinZ = 18.0
+ self.m_stepX = 6.0 / float(map_grid_count_x - 1)
+ self.m_stepZ = 6.0 / float(map_grid_count_z - 1)
+ self.m_axisMinSliderX.setMaximum(map_grid_count_x - 2)
+ self.m_axisMinSliderX.setValue(0)
+ self.m_axisMaxSliderX.setMaximum(map_grid_count_x - 1)
+ self.m_axisMaxSliderX.setValue(map_grid_count_x - 1)
+ self.m_axisMinSliderZ.setMaximum(map_grid_count_z - 2)
+ self.m_axisMinSliderZ.setValue(0)
+ self.m_axisMaxSliderZ.setMaximum(map_grid_count_z - 1)
+ self.m_axisMaxSliderZ.setValue(map_grid_count_z - 1)
+
+ @Slot(int)
+ def adjust_xmin(self, minimum):
+ min_x = self.m_stepX * float(minimum) + self.m_rangeMinX
+
+ maximum = self.m_axisMaxSliderX.value()
+ if minimum >= maximum:
+ maximum = minimum + 1
+ self.m_axisMaxSliderX.setValue(maximum)
+ max_x = self.m_stepX * maximum + self.m_rangeMinX
+
+ self.set_axis_xrange(min_x, max_x)
+
+ @Slot(int)
+ def adjust_xmax(self, maximum):
+ max_x = self.m_stepX * float(maximum) + self.m_rangeMinX
+
+ minimum = self.m_axisMinSliderX.value()
+ if maximum <= minimum:
+ minimum = maximum - 1
+ self.m_axisMinSliderX.setValue(minimum)
+ min_x = self.m_stepX * minimum + self.m_rangeMinX
+
+ self.set_axis_xrange(min_x, max_x)
+
+ @Slot(int)
+ def adjust_zmin(self, minimum):
+ min_z = self.m_stepZ * float(minimum) + self.m_rangeMinZ
+
+ maximum = self.m_axisMaxSliderZ.value()
+ if minimum >= maximum:
+ maximum = minimum + 1
+ self.m_axisMaxSliderZ.setValue(maximum)
+ max_z = self.m_stepZ * maximum + self.m_rangeMinZ
+
+ self.set_axis_zrange(min_z, max_z)
+
+ @Slot(int)
+ def adjust_zmax(self, maximum):
+ max_x = self.m_stepZ * float(maximum) + self.m_rangeMinZ
+
+ minimum = self.m_axisMinSliderZ.value()
+ if maximum <= minimum:
+ minimum = maximum - 1
+ self.m_axisMinSliderZ.setValue(minimum)
+ min_x = self.m_stepZ * minimum + self.m_rangeMinZ
+
+ self.set_axis_zrange(min_x, max_x)
+
+ def set_axis_xrange(self, minimum, maximum):
+ self.m_graph.axisX().setRange(minimum, maximum)
+
+ def set_axis_zrange(self, minimum, maximum):
+ self.m_graph.axisZ().setRange(minimum, maximum)
+
+ @Slot(int)
+ def change_theme(self, theme):
+ self.m_graph.activeTheme().setType(Q3DTheme.Theme(theme))
+
+ @Slot()
+ def set_black_to_yellow_gradient(self):
+ gr = QLinearGradient()
+ gr.setColorAt(0.0, Qt.black)
+ gr.setColorAt(0.33, Qt.blue)
+ gr.setColorAt(0.67, Qt.red)
+ gr.setColorAt(1.0, Qt.yellow)
+
+ series = self.m_graph.seriesList()[0]
+ series.setBaseGradient(gr)
+ series.setColorStyle(Q3DTheme.ColorStyleRangeGradient)
+
+ @Slot()
+ def set_green_to_red_gradient(self):
+ gr = QLinearGradient()
+ gr.setColorAt(0.0, Qt.darkGreen)
+ gr.setColorAt(0.5, Qt.yellow)
+ gr.setColorAt(0.8, Qt.red)
+ gr.setColorAt(1.0, Qt.darkRed)
+
+ series = self.m_graph.seriesList()[0]
+ series.setBaseGradient(gr)
+ series.setColorStyle(Q3DTheme.ColorStyleRangeGradient)
+
+ @Slot()
+ def toggle_mode_none(self):
+ self.m_graph.setSelectionMode(QAbstract3DGraph.SelectionNone)
+
+ @Slot()
+ def toggle_mode_item(self):
+ self.m_graph.setSelectionMode(QAbstract3DGraph.SelectionItem)
+
+ @Slot()
+ def toggle_mode_slice_row(self):
+ self.m_graph.setSelectionMode(
+ QAbstract3DGraph.SelectionItemAndRow | QAbstract3DGraph.SelectionSlice
+ )
+
+ @Slot()
+ def toggle_mode_slice_column(self):
+ self.m_graph.setSelectionMode(
+ QAbstract3DGraph.SelectionItemAndColumn | QAbstract3DGraph.SelectionSlice
+ )
+
+ def set_axis_min_slider_x(self, slider):
+ self.m_axisMinSliderX = slider
+
+ def set_axis_max_slider_x(self, slider):
+ self.m_axisMaxSliderX = slider
+
+ def set_axis_min_slider_z(self, slider):
+ self.m_axisMinSliderZ = slider
+
+ def set_axis_max_slider_z(self, slider):
+ self.m_axisMaxSliderZ = slider
diff --git a/examples/datavisualization/surface_numpy/doc/surface_numpy.rst b/examples/datavisualization/surface_numpy/doc/surface_numpy.rst
new file mode 100644
index 000000000..8a921a4ad
--- /dev/null
+++ b/examples/datavisualization/surface_numpy/doc/surface_numpy.rst
@@ -0,0 +1,24 @@
+Surface Example
+===============
+
+Using Q3DSurface in a widget application.
+
+The surface example shows how to make a simple 3D surface graph using
+Q3DSurface and combining the use of widgets for adjusting several adjustable
+qualities. It requires building PySide6 with the ``--pyside-numpy-support``
+option. This example demonstrates the following features:
+
+* How to set up a QSurfaceDataProxy from a 2-dimensional numpy array.
+* How to use QHeightMapSurfaceDataProxy for showing 3D height maps.
+* Three different selection modes for studying the graph.
+* Axis range usage for displaying selected portions of the graph.
+* Changing theme.
+* How to set a custom surface gradient.
+
+For instructions about how to interact with the graph, see `this page`_.
+
+.. image:: surface_mountain.png
+ :width: 400
+ :alt: Surface Example Screenshot
+
+.. _`this page`: https://doc.qt.io/qt-6/qtdatavisualization-interacting-with-data.html
diff --git a/examples/datavisualization/surface_numpy/main.py b/examples/datavisualization/surface_numpy/main.py
new file mode 100644
index 000000000..f43970184
--- /dev/null
+++ b/examples/datavisualization/surface_numpy/main.py
@@ -0,0 +1,189 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from PySide6.QtCore import QSize, Qt
+from PySide6.QtDataVisualization import Q3DSurface
+from PySide6.QtGui import QBrush, QIcon, QLinearGradient, QPainter, QPixmap
+from PySide6.QtWidgets import (QApplication, QComboBox, QGroupBox, QHBoxLayout,
+ QLabel, QMessageBox, QPushButton, QRadioButton,
+ QSizePolicy, QSlider, QVBoxLayout, QWidget)
+
+from surfacegraph import SurfaceGraph
+
+THEMES = ["Qt", "Primary Colors", "Digia", "Stone Moss", "Army Blue", "Retro",
+ "Ebony", "Isabelle"]
+
+
+class Window(QWidget):
+ def __init__(self, graph, parent=None):
+ super().__init__(parent)
+ self._graph = graph
+ self._container = QWidget.createWindowContainer(self._graph, self,
+ Qt.Widget)
+
+ screen_size = self._graph.screen().size()
+ self._container.setMinimumSize(QSize(screen_size.width() / 2,
+ screen_size.height() / 1.6))
+ self._container.setMaximumSize(screen_size)
+ self._container.setSizePolicy(QSizePolicy.Expanding,
+ QSizePolicy.Expanding)
+ self._container.setFocusPolicy(Qt.StrongFocus)
+
+ h_layout = QHBoxLayout(self)
+ v_layout = QVBoxLayout()
+ h_layout.addWidget(self._container, 1)
+ h_layout.addLayout(v_layout)
+ v_layout.setAlignment(Qt.AlignTop)
+
+ model_group_box = QGroupBox("Model")
+
+ sqrt_sin_model_rb = QRadioButton(self)
+ sqrt_sin_model_rb.setText("Sqrt& Sin")
+ sqrt_sin_model_rb.setChecked(False)
+
+ height_map_model_rb = QRadioButton(self)
+ height_map_model_rb.setText("Height Map")
+ height_map_model_rb.setChecked(False)
+
+ model_vbox = QVBoxLayout()
+ model_vbox.addWidget(sqrt_sin_model_rb)
+ model_vbox.addWidget(height_map_model_rb)
+ model_group_box.setLayout(model_vbox)
+
+ selection_group_box = QGroupBox("Selection Mode")
+
+ mode_none_rb = QRadioButton(self)
+ mode_none_rb.setText("No selection")
+ mode_none_rb.setChecked(False)
+
+ mode_item_rb = QRadioButton(self)
+ mode_item_rb.setText("Item")
+ mode_item_rb.setChecked(False)
+
+ mode_slice_row_rb = QRadioButton(self)
+ mode_slice_row_rb.setText("Row Slice")
+ mode_slice_row_rb.setChecked(False)
+
+ mode_slice_column_rb = QRadioButton(self)
+ mode_slice_column_rb.setText("Column Slice")
+ mode_slice_column_rb.setChecked(False)
+
+ selection_vbox = QVBoxLayout()
+ selection_vbox.addWidget(mode_none_rb)
+ selection_vbox.addWidget(mode_item_rb)
+ selection_vbox.addWidget(mode_slice_row_rb)
+ selection_vbox.addWidget(mode_slice_column_rb)
+ selection_group_box.setLayout(selection_vbox)
+
+ axis_min_slider_x = QSlider(Qt.Horizontal, self)
+ axis_min_slider_x.setMinimum(0)
+ axis_min_slider_x.setTickInterval(1)
+ axis_min_slider_x.setEnabled(True)
+ axis_max_slider_x = QSlider(Qt.Horizontal, self)
+ axis_max_slider_x.setMinimum(1)
+ axis_max_slider_x.setTickInterval(1)
+ axis_max_slider_x.setEnabled(True)
+ axis_min_slider_z = QSlider(Qt.Horizontal, self)
+ axis_min_slider_z.setMinimum(0)
+ axis_min_slider_z.setTickInterval(1)
+ axis_min_slider_z.setEnabled(True)
+ axis_max_slider_z = QSlider(Qt.Horizontal, self)
+ axis_max_slider_z.setMinimum(1)
+ axis_max_slider_z.setTickInterval(1)
+ axis_max_slider_z.setEnabled(True)
+
+ theme_list = QComboBox(self)
+ theme_list.addItems(THEMES)
+
+ color_group_box = QGroupBox("Custom gradient")
+
+ gr_bto_y = QLinearGradient(0, 0, 1, 100)
+ gr_bto_y.setColorAt(1.0, Qt.black)
+ gr_bto_y.setColorAt(0.67, Qt.blue)
+ gr_bto_y.setColorAt(0.33, Qt.red)
+ gr_bto_y.setColorAt(0.0, Qt.yellow)
+
+ pm = QPixmap(24, 100)
+ pmp = QPainter(pm)
+ pmp.setBrush(QBrush(gr_bto_y))
+ pmp.setPen(Qt.NoPen)
+ pmp.drawRect(0, 0, 24, 100)
+ pmp.end()
+
+ gradient_bto_ypb = QPushButton(self)
+ gradient_bto_ypb.setIcon(QIcon(pm))
+ gradient_bto_ypb.setIconSize(QSize(24, 100))
+
+ gr_gto_r = QLinearGradient(0, 0, 1, 100)
+ gr_gto_r.setColorAt(1.0, Qt.darkGreen)
+ gr_gto_r.setColorAt(0.5, Qt.yellow)
+ gr_gto_r.setColorAt(0.2, Qt.red)
+ gr_gto_r.setColorAt(0.0, Qt.darkRed)
+ pmp.begin(pm)
+ pmp.setBrush(QBrush(gr_gto_r))
+ pmp.drawRect(0, 0, 24, 100)
+ pmp.end()
+
+ gradient_gto_rpb = QPushButton(self)
+ gradient_gto_rpb.setIcon(QIcon(pm))
+ gradient_gto_rpb.setIconSize(QSize(24, 100))
+
+ color_hbox = QHBoxLayout()
+ color_hbox.addWidget(gradient_bto_ypb)
+ color_hbox.addWidget(gradient_gto_rpb)
+ color_group_box.setLayout(color_hbox)
+
+ v_layout.addWidget(model_group_box)
+ v_layout.addWidget(selection_group_box)
+ v_layout.addWidget(QLabel("Column range"))
+ v_layout.addWidget(axis_min_slider_x)
+ v_layout.addWidget(axis_max_slider_x)
+ v_layout.addWidget(QLabel("Row range"))
+ v_layout.addWidget(axis_min_slider_z)
+ v_layout.addWidget(axis_max_slider_z)
+ v_layout.addWidget(QLabel("Theme"))
+ v_layout.addWidget(theme_list)
+ v_layout.addWidget(color_group_box)
+
+ self._modifier = SurfaceGraph(self._graph)
+
+ height_map_model_rb.toggled.connect(self._modifier.enable_height_map_model)
+ sqrt_sin_model_rb.toggled.connect(self._modifier.enable_sqrt_sin_model)
+ mode_none_rb.toggled.connect(self._modifier.toggle_mode_none)
+ mode_item_rb.toggled.connect(self._modifier.toggle_mode_item)
+ mode_slice_row_rb.toggled.connect(self._modifier.toggle_mode_slice_row)
+ mode_slice_column_rb.toggled.connect(self._modifier.toggle_mode_slice_column)
+ axis_min_slider_x.valueChanged.connect(self._modifier.adjust_xmin)
+ axis_max_slider_x.valueChanged.connect(self._modifier.adjust_xmax)
+ axis_min_slider_z.valueChanged.connect(self._modifier.adjust_zmin)
+ axis_max_slider_z.valueChanged.connect(self._modifier.adjust_zmax)
+ theme_list.currentIndexChanged[int].connect(self._modifier.change_theme)
+ gradient_bto_ypb.pressed.connect(self._modifier.set_black_to_yellow_gradient)
+ gradient_gto_rpb.pressed.connect(self._modifier.set_green_to_red_gradient)
+
+ self._modifier.set_axis_min_slider_x(axis_min_slider_x)
+ self._modifier.set_axis_max_slider_x(axis_max_slider_x)
+ self._modifier.set_axis_min_slider_z(axis_min_slider_z)
+ self._modifier.set_axis_max_slider_z(axis_max_slider_z)
+
+ sqrt_sin_model_rb.setChecked(True)
+ mode_item_rb.setChecked(True)
+ theme_list.setCurrentIndex(2)
+
+
+if __name__ == "__main__":
+ app = QApplication(sys.argv)
+ graph = Q3DSurface()
+ if not graph.hasContext():
+ msg_box = QMessageBox()
+ msg_box.setText("Couldn't initialize the OpenGL context.")
+ msg_box.exec()
+ sys.exit(-1)
+
+ window = Window(graph)
+ window.setWindowTitle("Surface example")
+ window.show()
+
+ sys.exit(app.exec())
diff --git a/examples/datavisualization/surface_numpy/surface_numpy.pyproject b/examples/datavisualization/surface_numpy/surface_numpy.pyproject
new file mode 100644
index 000000000..598a6541f
--- /dev/null
+++ b/examples/datavisualization/surface_numpy/surface_numpy.pyproject
@@ -0,0 +1,4 @@
+{
+ "files": ["main.py",
+ "surfacegraph.py"]
+}
diff --git a/examples/datavisualization/surface_numpy/surfacegraph.py b/examples/datavisualization/surface_numpy/surfacegraph.py
new file mode 100644
index 000000000..c9f6e75a9
--- /dev/null
+++ b/examples/datavisualization/surface_numpy/surfacegraph.py
@@ -0,0 +1,253 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import numpy as np
+import math
+from pathlib import Path
+
+from PySide6.QtCore import (QObject, Qt, Slot)
+from PySide6.QtDataVisualization import (Q3DTheme, QAbstract3DGraph,
+ QHeightMapSurfaceDataProxy,
+ QSurface3DSeries,
+ QSurfaceDataProxy,
+ QValue3DAxis)
+from PySide6.QtGui import QImage, QLinearGradient
+from PySide6.QtWidgets import QSlider
+
+SAMPLE_COUNT_X = 50
+SAMPLE_COUNT_Z = 50
+HEIGHT_MAP_GRID_STEP_X = 6
+HEIGHT_MAP_GRID_STEP_Z = 6
+SAMPLE_MIN = -8.0
+SAMPLE_MAX = 8.0
+
+
+def fill_proxy(p):
+ stepX = (SAMPLE_MAX - SAMPLE_MIN) / float(SAMPLE_COUNT_X - 1)
+ stepZ = (SAMPLE_MAX - SAMPLE_MIN) / float(SAMPLE_COUNT_Z - 1)
+ data = np.zeros((SAMPLE_COUNT_Z, SAMPLE_COUNT_X))
+ for i in range(SAMPLE_COUNT_Z):
+ # Keep values within range bounds, since just adding step can cause
+ # minor drift due to the rounding errors.
+ z = min(SAMPLE_MAX, (i * stepZ + SAMPLE_MIN))
+ for j in range(SAMPLE_COUNT_X):
+ x = min(SAMPLE_MAX, (j * stepX + SAMPLE_MIN))
+ R = math.sqrt(z * z + x * x) + 0.01
+ y = (math.sin(R) / R + 0.24) * 1.61
+ data[i, j] = y
+ p.resetArrayNp(SAMPLE_MIN, stepX, SAMPLE_MIN, stepZ, data)
+
+
+class SurfaceGraph(QObject):
+ def __init__(self, surface, parent=None):
+ super().__init__(parent)
+
+ self.m_graph = surface
+ self.m_graph.setAxisX(QValue3DAxis())
+ self.m_graph.setAxisY(QValue3DAxis())
+ self.m_graph.setAxisZ(QValue3DAxis())
+
+ self.m_sqrtSinProxy = QSurfaceDataProxy()
+ fill_proxy(self.m_sqrtSinProxy)
+
+ self.m_sqrtSinSeries = QSurface3DSeries(self.m_sqrtSinProxy)
+
+ image_file = Path(__file__).parent.parent / "surface" / "mountain.png"
+ height_map_image = QImage(image_file)
+ self.m_heightMapProxy = QHeightMapSurfaceDataProxy(height_map_image)
+ self.m_heightMapSeries = QSurface3DSeries(self.m_heightMapProxy)
+ self.m_heightMapSeries.setItemLabelFormat("(@xLabel, @zLabel): @yLabel")
+ self.m_heightMapProxy.setValueRanges(34.0, 40.0, 18.0, 24.0)
+
+ self.m_heightMapWidth = height_map_image.width()
+ self.m_heightMapHeight = height_map_image.height()
+
+ self.m_axisMinSliderX = QSlider()
+ self.m_axisMaxSliderX = QSlider()
+ self.m_axisMinSliderZ = QSlider()
+ self.m_axisMaxSliderZ = QSlider()
+ self.m_rangeMinX = 0.0
+ self.m_rangeMinZ = 0.0
+ self.m_stepX = 0.0
+ self.m_stepZ = 0.0
+
+ @Slot(bool)
+ def enable_sqrt_sin_model(self, enable):
+ if enable:
+ self.m_sqrtSinSeries.setDrawMode(QSurface3DSeries.DrawSurfaceAndWireframe)
+ self.m_sqrtSinSeries.setFlatShadingEnabled(True)
+
+ self.m_graph.axisX().setLabelFormat("%.2f")
+ self.m_graph.axisZ().setLabelFormat("%.2f")
+ self.m_graph.axisX().setRange(SAMPLE_MIN, SAMPLE_MAX)
+ self.m_graph.axisY().setRange(0.0, 2.0)
+ self.m_graph.axisZ().setRange(SAMPLE_MIN, SAMPLE_MAX)
+ self.m_graph.axisX().setLabelAutoRotation(30)
+ self.m_graph.axisY().setLabelAutoRotation(90)
+ self.m_graph.axisZ().setLabelAutoRotation(30)
+
+ self.m_graph.removeSeries(self.m_heightMapSeries)
+ self.m_graph.addSeries(self.m_sqrtSinSeries)
+
+ # Reset range sliders for Sqrt&Sin
+ self.m_rangeMinX = SAMPLE_MIN
+ self.m_rangeMinZ = SAMPLE_MIN
+ self.m_stepX = (SAMPLE_MAX - SAMPLE_MIN) / float(SAMPLE_COUNT_X - 1)
+ self.m_stepZ = (SAMPLE_MAX - SAMPLE_MIN) / float(SAMPLE_COUNT_Z - 1)
+ self.m_axisMinSliderX.setMaximum(SAMPLE_COUNT_X - 2)
+ self.m_axisMinSliderX.setValue(0)
+ self.m_axisMaxSliderX.setMaximum(SAMPLE_COUNT_X - 1)
+ self.m_axisMaxSliderX.setValue(SAMPLE_COUNT_X - 1)
+ self.m_axisMinSliderZ.setMaximum(SAMPLE_COUNT_Z - 2)
+ self.m_axisMinSliderZ.setValue(0)
+ self.m_axisMaxSliderZ.setMaximum(SAMPLE_COUNT_Z - 1)
+ self.m_axisMaxSliderZ.setValue(SAMPLE_COUNT_Z - 1)
+
+ @Slot(bool)
+ def enable_height_map_model(self, enable):
+ if enable:
+ self.m_heightMapSeries.setDrawMode(QSurface3DSeries.DrawSurface)
+ self.m_heightMapSeries.setFlatShadingEnabled(False)
+
+ self.m_graph.axisX().setLabelFormat("%.1f N")
+ self.m_graph.axisZ().setLabelFormat("%.1f E")
+ self.m_graph.axisX().setRange(34.0, 40.0)
+ self.m_graph.axisY().setAutoAdjustRange(True)
+ self.m_graph.axisZ().setRange(18.0, 24.0)
+
+ self.m_graph.axisX().setTitle("Latitude")
+ self.m_graph.axisY().setTitle("Height")
+ self.m_graph.axisZ().setTitle("Longitude")
+
+ self.m_graph.removeSeries(self.m_sqrtSinSeries)
+ self.m_graph.addSeries(self.m_heightMapSeries)
+
+ # Reset range sliders for height map
+ map_grid_count_x = self.m_heightMapWidth / HEIGHT_MAP_GRID_STEP_X
+ map_grid_count_z = self.m_heightMapHeight / HEIGHT_MAP_GRID_STEP_Z
+ self.m_rangeMinX = 34.0
+ self.m_rangeMinZ = 18.0
+ self.m_stepX = 6.0 / float(map_grid_count_x - 1)
+ self.m_stepZ = 6.0 / float(map_grid_count_z - 1)
+ self.m_axisMinSliderX.setMaximum(map_grid_count_x - 2)
+ self.m_axisMinSliderX.setValue(0)
+ self.m_axisMaxSliderX.setMaximum(map_grid_count_x - 1)
+ self.m_axisMaxSliderX.setValue(map_grid_count_x - 1)
+ self.m_axisMinSliderZ.setMaximum(map_grid_count_z - 2)
+ self.m_axisMinSliderZ.setValue(0)
+ self.m_axisMaxSliderZ.setMaximum(map_grid_count_z - 1)
+ self.m_axisMaxSliderZ.setValue(map_grid_count_z - 1)
+
+ @Slot(int)
+ def adjust_xmin(self, minimum):
+ min_x = self.m_stepX * float(minimum) + self.m_rangeMinX
+
+ maximum = self.m_axisMaxSliderX.value()
+ if minimum >= maximum:
+ maximum = minimum + 1
+ self.m_axisMaxSliderX.setValue(maximum)
+ max_x = self.m_stepX * maximum + self.m_rangeMinX
+
+ self.set_axis_xrange(min_x, max_x)
+
+ @Slot(int)
+ def adjust_xmax(self, maximum):
+ max_x = self.m_stepX * float(maximum) + self.m_rangeMinX
+
+ minimum = self.m_axisMinSliderX.value()
+ if maximum <= minimum:
+ minimum = maximum - 1
+ self.m_axisMinSliderX.setValue(minimum)
+ min_x = self.m_stepX * minimum + self.m_rangeMinX
+
+ self.set_axis_xrange(min_x, max_x)
+
+ @Slot(int)
+ def adjust_zmin(self, minimum):
+ min_z = self.m_stepZ * float(minimum) + self.m_rangeMinZ
+
+ maximum = self.m_axisMaxSliderZ.value()
+ if minimum >= maximum:
+ maximum = minimum + 1
+ self.m_axisMaxSliderZ.setValue(maximum)
+ max_z = self.m_stepZ * maximum + self.m_rangeMinZ
+
+ self.set_axis_zrange(min_z, max_z)
+
+ @Slot(int)
+ def adjust_zmax(self, maximum):
+ max_x = self.m_stepZ * float(maximum) + self.m_rangeMinZ
+
+ minimum = self.m_axisMinSliderZ.value()
+ if maximum <= minimum:
+ minimum = maximum - 1
+ self.m_axisMinSliderZ.setValue(minimum)
+ min_x = self.m_stepZ * minimum + self.m_rangeMinZ
+
+ self.set_axis_zrange(min_x, max_x)
+
+ def set_axis_xrange(self, minimum, maximum):
+ self.m_graph.axisX().setRange(minimum, maximum)
+
+ def set_axis_zrange(self, minimum, maximum):
+ self.m_graph.axisZ().setRange(minimum, maximum)
+
+ @Slot(int)
+ def change_theme(self, theme):
+ self.m_graph.activeTheme().setType(Q3DTheme.Theme(theme))
+
+ @Slot()
+ def set_black_to_yellow_gradient(self):
+ gr = QLinearGradient()
+ gr.setColorAt(0.0, Qt.black)
+ gr.setColorAt(0.33, Qt.blue)
+ gr.setColorAt(0.67, Qt.red)
+ gr.setColorAt(1.0, Qt.yellow)
+
+ series = self.m_graph.seriesList()[0]
+ series.setBaseGradient(gr)
+ series.setColorStyle(Q3DTheme.ColorStyleRangeGradient)
+
+ @Slot()
+ def set_green_to_red_gradient(self):
+ gr = QLinearGradient()
+ gr.setColorAt(0.0, Qt.darkGreen)
+ gr.setColorAt(0.5, Qt.yellow)
+ gr.setColorAt(0.8, Qt.red)
+ gr.setColorAt(1.0, Qt.darkRed)
+
+ series = self.m_graph.seriesList()[0]
+ series.setBaseGradient(gr)
+ series.setColorStyle(Q3DTheme.ColorStyleRangeGradient)
+
+ @Slot()
+ def toggle_mode_none(self):
+ self.m_graph.setSelectionMode(QAbstract3DGraph.SelectionNone)
+
+ @Slot()
+ def toggle_mode_item(self):
+ self.m_graph.setSelectionMode(QAbstract3DGraph.SelectionItem)
+
+ @Slot()
+ def toggle_mode_slice_row(self):
+ self.m_graph.setSelectionMode(
+ QAbstract3DGraph.SelectionItemAndRow | QAbstract3DGraph.SelectionSlice
+ )
+
+ @Slot()
+ def toggle_mode_slice_column(self):
+ self.m_graph.setSelectionMode(
+ QAbstract3DGraph.SelectionItemAndColumn | QAbstract3DGraph.SelectionSlice
+ )
+
+ def set_axis_min_slider_x(self, slider):
+ self.m_axisMinSliderX = slider
+
+ def set_axis_max_slider_x(self, slider):
+ self.m_axisMaxSliderX = slider
+
+ def set_axis_min_slider_z(self, slider):
+ self.m_axisMinSliderZ = slider
+
+ def set_axis_max_slider_z(self, slider):
+ self.m_axisMaxSliderZ = slider
diff --git a/examples/dbus/listnames/listnames.py b/examples/dbus/listnames/listnames.py
index 7f91d3840..2240a06d8 100644
--- a/examples/dbus/listnames/listnames.py
+++ b/examples/dbus/listnames/listnames.py
@@ -1,49 +1,11 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the QtDBus listnames example from Qt v6.x"""
import sys
from PySide6.QtCore import QCoreApplication
-from PySide6.QtDBus import (QDBusConnection, QDBusConnectionInterface,
- QDBusInterface, QDBusReply)
+from PySide6.QtDBus import QDBusConnection, QDBusInterface, QDBusReply
def method1():
diff --git a/examples/dbus/pingpong/ping.py b/examples/dbus/pingpong/ping.py
index 1d5bb07e0..d61f25499 100644
--- a/examples/dbus/pingpong/ping.py
+++ b/examples/dbus/pingpong/ping.py
@@ -1,48 +1,11 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the QtDBus pingpong example from Qt v6.x (ping client)"""
import sys
-from PySide6.QtCore import QCoreApplication, QObject, Slot
-from PySide6.QtDBus import QDBusConnection, QDBusInterface, QDBusReply
+from PySide6.QtCore import QCoreApplication
+from PySide6.QtDBus import QDBusConnection, QDBusInterface, QDBusReply
SERVICE_NAME = 'org.example.QtDBus.PingExample'
@@ -73,4 +36,3 @@ if __name__ == "__main__":
value = reply.value()
print(f'ping: Reply was: {value}')
sys.exit(0)
-
diff --git a/examples/dbus/pingpong/pong.py b/examples/dbus/pingpong/pong.py
index 6d633bbdf..0dec6eda0 100644
--- a/examples/dbus/pingpong/pong.py
+++ b/examples/dbus/pingpong/pong.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the QtDBus pingpong example from Qt v6.x (pong server)"""
@@ -55,7 +18,7 @@ class Pong(QObject):
@Slot(str, result=str)
def ping(self, arg):
print(f'pong: Received ping({arg})')
- qApp.quit()
+ qApp.quit() # noqa: F821
return f'ping("{arg}") got called'
diff --git a/examples/declarative/editingmodel/MovingRectangle.qml b/examples/declarative/editingmodel/MovingRectangle.qml
deleted file mode 100644
index 0d835af1c..000000000
--- a/examples/declarative/editingmodel/MovingRectangle.qml
+++ /dev/null
@@ -1,115 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt for Python examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-import QtQuick
-import QtQuick.Controls
-
-Rectangle {
- id: root
- property int modelIndex
- property Item dragParent
- property Item sizeParent
- property alias text: zone.text
- property alias bgColor: root.color
-
- anchors {
- horizontalCenter: parent.horizontalCenter
- verticalCenter: parent.verticalCenter
- }
- color: backgroundColor
- anchors.fill: sizeParent
- border.color: "yellow"
- border.width: 0
- TextArea {
- id: zone
- anchors.centerIn: parent
- text: display
- onTextChanged: model.edit = text
- }
-
- MouseArea {
- id: zoneMouseArea
- anchors.fill: parent
-
- acceptedButtons: Qt.MiddleButton
- onClicked: function(mouse) {
- if (mouse.button == Qt.MiddleButton)
- lv.model.remove(index)
- else
- mouse.accepted = false
- }
- }
- DragHandler {
- id: dragHandler
- xAxis {
-
- enabled: true
- minimum: 0
- maximum: lv.width - droparea.width
- }
- yAxis.enabled: false
- acceptedButtons: Qt.LeftButton
- }
- Drag.active: dragHandler.active
- Drag.source: root
- Drag.hotSpot.x: width / 2
-
- states: [
- State {
- when: dragHandler.active
- ParentChange {
- target: root
- parent: root.dragParent
- }
-
- AnchorChanges {
- target: root
- anchors.horizontalCenter: undefined
- anchors.verticalCenter: undefined
- }
- PropertyChanges {
- target: root
- opacity: 0.6
- border.width: 3
- }
- }
- ]
-}
diff --git a/examples/declarative/editingmodel/doc/editingmodel.rst b/examples/declarative/editingmodel/doc/editingmodel.rst
deleted file mode 100644
index d76bebc22..000000000
--- a/examples/declarative/editingmodel/doc/editingmodel.rst
+++ /dev/null
@@ -1,14 +0,0 @@
-QAbstractListModel in QML
-=========================
-
-This example shows how to add, remove and move items inside a QML
-ListView, but showing and editing the data via roles using a
-QAbstractListModel from Python.
-
-You can add new elements and reset the view using the two top buttons,
-remove elements by 'middle click' the element, and move the elements
-with a 'left click' plus dragging the item around.
-
-.. image:: qabstractlistmodelqml.png
- :width: 400
- :alt: QAbstractListModel/ListView Screenshot
diff --git a/examples/declarative/editingmodel/main.py b/examples/declarative/editingmodel/main.py
deleted file mode 100644
index 6aee0d224..000000000
--- a/examples/declarative/editingmodel/main.py
+++ /dev/null
@@ -1,59 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-import sys
-from pathlib import Path
-
-from PySide6.QtCore import QUrl
-from PySide6.QtGui import QGuiApplication
-from PySide6.QtQml import QQmlApplicationEngine, qmlRegisterType
-
-from model import BaseModel
-
-if __name__ == "__main__":
- app = QGuiApplication(sys.argv)
- qmlRegisterType(BaseModel, "BaseModel", 1, 0, "BaseModel")
- engine = QQmlApplicationEngine()
- qml_file = Path(__file__).parent / "main.qml"
- engine.load(QUrl.fromLocalFile(qml_file))
-
- if not engine.rootObjects():
- sys.exit(-1)
- sys.exit(app.exec())
diff --git a/examples/declarative/editingmodel/main.qml b/examples/declarative/editingmodel/main.qml
deleted file mode 100644
index 8624be6cf..000000000
--- a/examples/declarative/editingmodel/main.qml
+++ /dev/null
@@ -1,143 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt for Python examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Window
-import BaseModel
-
-Window {
- title: "Moving Rectangle"
- width: 800
- height: 480
- visible: true
- id: mainWindow
-
- Column {
- spacing: 20
- anchors.fill: parent
- id: mainColumn
- Text {
- padding: 20
- font.pointSize: 10
- width: 600
- wrapMode: Text.Wrap
- text: "This example shows how to add, remove and move items inside a QML ListView.\n
-It shows and edits data via roles using QAbstractListModel on the Python side.\n
-Use the 'Middle click' on top of a rectangle to remove an item.\n
-'Left click' and drag to move the items."
- }
-
- Button {
- anchors {
- left: mainColumn.left
- right: mainColumn.right
- margins: 30
- }
- text: "Reset view"
- onClicked: lv.model.reset()
- }
-
- Button {
- anchors {
- left: mainColumn.left
- right: mainColumn.right
- margins: 30
- }
- text: "Add element"
- onClicked: lv.model.append()
- }
-
- ListView {
- id: lv
- anchors {
- left: mainColumn.left
- right: mainColumn.right
- margins: 30
- }
-
- height: 200
- model: BaseModel {}
- orientation: ListView.Horizontal
- displaced: Transition {
- NumberAnimation {
- properties: "x,y"
- easing.type: Easing.OutQuad
- }
- }
- delegate: DropArea {
- id: droparea
- width: ratio * lv.width
- height: lv.height
-
- onEntered: function (drag) {
- let dragindex = drag.source.modelIndex
- if (index === dragindex)
- return
- lv.model.move(dragindex, index)
- }
-
- MovingRectangle {
- modelIndex: index
- dragParent: lv
- sizeParent: droparea
- }
- }
-
- MouseArea {
- id: lvMousearea
- anchors.fill: lv
- z: -1
- }
- Rectangle {
- id: lvBackground
- anchors.fill: lv
- anchors.margins: -border.width
- color: "white"
- border.color: "black"
- border.width: 5
- z: -1
- }
- Component.onCompleted: {
- lv.model.reset()
- }
- }
- }
-}
diff --git a/examples/declarative/editingmodel/model.py b/examples/declarative/editingmodel/model.py
deleted file mode 100644
index 99736e714..000000000
--- a/examples/declarative/editingmodel/model.py
+++ /dev/null
@@ -1,187 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-
-from PySide6.QtCore import (QAbstractListModel, QByteArray, QModelIndex, Qt,
- Slot)
-from PySide6.QtGui import QColor
-
-
-class BaseModel(QAbstractListModel):
-
- RatioRole = Qt.UserRole + 1
-
- def __init__(self, parent=None):
- super().__init__(parent=parent)
- self.db = []
-
- def rowCount(self, parent=QModelIndex()):
- return len(self.db)
-
- def roleNames(self):
- default = super().roleNames()
- default[self.RatioRole] = QByteArray(b"ratio")
- default[Qt.BackgroundRole] = QByteArray(b"backgroundColor")
- return default
-
- def data(self, index, role: int):
- if not self.db:
- ret = None
- elif not index.isValid():
- ret = None
- elif role == Qt.DisplayRole:
- ret = self.db[index.row()]["text"]
- elif role == Qt.BackgroundRole:
- ret = self.db[index.row()]["bgColor"]
- elif role == self.RatioRole:
- ret = self.db[index.row()]["ratio"]
- else:
- ret = None
- return ret
-
- def setData(self, index, value, role):
- if not index.isValid():
- return False
- if role == Qt.EditRole:
- self.db[index.row()]["text"] = value
- return True
-
- @Slot(result=bool)
- def append(self):
- """Slot to append a row at the end"""
- return self.insertRow(self.rowCount())
-
- def insertRow(self, row):
- """Insert a single row at row"""
- return self.insertRows(row, 0)
-
- def insertRows(self, row: int, count, index=QModelIndex()):
- """Insert n rows (n = 1 + count) at row"""
-
- self.beginInsertRows(QModelIndex(), row, row + count)
-
- # start database work
- if len(self.db):
- newid = max(x["id"] for x in self.db) + 1
- else:
- newid = 1
- for i in range(count + 1): # at least one row
- self.db.insert(
- row, {"id": newid, "text": "new", "bgColor": QColor("purple"), "ratio": 0.2}
- )
- # end database work
- self.endInsertRows()
- return True
-
- @Slot(int, int, result=bool)
- def move(self, source: int, target: int):
- """Slot to move a single row from source to target"""
- return self.moveRow(QModelIndex(), source, QModelIndex(), target)
-
- def moveRow(self, sourceParent, sourceRow, dstParent, dstChild):
- """Move a single row"""
- return self.moveRows(sourceParent, sourceRow, 0, dstParent, dstChild)
-
- def moveRows(self, sourceParent, sourceRow, count, dstParent, dstChild):
- """Move n rows (n=1+ count) from sourceRow to dstChild"""
-
- if sourceRow == dstChild:
- return False
-
- elif sourceRow > dstChild:
- end = dstChild
-
- else:
- end = dstChild + 1
-
- self.beginMoveRows(QModelIndex(), sourceRow, sourceRow + count, QModelIndex(), end)
-
- # start database work
- pops = self.db[sourceRow : sourceRow + count + 1]
- if sourceRow > dstChild:
- self.db = (
- self.db[:dstChild]
- + pops
- + self.db[dstChild:sourceRow]
- + self.db[sourceRow + count + 1 :]
- )
- else:
- start = self.db[:sourceRow]
- middle = self.db[dstChild : dstChild + 1]
- endlist = self.db[dstChild + count + 1 :]
- self.db = start + middle + pops + endlist
- # end database work
-
- self.endMoveRows()
- return True
-
- @Slot(int, result=bool)
- def remove(self, row: int):
- """Slot to remove one row"""
- return self.removeRow(row)
-
- def removeRow(self, row, parent=QModelIndex()):
- """Remove one row at index row"""
- return self.removeRows(row, 0, parent)
-
- def removeRows(self, row: int, count: int, parent=QModelIndex()):
- """Remove n rows (n=1+count) starting at row"""
- self.beginRemoveRows(QModelIndex(), row, row + count)
-
- # start database work
- self.db = self.db[:row] + self.db[row + count + 1 :]
- # end database work
-
- self.endRemoveRows()
- return True
-
- @Slot(result=bool)
- def reset(self):
- self.beginResetModel()
- self.resetInternalData() # should work without calling it ?
- self.endResetModel()
- return True
-
- def resetInternalData(self):
- self.db = [
- {"id": 3, "bgColor": QColor("red"), "ratio": 0.15, "text": "first"},
- {"id": 1, "bgColor": QColor("blue"), "ratio": 0.1, "text": "second"},
- {"id": 2, "bgColor": QColor("green"), "ratio": 0.2, "text": "third"},
- ]
diff --git a/examples/declarative/extending/chapter1-basics/app.qml b/examples/declarative/extending/chapter1-basics/app.qml
deleted file mode 100644
index d51d328c7..000000000
--- a/examples/declarative/extending/chapter1-basics/app.qml
+++ /dev/null
@@ -1,64 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt for Python examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-//![0]
-import Charts
-import QtQuick
-
-Item {
- width: 300; height: 200
-
- PieChart {
- id: aPieChart
- anchors.centerIn: parent
- width: 100; height: 100
- name: "A simple pie chart"
- color: "red"
- }
-
- Text {
- anchors {
- bottom: parent.bottom;
- horizontalCenter: parent.horizontalCenter;
- bottomMargin: 20
- }
- text: aPieChart.name
- }
-}
-//![0]
diff --git a/examples/declarative/extending/chapter1-basics/basics.py b/examples/declarative/extending/chapter1-basics/basics.py
deleted file mode 100644
index 412b25cad..000000000
--- a/examples/declarative/extending/chapter1-basics/basics.py
+++ /dev/null
@@ -1,102 +0,0 @@
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-"""PySide6 port of the qml/tutorials/extending-qml/chapter1-basics example from Qt v5.x"""
-
-import os
-from pathlib import Path
-import sys
-
-from PySide6.QtCore import Property, Signal, QUrl
-from PySide6.QtGui import QGuiApplication, QPen, QPainter, QColor
-from PySide6.QtQml import qmlRegisterType
-from PySide6.QtQuick import QQuickPaintedItem, QQuickView
-
-
-class PieChart (QQuickPaintedItem):
-
- nameChanged = Signal()
-
- def __init__(self, parent=None):
- QQuickPaintedItem.__init__(self, parent)
- self._name = u''
- self._color = QColor()
-
- def paint(self, painter):
- pen = QPen(self.color, 2)
- painter.setPen(pen)
- painter.setRenderHints(QPainter.Antialiasing, True)
- painter.drawPie(self.boundingRect().adjusted(1, 1, -1, -1), 90 * 16, 290 * 16)
-
- @Property(QColor)
- def color(self):
- return self._color
-
- @color.setter
- def color(self, value):
- self._color = value
-
- @Property(str, notify=nameChanged)
- def name(self):
- return self._name
-
- @name.setter
- def name(self, value):
- self._name = value
-
-
-if __name__ == '__main__':
- app = QGuiApplication(sys.argv)
-
- qmlRegisterType(PieChart, 'Charts', 1, 0, 'PieChart')
-
- view = QQuickView()
- view.setResizeMode(QQuickView.SizeRootObjectToView)
- qml_file = os.fspath(Path(__file__).resolve().parent / 'app.qml')
- view.setSource(QUrl.fromLocalFile(qml_file))
- if view.status() == QQuickView.Error:
- sys.exit(-1)
- view.show()
- res = app.exec()
- # Deleting the view before it goes out of scope is required to make sure all child QML instances
- # are destroyed in the correct order.
- del view
- sys.exit(res)
diff --git a/examples/declarative/extending/chapter2-methods/app.qml b/examples/declarative/extending/chapter2-methods/app.qml
deleted file mode 100644
index 2fc65ab1a..000000000
--- a/examples/declarative/extending/chapter2-methods/app.qml
+++ /dev/null
@@ -1,70 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt for Python examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-//![0]
-import Charts
-import QtQuick
-
-Item {
- width: 300; height: 200
-
- PieChart {
- id: aPieChart
- anchors.centerIn: parent
- width: 100; height: 100
- color: "red"
-
- onChartCleared: console.log("The chart has been cleared")
- }
-
- MouseArea {
- anchors.fill: parent
- onClicked: aPieChart.clearChart()
- }
-
- Text {
- anchors {
- bottom: parent.bottom;
- horizontalCenter: parent.horizontalCenter;
- bottomMargin: 20
- }
- text: "Click anywhere to clear the chart"
- }
-}
-//![0]
diff --git a/examples/declarative/extending/chapter2-methods/methods.py b/examples/declarative/extending/chapter2-methods/methods.py
deleted file mode 100644
index c9e7be8f3..000000000
--- a/examples/declarative/extending/chapter2-methods/methods.py
+++ /dev/null
@@ -1,109 +0,0 @@
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-"""PySide6 port of the qml/tutorials/extending-qml/chapter2-methods example from Qt v5.x"""
-
-import os
-from pathlib import Path
-import sys
-
-from PySide6.QtCore import Property, Signal, Slot, Qt, QUrl
-from PySide6.QtGui import QGuiApplication, QPen, QPainter, QColor
-from PySide6.QtQml import qmlRegisterType
-from PySide6.QtQuick import QQuickPaintedItem, QQuickView
-
-
-class PieChart(QQuickPaintedItem):
-
- chartCleared = Signal()
- nameChanged = Signal()
-
- def __init__(self, parent=None):
- QQuickPaintedItem.__init__(self, parent)
- self._name = u''
- self._color = QColor()
-
- def paint(self, painter):
- pen = QPen(self.color, 2)
- painter.setPen(pen)
- painter.setRenderHints(QPainter.Antialiasing, True)
- painter.drawPie(self.boundingRect().adjusted(1, 1, -1, -1), 90 * 16, 290 * 16)
-
- @Property(QColor)
- def color(self):
- return self._color
-
- @color.setter
- def color(self, value):
- self._color = value
-
- @Property(str, notify=nameChanged)
- def name(self):
- return self._name
-
- @name.setter
- def name(self, value):
- self._name = value
-
- @Slot() # This should be something like @Invokable
- def clearChart(self):
- self.color = Qt.transparent
- self.update()
- self.chartCleared.emit()
-
-
-if __name__ == '__main__':
- app = QGuiApplication(sys.argv)
-
- qmlRegisterType(PieChart, 'Charts', 1, 0, 'PieChart')
-
- view = QQuickView()
- view.setResizeMode(QQuickView.SizeRootObjectToView)
- qml_file = os.fspath(Path(__file__).resolve().parent / 'app.qml')
- view.setSource(QUrl.fromLocalFile(qml_file))
- if view.status() == QQuickView.Error:
- sys.exit(-1)
- view.show()
- res = app.exec()
- # Deleting the view before it goes out of scope is required to make sure all child QML instances
- # are destroyed in the correct order.
- del view
- sys.exit(res)
diff --git a/examples/declarative/extending/chapter3-bindings/app.qml b/examples/declarative/extending/chapter3-bindings/app.qml
deleted file mode 100644
index 23c1af14f..000000000
--- a/examples/declarative/extending/chapter3-bindings/app.qml
+++ /dev/null
@@ -1,78 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt for Python examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-//![0]
-import Charts
-import QtQuick
-
-Item {
- width: 300; height: 200
-
- Row {
- anchors.centerIn: parent
- spacing: 20
-
- PieChart {
- id: chartA
- width: 100; height: 100
- color: "red"
- }
-
- PieChart {
- id: chartB
- width: 100; height: 100
- color: chartA.color
- }
- }
-
- MouseArea {
- anchors.fill: parent
- onClicked: { chartA.color = "blue" }
- }
-
- Text {
- anchors {
- bottom: parent.bottom;
- horizontalCenter: parent.horizontalCenter;
- bottomMargin: 20
- }
- text: "Click anywhere to change the chart color"
- }
-}
-//![0]
diff --git a/examples/declarative/extending/chapter3-bindings/bindings.py b/examples/declarative/extending/chapter3-bindings/bindings.py
deleted file mode 100644
index cacac78da..000000000
--- a/examples/declarative/extending/chapter3-bindings/bindings.py
+++ /dev/null
@@ -1,113 +0,0 @@
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-"""PySide6 port of the qml/tutorials/extending-qml/chapter3-bindings example from Qt v5.x"""
-
-import os
-from pathlib import Path
-import sys
-
-from PySide6.QtCore import Property, Signal, Slot, QUrl, Qt
-from PySide6.QtGui import QGuiApplication, QPen, QPainter, QColor
-from PySide6.QtQml import qmlRegisterType
-from PySide6.QtQuick import QQuickPaintedItem, QQuickView
-
-
-class PieChart (QQuickPaintedItem):
-
- chartCleared = Signal()
- nameChanged = Signal()
- colorChanged = Signal()
-
- def __init__(self, parent=None):
- QQuickPaintedItem.__init__(self, parent)
- self._name = u''
- self._color = QColor()
-
- def paint(self, painter):
- pen = QPen(self._color, 2)
- painter.setPen(pen)
- painter.setRenderHints(QPainter.Antialiasing, True)
- painter.drawPie(self.boundingRect().adjusted(1, 1, -1, -1), 90 * 16, 290 * 16)
-
- @Property(QColor, notify=colorChanged)
- def color(self):
- return self._color
-
- @color.setter
- def color(self, value):
- if value != self._color:
- self._color = value
- self.update()
- self.colorChanged.emit()
-
- @Property(str, notify=nameChanged)
- def name(self):
- return self._name
-
- @name.setter
- def name(self, value):
- self._name = value
-
- @Slot() # This should be something like @Invokable
- def clearChart(self):
- self.color = Qt.transparent
- self.update()
- self.chartCleared.emit()
-
-
-if __name__ == '__main__':
- app = QGuiApplication(sys.argv)
-
- qmlRegisterType(PieChart, 'Charts', 1, 0, 'PieChart')
-
- view = QQuickView()
- view.setResizeMode(QQuickView.SizeRootObjectToView)
- qml_file = os.fspath(Path(__file__).resolve().parent / 'app.qml')
- view.setSource(QUrl.fromLocalFile(qml_file))
- if view.status() == QQuickView.Error:
- sys.exit(-1)
- view.show()
- res = app.exec()
- # Deleting the view before it goes out of scope is required to make sure all child QML instances
- # are destroyed in the correct order.
- del view
- sys.exit(res)
diff --git a/examples/declarative/extending/chapter4-customPropertyTypes/app.qml b/examples/declarative/extending/chapter4-customPropertyTypes/app.qml
deleted file mode 100644
index af98a4055..000000000
--- a/examples/declarative/extending/chapter4-customPropertyTypes/app.qml
+++ /dev/null
@@ -1,60 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt for Python examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-//![0]
-import Charts
-import QtQuick
-
-Item {
- width: 300; height: 200
-
- PieChart {
- id: chart
- anchors.centerIn: parent
- width: 100; height: 100
-
- pieSlice: PieSlice {
- anchors.fill: parent
- color: "red"
- }
- }
-
- Component.onCompleted: console.log("The pie is colored " + chart.pieSlice.color)
-}
-//![0]
diff --git a/examples/declarative/extending/chapter4-customPropertyTypes/customPropertyTypes.py b/examples/declarative/extending/chapter4-customPropertyTypes/customPropertyTypes.py
deleted file mode 100644
index a4a74fef4..000000000
--- a/examples/declarative/extending/chapter4-customPropertyTypes/customPropertyTypes.py
+++ /dev/null
@@ -1,116 +0,0 @@
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-"""PySide6 port of the qml/tutorials/extending-qml/chapter4-customPropertyTypes example from Qt v5.x"""
-
-import os
-from pathlib import Path
-import sys
-
-from PySide6.QtCore import Property, QUrl
-from PySide6.QtGui import QGuiApplication, QPen, QPainter, QColor
-from PySide6.QtQml import qmlRegisterType
-from PySide6.QtQuick import QQuickPaintedItem, QQuickView, QQuickItem
-
-
-class PieSlice (QQuickPaintedItem):
-
- def __init__(self, parent=None):
- QQuickPaintedItem.__init__(self, parent)
- self._color = QColor()
-
- @Property(QColor)
- def color(self):
- return self._color
-
- @color.setter
- def color(self, value):
- self._color = value
-
- def paint(self, painter):
- pen = QPen(self._color, 2)
- painter.setPen(pen)
- painter.setRenderHints(QPainter.Antialiasing, True)
- painter.drawPie(self.boundingRect().adjusted(1, 1, -1, -1), 90 * 16, 290 * 16)
-
-
-class PieChart (QQuickItem):
- def __init__(self, parent=None):
- QQuickItem.__init__(self, parent)
- self._name = None
- self._pieSlice = None
-
- @Property(str)
- def name(self):
- return self._name
-
- @name.setter
- def name(self, value):
- self._name = value
-
- @Property(PieSlice)
- def pieSlice(self):
- return self._pieSlice
-
- @pieSlice.setter
- def pieSlice(self, value):
- self._pieSlice = value
- self._pieSlice.setParentItem(self)
-
-
-if __name__ == '__main__':
- app = QGuiApplication(sys.argv)
-
- qmlRegisterType(PieChart, 'Charts', 1, 0, 'PieChart')
- qmlRegisterType(PieSlice, "Charts", 1, 0, "PieSlice")
-
- view = QQuickView()
- view.setResizeMode(QQuickView.SizeRootObjectToView)
- qml_file = os.fspath(Path(__file__).resolve().parent / 'app.qml')
- view.setSource(QUrl.fromLocalFile(qml_file))
- if view.status() == QQuickView.Error:
- sys.exit(-1)
- view.show()
- res = app.exec()
- # Deleting the view before it goes out of scope is required to make sure all child QML instances
- # are destroyed in the correct order.
- del view
- sys.exit(res)
diff --git a/examples/declarative/extending/chapter5-listproperties/app.qml b/examples/declarative/extending/chapter5-listproperties/app.qml
deleted file mode 100644
index 5040fa73a..000000000
--- a/examples/declarative/extending/chapter5-listproperties/app.qml
+++ /dev/null
@@ -1,70 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt for Python examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-//![0]
-import Charts
-import QtQuick
-
-Item {
- width: 300; height: 200
-
- PieChart {
- anchors.centerIn: parent
- width: 100; height: 100
-
- slices: [
- PieSlice {
- anchors.fill: parent
- color: "red"
- fromAngle: 0; angleSpan: 110
- },
- PieSlice {
- anchors.fill: parent
- color: "black"
- fromAngle: 110; angleSpan: 50
- },
- PieSlice {
- anchors.fill: parent
- color: "blue"
- fromAngle: 160; angleSpan: 100
- }
- ]
- }
-}
-//![0]
diff --git a/examples/declarative/extending/chapter5-listproperties/listproperties.py b/examples/declarative/extending/chapter5-listproperties/listproperties.py
deleted file mode 100644
index eeaba0858..000000000
--- a/examples/declarative/extending/chapter5-listproperties/listproperties.py
+++ /dev/null
@@ -1,130 +0,0 @@
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-"""PySide6 port of the qml/tutorials/extending-qml/chapter5-listproperties example from Qt v5.x"""
-
-import os
-from pathlib import Path
-import sys
-
-from PySide6.QtCore import Property, QUrl
-from PySide6.QtGui import QGuiApplication, QPen, QPainter, QColor
-from PySide6.QtQml import qmlRegisterType, ListProperty
-from PySide6.QtQuick import QQuickPaintedItem, QQuickView, QQuickItem
-
-
-class PieSlice (QQuickPaintedItem):
- def __init__(self, parent=None):
- QQuickPaintedItem.__init__(self, parent)
- self._color = QColor()
- self._fromAngle = 0
- self._angleSpan = 0
-
- @Property(QColor)
- def color(self):
- return self._color
-
- @color.setter
- def color(self, value):
- self._color = value
-
- @Property(int)
- def fromAngle(self):
- return self._angle
-
- @fromAngle.setter
- def fromAngle(self, value):
- self._fromAngle = value
-
- @Property(int)
- def angleSpan(self):
- return self._angleSpan
-
- @angleSpan.setter
- def angleSpan(self, value):
- self._angleSpan = value
-
- def paint(self, painter):
- pen = QPen(self._color, 2)
- painter.setPen(pen)
- painter.setRenderHints(QPainter.Antialiasing, True)
- painter.drawPie(self.boundingRect().adjusted(1, 1, -1, -1), self._fromAngle * 16, self._angleSpan * 16)
-
-
-class PieChart (QQuickItem):
- def __init__(self, parent=None):
- QQuickItem.__init__(self, parent)
- self._name = u''
- self._slices = []
-
- @Property(str)
- def name(self):
- return self._name
-
- @name.setter
- def name(self, value):
- self._name = value
-
- def appendSlice(self, _slice):
- _slice.setParentItem(self)
- self._slices.append(_slice)
-
- slices = ListProperty(PieSlice, appendSlice)
-
-
-if __name__ == '__main__':
- app = QGuiApplication(sys.argv)
-
- qmlRegisterType(PieChart, 'Charts', 1, 0, 'PieChart')
- qmlRegisterType(PieSlice, "Charts", 1, 0, "PieSlice")
-
- view = QQuickView()
- view.setResizeMode(QQuickView.SizeRootObjectToView)
- qml_file = os.fspath(Path(__file__).resolve().parent / 'app.qml')
- view.setSource(QUrl.fromLocalFile(qml_file))
- if view.status() == QQuickView.Error:
- sys.exit(-1)
- view.show()
- res = app.exec()
- # Deleting the view before it goes out of scope is required to make sure all child QML instances
- # are destroyed in the correct order.
- del view
- sys.exit(res)
diff --git a/examples/declarative/objectlistmodel/doc/objectlistmodel.rst b/examples/declarative/objectlistmodel/doc/objectlistmodel.rst
deleted file mode 100644
index d71ee61df..000000000
--- a/examples/declarative/objectlistmodel/doc/objectlistmodel.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-Object List Model Example
-=========================
-
-A list of QObject values can also be used as a model.
-A list[QObject,] provides the properties of the objects in the list as roles.
-
-The following application creates a DataObject class with Property values
-that will be accessible as named roles when a list[DataObject,] is exposed to QML:
-
-.. image:: objectlistmodel.png
- :width: 400
- :alt: Object List Model Screenshot
diff --git a/examples/declarative/objectlistmodel/objectlistmodel.py b/examples/declarative/objectlistmodel/objectlistmodel.py
deleted file mode 100644
index 0a3d5501e..000000000
--- a/examples/declarative/objectlistmodel/objectlistmodel.py
+++ /dev/null
@@ -1,99 +0,0 @@
-
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-from pathlib import Path
-import sys
-from PySide6.QtCore import QObject, QUrl, Property, Signal
-from PySide6.QtGui import QGuiApplication
-from PySide6.QtQuick import QQuickView
-
-# This example illustrates exposing a list of QObjects as a model in QML
-
-class DataObject(QObject):
-
- nameChanged = Signal()
- colorChanged = Signal()
-
- def __init__(self, name, color, parent=None):
- super().__init__(parent)
- self._name = name
- self._color = color
-
- def name(self):
- return self._name
-
- def setName(self, name):
- if name != self._name:
- self._name = name
- nameChanged.emit()
-
- def color(self):
- return self._color
-
- def setColor(self, color):
- if color != self._color:
- self._color = color
- colorChanged.emit()
-
-
- name = Property(str, name, setName, notify=nameChanged)
- color = Property(str, color, setColor, notify=colorChanged)
-
-
-if __name__ == '__main__':
- app = QGuiApplication(sys.argv)
-
- dataList = [DataObject("Item 1", "red"),
- DataObject("Item 2", "green"),
- DataObject("Item 3", "blue"),
- DataObject("Item 4", "yellow")]
-
- view = QQuickView()
- view.setResizeMode(QQuickView.SizeRootObjectToView)
- view.setInitialProperties({"model": dataList})
-
- qml_file = Path(__file__).parent / "view.qml"
- view.setSource(QUrl.fromLocalFile(qml_file))
- view.show()
-
- r = app.exec()
- del view
- sys.exit(r)
diff --git a/examples/declarative/objectlistmodel/view.qml b/examples/declarative/objectlistmodel/view.qml
deleted file mode 100644
index f796561a5..000000000
--- a/examples/declarative/objectlistmodel/view.qml
+++ /dev/null
@@ -1,52 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt for Python examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-
-ListView {
- width: 100; height: 100
-
- delegate: Rectangle {
- color: model.modelData.color
- height: 25
- width: 100
- Text { text: model.modelData.name }
- }
-}
diff --git a/examples/declarative/openglunderqml/main.py b/examples/declarative/openglunderqml/main.py
deleted file mode 100644
index 26e059f93..000000000
--- a/examples/declarative/openglunderqml/main.py
+++ /dev/null
@@ -1,66 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-import sys
-from pathlib import Path
-
-from PySide6.QtCore import QUrl
-from PySide6.QtGui import QGuiApplication
-from PySide6.QtQml import qmlRegisterType
-from PySide6.QtQuick import QQuickView, QQuickWindow, QSGRendererInterface
-
-from squircle import Squircle
-
-if __name__ == "__main__":
- app = QGuiApplication(sys.argv)
-
- QQuickWindow.setGraphicsApi(QSGRendererInterface.OpenGLRhi)
- qmlRegisterType(Squircle, "OpenGLUnderQML", 1, 0, "Squircle")
-
- view = QQuickView()
- view.setResizeMode(QQuickView.SizeRootObjectToView)
- qml_file = Path(__file__).parent / "main.qml"
- view.setSource(QUrl.fromLocalFile(qml_file))
-
- if view.status() == QQuickView.Error:
- sys.exit(-1)
- view.show()
-
- sys.exit(app.exec())
diff --git a/examples/declarative/openglunderqml/main.qml b/examples/declarative/openglunderqml/main.qml
deleted file mode 100644
index 7edcf523b..000000000
--- a/examples/declarative/openglunderqml/main.qml
+++ /dev/null
@@ -1,86 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the demonstration applications of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import OpenGLUnderQML
-
-Item {
-
- width: 320
- height: 480
-
- Squircle {
- SequentialAnimation on t {
- NumberAnimation { to: 1; duration: 2500; easing.type: Easing.InQuad }
- NumberAnimation { to: 0; duration: 2500; easing.type: Easing.OutQuad }
- loops: Animation.Infinite
- running: true
- }
- }
- Rectangle {
- color: Qt.rgba(1, 1, 1, 0.7)
- radius: 10
- border.width: 1
- border.color: "white"
- anchors.fill: label
- anchors.margins: -10
- }
-
- Text {
- id: label
- color: "black"
- wrapMode: Text.WordWrap
- text: "The background here is a squircle rendered with raw OpenGL using the 'beforeRender()' signal in QQuickWindow. This text label and its border is rendered using QML"
- anchors.right: parent.right
- anchors.left: parent.left
- anchors.bottom: parent.bottom
- anchors.margins: 20
- }
-}
diff --git a/examples/declarative/openglunderqml/squircle.py b/examples/declarative/openglunderqml/squircle.py
deleted file mode 100644
index 8d2cbca84..000000000
--- a/examples/declarative/openglunderqml/squircle.py
+++ /dev/null
@@ -1,107 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-from PySide6.QtCore import Property, QRunnable, Qt, Signal, Slot
-from PySide6.QtQuick import QQuickItem, QQuickWindow
-
-from squirclerenderer import SquircleRenderer
-
-
-class CleanupJob(QRunnable):
- def __init__(self, renderer):
- super().__init__()
- self._renderer = renderer
-
- def run(self):
- del self._renderer
-
-
-class Squircle(QQuickItem):
-
- tChanged = Signal()
-
- def __init__(self, parent=None):
- super().__init__(parent)
- self._t = 0.0
- self._renderer = None
- self.windowChanged.connect(self.handleWindowChanged)
-
- def t(self):
- return self._t
-
- def setT(self, value):
- if self._t == value:
- return
- self._t = value
- self.tChanged.emit()
- if self.window():
- self.window().update()
-
- @Slot(QQuickWindow)
- def handleWindowChanged(self, win):
- if win:
- win.beforeSynchronizing.connect(self.sync, type=Qt.DirectConnection)
- win.sceneGraphInvalidated.connect(self.cleanup, type=Qt.DirectConnection)
- win.setColor(Qt.black)
- self.sync()
-
- def cleanup(self):
- del self._renderer
- self._renderer = None
-
- @Slot()
- def sync(self):
- if not self._renderer:
- self._renderer = SquircleRenderer()
- self.window().beforeRendering.connect(self._renderer.init, Qt.DirectConnection)
- self.window().beforeRenderPassRecording.connect(
- self._renderer.paint, Qt.DirectConnection
- )
- self._renderer.setViewportSize(self.window().size() * self.window().devicePixelRatio())
- self._renderer.setT(self._t)
- self._renderer.setWindow(self.window())
-
- def releaseResources(self):
- self.window().scheduleRenderJob(
- CleanupJob(self._renderer), QQuickWindow.BeforeSynchronizingStage
- )
- self._renderer = None
-
- t = Property(float, t, setT, notify=tChanged)
diff --git a/examples/declarative/openglunderqml/squirclerenderer.py b/examples/declarative/openglunderqml/squirclerenderer.py
deleted file mode 100644
index 12cd93bb8..000000000
--- a/examples/declarative/openglunderqml/squirclerenderer.py
+++ /dev/null
@@ -1,141 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-from textwrap import dedent
-
-import numpy as np
-from OpenGL.GL import (GL_ARRAY_BUFFER, GL_BLEND, GL_DEPTH_TEST, GL_FLOAT,
- GL_ONE, GL_SRC_ALPHA, GL_TRIANGLE_STRIP)
-from PySide6.QtCore import QSize, Slot
-from PySide6.QtGui import QOpenGLFunctions
-from PySide6.QtOpenGL import (QOpenGLShader, QOpenGLShaderProgram,
- QOpenGLVersionProfile)
-from PySide6.QtQuick import QQuickWindow, QSGRendererInterface
-
-VERTEX_SHADER = dedent(
- """\
- attribute highp vec4 vertices;
- varying highp vec2 coords;
- void main() {
- gl_Position = vertices;
- coords = vertices.xy;
- }
- """
-)
-FRAGMENT_SHADER = dedent(
- """\
- uniform lowp float t;
- varying highp vec2 coords;
- void main() {
- lowp float i = 1. - (pow(abs(coords.x), 4.) + pow(abs(coords.y), 4.));
- i = smoothstep(t - 0.8, t + 0.8, i);
- i = floor(i * 20.) / 20.;
- gl_FragColor = vec4(coords * .5 + .5, i, i);
- }
- """
-)
-
-
-class SquircleRenderer(QOpenGLFunctions):
- def __init__(self):
- QOpenGLFunctions.__init__(self)
- self._viewport_size = QSize()
- self._t = 0.0
- self._program = None
- self._window = QQuickWindow()
- self.profile = QOpenGLVersionProfile()
- self.gl = None
-
- def setT(self, t):
- self._t = t
-
- def setViewportSize(self, size):
- self._viewport_size = size
-
- def setWindow(self, window):
- self._window = window
-
- @Slot()
- def init(self):
- if not self._program:
- rif = self._window.rendererInterface()
- assert (
- rif.graphicsApi() == QSGRendererInterface.OpenGL
- or rif.graphicsApi() == QSGRendererInterface.OpenGLRhy
- )
- self.initializeOpenGLFunctions()
- self._program = QOpenGLShaderProgram()
- self._program.addCacheableShaderFromSourceCode(QOpenGLShader.Vertex, VERTEX_SHADER)
- self._program.addCacheableShaderFromSourceCode(QOpenGLShader.Fragment, FRAGMENT_SHADER)
- self._program.bindAttributeLocation("vertices", 0)
- self._program.link()
-
- @Slot()
- def paint(self):
- # Play nice with the RHI. Not strictly needed when the scenegraph uses
- # OpenGL directly.
- self._window.beginExternalCommands()
-
- self._program.bind()
-
- self._program.enableAttributeArray(0)
-
- values = np.array([-1, -1, 1, -1, -1, 1, 1, 1], dtype="single")
-
- # This example relies on (deprecated) client-side pointers for the vertex
- # input. Therefore, we have to make sure no vertex buffer is bound.
- self.glBindBuffer(GL_ARRAY_BUFFER, 0)
-
- self._program.setAttributeArray(0, GL_FLOAT, values, 2)
- self._program.setUniformValue1f("t", self._t)
-
- self.glViewport(0, 0, self._viewport_size.width(), self._viewport_size.height())
-
- self.glDisable(GL_DEPTH_TEST)
-
- self.glEnable(GL_BLEND)
- self.glBlendFunc(GL_SRC_ALPHA, GL_ONE)
-
- self.glDrawArrays(GL_TRIANGLE_STRIP, 0, 4)
-
- self._program.disableAttributeArray(0)
- self._program.release()
-
- self._window.endExternalCommands()
diff --git a/examples/declarative/signals/pytoqml1/main.py b/examples/declarative/signals/pytoqml1/main.py
deleted file mode 100644
index 3dc18adaf..000000000
--- a/examples/declarative/signals/pytoqml1/main.py
+++ /dev/null
@@ -1,69 +0,0 @@
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-import os
-from pathlib import Path
-import sys
-from PySide6.QtCore import QTimer, QUrl
-from PySide6.QtGui import QGuiApplication
-from PySide6.QtQuick import QQuickView
-
-if __name__ == '__main__':
- app = QGuiApplication(sys.argv)
-
- timer = QTimer()
- timer.start(2000)
-
- view = QQuickView()
- qml_file = os.fspath(Path(__file__).resolve().parent / 'view.qml')
- view.setSource(QUrl.fromLocalFile(qml_file))
- if view.status() == QQuickView.Error:
- sys.exit(-1)
- root = view.rootObject()
-
- timer.timeout.connect(root.updateRotater)
-
- view.show()
- res = app.exec()
- # Deleting the view before it goes out of scope is required to make sure all child QML instances
- # are destroyed in the correct order.
- del view
- sys.exit(res)
diff --git a/examples/declarative/signals/pytoqml1/view.qml b/examples/declarative/signals/pytoqml1/view.qml
deleted file mode 100644
index db91d157d..000000000
--- a/examples/declarative/signals/pytoqml1/view.qml
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt for Python examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-
-Rectangle {
- id: page
-
- function updateRotater() {
- rotater.angle = rotater.angle + 45
- }
-
- width: 500; height: 200
- color: "lightgray"
-
- Rectangle {
- id: rotater
- property real angle : 0
- x: 240
- width: 100; height: 10
- color: "black"
- y: 95
-
- transform: Rotation {
- origin.x: 10; origin.y: 5
- angle: rotater.angle
- Behavior on angle {
- SpringAnimation {
- spring: 1.4
- damping: .05
- }
- }
- }
- }
-
-}
diff --git a/examples/declarative/signals/pytoqml2/main.py b/examples/declarative/signals/pytoqml2/main.py
deleted file mode 100644
index 31e860dc1..000000000
--- a/examples/declarative/signals/pytoqml2/main.py
+++ /dev/null
@@ -1,92 +0,0 @@
-
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-import os
-from pathlib import Path
-import sys
-from PySide6.QtCore import QObject, QTimer, QUrl, Signal, Slot
-from PySide6.QtGui import QGuiApplication
-from PySide6.QtQuick import QQuickView
-from PySide6.QtQml import QmlElement
-
-
-# To be used on the @QmlElement decorator
-# (QML_IMPORT_MINOR_VERSION is optional)
-QML_IMPORT_NAME = "examples.signals.pytoqml2"
-QML_IMPORT_MAJOR_VERSION = 1
-
-
-@QmlElement
-class RotateValue(QObject):
- valueChanged = Signal(int, arguments=['val'])
-
- def __init__(self):
- super().__init__()
- self.r = 0
-
- @Slot()
- def increment(self):
- self.r = self.r + 10
- self.valueChanged.emit(self.r)
-
-
-if __name__ == '__main__':
- app = QGuiApplication(sys.argv)
- view = QQuickView()
-
- rotatevalue = RotateValue()
- timer = QTimer()
- timer.start(2000)
- view.setInitialProperties({"rotatevalue": rotatevalue})
-
- qml_file = os.fspath(Path(__file__).resolve().parent / 'view.qml')
- view.setSource(QUrl.fromLocalFile(qml_file))
- if view.status() == QQuickView.Error:
- sys.exit(-1)
-
- timer.timeout.connect(rotatevalue.increment)
-
- view.show()
- res = app.exec()
- # Deleting the view before it goes out of scope is required to make
- # sure all child QML instances are destroyed in the correct order.
- del view
- sys.exit(res)
diff --git a/examples/declarative/signals/pytoqml2/view.qml b/examples/declarative/signals/pytoqml2/view.qml
deleted file mode 100644
index 7ba0b70b3..000000000
--- a/examples/declarative/signals/pytoqml2/view.qml
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt for Python examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQml
-
-import examples.signals.pytoqml2 1.0
-
-Rectangle {
- id: page
-
- width: 500; height: 200
- color: "lightgray"
- required property RotateValue rotatevalue
-
- Text {
- id: helloText
- text: "Hello world!"
- anchors.horizontalCenter: page.horizontalCenter
- y: 30
- font.pointSize: 24; font.bold: true
- }
-
- Connections {
- target: rotatevalue
- function onValueChanged(val) {
- helloText.rotation = val
- }
- }
-}
diff --git a/examples/declarative/signals/qmltopy1/main.py b/examples/declarative/signals/qmltopy1/main.py
deleted file mode 100644
index b84d98a71..000000000
--- a/examples/declarative/signals/qmltopy1/main.py
+++ /dev/null
@@ -1,88 +0,0 @@
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-import os
-from pathlib import Path
-import sys
-from PySide6.QtCore import QObject, QUrl, Slot
-from PySide6.QtGui import QGuiApplication
-from PySide6.QtQuick import QQuickView
-from PySide6.QtQml import QmlElement
-
-
-# To be used on the @QmlElement decorator
-# (QML_IMPORT_MINOR_VERSION is optional)
-QML_IMPORT_NAME = "examples.signals.qmltopy1"
-QML_IMPORT_MAJOR_VERSION = 1
-
-
-@QmlElement
-class Console(QObject):
- """Output stuff on the console."""
-
- @Slot(str)
- @Slot('double')
- def output(self, s):
- print(s)
-
- @Slot(str)
- def outputStr(self, s):
- print(s)
-
- @Slot('double')
- def outputFloat(self, x):
- print(x)
-
-
-if __name__ == '__main__':
- app = QGuiApplication(sys.argv)
- view = QQuickView()
-
- qml_file = os.fspath(Path(__file__).resolve().parent / 'view.qml')
- view.setSource(QUrl.fromLocalFile(qml_file))
- if view.status() == QQuickView.Error:
- sys.exit(-1)
- view.show()
- res = app.exec()
- # Deleting the view before it goes out of scope is required to make sure all child QML instances
- # are destroyed in the correct order.
- del view
- sys.exit(res)
diff --git a/examples/declarative/signals/qmltopy1/view.qml b/examples/declarative/signals/qmltopy1/view.qml
deleted file mode 100644
index 6c2ede5a1..000000000
--- a/examples/declarative/signals/qmltopy1/view.qml
+++ /dev/null
@@ -1,91 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt for Python examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-import QtQuick
-
-import examples.signals.qmltopy1 1.0
-
-Rectangle {
- id: page
-
- width: 500; height: 200
- color: "lightgray"
-
- Console {
- id: pyConsole
- }
-
- Text {
- id: helloText
- text: "Hello world!"
- anchors.horizontalCenter: page.horizontalCenter
- y: 30
- font.pointSize: 24; font.bold: true
- }
-
- Rectangle {
- id: button
- width: 150; height: 40
- color: "darkgray"
- anchors.horizontalCenter: page.horizontalCenter
- y: 120
- MouseArea {
- id: buttonMouseArea
- objectName: "buttonMouseArea"
- anchors.fill: parent
- onClicked: {
- // once the "console" context has been declared,
- // slots can be called like functions
- pyConsole.outputFloat(123)
- pyConsole.outputStr("foobar")
- pyConsole.output(helloText.x)
- pyConsole.output(helloText.text)
- }
- }
- Text {
- id: buttonText
- text: "Press me!"
- anchors.horizontalCenter: button.horizontalCenter
- anchors.verticalCenter: button.verticalCenter
- font.pointSize: 16
- }
- }
-}
diff --git a/examples/declarative/signals/qmltopy2/main.py b/examples/declarative/signals/qmltopy2/main.py
deleted file mode 100644
index 21addc13b..000000000
--- a/examples/declarative/signals/qmltopy2/main.py
+++ /dev/null
@@ -1,83 +0,0 @@
-
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-import os
-from pathlib import Path
-import sys
-from PySide6.QtCore import QObject, QUrl, Slot
-from PySide6.QtGui import QGuiApplication
-from PySide6.QtQuick import QQuickView
-from PySide6.QtQml import QmlElement
-
-# To be used on the @QmlElement decorator
-# (QML_IMPORT_MINOR_VERSION is optional)
-QML_IMPORT_NAME = "examples.signals.qmltopy2"
-QML_IMPORT_MAJOR_VERSION = 1
-
-
-@QmlElement
-class RotateValue(QObject):
- def __init__(self):
- super().__init__()
- self.r = 0
-
- # If a slot returns a value, the return value type must be explicitly
- # defined in the decorator.
- @Slot(result=int)
- def val(self):
- self.r = self.r + 10
- return self.r
-
-
-if __name__ == '__main__':
- app = QGuiApplication(sys.argv)
- view = QQuickView()
-
- qml_file = os.fspath(Path(__file__).resolve().parent / 'view.qml')
- view.setSource(QUrl.fromLocalFile(qml_file))
- if view.status() == QQuickView.Error:
- sys.exit(-1)
- view.show()
- res = app.exec()
- # Deleting the view before it goes out of scope is required to make sure all child QML instances
- # are destroyed in the correct order.
- del view
- sys.exit(res)
diff --git a/examples/declarative/signals/qmltopy2/view.qml b/examples/declarative/signals/qmltopy2/view.qml
deleted file mode 100644
index d27c2f29c..000000000
--- a/examples/declarative/signals/qmltopy2/view.qml
+++ /dev/null
@@ -1,86 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt for Python examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-
-import examples.signals.qmltopy2 1.0
-
-Rectangle {
- id: page
-
- width: 500; height: 200
- color: "lightgray"
-
- RotateValue {
- id: rotatevalue
- }
-
- Text {
- id: helloText
- text: "Hello world!"
- anchors.horizontalCenter: page.horizontalCenter
- y: 30
- font.pointSize: 24; font.bold: true
- }
-
-
- Rectangle {
- id: button
- width: 150; height: 40
- color: "darkgray"
- anchors.horizontalCenter: page.horizontalCenter
- y: 120
- MouseArea {
- id: buttonMouseArea
- objectName: "buttonMouseArea"
- anchors.fill: parent
- onClicked: {
- helloText.rotation = rotatevalue.val()
- }
- }
- Text {
- id: buttonText
- text: "Press me!"
- anchors.horizontalCenter: button.horizontalCenter
- anchors.verticalCenter: button.verticalCenter
- font.pointSize: 16
- }
- }
-}
diff --git a/examples/declarative/signals/qmltopy3/main.py b/examples/declarative/signals/qmltopy3/main.py
deleted file mode 100644
index 0f6523125..000000000
--- a/examples/declarative/signals/qmltopy3/main.py
+++ /dev/null
@@ -1,71 +0,0 @@
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-import os
-from pathlib import Path
-import sys
-from PySide6.QtCore import QUrl
-from PySide6.QtGui import QGuiApplication
-from PySide6.QtQuick import QQuickView
-
-
-def sayThis(s):
- print(s)
-
-
-if __name__ == '__main__':
- app = QGuiApplication(sys.argv)
- view = QQuickView()
- qml_file = os.fspath(Path(__file__).resolve().parent / 'view.qml')
- view.setSource(QUrl.fromLocalFile(qml_file))
- if view.status() == QQuickView.Error:
- sys.exit(-1)
-
- root = view.rootObject()
- root.textRotationChanged.connect(sayThis)
- root.buttonClicked.connect(lambda: sayThis("clicked button (QML top-level signal)"))
-
- view.show()
- res = app.exec()
- # Deleting the view before it goes out of scope is required to make sure all child QML instances
- # are destroyed in the correct order.
- del view
- sys.exit(res)
diff --git a/examples/declarative/signals/qmltopy3/view.qml b/examples/declarative/signals/qmltopy3/view.qml
deleted file mode 100644
index e2f27385e..000000000
--- a/examples/declarative/signals/qmltopy3/view.qml
+++ /dev/null
@@ -1,103 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt for Python examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-
-Rectangle {
- id: page
-
- signal buttonClicked
- signal textRotationChanged(double rot)
-
- width: 500; height: 200
- color: "lightgray"
-
- Text {
- id: helloText
- text: "Hello world!"
- y: 30
- x: page.width/2-width/2
- font.pointSize: 24; font.bold: true
- onRotationChanged: textRotationChanged(rotation)
-
- states: State {
- name: "down"; when: buttonMouseArea.pressed === true
- PropertyChanges {
- target: helloText;
- rotation: 180;
- y: 100;
- }
- }
-
- transitions: Transition {
- from: ""; to: "down"; reversible: true
- ParallelAnimation {
- NumberAnimation {
- properties: "y,rotation"
- duration: 500
- easing.type: Easing.InOutQuad
- }
- }
- }
- }
-
- Rectangle {
- id: button
- width: 150; height: 40
- color: "darkgray"
- anchors.horizontalCenter: page.horizontalCenter
- y: 120
- MouseArea {
- id: buttonMouseArea
- objectName: "buttonMouseArea"
- anchors.fill: parent
- onClicked: {
- buttonClicked()
- }
- }
- Text {
- id: buttonText
- text: "Press me!"
- anchors.horizontalCenter: button.horizontalCenter
- anchors.verticalCenter: button.verticalCenter
- font.pointSize: 16
- }
- }
-}
diff --git a/examples/declarative/signals/qmltopy4/main.py b/examples/declarative/signals/qmltopy4/main.py
deleted file mode 100644
index 96183c02d..000000000
--- a/examples/declarative/signals/qmltopy4/main.py
+++ /dev/null
@@ -1,71 +0,0 @@
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-import os
-from pathlib import Path
-import sys
-from PySide6.QtCore import QObject, QUrl
-from PySide6.QtGui import QGuiApplication
-from PySide6.QtQuick import QQuickView
-
-
-def sayThis(s):
- print(s)
-
-
-if __name__ == '__main__':
- app = QGuiApplication(sys.argv)
- view = QQuickView()
- qml_file = os.fspath(Path(__file__).resolve().parent / 'view.qml')
- view.setSource(QUrl.fromLocalFile(qml_file))
- if view.status() == QQuickView.Error:
- sys.exit(-1)
-
- root = view.rootObject()
- button = root.findChild(QObject, "buttonMouseArea")
- button.clicked.connect(lambda: sayThis("clicked button (signal directly connected)"))
-
- view.show()
- res = app.exec()
- # Deleting the view before it goes out of scope is required to make sure all child QML instances
- # are destroyed in the correct order.
- del view
- sys.exit(res)
diff --git a/examples/declarative/signals/qmltopy4/view.qml b/examples/declarative/signals/qmltopy4/view.qml
deleted file mode 100644
index 8b876277d..000000000
--- a/examples/declarative/signals/qmltopy4/view.qml
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt for Python examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-
-Rectangle {
- id: page
-
- width: 500; height: 200
- color: "lightgray"
-
- Rectangle {
- id: button
- width: 150; height: 40
- color: "darkgray"
- anchors.horizontalCenter: page.horizontalCenter
- anchors.verticalCenter: page.verticalCenter
- MouseArea {
- id: buttonMouseArea
- objectName: "buttonMouseArea"
- anchors.fill: parent
- }
- Text {
- id: buttonText
- text: "Press me!"
- anchors.horizontalCenter: button.horizontalCenter
- anchors.verticalCenter: button.verticalCenter
- font.pointSize: 16
- }
- }
-}
diff --git a/examples/declarative/stringlistmodel/doc/stringlistmodel.rst b/examples/declarative/stringlistmodel/doc/stringlistmodel.rst
deleted file mode 100644
index 4c00ed130..000000000
--- a/examples/declarative/stringlistmodel/doc/stringlistmodel.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-String List Model Example
-=========================
-
-A model may be a simple 'list',
-which provides the contents of the list via the modelData role.
-
-.. image:: stringlistmodel.png
- :width: 400
- :alt: String List Model Screenshot
diff --git a/examples/declarative/stringlistmodel/stringlistmodel.py b/examples/declarative/stringlistmodel/stringlistmodel.py
deleted file mode 100644
index 4e5e54466..000000000
--- a/examples/declarative/stringlistmodel/stringlistmodel.py
+++ /dev/null
@@ -1,64 +0,0 @@
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-from pathlib import Path
-import sys
-from PySide6.QtCore import QUrl
-from PySide6.QtGui import QGuiApplication
-from PySide6.QtQuick import QQuickView
-
-# This example illustrates exposing a QStringList as a model in QML
-
-if __name__ == '__main__':
- app = QGuiApplication(sys.argv)
-
- dataList = ["Item 1", "Item 2", "Item 3", "Item 4"]
-
- view = QQuickView()
- view.setInitialProperties({"model": dataList })
-
- qml_file = Path(__file__).parent / "view.qml"
- view.setSource(QUrl.fromLocalFile(qml_file))
- view.show()
-
- r = app.exec()
- del view
- sys.exit(r)
diff --git a/examples/declarative/stringlistmodel/view.qml b/examples/declarative/stringlistmodel/view.qml
deleted file mode 100644
index 1312aca01..000000000
--- a/examples/declarative/stringlistmodel/view.qml
+++ /dev/null
@@ -1,54 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt for Python examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-
-ListView {
- width: 100
- height: 100
- required model
-
- delegate: Rectangle {
- required property string modelData
- height: 25
- width: 100
- Text { text: parent.modelData }
- }
-}
diff --git a/examples/declarative/textproperties/main.py b/examples/declarative/textproperties/main.py
deleted file mode 100644
index 0408313d3..000000000
--- a/examples/declarative/textproperties/main.py
+++ /dev/null
@@ -1,113 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-import sys
-from pathlib import Path
-
-from PySide6.QtCore import QObject, Slot
-from PySide6.QtGui import QGuiApplication
-from PySide6.QtQml import QQmlApplicationEngine, QmlElement
-from PySide6.QtQuickControls2 import QQuickStyle
-
-
-# To be used on the @QmlElement decorator
-# (QML_IMPORT_MINOR_VERSION is optional)
-QML_IMPORT_NAME = "io.qt.textproperties"
-QML_IMPORT_MAJOR_VERSION = 1
-
-
-@QmlElement
-class Bridge(QObject):
-
- @Slot(str, result=str)
- def getColor(self, s):
- if s.lower() == "red":
- return "#ef9a9a"
- elif s.lower() == "green":
- return "#a5d6a7"
- elif s.lower() == "blue":
- return "#90caf9"
- else:
- return "white"
-
- @Slot(float, result=int)
- def getSize(self, s):
- size = int(s * 34)
- if size <= 0:
- return 1
- else:
- return size
-
- @Slot(str, result=bool)
- def getItalic(self, s):
- if s.lower() == "italic":
- return True
- else:
- return False
-
- @Slot(str, result=bool)
- def getBold(self, s):
- if s.lower() == "bold":
- return True
- else:
- return False
-
- @Slot(str, result=bool)
- def getUnderline(self, s):
- if s.lower() == "underline":
- return True
- else:
- return False
-
-
-if __name__ == '__main__':
- app = QGuiApplication(sys.argv)
- QQuickStyle.setStyle("Material")
- engine = QQmlApplicationEngine()
-
- # Get the path of the current directory, and then add the name
- # of the QML file, to load it.
- qml_file = Path(__file__).parent / 'view.qml'
- engine.load(qml_file)
-
- if not engine.rootObjects():
- sys.exit(-1)
-
- sys.exit(app.exec())
diff --git a/examples/declarative/textproperties/view.qml b/examples/declarative/textproperties/view.qml
deleted file mode 100644
index 567bd4578..000000000
--- a/examples/declarative/textproperties/view.qml
+++ /dev/null
@@ -1,197 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt for Python examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-import QtQuick
-import QtQuick.Layouts
-import QtQuick.Controls
-import QtQuick.Window
-import QtQuick.Controls.Material
-
-import io.qt.textproperties
-
-ApplicationWindow {
- id: page
- width: 800
- height: 400
- visible: true
- Material.theme: Material.Dark
- Material.accent: Material.Red
-
- Bridge {
- id: bridge
- }
-
- GridLayout {
- id: grid
- columns: 2
- rows: 3
-
- ColumnLayout {
- spacing: 2
- Layout.columnSpan: 1
- Layout.preferredWidth: 400
-
- Text {
- id: leftlabel
- Layout.alignment: Qt.AlignHCenter
- color: "white"
- font.pointSize: 16
- text: "Qt for Python"
- Layout.preferredHeight: 100
- Material.accent: Material.Green
- }
-
- RadioButton {
- id: italic
- Layout.alignment: Qt.AlignLeft
- text: "Italic"
- onToggled: {
- leftlabel.font.italic = bridge.getItalic(italic.text)
- leftlabel.font.bold = bridge.getBold(italic.text)
- leftlabel.font.underline = bridge.getUnderline(italic.text)
-
- }
- }
- RadioButton {
- id: bold
- Layout.alignment: Qt.AlignLeft
- text: "Bold"
- onToggled: {
- leftlabel.font.italic = bridge.getItalic(bold.text)
- leftlabel.font.bold = bridge.getBold(bold.text)
- leftlabel.font.underline = bridge.getUnderline(bold.text)
- }
- }
- RadioButton {
- id: underline
- Layout.alignment: Qt.AlignLeft
- text: "Underline"
- onToggled: {
- leftlabel.font.italic = bridge.getItalic(underline.text)
- leftlabel.font.bold = bridge.getBold(underline.text)
- leftlabel.font.underline = bridge.getUnderline(underline.text)
- }
- }
- RadioButton {
- id: noneradio
- Layout.alignment: Qt.AlignLeft
- text: "None"
- checked: true
- onToggled: {
- leftlabel.font.italic = bridge.getItalic(noneradio.text)
- leftlabel.font.bold = bridge.getBold(noneradio.text)
- leftlabel.font.underline = bridge.getUnderline(noneradio.text)
- }
- }
- }
-
- ColumnLayout {
- id: rightcolumn
- spacing: 2
- Layout.columnSpan: 1
- Layout.preferredWidth: 400
- Layout.preferredHeight: 400
- Layout.fillWidth: true
-
- RowLayout {
- Layout.alignment: Qt.AlignVCenter | Qt.AlignHCenter
-
-
- Button {
- id: red
- text: "Red"
- highlighted: true
- Material.accent: Material.Red
- onClicked: {
- leftlabel.color = bridge.getColor(red.text)
- }
- }
- Button {
- id: green
- text: "Green"
- highlighted: true
- Material.accent: Material.Green
- onClicked: {
- leftlabel.color = bridge.getColor(green.text)
- }
- }
- Button {
- id: blue
- text: "Blue"
- highlighted: true
- Material.accent: Material.Blue
- onClicked: {
- leftlabel.color = bridge.getColor(blue.text)
- }
- }
- Button {
- id: nonebutton
- text: "None"
- highlighted: true
- Material.accent: Material.BlueGrey
- onClicked: {
- leftlabel.color = bridge.getColor(nonebutton.text)
- }
- }
- }
- RowLayout {
- Layout.fillWidth: true
- Layout.alignment: Qt.AlignVCenter | Qt.AlignHCenter
- Text {
- id: rightlabel
- color: "white"
- Layout.alignment: Qt.AlignLeft
- text: "Font size"
- Material.accent: Material.White
- }
- Slider {
- width: rightcolumn.width*0.6
- Layout.alignment: Qt.AlignRight
- id: slider
- value: 0.5
- onValueChanged: {
- leftlabel.font.pointSize = bridge.getSize(value)
- }
- }
- }
- }
- }
-}
diff --git a/examples/declarative/usingmodel/doc/usingmodel.rst b/examples/declarative/usingmodel/doc/usingmodel.rst
deleted file mode 100644
index 11b476d09..000000000
--- a/examples/declarative/usingmodel/doc/usingmodel.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-Using Model Example
-===================
-
-A Python application that demonstrates how to use a :ref:`QAbstractListModel`
-with QML.
-
-.. image:: usingmodel.png
- :width: 400
- :alt: Using Model Screenshot
diff --git a/examples/declarative/usingmodel/usingmodel.py b/examples/declarative/usingmodel/usingmodel.py
deleted file mode 100644
index 3d5a03964..000000000
--- a/examples/declarative/usingmodel/usingmodel.py
+++ /dev/null
@@ -1,108 +0,0 @@
-
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-import os
-from pathlib import Path
-import sys
-from PySide6.QtCore import QAbstractListModel, Qt, QUrl, QByteArray
-from PySide6.QtGui import QGuiApplication
-from PySide6.QtQuick import QQuickView
-from PySide6.QtQml import qmlRegisterSingletonType
-
-
-class PersonModel (QAbstractListModel):
- MyRole = Qt.UserRole + 1
-
- def __init__(self, parent=None):
- QAbstractListModel.__init__(self, parent)
- self._data = []
-
- def roleNames(self):
- roles = {
- PersonModel.MyRole: QByteArray(b'modelData'),
- Qt.DisplayRole: QByteArray(b'display')
- }
- return roles
-
- def rowCount(self, index):
- return len(self._data)
-
- def data(self, index, role):
- d = self._data[index.row()]
-
- if role == Qt.DisplayRole:
- return d['name']
- elif role == Qt.DecorationRole:
- return Qt.black
- elif role == PersonModel.MyRole:
- return d['myrole']
- return None
-
- def populate(self, data=None):
- for item in data:
- self._data.append(item)
-
-
-def model_callback(engine):
- my_model = PersonModel()
- data = [{'name': 'Qt', 'myrole': 'role1'},
- {'name': 'PySide', 'myrole': 'role2'}]
- my_model.populate(data)
- return my_model
-
-
-if __name__ == '__main__':
- app = QGuiApplication(sys.argv)
- view = QQuickView()
- view.setResizeMode(QQuickView.SizeRootObjectToView)
-
- qmlRegisterSingletonType(PersonModel, "PersonModel", 1, 0, "MyModel", model_callback)
- qml_file = os.fspath(Path(__file__).resolve().parent / 'view.qml')
- view.setSource(QUrl.fromLocalFile(qml_file))
- if view.status() == QQuickView.Error:
- sys.exit(-1)
- view.show()
-
- r = app.exec()
- # Deleting the view before it goes out of scope is required to make sure all child QML instances
- # are destroyed in the correct order.
- del view
- sys.exit(r)
diff --git a/examples/declarative/usingmodel/view.qml b/examples/declarative/usingmodel/view.qml
deleted file mode 100644
index 4e1368e34..000000000
--- a/examples/declarative/usingmodel/view.qml
+++ /dev/null
@@ -1,66 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt for Python examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import PersonModel
-
-ListView {
- width: 100
- height: 100
- anchors.fill: parent
- model: MyModel
- delegate: Component {
- Rectangle {
- height: 25
- width: 100
- Text {
- function displayText() {
- var result = ""
- if (typeof display !== "undefined")
- result = display + ": "
- result += modelData
- return result
- }
-
- text: displayText()
- }
- }
- }
-}
diff --git a/examples/demos/colorpaletteclient/ColorPalette/ColorDialogDelete.qml b/examples/demos/colorpaletteclient/ColorPalette/ColorDialogDelete.qml
new file mode 100644
index 000000000..0fd26e4d0
--- /dev/null
+++ b/examples/demos/colorpaletteclient/ColorPalette/ColorDialogDelete.qml
@@ -0,0 +1,71 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+
+import QtExampleStyle
+
+Popup {
+ id: colorDeleter
+ padding: 10
+ modal: true
+ focus: true
+ anchors.centerIn: parent
+ closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent
+ signal deleteClicked(int cid)
+
+ property int colorId: -1
+
+ property string colorName: ""
+
+ function maybeDelete(color_id, name) {
+ colorName = name
+ colorId = color_id
+ open()
+ }
+
+
+ ColumnLayout {
+ anchors.fill: parent
+ spacing: 10
+
+ Text {
+ color: "#222222"
+ text: qsTr("Delete Color?")
+ font.pixelSize: 16
+ font.bold: true
+ }
+
+ Text {
+ color: "#222222"
+ text: qsTr("Are you sure, you want to delete color") + " \"" + colorDeleter.colorName + "\"?"
+ font.pixelSize: 12
+ }
+
+ RowLayout {
+ Layout.fillWidth: true
+ spacing: 10
+
+ Button {
+ Layout.fillWidth: true
+ text: qsTr("Cancel")
+ onClicked: colorDeleter.close()
+ }
+
+ Button {
+ Layout.fillWidth: true
+ text: qsTr("Delete")
+
+ buttonColor: "#CC1414"
+ textColor: "#FFFFFF"
+
+ onClicked: {
+ colorDeleter.deleteClicked(colorDeleter.colorId)
+ colorDeleter.close()
+ }
+ }
+ }
+ }
+}
diff --git a/examples/demos/colorpaletteclient/ColorPalette/ColorDialogEditor.qml b/examples/demos/colorpaletteclient/ColorPalette/ColorDialogEditor.qml
new file mode 100644
index 000000000..cba6e5a76
--- /dev/null
+++ b/examples/demos/colorpaletteclient/ColorPalette/ColorDialogEditor.qml
@@ -0,0 +1,139 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import QtQuick.Dialogs
+
+import QtExampleStyle
+
+Popup {
+ id: colorEditor
+ // Popup for adding or updating a color
+ padding: 10
+ modal: true
+ focus: true
+ anchors.centerIn: parent
+ closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent
+ signal colorAdded(string name, string color, string pantone_value)
+ signal colorUpdated(string name, string color, string pantone_value, int cid)
+
+ property bool newColor: true
+ property int colorId: -1
+ property alias currentColor: colordialogButton.buttonColor
+
+ function createNewColor() {
+ newColor = true
+ colorNameField.text = "cute green"
+ colorRGBField.text = "#41cd52"
+ colorPantoneField.text = "PMS 802C"
+ open()
+ }
+
+ function updateColor(color_id, name, color, pantone_value) {
+ newColor = false
+ colorNameField.text = name
+ currentColor = color
+ colorPantoneField.text = pantone_value
+ colorId = color_id
+ open()
+ }
+
+ ColorDialog {
+ id: colorDialog
+ title: qsTr("Choose a color")
+ onAccepted: {
+ colorEditor.currentColor = Qt.color(colorDialog.selectedColor)
+ colorDialog.close()
+ }
+ onRejected: {
+ colorDialog.close()
+ }
+ }
+
+ ColumnLayout {
+ anchors.fill: parent
+ spacing: 10
+
+ GridLayout {
+ columns: 2
+ rowSpacing: 10
+ columnSpacing: 10
+
+ Label {
+ text: qsTr("Color Name")
+ }
+ TextField {
+ id: colorNameField
+ padding: 10
+ }
+
+ Label {
+ text: qsTr("Pantone Value")
+ }
+ TextField {
+ id: colorPantoneField
+ padding: 10
+ }
+
+ Label {
+ text: qsTr("Rgb Value")
+ }
+
+ TextField {
+ id: colorRGBField
+ text: colorEditor.currentColor.toString()
+ readOnly: true
+ padding: 10
+ }
+ }
+
+ Button {
+ id: colordialogButton
+ Layout.fillWidth: true
+ Layout.preferredHeight: 30
+ text: qsTr("Set Color")
+ textColor: isColorDark(buttonColor) ? "#E6E6E6" : "#191919"
+
+ onClicked: colorDialog.open()
+
+ function isColorDark(color) {
+ return (0.2125 * color.r + 0.7154 * color.g + 0.0721 * color.b) < 0.5;
+ }
+ }
+
+ RowLayout {
+ Layout.fillWidth: true
+ spacing: 10
+
+ Button {
+ text: qsTr("Cancel")
+ onClicked: colorEditor.close()
+ Layout.fillWidth: true
+ }
+
+ Button {
+ Layout.fillWidth: true
+ text: colorEditor.newColor ? qsTr("Add") : qsTr("Update")
+
+ buttonColor: "#2CDE85"
+ textColor: "#FFFFFF"
+
+ onClicked: {
+ if (colorEditor.newColor) {
+ colorEditor.colorAdded(colorNameField.text,
+ colorRGBField.text,
+ colorPantoneField.text)
+ } else {
+ colorEditor.colorUpdated(colorNameField.text,
+ colorRGBField.text,
+ colorPantoneField.text,
+ colorEditor.colorId)
+ }
+ colorEditor.close()
+ }
+ }
+ }
+ }
+}
diff --git a/examples/demos/colorpaletteclient/ColorPalette/ColorView.qml b/examples/demos/colorpaletteclient/ColorPalette/ColorView.qml
new file mode 100644
index 000000000..c6ad36f80
--- /dev/null
+++ b/examples/demos/colorpaletteclient/ColorPalette/ColorView.qml
@@ -0,0 +1,381 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+pragma ComponentBehavior: Bound
+
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import QtQuick.Effects
+import QtQuick.Shapes
+
+import QtExampleStyle
+import ColorPalette
+
+Item {
+ id: root
+ required property BasicLogin loginService
+ required property PaginatedColorsResource colors
+ required property PaginatedColorUsersResource colorViewUsers
+
+ ColorDialogEditor {
+ id: colorPopup
+ onColorAdded: (colorNameField, colorRGBField, colorPantoneField) => {
+ root.colors.add({"name" : colorNameField,
+ "color" : colorRGBField,
+ "pantone_value" : colorPantoneField})
+ }
+
+ onColorUpdated: (colorNameField, colorRGBField, colorPantoneField, cid) => {
+ root.colors.update({"name" : colorNameField,
+ "color" : colorRGBField,
+ "pantone_value" : colorPantoneField},
+ cid)
+ }
+ }
+
+ ColorDialogDelete {
+ id: colorDeletePopup
+ onDeleteClicked: (cid) => {
+ root.colors.remove(cid)
+ }
+ }
+
+ ColumnLayout {
+ // The main application layout
+ anchors.fill :parent
+
+ ToolBar {
+ Layout.fillWidth: true
+ Layout.minimumHeight: 25 + 4
+
+ UserMenu {
+ id: userMenu
+
+ userMenuUsers: root.colorViewUsers
+ userLoginService: root.loginService
+ }
+
+ RowLayout {
+ anchors.fill: parent
+ Text {
+ text: qsTr("QHTTP Server")
+ font.pixelSize: 8
+ color: "#667085"
+ }
+ Item { Layout.fillWidth: true }
+
+ AbstractButton {
+ id: loginButton
+ Layout.preferredWidth: 25
+ Layout.preferredHeight: 25
+ Item {
+ id: userImageCliped
+ anchors.left: parent.left
+ anchors.verticalCenter: parent.verticalCenter
+ width: 25
+ height: 25
+
+ Image {
+ id: userImage
+ anchors.fill: parent
+ source: getCurrentUserImage()
+ visible: false
+
+ function getCurrentUserImage() {
+ if (root.loginService.loggedIn)
+ return users.avatarForEmail(loginService.user)
+ return "qrc:/qt/qml/ColorPalette/icons/user.svg";
+ }
+ }
+
+ Image {
+ id: userMask
+ source: "qrc:/qt/qml/ColorPalette/icons/userMask.svg"
+ anchors.fill: userImage
+ anchors.margins: 4
+ visible: false
+ }
+
+ MultiEffect {
+ source: userImage
+ anchors.fill: userImage
+ maskSource: userMask
+ maskEnabled: true
+ }
+ }
+
+ onClicked: {
+ userMenu.open()
+ var pos = mapToGlobal(Qt.point(x, y))
+ pos = userMenu.parent.mapFromGlobal(pos)
+ userMenu.x = x - userMenu.width + 25 + 3
+ userMenu.y = y + 25 + 3
+ }
+
+ Shape {
+ id: bubble
+ x: -text.width - 25
+ anchors.margins: 3
+
+ preferredRendererType: Shape.CurveRenderer
+
+ visible: !root.loginService.loggedIn
+
+ ShapePath {
+ strokeWidth: 0
+ fillColor: "#667085"
+ startX: 5; startY: 0
+ PathLine { x: 5 + text.width + 6; y: 0 }
+ PathArc { x: 10 + text.width + 6; y: 5; radiusX: 5; radiusY: 5}
+ // arrow
+ PathLine { x: 10 + text.width + 6; y: 8 + text.height / 2 - 6 }
+ PathLine { x: 10 + text.width + 6 + 6; y: 8 + text.height / 2 }
+ PathLine { x: 10 + text.width + 6; y: 8 + text.height / 2 + 6}
+ PathLine { x: 10 + text.width + 6; y: 5 + text.height + 6 }
+ // end arrow
+ PathArc { x: 5 + text.width + 6; y: 10 + text.height + 6 ; radiusX: 5; radiusY: 5}
+ PathLine { x: 5; y: 10 + text.height + 6 }
+ PathArc { x: 0; y: 5 + text.height + 6 ; radiusX: 5; radiusY: 5}
+ PathLine { x: 0; y: 5 }
+ PathArc { x: 5; y: 0 ; radiusX: 5; radiusY: 5}
+ }
+ Text {
+ x: 8
+ y: 8
+ id: text
+ color: "white"
+ text: qsTr("Log in to edit")
+ font.bold: true
+ horizontalAlignment: Qt.AlignHCenter
+ verticalAlignment: Qt.AlignVCenter
+ }
+ }
+ }
+ }
+
+ Image {
+ anchors.centerIn: parent
+ source: "qrc:/qt/qml/ColorPalette/icons/qt.png"
+ fillMode: Image.PreserveAspectFit
+ height: 25
+ }
+
+ }
+ ToolBar {
+ Layout.fillWidth: true
+ Layout.minimumHeight: 32
+
+ RowLayout {
+ anchors.fill: parent
+ Text {
+ Layout.alignment: Qt.AlignVCenter
+ text: qsTr("Color Palette")
+ font.pixelSize: 14
+ font.bold: true
+ color: "#667085"
+ }
+
+ Item { Layout.fillWidth: true }
+
+ AbstractButton {
+ Layout.preferredWidth: 25
+ Layout.preferredHeight: 25
+ Layout.alignment: Qt.AlignVCenter
+
+ Rectangle {
+ anchors.fill: parent
+ radius: 4
+ color: "#192CDE85"
+ border.color: "#DDE2E8"
+ border.width: 1
+ }
+
+ Image {
+ source: UIStyle.iconPath("plus")
+ fillMode: Image.PreserveAspectFit
+ anchors.fill: parent
+ sourceSize.width: width
+ sourceSize.height: height
+
+ }
+ visible: root.loginService.loggedIn
+ onClicked: colorPopup.createNewColor()
+ }
+
+ AbstractButton {
+ Layout.preferredWidth: 25
+ Layout.preferredHeight: 25
+ Layout.alignment: Qt.AlignVCenter
+
+ Rectangle {
+ anchors.fill: parent
+ radius: 4
+ color: "#192CDE85"
+ border.color: "#DDE2E8"
+ border.width: 1
+ }
+
+ Image {
+ source: UIStyle.iconPath("update")
+ fillMode: Image.PreserveAspectFit
+ anchors.fill: parent
+ sourceSize.width: width
+ sourceSize.height: height
+ }
+
+ onClicked: {
+ root.colors.refreshCurrentPage()
+ root.colorViewUsers.refreshCurrentPage()
+ }
+ }
+ }
+ }
+
+
+
+ //! [View and model]
+ ListView {
+ id: colorListView
+
+ model: root.colors.model
+ //! [View and model]
+ footerPositioning: ListView.OverlayFooter
+ spacing: 15
+ clip: true
+
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+
+ header: Rectangle {
+ height: 32
+ width: parent.width
+ color: "#F0F1F3"
+
+ RowLayout {
+ anchors.fill: parent
+
+ component HeaderText : Text {
+ Layout.alignment: Qt.AlignVCenter
+ horizontalAlignment: Qt.AlignHCenter
+
+ font.pixelSize: 12
+ color: "#667085"
+ }
+ HeaderText {
+ id: headerName
+ text: qsTr("Color Name")
+ Layout.preferredWidth: colorListView.width * 0.3
+ }
+ HeaderText {
+ id: headerRgb
+ text: qsTr("Rgb Value")
+ Layout.preferredWidth: colorListView.width * 0.25
+ }
+ HeaderText {
+ id: headerPantone
+ text: qsTr("Pantone Value")
+ Layout.preferredWidth: colorListView.width * 0.25
+ }
+ HeaderText {
+ id: headerAction
+ text: qsTr("Action")
+ Layout.preferredWidth: colorListView.width * 0.2
+ }
+ }
+ }
+
+ delegate: Item {
+ id: colorInfo
+
+ required property int color_id
+ required property string name
+ required property string color
+ required property string pantone_value
+
+ width: colorListView.width
+ height: 25
+ RowLayout {
+ anchors.fill: parent
+ anchors.leftMargin: 5
+ anchors.rightMargin: 5
+
+ Rectangle {
+ id: colorSample
+ Layout.alignment: Qt.AlignVCenter
+ implicitWidth: 36
+ implicitHeight: 21
+ radius: 6
+ color: colorInfo.color
+ }
+
+ Text {
+ Layout.preferredWidth: colorInfo.width * 0.3 - colorSample.width
+ horizontalAlignment: Qt.AlignLeft
+ leftPadding: 5
+ text: colorInfo.name
+ }
+
+ Text {
+ Layout.preferredWidth: colorInfo.width * 0.25
+ horizontalAlignment: Qt.AlignHCenter
+ text: colorInfo.color
+ }
+
+ Text {
+ Layout.preferredWidth: colorInfo.width * 0.25
+ horizontalAlignment: Qt.AlignHCenter
+ text: colorInfo.pantone_value
+ }
+
+ Item {
+ Layout.maximumHeight: 28
+ implicitHeight: buttonBox.implicitHeight
+ implicitWidth: buttonBox.implicitWidth
+
+ RowLayout {
+ id: buttonBox
+ anchors.fill: parent
+ ToolButton {
+ icon.source: UIStyle.iconPath("delete")
+ enabled: root.loginService.loggedIn
+ onClicked: colorDeletePopup.maybeDelete(color_id, name)
+ }
+ ToolButton {
+ icon.source: UIStyle.iconPath("edit")
+ enabled: root.loginService.loggedIn
+ onClicked: colorPopup.updateColor(color_id, name, color, pantone_value)
+ }
+ }
+ }
+ }
+ }
+
+ footer: ToolBar {
+ // Paginate buttons if more than one page
+ visible: root.colors.pages > 1
+ implicitWidth: parent.width
+
+ RowLayout {
+ anchors.fill: parent
+
+ Item { Layout.fillWidth: true /* spacer */ }
+
+ Repeater {
+ model: root.colors.pages
+
+ ToolButton {
+ text: page
+ font.bold: root.colors.page === page
+
+ required property int index
+ readonly property int page: (index + 1)
+
+ onClicked: root.colors.page = page
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/examples/demos/colorpaletteclient/ColorPalette/Main.qml b/examples/demos/colorpaletteclient/ColorPalette/Main.qml
new file mode 100644
index 000000000..ae1e85533
--- /dev/null
+++ b/examples/demos/colorpaletteclient/ColorPalette/Main.qml
@@ -0,0 +1,62 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+pragma ComponentBehavior: Bound
+
+import QtQuick
+
+import ColorPalette
+
+Window {
+ id: window
+ width: 500
+ height: 400
+ visible: true
+ title: qsTr("Color Palette Client")
+
+ enum DataView {
+ UserView = 0,
+ ColorView = 1
+ }
+
+ ServerSelection {
+ id: serverview
+ anchors.fill: parent
+ onServerSelected: {colorview.visible = true; serverview.visible = false}
+ colorResources: colors
+ restPalette: paletteService
+ colorUsers: users
+ }
+
+ ColorView {
+ id: colorview
+ anchors.fill: parent
+ visible: false
+ loginService: colorLogin
+ colors: colors
+ colorViewUsers: users
+ }
+
+ //! [RestService QML element]
+ RestService {
+ id: paletteService
+
+ PaginatedColorUsersResource {
+ id: users
+ path: "/api/users"
+ }
+
+ PaginatedColorsResource {
+ id: colors
+ path: "/api/unknown"
+ }
+
+ BasicLogin {
+ id: colorLogin
+ loginPath: "/api/login"
+ logoutPath: "/api/logout"
+ }
+ }
+ //! [RestService QML element]
+
+}
diff --git a/examples/demos/colorpaletteclient/ColorPalette/ServerSelection.qml b/examples/demos/colorpaletteclient/ColorPalette/ServerSelection.qml
new file mode 100644
index 000000000..c170773cc
--- /dev/null
+++ b/examples/demos/colorpaletteclient/ColorPalette/ServerSelection.qml
@@ -0,0 +1,241 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+
+import ColorPalette
+import QtExampleStyle
+
+pragma ComponentBehavior: Bound
+
+Item {
+ id: root
+ // A popup for selecting the server URL
+
+ signal serverSelected()
+
+ required property PaginatedColorsResource colorResources
+ required property PaginatedColorUsersResource colorUsers
+ required property RestService restPalette
+
+ Connections {
+ target: root.colorResources
+ // Closes the URL selection popup once we have received data successfully
+ function onDataUpdated() {
+ fetchTester.stop()
+ root.serverSelected()
+ }
+ }
+
+
+ ListModel {
+ id: server
+ ListElement {
+ title: qsTr("Public REST API Test Server")
+ url: "https://reqres.in"
+ icon: "qrc:/qt/qml/ColorPalette/icons/testserver.png"
+ }
+ ListElement {
+ title: qsTr("Qt-based REST API server")
+ url: "http://127.0.0.1:49425"
+ icon: "qrc:/qt/qml/ColorPalette/icons/qt.png"
+ }
+ }
+
+
+ ColumnLayout {
+ anchors.fill: parent
+ anchors.margins: 20
+ spacing: 10
+
+ Image {
+ Layout.alignment: Qt.AlignHCenter
+ source: "qrc:/qt/qml/ColorPalette/icons/qt.png"
+ fillMode: Image.PreserveAspectFit
+ Layout.preferredWidth: 20
+ }
+
+ Label {
+ text: qsTr("Choose a server")
+ Layout.alignment: Qt.AlignHCenter
+ font.pixelSize: 24
+ }
+
+ component ServerListDelegate: Rectangle {
+ id: serverListDelegate
+ required property string title
+ required property string url
+ required property string icon
+ required property int index
+
+ radius: 10
+ color: "#00000000"
+
+ border.color: ListView.view.currentIndex === index ? "#2CDE85" : "#E0E2E7"
+ border.width: 2
+
+ implicitWidth: 180
+ implicitHeight: 100
+
+ Rectangle {
+ id: img
+ anchors.left: parent.left
+ anchors.top: parent.top
+ anchors.topMargin: 10
+ anchors.leftMargin: 20
+
+ width: 30
+ height: 30
+ radius: 200
+ border. color: "#E7F4EE"
+ border.width: 5
+
+ Image {
+ anchors.centerIn: parent
+ source: serverListDelegate.icon
+ width: 15
+ height: 15
+ fillMode: Image.PreserveAspectFit
+ smooth: true
+ }
+ }
+
+ Text {
+ text: parent.url
+
+ anchors.left: parent.left
+ anchors.top: img.bottom
+ anchors.topMargin: 10
+ anchors.leftMargin: 20
+ color: "#667085"
+ font.pixelSize: 13
+ }
+ Text {
+ text: parent.title
+
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.bottom: parent.bottom
+ anchors.bottomMargin: 10
+ color: "#222222"
+ font.pixelSize: 11
+ font.bold: true
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: serverList.currentIndex = serverListDelegate.index;
+ }
+ }
+
+ ListView {
+ id: serverList
+ Layout.alignment: Qt.AlignHCenter
+ Layout.minimumWidth: 180 * server.count + 20
+ Layout.minimumHeight: 100
+ orientation: ListView.Horizontal
+
+ model: server
+ spacing: 20
+
+ delegate: ServerListDelegate {}
+ }
+
+ Button {
+ Layout.alignment: Qt.AlignHCenter
+ text: restPalette.sslSupported ? qsTr("Connect (SSL)") : qsTr("Connect")
+
+ buttonColor: "#2CDE85"
+ textColor: "#FFFFFF"
+
+ onClicked: {
+ busyIndicatorPopup.title = (serverList.currentItem as ServerListDelegate).title
+ busyIndicatorPopup.icon = (serverList.currentItem as ServerListDelegate).icon
+ busyIndicatorPopup.open()
+
+ fetchTester.test((serverList.currentItem as ServerListDelegate).url)
+ }
+ }
+
+ Timer {
+ id: fetchTester
+ interval: 2000
+
+ function test(url) {
+ root.restPalette.url = url
+ root.colorResources.refreshCurrentPage()
+ root.colorUsers.refreshCurrentPage()
+ start()
+ }
+ onTriggered: busyIndicatorPopup.close()
+ }
+ }
+
+ onVisibleChanged: {if (!visible) busyIndicatorPopup.close();}
+
+ Popup {
+ id: busyIndicatorPopup
+ padding: 10
+ modal: true
+ focus: true
+ anchors.centerIn: parent
+ closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent
+
+ property alias title: titleText.text
+ property alias icon: titleImg.source
+
+ ColumnLayout {
+ id: fetchIndicator
+ anchors.fill: parent
+
+ RowLayout {
+ Rectangle {
+ Layout.preferredWidth: 50
+ Layout.preferredHeight: 50
+ radius: 200
+ border. color: "#E7F4EE"
+ border.width: 5
+
+ Image {
+ id: titleImg
+ anchors.centerIn: parent
+ width: 25
+ height: 25
+ fillMode: Image.PreserveAspectFit
+ }
+ }
+
+ Label {
+ id: titleText
+ text:""
+ font.pixelSize: 18
+ }
+ }
+
+ RowLayout {
+ Layout.fillWidth: false
+ Layout.alignment: Qt.AlignHCenter
+ BusyIndicator {
+ running: visible
+ Layout.fillWidth: true
+ }
+
+ Label {
+ text: qsTr("Testing URL")
+ font.pixelSize: 18
+ }
+ }
+
+ Button {
+ Layout.alignment: Qt.AlignHCenter
+ text: qsTr("Cancel")
+ onClicked: {
+ busyIndicatorPopup.close()
+ }
+ }
+
+ }
+
+ }
+}
diff --git a/examples/demos/colorpaletteclient/ColorPalette/UserMenu.qml b/examples/demos/colorpaletteclient/ColorPalette/UserMenu.qml
new file mode 100644
index 000000000..6c4b25683
--- /dev/null
+++ b/examples/demos/colorpaletteclient/ColorPalette/UserMenu.qml
@@ -0,0 +1,139 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+pragma ComponentBehavior: Bound
+
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import QtQuick.Effects
+
+import QtExampleStyle
+import ColorPalette
+
+Popup {
+ id: userMenu
+
+ required property BasicLogin userLoginService
+ required property PaginatedColorUsersResource userMenuUsers
+
+ width: 280
+ height: 270
+
+ ColumnLayout {
+ anchors.fill: parent
+
+ ListView {
+ id: userListView
+
+ model: userMenu.userMenuUsers.model
+ spacing: 5
+ footerPositioning: ListView.PullBackFooter
+ clip: true
+
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+
+ delegate: Rectangle {
+ id: userInfo
+
+ required property string email
+ required property string avatar
+
+ height: 30
+ width: userListView.width
+
+
+ readonly property bool logged: (email === loginService.user)
+
+ Rectangle {
+ id: userImageCliped
+ anchors.left: parent.left
+ anchors.verticalCenter: parent.verticalCenter
+ width: 30
+ height: 30
+
+ Image {
+ id: userImage
+ anchors.fill: parent
+ source: userInfo.avatar
+ visible: false
+ }
+
+ Image {
+ id: userMask
+ source: "qrc:/qt/qml/ColorPalette/icons/userMask.svg"
+ anchors.fill: userImage
+ anchors.margins: 4
+ visible: false
+ }
+
+ MultiEffect {
+ source: userImage
+ anchors.fill: userImage
+ maskSource: userMask
+ maskEnabled: true
+ }
+ }
+
+ Text {
+ id: userMailLabel
+ anchors.left: userImageCliped.right
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.margins: 5
+ text: userInfo.email
+ font.bold: userInfo.logged
+ }
+
+ ToolButton {
+ anchors.right: parent.right
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.margins: 5
+
+ icon.source: UIStyle.iconPath(userInfo.logged
+ ? "logout" : "login")
+ enabled: userInfo.logged || !userMenu.userLoginService.loggedIn
+
+ onClicked: {
+ if (userInfo.logged) {
+ userMenu.userLoginService.logout()
+ } else {
+ //! [Login]
+ userMenu.userLoginService.login({"email" : userInfo.email,
+ "password" : "apassword",
+ "id" : userInfo.id})
+ //! [Login]
+ userMenu.close()
+ }
+ }
+ }
+
+ }
+ footer: ToolBar {
+ // Paginate buttons if more than one page
+ visible: userMenu.userMenuUsers.pages > 1
+ implicitWidth: parent.width
+
+ RowLayout {
+ anchors.fill: parent
+
+ Item { Layout.fillWidth: true /* spacer */ }
+
+ Repeater {
+ model: userMenu.userMenuUsers.pages
+
+ ToolButton {
+ text: page
+ font.bold: userMenu.userMenuUsers.page === page
+
+ required property int index
+ readonly property int page: (index + 1)
+
+ onClicked: userMenu.userMenuUsers.page = page
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/examples/demos/colorpaletteclient/ColorPalette/qmldir b/examples/demos/colorpaletteclient/ColorPalette/qmldir
new file mode 100644
index 000000000..7a153fea8
--- /dev/null
+++ b/examples/demos/colorpaletteclient/ColorPalette/qmldir
@@ -0,0 +1,7 @@
+module ColorPalette
+Main 1.0 Main.qml
+ColorDialogDelete 1.0 ColorDialogDelete.qml
+ColorDialogEditor 1.0 ColorDialogEditor.qml
+ColorView 1.0 ColorView.qml
+ServerSelection 1.0 ServerSelection.qml
+UserMenu 1.0 UserMenu.qml
diff --git a/examples/demos/colorpaletteclient/QtExampleStyle/Button.qml b/examples/demos/colorpaletteclient/QtExampleStyle/Button.qml
new file mode 100644
index 000000000..6b3f922a1
--- /dev/null
+++ b/examples/demos/colorpaletteclient/QtExampleStyle/Button.qml
@@ -0,0 +1,48 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Controls.impl
+import QtQuick.Templates as T
+
+T.Button {
+ id: control
+
+ property alias buttonColor: rect.color
+ property alias textColor: label.color
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ leftPadding: 15
+ rightPadding: 15
+ topPadding: 10
+ bottomPadding: 10
+
+ background: Rectangle {
+ id: rect
+ radius: 8
+ border.color: "#E0E2E7"
+ border.width: 1
+ color: "#FFFFFF"
+ }
+
+ icon.width: 24
+ icon.height: 24
+ icon.color: control.palette.buttonText
+
+ contentItem: IconLabel {
+ id: label
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+
+ icon: control.icon
+ text: control.text
+ font.pixelSize: 14
+ color: "#667085"
+ }
+}
diff --git a/examples/demos/colorpaletteclient/QtExampleStyle/CMakeLists.txt b/examples/demos/colorpaletteclient/QtExampleStyle/CMakeLists.txt
new file mode 100644
index 000000000..a911f8742
--- /dev/null
+++ b/examples/demos/colorpaletteclient/QtExampleStyle/CMakeLists.txt
@@ -0,0 +1,54 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+cmake_minimum_required(VERSION 3.16)
+project(qtexamplestyle LANGUAGES CXX)
+
+set(CMAKE_AUTOMOC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/quickcontrols/colorpaletteclient/QtExampleStyle")
+
+find_package(Qt6 REQUIRED COMPONENTS Core Gui Quick QuickControls2)
+
+set_source_files_properties(UIStyle.qml
+ PROPERTIES
+ QT_QML_SINGLETON_TYPE TRUE
+)
+
+qt_policy(SET QTP0001 NEW)
+qt_add_qml_module(qtexamplestyle
+ URI QtExampleStyle
+ PLUGIN_TARGET qtexamplestyle
+ QML_FILES
+ Button.qml
+ Popup.qml
+ UIStyle.qml
+ TextField.qml
+)
+
+target_link_libraries(qtexamplestyle PUBLIC
+ Qt6::Core
+ Qt6::Gui
+ Qt6::Quick
+ Qt6::QuickControls2
+)
+
+if(UNIX AND NOT APPLE AND CMAKE_CROSSCOMPILING)
+ find_package(Qt6 REQUIRED COMPONENTS QuickTemplates2)
+
+ # Work around QTBUG-86533
+ target_link_libraries(qtexamplestyle PRIVATE Qt6::QuickTemplates2)
+endif()
+
+install(TARGETS qtexamplestyle
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/qmldir
+ DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/demos/colorpaletteclient/QtExampleStyle/Popup.qml b/examples/demos/colorpaletteclient/QtExampleStyle/Popup.qml
new file mode 100644
index 000000000..a3132bcea
--- /dev/null
+++ b/examples/demos/colorpaletteclient/QtExampleStyle/Popup.qml
@@ -0,0 +1,27 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Templates as T
+
+T.Popup {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ leftPadding: 15
+ rightPadding: 15
+ topPadding: 10
+ bottomPadding: 10
+
+ background: Rectangle {
+ id: bg
+ radius: 8
+ border.color: "#E0E2E7"
+ border.width: 2
+ color: "#FFFFFF"
+ }
+}
diff --git a/examples/demos/colorpaletteclient/QtExampleStyle/TextField.qml b/examples/demos/colorpaletteclient/QtExampleStyle/TextField.qml
new file mode 100644
index 000000000..7db2d4f98
--- /dev/null
+++ b/examples/demos/colorpaletteclient/QtExampleStyle/TextField.qml
@@ -0,0 +1,22 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Templates as T
+
+T.TextField {
+ id: control
+ placeholderText: ""
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset, contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ background: Rectangle {
+ implicitWidth: 200
+ implicitHeight: 40
+ radius: 8
+ color: control.enabled ? "transparent" : "#353637"
+ border.color: "#E0E2E7"
+ }
+}
diff --git a/examples/demos/colorpaletteclient/QtExampleStyle/UIStyle.qml b/examples/demos/colorpaletteclient/QtExampleStyle/UIStyle.qml
new file mode 100644
index 000000000..3c4741d7f
--- /dev/null
+++ b/examples/demos/colorpaletteclient/QtExampleStyle/UIStyle.qml
@@ -0,0 +1,29 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+pragma Singleton
+
+import QtQuick
+
+QtObject {
+ id: uiStyle
+
+ // Font Sizes
+ readonly property int fontSizeXXS: 10
+ readonly property int fontSizeXS: 15
+ readonly property int fontSizeS: 20
+ readonly property int fontSizeM: 25
+ readonly property int fontSizeL: 30
+ readonly property int fontSizeXL: 35
+ readonly property int fontSizeXXL: 40
+
+ // Color Scheme
+ // Green
+ readonly property color colorQtPrimGreen: "#41cd52"
+ readonly property color colorQtAuxGreen1: "#21be2b"
+ readonly property color colorQtAuxGreen2: "#17a81a"
+
+ function iconPath(baseImagePath) {
+ return `qrc:/qt/qml/ColorPalette/icons/${baseImagePath}.svg`
+ }
+}
diff --git a/examples/demos/colorpaletteclient/QtExampleStyle/qmldir b/examples/demos/colorpaletteclient/QtExampleStyle/qmldir
new file mode 100644
index 000000000..7bdfb44d8
--- /dev/null
+++ b/examples/demos/colorpaletteclient/QtExampleStyle/qmldir
@@ -0,0 +1,5 @@
+module QtExampleStyle
+Button 1.0 Button.qml
+Popup 1.0 Popup.qml
+TextField 1.0 TextField.qml
+singleton UIStyle 1.0 UIStyle.qml
diff --git a/examples/demos/colorpaletteclient/abstractresource.py b/examples/demos/colorpaletteclient/abstractresource.py
new file mode 100644
index 000000000..3f3a7ed6a
--- /dev/null
+++ b/examples/demos/colorpaletteclient/abstractresource.py
@@ -0,0 +1,24 @@
+# Copyright (C) 2024 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject
+from PySide6.QtQml import QmlAnonymous
+
+
+QML_IMPORT_NAME = "ColorPalette"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlAnonymous
+class AbstractResource(QObject):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.m_manager = None # QRestAccessManager
+ self.m_api = None # QNetworkRequestFactory
+
+ def setAccessManager(self, manager):
+ self.m_manager = manager
+
+ def setServiceApi(self, serviceApi):
+ self.m_api = serviceApi
diff --git a/examples/demos/colorpaletteclient/basiclogin.py b/examples/demos/colorpaletteclient/basiclogin.py
new file mode 100644
index 000000000..b9139c2e2
--- /dev/null
+++ b/examples/demos/colorpaletteclient/basiclogin.py
@@ -0,0 +1,100 @@
+# Copyright (C) 2024 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+from functools import partial
+from dataclasses import dataclass
+
+from PySide6.QtCore import Property, Signal, Slot
+from PySide6.QtNetwork import QHttpHeaders
+from PySide6.QtQml import QmlElement
+
+from abstractresource import AbstractResource
+
+
+tokenField = "token"
+emailField = "email"
+idField = "id"
+
+
+QML_IMPORT_NAME = "ColorPalette"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class BasicLogin(AbstractResource):
+ @dataclass
+ class User:
+ email: str
+ token: bytes
+ id: int
+
+ userChanged = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.m_user = None
+ self.m_loginPath = ""
+ self.m_logoutPath = ""
+ self.m_user = None
+
+ @Property(str, notify=userChanged)
+ def user(self):
+ return self.m_user.email if self.m_user else ""
+
+ @Property(bool, notify=userChanged)
+ def loggedIn(self):
+ return bool(self.m_user)
+
+ @Property(str)
+ def loginPath(self):
+ return self.m_loginPath
+
+ @loginPath.setter
+ def loginPath(self, p):
+ self.m_loginPath = p
+
+ @Property(str)
+ def logoutPath(self):
+ return self.m_logoutPath
+
+ @logoutPath.setter
+ def logoutPath(self, p):
+ self.m_logoutPath = p
+
+ @Slot("QVariantMap")
+ def login(self, data):
+ request = self.m_api.createRequest(self.m_loginPath)
+ self.m_manager.post(request, data, self, partial(self.loginReply, data))
+
+ def loginReply(self, data, reply):
+ self.m_user = None
+ if not reply.isSuccess():
+ print("login: ", reply.errorString(), file=sys.stderr)
+ (json, error) = reply.readJson()
+ if json and json.isObject():
+ json_object = json.object()
+ token = json_object.get(tokenField)
+ if token:
+ email = data[emailField]
+ token = json_object[tokenField]
+ id = data[idField]
+ self.m_user = BasicLogin.User(email, token, id)
+
+ headers = QHttpHeaders()
+ headers.append("token", self.m_user.token if self.m_user else "")
+ self.m_api.setCommonHeaders(headers)
+ self.userChanged.emit()
+
+ @Slot()
+ def logout(self):
+ request = self.m_api.createRequest(self.m_logoutPath)
+ self.m_manager.post(request, b"", self, self.logoutReply)
+
+ def logoutReply(self, reply):
+ if reply.isSuccess():
+ self.m_user = None
+ self.m_api.clearCommonHeaders() # clears 'token' header
+ self.userChanged.emit()
+ else:
+ print("logout: ", reply.errorString(), file=sys.stderr)
diff --git a/examples/demos/colorpaletteclient/colorpaletteclient.pyproject b/examples/demos/colorpaletteclient/colorpaletteclient.pyproject
new file mode 100644
index 000000000..d05f7cb29
--- /dev/null
+++ b/examples/demos/colorpaletteclient/colorpaletteclient.pyproject
@@ -0,0 +1,21 @@
+{
+ "files": [
+ "abstractresource.py",
+ "basiclogin.py",
+ "main.py",
+ "paginatedresource.py",
+ "restservice.py",
+ "colorpaletteclient.qrc",
+ "ColorPalette/ColorDialogDelete.qml",
+ "ColorPalette/ColorDialogEditor.qml",
+ "ColorPalette/ColorView.qml",
+ "ColorPalette/Main.qml",
+ "ColorPalette/ServerSelection.qml",
+ "ColorPalette/UserMenu.qml",
+ "QtExampleStyle/Button.qml",
+ "QtExampleStyle/Popup.qml",
+ "QtExampleStyle/TextField.qml",
+ "QtExampleStyle/UIStyle.qml",
+ "colorpaletteclient.qrc"
+ ]
+}
diff --git a/examples/demos/colorpaletteclient/colorpaletteclient.qrc b/examples/demos/colorpaletteclient/colorpaletteclient.qrc
new file mode 100644
index 000000000..16260cbd7
--- /dev/null
+++ b/examples/demos/colorpaletteclient/colorpaletteclient.qrc
@@ -0,0 +1,17 @@
+<RCC>
+ <qresource prefix="/qt/qml/ColorPalette">
+ <file>icons/close.svg</file>
+ <file>icons/delete.svg</file>
+ <file>icons/dots.svg</file>
+ <file>icons/edit.svg</file>
+ <file>icons/login.svg</file>
+ <file>icons/logout.svg</file>
+ <file>icons/ok.svg</file>
+ <file>icons/plus.svg</file>
+ <file>icons/qt.png</file>
+ <file>icons/testserver.png</file>
+ <file>icons/update.svg</file>
+ <file>icons/user.svg</file>
+ <file>icons/userMask.svg</file>
+ </qresource>
+</RCC>
diff --git a/examples/demos/colorpaletteclient/doc/colorpaletteclient.rst b/examples/demos/colorpaletteclient/doc/colorpaletteclient.rst
new file mode 100644
index 000000000..0dcb91d4e
--- /dev/null
+++ b/examples/demos/colorpaletteclient/doc/colorpaletteclient.rst
@@ -0,0 +1,79 @@
+RESTful API client
+==================
+
+Example of how to create a RESTful API QML client.
+
+This example shows how to create a basic QML RESTful API client with an
+imaginary color palette service. The application uses RESTful communication
+with the selected server to request and send data. The REST service is provided
+as a QML element whose child elements wrap the individual JSON data APIs
+provided by the server.
+
+Application functionality
+-------------------------
+
+The example provides the following basic functionalities:
+* Select the server to communicate with
+* List users and colors
+* Login and logout users
+* Modify and create new colors
+
+Server selection
+----------------
+
+At start the application presents the options for the color palette server to communicate
+with. The predefined options are:
+
+* ``https://reqres.in``, a publicly available REST API test service
+* A Qt-based REST API server example in ``QtHttpServer``
+
+Once selected, the RESTful API client issues a test HTTP GET to the color API
+to check if the service is accessible.
+
+One major difference between the two predefined API options is that the
+Qt-based REST API server example is a stateful application which allows
+modifying colors, whereas the ``reqres.in`` is a stateless API testing service.
+In other words, when using the ``reqres.in`` backend, modifying the colors has
+no lasting impact.
+
+The users and colors are paginated resources on the server-side. This means
+that the server provides the data in chunks called pages. The UI listing
+reflects this pagination and views the data on pages.
+
+Viewing the data on UI is done with standard QML views where the model are
+QAbstractListModel-derived classes representing JSON data received from the
+server.
+
+Logging in happens via the login function provided by the login popup. Under
+the hood the login sends a HTTP POST request. Upon receiving a successful
+response the authorization token is extracted from the response, which in turn
+is then used in subsequent HTTP requests which require the token.
+
+Editing and adding new colors is done in a popup. Note that uploading the color
+changes to the server requires that a user has logged in.
+
+REST implementation
+-------------------
+
+The example illustrates one way to compose a REST service from individual resource elements. In
+this example the resources are the paginated user and color resources plus the login service.
+The resource elements are bound together by the base URL (server URL) and the shared network access
+manager.
+
+The basis of the REST service is the RestService QML element whose children items
+compose the actual service.
+
+Upon instantiation the RestService element loops its children elements and sets
+them up to use the same network access manager. This way the individual
+resources share the same access details such as the server URL and
+authorization token.
+
+The actual communication is done with a rest access manager which implements
+some convenience functionality to deal specifically with HTTP REST APIs and
+effectively deals with sending and receiving the ``QNetworkRequest`` and
+``QNetworkReply`` as needed.
+
+.. image:: colorpaletteclient.webp
+ :width: 90%
+ :align: center
+ :alt: RESTful API client
diff --git a/examples/demos/colorpaletteclient/doc/colorpaletteclient.webp b/examples/demos/colorpaletteclient/doc/colorpaletteclient.webp
new file mode 100644
index 000000000..8f4d9a621
--- /dev/null
+++ b/examples/demos/colorpaletteclient/doc/colorpaletteclient.webp
Binary files differ
diff --git a/examples/demos/colorpaletteclient/icons/close.svg b/examples/demos/colorpaletteclient/icons/close.svg
new file mode 100644
index 000000000..3a0d4be65
--- /dev/null
+++ b/examples/demos/colorpaletteclient/icons/close.svg
@@ -0,0 +1,3 @@
+<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M12.4501 37.65L10.3501 35.55L21.9001 24L10.3501 12.45L12.4501 10.35L24.0001 21.9L35.5501 10.35L37.6501 12.45L26.1001 24L37.6501 35.55L35.5501 37.65L24.0001 26.1L12.4501 37.65Z" fill="#667085"/>
+</svg>
diff --git a/examples/demos/colorpaletteclient/icons/delete.svg b/examples/demos/colorpaletteclient/icons/delete.svg
new file mode 100644
index 000000000..8f04948c8
--- /dev/null
+++ b/examples/demos/colorpaletteclient/icons/delete.svg
@@ -0,0 +1,3 @@
+<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M13.05 42C12.225 42 11.5187 41.7062 10.9313 41.1188C10.3438 40.5312 10.05 39.825 10.05 39V10.5H8V7.5H17.4V6H30.6V7.5H40V10.5H37.95V39C37.95 39.8 37.65 40.5 37.05 41.1C36.45 41.7 35.75 42 34.95 42H13.05ZM34.95 10.5H13.05V39H34.95V10.5ZM18.35 34.7H21.35V14.75H18.35V34.7ZM26.65 34.7H29.65V14.75H26.65V34.7Z" fill="#667085"/>
+</svg>
diff --git a/examples/demos/colorpaletteclient/icons/dots.svg b/examples/demos/colorpaletteclient/icons/dots.svg
new file mode 100644
index 000000000..49df163fd
--- /dev/null
+++ b/examples/demos/colorpaletteclient/icons/dots.svg
@@ -0,0 +1,3 @@
+<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M10.3929 26.4C9.73097 26.4 9.16667 26.1643 8.7 25.6929C8.23333 25.2215 8 24.6548 8 23.9929C8 23.3309 8.2357 22.7666 8.7071 22.3C9.17847 21.8333 9.74513 21.6 10.4071 21.6C11.069 21.6 11.6333 21.8357 12.1 22.3071C12.5667 22.7784 12.8 23.3451 12.8 24.0071C12.8 24.669 12.5643 25.2333 12.0929 25.7C11.6215 26.1666 11.0549 26.4 10.3929 26.4ZM23.9929 26.4C23.331 26.4 22.7667 26.1643 22.3 25.6929C21.8333 25.2215 21.6 24.6548 21.6 23.9929C21.6 23.3309 21.8357 22.7666 22.3071 22.3C22.7785 21.8333 23.3451 21.6 24.0071 21.6C24.669 21.6 25.2333 21.8357 25.7 22.3071C26.1667 22.7784 26.4 23.3451 26.4 24.0071C26.4 24.669 26.1643 25.2333 25.6929 25.7C25.2215 26.1666 24.6549 26.4 23.9929 26.4ZM37.5929 26.4C36.931 26.4 36.3667 26.1643 35.9 25.6929C35.4333 25.2215 35.2 24.6548 35.2 23.9929C35.2 23.3309 35.4357 22.7666 35.9071 22.3C36.3785 21.8333 36.9451 21.6 37.6071 21.6C38.269 21.6 38.8333 21.8357 39.3 22.3071C39.7667 22.7784 40 23.3451 40 24.0071C40 24.669 39.7643 25.2333 39.2929 25.7C38.8215 26.1666 38.2549 26.4 37.5929 26.4Z" fill="#667085"/>
+</svg>
diff --git a/examples/demos/colorpaletteclient/icons/edit.svg b/examples/demos/colorpaletteclient/icons/edit.svg
new file mode 100644
index 000000000..1cfc2a73a
--- /dev/null
+++ b/examples/demos/colorpaletteclient/icons/edit.svg
@@ -0,0 +1,3 @@
+<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M9 39H11.2L33.35 16.85L31.15 14.65L9 36.8V39ZM39.7 14.7L33.3 8.29998L35.4 6.19998C35.9667 5.63331 36.6667 5.34998 37.5 5.34998C38.3333 5.34998 39.0333 5.63331 39.6 6.19998L41.8 8.39998C42.3667 8.96664 42.65 9.66664 42.65 10.5C42.65 11.3333 42.3667 12.0333 41.8 12.6L39.7 14.7ZM37.6 16.8L12.4 42H6V35.6L31.2 10.4L37.6 16.8ZM32.25 15.75L31.15 14.65L33.35 16.85L32.25 15.75Z" fill="#667085"/>
+</svg>
diff --git a/examples/demos/colorpaletteclient/icons/login.svg b/examples/demos/colorpaletteclient/icons/login.svg
new file mode 100644
index 000000000..c8fe5bc54
--- /dev/null
+++ b/examples/demos/colorpaletteclient/icons/login.svg
@@ -0,0 +1,3 @@
+<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M24.45 42V39H39V9H24.45V6H39C39.8 6 40.5 6.3 41.1 6.9C41.7 7.5 42 8.2 42 9V39C42 39.8 41.7 40.5 41.1 41.1C40.5 41.7 39.8 42 39 42H24.45ZM20.55 32.75L18.4 30.6L23.5 25.5H6V22.5H23.4L18.3 17.4L20.45 15.25L29.25 24.05L20.55 32.75Z" fill="#667085"/>
+</svg>
diff --git a/examples/demos/colorpaletteclient/icons/logout.svg b/examples/demos/colorpaletteclient/icons/logout.svg
new file mode 100644
index 000000000..91d4fd869
--- /dev/null
+++ b/examples/demos/colorpaletteclient/icons/logout.svg
@@ -0,0 +1,3 @@
+<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M9 42C8.2 42 7.5 41.7 6.9 41.1C6.3 40.5 6 39.8 6 39V9C6 8.2 6.3 7.5 6.9 6.9C7.5 6.3 8.2 6 9 6H23.55V9H9V39H23.55V42H9ZM33.3 32.75L31.15 30.6L36.25 25.5H18.75V22.5H36.15L31.05 17.4L33.2 15.25L42 24.05L33.3 32.75Z" fill="#667085"/>
+</svg>
diff --git a/examples/demos/colorpaletteclient/icons/ok.svg b/examples/demos/colorpaletteclient/icons/ok.svg
new file mode 100644
index 000000000..506e2d690
--- /dev/null
+++ b/examples/demos/colorpaletteclient/icons/ok.svg
@@ -0,0 +1,3 @@
+<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M18.9002 35.7L7.7002 24.5L9.8502 22.35L18.9002 31.4L38.1002 12.2L40.2502 14.35L18.9002 35.7Z" fill="#667085"/>
+</svg>
diff --git a/examples/demos/colorpaletteclient/icons/plus.svg b/examples/demos/colorpaletteclient/icons/plus.svg
new file mode 100644
index 000000000..81837784a
--- /dev/null
+++ b/examples/demos/colorpaletteclient/icons/plus.svg
@@ -0,0 +1,3 @@
+<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M22.5 38V25.5H10V22.5H22.5V10H25.5V22.5H38V25.5H25.5V38H22.5Z" fill="#667085"/>
+</svg>
diff --git a/examples/demos/colorpaletteclient/icons/qt.png b/examples/demos/colorpaletteclient/icons/qt.png
new file mode 100644
index 000000000..abd3a4f14
--- /dev/null
+++ b/examples/demos/colorpaletteclient/icons/qt.png
Binary files differ
diff --git a/examples/demos/colorpaletteclient/icons/qt_attribution.json b/examples/demos/colorpaletteclient/icons/qt_attribution.json
new file mode 100644
index 000000000..44633c474
--- /dev/null
+++ b/examples/demos/colorpaletteclient/icons/qt_attribution.json
@@ -0,0 +1,14 @@
+{
+ "Id": "colorpaletteclient",
+ "Name": "Selected Material Icons",
+ "QDocModule": "qtdoc",
+ "QtUsage": "Used in Color Palette Client example in QtDoc",
+ "QtParts": [
+ "examples"
+ ],
+ "Files": "close.svg delete.svg dots.svg edit.svg login.svg logout.svg ok.svg update.svg user.svg",
+ "Homepage": "https://fonts.google.com/icons",
+ "License": "Apache License Version 2.0",
+ "LicenseId": "Apache-2.0",
+ "Copyright": "Copyright 2018 Google, Inc. All Rights Reserved."
+}
diff --git a/examples/demos/colorpaletteclient/icons/testserver.png b/examples/demos/colorpaletteclient/icons/testserver.png
new file mode 100644
index 000000000..0890e5e4b
--- /dev/null
+++ b/examples/demos/colorpaletteclient/icons/testserver.png
Binary files differ
diff --git a/examples/demos/colorpaletteclient/icons/update.svg b/examples/demos/colorpaletteclient/icons/update.svg
new file mode 100644
index 000000000..303ff4d3d
--- /dev/null
+++ b/examples/demos/colorpaletteclient/icons/update.svg
@@ -0,0 +1,3 @@
+<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M24 40C19.5667 40 15.7917 38.4417 12.675 35.325C9.55833 32.2083 8 28.4333 8 24C8 19.5667 9.55833 15.7917 12.675 12.675C15.7917 9.55833 19.5667 8 24 8C26.8333 8 29.3167 8.575 31.45 9.725C33.5833 10.875 35.4333 12.45 37 14.45V8H40V20.7H27.3V17.7H35.7C34.4333 15.7 32.8167 14.0833 30.85 12.85C28.8833 11.6167 26.6 11 24 11C20.3667 11 17.2917 12.2583 14.775 14.775C12.2583 17.2917 11 20.3667 11 24C11 27.6333 12.2583 30.7083 14.775 33.225C17.2917 35.7417 20.3667 37 24 37C26.7667 37 29.3 36.2083 31.6 34.625C33.9 33.0417 35.5 30.95 36.4 28.35H39.5C38.5333 31.85 36.6167 34.6667 33.75 36.8C30.8833 38.9333 27.6333 40 24 40Z" fill="#667085"/>
+</svg>
diff --git a/examples/demos/colorpaletteclient/icons/user.svg b/examples/demos/colorpaletteclient/icons/user.svg
new file mode 100644
index 000000000..ed782385e
--- /dev/null
+++ b/examples/demos/colorpaletteclient/icons/user.svg
@@ -0,0 +1,4 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M0 12C0 5.37258 5.37258 0 12 0C18.6274 0 24 5.37258 24 12C24 18.6274 18.6274 24 12 24C5.37258 24 0 18.6274 0 12Z" fill="#E6E6E6"/>
+<path d="M15.5 12C16.3284 12 17 12.6716 17 13.5V14C17 15.9714 15.1405 18 12 18C8.85951 18 7 15.9714 7 14V13.5C7 12.6716 7.67157 12 8.5 12H15.5ZM15.5 13H8.5C8.22386 13 8 13.2239 8 13.5V14C8 15.4376 9.43216 17 12 17C14.5678 17 16 15.4376 16 14V13.5C16 13.2239 15.7761 13 15.5 13ZM12 5.5C13.5188 5.5 14.75 6.73122 14.75 8.25C14.75 9.76878 13.5188 11 12 11C10.4812 11 9.25 9.76878 9.25 8.25C9.25 6.73122 10.4812 5.5 12 5.5ZM12 6.5C11.0335 6.5 10.25 7.2835 10.25 8.25C10.25 9.2165 11.0335 10 12 10C12.9665 10 13.75 9.2165 13.75 8.25C13.75 7.2835 12.9665 6.5 12 6.5Z" fill="#616161"/>
+</svg>
diff --git a/examples/demos/colorpaletteclient/icons/userMask.svg b/examples/demos/colorpaletteclient/icons/userMask.svg
new file mode 100644
index 000000000..5e3065d7f
--- /dev/null
+++ b/examples/demos/colorpaletteclient/icons/userMask.svg
@@ -0,0 +1,3 @@
+<svg width="30" height="30" viewBox="0 0 30 30" xmlns="http://www.w3.org/2000/svg">
+<ellipse cx="15" cy="15" rx="13" ry="13" fill="black"/>
+</svg>
diff --git a/examples/demos/colorpaletteclient/main.py b/examples/demos/colorpaletteclient/main.py
new file mode 100644
index 000000000..a249b9fa2
--- /dev/null
+++ b/examples/demos/colorpaletteclient/main.py
@@ -0,0 +1,33 @@
+# Copyright (C) 2024 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the Qt RESTful API client demo from Qt v6.x"""
+
+import os
+import sys
+from pathlib import Path
+
+from PySide6.QtCore import QUrl
+from PySide6.QtGui import QIcon, QGuiApplication
+from PySide6.QtQml import QQmlApplicationEngine
+
+from basiclogin import BasicLogin # noqa: F401
+from paginatedresource import PaginatedResource # noqa: F401
+from restservice import RestService # noqa: F401
+import rc_colorpaletteclient # noqa: F401
+
+if __name__ == "__main__":
+ app = QGuiApplication(sys.argv)
+ QIcon.setThemeName("colorpaletteclient")
+
+ engine = QQmlApplicationEngine()
+ app_dir = Path(__file__).parent
+ app_dir_url = QUrl.fromLocalFile(os.fspath(app_dir))
+ engine.addImportPath(os.fspath(app_dir))
+ engine.loadFromModule("ColorPalette", "Main")
+ if not engine.rootObjects():
+ sys.exit(-1)
+
+ ex = app.exec()
+ del engine
+ sys.exit(ex)
diff --git a/examples/demos/colorpaletteclient/paginatedresource.py b/examples/demos/colorpaletteclient/paginatedresource.py
new file mode 100644
index 000000000..b7f036c4e
--- /dev/null
+++ b/examples/demos/colorpaletteclient/paginatedresource.py
@@ -0,0 +1,278 @@
+# Copyright (C) 2024 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+from dataclasses import dataclass
+from PySide6.QtCore import (QAbstractListModel, QByteArray,
+ QUrlQuery, Property, Signal, Slot, Qt)
+from PySide6.QtQml import QmlAnonymous, QmlElement
+
+from abstractresource import AbstractResource
+
+
+QML_IMPORT_NAME = "ColorPalette"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+totalPagesField = "total_pages"
+currentPageField = "page"
+
+
+@dataclass
+class ColorUser:
+ id: int
+ email: str
+ avatar: str # URL
+
+
+@QmlElement
+class ColorUserModel (QAbstractListModel):
+ IdRole = Qt.UserRole + 1
+ EmailRole = Qt.UserRole + 2
+ AvatarRole = Qt.UserRole + 3
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._users = []
+
+ def clear(self):
+ self.set_data([])
+
+ def set_data(self, json_list):
+ if not self._users and not json_list:
+ return
+ self.beginResetModel()
+ self._users.clear()
+ for e in json_list:
+ self._users.append(ColorUser(int(e["id"]), e["email"], e["avatar"]))
+ self.endResetModel()
+
+ def roleNames(self):
+ roles = {
+ ColorUserModel.IdRole: QByteArray(b'id'),
+ ColorUserModel.EmailRole: QByteArray(b'email'),
+ ColorUserModel.AvatarRole: QByteArray(b'avatar')
+ }
+ return roles
+
+ def rowCount(self, index):
+ return len(self._users)
+
+ def data(self, index, role):
+ if index.isValid():
+ d = self._users[index.row()]
+ if role == ColorUserModel.IdRole:
+ return d.id
+ if role == ColorUserModel.EmailRole:
+ return d.email
+ if role == ColorUserModel.AvatarRole:
+ return d.avatar
+ return None
+
+ def avatarForEmail(self, email):
+ for e in self._users:
+ if e.email == email:
+ return e.avatar
+ return ""
+
+
+@dataclass
+class Color:
+ id: int
+ color: str
+ name: str
+ pantone_value: str
+
+
+@QmlElement
+class ColorModel (QAbstractListModel):
+ IdRole = Qt.UserRole + 1
+ ColorRole = Qt.UserRole + 2
+ NameRole = Qt.UserRole + 3
+ PantoneValueRole = Qt.UserRole + 4
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._colors = []
+
+ def clear(self):
+ self.set_data([])
+
+ def set_data(self, json_list):
+ if not self._colors and not json_list:
+ return
+ self.beginResetModel()
+ self._colors.clear()
+ for e in json_list:
+ self._colors.append(Color(int(e["id"]), e["color"],
+ e["name"], e["pantone_value"]))
+ self.endResetModel()
+
+ def roleNames(self):
+ roles = {
+ ColorModel.IdRole: QByteArray(b'color_id'),
+ ColorModel.ColorRole: QByteArray(b'color'),
+ ColorModel.NameRole: QByteArray(b'name'),
+ ColorModel.PantoneValueRole: QByteArray(b'pantone_value')
+ }
+ return roles
+
+ def rowCount(self, index):
+ return len(self._colors)
+
+ def data(self, index, role):
+ if index.isValid():
+ d = self._colors[index.row()]
+ if role == ColorModel.IdRole:
+ return d.id
+ if role == ColorModel.ColorRole:
+ return d.color
+ if role == ColorModel.NameRole:
+ return d.name
+ if role == ColorModel.PantoneValueRole:
+ return d.pantone_value
+ return None
+
+
+@QmlAnonymous
+class PaginatedResource(AbstractResource):
+ """This class manages a simple paginated Crud resource,
+ where the resource is a paginated list of JSON items."""
+
+ dataUpdated = Signal()
+ pageUpdated = Signal()
+ pagesUpdated = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ # The total number of pages as reported by the server responses
+ self.m_pages = 0
+ # The default page we request if the user hasn't set otherwise
+ self.m_currentPage = 1
+ self.m_path = ""
+
+ def _clearModel(self):
+ pass
+
+ def _populateModel(self, json_list):
+ pass
+
+ @Property(str)
+ def path(self):
+ return self.m_path
+
+ @path.setter
+ def path(self, p):
+ self.m_path = p
+
+ @Property(int, notify=pagesUpdated)
+ def pages(self):
+ return self.m_pages
+
+ @Property(int, notify=pageUpdated)
+ def page(self):
+ return self.m_currentPage
+
+ @page.setter
+ def page(self, page):
+ if self.m_currentPage == page or page < 1:
+ return
+ self.m_currentPage = page
+ self.pageUpdated.emit()
+ self.refreshCurrentPage()
+
+ @Slot()
+ def refreshCurrentPage(self):
+ query = QUrlQuery()
+ query.addQueryItem("page", str(self.m_currentPage))
+ request = self.m_api.createRequest(self.m_path, query)
+ self.m_manager.get(request, self, self.refreshCurrentPageReply)
+
+ def refreshCurrentPageReply(self, reply):
+ if not reply.isSuccess():
+ print("PaginatedResource: ", reply.errorString(), file=sys.stderr)
+ (json, error) = reply.readJson()
+ if json:
+ self.refreshRequestFinished(json)
+ else:
+ self.refreshRequestFailed()
+
+ def refreshRequestFinished(self, json):
+ json_object = json.object()
+ self._populateModel(json_object["data"])
+ self.m_pages = int(json_object[totalPagesField])
+ self.m_currentPage = int(json_object[currentPageField])
+ self.pageUpdated.emit()
+ self.pagesUpdated.emit()
+ self.dataUpdated.emit()
+
+ def refreshRequestFailed(self):
+ if self.m_currentPage != 1:
+ # A failed refresh. If we weren't on page 1, try that.
+ # Last resource on currentPage might have been deleted, causing a failure
+ self.setPage(1)
+ else:
+ # Refresh failed and we we're already on page 1 => clear data
+ self.m_pages = 0
+ self.pagesUpdated.emit()
+ self._clearModel()
+ self.dataUpdated.emit()
+
+ @Slot("QVariantMap", int)
+ def update(self, data, id):
+ request = self.m_api.createRequest(f"{self.m_path}/{id}")
+ self.m_manager.put(request, self, self.updateReply)
+
+ def updateReply(self, reply):
+ if reply.isSuccess():
+ self.refreshCurrentPage()
+
+ @Slot("QVariantMap")
+ def add(self, data):
+ request = self.m_api.createRequest(self.m_path)
+ self.m_manager.post(request, data, self, self.updateReply)
+
+ @Slot(int)
+ def remove(self, id):
+ request = self.m_api.createRequest(f"{self.m_path}/{id}")
+ self.m_manager.deleteResource(request, self, self.updateReply)
+
+
+@QmlElement
+class PaginatedColorUsersResource(PaginatedResource):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.m_model = ColorUserModel(self)
+
+ @Property(ColorUserModel, constant=True)
+ def model(self):
+ return self.m_model
+
+ def _clearModel(self):
+ self.m_model.clear()
+
+ def _populateModel(self, json_list):
+ self.m_model.set_data(json_list)
+
+ @Slot(str, result=str)
+ def avatarForEmail(self, email):
+ return self.m_model.avatarForEmail(email)
+
+
+@QmlElement
+class PaginatedColorsResource(PaginatedResource):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.m_model = ColorModel(self)
+
+ @Property(ColorModel, constant=True)
+ def model(self):
+ return self.m_model
+
+ def _clearModel(self):
+ self.m_model.clear()
+
+ def _populateModel(self, json_list):
+ self.m_model.set_data(json_list)
diff --git a/examples/demos/colorpaletteclient/rc_colorpaletteclient.py b/examples/demos/colorpaletteclient/rc_colorpaletteclient.py
new file mode 100644
index 000000000..74b3eaf13
--- /dev/null
+++ b/examples/demos/colorpaletteclient/rc_colorpaletteclient.py
@@ -0,0 +1,1098 @@
+# Resource object code (Python 3)
+# Created by: object code
+# Created by: The Resource Compiler for Qt version 6.7.0
+# WARNING! All changes made in this file will be lost!
+
+from PySide6 import QtCore
+
+qt_resource_data = b"\
+\x00\x00\x00\xc0\
+<\
+svg width=\x2248\x22 h\
+eight=\x2248\x22 viewB\
+ox=\x220 0 48 48\x22 f\
+ill=\x22none\x22 xmlns\
+=\x22http://www.w3.\
+org/2000/svg\x22>\x0a<\
+path d=\x22M22.5 38\
+V25.5H10V22.5H22\
+.5V10H25.5V22.5H\
+38V25.5H25.5V38H\
+22.5Z\x22 fill=\x22#66\
+7085\x22/>\x0a</svg>\x0a\
+\x00\x00\x00\x94\
+<\
+svg width=\x2230\x22 h\
+eight=\x2230\x22 viewB\
+ox=\x220 0 30 30\x22 x\
+mlns=\x22http://www\
+.w3.org/2000/svg\
+\x22>\x0a<ellipse cx=\x22\
+15\x22 cy=\x2215\x22 rx=\x22\
+13\x22 ry=\x2213\x22 fill\
+=\x22black\x22/>\x0a</svg\
+>\x0a\x0a\
+\x00\x00\x0b\x93\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00d\x00\x00\x00H\x08\x06\x00\x00\x00\x00\x8cP\x19\
+\x00\x00\x01\x84iCCPICC prof\
+ile\x00\x00(\x91}\x91=H\xc3@\x1c\xc5_\
+S\xa5*-\x0ev\x90\xe2\x90\xa1:Y\x10\x15q\xd4\
+*\x14\xa1B\xa8\x15Zu0\xb9\xf4\x0b\x9a\x18\x92\x14\
+\x17G\xc1\xb5\xe0\xe0\xc7b\xd5\xc1\xc5YW\x07WA\
+\x10\xfc\x00quqRt\x91\x12\xff\x97\x14Z\xc4x\
+p\xdc\x8fw\xf7\x1ew\xef\x00\xa1Qe\x9a\xd55\x06\
+h\xbamfRI1\x97_\x11C\xaf\x08#\x82^\
+\xc4\x11\x93\x99e\xccJR\x1a\xbe\xe3\xeb\x1e\x01\xbe\xde\
+%x\x96\xff\xb9?GD-X\x0c\x08\x88\xc43\xcc\
+0m\xe2u\xe2\xa9M\xdb\xe0\xbcO\x1ceeY%\
+>'\x1e5\xe9\x82\xc4\x8f\x5cW<~\xe3\x5crY\
+\xe0\x99Q3\x9b\x99#\x8e\x12\x8b\xa5\x0eV:\x98\x95\
+M\x8dx\x928\xaej:\xe5\x0b9\x8fU\xce[\x9c\
+\xb5j\x8d\xb5\xee\xc9_\x18.\xe8\xcbK\x5c\xa79\x84\
+\x14\x16\xb0\x08\x09\x22\x14\xd4PA\x156\x12\xb4\xea\xa4\
+X\xc8\xd0~\xd2\xc7\x1fs\xfd\x12\xb9\x14rU\xc0\xc8\
+1\x8f\x0dh\x90]?\xf8\x1f\xfc\xee\xd6*N\x8c{\
+I\xe1$\xd0\xfd\xe28\x1f\xc3@h\x17h\xd6\x1d\xe7\
+\xfb\xd8q\x9a'@\xf0\x19\xb8\xd2\xdb\xfe\x8d\x060\xfd\
+Iz\xbd\xad\xc5\x8f\x80\xfem\xe0\xe2\xba\xad){\xc0\
+\xe5\x0e0\xf8d\xc8\xa6\xecJA\x9aB\xb1\x08\xbc\x9f\
+\xd17\xe5\x81\x81[\xa0o\xd5\xeb\xad\xb5\x8f\xd3\x07 \
+K]\xa5o\x80\x83C`\xa4D\xd9k>\xef\xee\xe9\
+\xec\xed\xdf3\xad\xfe~\x00a\xaer\xa0\xbc\xa9O\xc0\
+\x00\x00\x00\x06bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\
+\xa7\x93\x00\x00\x00\x09pHYs\x00\x00.#\x00\x00\
+.#\x01x\xa5?v\x00\x00\x00\x07tIME\x07\
+\xe7\x0c\x0d\x09$9Q3\xe6g\x00\x00\x00\x19tE\
+XtComment\x00Create\
+d with GIMPW\x81\x0e\x17\x00\
+\x00\x09kIDATx\xda\xed]ilT\xd7\x19\
+=\xe7\xbe\x99\xb1\xcd\x1aC\xc0\xac\xb6\xb1\x81\xda\x1eC\
+T\x11\x10\xa4i\x135\x91\x12E\xa4KT\x14\xda&\
+$]\x14W(\xa9\x02\x81\x006\x84Q\xf0B\x96\x06\
+*D\xd5\xf6\x17\x0a\xaa\xda\x84F)R\xc2\xa2$\x85\
+&M\xd3\x85%\xc2cV\x8f1aKR\xb0qX\
+\xec\x99y\xef~\xfdAAN\xeb\xfb\xbc\xf0f\xf0x\
+\xe6\xfe\x9b\xf9\xde\xdc\xef\xbe{\xde\xf9\xb6{\xef\x1b\xa2\
+\x87\xad\xbc\xf9\x85Rh{'\x80\xf1\xc8\xb4\x844\x81\
+\x08{\x04F\xa4\xfav\xa1\xbcA\xa8\xfc\xcc\xb4%\x12\
+\x10\xe8n\x01\x09\x9e\xa8-\xa3-;AL\xc8LY\
+\xe2\x01Q\xdd1\x03\x8e\xb3=\x03F\xf2\x9a\x91!e\
+\xc7\xd6\x06\x95\xa5w\x00\x92\x01\xe3f3$\x18y~\
+&\xad\xf8\xb6\x0c\x18\xfd\x80!e'\xd6\x06\x95\xed\xec\
+\x043\xd1\xd4MgH0\xf2\xfcL\xda\xf6\xf6\x0c\x18\
+\xfd\x80!\xa5\x8d5\xe5\x16\xb1#\x03F?`H0\
+R7SQ\xb6e\xc0\xe8\x07\x0c)\xfd\xa4\xa6\x5c\xd9\
+\xd8I`\xdcM}:D\x84\x8a\xed\x10DE\xc4\x01\
+\x00\x92>\x00\xd9\x02\xc9\x22\xc8t`\x88O\xd9\xfam\
+B\xdd\x0c0: \xd8\x01\xca\x87\x8e\xb6\x22>\xb2\xd1\
+\xa6s\xae\xfdB\xbc}\xd8\xd8\xc1q\x00\xf8\xe2\xece\
+\x7fN\xae?'\x00=&\xae\xd5d\x05N\x15p6\
+!w\x01\x18:\x10A\xf1\x11jB\x12i\x00\x90{\
+\x04\xd8t\x99\xf1\xdf5\x17\x85.\xf4\xe0W\x17\x00\x9c\
+\x05\xb0\xffz\xc2\xdaT\x93G\xe1\x0f5\xf4\xcfHN\
+\x19P&\xab\xbc\xa9\xc6\x01\xa0\x92\x10=\xb4A\xb8(\
+\x90\x13{m\xef\xb8\xd0\x15/\xfa\x9c|\xec\xa9\xac,\
+k\xecRB\x9e\x060r \x98\xac\xe4\x00B\x1c\x12\
+\xc5\xef5\x14T\x1eLD\xf7\xc1\xc6\xda\xafQ\xc9\xab\
+\x00\x8az9\x03\xbfQ>l\xe9J\xe4h\xf5\x14E\
+\x7f;\xe9>$\x09Z\xc2v4\xfe\xe0\xe1\xd2Ps\
+\xa2T4L\xae\xfc\xb04\xb2\xe6~K\xa9w (\
+\xe8\xf9\xd0\xe4\xf0\x81\x82\x95\xefu]\xad\xa8y\x087\
+!\x8cP\x09\x06\xe3\x1c\xfc\xbe\x1f%\x12\x8ck\xedP\
+\xf1\xaacZ\xe1'W\x1dU\x0a;\xf5\xc4Z*\xd9\
+P\x9f\xbflOw\xd7\x956U\x17(\x8d\x87I\x94\
+\x80\x9c\x00\x91\x5c\x90\x1a@\xab\x10'\xe8H\x03rr\
+\xde\x0c\x8f\x7f\xe6\xa4[?\x07\x0b\xaa\xde\x9bv\xbc\xfa\
+%\x11<\x9b\x01\xe4\xff\xd1\x88\x5c\xa4\xfd\xa2\xdb%e\
+\x91\xd5\xf9\x14\xff*\x80?\xa6\xea\xc4\xd6N)\x07\x05\
+\x80\x22$\xda\xb1\xa6<R\xf3{;v\xa9\xeapi\
+\xddyS\x9f1\xcb\xffK\xbf\x1d\x7f\x14\xe0\xd8T\x04\
+$a&K\x93\xbfj\x9e\x14\xea0\xc9o;V\xf7\
+U\xa5\xb2vQ\xf1\xa7\xec\xc18\x08\x0c\x03Qae\
+\x0d\xf9\xdb\xb4\xa3!\xa3\xf3>\x92\xbf\xec\x8ch\xbc\x91\
+\xaa\x0cI\x0c \xe4yZ\xd9\x9bL\xe2\xf2\xa6\xf5y\
+\xb6\x92\xcd\x10)\xea=\xf10U\xfc\xfe\xcd\x08\x85\x8c\
+c\x8f_\xb17^\x0dZ2\x80\xfc\xd7\x99\xebm\x0d\
+\x13\x17\xb7\x98\xf1\xbaRAJ\xf0\x06\x82\x85;\xca\x17\
+\xf8\x17\x99\xc4G\xa7\x87\x0e\x83\xf8G\x06\x90k\x13\xae\
+\xf5\x9fM\xb2\x92C+F\x8a\xc8\x93\x1e\xa8y\xa4\xac\
+!\x140\x9aL-[3N\xfd*\x1cq\xfa\xf8\x17\
+\xa3B\xdf\xe0\x07\x00\x8c\xf2\x80\x86\xb7I\x8eo6\x80\
+\xf7\xbb\x1c\x85e\xfd\x13Z\x0b:/\xc2i\xfc\x09\xc4\
+\xc7\xd7>Z\x1a\x7f7>\xa9\x16\xdf\x16G>7j\
+W\x14\x8a~\x04\xf0\xb6t\x93\x00@t\xd3C\x05\xce\
+\x89\x03&\xb1\x85\xbb\xbcrT\x8ab\x04$\x1e\xf5\x1f\
+\x08\xf8;\xda\x00\xder}\x12\xfd\xd6\x9b\x0d\x05\xcb_\
+\xedI\xef\xf5\x85\x95\xdb\x00ls\xad\x104U\xcf!\
+0\xa5_\x9b,R\xed\x0b1\xa4]\xae\xb8\xd3\xbb\xc8\
+\x9a\xb3\x8d~d\xea\x92\xf3\x00\x1b\xd3\xde\x87h\xc8'\
+&\xd9\xf4OC\xa3\x05\xe2\xd9\x13%\x22s\xdc\xb2R\
+\x11}4\xed\x01\x11\x91SFY{\xa0\x94\xa0\xf2\x8e\
+\x8d\xcc\x9bu\xa8\xd6\x5c\xe5U\xea\xb3\xb4\x07\xc4\xd2f\
+@\xe8\xa0\xd0[\xf4\xc1+\x01=\xc9\xa8O\xe4\x5c\xda\
+GY\x9a\xbe\xd3\xc6\xf9\xf3#\x0f\x8e\xe7\x9c\xcc\x07`\
+\xa8\x97\xa9\xcf:\xe7\x87t\xf4\xbc`\xa4\xfaz\xfe#\
+\xd4o\x1d,z\xee\x83.\x93\xd7\xc6\xba\xef\x0a\x9d\xd9\
+\xdd\xf8\xcb\xa9^\xd72\xbd\x8f\xb2\x02h5\x82e\xcb\
+\x08\xafW\xc6\x85j\x84\x0b\x83Z\xbf\x5cB\x97\xb9$\
+\xe7v\x8a]\xcf\x02\xf8\xa0\xeb~\xf5\xbd$\x17vc\
+\x9fS\xc0\x87\xd8\xd1K.\xda\x02\xdeW\x05d\x88Q\
+\x9dO\xda\xd2\xdc\x87\x88\x040\xbc\xc3E\xec\xf7\x1c\x0f\
+ \xdbl?}\x97\xd3\x1a\x10\x01\xe5\x92\xdd\xe6\x96\x83\
+x\xbe\x06G*\xa3\xd9\xb5\xe3\x8e\xa49C2\xad_\
+\x01B\x08\x87\xf8\xdc\xfaL\x80\x17\x14\x89\x1bo.\xa0\
+\xac4g\x08\x19s\xb3\xe9.\x93\xd7\xf7\xca\x806\xfb\
+,mv\xf8\xe9\x93\xa9kk\xa8\x99A\xaa\xc3\xf3D\
+JY_\x98}\x9a=,\xed\x01\xf1Y\xd6\xad.6\
+\xad\xd5\xfb[\xd0-.\xa3\xb9%\xc3\x10\xcaD\x17\xf1\
+Y\xaf\xf5\xd96O\x9a\xf1\xd7y\x99(\xcb\x11\xe3\xd1\
+ij\xe7\x90\xb7a\xb68\x83\x06\xc7\x8d\xd5e\x0ao\
+\xcd\x00\x224n\xde\x0e\x0c\xca;\x04 \xe6]T\x87\
+S{\xc7\xae>o\x1e\x8a\x1e\x9f\xf6\x80\x08\xcd\x15\xdd\
+\xbd\xe3*\xae@\xe4\x80\x87q\xf6>\x90]\x87\xd2\x12\
+R\x04K\xd3\x1e\x10\x12\xe5\x85\xc7C\xd9.\x80\xed\xf0\
+L\x97\xa6qgIY\xf3\xa0\xd1\x00\x8a3&K$\
+?K0\xd5\x05\xb1\xbfz\xe4@lZx\xc7\x18_\
+\x89=K\x80\x9c\xbe\xa3-z`\x00\x02\xfa\x03\xf0\x1b\
+\xd7\x11\xa2\xf6\xa7\xbb\xa9e\xbf\x07\xd1\xdc\xbb\x07\x0a*\
+\xf7\xbb\xc8\xef\xe8\x9e\xcdb\xb9\x00~e\x80\x00\x02\x80\
+\xf8\x8eI\xd48eCT,\xeb\x85\x1b\x84#F\x91\
+\x8d&\xffQ&\xa1\x80\x80\xdd\x9e\xed\xd0B\xbf\x8b\xe9\
+m\x1b0\x80\x88\xe0\xbe\x92\xb3uF\xe7\x1e\x9e\xb4\xe2\
+5\x81\xbc\xd2wk\xc5\x17\xc2\xc5\xab\xde2\xdeTS\
+`.DJ\xba\xbfy\x0e3\x97dxn\xe00\x04\
+P\xbev\xbd\xd8\xed\x82\xecI\xa3\x96\x8b\xc8\x22\x11\xb9\
+\xd8\x0b\xea}\x0e\x8d\x9f7\x14U=g\xbc$\x14R\
+\xa0<\xdeC\xb3g<\xec\xaa\xc4\xb7\x0f\x80=P\x00\
+\x01\xc0\x87\xbf\xd2\xbc\xc6\xb8\x01a/+\xe2\x0d\xc5+\
+\xd7S\x10\xa4\xe23B\xd9!W7%H\xa7\xc4O\
+@i\x01e\x1b\xa1\x9f\xd4\xa2f\x86'Wmp\xd3\
+\x1a|\xd4?\x1f\x90\xb9=\xb3\xac,7\xb2\xb8x\xd9\
+\x1e\x00\x95\xc0\x97\xcb=\x22\x22\x00\xa2\x22\xb8\xe8eN\
+u}L\x09=c(\xfcC\xb8\xb8\xf2\xfb\xbd\xb0u\
+\xaa\xe4t].cz\x88\x95\x95\xa3y>v\xa9~\
+Z\xb4\x0d\xae\x1b\xef:\xf9\x8e\xc8\xea|K\x05v\x8b\
+`R\xcfL\x1f:Z\xb3\xe3#\xcf\xb8\x1cB\x9ds\
+rQN\x8b3b\x8c\xdf\x1ed\xfb%\xda\x11\x8d\xc5\
+\xda\x01\xc4\x0en\x81]\xbe\xc0\xbf\x0b\xc07\xbc\xab<\
+$\xe1\xd0\xa7\x08\x167\x14W\xadK4\xd5g\x9c\x09\
+\x0d\x8av\xf8\xdf\x050\xa7w&B\xcf;P\xb4\xea\
+\x8f}\xd1\x19l\xaa\xddJ\xc8\xb7\xbc\x04$\xf1\xc7\xa1\
+\x89\x9a\xe9\xc7\xea\x16&RGis\xcd\xd8h\xbbo\
+ko\xc1\x00\x00\x07j\xfe\x0d\xa4*\x17\xbd\xbe\x97d\
+,\xe1\xe6hKo\x9c\x16\xa9]7\xbd\xf1\xa5\xd1^\
+w^r\xaav\xa4%\xb2\x1d\xe4\xbd}\x8b\xd0\xf1`\
+\xb0y\xcd7\xfb6{LI@\xaeE4Ok+\
+\xf6Q0R\xbdp\xc6\x99\x90gU\xd8\xc3\xe3W\xb4\
+@X\x7f\x03]\x04 \xd6\xe6\xe9\xc7\xeb\xee\xef\xf5/\
+\xb5\x8e\xa6\x96S7\xb7\x16@\xb6\x13|\x1fb}\xe4\
+\x14u\x1c9\xc8\x909b\x91y\x16\xb8\xc5\xb8\xe7\xb1\
+\xbc\xa9&\x0f\x90\x8f\x01\x8e\xe9{.\x8bvM\xbe\xae\
+\xb4\xf3\xfa\xf9\x9c\xd1\xbb\xcf\x8c\xab\xe8\xd2\xd1\xdf\xbd\xeb\
+n\xdf\xbf'\xdeWH\x89\xcf\x86\xa5*\xbc\xdc\xcd\x9f\
+\xbc79t?\x92\x8b\xa04\x0bp\x9a\x1am\xa2\xd0\
+\x01R(\xcc!0N(A\x08\xe6\x87\x8b\xaa\x8c\xb5\
+\xab\xe0\xf1\xea\xc7(\xdc\xe4\xd1\x88.\x028,\x82\x93\
+\x10}\x89\xca\x22\x94\xce\x15\x07\x93\x14Y(\xc0\xe0\xc4\
+LC\x7f\x01\xa4g\xcf\xf0\xbf\xe2g.\xdcs\xe4\xce\
+\x17\xbb\xb4\xdb3\xf6<\xe1\xef\xc8\xcd\xdfN\xf2\x1e\xa4\
+hKJ\x94\xe5\xe1pg\xfa\xf2\x86/0&\x9a\xb7\
+\xff6\xaeb\xbeE\x90\xe4g\xd7)\xe9\xd4=\xe1\x88\
+\x85\xba\x92\xe3\xa1B\x93\xbc\xbety=\xc8\xd5\x19@\
+\x92\xd7\x86\xfa$\xb0\xd6\x95G\xed\xb1_\x03\x08\xa7\xa2\
+\xb9\x22\xb8,\x05\xb7\x92\xca\xbci\xcd\xb5\x0f\x98\xa4\x0d\
+\xc1P\x8b\x80U\xa9\xf4\x12\x1a\x11\x11\xa5di\xb8\xa8\
+\xf2\xe5T\xdc\xdb\xabD\xcb\xcb3\xf6<\xd1\xe5Z\xc6\
+\xe4c\xb5\xa3D\xcb\x18\x08/\xa5\x06\x18\xd0\xb4\xac\xa5\
+\xf5\x85+_\x01\x12\xfc6\xa0DVKb\xb9\x05k\
+\x00,\xbf\xf6\xc5\xacS\xb5#\xdb\xa3\xfaY\x81\xfc \
+U\xdeU/\x22\x02\xc5%\xe1\xc2\x15\xebnvb\xe8\
+Ek\xd5\x96\xf5\xf5\xac\x98\x16[\xe11!*\x00\x19\
+\x9e:>C\x1c\x82\xcb\xc2EU\xbf\xe8\xfc}\xaa2\
+\x04\x00ri\xdb[c\x8a\xa3\xc9\xd4zC\xe9\xd55\
+\x15.\x0dwQ\x05Oe@@2\xe5\xb6\xf9\x08\xc4\
+!\xb9,\x5c\xd4\xf5\x92DJ\x03\x92r`\xb80#\
+U\xf3\x90\xd4\x05\x03\xe2(\xa8%\xdd-\xd6e\x18\x92\
+4f`I}q\xe5\xfa\x81\x96\xa9\xa7(3\xb0\xa4\
+\xa1x\xe5\xfa\x9e\x5c\xef\x03\xe4q\xe9\xc1\x9f\x83eZ\
+\x1f\x03\x0f\x9b-\xf5S\xcd{\xc8\xfe\xb7\xfd\x07:\xcc\
+\xccF\x8ay\xc7t\x00\x00\x00\x00IEND\xaeB\
+`\x82\
+\x00\x00\x02\xed\
+<\
+svg width=\x2248\x22 h\
+eight=\x2248\x22 viewB\
+ox=\x220 0 48 48\x22 f\
+ill=\x22none\x22 xmlns\
+=\x22http://www.w3.\
+org/2000/svg\x22>\x0a<\
+path d=\x22M24 40C1\
+9.5667 40 15.791\
+7 38.4417 12.675\
+ 35.325C9.55833 \
+32.2083 8 28.433\
+3 8 24C8 19.5667\
+ 9.55833 15.7917\
+ 12.675 12.675C1\
+5.7917 9.55833 1\
+9.5667 8 24 8C26\
+.8333 8 29.3167 \
+8.575 31.45 9.72\
+5C33.5833 10.875\
+ 35.4333 12.45 3\
+7 14.45V8H40V20.\
+7H27.3V17.7H35.7\
+C34.4333 15.7 32\
+.8167 14.0833 30\
+.85 12.85C28.883\
+3 11.6167 26.6 1\
+1 24 11C20.3667 \
+11 17.2917 12.25\
+83 14.775 14.775\
+C12.2583 17.2917\
+ 11 20.3667 11 2\
+4C11 27.6333 12.\
+2583 30.7083 14.\
+775 33.225C17.29\
+17 35.7417 20.36\
+67 37 24 37C26.7\
+667 37 29.3 36.2\
+083 31.6 34.625C\
+33.9 33.0417 35.\
+5 30.95 36.4 28.\
+35H39.5C38.5333 \
+31.85 36.6167 34\
+.6667 33.75 36.8\
+C30.8833 38.9333\
+ 27.6333 40 24 4\
+0Z\x22 fill=\x22#66708\
+5\x22/>\x0a</svg>\x0a\
+\x00\x00\x01\xb3\
+<\
+svg width=\x2248\x22 h\
+eight=\x2248\x22 viewB\
+ox=\x220 0 48 48\x22 f\
+ill=\x22none\x22 xmlns\
+=\x22http://www.w3.\
+org/2000/svg\x22>\x0a<\
+path d=\x22M13.05 4\
+2C12.225 42 11.5\
+187 41.7062 10.9\
+313 41.1188C10.3\
+438 40.5312 10.0\
+5 39.825 10.05 3\
+9V10.5H8V7.5H17.\
+4V6H30.6V7.5H40V\
+10.5H37.95V39C37\
+.95 39.8 37.65 4\
+0.5 37.05 41.1C3\
+6.45 41.7 35.75 \
+42 34.95 42H13.0\
+5ZM34.95 10.5H13\
+.05V39H34.95V10.\
+5ZM18.35 34.7H21\
+.35V14.75H18.35V\
+34.7ZM26.65 34.7\
+H29.65V14.75H26.\
+65V34.7Z\x22 fill=\x22\
+#667085\x22/>\x0a</svg\
+>\x0a\
+\x00\x00\x01\xf7\
+<\
+svg width=\x2248\x22 h\
+eight=\x2248\x22 viewB\
+ox=\x220 0 48 48\x22 f\
+ill=\x22none\x22 xmlns\
+=\x22http://www.w3.\
+org/2000/svg\x22>\x0a<\
+path d=\x22M9 39H11\
+.2L33.35 16.85L3\
+1.15 14.65L9 36.\
+8V39ZM39.7 14.7L\
+33.3 8.29998L35.\
+4 6.19998C35.966\
+7 5.63331 36.666\
+7 5.34998 37.5 5\
+.34998C38.3333 5\
+.34998 39.0333 5\
+.63331 39.6 6.19\
+998L41.8 8.39998\
+C42.3667 8.96664\
+ 42.65 9.66664 4\
+2.65 10.5C42.65 \
+11.3333 42.3667 \
+12.0333 41.8 12.\
+6L39.7 14.7ZM37.\
+6 16.8L12.4 42H6\
+V35.6L31.2 10.4L\
+37.6 16.8ZM32.25\
+ 15.75L31.15 14.\
+65L33.35 16.85L3\
+2.25 15.75Z\x22 fil\
+l=\x22#667085\x22/>\x0a</\
+svg>\x0a\x0a\
+\x00\x00\x1a\x93\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00J\x00\x00\x00H\x08\x06\x00\x00\x00Q\x18cz\
+\x00\x00\x01\x85iCCPICC prof\
+ile\x00\x00(\x91}\x91=H\xc3@\x18\x86\xdf\
+\xa6\x8a\x22-\x0ev\x10q\xc8P\x1d\xa4\x05Q\x11G\
+\xadB\x11*\x84Z\xa1U\x07\x93K\xff\xa0IC\x92\
+\xe2\xe2(\xb8\x16\x1c\xfcY\xac:\xb88\xeb\xea\xe0*\
+\x08\x82? \xae.N\x8a.R\xe2wI\xa1E\x8c\
+w\x1c\xf7\xf0\xde\xf7\xbe\xdc}\x07\x08\x8d\x0a\xd3\xac\xae\
+q@\xd3m3\x9dL\x88\xd9\xdc\xaa\xd8\xf3\x8a\x10\xc2\
+4\xc7\x10\x93\x99e\xccIR\x0a\xbe\xe3\xeb\x1e\x01\xbe\
+\xdf\xc5y\x96\x7f\xdd\x9f#\xac\xe6-\x06\x04D\xe2Y\
+f\x986\xf1\x06\xf1\xf4\xa6mp\xde'\x8e\xb0\x92\xac\
+\x12\x9f\x13\xc7L\xba \xf1#\xd7\x15\x8f\xdf8\x17]\
+\x16xf\xc4\xcc\xa4\xe7\x89#\xc4b\xb1\x83\x95\x0ef\
+%S#\x9e\x22\x8e\xaa\x9aN\xf9B\xd6c\x95\xf3\x16\
+g\xadRc\xad{\xf2\x17\x86\xf2\xfa\xca2\xd7i\x0d\
+#\x89E,A\x82\x08\x055\x94Q\x81\x8d8\xed:\
+)\x16\xd2t\x9e\xf0\xf1\x0f\xb9~\x89\x5c\x0a\xb9\xca`\
+\xe4X@\x15\x1ad\xd7\x0f\xfe\x07\xbf{k\x15&'\
+\xbc\xa4P\x02\xe8~q\x9c\x8f\x11\xa0g\x17h\xd6\x1d\
+\xe7\xfb\xd8q\x9a'@\xf0\x19\xb8\xd2\xdb\xfej\x03\x98\
+\xf9$\xbd\xde\xd6\xa2G@\xff6pq\xdd\xd6\x94=\
+\xe0r\x07\x18|2dSv\xa5 -\xa1P\x00\xde\
+\xcf\xe8\x9br\xc0\xc0-\xd0\xb7\xe6\xf5\xadu\x8e\xd3\x07\
+ C\xbdJ\xdd\x00\x07\x87\xc0h\x91\xb2\xd7}\xde\xdd\
+\xdb\xd9\xb7\x7fkZ\xfd\xfb\x01\xa7vr\xbc\xf6x\x14\
+.\x00\x00\x00\x06bKGD\x00\xff\x00\xff\x00\xff\xa0\
+\xbd\xa7\x93\x00\x00\x00\x09pHYs\x00\x00.#\x00\
+\x00.#\x01x\xa5?v\x00\x00\x00\x07tIME\
+\x07\xe7\x0c\x0d\x0d+\x19\xea\xccr\xbc\x00\x00\x00\x19t\
+EXtComment\x00Creat\
+ed with GIMPW\x81\x0e\x17\
+\x00\x00\x18jIDATx\xda\xed[y`T\xd5\
+\xd5\xff\xdd\xfb\xde\xac\x99}\xb2/da\x93E@P\
+\xb1\xdaZZ\xfd\x94-\xc8\xe2\x04\x14\xb7JK\xe5\xf3\
+\x0b&\x80\x88\xd5\xb6Q\x8b~\x22\x90\x80b-\xa2b\
+QI\x18\x11H \x91\x8a\x15k\xddQPY\x0ck\
+\x12\xb2'\x93\x99\xc9\xccd\x96\xf7\xde\xbd\xdf\x1f\x81@\
+\x08\x89Qh\xc1\xaf\x9c?g\xee\xbcw\xde\xef\x9d\xfb\
+;\xe7\xfc\xce\x1d\xe0\x92]\xb2Kv\xc9.Y\xaf\xcd\
+\x91\xb7O\xedpl\x10.6\xbf\xc8\xc5\xe2\xc8\xf4\xe7\
+\xf8H@~\x82s\x0c\x03\xe1!\x0a\xfa1\x04\xe9\x0f\
+\x85st\x15\x97\x80\x02\xe0X\xe2\x8f\xa7:\xed\xef\x08\
+\xf8o8\xa0=\xe3\xebVp\xaca\xb2\xb8\xd89\x8f\
+\xb4\xfcG\x02\xe5\xd8\xc0\x05\xda \xfd\x0f\x07\xfd=\x01\
+\xb7\xf7\xec%\xa9\x00g\x8f\x17e\xab_\xf9\x8f\x02j\
+\xc6Jy\x02'\xfc\x7f\x01\x0c\xfd>\xbf\xe3\xe0\xdf\x10\
+\x8aYE\xf7\xab?\xff\x7f\x0d\xd4\xa4\xa7\x03\x89:\xbd\
+\xfae\x007\x9f\xcbu8\xe7\xaf\x8bT\xf5\xc8\x1b\xff\
+C*\xff_\x015\xe9in\xd4F\xc9\x8f\x10\x86\x5c\
+\x10\xa8\xbb[\xa7\x84$\xb8\x0f\xd6B\xd0\xa9aJ\x8d\
+\x86\xa0V\xf5t\xd9V\x0e\xb6\xbc\xd1\xa5^\xbc3\x8f\
+\xc8?z\xa0\xb2V\x86o#Dx\x0e\xe0\xb6n#\
+Da\xf0V6\xc1_\xed\x02g\x1c\x00@U\x14\xa6\
+\x94\x18\x18R\xec \x84\xf4\xc8_DQ\xe6\x15>\xa0\
+\xd9\xf4\xa3\x04\xea\xd6\x95\xd2\xcfD\x82\xa5\x1c\xb8\xba\x87\
+-\x84`S+\xdc\x07\xeb\xc0d\xe5\xackD\xad\x1a\
+\x96~q\xd0E\x9b\xbekC~\xaa\x12Tw\xbf\xf6\
+\xdf\xa4\xfcG\x01\xd4\xac5\xdc\xe6o\x93\x0a@\xc8\x9d\
+=\xad\x0b{\xdb\xe0>T\x0f\xc9\x1f\xec\xd5u5\x96\
+(\xd8.K\x84\xa8U\x7f\x17\xe1\xbf\xc0\x15\xd5S\xce\
+\x1cRuQ\x025s%7)T\x9e\xc3\x81\x05\xe0\
+\x88\xee\x96\x87\x22\x12Z+\x9b\xe1\xaf\xf9ae\x911\
+\xd9\x0eC\xb2\x1d\xa2\xb6g\xfe\x22\x9c,PY\x847\
+\xd6\xddE\x02\x17\x0dP\x8e\x15\xd2X\x22`\x09\xe1\xb8\
+\xbc\xdb7-3\xf8j\x5ch\xadl\xea\xe0\xa1\x1fj\
+\x82F\x05sZ,\xa2\xe2-=?\x01A9!\xe4\
+\xd1\xc2\xfb\xc57/8P\xb3\xd7*s\xbd>\xb6\xa2\
+\xa75A\x97\x0f\xde\xa3\x8d\x90\x02\xa1\xf3\xba\xcdU\x06\
+-,\x19q\xd0\xda\x0c=p=`\x8c\xa2\x8b^\xfc\
+\x95\xf0\xf4\xb9\xdc\x8b\x9e\xab\xb3\xdc\xef\xbf\x22%^\x80\
+^wv\xcc\x99\xac\xa0\xad\xa9\xf5\xbc\x83\x04\x00\x92?\
+\x04_\x8d\x0b\xbc\x9bD\xa0\xd3\x12$\xc4P\xc0\xe7\x1b\
+p\xae\xf7\x12\xcf\xf5\x02\xfb\xfe~\x14q\xe96)\xed\
+\x8ax\xc1\xa0\x17\xa9\xdb\xc3 \x9d\xe67\x15\x05\xd8/\
+K\x82!\xc1\x0a\xcf\x91zDZ\x83\xe7'\x9a\xa2\xb4\
+\xb0\xf4\x8b\x87\xd6\x1a\xd5\xf5\xa1\x04\xc0f\xa6\xa0R\x84\
+\x1d\xfe\xb0\x96\xb9\xaa[\xc9\x05\x07\x0a h\xa8p\xab\
+\x9a\xab[\xa5\xb8t\x0bRG$ (\x11\xea\xf2\xb0\
+\xceY\xcb\xacG\xdc\xc8\x0c\x04\xea=\xf0\x1ci\x00\x93\
+~X\x8dHE\x0aC\xb2\x1d\xa6\x94h\x10\x81v\xe1\
+\x11\xb3\x91\xc2\xa8\xe7J\xcd\xfe&\xd4|\xdbDeI\
+\x11A\x08\xbf\xe0@q\xc2\x09\x01\x81\x22+\xaa\xdaC\
+.\xb8j[\x91:4NJ\xedkS\xb5x\x19|\
+\x81\xce>F\xc5[\xa0\xb5F\xc1_\xebFke\xd3\
+\xf7\xcbxIv\x18S\xa3!\xa8\xbb\xba\x1d\xa5#\xb0\
+[(\x9a\x8e\xb5(\x07\xf6\xd4\x139$\xd3\x19\xd7\xd7\
+`o\xa5\x11{+M\xb8\x08\x22\xea\x8c\xfa( \xe1\
+\xe0\xa7\xd5\xaa\xe3\x07\x9a\xe4!?M\x859^+6\
+63Dd\xde9k\xa5\xc7\x22*\xc1\x0a\xf7\xc1:\
+\x84Z|=^Sm\xd2\xc1\xda/\x01j\x93\xae\xeb\
+\x03\x88@\x9cM\x80\x1c\x0c\xc9{\xdf\xad\x15\xbc\x8d~\
+\xe1Z\xa1\x12aQ\xc4\xc8\x0c/v~c\x07\x01\xf8\
+E\x00\x14\xc5\xd9\xfc\x08\xb6\x86\xc5]\xa5\x07\x11\x93j\
+\x8e\xf4\x1b\x95\xa8\x0eC\x84\xdb\xcbp:\xef\x8aZ\x15\
+b\x86\xf5A\xd8\xdb\x86\x96\xf2Z\xc8m\xe1\xceWV\
+\x09\xb0\x0dL\x82\xd6n\xe8\xd2\xc6\x10\x02D[)t\
+*\x8e\xf2\x8f\xab\xe4\xe6*\x8fh\x89mC\xd2\xc00\
+\xa6T\xee\xc7\xb2\xc8O\xb1pmR\xfbZ\x8e\x8b/\
+\xa2\xce\xb4\xa6J\xaf\xba\xb9\xaa\x15\xa9\xc3b\x918(\
+\x16\xfe \xe0\xf6v\xe5\xaf\x84\xab\xfa\xc1_\xe3\x82\xb7\
+\xaa\x19\x5cV`H\xb1\xc3\x9c\x1a\x03Bi\xd7t\xaf\
+\xa7\xb0Y\x08\xea\xca]\xf8\xfa\xabz\xc8\x92\x22\x02\xc0\
+\xe8[\x8e\xe2\xc0G\x09x04\xaes\xe6\x05\xbb\xf8\
+\x81:\xd9\xd3U|\xd5\x80\xfa\xc3nd\x8cL@j\
+\x8a\x19\xcdn\x86@\x90wbbC\xb2\x1d\xfa8\x0b\
+\x00\x0e\xaa\xea\xea\x9aVC\x10k\xa3\x084\x07\xf0\xd9\
+\xa6*\x84\xdb\xa4N\xdf\xbf\xf3\xca`0\x99\x9e\xa5\x96\
+\x12\xd8\x85\x07J\x11\x9f\xe7\x824\x86\x00\xa9\xdf\xb54\
+\x14\x88`\xff\x07\x95\x88\xb2j1\xf8\xfa4XLj\
+4\xba\x14\x9c\x9e\x00\xa9J8k\xba\xb7[(\x88,\
+\xe1\xdb\x0f\xea\xe0\xaa\xf6vS\xb3\x9d\xb5,t\x83\x93\
+\xd7.\x8a\x16\xe6g\xd9\x87b\xd4\x11\xfaN\xc8\x13\x18\
+\xce\xe5\xde\xbf\xbc\xf8~v\xa4\x0f\x8bE\x88\x8b\xf0\xb6\
+v\xae\xbf\x00\x80\x12\xc0j\xa6\xd0\xab9\xaa\xbei@\
+Mys\xaf\xdb\x1f\x22P\xe8l\x86]A\x8f\xe7\x96\
+\x0f\x0bG\xd6^P\xa0&M\xcd\xb9\x8ed\xdc`\xd3\
+\xa5\x8e]\xc6\x81\xferH\x82\xf7h\x03\xda\x1a\xbd\xbd\
+w\x80\x12\xf4\xbd2\x11q\x196x\xfd\x1c\xa1\x08\xc0\
+\x19\xa0\xd5\x00V\x13Ec\x85\x1b\xc7\xf6\xd4A\x0a\xf6\
+\xbe\xee\xd2Z\xa3`\x1d\x98t\xa2q\xe6\xfb\xa5\xa3\xa5\
+\x8fJ\xc7w\x86J\xde,(\xfb\xc1\xfd\xe5\xb9\x005\
+h\xf4X_\xca\x15\xe3WP\x8dqTDj\xaf\xc2\
+\xf51&hLzH\xbe\x10\x98\xa4\xf4\x82\xc0\x80\x96\
+\x1a\x1f\x9a+\xbd0[T\xb0YE\x18t\x80\xec\x0f\
+\xe2\xdb\x0f\xabPw\xd0\x05v\x22J\x09%P\xa9E\
+0\x85u_F\xf4O\x809#\x0eTl\x7f4\x83\
+\x9e\xc6\x98-\xa6\x18_\xf9\xae%\xe5\xe5\x1fF.\xd8\
+\xd6\xbb\xf9\xd7\xdf\xbe\x9c:<a\xa6!\xce\xa8nv\
+3\x84#\xbc\x03\x80@\x83\x1b\xde\x8a&(!\xa9\xf7\
+\x0e\x11\x02\x10t\xd9b\xa2\x8a\x22q`4\x98\xc2P\
+}\xa0\xf9\x8cj]\x801\xc5\x0ec\xb2\xbd\xa3Z\xd7\
+\xaa\x09l\x16\x8a\xb0'\xc0\x8f|Q\xf7\xca\xf6\xd5\x03\
+f\xfd[\x9a\xe2\x89Y\xb9\x99\x9c\xf3.\xc0\xfaZB\
+d\xef\xcec\xea\x8a]\xc7\x11mP\x10k\xa3\x10\x84\
+\xf6W\x10\x15oE\xdc\x88t\x18\x12\xad=\xcb\xb9g\
+d\xc83A\x8a\xefgCB\x7f\x1b\xd4:\xb1\xcb\xab\
+5&\xd9\x10\x7fu_\x98Rc@\x04\x0a\x81\x021\
+V\x0a\xabNa\x15_TG\xbe\xdaq\x94\xfb\x5cm\
+g\xa7\x8e\xdbr\xc7\x8e\x1a5[u~\xb3\x1e'\xfa\
+\xcc\xacy\xaf\xdd2#\xf7\x85-\x85\xf9\x1f\x9c\xf6`\
+\x84\x10\x82\xfa#n4W\xb5\xca\xf1\xfd\xedH\x19\x1c\
+#\xb6I\x14\xeeV\x06A\xab\x82u@\x22\x8c)v\
+\xb8\x0f7 \xe4\xf2\xf5\xfa\x96\xf6d#\x0cV\x1d\xa8\
+H\xc1\x15\x8eHPF\x9b'\xdc\xa1x\x9a\xd3c\xa1\
+1\xeb;\xd6[M\x14\xe6(\xa0j_#\xaf\xf9\xb6\
+\x99&\x98\xfcj\xa3VDk[g,&e\xcd\xbf\
+^\x01\xbf\x1b2w~\xf1\xc5j\xe9\xbcr\xd4\xc1\xfd\
+\x1f\xef\x1b\xf3\xd3a%\x9e\x88\xe6\xa6\x81\x83G\xcfM\
+\xed{\xe5gG\xcb?\xf3\xa5\x0c\xb9o2\x01\x19\x01\
+\x00\x8cq\xda\xda\x14\xa0\xcdU^\x18\xcdj%!Y\
+G\x15\x05\x88H\x00U\x89\x88\x8a3C\x15\xa5\x85\xe4\
+\x0bv\xf0NO\x16\xdb\xc7\x02A-\x00\x1c\x08\xfa\x22\
+\xa8-w!\x12a\xb0\x0dJ\x82%=\xb6C\x16\xd6\
+k\x09\xe2\xec\x02B\xcd\xbe\xc8\xde\x7fT\xb0`u\xb3\
+@\xa1 \xff\xb7\xfbP^mD\x83[\xfb\xe5\xf1\x03\
+/\x14\xdf2c^J\xff!\xa3W3\x10\xbdMC\
+\xff\xe0\x5c\xbf\xfc\xc0\x0f\xe6\xa8\x89\x8e\xdc$\x86\xb0R\
+\xea|\xbe\xbe\xbb\x1f\x8d\x9d\x91\x93&*4\x1bP\x94\
+\x16vW\x02 \xdcq\xd6&6Z\x8b\x81\xa3\x93!\
+\x1a\xf4\x9d\xea%\xce\x18\x02u\x1ex\x8e5v\xab%\
+\x01@\x9f\xa1\xb1\xa0\x94\xa0j\x7f\xbb*jL\xb6\xc1\
+\xd4'\x16Dlg\x0c\x81\x02q\xd1\x02 EP\xfe\
+Q5<\x0d~P\x91\xe1\x09\xe1\x1d\xbc-\x0fDs\
+\xa2\x1d\x07\x8e\x1bA\x10*\xb2\x08\xeb?\x07H\x7fY\
+\xc6c\xdb\xdf*\xa8\xeb\xee\x9e\x93'\xe7X\x14\x9d \
+\x96\xac_\xd6\xdc#Pcg\xe4\xa4\x89\x8c\xe4\x82\x12\
+\xf7\xd6\xf5\xcb\x1e\xebI\xa2\x980}\xc1P\x9f\xf2_\
+\xaf\xcb<nX\x8f\xf5R\x7f;\xd2\x87\xc7#\xa4P\
+\xb4x\x19\xd8\x89`\x92\xc32|UM\xdd\xea\xe7\xa2\
+F\x80\x1cV\xa0\x8b5\xc3\xd6/\x1e\xf4\x84j@\x08\
+`5R\x18u\x1c\x87v\xd5\xa0\xf1\xa8\x1b\x9c\x03\xa3\
+\xc6\x1d\x83\x1c\x11 \xbc'\xe2+\x16\x0f\xe5\x04\x05\xab\
+H\xcd\xa1(\xf1ow\x96\x16\xae\xf8\xb4;\x1f\x07;\
+\x1c\xea\x0c\xd2'\x87\x83\xa5\x12\xae<\xbd\xd5\xb9\xb2\xaa\
+\x0bP\xe3o\x9f\x9f\x0a\xa6\x5c_ZX\xb0\xeeTd\
+-\xbc\x1a\x90\x9e\x86\xa0\xfcik\xe1\xcaw;\xed\xf1\
+I\x0b\x8d\x8aV\x9aJ\xb4\xd8\xe1\x0a\xdc\xb3\x98\x80\xdf\
+\xfd\x9dd\xa8\x11\x91<(\x06\xc9\x83b\xe0\xf5sx\
+|\xa7\xb6\x9e\x1c\x8c\xa0yo\x15\xa4@\xb8\x8b8g\
+\xed\x1f\x0f\x8d\xe5\x948g\xd4S\xd8\xad\x04\xf5\x87[\
+plw\x1d\xe4\xc8\xa9\x88\xec{E#*\xf7FC\
+\x96\xe8\x19\x09\x82\xbd\xa4a\x7f]`R\xd3\x89\x08y\
+\xb6\x14\x17\xbf\xdc\x89('d\xe5\xdeH\x81\xf9\x0cX\
+\xb6mC\xfe\x8eS\x810\x7f\xaa:\x12z\x7f\xd3\xa6\
+U\xae\x8e\x88\x1a\x9f\x95\x9bE9\xee\x0c3e\xde;\
+\x1bW\x1e:\xf9yfVn.\x07\x1f!F\xf0\xc7\
+\xcd\x9b\x0b*&N\x9f?\x93@\x99*+\xe4/T\
+\xe0\xd3\x82\xca\xa8)!~yL\xaf\x8bA\x83\x1a\xe9\
+#\x13`O6\xa3\xc1\xc5\x10\x0a\x9f\x0a\xd8\x90\xcb\x87\
+@\x83\x17 \x04\xfaX\x13tv\xe3\xa9\xc6Y\x0d\xc4\
+X\x05\xb4\xb5\xf8q\xf0\xd3\x1a\x04[\xc3\xbd/@\xc9\
+\xber=\xdd\xb5\x9b\x82?\xc79\x99\xc7)/\xdbZ\
+T\xb0f\x92#\xb7\x1f'\xe4I\x0e\xfew\x1d\xaf~\
+\xd9\xe9tF\x00`\xe2\xf4\x9c\x91\x9c\x93\xc7\x05NV\
+\x17;\x97\x17w\xd9zc\xc6\xe4i\x8d\xd1\xde<F\
+\x01U\x84\xbf\xb0ysA\x05\x00\xdc4eA\xacF\
+%?\xcaA\x86\x80\xe3\xb9\xad\xce\xfcMc\xc6\xe4\x89\
+;w\xe6\xc9\xe3\xb2r\xae\x8b\xb0Q\xeb\xc2HOg\
+\xdc\xd0k\xe7\xcd1Q\x18\xf4\xb3>P\x04\x15\x5c\xee\
+\xce\xfd^\xa7lC\xdb\xfb<\x15\x14\x1c\xdb]\x87\x86\
+c\xee\xefQ\x93\x85\xa1Ay\xb9\x06_\xe6\x96\xbdY\
+P\x06p\x02\x10\x9e9}\xc1-\xe0\xca\x03\x9c\xa0B\
+\x11\xcd9e\xaf\xe7\xb5\x02\x80\xc3\x91\x1d\xd3F\xc4\xf9\
+\x04\x90h\xc8\xbb\xe4\xf4\xc8#\xdd\x91\xb5\xc00\x8fp\
+ZQw\xd4\xff\xec\xe9)t\xf2\xe4\x1c\x8b\xac\xa1\x0f\
+\x83\xf3\x0cF\xe8\xf6\xd2\xc2\xa5/e=\x17\x99\xc9\x82\
+\x81\xb5\xad\xb5~\xc1_\xe3\x06\xbe\xc78*iP4\
+\xfa\x0c\x8aAP\x11\xe1\xf6\x9d\xe2/B\x00\x8b\x91\xc2\
+\xa8\xe5\xa8\xda\xd7\x88\x9a\xf2\xe6^e\xca\x93\x15|T\
+\x82\x0d\x86D\xbdG\xd4\xeb\xe7\x1fy\xf5\x81uI\xe9\
+Q\xd3\x18\xe5\xb7\x81\xd2}\xac5\xb4\xb2\xb4\xf4T\xb2\
+\x1a\x959[\x9f\xa0\x8f\x9a\x0b\xf0\xc1r\x18\x7fx\xfb\
+D\x80\xf4\xba2\x9f8c\xee\x0dP\xc4\x1c\x85\xf0\xd5\
+\xa3\x07\x9b\xb7}\xbe\xdf{'%\xb8\x81\x81?\xb5\xad\
+\xa8\xe0@fV\xcem\xa6A\x93\x17(1\xd7\x8d\xe4\
+'\xb0\x91C\x11\xb8\x0f\xd5!\xe4\xf2\xf7^\xc2P\x0b\
+\xe8;*\x11\xf1}m\x08\x8698\x07t\x1a\xc0]\
+\xef\xc7\xc1\x8f\xab\x11n\xeb}\xe7\xa1\xb1\xe8a\x1b\x90\
+\x08Q\xaf\xe9h\xac\xa9\xeb\xa3\xc3\xad\x07\x8a\x1f/)\
+\x5c\xb6n\xe2\xb4\x07\xfbC\x94\xf38\xc7\xdf\xb6m\xc8\
+\x7fuR\xd6\xbc_0\xce\xfe\x9b\x13a\xcd\xb6\x0d\xcb\
+\xb6\xff\xe0\x16&//\x8f\xee\xda\xef\x99\x03\x90\xe1\xe0\
+\xec\xdd\xad\xce\x15E\x9d\xe6z\xcfz^\xb6$\x9a~\
+\xe5\xf20\xf8\xdbNER[c+\xbcG\x1b \x87\
+z\xff\x90z\x93\x16\xd6D#\x08\x01\xbcM\x01\xf8\x9a\
+\xdb\xce\xd8\xaez\x08j\x01-5]\x8bV\x95N\x03\
+Sz\x0c\xf4\xb1\xe6S\xd7\xd3\x12\xd8\xcc\x94\xb5\xd6\xb5\
+\xbe\xf2\xe2\x03\x96_\x9f\xbe~|Vn\x16!\xb8\x9d\
+3|X\xea\xcc\x7f\xe6_\xde\xeb];u\xf7+\xe6\
+X\xc3\xed\xfd\xaeNV\x04\xbdF\xe7\xf2(\x88H'\
+\xeb%\x0e\x7fm\x0b|\xc7\x9b\xa1\x84\x7f\xf8\xc9\x9c(\
+\x8b\x16\x1a\xbd\x0a\xb6$#B\xfeH\xa7^\x8f\x88\x14\
+\xa6d;\x8c\xa91\x1dm\x92Z\x0d\xd8\xcd\x14\x92\xaf\
+\x8d\x1f\xdeU\xc7}M\x81W?z\xeb\x8a{/\xf8\
+\xb8\xca\xdb\x14P\x7fQz\x90\xc5gXy\xea\xb0X\
+\x22\x11\x15<^\x06\x09\x04\xc6d;t\xd1&\xb4V\
+4\xa2\xad\xc1\x0b\xce{\xcf_*\xad\x08\xbdI\x03[\
+\x92\x11L\xe1\xa7\x9a\xe6\x93\x11\x13k\x86)=\x16*\
+\x9d\xba\x83\xd7lf\x0a\xad\xa0\xb0\xea\xbd\xf5\xbc\xf6p\
+\x0ba\x92B/\xaaq\x158\xa7\xf5GZ\xe0\xae\xf5\
+)\x89\x03\xa3\x95\xf8\x016Uk\x1b!\xbe\x00\x87\xa8\
+U\xc1vY\x12\x0c\xc96x\x0e7 \xec\xe9\xdd\xb9\
+\x89\xc4~6\x08j\x01\x9cs\x10\x00\x8d\x15\x1e\xb4y\
+\xc3P\x1bu\xb0\xf4\x8d\x87\xc6r\xaa\xcf3\x1b\x08\xac\
+f\x8a\xe3{\x1bP}\xa0\x99\xca\x11\x05\xf7\xdcp\x1c\
+\xbb\x8e\x98\xb1\xb7\xe2b\x1cW\x05%\xe1\xd8\x9e:\xa1\
+\xee\xb0\x0b}\xafLTR\x12LB\xb3\x87\xa1-\xc8\
+\xa16\xe8\x10;\x22\x0dm\xf5\x1ex*\x1a\xbfS~\
+\xe1'\xc8\xc1u\xdc\x87\x90/\x0cY\xe1\xed\x873\x12\
+\xac \x94\x9c\xd0\xd1\x81h\x8b\x80\xa0\xbbM\xda\xb3\xbd\
+\x96\xf8\x9a\xdb\xc4\x1b\x85ChS\xa9\xd17>\x88\xd2\
+/b/\xeeqU\xc8\x1f\xc1\xbe\x9d\x15\x82%\xde\xc8\
+/\xbb&\x89\x98\xa2Tp\xb9\xdb\xe5^}\xbc\x05Z\
+\xbb\x11m\x0d^x\x8e\xd6w+\xef\x06\xbda\x04\x03\
+\x11\x04\xdc!\x18R\xec\x88I\x89\xee\xd0\xd4E\xa1}\
+\x5c%0\x19\xe5\x1fT\xa1\xa5\xd6\xa7\x8a\xe9\xe3\x83u\
+h\x04\xd7\x1d\xaa\xc4\x9f\xa5k\xf0\xfb\xd7\x0d?\x9eq\
+\x95\xa7\xdeG>\xd9\xfc-\x92\x07\xc5 mh\x0c\x02\
+\x92\x00\x97\x97\x81\xaa\x04\x18\x92m\xd0F\x1b\xe1=\xd6\
+\x80\xb6\x86\xae\xf2q\xd3q/\xb46\x03\xe2\xae\xea\x0b\
+\xd5\x89tO\x08`6PX\x8d@\xf5\xfe&T\xed\
+k\x84,\xb5\xd7W#n\xa8\xc2W\xef\xa5\xe0\xb1\xf0\
+\x8d?\xceq\x15\x00T\x1fhBs\x95\x07)\x83b\
+\xd0g@4\xbc\xbe\xf6~O\xd4\xaa`\x1f\x94\xdc\xae\
+W\x1d\xac\xeb8\xc4!\xea\xd5\xb0\xf6K\xe8t\xa4\xc7\
+\xa8oW-=5^|\xb2\xa3\x06\x913t\xf4\x1d\
+k\x07\xe3,\xda\x22\x08\xa8r\xee)\xeb\x1c\xed\xea)\
+{\x06\x08\x14\xdb\x09\x90\xf6}\xfa\xbdacR\xa16\
+\xe9P\xdb\xd8\xb9}\xe1\x0a\x03g\xbc\xd3\xd8J%\x02\
+16\x01,\x10\xc4\xa1\xcfk\xe1i\xec\xfd!:\x0e\
+\xd4sQ\xf8\xe5'E\x97\x1f\xb8\xa0\x11uE\xe6p\
+\x11L6\xc7\x86\x9b\xb0\xe7\xcb\x16\xb8<\xdf]/\x85\
+\xfc\x11|\xb6\xf5\x10\xe2\xd2\xcc\xc8\x18\x99\x88\xc8\x89q\
+\xbb\xa4\xb4\x8f\x99\xc8\x09\x8c(m\xaf\x87\xf4*\x86\xa3\
+\xbb\xabQ{\xa8\xf7\xc7\x19\x0dz\x8a\xd1\xd7\xc6\xc2\xad\
+\xb1\xb5IP\x91O\x8a.\xf0\xd6k\x0bJ\xf3\xef\xbf\
+Y\xb4\x8e\xee\x9b\x00\x97'\x1a\xafnl\xc0\xc62W\
+\xaf~\xdbP\xe1EC\x85\x17\x19#\xe2\x918\xc0\x0e\
+\x7f\x84\xb6O\x8fy{6\xb3\x18\x08j\xcb\x9b\xf0\xf5\
+7M\x90\xa5\xde\xed\x1eB\x80\x9f\x8f6c\xd1\x9c\x14\
+\x18\xa3\x04\xbc\xb7\x9fe\xbc\xf4\xbe\x94\x0d`\xce\xbfe\
+\xb80e\xca\x82\xd8\xb3}\xae3\xa8\x1e[\xf5\x8e\xb2\
+\xf1/\x7fW\xc0\x04\x15\xe6\xcdJ\xc6k\xf9\x031\xa4\
+\x7fT\xaf\x9d8\xba\xa7\x1e\xbbJ\x0e\x22\xd4\xe4\x81U\
+-\xc1\x1e\xa5\x00~?v\x95\x94\xe3\xc8\x97\xf5\x1d \
+\x09\x22\x85F\xd7\xfd,`\xf8 =\xfe\xfcD?,\
+^\x90\x06\x85\x08X\xfb\x0f\x86Wv\xb2\xf7\x94\xb0\xea\
+\xac\xc7\x12\xc7M\xcf\xee{\xde8j\xd2\x1d\x0f\x0cT\
+$\xb2\x88pb\xe4\xe0\xc7\xb9,\x15\x94\xbe\xb5\xaa\xe3\
+\xaf\x15\x99\xd3\xe7]\xc3\x81\x1c\xebe\xe3+Y\xdc\xf5\
+YY\xa3\x85\xb4_\x0e\xa60h\x81\xb7\xdfwcM\
+Q=\xea\x1a#\xe7\x9c\x0cD\x95\x80\xb4\x11q]Z\
+\x18\x00\x88\xb6\x8a\xf8\xf5\x8cxd\xde`GH\x02J\
+\xf70\xbc\xb3W)\x8f4~\xb3\xb1\xf1\xcb\xd7b\x14\
+N\x0b\xca\x9c\xcb\xf6\x9f\x5c\xefp\xe4\xdaB\x94\xcfa\
+\x0c\xfd\x08A\x1d\xe1\xf2\x8b%\xce\xe7\x8e\xfd \xa0&\
+O\xce\xb1DT\xf4^B\x90f\x12\xb4\x8b\xd7\xaf\x7f\
+\xb2a\xe2\xed\x0f\xf6\xe7\xb24\x1f\xa0\x9f\xe99\xdf\x1e\
+$\xec>\x80\xc8V\x8d\xb8t\xdd\xba\xa5\x81)3\x1f\
+\x9c\xa8\xc9\xb8%;~\xe05\x03\xa6]I\xd2~:\
+\x90\xa2-\xc8\xb0nS\x03\xde\xda\xee\x82?\xf0\xfd\x93\
+\x0f\xa1\x04\x89\xfd\xed\x105\x02T\x1a\x01\xa1@\x04\xd5\
+\xfb\xdb\x81\xd2i)\x1c\xe3\xa3q\xf7\xb4xh5\x04\
+\xdf\x1c\xe7X\xff\x11\xf3\x1c\xfe\xe6\x93j\xb9b\xdb\xd2\
+M\xaf?\xf5\xea\xa4I\xf7\x1ae\xad\xe9a\x01\x84B\
+\x91\xd6BP\xdf\xc4\xc1\xae&\x8a\xf0\xa7\x92\x8d\xcb\xbe\
+\xbd\xe9\xce\xfbbUa\xdd\x22\x01\xc4\x0dAY]\xbc\
+~EC\xaf\x80\x1a\xecp\xa8\xd3\x912\x0b`#\x04\
+\x82\xbf\x16o(\xf8\x10\x00~\xe2\xc8\xd5Y\x18\xb9\xac\
+l\xe3\xf2\xdd\x99Y9\x93\x01:\x81P\xe9\xf9\xe2\xc2\
+gw\xdf<\xfd\xfe\x91\x22W\xcd\xa6\x1c\xc7I\xb8u\
+\xa5j\xf8\xaf\xfb\xa9\xd5\xdam\xa3\xaf\x1a\x16?q\x04\
+%}\xe3\x08\xea\x1a#xiC=\xde~\xbf]\xdf\
+\xee\xdd\xb8\xca\x04\x83U\xdb1\xaeR\x14\x0e_s\x00\
+\x9e\x86\x00~>\xda\x8c;\xa7\xc4bP?=\x8e4\
+rl\xfa\x9c){\xf6|\xed\xd5\xb1\xc6\xc9\x87\x8f~\
+\xf2\xb9\xa1\xadu\x16\xe7,\x81I\xaaW\xca6?s\
+d\xc2\xd4\xdc\x0c\x22\xe07\x10\xc8\x8e\xad\x85\xcb\xdf\xbd\
+yZ\xee\x90\xe6\x8a\xc0\xc1\x93Z\xdb\xcd\xb7\xdd?D\
+T\xd4\xb3\x00\xb2w[\xd1\xb2W\xce\xec\x0f;\x015\
+nF\xf6\x15\x22\x13~\xcb\x18\xd9\xa9'\xd5N\xa7\xd3\
+\xa9\x00@\xe6\xad\xf3\xc7q\xca&\x11\x10?\xe7\x5c\xab\
+\x92#y\x9b6\xadr\x8d\x9b\x99m\xa2\xb2\xb0\x10\x5c\
+p\xcb\xb2\xef\x8d\xedo\xad\xae\x9b\xe0\xc8\x99\x03JF\
+1\x905\x833\x97)M\xae\x06\xe7O\x86D\xa7\xce\
+\xbcN\x80Q\x0b\xec\xfa\xc6\x8f\xd5o\xd4c\xdf\xa1\xef\
+N\xf1\xa9Cc!\xa8\x050\x99\xc1\xef\x0e\xa1\xf9\xb8\
+\x17}Su\x98{w\x02\xae\x1cfDD\x02\xde\xda\
+\xc5\xb0\xe3\xcb\x96\xe3\x01n\xb9\xab\xed\x1f\x0b\xea\x18!\
+\xd9\x9c\x93\xdd\xdb\x9c\xf9/\x8d\x9d\x91\x93\xa6b\xe4>\
+\x80\x8a\x11\xce\x9e\xdc\xee\xcco\xc9\xbcm~4g\xca\
+\xc3\x04\x82\x9f16\x94\x10\xf2\xd2\xd6\x0d\xcbKO\xd3\
+\xcf\xef\xa6\x84\x8f!\x84\xac*.\xcc\xdf\xd5\x09\xa8\x89\
+\x8e\xb9}\x00q\x11'Ju B\x9e\xdf\xb9\xb9\xc0\
+\x03\x00\x99\xb7\xe5\x0e\xe1\x0a\xf2@\xf0\x191\x07V\x95\
+\xac^\xdd6ujnFD\x85\xdf\x00\xd0\x81\xa3\x0f\
+\xa7d\xe9\xb6\xc2\xe5\x1fMt\xe4\xfc\x84\x80\xdc\xa3\x00\
+\x9bJ\x9d\xf9o\x8fsd\x0f\x16\x88\xf0\x18\x08\xf9\x22\
+i\xdc3\x95Q\x22\x16\xffb0I\x1f;\x9c\x82\x12\
+\xa0\xec\xbd\x16\xac\xd9P\x8f\xc6f\xa9\xc7q\x95,)\
+\xa8;\xd4\x02\xabI\xc0\xad\xe3\xa2\xe1\x98\x10\x03\xbd\x96\
+\xa2\xec+\x86\xed_\xf3\xa3m\x11\xb6\xb8n\xc7\xc3j\
+p>L&l\xc9\xdb\x85\x05\x15\x93\xa6\xcfs0\xce\
+o\x13\x80\xe7\xb7l\xc8\xdf1\xc9\xf1\xc0@\x85\x0a\x8b\
+\x08\xb8\x97p\xae\x85\x22\x14\x94l\x5c\xf6\xed\xec\xd9\xb3\
+U5n\xfd\xaf\x08\xc1U\x22\xc5\xe2\xcd\x85\xed\xca\xe6\
+\x09\x15\xf7^\x02>\x98\x04\xd9#\xc5\xc5+\x1a\xc8\xc9\
+Y\x9e \x10\xba\xa5p\xf9q\x00\xb8a\xca\xc3v\x9d\
+*2\x0b\xe0\x86\x88D\x9f\xfb\xdb\xa6\xa5\x8d]\xce\x1c\
+L\xbb\x7f\xc8\xf6\x8d\xab\xf6M\xbd}~jD\xe6\x0f\
+r\xa242\xd1Z`\x88\xec\x0b\x04y\x9f\xf9 J\
+\x9c\xa4`\xe9\xf6\xb7\x0a\xea&L\xcf\x19\xa4QG=\
+\xa2\x1f>\xab6.>%w\xc6\xb5T\xbc2\x9d\xc2\
+\xed\x95\xb1\xe5\x1d\x17^,\xac\xefV\xf9\x94%\x05Y\
+\xe3\xa3qoV<\x8cQ\x02\x0e\xd6q\xbc\xf6!\xe3\
+\x87k\xfck\x02\xbb\x96E\x0b\x01\xdf#\x9b6\x15\x1c\
+\x18;#'\x8d*\xc8\x11\x08\x91}\x8d\xbb\x17\x99L\
+W\xeb\x98F\xba\x97\x10\x0cP\xe4\xc8\x92\xd2\xb7VU\
+\x8ew\xe4\x8c(u\x16\xec9\xfb\x88\x8e\xce\xe1`j\
+I#>\xfa\xb7uK\x03'?\xf7\xd3\xb0\xf7\x9fo\
+\xfc\xd9\xdd\x85\xa3\xc6e\xe5\x5c'p\xba\x90P\xf2\xa7\
+\x92\xa2e\xdd\xfe\xd3r\xdc\xb8l\x8dh\x14\xe7\x03$\
+>\xc2y\xdevg~\xcb\xa4\xe993\x19\xe8\x14\x81\
+(\xcfl)\x5c\xf1\xe9\x98\xc99\x16\x83\x9a>\x03\xc2\
+\x9bi\xd0\xfbdq\xf1\xcb\xbe\x19\xf9\xc14\xb5V\x95\
+wy\x1f\xdc}\xe7u\x14q\xe6v\xfeZ\xfab\x0d\
+>\xd9\xdd\xda\xe9\x1e\x83\xfa\xea\x913+\x09C\x07\xe8\
+\xd1\x1a\x04^\xda\xa9\xe0\xcbc\xfc\xcd\x18\x8b\xf8P\xfe\
+LrtT\xe6l}\xbc\xce\x90\x0d\xf0>\x8c\xcby\
+e\xceg\x9bnq\xe4^\xce\x80<F\xe1\xdcV\x94\
+_8~\xea\xfd\xa9\x82\xa8\xcef\x04\x81\xab\x06\x99\x1f\
+\xcb\xcb\xcb\xeb\xb6\xf1\x9b4)\xb7\x1f\xd7\xf0\xa7\x89@\
+\x9e:}\xdbu\x9f\xf58'=\x0f>s\xa6\x82\x93\
+\xe9\x84\xd3g\xb7:\x97\xfd\xb3}\xac5o\x1a\xe7\xfc\
+A\x05\xda\xcc2\xe7SM\xe3\xa7\xde\x9fJ\x05\xf5\xfb\
+\x80r\xc7V\xe7\xca\x7f\x9ey\x8d9/\xf1\x81~I\
+.\xbaa0\x1d>\xf5J\x0a\xa3\x0e\xd8s \x80\xaf\
+\xf7\x07\x00\x02\x0c\xe9\xaf\xc3\xa8\xcb\x8d\x88\xc8@\xc9n\
+\x86w\xf6\xf1c\x01?\xbf\xf7\xb5l\xd5\xce.\xfe\xdc\
+>\x7f\x14\x95\x95\x22\xceC?\xdf\xea|\xa1\xe6F\xc7\
+Cf-\x09\xbfK\x08\x7f\xb1\xa4h\xc5_\x00`\xca\
+\xf4\x05C%\xae<N\x08^-)\xca\xdf\xf2/\xed\
+\xf5\xc6:\xe6\x0c\x14\x89\xf6)\x02\xea,\xd9\xb0l\xfd\
+YC\x98\x93\xc79\xc8\x97\xdb\x8a\x96\x17\xdc\xe8\x98\xdb\
+GK\xe8\xef\xc1P\xedo\xde\xb3x\xe7\xce\x9d]\xfa\
+\x9b\xd9/+sT\x94/\x1c?\x82\xa4\x8d\x1f\xde\xb9\
+\xfe\xfd\xaa\x92\xe3/\x7fW<A\x89>\xf6\xcb\xb4\xa6\
+\x17\xef\xba9>p\xe6x\xcd\x10\xeb]\x00\xf0t\x95\
+\xa4[\xb8i\xd3\x93-\x99\x8e\xdc;\x002Y\xa0\xe2\
+\xc2\xcdE\xcf\x1c\xe9\x02jV\xce\xbd\x00\xb9\x99E\xc4\
+\xdf\x95m\xee\xfa\xfd9\x035qz\xce\xf3`\xdcK\
+\xc3\x9a'\x8b\x8b\x97t{$e\xf2\x8cEi2\x0f\
+\x95\x10\xd0\x87K\x8a\x96o\x05\x80\x89\xd3\xe6\xf6\x87 \
+\xfcU\xe0X\xb2\xc5\x99\xdf\xe5\x9f\x9a\xab\xde\xe3\x86\x0f\
+\xf6\xcb\xf3\x93\xcc\xe4\xd11\x83\x89\xa8\x12\x80\xcf\x8e2\
+^\xd9L\xfe\xaa\x88B\xce\xda_\x11\xcf\xd9&D\x9c\
+\x09\x8fPB\x1f:I\x11\x99\xd3\xe7M\x04\xf8\x1f\x05\
+\xc2\x1d'\x89\xf9l6*s\xb6>!*\xeaa\xae\
+\x10\xc2\xfc\xd2\x13ee\xcf\x86\xcf\x1bP'\x07\x9e\xdd\
+n\xc7\x09s\xac\xd4\xa0\xcf\x01W\xe2|\x11,:\x99\
+9o\xbf}\x8e\xb5U\xd1<\x0a\x0e\x9f\xe2\xcbx\xaa\
+\xacln\xb7N-\xde\xc2\xe3\x0e7*\xd7\x1850\
+E\x10\xdc\xfe\xc2]\xc6\xc6\xee\xd6\xdes\xcf=\xda\xe6\
+\xa0\xed1\xce\xb9A\xa4\xe4\x7fO&\xa2)S\xee\x8b\
+\x8d\xa8u\xbf'\x9c\xb8\xfc*q\xcd\xce\xd7\x97Tw\
+\xcf\xb3+5=\xf9s^e\x961c\xc6\x88\xa6\xd8\
+Q3\x15\xb0_\x10EY\xbc\xf5\xc48~\xd4\xa8\xd9\
+\xaa\x84\x8c\xa8\xdf\x82\xf0\xab\x08\x17\xf3J\x9cK\x8f\xfd\
++t\xae\x89w>\xd4\x07\xe1\xf0\x13`d\xe7\xd67\
+\xf3\xd7\x9e\x94[\xc7\xde\xb1p\xa0\x18\x91\x1e\x22\x9c\xff\
+\xa3\xc4Y\xb0\xf6\x82\xeaQ\xe3fd_!0\xf1\x11\
+\xae\xf0\xd2m\x1b\x0b^\xee\xe8\xffn\xcd\xbd\x89S>\
+\x93\x02\xabOV\xf6\xffj\x9bp\xeb\xdck\x09\x11\x1e\
+\xa6`/\x16;W\x14\x9fJ<\x0f8\x08\xa7\xf7@\
+\x22\xbf\xdb\xbai\xf9W\x17\x06\xa8\x99\x0b\x93=\x11\xc9\
+\xf5\xb13?\x08\x00\xe3\x1c\xd9\x83E*\xce\x03#\xc7\
+J\x9c\xcb\x17\xe3\xdfl\xb3g\xcfV\xd5y\xa3~\xc3\
+\x19\x06\x10H+N6\xba?q\xe4\xeabDf\xea\
+\xae\x8f\xfb\xb7l\xbd\x8e\x1a\xc4\x91;V!d\x8c\x10\
+R\xf2\x8b\x8b\x7f\xb8C\xe7\xc3\xc69\xb2c\x04\xaaZ\
+\xc4\x99\xf2\xfe\xb6\xd3\xa2\xeb\xe2\xb0\xb3\x89\xd5\x17\xd8\xf2\
+\xf2\xf2(.\xd9%\xbbd\x97\xec?\xc0\xfe\x0f\x14\xd5\
+\xea\x92\xe4\xa3Oi\x00\x00\x00\x00IEND\xaeB\
+`\x82\
+\x00\x00\x012\
+<\
+svg width=\x2248\x22 h\
+eight=\x2248\x22 viewB\
+ox=\x220 0 48 48\x22 f\
+ill=\x22none\x22 xmlns\
+=\x22http://www.w3.\
+org/2000/svg\x22>\x0a<\
+path d=\x22M12.4501\
+ 37.65L10.3501 3\
+5.55L21.9001 24L\
+10.3501 12.45L12\
+.4501 10.35L24.0\
+001 21.9L35.5501\
+ 10.35L37.6501 1\
+2.45L26.1001 24L\
+37.6501 35.55L35\
+.5501 37.65L24.0\
+001 26.1L12.4501\
+ 37.65Z\x22 fill=\x22#\
+667085\x22/>\x0a</svg>\
+\x0a\
+\x00\x00\x04\x83\
+<\
+svg width=\x2248\x22 h\
+eight=\x2248\x22 viewB\
+ox=\x220 0 48 48\x22 f\
+ill=\x22none\x22 xmlns\
+=\x22http://www.w3.\
+org/2000/svg\x22>\x0a<\
+path d=\x22M10.3929\
+ 26.4C9.73097 26\
+.4 9.16667 26.16\
+43 8.7 25.6929C8\
+.23333 25.2215 8\
+ 24.6548 8 23.99\
+29C8 23.3309 8.2\
+357 22.7666 8.70\
+71 22.3C9.17847 \
+21.8333 9.74513 \
+21.6 10.4071 21.\
+6C11.069 21.6 11\
+.6333 21.8357 12\
+.1 22.3071C12.56\
+67 22.7784 12.8 \
+23.3451 12.8 24.\
+0071C12.8 24.669\
+ 12.5643 25.2333\
+ 12.0929 25.7C11\
+.6215 26.1666 11\
+.0549 26.4 10.39\
+29 26.4ZM23.9929\
+ 26.4C23.331 26.\
+4 22.7667 26.164\
+3 22.3 25.6929C2\
+1.8333 25.2215 2\
+1.6 24.6548 21.6\
+ 23.9929C21.6 23\
+.3309 21.8357 22\
+.7666 22.3071 22\
+.3C22.7785 21.83\
+33 23.3451 21.6 \
+24.0071 21.6C24.\
+669 21.6 25.2333\
+ 21.8357 25.7 22\
+.3071C26.1667 22\
+.7784 26.4 23.34\
+51 26.4 24.0071C\
+26.4 24.669 26.1\
+643 25.2333 25.6\
+929 25.7C25.2215\
+ 26.1666 24.6549\
+ 26.4 23.9929 26\
+.4ZM37.5929 26.4\
+C36.931 26.4 36.\
+3667 26.1643 35.\
+9 25.6929C35.433\
+3 25.2215 35.2 2\
+4.6548 35.2 23.9\
+929C35.2 23.3309\
+ 35.4357 22.7666\
+ 35.9071 22.3C36\
+.3785 21.8333 36\
+.9451 21.6 37.60\
+71 21.6C38.269 2\
+1.6 38.8333 21.8\
+357 39.3 22.3071\
+C39.7667 22.7784\
+ 40 23.3451 40 2\
+4.0071C40 24.669\
+ 39.7643 25.2333\
+ 39.2929 25.7C38\
+.8215 26.1666 38\
+.2549 26.4 37.59\
+29 26.4Z\x22 fill=\x22\
+#667085\x22/>\x0a</svg\
+>\x0a\
+\x00\x00\x037\
+<\
+svg width=\x2224\x22 h\
+eight=\x2224\x22 viewB\
+ox=\x220 0 24 24\x22 f\
+ill=\x22none\x22 xmlns\
+=\x22http://www.w3.\
+org/2000/svg\x22>\x0a<\
+path d=\x22M0 12C0 \
+5.37258 5.37258 \
+0 12 0C18.6274 0\
+ 24 5.37258 24 1\
+2C24 18.6274 18.\
+6274 24 12 24C5.\
+37258 24 0 18.62\
+74 0 12Z\x22 fill=\x22\
+#E6E6E6\x22/>\x0a<path\
+ d=\x22M15.5 12C16.\
+3284 12 17 12.67\
+16 17 13.5V14C17\
+ 15.9714 15.1405\
+ 18 12 18C8.8595\
+1 18 7 15.9714 7\
+ 14V13.5C7 12.67\
+16 7.67157 12 8.\
+5 12H15.5ZM15.5 \
+13H8.5C8.22386 1\
+3 8 13.2239 8 13\
+.5V14C8 15.4376 \
+9.43216 17 12 17\
+C14.5678 17 16 1\
+5.4376 16 14V13.\
+5C16 13.2239 15.\
+7761 13 15.5 13Z\
+M12 5.5C13.5188 \
+5.5 14.75 6.7312\
+2 14.75 8.25C14.\
+75 9.76878 13.51\
+88 11 12 11C10.4\
+812 11 9.25 9.76\
+878 9.25 8.25C9.\
+25 6.73122 10.48\
+12 5.5 12 5.5ZM1\
+2 6.5C11.0335 6.\
+5 10.25 7.2835 1\
+0.25 8.25C10.25 \
+9.2165 11.0335 1\
+0 12 10C12.9665 \
+10 13.75 9.2165 \
+13.75 8.25C13.75\
+ 7.2835 12.9665 \
+6.5 12 6.5Z\x22 fil\
+l=\x22#616161\x22/>\x0a</\
+svg>\x0a\x0a\
+\x00\x00\x00\xdf\
+<\
+svg width=\x2248\x22 h\
+eight=\x2248\x22 viewB\
+ox=\x220 0 48 48\x22 f\
+ill=\x22none\x22 xmlns\
+=\x22http://www.w3.\
+org/2000/svg\x22>\x0a<\
+path d=\x22M18.9002\
+ 35.7L7.7002 24.\
+5L9.8502 22.35L1\
+8.9002 31.4L38.1\
+002 12.2L40.2502\
+ 14.35L18.9002 3\
+5.7Z\x22 fill=\x22#667\
+085\x22/>\x0a</svg>\x0a\
+\x00\x00\x01V\
+<\
+svg width=\x2248\x22 h\
+eight=\x2248\x22 viewB\
+ox=\x220 0 48 48\x22 f\
+ill=\x22none\x22 xmlns\
+=\x22http://www.w3.\
+org/2000/svg\x22>\x0a<\
+path d=\x22M9 42C8.\
+2 42 7.5 41.7 6.\
+9 41.1C6.3 40.5 \
+6 39.8 6 39V9C6 \
+8.2 6.3 7.5 6.9 \
+6.9C7.5 6.3 8.2 \
+6 9 6H23.55V9H9V\
+39H23.55V42H9ZM3\
+3.3 32.75L31.15 \
+30.6L36.25 25.5H\
+18.75V22.5H36.15\
+L31.05 17.4L33.2\
+ 15.25L42 24.05L\
+33.3 32.75Z\x22 fil\
+l=\x22#667085\x22/>\x0a</\
+svg>\x0a\
+\x00\x00\x01f\
+<\
+svg width=\x2248\x22 h\
+eight=\x2248\x22 viewB\
+ox=\x220 0 48 48\x22 f\
+ill=\x22none\x22 xmlns\
+=\x22http://www.w3.\
+org/2000/svg\x22>\x0a<\
+path d=\x22M24.45 4\
+2V39H39V9H24.45V\
+6H39C39.8 6 40.5\
+ 6.3 41.1 6.9C41\
+.7 7.5 42 8.2 42\
+ 9V39C42 39.8 41\
+.7 40.5 41.1 41.\
+1C40.5 41.7 39.8\
+ 42 39 42H24.45Z\
+M20.55 32.75L18.\
+4 30.6L23.5 25.5\
+H6V22.5H23.4L18.\
+3 17.4L20.45 15.\
+25L29.25 24.05L2\
+0.55 32.75Z\x22 fil\
+l=\x22#667085\x22/>\x0a</\
+svg>\x0a\
+"
+
+qt_resource_name = b"\
+\x00\x02\
+\x00\x00\x07\x84\
+\x00q\
+\x00t\
+\x00\x03\
+\x00\x00x<\
+\x00q\
+\x00m\x00l\
+\x00\x0c\
+\x0fN\xa7E\
+\x00C\
+\x00o\x00l\x00o\x00r\x00P\x00a\x00l\x00e\x00t\x00t\x00e\
+\x00\x05\
+\x00o\xa6S\
+\x00i\
+\x00c\x00o\x00n\x00s\
+\x00\x08\
+\x03\xc6T'\
+\x00p\
+\x00l\x00u\x00s\x00.\x00s\x00v\x00g\
+\x00\x0c\
+\x07\x11\xd4\xa7\
+\x00u\
+\x00s\x00e\x00r\x00M\x00a\x00s\x00k\x00.\x00s\x00v\x00g\
+\x00\x06\
+\x07\x87WG\
+\x00q\
+\x00t\x00.\x00p\x00n\x00g\
+\x00\x0a\
+\x08\xab\xd7\x87\
+\x00u\
+\x00p\x00d\x00a\x00t\x00e\x00.\x00s\x00v\x00g\
+\x00\x0a\
+\x0c\xad\x02\x87\
+\x00d\
+\x00e\x00l\x00e\x00t\x00e\x00.\x00s\x00v\x00g\
+\x00\x08\
+\x0b\x07W\xa7\
+\x00e\
+\x00d\x00i\x00t\x00.\x00s\x00v\x00g\
+\x00\x0e\
+\x05\x92p\xc7\
+\x00t\
+\x00e\x00s\x00t\x00s\x00e\x00r\x00v\x00e\x00r\x00.\x00p\x00n\x00g\
+\x00\x09\
+\x06\x98\x8e\xa7\
+\x00c\
+\x00l\x00o\x00s\x00e\x00.\x00s\x00v\x00g\
+\x00\x08\
+\x06\xb6W\xa7\
+\x00d\
+\x00o\x00t\x00s\x00.\x00s\x00v\x00g\
+\x00\x08\
+\x09\xc5UG\
+\x00u\
+\x00s\x00e\x00r\x00.\x00s\x00v\x00g\
+\x00\x06\
+\x07^Z\xc7\
+\x00o\
+\x00k\x00.\x00s\x00v\x00g\
+\x00\x0a\
+\x06\xc91\x07\
+\x00l\
+\x00o\x00g\x00o\x00u\x00t\x00.\x00s\x00v\x00g\
+\x00\x09\
+\x0e\x01\xbcg\
+\x00l\
+\x00o\x00g\x00i\x00n\x00.\x00s\x00v\x00g\
+"
+
+qt_resource_struct = b"\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x0a\x00\x02\x00\x00\x00\x01\x00\x00\x00\x03\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x16\x00\x02\x00\x00\x00\x01\x00\x00\x00\x04\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x004\x00\x02\x00\x00\x00\x0d\x00\x00\x00\x05\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00D\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
+\x00\x00\x01\x8d\x87\xa2.\x0a\
+\x00\x00\x00\xd4\x00\x00\x00\x00\x00\x01\x00\x00\x13\x96\
+\x00\x00\x01\x8d\x87\xa2.\x0a\
+\x00\x00\x00\xf6\x00\x00\x00\x00\x00\x01\x00\x00.-\
+\x00\x00\x01\x8d\x87\xa2.\x0a\
+\x00\x00\x01\x0e\x00\x00\x00\x00\x00\x01\x00\x00/c\
+\x00\x00\x01\x8d\x87\xa2.\x0a\
+\x00\x00\x01L\x00\x00\x00\x00\x00\x01\x00\x008\x08\
+\x00\x00\x01\x8d\x87\xa2.\x0a\
+\x00\x00\x00Z\x00\x00\x00\x00\x00\x01\x00\x00\x00\xc4\
+\x00\x00\x01\x8d\x87\xa2.\x0a\
+\x00\x00\x01:\x00\x00\x00\x00\x00\x01\x00\x007%\
+\x00\x00\x01\x8d\x87\xa2.\x0a\
+\x00\x00\x00x\x00\x00\x00\x00\x00\x01\x00\x00\x01\x5c\
+\x00\x00\x01\x8d\x87\xa2.\x0a\
+\x00\x00\x00\x8a\x00\x00\x00\x00\x00\x01\x00\x00\x0c\xf3\
+\x00\x00\x01\x8d\x87\xa2.\x0a\
+\x00\x00\x01$\x00\x00\x00\x00\x00\x01\x00\x003\xea\
+\x00\x00\x01\x8d\x87\xa2.\x0a\
+\x00\x00\x00\xbe\x00\x00\x00\x00\x00\x01\x00\x00\x11\x9b\
+\x00\x00\x01\x8d\x87\xa2.\x0a\
+\x00\x00\x00\xa4\x00\x00\x00\x00\x00\x01\x00\x00\x0f\xe4\
+\x00\x00\x01\x8d\x87\xa2.\x0a\
+\x00\x00\x01f\x00\x00\x00\x00\x00\x01\x00\x009b\
+\x00\x00\x01\x8d\x87\xa2.\x0a\
+"
+
+def qInitResources():
+ QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+def qCleanupResources():
+ QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+qInitResources()
diff --git a/examples/demos/colorpaletteclient/restservice.py b/examples/demos/colorpaletteclient/restservice.py
new file mode 100644
index 000000000..d334ecd03
--- /dev/null
+++ b/examples/demos/colorpaletteclient/restservice.py
@@ -0,0 +1,53 @@
+# Copyright (C) 2024 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import Property, Signal, ClassInfo
+from PySide6.QtNetwork import (QNetworkAccessManager, QRestAccessManager,
+ QNetworkRequestFactory, QSslSocket)
+from PySide6.QtQml import QmlElement, QPyQmlParserStatus, ListProperty
+from abstractresource import AbstractResource
+
+QML_IMPORT_NAME = "ColorPalette"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+@ClassInfo(DefaultProperty="resources")
+class RestService(QPyQmlParserStatus):
+
+ urlChanged = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.m_resources = []
+ self.m_qnam = QNetworkAccessManager()
+ self.m_qnam.setAutoDeleteReplies(True)
+ self.m_manager = QRestAccessManager(self.m_qnam)
+ self.m_serviceApi = QNetworkRequestFactory()
+
+ @Property(str, notify=urlChanged)
+ def url(self):
+ return self.m_serviceApi.baseUrl()
+
+ @url.setter
+ def url(self, url):
+ if self.m_serviceApi.baseUrl() != url:
+ self.m_serviceApi.setBaseUrl(url)
+ self.urlChanged.emit()
+
+ @Property(bool, constant=True)
+ def sslSupported(self):
+ return QSslSocket.supportsSsl()
+
+ def classBegin(self):
+ pass
+
+ def componentComplete(self):
+ for resource in self.m_resources:
+ resource.setAccessManager(self.m_manager)
+ resource.setServiceApi(self.m_serviceApi)
+
+ def appendResource(self, r):
+ self.m_resources.append(r)
+
+ resources = ListProperty(AbstractResource, appendResource)
diff --git a/examples/demos/documentviewer/abstractviewer.py b/examples/demos/documentviewer/abstractviewer.py
new file mode 100644
index 000000000..4039fe9fb
--- /dev/null
+++ b/examples/demos/documentviewer/abstractviewer.py
@@ -0,0 +1,185 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject
+
+from PySide6.QtWidgets import (QDialog, QMenu)
+from PySide6.QtCore import Signal, Slot
+from PySide6.QtPrintSupport import QPrinter, QPrintDialog
+
+
+MENU_NAME = "qtFileMenu"
+
+
+class AbstractViewer(QObject):
+
+ uiInitialized = Signal()
+ printingEnabledChanged = Signal(bool)
+ showMessage = Signal(str, int)
+ documentLoaded = Signal(str)
+
+ def __init__(self):
+ super().__init__()
+ self._file = None
+ self._widget = None
+ self._menus = []
+ self._toolBars = []
+ self._printingEnabled = False
+ self._actions = []
+ self._fileMenu = None
+
+ def __del__(self):
+ self.cleanup()
+
+ def viewerName(self):
+ return ""
+
+ def saveState(self):
+ return False
+
+ def restoreState(self, state):
+ return False
+
+ def supportedMimeTypes():
+ return []
+
+ def init(self, file, widget, mainWindow):
+ self._file = file
+ self._widget = widget
+ self._uiAssets_mainWindow = mainWindow
+
+ def isEmpty(self):
+ return not self.hasContent()
+
+ def isPrintingEnabled(self):
+ return self._printingEnabled
+
+ def hasContent(self):
+ return False
+
+ def supportsOverview(self):
+ return False
+
+ def isModified(self):
+ return False
+
+ def saveDocument(self):
+ return False
+
+ def saveDocumentAs(self):
+ return False
+
+ def actions(self):
+ return self._actions
+
+ def widget(self):
+ return self._widget
+
+ def menus(self):
+ return self._menus
+
+ def mainWindow(self):
+ return self._uiAssets_mainWindow
+
+ def statusBar(self):
+ return self.mainWindow().statusBar()
+
+ def menuBar(self):
+ return self.mainWindow().menuBar()
+
+ def maybeEnablePrinting(self):
+ self.maybeSetPrintingEnabled(True)
+
+ def disablePrinting(self):
+ self.maybeSetPrintingEnabled(False)
+
+ def isDefaultViewer(self):
+ return False
+
+ def viewer(self):
+ return self
+
+ def statusMessage(self, message, type="", timeout=8000):
+ msg = self.viewerName()
+ if type:
+ msg += "/" + type
+ msg += ": " + message
+ self.showMessage.emit(msg, timeout)
+
+ def addToolBar(self, title):
+ bar = self.mainWindow().addToolBar(title)
+ name = title.replace(' ', '')
+ bar.setObjectName(name)
+ self._toolBars.append(bar)
+ return bar
+
+ def addMenu(self, title):
+ menu = QMenu(title, self.menuBar())
+ menu.setObjectName(title)
+ self.menuBar().insertMenu(self._uiAssets_help, menu)
+ self._menus.append(menu)
+ return menu
+
+ def cleanup(self):
+ # delete all objects created by the viewer which need to be displayed
+ # and therefore parented on MainWindow
+ if self._file:
+ self._file = None
+ self._menus.clear()
+ self._toolBars.clear()
+
+ def fileMenu(self):
+ if self._fileMenu:
+ return self._fileMenu
+
+ menus = self.mainWindow().findChildren(QMenu)
+ for menu in menus:
+ if menu.objectName() == MENU_NAME:
+ self._fileMenu = menu
+ return self._fileMenu
+ self._fileMenu = self.addMenu("File")
+ self._fileMenu.setObjectName(MENU_NAME)
+ return self._fileMenu
+
+ @Slot()
+ def print_(self):
+ type = "Printing"
+ if not self.hasContent():
+ self.statusMessage("No content to print.", type)
+ return
+ printer = QPrinter(QPrinter.HighResolution)
+ dlg = QPrintDialog(printer, self.mainWindow())
+ dlg.setWindowTitle("Print Document")
+ if dlg.exec() == QDialog.Accepted:
+ self.printDocument(printer)
+ else:
+ self.statusMessage("Printing canceled!", type)
+ return
+ state = printer.printerState()
+ message = self.viewerName() + " :"
+ if state == QPrinter.PrinterState.Aborted:
+ message += "Printing aborted."
+ elif state == QPrinter.PrinterState.Active:
+ message += "Printing active."
+ elif state == QPrinter.PrinterState.Idle:
+ message += "Printing completed."
+ elif state == QPrinter.PrinterState.Error:
+ message += "Printing error."
+ self.statusMessage(message, type)
+
+ def maybeSetPrintingEnabled(self, enabled):
+ if enabled == self._printingEnabled:
+ return
+ self._printingEnabled = enabled
+ self.printingEnabledChanged.emit(enabled)
+
+ def initViewer(self, back, forward, help, tabs):
+ self._uiAssets_back = back
+ self._uiAssets_forward = forward
+ self._uiAssets_help = help
+ self._uiAssets_tabs = tabs
+ # Tabs can be populated individually by the viewer, if it
+ # supports overview
+ tabs.clear()
+ tabs.setVisible(self.supportsOverview())
+ self.uiInitialized.emit()
diff --git a/examples/demos/documentviewer/doc/abstractviewer.py.rstinc b/examples/demos/documentviewer/doc/abstractviewer.py.rstinc
new file mode 100644
index 000000000..4c040b956
--- /dev/null
+++ b/examples/demos/documentviewer/doc/abstractviewer.py.rstinc
@@ -0,0 +1,25 @@
+``AbstractViewer`` provides a generalized API to view, save, and print a
+document. Properties of both the document and the viewer can be queried:
+
+ * Does the document have content?
+ * Has it been modified?
+ * Is an overview (thumbnails or bookmarks) supported?
+
+``AbstractViewer`` provides protected methods for derived classes to create
+actions and menus on the main window. In order to display these assets on the
+main window, they are parented to it. ``AbstractViewer`` is responsible for
+removing and destroying the UI assets it creates. It inherits from ``QObject``
+to implement signals and slots.
+
+The ``uiInitialized()`` signal is emitted after a viewer receives all necessary
+information about UI assets on the main window.
+
+The ``printingEnabledChanged()`` signal is emitted when document printing is
+either enabled or disabled. This happens after a new document was successfully
+loaded, or, for example, all content was removed.
+
+The ``printStatusChanged`` signal notifies about changes in its progress after
+starting the printing process.
+
+The ``documentLoaded()`` signal notifies the application that a document was
+successfully loaded.
diff --git a/examples/demos/documentviewer/doc/documentviewer.png b/examples/demos/documentviewer/doc/documentviewer.png
new file mode 100644
index 000000000..750aca589
--- /dev/null
+++ b/examples/demos/documentviewer/doc/documentviewer.png
Binary files differ
diff --git a/examples/demos/documentviewer/doc/documentviewer.rst b/examples/demos/documentviewer/doc/documentviewer.rst
new file mode 100644
index 000000000..b21e3f43e
--- /dev/null
+++ b/examples/demos/documentviewer/doc/documentviewer.rst
@@ -0,0 +1,13 @@
+Document Viewer Example
+=======================
+
+A Widgets application to display and print JSON, text, and PDF files.
+
+Document Viewer demonstrates how to use a QMainWindow with static
+and dynamic toolbars, menus, and actions.
+
+
+.. image:: documentviewer.png
+ :width: 90%
+ :align: center
+ :alt: Document Viewer Example
diff --git a/examples/demos/documentviewer/doc/jsonviewer.py.rstinc b/examples/demos/documentviewer/doc/jsonviewer.py.rstinc
new file mode 100644
index 000000000..1ba92f247
--- /dev/null
+++ b/examples/demos/documentviewer/doc/jsonviewer.py.rstinc
@@ -0,0 +1,11 @@
+``JsonViewer`` displays a JSON file in a ``QTreeView``. Internally, it loads
+the contents of a file into a data structure via a string and uses it to
+populate a custom tree model with JsonItemModel.
+
+The JSON viewer demonstrates how to implement a custom item model
+inherited from ``QAbstractItemModel``.
+
+``JsonViewer`` uses the top-level objects of the document as bookmarks for
+navigation. Other nodes (keys and values) can be added as additional bookmarks,
+or removed from the bookmark list. A ``QLineEdit`` is used as a search field to
+navigate through the JSON tree.
diff --git a/examples/demos/documentviewer/doc/mainwindow.py.rstinc b/examples/demos/documentviewer/doc/mainwindow.py.rstinc
new file mode 100644
index 000000000..976443ceb
--- /dev/null
+++ b/examples/demos/documentviewer/doc/mainwindow.py.rstinc
@@ -0,0 +1,11 @@
+The ``MainWindow`` class provides an application screen with menus, actions,
+and a toolbar. It can open a file, automatically detecting its content type. It
+also maintains a list of previously opened files, using ``QSettings`` to store
+and reload settings when launched. The ``MainWindow`` creates a suitable viewer
+for the opened file, based on its content type, and provides support for
+printing a document.
+
+``MainWindow's`` constructor initializes the user interface created in Qt
+Designer. The ``mainwindow.ui`` file provides a ``QTabWidget`` on the left,
+showing bookmarks and thumbnails. On the right, there is a ``QScrollArea`` for
+viewing file content.
diff --git a/examples/demos/documentviewer/doc/viewerfactory.py.rstinc b/examples/demos/documentviewer/doc/viewerfactory.py.rstinc
new file mode 100644
index 000000000..1627a576b
--- /dev/null
+++ b/examples/demos/documentviewer/doc/viewerfactory.py.rstinc
@@ -0,0 +1,3 @@
+The ``ViewerFactory`` class manages viewers for known file types. It loads all
+available viewers on construction and provides a public API to query the loaded
+plugins, their names, and supported MIME types.
diff --git a/examples/demos/documentviewer/documentviewer.pyproject b/examples/demos/documentviewer/documentviewer.pyproject
new file mode 100644
index 000000000..461e3b9d7
--- /dev/null
+++ b/examples/demos/documentviewer/documentviewer.pyproject
@@ -0,0 +1,14 @@
+{
+ "files": ["abstractviewer.py",
+ "documentviewer.qrc",
+ "main.py",
+ "mainwindow.py",
+ "mainwindow.ui",
+ "jsonviewer/jsonviewer.py",
+ "pdfviewer/pdfviewer.py",
+ "pdfviewer/zoomselector.py",
+ "txtviewer/txtviewer.py",
+ "recentfilemenu.py",
+ "recentfiles.py",
+ "viewerfactory.py"]
+}
diff --git a/examples/demos/documentviewer/documentviewer.qrc b/examples/demos/documentviewer/documentviewer.qrc
new file mode 100644
index 000000000..0aeeac229
--- /dev/null
+++ b/examples/demos/documentviewer/documentviewer.qrc
@@ -0,0 +1,42 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource prefix="demos/documentviewer">
+ <file>images/copy@2x.png</file>
+ <file>images/copy.png</file>
+ <file>images/cut@2x.png</file>
+ <file>images/cut.png</file>
+ <file>images/go-next-view@2x.png</file>
+ <file>images/go-next-view-page@2x.png</file>
+ <file>images/go-next-view-page.png</file>
+ <file>images/go-next-view.png</file>
+ <file>images/go-previous-view@2x.png</file>
+ <file>images/go-previous-view-page@2x.png</file>
+ <file>images/go-previous-view-page.png</file>
+ <file>images/go-previous-view.png</file>
+ <file>images/magnifier@2x.png</file>
+ <file>images/magnifier.png</file>
+ <file>images/open@2x.png</file>
+ <file>images/open.png</file>
+ <file>images/paste@2x.png</file>
+ <file>images/paste.png</file>
+ <file>images/print2x.png</file>
+ <file>images/print.png</file>
+ <file>images/qt-logo@2x.png</file>
+ <file>images/qt-logo.png</file>
+ <file>images/zoom-fit-best@2x.png</file>
+ <file>images/zoom-fit-best.png</file>
+ <file>images/zoom-fit-width@2x.png</file>
+ <file>images/zoom-fit-width.png</file>
+ <file>images/zoom-in@2x.png</file>
+ <file>images/zoom-in.png</file>
+ <file>images/zoom-original@2x.png</file>
+ <file>images/zoom-original.png</file>
+ <file>images/zoom-out@2x.png</file>
+ <file>images/zoom-out.png</file>
+ <file>images/zoom-previous@2x.png</file>
+ <file>images/zoom-previous.png</file>
+ <file>images/document-open-recent.svgz</file>
+ <file>images/go-next.svgz</file>
+ <file>images/go-previous.svgz</file>
+ <file>images/help-about.svgz</file>
+</qresource>
+</RCC>
diff --git a/examples/widgets/mainwindows/mdi/images/copy.png b/examples/demos/documentviewer/images/copy.png
index 2aeb28288..2aeb28288 100644
--- a/examples/widgets/mainwindows/mdi/images/copy.png
+++ b/examples/demos/documentviewer/images/copy.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/copy@2x.png b/examples/demos/documentviewer/images/copy@2x.png
new file mode 100644
index 000000000..f4ebabba1
--- /dev/null
+++ b/examples/demos/documentviewer/images/copy@2x.png
Binary files differ
diff --git a/examples/widgets/mainwindows/mdi/images/cut.png b/examples/demos/documentviewer/images/cut.png
index 54638e938..54638e938 100644
--- a/examples/widgets/mainwindows/mdi/images/cut.png
+++ b/examples/demos/documentviewer/images/cut.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/cut@2x.png b/examples/demos/documentviewer/images/cut@2x.png
new file mode 100644
index 000000000..5a5da4fd3
--- /dev/null
+++ b/examples/demos/documentviewer/images/cut@2x.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/document-open-recent.svgz b/examples/demos/documentviewer/images/document-open-recent.svgz
new file mode 100644
index 000000000..3b6eaf978
--- /dev/null
+++ b/examples/demos/documentviewer/images/document-open-recent.svgz
Binary files differ
diff --git a/examples/demos/documentviewer/images/go-next-view-page.png b/examples/demos/documentviewer/images/go-next-view-page.png
new file mode 100644
index 000000000..bd2a33836
--- /dev/null
+++ b/examples/demos/documentviewer/images/go-next-view-page.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/go-next-view-page@2x.png b/examples/demos/documentviewer/images/go-next-view-page@2x.png
new file mode 100644
index 000000000..5ddcbbcc9
--- /dev/null
+++ b/examples/demos/documentviewer/images/go-next-view-page@2x.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/go-next-view.png b/examples/demos/documentviewer/images/go-next-view.png
new file mode 100644
index 000000000..98b79dea3
--- /dev/null
+++ b/examples/demos/documentviewer/images/go-next-view.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/go-next-view@2x.png b/examples/demos/documentviewer/images/go-next-view@2x.png
new file mode 100644
index 000000000..919406437
--- /dev/null
+++ b/examples/demos/documentviewer/images/go-next-view@2x.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/go-next.svgz b/examples/demos/documentviewer/images/go-next.svgz
new file mode 100644
index 000000000..c6dc7d0f4
--- /dev/null
+++ b/examples/demos/documentviewer/images/go-next.svgz
Binary files differ
diff --git a/examples/demos/documentviewer/images/go-previous-view-page.png b/examples/demos/documentviewer/images/go-previous-view-page.png
new file mode 100644
index 000000000..ecd3768ef
--- /dev/null
+++ b/examples/demos/documentviewer/images/go-previous-view-page.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/go-previous-view-page@2x.png b/examples/demos/documentviewer/images/go-previous-view-page@2x.png
new file mode 100644
index 000000000..f0d91c9f1
--- /dev/null
+++ b/examples/demos/documentviewer/images/go-previous-view-page@2x.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/go-previous-view.png b/examples/demos/documentviewer/images/go-previous-view.png
new file mode 100644
index 000000000..086bd9a1c
--- /dev/null
+++ b/examples/demos/documentviewer/images/go-previous-view.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/go-previous-view@2x.png b/examples/demos/documentviewer/images/go-previous-view@2x.png
new file mode 100644
index 000000000..900860ce0
--- /dev/null
+++ b/examples/demos/documentviewer/images/go-previous-view@2x.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/go-previous.svgz b/examples/demos/documentviewer/images/go-previous.svgz
new file mode 100644
index 000000000..971b1d989
--- /dev/null
+++ b/examples/demos/documentviewer/images/go-previous.svgz
Binary files differ
diff --git a/examples/demos/documentviewer/images/help-about.svgz b/examples/demos/documentviewer/images/help-about.svgz
new file mode 100644
index 000000000..001aa7f2f
--- /dev/null
+++ b/examples/demos/documentviewer/images/help-about.svgz
Binary files differ
diff --git a/examples/demos/documentviewer/images/magnifier.png b/examples/demos/documentviewer/images/magnifier.png
new file mode 100644
index 000000000..6eb457d90
--- /dev/null
+++ b/examples/demos/documentviewer/images/magnifier.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/magnifier@2x.png b/examples/demos/documentviewer/images/magnifier@2x.png
new file mode 100644
index 000000000..ed84af187
--- /dev/null
+++ b/examples/demos/documentviewer/images/magnifier@2x.png
Binary files differ
diff --git a/examples/widgets/mainwindows/mdi/images/open.png b/examples/demos/documentviewer/images/open.png
index 45fa2883a..45fa2883a 100644
--- a/examples/widgets/mainwindows/mdi/images/open.png
+++ b/examples/demos/documentviewer/images/open.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/open@2x.png b/examples/demos/documentviewer/images/open@2x.png
new file mode 100644
index 000000000..12c2c3c1d
--- /dev/null
+++ b/examples/demos/documentviewer/images/open@2x.png
Binary files differ
diff --git a/examples/widgets/mainwindows/mdi/images/paste.png b/examples/demos/documentviewer/images/paste.png
index c14425cad..c14425cad 100644
--- a/examples/widgets/mainwindows/mdi/images/paste.png
+++ b/examples/demos/documentviewer/images/paste.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/paste@2x.png b/examples/demos/documentviewer/images/paste@2x.png
new file mode 100644
index 000000000..360b0f6c7
--- /dev/null
+++ b/examples/demos/documentviewer/images/paste@2x.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/print.png b/examples/demos/documentviewer/images/print.png
new file mode 100644
index 000000000..4ace26140
--- /dev/null
+++ b/examples/demos/documentviewer/images/print.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/print2x.png b/examples/demos/documentviewer/images/print2x.png
new file mode 100644
index 000000000..1c3655be6
--- /dev/null
+++ b/examples/demos/documentviewer/images/print2x.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/qt-logo.png b/examples/demos/documentviewer/images/qt-logo.png
new file mode 100644
index 000000000..c9171422c
--- /dev/null
+++ b/examples/demos/documentviewer/images/qt-logo.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/qt-logo@2x.png b/examples/demos/documentviewer/images/qt-logo@2x.png
new file mode 100644
index 000000000..95d1d09b1
--- /dev/null
+++ b/examples/demos/documentviewer/images/qt-logo@2x.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/zoom-fit-best.png b/examples/demos/documentviewer/images/zoom-fit-best.png
new file mode 100644
index 000000000..6a13de4c1
--- /dev/null
+++ b/examples/demos/documentviewer/images/zoom-fit-best.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/zoom-fit-best@2x.png b/examples/demos/documentviewer/images/zoom-fit-best@2x.png
new file mode 100644
index 000000000..904b41c88
--- /dev/null
+++ b/examples/demos/documentviewer/images/zoom-fit-best@2x.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/zoom-fit-width.png b/examples/demos/documentviewer/images/zoom-fit-width.png
new file mode 100644
index 000000000..d51fbac69
--- /dev/null
+++ b/examples/demos/documentviewer/images/zoom-fit-width.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/zoom-fit-width@2x.png b/examples/demos/documentviewer/images/zoom-fit-width@2x.png
new file mode 100644
index 000000000..4d1fd0b4d
--- /dev/null
+++ b/examples/demos/documentviewer/images/zoom-fit-width@2x.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/zoom-in.png b/examples/demos/documentviewer/images/zoom-in.png
new file mode 100644
index 000000000..5ae1046c0
--- /dev/null
+++ b/examples/demos/documentviewer/images/zoom-in.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/zoom-in@2x.png b/examples/demos/documentviewer/images/zoom-in@2x.png
new file mode 100644
index 000000000..863ef4aca
--- /dev/null
+++ b/examples/demos/documentviewer/images/zoom-in@2x.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/zoom-original.png b/examples/demos/documentviewer/images/zoom-original.png
new file mode 100644
index 000000000..8aa9bb49c
--- /dev/null
+++ b/examples/demos/documentviewer/images/zoom-original.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/zoom-original@2x.png b/examples/demos/documentviewer/images/zoom-original@2x.png
new file mode 100644
index 000000000..d5473007c
--- /dev/null
+++ b/examples/demos/documentviewer/images/zoom-original@2x.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/zoom-out.png b/examples/demos/documentviewer/images/zoom-out.png
new file mode 100644
index 000000000..081b6d981
--- /dev/null
+++ b/examples/demos/documentviewer/images/zoom-out.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/zoom-out@2x.png b/examples/demos/documentviewer/images/zoom-out@2x.png
new file mode 100644
index 000000000..34c8e1748
--- /dev/null
+++ b/examples/demos/documentviewer/images/zoom-out@2x.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/zoom-previous.png b/examples/demos/documentviewer/images/zoom-previous.png
new file mode 100644
index 000000000..0ff5c0416
--- /dev/null
+++ b/examples/demos/documentviewer/images/zoom-previous.png
Binary files differ
diff --git a/examples/demos/documentviewer/images/zoom-previous@2x.png b/examples/demos/documentviewer/images/zoom-previous@2x.png
new file mode 100644
index 000000000..e9909abc5
--- /dev/null
+++ b/examples/demos/documentviewer/images/zoom-previous@2x.png
Binary files differ
diff --git a/examples/demos/documentviewer/jsonviewer/jsonviewer.py b/examples/demos/documentviewer/jsonviewer/jsonviewer.py
new file mode 100644
index 000000000..1e5a34ca0
--- /dev/null
+++ b/examples/demos/documentviewer/jsonviewer/jsonviewer.py
@@ -0,0 +1,396 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import json
+
+from PySide6.QtWidgets import (QLabel, QLineEdit, QListWidget,
+ QListWidgetItem, QMenu, QTreeView)
+from PySide6.QtGui import (QAction, QIcon, QKeySequence,
+ QPixmap, QTextDocument)
+from PySide6.QtCore import (QAbstractItemModel, QDir,
+ QIODevice, QModelIndex,
+ QPoint, QSize, Qt, Slot)
+
+from abstractviewer import AbstractViewer
+
+
+def resizeToContents(tree):
+ for i in range(0, tree.header().count()):
+ tree.resizeColumnToContents(i)
+
+
+class JsonTreeItem:
+
+ def __init__(self, parent=None):
+ self._key = ""
+ self._value = None
+ self._children = []
+ self._parent = parent
+
+ def key(self):
+ return self._key
+
+ def value(self):
+ return self._value
+
+ def appendChild(self, item):
+ self._children.append(item)
+
+ def child(self, row):
+ return self._children[row]
+
+ def parent(self):
+ return self._parent
+
+ def childCount(self):
+ return len(self._children)
+
+ def row(self):
+ if self._parent:
+ return self._parent._children.index(self)
+ return 0
+
+ def setKey(self, key):
+ self._key = key
+
+ def setValue(self, value):
+ self._value = value
+
+ @staticmethod
+ def load(value, parent=None):
+ rootItem = JsonTreeItem(parent)
+ rootItem.setKey("root")
+
+ if isinstance(value, dict):
+ for key, val in value.items():
+ child = JsonTreeItem.load(val, rootItem)
+ child.setKey(key)
+ rootItem.appendChild(child)
+
+ elif isinstance(value, list):
+ for index, val in enumerate(value):
+ child = JsonTreeItem.load(val, rootItem)
+ child.setKey(f"{index}")
+ rootItem.appendChild(child)
+
+ else:
+ rootItem.setValue(value)
+
+ return rootItem
+
+
+class JsonItemModel(QAbstractItemModel):
+
+ def columnCount(self, index=QModelIndex()):
+ return 2
+
+ def itemFromIndex(self, index):
+ return index.internalPointer()
+
+ def __init__(self, doc, parent):
+ super().__init__(parent)
+ self._textItem = JsonTreeItem()
+
+ # Append header lines
+ self._headers = ["Key", "Value"]
+
+ # Reset the model. Root can either be a value or an array.
+ self.beginResetModel()
+ self._textItem = JsonTreeItem.load(doc) if doc else JsonTreeItem()
+ self.endResetModel()
+
+ def data(self, index, role):
+ if not index.isValid():
+ return None
+
+ item = self.itemFromIndex(index)
+ if role == Qt.DisplayRole:
+ if index.column() == 0:
+ return item.key()
+ if index.column() == 1:
+ return item.value()
+ elif role == Qt.EditRole:
+ if index.column() == 1:
+ return item.value()
+ return None
+
+ def headerData(self, section, orientation, role):
+ return (self._headers[section]
+ if role == Qt.DisplayRole and orientation == Qt.Horizontal else None)
+
+ def index(self, row, column, parent=QModelIndex()):
+ if not self.hasIndex(row, column, parent):
+ return None
+
+ parentItem = JsonTreeItem()
+
+ if not parent.isValid():
+ parentItem = self._textItem
+ else:
+ parentItem = self.itemFromIndex(parent)
+
+ childItem = parentItem.child(row)
+ if childItem:
+ return self.createIndex(row, column, childItem)
+ return None
+
+ def parent(self, index):
+ if not index.isValid():
+ return None
+
+ childItem = self.itemFromIndex(index)
+ parentItem = childItem.parent()
+
+ if parentItem == self._textItem:
+ return QModelIndex()
+
+ return self.createIndex(parentItem.row(), 0, parentItem)
+
+ def rowCount(self, parent=QModelIndex()):
+ parentItem = JsonTreeItem()
+ if parent.column() > 0:
+ return 0
+
+ if not parent.isValid():
+ parentItem = self._textItem
+ else:
+ parentItem = self.itemFromIndex(parent)
+ return parentItem.childCount()
+
+
+class JsonViewer(AbstractViewer):
+
+ def __init__(self):
+ super().__init__()
+ self._tree = QTreeView()
+ self._toplevel = None
+ self._text = ""
+ self._searchKey = None
+ self.uiInitialized.connect(self.setupJsonUi)
+
+ def init(self, file, parent, mainWindow):
+ self._tree = QTreeView(parent)
+ super().init(file, self._tree, mainWindow)
+
+ def viewerName(self):
+ return "JsonViewer"
+
+ def supportedMimeTypes(self):
+ return ["application/json"]
+
+ @Slot()
+ def setupJsonUi(self):
+ # Build Menus and toolbars
+ menu = self.addMenu("Json")
+ tb = self.addToolBar("Json Actions")
+
+ zoomInIcon = QIcon.fromTheme(QIcon.ThemeIcon.ZoomIn)
+ a = menu.addAction(zoomInIcon, "&+Expand all", self._tree.expandAll)
+ tb.addAction(a)
+ a.setPriority(QAction.LowPriority)
+ a.setShortcut(QKeySequence.New)
+
+ zoomOutIcon = QIcon.fromTheme(QIcon.ThemeIcon.ZoomOut)
+ a = menu.addAction(zoomOutIcon, "&-Collapse all", self._tree.collapseAll)
+ tb.addAction(a)
+ a.setPriority(QAction.LowPriority)
+ a.setShortcut(QKeySequence.New)
+
+ if not self._searchKey:
+ self._searchKey = QLineEdit(tb)
+
+ label = QLabel(tb)
+ magnifier = QPixmap(":/icons/images/magnifier.png").scaled(QSize(28, 28))
+ label.setPixmap(magnifier)
+ tb.addWidget(label)
+ tb.addWidget(self._searchKey)
+ self._searchKey.textEdited.connect(self._tree.keyboardSearch)
+
+ if not self.openJsonFile():
+ return
+
+ # Populate bookmarks with toplevel
+ self._uiAssets_tabs.clear()
+ self._toplevel = QListWidget(self._uiAssets_tabs)
+ self._uiAssets_tabs.addTab(self._toplevel, "Bookmarks")
+ for i in range(0, self._tree.model().rowCount()):
+ index = self._tree.model().index(i, 0)
+ self._toplevel.addItem(index.data())
+ item = self._toplevel.item(i)
+ item.setData(Qt.UserRole, index)
+ item.setToolTip(f"Toplevel Item {i}")
+
+ self._toplevel.setAcceptDrops(True)
+ self._tree.setDragEnabled(True)
+ self._tree.setContextMenuPolicy(Qt.CustomContextMenu)
+ self._toplevel.setContextMenuPolicy(Qt.CustomContextMenu)
+
+ self._toplevel.itemClicked.connect(self.onTopLevelItemClicked)
+ self._toplevel.itemDoubleClicked.connect(self.onTopLevelItemDoubleClicked)
+ self._toplevel.customContextMenuRequested.connect(self.onBookmarkMenuRequested)
+ self._tree.customContextMenuRequested.connect(self.onJsonMenuRequested)
+
+ # Connect back and forward
+ self._uiAssets_back.triggered.connect(self._back)
+ self._uiAssets_forward.triggered.connect(self._forward)
+
+ @Slot()
+ def _back(self):
+ index = self._tree.indexAbove(self._tree.currentIndex())
+ if index.isValid():
+ self._tree.setCurrentIndex(index)
+
+ @Slot()
+ def _forward(self):
+ current = self._tree.currentIndex()
+ next = self._tree.indexBelow(current)
+ if next.isValid():
+ self._tree.setCurrentIndex(next)
+ return
+ # Expand last item to go beyond
+ if not self._tree.isExpanded(current):
+ self._tree.expand(current)
+ next = self._tree.indexBelow(current)
+ if next.isValid():
+ self._tree.setCurrentIndex(next)
+
+ def openJsonFile(self):
+ self.disablePrinting()
+ file_name = QDir.toNativeSeparators(self._file.fileName())
+ type = "open"
+ self._file.open(QIODevice.ReadOnly)
+ self._text = self._file.readAll().data().decode("utf-8")
+ self._file.close()
+
+ data = None
+ message = None
+ try:
+ data = json.loads(self._text)
+ message = f"Json document {file_name} opened"
+ model = JsonItemModel(data, self)
+ self._tree.setModel(model)
+ except ValueError as e:
+ message = f"Unable to parse Json document from {file_name}: {e}"
+ self.statusMessage(message, type)
+ self.maybeEnablePrinting()
+
+ return self._tree.model() is not None
+
+ def indexOf(self, item):
+ return QModelIndex(item.data(Qt.UserRole))
+
+ @Slot(QListWidgetItem)
+ def onTopLevelItemClicked(self, item):
+ """Move to the clicked toplevel index"""
+ # return in the unlikely case that the tree has not been built
+ if not self._tree.model():
+ return
+
+ index = self.indexOf(item)
+ if not index.isValid():
+ return
+
+ self._tree.setCurrentIndex(index)
+
+ @Slot(QListWidgetItem)
+ def onTopLevelItemDoubleClicked(self, item):
+ """Toggle double clicked index between collaps/expand"""
+
+ # return in the unlikely case that the tree has not been built
+ if not self._tree.model():
+ return
+
+ index = self.indexOf(item)
+ if not index.isValid():
+ return
+
+ if self._tree.isExpanded(index):
+ self._tree.collapse(index)
+ return
+
+ # Make sure the node and all parents are expanded
+ while index.isValid():
+ self._tree.expand(index)
+ index = index.parent()
+
+ @Slot(QPoint)
+ def onJsonMenuRequested(self, pos):
+ index = self._tree.indexAt(pos)
+ if not index.isValid():
+ return
+
+ # Don't show a context menu, if the index is already a bookmark
+ for i in range(0, self._toplevel.count()):
+ if self.indexOf(self._toplevel.item(i)) == index:
+ return
+
+ menu = QMenu(self._tree)
+ action = QAction("Add bookmark")
+ action.setData(index)
+ menu.addAction(action)
+ action.triggered.connect(self.onBookmarkAdded)
+ menu.exec(self._tree.mapToGlobal(pos))
+
+ @Slot(QPoint)
+ def onBookmarkMenuRequested(self, pos):
+ item = self._toplevel.itemAt(pos)
+ if not item:
+ return
+
+ # Don't delete toplevel items
+ index = self.indexOf(item)
+ if not index.parent().isValid():
+ return
+
+ menu = QMenu()
+ action = QAction("Delete bookmark")
+ action.setData(self._toplevel.row(item))
+ menu.addAction(action)
+ action.triggered.connect(self.onBookmarkDeleted)
+ menu.exec(self._toplevel.mapToGlobal(pos))
+
+ @Slot()
+ def onBookmarkAdded(self):
+ action = self.sender()
+ if not action:
+ return
+
+ index = action.data()
+ if not index.isValid():
+ return
+
+ item = QListWidgetItem(index.data(Qt.DisplayRole), self._toplevel)
+ item.setData(Qt.UserRole, index)
+
+ # Set a tooltip that shows where the item is located in the tree
+ parent = index.parent()
+ tooltip = index.data(Qt.DisplayRole).toString()
+ while parent.isValid():
+ tooltip = parent.data(Qt.DisplayRole).toString() + "." + tooltip
+ parent = parent.parent()
+
+ item.setToolTip(tooltip)
+
+ @Slot()
+ def onBookmarkDeleted(self):
+ action = self.sender()
+ if not action:
+ return
+
+ row = action.data().toInt()
+ if row < 0 or row >= self._toplevel.count():
+ return
+
+ self._toplevel.takeItem(row)
+
+ def hasContent(self):
+ return bool(self._text)
+
+ def supportsOverview(self):
+ return True
+
+ def printDocument(self, printer):
+ if not self.hasContent():
+ return
+ doc = QTextDocument(self._text)
+ doc.print_(printer)
diff --git a/examples/demos/documentviewer/main.py b/examples/demos/documentviewer/main.py
new file mode 100644
index 000000000..2af373ef3
--- /dev/null
+++ b/examples/demos/documentviewer/main.py
@@ -0,0 +1,37 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the Qt Document Viewer demo from Qt v6.x"""
+
+import sys
+from argparse import ArgumentParser, RawTextHelpFormatter
+
+from PySide6.QtWidgets import QApplication
+from PySide6.QtCore import QCoreApplication
+
+from mainwindow import MainWindow
+
+
+DESCRIPTION = "A viewer for JSON, PDF and text files"
+
+
+if __name__ == "__main__":
+
+ app = QApplication([])
+ QCoreApplication.setOrganizationName("QtExamples")
+ QCoreApplication.setApplicationName("DocumentViewer")
+ QCoreApplication.setApplicationVersion("1.0")
+
+ arg_parser = ArgumentParser(description=DESCRIPTION,
+ formatter_class=RawTextHelpFormatter)
+ arg_parser.add_argument("file", type=str, nargs="?",
+ help="JSON, PDF or text file to open")
+ args = arg_parser.parse_args()
+ fileName = args.file
+
+ w = MainWindow()
+ w.show()
+ if args.file and not w.openFile(args.file):
+ sys.exit(-1)
+
+ sys.exit(app.exec())
diff --git a/examples/demos/documentviewer/mainwindow.py b/examples/demos/documentviewer/mainwindow.py
new file mode 100644
index 000000000..e9abd0bec
--- /dev/null
+++ b/examples/demos/documentviewer/mainwindow.py
@@ -0,0 +1,178 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtWidgets import (QDialog, QFileDialog, QMainWindow, QMessageBox)
+from PySide6.QtCore import (QDir, QFile, QFileInfo, QSettings, Slot)
+
+from ui_mainwindow import Ui_MainWindow
+from viewerfactory import ViewerFactory
+from recentfiles import RecentFiles
+from recentfilemenu import RecentFileMenu
+
+
+settingsDir = "WorkingDir"
+settingsMainWindow = "MainWindow"
+settingsViewers = "Viewers"
+settingsFiles = "RecentFiles"
+
+
+ABOUT_TEXT = """A Widgets application to display and print JSON,
+text and PDF files. Demonstrates various features to use
+in widget applications: Using QSettings, query and save
+user preferences, manage file histories and control cursor
+behavior when hovering over widgets.
+
+"""
+
+
+class MainWindow(QMainWindow):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.ui = Ui_MainWindow()
+
+ self._currentDir = QDir()
+ self._viewer = None
+ self._recentFiles = RecentFiles()
+
+ self.ui.setupUi(self)
+ self.ui.actionOpen.triggered.connect(self.onActionOpenTriggered)
+ self.ui.actionAbout.triggered.connect(self.onActionAboutTriggered)
+ self.ui.actionAboutQt.triggered.connect(self.onActionAboutQtTriggered)
+
+ self._recentFiles = RecentFiles(self.ui.actionRecent)
+ self._recentFiles.countChanged.connect(self._recentFilesCountChanged)
+
+ self.readSettings()
+ self._factory = ViewerFactory(self.ui.viewArea, self)
+ viewers = ", ".join(self._factory.viewerNames())
+ self.statusBar().showMessage(f'Available viewers: {viewers}')
+
+ menu = RecentFileMenu(self, self._recentFiles)
+ self.ui.actionRecent.setMenu(menu)
+ menu.fileOpened.connect(self.openFile)
+ button = self.ui.mainToolBar.widgetForAction(self.ui.actionRecent)
+ if button:
+ self.ui.actionRecent.triggered.connect(button.showMenu)
+
+ @Slot(int)
+ def _recentFilesCountChanged(self, count):
+ self.ui.actionRecent.setText(f"{count} recent files")
+
+ def closeEvent(self, event):
+ self.saveSettings()
+
+ @Slot(int)
+ def onActionOpenTriggered(self):
+ fileDialog = QFileDialog(self, "Open Document",
+ self._currentDir.absolutePath())
+ while (fileDialog.exec() == QDialog.Accepted
+ and not self.openFile(fileDialog.selectedFiles()[0])):
+ pass
+
+ @Slot(str)
+ def openFile(self, fileName):
+ file = QFile(fileName)
+ if not file.exists():
+ nf = QDir.toNativeSeparators(fileName)
+ self.statusBar().showMessage(f"File {nf} could not be opened")
+ return False
+
+ fileInfo = QFileInfo(file)
+ self._currentDir = fileInfo.dir()
+ self._recentFiles.addFile(fileInfo.absoluteFilePath())
+
+ # If a viewer is already open, clean it up and save its settings
+ self.resetViewer()
+ self._viewer = self._factory.viewer(file)
+ if not self._viewer:
+ nf = QDir.toNativeSeparators(fileName)
+ self.statusBar().showMessage(f"File {nf} can't be opened.")
+ return False
+
+ self.ui.actionPrint.setEnabled(self._viewer.hasContent())
+ self._viewer.printingEnabledChanged.connect(self.ui.actionPrint.setEnabled)
+ self.ui.actionPrint.triggered.connect(self._viewer.print_)
+ self._viewer.showMessage.connect(self.statusBar().showMessage)
+
+ self._viewer.initViewer(self.ui.actionBack, self.ui.actionForward,
+ self.ui.menuHelp.menuAction(),
+ self.ui.tabWidget)
+ self.restoreViewerSettings()
+ self.ui.scrollArea.setWidget(self._viewer.widget())
+ return True
+
+ @Slot()
+ def onActionAboutTriggered(self):
+ viewerNames = ", ".join(self._factory.viewerNames())
+ mimeTypes = '\n'.join(self._factory.supportedMimeTypes())
+ text = ABOUT_TEXT
+ text += f"\nThis version has loaded the following plugins:\n{viewerNames}\n"
+ text += f"\n\nIt supports the following mime types:\n{mimeTypes}"
+
+ defaultViewer = self._factory.defaultViewer()
+ if defaultViewer:
+ n = defaultViewer.viewerName()
+ text += f"\n\nOther mime types will be displayed with {n}."
+
+ QMessageBox.about(self, "About Document Viewer Demo", text)
+
+ @Slot()
+ def onActionAboutQtTriggered(self):
+ QMessageBox.aboutQt(self)
+
+ def readSettings(self):
+ settings = QSettings()
+
+ # Restore working directory
+ if settings.contains(settingsDir):
+ self._currentDir = QDir(settings.value(settingsDir))
+ else:
+ self._currentDir = QDir.current()
+
+ # Restore QMainWindow state
+ if settings.contains(settingsMainWindow):
+ mainWindowState = settings.value(settingsMainWindow)
+ self.restoreState(mainWindowState)
+
+ # Restore recent files
+ self._recentFiles.restoreFromSettings(settings, settingsFiles)
+
+ def saveSettings(self):
+ settings = QSettings()
+
+ # Save working directory
+ settings.setValue(settingsDir, self._currentDir.absolutePath())
+
+ # Save QMainWindow state
+ settings.setValue(settingsMainWindow, self.saveState())
+
+ # Save recent files
+ self._recentFiles.saveSettings(settings, settingsFiles)
+
+ settings.sync()
+
+ def saveViewerSettings(self):
+ if not self._viewer:
+ return
+ settings = QSettings()
+ settings.beginGroup(settingsViewers)
+ settings.setValue(self._viewer.viewerName(), self._viewer.saveState())
+ settings.endGroup()
+ settings.sync()
+
+ def resetViewer(self):
+ if not self._viewer:
+ return
+ self.saveViewerSettings()
+ self._viewer.cleanup()
+
+ def restoreViewerSettings(self):
+ if not self._viewer:
+ return
+ settings = QSettings()
+ settings.beginGroup(settingsViewers)
+ viewerSettings = settings.value(self._viewer.viewerName())
+ settings.endGroup()
+ if viewerSettings:
+ self._viewer.restoreState(viewerSettings)
diff --git a/examples/demos/documentviewer/mainwindow.ui b/examples/demos/documentviewer/mainwindow.ui
new file mode 100644
index 000000000..482061fc7
--- /dev/null
+++ b/examples/demos/documentviewer/mainwindow.ui
@@ -0,0 +1,272 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>MainWindow</class>
+ <widget class="QMainWindow" name="MainWindow">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>983</width>
+ <height>602</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Document Viewer Demo</string>
+ </property>
+ <property name="windowIcon">
+ <iconset resource="documentviewer.qrc">
+ <normaloff>:/demos/documentviewer/images/qt-logo.png</normaloff>:/demos/documentviewer/images/qt-logo.png</iconset>
+ </property>
+ <widget class="QWidget" name="centralwidget">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QWidget" name="viewArea" native="true">
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <widget class="QSplitter" name="splitter">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <widget class="QTabWidget" name="tabWidget">
+ <property name="tabPosition">
+ <enum>QTabWidget::West</enum>
+ </property>
+ <property name="currentIndex">
+ <number>0</number>
+ </property>
+ <widget class="QWidget" name="bookmarkTab">
+ <attribute name="title">
+ <string>Pages</string>
+ </attribute>
+ </widget>
+ <widget class="QWidget" name="pagesTab">
+ <attribute name="title">
+ <string>Bookmarks</string>
+ </attribute>
+ </widget>
+ </widget>
+ <widget class="QScrollArea" name="scrollArea">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>800</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="widgetResizable">
+ <bool>true</bool>
+ </property>
+ <widget class="QWidget" name="scrollAreaWidgetContents">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>798</width>
+ <height>479</height>
+ </rect>
+ </property>
+ </widget>
+ </widget>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QMenuBar" name="menubar">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>983</width>
+ <height>23</height>
+ </rect>
+ </property>
+ <widget class="QMenu" name="qtFileMenu">
+ <property name="title">
+ <string>File</string>
+ </property>
+ <addaction name="actionOpen"/>
+ <addaction name="actionRecent"/>
+ <addaction name="actionPrint"/>
+ <addaction name="actionQuit"/>
+ </widget>
+ <widget class="QMenu" name="menuHelp">
+ <property name="title">
+ <string>Help</string>
+ </property>
+ <addaction name="actionAbout"/>
+ <addaction name="actionAboutQt"/>
+ </widget>
+ <addaction name="qtFileMenu"/>
+ <addaction name="menuHelp"/>
+ </widget>
+ <widget class="QStatusBar" name="statusbar"/>
+ <widget class="QToolBar" name="mainToolBar">
+ <property name="windowTitle">
+ <string>toolBar</string>
+ </property>
+ <attribute name="toolBarArea">
+ <enum>TopToolBarArea</enum>
+ </attribute>
+ <attribute name="toolBarBreak">
+ <bool>false</bool>
+ </attribute>
+ <addaction name="actionOpen"/>
+ <addaction name="actionRecent"/>
+ <addaction name="actionPrint"/>
+ <addaction name="separator"/>
+ <addaction name="actionBack"/>
+ <addaction name="actionForward"/>
+ <addaction name="separator"/>
+ </widget>
+ <action name="actionOpen">
+ <property name="icon">
+ <iconset resource="documentviewer.qrc">
+ <normaloff>:/demos/documentviewer/images/open.png</normaloff>:/demos/documentviewer/images/open.png</iconset>
+ </property>
+ <property name="text">
+ <string>Open</string>
+ </property>
+ <property name="shortcut">
+ <string>Ctrl+O</string>
+ </property>
+ </action>
+ <action name="actionAbout">
+ <property name="icon">
+ <iconset theme="help-about" resource="documentviewer.qrc">
+ <normaloff>:/demos/documentviewer/images/help-about.svgz</normaloff>:/demos/documentviewer/images/help-about.svgz</iconset>
+ </property>
+ <property name="text">
+ <string>about documentviewer</string>
+ </property>
+ <property name="toolTip">
+ <string>Show information about the Document Viewer deomo.</string>
+ </property>
+ <property name="shortcut">
+ <string>Ctrl+H</string>
+ </property>
+ </action>
+ <action name="actionForward">
+ <property name="icon">
+ <iconset resource="documentviewer.qrc">
+ <normaloff>:/demos/documentviewer/images/go-next.svgz</normaloff>:/demos/documentviewer/images/go-next.svgz</iconset>
+ </property>
+ <property name="text">
+ <string>actionForward</string>
+ </property>
+ <property name="toolTip">
+ <string>One step forward</string>
+ </property>
+ <property name="shortcut">
+ <string>Right</string>
+ </property>
+ </action>
+ <action name="actionBack">
+ <property name="icon">
+ <iconset resource="documentviewer.qrc">
+ <normaloff>:/demos/documentviewer/images/go-previous.svgz</normaloff>:/demos/documentviewer/images/go-previous.svgz</iconset>
+ </property>
+ <property name="text">
+ <string>actionBack</string>
+ </property>
+ <property name="toolTip">
+ <string>One step back</string>
+ </property>
+ <property name="shortcut">
+ <string>Left</string>
+ </property>
+ </action>
+ <action name="actionPrint">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="icon">
+ <iconset theme="document-print" resource="documentviewer.qrc">
+ <normaloff>:/demos/documentviewer/images/print2x.png</normaloff>:/demos/documentviewer/images/print2x.png</iconset>
+ </property>
+ <property name="text">
+ <string>Print</string>
+ </property>
+ <property name="toolTip">
+ <string>Print current file</string>
+ </property>
+ <property name="shortcut">
+ <string>Ctrl+P</string>
+ </property>
+ </action>
+ <action name="actionAboutQt">
+ <property name="icon">
+ <iconset resource="documentviewer.qrc">
+ <normaloff>:/demos/documentviewer/images/qt-logo.png</normaloff>
+ <normalon>:/demos/documentviewer/images/qt-logo.png</normalon>:/demos/documentviewer/images/qt-logo.png</iconset>
+ </property>
+ <property name="text">
+ <string>About Qt</string>
+ </property>
+ <property name="toolTip">
+ <string>Show Qt license information</string>
+ </property>
+ <property name="shortcut">
+ <string>Ctrl+I</string>
+ </property>
+ </action>
+ <action name="actionRecent">
+ <property name="icon">
+ <iconset resource="documentviewer.qrc">
+ <normaloff>:/demos/documentviewer/images/document-open-recent.svgz</normaloff>:/demos/documentviewer/images/document-open-recent.svgz</iconset>
+ </property>
+ <property name="text">
+ <string>Recently opened...</string>
+ </property>
+ <property name="shortcut">
+ <string>Meta+R</string>
+ </property>
+ </action>
+ <action name="actionQuit">
+ <property name="icon">
+ <iconset theme="application-exit">
+ <normaloff>.</normaloff>.</iconset>
+ </property>
+ <property name="text">
+ <string>Quit</string>
+ </property>
+ <property name="toolTip">
+ <string>Quit the application</string>
+ </property>
+ <property name="shortcut">
+ <string>Ctrl+Q</string>
+ </property>
+ </action>
+ </widget>
+ <resources>
+ <include location="documentviewer.qrc"/>
+ </resources>
+ <connections>
+ <connection>
+ <sender>actionQuit</sender>
+ <signal>triggered()</signal>
+ <receiver>MainWindow</receiver>
+ <slot>close()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>-1</x>
+ <y>-1</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>491</x>
+ <y>300</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/examples/demos/documentviewer/pdfviewer/pdfviewer.py b/examples/demos/documentviewer/pdfviewer/pdfviewer.py
new file mode 100644
index 000000000..d5695e4d0
--- /dev/null
+++ b/examples/demos/documentviewer/pdfviewer/pdfviewer.py
@@ -0,0 +1,204 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from math import sqrt
+
+from PySide6.QtWidgets import (QListView, QTreeView)
+from PySide6.QtGui import QIcon, QPainter
+from PySide6.QtCore import (QDir, QIODevice, QModelIndex,
+ QPointF, Slot)
+from PySide6.QtPrintSupport import QPrinter
+from PySide6.QtPdf import QPdfDocument, QPdfBookmarkModel
+from PySide6.QtPdfWidgets import QPdfView, QPdfPageSelector
+
+from abstractviewer import AbstractViewer
+from pdfviewer.zoomselector import ZoomSelector
+
+
+ZOOM_MULTIPLIER = sqrt(2.0)
+
+
+class PdfViewer(AbstractViewer):
+
+ def __init__(self):
+ super().__init__()
+ self.uiInitialized.connect(self.initPdfViewer)
+ self._toolBar = None
+ self._zoomSelector = None
+ self._pageSelector = None
+ self._document = None
+ self._pdfView = None
+ self._actionForward = None
+ self._actionBack = None
+ self._bookmarks = None
+ self._pages = None
+
+ def init(self, file, parent, mainWindow):
+ self._pdfView = QPdfView(parent)
+ super().init(file, self._pdfView, mainWindow)
+ self._document = QPdfDocument(self)
+
+ def supportedMimeTypes(self):
+ return ["application/pdf"]
+
+ def initPdfViewer(self):
+ self._toolBar = self.addToolBar("PDF")
+ self._zoomSelector = ZoomSelector(self._toolBar)
+
+ nav = self._pdfView.pageNavigator()
+ self._pageSelector = QPdfPageSelector(self._toolBar)
+ self._toolBar.insertWidget(self._uiAssets_forward, self._pageSelector)
+ self._pageSelector.setDocument(self._document)
+ self._pageSelector.currentPageChanged.connect(self.pageSelected)
+ nav.currentPageChanged.connect(self._pageSelector.setCurrentPage)
+ nav.backAvailableChanged.connect(self._uiAssets_back.setEnabled)
+ self._actionBack = self._uiAssets_back
+ self._actionForward = self._uiAssets_forward
+ self._uiAssets_back.triggered.connect(self.onActionBackTriggered)
+ self._uiAssets_forward.triggered.connect(self.onActionForwardTriggered)
+
+ self._toolBar.addSeparator()
+ self._toolBar.addWidget(self._zoomSelector)
+
+ actionZoomIn = self._toolBar.addAction("Zoom in")
+ actionZoomIn.setToolTip("Increase zoom level")
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.ZoomIn,
+ QIcon(":/demos/documentviewer/images/zoom-in.png"))
+ actionZoomIn.setIcon(icon)
+ self._toolBar.addAction(actionZoomIn)
+ actionZoomIn.triggered.connect(self.onActionZoomInTriggered)
+
+ actionZoomOut = self._toolBar.addAction("Zoom out")
+ actionZoomOut.setToolTip("Decrease zoom level")
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.ZoomIn,
+ QIcon(":/demos/documentviewer/images/zoom-out.png"))
+ actionZoomOut.setIcon(icon)
+ self._toolBar.addAction(actionZoomOut)
+ actionZoomOut.triggered.connect(self.onActionZoomOutTriggered)
+
+ nav.backAvailableChanged.connect(self._actionBack.setEnabled)
+ nav.forwardAvailableChanged.connect(self._actionForward.setEnabled)
+
+ self._zoomSelector.zoomModeChanged.connect(self._pdfView.setZoomMode)
+ self._zoomSelector.zoomFactorChanged.connect(self._pdfView.setZoomFactor)
+ self._zoomSelector.reset()
+
+ bookmarkModel = QPdfBookmarkModel(self)
+ bookmarkModel.setDocument(self._document)
+ self._uiAssets_tabs.clear()
+ self._bookmarks = QTreeView(self._uiAssets_tabs)
+ self._bookmarks.activated.connect(self.bookmarkSelected)
+ self._bookmarks.setModel(bookmarkModel)
+ self._pdfView.setDocument(self._document)
+ self._pdfView.setPageMode(QPdfView.PageMode.MultiPage)
+
+ self.openPdfFile()
+ if not self._document.pageCount():
+ return
+
+ self._pages = QListView(self._uiAssets_tabs)
+ self._pages.setModel(self._document.pageModel())
+
+ self._pages.selectionModel().currentRowChanged.connect(self._currentRowChanged)
+ self._pdfView.pageNavigator().currentPageChanged.connect(self._pageChanged)
+
+ self._uiAssets_tabs.addTab(self._pages, "Pages")
+ self._uiAssets_tabs.addTab(self._bookmarks, "Bookmarks")
+
+ def viewerName(self):
+ return "PdfViewer"
+
+ @Slot(QModelIndex, QModelIndex)
+ def _currentRowChanged(self, current, previous):
+ if previous == current:
+ return
+
+ nav = self._pdfView.pageNavigator()
+ row = current.row()
+ if nav.currentPage() == row:
+ return
+ nav.jump(row, QPointF(), nav.currentZoom())
+
+ @Slot(int)
+ def _pageChanged(self, page):
+ if self._pages.currentIndex().row() == page:
+ return
+ self._pages.setCurrentIndex(self._pages.model().index(page, 0))
+
+ @Slot()
+ def openPdfFile(self):
+ self.disablePrinting()
+
+ if self._file.open(QIODevice.ReadOnly):
+ self._document.load(self._file)
+
+ documentTitle = self._document.metaData(QPdfDocument.MetaDataField.Title)
+ if not documentTitle:
+ documentTitle = "PDF Viewer"
+ self.statusMessage(documentTitle)
+ self.pageSelected(0)
+
+ file_name = QDir.toNativeSeparators(self._file.fileName())
+ self.statusMessage(f"Opened PDF file {file_name}")
+ self.maybeEnablePrinting()
+
+ def hasContent(self):
+ return self._document if self._document.pageCount() > 0 else False
+
+ def supportsOverview(self):
+ return True
+
+ def printDocument(self, printer):
+ if not self.hasContent():
+ return
+
+ painter = QPainter()
+ painter.begin(printer)
+ pageRect = printer.pageRect(QPrinter.Unit.DevicePixel).toRect()
+ pageSize = pageRect.size()
+ for i in range(0, self._document.pageCount()):
+ if i > 0:
+ printer.newPage()
+ page = self._document.render(i, pageSize)
+ painter.drawImage(pageRect, page)
+ painter.end()
+
+ @Slot(QModelIndex)
+ def bookmarkSelected(self, index):
+ if not index.isValid():
+ return
+
+ page = index.data(int(QPdfBookmarkModel.Role.Page))
+ zoomLevel = index.data(int(QPdfBookmarkModel.Role.Level)).toReal()
+ self._pdfView.pageNavigator().jump(page, QPointF(), zoomLevel)
+
+ @Slot(int)
+ def pageSelected(self, page):
+ nav = self._pdfView.pageNavigator()
+ nav.jump(page, QPointF(), nav.currentZoom())
+
+ @Slot()
+ def onActionZoomInTriggered(self):
+ self._pdfView.setZoomFactor(self._pdfView.zoomFactor() * ZOOM_MULTIPLIER)
+
+ @Slot()
+ def onActionZoomOutTriggered(self):
+ self._pdfView.setZoomFactor(self._pdfView.zoomFactor() / ZOOM_MULTIPLIER)
+
+ @Slot()
+ def onActionPreviousPageTriggered(self):
+ nav = self._pdfView.pageNavigator()
+ nav.jump(nav.currentPage() - 1, QPointF(), nav.currentZoom())
+
+ @Slot()
+ def onActionNextPageTriggered(self):
+ nav = self._pdfView.pageNavigator()
+ nav.jump(nav.currentPage() + 1, QPointF(), nav.currentZoom())
+
+ @Slot()
+ def onActionBackTriggered(self):
+ self._pdfView.pageNavigator().back()
+
+ @Slot()
+ def onActionForwardTriggered(self):
+ self._pdfView.pageNavigator().forward()
diff --git a/examples/demos/documentviewer/pdfviewer/zoomselector.py b/examples/demos/documentviewer/pdfviewer/zoomselector.py
new file mode 100644
index 000000000..e5da5708f
--- /dev/null
+++ b/examples/demos/documentviewer/pdfviewer/zoomselector.py
@@ -0,0 +1,54 @@
+# Copyright (C) 2017 Klaralvdalens Datakonsult AB (KDAB).
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtWidgets import QComboBox
+from PySide6.QtCore import Signal, Slot
+from PySide6.QtPdfWidgets import QPdfView
+
+
+ZOOM_LEVELS = ["Fit Width", "Fit Page", "12%", "25%", "33%", "50%", "66%",
+ "75%", "100%", "125%", "150%", "200%", "400%"]
+
+
+class ZoomSelector(QComboBox):
+ zoomModeChanged = Signal(QPdfView.ZoomMode)
+ zoomFactorChanged = Signal(float)
+
+ def __init__(self, parent):
+ super().__init__(parent)
+ self.setEditable(True)
+
+ for z in ZOOM_LEVELS:
+ self.addItem(z)
+
+ self.currentTextChanged.connect(self.onCurrentTextChanged)
+ self.lineEdit().editingFinished.connect(self._editingFinished)
+
+ @Slot()
+ def _editingFinished(self):
+ self.onCurrentTextChanged(self.lineEdit().text())
+
+ @Slot(float)
+ def setZoomFactor(self, zoomFactor):
+ z = int(100 * zoomFactor)
+ self.setCurrentText(f"{z}%")
+
+ @Slot()
+ def reset(self):
+ self.setCurrentIndex(8) # 100%
+
+ @Slot(str)
+ def onCurrentTextChanged(self, text):
+ if text == "Fit Width":
+ self.zoomModeChanged.emit(QPdfView.ZoomMode.FitToWidth)
+ elif text == "Fit Page":
+ self.zoomModeChanged.emit(QPdfView.ZoomMode.FitInView)
+ else:
+ factor = 1.0
+ withoutPercent = text.replace('%', '')
+ zoomLevel = int(withoutPercent)
+ if zoomLevel:
+ factor = zoomLevel / 100.0
+
+ self.zoomModeChanged.emit(QPdfView.ZoomMode.Custom)
+ self.zoomFactorChanged.emit(factor)
diff --git a/examples/demos/documentviewer/rc_documentviewer.py b/examples/demos/documentviewer/rc_documentviewer.py
new file mode 100644
index 000000000..fee824311
--- /dev/null
+++ b/examples/demos/documentviewer/rc_documentviewer.py
@@ -0,0 +1,5135 @@
+# Resource object code (Python 3)
+# Created by: object code
+# Created by: The Resource Compiler for Qt version 6.5.1
+# WARNING! All changes made in this file will be lost!
+
+from PySide6 import QtCore
+
+qt_resource_data = b"\
+\x00\x00\x0a\xde\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x08\x06\x00\x00\x00\x8c\xfe\xb8m\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x00\x06\
+bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\
+\x00\x07tIME\x07\xe7\x03\x09\x07\x09\x01^\xb7)\
+\x9a\x00\x00\x09\xbeIDATX\xc3\xad\x98\xddo\x5c\
+\xc7y\x87\x9f9s\xce\xd9s\xcer\x97\xe4J\xa4L\
+\x85\x96IJr\x1c\x08\x8e\x9b2\xad\xfb\x85&\x06Z\
+\x040\x9c\x00\x06\x92\x5c\xf4\x0f\x88\xe1\xd6@\xff\x90&\
+\xbe\xf1E\xe1\xdb\x02\x85\x80\xa2\x17m\xe3\xcb\xa2Jc\
+\x1b\x84c\xb9\x94YJb\x14\xd1\x12\xbfD\xf1kI\
+\xee\xd7\xf9\x9a3o/vI)\x14\x97\xa2+\xbd\xc0\
+`\xb1\xb3sf\x1e\xfc~\xef\xbc;g\x14'\xc7\x14\
+\xf0m\xe0\x22\xa7\x8f/\x81/\x80\xdd\xaf\xf1L\xdfP\
+}\xfa\xffL)U\x15\x91W\xde|\xf3\xcd?\xfa\xe0\
+\x83\x0f^?\xed\x84\x17/^\xfc\x0dp\x07\xf8_`\
+\x1e\xf8\xed\xb3\x00\xbaG\xbe\x0f\x02\xafN\x9fQ\x7f\x13\
+h\x06vS56@6\x11\x86\xe1\xc5 \x08N\x9c\
+\xc8ZK\x96e\xbc\x5cU\xeex\xc4\xcb\xcd\x9co-\
+\xb6d\xac\x9e\xf2\x00h>/\xc0\xb3\xc0\xdbW\x06\xd5\
+\xdb\xa1\x8b\xbb\x99\xe0\xfb\xf1^iqq\x91\xc1\xa1A\
+\xd4c\x82\x0b\x82\x12@)\x10\xc1\x18C\xab\xdd\xe6b\
+\x85\xf3\xdf\x1eR\xa3\xf7Z2\xb6\x9e`\xeb)\x1f=\
+O\xc0!\xe0{o\x8c9/\x88\xc0\xef\x1a\xc2\x9e\xc4\
+,--Q\xa9WN\x9c\xa8(\x0a:\x9d\x0eUO\
+y\xe7B\xc7k\x1b\xe9\x0cy6\x5cE\xce\x00\xf7\x9f\
+\x0b\xa0R\x0a\xe8\x0ac\x01\xab\xa0\xbe\xb7\xcb\x7f]\xbb\
+F\x1c\xc7\xd8\xa2@D(\x8a\x82,\xcbH\xd3\x14c\
+\x0c\xc6\x18\xb4\xd6T*\x15B\xe8f\xb6C\xff\x0c\x7f\
+\x06\x05{\xf6u\x01\x03\x0d^\xdabi\xee:q\xdc\
+B\x89\x05\xe9\xda+V\x08\x95\x01\xc0C\xd0\x8eB\xef\
+iF\xcb\x1aO\x0b\x22`,\x01\xf0\x12]\x8bG\x81\
+\x01 \x04\xaat\xd3\x09`\x1fX\xa6\xbb\xfb7\xfa\x02\
+~\xf8\xe1\x87\xbc\xfb\xee\xbbJD\x14\xaa\x0bY\x8eB\
+F\x83\x90\xc44\x19\xd0\x19\x88<R\x1b\x18\x0e4\xae\
+\xa3\xd0Z!V\xe8\xa4\x19\xeb\xa9f/5\xac\xc5N\
+`\xc2\xca\x85\xefLM\xbe\x15\x04\xc1wGGGk\
+Q\x14E\xa5R)\x08\xc3p \x8a\xa2\xa1J\xa5\xa2\
+:\x9dNkee\xe5\xce\xd5\xabW}\xe0\xa3\x93\x14\
+TJ)D\xa4\xbb\xbat\x01\xcf\x07C\x94\x8c\x8b\xb5\
+\x01V\xba\xca\x1c\xec\x8dZ\xe4\xe3i\x8dv\xa0\x9d[\
+\x16wR\x82\xd1\x8b\xa4V1\xe8\xf8\xc1te\xe8\xa5\
+\x17_\x9a\xaci\xad\xf3\xb1\xb11\xafR\xa9\xe8(\x8a\
+\x9cj\xb5\xea\xd6j5\xb7V\xab\xe9\xdd\xdd]37\
+7\xf7\xe2\xec\xec\xac]XX\x98\x036\x81\xe4D\x8b\
+\x0f$\xf2=M\xa9\x5cb\xc0\x0dH\xf2\x02S\x08\x85\
+\x08\x88\xa0\x94\xc2w\x1d|\xd7!/,\x9d\xd4aC\
+U\xf9\xc5\xcf\xff\x91\xb3#\xa3\xf8\xa5\x92\x06\xa2^{\
+\x94>\x22Xk\xc9\xf3\x9c\x81\x81\x01&&&J\xc3\
+\xc3\xc3\x13\xb3\xb3\xb3?ZXXx\x00\xfcs\xcf\xf2\
+\xfe\x80\x8e\x06\xc7\x82\xe3\x80\xa3\x15\xa2\x15\xda*D\xf5\
+v\x90(\x94\x02\xad\xbb\xf6n43\x9aT\xf8\xfe_\
+\xff\x15c\xdf\x18?\x049.\x0e\xe0\x1a\x8d\x06\xae\xeb\
+\xe2y\x1e\x97.]*\xbd\xff\xfe\xfb\x17\xb2,{\xe7\
+\xe3\x8f?>\x7f\xe7\xce\x9d\x7f\x01>>\x0a(\xbdI\
+\xc5Q\x0a\xad\xe8&\xbeVh\xed\x80\x80\xb1\x82\xed-\
+\xac\x14x\x8e\x83\xa7\x1d\x5c\xc7\xc1\x11N\x04{\x5cA\
+c\x0c\xedv\x9br\xb9L\x14E\xf8\xbe\x8f\xef\xfb\xbc\
+\xf7\xde{\xe7FFF\xbe\xff\xd9g\x9f\xed\x5c\xbbv\
+m\x17\x98w\x0e\x1e|\xe7\x9dw\x0e\x09\xb5\xd3m\xae\
+Vx\xda\xa1\xe4i\x02O\xe3\xbb\x0e(\xc8\x0aK\x9c\
+\x15\xec'9\x8d$'\xce\x0dYa1\xc6\xf0\xb48\
+\xb08\x8ec\xf2<\xc7Z\xdbu\xcdq\x98\x9c\x9c\x0c\
+\xa6\xa7\xa7_\x9c\x9c\x9c\xfc\x03\xe0J\x7f\x8b{5\xcc\
+\xd5\x0a\xcf\xedZ\x1c\xe7Bb\x15\xa9\x0a\xc8}\x17\xab\
+4\x16\x97\xc2\x11\xb2\xb4MQx4Z\x1d\xf6\xf6\xf6\
+\x08\x82\x00\xcf\xf3\x10\x11Z\xad\x16\xedv\x9b \x08(\
+\x97\xcb\xb8\xae{hs\xbd^'\xcb2J\xa5\xd2!\
+\xf8\xe8\xe8hP\xadV\xc7\x80\x0bO\x00>\xb2\xb8k\
+\xa1\xab\xbby\x96\x88\xf0`\xbf\xc3\x9eD\x84g_\xa0\
+6\xf6\x12\xe5\xa1Q\xbc\xa8F\x9e\xb4(67H7\
+7y\xb0\xb1\xc3\x8d\x1b7\x98\x9c\x9cddd\x844\
+M\xf9\xf2\xcb/\x99\x9f\x9fgrr\x92+W\xae0\
+>>~\xb8\xde\xed\xdb\xb7\xa9\xd7\xebt:\x1d\x92$\
+\xe1\xf2\xe5\xcb\x18cd\x7f\x7f\xbf\xb7MQ\xc7*\xa8\
+u\xb7\x944R\xc3\xf6N\xc2\xc3\xc2\xe3O~\xf4w\
+\xb8\xe7\xbfC[\xd7\xd8m\xc1z#c\xbf\x99\x91K\
+\x01g \x18\x11.\x07\x96\xc46\xf9\xf5'\x9fS\x1b\
+.S\xadTYZ\xd9\xe0/\x7f\xf03\xe6>\xff\x88\
+\x8d\x8d\x0d\xc6\xc7\xc7\xd1Z\x13E\x11Q\x14\xd1n\xb7\
+\xc9\xf3\x1c\xdf\xf7q]\xf7\xf14Q'X\xac\xd8O\
+\x85FP\xa141\xcd\xf7\xfe\xe2m\xdcs\xaf\x90H\
+\x88M\x158\x06q\x14\xa9\x11\x1amC\x12\x1bL^\
+\xa0\xc4\xf2p\xdb\xe3\x5c\xf5\x22*\xee\xb0\xd7\xc9\xd8I\
+'\xf8\x9f[u:\xed\xecp\x039\x8eC\xb9\x5cf\
+dd\x84R\xa9D\x92$(\xa5\x18\x1a\x1a\xa2^\xaf\
+\x8b\xeb\xbaBW\xa3\xe3\x01\x95\x82\xbd\x0cJ\xa3S\x8c\
+O\xbf\xc1\x85W_g\xf9\xee\xefh\xd7wH\x93\x0c\
+W|\xcex\x83\xb8C5\x1c\xd1l\x1bK'6\xc4\
+qA\xabm\xd9o\xbbD\xaeO\x91\x09\xf5\x96\xe6\x92\
+\xc4\x84\x99}\xcc!M\x18\x86\x0c\x0f\x0f\x13\x86\xe1\xa1\
+ja\x18\x92$\x09\x9e\xe7\x1d\xfc\xdb\xf6)\xd4\x0e\xe4\
+\x02\x95\x81A\x06\x06\x87h\xed<`\x7f\xfe?I\xea\
+\x0f\xb1E\x8eW\x1a\xc0\x1b:\x8fS\xb9\x8c\x8e\xce\xe0\
+\x11\xe2\xe0\x93\x1bK\xb3\x99\xd3h\x09X\xc8s\x8fF\
+#\xe6\xfc9CI\xec\xa1\x82J)|\xdf\xc7q\x1c\
+\xc20<\xec\xd7Z\x1fUP\xfa*X\x0b\xa1\xb9r\
+\x8b\xcf\x7f\xf9O\x08\x8ap\xff\x1e\xc3e\x1f\xd7Q\xa4\
+\xa6`\xfb\xb79\xdbv\x80\x89\xef\xfe\x80\xea\xe8\x1f\x13\
+\x95\xc7\xc8\x8d\x10'\x86N^\x90t\x0a\xe2\xd8\x90$\
+\xe6\xf7N5\x070\xae\xeb\xa2\xb5~l\xcd\xee \xcf\
+\xf3~\xaf\xbfo\x99\x19-+\xcex{\x88,\xe1\x06\
+\x11g\xa6jO\x8c\xdb\xeb\xe4\xac\xdd\xfew\xb6\x16f\
+Hj\x7f\xc8\xa5\xa9\x1f\xd2l\xfb\x88\x05\xb1`\xa5[\
+\xd8=\xd7\x81\xbc\x0b\xd7\xaf\x90\x1f\xf4\x1f\x1d\xd3\xbf\x0e\
+\x02\xbe\xaf\xf0#\x177\xf0p\x8e9\xdbU\x03\x97V\
+\xe8\xb1\xbc\xb9\xcdv\xbc\xc8\xd4\xcb\x86\xc0\xd7d%\x8d\
+1BQ\x08Eaq\xb4\x832'\x03\x1e\x84\xb5\xf2\
+\xf8\xa1\xa9\xff&\x81n\xa1\xf6]\x85\xeb:\xc7N\xb6\
+\xd9L\xd8j\xe7\xf8\xb5\x0b\xbcp\xee5\xac.\xe1\xfa\
+\x19\x9e\xef\xe0\xe7\x0eE\xe1P\x14\x1aW\xabc\xd59\
+>\x0e7p\x7f@\x0exz\x05\x9b\xe3\xf9X\xdcj\
+\xa1G.q\xfe\x9bo\xe0\xbf\xf8\xa7<h\x0fpf\
+\xa8M\xe89t\x02C\x92\x14$\xb1\xa16X\x22M\
+\xd5\xa9\x00\x8f\xfe\xdeG\xc1\xee\xeb\x91\xe3(p\xd4\xa1\
+\xa2Gcm\xb7\xc3O\xff\xf6\xef)\x8f\xbf\xc6\xc3z\
+\x82\xd7\xc88[\xf1\xc82K\x96\x15\xbdfy\xed\x95\
+!n\xb6\xdcc\x01\x8e\x03<u\x0e*\xa7\xd7\xfa\x00\
+^~\xa1\xc2/\xff\xe1g,mw\xd8N]\xfc\xb3\
+\x13L\xbf\xfe\xe7O\x8c\x9bY\x86\x89\x89\x09\xce\x9e=\
+\xfb|\x14t\x9cG\xa7f\xa7\xf7yp\xca~<\xbe\
+5^ej4da\xd5\xe1^C\x13]z\x99\xb7\
+\xdez\xeb\xd8\x85\x83 \x8a\xa2S\xe4 OW\xf0\
+@1\xa5\x1e\xb5n\x07\x88X\xa40\xd8<%\xc8b\
+\xfc<\xa1R\xb4\x88\x9c*\xd5\x812cccO\x05\
+xf\x05Q\xbd\xa3\x04\x00\x16\xb1\x05R\xe4\x885\x88\
+\xc9)\xf2\x84\x22\xed`\xe2\x066\x8b\xc9[\x06k\xbd\
+.\xfc)\x14z\x1a\xe0)\x14<\x90P\x10k\xb0Y\
+\x9b\xac\xb5\x83\xe94\xb0y\x8c\x14\xe6\x89\xf1\x07\xcf<\
++\xe0\xd18\xd1\xe2\xbc\xb9E\xde\xdc\xea\xfb;@j\
+\xb0\x1bm\xc9\x97R\xb1S\xb9\xf2ED\xf3\x0cq\xba\
+2\xe3\xf4\x9f\xc0X\xa4\x99\x8aY\xd9\x97\xf8\xf6\x96m\
+-\xd6ew\xb5!\xad\x81s\xae?\xe5\xb8S\x222\
+\xf8,\x80i\x9a\x8a1&\xa3\xf7\xeay\xa2\x82\x00\x85\
+E\xd2\x02\xbb\xde\x90d\xbd%i=\x96\xb8\x91\xc8\xde\
+~\x22\xcb\xcb\xfb\xb2\xb0X\x97\xc5z,\xe5+\xe7\x82\
+W\x95\xa3\xbf\xf1\xff\x81\xb2\xd6b\x8c\x91\x95\x95\x95\xe4\
+\x8b/\xbeh\xae\xae\xae.\x03\xf7\x8e\x03,\x80f\x9c\
+Sd\x85\xd88\xa7hf\x92\xed%t\xee\xee\xd8\xd5\
+\xf9MY_\xdc\xb1[\x9bmy\x00\xdc\xa5{]q\
+\x17\xf8f\x14EC\x8e\xe3\x14_'\x07\xe38\xb6\xed\
+v\xdb4\x1a\x0dS\xaf\xd7\xcd\xcd\x9b7\xef\xcf\xcc\xcc\
+\xac\xde\xbf\x7f\xff3\xe0\xd6q\x80\x1d\xe0\xce\xf2\xbe\x9d\
+^oJ:\xbf!\xed\x1b\xebv\xe7\xab]\xbb\x06\xfc\
+\x0a\x98\xa1{9\xb9\xd3o\xd1\xaf\x03\xb8\xb6\xb6\x96\xcc\
+\xce\xce\xb6>\xfd\xf4\xd3\xc6'\x9f|\xd2\xda\xdd\xdd\xfd\
+7\xe0\xbf{p\x9b\xc7\x01n\x01\xff\xfa\xee\x7fd\x00\
++\xc0\x8d\x9eJ+O[\xec\xa0<\x9c\x04\xd8n\xb7\
+\x8b\x95\x95\x95dff\xa6q\xf5\xea\xd5\xed\x8d\x8d\x8d\
+\x9b\x9dN\xe7:\xf0\x9b\xdeZO\xdc#\x1e\x05l\x02\
+\xd7\x81% \x05Z\xbdv\xaa\x10\xba\x80\x079l\x0b\
++Y\x96\xc9\xfc\xcd\x9b\xad\xf9\xf9\xf9\xf6\xdd\xbbww\
+\xd6\xd6\xd6\x96\x92$\x99\x8b\xe3\xf8\xd7\x22\xb2\x0e\xd4\x81\
+F\xcf\xbd'\xe2(\xa0\xa1{\xf9\xfdu/\xc0\x0b\x11\
+\xc9\xb3\xb4\xfb\xe2\xb1\xb5\xb5\x95mnnf\xeb\xeb\x0f\
+\xb3\x95\xe5\xe5\xf4\xc1\xfa\xfa\x8d\xe5\xe5\xe5\xbb\x8b\x8b\x8b\
+_---\xdd\xef9r\xa7\x07U\x9c4\xb1\xfb\xd4\
+\xa5O\x17\xcd,\xcb\xd6666V\xe7\xe6\xe6\xaa\xab\
+\xab\xab[\xf7\xee\xdd\xdb\xbau\xeb\xd6\xf6\xf5\xeb\xd7\xb7\
+vww\x7fE7\xaf\xbe\xe2\x84\xfc=.\x9e\xc3\x1d\
+(\x00\x1a\x98\x00~\x02\xfc\x98G\xb9{\x83>\xb9u\
+\xda\xf8?\x8d\x91Q\xef\x82F)\xd6\x00\x00\x00%t\
+EXtdate:create\x002\
+023-03-09T07:07:\
+18+00:00+#\x10\x1d\x00\x00\x00%\
+tEXtdate:modify\x00\
+2023-03-09T07:07\
+:18+00:00Z~\xa8\xa1\x00\x00\x00\
+(tEXtdate:timest\
+amp\x002023-03-09T0\
+7:09:01+00:00J\x90\xfc\
+\x80\x00\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x03\xb2\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x14\x00\x00\x00\x14\x08\x03\x00\x00\x00\xbaW\xed?\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x01\xa7\
+PLTE\xff\xff\xff\xfe\xfe\xfe\xf6\xf6\xf6\xdc\xde\xe0\
+\xca\xcd\xcf\xc6\xc8\xcb\xce\xcf\xd1\xe5\xe6\xe6\xfc\xfc\xfc\xe7\
+\xe8\xe9\xbc\xc2\xca\xc0\xc8\xd3\xd4\xda\xe3\xd7\xdd\xe6\xc8\xcf\
+\xd9\xae\xb5\xbf\xc2\xc5\xc7\xf6\xf6\xf5\xea\xeb\xeb\xb7\xbf\xcb\
+\xce\xda\xe9\xe6\xef\xfb\xe9\xf2\xfc\xdd\xe7\xf4\xaf\xb9\xc7\xbe\
+\xc1\xc3\xfb\xfb\xfb\xfb\xfb\xfa\xbf\xc5\xcc\xbb\xcb\xe1\xd4\xe2\
+\xf2\xd1\xdd\xe9\xec\xf6\xfd\xee\xf8\xfe\xda\xe6\xef\xd5\xe1\xee\
+\xd3\xe1\xf2\xa8\xb2\xbf\xe8\xe8\xe8\xee\xee\xed\xa1\xaf\xc4\xbc\
+\xd2\xee\xd1\xe0\xef\xc9\xd7\xe3\xec\xf5\xf8\xef\xf7\xfa\xd7\xe2\
+\xea\xd3\xe0\xea\xe3\xef\xfc\xad\xbe\xd4\xcf\xd1\xd4\xe4\xe4\xe3\
+\x98\xab\xc4\xb9\xd3\xf1\xd7\xea\xf6\xd4\xe3\xec\xe7\xf1\xf3\xec\
+\xf3\xf6\xe3\xee\xf4\xdb\xe9\xf1\xe0\xf1\xfc\xa5\xba\xd6\xad\xb2\
+\xb6\xff\xfe\xfe\xe7\xe7\xe6\x9c\xac\xc2\xbd\xd7\xf2\xdc\xee\xf7\
+\xd6\xe4\xec\xe9\xf1\xf4\xed\xf4\xf6\xe4\xee\xf4\xdd\xea\xf1\xdf\
+\xf2\xfd\x9f\xb4\xce\xab\xae\xb0\xbe\xc5\xcf\xc3\xd7\xef\xe1\xf3\
+\xfb\xeb\xf5\xf9\xf1\xf7\xf8\xf4\xf8\xf9\xf3\xf9\xfb\xed\xf7\xfa\
+\xdc\xef\xfb\x91\xa0\xb2\xc9\xca\xc9\xdb\xdc\xdd\xa3\xb4\xc8\xce\
+\xe4\xf6\xf2\xfe\xff\xfa\xff\xff\xfe\xff\xff\xfb\xff\xff\xf1\xfd\
+\xff\xba\xcb\xdc\x98\x9e\xa2\xf4\xf3\xf3\xf9\xf9\xf8\xaf\xb3\xb5\
+\x90\xa0\xb1\xc5\xd8\xe7\xe8\xf4\xfb\xf0\xf9\xfd\xe4\xef\xf6\xb8\
+\xc5\xd1\x94\x9a\x9f\xe2\xe2\xe1\xf9\xf9\xf9\xc4\xc5\xc4\x96\x9d\
+\xa1\x96\xa0\xa8\x9d\xa6\xad\x9d\xa4\xa8\xa2\xa4\xa5\xb7\xb8\xb6\
+\xde\xdf\xde\xf8\xf8\xf7\xe9\xe9\xe8\xe6\xe6\xe5\xf3\xf3\xf2\xe5\
+\xe5\xe4\xd3\xd3\xd3\xaa\xab\xa9\xed\xed\xed\xcc\xcc\xcc\xc5\xc5\
+\xc4\xb6\xb7\xb6\xd5\xd5\xd5\xd2\xd2\xd1\xad\xae\xac\xd9\xda\xd9\
+\xf5\xf5\xf5\xc9\xc9\xc9\xca\xcb\xca\xb3\xb4\xb3\xca\xca\xca\xaf\
+\xb0\xae\xd5\xd6\xd4\xfa\xfa\xfa\xfd\xfd\xfd\x08\xe8\xba\x00\x00\
+\x00\x00\x01bKGD\x00\x88\x05\x1dH\x00\x00\x00\x09\
+pHYs\x00\x00\x00`\x00\x00\x00`\x00\xf0kB\
+\xcf\x00\x00\x00\x07tIME\x07\xe7\x03\x09\x06\x142\
+\x1f\xc9N\xa7\x00\x00\x00\xcfIDAT\x18\xd3c`\
+\x80\x01F\x06t\xc0\xc4\xcc\xc2\xca\xc6\xce\x81\x22\xc6\xc9\
+\xc5\xcd\xc3\xcb\xc7/ \x88$&$,\x22*&&\
+&.!)\x05\x17\x93\x96\x91\x95\x93WPTRV\
+QU\x83\x0b\xaakhji\xeb\xe8\xea\xe9\x1b\x18\x1a\
+\xc1\x05\x8dML\xcd\xcc-,\xad\xacml\xed\xeca\
+\x82\x0e\x8eN\xce.\xaen\xee\x1e\x9e^\xde\x08\xf7\xf8\
+\xf8\xfa\xf9\x07\x04\x06\x05\x87\x84\x86!l\x0f\x8f\x88\x8c\
+\x8a\x8e\x89\x8d\x8bOHD\x08&%\xa7\xa4\xa6\xa5g\
+dfe#;>'7/\xbf\xa0\xb0\xa8\xb8\x04\xd5\
+\xaf\xa5e\xe5\x15\x95U\xd5\x0e\x18\x01PS[W\xcf\
+\x81!\xda\xd0\xd8\xd4\x8c!\xd8\xd2\xda\xd6\xc4\x84!Z\
+R\xdb\xde\x86!(\xd5\xd1\xd6\x89\xa9\xb4\xa6\xb9\xab\x1b\
+C\x90\xa1\x07\xe4R\x00\x9f\xbe*\xa3\xfa_u\xfe\x00\
+\x00\x00%tEXtdate:crea\
+te\x002023-03-08T17\
+:27:26+00:00\x9e\x98\xa5\x85\
+\x00\x00\x00%tEXtdate:mod\
+ify\x002023-03-08T1\
+7:27:26+00:00\xef\xc5\x1d\
+9\x00\x00\x00(tEXtdate:ti\
+mestamp\x002023-03-\
+09T06:20:50+00:0\
+0\xdd\xe8\xb2\xde\x00\x00\x00\x00IEND\xaeB`\
+\x82\
+\x00\x00\x15a\
+\x1f\
+\x8b\x08\x00\x00\x00\x00\x00\x00\x00\xed]ms\x1b\xb9\x91\
+\xfe\x9e_\xc1\xd3~\x89*$\xd4\xefhh\xd7I\xe5\
+\xbc\x95T\xaa\x9c\xca\xd5%\xa9\xbbo)Z\x1c\xd9\xba\
+H\xa2\x8a\xa4\xd6\xd6\xfe\xfa\x03\x86/C\x884)\xca\
+\x92\x15o<\x96\x8a\x83\x07\x8d\x97~\xd0\xdd\xc0@\xc4\
+\xf8\x87\xdf}\xbc\xba\xec\xfd\xd4L\xa6\x17\xe3\xebWG\
+\x18\xe0\xa8\xd7\x5c\x9f\x8dG\x17\xd7\xef^\x1d\xfd\xfdo\
+\x7f\x18\xf8Qo:\x1b^\x8f\x86\x97\xe3\xeb\xe6\xd5\xd1\
+\xf5\xf8\xe8w\xbf\xfd\xd5\x0f\xff1\x18\xf4^O\x9a\xe1\
+\xac\x19\xf5>\x5c\xcc\xde\xf7\xfet\xfd\xcf\xe9\xd9\xf0\xa6\
+\xe9\xfd\xfa\xfdlvszr\xf2\xe1\xc3\x87p\xb1\x00\
+\xc3x\xf2\xee\xe4\xb87\x18\xe4\x92\xd3\x9f\xde\xfd\xaa\xd7\
+\xeb\xe5f\xaf\xa7\xa7\xa3\xb3WG\x0b\xf9\x9b\xdb\xc9e\
++7:;i.\x9b\xab\xe6z6=\xc1\x80'G\
+\x9d\xf8Y'~V\x1a\xbf\xf8\xa99\x1b_]\x8d\xaf\
+\xa7m\xc9\xeb\xe9wk\xc2\x93\xd1y\x96\xee:\xf3\x81\
+[!L)\x9d\x00\x9d\x10\x0d\xb2\xc4`zw=\x1b\
+~\x1c\xd4Es\x1f\xb7\x15%\x008\xc9y\x9d\xe4\xc3\
+\xa4N?^f&>\xd9\x996w\xbd\xf5\xcc\xfeM\
+\xfe]\x15X\x02a:\xbe\x9d\x9c5\xe7\xb9d\x13\xae\
+\x9b\xd9\xc9\x8f\x7f\xfbq\x959\x800\x9a\x8d\xd6\xaaY\
+\x92_\xb5[\x8d\xc8\xf5\xf0\xaa\x99\xde\x0c\xcf\x9a\xe9\xc9\
+\x12/\xe5\xf3\x80\x8ef\xef\xb31\x90\xb7\xc9\xf7\xcd\xc5\
+\xbb\xf7\xb3.}1zu\x94\xf5#\x03k\xd3\xcb\x1e\
+\x9c\xae\xcc\x08\x02S\x9b\xb5\xacv=K\xf47\xa3\xe6\
+\xa7\xe6\xb2\x08T\x96WW6\x1a\x9f\xe5\xfe\xe5\xde\xbf\
+\x1b\x0f\xae\x9b\x8f\xb3\x90\x9b\xfc\xb9\xaet|;\xbb\xb9\
+\x9d\xfd#g6\xd7\xf3Z\xb2V\x9d\x8am\xf6\xbc\xdc\
+\x0a\xdch\xe3\xedp\x9a\xdb8y?\xbejNn.\
+\xae\xb3\xae\x93\xf1\xc9p2\xfb0\x9e\xfc\xf3\xe4/\x1f\
+\xef\xde5\xd7'\xd3\xb3\xc9\xc5\xdb\xdbi\xfe\x1c^\x0e\
+\xdf^6u/\x9a\x8f7\xe3\xc9lp~q\xd9\xe4\
+\x0eoT\x96o\xce\xa6'\xe3\xb6\xa6U\x0d'\xc3\xb3\
+Y\xee\xf0\xf4d\xa9\xdc\xcd\xf5\xbb\xad\xb5~\x1c\xddd\
+;@\x87\xad\xb9w\xab\xdc\xdf\xe6\xec\x1fF\xcd\xf94\
+\x7f.\x86\xa8\xa4\xc8\xc0\xdb\xbc\x9c\x9b\xad\xac\x19N\xfe\
+8\x19\x8e.\xb2o\xb5\xd8z\x95g\xe3\xcb\xcb\xe6,\
+\x0f\xf3\xf0\xf2\xc3\xf0nZ\xda[UU\x17e\x91\xd4\
+V\xdaV;\x9d\x8do\x16\xf7\x85\xda\xd9\xdde\xa6\xa0\
+\x80\x83\x5c\xe3xr\xfa\x1d\xb4\xd7\xf7-4\xce\xd6v\
+1\xbb;\xc5\xef\x8f\xba2\xe3\xf3\xf3i\x93\x1b\x86\x16\
+\xebZ-%X\x14\x8fz'\x9f\xd7\x1alk\x0d\xb7\
+\xb7\xc6\xab\xd6~8\xa9\xd5\xdeM\xe3&K\x94\xf4\x00\
+\x96\x8c\x9bt~\xfeX\x96(\xc5\x83X:o\xaf\xc7\
+\xb2D)\xed`\xe9\x89\x8d\x8d\x0c\x8e\x0eT\xec\xf14\
+\x1a}I\x1aM\x9e\xce\xd8\x80\x0e`\xe9l\xd44\x9f\
+\xc1\x12\xc8A,\x8d\xa8\xf1f\xf4h\x96\xc0\xf6\xb1T\
+R\xc3\xcbm,\xfd\xef\x9f\xdf\xfc\xe9\xc7\x7f\xc8?V\
+\x15\x9f}|u$\xde%\xef^\x1d\x0d \x10\xaea\
+\x93WG\xaaa\x1dy\xb7\xa8\xf9o\x93\xe1\xf54\xcf\
+\xbeW\xaf\x8e\xae\x86\xb3\xc9\xc5\xc7_CH1Q\x1f\
+\xf2\xbfrK\xdaG\xe6\x00\x00\xd4'\x08\x1e\x8d\x8e7\
+j\xf9\xfb\xf5\xc5,/\x1cn\xa7\xcd\xe4\xafe\xf2\xfd\
+\xcb\xf5\xdf\xa7M=x\xdb\x06b'\xc5\x91~D\xfe\
+q\x1b}\xe0\xc5\xa4\xf7\xd5\x1eX\x95w7\xc1\xfa\xfb\
+\xd7\xf8z{\x13\xf2\x90&\x0c\x93\xecn\x02\xfe\x90\x14\
+|{\x13\xf6\x90&\xa2\xc6}M\x80\xbf\x06\xd8\xde\x84\
+\xefo\x02\xf7\xd5\x1e\x7f\xff\x89\xda\x13\xacYqe\xb0\
+\xb5\x15\x1f\x1c2\xdb\xd5\xe3\xe9\xfbI\x93W\xbb\xdfU\
+\xf6\xbe\xec@]1\x1b\xa5\x07\xda\xe4~\xfb\xc7\xd6\xf4\
+1 ;'J\xf9~\x80\x10\x14\xa3k<\xae\x9c\x0e\
+#U^\x17m\x95<\xbf\x97}^g\x17\x7f,\xa3\
+\xff\x844\xd5Q\xc4\xf2\xb5\x8b0B\xfe\x17$\xcc=\
+\xb8c\xe4\x8a6$\x0c\x22\x84\xfc)\xf6:\xcd\x9f\x8a\
+=&\x83]\xf37\x03v\xd5`\xd6\x83C\x142\xf6\
+\x15z\x97Q\xd4\xc0l*\xd2\xc9R\x96\xf5\x9081\
+\xa7N6\xa3h!*D=\xd4\x8c\xa77\x93f8\
+\xfas3{?\xce\xdd\xcc\xba\x14U;j\xf2\x02~\
+\xd6L\x1eNI;s \x10D@]\xc0\xdd\xb3S\
+ \x10\x14\xe0\xae\xe7sy\x92\xa4\xd6Q\xd2=\x5c\x85\
+\x9c\x93\x90**\xe7]b\xf6\xd8\xcd\x0f\xe7\xcd\x1f\x87\
+\xb7\xd3\xe9\xc5\xf0\xfa?/oKw\xf7t\xb8\x8aX\
+\xa3\x1f\x9b\x9f.\x86\xb3\xe5\x93\x98\x98\xaa\xa5\xfb\xd3n\
+\xdd\x02\xb3\xaf\xaf\xf6\xe6]zFkJ\xba\xd3\x9a\x12\
+?\xc5\xa8\xd7\x16)!jm\x8d\x12(\xaa\xfbA\xd6\
+\xf8\x9cNf\x02\xb2\x8b\x16\x81C\x9d\xa1(\x8eI\xc2\
+=\xc5\x89C\x02s\xae\x14G\x90@Zi\xad\x01U\
+\x93:= \xe6\x0dp\xb1@rC\x10\xe3>\xb1\xe5\
+\xb0\x17\x84\x0d\xdd\xe2\xf1\xe7\xba jd`\xd9\xe2\x82\
+\x8cb\x107\x5c0*'\xb5m.\xa8\x0a1\xe16\
+\x1f\x14\xe1g\xf1A&\x95\x84\xea\xbb}PD7|\
+\xf0\xd9\xe6C\x16I\xbb\xe6CQ\xadf\xaaH\x01\x08\
+\x1c\xb9\x9a\xaf\xccB\xe96t\xb2\xe7[e\xcf\xb7\xca\
+N2\x08\x0f\xb1-\x08\xeah\xe4\xda\xc7\x10-\xe6\x9f\
+f@}\x0a\x96\xdcHRI@p\x8f\x9e\x9c\xfa\xc9\
+\x02DG\x95\xbe\x86$\x98 \xc9\x03\xd7\xe7\xcf;\x83\
+\x02\xedrn%|\xc2\xf5G\xed\x8a\x03\x04\x0fh\xc8\
+^y\xe4\xc3\x83'\x11\x07\xa6\x88T\xc5\x11\xe5\x10]\
+P\xeb8Bd\xc1\xb4\x0e\x9f\x1a\x03\xc5DL\x99\xe1\
+\x97\x9aU\x88\xc8\x1e\x13>c\x0a\x18\x89d#\x84F\
+u\x93:\x84F\x0e\xc9!b\xa5\xbci\x10q\xc4\x17\
+V\xde_V\xf9]f;+\xb7\x97\xc3Y\xf3\xeb\x14\
+\xfbp\xfc\x92nH\xca\x15\x03\x12C2\x97H5\x03\
+\x16\x90]1V\x0cH\x0a\x84\xb5lF]\x83P\xd4\
+C\x16\xb2\xfby*\x1113\xf5\x92K~\x05yb\
+\x8d\x08II\xad?\x80\x05\xbb\xe9\xb8\x1a\x0b\x8fA\xcc\
+\xc5\xea\x87\x8a,\xcd\x86\xe2\xa4V\xdb#Z\x88e8\
+\xea\x85\x1cX;\x1c\xf6\xa2\xd4\x91}a\xea0\xd9\x9c\
+\xbb\x8a:\xe3\xb9\xb4V\xc4)\x05\xc2\x9afjgo\
+\x22\x11\x8d/J\x1c\xc3\xbf\xc7$\xf9b\xcb>ey\
+2\x86\x8b]\xaa\x9bA,v\xa9\x84$Q\xca\xadS\
+\x14\x16\xc9\xe4\x0b\x82\x01b\x1f\x8d\x83r\x12\xed+\x04\
+P\xd5\xa4\xf5F\xc9\x00-\x98\xb9x\xbd\xad\xeb\x16\x9c\
+,Y\xb5\xfe\xdc&|^\x09W\x0b\xd0=t\x17!\
+\xe1 Q\xa2QU\x9fb\xd0D)a\xd5\xb8{\x00\
+!\x87To\xecHH1\x09Z\xbd\xa8\x8eA\x999\
+\xe2~3\xdb\xcf\xb5$CP+\xac\x0a$\xa7T\xa8\
+\x8el\xa0i\xc1\xba\x83Yy(\xc3\x10\xc9\x9c\xb5\xef\
+1x\x8a\xa0\xfe\xc0\x05\xf2.\xcbAN\x0f1@J\
+\x09\x8e\xf6Yr7$g\x97\x177\xff5\x9c\xbd_\
+ox\x891r7\x94Kp\xcf\xc6\xfbM\x16\xd9\xd8\
+\xdd\xcd\x8fZ\x97\xa7\xb7\x93\xcb_\x7f\xb7\xa9\xd3\xf1\xf7\
+%w\xed\x0f(\xd3\xd9d\xfc\xcf\xe6\xf4z|\xdd,\
+\xee\x07\xed\xb3\xe8)Z\x90\xa4\x00\xe0\xb2\xcc(\xaag\
+\xfdN'\xe3\xdb\xeb\xd1:\xf8\x7f\xe3\x8b\xeb\x1a\xbd\xba\
+\x985\x93\xcb\x8b\xfcq\xba*>\x1aN\xdf\x0f'\x93\
+\xe1]\xd5ZA\xdb\xad\xea,\x19P\x17p\xd7\xc3\xb5\
+\x87\xccL\xd6\x9f{\x83\x14\x03\x13:\xf6)\x86$\x1c\
+\xb5\xf7\xba7@\x88A\x0d\x91V(f\x10c\x88\x09\
+\x81\xfb\x8c\xc1\xd11Z\x06I\x83\xaa\x1a\xf59\x05u\
+\x8aFm\x05\xcc!\x83.}\x89\x19N)q\x01c\
+\x10\x11\xb7\xbez \x22\xc3\x05\x88\xa9\xc4X\xf3\x10c\
+\x12H\xbd7\xebp*\x8eI X\xea\xed`\x04\x08\
+\x1e9\xfa\xbc\xb1$\x80\x05\x94\x80\xe4T@J\xc1\xdd\
+9u`\xa9\xd7$DUb\xed\xe0R\xafA\x88\xc0\
+\x92\xd6\xe1\x81\x96\xeezJ\xbaj\xac\x02\xbb\x8e\xbdY\
+\x87;5^\xb70&\x8f\xa6+\x95)7\x86\x01\x1c\
+b\xd4ur,e\xd0\x01\xb0&2Zp%u\x5c\
+\x91\x9eG\xc2c\x96%Iq9<\x92\xb6\x0d\xe4\xcf\
+\xbd\xf5\xf1\x15\x0e\xe2\x08(\xa5\xda\x04!9\x89\xfa\x0a\
+\xd6\x5c\xad\x04c\xd6\xcc\x8dhH\x18Sn>\x85h\
+\x82\xd1J\xe8\x8d\x1eI\xad\xed\x95\x84\xa4\x94\x15P\x0d\
+\x9a\xdc<C\x14\x145\x17\xea\x1b\x06gf\xa7\x16\x14\
+\x8d\x89\xa5\xb0\x02\x09\x80Z\xb2\x90(\xa0F\x8ek\xf0\
+\xeb\x05\x0c\x80\xb4\xaa\xa2\xb5\xba\x14,\x81\xdb\xb2\xad\x98\
+\x0a(\xc1c\x12\xa9\xbb\x85\x08\x01\x10\xc0\x17\x0ax\xd2\
+\x0c\x02\x073D[\xa9\xca[Y\xf9\xf9\xde\xfe\xcb\xcd\
+<\x88\xc4\x0e\xee\xbe5r=\x1e5\xb3\xbb\x9bf\x9a\
+\xe3\xcd\xf4\xac\xbd\xa6\x8b\x9f\xb5M\x9ae\xd4\xf9\xf7\x9a\
+@R\x0a((\xf1\x89\xe7\x0f\xfe\xe2\xf3\x07\xa5\xc7\xcc\
+\x1f\x87Y\xcbv\x9b\xdb\x8c\xd2\xe8R\xc8\x16\xad\xc3t\
+*\xe3\xae\xd1\xd6\xc34\x81\x06\x02\xb5\xb8\x1e\xa6\x09)\
+K\x02Y\x1d]\x88 \xc3Q|=\x12\x11IpM\
+]\xc8Z`\x06\x89b\x15\xa5;\xb8\x8a\xd2\x1d\xbc\x1e\
+8\x890\xb0J\x8c\xeb!\x960\x06\x06\x06\xae\xa34\
+*\x05\xb4\xe4\xb1\x8e\xd2(\x1e\x10\xfd^\xa0\x17\x09n\
+\x5cM\x09\x1dXE\xe9\x0e\xae\xa3t\x81\x0dY\xba \
+=oK\x92\x0aV3\x98ZP \x93\x9aF4\x09\
+d\x91h=Hc\x94 )\x22wA\xba\x1a\xc7*\
+Jwx\x15\xa61z\xe0\x14!\xad`- \x05\xc8\
+\x89\xd8\x85i\xb4\x18\xb2\xac\xe3\xbdxh\x14\xd8\x22\xa7\
+\xb58\x8d\x9aB\xa2\xe4\xd8\xc5\xe99XJ\xc5:N\
+\x13\xa4\xa0\x91\x00\xeb8\xdd\xc2(\xd1\xd6\xe34A\x0c\
+\x08\xaa\xeba\x9a\x80\x02%\x01\xbf\xd7\xad\x14\x83\x90D\
+\xaa\xc2t\xc2\x00qmB\xe2\x9a\x95.L\x1f\xb2B\
+\xe3\xafo\x85\xf6\xcc\x13H\xe4\xa0\x8a\x84\xb6m\x02\x01\
+\xaf&\x10\xe3\x00\x821\xea\xe7O \x18\x10\x04\xdc\xb5\
+\xbf\x9c*\xda\xe7>3\x89\x92\xac\xdc\xba\x1bs\x09\x19\
+\x09\x83\x88\x11\xf7\x8d\x02)'\xb0\xcf\x9f@H\xe09\
+\x1e@\xea\xc2\xeb\xcf\xeb\x83\x12Y\x8d\x08\xeb}P\x83\
+ @`Zo\xb5H\x80h(k]\xc4J\xf6@\
+\xed77.\xfdA\xda\x9bEy\xb4\xf6\x87u\xb2p\
+\xe4\x155\x03\x83\x8a\x14\x04\x0d\xce\xa0R\x91\x92\xa5B\
+\x12%\xc5\x9d\xfa\x0a?lG\x89\xe3\x93\x8c6a\x00\
+F\xd2J!\xc6\xc0\xd1,z\xa5V\xcc\xa2.\x09\xbc\
+R\x0bQC'\xbbwS\x0f\x021\x13Q\xeacH\
+\xa8\x90\x04\x8f\x9f\xc0J\xf8A\xac\x99\x88=\x09kb\
+\x81\xc8]SE\x9b\xa6\x8c\xaaC\xaci\x0b\x9e\x22\x13\
+\xc6\x8a\xb6N\xf6\xa1\xb4\x19\xb1e\xda\x9e\x86.\xfc\xa2\
+t9\x05\xa0\xe4ZG\x94(A$F\xa3z\xdf\x9b\
+,$6#\xabC\x8a|\xb6\xda\xe4h\x87\xab\xfd\xfc\
+\xb1\xc4\x831\x8b\xd7\xe4`\x0a\x89\x85\xd9*r\x14\x82\
+:\x98T\xb6Td!Y\x8c\xbaCy3\x87/\x12\
+H\xf7\x9br\x9f\x8f\x8f\x0e\xa7I!D\xf2\xe4u\xa4\
+2\x0a\xc0~\x7fs\x1a5$\xe4\x88\x15K\x9d\xe8.\
+\x96\xe4\x81\xd3\x8d\xf0\x174\x91(E\x1f\x94X\x87\x1b\
+\x0dL\x09\x98k\xdd\x91*\xb5;\xa9]js|\x98\
+\xda\x8cO3\xebx \xd6tO!\xe4\x90\x0cA*\
+}\x08\x03\x02\xa6$\x9d\xe8\x1c\x85$\x19}\xec\xfa\xae\
+\x0e\xae\x82\x85\x22\xeaC0L\xac\xe2\x9f\x1fdM\x22\
+=4\xda|\xe3\xf4\xc1\x9c\xc2\x97\xe54\x06\x88\x00)\
+\xd5\x9cj@2w\xff\x85\x90j\xf2%H\xdd\xaf\xde\
+ \x06\xf5\x08\xc9\xbc\x9fo\xd9\xc1D\xe9\xf8\x00\xe2v\
+\xa9_\x0f*DW\xd9\x18TO\xc8|\xc8\xa0\xee\xa4\
+U\xe9_p\xb51\xa0Zm\xaa#\x83{\xa5(\xd3\
+N\x0d\xf1\x81\xde\x08\xf2\x10\x0d\xf7\xee\x15PPM\xe2\
+V\x7fk\x1c8\xa8\x03w\xe0\xc7V4\x02\xf0\xda\x08\
+\x9cm\x13=\xabD\xb7\xdb\xd9\xcdp\xf4\x90\xbf\xba\x07\
+N\xa6\xa4\xdc\xb7\x90\x9cQ\x14\x9b\x01\x173\x8e\x8e\x92\
+\xac$0\xa8\x1a:k\xbf\xfd{\x81\x93!\xf6\x07\x96\
+\x82%7|\x82\xad\x82d\x89\x0e<3p\xb8\xc9\xed\
+\xb2\x07\x90\xfa(\xd0\xe6Y\x12\x13\xb0\xa3\x83O\x08\x81\
+c\xc3\xcd\xc6\x91\xaf\xde\xc9\xfe\xd6\xfc\xe8\xe0\x830\xec\
+q\xd4\xc8FkOt\xda\xcdDl?K\xe2\x87\xb3\
+t\xde^\x8faIa\x1bK\x87\xb7\x06O\xc7\x921\
+\xeee\xc9\x98\x0fg)\x02G\x80G\xb0d\xac\x87\xb3\
+\xf4\xf6\x5c\x1b\x80\xe7cIx?K\xa2\x8f\xb2\xa5\xd1\
+\xe8\xec1,I|\x8c-\x8d\xce\xdf>\xa3-\x99\x1d\
+p\xbe4\x9d\x9f\xe19=\xf2|\xa9\x99\xf9~\x96\x18\
+}\xab\xe5\x06\xdd\xcd\x93zl\xde\xea\xbeQ\xd9\x1dJ\
+\xcfh\xa8\xfe\x00\xedp\xabv\x11\x9enT\xa2\xec\xb7\
+\xdd\xf8\x98\xd9\x02\xd0\xc4\x1fc\xbb\xf1\x11\xb3\x05\xe20\
+=_\x1cd\xe2\xb8\x8f%&N\x87\xb34\xd2\xc6\x1e\
+3[0\x09\xfe\xab\xcd\x16\x94\x12\xecc)\xcb\xd0#\
+X\x8a\xe5\xdf\xe1,QJ\xf24,\xe1\x0e\x96\x0e?\
+xT\x9f\x0b\xc2g:\x9b\xa7\xa6\xa4N{\xce\x05\xe1\
+\x96\xb3y/v\x08\x8d\xf0\xc9\x0e\x16o\x9e\x19\xe3\xa8\
+\xd5\x97o\x9f\xf8\x1c\xdb\x8b~\xb3\x96\x08_\xe2\x9b\xb5\
+\x0c\xf4b\xdf\xac}\xc9\xaf\x8a\x13=\xc9\x19\xd2\xe7:\
+\xd5\xfc\xa2g\x5cH\xbf}\x8b\xfe\x99}=\x1e\xc0\xf0\
+S\x1e~$\xd6\x00\xd1\xd1\xaa\xc3\x8f_\xe2\x1c\xe7\x0b\
+\x9enc\xa2\xf4ox`|\x7f\x0cd\xfa\xe6\xe8\xcf\
+\xfb\xd6\x10\x96\xaf\xff\xad!_\xf8\xd54\xc4\xf6\xf5\xbd\
+\x9a\xe6E\xa3\x1b\xfb\x81\x84\xed?c\xfb\x0b<\xe3\xcc\
+$\xf0K>\xe0\x0d\xb4[yzJ#A\xf6\xf6\x84\
+\xf1\xf3\x1c\x86~\xe1iQ\xe4\xa9\xa9\x8a\x1e\xc5\x7f\xf9\
+\x07\x97I\xecy\x99{\xfes\xcb?\x9c\x94W\xa6\xb6\
+w\xdd\xe9\x8d\xe1U3\xfa\xe9\xa2\xf9\xd0\xbdW\xf5\xed\
+p\xa5\xc4\xcd\xf0]\xd3\xee;e\xba\xce\xdbk\x91\xf1\
+v<\x195\x93e\x96\xb5W\x95\xb5\xd8\x9aZ\xbc\xf7\
+\xb6\x1e\x9dR\xeb*\x1f\xb6\xe7O\xdf\x0fG\xe3\x0fy\
+\xf9s?\xf3\xe7\xf1\xf8\xaa\x94J\x8b\xeb~~\x99\xf0\
+X,$&\xd6\x8d\xcc\xdc\xa0\x041aOr?s\
+4>\xbb-oe\x1e\xdc\xce\x87\xf5\xe6\xe3F\xf1\xdb\
+\xc9\xa4\x08\x5c\x0e\xef\x9a\xacw\xfb\x81E\xa8z\xa7p\
+)W\xbdw\xa7\xc3\x8aQ\x5c\x8c\xa6E\xf7\xebw\xb9\
+\xa3\xb2\x0d\xbf\xbb\x8f7W7\x8b\xac\x8e\x8f\xe9\xfb\xf1\
+\x87\x9cWv\xcc\x86\x97\xd3\xe6~OK\xd6\xe0f|\
+q]\x14\x99Mn\x9b\xf5b\xb7\xb9\xca\x0e\xae\xcb\x95\
+\xbc\xc1\xdb\xb7\xe3\x8f\xdb\xf3?\x5c\x5c\xe7a\x19,\x95\
+\x05\xb4OH,u\xb7D\x9f\x90(\xe3d\xf0\x89\xcc\
+\xcc\x81\xc5\xe5\x8b}+\xad\x96\x06>\xbb+o~\xfe\
+xW\xb0\xcao\x0b@\x1am\x05Vt\xdfG\xefj\
+\xb4\xa2z\xe56\x9b\xde\xd2\xe2W\xcdl8\x1a\xce\x86\
+\x9d\xeb,\x112\xc4e\xef'\xa3\xf3\xd3\xff\xfe\xf1\x0f\
+\xab=\xd4\xb3\xb3\xd3\xff\xc9\xef^\xee\xb6=\x8b\xc0\xf0\
+\xed\xf86\xb3\xd5\x96Y\xc8\x8d\xceNK\xd0\x18\xce~\
+{q\x95\x1d\xa2\xbcq\xfb7\xf9\xc5\xd7\xd9\x89\x97\x19\
+\xb5p!$\x03U\xb5\x93f\xfeF\xedm/!\xcf\
+?W\x17\xa5\xd0\xc9_g\xf9\x10\xc9\x9fJ#\xeb\x9b\
+\xd6'\x8b\x8e.7_;=rb\xa9h\x9bzw\
+o\x0c\xf3\x1b\xa0\x9b\xcbWGo.\xf2K\xb0/\xc7\
+=\xdc4\xce\xf1\xed\xcd\xd5x\xd4,\x5ch\x99?Z\
+\xa4\x0bu\xdd\x89\xb3\x1d\xe7\xcd\xca\x19\xb3\xee\xaa\xac\xa0\
+\x14\xa5\xc5^]w\xd2L%DG\xd2>R@S\
+\x11\xcb\x07\x81\x90(\x888\xb4\x07~Pb\xf4r:\
+\x09\x89\x830J\x01]\x19\x942\x94S\x14<9\x88\
+\xcdSE\xb2\xbd\xd1\x80\x80Ie\xad\x9c\x05\x14K\xe2\
+]\x03\x05s%\xc2\xd2\xacJ\x80\xc4Q\xfb\x88\x1a\x9c\
+\x941\xd7%)$\x05\xe3\x0cz\x10\xd5\xd8\x13i\xef\
+\x9d\x5ch\x9e\xe0\x5c8\xdf\xb8\x07(\x97\xb4*t\xc9\
+\x5cK\x0a\x861\xd9\x023\xf5^,\xf1\x92\x04\xb8\xef\
+\x16@\x11\x14{\x8b\x02\x05+utI)ut%\
+\x04C\x12O\xba\xaa\x96S\xc9c\x91\xd2\xae@\xdb\x9d\
+\xd5'\xea\x224\x17m\xa4%\x1a\xdc\x8d{\x8a\x01\x08\
+\x94\xfa)\x88X\x04\xf5-\xc3\xd1\x1d\x80\xda<\xfe\xb4\
+\xf1J\xb8\xcd\x03\xeamrr{\xd9\x9c6?5\xd9\
+PF\x9f>\x10\xe5\xc1\x089\xba\xa7\xc5\xe5\xfa\x8c\x07\
+\xa3\xea\x13POc\xde\xacL\xdf\xcc\xfb+7\xef\xa5\
+Y@ \x15s4\xf9\xfe\x93\x07\xfe\x94\xe5),>\
+\xbd\x9c\x9d\xef\xf7j\x06\xfc\x1c\x1d\xf1\xe6\xe3}\xed\xde\
+\xde\xcef\x1b\xca\xb5\xfa,\xd0\xba\xa5\x8c\xcf;\xd6\xbd\
+\x9b\xf4\xb8\xf6\xb2H\xa1Xu\x00#-\x96\x84A\x88\
+\x12R\xc1\x90bt\xeeE\x08\xec\x06)\x15L8\x91\
+[\xcfR)F\xbd7\xa5\x84\x17\xc7H\xc1Hs\xda\
+\xa1\x8f\xedZ?\xaeR\xb9\xde\xf2\xc9\x01\x1cM\xbc\x17\
+-\x80!\xc4\x5c!\x04\x173\xab\xbb\xf1\xf3ft\xa0\
+H+p\xf6\xa9\xbf?b\xbf\xb87\x1c\xd7\x83\xb5\x19\
+i0\xd5\x1c\x14\xa76\xc5\xb9\x83\xbcn\x93\x8ch^\
+\xbc\x09U\xd40c\xa5\xf7nY\xc4\x02\x92n\x02o\
+2\x94\x82\xf3\x02*\xe1\xa2\x06\x8b\xa7.\x92\x89\xbd\xf3\
+TD\x0fD`\x95\xaf\xa2.J\x15W\xad;\xf8s\
+\xef\xd3ng(\xc4D\xdf\x7f\xd2\x22\x95\xf0+\xf0\xba\
+]&,\xc2\xc7\xfbM!\x7f y\xf9-\x83s\xfc\
+@\xf7\xdd|u\xe6WD\xd6\xb7\xd9\xf3+\x9c=\xeb\
+\xc8$\x12\x8f\x0eXC\xed\x0es\x9c\xf0+\x0a\xf5\x9b\
+\xb1,\x82 &\x8f\x9f\x0ef\x9c\xf8_nz\xdd\x19\
+\x9b 8\xa3\x09\xd2*F!\x04e\xe46PE\x17\
+\xd4\xe3\x9d\x06\xb0k\xe07\xdb\xa3\xe0\xec\x84\xec\xe5O\
+\xcb\x03(\xd6\xaa)R\xbf\xbb\xab%X\x03\xa2\x83x\
+\x1f\xd5\x83\xb8)\x1f\xef\x18\x1fI`l\xbac\xb2a\
+\xf8%L6_\xffZ\xa1^\xfe\x90w\xe0\xd6\xff\xc0\
+*\xc1'\x05\xee\x16\x02\x9d\x09\xbe{\xe8ljt\xd0\
+;\xd8\x9ee\xd0\xf7/\x1c \xb8Ar\xd3\xee\xbd\xe7\
+\x92b\xb4\xe3z[\x8e%\xd2A/\x13\xaa\x1f}7\
+\x02\x7f\x94\x02W\x86\xe6\x18TA\xa4O\x18\xc4$I\
+;\xb81(\xa8\xc4~\xe4\xe0`ISk(\x16\x10\
+\x93eT\x83\xa0)`\x8b\xb1\xa0\xf6\xa3\x05'G\x8e\
+ma\x01\x06\xeeGo\xa3\xb2a\xa9\xb2\xc4kJ\x01\
+\xa2\x9b\x95\xca\x5c\xfa\xc8\x14\xcc\xc0s\xc2\xdb\x84+z\
+jS\x9d\xe8\x9b6\x9dR J\x18)\xa7\x89d#\
+\xad\x14b\x04\xe7\x85\xfcF\x9a8$J\xc4T\x9a.\
+i\x08\x91\x9d\xb5\xb4&\xc1%\x22\x97\x09\x87T\xc8y\
+\x93\x94\xc3^2C\xb81a\x048h\xca\xb0/\xfd\
+\xb8y\xf2n\x97\x9f\x95\xc2\xdb}j[@&\x22;\
+\xbe\xa7P\x80\x18#\xa4\xe8i~\xbdd\xb4E\x8f\xc7\
+\x87x(3\xcf\x0dz\x97\x9fZzR?\xc5\xfb~\
+J\xd17\xfd\x94P\x02n\xf8)!\x85X\xfbi\x8b\
+\xa5\xdaOKa\xd8\xf0S\x8a\xb1\xf2Sr\xec\xfc\x94\
+\x5c;?-\xa9\xcaOs\xba\xf2K&\xbc\x9f\xae\xfc\
+\x92\x5c\xef\xa7+?-\xe9\xceO\xc9q\xc3OkR\
+j?\xddo\xc2\x9b\x1e\xb9\xdb\xa8\xfdSF\x9d^\xc0\
+[\x0f\xdf%\x22\xfd\xbce\xac\xbd\xc8\xf3%\x84d\xed\
+\xd3\x80\x05T#\x9d?\xd2\x91\x00\x01\x15\x90!r\x94\
+\x9ex\x1fc\x10N\xe8\xde&\xd2B\xfcMI\xc9\xfc\
+\x91n\xf5i\xba\xaa\x8c0$N\x02\xa9o\x16\xd8@\
+\x15{\xe4A\xb4\x08\xf4-\x06(\x17\xf68\x05F\xd2\
+\x8c\xe4Bf\xc5\x02Y\xa5$\x13\x84\xe4\x1as\x05\x1c\
+\x80\x1c\x84{\x88\x108wZ-\x08\xcc{\xa1\x12\xa4\
+@\x18\x030\xb6M+\x07\x02$\xc1V\x0f\x8c\x92\xb4\
+\xa7\x14\x00\xd4c*\x18\x98j\xd4\x0d\x0e\xb6\xed\x5c\x11\
+1\xed_\xd2\x97\xc7\xba\xc7m1*\xc8\xe6\x94\xf6\x95\
+\x99\x0fF\xf4<z\x05\x84\xa4\xea-\x98XI\x8bI\
+q\x84\xd8BJ\xeeT\x8c(\xf8j\xc4T\xac\x14-\
+\xa0\xbaS* C\xd2\x98\x0a\xc4\x9a\xc0\x0b\xa4n\xc9\
+\x0aB\xe8\xf3\x92\x89\xd2\xaa$\xa1BjAvvj\
+!\x22\xe6\x16RBOuQ\x83\xc4\x8b\xa2\xa8$\xd4\
+\xc7|C1Q[\x14Rt+\x10\x83E\x98CF\
+Z\x10I\xd4j:\xc7@\xbc\x80\x0aD\x84sH\x84\
+Z\x08\x99u\xbd\xa0\x12\x0b/\x0b\x92\xc7\x16\x8c\x08\xa4\
+\xa5k%\x91\x901\xce\x13\xa9cTbH\xf9\xc2\x16\
+\xa4\x18-.%8:\xd22!\x85\xd0\xb9G\x12T\
+I\xe1\x10\x85\xd0\xe7\xc9\xb9\x87\xd4`.^\xc0\xb6\x0f\
+\xc9\x17\xbdLE\xabD\xad\xb3D\x92\x98Q\xa5 \x0c\
+:\x1fJG\x11\xeb\x5c\xaf(\xc5\xf36\x11R \x9f\
+\xbb(\xc8\x82\xae\xa4!\x1aF\xec[1\x1b\xf1Lt\
+\x5c2h\x12\xc4T\xb2\xee\x06\x8bH`\x01\x5c\xdb!\
+*b\x86\xa6T\xc4\x8c\x13\x99\x96\xcaX\x91\xdb\xed.\
+\xd6$\x1eK\xa3\xcb\xb0`1\x99/;\x22`\xd4\xa2\
+\x11\x17C^\xd0H\x16\xb1\x95\x05\xf6dmP\x01\x8d\
+\x9c\x0a\xa6`\x09\xe2z\xa0\xe1\xb4\xa0\xb3\xc5d\x89Z\
+\x9c\x13\x18SHm3,K\xa3\xac\x83\xd2r\xe8\x95\
+\x03\xc7\xa4\xad\xcb\x08\x92Q\xcb)\xdb\x22\xde\xa2Fe\
+\xed).J\xdar\x1c_\xb7\x98\xa6\x14\xe7 \x80q\
+\x0b\xc5Hs9Rl\x91\xca\x1b\x0b\xc0D\xcas\x90\
+1\xc6\x02!;y\x0b\x01\xb1\xc5m\x8e\x5c\xde\x92Y\
+b:/=\xe5\xcd2Y\xcc\x7f\x99\x94*iZJ\
+/\x93!\x97\xd2J\xa45\xc5O&\x917\x92U\xe3\
+]r\xeb\xae\x9b\xed\x89\xd0\xd3\xf6:\xab\xae\xe9\xee\x9d\
+\xb8\xc7\xd7\xb5\xed\x81]\xbe\x05\xcfo\xc1\xf3[\xf0\xfc\
+\x16<_<x>xYJ\xf6U\xed\xb4\xb4On\
+?\xe4\xaf\xa5\xe5\x8f\xff\x07K$K_f\x83\x00\x00\
+\
+\x00\x00\x1b\x90\
+\x1f\
+\x8b\x08\x00\x00\x00\x00\x00\x00\x00\xed=io\x1b9\x96\
+\x9f'\xbfB\xeb\xfe\xb2\xc1J\x14\xef\xc3\x1dg\xe0\xb3\
+\xd1@\x0ff\xb0\x99c\xbf\x05\x8aTv4-K\x86\
+$'v\xff\xfa}\x8fu\x97\x8aeQ)w\xecA\
++\x08,\xb1\xc8G\xf2\xdd\x8f|E\xbe\xfb\xf3\xc3\xed\
+b\xf0%Yo\xe6\xab\xe5\xc9\x11#\xf4h\x90,\xa7\
+\xab\xd9|ysr\xf4\x8f\xbf_\x8d\xec\xd1`\xb3\x9d\
+,g\x93\xc5j\x99\x9c\x1c-WG\x7f~\xff\xe6\xdd\
+\x7f\x8dF\x83\x9f\x92e\xb2\x9elW\xeb\xe3\xc1\xe9l\
+\xf5)\x19\xfc\xbcX\xdco\xb6\xbeh\xc08\xa1\x84\x0e\
+\x07\x1f\xfe\xf9\xd3\xe0\xf2\xe1n\xb5\xde\x0e\xfe\xb6\xb8\xbf\
+\x19\xfd\xbc\x1c\x10_\xf8\xcf\xb4\xcf\xe3\x81&\x94\x0e\xce\
+\xee\xe7\x8b\xd9@1)\xed\xdb\xc1`4z\xff\xe6\xcd\
+\xbb\xcd\x97\x9b7\x83\xc1\x00\x06\xb8\xdc\x1c/7'G\
+\x9f\xb7\xdb\xbb\xe3\xf1x\xb9!\x13\xec\x8fLW\xb7\xe3\
+\x0f\x93/\xc9\xd5j\xfd\xaf\xe4\xd3\x18\x06?>*[\
+\xcc\xa6E\x8b\xbb\xfb\xf5\x82\xac\xd67\xe3\xd9t\x9c,\
+\x92\xdbd\xb9\xdd@uV\xad>-\xabO\xd7\xc9d\
+;\xff\x92\x00\xfc\xdb\x15\xf4\x86-\x97\x9b\x1f*\x95\xd7\
+\xb3\xeb\xa2\xf6\xd7\xaf_\xc9W\xe1+1\xe7\xdc\x98\xf2\
+1\xe7#\xa81\xda<.\xb7\x93\x87Q\xbd)\xcc\xaa\
+\xad)\xa7\x94\x8e\xe1YYs\xbfZ\xc7\x0f\x8b\xf9\xf2\
+\xd7\xe0`\xfc\xd3j\xef@\xd9;\xf8_4\xc8\x0b\xc8\
+fu\xbf\x9e&\xd7\xd02!\xcbd;\xbe\xf8\xfbE\
+\xf1pD\xc9l;\xab\x80\x01\xa0\x9b\xe9\xe4.\xa9\xf5\
+\x9b\x17\xa6\xf8\x9a\xdc&\x9b\xbb\xc94\xd9\x8c\xf3r\xdf\
+\xbe\xc6jX0\x9f\x9d\x1c\xfd\x02\xc8^,V\x1f\x99\
+/\xf9:\x9fm?C\x05n\xfd\xcf\xcf\xc9\xfc\xe6\xf3\
+\xb6\xfc\xfde\x9e|=[=\x9c\x1c\xd1\x01\x056c\
+\xf0?\x85\xb4\x02\xd8\xd7\x8b\xd5\xd7\x93\xa3/\xf3\xcd\xfc\
+\xd3\x22\xed0YN\xe0\xeb\xe8\xd3d\xfa\xeb\xcdzu\
+\xbf\x84\xee\x96\xc9\xd7A\xb31\xcc\xeb\xd8\x8f\xf7\xe4\xe8\
+n\x9dl\x92\xf5\x97\xb4y\x8e\x82\xe3b\xe0\x94\x08\x9e\
+\x8e<\x9bW\xf5\x91\xb4\x84\x0d\xd6\xcehZo=[\
+M\x11#'G\xb39\x08\xd2\xcdh\xbe\x04L\xdf\x02\
+\x97\xad\x96\x04\xe8\xf9[\x1d\xe0\xea~{w\xbf\xfd\x98\
+<l\x93e\x0a\x19PZ\xc1\xaf\x7f\xec\xdb\x91\x1ar\
+7\xdb\xc7\x05\xf4\x91#\xe2\xb8\x8a\x87\x02x\xe2\xa5q\
+t=_$\xe9\x90\xc6\x9fW\xb7\xc9x6\xf92\x9f\
+\x8dW\x0f\x8f7\xc9r\xbc]\xdf/\x7f\x1dC\xfd\x05\
+\x22o\x0c\x0a`{\xbf\x19\xb7\x8c\xfdny\xd3\x0a\xfd\
+av\x07<&\x041\xaa\xf5\xf9c\xe5\xf9\xfbw\xb3\
+\xe4z\x93\xf3\x02~\xe7\x8ck(\x06\xdeM&\xeb\x9f\
+\xd6\x93\xd9\x1c$\x16+T\x00MW\x8bE2\x05\xbe\
+\x98,\xbeN\x1e7G\xd9c\x80Po&\xac\xc5.\
+6\xdb\xd5]Z\xa5@\x13\x16\x8d\x00\x0c(\xb0\x1f(\
+\x15L'?\xfa\xa2\x15\xb0\xc1|\xfbx\xcc~<\xca\
+[\xac\xae\xaf7\x09\xf4E\x8b\x12\xec\x08k\x03xs\
+4\x18\x1f\xd4\x01\xdd\xed\x80\xb5u\xe0|\x07\xe3\xfa\xbc\
+zC\x8f\x11\xcf\x8a\x1e \xf0\xf3\xa2\xc7\x98gD\x8f\
+4\x92=#z\x00\xbcxV\xf4@\x07*\x02=\xbb\
+\xf3\xa7\xbc9\xff\x024\xe5\xa2c\x8a-\xb3\x98\xc8)\
+Md\x03M;\xd3\xaf\xc0W\x1d3\xdc\x13>\xfd\xb6\
+\xd9\xb3\xa6p\x94\xa3c\xbb\xa3\xeb\x9c\xfd\xb5\xff\xec0\
+Ix\xfa\xcc\xc5M\xbf\xad\x83o\x9a>\xb7\xda\x1e=\
+!8\xed\x83\xe7\xd6\xd08\xecP:\x95\xd3\xe9\xbe\xbc\
+\x01\xf0y\x0f\xc8\xf9\xf1[\xb0\xa3\x99\xc8\xb1s\x93\x15\
+\xfdc9\xdf\x82\xdfv\x0f\xee\xc3\x07\xf4%\xfe\xba\xfc\
+\xc7&\xc9\xea<\xb0\x93\xa3\x91\x95\xe0\xecrIs\xc1\
+y\xc4Ba\x05q\xce\xe4\xc3\x7f\xe0P\x86\xee3\xe5\
+9\x03<\xf2\xddjy\x9f\x7f_O\x96\x1b4\xc8'\
+G`\x93\xd7\xf3\x87\xff\xa6C6\x1c\xb1!\x1d\x8e\x84\
+\x83\x16V\x0d\x99\xa4\x1e\xdc\xdb\x06\xb9\xf6\xa4\x8ceI\
+\x932?\xeeh\x1a\x0d\x9d\xec\xd0k/\xd2P*\xa7\
+\xce\xee\xd3\x01\x7fFM\xaf\x9c\xa3Ok\xfa\x80\x10?\
+\xad\xe9\x01<\xdfG\xd3\x07\xf8\xf4iM\x0f\x1d\xc8o\
+ag\xe54\xfd\x83\x9d+\xe8\xd4\xbb\xf4\xda\x93\x9d\xc1\
+'a\xfbt\xf0\x8d\xf4\x02\xfb\xf0\x9c\xfc\xcaw\xd5o\
+\xbf\xfc\xcaE\xfb\xfc!2\xd9&\xeb\xbd\xc58\xad\xae\
+\x9c\xc2\x90\xe1:\xf9ir\xbf\xd9\xcc'\xcb\xb3\xc5\xfd\
+\xba\xe8\xb3\x1b\x0aNlv\x91|\x99\xfb\x98\x06\xc38\
+\xa5$\x03\xc7R\xd4F]\x87\x0d\x1d\xdat\xfc\xe9\x00\
+\x0e\x1c\xb7\xa6F\xf65nF\x1c\xe8H\xcal\xc7\xb0\
+\xa1?]\x1f\xf6t1\xbf\xfb\xdbd\xfb9m\x93\xff\
+\xea\x92}\x84\x9a\xd7\xd3\xd4\xa2\xda\xbc+\x00\x0c\x06\xf0\
+\xf4/\x83\x11\x13\x8aX\xc9\x87N\x10\x01\xce+\x95\x83\
+\xd3\x81\xa0D;\xca\xb9\x1b\x16\xdf0\x0c\x87\x7f#\xe6\
+\x0c\xe1\x9cK\xbdw\x83\x1d\xf8\xbf\x95h\xc9\xc3\xee\xf5\
+#\x04\x99y\xcb\x96\xc7\x0f\x9d\x8f\xa7\xd0\xba\x00\xdf\xf2\
+\xf8\x015\x9b\xd6D\x09\xce\xeb\xacr\x97b\x867\xf5\
+D)\x82\x80\xfd\xc5\xf1\xfdz\xf1\xdf? \xdfO\x16\
+\x85WA\xad|\xeb\x9fV\xe4u\xb3]\xaf~M\x8e\
+\x97\xabe\x92}\x1f\xf9E\x92\xe2\xd1\x08e\x088\xe5\
+\xd8\xafpT\x0b\xff\xbd\x9a/\xeb\xa5\xb7s \xfbb\
+\x0e\x7f\x8ee^6\x9bl>O\xd6\xeb\xc9c\xad\x0f\
+,M\x05\xf8\x98\x11\x0a\xf2\xe0\x9c\xb7\xd3\xfeam*\
+\x001\x9dL\xc9\xd4ow\x11\xb6}\xc4\x15\xa3\xc9z\
+\x9a2`\xceB\xef\xdf\xd5Q\xb0\x97\x04\xf9\x85\xad\xe3\
+\xcf\xeb\xe4\xfa\xe4\xe8\x87\x16K^r\xea.~#\xcc\
+\x5c\xd8,\xa1E\x82\x7fD+c\x99\x91\xf0\x9ds\xa2\
+4w\xd4\xe6Soe\x10d*\xad\x88\x13\x96\xd3\x9c\
+?\xae\xdb*^\xb7T\x5c\x03\xbf2\xc2R~E$\
+\xf6\x8b\xb9\xaa\xc3\xbf\x839\x11\xe7 t\x18t\x98\xa6\
+QZ\x9a\x06\x06G\xc6\x10\xca\xc0z\xb2\xff\x00TV\
+\xdc\xa9VT\xf2\x08T\x06'\x0f\xfe\x177J\x1a\xf5\
+\xd4\xe4\x9b\x15\x9f}\xf2\x1d\x12(\xd0\xf1\xf9C\x02\xdb\
+1W\x09*[1\xa7\xfb`\x1b\xc64\xd1\x9cS\xf7\
+\xd4\xe4\x9b\x15w&\x7f@\xe4\xb5?\xdb4\x16*\x9d\
+1\xfd\xb0\x0d\xd1V\x09\xd03\x9e}\xca_B\x09b\
+\xb5`\x1c\xa2\x0d\x06\xb3\xb4\xca\x8a\x9c\x8f|\xb4\xc3\x8c\
+&\x16]\x94J\xb4c8\x11\x8eK\x91c-\x8dv\
+\xa0\x22\x93\x92\xe6\xe3\xc5x\xc7\x81\xb7\x22\x00\x9f\xec\x19\
+\xf0\xe6\x97\xa9\xc2x\xb3\xfd\xa8\xed.\xbc\x01\x8fp\x8b\
+x3D\x0a\xc9\xeahS\x96\x18m\xabXcL\xa2\
+\xa0\x16>W\x8a5\x0b05\x155\xacq\xc287\
+N=\x0b\xb7\x15\x0bl\xadX\x13/\x8f\xdb@\x17i\
+I\x95\x93Mn\xabU\x84BF\x1d\xa1N)\xfe,\
+\xdc\xc6Y\x17\xde\xfa\x92Rc\xb9\x85`%\xc3[\xfe\
+Kh\x01\xae\xa8\x848\x01\xf0\x86\x81\x9ai0\x1b\xee\
+\xc1I\xa9*X\xd3\x96P\xad\x85\xabs[\xb3\x22b\
+\x0d\xd8\xd7R\xa9\xd3\xb8\xee\xa0pN\x1a\xe0\xdf\xde\xc2\
+P\xb4\x06T\xaa24\xd9\x8d\xe7\xa0CW\x8f\xe7z\
+\xa66n\x80\x84\xa8\x0d\x0fM\x9dgA\xcb\xe9\xc2V\
+zQ\xe7\x8aP\xa5\x85\xaa\xb3\xac$\xa0\x96\x0ag\x13\
+\x91\xaf\x0d\x11V\x99\xa2b7\xfb\xf4oy\xfdFX\
+\xd0\xf2Z\x93\x13\x01\xad*h4M\x9d(\xdc)4\
+\xaa\xc2\x11\xa1\x99\x13U_\xacY\xef\xba\xa5\xde\x1a\xf9\
+\x8eH\xcd\xa9\x89\xf1\x09\xc3\x92#\xc0a\xa1\x9a3\x95\
+I\x0e\xe3B+\x09\xee53 F\x9aY7\x1c\x81\
+\xfaU`\xec\x1d\x7f{8\xab\x0bkY\x7f\xac.\x95\
+\x95 \xe2]\xac\x0e\x1d\x8a:\xab\xf7\xcd\x01Vup\
+\x80\xe3\x15\x0e\xd0\x10\x10\x839\xe7\xb2\xc2\x01\x10\xbeX\
+`\x22&+\x1c\xd0\xacw\xddR\x0f9\x00#\x1f\xb0\
+\x88M\xe6\xdf\xa5.'\xd6P\xf0\xd5R\xea\x82\xf7!\
+\x1c\x84R\xde\xf6\x0ap:\x14\xc5\xaf\x94\x11%]a\
+\x86\x9f\x16\xa5\x03\x19\xc0\xf5\xb6tEAo8m\x8d\
+\xea\xa4\xbf\xd3=\xac\xb8\x81\xbf\xa6\xfa\x1b6c`\xcf\
+y\xe7\xb0\x1d7\xf5a\x8f1\xc7\xe1\xfd\xbbb]\x04\
+\xd30f\x98\xd6\xf2\xa6:\x82\xaf\xf3\xe5l\xf5u\x94\
+\xa7\xbf\x98f\xd6I\xf6<\xcb\x961\xd2\xd6\x1f\xdfM\
+n\x92\xcd\xe7\xc9\x0c\xf3a\xf8\xee\xa3l\xf9\x06\xa7\x90\
+\xba\x877\xf7\xf3Y\xb2]-\x12`9\xcc\x82a\xc5\
+\x835\xf4P-\x87\x8f\x7f\xb0\xfa\xf4o\xc0P[\x93\
+O\xab\xf5,Y\x17]\xb0Z\xb1_8\x06\xe1\xd3\xfe\
+\xe3\x1f\xe0\x80\xf2\xe2tA9\x1d0\xe0\xf2\xd3d\xd3\
+\xc8_\xf9m\xb5\x02q\xe0`\xbd\xd1T7f\x8d\xb2\
+)5\xe1\x8ae\xfe[\xf9$\xd3\xbdVim[1\
+\x09MM\xb3U\xf6\x08\xdb*\xd9\x00x\xbf^\x83P\
+\x8d\x16\x93\xc7d\xdd\xcca\xaa$-\xdd=\xf8\x922\
+\xab)+\xd8|^}E\xdc\x9e\x1cm\xd7\xf7\x8d9\
+b\xf9\xe8n5_\xa2\xbc\xee>\xceFu;y\x98\
+\xdf\xce\x7fKf\xb8\x80\xff\xfe]\xadu\xc9\xf5?\xc1\
+\xaf\xab\xf5\xea\xf6o\xeb\x04\x10\xf6!\xd9n\xe7\xcb\x9b\
+\x9c\xa1\xd3%\xb9\x87Gl\x92\x15\xad\xd6\xf3\x9b\xf9\x12\
+\xf3\xab\xb2\x81\xe6E\x8f\xd5\x22\xcc\x95\x028\x88\xeef\
+\xd9c\xb5,'+rMF\xd6\xc1 \xb9\xbdk-\
+\xaf0%/\xabVJeY\x9au\x06}\xa5\xc2\xb5\
++M\xef\xdf\xbc\xbbM\xb6\x93\xd9d;\xc9\xb9)\xff\
+-\x8e\xde\xbf\xf9\xd3;\xcc\x87\xbb\x86j\x7fJ\xbf.\
+\xe6\xd3d\x03\xb0\xaa\xbf?\xf8\xac\xb83\x5c?\xf5\x19\
+J8_?\x06\xe4\x88\x06\xa5i\x9d\xce,\xe3y\x90\
+\x90\xdb_\x92\xeb\xed_=\x123r\xfan\xde\x8d\xf3\
+\x11\xbc[\xcf\xae\x8f\xff\xf7\xe2\xea\xfd\xbb\xe9\xf4\xf8_\
+\xab\xf5\xaf\x99e\x80\xd2\xc9\xa7\xd5=\x80\xc7,\xa9\xe9\
+q\x9ax\xf5~~\x0b\x02\x83y\x80\xff\xf3p\xbb\x00\
+uR<\xc0:H\xd2\x5c\x1b!\x80u\x92\xa6\xf6\xb5\
+fC\xce\xa6\xb7sl0\xfe\xb0\x9d/\x16?#\x5c\
+\x8fN\x843\xdf.\x92\xf7\x1ez\xfe5\x1b\xdc\x8b\x19\
+e9\xa0q\x81\xc0qNc\xc0ji\x1f\x90\xf8\xa7\
+?\x7f\xfcp\xbd\x9aN\xb6\xf7\xeb\xc9\xc7\x94\x03v\x8d\
+@]\xbf\x8bB\x0f5vQ<\x01\x0b\x8d\xde\xd9\x13\
+\xdf\xab'\x1e\xe8\xc9E\xf4\xc4\xf6\xea\x89\x05zb\xbc\
+\xd9U\xbe\xa9\xd3\xb2\x80\x9f\x82\xf5{\x1a\xe5N\xc6n\
+p\xf0\xeaw20\x9e{[ \x0c\x11\x22M\xb6D\
+\xd6\xb5\x0f\xd4\xb1\x85\xd4\xb1\xf9\xd4\xb1mU\xdbS\x1b\
+\xb4n\x91\x0d\x9a[dOn\xaa\xb5\xb5\xd8\xe9!\xdd\
+U\xdb\xee8\xa2#\x08&\xa8\x15\x8e\xc9<B\xcf~\
+\x8d\xa0C\xdc\x9e\xe7j8r\x8e@\xa8\xeex\xb6\xb4\
+\x81;>#D\x22\xe6\x91/S\x19\x8ee\xb2\xddM\
+\x89W\xcfd\xe5vY\xced\xdcj\xf9\x07\x93y&\
+\x83\xb0\x80)\x96\xee\x15U~\x02\x971\xe248\xd7\
+C\xce,\x11T*\xbd\xc3d\x1e\xc7\xd5\x9d\xea\xb75\
+\x96{\xb2\xbf\xd6\xeeF.\xeb.\xdbe\xf8\xdeX\xeb\
+ \xe8>l\xd0\xc1<-<\x973\xa8RY\xfa\xe3\
+\xd3\xf2\xc9_\x97|\x1e\x05\x94Q\x95q\xbaY\xec\x0f\
+\xd6\xfa&\xd6\x02mh\xf7d\xad\xff\xa4L\x89'X\
+\xee`\xf3\xa8_\x17\x8e\xeaZ\xc6Q\xfd\x87\x19\xf4\xba\
+C9\xad\x9c\xe1\x99\xee\xc8\x7f\x8d8UDX\x89k\
+\xba\xd6\x11.\x0cG_\xab\xca8%.\x19-\xa7\xa7\
+!\x96v\x8aI3d\x94\x18'\x84\xb4\x83\xf3\x81\x10\
+\xe0\xae\x19\xdcK/K\x19\xf4\xc6\x94\xe5|(81\
+\x1c\x1e\x8bJ\x99r\xc4\x18\xae\xb1qY\xa89\xe1\x8e\
+\x1a\xa1\xb1L\x1b\xa5\xb4\x1aj\x89[8Rk\xfff\
+\xa0\xe4\xd2\x8a\xa16\x849\xab\x8c\xc3\xd6X\xaa\xa8\xf2\
+\xa5\x9c)%\x9d/\x13\xceZ\xe5\xcb\x84\xe4\x86\xd7[\
+s\xc5\xb8T\xd0\x9as\x22$\xa3P\xd1\x12\xeb\xac\x84\
+\x01\xc1\x5c\x04\xb5\xa0a\x87\x1a\xc6\xc8\xb5\x92f %\
+\xd0@\x09%+e\xe7\x03\xf8N9\xd4\xe5\x95R\xc7\
+\x884\xd6\x81z\xd6\x8ah\xcd\x04\x87YS\xf0f\x0d\
+ h\xa8\xa0\x17\x8e~-\x0e\x9cZ\xd0\xde\x16\xfa\x01\
+\xfcp&\xac\xe0\x03\x8b\xac\xa0\xb9q9\x1e\x15o\xc5\
+\xf8o\x83\xaa\x10\x17\xe9\x930\x05\xce\xa0\xc6\x8f\xa1\xd0\
+\x0aw\xd9^\x99Xw\xfb]0eFA\xef\xdb,\
+\xa5#\xff\xc5\x04\x90\x86\x19\xc7\x86\x0aX\xcar!D\
+\xc52\xfa\x8d=\xae\x06 G\x12\x9c@\xa3@\xe0\x80\
+D~A\xb6\xfc\x92\x89\x9bt\xc4\xaf\xb0\x0f\xf7\xaa\xbd\
+\x0b\xba\xc5\x22\xe6\x8dvuM\xfb\x13\xbf\x04\x99\x03\xdc\
+\xd5k\xf5\xdd\xa2\x5cn1\x99\xb8\x9dK2\xfe\xf0\xc4\
+h\xe7\x856\x8b`\x8d{[\xe7\x0f\x10\x0am@J\
+\x99xVF\xe92\x83\xb8\x97\xb4\x97\x19,\xb5\x197\
+\x1d\x8eV\xeb\x96\xfb\x08\xd3Y\x94D\x97\x8bQ\x8d9\
+\x09\xa2\xe1gA\xdc\x8a\xf8\x1f\x82\x1b\x86\xc4?\xcf\xcb\
+\xb42X\x06|\xa8\x95N\x0b\x81\xb8X\xe4\x94\x01\x05\
+W)r\xf8'o\x89%\x8c)\x02\x1a\x95c%\x8e\
+\x12\x02Z\x8aqK<S\xc1@\x14n\x10\xf1J\x19\
+\xb4\xb5\x00\xd8rJY\xa5\xa6\xc1\xcd\x7fkP\x7f\x94\
+\x10\xb3\xc2j\xbfe\x91\x1f\x9du\x22+S0\xb5l\
+\x16R\xd6\xebe\x935\x1a\xb4,\xb0\xa0\x1eb\x82\x86\
+\x94\x02\xfb\x05\xb3\xc2$\xd8\x0e\x10FnZFm\x8a\
+Q3N\x89c\x82\xd5j\x82\x1a\xb6\x5c\xd3\x02\xa4\xd4\
+-\x88\xae\xebA\xcf\xd5?\x80\x02\xb8N&\xafJ\xc9\
+\xb506\xa6\xa5\x87\xecq\xb6\xf9Q\xd8c\xe02\xc1\
+\xd0:X\x0ev+\xb7\xc7\xcc\x18\xa3+\xa5\xb8Yl\
+\xb5\x04z\xa0=\x06\xf8\x5cW\xca\xc0\x1e[p)\x9d\
+K\x0drV\x0a\xd0\xa9\x82\x8fK\xcb\x04G\xabHA\
+\xa3\x1aAM\xbd\x9e\x92\x12\xbaI[;\xc7\x1c\x95C\
+\x81;\xca@:\x8e\xe31B*\x07v\x8d\x83\xb1\x07\
+b\xca\xea\xc8\xd32\xcb\xa0\xb5\xc5\xc41+\x9c\xa9\x94\
+\xa2\xa5\xa4\x9c\x0a\x8d\x10\xa9\x00w\x80{\x9b\x8a\x09T\
+\xde\xa4\xc2d\xa8\xf7$\xd0\xd0R\xa3EZ*\x8cH\
++J0\x01iM\xad\xb8Ui\x198\x0d\xa6\xd1\x1a\
+\x18_8\x96\x1ad\x9c\x99B\x83\xcc\x80\xdb\x01b\x86\
+H\xa3[Q\xde\xc2\x88\xed\xe6W\xbcb\xf3[\xee\x94\
+\xacf\x09\xaa\xd9\xcd\xc9\xd1t\x03\xff\xa6{\xad\xebb\
+\x22^s\xf6\x84\xbe\xec\xf9\xffX\xf1\xad^\xb1\xd01\
+\x02\x22%\x84\xab\x8e<-S\xa6.tE\xe9\xeb\x11\
+\xba\xca{\x13>\x01\xebM\xf1i\xc9\xf3\xc0\xca\xff\xf7\
+\x97_~\xbe\xf8\x080>\xa6\xeb~\x98n!A\xd9\
+H\x9d\xbd\x90\x86\xfe\x96R\x10\xa0(\x90X_\xb2>\
+9\x02?PC\xb4\x95e\x83=\x9dj\xd3\x95\xc7\xee\
+R//sZ\xd3_\x98\x98\x06a\x9d\x81HH&\
+#54\x04p\xe5\xa8\xc5\xb7\xd5\xde\xfc\xa9x\x9d\xaa\
+\xfe\xe6U\xfb{j\x8e\x9f\x17\x98\xf1o@\xa6\xefr\
+\xb7@aa(\xfa2\x0bkK(&\xdb\xe8\xa9\xa3\
+5CxK\xfeX\x15\xd9\xe2\xe3\x9ex\xc3\x840\x89\
+\xc9\xd3\x5ce\xc8\xf7\xf9\xb2\x06\xa22f\xb3\xf8\x1c\x93\
+\xc1$\xc4J\x92\xb1\x8c\x1e\x98\x09V\xd6\x89B\xd8\x85\
+\xff\xd4\xa7jX\x00a s!8W\xfe\xd3\x80#\
+\x82p\x1c\xc8p\x08\xd4\x99\xff4@\xa9\x0c\xfb\x8d\xd7\
+\xde\x9e\xc4\xbc\x8c\xc1\xbc\xcf)eR\x14\x88g\x8a\x13\
+gt\x96K\xf8\xe0\xb3\x1d9\x087/\xf1^\xaf\xd2\
+\xc5\xf7\x86\x1a6\x1ce\x7f\xeb\x7f\xc0\xb9\xb3\xa0\x5c\x86\
+x\x10\x0apZ$\xd3\xb7\xd1\xd0\xd2~hhyo\
+4\xb4\xf2@\x1a\xaa(\xe9\xc1\xc5\x13WH\x06J\x0f\
+\x98\x0f\x01\xca\xcc\x94\xd2S\xaf\x83y\x94\x9aP\x5c\xba\
+0q\x98o\x9d\xa6\x0bb\x8cK\xaeC\xa0.\xfd\xa7\
+\x0e\xca\x85\x05Q@h\x12\xc3\x0f.,\x8b\x9aeI\
+:{\xb2\x84;T\x16u\x0c\x1dG\x12|\x06)i\
+\x95\x90\xb8@\xc0\xf2\xb7J|N,PR\x0a\xa5(\
++\xf5`\xad\xd2\x93\xf2\xd8.\x96L\x80\x15\xa6\x16\xac\
+:\xd8[+\xe4\xb7\x0b\xa4\xa1\xfd\x08\xa4\xa1\xbd\x09\xa4\
+\xa1\x87\x0a\xa4\x89R\xaa\xa0\xda\xa8\x14%\x199sD\
+qp\xecJ\xa5\x8a)f\x8a\xcbR\x1e\xebu\xba^\
+s\x1f\x01\xb5\xfc&\xa7\xd6C\xcet\x1f\x94\x0a\x0bp\
+\x14\xa5XXzc)\xc5\xc4\x81\x94\xb2Q\x22\xc7-\
+\xb8\xd7Y\x86\xad7\x7f\x94\xe3{K\xa5\xdb1\xc2%\
+\x0a\xc3mEs\xd6\xea\x1c*n\xe0\xce8)\xf9\x90\
+Kb\x98\xebC\xdc\x98\xed\x87\x88<,\xb6\xb1D\xe4\
+\xfc@\x22\xbao\xf4\x1e\x1d\xbe\xec\xc7\xbb\xbd\xc7\xa2\xce\
+7c>\xcd\xdb\xed\x01\xf3a1\x8c\xc5\xbc`\x87a\
+\xde\xd1(\xf1\xc1\x136\x1c\xf8\x82\xa5\xfc\xe0\xf2\xb9\xb5\
+\x15M7BU\xa7mE|jU\xf68\xcf\x839\
+;\xe4\x1c\x8f\xf2\xa0\xaa\x079\x11\xba\x1fj\x89\xb0\xbc\
+\xc5R+=\x11\xe7\x00j\xb1\x18j\x81e\x077A\
+\xd7\xdd\x8b\x86\x9c(\x88I9\x13u\xef\xa2/9\x09\
+\x86\xa5\x91\x98\x97ay\x8b\xc6\xbc;\x10\xf3<\x0a\xf3\
+\x9cXmY\xa7\x86R\x12\xecL\x96q\xde3\xde\x95\
+\xec\x07\xef*,9\xb1xO\xcfD9\x00\xefQ\xeb\
+\x0aJ\x11iD\xd5\xa1\xb6\xa0F\x04\xaf\xe1\x1d\xf7z\
+\x14\xaf\xe2\x9d[\xa6)\xfbv\xbc\xebp\x04\x12\x85w\
+\x1d\x96\x9bX\xbck\x13\xc2{\xf5\xf3\x04\x0d\xa2\x5c,\
+\x8c+\xb4,-\x84\xc6\xd5\x84\x8c\xcf\x11\xff\xfe]\x0b\
+W\xc8\x06\xaf\xd7\xf8^\xabj\xca\x7fj\xb8\xb32\xc4\
+\xfe\x1d\xabj\xc5K0%\x94C9?\xce'\x12\xc4\
+\x0a+\xb3\x98\xb0\x0d\xef\x12\xe2\x7f-duE\xe0\x85\
+\xe2]\x85\xc4(\x0a\xef\xea\xb0\x18^\xd0(\x8f\xa8\xc1\
+\xcdmxg\xa48\xbc\xe1%c]\x87\xc2\x80(\xac\
+\xeb\xc3\x22\x00p@bW\xc0\x0a\x9c\xb6\xe1\xbc.\x0d\
+/\x19\xeb!\xd7&\x0e\xeba\xaf\xa6k\x8bDP^\
+n\x91\x08K8c\xf9\xdb\xf0\xfe,\x14N\x94\xa5,\
+\xf3\x0d\xd7\xe9\x09\xd7\x06\xdf\xf3KK\xae\xd3V\x8c\x8b\
+\xa2$m%\x1d\xe3{\xed\xa3\x04\xd6\x10#l\xa55\
+a_Gj\x13\xb3\x80hMo\xee\x8e5\xb9\xd2\xdf\
+\xd9Jy\x82 \xa2$\x08\x84ZR\xe8\x1c\xb5\xfb\x12\
+\x04Z\x09i\xf3\xe08#\x88\xcaO\xcfxvr\xd8\
+\xb0\x0b\x14K\x0e\xdb\x9b\x17\x94\x1d\xc5}\x009d\x85\
+\x1c\x1cO!Q\x91\xf2!\xf1\xe4!\xe6\xbe\x9f|\xb8\
+\xf0bj,A\x5cX\xd4b\x09\xe2\xf4\x81\x04Q\x15\
+\x82H\x02<b\xe2\xc8!\x09DG.3\x0c99\
+p\x1d\xf3\xf7 \x06\xb2AO\xc4p\xb4\xb7\x9dGG\
+U\x88\x18O\x85\x06\x82Fmx(\x86Y\x0e\xb90\
+x\xc3m\x08\xd7.\xdf\xdc\xf0\xe1\x99\xc0U\xf1\x9a\x9b\
+Z\xab\xf3\x82\x8c\xb7\x0b\xae\xc0\xc6\x18o\xc7\x0f[\x0c\
+\x124j\x8fB\x19\xe2\x0c\xab.\x06\xed\xe2^SL\
+\xcc\xa8.\x06\xbd\x5c\xdc\xf3\x03R\x1eZp\x1f\x0c\x8f\
+\x9f\xc0}TH\xdc\xe0\xe9v\xbeW\xc4\x80\x22z\x15\
+\xb8\x17!\x9b\x12\x85{q\xd8\xde\x9c\xa0Q\x81q\x03\
+\xaf\xed\xb8\xaf\xcb\xc6\xcb\xc6}h\xcf \x0a\xf72\xbc\
+]\xd0i\x7f\x19-\xed\xaf\xc2w+d\xc5\xfe\x1a\x9f\
+\xc1^fT\xb5\xd8_h\xc3\x15h\x98\x8a\xfd5D\
+\x88b\xc9\xee\xd9-ppM'\xde\x02\xcb\xde\xf6\x03\
+\x80\xd1\x0es\x87X%\xc5M\xe1\xd1y.G\xed\xde\
+\x04\x91\xb8\x1f\x9a\xefv\xe6\x04\x91\xe0#\xfd>\x01\x83\
+Sa/?\x96 \xaa\xb7m\x02\xa7\xdc\x81\x04\xa9\x04\
+\xd4J\xe3\xeb<.\x8e\x1c\x1a_D\xe2\xdfO>t\
+o\xe14\xa6\xb1\xf7E\x0e}`8\xcd*\xe1\xb4r\
+\x84\xb2\xec\xb4\xc9\xbd\xc9a\xf1D.\xdd\x90\x0e\xc6\xed\
+\xef%\x1d\x1d\xf9\x85\xb1\xe40\xbd\x85\xd3\xcet$\x8a\
+v\xdbn\x16\x95\xac\x88\xaf\xea\x818T\x16W}F\
+\xb5\xd3\x15\xdb-\x14QN\x96\x0b}\xf5\x1a/\xc9r\
+\xdb^\xa2\x05\x17\x8e\x16\xbaE\xa1\x129\x0bP\xfa,\
+K\xae\xf3\xb9\xd0\x8e8\xcd\xc3\xa2\xf0\xecl\xee\xfa3\
+\x02\xae?#\xe0\x82F\xa0\xcfO7\xd9D\xc5\xa00\
+\x8dg\xb7\xea\xca\x0a\x14\x94\x080\x16Y\xc9\x1a\x0f\x82\
+\x15N\x815\xb7{J\xd9\xf7\x92\x8f\x0b}u\xd9`\
+\x02\xa6i\xf4~\xdb\x19\xbf\xb2\xbb`\xc2\xc6\xa2S7\
+\x89\xa8\xadfO\x0c\xcd+q\x05\xc7\xecW\x9d/\x10\
+\xfa\xa4\xbfz\x1d,\xc1c\xa1\xa5\xea\x01Y,z\x93\
+\xcc\xba\xb3\xabs\xd9\x04\x13\xde%\xeb\xe6K\xd9\xc5\x97\
+\x5c\x13&\x94\xa8s\xe5~\xda\xe4{r\xe5\x95;?\
+\xbd\xb8l`(\x98\x1e\x17D\xf4\xa5\xb5gg\xbc\x09\
+\x86\x1f\xe6\xc2\x08\xd5\x85h\xa1\xab\x9b6\xaf\x08\xd5\x17\
+\xf6\xd2\x9e\xef\xe0(\xac\xbb\xb9\xc9\x8e2o\x83\xa5.\
+\xf5\xd9\x0e\xd9:R\x5cu\x10\xd4\xf9\xd9%;c\x0d\
+P\x22\xbcjk\xb5\x08\x1a\xba\xb3\xd3\x0b\xe3\xce\x9a\xb0\
+\xa2\xc5\xf6\x8c]p\xdb\x94~\x11\x5c\xb2}\x82\x9bt\
+\x177a\x8a\x00\xd7\xf9\xb6\xe9+\xe2\xa6\xab\xab\x8b\xab\
+\xb3&\x8ed8\xaf\x95K\xde\x91\x90sqq\xd6$\
+\x9b\x0c\xef\xa2(*\x82\xec\x04\xb0\xf4i\x933e8\
+\xc42\x86\x05\xdf\x9e\xb8\xba:?\xcb\xecz\x05V\xb4\
+\xc9\xbc\x02DY\xda\x04s`|%L\x17;)U\
+]V{E\xec\x04\xae\xbbQ\xa2\x81\xa3`V\x0a\xf5\
+\x11a\x10\x16SB5\xf1\xdd\xb1\xe8\xa1\xa5\x0b\xd2N\
+Ji\xb3\xcc\xaa\x0a\xac\x0e\x87\xd7\xa9\xa0v\xe2\x97B\
+\x8a\x1dX\xd1\x8b\x8b\xad`4;\xd0\x03\x8bZU\x87\
+\x80E\x12${\xe1\x81\xd5\xdda\xf4\xc0\xf0\xb8\x19<\
+<C\x96\x1eX\xadN\x17\x87\xa5\xd7\xc8\xb0\xe1\x88\x1b\
+\x88\x8f\x86\xd9\x01^\xb5s\xc2\xb3q\xeb\xccFo\xee\
+\xd6\xc9d\xf6\x97d\xfby5\xc3wVgql\xc7\
+p\xf3\xb2\xc9*\xc1U\x94\x0e\x09\xdf\x09\xb0\x98\xd6\x87\
+e\xa1\x09\x11\xb5\xd8\xbeK\x92\xaa'\xd8N\x90j\x8d\
+~\xc8!\xcd\xf3\x91#\xb8 \x13G\x8e\x03_\xf6\x14\
+2*9m\x97\x1cu\x7f\xb1\x9d \xf5:\xfdI\xc8\
+\xb7#?\xf8\xc6g\x1c\xf2\xed\x819j2*Gm\
+\x17\xf9u\xf7\xaa\x1d\xf9\xf5:/\x0a\xf9\xd1\x99j\xed\
+\xc8?,\x01_\xc8\xa8\x04\xfc]\xe4\xd7\x9d\x91v\xe4\
+\xd7\xeb\xbc$\xe4\x07So\xe2\x90_\xa4\xdd\xb4g\x83\
+?A\x81(S`\x88T\xaeXAL/w*\x13\
+4\x1bO\xf1F'G\x94\xb4\xc6\xfd>)\x9a\x84\x05\
+\xfd\x7fk\xed\xa9\xad/\xdd2\xdb\x91\xb8#\xc2\xcb\x93\
+\xe2\xc2\x9c_5!\x1d\xf6\x96r;\xac\x0e727\
+\xa9mA.?W\xcdx\xd9\xd2\xb0\x1b\xa9\xb5\x09\x8e\
+\xeb\xf4\xfc\xf4\xea\xd45a\x85coC\xc3.\xa9;\
+w\x97\xae\x09\xab\xe3\x15S\xd3\x01\x8a:a/\x9a\xa0\
+\xc2\xa8\xb7,\xbbD\xae\x8d!N\xedyvyU\x05\
+Vt\xfaI+_\xb1\x03\xf3OT\x94\x1f\xb0+\x8b\
+\x06f,\xa5\xabh\xc3]\x89\xa4x\x16\x97\xa5;\xbb\
+\x00/E&y8&\x8f\x94I\x1e\x8e\xc8\xa3e\x92\
+\x87w=\xa3e\x92\x873\x0c\xa2eR\x84WC\xa2\
+e2\x98\xff\x13/\x93\x22\x8c\xfah\x99\x0c\xbe\xe8\x19\
+'\x93\xe2\xc0PIE\xb9\x87#\xed\x8f\x05\xe5\xe5\xab\
+\xe8#\xdc\xee4E.\xbd\x7f\x97\xb6^);\x0e\x82\
+\x81{\xfe\xb4L\xa2\xf41\x81g\xf51/\x92\x9cR\
+\x01\x9e\xcaPXb\x84\x96\xdc\x0dG\x06\x8flb\x8c\
+\xf3\x9e$Rv,\x91\xc4Id\xc7\x9b\xa3\xd1\x12\xd9\
+\xf1\xf6h\xb4D\xca\xb0e\x8b\x96H\xd5a\xd9b%\
+\xb2cq*V\x22;\xd6\xa6\xa2%2\xb86\x15'\
+\x91\xea\xc0\x98AE\xc5\x0c#\xa9\xaa\x09\xe4Y\xd0 \
+D\xb9x1\x92\x02\xd8\xcfTO\x15\xa8\xd4\x08\xcbb\
+E\x103\xfb\x08\xc2\xe8\xcfNS`\x0e\xb5\x18\xe2\xab\
+y\x80,\x15\xbbP\xe9\x0f\xd49o`\xab#\x85'\
+,\xcf\xad\x92\xd3\x91\xc1\x13)\xcf\xba\xe3\xac\x0a\xae\xc3\
+'\x06\x9d]\xd1\xcb&S\x99\xb0%\x0b\xae\xc2\x9e^\
+\x9c\xd1\xd3\xd3&\xa0\xe84\xd6V\xee4\xc1<\xd6=\
+\x82*\x13wz\x97 F\xaaJ*\xab&\xcc\x00B\
+J\x16\xad\xd5\xe0\xfe\x9eA\xe7\x8as0\xbe\xd7\x82z\
+\x0b\xde8Ua/\x82S\x16\x93?\x02\xb0\xc2<\xcf\
+\x99\x0b*\xad\xcb\x8b\xcb\xab\xcb\xb3&\xac0\xd7s\x19\
+\x1c\xd6\xc5\xe5%\xbb\xd8\x01\x15f{\xaeMxCS\
+_\xb8\x0b\xde\x80\x15|?\x93\xfaS\xf1\x22\xc4\x11`\
+\x85Qo\xb5\x0b\xc2jE}P\xdd\xc4H\x11\x80\x09\
+.M<!@QG\xa7\xed\x08\x90\x02\xd5\xcc\xf2U\
+\x87V\x01\xc2\xd31\xed\x1e\xfe\xd6\xb3\x0a\xd0\xd9\xe9\xd9\
+\xc5\x99n\xa0\xac\xe3\x10C\xee\xb2\xd3\xfa\xf63\x1a\x00\
+\xab\xe3\xe8\x02\x1ad\xd4vP\xd1\xa1q+\x8f\x9a\x03\
+Cc\x13\xf5JR\x93!\x1cP\xc8*[M\xe2i\
+0\x04\xde\xca\xe0\xec>\xcb\xe3\xbf\xbbF\xed8\xc90\
+Z\xa3\xda\x1e5\xaa\xedO\xa3\x06\x93(\x0f\xd0\xa8\xae\
+G\x8d\xda\xf1\x9ae\xb4F\x8d_\xecm\xe5\x86\xf0b\
+\xef\x13\x02\x14y\xf6]C\x80\xf0\x0a\x16\xc7*A\xec\
+\x8e\x00\xe1y\xef\x8a7R\xa8_\x82Fe\x1d\xcb\xbc\
+\xb1\x1a\x95u,\xf4FjT\x16\x5c\xe7\x8d\xd2\xa8\x8c\
+\x1e\xaaQ\xa3\xb6\xe5\x81\xdc\xaez\x1c\x86$\xa0K\x5c\
+]\xa1\x02\x8b\x9b\xd2\xc2\x165\x22s~vE\x87\xb1\
+>\xdeL\x030\x07\xbe\x9af\xa2\xb6H\x1a\x98r\x8a\
+H\xc7y\xdd\x99\xafa\xaa\xac\xd1\x03\xa6\xfax\x8f\x8c\
+\xe3m\xb6!Lu\x1e+\x8f\x9fMv\xae\xfc|\x96\
+\xdf|\x90\xad\xa0\xcc\xf0\x10vc\x89eN\xe3)\xe1\
+\x12bl\xa3\x05\x9e'\x0e(\xa0\xda1\x8b'\xc4\x01\
+\xdb\x08E\x9d?c\x5c\x0ap\xb6\x87\x02\xcfr\x12J\
+\xf9\x22|\xf9\x86c\x90-\x9c\x90Vcc\xbc`\xc7\
+\x0a\xbcuH\x11\x0e:^\x88\x01|\x13\x12\x81\xe3\x15\
+Ax\xb4\x9d\xb6\x03\xc9\x08\x85\x90\x89\xba\xbc\xcc\xb7\x16\
+xy:\xba\x06x\x1d\x10s\xc0\xb2\xda\xdf/d\x84\
+\xbfL\xc8\xe2\x05\xec<\xbd\xdb\xc8Y\xad\x8cMo,\
+\x92<?\xc0\xdd:\xc6\xd3\x1b\x8b\x18\x1e\xb6\x8e%\xc2\
+\x19\xe6\x8b\x80\xff\xa5h4\xd50Q\x9d^b\xc4\xad\
+b\x5c\xf8\xe10\x09H\xc7\xc3\xdf\xb9\xe2\xa0\x0d\xf1j\
+\x22\x09\xe0\xf0\x0a#\xe1\xa4\xe6E\xc99^V\xe3\xb4\
+a\xae,\xc3\xeb\x8b`\xe2\xd8N\x11m\x0c\xf5\xe8\xc3\
+U@pz\xfc\xc1\xed\x92\x0a-\xb2c\xdf)\xa0R\
+\xe3\x82\xa1vZ`k\x8d\xfc\xe7\xa8\x18r\x80\x83\xef\
+\x9a\x99V2\xed}[\xc2k\xbb\xa2\xb3\xbc- \xbd\
+p\xfeI\x16O?5.\x17xZK\xc1\xe5\xd9}\
+BC\x0b\xa8\xc5[\x5c\xe4\xe0\x97\x81Q\xa4R\xa4\xca\
+\x12\xb0\x9cx\xbb\x8a\xaf$\x81oMkQ\xa5\x1d\x1e\
+\xdc])\xf2\xb5\xf22\x85i\x1ei\xb5\xac\xe1n\x89\
+\x04\xd2\xe3\xddHP\x92\x0f\xb4\xa5\xa8\x84\xde \xfcj\
+\xb9\x1dm\xe6\xbf%\xc7\x8c\xdf=\xfc\x98\xfe\xc4G\x80\
+\xa6\xf5\xedd\x91\x96|\xf5\xf7d\xe7E%\x86\xd5a\
+\xb7\x189\xde\xb8\xc5\x08\xbc\x0f\x0bND\x93}>\xdd\
+o\xb7;\xdc\xe3\x19\xa6\xef\x1b\x8c\x1c\xdeF\x883\xbd\
+\x9e\xdc\xce\x17\x8f\xc7\x17\xc9\xbf'\xff\xbc\x1f|H\xd6\
+\xf3\xebv.j\xbd\xca\xaf\xd6\xc9\xe2\xf8\x87k\xff\xd9\
+[~\xec\xb3\xcaO\xfb5}\x02\x8f7\xaa\xcdl\xf7\
+:\xab}.\xc1\x0a\xdf\x9c\xb5s\xdb\xd6\xec;\xdd\xff\
+\xd5zu\x99\xa3\x06tI~uY\xf6\xcb\x82+\xa9\
+A\x85\x83\x12\x05?\x983C\x1b\x17\xf3}\x83\xf4\xa4\
+\x9c\x91\xf8\xcf\xfe\x9a\x15\xa0G\x0bG\x85\x1bC\xac\xbd\
+\xab\xe3\x14Q\x5c\xe0\xd5%\xa5\x8e\xcb\x8alM\xc9\xe1\
+e\x03\xca\xd4\x94\x5c\xb3\xa8\xda\xb0\xd0r\x15\xf8\xcf\xa0\
+\xe5\x0a\xe8\x95{I\xb6\xc9\x03\xe8\x1c\xcd\x8f\xf6\xb1\x02\
+\xbd\x129R\xfc\xbf\x95\xc8\xbbz\xcdq\xd5\xa1\xd7\x0a\
+\xe2Kp+\xd0\x9d2\xd6y\x94\xfb{m\x9c\xc5\xa0\
+\x06\xc9\xa4\x88U\xda\x0a\x83\xa5\x16u%\xaf\x95\x1ap\
+\x91-\x83o\xe8\xcd0\x08\xcb\xd1)\x83Bc\xa4w\
+\xde4\x11\x0a\x023\x81e\x8a\x19\xa7\xc4\xc0\x80\x9bf\
+(xd&e\x01\xe4\xac\xbc\xa81\x92\xf2gF\xd2\
+6)v@|\xe4\x92,\x08\xcd~\x8d\xf0\x96\x1am\
+1\x18\x15N5\xae\x82\x17\xf9\xab\x94\x1d\x1c\xe1\xb9a\
+\xbc\xf9r\xf3\xfe\xff\x01 ;\x82Wk\xab\x00\x00\
+\x00\x00\x08\xc9\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x08\x06\x00\x00\x00\x8c\xfe\xb8m\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x00\x06\
+bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\
+\x00\x09pHYs\x00\x00\x00`\x00\x00\x00`\x00\xf0\
+kB\xcf\x00\x00\x00\x07tIME\x07\xe7\x03\x09\x06\
+\x12)\xc3\xf6 \xcd\x00\x00\x07\x94IDATX\xc3\
+\xcd\x98[lT\xd7\x15\x86\xbf\xbd\xcf\xdcl<\xe3\xcb\
+\x18\xf0\xd8\x13\xc6\xd8 0\xe1\xe2@0.\x09\x97(\
+\x14*Z\x12D\x12\x91Ji\xda\xb4M\xa5\xb4\x12/\
+U\xd4\x87>\xf4\xa5/\x09\xaa\x22\xb5\x12D\xa5j\x89\
+\xa1\xa4M\x80P\xb5\x10\xc5\xc4\xdc\x9b@\x8cKmZ\
+\x9b2C\x901\xe0\x16\xdb3x\xb0\xe7~\xce\xee\xc3\
+\x999\xb1\xa1x\xc6@D\x97d\xe9xk\xefu\xbe\
+\xf9\xf7Zk\xaf}\x84RJQ\x80\xa53\x19z\xfb\
+\xfa\xe9\xea\x09\xd1\x13\xbcL_\xff\x0d\xa2\xb7F\xd0u\
+\x03\x97\xcb\xc1To9\xb3\x02~\xe6\xcf\x9dE\xc3\xec\
+Z\xbc\xe5\xa5\x85\xb8\xcdk\x22\x1f`,\x9e\xe0\xcc\xdf\
+\xfe\xc1G\xc7O\xd3\xd9\x1dd(2L&\x93A)\
+@d'e=H)(.r1\xa3\xa6\x8a\x15\xcb\
+\x1aY\xbb\xb2\x99\xba@\xcd\x97\x03\xa8\x80\x8e\xce\x1eZ\
+\xf6\x1e\xa4\xfd\xef\xdd\xc4\x13\x09\xa4\x94\x08!\xc6\xcfS\
+j\xdc\x98\x02\x94a\x00\xe0\x9b>\x95\x8d\xebV\xf1\xfc\
+7\x9e\xa6\xa2\xcc\xf3\xe0\x00\x13\xc9$\xef\x1ehe\xf7\
+\xbeC\x0cE\xa2h\x9a\xb4`r@6\x9b\x0d\xbb\xdd\
+\x8e\x10\x02]\xd7I\xa7\xd3\xe8\xba\x9eU\xd2\x9co(\
+\x85\x14\x82%\x0b\xe6\xb2\xe5\xfb/2\x7fN\xfd\xfd\x03\
+\x8e\x8c\xc6\xf8\xd5\xef\xde\xe3\x83CG\xc9\xe8:B\x88\
+,\x18\x94\x96z\xa8\xaf\x9f\xc9\xecY\xf5T\xf9\xaa(\
+))A\x93\x92d2E8\x1c\xa6\xb7\xf7\x0a\x17\x83\
+!\xae]\xbbN:\x9d\xb6@u\xdd \xe0\xaf\xe2'\
+?\xfa6\xcb\x1f_x\xef\x80\x89D\x92\xb7~\xf3.\
+{\xff\xd2f)e\x18\x06n\xb7\x9b\xe6eKY\xfe\
+\xc4W\xa8\xa9\xf6\xe1p8\x10X\xa1g:\xca\xce\x8d\
+Fo\xd1\xdd\xdd\xc3\xd1c'\x08\x85.\x8d\xf3S=\
+}*?\xfb\xf1\xab45>:y@\xa5`\xe7{\
+\x7ff\xdb;{\xd1\xc7(W[\x1b\xe0\xb9M\xcf\xd2\
+\xd00\x17M\xd30\xb2\xf1uW\x87B \x84`x\
+8\xca\xe1\x8f\xdbhk;F\x22\x910C\xc10\x98\
+S7\x837~\xba\x85\xdaG|\x05\x01\xca\xdc\xc3\xd9\
+\xaenv\xed;4\x0en^\xc3\x5c~\xf0\xeawY\
+\xb4p>\x0e\x9b4\x7fE\x1eSJa\x18\x06\x1e\x8f\
+\x9b\x8d\xcf>\xc3\x0b/l\xa2\xb8\xb8\x18\xa5\x14\x9a\x94\
+\xfc\xeb\xf3+\xec\xd8\xf3\x01\xc9T\xaap\xc0\xd1x\x82\
+\x96\xf7\x0f\x12\x8eD\xad\xed\xa8\xad\x0d\xf0\xd2K\xdfd\
+\xe6#\xd5\xb8\x1d\x82R\x97\x8d\xd2\x22\x0d\x87&\x0ar\
+\xac\x94BJ\xc1\xeaU+xf\xc3z\xecv\xbb\xf9\
+B!9r\xea,'N\x9f+\x1c\xf0t\xc7y\xda\
+;\xbb\xd14\x89R\x0a\xb7\xdb\xcds\x9b6\xe2\xaf\xf1\
+\xe1\xb2\x81&\x05B\x80M\x0a\x8a\x1d\x1a\xa20Fk\
+\xcbW\xaf^\xc9\xd2\xa5K0\x0c\x03! \x9eH\xb2\
+\xef\xe0\x11Fc\xf1\xfc\x80\xe9t\x86\x8f\x8e}J\x22\
+\x91\xb4\x06\x9b\x9b\x9bhh\x98\x03\xca@\xdeF\xa3I\
+\xee\x18\xcb\xa7\xa4\xd3\xe9d\xdd\xda5x\xbd^SY\
+Mr\xfeB\x88\xce\xee`~\xc0\xcb}\xd7\xe9\xea\x09\
+!\xa5\xa9^\xa9\xc7\xc3\x13\xcb\x9b\xd14\x0d\xddP\xe8\
+\xb7\xc5]\xc60\xeb\xdbd\xcc0\x0c\xfc\xfe\x1a\x16/\
+^df50\x1aK\xf0\xc9\xd9\xae\xfc\x80\xe7{B\
+\x84o\x0e[\x89Q__Guu5\x86a`(\
+\x18M\xea\xa4u\x85\xa1\x14)]1\x9a\xd2\x0b\xc9\x95\
+;_$%\x8d\x8d\x8b(*r\x99\x03\x02\xce_\x08\
+12\x1a\x9bx]O\xf02\x99\x8cy\x02\x08!\x98\
+5\xbb\x1e\x87\xc3nMH\xe9\x8a\xe1D\x86\x9bq\x9d\
+h\x22CFW\x08\x01N\x9b\xc4i\x93\x05\xc7\xa3R\
+\x8a\x9aj\x1f^\xaf\x17\xc30C\xa7\xff?\x83\x0c\x86\
+\x87'\x06\xec\xeb\xbfa)b\xb3\xd9\xf0UU!\xee\
+p\x0e\xba\xa1\xacy\x0eM\xe2qix\x5c\x1aNM\
+R\x88)\xa5\x982e\x0a\x95\x95^K\x8c\xd1X\x9c\
+\xa1H\x1e\xc0\xe8\xad\x11\x10&\x84\xddn\xa7\xa4d\x0a\
+\xf7\xb0\x83\x05\x99\xa6i\xb8\xddnr\x87W&\xa3\xe7\
+\xddb\x9bn\x9d\x0c\xe6\x91\x94;?'\xb2\x94n\x10\
+M|\xf1<)\xc81\xfe\x15\x0a=\xcf\xc9d+r\
+:A\x81\x90fWRH\x85W\x0a\x92\x99\xc9\x81\x99\
+\xeb\xd4\xb8r&\xa5\xc4\xe5tL\xb8FVz\xcb\xac\
+\x7f\xd2\xe94\xe1p\xe4\x8e\x9e\xefAY*\x95\x22\x12\
+\x89X\x15\xc3\xe9pP\xe6)\x99\x18\xb0>\xe0GJ\
+\x13H\xd7uz{\xaf\xe4m\x08\xee\xc5\xa4\x94\x84#\
+\x11n\x0c\x0cZ\x80\x15e\x1e*+\xca'^\xb7\xa0\
+a\x16\xc5E.+1.^\x0c\x12\x8d\xde\xfaRT\
+\x0c^\x0c\x11\x8dF-\xc0\xba\x195T\x94\xb9'\x06\
+\x9c7{&3j\xaaP\x86\x81\x94\x92k\xd7\xae\xd3\
+\xdd\xdd\xf3@\x01\x85\x10\xc4b1>k\xef\xb0\xban\
+M\xd3hj\x9c\x87\xcdf\x9b\x18\xd0[^\xca\x8a\xa6\
+Fk \x9dNs\xe4\xe8q\x86\x87\x87\x1f\x18\xa4\x10\
+\x82\x8e\x8es\x04\x83\xe6\x91j(E\xd54/\xcdK\
+\x16\xe4]+\x01\xd6\xaej\xc67}\xaay\x87\x90\x92\
+K\x97>\xa7\xf5p[\xb67\xbc?8)%}}\
+W\xf9\xf0\xc3V2\x99\x8c9\xa8\x14k\x9el\x22\xe0\
+\xcf\xdf\xb4J\x80\xba@\x0d\x1b\xbf\xb6\xca\xeaR\x94R\
+\x1ci;\xc6\xf1\x13\xa7P\x8a{VRJ\xc9\xc0\xc0\
+ \x7f\xf8\xe3\xfb\x5c\xef\xef\xb7z\xcd\x80\xdf\xc7\xa6\xf5\
+O\x15\xe6#\xf7\xf0\xfc\xd7\x9f\xe6\xf1\x85\x0d\xe8\xba\x81\
+\x10\x82D2\xc9\xfe\xfd\x07hm\xfd\x98T*UP\
+\x01\xcfY\xae\xe0\xf7\xf5]e\xe7\xce]tw_\xb0\
+\xd6\xbb\x9cN^\xd9\xbc\xa1 \xf5\xc6\x01V\x94y\xd8\
+\xf2\xbd\x17\x09\xf8}\xd9\xc6R\x10\x8b\xc5\xd9\xb7\xffO\
+\xbc\xd3\xf2{z{\xafX\xaa\xdcMQ)%RJ\
+\xe2\xf18'O\xfe\x95m\xdbw\xf0\xcf1\x09\xa7\x14\
+h\x9a\xc4f\xd3\x0a\xff\xb1\xb7_;?=\xdb\xc5\xcf\
+\x7f\xf9[\xae\xfd{\xc0:\x96\x0c\xc3\xc0[Q\xc1c\
+\x8b\x1by\xacq!55\xd5\x14\x17\x17[\x19\xa8\x94\
+\x22\x99J\x11\x09G\x08\x06C|\xd6\xdeA(\x18\x22\
+\x9d\xc9\x8c\x81Sc\xea_)\xaf\xbf\xf6-\xd6\xadn\
+\x9e< @{g7\xbfx{7\x17.\xf5\x22\xb3\
+\xb7\xb4\xdc\xa5\xdd\xe5r\xe1\xf5VPYY\x89\xc7]\
+\x82\xd44\x12\x89\x04\x91\xc8M\x06\x06\x06\x89F\xa3\xe8\
+\xba\xfe\xc5\xe5\xdd0p9\x9dh\x9a$\x16OXq\
+\xe8-/\xe5\xf5\xd7^\xce\x0by\xd7O\x1f\xbdW\xfb\
+\xd9\xb1\xe7\x00m\xa7\xda\x89\xc7\x93\xd9\xad\xc5ziN\
+\x95\xb1q\x97\xfb\x83l\xd7\xad\x14\x01\xbf\x8fW6o\
+\xc0n\xb7\xf1\xd6\xaf\xf70\x18\xbei\x96\x9a\x02!'\
+\xfcx\x94L\xa59y\xe6\x1c\xfb\x0e\x1e\xa1\xab'\xc8\
+h,\x01\x22{'\x11b\x5c\xdf\x98SX)\x85\xa6\
+iTM\xf3\xb2\xe6\xc9&6\xad\x7f\xcaJ\x88\xc3'\
+\xce\xf0\xc6\xb6\x16\x86&\x01\x99\xf7\xeb\x16\x98\xf7\x87\xae\
+\x9e \x9f\x9c\xed\xe4|\xcf%\xfao\x0c22\x1a'\
+\xa3\x9b_\xb9\xa4\x14\xb8\x1c\x0e\xca\xcb<\xd4\x05jh\
+j|\x94\xe6\xc5\x0b\x08\xf8\xab\xee\xf0\xd5z\xfc\x0co\
+n\xff\x1f\x90?|\x99u\xab\x9a\xef\x0dp\xac\x8d\xc4\
+\xe2\x0c\x85o2\x14\x19fd4\x86n\x18fWR\
+\xeafjE\x19\xe5\xa5\x9e\xbcYz\xf8\xc4\x19\xde\xdc\
+\xd6R\xd0vO\x1a\xf0AY\xa1\x90\xb6\xfbx\xc7}\
+\xd9WW.\x03\x18\x079\x14\x19f\xeb\xf6\x16\x00\x0b\
+\xf2\xa1\x01\xe6\x83\x14\xc2\xec\x11\x1e*\xe0X\xc8\xb1\xd9\
+=\x14\x19f\xeb\xdb\xbb\xcd\xd2\xf6\xb0b\xf0v\xbb=\
+&u\xc3\xa0y\xf1\xfc\x87\xaf`\xcerJn\xdd\xbe\
+\x8b\x1b\x83\x114M\xe2\xf7M\xff\xffQ0gm\xa7\
+\xda\xd9{\xb0\x0d\x7f\xd54\xbe\xb3y\x03\xff\x05\xc8C\
+\xdb\xc2\xa6D\x97\x9f\x00\x00\x00%tEXtda\
+te:create\x002023-0\
+3-08T17:27:26+00\
+:00\x9e\x98\xa5\x85\x00\x00\x00%tEXtd\
+ate:modify\x002023-\
+03-08T17:27:26+0\
+0:00\xef\xc5\x1d9\x00\x00\x00(tEXt\
+date:timestamp\x002\
+023-03-09T06:18:\
+41+00:00=\x00\x9f\x01\x00\x00\x00\x00\
+IEND\xaeB`\x82\
+\x00\x00\x08\x13\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x08\x06\x00\x00\x00\x8c\xfe\xb8m\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x00\x06\
+bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\
+\x00\x09pHYs\x00\x00\x00`\x00\x00\x00`\x00\xf0\
+kB\xcf\x00\x00\x00\x07tIME\x07\xe7\x03\x09\x06\
+\x12)\xc3\xf6 \xcd\x00\x00\x06\xdeIDATX\xc3\
+\xbd\x99[\x88\x5cI\x1d\x87\xbf\xaa:\xd3\xb7\xe9\x99\xe9\
+\xd9\xb9dHv\xc8\xc4\xc9\x5c7\x9b\xc4,AE\x05\
+/\xe8\x8a\x88\x0f\xee\x83\xe2\x93\xc8\x8a\x0f>\x88\xf8 \
+>\x89O>\xac\x18\x17E\x05aA\x03Y\x08^`\
+\x1f\xd4\x87 \x0b\xca**&lb2n4\x99\xec\
+e2\xd7\xccL\xf7\xe9>}\xce\xa9S\xe5C_\xe6\
+\xf4\xbd;\xa8\x05\xcd9]}N\xd5W\xbf\xff\xa5.\
+-|\xdf\xb7\xf9|\x9e(\x8a\xf8\x7f\x15\xc7q\xc8\xe5\
+r(\xa5z?\x9b\xcf\xe7\xb9}\xfb6\xa9T\x0a)\
+\xe5\xff\x1c.\x8a\x22\xc20\xe4\xc2\x85\x0bd2\x99\xde\
+\x80Q\x14\x91J\xa5X]]\xc5\x18\x0b\x02D\xedW\
+Q\xb9\xeb\xf8\xbdS]\x87\x22\x84 \xd4\x9a[7o\
+b\x8c\xe9Om\x00)%\xc6Z\x820\xa8t$\x04\
+\xa2\xd6\xb1\x10\x88\xea\x95\xea}\xfc\x8a\xb5\x08\xc0\xc6`\
+;\x01\xdbj_\x22\xd6~_\x80\xf1\x11\xb6\x03\xb4\xd6\
+R.\x97\xb1\xc6\x1c\xc15\x83\xf6\xa1\xa2\x10\x02c\x0c\
+\xa5R\x09\xd7u+\xd0\xd6\xb6}VJI2\x99<\
+\x02\xac\xab\xd4\x06\xd4/\x97\xf9\xc7\xad[\x08!\x1a\xfd\
+4\x0e\xdbJ\xd3Z\x05\x18k\xd9\xd9\xd9amm\x8d\
+D\x22\xd1\xf6Uk-\xc6\x18VVVb\x0a6A\
+\xc5\xef\x8d\xb5\x08!8\x7f\xfe<J)lL-)\
+$\x08\x81\xb5m|\xaa\xc3\x00l\xb5=:\x98\xd9Z\
+\xcb\x9d\xdb\xb7\xd1Z7*X\x87k\x86\x15\x02\xa9\x14\
+J)t5\x1dI!16\xe2\x8d\xbd5\x0e\xcb\x87\
+\x5c|\xf2\xbd8\xd29\x0a\xb2x\xe7M. \x9a\xb2\
+E3f\xad/\xa0I\xc1\x0ep\xa2I\x09)$n\
+P\xe0w\xff|\x85\xfb\x87\xf7\xc9{\x05V\xa7\xcf\x90\
+K\xe7\x1a\x82\xa5!\xa0\xda\x80vr\x85xi\xf1\xc1\
+\xe6\x88m\x84\x13(\xa9x\xb0\x7f\x8f\x97o\x5cf\xa3\
+\xf8&\xa7&\xe7(\x17\xca\x15\xe5\x84\x04lK\xa4\x0f\
+\x0a\x18\x8f\xf0\xc6(\x8e\xc3\xc5\x01\x85\xa8\x98\x14\xc3k\
+\xeb\x7f\xe0\xea\xebW\xc8\x8d$\xf8\xf2\x87>\xcd\x83\xdd\
+=\xd6\xb77\x01Q\xedKt\x05\x14\xad4\xfd)X\
+O-\xcdp\x80\x92\x8aBX\xe0g\x7f}\x89\xd7\xde\
+|\x95g\xe6\xde\xc5\x07\x17\xcf0\x92R\x14\xfd\x22\x91\
+\xb1T^mc\xda\x01\x01\xeb~Z\xado\x1f$q\
+\xe5\xa4\xe4\xde\xc1=~\xb9~\x15\x7f\xe8\x11\xcf\x9eY\
+\xe1\xd4\xd4\x14\xe5`\x1f?\xccS*\xbb\x95\x19\x081\
+8`\x97(oo\xe2\x18\x9c\x94\x920\x0a\xb9v\xe7\
+\x1aWo\x5caz\xdc\xf2\xd1S\xf3dSP\xf0\xb6\
+\xb1\xb6\xe2s\xe5\xa0\x88\xd6\xa61\x8fv\x00l\x9e=\
+\xfa\x99M\x1aM\x5c\xcdOJ*6\xf3[\x5c\xfe\xf3\
+e\xfe\xfe\xce\xef9wj\x8c\xf9\xe91\x84<\xa0\x18\
+\x00X*\x83T\x84\xda\x10\xfa\xba\x92\x1b\x07\x04\xecV\
+:\x9aX\x0a\xc9\xcd\xb7o\xf1\xf3?\xbd\xc4~p\x83\
+\xf7,d\x19\x1f\x09\xf0\xcd\x0e\x0aA%\x85I\x8c\xb1\
+\x18#(\x94=\x02?}\xd4h-\x09\xc7\x81\x1fC\
+\xb9\xb6&\xae\xf9\xe0\xda\xc6\x1b\xec\x1c\xbe\xc5\xd4\xd4\x0e\
+n\xf86\xa1\xabH'\x15\x89!\x89\x90\x16c4\xa1\
+\xd6\x94\xfc\x12[yA\xe8_\xac\x0eRT\xd3M+\
+\xd8 P]Ml\xb1|\xea\xdd\x9f$\x8a\x22.\xff\
+\xf1GLN\xaf\xb1<\xef\x13I\x88\x94`\xc8\x01\x05\
+XeIIH\x0d\x0d\xa1\x83\x08\xec``\xfd\x02\xd7\
+\xe7\x9cx\x0e\xcc$\xd3|\xfe\x03\x9f\xe5\xdb\xcf]B\
+\x1f|\x8c\xbf\xfcm\x04\xab\x15\xe3\xa3\x82\xdc\xa8d|\
+T26\xaa\x18\xc9\x0aR\x09\x8b\x8e\xf9`7\xb8\xf8\
+\xcc\xd4\xab\xd4\x9eiYB\xc7_}\xdf\xd2E\xbe\xff\
+\xc5K\xacN<\xcf\xaf^\x99\xe0\xdf\xff\x92\x8c\x0d\xc3\
+xN0:,\xc8\xa4\x04\x09\xc7\x10\x85\x15\x05k/\
+\xb7\x03\xed\xa6d\xf3\xa7\xad\x82\xedFh\xac\xe1\xf8\xc4\
+\x0c\xdf|\xeek<{\xfay~\xfb\x9bE~\xf1k\
+E\xe4C:\x0dJ\x09\x94\xb0DaT\xe5\xeb\x0d\xd6\
+\x0d\xa6\xab\x89\xbb-}\x86\x9c!>q\xf6\xc3\x5c\xfa\
+\xd2\x0fx\xf4\xd6\xc7\xf9\xcew\x87\xb8s\xd3\x10i\x83\
+\x8d,&4T\x12c\xab\x89\xfaQ\xb1\xdbs->\
+\xd8)5Xkyf\xf1\x1c?\xfe\xea%\xde?\xff\
+\x15~\xf2\xd3'x\xf5\x9a\xc5\x04\x06\xa3\x8f\x14\xec\x04\
+\xd7\xcb\xac\x9d\xfc\xb71\xcd\xf4(\xc6\x18\xa6r\x93|\
+\xeb\x0b\xdf\xe0\xdc\xe93\xbcp\xe5\x05\x90\xf7\x88BS\
+\x9f\x9ez\x05\xc9\xa0\xc5i\xd7@\xbbNj\xd7\x8a\xc9\
+\x1d>\xf7\x91\xcf\xb0zr\x81\xef\xbd\xfc\x22\xf9b\x99\
+\xe1T\x86\xa3\xddS\x7f*v3s[\xc0n\x0f\xc6\
+*+jZ\xc3\xd9\xd3O\xf3\xc3\xaf\xbfH9(\xf3\
+\xc4Hn`\x15\xad\xb5-\x9b\xa6\xda&\x8d\xc711\
+4\xa6!k-\xd9\xcc0\xd9\xccp_\x03\xacg\x07\
+c\xeap\xb5\xfdqm\x9f\x22\x04\x18{\xb4\xa2q\x9a\
+_\x1e$\x89\xc6\x1b\xee\xa6z\xdc=\x8c1\x18c\x88\
+\xa2\xa8\xfe\xa9\x01\xd7w\x8dR\x11\x99&\xc0n\x10\x0d\
+\xdb\xd1>}\xa7]\x160\xc6\xa0\xb5FkM\x10\x04\
+\xf8\xbe\x8f\xef\x07h\x1db\x8cA\x08I\x221\x84\x91\
+\x0eA\x10\xe08\xce\xe0&\xeeG\xf1f\xd08\x5c\x10\
+\x04x\x9e\x87\xeb\xba\xb8n\x11\xcf\xf3\xf0}\x1f\x8b%\
+\x93\xce \x1c\x07\xd7-\xf2\xe4\xf1\x19r\xb9\xdc\xe3\x03\
+v\x83j\xae\xab\x994\x08\x02\x5c\xb7\xc8\xfe\xfe>{\
+{{\x14\x0a\x05\x820$\x9dN359\x81\xb1\x86\
+G{{\xcc\x9f\x9acnn\x0e\xa5\xd4\x7f\x0f\xb0\x97\
+i\xc30\xc4\xf3<\x0e\x0f\x0f\xd8\xdc\xda$\xd2\x11\xc7\
+\x8e\x1dc|<G6\x9begw\x87w66X\
+\x98?\xcd\xc9\x93'\xeb'\x18\x83Gq\x9f\xc96\xae\
+^\x0d\xd0u\x8b\x1c\x1c\x1crpp\xc8\xd3g\x9eb\
+a\xe14\x9e\xe7q\x7f\xfd>\x1b\x1b\x1b,-,2\
+;;\xdbp\xbc\xd2\xba'\xe9\xb1\x1a\x1e\x04\xb6\x96J\
+\xb4\xd6\xf8\xbeO\xb1X$_(\xa0\xb5ftt\x94\
+R\xc9c\xbd\x06\xb7\xb8\xc4\xec\xeclK\x9b\x0eT\x0e\
+\x15\xcb\xe5r\xdb\x13O!\x04\x9e\xe7\x11\x86\xe1c\x81\
+\xd6L\x5c\x0b\x8eR\xa9\xc4H6K\x22\x99`\xfd\xc1\
+}\x1e>|\xc8\xf2\xf2\x0a'N\x9ch\xdb\x8e\x93H\
+$PJq\xf7\xee\xdd\x8e\x8e^,\x16\xd9\xde\xde\xee\
+xT\xd6KAc\x0c\xa1\xd6\x84a\x88\x89\x22ff\
+\x8e\xb1\xf9\xf0![[\xdb\xac\xac\xacr\xfc\xf8\xf1\x8e\
+m8ccc\x9c={\xb6c\xe7B\x08\x5c\xd7m\
+I\xc8\xcd \xbdT\xb4\xc6\x12\x19\xc3\xe8\xd8\x18\x16\xcb\
+\xee\xee.+\xcb+\xcc\xcc\xcct\x1d\xa4#\xa5\xecx\
+NW+\xc9d\x12\xc7q\xba.\x22\xba%v!$\
+R\x0a\x92\x99aT\x22\x89\xe7y,--3==\
+\xdd\xd3\x0a}G\xb11\x06\xdf\xf7\xeb\x8a4C5\xab\
+\x0e\x95\xc3J\xad#|\xad\x89T\x02\xab\x86\x10\x81\xcf\
+\xd2\xd2\x12\x13\x13\x93}\xf5\xdb\x17\xa0\x10\x02\xad5\xd7\
+\xaf_\x1f\xe8\x9f\x80\x8a\x0fBd+\xe6M%\x93<\
+\xb5\xb2\xdc7\x1c\xc0\x7f\x00\xb3\xfd\x1fpe\x8eW\xd4\
+\x00\x00\x00%tEXtdate:cre\
+ate\x002023-03-08T1\
+7:27:26+00:00\x9e\x98\xa5\
+\x85\x00\x00\x00%tEXtdate:mo\
+dify\x002023-03-08T\
+17:27:26+00:00\xef\xc5\
+\x1d9\x00\x00\x00(tEXtdate:t\
+imestamp\x002023-03\
+-09T06:18:41+00:\
+00=\x00\x9f\x01\x00\x00\x00\x00IEND\xaeB\
+`\x82\
+\x00\x00\x08\x01\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x08\x06\x00\x00\x00\x8c\xfe\xb8m\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x00\x06\
+bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\
+\x00\x09pHYs\x00\x00\x00`\x00\x00\x00`\x00\xf0\
+kB\xcf\x00\x00\x00\x07tIME\x07\xe7\x03\x09\x06\
+\x12)\xc3\xf6 \xcd\x00\x00\x06\xccIDATX\xc3\
+\xcd\xd8\xdbO\x1b\xd9\x1d\xc0\xf1\xef93\xe31\x17\x13\
+c\x1bc|\xc1\x10\x08\xe4\x02A u\xd3\xa4/]\
+u\xb7/\x9b\xedk\xab\xb6\x7f]U\xf5\xa9j\x1f\xda\
+\x97UUU\xda$\x0d!\x81\x84\x84\x90&\xdc\xcd\xc5\
+\x06\xdb\xc4\xd8\xd8xf<s\xfa`\xd8n\xa4\x96\xcb\
+\x06J~\x925\x925:\xe7s\xee\xbf3B)\xa5\
+\xf8\x84C?\x8fB\xbe\xdfF!\xc4\xe5\x03\x95R\xb8\
+n\x03\xc7q\xb0m\x07\xdb\xb1\xf1\x5c\x17\x84\xc0\xd0u\
+\x0c\xc3\x87i\x9a\xf8|\xbe\xff?\xd0ql\xaa\xd5*\
+\x85\xe2.\xab\x99M\xb2\xb9<\xfb\xfb\xfbx\xae\x83\xd4\
+t\xdaZ[\xe8\xea\x0a\x91\xe8\xe9&\x12\x0e\x13\x0eG\
+0M\xf3\x07\x03\xc5i\xe7\xa0R\x8aju\x9f|\xbe\
+\xc0\xec\xeb\x05\xd66\x0b\x84\xc3a\xd2\xbd\x09:\x83W\
+0t\x1d\xcb\xb6\xd8\xc9\x17Y^Y\xa3\xf4\xbeHo\
+<\xcc\xb5\x814\xfd}\xfd\x84B\xa1\x8b\x03*\xa5(\
+\x95J\xac\xado05\xbbH\xe0J\x98\xf1\xb1[\x84\
+\x82\x1dH\xf9\xe1\x9c\x13B\xd0h\xb8lfw\x98\x9c\
+\x9a\xc6\xae\xedr\xebZ\x92\xd1\xd1Qb\xdd\xb1\x8b\x01\
+\x96\xf6J,\xaf\xac\xf1l.\xc3\xd5\xc1!\x86\x06\xfa\
+\xd04\x81\x10 \x85\x00\x01B\x00\x0a\x14\xa0<\x85B\
+P\xb7\x1c\x9e\xcd\xcc\x92Y\x9e\xe7z\x7f7\xf7\xee\xde\
+%\x14\x0a\x9f\x09(Oz\xa1^\xaf\xb3\xb9\xb1\xc9\xcb\
+\xb7\x9b\xa4\xaf\x0e\xd3\xd7\x97\xc6U\x0aO\x81\x12M\x99\
+8|\x22\x9bO%\x04\xaeRHMc||\x8cd\
+\xff-\xde\xadd\x99\x9d\x9d\xc5q\x9c\xf3\x05\xe6\xf3;\
+,\xacf\x11\xfe0=\x898\xae\xa7\x9a0)\x90R\
+ 5\x81\xd4\x05\x9a&1\x0c\x0d\xf0\x10\x92\xe6\xd0\x0b\
+\x81B2|\xe3\x06fG\x0f[\xdbyr\xb9\xec\xf9\
+\x01-\xcb\x22\xb7\xbdM&o\x11\xedIp4\x96B\
+J\xa4&\xd04\x81\xa6\x0b|\x86\x86\x94\x1e\xaf\xe6^\
+\xf3\xbb\xdf\xff\x81\xbaUC\xd3\x9b\xefHM\xe07}\
+$\xd3\xd7\xa85\x0c\xf6\xca{\xb8\xae{j\xe0\xb1\xdb\
+L\xa5Ra\xa7P\xa2\xea\xb5!}-(!\x10\x9a\
+D\xd7\x04\xba.0\x0c\x89& \x93Y\xe7\xef\xffx\
+\xc4\xd4\xf4+4\xe1\xf1\xab_\x82a4\xdb\xae\x89\xe6\
+/\xd2\x15au\xc5\x8fm7\xa8\xd5\xaa\x04\x02\x1d\xe7\
+\x01,\xb3[>@\x9a!\xf6-\x85\xd5\x80V\x09\xba\
+\xd1\xec\xb5\xddb\x81o\x1fL2\xfd\xe2\x0d\xfe\xb6 \
+\xa9\xfe!\xaa\xa5m\xb4\xc3\x06\x80@\x13\x12\xa5@h\
+\x06\x8e\xf0\xb3\x9a\xd9 \xd6\x1d=\x1f`\xb5V\xe5\xc0\
+r\xf1\xb5\xf8\x11Rby\xd0@P\xde\xdf\xe7\xdb\x99\
+\xe7L>yN\x03\x83d\xffu\xae\x04\x83\x14\xf3y\
+\xaa{\xdb\xcd\xb9#AH\x81\x8b\xe2\xa0\xa1p\x94@\
+\x1a-,\xaf\xcesch\x80x<\xf1\xf1@\xc7v\
+h\xb8\x1e\xba\xae\xa3k\x12C\x17\x18\xba \xb3\xbe\xc5\
+\xcb\xf9%:\xbb{\xe9\x0cE0\x0c\x1d\x81@\xf1\xe1\
+\x8e%$x\x02l\x0f\x1a\x1e\x08!\xd9\xd9\xd9\xa1n\
+\xd5O\x85;\x11(\xa5\xc0sm@!\x04hR\xa0\
+ip{t\x98k\x03iV2yV3yj\x07\
+\xf5\xe6\xfa\x01P\xcd\xa7\xe0p\xd7\xd1\x04\xeap/W\
+^\x03\xc7\xb60}\xa7?\xfa\x8e\x05\x06\x02\x01Z}\
+\x82J\xc3B)\x0e\x17\xb1@\x0aA0\xd0\xca\xc4\xad\
+4}\x89\x08\xef\x96\xb3ll\x15QJ\x1d\xc2\x04R\
+\x80\xa7\x04\x9aPhB\x80RX\xb5\x12\x9a\xf0\xe8\xec\
+\xec<\x1f`(\x14&\x19\x0b\xb3Q\xb5h3\xc0\x90\
+\xcd\x8a8\xec))\xa0\xbb\xb3\x8d\xf0\xf8\x00\xb9T\x17\
+\x93\xd2\xa1\x5c\xd8@\xa0\x0e{\xf1h\xc8\x15\x07u\x9b\
+\xbd\xfc\x1a\x91p\xe7\x99N\x93c\x81\xed\xed\x01R\xc9\
+\x04F\xc9\x01\xcfFy&NC~\xd7\x9bGP\x9f\
+\x14\xa4\xa3W\x88|y\x87\x1b\x83=\xf8M?G6\
+\xe5\x81m+\x8a;\xdb\xec\xe5\x16\xf8\xe9W??S\
+vs\xecF\xad\xeb:\xe1p\x04\x1f5\xb2[\xebl\
+\x15\xeaTj\x1evC}\xb0 \x84j\x16\x14\xf0\x19\
+\x8c\x0d\x0f\xd0\xe2\xf75\xcfd\xc0v\x14\xc5\xf75V\
+\xdfL\x12\xea\xf0\xf3\xd9\x8f\xee\x9c\x1aw\x22\x10 \x12\
+\x89`h\x82\x9d\x95\x19V\x96\x16\xc9\xbf\xb7\xd9\xdbw\
+q\x5c\xf0\x0e\x99G\xd4\xef:\xf5\xf0\x0f\xcbVl\xef\
+Z\xbc{=C~\xed\x05\xf7\xef\x7f}\xe6\xb4\xeb\xc4\
+\x84UJ\xc9\xc8\xc8m\xde-,03\xfd\x17\x5c\xc7\
+Bp\x1b![\x09\x074\xfc\xdf+A\x00\x1e\xe0\x02\
+\xfb\x96b=Wcvz\x8a\xf9\xc9\xbf\xf2\xb3\xcf?\
+\xe7\xceg?>\x13\xae9:\xa7LX\xcb\xe52\x7f\
+\xfa\xf3\x1fy2=KW\xdf\x047'\xeeq\xb5/\
+A4\xe4\xa7\xcd/1\xe4\x7f\x86\xf4}\xb9\xceZf\
+\x8b\xb9g\x8fXz=\xc9\x97_|\xc1\xd7\xf7\x7f\x81\
+\xae\x9f\xfd\x86qj 4\x93\x87\x87\x0f\x1f\xf0\xcd\xdf\
+\xbea\xb7\x5c\xa7+9D\x22=H$\xdaM\xab\xdf\
+\xc4\xb1-J\xbbyr\xebK\xecl.\xd1bj\xa4\
+\xd3}\xdc\xbb\xfb\x13FGF\x11G\xa9\xd9E\x01\x8f\
+\xa2P(\xf0\xfc\xc5\x0c/_\xce\xb2\xbd\xbd\xc3\x81e\
+\x01\xcdE\xd5\xd6\xdaB2\x91`t\xe46J\x81\xe9\
+7\xc9\xe5\xb2\xd8\xb6\xcd\xc8\xad\x11\x86\x87\xaf_<\xf0\
+(\x5c\xd7\xa5R\xa9P\xab\xd5p]\x17\xc3\xd0ik\
+k\xa7\xbd\xbd\x1d!\x04+\xab+hR\xa3\xb8[\xe4\
+\xd9\xb3)\x84\x90\xfc\xe6\xd7\xbf\xa5\xa5\xa5\xe5\xd4u\x9c\
+\xb8\x8a\x8f\x0bM\xd3\x08\x06\x83\xc4\xe3qR\xa9\x14\xb1\
+X\x0f\x81@\xe0\xf0^\xd2\xe0\xed\xdb\xb7\xd4j5R\
+\xc9$\xe9t\x1f\xa5\xd2{\x9e?\x9f9S\x1d\x1f\x05\
+<.t]'\x95L177\x87\x94\x1a\xa9T/\
+==q\x9eN?\xa5X,^>\x10`xx\x18\
+\xd34y\xb7\xb0@w\xb4\x9bT*\x05J\xf1x\xf2\
+\x9f\x9cvf](P\xd7u\xc6\xc7\xc7YY^\xa6\
+vP#\x91H\x92L\xa6x\xf3\xaf7\xac\xae\xad^\
+>\x10 \x99L\x12\x8b\xc5\x98\x9f\x9f'x%H2\
+\x99$\xd0\x1e\xe0\xe1\xa3\x07\xa7\xba\xe1]8\x10`|\
+|\x9cb\xb1H\xa1P\xa0\xa7\xa7\xb9\xa0\xb2\xd9,s\
+\xaf_}\x1a\xc0`0\xc8\xf0\xd00\xf3o\xe61M\
+\x93x<A\xb4+\xca\xe3\xc7\x8f\xa9T\xca\x97\x0f\x04\
+\xb8y\xf3&\xcaSd2\x19\xa2]]\xa4R)\xea\
+\xf5:SO\xa7>\x0d\xa0\xdf\xefgll\x8c\xa5\xc5\
+%\x5c\xcf#\x16\x8b\x91H$\x98\x9d}A6\xbbu\
+\xf9@\x80\xfe\xfe~\x82\xc1 \x8b\x8b\x8b\x04\x83\x9d\xc4\
+\xe3qL\xd3\xcf\xe4\x93I\x94\xf2.\x1f(\xa5db\
+b\x82\x5c6G\xa5R!\xda\x15%\x1e\x8fS,\x16\
+888\xb8| @4\x1aepp\x90\xcd\xcdM\
+\x0c\x9f\x8f\xd6\xd6Vz{\xd3\xf8\xfe\xc7M\xef\xa3\x92\
+\x85\x1f\x1a\xb6mS(\x16\xf0<\x8fJ\xa5B\x22\x9e\
+\xa0\xa3\xe3\xbf\x7fi\xb8\x14\xe0Qx\x9ewb\x8ex\
+\xa9\xc0\xd3\xc4\xbf\x01\x1d\xed\xef\xf6__\x8c\xd9\x00\x00\
+\x00%tEXtdate:creat\
+e\x002023-03-08T17:\
+27:27+00:008\xef\xae1\x00\
+\x00\x00%tEXtdate:modi\
+fy\x002023-03-08T17\
+:27:27+00:00I\xb2\x16\x8d\
+\x00\x00\x00(tEXtdate:tim\
+estamp\x002023-03-0\
+9T06:18:41+00:00\
+=\x00\x9f\x01\x00\x00\x00\x00IEND\xaeB`\x82\
+\
+\x00\x00\x07&\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x08\x06\x00\x00\x00\x8c\xfe\xb8m\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x00\x06\
+bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\
+\x00\x09pHYs\x00\x00\x00`\x00\x00\x00`\x00\xf0\
+kB\xcf\x00\x00\x00\x07tIME\x07\xe7\x03\x09\x06\
+\x12)\xc3\xf6 \xcd\x00\x00\x05\xf1IDATX\xc3\
+\xd5\x98\xddo\x1cW\x19\xc6\x7f\xe7\x9cY\xc7\x01\x7f%\
+n\xb1[\xd26n%\xabNh\x8a\x89\xd44\xadI\
+\xd5F\xc8\x154\x84P `\xa9A\xa8\xa2\x22\x01A\
+*@\x88\x1b\x90(\xfd\x03\xf8\x10\x14\xa9B\x0a\x5c\xc1\
+E\xa8@\x5cp\x11\xa9i\x9b\x08Jp\xd5$u\x08\
+\xa4\x0eI[\x9c8\xb1\x1d\x7f\xee\xce\x9cs\xde\x97\x8b\
+\x19\xaf\x9b^t7\xb1\xe3\x84\x95^\xcd\xce\xec\xae\xce\
+O\xcf\xf3>\xef\x99\x1d\xa3\xaa\xca\x0d\xfc\xb2\xd7\x1b\xe0\
+\xff\x1e0\xa9\xf5\x85r\x1a8{~\x9a\xd1\x89\x0aQ\
+\x94\xcd\xeb;X\xd1\xe0\x96\x0d\xb0\xa6\x82\xfb\x0f\x9e\xe2\
+\xafC\xe70\xce\xf0\xf3\xfdG\xf9\xd1\xbe#\xfc\xf7\xe2\
+\xec\x8d\x01\x18E9\xf5\xd68\xad\xab\x9bh\xeaX\xcd\
+\x13;\xee\xe5\xec\xe8\x0cO\xff\xec\x15^~}\x84\xe5\
+HWM\x05\x9d\x01509\x97\xb2\xea\xa6f\xbe\xf2\
+\xf9^\xee\xbe\xab\x9dg\x7fs\x84\xe7^8\xce\xcc\x9c\
+\xbf\xa6\x805{PU\xa8\xa4\x9e4\xcd\x10Q\x8c\x81\
+-\xf7wq\xfb\xad-\xfc\xf9\xc57y\xe3\xf48\xdf\
+\xfc\xdc\x06\xbaok\xbb\x1e\x0a*\xaaBZ\x00fi\
+FZ\xc9\x98-\xa7tv43\xb0m\x1dX\xf8\xde\
+/\x0f\xf3\xa7C\xff!DY~\x05E\x22\x954#\
+K=\xaazY\xdf\x19\x0b[\x1f\xbc\x83\x93o\x8e\xf1\
+\xab?\x1e\xe7\xd8\xf0\x18Om[\xcfMm\x8d\xcb\xa5\
+ H\x14\xcaiF\x96\x05\xb2,\xe03\x8f\xcf<Y\
+\xe6IS\xcf\x5c%c\xedm-l\x7f\xa4\x8b\xa13\
+c|\xf7\x17\x878\xf2\xcf\xd1e\x04\x94H\x9az\xbc\
+\x0fd>\x90\xf9H\x96E|\x16\xf2kY\xa0\x5c\xf1\
+$%\xcb\xd6\xfb\xd7\xd0\xbe\xaa\x81g\xf6\xfd\x9d\xdf\xfe\
+\xe5$\xe54,\x1a\xb0\xa6\xc5Q\x84J\x9a\xc3\xbc{\
+\xdb\xce\xdf\xea\xbb\x8eyuw\xb5\xd2\xde\xd6\xc0\x1f^\
+\xfa7o\x0c\x8f\xb1{\xc7=\xdc\xd1\xd9|\xed\x14T\
+\x89d\x99\xc7\x87\x88\x0f\x92\x97\x8f\x84\x10\xf1>\xe2C\
+\xccU\xf5\xf9y\xb9\x92\xf1\xc1\x95\x96\xbe\xde\x9b\x19\x9d\
+\x9c\xe6\xfb\xcf\x1d\xe2\xc0?\xdeF\xae\xf2\x9e\xa4\xf6\x98\
+\x11\xc1\x87H\x08Bu\x8d\xf9\xb0\xe8\x82r\xf3%\x22\
+\xa8\x0a*B\xcf\xda&\xce],\xf3\xd3\xdf\x0f2t\
+z\x8c]\x8f\xf6\xd0\xda\xd4\xb0\xc4\x80*\xc4\xa8\x84\xa0\
+\xef\xb1X\x17\xac\x95\xcb\xe1D\x16\xaa\xb5\xc9\xf2\x91;\
+Wr\xf0\xb5\xd3\x9c<;\xc1\xee\x1d\x1bX\xdf\xb5z\
+\x09-.\x16\x8c\xa2\xc4\x98W\x88\x0b\xd0!\xe4\xe7>\
+H\xf5\xe8\x0b\xbb\xbd\x0fTRO\x14\xcf]\xb7\x96\x98\
+\x9a\x9e\xe0\x87\xcf\x1f\xe6\x85\x97\x86\xf1\xa1\xbe\x99Y\xfb\
+vK\x05Q\x88\x11\xa2\x14\x15y\x0f\xb0\x12\xa3\x10\xe6\
+{4H\xb57sP!\x84@G\x9b\xa1%\x99\xe6\
+\xc7\xcf\x1f\xe0\xd9}\xafr~|n\xf1\x16\xe7\x8dg\
+\x10\x01\xa9\xf6`~Y\x15D\x15\x15\x10\xd1\xa2\x04\x89\
+\x82\x8a\x22Q\x08>P\x9e\xab011\xc5\xe8\x85q\
+F/N0=S\xe1\xd7\xbf\x1b\xe1\xc4\xf09\x9e\x1e\
+\xd8\xc4\xa6u\xb7`\xcc\xd5\x02\x22\xa0 \x02Z\x1d+\
+\x05`\x01-\x85\x921\xe4\x89\xafTRfg+L\
+\xcf\xcc255\xc3\xf4\xcc\x1c\xe5r\x99,M\xf1>\
+\x80\x06\xb2\xc9\xb7y\xf1\xe0%F.L\xf1\x93\xef\xf4\
+\xd3\xdb\xddqu\x80\xaa\xb9u\xe54\x16\x8d\x9f\xab\x94\
+\xdb\x9b[\x98\xf9\x90\x83\xa5\x19i\x9a\x92VR\xb2,\
+\xc3\xfb\x8c\xe0\x03\xaa`\xad\xc59K\x0c\x060\x18c\
+p\x16\xd0\xc0\xfbM\xa0\xba\xc6\xccT9\x03WA\xe6\
+\xd3Z$6\x07\x15b\x8c\xc5\x11\xc0b\x9d\xc39\x87\
+\x88C\xa2\xc3X\x8b5\x16S\xf8\x98$%\x1a\x9b\xda\
+\xd8x\xef:\xbe5\xd0Go\xf7\x87\x16\xd1\x83(\xd6\
+9\xacu\x18\xa3(\x8a\x15E\xad!J\xae\x841\x14\
+=\xa4\x88\x0a6\xba\xfc7\xd1\x16\x9f\x1b0\x8014\
+46\xf2\x81\xa6f>\xfdp/_}|\x13\x9d\xed\
+\xef\xbf\xcb$5\xd8P\x94\xa4\xe4(\x95\x92|\xde\xb1\
+\x10\x06c\x04\x88\xd5\x9e\xb4V\xb1V\xb0\xd6b\x8d\xa9\
+\xc2\x19\x0c\xce9\x1a\x1aW\xd0ys\x1bO=\xde\xc7\
+\xa7\xb6\xac\xa7\x94\xd4\xfeoSW\x8a]\xc9\x91$\x09\
+*\x92[l\x15\x11SX\x9a\xc7Y\xad\x22\xd6\xe6p\
+\xd6b\xcc\x82z\xaedQ\xe0\xbe\x9e\xb5|c\xe0a\
+z\xee\xbc\xa5\xb6q\xf5[,\xb8$\xa1\x94$\xc5N\
+Q\x84\xa4\xe8\xa7\xcb\x94\xab\xda\x99[j\xac\x05'\x94\
+\xf0|\xe9\x13\x1byb\xfb\x83\xb44\xad\xac\x1b\xae~\
+\x05\x93\x5cA\x91X\x00\x9a\xdcYU\xd4)\x22\x16c\
+-\xc6.\xd8j\x13Cev\x8a\x8e&\xc3\x9e\x9d\x9f\
+\xe4\xa1\xfbz\xaa!YR@E\xb0\x89\xa5Tr\xc4\
+h\xd0B=UP\xa7X\x11\xac5\xcc/m\xad!\
+\x9a\x8cK\xe3o\xf1\xf1\xf5k\xd8=\xd0\xcf\x9a\xce\xf6\
++\x06\xab\x1fP\x15S(hL\xac\xaa\x97+Y(\
+W\xcc5\x93X&&G\x89\x93#\xec\xf9\xcc\x03|\
+\xb6\x7f3\x0d\x0d\xa5\xab\x86\xab\x030O\xadq\x05 \
+T\xd5\xb3VsK\x01\xac!\xb3\x9e3g\x86\xe8j\
+\xb6\xec\xdd\xbb\x93\x0d=]\x8b\x02\xbb\x02\x05\x05\x9b8\
+J\x89\xc3\xa0\x10@\xac\x1490hb\x19\x9d\xba\xc0\
+\xb9S\xc7\xd8\xbe\xe9n\x9e\xdc\xd9O[K\xd3\x92\xc0\
+\xd5\x07\x88Bug\xd0\x5c9\xf2\xa4\x96]\xe4\xc4\xf0\
+Q\x1a/\x8d\xf0\x83/?\xca\xd6\xbe\x8f]U\x10\x16\
+\xad \xce\xe2\x9c#\xe6\x83\x0fq\x86w\xa6\xc7\x19\x1a\
+|\x85\xcdkV\xb1\xf7\xebOr\xfb\x87;j.v\
+\x8d\x00\x15\x8a\xd1\xa1\x0a\xb3&2x\xfa(\x97N\x0c\
+\xb2\xe7\xb1>\xbe\xb0\xed\x11V\xac\xb8\xb2\xdb\xf8%\x05\
+\xb4\x062\x89\xcc\x06\xcf\xd9\x99\x0b\xbcz\xf8\x00]\xae\
+\xc23\xdf\xde\xc5G\xef\xe9\xbef`u\x01Zki\
+_\xd5\xcak\x13\xef0\xfc\xaf\xe3\x8c\xbc~\x84/n\
+\xe9\xe5k\xbbv\xb0\xaa\xad\xe5\x9a\xc3\x01\x98Z\xcf\xa8\
+\x07O\x0c\xb3\xffo\xc7\x88\xe7\xcf\xd3\xdf\xb7\x91\x87\x1e\
+X\xfa ,\x0a\x10 \xcb<I\xe2\xb0v\xf9\x9f\x18\
+\xd7\x05x=_7\xfcC\xf4\xff\x01;\x99\xc4\xf6\x95\
+\xaa\xb1\xc6\x00\x00\x00%tEXtdate:\
+create\x002023-03-0\
+8T17:27:26+00:00\
+\x9e\x98\xa5\x85\x00\x00\x00%tEXtdate\
+:modify\x002023-03-\
+08T17:27:26+00:0\
+0\xef\xc5\x1d9\x00\x00\x00(tEXtdat\
+e:timestamp\x002023\
+-03-09T06:18:41+\
+00:00=\x00\x9f\x01\x00\x00\x00\x00IEN\
+D\xaeB`\x82\
+\x00\x00\x07\xb3\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x08\x06\x00\x00\x00\x8c\xfe\xb8m\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x00\x06\
+bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\
+\x00\x09pHYs\x00\x00\x00`\x00\x00\x00`\x00\xf0\
+kB\xcf\x00\x00\x00\x07tIME\x07\xe7\x03\x09\x06\
+\x12)\xc3\xf6 \xcd\x00\x00\x06~IDATX\xc3\
+\xcd\xd8[S\x1b\xc9\x15\xc0\xf1\x7f\xf7\x8c4\xe2\x22\x18\
+tCW\x046\x86\xb5\x0dfqU\xd6\xb1\xf3\xb4\x95\
+\xdd\xa7x\xf7\x03$\xf9\x88\xa9\xe4!y\xd9\xca\xe3\xda\
+1\x8bm\xb0\x1c\x8ccs\xc7\xc6\x12\xba\x80@ 4\
+3\x9a\xe9<\x08yq*\x01\xb16\xc1\xa7\xaa\xd5z\
+P\xcd\xfc\xa6\xa7O\xf7i\x09\xa5\x94\xe23\x0e\xfdS\
+\x5c\xe4\xe43\x0a!.\x1f\xa8\x94\xc2u\x9b8\x8e\x83\
+m;\xd8\x8e\x8d\xe7\xba \x04>]\xc7\xe7\xf3c\x18\
+\x06~\xbf\xff\xff\x0ft\x1c\x9b\xc3\xc3C\xca\x95\x1d\xd6\
+7\xb7\xc8\x17J\x1c\x1c\x1c\xe0\xb9\x0eR\xd3\xe9\xe9\xee\
+\x22\x1a\x0d\x91J\x0c\x12\x09\x87\x09\x87#\x18\x86\xf1\x8b\
+\x81\xa2\xd39\xa8\x94\xe2\xf0\xf0\x80R\xa9L\xee\xc5\x12\
+\x1b[e\xc2\xe10\xd9\xa1\x14\x03f?>]\xc7\xb2\
+-\x8a\xa5\x0a\xabk\x1bTw+\x0c%\xc3\x5c\xbb\x9a\
+edx\x84P(tq@\xa5\x14\xd5j\x95\x8d7\
+o\x99\xcd-\x13\xec\x0f3=u\x93\x90\xd9\x87\x94\x1f\
+\xce9!\x04\xcd\xa6\xcbV\xbe\xc8\xcc\xecS\xec\xfa\x0e\
+7\xaf\xa5\x99\x9c\x9c$>\x18\xbf\x18`u\xaf\xca\xea\
+\xda\x06O\x166\xb92:\xc6\xd8\xd5a4M \x04\
+H!@\x80\x10\x80\x02\x05(O\xa1\x104,\x87'\
+s96W\x17\xf9bd\x90{w\xef\x12\x0a\x85\xcf\
+\x05\x94g\xfd\xa0\xd1h\xb0\xf5v\x8b\xe7\xaf\xb6\xc8^\
+\x19gx8\x8b\xab\x14\x9e\x02%Z2q\xdc#[\
+\xbd\x12\x02W)\xa4\xa61==Ez\xe4&\xaf\xd7\
+\xf2\xe4r9\x1c\xc7\xf9\xb4\xc0R\xa9\xc8\xd2z\x1e\x11\
+\x08\x93H%q=\xd5\x82I\x81\x94\x02\xa9\x09\xa4.\
+\xd0\xb4V\x93\xc7M\xb4\xb1H\xc6\xaf_\xc7\xe8K\xf0\
+n\xbbD\xa1\x90\xfft@\xcb\xb2(lo\xb3Y\xb2\
+\x88%R\xb4\xdf\xa5\x90\x12y\x0c\xd2t\x81\xae\x09t\
+\xfd\xf8\xfb\xfb&\xdfc\x03\x86\x9ft\xf6\x1a\xf5\xa6\x8f\
+\xbd\xfd=\x5c\xd7\xed\x18x\xea2S\xab\xd5(\x96\xab\
+\x1cz=H\x7f\x17J\x08\x84&\xf1\xfb5\x0c\xbf\xc4\
+\xa7\x81&A\x9exL\xa5\xc0S\xa0\xb9 5\x89.\
+],\x01\x91h\x84\xf5\xb5\x00\xb6\xdd\xa4^?$\x18\
+\xec\xfb\x14\xc0}v\xf6\x8f\x90F\x88\x03Ka\xb9\x10\
+\xc0\xe3\xd9\xfc<\x07\x07\xfb\x18>\x1d)\xa1\x95\xc7\xad\
+O\x85B)p=E\xb3\xe92q\xe3:\xfdf\x04\
+\xa1\xf9pD\x80\xf5\xcd\xb7\xc4\x07c\x9f\x06xX?\
+\xe4\xc8r\xf1w\x05\x10Rb\xb9`{\x1e\x0f\x1e>\
+\xa2X\xda\xa5\xdf\x1c\xe0C^+\x8b\x11\xd0t\x1cv\
+\xcb\xdb\xf4\xf5\x9b\x8c\xf5Eq\x94@\xfa\xbaX]_\
+\xe4\xfa\xd8U\x92\xc9\xd4\xc7\x03\x1d\xdb\xa1\xe9z\xe8\xba\
+\x8e\xaeI|\xba@\xd7\xa0\xaf\xbf\x8f\xae`\x94X\x22\
+M{\x19\xfc\x00\x88\xc0\xb2\x1al,/\xa2\xf9\xfd\xd8\
+\x9e\xa2\xe9\x81\x10\x92b\xb1H\xc3jt\x84;\x13(\
+\xa5\xc0sm@!\x04hR\x1004~w\xff[\
+t\xa9\x11\x08\x04\x10\x88\xf7\xb8\xe3\xa5\x10\x05\xb8\x9e\xcb\
+\xc1\x9dk\x04M\x93\x86\xdbb+\xaf\x89c[\x18\xfe\
+\xce\xb7\xbeS\x81\xc1`\x90n\xbf\xa0\xd6\xb4P\xaa%\
+\x90R2\x94N\xa0\xcb\xd6\x12 \x8fa'\xf7\x13\xaf\
+\xddb&G\x8e\xc2\xae6A)\xacz\x15Mx\x0c\
+\x0c\x0ct\x0c<u\x99\x09\x85\xc2\xa4\xe3a\x82\xbaE\
+\x8f\x0f|R\xa0\x94\xc2S\x0a\xe5\xfd<\x5c\xe2D\xe3\
+D\xaf<u\x5c\x8a)\x8e\x1a6{\xa5\x0d\x22\xe1\x81\
+s\xed&\xa7\x02{{\x83d\xd2)F\x06\x0d\xa4g\
+\xa3<\x0f\xa7\xd9\xca\xd2v\xb4G\xaf\xbd\x91\xfc\xe7\x88\
+*\x0fl[Q)n\xb3WX\xe2\xcb/\xa7\xcfU\
+\xdd\x9c\x0a\xd4u\x9dp8\x82\x9f:\xf9woxW\
+nP\xab{\xd8M\x85\xe2D\x91z\xf2U\x1f\xcb\xda\
+s\xd1v\x14\x95\xdd:\xeb/g\x08\xf5\x05\xf8\xeaW\
+w:\xc6\x9d\x09\x04\x88D\x22\xf84Aqm\x8e\xb5\
+\x95eJ\xbb6{\x07.\x8e\x0b\xde1\xb3M\xfd0\
+\x93\xc1\xb2\x15\xdb;\x16\xaf_\xccQ\xdax\xc6\xfd\xfb\
+\xdf\x9d\xbb\xec:\xb3`\x95R21q\x8b\xd7KK\
+\xcc=\xfd+\xaec!\xb8\x85\x90\xdd\x84\x83\x1a\x81\x13\
+W\x10\xb4\x92\xc3\x05\x0e,\xc5\x9bB\x9d\xdc\xd3Y\x16\
+g\xfe\xc6o\xbf\xfe\x9a;_\xfd\xfa\x5c88G\xc1\
+\xba\xbf\xbf\xcf\x9f\xff\xf2'~z\x9a#:|\x9b\x1b\
+\xb7\xefqe8E,\x14\xa0' \xf1\xc9\x9f_\xe9\
+\xee~\x83\x8d\xcdw,<y\xc8\xca\x8b\x19\xbe\xfd\xe6\
+\x1b\xbe\xbb\xff=\xba~\xfe\x13F\xc7@h\x15\x0f\x0f\
+\x1e\xfc\xc8\x0f\x7f\xff\x81\x9d\xfd\x06\xd1\xf4\x18\xa9\xec(\
+\x91\xd8 \xdd\x01\x03\xc7\xb6\xa8\xee\x94(\xbcY\xa1\xb8\
+\xb5B\x97\xa1\x91\xcd\x0es\xef\xeeo\x98\x9c\x98D\xb4\
+K\xb3\x8b\x02\xb6\xa3\x5c.3\xffl\x8e\xe7\xcfsl\
+o\x179\xb2,\xa0\x95T=\xdd]\xa4S)&'\
+n\xa1\x14\x18\x01\x83B!\x8fm\xdbL\xdc\x9c`|\
+\xfc\x8b\x8b\x07\xb6\xc3u]j\xb5\x1a\xf5z\x1d\xd7u\
+\xf1\xf9tzzz\xe9\xed\xedE\x08\xc1\xda\xfa\x1a\x9a\
+\xd4\xa8\xecTx\xf2d\x16!$\x7f\xf8\xfd\x1f\xe9\xea\
+\xea\xea\xf8\x1egf\xf1i\xa1i\x1a\xa6i\x92L&\
+\xc9d2\xc4\xe3\x09\x82\xc1\xe0\xf1\xb9\xa4\xc9\xabW\xaf\
+\xa8\xd7\xebd\xd2i\xb2\xd9a\xaa\xd5]\xe6\xe7\xe7\xce\
+u\x8f\x8f\x02\x9e\x16\xba\xae\x93IgXXX@J\
+\x8dLf\x88D\x22\xc9\xe3\xa7\x8f\xa9T*\x97\x0f\x04\
+\x18\x1f\x1f\xc70\x0c^/-1\x18\x1b$\x93\xc9\x80\
+R<\x9a\xf9\x07\x9d\xce\xac\x0b\x05\xea\xba\xce\xf4\xf44\
+k\xab\xab\xd4\x8f\xea\xa4Ri\xd2\xe9\x0c/\xff\xf5\x92\
+\xf5\x8d\xf5\xcb\x07\x02\xa4\xd3i\xe2\xf18\x8b\x8b\x8b\x98\
+\xfd&\xe9t\x9a`o\x90\x07\x0f\x7f\xec\xe8\x84w\xe1\
+@\x80\xe9\xe9i*\x95\x0a\xe5r\x99D\xa2\x95P\xf9\
+|\x9e\x85\x17\xff\xfc<\x80\xa6i2>6\xce\xe2\xcb\
+E\x0c\xc3 \x99L\x11\x8b\xc6x\xf4\xe8\x11\xb5\xda\xfe\
+\xe5\x03\x01n\xdc\xb8\x81\xf2\x14\x9b\x9b\x9b\xc4\xa2Q2\
+\x99\x0c\x8dF\x83\xd9\xc7\xb3\x9f\x070\x10\x08055\
+\xc5\xca\xf2\x0a\xae\xe7\x11\x8f\xc7I\xa5R\xe4r\xcf\xc8\
+\xe7\xdf]>\x10`dd\x04\xd34Y^^\xc64\
+\x07H&\x93\x18F\x80\x99\x9ffP\xca\xbb|\xa0\x94\
+\x92\xdb\xb7oS\xc8\x17\xa8\xd5j\xc4\xa21\x92\xc9$\
+\x95J\x99\xa3\xa3\xa3\xcb\x07\x02\xc4b1FGG\xd9\
+\xda\xda\xc2\xe7\xf7\xd3\xdd\xdd\xcd\xd0P\x16\xff\xff8\xe9\
+}T\xb1\xf0K\xc3\xb6m\xca\x952\x9e\xe7Q\xab\xd5\
+H%S\xf4\xf5\xfd\xf7\x7f\x1a.\x05\xd8\x0e\xcf\xf3\xce\
+\xac\x11/\x15\xd8I\xfc\x1b\xf8\xd3\xe2\x07\xbf\x88\x01N\
+\x00\x00\x00%tEXtdate:cre\
+ate\x002023-03-08T1\
+7:27:27+00:008\xef\xae\
+1\x00\x00\x00%tEXtdate:mo\
+dify\x002023-03-08T\
+17:27:27+00:00I\xb2\
+\x16\x8d\x00\x00\x00(tEXtdate:t\
+imestamp\x002023-03\
+-09T06:18:41+00:\
+00=\x00\x9f\x01\x00\x00\x00\x00IEND\xaeB\
+`\x82\
+\x00\x00\x06\x9c\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x08\x06\x00\x00\x00\x8c\xfe\xb8m\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x00\x06\
+bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\
+\x00\x09pHYs\x00\x00\x00`\x00\x00\x00`\x00\xf0\
+kB\xcf\x00\x00\x00\x07tIME\x07\xe7\x03\x09\x06\
+\x12)\xc3\xf6 \xcd\x00\x00\x05gIDATX\xc3\
+\xcd\x98\xdbR\xdbF\x1c\x87\xbf]I6v\x8c\x09\x81\
+`\x93\xd0\xa6!\x99\x98So;\x9d6\x9d\xf4\xb6\xcf\
+\xd1\x9b>`\x1f\xa0w\xbdKho\x80\x90\x03I\x98\
+6q0\x03\xc6\x08[\xd2\xee\xf6B\x07\xdb\xb2%\xdb\
+t\x9afgd\xaddi\xf7\xdb\xdf\xff\xb0\xbb\x12\xc6\
+\x18\xc3g\x5c\xec\xf4\x8dN\xa7\x83\xeb\xba\xff\x0bL\xb9\
+\x5c\xa6R\xa9d\x03j\xady\xfa\xf4)\x85B\x81R\
+\xa9\xf4\xc9\xc0\x84\x10\xb8\xae\x8b\xe7y<~\xfc\x18)\
+\xe5x@c\x0c\xbe\xef\xb3\xb5\xbdM\xb1PD\x1b\x8d\
+\x14\x02\x84@ @\x00\xc6D\xd7\x80\x10a\x07\xfd\x9e\
+\xc6^\x0f\xdd\x1b\x07(%\x97\x9d\x0e\xcf\x9e=#\xed\
+q#&\x16B\xa0\x94\xc2\xbd\xba\xa2\xdb\xbd\xa2\xd7\xf3\
+\x08\x19\x05\xc5b\x91R\xa9\x84\x88A\xd2\xe74d\x06\
+\xb0\x14\xe18c\x14)\x04Z\xeb\xa4\x9d\x5c\xc0\xb8A\
+iI\xf6\xf6\xf6x\xf5\xf2%\x95J\x85n\xb7\xcb\xd2\
+\xf22?>y\x82\x14\x22\xec+Rr\x148l%\
+:\x11c\x0a\x01\xda\xc0\xfbs(\xd8\xb0X\x06K\x82\
+A\x92U\xc6*\x18\x9e%\xbe\xe7\xf1\xa8\xd1`gg\
+\x87w\xef\xde\xb2\xf7\xfc\x88\xf7\x97\x0e`\xa1\x8cAi\
+\x816\xa0ttDu=PW\xda\x8c\xfc\xf7\xc7\xb1\
+a\xf7\xd8\xb0Y\x17|\xff\x00\xbe]\x07G\x88\xe9\x00\
+\xe3\x22#\xb3:\xb6M\xb1X\xc4q\x0a\x18\x04\x9e\x92\
+\x18$\x81\x86@\x83R&\xa9\x07\x11h\xa0\xa2k5\
+p/\xbaV\x1a\xda]8\xe9\x18\x8e\xcf\xe0}[\x10\
+h\x81\x93\xe1\xa4\xa3\x80Q\x10 \x04\x96e\xb1\xbf\x7f\
+\xc0\x87\x8f-:\x17\xe7\xccW*\xdc_\xf4\x91R\x0d\
+\x997\xf6\xb7\xecs\xdf\xf4\xda\xc0\x8b\xa6\xe1\x97'\x92\
+\xbb7\x05s\x0e\x80\xa4\xd3\x99\x12\xd0\x0c8\xf5\xe6\xd6\
+\x16\xf5;k\xfc\xed\x96yP\xeer\xabZF\x08\x19\
+=!\xa2\xe7\x13\x0f\x8b\xde\x15\x91\xf3\x8b\xa4A\x13\xc1\
+\xc6\x01\xfa\xa8&\x92\xbe\x8c\x01!\xb3c<\xd3\xc4\x00\
+\x0b\x0b\x0bT\xaa\x8b\xb8's\xac-y\x94\x1d\x831\
+&\xf4\xd3\x94RI\x04\xa6\x15L\xd7\xe9Go\xac\xaa\
+\x10\xd7\x00\x14B`L\x08\xe4\x07:\xcaO\x03p\x19\
+&\x1d\x01\x1d\x038\xae/f\x0d\x92\xc1\x14\xeb\xa9\xc8\
+\x94\x22J\x1e\x830S\x00\xe6)\x14\xf7\x95\xf5D\xb6\
+\x89E?\x8f\xf9j\xb0\xa3\x81\xe0\x18\xcc\x7f\x199q\
+\xacZS\xdc\xcb\x07\x8c:\x8f\x9d>\x04\x1c\xa3\xd4\x18\
+\xa8tg\x93\xd4\x9bT2g\x92X=\x22@\x13\xcd\
+\x04i\x90\x11%\xa7\x04\x9b\x16<\xdf\xc4Q\xce\xf1U\
+8q&SX\x0an\x12\xd8\xbf\x81\xb5'\xbf\x94V\
+pz\xb8i\xc0&\xad\x97s\xa3\xd8D\xed\xc7A2\
+-\xdc,*\x8e\xf3\xdb\xa9\x00\x13\x13'\x0a\x0e\x9b8\
++Z?I\x90$ZE\xd1\xd27\xb1 \xed\x83\xb3\
+\x80]G\xc5\x5c\x05\x89\x14\xf4\x828\xe1\x08LF\x07\
+\xff\x95\x8a\xd9y0\x91\xb1\xaf`2\x93LP\xe3:\
+*\xce\x048\xbc\x93\x10\xfd4\x13\xafX\xa6\x08\x8e<\
+\x15\xd3\x91{\xfd \x89\x0c\x1a\x07I\x18\xda\x93\xd5\x1a\
+W\x8f\x17\x1e\xf1\x91\x06TZ3.\xe3d/\xf9\x07\
+~}e\xc2 \x89\xc0\xb3\xde\xc9\xaak\x1d\xae\x86\xb4\
+\xd6(\xa5\xd0Z\xa3\xb5N\x9e\x93R\xe2\xf9\x01f\x8c\
+\x87OH3ap\xf8\x01#\xa3\x9b\xe4_\x83pJ\
+)\x94R\xf8\xbe\x9f\x1cA\x10$;9\xc7)\xd0\xee\
+\x5cb\xb4\x19\x19\xff\xe44\x03\xd1r\x8b\x81\xc8\x9e\x0e\
+4\x86\xf3}\x9f^\xaf\x87\xeb\xba\x5c\xba.\xdd\xab.\
+\x9e\xe7\xa1\x94\xc2v\x1c\x0as%\xde\xbc9b\xfd\xde\
+\x97HiM\xa9`\xda\xc4\xa6\xef\x82\xd3Dg\x0c\xe7\
+y\x1e\xddn\x97v\xbb\xcd\xd9\xd9\x19\xe7\xed\x0b\x5c\xd7\
+\xc5hMe\xbe\xc2|\xc1\xe1\xf8\xed\x11_\xdcY\xa5\
+\xd1h\xcc`b\xfa@\x89\x82\x13\xa0\xe2{\xb1\xbf\x05\
+A@\xaf\xd7\xa3\xddn\xf3\xa1\xd9\xa4\xd5jaY\x16\
+\xd5j\x95\x95\x95\xdb\xd8\x96\xe4\xf5\xd1k\xd6\xd6\xee\xb2\
+\xbd\xb5=\xf4\xc9c2\xa0\x08\xf1\x84\x08\xb7\x8b\xb9\x03\
+I\x81\xc6\x80\xbe\xef\xe3\xba.gg\xe7\x9c\x9c\xb4X\
+]\xad\xb3\xbd\xb5\x85\x10\x82\xd3\xd3\x16\xfb\x07\xfb\xd4k\
+\xablnn\x8e\x85\x03\xb2\xb7\xf4\x82p\x0f\xfb\xa1\x1d\
+\x026\xdb\x06Oen\x1d\x86@\x8d1\x89y;\x9d\
+K\xda\xed6\xae\xeb\xb2xs\x11\xdb\xb6i\xb5N\xd8\
+?\xd8\xa7\xb6R\xcb\x85\xcb\x05\x84\xf0\xb3\xc4o\x07\x8a\
+\xdf_)~\xfd3\x88\x229\x7f&\x88\xf3\x5c\x08\xe8\
+suuE\xe7\xf222\xed<\x1f?69x~\
+@m\xa5\xce\xc6F>\x5c\xae\x89\x0d`K\xc1\xc3\x15\
+\xc9E\xd7poI2\xe7\x84\x1b\xefI\xa5\xef\x83>\
+=\xaf\x87\xd7\xebq\xfb\xf62\xdd^\x97\x17\x87\x87\xd4\
+ku\x1a\x8d\x8d\x89p\xb9\x80\x82\xf0;\xca\xce\x1d\xc9\
+w\x0f,\xbe\xb9?\x1c\xfeY\xd3\xd3\xe0l\xa1\x94F\
+\x05\x0a\xa7P`\xa1Z\xe5\xc5\xe1!\xb5Z\x9dF\xa3\
+1\x15\x5c\xae\x89\x0d\xa0\x8d\xe1\xd6\x0d\xf8\xf9\x07\x87\xaf\
+\x96\x04\x03\xc9?\xb3\x0co\x07@Z\x16\xd5\x9b\x8b4\
+\x9b\xcd\x99\xe1\xc6*h\x8cAJ\x89c\xdb\xc9W\x84\
+\x9f\xbe\x06\xdb\x1a\xde|\xe7\xadf\xa4e!-\x0b\xbb\
+P\xc4.\xdd\xa0\xf5\xd71\xeb\xf7\xbe\x9c\x19n\x040\
+\xcea\xbb\xbb\xbb\x94J\xa5\x10\x10\x86\xa7\x95h\x10y\
+&\xd6\xc6\xe0+\x8d\xe7\x07t:\x1d\x1a\x0f\xd7\xd9\xd8\
+\x98\xce\xe7F\x06\x9c\xfe\xca\x7fzz\xca\xc5\xc5\xc5\xcc\
+\x0de\x95R\xa9\xc4\xf2\xf2\xf2\xb5\xe0\xc6\x02~n\xe5\
+\x1f\x17\xf7\x97\x9b\xb7\xd04\x1a\x00\x00\x00%tEX\
+tdate:create\x00202\
+3-03-08T17:27:26\
++00:00\x9e\x98\xa5\x85\x00\x00\x00%tE\
+Xtdate:modify\x0020\
+23-03-08T17:27:2\
+6+00:00\xef\xc5\x1d9\x00\x00\x00(t\
+EXtdate:timestam\
+p\x002023-03-09T06:\
+18:41+00:00=\x00\x9f\x01\x00\
+\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x03\x89\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x14\x00\x00\x00\x14\x08\x03\x00\x00\x00\xbaW\xed?\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x01G\
+PLTE\xff\xff\xff\xfe\xfe\xfe\xf2\xf2\xf2\xef\xef\xef\
+\xf8\xf8\xf8\xd5\xd5\xd5\xe2\xe2\xe2\xe3\xe3\xe3\xe3\xe4\xe4\xe4\
+\xe4\xe4\xe5\xe5\xe5\xe6\xe5\xe5\xe6\xe6\xe5\xd6\xd6\xd6\xf7\xf7\
+\xf7\xd9\xd9\xd9\xea\xeb\xec\xe2\xe7\xec\xdd\xe4\xed\xe9\xec\xee\
+\xec\xee\xf0\xea\xec\xed\xcb\xcc\xcc\xc6\xc6\xc6\xe0\xe2\xe2\xf1\
+\xf3\xf4\xf0\xf2\xf3\xe8\xed\xf4\xe5\xeb\xf3\xf2\xf3\xf5\xda\xda\
+\xda\xe0\xe5\xed\x93\xb9\xee\x82\xb0\xf1\xb4\xce\xf1\xbe\xd4\xf3\
+\xc1\xd3\xec\xb8\xbc\xc1\xc8\xc8\xc8\xbf\xc9\xd6\xce\xdf\xf7\xc3\
+\xd8\xf5\xa1\xc4\xf4{\xad\xf3\xcb\xdc\xf5\xdb\xdb\xda\xec\xee\
+\xee\xe0\xe6\xee\xd9\xe3\xf0\xe9\xed\xf1\xec\xef\xf2\xea\xec\xef\
+\xc9\xc9\xca\xc4\xc5\xc5\xe0\xe1\xe3\xf2\xf5\xf7\xf1\xf3\xf6\xe7\
+\xee\xf7\xe1\xea\xf6\xf3\xf5\xf7\xdb\xdb\xdb\xef\xf0\xef\xf1\xf1\
+\xf1\xf3\xf3\xf3\xf4\xf5\xf5\xf5\xf5\xf5\xf6\xf6\xf6\xf9\xf9\xf9\
+\xfa\xfa\xf9\xf0\xf1\xf1\xf3\xf4\xf4\xfa\xfa\xfa\xfb\xfb\xfb\xf1\
+\xf2\xf2\xf6\xf7\xf7\xfc\xfc\xfc\xf9\xfa\xfa\xdc\xdc\xdc\xf4\xf4\
+\xf4\xfd\xfd\xfd\xda\xdb\xdb\xfe\xff\xff\xd8\xd9\xd9\xf7\xf8\xf8\
+\xee\xee\xee\xde\xde\xdf\xd8\xd9\xda\xcf\xd1\xd1\xea\xea\xea\xcc\
+\xcd\xcd\xc3\xc4\xc4\xc9\xca\xca\xed\xee\xee\xf2\xf3\xf3\xd0\xd0\
+\xd1\xc5\xc6\xc6\xe9\xe9\xe9\xd4\xd5\xd4\xf8\xf9\xf9\xbf\xc0\xc0\
+\xcb\xcb\xcc\xd7\xd7\xd6\xe8\xe8\xe8\xc1\xc2\xc3\xcb\xcb\xcb\xf0\
+\xf0\xf0\xd3\xd3\xd3\xd5\xd7\xd8\xc8\xca\xcc\xe5Kfq\x00\
+\x00\x00\x01bKGD\x00\x88\x05\x1dH\x00\x00\x00\x09\
+pHYs\x00\x00\x00`\x00\x00\x00`\x00\xf0kB\
+\xcf\x00\x00\x00\x07tIME\x07\xe7\x03\x09\x06\x142\
+\x1f\xc9N\xa7\x00\x00\x01\x06IDAT\x18\xd3U\xd0\
+WS\x021\x10\xc0\xf1\xcd]$\x1eJ\xec]Q\xb0\
+\xf7\x86\x1d\x85\xbb\x08wr\xc0YP\xb1c\xaf\xdf\xff\
+\xd9$\x1b\x1f\xfc?\xfefwvf\x01\x88e\xff\xcb\
+\x22\x00@\x9bb1\xc6\x9a\x9d\xb8\xaa\xa55\x9e\xa0\x12\
+y[{GgWwOo_\xff\xc0\xe0\xd0\xf0H\
+\x92k\x1c\x1dK\xa5\xc7'&\xa7\xa6gf\xe7\xe6\x17\
+\x16\x11\x97\x96WV\xd7\xd63\x1b\x9b[\xdb;\xbb{\
+YD{\xff\xc0\xca\xe5]\x8fS*\x0e\x05b\xb2P\
+\xb0\x8a\x8a\x84/\x0b\x0c\x1eI+)\x0ad\xa1\xc1\x5c\
+\xd1\xe5\xb4,)TU\x10\xab\xf9\x12\xd5\x14\xa9\x10\x8f\
+]O\xeej#2\xc4\xac\xc7\xd1\x08\x01BN\x0cr\
+j\x8c\x84\xc2\xe3\xa7\x88gjP\x99\xa8\x9d'..\
+}\x8dT\x04\x1a\xfd\xfa\xd5u\xe6\xe6\x16\x10\xcb\x81:\
+\x12\xdd\xdd?4\x1em@|\xd2\xdb\x10\xd6\x9f_^\
+\xd1\x80W\xd0 z{\xff\xf8D\x03\xfa\xc5\x98\xe3\xc8\
+\x1f\xb3\xef\x1f3\x07@j\x8d\xbf\xaa\x86~\x01v\xa9\
+<\x5c=\x11\xff\x81\x00\x00\x00%tEXtda\
+te:create\x002023-0\
+3-08T17:27:26+00\
+:00\x9e\x98\xa5\x85\x00\x00\x00%tEXtd\
+ate:modify\x002023-\
+03-08T17:27:26+0\
+0:00\xef\xc5\x1d9\x00\x00\x00(tEXt\
+date:timestamp\x002\
+023-03-09T06:20:\
+50+00:00\xdd\xe8\xb2\xde\x00\x00\x00\x00\
+IEND\xaeB`\x82\
+\x00\x00\x03\xf2\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x14\x00\x00\x00\x14\x08\x03\x00\x00\x00\xbaW\xed?\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x01\xe0\
+PLTE\xff\xff\xff\xf9\xfa\xfc\xde\xe5\xf1\xed\xf1\xf7\
+\xfd\xfd\xfe\xe9\xee\xf6\x97\xb0\xd4\xa0\xbe\xdd\xab\xc3\xde\xea\
+\xee\xf5\xcd\xd8\xea\x83\xa2\xcc\x9a\xbb\xda\xbb\xda\xec\x93\xb3\
+\xd2\xe3\xe9\xf2\xf5\xf8\xfb\xab\xbe\xdb}\x9e\xc7\x9f\xbf\xd8\
+\xac\xcb\xdf\xaa\xc9\xde\x8a\xa9\xc8\xe4\xe9\xf1\xe0\xe7\xf2\x8b\
+\xa7\xcc\x7f\xa0\xc5\x9c\xba\xd2\x9e\xbd\xd4\x9e\xbc\xd4\x83\xa1\
+\xc1\xe3\xe9\xf0\xfd\xfe\xfe\xc0\xcf\xe4u\x95\xbf\x80\xa0\xc0\
+\x92\xaf\xc9\x93\xb1\xcb\x94\xb3\xcd\x95\xb4\xce\x95\xb4\xcf}\
+\x9b\xbd\xe3\xe8\xf0\xef\xf3\xf9\x9a\xb1\xd1f\x88\xb1{\x99\
+\xb7\x84\xa2\xbe\x87\xa6\xc3\x8b\xaa\xc8\x8e\xad\xcb\x8f\xaf\xcd\
+\x8f\xaf\xcey\x97\xba\xe3\xe8\xef\xd5\xdf\xecu\x92\xba[\
+|\xa2m\x8b\xa9u\x93\xb2{\x9a\xba\x81\xa0\xc1\x86\xa6\
+\xc8\x8a\xaa\xcc\x8c\xad\xcf\x8c\xad\xd0x\x96\xba\xe3\xe7\xee\
+\xc5\xd1\xe4Tu\xa2Qo\x92[x\x98c\x81\xa3l\
+\x8b\xadt\x94\xb8|\x9c\xc2\x83\xa4\xca\x88\xa9\xcf\x8b\xac\
+\xd2\x8c\xad\xd4y\x97\xbc\xd0\xd9\xe8]z\xa26U}\
+A_\x85Sr\x99a\x81\xa8m\x8e\xb7x\x9a\xc3\x82\
+\xa3\xcc\x8a\xab\xd3\x8f\xb0\xd8\x91\xb2\xda}\x9a\xbf\xe3\xe7\
+\xed\xe4\xe9\xf0x\x8f\xae,Lz0R\x83Df\x98\
+Vy\xacf\x8a\xbdu\x98\xca\x82\xa4\xd4\x8b\xad\xdc\x8e\
+\xb0\xe0z\x98\xc0\xe3\xe7\xec\xf9\xfa\xfb\xaa\xb8\xcbIh\
+\x92>c\x96Pv\xac`\x86\xbcp\x95\xca\x7f\xa3\xd7\
+\x8e\xb1\xe3\x94\xb7\xea|\x9c\xc4\xe3\xe6\xeb\xd2\xd9\xe2l\
+\x86\xa5Ls\xa4a\x87\xbdq\x95\xca\x80\xa4\xd7\x8e\xb1\
+\xe4\x95\xb8\xea{\x9d\xc4\xe2\xe6\xeb\xee\xf0\xf3\x93\xa5\xb9\
+U{\xa5g\x8f\xc3y\x9d\xd2\x83\xa6\xda\x86\xaa\xdet\
+\x99\xbf\xe2\xe6\xea\xfd\xfd\xfd\xbc\xc5\xd0b\x83\xa3`\x8c\
+\xbcu\x9a\xcfv\x9b\xd0k\x93\xb8\xdf\xe3\xe7{\x94\xaa\
+R\x7f\xa9c\x8d\xc2a\x8c\xb2\xe2\xe6\xe9\xf7\xf7\xf8\xa2\
+\xb0\xbcQ{\x9b`\x8f\xac\xe6\xea\xec\xda\xdf\xe3\xcf\xdc\
+\xe2\xfb\xfc\xfcO\xd6>\xde\x00\x00\x00\x01bKGD\
+\x00\x88\x05\x1dH\x00\x00\x00\x09pHYs\x00\x00\x00\
+`\x00\x00\x00`\x00\xf0kB\xcf\x00\x00\x00\x07tI\
+ME\x07\xe7\x03\x09\x06\x142\x1f\xc9N\xa7\x00\x00\x00\
+\xd6IDAT\x18\xd3c` \x04\x18\x99\x98Y\xd0\
+\xc5X\xd9\xd898\xd1\xc4\xb8\xb8yx\xf9\xf8Q\x84\
+\x04\x04\x85\x84ED\xc5\xc4\x91\xc5$$\xa5\xa4ed\
+e\xe4\xe4\x11B\x0a\x8aJ\xca*\xaaj\xea\x1a\x9aZ\
+p1m\x1d]=}\x03C#c\x13S3\x98\x98\
+\xb9\x85\xa5\x95\xb5\x8d\xad\x9d\xbd\x83\xa3\x933T\xcc\xc5\
+\xd5\xcd\xdd\xc3\xd3\xcb\xdb\xc7\xd7\xcf?\x00&\x18\x18\x14\
+\x1c\x12\x1a\x16\x1e\x11\x19\x15\x1d\x13\x1b\x07\xd3\x1e\x9f\x90\
+\x98\x94\x9c\x92\x9a\x96\x9e\x91\x99\x95\x0d\xb7('7/\
+\xbf\xa0\xb0\xa8\xb8\xa4\xb4\xac\x1c\xc9\x99\x15\x95U\xd55\
+\xb5u\xf5\x0d\x8d\xc8\x8eojnimk\xef\xe8\xec\
+B\xf1fwOo_\xff\x84\x89\xa8\x82\x0c\x0c\x93&\
+O\x99:m:z\xd0\xcd\x989k\xf6\x1c\xccP\x9e\
+;o>\xce\x18\x00\x00\xa7\xd82\x9a\xd1%ng\x00\
+\x00\x00%tEXtdate:crea\
+te\x002023-03-08T17\
+:27:26+00:00\x9e\x98\xa5\x85\
+\x00\x00\x00%tEXtdate:mod\
+ify\x002023-03-08T1\
+7:27:26+00:00\xef\xc5\x1d\
+9\x00\x00\x00(tEXtdate:ti\
+mestamp\x002023-03-\
+09T06:20:50+00:0\
+0\xdd\xe8\xb2\xde\x00\x00\x00\x00IEND\xaeB`\
+\x82\
+\x00\x00\x08\x19\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
+\x00\x00\x00\x04gAMA\x00\x00\xd6\xd8\xd4OX2\
+\x00\x00\x00\x19tEXtSoftware\
+\x00Adobe ImageRead\
+yq\xc9e<\x00\x00\x07\xabIDATX\xc3\xad\
+W[P\x93g\x1a\xf6\xca\xce\xec\xcc\xf6b/\xbc\xd9\
+\xe9\xce\xecn\xbd\xda\xd9\x9b\xb5\xce\xba;{\xb0\xad\xcc\
+z\xb1\xce\xce:\xb3vTpu\xdb\xe2\x81\xd6\xb6T\
+\x04\xbb\xa5 m\xc1\x82\x06\x08\x07QB\x80\x80\x80\x02\
+!\x81\x10\x92@H\x10s$!gr\x80\x04B \
+\x9c\x09G\xb5Tx\xf6\xfb~\x13\x160X\x8b}g\
+\x9e\xf9/\x92\xfc\xcf\xfb>\xcf\xfb\xbe\xdf\x97]\x00v\
+\xfd\x98 \xf1\x0b\x82\x14\x02\x03\xc1u\x82\x03\xcf\xfd\xfe\
+\x8fH\xbc\x9b \xe1W\xaf\xef\xb5*\x8c\xd6e\xdb\x02\
+`\x19\x1e[\x09'\xf13\xfa\x19\x81\x22\xfc\xdc>v\
+H~\x8a\xa0\xb9\xb6Y\x1c2\xcf\xadB9\xfe\x1dD\
+\xf6Q\xd8\xc7\xe6\xe8\x87\x86={\xf6XSR\xae,\
+\xca::\x10N\xe2\xe5I\xc3\xc41\x04\xb7>I\xf9\
+,`\x9b]YSM\x03M\xb6\x114\xeb\xfb 1\
+y`\x19\x9d\xc5\xbb\xef\xbe?\xc5\xab\xbe\x83\xf1\x89)\
+LO\xcf\xae\x92\xef\xd7\xbct\x02\x11\x9f\x0f\xbe\x1d\xe3\
+\xb2\x04CO\xb43@\x8b{\x06\xcd=.4\xeb\xec\
+\xa8W\xf6 \x87S\x852^5C\xbc\xb0\xf4\x90\x81\
+\xc1`\x5c&\xbfK|\xe1\x04H\x1c$8A\xfd\xdd\
+\xeas'\xf1\xb9'\x04H\x87\x97\xc1\xd7\xbb \x22U\
+7\xdc7\xa2\xb8N\x88,V>\xccV\xdb:q\x04\
+,\x16k,\xfc\xce\xe7'\x10\x916\x93\x95?F}\
+\xa5\xfe\x12\xc4o\xf4Y1\xb6\x02~\xef Z{\x9c\
+\xe0?0\xa1L(CF\x0e\x1b\xb2\x0e\xf9&\xd2\xf9\
+\xc5e\xcc-,!4\xbf\x88\xbd{\xf7Z\xc9;~\
+\xbam\x02$~C\x90F=5\x13iu\xb3\x80\xd2\
+?\x0f\xcb\xc4\xe2\x9aP\xa1Z\xb4l\xf1Y\xa0\xb6\xa0\
+\xa6]\x8d/\xb2sq\xb7\x9e\xff\x0c1%\x9d\x09\xcd\
+cbj\x06\x83C\x81'\xe4\xdd\xbc-\xd3\xb0;\x92\
+\x033&\xd4S\xb5\xd3\xfbXO\x88\xc5\x03!\x88,\
+CP\xbaF\xd0\xed\x09B\xe5\x9bB\x9bs\xfc\xa9\xcf\
+Z\x1b\xee*t\xc8\xbc\xc9E\x09\xa7l\x93\xcf\x9b\x88\
+'\xa7\x11\x18\x1d\xc3\x80o\x08\xa2\xd6\xd6%\xc2Q\xdb\
+(\x12\x87\xc6\x1f\xaf\x82/b\x94M\x89$\x90\x22\xea\
+R-\x9aB\xab\xe8\x18y\x04\xa1\xc5\xcf\x10St\xf6\
+\x0d\xa3\xd3\xe1\x87\xd4<\x80\x16\xbd\x03\x0d]\x06\x14\xd5\
+\x0a\x90\x91\x95\x0d/y\xf1\xc6\xaa\xa9\xd4\xb3s\x0bL\
+\xc5\x94\xd8\xdd\xef\x85\xc9b\x05\xb7\xbc\x12\xa5\xe5\x95K\
+\x13\xf3\xcb\xab#\x0f\x017\xd9\x11\xe6\xd9\x15\x84\x97\x15\
+\x13\x06\xcb<\xd0h\xf2\xa3\xdd\xee_'\x96;\x86 \
+\xb3x\xd7}\xe6\x08\xa4\xf8<3\x1b*\x8d6\xaa\xdc\
+S3!\x8c\x8e\x8d3\x15\xd3&\xe47\x09\xf1\xc1\xc5\
+\x8fQs\xaf\x01\xbee`\xfc\x11\xa0#\x13#\xf2\xce\
+\xa1\xbe]\xb9\xb8Q\x01\x83\x81ttM\xa7\x1e\x0ag\
+\x80\xa9\xb8\xdd\xea\x83\xd8\xe8B\x93\xca\xcc\xf8|\xe5\xcb\
+,\x88\xda$Q\x89\xa7g\xe7\x18\x1b\x86\x86G`w\
+8I\x82:$|\xf8!\xae\xb3\x0b\xe1\x99\x5c\x80o\
+\x09\xd0\x90\xde\xe1\x0f,\x81\xab\x1f\xc4}\xef\x04\xdd\x07\
+\x1da\xeb\xff\x9f\xc0\x1d\xb9\x16\x1d\xf6!H\xcc\xfdO\
+}\xee\xd4\x22\x9dU\x84\xaa\x9a\xbaM>G\xe4\x8e\xf8\
+<<\x12\x84\xd3\xdd\x0f\xbd\xc1\x88\xc2\xe2b\x9c~/\
+\x1e=\x03\x01\xf4/\x02\x83\x84\xbc\xc5\xff-\xee:C\
+(Q\x91\xf7\xf6\x05\xf1N\xdc\xbf}\x843i\xe3 \
+\x18\xf43\xab\xe0\xc9Th58\xd1\xd8\xdd\x0b\x9eX\
+\x89\xac\x5c\xf63>G\xaa\x9e\x9c\x9ee\xe4\xee\xf7\x0e\
+\xa2\xd7lAC\x03\x1f'b\xe3 \xe9\xd6\xc0E\xcf\
+\x01R\x90$\xb8\x86\xb2\x9e\x00n\xb4\xdbP\xd1\x1bD\
+\x85\xce\x8bJ~\x0bm\xbe\x9b['\xd1\xa0\x99\xf8\x16\
+e\x22\x05\xee)\xf4(\x13\xc8\x90x5\x0b\x1a\xad>\
+\xaa\xdcc\x13\x93\xf0\x0d\x0d\xc3f\xef\x83\xb4]\x8e\xc4\
+K\x97\x90\xc3\xca\xc3\xd4c\xc0NzI1N\xfa\x89\
+\x94\x7f[;\x84|\x85\x13%j\x1fJ\xd5\x03\xe8\xf2\
+0\xa3(\x22\xf8\xf93\x09t\x8f.\xa1\xa8\xbe\x15\xa5\
+|\x09\xb2J*\xf0\xcf\xe3qQ\xe5\xf6\x07F\xd1\xe7\
+\xf2@\xab7 \xfdj\x06\x92\xbfH\x83\xcd7\x02'\
+\xa9\xda@\x1aL\xe0{\x88R\x9d\x1fE\xdd\xfd\x0cq\
+A\x97\x1b\xc5\xdd\x1e\x88\x9cA\xfc\xf9\xcd\xb7]\x84\xeb\
+l\xb4C\xd0(\xf7N#\xa7\xfc\x1e\xb2K\xab\xf1Q\
+\xeaWH\xfeo\xea\xfaXQ\xb9G\x82\xe3\xf0\x0c\xf8\
+`4\x99Q\xc9\xab\xc2\xfbg\xcfA\xfe@\x03?\xe9\
+n\xb2\x8d\x19\xb9oi\x06\x19\xd2\x9b*/r\xe5\x0e\
+\xe4u\xf6\xa1\xf0\xbe\x1b\x1c\x95\x1b\xf9\x9c\xca)\xc2S\
+\xb8\xdd)\xdc+v\x04\x90Q\xc8\xc5\x95ky8\x11\
+\x9f\x80\x9b\xb7n3c\x15\x91\xdbjs@\x22m\xc7\
+\x85\x84\x0fPt\xbb\x0c\xf3+\x80\x9f4X\xf7$ \
+\x1c|\x84J\xd3\x188\xfaa\x86\x9cV\xfdU\xb3\x1e\
+\xac\x0e;\xb8:\x1f\xd9!\x1ez/\xe0\x13\xbc\xba]\
+\x02&\xbe\xc1\x83\x94o\xd88\x9f\x9c\x8a\x03\x7f=\x04\
+c\xaf\x99\xe9n*\xb7F\xd7\x83\xa4\xcb\xc9H\xff:\
+\x8b\x8c\xd5<S\xb5q\xf6\xa9\xdc5\xf6i\x5c\x97Y\
+\x19\xd9\xbfn!\xa7\xa0\xd4\x82t\xbe\x1aW\x9b4`\
+\xc9\xcc\x10\xbb\x82\xf8\xe5\xaf_\xa7g\xc0;\xe1u\x1f\
+5\xcc5\xddf|\x94\x96\x85\xb8s\x17\xf1\x97C1\
+L\xd5t\x99\xf0\xaa\xaaq\xfa\xf4\x19h\xcc\x0e\x8c\x92\
+-6\x14\x1e\xabZ\xc7\x0cx\xe6qp\x0d#L\xa3\
+e\x8a\x0c\x8c\xec\xb4\xfa\x9c\xb6^\x94t9\xd0f\xf7\
+\xaf\x1e=\x11KG.o\xc3y\x135,\x5c\x99\x1a\
+\xf1\x97>\xc7\xd1\xd83\xf881\x09\x86^\x13\x1a\x9b\
+\x04\xf8\xdd\x1b\xfbQO\xd4\xf1\x90\x99\xee\x9a\x00\xaa\xad\
+\x93`+]\x0c9\xf5\xbc\xf0\xbeg\xbd\xea\xcc\x16=\
+JU\x1e\x08m\x01\x94\xd4\xf1C\xe1eS@\xf0\xca\
+\xf7%`+nj\xc7\xa9\x84D\xc4\x1c9\x8a\xdc|\
+6ZZ\xc58\x14\x13\x83/95\xc8\x14j\x98\xe6\
+\xa2\xd5\xd2'\xf5\x9azL\x13\xa1Id\xb7\x99\x90\xdb\
+nF\xb9\xda\x8d\x06\xa5v9,9=\xf9N\x13\xec\
+\xd9r\xd4G\x0d;\xabF\x88c\xff9\x8f\xdf\xee\xfb\
+=\x1a\xf9\x02\x9c\xbf\x90\x80\x93\xf1\x17p\xa3\xad\x07\x19\
+\xc4OJ\x14\xe9n\xbaX\xa8\xef,\xfa\x94\x98P(\
+\xb7@\xe9\x0e<\xf9W\xec)*w-\xc1g\x04\xfb\
+\xb6\xb9\xe4D\x8d\xbe\xcc\xb2Z\xfc\xe3\xe4\x19\x1c<\xf4\
+7\xb0r\xf3\xb0\xef\xc0\x1fP \xd1!\x89'e*\
+\xa6K\x85>\xbf!\xd5F\xe4.\x90[!\xb0\x0c\xae\
+\xe5\xdc\xe2\xd2\x11\x13\x13\xe4\x87o<\xaf<\xe7\x96\x15\
+5\x9ciE\xe5\xf8\xfb\xb1X\x1c?\x19\x877\xf6\xef\
+\xc7\x8d:\x11\x92\xab\xa4\x0c!\xedp\xea5U!\x8b\
+4[\xc9\x037*4n\xd4I:\x17\xc3rs\x08\
+\x8em\x95\xfb\x87$\xe0Jesp\xe4\xf8)\x1c>\
+|\x98\x8cc.2\x05*\x5c\x22\xd5\xd3]~M\xdc\
+\x0b6\xe9tv\xa7\x1dw\x8c\xe4\x88\xb6\xf9\x9e\x84\xb7\
+\x1a\x95\xfb\x22\xbdI\xfd\x80\x0bm\xf4\x042JxL\
+\x0f\x9cKI\xc3\xb5\xa6.|\xc2me6Y\xf1\x83\
+\x01\x5c\x97\x9a\xc1Q{ \xf3\x04\xd7\xce%&\x056\
+\xc8\xfd\xc7\x9d\xc8\x1d\xd5\x82\xdc\x1a\x01\xce^NE\x81\
+X\x85x\xf6]\x5c\xa9U\x90\xaa\xfb\xc0\x96\xdbP\xad\
+u\xe3\xaeTA/\x10\xca\x0dr\xbf\xba\xd3j\xa3\x05\
+\xb7\xa2Q\xf8\x1d\xafC\x8dO\xb9-\x88\xcb\xe6\xe1\x9a\
+H\x8f\xaa\x1e/\x9a5\xe6\xc7\x7fz\xf3-Wx\xac\
+\xa8\xdc\xaf\xbd\xac\xdc\xd1\xe2\x08\xdd\x05\x5cu\x1f\xde\xcb\
+\xafE\xb9v\x002g`\xf5\xc2\xa7\x97\xa9\xdc\xf7\x08\
+\xd2\xa9\xdc;\xf8\x03\xf3\xc2\xf1\x13\x82\xca\x1c\xee\x9dP\
+\x0b9\x94\xb8\x0d\xc2\xc8\x16\xa3\x17\x87\xc3/\x22\xf7\x0e\
+\xff\xdam\x8a\xdda\x99\xd5\x1b\xb6\xd8k\xbb^2\xbe\
+/\x89\xff\x01f\xb9_\xfc\x11\x80=\xcf\x00\x00\x00\x00\
+IEND\xaeB`\x82\
+\x00\x00\x09\x08\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x08\x06\x00\x00\x00\x8c\xfe\xb8m\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x00\x06\
+bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\
+\x00\x09pHYs\x00\x00\x00`\x00\x00\x00`\x00\xf0\
+kB\xcf\x00\x00\x00\x07tIME\x07\xe7\x03\x09\x06\
+\x12)\xc3\xf6 \xcd\x00\x00\x07\xd3IDATX\xc3\
+\xbd\x99Ol\x1cW\x1d\xc7?\xef\xcd\xec\xec\x1f\xaf\xbd\
+v\x9c\xc4n\x12\xb7n\x1dg\xbdN\x9c\x16\xb7\xa5!\
+9\x00\x95(\xff\x0e\x15\x08h/\x15E\x02\x89\xaa\x1c\
+\xe1\xc0\x01!\x0e\x5cz\xe2\xc8\x81\x03\xe2R\xa9\xaa\x80\
+\x22\x04\xad\x90\xf8s)T\xfd\x13\xb5\xa9\xd2\xd6N\xeb\
+\x06\x928\x7f\xbc\xde\xf5\xfe\xf1xf\xde\x1f\x0e\xeb]\
+\xef\x8ew\xecMD\xf9I\xa3\x99y\xde}\xf3\x99\xef\
+\xef\xfb{\xef\xed\xb3\x08\x82\xc0\xd6j5\xb4\xd6\xfc\xbf\
+\xc2u]FGGq\x1cg\xff\xcf\xd6j5.^\
+\xbcH&\x93AJ\xf9\x89\xc3i\xad\x89\xa2\x88\xc5\xc5\
+Er\xb9\xdc\xfe\x80Zk2\x99\x0c\xf3\xf3\xf3\x18c\
+A\x80h\xffU\xb4\xae\x12\xef\x93\xda\x12B\x08A\xa4\
+\x14\xef^\xb8\x801f0\xb5\x01\xa4\x94\x18k\x09\xa3\
+\xb0\xf5 !\x10\xed\x07\x0b\xb1\xd3\x16;w\xc0\xf6\x00\
+\xefi\xb2\x16\xb9\xdd\xb7\x10\x83\xbc\xd26`\xf7\x1b~\
+\xa2\x80\x80\xb5\x960\x0ci4\x1a\xb0}\xdf/\xa4\x94\
+\xa4\xd3\xe9\x1d@\xb1\x0d\xd3\x0f\xf4\x7f\x0d\xb8\xba\xba\x8a\
+R*\xd1\x83\xd6Z\x8c1\x94J\xa5.\x05\x93\xa0\x92\
+\x00\xbb^\xa8\xbb\xad\xa3\x80\x90\x08!0\xd6b\xb1\x1d\
+@)%\x93\x93\x93\xcc\xcd\xcd\x91\xcf\xe7\xb1\x09\x80\xef\
+]\xbc\x88R\xaaWA\xba\xfc!\x92\xa0cJ\xf7\x03\
+\x94B\xf2\xd1\xfa\x87\x5c\xae\xac\xf0\xe0\xb1\x87)dF\
+1v\xa7(\x84\x10\x08)w\xfa\x89\xbf\x9c\xe3t\x86\
+\xa0^\x05\xf7Q/\x0e\x96\x08(\x1d\xfeu\xf9U^\
+\xfb\xf7\xab\x9c\xbf\xf2:_\x9d\x7f\x9c\xb9\x89\x93=\xa9\
+\x17}\xbe\xd7/:\x03_\x1b\xa0s\x8e_\xdf\xc6!\
+\x85@\x19E\xa4\x03\xaa\xe1M\x9e\xfb\xeb\xcf\xf9\xcb\xfb\
+\x7fF\x19\x85\x14\xb2\xf3\xf2r\x8f>\xda\xd1[\xc5m\
+Ub\x80\x0c\xaadWG\xc6X<\xd7\xe5\xa9\xb3_\
+\xe0o\xef\xbd\xc1\xaf\xdf\xf8\x15KkK|c\xe1\x09\
+\x9cm\x7f\x0e2\xd4\xecJq\x12\xdc\xae\xeb>`\xdd\
+\xed\xc6B\x10\x85\x04a\x83s\xc7g94\x9c\xe7\xe5\
+\x0b\xffd\xe9\xfa\x12gF\xce1/\xe7\x91B\xb6\xbc\
+\xd9\xd5O\xdc\xe7=)f\xbf\xd4\xc6\xda{L\x1f\x83\
+\xb5\xc6\x12\xaa\x88\xf5\xc6\x1a\xeb\x8d\x9bL\x0c\xa7\xf8\xda\
+\xe2\xa7\x18\x1a\xf2y\xe9\xca\x8b\xbc\xb2\xfc\x0a\x81\x0ep\
+\x1c\xa7\xc7\x1a\xf1~\xfa\x0e\xd4\xa2[\xcd\x18@\x1c\xac\
+_\x08!0\x06\xa2(\xa4\xbe\xb5\x06\x22\xd8\x06\x80\xb3\
+3wq(\x9f\xe2\xb7\xef\xfe\x86Kk\xcb|\xfb\x91\
+\xa79:z\xb4\xa7\xca\x93Sl\xed@p\xfd\xc0\xe2\
+mJ\x19\xc2 \xc0\x8f\xca\x18|\x1c\xb9\x93\xc0\xa9\x03\
+\x82\xa1\xf4\x01^\xff\xf0\x1f\xfc\xf4\x0f\x97\xf8\xce\xd9\xef\
+qf\xe6\x11$rg\xcc\xec\x97\xe26\x18\x09iN\
+\xf2]\xbf\x22\xd1\x91e\xd3\xaf\xd0\x0cW\x09\xcd:\x91\
+\xad\x10\xd92\xa1Y\xc3\xd77\xf1R\x1b<4\x93a\
+$\xbf\xc2/\xff\xfe\x1c/\xbc\xf6\x22\x91\x89\xf6\xae\xe2\
+\x0e\xd8\x1e^\xdb+\xbd\xddmF[\xea\x9bW\xb9R\
+[&\x9b\xce\x90\xf5<\x1c\xc7\x05\xeb\x10)K\x10j\
+\xb6\x02M:mI\xbb\x967?z\x8b\xaf\xdc\xff%\
+\xbc\x9c\xd73?'\xa68\xa9B\x93T\x8c\x87V\x16\
+a4\xb9l@\xca\x0bpR;\xde\xd4\xc6b\xa4e\
+\xbd\xe6p\xe1\x83\x83<p\xec\x0c?x\xecY\x0a\xb9\
+\xc2\xae\xfevMu\xf4\x01\xb9\x13\x15Md@k\xf2\
+9A&#H\xa7\x05R\x82\xd6\xb0\xd9\xb4\xbc\xb9\xe4\
+\xf2\xfe\xd2}<q\xf6\xfb<\xf5\xb9'\x19\xce\xe4w\
+M\x87\xbbS\x1cK\xef\xed\xc0\xc5\xef\xb56\x08\xad\xc9\
+d\x04CC\x82|N\xe0:p\xf5\xaa\xe5O\xafd\
+P\xcd\xcf\xf0\xb3o\xfe\x88\xcf.\x9cC \xb0\xd8N\
+\x1f\xfdS\xdc\xc7w\x83\xc0%\x0d5V\x83\xd5\x06G\
+\x80\x97\x12\xe4\xd2\xf0\xe6[\xf0\xc2\xefG\x98\x1ey\x94\
+\xe7\xbe\xfb\x13\x8aw\xcfb\x8c\xe9Tn\xbf\xe8\xf1`\
+R\xdc\x89\x8aF\x19Ld\xd0\xdaR\xab\x18^\xfa\x9d\
+\xe0\xed\xb7\xef\xe3\xe9\xc7\x9e\xe1\x81\xc3E\x8e\x1d\xb8\xab\
+\xefb5\xb1\x8a\xf7J\xed\xa0\xa0\xd6Z\xac\xb5H!\
+\xd1\x91\x02m\xb8\xb2b\xf8\xe3\xcbi\xf2\xceY~\xf1\
+\xcc\x8fy\xe8\xc4\x22\x17\xdey\x07cm\xa2\xfa\xdd}\
+\xba\xec\x13\x83\x82\xb6W\xc1Zk\xb0\xadY\xe4\xca\x7f\
+<\x9e\x7f>\xc7\xd9\xf9\xc7\xf9\xe1\x93\xcfr\xf7\xc4\x14\
+~\x10\xa2\x8d\x19\xe8G\xd6.\xc0\xdb\x99)\xba\xdb\x8c\
+1\x18cPJ\x11\x86!Z)F\xb3#\x1c\xcc\x9e\
+\xe0[\x9f\xff:_\xfe\xf4\x17I\x19\x97[\xe52~\
+\xa8p\x5c\x077\x95\x1a\xe8Y{*8\x08h[\xb9\
+(\x8a\x08\x82\x80f\xb3I\xbd\xde\xe0\x5c\xf1a\xe6&\
+\x8e3\x9c\x19\xa2\xba^%\xcaG\x84Jc\xb4\xa68\
+{\x9ct:\xdd\xb1D\xbc\x7fkm\xa7&\xf6M\xf1\
+^\xa0m8\xa5\x14A\x10P\xab\xd5)\x97\xd7X+\
+\x97\xf1}\x1f)$\x9e\xe7166Juc\x03\xa5\
+5'K%\xc6\xc7\xc7[\xd5\xbb\xfd\xfd\xf6\x8b\xb6j\
+\x00\x8c\xdd\x19j\xdc8\xc4 \xc6\xedV\xaf\xbdS\xd0\
+l6\xa9T+\x5c\xbfq\x83Ba\x84{\xa7\xefe\
+\xa40\x02XVVV\xd0Zsj~\x9e\xb1\xb11\
+\x94Rh\xad;G\x1bV\x08\xd1\xda\xdd\x90\x0e\xda\xc4\
+\x00\x07Q-\xae^\x1b0\x08\x02\xea\x8d\x06\xd5\xea\x06\
+\xbe\xef\xf3\xe0\xe2\x22\x87\x0e\x1d\xa2Z\xad\xb0\xb4\xf4\x01\
+a\xa88u\xf2$\x85B\x01\xa5\x14Q\x14\x11\x86!\
+A\x10\x10\x04!JE\x18c\x10B\xe2y)\x8ct\
+\x09\xc3\x10\xd7u\xef\xac\x8a\xdb\xd1N\xefV\x10\xd0l\
+4\xa9\xd7\xea8\x8eK6\x9b\xa5Ri\xc1EJ\xb1\
+\xb0\xb0\xc0\xf0\xf0p\xa7\x88|\xdf\xa7\xd1h\xd0h4\
+\xf1}\x9f \x08\xb0Xr\xd9\x1c\xc2ui4\x9a\x1c\
+;2\xc9\xe8\xe8\xe8`\x1e\xec\x17m\x05\x8di\xad\xfb\
+\xb6\xb6\xb6\xf0\xb7|\x8e\x1e9B\x18\x86,_ZB\
+i\xcd\xfd\xa7\xef'\x9f\xcfw\xe0\x1a\x8d&\x95J\x85\
+r\xb9L\xbd^'\x8c\x22\xb2\xd9,\x87\x0e\x8ec\xac\
+a\xbd\x5cf\xe6\xdei\xa6\xa7\xa7q\x1cgp\xc0~\
+Jv\x17I\x14E\xa4\xdc\x14\x07\x0e\x8c\xf1\xe1G\x97\
+\xb0\x96\x1e\xb8(\x8a\xf0}\x9f\x8d\x8d*\xd7o\x5cG\
++\xcd\xc4\xc4\x04cc\xa3\xe4\xf3yn\xad\xdd\xe2\xea\
+\xb5k\xcc\xce\x1c\xe7\x9e{\xee\xe9\xec\xb4\xdd\xb1\x82\xdd\
+*Z\xdb\x9aM\x0f\x1c\x1c\xa7\xbaQ\xc5\x91\x92\x85S\
+\x0b\xe4\xf3\xf9N\x11DQD\xa3\xd1\xa4Z\xdd\xa0Z\
+\xdd`\xe1\xd4Ifg\x8f\xe3\xfb>+\x1f\xafp\xed\
+\xda5\x8a\xb3'\x98\x9a\x9a\xea\xd9\x06\xec\xbbX\x88+\
+\x96\xd4&\xa5DH\x89t\x5cr\x851B\xbf\x89\x97\
+\xf2(\x16\x8b\x0c\x0d\x0du\xe0\xdb\xc3P\xb3\xd9\xa4V\
+\xaf\xa3\x94bdd\x84\xcdM\x9f\x8f\xdbp'\x8aL\
+MM\xf5\xff\xd1\xa4\xb5fkk\xab\xef\x8eg\xbbb\
+\x95R\xb8\xae\xbb3{XK\xa44[\xa1\xc28\x1e\
+aX!\x9f\xcbR<q\xa2gS\xa8\xe3\xd3\xed\xe2\
+\xd8\xdc\xdcd8\x9f\xc7K{||y\x85\xd5\xd5U\
+\xe6\xe6J\x1c=z\xb4\xaf\x8d\x5c\xcf\xf3p\x1c\x87\xe5\
+\xe5\xe5\xc4\x01\xd9\xf7}._\xbe\xcc\xf4\xf44\xae\xdb\
+-zk\x1dg\xacelh\x88\x99\x99\xfb\xc8d2\
+\x9d1\xad\xbb\x90\xa2m\x1f\x1a\xad\x99\x9c\x9c\xe0\xfa\xea\
+*7n\xdc\xa4T\x9a\xe7\xc8\x91#\x896r\x0b\x85\
+\x02\xa7O\x9fN\xdc\xa7\x13B\xd0h4\x88\xa2\x88R\
+\xa9D*6\x87\xb6\xcf\xa9T*q\xcf\xd9Z\x8b5\
+\x16m\x0c#\x85\x02\x16\xcb\xda\xda\x1a\xa5\xb9\x12\x93\x93\
+\x93{\xfa\xdc\x95\xb25\x1d\xed\x15\xe9t\x1a\xcf\xf3:\
+\xe7\xb87\xf7\xf2l\xeb\x90H)H\xe7\x86p\xbc4\
+\xbe\xefS,\xceq\xf8\xf0a\xf6\x8b\x81\xab\xd8\x18C\
+\x10\x04\x1dE\xe2Pq\xd5\xa1\xe5S\xa54\x81Rh\
+\xc7\xc3:)D\x18P,\x16\x19\x1f?8\xd0s\x07\
+^,(\xa58\x7f\xfe\xfcm\xfd'\xa0\xe5A\xd0\xb6\
+\x95\xdeL:\xcd\xc9\xd2\xdc\xc0p\x00\xff\x05\x08\xf9\xe8\
+\xd3M\x9b\x8d\x0f\x00\x00\x00%tEXtdat\
+e:create\x002023-03\
+-08T17:27:26+00:\
+00\x9e\x98\xa5\x85\x00\x00\x00%tEXtda\
+te:modify\x002023-0\
+3-08T17:27:26+00\
+:00\xef\xc5\x1d9\x00\x00\x00(tEXtd\
+ate:timestamp\x0020\
+23-03-09T06:18:4\
+1+00:00=\x00\x9f\x01\x00\x00\x00\x00I\
+END\xaeB`\x82\
+\x00\x00\x03\xb8\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x14\x00\x00\x00\x14\x08\x03\x00\x00\x00\xbaW\xed?\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x01\xad\
+PLTE\xff\xff\xff\xfe\xfe\xfe\xf6\xf6\xf6\xdc\xde\xe0\
+\xca\xcd\xcf\xc6\xc8\xcb\xce\xcf\xd1\xe5\xe6\xe6\xfc\xfc\xfc\xe7\
+\xe8\xe9\xbc\xc2\xca\xc0\xc8\xd3\xd4\xdb\xe4\xd9\xe0\xe8\xc8\xcf\
+\xd9\xae\xb5\xbf\xc2\xc5\xc7\xf6\xf6\xf5\xea\xeb\xeb\xb7\xbf\xcb\
+\xce\xd9\xe9\xe6\xef\xfb\xda\xe4\xee\xc0\xca\xd6\xe2\xeb\xf6\xdc\
+\xe7\xf4\xaf\xb9\xc7\xbe\xc1\xc3\xfb\xfb\xfb\xfb\xfb\xfa\xbf\xc5\
+\xcc\xbb\xcb\xe0\xdd\xeb\xfa\xea\xf6\xff\xc5\xd2\xdd\x82\x93\xa6\
+\xdb\xe6\xef\xe7\xf3\xfe\xd3\xe1\xf2\xa8\xb2\xbf\xe8\xe8\xe8\xee\
+\xee\xed\xa1\xaf\xc4\xbc\xd2\xee\xcc\xdb\xe8\xc1\xce\xd6\xb0\xbd\
+\xc8\x8f\xa1\xb5\xbb\xc7\xd0\xc1\xce\xd7\xd8\xe4\xf1\xae\xbe\xd4\
+\xcf\xd1\xd4\xe4\xe4\xe3\x98\xab\xc4\xbb\xd5\xf3\xa7\xb9\xc7{\
+\x8c\x9e\x8b\x9e\xb2\x92\xa6\xbc\x89\x9b\xafz\x8b\x9b\xc0\xd1\
+\xdf\xa7\xbc\xd8\xad\xb2\xb6\xff\xfe\xfe\xe7\xe7\xe6\x9c\xac\xc2\
+\xbd\xd7\xf2\xda\xec\xf3\xe1\xee\xf3\xc7\xd4\xde\x95\xa7\xba\xd8\
+\xe4\xea\xdf\xec\xf1\xd9\xeb\xf7\x9f\xb5\xce\xab\xae\xb0\xbe\xc5\
+\xcf\xc2\xd7\xef\xe5\xf6\xfd\xf7\xff\xff\xd5\xde\xe4\x9b\xaa\xbc\
+\xe9\xf0\xf2\xf6\xff\xff\xdc\xef\xfb\x91\xa0\xb2\xc9\xca\xc9\xdb\
+\xdc\xdd\xa3\xb4\xc8\xce\xe4\xf6\xf2\xfe\xff\xf0\xf7\xf9\xe5\xec\
+\xf0\xf7\xfc\xfd\xf1\xfc\xff\xba\xcb\xdc\x98\x9e\xa2\xf4\xf3\xf3\
+\xf9\xf9\xf8\xaf\xb3\xb5\x90\xa0\xb1\xc5\xd8\xe7\xe8\xf5\xfb\xf2\
+\xfa\xfe\xe4\xef\xf6\xb8\xc5\xd1\x94\x9a\x9f\xe2\xe2\xe1\xf9\xf9\
+\xf9\xc4\xc5\xc4\x96\x9d\xa1\x96\xa0\xa8\x9d\xa6\xad\x9d\xa4\xa8\
+\xa2\xa4\xa5\xb7\xb8\xb6\xde\xdf\xde\xf8\xf8\xf7\xe9\xe9\xe8\xe6\
+\xe6\xe5\xf3\xf3\xf2\xe5\xe5\xe4\xd3\xd3\xd3\xaa\xab\xa9\xed\xed\
+\xed\xcc\xcc\xcc\xc5\xc5\xc4\xb6\xb7\xb6\xd5\xd5\xd5\xd2\xd2\xd1\
+\xad\xae\xac\xd9\xda\xd9\xf5\xf5\xf5\xc9\xc9\xc9\xca\xcb\xca\xb3\
+\xb4\xb3\xca\xca\xca\xaf\xb0\xae\xd5\xd6\xd4\xfa\xfa\xfa\xfd\xfd\
+\xfdV$\xaa\xcb\x00\x00\x00\x01bKGD\x00\x88\x05\
+\x1dH\x00\x00\x00\x09pHYs\x00\x00\x00`\x00\x00\
+\x00`\x00\xf0kB\xcf\x00\x00\x00\x07tIME\x07\
+\xe7\x03\x09\x06\x142\x1f\xc9N\xa7\x00\x00\x00\xcfID\
+AT\x18\xd3c`\x80\x01F\x06t\xc0\xc4\xcc\xc2\xca\
+\xc6\xce\x81\x22\xc6\xc9\xc5\xcd\xc3\xcb\xc7/ \x88$&\
+$,\x22*&.!)%-\x03\x17\x93\x95\x93W\
+PTRVQUS\xd7\x80\x0bjji\xeb\xe8\xea\
+\xe9\x1b\x18\x1a\x19\x9b\xc0\x05M\xcd\xcc-,\xad\xacm\
+l\xed\xec\x1d\x1ca\x82N\xce.\xaen\xee\x1e\x9e^\
+\xde>\xbe\x08\xf7\xf8\xf9\x07\x04\x06\x05\x87\x84\x86\x85G\
+ l\x8f\x8c\x8a\x8e\x89\x8d\x8bOHLJF\x08\xa6\
+\xa4\xa6\xa5gdfe\xe7\xe4\x22;>/\xbf\xa0\xb0\
+\xa8\xb8\xa4\xb4\x0c\xd5\xaf\xe5\x15\x95U\xd55\xb5N\x18\
+\x01PW\xdf\xd0\xc8\x81!\xda\xd4\xdc\xd2\x8a!\xd8\xd6\
+\xde\xd1\xc2\x84!ZV\xdf\xd9\x81!(\xd3\xd5\xd1\x8d\
+\xa9\xb4\xae\xb5\xa7\x17C\x90\xa1\x0f\xe4R\x00|(+\
+\xa4\xc7\xdcu\xa2\x00\x00\x00%tEXtdat\
+e:create\x002023-03\
+-08T17:27:26+00:\
+00\x9e\x98\xa5\x85\x00\x00\x00%tEXtda\
+te:modify\x002023-0\
+3-08T17:27:26+00\
+:00\xef\xc5\x1d9\x00\x00\x00(tEXtd\
+ate:timestamp\x0020\
+23-03-09T06:20:5\
+0+00:00\xdd\xe8\xb2\xde\x00\x00\x00\x00I\
+END\xaeB`\x82\
+\x00\x00\x07\xd5\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x08\x06\x00\x00\x00\x8c\xfe\xb8m\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x00\x06\
+bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\
+\x00\x09pHYs\x00\x00\x00`\x00\x00\x00`\x00\xf0\
+kB\xcf\x00\x00\x00\x07tIME\x07\xe7\x03\x09\x06\
+\x12)\xc3\xf6 \xcd\x00\x00\x06\xa0IDATX\xc3\
+\xcd\xd7MS\x1b\xc9\x19\xc0\xf1\x7f\xf7\xf4h$@X\
+H \xf4\x8a\x84\xd76k\x1b\xec\xc2U\xd9\x8d\x9dK\
+\xb6\xb2\xc9e\xbd\xf9\x00I>b*9$\x97\xad=\
+\xe4`o\xccb\x1b[^\x8c\xd7\xe6\x1d\x1bK\xe8\x05\
+\x04BB3\xa3\x99\xceA\xc0:\x87\xf0\xb2\x0b\xc1O\
+\xd5\x94\x0e#\xcd\xfc\xf4t?\xddO\x0b\xad\xb5\xe6#\
+\x0eu\x16\x0f\xf9\xf0?\x0a!.\x1e\xa8\xb5\xc6\xf3:\
+\xb8\xae\x8b\xe3\xb88\xae\x83\xefy \x04\xa6R\x98f\
+\x00\xcb\xb2\x08\x04\x02\xff\x7f\xa0\xeb:4\x9bM\xaa\xb5\
+MV\xd6\xd6)\x96*\xec\xee\xee\xe2{.\xd2P\xf4\
+\xf6\x84\x18\x1a\x8a\x92N\x0e3\x18\x8b\x11\x8b\x0dbY\
+\xd6\xcf\x06\x8a\x93\xceA\xad5\xcd\xe6.\x95J\x95\xc2\
+\xcbyV\xd7\xab\xc4b1r#i\x06\x22\x970\x95\
+\xc2vl\xca\x95\x1aK\xcb\xab\xd4\xb7j\x8c\xa4b\x5c\
+\xfd$\xc7h~\x94h4z~@\xad5\xf5z\x9d\
+\xd5\xb7\xef\x98.,\x10\xbe\x14c\xf2\xf6M\xa2\x91~\
+\xa4\xfc\xef9'\x84\xa0\xd3\xf1X/\x96\x99\x9a~\x8a\
+\xd3\xda\xe4\xe6\xd5\x0c\x13\x13\x13$\x86\x13\xe7\x03\xaco\
+\xd7YZ^\xe5\xc9\xec\x1a\x97\xaf\x5c\xe3\xda'y\x0c\
+C \x04H!@\x80\x10\x80\x06\x0dh_\xa3\x11\xb4\
+m\x97'3\x05\xd6\x96\xe6\xf8tt\x98{w\xef\x12\
+\x8d\xc6N\x05\x94\xc7}\xa1\xddn\xb3\xfen\x9d\x17\xaf\
+\xd7\xc9]\x1e#\x9f\xcf\xe1i\x8d\xdfM\x17\x08\xd1\xad\
+\xdc\xae\x16\x84@\x0b\x81\xaf5\xd2\x90LN\xde&3\
+z\x937\xcbE\x0a\x85\x02\xae\xeb\x9e-\xb0R)3\
+\xbfRD\x04c$\xd3)<_\x83\x10\xb8n\x07\x04\
+HC \x95\xc00~\xba\x10\x9a\x8e\xe7\x81\x90h$\
+c\xd7\xafc\xf5'y\xbfQ\xa1T*\x9e\x1d\xd0\xb6\
+mJ\x1b\x1b\xacUl\xe2\xc94 \x10R\xd2h\xee\
+\xf1\xed\xbf\x1e`\xb7[(S\xa2\x0c\x81R\x02C\x09\
+\x94\x92\xbc\x98\xfd\x91\x17\xb3s\x98\xa6\x814\x04A+\
+@&w\x95V\xc7d{g\x1b\xcf\xf3\xce\x06\xd8h\
+4(W\xeb4\xfd^d \x84\x16\x02aHv\x9b\
+\xbbt00\x03\x0a\xa5\xc04%JILC\xe0\xeb\
+\x0e[\x8d\x16\x81`\x90\x80)\x08\x05$\xc1\x80dp\
+h\x90V'\x88\xe3th\xb5\x9ag\x05\xdcasg\
+\x0fi\x85\xd9\xb55v\x07\x100\x92\x1eb4\x9fE\
+)\x03%\x05\xa5R\x99\xcd\xda\x16J\x0az-\x93\xf1\
+\xb1\xcb\xf4_\xea\xc7T\x82\x80)1\x95D\x18&\xae\
+\x08\xb2\xb2\xf6\x8eF\xa3q6\xc0f\xab\xc9\x9e\xed\x11\
+\xb0\x82\x08)\xb1}\xe8\x00\x9e\x14h\x0ek\x84b\xa9\
+J\xb5V?\xa8\x11\xf4\xfe\xa70\x04\x1e\xb0\xd7\xd1\xb8\
+Z \xcd\x10K+\xabloo\x9f\x18x\xe4N\xe2\
+:.\x1d\xcfG)\x852$\xa6\x12(\x83\xee\xda'\
+\xbaK\x8a\xaf\xe1\xfa\xb5<\xa6a\xe0\xe9.N\xd3\xbd\
+\x10\xe0\x0bp|\xe8\xf8 \x84\xa4\x5c.\xd3\xb6\xdbg\
+\x03\x94R\xe0{\x0e\xa0\x11\x02\x0c\xd9-\x02e\xf8\x88\
+\xfd\xf4\x0b\x01J)\xa4\x10\x88\xae\xe9\xf0\x9e\xdc\xcf\xa2\
+\xde_\xcb\xb5\xdf\xc1ul\xac\xc0\xc9\xb7\xbe#\x878\
+\x1c\x0e\xd3\x13\x10\xf8\x1d\x1b\xad\xbbo>\x1c\xc6\xfd\xe5\
+\xdd\x00~x\xf9\x86\x85\xa55\x0c\xb1\x8f\xa6\x9bB)\
+\xc0\x10`\xec\xff\xc0n\xd51\x84\xcf\xc0\xc0\xc0\xd9d\
+0\x1a\x8d\x91I\xc4x\xd7\xb4\xe95\xc1\x94\x02\xad\xc1\
+\x90\x92t<B\xc04\x10@6\x19\xc7\x0a\x98\x1cl\
+z\x03}AB\x96\xe2\xa7=J\xb3\xd7v\xd8\xae\xac\
+2\x18\x1b8\xd5nr$\xb0\xaf/L6\x93\xc6\xac\
+\xbb\xe0;h\xdf\xc2\xed\xf8\xc8\x90\xe2j~\x18\xb9\x9f\
+\xc9L2\xcea\x1b\xa8a8\xd6\x8f\x87\xc6\xd5\x1a\xed\
+\x83\xe3hj\xe5\x0d\xb6K\xf3\xfc\xf6\xab?\x9c\xaa\xbb\
+9r\x88\x95R\xc4b\x83\x04hQ|\xff\x96\xf7\xd5\
+6\x8d\x96\x8f\xd3\xd1xh>\xdc\xc4\x0f\xe7\xdfA\xf1\
+\xd0\xadt\xc7\xd5\xd4\xb6Z\xac\xbc\x9a\x22\xda\x1f\xe4\xb3\
+_}~b\xdc\xb1@\x80\xc1\xc1ALCP^\x9e\
+ayq\x81\xca\x96\xc3\xf6\xae\x87\xeb\x81\xbf\x8f<\x80\
+~\x90D\x00lG\xb3\xb1i\xf3\xe6\xe5\x0c\x95\xd5\xe7\
+\xdc\xbf\xff\xf5\xa9\xdb\xaec\x1bV)%\xe3\xe3\xb7x\
+3?\xcf\xcc\xd3\x7f\xe0\xb96\x82[\x08\xd9C,l\
+\x10\xfc\xe0\x09\x02\xf0\x01\x0f\xd8\xb55oK-\x0aO\
+\xa7\x99\x9b\xfa'\xbf\xfb\xe2\x0b>\xff\xec\xd7\xa7\xc2\xc1\
+)\x1a\xd6\x9d\x9d\x1d\xfe\xf6\xf7\xbf\xf2\xfd\xd3\x02C\xf9\
+;\xdc\xb8s\x8f\xcb\xf94\xf1h\x90\xde\xa0\xc4\x94\x1c\
+\x0e\xe9\xd6N\x9b\xd5\xb5\xf7\xcc>\xf9\x8e\xc5\x97S\xfc\
+\xfe\xcb/\xf9\xfa\xfe\x1fQ\xea\xf4'\x8c\x13\x03\xa1\xdb\
+<<|\xf8\x80o\xbe\xfd\x86\xcd\x9d6C\x99k\xa4\
+sW\x18\x8c\x0f\xd3\x13\xb4p\x1d\x9b\xfaf\x85\xd2\xdb\
+E\xca\xeb\x8b\x84,\x83\x5c.\xcf\xbd\xbb\xbfab|\
+\x02q\xd0\x9a\x9d\x17\xf0 \xaa\xd5*\xcf\x9e\xcf\xf0\xe2\
+E\x81\x8d\x8d2{\xb6\x0dt\x8b\xaa\xb7'D&\x9d\
+fb\xfc\x16Z\x83\x15\xb4(\x95\x8a8\x8e\xc3\xf8\xcd\
+q\xc6\xc6>=\x7f\xe0Ax\x9eG\xa3\xd1\xa0\xd5j\
+\xe1y\x1e\xa6\xa9\xe8\xed\xed\xa3\xaf\xaf\x0f!\x04\xcb+\
+\xcb\x18\xd2\xa0\xb6Y\xe3\xc9\x93i\x84\x90\xfc\xf9O\x7f\
+!\x14\x0a\x9d\xf8\x1d\xc7V\xf1Qa\x18\x06\x91H\x84\
+T*E6\x9b%\x91H\x12\x0e\x87\xf7\xcf%\x1d^\
+\xbf~M\xab\xd5\x22\x9b\xc9\x90\xcb\xe5\xa9\xd7\xb7x\xf6\
+l\xe6T\xef\xf8E\xc0\xa3B)E6\x93evv\
+\x16)\x0d\xb2\xd9\x11\x92\xc9\x14\x8f\x9f>\xa6V\xab]\
+<\x10`ll\x0c\xcb\xb2x3?\xcfp|\x98l\
+6\x0bZ\xf3h\xea\xdf\x9ctf\x9d+P)\xc5\xe4\
+\xe4$\xcbKK\xb4\xf6Z\xa4\xd3\x192\x99,\xaf~\
+|\xc5\xca\xea\xca\xc5\x03\x012\x99\x0c\x89D\x82\xb9\xb9\
+9\x22\x97\x22d2\x19\xc2}a\x1e~\xf7\xe0D'\
+\xbcs\x07\x02LNNR\xab\xd5\xa8V\xab$\x93\xdd\
+\x82*\x16\x8b\xcc\xbe\xfc\xe1\xe3\x00F\x22\x11\xc6\xae\x8d\
+1\xf7j\x0e\xcb\xb2H\xa5\xd2\xc4\x87\xe2<z\xf4\x88\
+Fc\xe7\xe2\x81\x007n\xdc@\xfb\x9a\xb5\xb55\xe2\
+CCd\xb3Y\xda\xed6\xd3\x8f\xa7?\x0e`0\x18\
+\xe4\xf6\xed\xdb,.,\xe2\xf9>\x89D\x82t:M\
+\xa1\xf0\x9cb\xf1\xfd\xc5\x03\x01FGG\x89D\x22,\
+,,\x10\x89\x0c\x90J\xa5\xb0\xac S\xdfO\xa1\xb5\
+\x7f\xf1@)%w\xee\xdc\xa1T,\xd1h4\x88\x0f\
+\xc5I\xa5R\xd4jU\xf6\xf6\xf6.\x1e\x08\x10\x8f\xc7\
+\xb9r\xe5\x0a\xeb\xeb\xeb\x98\x81\x00===\x8c\x8c\xe4\
+\x08\xfc\x8f\x93\xde/j\x16~n8\x8eC\xb5V\xc5\
+\xf7}\x1a\x8d\x06\xe9T\x9a\xfe\xfe\xfe\x8f\x07x\x10\xbe\
+\xef\x1f\xdb#^(\xf0$\xf1\x1f\xb6J\xe0\xf90\x86\
+\x1f6\x00\x00\x00%tEXtdate:c\
+reate\x002023-03-08\
+T17:27:26+00:00\x9e\
+\x98\xa5\x85\x00\x00\x00%tEXtdate:\
+modify\x002023-03-0\
+8T17:27:26+00:00\
+\xef\xc5\x1d9\x00\x00\x00(tEXtdate\
+:timestamp\x002023-\
+03-09T06:18:41+0\
+0:00=\x00\x9f\x01\x00\x00\x00\x00IEND\
+\xaeB`\x82\
+\x00\x00\x03\xb2\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x14\x00\x00\x00\x14\x08\x03\x00\x00\x00\xbaW\xed?\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x01\xa7\
+PLTE\xff\xff\xff\xfe\xfe\xfe\xf6\xf6\xf6\xdc\xde\xe0\
+\xca\xcd\xcf\xc6\xc8\xcb\xce\xcf\xd1\xe5\xe6\xe6\xfc\xfc\xfc\xe7\
+\xe8\xe9\xbc\xc2\xca\xc0\xc8\xd3\xd4\xda\xe3\xd7\xdd\xe6\xc8\xcf\
+\xd9\xae\xb5\xbf\xc2\xc5\xc7\xf6\xf6\xf5\xea\xeb\xeb\xb7\xbf\xcb\
+\xce\xd9\xe9\xe5\xef\xfa\xe9\xf2\xfc\xeb\xf4\xfd\xea\xf3\xfd\xdc\
+\xe6\xf4\xaf\xb9\xc7\xbe\xc1\xc3\xfb\xfb\xfb\xfb\xfb\xfa\xbf\xc5\
+\xcc\xbb\xcb\xe0\xdc\xea\xf9\xe6\xf2\xfc\xed\xf7\xfe\xd6\xe0\xe8\
+\xcd\xd8\xe1\xe4\xf0\xfb\xd2\xe0\xf2\xa8\xb2\xbf\xe8\xe8\xe8\xee\
+\xee\xed\xa1\xaf\xc4\xbb\xd2\xee\xde\xee\xfa\xdf\xeb\xf1\xb4\xc0\
+\xc9{\x8b\x9c\xa5\xb2\xbb\xee\xf9\xff\xe2\xee\xfb\xad\xbe\xd4\
+\xcf\xd1\xd4\xe4\xe4\xe3\x98\xab\xc4\xb9\xd4\xf2\xd0\xe2\xed\x96\
+\xa6\xb4\x86\x9a\xb0\x84\x98\xaf\xab\xb8\xc1\xf2\xfe\xff\xdf\xf0\
+\xfc\xa5\xba\xd6\xad\xb2\xb6\xff\xfe\xfe\xe7\xe7\xe6\x9c\xac\xc2\
+\xbd\xd7\xf2\xe2\xf3\xfa\xda\xe9\xee\xb9\xcb\xda\x8d\xa0\xb5\xab\
+\xb7\xc0\xf4\xff\xff\xde\xf1\xfc\x9f\xb4\xce\xab\xae\xb0\xbe\xc5\
+\xcf\xc2\xd7\xef\xe4\xf5\xfd\xf5\xff\xff\xf6\xfd\xfe\xd3\xde\xe4\
+\xcb\xd5\xda\xdc\xee\xfb\x91\xa0\xb2\xc9\xca\xc9\xdb\xdc\xdd\xa3\
+\xb4\xc8\xce\xe4\xf6\xf1\xfd\xff\xfa\xff\xff\xfe\xff\xff\xf1\xfc\
+\xff\xba\xcb\xdc\x98\x9e\xa2\xf4\xf3\xf3\xf9\xf9\xf8\xaf\xb3\xb5\
+\x90\xa0\xb1\xc5\xd8\xe7\xe8\xf4\xfb\xf0\xf9\xfd\xe4\xef\xf6\xb8\
+\xc5\xd1\x94\x9a\x9f\xe2\xe2\xe1\xf9\xf9\xf9\xc4\xc5\xc4\x96\x9d\
+\xa1\x96\xa0\xa8\x9d\xa6\xad\x9d\xa4\xa8\xa2\xa4\xa5\xb7\xb8\xb6\
+\xde\xdf\xde\xf8\xf8\xf7\xe9\xe9\xe8\xe6\xe6\xe5\xf3\xf3\xf2\xe5\
+\xe5\xe4\xd3\xd3\xd3\xaa\xab\xa9\xed\xed\xed\xcc\xcc\xcc\xc5\xc5\
+\xc4\xb6\xb7\xb6\xd5\xd5\xd5\xd2\xd2\xd1\xad\xae\xac\xd9\xda\xd9\
+\xf5\xf5\xf5\xc9\xc9\xc9\xca\xcb\xca\xb3\xb4\xb3\xca\xca\xca\xaf\
+\xb0\xae\xd5\xd6\xd4\xfa\xfa\xfa\xfd\xfd\xfd\xe1 B\xa9\x00\
+\x00\x00\x01bKGD\x00\x88\x05\x1dH\x00\x00\x00\x09\
+pHYs\x00\x00\x00`\x00\x00\x00`\x00\xf0kB\
+\xcf\x00\x00\x00\x07tIME\x07\xe7\x03\x09\x06\x142\
+\x1f\xc9N\xa7\x00\x00\x00\xcfIDAT\x18\xd3c`\
+\x80\x01F\x06t\xc0\xc4\xcc\xc2\xca\xc6\xce\x81\x22\xc6\xc9\
+\xc5\xcd\xc3\xcb\xc7/ \x88$&$,\x22*&.\
+!)%-\x03\x17\x93\x95\x93WPTRVQU\
+S\xd7\x80\x0bjji\xeb\xe8\xea\xe9\x1b\x18\x1a\x19\x9b\
+\xc0\x05M\xcd\xcc-,\xad\xacml\xed\xec\x1d\x1ca\
+\x82N\xce.\xaen\xee\x1e\x9e^\xde>\xbe\x08\xf7\xf8\
+\xf9\x07\x04\x06\x05\x87\x04\x86\x86\x85#l\x8f\x88\x8c\x8a\
+\x8e\x89\x8d\x89\x8bOHD\x08&%\xa7\xa4\xa6\xa5g\
+dfe#;>'7/\xbf\xa0\xb0\xa8\xb8\x04\xd5\
+\xaf\xa5e\xe5\x15\x95U\xd5N\x18\x01PS[W\xcf\
+\x81!\xda\xd0\xd8\xd4\x8c!\xd8\xd2\xda\xd6\xc4\x84!Z\
+R\xdb\xde\x86!(\xd3\xd1\xd6\x89\xa9\xb4\xa6\xb9\xab\x1b\
+C\x90\xa1\x07\xe4R\x003\x9b+(8\xcb\x02\xf6\x00\
+\x00\x00%tEXtdate:crea\
+te\x002023-03-08T17\
+:27:27+00:008\xef\xae1\
+\x00\x00\x00%tEXtdate:mod\
+ify\x002023-03-08T1\
+7:27:27+00:00I\xb2\x16\
+\x8d\x00\x00\x00(tEXtdate:ti\
+mestamp\x002023-03-\
+09T06:20:50+00:0\
+0\xdd\xe8\xb2\xde\x00\x00\x00\x00IEND\xaeB`\
+\x82\
+\x00\x00\x0bH\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x08\x06\x00\x00\x00\x8c\xfe\xb8m\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x00\x06\
+bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\
+\x00\x07tIME\x07\xe7\x03\x09\x07\x08)r\x19\xb0\
+!\x00\x00\x0a\x03IDATX\xc3\xed\x98Yl\x9c\
+W\x15\xc7\x7f\xdf|\xb3{\xf6\x19\xdb3\xe3\x19\xdb\xf1\
+\xbe%v\xbc$M\x9c44\xa1iJR\xdaB\x00\
+\xb54@YT\x90\x80\x0aU*\xe2\x0d\x1e\x80\x17P\
+\xc5\x03\x0fe\x17\x15B\x94\x82\xba\xd0(!K\xeb\xa4\
+i\x9b\xd5\xf1\x1a\xc7\x1e'\x1e\xef\xdb\xec\xfb\xf6}<\
+\xd8\x11iP\x13;\x0d\xf0\xd2\xff\xcb\xf7p\xefw\xce\
+O\xe7\xde{\xce=\x17>\xd6G\x93\xb0\xce\xf9\x16\xa0\
+\x0cp\x02z`\x19\x98_\xfd\xc6\xfe\x1b\x80\xcau\xcc\
+5a\xb2t`qt\xa1/j@P\x98)\xe4\xfd\
+\xa4SW\x89GG\x08.N\x00a \xf4\xff\x02l\
+B\xa3\xff\x16\xd5M\x1d4n6c\xb4(\x99\x9dH\
+\xe1\x1b\x8a\xe3\x1f\xf3\x01\xe7\x81\x1e\xe0\xd8\xbd\x04\x5c\xcf\
+\x12\xff\x8cC\xcf~\x8a\xfa\xd6\x0d\xd8K\xb5\x1f\x18\x09\
+\x07\xb2\x8c\x5c\x0e\xf3\xb7\xdf\xcc\x12\x8f\xde\x0f$\x81\xc2\
+\xbd\x00\x14\xd71\xf7y\xf6<^\x85\xbeH\xcd\xd8@\
+\x84\xbf\xfdv\x9a\x81s!dI\xc2`Rb0\xab\
+H'\xf3L\x8e\xf7\x03\x01 u/\x00\x15\xeb\x98\x9b\
+\x22\x9f\xcb\x13\x09\xe5\x98\x9f^d\xf0\xfc\xdb\x0c_\xfc\
+#\x97\xdf\x1dey.\x8d\xc9\xa2\xa2\xaa\xd1\x00\xb4\x00\
+E\xf7\x02n\xad\x80J\xc0J\x911A.\x9b\x15\xd3\
+\x89\xbcJ\x96b\xc0\x00\xc9\xf8K\x0c]\xb8\xa2\x5c\x9c\
+\x8d\xa9\x04A\xc0\xee\xd4\x00\x1e@\xf3\xbf\x044\x02\x9d\
+\x94\x96m\xc2l\xb3i\xed%\x1a\x93\xd5\xaa\x03\xec\xc0\
+\x04\xa9\xa4\xdf\x90K\x07\xcc\xd9d\x0e\xb5F\xc1J\xfa\
+Y\xcf\xca\xdc1:wR1p\x90\xcf=\xe3\xc1\xe9\
+\xd5Y\x0c:\x85\x99te\xc0`z\x8cx\x14\xc0\xab\
+W*\x04\xb5J\x14\x96\xef\x15\xd5MZ\xcb!Q\x02\
+\x0aT\xeam\xe42\x92^\xa3V\x98\x1d%jo\xfb\
+\x16S\xa6\xa2\xce\xad\xdb\xd8Y\xedj\xda\xe4\xb2\x98L\
+\x9a\x99\x91\xa18\xfd\xef\xbf\x0e\xf4\x01\xd1up\x18\x80\
+&\xe0q\xa0\x0e\xd0\xb1\x92\x09\xd2k\x89`\x148\xcb\
+\xf4\xb5?\x93I\x95\xa7\x12\xe1\x86dUmMmk\
+\x9b\xa9\xc8l\xad\x050\x98L\xcad./\xa3R)\
+\x005kO_\xd5^\xaf\xb7fcGg\xdd\xf6=\
+\x0f\xb6\x94\x18t-\xe9\x82\x9c\x18\x1a\x188\xf3\xe2/\
+^\x008\xb7\x16\xc0\x140\x8eo\xe8\x0f\xf8\x86jb\
+\xfe\xca\x07\xd4\xd1\x90\x98\xd8P\xd5ls\x97i\x05 \
++\xcb\xc4\xa2\x89\x02\xc5n\x0dP\x09hocO\x0d\
+\xd8\x9a\x9a\x9aJ\xbd\xf5\x8d\xbbJm\x96\xed5\xd55\
+\xad\xf7m\xddZ\xbe\xb9\xb9Q7:\xbfTX\x8a'\
+d`l\xad\x8074\x0a\x8c\xca\xb3\x13\xd1\xe5\x22\x83\
+\xae\xe7\xf4i\xb7}\xd7\xbe\x12\x95B -\xc9$r\
+\x0a\x05N\xaf~u\x89\xf4\xb7\xb1c\x03\xf6\x02_\xda\
+\xbd\xff@\xe3\x83;w8\x9a*\xbcj\x80p6\xcf\
+\xd9\xc9\xb9\xc2\xf9kSZ\xc0\x0c\xeb+u74\xc0\
+\xd45\x13s\x93\xdd\x81\xa6\x0e\x0b\x06\x93\x0a\xa5J\x00\
+A@\xab\x13\xd9\xba\xdb\xcb\xac\x7f+S\xe3a`b\
+\xf5\x1f#\xb0\xb3\xac\xacl\xcf\xe6\xfb\xb6\xed|\xfc\xe9\
+\xaf7\x1e\xdcq\x9fA^\x1d\x5c\x8c\xc6\x18\x5c\x8eJ\
+\xdfy\xee9\xff\xc2\xe5\x0b\xa7\xe3s\xd3=\xc0\xfbw\
+\x0b\x98 \x9f\x1b\xa5\x90\xff+'_{\x86]\x07J\
+k\xaa*5;\x9cV\x1e\xf2\x16\xf3\xa3\xbe\xf6\xa2\xc5\
+t\xcc\x19\x9c\x1a/\x06$\xa0\xbd\xaae\xe3g\x1f\xfd\
+\xc2\x13\x95]-\xcde\x1b\x5c\xa5\x0e\x93\xdd\xa1\xcbd\
+2\xa4\x0a2\xc3\xb3\x0b\xf9S\x97z\xe3\xc7_yy\
+yy\xf4\xeaK\xf9L\xea8p\x9d\xd5Cv7\x80\
+y\xf2\xb9y\xe0M\xae\xf4\xb6n\x7fx\xff\xceOx\
+\xac\xa5\xbb+]\x8a6\xbb\x89c[\xb7\x1aN\x0f^\
+\xac\xca\xdb\xec\xfb\x1a6\xb7\xab7vm\xddT\xeb\xb0\
+n\xabk\xd9XT\xe9)\xd38LF\x11`<\x10\
+\x91/\x0d\x0c\xc6\x07}\xbe\x89\xfe\x81\xc1\xc1\xf3\xef\x9c\
+\xea#\x19?\x02\x8c\x03\xf1\x1b\xce\xee\x06\x90U\x03}\
+L_;\xda\x91\x0dy\xf6\xe8dcw\x89\xd9\x00\xb0\
+\xbbu\xa3.P_\xd7T\xac\x16[j\xeb\xeb]\xdb\
+\xba\xbbm\xf7\xd7Uid\x01d\x19\x82\xb1\xb8\x1cJ\
+$\xa5s#cKo\x1c=v\xfdJ\xef\xc53\x81\
+\xe1\xbe\x93\xc0%`\xe1VGw\x0bxC\xc7\xff\xf9\
+\xfb_u\xb4\x15[\x5c[\x1aj\x0c\x00\x0fT\x94\x8a\
+\xb1\xfd\xfb[\xf3\xb1\xa8\xa2\xdcb\x14\x8b\xedfR\xe9\
+4\x00YIf2\x14\x95\xde\xec\x1bN\xfc\xee{\xdf\
+|\x8b\x95\xeb\xd9)\xe0\xca\x879\xf8\xa8\x80\x5c\xbdz\
+\xf5\xe2\xe5k\xfe*g\xdf\xa0{K}\x8d\xe6\xf8\xe1\
+\xc3D\xe6\xe6Tf\xb3\x99\x8cN\xcd\xc8\xc8\x08\x0e\x87\
+\x83%A%\xf5\xbc\x7f6t\xec\xf0\x9b\xc3s\xbd\xe7\
+\x0f\x03\xbfb\xe5\x16\x9e\xbb\x9d\xfd\xbb\x01\xb4\x03U@\
+\x93\xd1\xe9\xde\xfb\xc0#\x8f\xd6\x95:\x9d\x15R,\xa2\
+J$\x12\xbc\xfe\xfa\xeb\xf8\xfd~\x0e\x1c8@\xd7\x96\
+-LN\xcfp\xa4\xffJ\xc2\xd7\xd7{\xc9\x7fm\xfc\
+Bbq\xe1,\xf0\xde*\x5c\xfeN\xce\xd6\x02(\xb2\
+\x92\xd7\xea\x00/\xc5\xeeJeYE\x95\xbe\xac\xbc\xf6\
+\xa1\xf2\x92\xf6\xc6\xda\x1a\x93Y\xa3R\x87\x96\x16\x15W\
+\x15\x02\xe5\xe5\xe5X\xadV***0\x1a\x0c\xb8\x9c\
+\xa54d\x0abo\xcfI\xd5\xcc\xb8/\x16\x0f\x87&\
+\x81\xc9\xb5F\xe3v\xb5\xd8\x04\x94\xa0\xd6V`\xb24\
+\xe1\xd9\xf00\xae\x8aO\xe1\xd9\xf0\x80bCC\x97\xa6\
+\xb9\xa3fGg\xbb\xd5k\xd0)U\x85\xbc\x10\x8dE\
+\xe5\xa9\xb9\x05\xc9S^NMC\xa3\xec-/G\xaf\
+\xd7\x0bz\xad\x16\x8f\xdb-\xc6\xa3Q\xa5J\xabM+\
+4\xda@pa~\xcdM\xd6\xed\x00;\x80}(U\
+\x9f\xa7\xc8\xf4E\xb6\xee\xde\xce\xae\x03\x8dt\xde\xef\x92\
+\xaa\x9b\x8c\x19\x93M\xdd\x9f\x15p+$\xacJ\x81l\
+./\xf5\xfb\xa7\x93\x81pX\xce(\xd5\xb2Fo\x10\
+\xf4Z\xadB\x90\x0a\x88rA\xb8\x7f\xe7N\xa3\xc9^\
+\xec\x99Y\x0ex}\x03}9Vz\x98;\xea\xe6\xa2\
+\xae\x03*\x80=\xc0A:v:i\xee\xb4Q\xddd\
+\xa4\xc4\xadC\x92d\x14\x0a\x01\xa9 k\x91)\xd1k\
+\x84\xc9t\x01\x9b \xc1\xb9\xb7\x96R\xff\xfc{_j\
+z\xe2\xd5\xd5\xe5\xf3\xe8K\xcb\xba\x1b:\xbb\xb6?\xf9\
+\xd5\xafy\xba\xddv\x15\x08\x98,\x16r\x08\x85S\x97\
+\x07\x12\xdf}\xe2s?\x05\xfe\xc1J\xde\xfb\xd0\xf6\xe0\
+F\x047\xa1\xd5\x1f\xc4]\xfee\xb6\xef\xdd\xc9c_\
+ifc\x97\x9d\xb2\xca\x22\x8a\x8cJ\x90\x05|Cs\
+L\x8c\xf6\xf0\xfe\x891\xd5\x94/\xa7\xafnt\xe4\x15\
+\xa2\x90\x91!\x13\x8bM\xe4\x03\x0b'\xe5\xb9\xc9\x97X\
+\xa9\x02>A\xa9\xba^H'\xa7&G\x86c\xf39\
+\xdcF\x83A%\xca\xb2B\xce\xe7\x04\xb7\xc3\xae\xda\xf3\
+\xe9\xc7*c\xd1\xa84>6ZX\x05\x8c\x7f\x18`\
+5Z\xdd#4w\xec\xa3\xad\xbb\x8b\xfaV\x0f\x15\xb5\
+&4:%\xd9L\x8cH`\x94X\xf8\x18\x81\x85W\
+8\xf7\xd6\x02\xe1\x80YW\xec\xf4\xb8\x9a[\x1d\x81\x02\
+B6\x1a^,$\xe3G\xe5\xe5\xf9W\xf0\x8f\x0d\xaf\
+:\x8b\x152\xa9P<\x18\x98\x9f\x9d\xb8~=\xab\xd6\
+Z\x12\xa1\xa0&\x95/hD\xadVeR+E\xa3\
+\xd1hu\xba\xdcf\x93\xddQ:\xbb\xb4dNF#\
+qV\x1e\x00\xfe\x03\xf0a\xaa\x9b>\xc3\xe6\xee6a\
+s\xb7M,q\xe9\xe4D,@*1\xc6\xd2\xdc\x05\
+|C'9\xfa\xd7\xbf\xf3\xf6\x1bg\x11\x14\x8d\x9a\xe6\
+\xf6vcK{\x9d\xcb\xed\xd6N\x86\xe3q)\xb0x\
+\x82t\xf2/\xbc\xfc\xe2\xc9[lgX\xe9\xee\xc6\x17\
+\xaf\x8d\xe5\xc7'&\x84\x9cR-(\xb4ze6\x95\
+\xd2\x18\xb5j\xa5\xdb\xebu\x0a\x0a\xb12\x95J9\x13\
+\x89\xb8\x14\x8fD\xfc@\x96\x9bZV\x11\xf86\x07\xbf\
+\xd1IC[\xa9h0\xaa\x8a\xe4\x82\x949}\xe4\x18\
+g\x8e\xfc\x9cW\xff\xf0k\xae\xf4\xbeM$X\x00\x9e\
+\xa4\xa5\xf3Q[g\xf7F{K\x9b\xb9 \xcb\xcc\x8d\
+\x8d\x0cS\xc8\x7f\x9f\x17~\xd0s\x87\xbd>\x92K&\
+'\xae\x0f\x0d,\x8d\xfa\xc6\x98\x91DW\x9d\xc7m\xc8\
+\xc6cB]M\x8d\xae\xb5\xb5\xcd\xd1\xdb\xdf_;\xe3\
+\x9f\x88\xac\xee\xe1\xd8\xbf\x01K=?a\xc7>\xaf\xdb\
+S\xa6-\x8b/\x87f\xfe\xf8\xcb\xf78\xf1\xea\xf3\xcc\
+O_f%)?\x08\x1c\xe2\xd0\xb3O\xbb\xf6>V\
+\xed\xad\xae.\xd2I\xf9\xfcE\xffl\x84\x1f\x7f\xfb\x11\
+\xde=\xe6\xe3\x0e\xd5`UK@o2\x14<7\xd5\
+wq\xf1\xc4;g\xbc\x19k\x89&\x97\xcb\xab\xacj\
+Qs\xe8\xa9\xa7\xecs\xd9B\xabB\x14\x83\xcb\xb33\
+\x01V\x9fPD\x94\xcag\xe8\xdaeu\x16;\xd46\
+A\x12\xa6\x93\x19\x0d\xd1P\x1d\x99\xf4\x1e4\xdaOR\
+\xdf\xda\xcd\x81\xa7:\xca\xdb\xb787\xd8-\xcaD^\
+\xe2z 4\x9d>\x7f\xfa%\xae\x5cz\x0dH\x03\xf2\
+\x1a\x00o(\x0bL*D\xf1z2\x12ZX\x0c\x04\
+\x85\xa5D\xca\xa4T\xaa4\xa5\x1e\x8f\xda7\xd8\x1f\x9a\
+\xf1\xfb'V\x0f\x1bJ2\xa9\x8b\x14\xf2\x8e\x5c6\xab\
+\x17\xb4zu\xfd\xa6\xb6\x92`\x91\xfe\x13\xb1X,\x9f\
+C@ku\xa8\x8bk\xeb\x0d\xde\x12\x87*\x9a\xcd\xc9\
+\xcb\xc1\xc0xxz\xf28c\x03/\x03\x89u\x80\xdd\
+\xbc7g\xd2\x91p\x8f\xef\xd2\x85\x89h\x229\x13\x89\
+D\x82\xe1\x85\xf9-6\x8fW\x1dK$\x83\xac4L\
+\xac\x00\xa6So\x10\x8f\xd8c\xe1PW\xc8f+\xb1\
+{*t\xb9\x12\x8f.\x9f\x97\x10%\xd0\x8b\x02v\x8d\
+\x88 I\xf2t0<\x13\x9c\x9e:!_:\xf32\
+\xfdg/\xdc\x05\xdc\xcdZ\x04\x16\x17\xaf\x0e\x07CS\
+\xfe\x80\xcfh\x0c\xd96\xd4\x9a\xa3KK\xefpS)\
+\x5cI\xd4\xee\x8a\xbd\xec=xH\xa8n: \x14;\
+-V\xa5\x02\x95B@\x01\x14dHI2\xd1d*\
+\xcb\xe5\xf7~\xc3\xb5\xe1?\xd1\xf3\xe6\xbb\x1f\x11\xeeV\
+\xdd\xa8\xf7.`\xfa\xe6\x08~\xb0=\xdc\xff\x84\x05\xd8\
+\x8c\xc3\xf5\x05\xf4\x06\x07\xa2\xa8A\x96Rd\xb3\xb3\xb4\
+\xef\xf8!\x10\xe7[\xfb\xefx\x03\xb9\x97\xba\xf56\x13\
+\x07z\x81\x19@\xc5\xca\x13\x86\xc4\xca\xbe\x89s\x8f\x9e\
+\xd4>\xd6\xc7\xbaI\xff\x02R\x96 <_\xfdR\xba\
+\x00\x00\x00%tEXtdate:cre\
+ate\x002023-03-09T0\
+7:06:53+00:00B\xac!\
+#\x00\x00\x00%tEXtdate:mo\
+dify\x002023-03-09T\
+07:06:53+00:003\xf1\
+\x99\x9f\x00\x00\x00(tEXtdate:t\
+imestamp\x002023-03\
+-09T07:08:41+00:\
+00!\x18\x99D\x00\x00\x00\x19tEXtSo\
+ftware\x00Adobe Ima\
+geReadyq\xc9e<\x00\x00\x00\x00I\
+END\xaeB`\x82\
+\x00\x00\x084\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x08\x06\x00\x00\x00\x8c\xfe\xb8m\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x00\x06\
+bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\
+\x00\x09pHYs\x00\x00\x00`\x00\x00\x00`\x00\xf0\
+kB\xcf\x00\x00\x00\x07tIME\x07\xe7\x03\x09\x06\
+\x12)\xc3\xf6 \xcd\x00\x00\x06\xffIDATX\xc3\
+\xcd\xd8\xd9S\x1b\xc9\x1d\xc0\xf1o\xf7\x8cfF\x17\x08\
+]\x08\x1d\x08l\x0c>\xc0\xb6\xd8\xca:\xde\xecn\xd5\
+\x1ey\xca\xf1\xb4/\x9b\xcd\x9f\x98J\x1e\x92\x97\xad\xad\
+\x1cU\xeb\x0d,\xc6\xd8\xd8\x18\x07cN\x1bsIX\
+ \x9043\x9a\xe9<\x08\x97\x9d\xaa\x84cm\x07\xff\
+\xaa\xa6\xe6eJ\xfdQ\xff~=\xfd\xeb\x11J)\xc5\
+{\x1c\xfa\xdb\xf8\x91\xd7\xff\xa3\x10\xe2\xec\x81J)<\
+\xaf\x85\xeb\xba8\x8e\x8b\xe3:\xf8\x9e\x07B\x10\xd0u\
+\x02\x01\x03\xd341\x0c\xe3\xff\x0ft]\x87\x83\x83\x03\
+\xca\x95\x1d\x96W\xd7X\xdf\xd8f\x7f\x7f\x1f\xdfs\x91\
+\x9aN8\x14$\x95\x8a\x93\xeb\xe9&\x99H\x90H$\
+1M\xf3'\x03\xc5IkP)\xc5\xc1\xc1>\xdb\xdb\
+e\xa6\x1f\xce\xb3\xb2V&\x91HP\xec\xcd\xd1\x15\xeb\
+$\xa0\xeb\xd8\x8e\xcd\xd6v\x85\xc5\xa5\x15\xaa/*\xf4\
+f\x13\x5c8_\xa4\xbf\xaf\x9fx<\xfe\xee\x80J)\
+\xaa\xd5*+O\x9f11\xfd\x84hg\x82\xd2\xb5+\
+\xc4c\x1dH\xf9\x9f5'\x84\xa0\xd5\xf2X[\xdfb\
+|\xe2\x0eN}\x87+\x17\xf2\x8c\x8c\x8c\x90\xe9\xce\xbc\
+\x1b`u\xb7\xca\xe2\xd2\x0a\x933\xab\x9c\x1b\x18d\xf0\
+|\x1f\x9a&\x10\xa2\x0d\xd2\xa4@J\x89\x02<\xcfC\
+\xf9\x0a\x85\xa0i\xbbLNM\xb3\xba8\xcb\xc5\xfen\
+>\xbay\x93x<q*\xe0\xb15\xd8l6Y{\
+\xb6\xc6\xfd\xb95\x8a\xe7\x86\xe8\xeb\xeb\xc5S\x0a\xa1\x04\
+R\x0a4M2}\x7f\x86\xd9Gs\x04\x83A\xbe\xf8\
+\xfcSB\xa10\x9e\xe7#5\x8dR\xe9\x1a\xbe\x12<\
+^z@84\xcd\xc7\x1f\x7fB \x1081P\x1e\
+\xf7\xc0\xf6\xf6\x16\xf3\xcb\xeb\x08+AO.\x8b\xe7+\
+\x94\x10 _\x01W\x9e\xad\xf1`n\x95\xe9\x87\xf3\xd8\
+\x8e\x83\xd4$B\x0a\x10\x02\x85d\xe8\xd2%\xcc\x8e\x1e\
+\x9eon\xb3\xb1\xb1~\xaa\x19<\x12h\xdb6\x1b\x9b\
+\x9b\xacn\xdb\xa4{r@{P!%R\x13h\x9a\
+@\xd3\xa1\xa3\xb3\x93\x81\x8b\x97\xc9\x17\x8b\x18\x86\x86\xae\
+\x83\xae\xb7\x9f\x91\x9a\xc02\x0d\xf2\xc5\x0b\xd4[\x01v\
+\xf7v\xf1<\xef\xed\x00k\xb5\x1a[\xe5*\x07~\x18\
+i\x04QB 4\x89ah\x98\xa6\x8eijX\x86\
+ \xa0\xcb6V\x93\x98\x86\x86iJLS#h\x05\
+\x08\x99\x1a\x96!I\xa6\x92\xd4[\x16\x8e\xd3\xa2^?\
+81\xf0\xc8\x1a\xac\xd5\xf6\xd8\xd9k \xcd8\xfb\xb6\
+\xc2\xf6\xc0\xc2g|l\x8c\xda\xde.\x96e\x22%\xac\
+>+cD\x92\x1c4\x0e\xf8\xdb\xdfo\x11\x0cZ\xb4\
+<\x1f\xdbv\xf8`\xf4:\x89D7B\x0b\xe0\x0a\x8b\
+\xe5\xd5gd\xba\xd3D\xa3\x1do\x0e<\xa8\x1f\xd0\xb0\
+=\x8c\xa0\x85\x90\x12\xdb\x03\xc7\xf3\xf8\xee\xaf\xff`\xbb\
+\xbcK2\xdd\x8dR\x8aT\xaa\x9bB\xc2\xa4\x15\x8e0\
+1=G\xab\xd5\xc2u\x1c\x9e?[!\x9eL\x12\xed\
+\xca\xe0*\x81\x0c\x04Y\x5c\x9e\xe5\xd2\xe0y\xb2\xd9\xdc\
+\x9b\x03]\xc7\xa5\xe5\xf9\xe8\xba\x8e\xaeI\x02\xba@\xd7\
+\x05\xc9T\x8aD\xa6H\xa1\xb7\x0f!@\xa9\xf6\xeb&\
+\x1c\x8ep\xb5\xf4\x01 h4\x1a\x18\x01\x1d\xc3\xb2\xb0\
+}E\xcb\x07!$[[[4\xed\xe6\xdbI\xb1\x94\
+\x02\xdfs\x00\x85\x10\xa0I\x81ej|\xf5\xd5\xaf\x08\
+h\x01\x82A\x0bMJ&&\x1f\xb0^\xae\xe3\xb7\x9a\
+|\xfeI\x89\x8e\x8e(-\xcf\xe3\xd3\x1b\x83ttu\
+a\xfb\xedW\xad\xf2[\xb8\x8e\x8di\x9c|\xeb;\x12\
+\x18\x8dF\x09\x19\x82Z\xcbF)@\x80\x94\x92\xbe\xde\
+\x1c\xbal\xaf0\x1d0$\xb8\xae\x8br\x1d\x92\x9d!\
+\x12\xf1(\x1e\x90I\xc7h\xb8\x8ar\xb5\x05Ja\xd7\
+\xabh\xc2\xa7\xab\xab\xeb\xc4\xc0#Wq<\x9e \x9f\
+I\x10\xd5m\xc2\x01\x08H\x81R\x0a_)\x94\x0f\x1c\
+\xeeA\xe2\xf5K\xb5\xef(\xda;\x8aR\x80\xa2\xd1t\
+\xd8\xdd^!\x99\xe8:\xd5nr$0\x12\x89R\xc8\
+\xe7\xe8\xef6\x91\xbe\x83\xf2}\xdc\x96\xe2\xf5\xcdQ\x1c\
+\x96\x82&%\x9a&\x91\xe2\x15\xb6\x9dVp\x1cEe\
+k\x93\xdd\x8dy\xae_/\x9d\xaa\xbb92\xc5\xba\xae\
+\x93H$\xd9\xa9.\xb0\xf2\xfc)u\xff\x1c=2D\
+$\xa8\x08\x18m\x9e\x02F\x86/\xd0w\xbe\x05\xca#\
+\x1a\x09\xa3\x0e'W\x01\x8e\xab\xa8\xbc\xa8\xb3\xfch\x9c\
+x\x87\xc5\x87?\xbbqb\xdc\xb1@\x80d2\xc9\xf2\
+\xf2\x22[KS\xec\x1c\xf8\xe8\x81\x8b\x84L\x89\xd1\xa9\
+#u\x85\xaf\x04\xd9t\x02y8k\x0ah\x1d\xce\xb0\
+\xed(6wl\x1e?\x9cb{\xe5\x1e\xdf|\xfd\xf5\
+\xa9\xdb\xaec\x81RJ\x86\x87\xaf\xf2x~\x9e\xa9;\
+\x7f\xc6sm\x04W\x112D\x22\xaaa\xe9\xed\xba\xe3\
+0\xb5>\xe0\x01\xfb\xb6\xe2\xe9F\x9d\xe9;\x13\xcc\x8e\
+\xff\x85/>\xfb\x8c\x1b\x1f\xfe\xfcT88E\xc3\xba\
+\xb7\xb7\xc7\x1f\xff\xf4\x07~\xbc3M\xaao\x94\xcb\xa3\
+\x1fq\xae/G:n\x11\xb6$\x01\xf9*\xa5/\xf6\
+\x9a\xac\xac>gf\xf2\x07\x16\x1e\x8e\xf3\xcb/\xbf\xe4\
+7\xbf\xfe-\xba~\xfa\x13\xc6\x89\x81\xd0n\x1en\xdd\
+\xfa\x9eo\xbf\xfb\x96\x9d\xbd&\xa9\xfc \xb9\xe2\x00\xc9\
+t7!\xcb\xc4ul\xaa;\xdbl<]`km\
+\x81\xa0\xa9Q,\xf6\xf1\xd1\xcd_02<\x82\x10\xe2\
+\xd4\x87\xaaS\x01_F\xb9\x5c\xe6\xee\xbd)\xee\xdf\x9f\
+fss\x8b\x86m\x03\xedE\x15\x0e\x05\xc9\xe7r\x8c\
+\x0c_E)0-\x93\x8d\x8du\x1c\xc7a\xf8\xca0\
+CC\x17\xdf=\xf0ex\x9eG\xadV\xa3^\xaf\xe3\
+y\x1e\x81\x80N8\x1c!\x12\x89 \x84`iy\x09\
+MjTv*LNN \x84\xe4\x9b\xdf\xfd\x9e`\
+0x\xe21\x8emX\x8f\x0aM\xd3\x88\xc5bd\xb3\
+Y\x0a\x85\x02\x99L\x0f\xd1h\xf4\xf0\x5c\xd2bnn\
+\x8ez\xbdN!\x9f\xa7X\xec\xa3Z}\xc1\xdd\xbbS\
+\xa7\x1a\xe3\x8d\x80G\x85\xae\xeb\x14\xf2\x05fff\x90\
+R\xa3P\xe8\xa5\xa7'\xcb\xed;\xb7\xa9T*g\x0f\
+\x04\x18\x1a\x1a\xc24M\x1e\xcf\xcf\xd3\x9d\xee\xa6P(\
+\x80R\x8c\x8d\xff\x93\x93V\xd6;\x05\xea\xbaN\xa9T\
+biq\x91z\xa3N.\x97'\x9f/\xf0\xe8_\x8f\
+X^Y>{ @>\x9f'\x93\xc90;;K\
+\xac3F>\x9f'\x1a\x89r\xeb\x87\xefq]\xf7\xec\
+\x81\x00\xa5R\x89J\xa5B\xb9\x5c\xa6\xa7\xa7\xbd\xa0\xd6\
+\xd7\xd7\x99y\xf8\xe0\xfd\x00\xc6b1\x86\x06\x87\x98}\
+4\x8bi\x9ad\xb39\xd2\xa94ccc\xd4j{\
+g\x0f\x04\xb8|\xf92\xcaW\xac\xae\xae\x92N\xa5(\
+\x14\x0a4\x9bM&nO\xbc\x1f@\xcb\xb2\xb8v\xed\
+\x1a\x0bO\x16\xf0|\x9fL&C.\x97cz\xfa\x1e\
+\xeb\xeb\xcf\xcf\x1e\x08\xd0\xdf\xdfO,\x16\xe3\xc9\x93'\
+\xc4b]d\xb3YL\xd3b\xfc\xc7q\x94\xf2\xcf\x1e\
+(\xa5dtt\x94\x8d\xf5\x0dj\xb5\x1a\xe9T\x9al\
+6K\xa5R\xa6\xd1h\x9c=\x10 \x9dN300\
+\xc0\xda\xda\x1a\x01\xc3 \x14\x0a\xd1\xdb[\xc4\xf8\x1f'\
+\xbd7j\x16~j8\x8eC\xb9R\xc6\xf7}j\xb5\
+\x1a\xb9l\x8e\x8e\x8e\xff\xfe\xa5\xe1L\x80/\xc3\xf7\xfd\
+c{\xc43\x05\x9e$\xfe\x0d\xc8]\xfaY2[\xe8\
+n\x00\x00\x00%tEXtdate:cr\
+eate\x002023-03-08T\
+17:27:26+00:00\x9e\x98\
+\xa5\x85\x00\x00\x00%tEXtdate:m\
+odify\x002023-03-08\
+T17:27:26+00:00\xef\
+\xc5\x1d9\x00\x00\x00(tEXtdate:\
+timestamp\x002023-0\
+3-09T06:18:41+00\
+:00=\x00\x9f\x01\x00\x00\x00\x00IEND\xae\
+B`\x82\
+\x00\x00\x03\xde\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x14\x00\x00\x00\x14\x08\x03\x00\x00\x00\xbaW\xed?\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x01\xd1\
+PLTE\xff\xff\xff\xee\xf2\xf8\xdd\xe5\xf1\xf7\xf8\xfb\
+\xf5\xf7\xfb\xaf\xc3\xdd\xa4\xc0\xdf\x93\xae\xd3\xe4\xea\xf3\xf2\
+\xf4\xf8\xa1\xbb\xd8\xbc\xdb\xee\xa1\xc2\xdf\x84\xa4\xcd\xc6\xd3\
+\xe7\xfe\xfe\xff\x99\xb3\xd1\xad\xcc\xe2\xaf\xcf\xe4\xa6\xc5\xde\
+\x83\xa4\xcc\xa5\xba\xd9\xf2\xf5\xf9\x90\xab\xc9\xa1\xc0\xd9\xa2\
+\xc1\xda\xa1\xc0\xd8\x87\xa8\xcc\x8a\xa6\xcd\xda\xe3\xef\x87\xa2\
+\xc2\x96\xb6\xd2\x98\xb8\xd3\x98\xb7\xd2\x96\xb6\xd1\x96\xb5\xd0\
+\x89\xa9\xc9z\x9a\xc3\xba\xca\xe1\xfb\xfc\xfd\xf2\xf4\xf7\x82\
+\x9d\xbe\x8e\xae\xcd\x90\xb0\xcf\x8f\xaf\xce\x8d\xad\xcc\x8b\xaa\
+\xc9\x89\xa8\xc6\x83\xa2\xc1p\x92\xba\x98\xaf\xd0\xeb\xf0\xf7\
+\x7f\x9a\xbb\x89\xaa\xcd\x88\xa8\xcb\x86\xa6\xc9\x83\xa3\xc5\x7f\
+\x9f\xc1{\x9a\xbcw\x96\xb6h\x87\xadn\x8c\xb6\xcc\xd7\
+\xe8~\x98\xba\x82\xa4\xcb\x84\xa5\xcc\x82\xa3\xca~\x9f\xc7\
+x\x99\xc1p\x91\xb9e\x85\xaeTs\x9e>^\x8a#\
+Du2T\x87\xb1\xc1\xd9\xf2\xf4\xf6w\x92\xb6p\x94\
+\xc5o\x93\xc4k\x8f\xc1d\x89\xbc[\x80\xb4Pt\xa8\
+Cg\x9b7Z\x8e,M\x7f\x1f@r5U\x84\xb1\
+\xc1\xd8u\x91\xb5j\x90\xc6j\x8f\xc5g\x8c\xc2a\x86\
+\xbdY\x7f\xb6Qv\xacFj\x9f:]\x910S\x84\
+`z\xa1\xce\xd7\xe4\xf2\xf3\xf5y\x95\xb8t\x99\xces\
+\x97\xccn\x93\xc8^\x84\xbaTy\xb0Fk\xa0Cf\
+\x94\x8d\xa0\xba\xec\xef\xf4{\x99\xba|\xa1\xd5z\x9e\xd2\
+t\x98\xcdk\x90\xc6a\x87\xbdQx\xac\x5c{\xa1\xb8\
+\xc4\xd2\xfc\xfc\xfd\xf2\xf3\xf4|\x9c\xbc\x84\xa9\xdc\x81\xa4\
+\xd8y\x9d\xd1l\x92\xc7X\x80\xaf|\x95\xb0\xdc\xe1\xe7\
+\xf1\xf2\xf4}\x9f\xbd\x8b\xb0\xe3\x86\xa9\xddr\x9b\xcd_\
+\x86\xad\xa1\xb2\xc2\xf4\xf5\xf6\xf1\xf2\xf3}\xa1\xbf\x8d\xb4\
+\xe7o\x9b\xc9n\x90\xac\xc8\xd1\xd8\xf4\xf4\xf5x\xa0\xb8\
+a\x8f\xb4\x8a\xa1\xb3\xe8\xea\xed\xfe\xfe\xfe\xcd\xd9\xe0\xc6\
+\xcf\xd6\xfa\xfa\xfa\x8f\x8b'\x1a\x00\x00\x00\x01bKG\
+D\x00\x88\x05\x1dH\x00\x00\x00\x09pHYs\x00\x00\
+\x00`\x00\x00\x00`\x00\xf0kB\xcf\x00\x00\x00\x07t\
+IME\x07\xe7\x03\x09\x06\x142\x1f\xc9N\xa7\x00\x00\
+\x00\xd1IDAT\x18\xd3c`\xc0\x05\x18\x99\x981\
+\xc4XX\xd9\xd89\xd0\x059\xb9\xb8yx\xf9\xf8\xd1\
+\x04\x05\x04\x85\x84ED\xc5P\x05\xc5%$%\xa5\xa4\
+edQ\x04\xe5\xe4\x15\x14\x95\x94UT\xd5\xd4\x11\x82\
+\x1a\x9aZ\xda:\xbaz\xfa\x06\x86F\xc6\x08A\x13i\
+S3s\x0bK+k\x1b[;\xb8\xa0\xbd\x83\xa3\x93\
+\xb3\x8b\xab\x9b\xbb\x87\xa7\x977T\xd0\xc7\xd7\xcf? \
+0(8$4,<\x22\x12&\x18\x15\x1d\x13\x1b\x17\
+\x9f\x90\x98\x94\x9c\x92\x0a\xd3\x9e\x96\x9e\x91\x99\x15\x9b\x9d\
+\x93\x9b\x97_\x00\xb7(\xad\xb0\xa8\xb8\xa4\xb4\xac\xbc\xa2\
+\xb2\x0a\xe1\xa4\xea\x9a\xda\xba\xfa\x86\xc6\xa6fd\xc7\xb7\
+\xb4\xb6\xb5wtvu\xa3x\xb3\xa7\xb7\xaf\x7f\xc2D\
+\xb4P\x9a4y\xca\xd4i\xe8A7}\xc6\xccY\x0c\
+\x04\x01\x00\x16~0NH\xc6\xd0\xc2\x00\x00\x00%t\
+EXtdate:create\x002\
+023-03-08T17:27:\
+26+00:00\x9e\x98\xa5\x85\x00\x00\x00%\
+tEXtdate:modify\x00\
+2023-03-08T17:27\
+:26+00:00\xef\xc5\x1d9\x00\x00\x00\
+(tEXtdate:timest\
+amp\x002023-03-09T0\
+6:20:50+00:00\xdd\xe8\xb2\
+\xde\x00\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x03\xf9\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x08\x04\x00\x00\x00&\xf7p\xe6\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x00\x02\
+bKGD\x00\xff\x87\x8f\xcc\xbf\x00\x00\x00\x09pH\
+Ys\x00\x01bT\x00\x01bT\x01\x80\xc1\xe1l\x00\
+\x00\x00\x07tIME\x07\xe7\x03\x09\x06\x12)\xc3\xf6\
+ \xcd\x00\x00\x02\xc8IDATH\xc7\xad\xd7\xcdo\
+TU\x14\x00\xf0\xdf\xb43\xfd\x80*\xd0\xaa\xc1D\x89\
+JH\x91\xaa DK\xa3X\x87\x8e.\x5c41\xb8\
+5a\xa1\x0b\x12\x09\xd1\xb8!1\xb1,\x8c\x0d\x89$\
+.\x8cnH\x8c\x7f\x82\x1a]8\xa5i\xbbhT4\
+R\x81\xc8G\x95\x85DT\xa8\xd5\xb6R\xa6v\x9e\x8b\
+\xa9\xb6\xf3\xde+\x99;z\xcej\xce\xe4\xfe\xeey\xf7\
+\xce}\xef\x0d\xb4:`BI\xb4\x94eokVw\
+\xb4\x1at\xfd_\xac\x92\xf3\x064\xd5\xc7e\xedwH\
+\x8b\xef}\xeaW\xd0d\x9fN\x87e\xbc\xa1T\x0f9\
+!2\xa9{E\xa5\xc7Y\x91\x1b\x8e\xd4\xd3eFI\
+\xce;^\xaa\xaa\xf68\xee~%G\x1dW\x96I\x19\
+\x17\x99s-\x1d\x8c0\xe0H\xac^!\x17\x5cQ^\
+\xa5\x95i#\xde\xf5]\xda\x5c\x91\xd7S\x06\xf4\x98\x88\
+mU2OW-\xd5\xd2\xa6T\xfaL\xc6\xb8\xe7<\
+c}\xea\xe5\x92\xf3\xb0\x82.\x83\xf6\x99Jv8\x10\
+\xbe\xf8Z\xbd%R\xd2_]n\xa8\x83\xaa\xc4u\xef\
+\xbb*\xa7\xeb\xff\x02\x995O\xfcL\xfd\x17pQD\
+\xfcW\x90\xbd\xc9\x80\x0d\x1e\xf1\x90\xb6U\xbe-k\xb7\
+\x0e\xf9\xa5\xb6\x16M\x1a\xf2\xf3j\x9b\xd2\xe8Yc\x89\
+3~\xf3,\x1b\xb53\xbd\xc3\x9cW\xbc\xa6\x0d\xbf\x99\
+\x11\xd5\xb4\x00\xcdn\xb7\xc7\x9b\xe9\xe0\xf3\x06\xb4\xf8\xc9\
+{>N?`\x89\x88\xb4:\xaa\xdfci\xe0\xdd^\
+\xd5\xe2\x92\x17\x0c\x05m\xd2\x0c\x16\xd2vy\xaf\xad\x16\
+\x0d\x06r\x9bt\xe3d\x12l\xf4\xb4\x8c\x1f|\x12\xc4\
+\xf1\xa8{,\xfa0\x09\xdee7\xc6]\x0e\x04\x0b\xb2\
+.;\x91\x04\xbbmR\xf6\xd9\xaa\xb7\xad\xf4\xd8h\x0f\
+N\xba\x10\x073\x9e\x92\xf5\xa3\xf1\xc0\xfev\xd9\x8c\xa2\
+R\x1c\xbc\xd3\xe3\xf8\xc2\xa5\xe0\x0bn\xf6\x8b\xb1\xe4Y\
+\xde\xe5>\x14\xfd\x15\xc4ux\x02_\xbb\x98\x04\x0b\x9a\
+\x5c1\x16\xd8\xdfv\x9d(\x9a\x8f\x83\xb7\xe9\xc5W&\
+\x03\xc1>kM\x19!\x0e\xee\xb0\x05E7\x82\xb8u\
+\xf2\xf8\xb6\xf2\xc0\xaa\x06\xfb\xacq\xcdh`\x7f]\xba\
+0d6\x0e\xae\x97\xc7)\xe7\x02\xc1\xbc[\xcd\x18\xae\
+|X\x09>`\x1b\x86\xcc\x05qk\xed\xc5Y\xa7\x93\
+`\xde-~\xffg\xa6\x9a\xa3\xd3v\x0c\x9b\x8e\x83m\
+\xfap\xc6\x99@\xb0W\x87?\x97\xefL\xcb\xe0V\x0f\
+b\xd8\x1fA\x5c\xb3\x02\xce\xfb\xa6\x1a\x8c\xd0\xab\xdd\x9c\
+\x13\x81\xfdm\xb6\x13\xa3\xae\xc6;\xcc)\xe0\x9cS\x81\
+\xe0\x936*).\x17\x1a,\xa0\xc3\xbdv`\xa4\xc6\
+'\xc8r\x7f/\xe2\xbc/W\x16'D.:lV\
+d\x7f\x00\xd6h\xb7a\x91\xb2\x97W\x963\x0e8\xa6\
+\xc5\xac5\x1a|\xaeh!\xf5]\xac:\x22Y[\xe4\
+\xdd\x81\x0f\x1c\xac\xde\xc8\xb4\x97\xf6Zs\xda1\xed\xc9\
+\xf9\xe2\x7f+j\xcb)\x1f\xe9\x97\x8bc\x7f\x03\xa8M\
+ \xd2E{(\x13\x00\x00\x00%tEXtda\
+te:create\x002023-0\
+3-08T17:21:49+00\
+:00\xa3\xa1\xac\xac\x00\x00\x00%tEXtd\
+ate:modify\x002023-\
+03-08T17:21:49+0\
+0:00\xd2\xfc\x14\x10\x00\x00\x00(tEXt\
+date:timestamp\x002\
+023-03-09T06:18:\
+41+00:00=\x00\x9f\x01\x00\x00\x00\x00\
+IEND\xaeB`\x82\
+\x00\x00\x03\xac\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x14\x00\x00\x00\x14\x08\x03\x00\x00\x00\xbaW\xed?\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x01\xa1\
+PLTE\xff\xff\xff\xfe\xfe\xfe\xf6\xf6\xf6\xdc\xde\xe0\
+\xca\xcd\xcf\xc6\xc8\xcb\xce\xcf\xd1\xe5\xe6\xe6\xfc\xfc\xfc\xe7\
+\xe8\xe9\xbc\xc2\xca\xc0\xc8\xd3\xd4\xda\xe3\xd7\xdd\xe6\xc8\xcf\
+\xd9\xae\xb5\xbf\xc2\xc5\xc7\xf6\xf6\xf5\xea\xeb\xeb\xb7\xbf\xcb\
+\xce\xd9\xe9\xe5\xef\xfa\xe9\xf2\xfc\xe9\xf3\xfc\xe8\xf1\xfc\xdc\
+\xe6\xf4\xaf\xb9\xc7\xbe\xc1\xc3\xfb\xfb\xfb\xfb\xfb\xfa\xbf\xc5\
+\xcc\xbb\xcb\xe0\xdd\xeb\xfa\xe8\xf3\xfd\xee\xf8\xfe\xef\xf9\xff\
+\xec\xf7\xfe\xe5\xf1\xfd\xd3\xe1\xf2\xa8\xb2\xbf\xe8\xe8\xe8\xee\
+\xee\xed\xa1\xaf\xc4\xbc\xd2\xee\xce\xdd\xeb\xc5\xd1\xd9\xcb\xd6\
+\xdc\xcc\xd7\xdc\xca\xd6\xdb\xc6\xd2\xda\xd9\xe5\xf2\xae\xbe\xd4\
+\xcf\xd1\xd4\xe4\xe4\xe3\x98\xab\xc4\xba\xd5\xf3\xad\xbf\xcc\x84\
+\x94\xa5\x8f\xa0\xb2\x8f\x9f\xb2\x8e\x9f\xb2\x84\x94\xa4\xc4\xd4\
+\xe2\xa6\xbc\xd7\xad\xb2\xb6\xff\xfe\xfe\xe7\xe7\xe6\x9c\xac\xc2\
+\xbd\xd7\xf2\xdb\xec\xf4\xe0\xed\xf2\xe6\xf1\xf6\xe7\xf1\xf6\xdf\
+\xec\xf0\xd9\xec\xf7\x9f\xb5\xce\xab\xae\xb0\xbe\xc5\xcf\xc2\xd7\
+\xef\xe5\xf6\xfd\xf5\xff\xff\xfa\xff\xff\xfc\xff\xff\xdc\xef\xfb\
+\x91\xa0\xb2\xc9\xca\xc9\xdb\xdc\xdd\xa3\xb4\xc8\xce\xe4\xf6\xf1\
+\xfd\xff\xfd\xff\xff\xfb\xff\xff\xf1\xfc\xff\xba\xcb\xdc\x98\x9e\
+\xa2\xf4\xf3\xf3\xf9\xf9\xf8\xaf\xb3\xb5\x90\xa0\xb1\xc5\xd8\xe7\
+\xe8\xf4\xfb\xf0\xf9\xfd\xe4\xef\xf6\xb8\xc5\xd1\x94\x9a\x9f\xe2\
+\xe2\xe1\xf9\xf9\xf9\xc4\xc5\xc4\x96\x9d\xa1\x96\xa0\xa8\x9d\xa6\
+\xad\x9d\xa4\xa8\xa2\xa4\xa5\xb7\xb8\xb6\xde\xdf\xde\xf8\xf8\xf7\
+\xe9\xe9\xe8\xe6\xe6\xe5\xf3\xf3\xf2\xe5\xe5\xe4\xd3\xd3\xd3\xaa\
+\xab\xa9\xed\xed\xed\xcc\xcc\xcc\xc5\xc5\xc4\xb6\xb7\xb6\xd5\xd5\
+\xd5\xd2\xd2\xd1\xad\xae\xac\xd9\xda\xd9\xf5\xf5\xf5\xc9\xc9\xc9\
+\xca\xcb\xca\xb3\xb4\xb3\xca\xca\xca\xaf\xb0\xae\xd5\xd6\xd4\xfa\
+\xfa\xfa\xfd\xfd\xfd\xec\x02\x5c\xcb\x00\x00\x00\x01bKG\
+D\x00\x88\x05\x1dH\x00\x00\x00\x09pHYs\x00\x00\
+\x00`\x00\x00\x00`\x00\xf0kB\xcf\x00\x00\x00\x07t\
+IME\x07\xe7\x03\x09\x06\x142\x1f\xc9N\xa7\x00\x00\
+\x00\xcfIDAT\x18\xd3c`\x80\x01F\x06t\xc0\
+\xc4\xcc\xc2\xca\xc6\xce\x81\x22\xc6\xc9\xc5\xcd\xc3\xcb\xc7/\
+ \x88$&$,\x22*&.!)%-\x03\x17\
+\x93\x95\x93WPTRVQUS\xd7\x80\x0bjj\
+i\xeb\xe8\xea\xe9\x1b\x18\x1a\x19\x9b\xc0\x05M\xcd\xcc-\
+,\xad\xacml\xed\xec\x1d\x1ca\x82N\xce.\xaen\
+\xee\x1e\xee\x9e^\xde>\x08\xf7\xf8\xfa\xf9\x07\x04\x06\x05\
+\x06\x04\x87\x84\x22l\x0f\x0b\x8f\x88\x0c\x8c\x8a\x8e\x89\x8d\
+\x8bG\x08&$&%\xa7\xa4\xa6\xa5gd\x22;>\
++;'7/\xbf\xa0\xb0\x08\xd5\xaf\xc5%\xa5e\xe5\
+\x15\x95N\x18\x01PU]S\xcb\x81!ZW\xdf\xd0\
+\x88!\xd8\xd4\xdc\xd2\xc0\x84!ZT\xdd\xda\x82!(\
+\xd3\xd6\xd2\x8e\xa9\xb4\xaa\xb1\xa3\x13C\x90\xa1\x0b\xe4R\
+\x00\xd0-*\x8fg\x18\x97\xc5\x00\x00\x00%tEX\
+tdate:create\x00202\
+3-03-08T17:27:27\
++00:008\xef\xae1\x00\x00\x00%tE\
+Xtdate:modify\x0020\
+23-03-08T17:27:2\
+7+00:00I\xb2\x16\x8d\x00\x00\x00(t\
+EXtdate:timestam\
+p\x002023-03-09T06:\
+20:50+00:00\xdd\xe8\xb2\xde\x00\
+\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x04e\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x14\x00\x00\x00\x14\x08\x03\x00\x00\x00\xbaW\xed?\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x01\xc5\
+PLTE\xe1\xe1\xe1\xda\xda\xda\xdc\xdc\xdc\xdb\xdb\xdb\
+\xf8\xf8\xf8\xff\xff\xff\xe7\xe8\xe8\xeb\xeb\xeb\xeb\xec\xec\xec\
+\xed\xed\xed\xed\xed\xee\xee\xee\xee\xef\xef\xef\xef\xef\xef\xf0\
+\xf0\xf0\xf0\xf0\xf1\xf1\xf1\xdd\xdd\xdd\xf4\xf4\xf4\xed\xee\xee\
+\xf0\xf1\xf1\xf1\xf2\xf2\xf2\xf3\xf3\xf3\xf3\xf3\xf4\xf5\xf5\xf5\
+\xf5\xf5\xf6\xf6\xf7\xf6\xf6\xf6\xf6\xf7\xf7\xd8\xd8\xd8\xe2\xe2\
+\xe2\xe8\xe8\xe8\xec\xec\xec\xf2\xf2\xf2\xdd\xe9\xdc\xee\xf2\xed\
+\xfa\xfa\xfa\xe3\xe4\xe4\xea\xea\xea\xf7\xf7\xf7\xf9\xf9\xf9\xf4\
+\xf6\xf4\x90\xbf\x8b\x95\xc2\x8d\xdd\xea\xdc\xe0\xdf\xe0\xf5\xf6\
+\xf6\xf4\xf7\xf5\x90\xbf\x88\xaa\xd2\x89\x8c\xbe{\xaa\xc3\xa9\
+\xec\xed\xec\xf9\xf8\xf9\xf8\xf9\xf9\xfb\xfb\xfb\xf5\xf8\xf6\x88\
+\xb9\x81\xad\xd3}\xae\xd4y\x83\xb8c\xa0\xc6\x9a\xeb\xf1\
+\xec\xfc\xfc\xfc\xf6\xf8\xf7}\xafs\x95\xc5P\xa3\xcfU\
+\xa1\xceT\x83\xb9I\x85\xb5q\xdc\xe7\xdc\xf7\xf6\xf7\xfd\
+\xfd\xfd\xf7\xf9\xf9r\xa4_\x81\xbd\x12\x95\xcd\x19\x93\xcb\
+\x1az\xb5\x17k\xa1G\xcc\xdd\xcd\xf8\xf7\xf8\xfe\xfe\xfe\
+r\xa0Z\x93\xce\x09\xaa\xe2\x0b\x81\xba\x0fy\xa6\x5c\xd4\
+\xe1\xd5\xde\xde\xde\xf9\xfa\xfa\xf7\xf9\xfaq\x9bV\x90\xc8\
+\x06{\xaf\x1f\x82\xa1w\xe5\xe9\xe7\xf3\xf4\xf5a\x87S\
+X\x850\xaa\xbc\xac\xd9\xdb\xdd\x8e\x9f\x92\xa9\xb2\xac\xd3\
+\xd4\xd6\xd8\xda\xdb\xde\xdf\xdf\xe0\xe0\xe0\xc5\xc6\xc6\xcf\xcf\
+\xd0\xcf\xcf\xcf\xd1\xd2\xd1\xdc\xdd\xdd\xc5\xc5\xc6\xe5\xe5\xe4\
+\xd6\xd6\xd5\xdf\xdf\xdf\xd0\xd0\xd1\xd2\xd2\xd2\xd3\xd5\xd6\xe1\
+\xe2\xe3\xe4\xe4\xe4\xbc\xbc\xbd\xce\xce\xce\xd8\xd8\xd7\xf6\xf6\
+\xf5\xd4\xd4\xd5\xcc\xcd\xcd\xc8\xc9\xc9\xdd\xdd\xde\xfa\xfb\xfb\
+\xe2\xe3\xe4\xc3\xc6\xc7\xd7\xd8\xd7\xe0\xe1\xe1\xe3\xe4\xe3\xd9\
+\xda\xd9\xdf\xe0\xdf\xe5\xe5\xe5\xe2\xe2\xe3\xd7\xda\xdb\xda\xdc\
+\xdd\xbc\xbd\xbd\xd5\xd5\xd4\xd1\xd3\xd4\xc5\xc7\xc7\xd3\xd3\xd3\
+\xdf\xe0\xe0\xd9\xda\xdb\xca\xce\xd0\xfc\xfaE\x9c\x00\x00\x00\
+\x01bKGD\x05\xf8o\xe9\xc7\x00\x00\x00\x09pH\
+Ys\x00\x00\x00`\x00\x00\x00`\x00\xf0kB\xcf\x00\
+\x00\x00\x07tIME\x07\xe7\x03\x09\x06\x142\x1f\xc9\
+N\xa7\x00\x00\x01dIDAT\x18\xd3M\xd0gS\
+\xc2@\x10\x06\xe0\xe3\xe4\xc4\x02\x18N$\x86(\x1a\x8d\
+&\xf6\x0e\xf6\xd85v={\xef\x15\xb1b\xc3.\xf6\
+^\x7f\xafw\x8c\xce\xf8~|fwv\xf6\x05\xc0\x00\
+\xff%\xcc\x88h\x80!\xdc\x14\x11\x19\x15m\xb6X\xac\
+11\x9c\x0d\x87\x10\x9ab-\xf68\x07\x8f\xe3\x05\xa7\
+\x98\x90\x98\xe8r\x81$\x00\x93\xadv\x89\xc7\x82\xe8\x14\
+SRe\x98f\x8eN7\x00\x18\xcb9()F5\
+#3+;\xc7$\xe6r\x10@3\x8fs)\xc9r\
+^~AaQq\x89\xc2S\xb4\xc6\x8b\x8a[\x96=\
+\x9e\xd2\xb2\xf2\x8a\xca\xaaj\x0f\xb6\x01h\x17\x15\x95\x92\
+\xa6\xd5\xd4\xd6\xd57465\xb7P\xe4~Mom\
+k\xef\xe8\xec\xea\xee\xe9\xa5(\xb9\x99\xe9:i\xed\xeb\
+\x1f\x18\x1c\x1a\xd6\x95\x11\x00\xf9Q9dhl|b\
+rj\x1a\x11#E\xfckdfvn~\x81~\xa4\
+2d\xcb\x84\xe8\x82kqiyE&\xc4\xbd\xcaP\
+c\xa8x\xd7|\xeb\x1bX\xc5\xbc}\x13@\x81\x0d\x22\
+-j\xcb\xb7\xbd\xc3K\xfe\xdd\xbd\xfd\x83?\xf4\x1c\x06\
+\x8e\x8eO\xa4\xd3\xad\xb3\xf3\x0b\x8d\x22=\x83\xd0e\xf0\
+\xeaZUo\x02\xb7w\xf7:\x026\xf0\xf0\x00\x0c\x87\
+\x8fO\xcf*\x12\xf6^^\x01\xa1}\xca\x8abL\x0e\
+\xc3X\xd4\x10\xc2o\xef\xdb\x84\x95\xcc\x9a\x16>\xfc~\
+\xaf\xd7\xfb\xf9\xf5\x1dd\x86~\x00\xa3\xa7N\xa9\x0f0\
+\xa84\x00\x00\x00%tEXtdate:c\
+reate\x002023-03-08\
+T17:27:26+00:00\x9e\
+\x98\xa5\x85\x00\x00\x00%tEXtdate:\
+modify\x002023-03-0\
+8T17:27:26+00:00\
+\xef\xc5\x1d9\x00\x00\x00(tEXtdate\
+:timestamp\x002023-\
+03-09T06:20:50+0\
+0:00\xdd\xe8\xb2\xde\x00\x00\x00\x00IEND\
+\xaeB`\x82\
+\x00\x00\x02\xa6\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x14\x00\x00\x00\x14\x08\x04\x00\x00\x00'\x80\xd5\x86\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x00\x02\
+bKGD\x00\xff\x87\x8f\xcc\xbf\x00\x00\x00\x09pH\
+Ys\x00\x00\xb1*\x00\x00\xb1*\x01a\xa7,\xef\x00\
+\x00\x00\x07tIME\x07\xe7\x03\x09\x06\x142\x1f\xc9\
+N\xa7\x00\x00\x01uIDAT(\xcf\x85\xd3\xb1k\
+SQ\x14\x06\xf0\xdf}}\xa1i2\x95b\x0dH2\
+i\xe8\xe0\xe4$os\xb4\x9bm\xf1\x1f\xd0\xa5E\xf0\
+\x1f\xa8\x93nBA\x10]\xc4\xbf@p\x15\xba:\x08\
+B!S\x87\x84.E\xb0\x95R\xb0$\xc6$}\xcf\
+\xe1\xbd$M\x11\xf2\xdd\xe5\x9es>\xee9\xf7\xbb\xdf\
+e\x8aD\xcb\xc0\xdfb\x0d\xb4$\xd3b\x98\xec\xaa>\
+)y\xa7/ S\xb6chK\xd754tl\xce\
+d6u4\xc6A4IgR\xbd\x19bO*\x1b\
+\x071\xaaVd\xeaJjn\x89\x8b\xcaHMI\x1d\
+\xc1\x99n\x90\xd8\xd5\x94\x8a\xddt\xae7\x99:S\xb1\
+\xec\xc4H\xa4\xede\xd0\xf2\xcb{}\xa4W\x06\xc9\x91\
+g\xca\xb6\xdd``\xc3<l\x18D2\xfd\xb9\xc4\xbe\
+,.\xb4,Y\x9d\x5c\xe3*FN\x0d\x05\x93\xe2]\
+\x1f-\xbb\x9c\xca\x81`\xc1\xb9'\x0e\xc6\xf2d\xe8\xd8\
+\xf3\xda\x07\xdf,\x14\xb4K\xf7=\xb5\xa7\x9d3bA\
+\x19\x17\xf6\xfd\xf6\xd5\x97\x99\xb6\x8f\xed\xbb@Y\x88\x1d\
+\xda\x11\xf4\xd4T\x045\xf7\x8a\xb7>\x10T<\xf4S\
+\xc5\xb6\xc3 \xf1\xc2\x1d\xa9\x92U\x8f\xacxU\x9c\xb7\
+\xeb\xccg\xa7\x86\xb9\xe0\xb9o\x1a\xea\x12G\xd6-j\
+Z\xb3\xa6i\xd1\xba#\x89\xba\x86j~\x99na\xa5\
+\x91\xd4\x03\xcf\x8b\xd6o\xa4F\x8e\x1dOM1\x16#\
+\xb2\xa4\xed\xbb\x08\xa9\x1fn\x8b\xa6~\xbdn\xdc\xb7\xfe\
+\x14\xf1\x92g\xff7\xee\x9c\xaf\xf0\x0fs(t\xfdd\
+$_B\x00\x00\x00%tEXtdate:\
+create\x002023-03-0\
+8T17:21:49+00:00\
+\xa3\xa1\xac\xac\x00\x00\x00%tEXtdate\
+:modify\x002023-03-\
+08T17:21:49+00:0\
+0\xd2\xfc\x14\x10\x00\x00\x00(tEXtdat\
+e:timestamp\x002023\
+-03-09T06:20:50+\
+00:00\xdd\xe8\xb2\xde\x00\x00\x00\x00IEN\
+D\xaeB`\x82\
+\x00\x00\x06\xbc\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x08\x03\x00\x00\x00\xbb H_\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x02\xb2\
+PLTE\xff\xff\xff\xf3\xf3\xf3\xe9\xe9\xe9\xfd\xfd\xfd\
+\xc1\xc1\xc1\xc7\xc7\xc7\xd0\xd0\xd0\xd1\xd1\xd1\xfc\xfc\xfc\xbc\
+\xbc\xbc\xeb\xec\xec\xf2\xf2\xf3\xf0\xf1\xf1\xf1\xf1\xf2\xf1\xf2\
+\xf2\xf2\xf3\xf3\xf3\xf4\xf4\xf4\xf4\xf4\xf4\xf5\xf5\xf5\xf5\xf5\
+\xf5\xf6\xf6\xf6\xf7\xf7\xf7\xf7\xf7\xf8\xf9\xf9\xed\xed\xed\xbd\
+\xbd\xbd\xe8\xe9\xe9\xe8\xe9\xea\xe7\xe8\xe8\xe9\xea\xea\xea\xeb\
+\xea\xeb\xec\xeb\xec\xed\xed\xed\xee\xee\xee\xee\xee\xe5\xe6\xe6\
+\xe0\xe0\xe0\xe0\xe1\xe1\xf1\xf1\xf1\xf2\xf2\xf2\xeb\xeb\xeb\xea\
+\xea\xeb\xe9\xea\xe9\xec\xec\xea\xea\xeb\xeb\xda\xe2\xec\xdb\xe3\
+\xed\xef\xef\xed\xef\xef\xee\xf0\xf0\xee\xf0\xf0\xef\xf1\xf1\xef\
+\xae\xae\xae\x9a\x9a\x9a\xa3\xa3\xa3\x97\x97\x97\xf5\xf4\xf4\xf3\
+\xf3\xf2\xf4\xf4\xf2\xf4\xf4\xf3\xf5\xf4\xf3\xdf\xe7\xf3\xe4\xea\
+\xf3\xf6\xf5\xf3\xbe\xbe\xbe\xd6\xdf\xeb\xa4\xc3\xedu\xa8\xef\
+[\x99\xf1\x90\xb8\xf0\xb0\xcb\xf0\xb4\xce\xf1\xb9\xd1\xf2\xbd\
+\xd3\xf2\xc1\xd6\xf3\xc5\xd8\xf2\x9e\xa4\xad\xce\xce\xce\xc0\xc0\
+\xc0\xa9\xaf\xb8\xd4\xe3\xf8\xcd\xde\xf6\xc7\xdb\xf5\xc2\xd7\xf5\
+\xbc\xd4\xf4\xb6\xd0\xf4\x8a\xb6\xf3Z\x9a\xf2{\xac\xf2\xb0\
+\xcc\xf3\xe7\xed\xf5\xec\xec\xec\xd2\xdd\xec\x90\xb7\xee]\x9a\
+\xf0K\x90\xf2\x84\xb1\xf1\x9e\xc1\xf2\xa3\xc4\xf2\xa9\xc8\xf3\
+\xaf\xcc\xf4\xb5\xcf\xf4\xba\xd2\xf4\x9b\xa4\xaf\xd4\xd4\xd3\xc4\
+\xc4\xc4\xa5\xae\xb9\xcc\xdf\xf9\xc3\xd9\xf7\xbb\xd4\xf7\xb4\xcf\
+\xf6\xac\xcb\xf5\xa5\xc7\xf5~\xaf\xf4I\x8f\xf3a\x9d\xf2\
+\x9a\xbe\xf3\xe3\xeb\xf6\xbe\xbd\xbd\xed\xed\xec\xee\xee\xed\xe6\
+\xea\xee\xcf\xdd\xef\xd8\xe2\xf0\xf1\xf1\xf0\xf2\xf2\xf0\xf2\xf2\
+\xf1\xf3\xf3\xf1\xac\xac\xab\x9f\xa0\xa0\xad\xad\xad\xbb\xbb\xbb\
+\xf8\xf8\xf7\xf6\xf6\xf5\xf7\xf7\xf5\xf7\xf7\xf6\xf8\xf7\xf6\xd7\
+\xe4\xf6\xd8\xe5\xf6\xf0\xf3\xf6\xf8\xf8\xf6\xf8\xf8\xf8\xea\xea\
+\xea\xee\xef\xef\xf0\xf1\xf0\xe1\xe2\xe2\xd6\xd6\xd6\xd7\xd7\xd7\
+\xe7\xe7\xe7\xf6\xf6\xf6\xf9\xf8\xf7\xef\xef\xef\xef\xf0\xf0\xf7\
+\xf8\xf8\xf9\xfa\xfa\xf9\xf9\xf9\xfa\xfb\xfb\xf0\xf0\xf0\xfa\xfa\
+\xfa\xfb\xfb\xfb\xfe\xfe\xfe\xbc\xbc\xbd\xe5\xe7\xe8\xbb\xbc\xbc\
+\xe8\xe8\xe8\xe4\xe4\xe4\xe2\xe2\xe2\xe3\xe3\xe3\xe8\xe8\xe9\xd7\
+\xdb\xdd\xba\xba\xbb\xfd\xfd\xfc\xd9\xda\xda\xd1\xd1\xd2\xcb\xcb\
+\xcc\xc8\xc8\xc9\xcc\xcd\xce\xd2\xd5\xd7\xb3\xb6\xb7\xd5\xd5\xd5\
+\xde\xde\xde\xbf\xc0\xc1\xb5\xb6\xb7\xb4\xb4\xb5\xc0\xc1\xc1\xcd\
+\xce\xce\xb6\xb7\xb7\xc7\xc8\xc8\xb4\xb5\xb5\xb7\xb8\xb8\xc3\xc4\
+\xc5\xdd\xdd\xdc\xbc\xbd\xbb\xd2\xd3\xd2\xce\xce\xcf\xb3\xb4\xb5\
+\xcc\xcd\xcd\xe6\xe6\xe5\xbe\xbf\xbd\xd4\xd4\xd4\xd7\xd7\xd8\xc0\
+\xc0\xc1\xa9\xaa\xab\xdd\xdd\xde\xe5\xe5\xe4\xd5\xd5\xd4\xe5\xe5\
+\xe6\xb4\xb5\xb6\xac\xad\xae\xe1\xe1\xe1\xae\xae\xaf\xc1\xc2\xc2\
+\xe3\xe4\xe3\xbf\xbf\xbe\xd6\xd6\xd5\xde\xde\xdf\xc4\xc4\xc5\xdf\
+\xdf\xdf\xc6\xc7\xc8\xc1\xc4\xc6\xba\xba\xba\xfb\xfc\xfc\xe3\xe5\
+\xe6\xca\xd0\xd3\xc6\xc6\xc6\xc4\xc5\xc5\xbf\xc2\xc3\xb9\xbd\xbf\
+\xad\xb1\xb3\xd4\xd5\xd5\xe4\xab\x9e\xc5\x00\x00\x00\x01bK\
+GD\x00\x88\x05\x1dH\x00\x00\x00\x09pHYs\x00\
+\x00\x00`\x00\x00\x00`\x00\xf0kB\xcf\x00\x00\x00\x07\
+tIME\x07\xe7\x03\x09\x06\x12)\xc3\xf6 \xcd\x00\
+\x00\x02\xceIDAT8\xcb\x95\xd4\x87S\xd3`\x18\
+\x06\xf0\xa4\xa1XjMGh\xda\xe2j+\xa6UQ\
+\x11EE\x1c\xb8'\xee]\xf7\xde{\x0f\x5c(\xae\x8a\
+\xa2Qj\xa5\xad\x03q\xe0\x02\x9c8Apoq\x0f\
+\x5c\xff\x87\xdf\x974\xc9\x97\xb6z\xfa\xdc\xf5z\x97\xfc\
+\xeey\xf3~\xcd\x15\xc3\xfe'\xb8\xe2\xaf\xc1\x05GD\
+)\xa3\xff\x9c\x1a\xca(\x22\x08U1\xea\x9a\x9aZ\xa4\
+V\x8b\xeb\xf4\x06\x03\x15k4\xd2F\x10\x9a\x8f\xc9\x1c\
+\xa3\x12\xa0%\xaev\x9d\xb8\xba\xf5\xea\xab\xadV\x9b\xcd\
+\xde >\xbe\xa1B\xa3a\x18\x92t8H\x12wZ\
+$\xa8h\xd4\xb8IB\xd3f\xcd\x13[$\xb5Ll\
+\x95\xdc\xba\x8d\xa5mJ\xbb\xd4\xf6\xa9\x1d:\xe2\x9d(\
+\x04\xa6)\xd4\x9d\xbbt\xed\xd6\xbdG\xcf^\xbd\xfb\xf4\
+\xed\x97n\xeb?`\xe0\xa0\xc1C\x86\x0e\x1b>b\xe4\
+\xa8\xd1.\x14Z\xc7\x8c\x1d7~\xc2\xc4I\x93\xa7L\
+\x9d6}\x065s\xd6\xec9s\xe7\xcd_\xb0p\xd1\
+\xe2%K\x11\xb8\xac\xaem\xf9\x8a\x95\xabV\xafY\x9b\
+\xb1.%c\xfd\x86\x8d\xc9\x9b27o\xc9\xda\x9a\xb5\
+m\xfb\x8e\x9dn\x04Zv\xd9\xad\xb6\xec\xa4\xdd\x1a\x86\
+th\xf1=99{\xf7\xb1,\xdc:s\x7f&m\
+\x92\xc1l[\xf6\x81\x5c\x0d\xe3\x80'\xc4\xd2\xb4\x1b \
+\x8f\x9b\xcfA\x19\xcc\x85\x0e\xd4\x81\x83\xa4bYN\x99\
+\xbc|\x0eYQ\x98\xc79P\x07\x98\x91\xe6\x94/\x18\
+\xbf\x19\x85\x1a\xc1\xb1,h\x13\x94\x1fF\x85\xc2\x04\x92\
+s\x06\x8a\xab\xf3\x8a(\x0c:\x1d\x0c\xef\xc0\x1e\x5c\x9d\
+\xa8@dPKj\xe1\x5c\xe8\xc4\x91\xc1\x102\xa8\x0b\
+u\x22\x0b\x81z\x5c\xcf=_\xd0\xf1\x86O@\x06\x0d\
+:\x038>\xe8\x84:\x82\x88\x08)88\xe8D\x16\
+\xe0\x82\xd9Q\x18\x0b\x06{x(\xb8@ \x02T\xb3\
+\xb2B\x81\xf1\xb7Q\xe8b#8p'\xac\xd1e\x14\
+\xa0\xe8\x80\x22T\xdcf\xea\xc3\xd2\x1b\xee\xa2\x8d\x1e\xa1\
+Pp\x84\xcaGS8\x8eSG\x8e\x22\xd0\x83\x16\xf2\
+\xceG;\xcc\xc7\xf2\x8f\x17\x9c8y\xea\xb4\x04\xdd\x10\
+J\x85\xd0Q\xf6\xfc\xc23g\xcf\x9d\xbfPT\x8c!\
+\xd0#/$|zWI\xfa\xc5K\x97\xaf\x5c\xbd\x16\
+\xadB\xa10\x99/\x0c\xf8YsI\xe9\xf5\x1b7\x0b\
+o\xdd\xbe#\xfc\xa1p\xd0$M\xe6\x0a\xbdLAY\
+\xf9]\xda]QyOr\x10zQ\x08\xae\xb0\xce\xfb\
+\x0f\x1e>\xf2?\xae|\x828\x09\x06\x1f\x11L\xc6\x9f\
+\x96={\xee\xac\xa8,F\x1d?\xda\x87B\x1f\xf3\xa2\
+\xf4\xe5\xab\xd7Uod\x8eoDw!\xbcyo\xdf\
+\x95GW\xe5\xc8\x9d\xb4\x8c\xb8\xb4\x97y\xff\xe1\xe3\xa7\
+P\x07~k;\xa1\x12_\x04\x98\xcf\xba/_\x8b\x8a\
+C\x1dF\xc4\xa4)\xab\xab\xab\x95J%\xfc\xc0\xafo\
+\xdf\x7f\xfc\xfc\x15\xe60\xcc\x1c\x1f\x1eE\x04\xf7O\xf9\
+\x0d]\x11i{\xdc\x1a\xbd\x00\x00\x00\x00%tEX\
+tdate:create\x00202\
+3-03-08T17:27:26\
++00:00\x9e\x98\xa5\x85\x00\x00\x00%tE\
+Xtdate:modify\x0020\
+23-03-08T17:27:2\
+6+00:00\xef\xc5\x1d9\x00\x00\x00(t\
+EXtdate:timestam\
+p\x002023-03-09T06:\
+18:41+00:00=\x00\x9f\x01\x00\
+\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x07\x8d\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x08\x03\x00\x00\x00\xbb H_\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x02\x01\
+PLTE\x00\x00\x00A\xcdRA\xcdRA\xcdR\
+A\xcdRA\xcdRA\xcdRA\xcdRA\xcdRA\
+\xcdRA\xcdRA\xcdRA\xcdRA\xcdRA\xcd\
+RA\xcdRA\xcdRA\xcdRA\xcdRA\xcdR\
+A\xcdRA\xcdRA\xcdRA\xcdRA\xcdRA\
+\xcdRA\xcdRA\xcdRA\xcdRA\xcdR@\xcd\
+Q>\xccO?\xcdQS\xd2bu\xdb\x82\x8a\xe0\x95\
+\x8c\xe1\x97|\xdd\x88[\xd4jB\xcdS\x82\xde\x8d\xdc\
+\xf6\xdf\xfb\xfe\xfb\xff\xff\xff\xfe\xff\xfe\xe8\xf9\xea\x9c\xe5\
+\xa5H\xcfY\xa0\xe6\xa9\xb8\xec\xbeb\xd6p?\xcdP\
+?\xccPp\xd9}\xef\xfb\xf1\xd7\xf4\xda\xa8\xe8\xb0\xa3\
+\xe7\xab\xc9\xf1\xcd\xfc\xfe\xfc\xfd\xfe\xfd\x91\xe2\x9aL\xd0\
+\x5c\xd9\xf5\xdd=\xccOD\xceT\xb9\xed\xc0\xcb\xf1\xd0\
+T\xd2d\xac\xe9\xb3\xda\xf5\xddP\xd1`C\xceTW\
+\xd3f}\xdd\x89J\xcfZU\xd2d\xe3\xf8\xe5\x84\xdf\
+\x8f>\xccPd\xd6r\xf0\xfb\xf1\xf7\xfd\xf8m\xd9z\
+t\xda\x80\xe3\xf8\xe6\xbb\xed\xc1h\xd7v\xf4\xfc\xf5\xf2\
+\xfc\xf3N\xd0^\x86\xdf\x91w\xdb\x83\xe4\xf8\xe6\xf9\xfe\
+\xfa\xeb\xfa\xed\xe5\xf8\xe7\xc4\xf0\xc9M\xd0]t\xda\x81\
+\xe9\xf9\xebY\xd3gG\xcfW\xcd\xf2\xd2\x97\xe4\xa1D\
+\xceU^\xd5l\xdb\xf6\xde\x82\xde\x8eQ\xd1ax\xdb\
+\x84V\xd3eF\xceV\xc9\xf1\xce=\xccNK\xd0[\
+t\xdb\x81Y\xd3h\xcd\xf2\xd1M\xd0\x5c\xd7\xf5\xdbu\
+\xdb\x81e\xd6r\x89\xe0\x93o\xd9|\xd6\xf4\xdav\xdb\
+\x83\xd2\xf3\xd6_\xd5mC\xcdSQ\xd1`\xb3\xeb\xba\
+O\xd1_H\xcfX\xcf\xf2\xd3\x95\xe3\x9eN\xd1^l\
+\xd8y\xeb\xfa\xec\xe6\xf8\xe8\xc1\xef\xc7\xbd\xee\xc3\xda\xf5\
+\xde\xfd\xff\xfd\xf3\xfc\xf4\x83\xdf\x8f\xaf\xea\xb6\xe0\xf7\xe3\
+\xc5\xf0\xcav\xdb\x82\xf0\xfb\xf2\xfb\xfe\xfc\xba\xed\xc0`\
+\xd5o\xc2\xef\xc8\xe6\xf9\xe9\xbf\xee\xc5O\xd1^I\xcf\
+Za\xd6pr\xda~q\xda~\xe7\xf9\xeae\xd7s\
+B\xcdR\xd5\xf4\xd8\xb7\xec\xbeE\xceU@\xcdRz\
+\xdc\x86\xbc\xed\xc2\xc7\x19\xe3\xf1\x00\x00\x00\x1dtRN\
+S\x00\x00\x19SV\x15\x1c\xb2\xfe\xf5?\xb3\xf6\x16\xb1\
+>\xf7\xf3:\xfc\x8d\x0b\xe3\xec\xea\x8c)+\x09\xb3C\
+\xa1\x1d\x00\x00\x00\x01bKGD+$\xb9\xe4\x08\x00\
+\x00\x00\x07tIME\x07\xe7\x03\x09\x06\x12)\xc3\xf6\
+ \xcd\x00\x00\x02UzTXtRaw pr\
+ofile type xmp\x00\x00\
+8\x8d\x95UK\xb2\xe30\x08\xdc\xeb\x14s\x04\x19\x10\
+H\xc7\xb1#k7U\xb3\x9c\xe3O\x83\x9c\xbc\xc4\xf1\
+{\xa9\x89\xabd\x0b!\x1a\x9aO\xd2\xdf\xdf\x7f\xd2/\
+\xffY\xd5\xc47\x1eV-\xeb\xa2\xac\x9b\x16\x13\xcaJ\
+Z\xd4\xb4\xe9\xce\x9dh\x1f\xdb\xb6\x0d\x22\xc8\x9b\x8aK\
+\x8aq\x91\xceY\xbaea\xe8VmI\xaa\xad\x86\x8b\
+\x85m\x95\xbd\x88\xe2\x0d\x83\xcc\xb8D\xc4\x83w\xca|\
+\xb3\xca+`qQ\xbb\x83\xe9B\xd9\xf7z\xd3\xdd\xd8\
+\xcf\x92#\xc0\x1b\xd1\xe1~\xf0:\x0f\x1e\xea\xe1\xc9\x97\
+\x19\xc86\xbf!\x8f\x1b\x94K\x95^r\x22wnX\
+\x88\xb8\xd0\xceJ\x1d\xfe,\xfe@b\xdc [\xb8p\
+ef\x82\xc6\x0dR\xe2\xec2\x1ax7\xac\x0b\xc3P\
+\x0f\xe1\xea\x1b\xacP\xa1\xf3CGx\x04/\x94\xd7B\
+\x22\xa2\xa7\xd0(\xc5\xa1\x87WM\xf0\xc0\x18\xc2\x19\x16\
+?\xda\x0dZ\xb4\x87\xc7\x16\xc8\xcd\x9f\xf0\x84\xb0\x12\xd6\
+>\x01\xe0\x91\xb1!?\xce\x88U\x84\x05\x04?\x7f\xf5\
+\x02. UH\x04i\x0b\xa6\x1a\x18\x82\xc6\xfd\x5c\x97\
+\x04\xc2\x86\x81X\xf7j\x12\xfb\x9c\x0b'X:R\xfd\
+\xe6s\x00\xee_iJ\xd8\x80l\xed\x08\xa7\xc2\xa7\xec\
+\x01\x80^\xbca\xb0\xdf\xb3\xf6d\x9cM\x8a\xd7\xd9\x89\
+\x90te\xfd{\xe3^\x89\x86\xe0\xa03\xdc\x9cq\xc4\
+C\xca\x09\xa5\x18\xf6\x9d\x97\xab\xc0>\x075a\xd3\x15\
+\xee\xdd\xe4\xc1\x8fS=@t\xf12\xf5\xb4H\x93\xe0\
+t\xea\xc0\x10\xc8G\xfa]Q\x08\xbd\x81\xca\x14Fj\
+\x1a\x92\xcb\x90DYJ\x09I\x8do\xe1\x06\xbdE\x16\
+\x992X\xc7.\x92\x94^\x90\xbd\x0c\xd8\x0bA\xdd\xdd\
+\xf2\x86\xdc\xa2m\xcf\xc0\xd5\x81\xd3\xff\x22\x1f\xcc\xad\xe2\
+5U@\x89x\xb9\x16I\x88~\xe8\xed\xad\x113F\
+\xc3\x08%\x8e\xaf\xec=)\xfc\xd4g\x99\xd0\xac1|\
+\xa2\x9c\xd3T\xa5\xf6\xa8\xe5W\x92K\xd4\xb2\x02\x1b\x1b\
+|{Q\xe4\xa7ZZ\xf5\xa0#}\xe2\x03\xa19\x13\
+Y\xd4GU\x84\x5c\xa5\x1c\x14\x14\x94\x15\x22\xc1\x5c(\
+\x09b\x09&\xd0\x90\xee<VWY\x82\x8fg\xe4\x0f\
+%\xe0\xdd\x7f\x81\x1c4_\x22\x7f\x07\x9c\xc8\xc7A\xb0\
+C\xe3\xe7^?k\xcd\xb9t\x97\xa6\xf7i<\x8f.\
+\xfe\x12\x10\xd2\x1c\xfeFs\x9a\xa7\x7fk\xe1n\xf4\xf3\
+\x1f\xe7\x80\x00\x00\x01\xb6IDAT8\xcbc`\x18\
+\x05\x84\x01#~\x80\xac\x8e\x89\x99\x05\x07`feD\
+R\xc7\xc6\xce\x81\x0bpr1\x22\xa9\xe3\x96\xc5\x09x\
+\x90\x14\xc2\xd4\xc9\xc9\x03\x81\x02n\x85\xbc|Pu\x8a\
+J\xca*\xaaj\xear@\xb6\xba:\x16\x85\xfc\x02`\
+\x11u\x0dM-mm\x1d]=}9Y}\x03C\
+#c\x0c\x85\x5c< \x01\x13S3ms\x0bK+\
+k\x1b[99;{m%\x079\xec\x0a\x1d\x9d\xb4\
+\x9d]LL\xf4]\xb5\xdd\xdc=<\xdd\xac\xbd\xbc\xbd\
+\xd5\xb1)\x94\xf3\xf1\xd5\xf1s\x90\x95\xf5\x0f\x08\x0c\x0a\
+\x0eq\x0b\xd2\x09u\x0b\xb3\x93\xc3\xa2\xd0$<\x222\
+\xc0\x04\xa8!\xcaM;:&6N;>!1\x09\
+\x9bB\xf9d\xad\x94TP\xd0\xa4\xa5kgdfe\
+[\xe7\xe4\xbac\xb5Z>\xcf&!\x1fdBA\xa1\
+\xb6^Q\xb1\xb9uI\x11v\xcf\x80L,\x05\x9bX\
+\xa6\x9d\xe1P^a])\x8f=x@n\xac\x82\xba\
+\xb1\xda!\x09\xb7B\xa0\xaf\xb5\xa3\x8b\x80&\x03}]\
+#oWkS\x87\xc3jY\x0fC\xed\xfa\x06\x8f\xc6\
+\xa6fm\xf3\x16\xb9\xd66\xed\xf6\xa8\x0eu\xec1\xd3\
+\xd9\xa5\xdd\xdd\xd3\xdb\xd7?a\x22\xd0\xa9\x93\xb4'L\
+\x9e\x12\x85-x\x80`\xaa\xf34\xad\xe9:\xda32\
+\x81\x0e\x999+a\xf6\x9c\xb9 \x85\x02\x98\x0a\x8d\xe7\
+\xcd_\xb0\xd0B{\xd1b\x90\x9f\xd2||\xbc\x97\x80\
+D\x05\x850\x14\xca\xca\x99\xc8\x17\xe5.\xd5^\xb6\x1c\
+\xcc\x91[\x01\xa2\x84ED1\x15\x82\x9d\xbar\xd5T\
+\x0f\x04\x17\xa4\x0e\xa1P\x009E\xabg\x9a\xa0\xa9\x83\
++\x14\x12\x13\xc7\x01$$E\x913\xab\xa8\x944\x0e\
+ %\x83\x96\xab\x89\xca\xfd\xa3\x007\x00\x00\xf0%\x81\
+`\xd6*Oa\x00\x00\x00%tEXtdat\
+e:create\x002023-03\
+-08T17:21:49+00:\
+00\xa3\xa1\xac\xac\x00\x00\x00%tEXtda\
+te:modify\x002023-0\
+3-08T17:21:49+00\
+:00\xd2\xfc\x14\x10\x00\x00\x00(tEXtd\
+ate:timestamp\x0020\
+23-03-09T06:18:4\
+1+00:00=\x00\x9f\x01\x00\x00\x00\x19t\
+EXtSoftware\x00Adob\
+e ImageReadyq\xc9e<\
+\x00\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x05\xcb\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x14\x00\x00\x00\x14\x08\x03\x00\x00\x00\xbaW\xed?\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x012\
+PLTE\x00\x00\x00A\xcdRA\xcdRA\xcdR\
+A\xcdRA\xcdRA\xcdRA\xcdRA\xcdRA\
+\xcdRA\xcdRA\xcdRA\xcdRA\xcdRA\xcd\
+RA\xcdRA\xcdRA\xcdRA\xcdRA\xcdR\
+A\xcdR=\xccN?\xccPA\xcdRA\xcdRA\
+\xcdR?\xccPB\xcdRB\xcdS@\xcdQD\xce\
+U\x81\xde\x8c\xb7\xec\xbe\xb9\xed\xbf\x8b\xe0\x95G\xceW\
+F\xceWt\xda\x81N\xd0]t\xda\x80\xdf\xf6\xe2\x91\
+\xe2\x9b\x8a\xe0\x94\xdc\xf6\xdf\x83\xde\x8eZ\xd4h\xd7\xf4\
+\xdau\xdb\x82G\xcfX\xa7\xe8\xae\xb6\xec\xbd<\xccM\
+\xa4\xe7\xac\x9c\xe5\xa5\xf4\xfc\xf5\xd3\xf3\xd7|\xdd\x88\xa3\
+\xe7\xab>\xccP>\xccO\x90\xe2\x9a\xc5\xf0\xcab\xd6\
+p\xd9\xf5\xdcy\xdc\x85I\xcfY\xb2\xeb\xb9\xa8\xe8\xb0\
+=\xccN\x95\xe3\x9e\xc1\xef\xc7T\xd2ce\xd6s\xd0\
+\xf3\xd5X\xd3gQ\xd1a\xc1\xef\xc6\xa2\xe7\xaaN\xd1\
+^\xd6\xf4\xd9}\xdd\x89H\xcfY\xbd\xee\xc3\xd0\xf3\xd4\
+\xd5\xf4\xd9\xe1\xf7\xe4^\xd5mC\xceT\xaa\xe9\xb2\xd4\
+\xf4\xd8~\xdd\x8a`\xd5n~\xdd\x89\xdb\xf5\xdem\xd9\
+zH\xcfXW\xd3fJ\xcfZ@\xcdRp\xd9|\
+V\xd3e\xff\xff\xff@\xa6,*\x00\x00\x00\x19tR\
+NS\x00\x00\x01\x10\x80\xa4\xa3\xa5`\x9a\x99y\x96\x98\
+\xfbn\x86\x09Q\x8c\x89\x89\x89\x8bhy\xb4\xc5\xfa\x00\
+\x00\x00\x01bKGDe\xb5\xdd\x88\x9f\x00\x00\x00\x07\
+tIME\x07\xe7\x03\x09\x06\x142\x1f\xc9N\xa7\x00\
+\x00\x02UzTXtRaw profi\
+le type xmp\x00\x008\x8d\x95\
+UK\xb2\xe30\x08\xdc\xeb\x14s\x04\x19\x10H\xc7\xb1\
+#k7U\xb3\x9c\xe3O\x83\x9c\xbc\xc4\xf1{\xa9\x89\
+\xabd\x0b!\x1a\x9aO\xd2\xdf\xdf\x7f\xd2/\xffY\xd5\
+\xc47\x1eV-\xeb\xa2\xac\x9b\x16\x13\xcaJZ\xd4\xb4\
+\xe9\xce\x9dh\x1f\xdb\xb6\x0d\x22\xc8\x9b\x8aK\x8aq\x91\
+\xceY\xbaea\xe8VmI\xaa\xad\x86\x8b\x85m\x95\
+\xbd\x88\xe2\x0d\x83\xcc\xb8D\xc4\x83w\xca|\xb3\xca+\
+`qQ\xbb\x83\xe9B\xd9\xf7z\xd3\xdd\xd8\xcf\x92#\
+\xc0\x1b\xd1\xe1~\xf0:\x0f\x1e\xea\xe1\xc9\x97\x19\xc86\
+\xbf!\x8f\x1b\x94K\x95^r\x22wnX\x88\xb8\xd0\
+\xceJ\x1d\xfe,\xfe@b\xdc [\xb8pef\x82\
+\xc6\x0dR\xe2\xec2\x1ax7\xac\x0b\xc3P\x0f\xe1\xea\
+\x1b\xacP\xa1\xf3CGx\x04/\x94\xd7B\x22\xa2\xa7\
+\xd0(\xc5\xa1\x87WM\xf0\xc0\x18\xc2\x19\x16?\xda\x0d\
+Z\xb4\x87\xc7\x16\xc8\xcd\x9f\xf0\x84\xb0\x12\xd6>\x01\xe0\
+\x91\xb1!?\xce\x88U\x84\x05\x04?\x7f\xf5\x02. \
+UH\x04i\x0b\xa6\x1a\x18\x82\xc6\xfd\x5c\x97\x04\xc2\x86\
+\x81X\xf7j\x12\xfb\x9c\x0b'X:R\xfd\xe6s\x00\
+\xee_iJ\xd8\x80l\xed\x08\xa7\xc2\xa7\xec\x01\x80^\
+\xbca\xb0\xdf\xb3\xf6d\x9cM\x8a\xd7\xd9\x89\x90te\
+\xfd{\xe3^\x89\x86\xe0\xa03\xdc\x9cq\xc4C\xca\x09\
+\xa5\x18\xf6\x9d\x97\xab\xc0>\x075a\xd3\x15\xee\xdd\xe4\
+\xc1\x8fS=@t\xf12\xf5\xb4H\x93\xe0t\xea\xc0\
+\x10\xc8G\xfa]Q\x08\xbd\x81\xca\x14Fj\x1a\x92\xcb\
+\x90DYJ\x09I\x8do\xe1\x06\xbdE\x16\x992X\
+\xc7.\x92\x94^\x90\xbd\x0c\xd8\x0bA\xdd\xdd\xf2\x86\xdc\
+\xa2m\xcf\xc0\xd5\x81\xd3\xff\x22\x1f\xcc\xad\xe25U@\
+\x89x\xb9\x16I\x88~\xe8\xed\xad\x113F\xc3\x08%\
+\x8e\xaf\xec=)\xfc\xd4g\x99\xd0\xac1|\xa2\x9c\xd3\
+T\xa5\xf6\xa8\xe5W\x92K\xd4\xb2\x02\x1b\x1b|{Q\
+\xe4\xa7ZZ\xf5\xa0#}\xe2\x03\xa19\x13Y\xd4G\
+U\x84\x5c\xa5\x1c\x14\x14\x94\x15\x22\xc1\x5c(\x09b\x09\
+&\xd0\x90\xee<VWY\x82\x8fg\xe4\x0f%\xe0\xdd\
+\x7f\x81\x1c4_\x22\x7f\x07\x9c\xc8\xc7A\xb0C\xe3\xe7\
+^?k\xcd\xb9t\x97\xa6\xf7i<\x8f.\xfe\x12\x10\
+\xd2\x1c\xfeFs\x9a\xa7\x7fk\xe1n\xf4\xf3\x1f\xe7\x80\
+\x00\x00\x00\xc7IDAT\x18\xd3c` \x010b\
+\x00\x88\x18\x13\x12\x00\x09\x0213\x0b+\x1b\x1c\xb0s\
+\x80\x05\x999%%\xa5\xa4e\xa4\x80\xa4\xac\xa4\xa4$\
+\x17X\x90[RRN^AQIYEU\x0d(\
+\xca\x03\x16\xe4\x95\x94R\xd7\xd0\xd4\xd2\xd6\xd1\xd5\xd37\
+\x80\x09\xf2HJ\x19\x1aI\x19\x9b(\x9a\x9a\x99[H\
+\xc1\x05e\x8d,\xad\xacml\xed\xec\x1d\x1c\x11*e\
+\x9d\x9c\xad]\x5c\xdd\xdc\xcd=\xac\x11\x82\xd6\x9a\x9e^\
+\xde>\xbe~\xfe\x01\x81H*\xdd\x83\x82CB\xc3\xc2\
+#\x22\xa3\xa4$y\xa1\x82\x92\xb2\x8e\xd11\xb1qV\
+\xf1\x09\x89\x92|\xfcP'IJ&II&\xa7\xc8\
+J\xcaJ\xf2\x09\x08\x82\x05\x85\x84E@@T\x0cH\
+\x88K\x08B\xfd\x8e\x19H\x94\x01\x00\x059\x1c\xdc\x03\
+n)\xb6\x00\x00\x00%tEXtdate:\
+create\x002023-03-0\
+8T17:21:49+00:00\
+\xa3\xa1\xac\xac\x00\x00\x00%tEXtdate\
+:modify\x002023-03-\
+08T17:21:49+00:0\
+0\xd2\xfc\x14\x10\x00\x00\x00(tEXtdat\
+e:timestamp\x002023\
+-03-09T06:20:50+\
+00:00\xdd\xe8\xb2\xde\x00\x00\x00\x19tEX\
+tSoftware\x00Adobe \
+ImageReadyq\xc9e<\x00\x00\
+\x00\x00IEND\xaeB`\x82\
+\x00\x00\x16:\
+\x1f\
+\x8b\x08\x00\x00\x00\x00\x00\x00\x00\xed}[s[9\x92\
+\xe6\xfb\xfc\x0a\xad\xfa\xa5\x1dCB\x99\x89\xbc\xc1U\xee\
+\x89YW\xf4DGT\xc7l\xect\xc7\xee[\x07-\
+\x1e\xd9\xda\x96E\x05I\x95\xad\xfa\xf5\x0b\xc0$\x0f!\
+\xd2\xa4(SV\xd9S\x94\xabx\x90H\x5c\xf2C^\
+\x80\xc3\x03\x9c\x1f\xff\xed\xe3\xfb\xab\x93_\xba\xe9\xecr\
+r\xfd\xea\x14\x03\x9c\x9et\xd7\xe7\x93\xf1\xe5\xf5\xdbW\
+\xa7\x7f\xff\xdb\x9f\x87~z2\x9b\x8f\xae\xc7\xa3\xab\xc9\
+u\xf7\xea\xf4zr\xfao\x7f\xfa\x97\x1f\xff\xc7px\
+\xf2z\xda\x8d\xe6\xdd\xf8\xe4\xc3\xe5\xfc\xdd\xc9_\xae\xff\
+9;\x1f\xddt'\x7f|7\x9f\xdf\xbc<;\xfb\xf0\
+\xe1C\xb8\x5c\x10\xc3d\xfa\xf6\xec\xc5\xc9p\x98K\xce\
+~y\xfb/'''\xb9\xd9\xeb\xd9\xcb\xf1\xf9\xab\xd3\
+\x05\xff\xcd\xed\xf4\xaa\xf2\x8d\xcf\xcf\xba\xab\xee}w=\
+\x9f\x9da\xc0\xb3\xd3\x9e\xfd\xbcg?/\x8d_\xfe\xd2\
+\x9dO\xde\xbf\x9f\x5c\xcfj\xc9\xeb\xd9\x1f\xd6\x98\xa7\xe3\
+\x8b\xcc\xddw\xe6C\xacL\x98R:\x03:#\x1af\
+\x8e\xe1\xec\xeez>\xfa8l\x8b\xe6>n+J\x00\
+p\x96\xf3z\xce\x87q\xbd\xfcx\x95\x91\xf8lgj\
+\xeez\xeb\x19\xfd\x9b\xfc\xdf\xaa\xc0\x92\x10f\x93\xdb\xe9\
+yw\x91Kv\xe1\xba\x9b\x9f\xfd\xf4\xb7\x9fV\x99C\
+\x08\xe3\xf9x\xad\x9a%\xf8M\xbb\xcd\x88\x5c\x8f\xdew\
+\xb3\x9b\xd1y7;[\xd2K\xf9<\xa0\xe3\xf9\xbb\xac\
+\x0c\xe45\xf9\xae\xbb|\xfbn\xde\xa7/\xc7\xafN\xb3\
+|\xa4\xa05\xbd\xec\xc1\xcb\x95\x1aA\x88T\xb3\x96\xd5\
+\xaeg\xb1\xfc\xeb\xb8\xfb\xa5\xbb*\x0c\x8d\xe6\xb5\x95\x8d\
+'\xe7\xb9\x7f\xb9\xf7o'\xc3\x9bi\xf7\xcb\xe5\xe4v\
+\x16r\xb3\xbf\xb6\x15On\xe77\xb7\xf3\x7ft\x1f\xe7\
+\xdd\xf5\xa7\x9a\xb2dkb\xd6\xecZnE\xdch\xe7\
+\xcdh\x96\xdb9{7y\xdf\x9d\xdd\x5c^gy\xa7\
+\x93\xb3\xd1t\xfea2\xfd\xe7\xd9\x7f~\xbc{\xdb]\
+\x9f\xcd\xce\xa7\x97ong\xf9{t5zs\xd5\xb5\
+\xbd\xe8>\xdeL\xa6\xf3\xe1\xc5\xe5U\x97;\xbdQY\
+\xbe8\x9f\x9dMjM\xab\x1a\xceF\xe7\xf3\xdc\xe1\xd9\
+Y\x16\xf0:\xf7?\xdc\x5c\xbf\xddZ\xeb\xc7\xf1M\xd6\
+\x05t\xd8\x9a{\xb7\xca\xfdS\xce\xfeq\xdc]\xcc\xf2\
+\xf7b\x98J\x8a\x14\xbc\xe6\xe5\xdc\xaci\xddh\xfa\x1f\
+\xd3\xd1\xf82\xdbW\xa5\xadWy>\xb9\xba\xea\xce\xf3\
+P\x8f\xae>\x8c\xeef\xa5\xbdUUm\xd1\xc8\x9cj\
+\xa5\xb5\xda\xd9|r\xb3\xb8.\xd0\xce\xef\xae2\x04\x85\
+8\xcc5N\xa6/\xff\x00\xf5\xf3C%M\xb2\xc6]\
+\xce\xef^\xe2\x0f\xa7}\x99\xc9\xc5\xc5\xac\xcb\x0dW\x19\
+\xfbVk%\x91\x05OO\xce\xbe\xac5\xd8\xd6\x1an\
+o-\xaeZ\xfb\xf1\xac\x15{7\x8c\x9b(Q\x92\x03\
+P\xd2\xd8\xa5\x8b\x8b\xc7\xa2D\xc9\x0eB\xe9\xa2~\x1e\
+\x8b\x12\xa5\xb4\x03\xa5#+\x1b)\x9c\x1e(\xd8\xe3a\
+T\xfa\x9a0*\x1fO\xd9\x80\x0e@\xe9|\xdcu_\
+\x80\x12\xf0A(\x8d\xa9\xf3n\xfch\x94@\xf7\xa1T\
+R\xa3\xabm(\xfd\xdf\xbf\xfe\xfc\x97\x9f\xfe\xc1\xffX\
+U|\xfe\xf1\xd5){\x9f\xbc{u:\x84@\xb8F\
+\x9b\xbe:\x15\x09\xeb\x94\xb7\x8b\x9a\xff6\x1d]\xcfr\
+\x04~\xff\xea\xf4\xfdh>\xbd\xfc\xf8G\x08\xc9\x12\x0d\
+ \xff\x95K\x92\x01\xc6\x18\x00\x80\x06\x04\xc1M\xe9\xc5\
+F-\x7f\xbf\xbe\x9c\xe7\xc9\xc3\xed\xac\x9b\xfeW\x09\xc0\
+\xffy\xfd\xf7Y\xd7\x0e\xde\xb6\x81\xd8\x09\xb1\xd1O\x18\
+\x7f\xda\x06\x1fxQ\xe9}\xb5\x87(\x12w7\x11\xe5\
+\xdf_\xe3\xeb\xedM\xf0C\x9aPL\xbc\xbb\x09\xf8s\
+\x12\xf0\xedM\xe8C\x9a0\xb1}M\x80\xbf\x06\xd8\xde\
+\x84\xefo\x02\xf7\xd5n\xff\xfe\x99\xda\x13\xaciq\xa3\
+\xb0\xad\x16\x1f\xec2\xeb\x0c\xf2\xe5\xbbi\x97g\xbc\x7f\
+h\xf4}\xd9\x81\xb6\xe2\xa8\x94\x1e\xa8\x93\xfb\xf5\x1f\xab\
+\xeac\xc0\xe81Q\xca\xd7C\x84 h.\xf6\xa21\
+:4j\xac\xcet\x95\xbc\xb8\x97}Q\xb3\x1b{,\
+\xa3\x7fD\x98Z/\xa2\xf9\xb3\x0b0\xc2\xf8\x1b\x04\xcc\
+=\xb8\xa3\xc5\x066$\x0c\xcc\x84q\x03\xbd&\xa0\x1c\
+\x13\xbdH\x0a\xbb\xe2w\x04\xec\xab\xc1,G\x0c\xc6\xa4\
+\xb1\xb7\xf3\xbbLE\x091\xaa0\xf7\xbc\x94y=\xa4\
+\x98bL=o\xa6\xa2\x06\x1309T\x8dgy)\
+1\x1a\xff\xb5\x9b\xbf\x9b\xe4nfY\x8a\xa8\xbb\xc6l\
+^.\xaf\xf2:\xf7\x8f<\x80\x17=\x88y\xaa?\xef\
+\xa6\x0f\x07\xaf\xc6\x18\x04\x02\x03\x94\x05\xb9_i\x05\x02\
+F\x86\xd8\xcb\xf8\x89\x9f8\x89\xf6\xe0\xf5K\xb1\x90s\
+\x12R\x03\xfa\xa7.\xc5\xe8\xd6G\x92\x8b\xee?F\xb7\
+\xb3\xd9\xe5\xe8\xfa\x7f^\xdd\x96\xee\xee\xe9p\xe3\xdb\xc6\
+?\xe5e\xd7h\xbe\x5c\xb7\xb1\x8ah\xba\x1f\xa0\xdb\x16\
+b\xf4\xf5y\xe1\xa7.=\xa1\xde%\xd9\xa9w)\x1e\
+U?\xaa\xeer0i\xf5\x96\x03\x99\xb8\x1f\xa4\xb7O\
+i\x8e\xca\xc0\xbb`a8\xd0l\xaa\xe0\x988\xdc\x13\
+\x9cbH\xa0\x1e\x1b\xc1\x118\x904RK@\x91$\
+N\x0f\xf6\x8e\x10\x5c\x11Xc\xf1\x8d\x9e\xff\x178*\
+\xba\xda\x17\x9b \x8aE\x88\xbc\xc5\x04#\xb2\x82m\x98\
+\xa0IL\xa2\xdbLP\x04,\xe16\x1bd\x8eOb\
+\x83\x91\x84\x13\x8a\xef\xb6Af\xd9\xb0\xc1'\x8b\x9c\x91\
+9\xed\x8a\x9c,\xd2\xc44\xa3\x00\x04\x8e\xb1\x89l\xaa\
+\xa1t\x1bz\xde\x8b\xad\xbc\x17[y\xa7\x99\x08\x0f\x9a\
+\xaa\x8b\xa3\x92\xcb\x00\x83\xa9\x99Z7\xa4\xc1\x90\x82&\
+W\xe2TR\x10\xdc\xcd\x93\xd3 bH\x84\xce:\x90\
+\x90\x18\x13$~\xe0L\xfeic-\xd0.\xe3\x16\xc2\
+\x03\x8c\xfbp[\x0c\xa8\x18\x1b\x8b<\xc0y\x12\xc5\x10\
+\xc9\x90\x1a?\x221\x983J\xebG\x884\xa8\xb4\xee\
+S,\x90%\x8a\x94\x11~\xae\xa8BD\xfa\x18\xf7i\
+)\xa0\x11\xf1\x86\x0b5q\xe5\xd6\x85:\x04\x06\xe3V\
+x\xa5\x90$%M\xcf+\xbc?\xb5\xf0\x16Cr0\
+l\x85\x97\xc0\xec\x88\xf4\xb0\xc9Z\xb2<[{N3\
+$\x89\x0d\x02l!\xa9\xb3Q\x8b\x80\x06\x8c.h\x0d\
+\x02\x9c\x02a\xcb\x9b\xa9.\x81\xc9\xe4\x90)\xef~\x9c\
+\x86\x10d0t\x0b\xeaHL/\x9es\x95 \x11\xfe\
+{x\xaeg\x8b\xc5\x12\xf9h\x08C qU\xb0A\
+\xd1!Bb\xe3\x028\x19G.W\x8c\xa0\x808\x18\
+F\x09\x12\x13\xcb@ \x80\x88$iW\xb9C\xd4\xa0\
+\xea\xec\xed=9\xd7\xe0\xa4I\x9b)\xc16\xe6\x8b\x86\
+\xb9\x99\x13\xec\x06\xbb2q\x0cllJM}\x82A\
+\x12\xa5\x84M\xe3\xee\x01\x98\x1cR\xbb*\xe7\x90,1\
+j#\x95Y\x90\x18\xa3\xe1\x1e%\xdb\x8ft\xc6\x97\x93\
+\x22\x88\x16T\x19\x92S*\xa0[T\x90\xc4\xe5\xd2\xc9\
+AU\xb3nc0R\x8f2p\x0b\x9e\x0c\xc4\x1f8\
+g\xd9\xa57\x18\xd3C\xd4\x8fR\x82\xd3}z\xdc\x0f\
+\xc9\xf9\xd5\xe5\xcd\xff\x1a\xcd\xdf\xad7\xbc\xa4E\x8c\xfd\
+P.\x89{\xee\x9a\xde\x94\xba\xda[suB~\xf5\
+2\xff\xb4\xfc\xc7?l\xca\xf4\xe2\x87\x92\xbbv\xf7{\
+6\x9fN\xfe\xd9\xbd\xbc\x9e\x5cw\x8b\xeba]\x1e\xbc\
+D\x0d\x9c\x04\x00\x9c\x97\x19E\xf4,\xdf\xcb\xe9\xe4\xf6\
+z\xbcN\xfc\x7f\x93\xcb\xeb\x96\xfa\xfe2O\xc0\xaf.\
+\xf3\xd7\xcbU\xf1\xf1h\xf6n4\x9d\x8e\xee\x9a\xd6\x0a\
+\xb5\xdeg\xcc\x9c\x01eA\xee{\xb86\xef\xcf`\xfd\
+\xf5d\x98,DB\xc7\x01YH\x1cMN^\x9f\x0c\
+\x11,\x88\x22\xd2\x8a\x8a\x99\x88\x16,!\xc42\xafu\
+t4\xcdD\x92 \x22J\x83\x98\x828\x99R\xad \
+\xc6\x90\x89\xce\x03\xb6LN)\xc5B\xb4\xc0\xcc\xae\x03\
+\xf1@D\x8a\x0b\x22\xa6\xe2a\xd5\x83YbH'?\
+\xaf\x93S1L\x02\xc6RoOF\x80\xe0\x16\xcd?\
+5\x96\x18\xb0\x109 9\x15\x22\xa5\xe0\xee1\xf5\xc4\
+R\xafr0\x11\x8a\xd2\x93K\xbd\x0a\xc1 r\x92\xf5\
+*\xa4t\xd7S\x92Uc\x0d\xb1\xef\xd8\xcf\xeb\xe4^\
+\x8c\xd7\x95\x8c\xc9Me%2\xe5\xc60\x80\x83\x99\xac\
+\x83\xa3)\x13\x1d\x00[ M\x83\x0b\x89\xe3\x0a\xf4<\
+\x12n\x99\x978\xd9rx8m\x1b\xc8_O\xd6\xc7\
+\xb7\xb8)G@.\xd5&\x08\xc9\x89\xc5Wd\xc9\xd5\
+r\xd0\x18%c\xc3\x12\x12Z\xae\xd4R0e4-\
+\xae\xd7\xdcH\xb4\xf6\x8aC\x12\xb2,\x95\x04I\xae\x9e\
+I\x14\x04\x05-\x0d\x14\x83\xc7\x18\x9d*\x91\xc5R\xe4\
+\x82\x0a$\x00\xaa`!Q@\xb1hk\xe4\xd7\x0b2\
+\x00\xd2\xaa\x8a\xaau)h\x02\xd7e[\x96\x0a\x91\x83\
+[bn\xbb\x85\x08\x01\x10\xc0\x17\x02x\x92L\x84\x18\
+T\x11u%j\xdc\x8a\xca\xaf\xf7\x96\xc47\x9f\x9c\x88\
+\xf5\xe4\xfe'\xff\xeb\xc9\xb8\x9b\xdf\xddt\xb3\xecof\
+\xe7\xf53[\xfc[[7/\xbd\xce\x7f\xaf\x00\x92R\
+@F\xb6#\xc7\x8f\xf8\xd5\xe3\x07\xa5\xc7\xc4\x8f\xc3\xb4\
+e\xbb\xcemzit.`\xb3\xb4n:\x95q\x17\
+\xd3u7M \x81@\xd4\xd6\xdd4!eN m\
+\xbd\x0b\x11d\xb2\xb1\xaf{\x22\x22\x0e.\xa9wY\x0b\
+\x9aB\x22k\xbctOn\xbctO^w\x9cD\x18\
+\xa2\xb0\xd9\xba\x8b%\xb4\x10!\xff\xb5^\x1a\x85\x02j\
+rk\xbd4\xb2\x07D\xbf\xe7\xe8\x99\x83klBB\
+Ol\xbctOn\xbct%+F^s\xd2\xb5-\
+N\xc2\xd8D0\xd1 @\xca-\x8c\xa8\x1cH\x8dh\
+\xddI\xa3q\xe0d\x18{'\xdd\x8cc\xe3\xa5{z\
+\xe3\xa6\xd1<\xc4d\x90\xd6\xdd4\x1a\x05\xc8\x09\xeb\xdd\
+4\xaa\x054w\xbc\xe7\x0f\x95BT\x8bi\xcdO\xa3\
+\xa4\x90(9\xae\xf9\xe9J,\xa5\xac\xf5\xd3\x04)\x88\
+\x11`\xeb\xa7+\x19\xd9t\xddO\x13X@\x10Yw\
+\xd3\x04\x14(1\xf8\xbdn%\x0bLl\xd4\xb8\xe9\x84\
+\x01l- \xc5\x16\x95\xdeM\x1f2C\x8b\xdf\xde\x0c\
+\xed\x89\x03\x88\xc5 \x82\x84\xba-\x80\x807\x01Dc\
+\x00F3\xf9\xf2\x00\x82\x01\x81\xc1]\x06\xcbPQ\x97\
+}\xaal\x9c\xb4\x5c\xbak\x8cd\x83\xa2\x08\xccJq\
+\xa0\x14Hb\x02\xfd\xf2\x00B\x0cO\xb1\x00i\x0b\xaf\
+\xaf\xd6\x87\xc5\xb3*\x11\xb6\xb7\xa6\x14\x02\x03\x81\xb6?\
+\x83(\x070E^\xeb\x226\xbc\x07J\xbfy/\xc9\
+\x1f$\xbd\xaa\xf1\xa3\xa5?\xa8\x93\x15#o\xa0\x19*\
+4\xa0 H\xf0\x08\xc2\x0d(\x99+$\x16\x12\xdc)\
+/\xc7\x87\xddO\x8av\x94\xd1&\x0c\x10\x91\xa4\x11(\
+b\x88\xa6j\xde\x88e\x99\xd59\x817b!J\xe8\
+y\xf7\xdet\x83@1\x12Q\x1a`H(\x90\x18_\
+\x1cAK\x1e6\xc9Rf=\x0aj\xac\x81\xc8]R\
+\x03\x9b\xa4L\x15\x07ka\x0b\x9e,\x12Z\x03[\xcf\
+\xfbP\xd8\x94\xa2f\xd8\x8e\x03\x17~U\xb8\x9c\x02P\
+ri=\x8aq`6Sj\xe0\x1a\x92\x86\x14UI\
+[\x97\xc2_,69\xea\xe1b?\xbd/\xf1\xa01\
+\xb2\xb7\xe0`\xca(p\x8c\xda\x80#\x10\xc4A\xb9\xd1\
+\xa5\xc2\x0bI\xcdd\x87\xf0\xaa\x0e_\xc5\x91\xeeW\xe5\
+A<T\x85\xef\xa8\x8an\xe4\xc9\xa5\x8dJ\x14 \xba\
+!\xdd\x7f\x9a&a4lP\xeaYw\xa1\xc4\x0f\x0c\
+7\x1c\xbf\xa2\x8a\x18\x17y\x90\xadu7\x12\x22%\x88\
+\xb1\x95\x1d\xa9\x11\xbb\xe7\xda%v\xb4\x87\x89\x1d\xf18\
+Q\xc7\x03EI\xf7\x04\xc2\x18\x92\x22p#\x0fa@\
+\xc0\x94\x9a`Z\xa8\x908S\x8f\xf1t\x13\x04\xc6\x02\
+\x11\x0d (\xa6(\xec_\xeed\x95\x8d\x1e\xeam~\
+\xc7\xf4\xc1\x98\xc2\xd7\xc5\xd4\x02\x18@J-\xa6\x12\x90\
+\xd4\xdd\xbf\x13P\x95\xbf\x06\xa8\xfb\xc5\x1bZ\x107H\
+\xea\x83|\x19\x1d\x94\x85\xf6\xfcPy\x90\xf8\xfd\xa0\x82\
+\xb9\xf0\xc6\xa0z\xc2\x18\x0f\x19\xd4\x9d\xb0\x0a\xfd\x06g\
+\x1bCj\xc5\xa6\xd63\xb87\x82F\xda)!\xc2\x01\
+\x8f\xe4\xed\x95p\xef\xbd\x02\x0a\x22\x89]\xdbG~!\
+\x06q\x88=\xf1ce5\x80(\xcd#\xc4\x9b\xac\xe7\
+\x0d\xebv=\xbb\x19\x8d\x1f\xf2\x9b{\x88I\x85$\x0e\
+4$\x8f\xc8\x82\xdd0\x1656GNZ\x12\x18D\
+\x14=\xca\xa0\xfe^\xe0\xa4\x88\x83\xa1\xa6\xa0\xc9\x15\x8f\
+p\xab iz\x98\xca\xa9>^\xe5v\xe9\x03p\xbb\
+\x8fcs#\x802\xe8\xe9\xc1\xdb;\xc0\xb1\x8b\xdd\xc6\
+~\x9d\x93\xb3\xfd\xad\xf9\xe9\xc1\xbb\x18\xa2\xdb\xb8\xe3\x8d\
+\xd6\x8e\xb4UI\x99u?J\xec\x87\xa3tQ?\x8f\
+AI`\x1bJ\x87\xb7\x06\xc7CI#\xeeEIc\
+<\x1c%\x83h\x00\x8f@I\xa3\x1c\x8e\xd2\x9b\x0b\xe9\
+\x00\x9e\x0e%\x8e\xfbQby\x94.\x8d\xc7\xe7\x8fA\
+\x89\xed1\xba4\xbex\xf3\x84\xba\xa4z\xc0\xe6\xc0t\
+q\x8e\x17\xf4\xc8\xcd\x81\xaa\xea\xfbQ\x8a\xe8[57\
+\xc8n\x9c\xc4\xad{#\xfbFe\xb7+=\xa7\x91\xf8\
+\x03\xa4\xc3\xad\xd2\x19\x1coT\x8c\xf7\xeb\xae=&Z\
+\x00*\xfbct\xd7\x1e\x11-\x10G\xe9\xe9\xfc`\xa4\
+h\xfbP\xca<\xe9p\x94\xc6\xd2\xe9c\xa2E$\xc6\
+\xdfZ\xb4\xa0\x94`\x1fJ\x99\x87\x1e\x81\x92\x95\xbf\xc3\
+Q\xa2\x94\xf88(\xe1\x0e\x94\x0e\xdf\x0b\xd2n\xd5\xc0\
+'\xda.%*$N{\xb6j\xe0\x96\xedR\xcf\xb6\
+/\x88\xf0x\xbbB\x87\xf7\x9f\xc0\x8d&\xcd\xa3\xb7G\
+\xdeZ\xf4\xac\xcf\xd5\x12\xe1\xf1\x80\xdb\xfa`\xedp\xdb\
+\x93\xb5\x11\xe8\xd9\x9e\xac}\xce\x07\xc5\x89\x8e\xb8\xad\xef\
+\xf8[R\x9fu\xdb\x01\xc9\xef\xcf\xd0?\xb1\xad\xdb\xf1\
+l}\xfb\x86\xb4\xcf\xecG\xa3(\x01\xcc\xb1\xd9\x8f\xf6\
+U\xb6\xd6=\xe3\x86\xa3H\x94\xbe\x83=\xbc\xc7\xf7\x81\
+\x91~7\xf4\xa7=\xf2!\xf2\xb7\x7f\xe4\xc3W>W\
+\x84\xa2~{\xe7\x8a<\xabw\x8b~ `\xfb\xb7=\
+>\xd5\xce\xcbg\xc5\x89\xe1y\xb7\x9d>\xeb\xa4\x8e\xe9\
+\x98J\x82\xd1\x83d=y\x9a\xfd\xa9\xcf\x1c\x16\x99\x8f\
+\x0d\x95\xb9q\x0e\x84\xb0@\x22\xb5\xb8\xb9\x05Vg\xf5\
+\x06\xb7\xcc\x1d\x15\xd9I\xb4U2\xd4`\x05\xba\x069\
+\x04\xad\xd0\xe9\xf3\x22\xa7_\x179L\xfa\x09\xba\x069\
+\x8d\x9f\xb8\xa5\xc1M\xa8j\x9czk\x9c\x1a\x88\x98\xc5\
+\x9es\x9a\x00\x88\xcf\x11\xf2\x1cB\x8c\xc8\xdc\x04\xbe$\
+\xc1@\x10\xb0\x89\x7f\x9b\xbc\x17\x0do\x13\x0c\x9f\x17J\
+\xfb\x1d\xcacA\x99~\x87\xf2HP\xd2\xf1WZ\xc9\
+\x01\x19R\x01\xd2+\x9a\x9c\xc0\xf0+\x81\xf9\x9cS\x19\
+`h\xc3\xa7\x06aC\xdf\x98u\x08\xd3\xbd\xc5\xb8s\
+H\xac\xf7g\x1df!2D\xf3\xdf\xfe\xc9<p\xe0\
+\xdc\xe4p\x84<X\x8c\x9c\xeeO\xcb\xd4\xd0\x91\x9fW\
+t\x7fV\xd1\x1f\xf8P\xf6\xd00$\x89\x94\xe2\x8bg\
+EK\x8e\xe0qZ\xb9`)\xd7w\xa8[\xa2\xc7D\
+k\x88X\xc0J\x22\xdf9l\x0aG\x86\x0dW\xb0\xe1\
+\xf7\x0c\xdb\xb1\xb5\x8d\xd6`\xb3\xef\x176\xff\xddH\x0f\
+_\x94\x83\xe1W\x86\x8d\xa2\x7f\xe2hq\x13\x0e\xae\x22\
+\xd6\xe0\x86\x89\x83\x80\x89\xb4\xc0Y@\x06K\xf1Y\xf5\
+\xcd\xe2\xb1C(~\xcfjv\xdc{?\xc1I\x155\
+\x0db\x88\xec\x1a\xc9\x1f\x0f\x1a\x05\x92\xc4\xd8\xea\x98b\
+@WP]\xa0\xf6\xe3Yy\xd3I\xbd\xea\xcf\xed\x18\
+\xbd\xef\xc6\xbf\x5cv\x1f\xfa\xd7\xa1\xbc\x19\xadD\xb8\x19\
+\xbd\xed\xea\x13G\x19\xac\x8b\xfaYd\xbc\x99L\xc7\xdd\
+t\x99\xa5\xf5\xd3d-\x1eJZ\xbc\xb2\xa6\x1d\x9bR\
+\xeb*\x1f\xb6\xe7\xe7S\x05\xc6\x93\x0f\xd9\xd2\xeeg\xfe\
+:\x99\xbc/\xb5\xba\x1a\xba\xc9\xfd\xec\xba&\x14\x0b\x96\
+\x88\xe2Ffn\xcf\x83RL\xecx?s<9\xbf\
+-\xefS\x1a\xde~\x1a\xd3\x9b\x8f\x1b\xc5o\xa7\xd3\xc2\
+p5\xba\xeb\xb2\xd8\xf5\xabV\xd3\xbc\x0d\xa8\x96\xeb\xcf\
+\xc0mio\xa7\x97\xe3Y\x11\xfd\xfam\xee(o\xa3\
+\xdf\xdd\xa7w\xefo\x16Y=\x1c\xf9x\x85\x0f9\xaf\
+<*5\xba\x9au\xf7{Z\xb2\x867\xf9\x00\x87\x22\
+\xc8|z\xdb\xad\x17\xbb\xcdU\xf6\xe4\xa6\x5c\xcd\x1b\xbe\
+y3\xf9\xb8=\xff\xc3\xe5u\x1e\x95\xe1RX@\xfd\
+\x0c\xc7RvM\xf4\x19\x8e\xdcBT\xf8Lf\xc6@\
+m\xf9:\x9eF\xaa\xa5~\xcf\xef\xca;\x9b>\xde\x15\
+Zc\xb4\x85@\xb2f\xaa\x0d\xdc\xf7\xa9w-\xb5\x81\
+ze5\x9b\xc6R\xe9\xef\xbb\xf9h<\x9a\x8fz\xcb\
+YRH\x11\x97\xbd\x9f\x8e/^\xfe\xef\x9f\xfe\x5cR\
+5}~\xfe\xf2\xff\xe47&\xf5\xcf\xbb\x15\x86\xd1\x9b\
+\xc9mF\xab\x96Y\xf0\x8d\xcf_\x16\x8f1\x9a\xff\xe9\
+\xf2}\xb6\x87\xf2\xae\xac\x7f\xcd\xaf\xac\xca6\xbc\xcch\
+\x99\x0b \x99\xd0T;\xed>\xbd\x0bk\xdb\xeb\xc3\xf2\
+\xbf\xf7\x97\xa5\xd0\xd9\x7f\xcd\xf3\xe9!\x7f)\x8d\xac?\
+\xadx\xb6\xe8h&\xd4d/GN,\x05\xad\xa9\xb7\
+\xf7\xc60\xbf\xb7\xa9\xbbzu\xfa\xf3e~}\xd5\xd5\
+\xe4\x047\x95sr{\xf3~2\xee\x16&\xb4\xcc\x1f\
+/\xd2\x05\xba\xfe\xa8\xa1\x1d\x07\x0d\x95\xc3\x85\xfaO\xa3\
+\x05\xa5(\xb1{!\xf6G\x0cY\x0c\x84n2@\x0a\
+\xa8\xc2\xac\xf9\x04\x18\x09\x22\x98x\xa0\x18\x90\xcd\xbc\x1c\
+J\xc3A\xd4\xb5\x90\x5c\x22\x08\x9d\xe4l\x0a\x9e\x1cX\
+\xcbu\xe5\x19\xa8\xd4-_\xc2+~\x0d\xc8\x9a\xd8\xfb\
+J5\xb8\x10ai\xc8\xea\xc3z\x94[G\x09N\x12\
+1\xd7b\x1e\x80S\xb4L\xf4\xc0\x22v\xe2\x5c\xaf\x9d\
+\x9c\xe9S\x22\xe6\xc2\xf9\xc23k\xf9pN\x22j\x9f\
+\xce\xd5\x94\x12\xd1\x09\x96\x5c*~\x82\x04\xe5\xd22\xa7\
+\x06\x10\x04\xc1B\x1bx\xae\xa0^p)\xd9s1\x86\
+\xc4\x9ed\xad\xb2\x98BJ)2\xd7\x06\x19jGV\
+\xdf(!\xd5O\xae\xc6\xb9\x82\x0a\xee\x1aOL\xebI\
++>H\x81Y\x0d\xc4\xb7A_O\xb9\xd9~\xc6\xcd\
+\xc6Q\xec\x9b\xa7\x10\xd6\xe4\xf4\xf6\xaa{\xd9\xfd\xd2e\
+\xa5\x18\x7f\xfe\xd4\x1b\x0fJ\x18\xcd\xd3\x13\x9ey\xd3\x1e\
+ns\x1c\x05\x8e\x12\xe9w\x05\xfe\x86\x14x\xa9\x02\x10\
+HX\x1d\x95\x7f\xf8\xec\xb9M\x12\xf9\x1b\xd7\xe9\xfdv\
+\x1b\x01\xbfDF\xbc\xf9x_\xba7\xb7\xf3\xf9\x86p\
+U\x9e\x05\xb5m)\xd3?u\xac\x7f\xeb\xc7\x8b{\x16\
+\xa5\xa1\xe8s\x00%)\xda,\x81\x89\x12R\xa1!\x99\
+yV\x06\x0e\xd1\x15R*4\x8e\x89\x5c\x8b6\x14M\
+(F!\xa1jE\x0aJ\xb2P+\x0d\xacn\xab\xd4\
+B\xbbb\x00Ge?q\x08\xa0\x08\x96+\x84\xe0\xac\
+\xaam7~\xdd\xf4\x04d\xd4\x0e\xc1\x06\x87`j%\
++F\xaa\x82HE\xdd_\xd7dDT/f\x82\xc2\
+\xa2x\x82\xb5O\xae\x99E\x03\x92l\x10\xaa\xa1\xa6\xe0\
+qA\x82\x14\xad!V\x13\x5c$S\xf4\xd6\x04\x89@\
+\xb51AY\x94*\x06\xd8tp\x97-)2E\xa2\
+\x1f>\xabfB\xf8\x0d\x98\xd2.\xbdd^[0\xcf\
+?\xf3\x83\xd8\xb0|!y\x19\x98\x17\x0f4\xc8\xcd\xd7\
+L|CH\xfd\x1e\xfb\xbe\x81\xd8\xd7{ f;=\
+`\xb6\xb3\xdb\x9d\xc5t\x7f\xf8\xa9u\xd4\xb8\xc5Q\xc3\
+\xa6\xa3\xd6\xb4r\xd4x\xcfQC\xe3\xa8a\xe1\xa8a\
+\xcdQ\x9bn8\xea\xa6\x1b;\x9c\x96\x01#&\xb7\xcf\
+{\xad\x98\xe2o88n:!\x08\x1eQ\x19i\xe9\
+\x8c\xd0*z\xd5%\x993\xca\x8b\x9d\xc3\xbfk\xd87\
+[\x1bR\x09\x15\x84\xd1\xeb\xcbg\xa0(\xab$k.\
+\x1b\x16\xd4\x18\x10\x1dd\x80\xe2\x81]%\xbe\xd81<\
+\x9c@\xa3\xca\x8e\xa0\x12\xe1;\x08*\xdf\xfe\x94\xa0\x9d\
+\xe4\x90\xf7\xc4\xad/\x80N\xf0Y\x86\xbb\x05C\xaf\x82\
+o\x1f\x1a7\x01\xf1\x90CV\x9fd\xcc\xf7\xce\x0f \
+\xb8Br\x95\xb5\xb7\x81q2\xd3\x17\xed\x0d\xb2\xc8F\
+\x07\x9d\xe7\xdc.Q7\xdc\xbeq!7z\xe6\x18D\
+\x80y@\x18X9q\x1d[\x0b\x02\xc26\xb0\x18\x1c\
+4I\xaaz\xa2\x011i\xa6J`T\x01\xac\xb4\xc8\
+(\x03\xd3\xe0\xe4\x18\xad\x16\xe6z\x86\xb2y\xf5\xc9\x8a\
+\xa5\xca\xe2\xad)\x050W-\x95\xd5i6\x05U\xf0\
+\x9c\xf0\x9apAO5\xd5\xb3\xfe\x5c\xd3)\x05\xa2\x84\
+F9M\xc4\x1bi\xa1`\x06\x1e\x17\xfc\x1bi\x8a!\
+Q\xa2H\xb9\xe9\x9a\x86`\xd1\xa3\x94\xd688\x1b\xc6\
+\x12nH\x98<n\x82r\xd89\xbf\x80_\xb6\x96\xd2\
+\xaf\xbdP<{\xbb\xc3\xcaj\xe1\xed\x16\xb5\xcd\x1b\x13\
+\x91\xbe\xb8'P\x003\x83d\xcf\xe8a\xd1\xed\xc5!\
+fI \x81\xaa\x16\x0f1\xe8g\x8cS\xd3Q\x8d\x13\
+\xef\x1b'\x99o\x1a'!\x07\xdc0NB\x0a\xd6\x1a\
+g\xa5\xa5\xc68ka\xd80N2k\x8c\x93\x1c{\
+\xe3$\x97\xde8K\xaa1\xce\x9cn\x8c1\x12n\xa4\
+{c\xac\xfc\xf7\xd3\x8dq\x96to\x9c\xe4\xb8a\x9c\
+d\xbe\xdb8[\xcd\xddk\x88\xbbu\xd9\x9fU\x97[\
+#\xfd\xfc*\xb2\x11o\xfb$\x09\x98\x1f\x1e\x17!`\
+\xd5\x12\x16X~\xbe\xe6!\xe4\xb0\xfe\x89\xbao\xb5\xa9\
+ANP\x03\xca\xea\xc6\x90x2\x88\x95\xe8\xc5(N\
+\x8c\x83$2\xd4B\xe3\xa8,\x5c\x96J\xb5\x04Z\x80\
+\xf8i\xba\x94rMJ\x01k=\x1e\x10\x19S\xb2\x13\
+\xcd\x9c\x08\x964\xd3\x22\xb3\xd1\x89r\xb16\xc3\x94\x8b\
+0\x94ZT\x82\xf9b\xd2\x05\xa1^\xa9.HY\xad\
+3\xbf1\xc5\xba\xf2\x01\x8e,~\xc2\x10b\x04F^\
+\xacwN$\xf3\xcb2Q\x97\xac\x0a\x96\xe2\x8a\x94<\
+$6\xc0\xdc\xa1\x9c%\x80E\x1c\xd4\xdc\xbd~j\x97\
+\x93\xccu\x91\xb4\xfa\xc6\xb4\x84\xa6\xa6,\x90\x1a;\x95\
+\xfa\x05H\xa5\xe2\x04)\xa9\xd1=,\x7f=\xd9\xf2K\
+\x0d\x95Y\xd9\x97\xa9\xa2\xe9w\xac\x8a\x83\x02\x1f97\
+\xaaX\x89\xc2\xb8\xae\x8a\x85\xc6\xe0\xda\xab\xe2\xa0\xa8b\
+\x11\xb5\xaa\x22\xa7\xfc\xb1\x81R\x80dT\x15R\xd1S\
+\xac\xa4dN\xa2\x99\xc4\x80\x04\x99\x14\x83y\x82JR\
+\xe2Z\x90\x83D\xb6Z\xd08\xa2T\x12xD\xc6\x5c\
+=\x00\x8b\xd5\x82\x92H\x89\xfa\x16\xab>\x15\xef\xdd\xf7\
+\xcb\x17\xfdz\xbd\xde}[u\xbf\x17\xd3VbV(\
+l\x09E\xafmUHC7\xaa+x\x0f\x14\x93z\
+M\x10T\xf6\xe5\x22?-\x0b\xd7\x94-\x18\xd7k\xd2\
+EM\x0d\xf0\xf5\x1d\x16\xa5\x08\xc7\x90\x8c0\xa5O\xf5\
+1\xf7ID\xddH\xb7\xec}r\xdb\xea\x06X\xf7\xaf\
+\xa0\xfb\x9b(_n1\xf8\xbdZ\x8c\x07P \xb3:\
+z\xbd\xe3\x93\xa8\x5c\x07\xd8\xc0\xc0\xa8\xd0R23\xaf\
+j'\x86QW4+ZT\xfd\xdf\x1a\x89\x177\xc2\
+\x0a1-\x89\xbd+\xec\x89\xb5Bfd+4s\x82\
+j\x991&\xe7\xb8\xd1\xbf\xaa\x5c\x0b\xf5\xa9z\xc3\xb5\
+\x1a/6\x19\xb1\xd6\x9c,$fK<P\x0b\xae\xee\
+\x9a\xbbjAA\x0cy`\xb8p\xd6\x22\xc1\xb8t`\
+I*ec\x0a\x1e9!\xf5D\xe2\xcc\xe71\xe6&\
+R\x88\xa2\x1e\x8b\xd7\x0fHT\xca\xaa\x06Z\x86\x1d\x0c\
+\x8e\xb5\xab\xeb\x81G\x82\x19\x01\xf8`-\xf0`\x88\xe4\
+\x98p\xb0\x0c<\xb6\xecJ\x1f|R\xdf\xe1>\xf8T\
+\xa9\xd6\x83\x8f,\xa4oBP\xc1f\xab\xd1\x08\xef7\
+\x9aj5\xb3\x95\xc9\xd4i\xcf\x8f\xf9\x91\x8a\xfc\xf5\xff\
+\x01_\x1a\x15U\xdc\x8d\x00\x00\
+\x00\x00\x05:\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
+\x00\x00\x00\x04gAMA\x00\x00\xd6\xd8\xd4OX2\
+\x00\x00\x00\x19tEXtSoftware\
+\x00Adobe ImageRead\
+yq\xc9e<\x00\x00\x04\xccIDATX\xc3\xb5\
+\x97]L[e\x1c\xc6wo\xbc\xd9\xe5\x12I q\
+\xd7&\xe3N\x13\xb8p\xd1\x85D\xbdP\xe3\x10\x18\xe5\
++.&J\x04'\x86\xaa\x8b\x99\xe0\xd0\xa2l\x19\x86\
+9\x17\xdc\x1a\x16\x98\x80@l\xa6C\xca +\x83\x1e\
+(\xcc\xda\xd1\x96\xd2\xd2J{\xfa\x01\xa5\xd0\xef\x16\x1e\
+\xdf\xff\xdb\x1d\xc7\xcc\x04*\x87\x93<9o!\x9c\xe7\
+\xf7<\xefG\x0f\x87\x00\x1c\xcaF\xcf\xbd\xfa\xe9\xbbL\
+Z&a\x0fj`\xca\xd9\xe9y\xd9\x9a?]P\xf2\
+\xa5\xc1\xe9\x8f\xa7W\xc3@0\x02\x84\xa2\x19\xad\xc72\
+\x8a'\x81X\x22s\xbfyk\xdaK\x10r\x02\x1c{\
+\xe7\xac\xda\x1c\xd8\xc8\x98\x12@\x84\x99\x85\xe3\x19\x911\
+)\x1aKa%\x94D8\x9aBs\x87\xc6\xbe\x13\xc4\
+\xff\x02\x90\x12\x93y$\xf1\xc8X\x92\xcf\x1f\x84]\x8c\
+\xc2\xe5\x09\x22\x12K\xa3\xf4\xc3\xefM4uY\x01\xb0\
+\xeb\xd86\xd5\x90\x9e:\xfc\xcc\xb9\xe7_.\x11?V\
+\x9eEEU\x0d*\x99\xde\xaf\xad\xc3\x9d\xb1\x89\xc7\x00\
+\xac\xb6%\xfc\xb9\xe8\x87k\x15X\xf6\x04\x10\x08\xc6\xd2\
+\xaf\x9c\xbep\x9fA\x1c\xd9\x15\x80]\x87\x99\x1a\x8a\x8a\
+\x8a\xcc\x92Z[[\xdd\xa4\xafU\xad\xfe\xafT\xdf\xa6\
+\x06\x06\x06195\x85\xd9\xb99\xe8&&PPP\
+\x80!\xcdo|\xdeI\xa6\xf9\x05\xcc\x98\x5c\x1c\xc0\xe1\
+OA\xf4\x85\xf0C\xaf\xce\xcd\x00j\xf6\x02PCf\
+\xd8\xe5\x8a\xc7\xe3\xf0z\xbdH\xa7\xd3\x98\x9c\x9cDe\
+e5fg\x8d\xbc\x81\x07f\x1bt\xd3\x16\x0e@2\
+-x\xf0\xdd\x8dQ\x8f\xac\x00\xe1p\x18F\xa3\x91\x8f\
+S\xa9\x14~\xea\xedE\xe3'\x9fa\x86A8\x96\xdc\
+Pwu\xe3LC#\xce5\x9d\xc7\xed\x91q\x5c\xbc\
+>,/\xc0\xc6\xc6\x06\xf4z\xfdc@}}\xfdP\
+2\x88\xd0F\x1cf\x9b\x0b\x82\xc1\x88\xa9\x19\x13\xac\x0e\
+\x11\x97\xbadn\x80\x00\xa6\xd8:\xd8~E\x22\x11\x94\
++*0\xae\x13@\xe7\x04mW\xda\xaa4\xbe|S\
+\xe65@f:\x9d\x0e\xc3\xc3\xc3\xe8e\xf5\xf7\xf7\xf7\
+C\xab\xd5\xa2\xaa\xba\x06cw\xf5\x90\x0e*w\x90\xed\
+\x04\xb6\x0e\xda\xbbe\x06\xa0y\xb7\xdb\xed\x18\x1a\x1aB\
+gg'zzz8PIi\x19ni\xf5\x10\xd7\
+\x00o\x08\xb0\xf9\x00g\x00\xb8\xd0%3\xc0\xd6\xd6\x16\
+\xdf\x09\x81@\x00\xa2(\xc2\xef\xf7cmm\x0d\xa7\x14\
+\x95\xd0\xfc\xae\xe7\xa9\xc9|\xc1\x0b\x98=@\x9b\xdc\x00\
+\xdbA677\xf9v\xa4V\x14\x15\xd5\xe8\xfbU\xe0\
+\xa9\x1d\x81G\x00\xe7;\x0f\x00\x80\xcc%\x80$3O\
+$\x12(+\xaf\xe2\x00\x7f\xb8\x00\x8b\x98\x01\xa06Z\
+\xd5\x070\x05\xff\x98'\x93<=MI\xc9\xa9J\x0e\
+\xa0\xb7\xb3\x03\x89=\xc5\xf8\x170\xb1\x00|q\xf5\x00\
+\x00\xa4\xea\xc9\x98\x14\x8b\xc5P\xa6\xa8\x82zH\xc0\x98\
+\x19\xb8k\x05\xe6\x9c\x99\xfb\xe7Wd\x04\x90\xd2Sj\
+\x02\x88F\xa3\xdc<\x14\x0a\xa1\xb8\xb4\x02\xd7\x06\x05\xdc\
+f\x87\xe4\xa0\x01\x1cd\xc4\x04(;d\x06H=\x9c\
+s\x12\x99\xd3\xb9@ \xc5eU\xb8\xd8-\xa0\x7f:\
+c\xae}\x90i\xe0\xa3v\x99\x00\xfe]=\xa5&\xad\
+\xae\xaer\x88\xb7J*p\xb9W\xc0=\x1b\xb8~\x9e\
+\x01\xee\xcc\x03g.\xed\x13@\xaa\x9dD\x8b\x8e\x92\xd3\
+qL\xdf\x01+++X__\xe7\x10'Y\x03\xdf\
+t\x09PO\x00\xbf\xcce\x1a\xb82\x064\xec\xa7\x01\
+\xc9X\xda\xebdNi)9\x1dD\x04@\xf5\xd3\xcf\
+\xde|[\x81\x96\xeb\x02O~u\x1c\xb8q\x0f\xf8q\
+,\x9e~\xbdNm\xa67\xaa\xac\x00\x9ed,m7\
+2%\x00\xd1#\xf2\xe4\x12\xcc\x1b'\x15h\xef\x11\xa0\
+\xbcf[\x7fO5\xe2<q\x9a\xbf\x8ei\xf7\xfcJ\
+&\x01\x90\xa9$i\xb5SB2\x0f\x06\x83p\xb9\x5c\
+\xdc\x90^J\xe8\xb3\xc7\xe3\x81\xdb\xed\xc6\xf1\x13\xaf%\
+\x9f}\xa1\x9cL;\x98\x8a\x99\x8e>\xc9xG\x00\x95\
+J\xc5\x01\xa4\x15.\xcd7\x19RR:\xf7)\xb5\xc3\
+\xe1\xe0\x22\xe3\xc5\xc5E\x0e\xf5\xe2\xf1\x97\x5c\xf4\x1e\xb9\
+\x93\xe9\xae\x00---n\xe9`\xa1\xd4\xd2\x97\x0d\x8d\
+\x97\x97\x97\xe1\xf3\xf9`\xb3\xd9\xf8}ii\x89C\x10\
+\x00\x8d\x0b\x0b\x0b\xcd\xb2\x00\xd0\xa2\x92R\x93\x11\x8d\xe9\
+N\xdfxT;5`\xb5Zy\xf5\xd4\x0a\xfd\xce`\
+0$\xf2\xf2\xf2\xee\xb3g\x1c\xd9\x17@SS\x93[\
+\x9agJO\x22\x13\xaa\x9a\xc6\x16\x8b\x997@\x9fG\
+GG#mmm\xde\xfc\xfc|\x13\xfb\xdbA\xa6\xb2\
+\xbd\x9a\xff'@ss3\x9f\x02JG\x10T?U\
+???\xcf\xeb\xd6h4\x91\xba\xba:\xe7\xc3\xb4]\
+L\x1f0\x1d\xcd\xc6xG\x00\xa5R\xe9v:\x9d\xbc\
+bJJo>\x94\xb4\xbe\xbe\xde\x99\x93\x93#\x99\x16\
+gSuV\x00\x8d\x8d\x8dn\x8b\xc5\x82\x81\x81\x81H\
+mm\xad377WV\xd3\xdd\x00\xf8\x7fFL\xc2\
+A\x99n\xd7\xdfC9V\x18\x85p\xc8\x04\x00\x00\x00\
+\x00IEND\xaeB`\x82\
+\x00\x00\x04_\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x14\x00\x00\x00\x14\x08\x03\x00\x00\x00\xbaW\xed?\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x01\xc8\
+PLTE\xe1\xe1\xe1\xda\xda\xda\xdc\xdc\xdc\xdb\xdb\xdb\
+\xf8\xf8\xf8\xff\xff\xff\xe7\xe8\xe8\xeb\xeb\xeb\xeb\xec\xec\xec\
+\xed\xed\xed\xee\xee\xee\xee\xee\xee\xef\xef\xef\xef\xef\xef\xf0\
+\xf0\xf0\xf0\xf0\xf1\xf1\xf1\xdd\xdd\xdd\xf4\xf4\xf4\xd7\xd7\xd7\
+\xd8\xd8\xd8\xd9\xd9\xd9\xdb\xda\xdb\xda\xdb\xdb\xcc\xcc\xcc\xe2\
+\xe2\xe2\xe8\xe8\xe8\xec\xec\xec\xf1\xf2\xf2\xd6\xd7\xd7\xea\xeb\
+\xeb\xe5\xe7\xe5\xd0\xdd\xcf\xe6\xe9\xe7\xed\xed\xed\xea\xea\xea\
+\xf3\xf3\xf3\xe9\xea\xea\xdd\xdd\xde\xde\xe6\xdf\x9e\xc5\x97\x82\
+\xb7{\xdf\xe8\xdf\xf2\xf3\xf3\xf3\xf4\xf4\xf4\xf5\xf5\xf5\xf5\
+\xf5\xf5\xf6\xf6\xed\xec\xed\xb8\xc9\xb7\x8c\xbc\x80\xa7\xd0\x87\
+\x8b\xbd}\xdd\xe7\xde\xf4\xf4\xf5\xf6\xf6\xf6\xf6\xf7\xf7\xf7\
+\xf7\xf7\xf5\xf5\xf6\xf0\xf2\xf1\xaf\xcd\xad~\xb4e\xa6\xd0\
+t\xb6\xd9\x81\x81\xb5r\xde\xe8\xdf\xf6\xf6\xf7\xf8\xf9\xf9\
+\xf9\xf9\xf9\xf1\xf1\xf2\xe5\xeb\xe6\x92\xbb\x85|\xb4I\x9d\
+\xcbR\xa3\xd0U\x9e\xcbSs\xa9\x5c\xde\xe7\xe1\xf8\xf8\
+\xf9\xfa\xfa\xfa\xfb\xfb\xfb\xf3\xf2\xf3\xdc\xe6\xdeu\xa7_\
+r\xad\x1a\x90\xc9\x19\x95\xcd\x1a\x8a\xc5\x13d\x9e;\xde\
+\xe7\xe2\xfc\xfc\xfc\xf2\xf2\xf2\xfa\xf9\xfa\xe1\xe9\xe3\x87\xad\
+uu\xae\x16\xa6\xdf\x0a\xa0\xd9\x0ag\x9d4\xde\xe6\xe2\
+\xfc\xfb\xfc\xfd\xfd\xfd\xde\xde\xde\xf9\xfa\xfa\xfd\xfc\xfd\xeb\
+\xed\xed\x92\xab\x8fu\xa6.\x95\xcc\x08i\x9b0\xdd\xe5\
+\xe2\xfe\xfe\xfe\xf2\xf1\xf2\xe1\xe0\xe2\xc5\xd2\xc9j\x92K\
+N|1\xdd\xe5\xe1\xe2\xe7\xe4\xa8\xbb\xac\xef\xf2\xf0\xde\
+\xdf\xdf\xf9\xf9\xf8\xf0\xf1\xf1\xdc\xdd\xdd\xdf\xdf\xdf\xd0\xd0\
+\xd1\xd2\xd2\xd2\xd3\xd5\xd6\xe1\xe2\xe3\xd4\xd4\xd5\xc5\xc5\xc6\
+\xcc\xcd\xcd\xc8\xc9\xc9\xe0\xe1\xe1\xbc\xbc\xbd\xe3\xe4\xe3\xd9\
+\xda\xd9\xdf\xe0\xdf\xe5\xe5\xe5\xe6\xe6\xe6\xbc\xbd\xbd\xd5\xd5\
+\xd4\xd1\xd3\xd4\xc5\xc7\xc7\xe5\xe5\xe4\xd3\xd3\xd3\xe0\xe0\xe0\
+\xdf\xe0\xe0\xd9\xda\xdb\xca\xce\xd0\xe2\xe3\xe4&\x9b[?\
+\x00\x00\x00\x01bKGD\x05\xf8o\xe9\xc7\x00\x00\x00\
+\x09pHYs\x00\x00\x00`\x00\x00\x00`\x00\xf0k\
+B\xcf\x00\x00\x00\x07tIME\x07\xe7\x03\x09\x06\x14\
+2\x1f\xc9N\xa7\x00\x00\x01[IDAT\x18\xd3M\
+\xd0US\xc3@\x18\x85\xe1\xcd6\xa1JH\x03\x05J\
+\xd1\x12\x8a\x14\x82S\x82KpIq\x08\x0e](\x1a\
+\xdc\x83\xbb;\x7f\x97\xdd\x0c\x17\xbc\x97\xcf\xec|;s\
+\x00\xa0\xe0\xbfL4\x83\x03T\x84\xd9b\xb5\xd9\x1d\x91\
+,\x1b\x15\xc59y\x03\xa1\xd9\xc6Z\xa2c\x5c\xb1\x14\
+\x15\x17g\x8a\xa7\xdcn\x90\x00\xa0\x87M\x8cHJN\
+IM\xb3x\xac^\x8f\xd7nO\xa7\x00\xb4qB\x86\
+/3+;\xc7\xef\xcf\xe5\xf3D1\x9f\x83\x00:\x04\
+\xb1\xa0\xb0\xa8\xb8\xa4\xb4\x8c\x17\x03\xe5\x92$\x09\x18\xd9\
+\x8a\xca\xaa\xea\x9a\xda\xba\xfa\x86\x80D7\xca\xb2\xcc;\
+\x01ljnimk\xef\xe8\xec\xea\xa6e\x05\x17\x14\
+1\xf6\xf4\xf6\xf5\x0f\x0c\x0e\x0d\x8f\x10\xc0\xa9\x01\x8c\xa3\
+c\xe3\x13\x93S\xd33\xb3!\x0c8$\xcd\x01(\xcc\
+\x87\x17\x16\x97\x96WV\xc3D\x10\xd2h\x8c\xbc\xa2\xae\
+\xadolnm#L\x9a\xa612\xc1\xa0\xca\x81\xd0\
+\xce\xee\x1e!\x06k\xe3\xbe\x81\xa3@\x09i*y\x86\
+\x0ex\xe1\xf0\x08@\x91 \xf9\x03c\x90\xd3\x8fON\
+\xcf\x08\x22\x03\xb1!\xee\xfc\xe2\xf2\xca\xa7bT\x91\xf0\
+\x87\xf2\xf5\xcd\xed\xdd=b\x80\x13<<\x9a\x5c\xaa\x81\
+\xe2\xc9\xd33\xd0\xf0\x9e\x8a$\xd1\x1e\x9d\x5cd\x18\xfe\
+\xe5\xf5M##\x93\xa5\xc5w]\xd7?>>\xbf\xbe\
+\x7f\x881\xbf\xe0\xd3^\x99\xad\x16c\x0b\x00\x00\x00%\
+tEXtdate:create\x00\
+2023-03-08T17:27\
+:26+00:00\x9e\x98\xa5\x85\x00\x00\x00\
+%tEXtdate:modify\
+\x002023-03-08T17:2\
+7:26+00:00\xef\xc5\x1d9\x00\x00\
+\x00(tEXtdate:times\
+tamp\x002023-03-09T\
+06:20:50+00:00\xdd\xe8\
+\xb2\xde\x00\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x08\xab\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x08\x06\x00\x00\x00\x8c\xfe\xb8m\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x00\x06\
+bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\
+\x00\x07tIME\x07\xe7\x03\x09\x07\x084\x11\x1f\xdc\
+\xf8\x00\x00\x07fIDATX\xc3\xbd\x98\xcb\x8f\x14\
+\xc7\x1d\xc7?]\xd5=\xd3\xc3\xee\xcc\x02\xfb\xf0.O\
+\x11;<\x9c\x04\x93\x98\x87,[\xa0$(\x87X\x16\
+9p\xc8\xe3\x1a)\x87\xdcsD\x11\xffD\xfe\x03K\
+Q\xe2(H\x91\xa5\x90\xd8rp\xf0\x22\xe2\xc4ka\
+X\x83\xd8\xdd\xc0\xbe`\x96\x9e}\xf5tOwuU\
+\xe5\xd0\xd3\xc3B\xd8e\x0d\x83K\xaa\xe9\xae\x9e\xee\xea\
+\x8f\xbe\xbfWU;<G;r\xe6\xdc\xaf\x81S\xc0\
+.\xa0\xb4\xc9\xc7\x16\x80\x7f\x00\xef\x02\xf5\xb1\x0b\xe7[\
+\x1b\xdd\xec>#\x98\x00\xfcjO\xe5\xed_\xfd\xfcG\
+\x87\xf6\xec\x18\xdc\xe6J!\x1c\x07\x1c'\xbf\xc7\xe9\xfc\
+\x80'\xc0\xda\xfc\xbf0j\xed\x1e\x9f\x98\x1d\xfa\xdd\xbb\
+\x1f\xd4\x81\xf7\x81{]\x07l\xab5\xf4\xd2@\xdf\x9e\
+\x97\xf7\x0e\x0f\xbc\xb2w\xb8\xc7\x95\xc2\x01p%`\xe9\
+P\x0a@\x0a\xb0\xc6b\xac\xa5\x19\xa7[\xfaz+=\
+c7\xee\xfcxz\xbe\x11q\xe6\xdc'c\x17\xce\xdf\
+]\xefE\xe2\x19\x01=\xa0\x7f`{\xcd\xab\x94K\xd2\
+\x95\xc2\x11\x0e\xfc_'?Z\x0bZg$i\x86#\
+\x84\xdc\xbb\xa3\xbf\xe7\xad\xa3\x07\xde\x1c\x1e\xec{\xa7\xd6\
+[9q\xe4\xcc\xb9\x81n+\xd8iR\xe4\xddiC\
+\xc1\xc3\xe3\xda\x96\xa4\x09-\x05\xca8H\xab\xf8\xc9\xe9\
+\xd7\x87\xa7\xe7\x1bo\xd6\x83\x95l%\x8c\x15\xf0\xe7'\
+\xcd\xef\xb0q\xdb\x01\x8c\xac\x19\xef\x07\xaa\xd2\xab\xf8~\
+u`\xe8\xc8\xf1S\xbf<rp\xd76\x89*\x85\xe1\
+*\x0e\xd0\xdb[\xe5\xe4\xc9S\xbcv\xe4\xbb\xec\xdc\xb9\
+\xab\xf3\xe0\xc2B\x9d(\xd58\xee\x16\xb6\xf4\xf6!\x92\
+\x00\xaf\xe4\x9b\x8b\x97\xaf\xd7\x7f\xff\xfe\x95\x0f\xa6\xe7\x83\
+\xdf\x8c]8?\xb7Y\x05k\xc0\x1b\x87\x0f\x1f>9\
+<<\xfc\xad\xe2\xe2\xa1C\x87\xb6V\xab\xd5\x92\xb5H\
+m\xf1\x91~m\xdf\xee\x11w\xeb\xd6\x1a\xbe_\xc6u\
+]\x94\xca\xf8\xe7\xc7\x1f3;;\xc3\xa9\xef\xff\x80\x03\
+\xfb\x0f\x00\xa0\xb5&S\x0a\x87\x0c\x80L\xf6 \x8cv\
+F\x06\xfb*G\xbf\xf3\x8d\x1d\xd3\xf3\xc1\x1b\xc0{\x9b\
+\x05<|\xf6\xec\xd9\xb7O\x9c8\xf1\xd6\xbe}\xfb\xf6\
+\x14\x17\x87\x86\x86\xbcr\xb9,\x00\xacEhc\xcb\xb5\
+Z\xaf\xa8T*\xb8R\xa2\xb5\xc6\xf5<\x16\xea\xf7\x09\
+\x82E\xc6>\xfb\x0f\xfd\xdb\xb6308\x08X\xb2L\
+\x03*7\x9d,\x91\xb4V\x1d\xc7qdO\xa5\xec\x03\
+\xfdO\x02Y\x0f\xf0\xd5\x83\x07\x0f\x1e=y\xf2\xe47\
+\x8f\x1f?\xde\xfb4?\xcc\xb2\x8c8\x8eYYYa\
+dd\x84\xd3\xa7O\xf3\xc9\xe8(w\xefL3~\xe3\
+:\xdf;z\x0ckA\xa5\x09\xcd\x95\x90V+FJ\
+\x17\x89&\x8a\x22\xb4\xd6\xeb\xba\xdas\x07I\xae\xa6%\
+MS\x96\x96\x96\xd8\xb9s'\xbbw\xef\xe6\xb5f\x13\
+\xa52>\xba\xf4\x11\xfd\x83\x83\xd4\xaa5\xe2\xe627\
+\xc7o011A\xadV\xe3\xd0\xab\xdfF9=h\
+\xad\xd7\x9d\xbbk\x80Zk\xe28\x06@J\xc9\xfe\xfd\
+\xfb\xe9\xeb\xeb\xa3V\xad\xf2\xa7\xf7\xfe\xc0O\x7f\xf6\x0b\
+^~e?\x03C/\xf1\xfa\xd1\xe3\x18+\xa8\xd6j\
+L\xdf[\xe6\xbf\xf5\xf5\x8bIW\x00\xd7\x82v&v\
+]\xfa\xfb\xfb9v\xec\x18\x7f\xbdx\x91;w\xee\xe2\
+o\xa9\xb1\xbd\x7f\x98\xdaV\x8dp\x1c\x84\x94<X\xc9\
+\x90R\xda\xf5\xe6\xec\x0a\xa0\xd3\xaeo\xc6\x18\xa6\xa6\xa6\
+H\xd3\x14k-\x8e\xe3 \x84@)E3\x8a\xc8\xb4\
+\xa6T\xf6)\x01\xda\xe4\x09\x1c\xc7e\xa3z\xd15@\
+)%\xae\xebr\xfb\xf6m\xc20\xc4\x18C\xb9\x5c\xa6\
+V\xab\xb5\xe1-\xc6<\xac\xc9I\x9em\xc8\x0ch\xbb\
+\xfe\xdc\xcfZ\xea\x1e\x9dD\x08|\xdf\xa7\xbf\xbf\x9f$\
+I\x88\xe3\x98$I0\xc6\xe0y\x1ei\x9a\x92d\x96\
+T\x83j\xf7$\xcbU,\xfa\x0bUP\x08A\xa5R\
+add\x84j\xb5\x8a\xd6\xbac^\xd7u\x91\xae\x87\
+\xb5\x0e\xc6\xe4p\xa9\xce\x95L\xb2|\xbcQ\xebZ\x90\
+8\x8e\x83\xe7y\xd4j5\x8cyT\x12\xe1\x082\xe3\
+\xa0\xda`B@\x91Y\xb4\x814\xfb\x9a\x00\x8bn\xad\
+}\xac\x83\xb1\xa0\xb4C\x92\xe5\x80\x00n\xb1\xd0\xd8\xc8\
+:\xdd\x02\x84G\xd3\x8cm\x8f\xad\xcd\xd7\x81\x90\x07D\
+K\xe5Gc\xdbQ\x0c\x1b\x12vM\xc1\x02\xceZ\xfb\
+\x88\x89\xd7\x02j\x03\xca\x80\xdb\x0e\x8c(\x85\xe5\xf8k\
+2q\x01S\x00\xae\x05\x16\x227m\x94B)\x818\
+\x85\xder\xae\xe2\x0b\x8f\xe2\xb5 \x8f\x9f\x17%P\xeb\
+<\x07j\x03\xad47\xb1\xc3\xc3\x94\xb3\x11`W|\
+p=\xe5\x8ajb\x81D\xe7\xfe\xa7t\x1e\x18Ez\
+\xb1\xe4\xc0/\x14p-P\x96e\x18c:\xb0B\x08\
+\xc0!\xd3y\xc5\x90\x02\xb6\x94\xf2\x5cX\xec\x00\xcd\x06\
+\x95\xe4\xb9L\xbc\xd6\xac\xc58M\xd3\xce9\x80\xe7y\
+\x18cpE\xeew}[\xf2{\x9ba\xbew)\xca\
+_W\x01\xd7B\x15J\x19cPJ!\xa5D)\xd5\
+\xc9\x89I\x92\xe0\x08AK\xc1\xfd\x15\x88=\xa8\x96\xa1\
+\xaf\x02sK\xd0h>y\x93\xf5L\x80\x8f\xab\xb5\xd6\
+\xf7\xb4\xd6XkQJa\xad\xc5u]\x5c\xd7E\x08\
+\x811\x86\xccX\x84\x03\xd2\x81\xc5(\xf7G\xa33\x13\
+\x85+i}\xe1\xc1\x22p\xabk\x80\x8fG\xac\xd6\x9a\
+,ko\x86\xb2\x0c)eG]c\x0c\xd6X\xa4\x03\
+q\x1c\xeb\xb8\xfe@\x85\xcdf\xda\x5c]N\xe38\x8a\
+\x1e,\xd4\xa7\x1a\x8d\xe0_\xcf\x0c\xf8\xb8jk_\x5c\
+\xa8\xa3\x94\x22\xcb2\x5c\xd7\xc5\x18\x83lo\xa0\x8a\xae\
+Tf\x97\x17\x83\xa4\xc9\xf4r\xac\xfd \x8d\x16\x17\xee\
+\xdc\xbd[_l\x04\x0f\x92\xa4u\x0b\xf8\xf4I[\xce\
+\xa7\x02>\xa9*\x14\x8b\xd3b\x1f\x91\xa6)I\x92t\
+\x14,|\xafP\xd5ZK\x18\xaef\x7f\xff\xf0\xc3{\
+\x99\xfb\xd9\xcdR\xcf\xb6\xcf\x81\xcf\x81O\x81\x99\xb1\x0b\
+\xe7\xa3\x8d\x18\xd6\x05|\xdc\xc7\x0a\xc5rE\x14J)\
+<\xcf\xeb('\x84 \x0c\xc3\x8e\x99\x0b\xf5\x5c\xd7\xc5\
+f\xf1}u\xff\xd6o\xc7\xc7o\xfc\x0d\x98\xe3+\xb4\
+u\x01\x0b\xa8\x22J\xad\xb5DQ\x841\x06\xc7q(\
+\x97\xcb4\x9bM\x84\x10\x1d \xdf\xf7;j>\xe2\xa3\
+\x99J\xb4\xde\xa8^<\xa3\x82k!\xb3,#\xcb\xb2\
+\xceBTk\x8d\x94\xb2\x93\x8c\x8b\x08\x96Rv\xae+\
+\xa5l\x14Efii1M\xd3\xa4\x09$]\x07,\
+\xc0\x0aU\xa4\x94\x9d\xfc\xe6y^\x9e\xe7\x9c|U\x9d\
+$\x09\x80\xd1Z\xeb0\x0cu\x10\x04\xe9\xc2\xc2B\x14\
+\x04\xc1T\xab\xd5\xaa\x03q\xd7\x00\x0b\xb8b\x8f\xe1y\
+\xde#\xe0E\xde\x8b\xe3\xa8\x1d\xb9.\xbe\xefs\xeb\xd6\
+\xad\xd6\xc4\xc4D<::\x1a^\xbe|9\x18\x1f\x1f\
+\x9f\x05\xfe\x08\xdc\x06\xa2\xcdam\x02\xb0X\xc2\xfb\xbe\
+\xdf\x09\x8aR\xa9\x84R\x8a4M\x89\xa2\x08\xdf\xf7\x99\
+\x9e\x9eI\xae_\xbf\x1e^\xbdzu\xe5\xd2\xa5K\xe1\
+\xe4\xe4\xe4\x17\xc0M\xe0\xdf\xe4\xd1:\xfdU\xa16\x05\
+\xd8j\xb5\x08\xc3\x90\xe5\xe5\xe5\xb6\x19\x1d\x8c14\x9b\
+\xcdlnn.\xb9v\xedZstt4\x0c\x82`\
+.\x8a\xa2/\xe38\xfe\x22\x8e\xe3\x9b\xc0\xdd\xb6R\xab\
+@\xf8<pO5q\x92$\xac\xae\xae\xdaF\xa3\x91\
+\xcd\xcc\xcc\xc4\xf7\xee\xddK\x83 X\x0a\x82`~~\
+~\xfe\xf6\x95+W\xbel4\x1asq\x1c\xcf\x00\xb3\
+\xe4\xdf\x9bW\x9f\x17j3\x80\x0bKKKs\x93\x93\
+\x93\xc3q\x1c\xabz\xbd\xbez\xed\xda\xb5\xa9\xb1\xb1\xb1\
+\x85\xa9\xa9\xa9\xd9F\xa31\x09\xdc\x00\xc6\x80e\x8ao\
+j/\xa0\xad\xb7\x8e\xd8\x0e\xbc\x03\xfc\x10\xd8G\xeeG\
+\x7fi\x03Mw[\xa5\x8d\xda\xff\x00\xaa\xf0\xe8\xc2\xf9\
+\xe1sN\x00\x00\x00%tEXtdate:\
+create\x002023-03-0\
+9T07:07:05+00:00\
+\x86^qC\x00\x00\x00%tEXtdate\
+:modify\x002023-03-\
+09T07:07:05+00:0\
+0\xf7\x03\xc9\xff\x00\x00\x00(tEXtdat\
+e:timestamp\x002023\
+-03-09T07:08:52+\
+00:00\xdcZ\x83G\x00\x00\x00\x19tEX\
+tSoftware\x00Adobe \
+ImageReadyq\xc9e<\x00\x00\
+\x00\x00IEND\xaeB`\x82\
+\x00\x00\x07S\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x08\x06\x00\x00\x00\x8c\xfe\xb8m\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x00\x06\
+bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\
+\x00\x09pHYs\x00\x00\x00`\x00\x00\x00`\x00\xf0\
+kB\xcf\x00\x00\x00\x07tIME\x07\xe7\x03\x09\x06\
+\x12)\xc3\xf6 \xcd\x00\x00\x06\x1eIDATX\xc3\
+\xed\x98\x7flUg\x19\xc7?\xcf\xf3\x9eso\xdb{\
+KK\x91\x14j\x99\xb0\x91at\x85L\xcc\xdc\x92\xa9\
+Yf\xf6\x07\x84\xb9\xbf\x88#F\xe3\x8cN\x83\xc6D\
+\x13g\x8cQ4j\xfckJ\xc4-Y\xd0?dK\
+\x8c\x083\xcb\xe6\x88\x8e\xe8\x00\x8dc6\x94Z\x0b\x12\
+f\xa1\xb2\x8c\x1f\xa3\xf4\xd7\xed=\xe7=\xe7\xbc\xaf\x7f\
+\x9c\xd3R\x12\xe7nK)\xfb\xc3\xe7\xe6\xc9\xbd77\
+\xe7\xbd\x9f|\x9f\x1f\xef\xf3\xbe\xe2\xbd\xf7\xbc\x83Mo\
+6\xc0;\x0a\xd0y\xcf\x5c\xe3\x15,\x06X\xe6<G\
+\x07/b\xd3\x8c\xd5+Z)\x85\xca\xcae\x95\x86\x9e\
+\xbd\xe1\x0a\x8eN\xc6\xec\xdc\xdb\xcf\x0f\xf6\xfc\x8d\xf1(\
+\xe1\x8d+S\xfc\xf2w\x83\x8cN\xc4\x0d=\x7fC\x15\
+\x1c\xf8\xd7\x08;\xf7\x1e\xe7\xe2h\x9dOl~\x1f+\
+WwR\xab[\xce\x5c\x18c\xb2nio-\xdf\x1c\
+@\x9b:\x9e;<\xc4/^\x18d\xcd\xaa6\x1e\xdd\
+\xb6\x91\xd6%-L\xd4-\xb5\xa9\x88\xc8\xda\x86\xd7Z\
+p\xc07.O\xf1\xe4\xb3\x03\x1c=q\x9e\xfb\xef\xbe\
+\x85\x0d\xef_\x89\x13a\xa26\x85\x00qd\xc9\xb2\xf4\
+\xe6\x00\xfee\xe0<\xbb~\xd3\x8f\x17\xc7\xc3\x9b\xd7\xd1\
+\xb1\xacB-\x8a\x99\xddj\xa3\xc8\xe2\xb2\x0ch\xac\x9c\
+\x17\x04\xb0VOx\xe6\x0f\xa7\xd8\xff\xf2i\xeeX\xdb\
+\xc1\x07{:\x91@\x99\xacE\x00\x08\xbe\xc0\x11l\x9c\
+\x14\x80\x8b\xa4\xe0\xe9sc\xec\xda\xd7\xcf\xe9\xd7\xafp\
+\xff\x87\xba\xe8\xea\xac\x12\xa7)\xa4 \xc8\x8cNR\xbc\
+[\x9b\xe0\xdc\x22(\x989\xcf\xef\x8f\x0e\xf3\xd4s\x03\
+,\xa9*\x9b>\xfcnJeC-\x8a\x11\x04\x11\x01\
+\x91\x19\xb8i\x9c$\xc9\xf0\xce5\xca7?\xc0\xcbc\
+\x11?\x7f~\x90\x83\xbdg\xe9\xb9m\x09k\xba[q\
+>#\x8a\x1c\xa2\x8a\x88\x5c\x85\x9c-\x1f\x90\xa6Y\xa1\
+\xe0\x0d\x02<v\xea\x12\xbb\xf6\x1d\xe7\xd2\xe88\xf7\xf4\
+\xb4\xd3Z\x0d\xa9\xc7\x16UETQ\xf19\xa0* \
+\x85\x88W\x09\xd3\xd4\xe5\x0a.t\x88#\x9b\xb1\xff\xe5\
+\xd7x\xfa\xc0?\xe8X\x02\x1b\xd7U\x09\x8c#\x8eR\
+\xc4(\xaa\xcc\xb8\x88\xa2\xce\x81\xe8t\x94g\x183\xe7\
+q\xce-\xac\x82\xff\xbe8\xc9\x93\xcf\xf6\xf3\xca\xc00\
+k\xbbB\xde\xd5^\x22I\x122\x17\xa0\x06\x8c\x07U\
+AU0\xc6#\xea\xf1\x92\xab7\x93\x8b\x85`\xce\x09\
+\xf9\xc4\xb0\x00\x0az\x0f\x87\xfa^\xe7g\xfb\xfb\x18\x1f\
+\x1f\xe1\xf6\xae\x80\xa6rF\x14'\x98 \xc0x\xc1x\
+\xc1{\xc1\x18\xcd\x9b\x89\x14\x1b\xbc\x16yX\xbcf\xd6\
+D\xf0~\x01\x8ad\xbcf\xd9s\xe0\x04{\x0f\x0e\xd0\
+\xd6\x14\xb1\xaa\xc3\xe0RGLH\x10\x08\xce\x0b\xde+\
+xG\x8e\x94\xc3\xe5!U\x10AE\x8a\xdffU\x09\
+z\xcd\xb7y\x01\x9e<;\xc2O\x7f\xddK\xdf\xc9!\
+:\xdb2*e!\x8aRL\x10\x10x\xc1\xa1\x84(\
+\x88\xc3\x8b\x07\xc9\xe1p \x85r\x1e\xc5\xa3\x85z\xb3\
+\x90D\x11\xf13\xad{\xce\x80c\x931\xdf\xdd}\x84\
+3\xc3\xc3t-\xcdP\x0f\xf5:\x88*\xa1\xa3\xf8\xe3\
+\x0c0 \x0e\xc4#\x9a3\xaaW\x9cW\xd4\x0bL\xbb\
+\x5c\xadf\xef\xf3\x02\x12\xfc\xfcC\x1c\x06J\xf7\xf2\x0a\
+Cga|\x22B\xc8\x08\x03C\x10\x96@\x0cH\x06\
+d\xb3\xe0r@5\x82\xfa\xdc\xbd\x17<ExE\x8b\
+~8]4Y\x91\x06\xf3T\xb0\xa5)\xe4[\x8f\xdc\
+\xcb\x9e\xce*\xcf<\xffW\xde\xbcp\x0e\x9f\xd4\xa9\xb6\
+Vhkk\xa3\xb5\xb5JKEh\x96\x00c<\xde\
+K\xa1\x8a\xe6\xedE\x14U\x83QC\x10\x18\x02c0\
+F\xd1\xa2\xaaK\x81`T\xe6\x0f\x08\xd0V-\xb3}\
+\xeb]\xf4\xac]\xce\xce\xa7\xff\xc4\xf1\xc1S\x8c\x8c\xd6\
+\x18\x1d\x8f\xa9T\xa6h\xa9T\xa8T\xabT\xabU\x9a\
+[\x12ZZ2ZZ\xa0\xb9I(\x97\x85rY\x01\
+S\xec(\x0a(\x19\x82s\x9e8\xf1d\x0b\xb1\xd5\x89\
+\x08\x1f\xddx+\xb7uw\xf0\xc4\xaf\x0e\xf1\xe2\xe1~\
+\x12\x1b\x83\x172\x076q\xd4\xa3\x14/)\x8e\x94\xd4\
+'\xd8T('\x85\x97\x94rY\x09CO\x10\x08F\
+\x15\xef=\x89\xd3\x86\x0b\xe4\x7f\x02N[wg;\xdf\
+\xf9\xe2&z\xd6\xae`\xf7\xbeC\x8cNYJA\x09\
+UE\x8d\xa2\xc6\xa0\xc6`4\xffl\x8c\x12\x98\x22\xbc\
+A@)\x0c)\x95B\x8c1\xf9\x5ch}\xd1\xb7\x1b\
+\x83l\xe8\xd0T.\x05<\xbc\xf9.\x1e\xff\xfaV\xd6\
+\xafYN\xea\x22J\xcd!\xaaff\xb7\xb8\xc6UP\
+\xd5\x99<\x0c\xc3\x90r\xb9D)\x0c\x09\xc2\xe0\xda\xf1\
+f!\x00\xa7m\xc3{o\xe1\xf1olc\xeb}=\
+D\x13\x17\xc9$\xc6\x84\xc1[7\xde\xd9\xed\xaf\x98n\
+<y\xf7i\x94p\xce\xc7\xce\xa5m\x15\xbe\xf6\xd9-\
+\xecxt\x0bMv\x84\xcb#\xe7\x90R\x0e\xe3\xbd\xcf\
+\xbd\x18\x08\x5c\xe6\xc82G\x9a\xa4\xc4\xb1\xc5ZK\xea\
+\xdc\x9crp^\xe7bU\xe1\x81\x8f\xdc\xc9\xaeo?\
+\xc2\x07\xba+\x0c\x9d:\xc6T6\x09*9\x94sd\
+YF\x9a\xa6\xd8$!\xb6\x96(\x8e\x89b\x8bMS\
+\x9co|\xdc\xba\xae\x83\xfb\xea\xeeN~\xf4\xd8\xa7\xf9\
+\xc2\x83ws\xfe\x9f\xbd\x0c_8M\x1a@\x96f$\
+\x05\x9c\xb5I\x0e\x17\xe5n\x93\x147\x87\x9d\xe4\xbao\
+\x16\x9a\xca%>\xb3\xf5\x01~\xf2\xd8\xa7h\xaf_\xa0\
+\xaf\xef0c~\x8a\xd4y\xacM\x88cK\x14O+\
+\x18\x13'\x09\x19\x8d\x8f[\x0bv\xf5\xb1q\xfd\xed<\
+\xf1\xbd\xedlY\xdfM\xff\x91\x03\xbcv\xf9\x0c\x91:\
+\xe2\xd8\x12GW\x15\x8c\xec4\xe0\x22)8\xdb\x96-\
+]\xc27\xbf\xbc\x8d\xef\x7f\xfe!j'^\xe5\xd5\xfe\
+?sE-q\x9a\xe6pqL\x94$d\x8b\x95\x83\
+\xffuAU6}\xec\x1ev\xff\xf0+\xdcY\xcdx\
+\xe5\x8f\xbfe\xb8~\x89H<q\x14\x13\xc7\x16\xe7\x17\
+1\x07\xdf\xcan}O\x17?\xde\xf1%\xbe\xfa\xe0\xbd\
+\x0c\x1fy\x91\xbf\x0f\x1dc\xb2\xecIBA\xb2\x94F\
+\xa7\xd6\x1bz\xfd\xd6\xdcT\xe6s\x9f\xfc8O\xed\xd8\
+N\xe7\x95aN\xf6\xbe\xc4\xb8\x8c\xd0Q-\xd1T~\
+\xfb\x9b-\x00Y\xac;\xea7GF9x\xa4\x97\xf3\
+^\xb9c\xd5\x0a\xee\xdb\xb0\x0e5o\xaf\xcf\xa2\x01\xce\
+\xd7\xfe\x7f\x89~\xbd\xf6\x1fu\xd4\xd8/\x83\xf6\xd6\x89\
+\x00\x00\x00%tEXtdate:cre\
+ate\x002023-03-08T1\
+7:27:26+00:00\x9e\x98\xa5\
+\x85\x00\x00\x00%tEXtdate:mo\
+dify\x002023-03-08T\
+17:27:26+00:00\xef\xc5\
+\x1d9\x00\x00\x00(tEXtdate:t\
+imestamp\x002023-03\
+-09T06:18:41+00:\
+00=\x00\x9f\x01\x00\x00\x00\x00IEND\xaeB\
+`\x82\
+\x00\x00\x04+\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x14\x00\x00\x00\x14\x08\x03\x00\x00\x00\xbaW\xed?\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x01\xbf\
+PLTE\xff\xff\xff\xfe\xfe\xfe\xf2\xf2\xf2\xef\xef\xef\
+\xf8\xf8\xf8\xd5\xd5\xd5\xe2\xe3\xe3\xe3\xe4\xe4\xe3\xe3\xe3\xe4\
+\xe4\xe4\xe4\xe5\xe5\xe5\xe5\xe5\xe6\xe6\xe5\xd6\xd6\xd6\xf7\xf7\
+\xf7\xd9\xda\xda\xdc\xdc\xdd\xc1\xc2\xc2\xc8\xc9\xc9\xe9\xea\xeb\
+\xed\xee\xf0\xed\xef\xf0\xee\xf0\xf1\xee\xf0\xf2\xef\xf1\xf3\xe7\
+\xec\xf3\xe4\xea\xf3\xf2\xf3\xf5\xda\xda\xda\xda\xda\xdb\xcf\xd0\
+\xd0\xc4\xc5\xc4\xb8\xbb\xbe\xd0\xdc\xec\xd2\xe0\xf4\xcc\xdd\xf4\
+\xc7\xda\xf4\xc2\xd7\xf4\xbd\xd4\xf4\xb7\xd0\xf4\xb3\xce\xf4\x94\
+\xbb\xf3q\xa7\xf2\xca\xdc\xf4\xdb\xdb\xda\xdc\xdd\xdc\xb9\xbd\
+\xc3\xc3\xc5\xc8\xea\xec\xed\xee\xf1\xf3\xef\xf1\xf4\xef\xf2\xf5\
+\xef\xf2\xf6\xe5\xec\xf6\xdf\xe9\xf6\xf2\xf5\xf7\xdb\xdb\xdb\xd9\
+\xd9\xd9\xef\xf0\xef\xd8\xe4\xf3\xe7\xec\xf2\xf2\xf3\xf2\xf3\xf3\
+\xf3\xf4\xf5\xf5\xf5\xf6\xf6\xf6\xf7\xf7\xf9\xf9\xf8\xfa\xf9\xf9\
+\xfa\xfa\xf9\xf9\xf9\xf9\xf1\xf1\xf1\xd5\xe2\xf4\xf4\xf4\xf4\xf5\
+\xf5\xf5\xf6\xf6\xf6\xfa\xfa\xfa\xfb\xfb\xfb\xd1\xe0\xf4\xe6\xec\
+\xf5\xf6\xf6\xf5\xfc\xfc\xfc\xf4\xf4\xf3\xcd\xde\xf5\xf8\xf7\xf7\
+\xf9\xfa\xfa\xdc\xdc\xdc\xf5\xf5\xf4\xc9\xdb\xf5\xe4\xec\xf7\xfd\
+\xfd\xfd\xda\xdb\xdb\xc5\xd9\xf5\xe3\xec\xf8\xfb\xfa\xf9\xf7\xf7\
+\xf6\xc0\xd7\xf6\xe2\xec\xf8\xfc\xfb\xfa\xfe\xff\xff\xf8\xf8\xf7\
+\xbc\xd4\xf6\xe1\xeb\xf9\xfc\xfc\xfb\xd8\xd9\xd9\xb7\xd1\xf6\xdf\
+\xea\xf9\xfd\xfc\xfb\xee\xee\xee\xde\xde\xdf\xd8\xd9\xda\xcf\xd1\
+\xd1\xfa\xf9\xf8\xb3\xcf\xf6\xde\xe9\xf9\xea\xea\xea\xcc\xcd\xcd\
+\xc3\xc4\xc4\xc9\xc9\xca\xc9\xca\xca\xed\xee\xee\xa3\xc5\xf6\xd3\
+\xe3\xf9\xfe\xfd\xfc\xf2\xf3\xf3\xd0\xd0\xd1\xc5\xc6\xc6\xe9\xe9\
+\xe9\xd4\xd5\xd4\xf6\xf7\xf9u\xa9\xf4\xb9\xd3\xf8\xff\xfe\xfc\
+\xbf\xc0\xc0\xcb\xcb\xcc\xd7\xd7\xd6\xfb\xfb\xfa\xbf\xd7\xf8\xe2\
+\xec\xfb\xff\xfe\xfd\xe8\xe8\xe8\xc1\xc2\xc3\xcb\xcb\xcb\xf0\xf0\
+\xf0\xd3\xd3\xd3\xe2\xe2\xe3\xe3\xe3\xe4\xd5\xd7\xd8\xc8\xca\xcc\
+\xea\xe9\xe9E\x17\xd3\x0b\x00\x00\x00\x01bKGD\x00\
+\x88\x05\x1dH\x00\x00\x00\x09pHYs\x00\x00\x00`\
+\x00\x00\x00`\x00\xf0kB\xcf\x00\x00\x00\x07tIM\
+E\x07\xe7\x03\x09\x06\x142\x1f\xc9N\xa7\x00\x00\x010\
+IDAT\x18\xd3U\xd0WS\xc2@\x14\x86\xe1]\
+X\x81\x18\x88]@c\xef\xbd\x00\x8a\x05\x114\x8a\x04\
+%\x16\xd4\xd8{\xc3\x8a\xbd\xc5\xde{\xf9\xc1nvs\
+\xe3{\xf9\xcc\x99\xf9f\x0e\x00P\xa7\xff\x97\x0e\x02\x00\
+P\x9c\xc1`4\x19\x19&\x9eeY\xb3\x99\xb5 \x8c\
+\x5cBbRrJjZ\xba\xd5f\xb3\xd932y\
+N\xc5\xac\xec\x9c\xdc\xbc\xfc\x82\xc2\xa2\xe2\x92\xd2\xb2\xf2\
+\x8aJ\x82|UuM\xad\xb5\xae\xde\xe1p:]\x0d\
+\x8dn\x82M\xcd-\xad\x9e6o\xbb\x8fC\xfe\x8eN\
+\x81\x22\xdf\xd5m\x0f\xf4\x049$\x88\xb8\x90\x86\x9e\xde\
+\xbe\xb0O\xa5\x10N\xd2\xb0\x7f\xc05\x88\x860Ij\
+\x11\x8a\xc3#\xa3~B\xb2\x1a\xc5\xb1\xf0\xf8\xc4\xa4H\
+\x0c\xe2(\xba\xa7\xa6gfU\x83\x10@8\xa7\xe1\xfc\
+\xc2\xe2\x121(\x09An\x99\xa2\x7feu\x8d\x98\x10\
+]\xb7ll\x8a\x04\xb7\xb6w\x08\x8a\xb1\xdd\xbd\xfd\x83\
+C@\x10\x1d\x1d\x9f\xe0\x11\xf9\xf4\xec\x5c\xb9\xd0\x03\x8a\
+\x97W\xd772\x04R\xec\xf6\xee\x9e\x1a\xe0\x22\x0f\x8f\
+O\xcf\xf8\xb3\xf2\xcb\xeb\xdb;5\x80>L\x9f_\x0c\
+\xc3\xb2\xa6\xef\x1f\xed\x0e\x00\x18U~\x15Z@\xa3?\
+\x8f\x22K\x03\xe7l\x909\x00\x00\x00%tEXt\
+date:create\x002023\
+-03-08T17:27:26+\
+00:00\x9e\x98\xa5\x85\x00\x00\x00%tEX\
+tdate:modify\x00202\
+3-03-08T17:27:26\
++00:00\xef\xc5\x1d9\x00\x00\x00(tE\
+Xtdate:timestamp\
+\x002023-03-09T06:2\
+0:50+00:00\xdd\xe8\xb2\xde\x00\x00\
+\x00\x00IEND\xaeB`\x82\
+\x00\x00\x03\xa3\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x08\x04\x00\x00\x00&\xf7p\xe6\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x00\x02\
+bKGD\x00\xff\x87\x8f\xcc\xbf\x00\x00\x00\x09pH\
+Ys\x00\x01bT\x00\x01bT\x01\x80\xc1\xe1l\x00\
+\x00\x00\x07tIME\x07\xe7\x03\x09\x06\x12)\xc3\xf6\
+ \xcd\x00\x00\x02rIDATH\xc7\xad\x97\xbfo\
+\x131\x14\xc7?w\xbd\xa0\xdc\x80rBJ:4]\
+*\x90\xf8\xf1\x07Db\x00\x81`\xc8\x8e\x98\xb21e\
+a({\xd35K\xc4\x10\xa9\x13[\x84\x00\xc1L\x85\
+X\xca@\xf7\xa0\xa2J\xa4(R\xc4\x90FB\xad\xa0\
+\xbd4Ic\x86\xbb\xfc\xb8\x8b\xed\xb8\x0d_/\x96\xfd\
+\xfc\xbd\xaf\x9f\xfd\xde\xf3\x81\x1c.E\xea\xf4\x10\x92\xd6\
+\xa3N\x11\x97\x0b I\x19_J6j>e\x92\xb2\
+\xa5\x96\x94\xb0\xc0+\xae\xf0\x93\x8ftb6\x02H\x93\
+g\x8d\x1e\xcf\xa8\x99\xe9s\xd9Fp@Ni\x91\xe3\
+\x00\xc1\xb6\xe9\xb6Wh \xa8jm\xaa\x08\x1a\xac\xcc\
+N\xd8\x12c\x87\x04\xd0\xd1\x12v\x80\x04\x8e\x19a\xe0\
+\xa9\xf9\x90Z\xd9Js\x0b\x1d\x94\xb32\xc2\xa1\x81J\
+1e\x19\xf3W\x00\x97ka\x7f\xc8*\x0e\xe0\x91e\
+IAw\x8e\x078\xac\x8e%\x0d\xf8\x8d?\x92\x9e\xe4\
+\x09\x05\xae\x93\x08\xbf\xeb\xb0\x8c\xc31G\x1a\x85\x1e)\
+\x06\xb4\x19\x84\x0e\xe8\xd3\xa0\xc6{\xba\xe0R\xe6L\x1b\
+\x15\xa6\xed\x8c2\xaeE\x91\x0aIiT\x98b\x12=\
+]\xd6\xa1>'*L\x11DO\x1dzs\xa3\xc2\x14\
+U\x04=\xdb *L\xd1\x01\x12\xf6\xc241\x04\x84\
+\x979\x8aYX\x13\xc2\xff\x88x\xbe\xb0\xc8\xc83\xb1\
+\x02]\x0e\xa3A\x1a'|L\x85\xab\x86\xd9\x06,\xfe\
+\xb0\xce'\x1d\xe1M\xee\x5cp\x8f\xb7\xf4\x84o\xb1\xb8\
+A\x81\x14_\xd8Qzx\xc8}\xeeqL\x8d\x1f\xbc\
+\x89O\x0a\x04\xa5\xc8H\x96&\x82\x0d\xad\xae\x0d\x04M\
+\xb2\x91\xb1\x12\x02!\xd3\xb0\x14\xfaG\xef\xbd\x89e\x04\
+6} \xad\x5c\xa2'\x8c\x22\x0d\xf4m\xf6\x81|$\
+9\x9cc\x8ai\xcb\x1cy`\xdfa\x8b\x0ak\xbc\x1e\
+\xa7/\x81\x877\xd6\xf1\x88\xbb\xb1B\xff\x95\xcf\xe1\xb5\
+\xf2x\xc1\x11V$}m\xa9\x13\xec&\x90aof\
+|\x8fe`S\x95`\x1d|J|\x93\x94\x00\x80\x13\
+vIE\xae\xb9\xc5.\x7f\xc3\xbe\xb4\x048@\x97\x1a\
+\x1f\x22E\xea]\xf8&8\xe19\x99\xc8m\x1cr\xc8\
+i\xd8o\xf3\x94V\xbcH\x8d.\xb6\xcf\xaf\xa9e\x83\
+q\xef\x94\xa6\xf2H\x06\xb4h\xc5\x07%\x8f\x89)E\
+\xfaC\x91\xe6*\x19\xe1h)\xa4y\xc9\xed\xd8\xf8w\
+\x1e\xd2V\xa7\x0f9\xe1H\x93\xfeP,S\xc2\xc18\
+z\xd4\x87\x92\x06\xfaS\xbe\xd6b\xa1\x07\xa7L\xa1O\
+\x8d\x07\x91\xe8\x89{6x\x12\xd7\x82\x8bb\x82\x05\x1e\
+\xed\xeam_\xf2\xb7\xe2\x1f\xabI7!\x97\xa94\x84\
+\x00\x00\x00%tEXtdate:cre\
+ate\x002023-03-08T1\
+7:21:49+00:00\xa3\xa1\xac\
+\xac\x00\x00\x00%tEXtdate:mo\
+dify\x002023-03-08T\
+17:21:49+00:00\xd2\xfc\
+\x14\x10\x00\x00\x00(tEXtdate:t\
+imestamp\x002023-03\
+-09T06:18:41+00:\
+00=\x00\x9f\x01\x00\x00\x00\x00IEND\xaeB\
+`\x82\
+\x00\x00\x06m\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
+\x00\x00\x064IDATx^\xad\x97[lT\xc7\
+\x1d\xc6\x7fs\xce\xd9\x8b\xbd\xf6\xfa\x16\xa0\xbe\x00\x0e\xb2\
+ic$BJ!\x22\xa1-\x95b\xa5/\xeeKh\
++\x95\xa6U\xa5\xc6`U\xaa\xda\xb4\xaa\xfaV\x09U\
+\xca\x03\x94'\xda\x07\x84\x14)\xad\xc4\x8b\xa5R\x83y\
+\x08\xc5\x189\x0ei\xd3\x84\x9a\x9bcj\xec\xb2\x04\x1b\
+;\xbb\xf6z\x8f\xbd\xbb\xde\xb3g\xa6\xc3h\x85\xe5r\
+l\x88\xc9'}\xfa\x9f\x9d\x87\xfd~\xf3\x9f\x99s\x11\
+J)\x82$\x84x\x05x\x9e\xc7kH)\xf5w\xd6\
+(' \xb8C\xbb\x01h\x97R\xbe\xc6cdY\xd6\
+\x07\x1a\xf6\xbb@\xb7\x069\xff\x14\x00&\xfc\xb7\xed\xf5\
+\xe2`]DDn\xce\x89\x8a+W\xaeP]S\x8d\
+@\x00\xa0P\x08e(A)f\xd3i^\xa9\x17/\
+\xbc\xb4Nl;\xf1\x1f\xb9G\x83|[CL<M\
+\x07\xf6\xff`\x8b\xdd,%\xf8J2<<Lee\
+%+\xc9u]\x1e\xc0n\xa9\xb0\x22\x1b\xa2*r?\
+\xa7\xea\x81\xb5\x03\x08-\x05H\xa1\x0d\xf4]\xbcH.\
+\x97\xc3/\x16QJ\x91\xcf\xe7Y\x5c\x5c\xa4P(P\
+\xd4c\xb5\xb5\xb5\x94\x01X\x80\xf8\x82\xf6\x80\x01\x006\
+D\x05\x1f\x0f\xbcK>;\x8f\x85D\x952\xe2\xb6\xc4\
+\xb6\x04!!p>Sl\x8c;\x80D*\x04\xf0\x9c\
+\x10\x02\xe0\xcb@\x05P\x0f4`\xc4Hi\x9f$\x02\
+\x01N\x9c8!\x00\x81\x05\xd2\x87\x96\x96g\x09em\
+\x14\xe5(\xa5\xb4A\x08XW\x19%\xe2\xd8DB\x16\
+\xc3\x13s\x5c\xbc=A\xf7X\x8e\x5c$\xbe\xa9\xbd}\
+\xf7\xef-\xcbZ\xdc\xb1cGYUU\x95\xd3\xd8\xd8\
+\x18~\xe0\x86\x86\x86\xd0\xa5K\x97\xdc\xae\xae\xae\x08\xf0\
+\xd6\xaa\x1d\x00\x13DU,\xc2s\xd51\xf2\x9eO\xa1\
+(\x91Ja\x09A\xd8\xb1\x88\x86l\xe6r\x05\x12\xa2\
+\x8e?\x9f\xff+\x0dM\x1b\x01\x22\xc0f\x96\x84\xef\xfb\
+x\x9eGuu\xb5\x9ePK\xf4\xea\xd5\xab\x87\x84\x10\
+(\xa5\xdeZ\x11\xc0\xb2A\x00\xb6-\x90\xda\xb6\x148\
+\x08\xa4\x12X\xc2\x8c\x1b\x8fL\xb9\xec{\xf5;\xd47\
+6\x11|/\xc1\x84g2\x19\xca\xcb\xcb\xcdf>v\
+\xec\xd8&\xbd\x7f\x0e.A,\x01\xd0\xd9\xd9\xa9\x0e\x1d\
+:\xa4l!\x08Y\x10\xb6-\x1c\xc7\xc6BP\xb4\xcd\
+\x1a\x1b\x00\xc7\xb2\x888\x96\xae\x02`Yx\x10\xc0\xdc\
+\xdc\x1c555\x06 \x1a\x8dr\xe4\xc8\x91\xcd\xc0\x03\
+\x88\x1b\x1a\xa2\xc7b\xb9\xb0mt0f\x8d\xcb#6\
+\xb1\xa8\xa3\xc7,2\x8b\x1e\x93\x99\x1cc\xa9y\xee\xcc\
+.\xe8\xdfEr\xf9<\xab\xc8,A6\x9b5\xa7f\
+\xe9\xffm\x0e\x1c8\xb0\x1e\xe8\x00X\x06\xa0\xb4t\x16\
+\x8e\x0d\xe1\x90\xc0S\x8a\xb1\xa4\xcb\x8d\x8c\x83\xd3\xb2\x97\
+\xa6}\xaf\xb3\xb5\xe3\x17\xac\xdb\xfb:\x0d/\xb4s\xfb\
+\xce$\xfd\xfd\xfd$\x93I\x94R\xe6\xfa\xf8\xf1\xe3\xe8\
+\xba\xac3\xe7\xce\x9d\xe3\xe8\xd1\xa3\x1c>|\x98\xde\xde\
+^\x12\x89\x84\x04,\xa1\x15\xdc\x01\xed\xff\xce\xe6\xf8\xe7\
+\x94Ok\xc7\xcf\xf8\xe6/\xdf&\xf6\xf57\x99|\xa6\
+\x83k\xfe.\xae\xf1-dk\x17\xad{\x7fN^V\
+s\xfaog\xd1wM\xee\xdc\x9d\xe2\x1b\xafvr\xfd\
+\xfau\x03\xa0gk\xd6?\x16\x8b\x99\xebx<\x8e\xe3\
+8%8\x04\xc0#\x00\x96%\x98\xcaA:\xde\xca\xfe\
+\xdf\xbdM\xd5\xae\xd7(\x84b\x08\xdbBY\x82lA\
+r\x7ff\x91O\xeef\x18\xb8\xear\xfa\x1fad\xd5\
+^\xae\x8f\xdcg2\xd7\xc6\x85\x0f\xee\x9b\x00\xed\x87\xa1\
+\xcd\xcd\xcd\xb4\xb5\xb5\x19755\xa1\xa1\x14 \x83\x1f\
+F\x16\xdcq\x15\xdf\xff\xe9o\xa8l\xd8H\xe2\xec;\
+L\x8f^\xc3\x89\x94\xb1\xb5y\x07\x9b[\xb6\xf3Iy\
+%c\x09\x97\xcff\xf2\xdc\x9d\xce2\xa1\xed\x88\x0dL\
+'\xe7\xd8\xb7+\xca\xfa%\x003{=k\xea\xea\xea\
+\x00\xccu*\x952\x00J+\x10\xa0\xb9Zp\xe1\x9d\
+c(,\xca\xe6\xc6\xd9\x10\x8fR\x94\x92{\xc3}$\
+e\x05\xdb\xda\x7fLM\xdb\xcb|<\x9cf\xd2_\xc0\
+\xcdx,\xcck/x \x00\xb5t:B\xa1\x90\x09\
+-\xdd\xea\x1f\x8e\x01*\xf8>`\xc1\xc6\xb8\xa0P\x1c\
+#\x1c\x8bS\xb7\xa5\x96\x92xv}\x05\xe9\xac\xc7h\
+\xff\x9f\x98\xae\xbcL\xcb\xf6\x83\xb8\x0ba\xbc\x82\xa4X\
+\x94x\xda!\xc7B-\xaa\x80\xe3i\xa0\x96\xd5\x15\x01\
+\x00\xd6\xc7C\x84\xca#\xfc\xbfjc!\x9e\xa9\x0cs\
+\xe1\xdf\x83\xec\xd9\xf9\x13\xca\xa3\x0e\xb92G\x03(\x03\
+ak\x00\x16K!\xa5\x1c%0*\x15\xa4\x5c\x05@\
+X\xa5*\xcc\xf5#\xfapl\x86\xf1Y\x8f\xef\xfd\xfa\
+\x8f\xdc\xca\xd4\xe0D\x5c\xa2\x11\x1b\xcf\x93\x14=\x07\xd3\
+\x01\xa5\x90R\xf2PjY\x01V\x05\x10\x08L\x0d\x04\
+\x18\x9dv\xf9\xd5_\x86\x18\xbd\xb7\x80=\x93g\xd3\xba\
+2\xf2y_\xbbh\xea\xce\xaf\xd4p\xf9\xdd\xe0%\x00\
+\x9ex\x09L\xb8\x10<\xa2\xd6/U\xf2\x87\x1f>\xcf\
+\xf5O3D\x1b\xb7\xb1\xf3\xc5\x97Y\x12\x5cN`\x8e\
+\xdbS\x01(\xc0\x12%\x00m\xd4R}\xb1\xb5\x96\xdd\
+[\xe2t\xbf\x97\xa5j\xf7W\xf9\xd1\x1bo\x10\xa0\xb5\
+\x03\x98\xb57\xd5\xd8\x08\x01\xd2\xcbSpSx\xf33\
+\x14\xb3i\x0a\x19\x1f%\xfd\xd5\x82\xd6\x08\xf0\xf0)\xe7\
+\xe3\xe73\x14\xe6u\xa8\x0e\xd6\x00\xcb\xf7\x89\x10\xc13\
+}\xfa\xd7r\x8c\xb2\x137\x03\xc7\x01\xb2\x1e\xfe\xad\x94\
+\xcco\xf7DT\x03\xd8_p\x07\x08\x92\x09\xfd\xd7=\
+?\xfd~B\xa6\xcf\xdf\xf6\xef\x02\xeev;\xfc\x92\x06\
+\xa8\xe3s\xcau]\x1fpW\xed\x00@2\xab\x0a\x1f\
+~*\xd3\xbd\xb7\xfc\xd4\xcdi9\x05\xf4\x03\x97th\
+\xbf\x10\xa2\xd3\xb6\xed\xaf}\x9e%XXX\xf0\x07\x06\
+\x06\xd2'O\x9e\x9c\x06\xba\x83\x00>\x1aI\xca\xad\xe3\
+\xb3*\xd7;\xe2\xa7nL\xcb\xd1R\xe8Y\x1dt\x8b\
+\x00=\x09\xc0\xd0\xd0\x90\xdb\xd3\xd3\x93\xd2N\xcf\xce\xce\
+\x9e.\xbd\x1d\xdf\x08\x02\xe8\xee\xea)\x00\x8c\x04\x84\x06\
+\x85\xaf\x08055U\xd0/\x22\xa9S\xa7N%\xc7\
+\xc7\xc7/\x03g\x81~\x1d\xec\xae\xb8\x09K\xdfv\xda\
+O&\x85\x01@\x08@aZ\xfc\xde\xe0`\xba\xbb\xbb\
+;\xa5\xdf\x8a\xcc$\xd0^\xeds\xcda\xed\x9aw3\
+n\x11`p\xf0\xfdt___\xfa\xcc\x993\xa6\xc5\
+\xa5\xd0\x8fx\x02\x89\xb5\x9ec!D\x18x\x13\xd8O\
+is\x06\xb4\xf8\xb1\xfa\x1f\xbd\xfa*_\xf2\xd8\x15\x9d\
+\x00\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x05+\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
+\x00\x00\x00\x04gAMA\x00\x00\xd6\xd8\xd4OX2\
+\x00\x00\x00\x19tEXtSoftware\
+\x00Adobe ImageRead\
+yq\xc9e<\x00\x00\x04\xbdIDATX\xc3\xed\
+WkL\x93W\x18>#q\xc92\xe9\x16\x97\xa8T\
+e8\x9d\x02\x15\xf6\x03\x872\x93\x01f,[p\xc4\
+0\xff`\xa2.\x1a:\x1dN\x03\xba1\x89[\xb3\x80\
+\xd9\x0c\x84\x02\x19X\x1c\x14\x8b\x85\xb2\x82\x95^\xe4f\
+\x0b\x8e1\xf8\xc3F\xcb-\x81\x15\xdc\xa8\xc2\x1c\x1b\xb7\
+ji\x91\xf2\xee\xbc\x87\xaf\x0c\xdc\xb8\x0da\xd9\xb2\x93\
+<\xed\x97\xf3}\xfd\xde\xe7\xbc\xef\xf3^J\x00\x80\xfc\
+\x93 \xff\x0a\x02t\x09(D\x14\xd9\x14q\x14\x01+\
+F\x80\xae\xddd\xdd\xc6f\x22L\xf8\x95\xc4\x8bG\xc8\
+\xa1\xd3\xf7\xc8\x8e\x97;82a+A \x85\x9c\xbe\
+0H.\xdd\x80\x19@2\xabyM\xf4\xbe\xfbr\x13\
+hd\x06\x91\x04^\xa3Q\xf4\x06\xee\x85G\xf5\xd0\xbd\
+\x83\xcbM \x9b\x9d\xf6@t/\xbd\x162= \x89\
+?H\xa5,\x1b\x01\x8c1y\xc1\xbb\x9d\x88K\xc6\xd7\
+\xc6&\x0e\xa0\x10\xb9\xfdB\xfe\xc5+6F\x8c\x12\x5c\
+N\x02\x93\xa7\xa7\xa7\x0d\xcc\xd39\xb9\x98c6\x14\x0a\
+\xd2\xe4\xa3+A \x8c)\x9e*\xdf7G\xeb\xdc{\
+\xb5\xcc\x89\x9e@D\x96T\x83+,\x0b6FH\x08\
+\x13\xf5d*{.T\x03\x01\xf8\x037\xbf\xc0\x0e4\
+*T\xdfb\x88R\xd5,X\x03t\x1d\x16\x08\x04z\
+EU\xf5\xc8\xa0mt\xc2\xd4s\xf7!\xbesQ\x95\
+\x90\xae\x8f\xd0\x13\xcf\xe5\x94\x83\x87\xb4\x02\x9e\xcc.\x03\
+\xd4\x06\xdd\xaf\x99\xcb\xb0\xaf\xaf\xaf>\xbf\xd2`\xb5\xdb\
+\xed\x80\xf8y\xe4>\xc4^\xab\xb4\xb9\x88/\x86\x80'\
+\xd3\xc0g\xf9\x8e\x19\xf5`\xd7^3\xbav\xdas\xee\
+h\xd8\xc7\xc7G\x9f\xab\xab\xb0\x0e\x0f\x0d\xc1\x10\x87\xb2\
+\xf6.\xe7\x967\xf7wsa\xd8\xbd\xe8^\x80/f\
+\x9a\xa0\x86\xdf\xa96B\xf7\xf0\x03\xd8\x19\x9f\xd4\xcf\xa5\
+\xe7\x1a\x8a\x98-~\xfem\x97T\x1ak__\x1f\xb8\
+\xd0\xd1s\x07br\x15VN\xc4\x87\x97\xd4\x8c0\x14\
+\xe9\x15\xb7\x1e8\x1c\x0e@\xa4\xd6\x191\x9e\x85\x9b\x05\
+~m\xa9%\x1a[\x97\xd9\x0c\xe6.\x0a\xf3$\x14\xdf\
+6\x8e{\xbd\x1e\xd1\xcdB\xc8\x09o\xa9\x04<\xd1\xbd\
+V\xab\x15\x10w\x7f\x1b\x84\xf3\x92\x5c\xbbR\xa9\x84\xfa\
+\xfaz0\x99L\x0cu\xdf5\xc1Q\xb1d\x18\xc9Q\
+D>\xb6v\xcc\xb4@O\x93_~\xd3\xd6\xdf\xdf\x0f\
+2\x99\x0cD\x22\x11\xa8T*\x90J\xa5\xa0\xd1h \
+K[9\xbe\xe9\x95\xe0\x1f\xb8S\xafy,\xf3\x00\x97\
+\x8e\x22\x9e\xc7\x86\xe6S)\x19\xf6\x82\x82\x02\xe6\xe2\xa0\
+\xa0 \xe0\xf1x`\xb1X@[^\x01\xfb\xcf&\x0c\
+-\xa6S\xceg\x94\xcf\x09L\x83\xe2[{\xe6\xc2`\
+\x9a\xb2\x14\x14\x0a\x05\x88\xc5b\xc8\xcc\xcc\x84\xa2\xa2\x22\
+P\xab\xd5\xd0\xd9\xd9\xc9`\xec\xfe\xc9\xb9\xc9\xdb\xa7u\
+.\xb7\xcfK\x80\xae\xb7\xd8)p\x0e\xc0j\x97\xacx\
+\x88\xca\x7f\x82\xe2)\x89\x0e>\x97+![\x96\x0f\x07\
+c\xe3G\x84\x1f&\xd8\x92rd\x8eo\x1a\xbf\x07\xa3\
+\xd1\x08-\xad-\xf0\xcb\xc0 \x1c8\xf1\xbe\x05\xb3b\
+\xc1\x04\x5ci\x84\x85\x85\x84F\xdc&\xe72\xac,\xcf\
+3\xb5\x13\xec;\xe3\xba\xd33\xaf\x82\xe5\xfez\x89\x06\
+\x9e\xde\xfcb\x1b\xf7<\x92\x8d{f\xabO[\xca5\
+\xedXCC=444\x80\xa5\xb7\x172\x14\xc5\xc3\
+\xf3\xe9\xc0e<\x92\xe5(\x9e6]\xe5\x9c*2x\
+}\xf4\x83.Zl\x121\x0c\x1b%\xeaq\xf7/\xcb\
+'\xef\x05\x87_\xfe\xd3\xe4D\x0bLh\xf4\xc9>u\
+\x95\x1e\x0c\x06\x03\xb4\xb7\xb7\xc3\xd7\xc6\x961\xae\x81\x09\
+f\xf16m8h<I::e\xf8b\x81\x83D\
+\xbdWC\xb6\x0a^\x9b*\xc3\x94\x5c\xb0B\x0f\xab$\
+\xb4\x04\x9fJ\xaa\x9bC71(\xd4O\xf2\x0a\xc7t\
+:\x1d\xd4\xd6\xd6\x82\xc9|\xdb\xb9a\x9b\xf7_\xeab\
+\xb2\xe5~\x9cu\x1f\x0d\xf3\xb2\xd4N\xf2\xf6\xb1\xeb.\
+\xb6\xae\x94\xc3\x90l\x97U\xc1KW\xab\x80\x9cMn\
+Z\xd0\x1cI\xbd\xb1\xe7\x88\xb0\xef\xcaW\xc5PZZ\
+\x0a\x1d?\xf6L\x04\x06\x87t<\xaa\x0b\xc2\x84F\x8d\
+\x07\xc8o\x02\xd9\xf9\xaa~\x9a\xf10F\x8e6 \xaf\
+\xbcJxCi\x00\x92(\x1d\x98\xcd\x95\xb3y\xc3}\
+=\xbf\xf9Dj\xa6].\x97CSK+D\x1c{\
+\xf7\xce\xf4\x14%\xae\xf1\x8a\xf5w\x9c\xf5p\x02\xc2\xd9\
+\x0f\x89\xd1\x81\x03O\x8e\xf7\xdc\xd2i\xe7\xf3\xdfu\xfc\
+o\x14.6\xd2\xef\xd8\x17iI\xbe,\x9d\xc8\xd3\x96\
+;\xa7\x0f1\x8c%\xc6\xdf\x9f\xbaw_q5\xa0A\
+l\xb5\x08\x8c\xf9\x94\xf1\xe0\xf03K\x9a|h\x13Z\
+\xbd\xce\xa3\xd9kOH\xf7\x0c\x0f\xb0\x0f\xfe\xf3\x87\xc8\
+\xf9/\xee\xb9In\x00\xf6{>\xed\xf7\x08\x1e*>\
+]\xe5X\xaa\xf1GZ\xf5\xb6Y\x0b\x11\x1d\xb3C\xc9\
+\x918\x099\xf9\xa9\x96!\xfa\x5c\x1a\x0d\xcf\xb3\xff\xff\
+7\xfcO\x13\xf8\x1d\xe7\x87\x19\xb9D\xc3\x01\xcf\x00\x00\
+\x00\x00IEND\xaeB`\x82\
+\x00\x00\x120\
+\x1f\
+\x8b\x08\x00\x00\x00\x00\x00\x00\x00\xed\x5cms\x1b7\x92\
+\xfe\xbc\xfe\x15<\xe6\xcb\xaa\x96\x04\xd1h\xbc*\xb6\xb7\
+l\xc9N\xa5*\xb9M\x9d\x93\xdd\xfb\xe6\xa2\xc8\x91\xcc\
+\x0dE\xaaH\xca\x92\xfc\xeb\xb7\x1b\xa3\x11\xe6\x85 %\
+\x99\xde\xad\xca\x1d\xc7\x96\x80\x06\xd0@?\xddh\x00\xc3\
+\x86^\xfe\xf5\xf6r\xde\xfb\x5c\xac\xd6\xb3\xe5\xe2U\x1f\
+\x84\xec\xf7\x8a\xc5d9\x9d-.^\xf5\x7f\xfb\xf5\xfd\
+\xd0\xf7{\xeb\xcdx1\x1d\xcf\x97\x8b\xe2U\x7f\xb1\xec\
+\xff\xf5\xf5\x8b\x97\xff5\x1c\xf6~(\x16\xc5j\xbcY\
+\xae\x8e{o\xa6\xcb\xb3\xa2\xf7\xe3|~\xbd\xdeDR\
+\x0f\x94\x90B\x0ez\x1f\xfe\xfeC\xef\xdd\xed\xd5r\xb5\
+\xe9\xfd2\xbf\xbe\x18\xfe\xb8\xe8\x89H\xfc{\xd9\xe7q\
+\xcf\x0a){o\xafg\xf3i\xcf\x80\xd6\xfe\xa8\xd7\x1b\
+\x0e\xa9\x8b\xf5\xe7\x8b\x17\xbd^\x8f\xc6\xb7X\x1f/\xd6\
+\xaf\xfa\x9f6\x9b\xab\xe3\xd1h\xb1\x16c\xeeNL\x96\
+\x97\xa3\x0f\xe3\xcf\xc5\xfb\xe5\xea\x1f\xc5\xd9\x08\x84\x1c\xf5\
+S\x8b\xe9\xe4\xa1\xc5\xd5\xf5j.\x96\xab\x8b\xd1t2\
+*\xe6\xc5e\xb1\xd8\xac\xa9:\xd4\xabOR\xf5\xc9\xaa\
+\x18of\x9f\x0b\xe2\x7f\xb9\x5c\xac\xb9%u\xfa]\xad\
+\xf2jz\xfeP\xfb\xe6\xe6F\xdc`\xac\x04!\x84\x91\
+T#\xa5\x86Tc\xb8\xbe[l\xc6\xb7\xc3fS\x92\
+j[S%\xa5\x1cQY\xaa\xf9\xb8Z\xc7\xb7\xf3\xd9\
+\xe2\xf7\xec`bi\xbdwR\xec\x15\xfd\x7fhP\x11\
+\xc4zy\xbd\x9a\x14\xe7\xd4\xb2\x10\x8bb3:\xfd\xf5\
+\xf4\xa1p(\xc5t3\xad\xb1!\xa6\xeb\xc9\xf8\xaah\
+\xf4[\x11K\xbc\xc6\x97\xc5\xfaj<)\xd6\xa3\x8a\xce\
+\xed\xeb\x96\x06\x910\x9b\xbe\xea\xff4\xbe+V\x1f\xcb\
+\xfc\xcdl\xba\xf9D\xc5\xca\xc7\xec\xa7bv\xf1i\x93\
+\xf2\x9fg\xc5\xcd\xdb\xe5\xed\xab\xbe\xec\xc9\x1e\x11{U\
+\xc1\x928\x9f\xcf\x977\xaf\xfa\x9fg\xeb\xd9\xd9\xbc\xec\
+\xaeX\x8c)9<\x1bO~\xbfX-\xaf\x17\xd4\xd9\
+\xa2\xb8\xe9\xb5\x1a\xb3T\xc7<Z\x12\xe8jU\xac\x8b\
+\xd5\xe7\xb2y\x05\xc0\xf1\xc3\xb0\xa5@\x15\x8b*\xa9\xea\
+E\xda\xfceZ|.\xe6\xcd\xb6\xd3\xe5\x84\xd0 \xd6\
+\x94\xb8f\xdb\x1b.\xaf\x8a\xc5pUL(-H\x9b\
+_:\xf5\xcf\xc6k\xaa?\xfamM\xbcG\xd3\xf1\xe7\
+\xd9ttZ\xac\x7f\xdf,\xafFk\x9a\x8ag\xcb\xdb\
+\xe6\x18\x96\xd7\x9b\xab\xeb\xcd\xc7\xe2vS,\xca\xc1\x90\
+\x0e\x92Bbq\xd9\xd5\x03\xb1\xc9\xa0\x883tx>\
+\x9b\x174\xd6=}\x8f\x1e\x04!,\x95\xb8Z\x5cl\
+ev;\xbd\x22;SJ\x98\xad\xc5w\xa9\xf8\xf5\xcb\
+iq\xbe\xae\xac\x81\xd3 \x99J\xc6[\x8cW?\xac\
+\xc6\xd3\x19\xf5\xc6\xe5e\x8d&\x1d\xd19\xaa\xbc\xa6\x11\
+\xc6*\x8c\xe5\xe6nNB0i8Y\xce\xc9C}\
+\x87\x86\x9f\xef#iI\xaa\x9em\xee\x8e\xe1\xfb~\xd5\
+by~\xbe.\xc8\xce$S\xaa\x8e\x22\x03b\x1f\xfa\
+\xbd\xd1\xde\x0ed\xfc\xec\xed\x00\xb6t\xe0!v0j\
+\xca\xb5]\xfe;\xf5\xaa\x1f\xd8eJu\xcf\xe9\x96(\
+\xde\xd7)w@\xfdH]\x95\x03\xb7\xb8\xcf\x5c\xdc3\
+\xfbm1\xdb\x90\x8b\xb9&-\x7f`\xc3\xff\xdb\x82\x14\
+\xde\xcfC\x0c\xd8\x7f\xfd\xe2O%\x06\x8d\xb1\x03iw\
+; \xde\xfb7>\x96&tI\xce\x0c\x1b\x97es\
+\xe2\xdf\xf9\xd0d#\xa4Q\xc6hc\xf3\xfcB\x8e\xdf\
+\x9b\xb7oN\xdet\xf8Y\x87Y^\x0ar\xbcN\xcc\
+\x89=\xd1-^\x80\xda\xe5ya\x8e\xd7\xe9[z\xde\
+\xb4x)\x00\x93\xe7\x95\x85\xfe\xdd[~Z\xbcP\x82\
+\xca\xf3\xca\xe2\xff\xde\xd1c[\xbc4\xa8\x1d\xbcB\x96\
+\xd7)?-^\xc6\xba\x90\xe5\x85\x90\xe5\x15?\x0d^\
+\x10\xd9\xec\x9bG9#\xb7N\xcb\xfe#\xa6\xb9\x1e\xeb\
+is\x9a\xcb\xc7\xf8\x11b\xaf\x92\x1f\xe9\x16\xfa.\x0f\
+r\x8d;G\x82AO\xdb\x0e\xe7q\xae\x0a\xa6\x8f\x90\
+\x01\xb6\xc9\xa0\x1f\xeb\xaa\x92\xaf\xf9u5^\xacig\
+q\xf9\xaa\x7f9\xde\xacf\xb7\x7f\x96\x03\x18\x0ca \
+\x07C\x0c\x22\x04o\x06\xa0\xa5\x90R\x85\xa3~rs\
+C\xf4H\xa5\xce\xd4\x1c\xddP\xa10`A\x85\xaa\x22\
+\xa4\x8aPUd\x9a\xd7\xccPK\xfc:\xcf\xe7\x00\xfa\
+\xdbuFE\xb8C?7\x9ff\x9bb\xffzCp\
+f\xd9\x9b}\xec\xf7\xabp\xbb\xb6h\x9d\xdf\x14\xabX\
+9\xad\xcb\xc4w^L\xa8\xd1x~3\xbe[\xd7 \
+)\xab;v\xd2\xd4\xb6\xf8a|\xbd^\xcf\xc6\x8b\xb7\
+\xf3k\xe6\xb1\x9bK\x92`zZ|\x9e\x8d7q{\
+\xa2\x84\xf7\xd2\xf8\xe0\x1a&\xd6d\xed\x10B9\xfc\xb2\
+\xff\xd7/'\xf3\xd9\xd5/\xe3\xcd\xa7\xb2M\x95\xdb\xa7\
+\xd0\xaa\x9e\x01\x8b}b2[M\xe6E,\xae\xef\xba\
+Vw\xaf\xfah\xfb]\xfa\xedv\xfa\x84\xea\x07\xb5\x85\
+\xce\xf55\xb2U\x87\xd0\xd2\x1f\x039?\xa6\xc3\xc8\x9f\
+\xbfkj\xc4\x80uG\xdfsi\xb2\x95\x87\xb6\xab\xc6\
+\x00x<\xbc\xd8\x83\x94R?P\xb7\xf7\xda\x1a#\x8b\
+\xd8m\xca\x10\x95\x98\x18\xb0\xa6\x04\xbc\x82\xec\xb1\xaeS\
+\xab`3\xb3\x84\x8a\xb6x\xb6\xdd~m2>?\xcf\
+\xf9\xb5n\x07(e\xc6ue;P\xdav\xb6\x82\x8f\
+\xf4k\xfbm=\x9e\xb9\x8e?\xad\x0a:#~\xb7\x05\
+\xa7<\x88N=\xc1W\xb1\x93C\xe5\x05(\xad}}\
+\xe3\xa7\xa4\xf0\x00\xc6\xd7\xbc&\xa2\x15\xc1K\xe7j\xde\
+\xd5;\xe1L\xd0\x06I\xf0o\xeb\xbf\xa1\xee\xbfAQ\
+\xbd\x7f\x97\xf7\xd6\xce\xc9\x9c]:\xa7v\x19\xc9y\xfc\
+<\xdf\x7fs\x07z\xb7\x15\x9e\x9bb\xfa\x5c\x0f\xce\x89\
+\xf1\xfc`v\xc98%\x10\x9b\xcc}P\xf2\xb1Z\xe8\
+\xba\xa2\xae#:\x8f\x15\xacP:X[\xd1\xd85\xa1\
+\xf0DA6\xd2\xe4\xf7\xf6\x99\x22\x08\x1d\x14\xa2\x0c\x03\
+)\x94r\xca\xbb0\x18J\x81\xc4\xca(;P\xc2\x18\
+\x8f\xde#\xd9+\xa20\x80H\xa6\xab\x140\xdd\xa8\xa3\
+?\xb0\xf1\x9b`|\xc6\xf8M\xb0{\x5c\xb0\xd6~\xf2\
+|\xe3\xe7\x0e\xd4\xee\x0elq\xb6\x7fv\xc1\xb7u\xca\
+\x09\xa7,\x88>\xc0\xe3\x8f\xce\xcf\xb7\x9a\xa4z+@\
+I4\xbai# d\x08\xaaaK\xc6\x0a4\xce(\
+h\x18\x9dC^\x10\xd8\xa7?s\x97\xa7UP\x87\xdb\
+\xe5\x81\x95Z+\xcc\xef\xf2\xb8?]\xdf\xe5\xe5\xdfz\
+\xc8\x9a\xf4\xaa\xbe\xe2\x19'L\xc2\x90\xca\xbej\xda\x80\
+\xb7\xd6\xf3\xcb\x8e?u\xcf\xa3T\xc6\x8e2\xbbbL\
+&[l\xba5a\xf2\x9ci\xc6<q\xab\x9f\xe6I\
+\xc9\xf7\xf1G\xdf\xff\xfd\xf9\xa7\x1fO?\xaa\x8fO\xda\
+pdqO:I\xcaJr6\x10\xc8\x1f\xe7\xdf\xbd\
+\x91\xb14a\xa2\xdap%\x81\xf3lNN\xdalt\
+B\xe7\xc0\x8e\xa4D1|\xcc\x1a\x93R\x01\x9e\x08q\
+\xd0\x025\xd6q\x06\xa9\x88\xa4]\x0dko\x85Ac\
+\x13\xe0\xdc\xcc\xa0\xb5$\xea\xa1\xc4\x02\xb9S.|\xaa\
+\x5c\xa6!\x12\xb6\xa4\xf1\xd64\xa5a\xca!\xa5\x81\x9d\
+\xd2\x98\x03J\xe3DD'\x09c\x98pHY\xd4N\
+Y\xdcSe\xb1\x0dYt\xfe\xbdrz\xf7|@i\
+v\x0b\x13\xbe\x99\x87\x22\x11\xd2>\xfa\xebD\xf0\x1f\xb3\
+\xbbg\xde\x93\x1ef\x03!\x82\xf3N\xa1\x1eH~D\
+\xf0@\x8f\x1a\x80@\x0bNjC)\xb0H\x8f>\xaa\
+m\xc5A\xaa\xda&\x1c@\x09\x94\xba\xb6\xc5\x06\x0cq\
++\x1c\x0e\x08\x87\xdb\x09\x87\xf9:86\x9c\x9c\x8f7\
+\xc5\x9f\x95\xd0\xc5\xd0\x0e\xe4s\xc4=\x88\xb4[6\x0e\
+Y\xc1Qa8\x88\x1d@\xd4?\x08\x15\xc0\x82\xd4\x83\
+!\xfd\x03\x12\xca\x05\xf4u$P\x0a\x09\x12\xb0~\x06\
+C-\x9c\x91\xa0+\xda\xf9\x96z\xe7\xddz\x0c\x9c\x92\
+\xc2yP\xe6\xf9;KT\x1a\x0e\xb5\xb3\x04!1h\
+\x03:\xbf\xb3\xe4\xfe0\xb3\xb3<\x88\xbe\xd1\x01\xe4=\
+\x97\x06u\xa0s\x03\x01\x8f\xde\x83\xf5\x83aJ\xd29\
+\xc2\x08\xa3\x945\xc6\x0d\xac\x13\xca\x18\x1bZG\x89x\
+\xbch8\xf7! \x88\x80\x00\xaa~\x92\xd0F\xc8`\
+\x8d\xd7\xc9;\xa6\x9a\x87\xf1\xf4\xddoZ\xb2\xc8\xa1\x94\
+X\x17C\x0b\x08\xfc\xf1u9\x94\xaf\x09\x00\xca\x0bU\
+\x1f\xfb#O\x00\x87\x17LG\xb8\xf3\x82\x99\xff\xc8\xfb\
+\xbd\xe7\xcfX\xa9\xe5\xa1f\xac\x14A\x928\xde\xc3\xae\
+)+\xb5\xaaO\xd9g{\x9atT&s\x90\xc28\
+\x0d\x01M\x84?\xc5\x98(\x01\xda\xa3wP\xa1\xd6\xa9\
+\x9b\x02PR\xe5\xc3\xb9\xb0\x00\x18\x9c7;]\x98\xc2\
+\x83\xe0\xe1\xcc\xe1\xce\xf4\xcaxi\xf5\xeea;w\x90\
+a\x87p\xc0\x05\xc3j\x87z\xa7\xf5\xa1\x84\xfa\xb0\x0f\
+\xbdA@\x04\xcc\xef\x0f\x10\xa0\xb6z\x07%$\x00\x1a\
+\xac\xaf\xdeF\x04\xef\x94L\xabw\xb7\xdey\xb3^Z\
+\xbd\x0f\xb3\xf7\x10F*\x04\xe3\x06RxT\xa8iM\
+b\x1a\x06\x0bj\xa0\x84\x03m\xc0\x87\x81\x13A\x05c\
+%R1z\xa1h8p\xf4\x15~\x08\x1d\x1e\xce\x10\
+x\xd2\xe9\xb0\xd3~\xd1\x99ok\x08\xce\xed0\x04\x8f\
+\x8d\x0d\xadL&Pn\xd6\xbc3\x95\xb6\x1b\x15\xce\xbb\
+\x15x\xc7\xab\x1e\xb9\xa5d\x95\x82s\xd2S\xda\x08i\
+x\xf3\x80G\x07XI\x0f\xbe\xb9B\x0c\xfa\xff7W\
+\xcfD\xce\xfd\x87\x91\xb3A\xa03\xe8\xa1\x09\x9d\x13\x1a\
+\x94\x0eu\xe8\x94\x15\xd2*\xef\xd3\xae\xa6Q3NP\
+\x0e\x16|\xfd\xf2\xe1\xdbw\x0e^\x9cr\x8ch#\xe2\
+\xf0f\xb6\x98.o\x86\xd5R\xce\xefp\xb7\x95W\xa1\
+\xa7R\xa9f\xf9\xd5\xf8\xa2X\x7f\x1aO9\xbatK\
+\xd1\xfdKY\xde\xe3\x94\x8c/\xaeg\xd3b\xb3\x9c\x17\
+\x04\x1b\xc7\x94\xc2C\xc1j6\xddF_\x9e\xfd\x93t\
+\xbc\xad\xe4l\xb9\x9a\x16\xab\x87\x1e\xa0A\x8e\xef<\xc9\
+\x00l\xfc\xc4\x02\x1eOE>\x8f\x9f\x87w\xa1\x1cT\
+\xda\x1c\xfc\x97\xe5\xf2\xb2#Q\xe9t\x9c\x90\xd2j\xdf\
+*\xa2\x118)\xac\x0aA\xda\xad\x10R[\xcc\x14E\
+\xe7dZ\x0c\xafW+\x8e#\x9ds\x00p3\x0ex\
+\xfdiy\xc3p\xf1\x81\xff\xbax@o\xcdH,.\
+\xa8\x1f}u\xdb\xa6\xde5\xa9\xc5\xe5\xd5}\x01\x09\x99\
+\x98\xb2r\xd6\x89m\x1aM,\x19\x9eQ\x84kYJ\
+KN*#~\xa5\x15n\xee8\xee\xf9\xf6\x8e)\xb5\
+y\xc6Y\xa5e\xe5\x10:\xe3L\xb4\xbb:\xad9\xc6\
+h\xd2]c\xa6\x98\xb6\xcbb3\x9e\x8e7\xe3J\x99\
+U\xbe\x0c\xcb\xe4\xc8\xee\xf3\x1bJ\x95\xc9\xf9\x8c\xe2\xae\
+9\x97\xb2\xdc\x8e-\xb4\x0cw\xa6D7\xba\xba\x1b|\
+\x1d[\xfexJ\x04\x04\xeb4*L\xaf\xd2S?\xf5\
+^?\xc4(\xf2\xb7\x1ci\xbd~V\x97gK\x9a\x06\
+\x97?\x15\xe7\x9b\xbf\xadf\x17\xb3E\xa9\x09\xea\xb5\xea\
+fy\xb5\x99]\xce\xbe\xc4\xd5\xfcC\xb1\xd9\x10rI\
+\xd4\xcd\x98\xc2\xd77\x15\x99\xf95),K9\x0c\x8e\
+t~O\x0emLC\xf9\xe5\xbf\x7fP\xba\xcc0\x9a\
+\xf7\xbcj\xd4\xc8\x88f&i\x8a\xccurW3\x9e\
+r\x83P\xf0\x16b<_\x974j\xb1)N\xcaI\
+X\x0fS\x5c,\x7fN%\xa9>\x19 \xb1\x98\x8f'\
+\x89K\x1c\x05\xa3\xdc\x1c\x07\x91\x99\x98\x04}\x8e\xfc`\
+\x83uh\x94\x81?\x22\x10L\xceZ\x09\x95U3\xe5\
+%]\xd08\xfe\x9f\xd3\xf7\x14\x0f69\xfe\xc7r\xf5\
+{9\x1d\x99:>[^\x13\x18\x1c\x95>9>/\
+\xfb\x9b]\x92_\xe5\x9b\x17\x7f\xa1\xab\x02/G\xa9\x80\
+\xeb\xb0G\xe0\xe6\x15\x83UQ^\xa6\xd8v\xff\x84\xfe\
+]\xce\xb8\xc1\xe8\xc3\x86\xc2\xbd~d\xbe\xe5\xb4\xbf\x1f\
+\x07\xa5\x1e\x866\xaaf\xf9\xeb\x17/\xba[\xd0\xe8\x07\
+\xd2\x0b\xd7\xfa\x0b\xd0\xce\xeb\xcf\xd6\xcb\xcf\x17{\xd6\x7f\
+\x06\xfe\x09\xdf\xddIi\xd0\x9d6\xbft\xab\x87f\xb7\
+b\xad\xc1@\x8e\x13x\x8b>49\xf9<'\x12&\
+\xc7\x89\x8aN\xde\xf8\x06'%\xf3\x9c\x82\xd59N>\
+\xbcy\x7f\x82MN*\xcb\x09\xd0\xb8\x1c\xa7\xb7xr\
+r\xda\x1a\x93\xcesr\x98\xe5t\xaa\xdf\xa9w\xa1\xc9\
+)\x8f\xb8\x92!dC\xc5O\xde\xab\xf7\xa6\xc9\xc9\xe7\
+9i4\xd9\xaf^\x09\xa6\xf7M+@\x99\xe7\xe4\x94\
+\xda\x1f\xda\x9d8\xa9\xfb\xd8\xee\xe64\xd871\xfc\xd3\
+&F8\xf4\xcc0h\x8cqMI\x5c\x89\xc9v\x9d\
+\x03Z\x0b\xda\xe4m\xd1\xbf\xf1'\x0d~\x1a*~\x19\
+\xdd\xab`\xad\xf7y\xfd\xd3\xd3\xe2\xe8\xf2ZC\x8by\
+\xfd\xf3\xd3\xe4\x14\x0e\xa5\x7f\x03YN\x06\xe1)c2\
+\x98\xe5\xe4\xb5\x0e\xf9+\x15\x1d\x9c\x8c\xc9p\x82,\x13\
+\xa0i\x8bM&.k\xd8\xdds!7J1\x07\xfb\
+\x0fq\xed\x90\x82N@A;\x9c\xa0\x15L\xb0\x15\xa6\
+'h\xcd\xaa\xa7\x22\xc4\xd3\xc5`\x93\x89n\x5c\xebx\
+,B \x9f\x04\x91\xa9\xa1C\xfd\xb7#\x13\x9aq\x09\
+_\x0fL8\x000\x0e\x9e\x07\x0c\x1c\x02\x98\x14\xe4\x90\
+B\x1c\xbe\x1a\x16g\x9f\x0a\x0b\x06|\x8b\xbe\xc9\xc4?\
+\x0f\x16\xf5$X,'S\xc4D;^\xa2\x19-\x91\
+\x07&\x7fq\xae!\x93\xcf;-)\x9d\xda\x7fw.\
+q2yN\xd6\xe1\xfe[s\x89\x93\xdb\xb1\x09\xd2n\
+\xff\x9d\xb9\xc4i\xc72\x01`\xf6\xde\x98K\x9c\x02d\
+9\xa1\x04\xb5\xff\xbe\x5c\xe2\x94G\x5c\x83R\xfbo\xcb\
+%Ny\xc4\x8du{\xee\xca59\xe5\x10\x87'\xcc\
+\xb1\x102\xd3\xe3\xe5\x15\xdd\xf8\xa8jr\xda\x9aP\xea\
+\x89\xf2?\xf7\x14\x0eB\xef'\xfa%\xa4\x96\x1e\xec\x00\
+\x14P\xdek\x01N\xc5\xcc\x09g\x9c,3\xde\xb0\xee\
+(\xc9q\x03\x81\xb3\xc6\xdb\x98\xd5\xa0\xa9\x1d\x80\xe7\xd4\
+\xc0;.\xa0\xb6D\xe0\x9aD\xe0\x86\x94\xa5\xa4ev\
+U\x92\xba\x89\xed\x02\x8f\xa3\x1c\xce\x97^]\xf0\x87\xe0\
+Ha\xe2]\x9a\xeaNn\xebb\x0de\xf9\xa8Z\xde\
+\xc3I\xa1\x09G\x91\xd5f\xcbw\x1eR\x83\xb5\xd6\xdd\
+\xc7]H4\x0e4\x0e\x86A\x04\xe3\x11\x91\x92(P\
+\x81A\xadJ&\xe9\x0d\xcerZ\xf0a\x8f\xfc\xc8\xe4\
+\xfe\xc3\xe0WHw\xaf\x05u\x83e\x8e\x92\x06 :\
+\x13I\x00{\x02 \xe5\x08T\xca;\xc7\x08U\xf9\x13\
+\xce;\xf9\x90w\x9eQ\x8d9\x08\x8c3Q\x18\xf8\x8a\
+R)\x05J\xa5\xd8\x07\xa5@\xa9\x14{\xaf\x14\xea\xdb\
+0\xdf*Y)\xa5=&\xcf\xba\xa9\x1b\x13\xeaCC\
+\xa3:7\xa6\x12R\xbe\x0c\x962\x03`(\xd8\xd40\
+h\x1d8\x0b\xfe\x017)\xb4\x96\x1em\x93\x16\x03\xab\
+\xa24\x89\x0aN\xc8H=iQ\x8d\x95`\xea\x1d\x80\
+\xaf\xf7\x1e\xf98+|\x00\xa7\x1d\xe7K\xcd\x80\x0e`\
+\x80\xf3\x9c\xd3\x12\xac-\xf9\xf9`\x022\xcdxtR\
+G\x9a\x03\x85\xc8\xe3\x91\x81\xd2\xa8\x90\x81\xd7\x1e\x14\xf1\
+b\x9a\x0fVY\xa6\xa9\xe0H\x16\x90\x9c\x96\xda(\x87\
+eN\x0b\x1a\x8e4&jJ\xd6d<\xe1|\xc2!\
+r3\x16\x0c\x12-f\xa4\x02\xe59\xf3S\x03\xd3\xb6\
+rMH\xba\xab+\xb9|W:^M\xb6MS\xd8\
+1I\xa5\xb0^j\x87\x18(\xeey\xb5\xfc\xbd {\
+Y\x14\xf7\xe9\xf2E=\xd5\xd1eS\x90\xf7\x1fUU\
+`\xd7F\xafm\x8f\xe3\x9f|\xa8\x13\xff\xb9\x9c-\x9a\
+\xd4\xcb\x19\xbfs\x9a\xd1\xafc]\xd1\xa6cz\xdb\xbf\
+Z\x8d\xef\x1a\xbd25:\x5c\xaa)\xc0\xc8\xfa\x07m\
+Uk\xa7\x9b\xe1\xf9\xdc\x9c\x15J\x99\xe6\xbcH\xdf\xf9\
+\xd5\x89\xe9rb\xe3b\xa2\xf2-\xda\x1d\xd3\xd2<`\
+\xe5\x91Z\xdf\xf4\xe8\xb7\xf2=\xd2)=NuhU\
+\xc5/Y\x1f\x08\xe8}\xb0\xa5\x0b\xac2C\x05\xc2\xb3\
+\xc1\xc6o\x81\x81>\xd6\xf9\xf2k\xde\x8bJ\xc8\x0b\x08\
+\x0e\x13\xd7|\x08_\xb2\x9e-\xfe\x1c\xbeO~\xa0\x1b\
+`\x1d!\xad\xaf[\x11\xa9\x0a\x83\xad>\xcd\xdaH@\
+\x929 \xbb\xf4A\xc0\x9e\xf7\xf4\x93*p\x81\xb6\x91\
+Bt\xcd\x99\x98\xb2\x5c\xc6\xe6\x0f\xdc\x82\x1c(\xb7g\
+\xef\xc9\xec\xee\xfdi\xde\x99~\xe9\x112\xcf\x97\x12\xdb\
+R:\xecJ\x99\xf7\xdc\xc1\x09\xad5I\x13\xa5\xd4\xa5\
+\x94>\xb8H\xb1\xf4\x9331ec\x19Ii\xb8\xc5\
+\xfd\xc2\x91V\x8do+\xa5iK\xe9\xe5~]\x1ad\
+\x02j\xc7RzI2\x99(\xa5aIX\xee\x92\xc2\
+?9\x13S6\x96\xb1\x94\xdc\x22\xea2\xfa\xe7\xc0\xec\
+\x9e-\xe5\x0e\xc9\x5c[2\x90P\x13\xad\xdd\xe5I\x9b\
+\x10\xa40\x83\xe8\x9f{\x81\xb5\xc3U\x88\x05\x11\x03U\
+l\x0d\xb0\x03T\x9b@mT\xb4h\xef\xef\xb1`/\
+o\x89\xd8\xea\xb7\x95\xad$\x1f]\xd0q*]\xa5\xee\
+^\xa3\xce\x5c\xa1\xee^\x9f\xce_\x9d\xde\x0f\xab\x0f`\
+\xbb\x9b\x80tup\xebu\xe9n/i,\xed+\xd2\
+\x8d\xeb\xd1h<P\xb0z\xc6E\x0e\xa5\xf0\xc6kB\
+U\x0a\x85R\xc6-bJ\xa6b-\xbd\xd0\x04\xa9\x19\
+\xa0!\x9a\xd4\xda\x1d=c\xf5\xe4ppc4j_\
+\x9bO\xdd\x90\xa26<\x7f\xa8\xe5\x14\x1d\xb6\x96S\x94\
+\xd8\xb5\xa9\xa0\x1e\xb9\x9a\xca\xeej\xca\xb4\xe4}\xaa\x95\
+S\x0e\x94L\xabi\x9b\xc6\x15\xf7\xac\xa6!\x18\xfa\x17\
+\x97\xd3\x94\x1b\x82'\x1dX\xcb\xeb\xa9#H\x8c2J\
+'\xdb\xc8l\xa1r\xba\xf7\xf8\x87\xd1}R\x81\xf7\x84\
+\xb2\x90\xe8h/\xcb\x19-\xcb\xd3GJ\xa0\xa2D\xb0\
+\xd5\xeff\xf5*\xf3\xe5\xc1jV\xc5\x84\x03s\xdd\xbe\
+\xc3\x09k!\xf9\xbb\xf8\xb7'\x86\xac\x94W\xfd\x08~\
+\xfdoL\x1c\xed\xf5\x10\xc3\xad.b\x9b\x87\xb0|R\
+0>\x1c\xb5|\x91v\xcef\x1cV\xf2f]W\xd7\
+u\x87\xc9Uv\x1dL\xe9Y\xa2\xe22\x96\x14e\xef\
+F9\x1f5\xad\xcb\x0ag\x00=x\xf7\x14K\xd9?\
+\xff\x1d\x82;\xda\xb1\x84dW\x9c\xfc\xca\x94V\xb0\xfc\
+\xaccd\xf2{\x18\x0d;\xce\xa5A\x89h\xe2n\xe0\
+\x05h\xaf\xa4S\xbc\xf6Ja\x8dF\x055\xaa\x03\x01\
+\x0e\x83V\x03\xb0\x02L\xf0\x80=\xeb\x85\xf7>(\x1c\
+(+\xbc\xb2Zqk\x87Bk4^\x0f\x10\x045\
+Ep=O\xfdx\xc3/i\x90\xb0@g\x10R\xdf\
+\x89v\xbf\x85\x08\xa0U\x9d\x0a \x851V\x87\x1aG\
+\x00\x13w\xf8\xa6\xd17\x80\xe2\x0c\xe8\xda(A\xa2@\
+m\x9cI\xd2l\x95\xfbK\xcb\xa4\xc1:g\x0fp\x8c\
+|\xb2\xcb\xfbwz\xba\xc7\x9d\x12\x15\xb4\x965\xa9\xdd\
+\x96em\xcb\x96\xcaw\xed[w\xcd[\xd7\xd64)\
+\x07\x9e\x96/=\xd0\xf7\x8bWP-B\xac\x92]\xcc\
+\x08Gt\xe5Jv\x9f4r`\x85I\xeb\xd6\x1e\xcf\
+\xdaZ\xc0\xbd\xf9\x06\xde\xfe\xff\xee\xd2\xb9\xc7\x8f\xc9\xe6\
+Gg\xfd\x1abpy\xbf\xe6}/\x82\x0d\xaa\x84\xbe\
+\x87X\xde\x16c\xef\x16\x04J\xf4\xda1\xd1{#=\
+\xf2a\xc6j\x00`R`\x15\x05U%\xa9E\xb0\x22\
+H'S);)\x1d\x8c\x8c|\x95B\x17,\xd1\x8c\
+\xd0\x5cx\xaf\xfa\xeaws )\xd7~\x1d\x89AF\
+l8\xa8\xe7\xf5\xbf\x00\x1d$M\x88\x06W\x00\x00\
+\x00\x00\x03\xee\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x14\x00\x00\x00\x14\x08\x03\x00\x00\x00\xbaW\xed?\
+\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\
+\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\
+\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x01\x8f\
+PLTE\xff\xff\xff\xdd\xe1\xe4\x97\xa2\xad`p\x80\
+FYlCWjWhy\x86\x92\x9f\xcc\xd1\xd7\xfc\
+\xfc\xfd\xf8\xf9\xfa\xa8\xb1\xbaN`r0EZ3H\
+]<Qf=Rg5J_/DYATh\
+\x8c\x98\xa4\xec\xee\xf0\x90\x9b\xa74I^7Lai\
+~\x91\x9b\xaf\xc1\xb1\xc5\xd6\xb3\xc7\xd8\xa3\xb7\xc9x\x8d\
+\x9fAVkn|\x8b\xe9\xeb\xedBWk\x9a\xad\xbf\
+\xce\xe1\xf0\xd1\xe5\xf5\xd0\xe4\xf4\xcf\xe3\xf3\xad\xc1\xd2T\
+i}.CY\x7f\x8c\x99\xdd\xe0\xe4\x9a\xae\xbf\xdf\xec\
+\xf7\xe1\xed\xf7\xd4\xe6\xf4\xce\xe2\xf2\xd1\xe5\xf4\xb2\xc6\xd7\
+H]q7K`\xbe\xc5\xcb\x96\xa1\xac\xe4\xee\xf7\xd7\
+\xe7\xf4\xcd\xe2\xf2\x8b\x9f\xb1/EZv\x84\x92\xfb\xfc\
+\xfc_p\x80\xd4\xe6\xf3\xd1\xe4\xf3\xd2\xe4\xf3\xcf\xe2\xf2\
+\xd0\xe4\xf3\xb7\xcb\xdcM_q\xe8\xeb\xedFYk\xdf\
+\xec\xf6\xcf\xe3\xf2\xc6\xda\xeaSh|>Qe\xd8\xdc\
+\xe0CVi\xb3\xc8\xd8\xc7\xdb\xebUj~<Pd\
+\xd6\xda\xdeVgy\xbd\xd1\xe2F[pGZm\xe3\
+\xe6\xe9\x85\x92\x9e\x9a\xae\xc02H]hx\x87\xf7\xf8\
+\xf9\xcc\xd1\xd6AUh\xac\xc1\xd2\xc1\xd5\xe5Xm\x80\
+1F[\xaa\xb3\xbc\xfc\xfd\xfd\x8d\x98\xa4Ti|l\
+\x81\x94cs\x83\xf0\xf1\xf3n}\x8c\x8a\x9f\xb1Xl\
+\x80_o\x80\xe9\xeb\xee\x7f\x8d\x9a7L`/DZ\
+AVjSg{fv\x85\xf9\xf9\xfa\xbf\xc5\xcci\
+x\x87\xe4\xe6\xe9fv\x86-CXgv\x86fu\
+\x85gw\x86\xde\xe2\xe5hw\x87eu\x85\xdf\xe2\xe6\
+w\x84\x92x\xf3\xbaI\x00\x00\x00\x01bKGD\x00\
+\x88\x05\x1dH\x00\x00\x00\x09pHYs\x00\x00\x00`\
+\x00\x00\x00`\x00\xf0kB\xcf\x00\x00\x00\x07tIM\
+E\x07\xe7\x03\x09\x06\x142\x1f\xc9N\xa7\x00\x00\x01#\
+IDAT\x18\xd3c`\x00\x02F&f\x16V6\
+v\x0eN\x068\xe0\xe2\xe6\xe1\xe5\xe3\x17\x10\x14\x12\x16\
+\x11\x85\x8b\x89\x89KHJI\xcb\xc8\xca\xc9\x0b)(\
+B\x05\xb9\xc5\x95\x94UT\xd5\xd4\xd4\xd454\xb5\xb4\
+\xb9\xc0b:<\x12\xbaz\xfa\x06\x86@`dlb\
+j\x06\x164\xe7\x95T\xd1\xb7\xb0\xb4\x02\x89\xaaY\xdb\
+\xd8\xda\x81\x04\xed\xf9\xa4T\x1d,\x1d\x9d\x9c\x81\x82.\
+\xae\xf2n\xee A\x0f~i5C+'O'\xa0\
+\xa0\x97\xb7\x8f\xaf\x1fH\xd0_ @\xcd\xd0\xd0\x19\xac\
+\xd200(8\x04$\x18*(\xabf\x08\x05\xeaa\
+\xe1\x11\x91 \xc1(!9u\x98\xa0jtLl\x1c\
+H0>A>\xd1\x08\x22\xa6\x96\x94\x9c\x92\x0avR\
+Z\xbaP\x86\xb1\x9a\x8b\xba\xa1\xbajR&oV6\
+\xc4G\xa29Z&\xb9\xae\xde\x81a\xd1y\xbcZ\xf9\
+\x91P\x7f\x16\x14\x16\x15\x97\x94\x06\x85\xc7\xa4d\xd9\x0b\
+\x95\xc1D\xcb+l\xdd|\x83#*S\xb3\xab\xaak\
+\xe0\xa2\x0cv\x8a~!\x91 {#kk\xea\x22\x19\
+\xd0\x01P\xb4\xbe\x01C\xb4\xaaQ\xa8\x09C\x90\xa1\xb9\
+\xae\x05\x00\xcf\xbe>\xfb#\xb9\xea4\x00\x00\x00%t\
+EXtdate:create\x002\
+023-03-08T17:27:\
+26+00:00\x9e\x98\xa5\x85\x00\x00\x00%\
+tEXtdate:modify\x00\
+2023-03-08T17:27\
+:26+00:00\xef\xc5\x1d9\x00\x00\x00\
+(tEXtdate:timest\
+amp\x002023-03-09T0\
+6:20:50+00:00\xdd\xe8\xb2\
+\xde\x00\x00\x00\x00IEND\xaeB`\x82\
+"
+
+qt_resource_name = b"\
+\x00\x05\
+\x00j\xc4c\
+\x00d\
+\x00e\x00m\x00o\x00s\
+\x00\x0e\
+\x00\x97\xbf\xa2\
+\x00d\
+\x00o\x00c\x00u\x00m\x00e\x00n\x00t\x00v\x00i\x00e\x00w\x00e\x00r\
+\x00\x06\
+\x07\x03}\xc3\
+\x00i\
+\x00m\x00a\x00g\x00e\x00s\
+\x00\x0c\
+\x0dJ\x02g\
+\x00p\
+\x00a\x00s\x00t\x00e\x00@\x002\x00x\x00.\x00p\x00n\x00g\
+\x00\x11\
+\x0e\xab3G\
+\x00z\
+\x00o\x00o\x00m\x00-\x00o\x00r\x00i\x00g\x00i\x00n\x00a\x00l\x00.\x00p\x00n\x00g\
+\
+\x00\x0c\
+\x02\xb1%j\
+\x00g\
+\x00o\x00-\x00n\x00e\x00x\x00t\x00.\x00s\x00v\x00g\x00z\
+\x00\x0f\
+\x0a\x12\xe5*\
+\x00h\
+\x00e\x00l\x00p\x00-\x00a\x00b\x00o\x00u\x00t\x00.\x00s\x00v\x00g\x00z\
+\x00\x10\
+\x0a~p\x07\
+\x00m\
+\x00a\x00g\x00n\x00i\x00f\x00i\x00e\x00r\x00@\x002\x00x\x00.\x00p\x00n\x00g\
+\x00\x1c\
+\x02\x8c\xf4'\
+\x00g\
+\x00o\x00-\x00p\x00r\x00e\x00v\x00i\x00o\x00u\x00s\x00-\x00v\x00i\x00e\x00w\x00-\
+\x00p\x00a\x00g\x00e\x00@\x002\x00x\x00.\x00p\x00n\x00g\
+\x00\x14\
+\x03\xba\xd1'\
+\x00z\
+\x00o\x00o\x00m\x00-\x00p\x00r\x00e\x00v\x00i\x00o\x00u\x00s\x00@\x002\x00x\x00.\
+\x00p\x00n\x00g\
+\x00\x13\
+\x05\x93\x9e\x87\
+\x00g\
+\x00o\x00-\x00n\x00e\x00x\x00t\x00-\x00v\x00i\x00e\x00w\x00@\x002\x00x\x00.\x00p\
+\x00n\x00g\
+\x00\x0f\
+\x0f\x91\x8b\xc7\
+\x00z\
+\x00o\x00o\x00m\x00-\x00o\x00u\x00t\x00@\x002\x00x\x00.\x00p\x00n\x00g\
+\x00\x14\
+\x04jv\xe7\
+\x00z\
+\x00o\x00o\x00m\x00-\x00f\x00i\x00t\x00-\x00b\x00e\x00s\x00t\x00@\x002\x00x\x00.\
+\x00p\x00n\x00g\
+\x00\x12\
+\x01\xfcL\x07\
+\x00z\
+\x00o\x00o\x00m\x00-\x00f\x00i\x00t\x00-\x00w\x00i\x00d\x00t\x00h\x00.\x00p\x00n\
+\x00g\
+\x00\x14\
+\x06\x10\x9a\xe7\
+\x00g\
+\x00o\x00-\x00p\x00r\x00e\x00v\x00i\x00o\x00u\x00s\x00-\x00v\x00i\x00e\x00w\x00.\
+\x00p\x00n\x00g\
+\x00\x08\
+\x06\xc1Y\x87\
+\x00o\
+\x00p\x00e\x00n\x00.\x00p\x00n\x00g\
+\x00\x18\
+\x0d\xd6\xb5G\
+\x00g\
+\x00o\x00-\x00n\x00e\x00x\x00t\x00-\x00v\x00i\x00e\x00w\x00-\x00p\x00a\x00g\x00e\
+\x00@\x002\x00x\x00.\x00p\x00n\x00g\
+\x00\x0b\
+\x03\x03\x9bG\
+\x00z\
+\x00o\x00o\x00m\x00-\x00i\x00n\x00.\x00p\x00n\x00g\
+\x00\x14\
+\x05\xda\x8d\xc7\
+\x00z\
+\x00o\x00o\x00m\x00-\x00o\x00r\x00i\x00g\x00i\x00n\x00a\x00l\x00@\x002\x00x\x00.\
+\x00p\x00n\x00g\
+\x00\x11\
+\x0c2UG\
+\x00z\
+\x00o\x00o\x00m\x00-\x00p\x00r\x00e\x00v\x00i\x00o\x00u\x00s\x00.\x00p\x00n\x00g\
+\
+\x00\x0a\
+\x03\x96\x0eG\
+\x00c\
+\x00u\x00t\x00@\x002\x00x\x00.\x00p\x00n\x00g\
+\x00\x0e\
+\x0f[7G\
+\x00z\
+\x00o\x00o\x00m\x00-\x00i\x00n\x00@\x002\x00x\x00.\x00p\x00n\x00g\
+\x00\x10\
+\x06O7\xc7\
+\x00g\
+\x00o\x00-\x00n\x00e\x00x\x00t\x00-\x00v\x00i\x00e\x00w\x00.\x00p\x00n\x00g\
+\x00\x0b\
+\x03w\x8f\x07\
+\x00o\
+\x00p\x00e\x00n\x00@\x002\x00x\x00.\x00p\x00n\x00g\
+\x00\x0c\
+\x06\xeb\x97\xe7\
+\x00z\
+\x00o\x00o\x00m\x00-\x00o\x00u\x00t\x00.\x00p\x00n\x00g\
+\x00\x15\
+\x0f!\xb3\x87\
+\x00g\
+\x00o\x00-\x00n\x00e\x00x\x00t\x00-\x00v\x00i\x00e\x00w\x00-\x00p\x00a\x00g\x00e\
+\x00.\x00p\x00n\x00g\
+\x00\x09\
+\x00W\xb8g\
+\x00p\
+\x00r\x00i\x00n\x00t\x00.\x00p\x00n\x00g\
+\x00\x15\
+\x02/h'\
+\x00z\
+\x00o\x00o\x00m\x00-\x00f\x00i\x00t\x00-\x00w\x00i\x00d\x00t\x00h\x00@\x002\x00x\
+\x00.\x00p\x00n\x00g\
+\x00\x0e\
+\x0d\x1d\xfd'\
+\x00q\
+\x00t\x00-\x00l\x00o\x00g\x00o\x00@\x002\x00x\x00.\x00p\x00n\x00g\
+\x00\x0b\
+\x05R\xbf'\
+\x00q\
+\x00t\x00-\x00l\x00o\x00g\x00o\x00.\x00p\x00n\x00g\
+\x00\x10\
+\x03g\xb5*\
+\x00g\
+\x00o\x00-\x00p\x00r\x00e\x00v\x00i\x00o\x00u\x00s\x00.\x00s\x00v\x00g\x00z\
+\x00\x08\
+\x06|Z\x07\
+\x00c\
+\x00o\x00p\x00y\x00.\x00p\x00n\x00g\
+\x00\x19\
+\x0d\x16F'\
+\x00g\
+\x00o\x00-\x00p\x00r\x00e\x00v\x00i\x00o\x00u\x00s\x00-\x00v\x00i\x00e\x00w\x00-\
+\x00p\x00a\x00g\x00e\x00.\x00p\x00n\x00g\
+\x00\x0b\
+\x03O\x98\xe7\
+\x00c\
+\x00o\x00p\x00y\x00@\x002\x00x\x00.\x00p\x00n\x00g\
+\x00\x17\
+\x0fA\x96\xe7\
+\x00g\
+\x00o\x00-\x00p\x00r\x00e\x00v\x00i\x00o\x00u\x00s\x00-\x00v\x00i\x00e\x00w\x00@\
+\x002\x00x\x00.\x00p\x00n\x00g\
+\x00\x11\
+\x09\x02(G\
+\x00z\
+\x00o\x00o\x00m\x00-\x00f\x00i\x00t\x00-\x00b\x00e\x00s\x00t\x00.\x00p\x00n\x00g\
+\
+\x00\x0b\
+\x07tw\xe7\
+\x00p\
+\x00r\x00i\x00n\x00t\x002\x00x\x00.\x00p\x00n\x00g\
+\x00\x09\
+\x0a\xa8\xbaG\
+\x00p\
+\x00a\x00s\x00t\x00e\x00.\x00p\x00n\x00g\
+\x00\x07\
+\x0a\xc7W\x87\
+\x00c\
+\x00u\x00t\x00.\x00p\x00n\x00g\
+\x00\x19\
+\x08\xc3Z\xea\
+\x00d\
+\x00o\x00c\x00u\x00m\x00e\x00n\x00t\x00-\x00o\x00p\x00e\x00n\x00-\x00r\x00e\x00c\
+\x00e\x00n\x00t\x00.\x00s\x00v\x00g\x00z\
+\x00\x0d\
+\x099\xc9\x07\
+\x00m\
+\x00a\x00g\x00n\x00i\x00f\x00i\x00e\x00r\x00.\x00p\x00n\x00g\
+"
+
+qt_resource_struct = b"\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x10\x00\x02\x00\x00\x00\x01\x00\x00\x00\x03\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x002\x00\x02\x00\x00\x00&\x00\x00\x00\x04\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x03\xbe\x00\x00\x00\x00\x00\x01\x00\x00\xb9n\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x01\xdc\x00\x00\x00\x00\x00\x01\x00\x00m\xfb\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x03\xd6\x00\x00\x00\x00\x00\x01\x00\x00\xbc\x18\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x00\xf2\x00\x00\x00\x00\x00\x01\x00\x00H^\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x00\x8a\x00\x00\x00\x00\x00\x01\x00\x00\x0e\x98\
+\x00\x00\x01\x88\xd8-C\xa1\
+\x00\x00\x02\x80\x00\x00\x00\x00\x00\x01\x00\x00\x86\xa7\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x04\xb8\x00\x00\x00\x00\x00\x01\x00\x00\xf0\x17\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x04D\x00\x00\x00\x00\x00\x01\x00\x00\xd08\
+\x00\x00\x01\x88\xd8-C\xa1\
+\x00\x00\x03T\x00\x00\x00\x00\x00\x01\x00\x00\xadX\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x02\xf2\x00\x00\x00\x00\x00\x01\x00\x00\x95\xf2\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x010\x00\x00\x00\x00\x00\x01\x00\x00Pu\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x01\xae\x00\x00\x00\x00\x00\x01\x00\x00g[\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x04(\x00\x00\x00\x00\x00\x01\x00\x00\xcai\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x01^\x00\x00\x00\x00\x00\x01\x00\x00Xz\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x02\x9c\x00\x00\x00\x00\x00\x01\x00\x00\x8ac\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x02\x06\x00\x00\x00\x00\x00\x01\x00\x00q\x88\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x03.\x00\x00\x00\x00\x00\x01\x00\x00\xa9v\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x04j\x00\x00\x00\x00\x00\x01\x00\x00\xe6v\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x024\x00\x00\x00\x00\x00\x01\x00\x00u~\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x03p\x00\x00\x00\x00\x00\x01\x00\x00\xb1U\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x050\x00\x00\x00\x00\x00\x01\x00\x01\x04L\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x05x\x00\x00\x00\x00\x00\x01\x00\x01\x13\x93\
+\x00\x00\x01\x88\xd8-C\xa1\
+\x00\x00\x05\x08\x00\x00\x00\x00\x00\x01\x00\x01\x00\x1d\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x05\xb0\x00\x00\x00\x00\x00\x01\x00\x01%\xc7\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x00\xa8\x00\x00\x00\x00\x00\x01\x00\x00#\xfd\
+\x00\x00\x01\x88\xd8-C\xa1\
+\x00\x00\x00\xcc\x00\x00\x00\x00\x00\x01\x00\x00?\x91\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x05L\x00\x00\x00\x00\x00\x01\x00\x01\x07\xf3\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x05d\x00\x00\x00\x00\x00\x01\x00\x01\x0ed\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x02\xca\x00\x00\x00\x00\x00\x01\x00\x00\x92<\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x04\x80\x00\x00\x00\x00\x00\x01\x00\x00\xeb\xb4\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x04\x06\x00\x00\x00\x00\x00\x01\x00\x00\xc2\xd8\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x00D\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x02J\x00\x00\x00\x00\x00\x01\x00\x00}\x9b\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x00b\x00\x00\x00\x00\x00\x01\x00\x00\x0a\xe2\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x03\x8e\x00\x00\x00\x00\x00\x01\x00\x00\xb5\x05\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x04\xd4\x00\x00\x00\x00\x00\x01\x00\x00\xf8\xc6\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x03\x0c\x00\x00\x00\x00\x00\x01\x00\x00\xa1>\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+\x00\x00\x01\x8a\x00\x00\x00\x00\x00\x01\x00\x00_\xa4\
+\x00\x00\x01\x87\xdc\x8a\xff\x8e\
+"
+
+def qInitResources():
+ QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+def qCleanupResources():
+ QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+qInitResources()
diff --git a/examples/demos/documentviewer/recentfilemenu.py b/examples/demos/documentviewer/recentfilemenu.py
new file mode 100644
index 000000000..36c7dc9f3
--- /dev/null
+++ b/examples/demos/documentviewer/recentfilemenu.py
@@ -0,0 +1,34 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtWidgets import QMenu
+from PySide6.QtCore import Signal, Slot
+
+
+class RecentFileMenu(QMenu):
+ fileOpened = Signal(str)
+
+ def __init__(self, parent, recent):
+ super().__init__(parent)
+ self._recentFiles = recent
+ self._recentFiles.changed.connect(self.updateList)
+ self._recentFiles.destroyed.connect(self.deleteLater)
+ self.updateList()
+
+ @Slot()
+ def updateList(self):
+ for a in self.actions():
+ del a
+
+ if not self._recentFiles:
+ self.addAction("<no recent files>")
+ return
+
+ for fileName in self._recentFiles.recentFiles():
+ action = self.addAction(fileName)
+ action.triggered.connect(self._emitFileOpened)
+
+ @Slot()
+ def _emitFileOpened(self):
+ action = self.sender()
+ self.fileOpened.emit(action.text())
diff --git a/examples/demos/documentviewer/recentfiles.py b/examples/demos/documentviewer/recentfiles.py
new file mode 100644
index 000000000..fdfc56d40
--- /dev/null
+++ b/examples/demos/documentviewer/recentfiles.py
@@ -0,0 +1,159 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from enum import Enum, auto
+
+from PySide6.QtCore import QFileInfo, QObject, QSettings, Signal, Slot
+
+
+DEFAULT_MAX_FILES = 10
+
+
+# Test if file exists and can be opened
+def testFileAccess(fileName):
+ return QFileInfo(fileName).isReadable()
+
+
+class RemoveReason(Enum):
+ Other = auto()
+ Duplicate = auto()
+
+
+class EmitPolicy(Enum):
+ EmitWhenChanged = auto(),
+ NeverEmit = auto()
+
+
+s_maxFiles = "maxFiles"
+s_openMode = "openMode"
+s_fileNames = "fileNames"
+s_file = "file"
+
+
+class RecentFiles(QObject):
+
+ countChanged = Signal(int)
+ changed = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._maxFiles = DEFAULT_MAX_FILES
+ self._files = []
+
+ # Access to QStringList member functions
+ def recentFiles(self):
+ return self._files
+
+ def isEmpty(self):
+ return not self._files
+
+ # Properties
+ def maxFiles(self):
+ return self._maxFiles
+
+ def setMaxFiles(self, maxFiles):
+ self._maxFiles = maxFiles
+
+ def addFile(self, fileName):
+ self._addFile(fileName, EmitPolicy.EmitWhenChanged)
+
+ def removeFile(self, fileName):
+ idx = self._files.find(fileName)
+ self._removeFile(idx, RemoveReason.Other)
+
+ @Slot()
+ def clear(self):
+ if self.isEmpty():
+ return
+ self._files.clear()
+ self.countChanged.emit(0)
+
+ def _addFile(self, fileName, policy):
+ if not testFileAccess(fileName):
+ return
+
+ # Remember size, as cleanup can result in a change without size change
+ c = len(self._files)
+
+ # Clean dangling and duplicate files
+ i = 0
+ while i < len(self._files):
+ file = self._files[i]
+ if not testFileAccess(file):
+ self._removeFile(file, RemoveReason.Other)
+ elif file == fileName:
+ self._removeFile(file, RemoveReason.Duplicate)
+ else:
+ i += 1
+
+ # Cut tail
+ while len(self._files) > self._maxFiles:
+ self.removeFile((len(self._files) - 1), RemoveReason.Other)
+
+ self._files.insert(0, fileName)
+
+ if policy == EmitPolicy.NeverEmit:
+ return
+
+ if policy == EmitPolicy.EmitWhenChanged:
+ self.changed.emit()
+ if c != len(self._files):
+ self.countChanged.emit(len(self._files))
+
+ @Slot(list)
+ def addFiles(self, files):
+ if files.isEmpty():
+ return
+
+ if len(files) == 1:
+ self.addFile(files[0])
+ return
+
+ c = len(self._files)
+
+ for file in files:
+ self.addFile(file, EmitPolicy.NeverEmit)
+
+ self.changed.emit()
+ if len(self._files) != c:
+ self.countChanged.emit(len(self._files))
+
+ def _removeFile(self, p, reason):
+ index = p
+ if isinstance(p, str):
+ index = self._files.index(p) if p in self._files else -1
+ if index < 0 or index >= len(self._files):
+ return
+ del self._files[index]
+
+ # No emit for duplicate removal, add emits changed later.
+ if reason != RemoveReason.Duplicate:
+ self.changed.emit()
+
+ @Slot(QSettings, str)
+ def saveSettings(self, settings, key):
+ settings.beginGroup(key)
+ settings.setValue(s_maxFiles, self.maxFiles())
+ if self._files:
+ settings.beginWriteArray(s_fileNames, len(self._files))
+ for index, file in enumerate(self._files):
+ settings.setArrayIndex(index)
+ settings.setValue(s_file, file)
+ settings.endArray()
+ settings.endGroup()
+
+ @Slot(QSettings, str)
+ def restoreFromSettings(self, settings, key):
+ settings.beginGroup(key)
+ self.setMaxFiles(settings.value(s_maxFiles, DEFAULT_MAX_FILES, int))
+ self._files.clear() # clear list without emitting
+ numberFiles = settings.beginReadArray(s_fileNames)
+ for index in range(0, numberFiles):
+ settings.setArrayIndex(index)
+ absoluteFilePath = settings.value(s_file)
+ self._addFile(absoluteFilePath, EmitPolicy.NeverEmit)
+ settings.endArray()
+ settings.endGroup()
+ if self._files:
+ self.changed.emit()
+ return True
diff --git a/examples/demos/documentviewer/txtviewer/txtviewer.py b/examples/demos/documentviewer/txtviewer/txtviewer.py
new file mode 100644
index 000000000..ef5a38fcd
--- /dev/null
+++ b/examples/demos/documentviewer/txtviewer/txtviewer.py
@@ -0,0 +1,144 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtWidgets import (QDialog, QFileDialog,
+ QPlainTextEdit)
+from PySide6.QtGui import QAction, QGuiApplication, QIcon, QKeySequence
+from PySide6.QtCore import QDir, QFile, QTextStream, Qt, Slot
+
+from abstractviewer import AbstractViewer
+
+
+class TxtViewer(AbstractViewer):
+ def __init__(self):
+ super().__init__()
+ self.uiInitialized.connect(self.setupTxtUi)
+
+ def init(self, file, parent, mainWindow):
+ self._textEdit = QPlainTextEdit(parent)
+ super().init(file, self._textEdit, mainWindow)
+
+ def viewerName(self):
+ return "TxtViewer"
+
+ def supportedMimeTypes(self):
+ return ["text/plain"]
+
+ @Slot()
+ def setupTxtUi(self):
+ editMenu = self.addMenu("Edit")
+ editToolBar = self.addToolBar("Edit")
+ cutIcon = QIcon.fromTheme(QIcon.ThemeIcon.EditCut,
+ QIcon(":/demos/documentviewer/images/cut.png"))
+ cutAct = QAction(cutIcon, "Cut", self)
+ cutAct.setShortcuts(QKeySequence.Cut)
+ cutAct.setStatusTip("Cut the current selection's contents to the clipboard")
+ cutAct.triggered.connect(self._textEdit.cut)
+ editMenu.addAction(cutAct)
+ editToolBar.addAction(cutAct)
+
+ copyIcon = QIcon.fromTheme(QIcon.ThemeIcon.EditCopy,
+ QIcon(":/demos/documentviewer/images/copy.png"))
+ copyAct = QAction(copyIcon, "Copy", self)
+ copyAct.setShortcuts(QKeySequence.Copy)
+ copyAct.setStatusTip("Copy the current selection's contents to the clipboard")
+ copyAct.triggered.connect(self._textEdit.copy)
+ editMenu.addAction(copyAct)
+ editToolBar.addAction(copyAct)
+
+ pasteIcon = QIcon.fromTheme(QIcon.ThemeIcon.EditPaste,
+ QIcon(":/demos/documentviewer/images/paste.png"))
+ pasteAct = QAction(pasteIcon, "Paste", self)
+ pasteAct.setShortcuts(QKeySequence.Paste)
+ pasteAct.setStatusTip("Paste the clipboard's contents into the current selection")
+ pasteAct.triggered.connect(self._textEdit.paste)
+ editMenu.addAction(pasteAct)
+ editToolBar.addAction(pasteAct)
+
+ self.menuBar().addSeparator()
+
+ cutAct.setEnabled(False)
+ copyAct.setEnabled(False)
+ self._textEdit.copyAvailable.connect(cutAct.setEnabled)
+ self._textEdit.copyAvailable.connect(copyAct.setEnabled)
+
+ self.openFile()
+
+ self._textEdit.textChanged.connect(self._textChanged)
+ self._uiAssets_back.triggered.connect(self._back)
+ self._uiAssets_forward.triggered.connect(self._forward)
+
+ @Slot()
+ def _textChanged(self):
+ self.maybeSetPrintingEnabled(self.hasContent())
+
+ @Slot()
+ def _back(self):
+ bar = self._textEdit.verticalScrollBar()
+ if bar.value() > bar.minimum():
+ bar.setValue(bar.value() - 1)
+
+ @Slot()
+ def _forward(self):
+ bar = self._textEdit.verticalScrollBar()
+ if bar.value() < bar.maximum():
+ bar.setValue(bar.value() + 1)
+
+ def openFile(self):
+ type = "open"
+ file_name = QDir.toNativeSeparators(self._file.fileName())
+ if not self._file.open(QFile.ReadOnly | QFile.Text):
+ err = self._file.errorString()
+ self.statusMessage(f"Cannot read file {file_name}:\n{err}.", type)
+ return
+
+ in_str = QTextStream(self._file)
+ QGuiApplication.setOverrideCursor(Qt.WaitCursor)
+ if self._textEdit.toPlainText():
+ self._textEdit.clear()
+ self.disablePrinting()
+
+ self._textEdit.setPlainText(in_str.readAll())
+ QGuiApplication.restoreOverrideCursor()
+
+ self.statusMessage(f"File {file_name} loaded.", type)
+ self.maybeEnablePrinting()
+
+ def hasContent(self):
+ return bool(self._textEdit.toPlainText())
+
+ def printDocument(self, printer):
+ if not self.hasContent():
+ return
+
+ self._textEdit.print_(printer)
+
+ def saveFile(self, file):
+ file_name = QDir.toNativeSeparators(self._file.fileName())
+ errorMessage = ""
+ QGuiApplication.setOverrideCursor(Qt.WaitCursor)
+ if file.open(QFile.WriteOnly | QFile.Text):
+ out = QTextStream(file)
+ out << self._textEdit.toPlainText()
+ else:
+ error = file.errorString()
+ errorMessage = f"Cannot open file {file_name} for writing:\n{error}."
+ QGuiApplication.restoreOverrideCursor()
+
+ if errorMessage:
+ self.statusMessage(errorMessage)
+ return False
+
+ self.statusMessage(f"File {file_name} saved")
+ return True
+
+ def saveDocumentAs(self):
+ dialog = QFileDialog(self.mainWindow())
+ dialog.setWindowModality(Qt.WindowModal)
+ dialog.setAcceptMode(QFileDialog.AcceptSave)
+ if dialog.exec() != QDialog.Accepted:
+ return False
+
+ files = dialog.selectedFiles()
+ self._file.setFileName(files[0])
+ return self.saveDocument()
diff --git a/examples/demos/documentviewer/ui_mainwindow.py b/examples/demos/documentviewer/ui_mainwindow.py
new file mode 100644
index 000000000..5773ae5b8
--- /dev/null
+++ b/examples/demos/documentviewer/ui_mainwindow.py
@@ -0,0 +1,230 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'mainwindow.ui'
+##
+## Created by: Qt User Interface Compiler version 6.7.0
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QAction, QBrush, QColor, QConicalGradient,
+ QCursor, QFont, QFontDatabase, QGradient,
+ QIcon, QImage, QKeySequence, QLinearGradient,
+ QPainter, QPalette, QPixmap, QRadialGradient,
+ QTransform)
+from PySide6.QtWidgets import (QApplication, QMainWindow, QMenu, QMenuBar,
+ QScrollArea, QSizePolicy, QSplitter, QStatusBar,
+ QTabWidget, QToolBar, QVBoxLayout, QWidget)
+import rc_documentviewer
+
+class Ui_MainWindow(object):
+ def setupUi(self, MainWindow):
+ if not MainWindow.objectName():
+ MainWindow.setObjectName(u"MainWindow")
+ MainWindow.resize(983, 602)
+ icon = QIcon()
+ icon.addFile(u":/demos/documentviewer/images/qt-logo.png", QSize(), QIcon.Normal, QIcon.Off)
+ MainWindow.setWindowIcon(icon)
+ self.actionOpen = QAction(MainWindow)
+ self.actionOpen.setObjectName(u"actionOpen")
+ icon1 = QIcon()
+ icon1.addFile(u":/demos/documentviewer/images/open.png", QSize(), QIcon.Normal, QIcon.Off)
+ self.actionOpen.setIcon(icon1)
+ self.actionAbout = QAction(MainWindow)
+ self.actionAbout.setObjectName(u"actionAbout")
+ icon2 = QIcon()
+ iconThemeName = u"help-about"
+ if QIcon.hasThemeIcon(iconThemeName):
+ icon2 = QIcon.fromTheme(iconThemeName)
+ else:
+ icon2.addFile(u":/demos/documentviewer/images/help-about.svgz", QSize(), QIcon.Normal, QIcon.Off)
+
+ self.actionAbout.setIcon(icon2)
+ self.actionForward = QAction(MainWindow)
+ self.actionForward.setObjectName(u"actionForward")
+ icon3 = QIcon()
+ icon3.addFile(u":/demos/documentviewer/images/go-next.svgz", QSize(), QIcon.Normal, QIcon.Off)
+ self.actionForward.setIcon(icon3)
+ self.actionBack = QAction(MainWindow)
+ self.actionBack.setObjectName(u"actionBack")
+ icon4 = QIcon()
+ icon4.addFile(u":/demos/documentviewer/images/go-previous.svgz", QSize(), QIcon.Normal, QIcon.Off)
+ self.actionBack.setIcon(icon4)
+ self.actionPrint = QAction(MainWindow)
+ self.actionPrint.setObjectName(u"actionPrint")
+ self.actionPrint.setEnabled(False)
+ icon5 = QIcon()
+ iconThemeName = u"document-print"
+ if QIcon.hasThemeIcon(iconThemeName):
+ icon5 = QIcon.fromTheme(iconThemeName)
+ else:
+ icon5.addFile(u":/demos/documentviewer/images/print2x.png", QSize(), QIcon.Normal, QIcon.Off)
+
+ self.actionPrint.setIcon(icon5)
+ self.actionAboutQt = QAction(MainWindow)
+ self.actionAboutQt.setObjectName(u"actionAboutQt")
+ icon6 = QIcon()
+ icon6.addFile(u":/demos/documentviewer/images/qt-logo.png", QSize(), QIcon.Normal, QIcon.Off)
+ icon6.addFile(u":/demos/documentviewer/images/qt-logo.png", QSize(), QIcon.Normal, QIcon.On)
+ self.actionAboutQt.setIcon(icon6)
+ self.actionRecent = QAction(MainWindow)
+ self.actionRecent.setObjectName(u"actionRecent")
+ icon7 = QIcon()
+ icon7.addFile(u":/demos/documentviewer/images/document-open-recent.svgz", QSize(), QIcon.Normal, QIcon.Off)
+ self.actionRecent.setIcon(icon7)
+ self.actionQuit = QAction(MainWindow)
+ self.actionQuit.setObjectName(u"actionQuit")
+ icon8 = QIcon()
+ iconThemeName = u"application-exit"
+ if QIcon.hasThemeIcon(iconThemeName):
+ icon8 = QIcon.fromTheme(iconThemeName)
+ else:
+ icon8.addFile(u".", QSize(), QIcon.Normal, QIcon.Off)
+
+ self.actionQuit.setIcon(icon8)
+ self.centralwidget = QWidget(MainWindow)
+ self.centralwidget.setObjectName(u"centralwidget")
+ self.centralwidget.setEnabled(True)
+ self.verticalLayout = QVBoxLayout(self.centralwidget)
+ self.verticalLayout.setObjectName(u"verticalLayout")
+ self.viewArea = QWidget(self.centralwidget)
+ self.viewArea.setObjectName(u"viewArea")
+ self.verticalLayout_2 = QVBoxLayout(self.viewArea)
+ self.verticalLayout_2.setObjectName(u"verticalLayout_2")
+ self.splitter = QSplitter(self.viewArea)
+ self.splitter.setObjectName(u"splitter")
+ self.splitter.setOrientation(Qt.Horizontal)
+ self.tabWidget = QTabWidget(self.splitter)
+ self.tabWidget.setObjectName(u"tabWidget")
+ self.tabWidget.setTabPosition(QTabWidget.West)
+ self.bookmarkTab = QWidget()
+ self.bookmarkTab.setObjectName(u"bookmarkTab")
+ self.tabWidget.addTab(self.bookmarkTab, "")
+ self.pagesTab = QWidget()
+ self.pagesTab.setObjectName(u"pagesTab")
+ self.tabWidget.addTab(self.pagesTab, "")
+ self.splitter.addWidget(self.tabWidget)
+ self.scrollArea = QScrollArea(self.splitter)
+ self.scrollArea.setObjectName(u"scrollArea")
+ sizePolicy = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.scrollArea.sizePolicy().hasHeightForWidth())
+ self.scrollArea.setSizePolicy(sizePolicy)
+ self.scrollArea.setMinimumSize(QSize(800, 0))
+ self.scrollArea.setWidgetResizable(True)
+ self.scrollAreaWidgetContents = QWidget()
+ self.scrollAreaWidgetContents.setObjectName(u"scrollAreaWidgetContents")
+ self.scrollAreaWidgetContents.setGeometry(QRect(0, 0, 798, 479))
+ self.scrollArea.setWidget(self.scrollAreaWidgetContents)
+ self.splitter.addWidget(self.scrollArea)
+
+ self.verticalLayout_2.addWidget(self.splitter)
+
+
+ self.verticalLayout.addWidget(self.viewArea)
+
+ MainWindow.setCentralWidget(self.centralwidget)
+ self.menubar = QMenuBar(MainWindow)
+ self.menubar.setObjectName(u"menubar")
+ self.menubar.setGeometry(QRect(0, 0, 983, 23))
+ self.qtFileMenu = QMenu(self.menubar)
+ self.qtFileMenu.setObjectName(u"qtFileMenu")
+ self.menuHelp = QMenu(self.menubar)
+ self.menuHelp.setObjectName(u"menuHelp")
+ MainWindow.setMenuBar(self.menubar)
+ self.statusbar = QStatusBar(MainWindow)
+ self.statusbar.setObjectName(u"statusbar")
+ MainWindow.setStatusBar(self.statusbar)
+ self.mainToolBar = QToolBar(MainWindow)
+ self.mainToolBar.setObjectName(u"mainToolBar")
+ MainWindow.addToolBar(Qt.ToolBarArea.TopToolBarArea, self.mainToolBar)
+
+ self.menubar.addAction(self.qtFileMenu.menuAction())
+ self.menubar.addAction(self.menuHelp.menuAction())
+ self.qtFileMenu.addAction(self.actionOpen)
+ self.qtFileMenu.addAction(self.actionRecent)
+ self.qtFileMenu.addAction(self.actionPrint)
+ self.qtFileMenu.addAction(self.actionQuit)
+ self.menuHelp.addAction(self.actionAbout)
+ self.menuHelp.addAction(self.actionAboutQt)
+ self.mainToolBar.addAction(self.actionOpen)
+ self.mainToolBar.addAction(self.actionRecent)
+ self.mainToolBar.addAction(self.actionPrint)
+ self.mainToolBar.addSeparator()
+ self.mainToolBar.addAction(self.actionBack)
+ self.mainToolBar.addAction(self.actionForward)
+ self.mainToolBar.addSeparator()
+
+ self.retranslateUi(MainWindow)
+ self.actionQuit.triggered.connect(MainWindow.close)
+
+ self.tabWidget.setCurrentIndex(0)
+
+
+ QMetaObject.connectSlotsByName(MainWindow)
+ # setupUi
+
+ def retranslateUi(self, MainWindow):
+ MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"Document Viewer Demo", None))
+ self.actionOpen.setText(QCoreApplication.translate("MainWindow", u"Open", None))
+#if QT_CONFIG(shortcut)
+ self.actionOpen.setShortcut(QCoreApplication.translate("MainWindow", u"Ctrl+O", None))
+#endif // QT_CONFIG(shortcut)
+ self.actionAbout.setText(QCoreApplication.translate("MainWindow", u"about documentviewer", None))
+#if QT_CONFIG(tooltip)
+ self.actionAbout.setToolTip(QCoreApplication.translate("MainWindow", u"Show information about the Document Viewer deomo.", None))
+#endif // QT_CONFIG(tooltip)
+#if QT_CONFIG(shortcut)
+ self.actionAbout.setShortcut(QCoreApplication.translate("MainWindow", u"Ctrl+H", None))
+#endif // QT_CONFIG(shortcut)
+ self.actionForward.setText(QCoreApplication.translate("MainWindow", u"actionForward", None))
+#if QT_CONFIG(tooltip)
+ self.actionForward.setToolTip(QCoreApplication.translate("MainWindow", u"One step forward", None))
+#endif // QT_CONFIG(tooltip)
+#if QT_CONFIG(shortcut)
+ self.actionForward.setShortcut(QCoreApplication.translate("MainWindow", u"Right", None))
+#endif // QT_CONFIG(shortcut)
+ self.actionBack.setText(QCoreApplication.translate("MainWindow", u"actionBack", None))
+#if QT_CONFIG(tooltip)
+ self.actionBack.setToolTip(QCoreApplication.translate("MainWindow", u"One step back", None))
+#endif // QT_CONFIG(tooltip)
+#if QT_CONFIG(shortcut)
+ self.actionBack.setShortcut(QCoreApplication.translate("MainWindow", u"Left", None))
+#endif // QT_CONFIG(shortcut)
+ self.actionPrint.setText(QCoreApplication.translate("MainWindow", u"Print", None))
+#if QT_CONFIG(tooltip)
+ self.actionPrint.setToolTip(QCoreApplication.translate("MainWindow", u"Print current file", None))
+#endif // QT_CONFIG(tooltip)
+#if QT_CONFIG(shortcut)
+ self.actionPrint.setShortcut(QCoreApplication.translate("MainWindow", u"Ctrl+P", None))
+#endif // QT_CONFIG(shortcut)
+ self.actionAboutQt.setText(QCoreApplication.translate("MainWindow", u"About Qt", None))
+#if QT_CONFIG(tooltip)
+ self.actionAboutQt.setToolTip(QCoreApplication.translate("MainWindow", u"Show Qt license information", None))
+#endif // QT_CONFIG(tooltip)
+#if QT_CONFIG(shortcut)
+ self.actionAboutQt.setShortcut(QCoreApplication.translate("MainWindow", u"Ctrl+I", None))
+#endif // QT_CONFIG(shortcut)
+ self.actionRecent.setText(QCoreApplication.translate("MainWindow", u"Recently opened...", None))
+#if QT_CONFIG(shortcut)
+ self.actionRecent.setShortcut(QCoreApplication.translate("MainWindow", u"Meta+R", None))
+#endif // QT_CONFIG(shortcut)
+ self.actionQuit.setText(QCoreApplication.translate("MainWindow", u"Quit", None))
+#if QT_CONFIG(tooltip)
+ self.actionQuit.setToolTip(QCoreApplication.translate("MainWindow", u"Quit the application", None))
+#endif // QT_CONFIG(tooltip)
+#if QT_CONFIG(shortcut)
+ self.actionQuit.setShortcut(QCoreApplication.translate("MainWindow", u"Ctrl+Q", None))
+#endif // QT_CONFIG(shortcut)
+ self.tabWidget.setTabText(self.tabWidget.indexOf(self.bookmarkTab), QCoreApplication.translate("MainWindow", u"Pages", None))
+ self.tabWidget.setTabText(self.tabWidget.indexOf(self.pagesTab), QCoreApplication.translate("MainWindow", u"Bookmarks", None))
+ self.qtFileMenu.setTitle(QCoreApplication.translate("MainWindow", u"File", None))
+ self.menuHelp.setTitle(QCoreApplication.translate("MainWindow", u"Help", None))
+ self.mainToolBar.setWindowTitle(QCoreApplication.translate("MainWindow", u"toolBar", None))
+ # retranslateUi
+
diff --git a/examples/demos/documentviewer/viewerfactory.py b/examples/demos/documentviewer/viewerfactory.py
new file mode 100644
index 000000000..ecae6770b
--- /dev/null
+++ b/examples/demos/documentviewer/viewerfactory.py
@@ -0,0 +1,114 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from enum import Enum, auto
+
+from PySide6.QtWidgets import (QMessageBox)
+from PySide6.QtCore import (QFileInfo, QMimeDatabase, QTimer)
+
+from txtviewer.txtviewer import TxtViewer
+from jsonviewer.jsonviewer import JsonViewer
+from pdfviewer.pdfviewer import PdfViewer
+
+
+class DefaultPolicy(Enum):
+ NeverDefault = auto()
+ DefaultToTxtViewer = auto()
+ DefaultToCustomViewer = auto()
+
+
+class ViewerFactory:
+
+ def __init__(self, displayWidget, mainWindow,
+ policy=DefaultPolicy.NeverDefault):
+ self._viewers = {}
+ self._defaultViewer = None
+ self._defaultWarning = True
+ self._defaultPolicy = policy
+ self._displayWidget = displayWidget
+ self._mainWindow = mainWindow
+ self._mimeTypes = []
+ for v in [PdfViewer(), JsonViewer(), TxtViewer()]:
+ self._viewers[v.viewerName()] = v
+ if v.isDefaultViewer():
+ self._defaultViewer = v
+
+ def defaultPolicy(self):
+ return self._defaultPolicy
+
+ def setDefaultPolicy(self, policy):
+ self._defaultPolicy = policy
+
+ def defaultWarning(self):
+ return self._defaultWarning
+
+ def setDefaultWarning(self, on):
+ self._defaultWarning = on
+
+ def viewer(self, file):
+ info = QFileInfo(file)
+ db = QMimeDatabase()
+ mimeType = db.mimeTypeForFile(info)
+
+ viewer = self.viewerForMimeType(mimeType)
+ if not viewer:
+ print(f"Mime type {mimeType.name()} not supported.")
+ return None
+
+ viewer.init(file, self._displayWidget, self._mainWindow)
+ return viewer
+
+ def viewerNames(self, showDefault=False):
+ if not showDefault:
+ return self._viewers.keys()
+
+ list = []
+ for name, viewer in self._viewers.items():
+ if ((self._defaultViewer and viewer.isDefaultViewer())
+ or (not self._defaultViewer and name == "TxtViewer")):
+ name += "(default)"
+ list.append(name)
+ return list
+
+ def viewers(self):
+ return self._viewers.values()
+
+ def findViewer(self, viewerName):
+ for viewer in self.viewers():
+ if viewer.viewerName() == viewerName:
+ return viewer
+ print(f"Plugin {viewerName} not loaded.")
+ return None
+
+ def viewerForMimeType(self, mimeType):
+ for viewer in self.viewers():
+ for type in viewer.supportedMimeTypes():
+ if mimeType.inherits(type):
+ return viewer
+
+ viewer = self.defaultViewer()
+
+ if self._defaultWarning:
+ mbox = QMessageBox()
+ mbox.setIcon(QMessageBox.Warning)
+ name = mimeType.name()
+ viewer_name = viewer.viewerName()
+ m = f"Mime type {name} not supported. Falling back to {viewer_name}."
+ mbox.setText(m)
+ mbox.setStandardButtons(QMessageBox.Ok)
+ QTimer.singleShot(8000, mbox.close)
+ mbox.exec()
+ return viewer
+
+ def defaultViewer(self):
+ if self._defaultPolicy == DefaultPolicy.NeverDefault:
+ return None
+ if self._defaultPolicy == DefaultPolicy.DefaultToCustomViewer and self._defaultViewer:
+ return self._defaultViewer
+ return self.findViewer("TxtViewer")
+
+ def supportedMimeTypes(self):
+ if not self._mimeTypes:
+ for viewer in self.viewers():
+ self._mimeTypes.extend(viewer.supportedMimeTypes())
+ return self._mimeTypes
diff --git a/examples/designer/taskmenuextension/doc/taskmenuextension.rst b/examples/designer/taskmenuextension/doc/taskmenuextension.rst
index a1b584fb9..dd7fe1679 100644
--- a/examples/designer/taskmenuextension/doc/taskmenuextension.rst
+++ b/examples/designer/taskmenuextension/doc/taskmenuextension.rst
@@ -1,5 +1,7 @@
-Task Menu Extension (Designer)
-==============================
+.. _task-menu-extension-example:
+
+Task Menu Extension Example
+===========================
This example shows how to add custom widgets to Qt Designer,
which can be launched with `pyside6-designer`, and to extend
diff --git a/examples/designer/taskmenuextension/main.py b/examples/designer/taskmenuextension/main.py
index de6b772b0..ffde89d29 100644
--- a/examples/designer/taskmenuextension/main.py
+++ b/examples/designer/taskmenuextension/main.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the Qt Designer taskmenuextension example from Qt v6.x"""
diff --git a/examples/designer/taskmenuextension/registertictactoe.py b/examples/designer/taskmenuextension/registertictactoe.py
index d34bb248d..2b014c790 100644
--- a/examples/designer/taskmenuextension/registertictactoe.py
+++ b/examples/designer/taskmenuextension/registertictactoe.py
@@ -1,54 +1,7 @@
-############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## BSD License Usage
-## Alternatively, you may use this file under the terms of the BSD license
-## as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-from tictactoe import TicTacToe
+from tictactoe import TicTacToe # noqa: F401
from tictactoeplugin import TicTacToePlugin
from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection
diff --git a/examples/designer/taskmenuextension/tictactoe.py b/examples/designer/taskmenuextension/tictactoe.py
index d4f8dff1a..aa1c3158c 100644
--- a/examples/designer/taskmenuextension/tictactoe.py
+++ b/examples/designer/taskmenuextension/tictactoe.py
@@ -1,45 +1,8 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from PySide6.QtCore import Qt, QPoint, QRect, QSize, Property, Slot
-from PySide6.QtGui import QMouseEvent, QPainter, QPen
+from PySide6.QtGui import QPainter, QPen
from PySide6.QtWidgets import QWidget
@@ -99,57 +62,57 @@ class TicTacToe(QWidget):
self.update()
def paintEvent(self, event):
- painter = QPainter(self)
- painter.setRenderHint(QPainter.Antialiasing)
-
- painter.setPen(QPen(Qt.darkGreen, 1))
- painter.drawLine(self._cell_width(), 0,
- self._cell_width(), self.height())
- painter.drawLine(2 * self._cell_width(), 0,
- 2 * self._cell_width(), self.height())
- painter.drawLine(0, self._cell_height(),
- self.width(), self._cell_height())
- painter.drawLine(0, 2 * self._cell_height(),
- self.width(), 2 * self._cell_height())
-
- painter.setPen(QPen(Qt.darkBlue, 2))
-
- for position in range(9):
- cell = self._cell_rect(position)
- if self._state[position] == CROSS:
- painter.drawLine(cell.topLeft(), cell.bottomRight())
- painter.drawLine(cell.topRight(), cell.bottomLeft())
- elif self._state[position] == NOUGHT:
- painter.drawEllipse(cell)
-
- painter.setPen(QPen(Qt.yellow, 3))
-
- for position in range(9):
- if (self._state[position] != EMPTY
- and self._state[position + 1] == self._state[position]
- and self._state[position + 2] == self._state[position]):
- y = self._cell_rect(position).center().y()
- painter.drawLine(0, y, self.width(), y)
+ with QPainter(self) as painter:
+ painter.setRenderHint(QPainter.Antialiasing)
+
+ painter.setPen(QPen(Qt.darkGreen, 1))
+ painter.drawLine(self._cell_width(), 0,
+ self._cell_width(), self.height())
+ painter.drawLine(2 * self._cell_width(), 0,
+ 2 * self._cell_width(), self.height())
+ painter.drawLine(0, self._cell_height(),
+ self.width(), self._cell_height())
+ painter.drawLine(0, 2 * self._cell_height(),
+ self.width(), 2 * self._cell_height())
+
+ painter.setPen(QPen(Qt.darkBlue, 2))
+
+ for position in range(9):
+ cell = self._cell_rect(position)
+ if self._state[position] == CROSS:
+ painter.drawLine(cell.topLeft(), cell.bottomRight())
+ painter.drawLine(cell.topRight(), cell.bottomLeft())
+ elif self._state[position] == NOUGHT:
+ painter.drawEllipse(cell)
+
+ painter.setPen(QPen(Qt.yellow, 3))
+
+ for position in range(0, 8, 3):
+ if (self._state[position] != EMPTY
+ and self._state[position + 1] == self._state[position]
+ and self._state[position + 2] == self._state[position]):
+ y = self._cell_rect(position).center().y()
+ painter.drawLine(0, y, self.width(), y)
+ self._turn_number = 9
+
+ for position in range(3):
+ if (self._state[position] != EMPTY
+ and self._state[position + 3] == self._state[position]
+ and self._state[position + 6] == self._state[position]):
+ x = self._cell_rect(position).center().x()
+ painter.drawLine(x, 0, x, self.height())
+ self._turn_number = 9
+
+ if (self._state[0] != EMPTY and self._state[4] == self._state[0]
+ and self._state[8] == self._state[0]):
+ painter.drawLine(0, 0, self.width(), self.height())
self._turn_number = 9
- for position in range(3):
- if (self._state[position] != EMPTY
- and self._state[position + 3] == self._state[position]
- and self._state[position + 6] == self._state[position]):
- x = self._cell_rect(position).center().x()
- painter.drawLine(x, 0, x, height())
+ if (self._state[2] != EMPTY and self._state[4] == self._state[2]
+ and self._state[6] == self._state[2]):
+ painter.drawLine(0, self.height(), self.width(), 0)
self._turn_number = 9
- if (self._state[0] != EMPTY and self._state[4] == self._state[0]
- and self._state[8] == self._state[0]):
- painter.drawLine(0, 0, self.width(), self.height())
- self._turn_number = 9
-
- if (self._state[2] != EMPTY and self._state[4] == self._state[2]
- and self._state[6] == self._state[2]):
- painter.drawLine(0, self.height(), self.width(), 0)
- self._turn_number = 9
-
def _cell_rect(self, position):
h_margin = self.width() / 30
v_margin = self.height() / 30
diff --git a/examples/designer/taskmenuextension/tictactoeplugin.py b/examples/designer/taskmenuextension/tictactoeplugin.py
index 276c2d0e8..f9c925133 100644
--- a/examples/designer/taskmenuextension/tictactoeplugin.py
+++ b/examples/designer/taskmenuextension/tictactoeplugin.py
@@ -1,59 +1,11 @@
-############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## BSD License Usage
-## Alternatively, you may use this file under the terms of the BSD license
-## as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from tictactoe import TicTacToe
from tictactoetaskmenu import TicTacToeTaskMenuFactory
from PySide6.QtGui import QIcon
-from PySide6.QtDesigner import (QExtensionManager,
- QDesignerCustomWidgetInterface)
+from PySide6.QtDesigner import QDesignerCustomWidgetInterface
DOM_XML = """
diff --git a/examples/designer/taskmenuextension/tictactoetaskmenu.py b/examples/designer/taskmenuextension/tictactoetaskmenu.py
index 2b1db2baa..71826dc7d 100644
--- a/examples/designer/taskmenuextension/tictactoetaskmenu.py
+++ b/examples/designer/taskmenuextension/tictactoetaskmenu.py
@@ -1,56 +1,9 @@
-############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## BSD License Usage
-## Alternatively, you may use this file under the terms of the BSD license
-## as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from tictactoe import TicTacToe
-from PySide6.QtCore import QObject, Slot
+from PySide6.QtCore import Slot
from PySide6.QtGui import QAction
from PySide6.QtWidgets import QDialog, QDialogButtonBox, QVBoxLayout
from PySide6.QtDesigner import (QExtensionFactory, QPyDesignerTaskMenuExtension)
diff --git a/examples/examples.pyproject b/examples/examples.pyproject
index 164997a51..814aae024 100644
--- a/examples/examples.pyproject
+++ b/examples/examples.pyproject
@@ -54,7 +54,8 @@
"opengl/contextinfo/contextinfo.py",
"opengl/hellogl2/hellogl2.py",
"opengl/textures/textures.py",
- "quickcontrols2/gallery/gallery.py",
+ "quickcontrols/gallery/gallery.py",
+ "quickcontrols/filesystemexplorer/filesystemexplorer.py",
"quick/painteditem/painteditem.py",
"remoteobjects/modelview/modelviewclient.py",
"remoteobjects/modelview/modelviewserver.py",
diff --git a/examples/external/matplotlib/widget3d/widget3d.py b/examples/external/matplotlib/widget3d/widget3d.py
index 08c764bb9..8bfcc4ca2 100644
--- a/examples/external/matplotlib/widget3d/widget3d.py
+++ b/examples/external/matplotlib/widget3d/widget3d.py
@@ -1,47 +1,10 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
import numpy as np
-from matplotlib.backends.backend_qt5agg import FigureCanvas
+from matplotlib.backends.backend_qtagg import FigureCanvas
from matplotlib.figure import Figure
from mpl_toolkits.mplot3d import axes3d
from PySide6.QtCore import Qt, Slot
@@ -69,12 +32,12 @@ class ApplicationWindow(QMainWindow):
# Main menu bar
self.menu = self.menuBar()
self.menu_file = self.menu.addMenu("File")
- exit = QAction("Exit", self, triggered=qApp.quit)
+ exit = QAction("Exit", self, triggered=qApp.quit) # noqa: F821
self.menu_file.addAction(exit)
self.menu_about = self.menu.addMenu("&About")
about = QAction("About Qt", self, shortcut=QKeySequence(QKeySequence.HelpContents),
- triggered=qApp.aboutQt)
+ triggered=qApp.aboutQt) # noqa: F821
self.menu_about.addAction(about)
# Figure (Left)
diff --git a/examples/external/matplotlib/widget_gaussian/widget_gaussian.py b/examples/external/matplotlib/widget_gaussian/widget_gaussian.py
index 8edd902e5..2423e496a 100644
--- a/examples/external/matplotlib/widget_gaussian/widget_gaussian.py
+++ b/examples/external/matplotlib/widget_gaussian/widget_gaussian.py
@@ -1,52 +1,14 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
import numpy as np
from scipy.stats import norm
-from matplotlib import pyplot as plt
from matplotlib.figure import Figure
-from matplotlib.backends.backend_qt5agg import FigureCanvas
-from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT
-from PySide6.QtCore import Qt, Slot
+from matplotlib.backends.backend_qtagg import FigureCanvas
+from matplotlib.backends.backend_qtagg import NavigationToolbar2QT
+from PySide6.QtCore import Slot
from PySide6.QtWidgets import (
QApplication,
QWidget,
diff --git a/examples/external/networkx/doc/networkx.png b/examples/external/networkx/doc/networkx.png
new file mode 100644
index 000000000..d3264f8ee
--- /dev/null
+++ b/examples/external/networkx/doc/networkx.png
Binary files differ
diff --git a/examples/external/networkx/doc/networkx.rst b/examples/external/networkx/doc/networkx.rst
new file mode 100644
index 000000000..58897d3b7
--- /dev/null
+++ b/examples/external/networkx/doc/networkx.rst
@@ -0,0 +1,8 @@
+Networkx viewer Example
+=======================
+
+A Python application that demonstrates how to display networkx graph into a QGraphicsView.
+
+.. image:: networkx.png
+ :width: 400
+ :alt: Networkx viewer Screenshot
diff --git a/examples/external/networkx/main.py b/examples/external/networkx/main.py
new file mode 100644
index 000000000..8cd7e7903
--- /dev/null
+++ b/examples/external/networkx/main.py
@@ -0,0 +1,346 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+
+import math
+import sys
+
+from PySide6.QtCore import (QEasingCurve, QLineF,
+ QParallelAnimationGroup, QPointF,
+ QPropertyAnimation, QRectF, Qt)
+from PySide6.QtGui import QBrush, QColor, QPainter, QPen, QPolygonF
+from PySide6.QtWidgets import (QApplication, QComboBox, QGraphicsItem,
+ QGraphicsObject, QGraphicsScene, QGraphicsView,
+ QStyleOptionGraphicsItem, QVBoxLayout, QWidget)
+
+import networkx as nx
+
+
+class Node(QGraphicsObject):
+
+ """A QGraphicsItem representing node in a graph"""
+
+ def __init__(self, name: str, parent=None):
+ """Node constructor
+
+ Args:
+ name (str): Node label
+ """
+ super().__init__(parent)
+ self._name = name
+ self._edges = []
+ self._color = "#5AD469"
+ self._radius = 30
+ self._rect = QRectF(0, 0, self._radius * 2, self._radius * 2)
+
+ self.setFlag(QGraphicsItem.ItemIsMovable)
+ self.setFlag(QGraphicsItem.ItemSendsGeometryChanges)
+ self.setCacheMode(QGraphicsItem.DeviceCoordinateCache)
+
+ def boundingRect(self) -> QRectF:
+ """Override from QGraphicsItem
+
+ Returns:
+ QRect: Return node bounding rect
+ """
+ return self._rect
+
+ def paint(self, painter: QPainter, option: QStyleOptionGraphicsItem, widget: QWidget = None):
+ """Override from QGraphicsItem
+
+ Draw node
+
+ Args:
+ painter (QPainter)
+ option (QStyleOptionGraphicsItem)
+ """
+ painter.setRenderHints(QPainter.Antialiasing)
+ painter.setPen(
+ QPen(
+ QColor(self._color).darker(),
+ 2,
+ Qt.SolidLine,
+ Qt.RoundCap,
+ Qt.RoundJoin,
+ )
+ )
+ painter.setBrush(QBrush(QColor(self._color)))
+ painter.drawEllipse(self.boundingRect())
+ painter.setPen(QPen(QColor("white")))
+ painter.drawText(self.boundingRect(), Qt.AlignCenter, self._name)
+
+ def add_edge(self, edge):
+ """Add an edge to this node
+
+ Args:
+ edge (Edge)
+ """
+ self._edges.append(edge)
+
+ def itemChange(self, change: QGraphicsItem.GraphicsItemChange, value):
+ """Override from QGraphicsItem
+
+ Args:
+ change (QGraphicsItem.GraphicsItemChange)
+ value (Any)
+
+ Returns:
+ Any
+ """
+ if change == QGraphicsItem.ItemPositionHasChanged:
+ for edge in self._edges:
+ edge.adjust()
+
+ return super().itemChange(change, value)
+
+
+class Edge(QGraphicsItem):
+ def __init__(self, source: Node, dest: Node, parent: QGraphicsItem = None):
+ """Edge constructor
+
+ Args:
+ source (Node): source node
+ dest (Node): destination node
+ """
+ super().__init__(parent)
+ self._source = source
+ self._dest = dest
+
+ self._tickness = 2
+ self._color = "#2BB53C"
+ self._arrow_size = 20
+
+ self._source.add_edge(self)
+ self._dest.add_edge(self)
+
+ self._line = QLineF()
+ self.setZValue(-1)
+ self.adjust()
+
+ def boundingRect(self) -> QRectF:
+ """Override from QGraphicsItem
+
+ Returns:
+ QRect: Return node bounding rect
+ """
+ return (
+ QRectF(self._line.p1(), self._line.p2())
+ .normalized()
+ .adjusted(
+ -self._tickness - self._arrow_size,
+ -self._tickness - self._arrow_size,
+ self._tickness + self._arrow_size,
+ self._tickness + self._arrow_size,
+ )
+ )
+
+ def adjust(self):
+ """
+ Update edge position from source and destination node.
+ This method is called from Node::itemChange
+ """
+ self.prepareGeometryChange()
+ self._line = QLineF(
+ self._source.pos() + self._source.boundingRect().center(),
+ self._dest.pos() + self._dest.boundingRect().center(),
+ )
+
+ def _draw_arrow(self, painter: QPainter, start: QPointF, end: QPointF):
+ """Draw arrow from start point to end point.
+
+ Args:
+ painter (QPainter)
+ start (QPointF): start position
+ end (QPointF): end position
+ """
+ painter.setBrush(QBrush(self._color))
+
+ line = QLineF(end, start)
+
+ angle = math.atan2(-line.dy(), line.dx())
+ arrow_p1 = line.p1() + QPointF(
+ math.sin(angle + math.pi / 3) * self._arrow_size,
+ math.cos(angle + math.pi / 3) * self._arrow_size,
+ )
+ arrow_p2 = line.p1() + QPointF(
+ math.sin(angle + math.pi - math.pi / 3) * self._arrow_size,
+ math.cos(angle + math.pi - math.pi / 3) * self._arrow_size,
+ )
+
+ arrow_head = QPolygonF()
+ arrow_head.clear()
+ arrow_head.append(line.p1())
+ arrow_head.append(arrow_p1)
+ arrow_head.append(arrow_p2)
+ painter.drawLine(line)
+ painter.drawPolygon(arrow_head)
+
+ def _arrow_target(self) -> QPointF:
+ """Calculate the position of the arrow taking into account the size of the destination node
+
+ Returns:
+ QPointF
+ """
+ target = self._line.p1()
+ center = self._line.p2()
+ radius = self._dest._radius
+ vector = target - center
+ length = math.sqrt(vector.x() ** 2 + vector.y() ** 2)
+ if length == 0:
+ return target
+ normal = vector / length
+ target = QPointF(center.x() + (normal.x() * radius), center.y() + (normal.y() * radius))
+
+ return target
+
+ def paint(self, painter: QPainter, option: QStyleOptionGraphicsItem, widget=None):
+ """Override from QGraphicsItem
+
+ Draw Edge. This method is called from Edge.adjust()
+
+ Args:
+ painter (QPainter)
+ option (QStyleOptionGraphicsItem)
+ """
+
+ if self._source and self._dest:
+ painter.setRenderHints(QPainter.Antialiasing)
+
+ painter.setPen(
+ QPen(
+ QColor(self._color),
+ self._tickness,
+ Qt.SolidLine,
+ Qt.RoundCap,
+ Qt.RoundJoin,
+ )
+ )
+ painter.drawLine(self._line)
+ self._draw_arrow(painter, self._line.p1(), self._arrow_target())
+ self._arrow_target()
+
+
+class GraphView(QGraphicsView):
+ def __init__(self, graph: nx.DiGraph, parent=None):
+ """GraphView constructor
+
+ This widget can display a directed graph
+
+ Args:
+ graph (nx.DiGraph): a networkx directed graph
+ """
+ super().__init__()
+ self._graph = graph
+ self._scene = QGraphicsScene()
+ self.setScene(self._scene)
+
+ # Used to add space between nodes
+ self._graph_scale = 200
+
+ # Map node name to Node object {str=>Node}
+ self._nodes_map = {}
+
+ # List of networkx layout function
+ self._nx_layout = {
+ "circular": nx.circular_layout,
+ "planar": nx.planar_layout,
+ "random": nx.random_layout,
+ "shell_layout": nx.shell_layout,
+ "kamada_kawai_layout": nx.kamada_kawai_layout,
+ "spring_layout": nx.spring_layout,
+ "spiral_layout": nx.spiral_layout,
+ }
+
+ self._load_graph()
+ self.set_nx_layout("circular")
+
+ def get_nx_layouts(self) -> list:
+ """Return all layout names
+
+ Returns:
+ list: layout name (str)
+ """
+ return self._nx_layout.keys()
+
+ def set_nx_layout(self, name: str):
+ """Set networkx layout and start animation
+
+ Args:
+ name (str): Layout name
+ """
+ if name in self._nx_layout:
+ self._nx_layout_function = self._nx_layout[name]
+
+ # Compute node position from layout function
+ positions = self._nx_layout_function(self._graph)
+
+ # Change position of all nodes using an animation
+ self.animations = QParallelAnimationGroup()
+ for node, pos in positions.items():
+ x, y = pos
+ x *= self._graph_scale
+ y *= self._graph_scale
+ item = self._nodes_map[node]
+
+ animation = QPropertyAnimation(item, b"pos")
+ animation.setDuration(1000)
+ animation.setEndValue(QPointF(x, y))
+ animation.setEasingCurve(QEasingCurve.OutExpo)
+ self.animations.addAnimation(animation)
+
+ self.animations.start()
+
+ def _load_graph(self):
+ """Load graph into QGraphicsScene using Node class and Edge class"""
+
+ self.scene().clear()
+ self._nodes_map.clear()
+
+ # Add nodes
+ for node in self._graph:
+ item = Node(node)
+ self.scene().addItem(item)
+ self._nodes_map[node] = item
+
+ # Add edges
+ for a, b in self._graph.edges:
+ source = self._nodes_map[a]
+ dest = self._nodes_map[b]
+ self.scene().addItem(Edge(source, dest))
+
+
+class MainWindow(QWidget):
+ def __init__(self, parent=None):
+ super().__init__()
+
+ self.graph = nx.DiGraph()
+ self.graph.add_edges_from(
+ [
+ ("1", "2"),
+ ("2", "3"),
+ ("3", "4"),
+ ("1", "5"),
+ ("1", "6"),
+ ("1", "7"),
+ ]
+ )
+
+ self.view = GraphView(self.graph)
+ self.choice_combo = QComboBox()
+ self.choice_combo.addItems(self.view.get_nx_layouts())
+ v_layout = QVBoxLayout(self)
+ v_layout.addWidget(self.choice_combo)
+ v_layout.addWidget(self.view)
+ self.choice_combo.currentTextChanged.connect(self.view.set_nx_layout)
+
+
+if __name__ == "__main__":
+
+ app = QApplication(sys.argv)
+
+ # Create a networkx graph
+
+ widget = MainWindow()
+ widget.show()
+ widget.resize(800, 600)
+ sys.exit(app.exec())
diff --git a/examples/external/networkx/networkx.pyproject b/examples/external/networkx/networkx.pyproject
new file mode 100644
index 000000000..cc7a74a34
--- /dev/null
+++ b/examples/external/networkx/networkx.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["main.py"]
+}
diff --git a/examples/external/networkx/requirements.txt b/examples/external/networkx/requirements.txt
new file mode 100644
index 000000000..370ba57d9
--- /dev/null
+++ b/examples/external/networkx/requirements.txt
@@ -0,0 +1,3 @@
+networkx
+numpy
+scipy
diff --git a/examples/external/opencv/webcam_pattern_detection.py b/examples/external/opencv/webcam_pattern_detection.py
index a764e4c27..0c55a1333 100644
--- a/examples/external/opencv/webcam_pattern_detection.py
+++ b/examples/external/opencv/webcam_pattern_detection.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import os
import sys
@@ -111,12 +74,12 @@ class Window(QMainWindow):
# Main menu bar
self.menu = self.menuBar()
self.menu_file = self.menu.addMenu("File")
- exit = QAction("Exit", self, triggered=qApp.quit)
+ exit = QAction("Exit", self, triggered=qApp.quit) # noqa: F821
self.menu_file.addAction(exit)
self.menu_about = self.menu.addMenu("&About")
about = QAction("About Qt", self, shortcut=QKeySequence(QKeySequence.HelpContents),
- triggered=qApp.aboutQt)
+ triggered=qApp.aboutQt) # noqa: F821
self.menu_about.addAction(about)
# Create a label for the display camera
diff --git a/examples/external/pandas/dataframe_model.py b/examples/external/pandas/dataframe_model.py
index f3f335764..b3d9e81fe 100644
--- a/examples/external/pandas/dataframe_model.py
+++ b/examples/external/pandas/dataframe_model.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import pandas as pd
diff --git a/examples/external/scikit/staining_colors_separation.py b/examples/external/scikit/staining_colors_separation.py
index 250fb1716..94fdc3bdc 100644
--- a/examples/external/scikit/staining_colors_separation.py
+++ b/examples/external/scikit/staining_colors_separation.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
@@ -69,12 +32,12 @@ class ApplicationWindow(QMainWindow):
# Main menu bar
self.menu = self.menuBar()
self.menu_file = self.menu.addMenu("File")
- exit = QAction("Exit", self, triggered=qApp.quit)
+ exit = QAction("Exit", self, triggered=qApp.quit) # noqa: F821
self.menu_file.addAction(exit)
self.menu_about = self.menu.addMenu("&About")
about = QAction("About Qt", self, shortcut=QKeySequence(QKeySequence.HelpContents),
- triggered=qApp.aboutQt)
+ triggered=qApp.aboutQt) # noqa: F821
self.menu_about.addAction(about)
# Create an artificial color close to the original one
diff --git a/examples/graphs/2d/hellographs/HelloGraphs/Main.qml b/examples/graphs/2d/hellographs/HelloGraphs/Main.qml
new file mode 100644
index 000000000..b1844aec4
--- /dev/null
+++ b/examples/graphs/2d/hellographs/HelloGraphs/Main.qml
@@ -0,0 +1,153 @@
+// Copyright (C) 2024 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Layouts
+import QtGraphs
+
+Item {
+ id: mainView
+ width: 1280
+ height: 720
+
+ RowLayout {
+ id: graphsRow
+
+ readonly property real margin: mainView.width * 0.02
+
+ anchors.fill: parent
+ anchors.margins: margin
+ spacing: margin
+
+ Rectangle {
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+ color: "#262626"
+ border.color: "#4d4d4d"
+ border.width: 1
+ radius: graphsRow.margin
+ //! [bargraph]
+ GraphsView {
+ anchors.fill: parent
+ anchors.margins: 16
+ theme: GraphTheme {
+ colorTheme: GraphTheme.ColorThemeDark
+ }
+ //! [bargraph]
+ //! [barseries]
+ BarSeries {
+ axisX: BarCategoryAxis {
+ categories: [2024, 2025, 2026]
+ gridVisible: false
+ minorGridVisible: false
+ }
+ axisY: ValueAxis {
+ min: 20
+ max: 100
+ tickInterval: 10
+ minorTickCount: 9
+ }
+ //! [barseries]
+ //! [barset]
+ BarSet {
+ values: [82, 50, 75]
+ borderWidth: 2
+ color: "#373F26"
+ borderColor: "#DBEB00"
+ }
+ //! [barset]
+ }
+ }
+ }
+
+ Rectangle {
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+ color: "#262626"
+ border.color: "#4d4d4d"
+ border.width: 1
+ radius: graphsRow.margin
+
+ //! [linegraph]
+ GraphsView {
+ anchors.fill: parent
+ anchors.margins: 16
+ theme: GraphTheme {
+ readonly property color c1: "#DBEB00"
+ readonly property color c2: "#373F26"
+ readonly property color c3: Qt.lighter(c2, 1.5)
+ colorTheme: GraphTheme.ColorThemeDark
+ gridMajorBarsColor: c3
+ gridMinorBarsColor: c2
+ axisXMajorColor: c3
+ axisYMajorColor: c3
+ axisXMinorColor: c2
+ axisYMinorColor: c2
+ axisXLabelsColor: c1
+ axisYLabelsColor: c1
+ }
+ //! [linegraph]
+
+ //! [linemarker]
+ component Marker : Rectangle {
+ width: 16
+ height: 16
+ color: "#ffffff"
+ radius: width * 0.5
+ border.width: 4
+ border.color: "#000000"
+ }
+ //! [linemarker]
+
+ //! [lineseriestheme]
+ SeriesTheme {
+ id: seriesTheme
+ colors: ["#2CDE85", "#DBEB00"]
+ }
+ //! [lineseriestheme]
+
+ //! [lineseries1]
+ LineSeries {
+ id: lineSeries1
+ theme: seriesTheme
+ axisX: ValueAxis {
+ max: 5
+ tickInterval: 1
+ minorTickCount: 9
+ labelDecimals: 1
+ }
+ axisY: ValueAxis {
+ max: 10
+ tickInterval: 1
+ minorTickCount: 4
+ labelDecimals: 1
+ }
+ width: 4
+ pointMarker: Marker { }
+ XYPoint { x: 0; y: 0 }
+ XYPoint { x: 1; y: 2.1 }
+ XYPoint { x: 2; y: 3.3 }
+ XYPoint { x: 3; y: 2.1 }
+ XYPoint { x: 4; y: 4.9 }
+ XYPoint { x: 5; y: 3.0 }
+ }
+ //! [lineseries1]
+
+ //! [lineseries2]
+ LineSeries {
+ id: lineSeries2
+ theme: seriesTheme
+ width: 4
+ pointMarker: Marker { }
+ XYPoint { x: 0; y: 5.0 }
+ XYPoint { x: 1; y: 3.3 }
+ XYPoint { x: 2; y: 7.1 }
+ XYPoint { x: 3; y: 7.5 }
+ XYPoint { x: 4; y: 6.1 }
+ XYPoint { x: 5; y: 3.2 }
+ }
+ //! [lineseries2]
+ }
+ }
+ }
+}
diff --git a/examples/graphs/2d/hellographs/HelloGraphs/qmldir b/examples/graphs/2d/hellographs/HelloGraphs/qmldir
new file mode 100644
index 000000000..007f5fb11
--- /dev/null
+++ b/examples/graphs/2d/hellographs/HelloGraphs/qmldir
@@ -0,0 +1,2 @@
+module HelloGraphs
+Main 1.0 Main.qml
diff --git a/examples/graphs/2d/hellographs/doc/hellographs.rst b/examples/graphs/2d/hellographs/doc/hellographs.rst
new file mode 100644
index 000000000..d0820c3b7
--- /dev/null
+++ b/examples/graphs/2d/hellographs/doc/hellographs.rst
@@ -0,0 +1,51 @@
+HelloGraphs Example
+===================
+
+The example shows how to make a simple 2D bar graph and line graph.
+
+BarGraph
+--------
+
+The first graph in the example is a bar graph. Creating it starts with a GraphsView
+component and setting the theme to one which is suitable on
+dark backgrounds. This theme adjusts the graph background grid and axis lines and
+labels.
+
+To make this a bar graph, add a ``BarSeries.`` The X axis of the series is a
+``BarCategoryAxis`` with 3 categories. We hide both the vertical grid and the
+axis lines. The Y axis of the series is ``ValueAxis`` with visible range
+between 20 and 100. Major ticks with labels will be shown on every 10 values
+using the ``tickInterval`` property. Minor ticks will be shown on every 1
+values setting the ``minorTickCount`` propertyt to 9, which means that between
+every major ticks there will be 9 minor ones.
+
+Then data is added into ``BarSeries`` using ``BarSet.`` There are 3 bars, and we define
+custom bars color and border properties. These properties will override the possible
+theme set for the ``AbstractSeries.``
+
+LineGraph
+---------
+
+The second graph of the example is a line graph. It also starts by defining a
+``GraphsView`` element. A custom ``GraphTheme`` is created to get a custom appearance.
+``GraphTheme`` offers quite a wide range of customization possibilities for the background
+grid and axis, which get applied after the ``colorTheme``.
+
+A custom ``Marker`` component is used to visualize the data points.
+
+The previous bar graph didn't define a separate ``SeriesTheme``, so it uses the
+default theme. This line graph uses a custom theme with the desired line colors.
+
+To make this a line graph, add a ``LineSeries.`` The first series defines
+``axisX`` and ``axisY`` for this graph. It also sets the ``pointMarker`` to use
+the custom ``Marker`` component that was created earlier. Data points are added
+using ``XYPoint`` elements.
+
+The second line series is similar to the first. The ``axisX`` and ``axisY``
+don't need to be defined as the graph already contains them. As this is the
+second ``LineSeries`` inside the ``GraphsView``, second color from the
+``seriesTheme`` gets automatically picked.
+
+.. image:: hellographs.webp
+ :width: 1293
+ :alt: HelloGraphs Screenshot
diff --git a/examples/graphs/2d/hellographs/doc/hellographs.webp b/examples/graphs/2d/hellographs/doc/hellographs.webp
new file mode 100644
index 000000000..3e7666411
--- /dev/null
+++ b/examples/graphs/2d/hellographs/doc/hellographs.webp
Binary files differ
diff --git a/examples/graphs/2d/hellographs/hellographs.pyproject b/examples/graphs/2d/hellographs/hellographs.pyproject
new file mode 100644
index 000000000..e8e8cb228
--- /dev/null
+++ b/examples/graphs/2d/hellographs/hellographs.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["main.py", "HelloGraphs/Main.qml", "HelloGraphs/qmldir"]
+}
diff --git a/examples/graphs/2d/hellographs/main.py b/examples/graphs/2d/hellographs/main.py
new file mode 100644
index 000000000..acc349beb
--- /dev/null
+++ b/examples/graphs/2d/hellographs/main.py
@@ -0,0 +1,22 @@
+# Copyright (C) 2024 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the Qt Hello Graphs example from Qt v6.x"""
+
+from pathlib import Path
+import sys
+from PySide6.QtGui import QGuiApplication
+from PySide6.QtQuick import QQuickView
+
+
+if __name__ == '__main__':
+ app = QGuiApplication(sys.argv)
+
+ viewer = QQuickView()
+ viewer.engine().addImportPath(Path(__file__).parent)
+ viewer.setColor("black")
+ viewer.loadFromModule("HelloGraphs", "Main")
+ viewer.show()
+ r = app.exec()
+ del viewer
+ sys.exit(r)
diff --git a/examples/graphs/3d/minimalsurfacegraph/doc/minimalsurfacegraph.rst b/examples/graphs/3d/minimalsurfacegraph/doc/minimalsurfacegraph.rst
new file mode 100644
index 000000000..bfc7a044d
--- /dev/null
+++ b/examples/graphs/3d/minimalsurfacegraph/doc/minimalsurfacegraph.rst
@@ -0,0 +1,4 @@
+Minimal Surface Example
+=======================
+
+The example shows the minimal code to create a surface.
diff --git a/examples/graphs/3d/minimalsurfacegraph/main.py b/examples/graphs/3d/minimalsurfacegraph/main.py
new file mode 100644
index 000000000..5fb4b4472
--- /dev/null
+++ b/examples/graphs/3d/minimalsurfacegraph/main.py
@@ -0,0 +1,54 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from PySide6.QtCore import QSize
+from PySide6.QtGui import QVector3D
+from PySide6.QtGraphs import (Q3DSurface, QSurfaceDataItem,
+ QSurface3DSeries)
+from PySide6.QtWidgets import QApplication
+from PySide6.QtQuickWidgets import QQuickWidget
+
+
+DESCRIPTION = """Minimal Qt Graphs Surface Example
+
+Use the mouse wheel to zoom. Rotate using the right mouse button.
+"""
+
+
+if __name__ == '__main__':
+ app = QApplication(sys.argv)
+
+ print(DESCRIPTION)
+
+ surface = Q3DSurface()
+ axis = surface.axisX()
+ axis.setTitle("X")
+ axis.setTitleVisible(True)
+ axis = surface.axisY()
+ axis.setTitle("Y")
+ axis.setTitleVisible(True)
+ axis = surface.axisZ()
+ axis.setTitle("Z")
+ axis.setTitleVisible(True)
+
+ data = []
+ data_row1 = [QSurfaceDataItem(QVector3D(0, 0.1, 0.5)),
+ QSurfaceDataItem(QVector3D(1, 0.5, 0.5))]
+ data.append(data_row1)
+ data_row2 = [QSurfaceDataItem(QVector3D(0, 1.8, 1)),
+ QSurfaceDataItem(QVector3D(1, 1.2, 1))]
+ data.append(data_row2)
+
+ series = QSurface3DSeries()
+ series.dataProxy().resetArray(data)
+ surface.addSeries(series)
+
+ available_height = app.primaryScreen().availableGeometry().height()
+ width = available_height * 4 / 5
+ surface.resize(QSize(width, width))
+ surface.setResizeMode(QQuickWidget.SizeRootObjectToView)
+ surface.show()
+
+ sys.exit(app.exec())
diff --git a/examples/graphs/3d/widgetgallery/axesinputhandler.py b/examples/graphs/3d/widgetgallery/axesinputhandler.py
new file mode 100644
index 000000000..4c4202974
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/axesinputhandler.py
@@ -0,0 +1,100 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from enum import Enum
+from math import sin, cos, degrees
+
+from PySide6.QtCore import Qt
+from PySide6.QtGraphs import QAbstract3DGraph, Q3DInputHandler
+
+
+class InputState(Enum):
+ StateNormal = 0
+ StateDraggingX = 1
+ StateDraggingZ = 2
+ StateDraggingY = 3
+
+
+class AxesInputHandler(Q3DInputHandler):
+
+ def __init__(self, graph, parent=None):
+ super().__init__(parent)
+ self._mousePressed = False
+ self._state = InputState.StateNormal
+ self._axisX = None
+ self._axisZ = None
+ self._axisY = None
+ self._speedModifier = 15.0
+
+ # Connect to the item selection signal from graph
+ graph.selectedElementChanged.connect(self.handleElementSelected)
+
+ def setAxes(self, axisX, axisZ, axisY):
+ self._axisX = axisX
+ self._axisZ = axisZ
+ self._axisY = axisY
+
+ def setDragSpeedModifier(self, modifier):
+ self._speedModifier = modifier
+
+ def mousePressEvent(self, event, mousePos):
+ super().mousePressEvent(event, mousePos)
+ if Qt.LeftButton == event.button():
+ self._mousePressed = True
+
+ def mouseMoveEvent(self, event, mousePos):
+ # Check if we're trying to drag axis label
+ if self._mousePressed and self._state != InputState.StateNormal:
+ self.setPreviousInputPos(self.inputPosition())
+ self.setInputPosition(mousePos)
+ self.handleAxisDragging()
+ else:
+ super().mouseMoveEvent(event, mousePos)
+
+ def mouseReleaseEvent(self, event, mousePos):
+ super().mouseReleaseEvent(event, mousePos)
+ self._mousePressed = False
+ self._state = InputState.StateNormal
+
+ def handleElementSelected(self, type):
+ if type == QAbstract3DGraph.ElementAxisXLabel:
+ self._state = InputState.StateDraggingX
+ elif type == QAbstract3DGraph.ElementAxisYLabel:
+ self._state = InputState.StateDraggingY
+ elif type == QAbstract3DGraph.ElementAxisZLabel:
+ self._state = InputState.StateDraggingZ
+ else:
+ self._state = InputState.StateNormal
+
+ def handleAxisDragging(self):
+ distance = 0.0
+ # Get scene orientation from active camera
+ xRotation = self.cameraXRotation()
+ yRotation = self.cameraYRotation()
+
+ # Calculate directional drag multipliers based on rotation
+ xMulX = cos(degrees(xRotation))
+ xMulY = sin(degrees(xRotation))
+ zMulX = sin(degrees(xRotation))
+ zMulY = cos(degrees(xRotation))
+
+ # Get the drag amount
+ move = self.inputPosition() - self.previousInputPos()
+
+ # Flip the effect of y movement if we're viewing from below
+ yMove = -move.y() if yRotation < 0 else move.y()
+
+ # Adjust axes
+ if self._state == InputState.StateDraggingX:
+ distance = (move.x() * xMulX - yMove * xMulY) / self._speedModifier
+ self._axisX.setRange(self._axisX.min() - distance,
+ self._axisX.max() - distance)
+ elif self._state == InputState.StateDraggingZ:
+ distance = (move.x() * zMulX + yMove * zMulY) / self._speedModifier
+ self._axisZ.setRange(self._axisZ.min() + distance,
+ self._axisZ.max() + distance)
+ elif self._state == InputState.StateDraggingY:
+ # No need to use adjusted y move here
+ distance = move.y() / self._speedModifier
+ self._axisY.setRange(self._axisY.min() + distance,
+ self._axisY.max() + distance)
diff --git a/examples/graphs/3d/widgetgallery/bargraph.py b/examples/graphs/3d/widgetgallery/bargraph.py
new file mode 100644
index 000000000..822acb4a9
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/bargraph.py
@@ -0,0 +1,272 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from graphmodifier import GraphModifier
+
+from PySide6.QtCore import QObject, Qt
+from PySide6.QtGui import QFont
+from PySide6.QtWidgets import (QButtonGroup, QCheckBox, QComboBox, QFontComboBox,
+ QLabel, QPushButton, QHBoxLayout, QSizePolicy,
+ QRadioButton, QSlider, QVBoxLayout, QWidget)
+from PySide6.QtQuickWidgets import QQuickWidget
+from PySide6.QtGraphs import (QAbstract3DGraph, QAbstract3DSeries, Q3DBars)
+
+
+class BarGraph(QObject):
+
+ def __init__(self, minimum_graph_size, maximum_graph_size):
+ super().__init__()
+ self._barsGraph = Q3DBars()
+ self._barsWidget = QWidget()
+ hLayout = QHBoxLayout(self._barsWidget)
+ self._barsGraph.setMinimumSize(minimum_graph_size)
+ self._barsGraph.setMaximumSize(maximum_graph_size)
+ self._barsGraph.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
+ self._barsGraph.setFocusPolicy(Qt.StrongFocus)
+ self._barsGraph.setResizeMode(QQuickWidget.SizeRootObjectToView)
+ hLayout.addWidget(self._barsGraph, 1)
+
+ vLayout = QVBoxLayout()
+ hLayout.addLayout(vLayout)
+
+ themeList = QComboBox(self._barsWidget)
+ themeList.addItem("Qt")
+ themeList.addItem("Primary Colors")
+ themeList.addItem("Digia")
+ themeList.addItem("Stone Moss")
+ themeList.addItem("Army Blue")
+ themeList.addItem("Retro")
+ themeList.addItem("Ebony")
+ themeList.addItem("Isabelle")
+ themeList.setCurrentIndex(0)
+
+ labelButton = QPushButton(self._barsWidget)
+ labelButton.setText("Change label style")
+
+ smoothCheckBox = QCheckBox(self._barsWidget)
+ smoothCheckBox.setText("Smooth bars")
+ smoothCheckBox.setChecked(False)
+
+ barStyleList = QComboBox(self._barsWidget)
+ barStyleList.addItem("Bar", QAbstract3DSeries.Mesh.Bar)
+ barStyleList.addItem("Pyramid", QAbstract3DSeries.Mesh.Pyramid)
+ barStyleList.addItem("Cone", QAbstract3DSeries.Mesh.Cone)
+ barStyleList.addItem("Cylinder", QAbstract3DSeries.Mesh.Cylinder)
+ barStyleList.addItem("Bevel bar", QAbstract3DSeries.Mesh.BevelBar)
+ barStyleList.addItem("Sphere", QAbstract3DSeries.Mesh.Sphere)
+ barStyleList.setCurrentIndex(4)
+
+ cameraButton = QPushButton(self._barsWidget)
+ cameraButton.setText("Change camera preset")
+
+ zoomToSelectedButton = QPushButton(self._barsWidget)
+ zoomToSelectedButton.setText("Zoom to selected bar")
+
+ selectionModeList = QComboBox(self._barsWidget)
+ selectionModeList.addItem("None", QAbstract3DGraph.SelectionNone)
+ selectionModeList.addItem("Bar", QAbstract3DGraph.SelectionItem)
+ selectionModeList.addItem("Row", QAbstract3DGraph.SelectionRow)
+ sel = QAbstract3DGraph.SelectionItemAndRow
+ selectionModeList.addItem("Bar and Row", sel)
+ selectionModeList.addItem("Column", QAbstract3DGraph.SelectionColumn)
+ sel = QAbstract3DGraph.SelectionItemAndColumn
+ selectionModeList.addItem("Bar and Column", sel)
+ sel = QAbstract3DGraph.SelectionRowAndColumn
+ selectionModeList.addItem("Row and Column", sel)
+ sel = QAbstract3DGraph.SelectionItemRowAndColumn
+ selectionModeList.addItem("Bar, Row and Column", sel)
+ sel = QAbstract3DGraph.SelectionSlice | QAbstract3DGraph.SelectionRow
+ selectionModeList.addItem("Slice into Row", sel)
+ sel = QAbstract3DGraph.SelectionSlice | QAbstract3DGraph.SelectionItemAndRow
+ selectionModeList.addItem("Slice into Row and Item", sel)
+ sel = QAbstract3DGraph.SelectionSlice | QAbstract3DGraph.SelectionColumn
+ selectionModeList.addItem("Slice into Column", sel)
+ sel = (QAbstract3DGraph.SelectionSlice
+ | QAbstract3DGraph.SelectionItemAndColumn)
+ selectionModeList.addItem("Slice into Column and Item", sel)
+ sel = (QAbstract3DGraph.SelectionItemRowAndColumn
+ | QAbstract3DGraph.SelectionMultiSeries)
+ selectionModeList.addItem("Multi: Bar, Row, Col", sel)
+ sel = (QAbstract3DGraph.SelectionSlice
+ | QAbstract3DGraph.SelectionItemAndRow
+ | QAbstract3DGraph.SelectionMultiSeries)
+ selectionModeList.addItem("Multi, Slice: Row, Item", sel)
+ sel = (QAbstract3DGraph.SelectionSlice
+ | QAbstract3DGraph.SelectionItemAndColumn
+ | QAbstract3DGraph.SelectionMultiSeries)
+ selectionModeList.addItem("Multi, Slice: Col, Item", sel)
+ selectionModeList.setCurrentIndex(1)
+
+ backgroundCheckBox = QCheckBox(self._barsWidget)
+ backgroundCheckBox.setText("Show background")
+ backgroundCheckBox.setChecked(False)
+
+ gridCheckBox = QCheckBox(self._barsWidget)
+ gridCheckBox.setText("Show grid")
+ gridCheckBox.setChecked(True)
+
+ seriesCheckBox = QCheckBox(self._barsWidget)
+ seriesCheckBox.setText("Show second series")
+ seriesCheckBox.setChecked(False)
+
+ reverseValueAxisCheckBox = QCheckBox(self._barsWidget)
+ reverseValueAxisCheckBox.setText("Reverse value axis")
+ reverseValueAxisCheckBox.setChecked(False)
+
+ reflectionCheckBox = QCheckBox(self._barsWidget)
+ reflectionCheckBox.setText("Show reflections")
+ reflectionCheckBox.setChecked(False)
+
+ rotationSliderX = QSlider(Qt.Horizontal, self._barsWidget)
+ rotationSliderX.setTickInterval(30)
+ rotationSliderX.setTickPosition(QSlider.TicksBelow)
+ rotationSliderX.setMinimum(-180)
+ rotationSliderX.setValue(0)
+ rotationSliderX.setMaximum(180)
+ rotationSliderY = QSlider(Qt.Horizontal, self._barsWidget)
+ rotationSliderY.setTickInterval(15)
+ rotationSliderY.setTickPosition(QSlider.TicksAbove)
+ rotationSliderY.setMinimum(-90)
+ rotationSliderY.setValue(0)
+ rotationSliderY.setMaximum(90)
+
+ fontSizeSlider = QSlider(Qt.Horizontal, self._barsWidget)
+ fontSizeSlider.setTickInterval(10)
+ fontSizeSlider.setTickPosition(QSlider.TicksBelow)
+ fontSizeSlider.setMinimum(1)
+ fontSizeSlider.setValue(30)
+ fontSizeSlider.setMaximum(100)
+
+ fontList = QFontComboBox(self._barsWidget)
+ fontList.setCurrentFont(QFont("Times New Roman"))
+
+ shadowQuality = QComboBox(self._barsWidget)
+ shadowQuality.addItem("None")
+ shadowQuality.addItem("Low")
+ shadowQuality.addItem("Medium")
+ shadowQuality.addItem("High")
+ shadowQuality.addItem("Low Soft")
+ shadowQuality.addItem("Medium Soft")
+ shadowQuality.addItem("High Soft")
+ shadowQuality.setCurrentIndex(5)
+
+ rangeList = QComboBox(self._barsWidget)
+ rangeList.addItem("2015")
+ rangeList.addItem("2016")
+ rangeList.addItem("2017")
+ rangeList.addItem("2018")
+ rangeList.addItem("2019")
+ rangeList.addItem("2020")
+ rangeList.addItem("2021")
+ rangeList.addItem("2022")
+ rangeList.addItem("All")
+ rangeList.setCurrentIndex(8)
+
+ axisTitlesVisibleCB = QCheckBox(self._barsWidget)
+ axisTitlesVisibleCB.setText("Axis titles visible")
+ axisTitlesVisibleCB.setChecked(True)
+
+ axisTitlesFixedCB = QCheckBox(self._barsWidget)
+ axisTitlesFixedCB.setText("Axis titles fixed")
+ axisTitlesFixedCB.setChecked(True)
+
+ axisLabelRotationSlider = QSlider(Qt.Horizontal, self._barsWidget)
+ axisLabelRotationSlider.setTickInterval(10)
+ axisLabelRotationSlider.setTickPosition(QSlider.TicksBelow)
+ axisLabelRotationSlider.setMinimum(0)
+ axisLabelRotationSlider.setValue(30)
+ axisLabelRotationSlider.setMaximum(90)
+
+ modeGroup = QButtonGroup(self._barsWidget)
+ modeWeather = QRadioButton("Temperature Data", self._barsWidget)
+ modeWeather.setChecked(True)
+ modeCustomProxy = QRadioButton("Custom Proxy Data", self._barsWidget)
+ modeGroup.addButton(modeWeather)
+ modeGroup.addButton(modeCustomProxy)
+
+ vLayout.addWidget(QLabel("Rotate horizontally"))
+ vLayout.addWidget(rotationSliderX, 0, Qt.AlignTop)
+ vLayout.addWidget(QLabel("Rotate vertically"))
+ vLayout.addWidget(rotationSliderY, 0, Qt.AlignTop)
+ vLayout.addWidget(labelButton, 0, Qt.AlignTop)
+ vLayout.addWidget(cameraButton, 0, Qt.AlignTop)
+ vLayout.addWidget(zoomToSelectedButton, 0, Qt.AlignTop)
+ vLayout.addWidget(backgroundCheckBox)
+ vLayout.addWidget(gridCheckBox)
+ vLayout.addWidget(smoothCheckBox)
+ vLayout.addWidget(reflectionCheckBox)
+ vLayout.addWidget(seriesCheckBox)
+ vLayout.addWidget(reverseValueAxisCheckBox)
+ vLayout.addWidget(axisTitlesVisibleCB)
+ vLayout.addWidget(axisTitlesFixedCB)
+ vLayout.addWidget(QLabel("Show year"))
+ vLayout.addWidget(rangeList)
+ vLayout.addWidget(QLabel("Change bar style"))
+ vLayout.addWidget(barStyleList)
+ vLayout.addWidget(QLabel("Change selection mode"))
+ vLayout.addWidget(selectionModeList)
+ vLayout.addWidget(QLabel("Change theme"))
+ vLayout.addWidget(themeList)
+ vLayout.addWidget(QLabel("Adjust shadow quality"))
+ vLayout.addWidget(shadowQuality)
+ vLayout.addWidget(QLabel("Change font"))
+ vLayout.addWidget(fontList)
+ vLayout.addWidget(QLabel("Adjust font size"))
+ vLayout.addWidget(fontSizeSlider)
+ vLayout.addWidget(QLabel("Axis label rotation"))
+ vLayout.addWidget(axisLabelRotationSlider, 0, Qt.AlignTop)
+ vLayout.addWidget(modeWeather, 0, Qt.AlignTop)
+ vLayout.addWidget(modeCustomProxy, 1, Qt.AlignTop)
+
+ self._modifier = GraphModifier(self._barsGraph, self)
+
+ rotationSliderX.valueChanged.connect(self._modifier.rotateX)
+ rotationSliderY.valueChanged.connect(self._modifier.rotateY)
+
+ labelButton.clicked.connect(self._modifier.changeLabelBackground)
+ cameraButton.clicked.connect(self._modifier.changePresetCamera)
+ zoomToSelectedButton.clicked.connect(self._modifier.zoomToSelectedBar)
+
+ backgroundCheckBox.stateChanged.connect(self._modifier.setBackgroundEnabled)
+ gridCheckBox.stateChanged.connect(self._modifier.setGridEnabled)
+ smoothCheckBox.stateChanged.connect(self._modifier.setSmoothBars)
+ seriesCheckBox.stateChanged.connect(self._modifier.setSeriesVisibility)
+ reverseValueAxisCheckBox.stateChanged.connect(self._modifier.setReverseValueAxis)
+ reflectionCheckBox.stateChanged.connect(self._modifier.setReflection)
+
+ self._modifier.backgroundEnabledChanged.connect(backgroundCheckBox.setChecked)
+ self._modifier.gridEnabledChanged.connect(gridCheckBox.setChecked)
+
+ rangeList.currentIndexChanged.connect(self._modifier.changeRange)
+
+ barStyleList.currentIndexChanged.connect(self._modifier.changeStyle)
+
+ selectionModeList.currentIndexChanged.connect(self._modifier.changeSelectionMode)
+
+ themeList.currentIndexChanged.connect(self._modifier.changeTheme)
+
+ shadowQuality.currentIndexChanged.connect(self._modifier.changeShadowQuality)
+
+ self._modifier.shadowQualityChanged.connect(shadowQuality.setCurrentIndex)
+ self._barsGraph.shadowQualityChanged.connect(self._modifier.shadowQualityUpdatedByVisual)
+
+ fontSizeSlider.valueChanged.connect(self._modifier.changeFontSize)
+ fontList.currentFontChanged.connect(self._modifier.changeFont)
+
+ self._modifier.fontSizeChanged.connect(fontSizeSlider.setValue)
+ self._modifier.fontChanged.connect(fontList.setCurrentFont)
+
+ axisTitlesVisibleCB.stateChanged.connect(self._modifier.setAxisTitleVisibility)
+ axisTitlesFixedCB.stateChanged.connect(self._modifier.setAxisTitleFixed)
+ axisLabelRotationSlider.valueChanged.connect(self._modifier.changeLabelRotation)
+
+ modeWeather.toggled.connect(self._modifier.setDataModeToWeather)
+ modeCustomProxy.toggled.connect(self._modifier.setDataModeToCustom)
+ modeWeather.toggled.connect(seriesCheckBox.setEnabled)
+ modeWeather.toggled.connect(rangeList.setEnabled)
+ modeWeather.toggled.connect(axisTitlesVisibleCB.setEnabled)
+ modeWeather.toggled.connect(axisTitlesFixedCB.setEnabled)
+ modeWeather.toggled.connect(axisLabelRotationSlider.setEnabled)
+
+ def barsWidget(self):
+ return self._barsWidget
diff --git a/examples/graphs/3d/widgetgallery/custominputhandler.py b/examples/graphs/3d/widgetgallery/custominputhandler.py
new file mode 100644
index 000000000..15fe00e70
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/custominputhandler.py
@@ -0,0 +1,177 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from enum import Enum
+from math import sin, cos, degrees
+
+from PySide6.QtCore import Qt
+from PySide6.QtGraphs import (QAbstract3DGraph, Q3DInputHandler)
+
+
+class InputState(Enum):
+ StateNormal = 0
+ StateDraggingX = 1
+ StateDraggingZ = 2
+ StateDraggingY = 3
+
+
+class CustomInputHandler(Q3DInputHandler):
+
+ def __init__(self, graph, parent=None):
+ super().__init__(parent)
+ self._highlight = None
+ self._mousePressed = False
+ self._state = InputState.StateNormal
+ self._axisX = None
+ self._axisY = None
+ self._axisZ = None
+ self._speedModifier = 20.0
+ self._aspectRatio = 0.0
+ self._axisXMinValue = 0.0
+ self._axisXMaxValue = 0.0
+ self._axisXMinRange = 0.0
+ self._axisZMinValue = 0.0
+ self._axisZMaxValue = 0.0
+ self._axisZMinRange = 0.0
+ self._areaMinValue = 0.0
+ self._areaMaxValue = 0.0
+
+ # Connect to the item selection signal from graph
+ graph.selectedElementChanged.connect(self.handleElementSelected)
+
+ def setAspectRatio(self, ratio):
+ self._aspectRatio = ratio
+
+ def setHighlightSeries(self, series):
+ self._highlight = series
+
+ def setDragSpeedModifier(self, modifier):
+ self._speedModifier = modifier
+
+ def setLimits(self, min, max, minRange):
+ self._areaMinValue = min
+ self._areaMaxValue = max
+ self._axisXMinValue = self._areaMinValue
+ self._axisXMaxValue = self._areaMaxValue
+ self._axisZMinValue = self._areaMinValue
+ self._axisZMaxValue = self._areaMaxValue
+ self._axisXMinRange = minRange
+ self._axisZMinRange = minRange
+
+ def setAxes(self, axisX, axisY, axisZ):
+ self._axisX = axisX
+ self._axisY = axisY
+ self._axisZ = axisZ
+
+ def mousePressEvent(self, event, mousePos):
+ if Qt.LeftButton == event.button():
+ self._highlight.setVisible(False)
+ self._mousePressed = True
+ super().mousePressEvent(event, mousePos)
+
+ def wheelEvent(self, event):
+ delta = float(event.angleDelta().y())
+
+ self._axisXMinValue += delta
+ self._axisXMaxValue -= delta
+ self._axisZMinValue += delta
+ self._axisZMaxValue -= delta
+ self.checkConstraints()
+
+ y = (self._axisXMaxValue - self._axisXMinValue) * self._aspectRatio
+
+ self._axisX.setRange(self._axisXMinValue, self._axisXMaxValue)
+ self._axisY.setRange(100.0, y)
+ self._axisZ.setRange(self._axisZMinValue, self._axisZMaxValue)
+
+ def mouseMoveEvent(self, event, mousePos):
+ # Check if we're trying to drag axis label
+ if self._mousePressed and self._state != InputState.StateNormal:
+ self.setPreviousInputPos(self.inputPosition())
+ self.setInputPosition(mousePos)
+ self.handleAxisDragging()
+ else:
+ super().mouseMoveEvent(event, mousePos)
+
+ def mouseReleaseEvent(self, event, mousePos):
+ super().mouseReleaseEvent(event, mousePos)
+ self._mousePressed = False
+ self._state = InputState.StateNormal
+
+ def handleElementSelected(self, type):
+ if type == QAbstract3DGraph.ElementAxisXLabel:
+ self._state = InputState.StateDraggingX
+ elif type == QAbstract3DGraph.ElementAxisZLabel:
+ self._state = InputState.StateDraggingZ
+ else:
+ self._state = InputState.StateNormal
+
+ def handleAxisDragging(self):
+ distance = 0.0
+
+ # Get scene orientation from active camera
+ xRotation = self.scene().cameraXRotation()
+
+ # Calculate directional drag multipliers based on rotation
+ xMulX = cos(degrees(xRotation))
+ xMulY = sin(degrees(xRotation))
+ zMulX = xMulY
+ zMulY = xMulX
+
+ # Get the drag amount
+ move = self.inputPosition() - self.previousInputPos()
+
+ # Adjust axes
+ if self._state == InputState.StateDraggingX:
+ distance = (move.x() * xMulX - move.y() * xMulY) * self._speedModifier
+ self._axisXMinValue -= distance
+ self._axisXMaxValue -= distance
+ if self._axisXMinValue < self._areaMinValue:
+ dist = self._axisXMaxValue - self._axisXMinValue
+ self._axisXMinValue = self._areaMinValue
+ self._axisXMaxValue = self._axisXMinValue + dist
+
+ if self._axisXMaxValue > self._areaMaxValue:
+ dist = self._axisXMaxValue - self._axisXMinValue
+ self._axisXMaxValue = self._areaMaxValue
+ self._axisXMinValue = self._axisXMaxValue - dist
+
+ self._axisX.setRange(self._axisXMinValue, self._axisXMaxValue)
+ elif self._state == InputState.StateDraggingZ:
+ distance = (move.x() * zMulX + move.y() * zMulY) * self._speedModifier
+ self._axisZMinValue += distance
+ self._axisZMaxValue += distance
+ if self._axisZMinValue < self._areaMinValue:
+ dist = self._axisZMaxValue - self._axisZMinValue
+ self._axisZMinValue = self._areaMinValue
+ self._axisZMaxValue = self._axisZMinValue + dist
+
+ if self._axisZMaxValue > self._areaMaxValue:
+ dist = self._axisZMaxValue - self._axisZMinValue
+ self._axisZMaxValue = self._areaMaxValue
+ self._axisZMinValue = self._axisZMaxValue - dist
+
+ self._axisZ.setRange(self._axisZMinValue, self._axisZMaxValue)
+
+ def checkConstraints(self):
+ if self._axisXMinValue < self._areaMinValue:
+ self._axisXMinValue = self._areaMinValue
+ if self._axisXMaxValue > self._areaMaxValue:
+ self._axisXMaxValue = self._areaMaxValue
+ # Don't allow too much zoom in
+ range = self._axisXMaxValue - self._axisXMinValue
+ if range < self._axisXMinRange:
+ adjust = (self._axisXMinRange - range) / 2.0
+ self._axisXMinValue -= adjust
+ self._axisXMaxValue += adjust
+
+ if self._axisZMinValue < self._areaMinValue:
+ self._axisZMinValue = self._areaMinValue
+ if self._axisZMaxValue > self._areaMaxValue:
+ self._axisZMaxValue = self._areaMaxValue
+ # Don't allow too much zoom in
+ range = self._axisZMaxValue - self._axisZMinValue
+ if range < self._axisZMinRange:
+ adjust = (self._axisZMinRange - range) / 2.0
+ self._axisZMinValue -= adjust
+ self._axisZMaxValue += adjust
diff --git a/examples/graphs/3d/widgetgallery/data/layer_1.png b/examples/graphs/3d/widgetgallery/data/layer_1.png
new file mode 100644
index 000000000..9138c710a
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/data/layer_1.png
Binary files differ
diff --git a/examples/graphs/3d/widgetgallery/data/layer_2.png b/examples/graphs/3d/widgetgallery/data/layer_2.png
new file mode 100644
index 000000000..61631ae8b
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/data/layer_2.png
Binary files differ
diff --git a/examples/graphs/3d/widgetgallery/data/layer_3.png b/examples/graphs/3d/widgetgallery/data/layer_3.png
new file mode 100644
index 000000000..066ffbe75
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/data/layer_3.png
Binary files differ
diff --git a/examples/graphs/3d/widgetgallery/data/license.txt b/examples/graphs/3d/widgetgallery/data/license.txt
new file mode 100644
index 000000000..749daf31f
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/data/license.txt
@@ -0,0 +1,77 @@
+License information regarding the data obtained from National Land Survey of
+Finland http://www.maanmittauslaitos.fi/en
+- topographic model from Elevation model 2 m (U4421B, U4421D, U4422A and
+ U4422C) 08/2014
+- map image extracted from Topographic map raster 1:50 000 (U442) 08/2014
+
+National Land Survey open data licence - version 1.0 - 1 May 2012
+
+1. General information
+
+The National Land Survey of Finland (hereinafter the Licensor), as the holder
+of the immaterial rights to the data, has granted on the terms mentioned below
+the right to use a copy (hereinafter data or dataset(s)) of the data (or a part
+of it).
+
+The Licensee is a natural or legal person who makes use of the data covered by
+this licence. The Licensee accepts the terms of this licence by receiving the
+dataset(s) covered by the licence.
+
+This Licence agreement does not create a co-operation or business relationship
+between the Licensee and the Licensor.
+
+2. Terms of the licence
+
+2.1. Right of use
+
+This licence grants a worldwide, free of charge and irrevocable parallel right
+of use to open data. According to the terms of the licence, data received by
+the Licensee can be freely:
+ - copied, distributed and published,
+ - modified and utilised commercially and non-commercially,
+ - inserted into other products and
+ - used as a part of a software application or service.
+
+2.2. Duties and responsibilities of the Licensee
+
+Through reasonable means suitable to the distribution medium or method which is
+used in conjunction with a product containing data or a service utilising data
+covered by this licence or while distributing data, the Licensee shall:
+ - mention the name of the Licensor, the name of the dataset(s) and the time
+ when the National Land Survey has delivered the dataset(s) (e.g.: contains
+ data from the National Land Survey of Finland Topographic Database 06/2012)
+ - provide a copy of this licence or a link to it, as well as
+ - require third parties to provide the same information when granting rights
+ to copies of dataset(s) or products and services containing such data and
+ - remove the name of the Licensor from the product or service, if required to
+ do so by the Licensor.
+
+The terms of this licence do not allow the Licensee to state in conjunction
+with the use of dataset(s) that the Licensor supports or recommends such use.
+
+2.3. Duties and responsibilities of the Licensor
+
+The Licensor shall ensure that
+ - the Licensor has the right to grant rights to the dataset(s) in accordance
+ with this licence.
+
+The data has been licensed "as is" and the Licensor
+ - shall not be held responsible for any errors or omissions in the data,
+ disclaims any warranty for the validity or up to date status of the data and
+ shall be free from liability for direct or consequential damages arising
+ from the use of data provided by the Licensor,
+ - and is not obligated to ensure the continuous availability of the data, nor
+ to announce in advance the interruption or cessation of availability, and
+ the Licensor shall be free from liability for direct or consequential
+ damages arising from any such interruption or cessation.
+
+3. Jurisdiction
+
+Finnish law shall apply to this licence.
+
+4. Changes to this licence
+
+The Licensor may at any time change the terms of the licence or apply a
+different licence to the data. The terms of this licence shall, however, still
+apply to such data that has been received prior to the change of the terms of
+the licence or the licence itself.
diff --git a/examples/graphs/3d/widgetgallery/data/maptexture.jpg b/examples/graphs/3d/widgetgallery/data/maptexture.jpg
new file mode 100644
index 000000000..ae5d66ebe
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/data/maptexture.jpg
Binary files differ
diff --git a/examples/graphs/3d/widgetgallery/data/narrowarrow.mesh b/examples/graphs/3d/widgetgallery/data/narrowarrow.mesh
new file mode 100644
index 000000000..288867b1e
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/data/narrowarrow.mesh
Binary files differ
diff --git a/examples/graphs/3d/widgetgallery/data/oilrig.mesh b/examples/graphs/3d/widgetgallery/data/oilrig.mesh
new file mode 100644
index 000000000..4a7baeddf
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/data/oilrig.mesh
Binary files differ
diff --git a/examples/graphs/3d/widgetgallery/data/pipe.mesh b/examples/graphs/3d/widgetgallery/data/pipe.mesh
new file mode 100644
index 000000000..984b6d443
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/data/pipe.mesh
Binary files differ
diff --git a/examples/graphs/3d/widgetgallery/data/raindata.txt b/examples/graphs/3d/widgetgallery/data/raindata.txt
new file mode 100644
index 000000000..d95589219
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/data/raindata.txt
@@ -0,0 +1,158 @@
+# Rainfall per month from 2010 to 2022 in Northern Finland (Oulu)
+# Format: year, month, rainfall
+2010,1, 0,
+2010,2, 3.4,
+2010,3, 52,
+2010,4, 33.8,
+2010,5, 45.6,
+2010,6, 43.8,
+2010,7, 104.6,
+2010,8, 105.4,
+2010,9, 107.2,
+2010,10,38.6,
+2010,11,17.8,
+2010,12,0,
+2011,1, 8.2,
+2011,2, 1.6,
+2011,3, 27.4,
+2011,4, 15.8,
+2011,5, 57.6,
+2011,6, 85.2,
+2011,7, 127,
+2011,8, 72.2,
+2011,9, 82.2,
+2011,10,62.4,
+2011,11,31.6,
+2011,12,53.8,
+2012,1, 0,
+2012,2, 5,
+2012,3, 32.4,
+2012,4, 57.6,
+2012,5, 71.4,
+2012,6, 60.8,
+2012,7, 109,
+2012,8, 43.6,
+2012,9, 79.4,
+2012,10,117.2,
+2012,11,59,
+2012,12,0.2,
+2013,1, 28,
+2013,2, 19,
+2013,3, 0,
+2013,4, 37.6,
+2013,5, 44.2,
+2013,6, 104.8,
+2013,7, 84.2,
+2013,8, 57.2,
+2013,9, 37.2,
+2013,10,64.6,
+2013,11,77.8,
+2013,12,92.8,
+2014,1, 23.8,
+2014,2, 23.6,
+2014,3, 15.4,
+2014,4, 13.2,
+2014,5, 36.4,
+2014,6, 26.4,
+2014,7, 95.8,
+2014,8, 81.8,
+2014,9, 13.8,
+2014,10,94.6,
+2014,11,44.6,
+2014,12,31,
+2015,1, 37.4,
+2015,2, 21,
+2015,3, 42,
+2015,4, 8.8,
+2015,5, 82.4,
+2015,6, 150,
+2015,7, 56.8,
+2015,8, 67.2,
+2015,9, 131.2,
+2015,10,38.4,
+2015,11,83.4,
+2015,12,47.8,
+2016,1, 12.4,
+2016,2, 34.8,
+2016,3, 29,
+2016,4, 40.4,
+2016,5, 32.4,
+2016,6, 80.2,
+2016,7, 102.6,
+2016,8, 95.6,
+2016,9, 40.2,
+2016,10,7.8,
+2016,11,39.6,
+2016,12,8.8,
+2017,1, 9.4,
+2017,2, 6.6,
+2017,3, 29,
+2017,4, 46.2,
+2017,5, 43.2,
+2017,6, 25.2,
+2017,7, 72.4,
+2017,8, 58.8,
+2017,9, 68.8,
+2017,10,45.8,
+2017,11,36.8,
+2017,12,29.6,
+2018,1, 19.8,
+2018,2, 0.8,
+2018,3, 4,
+2018,4, 23.2,
+2018,5, 13.2,
+2018,6, 62.8,
+2018,7, 33,
+2018,8, 96.6,
+2018,9, 72.6,
+2018,10,48.8,
+2018,11,31.8,
+2018,12,12.8,
+2019,1, 0.2,
+2019,2, 24.8,
+2019,3, 32,
+2019,4, 8.8,
+2019,5, 71.4,
+2019,6, 65.8,
+2019,7, 17.6,
+2019,8, 90,
+2019,9, 50,
+2019,10,77,
+2019,11,27,
+2019,12,43.2,
+2020,1, 28.8,
+2020,2, 45,
+2020,3, 18.6,
+2020,4, 13,
+2020,5, 30.8,
+2020,6, 21.4,
+2020,7, 163.6,
+2020,8, 12,
+2020,9, 102.4,
+2020,10,133.2,
+2020,11,69.8,
+2020,12,40.6,
+2021,1, 0.4,
+2021,2, 21.6,
+2021,3, 24,
+2021,4, 51.4,
+2021,5, 76.4,
+2021,6, 29.2,
+2021,7, 36.4,
+2021,8, 116,
+2021,9, 72.4,
+2021,10,93.4,
+2021,11,21,
+2021,12,10.2,
+2022,1, 8.6,
+2022,2, 6.6,
+2022,3, 5.2,
+2022,4, 15.2,
+2022,5, 37.6,
+2022,6, 45,
+2022,7, 67.4,
+2022,8, 161.6,
+2022,9, 22.8,
+2022,10,75.2,
+2022,11,21.8,
+2022,12,0.2
diff --git a/examples/graphs/3d/widgetgallery/data/refinery.mesh b/examples/graphs/3d/widgetgallery/data/refinery.mesh
new file mode 100644
index 000000000..a7e249353
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/data/refinery.mesh
Binary files differ
diff --git a/examples/graphs/3d/widgetgallery/data/topography.png b/examples/graphs/3d/widgetgallery/data/topography.png
new file mode 100644
index 000000000..9349cdb31
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/data/topography.png
Binary files differ
diff --git a/examples/graphs/3d/widgetgallery/doc/widgetgallery.rst b/examples/graphs/3d/widgetgallery/doc/widgetgallery.rst
new file mode 100644
index 000000000..1470001d6
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/doc/widgetgallery.rst
@@ -0,0 +1,11 @@
+Widget Gallery
+==============
+
+
+Widget Gallery demonstrates all three graph types and some of their special
+features. The graphs have their own tabs in the application.
+
+
+.. image:: widgetgallery.webp
+ :width: 400
+ :alt: Widget Screenshot
diff --git a/examples/graphs/3d/widgetgallery/doc/widgetgallery.webp b/examples/graphs/3d/widgetgallery/doc/widgetgallery.webp
new file mode 100644
index 000000000..eb5767264
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/doc/widgetgallery.webp
Binary files differ
diff --git a/examples/graphs/3d/widgetgallery/graphmodifier.py b/examples/graphs/3d/widgetgallery/graphmodifier.py
new file mode 100644
index 000000000..2eaafa792
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/graphmodifier.py
@@ -0,0 +1,391 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+
+from math import atan, degrees
+import numpy as np
+
+from PySide6.QtCore import QObject, QPropertyAnimation, Signal, Slot
+from PySide6.QtGui import QFont, QVector3D
+from PySide6.QtGraphs import (QAbstract3DGraph, QAbstract3DSeries,
+ QBarDataItem, QBar3DSeries, QCategory3DAxis,
+ QValue3DAxis, Q3DTheme)
+
+from rainfalldata import RainfallData
+
+# Set up data
+TEMP_OULU = np.array([
+ [-7.4, -2.4, 0.0, 3.0, 8.2, 11.6, 14.7, 15.4, 11.4, 4.2, 2.1, -2.3], # 2015
+ [-13.4, -3.9, -1.8, 3.1, 10.6, 13.7, 17.8, 13.6, 10.7, 3.5, -3.1, -4.2], # 2016
+ [-5.7, -6.7, -3.0, -0.1, 4.7, 12.4, 16.1, 14.1, 9.4, 3.0, -0.3, -3.2], # 2017
+ [-6.4, -11.9, -7.4, 1.9, 11.4, 12.4, 21.5, 16.1, 11.0, 4.4, 2.1, -4.1], # 2018
+ [-11.7, -6.1, -2.4, 3.9, 7.2, 14.5, 15.6, 14.4, 8.5, 2.0, -3.0, -1.5], # 2019
+ [-2.1, -3.4, -1.8, 0.6, 7.0, 17.1, 15.6, 15.4, 11.1, 5.6, 1.9, -1.7], # 2020
+ [-9.6, -11.6, -3.2, 2.4, 7.8, 17.3, 19.4, 14.2, 8.0, 5.2, -2.2, -8.6], # 2021
+ [-7.3, -6.4, -1.8, 1.3, 8.1, 15.5, 17.6, 17.6, 9.1, 5.4, -1.5, -4.4]], # 2022
+ np.float64)
+
+
+TEMP_HELSINKI = np.array([
+ [-2.0, -0.1, 1.8, 5.1, 9.7, 13.7, 16.3, 17.3, 12.7, 5.4, 4.6, 2.1], # 2015
+ [-10.3, -0.6, 0.0, 4.9, 14.3, 15.7, 17.7, 16.0, 12.7, 4.6, -1.0, -0.9], # 2016
+ [-2.9, -3.3, 0.7, 2.3, 9.9, 13.8, 16.1, 15.9, 11.4, 5.0, 2.7, 0.7], # 2017
+ [-2.2, -8.4, -4.7, 5.0, 15.3, 15.8, 21.2, 18.2, 13.3, 6.7, 2.8, -2.0], # 2018
+ [-6.2, -0.5, -0.3, 6.8, 10.6, 17.9, 17.5, 16.8, 11.3, 5.2, 1.8, 1.4], # 2019
+ [1.9, 0.5, 1.7, 4.5, 9.5, 18.4, 16.5, 16.8, 13.0, 8.2, 4.4, 0.9], # 2020
+ [-4.7, -8.1, -0.9, 4.5, 10.4, 19.2, 20.9, 15.4, 9.5, 8.0, 1.5, -6.7], # 2021
+ [-3.3, -2.2, -0.2, 3.3, 9.6, 16.9, 18.1, 18.9, 9.2, 7.6, 2.3, -3.4]], # 2022
+ np.float64)
+
+
+class GraphModifier(QObject):
+
+ shadowQualityChanged = Signal(int)
+ backgroundEnabledChanged = Signal(bool)
+ gridEnabledChanged = Signal(bool)
+ fontChanged = Signal(QFont)
+ fontSizeChanged = Signal(int)
+
+ def __init__(self, bargraph, parent):
+ super().__init__(parent)
+ self._graph = bargraph
+ self._temperatureAxis = QValue3DAxis()
+ self._yearAxis = QCategory3DAxis()
+ self._monthAxis = QCategory3DAxis()
+ self._primarySeries = QBar3DSeries()
+ self._secondarySeries = QBar3DSeries()
+ self._celsiusString = "°C"
+
+ self._xRotation = float(0)
+ self._yRotation = float(0)
+ self._fontSize = 30
+ self._segments = 4
+ self._subSegments = 3
+ self._minval = float(-20)
+ self._maxval = float(20)
+ self._barMesh = QAbstract3DSeries.Mesh.BevelBar
+ self._smooth = False
+ self._animationCameraX = QPropertyAnimation()
+ self._animationCameraY = QPropertyAnimation()
+ self._animationCameraZoom = QPropertyAnimation()
+ self._animationCameraTarget = QPropertyAnimation()
+ self._defaultAngleX = float(0)
+ self._defaultAngleY = float(0)
+ self._defaultZoom = float(0)
+ self._defaultTarget = []
+ self._customData = None
+
+ self._graph.setShadowQuality(QAbstract3DGraph.ShadowQuality.SoftMedium)
+ theme = self._graph.activeTheme()
+ theme.setBackgroundEnabled(False)
+ theme.setFont(QFont("Times New Roman", self._fontSize))
+ theme.setLabelBackgroundEnabled(True)
+ self._graph.setMultiSeriesUniform(True)
+
+ self._months = ["January", "February", "March", "April", "May", "June",
+ "July", "August", "September", "October", "November",
+ "December"]
+ self._years = ["2015", "2016", "2017", "2018", "2019", "2020",
+ "2021", "2022"]
+
+ self._temperatureAxis.setTitle("Average temperature")
+ self._temperatureAxis.setSegmentCount(self._segments)
+ self._temperatureAxis.setSubSegmentCount(self._subSegments)
+ self._temperatureAxis.setRange(self._minval, self._maxval)
+ self._temperatureAxis.setLabelFormat("%.1f " + self._celsiusString)
+ self._temperatureAxis.setLabelAutoRotation(30.0)
+ self._temperatureAxis.setTitleVisible(True)
+
+ self._yearAxis.setTitle("Year")
+ self._yearAxis.setLabelAutoRotation(30.0)
+ self._yearAxis.setTitleVisible(True)
+ self._monthAxis.setTitle("Month")
+ self._monthAxis.setLabelAutoRotation(30.0)
+ self._monthAxis.setTitleVisible(True)
+
+ self._graph.setValueAxis(self._temperatureAxis)
+ self._graph.setRowAxis(self._yearAxis)
+ self._graph.setColumnAxis(self._monthAxis)
+
+ format = "Oulu - @colLabel @rowLabel: @valueLabel"
+ self._primarySeries.setItemLabelFormat(format)
+ self._primarySeries.setMesh(QAbstract3DSeries.Mesh.BevelBar)
+ self._primarySeries.setMeshSmooth(False)
+
+ format = "Helsinki - @colLabel @rowLabel: @valueLabel"
+ self._secondarySeries.setItemLabelFormat(format)
+ self._secondarySeries.setMesh(QAbstract3DSeries.Mesh.BevelBar)
+ self._secondarySeries.setMeshSmooth(False)
+ self._secondarySeries.setVisible(False)
+
+ self._graph.addSeries(self._primarySeries)
+ self._graph.addSeries(self._secondarySeries)
+
+ self.changePresetCamera()
+
+ self.resetTemperatureData()
+
+ # Set up property animations for zooming to the selected bar
+ self._defaultAngleX = self._graph.cameraXRotation()
+ self._defaultAngleY = self._graph.cameraYRotation()
+ self._defaultZoom = self._graph.cameraZoomLevel()
+ self._defaultTarget = self._graph.cameraTargetPosition()
+
+ self._animationCameraX.setTargetObject(self._graph)
+ self._animationCameraY.setTargetObject(self._graph)
+ self._animationCameraZoom.setTargetObject(self._graph)
+ self._animationCameraTarget.setTargetObject(self._graph)
+
+ self._animationCameraX.setPropertyName(b"cameraXRotation")
+ self._animationCameraY.setPropertyName(b"cameraYRotation")
+ self._animationCameraZoom.setPropertyName(b"cameraZoomLevel")
+ self._animationCameraTarget.setPropertyName(b"cameraTargetPosition")
+
+ duration = 1700
+ self._animationCameraX.setDuration(duration)
+ self._animationCameraY.setDuration(duration)
+ self._animationCameraZoom.setDuration(duration)
+ self._animationCameraTarget.setDuration(duration)
+
+ # The zoom always first zooms out above the graph and then zooms in
+ zoomOutFraction = 0.3
+ self._animationCameraX.setKeyValueAt(zoomOutFraction, 0.0)
+ self._animationCameraY.setKeyValueAt(zoomOutFraction, 90.0)
+ self._animationCameraZoom.setKeyValueAt(zoomOutFraction, 50.0)
+ self._animationCameraTarget.setKeyValueAt(zoomOutFraction,
+ QVector3D(0, 0, 0))
+ self._customData = RainfallData()
+
+ def resetTemperatureData(self):
+ # Create data arrays
+ dataSet = []
+ dataSet2 = []
+
+ for year in range(0, len(self._years)):
+ # Create a data row
+ dataRow = []
+ dataRow2 = []
+ for month in range(0, len(self._months)):
+ # Add data to the row
+ item = QBarDataItem()
+ item.setValue(TEMP_OULU[year][month])
+ dataRow.append(item)
+ item = QBarDataItem()
+ item.setValue(TEMP_HELSINKI[year][month])
+ dataRow2.append(item)
+
+ # Add the row to the set
+ dataSet.append(dataRow)
+ dataSet2.append(dataRow2)
+
+ # Add data to the data proxy (the data proxy assumes ownership of it)
+ self._primarySeries.dataProxy().resetArray(dataSet, self._years, self._months)
+ self._secondarySeries.dataProxy().resetArray(dataSet2, self._years, self._months)
+
+ @Slot(int)
+ def changeRange(self, range):
+ if range >= len(self._years):
+ self._yearAxis.setRange(0, len(self._years) - 1)
+ else:
+ self._yearAxis.setRange(range, range)
+
+ @Slot(int)
+ def changeStyle(self, style):
+ comboBox = self.sender()
+ if comboBox:
+ self._barMesh = comboBox.itemData(style)
+ self._primarySeries.setMesh(self._barMesh)
+ self._secondarySeries.setMesh(self._barMesh)
+ self._customData.customSeries().setMesh(self._barMesh)
+
+ def changePresetCamera(self):
+ self._animationCameraX.stop()
+ self._animationCameraY.stop()
+ self._animationCameraZoom.stop()
+ self._animationCameraTarget.stop()
+
+ # Restore camera target in case animation has changed it
+ self._graph.setCameraTargetPosition(QVector3D(0.0, 0.0, 0.0))
+
+ self._preset = QAbstract3DGraph.CameraPreset.Front.value
+
+ self._graph.setCameraPreset(QAbstract3DGraph.CameraPreset(self._preset))
+
+ self._preset += 1
+ if self._preset > QAbstract3DGraph.CameraPreset.DirectlyBelow.value:
+ self._preset = QAbstract3DGraph.CameraPreset.FrontLow.value
+
+ @Slot(int)
+ def changeTheme(self, theme):
+ currentTheme = self._graph.activeTheme()
+ currentTheme.setType(Q3DTheme.Theme(theme))
+ self.backgroundEnabledChanged.emit(currentTheme.isBackgroundEnabled())
+ self.gridEnabledChanged.emit(currentTheme.isGridEnabled())
+ self.fontChanged.emit(currentTheme.font())
+ self.fontSizeChanged.emit(currentTheme.font().pointSize())
+
+ def changeLabelBackground(self):
+ theme = self._graph.activeTheme()
+ theme.setLabelBackgroundEnabled(not theme.isLabelBackgroundEnabled())
+
+ @Slot(int)
+ def changeSelectionMode(self, selectionMode):
+ comboBox = self.sender()
+ if comboBox:
+ flags = comboBox.itemData(selectionMode)
+ self._graph.setSelectionMode(QAbstract3DGraph.SelectionFlags(flags))
+
+ def changeFont(self, font):
+ newFont = font
+ self._graph.activeTheme().setFont(newFont)
+
+ def changeFontSize(self, fontsize):
+ self._fontSize = fontsize
+ font = self._graph.activeTheme().font()
+ font.setPointSize(self._fontSize)
+ self._graph.activeTheme().setFont(font)
+
+ @Slot(QAbstract3DGraph.ShadowQuality)
+ def shadowQualityUpdatedByVisual(self, sq):
+ # Updates the UI component to show correct shadow quality
+ self.shadowQualityChanged.emit(sq.value)
+
+ @Slot(int)
+ def changeLabelRotation(self, rotation):
+ self._temperatureAxis.setLabelAutoRotation(float(rotation))
+ self._monthAxis.setLabelAutoRotation(float(rotation))
+ self._yearAxis.setLabelAutoRotation(float(rotation))
+
+ @Slot(bool)
+ def setAxisTitleVisibility(self, enabled):
+ self._temperatureAxis.setTitleVisible(enabled)
+ self._monthAxis.setTitleVisible(enabled)
+ self._yearAxis.setTitleVisible(enabled)
+
+ @Slot(bool)
+ def setAxisTitleFixed(self, enabled):
+ self._temperatureAxis.setTitleFixed(enabled)
+ self._monthAxis.setTitleFixed(enabled)
+ self._yearAxis.setTitleFixed(enabled)
+
+ @Slot()
+ def zoomToSelectedBar(self):
+ self._animationCameraX.stop()
+ self._animationCameraY.stop()
+ self._animationCameraZoom.stop()
+ self._animationCameraTarget.stop()
+
+ currentX = self._graph.cameraXRotation()
+ currentY = self._graph.cameraYRotation()
+ currentZoom = self._graph.cameraZoomLevel()
+ currentTarget = self._graph.cameraTargetPosition()
+
+ self._animationCameraX.setStartValue(currentX)
+ self._animationCameraY.setStartValue(currentY)
+ self._animationCameraZoom.setStartValue(currentZoom)
+ self._animationCameraTarget.setStartValue(currentTarget)
+
+ selectedBar = (self._graph.selectedSeries().selectedBar()
+ if self._graph.selectedSeries()
+ else QBar3DSeries.invalidSelectionPosition())
+
+ if selectedBar != QBar3DSeries.invalidSelectionPosition():
+ # Normalize selected bar position within axis range to determine
+ # target coordinates
+ endTarget = QVector3D()
+ xMin = self._graph.columnAxis().min()
+ xRange = self._graph.columnAxis().max() - xMin
+ zMin = self._graph.rowAxis().min()
+ zRange = self._graph.rowAxis().max() - zMin
+ endTarget.setX((selectedBar.y() - xMin) / xRange * 2.0 - 1.0)
+ endTarget.setZ((selectedBar.x() - zMin) / zRange * 2.0 - 1.0)
+
+ # Rotate the camera so that it always points approximately to the
+ # graph center
+ endAngleX = 90.0 - degrees(atan(float(endTarget.z() / endTarget.x())))
+ if endTarget.x() > 0.0:
+ endAngleX -= 180.0
+ proxy = self._graph.selectedSeries().dataProxy()
+ barValue = proxy.itemAt(selectedBar.x(), selectedBar.y()).value()
+ endAngleY = 30.0 if barValue >= 0.0 else -30.0
+ if self._graph.valueAxis().reversed():
+ endAngleY *= -1.0
+
+ self._animationCameraX.setEndValue(float(endAngleX))
+ self._animationCameraY.setEndValue(endAngleY)
+ self._animationCameraZoom.setEndValue(250)
+ self._animationCameraTarget.setEndValue(endTarget)
+ else:
+ # No selected bar, so return to the default view
+ self._animationCameraX.setEndValue(self._defaultAngleX)
+ self._animationCameraY.setEndValue(self._defaultAngleY)
+ self._animationCameraZoom.setEndValue(self._defaultZoom)
+ self._animationCameraTarget.setEndValue(self._defaultTarget)
+
+ self._animationCameraX.start()
+ self._animationCameraY.start()
+ self._animationCameraZoom.start()
+ self._animationCameraTarget.start()
+
+ @Slot(bool)
+ def setDataModeToWeather(self, enabled):
+ if enabled:
+ self.changeDataMode(False)
+
+ @Slot(bool)
+ def setDataModeToCustom(self, enabled):
+ if enabled:
+ self.changeDataMode(True)
+
+ def changeShadowQuality(self, quality):
+ sq = QAbstract3DGraph.ShadowQuality(quality)
+ self._graph.setShadowQuality(sq)
+ self.shadowQualityChanged.emit(quality)
+
+ def rotateX(self, rotation):
+ self._xRotation = rotation
+ camera = self._graph.scene().activeCamera()
+ camera.setCameraPosition(self._xRotation, self._yRotation)
+
+ def rotateY(self, rotation):
+ self._yRotation = rotation
+ camera = self._graph.scene().activeCamera()
+ camera.setCameraPosition(self._xRotation, self._yRotation)
+
+ def setBackgroundEnabled(self, enabled):
+ self._graph.activeTheme().setBackgroundEnabled(bool(enabled))
+
+ def setGridEnabled(self, enabled):
+ self._graph.activeTheme().setGridEnabled(bool(enabled))
+
+ def setSmoothBars(self, smooth):
+ self._smooth = bool(smooth)
+ self._primarySeries.setMeshSmooth(self._smooth)
+ self._secondarySeries.setMeshSmooth(self._smooth)
+ self._customData.customSeries().setMeshSmooth(self._smooth)
+
+ def setSeriesVisibility(self, enabled):
+ self._secondarySeries.setVisible(bool(enabled))
+
+ def setReverseValueAxis(self, enabled):
+ self._graph.valueAxis().setReversed(enabled)
+
+ def setReflection(self, enabled):
+ self._graph.setReflection(enabled)
+
+ def changeDataMode(self, customData):
+ # Change between weather data and data from custom proxy
+ if customData:
+ self._graph.removeSeries(self._primarySeries)
+ self._graph.removeSeries(self._secondarySeries)
+ self._graph.addSeries(self._customData.customSeries())
+ self._graph.setValueAxis(self._customData.valueAxis())
+ self._graph.setRowAxis(self._customData.rowAxis())
+ self._graph.setColumnAxis(self._customData.colAxis())
+ else:
+ self._graph.removeSeries(self._customData.customSeries())
+ self._graph.addSeries(self._primarySeries)
+ self._graph.addSeries(self._secondarySeries)
+ self._graph.setValueAxis(self._temperatureAxis)
+ self._graph.setRowAxis(self._yearAxis)
+ self._graph.setColumnAxis(self._monthAxis)
diff --git a/examples/graphs/3d/widgetgallery/highlightseries.py b/examples/graphs/3d/widgetgallery/highlightseries.py
new file mode 100644
index 000000000..8c7b91633
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/highlightseries.py
@@ -0,0 +1,94 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QPoint, Qt, Slot
+from PySide6.QtGui import QLinearGradient, QVector3D
+from PySide6.QtGraphs import (QSurface3DSeries, QSurfaceDataItem, Q3DTheme)
+
+
+DARK_RED_POS = 1.0
+RED_POS = 0.8
+YELLOW_POS = 0.6
+GREEN_POS = 0.4
+DARK_GREEN_POS = 0.2
+
+
+class HighlightSeries(QSurface3DSeries):
+
+ def __init__(self):
+ super().__init__()
+ self._width = 100
+ self._height = 100
+ self._srcWidth = 0
+ self._srcHeight = 0
+ self._position = {}
+ self._topographicSeries = None
+ self._minHeight = 0.0
+ self.setDrawMode(QSurface3DSeries.DrawSurface)
+ self.setFlatShadingEnabled(True)
+ self.setVisible(False)
+
+ def setTopographicSeries(self, series):
+ self._topographicSeries = series
+ array = self._topographicSeries.dataProxy().array()
+ self._srcWidth = len(array[0])
+ self._srcHeight = len(array)
+ self._topographicSeries.selectedPointChanged.connect(self.handlePositionChange)
+
+ def setMinHeight(self, height):
+ self. m_minHeight = height
+
+ @Slot(QPoint)
+ def handlePositionChange(self, position):
+ self._position = position
+
+ if position == self.invalidSelectionPosition():
+ self.setVisible(False)
+ return
+
+ halfWidth = self._width / 2
+ halfHeight = self._height / 2
+
+ startX = position.y() - halfWidth
+ if startX < 0:
+ startX = 0
+ endX = position.y() + halfWidth
+ if endX > (self._srcWidth - 1):
+ endX = self._srcWidth - 1
+ startZ = position.x() - halfHeight
+ if startZ < 0:
+ startZ = 0
+ endZ = position.x() + halfHeight
+ if endZ > (self._srcHeight - 1):
+ endZ = self._srcHeight - 1
+
+ srcProxy = self._topographicSeries.dataProxy()
+ srcArray = srcProxy.array()
+
+ dataArray = []
+ for i in range(int(startZ), int(endZ)):
+ newRow = []
+ srcRow = srcArray[i]
+ for j in range(startX, endX):
+ pos = srcRow.at(j).position()
+ pos.setY(pos.y() + 0.1)
+ item = QSurfaceDataItem(QVector3D(pos))
+ newRow.append(item)
+ dataArray.append(newRow)
+ self.dataProxy().resetArray(dataArray)
+ self.setVisible(True)
+
+ @Slot(float)
+ def handleGradientChange(self, value):
+ ratio = self._minHeight / value
+
+ gr = QLinearGradient()
+ gr.setColorAt(0.0, Qt.black)
+ gr.setColorAt(DARK_GREEN_POS * ratio, Qt.darkGreen)
+ gr.setColorAt(GREEN_POS * ratio, Qt.green)
+ gr.setColorAt(YELLOW_POS * ratio, Qt.yellow)
+ gr.setColorAt(RED_POS * ratio, Qt.red)
+ gr.setColorAt(DARK_RED_POS * ratio, Qt.darkRed)
+
+ self.setBaseGradient(gr)
+ self.setColorStyle(Q3DTheme.ColorStyle.RangeGradient)
diff --git a/examples/graphs/3d/widgetgallery/main.py b/examples/graphs/3d/widgetgallery/main.py
new file mode 100644
index 000000000..7bb2238a7
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/main.py
@@ -0,0 +1,41 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the Qt Graphs widgetgallery example from Qt v6.x"""
+
+import sys
+
+from PySide6.QtCore import QSize
+from PySide6.QtWidgets import QApplication, QTabWidget
+
+from bargraph import BarGraph
+from scattergraph import ScatterGraph
+from surfacegraph import SurfaceGraph
+
+
+if __name__ == "__main__":
+ app = QApplication(sys.argv)
+
+ # Create a tab widget for creating own tabs for Q3DBars, Q3DScatter, and Q3DSurface
+ tabWidget = QTabWidget()
+ tabWidget.setWindowTitle("Widget Gallery")
+
+ screen_size = tabWidget.screen().size()
+ minimum_graph_size = QSize(screen_size.width() / 2, screen_size.height() / 1.75)
+
+ # Create bar graph
+ bars = BarGraph(minimum_graph_size, screen_size)
+ # Create scatter graph
+ scatter = ScatterGraph(minimum_graph_size, screen_size)
+ # Create surface graph
+ surface = SurfaceGraph(minimum_graph_size, screen_size)
+
+ # Add bars widget
+ tabWidget.addTab(bars.barsWidget(), "Bar Graph")
+ # Add scatter widget
+ tabWidget.addTab(scatter.scatterWidget(), "Scatter Graph")
+ # Add surface widget
+ tabWidget.addTab(surface.surfaceWidget(), "Surface Graph")
+
+ tabWidget.show()
+ sys.exit(app.exec())
diff --git a/examples/graphs/3d/widgetgallery/rainfalldata.py b/examples/graphs/3d/widgetgallery/rainfalldata.py
new file mode 100644
index 000000000..d74f45a8b
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/rainfalldata.py
@@ -0,0 +1,125 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from pathlib import Path
+
+from PySide6.QtCore import QFile, QIODevice, QObject
+from PySide6.QtGraphs import (QBar3DSeries, QCategory3DAxis, QValue3DAxis)
+
+from variantbardataproxy import VariantBarDataProxy
+from variantbardatamapping import VariantBarDataMapping
+from variantdataset import VariantDataSet
+
+
+MONTHS = ["January", "February", "March", "April",
+ "May", "June", "July", "August", "September", "October",
+ "November", "December"]
+
+
+class RainfallData(QObject):
+
+ def __init__(self):
+ super().__init__()
+ self._columnCount = 0
+ self._rowCount = 0
+ self._years = []
+ self._numericMonths = []
+ self._proxy = VariantBarDataProxy()
+ self._mapping = None
+ self._dataSet = None
+ self._series = QBar3DSeries()
+ self._valueAxis = QValue3DAxis()
+ self._rowAxis = QCategory3DAxis()
+ self._colAxis = QCategory3DAxis()
+
+ # In data file the months are in numeric format, so create custom list
+ for i in range(1, 13):
+ self._numericMonths.append(str(i))
+
+ self._columnCount = len(self._numericMonths)
+
+ self.updateYearsList(2010, 2022)
+
+ # Create proxy and series
+ self._proxy = VariantBarDataProxy()
+ self._series = QBar3DSeries(self._proxy)
+
+ self._series.setItemLabelFormat("%.1f mm")
+
+ # Create the axes
+ self._rowAxis = QCategory3DAxis(self)
+ self._colAxis = QCategory3DAxis(self)
+ self._valueAxis = QValue3DAxis(self)
+ self._rowAxis.setAutoAdjustRange(True)
+ self._colAxis.setAutoAdjustRange(True)
+ self._valueAxis.setAutoAdjustRange(True)
+
+ # Set axis labels and titles
+ self._rowAxis.setTitle("Year")
+ self._colAxis.setTitle("Month")
+ self._valueAxis.setTitle("rainfall (mm)")
+ self._valueAxis.setSegmentCount(5)
+ self._rowAxis.setLabels(self._years)
+ self._colAxis.setLabels(MONTHS)
+ self._rowAxis.setTitleVisible(True)
+ self._colAxis.setTitleVisible(True)
+ self._valueAxis.setTitleVisible(True)
+
+ self.addDataSet()
+
+ def customSeries(self):
+ return self._series
+
+ def valueAxis(self):
+ return self._valueAxis
+
+ def rowAxis(self):
+ return self._rowAxis
+
+ def colAxis(self):
+ return self._colAxis
+
+ def updateYearsList(self, start, end):
+ self._years.clear()
+ for i in range(start, end + 1):
+ self._years.append(str(i))
+ self._rowCount = len(self._years)
+
+ def addDataSet(self):
+ # Create a new variant data set and data item list
+ self._dataSet = VariantDataSet()
+ itemList = []
+
+ # Read data from a data file into the data item list
+ file_path = Path(__file__).resolve().parent / "data" / "raindata.txt"
+ dataFile = QFile(file_path)
+ if dataFile.open(QIODevice.ReadOnly | QIODevice.Text):
+ data = dataFile.readAll().data().decode("utf8")
+ for line in data.split("\n"):
+ if line and not line.startswith("#"): # Ignore comments
+ tokens = line.split(",")
+ # Each line has three data items: Year, month, and
+ # rainfall value
+ if len(tokens) >= 3:
+ # Store year and month as strings, and rainfall value
+ # as double into a variant data item and add the item to
+ # the item list.
+ newItem = []
+ newItem.append(tokens[0].strip())
+ newItem.append(tokens[1].strip())
+ newItem.append(float(tokens[2].strip()))
+ itemList.append(newItem)
+ else:
+ print("Unable to open data file:", dataFile.fileName(),
+ file=sys.stderr)
+
+ # Add items to the data set and set it to the proxy
+ self._dataSet.addItems(itemList)
+ self._proxy.setDataSet(self._dataSet)
+
+ # Create new mapping for the data and set it to the proxy
+ self._mapping = VariantBarDataMapping(0, 1, 2,
+ self._years, self._numericMonths)
+ self._proxy.setMapping(self._mapping)
diff --git a/examples/graphs/3d/widgetgallery/scatterdatamodifier.py b/examples/graphs/3d/widgetgallery/scatterdatamodifier.py
new file mode 100644
index 000000000..15064b412
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/scatterdatamodifier.py
@@ -0,0 +1,149 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from math import cos, degrees, sqrt
+
+from PySide6.QtCore import QObject, Signal, Slot, Qt
+from PySide6.QtGui import QVector3D
+from PySide6.QtGraphs import (QAbstract3DGraph, QAbstract3DSeries,
+ QScatterDataItem, QScatterDataProxy,
+ QScatter3DSeries, Q3DTheme)
+
+from axesinputhandler import AxesInputHandler
+
+
+NUMBER_OF_ITEMS = 10000
+CURVE_DIVIDER = 7.5
+LOWER_NUMBER_OF_ITEMS = 900
+LOWER_CURVE_DIVIDER = 0.75
+
+
+class ScatterDataModifier(QObject):
+
+ backgroundEnabledChanged = Signal(bool)
+ gridEnabledChanged = Signal(bool)
+ shadowQualityChanged = Signal(int)
+
+ def __init__(self, scatter, parent):
+ super().__init__(parent)
+
+ self._graph = scatter
+
+ self._style = QAbstract3DSeries.Mesh.Sphere
+ self._smooth = True
+ self._inputHandler = AxesInputHandler(scatter)
+ self._autoAdjust = True
+ self._itemCount = LOWER_NUMBER_OF_ITEMS
+ self._CURVE_DIVIDER = LOWER_CURVE_DIVIDER
+ self._inputHandler = AxesInputHandler(scatter)
+
+ self._graph.activeTheme().setType(Q3DTheme.Theme.StoneMoss)
+ self._graph.setShadowQuality(QAbstract3DGraph.ShadowQuality.SoftHigh)
+ self._graph.setCameraPreset(QAbstract3DGraph.CameraPreset.Front)
+ self._graph.setCameraZoomLevel(80.0)
+
+ self._proxy = QScatterDataProxy()
+ self._series = QScatter3DSeries(self._proxy)
+ self._series.setItemLabelFormat("@xTitle: @xLabel @yTitle: @yLabel @zTitle: @zLabel")
+ self._series.setMeshSmooth(self._smooth)
+ self._graph.addSeries(self._series)
+ self._preset = QAbstract3DGraph.CameraPreset.FrontLow.value
+
+ # Give ownership of the handler to the graph and make it the active
+ # handler
+ self._graph.setActiveInputHandler(self._inputHandler)
+
+ # Give our axes to the input handler
+ self._inputHandler.setAxes(self._graph.axisX(), self._graph.axisZ(),
+ self._graph.axisY())
+
+ self.addData()
+
+ def addData(self):
+ # Configure the axes according to the data
+ self._graph.axisX().setTitle("X")
+ self._graph.axisY().setTitle("Y")
+ self._graph.axisZ().setTitle("Z")
+
+ dataArray = []
+ limit = int(sqrt(self._itemCount) / 2.0)
+ for i in range(-limit, limit):
+ for j in range(-limit, limit):
+ x = float(i) + 0.5
+ y = cos(degrees(float(i * j) / self._CURVE_DIVIDER))
+ z = float(j) + 0.5
+ dataArray.append(QScatterDataItem(QVector3D(x, y, z)))
+
+ self._graph.seriesList()[0].dataProxy().resetArray(dataArray)
+
+ @Slot(int)
+ def changeStyle(self, style):
+ comboBox = self.sender()
+ if comboBox:
+ self._style = comboBox.itemData(style)
+ if self._graph.seriesList():
+ self._graph.seriesList()[0].setMesh(self._style)
+
+ @Slot(int)
+ def setSmoothDots(self, smooth):
+ self._smooth = smooth == Qt.Checked.value
+ series = self._graph.seriesList()[0]
+ series.setMeshSmooth(self._smooth)
+
+ @Slot(int)
+ def changeTheme(self, theme):
+ currentTheme = self._graph.activeTheme()
+ currentTheme.setType(Q3DTheme.Theme(theme))
+ self.backgroundEnabledChanged.emit(currentTheme.isBackgroundEnabled())
+ self.gridEnabledChanged.emit(currentTheme.isGridEnabled())
+
+ @Slot()
+ def changePresetCamera(self):
+ camera = self._graph.scene().activeCamera()
+ camera.setCameraPreset(QAbstract3DGraph.CameraPreset(self._preset))
+
+ self._preset += 1
+ if self._preset > QAbstract3DGraph.CameraPreset.DirectlyBelow.value:
+ self._preset = QAbstract3DGraph.CameraPreset.FrontLow.value
+
+ @Slot(QAbstract3DGraph.ShadowQuality)
+ def shadowQualityUpdatedByVisual(self, sq):
+ self.shadowQualityChanged.emit(sq.value)
+
+ @Slot(int)
+ def changeShadowQuality(self, quality):
+ sq = QAbstract3DGraph.ShadowQuality(quality)
+ self._graph.setShadowQuality(sq)
+
+ @Slot(int)
+ def setBackgroundEnabled(self, enabled):
+ self._graph.activeTheme().setBackgroundEnabled(enabled == Qt.Checked.value)
+
+ @Slot(int)
+ def setGridEnabled(self, enabled):
+ self._graph.activeTheme().setGridEnabled(enabled == Qt.Checked.value)
+
+ @Slot()
+ def toggleItemCount(self):
+ if self._itemCount == NUMBER_OF_ITEMS:
+ self._itemCount = LOWER_NUMBER_OF_ITEMS
+ self._CURVE_DIVIDER = LOWER_CURVE_DIVIDER
+ else:
+ self._itemCount = NUMBER_OF_ITEMS
+ self._CURVE_DIVIDER = CURVE_DIVIDER
+
+ self._graph.seriesList()[0].dataProxy().resetArray([])
+ self.addData()
+
+ @Slot()
+ def toggleRanges(self):
+ if not self._autoAdjust:
+ self._graph.axisX().setAutoAdjustRange(True)
+ self._graph.axisZ().setAutoAdjustRange(True)
+ self._inputHandler.setDragSpeedModifier(1.5)
+ self._autoAdjust = True
+ else:
+ self._graph.axisX().setRange(-10.0, 10.0)
+ self._graph.axisZ().setRange(-10.0, 10.0)
+ self._inputHandler.setDragSpeedModifier(15.0)
+ self._autoAdjust = False
diff --git a/examples/graphs/3d/widgetgallery/scattergraph.py b/examples/graphs/3d/widgetgallery/scattergraph.py
new file mode 100644
index 000000000..79e8933eb
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/scattergraph.py
@@ -0,0 +1,121 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject, QSize, Qt
+from PySide6.QtWidgets import (QCheckBox, QComboBox, QCommandLinkButton,
+ QLabel, QHBoxLayout, QSizePolicy,
+ QVBoxLayout, QWidget, )
+from PySide6.QtQuickWidgets import QQuickWidget
+from PySide6.QtGraphs import (QAbstract3DSeries, Q3DScatter)
+
+from scatterdatamodifier import ScatterDataModifier
+
+
+class ScatterGraph(QObject):
+
+ def __init__(self, minimum_graph_size, maximum_graph_size):
+ super().__init__()
+ self._scatterGraph = Q3DScatter()
+ self._scatterWidget = QWidget()
+ hLayout = QHBoxLayout(self._scatterWidget)
+ self._scatterGraph.setMinimumSize(minimum_graph_size)
+ self._scatterGraph.setMaximumSize(maximum_graph_size)
+ self._scatterGraph.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
+ self._scatterGraph.setFocusPolicy(Qt.StrongFocus)
+ self._scatterGraph.setResizeMode(QQuickWidget.SizeRootObjectToView)
+ hLayout.addWidget(self._scatterGraph, 1)
+
+ vLayout = QVBoxLayout()
+ hLayout.addLayout(vLayout)
+
+ cameraButton = QCommandLinkButton(self._scatterWidget)
+ cameraButton.setText("Change camera preset")
+ cameraButton.setDescription("Switch between a number of preset camera positions")
+ cameraButton.setIconSize(QSize(0, 0))
+
+ itemCountButton = QCommandLinkButton(self._scatterWidget)
+ itemCountButton.setText("Toggle item count")
+ itemCountButton.setDescription("Switch between 900 and 10000 data points")
+ itemCountButton.setIconSize(QSize(0, 0))
+
+ rangeButton = QCommandLinkButton(self._scatterWidget)
+ rangeButton.setText("Toggle axis ranges")
+ rangeButton.setDescription("Switch between automatic axis ranges and preset ranges")
+ rangeButton.setIconSize(QSize(0, 0))
+
+ backgroundCheckBox = QCheckBox(self._scatterWidget)
+ backgroundCheckBox.setText("Show background")
+ backgroundCheckBox.setChecked(True)
+
+ gridCheckBox = QCheckBox(self._scatterWidget)
+ gridCheckBox.setText("Show grid")
+ gridCheckBox.setChecked(True)
+
+ smoothCheckBox = QCheckBox(self._scatterWidget)
+ smoothCheckBox.setText("Smooth dots")
+ smoothCheckBox.setChecked(True)
+
+ itemStyleList = QComboBox(self._scatterWidget)
+ itemStyleList.addItem("Sphere", QAbstract3DSeries.Mesh.Sphere)
+ itemStyleList.addItem("Cube", QAbstract3DSeries.Mesh.Cube)
+ itemStyleList.addItem("Minimal", QAbstract3DSeries.Mesh.Minimal)
+ itemStyleList.addItem("Point", QAbstract3DSeries.Mesh.Point)
+ itemStyleList.setCurrentIndex(0)
+
+ themeList = QComboBox(self._scatterWidget)
+ themeList.addItem("Qt")
+ themeList.addItem("Primary Colors")
+ themeList.addItem("Digia")
+ themeList.addItem("Stone Moss")
+ themeList.addItem("Army Blue")
+ themeList.addItem("Retro")
+ themeList.addItem("Ebony")
+ themeList.addItem("Isabelle")
+ themeList.setCurrentIndex(3)
+
+ shadowQuality = QComboBox(self._scatterWidget)
+ shadowQuality.addItem("None")
+ shadowQuality.addItem("Low")
+ shadowQuality.addItem("Medium")
+ shadowQuality.addItem("High")
+ shadowQuality.addItem("Low Soft")
+ shadowQuality.addItem("Medium Soft")
+ shadowQuality.addItem("High Soft")
+ shadowQuality.setCurrentIndex(6)
+
+ vLayout.addWidget(cameraButton)
+ vLayout.addWidget(itemCountButton)
+ vLayout.addWidget(rangeButton)
+ vLayout.addWidget(backgroundCheckBox)
+ vLayout.addWidget(gridCheckBox)
+ vLayout.addWidget(smoothCheckBox)
+ vLayout.addWidget(QLabel("Change dot style"))
+ vLayout.addWidget(itemStyleList)
+ vLayout.addWidget(QLabel("Change theme"))
+ vLayout.addWidget(themeList)
+ vLayout.addWidget(QLabel("Adjust shadow quality"))
+ vLayout.addWidget(shadowQuality, 1, Qt.AlignTop)
+
+ self._modifier = ScatterDataModifier(self._scatterGraph, self)
+
+ cameraButton.clicked.connect(self._modifier.changePresetCamera)
+ itemCountButton.clicked.connect(self._modifier.toggleItemCount)
+ rangeButton.clicked.connect(self._modifier.toggleRanges)
+
+ backgroundCheckBox.stateChanged.connect(self._modifier.setBackgroundEnabled)
+ gridCheckBox.stateChanged.connect(self._modifier.setGridEnabled)
+ smoothCheckBox.stateChanged.connect(self._modifier.setSmoothDots)
+
+ self._modifier.backgroundEnabledChanged.connect(backgroundCheckBox.setChecked)
+ self._modifier.gridEnabledChanged.connect(gridCheckBox.setChecked)
+ itemStyleList.currentIndexChanged.connect(self._modifier.changeStyle)
+
+ themeList.currentIndexChanged.connect(self._modifier.changeTheme)
+
+ shadowQuality.currentIndexChanged.connect(self._modifier.changeShadowQuality)
+
+ self._modifier.shadowQualityChanged.connect(shadowQuality.setCurrentIndex)
+ self._scatterGraph.shadowQualityChanged.connect(self._modifier.shadowQualityUpdatedByVisual)
+
+ def scatterWidget(self):
+ return self._scatterWidget
diff --git a/examples/graphs/3d/widgetgallery/surfacegraph.py b/examples/graphs/3d/widgetgallery/surfacegraph.py
new file mode 100644
index 000000000..4052da821
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/surfacegraph.py
@@ -0,0 +1,256 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from surfacegraphmodifier import SurfaceGraphModifier
+
+from PySide6.QtCore import QObject, Qt
+from PySide6.QtGui import QBrush, QIcon, QLinearGradient, QPainter, QPixmap
+from PySide6.QtWidgets import (QGroupBox, QCheckBox, QLabel, QHBoxLayout,
+ QPushButton, QRadioButton, QSizePolicy, QSlider,
+ QVBoxLayout, QWidget)
+from PySide6.QtQuickWidgets import QQuickWidget
+from PySide6.QtGraphs import Q3DSurface
+
+
+def gradientBtoYPB_Pixmap():
+ grBtoY = QLinearGradient(0, 0, 1, 100)
+ grBtoY.setColorAt(1.0, Qt.black)
+ grBtoY.setColorAt(0.67, Qt.blue)
+ grBtoY.setColorAt(0.33, Qt.red)
+ grBtoY.setColorAt(0.0, Qt.yellow)
+ pm = QPixmap(24, 100)
+ with QPainter(pm) as pmp:
+ pmp.setBrush(QBrush(grBtoY))
+ pmp.setPen(Qt.NoPen)
+ pmp.drawRect(0, 0, 24, 100)
+ return pm
+
+
+def gradientGtoRPB_Pixmap():
+ grGtoR = QLinearGradient(0, 0, 1, 100)
+ grGtoR.setColorAt(1.0, Qt.darkGreen)
+ grGtoR.setColorAt(0.5, Qt.yellow)
+ grGtoR.setColorAt(0.2, Qt.red)
+ grGtoR.setColorAt(0.0, Qt.darkRed)
+ pm = QPixmap(24, 100)
+ with QPainter(pm) as pmp:
+ pmp.setBrush(QBrush(grGtoR))
+ pmp.setPen(Qt.NoPen)
+ pmp.drawRect(0, 0, 24, 100)
+ return pm
+
+
+def highlightPixmap():
+ HEIGHT = 400
+ WIDTH = 110
+ BORDER = 10
+ gr = QLinearGradient(0, 0, 1, HEIGHT - 2 * BORDER)
+ gr.setColorAt(1.0, Qt.black)
+ gr.setColorAt(0.8, Qt.darkGreen)
+ gr.setColorAt(0.6, Qt.green)
+ gr.setColorAt(0.4, Qt.yellow)
+ gr.setColorAt(0.2, Qt.red)
+ gr.setColorAt(0.0, Qt.darkRed)
+ pmHighlight = QPixmap(WIDTH, HEIGHT)
+ pmHighlight.fill(Qt.transparent)
+ with QPainter(pmHighlight) as pmpHighlight:
+ pmpHighlight.setBrush(QBrush(gr))
+ pmpHighlight.setPen(Qt.NoPen)
+ pmpHighlight.drawRect(BORDER, BORDER, 35, HEIGHT - 2 * BORDER)
+ pmpHighlight.setPen(Qt.black)
+ step = (HEIGHT - 2 * BORDER) / 5
+ for i in range(0, 6):
+ yPos = i * step + BORDER
+ pmpHighlight.drawLine(BORDER, yPos, 55, yPos)
+ HEIGHT = 550 - (i * 110)
+ pmpHighlight.drawText(60, yPos + 2, f"{HEIGHT} m")
+ return pmHighlight
+
+
+class SurfaceGraph(QObject):
+
+ def __init__(self, minimum_graph_size, maximum_graph_size):
+ super().__init__()
+ self._surfaceGraph = Q3DSurface()
+ self._surfaceWidget = QWidget()
+ hLayout = QHBoxLayout(self._surfaceWidget)
+ self._surfaceGraph.setMinimumSize(minimum_graph_size)
+ self._surfaceGraph.setMaximumSize(maximum_graph_size)
+ self._surfaceGraph.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
+ self._surfaceGraph.setFocusPolicy(Qt.StrongFocus)
+ self._surfaceGraph.setResizeMode(QQuickWidget.SizeRootObjectToView)
+ hLayout.addWidget(self._surfaceGraph, 1)
+ vLayout = QVBoxLayout()
+ hLayout.addLayout(vLayout)
+ vLayout.setAlignment(Qt.AlignTop)
+ # Create control widgets
+ modelGroupBox = QGroupBox("Model")
+ sqrtSinModelRB = QRadioButton(self._surfaceWidget)
+ sqrtSinModelRB.setText("Sqrt and Sin")
+ sqrtSinModelRB.setChecked(False)
+ heightMapModelRB = QRadioButton(self._surfaceWidget)
+ heightMapModelRB.setText("Multiseries\nHeight Map")
+ heightMapModelRB.setChecked(False)
+ texturedModelRB = QRadioButton(self._surfaceWidget)
+ texturedModelRB.setText("Textured\nTopography")
+ texturedModelRB.setChecked(False)
+ modelVBox = QVBoxLayout()
+ modelVBox.addWidget(sqrtSinModelRB)
+ modelVBox.addWidget(heightMapModelRB)
+ modelVBox.addWidget(texturedModelRB)
+ modelGroupBox.setLayout(modelVBox)
+ selectionGroupBox = QGroupBox("Graph Selection Mode")
+ modeNoneRB = QRadioButton(self._surfaceWidget)
+ modeNoneRB.setText("No selection")
+ modeNoneRB.setChecked(False)
+ modeItemRB = QRadioButton(self._surfaceWidget)
+ modeItemRB.setText("Item")
+ modeItemRB.setChecked(False)
+ modeSliceRowRB = QRadioButton(self._surfaceWidget)
+ modeSliceRowRB.setText("Row Slice")
+ modeSliceRowRB.setChecked(False)
+ modeSliceColumnRB = QRadioButton(self._surfaceWidget)
+ modeSliceColumnRB.setText("Column Slice")
+ modeSliceColumnRB.setChecked(False)
+ selectionVBox = QVBoxLayout()
+ selectionVBox.addWidget(modeNoneRB)
+ selectionVBox.addWidget(modeItemRB)
+ selectionVBox.addWidget(modeSliceRowRB)
+ selectionVBox.addWidget(modeSliceColumnRB)
+ selectionGroupBox.setLayout(selectionVBox)
+ axisGroupBox = QGroupBox("Axis ranges")
+ axisMinSliderX = QSlider(Qt.Horizontal)
+ axisMinSliderX.setMinimum(0)
+ axisMinSliderX.setTickInterval(1)
+ axisMinSliderX.setEnabled(True)
+ axisMaxSliderX = QSlider(Qt.Horizontal)
+ axisMaxSliderX.setMinimum(1)
+ axisMaxSliderX.setTickInterval(1)
+ axisMaxSliderX.setEnabled(True)
+ axisMinSliderZ = QSlider(Qt.Horizontal)
+ axisMinSliderZ.setMinimum(0)
+ axisMinSliderZ.setTickInterval(1)
+ axisMinSliderZ.setEnabled(True)
+ axisMaxSliderZ = QSlider(Qt.Horizontal)
+ axisMaxSliderZ.setMinimum(1)
+ axisMaxSliderZ.setTickInterval(1)
+ axisMaxSliderZ.setEnabled(True)
+ axisVBox = QVBoxLayout(axisGroupBox)
+ axisVBox.addWidget(QLabel("Column range"))
+ axisVBox.addWidget(axisMinSliderX)
+ axisVBox.addWidget(axisMaxSliderX)
+ axisVBox.addWidget(QLabel("Row range"))
+ axisVBox.addWidget(axisMinSliderZ)
+ axisVBox.addWidget(axisMaxSliderZ)
+ # Mode-dependent controls
+ # sqrt-sin
+ colorGroupBox = QGroupBox("Custom gradient")
+
+ pixmap = gradientBtoYPB_Pixmap()
+ gradientBtoYPB = QPushButton(self._surfaceWidget)
+ gradientBtoYPB.setIcon(QIcon(pixmap))
+ gradientBtoYPB.setIconSize(pixmap.size())
+
+ pixmap = gradientGtoRPB_Pixmap()
+ gradientGtoRPB = QPushButton(self._surfaceWidget)
+ gradientGtoRPB.setIcon(QIcon(pixmap))
+ gradientGtoRPB.setIconSize(pixmap.size())
+
+ colorHBox = QHBoxLayout(colorGroupBox)
+ colorHBox.addWidget(gradientBtoYPB)
+ colorHBox.addWidget(gradientGtoRPB)
+ # Multiseries heightmap
+ showGroupBox = QGroupBox("Show Object")
+ showGroupBox.setVisible(False)
+ checkboxShowOilRigOne = QCheckBox("Oil Rig 1")
+ checkboxShowOilRigOne.setChecked(True)
+ checkboxShowOilRigTwo = QCheckBox("Oil Rig 2")
+ checkboxShowOilRigTwo.setChecked(True)
+ checkboxShowRefinery = QCheckBox("Refinery")
+ showVBox = QVBoxLayout()
+ showVBox.addWidget(checkboxShowOilRigOne)
+ showVBox.addWidget(checkboxShowOilRigTwo)
+ showVBox.addWidget(checkboxShowRefinery)
+ showGroupBox.setLayout(showVBox)
+ visualsGroupBox = QGroupBox("Visuals")
+ visualsGroupBox.setVisible(False)
+ checkboxVisualsSeeThrough = QCheckBox("See-Through")
+ checkboxHighlightOil = QCheckBox("Highlight Oil")
+ checkboxShowShadows = QCheckBox("Shadows")
+ checkboxShowShadows.setChecked(True)
+ visualVBox = QVBoxLayout(visualsGroupBox)
+ visualVBox.addWidget(checkboxVisualsSeeThrough)
+ visualVBox.addWidget(checkboxHighlightOil)
+ visualVBox.addWidget(checkboxShowShadows)
+ labelSelection = QLabel("Selection:")
+ labelSelection.setVisible(False)
+ labelSelectedItem = QLabel("Nothing")
+ labelSelectedItem.setVisible(False)
+ # Textured topography heightmap
+ enableTexture = QCheckBox("Surface texture")
+ enableTexture.setVisible(False)
+
+ label = QLabel(self._surfaceWidget)
+ label.setPixmap(highlightPixmap())
+ heightMapGroupBox = QGroupBox("Highlight color map")
+ colorMapVBox = QVBoxLayout()
+ colorMapVBox.addWidget(label)
+ heightMapGroupBox.setLayout(colorMapVBox)
+ heightMapGroupBox.setVisible(False)
+ # Populate vertical layout
+ # Common
+ vLayout.addWidget(modelGroupBox)
+ vLayout.addWidget(selectionGroupBox)
+ vLayout.addWidget(axisGroupBox)
+ # Sqrt Sin
+ vLayout.addWidget(colorGroupBox)
+ # Multiseries heightmap
+ vLayout.addWidget(showGroupBox)
+ vLayout.addWidget(visualsGroupBox)
+ vLayout.addWidget(labelSelection)
+ vLayout.addWidget(labelSelectedItem)
+ # Textured topography
+ vLayout.addWidget(heightMapGroupBox)
+ vLayout.addWidget(enableTexture)
+ # Create the controller
+ modifier = SurfaceGraphModifier(self._surfaceGraph, labelSelectedItem, self)
+ # Connect widget controls to controller
+ heightMapModelRB.toggled.connect(modifier.enableHeightMapModel)
+ sqrtSinModelRB.toggled.connect(modifier.enableSqrtSinModel)
+ texturedModelRB.toggled.connect(modifier.enableTopographyModel)
+ modeNoneRB.toggled.connect(modifier.toggleModeNone)
+ modeItemRB.toggled.connect(modifier.toggleModeItem)
+ modeSliceRowRB.toggled.connect(modifier.toggleModeSliceRow)
+ modeSliceColumnRB.toggled.connect(modifier.toggleModeSliceColumn)
+ axisMinSliderX.valueChanged.connect(modifier.adjustXMin)
+ axisMaxSliderX.valueChanged.connect(modifier.adjustXMax)
+ axisMinSliderZ.valueChanged.connect(modifier.adjustZMin)
+ axisMaxSliderZ.valueChanged.connect(modifier.adjustZMax)
+ # Mode dependent connections
+ gradientBtoYPB.pressed.connect(modifier.setBlackToYellowGradient)
+ gradientGtoRPB.pressed.connect(modifier.setGreenToRedGradient)
+ checkboxShowOilRigOne.stateChanged.connect(modifier.toggleItemOne)
+ checkboxShowOilRigTwo.stateChanged.connect(modifier.toggleItemTwo)
+ checkboxShowRefinery.stateChanged.connect(modifier.toggleItemThree)
+ checkboxVisualsSeeThrough.stateChanged.connect(modifier.toggleSeeThrough)
+ checkboxHighlightOil.stateChanged.connect(modifier.toggleOilHighlight)
+ checkboxShowShadows.stateChanged.connect(modifier.toggleShadows)
+ enableTexture.stateChanged.connect(modifier.toggleSurfaceTexture)
+ # Connections to disable features depending on mode
+ sqrtSinModelRB.toggled.connect(colorGroupBox.setVisible)
+ heightMapModelRB.toggled.connect(showGroupBox.setVisible)
+ heightMapModelRB.toggled.connect(visualsGroupBox.setVisible)
+ heightMapModelRB.toggled.connect(labelSelection.setVisible)
+ heightMapModelRB.toggled.connect(labelSelectedItem.setVisible)
+ texturedModelRB.toggled.connect(enableTexture.setVisible)
+ texturedModelRB.toggled.connect(heightMapGroupBox.setVisible)
+ modifier.setAxisMinSliderX(axisMinSliderX)
+ modifier.setAxisMaxSliderX(axisMaxSliderX)
+ modifier.setAxisMinSliderZ(axisMinSliderZ)
+ modifier.setAxisMaxSliderZ(axisMaxSliderZ)
+ sqrtSinModelRB.setChecked(True)
+ modeItemRB.setChecked(True)
+ enableTexture.setChecked(True)
+
+ def surfaceWidget(self):
+ return self._surfaceWidget
diff --git a/examples/graphs/3d/widgetgallery/surfacegraphmodifier.py b/examples/graphs/3d/widgetgallery/surfacegraphmodifier.py
new file mode 100644
index 000000000..b2706c6fa
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/surfacegraphmodifier.py
@@ -0,0 +1,641 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import os
+from math import sqrt, sin
+from pathlib import Path
+
+from PySide6.QtCore import QObject, QPropertyAnimation, Qt, Slot
+from PySide6.QtGui import (QColor, QFont, QImage, QLinearGradient,
+ QQuaternion, QVector3D)
+from PySide6.QtGraphs import (QAbstract3DGraph, QCustom3DItem,
+ QCustom3DLabel, QHeightMapSurfaceDataProxy,
+ QValue3DAxis, QSurfaceDataItem,
+ QSurfaceDataProxy, QSurface3DSeries,
+ Q3DInputHandler, Q3DTheme)
+
+
+from highlightseries import HighlightSeries
+from topographicseries import TopographicSeries
+from custominputhandler import CustomInputHandler
+
+
+SAMPLE_COUNT_X = 150
+SAMPLE_COUNT_Z = 150
+HEIGHTMAP_GRID_STEP_X = 6
+HEIGHTMAP_GRID_STEP_Z = 6
+SAMPLE_MIN = -8.0
+SAMPLE_MAX = 8.0
+
+AREA_WIDTH = 8000.0
+AREA_HEIGHT = 8000.0
+ASPECT_RATIO = 0.1389
+MIN_RANGE = AREA_WIDTH * 0.49
+
+
+class SurfaceGraphModifier(QObject):
+
+ def __init__(self, surface, label, parent):
+ super().__init__(parent)
+ self._data_path = Path(__file__).resolve().parent / "data"
+ self._graph = surface
+ self._textField = label
+ self._sqrtSinProxy = None
+ self._sqrtSinSeries = None
+ self._heightMapProxyOne = None
+ self._heightMapProxyTwo = None
+ self._heightMapProxyThree = None
+ self._heightMapSeriesOne = None
+ self._heightMapSeriesTwo = None
+ self._heightMapSeriesThree = None
+
+ self._axisMinSliderX = None
+ self._axisMaxSliderX = None
+ self._axisMinSliderZ = None
+ self._axisMaxSliderZ = None
+ self._rangeMinX = 0.0
+ self._rangeMinZ = 0.0
+ self._stepX = 0.0
+ self._stepZ = 0.0
+ self._heightMapWidth = 0
+ self._heightMapHeight = 0
+
+ self._selectionAnimation = None
+ self._titleLabel = None
+ self._previouslyAnimatedItem = None
+ self._previousScaling = {}
+
+ self._topography = None
+ self._highlight = None
+ self._highlightWidth = 0
+ self._highlightHeight = 0
+
+ self._customInputHandler = None
+ self._defaultInputHandler = Q3DInputHandler()
+
+ self._graph.setCameraZoomLevel(85.0)
+ self._graph.setCameraPreset(QAbstract3DGraph.CameraPreset.IsometricRight)
+ self._graph.activeTheme().setType(Q3DTheme.Theme.Retro)
+
+ self._x_axis = QValue3DAxis()
+ self._y_axis = QValue3DAxis()
+ self._z_axis = QValue3DAxis()
+ self._graph.setAxisX(self._x_axis)
+ self._graph.setAxisY(self._y_axis)
+ self._graph.setAxisZ(self._z_axis)
+
+ #
+ # Sqrt Sin
+ #
+ self._sqrtSinProxy = QSurfaceDataProxy()
+ self._sqrtSinSeries = QSurface3DSeries(self._sqrtSinProxy)
+ self.fillSqrtSinProxy()
+
+ #
+ # Multisurface heightmap
+ #
+ # Create the first surface layer
+ heightMapImageOne = QImage(self._data_path / "layer_1.png")
+ self._heightMapProxyOne = QHeightMapSurfaceDataProxy(heightMapImageOne)
+ self._heightMapSeriesOne = QSurface3DSeries(self._heightMapProxyOne)
+ self._heightMapSeriesOne.setItemLabelFormat("(@xLabel, @zLabel): @yLabel")
+ self._heightMapProxyOne.setValueRanges(34.0, 40.0, 18.0, 24.0)
+
+ # Create the other 2 surface layers
+ heightMapImageTwo = QImage(self._data_path / "layer_2.png")
+ self._heightMapProxyTwo = QHeightMapSurfaceDataProxy(heightMapImageTwo)
+ self._heightMapSeriesTwo = QSurface3DSeries(self._heightMapProxyTwo)
+ self._heightMapSeriesTwo.setItemLabelFormat("(@xLabel, @zLabel): @yLabel")
+ self._heightMapProxyTwo.setValueRanges(34.0, 40.0, 18.0, 24.0)
+
+ heightMapImageThree = QImage(self._data_path / "layer_3.png")
+ self._heightMapProxyThree = QHeightMapSurfaceDataProxy(heightMapImageThree)
+ self._heightMapSeriesThree = QSurface3DSeries(self._heightMapProxyThree)
+ self._heightMapSeriesThree.setItemLabelFormat("(@xLabel, @zLabel): @yLabel")
+ self._heightMapProxyThree.setValueRanges(34.0, 40.0, 18.0, 24.0)
+
+ # The images are the same size, so it's enough to get the dimensions
+ # from one
+ self._heightMapWidth = heightMapImageOne.width()
+ self._heightMapHeight = heightMapImageOne.height()
+
+ # Set the gradients for multi-surface layers
+ grOne = QLinearGradient()
+ grOne.setColorAt(0.0, Qt.black)
+ grOne.setColorAt(0.38, Qt.darkYellow)
+ grOne.setColorAt(0.39, Qt.darkGreen)
+ grOne.setColorAt(0.5, Qt.darkGray)
+ grOne.setColorAt(1.0, Qt.gray)
+ self._heightMapSeriesOne.setBaseGradient(grOne)
+ self._heightMapSeriesOne.setColorStyle(Q3DTheme.ColorStyle.RangeGradient)
+
+ grTwo = QLinearGradient()
+ grTwo.setColorAt(0.39, Qt.blue)
+ grTwo.setColorAt(0.4, Qt.white)
+ self._heightMapSeriesTwo.setBaseGradient(grTwo)
+ self._heightMapSeriesTwo.setColorStyle(Q3DTheme.ColorStyle.RangeGradient)
+
+ grThree = QLinearGradient()
+ grThree.setColorAt(0.0, Qt.white)
+ grThree.setColorAt(0.05, Qt.black)
+ self._heightMapSeriesThree.setBaseGradient(grThree)
+ self._heightMapSeriesThree.setColorStyle(Q3DTheme.ColorStyle.RangeGradient)
+
+ # Custom items and label
+ self._graph.selectedElementChanged.connect(self.handleElementSelected)
+
+ self._selectionAnimation = QPropertyAnimation(self)
+ self._selectionAnimation.setPropertyName(b"scaling")
+ self._selectionAnimation.setDuration(500)
+ self._selectionAnimation.setLoopCount(-1)
+
+ titleFont = QFont("Century Gothic", 30)
+ titleFont.setBold(True)
+ self._titleLabel = QCustom3DLabel("Oil Rigs on Imaginary Sea", titleFont,
+ QVector3D(0.0, 1.2, 0.0),
+ QVector3D(1.0, 1.0, 0.0),
+ QQuaternion())
+ self._titleLabel.setPositionAbsolute(True)
+ self._titleLabel.setFacingCamera(True)
+ self._titleLabel.setBackgroundColor(QColor(0x66cdaa))
+ self._graph.addCustomItem(self._titleLabel)
+ self._titleLabel.setVisible(False)
+
+ # Make two of the custom object visible
+ self.toggleItemOne(True)
+ self.toggleItemTwo(True)
+
+ #
+ # Topographic map
+ #
+ self._topography = TopographicSeries()
+ file_name = os.fspath(self._data_path / "topography.png")
+ self._topography.setTopographyFile(file_name, AREA_WIDTH, AREA_HEIGHT)
+ self._topography.setItemLabelFormat("@yLabel m")
+
+ self._highlight = HighlightSeries()
+ self._highlight.setTopographicSeries(self._topography)
+ self._highlight.setMinHeight(MIN_RANGE * ASPECT_RATIO)
+ self._highlight.handleGradientChange(AREA_WIDTH * ASPECT_RATIO)
+ self._graph.axisY().maxChanged.connect(self._highlight.handleGradientChange)
+
+ self._customInputHandler = CustomInputHandler(self._graph)
+ self._customInputHandler.setHighlightSeries(self._highlight)
+ self._customInputHandler.setAxes(self._x_axis, self._y_axis, self._z_axis)
+ self._customInputHandler.setLimits(0.0, AREA_WIDTH, MIN_RANGE)
+ self._customInputHandler.setAspectRatio(ASPECT_RATIO)
+
+ def fillSqrtSinProxy(self):
+ stepX = (SAMPLE_MAX - SAMPLE_MIN) / float(SAMPLE_COUNT_X - 1)
+ stepZ = (SAMPLE_MAX - SAMPLE_MIN) / float(SAMPLE_COUNT_Z - 1)
+
+ dataArray = []
+ for i in range(0, SAMPLE_COUNT_Z):
+ newRow = []
+ # Keep values within range bounds, since just adding step can
+ # cause minor drift due to the rounding errors.
+ z = min(SAMPLE_MAX, (i * stepZ + SAMPLE_MIN))
+ for j in range(0, SAMPLE_COUNT_X):
+ x = min(SAMPLE_MAX, (j * stepX + SAMPLE_MIN))
+ R = sqrt(z * z + x * x) + 0.01
+ y = (sin(R) / R + 0.24) * 1.61
+ item = QSurfaceDataItem(QVector3D(x, y, z))
+ newRow.append(item)
+ dataArray.append(newRow)
+ self._sqrtSinProxy.resetArray(dataArray)
+
+ @Slot(bool)
+ def enableSqrtSinModel(self, enable):
+ if enable:
+ self._sqrtSinSeries.setDrawMode(QSurface3DSeries.DrawSurfaceAndWireframe)
+ self._sqrtSinSeries.setFlatShadingEnabled(True)
+
+ self._graph.axisX().setLabelFormat("%.2f")
+ self._graph.axisZ().setLabelFormat("%.2f")
+ self._graph.axisX().setRange(SAMPLE_MIN, SAMPLE_MAX)
+ self._graph.axisY().setRange(0.0, 2.0)
+ self._graph.axisZ().setRange(SAMPLE_MIN, SAMPLE_MAX)
+ self._graph.axisX().setLabelAutoRotation(30.0)
+ self._graph.axisY().setLabelAutoRotation(90.0)
+ self._graph.axisZ().setLabelAutoRotation(30.0)
+
+ self._graph.removeSeries(self._heightMapSeriesOne)
+ self._graph.removeSeries(self._heightMapSeriesTwo)
+ self._graph.removeSeries(self._heightMapSeriesThree)
+ self._graph.removeSeries(self._topography)
+ self._graph.removeSeries(self._highlight)
+
+ self._graph.addSeries(self._sqrtSinSeries)
+
+ self._titleLabel.setVisible(False)
+ self._graph.axisX().setTitleVisible(False)
+ self._graph.axisY().setTitleVisible(False)
+ self._graph.axisZ().setTitleVisible(False)
+
+ self._graph.axisX().setTitle("")
+ self._graph.axisY().setTitle("")
+ self._graph.axisZ().setTitle("")
+
+ self._graph.setActiveInputHandler(self._defaultInputHandler)
+
+ # Reset range sliders for Sqrt & Sin
+ self._rangeMinX = SAMPLE_MIN
+ self._rangeMinZ = SAMPLE_MIN
+ self._stepX = (SAMPLE_MAX - SAMPLE_MIN) / float(SAMPLE_COUNT_X - 1)
+ self._stepZ = (SAMPLE_MAX - SAMPLE_MIN) / float(SAMPLE_COUNT_Z - 1)
+ self._axisMinSliderX.setMinimum(0)
+ self._axisMinSliderX.setMaximum(SAMPLE_COUNT_X - 2)
+ self._axisMinSliderX.setValue(0)
+ self._axisMaxSliderX.setMinimum(1)
+ self._axisMaxSliderX.setMaximum(SAMPLE_COUNT_X - 1)
+ self._axisMaxSliderX.setValue(SAMPLE_COUNT_X - 1)
+ self._axisMinSliderZ.setMinimum(0)
+ self._axisMinSliderZ.setMaximum(SAMPLE_COUNT_Z - 2)
+ self._axisMinSliderZ.setValue(0)
+ self._axisMaxSliderZ.setMinimum(1)
+ self._axisMaxSliderZ.setMaximum(SAMPLE_COUNT_Z - 1)
+ self._axisMaxSliderZ.setValue(SAMPLE_COUNT_Z - 1)
+
+ @Slot(bool)
+ def enableHeightMapModel(self, enable):
+ if enable:
+ self._heightMapSeriesOne.setDrawMode(QSurface3DSeries.DrawSurface)
+ self._heightMapSeriesOne.setFlatShadingEnabled(False)
+ self._heightMapSeriesTwo.setDrawMode(QSurface3DSeries.DrawSurface)
+ self._heightMapSeriesTwo.setFlatShadingEnabled(False)
+ self._heightMapSeriesThree.setDrawMode(QSurface3DSeries.DrawSurface)
+ self._heightMapSeriesThree.setFlatShadingEnabled(False)
+
+ self._graph.axisX().setLabelFormat("%.1f N")
+ self._graph.axisZ().setLabelFormat("%.1f E")
+ self._graph.axisX().setRange(34.0, 40.0)
+ self._graph.axisY().setAutoAdjustRange(True)
+ self._graph.axisZ().setRange(18.0, 24.0)
+
+ self._graph.axisX().setTitle("Latitude")
+ self._graph.axisY().setTitle("Height")
+ self._graph.axisZ().setTitle("Longitude")
+
+ self._graph.removeSeries(self._sqrtSinSeries)
+ self._graph.removeSeries(self._topography)
+ self._graph.removeSeries(self._highlight)
+ self._graph.addSeries(self._heightMapSeriesOne)
+ self._graph.addSeries(self._heightMapSeriesTwo)
+ self._graph.addSeries(self._heightMapSeriesThree)
+
+ self._graph.setActiveInputHandler(self._defaultInputHandler)
+
+ self._titleLabel.setVisible(True)
+ self._graph.axisX().setTitleVisible(True)
+ self._graph.axisY().setTitleVisible(True)
+ self._graph.axisZ().setTitleVisible(True)
+
+ # Reset range sliders for height map
+ mapGridCountX = self._heightMapWidth / HEIGHTMAP_GRID_STEP_X
+ mapGridCountZ = self._heightMapHeight / HEIGHTMAP_GRID_STEP_Z
+ self._rangeMinX = 34.0
+ self._rangeMinZ = 18.0
+ self._stepX = 6.0 / float(mapGridCountX - 1)
+ self._stepZ = 6.0 / float(mapGridCountZ - 1)
+ self._axisMinSliderX.setMinimum(0)
+ self._axisMinSliderX.setMaximum(mapGridCountX - 2)
+ self._axisMinSliderX.setValue(0)
+ self._axisMaxSliderX.setMinimum(1)
+ self._axisMaxSliderX.setMaximum(mapGridCountX - 1)
+ self._axisMaxSliderX.setValue(mapGridCountX - 1)
+ self._axisMinSliderZ.setMinimum(0)
+ self._axisMinSliderZ.setMaximum(mapGridCountZ - 2)
+ self._axisMinSliderZ.setValue(0)
+ self._axisMaxSliderZ.setMinimum(1)
+ self._axisMaxSliderZ.setMaximum(mapGridCountZ - 1)
+ self._axisMaxSliderZ.setValue(mapGridCountZ - 1)
+
+ @Slot(bool)
+ def enableTopographyModel(self, enable):
+ if enable:
+ self._graph.axisX().setLabelFormat("%i")
+ self._graph.axisZ().setLabelFormat("%i")
+ self._graph.axisX().setRange(0.0, AREA_WIDTH)
+ self._graph.axisY().setRange(100.0, AREA_WIDTH * ASPECT_RATIO)
+ self._graph.axisZ().setRange(0.0, AREA_HEIGHT)
+ self._graph.axisX().setLabelAutoRotation(30.0)
+ self._graph.axisY().setLabelAutoRotation(90.0)
+ self._graph.axisZ().setLabelAutoRotation(30.0)
+
+ self._graph.removeSeries(self._heightMapSeriesOne)
+ self._graph.removeSeries(self._heightMapSeriesTwo)
+ self._graph.removeSeries(self._heightMapSeriesThree)
+ self._graph.addSeries(self._topography)
+ self._graph.addSeries(self._highlight)
+
+ self._titleLabel.setVisible(False)
+ self._graph.axisX().setTitleVisible(False)
+ self._graph.axisY().setTitleVisible(False)
+ self._graph.axisZ().setTitleVisible(False)
+
+ self._graph.axisX().setTitle("")
+ self._graph.axisY().setTitle("")
+ self._graph.axisZ().setTitle("")
+
+ self._graph.setActiveInputHandler(self._customInputHandler)
+
+ # Reset range sliders for topography map
+ self._rangeMinX = 0.0
+ self._rangeMinZ = 0.0
+ self._stepX = 1.0
+ self._stepZ = 1.0
+ self._axisMinSliderX.setMinimum(0)
+ self._axisMinSliderX.setMaximum(AREA_WIDTH - 200)
+ self._axisMinSliderX.setValue(0)
+ self._axisMaxSliderX.setMinimum(200)
+ self._axisMaxSliderX.setMaximum(AREA_WIDTH)
+ self._axisMaxSliderX.setValue(AREA_WIDTH)
+ self._axisMinSliderZ.setMinimum(0)
+ self._axisMinSliderZ.setMaximum(AREA_HEIGHT - 200)
+ self._axisMinSliderZ.setValue(0)
+ self._axisMaxSliderZ.setMinimum(200)
+ self._axisMaxSliderZ.setMaximum(AREA_HEIGHT)
+ self._axisMaxSliderZ.setValue(AREA_HEIGHT)
+
+ def adjustXMin(self, min):
+ minX = self._stepX * float(min) + self._rangeMinX
+
+ max = self._axisMaxSliderX.value()
+ if min >= max:
+ max = min + 1
+ self._axisMaxSliderX.setValue(max)
+
+ maxX = self._stepX * max + self._rangeMinX
+
+ self.setAxisXRange(minX, maxX)
+
+ def adjustXMax(self, max):
+ maxX = self._stepX * float(max) + self._rangeMinX
+
+ min = self._axisMinSliderX.value()
+ if max <= min:
+ min = max - 1
+ self._axisMinSliderX.setValue(min)
+
+ minX = self._stepX * min + self._rangeMinX
+
+ self.setAxisXRange(minX, maxX)
+
+ def adjustZMin(self, min):
+ minZ = self._stepZ * float(min) + self._rangeMinZ
+
+ max = self._axisMaxSliderZ.value()
+ if min >= max:
+ max = min + 1
+ self._axisMaxSliderZ.setValue(max)
+
+ maxZ = self._stepZ * max + self._rangeMinZ
+
+ self.setAxisZRange(minZ, maxZ)
+
+ def adjustZMax(self, max):
+ maxX = self._stepZ * float(max) + self._rangeMinZ
+
+ min = self._axisMinSliderZ.value()
+ if max <= min:
+ min = max - 1
+ self._axisMinSliderZ.setValue(min)
+
+ minX = self._stepZ * min + self._rangeMinZ
+
+ self.setAxisZRange(minX, maxX)
+
+ def setAxisXRange(self, min, max):
+ self._graph.axisX().setRange(min, max)
+
+ def setAxisZRange(self, min, max):
+ self._graph.axisZ().setRange(min, max)
+
+ def setBlackToYellowGradient(self):
+ gr = QLinearGradient()
+ gr.setColorAt(0.0, Qt.black)
+ gr.setColorAt(0.33, Qt.blue)
+ gr.setColorAt(0.67, Qt.red)
+ gr.setColorAt(1.0, Qt.yellow)
+
+ self._sqrtSinSeries.setBaseGradient(gr)
+ self._sqrtSinSeries.setColorStyle(Q3DTheme.ColorStyle.RangeGradient)
+
+ def setGreenToRedGradient(self):
+ gr = QLinearGradient()
+ gr.setColorAt(0.0, Qt.darkGreen)
+ gr.setColorAt(0.5, Qt.yellow)
+ gr.setColorAt(0.8, Qt.red)
+ gr.setColorAt(1.0, Qt.darkRed)
+
+ self._sqrtSinSeries.setBaseGradient(gr)
+ self._sqrtSinSeries.setColorStyle(Q3DTheme.ColorStyle.RangeGradient)
+
+ @Slot(bool)
+ def toggleItemOne(self, show):
+ positionOne = QVector3D(39.0, 77.0, 19.2)
+ positionOnePipe = QVector3D(39.0, 45.0, 19.2)
+ positionOneLabel = QVector3D(39.0, 107.0, 19.2)
+ if show:
+ color = QImage(2, 2, QImage.Format_RGB32)
+ color.fill(Qt.red)
+ file_name = os.fspath(self._data_path / "oilrig.mesh")
+ item = QCustom3DItem(file_name, positionOne,
+ QVector3D(0.025, 0.025, 0.025),
+ QQuaternion.fromAxisAndAngle(0.0, 1.0, 0.0, 45.0),
+ color)
+ self._graph.addCustomItem(item)
+ file_name = os.fspath(self._data_path / "pipe.mesh")
+ item = QCustom3DItem(file_name, positionOnePipe,
+ QVector3D(0.005, 0.5, 0.005), QQuaternion(),
+ color)
+ item.setShadowCasting(False)
+ self._graph.addCustomItem(item)
+
+ label = QCustom3DLabel()
+ label.setText("Oil Rig One")
+ label.setPosition(positionOneLabel)
+ label.setScaling(QVector3D(1.0, 1.0, 1.0))
+ self._graph.addCustomItem(label)
+ else:
+ self.resetSelection()
+ self._graph.removeCustomItemAt(positionOne)
+ self._graph.removeCustomItemAt(positionOnePipe)
+ self._graph.removeCustomItemAt(positionOneLabel)
+
+ @Slot(bool)
+ def toggleItemTwo(self, show):
+ positionTwo = QVector3D(34.5, 77.0, 23.4)
+ positionTwoPipe = QVector3D(34.5, 45.0, 23.4)
+ positionTwoLabel = QVector3D(34.5, 107.0, 23.4)
+ if show:
+ color = QImage(2, 2, QImage.Format_RGB32)
+ color.fill(Qt.red)
+ item = QCustom3DItem()
+ file_name = os.fspath(self._data_path / "oilrig.mesh")
+ item.setMeshFile(file_name)
+ item.setPosition(positionTwo)
+ item.setScaling(QVector3D(0.025, 0.025, 0.025))
+ item.setRotation(QQuaternion.fromAxisAndAngle(0.0, 1.0, 0.0, 25.0))
+ item.setTextureImage(color)
+ self._graph.addCustomItem(item)
+ file_name = os.fspath(self._data_path / "pipe.mesh")
+ item = QCustom3DItem(file_name, positionTwoPipe,
+ QVector3D(0.005, 0.5, 0.005), QQuaternion(),
+ color)
+ item.setShadowCasting(False)
+ self._graph.addCustomItem(item)
+
+ label = QCustom3DLabel()
+ label.setText("Oil Rig Two")
+ label.setPosition(positionTwoLabel)
+ label.setScaling(QVector3D(1.0, 1.0, 1.0))
+ self._graph.addCustomItem(label)
+ else:
+ self.resetSelection()
+ self._graph.removeCustomItemAt(positionTwo)
+ self._graph.removeCustomItemAt(positionTwoPipe)
+ self._graph.removeCustomItemAt(positionTwoLabel)
+
+ @Slot(bool)
+ def toggleItemThree(self, show):
+ positionThree = QVector3D(34.5, 86.0, 19.1)
+ positionThreeLabel = QVector3D(34.5, 116.0, 19.1)
+ if show:
+ color = QImage(2, 2, QImage.Format_RGB32)
+ color.fill(Qt.darkMagenta)
+ item = QCustom3DItem()
+ file_name = os.fspath(self._data_path / "refinery.mesh")
+ item.setMeshFile(file_name)
+ item.setPosition(positionThree)
+ item.setScaling(QVector3D(0.04, 0.04, 0.04))
+ item.setRotation(QQuaternion.fromAxisAndAngle(0.0, 1.0, 0.0, 75.0))
+ item.setTextureImage(color)
+ self._graph.addCustomItem(item)
+
+ label = QCustom3DLabel()
+ label.setText("Refinery")
+ label.setPosition(positionThreeLabel)
+ label.setScaling(QVector3D(1.0, 1.0, 1.0))
+ self._graph.addCustomItem(label)
+ else:
+ self.resetSelection()
+ self._graph.removeCustomItemAt(positionThree)
+ self._graph.removeCustomItemAt(positionThreeLabel)
+
+ @Slot(bool)
+ def toggleSeeThrough(self, seethrough):
+ s0 = self._graph.seriesList()[0]
+ s1 = self._graph.seriesList()[1]
+ if seethrough:
+ s0.setDrawMode(QSurface3DSeries.DrawWireframe)
+ s1.setDrawMode(QSurface3DSeries.DrawWireframe)
+ else:
+ s0.setDrawMode(QSurface3DSeries.DrawSurface)
+ s1.setDrawMode(QSurface3DSeries.DrawSurface)
+
+ @Slot(bool)
+ def toggleOilHighlight(self, highlight):
+ s2 = self._graph.seriesList()[2]
+ if highlight:
+ grThree = QLinearGradient()
+ grThree.setColorAt(0.0, Qt.black)
+ grThree.setColorAt(0.05, Qt.red)
+ s2.setBaseGradient(grThree)
+ else:
+ grThree = QLinearGradient()
+ grThree.setColorAt(0.0, Qt.white)
+ grThree.setColorAt(0.05, Qt.black)
+ s2.setBaseGradient(grThree)
+
+ @Slot(bool)
+ def toggleShadows(self, shadows):
+ sq = (QAbstract3DGraph.ShadowQualityMedium
+ if shadows else QAbstract3DGraph.ShadowQualityNone)
+ self._graph.setShadowQuality(sq)
+
+ @Slot(bool)
+ def toggleSurfaceTexture(self, enable):
+ if enable:
+ file_name = os.fspath(self._data_path / "maptexture.jpg")
+ self._topography.setTextureFile(file_name)
+ else:
+ self._topography.setTextureFile("")
+
+ def handleElementSelected(self, type):
+ self.resetSelection()
+ if type == QAbstract3DGraph.ElementCustomItem:
+ item = self._graph.selectedCustomItem()
+ text = ""
+ if isinstance(item, QCustom3DItem):
+ text += "Custom label: "
+ else:
+ file = item.meshFile().split("/")[-1]
+ text += f"{file}: "
+
+ text += str(self._graph.selectedCustomItemIndex())
+ self._textField.setText(text)
+ self._previouslyAnimatedItem = item
+ self._previousScaling = item.scaling()
+ self._selectionAnimation.setTargetObject(item)
+ self._selectionAnimation.setStartValue(item.scaling())
+ self._selectionAnimation.setEndValue(item.scaling() * 1.5)
+ self._selectionAnimation.start()
+ elif type == QAbstract3DGraph.ElementSeries:
+ text = "Surface ("
+ series = self._graph.selectedSeries()
+ if series:
+ point = series.selectedPoint()
+ text += f"{point.x()}, {point.y()}"
+ text += ")"
+ self._textField.setText(text)
+ elif (type.value > QAbstract3DGraph.ElementSeries.value
+ and type < QAbstract3DGraph.ElementCustomItem.value):
+ index = self._graph.selectedLabelIndex()
+ text = ""
+ if type == QAbstract3DGraph.ElementAxisXLabel:
+ text += "Axis X label: "
+ elif type == QAbstract3DGraph.ElementAxisYLabel:
+ text += "Axis Y label: "
+ else:
+ text += "Axis Z label: "
+ text += str(index)
+ self._textField.setText(text)
+ else:
+ self._textField.setText("Nothing")
+
+ def resetSelection(self):
+ self._selectionAnimation.stop()
+ if self._previouslyAnimatedItem:
+ self._previouslyAnimatedItem.setScaling(self._previousScaling)
+ self._previouslyAnimatedItem = None
+
+ def toggleModeNone(self):
+ self._graph.setSelectionMode(QAbstract3DGraph.SelectionNone)
+
+ def toggleModeItem(self):
+ self._graph.setSelectionMode(QAbstract3DGraph.SelectionItem)
+
+ def toggleModeSliceRow(self):
+ sm = (QAbstract3DGraph.SelectionItemAndRow
+ | QAbstract3DGraph.SelectionSlice
+ | QAbstract3DGraph.SelectionMultiSeries)
+ self._graph.setSelectionMode(sm)
+
+ def toggleModeSliceColumn(self):
+ sm = (QAbstract3DGraph.SelectionItemAndColumn
+ | QAbstract3DGraph.SelectionSlice
+ | QAbstract3DGraph.SelectionMultiSeries)
+ self._graph.setSelectionMode(sm)
+
+ def setAxisMinSliderX(self, slider):
+ self._axisMinSliderX = slider
+
+ def setAxisMaxSliderX(self, slider):
+ self._axisMaxSliderX = slider
+
+ def setAxisMinSliderZ(self, slider):
+ self._axisMinSliderZ = slider
+
+ def setAxisMaxSliderZ(self, slider):
+ self._axisMaxSliderZ = slider
diff --git a/examples/graphs/3d/widgetgallery/topographicseries.py b/examples/graphs/3d/widgetgallery/topographicseries.py
new file mode 100644
index 000000000..4f286a222
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/topographicseries.py
@@ -0,0 +1,57 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import Qt
+from PySide6.QtGui import QImage, QVector3D
+from PySide6.QtGraphs import (QSurface3DSeries, QSurfaceDataItem)
+
+
+# Value used to encode height data as RGB value on PNG file
+PACKING_FACTOR = 11983.0
+
+
+class TopographicSeries(QSurface3DSeries):
+
+ def __init__(self):
+ super().__init__()
+ self._sampleCountX = 0.0
+ self._sampleCountZ = 0.0
+ self.setDrawMode(QSurface3DSeries.DrawSurface)
+ self.setFlatShadingEnabled(True)
+ self.setBaseColor(Qt.white)
+
+ def sampleCountX(self):
+ return self._sampleCountX
+
+ def sampleCountZ(self):
+ return self._sampleCountZ
+
+ def setTopographyFile(self, file, width, height):
+ heightMapImage = QImage(file)
+ bits = heightMapImage.bits()
+ imageHeight = heightMapImage.height()
+ imageWidth = heightMapImage.width()
+ widthBits = imageWidth * 4
+ stepX = width / float(imageWidth)
+ stepZ = height / float(imageHeight)
+
+ dataArray = []
+ for i in range(0, imageHeight):
+ p = i * widthBits
+ z = height - float(i) * stepZ
+ newRow = []
+ for j in range(0, imageWidth):
+ aa = bits[p + 0]
+ rr = bits[p + 1]
+ gg = bits[p + 2]
+ color = (gg << 16) + (rr << 8) + aa
+ y = float(color) / PACKING_FACTOR
+ item = QSurfaceDataItem(QVector3D(float(j) * stepX, y, z))
+ newRow.append(item)
+ p += 4
+ dataArray.append(newRow)
+
+ self.dataProxy().resetArray(dataArray)
+
+ self._sampleCountX = float(imageWidth)
+ self._sampleCountZ = float(imageHeight)
diff --git a/examples/graphs/3d/widgetgallery/variantbardatamapping.py b/examples/graphs/3d/widgetgallery/variantbardatamapping.py
new file mode 100644
index 000000000..50bdefa6a
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/variantbardatamapping.py
@@ -0,0 +1,67 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject, Signal
+
+
+class VariantBarDataMapping(QObject):
+
+ rowIndexChanged = Signal()
+ columnIndexChanged = Signal()
+ valueIndexChanged = Signal()
+ rowCategoriesChanged = Signal()
+ columnCategoriesChanged = Signal()
+ mappingChanged = Signal()
+
+ def __init__(self, rowIndex, columnIndex, valueIndex,
+ rowCategories=[], columnCategories=[]):
+ super().__init__(None)
+ self._rowIndex = rowIndex
+ self._columnIndex = columnIndex
+ self._valueIndex = valueIndex
+ self._rowCategories = rowCategories
+ self._columnCategories = columnCategories
+
+ def setRowIndex(self, index):
+ self._rowIndex = index
+ self.mappingChanged.emit()
+
+ def rowIndex(self):
+ return self._rowIndex
+
+ def setColumnIndex(self, index):
+ self._columnIndex = index
+ self.mappingChanged.emit()
+
+ def columnIndex(self):
+ return self._columnIndex
+
+ def setValueIndex(self, index):
+ self._valueIndex = index
+ self.mappingChanged.emit()
+
+ def valueIndex(self):
+ return self._valueIndex
+
+ def setRowCategories(self, categories):
+ self._rowCategories = categories
+ self.mappingChanged.emit()
+
+ def rowCategories(self):
+ return self._rowCategories
+
+ def setColumnCategories(self, categories):
+ self._columnCategories = categories
+ self.mappingChanged.emit()
+
+ def columnCategories(self):
+ return self._columnCategories
+
+ def remap(self, rowIndex, columnIndex, valueIndex,
+ rowCategories=[], columnCategories=[]):
+ self._rowIndex = rowIndex
+ self._columnIndex = columnIndex
+ self._valueIndex = valueIndex
+ self._rowCategories = rowCategories
+ self._columnCategories = columnCategories
+ self.mappingChanged.emit()
diff --git a/examples/graphs/3d/widgetgallery/variantbardataproxy.py b/examples/graphs/3d/widgetgallery/variantbardataproxy.py
new file mode 100644
index 000000000..5ab2a2cd2
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/variantbardataproxy.py
@@ -0,0 +1,100 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import Slot
+from PySide6.QtGraphs import QBarDataProxy, QBarDataItem
+
+
+class VariantBarDataProxy(QBarDataProxy):
+
+ def __init__(self):
+ super().__init__()
+ self._dataSet = None
+ self._mapping = None
+
+ def setDataSet(self, newSet):
+ if self._dataSet:
+ self._dataSet.itemsAdded.disconnect(self.handleItemsAdded)
+ self._dataSet.dataCleared.disconnect(self.handleDataCleared)
+
+ self._dataSet = newSet
+
+ if self._dataSet:
+ self._dataSet.itemsAdded.connect(self.handleItemsAdded)
+ self._dataSet.dataCleared.connect(self.handleDataCleared)
+ self.resolveDataSet()
+
+ def dataSet(self):
+ return self._dataSet.data()
+
+ # Map key (row, column, value) to value index in data item (VariantItem).
+ # Doesn't gain ownership of mapping, but does connect to it to listen for
+ # mapping changes. Modifying mapping that is set to proxy will trigger
+ # dataset re-resolving.
+ def setMapping(self, mapping):
+ if self._mapping:
+ self._mapping.mappingChanged.disconnect(self.handleMappingChanged)
+
+ self._mapping = mapping
+
+ if self._mapping:
+ self._mapping.mappingChanged.connect(self.handleMappingChanged)
+
+ self.resolveDataSet()
+
+ def mapping(self):
+ return self._mapping.data()
+
+ @Slot(int, int)
+ def handleItemsAdded(self, index, count):
+ # Resolve new items
+ self.resolveDataSet()
+
+ @Slot()
+ def handleDataCleared(self):
+ # Data cleared, reset array
+ self.resetArray(None)
+
+ @Slot()
+ def handleMappingChanged(self):
+ self.resolveDataSet()
+
+ # Resolve entire dataset into QBarDataArray.
+ def resolveDataSet(self):
+ # If we have no data or mapping, or the categories are not defined,
+ # simply clear the array
+ if (not self._dataSet or not self._mapping
+ or not self._mapping.rowCategories()
+ or not self._mapping.columnCategories()):
+ self.resetArray()
+ return
+
+ itemList = self._dataSet.itemList()
+
+ rowIndex = self._mapping.rowIndex()
+ columnIndex = self._mapping.columnIndex()
+ valueIndex = self._mapping.valueIndex()
+ rowList = self._mapping.rowCategories()
+ columnList = self._mapping.columnCategories()
+
+ # Sort values into rows and columns
+ itemValueMap = {}
+ for item in itemList:
+ key = str(item[rowIndex])
+ v = itemValueMap.get(key)
+ if not v:
+ v = {}
+ itemValueMap[key] = v
+ v[str(item[columnIndex])] = float(item[valueIndex])
+
+ # Create a new data array in format the parent class understands
+ newProxyArray = []
+ for rowKey in rowList:
+ newProxyRow = []
+ for i in range(0, len(columnList)):
+ item = QBarDataItem(itemValueMap[rowKey][columnList[i]])
+ newProxyRow.append(item)
+ newProxyArray.append(newProxyRow)
+
+ # Finally, reset the data array in the parent class
+ self.resetArray(newProxyArray)
diff --git a/examples/graphs/3d/widgetgallery/variantdataset.py b/examples/graphs/3d/widgetgallery/variantdataset.py
new file mode 100644
index 000000000..752bc3887
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/variantdataset.py
@@ -0,0 +1,39 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject, Signal
+
+
+class VariantDataSet(QObject):
+
+ itemsAdded = Signal(int, int)
+ dataCleared = Signal()
+
+ def __init__(self):
+ super().__init__()
+ self._variantData = []
+
+ def clear(self):
+ for item in self._variantData:
+ item.clear()
+ del item
+
+ self._variantData.clear()
+ self.dataCleared.emit()
+
+ def addItem(self, item):
+ self._variantData.append(item)
+ addIndex = len(self._variantData)
+
+ self.itemsAdded.emit(addIndex, 1)
+ return addIndex
+
+ def addItems(self, itemList):
+ newCount = len(itemList)
+ addIndex = len(self._variantData)
+ self._variantData.extend(itemList)
+ self.itemsAdded.emit(addIndex, newCount)
+ return addIndex
+
+ def itemList(self):
+ return self._variantData
diff --git a/examples/graphs/3d/widgetgallery/widgetgallery.pyproject b/examples/graphs/3d/widgetgallery/widgetgallery.pyproject
new file mode 100644
index 000000000..581b21483
--- /dev/null
+++ b/examples/graphs/3d/widgetgallery/widgetgallery.pyproject
@@ -0,0 +1,29 @@
+{
+ "files": ["main.py",
+ "axesinputhandler.py",
+ "bargraph.py",
+ "custominputhandler.py",
+ "graphmodifier.py",
+ "highlightseries.py",
+ "rainfalldata.py",
+ "scatterdatamodifier.py",
+ "scattergraph.py",
+ "surfacegraph.py",
+ "surfacegraphmodifier.py",
+ "topographicseries.py",
+ "variantbardatamapping.py",
+ "variantbardataproxy.py",
+ "variantdataset.py",
+ "data/layer_1.png",
+ "data/layer_2.png",
+ "data/layer_3.png",
+ "data/license.txt",
+ "data/maptexture.jpg",
+ "data/narrowarrow.mesh",
+ "data/oilrig.mesh",
+ "data/pipe.mesh",
+ "data/raindata.txt",
+ "data/refinery.mesh",
+ "data/topography.png"
+]
+}
diff --git a/examples/gui/analogclock/analogclock.pyproject b/examples/gui/analogclock/analogclock.pyproject
new file mode 100644
index 000000000..cc7a74a34
--- /dev/null
+++ b/examples/gui/analogclock/analogclock.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["main.py"]
+}
diff --git a/examples/gui/analogclock/doc/analogclock.rst b/examples/gui/analogclock/doc/analogclock.rst
new file mode 100644
index 000000000..a1ede41dd
--- /dev/null
+++ b/examples/gui/analogclock/doc/analogclock.rst
@@ -0,0 +1,8 @@
+Analog Clock Window Example
+===========================
+
+The Analog Clock Window example shows how to draw the contents of
+a custom window.
+
+This example demonstrates how the transformation and scaling
+features of QPainter can be used to make drawing easier.
diff --git a/examples/gui/analogclock/main.py b/examples/gui/analogclock/main.py
new file mode 100644
index 000000000..c0e00dd93
--- /dev/null
+++ b/examples/gui/analogclock/main.py
@@ -0,0 +1,92 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from PySide6.QtCore import QPoint, QTimer, QTime, Qt
+from PySide6.QtGui import QGuiApplication, QPainter, QPalette, QPolygon, QRasterWindow
+
+"""Simplified PySide6 port of the gui/analogclock example from Qt v6.x"""
+
+
+class AnalogClockWindow(QRasterWindow):
+
+ def __init__(self):
+ super().__init__()
+ self.setTitle("Analog Clock")
+ self.resize(200, 200)
+
+ self._timer = QTimer(self)
+ self._timer.timeout.connect(self.update)
+ self._timer.start(1000)
+
+ self._hour_hand = QPolygon([QPoint(5, 14), QPoint(-5, 14),
+ QPoint(-4, -71), QPoint(4, -71)])
+ self._minute_hand = QPolygon([QPoint(4, 14), QPoint(-4, 14),
+ QPoint(-3, -89), QPoint(3, -89)])
+ self._seconds_hand = QPolygon([QPoint(1, 14), QPoint(-1, 14),
+ QPoint(-1, -89), QPoint(1, -89)])
+
+ palette = qApp.palette() # noqa: F821
+ self._background_color = palette.color(QPalette.Window)
+ self._hour_color = palette.color(QPalette.Text)
+ self._minute_color = palette.color(QPalette.Text)
+ self._seconds_color = palette.color(QPalette.Accent)
+
+ def paintEvent(self, e):
+ with QPainter(self) as painter:
+ self.render(painter)
+
+ def render(self, painter):
+ width = self.width()
+ height = self.height()
+
+ side = min(width, height)
+
+ painter.fillRect(0, 0, width, height, self._background_color)
+ painter.setRenderHint(QPainter.Antialiasing)
+ painter.translate(width / 2, height / 2)
+ painter.scale(side / 200.0, side / 200.0)
+
+ time = QTime.currentTime()
+
+ painter.setPen(Qt.NoPen)
+ painter.setBrush(self._hour_color)
+
+ painter.save()
+ painter.rotate(30.0 * ((time.hour() + time.minute() / 60.0)))
+ painter.drawConvexPolygon(self._hour_hand)
+ painter.restore()
+
+ for _ in range(0, 12):
+ painter.drawRect(73, -3, 16, 6)
+ painter.rotate(30.0)
+
+ painter.setBrush(self._minute_color)
+
+ painter.save()
+ painter.rotate(6.0 * time.minute())
+ painter.drawConvexPolygon(self._minute_hand)
+ painter.restore()
+
+ painter.setBrush(self._seconds_color)
+
+ painter.save()
+ painter.rotate(6.0 * time.second())
+ painter.drawConvexPolygon(self._seconds_hand)
+ painter.drawEllipse(-3, -3, 6, 6)
+ painter.drawEllipse(-5, -68, 10, 10)
+ painter.restore()
+
+ painter.setPen(self._minute_color)
+
+ for _ in range(0, 60):
+ painter.drawLine(92, 0, 96, 0)
+ painter.rotate(6.0)
+
+
+if __name__ == "__main__":
+ app = QGuiApplication(sys.argv)
+ clock = AnalogClockWindow()
+ clock.show()
+ sys.exit(app.exec())
diff --git a/examples/gui/rhiwindow/doc/rhiwindow.rst b/examples/gui/rhiwindow/doc/rhiwindow.rst
new file mode 100644
index 000000000..defbc46ef
--- /dev/null
+++ b/examples/gui/rhiwindow/doc/rhiwindow.rst
@@ -0,0 +1,49 @@
+.. _rhi-window-example:
+
+RHI Window Example
+==================
+
+This example shows how to create a minimal ``QWindow``-based
+application using ``QRhi``.
+
+Qt 6.6 starts offering its accelerated 3D API and shader abstraction layer for
+application use as well. Applications can now use the same 3D graphics classes
+Qt itself uses to implement the ``Qt Quick`` scenegraph or the ``Qt Quick`` 3D
+engine. In earlier Qt versions ``QRhi`` and the related classes were all
+private APIs. From 6.6 on these classes are in a similar category as QPA family
+of classes: neither fully public nor private, but something in-between, with a
+more limited compatibility promise compared to public APIs. On the other hand,
+``QRhi`` and the related classes now come with full documentation similarly to
+public APIs.
+
+There are multiple ways to use ``QRhi``, the example here shows the most
+low-level approach: targeting a ``QWindow``, while not using ``Qt Quick``, ``Qt
+Quick 3D``, or Widgets in any form, and setting up all the rendering and
+windowing infrastructure in the application.
+
+In contrast, when writing a QML application with ``Qt Quick`` or ``Qt Quick
+3D``, and wanting to add ``QRhi``-based rendering to it, such an application is
+going to rely on the window and rendering infrastructure ``Qt Quick`` has
+already initialized, and it is likely going to query an existing ``QRhi``
+instance from the ``QQuickWindow``. There dealing with ``QRhi::create()``,
+platform/API specifics or correctly handling ``QExposeEvent`` and resize events
+for the window are all managed by Qt Quick. Whereas in this example, all that
+is managed and taken care of by the application itself.
+
+.. note:: For ``QWidget``-based applications, see the :ref:`rhi-widget-example`.
+
+Shaders
+-------
+
+Due to being a Qt GUI/Python module example, this example cannot have a
+dependency on the ``Qt Shader Tools`` module. This means that ``CMake`` helper
+functions such as ``qt_add_shaders`` are not available for use. Therefore, the
+example has the pre-processed ``.qsb`` files included in the
+``shaders/prebuilt`` folder, and they are simply included within the executable
+via a resource file}. This approach is not generally recommended for
+applications.
+
+
+.. image:: rhiwindow.webp
+ :width: 800
+ :alt: RHI Window Example
diff --git a/examples/gui/rhiwindow/doc/rhiwindow.webp b/examples/gui/rhiwindow/doc/rhiwindow.webp
new file mode 100644
index 000000000..7ab3514af
--- /dev/null
+++ b/examples/gui/rhiwindow/doc/rhiwindow.webp
Binary files differ
diff --git a/examples/gui/rhiwindow/main.py b/examples/gui/rhiwindow/main.py
new file mode 100644
index 000000000..cfb73b10b
--- /dev/null
+++ b/examples/gui/rhiwindow/main.py
@@ -0,0 +1,80 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from argparse import ArgumentParser, RawDescriptionHelpFormatter
+import sys
+
+from PySide6.QtCore import QCoreApplication
+from PySide6.QtGui import QGuiApplication, QRhi, QSurfaceFormat
+
+from rhiwindow import HelloWindow
+import rc_rhiwindow # noqa: F401
+
+if __name__ == "__main__":
+ app = QGuiApplication(sys.argv)
+
+ # Use platform-specific defaults when no command-line arguments given.
+ graphicsApi = QRhi.OpenGLES2
+ if sys.platform == "win32":
+ graphicsApi = QRhi.D3D11
+ elif sys.platform == "darwin":
+ graphicsApi = QRhi.Metal
+
+ parser = ArgumentParser(formatter_class=RawDescriptionHelpFormatter,
+ description="QRhi render example")
+ parser.add_argument("--null", "-n", action="store_true", help="Null")
+ parser.add_argument("--opengl", "-g", action="store_true", help="OpenGL")
+ parser.add_argument("--d3d11", "-d", action="store_true",
+ help="Direct3D 11")
+ parser.add_argument("--d3d12", "-D", action="store_true",
+ help="Direct3D 12")
+ parser.add_argument("--metal", "-m", action="store_true",
+ help="Metal")
+ args = parser.parse_args()
+ if args.null:
+ graphicsApi = QRhi.Null
+ elif args.opengl:
+ graphicsApi = QRhi.OpenGLES2
+ elif args.d3d11:
+ graphicsApi = QRhi.D3D11
+ elif args.d3d12:
+ graphicsApi = QRhi.D3D12
+ elif args.metal:
+ graphicsApi = QRhi.Metal
+
+ # graphicsApi = QRhi.Vulkan? detect? needs QVulkanInstance
+
+ # For OpenGL, to ensure there is a depth/stencil buffer for the window.
+ # With other APIs this is under the application's control
+ # (QRhiRenderBuffer etc.) and so no special setup is needed for those.
+ fmt = QSurfaceFormat()
+ fmt.setDepthBufferSize(24)
+ fmt.setStencilBufferSize(8)
+ # Special case macOS to allow using OpenGL there.
+ # (the default Metal is the recommended approach, though)
+ # gl_VertexID is a GLSL 130 feature, and so the default OpenGL 2.1 context
+ # we get on macOS is not sufficient.
+ if sys.platform == "darwin":
+ fmt.setVersion(4, 1)
+ fmt.setProfile(QSurfaceFormat.CoreProfile)
+ QSurfaceFormat.setDefaultFormat(fmt)
+
+ window = HelloWindow(graphicsApi)
+
+ window.resize(1280, 720)
+ title = QCoreApplication.applicationName() + " - " + window.graphicsApiName()
+ window.setTitle(title)
+ window.show()
+
+ ret = app.exec()
+
+ # RhiWindow::event() will not get invoked when the
+ # PlatformSurfaceAboutToBeDestroyed event is sent during the QWindow
+ # destruction. That happens only when exiting via app::quit() instead of
+ # the more common QWindow::close(). Take care of it: if the QPlatformWindow
+ # is still around (there was no close() yet), get rid of the swapchain
+ # while it's not too late.
+ if window.isVisible():
+ window.releaseSwapChain()
+
+ sys.exit(ret)
diff --git a/examples/gui/rhiwindow/rc_rhiwindow.py b/examples/gui/rhiwindow/rc_rhiwindow.py
new file mode 100644
index 000000000..67f6adeb9
--- /dev/null
+++ b/examples/gui/rhiwindow/rc_rhiwindow.py
@@ -0,0 +1,319 @@
+# Resource object code (Python 3)
+# Created by: object code
+# Created by: The Resource Compiler for Qt version 6.6.1
+# WARNING! All changes made in this file will be lost!
+
+from PySide6 import QtCore
+
+qt_resource_data = b"\
+\x00\x00\x03\xd6\
+\x00\
+\x00\x0b\xa0x\x9c\xd5VMo\xdbF\x10]}8\x8e\
+\xe94i\x9a\xaf&q\xddM\xdd&\x94\xe3\xa8\xb4\xe0\
+\x04Ee\xb9-\x92\x221\x10\xc0n\x5c\x18\x05\x04\x83\
+P$\xca! \x93\x86H\x0a*\x02\x03\x05r\xcf\xb1\
+\xa7\xde\xf2\x0f\xdaC\xff@\x81\xfe\xa5^\x8avf\xf7\
+Q\xbb\xfapN\xb9d\x01\x8a\x9c\xb73\xf3f\xe6-\
+i\x0b!\x16\x84Y\x05\xba\xce\x8a\x81\xf0EF\xbfB\
+\x14\x19\xfc\x0fK\xbc\xc3\xc5D\xabt\x9d\xb7l^e\
+\xdc\xcf\xe0\xde1!\xa5\xdfJ\xc5\x95yvu\xa8\xc6\
+\xbb@/R\x8d\x1c\xbcH!|\x7f\xfct\xefi5\
+I;\xd5\x8d\xfb\x9eP\x04\xa5\x11\xc1\x05\x8a\xcbI\x8e\
+Za\xc4\xcf\xdc\xfd9\xba>\xe1X\xdaa{\x19\xb9\
+\xd9>\xa7r\xebb\x9f\x889q\x13{\x8b\xb8\xe7X\
+\x01X\xc1\xc2\x8a\xc0J*Wi\x84]\xa2_\xbe\xdf\
+\x22\xac\x04\xec*=q\xd3\x92\xaek\xc4;\x8f!\x14\
+\x15VV\x95\xb3/\xe3u\xd8\x0b\xc0\xae\x90\xed \xb6\
+\x00\xff\xbc\x16\x07\xfe\x8b\xe8\x93\xb1\xbb\xf0??a\x7f\
+\x08>\xe6\xbf\x06\xfe2\xf2\x7f\x8c\xfc\x02\xfel_G\
+\xfc\x12\xd97\xe0\x7f]\xcdO\xf7\x9f\xe7\xb8\x81\x9a\x96\
+P\xefM\xd4\xb4\x84\xb9\x97\xac\x1a\x96-\x8e3\x86\xf3\
+\xdb\xdc\xfeL\x99\xbf|\x93\xdb_\xc0\x9f\xf3W\x90\x8b\
+y\x1fP\x0dEa\x0e\x14\xe3\xff\x102G\xf7\x06\xb8\
+>\xc0L\xfe\x22\x94\xed\x0b\xc0x.\x7f\x03\xbb\x08\x9c\
+g\x13\x83\xf3#\xe0y\x9eK\xc8\x93\xc7\x5c\x06f\xc7\
+\x5c\x01\xbeK>\xf3Jo\x9d\x87\xf1-\xaan\x01X\
+\x03\xda\x7f\x0a}_\xc3\xff\x160i\xe5X\xc1<\xf8\
+z\x05\xecs\xf8\xf2\xde\x0f\x841\xf7m\xe0\xc2\xc2\xee\
+\x00+\xa8|\xf3jf.|\xef`\xae\x9c\xf7;\xf2\
+\xe7\xb9\xaeB\xabe\xd4\xbb\x0a\xff\x7f)\xc3W\xfa\xf5\
+-\xe3\x9db\xa3#\xcc;\xfd\xe7\xca \xe8'a\x1c\
+\xc9u\xcfs\x9cA\xab\xffs\x18\x1d\xcaA\xd0\xae\xc9\
+\x81\x9f\x0d\xea\x84\xc5aGr\xb8[q^:\x92\x16\
+o\xc8\x86rr\xbb\xbd\xb8\x95\xba\xeea\xcf\xdf\x0f\xfa\
+i0\xdc~$77\xe5zE\xde\x96\xb5\xca\x9a\xd4\
+\xdb\xf6.\xe3\x95\xba\xcaC\xf0n\x9c\x84)\xd3\xabt\
+\x1b\xae\xabr\xaf\xcaZ\xd5\xab\xc8{\x9ab\x9d\x9e\xd7\
+\xa4W\xf5\xd6$?\xd6\x9d\x13\xc7\x99hi(\xcc\xb2\
+Z\xaa\xbd\xc7-\xfdj\xb5\xf4\x87i\xe9>\xb5\x14g\
+\xe9{\xd5\x0e\xbf\xeb5\xd3M\xf1M\x92\xb6\xd2\xb0\xad\
+\xa97l\x92\xba\x83\xad0J\xa5\xa9)\xea\x04\xc3\xd1\
+\x96\x8a\x1a\xf5\x9e\xa4\xfd\xac\x9d\xca\xbd\xdd\xedg\xfb\xfe\
+\xc3~\x9c$\xfevt\x9c\xa5\x18D6\x9dH~-\
+\xf7\xf6G\xddR\xad\xb3\xb3\xecd\xa9IcqR\xf8\
+\x8f\xdf\xff\xf4pg\xe7\xd9#\xafn6\xc7\xda\xd0\x14\
+\xa6\xa9\x93\x5c$\x921\xf5g)\xa5\x09\xa6\xb5R\x05\
+\xbfM.\xe5p\xaab\xba4[\xb3.\x8bF\x22u\
+\xab\xc3\xa1\x92\xac\xab4\xebj\xd1\xa6\x07\xa0\xcf\xd5\xd4\
+x%\x89q\x18\xf8!?\xe7\xadL\x14\xd5`\x11]\
+\xcb\xaf:\xee\x80\x82\xad\x91h`F\x0d:I\xac\x0c\
+\xedd#\xd5\xf1\x9e\xc7\x8e\xd3\x94o\xfef\xa8\xd3\xc3\
+\xbb\xfd \xcd\xfa\xd1\x04\xc5\x89}|\xcb\xf8\x13\x82U\
+\xf8}%\x8c\xda\xbd\xac\x13\xc8\xcd\xa3 m\xf5|\xfa\
+\x97\xa6\x17>\xdfr\x0c\x9e\x84G\x9d/\xf9\xa7\xfab\
+\xcbq\xb2\x84?@Q\xeb(H\x8e[\xed@\xaa(\
+s\xea\x98\xc6c\xea\x19\x87\xad\xd9\xcc\x92\xa0\xef\xf6\xe2\
+v\xe4U\x0e\x0eN=p\xcd\xe61\x1e\xd9I\x9d7\
+5i\x93\x5c?\xb9\xb3^\x88fS;\xfba\xe7\xe0\
+ W\xd3\x04\xf2\xd5\x90/O4yl\x868~h\
+Y\xed\x09\x85g\x9c\xdcY^\xd6\xf1\x8d\xa7\xe4\xcc\x8f\
+\xf0\x88w\xf4\xe9\x01\xfd\xd4\xc7\xc7R5\xd6b\xb2\x9a\
+s\xaa!|\x8d&\xbeHjM\xc8l\xf4>m\xef\
+\x7f\xf6^=\xc8\
+\x00\x00\x04\x0b\
+\x00\
+\x00\x0b\x95x\x9c\xd5Vmo\x1bE\x10\x1e\xbf$n\
+.%I\x9bR\x0a\x05\xb44\x12\xb2Ke.\xc5\xa5\
+\x88\x90((\x01Z\xa9RJS*$\xcb:]\xce\
+gg\xc1wg\xdd\xed\x99FU\xfe\x02\x1f\xf9)H\
+|\xe6\xaf\xc0\x7f\xe0\x0b\x82\x99\xdd9\xdf\xc6qi%\
+\xfa\xa5+\xado\xe7\xd9yyffo\xcf\x00\xb0\x04\
+\x00u\x9c\x15\x9c+0\x01\x0f\x02H`\x843E\xa4\
+\x86\x13\xfe\xe1\x01s\x06\x99]\x86\x01*\xfb0\x84=\
+\xcb\xb4\xfe2\xa6\x8bp\x049\x9a\xd3\xca\x83M\xb8\x8b\
+\xab}K\xa7\xaaw\x22\xe45\xc6\xd52\xa3\xbb\x96\xc6\
+Z\xb1X\xc1\xb8cd\x11\x80\x04\x05'\x1c`\xb7`\
+\xf2*\xc7\x22?\xfb\x16\xd1?j\xd5\x8d\x06\xc5t\xe0\
+\x02\xbc\xcf\xe8%L\xa0\xa2\x89/\xea\xe77\x0f\x0e\x1f\
+\xb43\xd5ow\xee\xb8\x86\xb3.\xb0\xde[\x85\x86f\
+J3\xf2eL85\xe7\xa2N\xb2\xa6\xf1\x06\xf9\xc0\
+\x15\xe1E\x0c\x92/Z\xf2=\x94Wy\xbd\xa0\xe5\x85\
+\xa9\xbc1\xd5)\xb1\x06\x98\x22\x16X\x85\xf5v\xb5\xef\
+\x9a\xc6\xaa\x1c\xe7\x12>oXqI\xfe\x80\xe5u\xd4\
+\xaaj\xb9\xa6\xb3\xa2\xf5U\x5cQ\xb1\x04\xce\xb7P\xbf\
+\xc1\xc5\xabk\xac\x8e\x952G\x8c\xf0-\x96\x97\x18#\
+}\x87\xf5k\xac\xbf\xcc\xfc\x1c\xd6_\xe6\xfa\x10v\x0d\
+\xe5\x15\xf6U\xd7\xf50uXa\x1fd\xbf\xc6\xbcV\
+\xd9~M\xf7\xc8`o\xa2|\x99\xb9\x92\xbf\x8fX^\
+g\x99\xec\xaf@q$\x01>\xc5zU\xa1<]\xc4\
+\xf1/D\xa8\xe6\xdb\xcc\xfd\x0d\xe6\xf7%\xa2Wt\x0c\
+\x13o\x9du\x16u\x8d\x0c\xfe3\xea8:ocw\
+\xd5\xb2\xbb6\xc7\xeem\xc6\xbfE\x1d\x92\xdfa[\xb0\
+\xb0\xeb\x8cU,\xec]\xc6\x88\xfbC\xac\x16\xd5\xeb=\
+\xb6\xbf\xce\xfb\xe4{\x073Z\xe2\xbd\xbf\xd1\xc3g\xda\
+\x0b\xd4\xf9l\x92\xd0\xe7'\x8d?7&a\x9a\xc9$\
+\x16\x9b\xae\xeb\x8c\xd30\x90Z:\x96\xc3\xe3\xb1\x18\x8c\
+\x12_m\x9d\x83e\x8c\xa0\x93\xa94\x0f\x948\xca\x07\
+\xce3G\xe0\x88|\xd5\x11\xd1d\xbc\xa5%m+\x92\
+\xb1\x1fHu\xb2\xe5\x9c\xa2E\x1e\xcbA\x92Fd\x22\
+\xbc\xcd\xbb\x88L\xfc\xf4D\xc6C1\x09\x83O\xc4\xc4\
+\x0b\x92Q\x92\x12\x9c\xc8\xbe \xc6\xcd\x16\xfb\x1e\x8e\xbc\
+\xafS\x7f\xb8\xef+\xbf\xeb\xf6\xc46Yt\x9al!\
+n\x92\xbb6\xc7\xbae\x0b-\x8c\xec83\x05x\x0a\
+\xe5\xf8\xad,\xc0m\xf7uN\xea\x17+\xa9\xdf\xcb\xa4\
+\xee\xbc\xa2\xa4\x92\x5cizb\x80\x8c\xf7LJ2~\
+q\x8eS\xf5\xff\x91\x1e\x9d\xf9\xdbev\xd5\xef\x02\xe4\
+5\x08SM\xefs\x91\x86C\x99\xa90m\x1e\xb9E\
+\xd44\xf9\xc9\x8b\xfc\x1f0\x8cN\xae\xf3\xb4C\x01<\
+L\x19\xf51\xca\x8f\xc9`\x90\x85\xaa\x19\xb8-\xbb\x06\
+\xa4\xc3$f\xf4:-S\x18\xac\xa5\xafd\xc0n\xed\
+b\xd8\x1bvI\xb8\xf8\x87\x0f\xef?z\xe2\xed\xa5I\
+\x96y\xf7\xe3q\xae\x8a\xfa\x9c\xd1\xc7\xa8\x8f\xbf\xfa~\
+\xef\xe0\xe0\xd1\xbek\x02\xce1?\xc8\xd5\x8c\xbdE\x04\
+=\x1c>\xf1\x1e\xfb\xe90T\xecB7\x85\x14\xbc\xe7\
+v\xc6x9\xdb\x1b\xcf\xee\x8dw\xa67\xe7\xd9\x98\xa6\
+\x9fKR`U\x86\xa1'i]\xc4-\x82l\xdb\x9b\
+\xedi\xc1\x0ajL\xd6\x00s\x02\x1a\xe3D\x0bF\xc9\
+F\xdag\xb2+\xbb\xa4\x0fG\xa8\xf24\x9eqpj\
+\x1f\xb8:\x7f\x00xT~\xdd\x90q0\xca\xfb\xa1\xf8\
+\x22\x0a\x95?\xf2\xf0\xcf\xc0H\x1e\xed8%\x9e\xc9\xa8\
+\xff1\xfd\xb4\x8fw\xf0\xfd\xc9\xe8\x02\x88\xfd(\xcc\xb0\
+n\xa1\xd0V\xf3\xee\xcc\xe9\xf1\xfc\xaf\xb7\x91\xad\x88\x9c\
+K\x84\x9f\xd7\xfanW\xd7\xb0\xe9\xb6z\xbd9\x962\
+\x9e\x7f\xe6\xba\xdd<\xc3\xb7g\x94\x04qiI^\xa3\
+0\xb6\xa2\x9aU\xb3\xf0\x85_\x01\xb4,Z\xd8\xeb\xdd\
+\x12A\x12\xa3\x18\xeb\xf4>\xa4C\x83\xfb\xe6E\xd5\x8c\
+Z\xd3\xcb\xa7pHs[<;5\x89'\xb3]3\
+gR\xc6\xed\x97\xba2\xac\xce&\xa6\xa1\xd4\xd1\x05\x1d\
+\x8d\xef\x90\x99{d\xfa\x11\x04\xfe\xaf;\xd3\xf6s\xfb\
+\x056\xab\xa7\xc7\xbf\xc3\x1a`\x81\
+\x00\x00\x03\xff\
+\x00\
+\x00\x0b\x1ax\x9c\xcdV[o\xdcD\x14\x9e\xbd\xa4K\
+\x9c\x96\x86\x96$\xa5\xe52M@r\xca\xca\x98U\x8a\
+\x10\x9b\x8d\x84\x12@\x95*\xa5\xedF-\xd2je\x19\
+\xefdc\xc9k\xaf\xec\xf1\x92R\xe5/\xf0\xc8\x0b\x8f\
+\xfc\x0c~\x03\xff\x87\x17\x04\xe7\xcc\x1c\xaf'\xdeM\x95\
+GF\x9a\xf5\x9co\xce\xe5;\x17;a\x8c\xad2\xc6\
+\x9a\xb0k\xb0\xdfa3\xe6\xb1\x1c~\x19\xab\xc3f\xff\
+\xd2bK\x16\x1a\xdca\xa7,e>\x1b\xb3C\x96\xb0\
+\x08vJ\xee\xdejZus\x83I&\xd89\x9c\xec\
+\xeb\x98\x5cw\xdd\xa0\xe7\xa8\x84\x1a\xedF}\xa7\x85Q\
+-\xc8\xf63B\xdf\x83l\x91\xc7\x1a\x98\xe0\xf3\x87\xa7\
+\xfd\xa7N&G\xce\xdec\x17\xef\xdfe\x8d9\xd7\xdb\
+\xac\xa5\x12\xc4=\xf1\xc3X\xdb3\xb6\x01{\x1d\xf4\x10\
+o\xa1\x0f8\xdd\x82\xe76\xc5(\xe4\x87\x86\x8cv\x1f\
+\x1b\xf2\x86!\xdf\x05Nu\xa5\xdfP\xd1\xf1\xbc\x09'\
+L\x8a\xc3\xde\x02\xfd\x16%\xd9TX\x132\xd2\xb1q\
+\x7f\x00\x9d\xb5\xe8\xbeV)L!?\x00\x7fk\xf0\xb4\
+\xc8\xfe&\xe1\x88uI\xbeE\x18\xc6\xbbM\xfe\xea\xa4\
+\xbf>\xaf\x89\xd6_\xa7Z\xd4\xe8\xfe}\xac8\xf1\xe9\
+\x92\xbcA\x18\xfa\xdb$\x7f\x0d\x857\x81\xb3\xce\x0d\xd7\
+\xe7$\xdf\xa7{\xf4\xf7\x80|\xa1\xcdWlE\xf1h\
+\x16\x9d\x85\xfd7 +\x14\x0bk\xb1J\xfa=\x90\xd7\
+T\x1fu>=\xca\xe5\x0e\xf1}\x05V-Us\xad\
+\x83\xf8\x01x\x5c%\xacG\xb5\xde\x22\x9f\xc7\xe0\x1d\xb9\
+\xdf#l\xcb\xa8+r\xfa\x16\xfc!\xd7\x0fI\xff>\
+\xf9@\xde\x1f\x11\xfe+\xe8lR\xbf\xef\x11^\xd8}\
+\xb2\xc4\x8e\x13\xfe\x1ctP~\xc8\xcaY)\xb0m\xc2\
+j\x06\xb6C\x18\xf2z\x06Y`\x1e\x9f\x92\xfd6\xdd\
+s\xcaw\x83\xee\xfe\x01\x0f_\xeb)i\xd2\x8c\xa30\
+b\xe5\xe8\xfc\xb53\x13i\x16&1\xff\xd2u\xadi\
+*\x82PIg\xe1\xf8l\xcaO\xa3\xc4\x97\xdd\x058\
+\x8c\x01\xb4\xf28<M\xd2\x09a\x99?\x99F\x22\xed\
+\x1cq)\xce\xe1v\xe6\xa7\xaf\xc3x\xccg\x22\xe8\xf0\
+\x99\x97\xcf\x10K\xc2\x11G\x22\xf6\xae\xf5\xc6\xe2\xb0\xe0\
+v\x8f\x07\xbc\x87F2OE\xe7\xc8\x86S[\x19\xec\
+v\x95\xca8\xf2\xbeO\xfd\xf1\x91/\xfd\x81;\x04U\
+\xb4\xb1\x03\xe7\xfc\xf5/\xfc\x11\x0f\x9c\x9f\xdb\xf8\x03\xca\
+\x17\x96UI\xf4\x9c\x95\xeb\xf72\xd1\x8e[\x92\xff?\
+\xd2\xfe\xcd\xa0\xfdGI\xfb\xf1[h\x87\xb1\xc98\xc9\
+\xa5\xa6x\x0a\x0c\x0e\x93(I\xaf\x95\xc5B\x0es\xf3\
+k\xd3\xc7\xe9\xec\x94\xec\xeb\xfb'E\x81\xf6\xd5,\xed\
+\x1d`0\xfe\x0dO\xc58\xcc\xa4Hm\xe9\x82\x93\xbe\
+N\xa7/})\xb8\x07\x1a\x1e%hjf\xa8ie\
+\xa0\x13\x06z2\x8b|M\xecr\xd2\x99L\xf3@\xf2\
+\xfe\xb3'/^z\x87i\x92e\xde\x93x\x9aK\xaa\
+\x80\xe1\x05\x22\x9d|\xf7\xe3\xe1\xf1\xf1\x8b#\x17\xb2Z\
+n{\x9c\xcb\x8a\xb1\x11\x0e<\xf4_z'~:\x16\
+\x92\x5c\xa8\x9a\xa3\x82w\xa9\xf0dI\xa5wt\xf6\xb6\
+\x99\xf7\x95m\xd0\xa6W4b\x91\xaan\xf8B\xfa\x1c\
+*6\x16^\x88\xe7\xf94`\x11z\xe6\x8d\xa3\xab[\
+P\xa0\x1c4\xb0$\x94\xb6L\x94\xa0\x95L\xc4\xb9\x94\
+E\xd9\x22\xd4K\x05\xccH\x5cqpa\xce\x15\xfeu\
+\xb8Y\xceU\xed\xcf\x9d0\x0e\xa2|$\xf8\xfeDH\
+?\xf2\xe0\xaf|\x14\xfet`\x95x\x16NF_\xe0\
+\x8fsv\x00/N\x86ou\xecOD6\xf5\x03\xc1\
+\x95U\xd9d\x0c\xe3b\xe8\xabz;\x18\x04\xf8\xb4\xdd\
+\xdd\xe1\xf0\xd2xh\xcb0^2Q\x83A\x9e\xc1\xdc\
+FI\x10\x97f\xe8r\x22b#\xa4>\xd9\x85#\xf8\
+\xba\x82e\xd1\x86\xe1\xb0=\xff\xc8\x8c\xf4;\xa4_\xa1\
+\xc1\xa0xk\xd1w\xbb\xf8\x22\xe0]\x1fN\xc8\x98 \
+\xa5Pt\xb9\x8c\x8a\xbb\xc7\xdf\x5ct\x97\x8d\xa46\xb5\
+\x0bgm \xe5\x18\x13\x99T\xfby\xe5T\x1a\xedM\
+tW\xb1\xad+\x8a\x06}/*\xdf\x8c\x85\xffr*\
+\xbd_\xb8/\xb0\xaa\x9eZ\xff\x018\x196d\
+\x00\x00\x04k\
+\x00\
+\x00\x0d\xafx\x9c\xe5Wmo\x1bE\x10^\xfb\x9c\x94\
+\x5c\xc9K\x936i\xa1-\x9bZB6T\xc6\x09\x0e\
+B5\x89\x82ZD+UJ\xd5\xa0\x0a\xc9\x8aN\xe7\
+\xf39\x1c\xf8\xee\xac\xbb=\x93\xa8\xb2\xc4_\xe0\x0b?\
+\x8c\xdf\xc0\x8f\xe0\x0b\x82\x99\xddY\xdf\xde\xd9)\xaaT\
+\xf1\x85\x95\xd6\xdey\xd9y\x9e\x99\x9d\xdd8\x8c\xb1\x15\
+\xa6F\x15\xa6\xcd<\x16\xb3\x11\xcc\x04$\x0bf\xe5o\
+\x1al\xc1\xd8`cpMY\xc0\x04\xcc\x98E\xa0\xab\
+\xa1\xe1M\x9b*0\xd7\xd8\x849sX\xff\xbam\x99\
+\xf5Y\xc6\x86r\xe5\xb0}v\x00\xab'\x86OUZ\
+B\x08>\x86\xd5u\xd2\x1e\x17\x18\xd3X\x03\xdc1s\
+\x81\x03\x92\xbf$\x80c\x9d\xc0\xbb\x1a\x15\xfa\xd6A\x97\
+\xe9{\x90\xbbX\xbfX\xd5\xfa5t\xb5\xd9{\xacN\
+\xda\x1b\x90LE&\xb1,\xbf\xbf}~\xfa\xbc\x95\x8a\
+A\xabs\xd0V\xfc\xad\x19\xc0:\x9d!\x82\x84n\x80\
+\xa7 5X\x80-\x98\xf7q?XWh\xcdH\xbe\
+N2\xc6x\xca\x96\x00S\x0d]8\xad\xab\x90\xce\xf4\
+\xab\x92\xce\x92\xb1\xac\x99\xee)\xc4\xdd\xa1\xfdK\xe4\xaf\
+\xe5\xba\x11W\xeb qy(ZW!\xbfc\x8a\xbb\
+Cq\x91\xef\x1d\xf8~`\xf0Gy\xd7\x90\xef\x1b\xf9\
+m\xc1\xae\xaa\xb4[\x92#\xae\xb7a\x85\x07\xc0a\xee\
+\x80\xff5:\x10K\xeajP}\xb5F}\x97\xe4\x15\
+\xc3n\x13?m\xb7\x8d\xba`\xbcU\x8a\x87\xe7p\x0b\
+>\xd7\x08\x0b\xc7\xa7$\xaf\x93\xff]\x907\xc8\x7f]\
+\xf2Vu\xd516\x08s\x93\xf0o\x10\xe6&\x9d\xa9\
+E\x187\x09\xa3B\x187\xa5^\x8d\xdb oS\xcc\
+\x9a\xc4Pg\xb3M\x18\x18\xff6\xd5f\x87\xe2\xa3|\
+\x87th\xff`V;%\xdf#\xacU\xf2\xbf\xc7\xf2\
+\x1eB\xfb.qC\xfb\x17\x90S\x95\xe5\xcd\x8f\xfa?\
+A\x83}qH\xf5\x7f\x9fjx\x04\xd6\x15\x92\xbf\x06\
+\x0f\xc4\xfd\x90\xb8\xdc\x22\xffmY7\xa5?\xa4z\x7f\
+D\xf8\xbf\xc2\x9eU\xaa\xc5]\xd2c\x9c]\xea\x99-\
+\x8a\x838\x0f\xc8\xef/`\xfd\xa5\xba\xa25\xba7(\
+\x0cX~o\xff\xa8O\xfc$\x0d\xe2\x88\xef\xb5\xdb\xb6\
+\x9d\x8a$\xf3\x04\xefgC\xfb\xb5\xcda\x84\xae\xe8\xf0\
+p2\xeeJi8\x8a]\xc1\xe3\xb1\xeb\x05\xe2\xb2k\
+O\xbb\xb6\x9dE\xc10NB\xdc\xc2\x9d\xfd\x03\xd0L\
+\xdc\xe42\x88\xce\xf9\xc4\xf7>\xe7\x13\xc7\x8bGq\xd2\
+\xb5]!\x92\xa0\x9f\x09_\xe9\x17i;|\x1c\xa7\x81\
+\x002\x18%\x0e\x06\x1cI7\x9aD\x85B\xf1C\xbd\
+\x19\x95\xe7#\xe7\x05m\x02\x03\x10h\x01Y\xfe\x89\x11\
+ij\xdb\xa5\xfc/X>\x8c\xfc\xf7\xff/\xf9\xfff\
+\xe4\xff{\x9e\xff\xc1;\xca?\xceD)\xf7 *$\
+\xad\xc4\xff\x22[\xbc\x9c\xfby\xb2\xd6\xa6\x074\x87~\
+\x22\xd9>\xe2\x89\x7f\x1e\xa4\xc2O\x1a\xfd\xb6\x86M\xe2\
+\x9f\x9d\xd0\xfd\x11\x80e\xae\x9d\x8b\x0e\xc28\x08\xf3\x88\
+C\xde?\xc5\xc3a\xea\x8b\x86\xd7n\x9a%A\x1f*\
+K\xc9\xaf\xd3Tu\x82\xd2\xba\x22\xf0(\xac\x99I\xb7\
+`2\xcaVT/P\x16JHGw\xfa\xe2\xd9\xcb\
+W\xce\xe3$NS\xe7Y4\xce\x04%V\xda\x00,\
+\xbf\xfb\xe6\xfb\xc7''/\x9f\xb4\x8dD\x08\xc6\xb0\xee\
+)\xfa\x0b\xa2\x9fd\xa2\x14~\xc6\xfd\x8a\xe8\x85\xb4\xc1\
+\xe7\xf4\x95Q\x84\xa9n\x03hH\xe1\xbcm/\x84\xd9\
+\xa8\xa1s{\xa8\x8f\xac)\xfba\x9e\xb3\xea\xb4\xb9J\
+q\xa8\xed\xb9\xef\x04\xb8\xd6\xd0\x1a\xd80\xb5\x0c\x12\xe3\
+\x9c\x81\xe9\x91\x1f\x8b\xa4\x9f'\xa4\x14\x0b\x18\xa9\xdd\xb1\
+\x14\x94\x93\xa9i\x15\x93-4\xcf\x9co^\xadY'\
+\xc9\xce\xf6E\x96D%\xa0\xa9y[j\xf4\xe7\x89F\
+u\xa9\x1eD\xde(\x1b\xf8\xfc\xab\xd0\x17\xee\xc8\x81\x9f\
+g\xa3\xa0\x7fd\xe7\xfa4\x08\x07\x9f\xe1G\xeb\x87#\
+x\x0bR|\xf7\x227\xf4S\xb8\x02>\x97\xbb\xba\x0b\
+^\x95\xd9\xddz\xd3\xcbB\xbb\x90\x5c\x1b\x09/\xee\xb4\
+^/K\xe1\x06\x8fb/j7\xcf\xce\xae\xec\xb6^\
+O\x1f\x0a:\xcd\xc5\x0f\xa2+\xeeI\xaf7{\xa3\x1b\
+%\x00}YL\x97\xbd\xa6\x0e\x8f\xa7\xee_\xe4\xf4\xd5\
+\xaa\xa1\xe1x\x80\xb1u\xd3\x9c\x9d=\x84`\x11\x88\x91\
+\xac\xd3\xc7\xd8\xc2`W\xcf\x95\x04n\xce^d\x1d\x10\
+\xe7!\x7f=U\x94\xe2\xc2\xd1\x07\x91\xd9\xa6\xf1\x5c\x0b\
+\xe5o'x\x16\xdb\x95\x1a%V\xfd\x81\x0d\xb2$1\
+\xe9=-\xbd\xa9\xb3_\x12\x8c\xfe\xb1)u\xd1\x9c]\
+\xeb\xca~r\xfc\x03\x0d.\xdb\xc1\
+"
+
+qt_resource_name = b"\
+\x00\x0d\
+\x0d\xf9\xb2\xf2\
+\x00q\
+\x00u\x00a\x00d\x00.\x00v\x00e\x00r\x00t\x00.\x00q\x00s\x00b\
+\x00\x0e\
+\x04\x16\xeb\xb2\
+\x00c\
+\x00o\x00l\x00o\x00r\x00.\x00f\x00r\x00a\x00g\x00.\x00q\x00s\x00b\
+\x00\x0d\
+\x09\x18\xb0\xd2\
+\x00q\
+\x00u\x00a\x00d\x00.\x00f\x00r\x00a\x00g\x00.\x00q\x00s\x00b\
+\x00\x0e\
+\x00\xfb\xe9\x92\
+\x00c\
+\x00o\x00l\x00o\x00r\x00.\x00v\x00e\x00r\x00t\x00.\x00q\x00s\x00b\
+"
+
+qt_resource_struct = b"\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x01\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00b\x00\x00\x00\x00\x00\x01\x00\x00\x0b\xec\
+\x00\x00\x01\x8b8N2\x22\
+\x00\x00\x00 \x00\x00\x00\x00\x00\x01\x00\x00\x03\xda\
+\x00\x00\x01\x8b8N2\x22\
+\x00\x00\x00B\x00\x00\x00\x00\x00\x01\x00\x00\x07\xe9\
+\x00\x00\x01\x8b8N2\x22\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
+\x00\x00\x01\x8b8N2\x22\
+"
+
+def qInitResources():
+ QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+def qCleanupResources():
+ QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+qInitResources()
diff --git a/examples/gui/rhiwindow/rhiwindow.py b/examples/gui/rhiwindow/rhiwindow.py
new file mode 100644
index 000000000..fe054af48
--- /dev/null
+++ b/examples/gui/rhiwindow/rhiwindow.py
@@ -0,0 +1,420 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import numpy
+import sys
+
+from PySide6.QtCore import (QEvent, QFile, QIODevice, QPointF, QRectF, QSize,
+ qFatal, qWarning, Qt)
+from PySide6.QtGui import (QColor, QFont, QGradient, QImage, QMatrix4x4,
+ QPainter, QPlatformSurfaceEvent, QSurface, QWindow)
+from PySide6.QtGui import (QRhi, QRhiBuffer,
+ QRhiDepthStencilClearValue,
+ QRhiGraphicsPipeline, QRhiNullInitParams,
+ QRhiGles2InitParams, QRhiRenderBuffer,
+ QRhiSampler, QRhiShaderResourceBinding,
+ QRhiShaderStage, QRhiTexture,
+ QRhiVertexInputAttribute, QRhiVertexInputBinding,
+ QRhiVertexInputLayout, QRhiViewport,
+ QShader)
+from PySide6.support import VoidPtr
+
+if sys.platform == "win32":
+ from PySide6.QtGui import QRhiD3D11InitParams, QRhiD3D12InitParams
+elif sys.platform == "darwin":
+ from PySide6.QtGui import QRhiMetalInitParams
+
+
+# Y up (note clipSpaceCorrMatrix in m_viewProjection), CCW
+VERTEX_DATA = numpy.array([
+ 0.0, 0.5, 1.0, 0.0, 0.0,
+ -0.5, -0.5, 0.0, 1.0, 0.0,
+ 0.5, -0.5, 0.0, 0.0, 1.0], dtype=numpy.float32)
+
+
+UBUF_SIZE = 68
+
+
+def getShader(name):
+ f = QFile(name)
+ if f.open(QIODevice.ReadOnly):
+ result = QShader.fromSerialized(f.readAll())
+ f.close()
+ return result
+ return QShader()
+
+
+class RhiWindow(QWindow):
+
+ def __init__(self, graphicsApi):
+ super().__init__()
+ self.m_graphicsApi = QRhi.Null
+ self.m_initialized = False
+ self.m_notExposed = False
+ self.m_newlyExposed = False
+
+ self.m_fallbackSurface = None
+ self.m_rhi = None
+ self.m_sc = None
+ self.m_ds = None
+ self.m_rp = None
+ self.m_hasSwapChain = False
+ self.m_viewProjection = QMatrix4x4()
+
+ self.m_graphicsApi = graphicsApi
+
+ if graphicsApi == QRhi.OpenGLES2:
+ self.setSurfaceType(QSurface.SurfaceType.OpenGLSurface)
+ elif graphicsApi == QRhi.Vulkan:
+ self.setSurfaceType(QSurface.SurfaceType.VulkanSurface)
+ elif graphicsApi == QRhi.D3D11 or graphicsApi == QRhi.D3D12:
+ self.setSurfaceType(QSurface.SurfaceType.Direct3DSurface)
+ elif graphicsApi == QRhi.Metal:
+ self.setSurfaceType(QSurface.SurfaceType.MetalSurface)
+ elif graphicsApi == QRhi.Null:
+ pass # RasterSurface
+
+ def __del__(self):
+ # destruction order matters to a certain degree: the fallbackSurface
+ # must outlive the rhi, the rhi must outlive all other resources.
+ # The resources need no special order when destroying.
+ del self.m_rp
+ self.m_rp = None
+ del self.m_ds
+ self.m_ds = None
+ del self.m_sc
+ self.m_sc = None
+ del self.m_rhi
+ self.m_rhi = None
+ if self.m_fallbackSurface:
+ del self.m_fallbackSurface
+ self.m_fallbackSurface = None
+
+ def graphicsApiName(self):
+ if self.m_graphicsApi == QRhi.Null:
+ return "Null (no output)"
+ if self.m_graphicsApi == QRhi.OpenGLES2:
+ return "OpenGL"
+ if self.m_graphicsApi == QRhi.Vulkan:
+ return "Vulkan"
+ if self.m_graphicsApi == QRhi.D3D11:
+ return "Direct3D 11"
+ if self.m_graphicsApi == QRhi.D3D12:
+ return "Direct3D 12"
+ if self.m_graphicsApi == QRhi.Metal:
+ return "Metal"
+ return ""
+
+ def customInit(self):
+ pass
+
+ def customRender(self):
+ pass
+
+ def exposeEvent(self, e):
+ # initialize and start rendering when the window becomes usable
+ # for graphics purposes
+ is_exposed = self.isExposed()
+ if is_exposed and not self.m_initialized:
+ self.init()
+ self.resizeSwapChain()
+ self.m_initialized = True
+
+ surfaceSize = self.m_sc.surfacePixelSize() if self.m_hasSwapChain else QSize()
+
+ # stop pushing frames when not exposed (or size is 0)
+ if ((not is_exposed or (self.m_hasSwapChain and surfaceSize.isEmpty()))
+ and self.m_initialized and not self.m_notExposed):
+ self.m_notExposed = True
+
+ # Continue when exposed again and the surface has a valid size. Note
+ # that surfaceSize can be (0, 0) even though size() reports a valid
+ # one, hence trusting surfacePixelSize() and not QWindow.
+ if is_exposed and self.m_initialized and self.m_notExposed and not surfaceSize.isEmpty():
+ self.m_notExposed = False
+ self.m_newlyExposed = True
+
+ # always render a frame on exposeEvent() (when exposed) in order to
+ # update immediately on window resize.
+ if is_exposed and not surfaceSize.isEmpty():
+ self.render()
+
+ def event(self, e):
+ if e.type() == QEvent.UpdateRequest:
+ self.render()
+ elif e.type() == QEvent.PlatformSurface:
+ # this is the proper time to tear down the swapchain (while
+ # the native window and surface are still around)
+ if e.surfaceEventType() == QPlatformSurfaceEvent.SurfaceAboutToBeDestroyed:
+ self.releaseSwapChain()
+
+ return super().event(e)
+
+ def init(self):
+ if self.m_graphicsApi == QRhi.Null:
+ params = QRhiNullInitParams()
+ self.m_rhi = QRhi.create(QRhi.Null, params)
+
+ if self.m_graphicsApi == QRhi.OpenGLES2:
+ self.m_fallbackSurface = QRhiGles2InitParams.newFallbackSurface()
+ params = QRhiGles2InitParams()
+ params.fallbackSurface = self.m_fallbackSurface
+ params.window = self
+ self.m_rhi = QRhi.create(QRhi.OpenGLES2, params)
+ elif self.m_graphicsApi == QRhi.D3D11:
+ params = QRhiD3D11InitParams()
+ # Enable the debug layer, if available. This is optional
+ # and should be avoided in production builds.
+ params.enableDebugLayer = True
+ self.m_rhi = QRhi.create(QRhi.D3D11, params)
+ elif self.m_graphicsApi == QRhi.D3D12:
+ params = QRhiD3D12InitParams()
+ # Enable the debug layer, if available. This is optional
+ # and should be avoided in production builds.
+ params.enableDebugLayer = True
+ self.m_rhi = QRhi.create(QRhi.D3D12, params)
+ elif self.m_graphicsApi == QRhi.Metal:
+ params = QRhiMetalInitParams()
+ self.m_rhi.reset(QRhi.create(QRhi.Metal, params))
+
+ if not self.m_rhi:
+ qFatal("Failed to create RHI backend")
+
+ self.m_sc = self.m_rhi.newSwapChain()
+ # no need to set the size here, due to UsedWithSwapChainOnly
+ self.m_ds = self.m_rhi.newRenderBuffer(QRhiRenderBuffer.DepthStencil,
+ QSize(), 1,
+ QRhiRenderBuffer.UsedWithSwapChainOnly)
+ self.m_sc.setWindow(self)
+ self.m_sc.setDepthStencil(self.m_ds)
+ self.m_rp = self.m_sc.newCompatibleRenderPassDescriptor()
+ self.m_sc.setRenderPassDescriptor(self.m_rp)
+ self.customInit()
+
+ def resizeSwapChain(self):
+ self.m_hasSwapChain = self.m_sc.createOrResize() # also handles self.m_ds
+ outputSize = self.m_sc.currentPixelSize()
+ self.m_viewProjection = self.m_rhi.clipSpaceCorrMatrix()
+ r = float(outputSize.width()) / float(outputSize.height())
+ self.m_viewProjection.perspective(45.0, r, 0.01, 1000.0)
+ self.m_viewProjection.translate(0, 0, -4)
+
+ def releaseSwapChain(self):
+ if self.m_hasSwapChain:
+ self.m_hasSwapChain = False
+ self.m_sc.destroy()
+
+ def render(self):
+ if not self.m_hasSwapChain or self.m_notExposed:
+ return
+
+ # If the window got resized or newly exposed, resize the swapchain.
+ # (the newly-exposed case is not actually required by some platforms,
+ # but is here for robustness and portability)
+ #
+ # This (exposeEvent + the logic here) is the only safe way to perform
+ # resize handling. Note the usage of the RHI's surfacePixelSize(), and
+ # never QWindow::size(). (the two may or may not be the same under the
+ # hood, # depending on the backend and platform)
+ if self.m_sc.currentPixelSize() != self.m_sc.surfacePixelSize() or self.m_newlyExposed:
+ self.resizeSwapChain()
+ if not self.m_hasSwapChain:
+ return
+ self.m_newlyExposed = False
+
+ result = self.m_rhi.beginFrame(self.m_sc)
+ if result == QRhi.FrameOpSwapChainOutOfDate:
+ self.resizeSwapChain()
+ if not self.m_hasSwapChain:
+ return
+ result = self.m_rhi.beginFrame(self.m_sc)
+
+ if result != QRhi.FrameOpSuccess:
+ qWarning(f"beginFrame failed with {result}, will retry")
+ self.requestUpdate()
+ return
+
+ self.customRender()
+
+ self.m_rhi.endFrame(self.m_sc)
+
+ # Always request the next frame via requestUpdate(). On some platforms
+ # this is backed by a platform-specific solution, e.g. CVDisplayLink
+ # on macOS, which is potentially more efficient than a timer,
+ # queued metacalls, etc.
+ self.requestUpdate()
+
+
+class HelloWindow(RhiWindow):
+
+ def __init__(self, graphicsApi):
+ super().__init__(graphicsApi)
+ self.m_vbuf = None
+ self.m_ubuf = None
+ self.m_texture = None
+ self.m_sampler = None
+ self.m_colorTriSrb = None
+ self.m_colorPipeline = None
+ self.m_fullscreenQuadSrb = None
+ self.m_fullscreenQuadPipeline = None
+ self.m_initialUpdates = None
+
+ self.m_rotation = 0
+ self.m_opacity = 1
+ self.m_opacityDir = -1
+
+ def ensureFullscreenTexture(self, pixelSize, u):
+ if self.m_texture and self.m_texture.pixelSize() == pixelSize:
+ return
+
+ if not self.m_texture:
+ self.m_texture = self.m_rhi.newTexture(QRhiTexture.RGBA8, pixelSize)
+ else:
+ self.m_texture.setPixelSize(pixelSize)
+ self.m_texture.create()
+ image = QImage(pixelSize, QImage.Format_RGBA8888_Premultiplied)
+ with QPainter(image) as painter:
+ painter.fillRect(QRectF(QPointF(0, 0), pixelSize),
+ QColor.fromRgbF(0.4, 0.7, 0.0, 1.0))
+ painter.setPen(Qt.transparent)
+ painter.setBrush(QGradient(QGradient.DeepBlue))
+ painter.drawRoundedRect(QRectF(QPointF(20, 20), pixelSize - QSize(40, 40)),
+ 16, 16)
+ painter.setPen(Qt.black)
+ font = QFont()
+ font.setPixelSize(0.05 * min(pixelSize.width(), pixelSize.height()))
+ painter.setFont(font)
+ name = self.graphicsApiName()
+ t = (f"Rendering with QRhi to a resizable QWindow.\nThe 3D API is {name}."
+ "\nUse the command-line options to choose a different API.")
+ painter.drawText(QRectF(QPointF(60, 60), pixelSize - QSize(120, 120)), 0, t)
+
+ if self.m_rhi.isYUpInNDC():
+ image = image.mirrored()
+
+ u.uploadTexture(self.m_texture, image)
+
+ def customInit(self):
+ self.m_initialUpdates = self.m_rhi.nextResourceUpdateBatch()
+
+ vertex_size = 4 * VERTEX_DATA.size
+ self.m_vbuf = self.m_rhi.newBuffer(QRhiBuffer.Immutable, QRhiBuffer.VertexBuffer,
+ vertex_size)
+ self.m_vbuf.create()
+ self.m_initialUpdates.uploadStaticBuffer(self.m_vbuf,
+ VoidPtr(VERTEX_DATA.tobytes(), vertex_size))
+
+ self.m_ubuf = self.m_rhi.newBuffer(QRhiBuffer.Dynamic,
+ QRhiBuffer.UniformBuffer, UBUF_SIZE)
+ self.m_ubuf.create()
+
+ self.ensureFullscreenTexture(self.m_sc.surfacePixelSize(), self.m_initialUpdates)
+
+ self.m_sampler = self.m_rhi.newSampler(QRhiSampler.Linear, QRhiSampler.Linear,
+ QRhiSampler.None_,
+ QRhiSampler.ClampToEdge, QRhiSampler.ClampToEdge)
+ self.m_sampler.create()
+
+ self.m_colorTriSrb = self.m_rhi.newShaderResourceBindings()
+ visibility = (QRhiShaderResourceBinding.VertexStage
+ | QRhiShaderResourceBinding.FragmentStage)
+ bindings = [
+ QRhiShaderResourceBinding.uniformBuffer(0, visibility, self.m_ubuf)
+ ]
+ self.m_colorTriSrb.setBindings(bindings)
+ self.m_colorTriSrb.create()
+
+ self.m_colorPipeline = self.m_rhi.newGraphicsPipeline()
+ # Enable depth testing; not quite needed for a simple triangle, but we
+ # have a depth-stencil buffer so why not.
+ self.m_colorPipeline.setDepthTest(True)
+ self.m_colorPipeline.setDepthWrite(True)
+ # Blend factors default to One, OneOneMinusSrcAlpha, which is convenient.
+ premulAlphaBlend = QRhiGraphicsPipeline.TargetBlend()
+ premulAlphaBlend.enable = True
+ self.m_colorPipeline.setTargetBlends([premulAlphaBlend])
+ stages = [
+ QRhiShaderStage(QRhiShaderStage.Vertex, getShader(":/color.vert.qsb")),
+ QRhiShaderStage(QRhiShaderStage.Fragment, getShader(":/color.frag.qsb"))
+ ]
+ self.m_colorPipeline.setShaderStages(stages)
+ inputLayout = QRhiVertexInputLayout()
+ input_bindings = [QRhiVertexInputBinding(5 * 4)] # sizeof(float)
+ inputLayout.setBindings(input_bindings)
+ attributes = [
+ QRhiVertexInputAttribute(0, 0, QRhiVertexInputAttribute.Float2, 0),
+ QRhiVertexInputAttribute(0, 1, QRhiVertexInputAttribute.Float3, 2 * 4)] # sizeof(float)
+ inputLayout.setAttributes(attributes)
+ self.m_colorPipeline.setVertexInputLayout(inputLayout)
+ self.m_colorPipeline.setShaderResourceBindings(self.m_colorTriSrb)
+ self.m_colorPipeline.setRenderPassDescriptor(self.m_rp)
+ self.m_colorPipeline.create()
+
+ self.m_fullscreenQuadSrb = self.m_rhi.newShaderResourceBindings()
+ bindings = [
+ QRhiShaderResourceBinding.sampledTexture(0, QRhiShaderResourceBinding.FragmentStage,
+ self.m_texture, self.m_sampler)
+ ]
+ self.m_fullscreenQuadSrb.setBindings(bindings)
+ self.m_fullscreenQuadSrb.create()
+
+ self.m_fullscreenQuadPipeline = self.m_rhi.newGraphicsPipeline()
+ stages = [
+ QRhiShaderStage(QRhiShaderStage.Vertex, getShader(":/quad.vert.qsb")),
+ QRhiShaderStage(QRhiShaderStage.Fragment, getShader(":/quad.frag.qsb"))
+ ]
+ self.m_fullscreenQuadPipeline.setShaderStages(stages)
+ layout = QRhiVertexInputLayout()
+ self.m_fullscreenQuadPipeline.setVertexInputLayout(layout)
+ self.m_fullscreenQuadPipeline.setShaderResourceBindings(self.m_fullscreenQuadSrb)
+ self.m_fullscreenQuadPipeline.setRenderPassDescriptor(self.m_rp)
+ self.m_fullscreenQuadPipeline.create()
+
+ def customRender(self):
+ resourceUpdates = self.m_rhi.nextResourceUpdateBatch()
+
+ if self.m_initialUpdates:
+ resourceUpdates.merge(self.m_initialUpdates)
+ self.m_initialUpdates = None
+
+ self.m_rotation += 1.0
+ modelViewProjection = self.m_viewProjection
+ modelViewProjection.rotate(self.m_rotation, 0, 1, 0)
+ projection = numpy.array(modelViewProjection.data(),
+ dtype=numpy.float32)
+ resourceUpdates.updateDynamicBuffer(self.m_ubuf, 0, 64,
+ projection.tobytes())
+
+ self.m_opacity += self.m_opacityDir * 0.005
+ if self.m_opacity < 0.0 or self.m_opacity > 1.0:
+ self.m_opacityDir *= -1
+ self.m_opacity = max(0.0, min(1.0, self.m_opacity))
+
+ opacity = numpy.array([self.m_opacity], dtype=numpy.float32)
+ resourceUpdates.updateDynamicBuffer(self.m_ubuf, 64, 4,
+ opacity.tobytes())
+
+ cb = self.m_sc.currentFrameCommandBuffer()
+ outputSizeInPixels = self.m_sc.currentPixelSize()
+
+ # (re)create the texture with a size matching the output surface size,
+ # when necessary.
+ self.ensureFullscreenTexture(outputSizeInPixels, resourceUpdates)
+
+ cv = QRhiDepthStencilClearValue(1.0, 0)
+ cb.beginPass(self.m_sc.currentFrameRenderTarget(), Qt.black,
+ cv, resourceUpdates)
+
+ cb.setGraphicsPipeline(self.m_fullscreenQuadPipeline)
+ viewport = QRhiViewport(0, 0, outputSizeInPixels.width(),
+ outputSizeInPixels.height())
+ cb.setViewport(viewport)
+ cb.setShaderResources()
+ cb.draw(3)
+
+ cb.setGraphicsPipeline(self.m_colorPipeline)
+ cb.setShaderResources()
+ vbufBinding = (self.m_vbuf, 0)
+ cb.setVertexInput(0, [vbufBinding])
+ cb.draw(3)
+ cb.endPass()
diff --git a/examples/gui/rhiwindow/rhiwindow.pyproject b/examples/gui/rhiwindow/rhiwindow.pyproject
new file mode 100644
index 000000000..a807b49bf
--- /dev/null
+++ b/examples/gui/rhiwindow/rhiwindow.pyproject
@@ -0,0 +1,5 @@
+{
+ "files": ["main.py", "rhiwindow.py", "rhiwindow.qrc",
+ "shaders/color.frag", "shaders/color.vert",
+ "shaders/quad.frag", "shaders/quad.vert"]
+}
diff --git a/examples/gui/rhiwindow/rhiwindow.qrc b/examples/gui/rhiwindow/rhiwindow.qrc
new file mode 100644
index 000000000..1009ec5dd
--- /dev/null
+++ b/examples/gui/rhiwindow/rhiwindow.qrc
@@ -0,0 +1,8 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource>
+ <file alias="color.vert.qsb">shaders/prebuilt/color.vert.qsb</file>
+ <file alias="color.frag.qsb">shaders/prebuilt/color.frag.qsb</file>
+ <file alias="quad.vert.qsb">shaders/prebuilt/quad.vert.qsb</file>
+ <file alias="quad.frag.qsb">shaders/prebuilt/quad.frag.qsb</file>
+</qresource>
+</RCC>
diff --git a/examples/gui/rhiwindow/shaders/color.frag b/examples/gui/rhiwindow/shaders/color.frag
new file mode 100644
index 000000000..6e0a3bc91
--- /dev/null
+++ b/examples/gui/rhiwindow/shaders/color.frag
@@ -0,0 +1,15 @@
+#version 440
+
+layout(location = 0) in vec3 v_color;
+
+layout(location = 0) out vec4 fragColor;
+
+layout(std140, binding = 0) uniform buf {
+ mat4 mvp;
+ float opacity;
+};
+
+void main()
+{
+ fragColor = vec4(v_color * opacity, opacity);
+}
diff --git a/examples/gui/rhiwindow/shaders/color.vert b/examples/gui/rhiwindow/shaders/color.vert
new file mode 100644
index 000000000..70852ab86
--- /dev/null
+++ b/examples/gui/rhiwindow/shaders/color.vert
@@ -0,0 +1,17 @@
+#version 440
+
+layout(location = 0) in vec4 position;
+layout(location = 1) in vec3 color;
+
+layout(location = 0) out vec3 v_color;
+
+layout(std140, binding = 0) uniform buf {
+ mat4 mvp;
+ float opacity;
+};
+
+void main()
+{
+ v_color = color;
+ gl_Position = mvp * position;
+}
diff --git a/examples/gui/rhiwindow/shaders/prebuilt/color.frag.qsb b/examples/gui/rhiwindow/shaders/prebuilt/color.frag.qsb
new file mode 100644
index 000000000..b4db470e5
--- /dev/null
+++ b/examples/gui/rhiwindow/shaders/prebuilt/color.frag.qsb
Binary files differ
diff --git a/examples/gui/rhiwindow/shaders/prebuilt/color.vert.qsb b/examples/gui/rhiwindow/shaders/prebuilt/color.vert.qsb
new file mode 100644
index 000000000..ab046b77f
--- /dev/null
+++ b/examples/gui/rhiwindow/shaders/prebuilt/color.vert.qsb
Binary files differ
diff --git a/examples/gui/rhiwindow/shaders/prebuilt/quad.frag.qsb b/examples/gui/rhiwindow/shaders/prebuilt/quad.frag.qsb
new file mode 100644
index 000000000..c2ea3cf25
--- /dev/null
+++ b/examples/gui/rhiwindow/shaders/prebuilt/quad.frag.qsb
Binary files differ
diff --git a/examples/gui/rhiwindow/shaders/prebuilt/quad.vert.qsb b/examples/gui/rhiwindow/shaders/prebuilt/quad.vert.qsb
new file mode 100644
index 000000000..f0b64f750
--- /dev/null
+++ b/examples/gui/rhiwindow/shaders/prebuilt/quad.vert.qsb
Binary files differ
diff --git a/examples/gui/rhiwindow/shaders/quad.frag b/examples/gui/rhiwindow/shaders/quad.frag
new file mode 100644
index 000000000..65882a429
--- /dev/null
+++ b/examples/gui/rhiwindow/shaders/quad.frag
@@ -0,0 +1,11 @@
+#version 440
+
+layout(location = 0) in vec2 v_uv;
+layout(location = 0) out vec4 fragColor;
+layout(binding = 0) uniform sampler2D tex;
+
+void main()
+{
+ vec4 c = texture(tex, v_uv);
+ fragColor = vec4(c.rgb * c.a, c.a);
+}
diff --git a/examples/gui/rhiwindow/shaders/quad.vert b/examples/gui/rhiwindow/shaders/quad.vert
new file mode 100644
index 000000000..359896d08
--- /dev/null
+++ b/examples/gui/rhiwindow/shaders/quad.vert
@@ -0,0 +1,10 @@
+#version 440
+
+layout (location = 0) out vec2 v_uv;
+
+void main()
+{
+ // https://www.saschawillems.de/blog/2016/08/13/vulkan-tutorial-on-rendering-a-fullscreen-quad-without-buffers/
+ v_uv = vec2((gl_VertexIndex << 1) & 2, gl_VertexIndex & 2);
+ gl_Position = vec4(v_uv * 2.0 - 1.0, 0.0, 1.0);
+}
diff --git a/examples/httpserver/afterrequest/doc/afterrequest.rst b/examples/httpserver/afterrequest/doc/afterrequest.rst
new file mode 100644
index 000000000..0e81a6707
--- /dev/null
+++ b/examples/httpserver/afterrequest/doc/afterrequest.rst
@@ -0,0 +1,5 @@
+HTTP Server After Request Example
+=================================
+
+A Python application that demonstrates the analogous example in C++
+`AfterRequest Example <https://doc.qt.io/qt-6/qthttpserver-afterrequest-example.html>`_
diff --git a/examples/httpserver/afterrequest/main.py b/examples/httpserver/afterrequest/main.py
new file mode 100644
index 000000000..e68c992ec
--- /dev/null
+++ b/examples/httpserver/afterrequest/main.py
@@ -0,0 +1,36 @@
+# Copyright (C) 2020 Mikhail Svetkin <mikhail.svetkin@gmail.com>
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the /httpserver/afterrequest from from Qt"""
+
+import sys
+
+from PySide6.QtCore import QCoreApplication
+from PySide6.QtNetwork import QHostAddress
+from PySide6.QtHttpServer import QHttpServer
+
+
+def route(request):
+ return "Hello world"
+
+
+def after_request(response, request):
+ response.setHeader(b"Server", b"Super server!")
+
+
+if __name__ == '__main__':
+ app = QCoreApplication(sys.argv)
+ httpServer = QHttpServer()
+ httpServer.route("/", route)
+
+ httpServer.afterRequest(after_request)
+
+ port = httpServer.listen(QHostAddress.Any)
+ if port == 0:
+ print("Server failed to listen on a port.", file=sys.stderr)
+ sys.exit(-1)
+
+ print(f"Running on http://127.0.0.1:{port}/ (Press CTRL+\\ to quit)")
+
+ sys.exit(app.exec())
diff --git a/examples/installer_test/hello.py b/examples/installer_test/hello.py
index 775fe1532..3921b5d51 100644
--- a/examples/installer_test/hello.py
+++ b/examples/installer_test/hello.py
@@ -1,44 +1,5 @@
-# It has been edited by fix-complaints.py .
-
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""
hello.py
@@ -70,7 +31,7 @@ class MyWidget(QWidget):
super().__init__()
self.hello = ["Hallo Welt", "你好,世界", "Hei maailma",
- "Hola Mundo", "Привет мир"]
+ "Hola Mundo", "Привет мир"]
self.button = QPushButton("Click me!")
self.text = QLabel(f"Hello World auto_quit={auto_quit}")
@@ -92,7 +53,10 @@ class MyWidget(QWidget):
if __name__ == "__main__":
print("Start of hello.py ", time.ctime())
print(" sys.version = ", sys.version.splitlines()[0])
- print(" platform.platform() = ", platform.platform())
+ # Nuitka and hence pyside6-deploy fails on Python versions <= 3.9
+ # when this module is used
+ if sys.version_info.minor > 9:
+ print(" platform.platform() = ", platform.platform())
app = QApplication()
diff --git a/examples/installer_test/hello_app.spec b/examples/installer_test/hello_app.spec
index 05ff1b8cb..5ae00a01f 100644
--- a/examples/installer_test/hello_app.spec
+++ b/examples/installer_test/hello_app.spec
@@ -1,45 +1,5 @@
-# This Python file uses the following encoding: utf-8
-# It has been edited by fix-complaints.py .
-
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""
hello_app.spec
diff --git a/examples/location/mapviewer/MapViewer/Main.qml b/examples/location/mapviewer/MapViewer/Main.qml
new file mode 100644
index 000000000..f4ae7ea04
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/Main.qml
@@ -0,0 +1,460 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+import QtLocation
+import QtPositioning
+import MapViewer
+
+ApplicationWindow {
+ id: appWindow
+ property variant mapview
+ property variant minimap
+ property variant plugin
+ property variant parameters
+
+ //defaults
+ //! [routecoordinate]
+ property variant fromCoordinate: QtPositioning.coordinate(59.9483, 10.7695)
+ property variant toCoordinate: QtPositioning.coordinate(59.9645, 10.671)
+ //! [routecoordinate]
+
+ function createMap(provider)
+ {
+ if (parameters && parameters.length>0)
+ plugin = Qt.createQmlObject ('import QtLocation; Plugin{ name:"' + provider + '"; parameters: appWindow.parameters}', appWindow)
+ else
+ plugin = Qt.createQmlObject ('import QtLocation; Plugin{ name:"' + provider + '"}', appWindow)
+
+ if (minimap) {
+ minimap.destroy()
+ minimap = null
+ }
+
+ var zoomLevel = null
+ var tilt = null
+ var bearing = null
+ var fov = null
+ var center = null
+ var panelExpanded = null
+ if (mapview) {
+ zoomLevel = mapview.zoomLevel
+ tilt = mapview.tilt
+ bearing = mapview.bearing
+ fov = mapview.fieldOfView
+ center = mapview.center
+ panelExpanded = mapview.slidersExpanded
+ mapview.destroy()
+ }
+ mapview = mapComponent.createObject(page);
+ mapview.map.plugin = plugin;
+
+ if (zoomLevel != null) {
+ mapview.map.tilt = tilt
+ mapview.map.bearing = bearing
+ mapview.map.fieldOfView = fov
+ mapview.map.zoomLevel = zoomLevel
+ mapview.map.center = center
+ mapview.map.slidersExpanded = panelExpanded
+ } else {
+ // Use an integer ZL to enable nearest interpolation, if possible.
+ mapview.map.zoomLevel = Math.floor((mapview.map.maximumZoomLevel - mapview.map.minimumZoomLevel)/2)
+ // defaulting to 45 degrees, if possible.
+ mapview.map.fieldOfView = Math.min(Math.max(45.0, mapview.map.minimumFieldOfView), mapview.maximumFieldOfView)
+ }
+
+ mapview.forceActiveFocus()
+ }
+
+ function getPlugins()
+ {
+ var plugin = Qt.createQmlObject ('import QtLocation; Plugin {}', appWindow)
+ var myArray = new Array()
+ for (var i = 0; i<plugin.availableServiceProviders.length; i++) {
+ var tempPlugin = Qt.createQmlObject ('import QtLocation; Plugin {name: "' + plugin.availableServiceProviders[i]+ '"}', appWindow)
+ if (tempPlugin.supportsMapping())
+ myArray.push(tempPlugin.name)
+ }
+ myArray.sort()
+ return myArray
+ }
+
+ function initializeProviders(pluginParameters)
+ {
+ var parameters = new Array()
+ for (var prop in pluginParameters){
+ var parameter = Qt.createQmlObject('import QtLocation; PluginParameter{ name: "'+ prop + '"; value: "' + pluginParameters[prop]+'"}',appWindow)
+ parameters.push(parameter)
+ }
+ appWindow.parameters = parameters
+ var plugins = getPlugins()
+ mainMenu.providerMenu.createMenu(plugins)
+ for (var i = 0; i<plugins.length; i++) {
+ if (plugins[i] === "osm")
+ mainMenu.selectProvider(plugins[i])
+ }
+ }
+
+ title: qsTr("Mapviewer")
+ height: 640
+ width: 360
+ visible: true
+ menuBar: mainMenu
+
+ //! [geocode0]
+ Address {
+ id :fromAddress
+ street: "Sandakerveien 116"
+ city: "Oslo"
+ country: "Norway"
+ state : ""
+ postalCode: "0484"
+ }
+ //! [geocode0]
+
+ Address {
+ id: toAddress
+ street: "Holmenkollveien 140"
+ city: "Oslo"
+ country: "Norway"
+ postalCode: "0791"
+ }
+
+ MainMenu {
+ id: mainMenu
+ plugin: appWindow.plugin
+
+ function toggleMiniMapState()
+ {
+ console.log("MiniMap with " + plugin)
+ if (minimap) {
+ minimap.destroy()
+ minimap = null
+ } else {
+ minimap = Qt.createQmlObject ('import "map"; MiniMap{ z: mapview.z + 2 }', mapview)
+ }
+ }
+
+ function setLanguage(lang)
+ {
+ mapview.map.plugin.locales = lang;
+ stackView.pop(page)
+ }
+
+ onSelectProvider: (providerName) => {
+ stackView.pop()
+ for (var i = 0; i < providerMenu.count; i++) {
+ providerMenu.actionAt(i).checked = providerMenu.actionAt(i).text === providerName
+ }
+
+ createMap(providerName)
+ if (mapview.error === mapview.NoError) {
+ selectMapType(mapview.map.activeMapType)
+ } else {
+ mainMenu.clearMenu(mapTypeMenu)
+ }
+ }
+
+ onSelectMapType: (mapType) => {
+ stackView.pop(page)
+ for (var i = 0; i < mapTypeMenu.count; i++) {
+ mapTypeMenu.actionAt(i).checked = mapTypeMenu.actionAt(i).text === mapType.name
+ }
+ mapview.map.activeMapType = mapType
+ }
+
+
+ onSelectTool: (tool) => {
+ switch (tool) {
+ case "AddressRoute":
+ stackView.pop({item:page, immediate: true})
+ stackView.push("forms/RouteAddress.qml" ,
+ { "plugin": mapview.map.plugin,
+ "toAddress": toAddress,
+ "fromAddress": fromAddress})
+ stackView.currentItem.showRoute.connect(mapview.calculateCoordinateRoute)
+ stackView.currentItem.showMessage.connect(stackView.showMessage)
+ stackView.currentItem.closeForm.connect(stackView.closeForm)
+ break
+ case "CoordinateRoute":
+ stackView.pop({item:page, immediate: true})
+ stackView.push("forms/RouteCoordinate.qml" ,
+ { "toCoordinate": toCoordinate,
+ "fromCoordinate": fromCoordinate})
+ stackView.currentItem.showRoute.connect(mapview.calculateCoordinateRoute)
+ stackView.currentItem.closeForm.connect(stackView.closeForm)
+ break
+ case "Geocode":
+ stackView.pop({item:page, immediate: true})
+ stackView.push("forms/Geocode.qml",
+ { "address": fromAddress})
+ stackView.currentItem.showPlace.connect(mapview.geocode)
+ stackView.currentItem.closeForm.connect(stackView.closeForm)
+ break
+ case "RevGeocode":
+ stackView.pop({item:page, immediate: true})
+ stackView.push("forms/ReverseGeocode.qml",
+ { "coordinate": fromCoordinate })
+ stackView.currentItem.showPlace.connect(mapview.geocode)
+ stackView.currentItem.closeForm.connect(stackView.closeForm)
+ break
+ case "Language":
+ stackView.pop({item:page, immediate: true})
+ stackView.push("forms/Locale.qml",
+ { "locale": mapview.map.plugin.locales[0]})
+ stackView.currentItem.selectLanguage.connect(setLanguage)
+ stackView.currentItem.closeForm.connect(stackView.closeForm)
+ break
+ case "Clear":
+ mapview.map.clearData()
+ break
+ case "Prefetch":
+ mapview.map.prefetchData()
+ break
+ default:
+ console.log("Unsupported operation")
+ }
+ }
+
+ onToggleMapState: (state) => {
+ stackView.pop(page)
+ switch (state) {
+ case "FollowMe":
+ mapview.followme = !mapview.followme
+ break
+ case "MiniMap":
+ toggleMiniMapState()
+ isMiniMap = minimap
+ break
+ default:
+ console.log("Unsupported operation")
+ }
+ }
+ }
+
+ MapPopupMenu {
+ id: mapPopupMenu
+
+ function show(coordinate)
+ {
+ stackView.pop(page)
+ mapPopupMenu.coordinate = coordinate
+ mapPopupMenu.markersCount = mapview.markers.length
+ mapPopupMenu.mapItemsCount = mapview.mapItems.length
+ mapPopupMenu.popup()
+ }
+
+ onItemClicked: (item) => {
+ stackView.pop(page)
+ switch (item) {
+ case "addMarker":
+ mapview.addMarker()
+ break
+ case "getCoordinate":
+ mapview.coordinatesCaptured(coordinate.latitude, coordinate.longitude)
+ break
+ case "fitViewport":
+ mapview.map.fitViewportToMapItems()
+ break
+ case "deleteMarkers":
+ mapview.deleteMarkers()
+ break
+ default:
+ console.log("Unsupported operation:", item)
+ }
+ }
+ }
+
+ MarkerPopupMenu {
+ id: markerPopupMenu
+
+ function show(coordinate)
+ {
+ stackView.pop(page)
+ markerPopupMenu.markersCount = mapview.markers.length
+ markerPopupMenu.currentMarker = mapview.currentMarker
+ markerPopupMenu.popup()
+ }
+
+ function askForCoordinate()
+ {
+ stackView.push("forms/ReverseGeocode.qml",
+ { "title": qsTr("New Coordinate"),
+ "coordinate": mapview.markers[mapview.currentMarker].coordinate})
+ stackView.currentItem.showPlace.connect(moveMarker)
+ stackView.currentItem.closeForm.connect(stackView.closeForm)
+ }
+
+ function moveMarker(coordinate)
+ {
+ mapview.markers[mapview.currentMarker].coordinate = coordinate;
+ mapview.map.center = coordinate;
+ stackView.pop(page)
+ }
+
+ onItemClicked: (item) => {
+ stackView.pop(page)
+ switch (item) {
+ case "deleteMarker":
+ mapview.deleteMarker(mapview.currentMarker)
+ break;
+ case "getMarkerCoordinate":
+ mapview.coordinatesCaptured(mapview.markers[mapview.currentMarker].coordinate.latitude,
+ mapview.markers[mapview.currentMarker].coordinate.longitude)
+ break;
+ case "moveMarkerTo":
+ askForCoordinate()
+ break;
+ case "routeToNextPoint":
+ case "routeToNextPoints":
+ mapview.calculateMarkerRoute()
+ break
+ case "distanceToNextPoint":
+ var coordinate1 = mapview.markers[mapview.currentMarker].coordinate;
+ var coordinate2 = mapview.markers[mapview.currentMarker+1].coordinate;
+ var distance = Helper.formatDistance(coordinate1.distanceTo(coordinate2));
+ stackView.showMessage(qsTr("Distance"),"<b>" + qsTr("Distance:") + "</b> " + distance)
+ break
+ default:
+ console.log("Unsupported operation:", item)
+ }
+ }
+ }
+
+ ItemPopupMenu {
+ id: itemPopupMenu
+
+ function show(type,coordinate)
+ {
+ stackView.pop(page)
+ itemPopupMenu.type = type
+ itemPopupMenu.popup()
+ }
+
+ onItemClicked: {
+ stackView.pop(page)
+ switch (item) {
+ case "showRouteInfo":
+ stackView.showRouteListPage()
+ break;
+ case "deleteRoute":
+ mapview.routeModel.reset();
+ break;
+ case "showPointInfo":
+ mapview.showGeocodeInfo()
+ break;
+ case "deletePoint":
+ geocodeModel.reset()
+ break;
+ default:
+ console.log("Unsupported operation")
+ }
+ }
+ }
+
+ StackView {
+ id: stackView
+ anchors.fill: parent
+ focus: true
+ initialItem: Item {
+ id: page
+
+ Text {
+ visible: !supportsSsl && map && mapview.activeMapType && activeMapType.metadata.isHTTPS
+ text: "The active map type\n
+requires (missing) SSL\n
+support"
+ horizontalAlignment: Text.AlignHCenter
+ font.pixelSize: appWindow.width / 12
+ font.bold: true
+ color: "grey"
+ anchors.centerIn: parent
+ z: 12
+ }
+ }
+
+ function showMessage(title,message,backPage)
+ {
+ push("forms/Message.qml",
+ {
+ "title" : title,
+ "message" : message,
+ "backPage" : backPage
+ })
+ currentItem.closeForm.connect(closeMessage)
+ }
+
+ function closeMessage(backPage)
+ {
+ pop(backPage)
+ }
+
+ function closeForm()
+ {
+ pop(page)
+ }
+
+ function showRouteListPage()
+ {
+ push("forms/RouteList.qml",
+ {
+ "routeModel" : mapview.routeModel
+ })
+ currentItem.closeForm.connect(closeForm)
+ }
+ }
+
+ Component {
+ id: mapComponent
+
+ MapComponent {
+ width: page.width
+ height: page.height
+ onFollowmeChanged: mainMenu.isFollowMe = followme
+ map.onSupportedMapTypesChanged: mainMenu.mapTypeMenu.createMenu(map)
+ onCoordinatesCaptured: (latitude, longitude) => {
+ var text = "<b>" + qsTr("Latitude:") + "</b> " + Helper.roundNumber(latitude,4) + "<br/><b>" + qsTr("Longitude:") + "</b> " + Helper.roundNumber(longitude,4)
+ stackView.showMessage(qsTr("Coordinates"),text);
+ }
+ onGeocodeFinished:{
+ if (geocodeModel.status == GeocodeModel.Ready) {
+ if (geocodeModel.count == 0) {
+ stackView.showMessage(qsTr("Geocode Error"),qsTr("Unsuccessful geocode"))
+ } else if (geocodeModel.count > 1) {
+ stackView.showMessage(qsTr("Ambiguous geocode"), geocodeModel.count + " " +
+ qsTr("results found for the given address, please specify location"))
+ } else {
+ stackView.showMessage(qsTr("Location"), geocodeMessage(),page)
+ }
+ } else if (geocodeModel.status == GeocodeModel.Error) {
+ stackView.showMessage(qsTr("Geocode Error"),qsTr("Unsuccessful geocode"))
+ }
+ }
+ onRouteError: stackView.showMessage(qsTr("Route Error"),qsTr("Unable to find a route for the given points"),page)
+
+ onShowGeocodeInfo: stackView.showMessage(qsTr("Location"),geocodeMessage(),page)
+
+ map.onErrorChanged: {
+ if (map.error != mapview.NoError) {
+ var title = qsTr("ProviderError")
+ var message = mapview.errorString + "<br/><br/><b>" + qsTr("Try to select other provider") + "</b>"
+ if (map.error == mapview.MissingRequiredParameterError)
+ message += "<br/>" + qsTr("or see") + " \'mapviewer --help\' "
+ + qsTr("how to pass plugin parameters.")
+ stackView.showMessage(title,message);
+ }
+ }
+ onShowMainMenu: (coordinate) => mapPopupMenu.show(coordinate)
+ onShowMarkerMenu: (coordinate) => markerPopupMenu.show(coordinate)
+ onShowRouteMenu: (coordinate) => itemPopupMenu.show("Route",coordinate)
+ onShowPointMenu: (coordinate) => itemPopupMenu.show("Point",coordinate)
+ onShowRouteList: stackView.showRouteListPage()
+
+ TapHandler {
+ onTapped: {
+ }
+ }
+ }
+ }
+}
diff --git a/examples/location/mapviewer/MapViewer/forms/Geocode.qml b/examples/location/mapviewer/MapViewer/forms/Geocode.qml
new file mode 100644
index 000000000..885357dd3
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/forms/Geocode.qml
@@ -0,0 +1,42 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtPositioning
+
+GeocodeForm {
+
+ property variant address
+ signal showPlace(variant address)
+ signal closeForm()
+
+ goButton.onClicked: {
+ // fill out the Address element
+ address.street = street.text
+ address.city = city.text
+ address.state = stateName.text
+ address.country = country.text
+ address.postalCode = postalCode.text
+ showPlace(address)
+ }
+
+ clearButton.onClicked: {
+ street.text = ""
+ city.text = ""
+ stateName.text = ""
+ country.text = ""
+ postalCode.text = ""
+ }
+
+ cancelButton.onClicked: {
+ closeForm()
+ }
+
+ Component.onCompleted: {
+ street.text = address.street
+ city.text = address.city
+ stateName.text = address.state
+ country.text = address.country
+ postalCode.text = address.postalCode
+ }
+}
diff --git a/examples/location/mapviewer/MapViewer/forms/GeocodeForm.ui.qml b/examples/location/mapviewer/MapViewer/forms/GeocodeForm.ui.qml
new file mode 100644
index 000000000..cb56370ea
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/forms/GeocodeForm.ui.qml
@@ -0,0 +1,136 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+
+Item {
+ property alias goButton: goButton
+ property alias clearButton: clearButton
+ property alias postalCode: postalCode
+ property alias street: street
+ property alias city: city
+ property alias stateName: stateName
+ property alias country: country
+ property alias cancelButton: cancelButton
+ Rectangle {
+ id: tabRectangle
+ y: 20
+ height: tabTitle.height * 2
+ color: "#46a2da"
+ anchors.rightMargin: 0
+ anchors.leftMargin: 0
+ anchors.left: parent.left
+ anchors.right: parent.right
+
+ Label {
+ id: tabTitle
+ color: "#ffffff"
+ text: qsTr("Geocode")
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+ }
+
+ Item {
+ id: item2
+ anchors.rightMargin: 20
+ anchors.leftMargin: 20
+ anchors.bottomMargin: 20
+ anchors.topMargin: 20
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.top: tabRectangle.bottom
+
+
+ GridLayout {
+ id: gridLayout3
+ anchors.rightMargin: 0
+ anchors.bottomMargin: 0
+ anchors.leftMargin: 0
+ anchors.topMargin: 0
+ rowSpacing: 10
+ rows: 1
+ columns: 2
+ anchors.fill: parent
+
+ Label {
+ id: label2
+ text: qsTr("Street")
+ }
+
+ TextField {
+ id: street
+ Layout.fillWidth: true
+ }
+
+ Label {
+ id: label3
+ text: qsTr("City")
+ }
+
+ TextField {
+ id: city
+ Layout.fillWidth: true
+ }
+
+ Label {
+ id: label4
+ text: qsTr("State")
+ }
+
+ TextField {
+ id: stateName
+ Layout.fillWidth: true
+ }
+
+ Label {
+ id: label5
+ text: qsTr("Country")
+ }
+
+ TextField {
+ id: country
+ Layout.fillWidth: true
+ }
+
+ Label {
+ id: label6
+ text: qsTr("Postal Code")
+ }
+
+ TextField {
+ id: postalCode
+ Layout.fillWidth: true
+ }
+
+ RowLayout {
+ id: rowLayout1
+ Layout.columnSpan: 2
+ Layout.alignment: Qt.AlignRight
+
+ Button {
+ id: goButton
+ text: qsTr("Proceed")
+ }
+
+ Button {
+ id: clearButton
+ text: qsTr("Clear")
+ }
+
+ Button {
+ id: cancelButton
+ text: qsTr("Cancel")
+ }
+ }
+
+ Item {
+ Layout.fillHeight: true
+ Layout.columnSpan: 2
+ }
+ }
+ }
+}
diff --git a/examples/location/mapviewer/MapViewer/forms/Locale.qml b/examples/location/mapviewer/MapViewer/forms/Locale.qml
new file mode 100644
index 000000000..9ba7dd7f0
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/forms/Locale.qml
@@ -0,0 +1,45 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtPositioning
+
+LocaleForm {
+ property string locale
+ signal selectLanguage(string language)
+ signal closeForm()
+
+ goButton.onClicked: {
+
+ if (!languageGroup.checkedButton) return
+
+ if (otherRadioButton.checked) {
+ selectLanguage(language.text)
+ } else {
+ selectLanguage(languageGroup.checkedButton.text)
+ }
+ }
+
+ clearButton.onClicked: {
+ language.text = ""
+ }
+
+ cancelButton.onClicked: {
+ closeForm()
+ }
+
+ Component.onCompleted: {
+ switch (locale) {
+ case "en":
+ enRadioButton.checked = true;
+ break
+ case "fr":
+ frRadioButton.checked = true;
+ break
+ default:
+ otherRadioButton.checked = true;
+ language.text = locale
+ break
+ }
+ }
+}
diff --git a/examples/location/mapviewer/MapViewer/forms/LocaleForm.ui.qml b/examples/location/mapviewer/MapViewer/forms/LocaleForm.ui.qml
new file mode 100644
index 000000000..9e1ec1807
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/forms/LocaleForm.ui.qml
@@ -0,0 +1,116 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+
+Item {
+ property alias clearButton: clearButton
+ property alias goButton: goButton
+ property alias cancelButton: cancelButton
+ property alias tabTitle: tabTitle
+ property alias languageGroup: languageGroup
+ property alias enRadioButton: enRadioButton
+ property alias frRadioButton: frRadioButton
+ property alias otherRadioButton: otherRadioButton
+ property alias language: language
+
+ Rectangle {
+ id: tabRectangle
+ y: 20
+ height: tabTitle.height * 2
+ color: "#46a2da"
+ anchors.rightMargin: 0
+ anchors.leftMargin: 0
+ anchors.left: parent.left
+ anchors.right: parent.right
+
+ Label {
+ id: tabTitle
+ color: "#ffffff"
+ text: "Locale"
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+ }
+
+ Item {
+ id: item2
+ anchors.rightMargin: 20
+ anchors.leftMargin: 20
+ anchors.bottomMargin: 20
+ anchors.topMargin: 20
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.top: tabRectangle.bottom
+
+ GridLayout {
+ id: gridLayout3
+ anchors.rightMargin: 0
+ anchors.bottomMargin: 0
+ anchors.leftMargin: 0
+ anchors.topMargin: 0
+ rowSpacing: 10
+ rows: 1
+ columns: 2
+ anchors.fill: parent
+
+ ButtonGroup { id: languageGroup }
+ RadioButton {
+ id: enRadioButton
+ text: qsTr("en")
+ ButtonGroup.group: languageGroup
+ Layout.columnSpan: 2
+ }
+
+ RadioButton {
+ id: frRadioButton
+ text: qsTr("fr")
+ ButtonGroup.group: languageGroup
+ Layout.columnSpan: 2
+ }
+
+ RadioButton {
+ id: otherRadioButton
+ text: qsTr("Other")
+ ButtonGroup.group: languageGroup
+ }
+
+ TextField {
+ id: language
+ Layout.fillWidth: true
+ placeholderText: qsTr("")
+ }
+
+ RowLayout {
+ id: rowLayout1
+ Layout.columnSpan: 2
+ Layout.alignment: Qt.AlignRight
+
+ Button {
+ id: goButton
+ text: qsTr("Proceed")
+ }
+
+ Button {
+ id: clearButton
+ text: qsTr("Clear")
+ }
+
+ Button {
+ id: cancelButton
+ text: qsTr("Cancel")
+ }
+ }
+
+ Item {
+ Layout.fillHeight: true
+ Layout.columnSpan: 2
+ }
+
+
+ }
+ }
+}
diff --git a/examples/location/mapviewer/MapViewer/forms/Message.qml b/examples/location/mapviewer/MapViewer/forms/Message.qml
new file mode 100644
index 000000000..583bc2dda
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/forms/Message.qml
@@ -0,0 +1,21 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+
+MessageForm {
+ property string title
+ property string message
+ property variant backPage
+
+ signal closeForm(variant backPage)
+
+ button.onClicked: {
+ closeForm(backPage)
+ }
+
+ Component.onCompleted: {
+ messageText.text = message
+ messageTitle.text = title
+ }
+}
diff --git a/examples/location/mapviewer/MapViewer/forms/MessageForm.ui.qml b/examples/location/mapviewer/MapViewer/forms/MessageForm.ui.qml
new file mode 100644
index 000000000..426c72757
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/forms/MessageForm.ui.qml
@@ -0,0 +1,69 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+
+Item {
+ id: root
+ property alias messageText: messageText
+ property alias messageTitle: messageTitle
+ property alias button: button
+
+ Rectangle {
+ id: tabRectangle
+ y: 20
+ height: messageTitle.height * 2
+ color: "#46a2da"
+ anchors.rightMargin: 0
+ anchors.leftMargin: 0
+ anchors.left: parent.left
+ anchors.right: parent.right
+
+ Label {
+ id: messageTitle
+ color: "#ffffff"
+ text: qsTr("type")
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+ }
+
+ Item {
+ anchors.rightMargin: 20
+ anchors.leftMargin: 20
+ anchors.bottomMargin: 20
+ anchors.topMargin: 20
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.top: tabRectangle.bottom
+
+ ColumnLayout {
+ id: columnLayout1
+ spacing: 20
+ anchors.fill: parent
+
+ Label {
+ id: messageText
+ text: qsTr("message")
+ Layout.fillWidth: true
+ horizontalAlignment: Text.AlignHCenter
+ wrapMode: Text.WordWrap
+ textFormat: Text.RichText
+ }
+
+ Button {
+ id: button
+ text: qsTr("OK")
+ Layout.alignment: Qt.AlignHCenter
+ }
+
+ Item {
+ Layout.fillHeight: true
+ }
+ }
+ }
+}
+
diff --git a/examples/location/mapviewer/MapViewer/forms/ReverseGeocode.qml b/examples/location/mapviewer/MapViewer/forms/ReverseGeocode.qml
new file mode 100644
index 000000000..31122a2e9
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/forms/ReverseGeocode.qml
@@ -0,0 +1,38 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtPositioning
+
+//Reverse Geocode Dialog
+ReverseGeocodeForm {
+ property string title;
+ property variant coordinate
+ signal showPlace(variant coordinate)
+ signal closeForm()
+
+ goButton.onClicked: {
+ var coordinate = QtPositioning.coordinate(parseFloat(latitude.text),
+ parseFloat(longitude.text));
+ if (coordinate.isValid) {
+ showPlace(coordinate)
+ }
+ }
+
+ clearButton.onClicked: {
+ latitude.text = ""
+ longitude.text = ""
+ }
+
+ cancelButton.onClicked: {
+ closeForm()
+ }
+
+ Component.onCompleted: {
+ latitude.text = "" + coordinate.latitude
+ longitude.text = "" + coordinate.longitude
+ if (title.length != 0) {
+ tabTitle.text = title;
+ }
+ }
+}
diff --git a/examples/location/mapviewer/MapViewer/forms/ReverseGeocodeForm.ui.qml b/examples/location/mapviewer/MapViewer/forms/ReverseGeocodeForm.ui.qml
new file mode 100644
index 000000000..1d937ee90
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/forms/ReverseGeocodeForm.ui.qml
@@ -0,0 +1,103 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+
+Item {
+ property alias clearButton: clearButton
+ property alias goButton: goButton
+ property alias longitude: longitude
+ property alias latitude: latitude
+ property alias cancelButton: cancelButton
+ property alias tabTitle: tabTitle
+ Rectangle {
+ id: tabRectangle
+ y: 20
+ height: tabTitle.height * 2
+ color: "#46a2da"
+ anchors.rightMargin: 0
+ anchors.leftMargin: 0
+ anchors.left: parent.left
+ anchors.right: parent.right
+
+ Label {
+ id: tabTitle
+ color: "#ffffff"
+ text: qsTr("Reverse Geocode")
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+ }
+
+ Item {
+ id: item2
+ anchors.rightMargin: 20
+ anchors.leftMargin: 20
+ anchors.bottomMargin: 20
+ anchors.topMargin: 20
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.top: tabRectangle.bottom
+
+ GridLayout {
+ id: gridLayout3
+ anchors.rightMargin: 0
+ anchors.bottomMargin: 0
+ anchors.leftMargin: 0
+ anchors.topMargin: 0
+ rowSpacing: 10
+ rows: 1
+ columns: 2
+ anchors.fill: parent
+
+ Label {
+ id: label2
+ text: qsTr("Latitude")
+ }
+
+ TextField {
+ id: latitude
+ Layout.fillWidth: true
+ }
+
+ Label {
+ id: label3
+ text: qsTr("Longitude")
+ }
+
+ TextField {
+ id: longitude
+ Layout.fillWidth: true
+ placeholderText: qsTr("")
+ }
+
+ RowLayout {
+ id: rowLayout1
+ Layout.columnSpan: 2
+ Layout.alignment: Qt.AlignRight
+
+ Button {
+ id: goButton
+ text: qsTr("Proceed")
+ }
+
+ Button {
+ id: clearButton
+ text: qsTr("Clear")
+ }
+
+ Button {
+ id: cancelButton
+ text: qsTr("Cancel")
+ }
+ }
+ Item {
+ Layout.fillHeight: true
+ Layout.columnSpan: 2
+ }
+ }
+ }
+}
diff --git a/examples/location/mapviewer/MapViewer/forms/RouteAddress.qml b/examples/location/mapviewer/MapViewer/forms/RouteAddress.qml
new file mode 100644
index 000000000..3676c1374
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/forms/RouteAddress.qml
@@ -0,0 +1,105 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtLocation
+import QtPositioning
+
+RouteAddressForm {
+ property alias plugin : tempGeocodeModel.plugin;
+ property variant fromAddress;
+ property variant toAddress;
+ signal showMessage(string topic, string message)
+ signal showRoute(variant startCoordinate,variant endCoordinate)
+ signal closeForm()
+
+ goButton.onClicked: {
+ tempGeocodeModel.reset()
+ fromAddress.country = fromCountry.text
+ fromAddress.street = fromStreet.text
+ fromAddress.city = fromCity.text
+ toAddress.country = toCountry.text
+ toAddress.street = toStreet.text
+ toAddress.city = toCity.text
+ tempGeocodeModel.startCoordinate = QtPositioning.coordinate()
+ tempGeocodeModel.endCoordinate = QtPositioning.coordinate()
+ tempGeocodeModel.query = fromAddress
+ tempGeocodeModel.update();
+ goButton.enabled = false;
+ }
+
+ clearButton.onClicked: {
+ fromStreet.text = ""
+ fromCity.text = ""
+ fromCountry.text = ""
+ toStreet.text = ""
+ toCity.text = ""
+ toCountry.text = ""
+ }
+
+ cancelButton.onClicked: {
+ closeForm()
+ }
+
+ Component.onCompleted: {
+ fromStreet.text = fromAddress.street
+ fromCity.text = fromAddress.city
+ fromCountry.text = fromAddress.country
+ toStreet.text = toAddress.street
+ toCity.text = toAddress.city
+ toCountry.text = toAddress.country
+ }
+
+ GeocodeModel {
+ id: tempGeocodeModel
+
+ property int success: 0
+ property variant startCoordinate
+ property variant endCoordinate
+
+ onCountChanged: {
+ if (success == 1 && count == 1) {
+ query = toAddress
+ update();
+ }
+ }
+
+ onStatusChanged: {
+ if ((status == GeocodeModel.Ready) && (count == 1)) {
+ success++
+ if (success == 1) {
+ startCoordinate.latitude = get(0).coordinate.latitude
+ startCoordinate.longitude = get(0).coordinate.longitude
+ }
+ if (success == 2) {
+ endCoordinate.latitude = get(0).coordinate.latitude
+ endCoordinate.longitude = get(0).coordinate.longitude
+ success = 0
+ if (startCoordinate.isValid && endCoordinate.isValid)
+ showRoute(startCoordinate,endCoordinate)
+ else
+ goButton.enabled = true
+ }
+ } else if ((status == GeocodeModel.Ready) || (status == GeocodeModel.Error)) {
+ var st = (success == 0 ) ? "start" : "end"
+ success = 0
+ if ((status == GeocodeModel.Ready) && (count == 0 )) {
+ showMessage(qsTr("Geocode Error"),qsTr("Unsuccessful geocode"));
+ goButton.enabled = true;
+ }
+ else if (status == GeocodeModel.Error) {
+ showMessage(qsTr("Geocode Error"),
+ qsTr("Unable to find location for the") + " " +
+ st + " " +qsTr("point"))
+ goButton.enabled = true;
+ }
+ else if ((status == GeocodeModel.Ready) && (count > 1 )) {
+ showMessage(qsTr("Ambiguous geocode"),
+ count + " " + qsTr("results found for the") +
+ " " + st + " " +qsTr("point, please specify location"))
+ goButton.enabled = true;
+ }
+ }
+ }
+ }
+}
diff --git a/examples/location/mapviewer/MapViewer/forms/RouteAddressForm.ui.qml b/examples/location/mapviewer/MapViewer/forms/RouteAddressForm.ui.qml
new file mode 100644
index 000000000..ee9227013
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/forms/RouteAddressForm.ui.qml
@@ -0,0 +1,160 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+
+Item {
+ property alias fromStreet: fromStreet
+ property alias fromCountry: fromCountry
+ property alias toStreet: toStreet
+ property alias toCity: toCity
+ property alias toCountry: toCountry
+ property alias fromCity: fromCity
+ property alias goButton: goButton
+ property alias clearButton: clearButton
+ property alias cancelButton: cancelButton
+
+ Rectangle {
+ id: tabRectangle
+ y: 20
+ height: tabTitle.height * 2
+ color: "#46a2da"
+ anchors.rightMargin: 0
+ anchors.leftMargin: 0
+ anchors.left: parent.left
+ anchors.right: parent.right
+
+ Label {
+ id: tabTitle
+ color: "#ffffff"
+ text: qsTr("Route Address")
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+ }
+
+ Item {
+ id: item2
+ anchors.rightMargin: 20
+ anchors.leftMargin: 20
+ anchors.bottomMargin: 20
+ anchors.topMargin: 20
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.top: tabRectangle.bottom
+
+ GridLayout {
+ id: gridLayout3
+ rowSpacing: 10
+ rows: 1
+ columns: 2
+ anchors.fill: parent
+
+ Label {
+ id: label1
+ text: qsTr("From")
+ font.bold: true
+ Layout.columnSpan: 2
+ Layout.alignment: Qt.AlignHCenter
+ }
+
+ Label {
+ id: label2
+ text: qsTr("Street")
+ }
+
+ TextField {
+ id: fromStreet
+ Layout.fillWidth: true
+ }
+
+ Label {
+ id: label3
+ text: qsTr("City")
+ }
+
+ TextField {
+ id: fromCity
+ Layout.fillWidth: true
+ }
+
+ Label {
+ id: label7
+ text: qsTr("Country")
+ }
+
+ TextField {
+ id: fromCountry
+ Layout.fillWidth: true
+ }
+
+ Label {
+ id: label6
+ text: qsTr("To")
+ font.bold: true
+ Layout.columnSpan: 2
+ Layout.alignment: Qt.AlignHCenter
+ }
+
+ Label {
+ id: label4
+ text: qsTr("Street")
+ }
+
+ TextField {
+ id: toStreet
+ Layout.fillWidth: true
+ }
+
+ Label {
+ id: label5
+ text: qsTr("City")
+ }
+
+ TextField {
+ id: toCity
+ Layout.fillWidth: true
+ }
+
+ Label {
+ id: label8
+ text: qsTr("Country")
+ }
+
+ TextField {
+ id: toCountry
+ Layout.fillWidth: true
+ }
+
+ RowLayout {
+ id: rowLayout1
+ Layout.columnSpan: 2
+ Layout.alignment: Qt.AlignRight
+
+ Button {
+ id: goButton
+ text: qsTr("Proceed")
+ }
+
+ Button {
+ id: clearButton
+ text: qsTr("Clear")
+ }
+
+ Button {
+ id: cancelButton
+ text: qsTr("Cancel")
+ }
+ }
+
+ Item {
+ Layout.fillHeight: true
+ Layout.columnSpan: 2
+ }
+ }
+ }
+}
diff --git a/examples/location/mapviewer/MapViewer/forms/RouteCoordinate.qml b/examples/location/mapviewer/MapViewer/forms/RouteCoordinate.qml
new file mode 100644
index 000000000..003556c51
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/forms/RouteCoordinate.qml
@@ -0,0 +1,41 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtPositioning
+
+RouteCoordinateForm {
+ property variant toCoordinate
+ property variant fromCoordinate
+ signal showRoute(variant startCoordinate,variant endCoordinate)
+ signal closeForm()
+
+ goButton.onClicked: {
+ var startCoordinate = QtPositioning.coordinate(parseFloat(fromLatitude.text),
+ parseFloat(fromLongitude.text));
+ var endCoordinate = QtPositioning.coordinate(parseFloat(toLatitude.text),
+ parseFloat(toLongitude.text));
+ if (startCoordinate.isValid && endCoordinate.isValid) {
+ goButton.enabled = false;
+ showRoute(startCoordinate,endCoordinate)
+ }
+ }
+
+ clearButton.onClicked: {
+ fromLatitude.text = ""
+ fromLongitude.text = ""
+ toLatitude.text = ""
+ toLongitude.text = ""
+ }
+
+ cancelButton.onClicked: {
+ closeForm()
+ }
+
+ Component.onCompleted: {
+ fromLatitude.text = "" + fromCoordinate.latitude
+ fromLongitude.text = "" + fromCoordinate.longitude
+ toLatitude.text = "" + toCoordinate.latitude
+ toLongitude.text = "" + toCoordinate.longitude
+ }
+}
diff --git a/examples/location/mapviewer/MapViewer/forms/RouteCoordinateForm.ui.qml b/examples/location/mapviewer/MapViewer/forms/RouteCoordinateForm.ui.qml
new file mode 100644
index 000000000..88ff94dc1
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/forms/RouteCoordinateForm.ui.qml
@@ -0,0 +1,136 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+
+Item {
+ property alias fromLatitude: fromLatitude
+ property alias fromLongitude: fromLongitude
+ property alias toLatitude: toLatitude
+ property alias toLongitude: toLongitude
+ property alias clearButton: clearButton
+ property alias goButton: goButton
+ property alias cancelButton: cancelButton
+
+ Rectangle {
+ id: tabRectangle
+ y: 20
+ height: tabTitle.height * 2
+ color: "#46a2da"
+ anchors.rightMargin: 0
+ anchors.leftMargin: 0
+ anchors.left: parent.left
+ anchors.right: parent.right
+
+ Label {
+ id: tabTitle
+ color: "#ffffff"
+ text: qsTr("Route Coordinates")
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+ }
+
+ Item {
+ id: item2
+ anchors.rightMargin: 20
+ anchors.leftMargin: 20
+ anchors.bottomMargin: 20
+ anchors.topMargin: 20
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.top: tabRectangle.bottom
+
+ GridLayout {
+ id: gridLayout3
+ rowSpacing: 10
+ rows: 1
+ columns: 2
+ anchors.fill: parent
+
+ Label {
+ id: label1
+ text: qsTr("From")
+ font.bold: true
+ Layout.columnSpan: 2
+ Layout.alignment: Qt.AlignHCenter
+ }
+
+ Label {
+ id: label2
+ text: qsTr("Latitude")
+ }
+
+ TextField {
+ id: fromLatitude
+ Layout.fillWidth: true
+ }
+
+ Label {
+ id: label3
+ text: qsTr("Longitude")
+ }
+
+ TextField {
+ id: fromLongitude
+ Layout.fillWidth: true
+ }
+
+ Label {
+ id: label6
+ text: qsTr("To")
+ font.bold: true
+ Layout.columnSpan: 2
+ Layout.alignment: Qt.AlignHCenter
+ }
+
+ Label {
+ id: label4
+ text: qsTr("Latitude")
+ }
+
+ TextField {
+ id: toLatitude
+ Layout.fillWidth: true
+ }
+
+ Label {
+ id: label5
+ text: qsTr("Longitude")
+ }
+
+ TextField {
+ id: toLongitude
+ Layout.fillWidth: true
+ }
+
+ RowLayout {
+ id: rowLayout1
+ Layout.columnSpan: 2
+ Layout.alignment: Qt.AlignRight
+ Button {
+ id: goButton
+ text: qsTr("Proceed")
+ }
+
+ Button {
+ id: clearButton
+ text: qsTr("Clear")
+ }
+
+ Button {
+ id: cancelButton
+ text: qsTr("Cancel")
+ }
+ }
+ Item {
+ Layout.fillHeight: true
+ Layout.columnSpan: 2
+ }
+ }
+ }
+}
diff --git a/examples/location/mapviewer/MapViewer/forms/RouteList.qml b/examples/location/mapviewer/MapViewer/forms/RouteList.qml
new file mode 100644
index 000000000..8dbda7c01
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/forms/RouteList.qml
@@ -0,0 +1,50 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+import "../helper.js" as Helper
+
+//! [routeinfomodel0]
+ListView {
+//! [routeinfomodel0]
+ property variant routeModel
+ property string totalTravelTime
+ property string totalDistance
+ signal closeForm()
+//! [routeinfomodel1]
+ interactive: true
+ model: ListModel { id: routeInfoModel }
+ header: RouteListHeader {}
+ delegate: RouteListDelegate{
+ routeIndex.text: index + 1
+ routeInstruction.text: instruction
+ routeDistance.text: distance
+ }
+//! [routeinfomodel1]
+ footer: Button {
+ anchors.horizontalCenter: parent.horizontalCenter
+ text: qsTr("Close")
+ onClicked: {
+ closeForm()
+ }
+ }
+
+ Component.onCompleted: {
+ //! [routeinfomodel2]
+ routeInfoModel.clear()
+ if (routeModel.count > 0) {
+ for (var i = 0; i < routeModel.get(0).segments.length; i++) {
+ routeInfoModel.append({
+ "instruction": routeModel.get(0).segments[i].maneuver.instructionText,
+ "distance": Helper.formatDistance(routeModel.get(0).segments[i].maneuver.distanceToNextInstruction)
+ });
+ }
+ }
+ //! [routeinfomodel2]
+ totalTravelTime = routeModel.count == 0 ? "" : Helper.formatTime(routeModel.get(0).travelTime)
+ totalDistance = routeModel.count == 0 ? "" : Helper.formatDistance(routeModel.get(0).distance)
+ }
+//! [routeinfomodel3]
+}
+//! [routeinfomodel3]
diff --git a/examples/location/mapviewer/MapViewer/forms/RouteListDelegate.qml b/examples/location/mapviewer/MapViewer/forms/RouteListDelegate.qml
new file mode 100644
index 000000000..680318ac3
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/forms/RouteListDelegate.qml
@@ -0,0 +1,42 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+
+Item {
+ id: root
+ property bool checked: false
+ property alias routeInstruction: instructionLabel
+ property alias routeDistance: distanceLabel
+ property alias routeIndex: indexLabel
+
+ width: appWindow.width
+ height: indexLabel.height * 2
+
+ RowLayout {
+ spacing: 10
+ anchors.left: parent.left
+ anchors.leftMargin: 30
+ anchors.verticalCenter: parent.verticalCenter
+ Label {
+ id: indexLabel
+ }
+ Label {
+ id: instructionLabel
+ wrapMode: Text.Wrap
+ }
+ Label {
+ id: distanceLabel
+ }
+ }
+
+ Rectangle {
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.margins: 15
+ height: 1
+ color: "#46a2da"
+ }
+}
diff --git a/examples/location/mapviewer/MapViewer/forms/RouteListHeader.qml b/examples/location/mapviewer/MapViewer/forms/RouteListHeader.qml
new file mode 100644
index 000000000..4f8308091
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/forms/RouteListHeader.qml
@@ -0,0 +1,47 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+Item {
+ property alias travelTime: travelTimeLabel
+ property alias distance: distanceLabel
+ width: parent.width
+ height: tabTitle.height * 3.0
+
+ Rectangle {
+ id: tabRectangle
+ y: tabTitle.height
+ height: tabTitle.height * 2 - 1
+ color: "#46a2da"
+ anchors.left: parent.left
+ anchors.right: parent.right
+
+ Label {
+ id: tabTitle
+ color: "#ffffff"
+ text: qsTr("Route Information")
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+
+ Label {
+ id: travelTimeLabel
+ text: totalTravelTime
+ color: "#ffffff"
+ font.bold: true
+ anchors.left: parent.left
+ anchors.verticalCenter: parent.verticalCenter
+ }
+
+ Label {
+ id: distanceLabel
+ text: totalDistance
+ color: "#ffffff"
+ font.bold: true
+ anchors.right: parent.right
+ anchors.verticalCenter: parent.verticalCenter
+ }
+ }
+}
diff --git a/examples/location/mapviewer/MapViewer/helper.js b/examples/location/mapviewer/MapViewer/helper.js
new file mode 100644
index 000000000..a42040518
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/helper.js
@@ -0,0 +1,44 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+.pragma library
+
+function roundNumber(number, digits)
+{
+ var multiple = Math.pow(10, digits);
+ return Math.round(number * multiple) / multiple;
+}
+
+function formatTime(sec)
+{
+ var value = sec
+ var seconds = value % 60
+ value /= 60
+ value = (value > 1) ? Math.round(value) : 0
+ var minutes = value % 60
+ value /= 60
+ value = (value > 1) ? Math.round(value) : 0
+ var hours = value
+ if (hours > 0) value = hours + "h:"+ minutes + "m"
+ else value = minutes + "min"
+ return value
+}
+
+function formatDistance(meters)
+{
+ var dist = Math.round(meters)
+ if (dist > 1000 ){
+ if (dist > 100000){
+ dist = Math.round(dist / 1000)
+ }
+ else{
+ dist = Math.round(dist / 100)
+ dist = dist / 10
+ }
+ dist = dist + " km"
+ }
+ else{
+ dist = dist + " m"
+ }
+ return dist
+}
diff --git a/examples/location/mapviewer/MapViewer/map/MapComponent.qml b/examples/location/mapviewer/MapViewer/map/MapComponent.qml
new file mode 100644
index 000000000..987455287
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/map/MapComponent.qml
@@ -0,0 +1,497 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+import QtQuick
+import QtQuick.Controls
+import QtLocation
+import QtPositioning
+import "../helper.js" as Helper
+
+//! [top]
+MapView {
+ id: view
+//! [top]
+ property variant markers
+ property variant mapItems
+ property int markerCounter: 0 // counter for total amount of markers. Resets to 0 when number of markers = 0
+ property int currentMarker
+ property bool followme: false
+ property variant scaleLengths: [5, 10, 20, 50, 100, 200, 500, 1000, 2000, 5000, 10000, 20000, 50000, 100000, 200000, 500000, 1000000, 2000000]
+ property alias routeQuery: routeQuery
+ property alias routeModel: routeModel
+ property alias geocodeModel: geocodeModel
+ property alias slidersExpanded: sliders.expanded
+
+ signal showGeocodeInfo()
+ signal geocodeFinished()
+ signal routeError()
+ signal coordinatesCaptured(double latitude, double longitude)
+ signal showMainMenu(variant coordinate)
+ signal showMarkerMenu(variant coordinate)
+ signal showRouteMenu(variant coordinate)
+ signal showPointMenu(variant coordinate)
+ signal showRouteList()
+
+ function geocodeMessage()
+ {
+ var street, district, city, county, state, countryCode, country, postalCode, latitude, longitude, text
+ latitude = Math.round(geocodeModel.get(0).coordinate.latitude * 10000) / 10000
+ longitude =Math.round(geocodeModel.get(0).coordinate.longitude * 10000) / 10000
+ street = geocodeModel.get(0).address.street
+ district = geocodeModel.get(0).address.district
+ city = geocodeModel.get(0).address.city
+ county = geocodeModel.get(0).address.county
+ state = geocodeModel.get(0).address.state
+ countryCode = geocodeModel.get(0).address.countryCode
+ country = geocodeModel.get(0).address.country
+ postalCode = geocodeModel.get(0).address.postalCode
+
+ text = "<b>Latitude:</b> " + latitude + "<br/>"
+ text +="<b>Longitude:</b> " + longitude + "<br/>" + "<br/>"
+ if (street) text +="<b>Street: </b>"+ street + " <br/>"
+ if (district) text +="<b>District: </b>"+ district +" <br/>"
+ if (city) text +="<b>City: </b>"+ city + " <br/>"
+ if (county) text +="<b>County: </b>"+ county + " <br/>"
+ if (state) text +="<b>State: </b>"+ state + " <br/>"
+ if (countryCode) text +="<b>Country code: </b>"+ countryCode + " <br/>"
+ if (country) text +="<b>Country: </b>"+ country + " <br/>"
+ if (postalCode) text +="<b>PostalCode: </b>"+ postalCode + " <br/>"
+ return text
+ }
+
+ function calculateScale()
+ {
+ var coord1, coord2, dist, text, f
+ f = 0
+ coord1 = view.map.toCoordinate(Qt.point(0,scale.y))
+ coord2 = view.map.toCoordinate(Qt.point(0+scaleImage.sourceSize.width,scale.y))
+ dist = Math.round(coord1.distanceTo(coord2))
+
+ if (dist === 0) {
+ // not visible
+ } else {
+ for (var i = 0; i < scaleLengths.length-1; i++) {
+ if (dist < (scaleLengths[i] + scaleLengths[i+1]) / 2 ) {
+ f = scaleLengths[i] / dist
+ dist = scaleLengths[i]
+ break;
+ }
+ }
+ if (f === 0) {
+ f = dist / scaleLengths[i]
+ dist = scaleLengths[i]
+ }
+ }
+
+ text = Helper.formatDistance(dist)
+ scaleImage.width = (scaleImage.sourceSize.width * f) - 2 * scaleImageLeft.sourceSize.width
+ scaleText.text = text
+ }
+
+ function deleteMarkers()
+ {
+ var count = view.markers.length
+ for (var i = count-1; i>=0; i--){
+ view.map.removeMapItem(view.markers[i])
+ }
+ view.markers = []
+ }
+
+ function addMarker()
+ {
+ var count = view.markers.length
+ markerCounter++
+ var marker = Qt.createQmlObject ('Marker {}', map)
+ view.map.addMapItem(marker)
+ marker.z = view.map.z+1
+ marker.coordinate = tapHandler.lastCoordinate
+ markers.push(marker)
+ }
+
+ function deleteMarker(index)
+ {
+ //update list of markers
+ var myArray = []
+ var count = view.markers.length
+ for (var i = 0; i<count; i++){
+ if (index !== i) myArray.push(view.markers[i])
+ }
+
+ view.map.removeMapItem(view.markers[index])
+ view.markers[index].destroy()
+ view.markers = myArray
+ if (markers.length === 0) markerCounter = 0
+ }
+
+ function calculateMarkerRoute()
+ {
+ routeQuery.clearWaypoints();
+ for (var i = currentMarker; i< view.markers.length; i++){
+ routeQuery.addWaypoint(markers[i].coordinate)
+ }
+ routeQuery.travelModes = RouteQuery.CarTravel
+ routeQuery.routeOptimizations = RouteQuery.ShortestRoute
+
+ routeModel.update();
+ }
+
+ function calculateCoordinateRoute(startCoordinate, endCoordinate)
+ {
+ //! [routerequest0]
+ // clear away any old data in the query
+ routeQuery.clearWaypoints();
+ // add the start and end coords as waypoints on the route
+ routeQuery.addWaypoint(startCoordinate)
+ routeQuery.addWaypoint(endCoordinate)
+ routeQuery.travelModes = RouteQuery.CarTravel
+ routeQuery.routeOptimizations = RouteQuery.FastestRoute
+ //! [routerequest0]
+
+ //! [routerequest1]
+ routeModel.update();
+ //! [routerequest1]
+
+ //! [routerequest2]
+ // center the map on the start coord
+ view.map.center = startCoordinate;
+ //! [routerequest2]
+ }
+
+ function geocode(fromAddress)
+ {
+ //! [geocode1]
+ // send the geocode request
+ geocodeModel.query = fromAddress
+ geocodeModel.update()
+ //! [geocode1]
+ }
+
+
+//! [coord]
+ map.zoomLevel: (maximumZoomLevel - minimumZoomLevel)/2
+ map.center {
+ // The Qt Company in Oslo
+ latitude: 59.9485
+ longitude: 10.7686
+ }
+//! [coord]
+
+ focus: true
+ map.onCopyrightLinkActivated: Qt.openUrlExternally(link)
+
+ map.onCenterChanged:{
+ scaleTimer.restart()
+ if (view.followme)
+ if (view.map.center != positionSource.position.coordinate) view.followme = false
+ }
+
+ map.onZoomLevelChanged:{
+ scaleTimer.restart()
+ if (view.followme) view.map.center = positionSource.position.coordinate
+ }
+
+ onWidthChanged:{
+ scaleTimer.restart()
+ }
+
+ onHeightChanged:{
+ scaleTimer.restart()
+ }
+
+ Component.onCompleted: {
+ markers = [];
+ mapItems = [];
+ }
+
+ Keys.onPressed: (event) => {
+ if (event.key === Qt.Key_Plus) {
+ view.map.zoomLevel++;
+ } else if (event.key === Qt.Key_Minus) {
+ view.map.zoomLevel--;
+ } else if (event.key === Qt.Key_Left || event.key === Qt.Key_Right ||
+ event.key === Qt.Key_Up || event.key === Qt.Key_Down) {
+ var dx = 0;
+ var dy = 0;
+
+ switch (event.key) {
+
+ case Qt.Key_Left: dx = view.map.width / 4; break;
+ case Qt.Key_Right: dx = -view.map.width / 4; break;
+ case Qt.Key_Up: dy = view.map.height / 4; break;
+ case Qt.Key_Down: dy = -view.map.height / 4; break;
+
+ }
+
+ var mapCenterPoint = Qt.point(view.map.width / 2.0 - dx, view.map.height / 2.0 - dy);
+ view.map.center = view.map.toCoordinate(mapCenterPoint);
+ }
+ }
+
+ PositionSource{
+ id: positionSource
+ active: followme
+
+ onPositionChanged: {
+ view.map.center = positionSource.position.coordinate
+ }
+ }
+
+ MapQuickItem {
+ id: mePoisition
+ parent: view.map
+ sourceItem: Rectangle { width: 14; height: 14; color: "#251ee4"; border.width: 2; border.color: "white"; smooth: true; radius: 7 }
+ coordinate: positionSource.position.coordinate
+ opacity: 1.0
+ anchorPoint: Qt.point(sourceItem.width/2, sourceItem.height/2)
+ visible: followme
+ }
+ MapQuickItem {
+ parent: view.map
+ sourceItem: Text{
+ text: qsTr("You're here!")
+ color:"#242424"
+ font.bold: true
+ styleColor: "#ECECEC"
+ style: Text.Outline
+ }
+ coordinate: positionSource.position.coordinate
+ anchorPoint: Qt.point(-mePoisition.sourceItem.width * 0.5, mePoisition.sourceItem.height * 1.5)
+ visible: followme
+ }
+
+
+ MapQuickItem {
+ id: poiTheQtComapny
+ parent: view.map
+ sourceItem: Rectangle { width: 14; height: 14; color: "#e41e25"; border.width: 2; border.color: "white"; smooth: true; radius: 7 }
+ coordinate {
+ latitude: 59.9485
+ longitude: 10.7686
+ }
+ opacity: 1.0
+ anchorPoint: Qt.point(sourceItem.width/2, sourceItem.height/2)
+ }
+
+ MapQuickItem {
+ parent: view.map
+ sourceItem: Text{
+ text: "The Qt Company"
+ color:"#242424"
+ font.bold: true
+ styleColor: "#ECECEC"
+ style: Text.Outline
+ }
+ coordinate: poiTheQtComapny.coordinate
+ anchorPoint: Qt.point(-poiTheQtComapny.sourceItem.width * 0.5, poiTheQtComapny.sourceItem.height * 1.5)
+ }
+
+ MapSliders {
+ id: sliders
+ z: view.map.z + 3
+ mapSource: map
+ edge: Qt.LeftEdge
+ }
+
+ Item {
+ id: scale
+ z: view.map.z + 3
+ visible: scaleText.text !== "0 m"
+ anchors.bottom: parent.bottom;
+ anchors.right: parent.right
+ anchors.margins: 20
+ height: scaleText.height * 2
+ width: scaleImage.width
+
+ Image {
+ id: scaleImageLeft
+ source: "../resources/scale_end.png"
+ anchors.bottom: parent.bottom
+ anchors.right: scaleImage.left
+ }
+ Image {
+ id: scaleImage
+ source: "../resources/scale.png"
+ anchors.bottom: parent.bottom
+ anchors.right: scaleImageRight.left
+ }
+ Image {
+ id: scaleImageRight
+ source: "../resources/scale_end.png"
+ anchors.bottom: parent.bottom
+ anchors.right: parent.right
+ }
+ Label {
+ id: scaleText
+ color: "#004EAE"
+ anchors.centerIn: parent
+ text: "0 m"
+ }
+ Component.onCompleted: {
+ view.calculateScale();
+ }
+ }
+
+ //! [routemodel0]
+ RouteModel {
+ id: routeModel
+ plugin : view.map.plugin
+ query: RouteQuery {
+ id: routeQuery
+ }
+ onStatusChanged: {
+ if (status == RouteModel.Ready) {
+ switch (count) {
+ case 0:
+ // technically not an error
+ view.routeError()
+ break
+ case 1:
+ view.showRouteList()
+ break
+ }
+ } else if (status == RouteModel.Error) {
+ view.routeError()
+ }
+ }
+ }
+ //! [routemodel0]
+
+ //! [routedelegate0]
+ Component {
+ id: routeDelegate
+
+ MapRoute {
+ id: route
+ route: routeData
+ line.color: "#46a2da"
+ line.width: 5
+ smooth: true
+ opacity: 0.8
+ //! [routedelegate0]
+ TapHandler {
+ acceptedButtons: Qt.LeftButton | Qt.RightButton
+ onLongPressed: showRouteMenu(view.map.toCoordinate(tapHandler.point.position))
+ onSingleTapped: (eventPoint, button) => {
+ if (button === Qt.RightButton)
+ showRouteMenu(view.map.toCoordinate(tapHandler.point.position))
+ }
+ }
+ }
+ }
+
+ //! [geocodemodel0]
+ GeocodeModel {
+ id: geocodeModel
+ plugin: view.map.plugin
+ onStatusChanged: {
+ if ((status == GeocodeModel.Ready) || (status == GeocodeModel.Error))
+ view.geocodeFinished()
+ }
+ onLocationsChanged:
+ {
+ if (count === 1) {
+ view.map.center.latitude = get(0).coordinate.latitude
+ view.map.center.longitude = get(0).coordinate.longitude
+ }
+ }
+ }
+ //! [geocodemodel0]
+
+ //! [pointdel0]
+ Component {
+ id: pointDelegate
+
+ MapQuickItem {
+ id: point
+ parent: view.map
+ coordinate: locationData.coordinate
+
+ sourceItem: Image {
+ id: pointMarker
+ source: "../resources/marker_blue.png"
+ //! [pointdel0]
+
+ Text{
+ id: pointText
+ anchors.bottom: pointMarker.top
+ anchors.horizontalCenter: pointMarker.horizontalCenter
+ text: locationData.address.street + ", " + locationData.address.city
+ color:"#242424"
+ font.bold: true
+ styleColor: "#ECECEC"
+ style: Text.Outline
+ }
+
+ }
+ smooth: true
+ autoFadeIn: false
+ anchorPoint.x: pointMarker.width/4
+ anchorPoint.y: pointMarker.height
+
+ TapHandler {
+ onLongPressed: showPointMenu(point.coordinate)
+ //! [pointdel1]
+ }
+ }
+ }
+ //! [pointdel1]
+
+ //! [routeview0]
+ MapItemView {
+ parent: view.map
+ model: routeModel
+ delegate: routeDelegate
+ //! [routeview0]
+ autoFitViewport: true
+ }
+
+ //! [geocodeview]
+ MapItemView {
+ parent: view.map
+ model: geocodeModel
+ delegate: pointDelegate
+ }
+ //! [geocodeview]
+
+ Timer {
+ id: scaleTimer
+ interval: 100
+ running: false
+ repeat: false
+ onTriggered: view.calculateScale()
+ }
+
+ TapHandler {
+ id: tapHandler
+ property variant lastCoordinate
+ acceptedButtons: Qt.LeftButton | Qt.RightButton
+
+ onPressedChanged: (eventPoint, button) => {
+ if (pressed) {
+ lastCoordinate = view.map.toCoordinate(tapHandler.point.position)
+ }
+ }
+
+ onSingleTapped: (eventPoint, button) => {
+ if (button === Qt.RightButton) {
+ showMainMenu(lastCoordinate)
+ }
+ }
+
+ onDoubleTapped: (eventPoint, button) => {
+ var preZoomPoint = view.map.toCoordinate(eventPoint.position);
+ if (button === Qt.LeftButton) {
+ view.map.zoomLevel = Math.floor(view.map.zoomLevel + 1)
+ } else if (button === Qt.RightButton) {
+ view.map.zoomLevel = Math.floor(view.map.zoomLevel - 1)
+ }
+ var postZoomPoint = view.map.toCoordinate(eventPoint.position);
+ var dx = postZoomPoint.latitude - preZoomPoint.latitude;
+ var dy = postZoomPoint.longitude - preZoomPoint.longitude;
+
+ view.map.center = QtPositioning.coordinate(view.map.center.latitude - dx,
+ view.map.center.longitude - dy);
+ }
+ }
+//! [end]
+}
+//! [end]
diff --git a/examples/location/mapviewer/MapViewer/map/MapSliders.qml b/examples/location/mapviewer/MapViewer/map/MapSliders.qml
new file mode 100644
index 000000000..d9c8381b0
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/map/MapSliders.qml
@@ -0,0 +1,282 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+Row {
+ id: containerRow
+
+ property var mapSource
+ property real fontSize : 14
+ property color labelBackground : "transparent"
+ property int edge: Qt.RightEdge
+ property alias expanded: sliderToggler.checked
+
+ function rightEdge() {
+ return (containerRow.edge === Qt.RightEdge);
+ }
+
+ layoutDirection: rightEdge() ? Qt.LeftToRight : Qt.RightToLeft
+ anchors.top: parent.top
+ anchors.bottom: parent.bottom
+ anchors.right: rightEdge() ? parent.right : undefined
+ anchors.left: rightEdge() ? undefined : parent.left
+
+ AbstractButton {
+ id: sliderToggler
+ width: 32
+ height: 96
+ checkable: true
+ checked: true
+ anchors.verticalCenter: parent.verticalCenter
+
+ transform: Scale {
+ origin.x: rightEdge() ? 0 : sliderToggler.width / 2
+ xScale: rightEdge() ? 1 : -1
+ }
+
+ background: Rectangle {
+ color: "transparent"
+ }
+
+
+ property real shear: 0.333
+ property real buttonOpacity: 0.5
+ property real mirror : rightEdge() ? 1.0 : -1.0
+
+ Rectangle {
+ width: 16
+ height: 48
+ color: "seagreen"
+ antialiasing: true
+ opacity: sliderToggler.buttonOpacity
+ anchors.top: parent.top
+ anchors.left: sliderToggler.checked ? parent.left : parent.horizontalCenter
+ transform: Matrix4x4 {
+ property real d : sliderToggler.checked ? 1.0 : -1.0
+ matrix: Qt.matrix4x4(1.0, d * sliderToggler.shear, 0.0, 0.0,
+ 0.0, 1.0, 0.0, 0.0,
+ 0.0, 0.0, 1.0, 0.0,
+ 0.0, 0.0, 0.0, 1.0)
+ }
+ }
+
+ Rectangle {
+ width: 16
+ height: 48
+ color: "seagreen"
+ antialiasing: true
+ opacity: sliderToggler.buttonOpacity
+ anchors.top: parent.verticalCenter
+ anchors.right: sliderToggler.checked ? parent.right : parent.horizontalCenter
+ transform: Matrix4x4 {
+ property real d : sliderToggler.checked ? -1.0 : 1.0
+ matrix: Qt.matrix4x4(1.0, d * sliderToggler.shear, 0.0, 0.0,
+ 0.0, 1.0, 0.0, 0.0,
+ 0.0, 0.0, 1.0, 0.0,
+ 0.0, 0.0, 0.0, 1.0)
+ }
+ }
+ }
+
+ Rectangle {
+ id: sliderContainer
+ height: parent.height
+ width: sliderRow.width + 10
+ visible: sliderToggler.checked
+ color: Qt.rgba( 0, 191 / 255.0, 255 / 255.0, 0.07)
+
+ property var labelBorderColor: "transparent"
+ property var slidersHeight : sliderContainer.height
+ - rowSliderValues.height
+ - rowSliderLabels.height
+ - sliderColumn.spacing * 2
+ - sliderColumn.topPadding
+ - sliderColumn.bottomPadding
+
+ Column {
+ id: sliderColumn
+ spacing: 10
+ topPadding: 16
+ bottomPadding: 48
+ anchors.centerIn: parent
+
+ // the sliders value labels
+ Row {
+ id: rowSliderValues
+ spacing: sliderRow.spacing
+ width: sliderRow.width
+ height: 32
+ property real entryWidth: zoomSlider.width
+
+ Rectangle{
+ color: labelBackground
+ height: parent.height
+ width: parent.entryWidth
+ border.color: sliderContainer.labelBorderColor
+ Label {
+ id: labelZoomValue
+ text: zoomSlider.value.toFixed(3)
+ font.pixelSize: fontSize
+ rotation: -90
+ anchors.centerIn: parent
+ }
+ }
+ Rectangle{
+ color: labelBackground
+ height: parent.height
+ width: parent.entryWidth
+ border.color: sliderContainer.labelBorderColor
+ Label {
+ id: labelBearingValue
+ text: bearingSlider.value.toFixed(2)
+ font.pixelSize: fontSize
+ rotation: -90
+ anchors.centerIn: parent
+ }
+ }
+ Rectangle{
+ color: labelBackground
+ height: parent.height
+ width: parent.entryWidth
+ border.color: sliderContainer.labelBorderColor
+ Label {
+ id: labelTiltValue
+ text: tiltSlider.value.toFixed(2)
+ font.pixelSize: fontSize
+ rotation: -90
+ anchors.centerIn: parent
+ }
+ }
+ Rectangle{
+ color: labelBackground
+ height: parent.height
+ width: parent.entryWidth
+ border.color: sliderContainer.labelBorderColor
+ Label {
+ id: labelFovValue
+ text: fovSlider.value.toFixed(2)
+ font.pixelSize: fontSize
+ rotation: -90
+ anchors.centerIn: parent
+ }
+ }
+ } // rowSliderValues
+
+ // The sliders row
+ Row {
+ id: sliderRow
+ height: sliderContainer.slidersHeight
+
+ Slider {
+ id: zoomSlider
+ height: parent.height
+ orientation : Qt.Vertical
+ from : containerRow.mapSource.minimumZoomLevel
+ to : containerRow.mapSource.maximumZoomLevel
+ value : containerRow.mapSource.zoomLevel
+ onValueChanged: {
+ containerRow.mapSource.zoomLevel = value
+ }
+ }
+ Slider {
+ id: bearingSlider
+ height: parent.height
+ from: 0
+ to: 360
+ orientation : Qt.Vertical
+ value: containerRow.mapSource.bearing
+ onValueChanged: {
+ containerRow.mapSource.bearing = value;
+ }
+ }
+ Slider {
+ id: tiltSlider
+ height: parent.height
+ orientation : Qt.Vertical
+ from: containerRow.mapSource.minimumTilt;
+ to: containerRow.mapSource.maximumTilt
+ value: containerRow.mapSource.tilt
+ onValueChanged: {
+ containerRow.mapSource.tilt = value;
+ }
+ }
+ Slider {
+ id: fovSlider
+ height: parent.height
+ orientation : Qt.Vertical
+ from: containerRow.mapSource.minimumFieldOfView
+ to: containerRow.mapSource.maximumFieldOfView
+ value: containerRow.mapSource.fieldOfView
+ onValueChanged: {
+ containerRow.mapSource.fieldOfView = value;
+ }
+ }
+ } // Row sliders
+
+ // The labels row
+ Row {
+ id: rowSliderLabels
+ spacing: sliderRow.spacing
+ width: sliderRow.width
+ property real entryWidth: zoomSlider.width
+ property real entryHeight: 64
+
+ Rectangle{
+ color: labelBackground
+ height: parent.entryHeight
+ width: parent.entryWidth
+ border.color: sliderContainer.labelBorderColor
+ Label {
+ id: labelZoom
+ text: "Zoom"
+ font.pixelSize: fontSize
+ rotation: -90
+ anchors.centerIn: parent
+ }
+ }
+
+ Rectangle{
+ color: labelBackground
+ height: parent.entryHeight
+ width: parent.entryWidth
+ border.color: sliderContainer.labelBorderColor
+ Label {
+ id: labelBearing
+ text: "Bearing"
+ font.pixelSize: fontSize
+ rotation: -90
+ anchors.centerIn: parent
+ }
+ }
+ Rectangle{
+ color: labelBackground
+ height: parent.entryHeight
+ width: parent.entryWidth
+ border.color: sliderContainer.labelBorderColor
+ Label {
+ id: labelTilt
+ text: "Tilt"
+ font.pixelSize: fontSize
+ rotation: -90
+ anchors.centerIn: parent
+ }
+ }
+ Rectangle{
+ color: labelBackground
+ height: parent.entryHeight
+ width: parent.entryWidth
+ border.color: sliderContainer.labelBorderColor
+ Label {
+ id: labelFov
+ text: "FoV"
+ font.pixelSize: fontSize
+ rotation: -90
+ anchors.centerIn: parent
+ }
+ }
+ } // rowSliderLabels
+ } // Column
+ } // sliderContainer
+} // containerRow
diff --git a/examples/location/mapviewer/MapViewer/map/Marker.qml b/examples/location/mapviewer/MapViewer/map/Marker.qml
new file mode 100644
index 000000000..c7494cf57
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/map/Marker.qml
@@ -0,0 +1,64 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtLocation
+
+//! [mqi-top]
+MapQuickItem {
+ id: marker
+//! [mqi-top]
+
+//! [mqi-anchor]
+ anchorPoint.x: image.width/4
+ anchorPoint.y: image.height
+
+ HoverHandler {
+ id: hoverHandler
+ }
+ TapHandler {
+ id: tapHandler
+ acceptedButtons: Qt.RightButton
+ gesturePolicy: TapHandler.WithinBounds
+ onTapped: {
+ mapview.currentMarker = -1
+ for (var i = 0; i< mapview.markers.length; i++){
+ if (marker == mapview.markers[i]){
+ mapview.currentMarker = i
+ break
+ }
+ }
+ mapview.showMarkerMenu(marker.coordinate)
+ }
+ }
+ DragHandler {
+ id: dragHandler
+ grabPermissions: PointerHandler.CanTakeOverFromItems | PointerHandler.CanTakeOverFromHandlersOfDifferentType
+ }
+
+ sourceItem: Image {
+ id: image
+//! [mqi-anchor]
+ source: "../resources/marker.png"
+ opacity: hoverHandler.hovered ? 0.6 : 1.0
+
+ Text{
+ id: number
+ y: image.height/10
+ width: image.width
+ color: "white"
+ font.bold: true
+ font.pixelSize: 14
+ horizontalAlignment: Text.AlignHCenter
+ Component.onCompleted: {
+ text = mapview.markerCounter
+ }
+ }
+
+//! [mqi-closeimage]
+ }
+//! [mqi-closeimage]
+
+//! [mqi-close]
+}
+//! [mqi-close]
diff --git a/examples/location/mapviewer/MapViewer/map/MiniMap.qml b/examples/location/mapviewer/MapViewer/map/MiniMap.qml
new file mode 100644
index 000000000..f8fc51547
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/map/MiniMap.qml
@@ -0,0 +1,78 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtPositioning
+import QtLocation
+
+Rectangle{
+
+ function clamp(num, min, max)
+ {
+ return num < min ? min : num > max ? max : num;
+ }
+
+ function minimumScaleFactor()
+ {
+ var hscalefactor = (400.0 / Math.max(Math.min(mapview.width, 1000), 400)) * 0.5
+ var vscalefactor = (400.0 / Math.max(Math.min(mapview.height, 1000), 400)) * 0.5
+ return Math.min(hscalefactor,vscalefactor)
+ }
+
+ function avgScaleFactor()
+ {
+ var hscalefactor = (400.0 / Math.max(Math.min(mapview.width, 1000), 400)) * 0.5
+ var vscalefactor = (400.0 / Math.max(Math.min(mapview.height, 1000), 400)) * 0.5
+ return (hscalefactor+vscalefactor) * 0.5
+ }
+
+ id: miniMapRect
+ width: Math.floor(mapview.width * avgScaleFactor()) + 2
+ height: Math.floor(mapview.height * avgScaleFactor()) + 2
+ anchors.right: (parent) ? parent.right : undefined
+ anchors.rightMargin: 10
+ anchors.top: (parent) ? parent.top : undefined
+ anchors.topMargin: 10
+ color: "#242424"
+ Map {
+ id: miniMap
+ anchors.top: parent.top
+ anchors.topMargin: 1
+ anchors.left: parent.left
+ anchors.leftMargin: 1
+ width: Math.floor(mapview.width * avgScaleFactor())
+ height: Math.floor(mapview.height * avgScaleFactor())
+ zoomLevel: clamp(mapview.map.zoomLevel - 4.5, 1.0, 5.0) //(map.zoomLevel > minimumZoomLevel + 3) ? minimumZoomLevel + 3 : 1.5
+ center: mapview.map.center
+ plugin: mapview.map.plugin
+ copyrightsVisible: false
+ property double mapZoomLevel : mapview.map.zoomLevel
+
+ // cannot use property bindings on map.visibleRegion in MapRectangle because it's non-NOTIFYable
+ onCenterChanged: miniMapRectangle.updateCoordinates()
+ onMapZoomLevelChanged: miniMapRectangle.updateCoordinates()
+ onWidthChanged: miniMapRectangle.updateCoordinates()
+ onHeightChanged: miniMapRectangle.updateCoordinates()
+
+ MapRectangle {
+ id: miniMapRectangle
+ color: "#44ff0000"
+ border.width: 1
+ border.color: "red"
+ autoFadeIn: false
+
+ function getMapVisibleRegion()
+ {
+ return mapview.map.visibleRegion.boundingGeoRectangle()
+ }
+
+ function updateCoordinates()
+ {
+ topLeft.latitude = getMapVisibleRegion().topLeft.latitude
+ topLeft.longitude= getMapVisibleRegion().topLeft.longitude
+ bottomRight.latitude = getMapVisibleRegion().bottomRight.latitude
+ bottomRight.longitude= getMapVisibleRegion().bottomRight.longitude
+ }
+ }
+ }
+}
diff --git a/examples/location/mapviewer/MapViewer/menus/ItemPopupMenu.qml b/examples/location/mapviewer/MapViewer/menus/ItemPopupMenu.qml
new file mode 100644
index 000000000..d559aca6c
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/menus/ItemPopupMenu.qml
@@ -0,0 +1,19 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+Menu {
+ property variant type
+ signal itemClicked(string item)
+
+ MenuItem {
+ text: qsTr("Info")
+ onTriggered: itemClicked("show" + type + "Info")
+ }
+ MenuItem {
+ text: qsTr("Delete")
+ onTriggered: itemClicked("delete" + type)
+ }
+}
diff --git a/examples/location/mapviewer/MapViewer/menus/MainMenu.qml b/examples/location/mapviewer/MapViewer/menus/MainMenu.qml
new file mode 100644
index 000000000..3523b5c1a
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/menus/MainMenu.qml
@@ -0,0 +1,122 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+import QtLocation
+
+MenuBar {
+ id: menuBar
+ property variant providerMenu: providerMenu
+ property variant mapTypeMenu: mapTypeMenu
+ property variant toolsMenu: toolsMenu
+ property variant plugin
+ property alias isFollowMe: toolsMenu.isFollowMe
+ property alias isMiniMap: toolsMenu.isMiniMap
+
+ signal selectProvider(string providerName)
+ signal selectMapType(variant mapType)
+ signal selectTool(string tool);
+ signal toggleMapState(string state)
+
+ function clearMenu(menu)
+ {
+ while (menu.count)
+ menu.removeItem(menu.itemAt(0))
+ }
+
+ Menu {
+ id: providerMenu
+ title: qsTr("Provider")
+
+ function createMenu(plugins)
+ {
+ clearMenu(providerMenu)
+ for (var i = 0; i < plugins.length; i++) {
+ createProviderMenuItem(plugins[i]);
+ }
+ }
+
+ function createProviderMenuItem(provider)
+ {
+ var action = Qt.createQmlObject('import QtQuick.Controls; Action{ text: "' + provider + '"; checkable: true; onTriggered: function(){selectProvider("' + provider + '")} }', providerMenu)
+ addAction(action)
+ }
+ }
+
+ Menu {
+ id: mapTypeMenu
+ title: qsTr("MapType")
+
+ Component {
+ id: mapTypeMenuActionComponent
+ Action {
+
+ }
+ }
+ function createMenu(map)
+ {
+ clearMenu(mapTypeMenu)
+ for (var i = 0; i<map.supportedMapTypes.length; i++) {
+ createMapTypeMenuItem(map.supportedMapTypes[i], map.activeMapType === map.supportedMapTypes[i]);
+ }
+ }
+
+ function createMapTypeMenuItem(mapType, checked)
+ {
+ var action = mapTypeMenuActionComponent.createObject(mapTypeMenu, { text: mapType.name, checkable: true, checked: checked })
+ action.triggered.connect(function(){selectMapType(mapType)})
+ addAction(action)
+ }
+ }
+
+ Menu {
+ id: toolsMenu
+ property bool isFollowMe: false;
+ property bool isMiniMap: false;
+ property variant plugin: menuBar.plugin
+
+ title: qsTr("Tools")
+
+ Action {
+ text: qsTr("Reverse geocode")
+ enabled: plugin ? plugin.supportsGeocoding(Plugin.ReverseGeocodingFeature) : false
+ onTriggered: selectTool("RevGeocode")
+ }
+ MenuItem {
+ text: qsTr("Geocode")
+ enabled: plugin ? plugin.supportsGeocoding() : false
+ onTriggered: selectTool("Geocode")
+ }
+ MenuItem {
+ text: qsTr("Route with coordinates")
+ enabled: plugin ? plugin.supportsRouting() : false
+ onTriggered: selectTool("CoordinateRoute")
+ }
+ MenuItem {
+ text: qsTr("Route with address")
+ enabled: plugin ? plugin.supportsRouting() : false
+ onTriggered: selectTool("AddressRoute")
+ }
+ MenuItem {
+ text: isMiniMap ? qsTr("Hide minimap") : qsTr("Minimap")
+ onTriggered: toggleMapState("MiniMap")
+ }
+ MenuItem {
+ text: isFollowMe ? qsTr("Stop following") : qsTr("Follow me")
+ onTriggered: toggleMapState("FollowMe")
+ }
+ MenuItem {
+ text: qsTr("Language")
+ onTriggered: selectTool("Language")
+ }
+ MenuItem {
+ text: qsTr("Prefetch Map Data")
+ onTriggered: selectTool("Prefetch")
+ }
+ MenuItem {
+ text: qsTr("Clear Map Data")
+ onTriggered: selectTool("Clear")
+ }
+ }
+}
diff --git a/examples/location/mapviewer/MapViewer/menus/MapPopupMenu.qml b/examples/location/mapviewer/MapViewer/menus/MapPopupMenu.qml
new file mode 100644
index 000000000..335788df8
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/menus/MapPopupMenu.qml
@@ -0,0 +1,30 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+Menu {
+ property variant coordinate
+ property int markersCount
+ property int mapItemsCount
+ signal itemClicked(string item)
+
+ MenuItem {
+ text: qsTr("Add Marker")
+ onTriggered: itemClicked("addMarker")
+ }
+ MenuItem {
+ text: qsTr("Get coordinate")
+ onTriggered: itemClicked("getCoordinate")
+ }
+ MenuItem {
+ text: qsTr("Fit Viewport To Markers")
+ onTriggered: itemClicked("fitViewport")
+ }
+ MenuItem {
+ text: qsTr("Delete all markers")
+ enabled: markersCount > 0
+ onTriggered: itemClicked("deleteMarkers")
+ }
+}
diff --git a/examples/location/mapviewer/MapViewer/menus/MarkerPopupMenu.qml b/examples/location/mapviewer/MapViewer/menus/MarkerPopupMenu.qml
new file mode 100644
index 000000000..338f23859
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/menus/MarkerPopupMenu.qml
@@ -0,0 +1,38 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+Menu {
+ property int currentMarker
+ property int markersCount
+ signal itemClicked(string item)
+
+ MenuItem {
+ text: qsTr("Delete")
+ onTriggered: itemClicked("deleteMarker")
+ }
+ MenuItem {
+ text: qsTr("Coordinates")
+ onTriggered: itemClicked("getMarkerCoordinate")
+ }
+ MenuItem {
+ text: qsTr("Move to")
+ onTriggered: itemClicked("moveMarkerTo")
+ }
+ MenuItem {
+ text: currentMarker < markersCount-2 ? qsTr("Route to next markers")
+ : qsTr("Route to next marker")
+ enabled: currentMarker <= markersCount - 2
+ onTriggered: currentMarker < markersCount-2 ? itemClicked("routeToNextPoints")
+ : itemClicked("routeToNextPoint")
+ }
+ MenuItem {
+ text: currentMarker < markersCount-2 ? qsTr("Distance to next markers")
+ : qsTr("Distance to next marker")
+ enabled: currentMarker <= markersCount - 2
+ onTriggered: currentMarker < markersCount-2 ? itemClicked("distanceToNextPoints")
+ : itemClicked("distanceToNextPoint")
+ }
+}
diff --git a/examples/location/mapviewer/MapViewer/qmldir b/examples/location/mapviewer/MapViewer/qmldir
new file mode 100644
index 000000000..359ca02af
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/qmldir
@@ -0,0 +1,27 @@
+module MapViewer
+typeinfo mapviewer.qmltypes
+Main 1.0 Main.qml
+Helper 1.0 helper.js
+MapComponent 1.0 map/MapComponent.qml
+MapSliders 1.0 map/MapSliders.qml
+Marker 1.0 map/Marker.qml
+MiniMap 1.0 map/MiniMap.qml
+ItemPopupMenu 1.0 menus/ItemPopupMenu.qml
+MainMenu 1.0 menus/MainMenu.qml
+MapPopupMenu 1.0 menus/MapPopupMenu.qml
+MarkerPopupMenu 1.0 menus/MarkerPopupMenu.qml
+Geocode 1.0 forms/Geocode.qml
+GeocodeForm 1.0 forms/GeocodeForm.ui.qml
+Message 1.0 forms/Message.qml
+MessageForm 1.0 forms/MessageForm.ui.qml
+ReverseGeocode 1.0 forms/ReverseGeocode.qml
+ReverseGeocodeForm 1.0 forms/ReverseGeocodeForm.ui.qml
+RouteCoordinate 1.0 forms/RouteCoordinate.qml
+Locale 1.0 forms/Locale.qml
+LocaleForm 1.0 forms/LocaleForm.ui.qml
+RouteAddress 1.0 forms/RouteAddress.qml
+RouteAddressForm 1.0 forms/RouteAddressForm.ui.qml
+RouteCoordinateForm 1.0 forms/RouteCoordinateForm.ui.qml
+RouteList 1.0 forms/RouteList.qml
+RouteListDelegate 1.0 forms/RouteListDelegate.qml
+RouteListHeader 1.0 forms/RouteListHeader.qml
diff --git a/examples/location/mapviewer/MapViewer/resources/marker.png b/examples/location/mapviewer/MapViewer/resources/marker.png
new file mode 100644
index 000000000..2116dfdf5
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/resources/marker.png
Binary files differ
diff --git a/examples/location/mapviewer/MapViewer/resources/marker_blue.png b/examples/location/mapviewer/MapViewer/resources/marker_blue.png
new file mode 100644
index 000000000..70f0c2538
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/resources/marker_blue.png
Binary files differ
diff --git a/examples/location/mapviewer/MapViewer/resources/scale.png b/examples/location/mapviewer/MapViewer/resources/scale.png
new file mode 100644
index 000000000..c4f08122a
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/resources/scale.png
Binary files differ
diff --git a/examples/location/mapviewer/MapViewer/resources/scale_end.png b/examples/location/mapviewer/MapViewer/resources/scale_end.png
new file mode 100644
index 000000000..94510b125
--- /dev/null
+++ b/examples/location/mapviewer/MapViewer/resources/scale_end.png
Binary files differ
diff --git a/examples/location/mapviewer/doc/mapviewer.rst b/examples/location/mapviewer/doc/mapviewer.rst
new file mode 100644
index 000000000..418e2e77e
--- /dev/null
+++ b/examples/location/mapviewer/doc/mapviewer.rst
@@ -0,0 +1,14 @@
+Map Viewer Example
+==================
+
+.. tags:: Android
+
+The Map Viewer example shows how to display and interact with a map,
+search for an address, and find driving directions.
+
+This is a large example covering many basic uses of maps, positioning, and
+navigation services in Qt Location.
+
+.. image:: mapviewer.webp
+ :width: 400
+ :alt: Map Viewer Screenshot
diff --git a/examples/location/mapviewer/doc/mapviewer.webp b/examples/location/mapviewer/doc/mapviewer.webp
new file mode 100644
index 000000000..6571a6c89
--- /dev/null
+++ b/examples/location/mapviewer/doc/mapviewer.webp
Binary files differ
diff --git a/examples/location/mapviewer/main.py b/examples/location/mapviewer/main.py
new file mode 100644
index 000000000..24ae1623f
--- /dev/null
+++ b/examples/location/mapviewer/main.py
@@ -0,0 +1,75 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the location/mapviewer example from Qt v6.x"""
+
+import os
+import sys
+from pathlib import Path
+
+from PySide6.QtQml import QQmlApplicationEngine
+from PySide6.QtGui import QGuiApplication
+from PySide6.QtNetwork import QSslSocket
+from PySide6.QtCore import QCoreApplication, QMetaObject, Q_ARG
+
+HELP = """Usage:
+plugin.<parameter_name> <parameter_value> - Sets parameter = value for plugin"""
+
+
+def parseArgs(args):
+ parameters = {}
+ while args:
+ param = args[0]
+ args = args[1:]
+ if param.startswith("--plugin."):
+ param = param[9:]
+ if not args or args[0].startswith("--"):
+ parameters[param] = True
+ else:
+ value = args[0]
+ args = args[1:]
+ if value in ("true", "on", "enabled"):
+ parameters[param] = True
+ elif value in ("false", "off", "disable"):
+ parameters[param] = False
+ else:
+ parameters[param] = value
+ return parameters
+
+
+if __name__ == "__main__":
+ additionalLibraryPaths = os.environ.get("QTLOCATION_EXTRA_LIBRARY_PATH")
+ if additionalLibraryPaths:
+ for p in additionalLibraryPaths.split(':'):
+ QCoreApplication.addLibraryPath(p)
+
+ application = QGuiApplication(sys.argv)
+ name = "QtLocation Mapviewer example"
+ QCoreApplication.setApplicationName(name)
+
+ args = sys.argv[1:]
+ if "--help" in args:
+ print(f"{name}\n\n{HELP}")
+ sys.exit(0)
+
+ parameters = parseArgs(args)
+ if not parameters.get("osm.useragent"):
+ parameters["osm.useragent"] = name
+
+ engine = QQmlApplicationEngine()
+ engine.rootContext().setContextProperty("supportsSsl",
+ QSslSocket.supportsSsl())
+ engine.addImportPath(Path(__file__).parent)
+ engine.loadFromModule("MapViewer", "Main")
+ engine.quit.connect(QCoreApplication.quit)
+
+ items = engine.rootObjects()
+ if not items:
+ sys.exit(-1)
+
+ QMetaObject.invokeMethod(items[0], "initializeProviders",
+ Q_ARG("QVariant", parameters))
+
+ ex = application.exec()
+ del engine
+ sys.exit(ex)
diff --git a/examples/location/mapviewer/mapviewer.pyproject b/examples/location/mapviewer/mapviewer.pyproject
new file mode 100644
index 000000000..8e2cadd2b
--- /dev/null
+++ b/examples/location/mapviewer/mapviewer.pyproject
@@ -0,0 +1,33 @@
+{
+ "files": ["main.py",
+ "MapViewer/forms/Geocode.qml",
+ "MapViewer/forms/GeocodeForm.ui.qml",
+ "MapViewer/forms/Locale.qml",
+ "MapViewer/forms/LocaleForm.ui.qml",
+ "MapViewer/forms/Message.qml",
+ "MapViewer/forms/MessageForm.ui.qml",
+ "MapViewer/forms/ReverseGeocode.qml",
+ "MapViewer/forms/ReverseGeocodeForm.ui.qml",
+ "MapViewer/forms/RouteAddress.qml",
+ "MapViewer/forms/RouteAddressForm.ui.qml",
+ "MapViewer/forms/RouteCoordinate.qml",
+ "MapViewer/forms/RouteCoordinateForm.ui.qml",
+ "MapViewer/forms/RouteList.qml",
+ "MapViewer/forms/RouteListDelegate.qml",
+ "MapViewer/forms/RouteListHeader.qml",
+ "MapViewer/map/MapComponent.qml",
+ "MapViewer/map/MapSliders.qml",
+ "MapViewer/map/Marker.qml",
+ "MapViewer/map/MiniMap.qml",
+ "MapViewer/menus/ItemPopupMenu.qml",
+ "MapViewer/menus/MainMenu.qml",
+ "MapViewer/menus/MapPopupMenu.qml",
+ "MapViewer/menus/MarkerPopupMenu.qml",
+ "MapViewer/resources/marker_blue.png",
+ "MapViewer/resources/marker.png",
+ "MapViewer/resources/scale_end.png",
+ "MapViewer/resources/scale.png",
+ "MapViewer/helper.js",
+ "MapViewer/Main.qml",
+ "MapViewer/qmldir"]
+}
diff --git a/examples/macextras/macpasteboardmime/macpasteboardmime.py b/examples/macextras/macpasteboardmime/macpasteboardmime.py
deleted file mode 100644
index 4e9cc7cc5..000000000
--- a/examples/macextras/macpasteboardmime/macpasteboardmime.py
+++ /dev/null
@@ -1,128 +0,0 @@
-
-############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-############################################################################
-
-import sys
-from PySide6 import QtCore, QtWidgets
-
-try:
- from PySide6 import QtMacExtras
-except ImportError:
- app = QtWidgets.QApplication(sys.argv)
- messageBox = QtWidgets.QMessageBox(QtWidgets.QMessageBox.Critical, "QtMacExtras macpasteboardmime",
- "This exampe only runs on macOS and QtMacExtras must be installed to run this example.",
- QtWidgets.QMessageBox.Close)
- messageBox.exec()
- sys.exit(1)
-
-
-class VCardMime(QtMacExtras.QMacPasteboardMime):
- def __init__(self, t=QtMacExtras.QMacPasteboardMime.MIME_ALL):
- super().__init__(t)
-
- def convertorName(self):
- return "VCardMime"
-
- def canConvert(self, mime, flav):
- if self.mimeFor(flav) == mime:
- return True
- else:
- return False
-
- def mimeFor(self, flav):
- if flav == "public.vcard":
- return "application/x-mycompany-VCard"
- else:
- return ""
-
- def flavorFor(self, mime):
- if mime == "application/x-mycompany-VCard":
- return "public.vcard"
- else:
- return ""
-
- def convertToMime(self, mime, data, flav):
- data_all = QtCore.QByteArray()
- for i in data:
- data_all += i
- return data_all
-
- def convertFromMime(mime, data, flav):
- # Todo: implement!
- return []
-
-
-class TestWidget(QtWidgets.QWidget):
- def __init__(self, parent=None):
- super().__init__(parent)
- self.vcardMime = VCardMime()
- self.setAcceptDrops(True)
-
- self.label1 = QtWidgets.QLabel()
- self.label2 = QtWidgets.QLabel()
-
- layout = QtWidgets.QVBoxLayout()
- layout.addWidget(self.label1)
- layout.addWidget(self.label2)
- self.setLayout(layout)
-
- self.label1.setText("Please drag a \"VCard\" from Contacts application, normally a name in the list, and drop here.")
-
- def dragEnterEvent(self, e):
- e.accept()
-
- def dropEvent(self, e):
- e.accept()
- self.contentsDropEvent(e)
-
- def contentsDropEvent(self, e):
- if e.mimeData().hasFormat("application/x-mycompany-VCard"):
- s = e.mimeData().data("application/x-mycompany-VCard")
- # s now contains text of vcard
- self.label2.setText(str(s))
- e.acceptProposedAction()
-
-
-if __name__ == '__main__':
- app = QtWidgets.QApplication(sys.argv)
- QtMacExtras.qRegisterDraggedTypes(["public.vcard"])
- wid1 = TestWidget()
- wid1.show()
- sys.exit(app.exec())
diff --git a/examples/macextras/macpasteboardmime/macpasteboardmime.pyproject b/examples/macextras/macpasteboardmime/macpasteboardmime.pyproject
deleted file mode 100644
index d559b7ca4..000000000
--- a/examples/macextras/macpasteboardmime/macpasteboardmime.pyproject
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "files": ["macpasteboardmime.py"]
-}
diff --git a/examples/multimedia/audiooutput/audiooutput.py b/examples/multimedia/audiooutput/audiooutput.py
index 67c021acf..06d52f68a 100644
--- a/examples/multimedia/audiooutput/audiooutput.py
+++ b/examples/multimedia/audiooutput/audiooutput.py
@@ -1,44 +1,6 @@
-
-#############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the multimedia/audiooutput example from Qt v5.x, originating from PyQt"""
@@ -48,7 +10,7 @@ from struct import pack
from PySide6.QtCore import (QByteArray, QIODevice, Qt, QSysInfo, QTimer,
qWarning, Slot)
-from PySide6.QtMultimedia import (QAudio, QAudioDevice, QAudioFormat,
+from PySide6.QtMultimedia import (QAudio, QAudioFormat,
QAudioSink, QMediaDevices)
from PySide6.QtWidgets import (QApplication, QComboBox, QHBoxLayout, QLabel,
QMainWindow, QPushButton, QSlider,
@@ -78,24 +40,23 @@ class Generator(QIODevice):
sample_size = fmt.bytesPerSample() * 8
if sample_size == 8:
if fmt.sampleFormat() == QAudioFormat.UInt8:
- scaler = lambda x: ((1.0 + x) / 2 * 255)
+ scaler = lambda x: ((1.0 + x) / 2 * 255) # noqa: E731
pack_format = 'B'
elif fmt.sampleFormat() == QAudioFormat.Int16:
- scaler = lambda x: x * 127
+ scaler = lambda x: x * 127 # noqa: E731
pack_format = 'b'
elif sample_size == 16:
little_endian = QSysInfo.ByteOrder == QSysInfo.LittleEndian
if fmt.sampleFormat() == QAudioFormat.UInt8:
- scaler = lambda x: (1.0 + x) / 2 * 65535
+ scaler = lambda x: (1.0 + x) / 2 * 65535 # noqa: E731
pack_format = '<H' if little_endian else '>H'
elif fmt.sampleFormat() == QAudioFormat.Int16:
- scaler = lambda x: x * 32767
+ scaler = lambda x: x * 32767 # noqa: E731
pack_format = '<h' if little_endian else '>h'
- assert(pack_format != '')
+ assert pack_format != ''
channel_bytes = fmt.bytesPerSample()
- sample_bytes = fmt.channelCount() * channel_bytes
length = (fmt.sampleRate() * fmt.channelCount() * channel_bytes) * durationUs // 100000
@@ -171,16 +132,14 @@ class AudioTest(QMainWindow):
layout.addWidget(self.m_modeButton)
- self.m_suspendResumeButton = QPushButton(
- clicked=self.toggle_suspend_resume)
+ self.m_suspendResumeButton = QPushButton(clicked=self.toggle_suspend_resume)
self.m_suspendResumeButton.setText(self.SUSPEND_LABEL)
layout.addWidget(self.m_suspendResumeButton)
volume_box = QHBoxLayout()
volume_label = QLabel("Volume:")
- self.m_volumeSlider = QSlider(Qt.Horizontal, minimum=0, maximum=100,
- singleStep=10)
+ self.m_volumeSlider = QSlider(Qt.Horizontal, minimum=0, maximum=100, singleStep=10)
self.m_volumeSlider.valueChanged.connect(self.volume_changed)
volume_box.addWidget(volume_label)
@@ -205,8 +164,8 @@ class AudioTest(QMainWindow):
qWarning("Default format not supported - trying to use nearest")
self.m_format = info.nearestFormat(self.m_format)
- self.m_generator = Generator(self.m_format,
- self.DURATION_SECONDS * 1000000, self.TONE_SAMPLE_RATE_HZ, self)
+ self.m_generator = Generator(self.m_format, self.DURATION_SECONDS * 1000000,
+ self.TONE_SAMPLE_RATE_HZ, self)
self.create_audio_output()
@@ -218,11 +177,18 @@ class AudioTest(QMainWindow):
self.m_audioSink.start(self.m_generator)
self.m_volumeSlider.setValue(self.m_audioSink.volume() * 100)
- @Slot(int)
- def device_changed(self, index):
+ def closeEvent(self, e):
+ self.stop()
+ e.accept()
+
+ def stop(self):
self.m_pullTimer.stop()
self.m_generator.stop()
self.m_audioSink.stop()
+
+ @Slot(int)
+ def device_changed(self, index):
+ self.stop()
self.m_device = self.m_deviceBox.itemData(index)
self.create_audio_output()
@@ -289,7 +255,7 @@ class AudioTest(QMainWindow):
QAudio.StoppedState: "StoppedState",
QAudio.IdleState: "IdleState"}
- @Slot(QAudio.State)
+ @Slot("QAudio::State")
def handle_state_changed(self, state):
state = self.state_map.get(state, 'Unknown')
qWarning(f"state = {state}")
diff --git a/examples/multimedia/audiooutput/doc/audiooutput.rst b/examples/multimedia/audiooutput/doc/audiooutput.rst
index bbd71c5d8..fac7e33e1 100644
--- a/examples/multimedia/audiooutput/doc/audiooutput.rst
+++ b/examples/multimedia/audiooutput/doc/audiooutput.rst
@@ -1,6 +1,8 @@
Audio Output Example
====================
+.. tags:: Android
+
Audio Output demonstrates the basic use cases of QAudioOutput.
This example provides a tone generator to supply continuous audio playback. The
diff --git a/examples/multimedia/audiosource/audiosource.py b/examples/multimedia/audiosource/audiosource.py
new file mode 100644
index 000000000..a78beb584
--- /dev/null
+++ b/examples/multimedia/audiosource/audiosource.py
@@ -0,0 +1,227 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""
+PySide6 port of Qt6 example examples/multimedia/audiosources
+
+Audio Devices demonstrates how to create a simple application to list and test
+the configuration for the various audio devices available on the target device
+or desktop PC.
+
+Note: This Python example is not fully complete as compared to its C++ counterpart.
+Only the push mode works at the moment. For the pull mode to work, the class
+QIODevice have python bindings that needs to be fixed.
+"""
+import os
+import sys
+from typing import Optional
+
+import PySide6
+from PySide6.QtCore import QByteArray, QMargins, Qt, Slot, qWarning
+from PySide6.QtGui import QPainter, QPalette
+from PySide6.QtMultimedia import QAudio, QAudioDevice, QAudioFormat, QAudioSource, QMediaDevices
+from PySide6.QtWidgets import (QApplication, QComboBox, QPushButton, QSlider, QVBoxLayout,
+ QWidget, QLabel)
+
+is_android = os.environ.get('ANDROID_ARGUMENT')
+
+if is_android or sys.platform == "darwin":
+ from PySide6.QtCore import QMicrophonePermission
+
+
+class AudioInfo:
+ def __init__(self, format: QAudioFormat):
+ super().__init__()
+ self.m_format = format
+ self.m_level = 0.0
+
+ def calculate_level(self, data: bytes, length: int) -> float:
+ channel_bytes: int = int(self.m_format.bytesPerSample())
+ sample_bytes: int = int(self.m_format.bytesPerFrame())
+ num_samples: int = int(length / sample_bytes)
+
+ maxValue: float = 0
+ m_offset: int = 0
+
+ for i in range(num_samples):
+ for j in range(self.m_format.channelCount()):
+ value = 0
+ if len(data) > m_offset:
+ data_sample = data[m_offset:]
+ value = self.m_format.normalizedSampleValue(data_sample)
+ maxValue = max(value, maxValue)
+ m_offset = m_offset + channel_bytes
+
+ return maxValue
+
+
+class RenderArea(QWidget):
+ def __init__(self, parent: Optional[PySide6.QtWidgets.QWidget] = None) -> None:
+ super().__init__(parent=parent)
+ self.m_level = 0
+ self.setBackgroundRole(QPalette.Base)
+ self.setAutoFillBackground(True)
+ self.setMinimumHeight(30)
+ self.setMinimumWidth(200)
+
+ def set_level(self, value):
+ self.m_level = value
+ self.update()
+
+ def paintEvent(self, event: PySide6.QtGui.QPaintEvent) -> None:
+ with QPainter(self) as painter:
+ painter.setPen(Qt.black)
+ frame = painter.viewport() - QMargins(10, 10, 10, 10)
+
+ painter.drawRect(frame)
+
+ if self.m_level == 0.0:
+ return
+
+ pos: int = round((frame.width() - 1) * self.m_level)
+ painter.fillRect(
+ frame.left() + 1, frame.top() + 1, pos, frame.height() - 1, Qt.red
+ )
+
+
+class InputTest(QWidget):
+ def __init__(self) -> None:
+ super().__init__()
+ self.m_devices = QMediaDevices(self)
+ self.m_pullMode = False
+ self.initialize()
+
+ @Slot()
+ def initialize(self):
+ if is_android or sys.platform == "darwin":
+ is_nuitka = "__compiled__" in globals()
+ if not is_nuitka and sys.platform == "darwin":
+ print("This example does not work on macOS when Python is run in interpreted mode."
+ "For this example to work on macOS, package the example using pyside6-deploy"
+ "For more information, read `Notes for Developer` in the documentation")
+ sys.exit(0)
+ permission = QMicrophonePermission()
+ permission_status = qApp.checkPermission(permission) # noqa: F821
+ if permission_status == Qt.PermissionStatus.Undetermined:
+ qApp.requestPermission(permission, self, self.initialize) # noqa: F821
+ return
+ if permission_status == Qt.PermissionStatus.Denied:
+ qWarning("Microphone permission is not granted!")
+ self.initializeErrorWindow()
+ return
+ elif permission_status == Qt.PermissionStatus.Granted:
+ print("[AudioSource] Microphone permission granted")
+
+ self.initialize_window()
+ self.initialize_audio(QMediaDevices.defaultAudioInput())
+
+ def initialize_window(self):
+ self.layout = QVBoxLayout(self)
+
+ self.m_canvas = RenderArea(self)
+ self.layout.addWidget(self.m_canvas)
+
+ self.m_device_box = QComboBox(self)
+ default_device_info = QMediaDevices.defaultAudioInput()
+ self.m_device_box.addItem(
+ default_device_info.description(), default_device_info
+ )
+
+ for device_info in self.m_devices.audioInputs():
+ if device_info != default_device_info:
+ self.m_device_box.addItem(device_info.description(), device_info)
+
+ self.m_device_box.activated[int].connect(self.device_changed)
+ self.layout.addWidget(self.m_device_box)
+
+ self.m_volume_slider = QSlider(Qt.Horizontal, self)
+ self.m_volume_slider.setRange(0, 100)
+ self.m_volume_slider.setValue(100)
+ self.m_volume_slider.valueChanged.connect(self.slider_changed)
+ self.layout.addWidget(self.m_volume_slider)
+
+ self.m_mode_button = QPushButton(self)
+ self.m_mode_button.clicked.connect(self.toggle_mode)
+ self.layout.addWidget(self.m_mode_button)
+
+ self.m_suspend_resume_button = QPushButton(self)
+ self.m_suspend_resume_button.clicked.connect(self.toggle_suspend)
+ self.layout.addWidget(self.m_suspend_resume_button)
+
+ def initializeErrorWindow(self):
+ self.layout = QVBoxLayout(self)
+ error_label = QLabel(self.tr("Microphone permission is not granted!"))
+ error_label.setWordWrap(True)
+ error_label.setAlignment(Qt.AlignCenter)
+ self.layout.addWidget(error_label)
+
+ def initialize_audio(self, device_info: QAudioDevice):
+ format = QAudioFormat()
+ format.setSampleRate(8000)
+ format.setChannelCount(1)
+ format.setSampleFormat(QAudioFormat.Int16)
+
+ self.m_audio_info = AudioInfo(format)
+
+ self.m_audio_input = QAudioSource(device_info, format)
+ initial_volume = QAudio.convertVolume(
+ self.m_audio_input.volume(),
+ QAudio.LinearVolumeScale,
+ QAudio.LogarithmicVolumeScale,
+ )
+ self.m_volume_slider.setValue(int(round(initial_volume * 100)))
+ self.toggle_mode()
+
+ @Slot()
+ def toggle_mode(self):
+ self.m_audio_input.stop()
+ self.toggle_suspend()
+
+ self.m_mode_button.setText("Enable pull mode")
+ io = self.m_audio_input.start()
+
+ def push_mode_slot():
+ len = self.m_audio_input.bytesAvailable()
+ buffer_size = 4096
+ if len > buffer_size:
+ len = buffer_size
+ buffer: QByteArray = io.read(len)
+ if len > 0:
+ level = self.m_audio_info.calculate_level(buffer, len)
+ self.m_canvas.set_level(level)
+
+ io.readyRead.connect(push_mode_slot)
+
+ @Slot()
+ def toggle_suspend(self):
+ # toggle suspend/resume
+ state = self.m_audio_input.state()
+ if (state == QAudio.SuspendedState) or (state == QAudio.StoppedState):
+ self.m_audio_input.resume()
+ self.m_suspend_resume_button.setText("Suspend recording")
+ elif state == QAudio.ActiveState:
+ self.m_audio_input.suspend()
+ self.m_suspend_resume_button.setText("Resume recording")
+ # else no-op
+
+ @Slot(int)
+ def device_changed(self, index):
+ self.m_audio_input.stop()
+ self.m_audio_input.disconnect(self)
+ self.initialize_audio(self.m_device_box.itemData(index))
+
+ @Slot(int)
+ def slider_changed(self, value):
+ linearVolume = QAudio.convertVolume(
+ value / float(100), QAudio.LogarithmicVolumeScale, QAudio.LinearVolumeScale
+ )
+
+ self.m_audio_input.setVolume(linearVolume)
+
+
+if __name__ == "__main__":
+ app = QApplication(sys.argv)
+ app.setApplicationName("Audio Sources Example")
+ input = InputTest()
+ input.show()
+ sys.exit(app.exec())
diff --git a/examples/multimedia/audiosource/audiosource.pyproject b/examples/multimedia/audiosource/audiosource.pyproject
new file mode 100644
index 000000000..c09e77303
--- /dev/null
+++ b/examples/multimedia/audiosource/audiosource.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["audiosource.py"]
+}
diff --git a/examples/multimedia/audiosource/doc/audiosource.png b/examples/multimedia/audiosource/doc/audiosource.png
new file mode 100644
index 000000000..cac183b75
--- /dev/null
+++ b/examples/multimedia/audiosource/doc/audiosource.png
Binary files differ
diff --git a/examples/multimedia/audiosource/doc/audiosource.rst b/examples/multimedia/audiosource/doc/audiosource.rst
new file mode 100644
index 000000000..3a247c503
--- /dev/null
+++ b/examples/multimedia/audiosource/doc/audiosource.rst
@@ -0,0 +1,13 @@
+Audio Source Example
+====================
+
+.. tags:: Android
+
+A Python application that demonstrates the analogous example in C++
+`Audio Source Example <https://doc-snapshots.qt.io/qt6-dev/qtmultimedia-multimedia-audiosource-example.html>`_
+
+
+.. image:: audiosource.png
+ :width: 400
+ :alt: audiosource example
+
diff --git a/examples/multimedia/camera/camera.py b/examples/multimedia/camera/camera.py
index c3cfe5384..fa379c807 100644
--- a/examples/multimedia/camera/camera.py
+++ b/examples/multimedia/camera/camera.py
@@ -1,210 +1,369 @@
-
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-"""PySide6 Multimedia Camera Example"""
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import os
import sys
-from PySide6.QtCore import QDate, QDir, QStandardPaths, Qt, QUrl, Slot
-from PySide6.QtGui import QAction, QGuiApplication, QDesktopServices, QIcon
-from PySide6.QtGui import QImage, QPixmap
-from PySide6.QtWidgets import (QApplication, QHBoxLayout, QLabel,
- QMainWindow, QPushButton, QTabWidget, QToolBar, QVBoxLayout, QWidget)
-from PySide6.QtMultimedia import (QCamera, QImageCapture,
- QCameraDevice, QMediaCaptureSession,
- QMediaDevices)
-from PySide6.QtMultimediaWidgets import QVideoWidget
-
-
-class ImageView(QWidget):
- def __init__(self, previewImage, fileName):
+from pathlib import Path
+
+from PySide6.QtMultimedia import (QAudioInput, QCamera, QCameraDevice,
+ QImageCapture, QMediaCaptureSession,
+ QMediaDevices, QMediaMetaData,
+ QMediaRecorder)
+from PySide6.QtWidgets import QDialog, QMainWindow, QMessageBox
+from PySide6.QtGui import QAction, QActionGroup, QIcon, QImage, QPixmap
+from PySide6.QtCore import QDateTime, QDir, QTimer, Qt, Slot, qWarning
+
+from metadatadialog import MetaDataDialog
+from imagesettings import ImageSettings
+from videosettings import VideoSettings, is_android
+
+if is_android or sys.platform == "darwin":
+ from PySide6.QtCore import QMicrophonePermission, QCameraPermission
+
+if is_android:
+ from ui_camera_mobile import Ui_Camera
+else:
+ from ui_camera import Ui_Camera
+
+
+class Camera(QMainWindow):
+ def __init__(self):
super().__init__()
- self._file_name = fileName
+ self._video_devices_group = None
+ self.m_devices = QMediaDevices()
+ self.m_imageCapture = None
+ self.m_captureSession = QMediaCaptureSession()
+ self.m_camera = None
+ self.m_mediaRecorder = None
+
+ self.m_isCapturingImage = False
+ self.m_applicationExiting = False
+ self.m_doImageCapture = True
+
+ self.m_metaDataDialog = None
+
+ self._ui = Ui_Camera()
+ self._ui.setupUi(self)
+ image = Path(__file__).parent / "shutter.svg"
+ self._ui.takeImageButton.setIcon(QIcon(os.fspath(image)))
+ if not is_android:
+ self._ui.actionAbout_Qt.triggered.connect(qApp.aboutQt) # noqa: F821
+
+ # disable all buttons by default
+ self.updateCameraActive(False)
+ self.readyForCapture(False)
+ self._ui.recordButton.setEnabled(False)
+ self._ui.pauseButton.setEnabled(False)
+ self._ui.stopButton.setEnabled(False)
+ self._ui.metaDataButton.setEnabled(False)
+
+ # try to actually initialize camera & mic
+ self.initialize()
+
+ @Slot()
+ def initialize(self):
+ if is_android or sys.platform == "darwin":
+ is_nuitka = "__compiled__" in globals()
+ if not is_nuitka and sys.platform == "darwin":
+ print("This example does not work on macOS when Python is run in interpreted mode."
+ "For this example to work on macOS, package the example using pyside6-deploy"
+ "For more information, read `Notes for Developer` in the documentation")
+ sys.exit(0)
+
+ # camera
+ cam_permission = QCameraPermission()
+ cam_permission_status = qApp.checkPermission(cam_permission) # noqa: F821
+ if cam_permission_status == Qt.PermissionStatus.Undetermined:
+ qApp.requestPermission(cam_permission, self, self.initialize) # noqa: F821
+ return
+ if cam_permission_status == Qt.PermissionStatus.Denied:
+ qWarning("Camera permission is not granted!")
+ return
+ elif cam_permission_status == Qt.PermissionStatus.Granted:
+ print("[AudioSource] Camera permission granted")
+
+ # microphone
+ microphone_permission = QMicrophonePermission()
+ microphone_permission_status = qApp.checkPermission(microphone_permission) # noqa: F821
+ if microphone_permission_status == Qt.PermissionStatus.Undetermined:
+ qApp.requestPermission(microphone_permission, self, self.initialize) # noqa: F821
+ return
+ if microphone_permission_status == Qt.PermissionStatus.Denied:
+ qWarning("Microphone permission is not granted!")
+ self.initializeErrorWindow()
+ return
+ elif microphone_permission_status == Qt.PermissionStatus.Granted:
+ print("[AudioSource] Microphone permission granted")
+
+ self.m_audioInput = QAudioInput()
+ self.m_captureSession.setAudioInput(self.m_audioInput)
+
+ # Camera devices
+
+ self._video_devices_group = QActionGroup(self)
+ self._video_devices_group.setExclusive(True)
+ self.updateCameras()
+ self.m_devices.videoInputsChanged.connect(self.updateCameras)
+
+ self._video_devices_group.triggered.connect(self.updateCameraDevice)
+ self._ui.captureWidget.currentChanged.connect(self.updateCaptureMode)
+
+ self._ui.metaDataButton.clicked.connect(self.showMetaDataDialog)
+ self._ui.exposureCompensation.valueChanged.connect(self.setExposureCompensation)
+
+ self.setCamera(QMediaDevices.defaultVideoInput())
+
+ @Slot(QCameraDevice)
+ def setCamera(self, cameraDevice):
+ self.m_camera = QCamera(cameraDevice)
+ self.m_captureSession.setCamera(self.m_camera)
+
+ self.m_camera.activeChanged.connect(self.updateCameraActive)
+ self.m_camera.errorOccurred.connect(self.displayCameraError)
+
+ if not self.m_mediaRecorder:
+ self.m_mediaRecorder = QMediaRecorder()
+ self.m_captureSession.setRecorder(self.m_mediaRecorder)
+ self.m_mediaRecorder.recorderStateChanged.connect(self.updateRecorderState)
+ self.m_mediaRecorder.durationChanged.connect(self.updateRecordTime)
+ self.m_mediaRecorder.errorChanged.connect(self.displayRecorderError)
+
+ if not self.m_imageCapture:
+ self.m_imageCapture = QImageCapture()
+ self.m_captureSession.setImageCapture(self.m_imageCapture)
+ self.m_imageCapture.readyForCaptureChanged.connect(self.readyForCapture)
+ self.m_imageCapture.imageCaptured.connect(self.processCapturedImage)
+ self.m_imageCapture.imageSaved.connect(self.imageSaved)
+ self.m_imageCapture.errorOccurred.connect(self.displayCaptureError)
+
+ self.m_captureSession.setVideoOutput(self._ui.viewfinder)
+
+ self.updateCameraActive(self.m_camera.isActive())
+ self.updateRecorderState(self.m_mediaRecorder.recorderState())
+ self.readyForCapture(self.m_imageCapture.isReadyForCapture())
+
+ self.updateCaptureMode()
+
+ self.m_camera.start()
+
+ def keyPressEvent(self, event):
+ if event.isAutoRepeat():
+ return
+
+ key = event.key()
+ if key == Qt.Key_CameraFocus:
+ self.displayViewfinder()
+ event.accept()
+ elif key == Qt.Key_Camera:
+ if self.m_doImageCapture:
+ self.takeImage()
+ else:
+ if self.m_mediaRecorder.recorderState() == QMediaRecorder.RecordingState:
+ self.stop()
+ else:
+ self.record()
+
+ event.accept()
+ else:
+ super().keyPressEvent(event)
+
+ @Slot()
+ def updateRecordTime(self):
+ d = self.m_mediaRecorder.duration() / 1000
+ self._ui.statusbar.showMessage(f"Recorded {d} sec")
+
+ @Slot(int, QImage)
+ def processCapturedImage(self, requestId, img):
+ scaled_image = img.scaled(self._ui.viewfinder.size(), Qt.KeepAspectRatio,
+ Qt.SmoothTransformation)
- main_layout = QVBoxLayout(self)
- self._image_label = QLabel()
- self._image_label.setPixmap(QPixmap.fromImage(previewImage))
- main_layout.addWidget(self._image_label)
+ self._ui.lastImagePreviewLabel.setPixmap(QPixmap.fromImage(scaled_image))
- top_layout = QHBoxLayout()
- self._file_name_label = QLabel(QDir.toNativeSeparators(fileName))
- self._file_name_label.setTextInteractionFlags(Qt.TextBrowserInteraction)
+ # Display captured image for 4 seconds.
+ self.displayCapturedImage()
+ QTimer.singleShot(4000, self.displayViewfinder)
- top_layout.addWidget(self._file_name_label)
- top_layout.addStretch()
- copy_button = QPushButton("Copy")
- copy_button.setToolTip("Copy file name to clipboard")
- top_layout.addWidget(copy_button)
- copy_button.clicked.connect(self.copy)
- launch_button = QPushButton("Launch")
- launch_button.setToolTip("Launch image viewer")
- top_layout.addWidget(launch_button)
- launch_button.clicked.connect(self.launch)
- main_layout.addLayout(top_layout)
+ @Slot()
+ def configureCaptureSettings(self):
+ if self.m_doImageCapture:
+ self.configureImageSettings()
+ else:
+ self.configureVideoSettings()
@Slot()
- def copy(self):
- QGuiApplication.clipboard().setText(self._file_name_label.text())
+ def configureVideoSettings(self):
+ settings_dialog = VideoSettings(self.m_mediaRecorder)
+
+ if settings_dialog.exec():
+ settings_dialog.apply_settings()
@Slot()
- def launch(self):
- QDesktopServices.openUrl(QUrl.fromLocalFile(self._file_name))
+ def configureImageSettings(self):
+ settings_dialog = ImageSettings(self.m_imageCapture)
+ if settings_dialog.exec():
+ settings_dialog.apply_image_settings()
-class MainWindow(QMainWindow):
- def __init__(self):
- super().__init__()
+ @Slot()
+ def record(self):
+ self.m_mediaRecorder.record()
+ self.updateRecordTime()
- self._capture_session = None
- self._camera = None
- self._camera_info = None
- self._image_capture = None
+ @Slot()
+ def pause(self):
+ self.m_mediaRecorder.pause()
- available_cameras = QMediaDevices.videoInputs()
- if available_cameras:
- self._camera_info = available_cameras[0]
- self._camera = QCamera(self._camera_info)
- self._camera.errorOccurred.connect(self._camera_error)
- self._image_capture = QImageCapture(self._camera)
- self._image_capture.imageCaptured.connect(self.image_captured)
- self._image_capture.imageSaved.connect(self.image_saved)
- self._image_capture.errorOccurred.connect(self._capture_error)
- self._capture_session = QMediaCaptureSession()
- self._capture_session.setCamera(self._camera)
- self._capture_session.setImageCapture(self._image_capture)
-
- self._current_preview = QImage()
-
- tool_bar = QToolBar()
- self.addToolBar(tool_bar)
-
- file_menu = self.menuBar().addMenu("&File")
- shutter_icon = QIcon(os.path.join(os.path.dirname(__file__),
- "shutter.svg"))
- self._take_picture_action = QAction(shutter_icon, "&Take Picture", self,
- shortcut="Ctrl+T",
- triggered=self.take_picture)
- self._take_picture_action.setToolTip("Take Picture")
- file_menu.addAction(self._take_picture_action)
- tool_bar.addAction(self._take_picture_action)
-
- exit_action = QAction(QIcon.fromTheme("application-exit"), "E&xit",
- self, shortcut="Ctrl+Q", triggered=self.close)
- file_menu.addAction(exit_action)
-
- about_menu = self.menuBar().addMenu("&About")
- about_qt_action = QAction("About &Qt", self, triggered=qApp.aboutQt)
- about_menu.addAction(about_qt_action)
-
- self._tab_widget = QTabWidget()
- self.setCentralWidget(self._tab_widget)
-
- self._camera_viewfinder = QVideoWidget()
- self._tab_widget.addTab(self._camera_viewfinder, "Viewfinder")
-
- if self._camera and self._camera.error() == QCamera.NoError:
- name = self._camera_info.description()
- self.setWindowTitle(f"PySide6 Camera Example ({name})")
- self.show_status_message(f"Starting: '{name}'")
- self._capture_session.setVideoOutput(self._camera_viewfinder)
- self._take_picture_action.setEnabled(self._image_capture.isReadyForCapture())
- self._image_capture.readyForCaptureChanged.connect(self._take_picture_action.setEnabled)
- self._camera.start()
+ @Slot()
+ def stop(self):
+ self.m_mediaRecorder.stop()
+
+ @Slot(bool)
+ def setMuted(self, muted):
+ self.m_captureSession.audioInput().setMuted(muted)
+
+ @Slot()
+ def takeImage(self):
+ self.m_isCapturingImage = True
+ self.m_imageCapture.captureToFile()
+
+ @Slot(int, QImageCapture.Error, str)
+ def displayCaptureError(self, id, error, errorString):
+ QMessageBox.warning(self, "Image Capture Error", errorString)
+ self.m_isCapturingImage = False
+
+ @Slot()
+ def startCamera(self):
+ self.m_camera.start()
+
+ @Slot()
+ def stopCamera(self):
+ self.m_camera.stop()
+
+ @Slot()
+ def updateCaptureMode(self):
+ tab_index = self._ui.captureWidget.currentIndex()
+ self.m_doImageCapture = (tab_index == 0)
+
+ @Slot(bool)
+ def updateCameraActive(self, active):
+ if active:
+ self._ui.actionStartCamera.setEnabled(False)
+ self._ui.actionStopCamera.setEnabled(True)
+ self._ui.captureWidget.setEnabled(True)
+ self._ui.actionSettings.setEnabled(True)
else:
- self.setWindowTitle("PySide6 Camera Example")
- self._take_picture_action.setEnabled(False)
- self.show_status_message("Camera unavailable")
+ self._ui.actionStartCamera.setEnabled(True)
+ self._ui.actionStopCamera.setEnabled(False)
+ self._ui.captureWidget.setEnabled(False)
+ self._ui.actionSettings.setEnabled(False)
+
+ @Slot(QMediaRecorder.RecorderState)
+ def updateRecorderState(self, state):
+ if state == QMediaRecorder.StoppedState:
+ self._ui.recordButton.setEnabled(True)
+ self._ui.pauseButton.setEnabled(True)
+ self._ui.stopButton.setEnabled(False)
+ self._ui.metaDataButton.setEnabled(True)
+ elif state == QMediaRecorder.PausedState:
+ self._ui.recordButton.setEnabled(True)
+ self._ui.pauseButton.setEnabled(False)
+ self._ui.stopButton.setEnabled(True)
+ self._ui.metaDataButton.setEnabled(False)
+ elif state == QMediaRecorder.RecordingState:
+ self._ui.recordButton.setEnabled(False)
+ self._ui.pauseButton.setEnabled(True)
+ self._ui.stopButton.setEnabled(True)
+ self._ui.metaDataButton.setEnabled(False)
+
+ @Slot(int)
+ def setExposureCompensation(self, index):
+ self.m_camera.setExposureCompensation(index * 0.5)
- def show_status_message(self, message):
- self.statusBar().showMessage(message, 5000)
+ @Slot()
+ def displayRecorderError(self):
+ if self.m_mediaRecorder.error() != QMediaRecorder.NoError:
+ QMessageBox.warning(self, "Capture Error",
+ self.m_mediaRecorder.errorString())
- def closeEvent(self, event):
- if self._camera and self._camera.isActive():
- self._camera.stop()
- event.accept()
-
- def next_image_file_name(self):
- pictures_location = QStandardPaths.writableLocation(QStandardPaths.PicturesLocation)
- date_string = QDate.currentDate().toString("yyyyMMdd")
- pattern = f"{pictures_location}/pyside6_camera_{date_string}_{{:03d}}.jpg"
- n = 1
- while True:
- result = pattern.format(n)
- if not os.path.exists(result):
- return result
- n = n + 1
- return None
-
- @Slot()
- def take_picture(self):
- self._current_preview = QImage()
- self._image_capture.captureToFile(self.next_image_file_name())
+ @Slot()
+ def displayCameraError(self):
+ if self.m_camera.error() != QCamera.NoError:
+ QMessageBox.warning(self, "Camera Error",
+ self.m_camera.errorString())
- @Slot(int, QImage)
- def image_captured(self, id, previewImage):
- self._current_preview = previewImage
+ @Slot(QAction)
+ def updateCameraDevice(self, action):
+ self.setCamera(QCameraDevice(action))
+
+ @Slot()
+ def displayViewfinder(self):
+ self._ui.stackedWidget.setCurrentIndex(0)
+
+ @Slot()
+ def displayCapturedImage(self):
+ self._ui.stackedWidget.setCurrentIndex(1)
+
+ @Slot(bool)
+ def readyForCapture(self, ready):
+ self._ui.takeImageButton.setEnabled(ready)
@Slot(int, str)
- def image_saved(self, id, fileName):
- index = self._tab_widget.count()
- image_view = ImageView(self._current_preview, fileName)
- self._tab_widget.addTab(image_view, f"Capture #{index}")
- self._tab_widget.setCurrentIndex(index)
+ def imageSaved(self, id, fileName):
+ f = QDir.toNativeSeparators(fileName)
+ self._ui.statusbar.showMessage(f"Captured \"{f}\"")
- @Slot(int, QImageCapture.Error, str)
- def _capture_error(self, id, error, error_string):
- print(error_string, file=sys.stderr)
- self.show_status_message(error_string)
-
- @Slot(QCamera.Error, str)
- def _camera_error(self, error, error_string):
- print(error_string, file=sys.stderr)
- self.show_status_message(error_string)
-
-
-if __name__ == '__main__':
- app = QApplication(sys.argv)
- main_win = MainWindow()
- available_geometry = main_win.screen().availableGeometry()
- main_win.resize(available_geometry.width() / 3, available_geometry.height() / 2)
- main_win.show()
- sys.exit(app.exec())
+ self.m_isCapturingImage = False
+ if self.m_applicationExiting:
+ self.close()
+
+ def closeEvent(self, event):
+ if self.m_isCapturingImage:
+ self.setEnabled(False)
+ self.m_applicationExiting = True
+ event.ignore()
+ else:
+ event.accept()
+
+ @Slot()
+ def updateCameras(self):
+ self._ui.menuDevices.clear()
+ available_cameras = QMediaDevices.videoInputs()
+ for cameraDevice in available_cameras:
+ video_device_action = QAction(cameraDevice.description(),
+ self._video_devices_group)
+ video_device_action.setCheckable(True)
+ video_device_action.setData(cameraDevice)
+ if cameraDevice == QMediaDevices.defaultVideoInput():
+ video_device_action.setChecked(True)
+
+ self._ui.menuDevices.addAction(video_device_action)
+
+ @Slot()
+ def showMetaDataDialog(self):
+ if not self.m_metaDataDialog:
+ self.m_metaDataDialog = MetaDataDialog(self)
+ self.m_metaDataDialog.setAttribute(Qt.WA_DeleteOnClose, False)
+ if self.m_metaDataDialog.exec() == QDialog.Accepted:
+ self.saveMetaData()
+
+ @Slot()
+ def saveMetaData(self):
+ data = QMediaMetaData()
+ for i in range(0, QMediaMetaData.NumMetaData):
+ val = self.m_metaDataDialog.m_metaDataFields[i].text()
+ if val:
+ key = QMediaMetaData.Key(i)
+ if key == QMediaMetaData.CoverArtImage:
+ cover_art = QImage(val)
+ data.insert(key, cover_art)
+ elif key == QMediaMetaData.ThumbnailImage:
+ thumbnail = QImage(val)
+ data.insert(key, thumbnail)
+ elif key == QMediaMetaData.Date:
+ date = QDateTime.fromString(val)
+ data.insert(key, date)
+ else:
+ data.insert(key, val)
+
+ self.m_mediaRecorder.setMetaData(data)
diff --git a/examples/multimedia/camera/camera.pyproject b/examples/multimedia/camera/camera.pyproject
index ffc6a11ed..9067b1dfa 100644
--- a/examples/multimedia/camera/camera.pyproject
+++ b/examples/multimedia/camera/camera.pyproject
@@ -1,3 +1,12 @@
{
- "files": ["camera.py"]
+ "files": ["main.py",
+ "camera.py",
+ "camera.ui",
+ "camera_mobile.ui",
+ "imagesettings.py",
+ "imagesettings.ui",
+ "metadatadialog.py",
+ "videosettings.py",
+ "videosettings.ui",
+ "videosettings_mobile.ui"]
}
diff --git a/examples/multimedia/camera/camera.ui b/examples/multimedia/camera/camera.ui
new file mode 100644
index 000000000..4584e909c
--- /dev/null
+++ b/examples/multimedia/camera/camera.ui
@@ -0,0 +1,497 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>Camera</class>
+ <widget class="QMainWindow" name="Camera">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>668</width>
+ <height>429</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Camera</string>
+ </property>
+ <widget class="QWidget" name="centralwidget">
+ <layout class="QGridLayout" name="gridLayout_3">
+ <item row="1" column="1" colspan="2">
+ <widget class="QTabWidget" name="captureWidget">
+ <property name="currentIndex">
+ <number>0</number>
+ </property>
+ <widget class="QWidget" name="tab_2">
+ <attribute name="title">
+ <string>Image</string>
+ </attribute>
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="3" column="0">
+ <spacer name="verticalSpacer_2">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>161</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="0" column="0">
+ <widget class="QPushButton" name="takeImageButton">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Capture Photo</string>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="0">
+ <widget class="QSlider" name="exposureCompensation">
+ <property name="minimum">
+ <number>-4</number>
+ </property>
+ <property name="maximum">
+ <number>4</number>
+ </property>
+ <property name="pageStep">
+ <number>2</number>
+ </property>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="tickPosition">
+ <enum>QSlider::TicksAbove</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0">
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Exposure Compensation:</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="tab">
+ <attribute name="title">
+ <string>Video</string>
+ </attribute>
+ <layout class="QGridLayout" name="gridLayout_2">
+ <item row="0" column="0">
+ <widget class="QPushButton" name="recordButton">
+ <property name="text">
+ <string>Record</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QPushButton" name="pauseButton">
+ <property name="text">
+ <string>Pause</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QPushButton" name="stopButton">
+ <property name="text">
+ <string>Stop</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>76</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="4" column="0">
+ <widget class="QPushButton" name="muteButton">
+ <property name="text">
+ <string>Mute</string>
+ </property>
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="0">
+ <widget class="QPushButton" name="metaDataButton">
+ <property name="text">
+ <string>Set metadata</string>
+ </property>
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ <item row="0" column="0" rowspan="2">
+ <widget class="QStackedWidget" name="stackedWidget">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>1</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="palette">
+ <palette>
+ <active>
+ <colorrole role="Base">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Window">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
+ <red>145</red>
+ <green>145</green>
+ <blue>145</blue>
+ </color>
+ </brush>
+ </colorrole>
+ </active>
+ <inactive>
+ <colorrole role="Base">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Window">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
+ <red>145</red>
+ <green>145</green>
+ <blue>145</blue>
+ </color>
+ </brush>
+ </colorrole>
+ </inactive>
+ <disabled>
+ <colorrole role="Base">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
+ <red>145</red>
+ <green>145</green>
+ <blue>145</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Window">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
+ <red>145</red>
+ <green>145</green>
+ <blue>145</blue>
+ </color>
+ </brush>
+ </colorrole>
+ </disabled>
+ </palette>
+ </property>
+ <property name="currentIndex">
+ <number>0</number>
+ </property>
+ <widget class="QWidget" name="viewfinderPage">
+ <layout class="QGridLayout" name="gridLayout_5">
+ <item row="0" column="0">
+ <widget class="QVideoWidget" name="viewfinder" native="true"/>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="previewPage">
+ <layout class="QGridLayout" name="gridLayout_4">
+ <item row="0" column="0">
+ <widget class="QLabel" name="lastImagePreviewLabel">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="frameShape">
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QMenuBar" name="menubar">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>668</width>
+ <height>19</height>
+ </rect>
+ </property>
+ <widget class="QMenu" name="menuFile">
+ <property name="title">
+ <string>File</string>
+ </property>
+ <addaction name="actionStartCamera"/>
+ <addaction name="actionStopCamera"/>
+ <addaction name="separator"/>
+ <addaction name="actionSettings"/>
+ <addaction name="separator"/>
+ <addaction name="actionExit"/>
+ </widget>
+ <widget class="QMenu" name="menuDevices">
+ <property name="title">
+ <string>Devices</string>
+ </property>
+ </widget>
+ <widget class="QMenu" name="menuHelp">
+ <property name="title">
+ <string>Help</string>
+ </property>
+ <addaction name="actionAbout_Qt"/>
+ </widget>
+ <addaction name="menuFile"/>
+ <addaction name="menuDevices"/>
+ <addaction name="menuHelp"/>
+ </widget>
+ <widget class="QStatusBar" name="statusbar"/>
+ <action name="actionExit">
+ <property name="text">
+ <string>Quit</string>
+ </property>
+ <property name="shortcut">
+ <string>Ctrl+Q</string>
+ </property>
+ </action>
+ <action name="actionStartCamera">
+ <property name="text">
+ <string>Start Camera</string>
+ </property>
+ </action>
+ <action name="actionStopCamera">
+ <property name="text">
+ <string>Stop Camera</string>
+ </property>
+ </action>
+ <action name="actionSettings">
+ <property name="text">
+ <string>Change Settings</string>
+ </property>
+ </action>
+ <action name="actionAbout_Qt">
+ <property name="text">
+ <string>About Qt</string>
+ </property>
+ </action>
+ </widget>
+ <customwidgets>
+ <customwidget>
+ <class>QVideoWidget</class>
+ <extends>QWidget</extends>
+ <header>qvideowidget.h</header>
+ <container>1</container>
+ </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>recordButton</sender>
+ <signal>clicked()</signal>
+ <receiver>Camera</receiver>
+ <slot>record()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>647</x>
+ <y>149</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>61</x>
+ <y>238</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>stopButton</sender>
+ <signal>clicked()</signal>
+ <receiver>Camera</receiver>
+ <slot>stop()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>647</x>
+ <y>225</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>140</x>
+ <y>236</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>pauseButton</sender>
+ <signal>clicked()</signal>
+ <receiver>Camera</receiver>
+ <slot>pause()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>647</x>
+ <y>187</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>234</x>
+ <y>237</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>actionExit</sender>
+ <signal>triggered()</signal>
+ <receiver>Camera</receiver>
+ <slot>close()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>-1</x>
+ <y>-1</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>154</x>
+ <y>130</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>takeImageButton</sender>
+ <signal>clicked()</signal>
+ <receiver>Camera</receiver>
+ <slot>takeImage()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>625</x>
+ <y>132</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>603</x>
+ <y>169</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>muteButton</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>Camera</receiver>
+ <slot>setMuted(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>647</x>
+ <y>377</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>5</x>
+ <y>280</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>exposureCompensation</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>Camera</receiver>
+ <slot>setExposureCompensation(int)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>559</x>
+ <y>367</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>665</x>
+ <y>365</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>actionSettings</sender>
+ <signal>triggered()</signal>
+ <receiver>Camera</receiver>
+ <slot>configureCaptureSettings()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>-1</x>
+ <y>-1</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>333</x>
+ <y>210</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>actionStartCamera</sender>
+ <signal>triggered()</signal>
+ <receiver>Camera</receiver>
+ <slot>startCamera()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>-1</x>
+ <y>-1</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>333</x>
+ <y>210</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>actionStopCamera</sender>
+ <signal>triggered()</signal>
+ <receiver>Camera</receiver>
+ <slot>stopCamera()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>-1</x>
+ <y>-1</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>333</x>
+ <y>210</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+ <slots>
+ <slot>record()</slot>
+ <slot>pause()</slot>
+ <slot>stop()</slot>
+ <slot>enablePreview(bool)</slot>
+ <slot>configureCaptureSettings()</slot>
+ <slot>takeImage()</slot>
+ <slot>startCamera()</slot>
+ <slot>toggleLock()</slot>
+ <slot>setMuted(bool)</slot>
+ <slot>stopCamera()</slot>
+ <slot>setExposureCompensation(int)</slot>
+ </slots>
+</ui>
diff --git a/examples/multimedia/camera/camera_mobile.ui b/examples/multimedia/camera/camera_mobile.ui
new file mode 100644
index 000000000..7f269b17b
--- /dev/null
+++ b/examples/multimedia/camera/camera_mobile.ui
@@ -0,0 +1,504 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>Camera</class>
+ <widget class="QMainWindow" name="Camera">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>668</width>
+ <height>429</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Camera</string>
+ </property>
+ <widget class="QWidget" name="centralwidget">
+ <layout class="QGridLayout" name="gridLayout_3">
+ <item row="1" column="1" colspan="2">
+ <widget class="QTabWidget" name="captureWidget">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="currentIndex">
+ <number>0</number>
+ </property>
+ <widget class="QWidget" name="tab_2">
+ <attribute name="title">
+ <string>Image</string>
+ </attribute>
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="4" column="0">
+ <widget class="QSlider" name="exposureCompensation">
+ <property name="minimum">
+ <number>-4</number>
+ </property>
+ <property name="maximum">
+ <number>4</number>
+ </property>
+ <property name="pageStep">
+ <number>2</number>
+ </property>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="tickPosition">
+ <enum>QSlider::TicksAbove</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <widget class="QLabel" name="label">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Exposure Compensation:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0">
+ <widget class="QPushButton" name="takeImageButton">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Capture Photo</string>
+ </property>
+ <property name="icon">
+ <iconset>
+ <normaloff>:/images/shutter.svg</normaloff>:/images/shutter.svg</iconset>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="tab">
+ <attribute name="title">
+ <string>Video</string>
+ </attribute>
+ <layout class="QGridLayout" name="gridLayout_2">
+ <item row="0" column="0">
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QPushButton" name="recordButton">
+ <property name="text">
+ <string>Record</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="pauseButton">
+ <property name="text">
+ <string>Pause</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="stopButton">
+ <property name="text">
+ <string>Stop</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>10</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="muteButton">
+ <property name="text">
+ <string>Mute</string>
+ </property>
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="metaDataButton">
+ <property name="text">
+ <string>Set metadata</string>
+ </property>
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ <item row="0" column="2">
+ <widget class="QStackedWidget" name="stackedWidget">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+ <horstretch>1</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="palette">
+ <palette>
+ <active>
+ <colorrole role="Base">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Window">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
+ <red>145</red>
+ <green>145</green>
+ <blue>145</blue>
+ </color>
+ </brush>
+ </colorrole>
+ </active>
+ <inactive>
+ <colorrole role="Base">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Window">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
+ <red>145</red>
+ <green>145</green>
+ <blue>145</blue>
+ </color>
+ </brush>
+ </colorrole>
+ </inactive>
+ <disabled>
+ <colorrole role="Base">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
+ <red>145</red>
+ <green>145</green>
+ <blue>145</blue>
+ </color>
+ </brush>
+ </colorrole>
+ <colorrole role="Window">
+ <brush brushstyle="SolidPattern">
+ <color alpha="255">
+ <red>145</red>
+ <green>145</green>
+ <blue>145</blue>
+ </color>
+ </brush>
+ </colorrole>
+ </disabled>
+ </palette>
+ </property>
+ <property name="currentIndex">
+ <number>0</number>
+ </property>
+ <widget class="QWidget" name="viewfinderPage">
+ <layout class="QGridLayout" name="gridLayout_5">
+ <item row="0" column="0">
+ <widget class="QVideoWidget" name="viewfinder" native="true">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="previewPage">
+ <layout class="QGridLayout" name="gridLayout_4">
+ <item row="0" column="0">
+ <widget class="QLabel" name="lastImagePreviewLabel">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="frameShape">
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QMenuBar" name="menubar">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>668</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <widget class="QMenu" name="menuFile">
+ <property name="title">
+ <string>File</string>
+ </property>
+ <addaction name="actionStartCamera"/>
+ <addaction name="actionStopCamera"/>
+ <addaction name="separator"/>
+ <addaction name="actionSettings"/>
+ <addaction name="separator"/>
+ <addaction name="actionExit"/>
+ </widget>
+ <widget class="QMenu" name="menuDevices">
+ <property name="title">
+ <string>Devices</string>
+ </property>
+ </widget>
+ <addaction name="menuFile"/>
+ <addaction name="menuDevices"/>
+ </widget>
+ <widget class="QStatusBar" name="statusbar"/>
+ <action name="actionExit">
+ <property name="text">
+ <string>Close</string>
+ </property>
+ </action>
+ <action name="actionStartCamera">
+ <property name="text">
+ <string>Start Camera</string>
+ </property>
+ </action>
+ <action name="actionStopCamera">
+ <property name="text">
+ <string>Stop Camera</string>
+ </property>
+ </action>
+ <action name="actionSettings">
+ <property name="text">
+ <string>Change Settings</string>
+ </property>
+ </action>
+ </widget>
+ <customwidgets>
+ <customwidget>
+ <class>QVideoWidget</class>
+ <extends>QWidget</extends>
+ <header>qvideowidget.h</header>
+ <container>1</container>
+ </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>recordButton</sender>
+ <signal>clicked()</signal>
+ <receiver>Camera</receiver>
+ <slot>record()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>647</x>
+ <y>149</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>61</x>
+ <y>238</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>stopButton</sender>
+ <signal>clicked()</signal>
+ <receiver>Camera</receiver>
+ <slot>stop()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>647</x>
+ <y>225</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>140</x>
+ <y>236</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>pauseButton</sender>
+ <signal>clicked()</signal>
+ <receiver>Camera</receiver>
+ <slot>pause()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>647</x>
+ <y>187</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>234</x>
+ <y>237</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>actionExit</sender>
+ <signal>triggered()</signal>
+ <receiver>Camera</receiver>
+ <slot>close()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>-1</x>
+ <y>-1</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>154</x>
+ <y>130</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>takeImageButton</sender>
+ <signal>clicked()</signal>
+ <receiver>Camera</receiver>
+ <slot>takeImage()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>625</x>
+ <y>132</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>603</x>
+ <y>169</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>muteButton</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>Camera</receiver>
+ <slot>setMuted(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>647</x>
+ <y>377</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>5</x>
+ <y>280</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>exposureCompensation</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>Camera</receiver>
+ <slot>setExposureCompensation(int)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>559</x>
+ <y>367</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>665</x>
+ <y>365</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>actionSettings</sender>
+ <signal>triggered()</signal>
+ <receiver>Camera</receiver>
+ <slot>configureCaptureSettings()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>-1</x>
+ <y>-1</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>333</x>
+ <y>210</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>actionStartCamera</sender>
+ <signal>triggered()</signal>
+ <receiver>Camera</receiver>
+ <slot>startCamera()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>-1</x>
+ <y>-1</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>333</x>
+ <y>210</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>actionStopCamera</sender>
+ <signal>triggered()</signal>
+ <receiver>Camera</receiver>
+ <slot>stopCamera()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>-1</x>
+ <y>-1</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>333</x>
+ <y>210</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+ <slots>
+ <slot>record()</slot>
+ <slot>pause()</slot>
+ <slot>stop()</slot>
+ <slot>enablePreview(bool)</slot>
+ <slot>configureCaptureSettings()</slot>
+ <slot>takeImage()</slot>
+ <slot>startCamera()</slot>
+ <slot>toggleLock()</slot>
+ <slot>setMuted(bool)</slot>
+ <slot>stopCamera()</slot>
+ <slot>setExposureCompensation(int)</slot>
+ </slots>
+</ui>
diff --git a/examples/multimedia/camera/doc/camera.png b/examples/multimedia/camera/doc/camera.png
deleted file mode 100644
index 7ebf1e826..000000000
--- a/examples/multimedia/camera/doc/camera.png
+++ /dev/null
Binary files differ
diff --git a/examples/multimedia/camera/doc/camera.rst b/examples/multimedia/camera/doc/camera.rst
index 0b37b2c6a..7fc75a387 100644
--- a/examples/multimedia/camera/doc/camera.rst
+++ b/examples/multimedia/camera/doc/camera.rst
@@ -1,12 +1,14 @@
Camera Example
===============
+.. tags:: Android
+
The Camera Example shows how to use the API to capture a still image or video.
The Camera Example demonstrates how you can use Qt Multimedia to implement some
basic Camera functionality to take still images and record video clips with
audio.
-.. image:: camera.png
- :width: 400
+.. image:: camera.webp
+ :width: 678
:alt: Camera Screenshot
diff --git a/examples/multimedia/camera/doc/camera.webp b/examples/multimedia/camera/doc/camera.webp
new file mode 100644
index 000000000..11ed18792
--- /dev/null
+++ b/examples/multimedia/camera/doc/camera.webp
Binary files differ
diff --git a/examples/multimedia/camera/imagesettings.py b/examples/multimedia/camera/imagesettings.py
new file mode 100644
index 000000000..9ca1d92ce
--- /dev/null
+++ b/examples/multimedia/camera/imagesettings.py
@@ -0,0 +1,56 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtMultimedia import QImageCapture
+from PySide6.QtWidgets import QDialog
+from PySide6.QtCore import QSize
+
+from ui_imagesettings import Ui_ImageSettingsUi
+
+
+def box_value(box):
+ idx = box.currentIndex()
+ return None if idx == -1 else box.itemData(idx)
+
+
+def select_combo_box_item(box, value):
+ idx = box.findData(value)
+ if idx != -1:
+ box.setCurrentIndex(idx)
+
+
+class ImageSettings(QDialog):
+
+ def __init__(self, imageCapture, parent=None):
+ super().__init__(parent)
+ self.imagecapture = imageCapture
+ self._ui = Ui_ImageSettingsUi()
+ self._ui.setupUi(self)
+
+ # image codecs
+ self._ui.imageCodecBox.addItem("Default image format",
+ QImageCapture.UnspecifiedFormat)
+ supported_image_formats = QImageCapture.supportedFormats()
+ for f in supported_image_formats:
+ description = QImageCapture.fileFormatDescription(f)
+ name = QImageCapture.fileFormatName(f)
+ self._ui.imageCodecBox.addItem(f"{name} : {description}", f)
+
+ self._ui.imageQualitySlider.setRange(0, QImageCapture.VeryHighQuality.value)
+
+ self._ui.imageResolutionBox.addItem("Default Resolution", QSize())
+ camera = imageCapture.captureSession().camera()
+ supported_resolutions = camera.cameraDevice().photoResolutions()
+ for resolution in supported_resolutions:
+ w, h = resolution.width(), resolution.height()
+ self._ui.imageResolutionBox.addItem(f"{w}x{h}", resolution)
+
+ select_combo_box_item(self._ui.imageCodecBox, imageCapture.fileFormat())
+ select_combo_box_item(self._ui.imageResolutionBox, imageCapture.resolution())
+ self._ui.imageQualitySlider.setValue(imageCapture.quality().value)
+
+ def apply_image_settings(self):
+ self.imagecapture.setFileFormat(box_value(self._ui.imageCodecBox))
+ q = self._ui.imageQualitySlider.value()
+ self.imagecapture.setQuality(QImageCapture.Quality(q))
+ self.imagecapture.setResolution(box_value(self._ui.imageResolutionBox))
diff --git a/examples/multimedia/camera/imagesettings.ui b/examples/multimedia/camera/imagesettings.ui
new file mode 100644
index 000000000..8c59ca01d
--- /dev/null
+++ b/examples/multimedia/camera/imagesettings.ui
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>ImageSettingsUi</class>
+ <widget class="QDialog" name="ImageSettingsUi">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>332</width>
+ <height>270</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Image Settings</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="0" column="0">
+ <widget class="QGroupBox" name="groupBox_2">
+ <property name="title">
+ <string>Image</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout_2">
+ <item row="0" column="0" colspan="2">
+ <widget class="QLabel" name="label_8">
+ <property name="text">
+ <string>Resolution:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" colspan="2">
+ <widget class="QComboBox" name="imageResolutionBox"/>
+ </item>
+ <item row="2" column="0" colspan="2">
+ <widget class="QLabel" name="label_6">
+ <property name="text">
+ <string>Image Format:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0" colspan="2">
+ <widget class="QComboBox" name="imageCodecBox"/>
+ </item>
+ <item row="4" column="0">
+ <widget class="QLabel" name="label_7">
+ <property name="text">
+ <string>Quality:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="1">
+ <widget class="QSlider" name="imageQualitySlider">
+ <property name="maximum">
+ <number>4</number>
+ </property>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>14</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="2" column="0">
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>ImageSettingsUi</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>322</x>
+ <y>272</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>44</x>
+ <y>230</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>ImageSettingsUi</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>405</x>
+ <y>262</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>364</x>
+ <y>227</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/examples/multimedia/camera/main.py b/examples/multimedia/camera/main.py
new file mode 100644
index 000000000..fd4dd32e3
--- /dev/null
+++ b/examples/multimedia/camera/main.py
@@ -0,0 +1,17 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the QtMultiMedia camera example from Qt v6.x"""
+
+import sys
+
+from PySide6.QtWidgets import QApplication
+
+from camera import Camera
+
+
+if __name__ == "__main__":
+ app = QApplication(sys.argv)
+ camera = Camera()
+ camera.show()
+ sys.exit(app.exec())
diff --git a/examples/multimedia/camera/metadatadialog.py b/examples/multimedia/camera/metadatadialog.py
new file mode 100644
index 000000000..97d0a36e5
--- /dev/null
+++ b/examples/multimedia/camera/metadatadialog.py
@@ -0,0 +1,86 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtMultimedia import QMediaMetaData
+from PySide6.QtWidgets import (QDialog, QDialogButtonBox, QFileDialog,
+ QFormLayout, QHBoxLayout, QLineEdit,
+ QPushButton, QScrollArea, QVBoxLayout, QWidget)
+from PySide6.QtCore import QDateTime, QDir, Slot
+
+
+IMAGE_FILTER = "Image Files (*.png *.jpg *.bmp)"
+
+
+def default_value(key):
+ if key == QMediaMetaData.Title:
+ return "Qt Camera Example"
+ if key == QMediaMetaData.Author:
+ return "The Qt Company"
+ if key == QMediaMetaData.Date:
+ return QDateTime.currentDateTime().toString()
+ return ""
+
+
+class MetaDataDialog(QDialog):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+ self.m_metaDataFields = []
+ meta_data_layout = QFormLayout()
+ for i in range(0, QMediaMetaData.NumMetaData):
+ key = QMediaMetaData.Key(i)
+ label = QMediaMetaData.metaDataKeyToString(QMediaMetaData.Key(key))
+ line_edit = QLineEdit(default_value(key))
+ line_edit.setClearButtonEnabled(True)
+ self.m_metaDataFields.append(line_edit)
+ if key == QMediaMetaData.ThumbnailImage:
+ open_thumbnail = QPushButton("Open")
+ open_thumbnail.clicked.connect(self.open_thumbnail_image)
+ layout = QHBoxLayout()
+ layout.addWidget(line_edit)
+ layout.addWidget(open_thumbnail)
+ meta_data_layout.addRow(label, layout)
+ elif key == QMediaMetaData.CoverArtImage:
+ open_cover_art = QPushButton("Open")
+ open_cover_art.clicked.connect(self.open_cover_art_image)
+ layout = QHBoxLayout()
+ layout.addWidget(line_edit)
+ layout.addWidget(open_cover_art)
+ meta_data_layout.addRow(label, layout)
+ else:
+ meta_data_layout.addRow(label, line_edit)
+
+ viewport = QWidget()
+ viewport.setLayout(meta_data_layout)
+ scroll_area = QScrollArea()
+ scroll_area.setWidget(viewport)
+ dialog_layout = QVBoxLayout(self)
+ dialog_layout.addWidget(scroll_area)
+
+ button_box = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel)
+ dialog_layout.addWidget(button_box)
+
+ self.setWindowTitle("Set Metadata")
+ self.resize(400, 300)
+
+ button_box.accepted.connect(self.accept)
+ button_box.rejected.connect(self.reject)
+
+ @Slot()
+ def open_thumbnail_image(self):
+ dir = QDir.currentPath()
+ file_name = QFileDialog.getOpenFileName(self, "Open Image", dir,
+ IMAGE_FILTER)
+ if file_name:
+ i = QMediaMetaData.ThumbnailImage.value
+ self.m_metaDataFields[i].setText(file_name[0])
+
+ @Slot()
+ def open_cover_art_image(self):
+ dir = QDir.currentPath()
+ file_name = QFileDialog.getOpenFileName(self, "Open Image", dir,
+ IMAGE_FILTER)
+ if file_name:
+ i = QMediaMetaData.CoverArtImage.value
+ self.m_metaDataFields[i].setText(file_name[0])
diff --git a/examples/multimedia/camera/ui_camera.py b/examples/multimedia/camera/ui_camera.py
new file mode 100644
index 000000000..690cf3352
--- /dev/null
+++ b/examples/multimedia/camera/ui_camera.py
@@ -0,0 +1,232 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'camera.ui'
+##
+## Created by: Qt User Interface Compiler version 6.7.0
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QAction, QBrush, QColor, QConicalGradient,
+ QCursor, QFont, QFontDatabase, QGradient,
+ QIcon, QImage, QKeySequence, QLinearGradient,
+ QPainter, QPalette, QPixmap, QRadialGradient,
+ QTransform)
+from PySide6.QtMultimediaWidgets import QVideoWidget
+from PySide6.QtWidgets import (QApplication, QFrame, QGridLayout, QLabel,
+ QMainWindow, QMenu, QMenuBar, QPushButton,
+ QSizePolicy, QSlider, QSpacerItem, QStackedWidget,
+ QStatusBar, QTabWidget, QWidget)
+
+class Ui_Camera(object):
+ def setupUi(self, Camera):
+ if not Camera.objectName():
+ Camera.setObjectName(u"Camera")
+ Camera.resize(668, 429)
+ self.actionExit = QAction(Camera)
+ self.actionExit.setObjectName(u"actionExit")
+ self.actionStartCamera = QAction(Camera)
+ self.actionStartCamera.setObjectName(u"actionStartCamera")
+ self.actionStopCamera = QAction(Camera)
+ self.actionStopCamera.setObjectName(u"actionStopCamera")
+ self.actionSettings = QAction(Camera)
+ self.actionSettings.setObjectName(u"actionSettings")
+ self.actionAbout_Qt = QAction(Camera)
+ self.actionAbout_Qt.setObjectName(u"actionAbout_Qt")
+ self.centralwidget = QWidget(Camera)
+ self.centralwidget.setObjectName(u"centralwidget")
+ self.gridLayout_3 = QGridLayout(self.centralwidget)
+ self.gridLayout_3.setObjectName(u"gridLayout_3")
+ self.captureWidget = QTabWidget(self.centralwidget)
+ self.captureWidget.setObjectName(u"captureWidget")
+ self.tab_2 = QWidget()
+ self.tab_2.setObjectName(u"tab_2")
+ self.gridLayout = QGridLayout(self.tab_2)
+ self.gridLayout.setObjectName(u"gridLayout")
+ self.verticalSpacer_2 = QSpacerItem(20, 161, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
+
+ self.gridLayout.addItem(self.verticalSpacer_2, 3, 0, 1, 1)
+
+ self.takeImageButton = QPushButton(self.tab_2)
+ self.takeImageButton.setObjectName(u"takeImageButton")
+ self.takeImageButton.setEnabled(False)
+
+ self.gridLayout.addWidget(self.takeImageButton, 0, 0, 1, 1)
+
+ self.exposureCompensation = QSlider(self.tab_2)
+ self.exposureCompensation.setObjectName(u"exposureCompensation")
+ self.exposureCompensation.setMinimum(-4)
+ self.exposureCompensation.setMaximum(4)
+ self.exposureCompensation.setPageStep(2)
+ self.exposureCompensation.setOrientation(Qt.Horizontal)
+ self.exposureCompensation.setTickPosition(QSlider.TicksAbove)
+
+ self.gridLayout.addWidget(self.exposureCompensation, 5, 0, 1, 1)
+
+ self.label = QLabel(self.tab_2)
+ self.label.setObjectName(u"label")
+
+ self.gridLayout.addWidget(self.label, 4, 0, 1, 1)
+
+ self.captureWidget.addTab(self.tab_2, "")
+ self.tab = QWidget()
+ self.tab.setObjectName(u"tab")
+ self.gridLayout_2 = QGridLayout(self.tab)
+ self.gridLayout_2.setObjectName(u"gridLayout_2")
+ self.recordButton = QPushButton(self.tab)
+ self.recordButton.setObjectName(u"recordButton")
+
+ self.gridLayout_2.addWidget(self.recordButton, 0, 0, 1, 1)
+
+ self.pauseButton = QPushButton(self.tab)
+ self.pauseButton.setObjectName(u"pauseButton")
+
+ self.gridLayout_2.addWidget(self.pauseButton, 1, 0, 1, 1)
+
+ self.stopButton = QPushButton(self.tab)
+ self.stopButton.setObjectName(u"stopButton")
+
+ self.gridLayout_2.addWidget(self.stopButton, 2, 0, 1, 1)
+
+ self.verticalSpacer = QSpacerItem(20, 76, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
+
+ self.gridLayout_2.addItem(self.verticalSpacer, 3, 0, 1, 1)
+
+ self.muteButton = QPushButton(self.tab)
+ self.muteButton.setObjectName(u"muteButton")
+ self.muteButton.setCheckable(True)
+
+ self.gridLayout_2.addWidget(self.muteButton, 4, 0, 1, 1)
+
+ self.metaDataButton = QPushButton(self.tab)
+ self.metaDataButton.setObjectName(u"metaDataButton")
+ self.metaDataButton.setCheckable(True)
+
+ self.gridLayout_2.addWidget(self.metaDataButton, 5, 0, 1, 1)
+
+ self.captureWidget.addTab(self.tab, "")
+
+ self.gridLayout_3.addWidget(self.captureWidget, 1, 1, 1, 2)
+
+ self.stackedWidget = QStackedWidget(self.centralwidget)
+ self.stackedWidget.setObjectName(u"stackedWidget")
+ sizePolicy = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Preferred)
+ sizePolicy.setHorizontalStretch(1)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.stackedWidget.sizePolicy().hasHeightForWidth())
+ self.stackedWidget.setSizePolicy(sizePolicy)
+ palette = QPalette()
+ brush = QBrush(QColor(255, 255, 255, 255))
+ brush.setStyle(Qt.SolidPattern)
+ palette.setBrush(QPalette.Active, QPalette.Base, brush)
+ brush1 = QBrush(QColor(145, 145, 145, 255))
+ brush1.setStyle(Qt.SolidPattern)
+ palette.setBrush(QPalette.Active, QPalette.Window, brush1)
+ palette.setBrush(QPalette.Inactive, QPalette.Base, brush)
+ palette.setBrush(QPalette.Inactive, QPalette.Window, brush1)
+ palette.setBrush(QPalette.Disabled, QPalette.Base, brush1)
+ palette.setBrush(QPalette.Disabled, QPalette.Window, brush1)
+ self.stackedWidget.setPalette(palette)
+ self.viewfinderPage = QWidget()
+ self.viewfinderPage.setObjectName(u"viewfinderPage")
+ self.gridLayout_5 = QGridLayout(self.viewfinderPage)
+ self.gridLayout_5.setObjectName(u"gridLayout_5")
+ self.viewfinder = QVideoWidget(self.viewfinderPage)
+ self.viewfinder.setObjectName(u"viewfinder")
+
+ self.gridLayout_5.addWidget(self.viewfinder, 0, 0, 1, 1)
+
+ self.stackedWidget.addWidget(self.viewfinderPage)
+ self.previewPage = QWidget()
+ self.previewPage.setObjectName(u"previewPage")
+ self.gridLayout_4 = QGridLayout(self.previewPage)
+ self.gridLayout_4.setObjectName(u"gridLayout_4")
+ self.lastImagePreviewLabel = QLabel(self.previewPage)
+ self.lastImagePreviewLabel.setObjectName(u"lastImagePreviewLabel")
+ sizePolicy1 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.MinimumExpanding)
+ sizePolicy1.setHorizontalStretch(0)
+ sizePolicy1.setVerticalStretch(0)
+ sizePolicy1.setHeightForWidth(self.lastImagePreviewLabel.sizePolicy().hasHeightForWidth())
+ self.lastImagePreviewLabel.setSizePolicy(sizePolicy1)
+ self.lastImagePreviewLabel.setFrameShape(QFrame.Box)
+
+ self.gridLayout_4.addWidget(self.lastImagePreviewLabel, 0, 0, 1, 1)
+
+ self.stackedWidget.addWidget(self.previewPage)
+
+ self.gridLayout_3.addWidget(self.stackedWidget, 0, 0, 2, 1)
+
+ Camera.setCentralWidget(self.centralwidget)
+ self.menubar = QMenuBar(Camera)
+ self.menubar.setObjectName(u"menubar")
+ self.menubar.setGeometry(QRect(0, 0, 668, 19))
+ self.menuFile = QMenu(self.menubar)
+ self.menuFile.setObjectName(u"menuFile")
+ self.menuDevices = QMenu(self.menubar)
+ self.menuDevices.setObjectName(u"menuDevices")
+ self.menuHelp = QMenu(self.menubar)
+ self.menuHelp.setObjectName(u"menuHelp")
+ Camera.setMenuBar(self.menubar)
+ self.statusbar = QStatusBar(Camera)
+ self.statusbar.setObjectName(u"statusbar")
+ Camera.setStatusBar(self.statusbar)
+
+ self.menubar.addAction(self.menuFile.menuAction())
+ self.menubar.addAction(self.menuDevices.menuAction())
+ self.menubar.addAction(self.menuHelp.menuAction())
+ self.menuFile.addAction(self.actionStartCamera)
+ self.menuFile.addAction(self.actionStopCamera)
+ self.menuFile.addSeparator()
+ self.menuFile.addAction(self.actionSettings)
+ self.menuFile.addSeparator()
+ self.menuFile.addAction(self.actionExit)
+ self.menuHelp.addAction(self.actionAbout_Qt)
+
+ self.retranslateUi(Camera)
+ self.recordButton.clicked.connect(Camera.record)
+ self.stopButton.clicked.connect(Camera.stop)
+ self.pauseButton.clicked.connect(Camera.pause)
+ self.actionExit.triggered.connect(Camera.close)
+ self.takeImageButton.clicked.connect(Camera.takeImage)
+ self.muteButton.toggled.connect(Camera.setMuted)
+ self.exposureCompensation.valueChanged.connect(Camera.setExposureCompensation)
+ self.actionSettings.triggered.connect(Camera.configureCaptureSettings)
+ self.actionStartCamera.triggered.connect(Camera.startCamera)
+ self.actionStopCamera.triggered.connect(Camera.stopCamera)
+
+ self.captureWidget.setCurrentIndex(0)
+ self.stackedWidget.setCurrentIndex(0)
+
+
+ QMetaObject.connectSlotsByName(Camera)
+ # setupUi
+
+ def retranslateUi(self, Camera):
+ Camera.setWindowTitle(QCoreApplication.translate("Camera", u"Camera", None))
+ self.actionExit.setText(QCoreApplication.translate("Camera", u"Quit", None))
+#if QT_CONFIG(shortcut)
+ self.actionExit.setShortcut(QCoreApplication.translate("Camera", u"Ctrl+Q", None))
+#endif // QT_CONFIG(shortcut)
+ self.actionStartCamera.setText(QCoreApplication.translate("Camera", u"Start Camera", None))
+ self.actionStopCamera.setText(QCoreApplication.translate("Camera", u"Stop Camera", None))
+ self.actionSettings.setText(QCoreApplication.translate("Camera", u"Change Settings", None))
+ self.actionAbout_Qt.setText(QCoreApplication.translate("Camera", u"About Qt", None))
+ self.takeImageButton.setText(QCoreApplication.translate("Camera", u"Capture Photo", None))
+ self.label.setText(QCoreApplication.translate("Camera", u"Exposure Compensation:", None))
+ self.captureWidget.setTabText(self.captureWidget.indexOf(self.tab_2), QCoreApplication.translate("Camera", u"Image", None))
+ self.recordButton.setText(QCoreApplication.translate("Camera", u"Record", None))
+ self.pauseButton.setText(QCoreApplication.translate("Camera", u"Pause", None))
+ self.stopButton.setText(QCoreApplication.translate("Camera", u"Stop", None))
+ self.muteButton.setText(QCoreApplication.translate("Camera", u"Mute", None))
+ self.metaDataButton.setText(QCoreApplication.translate("Camera", u"Set metadata", None))
+ self.captureWidget.setTabText(self.captureWidget.indexOf(self.tab), QCoreApplication.translate("Camera", u"Video", None))
+ self.lastImagePreviewLabel.setText("")
+ self.menuFile.setTitle(QCoreApplication.translate("Camera", u"File", None))
+ self.menuDevices.setTitle(QCoreApplication.translate("Camera", u"Devices", None))
+ self.menuHelp.setTitle(QCoreApplication.translate("Camera", u"Help", None))
+ # retranslateUi
+
diff --git a/examples/multimedia/camera/ui_camera_mobile.py b/examples/multimedia/camera/ui_camera_mobile.py
new file mode 100644
index 000000000..5cdd81f1e
--- /dev/null
+++ b/examples/multimedia/camera/ui_camera_mobile.py
@@ -0,0 +1,251 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'camera_mobile.ui'
+##
+## Created by: Qt User Interface Compiler version 6.7.0
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QAction, QBrush, QColor, QConicalGradient,
+ QCursor, QFont, QFontDatabase, QGradient,
+ QIcon, QImage, QKeySequence, QLinearGradient,
+ QPainter, QPalette, QPixmap, QRadialGradient,
+ QTransform)
+from PySide6.QtMultimediaWidgets import QVideoWidget
+from PySide6.QtWidgets import (QApplication, QFrame, QGridLayout, QHBoxLayout,
+ QLabel, QMainWindow, QMenu, QMenuBar,
+ QPushButton, QSizePolicy, QSlider, QSpacerItem,
+ QStackedWidget, QStatusBar, QTabWidget, QVBoxLayout,
+ QWidget)
+
+class Ui_Camera(object):
+ def setupUi(self, Camera):
+ if not Camera.objectName():
+ Camera.setObjectName(u"Camera")
+ Camera.resize(668, 429)
+ self.actionExit = QAction(Camera)
+ self.actionExit.setObjectName(u"actionExit")
+ self.actionStartCamera = QAction(Camera)
+ self.actionStartCamera.setObjectName(u"actionStartCamera")
+ self.actionStopCamera = QAction(Camera)
+ self.actionStopCamera.setObjectName(u"actionStopCamera")
+ self.actionSettings = QAction(Camera)
+ self.actionSettings.setObjectName(u"actionSettings")
+ self.centralwidget = QWidget(Camera)
+ self.centralwidget.setObjectName(u"centralwidget")
+ self.gridLayout_3 = QGridLayout(self.centralwidget)
+ self.gridLayout_3.setObjectName(u"gridLayout_3")
+ self.captureWidget = QTabWidget(self.centralwidget)
+ self.captureWidget.setObjectName(u"captureWidget")
+ sizePolicy = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.captureWidget.sizePolicy().hasHeightForWidth())
+ self.captureWidget.setSizePolicy(sizePolicy)
+ self.tab_2 = QWidget()
+ self.tab_2.setObjectName(u"tab_2")
+ self.gridLayout = QGridLayout(self.tab_2)
+ self.gridLayout.setObjectName(u"gridLayout")
+ self.exposureCompensation = QSlider(self.tab_2)
+ self.exposureCompensation.setObjectName(u"exposureCompensation")
+ self.exposureCompensation.setMinimum(-4)
+ self.exposureCompensation.setMaximum(4)
+ self.exposureCompensation.setPageStep(2)
+ self.exposureCompensation.setOrientation(Qt.Horizontal)
+ self.exposureCompensation.setTickPosition(QSlider.TicksAbove)
+
+ self.gridLayout.addWidget(self.exposureCompensation, 4, 0, 1, 1)
+
+ self.label = QLabel(self.tab_2)
+ self.label.setObjectName(u"label")
+ sizePolicy1 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Fixed)
+ sizePolicy1.setHorizontalStretch(0)
+ sizePolicy1.setVerticalStretch(0)
+ sizePolicy1.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth())
+ self.label.setSizePolicy(sizePolicy1)
+
+ self.gridLayout.addWidget(self.label, 3, 0, 1, 1)
+
+ self.takeImageButton = QPushButton(self.tab_2)
+ self.takeImageButton.setObjectName(u"takeImageButton")
+ self.takeImageButton.setEnabled(False)
+ icon = QIcon()
+ icon.addFile(u":/images/shutter.svg", QSize(), QIcon.Normal, QIcon.Off)
+ self.takeImageButton.setIcon(icon)
+
+ self.gridLayout.addWidget(self.takeImageButton, 0, 0, 1, 1)
+
+ self.captureWidget.addTab(self.tab_2, "")
+ self.tab = QWidget()
+ self.tab.setObjectName(u"tab")
+ self.gridLayout_2 = QGridLayout(self.tab)
+ self.gridLayout_2.setObjectName(u"gridLayout_2")
+ self.horizontalLayout = QHBoxLayout()
+ self.horizontalLayout.setObjectName(u"horizontalLayout")
+ self.verticalLayout = QVBoxLayout()
+ self.verticalLayout.setObjectName(u"verticalLayout")
+ self.recordButton = QPushButton(self.tab)
+ self.recordButton.setObjectName(u"recordButton")
+
+ self.verticalLayout.addWidget(self.recordButton)
+
+ self.pauseButton = QPushButton(self.tab)
+ self.pauseButton.setObjectName(u"pauseButton")
+
+ self.verticalLayout.addWidget(self.pauseButton)
+
+ self.stopButton = QPushButton(self.tab)
+ self.stopButton.setObjectName(u"stopButton")
+
+ self.verticalLayout.addWidget(self.stopButton)
+
+
+ self.horizontalLayout.addLayout(self.verticalLayout)
+
+ self.verticalLayout_2 = QVBoxLayout()
+ self.verticalLayout_2.setObjectName(u"verticalLayout_2")
+ self.verticalSpacer = QSpacerItem(20, 10, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
+
+ self.verticalLayout_2.addItem(self.verticalSpacer)
+
+ self.muteButton = QPushButton(self.tab)
+ self.muteButton.setObjectName(u"muteButton")
+ self.muteButton.setCheckable(True)
+
+ self.verticalLayout_2.addWidget(self.muteButton)
+
+ self.metaDataButton = QPushButton(self.tab)
+ self.metaDataButton.setObjectName(u"metaDataButton")
+ self.metaDataButton.setCheckable(True)
+
+ self.verticalLayout_2.addWidget(self.metaDataButton)
+
+
+ self.horizontalLayout.addLayout(self.verticalLayout_2)
+
+
+ self.gridLayout_2.addLayout(self.horizontalLayout, 0, 0, 1, 1)
+
+ self.captureWidget.addTab(self.tab, "")
+
+ self.gridLayout_3.addWidget(self.captureWidget, 1, 1, 1, 2)
+
+ self.stackedWidget = QStackedWidget(self.centralwidget)
+ self.stackedWidget.setObjectName(u"stackedWidget")
+ sizePolicy2 = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
+ sizePolicy2.setHorizontalStretch(1)
+ sizePolicy2.setVerticalStretch(0)
+ sizePolicy2.setHeightForWidth(self.stackedWidget.sizePolicy().hasHeightForWidth())
+ self.stackedWidget.setSizePolicy(sizePolicy2)
+ palette = QPalette()
+ brush = QBrush(QColor(255, 255, 255, 255))
+ brush.setStyle(Qt.SolidPattern)
+ palette.setBrush(QPalette.Active, QPalette.Base, brush)
+ brush1 = QBrush(QColor(145, 145, 145, 255))
+ brush1.setStyle(Qt.SolidPattern)
+ palette.setBrush(QPalette.Active, QPalette.Window, brush1)
+ palette.setBrush(QPalette.Inactive, QPalette.Base, brush)
+ palette.setBrush(QPalette.Inactive, QPalette.Window, brush1)
+ palette.setBrush(QPalette.Disabled, QPalette.Base, brush1)
+ palette.setBrush(QPalette.Disabled, QPalette.Window, brush1)
+ self.stackedWidget.setPalette(palette)
+ self.viewfinderPage = QWidget()
+ self.viewfinderPage.setObjectName(u"viewfinderPage")
+ self.gridLayout_5 = QGridLayout(self.viewfinderPage)
+ self.gridLayout_5.setObjectName(u"gridLayout_5")
+ self.viewfinder = QVideoWidget(self.viewfinderPage)
+ self.viewfinder.setObjectName(u"viewfinder")
+ sizePolicy3 = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
+ sizePolicy3.setHorizontalStretch(0)
+ sizePolicy3.setVerticalStretch(0)
+ sizePolicy3.setHeightForWidth(self.viewfinder.sizePolicy().hasHeightForWidth())
+ self.viewfinder.setSizePolicy(sizePolicy3)
+
+ self.gridLayout_5.addWidget(self.viewfinder, 0, 0, 1, 1)
+
+ self.stackedWidget.addWidget(self.viewfinderPage)
+ self.previewPage = QWidget()
+ self.previewPage.setObjectName(u"previewPage")
+ self.gridLayout_4 = QGridLayout(self.previewPage)
+ self.gridLayout_4.setObjectName(u"gridLayout_4")
+ self.lastImagePreviewLabel = QLabel(self.previewPage)
+ self.lastImagePreviewLabel.setObjectName(u"lastImagePreviewLabel")
+ sizePolicy4 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.MinimumExpanding)
+ sizePolicy4.setHorizontalStretch(0)
+ sizePolicy4.setVerticalStretch(0)
+ sizePolicy4.setHeightForWidth(self.lastImagePreviewLabel.sizePolicy().hasHeightForWidth())
+ self.lastImagePreviewLabel.setSizePolicy(sizePolicy4)
+ self.lastImagePreviewLabel.setFrameShape(QFrame.Box)
+
+ self.gridLayout_4.addWidget(self.lastImagePreviewLabel, 0, 0, 1, 1)
+
+ self.stackedWidget.addWidget(self.previewPage)
+
+ self.gridLayout_3.addWidget(self.stackedWidget, 0, 2, 1, 1)
+
+ Camera.setCentralWidget(self.centralwidget)
+ self.menubar = QMenuBar(Camera)
+ self.menubar.setObjectName(u"menubar")
+ self.menubar.setGeometry(QRect(0, 0, 668, 22))
+ self.menuFile = QMenu(self.menubar)
+ self.menuFile.setObjectName(u"menuFile")
+ self.menuDevices = QMenu(self.menubar)
+ self.menuDevices.setObjectName(u"menuDevices")
+ Camera.setMenuBar(self.menubar)
+ self.statusbar = QStatusBar(Camera)
+ self.statusbar.setObjectName(u"statusbar")
+ Camera.setStatusBar(self.statusbar)
+
+ self.menubar.addAction(self.menuFile.menuAction())
+ self.menubar.addAction(self.menuDevices.menuAction())
+ self.menuFile.addAction(self.actionStartCamera)
+ self.menuFile.addAction(self.actionStopCamera)
+ self.menuFile.addSeparator()
+ self.menuFile.addAction(self.actionSettings)
+ self.menuFile.addSeparator()
+ self.menuFile.addAction(self.actionExit)
+
+ self.retranslateUi(Camera)
+ self.recordButton.clicked.connect(Camera.record)
+ self.stopButton.clicked.connect(Camera.stop)
+ self.pauseButton.clicked.connect(Camera.pause)
+ self.actionExit.triggered.connect(Camera.close)
+ self.takeImageButton.clicked.connect(Camera.takeImage)
+ self.muteButton.toggled.connect(Camera.setMuted)
+ self.exposureCompensation.valueChanged.connect(Camera.setExposureCompensation)
+ self.actionSettings.triggered.connect(Camera.configureCaptureSettings)
+ self.actionStartCamera.triggered.connect(Camera.startCamera)
+ self.actionStopCamera.triggered.connect(Camera.stopCamera)
+
+ self.captureWidget.setCurrentIndex(0)
+ self.stackedWidget.setCurrentIndex(0)
+
+
+ QMetaObject.connectSlotsByName(Camera)
+ # setupUi
+
+ def retranslateUi(self, Camera):
+ Camera.setWindowTitle(QCoreApplication.translate("Camera", u"Camera", None))
+ self.actionExit.setText(QCoreApplication.translate("Camera", u"Close", None))
+ self.actionStartCamera.setText(QCoreApplication.translate("Camera", u"Start Camera", None))
+ self.actionStopCamera.setText(QCoreApplication.translate("Camera", u"Stop Camera", None))
+ self.actionSettings.setText(QCoreApplication.translate("Camera", u"Change Settings", None))
+ self.label.setText(QCoreApplication.translate("Camera", u"Exposure Compensation:", None))
+ self.takeImageButton.setText(QCoreApplication.translate("Camera", u"Capture Photo", None))
+ self.captureWidget.setTabText(self.captureWidget.indexOf(self.tab_2), QCoreApplication.translate("Camera", u"Image", None))
+ self.recordButton.setText(QCoreApplication.translate("Camera", u"Record", None))
+ self.pauseButton.setText(QCoreApplication.translate("Camera", u"Pause", None))
+ self.stopButton.setText(QCoreApplication.translate("Camera", u"Stop", None))
+ self.muteButton.setText(QCoreApplication.translate("Camera", u"Mute", None))
+ self.metaDataButton.setText(QCoreApplication.translate("Camera", u"Set metadata", None))
+ self.captureWidget.setTabText(self.captureWidget.indexOf(self.tab), QCoreApplication.translate("Camera", u"Video", None))
+ self.lastImagePreviewLabel.setText("")
+ self.menuFile.setTitle(QCoreApplication.translate("Camera", u"File", None))
+ self.menuDevices.setTitle(QCoreApplication.translate("Camera", u"Devices", None))
+ # retranslateUi
+
diff --git a/examples/multimedia/camera/ui_imagesettings.py b/examples/multimedia/camera/ui_imagesettings.py
new file mode 100644
index 000000000..a3fba7789
--- /dev/null
+++ b/examples/multimedia/camera/ui_imagesettings.py
@@ -0,0 +1,94 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'imagesettings.ui'
+##
+## Created by: Qt User Interface Compiler version 6.7.0
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
+ QFont, QFontDatabase, QGradient, QIcon,
+ QImage, QKeySequence, QLinearGradient, QPainter,
+ QPalette, QPixmap, QRadialGradient, QTransform)
+from PySide6.QtWidgets import (QAbstractButton, QApplication, QComboBox, QDialog,
+ QDialogButtonBox, QGridLayout, QGroupBox, QLabel,
+ QSizePolicy, QSlider, QSpacerItem, QWidget)
+
+class Ui_ImageSettingsUi(object):
+ def setupUi(self, ImageSettingsUi):
+ if not ImageSettingsUi.objectName():
+ ImageSettingsUi.setObjectName(u"ImageSettingsUi")
+ ImageSettingsUi.resize(332, 270)
+ self.gridLayout = QGridLayout(ImageSettingsUi)
+ self.gridLayout.setObjectName(u"gridLayout")
+ self.groupBox_2 = QGroupBox(ImageSettingsUi)
+ self.groupBox_2.setObjectName(u"groupBox_2")
+ self.gridLayout_2 = QGridLayout(self.groupBox_2)
+ self.gridLayout_2.setObjectName(u"gridLayout_2")
+ self.label_8 = QLabel(self.groupBox_2)
+ self.label_8.setObjectName(u"label_8")
+
+ self.gridLayout_2.addWidget(self.label_8, 0, 0, 1, 2)
+
+ self.imageResolutionBox = QComboBox(self.groupBox_2)
+ self.imageResolutionBox.setObjectName(u"imageResolutionBox")
+
+ self.gridLayout_2.addWidget(self.imageResolutionBox, 1, 0, 1, 2)
+
+ self.label_6 = QLabel(self.groupBox_2)
+ self.label_6.setObjectName(u"label_6")
+
+ self.gridLayout_2.addWidget(self.label_6, 2, 0, 1, 2)
+
+ self.imageCodecBox = QComboBox(self.groupBox_2)
+ self.imageCodecBox.setObjectName(u"imageCodecBox")
+
+ self.gridLayout_2.addWidget(self.imageCodecBox, 3, 0, 1, 2)
+
+ self.label_7 = QLabel(self.groupBox_2)
+ self.label_7.setObjectName(u"label_7")
+
+ self.gridLayout_2.addWidget(self.label_7, 4, 0, 1, 1)
+
+ self.imageQualitySlider = QSlider(self.groupBox_2)
+ self.imageQualitySlider.setObjectName(u"imageQualitySlider")
+ self.imageQualitySlider.setMaximum(4)
+ self.imageQualitySlider.setOrientation(Qt.Horizontal)
+
+ self.gridLayout_2.addWidget(self.imageQualitySlider, 4, 1, 1, 1)
+
+
+ self.gridLayout.addWidget(self.groupBox_2, 0, 0, 1, 1)
+
+ self.verticalSpacer = QSpacerItem(20, 14, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
+
+ self.gridLayout.addItem(self.verticalSpacer, 1, 0, 1, 1)
+
+ self.buttonBox = QDialogButtonBox(ImageSettingsUi)
+ self.buttonBox.setObjectName(u"buttonBox")
+ self.buttonBox.setOrientation(Qt.Horizontal)
+ self.buttonBox.setStandardButtons(QDialogButtonBox.Cancel|QDialogButtonBox.Ok)
+
+ self.gridLayout.addWidget(self.buttonBox, 2, 0, 1, 1)
+
+
+ self.retranslateUi(ImageSettingsUi)
+ self.buttonBox.accepted.connect(ImageSettingsUi.accept)
+ self.buttonBox.rejected.connect(ImageSettingsUi.reject)
+
+ QMetaObject.connectSlotsByName(ImageSettingsUi)
+ # setupUi
+
+ def retranslateUi(self, ImageSettingsUi):
+ ImageSettingsUi.setWindowTitle(QCoreApplication.translate("ImageSettingsUi", u"Image Settings", None))
+ self.groupBox_2.setTitle(QCoreApplication.translate("ImageSettingsUi", u"Image", None))
+ self.label_8.setText(QCoreApplication.translate("ImageSettingsUi", u"Resolution:", None))
+ self.label_6.setText(QCoreApplication.translate("ImageSettingsUi", u"Image Format:", None))
+ self.label_7.setText(QCoreApplication.translate("ImageSettingsUi", u"Quality:", None))
+ # retranslateUi
+
diff --git a/examples/multimedia/camera/ui_videosettings.py b/examples/multimedia/camera/ui_videosettings.py
new file mode 100644
index 000000000..eec626f27
--- /dev/null
+++ b/examples/multimedia/camera/ui_videosettings.py
@@ -0,0 +1,178 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'videosettings.ui'
+##
+## Created by: Qt User Interface Compiler version 6.7.0
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
+ QFont, QFontDatabase, QGradient, QIcon,
+ QImage, QKeySequence, QLinearGradient, QPainter,
+ QPalette, QPixmap, QRadialGradient, QTransform)
+from PySide6.QtWidgets import (QAbstractButton, QApplication, QComboBox, QDialog,
+ QDialogButtonBox, QGridLayout, QGroupBox, QHBoxLayout,
+ QLabel, QSizePolicy, QSlider, QSpacerItem,
+ QSpinBox, QVBoxLayout, QWidget)
+
+class Ui_VideoSettingsUi(object):
+ def setupUi(self, VideoSettingsUi):
+ if not VideoSettingsUi.objectName():
+ VideoSettingsUi.setObjectName(u"VideoSettingsUi")
+ VideoSettingsUi.resize(686, 499)
+ self.gridLayout_3 = QGridLayout(VideoSettingsUi)
+ self.gridLayout_3.setObjectName(u"gridLayout_3")
+ self.buttonBox = QDialogButtonBox(VideoSettingsUi)
+ self.buttonBox.setObjectName(u"buttonBox")
+ self.buttonBox.setOrientation(Qt.Horizontal)
+ self.buttonBox.setStandardButtons(QDialogButtonBox.Cancel|QDialogButtonBox.Ok)
+
+ self.gridLayout_3.addWidget(self.buttonBox, 4, 1, 1, 1)
+
+ self.groupBox_2 = QGroupBox(VideoSettingsUi)
+ self.groupBox_2.setObjectName(u"groupBox_2")
+ self.gridLayout_2 = QGridLayout(self.groupBox_2)
+ self.gridLayout_2.setObjectName(u"gridLayout_2")
+ self.label_8 = QLabel(self.groupBox_2)
+ self.label_8.setObjectName(u"label_8")
+
+ self.gridLayout_2.addWidget(self.label_8, 0, 0, 1, 2)
+
+ self.videoCodecBox = QComboBox(self.groupBox_2)
+ self.videoCodecBox.setObjectName(u"videoCodecBox")
+
+ self.gridLayout_2.addWidget(self.videoCodecBox, 5, 0, 1, 2)
+
+ self.label_9 = QLabel(self.groupBox_2)
+ self.label_9.setObjectName(u"label_9")
+
+ self.gridLayout_2.addWidget(self.label_9, 2, 0, 1, 2)
+
+ self.label_6 = QLabel(self.groupBox_2)
+ self.label_6.setObjectName(u"label_6")
+
+ self.gridLayout_2.addWidget(self.label_6, 4, 0, 1, 2)
+
+ self.videoFormatBox = QComboBox(self.groupBox_2)
+ self.videoFormatBox.setObjectName(u"videoFormatBox")
+
+ self.gridLayout_2.addWidget(self.videoFormatBox, 1, 0, 1, 2)
+
+ self.horizontalLayout = QHBoxLayout()
+ self.horizontalLayout.setObjectName(u"horizontalLayout")
+ self.fpsSpinBox = QSpinBox(self.groupBox_2)
+ self.fpsSpinBox.setObjectName(u"fpsSpinBox")
+
+ self.horizontalLayout.addWidget(self.fpsSpinBox)
+
+ self.fpsSlider = QSlider(self.groupBox_2)
+ self.fpsSlider.setObjectName(u"fpsSlider")
+ self.fpsSlider.setOrientation(Qt.Horizontal)
+
+ self.horizontalLayout.addWidget(self.fpsSlider)
+
+
+ self.gridLayout_2.addLayout(self.horizontalLayout, 3, 0, 1, 2)
+
+
+ self.gridLayout_3.addWidget(self.groupBox_2, 2, 1, 1, 1)
+
+ self.widget = QWidget(VideoSettingsUi)
+ self.widget.setObjectName(u"widget")
+ sizePolicy = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Preferred)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.widget.sizePolicy().hasHeightForWidth())
+ self.widget.setSizePolicy(sizePolicy)
+ self.verticalLayout_3 = QVBoxLayout(self.widget)
+ self.verticalLayout_3.setObjectName(u"verticalLayout_3")
+ self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
+ self.groupBox_3 = QGroupBox(self.widget)
+ self.groupBox_3.setObjectName(u"groupBox_3")
+ self.verticalLayout_2 = QVBoxLayout(self.groupBox_3)
+ self.verticalLayout_2.setObjectName(u"verticalLayout_2")
+ self.label_2 = QLabel(self.groupBox_3)
+ self.label_2.setObjectName(u"label_2")
+
+ self.verticalLayout_2.addWidget(self.label_2)
+
+ self.audioCodecBox = QComboBox(self.groupBox_3)
+ self.audioCodecBox.setObjectName(u"audioCodecBox")
+
+ self.verticalLayout_2.addWidget(self.audioCodecBox)
+
+ self.label_5 = QLabel(self.groupBox_3)
+ self.label_5.setObjectName(u"label_5")
+
+ self.verticalLayout_2.addWidget(self.label_5)
+
+ self.audioSampleRateBox = QSpinBox(self.groupBox_3)
+ self.audioSampleRateBox.setObjectName(u"audioSampleRateBox")
+
+ self.verticalLayout_2.addWidget(self.audioSampleRateBox)
+
+
+ self.verticalLayout_3.addWidget(self.groupBox_3)
+
+ self.groupBox = QGroupBox(self.widget)
+ self.groupBox.setObjectName(u"groupBox")
+ self.verticalLayout = QVBoxLayout(self.groupBox)
+ self.verticalLayout.setObjectName(u"verticalLayout")
+ self.label_3 = QLabel(self.groupBox)
+ self.label_3.setObjectName(u"label_3")
+
+ self.verticalLayout.addWidget(self.label_3)
+
+ self.qualitySlider = QSlider(self.groupBox)
+ self.qualitySlider.setObjectName(u"qualitySlider")
+ self.qualitySlider.setMaximum(4)
+ self.qualitySlider.setOrientation(Qt.Horizontal)
+
+ self.verticalLayout.addWidget(self.qualitySlider)
+
+ self.label_4 = QLabel(self.groupBox)
+ self.label_4.setObjectName(u"label_4")
+
+ self.verticalLayout.addWidget(self.label_4)
+
+ self.containerFormatBox = QComboBox(self.groupBox)
+ self.containerFormatBox.setObjectName(u"containerFormatBox")
+
+ self.verticalLayout.addWidget(self.containerFormatBox)
+
+
+ self.verticalLayout_3.addWidget(self.groupBox)
+
+
+ self.gridLayout_3.addWidget(self.widget, 2, 0, 1, 1)
+
+ self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
+
+ self.gridLayout_3.addItem(self.verticalSpacer, 3, 0, 1, 1)
+
+
+ self.retranslateUi(VideoSettingsUi)
+ self.buttonBox.accepted.connect(VideoSettingsUi.accept)
+ self.buttonBox.rejected.connect(VideoSettingsUi.reject)
+
+ QMetaObject.connectSlotsByName(VideoSettingsUi)
+ # setupUi
+
+ def retranslateUi(self, VideoSettingsUi):
+ VideoSettingsUi.setWindowTitle(QCoreApplication.translate("VideoSettingsUi", u"Video Settings", None))
+ self.groupBox_2.setTitle(QCoreApplication.translate("VideoSettingsUi", u"Video", None))
+ self.label_8.setText(QCoreApplication.translate("VideoSettingsUi", u"Camera Format", None))
+ self.label_9.setText(QCoreApplication.translate("VideoSettingsUi", u"Framerate:", None))
+ self.label_6.setText(QCoreApplication.translate("VideoSettingsUi", u"Video Codec:", None))
+ self.groupBox_3.setTitle(QCoreApplication.translate("VideoSettingsUi", u"Audio", None))
+ self.label_2.setText(QCoreApplication.translate("VideoSettingsUi", u"Audio Codec:", None))
+ self.label_5.setText(QCoreApplication.translate("VideoSettingsUi", u"Sample Rate:", None))
+ self.label_3.setText(QCoreApplication.translate("VideoSettingsUi", u"Quality:", None))
+ self.label_4.setText(QCoreApplication.translate("VideoSettingsUi", u"File Format:", None))
+ # retranslateUi
+
diff --git a/examples/multimedia/camera/ui_videosettings_mobile.py b/examples/multimedia/camera/ui_videosettings_mobile.py
new file mode 100644
index 000000000..50fb8e081
--- /dev/null
+++ b/examples/multimedia/camera/ui_videosettings_mobile.py
@@ -0,0 +1,176 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'videosettings_mobile.ui'
+##
+## Created by: Qt User Interface Compiler version 6.7.0
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
+ QFont, QFontDatabase, QGradient, QIcon,
+ QImage, QKeySequence, QLinearGradient, QPainter,
+ QPalette, QPixmap, QRadialGradient, QTransform)
+from PySide6.QtWidgets import (QAbstractButton, QApplication, QComboBox, QDialog,
+ QDialogButtonBox, QGridLayout, QGroupBox, QHBoxLayout,
+ QLabel, QSizePolicy, QSlider, QSpinBox,
+ QVBoxLayout, QWidget)
+
+class Ui_VideoSettingsUi(object):
+ def setupUi(self, VideoSettingsUi):
+ if not VideoSettingsUi.objectName():
+ VideoSettingsUi.setObjectName(u"VideoSettingsUi")
+ VideoSettingsUi.resize(329, 591)
+ self.gridLayout_3 = QGridLayout(VideoSettingsUi)
+ self.gridLayout_3.setObjectName(u"gridLayout_3")
+ self.widget = QWidget(VideoSettingsUi)
+ self.widget.setObjectName(u"widget")
+ sizePolicy = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Preferred)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.widget.sizePolicy().hasHeightForWidth())
+ self.widget.setSizePolicy(sizePolicy)
+ self.verticalLayout_3 = QVBoxLayout(self.widget)
+ self.verticalLayout_3.setObjectName(u"verticalLayout_3")
+ self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
+ self.groupBox_3 = QGroupBox(self.widget)
+ self.groupBox_3.setObjectName(u"groupBox_3")
+ self.verticalLayout_2 = QVBoxLayout(self.groupBox_3)
+ self.verticalLayout_2.setObjectName(u"verticalLayout_2")
+ self.label_2 = QLabel(self.groupBox_3)
+ self.label_2.setObjectName(u"label_2")
+
+ self.verticalLayout_2.addWidget(self.label_2)
+
+ self.audioCodecBox = QComboBox(self.groupBox_3)
+ self.audioCodecBox.setObjectName(u"audioCodecBox")
+
+ self.verticalLayout_2.addWidget(self.audioCodecBox)
+
+ self.label_5 = QLabel(self.groupBox_3)
+ self.label_5.setObjectName(u"label_5")
+
+ self.verticalLayout_2.addWidget(self.label_5)
+
+ self.audioSampleRateBox = QSpinBox(self.groupBox_3)
+ self.audioSampleRateBox.setObjectName(u"audioSampleRateBox")
+
+ self.verticalLayout_2.addWidget(self.audioSampleRateBox)
+
+
+ self.verticalLayout_3.addWidget(self.groupBox_3)
+
+ self.groupBox = QGroupBox(self.widget)
+ self.groupBox.setObjectName(u"groupBox")
+ self.verticalLayout = QVBoxLayout(self.groupBox)
+ self.verticalLayout.setObjectName(u"verticalLayout")
+ self.label_3 = QLabel(self.groupBox)
+ self.label_3.setObjectName(u"label_3")
+
+ self.verticalLayout.addWidget(self.label_3)
+
+ self.qualitySlider = QSlider(self.groupBox)
+ self.qualitySlider.setObjectName(u"qualitySlider")
+ self.qualitySlider.setMaximum(4)
+ self.qualitySlider.setOrientation(Qt.Horizontal)
+
+ self.verticalLayout.addWidget(self.qualitySlider)
+
+ self.label_4 = QLabel(self.groupBox)
+ self.label_4.setObjectName(u"label_4")
+
+ self.verticalLayout.addWidget(self.label_4)
+
+ self.containerFormatBox = QComboBox(self.groupBox)
+ self.containerFormatBox.setObjectName(u"containerFormatBox")
+
+ self.verticalLayout.addWidget(self.containerFormatBox)
+
+
+ self.verticalLayout_3.addWidget(self.groupBox)
+
+
+ self.gridLayout_3.addWidget(self.widget, 2, 0, 1, 1)
+
+ self.groupBox_2 = QGroupBox(VideoSettingsUi)
+ self.groupBox_2.setObjectName(u"groupBox_2")
+ self.gridLayout_2 = QGridLayout(self.groupBox_2)
+ self.gridLayout_2.setObjectName(u"gridLayout_2")
+ self.label = QLabel(self.groupBox_2)
+ self.label.setObjectName(u"label")
+
+ self.gridLayout_2.addWidget(self.label, 2, 0, 1, 1)
+
+ self.videoCodecBox = QComboBox(self.groupBox_2)
+ self.videoCodecBox.setObjectName(u"videoCodecBox")
+
+ self.gridLayout_2.addWidget(self.videoCodecBox, 6, 0, 1, 2)
+
+ self.label_8 = QLabel(self.groupBox_2)
+ self.label_8.setObjectName(u"label_8")
+
+ self.gridLayout_2.addWidget(self.label_8, 0, 0, 1, 2)
+
+ self.label_6 = QLabel(self.groupBox_2)
+ self.label_6.setObjectName(u"label_6")
+
+ self.gridLayout_2.addWidget(self.label_6, 5, 0, 1, 2)
+
+ self.videoFormatBox = QComboBox(self.groupBox_2)
+ self.videoFormatBox.setObjectName(u"videoFormatBox")
+
+ self.gridLayout_2.addWidget(self.videoFormatBox, 1, 0, 1, 2)
+
+ self.buttonBox = QDialogButtonBox(self.groupBox_2)
+ self.buttonBox.setObjectName(u"buttonBox")
+ self.buttonBox.setOrientation(Qt.Horizontal)
+ self.buttonBox.setStandardButtons(QDialogButtonBox.Cancel|QDialogButtonBox.Ok)
+
+ self.gridLayout_2.addWidget(self.buttonBox, 7, 0, 1, 1)
+
+ self.horizontalLayout = QHBoxLayout()
+ self.horizontalLayout.setObjectName(u"horizontalLayout")
+ self.fpsSpinBox = QSpinBox(self.groupBox_2)
+ self.fpsSpinBox.setObjectName(u"fpsSpinBox")
+ self.fpsSpinBox.setMinimum(8)
+ self.fpsSpinBox.setMaximum(30)
+
+ self.horizontalLayout.addWidget(self.fpsSpinBox)
+
+ self.fpsSlider = QSlider(self.groupBox_2)
+ self.fpsSlider.setObjectName(u"fpsSlider")
+ self.fpsSlider.setOrientation(Qt.Horizontal)
+
+ self.horizontalLayout.addWidget(self.fpsSlider)
+
+
+ self.gridLayout_2.addLayout(self.horizontalLayout, 3, 0, 1, 1)
+
+
+ self.gridLayout_3.addWidget(self.groupBox_2, 3, 0, 1, 1)
+
+
+ self.retranslateUi(VideoSettingsUi)
+ self.buttonBox.accepted.connect(VideoSettingsUi.accept)
+ self.buttonBox.rejected.connect(VideoSettingsUi.reject)
+
+ QMetaObject.connectSlotsByName(VideoSettingsUi)
+ # setupUi
+
+ def retranslateUi(self, VideoSettingsUi):
+ VideoSettingsUi.setWindowTitle(QCoreApplication.translate("VideoSettingsUi", u"Video Settings", None))
+ self.groupBox_3.setTitle(QCoreApplication.translate("VideoSettingsUi", u"Audio", None))
+ self.label_2.setText(QCoreApplication.translate("VideoSettingsUi", u"Audio Codec:", None))
+ self.label_5.setText(QCoreApplication.translate("VideoSettingsUi", u"Sample Rate:", None))
+ self.label_3.setText(QCoreApplication.translate("VideoSettingsUi", u"Quality:", None))
+ self.label_4.setText(QCoreApplication.translate("VideoSettingsUi", u"File Format:", None))
+ self.groupBox_2.setTitle(QCoreApplication.translate("VideoSettingsUi", u"Video", None))
+ self.label.setText(QCoreApplication.translate("VideoSettingsUi", u"Frames per second:", None))
+ self.label_8.setText(QCoreApplication.translate("VideoSettingsUi", u"Camera Format:", None))
+ self.label_6.setText(QCoreApplication.translate("VideoSettingsUi", u"Video Codec:", None))
+ # retranslateUi
+
diff --git a/examples/multimedia/camera/videosettings.py b/examples/multimedia/camera/videosettings.py
new file mode 100644
index 000000000..a88cb39ed
--- /dev/null
+++ b/examples/multimedia/camera/videosettings.py
@@ -0,0 +1,167 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import os
+from PySide6.QtMultimedia import (QCameraFormat, QMediaFormat, QMediaRecorder,
+ QVideoFrameFormat)
+from PySide6.QtWidgets import QDialog
+
+is_android = os.environ.get('ANDROID_ARGUMENT')
+
+if is_android:
+ from ui_videosettings_mobile import Ui_VideoSettingsUi
+else:
+ from ui_videosettings import Ui_VideoSettingsUi
+
+
+def box_value(box):
+ idx = box.currentIndex()
+ return None if idx == -1 else box.itemData(idx)
+
+
+def select_combo_box_item(box, value):
+ idx = box.findData(value)
+ if idx != -1:
+ box.setCurrentIndex(idx)
+
+
+def to_formatted_string(cameraFormat):
+ pf = cameraFormat.pixelFormat()
+ format_name = QVideoFrameFormat.pixelFormatToString(pf)
+ w = cameraFormat.resolution().width()
+ h = cameraFormat.resolution().height()
+ min_rate = int(cameraFormat.minFrameRate())
+ max_rate = int(cameraFormat.maxFrameRate())
+ return f"{format_name} {w}x{h} {min_rate}-{max_rate}FPS"
+
+
+class VideoSettings(QDialog):
+
+ def __init__(self, mediaRecorder, parent=None):
+ super().__init__(parent)
+
+ self._media_recorder = mediaRecorder
+
+ self.m_updatingFormats = False
+
+ self._ui = Ui_VideoSettingsUi()
+ self._ui.setupUi(self)
+
+ # sample rate:
+ audio_device = self._media_recorder.captureSession().audioInput().device()
+ self._ui.audioSampleRateBox.setRange(audio_device.minimumSampleRate(),
+ audio_device.maximumSampleRate())
+
+ # camera format
+ self._ui.videoFormatBox.addItem("Default camera format",
+ QCameraFormat())
+
+ camera = self._media_recorder.captureSession().camera()
+ video_formats = camera.cameraDevice().videoFormats()
+
+ for format in video_formats:
+ self._ui.videoFormatBox.addItem(to_formatted_string(format), format)
+
+ self._ui.videoFormatBox.currentIndexChanged.connect(self.video_format_changed)
+ self.set_fps_range(camera.cameraFormat())
+
+ self._ui.fpsSlider.valueChanged.connect(self._ui.fpsSpinBox.setValue)
+ self._ui.fpsSpinBox.valueChanged.connect(self._ui.fpsSlider.setValue)
+
+ self.update_formats_and_codecs()
+ self._ui.audioCodecBox.currentIndexChanged.connect(self.update_formats_and_codecs)
+ self._ui.videoCodecBox.currentIndexChanged.connect(self.update_formats_and_codecs)
+ self._ui.containerFormatBox.currentIndexChanged.connect(self.update_formats_and_codecs)
+
+ self._ui.qualitySlider.setRange(0, QMediaRecorder.VeryHighQuality.value)
+
+ format = self._media_recorder.mediaFormat()
+ select_combo_box_item(self._ui.containerFormatBox, format.fileFormat())
+ select_combo_box_item(self._ui.audioCodecBox, format.audioCodec())
+ select_combo_box_item(self._ui.videoCodecBox, format.videoCodec())
+
+ self._ui.qualitySlider.setValue(self._media_recorder.quality().value)
+ self._ui.audioSampleRateBox.setValue(self._media_recorder.audioSampleRate())
+ select_combo_box_item(self._ui.videoFormatBox, camera.cameraFormat())
+
+ self._ui.fpsSlider.setValue(self._media_recorder.videoFrameRate())
+ self._ui.fpsSpinBox.setValue(self._media_recorder.videoFrameRate())
+
+ def apply_settings(self):
+ format = QMediaFormat()
+ format.setFileFormat(box_value(self._ui.containerFormatBox))
+ format.setAudioCodec(box_value(self._ui.audioCodecBox))
+ format.setVideoCodec(box_value(self._ui.videoCodecBox))
+
+ self._media_recorder.setMediaFormat(format)
+ q = self._ui.qualitySlider.value()
+ self._media_recorder.setQuality(QMediaRecorder.Quality(q))
+ self._media_recorder.setAudioSampleRate(self._ui.audioSampleRateBox.value())
+
+ camera_format = box_value(self._ui.videoFormatBox)
+ self._media_recorder.setVideoResolution(camera_format.resolution())
+ self._media_recorder.setVideoFrameRate(self._ui.fpsSlider.value())
+
+ camera = self._media_recorder.captureSession().camera()
+ camera.setCameraFormat(camera_format)
+
+ def update_formats_and_codecs(self):
+ if self.m_updatingFormats:
+ return
+ self.m_updatingFormats = True
+
+ format = QMediaFormat()
+ if self._ui.containerFormatBox.count():
+ format.setFileFormat(box_value(self._ui.containerFormatBox))
+ if self._ui.audioCodecBox.count():
+ format.setAudioCodec(box_value(self._ui.audioCodecBox))
+ if self._ui.videoCodecBox.count():
+ format.setVideoCodec(box_value(self._ui.videoCodecBox))
+
+ current_index = 0
+ self._ui.audioCodecBox.clear()
+ self._ui.audioCodecBox.addItem("Default audio codec",
+ QMediaFormat.AudioCodec.Unspecified)
+ for codec in format.supportedAudioCodecs(QMediaFormat.Encode):
+ if codec == format.audioCodec():
+ current_index = self._ui.audioCodecBox.count()
+ desc = QMediaFormat.audioCodecDescription(codec)
+ self._ui.audioCodecBox.addItem(desc, codec)
+
+ self._ui.audioCodecBox.setCurrentIndex(current_index)
+
+ current_index = 0
+ self._ui.videoCodecBox.clear()
+ self._ui.videoCodecBox.addItem("Default video codec",
+ QMediaFormat.VideoCodec.Unspecified)
+ for codec in format.supportedVideoCodecs(QMediaFormat.Encode):
+ if codec == format.videoCodec():
+ current_index = self._ui.videoCodecBox.count()
+ desc = QMediaFormat.videoCodecDescription(codec)
+ self._ui.videoCodecBox.addItem(desc, codec)
+
+ self._ui.videoCodecBox.setCurrentIndex(current_index)
+
+ current_index = 0
+ self._ui.containerFormatBox.clear()
+ self._ui.containerFormatBox.addItem("Default file format",
+ QMediaFormat.UnspecifiedFormat)
+ for container in format.supportedFileFormats(QMediaFormat.Encode):
+ if container == format.fileFormat():
+ current_index = self._ui.containerFormatBox.count()
+ desc = QMediaFormat.fileFormatDescription(container)
+ self._ui.containerFormatBox.addItem(desc, container)
+
+ self._ui.containerFormatBox.setCurrentIndex(current_index)
+
+ self.m_updatingFormats = False
+
+ def video_format_changed(self):
+ camera_format = box_value(self._ui.videoFormatBox)
+ self.set_fps_range(camera_format)
+
+ def set_fps_range(self, format):
+ min_fr = format.minFrameRate()
+ max_fr = format.maxFrameRate()
+ self._ui.fpsSlider.setRange(min_fr, max_fr)
+ self._ui.fpsSpinBox.setRange(min_fr, max_fr)
diff --git a/examples/multimedia/camera/videosettings.ui b/examples/multimedia/camera/videosettings.ui
new file mode 100644
index 000000000..3c1f71f11
--- /dev/null
+++ b/examples/multimedia/camera/videosettings.ui
@@ -0,0 +1,213 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>VideoSettingsUi</class>
+ <widget class="QDialog" name="VideoSettingsUi">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>686</width>
+ <height>499</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Video Settings</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout_3">
+ <item row="4" column="1">
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="QGroupBox" name="groupBox_2">
+ <property name="title">
+ <string>Video</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout_2">
+ <item row="0" column="0" colspan="2">
+ <widget class="QLabel" name="label_8">
+ <property name="text">
+ <string>Camera Format</string>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="0" colspan="2">
+ <widget class="QComboBox" name="videoCodecBox"/>
+ </item>
+ <item row="2" column="0" colspan="2">
+ <widget class="QLabel" name="label_9">
+ <property name="text">
+ <string>Framerate:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0" colspan="2">
+ <widget class="QLabel" name="label_6">
+ <property name="text">
+ <string>Video Codec:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" colspan="2">
+ <widget class="QComboBox" name="videoFormatBox"/>
+ </item>
+ <item row="3" column="0" colspan="2">
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QSpinBox" name="fpsSpinBox"/>
+ </item>
+ <item>
+ <widget class="QSlider" name="fpsSlider">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QWidget" name="widget" native="true">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_3">
+ <property name="leftMargin">
+ <number>0</number>
+ </property>
+ <property name="topMargin">
+ <number>0</number>
+ </property>
+ <property name="rightMargin">
+ <number>0</number>
+ </property>
+ <property name="bottomMargin">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QGroupBox" name="groupBox_3">
+ <property name="title">
+ <string>Audio</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <widget class="QLabel" name="label_2">
+ <property name="text">
+ <string>Audio Codec:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QComboBox" name="audioCodecBox"/>
+ </item>
+ <item>
+ <widget class="QLabel" name="label_5">
+ <property name="text">
+ <string>Sample Rate:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="audioSampleRateBox"/>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox">
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QLabel" name="label_3">
+ <property name="text">
+ <string>Quality:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSlider" name="qualitySlider">
+ <property name="maximum">
+ <number>4</number>
+ </property>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="label_4">
+ <property name="text">
+ <string>File Format:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QComboBox" name="containerFormatBox"/>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>VideoSettingsUi</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>322</x>
+ <y>272</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>44</x>
+ <y>230</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>VideoSettingsUi</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>405</x>
+ <y>262</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>364</x>
+ <y>227</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/examples/multimedia/camera/videosettings_mobile.ui b/examples/multimedia/camera/videosettings_mobile.ui
new file mode 100644
index 000000000..6584f07f9
--- /dev/null
+++ b/examples/multimedia/camera/videosettings_mobile.ui
@@ -0,0 +1,207 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>VideoSettingsUi</class>
+ <widget class="QDialog" name="VideoSettingsUi">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>329</width>
+ <height>591</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Video Settings</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout_3">
+ <item row="2" column="0">
+ <widget class="QWidget" name="widget" native="true">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_3">
+ <property name="leftMargin">
+ <number>0</number>
+ </property>
+ <property name="topMargin">
+ <number>0</number>
+ </property>
+ <property name="rightMargin">
+ <number>0</number>
+ </property>
+ <property name="bottomMargin">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QGroupBox" name="groupBox_3">
+ <property name="title">
+ <string>Audio</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <widget class="QLabel" name="label_2">
+ <property name="text">
+ <string>Audio Codec:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QComboBox" name="audioCodecBox"/>
+ </item>
+ <item>
+ <widget class="QLabel" name="label_5">
+ <property name="text">
+ <string>Sample Rate:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="audioSampleRateBox"/>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox">
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QLabel" name="label_3">
+ <property name="text">
+ <string>Quality:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSlider" name="qualitySlider">
+ <property name="maximum">
+ <number>4</number>
+ </property>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="label_4">
+ <property name="text">
+ <string>File Format:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QComboBox" name="containerFormatBox"/>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <widget class="QGroupBox" name="groupBox_2">
+ <property name="title">
+ <string>Video</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout_2">
+ <item row="2" column="0">
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Frames per second:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="0" colspan="2">
+ <widget class="QComboBox" name="videoCodecBox"/>
+ </item>
+ <item row="0" column="0" colspan="2">
+ <widget class="QLabel" name="label_8">
+ <property name="text">
+ <string>Camera Format:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="0" colspan="2">
+ <widget class="QLabel" name="label_6">
+ <property name="text">
+ <string>Video Codec:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" colspan="2">
+ <widget class="QComboBox" name="videoFormatBox"/>
+ </item>
+ <item row="7" column="0">
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QSpinBox" name="fpsSpinBox">
+ <property name="minimum">
+ <number>8</number>
+ </property>
+ <property name="maximum">
+ <number>30</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSlider" name="fpsSlider">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>VideoSettingsUi</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>322</x>
+ <y>272</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>44</x>
+ <y>230</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>VideoSettingsUi</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>405</x>
+ <y>262</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>364</x>
+ <y>227</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/examples/multimedia/player/player.py b/examples/multimedia/player/player.py
index 3068dab97..d28f2887e 100644
--- a/examples/multimedia/player/player.py
+++ b/examples/multimedia/player/player.py
@@ -1,52 +1,14 @@
-
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 Multimedia player example"""
import sys
from PySide6.QtCore import QStandardPaths, Qt, Slot
-from PySide6.QtGui import QAction, QIcon, QKeySequence, QScreen
+from PySide6.QtGui import QAction, QIcon, QKeySequence
from PySide6.QtWidgets import (QApplication, QDialog, QFileDialog,
- QMainWindow, QSlider, QStyle, QToolBar)
-from PySide6.QtMultimedia import (QAudio, QAudioOutput, QMediaFormat,
+ QMainWindow, QSlider, QStyle, QToolBar)
+from PySide6.QtMultimedia import (QAudioOutput, QMediaFormat,
QMediaPlayer)
from PySide6.QtMultimediaWidgets import QVideoWidget
@@ -82,43 +44,43 @@ class MainWindow(QMainWindow):
self.addToolBar(tool_bar)
file_menu = self.menuBar().addMenu("&File")
- icon = QIcon.fromTheme("document-open")
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.DocumentOpen)
open_action = QAction(icon, "&Open...", self,
shortcut=QKeySequence.Open, triggered=self.open)
file_menu.addAction(open_action)
tool_bar.addAction(open_action)
- icon = QIcon.fromTheme("application-exit")
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.ApplicationExit)
exit_action = QAction(icon, "E&xit", self,
shortcut="Ctrl+Q", triggered=self.close)
file_menu.addAction(exit_action)
play_menu = self.menuBar().addMenu("&Play")
style = self.style()
- icon = QIcon.fromTheme("media-playback-start.png",
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.MediaPlaybackStart,
style.standardIcon(QStyle.SP_MediaPlay))
self._play_action = tool_bar.addAction(icon, "Play")
self._play_action.triggered.connect(self._player.play)
play_menu.addAction(self._play_action)
- icon = QIcon.fromTheme("media-skip-backward-symbolic.svg",
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.MediaSkipBackward,
style.standardIcon(QStyle.SP_MediaSkipBackward))
self._previous_action = tool_bar.addAction(icon, "Previous")
self._previous_action.triggered.connect(self.previous_clicked)
play_menu.addAction(self._previous_action)
- icon = QIcon.fromTheme("media-playback-pause.png",
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.MediaPlaybackPause,
style.standardIcon(QStyle.SP_MediaPause))
self._pause_action = tool_bar.addAction(icon, "Pause")
self._pause_action.triggered.connect(self._player.pause)
play_menu.addAction(self._pause_action)
- icon = QIcon.fromTheme("media-skip-forward-symbolic.svg",
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.MediaSkipForward,
style.standardIcon(QStyle.SP_MediaSkipForward))
self._next_action = tool_bar.addAction(icon, "Next")
self._next_action.triggered.connect(self.next_clicked)
play_menu.addAction(self._next_action)
- icon = QIcon.fromTheme("media-playback-stop.png",
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.MediaPlaybackStop,
style.standardIcon(QStyle.SP_MediaStop))
self._stop_action = tool_bar.addAction(icon, "Stop")
self._stop_action.triggered.connect(self._ensure_stopped)
@@ -137,8 +99,9 @@ class MainWindow(QMainWindow):
self._volume_slider.valueChanged.connect(self._audio_output.setVolume)
tool_bar.addWidget(self._volume_slider)
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.HelpAbout)
about_menu = self.menuBar().addMenu("&About")
- about_qt_act = QAction("About &Qt", self, triggered=qApp.aboutQt)
+ about_qt_act = QAction(icon, "About &Qt", self, triggered=qApp.aboutQt) # noqa: F821
about_menu.addAction(about_qt_act)
self._video_widget = QVideoWidget()
@@ -203,10 +166,10 @@ class MainWindow(QMainWindow):
self._playlist_index += 1
self._player.setSource(self._playlist[self._playlist_index])
+ @Slot("QMediaPlayer::PlaybackState")
def update_buttons(self, state):
media_count = len(self._playlist)
- self._play_action.setEnabled(media_count > 0
- and state != QMediaPlayer.PlayingState)
+ self._play_action.setEnabled(media_count > 0 and state != QMediaPlayer.PlayingState)
self._pause_action.setEnabled(state == QMediaPlayer.PlayingState)
self._stop_action.setEnabled(state != QMediaPlayer.StoppedState)
self._previous_action.setEnabled(self._player.position() > 0)
@@ -215,7 +178,7 @@ class MainWindow(QMainWindow):
def show_status_message(self, message):
self.statusBar().showMessage(message, 5000)
- @Slot(QMediaPlayer.Error, str)
+ @Slot("QMediaPlayer::Error", str)
def _player_error(self, error, error_string):
print(error_string, file=sys.stderr)
self.show_status_message(error_string)
diff --git a/examples/multimedia/screencapture/doc/screencapture.rst b/examples/multimedia/screencapture/doc/screencapture.rst
new file mode 100644
index 000000000..116d7773b
--- /dev/null
+++ b/examples/multimedia/screencapture/doc/screencapture.rst
@@ -0,0 +1,42 @@
+Screen Capture Example
+======================
+
+Screen Capture demonstrates how to capture a screen or window using
+``QScreenCapture`` and ``QWindowCapture``. The example shows a list of screens
+and windows and displays a live preview of the selected item using a
+``QMediaCaptureSession`` and a ``QVideoWidget``. Capturing can be started and
+stopped with a ``QPushButton``.
+
+Application Structure
++++++++++++++++++++++
+
+The example consists of three custom classes. The UI and all screen capture
+functionality is implemented in the class ``ScreenCapturePreview``. The classes
+``ScreenListModel`` and ``WindowListModel`` only serve as models behind the two
+``QListView`` widgets. The main function creates a ``ScreenCapturePreview``
+object, which in turn creates instances of ``QScreenCapture`` and
+``QWindowCapture``, and a ``QMediaCaptureSession`` and ``QVideoWidget``, in
+addition to all the UI widgets.
+
+The screen and window models are populated with the return values of
+``QGuiApplication.screens()`` and ``QWindowCapture.capturableWindows()``,
+respectively.
+
+When a list item is selected, it is connected to the ``QScreenCapture`` object
+with ``QScreenCapture.setScreen()``, or to the ``QWindowCapture`` object with
+``QWindowCapture.setWindow().`` The capture object is connected to the
+``QMediaCaptureSession`` object with
+``QMediaCaptureSession.setScreenCapture()`` and
+``QMediaCaptureSession.setWindowCapture()``, respectively. The capture session
+in turn is connected to the ``QVideoWidget`` object with
+``QMediaCaptureSession.setVideoOutput()``. Thus, the capture output is
+previewed in the video widget on the right hand side of the UI.
+
+The start/stop button calls ``QScreenCapture.start()`` and ``QScreenCapture.stop()``,
+or ``QWindowCapture.start()`` and ``QWindowCapture.stop()``.
+
+A QMessageBox pops up if an ``errorOccurred`` signal is emitted.
+
+.. image. screencapture.webp
+ :width: 600
+ :alt: screen capture example
diff --git a/examples/multimedia/screencapture/doc/screencapture.webp b/examples/multimedia/screencapture/doc/screencapture.webp
new file mode 100644
index 000000000..58ad36c7f
--- /dev/null
+++ b/examples/multimedia/screencapture/doc/screencapture.webp
Binary files differ
diff --git a/examples/multimedia/screencapture/main.py b/examples/multimedia/screencapture/main.py
new file mode 100644
index 000000000..f445bac03
--- /dev/null
+++ b/examples/multimedia/screencapture/main.py
@@ -0,0 +1,20 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the QtMultiMedia Screen Capture Example from Qt v6.x"""
+
+import sys
+
+from PySide6.QtCore import QCoreApplication
+from PySide6.QtWidgets import QApplication
+
+from screencapturepreview import ScreenCapturePreview
+
+
+if __name__ == "__main__":
+ app = QApplication(sys.argv)
+ QCoreApplication.setApplicationName("screencapture")
+ QCoreApplication.setOrganizationName("QtProject")
+ screen_capture_preview = ScreenCapturePreview()
+ screen_capture_preview.show()
+ sys.exit(app.exec())
diff --git a/examples/multimedia/screencapture/screencapture.pyproject b/examples/multimedia/screencapture/screencapture.pyproject
new file mode 100644
index 000000000..dfec6c901
--- /dev/null
+++ b/examples/multimedia/screencapture/screencapture.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["main.py", "screencapturepreview.py", "screenlistmodel.py", "windowlistmodel.py"]
+}
diff --git a/examples/multimedia/screencapture/screencapturepreview.py b/examples/multimedia/screencapture/screencapturepreview.py
new file mode 100644
index 000000000..c7e0c596a
--- /dev/null
+++ b/examples/multimedia/screencapture/screencapturepreview.py
@@ -0,0 +1,162 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from enum import Enum, auto
+
+from PySide6.QtMultimediaWidgets import QVideoWidget
+from PySide6.QtMultimedia import (QCapturableWindow, QMediaCaptureSession,
+ QScreenCapture, QWindowCapture)
+from PySide6.QtWidgets import (QGridLayout, QLabel, QListView,
+ QMessageBox, QPushButton, QWidget)
+from PySide6.QtGui import QAction, QGuiApplication
+from PySide6.QtCore import QItemSelection, Qt, Slot
+
+from screenlistmodel import ScreenListModel
+from windowlistmodel import WindowListModel
+
+
+class SourceType(Enum):
+ Screen = auto()
+ Window = auto()
+
+
+class ScreenCapturePreview(QWidget):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+ self._source = SourceType.Screen
+
+ self._screen_capture = QScreenCapture(self)
+ self._media_capture_session = QMediaCaptureSession(self)
+ self._video_widget = QVideoWidget(self)
+ self._screen_list_view = QListView(self)
+ self._screen_label = QLabel("Select screen to capture:", self)
+ self._video_widget_label = QLabel("Capture output:", self)
+ self._start_stop_button = QPushButton(self)
+ self._status_label = QLabel(self)
+
+ self._screen_list_model = ScreenListModel(self)
+
+ # Setup QScreenCapture with initial source:
+ self.setScreen(QGuiApplication.primaryScreen())
+ self._screen_capture.start()
+ self._media_capture_session.setScreenCapture(self._screen_capture)
+ self._media_capture_session.setVideoOutput(self._video_widget)
+
+ self._screen_list_view.setModel(self._screen_list_model)
+
+ self._window_list_view = QListView(self)
+ self._window_capture = QWindowCapture(self)
+ self._media_capture_session.setWindowCapture(self._window_capture)
+ self._window_label = QLabel("Select window to capture:", self)
+
+ self._window_list_model = WindowListModel(self)
+ self._window_list_view.setModel(self._window_list_model)
+ update_action = QAction("Update windows List", self)
+ update_action.triggered.connect(self._window_list_model.populate)
+ self._window_list_view.addAction(update_action)
+ self._window_list_view.setContextMenuPolicy(Qt.ActionsContextMenu)
+
+ grid_layout = QGridLayout(self)
+ grid_layout.addWidget(self._screen_label, 0, 0)
+ grid_layout.addWidget(self._screen_list_view, 1, 0)
+ grid_layout.addWidget(self._start_stop_button, 4, 0)
+ grid_layout.addWidget(self._video_widget_label, 0, 1)
+ grid_layout.addWidget(self._video_widget, 1, 1, 4, 1)
+ grid_layout.addWidget(self._window_label, 2, 0)
+ grid_layout.addWidget(self._window_list_view, 3, 0)
+ grid_layout.addWidget(self._status_label, 5, 0, 1, 2)
+
+ grid_layout.setColumnStretch(1, 1)
+ grid_layout.setRowStretch(1, 1)
+ grid_layout.setColumnMinimumWidth(0, 400)
+ grid_layout.setColumnMinimumWidth(1, 400)
+ grid_layout.setRowMinimumHeight(3, 1)
+
+ selection_model = self._screen_list_view.selectionModel()
+ selection_model.selectionChanged.connect(self.on_current_screen_selection_changed)
+ selection_model = self._window_list_view.selectionModel()
+ selection_model.selectionChanged.connect(self.on_current_window_selection_changed)
+
+ self._start_stop_button.clicked.connect(self.on_start_stop_button_clicked)
+ self._screen_capture.errorOccurred.connect(self.on_screen_capture_error_occured,
+ Qt.QueuedConnection)
+ self._window_capture.errorOccurred.connect(self.on_window_capture_error_occured,
+ Qt.QueuedConnection)
+ self.update_active(SourceType.Screen, True)
+
+ @Slot(QItemSelection)
+ def on_current_screen_selection_changed(self, selection):
+ self.clear_error_string()
+ indexes = selection.indexes()
+ if indexes:
+ self._screen_capture.setScreen(self._screen_list_model.screen(indexes[0]))
+ self.update_active(SourceType.Screen, self.is_active())
+ self._window_list_view.clearSelection()
+ else:
+ self._screen_capture.setScreen(None)
+
+ @Slot(QItemSelection)
+ def on_current_window_selection_changed(self, selection):
+ self.clear_error_string()
+ indexes = selection.indexes()
+ if indexes:
+ window = self._window_list_model.window(indexes[0])
+ if not window.isValid():
+ m = "The window is no longer valid. Update the list of windows?"
+ answer = QMessageBox.question(self, "Invalid window", m)
+ if answer == QMessageBox.Yes:
+ self.update_active(SourceType.Window, False)
+ self._window_list_view.clearSelection()
+ self._window_list_model.populate()
+ return
+ self._window_capture.setWindow(window)
+ self.update_active(SourceType.Window, self.is_active())
+ self._screen_list_view.clearSelection()
+ else:
+ self._window_capture.setWindow(QCapturableWindow())
+
+ @Slot(QWindowCapture.Error, str)
+ def on_window_capture_error_occured(self, error, error_string):
+ self.set_error_string("QWindowCapture: Error occurred " + error_string)
+
+ @Slot(QScreenCapture.Error, str)
+ def on_screen_capture_error_occured(self, error, error_string):
+ self.set_error_string("QScreenCapture: Error occurred " + error_string)
+
+ def set_error_string(self, t):
+ self._status_label.setStyleSheet("background-color: rgb(255, 0, 0);")
+ self._status_label.setText(t)
+
+ def clear_error_string(self):
+ self._status_label.clear()
+ self._status_label.setStyleSheet("")
+
+ @Slot()
+ def on_start_stop_button_clicked(self):
+ self.clear_error_string()
+ self.update_active(self._source_type, not self.is_active())
+
+ def update_start_stop_button_text(self):
+ active = self.is_active()
+ if self._source_type == SourceType.Window:
+ m = "Stop window capture" if active else "Start window capture"
+ self._start_stop_button.setText(m)
+ elif self._source_type == SourceType.Screen:
+ m = "Stop screen capture" if active else "Start screen capture"
+ self._start_stop_button.setText(m)
+
+ def update_active(self, source_type, active):
+ self._source_type = source_type
+ self._screen_capture.setActive(active and source_type == SourceType.Screen)
+ self._window_capture.setActive(active and source_type == SourceType.Window)
+
+ self.update_start_stop_button_text()
+
+ def is_active(self):
+ if self._source_type == SourceType.Window:
+ return self._window_capture.isActive()
+ if self._source_type == SourceType.Screen:
+ return self._screen_capture.isActive()
+ return False
diff --git a/examples/multimedia/screencapture/screenlistmodel.py b/examples/multimedia/screencapture/screenlistmodel.py
new file mode 100644
index 000000000..72bb306e3
--- /dev/null
+++ b/examples/multimedia/screencapture/screenlistmodel.py
@@ -0,0 +1,38 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtGui import QGuiApplication
+from PySide6.QtCore import QAbstractListModel, Qt, Slot
+
+
+class ScreenListModel(QAbstractListModel):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ app = qApp # noqa: F821
+ app.screenAdded.connect(self.screens_changed)
+ app.screenRemoved.connect(self.screens_changed)
+ app.primaryScreenChanged.connect(self.screens_changed)
+
+ def rowCount(self, index):
+ return len(QGuiApplication.screens())
+
+ def data(self, index, role):
+ screen_list = QGuiApplication.screens()
+
+ if role == Qt.DisplayRole:
+ screen = screen_list[index.row()]
+ w = screen.size().width()
+ h = screen.size().height()
+ dpi = screen.logicalDotsPerInch()
+ return f'"{screen.name()}" {w}x{h}, {dpi}DPI'
+
+ return None
+
+ def screen(self, index):
+ return QGuiApplication.screens()[index.row()]
+
+ @Slot()
+ def screens_changed(self):
+ self.beginResetModel()
+ self.endResetModel()
diff --git a/examples/multimedia/screencapture/windowlistmodel.py b/examples/multimedia/screencapture/windowlistmodel.py
new file mode 100644
index 000000000..079040ec2
--- /dev/null
+++ b/examples/multimedia/screencapture/windowlistmodel.py
@@ -0,0 +1,30 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QAbstractListModel, Qt, Slot
+from PySide6.QtMultimedia import QWindowCapture
+
+
+class WindowListModel(QAbstractListModel):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._window_list = QWindowCapture.capturableWindows()
+
+ def rowCount(self, QModelIndex):
+ return len(self._window_list)
+
+ def data(self, index, role):
+ if role == Qt.DisplayRole:
+ window = self._window_list[index.row()]
+ return window.description()
+ return None
+
+ def window(self, index):
+ return self._window_list[index.row()]
+
+ @Slot()
+ def populate(self):
+ self.beginResetModel()
+ self._window_list = QWindowCapture.capturableWindows()
+ self.endResetModel()
diff --git a/examples/network/blockingfortuneclient/blockingfortuneclient.py b/examples/network/blockingfortuneclient/blockingfortuneclient.py
index 50f4c1662..d0dd7e0ad 100644
--- a/examples/network/blockingfortuneclient/blockingfortuneclient.py
+++ b/examples/network/blockingfortuneclient/blockingfortuneclient.py
@@ -1,54 +1,17 @@
-
-#############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the network/blockingfortunclient example from Qt v5.x, originating from PyQt"""
from PySide6.QtCore import (Signal, QDataStream, QMutex, QMutexLocker,
- QThread, QWaitCondition)
+ QThread, QWaitCondition)
from PySide6.QtGui import QIntValidator
from PySide6.QtWidgets import (QApplication, QDialogButtonBox, QGridLayout,
- QLabel, QLineEdit, QMessageBox, QPushButton, QWidget)
+ QLabel, QLineEdit, QMessageBox, QPushButton,
+ QWidget)
from PySide6.QtNetwork import (QAbstractSocket, QHostAddress, QNetworkInterface,
- QTcpSocket)
+ QTcpSocket)
class FortuneThread(QThread):
@@ -73,13 +36,13 @@ class FortuneThread(QThread):
self.wait()
def request_new_fortune(self, hostname, port):
- locker = QMutexLocker(self.mutex)
- self._host_name = hostname
- self.port = port
- if not self.isRunning():
- self.start()
- else:
- self.cond.wakeOne()
+ with QMutexLocker(self.mutex):
+ self._host_name = hostname
+ self.port = port
+ if not self.isRunning():
+ self.start()
+ else:
+ self.cond.wakeOne()
def run(self):
self.mutex.lock()
@@ -147,7 +110,7 @@ class BlockingClient(QWidget):
port_label.setBuddy(self._port_line_edit)
self._status_label = QLabel(
- "This example requires that you run the Fortune Server example as well.")
+ "This example requires that you run the Fortune Server example as well.")
self._status_label.setWordWrap(True)
self._get_fortune_button = QPushButton("Get Fortune")
@@ -182,7 +145,7 @@ class BlockingClient(QWidget):
def request_new_fortune(self):
self._get_fortune_button.setEnabled(False)
self.thread.request_new_fortune(self._host_line_edit.text(),
- int(self._port_line_edit.text()))
+ int(self._port_line_edit.text()))
def show_fortune(self, nextFortune):
if nextFortune == self._current_fortune:
@@ -196,22 +159,22 @@ class BlockingClient(QWidget):
def display_error(self, socketError, message):
if socketError == QAbstractSocket.HostNotFoundError:
QMessageBox.information(self, "Blocking Fortune Client",
- "The host was not found. Please check the host and port "
- "settings.")
+ "The host was not found. Please check the host and port "
+ "settings.")
elif socketError == QAbstractSocket.ConnectionRefusedError:
QMessageBox.information(self, "Blocking Fortune Client",
- "The connection was refused by the peer. Make sure the "
- "fortune server is running, and check that the host name "
- "and port settings are correct.")
+ "The connection was refused by the peer. Make sure the "
+ "fortune server is running, and check that the host name "
+ "and port settings are correct.")
else:
QMessageBox.information(self, "Blocking Fortune Client",
- f"The following error occurred: {message}.")
+ f"The following error occurred: {message}.")
self._get_fortune_button.setEnabled(True)
def enable_get_fortune_button(self):
- self._get_fortune_button.setEnabled(self._host_line_edit.text() != '' and
- self._port_line_edit.text() != '')
+ self._get_fortune_button.setEnabled(self._host_line_edit.text() != ''
+ and self._port_line_edit.text() != '')
if __name__ == '__main__':
diff --git a/examples/network/downloader/downloader.py b/examples/network/downloader/downloader.py
index a63c49be8..fba0cb980 100644
--- a/examples/network/downloader/downloader.py
+++ b/examples/network/downloader/downloader.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from PySide6.QtWidgets import (
QWidget,
@@ -72,7 +35,8 @@ class DownloaderWidget(QWidget):
self.link_box.setPlaceholderText("Download Link ...")
self._open_folder_action = self.dest_box.addAction(
- qApp.style().standardIcon(QStyle.SP_DirOpenIcon), QLineEdit.TrailingPosition
+ qApp.style().standardIcon(QStyle.SP_DirOpenIcon), # noqa: F821
+ QLineEdit.TrailingPosition
)
self._open_folder_action.triggered.connect(self.on_open_folder)
diff --git a/examples/network/fortuneclient/fortuneclient.py b/examples/network/fortuneclient/fortuneclient.py
index a94b62ec8..e88e5e35b 100644
--- a/examples/network/fortuneclient/fortuneclient.py
+++ b/examples/network/fortuneclient/fortuneclient.py
@@ -1,55 +1,16 @@
-
-#############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the network/fortuneclient example from Qt v5.x"""
import sys
-from PySide6.QtCore import QDataStream, QTimer, Qt
+from PySide6.QtCore import QDataStream, QTimer
from PySide6.QtGui import QIntValidator
from PySide6.QtNetwork import QAbstractSocket, QTcpSocket
from PySide6.QtWidgets import (QApplication, QDialog, QDialogButtonBox, QGridLayout,
- QLabel, QLineEdit, QMessageBox, QPushButton,
- QVBoxLayout, QWidget)
+ QLabel, QLineEdit, QMessageBox, QPushButton)
class Client(QDialog):
@@ -70,7 +31,7 @@ class Client(QDialog):
port_label.setBuddy(self._port_line_edit)
self._status_label = QLabel("This examples requires that you run "
- "the Fortune Server example as well.")
+ "the Fortune Server example as well.")
self._get_fortune_button = QPushButton("Get Fortune")
self._get_fortune_button.setDefault(True)
@@ -79,8 +40,7 @@ class Client(QDialog):
quit_button = QPushButton("Quit")
button_box = QDialogButtonBox()
- button_box.addButton(self._get_fortune_button,
- QDialogButtonBox.ActionRole)
+ button_box.addButton(self._get_fortune_button, QDialogButtonBox.ActionRole)
button_box.addButton(quit_button, QDialogButtonBox.RejectRole)
self._tcp_socket = QTcpSocket(self)
@@ -108,7 +68,7 @@ class Client(QDialog):
self._block_size = 0
self._tcp_socket.abort()
self._tcp_socket.connectToHost(self._host_line_edit.text(),
- int(self._port_line_edit.text()))
+ int(self._port_line_edit.text()))
def read_fortune(self):
instr = QDataStream(self._tcp_socket)
@@ -138,23 +98,23 @@ class Client(QDialog):
pass
elif socketError == QAbstractSocket.HostNotFoundError:
QMessageBox.information(self, "Fortune Client",
- "The host was not found. Please check the host name and "
- "port settings.")
+ "The host was not found. Please check the host name and "
+ "port settings.")
elif socketError == QAbstractSocket.ConnectionRefusedError:
QMessageBox.information(self, "Fortune Client",
- "The connection was refused by the peer. Make sure the "
- "fortune server is running, and check that the host name "
- "and port settings are correct.")
+ "The connection was refused by the peer. Make sure the "
+ "fortune server is running, and check that the host name "
+ "and port settings are correct.")
else:
reason = self._tcp_socket.errorString()
QMessageBox.information(self, "Fortune Client",
- f"The following error occurred: {reason}.")
+ f"The following error occurred: {reason}.")
self._get_fortune_button.setEnabled(True)
def enable_get_fortune_button(self):
- self._get_fortune_button.setEnabled(bool(self._host_line_edit.text() and
- self._port_line_edit.text()))
+ self._get_fortune_button.setEnabled(bool(self._host_line_edit.text()
+ and self._port_line_edit.text()))
if __name__ == '__main__':
diff --git a/examples/network/fortuneserver/fortuneserver.py b/examples/network/fortuneserver/fortuneserver.py
index d315dcf23..a94a49f42 100644
--- a/examples/network/fortuneserver/fortuneserver.py
+++ b/examples/network/fortuneserver/fortuneserver.py
@@ -1,44 +1,6 @@
-
-#############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the network/fortuneserver example from Qt v5.x"""
@@ -49,7 +11,7 @@ from PySide6.QtCore import QByteArray, QDataStream, QIODevice, Qt
from PySide6.QtNetwork import QTcpServer
from PySide6.QtWidgets import (QApplication, QDialog, QHBoxLayout,
QLabel, QMessageBox, QPushButton,
- QVBoxLayout, QWidget)
+ QVBoxLayout)
class Server(QDialog):
@@ -65,21 +27,21 @@ class Server(QDialog):
if not self._tcp_server.listen():
reason = self._tcp_server.errorString()
QMessageBox.critical(self, "Fortune Server",
- f"Unable to start the server: {reason}.")
+ f"Unable to start the server: {reason}.")
self.close()
return
port = self._tcp_server.serverPort()
status_label.setText(f"The server is running on port {port}.\nRun the "
- "Fortune Client example now.")
+ "Fortune Client example now.")
self.fortunes = (
- "You've been leading a dog's life. Stay off the furniture.",
- "You've got to think about tomorrow.",
- "You will be surprised by a loud noise.",
- "You will feel hungry again in another hour.",
- "You might have mail.",
- "You cannot kill time without injuring eternity.",
- "Computers are not intelligent. They only think they are.")
+ "You've been leading a dog's life. Stay off the furniture.",
+ "You've got to think about tomorrow.",
+ "You will be surprised by a loud noise.",
+ "You will feel hungry again in another hour.",
+ "You might have mail.",
+ "You cannot kill time without injuring eternity.",
+ "Computers are not intelligent. They only think they are.")
quit_button.clicked.connect(self.close)
self._tcp_server.newConnection.connect(self.send_fortune)
diff --git a/examples/network/googlesuggest/doc/googlesuggest.png b/examples/network/googlesuggest/doc/googlesuggest.png
new file mode 100644
index 000000000..cb2e91d4d
--- /dev/null
+++ b/examples/network/googlesuggest/doc/googlesuggest.png
Binary files differ
diff --git a/examples/network/googlesuggest/doc/googlesuggest.rst b/examples/network/googlesuggest/doc/googlesuggest.rst
new file mode 100644
index 000000000..ada224311
--- /dev/null
+++ b/examples/network/googlesuggest/doc/googlesuggest.rst
@@ -0,0 +1,11 @@
+Google Suggest Example
+======================
+
+Obtains the list of search recommendations by the Google search engine.
+
+The example uses the QNetworkAccessManager to obtain the list of search
+recommendations by Google as the user types into a QLineEdit.
+
+.. image:: googlesuggest.png
+ :width: 502
+ :alt: google suggest program screenshot
diff --git a/examples/network/googlesuggest/googlesuggest.py b/examples/network/googlesuggest/googlesuggest.py
new file mode 100644
index 000000000..d3fc67c05
--- /dev/null
+++ b/examples/network/googlesuggest/googlesuggest.py
@@ -0,0 +1,136 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from typing import List
+
+from PySide6.QtCore import (QByteArray, QEvent, QObject, QPoint, Qt, QTimer,
+ QXmlStreamReader, Slot)
+from PySide6.QtGui import QPalette
+from PySide6.QtNetwork import (QNetworkAccessManager, QNetworkReply,
+ QNetworkRequest)
+from PySide6.QtWidgets import QFrame, QTreeWidget, QTreeWidgetItem
+
+
+class GSuggestCompletion(QObject):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.editor = parent
+ self.popup = QTreeWidget()
+ self.popup.setWindowFlags(Qt.Popup)
+ self.popup.setFocusPolicy(Qt.NoFocus)
+ self.popup.setFocusProxy(parent)
+ self.popup.setMouseTracking(True)
+
+ self.popup.setColumnCount(1)
+ self.popup.setUniformRowHeights(True)
+ self.popup.setRootIsDecorated(False)
+ self.popup.setEditTriggers(QTreeWidget.NoEditTriggers)
+ self.popup.setSelectionBehavior(QTreeWidget.SelectRows)
+ self.popup.setFrameStyle(QFrame.Box | QFrame.Plain)
+ self.popup.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
+ self.popup.header().hide()
+
+ self.popup.installEventFilter(self)
+
+ self.popup.itemClicked.connect(self.done_completion)
+
+ self.timer = QTimer()
+ self.timer.setSingleShot(True)
+ self.timer.setInterval(500)
+ self.timer.timeout.connect(self.auto_suggest)
+ self.editor.textEdited.connect(self.timer.start)
+
+ self.network_manager = QNetworkAccessManager()
+ self.network_manager.finished.connect(self.handle_network_data)
+
+ def eventFilter(self, obj: QObject, ev: QEvent):
+ if obj is not self.popup:
+ return False
+ if ev.type() == QEvent.MouseButtonPress:
+ self.popup.hide()
+ self.editor.setFocus()
+ return True
+
+ if ev.type() == QEvent.KeyPress:
+ consumed = False
+ key = ev.key()
+ if key in (Qt.Key_Enter, Qt.Key_Return):
+ self.done_completion()
+ consumed = True
+ elif key == Qt.Key_Escape:
+ self.editor.setFocus()
+ self.popup.hide()
+ consumed = True
+ elif key in (
+ Qt.Key_Up,
+ Qt.Key_Down,
+ Qt.Key_Home,
+ Qt.Key_End,
+ Qt.Key_PageUp,
+ Qt.Key_PageDown,
+ ):
+ pass
+ else:
+ self.editor.setFocus()
+ self.editor.event(ev)
+ self.popup.hide()
+ return consumed
+ return False
+
+ def show_completion(self, choices: List[str]):
+ if not choices:
+ return
+ pal = self.editor.palette()
+ color = pal.color(QPalette.Disabled, QPalette.WindowText)
+
+ self.popup.setUpdatesEnabled(False)
+ self.popup.clear()
+
+ for choice in choices:
+ item = QTreeWidgetItem(self.popup)
+ item.setText(0, choice)
+ item.setForeground(0, color)
+
+ self.popup.setCurrentItem(self.popup.topLevelItem(0))
+ self.popup.resizeColumnToContents(0)
+ self.popup.setUpdatesEnabled(True)
+
+ self.popup.move(self.editor.mapToGlobal(QPoint(0, self.editor.height())))
+ self.popup.setFocus()
+ self.popup.show()
+
+ @Slot()
+ def done_completion(self):
+ self.timer.stop()
+ self.popup.hide()
+ self.editor.setFocus()
+ item = self.popup.currentItem()
+ if item:
+ self.editor.setText(item.text(0))
+ self.editor.returnPressed.emit()
+
+ @Slot()
+ def auto_suggest(self):
+ s = self.editor.text()
+ url = f"https://google.com/complete/search?output=toolbar&q={s}"
+ self.network_manager.get(QNetworkRequest(url))
+
+ def prevent_suggest(self):
+ self.timer.stop()
+
+ @Slot(QNetworkReply)
+ def handle_network_data(self, network_reply: QNetworkReply):
+ if network_reply.error() == QNetworkReply.NoError:
+ choices: List[str] = []
+
+ response: QByteArray = network_reply.readAll()
+ xml = QXmlStreamReader(str(response))
+ while not xml.atEnd():
+ xml.readNext()
+ if xml.tokenType() == QXmlStreamReader.StartElement:
+ if xml.name() == "suggestion":
+ s = xml.attributes().value("data")
+ choices.append(s)
+ self.show_completion(choices)
+
+ network_reply.deleteLater()
diff --git a/examples/network/googlesuggest/googlesuggest.pyproject b/examples/network/googlesuggest/googlesuggest.pyproject
new file mode 100644
index 000000000..a8cb57674
--- /dev/null
+++ b/examples/network/googlesuggest/googlesuggest.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["main.py", "googlesuggest.py"]
+}
diff --git a/examples/network/googlesuggest/main.py b/examples/network/googlesuggest/main.py
new file mode 100644
index 000000000..1efda08e6
--- /dev/null
+++ b/examples/network/googlesuggest/main.py
@@ -0,0 +1,14 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from PySide6.QtWidgets import QApplication
+
+from searchbox import SearchBox
+
+if __name__ == "__main__":
+ app = QApplication(sys.argv)
+ search_edit = SearchBox()
+ search_edit.show()
+ sys.exit(app.exec())
diff --git a/examples/network/googlesuggest/searchbox.py b/examples/network/googlesuggest/searchbox.py
new file mode 100644
index 000000000..9cbe20b23
--- /dev/null
+++ b/examples/network/googlesuggest/searchbox.py
@@ -0,0 +1,27 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import Slot
+from PySide6.QtGui import QDesktopServices
+from PySide6.QtWidgets import QLineEdit
+
+from googlesuggest import GSuggestCompletion
+
+
+class SearchBox(QLineEdit):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.completer = GSuggestCompletion(self)
+
+ self.returnPressed.connect(self.do_search)
+ self.setWindowTitle("Search with Google")
+
+ self.adjustSize()
+ self.resize(400, self.height())
+ self.setFocus()
+
+ @Slot()
+ def do_search(self):
+ self.completer.prevent_suggest()
+ url = f"https://www.google.com/search?q={self.text()}"
+ QDesktopServices.openUrl(url)
diff --git a/examples/network/loopback/dialog.py b/examples/network/loopback/dialog.py
new file mode 100644
index 000000000..673afce28
--- /dev/null
+++ b/examples/network/loopback/dialog.py
@@ -0,0 +1,151 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QByteArray, Qt
+from PySide6.QtGui import QGuiApplication
+from PySide6.QtNetwork import (QAbstractSocket, QHostAddress, QTcpServer,
+ QTcpSocket)
+from PySide6.QtWidgets import (QDialog, QDialogButtonBox, QLabel, QMessageBox,
+ QProgressBar, QPushButton, QVBoxLayout)
+
+
+class Dialog(QDialog):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+ self.total_bytes = 50 * 1024 * 1024 # 50 MB
+ self.payload_size = 64 * 1024 # 64 KB
+
+ self.bytes_to_write = 0
+ self.bytes_written = 0
+ self.bytes_received = 0
+
+ self.client_progress_bar = QProgressBar()
+ self.client_status_label = QLabel("Client ready")
+ self.server_progress_bar = QProgressBar()
+ self.server_status_label = QLabel("Server ready")
+
+ self.start_button = QPushButton("&Start")
+ self.quit_button = QPushButton("&Quit")
+
+ self.button_box = QDialogButtonBox()
+ self.button_box.addButton(self.start_button, QDialogButtonBox.ActionRole)
+ self.button_box.addButton(self.quit_button, QDialogButtonBox.RejectRole)
+
+ self.start_button.clicked.connect(self.start)
+ self.quit_button.clicked.connect(self.close)
+
+ self.tcp_server = QTcpServer()
+ self.tcp_client = QTcpSocket()
+ self.tcp_server.newConnection.connect(self.accept_connection)
+ self.tcp_client.connected.connect(self.start_transfer)
+ self.tcp_client.bytesWritten.connect(self.update_client_progress)
+ self.tcp_client.errorOccurred.connect(self.display_error)
+
+ main_layout = QVBoxLayout()
+ main_layout.addWidget(self.client_progress_bar)
+ main_layout.addWidget(self.client_status_label)
+ main_layout.addWidget(self.server_progress_bar)
+ main_layout.addWidget(self.server_status_label)
+ main_layout.addStretch(1)
+ main_layout.addSpacing(10)
+ main_layout.addWidget(self.button_box)
+ self.setLayout(main_layout)
+
+ self.setWindowTitle("Loopback")
+
+ def start(self):
+
+ self.start_button.setEnabled(False)
+
+ QGuiApplication.setOverrideCursor(Qt.WaitCursor)
+
+ self.bytes_written = 0
+ self.bytes_received = 0
+
+ while not self.tcp_server.isListening() and not self.tcp_server.listen():
+ ret: QMessageBox.StandardButton = QMessageBox.critical(
+ self,
+ "Loopback",
+ f"Unable to start the test {self.tcp_server.errorString()}",
+ QMessageBox.Retry | QMessageBox.Cancel,
+ )
+ if ret == QMessageBox.Cancel:
+ return
+
+ self.server_status_label.setText("Listening")
+ self.client_status_label.setText("Connecting")
+ self.tcp_client.connectToHost(QHostAddress.LocalHost, self.tcp_server.serverPort())
+
+ def accept_connection(self):
+
+ self.tcp_server_connection = self.tcp_server.nextPendingConnection()
+ if not self.tcp_server_connection:
+ self.server_status_label.setText("Error: got invalid pending connection")
+ return
+
+ self.tcp_server_connection.readyRead.connect(self.update_server_progress)
+ self.tcp_server_connection.errorOccurred.connect(self.display_error)
+ self.tcp_server_connection.disconnected.connect(self.tcp_server_connection.deleteLater)
+
+ self.server_status_label.setText("Accepted connection")
+ self.tcp_server.close()
+
+ def start_transfer(self):
+
+ # Called when the TCP client has connected to the loopback server
+ self.bytes_to_write = self.total_bytes - self.tcp_client.write(
+ QByteArray(self.payload_size, "@")
+ )
+ self.client_status_label.setText("Connected")
+
+ def update_server_progress(self):
+
+ self.bytes_received += self.tcp_server_connection.bytesAvailable()
+ self.tcp_server_connection.readAll()
+
+ self.server_progress_bar.setMaximum(self.total_bytes)
+ self.server_progress_bar.setValue(self.bytes_received)
+ self.server_status_label.setText(f"Received {self.bytes_received / (1024 ** 2)} MB")
+
+ if self.bytes_received == self.total_bytes:
+
+ self.tcp_server_connection.close()
+ self.start_button.setEnabled(True)
+
+ QGuiApplication.restoreOverrideCursor()
+
+ def update_client_progress(self, num_bytes: int):
+
+ # called when the TCP client has written some bytes
+ self.bytes_written += num_bytes
+
+ # only write more if not finished and when the Qt write buffer is below a certain size
+ if self.bytes_to_write > 0 and self.tcp_client.bytesToWrite() <= 4 * self.payload_size:
+ self.bytes_to_write -= self.tcp_client.write(
+ QByteArray(min(self.bytes_to_write, self.payload_size), "@")
+ )
+
+ self.client_progress_bar.setMaximum(self.total_bytes)
+ self.client_progress_bar.setValue(self.bytes_written)
+ self.client_status_label.setText(f"Sent {self.bytes_written / (1024 ** 2)} MB")
+
+ def display_error(self, socket_error: QAbstractSocket.SocketError):
+ if socket_error == QAbstractSocket.RemoteHostClosedError:
+ return
+
+ QMessageBox.information(
+ self,
+ "Network error",
+ f"The following error occurred: {self.tcp_client.errorString()}",
+ )
+
+ self.tcp_client.close()
+ self.tcp_server.close()
+ self.client_progress_bar.reset()
+ self.server_progress_bar.reset()
+ self.client_status_label.setText("Client ready")
+ self.server_status_label.setText("Server ready")
+ self.start_button.setEnabled(True)
+
+ QGuiApplication.restoreOverrideCursor()
diff --git a/examples/network/loopback/doc/loopback.png b/examples/network/loopback/doc/loopback.png
new file mode 100644
index 000000000..2b1bd4a0f
--- /dev/null
+++ b/examples/network/loopback/doc/loopback.png
Binary files differ
diff --git a/examples/network/loopback/doc/loopback.rst b/examples/network/loopback/doc/loopback.rst
new file mode 100644
index 000000000..0a40b57a8
--- /dev/null
+++ b/examples/network/loopback/doc/loopback.rst
@@ -0,0 +1,10 @@
+Loopback Example
+================
+
+Demonstrates the client-server communication on a local host.
+
+The example demonstrates how the clients and servers on a local host communicate with each other.
+
+.. image:: loopback.png
+ :width: 208
+ :alt: loopback program screenshot
diff --git a/examples/network/loopback/loopback.pyproject b/examples/network/loopback/loopback.pyproject
new file mode 100644
index 000000000..957714cda
--- /dev/null
+++ b/examples/network/loopback/loopback.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["main.py", "dialog.py"]
+}
diff --git a/examples/network/loopback/main.py b/examples/network/loopback/main.py
new file mode 100644
index 000000000..d684b6bab
--- /dev/null
+++ b/examples/network/loopback/main.py
@@ -0,0 +1,15 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from PySide6.QtWidgets import QApplication
+
+from dialog import Dialog
+
+if __name__ == "__main__":
+ app = QApplication(sys.argv)
+
+ dialog = Dialog()
+ dialog.show()
+ sys.exit(app.exec())
diff --git a/examples/network/threadedfortuneserver/threadedfortuneserver.py b/examples/network/threadedfortuneserver/threadedfortuneserver.py
index 0722d4739..c75e2bc57 100644
--- a/examples/network/threadedfortuneserver/threadedfortuneserver.py
+++ b/examples/network/threadedfortuneserver/threadedfortuneserver.py
@@ -1,55 +1,17 @@
-
-#############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the network/threadedfortuneserver example from Qt v5.x, originating from PyQt"""
import random
from PySide6.QtCore import (Signal, QByteArray, QDataStream, QIODevice,
- QThread, Qt)
+ QThread, Qt)
from PySide6.QtWidgets import (QApplication, QDialog, QHBoxLayout, QLabel,
- QMessageBox, QPushButton, QVBoxLayout)
+ QMessageBox, QPushButton, QVBoxLayout)
from PySide6.QtNetwork import (QHostAddress, QNetworkInterface, QTcpServer,
- QTcpSocket)
+ QTcpSocket)
class FortuneThread(QThread):
@@ -113,7 +75,7 @@ class Dialog(QDialog):
if not self.server.listen():
reason = self.server.errorString()
QMessageBox.critical(self, "Threaded Fortune Server",
- f"Unable to start the server: {reason}.")
+ f"Unable to start the server: {reason}.")
self.close()
return
@@ -127,7 +89,7 @@ class Dialog(QDialog):
port = self.server.serverPort()
status_label.setText(f"The server is running on\n\nIP: {ip_address}\nport: {port}\n\n"
- "Run the Fortune Client example now.")
+ "Run the Fortune Client example now.")
quit_button.clicked.connect(self.close)
diff --git a/examples/networkauth/redditclient/main.py b/examples/networkauth/redditclient/main.py
index 813c61964..e88e32cc5 100644
--- a/examples/networkauth/redditclient/main.py
+++ b/examples/networkauth/redditclient/main.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the networkauth redditclient example from Qt v6.x"""
diff --git a/examples/networkauth/redditclient/redditmodel.py b/examples/networkauth/redditclient/redditmodel.py
index 546532112..fd6f9bc97 100644
--- a/examples/networkauth/redditclient/redditmodel.py
+++ b/examples/networkauth/redditclient/redditmodel.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import functools
from PySide6.QtCore import (QAbstractTableModel, QJsonDocument, QModelIndex,
@@ -88,7 +51,7 @@ class RedditModel(QAbstractTableModel):
document = QJsonDocument.fromJson(json)
root_object = document.object()
kind = root_object["kind"]
- assert(kind == "Listing")
+ assert kind == "Listing"
data_object = root_object["data"]
children_array = data_object["children"]
if not children_array:
diff --git a/examples/networkauth/redditclient/redditwrapper.py b/examples/networkauth/redditclient/redditwrapper.py
index e069fdeb0..ed4c3d2c7 100644
--- a/examples/networkauth/redditclient/redditwrapper.py
+++ b/examples/networkauth/redditclient/redditwrapper.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import functools
@@ -66,14 +29,24 @@ class RedditWrapper(QObject):
super().__init__(parent)
self._oauth2 = QOAuth2AuthorizationCodeFlow()
- self._oauth2.statusChanged.connect(self.status_changed)
- self._oauth2.authorizeWithBrowser.connect(QDesktopServices.openUrl)
self._oauth2.setClientIdentifier(clientIdentifier)
self._reply_handler = QOAuthHttpServerReplyHandler(1337, self)
self._oauth2.setReplyHandler(self._reply_handler)
self._oauth2.setAuthorizationUrl(QUrl(AUTHORIZATION_URL))
self._oauth2.setAccessTokenUrl(QUrl(ACCESSTOKEN_URL))
self._oauth2.setScope("identity read")
+ self._permanent = True
+
+ # connect to slots
+ self._oauth2.statusChanged.connect(self.status_changed)
+ self._oauth2.authorizeWithBrowser.connect(QDesktopServices.openUrl)
+
+ def modify_parameters_function(stage, parameters):
+ if stage == QAbstractOAuth.Stage.RequestingAuthorization and self.permanent:
+ parameters["duration"] = "permanent"
+ return parameters
+
+ self._oauth2.setModifyParametersFunction(modify_parameters_function)
@Slot()
def status_changed(self, status):
@@ -84,6 +57,14 @@ class RedditWrapper(QObject):
print("Getting hot threads...")
return self._oauth2.get(QUrl(HOT_URL))
+ @property
+ def permanent(self):
+ return self._permanent
+
+ @permanent.setter
+ def permanent(self, value: bool):
+ self._permanent = value
+
def grant(self):
self._oauth2.grant()
@@ -98,7 +79,7 @@ class RedditWrapper(QObject):
json = reply.readAll()
document = QJsonDocument.fromJson(json)
- assert(document.isObject())
+ assert document.isObject()
root_object = document.object()
data_object = root_object["data"]
websocketUrl = QUrl(data_object["websocket_url"])
diff --git a/examples/opengl/contextinfo/contextinfo.py b/examples/opengl/contextinfo/contextinfo.py
index 73b55df13..311d5b765 100644
--- a/examples/opengl/contextinfo/contextinfo.py
+++ b/examples/opengl/contextinfo/contextinfo.py
@@ -1,43 +1,5 @@
-
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the opengl/contextinfo example from Qt v5.x"""
@@ -47,20 +9,20 @@ import sys
from textwrap import dedent
-from PySide6.QtCore import QCoreApplication, QLibraryInfo, QSize, QTimer, Qt
+from PySide6.QtCore import (QCoreApplication, QLibraryInfo, QSize, QTimer, Qt,
+ Slot)
from PySide6.QtGui import (QMatrix4x4, QOpenGLContext, QSurfaceFormat, QWindow)
from PySide6.QtOpenGL import (QOpenGLBuffer, QOpenGLShader,
QOpenGLShaderProgram, QOpenGLVertexArrayObject)
from PySide6.QtWidgets import (QApplication, QHBoxLayout, QMessageBox, QPlainTextEdit,
- QWidget)
+ QWidget)
from PySide6.support import VoidPtr
try:
from OpenGL import GL
except ImportError:
app = QApplication(sys.argv)
message_box = QMessageBox(QMessageBox.Critical, "ContextInfo",
- "PyOpenGL must be installed to run this example.",
- QMessageBox.Close)
+ "PyOpenGL must be installed to run this example.", QMessageBox.Close)
message_box.setDetailedText("Run:\npip install PyOpenGL PyOpenGL_accelerate")
message_box.exec()
sys.exit(1)
@@ -111,7 +73,10 @@ colors = numpy.array([1, 0, 0, 0, 1, 0, 0, 0, 1], dtype=numpy.float32)
def print_surface_format(surface_format):
- profile_name = 'core' if surface_format.profile() == QSurfaceFormat.CoreProfile else 'compatibility'
+ if surface_format.profile() == QSurfaceFormat.CoreProfile:
+ profile_name = 'core'
+ else:
+ profile_name = 'compatibility'
major = surface_format.majorVersion()
minor = surface_format.minorVersion()
return f"{profile_name} version {major}.{minor}"
@@ -141,11 +106,13 @@ class RenderWindow(QWindow):
# concept 3.2+ has. This may still fail since version 150 (3.2) is
# specified in the sources but it's worth a try.
if (fmt.renderableType() == QSurfaceFormat.OpenGL and fmt.majorVersion() == 3
- and fmt.minorVersion() <= 1):
+ and fmt.minorVersion() <= 1):
use_new_style_shader = not fmt.testOption(QSurfaceFormat.DeprecatedFunctions)
vertex_shader = vertex_shader_source if use_new_style_shader else vertex_shader_source_110
- fragment_shader = fragment_shader_source if use_new_style_shader else fragment_shader_source_110
+ fragment_shader = (fragment_shader_source
+ if use_new_style_shader
+ else fragment_shader_source_110)
if not self.program.addShaderFromSourceCode(QOpenGLShader.Vertex, vertex_shader):
log = self.program.log()
raise Exception("Vertex shader could not be added: {log} ({vertexShader})")
@@ -170,9 +137,9 @@ class RenderWindow(QWindow):
self.vbo.write(vertices_size, VoidPtr(self._colors_data), colors_size)
self.vbo.release()
- vao_binder = QOpenGLVertexArrayObject.Binder(self.vao)
- if self.vao.isCreated(): # have VAO support, use it
- self.setup_vertex_attribs()
+ with QOpenGLVertexArrayObject.Binder(self.vao):
+ if self.vao.isCreated(): # have VAO support, use it
+ self.setup_vertex_attribs()
def setup_vertex_attribs(self):
self.vbo.bind()
@@ -230,6 +197,7 @@ class RenderWindow(QWindow):
self.context.swapBuffers(self)
self.context.doneCurrent()
+ @Slot()
def slot_timer(self):
self.render()
self.angle += 1
diff --git a/examples/opengl/hellogl2/doc/hellogl2.rst b/examples/opengl/hellogl2/doc/hellogl2.rst
index 1223e138c..3471ebf30 100644
--- a/examples/opengl/hellogl2/doc/hellogl2.rst
+++ b/examples/opengl/hellogl2/doc/hellogl2.rst
@@ -4,6 +4,20 @@ Hello GL2 Example
The Hello GL2 example demonstrates the basic use of the OpenGL-related classes
provided with Qt.
+In this example the widget's corresponding top-level window can change several
+times during the widget's lifetime. Whenever this happens, the QOpenGLWidget's
+associated context is destroyed and a new one is created, requiring us to clean
+up the GL resources.
+
+The equivalent C++ example does this cleanup on emission of the
+QOpenGLContext.aboutToBeDestroyed() signal. However, in Qt for Python, we
+cannot rely on this signal when it is emitted from the destructor.
+
+Therefore, we do the cleanup in GLWidget.hideEvent().
+
+This will be followed by an invocation of initializeGL() where we can recreate
+all resources.
+
.. image:: hellogl2.png
:width: 400
:alt: Hello GL2 Screenshot
diff --git a/examples/opengl/hellogl2/glwidget.py b/examples/opengl/hellogl2/glwidget.py
new file mode 100644
index 000000000..bbf200a6b
--- /dev/null
+++ b/examples/opengl/hellogl2/glwidget.py
@@ -0,0 +1,272 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# Copyright (C) 2013 Riverbank Computing Limited.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import ctypes
+from PySide6.QtCore import Signal, Slot, Qt, QSize, QPointF
+from PySide6.QtGui import (QVector3D, QOpenGLFunctions,
+ QMatrix4x4, QOpenGLContext, QSurfaceFormat)
+from PySide6.QtOpenGL import (QOpenGLVertexArrayObject, QOpenGLBuffer,
+ QOpenGLShaderProgram, QOpenGLShader)
+from PySide6.QtOpenGLWidgets import QOpenGLWidget
+
+from OpenGL import GL
+
+from shiboken6 import VoidPtr
+from logo import Logo
+
+FRAGMENT_SHADER_SOURCE_CORE = """#version 150
+in highp vec3 vert;
+in highp vec3 vertNormal;
+out highp vec4 fragColor;
+uniform highp vec3 lightPos;
+void main() {
+ highp vec3 L = normalize(lightPos - vert);
+ highp float NL = max(dot(normalize(vertNormal), L), 0.0);
+ highp vec3 color = vec3(0.39, 1.0, 0.0);
+ highp vec3 col = clamp(color * 0.2 + color * 0.8 * NL, 0.0, 1.0);
+ fragColor = vec4(col, 1.0);
+}"""
+
+
+FRAGMENT_SHADER_SOURCE = """varying highp vec3 vert;
+varying highp vec3 vertNormal;
+uniform highp vec3 lightPos;
+void main() {
+ highp vec3 L = normalize(lightPos - vert);
+ highp float NL = max(dot(normalize(vertNormal), L), 0.0);
+ highp vec3 color = vec3(0.39, 1.0, 0.0);
+ highp vec3 col = clamp(color * 0.2 + color * 0.8 * NL, 0.0, 1.0);
+ gl_FragColor = vec4(col, 1.0);
+}"""
+
+
+VERTEX_SHADER_SOURCE_CORE = """#version 150
+in vec4 vertex;
+in vec3 normal;
+out vec3 vert;
+out vec3 vertNormal;
+uniform mat4 projMatrix;
+uniform mat4 mvMatrix;
+uniform mat3 normalMatrix;
+void main() {
+ vert = vertex.xyz;
+ vertNormal = normalMatrix * normal;
+ gl_Position = projMatrix * mvMatrix * vertex;
+}"""
+
+
+VERTEX_SHADER_SOURCE = """attribute vec4 vertex;
+attribute vec3 normal;
+varying vec3 vert;
+varying vec3 vertNormal;
+uniform mat4 projMatrix;
+uniform mat4 mvMatrix;
+uniform mat3 normalMatrix;
+void main() {
+ vert = vertex.xyz;
+ vertNormal = normalMatrix * normal;
+ gl_Position = projMatrix * mvMatrix * vertex;
+}"""
+
+
+class GLWidget(QOpenGLWidget, QOpenGLFunctions):
+ x_rotation_changed = Signal(int)
+ y_rotation_changed = Signal(int)
+ z_rotation_changed = Signal(int)
+
+ _transparent = False
+
+ def __init__(self, parent=None):
+ QOpenGLWidget.__init__(self, parent)
+ QOpenGLFunctions.__init__(self)
+
+ self._core = QSurfaceFormat.defaultFormat().profile() == QSurfaceFormat.CoreProfile
+
+ self._x_rot = 0
+ self._y_rot = 0
+ self._z_rot = 0
+ self._last_pos = QPointF()
+ self.logo = Logo()
+ self.vao = QOpenGLVertexArrayObject()
+ self._logo_vbo = QOpenGLBuffer()
+ self.program = QOpenGLShaderProgram()
+ self._proj_matrix_loc = 0
+ self._mv_matrix_loc = 0
+ self._normal_matrix_loc = 0
+ self._light_pos_loc = 0
+ self.proj = QMatrix4x4()
+ self.camera = QMatrix4x4()
+ self.world = QMatrix4x4()
+ if self._transparent:
+ fmt = self.format()
+ fmt.setAlphaBufferSize(8)
+ self.setFormat(fmt)
+
+ @staticmethod
+ def set_transparent(t):
+ GLWidget._transparent = t
+
+ @staticmethod
+ def is_transparent():
+ return GLWidget._transparent
+
+ def x_rotation(self):
+ return self._x_rot
+
+ def y_rotation(self):
+ return self._y_rot
+
+ def z_rotation(self):
+ return self._z_rot
+
+ def minimumSizeHint(self):
+ return QSize(50, 50)
+
+ def sizeHint(self):
+ return QSize(400, 400)
+
+ def normalize_angle(self, angle):
+ while angle < 0:
+ angle += 360 * 16
+ while angle > 360 * 16:
+ angle -= 360 * 16
+ return angle
+
+ @Slot(int)
+ def set_xrotation(self, angle):
+ angle = self.normalize_angle(angle)
+ if angle != self._x_rot:
+ self._x_rot = angle
+ self.x_rotation_changed.emit(angle)
+ self.update()
+
+ @Slot(int)
+ def set_yrotation(self, angle):
+ angle = self.normalize_angle(angle)
+ if angle != self._y_rot:
+ self._y_rot = angle
+ self.y_rotation_changed.emit(angle)
+ self.update()
+
+ @Slot(int)
+ def set_zrotation(self, angle):
+ angle = self.normalize_angle(angle)
+ if angle != self._z_rot:
+ self._z_rot = angle
+ self.z_rotation_changed.emit(angle)
+ self.update()
+
+ @Slot()
+ def cleanup(self):
+ if self.program:
+ self.makeCurrent()
+ self._logo_vbo.destroy()
+ del self.program
+ self.program = None
+ self.doneCurrent()
+
+ def initializeGL(self):
+ self.initializeOpenGLFunctions()
+ self.glClearColor(0, 0, 0, 0 if self._transparent else 1)
+
+ self.program = QOpenGLShaderProgram()
+
+ if self._core:
+ self._vertex_shader = VERTEX_SHADER_SOURCE_CORE
+ self._fragment_shader = FRAGMENT_SHADER_SOURCE_CORE
+ else:
+ self._vertex_shader = VERTEX_SHADER_SOURCE
+ self._fragment_shader = FRAGMENT_SHADER_SOURCE
+
+ self.program.addShaderFromSourceCode(QOpenGLShader.Vertex,
+ self._vertex_shader)
+ self.program.addShaderFromSourceCode(QOpenGLShader.Fragment,
+ self._fragment_shader)
+ self.program.bindAttributeLocation("vertex", 0)
+ self.program.bindAttributeLocation("normal", 1)
+ self.program.link()
+
+ self.program.bind()
+ self._proj_matrix_loc = self.program.uniformLocation("projMatrix")
+ self._mv_matrix_loc = self.program.uniformLocation("mvMatrix")
+ self._normal_matrix_loc = self.program.uniformLocation("normalMatrix")
+ self._light_pos_loc = self.program.uniformLocation("lightPos")
+
+ self.vao.create()
+ with QOpenGLVertexArrayObject.Binder(self.vao):
+ self._logo_vbo.create()
+ self._logo_vbo.bind()
+ float_size = ctypes.sizeof(ctypes.c_float)
+ self._logo_vbo.allocate(self.logo.const_data(),
+ self.logo.count() * float_size)
+
+ self.setup_vertex_attribs()
+
+ self.camera.setToIdentity()
+ self.camera.translate(0, 0, -1)
+
+ self.program.setUniformValue(self._light_pos_loc,
+ QVector3D(0, 0, 70))
+ self.program.release()
+
+ def setup_vertex_attribs(self):
+ self._logo_vbo.bind()
+ f = QOpenGLContext.currentContext().functions()
+ f.glEnableVertexAttribArray(0)
+ f.glEnableVertexAttribArray(1)
+ float_size = ctypes.sizeof(ctypes.c_float)
+
+ null = VoidPtr(0)
+ pointer = VoidPtr(3 * float_size)
+ f.glVertexAttribPointer(0, 3, int(GL.GL_FLOAT), int(GL.GL_FALSE),
+ 6 * float_size, null)
+ f.glVertexAttribPointer(1, 3, int(GL.GL_FLOAT), int(GL.GL_FALSE),
+ 6 * float_size, pointer)
+ self._logo_vbo.release()
+
+ def paintGL(self):
+ self.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT)
+ self.glEnable(GL.GL_DEPTH_TEST)
+ self.glEnable(GL.GL_CULL_FACE)
+
+ self.world.setToIdentity()
+ self.world.rotate(180 - (self._x_rot / 16), 1, 0, 0)
+ self.world.rotate(self._y_rot / 16, 0, 1, 0)
+ self.world.rotate(self._z_rot / 16, 0, 0, 1)
+
+ with QOpenGLVertexArrayObject.Binder(self.vao):
+ self.program.bind()
+ self.program.setUniformValue(self._proj_matrix_loc, self.proj)
+ self.program.setUniformValue(self._mv_matrix_loc,
+ self.camera * self.world)
+ normal_matrix = self.world.normalMatrix()
+ self.program.setUniformValue(self._normal_matrix_loc, normal_matrix)
+
+ self.glDrawArrays(GL.GL_TRIANGLES, 0, self.logo.vertex_count())
+ self.program.release()
+
+ def resizeGL(self, width, height):
+ self.proj.setToIdentity()
+ self.proj.perspective(45, width / height, 0.01, 100)
+
+ def hideEvent(self, event):
+ self.cleanup()
+ super().hideEvent(event)
+
+ def mousePressEvent(self, event):
+ self._last_pos = event.position()
+
+ def mouseMoveEvent(self, event):
+ pos = event.position()
+ dx = pos.x() - self._last_pos.x()
+ dy = pos.y() - self._last_pos.y()
+
+ if event.buttons() & Qt.LeftButton:
+ self.set_xrotation(self._x_rot + 8 * dy)
+ self.set_yrotation(self._y_rot + 8 * dx)
+ elif event.buttons() & Qt.RightButton:
+ self.set_xrotation(self._x_rot + 8 * dy)
+ self.set_zrotation(self._z_rot + 8 * dx)
+
+ self._last_pos = pos
diff --git a/examples/opengl/hellogl2/hellogl2.py b/examples/opengl/hellogl2/hellogl2.py
deleted file mode 100644
index 2f170dc90..000000000
--- a/examples/opengl/hellogl2/hellogl2.py
+++ /dev/null
@@ -1,489 +0,0 @@
-
-############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-############################################################################
-
-"""PySide6 port of the opengl/hellogl2 example from Qt v5.x"""
-
-from argparse import ArgumentParser, RawTextHelpFormatter
-import ctypes
-import math
-import numpy
-import sys
-from PySide6.QtCore import QCoreApplication, Signal, SIGNAL, SLOT, Qt, QSize, QPointF
-from PySide6.QtGui import (QVector3D, QOpenGLFunctions,
- QMatrix4x4, QOpenGLContext, QSurfaceFormat)
-from PySide6.QtOpenGL import (QOpenGLVertexArrayObject, QOpenGLBuffer,
- QOpenGLShaderProgram, QOpenGLShader)
-from PySide6.QtWidgets import (QApplication, QWidget, QMessageBox, QHBoxLayout,
- QSlider)
-from PySide6.QtOpenGLWidgets import QOpenGLWidget
-
-from shiboken6 import VoidPtr
-
-try:
- from OpenGL import GL
-except ImportError:
- app = QApplication(sys.argv)
- message_box = QMessageBox(QMessageBox.Critical, "OpenGL hellogl",
- "PyOpenGL must be installed to run this example.",
- QMessageBox.Close)
- message_box.setDetailedText("Run:\npip install PyOpenGL PyOpenGL_accelerate")
- message_box.exec()
- sys.exit(1)
-
-
-class Window(QWidget):
- def __init__(self, transparent, parent=None):
- QWidget.__init__(self, parent)
-
- if transparent:
- self.setAttribute(Qt.WA_TranslucentBackground)
- self.setAttribute(Qt.WA_NoSystemBackground, False)
-
- self._gl_widget = GLWidget(transparent)
-
- self._x_slider = self.create_slider()
- self._x_slider.valueChanged.connect(self._gl_widget.set_xrotation)
- self._gl_widget.x_rotation_changed.connect(self._x_slider.setValue)
-
- self._y_slider = self.create_slider()
- self._y_slider.valueChanged.connect(self._gl_widget.set_yrotation)
- self._gl_widget.y_rotation_changed.connect(self._y_slider.setValue)
-
- self._z_slider = self.create_slider()
- self._z_slider.valueChanged.connect(self._gl_widget.set_zrotation)
- self._gl_widget.z_rotation_changed.connect(self._z_slider.setValue)
-
- main_layout = QHBoxLayout()
- main_layout.addWidget(self._gl_widget)
- main_layout.addWidget(self._x_slider)
- main_layout.addWidget(self._y_slider)
- main_layout.addWidget(self._z_slider)
- self.setLayout(main_layout)
-
- self._x_slider.setValue(15 * 16)
- self._y_slider.setValue(345 * 16)
- self._z_slider.setValue(0 * 16)
-
- self.setWindowTitle(self.tr("Hello GL"))
-
- def create_slider(self):
- slider = QSlider(Qt.Vertical)
-
- slider.setRange(0, 360 * 16)
- slider.setSingleStep(16)
- slider.setPageStep(15 * 16)
- slider.setTickInterval(15 * 16)
- slider.setTickPosition(QSlider.TicksRight)
- return slider
-
- def keyPressEvent(self, event):
- if event.key() == Qt.Key_Escape:
- self.close()
- else:
- super(Window, self).keyPressEvent(event)
-
-
-class Logo():
- def __init__(self):
- self.m_count = 0
- self.i = 0
- self.m_data = numpy.empty(2500 * 6, dtype=ctypes.c_float)
-
- x1 = +0.06
- y1 = -0.14
- x2 = +0.14
- y2 = -0.06
- x3 = +0.08
- y3 = +0.00
- x4 = +0.30
- y4 = +0.22
-
- self.quad(x1, y1, x2, y2, y2, x2, y1, x1)
- self.quad(x3, y3, x4, y4, y4, x4, y3, x3)
-
- self.extrude(x1, y1, x2, y2)
- self.extrude(x2, y2, y2, x2)
- self.extrude(y2, x2, y1, x1)
- self.extrude(y1, x1, x1, y1)
- self.extrude(x3, y3, x4, y4)
- self.extrude(x4, y4, y4, x4)
- self.extrude(y4, x4, y3, x3)
-
- NUM_SECTORS = 100
-
- for i in range(NUM_SECTORS):
- angle = (i * 2 * math.pi) / NUM_SECTORS
- x5 = 0.30 * math.sin(angle)
- y5 = 0.30 * math.cos(angle)
- x6 = 0.20 * math.sin(angle)
- y6 = 0.20 * math.cos(angle)
-
- angle = ((i + 1) * 2 * math.pi) / NUM_SECTORS
- x7 = 0.20 * math.sin(angle)
- y7 = 0.20 * math.cos(angle)
- x8 = 0.30 * math.sin(angle)
- y8 = 0.30 * math.cos(angle)
-
- self.quad(x5, y5, x6, y6, x7, y7, x8, y8)
-
- self.extrude(x6, y6, x7, y7)
- self.extrude(x8, y8, x5, y5)
-
- def const_data(self):
- return self.m_data.tobytes()
-
- def count(self):
- return self.m_count
-
- def vertex_count(self):
- return self.m_count / 6
-
- def quad(self, x1, y1, x2, y2, x3, y3, x4, y4):
- n = QVector3D.normal(QVector3D(x4 - x1, y4 - y1, 0), QVector3D(x2 - x1, y2 - y1, 0))
-
- self.add(QVector3D(x1, y1, -0.05), n)
- self.add(QVector3D(x4, y4, -0.05), n)
- self.add(QVector3D(x2, y2, -0.05), n)
-
- self.add(QVector3D(x3, y3, -0.05), n)
- self.add(QVector3D(x2, y2, -0.05), n)
- self.add(QVector3D(x4, y4, -0.05), n)
-
- n = QVector3D.normal(QVector3D(x1 - x4, y1 - y4, 0), QVector3D(x2 - x4, y2 - y4, 0))
-
- self.add(QVector3D(x4, y4, 0.05), n)
- self.add(QVector3D(x1, y1, 0.05), n)
- self.add(QVector3D(x2, y2, 0.05), n)
-
- self.add(QVector3D(x2, y2, 0.05), n)
- self.add(QVector3D(x3, y3, 0.05), n)
- self.add(QVector3D(x4, y4, 0.05), n)
-
- def extrude(self, x1, y1, x2, y2):
- n = QVector3D.normal(QVector3D(0, 0, -0.1), QVector3D(x2 - x1, y2 - y1, 0))
-
- self.add(QVector3D(x1, y1, 0.05), n)
- self.add(QVector3D(x1, y1, -0.05), n)
- self.add(QVector3D(x2, y2, 0.05), n)
-
- self.add(QVector3D(x2, y2, -0.05), n)
- self.add(QVector3D(x2, y2, 0.05), n)
- self.add(QVector3D(x1, y1, -0.05), n)
-
- def add(self, v, n):
- self.m_data[self.i] = v.x()
- self.i += 1
- self.m_data[self.i] = v.y()
- self.i += 1
- self.m_data[self.i] = v.z()
- self.i += 1
- self.m_data[self.i] = n.x()
- self.i += 1
- self.m_data[self.i] = n.y()
- self.i += 1
- self.m_data[self.i] = n.z()
- self.i += 1
- self.m_count += 6
-
-
-class GLWidget(QOpenGLWidget, QOpenGLFunctions):
- x_rotation_changed = Signal(int)
- y_rotation_changed = Signal(int)
- z_rotation_changed = Signal(int)
-
- def __init__(self, transparent, parent=None):
- QOpenGLWidget.__init__(self, parent)
- QOpenGLFunctions.__init__(self)
-
- self._transparent = transparent
- self._core = QSurfaceFormat.defaultFormat().profile() == QSurfaceFormat.CoreProfile
-
- self._x_rot = 0
- self._y_rot = 0
- self._z_rot = 0
- self._last_pos = QPointF()
- self.logo = Logo()
- self.vao = QOpenGLVertexArrayObject()
- self._logo_vbo = QOpenGLBuffer()
- self.program = QOpenGLShaderProgram()
- self._proj_matrix_loc = 0
- self._mv_matrix_loc = 0
- self._normal_matrix_loc = 0
- self._light_pos_loc = 0
- self.proj = QMatrix4x4()
- self.camera = QMatrix4x4()
- self.world = QMatrix4x4()
- if transparent:
- fmt = self.format()
- fmt.setAlphaBufferSize(8)
- self.setFormat(fmt)
-
- def x_rotation(self):
- return self._x_rot
-
- def y_rotation(self):
- return self._y_rot
-
- def z_rotation(self):
- return self._z_rot
-
- def minimumSizeHint(self):
- return QSize(50, 50)
-
- def sizeHint(self):
- return QSize(400, 400)
-
- def normalize_angle(self, angle):
- while angle < 0:
- angle += 360 * 16
- while angle > 360 * 16:
- angle -= 360 * 16
- return angle
-
- def set_xrotation(self, angle):
- angle = self.normalize_angle(angle)
- if angle != self._x_rot:
- self._x_rot = angle
- self.x_rotation_changed.emit(angle)
- self.update()
-
- def set_yrotation(self, angle):
- angle = self.normalize_angle(angle)
- if angle != self._y_rot:
- self._y_rot = angle
- self.y_rotation_changed.emit(angle)
- self.update()
-
- def set_zrotation(self, angle):
- angle = self.normalize_angle(angle)
- if angle != self._z_rot:
- self._z_rot = angle
- self.z_rotation_changed.emit(angle)
- self.update()
-
- def cleanup(self):
- self.makeCurrent()
- self._logo_vbo.destroy()
- del self.program
- self.program = None
- self.doneCurrent()
-
- def vertex_shader_source_core(self):
- return """#version 150
- in vec4 vertex;
- in vec3 normal;
- out vec3 vert;
- out vec3 vertNormal;
- uniform mat4 projMatrix;
- uniform mat4 mvMatrix;
- uniform mat3 normalMatrix;
- void main() {
- vert = vertex.xyz;
- vertNormal = normalMatrix * normal;
- gl_Position = projMatrix * mvMatrix * vertex;
- }"""
-
- def fragment_shader_source_core(self):
- return """#version 150
- in highp vec3 vert;
- in highp vec3 vertNormal;
- out highp vec4 fragColor;
- uniform highp vec3 lightPos;
- void main() {
- highp vec3 L = normalize(lightPos - vert);
- highp float NL = max(dot(normalize(vertNormal), L), 0.0);
- highp vec3 color = vec3(0.39, 1.0, 0.0);
- highp vec3 col = clamp(color * 0.2 + color * 0.8 * NL, 0.0, 1.0);
- fragColor = vec4(col, 1.0);
- }"""
-
- def vertex_shader_source(self):
- return """attribute vec4 vertex;
- attribute vec3 normal;
- varying vec3 vert;
- varying vec3 vertNormal;
- uniform mat4 projMatrix;
- uniform mat4 mvMatrix;
- uniform mat3 normalMatrix;
- void main() {
- vert = vertex.xyz;
- vertNormal = normalMatrix * normal;
- gl_Position = projMatrix * mvMatrix * vertex;
- }"""
-
- def fragment_shader_source(self):
- return """varying highp vec3 vert;
- varying highp vec3 vertNormal;
- uniform highp vec3 lightPos;
- void main() {
- highp vec3 L = normalize(lightPos - vert);
- highp float NL = max(dot(normalize(vertNormal), L), 0.0);
- highp vec3 color = vec3(0.39, 1.0, 0.0);
- highp vec3 col = clamp(color * 0.2 + color * 0.8 * NL, 0.0, 1.0);
- gl_FragColor = vec4(col, 1.0);
- }"""
-
- def initializeGL(self):
- self.context().aboutToBeDestroyed.connect(self.cleanup)
- self.initializeOpenGLFunctions()
- self.glClearColor(0, 0, 0, 0 if self._transparent else 1)
-
- self.program = QOpenGLShaderProgram()
-
- if self._core:
- self._vertex_shader = self.vertex_shader_source_core()
- self._fragment_shader = self.fragment_shader_source_core()
- else:
- self._vertex_shader = self.vertex_shader_source()
- self._fragment_shader = self.fragment_shader_source()
-
- self.program.addShaderFromSourceCode(QOpenGLShader.Vertex, self._vertex_shader)
- self.program.addShaderFromSourceCode(QOpenGLShader.Fragment, self._fragment_shader)
- self.program.bindAttributeLocation("vertex", 0)
- self.program.bindAttributeLocation("normal", 1)
- self.program.link()
-
- self.program.bind()
- self._proj_matrix_loc = self.program.uniformLocation("projMatrix")
- self._mv_matrix_loc = self.program.uniformLocation("mvMatrix")
- self._normal_matrix_loc = self.program.uniformLocation("normalMatrix")
- self._light_pos_loc = self.program.uniformLocation("lightPos")
-
- self.vao.create()
- vao_binder = QOpenGLVertexArrayObject.Binder(self.vao)
-
- self._logo_vbo.create()
- self._logo_vbo.bind()
- float_size = ctypes.sizeof(ctypes.c_float)
- self._logo_vbo.allocate(self.logo.const_data(), self.logo.count() * float_size)
-
- self.setup_vertex_attribs()
-
- self.camera.setToIdentity()
- self.camera.translate(0, 0, -1)
-
- self.program.setUniformValue(self._light_pos_loc, QVector3D(0, 0, 70))
- self.program.release()
- vao_binder = None
-
- def setup_vertex_attribs(self):
- self._logo_vbo.bind()
- f = QOpenGLContext.currentContext().functions()
- f.glEnableVertexAttribArray(0)
- f.glEnableVertexAttribArray(1)
- float_size = ctypes.sizeof(ctypes.c_float)
-
- null = VoidPtr(0)
- pointer = VoidPtr(3 * float_size)
- f.glVertexAttribPointer(0, 3, int(GL.GL_FLOAT), int(GL.GL_FALSE), 6 * float_size, null)
- f.glVertexAttribPointer(1, 3, int(GL.GL_FLOAT), int(GL.GL_FALSE), 6 * float_size, pointer)
- self._logo_vbo.release()
-
- def paintGL(self):
- self.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT)
- self.glEnable(GL.GL_DEPTH_TEST)
- self.glEnable(GL.GL_CULL_FACE)
-
- self.world.setToIdentity()
- self.world.rotate(180 - (self._x_rot / 16), 1, 0, 0)
- self.world.rotate(self._y_rot / 16, 0, 1, 0)
- self.world.rotate(self._z_rot / 16, 0, 0, 1)
-
- vao_binder = QOpenGLVertexArrayObject.Binder(self.vao)
- self.program.bind()
- self.program.setUniformValue(self._proj_matrix_loc, self.proj)
- self.program.setUniformValue(self._mv_matrix_loc, self.camera * self.world)
- normal_matrix = self.world.normalMatrix()
- self.program.setUniformValue(self._normal_matrix_loc, normal_matrix)
-
- self.glDrawArrays(GL.GL_TRIANGLES, 0, self.logo.vertex_count())
- self.program.release()
- vao_binder = None
-
- def resizeGL(self, width, height):
- self.proj.setToIdentity()
- self.proj.perspective(45, width / height, 0.01, 100)
-
- def mousePressEvent(self, event):
- self._last_pos = event.position()
-
- def mouseMoveEvent(self, event):
- pos = event.position()
- dx = pos.x() - self._last_pos.x()
- dy = pos.y() - self._last_pos.y()
-
- if event.buttons() & Qt.LeftButton:
- self.set_xrotation(self._x_rot + 8 * dy)
- self.set_yrotation(self._y_rot + 8 * dx)
- elif event.buttons() & Qt.RightButton:
- self.set_xrotation(self._x_rot + 8 * dy)
- self.set_zrotation(self._z_rot + 8 * dx)
-
- self._last_pos = pos
-
-
-if __name__ == '__main__':
- app = QApplication(sys.argv)
- parser = ArgumentParser(description="hellogl2", formatter_class=RawTextHelpFormatter)
- parser.add_argument('--multisample', '-m', action='store_true',
- help='Use Multisampling')
- parser.add_argument('--coreprofile', '-c', action='store_true',
- help='Use Core Profile')
- parser.add_argument('--transparent', '-t', action='store_true',
- help='Transparent Windows')
- options = parser.parse_args()
-
- fmt = QSurfaceFormat()
- fmt.setDepthBufferSize(24)
- if options.multisample:
- fmt.setSamples(4)
- if options.coreprofile:
- fmt.setVersion(3, 2)
- fmt.setProfile(QSurfaceFormat.CoreProfile)
- QSurfaceFormat.setDefaultFormat(fmt)
-
- main_window = Window(options.transparent)
- main_window.resize(main_window.sizeHint())
- main_window.show()
-
- res = app.exec()
- sys.exit(res)
diff --git a/examples/opengl/hellogl2/hellogl2.pyproject b/examples/opengl/hellogl2/hellogl2.pyproject
index 331d835af..d85a139e4 100644
--- a/examples/opengl/hellogl2/hellogl2.pyproject
+++ b/examples/opengl/hellogl2/hellogl2.pyproject
@@ -1,3 +1,3 @@
{
- "files": ["hellogl2.py"]
+ "files": ["main.py", "glwidget.py", "logo.py", "mainwindow.py", "window.py"]
}
diff --git a/examples/opengl/hellogl2/logo.py b/examples/opengl/hellogl2/logo.py
new file mode 100644
index 000000000..c236a1ec9
--- /dev/null
+++ b/examples/opengl/hellogl2/logo.py
@@ -0,0 +1,101 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# Copyright (C) 2013 Riverbank Computing Limited.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import math
+
+from PySide6.QtGui import (QVector3D, QVector3DList)
+
+
+class Logo():
+ def __init__(self):
+ self.m_data = QVector3DList()
+ self.m_data.reserve(5000)
+
+ x1 = +0.06
+ y1 = -0.14
+ x2 = +0.14
+ y2 = -0.06
+ x3 = +0.08
+ y3 = +0.00
+ x4 = +0.30
+ y4 = +0.22
+
+ self.quad(x1, y1, x2, y2, y2, x2, y1, x1)
+ self.quad(x3, y3, x4, y4, y4, x4, y3, x3)
+
+ self.extrude(x1, y1, x2, y2)
+ self.extrude(x2, y2, y2, x2)
+ self.extrude(y2, x2, y1, x1)
+ self.extrude(y1, x1, x1, y1)
+ self.extrude(x3, y3, x4, y4)
+ self.extrude(x4, y4, y4, x4)
+ self.extrude(y4, x4, y3, x3)
+
+ NUM_SECTORS = 100
+
+ for i in range(NUM_SECTORS):
+ angle = (i * 2 * math.pi) / NUM_SECTORS
+ x5 = 0.30 * math.sin(angle)
+ y5 = 0.30 * math.cos(angle)
+ x6 = 0.20 * math.sin(angle)
+ y6 = 0.20 * math.cos(angle)
+
+ angle = ((i + 1) * 2 * math.pi) / NUM_SECTORS
+ x7 = 0.20 * math.sin(angle)
+ y7 = 0.20 * math.cos(angle)
+ x8 = 0.30 * math.sin(angle)
+ y8 = 0.30 * math.cos(angle)
+
+ self.quad(x5, y5, x6, y6, x7, y7, x8, y8)
+
+ self.extrude(x6, y6, x7, y7)
+ self.extrude(x8, y8, x5, y5)
+
+ def const_data(self):
+ return self.m_data.constData()
+
+ def count(self):
+ return len(self.m_data) * 3
+
+ def vertex_count(self):
+ return self.count() / 6
+
+ def quad(self, x1, y1, x2, y2, x3, y3, x4, y4):
+ n = QVector3D.normal(QVector3D(x4 - x1, y4 - y1, 0),
+ QVector3D(x2 - x1, y2 - y1, 0))
+
+ self.add(QVector3D(x1, y1, -0.05), n)
+ self.add(QVector3D(x4, y4, -0.05), n)
+ self.add(QVector3D(x2, y2, -0.05), n)
+
+ self.add(QVector3D(x3, y3, -0.05), n)
+ self.add(QVector3D(x2, y2, -0.05), n)
+ self.add(QVector3D(x4, y4, -0.05), n)
+
+ n = QVector3D.normal(QVector3D(x1 - x4, y1 - y4, 0),
+ QVector3D(x2 - x4, y2 - y4, 0))
+
+ self.add(QVector3D(x4, y4, 0.05), n)
+ self.add(QVector3D(x1, y1, 0.05), n)
+ self.add(QVector3D(x2, y2, 0.05), n)
+
+ self.add(QVector3D(x2, y2, 0.05), n)
+ self.add(QVector3D(x3, y3, 0.05), n)
+ self.add(QVector3D(x4, y4, 0.05), n)
+
+ def extrude(self, x1, y1, x2, y2):
+ n = QVector3D.normal(QVector3D(0, 0, -0.1),
+ QVector3D(x2 - x1, y2 - y1, 0))
+
+ self.add(QVector3D(x1, y1, 0.05), n)
+ self.add(QVector3D(x1, y1, -0.05), n)
+ self.add(QVector3D(x2, y2, 0.05), n)
+
+ self.add(QVector3D(x2, y2, -0.05), n)
+ self.add(QVector3D(x2, y2, 0.05), n)
+ self.add(QVector3D(x1, y1, -0.05), n)
+
+ def add(self, v, n):
+ self.m_data.append(v)
+ self.m_data.append(n)
diff --git a/examples/opengl/hellogl2/main.py b/examples/opengl/hellogl2/main.py
new file mode 100644
index 000000000..c7eb78a82
--- /dev/null
+++ b/examples/opengl/hellogl2/main.py
@@ -0,0 +1,58 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# Copyright (C) 2013 Riverbank Computing Limited.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the opengl/hellogl2 example from Qt v6.x"""
+
+from argparse import ArgumentParser, RawTextHelpFormatter
+import sys
+from PySide6.QtCore import Qt
+from PySide6.QtGui import QSurfaceFormat
+from PySide6.QtWidgets import (QApplication, QMessageBox)
+
+
+try:
+ from mainwindow import MainWindow
+ from glwidget import GLWidget
+except ImportError:
+ app = QApplication(sys.argv)
+ message_box = QMessageBox(QMessageBox.Critical, "OpenGL hellogl",
+ "PyOpenGL must be installed to run this example.",
+ QMessageBox.Close)
+ message_box.setDetailedText("Run:\npip install PyOpenGL PyOpenGL_accelerate")
+ message_box.exec()
+ sys.exit(1)
+
+
+if __name__ == '__main__':
+ app = QApplication(sys.argv)
+ parser = ArgumentParser(description="hellogl2",
+ formatter_class=RawTextHelpFormatter)
+ parser.add_argument('--multisample', '-m', action='store_true',
+ help='Use Multisampling')
+ parser.add_argument('--coreprofile', '-c', action='store_true',
+ help='Use Core Profile')
+ parser.add_argument('--transparent', '-t', action='store_true',
+ help='Transparent Windows')
+ options = parser.parse_args()
+
+ fmt = QSurfaceFormat()
+ fmt.setDepthBufferSize(24)
+ if options.multisample:
+ fmt.setSamples(4)
+ if options.coreprofile:
+ fmt.setVersion(3, 2)
+ fmt.setProfile(QSurfaceFormat.CoreProfile)
+ QSurfaceFormat.setDefaultFormat(fmt)
+
+ GLWidget.set_transparent(options.transparent)
+
+ main_window = MainWindow()
+ if options.transparent:
+ main_window.setAttribute(Qt.WA_TranslucentBackground)
+ main_window.setAttribute(Qt.WA_NoSystemBackground, False)
+
+ main_window.show()
+
+ res = app.exec()
+ sys.exit(res)
diff --git a/examples/opengl/hellogl2/mainwindow.py b/examples/opengl/hellogl2/mainwindow.py
new file mode 100644
index 000000000..69b9b66fe
--- /dev/null
+++ b/examples/opengl/hellogl2/mainwindow.py
@@ -0,0 +1,29 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import Slot, Qt
+from PySide6.QtGui import QKeySequence
+from PySide6.QtWidgets import QMainWindow, QMessageBox
+
+from window import Window
+
+
+class MainWindow(QMainWindow):
+
+ def __init__(self):
+ super().__init__()
+ menuWindow = self.menuBar().addMenu("Window")
+ menuWindow.addAction("Add new", QKeySequence(Qt.CTRL | Qt.Key_N),
+ self.onAddNew)
+ menuWindow.addAction("Quit", QKeySequence(Qt.CTRL | Qt.Key_Q),
+ qApp.closeAllWindows) # noqa: F821
+
+ self.onAddNew()
+
+ @Slot()
+ def onAddNew(self):
+ if not self.centralWidget():
+ self.setCentralWidget(Window(self))
+ else:
+ QMessageBox.information(self, "Cannot Add Window()",
+ "Already occupied. Undock first.")
diff --git a/examples/opengl/hellogl2/window.py b/examples/opengl/hellogl2/window.py
new file mode 100644
index 000000000..ad61d2f97
--- /dev/null
+++ b/examples/opengl/hellogl2/window.py
@@ -0,0 +1,110 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# Copyright (C) 2013 Riverbank Computing Limited.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import Slot, Qt
+from PySide6.QtWidgets import (QHBoxLayout, QMainWindow,
+ QMessageBox, QPushButton, QSlider,
+ QVBoxLayout, QWidget)
+
+from glwidget import GLWidget
+
+
+def _main_window():
+ for t in qApp.topLevelWidgets(): # noqa: F821
+ if isinstance(t, QMainWindow):
+ return t
+ return None
+
+
+class Window(QWidget):
+ instances = [] # Keep references when undocked
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.instances.append(self)
+
+ self._gl_widget = GLWidget()
+
+ self._x_slider = self.create_slider()
+ self._x_slider.valueChanged.connect(self._gl_widget.set_xrotation)
+ self._gl_widget.x_rotation_changed.connect(self._x_slider.setValue)
+
+ self._y_slider = self.create_slider()
+ self._y_slider.valueChanged.connect(self._gl_widget.set_yrotation)
+ self._gl_widget.y_rotation_changed.connect(self._y_slider.setValue)
+
+ self._z_slider = self.create_slider()
+ self._z_slider.valueChanged.connect(self._gl_widget.set_zrotation)
+ self._gl_widget.z_rotation_changed.connect(self._z_slider.setValue)
+
+ mainLayout = QVBoxLayout(self)
+ w = QWidget()
+ container = QHBoxLayout(w)
+ container.addWidget(self._gl_widget)
+ container.addWidget(self._x_slider)
+ container.addWidget(self._y_slider)
+ container.addWidget(self._z_slider)
+
+ mainLayout.addWidget(w)
+ self._dock_btn = QPushButton("Undock")
+ self._dock_btn.clicked.connect(self.dock_undock)
+ mainLayout.addWidget(self._dock_btn)
+
+ self._x_slider.setValue(15 * 16)
+ self._y_slider.setValue(345 * 16)
+ self._z_slider.setValue(0 * 16)
+
+ self.setWindowTitle(self.tr("Hello GL"))
+
+ def create_slider(self):
+ slider = QSlider(Qt.Vertical)
+
+ slider.setRange(0, 360 * 16)
+ slider.setSingleStep(16)
+ slider.setPageStep(15 * 16)
+ slider.setTickInterval(15 * 16)
+ slider.setTickPosition(QSlider.TicksRight)
+ return slider
+
+ def closeEvent(self, event):
+ self.instances.remove(self)
+ event.accept()
+
+ def keyPressEvent(self, event):
+ if self.isWindow() and event.key() == Qt.Key_Escape:
+ self.close()
+ else:
+ super().keyPressEvent(event)
+
+ @Slot()
+ def dock_undock(self):
+ if self.parent():
+ self.undock()
+ else:
+ self.dock()
+
+ def dock(self):
+ mainWindow = _main_window()
+ if not mainWindow or not mainWindow.isVisible():
+ QMessageBox.information(self, "Cannot Dock",
+ "Main window already closed")
+ return
+ if mainWindow.centralWidget():
+ QMessageBox.information(self, "Cannot Dock",
+ "Main window already occupied")
+ return
+
+ self.setAttribute(Qt.WA_DeleteOnClose, False)
+ self._dock_btn.setText("Undock")
+ mainWindow.setCentralWidget(self)
+
+ def undock(self):
+ self.setParent(None)
+ self.setAttribute(Qt.WA_DeleteOnClose)
+ geometry = self.screen().availableGeometry()
+ x = geometry.x() + (geometry.width() - self.width()) / 2
+ y = geometry.y() + (geometry.height() - self.height()) / 2
+ self.move(x, y)
+ self._dock_btn.setText("Dock")
+ self.show()
diff --git a/examples/opengl/textures/textures.py b/examples/opengl/textures/textures.py
index cbefe41d6..87c1164b7 100644
--- a/examples/opengl/textures/textures.py
+++ b/examples/opengl/textures/textures.py
@@ -1,189 +1,170 @@
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-############################################################################
-
-"""PySide6 port of the opengl/textures example from Qt v5.x"""
+"""PySide6 port of the opengl/textures example from Qt v6.x showing the use
+ of legacy OpenGL functions with QOpenGLVersionFunctionsFactory."""
import sys
-from PySide6 import QtCore, QtGui, QtWidgets, QtOpenGL
+from PySide6.QtCore import QPoint, QSize, Qt, QTimer, Signal
+from PySide6.QtGui import QColor, QImage, QSurfaceFormat
+from PySide6.QtWidgets import QApplication, QGridLayout, QMessageBox, QWidget
+from PySide6.QtOpenGL import (QOpenGLTexture, QOpenGLVersionFunctionsFactory,
+ QOpenGLVersionProfile)
+from PySide6.QtOpenGLWidgets import QOpenGLWidget
try:
- from OpenGL.GL import *
+ from OpenGL import GL
except ImportError:
- app = QtWidgets.QApplication(sys.argv)
- messageBox = QtWidgets.QMessageBox(QtWidgets.QMessageBox.Critical, "OpenGL textures",
- "PyOpenGL must be installed to run this example.",
- QtWidgets.QMessageBox.Close)
+ app = QApplication(sys.argv)
+ messageBox = QMessageBox(QMessageBox.Critical, "OpenGL textures",
+ "PyOpenGL must be installed to run this example.",
+ QMessageBox.Close)
messageBox.setDetailedText("Run:\npip install PyOpenGL PyOpenGL_accelerate")
messageBox.exec()
sys.exit(1)
-import textures_rc
+import textures_rc # noqa: F401
-class GLWidget(QtOpenGL.QGLWidget):
+class GLWidget(QOpenGLWidget):
sharedObject = 0
refCount = 0
coords = (
- ( ( +1, -1, -1 ), ( -1, -1, -1 ), ( -1, +1, -1 ), ( +1, +1, -1 ) ),
- ( ( +1, +1, -1 ), ( -1, +1, -1 ), ( -1, +1, +1 ), ( +1, +1, +1 ) ),
- ( ( +1, -1, +1 ), ( +1, -1, -1 ), ( +1, +1, -1 ), ( +1, +1, +1 ) ),
- ( ( -1, -1, -1 ), ( -1, -1, +1 ), ( -1, +1, +1 ), ( -1, +1, -1 ) ),
- ( ( +1, -1, +1 ), ( -1, -1, +1 ), ( -1, -1, -1 ), ( +1, -1, -1 ) ),
- ( ( -1, -1, +1 ), ( +1, -1, +1 ), ( +1, +1, +1 ), ( -1, +1, +1 ) )
+ ((+1, -1, -1), (-1, -1, -1), (-1, +1, -1), (+1, +1, -1)),
+ ((+1, +1, -1), (-1, +1, -1), (-1, +1, +1), (+1, +1, +1)),
+ ((+1, -1, +1), (+1, -1, -1), (+1, +1, -1), (+1, +1, +1)),
+ ((-1, -1, -1), (-1, -1, +1), (-1, +1, +1), (-1, +1, -1)),
+ ((+1, -1, +1), (-1, -1, +1), (-1, -1, -1), (+1, -1, -1)),
+ ((-1, -1, +1), (+1, -1, +1), (+1, +1, +1), (-1, +1, +1))
)
- clicked = QtCore.Signal()
+ clicked = Signal()
- def __init__(self, parent, shareWidget):
- QtOpenGL.QGLWidget.__init__(self, parent, shareWidget)
+ def __init__(self, parent):
+ super().__init__(parent)
- self.clearColor = QtCore.Qt.black
+ self.clearColor = Qt.black
self.xRot = 0
self.yRot = 0
self.zRot = 0
- self.clearColor = QtGui.QColor()
- self.lastPos = QtCore.QPoint()
+ self.clearColor = QColor()
+ self.lastPos = QPoint()
+ self.funcs = None
def freeGLResources(self):
GLWidget.refCount -= 1
if GLWidget.refCount == 0:
self.makeCurrent()
- glDeleteLists(self.__class__.sharedObject, 1)
+ self.funcs.glDeleteLists(self.__class__.sharedObject, 1)
def minimumSizeHint(self):
- return QtCore.QSize(50, 50)
+ return QSize(50, 50)
def sizeHint(self):
- return QtCore.QSize(200, 200)
+ return QSize(200, 200)
def rotateBy(self, xAngle, yAngle, zAngle):
self.xRot = (self.xRot + xAngle) % 5760
self.yRot = (self.yRot + yAngle) % 5760
self.zRot = (self.zRot + zAngle) % 5760
- self.updateGL()
+ self.update()
def setClearColor(self, color):
self.clearColor = color
- self.updateGL()
+ self.update()
def initializeGL(self):
+ profile = QOpenGLVersionProfile()
+ profile.setVersion(3, 2)
+ profile.setProfile(QSurfaceFormat.CompatibilityProfile)
+ self.funcs = QOpenGLVersionFunctionsFactory.get(profile)
+ self.funcs.initializeOpenGLFunctions()
+
if not GLWidget.sharedObject:
self.textures = []
for i in range(6):
- self.textures.append(self.bindTexture(QtGui.QPixmap(f":/images/side{i + 1}.png")))
+ image = QImage(f":/images/side{i + 1}.png")
+ self.textures.append(QOpenGLTexture(image))
GLWidget.sharedObject = self.makeObject()
GLWidget.refCount += 1
- glEnable(GL_DEPTH_TEST)
- glEnable(GL_CULL_FACE)
- glEnable(GL_TEXTURE_2D)
+ self.funcs.glEnable(GL.GL_DEPTH_TEST)
+ self.funcs.glEnable(GL.GL_CULL_FACE)
+ self.funcs.glEnable(GL.GL_TEXTURE_2D)
def paintGL(self):
- self.qglClearColor(self.clearColor)
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
- glLoadIdentity()
- glTranslated(0.0, 0.0, -10.0)
- glRotated(self.xRot / 16.0, 1.0, 0.0, 0.0)
- glRotated(self.yRot / 16.0, 0.0, 1.0, 0.0)
- glRotated(self.zRot / 16.0, 0.0, 0.0, 1.0)
- glCallList(GLWidget.sharedObject)
+ self.funcs.glClearColor(self.clearColor.red(), self.clearColor.green(),
+ self.clearColor.blue(), 1)
+ self.funcs.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT)
+ self.funcs.glLoadIdentity()
+ self.funcs.glTranslated(0.0, 0.0, -10.0)
+ self.funcs.glRotated(self.xRot / 16.0, 1.0, 0.0, 0.0)
+ self.funcs.glRotated(self.yRot / 16.0, 0.0, 1.0, 0.0)
+ self.funcs.glRotated(self.zRot / 16.0, 0.0, 0.0, 1.0)
+ self.funcs.glCallList(GLWidget.sharedObject)
def resizeGL(self, width, height):
side = min(width, height)
- glViewport(int((width - side) / 2), int((height - side) / 2), side, side)
+ x = int((width - side) / 2)
+ y = int((height - side) / 2)
+ self.funcs.glViewport(x, y, side, side)
- glMatrixMode(GL_PROJECTION)
- glLoadIdentity()
- glOrtho(-0.5, +0.5, +0.5, -0.5, 4.0, 15.0)
- glMatrixMode(GL_MODELVIEW)
+ self.funcs.glMatrixMode(GL.GL_PROJECTION)
+ self.funcs.glLoadIdentity()
+ self.funcs.glOrtho(-0.5, +0.5, +0.5, -0.5, 4.0, 15.0)
+ self.funcs.glMatrixMode(GL.GL_MODELVIEW)
def mousePressEvent(self, event):
- self.lastPos = QtCore.QPoint(event.pos())
+ self.lastPos = event.position().toPoint()
def mouseMoveEvent(self, event):
- dx = event.x() - self.lastPos.x()
- dy = event.y() - self.lastPos.y()
+ pos = event.position().toPoint()
+ dx = pos.x() - self.lastPos.x()
+ dy = pos.y() - self.lastPos.y()
- if event.buttons() & QtCore.Qt.LeftButton:
+ if event.buttons() & Qt.LeftButton:
self.rotateBy(8 * dy, 8 * dx, 0)
- elif event.buttons() & QtCore.Qt.RightButton:
+ elif event.buttons() & Qt.RightButton:
self.rotateBy(8 * dy, 0, 8 * dx)
- self.lastPos = QtCore.QPoint(event.pos())
+ self.lastPos = pos
def mouseReleaseEvent(self, event):
self.clicked.emit()
def makeObject(self):
- dlist = glGenLists(1)
- glNewList(dlist, GL_COMPILE)
+ dlist = self.funcs.glGenLists(1)
+ self.funcs.glNewList(dlist, GL.GL_COMPILE)
for i in range(6):
- glBindTexture(GL_TEXTURE_2D, self.textures[i])
+ self.textures[i].bind()
- glBegin(GL_QUADS)
+ self.funcs.glBegin(GL.GL_QUADS)
for j in range(4):
tx = {False: 0, True: 1}[j == 0 or j == 3]
ty = {False: 0, True: 1}[j == 0 or j == 1]
- glTexCoord2d(tx, ty)
- glVertex3d(0.2 * GLWidget.coords[i][j][0],
- 0.2 * GLWidget.coords[i][j][1],
- 0.2 * GLWidget.coords[i][j][2])
+ self.funcs.glTexCoord2d(tx, ty)
+ x = 0.2 * GLWidget.coords[i][j][0]
+ y = 0.2 * GLWidget.coords[i][j][1]
+ z = 0.2 * GLWidget.coords[i][j][2]
+ self.funcs.glVertex3d(x, y, z)
- glEnd()
+ self.funcs.glEnd()
- glEndList()
+ self.funcs.glEndList()
return dlist
-class Window(QtWidgets.QWidget):
+class Window(QWidget):
NumRows = 2
NumColumns = 3
def __init__(self, parent=None):
- QtWidgets.QWidget.__init__(self, parent)
+ QWidget.__init__(self, parent)
- mainLayout = QtWidgets.QGridLayout()
+ mainLayout = QGridLayout(self)
self.glWidgets = []
for i in range(Window.NumRows):
@@ -191,26 +172,25 @@ class Window(QtWidgets.QWidget):
for j in range(Window.NumColumns):
self.glWidgets[i].append(None)
+ hue_div = (Window.NumRows * Window.NumColumns - 1)
for i in range(Window.NumRows):
for j in range(Window.NumColumns):
- clearColor = QtGui.QColor()
- clearColor.setHsv(((i * Window.NumColumns) + j) * 255
- / (Window.NumRows * Window.NumColumns - 1),
- 255, 63)
-
- self.glWidgets[i][j] = GLWidget(self, self.glWidgets[0][0])
- self.glWidgets[i][j].setClearColor(clearColor)
- self.glWidgets[i][j].rotateBy(+42 * 16, +42 * 16, -21 * 16)
- mainLayout.addWidget(self.glWidgets[i][j], i, j)
+ clearColor = QColor()
+ hue = ((i * Window.NumColumns) + j) * 255 / hue_div
+ clearColor.setHsv(hue, 255, 63)
- self.glWidgets[i][j].clicked.connect(self.setCurrentGlWidget)
- qApp.lastWindowClosed.connect(self.glWidgets[i][j].freeGLResources)
+ glw = GLWidget(self)
+ self.glWidgets[i][j] = glw
+ glw.setClearColor(clearColor)
+ glw.rotateBy(+42 * 16, +42 * 16, -21 * 16)
+ mainLayout.addWidget(glw, i, j)
- self.setLayout(mainLayout)
+ glw.clicked.connect(self.setCurrentGlWidget)
+ qApp.lastWindowClosed.connect(glw.freeGLResources) # noqa: F821
self.currentGlWidget = self.glWidgets[0][0]
- timer = QtCore.QTimer(self)
+ timer = QTimer(self)
timer.timeout.connect(self.rotateOneStep)
timer.start(20)
@@ -225,7 +205,7 @@ class Window(QtWidgets.QWidget):
if __name__ == "__main__":
- app = QtWidgets.QApplication(sys.argv)
+ app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec())
diff --git a/examples/opengl/textures/textures.pyproject b/examples/opengl/textures/textures.pyproject
index 05416190a..1ad304324 100644
--- a/examples/opengl/textures/textures.pyproject
+++ b/examples/opengl/textures/textures.pyproject
@@ -1,3 +1,3 @@
{
- "files": ["textures.qrc", "textures_rc.py", "textures.py"]
+ "files": ["textures.qrc", "textures.py"]
}
diff --git a/examples/opengl/textures/textures_rc.py b/examples/opengl/textures/textures_rc.py
index e68b63d69..a0676a335 100644
--- a/examples/opengl/textures/textures_rc.py
+++ b/examples/opengl/textures/textures_rc.py
@@ -1,6 +1,6 @@
# Resource object code (Python 3)
# Created by: object code
-# Created by: The Resource Compiler for Qt version 5.14.0
+# Created by: The Resource Compiler for Qt version 6.2.2
# WARNING! All changes made in this file will be lost!
from PySide6 import QtCore
@@ -285,267 +285,6 @@ F\xd3\xfc\x15\x03\xac\x96\x07k1\xbdh?]\x19'\
\x80\x00\x04 \x00*\x00\xda\x22\x00\x01\x08p\x07\x80\xbb\
\x08@\x00\x02\x10\x00z\xfd\x06\x0eL\xb1gp\xf4v\
\x0b\x00\x00\x00\x00IEND\xaeB`\x82\
-\x00\x00\x09\x13\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x01\x00\x00\x00\x01\x00\x08\x03\x00\x00\x00k\xacXT\
-\x00\x00\x00\xedPLTEx\x00\xf8\x80\x00\xf8\x80\x04\
-\xf8\x80\x08\xf8\x80\x0c\xf8\x88\x10\xf8\x88\x14\xf8\x88\x18\xf8\
-\x88\x1c\xf8\x88 \xf8\x90 \xf8\x90$\xf8\x90(\xf8\x90\
-,\xf8\x900\xf8\x980\xf8\x984\xf8\x988\xf8\x98<\
-\xf8\x98@\xf8\xa0@\xf8\xa0D\xf8\xa0H\xf8\xa0L\xf8\
-\xa0P\xf8\xa8P\xf8\xa8T\xf8\xa8X\xf8\xa8\x5c\xf8\xa8\
-`\xf8\xb0`\xf8\xb0d\xf8\xb0h\xf8\xb0l\xf8\xb0p\
-\xf8\xb8p\xf8\xb8t\xf8\xb8x\xf8\xb8|\xf8\xb8\x80\xf8\
-\xc0\x80\xf8\xc0\x84\xf8\xc0\x88\xf8\xc0\x8c\xf8\xc0\x90\xf8\xc8\
-\x90\xf8\xc8\x94\xf8\xc8\x98\xf8\xc8\x9c\xf8\xc8\xa0\xf8\xd0\xa0\
-\xf8\xd0\xa4\xf8\xd0\xa8\xf8\xd0\xac\xf8\xd0\xb0\xf8\xd8\xb0\xf8\
-\xd8\xb4\xf8\xd8\xb8\xf8\xd8\xbc\xf8\xd8\xc0\xf8\xe0\xc0\xf8\xe0\
-\xc4\xf8\xe0\xc8\xf8\xe0\xcc\xf8\xe0\xd0\xf8\xe8\xd0\xf8\xe8\xd4\
-\xf8\xe8\xd8\xf8\xe8\xdc\xf8\xe8\xe0\xf8\xf0\xe0\xf8\xf0\xe4\xf8\
-\xf0\xe8\xf8\xf0\xec\xf8\xf0\xf0\xf8\xf8\xf0\xf8\xf8\xf4\xf8\xf8\
-\xf8\xf8\xf8\xfc\xf8\x09\xd19\xc7\x00\x00\x00\x09pHY\
-s\x00\x00\x00H\x00\x00\x00H\x00F\xc9k>\x00\x00\
-\x07\xccIDATx\xda\xed\xddiC\xdaL\x10\x00\
-\xe0\x1cP\x90\xa3(-R\x81\xaax\x03\xe5\xa8\x82\x22\
-E\xa8\x81\x0a\x91d\xfe\xff\xcf\xe9\x87\xbe\xafr\xe4\xce\
-&f6\xb3\xdf#\xd9G\xc81;3+@\xcc\x87\
-@\x00\x04@\x00\x04@\x00 \xc4p\x10\x00\x01\x10\xc0\
-&@\xac.}\x04@\x00\x04@\x00\x04@\x00\x04@\
-\x00\x04@\x00\x04@\x00\x04@\x00\x04@\x00\x04@\x00\
-\x04@\x00\x04@\x00\x04@\x00\x04@\x00\x04@\x00\x04\
-@\x00\x04@\x00\x04@\x00\x04@\x00\x04@\x00\xac\x87\
-\xae\x0cZg\x95/\xf9tR\x96\x04)\xf1)\x9d-\
-V\xce[}E\x8f\x03\x80\xd2=\xfe,\x99\xa4,J\
-\x85Zg\xc63\xc0\xea\xae\x96\xb2M\xdcLUo_\
-\xb9\x04\xd0\xee\x0e%\x87\xc9\xab\xd2\xb7\xbe\xc6\x1b\xc0\xe4\
-Xv\x95\xc0\x9b8\x9fs\x04\xa0\xff,\xb8\xcfa\x16\
-+\x13N\x00^\x1b\x9f<\xe6qW\xe7\x1c\x00\xa8W\
-\x09\xef\x99\xec\xd2\xf9\x0a9\xc0\xab\x9f\xe9\x0b\x82 d\
-\xc6\x98\x01\xb4V\xd2w9\x83x\xa6\xa1\x05\xb8K3\
-\xa9\xe88X\xe2\x04P\xf7Y\xd5\xb4\xa4\x9fQ\x02<\
-\xb0\xab\xea\x91\xc7\x18\x01\xae\x18\xd65%\x9e\x10\x02\x1c\
-\xb2\xac\xecJL\xf1\x01$Y\x02\x08\xa9%6\x809\
-\xe3\xea\xbe\xa2\x8e\x0c\xe0\x8eu}\xe3\x052\x80s\xd6\
-\x00\xe2\x04\x17\xc0\x01\xf3\x12\xd7}T\x00\xba\xcc\x1c@\
-\xe8`\x02\xf8\x1d@\x95sJG\x04\xd0\x0d\xa2\xce\xfb\
-\x16\x11\xc0I\x10\x00yD\x00\xf9@J\xfd'h\x00\
-4\xd1\xf4n\x96\xab\x5cw\x87OSE\x99\x8e\x07\x9d\
-\xcb\xf2\x9e\x1b\x80K4\x00c\x93\x17\xdb\xb3\xe1N\x8c\
-k\xd9?q\x1c3\xcc\xa1\x01h\x19\x86yGf\xf7\
-\xcca\xd9\xa1\xc0\x1c\x0b@\xd5 \xc4k\xb9\xe8\xa5T\
-\x1c\x01\x0c\xb0\x00dv\xbe\xbc\xb61\x8dQ\xd6\x01\xc0\
-\x15\x12\x80\xe5\xf6\x89\x9f8\x88l\xaej\xf6\x00e$\
-\x00\xc3\xad_\x7f\xcf\xd9a\x0d[\x80\xcfH\x00n6\
-\x977\x86N\x8fk\xdb.\x13 \x01\xd8\x08\x87\x89\xf7\
-\xce\x0f\xbc\xb0\x01H\x22\x01\xd8\xb8\xb1\xf7\xdc\x1c\xf9\xc5\
-&(\x80\x03\xe0\xcf\xc6\xf5\xcf]$\xcdz)M\xc6\
-\x01\xd0_\x7f\x81\xd1\xfc\x5c>\x90\xfe\x04\xd6~\xc9\xa2\
-\xdbx\xf6\xca2\x9a\x9c\xc6\x01P\xf4\x13\xca\xb4\x0c&\
-\x16q\x00\xbc\x87\xc3\x92\xee\xf3\x9d\x9e-S&P\x00\
-\xacM\xe1\x07\x8b\xc7\xe8\xb5q\x83\x02\xa0\xe7/\x8ag\
-\x15L\x1a\xa2\x008};\xdf\x06\xebp\xe2\x12\x05\xc0\
-[J\x98\xacz9\xfc\x97\xf9\xfc\x0b(\x02\x22\xda[\
->\xe4wO\xc7\xbf\x84\xf76\x1c\x0c\xc0\xd3\xdb\xf9z\
-\xcbkP\xcd\x01~\xa3\x00h\xfb|u\xd3C\x5c\x1c\
-\x0b\x04\xa0\xeas=W3\x05\xe8\xe1\x00\xc8\xfa\x8c\xe2\
-/M\x9f\x83\x91,\x8d\xfd\xec\xfd\x1b?=\x1e?\xe3\
-bq\x94]<\xed=\xae\xaa\xc7\x04\xc0,.\xf6\x0b\
-b\x02pl<\xff\x13\x88\x0b\x80\xf1\xcbPN\x8b\x0b\
-\x80qz\x99\x1cL\xbal\x14\x01\x9a\x86\xc1\xd0\x07\x88\
-\x0d@\xce\x08\xe0\x07\xc4\x06`d4\xff\x06\xc4\x07\xa0\
-\x18B\x1c(\xca\x00\x06I\xf6b\x07\xe2\x03\xf0\xba[\
-d\x22\x0f F\x00\xbb+\xe4{S\x88\x11\xc0nf\
-MI\x85\x18\x01\x0c\xb6s\xcb\xa4V\xc0\x9f\x18-\x80\
-\xbb\xed\xf9\xe7~C\x9c\x00\x1a[\xf3\x97\xae\x83o\xa8\
-\x10!\x80\xe5v\xa6\x5cQ\x09\xe1S\xa3\x03\xd0\xdbZ\
-\x14N\xdf\x85\xf2\xb1Q\x01\x18l\xa5\x16\xcbW\xdc5\
-P\xb0\xfa\xf2\xb7\xb6\xde\x7f\xa4\xfa2\xac\xcf\xfex\x00\
-\xa5U\x92vj\xe6\x07S\x95S\x00u\xf9\xdfX\xcc\
-\x95\xa7A\xab^4\xcd\x08J\xee\xd7\x1a\xc3\x05o\x00\
-\xaa\xe8\xb6l\xba\xda}\xe1\x09`\xe0\xa5H\xa2\xd0\x5c\
-p\x03\xe0\xb1\x8eF\xac<q\x02\xb0'x\x1d\xa5\x09\
-\x0f\x003?\xe5B\xd5\x17\xfc\x00\x1d\x7f\x15\xf4=\xf4\
-\x00e\xc1\xdf8Z\xe1\x06\xd0}v\xd4\x11\x84\xac\x82\
-\x1a`\xec\xbfn0\xf9\x84\x19\x80ES\x11\xf9\x111\
-\x00\x93\xb6:\xf2\x08-\x80\xeb\xe7`\x93\x9b\x81\x82\x15\
-\xa0\xcf\xa8~8\xa3\x22\x05`VO^F\x0a\x90f\
-\x05 tQ\x02\xcc\x98\xcd_H,0\x02l\xa7>\
-\x89\x92w\x81\x1aF\x80\x7f\xa9O\x99\xf2E\xe7a2\
-W5\x00\x00m9\x1b\xf5\xae\xca)\xf7\x02S\x84\x00\
-\xfae\xf1\xfa\xd1\xb8\x80fq[q\xf9\x94\x5c\xe1*\
-*\x0c\x00\xa0\xdf\x1f\xbayL\x10\xe7\xbc\x01\x00\xc0\xfc\
-\xd8\x05\xc1%\x87\x00\x00\xb3#\xe7-\x85\xb8\x04\x00\x18\
-8\xee&2\xe6\x13\x00\x96\xa5p{\xcbE/IJ\
-\xaf;\x03\xf8\xcc+\x80I\xa6\xe8\xeeP\xb9\x05\xb0\xa9\
-\x1f\xff\x7f\x8c\xf8\x05X+\xbc\xb4\x18-\x8e\x01t'\
-\xcd\x18O9\x06\x80\x85\x83'\xe3\x12\xcf\x00N\x96P\
-\xf2\x5c\x038\x08\xa0\xa6\xf8\x06\x18\xd9GE\xf8\x06\xb0\
-\xff\x0aH\x9c\x03\xd8\xe6R\x88\x9c\x03\xe8v\xad\xc9\x93\
-\x9c\x03\xd8F\xd13\xbc\x03<\xda\xa5\x0e\xf1\x0e\xb0\xb2\
-\x89\x0f}\xe5\x1d\xc0\xee>p\xc4=@=\xc6\xef\x02\
-\x00`\xdb\x5c\xb1\xc3=\xc0\xd0\x1a\xe0\x89{\x00\xc5\xfa\
-9H\xe3\x1e`\x11F\x8f\xe9(\x03\xbc\x0a!\xb4\x95\
-\x8b2\x80n\x09\xd0\xe6\x1f@\xb3\x04x\x89,\x80\xfa\
-\xc0\xa8\xd6}i5\x7fV=\xa5\x18\x03\xa8\xf7\xe7\x05\
-\x91U\xd3?\xcb\x9d\x9a\x1aQ\x04\xb8\xcc\x8b,\xff=\
-\x13+\x80Y\x14\x01\xde[\x1f0I\xe7\xec\x87\xb1\xd1\
-\x02S\x80\xb3\xb7\xf3;`qn\x8d\xe0\xef\x01\x8c\x01\
-\xd6v\x17c\xd1\xf3\xe5\xbbE4H\x8b$\x80\xc26\
-h\x9f\x0d\xa3\xb1$\xdb\xbb\xc0\xda\xeeZ\xfe\xb7D\xb2\
-\xb8\x0bJQ\xcd\x13\x5c[\xd2K\xfb\xfe\x92Z\x84\x85\
-\x19v\x15c\x0bp\xca\xf2[j\xbe\xdf\x864\x8f*\
-\xc0zC`\xf9\x8f\xcf\x07\xe1D(\xade\xd9\x02L\
-\x18\xe6t\x9b\xff\x02\xd2Zd\x016\xf7\xd7\xf2\xd7\x01\
-\xe1K8[\x0d1~\x17\xd8\xb8s%\xfd4\x01\x98\
-\x06\x9c\x17\x10\x10\xc0\xe6nQ\x87\xc0\xea/\xad/\x0a\
-\xcf\xa2\x0cp\xbdy\xb2M\xcf\x7f\xc8\xbc\xc2\xae\x0fQ\
-\x06\xd8\xbar\x89\x9e3\xb9\x0a\xc1\xae\x06\x04\x060c\
-T\xe1e\x9a*X\xd0\xa2\x0d\xa0oW\x81\xecy\x8a\
-\x5cM\xcc\x8aI\x12\xacw\xdbc\x1e\x12\xdb\xd9h3\
-\xeb\xe1\xb1]5\xdbcCb\xbd\xbf\x04{\x80\xddm\
-\x06\xb3\xae\x9f\x085\xb3,A1\x80\xdeJ\xac\x01\x0c\
-\x82\x18)\x97\xfdp\xf5r\x88\xad\xc5\x99\x03\x18=\xc0\
-&\xee\xdd\xfc\x85U)\xe88h\xa0\x00\xc6\xc5\x81u\
-\xe7\xd7\xee\xc5~\xc0\x05\x02\x01\x03\x80\xf1\xf5;\xeb\xb4\
-/\xfa\xd0\xb4b\xa4\x098\x00\xcc\xf6[\xae:\xb9\x16\
-\xae\xceLC\x00A\xf5\x96c\x0eP5\x9dB\xdd\xf6\
-\x91\xe0\xd6\xb4\x8221\x02,\x00\x16\xb1l\xa9j\x95\
-\xd3\xa0\xf7r\xe6\x11\x80g@\x03`\x9d\xe0\x99\xbd1\
-y6\x9e^X\xd4\xcf\x1e\x06\xd8\x5c\x8f9\x80m\x8d\
-x\xe6\xe4v\xeb\x85v\xd1\xaf[\xed8,\xfd\x00@\
-\x04\x00Nj\xc2\xe5B\xe5\xac\xd1\xe9v\xdb\x8d\xcb\xea\
-\x81M\xa5`6\xd0\xbe\xca\x01\x00\xe4\x05\xa6\xe3x\x05\
-\xc8\x00\xaa,\xa7\x9f\x1f\x03`\x03h\xb0\x9b~\xa2\x8d\
-\xb1\xaf\xf0\x03\xb3\xf9\xd7\xc2\xe8\xac\xca\x1e`\xceh\xfa\
-GS\x00\x94\x00\xeb+\xa4\x9e\x87X}\x06\xc0\x0a\xe0\
-\xbfa\x96X\x9b\x01\xe0\x05\xf0\xdb/)\xdb\x5c\x00`\
-\x06\x80\xc7o\xde\x9b\x86\xc9\xdf\xc7\x10\xea\x08&Qr\
-q\x93\xf34\xfbro\x05\xc0\x03\x00\x00L/2.\
-[\xa4\xd5\x1f5\x08\x7f\x04\x99*\xab\xb4J\xce\xee\x08\
-b\xae\xd6V\xe0cF\xc0\xb9\xc2\xfa\xb4]\xcd[)\
-\xc8\xd9Js\xb4\x82\x8f\x1b\xa1$K\xcf\x87\xdd\xab\xe3\
-\xc3b>\x9dL\xc8\x92 %R\x99\xfc\xfe\xd7\xf2i\
-\xb3?Y\xc0G\x8f(g\x8b\x13\x00\x01\x10\x00\x01\x10\
-\x00\x01\x10\x00\x01\x10\x00\x01\x10\x00\x01\x10\x00\x01\x10\x00\
-\x01\x10\x00\x01\x10\x00\x01\x10\x00\x01\x10\x00\x01\x10\x00\x01\
-\x10\x00\x01\x10\x00\x01\x10@\x80\x00q\x1b\x04@\x00\x04\
-\xf0\x0e\x10\xdfA\x00\x04@\x00\x04\x10\xeb\xf1\x17\xe9\x89\
-Gh\xda\x1b|\x00\x00\x00\x00\x00IEND\xaeB\
-`\x82\
-\x00\x00\x06\xe8\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x01\x00\x00\x00\x01\x00\x08\x03\x00\x00\x00k\xacXT\
-\x00\x00\x00\x8aPLTE\x00\xfcx\x00\xfc\x80\x08\xfc\
-\x80\x10\xfc\x80\x10\xfc\x88\x18\xfc\x88 \xfc\x88 \xfc\x90\
-(\xfc\x900\xfc\x900\xfc\x988\xfc\x98@\xfc\x98@\
-\xfc\xa0H\xfc\xa0P\xfc\xa0P\xfc\xa8X\xfc\xa8`\xfc\
-\xa8`\xfc\xb0h\xfc\xb0p\xfc\xb0p\xfc\xb8x\xfc\xb8\
-\x80\xfc\xb8\x80\xfc\xc0\x88\xfc\xc0\x90\xfc\xc0\x90\xfc\xc8\x98\
-\xfc\xc8\xa0\xfc\xd0\xa8\xfc\xd0\xb0\xfc\xd0\xb0\xfc\xd8\xb8\xfc\
-\xd8\xc0\xfc\xe0\xc8\xfc\xe0\xd0\xfc\xe0\xd0\xfc\xe8\xd8\xfc\xe8\
-\xe0\xfc\xe8\xe0\xfc\xf0\xe8\xfc\xf0\xf0\xfc\xf0\xf0\xfc\xf8\xf8\
-\xfc\xf8`;^\x10\x00\x00\x00\x09pHYs\x00\x00\
-\x00H\x00\x00\x00H\x00F\xc9k>\x00\x00\x06\x04I\
-DATx\xda\xed\xddaw\xa28\x14\x06`Ba\
-`\xa4\xba\xd0vtuQ*2Pb\xf8\xff\x7fo\
-;\x9d=g\xdb\x01\x14\x85$7\xe4\xcdw\xcf\xe9}\
-*\xe1\xe6\xe6&:\x8d\xe5\xc3\x01\x00\x00\x00\x00\x00\x00\
-4\x8e\x85\x03\x00\x00\x00\xc0W\x00\xab\xa6>\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00&\x1eU\x9e\xae\x93(\xf4]\x971\xd7\xf3\x830\
-J\xd6iV\x08\x1b\x00\xc4q\xf3\xe8\xf6u,\x06\xf1\
-\xf6\xc8\xe7\x0cP\xed\x1e\xd9\xd5\xbe\xcdp\x9d\x8bY\x02\
-\xf0\x7f\x16C{W\xd9\xea \xe6\x06P$\xec\xa6\xfe\
-]7\xc9\xe7\x04p\x8c\xee\xe8a\x0eR1\x13\x80\xe3\
-\xe2\xce6no\xcbg\x00PD#:\xd9\xdd\x9d\xe9\
-\x00u2\xb2\x99?8\x1a\x0d\x90\xba\xe3\xcf3,k\
-c\x01\xca\xc5$':\x1e2C\x016l\xaaC-\
-O\xc2@\x80\x89\xfe\xfd\xff\xcd\x04\x95q\x00S<\xfd\
-\x9f\xdf\x88\x85Y\x00<\x9e\xfah\x97{4\x0a\xe0\xdb\
-\xf4\x87\xdb\xd8\xc1 \x00.\xe3x\x1f\xcb\xcd\x01(\xa4\
-\x1cptO\xc6\x00\x1c\xe5\x1c\xf1\xf4*S\x00RI\
-\x87\x5c\xbf\x0bC\x006\xb2\x8e\xf9\xbe\x18\x02\x90\xc8\x02\
-p23\x00\x1e\xa5\x01x\xdc\x08\x80@\xdeY\xf7\x17\
-#\x00\x98<\x00V\x1a\x00\xc0\x1d\x89ci\x00\xc0\x80\
-<\x88\xb9w\x7fK\x0a\xfa\x00\x97\xf2 o\xb5\xcd\x8a\
-\x8f\x99L\xf0\x22\xdb\xae\xbc\x9b\x01\x12\xfa\x00\xbdy\xd0\
-b\xdb~\x82\xcbMx\xe3,\xc0\xc9\x03t\xe7A\xee\
-\xba/\x93=\xc57=\x0f\x7f\x93\x07\xe8\xca\x83\xbc\xdd\
-\xa54\xb6\x5c\xdeR\x1e\x22\x0f\xd0\xde\x09`?\xceW\
->\x93\xdd0\x19T\xd4\x01ZyP8`\xe6\xae\x87\
-\x7f\x09v\xd4\x01\xfe|\xa2\xe3a\x8b\xb8\xe7\xa1\x00\x8f\
-\xc4\x01\xfe\xcc\x83\xd6C?\xb8\x1e\xfa\x1e \x0eP\xdc\
-\x19\xff\xf0U\xe4O\xda\x00\xaf_\xfe\xd8\xbf\xc6M\x9f\
-\x9d\xe3@\x1b\xe0K\x1e\xe4\xdf\x94\xb6\xd4\xc3v\x13\xd6\
-\xb4\x01\xbe<\xca\xfb\xdb>{\x18\x04\xb0\xa2\x0d\xf0\xf9\
-I\xf6\xc7\xe7\x10])5m\x80hL\xfd\xe24\x04\
- \xa4\x0d\xf09\x0f\xba}3cH>\xe4\xd3\x06\xf8\
-\x94\x07\xb1\xdb\xeb\xd8C\xf6\x14\x5c\xd2\x00|d\xf9\xc6\
-W\x99\x09\xc9\x00(Ff\xed/\xa6\x7f\x03^G\xa6\
-l\xf9\x80\xe28i\x80t\xec\x1f\xca\x14V\x04d\x00\
-\xac\xc7\x96\xef\xae\xa7\x02\x11i\x80dl\xce~}Q\
-\x98\x90\x06\xf8\xf4\x0f\xbc\xaf\xc3oo\xf8Z \x18\x9b\
-\xb0\xe5\x86\xaf\x06\xd9\xd8\x7fT\xa9poD\x02\x00\x1f\
-\x93\x07\xff^\x13\x9b]\x11*\xc6\xe4\xc1\x1fC\xa8{\
-\x09\xc8\x00\xc8\xc6oc^\x03\xd8\x90\x06H\xc7W\xaf\
-\xaf\x01\x1ci\x03\x04\xee\xc8\xa9\xea|m% H\x03\
-|Lc?\xf3C\xba\xbd\xfb\xd3\xca\x0abD\x8f\xce\
-VW\x00\xf6s\x078\x19\xbf=>rd\x97\x01\xe2\
-f\xee\x00;e\xef\x00\xa2\x00/\x8a\x0a\xa2d\x01.\
-\xd7\x03\xb6\xf3\x07\xb8\xd8*\xe1\xf2\xd9\x03\xd43\xe8\x14\
-\x95\xf7\x12`o\xf3\x07\xb88\x07>7\xf3\x07\xb8t\
-\xde\x90U\xf3\x07\xe0l\x06\x07&\xc6\x8c\xbd\xbaW\x00\
-M\x80XM\x7f\x1cY\x00\xe1\xaah\x0b \x0cp\xa9\
-G\xe6d\x03\xc0JQ\x9f<U\x80\x0b\xef\x00\x9f\xdb\
-\x00\xb0U\xb4\x0c&\x0b\xd0\xdf\x1e\xf2\xd4\xd8\x00\xd0\xbf\
-\x0e\x08\xceV\x00\xf4\x96\x02\x98a7H\xdc9r\x85\
-)\x10I\x80H\xc5V\x00a\x80\xdezx(\xec\x00\
-\xe8\xfb\x02\xb8Uc\x05@\xdf+\x80I\xbcN\x8c\x14\
-@\xdf\x99\xf3\xb4\xb1\x03`'\xbd#\x8a6@\xdfa\
-\x91\xb8\xb1\x04\xa0g\x19\xb8\x14\x96\x00\xf4\xcc\x80\x0b\xc9\
-\xf7\x8a\x92\x01\xe0\xdd\xab\xa0P\xf6\xa5\xa2d\x00\x12=\
-\xf1\x93\x01\xc84\xc5O\x05\xa0\xf64\xc5O\x05\xa0\xf3\
-\xde\xa1\x85\x8a{\xd6i\x00t\xde8\x11\x9d\x1b[\x00\
-r\xa6\xfe\xfdO\x09\xa0s\x02X)\xba^\x9e\x00\x80\
-X(\xcf\x7fi\x01$\x8a\xb6@\xa8\x02\xecTl\x82\
-\x13\x06\xc8\x98\xe2\xf5/1\x80\xc2\x95z\x1a\x80<@\
-\xe5\xc9\xee\x03\xa4\x0d\xc0\x03\xb5\xf5/j\x00\xe7\xf6\x0b\
-\x90\xed\x1b{\x00D\xa4\xe8\xfal\xaa\x00\xed\x1a\x18\xcb\
-\x1a\x8b\x00bU\x17\xc8\x13\x05\xe8\x88?o,\x02\x88\
-\x95\x5c\x9dN\x17 V\xf6\x13\x124\x01\xda\xf3\x9fW\
-6\xf6\x00\x88\xf6UA~\xd5\xd8\x03\xd0\x11\x7f\xa0+\
-~\x1d\x00\xe7v\xfe\x13\xd6\x8d=\x00|\xa1\xa5\xfcM\
-\x06\x80\x87z\xca\xdfT\x00\xeav\xfc\x91h\xec\x01\xa8\
-\x03]\xe5o\x1a\x00\xd57m\xe5o\x12\x00\x95\xaf\xaf\
-\xfcM\x01\xa0\xf45\x96\xbf\x09\x00\x14\x9e\xce\xf2\xb7~\
-\x80\xe2Ak\xf9[;\xc0\xc9\xd5[\xfe\xd6\x0d\x90\xbb\
-\xca\xfa\xbfI\x02\x1c]\xdd\xe5o\xbd\x00\xafL{\xf9\
-[+@{\xffO}\xf9['\xc0\x81\x11(\x7fk\
-\x04\xd83\x0a\xe5o}\x00)\x8d\xf2\xb76\x80\x1d\x91\
-\xf2\xb7.\x80-\x95\xf2\xb7&\x80v\x03\xa0?E\xf9\
-[pC\x00~\x8c:\xfe$\xf8[Y\x9c\xf2\xec\xb0\
-O\xb7\x9b\xf5K\x12\xaf\x96Q\x18\xf8\x0f\xec\xfe\xdbJ\
-\x15\x03t]\x07S\xb7\xc3\xac\xab\xf70_\xdf\xc3\xdc\
-\xbd\x87\xf9\xfc+\xcc\xef\x81\xef\xb9j\xae\x93\x92\x09\xf0\
-\xd4y\x0bJ\xba\xdb\xbe\x87\x99\xbc\x87\xb9\xb8\x1af\xff\
-H\x0d\x00\x90\xf7\xcb\xb3S\xde\xac,\x0f \x96\x19?\
-\xfd9@\xac\xa4\xc6?\xddm\x22\x92\x00\xc4Rn\xfc\
-NI\x1b@D\x92\xe3\x9f\xee\x17\x07\xe5\xfc\xda\xdcB\
-v\xfc\x0e\xa7\x0c\xa0 ~\xe7L\x18\x80\x87\xf2\xe3w\
-\x04]\x80:P\x10\xfft\xd9\xfa\xe4\x00oJ\xe2\xa7\
-\x0bP\xf9\x8e\xd5\x00\xa5\xa2\xf8\xa9\x02\x94\x9ec5@\
-\xa1,~\xa2\x00+\x07\x00\x00\x00\x00\x00\x00\xa0b\x08\
-\xdb\x018\x00,\x07\xa8m\x07\xa8l\x07(l\x07\xa0\
-^\x167g\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00`+\x80\
-m\x03\x00\x00\x00\xc0\xff\x00\xf6\x0e\x00\x00\x00\x00\x00\xb0\
-z\xfc\x0bC\xd4\xc6\xc6D\x07\xe4\xaa\x00\x00\x00\x00I\
-END\xaeB`\x82\
\x00\x00\x09\x8e\
\x89\
PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
@@ -701,6 +440,267 @@ Q\xee\x10@\x8f\x84\x00\x08\x80\x00\x08\x80\x00\x08\x80\x00\
\x00\x08`*\x80i\x09\x01\x10\x00\x01~\x01\x98\x9b\x10\
\x00\x01\x10\x00\x01\x8cN\xff\x00\xf3k\xd4\xa5uQ\x85\
3\x00\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x06\xe8\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x01\x00\x00\x00\x01\x00\x08\x03\x00\x00\x00k\xacXT\
+\x00\x00\x00\x8aPLTE\x00\xfcx\x00\xfc\x80\x08\xfc\
+\x80\x10\xfc\x80\x10\xfc\x88\x18\xfc\x88 \xfc\x88 \xfc\x90\
+(\xfc\x900\xfc\x900\xfc\x988\xfc\x98@\xfc\x98@\
+\xfc\xa0H\xfc\xa0P\xfc\xa0P\xfc\xa8X\xfc\xa8`\xfc\
+\xa8`\xfc\xb0h\xfc\xb0p\xfc\xb0p\xfc\xb8x\xfc\xb8\
+\x80\xfc\xb8\x80\xfc\xc0\x88\xfc\xc0\x90\xfc\xc0\x90\xfc\xc8\x98\
+\xfc\xc8\xa0\xfc\xd0\xa8\xfc\xd0\xb0\xfc\xd0\xb0\xfc\xd8\xb8\xfc\
+\xd8\xc0\xfc\xe0\xc8\xfc\xe0\xd0\xfc\xe0\xd0\xfc\xe8\xd8\xfc\xe8\
+\xe0\xfc\xe8\xe0\xfc\xf0\xe8\xfc\xf0\xf0\xfc\xf0\xf0\xfc\xf8\xf8\
+\xfc\xf8`;^\x10\x00\x00\x00\x09pHYs\x00\x00\
+\x00H\x00\x00\x00H\x00F\xc9k>\x00\x00\x06\x04I\
+DATx\xda\xed\xddaw\xa28\x14\x06`Ba\
+`\xa4\xba\xd0vtuQ*2Pb\xf8\xff\x7fo\
+;\x9d=g\xdb\x01\x14\x85$7\xe4\xcdw\xcf\xe9}\
+*\xe1\xe6\xe6&:\x8d\xe5\xc3\x01\x00\x00\x00\x00\x00\x00\
+4\x8e\x85\x03\x00\x00\x00\xc0W\x00\xab\xa6>\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00&\x1eU\x9e\xae\x93(\xf4]\x971\xd7\xf3\x830\
+J\xd6iV\x08\x1b\x00\xc4q\xf3\xe8\xf6u,\x06\xf1\
+\xf6\xc8\xe7\x0cP\xed\x1e\xd9\xd5\xbe\xcdp\x9d\x8bY\x02\
+\xf0\x7f\x16C{W\xd9\xea \xe6\x06P$\xec\xa6\xfe\
+]7\xc9\xe7\x04p\x8c\xee\xe8a\x0eR1\x13\x80\xe3\
+\xe2\xce6no\xcbg\x00PD#:\xd9\xdd\x9d\xe9\
+\x00u2\xb2\x99?8\x1a\x0d\x90\xba\xe3\xcf3,k\
+c\x01\xca\xc5$':\x1e2C\x016l\xaaC-\
+O\xc2@\x80\x89\xfe\xfd\xff\xcd\x04\x95q\x00S<\xfd\
+\x9f\xdf\x88\x85Y\x00<\x9e\xfah\x97{4\x0a\xe0\xdb\
+\xf4\x87\xdb\xd8\xc1 \x00.\xe3x\x1f\xcb\xcd\x01(\xa4\
+\x1cptO\xc6\x00\x1c\xe5\x1c\xf1\xf4*S\x00RI\
+\x87\x5c\xbf\x0bC\x006\xb2\x8e\xf9\xbe\x18\x02\x90\xc8\x02\
+p23\x00\x1e\xa5\x01x\xdc\x08\x80@\xdeY\xf7\x17\
+#\x00\x98<\x00V\x1a\x00\xc0\x1d\x89ci\x00\xc0\x80\
+<\x88\xb9w\x7fK\x0a\xfa\x00\x97\xf2 o\xb5\xcd\x8a\
+\x8f\x99L\xf0\x22\xdb\xae\xbc\x9b\x01\x12\xfa\x00\xbdy\xd0\
+b\xdb~\x82\xcbMx\xe3,\xc0\xc9\x03t\xe7A\xee\
+\xba/\x93=\xc57=\x0f\x7f\x93\x07\xe8\xca\x83\xbc\xdd\
+\xa54\xb6\x5c\xdeR\x1e\x22\x0f\xd0\xde\x09`?\xceW\
+>\x93\xdd0\x19T\xd4\x01ZyP8`\xe6\xae\x87\
+\x7f\x09v\xd4\x01\xfe|\xa2\xe3a\x8b\xb8\xe7\xa1\x00\x8f\
+\xc4\x01\xfe\xcc\x83\xd6C?\xb8\x1e\xfa\x1e \x0eP\xdc\
+\x19\xff\xf0U\xe4O\xda\x00\xaf_\xfe\xd8\xbf\xc6M\x9f\
+\x9d\xe3@\x1b\xe0K\x1e\xe4\xdf\x94\xb6\xd4\xc3v\x13\xd6\
+\xb4\x01\xbe<\xca\xfb\xdb>{\x18\x04\xb0\xa2\x0d\xf0\xf9\
+I\xf6\xc7\xe7\x10])5m\x80hL\xfd\xe24\x04\
+ \xa4\x0d\xf09\x0f\xba}3cH>\xe4\xd3\x06\xf8\
+\x94\x07\xb1\xdb\xeb\xd8C\xf6\x14\x5c\xd2\x00|d\xf9\xc6\
+W\x99\x09\xc9\x00(Ff\xed/\xa6\x7f\x03^G\xa6\
+l\xf9\x80\xe28i\x80t\xec\x1f\xca\x14V\x04d\x00\
+\xac\xc7\x96\xef\xae\xa7\x02\x11i\x80dl\xce~}Q\
+\x98\x90\x06\xf8\xf4\x0f\xbc\xaf\xc3oo\xf8Z \x18\x9b\
+\xb0\xe5\x86\xaf\x06\xd9\xd8\x7fT\xa9poD\x02\x00\x1f\
+\x93\x07\xff^\x13\x9b]\x11*\xc6\xe4\xc1\x1fC\xa8{\
+\x09\xc8\x00\xc8\xc6oc^\x03\xd8\x90\x06H\xc7W\xaf\
+\xaf\x01\x1ci\x03\x04\xee\xc8\xa9\xea|m% H\x03\
+|Lc?\xf3C\xba\xbd\xfb\xd3\xca\x0abD\x8f\xce\
+VW\x00\xf6s\x078\x19\xbf=>rd\x97\x01\xe2\
+f\xee\x00;e\xef\x00\xa2\x00/\x8a\x0a\xa2d\x01.\
+\xd7\x03\xb6\xf3\x07\xb8\xd8*\xe1\xf2\xd9\x03\xd43\xe8\x14\
+\x95\xf7\x12`o\xf3\x07\xb88\x07>7\xf3\x07\xb8t\
+\xde\x90U\xf3\x07\xe0l\x06\x07&\xc6\x8c\xbd\xbaW\x00\
+M\x80XM\x7f\x1cY\x00\xe1\xaah\x0b \x0cp\xa9\
+G\xe6d\x03\xc0JQ\x9f<U\x80\x0b\xef\x00\x9f\xdb\
+\x00\xb0U\xb4\x0c&\x0b\xd0\xdf\x1e\xf2\xd4\xd8\x00\xd0\xbf\
+\x0e\x08\xceV\x00\xf4\x96\x02\x98a7H\xdc9r\x85\
+)\x10I\x80H\xc5V\x00a\x80\xdezx(\xec\x00\
+\xe8\xfb\x02\xb8Uc\x05@\xdf+\x80I\xbcN\x8c\x14\
+@\xdf\x99\xf3\xb4\xb1\x03`'\xbd#\x8a6@\xdfa\
+\x91\xb8\xb1\x04\xa0g\x19\xb8\x14\x96\x00\xf4\xcc\x80\x0b\xc9\
+\xf7\x8a\x92\x01\xe0\xdd\xab\xa0P\xf6\xa5\xa2d\x00\x12=\
+\xf1\x93\x01\xc84\xc5O\x05\xa0\xf64\xc5O\x05\xa0\xf3\
+\xde\xa1\x85\x8a{\xd6i\x00t\xde8\x11\x9d\x1b[\x00\
+r\xa6\xfe\xfdO\x09\xa0s\x02X)\xba^\x9e\x00\x80\
+X(\xcf\x7fi\x01$\x8a\xb6@\xa8\x02\xecTl\x82\
+\x13\x06\xc8\x98\xe2\xf5/1\x80\xc2\x95z\x1a\x80<@\
+\xe5\xc9\xee\x03\xa4\x0d\xc0\x03\xb5\xf5/j\x00\xe7\xf6\x0b\
+\x90\xed\x1b{\x00D\xa4\xe8\xfal\xaa\x00\xed\x1a\x18\xcb\
+\x1a\x8b\x00bU\x17\xc8\x13\x05\xe8\x88?o,\x02\x88\
+\x95\x5c\x9dN\x17 V\xf6\x13\x124\x01\xda\xf3\x9fW\
+6\xf6\x00\x88\xf6UA~\xd5\xd8\x03\xd0\x11\x7f\xa0+\
+~\x1d\x00\xe7v\xfe\x13\xd6\x8d=\x00|\xa1\xa5\xfcM\
+\x06\x80\x87z\xca\xdfT\x00\xeav\xfc\x91h\xec\x01\xa8\
+\x03]\xe5o\x1a\x00\xd57m\xe5o\x12\x00\x95\xaf\xaf\
+\xfcM\x01\xa0\xf45\x96\xbf\x09\x00\x14\x9e\xce\xf2\xb7~\
+\x80\xe2Ak\xf9[;\xc0\xc9\xd5[\xfe\xd6\x0d\x90\xbb\
+\xca\xfa\xbfI\x02\x1c]\xdd\xe5o\xbd\x00\xafL{\xf9\
+[+@{\xffO}\xf9['\xc0\x81\x11(\x7fk\
+\x04\xd83\x0a\xe5o}\x00)\x8d\xf2\xb76\x80\x1d\x91\
+\xf2\xb7.\x80-\x95\xf2\xb7&\x80v\x03\xa0?E\xf9\
+[pC\x00~\x8c:\xfe$\xf8[Y\x9c\xf2\xec\xb0\
+O\xb7\x9b\xf5K\x12\xaf\x96Q\x18\xf8\x0f\xec\xfe\xdbJ\
+\x15\x03t]\x07S\xb7\xc3\xac\xab\xf70_\xdf\xc3\xdc\
+\xbd\x87\xf9\xfc+\xcc\xef\x81\xef\xb9j\xae\x93\x92\x09\xf0\
+\xd4y\x0bJ\xba\xdb\xbe\x87\x99\xbc\x87\xb9\xb8\x1af\xff\
+H\x0d\x00\x90\xf7\xcb\xb3S\xde\xac,\x0f \x96\x19?\
+\xfd9@\xac\xa4\xc6?\xddm\x22\x92\x00\xc4Rn\xfc\
+NI\x1b@D\x92\xe3\x9f\xee\x17\x07\xe5\xfc\xda\xdcB\
+v\xfc\x0e\xa7\x0c\xa0 ~\xe7L\x18\x80\x87\xf2\xe3w\
+\x04]\x80:P\x10\xfft\xd9\xfa\xe4\x00oJ\xe2\xa7\
+\x0bP\xf9\x8e\xd5\x00\xa5\xa2\xf8\xa9\x02\x94\x9ec5@\
+\xa1,~\xa2\x00+\x07\x00\x00\x00\x00\x00\x00\xa0b\x08\
+\xdb\x018\x00,\x07\xa8m\x07\xa8l\x07(l\x07\xa0\
+^\x167g\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00`+\x80\
+m\x03\x00\x00\x00\xc0\xff\x00\xf6\x0e\x00\x00\x00\x00\x00\xb0\
+z\xfc\x0bC\xd4\xc6\xc6D\x07\xe4\xaa\x00\x00\x00\x00I\
+END\xaeB`\x82\
+\x00\x00\x09\x13\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x01\x00\x00\x00\x01\x00\x08\x03\x00\x00\x00k\xacXT\
+\x00\x00\x00\xedPLTEx\x00\xf8\x80\x00\xf8\x80\x04\
+\xf8\x80\x08\xf8\x80\x0c\xf8\x88\x10\xf8\x88\x14\xf8\x88\x18\xf8\
+\x88\x1c\xf8\x88 \xf8\x90 \xf8\x90$\xf8\x90(\xf8\x90\
+,\xf8\x900\xf8\x980\xf8\x984\xf8\x988\xf8\x98<\
+\xf8\x98@\xf8\xa0@\xf8\xa0D\xf8\xa0H\xf8\xa0L\xf8\
+\xa0P\xf8\xa8P\xf8\xa8T\xf8\xa8X\xf8\xa8\x5c\xf8\xa8\
+`\xf8\xb0`\xf8\xb0d\xf8\xb0h\xf8\xb0l\xf8\xb0p\
+\xf8\xb8p\xf8\xb8t\xf8\xb8x\xf8\xb8|\xf8\xb8\x80\xf8\
+\xc0\x80\xf8\xc0\x84\xf8\xc0\x88\xf8\xc0\x8c\xf8\xc0\x90\xf8\xc8\
+\x90\xf8\xc8\x94\xf8\xc8\x98\xf8\xc8\x9c\xf8\xc8\xa0\xf8\xd0\xa0\
+\xf8\xd0\xa4\xf8\xd0\xa8\xf8\xd0\xac\xf8\xd0\xb0\xf8\xd8\xb0\xf8\
+\xd8\xb4\xf8\xd8\xb8\xf8\xd8\xbc\xf8\xd8\xc0\xf8\xe0\xc0\xf8\xe0\
+\xc4\xf8\xe0\xc8\xf8\xe0\xcc\xf8\xe0\xd0\xf8\xe8\xd0\xf8\xe8\xd4\
+\xf8\xe8\xd8\xf8\xe8\xdc\xf8\xe8\xe0\xf8\xf0\xe0\xf8\xf0\xe4\xf8\
+\xf0\xe8\xf8\xf0\xec\xf8\xf0\xf0\xf8\xf8\xf0\xf8\xf8\xf4\xf8\xf8\
+\xf8\xf8\xf8\xfc\xf8\x09\xd19\xc7\x00\x00\x00\x09pHY\
+s\x00\x00\x00H\x00\x00\x00H\x00F\xc9k>\x00\x00\
+\x07\xccIDATx\xda\xed\xddiC\xdaL\x10\x00\
+\xe0\x1cP\x90\xa3(-R\x81\xaax\x03\xe5\xa8\x82\x22\
+E\xa8\x81\x0a\x91d\xfe\xff\xcf\xe9\x87\xbe\xafr\xe4\xce\
+&f6\xb3\xdf#\xd9G\xc81;3+@\xcc\x87\
+@\x00\x04@\x00\x04@\x00 \xc4p\x10\x00\x01\x10\xc0\
+&@\xac.}\x04@\x00\x04@\x00\x04@\x00\x04@\
+\x00\x04@\x00\x04@\x00\x04@\x00\x04@\x00\x04@\x00\
+\x04@\x00\x04@\x00\x04@\x00\x04@\x00\x04@\x00\x04\
+@\x00\x04@\x00\x04@\x00\x04@\x00\x04@\x00\xac\x87\
+\xae\x0cZg\x95/\xf9tR\x96\x04)\xf1)\x9d-\
+V\xce[}E\x8f\x03\x80\xd2=\xfe,\x99\xa4,J\
+\x85Zg\xc63\xc0\xea\xae\x96\xb2M\xdcLUo_\
+\xb9\x04\xd0\xee\x0e%\x87\xc9\xab\xd2\xb7\xbe\xc6\x1b\xc0\xe4\
+Xv\x95\xc0\x9b8\x9fs\x04\xa0\xff,\xb8\xcfa\x16\
++\x13N\x00^\x1b\x9f<\xe6qW\xe7\x1c\x00\xa8W\
+\x09\xef\x99\xec\xd2\xf9\x0a9\xc0\xab\x9f\xe9\x0b\x82 d\
+\xc6\x98\x01\xb4V\xd2w9\x83x\xa6\xa1\x05\xb8K3\
+\xa9\xe88X\xe2\x04P\xf7Y\xd5\xb4\xa4\x9fQ\x02<\
+\xb0\xab\xea\x91\xc7\x18\x01\xae\x18\xd65%\x9e\x10\x02\x1c\
+\xb2\xac\xecJL\xf1\x01$Y\x02\x08\xa9%6\x809\
+\xe3\xea\xbe\xa2\x8e\x0c\xe0\x8eu}\xe3\x052\x80s\xd6\
+\x00\xe2\x04\x17\xc0\x01\xf3\x12\xd7}T\x00\xba\xcc\x1c@\
+\xe8`\x02\xf8\x1d@\x95sJG\x04\xd0\x0d\xa2\xce\xfb\
+\x16\x11\xc0I\x10\x00yD\x00\xf9@J\xfd'h\x00\
+4\xd1\xf4n\x96\xab\x5cw\x87OSE\x99\x8e\x07\x9d\
+\xcb\xf2\x9e\x1b\x80K4\x00c\x93\x17\xdb\xb3\xe1N\x8c\
+k\xd9?q\x1c3\xcc\xa1\x01h\x19\x86yGf\xf7\
+\xcca\xd9\xa1\xc0\x1c\x0b@\xd5 \xc4k\xb9\xe8\xa5T\
+\x1c\x01\x0c\xb0\x00dv\xbe\xbc\xb61\x8dQ\xd6\x01\xc0\
+\x15\x12\x80\xe5\xf6\x89\x9f8\x88l\xaej\xf6\x00e$\
+\x00\xc3\xad_\x7f\xcf\xd9a\x0d[\x80\xcfH\x00n6\
+\x977\x86N\x8fk\xdb.\x13 \x01\xd8\x08\x87\x89\xf7\
+\xce\x0f\xbc\xb0\x01H\x22\x01\xd8\xb8\xb1\xf7\xdc\x1c\xf9\xc5\
+&(\x80\x03\xe0\xcf\xc6\xf5\xcf]$\xcdz)M\xc6\
+\x01\xd0_\x7f\x81\xd1\xfc\x5c>\x90\xfe\x04\xd6~\xc9\xa2\
+\xdbx\xf6\xca2\x9a\x9c\xc6\x01P\xf4\x13\xca\xb4\x0c&\
+\x16q\x00\xbc\x87\xc3\x92\xee\xf3\x9d\x9e-S&P\x00\
+\xacM\xe1\x07\x8b\xc7\xe8\xb5q\x83\x02\xa0\xe7/\x8ag\
+\x15L\x1a\xa2\x008};\xdf\x06\xebp\xe2\x12\x05\xc0\
+[J\x98\xacz9\xfc\x97\xf9\xfc\x0b(\x02\x22\xda[\
+>\xe4wO\xc7\xbf\x84\xf76\x1c\x0c\xc0\xd3\xdb\xf9z\
+\xcbkP\xcd\x01~\xa3\x00h\xfb|u\xd3C\x5c\x1c\
+\x0b\x04\xa0\xeas=W3\x05\xe8\xe1\x00\xc8\xfa\x8c\xe2\
+/M\x9f\x83\x91,\x8d\xfd\xec\xfd\x1b?=\x1e?\xe3\
+bq\x94]<\xed=\xae\xaa\xc7\x04\xc0,.\xf6\x0b\
+b\x02pl<\xff\x13\x88\x0b\x80\xf1\xcbPN\x8b\x0b\
+\x80qz\x99\x1cL\xbal\x14\x01\x9a\x86\xc1\xd0\x07\x88\
+\x0d@\xce\x08\xe0\x07\xc4\x06`d4\xff\x06\xc4\x07\xa0\
+\x18B\x1c(\xca\x00\x06I\xf6b\x07\xe2\x03\xf0\xba[\
+d\x22\x0f F\x00\xbb+\xe4{S\x88\x11\xc0nf\
+MI\x85\x18\x01\x0c\xb6s\xcb\xa4V\xc0\x9f\x18-\x80\
+\xbb\xed\xf9\xe7~C\x9c\x00\x1a[\xf3\x97\xae\x83o\xa8\
+\x10!\x80\xe5v\xa6\x5cQ\x09\xe1S\xa3\x03\xd0\xdbZ\
+\x14N\xdf\x85\xf2\xb1Q\x01\x18l\xa5\x16\xcbW\xdc5\
+P\xb0\xfa\xf2\xb7\xb6\xde\x7f\xa4\xfa2\xac\xcf\xfex\x00\
+\xa5U\x92vj\xe6\x07S\x95S\x00u\xf9\xdfX\xcc\
+\x95\xa7A\xab^4\xcd\x08J\xee\xd7\x1a\xc3\x05o\x00\
+\xaa\xe8\xb6l\xba\xda}\xe1\x09`\xe0\xa5H\xa2\xd0\x5c\
+p\x03\xe0\xb1\x8eF\xac<q\x02\xb0'x\x1d\xa5\x09\
+\x0f\x003?\xe5B\xd5\x17\xfc\x00\x1d\x7f\x15\xf4=\xf4\
+\x00e\xc1\xdf8Z\xe1\x06\xd0}v\xd4\x11\x84\xac\x82\
+\x1a`\xec\xbfn0\xf9\x84\x19\x80ES\x11\xf9\x111\
+\x00\x93\xb6:\xf2\x08-\x80\xeb\xe7`\x93\x9b\x81\x82\x15\
+\xa0\xcf\xa8~8\xa3\x22\x05`VO^F\x0a\x90f\
+\x05 tQ\x02\xcc\x98\xcd_H,0\x02l\xa7>\
+\x89\x92w\x81\x1aF\x80\x7f\xa9O\x99\xf2E\xe7a2\
+W5\x00\x00m9\x1b\xf5\xae\xca)\xf7\x02S\x84\x00\
+\xfae\xf1\xfa\xd1\xb8\x80fq[q\xf9\x94\x5c\xe1*\
+*\x0c\x00\xa0\xdf\x1f\xbayL\x10\xe7\xbc\x01\x00\xc0\xfc\
+\xd8\x05\xc1%\x87\x00\x00\xb3#\xe7-\x85\xb8\x04\x00\x18\
+8\xee&2\xe6\x13\x00\x96\xa5p{\xcbE/IJ\
+\xaf;\x03\xf8\xcc+\x80I\xa6\xe8\xeeP\xb9\x05\xb0\xa9\
+\x1f\xff\x7f\x8c\xf8\x05X+\xbc\xb4\x18-\x8e\x01t'\
+\xcd\x18O9\x06\x80\x85\x83'\xe3\x12\xcf\x00N\x96P\
+\xf2\x5c\x038\x08\xa0\xa6\xf8\x06\x18\xd9GE\xf8\x06\xb0\
+\xff\x0aH\x9c\x03\xd8\xe6R\x88\x9c\x03\xe8v\xad\xc9\x93\
+\x9c\x03\xd8F\xd13\xbc\x03<\xda\xa5\x0e\xf1\x0e\xb0\xb2\
+\x89\x0f}\xe5\x1d\xc0\xee>p\xc4=@=\xc6\xef\x02\
+\x00`\xdb\x5c\xb1\xc3=\xc0\xd0\x1a\xe0\x89{\x00\xc5\xfa\
+9H\xe3\x1e`\x11F\x8f\xe9(\x03\xbc\x0a!\xb4\x95\
+\x8b2\x80n\x09\xd0\xe6\x1f@\xb3\x04x\x89,\x80\xfa\
+\xc0\xa8\xd6}i5\x7fV=\xa5\x18\x03\xa8\xf7\xe7\x05\
+\x91U\xd3?\xcb\x9d\x9a\x1aQ\x04\xb8\xcc\x8b,\xff=\
+\x13+\x80Y\x14\x01\xde[\x1f0I\xe7\xec\x87\xb1\xd1\
+\x02S\x80\xb3\xb7\xf3;`qn\x8d\xe0\xef\x01\x8c\x01\
+\xd6v\x17c\xd1\xf3\xe5\xbbE4H\x8b$\x80\xc26\
+h\x9f\x0d\xa3\xb1$\xdb\xbb\xc0\xda\xeeZ\xfe\xb7D\xb2\
+\xb8\x0bJQ\xcd\x13\x5c[\xd2K\xfb\xfe\x92Z\x84\x85\
+\x19v\x15c\x0bp\xca\xf2[j\xbe\xdf\x864\x8f*\
+\xc0zC`\xf9\x8f\xcf\x07\xe1D(\xade\xd9\x02L\
+\x18\xe6t\x9b\xff\x02\xd2Zd\x016\xf7\xd7\xf2\xd7\x01\
+\xe1K8[\x0d1~\x17\xd8\xb8s%\xfd4\x01\x98\
+\x06\x9c\x17\x10\x10\xc0\xe6nQ\x87\xc0\xea/\xad/\x0a\
+\xcf\xa2\x0cp\xbdy\xb2M\xcf\x7f\xc8\xbc\xc2\xae\x0fQ\
+\x06\xd8\xbar\x89\x9e3\xb9\x0a\xc1\xae\x06\x04\x060c\
+T\xe1e\x9a*X\xd0\xa2\x0d\xa0oW\x81\xecy\x8a\
+\x5cM\xcc\x8aI\x12\xacw\xdbc\x1e\x12\xdb\xd9h3\
+\xeb\xe1\xb1]5\xdbcCb\xbd\xbf\x04{\x80\xddm\
+\x06\xb3\xae\x9f\x085\xb3,A1\x80\xdeJ\xac\x01\x0c\
+\x82\x18)\x97\xfdp\xf5r\x88\xad\xc5\x99\x03\x18=\xc0\
+&\xee\xdd\xfc\x85U)\xe88h\xa0\x00\xc6\xc5\x81u\
+\xe7\xd7\xee\xc5~\xc0\x05\x02\x01\x03\x80\xf1\xf5;\xeb\xb4\
+/\xfa\xd0\xb4b\xa4\x098\x00\xcc\xf6[\xae:\xb9\x16\
+\xae\xceLC\x00A\xf5\x96c\x0eP5\x9dB\xdd\xf6\
+\x91\xe0\xd6\xb4\x8221\x02,\x00\x16\xb1l\xa9j\x95\
+\xd3\xa0\xf7r\xe6\x11\x80g@\x03`\x9d\xe0\x99\xbd1\
+y6\x9e^X\xd4\xcf\x1e\x06\xd8\x5c\x8f9\x80m\x8d\
+x\xe6\xe4v\xeb\x85v\xd1\xaf[\xed8,\xfd\x00@\
+\x04\x00Nj\xc2\xe5B\xe5\xac\xd1\xe9v\xdb\x8d\xcb\xea\
+\x81M\xa5`6\xd0\xbe\xca\x01\x00\xe4\x05\xa6\xe3x\x05\
+\xc8\x00\xaa,\xa7\x9f\x1f\x03`\x03h\xb0\x9b~\xa2\x8d\
+\xb1\xaf\xf0\x03\xb3\xf9\xd7\xc2\xe8\xac\xca\x1e`\xceh\xfa\
+GS\x00\x94\x00\xeb+\xa4\x9e\x87X}\x06\xc0\x0a\xe0\
+\xbfa\x96X\x9b\x01\xe0\x05\xf0\xdb/)\xdb\x5c\x00`\
+\x06\x80\xc7o\xde\x9b\x86\xc9\xdf\xc7\x10\xea\x08&Qr\
+q\x93\xf34\xfbro\x05\xc0\x03\x00\x00L/2.\
+[\xa4\xd5\x1f5\x08\x7f\x04\x99*\xab\xb4J\xce\xee\x08\
+b\xae\xd6V\xe0cF\xc0\xb9\xc2\xfa\xb4]\xcd[)\
+\xc8\xd9Js\xb4\x82\x8f\x1b\xa1$K\xcf\x87\xdd\xab\xe3\
+\xc3b>\x9dL\xc8\x92 %R\x99\xfc\xfe\xd7\xf2i\
+\xb3?Y\xc0G\x8f(g\x8b\x13\x00\x01\x10\x00\x01\x10\
+\x00\x01\x10\x00\x01\x10\x00\x01\x10\x00\x01\x10\x00\x01\x10\x00\
+\x01\x10\x00\x01\x10\x00\x01\x10\x00\x01\x10\x00\x01\x10\x00\x01\
+\x10\x00\x01\x10\x00\x01\x10@\x80\x00q\x1b\x04@\x00\x04\
+\xf0\x0e\x10\xdfA\x00\x04@\x00\x04\x10\xeb\xf1\x17\xe9\x89\
+Gh\xda\x1b|\x00\x00\x00\x00\x00IEND\xaeB\
+`\x82\
"
qt_resource_name = b"\
@@ -721,17 +721,17 @@ qt_resource_name = b"\
\x00s\
\x00i\x00d\x00e\x004\x00.\x00p\x00n\x00g\
\x00\x09\
-\x0a\x86\xa4\xa7\
+\x0a\x89\xa4\xa7\
\x00s\
-\x00i\x00d\x00e\x003\x00.\x00p\x00n\x00g\
+\x00i\x00d\x00e\x006\x00.\x00p\x00n\x00g\
\x00\x09\
\x0a\x85\xa4\xa7\
\x00s\
\x00i\x00d\x00e\x002\x00.\x00p\x00n\x00g\
\x00\x09\
-\x0a\x89\xa4\xa7\
+\x0a\x86\xa4\xa7\
\x00s\
-\x00i\x00d\x00e\x006\x00.\x00p\x00n\x00g\
+\x00i\x00d\x00e\x003\x00.\x00p\x00n\x00g\
"
qt_resource_struct = b"\
@@ -740,17 +740,17 @@ qt_resource_struct = b"\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x02\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x01e\xaf\x16\xd2\x95\
-\x00\x00\x00r\x00\x00\x00\x00\x00\x01\x00\x00\x1a\x1c\
-\x00\x00\x01e\xaf\x16\xd2\x95\
-\x00\x00\x00Z\x00\x00\x00\x00\x00\x01\x00\x00\x11\x05\
-\x00\x00\x01e\xaf\x16\xd2\x95\
+\x00\x00\x01z\xe7\xee&\xf9\
+\x00\x00\x00r\x00\x00\x00\x00\x00\x01\x00\x00\x1a\x97\
+\x00\x00\x01z\xe7\xee&\xf9\
+\x00\x00\x00\x8a\x00\x00\x00\x00\x00\x01\x00\x00!\x83\
+\x00\x00\x01z\xe7\xee&\xf9\
\x00\x00\x00B\x00\x00\x00\x00\x00\x01\x00\x00\x0b\xc3\
-\x00\x00\x01e\xaf\x16\xd2\x95\
+\x00\x00\x01z\xe7\xee&\xf9\
\x00\x00\x00*\x00\x00\x00\x00\x00\x01\x00\x00\x04\x18\
-\x00\x00\x01e\xaf\x16\xd2\x95\
-\x00\x00\x00\x8a\x00\x00\x00\x00\x00\x01\x00\x00!\x08\
-\x00\x00\x01e\xaf\x16\xd2\x95\
+\x00\x00\x01z\xe7\xee&\xf9\
+\x00\x00\x00Z\x00\x00\x00\x00\x00\x01\x00\x00\x11\x05\
+\x00\x00\x01z\xe7\xee&\xf9\
"
def qInitResources():
diff --git a/examples/opengl/threadedqopenglwidget/doc/threadedqopenglwidget.png b/examples/opengl/threadedqopenglwidget/doc/threadedqopenglwidget.png
new file mode 100644
index 000000000..263d7a3d1
--- /dev/null
+++ b/examples/opengl/threadedqopenglwidget/doc/threadedqopenglwidget.png
Binary files differ
diff --git a/examples/opengl/threadedqopenglwidget/doc/threadedqopenglwidget.rst b/examples/opengl/threadedqopenglwidget/doc/threadedqopenglwidget.rst
new file mode 100644
index 000000000..79e13cf60
--- /dev/null
+++ b/examples/opengl/threadedqopenglwidget/doc/threadedqopenglwidget.rst
@@ -0,0 +1,9 @@
+Threaded QOpenGLWidget Example
+==============================
+
+The threaded QOpenGLWidget example demonstrates OpenGL rendering
+in separate threads.
+
+.. image:: threadedqopenglwidget.png
+ :width: 400
+ :alt: Threaded QOpenGLWidget Example Screenshot
diff --git a/examples/opengl/threadedqopenglwidget/glwidget.py b/examples/opengl/threadedqopenglwidget/glwidget.py
new file mode 100644
index 000000000..edb88e77c
--- /dev/null
+++ b/examples/opengl/threadedqopenglwidget/glwidget.py
@@ -0,0 +1,79 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+
+from PySide6.QtOpenGLWidgets import QOpenGLWidget
+from PySide6.QtCore import QMutexLocker, QSize, QThread, Slot, Signal
+
+from renderer import Renderer
+
+
+class GLWidget(QOpenGLWidget):
+
+ render_requested = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+ self.aboutToCompose.connect(self.on_about_to_compose)
+ self.frameSwapped.connect(self.on_frame_swapped)
+ self.aboutToResize.connect(self.on_about_to_resize)
+ self.resized.connect(self.on_resized)
+
+ self._thread = QThread()
+ self._renderer = Renderer(self)
+ self._renderer.moveToThread(self._thread)
+ self._thread.finished.connect(self._renderer.deleteLater)
+
+ self.render_requested.connect(self._renderer.render)
+ self._renderer.context_wanted.connect(self.grab_context)
+
+ self._thread.start()
+
+ def stop_rendering(self):
+ self._renderer.prepare_exit()
+ self._thread.quit()
+ self._thread.wait()
+ self._thread = None
+ self._renderer = None
+
+ def closeEvent(self, event):
+ self.stop_rendering()
+ event.accept()
+
+ def paintEvent(self, event):
+ pass
+
+ def sizeHint(self):
+ return QSize(200, 200)
+
+ @Slot()
+ def on_about_to_compose(self):
+ # We are on the gui thread here. Composition is about to
+ # begin. Wait until the render thread finishes.
+ self._renderer.lock_renderer()
+
+ @Slot()
+ def on_frame_swapped(self):
+ self._renderer.unlock_renderer()
+ # Assuming a blocking swap, our animation is driven purely by the
+ # vsync in self example.
+ self.render_requested.emit()
+
+ @Slot()
+ def on_about_to_resize(self):
+ self._renderer.lock_renderer()
+
+ @Slot()
+ def on_resized(self):
+ self._renderer.unlock_renderer()
+
+ @Slot()
+ def grab_context(self):
+ if not self._renderer:
+ return
+ self._renderer.lock_renderer()
+ with QMutexLocker(self._renderer.grab_mutex()):
+ self.context().moveToThread(self._thread)
+ self._renderer.grab_condition().wakeAll()
+ self._renderer.unlock_renderer()
diff --git a/examples/opengl/threadedqopenglwidget/main.py b/examples/opengl/threadedqopenglwidget/main.py
new file mode 100644
index 000000000..2a379da27
--- /dev/null
+++ b/examples/opengl/threadedqopenglwidget/main.py
@@ -0,0 +1,93 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the Threaded QOpenGLWidget Example from Qt v6.x"""
+
+import sys
+
+from argparse import ArgumentParser, RawTextHelpFormatter
+
+from PySide6.QtWidgets import QApplication, QMessageBox
+from PySide6.QtGui import QShortcut, QSurfaceFormat
+from PySide6.QtCore import QCoreApplication, QPoint, qVersion, Qt
+
+try:
+ from OpenGL import GL
+except ImportError:
+ app = QApplication(sys.argv)
+ message = "PyOpenGL must be installed to run this example."
+ message_box = QMessageBox(QMessageBox.Critical,
+ "Threaded QOpenGLWidget Example",
+ message, QMessageBox.Close)
+ detail = "Run:\npip install PyOpenGL PyOpenGL_accelerate"
+ message_box.setDetailedText(detail)
+ message_box.exec()
+ sys.exit(1)
+
+from glwidget import GLWidget
+from mainwindow import MainWindow
+
+
+if __name__ == "__main__":
+ app = QApplication(sys.argv)
+
+ desc = "Qt Threaded QOpenGLWidget Example"
+ parser = ArgumentParser(description=desc,
+ formatter_class=RawTextHelpFormatter)
+ parser.add_argument("--single", "-s", action="store_true",
+ help="Single thread")
+ options = parser.parse_args()
+
+ QCoreApplication.setApplicationName(desc)
+ QCoreApplication.setOrganizationName("QtProject")
+ QCoreApplication.setApplicationVersion(qVersion())
+
+ format = QSurfaceFormat()
+ format.setDepthBufferSize(16)
+ QSurfaceFormat.setDefaultFormat(format)
+
+ # Two top-level windows with two QOpenGLWidget children in each. The
+ # rendering for the four QOpenGLWidgets happens on four separate threads.
+
+ top_gl_widget = GLWidget()
+ pos = top_gl_widget.screen().availableGeometry().topLeft()
+ pos += QPoint(200, 200)
+ top_gl_widget.setWindowTitle(desc + " top level")
+ top_gl_widget.move(pos)
+ top_gl_widget.show()
+
+ functions = top_gl_widget.context().functions()
+ vendor = functions.glGetString(GL.GL_VENDOR)
+ renderer = functions.glGetString(GL.GL_RENDERER)
+ gl_info = f"{vendor}/f{renderer}"
+
+ supports_threading = ("nouveau" not in gl_info and "ANGLE" not in gl_info
+ and "llvmpipe" not in gl_info)
+ tool_tip = gl_info
+ if not supports_threading:
+ tool_tip += "\ndoes not support threaded OpenGL."
+ top_gl_widget.setToolTip(tool_tip)
+ print(tool_tip)
+
+ close_shortcut = QShortcut(Qt.CTRL | Qt.Key_Q, top_gl_widget)
+ close_shortcut.activated.connect(QApplication.closeAllWindows)
+ close_shortcut.setContext(Qt.ApplicationShortcut)
+
+ mw1 = None
+ mw2 = None
+
+ if not options.single and supports_threading:
+ pos += QPoint(100, 100)
+ mw1 = MainWindow()
+ mw1.setToolTip(tool_tip)
+ mw1.move(pos)
+ mw1.setWindowTitle(f"{desc} #1")
+ mw1.show()
+ pos += QPoint(100, 100)
+ mw2 = MainWindow()
+ mw2.setToolTip(tool_tip)
+ mw2.move(pos)
+ mw2.setWindowTitle(f"{desc} #2")
+ mw2.show()
+
+ sys.exit(app.exec())
diff --git a/examples/opengl/threadedqopenglwidget/mainwindow.py b/examples/opengl/threadedqopenglwidget/mainwindow.py
new file mode 100644
index 000000000..4999b799d
--- /dev/null
+++ b/examples/opengl/threadedqopenglwidget/mainwindow.py
@@ -0,0 +1,24 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtWidgets import QWidget, QHBoxLayout
+
+from glwidget import GLWidget
+
+
+class MainWindow(QWidget):
+ def __init__(self):
+ super().__init__()
+
+ layout = QHBoxLayout(self)
+ layout.setContentsMargins(0, 0, 0, 0)
+ layout.setSpacing(0)
+ self._glwidget1 = GLWidget(self)
+ layout.addWidget(self._glwidget1)
+ self._glwidget2 = GLWidget(self)
+ layout.addWidget(self._glwidget2)
+
+ def closeEvent(self, event):
+ self._glwidget1.stop_rendering()
+ self._glwidget2.stop_rendering()
+ event.accept()
diff --git a/examples/opengl/threadedqopenglwidget/renderer.py b/examples/opengl/threadedqopenglwidget/renderer.py
new file mode 100644
index 000000000..81ec63cbb
--- /dev/null
+++ b/examples/opengl/threadedqopenglwidget/renderer.py
@@ -0,0 +1,326 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import ctypes
+import math
+import numpy
+
+from OpenGL import GL
+
+from PySide6.QtOpenGL import QOpenGLShader, QOpenGLShaderProgram, QOpenGLBuffer
+from PySide6.QtGui import (QGuiApplication, QOpenGLFunctions, QVector3D,
+ QMatrix4x4)
+from PySide6.QtCore import (QElapsedTimer, QObject, QMetaObject, QMutex,
+ QMutexLocker, QThread, QWaitCondition, Signal, Slot)
+
+# Some OpenGL implementations have serious issues with compiling and linking
+# shaders on multiple threads concurrently. Avoid self.
+init_mutex = QMutex()
+
+
+VERTEX_SHADER = """attribute highp vec4 vertex;
+attribute mediump vec3 normal;
+uniform mediump mat4 matrix;
+varying mediump vec4 color;
+void main(void)
+{
+ vec3 toLight = normalize(vec3(0.0, 0.3, 1.0));
+ float angle = max(dot(normal, toLight), 0.0);
+ vec3 col = vec3(0.40, 1.0, 0.0);
+ color = vec4(col * 0.2 + col * 0.8 * angle, 1.0);
+ color = clamp(color, 0.0, 1.0);
+ gl_Position = matrix * vertex;
+}
+"""
+
+
+FRAGMENT_SHADER = """varying mediump vec4 color;
+void main(void)
+{
+ gl_FragColor = color;
+}
+"""
+
+
+class Renderer(QObject, QOpenGLFunctions):
+
+ context_wanted = Signal()
+
+ def __init__(self, widget):
+ QObject.__init__(self)
+ QOpenGLFunctions.__init__(self)
+ self._glwidget = widget
+ self._inited = False
+ self._fAngle = 0
+ self._fScale = 1
+
+ self._vertices = []
+ self._normals = []
+ self._program = QOpenGLShaderProgram()
+ self._vbo = QOpenGLBuffer()
+ self._vertex_attr = 0
+ self._normal_attr = 0
+ self._matrix_uniform = 0
+ self._renderMutex = QMutex()
+ self._elapsed = QElapsedTimer()
+ self._grabMutex = QMutex()
+ self._grab_condition = QWaitCondition()
+ self._exiting = False
+
+ def lock_renderer(self):
+ self._renderMutex.lock()
+
+ def unlock_renderer(self):
+ self._renderMutex.unlock()
+
+ def grab_mutex(self):
+ return self._grabMutex
+
+ def grab_condition(self):
+ return self._grab_condition
+
+ def prepare_exit(self):
+ self._exiting = True
+ self._grab_condition.wakeAll()
+
+ def paint_Qt_logo(self):
+ self._vbo.bind()
+ self._program.setAttributeBuffer(self._vertex_attr, GL.GL_FLOAT, 0, 3)
+ size = len(self._vertices) * 3 * ctypes.sizeof(ctypes.c_float)
+ self._program.setAttributeBuffer(self._normal_attr, GL.GL_FLOAT, size, 3)
+ self._vbo.release()
+
+ self._program.enableAttributeArray(self._vertex_attr)
+ self._program.enableAttributeArray(self._normal_attr)
+
+ self.glDrawArrays(GL.GL_TRIANGLES, 0, len(self._vertices))
+
+ self._program.disableAttributeArray(self._normal_attr)
+ self._program.disableAttributeArray(self._vertex_attr)
+
+ @Slot()
+ def render(self):
+ global init_mutex
+
+ if self._exiting:
+ return
+
+ ctx = self._glwidget.context()
+ if not ctx: # QOpenGLWidget not yet initialized
+ return
+
+ # Grab the context.
+ self._grabMutex.lock()
+ self.context_wanted.emit()
+ self._grab_condition.wait(self._grabMutex)
+
+ with QMutexLocker(self._renderMutex):
+ self._grabMutex.unlock()
+
+ if self._exiting:
+ return
+
+ assert ctx.thread() == QThread.currentThread()
+
+ # Make the context (and an offscreen surface) current for self thread.
+ # The QOpenGLWidget's fbo is bound in the context.
+ self._glwidget.makeCurrent()
+
+ if not self._inited:
+ self._inited = True
+ self.initializeOpenGLFunctions()
+ with QMutexLocker(init_mutex):
+ self._init_gl()
+ self._elapsed.start()
+
+ self._render_next()
+
+ # Make no context current on self thread and move the
+ # QOpenGLWidget'scontext back to the gui thread.
+ self._glwidget.doneCurrent()
+ ctx.moveToThread(QGuiApplication.instance().thread())
+
+ # Schedule composition. Note that self will use QueuedConnection,
+ # meaning that update() will be invoked on the gui thread.
+ QMetaObject.invokeMethod(self._glwidget, "update")
+
+ def _init_gl(self):
+ vshader = QOpenGLShader(QOpenGLShader.Vertex, self)
+ vshader.compileSourceCode(VERTEX_SHADER)
+
+ fshader = QOpenGLShader(QOpenGLShader.Fragment, self)
+ fshader.compileSourceCode(FRAGMENT_SHADER)
+
+ self._program.addShader(vshader)
+ self._program.addShader(fshader)
+ self._program.link()
+
+ self._vertex_attr = self._program.attributeLocation("vertex")
+ self._normal_attr = self._program.attributeLocation("normal")
+ self._matrix_uniform = self._program.uniformLocation("matrix")
+
+ self._fAngle = 0
+ self._fScale = 1
+ self.create_geometry()
+
+ self._vbo.create()
+ self._vbo.bind()
+
+ data_count = len(self._vertices) * 2 * 3
+ data = numpy.empty(data_count, dtype=ctypes.c_float)
+ i = 0
+ for v in self._vertices:
+ data[i] = v.x()
+ i += 1
+ data[i] = v.y()
+ i += 1
+ data[i] = v.z()
+ i += 1
+ for n in self._normals:
+ data[i] = n.x()
+ i += 1
+ data[i] = n.y()
+ i += 1
+ data[i] = n.z()
+ i += 1
+
+ vertices_size = data_count * ctypes.sizeof(ctypes.c_float)
+ self._vbo.allocate(data.tobytes(), vertices_size)
+
+ def _render_next(self):
+ self.glClearColor(0.1, 0.2, 0.2, 1.0)
+ self.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT)
+
+ self.glFrontFace(GL.GL_CW)
+ self.glCullFace(GL.GL_FRONT)
+ self.glEnable(GL.GL_CULL_FACE)
+ self.glEnable(GL.GL_DEPTH_TEST)
+
+ modelview = QMatrix4x4()
+ modelview.rotate(self._fAngle, 0.0, 1.0, 0.0)
+ modelview.rotate(self._fAngle, 1.0, 0.0, 0.0)
+ modelview.rotate(self._fAngle, 0.0, 0.0, 1.0)
+ modelview.scale(self._fScale)
+ modelview.translate(0.0, -0.2, 0.0)
+
+ self._program.bind()
+ self._program.setUniformValue(self._matrix_uniform, modelview)
+ self.paint_Qt_logo()
+ self._program.release()
+
+ self.glDisable(GL.GL_DEPTH_TEST)
+ self.glDisable(GL.GL_CULL_FACE)
+
+ self._fAngle += 1.0
+
+ def create_geometry(self):
+ self._vertices = []
+ self._normals = []
+
+ x1 = +0.06
+ y1 = -0.14
+ x2 = +0.14
+ y2 = -0.06
+ x3 = +0.08
+ y3 = +0.00
+ x4 = +0.30
+ y4 = +0.22
+
+ self.quad(x1, y1, x2, y2, y2, x2, y1, x1)
+ self.quad(x3, y3, x4, y4, y4, x4, y3, x3)
+
+ self.extrude(x1, y1, x2, y2)
+ self.extrude(x2, y2, y2, x2)
+ self.extrude(y2, x2, y1, x1)
+ self.extrude(y1, x1, x1, y1)
+ self.extrude(x3, y3, x4, y4)
+ self.extrude(x4, y4, y4, x4)
+ self.extrude(y4, x4, y3, x3)
+
+ NUM_SECTORS = 100
+ SECTOR_ANGLE = 2 * math.pi / NUM_SECTORS
+
+ for i in range(NUM_SECTORS):
+ angle = i * SECTOR_ANGLE
+ sin_angle = math.sin(angle)
+ cos_angle = math.cos(angle)
+ x5 = 0.30 * sin_angle
+ y5 = 0.30 * cos_angle
+ x6 = 0.20 * sin_angle
+ y6 = 0.20 * cos_angle
+
+ angle += SECTOR_ANGLE
+ sin_angle = math.sin(angle)
+ cos_angle = math.cos(angle)
+ x7 = 0.20 * sin_angle
+ y7 = 0.20 * cos_angle
+ x8 = 0.30 * sin_angle
+ y8 = 0.30 * cos_angle
+
+ self.quad(x5, y5, x6, y6, x7, y7, x8, y8)
+
+ self.extrude(x6, y6, x7, y7)
+ self.extrude(x8, y8, x5, y5)
+
+ for i in range(len(self._vertices)):
+ self._vertices[i] *= 2.0
+
+ def quad(self, x1, y1, x2, y2, x3, y3, x4, y4):
+
+ self._vertices.append(QVector3D(x1, y1, -0.05))
+ self._vertices.append(QVector3D(x2, y2, -0.05))
+ self._vertices.append(QVector3D(x4, y4, -0.05))
+
+ self._vertices.append(QVector3D(x3, y3, -0.05))
+ self._vertices.append(QVector3D(x4, y4, -0.05))
+ self._vertices.append(QVector3D(x2, y2, -0.05))
+
+ n = QVector3D.normal(QVector3D(x2 - x1, y2 - y1, 0.0),
+ QVector3D(x4 - x1, y4 - y1, 0.0))
+
+ self._normals.append(n)
+ self._normals.append(n)
+ self._normals.append(n)
+
+ self._normals.append(n)
+ self._normals.append(n)
+ self._normals.append(n)
+
+ self._vertices.append(QVector3D(x4, y4, 0.05))
+ self._vertices.append(QVector3D(x2, y2, 0.05))
+ self._vertices.append(QVector3D(x1, y1, 0.05))
+
+ self._vertices.append(QVector3D(x2, y2, 0.05))
+ self._vertices.append(QVector3D(x4, y4, 0.05))
+ self._vertices.append(QVector3D(x3, y3, 0.05))
+
+ n = QVector3D.normal(QVector3D(x2 - x4, y2 - y4, 0.0),
+ QVector3D(x1 - x4, y1 - y4, 0.0))
+
+ self._normals.append(n)
+ self._normals.append(n)
+ self._normals.append(n)
+
+ self._normals.append(n)
+ self._normals.append(n)
+ self._normals.append(n)
+
+ def extrude(self, x1, y1, x2, y2):
+ self._vertices.append(QVector3D(x1, y1, +0.05))
+ self._vertices.append(QVector3D(x2, y2, +0.05))
+ self._vertices.append(QVector3D(x1, y1, -0.05))
+
+ self._vertices.append(QVector3D(x2, y2, -0.05))
+ self._vertices.append(QVector3D(x1, y1, -0.05))
+ self._vertices.append(QVector3D(x2, y2, +0.05))
+
+ n = QVector3D.normal(QVector3D(x2 - x1, y2 - y1, 0.0),
+ QVector3D(0.0, 0.0, -0.1))
+
+ self._normals.append(n)
+ self._normals.append(n)
+ self._normals.append(n)
+
+ self._normals.append(n)
+ self._normals.append(n)
+ self._normals.append(n)
diff --git a/examples/opengl/threadedqopenglwidget/threadedqopenglwidget.pyproject b/examples/opengl/threadedqopenglwidget/threadedqopenglwidget.pyproject
new file mode 100644
index 000000000..3faba3113
--- /dev/null
+++ b/examples/opengl/threadedqopenglwidget/threadedqopenglwidget.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["main.py", "glwidget.py", "mainwindow.py", "renderer.py"]
+}
diff --git a/examples/pdf/quickpdfviewer/doc/quickpdfviewer.rst b/examples/pdf/quickpdfviewer/doc/quickpdfviewer.rst
new file mode 100644
index 000000000..084f71828
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/doc/quickpdfviewer.rst
@@ -0,0 +1,4 @@
+PDF Viewer Example
+==================
+
+A Qt Quick PDF viewer that allows scrolling through the pages.
diff --git a/examples/pdf/quickpdfviewer/main.py b/examples/pdf/quickpdfviewer/main.py
new file mode 100644
index 000000000..ee7b882c2
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/main.py
@@ -0,0 +1,49 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import os
+import sys
+from argparse import ArgumentParser, RawTextHelpFormatter
+from pathlib import Path
+
+from PySide6.QtQml import QQmlApplicationEngine
+
+from PySide6.QtGui import QGuiApplication
+from PySide6.QtCore import QCoreApplication, QUrl
+
+import rc_viewer # noqa: F401
+
+"""PySide6 port of the pdf/pdfviewer example from Qt v6.x"""
+
+
+if __name__ == "__main__":
+ name = "Qt Quick PDF Viewer Example"
+ QCoreApplication.setApplicationName(name)
+ QCoreApplication.setOrganizationName("QtProject")
+
+ app = QGuiApplication(sys.argv)
+
+ dir = Path(__file__).resolve().parent
+
+ argument_parser = ArgumentParser(description=name,
+ formatter_class=RawTextHelpFormatter)
+ argument_parser.add_argument("file", help="The file to open",
+ nargs='?', type=str)
+ options = argument_parser.parse_args()
+
+ url = None
+ if options.file:
+ url = QUrl.fromLocalFile(options.file)
+ else:
+ url = QUrl.fromLocalFile(os.fspath(dir / "resources" / "test.pdf"))
+
+ engine = QQmlApplicationEngine()
+ engine.setInitialProperties({"source": url})
+
+ engine.load(QUrl.fromLocalFile(os.fspath(dir / "viewer.qml")))
+ if not engine.rootObjects():
+ sys.exit(-1)
+
+ exit_code = QCoreApplication.exec()
+ del engine
+ sys.exit(exit_code)
diff --git a/examples/pdf/quickpdfviewer/quickpdfviewer.pyproject b/examples/pdf/quickpdfviewer/quickpdfviewer.pyproject
new file mode 100644
index 000000000..437e25551
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/quickpdfviewer.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["main.py", "viewer.qml", "viewer.qrc", "resources/test.pdf"]
+}
diff --git a/examples/pdf/quickpdfviewer/rc_viewer.py b/examples/pdf/quickpdfviewer/rc_viewer.py
new file mode 100644
index 000000000..f331739b5
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/rc_viewer.py
@@ -0,0 +1,5505 @@
+# Resource object code (Python 3)
+# Created by: object code
+# Created by: The Resource Compiler for Qt version 6.4.0
+# WARNING! All changes made in this file will be lost!
+
+from PySide6 import QtCore
+
+qt_resource_data = b"\
+\x00\x00\x03\x0c\
+<\
+svg xmlns=\x22http:\
+//www.w3.org/200\
+0/svg\x22 viewBox=\x22\
+0 0 24 24\x22>\x0a <d\
+efs id=\x22defs3051\
+\x22>\x0a <style ty\
+pe=\x22text/css\x22 id\
+=\x22current-color-\
+scheme\x22>\x0a .\
+ColorScheme-Text\
+ {\x0a color\
+:#4d4d4d;\x0a \
+}\x0a </style>\
+\x0a </defs>\x0a <pat\
+h style=\x22fill:cu\
+rrentColor;fill-\
+opacity:1;stroke\
+:none\x22\x0a d=\x22M\
+ 4 4 L 4 5 L 4 8\
+ L 5 8 L 5 5 L 8\
+ 5 L 8 4 L 5 4 L\
+ 4 4 z M 12 4 L \
+10 6 L 14 6 L 12\
+ 4 z M 16 4 L 16\
+ 5 L 19 5 L 19 8\
+ L 20 8 L 20 5 L\
+ 20 4 L 19 4 L 1\
+6 4 z M 7 7 L 7 \
+17 L 17 17 L 17 \
+7 L 7 7 z M 8 8 \
+L 16 8 L 16 16 L\
+ 8 16 L 8 8 z M \
+6 10 L 4 12 L 6 \
+14 L 6 10 z M 18\
+ 10 L 18 14 L 20\
+ 12 L 18 10 z M \
+4 16 L 4 19 L 4 \
+20 L 8 20 L 8 19\
+ L 5 19 L 5 16 L\
+ 4 16 z M 19 16 \
+L 19 19 L 16 19 \
+L 16 20 L 20 20 \
+L 20 19 L 20 16 \
+L 19 16 z M 10 1\
+8 L 12 20 L 14 1\
+8 L 10 18 z \x22\x0a \
+ class=\x22ColorS\
+cheme-Text\x22\x0a \
+ />\x0a</svg>\x0a\
+\x00\x00\x03^\
+<\
+svg xmlns=\x22http:\
+//www.w3.org/200\
+0/svg\x22 viewBox=\x22\
+0 0 24 24\x22>\x0a <d\
+efs id=\x22defs3051\
+\x22>\x0a <style ty\
+pe=\x22text/css\x22 id\
+=\x22current-color-\
+scheme\x22>\x0a .\
+ColorScheme-Text\
+ {\x0a color\
+:#232629;\x0a \
+}\x0a </style>\
+\x0a </defs>\x0a <pat\
+h style=\x22fill:cu\
+rrentColor;fill-\
+opacity:1;stroke\
+:none\x22\x0a d=\x22M\
+ 4 4 L 4 6 L 5 6\
+ L 5 5 L 6 5 L 6\
+ 4 L 4 4 z M 9 4\
+ L 9 5 L 11 5 L \
+11 4 L 9 4 z M 1\
+3 4 L 13 5 L 15 \
+5 L 15 4 L 13 4 \
+z M 18 4 L 18 5 \
+L 19 5 L 19 6 L \
+20 6 L 20 4 L 18\
+ 4 z M 12 8 L 12\
+ 9 L 14.292969 9\
+ L 11 12.292969 \
+L 11.707031 13 L\
+ 15 9.7070312 L \
+15 12 L 16 12 L \
+16 8 L 15 8 L 12\
+ 8 z M 4 9 L 4 1\
+1 L 5 11 L 5 9 L\
+ 4 9 z M 19 9 L \
+19 11 L 20 11 L \
+20 9 L 19 9 z M \
+19 13 L 19 15 L \
+20 15 L 20 13 L \
+19 13 z M 4 14 L\
+ 4 20 L 10 20 L \
+10 14 L 4 14 z M\
+ 5 15 L 9 15 L 9\
+ 19 L 5 19 L 5 1\
+5 z M 19 18 L 19\
+ 19 L 18 19 L 18\
+ 20 L 20 20 L 20\
+ 18 L 19 18 z \x22\x0a\
+ class=\x22Colo\
+rScheme-Text\x22\x0a \
+ />\x0a</svg>\x0a\
+\x00\x00\x03n\
+<\
+svg xmlns=\x22http:\
+//www.w3.org/200\
+0/svg\x22 viewBox=\x22\
+0 0 24 24\x22>\x0a <d\
+efs id=\x22defs3051\
+\x22>\x0a <style ty\
+pe=\x22text/css\x22 id\
+=\x22current-color-\
+scheme\x22>\x0a .\
+ColorScheme-Text\
+ {\x0a color\
+:#232629;\x0a \
+}\x0a </style>\
+\x0a </defs>\x0a <pat\
+h style=\x22fill:cu\
+rrentColor;fill-\
+opacity:1;stroke\
+:none\x22\x0a d=\x22M\
+ 4 4 L 4 5 L 4 8\
+ L 5 8 L 5 5 L 8\
+ 5 L 8 4 L 5 4 L\
+ 4 4 z M 16 4 L \
+16 5 L 19 5 L 19\
+ 8 L 20 8 L 20 4\
+ L 16 4 z M 6 6 \
+L 6 11 L 11 11 L\
+ 11 6 L 6 6 z M \
+13 6 L 13 11 L 1\
+8 11 L 18 6 L 13\
+ 6 z M 7 7 L 10 \
+7 L 10 10 L 7 10\
+ L 7 7 z M 14 7 \
+L 17 7 L 17 10 L\
+ 14 10 L 14 7 z \
+M 6 13 L 6 18 L \
+11 18 L 11 13 L \
+6 13 z M 13 13 L\
+ 13 18 L 18 18 L\
+ 18 13 L 13 13 z\
+ M 7 14 L 10 14 \
+L 10 17 L 7 17 L\
+ 7 14 z M 14 14 \
+L 17 14 L 17 17 \
+L 14 17 L 14 14 \
+z M 4 16 L 4 20 \
+L 5 20 L 8 20 L \
+8 19 L 5 19 L 5 \
+16 L 4 16 z M 19\
+ 16 L 19 19 L 16\
+ 19 L 16 20 L 20\
+ 20 L 20 19 L 20\
+ 16 L 19 16 z \x22\x0a\
+ class=\x22Colo\
+rScheme-Text\x22\x0a \
+ />\x0a</svg>\x0a\
+\x00\x00\x02\x84\
+<\
+svg xmlns=\x22http:\
+//www.w3.org/200\
+0/svg\x22 viewBox=\x22\
+0 0 24 24\x22>\x0a <d\
+efs id=\x22defs3051\
+\x22>\x0a <style ty\
+pe=\x22text/css\x22 id\
+=\x22current-color-\
+scheme\x22>\x0a .\
+ColorScheme-Text\
+ {\x0a color\
+:#232629;\x0a \
+}\x0a </style>\
+\x0a </defs>\x0a <pat\
+h style=\x22fill:cu\
+rrentColor;fill-\
+opacity:1;stroke\
+:none\x22\x0a d=\x22M\
+ 4 4 L 4 5 L 4 7\
+ L 5 7 L 5 5 L 7\
+ 5 L 7 4 L 5 4 L\
+ 4 4 z M 17 4 L \
+17 5 L 19 5 L 19\
+ 7 L 20 7 L 20 5\
+ L 20 4 L 19 4 L\
+ 17 4 z M 6 6 L \
+6 18 L 18 18 L 1\
+8 6 L 6 6 z M 7 \
+7 L 17 7 L 17 17\
+ L 7 17 L 7 7 z \
+M 4 17 L 4 19 L \
+4 20 L 7 20 L 7 \
+19 L 5 19 L 5 17\
+ L 4 17 z M 19 1\
+7 L 19 19 L 17 1\
+9 L 17 20 L 20 2\
+0 L 20 17 L 19 1\
+7 z \x22\x0a class\
+=\x22ColorScheme-Te\
+xt\x22\x0a />\x0a</sv\
+g>\x0a\
+\x00\x00\x02\x02\
+<\
+svg xmlns=\x22http:\
+//www.w3.org/200\
+0/svg\x22 viewBox=\x22\
+0 0 24 24\x22>\x0a <d\
+efs id=\x22defs3051\
+\x22>\x0a <style ty\
+pe=\x22text/css\x22 id\
+=\x22current-color-\
+scheme\x22>\x0a .\
+ColorScheme-Text\
+ {\x0a color\
+:#232629;\x0a \
+}\x0a </style>\
+\x0a </defs>\x0a <pat\
+h style=\x22fill:cu\
+rrentColor;fill-\
+opacity:1;stroke\
+:none\x22\x0a d=\x22M\
+ 8.7070312 4 L 8\
+ 4.7070312 L 14.\
+125 10.832031 L \
+15.292969 12 L 1\
+4.125 13.167969 \
+L 8 19.292969 L \
+8.7070312 20 L 1\
+4.832031 13.875 \
+L 16.707031 12 L\
+ 14.832031 10.12\
+5 L 8.7070312 4 \
+z \x22\x0a class=\x22\
+ColorScheme-Text\
+\x22\x0a />\x0a</svg>\
+\x0a\
+\x00\x00\x01\xcc\
+<\
+svg xmlns=\x22http:\
+//www.w3.org/200\
+0/svg\x22 viewBox=\x22\
+0 0 24 24\x22>\x0a <d\
+efs id=\x22defs3051\
+\x22>\x0a <style ty\
+pe=\x22text/css\x22 id\
+=\x22current-color-\
+scheme\x22>\x0a .\
+ColorScheme-Text\
+ {\x0a color\
+:#232629;\x0a \
+}\x0a </style>\
+\x0a </defs>\x0a <pat\
+h\x0a style=\x22fil\
+l:currentColor;f\
+ill-opacity:1;st\
+roke:none\x22\x0a\x09d=\x22m\
+4 3v1 13h1 2 1v1\
+ 1h6l4-4v-1-7-1h\
+-2v-3h-1-10-1m1 \
+1h10v2h-7v1 9h-1\
+-2v-12m4 3h8v7h-\
+3-1v1 3h-4v-11\x22\x0a\
+ class=\x22Color\
+Scheme-Text\x22\x0a \
+ transform=\x22tra\
+nslate(1,1)\x22\x0a \
+ />\x0a</svg>\x0a\
+\x00\x00\x01\xd7\
+<\
+svg xmlns=\x22http:\
+//www.w3.org/200\
+0/svg\x22 viewBox=\x22\
+0 0 24 24\x22>\x0a <d\
+efs id=\x22defs3051\
+\x22>\x0a <style ty\
+pe=\x22text/css\x22 id\
+=\x22current-color-\
+scheme\x22>\x0a .\
+ColorScheme-Text\
+ {\x0a color\
+:#4d4d4d;\x0a \
+}\x0a </style>\
+\x0a </defs>\x0a <pat\
+h style=\x22fill:cu\
+rrentColor;fill-\
+opacity:1;stroke\
+:none\x22\x0a d=\x22M\
+ 7 7 L 7 17 L 17\
+ 17 L 17 7 L 7 7\
+ z M 8 8 L 16 8 \
+L 16 16 L 8 16 L\
+ 8 8 z M 6 10 L \
+4 12 L 6 14 L 6 \
+10 z M 18 10 L 1\
+8 14 L 20 12 L 1\
+8 10 z \x22\x0a cl\
+ass=\x22ColorScheme\
+-Text\x22\x0a />\x0a<\
+/svg>\x0a\
+\x00\x00\x01\x86\
+<\
+svg xmlns=\x22http:\
+//www.w3.org/200\
+0/svg\x22 viewBox=\x22\
+0 0 32 32\x22>\x0a <d\
+efs id=\x22defs3051\
+\x22>\x0a <style ty\
+pe=\x22text/css\x22 id\
+=\x22current-color-\
+scheme\x22>\x0a .\
+ColorScheme-Text\
+ {\x0a color\
+:#232629;\x0a \
+}\x0a </style>\
+\x0a </defs>\x0a <pat\
+h style=\x22fill:cu\
+rrentColor;fill-\
+opacity:1;stroke\
+:none\x22\x0a d=\
+\x22m4 4v24h24l-1-1\
+h-22v-13h5l3-3h1\
+4v16l1 1v-21h-10\
+l-3-3z\x22\x0a cla\
+ss=\x22ColorScheme-\
+Text\x22\x0a />\x0a</\
+svg>\x0a\
+\x00\x00\x01y\
+<\
+svg xmlns=\x22http:\
+//www.w3.org/200\
+0/svg\x22 width=\x2216\
+\x22 height=\x2216\x22>\x0a \
+ <g font-weigh\
+t=\x22400\x22 fill=\x22#4\
+74747\x22>\x0a \
+<path d=\x22M3 3v2h\
+4.5C8.34 5 9 5.6\
+6 9 6.5V12h2V6.5\
+C11 4.579 9.421 \
+3 7.5 3z\x22/>\x0a \
+ <path d=\x22M6 \
+9h1c.257 0 .529.\
+13.719.313L10 11\
+.592l2.281-2.28C\
+12.471 9.13 12.7\
+43 9 13 9h1v1c0 \
+.31-.09.552-.281\
+.75L10 14.406 6.\
+281 10.75C6.091 \
+10.552 6 10.31 6\
+ 10z\x22/>\x0a </g>\
+\x0a</svg>\x0a\
+\x00\x00\x01\x8a\
+<\
+svg xmlns=\x22http:\
+//www.w3.org/200\
+0/svg\x22 width=\x2216\
+\x22 height=\x2216\x22>\x0a \
+ <g color=\x22#00\
+0\x22 font-weight=\x22\
+400\x22 fill=\x22#4747\
+47\x22>\x0a <pa\
+th d=\x22M2 9v1c0 .\
+265.093.53.281.7\
+19l3.72 3.719 3.\
+718-3.72c.188-.1\
+87.281-.453.281-\
+.718V9H9c-.265 0\
+-.53.093-.719.28\
+1l-2.28 2.281-2.\
+282-2.28A1.015 1\
+.015 0 0 0 3 9z\x22\
+/>\x0a <path\
+ d=\x22M8.5 3A3.515\
+ 3.515 0 0 0 5 6\
+.5V12h2V6.5C7 5.\
+66 7.66 5 8.5 5H\
+13V3z\x22/>\x0a </g\
+>\x0a</svg>\x0a\
+\x00\x01+Y\
+%\
+PDF-1.6\x0a%\xe2\xe3\xcf\xd3\x0a1 \
+0 obj\x0a\x0a<<\x0a/Conte\
+nts 2 0 R\x0a/Thumb\
+ 3 0 R\x0a/Type /Pa\
+ge\x0a/Resources 4 \
+0 R\x0a/CropBox [0 \
+0 595 420]\x0a/Pare\
+nt 5 0 R\x0a/Rotate\
+ 0\x0a/MediaBox [0 \
+0 595 420]\x0a>>\x0aen\
+dobj\x0a\x0a4 0 obj\x0a\x0a<\
+<\x0a/ColorSpace \x0a<\
+<\x0a/Cs1 6 0 R\x0a>>\x0a\
+/ProcSet [/PDF /\
+Text]\x0a/Font \x0a<<\x0a\
+/Tc1 7 0 R\x0a>>\x0a>>\
+\x0aendobj\x0a\x0a2 0 obj\
+\x0a\x0a<<\x0a/Filter /Fl\
+ateDecode\x0a/Lengt\
+h 358\x0a>>\x0astream\x0a\
+x\x01\x9d\x92Ko\x830\x10\x84\xef\xfe\x15s4\x07\
+\x88m\x9e\xb9\xa6\xea\xa1\xbdEA\xca\xa1\xea\xc1\x05\xa7\
+ \x01VBh\xd5\x7f\xdf\xe5\x15\xa2\x16\xa9RO^\
+\xef\x22\xfc\xed\xcc\x9c\xb1\xc7\x19\xb1\x82\x94\xd2S\xc16\
+D\x10J(?\xf2\xe2P\x84\xb8\x18\x1c\xd1`\xf3\xd0\
+Jd-\x04\xda\x8c>\x17\xde6N|\x91\x08j\x08\
+\xb8\xcb\x95\xfe\xe3\x07\x09\xcbj\xecR\xc8d\x1c\xd3\x19\
+IH\xa5\x90\xd6\xd8\xa4\x19\xd5HOx\x01O\x1dH\
+\x1f\xfcB\x87\x00\xb7\x0e\xb6\xe0U\xd5BO\x1d\x83k\
+a\xd0^\x1d\xe6&\xe0\xdd\xc9\x81\xeb+p:e\x00\
+\x0e;\x17\x9fE\x999\x88\xc0\x0bT\xe6}\xa8L\x93\
+\xa3lQ\xeb\xdc8xE\xfa\x8c\xc7\xb4_\x95-\xb0\
+\xab\xecXe\x0f\x82_\xecG\x82\xf2\x89\xa20\xc4\xd8\
+\xf3\xc6D\xa4\xaf\xc3\x0e(lm`\xe7.\xe1Ut\
+\xed\xa6\xa1m\xa0\xd1\xcfh\x15]\xe6\x84\xc7nx\x7f\
+I\xbb\x8e\x17E3\x1e\x9b\xa5\x05\x0e\x16\xe5,\xd0\x88\
+\xf75\xeaf\xbb;\x81oT\xd3\x16\xe4\xc3$\x18\x1b\
+\x05\xfb\x1fQ\x92\xccD\x83\xd9\x8c\xcc\x06\x9e\x9a\xc1O\
+\xb2\xaa_}\xb2;\xc7!\xd3M^j\xe8\x92D\xb9\
+\xb3\xea\xaf\x97Wc\xa6(I?c\xb6\xa3\xdcP~\
+\x0c2\xdd{\xe0\xf6a+m\xd7\xe2m\xb6\xa41\x1f\
+\x0e\x93\x94\xbe\xc5\xc9>l\x8a\x22\xb5\x18\xe5\xdd\xd3\xed\
+\xbf\x01w\xa3\xbaf\x0aendstream\
+ \x0aendobj\x0a\x0a8 0 ob\
+j\x0a\x0a<<\x0a/Alternate\
+ /DeviceGray\x0a/Fi\
+lter /FlateDecod\
+e\x0a/Length 1088\x0a/\
+N 1\x0a>>\x0astream\x0ax\x01\
+\x85U]h\x1cU\x14>\xbb3;y\x89C\x11m\
+K+u\xf0\xaf!\xa4aR\xad&\x16\xb5\xdbM\xba\
+\xbbM\xd8\xae\x9b\x8d6U\xaa\xd3\xd9\xd9\xeet'3\
+\xe3\x9d\xd9\xb4\x09}\x0a\x82oZ\x10\xc4WE|\x12\
+-\x88\xd0j\xc4\xe4\xc5\xbe\xb4T\xa8\x89\x14\x8b (\
+\xb4XA\x10\xfa \x0a~gv\xb2;\x1b\x91\xccp\
+g\xbe9\xf7;\xe7\x9e\xf3\xdd{\x18\xa2\xbee\xc3\xf7\
+\x9d\xb4F4\xe7\x86\x22_\xc9\xce\x1e\x9f=\xa1\xf5}\
+GiR\xa9\x9fp\x19f\xe0g\xcb\xe5)\xc6\xae\xe7\
+Z\xfc\xee\xbd\xee\xadS\x8a-7\xf6q\xac\xde\xb9-\
+\xbf25+0\xc1Z\xc1\xf0j\x819G\x94\xd2\x89\
+\x94a\xd3\x17!Q\xdf\xeb\xb0\x8f\x9e\x0d}\xc6\xef\x03\
+?\xd0\xacVr\xc0\x9f\x00\xab\xb1/ =\x98\xb7\x5c\
+K\xd8\xa6\x96\x17\xc6\x82V\x16^\xddv\x92\xb9n5\
+\xcf1\xb6\xbc\xe6\x9c\x16\xe7\xca\xd7\x1e\x8c\xfe\xa09=\
+\x89\xf7 r>W3\xc6\x19?\x05\xfc\xa1iLL\
+\x03\x0f\x01\xaf\xfb\xe1\xe1J\x9b\x93N\xb7\x9a3\xd9\xb6\
+==T\x17Gfb\xfb\xf1F\xab\xc0x\x98(\xbd\
+\xb4\xd8\xa8\xbe\x0c\xbc\x0d\xf8\xa2{\xaat,\xe6\xaf\x98\
+A\xee\x04\xf0c\xb0\xdfmXE\xde\x0f\x8dH\xdaf\
+\x87\xc5*0|%]x\x15\xe6\x83#\x9d\xacY\xe3\
+\x13\xc0\xcf\x02/5\xbdI\xcea'\xf0r0?\xcd\
+v\xe6\x7f\xbf\xd8\xc8\x95\x80\xb1\x96\x9c>c\x1c-\x03\
+o\x07\xbe\xdfr\xf2\xccG\x1cy\xc0\x0f\xcb\x1cs\x14\
+x\xcauJ\xbc.\xea\x95\xdf\xb4\x82\xa8\xc6\x01\xe0O\
+\xc3F\xb5\x10\xf3\xd7CQe\xdfG`\xff\xabn\x1f\
+)\x02C\x87\xccC\x0dQ`;\xf2\xc9\x14|':\
+OO\x03/\x89V\x85k\x7f\x02\xf8\x92!&\xf2\xc0\
+\x88\x99\xf9\xc9rgXC`E\xa1\x97R\x06Y\xe4\
+\xd1)<Mr\xe9\x1f\xd4\x1e\x90M\xf3\x11\xf2I`\
+\xae\x8eo\x87\xf2`\xb8\x18\x02\xc3\x01\xeb4\xd0\xaf\x14\
+b\x9e\xad\xec\x1fP\x136\xf6eF\x80g\x19C\xc4\
+\xfe\x1a\xd5\xf0\xd5\xf6\xb31\xcb\x88#\xde\x8e|\xccM\
+\xdc\x1c\xe2\xb8\xb4H\x06x\xed\x95\xef\xc4<O\xde!\
+\xeb\xf2\x93\x18\x07\xe5)\xf99yT\x1e#M~A\
+>$?/\x8f\xc3:&\x1f\x8c|\x04|\x17\x10\xb5\
+[\x01\xafx\x07Q\xdb\x91\xde\xa0VO>\xab\xc89\
+\x84\x8fC?\x83\xe3E\x19\x06\xc8\xe0oDhF\xcc\
+\x84\x1a\x17v\xb5\x06|\xff\xbd\xb7\x97\xc4k\xb6y\xfd\
+\x9d?\x12\xeapm\xcd\xb8\xce\xae>\x09_:\x96T\
+;\xd2\xbf\xb6Y\xed\xcc/\x99\xdb\x995<ofn\
+%\xaa\xd12?fn\xe1\xbe\xd9S\x97\x17\xaff\xa3\
+>\x1b\x99o(\xcb\xda\xdb\xd8U\xaf\x87\xbd\xb1\x03\x9b\
+YYT\xeeD{2\x87jY}\xdeQV\x9f\x95\
+l\x01\x87x\xd6aui_2\xe2\x95\xf3\xcb;;\
+\xbc\x05\xd2\xd6\xe4K\xaf\xde\xe8\xbfr\xfe\x7f5a}\
+Xg\x8b\x12\xaa\xd4\xdd\x0b\xbb|\xff\xe4\xc7\xac\xa6\xf5\
+V\xe9^\x89\x96\x86\xf4\x8b\xfa]\xfd#\xfd\x07\xfdw\
+}M\xff\x00\xe87\xe9]\xe9\x0b\xe9k\xe9\xb2\xf4\xa5\
+t\x954iEZ\x95\xbe\x91\xbe\x95>\x93\xbe\xc2\xd7\
+\xe7\xb0\xaeJ\x97\x91[\xf2\xd4\xb5OY\xe7\xf4 \xd3\
+\xf694\xe3\x13\xc6\xf5\xf0)\x0e\x88\x15`6\xd7\xcf\
+\xd6\x0d\xa5\xce`\xae\x9b)\x9f\xed\xcd+\xb0\xce\xdd\x13\
+\xddYK=\xac\xeeV\x1fU\xc7\xd5\x87\xd5\xc7\xd5)\
+uP=\xa0\x1eRw\xa8\xfb1F\xd4\x82\xba\x173\
+\xbb;*qO\xb1\xd66\xdee\xbc7\xfa\xce\xa6\xd9\
+H\xab\xf6\x8epV\x0d\xa8'\x90\xa5\x81\xbb\x9b\x17\xf7\
+\xa8\xdd\x89\x868\xa9\xfb\xa03G\xebrx\x8dvw\
+\xdb\x88\xa2\xc5\xdd\xeb\xa1c\x0d\x9aA\xc56\x9d\x8d\xb4\
+\x0b\xf0\xed\xe0\x1b\xbb\xf9\x1fo\xeeId\x97z\x05'\
+\xcb\x96\xf7\xc8#r1\xee\xc1\xac|\x00]8\xd9\xd3\
+\x8f\xa3\xdc\xa5\xca\x842\xaedIS\x06\x951eD\
+9\xca8\xaa\x95;TS\xf6bv\x0c\xcf\x89d\xf6\
+\x88\x9e\xe0\xf4(\x82\xbfOh\x9d\xc3\x7f\x8b(\xe7\xf9\
+\x0b\xc2>\xdd\x08\xb5\xfd\xba\xfe\x8c\x96\xc5o\xd2\xd2\x8a\
+\xae9<\xa4\x19\x8e\xa3ES\x81&\xac\xc0\x12\xf3V\
+m\x98\xf8\x1f\xcc~D\x7f\xbe\x18\xfd[S\xdb\xaf\x9a\
+-1\xdf\xb6Q*u\x8d\xe8_\xfa\xba\x87{\x0ae\
+ndstream \x0aendobj\
+\x0a\x0a9 0 obj\x0a\x0a<<\x0a/S\
+ubtype /Type1C\x0a/\
+Filter /FlateDec\
+ode\x0a/Length 9327\
+\x0a>>\x0astream\x0ax\x01Uz\x09\
+x\x14U\xbeo\x87\xd0\x9dJ\x9dN\xd0\xd4\xb4C\xba\
+\xac*Q\x11w\x14\x14\x18\xc5\x05DT\x04d\x93\xd5\
+\x05\x0c\x9b\xec\x81\x90\xce\x9eNo\xb5\xf4\xa9\xa5\xb7\xa4\
+\xbb\xd3\x9d=!\x81\xb0\xc8\xa2 \x9b\x22\x02n\xac\xb2\
+\xb8\x0e\x8e\xf7::\x8e\xd7\xf1\xce\xcc=\xed\x94\xf7\xfa\
+\xfe\x1d\xe6\xce{\x0f\xbe/_:]Ug\xa9\xff\xf2\
+[N\x8ee\xf0 KNN\x8ec\xe1\xec\xa7\xe7\xcc\
+\x9a{\xd7\xf4\xcd\xcb\xca\x97\xcc.[z\xcf\x13\xeb\xd7\
+-\xcd~qg\x86\xb5dn\x1c\x94\xe1r3C\x07\
+\x8f\xb1\xe7\xf6\xd9\x07\x07\x0b\x86\x9b\xda\xcf\xc9\x9f}\xd6\
+\x1b\x87\xe4\x0e\xb9q\xc8\xf8\xeb\xcf\xdc\xc8\x9e)\xb2\xe4\
+\xe6\xe4P7\x08\xf7\xdd7\xea\xde\xfb\xee\xbbo\xe0A\
+7\xc1\x93n\xca>\xe9_\x9f,!\x18\xce\xe2\xcd\x19\
+\x96S?\xe8\xaeA/\xe4\xce\x1e|\xd7\xe0\xe5\x83\x9b\
+\xad\xb3\xac\xeb\xac\xa2\x15[\x7f\xb6\xcd\xb0\xbdn;\x98\
+W\x94\xb7<\xcf\x95'\xe6\x05\xf3\xba\xf2\xbe\xc9\xfb\x13\
+u7\xf5*\xd5Cm\xa7\xde\xa4NP\xe7\xa9+\xd4\
+\xe7\xd4\xd5\xfc!\xf97\xe6\xdf\x9c\x7f[\xfe=\xf93\
+\xf37\xe7{\xf3\xc5\xfc`~<\xbf#\xbf?\xff\xfd\
+\xfc3\xf9\xdf\xd0\xb94E\xdfD\xdfN?M/\xa7\
+7\xd0et\x05\x1d\xa5\xbb\xe8\xb7\xe8\xcf\xe8o\xe8\x1f\
+\xe8\xbf\xd2\x04\xe5!\x0e\xdd\x8e\xc6\xa1\xa7\xd0t4\x0b\
+\xbd\x84^A\xeb\x90\x175\xa2f\xd4\x86\xba\xd0Nt\
+\x14\x9dB\x1f\xa2s\xe8\x22\xfa\x04}\x8f~\xb2\xe7\xda\
+\x91\x9d\xb1\xff\xd6\xce\xd9\x87\xd9\xef\xb2?h\xff\x9d\xfd\
+\x11\xfb\x04\xfb\x93\xf6\xd9\xf6W\xec\x1b\xec\xf5v\xc9\xae\
+\xda#\xf6\xb8=mo\xb7w\xdb\xb7\xdb\x0f\xda\x8f\xd9\
+\xcf\xd8\xaf\xd8\xaf\xda\xbf\xb5\xff`\xff\xc9\xfe_\xf6\x7f\
+\xd8\xff\xa7\x80.p\x14p\x05\xc3\x0aF\x14\xdcU0\
+\xb2`t\xc1\xd8\x82\x87\x0b\x1e+x\xa2`z\xc1\xec\
+\x82\xf9\x05/\x17,/X\xbb\xcc\xe4&\x9a\xaf\xaf0\
+\x8b\xc5zQ\xf2J\x9b\xfdC%E\x99M\xab|\x12\
+\xb7\xe3\xae\xde\x1e\xa5u\x1c\x8d\x83\xaa!M\xe4^1\
+8U\x8d\x17\x87\x8f$\xafD\xde\xa0BX\xd3\x0dv\
+\x87\xfa\x07u\x07\x8e/l\x1f\x15\x9f\xafz\xa5\x80O\
+y\xc5;T\x1c\x03\xf7\xf7\xe0-\xb8\xbf\xb5[i\xb5\
+\xdf\x1a\xe6\xb0.'\xb9R\x83\x0b\xcb\xb1\xe2\x95d\xd4\
+\x0c\xb2{\x13\x19Ji\xbd\xb4\xc4\x22b\xf5\xa6~\x1d\
+4\xddm\xf9\xd5r\x9d\xdbR\x17/:\xf0)y\xe9\
+4s\xa5\xe3IN\x0e`q&\xdd\xe7\x0b\xcb\xd8\xaf\
+\xd4\x15\x8b\xb3\xea\xcd\x11\x8a\x99G\x99/*\x17\xa7~\
+\xc7\xfe\xed\xe27\xe4YU`\xf6\xe3\xbf\x05\x88\xcd\xff\
+\x1fJD\xd5\x22j[h\xe8F\xce0\x9c\xb3h\xe6\
+\x8a9\xc2&\x05\xe8\x00\x0e\xcc\xa4w\xf9B\x9b\xe9\x86\
+\xe2\xf0]\xd8\x1c\xfe\xb4\xd3\x9c\xa9\xacyl2;a\
+\xfd\xd7\xe4I,|\x81\xc9m\xe1/x\x1c\xd5\xd4\x08\
+\xa6\x98\xfd;\xc2\xd6\x7f>\x02u\xc3,\x0cZ\xe8\x09\
+\xc4d\xcd\x83\xdd\xc5\xf5\x9a\xb9\x00\xcf\xe7\xf12\xd5\x5c\
+\xb1\xd2\xe9\x91d\x9f\xec\xa3\xc5I\xb4\xc67g\x17\xbc\
+\xb3[i\xca.X]\xc8\xad\xea\xe3TQ\x8d\xf4\x19\
+\xe4\x95]\xce\xdd\x1a\x99l|\xc8\x1bZ8\x8c\xf9n\
+\xc3\xda\xcbi\xea\x1c\x0e\x91\xde\xb9\xb4\xa8\xfaua\x87\
+/\xac`Q\xaa/\xde8r\xf5]\xeb\x1f\x95\xbc\xfe\
+\xea@\x0d%\xda\xa4&\x7f\xab\x14\xdexq\x19\xb1n\
+\xfcR\x8a\xea\x9a\x81\xb7\x87\x86j\x9a\x11\xc2)Z0\
+\xc7g\x97'b\xffL\xba%\x10VB~-P\xbc\
+w\xf81S\xd8\xf6\x90\xe6\xd1\x1b\xb0\x9bR\x97j\xa6\
+c\x95\xd3\xadH>\x85_\xe9\x19I\xa7q\x1f\xde\xb2\
+\xa5S\xe9\xb4\xdf\xaa\x05Une\x1f'rQ\xe7V\
+\x85\x0c\xd1\x0e\xf38\xa5\xc5\xc2\xc9\xbes'\xc8\xad{\
+\xbe1\x1au=\xaa&\x8cz.\xe4\xe3$\x1e\xe1)\
+\xaay\x9d\xd7\x19\x90d\xbf\xcc\xafj\x18I'p\x0f\
+\xee\xebus.N\x93\x8d\xa5\xf4\xea\x88\xd5\xa7Jj\
+\xd8\xd9\xa3\x91!\xf85\x1e}/7fF\xf6\xd4\xb4\
+\x92%\xe9\xa2\xd3\x97\xa6\x1d'\xf7\x5cz\xea8\xf3:\
+\xd9\x99\x99\xe4\x08a\xbf_\xc0kU\xd3\x82gQ\xcc\
+\xbe\x7f>\xdb?\xf0\xecW=VY\x91\xef\xe3\x92\xd9\
+\xe7o\xd9\xa2\xa4\xed\xb7&\xe9\x81!\xd6\xfck\x08u\
+`\x08\xe6M\xf5\xfd\x10\xb9/\xe6Ls~\xde\x5c#\
+YI\x81\xb2\xe3\x0f\x1f\xb1\xb1\x90(\xea\x82.i\xb0\
+!M\xa5\xb1\xd2\xc6RJR\x83\x0af\xf5\xb0\xae\x09\
+\x81\x1f\xad\xba\x0c\xaf\x86\xd7\xdd\x95\xda&\x96\xf9t\xd8\
+\xa3\x0f\x9a\xc3\x02\x02s\xe9E\xc5\xda \x8a^YP\
+$\xc5\xd7\xc5A\xdc\xf3\xa7Te\xb3a:\xf0\xb2b\
+\xb5\x8c\xf3KN%\x18\xdcJo\xf3\xd0\x92\xf0b\xd8\
+\xea\xc7\x12\x8etcr\xef6'\xf3zR#\xb9\xea\
+\x09\xbe\xf0O\x03\xcb\xfe\xf5\xd7?\xbb-m\xbfZ\xce\
+\xb8--Eg.N?N\xee\xbe<\xe98\xb3\x8f\
+\xb9x:\xf3\x90c\xe0\x99\xea2\x0a\xcf\x0f\x8f\xa2\xfb\
+:\x95\xfe\x07hC\xce>\xd1\xf7\xff<q_R\x1d\
+x\x22\xb93j\xc5\x93U\xf3R\x9d\xd3/K~\x88\
+7HQ\xf1Yx\x95\xadx[o\xaa\x9f\xd3\x97\xd2\
+\xafFa2\xb2n8c:\xa9\xc7\x1f\xf0\xf8oa\
+\xf2\x22n\xa4B\xb2&b>\xe4\xdah\xbc\xcc2\x9f\
+\x987L6\x07\x99\xf9\xa2\xc0\x5c|\x01\x96\x0a\xe9*\
+\x09\x8a\xa8\xf8e\xa7\xfc \xc7\xbcI\xb8^\x07\xa1\xd5\
+\xed\xff\xf6)\x1b\x8b\x8b~C\xd0`\x9bD\xe7\x1a<\
+\x06?\xc1\x17\xcas\x15\x13IN\x98\xa1\x0e\xc5\xa19\
+\x98jm\x0b&\x06\x8a\x83\xa6$\xb9\xb5Qx\xfb\x8a\
+\x11v*\xbdA\x92w\xcayR!\x1cn\xe3C\xb2\
+Z\xc9\xa1;\xcb\xe1\x8dj\xb4!\xf4bkX\x97\xea\
+d!\xb0\xd4c\xe6?\xe74\x8bz\x1e>\xf1\xfe\xbe\
+\xaf\x88\xa5\x8bW\xa3j\xa3\x1e\xa7t\x9bR\x17t\xbb\
+\x9d\x88\xfc#\xed\xf0i\x92\x8a\x93\x94\xd6\x15&\x8e\x13\
+N\xe2p}9\xfd\x89\x05\xe6\x88\x89\x15\xbc\xec\x93\xea\
+\xe5z\xc8\x10\xdc\x18L\xe2\x04\xa5\x1e\x0d\x91\xdbu\xa7\
+!\xabi\xda\xcc\xdd\x04\xe3\x95\xd2\xce\x80\x1e\xd0\xf8~\
+\xc5\x1aR \xdc\x9cx\x8d:l\xc1Tl\xe6nv\
+\x06d) \xf3k<V)\x1bh\xad\xb8\x05\xf7l\
+iW:\xef\xa65e\x22\xb7&j5\xe8\xb0s\x9b\
+\xfe\x91\xde\xc9\xff)u\x88\x8c>\xc4\xeeN\x8c4\xed\
+Ke\xd3\x22\xd7\x0a\xb2W\x0ex\xe5\x8d\xdel\xa5\xcc\
+Fi\x1b\xde\xd6\xd3\xa2\xb4fo\xf6\xd3\x88\xb8H\xd0\
+!\x86\xe0\xbfN\xa5\xab\xcb\x92\xaf\xb2\x0f\xbfr\xef\xc3\
+c\xf7\xbepX@s9\x85\xf3\xd7a/\xebS\xc4\
+z\xba\xba\xc4\xb5\x98\xf2\xcb\x91@\x0b\xedT\x1e\xe4\xd0\
+1\xf3\xe6\x9fLy\xffp\xca\xa7\x1br\x88\x0d7\xaa\
+jH\xd0\xa6\xd0\x9aS=\xa6\x93\x0dx\xb7\xf6a\x88\
+\x8c\xc7\xdd8\xadC\xa5j\x0b\xd5s\x86S\x1dK\x9b\
+\xbf\xb5%\xa0\xc4I3\xe9~_L6\x02\xb8\xbeX\
+{\x11\x9b{\xf10\xea\xe5<Q\x0a$\xfc)1V\
+\x5cB\x06\xddD\xf6\xaf\xbfB\xe9\xb2\x82\x03,2\xc7\
+\x12o#9\xda\xf8\x9a+\xe7\xfd\xc3\xb9M\x99\xe3S\
+8C\x95\x02\x02\xde\xa8\x8eY\xe6\xc2\xb7W8\x07\xb6\
+h\xbd\xdf*\xcb\x01Q\x81\xe4\x11\x12\xb8-\xd8\x91n\
+\x096\xdbo\xc5X\xe5JCV\x11\xcbXw\x86\xd4\
+\xaf\xf11~1'\xc9|\xe1\x8a\x89\xa2\xd7/7H\
+\xc5\x9e\x15\xe6o\xfc\x1b\xd8\x15\xaa-\x9a\x8c\xa5\x8c\xe8\
+\xbb?\x10\x96\xa4\xcf\x90b\xca\x88b#\xe4\x84N\xe0\
+M\xf2\xd0\x01D\xb6|\xaa2e\xf6\xa2\xd5\xf6\x9bE\
+Y\xf1+B\x8d\x99c\x95\xc2\x01\xdd\xc5a\xfe\x8do\
+\xadaM\x87>\x93\xfe\xc2\x1f\xd8*$\x94\xb4\x12\x96\
+)$\x8awsh;\xf9\xd2\xb1\xa8s\xe5\xc9\xa5\xfc\
+\xc9\xa5\xed\xabJ\x9c\xb3\x16\xaf\x9f\xefq\xeb\x86\x9f\x17\
+5\xf8\x1fr\xb75t4\xb45\xd1\xa27 \x0a\x91\
+\xb1Vq\x0b\xa7\xf0bS\xbb\x94dI\xee\xf1\x8f\xce\
+\x1e_\xbd{\xc6\x1ea\xfe\x8e\xca\xae\xbd\xce\xd7\xda\xf7\
+\x1ehl\x94\xfd!\x1e\xc5\x94\x98\x12RTy\xa8\xaf\
+\xceS\x13p/~\xe4Qs\xc4\xe3\xe6P\xaa\x82S\
+\x9c\xb2\x0a\x15\x8e\xf7\x18\xba\x18\xdd\x92\xc4\xc7\xbe8\x22\
+w\xb2\x86\x8a\x0d,4~o\xd5\xb1O\x97Y\xc5E\
+\x0b\xa53`\x13\xa0\x15\x16/\xf3\x8c\x157*\x14\xba\
+\x97>\x18&7\xab-\x026d\xdd\x0f\x7f8\xbe\xfd\
+\xed})A\x8fj\x8dz\x8cRm(8\x95C\x8e\
+\x8a\x1d\x5c*\x15\x8b7774\xd6\x08\xc4vCE\
+\x82\x8bs5B!\x99N\x06u}\xdd\x7fL\xd8\xdf\
+\xbd\xadk\x1b\x1b\x8fdSS\x17u\xbf\xe6\x89\xafm\
+Z\xd5\xb4\x86R&pzD\x9fI7\x90\xc1\x8a\xa1\
+@\xc6\x17\xc7\xaa*\xb4\x0d\xec\x9cy\xeb\xe6\x96\x08\xf3\
+\xd18:\x88\x9a\x8b\xf4\xc6\x8e\x8f\xdb\xdf:|\xb0\xfb\
+b\xb2\x91\xe9\xb3\xbcF\x0e9L\xdb\x81\x91\x07\xa6\xf3\
+\xcca\x8b\xdf\x90}~\xb6\xc2\xa5\xe9\x95\x82\x17\xbbC\
+R\xb8\xae\xd3\xd7\x5c\xd7C\xa9rP\x11E\x11\x1a\x80\
+C\x92%Q\x12\xdcU\x9bV\x97\xaf\x91%U\x86\xe4\
+\xdc@\xab]m\x89D*\xd1Z\x9d\xa8kw\xa92\
+\xb4>MSuY\xa36\xf7\xb9\xb6TuP\x9a,\
+\xab\x0a[hv'\xcb3?\xb9r\x1e&\xc9\x5c\xf2\
+T\xe6{\x87\x0bW)\xa2{\x9a\xf9\xd8\x03\xa6\x7f\xb2\
+\xf9$%)Q9\xcc\xf6\xd0*\x16\xbe$K>#\
+\x0b?!s(\x0d\x075\x99-,\xa5\xe4\x09\x9c\x86\
+\xf0\xfba2>\x029\xaeCM\xe9\xf0\xee\xf2\x94\x93\
+\xde6\xf2\xdb\x9d\xa8\xc1]U\x13u7\xa7\xa2M\xcd\
+\xa8)3\xe5\x1e\x1aM\xe6X\xa4?\xcb!sDf\
+{gN/\xb1\xe7\x92;2\x87\x1c\xcd\x1c\xbf\x1e/\
+\xd4W\xaa\x94(U\xb8ae\xaa\xd0\xa5\xbe\xa7wk\
+\x14 \x87\x90Px\xb7\xcb*WpNI\x83\xba\x81\
+\x1a8\xb8\x00\xda\x1e\x8dX(&\x8a\x80\x1c\xaa\x11Q\
+e\xa1\xa2\xadl{]\x1b$\x92\xd8J\x07%5\x10\
+w\xbd\xb1l\xdb&J\xc5JP(t\xa8\xa1\xec5\
+\xae\xb6\xcd\x03\xd7HR+\xad\xc0\xe3\x9a\xe0\x9a\xfeM\
+\x14\xbev\x8d\xb2\x86v\xfa\xd5-\x1c\xbb=bE\x12\
+\x16\x90\xa2\xf2\xe8/^:\x0d\x0bH5Dk\x85\xc2\
+\xd6D*\xd5^\x93\xac\x12\x90Y\x0c\xfddt\xa2\xcb\
+\x05\xc3\x8f\xa5Wb\xf3\xaeP)\xd69\xa9A+\x8b\
+&\xc8m\x11m\x8f\xd0\xcb\x85\x85B\x0c\xff\xd0j\xaf\
+U\xda\xce\xa5\x00\xba\xb5\xb4\xf4(\xe9\xbbi]\x82\xce\
+\x8c }\xd5\x81\xf4moi\x09&\x07z\xcd@\xf6\
+J\xd8p\xa2 \x96a\x94\xa9d\xc7\xf9\x9c]gr\
+/\x90\xbf;6\xd7U\xba*\xe35m\xd3\xb9B\x07\
+\x0e\x061L\xb0\xaa\x1a\x87\xbc\x82\x1fZ\xaa\x18\xad\xeb\
+\xac\xebq\xf7PX\x81\xc7\xb2\xd9\xec\x82\xef\xb7\xc4:\
+\x9b\xda\xe3\x94\xb6\x8a\x0bj\xc1\x90d(\xf6\xe1\xd5\xde\
+2OU\x80\x92\xdc.\xa4x\xb7\x92%\xcd\xe4\xc54\
+\xd2\x17qH\x9e\x08\xc1\xde\xd5\xb4\xab\x07\x0bShY\
+\x0c(\x12_%\xf9k\xebX\xb7'\x14\xf6\x0aH\x88\
+\x96\xef\x9e\xd9\xb5\x9a\x92aG1\xab\xa2\x90{\xb3\xb6\
+\x91\xbd\xf9\xd1\x07\x1e\x9c\xb2s\xde\xc9\x97\x84\xb3\x0b\xf6\
+\xbe\xf2\x94\xf3\xa1gW\xce\xe1\x913\x12\x88K\x0a_\
+Ri\x0a\xc6f\x95\x0a\xb9\xcb\xb4:v\xca\x8cY#\
+\x04\x84\x8f\x1a\xe47\x9aS\x97T\x84\xeb\xaa\x83U,\
+\xfa\xd52\xc4mA\x01\xce\x89\xb0\x19\x87f*e\x9b\
+\xc0:\xefH\x1aI-\xd5\xbfZ\x0a\x00\x82\xfe\xfa\x9f\
+nK\xf3\xaf\x83\x9ev[^\xe1P\xe7\xfe]M\xad\
+Z\x07G\xf9\x10\xec*\xf3\x00\xee\xef\xc0]g\x8f(\
+;X\xf4\x93\xa3r\x07\xd7\x1c\xe7\xaa\xb3\x89Z\x894\
+Y\xc9\x069\x94E\x04\x1dO\xc1\xa5\xb4LU\x94!\
+\xf9E\x1a-\xa0E%\xe4S\xd9\x0e\x1a\x02\xa8\xafq\
+W\x17\x16\xd4\xa0\x9a\xad\xa9\xa2\xc2W\x88\x01\x14\xaa\xaf\
+\xd6\xca\xd99%\x1bKV\x0bK\xe7\x97>\xfc\xb8\xb3\
+0\xe0[@#YQd\xa4\xc3K]Ok\xaa\xaa\
++Z\xf9>4?d\xe6\x95\x00\x0a\x10\xd3\xf4\xab\xe5\
+\x9c\x82\xfcj\x8a\x0b\xaa*\x85\xbah\x88T\xc0+\xe8\
+EZF~\x05\xd0\x9a\x82\xa1\xd0j|\xb7\x9el\xef\
+d\x13I\x0fR\xb8@\x1dF$d\xfe\xd1\xf1\xe1{\
+\xef~wy\xf1\xb1g\xa7N\x9fy\x1b*\xdfW\xbe\
+\xa7\xae\x83B\xd9\xeci\xf6\xc4\x90N\xeb\x08b\xc7~\
++\xca\xfc\xe2@\x1d\xe6\x9c\xfd\x99\xdf'\xeb\x9b\x90C\
+\x96$Q\x16\xea\xab\x90\x13RBKAX\xf9%\xa4\
+\xca*\xe2K9X\x14\x04\x87\x8e\xa9-\x08\xcb~\xb7\
+\xac\xf8x\x8f\x12\x10\xfdN\xd4\xbdc\xf7;\xd1v\xaa\
+\x85S%\x16#I\xd8$7\xac-c\xabkc\xcd\
+\x15\x02\x0a\xca>A\x0a\xca\x22\xcc}!\x04\x06@u\
+\x15Q\xb0p\x14\xf1c\x11\x056\xc18A\x8c\xca\x81\
+\x08d+\xfe\x12\xcd\x5c\xa2\xac\xe2\xdd\x12\x80 \x1e\xf9\
+#IO\x13[(6\xf5Ii\x96\xdcp\xf1\xf3\x7f\
+\x17P\xb6%\x0f\x5c\x9a\xbeVGQC]uM\xac\
+>\x85\x8cl\x90N\x81M\x92ac\x90\xa1\xa8HW\
+\x83\xa8\x12\xaf+wJ\xb2\x0c\x11\x84\x00Y\x89\x01\xa7\
+\x14\xa3\xe1\xd7\xbb\xb94@\x02dl\x865*\x01\xc9\
+\x09\xb0G\x86\x1cU\xd1P\x0d\xc3\xbb\xd6\x90\xa6\x86Q\
+\xc4\xeaGA\xd8\xf1E\xc3F\x97\x0br\x83\x5c/!\
+\xa5\xe7\x01\x1aM\x02\xf2\x93\x1d\xb7\xba\xd1\x8d\x00.*\
+PIjE\xd1\xc37 \x0b\x10\xd2!\x96[,w\
+Z\x1e\xb0<h\x19g\x99hy\xc22\xc9\xf2\xa4e\
+\xb2\xe5)\xcb\xd3\x96g,S,\xd3,\xd3-\xcfY\
+fXf[\xe6X\x9e\xb7\xcc\xb5\xcc\xb3\xcc\xb7,\xb4\
+|m\xe1\xb2\x5cv\xbae\xa6eE\xce\xefr&\xe7\
+l\x1cT\x9c{C\xee\xe8\xdc\xcf\x07\xdb\x07\x7f>\xf8\
+[+\xb6-\xc9\x1b\x99W\x92\xf7>\xf5#\xf5k>\
+\xca?\x9c\x7f\x99\xdeH\xab\xe8\x16;k\xbf\xd7\xfe<\
+y\x22x8\xf3\xe7\xc39\xf0\xf3\xd6\xc3\xb9\xc1\xc1\x19\
+\xe9\xe7\x19\xbfH6\xa2\x99\xef:\xccGI\xc4J\xbe\
+\xb5\x997\x99o9H\xf6\xc3/\xe1\xbc_l/\x0d\
+\xfcN\x1e5\xe1\xb3-s\x14>\x99\x113\xfb\xa9\xd0\
+\x9c_hN\x95\xae\xd5\x8a3\x8e\xb2\xfaJWU\xbc\
+:[*\xbeU\x9ak\xa2\x9e49\x90\x22\xad\x89@\
+s\xd1\xe5\x93\xe4\x9e\x0b\x0b/3M\x16RK\xbe\x00\
+\xc4\x0f\x9d\x1cS\x87\xd2\xef\xbd\xfd\xb1\xf3\xd3y\xef\x99\
+\xbf\x9d;%\xe0_\xc1g\x09\x0c\xe0t\x81y\xd8\xb2\
+C\xb66j\x01\xb7\x10\x9c\x124\x99\xe03\xc1e\xd8\
+\x5c\xb3\xca>\xdc-\x8b@^\x98y\x16 \x06\xd9\xf7\
+\xfb,\xcd4\xbaqW\x17nM\xf4(\x09\x96\x5cG\
+,\x07\x89\xfd\xd3i\x1f<\x16\x17`4\x09\xfb\xb1\x17\
+S3\xc9V\xc7\x87\x87\x96\xdc?\xea\xe99\xcf\x06|\
+X\x13\x85\xee\x10\x19\xad_\xe0\x1bqHO\xb2\xf0\x08\
+\xc2\xff2\xdda\x0e\x9a\xb8\xfcw5~#\xd2\xa2\x93\
+\x0a\xbc\x8d\xd7C\xb1`#{\xf5\xc4\x93\x8f\x08\x857\
+\xc9M\x99\x7f\x8f\xe7\x5c\xf9(\xf7f\xaep\x1b]\xd4\
+\x99\xd0\xdf'\xb7\xbc\xcb\xf4L\x84\x19x~\x04\x98\x80\
+%\xb5\x98\xe9y\x89c\xb6\xce\xe3\x98U\xf1\xdbji\
+\xa6\xa7\x91+|\x0fn\xfcCk\x11y\xe0\xec3\xa7\
+\x98\xb3\x99\xeb3\x19\x07@\x8a\x00_\xb7\x5c4\x7fc\
+\xf2\xeb\xeb\xec7\xfb\x159 \x04L\x9bU6 m\
+\xb6\x02\xd6\xd9\xf1\xb5\x95\xb9\xaa\x85C\x80\x83\x9b\xf5\x83\
+j\x9b\xa2NT\xcdq\xb8\x84b\xce.\xd3\xcc\xf5@\
+\xe2$\xb9\x92[\x09{\x90\xa5\xd7-\xb8\x13o\xdb\xe9\
+\xe6\xd4`P\xd3e`\x00\xcb\xafq\xa3\xa8\x93\xb9\xba\
+\xd5 \x8bO8\xf1>\x8dL\xd0O\xb6\xe3\xb7\x81\xbb\
+\xc6dh\xc9\x9e\xfe\x07\x86\xca\xd9\x82\xcejaM\x03\
+`\xb1[\xee\xcc\x9csm\x89\x17e\x96'\x8e\xfd\x91\
+\xd9O&\xb6;\xe4\x84\x9cT\x1a\xab\x09\xb3\x86|\x14\
+\xf8=\x15\xd6\xf5\x10\xe6w\x1bVM\x0d\x19x\x0eg\
+>b[\xc3\x050P\xd6\xce@v\xfd\xd8_\xdcl\
+\xa2C\xbf\xd8[FQ\x01(\xd8:\xdbj\xdb\x0b\x88\
+\xc8Hv\x9cy\x87lJ\x9f\xd7S\xa1vc+e\
+\xd8\xb4uz\x99\xeai\xbe\xff\x80\xb9\xbce\x1c%a\
+U\xd6\xd9\x0e\xdbN\x1c\xc2F:}\xfeJfT\xf3\
+\xa7j\x08\xf8\xb1\xda\x1a\xea\x01\xc1\xe0\x1a\xb6\xbd\x09\xb0\
+-\xf0[M\xd8\xeb\x0f\x03\x19\x91k\x8bk\xcd\xe1+\
+\xcd\xa8\xcb\x1c\x22\xbb!\xe9\x1a(\xc9&\xc5\xe4F\xb9\
+\x91b2\x9b\x083\x9b|Q\xfb9`\x0e\xe0\xd2\x0d\
+A(B\x1beI\x16+J\xcd\x1bg\x9a\x91\xf5\xe6\
+u\xc0\xed%7d\xaa\x9b*|\x94+j;G\x84\
+\x8f\xa6\x1ec\xded\x0e\xdd\x09\xf4\xe7\x01\x8e\xa9\xba\x85\
+f\x0e\x0d\xa3\x0b\x8f\x04\x92\x99\xe1G\xc9\xd4D\xc2U\
+t\xe0\x12\x19y\x8e\xf9\xfc\xbf\x88\xdb\x81\xe3\xc1\x18\x06\
+H\xf3u\x94\xbc\x1erF\x145\x1b\x97\x7f6\xf3k\
+\xad\xa5\x1c\x04\xb1.\xecT\xac\xba.\xd7a\x01\xd7\x05\
+\xcd\xa9O:oV\xcd\xc9\xcax^\x8aJ\x1aN\xd2\
+|\xe7a=\x0c\xb0)P\xbc6\xddW\xb6\x97\xfd\xf3\
+\x87\x10\xbbO\xfe\xbe\xec\xcb\xa7\x9e]4l\x5c\x99\xc0\
+|.\xba\xe5Z\xa9\x8e:o\x96;V\xaf\xda}\xce\
+#\x00\x9c\x8b\x06\xc3\xc1\x10\x0e\x85\xec\xc3I^\xfa\x10\
+\xe1\x0f\xb2;S\x93\x1e3\xc7\xae\xb8o\x96PX\xe3\
+\xed\xcd\x8cO{\x5cE}\x97\xc9\x03q\xe6J\x1f\x99\
+\xed0o<>\xf5\xab\xee\x84\xa1E\xf8\x07if\x7f\
+\xe0\x8fV\x0d\xf0,\xe6\x99+\xeb\xb9\xa3\xde\x83\xae\xf2\
+\xcc\xac4y&\x91\x82\x9b\xce\x93\xd1\x97&\xbd\xc3l\
+\x07V\xbe\xe8\xe7\xdb\x1c.:\x00\xd0Y8(YC\
+Z\xc0'\xe0\xe5\xc11\xf8%\x5c\x8ekq\x9d$\x0f\
+\x95Bb8\x10\xa2\x9ak]\xf1\xf5\xec\x1d\xcf\x99\xd7\
+\x99\x8f\x8f\xd8\xf5\xf8I\x81\xd9\xfe\xd1\x9e\x7f\xff\xaeU\
+\xd0\x1a\xb5&\xadYW\x86*5Jy\xa5\x93Yk\
+\xde\x95\xe7\x05R\x0a\x19\xd7\x14\xecH\xa5\x83\xcd\xe3\xe8\
+)\xb4\xae\xe8\x01,\xac\x8ae\xc5\x02\x1cvFT\xb2\
+\x08\xef\xe7\x99\x1d\xdaWQr0\xe4\x84\xaf\x81\xc0=\
+\xfe\xdfC\x1c\xcb*/\x7fF\xee\xdf\xf1\xc7c\xaf\xb7\
+M]\x1c\x12p\x03\xf6\x04=A\xbf\xe2\xf3\xd9\x87\x9b\
+7U.5s_d\x0b\x17p9}\x1f\x93\xeb\xcf\
+\xe5\xdeL\x17\x8e\xbd\xa67$\xc8\xcaT\xd1\xc7\xe7\xa6\
+\xbe\xc3\xec\x85\x88\xbe%3\xc7A,8\xfd\xd3Q6\
+\x12\x92@\x15\xd0$\xcd\xa7{#\x15\x8d\x1b\xa2\x9b(\
+\x05\x00\x19\xa8\x02!M\x17\x02\xdfXuE\xcd\x92\xe5\
+\xfaZ\xcd\xc52WF<o\x0e6\xf3$\x81\xf9x\
+\xa1b\x05\x943 \x0b\x94p\x1bh\xfe=\xd5:@\
+\xe0\x979\xf1\xfc\xd0(\xba\xb7\xeb\x9f\xfc\xfd\x85\xff_\
+\x11\xd8\x8b\x9b52H=A\x0a\xa3CAX\xd2!\
+{\x0a{\xcd9\xa9\xcc\xff\xc4=\xcdE\xbe\x0b\xeb\xce\
+\xcf<A\xd8\x8fK\xcf3\xbb\x99\xad;\xc9v\xc7\xa4\
+7\x17\xbe]\xcf3=e\xee\xcd\xeeU5\x94O\x94\
+$\xafsS\xc8\x17\xf3\xf3q_\x87\xa7\xc3G1\xaf\
+\x999\x937W\xbe\xe8\x9c\xf1\xfe\xf2?\x11\xdb\xf7\xef\
+}v\xfe\xe9\xf4\x98V\x9e91+\xfer,\xed\x8c\
+7E\xfa\x92|:\x9a0\x92:u\xb2\xf9\xc4\xd1\x1f\
+\x9c\xbb\xeb\xdf\xd8\xb8\x85\xff\xb8\xc9\xdaC\x87t\xa7Z\
+J\xf3c\x15\xab\xc7\x17T\xbd\x02\xb3[\xabqe\x15\
+\x90\xad\xf7\xce|\xf0n\x81\xdcdR\x8e\xa5k\x0f_\
+\xf9\xac\xfd\xe2\x9b\xfb\xdb\xa7=>l\xc3\xb2\xa5\x02\xf3\
+\x9a\xdf\xfc\xce1ka\xcf\x89\xa3\xbd\xdbvw\x0b\xb1\
+\xb0\x16\x8c\xca\xd4\xf9\xea\x0f6MwN\x9f\xb9\xf49\
+\xbe\xf0s\xd8\xf8\x9b\xde%\xcf&![\x8e_~\xfc\
+\x04\x99\xf0\x1e\xf3)\xf3\xa7\xd0\xcfw8\xb2y\x11\xd0\
+\x84\xdd\x925\xac\xfa|\xc2blnX\x03?\x0c@\
+_\x8a\x08]\x9c\xb9\xb4\xf6ZQ\x1f\x90 \x9a\xb2\x5c\
+\x1a4G\x00\xae\x1d\x9c\xf0j\x1f\x87A@sv\xea\
+\xef\x19}\xfcO\xcdG\xc8\xe8l\xec?h^\xbf@\
+\x19)\xbb\x04\xc5\xa3\xc0K\xd9\x00z\xe3@Sh\x06\
+9d{o\x8b\x92\xbaF\xc4WE}jP\xc7\xcd\
+\xc5Z_\x84\xd8N\x83x\xb0\xf9\xcb\xe7\x1e[h\x8e\
+\x9aV\xc5\xcb\x0db\xb5\xec\x86\xd2\xd1\x84[\xa0`~\
+\xaa_m$W\x8dl\xecUr\x85\xcfq_^.\
+:\xf4\xe5\xa4\xcbO\xbd\x03/f\xff\x1f3\xff\xe1(\
+\xad\xaa,\xdf\xdc^\xd3\xd6\xd6\x92jo\xabi\xde\x04\
+1\xf1\x909\xee\x1e\x9a\xd9}+\xc7\xec}\x84+4\
+o\x94c?\x17%\x92\xae\xa2\xf7>fv1g#\
+?\xdf\xee(\x070\x03\xf1\xf6\x9a\x0c\xc9\x04K\xc7/\
+h\xe6\xb4i\xb3T\xd3\xf7\xbf\xc8s\xd5\xc0\xcaEi\
+\x07\xdd\x8a\xd3\xb8\xbf7\xa5\xd0\xaff\xd3B\xd6@\xc6\
+1\x06d\x1cf\x17\xfe[\x84\xac\x89:C\x8a\x06S\
+#\xc7\xe5Xf\xd8\xbb\xcb\xe3E\x1f\x5c\x98|\x8c<\
+r\x82\x8c=\xc5\x5c\xca\x9c\x07\xa1D\xe4\x12\xf1(\x19\
+\xfa\xb1\x930\xe5_\xcc|l\xb19tJ5\x1f\xe0\
+\xeaa\x99b\x9f\x8d\xd8*\xbe\x98\xcd3\xa7\xc7\xbfl\
+\xde9\xb9\x0a\x14\x0c\x10O<\x22\x1e\x1a\x83z\x16\x85\
+\x97\xa0\x1d\x8f\x90\x11\xe1\xaczR\xc91\xaf\x9b\xb9e\
+\xd6\xec\xec\x03\xba\xd0o\x03\xa5\xce\x07\xf5l\xbdz\xcf\
+\x02's\x1aOS\xcd!\xeb\xb3:\xd4\x00t\xce\xf6\
+\xe3 \x08Qi\xdc\xdb\x93V\xba\xfe\xa5\x9f\xc0\xca\xb5\
+\xb0\xb3U;\xa9\xf7\xf3\x7fI\xec'c\x8e\xb0{\x9a\
+F\x9bC\x96\x06oV*\x05\xc5\xad\x80\x86R\xea\xc9\
+\xa25\xd0\xb1\xb2\x0aJ\xff\x96V\xa5\xcd~\xab\x8b\x83\
+6\xf5lV\x81\xf1\x82\xf6\x14s\xc6\xd5\xf7\x8d\xd7y\
+B'\xde 7\x1eew\xc5\x1f0\xaf[\xaa\x0c\x87\
+w\x0f\xc5_\x0e\xc8\xa5\x0d\x03\x80\xaf\x9d\xeb\x03\x01\xa6\
+\xe5\xda\xe8\x85\xff6\x10\x8d9\x1f\x9e'cN\xe5\xde\
+\xc1\x15.\xa1s\xfa\xa0\x84_\xcc\xbd\x8d.\x5c\x0f\xdf\
+\x8d8Rt\xea\xe2\xe4c\xccUr=\xa9r\xc4\x82\
+Q\x1c\xe1\xb5\xb7BD\x089\x0dE\xf7\xca\xbc\x99[\
+jU\x07dY~\xa7\xed_\xd2\xd1(<\x13:1\
+\x9e\x1a4opg\xd7\x9f\xa6\xffW>\x8a\x82\xf0\xbb\
+}\xcfn\xa5\x19& \x85da6Ha8\xbb\xfe\
+\x94vJ\xef\xe1\x89%\xf6\x06y\xf4\x1d6j\x04|\
+\xba\x10\xad\x8c\x94G*\xa0\xf0d\xe5H5\xac\x19B\
+\xe0\xafV?\xb4\x7f\xdd\xefU=,su\xd2+&\
+3\xa1F\x90A\xddR\xbcT\xe1+\xde\x96\xcc\xa4V\
+\xaf\xabh\xfb\xc9\xbf\xbf\xcd\x5c\xb9\x9fc\xf6\xcf\x01a\
+\xbb\x8d.\x9c\xe6\xed\xce\x8c\xe8\xa9J\x16\x9d:?\xef\
+\x14\xb3\x8b\xc43O8T\xc0\x0f\xcd\x9c\xc0\xf4\x9aC\
+Tug\xe8\x03\xbd\xbf\x18T^9P\xe1\xf1\xbb\xf9\
+\x1a\x9f\xe4\x93\xfd\x14sJ\xdc\xe4\x99/\xad\x87\xd5,\
+\xb4\xb9E\xd1/\x09\xb2(\xfb\x82\x12p\xd9`\xd0>\
+\xfc\x03l\xf5N\xf0\x9a\xd6\xd9N\xf3\x96=/\x9fK\
+E\xb0\x1a\xe5;\xf5\xceD<L\xbdB\x03\xbd3\xa0\
+)\xd9\x87Wzk\x03\x1e\x99\x92\xbd\x9e\xa0\x8f}y\
+\xe3\x1er\xb3\xc0\xec\xba\xa4]\x0a]\xe4\x0b\x9f\xa7\x8b\
+\x0e\x9e&\xf7\x9ff4\xa6q4\xc7\xf4\xdc\xce1\xd3\
+GpL\xe3$\xae\xb0]\xdeQ[\x9e\x99\x11/\xf2\
+\x93\x7f\x8c\xb9\xcal`zIUf\x91\x03\x14,5\
+\x00d<\x10\x96uQ\xa9/v\x8f.1\xa7\x95?\
+,y\xc4\xda\x81\x1e/7Jq9R\xf9i\x09Y\
+\xe9;\xa3\x84a\x9djOh(\x08d:\xc8\xe8\xe6\
+]6\xa83X\xdcDw\xf8B\xd0\xfa\x01\x93t\xde\
+r\xca\x8c\xb5N\xcf\xc2\x0cEc\xd3\xb6\xadXW\x8d\
+\xa6\xae3\x9f\x91\xfe\xc41-\xae\x1b!-\x9d\x85\x19\
+\x06\x88kc\xe9B\xb2^\xde\xf9kN,\xcb\xfa\xea\
+\x9b\x8a\x8c\xcc\xbe\xb1\xbf\x87\x1d\x1d\xbf\xdd\x01\xc0\x09\xb0\
+E\xfd\x97\x9b\xc8\xb2\xc0i*\xa2\xaaa\x95\xef\x0de\
+\xc1PV\xbf7\xef\x85\x81\xa5\xac\xbb\xd0\xee\x07\x80\x97\
+\x1d\xb8y\xcc\xebfw\xfa\x99\x81\x81U\xb6\xcd\xd6\x1b\
+\xd2\xa2\x9a\xd0r\xfc\x00\xb9'\xf9\x8e\x165Z\xb4\x04\
+\xa5\xd9\xb4*\xadV\xf5\xa6\x1e\xef7\x87\xb5<G\x89\
+\x03\x93l\xb1\xf5aC\x05=\x88\xe9M\xbf}\x96\x1c\
+n<\xa6\xc6\xf4HTK\x82\x02\x0f\x85\x1b\x84\xbe!\
+q\x1a\x86bN\xf5\x80\xd6o\x04\x14wq\xc3\xd8\xf5\
+\xe6\xd4\xea1\x8aG\xaa\x95\xae!!)\xa1D*?\
+[L\xd6\xd6\x9e\xa7\xa0\xeb\x83\xc2\x9bEA\x9b\x81?\
+I\xd5\xebL\xb4\xdc\x1c\xe5\x9aD1\xbb`_\xabe\
+\x0fU\xe8\xe1\x8a\xaa3\xd4\x83_1g\x99S\xb7\xd2\
+L\xef\x04\x1a\xfet\xf2\xed\x22Rp\xe4\xe8Q\xffW\
+\xcc\xe7\xcc\xa7\xf0\xe77'\xd0\xe6bbsT>\xc6\
+\x01A\xac\x03\x9c2\x8d+\xeb\xc8\xfc\xd2dN\x88\x10\
+\xa6\xf5\xc3\x0e\x9b9'\x91\xb7\xa93\xf3K\xdc|\x22\
+F\xaek\xfb\xa8\x95\xca\xe7\xe9\xdc\xc6\x11y/\xdb\xf3\
+y\xe5:\x8bM\xb0\xd3I\xfa\x02J\xda\xed\x17\xec\x05\
+d\xf5o\xc8'\x8e3\xcc5\x8b\xee\x5c\xce-9\xe1\
+\x9cw\x07\xcd\x18\x14\x1c\xf4\xce\xa0\x1fr\xf7\x0d.\x1f\
+\xfc?\xd6\x1a\xab\xdb\x1a\xb7\xee\xb3\x1e\xb2\xbee\xfd\xde\
+\x96k\x9be\x9bgk\xb7u\xdb\xb6\xdav\xd8>\xca\
+Cyw\xe4-\xc9[\x91\xb7)\xaf>oW\xde{\
+y\xff\x99\xf7\xdf\xd4 j4\xf5$\x05:\x0c\xf5\x06\
+u\x90:J]\xa0~\xa0\xfe\x9e\xef\xcc\xe7\x07\xac\xbb\
+;\xf3\x9f\xc9\x9f\x9b\xbf(\xbf,?\x94\xdf\x9c\x7f\x00\
+(\xd2\xc5\xfcO\xf2\xffF\x0f\xa2\x11]D\xdf@;\
+i\x9e\xbe\x93\xbe\x97\x9eL\xcf\xa2\xe7\xd1\xeb\xe8M\xb4\
+\x8bV\xe88\x9d\xa6\xdb\xe9nz\x1f}\x80~\x9f>\
+M_\xa0/\x83\xa9\xf7'\xfa\x1f\x08\xa1\xdf \x16\xdd\
+\x82\xee@\xf7\xa0G\x07l\xbd\xd9h\x1eZ\x84V\xa3\
+\xf5\xa8\x06y\x90\x84B(\x8eZP\x07\xda\x82\xfa\xd1\
+\x1e\xb4\x1f,\xbew\xd0Yt\x09}\x86\xae\xa2\x7fC\
+\xdf\xa2?\xa3\xbf\xa0\xbf\xa2\x7f\xd8mv\xbb\xfd:\xbb\
+\xc3^<`\xf6\x0d\xb7\xdfa\xbf\xc7>\xce\xfe\x84}\
+\x9a}\xbe\xfd%\xfb2\xfb\x9a=b[U\xac!E\
+\xdeL\x92\x9et\xd1\xe5O\x99\xf1\xe4\xaf?8t\xec\
+7\xa4\xa78wy\xfd\xe6\xfa\xf2\x80\xc7\x17p\xcb\x94\
+\xff\xe5\x17\xe5\x97Y\x9f\xac\xc5\x80\xcd\x94\xe0]\x02$\
+J\x14\xf3\x07\xb5\xf3j[\x1f\xadG\x0c\xd0[\xca'\
+j\xeas\x82\xd2k\x90\xf1\xc6G\x94\x8e\xd5\x08p\x89\
+\x13\x81-\x80\xa2\xc3\xb2\xe6\x8d\x96\xc66\xcd\x00\xa4\xa0\
+\x0b\xf2\x8f\xd64\x17\xe0\xdd\x0bds\xe4\x865\xb8\x92\
+M\xd0\xab\xc1\x8b\x8b\xcaj\x00|0\xb5,h\xce\xc3\
+\xcb(\xe6\x05p\xc2J\xe5\xb5<T\x92Jn\x95\xd7\
+:`\xfe1\xe3q\xe7V\xdc\xcd~zDQ\xfa\x05\
+&\xa5lK\x0030@\xc6\x00\x1a\x8e{\xd5Ki\
+\xe7\xf7\xae\xaf\x9f\x98\xbdp\xfd\xa3/\xf0\x01)\xe2\xd5\
+X<\x93\x13\x0e\xf6\xef\xdc\xd6\xc7\xeeN-\x9f\x10\x16\
+p\x8d\xb6\x16\x97Q\xa3\xcc\xf5\x8e\xb5\xae\xd7\xce_\xee\
+8\xb5\xef\xf5\xf6\x05\x15\x86\xa0B\x9d\x0c@\x05\xf6@\
+`\x8f\xabX\xb7`9X\x88GH\xd2\xf1\x97\xe5?\
+>v\xd3\x22s\x94\x99c\xdex\xe0\xa9\xaf;\xd3\xba\
+\xd1\xc8wFw\xb5\xa7\xe2P\xb7T\xa7.\x86+h\
+W]eC\xb5\x9f\x12\x1b\xaa\xc5\x0av\xee\xba\x93\x9f\
+\xfb\x05%\xa9\xf4\xb6:\x0fH\x7f\xc3]\x11\xaaQ\x8d\
+DRN\xb3\x90Lu\xbc\x111m/\x94y\xfd\x0d\
+\xa2P\x13\x98\xef\x7fE\xa7\xc8\x10\xbd\xf7\x93\xdd,\x0a\
+6(\xb5Ao\xb0\x0c/\xa9\xb6\x0f\x17\xa1_\xf3\xb1\
+\x10\x0d\xcaZ\xd3?\xdd\x10\x1d\xc4\x865\x8dV\xaf\xc8\
+\x85\x9d-\xda\x05u\x07\x8fH5\x149 N*$\
+0\x149\xc5\xc8\x169\xdf\xf8e\xe6\x13\x9b\x1f\x92<\
+R\x9dX\x9f%2q\xa9I\x8eT|^B\xe66\
+|\xa8D4`^[\xa0H\x81\x00>\x90\xfe#\xe3\
+4\xb8\xa1\x1d>\x03\x9cB\xa84\xdd\xe6\xa0\xd3f\xa0\
+\xe7q\xbd6\x18\x80\xb2\xfel\xd9\xec\xd9\xeb\xd8\x06\x9f\
+\xd1\xe4\x156\xee\xb1be9-\xf9|\xcfrmc\
+\xac\x015\x04\xa2\xf7\xe5\x0f\xc8\xf5_l\x15\x10y\xc9\
+\xeb \xb6\xcf\x08\x22e\xe4\xb1y\x846\xad\xe6\xf5\x93\
+\xcc{\xcd\xb9\xe6\xdc\xd3\xf7\xff\x87\xd0\xd8\xecxn\xc9\
+Od\x02\x99\xb0\x8b\xdcs\xe5B\x97\xc9\x99\xb7\x98/\
+\x94\x98\x05O\xc1\xad\xe3\xe0\xd6\xc2\x83d\x18)\x22\x85\
+\x0b\xbex\xc0\xcc\x9bg\x0a\xa6\xc3,8\xf8\xbb\xabB\
+K\xca\xf1\xe2\x9aOH\x01\xc9o%\xf6\x93\x87\xba\x1f\
+7\xaf7\xf3j\xcc\x82i\x02\xaa\x98\xeb\xd0k\xb5:\
+\xd5\xdd:f\x87yg\xd3\xf3+\x95\xc7\xf4\x15\x9aX\
+B\xe3P\xf3\x99^r]\xeb\xef\xd5\x88\x96\x80\xca\x88\
+.\x99\x8f\x94\x93\x19{276\xa5\x5c\x9d\xae\xa2C\
+\x1f\x901\x1f1\xa7\x99o\xd2\x99\xe9\x0e\xb9\x14\x94\x02\
+h\xa1`\x22Et\xa9V\x16\xc4e^\x93\x99\xe2\x9c\
+.\x9acTs\x04\xbf\x81\x8ew\x86\x22\x98\xd7\x8e\xe8\
+$G}\x8bZ\x1fkq\xb7\xb2\xc7v]&\xb9=\
+@N\xd4\xb8\xdaH\xe9+l\xca\xdc\xa0\x89D'x\
+w\xe0c\x85\xe8\xd6\xd6`\xc2~+\x04\x88\xec\xa7\x01\
+w\x5c3\xb1\xc8\xe2<\xe6\xd2IL\x86\xb6\x83Q\x81\
+\xfd|\x9d\xad\xb4\xbe\xa1Z\x11|\x8a\xbb\xce)O\xaa\
+\xbc\xab\xeey\xea\xa9\x9au\x8f/eWT\x1f!\xf7\
+\x0b\xcc\xe9\x83\x11r3N\xf3\x18r\x08\x04\xfe\xc2\xd1\
+\xe4\x5c\xcf\xe6\x18\xb9;u\xa1\xa7\xa8\xed\xe0W\x07\x16\
+\xbf\xc6T\x91\xd1\x99\x1b\x1c\x8a\x14\xf4H\xc0\x8f<N\
+Q\x0db>\x02\xdc\xa8\xa9)b\xbfy2\x07\xb26\
+h\xcb!k\xa0\x04\x1c\x9f&u\x0fn\xe5S\xea\x81\
+F\xe7\xf1\xba\xb7^X\xbe\xa6\xea\xa5\xb5\xbc(g\x85\
+D \x92\x02s\xa8\xb7\xbd\xad\xb9\x85mo\xaaz\xd9\
+\x10\xb0\x07\xbb\xbcNY\xd9\x02\xf8C+\x8ex\xea\xa2\
+\xe5\xec\xdc\x0d\xb3\x16-\xe8Y\xb7M`\xde\xdc\xd5\xd1\
+\xd7\xd9(0U\xaa\xa1\x86T\x83b\x0e\xcdZ\xec\xa8\
+\xack\xdd{ \xd1\xdf\xd3\x91(\xaf\x06n%\xaa\x01\
+\xd0\xbe\x80\x5c\x05\xf8\xb5~\xd7K\xeb\xd9\xc2{I]\
+\x9a\xfc.A\x86\xb7\x17\x91[\x8f\x94\x1cez\x99\xbf\
+\x90\x9c\xcc\x04\xa8;!\xc8bjwc\xff\x8e\xdd\xce\
+\xfd\xabw\xcc.Y[\xb6\xb1\x1e\x928\xe4\x81$\x86\
+\xb9\xb57\xb5\xa5\xba\xd9\xfet\xe9\xea\xc5\x9bWN\xf3\
+\x08\xf0\xda\x04\xe6[\x8f\x0a\xdb\xfd\xa1\xdc\xb3x\xa9s\
+\xce\x8a\xd2%\x15\x9bC\xd1z\x1e\xcb\xcbiYrK\
+\x9a\xe0Nt{\xba\xd9\xd3\xc7^\xfb`\xdf\xfa\x1d\xf3\
+`\xb6\x7f\x01\xba\x80E\xb6\xf0N\xe2M\x91\xb3\xdd9\
+\xe4\xb6\xb7r\xdf!QG\xc8\x88\x86\x8d\x10\xf5\xf6\xdb\
+g\xbf\xf9\xdcy\xe2\xd5\xdd\xf3JV\x96\xaf\xac\xca\xd6\
+\x90\x06\xd8\x1a\xa8!]\x89\xb6t\x17\xbb\xadc\xe3\xbc\
+\x87f\x8c\x9a\xf0\xb4 +AIvj~\xabO\xd3\
+\x83:{\xde\xf6\xf66%\xc4B\xdd\xd3\xc0\xb59a\
+\xd5\xc0\xb5Q\x06\x5c\x9b\xf2\x95R@R\x02rq`\
+\xe3\xbc,<V\xfcl\xe1}4\x06_\x86\xcbz-\
+\xc2.\xc5\x1a\x0e\x06\xc0\xb5^\xa3\x8d\x00\xd3\x1a\x91\xb6\
+\xccDGH\x17\xbdU\xd2\x0c\xb9B0\xb9\x9a\x12\xf3\
+\xf6\xe7\xd9\xd5U'\xc8\x1d\xc8\x0a\x9c\xe4>\x0e\x8d\xe3\
+0\x1aIz\xb7\xe7\xf4\x91\x09\xb9\xe4er\xca\x81\x17\
+\xd1\x0b\xe6)\xeat^\x14\xcb<\x1bh\xe1\xb0~>\
+\xf4\x86Nij\x93!\x14\xfe_q\xd7\xf7O\xa5\xab\
+\x0dw\xe1N\xf4A\xab#\x16\x8f\xb7\x18\xd1\xa3_~\
+G\xee>Ir(0\x22\xe0\x88\x83!G=I^\
+U@\x87q=\xa7\xccZ\xb8\x5c\xada\x03\x00\x8c\x15\
+\xc1}?\xcc \x22\xaa,\xb8hB\xff9p]a\
+\xdf\xd8\xc6\x93~q\x87\x80\xc0\x16\x90QO\xac+\xd1\
+\x1c\x1b\xa8\x8caI\xab\xa0k\xbc.O5\xc8\xf5\x0d\
+ur5\xbbh\xf11b\x7f\xbf\xe9\xfd\xa6~\xe1\xcd\
+T\xd7\xeb\xfd\x03\xdc\x19L'\xc9\xf0\xa9\xfe\xc6\xcd\xd1\
+\x8d\x8d\x1b)\x05\xe2\x14\xd4!\x1e=\x02\xb2*\x98\x08\
+<\xb2\xdf\xaa\xa2\xc9\x10\x83\x22\x07^DKO<\x99\
+\xeeh\xd9\xd84\x9dV\x07\xe4k\xaa\x96{\x95k\xfa\
+\xde\xaa\x89\x80\xf0\xe4\xa0\xcc\xd7m\xf0U\xd5\x95\x81U\
+&6(T\xa0\xcc-U\xb2\x0dR$\x1a\x12\xc0\x9c\
+z\xf7\xca\xee\x1f\xc9\xf5N\xf2\xd8\xf3\x84\x1ef\xe6O\
+6\xedf\x09_8\xb3\x1b\x5c\x81\x01\xca\x0e:\x11d\
+\x8b\xeb\xf5\xea\xdd\xbe4\x98\xdc\xa2\xe1e\x0b\xc7\x91s\
+)\xa2\xa6r\xba\x8e\xfcp$\x97\xd8\xc89\xc7\xa7\xdb\
+\xae^\xfax\xd5\xe1\x99\x8f\xbf:\xf6\xd1'\xb6.8\
+.4\xa5\x1c\xeb\x5c{/\x9c\x8b\x7f\xb4k[\xf3\xd2\
+\xc7'{\x9eY*\x14*%\x9c\x12D_\xc9M\xe4\
+\x95\x1er\xf1\xad\xa0\x0b\x91\xc5\x99\xffvT4\xf8\xaa\
+E\x01\x81\xd3\x05T\x04\xd6\xd4\xcdu\xb6%\x13\xcd\xe0\
+t%\xc1\xe9\xc2Y\xa7K\xbf\xe6t\x95\x81\xd3U}\
+\xcd\xe9\x02\xb3j\xe7\xd7\x17\x88\x9e|Ok\xd2\xc3a\
+\x00op\x18\x05\xf8_\xf6\x00\x059A\xc69>\x99\
+{t\xfaa~\xea\xd1M;\xdfr\x9e\xd9}\xe8\xdd\
+DB\x0a\x84\xf9PVw\x81\xa3\x0aM\x1bba\x1a\
+9\xda\xe9\x88;U\xc7\xd5\x821$\xcf\x06K\xb9?\
+s\xc5\x11p\xfb\xea|5\xb3\xcd|\x13\x99\x91\x89\xe6\
+\x8dTv\x0f\x15\xa7\x04\x96d\x80\xaf\x0f\x87\xe4H\xfb\
+6\xfc\xe1\x07\xfb\x94\x1e\x16\x9c:\x05 \xbd\xd0PY\
+\xbe\xa4|18u\xa0L\x87B\xc1\xc8@\xd4\x1b\x81\
+-@\x10\xfa,K>,%\x83~r\x92)\xfd\xc4\
+\xf9\xf1\xd9N\xf3F(\xf3L\xb9\xc9\xbc4\x03\x9c>\
+5\xb8\x8a\x13\xb6-\xe7<\xb8\x81\xf5\x88Y\xd7\xcfS\
+\xb5aiE\x0d\xed\xc8\xa6X\x7f\xe7\x1b\xbb\xe2\xad\xaa\
+\x11t\xd3\x94\xaf\x01.\xf1\x06\xb2\xce@\x03\x5cR\xe9\
+\xa2$)\xec\x0b:\x0b1\x08\xf7\x12\x88\xf6lY\xd5\
+\x9aU\x8a\xd0L\x874\xacc\xbe%\x14\x89 84\
+\xc3_\x13s\xef\xe3Zp?\xee\xe9\xdd\xa9t\x83-\
+%\xa1\xda\xb6\x0d%t7\x87\xd2\x99\xa9\x8eG\xf6\xbf\
+p\xe2\xc3\xf7N~\xb7\xbfjWY;\xdf\xef\xffB\
+\xee\xc6\xd3\xcd\x87~gnz\xc6\x9cL\x892\x8a\x8c\
+\xe7\x90\x0e\xbe\x1c\x1eK\xa3\xc0\xab4\x88\xfcPd|\
+\x8d\xe5QW\x14\xa6\x01\x9e(D\xbd\xe0\xfb\xf2\x9f\xf2\
+\x17\xba\xe8=PY\x9ey\xa2\xa9\xbe\x1f^q\x03W\
+N\xa3\xc4\xdc,\xed\x98I\xf7\xfa\xad1\xb8\xd3\xed\xc4\
+e\xba\xf9\xc22'jk\xdf\xd2\xe3j]'(5\
+\x8ed\xb4\xb6\xc2\xe5\xa9\xa9\xaeq\xc7[[b\xcd\xcd\
+Ba\xc0)\x97\xfbf\xd4\xcc\xa3\xc0\x12\x01cM\xe6\
+{6\xec]\xdaR\x01F)Xe\x9a\xaa\x01\x13p\
+\xb7\xac9\x8c\x14\xac eKR\x89\xb2!\xac\x82G\
+\x9c\x22\x83\xc1$\xf6\xea\x80\xda\xc0VP\xd0b8\xb3\
+\x11\xa3c\xce\x03\x069\xab~\xc7o\xcf3\xb0^o\
+\xd4\xe9\xdeb\xf4\x16\x003\x10<Y%\x18\x00\xdb\xe8\
+\xef\xde\xe6\xcc\x0f\xc9\x9c\x1dh\xb77\x95y:\x8d\xd4\
+U\x1c\xf8;*x\x19\x02\x8a\xd0\x86\x1f\x0a\x9f\x92\xa4\
+)$\xd1,\xf26\x13\xbdyO3\x09\xf4T6\x17\
+\xa5\x0f\x93\xdf\x1e\xee\xcd\xfe@\xf5\xa9T#X\xcbn\
+\xb0\x96\x0b\xbb\xb8\xa0\x82\xc8 s\x90\xe3\xd5\xd2}g\
+\xbe\xed;\xb8wW\xc7\x82g\x1e\x5c\xb3p\xa9\x80D\
+\x1c\x82\xd9\x05h\xb4X\x91\xf0\x16\xe8\x8a\xab88\x11\
+\xf5KKOS\x12e\xcf*\x85\xb8n\xbf5\xaah\
+>\xb4\xb1q:\x98T%YwQF\xd1t\xfb\xbe\
+\xb6\xd7\xf1\x16N\xf2s\x01\x98\x8a\x06\xaf\x05\xce$\xb4\
+\xbf\xdc\xba\x22\xbe\x09\x0e\xdf\x80P\xce\x16*np\xda\
+\x82\xe0j)\xe0\x8b\xc9\xe0\xb9\xfcMn\xd2\xcb\xbb\xca\
+\x7f\x1d\xb4h\xc0o\xdb\xe3jQ\xf0\x1aZ\x96E?\
+V\x1a+\xd0:Y\x90R4f\x0d\x03C\xb1n\x0b\
+!\x17%K\xa1\x81\xe0\x12c\xb4R\x8cT/\x8b\x1b\
+\x1a\x14$\xca\x01\x1f\x98p\x12XE\x1b\x1a\xea*6\
+\xb9:\xdc\x89\xf2\x1e\x19\xe8,X\xdfP\x8bt\xd9@\
+7\xb4\xd3`\x11#~\xb5\xc7\x8a\x0cp\x86\x83\xf0\x06\
+\x9a\xee\x82#\x0cX6X\xb0\xcap\x1a\xec(\xd8\x17\
+V\x85\x08\xbfJJ\xce\x91\xe9\x9f\xa3~N\x03\xfbT\
+|5k\xe9\xac\xa7d8\x96\xa4\x80\x19\x04g\x80d\
+'\xa4&\x9c\xdcBC{hp\xe1D0\xa7\x93\xc1\
+4\x1a\xcfe\x0f\x18\xa1\x0d\x9c\xa8 _\xa4\xd1\xd3\x08\
+\x9e \xd8EJ2\x0cQ`\xe0\x01\xf8K\xa9\x00\xcd\
+P'\x1c\xd9@\x10>2\xb8R\x18)\xe0\xa8)X\
+F\x01\xd8\x14\xcc\x16\xd6\xd1^VR\x90\xe1\xae\x01\x13\
+\xff\xc1\xe9OO\x01\x036\xebq\xa3$\x5ck\x03\x9b\
+\x0cA\x7f@\xe03\x22\x0d\x1cGI\x87\xfc\x961R\
+)\x0d\xa9\xfc@\xc7\x00I\x12%\xbd\xed\xa1\xf2\xcc\x8f\
+\xed\x1e\x17:\xdc\xb1\x85R{\xe8\xa0\x13\xc9\x22\xd4^\
+U\xa2\xda\xd6\x22\xe7\x22\x1a\xf3H\x0c\x803%\xa20\
+\x80\x86j\x16\xfd\x1fH\xfeq\xe4\x0aendst\
+ream \x0aendobj\x0a\x0a10\
+ 0 obj\x0a\x0a<<\x0a/CapH\
+eight 626\x0a/StemV\
+ 72\x0a/FontFile3 9\
+ 0 R\x0a/Leading 20\
+0\x0a/XHeight 465\x0a/\
+FontBBox [-102 -\
+250 774 752]\x0a/St\
+emH 15\x0a/Descent \
+-320\x0a/Type /Font\
+Descriptor\x0a/Flag\
+s 32\x0a/MaxWidth 9\
+38\x0a/AvgWidth 215\
+\x0a/FontName /ZSHT\
+RV+NuevaStd-Cond\
+\x0a/ItalicAngle 0\x0a\
+/Ascent 680\x0a>>\x0ae\
+ndobj\x0a\x0a11 0 obj\x0a\
+\x0a<<\x0a/Group \x0a<<\x0a/\
+S /Transparency\x0a\
+/Type /Group\x0a/I \
+true\x0a/CS /Device\
+RGB\x0a>>\x0a/Contents\
+ 12 0 R\x0a/Thumb 1\
+3 0 R\x0a/Type /Pag\
+e\x0a/Resources 14 \
+0 R\x0a/CropBox [0 \
+0 395.558 408.44\
+3]\x0a/Parent 5 0 R\
+\x0a/Rotate 0\x0a/Medi\
+aBox [0 0 395.55\
+8 408.443]\x0a>>\x0aen\
+dobj\x0a\x0a14 0 obj\x0a\x0a\
+<<\x0a/ExtGState \x0a<\
+<\x0a/a0 \x0a<<\x0a/CA 1\x0a\
+/ca 1\x0a>>\x0a>>\x0a>>\x0ae\
+ndobj\x0a\x0a12 0 obj\x0a\
+\x0a<<\x0a/Filter /Fla\
+teDecode\x0a/Length\
+ 36079\x0a>>\x0astream\
+\x0ax\x9c\xec\xbd\xcb\xce\xed\xca\x92.\xd4\xf7S\xfc/\
+p&\xce\x8b\xd3\xe9.\x1d$$\x1a@\x13\xd1@F\
+\x8b\x12\x9a\xb3q\xa0\xc1\xeb\x93\xdf%r\xd89V\xed\
+S{\x0b\x09\x1aTii\xcf\x88\xdf\xc3\xce{D\xc6\
+\xe5\x8b\xff\xbc\xa5\x1f\xfc\xff\xff\xf1\xbf\xfd\xfcW\xff\xcb\
+\xfe\xf3\xbf\xfd\x9f\xdb\xfe\x83\xff\xff\x1f\xfe\x9b\x9f\xfdW\
+*g\xfb\xf9\xbf\x06\xe7\xbf\x1d\xff\xfd\xef\xdb\xff\xf4?\
+\x0f\xde\xfe\xf3\xbfn\xf5\xe7\xbf\xfb\xf9\xcf\xe3Gx\xf0\
+?\xe1\x7f\xea\xde\x7f\xd5\x9a{M?\xf7\x9f\xad^\xbf\
+\xcaq\xfc\xa4\x9e\x7f]\xed\xfa\xf9\xf3\xb30\x06YK\
+\x1fd\xfdU{\xfd\xa9\xfd\xd7y\x9e\x22\xc7_o0\
+R:\x7f6r\x8e\xf2S\xea\xafk\xfcO\xaa\xc7\xaf\
+\xeb\xca\xe3\xc1_G\x19m\xae\xe7\xaf\xb3\xe3\xf9\x85Q\
+\xf2\xaf\xf3\x18\xaf\xaf\xe9\xd7\xb57\x7f|\x9b_\xbf\x7f\
+\xfe\xed\xbb\x85\xff\xf5\xcf\x7f\xff\x19\x889\x02\xff\xa0\x8f\
+G\xfe\x95\xd0\x85\xfd\xd7q\xa4\xf1\x827}\xa4_'\
+{\x98\x7f\xed{\x05\x992>7\xd8\xad\x8d\x16\x1c\xe3\
+\xb1\x94\xc98\xf2\xb9\xe1\x81\x9c\xc6\x03u\xff\xd5\xfb\xe8\
+\xf0\xf1+\xb5\xfa\x93J\xfbu\xf5\xf1\xf8\x9b\xc6\x8fk\
+!\x95Gw__\xde\xd8\xbd\xb5q\xfft\xef\xce\xfa\
++\x9d\xf9'\xa71\x01\xa9\x8e7,\x8c\xf3\x1837\
+\xa8\x03\xdf\x19D\xda\x0fRg.\xa3\x01\xe3\xe13\x9f\
+\x831\x1a\xd8\xda\x86\xe6\x97>\xe8\xbd\xfd\xda\xc7\x03\xf9\
+\xfc\xd5s\xfd\xc9y\xffu\xee\xe7x~a\x94\x9d\xa3\
+\x94\xf7\xe3\xd71\xba\xfb\xfe\xb4:\xf8\xd5\xbe\x7f\xbe\x87\
+cq\xe4\xf1\x91\x9c\x7f\x1d=\xa3\x87o\xc6Y\xc6\x9b\
+Iu\xb4\xa1\xfc\xcahy.\x5ci7\x18{\x19}\
+\xce\x153\xb3a\xcd\xd5\x13\x0f\xb4_cE\xe7k\xbc\
+k4\xaf\x96\xf1Wt\xf0E\x8f\xeeb9gt\xfb\
+J\xcb\x87\xdd\xbf\xb5u\xfft\xff\xda\xd8\x13\x07&\xa5\
+\xe3\x93\x7f~\xdet\x1b\x0d:ORm4a\x90\xed\
+\xba\x06yqE\xdd`T|\x7f0F\x13\xb7\x9f\xdc\
+\xb9\x950\xa3m\xecLL\xd6\xe8q\xb90\x14\x0fb\
+\x8cF\xee\xe3\x7f\xc6#\xef\xef\xa1Ok\x8b\xfe\xf9-\
+wq\xfb\xe7\xbdp]\x8c=\xf7f\xb44\xe6d\xf4\
+b\xaf\xecM\xdb\xb1\xb7\xb8\x8cR\xc2\xb2\x1c\x8c}|\
+y\xe3\xc2\x1a\xb3\x98\x8f\xb1\x1cy\xec\xf4\xb1\x98S\x19\
+\x8bo\xec\xaa\xabq\x0b\xde+c,\xceva\x0fc\
+\x0e\xbb\xbf\xbd\xcd\x8fs\xdb\xad\x0d\xfc\xe7\xbbX\xc6\xd2\
+\xd0N\xc1\x12\x19]|3\x8e\xd1\x97<Z\xbe\x9f\x5c\
+\x1f\xc7\xe8)6J\x1f\xa3\x8f&\x0c:a\x1e\x07\xa3\
+\x9fc\xda\xd2\xf9k\xbfF\x0f\xf2\xaf<f\xfb\xfc5\
+Z\xa6m\xc5)y\xd3)\xffj\x18\x8ek\x8c\x22\x0e\
+\x99\xd7\x87}\xac\xac\xad\xfb\xe7\xfb\x97F\xc3\xb0\x06\xf6\
+q\xde\xf1\xd8|3\x0em\x90\x948S\xe3\x18\xe3\x22\
+\x1d\x87d\xc591\xe8rb\x99\x8eS\xf5\xec\x1bf\
+\xa8\x1c\x18\xef\x9d\x13>N\x99v\xeaP\xe2\x19\xfb$\
+\x87\x88\xa9\x8dO\x0e\xb1\xb0|\xd5\x9d[\x9b\xf6\xcfo\
+\xb9}\xc8\xaf\xc47\xa09\x7f~\x16\xc6X\x9f\xe5\xb8\
+\xd8\x1fL\xde\xf8k\xdf\x13{\x93O\xaf\xcf<\x84\xc6\
+\x06N\xc3,\x8f\x8d2\x0e\x93\xd4O\x92\xa3#\x15\xa7\
+\xfa\xd5y\xdc\xde+\x03G\x11f\xbb\x0f\xf6\x98H}\
+|\x9b_\xe7\x16\x5c[\xf8O\xf7\xb1\x8e\x15WN\xb6\
+\x092h\x88\xf67\xa3\x1e\x14\xdd\xa9wH\xaa\xf1\xc7\
+J\xc9~q\xd8\x87d/\xbf\xd8\xa3!~w\xb4m\
+\xe7\x82JcYk\x02\xb1m\xd2\x18\xa7\xb3'\xce\xe0\
+\x93\x1e\x8b\x99b\x1d\xab\xa0.\xdf\xd5\x14~5\xee\x9f\
+\xef\xdeh>6\xf9U(\xb0\xff\xfc,\x0ch '\
+\xce\x84\xca\xf3\xb1B\xb0\x89\x94\xe4\x1b-8\xaf24\
+\x97\xeb\xe0\x0a\x1eS\x84=\x96\xda\xc9\x01\x80\xb4\x1f\xfd\
+h>9_dJRIZ\xa5\xd0\xd6\x87\xb7\xf9e\
+\xf6om\xdd\xbf\xd4?n\xf2\xc6%\xa5\xfe=\x18c\
+\x8f\xa4k\x88\xa5Z\xf1\x17*iX]l\xed\xe8[\
+?/2\x8erm80 \xb5\xd3\x10\x85\x18\xedq\
+\xb8\x1e\x17O\xd3=c\xb3\xbe\xe9\xb1\xffF\xc3\x87X\
++y\xf9\xe66\xbb\xf6j\xd8\xdfwml\x99\xa1\x8f\
+\xfe\xa3\x0e\x8e#\xa1\xa8\x138\x8a\xff`\xc5A\x13\xcb\
+\xfbh-\xbe]-\x14\xfa\xaf\xbds\x02\xaf\xd4\xb9!\
+ g\xef`l\xc1\xa9E2e\xac\xd4\x03\x8a\xd78\
+w\x86\xb4\x1b\xc7S\xcbR\xe3\x9e\x8c\xa1Ub\x85\xe6\
+\xa1\x98\x8d\x9f\x1e\x14Gc\x91\x97\x8b\xab\xe46g2\
+\xc6i\x8d\xfd\x9ekc\xdf\x8f\xae\x97\x0d\xf2\xacx\xfb\
+X\xf7c\x1f\x0d\xc68\xa8\x8fq\xdc\xb5N-0\xe3\
+3CY\x1c\xebf\x87<\x1d\x8d\x18{\xea^\xe8\xee\
+\xb6\xb4\xcc\x97\x8f-A\xc9pb\xf3P\x89zs~\
+z\xe3\xecf\x9c\x1e\xe3\x88\x80\x12\xd3\xa3!\x0fb,\
+=\x88\x92\xf1\x1f\xf7\xe4\xd6\xb5G\xf3\x90\x1a\x99;\xa0\
+\xf3l\x1e:\x1ct\xbf\xfc\xf3{e\x8c\xc6\x8c\xf5\x8d\
+\x0f\xf1\x84\xb8v\xff\x95\xc2v{\xbc`\x1cg\xc7\xe3\
+\xe7$/\x1d\x01e\xbf\xf8\xf51\xc1eh$\xd8\x1c\
+]W\x8a\x92\xb5\x18\xb7\xdf+'\x8d\xa5:\xce\x1c\xfd\
+\xee\xe2A\x5c\xb2\xfaz\xaf\x8cq\x9a\xea;\xa1\x92\x8d\
+s\x95\xddF+\xb8L\x16F\x1az\xe8\x99.~\xac\
+\xb7BZ\xad>|\xf0\x99\xb3M\xd6\xe8\x0a\x9bW\x0a\
+?yU\x8eJ\xa9:\xf3\xef\x95\x91F\xd3\xf9\xc1q\
+C\x00\xbd\x8d]\xc8/\x8e\xbf\xb3E\xa3\x0bX[\xe5\
+\xe8\x9c\xef\xdf+\x03\xe3\x8e\xd5\x86\x17\xa0\xc5\xe3}X\
+\xe8\xe5\x1cG\xf0N\xadsa\x8d&\x9f\xfa\xe4\x81!\
+N;\xfeR\xa2;\xa0\xc6\x92\xc0\x16\xf9\xfd\xa4p,\
+\xec\x10\xb8x\x96c9\x8e@\xb6\xa3K\x9d\xba\xbf8\
+)k\x8f\x8d\xbb&\xb4\x99\x04\x9dst\xb0t\xf7\xcc\
+\x0c\xd3\xa0\xb0n\xcb\xe5#u\xcc\x11\x07\xa2\xc7\xc8-\
+\x1c\xa8\x09\x07\x0e\xda\xd2\xfc=\xdc/\xf8wjO\xf7\
+\xca\x00\x89\xc9\xabCY\xc0u%\x8d)\xe2\x99\xf0\xf8\
+\x84Y\xc1IE[\xb9\x5c\x1c\xaaq\xf1\xc4\xa6\xa8\x18\
+r\x9e\x13\x0bg\xe3E\x0f\xa2\xaa\x8c=.\xd9\xbes\
+\xfb\x95\xb1\x1fj\xe6O\x8e\xeaVh\xfd\xfe\xfe\xe2\xa4\
+1/e\xbc\x0b\x1fe#\x8e1\xeaC\xd5\xdb\xb9\x0f\
+\x9f\x14\xc4\x0fF\xf0\xec\x9a\xd8\x96\xa9/\x8e\xff\xe2c\
+\xe2l\x93\x95N/\xbf\xae\xe5\x86\xcb\x16\xda\xa6\xf3\xe0\
+I\xa5\xa6\x13s\xb6\xaa\xf1\x5c\xd9\x06\xe3\xf4\xb1g\xd6\
+\xe4\xe0^\xca\xce\x9f\x97~\xd25:h\x9f\xc7\xeb\xcd\
+\xc1\xdd}\x1c\xf4)[\x1f\xea\xfa\xf9X?\xfe\xc0\xc2\
+\xa1\x80\x1cZ\x08\xfa\x0f\x05\xe2\x8a\xc1\x1d\xb3\xc3\x95\xfe\
+dPVp\x9d\x0f\xee\x94A|\x9b\xd4\x88\xfb\x8b\x03\
+5\x92#?:rI\xb6p\xb0\xc6!\x88\xdd\x7f\x7f\
+q\xc6\x95d\xfc[\xa7>\xf4m}\xaei}\x9b\xb1\
+\x05\x07\xb2\x09ZSM\xbe.\xef>\xc9\xae\xd3z\xd1\
+\xca\x81\xb0\xd2\x02n\xda\xcc\xb8\x02A\xb1*\xa7T\xc7\
+\xfb\x8b\x13\x97\xeb2.\xef\x10]\xb8\xb3\xf0\x08<?\
+} g\x9b,\x5c\xb6\xb9\xc8\xad\xcdE;K\x93\xfc\
+\xba\xbf8\xe3\x1e\xa8v\x0e\x19sl\xbc\xf9q\xdd\x81\
+\xc4\xe3/\x1aw\x1a\xecR\x5c2\xf0\xf6\xe4\x15x\xcc\
+^\x9b\xb3\x05\x0b\xdd\xe6\xefaO\x82Z\x8b\xc3xh\
+\xd4\xa3\xd5\x96\xcf+gh\xd6\xe3i\x09\x22\x5c\xd5u\
+\x22\xfb\x8bw\xb0>m\xc0\xad\xbe\x7f~\x9d\x9b\xbew\
+\xa4\xf9\xfe\x17gc\x1b\xb9\xb2\x8a\x96\xf2|C\xd6Q\
+\xf3\xa6\xf38\x16(g\xc6\x1eb\x87\xaa7\xe6\x90\xf4\
+c\xe67^\xae_\xac\xf1\x82\xea>\xeb\xeaW\xbc\x92\
+\xc7c\xda\xca+'\x97\x13\x13=\xba\x89\xdb\x12\xee\x1b\
+\xe7\xae\x81\xcdG\x0c\xec\xc2\xc9\xe78:\x8a\xf6f\xc6\
+\x1e\xcd\x1f\xc1'z\x0bF\xb6\x9aQ\xc6\xa9\x8c\xb35\
+O\xb1\x14:\xfc\xca)!e\x8a\x05O\x09\xc96\xae\
+;\x1c\xa3\x85\x01\xc5A\xb2\xf5\xe2\xca\x05-\xd9:\x9f\
+\x8f\x89\xf4\x0f`\xa4\x18\xb3W\x8a\xce\x8b\x92N-\xf5\
+\x92\xbc\x9fWN\x09\x09D\xfb\xdaF\x9a\x9b\xa1T\xaf\
+\xec\x95SBd\x8c_@{B\xe3p1\x0fq~\
+\x07g\x9b,<\x0a\xb9\x08\x0d\xb3\x8a\xc4J\x08\xf9\x8d\
+\x15\xc3\x89-\xda\xa0\xbf!\xa99\x0d\xd8{\xbf\xc7\xaa\
+\x7f\x90\x18L\x0e\xd1x7\x07\x15\xe2\xc4]\xd6\xdb\xf8\
+\xb0\xf6-\xe4\xb7\xfe\xe8\xc3\xb4\xe0\x1a\x88EX)\x0e\
+\xc6\xd3\xcdJ\x96\xa5\xd1\xef/\x0ev\xb4V\x954/\
+\xacX\xad\xaa\xda\xac9\x9b59\xa5yi@}\x1d\
++\x17j\x856W\x88\x91\x85\xb3QgP\xb7<s\
+-t\xb8\x10%+\x07G\xc7\x85\xc1\xcdRO\xf1\x86\
+\xb1\xba\xb6\xb9Z\xee`M\xdd\xec\xf7\x17\x07r\xa8\x85\
+\x8a9\x89i\x8d{s(d\xa8\x80$\x9d\xe7\xd0\x1a\
+x\xc6\xe4b\x15x\xe5\x94\x93\x87\xc28\x1d.\x1d\xb6\
+8A9T)\xa4\xfd\xca)\xe3I\xae\xb7\xa4\xa3\x07\
+\x92\x0cS\xb6\xd78\x18\xe2\x17\xd6\xa3q\xf4\x17\x92'\
+7\x22\x84\x19/\x17}\x0e\xdd\xc2)\x12\x82\xb0\xed\xb1\
+\xdf]\x1am\xee\x9fn\x9c\xe8w\x1e\xb2\x98\x0bv\xfe\
+\xde\xbdZ\xe8\xed\xfe\x9bG\xa4\xb1\xe0\xf2\xc0^\x8do\
+\xf0\xba\xd5b\xd1\xbf\x19\xe8\xb5\xaeL\xa7Dq\xe9\xba\
+\x84~\xeeD+'\x1aYy\x1c\x15z\x14\xc6\x99'\
+\x9dw\xbbW\x8e;\xcd\x93\x97\xeb\x9aWi\x9c\xbc;\
+\xf7\xf1\xfd\xc5\xc1\xc8w\xda*JL\x85;9\xb4J\
+I\xca\x95\x13\x8b2Q\xfd\xfa\x8c\xec~\xc5}wa\
+Q\xed\xe2m-\xcb@\x83F4\x8a\xd8\x1c\x93\xb1p\
+8\xdf\x075\xa3BK\x03e?L\x138\xa0O\xd9\
+#\xbf.\xc3\xb8T\xe3\x0a=\xbeRO\x5c\xcfa\x0e\
+\xc3\x19\xf0\x1f4\x1f<?\x82[\xf5\x1f\x8e\x7f5\x87\
+\x9e\x0b\xf4\xac\xc8\xf7\xc0\x83\xc2c\x03O\x88\x8fRq\
+\xb6\xc9\xc2\xac7ii\x9c\xd1k\x9aE\xfc\xfc\x93\xc6\
+|\xd2\xaeB\xcd\x0e\x7f\xa3\xb2\x09\x1b\x91d\xb8Y\x93\
+3\x94**\xa0\x8dw\x86\x22\x9b\xc6a\xd5\x0bm)\
+\xb0\xfd\x8e\x91jR\xe7\xa1\xd7\xa5\xb1Z\xb4\xd5AO\
+\xf2^\x19\xd0\xbfh\xa1\xb2\xac\xc5\x0d\x06\x8dK\xea\x09\
+\x97\x9f\x0e\x8b4\x84\xafO\xd6\x85S\x1a\xd5\x9e\xd8d\
+\x87\x86\xeb\x0c\xa5\xa7\xd0b\xb6\xfd\x9c\xec\xefo\xd3&\
+\x8b\xb5\xf4\xea\x93\xa9U\xb5\xce\x97\xb47\x8d\x8b \xf7\
+\xbb\xce\x8b#\x86\x09\xc6\xb4{\xa1q\x86s\xe3B\xfb\
+\x9f\xd2&\xf5\x90\x17bl\xc1\x09\x89\x8b\x8b\x1a\x0f-\
+]\xf0L\xdeT=dK\x22#\xdbh\xf0\x9f.\xfa\
+Vr)\x92\x94\x15\x1f\xbb\x83\x16\x99\xe1y\x18;\xc2\
+\x9aI\xd6\xee\x0fe\xe4I\x86\x12\xfc\x9fN\xcap\xd8\
+\x9a\xb0\xaa\xf6\xb8R\xbc\xe8\xd48\xe1)\xb1Aq!\
+2ys\xf1\xd0\x8cI\xc6x\x99\xc6n>\x7fd\xd9\
+5\xed\x9eK1\x5cZ\xd0\xf0Sj7\xeb\x86T\xb9\
+d3\x8en\xde>\x1e\xf4\x98\x1c\xd9\x84\x8an*Y\
+7\xa5R,\xbc\x16\x06\xae\xe4\xbawJ`\xc2\xaa\x80\
+\x86\xcf\xe31%n\x96\xaa\xf5\xfe{\xa1\xb10\xb1\xba\
+\x0e_\xcdw\x9d\xbe\x07\x8c\x996\x01<9\x83T\xbf\
+\x86\xbe\x0d\xcd\x11f\x11\x0c\xf7\xb4\xcf.\x8cK\x1a\xcc\
+\xd6\xa4\x00X\xf1\xf3Q~/\xb4\xed\x1fc\x05c>\
+\xc6\xcd\xe7\xbc\xce\x9f\xb3\xc7\xb3\xa4\xb7`\x5c\x1a$o\
+\x92\x8b3\xd9\xbd\x5c\x9e\x94\x17\xd6%\xb3,,\x12\x98\
+\xad\x1d\x16\x0f\x9a\x96\x9e\x0c\xbc\x8d\x8br\x87i\xef\x94\
+U\x01V\x12I\xe4\x85qv\xff\xb4I\x87:ug\
+\x04\xad\xa3aa\x9c\xde\x02\xbbn\x8cg\x93\xa1;\x85\
+\xeec\xc6\x16\x9cSg`\xe228%\xfc1\xbbZ\
+\xbc\x0b\xe3\xc4\x19\x83\xab\xeb\xe9u\x08;zG\x0f_\
+\x8c\x9fq\xb4\xf0g\x85G\xe7\x90\xb1l\x03-H0\
+/\xbe\xe8&\x89\x84\xc5\x89e:~\xca\xf6\xc3\xc2\xbd\
+c\xae\x17F\xd31<\x9eF{%Ta\xa0\xf0`\
+\xbc\x18\x1b\x5c\x9c8\xc2\x8f\x83\x83\x11\x1f\x1e\xcbJ\xba\
+\xf2\xc2\x80\x93\x8bG\x11\x0eg,V6L\xf6$t\
+\xf2\xcd\xf9\xf1\x0d\x09~\x0f\xb4l\x92\x97\xdf\x1e\x8c\xb1\
+P\xca~\x80l\x89&\xfaB\xfb5|\xb2\xa7\x84$\
+\x5c\xf2\xf7\xca\xa8\xb2&\xe1\x02\x0d\x9d\xb4U\xaeT\x90\
+\xec\xaa\xec\xa6\x1b/\xd4\x14\xdd\x8b\x88\x5ci\xc8\xe5o\
+1\xfa\x8f\x04\xf3!\xdb\x22\xce\xb7\x9e!\xc5\x8b\x19\xe8\
+X\x85\xcd^\x12\x16f\x8c\xbcP\x9f\xc1\x826\x0e5\
+\x06\xb2\x8f\x83}A\x93/_\xf4\xfd\xc5\xc9pi\xd2\
+\xb94\xc4\xfb\xd8,\x17\xaf\xda8\x12\xa4\x1e\xfb\xcc\xc0\
+\xc5\xf3\xd85\x00:\x0c\xb1\x0bW\x12\x22Q\xb6\x1d\xa8\
+d\xe8\xcfo\xea\xea'\x0c\xdc\xf9\xc4\xddh|\xc5\xc7\
+Z\xc6\xc1#\xe30\xdc|p\xe8\xb2\x85\xa3ER\x86\
+`\xd1c\x0b%\x07\xf3\x01\xbbC\xd9\xd4\xe4\x03\x13B\
+1aSp>*\xbf\x98\xc3\xd2~\xe2\x0e\x0dZ\xfa\
+\x1a\xe8]\xd6\x92J\x83\xd9\x96O\x18\x94\xd8\xdb\x03\xb7\
+\xed\xf1\xdd\x02cx\xb9\xd4 \x9c\xff\xfc\x02|R\x99\
+|\x8e\xe9x\x8e\x8bd(\x84-k\x9eiJ\x81\x9a\
+z\xd8&f\xcf\xc3\x01\xb3\x19\x17/\x04N\xce\xb8\xe0\
+\xa5/\xfa\xe6l\xe0\xd3\x09w\x16\xbav\xf5IM\xc4\
+JJ\xca\xa8\x0d'?\x90m\xa8\x87K\xb8M\x9b+\
+\x1c\xfaU\x17\x0a\x9c\x19\xf5\x94\xc3\x94\x9dH2z\xe1\
+\x8b\x90\x05\xf4\xcbv\xae8\xd9p\xe9\xcb\xcc\x85\x83\x0c\
+\xc1\x01W\xec&\xdfG\xa6\xcb\xc0/\xc2\xfe\x96El\
+\xac\x0e\xaf-(\xbaXO\x0bI?\xec\xba\xdc\xff\xda\
+`)\xb8\xfa^\xb1=\xc6\xff\x16l\x8f\xd1\xd3z\xd0\
+9\x84i\xdd\xf7NOF\xcb\x88,\xc8\xb8T#\xe0\
+\x04a\x14\xbdQ\x898.\x84e\x8c7\xd1\xc5\xb2k\
+>qe\xd5\x8a:\xa0Va\x09\x8e\xe1\xaaY&\xc4\
+\xce\x8b\xc38r\xe1\xe5\x1a\xfalE\x04\x04N\x87N\
+\xef+f\xbf\x1d\x9c\xfb\x04\xbfYo\x0c\x0c\xc0\xc7*\
+\xa2^\x16\x06\xedc\xbb\xda5\x8eypp\x82\xd1G\
+=&\xe7\xda\xeb\x17}\xf3\xb8\xed\xf0\xd7`\x5c\xf9\x95\
+\x0cUK\xc16m|=A\x8d@\x17\xa1s\xd1M\
+8T'\xb9\xb8\xb0\x89`.M\xb8!u\xba\x9d{\
+F\xbb\xb0\x04\xaa\xc2s.\xfa\xd51\xd5\xec\xdc\xd0X\
+v\xc4\x19\xc1\xf9\xb5W\xae\xdf|A\xaa\xeay\xbd\x90\
+\xe7\xf5\xce\xe5\x0c\xd1\xb9_\xd0\x0f2\x86\x13_\x1a\xc7\
+\xdaB2,\x81\xc6\xa1\xb1H0\xdc\xbfy\x82\x811\
+\xf4H\xae>\xe8/XE\xf0\xa3\x0e\xb9\xb1\x90<\xc4\
+p\xa1\x86\x1e\x9f\xe1#\xc5\x06\xc6xA\xe3\xa0\xe5[\
+\xf4\x16\x8c\xfb\xeb\x91<\xe6\x93\x9d\x80R6\xa4\xc0\xd8\
+$Z4s\xa8q\xf5\xe6|\xc2p\x83C\x04'\x17\
+,`\x18a\x5c\x04\xdf$\x0e2\xbf\xa2 \x8e\x87\x07\
+Y\xd95\xe3\x90\xfe\xbb\x14\xe1Za\xf9\x1cg\x11\x16\
+\x22\xee\xef\x5cx\xc7\xe5U\x84vqv\x9a\x8f\x16\x5c\
+\x86\xe0\xcc\xe7\x98\x1d\x9fvc\x917:\xee\xb0\x8ak\
+\xd7\xd1\x81\xa5\xca\x97\x8d\xa9\xc7a\x95a\xa7]\xf6\x03\
+6\xd5\xf7\x1e\xe1\xae\x1arn\xbc\x1b\xe1d\x905;\
+\xe4'\x0eBn\xaaC\xde\xc4\x13\x8e\xbd\xceM5\xce\
+\xf9!\x8fi-\xc4\x22Fg\xb1\x12\xc7\xe9\xdaS\xd5\
+\x95z\x08\xd6\x0c\xd5\x80AD\xf8\xe8qr\xf1\x1e|\
+\x09&\xb4_\x07\xad\xa0]v\x7f\x84\xf7\xd1\x0c\xda\xb9\
+\x10\xb1\xb2R\xa6\x0f\xf3\xc4\xbdl\xdc.\x11\x17\x87c\
+mo\xbc3\xbe\x18\xdcSI\xcdB\xcc\x08T\xa8S\
+!a\x98'\xac\xcd\x95\x96\xb6\xde\xe1Z\xc7\xde\xe6W\
+\xf2\xc9((\x1a\xb8\xdb\xc9\xb32\x95\xc2\x93O\x03\x08\
+\x97\xd2\xe8\x097.\xf5\xe8\xa1\xca\xf2\x9b\xb0\xd6\xe0\x1e\
+4\x18\xfb\xa5#\xef\xa8\xbc\x12\xc0\xf4\xcd \xaf}\xec\
+\xd3\x8b\x8ax;\x1a/7g\xa3n\xaa\x1f\xf0\x85\xdc\
+R\xe3F\xb8\xc9\xbb>\x0e\xfe\xb1\x87\x0e\x9d\xc5Cf\
+,\x147\x14\x1b\x8c\xc0\x9f\x0a=\x1f\x82\x86\xa7\xd5\xc5\
+\xef\xc3\xe4\xd6\x19<0V\xd5\xe8\x89\xe8I\xf2\x05\x05\
+\xa7\xda\x98+\xcc]\x82\x85\x1b\x1bk\xe8\xdd\xe8\xdf\x9b\
+\xbc\xb7\x95\x03\x81\xcb\xe6\x8f\xb3\xa6$\x0ah.\x969\
+\xc6\x05!:I\xf2\xe8\xb4w\xf0\xc4\x8dq\xee?1\
+&\xad\xed\xc4\x89\x82\x11\xf6\xe8\xdeN\x1cu\xc8\xe5\xce\
+[f\xa5`\x87\x10\x85\xbfd\xa8\x5c\x5cq\xf0\x07p\
+\xc1\xe1\xc0\xc0\xbc\x0cM\x81\xad\x1cg%\xe4\xf4\xd8(\
+\x08\xf7\x8aF\xd3\xf8\xae\xe7\xc7QY\xb8?a\xa9\xb9\
+\xf8C\xc6\x15\xd2\xe5q}\xed\x02m\xa5ugp+\
+\x8dVA,5\xec\x22\x88\xa8\xac]dG\xc8\xd0\xbe\
+zAD\x0aV6\xc4p\xc3\xf5\xa20r\x80^\xf8\
+>d\x84u:\x0a\xa6\xec\x1e\xe9\x05\x1b\xb7\x0c\xd7\xea\
+uP+\xc5\x0fOh\xe0\x9d\xbe\x13\x18\xab.y\xf2\
+\xec\xab`\x84k\xa1kL\xde\x8e\x03\x87\xf1\xb62\xec\
+\xac\xa2\x17\xeb\x22#\x9d\x87\xbd)p\xa2\xa5/\xfaf\
+\x9c\xed\xb8\x87m\x5c\xcc\xfcH\xe6}\x94\xab\xb9\xe3\x15\
+\xb9\xf1\xee\x8e\xc8\xa6\xc2Ve\xdd_\x19\xca\xc5X\x17\
+\x99\x91\xf1\xcd\xbd\xa0U\xc9>\xa5\xb1\x05\xc7\xad\x81\x1b\
+\xa8\xa3c\x88H<\x13/F}\xbf8\x0cxe?\
+\xfd\xb8\xde\xa7\xfds\xe2F\x0c\x97\xde\xf8\xd2X\x12\x8a\
+\xe6\xca\x5c\xe0\x0b\xa9\x1dt6:\x9d\xd0)\x18\x85\xc7\
+\x8b\xb5\xfa\x0e\xd8\xd5\xa0\x012\x9a\x0av\xad\xbe\x92|\
+\x01\xa3\x06qn7]V\xe4<<\xd4C\xd3[0\
+\xee\xafGp\xd4\xab\x13P\xa03\x85\x03\x17\xcb\x1ch\
+\xd8M\xa6\xe3\x09\xa1\xaf\xb0\xb6%\xacS\xec\xbbv|\
+\xd1\xdaE0\x86\xf0\xcawy\x13av\xe1\xba?\xe4\
+\xf9@\xb8\x14\xf6\x04\x16 \x9c'\x14H\xcd\x0b\x08\xad\
+\xe2\xd4\x1c\x97[)\xdbA>\x12[9[\x8d\x90\xe5\
+3mV\xc7q\xef\xc3\xda\x86\xfci\x8a\x05\x81\xa0\xa0\
+\xe4z\xef\x01\xed\xa1u_p\x0f\x15\xfc\x1f6Q\xdc\
+\x81\xea\xd1qE\xe3N\xc2\x8c\xcbR\x5c\xcb\xc1\x9d\x94\
+\x19Y4N\xec\xb1W\x14\x83\xca3\x90\x81-'5\
+5D\x13\xa390\x02\xde\xf1\x8e\x8d\xa2kG\xa0\x18\
+N\xb3\xde?t/\x8c4\xc4\xd5\xe4\xba\xb8\x0ai\xad\
+\xb8x!\xb8\x180\x8e\xc8\xb5\x8b'\xdd\x90\xf2\xdb\xca\
+\xf8\x91\xa7uw\x88Qf\xd0\xd3XQ\xd44\xbcc\
+\x17\x1a\xfb\x09&9\xb6+\xe9+\xb8\x10uE\x0a\xd6\
+\xb3R@e\xaat\xbb\x87\x10j_k\x0a\x5cBg\
+\xa1\xbc\xf7\xdc\xb9\x9e[\xa9\x8e\xc2\xe8\xda\x83\xe7A\xbd\
+0]\xea\x5c\xc2^h4@\xf2\xd6\x03W\xd6P\xae\
+\x18\xca\xf0y#\xb7T\xa6DB\xc8\xd4\x85\xf0$G\
+JAOyS\xf7\x8cD=\xf8n\x989\xb5\x0c\x0b\
+\xfb8:XhX\x85\xb5x\xb4A\xf4$o\x5c\xf9\
+\x0b\xb69\x22h\xf3)\xfb[\x95\xc2\xc0\xee\xbd\xe9-\
+Lt\x8fG2\xa3 :\xef(\x10\xa0\x10\x0e\x5c0\
+s\x98q\xabL\x9e\xaa+\x1d6]S&\xed\xdc,\
+fLZ\xe6[:]\xc7\x91\x7fi7%\x05:\x0f\
+=*\xc3\xea\x8e\xafis\x8c5\x08\x91tj\xd1\xc1\
+\xb7\xc6\x15\x94\xe9\xd4\xef\xbct\xaa\x9d\x0c\x85\xcb\xcc\x00\
+x4{\x9c\xd7\x189k\x84\x99\x97E\x98\xd2%\x0c\
+\xb8\xce\xc7Y\x89#k\xd9\x09\xdaO\xeb\xee\xe0~\xaa\
+\x07\x22y\x11\xeb\xe9K\xd3\xa1\x1d\xc6\xfd\xd4\x19K\x88\
+\xdd\xb3Wn\xa7q\xd6@\xd8\x8ek\x8d\x03\xba\xa1~\
+\xe2\x1eJqRe\xd2d\x883\xf5.\x9cf\x89\xa3\
+\xd7)\xaf\xa1\xb9($\x1e\xc1\x18\xca\xee\xe0\xa5\x8b\x0e\
+\xe8\xcb&X\x84\xa5\xc0ws4\x1a\xfc\x0b\xb5\x86q\
+dA\xb7{\xd1?\x0a\x8c`\x93vD`\x8f\x9f\x9f\
+\x0a \x1f\xd3S\xd27}3\x8af\xa7<\x87\xe6\xa0\
+H\x9e\x8e\x11\x1c\xcbt\xef\x14S\x88\xb4U\xf8\x04[\
+\x04\x8f7\xd4\xc9\xb1WO\xda_\x1d\x04\x0c3\x1f\xee\
+\x13\x83\xceV.\x8b\xae\xe1\x08\x04\xa4\xe26\x86\xe9\xec\
+\xbc\x08#\xba\x9c\xb7\x86!\x07\xe8\xfe\xa8\xf3\x85\xdaE\
+\xfd\x92*v\x8c3f\x8c;r^\x18\xc1=\x1a\xbf\
+\x90\xdaH\xd0\xaa\x11\xc4^\xa0\x05\x0d\xd1\x9e\x11\xba<\
+V^\x86\x01\x07w[\x9eD\xb8c\xa4\x95\xe4V\x82\
+U\x9d\xc6\xb4\xae`\x1f\x05\x8dfu\xd1\xf4\x16\x8c\xfb\
+\xeb\x11\x1c\xf9\xea5\x84\xe3E\x19\xc1\xb52\x07\x1a\x17\
+\x1b\xce$\x82\xeb\xe8\xe4\xeeN\xe1@BA\xbf\xbeh\
+m%\x9a\x13\xe0Ao\x87\xf7\x12-\x14P\xa4\x86\xfa\
+\x0f_\xe7xb\xe3\xde@\xb0\x9e}b\xb0\x90\x5cR\
+\xd7,\xc5\x8f\xe6v^z\xc1\xd8(h\xe7lwE\
+\x18J\xdf\xac\x11R\xceC~\xe3\xeb\x0d\xaa`\xe3\xb2\
+o\x94r\xafm\xa0\xbd\xb4\xec\x0cn\xa5q\x02\x0e\xa1\
+\x87[\x89nJm\xac\xfd\xd1\x0b\xee\xa41\xe5P~\
+\x1at\xf0\xcc\xadT\xe5Bl\x9a\x13\x9c\x82\xbc\xc3a\
+\x08\x12\x5c\x8b\x87\x22\xbf\xc7\x97\x1a\xad\x1e\x8c\xd2\xccX\
+\xb8\xb8\xde3\xe9`l\xf6.\xfd\x19*?\xa6\x97\x16\
+/\xe4\xfcp\x9aa\xf0a\xf8~\xd5\x0e\x85y\xb3R\
+{H\x98\xf7mep?5g\x0f\x1cZ\x1agg\
+\xc8?&\xe9\xa2\x99\xeaMcC%4c\xf3\xf2\x96\
+\xbbB\xc9\x10\x9d\xe3\x07I\x85\x8b\x04\xe3i\xab\xa2\xef\
+ty\xc7\x8a\xae\xb8\x80\x8f\xdd\xcc\xdc\x17\x18L\xa14\
+\x82\x91\xad\xfb]r\xcd\x8c\x16\xb2s\xb0a\xd8\xf2D\
+\x03\x02\xeee\x851\xa2\xfa\x81\xde\xc8=U\xaaO\x8c\
+\xa3R\x18!\xea\x9a1M\xf9XI\xed)\xdc\xe7\xc6\
+5\x05/\x18{*1\x18Xv\xbdqlCY\x86\
+\xbd\x1a\xcat[\xa8\x1bF*zC\xa0\xf8CK\x18\
+k\x08\x13\xae\x01\xae+-\xe1\xf4~\x04\x87\xbe\x12c\
+\x90\x22U)&\xb8f\xe6H\xe3r\xc3\xe9\x84\x0f\x89\
+\xfe](\xb4m\xe3&\x84\x8em\xc6\xa4\xe5\xda\xdea\
+\x91(\x85r\xe27\xe3&\xf8\x92\x13')\x22h\xc6\
+B\xed\x8a\x18\xdeqv\xc0V\xdbw\xd9\xac\xb4\x8c\xd0\
+2N\x0f\xac\xa5\x88R\x83\x89\xaaVn\x18\xb4t\xb6\
+|\xd0\xbb\x8d\xafL\xf3\xdax\x8c\xd7\xaa\x0b\x7f\xa1\xde\
+\x87|\xb4\xf2\xb5!\xb4\xa9\xd6M\xc2]\xd5\xf6\xb3\xd7\
+\x1f\x19\xbe\xdb\x05\xe3\x03w\x14\x12!\xa0\xfe\x8c\x17\x8f\
+\xbd\xcc\x1du\xe8^\x06\xb7\x1d\xc4+\xba\x8cs\x1b\x09\
+uU\xd1\x00\x9d7=\xe4\xb4H<\x8dk\x7f\x85\x14\
+\xcdZ\x05L\xfd\xa0\xaa\x0c\x8b\xdaA\xeb\x1c\xef\xd0\x05\
+\xc1\x1aT\xc3`?9\xa47\xc2\x0a\x80\x90\x8b\xaa\xd0\
+\xef\x1d\xd7\xcd\x85\xc1\x0du\xca\xde\x03\x95\xaf\x9f\xb4\xf3\
+R\x05\x85\x96\x8d|\xbf\x85\xbe\xe99L\x14\xee\xb8\x18\
+\xe3+p\xfc\x15\xbe\x09g $\x16\x14!l\xd5V\
+ez\xd0\xcd\x83\xc9s\xfb\xc1\xab\x14R\x16\xb9\x98+\
+\x9a\x85\xd0$\xaa~C\x15\xa1I\x04;L\xf6\x0c\xd8\
+\x96\x0e\xd9\x22\xe8K\x85\xd6}\xc2c\xa6\x1f\xe8\x8d\xdc\
+Ouo\xba\x1b\x8e\xcb\x0fr\x9bv\xde\x08\xc7\xb95\
+N\xc2\x85\xd4~\x82\xee2.\x8e:\xca\x11%\x8f'\
+\x10\x14\x06Q\x0eS\x11S\xab\xa0#\x1c+\xc9\x1du\
+a\x0e\xc6h\x1c\x97r\x1e0\xe1\xd8\xcf\xec\xa3\xe9-\
+\x18\xf7\xd7#8\xfb\xa1B\xd2(\x99\x1b\xa5\x05\xd7\xcc\
+\x1cj\x5cu\xb2\x84\xd6\x99\x11\x11\x84\xceA\x99CX\
+e*_\xb4cE\xeae\xe5'6T\xc3\xe03\x1f\
+\x0e\x81b\xc8\xeb\xdc\xb8\x1b\xb0\x0ea3\xd4\xba\xdb\xbd\
+\x88\xd0.N\x0f\x0dn\x07\x83\xd9:3\xe3\x1a\xdb9\
+\xdb]\xe1\xf0;6k\x88\xd0:+\xcc\xac\x9d[\x84\
+\xbe\x0d\x8e\xe5\xd7f\xe0n\xfa\xda \xdcM\xa7m\x10\
+=\xaeOg\xebmh\x8e\xdcR\x89\xa1 \x104\xbd\
+^\xdcRc\xb7BhB\xbb\xdcm\xe8\xc6\xa1\xdbw\
+\xda\x94(1\xe9\x83\x19\xfb\x85'\x05\xdau\xe1D\x82\
+/\xa8\xd0\xf0\xc6\x03)#I7Q\x99g\xa6\x05\xe2\
+\xdd\x92\x5c\xee\xe3\x95\x94\xcf\xbe##\xfc\xe2j\xa1\x14\
+l+\xe3G\x11\xa4l\xd5XZ\xe00T\xf8\x92\x9f\
+\x22\x95\x95\xc4~*>&qE\xc67\x10\x99}*\
+\xeb\x0f\xc3\x07\x81\xc5\xb5\x8f \xdbC\x1a\x9c4&j\
+X\xb0od\xa5\xea\xe0\x93;\xa5\xca\xe8P9\x0f\xef\
+\xee\xcb\xe6\x0bv\x0d\x06\x0d\x99\xff\xe8\xb4\x80\x1d\xea\x07\
+6\xb5\xf3\xf3:\xed\xa6\x06\x05\xabS\xcd\x1d\xbb\x87b\
+\x18Ij\xedXIm&3\xae\x92\xb4\x99\xce,I\
+\xb0c3\x0ee\x08\xd70\x04\xee\x8e\xd6\x90\x9c\xd4\xfd\
+C\x9f\xe9E\xd5\x17\x09\xc4c\x92\x18\xf2\x83\x88ht\
+n\xa1a\xca[X8\xf1#\xab\xee\xa21\xef\xd2R\
+\x891\xc6\x1d\x87\xd3\x88\x807\xed\x1b&\x17b\xeb5\
+D\xeb\x891i\x07\xc0\xe1Z\x84\xdb\xd2I\x83?T\
+\xa0\xac\xfb\xc9U\x19KG\xeb\x1f\xbc\x95;\x83S\x93\
+V\x1bBy\xb9x\xb0qv\xf9\xe6\xd4J\xb4N\x81\
+^j\xa5[]\xb1\xc6B9LX\x09\x88\xe59t\
+\x8f9\xa4\xf1a9/\x1b@\xdbh\xdd\x14\xdcF\xb2\
+\xde\xedh\x8fnM\xbd\x96T\xbc\x8d\xb22\x99\x1b,\
+\xd7\xb2B\xd8\xd9\x81l\xbeT\xed\xf2K\x8c\x93\x85\x1c\
+\x87.\x8a\xa3\x0e\xe7A\xe5\xd9\x87\x86\xc9\x04\x83\xc3\x84\
++'\xebv\x0f\x9f\x1c\xdc\xe4c<\xcf.+\xb9\x0e\
+&\x98\xe0\x0a\x852vy\xd5\x95\x1c\x92\x17G\x1c\xae\
+\x9d\x0b\xe3G!\xe2l\x17\x82i\xaf\xaa\xd4s\x5c#\
+\x90\xa9R\xf2\x17\xad\x84\x83\x9cO\xedo~\x05\xb7^\
+\xc6\x9fWN\x1aD\x15\x166\xe4@?d\x85\xd0\xc1\
+\x0e\x0eB\xab\xa1\xfb)\x98|,\xee\x83V\x88Cy\
+\xc4H\xa89\x0f\x1b.\xd89\x9c\x9c\x97\xd29Ng\
+V\xe3\xf4\xc3\x89\xc0\x1f\xe8\x8d\xdcM\x07\xcd\x10\xb8N\
+\xb6\x8a\xfd\x83\x0b6n\x9by\xa5\xb8\x99\x8e\xde\xa8>\
+\xb7\x0b\x0b\x0f\xb16\xb6\x0a\xe0s\xb0\xbe\x1e\xdcM\xf2\
+H\x88\x9e$\xb7\x13!\x06\xaa\xec\xd6p\xf2a\xc2\xe5\
+w\xc8+\xbd\xd9\x0f\xf8|\x04\x0bW\xb9\xd30.\x17\
+\xca\x08\xae\x999\xd2\x8c\x1c\xad\xba_]\xc5\xa1\x97\xd4\
+\xa8\x10\xa2\xcd<\x83K\x164\xd3\x0a{\xcc\x8e\xf7\xae\
+5v\x14?\xd3\xa8\xc3*\x98\x15\x0a[\xa5I\x7f\xa3\
+\x09\x9e+\xaf\xf6\x90o8\xe1h\xecKn\xe98+\
+\xa9\x1e\x16\xb54Z^3\x07K\xdaao\x14x\x99\
+\x9e7~\x0d\x0a-\xe2\x83yIzo\x08m\xabu\
+\x93h[\xf5\xb17~`\x95\xd0\x0d\xea\x1a\x0a\xdc8\
+\xb8\xb8\xab\x10\x1e&\xb3\xfd~\xd0\x81;T\xf8B?\
+\xd0%\xb38l\x080\xe1#\x1e\x087\xf8\xeaLk\
+\x18-\xd2\xe9]\xc5\x99\xc5L\xc3i\xc8\x15\xc4\x8c|\
+8^\x14\x0fB\x9d\xbf\xe0\xf2&s\x84\x12/\xe94\
+a\xc0\xc7\xe1\xab=n\xd0P\x87\xde\x0c|\x05s\x89\
+e\x00g\xfc%\xeb;\xaf\x1a\x9e\xa8\x95\xbeyi\xc8\
+T\x19pU\xc6W`\x99=\xa72\x05yE{>\
+\xe2\x8c\x0ejoEk\x12;\xb7'\xc7\x84%]\x09\
+3q,r\x13\xd6\xc0\x0e9\xd5l\xc6`\xdf`\xd8\
+\xa0\x19c\xd7E\x19\xae\xe01<\xc8V=?o\xd4\
+\xa6:\x1d\x82y\x9cY\x99\xf1\xb2L\x0fY\xff\xa6\xb4\
+\xa9N\xb9R+\x1d3c\x89I\xf7:9\xfaG\x92\
+\x1d\x0dWR8\xfcEO\xf2\xc6\x85\x8c\x19\xe6\xf5\xa0\
+\x83\x12n\x5c\xcc7.\xb5\xec\xe1\x9b\xd6\xa6z?\x82\
+\xa5\xcb.\xc0:\x89\x90\x10XFK}\xee\x10\x18'\
+\xb0\x22\x11\x18\xe5=t\xe04C\xb6\xf5\xd5MOR\
+[\xaa\xe1N1\x0e\xb1#\xc5\x96\xe206D>(\
+\xc5\x01r\xadB\xa19\x94A\xc1UW\x9b\x97\x10v\
+\x10\xad?\xb0\xde\xb1\x99\xb8\x22*\x91\x83\xcd\x8cf\xc3\
+\xd1-\xb3\x19\xf4C\x08O\xa4\xe1Q<u\xa6\xfbb\
+\xed\xb7\xeb\xfc\xda\x0b\xdaP\xeb\xfe\xf8\xeb\x93\x1a{(\
+\xf4\xc5\xf1>\xcc\xc7\xb6Z\x8c\xe8\x09\x06\xce\xee\x0c\xda\
+x\xfc\xf3\xa6J\xcfh\xae\xcc\xc7\xe0w\xd5\x14B\x05\
+NW0&}\x7fq\x22(\x07V\x1ax\xc7S\x16\
+\x22\x08B\xf4\x14\xa0\x9e\x15_\xc7\x04\xfc\xfa\x08\xfeF\
+\xf2y\xfb\xa6\xefG\xa8P\x8f8\x01\xe5\xd5mT>\
+O\x86\xd4;l\xa6f\x86\xeaD\xa8)\x94g\x05\xd2\
+\xef\x0e\xae\xecR\xd8\x1d\xc1\x88\xe1>+\x0d\xb4jv\
+\x8d\x80\x93\x19\xd1T.F\xb2@\xd5g\xa0\xccq1\
+\x92\x86\x17I\x99o\xd5J\xfe\x81\xd1\x0f\x081\xc8\xfa\
+%\x22\xc3\x90\x13\x0b\x0ft\x8e4\xdf#1\xfa\xe7\x8e\
+\xf0v,\xd6zH\xe0W\x9dL4\x9eE:\x1aV\
+\xa2\xd2\xf1N\x05G2j\x1dV\x96+Bq*\x83\
+hV\xfa\x96\x81\x92\x91\xaa\xf0\x1f\xe3\x91^\x14.\xc4\
+\xf9X\xc9\xdb\xc9\x8327\xe0\x0b\xe5T\xbc\x112d\
+\xc7\xcf7d42\xa4\x0aj\x98\x92$%\xd7\xb9:\
+2!<\x98)\x8e`\xa5|j)d\x87C\xe1\x84\
+b\x87\xf6\xaeP\x0a\xdcH\xe9\x13\x81\xabk\xc8\xe7\xeb\
+\xf8u|^\xc7\xf3H\x89\xfb\x08-\xc0\xf9\x03\x0d\xe5\
+b\xec\xd5\x930P\xc3\xb2\xe2\xff2b\xd1\xd8\x0c\x9d\
+a[\xbc\xc8\xe3//\xd2\x89\xc40\xcd`\x08\x1c\x8d\
+\x8a\x0b\x04\xc3\xd2^\xf4\xf6\xa3h+\x5cP\xc7|\xff\
+8\xe9\x808\x05\xcar~3\xbaB\xa7`sE\xac\
+\xa8CG\x11]Ds\xd0\x8b1\x839\xe9\xa9\x8d\xd0\
+H&\xd1\xff0\xcc\x92A\x0cZZ\xcf\x0el\xef\xee\
+`$\x96\xee\xfe\xe5\x10B\xfd7\x86c\xc6\x8c%.\
+\xe5?+#\xf3@k\x92\x8d\x0c*\xe2\xe6\xc0\xc5\xc5\
+qp)\xc7\xd1~r]\x80Qt\x90p\xe9;\xdd\
+\x0d:PW\xfa\x99S\xfe\x18`\x9d\x15.Cp\x15\
+\x86\x9dmo\xf2^\xfe,4\x1d\x89H\xdc\xf2J\xf5\
+\x94\xb5X\xe6o\x8e\x94}\x0e\xe6\xe9\xdd\x9a\x1d\xf2z\
+\xcdP\xbe\x85\x83!\xa0\xc7\xdd\x81p\x1c\x91m\x0e\x09\
+\x86\xf5k\xd8\x1e+,\xedB\xb0\x80\xc3\xa7\xc3q\xb9\
+0\xe0\xa8\x86M\x9a!\xe1\xf8\x9c\x93\xd9`\xe3\xd4>\
+\xda\x9bRmi\x18u\xfa\xb4rw\x82\x13\xe9\xe7\xcc\
+\x19\xe7;\x22e s\x5c\x98~\xedxbF0n\
+\xca\xc1~\xb2>\x0d\xc1\x8d\x9a\x91\xcb:\xd7\xd2>O\
+\xf4\x85\xe3\x98\xc0\x0d[\x81\x9f\xcd\x0a\x9cE\x12\xad\xad\
+J\x93\xf4\x96\xbf4\xea\xbc1\xe7\xe7\xabs\x92s\x88\
+\xdf\xa83\x5c\x90=E\xa2\x00\xf1f\xe6\x88D\xcbu\
+t\xfd\xfe\xe2$\xe5\x0f\xe8>\xc1\xd79\x9f\xa0\x84\xe8\
+@\x9c5\x05\x1a#\x11\xf8\x8a\x17\x03\xd7\x8c\xca@\x97\
+]\x96P\x84\xb8)D9Q:\xdd3\xd8}\xce\xe4\
+2\xb1o\x92\xebd]\x0b\xdf\x1bP\x91\xadL\x18A\
+\xbf\xff|qp\xac\x22;\x5c\xe7\xe85\x81\xcb$\x07\
+4\xca\x88\xd0Fxl@'\xb8O\x06C\x98\xe3\xf8\
+\xa61T\x0a\xe8\xe6\x99\xba|W'\xe9w\xf3\x86b\
+Q\x14\x1c\x0b\xc3\xc9E\x10\x95\x95\x8372\xadD\xf1\
+\xb5\x9f?W\x9f\x01\xf8\x8b\xf2\xee\xab\x84K\x8cuV\
+\xc0\xf2\x1ci/\xd5\xfb\x8bC\xad\xf8\xea\xf1\x86\xed\xab\
+\x0dl\xfdWKG\xeb\xab%\x09\xc2\xd8\x89p\xb3r\
+\x22\xd3\x1e7<\xc6\xe6\xce\xbfG0/\xfe\xa5\x1dZ\
+\xbdZ\xad\xc9P&r9J\xfcR\xcc\xa9\xc7\x0b\xc7\
+)\x1e~\xc1\xf6\xd5\x086\xff\xab\xa9\x18|eD\x12\
+^\x82\x07\xf6\x9b1\xc98\x19\xb2$@\xb2\x10s\x94\
+\xef\xa6\xdd_#\xad\xe2\x92\xee2TW\x04\xc0\x0a.\
+b\xfe;\x22\x83\x11\xa1\xa6\xf9|~\xd2\x0bem\x17\
+\x9a*-\x07\xc6e,\xde??+\x87K;K\x9f\
+\x98+mnz\xab\x10\xa4\xb7\xcfvM\xb1\xdb\x84V\
+\x81#%\x8e\xbc7'Y\x13\xc4\x1bJ\x8f\x8fo\xf3\
+\xebj\xf6\xda\xc6\xd1\xee\xc4\xd8\xed\xf3\x8a\xf3[\x192\
+ga;\x7f/\xb4\xb1'\xfct K\x9c\x8c\x5c\xdf\
+~\xee\x853!3\x9a\xa3\xb8\xbd,\xac\xbc\xde+\x03\
+\xe7\xe6\x85K\x8a\xe3\xde1JL\x8a\x095ca\x18\
+\xc8\x02\x0a\xc4\x9e\x83\xc2e\xa5\xc5\xb6C\xe4\x92\x19c\
+\x9b\x22\xbb\x86S\x5cup\x9cs\xbf\xbd\x19H\x7f\xc3\
+\x9btV\xfbo[\x9bCo\x8e\x19\x91\xde\x84\xd0\x18\
+\xec\xee\xaa\xc3\x1aI\x1c?\xf7\x9b4d\xc5\x86g\xb9\
+s\x8e\x12\x09C\x06\xb9x\xd2A\x1d\x940\x87\xe4\xd7\
+1\x8fx1\xb6\xe0P\xd9\x02\xaa\x99W\xcc!\xb9~\
+N\x19\xf9f$\xa7'\x03\xb8\xafQ\xf9\xa2Di\xa1\
+\xea\x98\x13\x0ch\x18L\xc4\xf3\xaf\x9d\xaa\xec~\xdc+\
+c\x83\xc6\x86\x85\xd0\xb4O\xbb\xa4\xbe\xf3\x13\xee\x95\x01\
+{\x13\x96\x15\xb7-\xb4\xde\xb1U\xce}.\xaa'\x83\
+W`\x0f\xb7H\xa5\xc3\x7f\xd6\xd4\x9b\x91\x9c\xe3\xb8U\
+\x09>\xa5\xd4\x22~M\xc9\x10\x0b\x83@]\x98\xae\xaa\
+\xa7\x95 &\xea\x0ez\x8b?\x1bgc,\x1b\x9e\x8b\
+Nsh9\x06\xe5\xcd\x88\xb7\xc5^\xba\x18\xd9\xbfy\
+\x0a\xee\xa9\x8a!i\xc96\x7fv\xa4\x9a\x9c\x13\xa2;\
+\xeb\xc2`t\x02\xaeOM\xd2\x93\x86\x9f\xa4\xcdn\xfd\
+x\xdd\xebO=\xce\x09\xfd\x5c\xa1Y\x92\xf9\xcd\xc1v\
+\xa2\xd6uxo\x1b\xc5$\xfe>qM\xb6\xcfO\x90\
+\x96\xc9D&\xf7\xf8TF\x1c\x22\xff4\x9e\xba\x86\xe1\
+\x87\xe7\x03\x0a\xc4\xda\xff\x16\x80\x16\x08\x94\x91\x94C\xa7\
+B\xe1U\xb2\xcc\xecf;\xd8\xedo\x0e\x03p(u\
+\x0e\xa6~D\x0a%\xf4\x14'\xc4\xe4H\xf6bN\xce\
+\xd4\xd9w\x89@\x0c4V\xdc%\xf1\xbd)D\x14\xcd\
+\xe8:k/\xa5\xe7\x9c\x16\x18\xa7\x8c\x09g\x08\xa1\x17\
+\x1d\xb9\x95\x88z\xa3L\x15\xfc\xc3|\xf8ES\xe1{\
+\x9cK\x89\x97\xd4\x1e2\xc3\xa8J\x9dKw\x9b*\x0e\
+\x8c\xbd8\x1d\xdf\xe4\xfd\xfd\xf7n\x8d8\xc4\xba\x85\xe7\
+\xa9\x8c\x9a\xcf\xbd\x95Q\x0d\x9fl\xcc\xa9\x02.+D\
+*\xd4\xba\x8e\xa8\x04\x86\xeb\xa0\xce\xe0z\xac\xb9\x1ap\
+wZ\xf0\x7f\xa4\x84\xe8\xfacy\xc0\x14\xc6\xfa\xf8\xd7\
+G\xf1\xeeU\x8a<t\x22\xc4\x8a\x9c\xf2I\xe2t\xc6\
+.\xd3\xdc(\x08\x0a\x97\xbaN\xbfGr\xba\xf18R\
+x\x8e\xbd\xc99\xb3\xdb\x0fc8\xe7\xfd.w\xdd\xc0\
+\xde\xe4\xfd\xf5\xf7,\xdc\x09\xf4\x83\xd7\xaf\x9d\x19\x96\x98\
+\xe6O\xde\x92S\x12\xdd\xe9u\x10VZ\xaa\xd1:P\
+\x18\xd4\x19\xc5\x96\x187\xf0C?\xa5G\xb6\xc8\xab\x9a\
+\x18n~pd\x93\xae\xb6E6v\x888&\xfe\xa2\
+\xa50\xc3~}\xd6\x9c\xed\xd3\xb2\xeb\xa3)R\xde\xda\
+&`\x03\x82\x10r\x186\x83\x08-E\xaf8C\x92\
+&\x94lP0\xea\xa99\x10l\x9e\x9c\xe4\x04\xed\xdc\
+,\x1d=T%2\xd7\xa0\xc2\xac=\xe3P\xbc\x93\x04\
+\xc7\xf756\x5cd\xd9\xa9\xca\xdaC\x7f\xbe8)P\
+\x19w\x8ah\x0bw^:u\x8a\x8b\xb3MV\x8a\xfc\
+oX7\xdb\xd4\xff\xf7\x10\x12/\xfa\xf3\xb0/5\xd5\
+\xe8,\xcc\xb3}fK\x9b\xe1=p\xe9:^u'\
+\x85\xe2\xaa4\x1ejc\x83\xe4\x8c\x1c\x87\xac\x5c\x97o\
+\x22\x87\x8e\x8b\xb8\xa16\xc1\xe9\x5cE_>\x95\x10\xee\
+7\xbf\xa8;\xe8m\xfeY\xa7}\x9c\x15]\x9bj\xb6\
+\xe3E\xc3\x06\x0a\x8f\xe0u*\xfd\xa8W[If\x17\
+\xbb\xed\x22\xbb%e\xb7\x11b\xf7R\xb2\xd4\xd5\x14H\
+\xcer\x12\x98x\x95d\xc6\xa3\xb6\x9bw\xc9\xe5s\xb1\
+\x22\x5c\xed\x97\xd5\xeb\xd2\xfff\x86_\xb4u\xf8\xaf\x85\
+\x01+\xf2#\xe1\xb4\xce5\xf4\x1f\x81\x82\xe0\xc2<\x9c\
+\x22\xa1u\xb6p\xa6MQ`\x05\xf83s\xa3\xae\xc0\
+\x81\xd3\xc1\xb5Mx\x90@IC2\x04a\xcb\xbcG\
+?\xe0\x82^j\xf9r~\xba\xc0\x10\x8ar\xb4u\xcd\
+*Y\xd1U\x8e_s\xbe<bc\x08\xa1\xf6\xa4C\
+\x87c\x1e\x09\xc5\xb7\xe4\xe0\x86\x17\x08\xda#X\xc1\xc1\
+\xc46\xba\xca:\xdd\xd11\xb1\xf9\x0a(\x80\x17CQ\
+x47\x19\x09\x8c!\xe7\xe8S\x0f|\x9aP{\x02\
+\x97%@\xb4\x18E\xc83\xd5\xf0`\x0c\xc9\xda\xcb\xe7\
+\xd0\xa6[\xa1X\xd1\xa2\xb1\xb6\x9cFJ=\x1d:9\
+\xd1\x0f\x9a\xe0\xbf\x98XB\xe4\x80&\xb9\xc5<\x11\xbc\
+b\x99\xbcy\xf6\xbc\xa68@9m\xdex\xc0r\xd6\
+\x7f\x0c\xcb9\xf1\xee\x920\x87\xfe\xfc\xac\x1c\x5cW\x02\
+\xa2\x0a\x06@\xe2\x88)\x1d\xfe\x9e\x8c\xcd\x9c\xd0\x13\xe0\
+[eJ\x05\xc2\x07\x14\xbcf\x80\xbe7#,l\x8c\
+]Cx\xa5r\x967\xba\x0b\xf4\x05g1\x9b\x81\x0f\
+\x10\xeb,{\x84\xb3\x00B\x0c&y/\x8c\x8d-\x84\
+r\x11@Dk\xf7B\xac\xbd\x07\xe1\x93\xf6\x9dc\x17\
+~Nr\xf8\xf7\xe0~d&/\xe3Jw\xa1?3\
+*\xb3*.\xba)\xd2\x17\x22nj\x93\xa1m*\xe4\
+-\x09\x0b\x03\x8e#F\xa4\x10\xa3\xaf)\x99\xe8\x0cH\
+]\xf9\x19>\xeb$\x84X,\x13^\xa6\xb8n\xbc&\
+\xa6\xdd|aP\xde\xf2\xd8\xcfr\x98\x97\xce\x0dC\x84\
+D\x89\x17q\xb6\xc9\x9a\x9e\xa5\xea\x5cb\xe4F\x01|\
+\x03Y\x18=\x92\x9a\x9e\x1c\xfa\xb1.\x19\xca\x18f\x10\
+\xfd \xcd]h\x18b1\x08e\x97t.\xd6\xb3\xaf\
+#K\x1f\xdb:\xd8/1\xbb\xcf\xa0\x10\x09\xdc\xb1\xe4\
+\xd3\xaf\xf6_X\xf2>]\xb0{\xb0\xe6\xfe\xfc\xac\x9c\
+d\x1c*\xa6\xda0\xa8\xc7\x8e\xa36\xcf\xaf30d\
+\xcd\xc2<\xc0s\xd2\x0dMi\x9c\x92\xcf\x09\xf9?\xfe\
+\xcb;\xb4\xa4\xe7\x0a\x979\xe7\xc1\xb0\xc1\xe6\xb3E\x0f\
+\xa3`\xf5\x80\x1e\x11g\x9b,\xac\x0cA\x9b\x08I)\
+\xecu\xd8SF7\xb1\x84@8\x10\xcf\x00\x84\xdb\x15\
+m\x22f\xbd-m\x08\x9b\xce\xab\x9d\xff\xde\x99\xf4\x0f\
+\xfb\x8a\xb0\xffd\xc4\xaf??o\x1a\xad@\x96*B\
+r\x91\xdaC\xb4\x9f\xech\xda\xe6\x15\x0c\xc6f\x0e\x96\
+\x15\x91\xa1\xb2p\xbbY\xc5\xa1\x88\xbe\x18\xe3\xc5\x8ev\
+\x05i \xe1\xe8\xf3D\xb3\xd5\xea\xd5\x02\xf5\xf3\xdd\xc6\
+\x7f\xa9\x9b\x17}\xcb\x9fn>i\x9eX\xc0\xfa\x89n\
+2J\xef\xd9M3>\xdd\xc4\xfdR\xb3\xc5\xe2\x15\x80\
+ <_\xdd\x84\xd2\xdd\x1f\xbd\x8c\x07\xd8\xcb\x9f\xa5A\
+!b\x9eM\xfcWz\x89\x80\x97\x22\x88\xc2\xd6(Y\
+^\x0c\xceN\x12, #\xe5\xa0o\xd6\x83\xfd\xb4\xbd\
+\x97\x8c-8t\x09\x1c\x9eNv\xe3b@\x06\xba%\
+$n\xfc\x82\x80K\xb3\xa3\xf1D\xb3A\xe0\xdd\x04\x1d\
+\xfeK3\xff\x95\xae\x1e\xaa`\xc0\xd1b\x81\x81\x95\x83\
+\x96i[*\xa3\x1fW\x0a}u\xe7\x09y\x07g\x9b\
+,(\xd5\x04q\x82\x8f\xb6H\xc9N\xdc\x84\xc5\x9a\x00\
+\xee\xb6Z\x19\xc2\x1a\xf8<\x81\x08A\x9c\xe4K+\xd8\
+\xdf\xaf\xb6\xfeK\x1d>&0s\x92\xffd\xe1\xf8\x82\
+\x808\x00\x9d\x8f\x02j\x8a3\xe7\x0e\xce\xf69\x86\x9a\
+\xe1\x81\xb3\xd0\x84\xe2\xd6\xf0\xc1\xef\xa3\x00\xbd\xce\xd8'\
+\xf3\xef\xa70>\xd7&\xa8\xb7kC%\xda\xff\xbd\x8b\
+\xda\x7fH\x80\xc4i\x08?\xa4l\xd5\x0b\x07\x12\x93\xb3\
+\xbd+{\x16)`\xf8[\xe8\xd7\x93\xda\xa69\x15\x0a\
+\x146\x05,T\xc4\xed\xccs\x9c\x0ca\x9d\x8c\x19l\
+\xf3j\xbc\xcf\xf4\xf6\xf8\x00d\xcd?\x9c<\xe16'\
+A\x0a\xff\xf9Y\x18aq-\xc6H\x0a\xbbQI\x01\
+\xafJm\x9bh\xa3I\x90`\xb6\x9f\x05J\xa2/^\
+\xd4\xc6\xad\xf7Y\xf0C\xa5\xe7\xe4v\x83\xed\xee\x81\xe4\
+m\xe4\xbd\x8f\xaa\xf8\xafK\xccSN\xaa\xb8>\xfc\xf9\
+Y9\xa1\xa7\xf8v\x90\x9aD\xe8\xe7z\x22\x10\x98\x8d\
+\xb1\xeaD\xe4\xb2\xba\xf5\x5c\xab\x12\x99\xd9\xc8J+\xe7\
+C\xb7P\xec\xfbTD\x03\xdc\xf9\xcd\x99w\x1aI\xd9\
+\xa9=\x05\x1c\xe6\xad\xf0\x03!\xaa\x1a\x9e\xfals\xf5\
+\xb0]KG\xb9\x05\xbe\x86\xe3\xff\x81-\xd0\xab\xbf;\
+\xb7\xc0\xc2I\xc2\x7f\xc4\x0e\xe0\x00~!k\xfe\x97\x16\
+\xe9\xb5+\xc7EW\xd8\x07E\xb0\x04\xdd5\xd9\xe5\x8b\
+\xd8~\xc8\xce\xfc\xac\xfe\x87Qj\xfd\x07m\xcc\xc2\x1b\
+\xeb\xd4\xc7\xff,t\xdcnO\xc7\xf8\xd8*s^a\
+\xa8\x7f1\xb68\xe9\xfc\xf7\x80\xf79\xc3\xdb\xb50\x22\
+~'HioO\xc7\xd5\x83\xc1\xeb\x0e\x8eM\xe0g\
+\xefyi\xa8\xcc\x9c\xef\xae\xfc\xf5\xaf*\x99\xe7\xcc\xe9\
+\xf3y\xbep\xd0K\xc4^L\xb2\x18\xba\xa9\x04\xe6\xdc\
+\xe1X\x80`\x85\x9f\x07\xb1\xa1J\xd3RdS\x97\x8e\
+\xf1\x22\xe3\x98\x8ej\x06L\x1f`\x12k\x9fP\xedb\
+MN2./\xf2%v\xfb\xe0\xd8\xc0\x1a\xdb\xab\xb8\
+$\x02\x04k\xfe\xdc\x04g\x17\x96\x1eJ\xedY\xc7\xe1\
+_\x10\x8e\xa7C\xdb\x84(\xf1\xe7\xe7M\xdb\xd0Kd\
+\xaa\xb1|\xa3n\xc3l\xf6\x9bA3X\x18k\xf8\xbc\
+\x8d5-\x0eV\xbb_\xe3\xe6\xe1\x8a\x09\x93\xd4\xfd\xdc\
+e!6\xbd\x9f\xb6\x9cS\x98o=\xb9\x1c\x85vS\
+g\x8d\x00\x06\xcd\x13/\xae\x1b\xbfK@\x83\xaf\x9el\
+K\xc7X\x1ek\xe9\xfa\xbf0zh\x1fc\xa1u\xef\
+\xfb\xf3\xb30p\x0a0\x91[\xa1\xb5\xc8\xc7LJ\xbe\
+nLH\x821X\x01\xca\xe5t\xcc\xcc\xa1xh<\
+\xb7\x90\xf7\xd7\xdf\x91\x9bT9\x1c\xe3\x9bc\xf42\xa2\
+\x86\x1br\x1c8x\x872\xb4\x9a\x8cG\xc0\x00b\xbd\
+*\xe4C\xaf\x0d\xc5x|u\x86Go\xf8\xba<\x15\
+\x1f\x17\xc5\xc2\xf0\xe4\x85\xcd\xdeS\xfb0\xe1\xef6\xd4\
+\x05\x8b\x81(\xb4\xbf\xee\x04\x91\xa0\xe9\xf7\xd2\x1blC\
+\xde\xe3NO\x1b\xf3.g\xff\x11\xce\xd2\x88\xdf\xa9\x97\
+\xef\xeb\xc0\xcdA\x0e\x112y\x19\xf9\x14\xc0\xaa\xe1H\
+\x97\xe9\xbd\xf6\x19\x8a\x84\xf9\xdf\x84DR\x04\x87P\xf4\
+9F\x198\xa4\xe1\xd8\xc3\xae\xe1\xf3k\xbar\x8a-\
+\x08\xc7\x11v\x8d\x17\xe3\xe7\xfe\xe2\xb8\xae\xc5\xf4\xed\x19\
+\x8a\x13\xb4\xbdS\xa7\x84\xb99i\xdf\xa9u\xed\x9a\xc0\
+\xe7\x80\xc7\x94\xbd&\xe5\xef\x8f\xd4\x7ft\x98\xda\x8b\x97\
+\x0d\xbb\xa8\xe0\xa2'\x07\xc3\xc2M}\xb8\xf0\x02\xf2\x98\
+x4]Fu\x04G\x18\x08\x06\xedH\xb9\x1b\xc1\xa9\
+\xbe\xfe}\xbf\xff\x02\xec\xa7K\x96\x0aZ5\x11\x88\xa5\
+\xd4\xb5K\xc1E\xb8\xa6s\x87W\x9d\x9a\xd9\xc1\xbe\xc6\
+\x1c_[\x1a\xd1H\xef\xfe\xfc+\xdbZ\x15\xec\x10\x9b\
+\xab\x12e\x0b\x03K\xb5;\xbb\x9b\x0d!\xc6\x80\xfe\x5c\
+t\xd0\x81\xb1MNry\xb4L+\x1b\x7f\xcfb[\
+\xb4$\xeb\x1c`z>\x10f\x10\xab\x85\x98\xd6\xa6|\
+\x1fl\xc9\xb5A\x9c\xfa\xb5\x8d\xff\xca\xcd(\x22\xcd!\
+\xfd\x0eN\xfe\xc2\x81\x09\x94\xa9\xa4\xcd\x05`\x98\xabx\
+\xf1\xef\xfb)\x8c\xaa]\xf0\xb6\xc1\x22\xa3i4z\x12\
+\xaa\x9f:\xa32\x81\x1a\x1d\xe2\x8e A\xc3^#V\
+J\xc0\xed\xa1\xb6\xed\xab\x15\x8a\x93[\xdb\xfa\xaft\x18\
+m\xe3\xc0_*\x1f\xb80\xb0\xfd\x94\x22|\xaa\x8a\x8c\
+C\xa4\x01X\xa1\xaa3-\xd0\x05\xc8\x01\x8d\xc8|L\
+\x02#\x12\x0fA\xe0\xb1\xab<d\x98\xec\xa7'p\xdb\
+\x05M\x985\xa0\x98*\xd2\xe8\xd5\x00\x05\x1c,\x8d\xfc\
+\x97:\xda\x04\xbdq(\x09\xe8\xcf\xcf\xcaa~/Z\
+B\xc3\xa9h\xa6a!\x87\xa0F\x06\xb0\x0a\x81\x98\x85\
+\x93\x80y\x95aj\xccy\x8a\xaf&\x08\xc0\xaeTf\
+$\xcf\xe3\x9d\xd0\x08w\xf5\x96%\xf2\xd6F\xa8\xbbk\
+Sm\xd0\x9e\x99s\xdfJ1\xbc\x1c81\x18d\x87\
+!BdL\xe93\x1e\xef7\xa3\xa5\x1bOj\xd0\xe7\
+i\xf7qc\xec\xf4\x93bh\xf5\xeb\xcf\xdd\xbeL\x18\
+X+]\xda\xb6L+>ea@\x05:$%:\
+\xec?\xf0*\xb1%\xcd\xb9g\x8c\xb0~\xb7\xf6/\x9a\
+\xacXv\x0f\xc2\x85Pz4lv\x19[\x90\xa8\x83\
+`\xe6\x22\xdd\x15\x99(P\x08i/;J\x08TU\
+\x91\xb0)\x81Y\xab\xa7\xdfy\x08\xc4\xae\x08g\xdc\xe4\
+\xbd2x\x178\xe7\xf3\x969\xb4]\xd5\xb8>,\x1c\
+uZ!\xed\x04\xa4\x83\xe0\xb1\xc8\xbdl\x19\x22g\x9b\
+,\xd6\xdb\xf5\xc7X}\xf6\xdd\xf1\xb0\xdf\xbd\x07\xe3\xaf\
+\x7f\x17\xc7\x16>T\x16 \xe1\x9ad\x9a\xd7\xee\xdc\x8a\
+Sf\xf9\xec\xb3\xb9\x1f\x84o\xcb^]\xb8r\x15\xc5\
+\xad\x9c\xb0\x89\xaaf\x08\x7f\x01\xc8\x90\xa4\x1c;F\xae\
+,\xf4\xad\x08\x05\xd8 \x13\xd3\xe5\x99\x1e\xa4\xda\x0c\xc0\
+W\xc45\x22\x09\xda\x8f5'\xec]\xeb\xc42E\xb1\
+\x0d\xe6=\x02\x921\xab\xa6\x8b \xd7\x5c\x9c\xc8\x7f\xd7\
+\x0d\xfb\x02\xb4&\xabsA\x11\x82\xef\x0e\x98\xeb\x99\xfe\
+\x07\xcdE\xe3\xb5>I\xca@1@\x1a+l\xe5\x99\
+\xb5\x9b\xec\x16d`\x85\x10\xc7\xa9p\x02\x92\xca\xd0\x01\
+\x17%\x15\x8a8a\xde\xe2\x17\x10<e%e;a\
+\x81\x00\x08e\xe2\xb8\x01\xb0\x87\xa7F\x11\xe6\xdf2\x1d\
+\x9c\xce\xaf)z\xc3D\x1e\x0d\xd2\x1e9p\xe4`R\
+G\xd7 \x10\x08\xde\x92he\xc6\x02c\xdec'T\
+[r\x862\xba\x06\xb4\x00:\xed\x91p\x0e4\x94\xb3\
+\xb8g\xca\x88\xc5\xd6\xe7\x95\xce?\x01:N-_\xb4\
+\x02\xa9\x94\x98/\xc0\xc5\xd4T\xae\x8f\xf7\x8b\xe4\xcc6\
+\x82\x09A\xaf\x11\x22\x04$w\xd6K\x14\xbb\xe2\x1a\xc2\
+\x84b\x14\xb6<\xe1\x84\x80\xbfD\x00,,\xc0\xabt\
+\x97\xa8\xb9\x94E\x0a{/\x96\x17\x0b\x22\xbd\xc8\xdb\xc0\
+QE\xb8m\xcc\x86j*\xd6@\xf4\xe4S\x8bm\xe7\
+b\x0b\xbc6\x02\xff\x14\xae-\xc6\x1d\x5c@\x0cM\xac\
+\x02\x83\xf40\xac\xb5\x86\xecN\xff]\xbe0&\x8bb\
+\xf9\x15\x86\xb4WUM\x06\xe6\xf7\xd5\xbffD\xe6\xc9\
+u\x96\x84\xb7v\x22\xa7\x13\xc6\xfd\xf1\x7f\x98\xe0\x0a\xbc\
+\x80C\xf3\x8ah#\xd5\x1f\xb94\xad\x85\xe0:0U\
+\xc1z\x01\xfdG\xaez\x22{\xf2.X\x9c^\x88\xd9\
+\x80<:\x99\xcc\xbd\xcd\x87\x09\x22\xd9VR\xb3I\xa5\
+\x8a\xa9\xb4\x95&WBI\x01\x03!+\xcd\x92\x00\x15\
+\x98\xcd\xf3\x94\xd7\xbcPNQ^\x093\x8f\xd0\x0d\xc0\
+\xdc\xbd\x8a\x0b?y2y\xba\x11\xfc\xa2\xa9\x06`B\
+\xdc\x07\xc1\x8c\xedC\xce\xcc\x7f\x7f\xd3\xb7\x12\xdeO\x99\
+D\xdb\xa1\x08\x1f\x08S\xfa\x9eX\xf0:)\x8d\x12\x18\
+{\xae\x99urm\x17\xde\xef\x13\xa7\x13\xa3\x08\x89\xc0\
+\xa4\xac\xc4\xc2\xd8\xf1g\xcd&\xb4K\xcco-I\x12\
+\xc1\xbe\xa6J\xa4\xdb\xd74h.\x97\x99\x11>\x91w\
+\xe6\x89\x8d\x09}\xa3M\xe8<\xfc\x80>\x80\xc4\xcb\x91\
+\xa6\x12\xb0XD\xc8\xa8r\xff\x12\x86\x01\x93y\x09\x0d\
+\x94@\x9b\x1dP#\xcd\x13ZY\xed\x98\x88&\xf9\xf3\
+\x93\xc3\xa0\x91\x0b\xad\x88\x19\xa2\xd3 1w\xd7\x9c\x12\
+\xb5\x96\xf0\x03\xda\xa0\xd5\x11\x09\xc2$%\xa2I\xb6R\
+R\x0c\x0d\x8a\xa4\xb1\xde\xd8,\x22\xef2\xb4\xa28\xfd\
+R\x98\xe2D\x02\xc5jVR\x0f}Z\xbbp\xe4V\
+Z\x01\x95g\xe1\x942\x9f9Q\xfd\x97\x03\xd2i@\
+2\xa7^\x91\x02\x8d\xc8t\xf8z\x00l\xdd\x1dP{\
+\xa8\xf2\x93`\x9f\x93\x8a\xce\xfb\xef\x9a\xd3\xbe\xc3\xe3@\
+\xe8mIiM\x80\x80\x1e\x97\x09\x89I}\xcd\x91\x00\
+=<\x97]\xdb\x12\xc6\x92\x00\xbd\xc6;\x91\xd0\x82\x1f\
+\xecTB\x0ei/\xf0\xfc\x9c\x5c9\x97\x10\x7fQ\xb2\
+\x84\x81n\x97\x92\xbd\x11\xbb\x94\x0eO\xea\xd5\x0eMj\
+o\xd7\xe7'\x84\x179\xbfh\x851K>\x18%\x9b\
+EV\x0eNj\x8fY\xe5\xe1\x0eH\x05\xa5L#\xd1\
+\xd9z8kbd\xe223\xe6\x87\xdb\x96\xe8\x89\xb8\
+\x0dk\x97\x02E\xa3hF\xcfC3\x9a\x88\xa3\xa2$\
+\xed\x95v\x88,\x84+\x8bs()\x12K\x11sJ\
+\x88z\x96r\xf5\x9c&}E\xa0\x97\x98\xb2=\xa9|\
+/\x1d\x9b\x82\xbbF'\x01\x10\x12\x7f\xbe\x8d\x02\x09\x0f\
+aiB\xdd&\x5c\xa66ai\xc7:\x1b\xe1\x11z\
+M\xd0#g7YOeboSh\x87\x83\x80\x8c\
+q\x8f\xdcPUcRh \x0b\xc1{\xed\xd3b\x82\
+\x91\xebU\xe3\xc4\x1f$\x95\x13S\x82\xc6\x9b\xfad\xe5\
+\x15\xe7x0\xf1/\xc9\x15\xaf\xb4\xbe\xfdSB\xad*\
+guW\x00<\x06\x85\xe6\x0f#\xa9!%\xb7\x16\x9d\
+e\xaa\xe36\x0d&\xf6v\x80s\xf6\xf2)5\x80!\
+\xe8\xb2\xcc\x1a\x80\x94B\xdfU@\x09\xf6\xf5\x88l\xe8\
+^YF\xa3G\xd4k+\x81\xf8Xm\x82L\xfb\xe7\
+\x17X\xc6oB1\xc8*,\xa5H\xeb\x88B\xce-\
+2r\x96)\x08\xed\xe7=-_\x09]T0;!\
+\xb8\x15C\xb70\x92\xcb\x9a\xd0\xdc\xdc\x05\xbfK-\xee\
+\x08\xd5\x9f\x8cmr\x10w\x88v_JC\x8bX\x98\
+\xec\x98\xf9\xfb\x8b\x13y\x0c4`0\xf2\xa8\xd5\xe8\x96\
+\xfdC\xeahe^\xf6\xd2\xbe\x85d\xe4\xcb\xda\xa5G\
+\x94|vz\x0b\x10^+/x+\x07A\xb1\x9c\xb6\
+\xec\xfe\xa7 \x1d\xbaC\xc669\x11\x12\x8f\x85\xcd\x1f\
+\xa8,Ov\xa6\xca\xbd2>\x81k\xbc\x1en\xebL\
+\xbe\xba\xec\xb8n\xbb\xc4\x08\xbf\xd7f\xdc>n\xcb\xb9\
+\x05\x9c\x8a4c\x15\xb5\xf8=g\xc1\x8c\x19\xc4G\xe4\
+\xb72s&r\x8b\x04\xed\x17\xe3\x13\xae\x99\xc3\x993\
+\xe9YT#8\x0a\xd3fR\xfcu\xcde\xa0\x0d\xab\
+P\xc8\xe4j\x97v\x11\xcc\x13\xc0\x15\x1b\xfa\xe5(\xff\
+\xf7Dp*\xbf\xa6\x8bQL^\xc0\x0e\x9b\xe6\xf9\xe3\
+\xda\x10\xac\x82\xc4@\xf4\xf3\xf2\xc1.\x0e2\x19\x88J\
+\x84H1&\xac\x98>#\xfd\xd1\x9c\x8d>\x02\x00n\
+\xccW@ ^\x9fo\x88t.\xc9\x87\xc1l\x90C\
+Y\xf3\x86\xb49q\xa5\x87\x03\xe2\x94G:\x9e\xc0\x1e\
+\xae\xf5\xf3\x82h\xe3\xd2\x0bm\xe1\xb5g\x18\x81\x12\x01\
+\xe3\xcd\xc9\x1f\xddhC\xc8\xd8\x1f\x9a\xc6\x1f'\x5c\x17\
+v\x06\x18\x17\x0c\xcd\x02\x08\x07\x80a\x0e\xa1\xc8\x0b?\
+\xff\xe0\xe9\xa7E\x94\xabU\xa2D%u\x17*\xc6\xbf\
+\xd7\x7fhW@q\x88\xfe\xa7\x89\xb7\x85\x0b\x0a\xeb\xd1\
+\x08W\x1c\x80oZeo\x0e\xde@\xdcH4\xb6\xd5\
+\xafnh\x00\xd6\xae=\xe5\x8ew\xe7\xe9\xcc\xf97M\
+\x9c\x9c\xc8t\xebZ\xccNtyPi\x96\x0d<\x03\
+\x8c\xe0\xf9\x12\xe5O\xbf?\xf3L\xbb\xe9\x82_@\xf0\
+5[\xd0\xd3\x83f\x1196\xde\x89\xa2\x93\xae\xb1\xd7\
+\xc5\xd1\xaaSd\xf5\xfc\xd6\xc5t\xa6\xf2$\x15\x10\xf0\
+\xfa\xbb\x81\xc3\xfd\xf3\xed\xc3\x98\x9f\x98\x1c7\x22\xde\xa0\
+&\xbe:\xa0\x11\x7fw\xe9\x1f\x18@vE/\xeb\x08\
+\xf8\xb3\xd0N\xdf\x85\xfb\x19\x9f\x95\x03\xae8\x8a\xfe~\
+\xd3\x1b]*\x0cu\x0e\x8f\x8cb9\xbcs\x1e\x14B\
+\xce\x9b\xa2W(`f5\xd5SB\xfa~T;\x97\
+\xe8\xf5\x97\x0aQ\x05.\xd7\xb3\xcd\xdd\xd6\x91\x85\xe1\x92\
+Z\xb8\xf1\xb2\xbc\x90\xab\xca3\xc0\x9a\xe7\xc4d4g\
+\xbb/\x8c\x9e\x1c\xb0\xa1\xc8\xf8S!\x22\xca<0v\
+\xc2\x87A\x7f5\xbe\xbe'[\x03\x15\xb3\xebt\xc27\
+\xad\x92ZY9\xea\xb3bW\x8e\x04\x807\x1d\x0fK\
+\x99\x81\xa2yE\x0e\x96\x81#\xa0\x99\x10B\xe4\xf7\xc2\
+\x81\xab\xb5\xf5X\xee\x8e\x1a\x88\x1c\xb7\x80w\x06\xf4\xb1\
+2qy@3\x1b\xaal\xcb\x12\x90\xb1\xfc\xbdH\x1e\
+\xdb\xf7#j{\xb86\x1e\xf4\xe5\xca\x18W'\x18\xee\
+%\xbb6\xc7\x82\xba\xfb\x9b\xb1}V\x02\xac\xcf\xb0^\
+\xee\xaco\xc2\xe8\x1bED?iP\xb2hU\x81\xa0\
+F\x15k*\xec\xaa\xaa\xbd\xab\xd2\x06c\xa0\xfa\xa7\x05\
+\xc0\xd7\x19:>\xf4\xc7\xac\x17\x5cZG\x1f\x12k\xa2\
+\xe8[\xd4i\xfa\xa9\xd8G,\x8a\xe2U$\xc6\xe1R\
++\x0b\xc3\xe9\x19D*\x1e\xe2\x13\x19c\xa3K[\xd9\
+\xab\xb7\x849\xc1\xc0\xa1\x9b]\xce\x0a\xc9iry\xf2\
+\xd2\xc1\xce/\x8cm\xcc-\x11\xbb.\x05 #\xd9\x13\
+\xa0\xa8\x88\xeb\xe1\x05ya\xcc\xc7\x0f\x22\xb3\xb2\xe6\xb6\
+\xc4r9\x88^N\x83\x87\xca'\xc3\x8e\xf9{e\xf4\
+:\xab/\xc3v\x17\x8b\xea\xb0\xd5\xe8:\x5c\x93\xf4\x94\
+\x98\xbb\xa2\xa0U'\x90\xd7{a\xd8\xe5\xf4Z:*\
+YA\x00.\xdc\x1f*\x0cIc\xdd\x09\x8f\x95GU\
+s \x12\xeb}\xc8\xbb\x84\xeb;\xce\x8d\xa6\x9c:^\
+\xb2\x808\x0boy\xa5\xc3\xa8\xcc\xf2Sbl\x93\x83\
+\x80\x8b]\x961(aP\xb0\xb2\xf202\xed9\x93\
+\xd18\xe0\xbf\x17\xc6\xc6\xf4\xb6K\xc1bDF\xd9\x09\
+x^\xf6H\x95Z\x18c\xe0\xb0\x1bh(\x1e\xd7M\
+\xd4\x91g\xd4W\x82\xd1d\xd3\x8c=8\x8c1`\x85\
+(jx\x980\xc0[_!X\x17\xc6|\x1a\xd8\xcb\
+\x07#\x14\xe8<B\xc1W-\xb7,dA\xe4\xf9\xe4\
+SG\xc6\x93\x01S\xd9%\xc9\x0e\x9c\xba\xcf\xa1\xd1\x84\
+rs\xe1\x03*C\x92YI\x91\xf7\x12\x03\x0c\xe1\x88\
+P\x88J\x0a3\xd2\xc2\xb9NU\x9a\x15z\xefg\xb6\
+\xf6\xc0\xc2_\x18\x10\x12:9/\x02\x86Qh\xe0\x96\
+\xcdt\xbf\xa6\xdd\xfdb\x91\x86{\xac\x10x\xf3XW\
+\x8c\x8e\xb2e\x11\x09\x94^Q`\xe7\x5c}\x82-\xd5\
+\xa2s\x08\xed\xe9\x15\xc7)\xa4\x15\xf6\x10\xd6\xc85M\
+\xa7T\x0e\xf9G\xfbv\x9e\xf4\xc6\xb2|UR\x90\xe5\
+\xc8T\x8d\xa7\x10f\xbdk\xbd\x89\xd1\x08\x05\xff{e\
+tE\x99c\xf5\xe1\xcc\xef\xae\xcb\xbb\x1bf\xeaM\x9f\
+\x0eb&\xd6\x0b\x85\x14\xa34\x89,\xe5\xd3\xe1\xc1\xe0\
+r!\xe6\xdbuI\xdat\xb9G\xb1\xb8hoX\x18\
+\xf3q\x9d\xab\x83\xec$\xf3/\x1d\xbc\xb8\xb6\xeab\xa0\
+R&o\xba\xbb\xea\xc1)\xf3{,\xb5j\x1f\xd7u\
+\x08\xd3\x0cI\xd88z]\xc43\x13\x5c\xbf\xfd\x5c\xbe\
+G\xa3V/mn\x0b\x03\xf7\xdd.\xad\x05v\xe0\x98\
+$\xc8\xe7\x93\xeb\xe6\xcdQAL\xe9-\x00\xf2\xe3*\
+b]\x12U\x17\xb9\xbf8LJ\x86\xcb'\xbb\xb0\xca\
+c\x91x\x91=\x16\xcd\x1b\x07\xb7\xc1\x5c\x86\xb5\xa6\x03\
+\x8eK\xecp\x86\x81\xe0\xae\xffPjIL5I-\
+\x15\xd3\x82I\x17\xeb\x00b\x8a\xc7^dG\x8a\xb1M\
+\x0eJ9^Y\xdb\x82\xa9\xc9\x0c\x0c\xc7f\xa1Oe\
+2\x9a\xa1\x92\x17\xc6\x063\x0al$Xw\xe3\xdcB\
+\x80\x1d\xec\x93{\xdc\x87\x17\x06\xcb,\xeb\xd8\x82'\xe9\
+\x94\x8c\xea\xe5\x94\xae\x14\x14\xeb\x8b\x1anxg\x98\x9f\
+\xce'\xef\xcd7=\x9f=\x84iy*>\x15\x0b,\
+\x13\xd3\x11b\x83\x95U.\x1e\xf6\xbfW\x06\x5cMY\
+\xe2\x87x\xeds\x89\xe1\x9e i\xe5\x1248\xbe\x1e\
+w\xe5]\x91fJ\x7f\xcbTC\xee\x95\x81$KV\
+\x16\xbc\x84\xfd\x18\x13\x84\x93\xbdX3~2\xd2\xee\xa4\
+\x92![\x88$\xd2\x88\x8bI\xd3\x17\xbcu\xdb\x17\x8b\
+5[\xb3t\x19z\xc6\x96E\x121\x0c\xef\x85\xf3\xb7\
+\x8a\xd9\xc5\xe2\x1bo\xfa\xff\x13\x8a\x99\xf20\x0e\xfa@\
+\xff\x7f\xc5\xec\xff\x0d\xc5\x0c~\xb7\xf7\xc2x+f\xd7\
+\xac\xdb\xf2\xb28^\xa7\xcd>\xa7A\x8e\x16\xc6y\xf9\
+\xda\xc8\xd2\xa7?\x8e\xa1'\xa68\xc7\xd7\x8c-8]\
+\xe1\xb0\x97\x22\xe3\xba\xbd\xc6W\x04\xcau\x05\xde\x05c\
+\xf9\x98\xc8m\xd2\xec\xc1\xda\xc0'\x1e\x9f\x93L\x99\xa0\
+\xfd\xe7M\xc6\xd0\x5c\x82\x92\x0b\xb2O\x81\x1e\x0c\xb8i\
+\x0b\x03TYy\x02U\x7f\xb1\xab\x22\xbe40m\xba\
+1\x07u\xb5B!\x16\x99\xcf|O}|Z\xf9\xd0\
+K\xdb\xfe\xdeRv9c\xcfF\xb7?+\x03{\xbb\
+\xc9j\xdd\xfa\xdfw\x82X:\xb0\xf3eE\x91J\x14\
+C\x16^\xaetjl=\x96\xb2\xd6ji\x04`\xe6\
+\xe9ZT\x83\xe7\xf0\x97\xb7\xf9i\x8e\xfd\xda\xbc\xa7\xa9\
+\x85\x89/\x8a\xe0\xe9\xce\xbf\x88\xcc\xe2\x93\xc5\x8bd3\
+\x17\x1d\x11\x02\x11C \x1b}3\x12@@]F\x95\
+\xd9&\x881\xc3\x9d\xc0\xd8\x16.\x00\xcfJ;~9\
+?\x83A\x80\x06\x81\x22\xb9M\xda\xd6\x99\xab\xcf\x17\xf6\
+\xcb\xf1\x8a\xce\xf3\x5ch\xa1I\xa8\x89l\xd0\xc3\xf2z\
+\x18Bc\xa1\x9d\x05\xab\x0ag\xc2\x98\xe1*9\x5c\xfa\
+\xd7\xf4\x16\x0c\x814P\xdb\xaeaxu\x90JVu\
+\xcd7y\x13J\xd4A,\xc4p)\xb2$\x9c\x86X\
+|\x93\xaanO\xbb\xc3)l\xbb\xecx\xf2N\x9b\xc5\
+\x8bbq\x00^\x1a\xaa>]\x1dD}Jo\x5c\xe9\
+\x9bp\x88D\x22U\xe5]`A\xd7\x1eF\xdbm\xa1\
+\xf1\xbc\xc1\xd0\xe8\xae\xc3\xe7\xab\xdc\x15\xa7\xe0\x18_\xd4\
+M\xba\xc8\x96F\x1bT\x8e\xb2\xf7\xcc\x0a\xa8\x0f:\xe6\
+\xf7\xc3\x91{\x00\x0d`\xa5\x97.\xe0\x19\x91[\xd0\xb7\
+p\xa6\xcbg\xdbf\x01\xa9)\xeb\x22\xad\xe4M\xdcW\
+%\x9dT)\xea9 \x01\x94\xc9\xb0\x90\xfa\x80,H\
+\xf6\x8f\x14\xfb_\xda\xdf\x90\x9b\xe7K\x07\xac\x02u\x03\
+M\x07\xe7\x06\x7f\xb1\xd0\x8a4\x90\x15\xdeK \xd7m\
+\x9a\xe43k\xaa\x84\xc9\x1en>j\xd3\xf1\xb2\x14\xee\
+#Y\xebV\xfa\xde\xa6\x07\xa7\x1bq%\x07f\x82K\
+agY#{\x09\xec\xd9|\xf8\x15rj\xe5\x1c\x05\
+\xcb\x85/\x93\xb3=T\x13\xf3\xd3\x98c\xd3\xf1\xa0\x84\
+[L*\xfd\x0eo\xf2fi\xcai7\xce\x86\x825\
+\xa0\xd9B*\x82K\xc9\x1a\xb1\x9b\x8c\xe7K\x04\xa4m\
+\xa1\x7f\xee\xd9\x9f3F\xdf.\xba\xd3\x01_9\xf2\x0a\
+\xc2\xf0\x80\x18\x9c\x8b\xab3\x10H\x1dK\xce\xd2O{\
+\xfe\xa2o:_Jv\x944]3\xc5q\xb2\xda5\
+o\x06\x7f`\xefM\xf3\xc64n\x13\xa3\x1f\xf27=\
+\xb1\xab\x1e\xa0\xc16\xba\xc6KWZ\xe7\x96\xcfZ\xb4\
+*\xf2/\x1a\xfdh\xdb\xca\xf8\x91\xa7\xbd==\x7fJ\
+\x16\x8c\x07VZ'\x1d\x81\x0eg?v\x8d$\xd7\xc9\
+\xe3\xdf\x0elQ\xfd\x06\xc1\xfa\x16_\x19sY\xc8\xcd\
+\xbd\xd5\x19W\xfd\xe9\x90t\xc6X^\xe8\x9b\xf3\x1a\xe9\
+%\xda&\xfb6\xcf\x91A<\xcf\x94\x80|\x9e\xae3\
+\x0fv,\xc1\x85\xc6\x0a\xddu\x01G{\xe8\x88\x0e\xc9\
+\xebco\xa5\xef\x0f$s\xb3\xafYrgs\xc0\x19\
+%\x93\xd6\xdd\xfc\x85-\xe1\xf3\x17\x91\xec\xdf\xa2@\xfb\
+\x8b\x96C\xdbE\x1b\xe1\x99tYk\xd6~\x03\xaap\
+S\xb4'\x83t\xbb\xe3\x16\x16\x06#\xfa\x0e\x08\xd4#\
+\xc9U\xb1\x88|\xc5!\xacj\xc0_[\xf1\xf8\xa3r\
+\x07t\x9f7\x8d\x93\x8e:{\x17\x8c[\xc6\xf5\xf6\xb3\
+\x12>\xd4&\xe5\x0d\xa1\x15\x95f\xb3b\x98\x8dOL\
+\xc0\xca)q\xb7)\xd2\xfa\x0a\xd7\x8e\xcc\x84z\x7f\xb1\
+c\xc3\x8cb`\xc8\x92\xb5\x9bK\xce3@G\xeb\xa1\
+\xf8\x88/\xaed\xff{\xe1\x0cR't1\xcai9\
+\x94LZ\xaa\x85N\x89T\xd7C\x0b\xba\x048`\xf4\
+\xba4{9\xfa\xe9\xfd\xbcr\xf0$\xcc\x1a\x97\x94\xcf\
+\x129\xc6\xb8v\x00@\xed\xcd(\x08\x84\xb8\xe4*.\
+\x87@\xf2\xca\x15\xf1\xa7+\xa7 s\x1c!\xab\xc8m\
+D\xc8G\x88\xb0\x87\x22\xb8\xce\xe8\x98c({\xb0\xc6\
+w\x95\xc2\x18\xb3\xbcpJ#\xb0\x05\xdb\x04\x93A9\
+\x1c\xad\x88\xb5\xce\xcb\x939\xdbd\xa1iH0\xc2g\
+\x0a\xcc\x22\x10\xe0\xac\xe6,\xfa\xfe\xe2\xc0@L\xfb\x08\
+\xfc\xfdx\x13\xa4\x0b\xec\x190\xa12\xb4y\xe5\x14\x87\
+\xfd\x16&3]\xaa\xc1T5P\x92P\xe6l\x93U\
+\x1ca\x8d\x8f\xe3\x0e\x8c\x11Bir,K\x17,\x04\
+v\x0e\xa7\xd8/e\xa1\xe7\xd1!\xde\x0f\xd1\xaeep\
+8\xa8_C\x88K\xc2D\x1f[\xff1tn\xfc\x82\
+\xb6\x07\xdc\x16\xf7\xeeA\x7fr\xca\xa1\xd2\xae\x18t\xd6\
+[cexM\xb6\xaa\x1c\x9a\xb3M\x16z\x89H9\
+V\x80C\xb0ZU~L\xd0\xf7\x17\x07\xbe;\xf6\x0e\
+\x97\xbd\xaeAG\x91\x15\x0e\xb1J\x81,\x9c\xc2\xba\x83\
+\x17\xc7\x87\xe5u\x8aq\x03\x8e\xdd\xa52\xcd\xd9&\x8b\
+\xb1PE\xcb\x93\x05H0\xe8\xfc\xdf\x8b\xe02\x1at\
+\xa4\x8d\xcc\x972\xff\xbbr\xd0\xdb\xe5A\x7f\x0eN\x0c\
+\xfa{\x081\xe8\xf5'\xfe\xe3(\xb3\xd4\x0f\x1fIY\
+K\xfb\xcd\xc1\x97`\xfd\x85q\x93\xcb\xf6\xa0q\x18\x06\
+\xad\xd2<\xc6\xa8\xde\x1b\x1c\xf4\x09e\x0cU\xb6\xb2\xa9\
+O\xc71\xe9\xfb\x8b\x83!Ff\x00\x868y]\xa3\
+\xeeW\x81\xaaC\xa3\xd9\xca\xa1\x1d\x1b6\xf6CU0\
+T\x12\xa9\xf0\xdbr\xd3\x98\xb3M\x16\x86\x18\x11\x108\
+\xa9P_\x8eC\xdc\xf9\xe7\xa4BK\xacCv}\xde\
+\x89\x1b\x1d6\x02+9\x220r\x19\x18\x8d\xf0:|\
+q\xf7\xd5\x7f\x1e\xe1C\xebI\xe5\x99\x17\x06\xbe\xc3\x05\
+\x06 \x7f\xd2\xaaJ^\x80ru\x16\x8f\xf0A\x07\x90\
+Yl4\x16:,\x0cX\x04\x18P,\x0a\xd3\xf7\x17\
+\x07\xc3\x81\x82\xc5(\xd4\xd1\x1de\x8b\x1c\x16\x0c\xa8b\
+\x0bWNq\x9dd~\x1c\xe1y.\x13XT\xab\xda\
+C\x9cY\xcb\xc3,\x86mbm\xa0\x1e\x1b\xecV\x18\
+bo:\xd5\xe6\xc4\x18\x1f\xcf\x97\x1e*\xf7\x801>\
+\x92\xc7\xf8161\xc4\xaf\xf1\xfb2\xebP\xe6\xf8\xc0\
+>j\xf7\x10?9\xd8\x08\x8cJD\xac\x11\xbfk\xc3\
+\x1e\xa2+\x98\x82j\xce6Y<\x0f\xbdH\xb9\x1c0\
+\xa2{\x9d\xf4\xfd\xc5\xc1x0@\x16\xc5P\x8a\xc6\xb8\
+z\xd1v\xd5UY8\x18c\xce\x12\x8e\xa9\xac\xb3\x06\
+\xb6d\x0c(\x8a\x0d\xde\xc1\xd9&\x0bc\x0c,\xc6R\
+\x9b\xaa\xa2\x10\x1b\xea\xe2\xdf\xf7\x12c\xcc\xb0\xf7x)\
+\xfa~h\x1d3,z\x1d\x9c\x18\xe4\xf7\x10>L\xb2\
+\x10]\xdcm]Q_\x7f\xbe8\xc5\xe0\x81\xe5\xd2\xcd\
+\xbfD@\xe2\x15\x88\xf0\xe6l\x93\x85\xa3M\xafP\xec\
+B\xd1}:\xc8{e`$\xf4<5\x8d\x0dcy\
+z\xbdJ\xc9_9E\x98\xa4\x14\xbc\x9e\x1e^o\x8f\
+\xa9\x1c\x88\xb3M\x16\x82\x8c\xa5\xcd(\xa0\xae\xf8\x06]\
+&\xda+\x06\x976\xd3x):\xae\xb1-\x92\xa2\xef\
+\x81\xd1\xd8\xae\xc3\x17g\x84Q\x1c\x14\xcc\xc3\xd0\x92l\
+O\xc8\x9f\x95\x81P>a\xcc\xc9\xba\x13\xa1|u\x9a\
+\x7f\x9a\xf1\xaf\x83\xc5<\xa8\xa8\xf26\xd3xY\xcd\xd9\
+\xe9\xaaoN`\x0aV\xa1\xe3n\x81\xd5\xc2\x8a\x83\x0e\
+\x0e|s\x02U\x815x\x1f8\x09,$\xa1\xa8+\
+q\xb6\xc9r1\x83\x0f\xed\xec\xe5<3\x86\x90j\xc9\
+\xfb`\xd6h\xfd^9\x1bQ\x17y+q\xe1\x19$\
+\xbb\xea\xa5\xd5)\xcdO:y\xcarU\x84\x89\xaaf\
+W\x99.'\xc1\xac0\xde[\x8e\xdd\xc5\x04\xb4\x9a\xe2\
+g\xf7\x17g\x02\xe1\x09D{\xfb1\xaaEv\x22\xf6\
+\x8b\x8c\x1c\x7fO_t\xa9~P\xef_\x9cm\xe6e\
+gg\xba}\xb0\x13\xa2\x12\xce\xcaI\xdeQ\xacP\xdb\
+~&^8\xb0\x0emR<l\xd0S\x85\x9f\x80\xa5\
+\xc9\x81_}\x18\xfa\xf0\x08\x03\xdb\xc2\xd9&\xdehT\
+\xf4a\xa1\x82\xf3zZ\x15\x17\x0e\xdc\xe9J\x1e\x95Q\
+\x9dV\xfemZ\x04\xef0\xfb\x9b\x8e\xfa\x1c\xac\xa1\xdb\
+r@\xc8\x7fL\x90o\xc66a\xddg\xbci\xd1\xb0\
+\xcfX\xe4\x85\xc1\x19o\x8e\xb0}D\xb7\x06l\xf1\x9b\
+\xf5\x81\xb0026\xab\xd4|\xfa\xff\x18\xd3CV/\
+\x16k\xe9[\xac\x0a\xd3\x9c\x94\xd8\xa8fx\x15u\xc7\
+\xa2\x16\x9bmm\xb4\xc9\xb2\x1bo\x8c\x8a[\xce\x86\xef\
+Pj{\x9a\x8d\xa0\xfege\xe4N\xef3\x0d\x00v\
+\x1c\xdb\x5c\xf3\xa0\xb2*\x1c0wSwU\xe1\xbf\xf4\
+(\xef\xb40\x82<\xb3\xc9\xd7'\xef\x9f\xed\xdf\xb6\xaf\
+v\x8d\xbb\xd4P\x11[5\xf9 x\xebr\x8d\x15\xd2\
+H\xf9\xcf1\xebO\x0aQ\xf3jg\xd0\xc2\xe49c\
+E!\x9b\xcbX\xe8\x0aI.\x86\x119\xeb\xdf2\x94\
+\x8b\x80v6\xde(?\x8d\xe2\xf1\xfdl\xf0h\x7f\xd7\
+FM6\x83\x8eN,\x1cDU$W\xc7\xe0\xed\x9c\
+i|\xd2\xfb\xe3\xdfE\xa1\xdb\x0aZ\xa3\xe8\xe9\xc2\xc9\
+\xbaj\x08\xa77\xa3D\xdd\xa3]{s\xf9\xa8\xdc0\
+\xdfm\xfbk\xcb\x86^h=\x96\xc6\x9b\x81\x84\xfb\x94\
+<\xa3\x81\x911\xd37_\x0c\xb9\xe2\x08y\xadF1\
+\xbex\xb4\xf1cOz3\xa2\xfeW\xa7\xbb\xe0\x90\xa1\
+\xaf;\xaa\xe4^88\xce\x7fd4y\xb7\x90\xd1\xd8\
+k/0\x11.\xca3\x17\xd7\xca\x81\x18'}yb\
+\xean\xba\xce\x95\x92\x94\xd8I\x0c`^\xad?\xa8\xf1\
+\x1a\xe6j\xd4y\xcf\xe0\x8b.\xdd\x928>\xbd\xcdo\
+k:\xd6\x16>\xd3\x01\x9a\xa1\xc6\x0f\x05\xf6\xbe\xe9l\
+\x14\x97.\xf9\x90;3\xb0\x11=}\xd3\x5c=N\xc0\
+N\x5c\xf5\xed\xb7\xc2A\x5c\xa9\x10\xc9\x98\xbfi\x90G\
+\xaeT\x92\xa9\xf8\x8bQX-D\xd9\x1c\xc5\x16\xd9-\
+*\xcc\xdc\xd3\x84\xe5r7%\x10@\x84\xe4\xbe\x90\xf7\
+\xca\xd8\xe8\xed\xb6\xc4\xa2\x16e\xb9\x99\x8a\x8bm-\x0c\
+\x84\xbfvBc\xbb.\x9d\xfc\x06\x04C\xd5\xca~s\
+\x84\x1ew\xf1 \xadPp\xab\xa1\x5ck\xd8\x0f\x8b\x91\
+\xaf\x03\x0b\xbeL\xdc\xecZ\xac|\x1a6\xbb\x86\xb7m\
+\xe5\x94(\xf9\xd3\x19\x1d[\x02\xd9[\xc5\xba\xd8\xa87\
+\x8b\xfajR)`\xccS1\x9e\x1c\x02\xb8\xad\x9fZ\
+\x9bD\xc2C,Gyl\x92\xc6\xa1(\x9d\x9aU\xe9\
+\xbb\xcd\x04t\x87(\xf39\xb4\xd3\x9c\xd5\xcf\x12\x10\xcf\
+I\xe3\x0c\xd3\xd8\xc2\x0a{\x0f\xc0\x8c!\xbd\xa2Q\xa1\
+\x5c\xdd_\x9cBTh\xd5T\xa4\xfd.\x1aUsT\
+\x16\x5c8\xf8\x06-\xfea!\x94_\xac\xce\x98\xe87\
+\x87_`\xaf\x8e\xcf\xf1\xad\x94\x93=\xda\xb4p\x98l\
+\xc6\x10\xbc.\xc5\xb3\x84\x8eq\xf6\xb9\x91#\xd4\xea0\
+\xf2\xc1\xca\x99\x83\xd9\xad`\x95\x12\x0e\xe6\xd0V\xe7X\
+\xd8\xda=i\x0b\xbc\x95\x9e\xbf\xd8>\x8f\xe46c4\
+\xe2\x06q\xd83~\xccU\xf0\xe403\x8eE\x98\x0b\
+\xc2\x077]\xab\x19My\xc5vy1\xca\x84S\xa6\
+\xf5\xbc\xb8\x1a\x10\xb3\x5c\xf3\xfbZ\x93\xe4\xcb\xfc\xfd\xb9\
+\xfb\x98S\x0c\xe1\x13\x91\xecEx<\x9f\x8c5\xc6\xa0\
+\x1f\xd34\xbc}l\xc5\xaeLU\xec|*\x9fM\xcd\
+e\x80\x13\xb5\xe5\x87\xa1\xd5\xad4\xb9\x99\xbe\xbf\x1e\x98\
+)l>\xbb\xadV\x11\x95Z\xa7\xd2\x9b\xb3}ng\
+\xcez\xc3\xdd\x8c\xaf\xd8\xc3\x96\xbbr\xe2\x9a\x9a]\xc4\
+\x09\xf7>\x85\x98\x5c\xa1\xbe\x9a59\x05+\xf7\xd2\xfe\
+4\x9c\xdaL+Z\x18\xccLv\x02--(\xb6\x95\
+\x87\x1f\xe6\xa6\xf1\xae\x5c\x1f?\xc6\xef/\xce\x5c\xd9r\
+Rna\x7f\xcf\xed\x8aa{\xd2\xb4\x8d|\xae \xb2\
+\xa7\x5c\x9fK\xccM\xe3\xac\xba\x18\xf6]\xd5I\xc0\xee\
+e\xff\xde\xe4\xfc\x01oE.\x1c\xda\xaa\xabz\x9e\xb4\
+\x99\xaf\x1c\x9a\xe0\xe3\x921\x7f^Z,\xf8\xa6\x93\x14\
+\xea\xebPp\x7f\x07c\x0b\xce\x1c\xa78P\x0e\x97\x0c\
+\xfc\xcc\xc9\x8bA\xb1\x8e{X\xd6Q\xbd\x15\x03p\xc2\
+Uf'\xc4\x8bA_D\xa7\x8c?\xfa\x9ca\x16\xd3\
+P\xe5Y;1\xb6yv\x1fQ\x1a\xd1k\xd3\x15\x05\
+\x8ekJ\x0b\x97\xd8:X\x1a\xac\x18\x0a\x0f\xf2\x86\xdf\
+kr\x9b>D\xaaW\x1e\x0b\x12s\xd8]\x06\xcde\
+\xdcb\x1d\xa4\x87+\xe6\x9c\xef\x94\x01\xc8\x154J\x8e\
+^\xd4\x1eE\xfc\xeeO\x93]\xe6\xaf\x18\xbc\x95\xd5\xe0\
+\xf2g?miO\xf1\x0b\x97E\x10#\x1c7\xae\xbb\
+P\x0ca\x0aU\xd2\xa6\x8f7\xe7\xe3;\x89\xbad!\
+\x00?;\xf6\xcd\x98\x12q/S\x10P\xfeEa\x08\
+3L\xc7\xf9,\x14\x8fI^\xd3\x1d\xf6f\x14W\xec\
+\xe2\xfd\xa1\xcfC\x93\xf0jS\xd7\xc3\x9c\xb9\xfeE\x91\
+\xaf\xfe\xf2qe_y\x8f\xe1\xdf\x8a@\xe9{hI\
+\x8c-\x9b\xa3i\xcc\xfck\xdeO\xde\x0c\x964h\x8a\
+\x9fd\xa6e1\xdc\xfc\xd4<\x1157\xd6\xb42S\
+~\xbf\xc9\xac\x92\xae\x11\xf2p\xd5P\x05Co~q\
+\xe8\xbf'\x19J\xf7S\x91\x8c\x22\xe2OU\x13\x97\x02\
+\xbb\xb8\xce\x99{\xbbp\x22\xd4\xa18|\xc5>e\xf8\
+8\x1c\x99\x91.\x1b\xf4N\x09\xfe\xacj\xc9%\x82'\
+\x9c\x13T\xda\xe7r\xf0\xe6\xc0\x0dMk\xdbaT\xce\
+Lk\xdd\xf4\xd9?\xa8\x1c\xa9Q\x87\xf4\x98\xdc\xf5\xad\
+#\x22{\xdf\x8c\xed\xf3\xad(\xa6\xd3#\x03\xbbG\x05\
+\xac\x85\x13\xb5\x8b\xa9'\xf0.\x5cie\xbc\x22\xdaB\
+\x9c`\xc4\x84\xf2&\x09\x03{\xf8V\x8b\x83-b\x09\
+@\xd9\x95ip\xef\xf1\xd7\xc7?\xef7\xdf\xdeH+\
+\xba\xd91p\xa5\x96\xe91\x0e4Y\xb3 \x9bh\x5c\
+\xac<K\x11'\xd3d\xb0\x8cQ40\xf0\xe1\xeb\x9e\
+.\x0f\xc5e`7\xfc\x80\xedV\x05\xdd\xfbgad\
+\xd5\xc5-:\x09\x99Q>^\xd6\xc2&\xc6\xc0x\x0c\
+\xc3\xe9\xa0V\xba\xb4\x1d\x1a\x90\x8d\x8b\x09\x83\xacc\xaa\
+\xbcr\xc1\x09\x8ft\xeb\xf6\xb5\x95\x09M\x5c\x94\xb8\xbe\
+Y\x11y\xb0\x94\xbcv\xc8\xf5A\x81\xb9\x1b\xe5\xb7G\
+R\xdd\x9cH\xdd%\x01\xb2A\x07\xa0cEN\xe7\xdc\
+M\x89\xbfr\xb2\x8f\xe6\xba;\x90\xc3\x95\x04\xea\x9e\xa3\
+\x00\xcc\xc2\xa2%\x04\xddp\xc1\x1b\xdc\x9f\xe4\xf4\xf7\x98\
+.\x0c\x05#o\xf4Fpu_\x12Wuw\xe6\xda\
+\xc2\x80\x91\xa6\x06\xda@\xe5|\xd4}\xc6\x10\x90\xb1M\
+N\xb6\xaa\x87\xe6_\xb3bo\x9d\xc7\xf8\xca\xc9\xbe\xe8\
+\x80\xd6\x0cf)f\xd1\x7f\x01I\x8c\xcd\x05\x86\xe0\x11\
+4`5\xeaK\xbaR]\xddC12g\x9b\xacd\
+\xebE\xf5i\xec\xd8\xc7rE!\xf0\x85\xc1h\x0c\xb8\
+\xc4NW\xd0\x8e\xa8\x82y\xfa\xaf\x1c\x02\xecC\xc3u\
+hV\xf2]\x1fw\xf0\xa8\xa4z\xb9\xa6B\x8f:\xdd\
+\x0e\xb88\xdb4#\xeb\xc8\x0b\x8f\xc2\xca!\xa4&\xfd\
+\xa9\xae\xb4\xe9\xea\xe4\xe5\x93\xa2\x7f(\xa6\x12v\x02\x97\
+rftAs\x02\xbe\xd1\xa3?\x10\x06Q9\x09?\
+\xa090\x00\xa5uX\x03\xffD\xcb=b\xbcW\x0e\
+,#:\x99qn\xd1P\xc2O>\x82$\x85\xea\xde\
+l\xff[\x0f\xfa\x85\x96\xb5e\x15\x0f\xff~\x22.\x8b\
+\xf1\xc8\x83'\xec\xcd\x85\x91\x95\xd1\x89ya\x14\x9b\xf3\
+=\x83\xbe\xa5\x1ec7\xc4\x13\x16g\x11\xb2\x91\x8d9\
+P\xe6E\x9a\xa8[\x95\x0c\xae`\xab>\xd8~\x92#\
+p&4\x05Zp\x00\x1e\xa4C\xeeJ\xd88\xed\xb2\
+\xf8,\xac\x85\xb3\xb1$}\xeb\x8e6\x81\x8d\xaa\x5cg\
+\x04XN\x82\xd6\xed\xb1KwGo6\x03z\x5c\x01\
+)m\xce6Y\x84;\xf0\x02\x96\xbc\xf4\x19q\xedQ\
+\xfe{\xe1d\xc3\x10\xdb\x8f\xa4\xa8C-\x858\xbb\xdf\
+\x0c\x5c1\x15\xec\x12\x06\xde8Kc\xf9\x99\xb3MV\
+v\xe6tl\xa3\xac\xdaX\xa5\xcf\x93\xe9I\x83b8\
+\xc9\xb4\x08'\x01\xa9\xccl\xf7\x7f\xdb\xbe\xd6\xc7\xd0>\
+\xba\xea7\x15\x96\xaf\x82\xb31\x1b\xea\x06\x9c\x0c4(\
+\xdc\xc9\x11C`<\x00\xc2a\xed2\x9bV\xe2m\x12\
+O\xe9j\xfa\x16\xb2\xa5\x18\xb4\x09\x91\xc2\xect\x83\xbd\
+%\xd1\xbd\xeb'Y\xa8+\xc8T0x\x00\xe32\xd0\
+\xb4+\xe9\x12\xcfY\xc3\x03\x02E\xea\xbb\xee\xcd\xd8\x95\
+@\x0f\x00Ds\xd7K\x0f[\x0a8\x00\x08;\xd7\x9c\
+u\xe4&z\x08\x00\xa6\x85\x0c3\xf8\xc6\xf5\x11\x9a#\
+\x0e\xbf\x80\x02\x14\xe0\x08E\x1d\xab\x82\x8c\x06\xd2\x13{\
+\x01T^\xec\x06\xe2f!\xb8FHZ\xa7\xb0\x11\xc8\
+\xa1\x81\x83\x91k\xf2\xa1\x03\x93\x0e\xf6\xa8\xcb>u\x09\
+i\xc2xn\x1cMN*\x91\x925\xba\x8c\x89\x8e\x80\
+\xaa(\x0e\x09\xc3\x0b#|\x98(\xaa \xb9\x8e\xe0\x13\
+\xa6D2\x86\xbd!\xf9\x90\x07_\xd1O\xe0\xaf\xc1\xa5\
+\x176\xcf\xa4M\xc9:\x17]\xf8\x90pc\xed:\x17\
+\xc7\x09\xc6\x1f$\x84t\xf8\xe4C+\x0e\xe1}\x16\x86\
+\xe8WzL\x0854\xe8z(@\xd9\xe8DX\xac\
+I1\xd2\xcd\xeb\xf9d`0,\x81|\x85\x9c\xe3\x8a\
+i\xa6u\x05\x9cC\xceP\x9d\xc8\x07\x11\xa6Hc\x95\
+\xc0\xed\xc2\xf4\xa4\xac\xe0\x14m\x09:\xe4\xaa\xc3Y\x84\
+f\xc1\xb0\xe9.\xbft%\xf6\x13\xc3\xa0\xab\x9f\xeft\
+\xf15;\xaeO\x04\xc6d\x15Z+3\x91\x01'J\
+9\x15ZP\xa1q\xa0\xce\x13\xc7\xeed\x1aSf\xa8\
+\x8at\x9c\xa6n\x8cCI\xe0\x5c\x08\x05\x83{\xa8x\
+\x0b\xcd\xd0eK\xaa\xa9\x06\xe1\xd4C\xa8H7\xd6S\
+\x91\xfa\x0a\xff>\xd7\xfah\x03\xfe\x0c\x1c\x10-\x12\x9a\
+\x0e\xe5\x9eG\xa2\xc4\xd0/\x19\xd4t\xedD\xc6\xc3@\
+rI\xa0\xd2\xb5\xf6\x06\x22\x10\xa4Z%F\x8ae\xdf\
+\xcb\xf5\x0a\xb9\x15\x15\x04\x10\x92EF\x82\x83\x1c@\xcf\
+\x81f\xde+^\xca\x93\x1b\xeaz\x15]\xf4\x91\x8b8\
+%\xe0 \xb6*\xb3\xc4\xbc\xfaq]\xc6\xb6/\x8e\xe7\
+\xd2\xf9\x0dL\xfb\xa4\x91\xda\x091k\x806\x9c\x9a\x88\
+\xc3\x85\xb4(\x0a\xaa\xdb\x19\xfd@X\xd6Cq\x1c\xfb\
+\xa9\xec\x06-\xc4\x13kf3>\xb1f\xd4\x802\x87\
+\x0f\xef.+\x077L\xd22\xcb\xce\x01\xe0\x1e\xec-\
+vm\xcb\x8a/%\xebR\xb4+\xd2\xa7\xf8\x8a\xac\x9f\
+\x00b\x98\xb4\xb7-\xd4g\xcd1\x03\xd8\xe1\xe1\xbc\xac\
+M\xe4S\xa1\xc6\x97~\xa1h\x11\xc2Sv\xbf\x13\x87\
+M;f\xb3\xb8\x8f\x81)}\xa8\xd9\xc6\x89\x83\x86r\
+\x5cj\x16\xa0\xccpV )K{J\xf1\xb4\xd5\xab\
+\xfb\xb0\xf4\xeds_\x1eMO\x10\x88\x0f[\x8a\xe6\xec\
+\xa6<1mS\x8ep\x93\x08\xc5N\xc6\xd1\x0c\x09\x9f\
+\xb4\x8f\x8f\xf4\xd1\xb0\x8b\x81\x9e\xa4`')\x05\x95\xb9\
+_`h\xc0\xc7~u\x0a\x08\x07\xaf\x12\xa7L\x9e\xa7\
+\xd4\xba\xdf\xa1\x83\x94\xc9\xa6\x90\x13\xbd\xc9u\x05\x10i\
+\xdeO\xaf8y\x11\x18\x06\xc6\xae\xec\xa7\x8a\xc59h\
+\xca \x04\x5c\xef\xfa\x01\x10bn\x9d\xe5Y\x0a$\xf7\
+-D\x0f\x96/2LB:0\xc8j\xf7\xe1\xdew\
+\xa6\xba\x83A\xd4=\x9c\xa7\x8c)\xda\x8da\xb9HB\
+\x0a\xcc/\xe98$f\xde\x151\x87\xadvQ\xcb\x82\
+\xc1\xa1HK\xaage\xdc=+1\xc1\xd7e\xe46\
+\xc6\x0b\x22\x1c\xbb\x0b\xad\x0f\xe9v\x8cp\xaaL'\x04\
+\x03\x09W|\x84\xf8}\xd51\xac\xd5AttLp\
+\x7f\x1e.\x13\xadB)\x85\xa9yM\x10\x7fTh\xaf\
+\x16\x18\x9c@\xcan\xe2\x00\x1a\x17\x11\xe4D\xd4\xbc\x9a\
+A\xb3v\x22\x1b1P\xd6\xa8\x9dPg\x9a4\xa3\x8b\
+Xi\x0c}$v\xcb!\xa8\xd1F\xe5\xce\xfa,\xb2\
+MpYD\xd5\x00\x9cL\xc8&\xc5M\x10\xb7\xaf\x04\
+\x15x\x97+\x07\xca\x98/0\xc4_\xab\xe4\xf0\xa4B\
+\xd6gn~\x05I\xb5\xf12\xd2\x0d\xdaD\xf8^\xfc\
+\x02{\x0b\x96DDj\x81\xee\x8a\x93\x87T\xa7\xbeW\
+\x84\x9c\x97\xe7'\x9aQ\xe1\x10M\x08\xba\x0a\x22S\x92\
+\x88\xad\x9a\xc1\xf7\xd8\xdf\x95IU\xc2O\xac<\xfd\x14\
+\xf4I\x88LN\xe1\xc5\xa14\xf4\x9c\x82\xd4.\x0a8\
+\xa2jv\xb5\x1c\x19\xe6\xf0\x14Q?\x19\x83g\xa5'\
+\x0b\xbb\x95\xc3\xd9\x85\x12\xc8(G(z\x94\x99\xc8m\
+\xdd\x15n}2\x14.\xf0>\x19V\x8b\x93*+O\
+\x134\x97\xb9\xae\x83\xc5Y\x92\x06\x1a\xcc\x8c\xedR\xde\
+7\xdfP\xa53\xf3\x0c\x86G\xb0(\x86t\x88\xc4\x1f\
+e\xd2\x00\xba\x90A\x8f\xbd\xbchZK\x9e?I\xb3\
+UU\xab\xf3\xf2'\x0f\xad\xd5\xd4\xdd\xa6\xaa\xb5\xac\xed\
+\x9d\xed\x9aaL\x1atH&\xf1Z\xe1.yB`\
+\xf2\x93g\xf1O$\xb0j\xe0\xa02M\x99\xe9\x91\x10\
+\xe4\xf3\xef\xe1\xcc\xa1+\xcew\x0b\xea0\xd9x\xbd\xb8\
+k@\x0b\xca\x11\xaan/I&8fS\xb4l\xdf\
+\xf5\x84\x96\x22\xa0\x93E\xe7\xaeo(\xdc\x9ayM]\
+\xd7\x9f*0Cn\xda]Q\xa9\xeb\xd1 \xec\xb2\xf5\
+\xb8\xf8kKaz\xc1\xc5R\xa0\xef@\xd8(\x87\x0f\
+\xee\xcb\xf5~t\xd4\x03.\x92\xe0M\xa1\xc7\x08u\x0b\
+\x0eH\x0b\x0b\x81h\x85\x1a\xd8\xa8z\x82\xeeW\x7f\xc8\
+0\x84\xb3\x84,e\xd2c\x17F(\xcc\xaa\x17\xaaM\
+\x22\x1d/\xc9X\xd3\x02\x8c\xb8\xea\x06#\xc0\xa8\xac\xfa\
+q\xb8\xd1\x18O\x92I\xd40k\xa9\xd4t\xc7V\xa4\
+\xbe\x06\x13m\x22CBO8\xa5\xa0\xab5!\x83s\
+\x9fF\xec\x80R\x01lNh\xd2\x87\xd4\x0e\x82\x97\xa7\
+\x00?\xbaf \xd4\x19\xa1\xe6\x89\x9a\x09\x91J\x93F\
+\x98\xc8\x0a\xbc\xe5*\xf4\xdc),\xc0\xd4=?a\xd1\
+,\xb7\xc5\xdd\x9c\xa8\xd9'\xdf`\xaf3\x8a\x1cSs\
+\xfd\xfcU\xe3B`\x0a\x95Ef\xc0\xf8\x15\xa9\x92\xaa\
+\xd7\xa5\xa5\xc6\x5cu\xa8\xd1n\xd1i\xcc\xb4++\x8c\
+\xd8\xb6\x89\xee\xbajt|\xb0~\x97'\xc7\xa1\x05)\
+L\xa2\xec\x84\x9a\xd5\x04\xdf\xadn%\xea\xc0\xe5\xd1J\
+\x97(\x7fv\xa4\x09\x1d\xf9\xf1\xc8\xe9f\x12\xdc\xd8\xa9\
+\xc5\xefo\x5cs\xe8\xb8&N)O\xf3\x15\x1f\x03@\
+|\xe4\x14\x10\xc6\xe3\x89\xfa\x1c\xac\x93\xae\x80\xe7`u\
+.;XGQ\x87\xa2[C\xc1\xd8u.|*\xcf\
+\x9c\x5c\xc2\xb9B-\xd6\xf3'\xee\x02\xa0\xabo\xe2\x18\
+k\xac\x0b\xad\x17\xe5\x19\xc0\xa5\x9f\x92\xb5m\xa02_\
+\xaa\x9f\xc4\x08w\x0a\x1c,\x93j5\xabE\xb1\xf8\xa4\
+\xb4\x82\xfdP\xf2,1z0'\x00\xcbsJZ\x89\
+\xca\xf5`p\xec\xc9P\xce\x1a\xc5`W\xb05\xb3o\
+\x0f\xedf\x8543\x87\xed\x92Z\x05\x95\x9deY\xb9\
+\xdf\xab\xd4\x17\x94\x92\xb8dxiFk?\x88\xa3\x07\
+\x0e\xf4\xc3\xbcK\x1d\xdaw\xfdZ7\xa5\x12z3!\
+Z\xc8\x18\xbb\x06\xa0{\x80\xd2k|\x7f\x11\x12\xec\xf3\
+\xc0\x11\x9a\xddz\x08\xfdE\xcc7\x06E\xa3>M%\
+<66\xfd\xa5\x10l\xa6\x94\x05\xd43|^U;\
+\x9a\x98\x13P\xed\xbb\xcf\x80F\xe5\x1aX\xf1G\x9c\x09\
+$\x05\xed\x07\xb0rR\xae@\x9e\x84S\xef\x0c\x16\xe2\
++\xefrz\xa1Y\xc2ng.C}\xc0j3\xb8\
+\x1b\xa5y\x01\xd1\xd3\xe5\x02E\x9b =\x22e\xad\x1c\
+\xcf5'\x1d\x16I\x1e\x84eL~D\xf2\x9e4c\
+\x04\xc2\x96+\x8e\x82\xbb!'\xb9\xec\xb2\x9e80U\
+i\xe6\x88\xcd\xb8\xd1\xee\x14\x0f\x97|\xe0\x1e\xdeE\xc7\
+\xb9A\xdf\x5c7ZQ\x92)e\xe3x\xebH\xae\xc2\
+QG\x82OW@\xe2s>\x02\x97\xef=G\x7fm\
+\x01!\xcb]C=\x15\x1c&\x19\x90S\x85\x16z\xea\
+\x08\x02\xdc\x1fHfk%\x0a\xe4[\x1c\x9a\x9f.\xd5\
+^G\xd2\xbc-^h<\x91\xf3u]l\xcc\xd1 \
+4}\xd2\xc9}\x0a\xae]\x11\xf80\x85\xd4\x1fB?\
+\xcb\x0a\xec\xe2FGU\x0d\x03\x88\x0f\x86\x0c%%5\
+\xb8\xcdk\x1f\xd8\xd7\xaf~=\x81\x00\xce2\xad\xaf\xc9\
+\x85\x88\xdf\x9c\x14\xa6\xbf@q=\xba\x9b4#\xb5\x8f\
+\xea*\x9a\xce\xf5f\xb9nc/\xc0\xdd+\x8bS\x94\
+Bz3R\xf6\xf9i\x17\x0c\x02\xa8\x95\xb7pL\xc4\
+\xc2Tf\x0a\x9e\x1e1\xceG\x84\xd4:\x06\xbb|b\
+j\xdf\x1c8\xae\x95\x98\xa8\xf2N)<@~\xfa\xcd\
+\x88J\xf30@\x13\xa6\xb7\xfae\xe7>\x0b\xe4\xbdY\
+\x9aXhV\x81\x90y\xb8Ze\xe0^.\x0c\x94L\
+\xa4\xf4\xeb\x84'\x0e\x13\xda\x0c\xc1}3\xa2\x82\xfb\xb4\
+\xdaweA:\x10\xe8\x96\x9f\xff\xc1I6Q\xc7\x14\
+t[\xe9?\xf8\xac\x0b\x07\x9b\x8c5\xb3\x8aqp\x93\
+K\xb2\xe1\x01o\xe5\xb0\xe3\xc7K\x8d\xbdH+=\x1a\
+lB\x1a\xf4\xb6p\xe6\xa2\xf2\xfb\x22\xe1\xb5L\x84\x8e\
+\x95c(\xe3-R\x11T\x1a\xe2\xe1j\xbb\xbf8\x88\
+N\xe0+\xda\xa1j\xe3Y\x05@\x19\xd0\xb8\xdd\x0b\x03\
+\xbe\x10Ns\xc4Ng\xb9\xee\xa6\xbfva$+\xcb\
+[\xa4J <\x91\x93\xfe\xa9\x0a\xb6p\x92\xb3\x8dK\
+\xe4\x13\xec\x96\xcb\xb5\x06\x82\xc0\xc2\xfa\xe0\xfbTAw\
+'\xdf\xfd@\xfb\x18^8\x0e\xb4\x97\x07U)\x08\xae\
+\xe6\x1a\xd9\x03/:Q\xcep\xd2\xb2\x16\xcda\xbf\xad\
+\xe9\xcd\x8c\xd8\x15\x87B,\xe7\xe0\x1dg\xec\xe3\x17#\
+\xc1z\xd1\xaa \x91\x15\xea\xb1M\xc6=\x93\x16\xe6#\
+QQ\xd6!q\x80\x03\xe7\xd0\xb5\xe9Izs6\x9d\
+u\x9c>'M7;\x07\x1e`\xcfo\x0e\xdcS\xdc\
+\xf8\x01\x1b~\xcauz\xce\xcaoMSl\x06K\xb5\
+\x1c\xda\x16\xdcG\xe1\x9aj\x01X\xbap6\xfa\xf9\xb4\
+\xa6\x22\xadE\xfe\x84\x099\xb00\xb0m\x8eO\xcat\
+(\xe6\x9b\xfd\xd1\xf7GUw.\xf9i\x01\xd0\xech\
+t\x9eLi\x9f$\x96\x17g\xfb\x80\xa7G\x84\x7fM\
+3\xb7\xd0+{\xe1 \xc6FK\xca\xadJ\xe1\xc4+\
+\x11 d\xd6\xe4\xb0\xf2\x19s\xb7\xbd\xc1wON\x89\
+\x04\xa9\x85\xc3\xa8\x18\xce\xa7\xd3s\xecF\xc9a\x22{\
+\xd3v@gF\x08\x12\x93\x8b\xb8\xb2\x97\x91O\xde\x1c\
+\xb6N\xc1|FJ\x9f\x89\xe1\x13\xd6{\xe1\xb0T[\
+S\x18 \xa7~wxH\x9a5S\x17\x0e\xb1\xe0\x08\
+Xo\xac\xf5]V\x834\x91\x0d\xde\x9c\xc0\xfbA\x0c\
+D\xfa\xc0\xff\x94i\xc4\x99\x18G\x13\xd3\xd7XL\x1e\
+\x1f'\xd8\x5c\x91\xd9\xec\xaa\x9b]\xe97\x11\xf8\xa7\x0b\
+]\xda\x03\xe9\xc3\x11c\x84\xf5bE\xb3\xee9\xf5\x88\
+Ep\x9f\xb1\xf6\xf2t[\xba\x0ec`)\xb0x[\
+\x12\xd8\x8a\x92\x94\x02\x84b\x86\x14\xc5\x1a\x98\xf8\xf4\x81\
+:A\xcfb\x0a4\x9d\xab\x87j'\xce6Y\xc9\xa0\
+\x14\x0ee\xf0\xf8\xe9\xe7\xf7\x9b\xc4\xa3\xb0\xf6\xc8;\xa9\
+?m\x8f\xc1\x8c\xb17cN\xd6\xee\xe3&\x0e\xcd=\
+\xb2\xf1\x88\x04\xe7\xf2\xd8\xb8~\xa0\xfbQ\xc5X\x07\xaf\
+]\xe3\xc9\x96\x8eyR\xa7\xf2>\xcc\x1d\xa0\x865\xa8\
+\xbbcjq\xe8\x85\xe2\x92\x84\x1f\xfd\xfb\x8b\x83\xc3;\
+\x0a\x1d\xb0\x9dqV\xa7\xae\x98\xd0{e\x81\xe6\xaa\xa5\
+\xccr\xb6\x19\x0bVM]\xe9\xc9I3\xaa\xa9X\xf2\
+f9o\xcaT\xebsT\xac\xb2>\xa6\xda\x0ax\x80\
+/x\xd3\x9b\xc5\xdc\xfb\x11'\x9f\x96\x88;\xb0\x18t\
+h\xed\xfd\xc5I\x82\xae\xd9\x22N(\x19\xb6c\xc6\x10\
+-\x0cL\x0e\xa7\xb3\x08w\x99\xe5\xf6\x1aC\xe4x\xca\
+n\xfc\x01\xe5\x8bc\xf4!\xadI;\x0e\x14j\xa6D\
+\xf1\x0c\x9f\xc8>\x11*\xc3\x05\x7f#\xafj\x9c\xc3\x0e\
+C\xfa\xcdZ\xbe\xfa\xbb~\xf1\xcd\x89\xcc\xb0\xf9\x8d\xe2\
+\x80\xde:SX\xa6.Y\x8bS\xdal\x91\xa8>\xce\
+C,\xd6\xb9\x0d\xabp\xb8\x0c@\x81\x88\x0cKw\xef\
+[\x87M:>\xea\x93\xd2\x16\xaf\x00\x1d=\x95\xde\xf4\
+\xa27\xff\xe4\xfd\x88\x85LuX\xc7\xf1\x89\xc1\xcaQ\
+/\xae\x96O\xdc\x16\xba!\x8d\xdf\x81]Lu`\x94\
+\xe2DJ\x8f \x06D\xc7c\xf0\xa2\xde\x87\xb5\x94/\
+\xce\xf6\x13%\xe05!C\xa7~\xce\x96\x03hj\x5c\
+J\x141\x119g\xcd\x85\xbf\xab\xc5\xf2C\x17\xa8\x1f\
+\xe1_|Y\x95~\xe9\xfd_?\xb2=\x16\x843\xf7\
+N\xd7\x7fVf\xfddL\xfa\xfe\xe2$!\x85\xcf\xd9\
+\x8e\xca\xe8\x9a\xed\xed)\xde\xab.\x88\xddB\xf2\xe8\x13\
+\xb1\xfeI\x87Q\xe2\xa4N\xa3e\x98\x99\xff\xb71\x00\
+\x86\x0b7p\x8f\x8a\x11u~\xbb\xe0\xfa\xfb^\x87\x88\
+\x17WWw\x9d\xc9\xff@\x85u\x15\x16\x84\xcb\xbb\xaa\
+\xc0\xfa\x8ba\xddF\x15p\x14\xdbs\xb8\x94\xbdt\x1f\
+1\xb6\xe0\xa4\x88\xe1m\xaeO\xef\xbc6\xfc\xb9\xffG\
+\xea\xb1{\x86\x12\xcbF\x11\xb5n\xe1xa\xea^=\
+\xf3w\xb9Z\x98j4\xf3w\x83\x15\xc5\x83\xdb\xa1\x12\
+\xf1I\x13\x8a\x9e\x1d\xff\x91\x06) X\xa5m\xd9\x9e\
+\x17#\xf6&Wo\x9f)\xb9\xc4\xdas\x0cW\x97\xa6\
+\x15\xac\xe40U\x16\x11\xaaq\xd0a\xc0\x92\x86\xf4\xcd\
+\x80HU\xfa\x96\xfa\xbfY\xa9\xc0B\xdc\xdb\x7fhH\
+%(\xf1\x02\x97\xb9_8*\xd9w\xba\xce\xde,\xc2\
+\xee\x06\xde\xa6\xb7\xd9b\x9fp\xa9\xca\xef\xea\x92\xe8 \
+\xb3\xb3|_\x0c\xe8\x9e\xca\xcd:9![\x88n\x96\
+2\x9b]\xf8\x18,\x1a\xce&ES\x94\x93f\x7f8\
+\x89\xab\x12Pa\xe0\xa3\x85\x96\xe1\xf4*\xf1\xf2&\xef\
+\x08\xf7\xdbh\xe4\x8cx?\xa6};\xfe~\xa5m6\
+\xa6\xe7\xc8\x07d i\x8e\x8d-\xa4\xc17\x83\x1b\xdd\
+\xea]U\xd4!-\xb0L\x0co\x7fK\xdf\xcc\xea\x13\
+\x0cX\xd15>[\x01\xca\xbb\x01\xb8^\xe4M\xa3,\
+5,\xeb\xb0\xb3NT2\xda\xd1\xc2\xf8\x91\xaf\xf1\xb2\
+7\x95!XQJj\x97$Xi\xb9\xa9p\xda$\
+\xe3QG\xb8e\x8a\xb0\xaf\x85F\xa0\x86u\xd3]c\
+\x81\x00N.i\x85\xb7m+\x83?q\xbe\x81\x81\xe6\
+\x10\xcc\xe1rj\xc2I|\x91\x0a\x9cQ\x12\xc8\xde'\
+4\x1f4\xc9\xdd\xe9\x85oR^\x5c2p\xbb\x98\xe5\
+\xab\x9c\x98fr\xfb$\xaa\xc5P'\x87-'c\x15\
+\xf8\xf97y\xab\xca\xd8)\x07\xa7P\xe1B36\xc0\
+\xfdJ\x7f0\xd3\xe2\x01\x87\xa0b\xfc\x85[\xe65\x1a\
+\x8c\xe9\xff\x93\xdb\xdb\xd0\x93\xca\xae\x93\xd6\xb5\xd2\x0a\xcb\
+Q*\x5cq\xe4_\xd5G\x93\x11\x1c\x9f\x94BS\x98\
+\x8e\x97>\x00\x91\xcc\xb5K\xca\xbdA\xc4\x0co\x04\x8a\
+\x81e\xdcp5b_L\xb5\xe3G\xe9\x89\xbb\xae/\
+\xfa\xf3\x91\x141\x80\xd5pZ\xc9A\xacfLZ\x91\
+&:\xd3\x8d\xd9\xe7,\xdb$\x1c\xd17\xa9Vi\xd9\
+;\xdb\x85\xd5\xb6\x9d\xed\x12\xe1\x95O\xfa\x16\xc6iV\
+iQ\x852z\xcd\xbbB{\xf6\xa9~\xcc^\xd8&\
+\xeaj\xee\xaa\x88\x9a\x5c\x82\xfeM\xdd\xfcue\xae\xe6\
+\xf1\xcag\x80n\xa8\xaf\xbdi\xb5G\xc5\x86\xf7_.\
+4\xf5\xc9\xfd\xdc\x16\xfa\xd1\x9a\xe2\x04\x0b\xabo\x91\x9b\
+\xb3\xd2\xb7#\x82\x086\xe0 \xebC\xc9\x84\xc9\x97\xdd\
+\x95~L\x5c<a[\xad\x009\xb6\xf8\xf7=\x97I\
+\xe2\xc5J)U\x90P\xbb\xe2\xf9\xdf\xe4\xfd\x13\xf1\xbd\
+N\xa2\xd1\xe9\x90\x84\xf9\xcbU\xf7&\xef\x89\xa0\xa9b\
+w\xb1\xeaiy~S\xdb<\xbd\x908_\xd35\x93\
+>ZT\xc9\xd2\xa9~~\x8e!\x89kY\xa6\xb3\xcb\
+\xd2\xf7\x00U|\xd1n\x89\x13v\x14\x85\xc8\x9b\x15\xee\
+*\xd9X\x7f\x0fR\xe1O\xc0*\x8f\x81\xf1\xa2\xb29\
+a!\x15\xfb\x04\x0d.\x06\xf9t\x96W\x80\x1b\x9cN\
+\xf5{b\x1fH\x1e\xc4\xc8\xcd\x0c{\xaf\xbb\x85V8\
+\x0f\x0b<@\x05\xde\xe6\xef\xe7\x17_\xe4\x1d\x91\xcfX\
+F\x8c\x089\x95\xb1U\x22\xde\xf7Ins\xe1SW\
+\xd1\xf3<\x94\x93\x0d\x8a\x0b\xa9t\x1am*\x87A\x87\
+36=r^\xb8q\xeb\xec\xb1\x1d\x9dI\x10\x83\xbf\
+\x05\x0d\xdb\xe6\xbet=\x22\xef\xebme\xe0\x0dWl\
+}%\xbe\xed\xb1\xb1\x9dW\xba\xd07-\x0a\x1a\xf7\xd3\
+9\x97\x91\x5c\xde\x9c0\xb8\xd07-H|Is^\
+e\xf2\xc0\xca\xcc\xb8\xad\x0c\xfc\xc4\xd0\xa5,UX\xcb\
+\xe7\x09\x1f\x9b+=\x7f\xb1Q\xaa*\x056\x0eR\x19\
+CWZ\x09dM\xdeb&\xc0J\xe69\x05d+\
+\x86ge\x04\xf8\xcf#\xc9\xdd\xc6\x1b\x5c\xf5\x94\xfd\xad\
+\x9c\xc97y\xcf\xcc\xcf-4\x87bO\x0fB\x8f\x5c\
+\x97\xe1A\xdeDq\x94X5TA\x0a\xf1%O\xe0\
+\xb62\xee\x9f\xc8\xcc\xcf\xb6v\xc0\x8c\xa2<N\xe2^\
+\xbc\xa8{\xd2\x1b\x04#\xb3u\x02 \xd6w\xc4\x95\xd6\
+\xa8R&\x1a\xb4f>q\x08\x92\xf6M\xabE<<\
+\x95\x09\x1dH\xaf\xeeP\xb4\xf6h3+\xd9\x85)\x93\
+\xdf\x16\x88\xd7\xc7\x13\x98\xc0\xe4\x1dy\xe3Q\xefpf\
+N\xcfd[\xd1\xdb\x03\xf1\x16\xabQ\xb0\xe1\xb1p\x9c\
+\x9fk\xcc\xdc\x95\xbe\x99:\xadBr6l\x96\x00l\
+\xb5\xa9\x90\xf8\xfe\xc7\x15\x89\xe7\xdc\x13\x01#,\xd3`\
+\xe48!\x1a\x9f\xa3\x96\x1c\x95\x1f\x0cMv\xeb\x13Z\
+y6\xc3Qq+\xadD1\x01'w\x1d\xc7\xd1\x8c\
+\xb2{0\x16\xfa\xa6)\x0f6\x83=F\xc7\x96\x93H\
+;w\xad\xbaO^z\xf8^\x9c\xdf\x99m\x92%\xa2\
+\xc4\x9e\xbf\xe8;\xb2\x1c\xa7\xb5.\x1a\xe9B\xa6\x0b\xf9\
+iQr\x94m$\x9be'\xa3=\xc9\xcd\xef?\xf2\
+\xe7\xef\xce/,\xc5I\x83o\xfa\xe6\x11\x7f\xe4\x09\xa8\
+J\xac\xf8\xc6\xccr\x01\x88\x8b\x0e2\x82L\xc3\xd6\x94\
+\xed.q\x94\xc2B2PV\x11\x09\x94.\x92WD\
+d\xec_\xe4M-K~]\xa5n\x84\xc9\xc9n\xde\
+me|\xee\x0d\xe1}a\x8c\xf8%\xef\x0c\xd5\x98\x85\
+VZ\x96,!g\x18\xed\x22\xf2\xf6\xb0\x9f5\xb2&\
+\x95\xb1\xbe\xd27\xd5\xccb\xeb\xa7<\xc5\x06\xef\x8d<\
+\xc8\x95\x9e\xf74\x8e\x22\xe5\xaaoY\x91Iiz\xfb\
+y\xe4Z&\xaf\x9c\xe2\x0bD\xcc\x83ov\x0b}O\
+\x1cc\x1b\xf5t\x95\x939M \xcbv\xe0\xd4+.\
+,\xf6\xd7V\x97\xfc3hq\xf1Q\x14\xf4\x16\x0c\x0d\
+\xde\xc7\xfd7=\xc2*\x98\xfb\xa2\xeeO \x95Up\
+\xdf<\x05\xd2\xc9\x0b\xb1\xaf\xa2\xe5\x03\x9bu\xd9\xd0\x15\
+\x0bD\x06\xfc\xc8p}\x93\x5c\xeb\xaei\x1aN\xa9\x1c\
+\xc8\x13N\xc4_i%\x11(\xbb\xd4\xfb\xa1\x04$\x9f\
+\xa77O\x83mL7\xd4\xcfH\xa3\x0d\x0c\xf2^\xed\
+\x11~\x11\xb7\xc1\xcf\xb7\x99Z:\x93\xc8\x9a\xd1\xf8_\
+\xe4\x1d\xf0\xfc%\xe0\xf2\x9d\xa0\x10\xfd/*\xe2\xfa\xd8\
+!\xc5\xc9F\xf6'G^\x96\xa7p!\x95\xd0\xa0\xa2\
+\xca\x91\x16\x16\x88\x13u\x02\xe6?H\xdd\x92\x99\xe1+\
+e\xe7\xb72P>E\x98\xe3\x17\xdb\x04L\x9e\xaf\x98\
+Y\xfbq\x09\x0c\xc8e\x22\xad\x9dBz\xe4&\xad\xbb\
+\x7f\x91\xe2\xcc*rx&k\xc5%\x0eM\x99\xeeW\
+Zs\xa2\xfabm\xd6\x01\xd0\xa9eg\x8d\x19\x0f\xe7\
+\xcd\xcc\xc4P\x89-b\x91a\xe9\xfc-\xb9)7G\
+\xce\x9e\xb8B:ql7\xee\xd3B\xeb\xf8\x8a\x92r\
+\x5c}\xc7e\x97\xf6\xeeKe\xd4\x9a\x89p\xb6\xa6\x88\
+\xba\xc8Z\x0dc\xf2\xae\xa0\x93\x95\xde\x94\xc5\xd4\xeb\xc4\
+\xf2\xc0q\x9bT\xa9\x5cg\xb7\xa5U\x0a\x9d0\x9f\x81\
+y\x92g\xa3\x95\x81\x17\xc5(\xa6\xd9~&\xe6D\xd8\
+I\xec!\x81,\xd8e\xff\xa6nAjhI\xdb\x1a\
+d\x83\xbcM\xe6TS.-\xc9#\x12:\xe4\xbd\x90\
+\xbed!\xb0\x05\xdcd\xdc\xdc?\xd1]\x9fWxj\
+\xc3\xac\xaf\x89\x0b\x0f\xbf}\x1b\x9b\x92H\xae\xee\xd8\x85\
+\xb8\x039\xa5\xddQ2\xd3\xf7\xc5\xf4\x05\xe3\xa7H\xbc\
+:\xbc\x99\x17\x18\xb8B\xfb\xcf\xa7\xf6(k\xbb4\xe3\
+\xd4tU\xb4bmMy\x0c\x17\x92\xcf\xf3\x8a\xc27\
+]\x86\x0c\x12\xe4\xfd\x8b\xba'p\x5c@\xee\xe5(\x08\
+}\x04\x00\xc2\x8b\x96\xa07l\xa4\x866\xd2\xcas\x0d\
+\xcc\xf5\x0f%\xad@\xd8\x8b\xa7\x152\xed\xc1-\x1b\xae\
+c\x0f\xc8\x92\xb0O\x85/\xd9\xf0&\xe1\xa7-\x067\
+]\xe8{\x9b\xd0\xec\xb8\xf3R\x83\xb3\x17\x22\xdbm\xb8\
+\xd2w\xc0\x09\xe4O\xe2\xbf\xb0\x1a\x8d\xf1g\xc6\xa4o\
+\x8e;G!;-]\xba\x14\x0ea\x9e\x13/\x92c\
+\xa4\x5c\xfdlL\x9f\xc8\xec\xcc9r\xd6\xdf\xb4\xaej\
+2`1\xd3\xf5rao\xe3\x0aY\xb7\xca\x13f\xc8\
+\x89\x9d\xd3\x04wY\x05\xb5\xf1t\xa17\xf7\x99\x0a}\
+2d\x87\x83$\xb2n\xf8\x0by\xab*WQJ\xc8\
+aT\x0d\x01f9\x8d\xdc\x8cI\x7fP\x17R(\xc6\
+v[\x07\xf6\xcb\x8b\xdc\xac\xc4\xea\x1e\x16 \xfa6#\
+(2`!oN\x0c=\x08\xba\x05j\x1au\xbbM\
+\xae\x8d\x85;\xfc9\xa5\x96\x17ob\x99K\xdf\x02N\
+y`\x8c\xcc\xf8\xa45q\x86\x1e\xa36\x11\x07\x1b\x1e\
+\x90Y\xe0M\xcb\xf2!?\x92\x13\xa8\xe5\xaa\xdb>?\
+\xb1\xef\xee\xf9\x93\xf8j\x97\xa5\xe7\xf4e\xf5,R|\
+\x9f\xa4\x10\x0f\xec\xba\xb2j\xef\xd4\xe44s\xb6\xdf\xb4\
+\xac\x13\xba>\xcb\x8e\xd5\x04y\x90\x22_\xb1i\xe6\x02\
+qGie4\xd8x`\xcf0z\xdb\x9a\xfa\xa67\
+k\xef]a\xb5j\x83\x9a\xe8;\xd3B\xde<\xff\xf8\
+\xb8\x0es\x1f~[\x16\xfcM\xd09\xe0q\x0c\x94\x91\
+\x1d\x8e2\xff\x9e\xe2\xae\xf0\xa6y\xf8^\xb6ZK\xe1\
+q\x87\xb0\x85C`=\xe9\x8f\x01\x0a\xa7\x02\xb7\xcc\x19\
+\xd8\xa8\x96'2\x11\xe5p+\xe7GE(\xa1\xc6\x9c\
+\x9a+]0\xfcu\x17?\x0a_\xa2i\xe5\xd4\xe9\x1e\
+*\xf5g\xd6l\xb6\xe2\xb1\xd0\xf3v\xe4\xe8\x93\xed\x03\
+\xc2\x12\xa8\x17\xdd\xda\xcf\xb4M\x86\x00\x09\xa1~6?\
+`7\xc5i3j0\xeeO\xb2\x7f\xe8\x0dq!\xd9\
+]he\xa1ovL\xdaJ\xf6%\xb2\xf9\x96\x7f\xc5\
+\xd5\xeaMki\xb1\xd0\x1cN\xacR&\xc2G\xdc\xc8\
+Mo\x8f+\xbae\xfd,\xd4c\x04*\xdb\xb0\x16R\
+\xa6\xbb\xe6U\xaa\xca4\x16q\xdeOo\x92\xaa\xe6O\
+T[\x0b\xfbz\x8e\x13\xe1MoV\x1c\x04\xebe\xd5\
+7@\xb6\x0eW\xf2Yh\xb5\x9f\x0d:\xd4\x80\xe6;\
+V@5G\xcaw\xd0\xf7\x17'\x07\x10n\x0d\x0d\xcd\
+R\xaf\xb6@@\x0cm#\xa0\xc20\x0a\x82\x0e\xf3\x12\
+\xb4\x99\xa3\xcc\xca=\xcd\xe8\xc1\xc5\xd8\x10-\x22\x9c\xca\
+9?\xaa\x1d\xf1\xc1M\xb0\x95\xab\xd8\xc8`\x17\x89\x05\
+\xe7\x9b\xdclx\xa7\x5c+\xc5\x9bDj}\x16P\x1d\
+\x1as\x08%E\xb7\x06;\x92J\x04\x07\x1bOc\x0b\
+u`\xfa\x89\xfe\x96\xbc\xbf\xff\xee\xc8\xb2b\xb3m\xb2\
+\x18-\xd3\xcd\xe4@\xa8\xf0d\xe6\x10\xec\xc5\x93\xb9\xd0\
+7\x85\xd9\xe1\x0b\xbd\xc4\x9f\xb5\x8d\x18\xb5\xdd\xe5r>\
+.\x0e\x9bf\xac\xc1\xe4\x09.m\xbf\xd3n\x04\xdd\x5c\
+}\xda\xf1\x5c\xa6\x8e\x84\xdeg\xa5D\x19\xebZ\x96\x80\
+7\xad\xc8\x0c\x81l; \xec\xfchi\xf4\x12/\xf4\
+'`\x04k\x12'\xf9)\x5cf\xbbqLny\xba\
+u>_p\x98<\xd3\xd8e#x\xfe[\x01\xe0\x81\
+\xaem\xd0\x14F\xa2\xb0\xa2Y\x0d:\xc8\xdb\xb8,\xc4\
+\xbe\x1d\x07\xaeCc\x0d\x84\x8dB+\x8b\xd3\x5c\xe0\xba\
+\xdf\x9e\xf4%D\x04\xde\xf6\xaa\xc0\x1a\x00&\x088e\
+\xe5D\x9c\x0f\xb6\xaa\xe2\x934\x0aG\x5c\xef\x8c'\xbd\
+M\xc4\xe8\xd4\xbc^\x22\xc4y\xa1\xef\xbfy\xe2p\x7f\
+}D\xa2\xe9r\xb7G%\xb3Y\x9ePW\x07\x98\xf3\
+\x89\xe1\xe9@\xde7y\x9b\xb1\xbd\xa0\xc6),l\x9a\
+]{\xc9\xf1\xfa\x1a\x8b\x7f\xa7,$\xb4\x7f\xe3\xc4$\
+\xd4\xdb!\x06\x90\xf0<Jc\x85[\x08\x06\x024\xf4\
+gUHY\xe5\x1fU#\x0f\x1cK\x8f2\x8e\x18\xbd\
+\x85\xbc\x81\xf0\xc6\x02\xbaH8DE\xe7\x8b\xc5\x11X\
+\x02\xae\xb0\xd2\xe5e\xc9\xe0C\xee\xcd\x81\x1b\xad\xf3\x9e\
+\x93\x90~\xb96\x9eu$\xd7\xfe\xa0\xdb%\xea\xdb4\
+-\x94\xc7CH\xd6c\xa7Y\xa6\x1a\xbfR\xbcj9\
+%\xab\x01f\x12\x85\x18\x9f\xbdF\xf8\xcb\xe6n\xbf\xba\
+\x89p\xe07\xf9\xeeu\xbf\x9e\xbd\xae)\xbb\x8f\x92\x7f\
+:\xa4\x1e\xbd&h{a\x1a \xc1{\xf6km\xfd\
+\xd2ku\xe8\x914s\x05\xa6\xe5\xe8[cM\xdf\xea\
+\xde\x89\x01\x08\xb3\xb3P\x9f`)\xcf g\x99h1\
+6\x89\xe7\xf6\xf9\xf9\xa9\x15\xf2\x81\xccT.6\x13z\
+\x1f\x7f\x87\xf5\xe6\xf8\x99\xbf&\xb9=\xdf\x1f\x0f\xf8\xfb\
+\xc7\xbbu\xef\xd6\xb3\xb3k\x87\xfe\xda\x9c\xe5\x93wc\
+\xec\xbd\xe9\xf0(_4\xb3\x9e\x81N\x19\xc1/o\xc6\
+\x06xmnN+=Q\x8du\x97\xa1M\x88l\xa0\
+\xa09_*\xf4\x22\x13\xe7\xf1#\x0cw\x92\xa5+\xca\
+\xdar{\x17:t\xc4\x86\x22\x14D\x91\xe8o\xfa\xfe\
+~B\xc5\xee6^\xe5\x14\xba\xeb\xfe\xa70\x9c\xc0\xcb\
+\xcd\x13\xe7\xf1\x04%R\x12\x8a\xd5\x8bT\x94\xee\xfb\x81\
+\xf0\x99X\x0d\xa4\xcf\xd7\xc3\x17\xe1\xe5o\x8e\xc3\xcde\
+\x80f\xf5X\x87]u{'\xde\xf4\xa9:\xd8\xb8n\
+Dep\x00s\x1b\xab\xf06c\x9b\x1c\x8dq\xf2\x12\
+\xb1M\xfb\xf1\xf8\x9ba\x03\x063\xe9\x88\x96\xae\x0b\xa1\
+\x8b\x8e\xdb\x0bk\xfc\xad\xdf+\x03\x09\xb3\xcc\x8ek\x84\
+\xd30\xf07\xfe\x8a\xeb\xc9\xfd3\xefb\x8a\xa6h\x0a\
+\xb6\x82!\x1e7\xb7\x85\xbcWFu\xc7Qqs\x08\
+\xb2\xf7\xb2\xc4Z^\x17.\x91\xbe,\xd4>E\x8c\x1c\
+a\x11K\xf6\xcf\xca8|\xb7\x92\xb3\xc3\x17\xd8\xf0\x8d\
+\xde\x0bc\xfb\xb1\xbd<\x1e\xb8\xe2\xe2\x1f\x1b\xc2\x93\xa7\
+U<\x97pxF#\xb8]+Z\x8b\xfc\xc9\x09!\
+\xe1\xb9\xf7\xc7\xd2\x15\xc8\xec\x0b\xc379=\xbd\xcd\x09\
+\x882\xaao\xba\x7f\x1c\xcd\x10\x84\xae\xb9\x9bf\xd9\xe1\
+7c\x8b\x85\xe4T4\xdd)S\x5c\x03\x9c\xd8\x9c\x0c\
+\xb3\xd6#\x92\x90S\xef\x9a\xca\xc4\x8c\xa3f\x1b\x9fn\
+\x02D\x8d\xf0\x04\xff8\xa2\x01&\x8c\xdb\xa9\xfc\x91`\
+4Ecl\xd1\x94\xd6\x0ct\x1f\xcay\x84\x0d\x19\xf9\
+Kz\x09\xae\xcfC?\x80\x98\xc7\xa2\x9a\x11ec\xdd\
+\xac+\x82\xd2=\x16\xce\x94we\xca\xf9\xb6+\x0d\x1b\
+\x9a\x93\xef\x16L\xa2Eq\x05\xedT\xea\xa2\xdf\xed\xba\
+\xdc1\xb5{[\xfa\xf5\xdd\xef\xf7\xb8,\xa3\xf6=\xaa\
+\xefA_f\xe4k\xbe\x9e\x93\xb9N\xf5\xd7Z(D\
+;\xe2Q\x90O\x9c1\xc0\x9bQ63\x9a\x09p\x0f\
+\xc6\x06\xbb\x18\xfb\x87\xde~l\xdb\xd0\x988\xf4c\x86\
+x\x9dD\xf4K\x866t\xa4\xb6--\xbeb\xa5n\
+\xe4\xd9\xfb\xc7\xc1\xde\xc9e\xc8c\x9e\x1dc\xe68\x9a\
+86}g\x8b\xa8\x87\xf9nc\xfe\xb6\xee\xb9\x8aP\
+\xcf\x98\x9dh\x8bC\x9a}oV\xbe\xd8\xa7\xe1\x11\xa3\
+\xd3\x1d\xe0\xad\x10\x9f\xf9\xe3\xdd`\x00Za\xcf\x05\xf3\
+7\x15\x93\x0c\xca$\xa9\xf8\xe7M\xda\xdb\x10\xa1y\x0a\
+-\xfa\x00J\xbf\xe8\x0dO7\xdd\xec\xa0\xcb\xda\xe4\x9e\
+]\x1f\xe1v#\xb3s\xa5B\xb7\xf6}N\xb5*\x8d\
+\x96\xbf}\x06$;A1*\x95\xda\xf6|\xba`u\
+\xf5p\x9f\xcdU\xc4u\x149\x9c]\xd5s7,\xa0\
+C\xe8k.(\x1fum\xd5\x91(\xf8\xed\xe0\xf7\x85\
+\xbc\x17\xc6\xf6cd\xd7\x1c\xe9{\xf6\x8a\xe2V\x1eI\
+>oN\xb7\x22\xd0\x9cV\xa6\x91\xd9\xf2\x04\x01\x9ey\
+T\xe6\x84M\xf9\x0c!\xed\x88\x8e>\xd3b\x85z\xc0\
+2\xec\x94\xb7\xfb\xa7\xec6%\xa9K\x92\x9f\x81_\xbe\
+0f\x8btHu_1\x9a\xf08)\xc7UlH\
+w\x0e[\x8f\xb2\xe2\x9bb.f\xf1\xcby/Tw\
+]\x874G\xe6\xc7\xa3\xc6\x16\xed[\xd3\x14\xa1\xb6\xb6\
+4W\x02\xd7\x8dt\x8a\x5c\x22\x22\xed\xcd\xe02\xebu\
+\x96\xdb:|\xa1\x8ejQ\x81\xe4\x9e\xe5p\x89\xe35\
+\xeb\xda1\xc9\x1a\xeblr\xb4w\x0e\x9b\xffu\x03\x04\
+\x14P\x8a\xab\xd8\x83p\x8eh\xde\xe7\x19\xcf[\xdd\x1e\
+Wn\x1e\xeb\xcf]\xf5\xa8\x02\x17\x96\x96=Y\xc3}\
+\xd1\x0eC\x8d@\xe8\x08j\x8c\xe8\xa6\x17\xbd\xe1\xb7\x92\
+\xa2\xdaS\x93\x8c\x89Y\x18\x11R\x7f*\x82\xe0H\xf3\
+\xa0\xad\x02\xe4\x8d\xbc\x81^\xdc\x16*#43\xbc\x08\
+\xf6p\xe9\xc7\xdf\x1c-\x8a\xe4\x88\x0b\xf8\x9f\x85>\xaa\
+\x0da\xd2U\xc3\x5c\x97C9\xb4\xb2\x9f\x03P\xf7\xf7\
+\xc2\xf91Fl\x1c8G~\xb8y\xa2u\x8e\x9c\x8f\
+o\xc9\x9a\xc4\x81\xc3Q5\xb3F\xdftU\xa2\x19\xc2\
+'\xf0\x9d\x1a\xf7\x86\xb0\x9d\xbe\x19\xdbO\xf5ez\xdf\
+c\xd2\x1c\xf4\xadYx\xd3Ua\xd78\xf4\x0c\xfc\x8e\
+\xefd\x9a\xbe\xdf\x8c\x1a\x9e*\x05\x9e\xd4\xcf\x00\xf1\xcc\
+{\xd3G\x9a\x05\xe0\x98\x8at\xd8\xc6]\xc2\x91\xb80\
+\x9c\xad\xcb\xb0\xd9ZB@aO\xeb\xf6b\xc6\x16\x9c\
+\xd3G\x9a\x0d,\xef\xa9\xa4\x98Y&\xfb\x85\xf6 \x87\
+\xae\xd5\xd4?\x04\x16!\xba\x19F\xd0H$rk\x17\
+\x22\x5c\x040\xc9\x1eN\x07\x0a{\xd6q\x80\xab\xbcH\
+\xa2\x13\x9a\x04\x1bL\xc8#\x84{\x02\x88\x19q\xae\x12\
+\xe3e\xc3\xbd\x7fY\xd4&Z\xc8;\x00O\x89V\x00\
+`\x16\x04\x02^\xfaH\xf1g\x87 ;DV\xf9\xd3\
+j\x12M\x5c\xa7A\xdb\xc6\x04l\x0a\xe2\xa5\x8c\xab\x9d\
+0\x92\x8cW\x88\x9b\x1d\xf5\x8e\x9d\x099p\x0d\xabf\
++Q\x95\x80\x9c\x81\x9b^\x17\xc4\x0a\x918\x10\xdf\xcc\
+zu\x1c\x8aCAuW\xc0,]\x0c\xf7R\xf5Y\
+]\x89\x180\x97\x99/f\xf4\xbc,\xf4<\xe7\x80\xb0\
+\xb2\xc0`\xc18\x03\x06<\xee,\x92p9\x19\x8c\xa4\
+\x907i!4\xe7p69\xd1>\x81\xb2\xd5\xf2f\
+\xa0\x85\xaa\xb4\xe5\x1aX\x11\xc4\xdeD\xb1$\x14?\x83\
+\xd9\xd11i@z\x01\xad\xb4\xe50\x850k\x8b\xd9\
+\xb30\xe5V\x19.\x9b\x83\xee\xba>z\x1a\xf5\x1b\xb0\
+\x97j\x16'\x15\x91\x99\xa9\xc6\x1b\xe4\xae,j\xd5i\
+,s\x01\xed\x91\xb3\x1b\xdd\xbc\x9d\xa4/\x96|9<\
+\x10\x06nD\xf8\x04\xa7\x03\xb9k\x84\xfd\xc0Q\x9e\xa4\
+\xa3\x12\x89l\x1ck@\xaa%\xa063\x9e\x81H\xa4\
+\x9e'\xa2\x5c1\xca\xeeP\xf4\xec\xeeb({>6\
++\xbd\x0a\xf1=\xd5\xaa\x9duy\xe1\xd4<h\x80\xdd\
+\xb5\xf7\x08\xe3\x96H+\x819`\xf8a\xe2\xad\x17\x8b\
+\x99g}\xa4\x09\xc3\x0e\x96\xa8F\xc8\x80\xc2\xb1\x831\
+F\x98C\xe0d!\xfc\xb3\xae%$\xd3A\x05a\x07\
+\xe6\x1a\xad\xae\xc4\xa1\xaf\xc6\xfai*\x1eLk\x8dR\
+\xc7J\x0e\xa7\x96>'[\x8fq{\xa0\x0f\xef\xb6m\
+a\x871O\xab\xcb:\xc4\x0d\x09\xa7(\xab\xb8\x9c\xbf\
+h\xde\x01\xe3\xf4\x03\xe1g\x05\x0e!B\xa5!z\xf9\
+wc\xe1;\xd7\xb23\x15\x8b\xa9\xe7\xbe<\x00\xbe\x08\
+c@\xb8\x22E\x0d\xe6k\xe6z\xc2\xdeCo\x0c\xa0\
+\xe9\x08\xf7Q\x89\xa3F\xdf\xdb\xee\x05S\x15\xee\x99S\
+\xc0\x22`\x0f\x13\x7f\x19\xd7\x15\x94eH\xf2?\x13\xa3\
+\x94k\xae\x8a\x815\xa7\xdd\xc4\x86\xc3\xe8t\x1c\x0f\xba\
+k\x8f\xc3\xa4\xafh\x88\xeao\x00bx\xe3\x12J\xb4\
+8\xe0\xde\xd2\xe4i\x03\xc4\xd1\xfb4\xa4\x8dw= \
+\x87\xbe\x80\x12p\xc00\xa2c\x9d\x09g\x08Ca\x10\
+D#\x0a&\x9fp\xfdz\xa2q\xe1\xefY'^W\
+\x8e\xee\x99U\xcb\x94U\x15p\x83\x80\xde\xdcu\x08\x02\
+\xa0\x09\xb4\xcfD\xc1A\x93q)x\x15G \xfcp\
+<\xa7O\xd4\x8b\xde\xf4wn\xa8\xeeR\xe9<\x08t\
+(\x02\xa2\x90\x182U\xf9\xec\xb5jJ\x14\x8b:\x93\
+\xb2\xf1\x04\xc3\xe5\x10\xcf\xea\x1b\xe9\xd1\x15\x9eZr#\
+\x8djz8\x12\xf7\xfd\xf0.%\xc2\xd38\x5c\x08\x1a\
+\x05\x88\xd1\xc4\x03\xf1\xda\xabZ\xd5\x80L\x95'\x0a\xc4\
+\xe9\xd3?\x1b\xca\xec4\xf4\x15r\x92\x0emQ\xfe \
+\xbb\x5c9\xf7 \xeb\x7f#\xb4\xba\x9f\xde\xa4\x87\xdei\
+\x1d*\xbb>\xd4\xd1\xe3'DOC(\x87\x9f .\
+X\xb6k=\x05>+N\xea\xf3\xf0O\x109\x83C\
+3\xe9\xb2\xccB\xf4\xc8\x06-\xa6\xd1\xeat\xd9\x0cN\
+N;\x14\xab_\x8d\x0d\xc2\x90\xb2\xe4\x19\xa4\xf5\xab\xe8\
+\x9c\x8dO\x10\xc1\x11\x03^\xb5\x8bx\x04\x22\x1a\x89x\
+&\xba\xf5~\x02\xe1\xd4\xee\xc4)\xcc\xd55\xfb(\x8c\
+!X\xd4\x04\x9e\x99\xcd\x08\xa8\xe0t\x06\x15\x86l\x05\
+\x032\x0b\x0e\xb5\x96\xfc\x13\xaf\xd4=\xf0\xf9)\x1ev\
+AN\xab\x94\x9f\xe2B*`e\xc1 \xe4!\xecg\
+\x96b:WY!\xc4Jn\xa9&5\xa3\xc7\xf2\xb8\
+\xc3\xf7\x0e\x9f\xb2\xd9\xe5\xbe\x0e\xa2\xd1\xad\x1bJ\xfbn\
+\xddd\xc0\x88\x1dj\x17%\xb2\xe0\xdd\xfe(\x9b\x07 \
+\x99I\x90m\x04\xc9<\x14\xb0M\xe4\xd4@\xa7\xdcg\
+\xf8\x22\x96Y\xf3\xbe#\x9e\xa8b4)\xb8t'\xc6\
+\x14D\x0a\x02h\x22\x96\xa2\xce\xd2\xa9\xf0P\xc2mA\
+\x11\xa9p\xe6\xe5\x19\xb3'\xac\xd7\xdc\x05\x93\x08F\x13\
+l5E\xe7X^\xf2\xf12h7\xc5\xed\x0f\x1c\xa0\
+cn\x98u\xc2\xfa\x0eM\xf7,\x0e\xea;\x14O\xc5\
+\xd0\xa1q>\x08#\xbc\x14!p\xa2(\xd8.\xb7/\
+\x07\xe5\x22\xe6\xd8\xc62\xab\x974\x821\x1e\xfe\x06\xd5\
+\x90\xccj\x82\xd4\xa5\xa1^\xe1b\xc5\x84\xaa$dR\
+\x0cM8\x88\xebN-EQ\xb0\xb0$5\x06\x9d\xa3\
+EQ\x17mj\xf4\x0c\xc4\xe5\x06\xecF\xfc<x\xee\
+\x96<\xb1Q\xa9]\x94Y\xcb\x06\x13\xc9j\xe0\x87\x5c\
+\xdeh\x19\xc0\xd7PR\xebT\x12\xaab\xb0\xcf\x80F\
+5\x22|\x09LW\xec\xcbS\xbf\xa0\xef\x1e\x07\x8e\x0a\
++\xda\xc9\x9d\x5c|\xbb\x1c\x025\xe7N\xd7'3\x83\
+\x89q\x1f:\xdc\xaa\xcb\xdf \xb2l\x11\xe2\xb2>q\
+\xa8\x18k{\xd3\x8e\x89xp\x8e\x88$\xdb\x0fU\xef\
+\x03\xa0{v\xd1\xb9\x89\x81\x80_\x10\x0b\x15s\x08\x87\
+\x0cT\xc9\xae\xd2\xf3\xca\xfa4*/k\xcd\x09\xde6\
+Y\xd5\xca\xc2\x03e\x0a*\x15\xbe&\xccC i\x08\
+\xde\xa38-4\x09Pt\x0cr=\x92\xf1S\x9b0\
+Bj94486r\x22X\xb5\x9aE\x85\x1b\xf7\
+\x99\xa4\xd1$./\xfa\xb3_\x1e\xcc\xaaz{%7\
+\x8fVh\xc7*\xb2\x92\x04\x1f\x9a\x1a\xc5\xcf\xbaW\x05\
+\xda\xba\xee_\x80\xb6\x16)+\x80\x04>\x8f\x00me\
+\xa6G\x970E`\x1a\xc6\x1f\xaa\x82\x82\xa1\xce]\xd1\
+wM\xca(\x82^ \x02\x19\x16y\xa9\xeeYb\x5c\
+\xcf\x87\x86\x1e\xfe\xfc\x89u\xae\x0bZg\xa2\xd9\xf7\xb0\
+\xb2\xd1\x1a3\xc1\x95\xdbNUQ\xf89\xb8\xd8S\x07\
+\x1a\x1c\xb8\xb9a\x09:\xd5,J%\x9a\xe4\xa5\xbf\x5c\
+:\xef\x11\xa1\xc7*\x16\x97\x848n\xa1\xf4\xfb\x81\x9e\
+\x1e-\xf5\xd4\xe1\xb9\xb83\x15i\xb0p\xdbg\x06\x07\
+\x1f\x1c\x9d\x9c\x08G\xbd[\x0b\xf8$\x06$-)\xc0\
+2s}@\xbc+@\x93\x13\x01\xfc\x97]\x89ku\
+\xa2dC63\x95\xad(X\x11\x1a)u\x9cS\xc9\
+\x07\xbc\xe7\xec%\x22c\x11\xe1\xe8\xc8\xd8v\xe9\x09\x9e\
+\x08\x8a\x9e\xde>\xf9\x0a{\x99\xfb\xafY\xb5\xaaB\xd7\
+\x1f\xeb\x04z+\xf1wp\x8a\xe0Ve\xfaJ\xd9\x0b\
+]\xe5\x12\x88\xda\xe9G\xaa%\x91\x7f\x22\xd9\x85B\x0c\
+Q\xa1\x8be\x1ev#\xce\xe7\xdd}E\xd0\xdf\xa1c\
+\x82]K\xbbuF^\xe0\x8bN\xe0\xd3\x17\xfa\x88>\
+\xcf\x08\x98\x00xOW\xd4uS\x98\x1c\xd2\x10\x98\xbd\
+\x91r\xe4j\x10n\x1fO\x5c\xf4\x08>c\xd7\xc7`\
+\xb2\x1a\x06\xa6\xa5\xd8\xfd\xe7\x9b\x12\xab\x14$\x1c\x82\x9b\
+\xfe\xae*\x03\x00)\xc7\xf1\x9c>\x13F\x04G\xfc\x02\
+\xa6,\xe0\x0f\xb9\x85\xa9\x07\x02y\xad\x92r\x5c_X\
+\x14\xbc\xd1\xed\x1c\x18\x16\x05T\xf0)\x0a\x1d( g\
+\xd7\xdfYk\x84\x80\x0f\x1a\x15\xe2\xc0\xef\xc6y\xfbH\
+I(\x18\x00\xe7\xdd\x0d\x1f\xde%R\xf6K\x05 @\
+\xef\x12r\xc2\xab%\xde\xf8\x94z\xcaw'v/B\
+\x81\xe4\xd8\x95\x18\xedQ\xb6\x02\xeb\xe2\xd0T\x01\xf6\x98\
+\x96\xa3K\x95\xa3\xa0\x8a3\x1d\xe4TQ\xb1\x00\xa7G\
+\xe1t\x9a\x05N\x9d\x84H\xab\xe9\x0a\xbe\x8b\xed\x14\x8a\
+\x0a\xaaS:\x09&b\x5c\xaf*;`=B\xf3\xd0\
+O\x8a\x03\xfcd\x05`vc?\xac\xfe(\xdb\xb1B\
+\x11\xc4:=\xb9\xa7}+\xad\xbc\xb7j\x9b\x13\x96\x98\
+\xc8Rz\xa4xe#\x12\x014!Nw\x81\xd2\xeb\
+\x17\xc4\xe9F\xc3yB\x03\x1f\xbdH\x99\xef\xf2\x026\
+\x0d\xe6\xcc\xe5\xa1\x22\x0f\xa9\xd88\x0e\xb2Cd\xc2=\
+;\xd6\x89Z;\xb3\xfa5\xba\xac&\x83\xb5\x8aU7\
+z\x83{.\xa1\xa9pY\xdd\x05\xccN\xfdWZE\
+\x00\xe3r\x0b\xc9[:\x94\xecM2\xe1\xaa\xf3h\xa2\
+1\xe3\x8c\xc3\xaauq.\xdcW\xb9O\xa5V\xe0l\
+E\xb3\x8a\xd4\x8a!\xca6\xcf \xa1\xd9!\xac\xaaf\
+\x90\x85\x16\x90\xfbw|\x92\x98r\x9e\xe7\xe1\xae\x95N\
+@\x0b\xa5\x9a\xd2\x8bM\xfbIQ\xac\xeba{\x88\x03\
+yp\x1e\xfb>\x91y\xb47w\xac\x08I\xf9:\x84\
+\xab\x9e\xeb\x04\xefD\xb4C\x91\x82\xd3\x09[\xeb\x22+\
+\x00\x84JEt{b\xc7\x91!\x85\x87\xb7\x1e\x98\x07\
+(\x1f\x11\x8a~\xd6`\x90\x8e\xe4\xaa\x0fG\xab\x02\x87\
+\x1cI\xe0\xba\xf2\x8d\x97hASBV\x15U\x06\xe6\
+\x85\xf9\xc2\xb9Y\x99B\xca\xab\xc0\xe5\xdc\x8f\x12>_\
+\xc6\x01C1@\xd2\xff\xd9\x5c\x13\xdc\xba\xc4nT\x13\
+Jy\xd6\xb1m\x96\x9c\xdc\xc7%s\x99@\xd4\x12\xda\
+\x1a\xaf\xa8\x0a&\xa0*1\xe8,74L\x06\xd5\x1c\
+\xe0\xf7\x22\xaa\xa8\x9d\x1f\xd4?DrT\xbdQ\xe5\x12\
+\x08\x1b\x0c\xed\x12\xe6O:\xd6\x88\x84\xa3f\x1dM!\
+\x08\xedp\x95\xe5\xaa\xe4\xb2\x83X6\x02\xf7\x12\xf07\
+\xef\x84\x00\xa0<D\xef,x\x8c\x13X\xe0N]\xb5\
+`\xd8\xf0CF\xc9]\xd0\x82Pqh\xcb\xcb\x1aM\
+\x87\xea\x01J\x95s~\xd9\xa4\x81\x9a\x1f\x1b\xe7\x9c\x1a\
+\x01}\x9c\xa7\x92\x92\xaf0PP\xfc\xa0\x90\xa6\x00\x81\
+dx\x1b\x8dQU\xb3\xcb+\xb92\xc5\x88\x18\xec\x87\
+/\xb6\x8c\xcc\x00\x02\x11\xabn\x13`5\xf3H\x06\x06\
+\x8dB \xbb\xb2\xef\xb2\x94dF7t\xd7\x1a?K\
+\xfe\xe4%\xe6\xfa\xc8T$\x0c<vS\xd1+;\xb2\
+\x8c\x81\x98\x98\xe4\xc2\x14\xc2\xe1\x07\x5c\x14\xe1\x1c\xde\x1c\
+\xb2\x8aV\x95\xef\xe0\x06T,{e*v\x0e$\xf9\
+n\xeba\x0e\x90\xf7\x13[V8\x89\x07]\x9f\x8a\x8b\
+\xe2\xed\xfcTO.\xdd\x91\xa0\x22\xd2f|i\xb7\xf0\
+\xa2,7m$\xc1:\x82\x07\xd07\x87\xcc\x0cE\x09\
+\x96\xd8\xb1\xb4B\x90\xa4\xca\x93\xa2\xb0\x12]\xb9\x06\xe2\
+\xdb\x85!\xbd7\xdbz\xb57\x92\x0c\x04)*\x0c\xa8\
+\x10\xc0%\xce%@\x9f\xb86\xbaP.\xd1\xe8\x84\xe4\
+\xb7\xf9\x17\x9d\x97q\x1eMTS\xfdM\x1a#QV\
+\xec\xd2\x1bte\xe5\x0f`\xe3\xc1)\xad\xcdF\xab\x1c\
+\x85*\xc3\xf4\x93\xf2\xe6\xf6S\xd5Y\x08\x85}\xa9\xae\
+\xe61!\xd7\x95\xc1A\xbc\xed(S\xb9O'Pb\
+\x9d\xa1*S;\xc2D\xfai\xd1\x12\xd0\xf3\x07\x8be\
+\xb0Z\xa3\x14\xdd.\xd8'*\x90W\x0dz{h\xd7\
+\xf1\x13\x94\xe3\x8a\xfdjU\x98\x1e\xce\xfeA\xa5\xe4F\
+1\xc2\x82\x95\xd6-&|\x97\x0e\xcf\xdd\x86\xe9\x84@\
+\x82\x92\xaa\x9eS\xf8@\xca\x9d\xa1\xb1\x13\x05|\xff\xe0\
+\x84\x9f\xccw\xdf\x857\xcf\xd1KBoT\xc9\x8e\xd0\
+\xe1\x99\xca\x043\x05\xa6\x8cRv\xb7 \xc8*\x06\x80\
+_\x5c5\x8e\xf5B}\x01o\x97\x92/%$\xfb'\
+m\xfa2l7\x82\xeeN\xc3\x84\xf4\x5cF\xb3\x1d2\
+A\xf3\xa8bP\xa2\xf5\xde\xc3\x97\x02\x8a\xc0]A\x81\
+\xc4<*\x92\xf5;o\x1e\xa18\xc1\xcb\xd5\xd4\xaa\xae\
+*HP\x80.\x01\xe9\xf3vF\xfc\xd1C\x22.\xc9\
+\xe1b+\x10\xa6\x8a\xa6\xf3\xa2\x00[\x84\xfd\x13\x01\x10\
+\xf0\x99|\xc5)I\xbbg\xc7\x07\x82C\xb4~\x08\xd8\
+,!\xa8\x853\x8e\xe9$\x9av\x13\x0d\xcdf\x99\xc6\
+\xea\x0dtxK@\x15'vA\xb7\x06-\x03e(\
+\xc6\x14\x9b\xbb\xea\xcaR\xbc\x14]\xc3ho\xed\xda#\
+\xcf\xab\x9d\xe0\xf1\xd7\xeb\xde\xb8\x02\xd6\xc0rTF\xd3\
+\x9f\x9f\x95C\xd0D\xa2\xc6\xbbm\xc5\xfb5\xa7\x0f\xf4\
+0\x03\xf8\xccI%\x8e\x98f\x5c\xe3P\x90\x8c\xc1\x1b\
+\x18\xe3\x01\xddj@\x0e\xda\x8d\x10u\x9a\x92rV'\
+t@\xda\xe5\x050\xf0\xe3\x832`\x5c<\xcaz\xd7\
+\x97\xb4\xb7\xc3\xe8\x98O\xce\xa35\x81\x1a\xdd\xe6\x8d$\
+\x80(\xdf\x1cc_j\xc2\x85\xf8\xd9\xe6\xe7\xef\x17\x05\
+\xf8P\x83\xb8\x0a\xf9yw\x1c\xe7\x84f\x0f\x90\x83\x09\
+\xeb*\xdc\x85\xc0DH\x86\x98\xa0\x89\xb1\x05\xea\xb5M\
+b\x84\xa33\x1ae\x90.D\xb1O\xc8\xe5\x1c94\
+F\x86tg\xb2\xd3\x9c\x007\x0d\xc7\x82\xc3+\x1eT\
+\x12:\x86/\x80M\x95\xc2\x9d\xd2\xe6IX8\xa9\xe4\
+\xb8\xe8\xd09f\xc4\x117\x86c\xef\x22\xd9Y\xe0@\
+\xc4\xf4T\xcc\x82\xf3\xb8\xbe9\x01\xe2\xc9tP\xfeU\
+\xf6B\x07\xcb\x89\x11t\x00\x0a\xce\x85T\x9c\xb3\x1e\x10\
+\x12Dl2\xee,\x850\xd66#\x14.\xc7\xf9O\
+z\xba\xe3\x16\x0e\xc2\xcc9\xe4F\xa1\xc07\x04C\x99\
+f\xfeDq\xa2\xefn\xd8\x1b\x8c\xcc\xe5+a\xff[\
+\xce\xac\x0d\x9b\x0c\xc2\x96Jd\x13\x1bmW\x9f\xb1o\
+2\xcdq\xa2n@\xac\xc67}\x07g\xfb<\x12\x09\
+\xeaI\xe0\x0b.\x8fn\xf2^\x19\xc9E\xedyc\x00\
+v\xe1\xc4\x04\xdf#\xf2`\xe5\x04\x0a\xa8w6A{\
+\xd8\xa6=\x16\xd8\x91\xa3M\xb3\x14\x81\xad_\xeeV\xb4\
+1\xcfP\xdf*\x0cpG\xbd\xfc~\x00\xaa\xee\xc6\xf8\
+vr@T\xd6^i%\x07\xac\xa7\xda8\xe9b\x0e\
+\xb2p\x7f\xfe\xfc\xac\x9c\x14\x06\xebI\xab\x7fy\xa2\x08\
+\x0a\x07E\x93\x1f\x10\xc2\xceL\x0f\x08a\xd5}\xff\xcc\
+\x9b\x9d\x06\x1e\xd5\xfb\xb3h\x95h\xbb}\xb7b\xa1\xd9\
+\x9f\xaf\xb6\x8f\xfe\xec\xfb\xb4$2\x88ma8\xcb\x18\
+C\xcf\x18\xfb0\xb5D\xea\x93E\xdd\x86\xe9\xc3~v\
+hw\xcc\xe6uN|e\x9e\xf2\x01\x98\xed\x15\x1c\xb7\
+d\xdc\x98\xf4\xef-2\xe1\x03\x1b{\xae\x8bh\x97\xe4\
+\x81c\xba\x9e\xd0\xde\xaeE\x93\xba\xcf\xff\xbd(\x95\xdc\
+c\xf8\xee\x17\xc7c\xed\xfb_\x9b\x0b\x95g\x978\xf8\
+\xf3\xb30\x1cz\x99\x9db\xda\x15\x15\x9ag&\xad\x0b\
+\x07\xb3>\xdexe\x97!\x8f\x18-C\xf5t\x94n\
+\x8e\x0a\x12p\x87\x9f\xa2aX\xb27/\x8eY\x91\xdb\
+\xa4#\xa4\x12Ne\x9c\xeb\xbf\x17\xdaY\x8a\xf9\x14\x82\
+\xb3c\x04\x22\x83\xef\xde~\x5c\x17\x969\xf6\x882u\
+h\xd8\xa95w:]0\x22\xc3fc9u*]\
+\xefwo\xd1\xcf<a\xd6\xe2\xd7:\xdf.gq\xfa\
+\xd5\xa1o\xb6\xc8\xa8\xfc\xb7\xef\x81\xfek\xeb\x0a\x8fn\
+\x8a\x0e\xfb\xf3\xf3\xa6\xddW\xe1\x1a8\xc2\x13\xb9|:\
+#\xde\x8c-\xc2I\xb3q;\x22h\xaeE^\xb8\xe3\
+i\x0e\xa5\xf8\xb5kF4\xa2\xefo\xd2\xf1\x92\xcf\x07\
+\x22\xc5\xf5P@\xa1\x01\x83Y^\x99+\xf7td\xb8\
+k\x9988~\xcb\xaeub:\xcfb(\x0b#2\
+n\x0f\xc6\xa5\xbd\x87\x01c\xb7\x0e\xd4#\xfe-\xbb\xa7\
+\xe9\x9a\x95\xae\x11J\x90\x94MN+n3\x5c\x1a\x8c\
+(\xb0\xd29`0}\x8aK\xa3\xc6\x00k\x5c]J\
+gB&)l\xc5\xd4{]iW\xa1\xeeM0b\
+hi7^(\xad\x93@\xea1nX:\x8bK\xf1\
+2\xe3}&\xff\x1d\x88\x15\xe0+i\x08d\xf2\xa9,\
+m\x04\xda\xc3\x9f\xe1WD\xf1C\x19\x02\x0f\xe4\xa6w\
+Y\xda`\x9d\xc7\xe8*\xa9$\xd3\x93\x0d\xba)~-\
+\x8a\xac\x9e\xd4\x90\xc1Q\xb5\xdfSa\x1d\xb0\x93A\x93\
+g3\x89\xc9\xda\xe8\x09\xf4OZ\x15\xc8(\x0a\x5c\x1d\
+\xba_\xc0\x88O/\x0a\xfa\xd1If\xd5\xab\xc4\x0f\x0a\
+\xb1|N\xc6\xdd(*VI\x22,M\x1a!\x93\xfb\
+\x19\xe6\xe5\x83\xe1'\xe40\xd1\x17\xbf8\x0f\xd2\xa3\x15\
+nV7\xa3\x05\xb4\xa3R\x11N\x15]<T\xc2.\
+\x07,\xa1\x13a\x8e\xd6\xe3\x03\xb0\xc2\xc3f|9\x13\
+\x98\x1b?\xe9\xf6f\x80\x8e\x1c\x0a\x0eQ\x0d\x99\xe4y\
+yI\xc0\xb0.\x88\x83\xb1\xae7,\x08&+\xef\x13\
+#$\x19\x1bu\xd7\xd0#7\x19\xf6BX\xaf\xb3B\
+]\x0f\xd7\xd1<\xe5\xe2\x00\x9c\xe5y\xaa\x18gc\x9d\
+X\x05K\xf0\x11X\x1e\x9b\x0f\x04\x18\xf1U\xb9\x0b{\
+\x98O\xa8P\x132uaB\xa2w\x04\xb6\x02\xacl\
+\x0edJ3\xed\xfadD\x18SI\xd9\x91\x8bA\x04\
+9)\x9a\x0b\xc7\x13\x0c\x89\x18\xab\x1e\x99\xdd'\xab\xd4\
+\xee}\x22\xb4(\x0a\xf2\xa4\xc5G@\x06\xca^-*\
+7\x0a\x8e\x0az*M\xfb\xa2}\x9a\x00\xaa\xf4W \
+\xcf\xb1\xc9>\xeb\x8a\x8d\x80\x10\xa9Z\x87\xd7\xa9C\xb2\
+*\x85\x16\xdekx\xe29\x1b\xf9WU\xc9W4\xbe\
+\x09@\x82\xdea\xb4)l\xab\xaeL{&\x1b\xcb\xe5\
+`DX\x02<\xa2\xbb\xc2+\x94~^\xff\xef\xce\xae\
+&\xc7y\x1dI\xeeu\x0a\x1dA\xfc\x11%m\xe7\x06\
+\x8d9\x82\x81\xc2,\xda\xf7\xdf\x8e\xe2'i\x91~\xe8\
+F\xd5\xe2\xe1}\xcc\xb2M\x8a\x92\xc8dfd\x84\xbe\
+Q<\xa8\xb3\xa9V\x05;\x8d\xbe\x02\xa0\x0d^0U\
+9\x9f\xa6.\x90x\xf9\xbc\x900\xf9\xf7\xb5\xb8\xfc,\
+9\xe8\xbfOm\xb3\xefU\x16\x15\x09P\xc2\x92o\x80\
+\xc2\x14\xc02\xe5=jU>\x8c6\x00\xfe\xb2L\xaa\
+\xf5\x05\xe6\xb0^Yf\xe1it\xd2\xac\xd2&t\xf9\
+\xf9\xf8\xc4\xc5S\xba\x7fa\xa1\x81E\x12\x9f^\xf0\x94\
+_\x12E\x93h\xf0\xbd\xf0%i\x1e^g\xd3\x13\xb9\
+\xb9\xf4a\xd3\x13X\xa0\xa2\xbd\xd0\x84\xbb\xcfZ\xf2\xa4\
+X$\x13u.YE\xfbC\x22K\xd8Z\xccj2\
+\xa9:\x17\xc6\xa5\x17\xc1\xa7\xae\xf3\xc42\xfd-\xe4\x96\
+.]\xab\xd0Ub\xf7\x89\xd2\x91\xa6\x12\x0c\x02\xedI\
+\x9c\x81\xf0&\x1eM\x18\x10CCMI\xd2\x0f\x1cM\
+8OA\xe48\x17\x9b\x86yx\xdb\xd3t&k\x86\
+N7\x917\xfb\xeb\xc6\xb2\xe8j\x8d\xff\x80<\xcd\x06\
+LK\xbe\xe4=\x1bP\x93W\x0d'Ev\xc7\xe7T\
+\x04\x10B\xa4\xcb\x9a4QCe.\xf5^?7\xb5\
+_\xdf\x9f0i\x14\xf3e\xa7\xdcz-#\xe13\xc5\
+y\x22\x18(\x83\x0a=\x9b\xcb*\xb98\x22u!\x1d\
+!\xf0\x97N\xba\xcc\x89F\x92\xc6\xcc\xd1\x04\xbb^\xd7\
+\x83\x949\x9dv?\x12\xcf\x9bA\x05\xa4\xe4\xcf2\xb5\
+_\xf3\x070=\x1as\xf4g\xde\xf1T\xbb$\x81N\
+\xb0\xd4\xefE\xbc\xe1p\xc9B\xe8\x9a\x98\x5c\x85\xebq\
+\x0e\xd5\xa4\xa7%\xceef\xa9YB\x83b\x8dz\xcd\
+~b\xdd\x1cv\x90\x1e<K\xf2\xf0}3|1\xa7\
+\xa1\x22\x09\x1d\x93\x97^o\x85\x8f\x84#\xa1\xf2k\xff\
+B\xf7\xd0k\xf0\x90\x1b\x82(24\xdf\xfb%\xce\xf9\
+\xcc\xf6\x88\xd8\xdf!\x9e`?\x9d\x1f\xaf\xb1I\x8f~\
+~\x22\x9f8ij_\xb9\xfe/\xf1q\x9d,<\x1f\
+5\xcd\xc9A\xda\xdbXFK`yeY\xba\x09\xcc\
+\xf8\x85\x0c\xabM\x01J(O\xc0\xd7`>\xb6yb\
+\x9f\x16*9eo\xb6(\xf1Eq\xfdvhs>\
+\x03\xceu\xeeJ\x96+D\x9c\xbd\xf1\x15\x0b\xd8\x16J\
+X\xe2\xf9\x08y\xd9\x22<@\x0e\xd4\x1f\xdc\xa8\xcd\x9d\
+d\xd1\x17n\xd7s\x17\xc3nc_\xe8\xba\xce\x0f\x9a\
+\x02\x07\xb3\xa2\x95\x98\xfc\xfb\x88\xb6\xd7\xdd\xd9\x96\x1d{\
+;\xa2\xe9\x84\xa4f\x02\x09\xf1\x89TE\xcf\xbb\xb3\xab\
+#D\x1c\xf1\x88\x01\x9f\xa3\x87\xeeb\xac\x00\x8b\xb66\
+\xae\xaas{ll\x87\xa7\xf7\x8az\xbd6\xdf\x9f\xe5\
+\xeb\x86\xe9P;\xdf\xd6\x7fX\xa7\x5cKy\x08\xf1\xfe\
+\xfe\xb2 V\xa8\xe2\x0d\xab\x078\xb2B\x04k\xf3J\
+\xc5E\xc1\x96\x08\xe8\x04a\xb0\x03\x0eQ$\xf6\x9a\x0d\
+!k\x17\xf5mKr\xe1\xcd\xa7\xe03\xf8\x0f\x82\xfe\
+\x97\x0a\xb3\xa5\xb3B\x05\xf9E\xeaH\x13V\xcf\xd9!\
+\xaeI\x11w:\x12\xd1\x0c2\xa2\x9e03ad/\
+Q\xbdD\xf3\x90.S\x9d&\xb1e\xf5\x82\x18\x89-\
+\xcb\xd1\xbf\xb8rF]]\x08\x22>\x0a\xe3^]r\
+f\x89\xca:\xb0\xa3Ky\xc3\xd3\xea\x15\x00\x10S\x7f\
+\xa5\x98\x81)n\xc4xc\x96\xaf;\xa5\xb7|\xbe\x9f\
+\xcf\xd7\xbc*\xcbJ1d\x16\xf9\xcf\x16\x8aU\xba.\
+\x82(Z\xfc]\xfb\xbe6q\x19\x96n!y\xb5\x0a\
+\xa9\x09$5\xb1`2\xef\xc1\xeb\xcb\x82\xbb\xad:I\
+8\x87\xad\xab\xe0\xa0-\xe0\xe9\xc6\xa2\x03\xa5\xbd\x84\xa6\
+D\x92\x96\x85\xac\xc8V\x1f\xf63\xf0V^\xc2Ig\
+QS!\x07}\xf8\xa6\x16\xb9\xa1[\xd5\x12\x95\x8f\x87\
+\x13\x19\xe2\x04\x92\x82W\x92\x83\x7f\x96\xf60 \x10\xb8\
+B\xd0X\xe4\xd8\xc2Nc\xa0p\x84\x830\xdfi\xe1\
+\x0d\xe2o\xe1C\xb8\xda<.\xba\xd1\xc9g\xc2\xf1\xa8\
+\xdaR\xe8\xc9\xc0ch\x0a\xa9\xf1\xcdd5I\x08\x06\
+\x86\xe3A\x86\xef\xe9\xc6\xa8\xbdtC0t\x8c\xf7\x13\
+A\xb8PD\x09Gt\xb6\xdc\x8f\xb7N\xa0!4\xd9\
+\x9f\xbcx\xa1\xb9;-\x8f7\xde\xe5\xf1(v\xc4;\
+2\xb5\xb5\xd4\xcc\xdd*\x1eX$\xfeyTG\x03?\
+m\x84S\xeb\xa7[\xf0\xa8\xef\xb9\xf7\xf9\x09\xe3\x11\x83\
+mM\xd3\xbe\x10\xf1\x15\x9d\xda\x11\xc6{vy\x0f\x22\
+\xab\xe0\xb7\xaa\xfe\xe7\xd1r \xb1_e\x8e\xd2\xe1\x1a\
+\x8b\x88c\xfb\xc1\xa2\x96\xc4\x18\xfey\x1f\x87\xa6\xde\xbe\
+ggw\xe7\xc1\x84\xee\x97\xfa\xbd\xce\x16DDC\xc0\
+F\xfbx\xf2\xb2\xd0+\x90\x18#\x95\xf2\x22\xe9\xf1\xcf\
+\xc7\xa0\xe6&\x07\xf1\xd5\xa9\x92Pra\xe4\xf2\xbf\xd7\
+\xd9\x02_\x90+d4\xc3\x07\xea\x92XA\xab\xe4\xcc\
+\x9dW\xf1\xa0\xb1\x98\x9a\x11#\x1e;\xc5@\x5c\xe0\xd9\
+\xcb\xceg\x0b\x16\xc6\xd3\xaf-3\xcb\xd5\xd4\x00\x91\x0c\
+\xab9\xe4l,T\xea\x90w_\xdc\xa7\xb6\x862w\
+\xfb\xc3\xdd\xb1\xf5\x15\xde>\xcf\xc3\x10\xc2=\xdeT\x22\
+qb\x0e\x90\x9e\x95p,H\x92\xa1}G\xfa\xfc3\
+6\xe2\xa1\xab\x9f%2Q.l|\xaf\x93!\x92A\
+q\x22\xe8\x0b\xfb\x15D\x11\x89\xd8\xec\x0f\x01~w\xf0\
+.\x138M\xedp\x02\x87^1\x90-\x0a\xc8}P\
+y\xb6\xe3!7IG\xc8\xccaI\x14\x80\x22\x07\x9d\
+\xe2aQ3\x8b\xe5\xc1\xc0I\x99\xda\x1a\xc5\xd8\xe5=\
+\x88]0\xcfd\xfa\xd1\xf7:[R\x84\xc9N\x97\x17\
+0\xa4U]^\xd7\xbc\xc5\xd6\xadio\xe2\xe6E\xa5\
+&9\x1a\x04\x03Lm\x0e\xe5\xabc\x0c\xe6\x22\x0a(\
+I\x0a\x92\x83\x19-\xd4^9\x85\x1e \xdc\xe9\xde\xfe\
+\x811W\xf5\xbb\xca\x96\xb2\xa2'\xd8\x02rO\xe5\xe8\
+T\xae\xb2\xa5\xb1\xad\xc1\xcc\x1dC\xa5\xfbd\xfc\x22\xee\
+\xe2{\x9d-x\xf5\xafl\xd4\x07\xcb\xf4\xb2\xc3\x17\x9b\
+\x85\xe4Y\xc1\xd08\x18A\xd8Y\xf1\xb4\x09\xed\xd0H\
+\xb05\xb6E\x975w\x8c\xda\xa0Ftr\x9cc\xde\
+\xebl\xe1\xdcV=\xfc\x1b\xe7Z\x01\x1a1\x8b\x84\xb3\
+\xdc\x189\x00\xc6\xa1f\x07\x00\xec\x94]\xf5\xab\xadz\
+\x89\xb9\xe3\x1f\xa6\xcf\x00u\xcb\xae\x00z\xaf\xb3\xc5\xe9\
+3\x01H\xa5\xa8|2\x14t\xf2\x0c\xf3\xa2.F\xdb\
+v\x85(7\xe9\x913\xfc\xe4\x8a\xab\xb1\xa9[4w\
+\x8a[\x94m\xcb\x8e:\xcf\x96$\xae\xe3L@\x8eJ\
+\xd28\x10\x9e\xbb\x9b\xcf\xa4\x1e\xc8\xa5\x8a\xb2\xe6S\xc9\
+%<\xc8\xd8\xd4\xfd\x99{\xfdY\xba\xeb\x0d0\xd6\x19\
+\xfe\xdd\xc7\x10+r\x92\x0e\xb7\xfd\xf0\xce\xd4\x81\x13\x1b\
+\xa3\xf1\x1f\xd7\xc0\xd4\x13&\xc3\x99\xdb\xdd\x09y\xf6\xf9\
+\x0f\xf5\xd8\xa7\x95\x94v%\x85\xdf\xb3\xc1\xe0/\xaa\xf0\
+\xf4\xfc\xc9\x1ea\x8a\xd1\xc0\x04\x8bR\x02\x87iV\xda\
+\x87R\xe1\xd5\xf3NN\x01\xcc=\x0dM\x11\xc3}\x8d\
+\xeeg9\x82oO\xb9\xfb\xf7:\x19\x22\xa7R\xb8\x17\
+XF9\xf7\x0a\x90\xd1\x00\xd6\x8d\xae\x8b\x16\xd5\xca\xde\
+V\xe3\x87\xacv9u35\x17\x8c\xf6kh_g\
+\xba\xf3\x88\x9a\x1f\xadh\xa7\x12\xbe\x0e\x0b\xfd;\xe6\xa0\
+X\x17\xe7\xcbp\x89Ht\xc9~\xd9\x82\x14\x22b\x09\
+c;\xc8\x9f\x9d\xce\x1f;\xe7\xf4N\xc3y\x12\x8b%\
+\x15\xcal\xa21{\x83H\xc8h\x0d\xb2Ql\xae\xee\
+\xba\xbb\xb8'\xe9r\xb9\x18\xa2\xf9|}\xb1)\x01\x11\
+H\xbe\xab\x93\xfc\x18\xc2]]\x0c\xbd#\xd3v\x0a\xcb\
+\xc1\xbd\xeaJ=\xc1\x8a:\xad\xbb\xe9\xd2\xa5\xbd\xa1\x91\
+\x8aP\xea\xe2\x15\xc6\x87\x09\x94\xe7q\x1b\xbf\xbc\x1b\x0f\
+wQ\xba\x99pc\xa1!Ip\xe6zb\xe4\x14\xae\
+\xa4j\x01\x00\x00\xc1\xdaQ\x04F\x068y\xf7\xa7U\
+[r\x8a2\xc3\x85\xbf\xac\xbd\xaf\xe0\x03\xdbX\xc7\x88\
+\xba_\xe6\x85\xc1jV\x01\x95D\x95\xd0\x1a\x12\x19\x88\
+\xce#\xa5L\xd4RN\x0a\x9f]\xcd\x95\x80\x89\xab\x08\
+\xf2Z\x87J\xa1\xf0\xec\x11\x11v\x86\x08\xf4\xa5[)\
+\xd4e\x0e\xde%b\xbb\xf1\xf9M\x1aT\xbb~m\xcf\
+\xfc\xf8)\xb01\xcb\x06\xef\xb7\x07O\xca\xa6K\xc3A\
+\x08\x8f\x80\xf2\xce\x89\xf7\x9e\xa3\x11L\x09S|\xff\xf5\
+\xc8*\xa1\xb9\xaf\x80N\xd3\xce\x1cv\xdb\x8eE\x17\x1a\
+\xa8%\x84D\x18\x09T\xa9A6K\xdc\xa5\xbb\xafC\
+\x16\x0c\xa7*B\x91\x06\xbb\xc4\xe0\xba\xb0\x8dyB[\
+\x09t\x1e\x97p:Te\xe0\x959\x8b\xc5`z\xc0\
+\xd2\xf8\xf0f\xe2.b\x1e\xcb\xb5/\x06\xd3\xf1\xca\x88\
+\x0aJ\xfar\xebX2\x85\xa5:\xb0\x0e^\xe6J\x82\
+b\x81\x12\xc9\xfd\xd7p\x1c]\x84\x1f\xd4$\xaa(\xfb\
+\xfe\xd8=~\xdc\x02C\x9c\x82)P\xa5\xc7:\xd30\
+\x09XI}\x8bg\x8d\xc02\xe5\xbd\x81t#\x18_\
+\xe8\xa3\x5c\xe3~&\xb6\xaf{\xe6\xd1Dn\xe7R\x85\
+>R\x8eH\xab\x5c\x02\x1a\xbf\xd6\xe5r\x88\x18\xe4\xef\
+\xb7\x85\x97)8\x91\xef'\x8aE\xd0\xc4\xaf\xf5\xc7+\
+38\x925K\xa7\x98\xc5O\x0a\x9e\x03s\xcce\x83\
+@H\xa4M\xb3\x0a\x98\xa9q\xdeXu\xc1\xfa\xa0\xca\
+[\xc0\xd4\xf0\x15EW\x9d&\x10\x89\xcd\x83/\x86\x80\
+\x81J\x83a\x8c\xc6;6\x16\x8ap\x8ed\x80G\x88\
+\x97\xd0\xec\xc6H\xb4\x01\xdfD\xd0:@\x82\x97?/\
+\xc4ia)\xe1\xa5\x93\x16\xc1\x8bZ\x0e\xb4Z\xec,\
+#\xe3\x0a\xb0\x13\xa4\x890\xe0=U`\xceT9\x06\
+\x1f\xafq\xe9b\xde~^\xcd~\x16\xc9s\x05]\xf2\
+{\x1d\xdbg\x80\xcd\xb4U]\xdb\xa4\x01dJ~\xa5\
+\x94\x96\x8e\x1c\xb8\x14W\x0b\x0e\xb6+\xb6\xef\x10-\xf1\
+\xcf\x9d!\xf8M\x9e\x94\xa1E\xa6\x9d\xf1\xcf\xa1\x1f\x0e\
+\xc7 \xf8\x0a\xfb@zWJQ_\x22-\xb9\xac|\
+\xd6\xc7\x1dG\xf7\xd3\xb4<6\x18\xa8m%\xa3h\xba\
+\xe3\xd7\xa7m\x8a\xaa3w\x98\x1b6\x81\xa9\xf9\xfa\xfa\
+\xbb%\x897y\x03f\x7f\xd8\x8e\x90\x1a\x18-\xeb\x19\
+\xb2\xf4\xfe\xf6pC\xb8]M\xb7\xec\x81 \xd8BI\
+\x18`\x91\xff,%l\xe2\xb1\xa4\x17\xf0\xbd\x8em$\
+\x9bH\xcc\xb83Z\xdd|PC)V\xd0l=\x0c\
+\x0bQ\x14\xf0\xe8\x91\x05\xb9\xaf\xd5\xa2oI\x19\xddW\
+\xbc\x87\x88\x05\xc00\xf5\xf5l-\xb1#\x0f\x83\xfb\x9f\
+\xf5_\xffp\x91\xff\xe9\xea.\xc2\xc3\xf1\x0b\x88s\xbf\
+\xd7\xc9\x80\xa8\xfc&\xdaHQ\xbc\xd0\xe9D\xed\x18\xdd\
+\xe8\xd1\xb0\xac\xe2\xc2\x10-\xe5\xbd\x8c!2\xc8\xe6\xc1\
+\x887W5\x8a\x1d\xa3\x1e\xee\x9e\x86\xb9\xb3\xa1\xe9+\
+\x9c\x07\xf8\xebK\xbcT\xa8\xcfI\x0a\xcf\xe4\xd3\x06\xac\
+\x88\xc1\x18\x95j4VA\x13\xa9\x961\xe0\xa1\xbd\x90\
+\xc9/KX\x10\xe7O,<`\xbe`5,W\x9a\
+K\x07\x9e,2\x9a\xb1\xab\xa1\xa5\xab\x9b\xc7\xf6\xfb\x8b\
+K:!\xa2\xba\xf5\xc2\xf4L\x06WE\xf0\xf2\xee\x83\
+\x13\x0e\x94\xa7\xe4/\xb1\x83\xbf\xc2\xb0\x84\x05\xd5&8\
+/\xa1\xd4\x1f;w\xe6\x06\x88\x0bL\x97/\x10\x15\x0b\
+\xb8@\x0a6\x8e\xbd\xa9\xb9\xf4\xb6\xd7\xd2q\x84\xbf\xbe\
+F\x86\xa4\x91kg\x18\x84\xdc?\x83\x81\x81\x03\x1c\x12\
+ss\x04\xa0\x10\xd6OE\xea\xd3\x99#bE\x10\x03\
+\xe1\xb6\x875\x01\x97\x81\xfdx\x13\xb7F\x22i\x8c\xc2\
+\xca\xa3\x85\xb9\xf4\xc2/\x1f\xadE\xefKt\xcf\xa3\xd3\
+<\xc4?\x5c\xa4\x9f%^\x84\x18\x8eF\x0b#\xf9\xbb\
+p\xd8\xa0|\xe01\x0d\x87a\x10\x93\x15e\xc8\x00w\
+852ba6\x87\xd8SfT\x801@$\xf4\
+R\xf6\xfa4[\x98\xa6\xb5\x9a\xf7\xbd\xc5/_\xa3\xd0\
+\xd5\xcec\xfd\xfd\xe5\x02x\x87\x1a\x1b\x81\xb6\xdf\xebd\
+@\xe8\xe0$\xe8\xfc$\xe7\x12\xdbX\x19\x11\xdb\x15i\
+\x08\xd6\x94E\xa1]'\x82P\x0f\xc9W33\xc8\x88\
+\xb24\x5cW\x11\xb9\xc0dA\x18\x0bNL\x22\x94\xb2\
+.\xf3\x08\x14\xac\x98F\xf9\x87\xebl\xac\xc7A\x10p\
+K\xd9q\x96\xa7E \x89\x8bm\x9cy\xd8n\x8a\x12\
+n\xc1H\xd4.K\xdeF~\x05\xd5eIt9\x94\
+\xd1\xc8\xda\x83\x90\xa5}}YX\x87\xc6\x08\x1e\xdc\x5c\
+^\xea8\x86\x08\xcc\x8c#\xc5\xc5\xceI\xc6=$O\
+\x02H;\x1a\xbaN|3\xb0z\xb7\xe8{\xc4\x92e\
+X\xba%\x05\xda\xc6\x8aC\xc9\x9a\x12\x1f\x02\xba\xd9\x92\
+L,\x98\xach\xc4\xcc\xdcq\xad\x1f\xb2Obp\xd2\
+\xf1I\x93\x5cA+\xcbX\xc9\x15\xc8\x9c\x9e\xd1\x0bM\
+8\xbe\xe8\x8aW;\x9eGf\x8c\x90u?\xbbTF\
+(\xd5X\xbf#\x9a\xeeo\xc9\xae\xb3\x1b\x04\xee\x22Y\
+bQ\xf7d-@\xc1S\x86\x0b6\x13e\xa2\xfe\xe0\
+\x229\xd6\xeb1\xa7\x81el\x1dk\xed\x1c\xa5\xef\xc1\
+tK\xdc\x5c\xdcV\xeck\xba\x8d\x8f\x93|6\x014\
+\x82\x8e\x97\xc8K&\x0bq\x83\x87b\x8c\x92\x11\x0c<\
+B\xd4?\xd8\xb2t\x13\xab\x95\x19nrR6\xe4o\
+\x03\xf03\x19B\x0d1\xb8\x97S0\xa7\xb6\xa0\x02\x9d\
+-\xc1\xe6\x8f\xd9Q.\xe1\x8c'\xcfA\xf6z\xf6'\
+O\xc9\x85\xec'\xef\x93\xf6\xe0$\xf6*\x81\xd1@\xbe\
+\xacS\xa4W'\x9f[\xc2\xdbS\x87\xfb\xa6\xe0\xcb\xb5\
+%\x85\x0aq\x90|\x9e\x91\x9d\xcb\xf12X\x96\xf8\xb0\
+\x9aD\x7fP\x1d\xb4\xbbgm\x0d\x1d\xdd\xc7\x83$&\
+\xda\xbc\x05\xc1\xab\xe1\x91\xe3]\x92\x7f\xf1}3\x15\xe4\
+\xc4\xf1KR\x0b\xbb\x83\x9cO\x0b\xae\xa0\x9e\xe2\xf0B\
+\xc14q6M\x93i\xd4\x83TVD\x0a\xc6B\xe2\
+f\xcf\x02$\xb6G\xf9jG\x9cs\xec\x18\xa1\xdf&\
+\xec\x18~\xf0R\x84~\xb4\x10C\x80u\x89\x90^%\
+\xe4\x99\xb3m\x82h\xbc\x14\x0d\xe6\xfb\xdb\x5c5\x89\x0c\
+C\xd6-cu\xdb\xd4\xd6+0w\xac\xdc\x9a\xde\xb4\
+\x12\x83\x99,T_`\x18\xb8\xa8\x10\x99\x8a\xcfI\x97\
+\xeb\xc1l\xe2\xa6\xc2\xbb\xc5\xba9@c\xf8`f\xb2\
+E\xcc\xed\xc8\xaf\x8d\x1dc0\x22\x02$+\xdb\xae\x14\
+\xffhA\x907\x1f\x1a\x0c(\x1c\x90o+~b\xcd\
+\x99\x149~jL\x9c\xfc\x85\xcao$\x95\xd1Nm\
+\x8de\xee\xf7g\x11\xe1V\xe2k\xe9\x89\x99,B\x11\
+\xe8\xc5\xbdh\xbf\xe4\x10\x01\x8cj\xc4\xd9i\xe7\x90\x91\
+R\x81\xff\xe8\x84\x81\xa9\xb8}\xb7\xb5)\xcd\x1d\xff,\
+Bf\x08]\x98K\xb6?\xf8\xb40\xa7\xe5\xdah>\
+2$\x8cKJ\xc5j\xc9G\x0e\x8b\x8b+X\xbd\x0e\
+\xf9x\xa8\xf7\xc3GT\x1f>\xb6\xc3\xc9\x1b;\x06-\
+\x0c\xae\x9b=\x89)f2\xb0v\xd3`Jf\xb2X\
+\xdb\xa9k=T\x01\x89\xe2D\xf2\xa2U`k\xd7(\
+\xb7\x95\x92J\xf9j\xab:q\xea\x15\x03\x01\x1a\xc3\xa8\
+\x03\x22\x19g\x8b\xf4\xb3\xb4k=\xd5n\xb8\xc20N\
+BX\x9ch\x11\x0f\xa2\x91\x03a\x85\x8fdV\x13\x8f\
+m\x8de\xeeX\xa9.\x94q2[\xb2E\xaa\xebi\
+!\xd3\x5c\x15\x19x>E(K\x9f\x1b\xca4*\x88\
+:\xc8\xf6\xb4\xc85\xd8\xc4SF/\x86jL\xfbW\
+;R]c\xc7\xfft\xe8\xffO\xfe\x1a\x22k8\xae\
+\xd4B\xd4\xfc{\x9d-L\x06c1\xac\x85\xb89\xb5\
+\xb3\xb2\xd9b\xdb\x94e\xd1\x0bK\xe5!{\xea\x05\x10\
+QQ\xcc\xe0\xbcR\xb6\xf0M'\x8b\xb0y\x82R\x1c\
+\x08\xa9\xce\x83\xd0\xc4\xcfC\xa5\xc3\xd6!B\x96*2\
+\xbe\xf2=\x1b\x08\xbcs\xc9-\xf7\x8f,\xcd\xfb\xa0\xe7\
+u{\xb1!\x17\xa1\xa6N\xed\x9e\xa4\x0f\xabf\x91\xd4\
+\x9e?Y\xc8\x97\x8cuN\x05\x1e\xe0T\xda\xb3\x1f\xf3\
+3\x18\xce\xe8\xe9{<\xf1y\x933\xf6\xf1\x9d!\x03\
+7\x18\xc4&\x13\xfa\x7f\xa2\xd6\x12\xee$\xf8\xd3\xc76\
+\x19\xab>l\xecl\x17o\x9f\x97T|\xed\xba\x1a\xbc\
+FP`\x0e\xb4Bx\x8d\x91\xa3{\xc9Y\xbc\xc4\x1d\
+\xcc'\x9a\xd3\xbb\xf4\xf9\x9d\xa6[wl\xba%\xbf}\
+8\x03\xe5\x9bw\xc7{fK2?3\xe6\x96\xc7\xa7\
+\xd08\xc2\xc1\x97\xbbSHI\xee<V\x81AM\xa2\
+[\x1b\xc3\xe6\xd9\x1aH\x10V\xea\x15,\x0fC\xce\x1b\
+?\xcb\xdcvT,F\xe7\xdaV\xe7!\xfe\xfe\xc8\x14\
+l\xded\xea\xe2UN\x96.\x99D\x9a\xc4\xea}\xff\
+4\xcd\xf1*\x94!\xce9\xf8B\xcbR{cm\x07\
+\xc2\x16Y\x82\xa8\xc8\x90\xaa\x82\xe6\xd1b-\xd7%\xb2\
+\xef\xfd\xcc\xd1\xf3\xd2\xbb\xd6\x223\x0f\xf0\x0f\xc7\xc2\xc0\
+6\x9f\xec\xe7\xbd\xce\x96\xce\xe8J|\xacw@5\x8f\
+3\xa8K54\xd2U\x88\x8e\xf1T<C\xa4#\xae\
+\xb7\x02\xb8\x85\xc1\xc5\xd9\x82BKA\xb0\x11\x1e1\xdb\
+\xe4s\x0c\xda\x81\xe7\x91\xfe\xe9\xac\xaf\x9f\xa8\x9cd\x1d\
+\xf6\x9f\x96\xd4%\x1c\x8b\x1e\xe3C\xa0\xe9\x14COg\
+\xdc\x07\x90\x82\x9d\xb9\x0b6\xd2\x85\xbe\xae\x8f\x86*\xb1\
+\xc0\x92\xfb\x1c-9\x90\xa68>\x8b[s\x1cD\x1c\
+\xf8\xc7\xa1\xfe\xfej\xb1h\x00c}\x0a(\x17\x0dA\
+x\xb9\x8e\xd2\xef\x8c\x82o\x10\xd2\x9c\xdc\xf0,\xcb\x0d\
+\xcb\x99\x97N.\x80\xdc3\x9f\x08W\xf7\xaaD(\x85\
+\xaf\xf9\xb0t\x9d/\x12\x1a\x96G\xef\xd6M{\x0e\xed\
+\xf7\x17\x96k\x1fO\x0e\x0c\xde`a\x84\xcc\xfd\x9f\x8f\
+\x8a\xfa\xc2\xe7k\x15\xd0\x89`\xdeR\xb9\xdc\x04\xe0^\
+\xe4\x92\x9fRm\x96Z\xb9\x14b\xb4D\xdd:5\x05\
+\x89%\x9c\xc6`\xf0\xde4\xd2\xdf_l\xf2z\xef\xc9\
+\x7f\xaf\xb3%y\x03!\xad%^\xd0dQ\x81\x12/\
+(\x09\xa8\x8e\xc5|\xe9\xb9\x17\xae\x13L@\x0a\x03\x03\
+\x1e8[\xaf\xa9\x1d\xe5\xd0\xa4\xd1\xcc)\xfa_\xfa\x00\
+\x84\x10\x9c\x87\xf9\xfb+\x85\xa2\x8c\xd1\xf4\xa0\xe2\xd0\x09\
+\xeci!v\xbf\x89b\x0c%Y\xd8\xd1y\x8e\xbbT\
+\x15&0\x7f\xda\x9b$\xa0\xe8\x040\x0d\xebC6\xf7\
+\x0f\x12Z\x13[*\x12\xbd\xd1@\x10N\x12\x92\xb3\xb0\
+\xa0~\x1cB\x9c\xd8\xc6\x81\xfeak\x91\xa0\x18\x91\xc2\
+\x07\xef\xeada4\xe0\x14\x1e]\x81\xac][\xce\xa5\
+0\xe3\x8b\x1e*o+\x5c\xf9@\xaf\xf0e;\xd4<\
+)\x9a\x87wqc4yhS\xcf\xe3\x10\x12w\xe3\
+\x06\xc3\xfe\x97>\x00m0\xf30\x7f\x7f\xa5\x00\x95l\
+\x82I\x02\xef\xa0\xa3\xec\xd3\x826\xb7\xf4M:z\x00\
+27\x97\x96*\x99\x81\x09?\x85\xc7\xd6JDT\x1b\
+\xe2\x13{\xd1I\x82\xa4\xd9\x8e\xf2\x9dA\xb5\xf2\xb4\xd0\
+\x1f?Th#\xd0\xf34\x8a8\xfd\x8ec\xfd\xcb\xa2\
+\xcbbN\xc0\xb0\x14\xd2\x18\x0dx\x99T\xf9\x91Y\xc3\
+\x99\xb8$\xc9\x9dK\x86\xc3'\x9c\x1cT\xbb\x99\x08\x80\
+?I\x14J\x01iD\x13\xe9\x97\xaeR\xd0\x89k}\
+\x18\xa8c$\xd2g\x5c\xcc<\xa4\xc04\x0f\xa3\xfc\xc3\
+mM\xbd\xc2\x091\xc2\xf7:[\xd0N\x0c\xf5\x1fD\
+M\xe0\x0dl\x9b\xeal\x93\xa1r8\x8a\x12\xa1&\xc1\
+:\xbaSI\xd0A\x9fg\xf8d6\x22!__\x16\
+\x1c\xbc\x88\x99\x84Z\x0f\x9f\x8fi\x0c\xba\xa9\xf3H\xff\
+\xb0\xe1\x1c\xbc\x13,b;\xb82M\x16& Lu\
+\xc9\x15\x09JA\x9bx?\x93\x1c\x07R\xda\xbah\x88\
+\x91\xb0*\xc6H\xc6\x08\x8ab\x04\xa0\x96cUH\xae\
+\xce,<-x\x0d\x98N\x82T\x12\x81\xa0\xd3(\xb4\
+\xe5\xccc\xfd\xc3\xe5Z\x05\x00\x98\xda\x8b\x01\x9f\xc9\x92\
+\xc8\x82(\xa1we\xe1\x92\xaa\x95\xf2\x16~\x12\xc8\x02\
+\xb9I\x80m\x177\x95\x12\xa9\x89\x0fkV\xb4+U\
+%\xc0Z\xbe\x1c\xc9{Zpb\xe0\xbc o\xc7\x03\
+\xdb4\x08]\xed<\xd4?%F\x9a\x85\xeaZs^\
+\xe4a\x08e\x06\xf2\x07\x1e\x8a\xa7\xe7\xa6j\x91\xac\xd2\
+\x0c\xb8\x80)\x0b~J1{\x0bJ\x10\xfch%\x0f\
+\x9e\xa2A\xa7\xc0\x0ds\xb6\x80T\x82\xa9\xb4J\x84\xec\
+2\x0f\x22\xf2\x22\xc3@\xff\xf0\xd2\x86\x10\x95\xb0I\xef\
+u\xb6\xa4PJ\xae\xba\xf6\x80\xec\xd78X\xf9\x5c\xb7\
+Xl%\xad\xbd\xc0\xb3:9\x18b,\x8d\xcf\xbb\x8f\
+zOKz\xa8J'\xfa\xbf\xd3 \xf4\xd6\xceC\xfd\
+\x83?a_\xbe\x02\x03@wb0\xa0)\x1d\xae\xa2\
+P\xaa\x92\x17\xf8\xeb\xf6\x14\xc4]\xfal\x1c\xbbg\xc3\
+\x97z\xd8%<\x8ep\x12'Kd\x0f\xd0\xc5\xc9x\
+\xd68\x04y\x13\xd30\xff\xe0L\xc8]\xab\x85\x0e\xfd\
+{\x9d\x0c\xc9je\x90\xfe}\x96\xe4\xd6\xec\xe3F\xcf\
+!\xf4\xa98-\xca\xed\xd9\x8f\xcc\x13\xf8C6'V\
+FK\xe4\x8a\xf0\xa3;\x0f\x0d\xe3\x18B-y\x18\xe7\
+\x1f\xae\xf4\xb2(\xb3jx\xdf\xebl\x91\xee\xb1d\x8f\
+\x93\x0e\xaf\xa4(p\x01\x87K\xbb\xf6\x22\x9d\xeb\x88\xbb\
+H\xac\xfb\xfa\x08\x16\x91\xb6\xe1\xb0\xa35[XqU\
+$6\x9d\x1b39\xe3 t\xb1\xf3P\xfft\x5c%\
+\xaf\xb7\x8b\xa3t\x5c}ZT+M\xb91\xae\x1e\x88\
+\x86\xc2?.\xe2\xe0W\x22\xfe %H9\xac\xf3\xa4\
+\xe0\x18\x86\x85\x82S\xbcf`\xc85\x8d\xc2\xeb\xcbB\
+\x06E \xfc\x0aW\xac\xe5k\x0cqZ\x1dG\xfa\x87\
+\xb5\xc9Bv\xf9\xe2\x8e\xf9^g\x0b\xda]\x85o+\
+\x9fbt\xb8\xeaZi*\xd1o\x0bM\x976N\xbe\
+\xb0\xe0\xeb\xff\x04\xe6p\xae\xd9?q95I\xd3\xc9\
+Kp\xbeH\xbd/\xbd{\xadJ\xf3 \xff\xe0 \xc6\
+\xb91s\xd4\xefu\xb6\xb0`\x92#\xd9t:\xebg\
+\xd3\xe4W)I\xd4k\xe9g\xf6\xa8J\x88\xf3\x5c\x94\
+\xb4\xb7\xcd\x07\xba\xd1\xd0\x8f\xeb8\xd9A?s\x1e\x82\
+|\xc4y\xa0\x7f\x80\x924\xbfZ\x95\xe7\xb5\xf7:[\
+\xa4)\xe9StQ\x15.p\xb0<k\xb6(\x8a\xad\
+|\x80Ew\x8d\xb8\x13R\x82x\x1e1\x1bdOA\
+\x94\x14dCI<\x12\xa3\x85y\x81\xdd\x01\x07\x15\xf3\
+\x8c\x83PJe\x1e\xea\xef\xaf\xf6\xb2(d\xe6\xa6\xff\
+^'\x03\xcbM%&\xc1\x0aK\x9ePt\x13\x0eU\
+\x1b]\xac\x02\xd7m%3>\xe8\xc6\xb6\xc3'\xef\x9d\
+\x0b\x10\x98\x81\xc9\xe9\xb1\xbe\xa66I\x1a\xd8\x9f8O\
+\xd5\xfd\xd2\xfb\x0f6\xc9a\x8c\xbf\xbeJ\x84\xa1\xf9N\
+\xe5\xd3?1[x:\x97\xea\x05a\xc6\x9b\xe4\xcc\xf8\
+\xda\x8a\xf6G\x07=\xbd\xa6\xbc\xce\x22Q\x87x\xc2)\
+\xc0\xd3\xb2+0\xe0.\x8d\x06\x96\xe6\x17E\xeauT\
+\x9a\x86\xa0\x8c\xf3<\xd01+\x91\x04\x089zVb\
+4\x98\xcf2J7\x89`\xd9\xafOQd\xa7\x95c\
+\xc2\xa8\x0a\xceS\x9dU'\x8eoh*F2u\x89\
+\x82\xc1f\xf0@vZ|\xb6D\xe9!\xc1\x16b\x8a\
+x\x02.\xb46(\xb1z\xd4NA\xc8\x9c\xef97\
+\xf5Z\xcf=\xa2^\xcf\xc8\x16\xf7\xf1^gK\xd0%\
+FN%\xb8\xed\x18\xf0\xf6\xf9&/\x1d\xe9\x11\xf5\xfc\
+\xcd\x8c\x99S[\x9e\xfb\xdc\xe7\xcf\xb2K\xe8\x8bJ6\
+<~O\x06$p\x9c\x81=(F|h\x87?\xe9\
+4\xee\xd5\x89<()\x9dT\x0dd\xd9X\x08J\x8e\
+M\xca>\xce\xfd\xddC\x10\xfb/\xb3\xa4\x85C\x18\x0d\
+$\xbeQ\x81\x13(\xc3\xc1PF\x19\xac\xd3\x9a\x1d\x08\
+\x0d\xdd\x87\x98\x05;3(r9(\x9d\x10r\x9eZ\
+\x1c\xc2\xdc\xdf\xcf\xc2\x0c\x87x'.\x8ej2\xdc\xa3\
+\xf6i\x1f5\x0a\xbbx\x7f\xc9\x8e-\xb5\xc8\x8dr:\
+\x0cT#cW\xc5F\x15\xc42S\x13c\xf8\xea\xf0\
+\x9b\xd2!\x09\x11\x8d\xc0\xa0\xea\x99fKR\xcc\xbf7\
+7W\x85\xe5\xfe|l\x87\x9fT\x9bB\x90;)i\
+fv\xf6\x94\x82\xe2n2\x98_\x10\x1f'n'9\
+\xe9\x10=\xea\x05\x9b\x87\xa9$=h\x90Q\x1d\x9f\x9b\
+s\xf4\xe0\xe2\xa8\xd2\xa5b\xb3R\x14],\xe3\xf4Q\
+\xd1j\x87\x93kX\x821Ib\xf3\xde\x09@EH\
+<\xd8\xa1\xef\xff\xdf\x7fu]\xe4\xa9\xfay\xeay&\
+\x01\x02\xd2\x8e\xc7B\x84@8\xefP{7\xea\x16\x91\
+\xa9\xdd\xc5%F\xb1\xb5{\x85\xe4\x81\xa0\x09\xa7p\xdf\
+I<\xf5:!\x1fR\xda\x80D\xabP=\xd4\xd5\xdb\
+\x8d5\xa0v\xdb\x89gl\x8bS) \xd0\x18\x09\xab\
+(\x05\x10G3\x89\xef\xbd\xfa\xd3\x9dM\x9d\xecK8\
+\xe0Q\xcc1s\x8d\xbdO\x80\xac\x00\x1d\xa71P\x08\
+\xc3\xcc\x02\x9eAtv\x05~\xe208\x03\xf5\x0b\xb5\
+\x92\xd9\x8e\x9av\xf7Gk\x11\xf0\x09\xd8\x83{M\xbd\
+\x8f\x0c\xd6Hl\x8c\x14\xe1\x5c\x22\xb2\x80\x93 f\x9c\
+\x17\x92\x89\x81.\xfeX\xb1\x16\xe1A\x1e\x87\x1a0'\
+\xf1\xcb\x83\xf5 Y\x92\xbb\xe8N\x8a\xf1\x1e\x10\x8e\x83\
+\xaa\xb4\xe6\xc8\xb8\xcftU\x84w\x846\xdeC\x86@\
+h\x0be\xb7{\xad\xc6\xf9\x97\x08\x91J\xd074h\
+\xb3E\xda\xf0\xa0\xed]\xc3\x18P\xaa\xcc\x1fo\xa6\xca\
+@,\x03\x0a\xcf\x97\xbe\x8e\xfa\x9c\xdaX%\xf2\xa2\xa1\
+\xc2-\xafF\x10\x10x\x85Vv\xeb3\x8b\xf2\xaf\xc7\
+y\x15(\x87\xcf\xca\xc6\xb2+ar\x1a\xdbU\xd1n\
+\xc4P\x80\xae#5D&G\xd5.\x11\xbf\x97hd\
+\xf1h%\x95,\xb2 >\xe3\xd6\x9ft\xb4\x0bQ\x02\
+{1\x16\x87\x89\xfd{.\x11\x91\xc1\xf8 \x86|\x9f\
+%\xc0?\xb2+\xd0\x07:B(\xdan\xe2o\xae\x92\
+5Gtv;\xd4\xc4;\x91\xc8\xfbG.\x88\x9d\x83\
+\xdb\x83\x1b\x02X\x8e]\xca\x1alB(\x0c\xa1\x08L\
+\x1e\xcee\x17\x17\xaej\xd2\xdc\x8bg\xbb\xea\x95\xa0\x80\
+,\x9fS\xcd\x8dIj5\xf5\xb0R\x13\x0d(x\xa8\
+\x16\x99\xc3\xc7Q\x96wQ\x10\x0e,J\xa8\xc8\xb9\x82\
+\xa0\xa1\x08\xd4U7VR\x91\xd8\xa2\xf2\xd7\x89\xb2\xc2\
+\x95#\xd9\x03\xe8\x94\x08\xd0)\x0c\xcd\x05\x83h3<\
+\xcbE\xeb\x01\xa9s\x87\xbb\x14\xa8\xa6\xe1\xc6a\xfbU\
+\xf9\xc9\xde+\xa0\xb3\x22%{\x10d7F\x9ePL\
+z)\x99\x85\x02\x81.8\x00~\xd9\xfbZ\x16\x00\x0e\
+U^\x0f\x0f\x96|k\xa7\x90\xe6\xf7l\xb7\xec\xc2B\
+.\x8e\xf7\x1fX\x18^\xb9\x1c\xc3=C_Ix\xfa\
+\x8c\xd2\xb2}\xef\xfc\xd7*)\xe2\xbaR\xe9\x17\x81U\
+\x08\x0b\xe0\xd9\xd8\xe4K\x19\xc5\xfbI\xdb:\xb2\xef\x98\
+\xbf\x9c\x84@\xd9-\xd20^\xaa\x1c\x81\xe9\xea\xc1q\
+\x91\xf8\x80\x91BN)\xaf\xc4^\xda\xa6\xda\xf8\xa4\xda\
+Ix\x1b\xa7\xf6\x1e\x00\xf3Z\x0a9\x0c\xf8^X\x1a\
+[\xd6\xcaa\x7f\xb1\x95O\xf3^\x03\x9a\xb9\xb8\xa2\xb9\
+\xb3\xc6\x10M\xdcr\xa4>\xa0\x07\x08\x921\x9c\xb5\xf0\
+gj\x03\x11\xa1~_b\x13\x17\x0c;;\xf9cE\
+\x1fG\xbd#0\x82|y\x13e\x93x\xbb\xf8\x04Q\
+\xf6\x0eC\x93\xbf\x06\xdf\xfa\xe2\x92\xaf\x91\xa3.\xf5^\
+\xd2\xb0\x05\xe0M\xdb\x8eX\xa5)\xf9\x8aP\xfa\xc9&\
+\x98\xa9\xb4\xa9\x12p\x88\xaar\xa4R\x80\xb2\xdc\xf9\xe0\
+\x90\x81~\x93\x90\x0e\xf8B\xa5\xc8\x81\xb2\xf5\xfb\xf1D\
+w\x1c\xecF\xc2\xdc\xdd\x82\x0b\x9a\xf6%\xe6][\xea\
+t+H\x7f\xa2\xa5\xb3R\xceU4\x13\x005\xd4]\
+\x83\xc8\x8d_A\x94,\xa9\x89\x07\xac\x8a\xac\xd4\xcf+\
+*!\xf1R\xb5\xcb\x8f7\x1d\x13\xd6N\x90\x22\xa3J\
+\x16\xc6\x81\xe4\xc27\x10\x88O\x91\x9bp\xa9$t/\
+'\x85\x99\x11e\xb9\x9c\xeb\xc4\xd7\xa1\x04\xa5J\x09D\
+l\xaa\xc4\xe3\xa6\x91G\x86v\xb8\x18\xf9\xe4\x85\xb7\xc0\
+\xb4&ElUp\xfd\xe0\xd2\x14U\xa8\x82th\x97\
+\x8b}\x8f\x1e\xc8OIm \x9fv\xe1\xc3\x09Z\x97\
+h\x02d\x89\x0c\x05\xee`a\xa8\x18\xd3\x99J\xace\
+\x17\x9e\x5c\x12PT\xe9\x0a\xd2%n\xca\xa0$>\x98\
+\x96\xdd\x01a\xd7=\x87\x08\xd7\x01o\x85\xc5\x0b\xa2\xf3\
+\x95\x84\xab\xfcm\xdc\xaa.\x83\x80\x98O\xe6\xd7w\xf1\
+0\xddn\x0f\x16\x09L\x18\x10]\xf7#\x82\xae\xe4\x8b\
+\xa0\x8d\xdf.\xd4Q#\xe0k\xe7P\xa4\x1f \x11]\
+4\xcf\x80\x08\xe8\xcf\x99\x1bb\x91\x9b\xd4\xccET\xa8\
+\xc5\x0aw_\xea\x0aE\x1b\x08\xd0\x9d><T^5\
+A\xbeH\xd2\xdf\x13\x8e?b\xca^b\xf5\xd9\xf8\x01\
+\xb1\xa6$\xbd\xbe\x9b\x97\xf8\xa4\xbfnt\xc1_<^\
+\xf01?\x85\x0d\xcc\x86T\x92\xd4V\xcb'\x82R\xfb\
+\xf6 \xe1\x81+T/\xf7\xbf1\xcd\xb2[\xceS\xa4\
+\xfa\xf4\xb2\xe8f\x90j\x055u\xc86\xab{x\x06\
+~\xfb\x19\x81Ak?BW!K\x92<t\x17\x90\
+\xf5\x0051\xce$hs1\xed\xba\x0ad\x1c\xd2\xe7\
+\xb3\xe7\x02\x8f\xcfNRL\xcc\x1b\xfd\x8cX.m\xe0\
+\xf2|\x19\xbc\x01\xf7\x1f\x83\x85\xfb]T<\x85+O\
+\xc1x\x948r\xb2\x95\x94Jo\x15\x14\x96{\xc0<\
+\x16>\xab\xda\x1a\xca\xce\x0au>\xfa\xba\xe9\xd8\xcc\xc8\
+g[\xd6\xf1\xbd\x88\xb3\xe4\xf3M\x81\xb7\xcd\xfeR\x8d\
+\xd3\xec\xd0&\x01\x17\xcb\xe5\xcd\xec\xa8\x92\x0bl\xf8\x86\
+\xa1?\x0dJlS\x19\xd1\xdf\xc6\xe97\xdc\xd5O#\
+\xb9v\xd4\xc4\xe3\xae\x80\xcd]^\xe1\x8c\xa0`\xf3\x07\
+\x9c\x7fkVgy\x8eP~\xedx\x0d\xd2/\xa6\x87\
+\xedR\x93g\x93N+\xe9\x16\xba\xd03KI\xe3\x88\
+7\x1a\x14+V\x14Sq\x85\xa6\xce:G\xe7\xd0\xa6\
+\xcb\x0a\x98\x98\xdc\xb8G\xbf\xc6\xd1\x8c\x03\xfbay\x02\
+\xc3h!N?\xb4\xfd\xe3\x96\xe3d\xfd\x01j\x85\x83\
+\xa3\xeb\xd9\xd6Y\x9e)\xcd\xa0\x9f+\xcfi{\xcd\x86\
+(\x83\xb0\xc6\xe9\xd0\xb1\x07;\x8dM\x98{\xcc]\xad\
+\x01,\x1f\x0d1\x84\x22\xfa\xa2\xdd\x0c{gpb\xda\
+\xb0\xc4\xe5\x99\xf5/\x8b\xe4\xba+\x1f\xf4gf4$\
+\xd3<\x17\x95\xc3\xa8\xeb%\xfa\x0e\xa0\xc70\xbe\x9f\xa5\
+3\x9b\x9d\xf1\x84\x8f\x06\x87f\xf1\x88\xf3\xd4\x1aZ\x09\
+\x115r{\x91\x81\xb8\xdc\x83\x0fG\xd0\xa6Q\xce\xa1\
+\xbf\x90\xa3\x01\xd0\x0dD]\xaa\x9f5\xf1\xfd-\xf8\xba\
+\xb9,\xcd\x00h\x03q\xf9$\xe9\xef\xc2\x19|5\xce\
+x\xdfF\x03\x99\x8b\x84\xf4\xd1\xe7\x9d\xfdK\xfdY\x1e\
+\x0d!FQ?\xda\x15\x9f\x99\xf0=\x9f\xa7Klr\
+X_k\x14n\x0d\xedX\xf1J6/\x9cX\xae:\
+?\xd6\xa7\xb9p\xa5\xe6\xfd\xb6\xc6K\xc8q|\xf8n\
+\x07\x03V+\xce\x9e\x8f\x8b\xcf~\x03\x966\x0eML\
+VLs\x91[ELV\x9fv\x87w\x99\xd7JI\
+\xb3RL\xe7\xf8l\x8bZ\xd1\xddK\xa7\x82\x1cd%\
+\xea\xe1\xc76X\xdf\x0a\xd9m\xd3a2\x7f\xafO\xcb\
+d1\xb8k\xa5\x0c\xde8\xbc\xe0\xc5z^\xc0O\x08\
+\xf5\xe4\xcbW\xf4l&k{\xd6\xe2 \x0b\xd1\x8f\xb5\
+k\x89<\xdbK'\x96\xab\xe6wK\xf2?j\xf7?\
+F\x83CD\x14\xf8\xeb\x01\x22Il,v}?\x96\
+\x90\xf0Y\x19\xcc\xce\xe30\xe5\x98\x0e\x97\xa1CCc\
+\xf0\xc0n\xdb\xd0\x8eyh&t\xb3ZE\xe7\xea|\
+\xb6\x17\x97f\xc2\xe7\xe4\xf9k\xf8\xa5\xf0\x8a\x9f}\xfd\
+,\x16\xee\xd8#\xb4;\xb6\xf1\xf3xS\x9afy\xd3\
+\x0e\xd4,\x99=\xb4\x97\x98\xa7Ch\xf8\xb4iO\xfc\
+\xd4\x9b\x8d\x86\xe4b\xacf\x96_\xebr\xecY[\xe8\
+k\xb2\xf4\xcf\x9b\x99h\x1c'\xcb\xa4\xa7+\xf9YJ\
+\xd3{\xd4#\xb5\x93\xa1\xec\xa4\x15\xd2?3J\xefU\
+\xa8\xf2h\x94f\x88\xf6\xae\xe7\xdbmD\x08\xf4\xaeN\
+\x86\xe2\xddd\xbf\xdc\x1c:\xbc\xdf\x82\xff\xfb\x1e\x15\x06\
+z\xae,\xad\xc4\x10\xfd\xcf\xe25\x8b\xdaD\xa5\xea\x05\
+\x07\x8c\x0c\x9d>\x9b\xc5\x1b\xb3\xb4F\x96O;\xf5!\
+\x0e\x86rl\x90\x8e\xb8>]a\xf6\x1eC\xb8\xc7\xe3\
+\x92J$\xcbU\x042[\xca!\xc8\xe1\xae\x1f\xb4\xec\
+\x80G\xf7l\xdf\xe39.\xd3'z\x8aN/\xc6\x97\
+\xd4\x87\xc6v9\xb7O'c\xa7Z\xeb\xbe\xc7\x86\xf1\
+:\xad\x5c4\xed\xf7x\x0dC'zg\x83*\xd2l\
+)AZ[\xb4\xf1\x97k\x93\x9b\x1b\xef\xca\xf7\x8fF\
+\x8d'Y/\xfe\x0b\xe9\x05\xc2t\xf4*6\xc3\xa0Q\
+\x04B^\xaf\xcaT\xd1\xbf\xd7\xff]\xff\xf5\x9f~\x00\
+Z_\xf7d \xbc\xc6\xc5.\x1aX_\xb89 P\
+\xef\x885\xe9{\xa4\xb6y\x0f\xfd\xbf\xfdp\xde\xfc\x85\
+\xea\x1f\x1f\x0d\x09H\xf8\xc3\xa9kGI\xca\x19\x90\x8b\
+\xff\xf6\xe3~\xb8\x0b\x89\x18\x931\x1dOK\xf8[\x85\
+\x81|\xd5S\xf0\xcf\xcf\x1e\xfe\xb5\xfc?\x80\xc7\x05\xe8\
+\x0aendstream \x0aendo\
+bj\x0a\x0a15 0 obj\x0a[/I\
+ndexed /DeviceRG\
+B 255 16 0 R]\x0aen\
+dobj\x0a\x0a16 0 obj\x0a\x0a\
+<<\x0a/Filter /Flat\
+eDecode\x0a/Length \
+336\x0a>>\x0astream\x0aH\x89\
+\xb4R[\x95BA\x0c\xab\x05,`\xa1\x16\xb0\x80\x85\
+X\xb8\x16\xb0\x10\x0bX\xc0B,`\x01\x0b\xd9d<\
+l\xffz\xa6M\xf3\x98\x99\xd4\xce`\x863\x9aq\xbb\
+\xddY\xccrV\xb3\xee#v\x80\x01\x07\x1a\xb8\xb3\xdc\
+!\x86\x1cj\xe8\xaejG\x18q\xa4\x91\x834\xde1\
+\xc6\x1ck\xec\x02\x17:XY\xce\xb4{\xa7\x85]\xee\
+j\xd7=\x9b\x0eXp\xa1\x85\xcb\x22\x8f\xc4\x92K-\
+]R\x99\x15V\x5ci\xe5p\xcc\xea\x1ak\xae\xb5v\
+)WCH\x87eh\xb9\x0az)\xd0\xc1\xca\xb2+\
+\xa8}\x8a\x80\x00W_\xce\xa6#A\x81\xae\xdc\xb0\xc8\
+\xa3\x08\x09r\xd4\x87Tfa\xc2\x82]3jV\xb6\
+cG\xf4\xbb\xdeTR\xc0B:,]\xabz8\xd8\
+\x81\x0e\x96\xeb\x5c\x9f\xd3\xa7D\xbaFF_\xce\xa6\x93\
+(\xc7\xd7\xc8\x0d\x8b<\xd2\xa2]\x9b\x9b\x0a:[\xa3\
+]\xd7\xeb\x1d\xbaZ;\xdc\x10\xaa\x10E*i7\x93\
+\xf2@\x81\x0b\xedF\xd4i\xf4N\xcbI,FF_\
+\xce\xa6\x93\xed\xf3\x1b|\xf2\xf6I\xd4'3\x9fT|\
+|\xf7q\xd6\xc7;\x1fw|\xf4\xfb(\xf4\xd1\xe0\xc3\
+\xd2\x87\x87\xcf%\x1f,\x9fi\x9f\xfev\xbb\xdd\xef\xf7\
+\xc7\xe3\xf1|>\xaf\xebz\xbd^\xef\xf7\xfb\xf3\xf9|\
+\xbf\xdf\xdf\xef\xe7\x7f\xab\xbf\x01\x00\x10q\xabc\x0ae\
+ndstream \x0aendobj\
+\x0a\x0a6 0 obj\x0a[/ICCB\
+ased 8 0 R]\x0aendo\
+bj\x0a\x0a7 0 obj\x0a\x0a<<\x0a\
+/Subtype /Type1\x0a\
+/FirstChar 32\x0a/F\
+ontDescriptor 10\
+ 0 R\x0a/BaseFont /\
+ZSHTRV+NuevaStd-\
+Cond\x0a/Type /Font\
+\x0a/Encoding /MacR\
+omanEncoding\x0a/La\
+stChar 121\x0a/Widt\
+hs [129 0 0 0 0 \
+0 0 0 0 0 0 0 0 \
+0 141 0 0 0 0 0 \
+0 0 0 0 0 0 0 0 \
+0 0 0 0 0 0 418 \
+0 0 0 0 0 0 218 \
+0 0 0 0 0 0 0 0 \
+0 340 387 0 0 61\
+1 0 0 0 0 0 0 0 \
+0 0 348 376 310 \
+377 324 241 354 \
+406 192 0 0 189 \
+629 414 364 0 0 \
+297 284 263 399 \
+347 544 0 348]\x0a>\
+>\x0aendobj\x0a\x0a17 0 o\
+bj\x0a\x0a<<\x0a/Type /En\
+coding\x0a/Differen\
+ces [24 /breve /\
+caron /circumfle\
+x /dotaccent /hu\
+ngarumlaut /ogon\
+ek /ring /tilde \
+39 /quotesingle \
+96 /grave 128 /b\
+ullet /dagger /d\
+aggerdbl /ellips\
+is /emdash /enda\
+sh /florin /frac\
+tion /guilsingll\
+eft /guilsinglri\
+ght /minus /pert\
+housand /quotedb\
+lbase /quotedbll\
+eft /quotedblrig\
+ht /quoteleft /q\
+uoteright /quote\
+singlbase /trade\
+mark /fi /fl /Ls\
+lash /OE /Scaron\
+ /Ydieresis /Zca\
+ron /dotlessi /l\
+slash /oe /scaro\
+n /zcaron 160 /E\
+uro 164 /currenc\
+y 166 /brokenbar\
+ 168 /dieresis /\
+copyright /ordfe\
+minine 172 /logi\
+calnot /.notdef \
+/registered /mac\
+ron /degree /plu\
+sminus /twosuper\
+ior /threesuperi\
+or /acute /mu 18\
+3 /periodcentere\
+d /cedilla /ones\
+uperior /ordmasc\
+uline 188 /onequ\
+arter /onehalf /\
+threequarters 19\
+2 /Agrave /Aacut\
+e /Acircumflex /\
+Atilde /Adieresi\
+s /Aring /AE /Cc\
+edilla /Egrave /\
+Eacute /Ecircumf\
+lex /Edieresis /\
+Igrave /Iacute /\
+Icircumflex /Idi\
+eresis /Eth /Nti\
+lde /Ograve /Oac\
+ute /Ocircumflex\
+ /Otilde /Odiere\
+sis /multiply /O\
+slash /Ugrave /U\
+acute /Ucircumfl\
+ex /Udieresis /Y\
+acute /Thorn /ge\
+rmandbls /agrave\
+ /aacute /acircu\
+mflex /atilde /a\
+dieresis /aring \
+/ae /ccedilla /e\
+grave /eacute /e\
+circumflex /edie\
+resis /igrave /i\
+acute /icircumfl\
+ex /idieresis /e\
+th /ntilde /ogra\
+ve /oacute /ocir\
+cumflex /otilde \
+/odieresis /divi\
+de /oslash /ugra\
+ve /uacute /ucir\
+cumflex /udieres\
+is /yacute /thor\
+n /ydieresis]\x0a>>\
+\x0aendobj\x0a\x0a18 0 ob\
+j\x0a\x0a<<\x0a/Name /Hel\
+v\x0a/Subtype /Type\
+1\x0a/BaseFont /Hel\
+vetica\x0a/Type /Fo\
+nt\x0a/Encoding 17 \
+0 R\x0a>>\x0aendobj\x0a\x0a1\
+9 0 obj\x0a\x0a<<\x0a/Nam\
+e /ZaDb\x0a/Subtype\
+ /Type1\x0a/BaseFon\
+t /ZapfDingbats\x0a\
+/Type /Font\x0a>>\x0ae\
+ndobj\x0a\x0a20 0 obj\x0a\
+\x0a<<\x0a/ColorSpace \
+15 0 R\x0a/Height 6\
+3\x0a/Filter /Flate\
+Decode\x0a/Width 49\
+\x0a/Length 561\x0a/Bi\
+tsPerComponent 8\
+\x0a>>\x0astream\x0aH\x89\x94\x96K\
+\x92\xc4 \x08\x86\x0f:\xbd\xe9\x1c\x06\x0e\x83\xb3\x90\x93\
+\xf4J\xaf3F\xc0\xb7\x19;]V\x85\xb4\x8a?\x9f\
+\x881\xdeO \xa6\x10\x8f\x1f\x847\xfc\xa4\xf6Bd\
+w\xd0\x1fR\xdf\xda.\x00\xa2\xf0\xe4\x0e\xd2\xec\xab\x1f\
+x\x0a+\x7fNf\xdd5?y\xc3\x1fU\xf0\xd4\xee\
+q\x9f\xa5\x82\xa7\x96F\xa5\x98\xb8\x8d\x82\xed/>*\
+X4w\xa0\xa0k\xf1T\x81\xb5\xef5\x8cqw1\
+D\xc7{\x15\xae[!V\x9e;>\x1d\x87n'\xf0\
+e\xbb\x8b\xc9C\xed\xd3\xac\x0fc\xf7\xb0}\xff4\xef\
+-\x07\x18\xb7\x99\x97\xef\xf7<\xb4\xe2\x10l7\x9a\xaf\
+ \xdfY\xbc\x8d\x1c.\x1f\xb5\xd7mS~\x97ye\
+\x96\x99\x83\xf4\x89$\x96\xe8\xbf\xdf^\x9d\x9e\x86C\xd9\
+\xbd\xd9fU\xc1.\xaf\x94\x11&\x0e6@l1\xd1\
+\xfcf\xa3\xe7\x80\xc5C\xb6U\xf6\xbbI7\xe89p\
+\x8d\x91\xacU:\xb5\x1ez\x0e\x5c\x82t\x95\xd8\xa4\x01\
+^]\x05Vu\x85\x83\xfa\xa6\x12oSd\xd4G\x0e\
+\xea\x81{\x1b5z\x0b\x0e\xb6P\xb3\xe5\x94 %\xb2\
+\xe0\xa0\x03\xd8\xec\xd1\xc3\x94\x0f\x8d\x87\xb2\x83\x129\xe5\
+\xc3s>\x98\x07\xb3\xcd\x03h,\xa6|\x984D\xd5\
+`Q\x1a\xf3!\x14\x0f-\x97\xd6\xc3u\xc2\x01\xf7\x1c\
+\xdc\xc0A&\x80=\x07\xdd4USP\xd2;\x0e\xa8\
+\xaa{.\xb0\xe7`\x03\xba|p\xb0\xe7P\x12Hl\
+_\x14\xed8\x98jj\xcf(\x80=\x07\xf0\x06\xa2\xc9\
+\xf0\xfb\xdd\xf0\xc0\x90\x0f\xcd)\x90l\xaa+\x17\x82\x8e\
+\x1d\x8f\xf5\x81\xca\x08;\xa3r\x16k\xa2\x18\x8b\xf6l\
+\x95\xbf\xd2i\xaf=d_\x95\x13\x94\xa7\xfa\xd0$|\
+\xa3\xc6\x08\x85E}\xc0\xb6\x86\x97]\x95\xa0\x22\xc1\xb2\
+>\x00\xd6\x0a\x81\x9b*7\xd68;\x0c\xbe\xa8\xd32\
+\xc0\x9f\xd7iWbxV\xa7\x8d\x01\x07Z(\xb8V\
+u\xba\x8f\xfb\xa8q\xac\xd35\xee\x85C\xd7\x82[\xac\
+TG\xf0B\x01n\xeeK\xe9>\xd5\xd6\xe6\xaa\x80\xbf\
+\xbb/%\xae\x9f\xf3\xfb\x92\xa7\xe7x\xd7<\x81\xfe6\
+\xbb\xbb\x17\xe5\xbbA\xd2\xc2\xb1\x7fv\x1a\x90\xeeY\x7f\
+s~\xf4\xcf\xb8\xda\xc5Mu\xf2`1\x96Y\xff{\
+,\xee\xa7\x97\xfb\xbf\x01\x00\xad\xb87H\x0aend\
+stream \x0aendobj\x0a\x0a\
+3 0 obj\x0a\x0a<<\x0a/Col\
+orSpace 15 0 R\x0a/\
+Height 52\x0a/Filte\
+r /FlateDecode\x0a/\
+Width 74\x0a/Length\
+ 160\x0a/BitsPerCom\
+ponent 8\x0a>>\x0astre\
+am\x0aH\x89\xec\x92\xc1\x0d\xc30\x0c\x03\xb9\x8f\xf6\
+\xd1>\xdcG\xfbx\x9d\x92n\x80\xa2\xfd\xa9q?\x85\
+\x0ev,\xe7A\x882\xd7\x1a\x86a\x18\x86\xdf\x92d\
+\xfa(m\xa8&\xa9\xd2\xff*\x9bJ\x01$\x92\x00$\
+\x13L\xdfT3\xc0\xa6\xd41\xd4A\xbd\xac\x14m\xd3\
+l\x93-\x88\x903}\xb1m\xc2\x17z\xa1\xabT`\
+\x5cUw\xc4\x9f\xc4nAM\xed\xdexO\xec\x0cE\
+\x9b\xd2\xe3\x97\xa2\xb5\xba\xb3yW\xd2\x98C[8\x96\
+\xc7Z\xbc\x81\xf3S\xe5<mg\xcaS~i\x91\xd7\
+\xd3\xc9\xdb3X\xd9\x0e\xd20\x0c\xc3\xdf\xf2\x18\x00.\
+eI\x96\x0aendstream \x0ae\
+ndobj\x0a\x0a13 0 obj\x0a\
+\x0a<<\x0a/ColorSpace \
+15 0 R\x0a/Height 5\
+1\x0a/Filter /Flate\
+Decode\x0a/Width 49\
+\x0a/Length 1076\x0a/B\
+itsPerComponent \
+8\x0a>>\x0astream\x0aH\x89\x8cV\
+=z\xe36\x10E\x95\x93 \x0d\xa6In\xe1\x0ah\
+\xc2ir\x85MC\xb80\xd1HS\xe4\x0aq#\xd0\
+\x05\xcdm\x8cSH\xc5\xdaM\xe2\xca\xbcN\xde\x00\xb2\
+$j\x95o\x03|\x82@af\xde\xfc\xbc\x01\xb5,\
+\xb7Fr\xc68\xc3\xd6\x1a\x0c\x9bn\xca\x5cH\xab\x94\
+q}6\x83\xf7}0\xce\x13\xd5\x03\xc3\xb7\xc4\x0bY\
+g\xc20Xc\x9d\xcf\x0fA?\x960U\xe3\x86|\
+\xe7\xe0\x8b\xad\xb3\xba\xe3\x87\x87\x87\x07\xdd\xa9\xad\x1b\x0a\
+\xddP\xe5\xba\xba\x92\x1d\x82\xd3\xef\xa3\xc2\x0d\x84\x10`\
+T}:\x0d\x17\x8f\x1b\x95\xa7ky\x09\x86\x9cJ;\
+\xd39\x8bh\xb1\x8d\x93\xad\x08\x05\x1e\xc9\xb5\xfcp\xb6\
+lB\x1fMD\x0c\xa6o\xcf\xc2\xe6;\x8f\x9e\xad\xf1\
+C\x0c~\x8a\x04\xffC\xb7\x09\x83\xd9`Gg\xaf\xd6\
+\x03\x89\x19v\xee.\xe7ED\x96\x8c\xaczc\x07\xe3\
+wY#w\xddw\x1e\x15T\xaa3\x1d\xe4\xd9\x90,\
+\xcee\xd8\x8e\x88+n\x80i\xc2f\xbb\x92/p\xd2\
+v&\xd8\xb2\xc0cC%\x98\xa1V\x1cK\x9fu\xf5\
+\xc3\xaa\xd4\x85$t\xc6\xd9I\x16R\x05\xa2N\x11\xfc\
+\x06\xa9\xa6<!c]\x9e^\xce\xf23\x93\xe9\xac\xb3\
+\x83_\x16\xc6\x1e\xfc\xd9E\x9bw\x01\xb926h\x1c\
+}\xdeug\x05\x16\xc7\xb1\xeb\x87<\xcd\x85\x17\x12.\
+\xaa\x95'|\x14g\x82{\x9b<\xb9\xb3\xbc\xdb\xfef\
+\x07\xf8:\xecf\xf8\x84\xa8) k\xd5\xae~\xef\xb2\
+\x05\x7fw\xf9\x14\xf7\x8b%\x9a\xf3\xa4s\x5c~\xdd\xfe\
+\xf2\xbbp&O\x81\xcc\x947Z\xef\xe8\x8c\x9e\x8e-\
+\x9f\xcbB\xb9\xaf\x16v\xf9\xaf\xd9\xd1O\x7f\x1a\xf2L\
+\x1c\x909\x9f\x90!\x8b\xee\x08z\x8e\x08\x8b,\xa8\x08\
+\x19x\x9f\xb3\xcfw}O^\x90#\x84\xe0Q\x11\x9a\
+\xe3\xb3\xd6-SE\xd8\xd4\x02@\xc7\xf9/\xb9\x8f}\
+\xbe\x8b\xd6\xfb\x81\x12\xa2p\xc0PM\x09Z\xb5\xf7\x16\
+\xc9\x03XP\xa4\xcc}V\xef\xef\xa6>\xfb\xde\xa7 \
+\xb4\x8d\x7f\x874\xbc\xb0(\xa5+Y\xb1\xf0\x92\x13\xa4\
+\x01\xe0\xb2\xfaw\x87\x89<e\x84J\x86\x9d\xc6 \xa4\
+\x8d\xcc\xda\x09\x80\x91\xf2\xeeA3\x96\xd4\xf7S\xfe\x9c\
+\xdf\x02S\x02\x9b\xf9\xccQ\xd2\x15UQf\xa0/\x84\
+\x1e\xfb^\xf3\x93_\x87\xbc{M \x06\x22F\xcc\xad\
+7\x05\x9d\xa3\xdeP\xeb\xebE\x11\xf2s\xff-\xbf>\
+\x7f\xcc2\xbf\xff\xc3T\x18\xf6I\x93\x0d~\xe1q\xd1\
+\x9aC\xe1\xc8Q\xc4\xf5\x9a\x86~\x08\x89\xa9\xd2H\x94\
+\xf7\xd22\xcbR\x88\x19Ah\xc7\x01\x0b\x03\x86d\xbb\
+\xcco\x98\xe0\x04\xf4\x95'\xb0\x02I1\xc5\xd4\x1f\x94\
+\xf9\x8c'\xecJ\x05\x91\x92\xd2[\x92&\x0fS\xb0\xcc\
+\xb5\x02\xac\xb1\xc0g\x84S\xa4\xde\x01\xed#\xa5\x8ci\
+\xe4#k\xe1\x93h\xb2U\x9e\x8b\xdaU]\xbd\xc6\x14\
+\xa2\xca\xa8NJz\xa2\xb6\x8b\xb4,\xc9\x11\xa7h\xbe\
+\x10\xbfQqn(\x90\xad.j\xac\xa2>\xa845\
+=\xccj\xbbe\xf5t\x11\x88tj\x9b\xb5\x06\x86\xb5\
+vT\xeb\xa1\xbc\xa3*E\xcd\xe2\xb9\xa5?^`\xab\
+\xe3$<\x869\xa6\x08]FV\x90\xd3\xa2\xb9\xe1\xa6\
+P.z\xf4eK\x05\xd7\xa1\xa4\xc71\x1e\xbe\xa4\x08\
+& \xb7\xe6(R\x8c\xe1\x15\xc2\xa2\xb1\x22\x92(\xe3\
+~,\xfb\xb7?\x9eL\x8d\xac\xbdEP\x93\xb6\xbbD\
+P\xa6\x17\x13\x1f\xd3\xe3a\x7fx\x1c\x83\x06)\x8d}\
+\x8d\x88R\xa5\xce\x08\xb0\x03\x22\xde\xbf\xed1\xc7\xf4\xa4\
+\xdc\xd4\x8cV\xa26\x85\xb2F\xe0\xb2Ew=\xc5\xc3\
+~\xde\xc71\xd5\x0b^\x19Q\xd9\xaa\xf2\xa4\xdc\xbe@\
+PRu_\x9f\xc68s\xba?\xfc\x0c\x96\x12W\xfa\
+\xe8\x9dSk\xa7\xd9\xbf\xbc\xc9P\x8b\x0fJ\xe1>|\
+\xc4C\x80\xc7\x1a\x93\xf2_\x1b\x14\x09\x5c>\xc9w*\
+\x9dj\xbcS\xe2Y\xbe\xde\x93\xb6\x81\xd2YY\xfe\x99\
+\x9e\x22\xeb\x1b\xbfT\x16)\xbe5j\x91\xaa9\xe5\xa6\
+\xd4\xabbU\x85z\xd4JY\xd4\xf0\x0a\xbfr\xfa\xf8\
+\xe3%\x80\x9c\xb2PW\xf4\xc9\x0a^\x91\xd6\x08\xe5\xb4\
+\xd4\x0d\xc9\xf5k\xf6\xfa\xaf\x83\x9c|(\xed\xf4\xa6\xc5\
+\xef}jS\xf8\xfa\x1dxc\x14\xdc05:\xa9\x97\
+\xc3\x8fG\xbd6K-\xc8\xb57\xff\x0d\xa2m\xd7\xd4\
+\xfe\xaf\x86\xd6oY\x93\xe0r\xfc;\x00+\x9eC\xe7\
+\x0aendstream \x0aendo\
+bj\x0a\x0a5 0 obj\x0a\x0a<<\x0a\
+/Kids [21 0 R 1 \
+0 R 11 0 R]\x0a/Typ\
+e /Pages\x0a/Count \
+3\x0a>>\x0aendobj\x0a\x0a22 \
+0 obj\x0a\x0a<<\x0a/Metad\
+ata 23 0 R\x0a/Type\
+ /Catalog\x0a/AcroF\
+orm 24 0 R\x0a/Outl\
+ines 25 0 R\x0a/Pag\
+eLabels 26 0 R\x0a/\
+Pages 5 0 R\x0a>>\x0ae\
+ndobj\x0a\x0a24 0 obj\x0a\
+\x0a<<\x0a/Fields []\x0a/\
+DA (/Helv 0 Tf 0\
+ g )\x0a/DR \x0a<<\x0a/Fo\
+nt \x0a<<\x0a/ZaDb 19 \
+0 R\x0a/Helv 18 0 R\
+\x0a>>\x0a/Encoding \x0a<\
+<\x0a/PDFDocEncodin\
+g 17 0 R\x0a>>\x0a>>\x0a>\
+>\x0aendobj\x0a\x0a21 0 o\
+bj\x0a\x0a<<\x0a/Contents\
+ 27 0 R\x0a/Thumb 2\
+0 0 R\x0a/Type /Pag\
+e\x0a/Resources \x0a<<\
+\x0a/ColorSpace \x0a<<\
+\x0a/CS0 28 0 R\x0a>>\x0a\
+/ProcSet [/PDF /\
+ImageC]\x0a/XObject\
+ \x0a<<\x0a/Im0 29 0 R\
+\x0a>>\x0a>>\x0a/CropBox \
+[55.8366 1.32904\
+ 454.04 511.205]\
+\x0a/Parent 5 0 R\x0a/\
+Rotate 0\x0a/MediaB\
+ox [0.0 0.0 511.\
+94 511.94]\x0a>>\x0aen\
+dobj\x0a\x0a28 0 obj\x0a[\
+/ICCBased 30 0 R\
+]\x0aendobj\x0a\x0a27 0 o\
+bj\x0a\x0a<<\x0a/Filter /\
+FlateDecode\x0a/Len\
+gth 42\x0a>>\x0astream\
+\x0aH\x89*\xe4254\xd4\xb3410002\
+Q0\x00Bt~r.\x97\xbeg\xae\x81\x82K>\
+W \x17@\x80\x01\x00\xdd\x16\x09s\x0aends\
+tream \x0aendobj\x0a\x0a3\
+1 0 obj\x0a\x0a<<\x0a/Col\
+orSpace /DeviceG\
+ray\x0a/Name /X\x0a/Su\
+btype /Image\x0a/He\
+ight 512\x0a/Filter\
+ /FlateDecode\x0a/T\
+ype /XObject\x0a/Wi\
+dth 512\x0a/Length \
+279\x0a/BitsPerComp\
+onent 8\x0a>>\x0astrea\
+m\x0aH\x89\xec\xc11\x01\x00\x00\x00\xc2\xa0\xfe\xa9\xe7\
+m\x07\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\xde\x04\x18\x00\x1f\x7f;\xc5\x0aendstr\
+eam \x0aendobj\x0a\x0a30 \
+0 obj\x0a\x0a<<\x0a/Alter\
+nate /DeviceRGB\x0a\
+/Filter /FlateDe\
+code\x0a/Length 257\
+4\x0a/N 3\x0a>>\x0astream\
+\x0aH\x89\x9c\x96yTSw\x16\xc7\x7fo\xc9\x9e\x90\
+\x95\xb0\xc3c\x0d[\x80\xb0\x06\x905la\x91\x1d\x04\
+Q\x08I\x08\x01\x12BH\xd8\x05AD\x05\x14ED\
+\x84\xaa\x952\xd6mtFOE\x9d.\xaec\xad\x0e\
+\xd6}\xea\xd2\x03\xf50\xea\xe88\xb4\x16\xd7\x8e\x9d\x17\
+8G\x9dNg\xa6\xd3\xef\x1f\xef\xf79\xf7w\xef\xef\
+\xdd\xdf\xbd\xf7\x9d\xf3\x00\xa0'\xa5\xaa\xb5\xd50\x0b\x00\
+\x8d\xd6\xa0\xcfJ\x8c\xc5\x16\x15\x14b\xa4\x09\x00\x03\x0a\
+ \x02\x11\x002y\xad.-;!\x07\xe0\x92\xc6K\
+\xb0Z\xdc\x09\xfc\x8b\x9e^\x07\x90i\xbd\x22L\xca\xc0\
+0\xf0\xff\x89-\xd7\xe9\x0d\x00@\x198\x07(\x94\xb5\
+r\x9c;q\xae\xaa7\xe8L\xf6\x19\x9cy\xa5\x95&\
+\x86Q\x13\xeb\xf1\x04q\xb64\xb1j\x9e\xbd\xe7|\xe6\
+9\xda\xc4\x0a\x8dV\x81\xb3)g\x9dB\xa30\xf1i\
+\x9cW\xd7\x19\x958#\xa98w\xd5\xa9\x95\xf58_\
+\xc5\xd9\xa5\xca\xa8Q\xe3\xfc\xdc\x14\xabQ\xcaj\x01@\
+\xe9&\xbbA)/\xc7\xd9\x0fg\xba>'K\x82\xf3\
+\x02\x00\xc8t\xd5;\x5c\xfa\x0e\x1b\x94\x0d\x06\xd3\xa5$\
+\xd5\xbaF\xbdZUn\xc0\xdc\xe5\x1e\x98(4T\x8c\
+%)\xeb\xab\x94\x06\x830C&\xaf\x94\xe9\x15\x98\xa4\
+Z\xa3\x93i\x1b\x01\x98\xbf\xf3\x9c8\xa6\xdabx\x91\
+\x83E\xa1\xc1\xc1B\x7f\x1f\xd1;\x85\xfa\xaf\x9b\xbfP\
+\xa6\xde\xce\xd3\x93\xcc\xb9\x9eA\xfc\x0bom?\xe7W\
+=\x0a\x80x\x16\xaf\xcd\xfa\xb7\xb6\xd2-\x00\x8c\xaf\x04\
+\xc0\xf2\xe6[\x9b\xcb\xfb\x000\xf1\xbe\x1d\xbe\xf8\xce}\
+\xf8\xa6y)7\x18ta\xbe\xbe\xf5\xf5\xf5>j\xa5\
+\xdc\xc7T\xd07\xfa\x9f\x0e\xbf@\xef\xbc\xcf\xc7t\xdc\
+\x9b\xf2`q\xca2\x99\xb1\xca\x80\x99\xea&\xaf\xae\xaa\
+6\xea\xb1Z\x9dL\xae\xc4\x84?\x1d\xe2_\x1d\xf8\xf3\
+yxg)\xcb\x94z\xa5\x16\x8f\xc8\xc3\xa7L\xadU\
+\xe1\xed\xd6*\xd4\x06u\xb5\x16Sk\xffS\x13\x7fe\
+\xd8O4?\xd7\xb8\xb8c\xaf\x01\xaf\xd8\x07\xb0.\xf2\
+\x00\xf2\xb7\x0b\x00\xe5\xd2\x00R\xb4\x0d\xdf\x81\xde\xf4-\
+\x95\x92\x072\xf05\xdf\xe1\xde\xfc\xdc\xcf\x09\xfa\xf7S\
+\xe1>\xd3\xa3V\xad\x9a\x8b\x93d\xe5`r\xa3\xben\
+~\xcf\xf4Y\x02\x02\xa0\x02&\xe0\x01+`\x0f\x9c\x81\
+;\x10\x02\x7f\x10\x02\xc2A4\x88\x07\xc9 \x1d\xe4\x80\
+\x02\xb0\x14\xc8A9\xd0\x00=\xa8\x07-\xa0\x1dt\x81\
+\x1e\xb0\x1el\x02\xc3`;\x18\x03\xbb\xc1~p\x10\x8c\
+\x83\x8f\xc1\x09\xf0Gp\x1e|\x09\xae\x81[`\x12L\
+\x83\x87`\x06<\x05\xaf \x08\x22A\x0c\x88\x0bYA\
+\x0e\x90+\xe4\x05\xf9Cb(\x12\x8a\x87R\xa1,\xa8\
+\x00*\x81T\x90\x162B-\xd0\x0a\xa8\x07\xea\x87\x86\
+\xa1\x1d\xd0n\xe8\xf7\xd0Q\xe8\x04t\x0e\xba\x04}\x05\
+MA\x0f\xa0\xef\xa0\x970\x02\xd3a\x1el\x07\xbb\xc1\
+\xbe\xb0\x18\x8e\x81S\xe0\x1cx\x09\xac\x82k\xe0&\xb8\
+\x13^\x07\x0f\xc1\xa3\xf0>\xf80|\x02>\x0f_\x83\
+'\xe1\x87\xf0,\x02\x10\x1a\xc2G\x1c\x11!\x22F$\
+H:R\x88\x94!z\xa4\x15\xe9F\x06\x91Qd?\
+r\x0c9\x8b\x5cA&\x91G\xc8\x0b\x94\x88rQ\x0c\
+\x15\xa2\xe1h\x12\x9a\x8b\xca\xd1\x1a\xb4\x15\xedE\x87\xd1\
+]\xe8a\xf44z\x05\x9dBg\xd0\xd7\x04\x06\xc1\x96\
+\xe0E\x08#H\x09\x8b\x08*B=\xa1\x8b0H\xd8\
+I\xf8\x88p\x86p\x8d0MxJ$\x12\xf9D\x01\
+1\x84\x98D, V\x10\x9b\x89\xbd\xc4\xad\xc4\x03\xc4\
+\xe3\xc4K\xc4\xbb\xc4Y\x12\x89dE\xf2\x22E\x90\xd2\
+I2\x92\x81\xd4E\xdaB\xdaG\xfa\x8ct\x994M\
+zN\xa6\x91\x1d\xc8\xfe\xe4\x04r!YK\xee \x0f\
+\x92\xf7\x90?%_&\xdf#\xbf\xa2\xb0(\xae\x940\
+J:EAi\xa4\xf4Q\xc6(\xc7(\x17)\xd3\x94\
+WT6U@\x8d\xa0\xe6P+\xa8\xed\xd4!\xea~\
+\xea\x19\xeam\xea\x13\x1a\x8d\xe6D\x0b\xa5e\xd2\xd4\xb4\
+\xe5\xb4!\xda\xefh\x9f\xd3\xa6h/\xe8\x1c\xba']\
+B/\xa2\x1b\xe9\xeb\xe8\x1f\xd2\x8f\xd3\xbf\xa2?a0\
+\x18n\x8chF!\xc3\xc0X\xc7\xd8\xcd8\xc5\xf8\x9a\
+\xf1\xdc\x8ck\xe6c&5S\x98\xb5\x99\x8d\x98\x1d6\
+\xbbl\xf6\x98Ia\xba2c\x98K\x99M\xccA\xe6\
+!\xe6E\xe6#\x16\x85\xe5\xc6\x92\xb0d\xacV\xd6\x08\
+\xeb(\xeb\x06k\x96\xcde\x8b\xd8\xe9l\x0d\xbb\x97\xbd\
+\x87}\x8e}\x9fC\xe2\xb8q\xe29\x0aN'\xe7\x03\
+\xce)\xce].\xc2u\xe6J\xb8r\xee\x0a\xee\x18\xf7\
+\x0cw\x9aG\xe4\x09xR^\x05\xaf\x87\xf7[\xde\x04\
+o\xc6\x9cc\x1eh\x9eg\xde`>b\xfe\x89\xf9$\
+\x1f\xe1\xbb\xf1\xa5\xfc*~\x1f\xff \xff:\xff\xa5\x85\
+\x9dE\x8c\x85\xd2b\x8d\xc5~\x8b\xcb\x16\xcf,m,\
+\xa3-\x95\x96\xdd\x96\x07,\xafY\xbe\xb4\xc2\xac\xe2\xad\
+*\xad6X\x8d[\xdd\xb1F\xad=\xad3\xad\xeb\xad\
+\xb7Y\x9f\xb1~d\xc3\xb3\x09\xb7\x91\xdbt\xdb\x1c\xb4\
+\xb9i\x0b\xdbz\xdaf\xd96\xdb~`{\xc1v\xd6\
+\xce\xde.\xd1Ng\xb7\xc5\xee\x94\xdd#{\xbe}\xb4\
+}\x85\xfd\x80\xfd\xa7\xf6\x0f\x1c\xb8\x0e\x91\x0ej\x87\x01\
+\x87\xcf\x1c\xfe\x8a\x99c1X\x156\x84\x9d\xc6f\x1c\
+m\x1d\x93\x1c\x8d\x8e;\x1c'\x1c_9\x09\x9cr\x9d\
+:\x9c\x0e8\xddq\xa6:\x8b\x9d\xcb\x9c\x07\x9cO:\
+\xcf\xb88\xb8\xa4\xb9\xb4\xb8\xecu\xb9\xe9Jq\x15\xbb\
+\x96\xbbnv=\xeb\xfa\xccM\xe0\x96\xef\xb6\xcam\xdc\
+\xed\xbe\xc0R \x154\x09\xf6\x0an\xbb3\xdc\xa3\xdc\
+k\xdcG\xdd\xafz\x10=\xc4\x1e\x95\x1e[=\xbe\xf4\
+\x84=\x83<\xcb=G</z\xc1^\xc1^j\xaf\
+\xad^\x97\xbc\x09\xde\xa1\xdeZ\xefQ\xef\x1bB\xba0\
+FX'\xdc+\x9c\xf2\xe1\xfb\xa4\xfat\xf8\x8c\xfb<\
+\xf6u\xf1-\xf4\xdd\xe0{\xd6\xf7\xb5_\x90_\x95\xdf\
+\x98\xdf-\x11G\x94,\xea\x10\x1d\x13}\xe7\xef\xe9/\
+\xf7\x1f\xf1\xbf\x1a\xc0\x08H\x08h\x0b8\x12\xf0m\xa0\
+W\xa02p[\xe0\x9f\x83\xb8AiA\xab\x82N\x06\
+\xfd#8$X\x1f\xbc?\xf8A\x88KHI\xc8{\
+!7\xc4<q\x86\xb8W\xfcy(!46\xb4-\
+\xf4\xe3\xd0\x17a\xc1a\x86\xb0\x83a\x7f\x0f\x17\x86W\
+\x86\xef\x09\xbf\xbf@\xb0@\xb9`l\xc1\xdd\x08\xa7\x08\
+Y\xc4\x8e\x88\xc9H,\xb2$\xf2\xfd\xc8\xc9(\xc7(\
+Y\xd4h\xd47\xd1\xce\xd1\x8a\xe8\x9d\xd1\xf7b<b\
+*b\xf6\xc5<\x8e\xf5\x8b\xd5\xc7~\x14\xfbL\x12&\
+Y&9\x1e\x87\xc4%\xc6u\xc7M\xc4s\xe2s\xe3\
+\x87\xe3\xbfNpJP%\xecM\x98I\x0cJlN\
+<\x9eDHJI\xda\x90tCj'\x95KwK\
+g\x92C\x92\x97%\x9fN\xa1\xa7d\xa7\x0c\xa7|\x93\
+\xea\x99\xaaO=\x96\x06\xa7%\xa7mL\xbb\xbd\xd0u\
+\xa1v\xe1x:H\x97\xa6oL\xbf\x93!\xc8\xa8\xc9\
+\xf8C&13#s$\xf3/Y\xa2\xac\x96\xac\xb3\
+\xd9\xdc\xec\xe2\xec=\xd9Osbs\xfarn\xe5\xba\
+\xe7\x1asO\xe61\xf3\x8a\xf2v\xe7=\xcb\x8f\xcb\xef\
+\xcf\x9f\x5c\xe4\xbbh\xd9\xa2\xf3\x05\xd6\x05\xea\x82#\x85\
+\xa4\xc2\xbc\xc2\x9d\x85\xb3\x8b\xe3\x17oZ<]\x14T\
+\xd4Ut}\x89`I\xc3\x92sK\xad\x97V-\xfd\
+\xa4\x98Y,+>TB(\xc9/\xd9S\xf2\x83,\
+]6*\x9b-\x95\x96\xbeW:#\x97\xc87\xcb\x1f\
+*\xa2\x15\x03\x8a\x07\xca\x08e\xbf\xf2^YDY\x7f\
+\xd9}U\x84j\xa3\xeaAyT\xf9`\xf9#\xb5D\
+=\xac\xfe\xb6\x22\xa9b{\xc5\xb3\xca\xf4\xca\x0f+\x7f\
+\xac\xca\xaf:\xa0!kJ4G\xb5\x1cm\xa5\xf6t\
+\xb5}uC\xf5%\x9d\x97\xaeK7Y\x13V\xb3\xa9\
+fF\x9f\xa2\xdfY\x0b\xd5.\xa9=b\xe0\xe1?S\
+\x17\x8c\xee\xc6\x95\xc6\xa9\xba\xc8\xba\x91\xba\xe7\xf5y\xf5\
+\x87\x1a\xd8\x0d\xda\x86\x0b\x8d\x9e\x8dk\x1a\xef5%4\
+\xfd\xa6\x19m\x967\x9flqlio\x99Z\x16\xb3\
+lG+\xd4Z\xdaz\xb2\xcd\xb9\xad\xb3mzy\xe2\
+\xf2]\xed\xd4\xf6\xca\xf6?u\xf8u\xf4w|\xbf\x22\
+\x7f\xc5\xb1N\xbb\xce\xe5\x9dwW&\xae\xdc\xdbe\xd6\
+\xa5\xef\xba\xb1*|\xd5\xf6\xd5\xe8j\xf5\xea\x895\x01\
+k\xb6\xacy\xdd\xad\xe8\xfe\xa2\xc7\xafg\xb0\xe7\x87^\
+y\xef\x17kEk\x87\xd6\xfe\xb8\xael\xddD_p\
+\xdf\xb6\xf5\xc4\xf5\xda\xf5\xd77Dm\xd8\xd5\xcf\xeeo\
+\xea\xbf\xbb1m\xe3\xe1\x01l\xa0{\xe0\xfbM\xc5\x9b\
+\xce\x0d\x06\x0en\xdfL\xddl\xdc<9\x94\xfaO\x00\
+\xa4\x01[\xfe\x98\xb8\x99$\x99\x90\x99\xfc\x9ah\x9a\xd5\
+\x9bB\x9b\xaf\x9c\x1c\x9c\x89\x9c\xf7\x9dd\x9d\xd2\x9e@\
+\x9e\xae\x9f\x1d\x9f\x8b\x9f\xfa\xa0i\xa0\xd8\xa1G\xa1\xb6\
+\xa2&\xa2\x96\xa3\x06\xa3v\xa3\xe6\xa4V\xa4\xc7\xa58\
+\xa5\xa9\xa6\x1a\xa6\x8b\xa6\xfd\xa7n\xa7\xe0\xa8R\xa8\xc4\
+\xa97\xa9\xa9\xaa\x1c\xaa\x8f\xab\x02\xabu\xab\xe9\xac\x5c\
+\xac\xd0\xadD\xad\xb8\xae-\xae\xa1\xaf\x16\xaf\x8b\xb0\x00\
+\xb0u\xb0\xea\xb1`\xb1\xd6\xb2K\xb2\xc2\xb38\xb3\xae\
+\xb4%\xb4\x9c\xb5\x13\xb5\x8a\xb6\x01\xb6y\xb6\xf0\xb7h\
+\xb7\xe0\xb8Y\xb8\xd1\xb9J\xb9\xc2\xba;\xba\xb5\xbb.\
+\xbb\xa7\xbc!\xbc\x9b\xbd\x15\xbd\x8f\xbe\x0a\xbe\x84\xbe\xff\
+\xbfz\xbf\xf5\xc0p\xc0\xec\xc1g\xc1\xe3\xc2_\xc2\xdb\
+\xc3X\xc3\xd4\xc4Q\xc4\xce\xc5K\xc5\xc8\xc6F\xc6\xc3\
+\xc7A\xc7\xbf\xc8=\xc8\xbc\xc9:\xc9\xb9\xca8\xca\xb7\
+\xcb6\xcb\xb6\xcc5\xcc\xb5\xcd5\xcd\xb5\xce6\xce\xb6\
+\xcf7\xcf\xb8\xd09\xd0\xba\xd1<\xd1\xbe\xd2?\xd2\xc1\
+\xd3D\xd3\xc6\xd4I\xd4\xcb\xd5N\xd5\xd1\xd6U\xd6\xd8\
+\xd7\x5c\xd7\xe0\xd8d\xd8\xe8\xd9l\xd9\xf1\xdav\xda\xfb\
+\xdb\x80\xdc\x05\xdc\x8a\xdd\x10\xdd\x96\xde\x1c\xde\xa2\xdf)\
+\xdf\xaf\xe06\xe0\xbd\xe1D\xe1\xcc\xe2S\xe2\xdb\xe3c\
+\xe3\xeb\xe4s\xe4\xfc\xe5\x84\xe6\x0d\xe6\x96\xe7\x1f\xe7\xa9\
+\xe82\xe8\xbc\xe9F\xe9\xd0\xea[\xea\xe5\xebp\xeb\xfb\
+\xec\x86\xed\x11\xed\x9c\xee(\xee\xb4\xef@\xef\xcc\xf0X\
+\xf0\xe5\xf1r\xf1\xff\xf2\x8c\xf3\x19\xf3\xa7\xf44\xf4\xc2\
+\xf5P\xf5\xde\xf6m\xf6\xfb\xf7\x8a\xf8\x19\xf8\xa8\xf98\
+\xf9\xc7\xfaW\xfa\xe7\xfbw\xfc\x07\xfc\x98\xfd)\xfd\xba\
+\xfeK\xfe\xdc\xffm\xff\xff\x02\x0c\x00\xf7\x84\xf3\xfb\x0a\
+endstream \x0aendob\
+j\x0a\x0a29 0 obj\x0a\x0a<<\x0a\
+/ColorSpace 28 0\
+ R\x0a/Name /X\x0a/Sub\
+type /Image\x0a/Hei\
+ght 512\x0a/Filter \
+/DCTDecode\x0a/Type\
+ /XObject\x0a/Width\
+ 512\x0a/SMask 31 0\
+ R\x0a/Length 14366\
+\x0a/BitsPerCompone\
+nt 8\x0a>>\x0astream\x0a\xff\
+\xd8\xff\xee\x00\x0eAdobe\x00d\x80\x00\x00\x00\
+\x01\xff\xdb\x00\x84\x00\x0c\x08\x08\x08\x08\x08\x0c\x08\x08\x0c\
+\x10\x0b\x0b\x0b\x10\x14\x0e\x0d\x0d\x0e\x14\x18\x12\x13\x13\x13\
+\x12\x18\x14\x12\x14\x14\x14\x14\x12\x14\x14\x1b\x1e\x1e\x1e\x1b\
+\x14$''''$25552;;;;\
+;;;;;;\x01\x0d\x0a\x0a\x0c\x0a\x0c\x0e\x0c\x0c\
+\x0e\x11\x0e\x0e\x0e\x11\x14\x0f\x0f\x0f\x0f\x14\x14\x10\x11\x12\
+\x11\x10\x14\x14\x13\x14\x15\x15\x14\x13\x14\x15\x15\x15\x15\x15\
+\x15\x15\x1a\x1a\x1a\x1a\x1a\x1a\x1e\x1e\x1e\x1e\x1e###\
+#''',,,\xff\xc0\x00\x11\x08\x02\x00\x02\x00\
+\x03\x01\x22\x00\x02\x11\x01\x03\x11\x01\xff\xc4\x01B\x00\x00\
+\x01\x05\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x03\
+\x00\x01\x02\x04\x05\x06\x07\x08\x09\x0a\x0b\x01\x00\x01\x05\x01\
+\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x02\x03\
+\x04\x05\x06\x07\x08\x09\x0a\x0b\x10\x00\x01\x04\x01\x03\x02\x04\
+\x02\x05\x07\x06\x08\x05\x03\x0c3\x01\x00\x02\x11\x03\x04!\
+\x121\x05AQa\x13\x22q\x812\x06\x14\x91\xa1\xb1\
+B#$\x15R\xc1b34r\x82\xd1C\x07%\x92\
+S\xf0\xe1\xf1cs5\x16\xa2\xb2\x83&D\x93Td\
+E\xc2\xa3t6\x17\xd2U\xe2e\xf2\xb3\x84\xc3\xd3u\
+\xe3\xf3F'\x94\xa4\x85\xb4\x95\xc4\xd4\xe4\xf4\xa5\xb5\xc5\
+\xd5\xe5\xf5Vfv\x86\x96\xa6\xb6\xc6\xd6\xe6\xf67G\
+Wgw\x87\x97\xa7\xb7\xc7\xd7\xe7\xf7\x11\x00\x02\x02\x01\
+\x02\x04\x04\x03\x04\x05\x06\x07\x07\x06\x02;\x01\x00\x02\x11\
+\x03!1\x12\x04AQaq\x22\x13\x052\x81\x91\x14\
+\xa1\xb1B#\xc1R\xd1\xf03$b\xe1r\x82\x92C\
+S\x15cs4\xf1%\x06\x16\xa2\xb2\x83\x07&5\xc2\
+\xd2D\x93T\xa3\x17dEU6te\xe2\xf2\xb3\x84\
+\xc3\xd3u\xe3\xf3F\x94\xa4\x85\xb4\x95\xc4\xd4\xe4\xf4\xa5\
+\xb5\xc5\xd5\xe5\xf5Vfv\x86\x96\xa6\xb6\xc6\xd6\xe6\xf6\
+'7GWgw\x87\x97\xa7\xb7\xc7\xd7\xe7\xf7\xff\xda\
+\x00\x0c\x03\x01\x00\x02\x11\x03\x11\x00?\x00\xf5T\x92I\
+%)$\x92IJI$\x92R\x92I$\x94\xa4\x92\
+I%)%\x1b,\xae\xa6\x1b-pc\x1a$\xb8\xe8\
+\x02\xe7\xfa\x87\xd6W\x12j\xe9\xe3h\xe3\xd5p\xd4\xff\
+\x00U\xa7\xf8\xa8\xb3g\xc7\x80\x5c\xcf\x90\x1b\x95\xb2\x9c\
+a\xb9w\xae\xc8\xa3\x1d\xbb\xef\xb1\xb5\xb7\xc5\xc4\x0f\xca\
+\xb3\xae\xfa\xc9\xd3\xeb1^\xfbO\x8bD\x0f\xfaP\xb9\
+{m\xb6\xe7\x9b.y{\x8fw\x19?\x8a\x82\xa3\x93\
+\xe2S?$DG\x8e\xa7\xf80\xcb\x98'aOB\
+\xff\x00\xadM\xfc\xccb\x7f\xac\xf8\xfc\x8d*#\xeb[\
+\xbb\xe2\x8f\x95\x9f\xf9\x82\xc0IC\xf7\xdec\xf7\xff\x00\
+\x08\xff\x00\x05\x9e\xf4\xfb\xfe\x01\xe9k\xfa\xd3\x8a\x7f\x9d\
+\xa6\xc6\xfc!\xdf\xdc\xadW\xd7\xfa]\x9c\xdaXOg\
+\xb4\x8f\xc6\x08\x5c\x82I\xf1\xf8\x86q\xbf\x0c\xbc\xc7\xf0\
+\xa5\xc3<\xc7b\xf7Ufb]\xfc\xd5\xd5\xbf\xfa\xae\
+\x07\xf8\xa2\xae\x01\x16\xbc\x9c\x8a\x7f\x9a\xb5\xec\xfe\xab\x88\
+\xfc\x85K\x1f\x89\xfe\xf6?\xb0\xff\x00b\xe1\xccw\x8b\
+\xdd\xa4\xb8\xea\xba\xe7T\xabAqp\xf0x\x0e\xfcb\
+\x7f\x15j\xbf\xad\x19\x8d\xfev\xba\xdf\xf0\x96\xff\x00\x12\
+\xa6\x8f\xc4p\x9d\xf8\xa3\xe6?\x82\xe1\x9e\x07\xb8zt\
+\x96\x1d_Zh?\xcfP\xf6\xff\x00P\x87~]\x8a\
+\xd5\x7fX:]\x9c\xd8X|\x1e\xd2?$\xa9c\xcd\
+`\x96\xd9#\xf5\xf4\xfek\x86H\x1f\xd2\x1f\x93\xa4\x92\
+\xaf^~\x15\xd1\xe9\xdf[\x89\xed\xb8O\xdc\x8e\xa5\x12\
+\x12\xd4\x10|\x97\x82\x0e\xcb\xa4\x92H\xa9I$\x92J\
+RI$\x92\x94\x92I$\xa5$\x92I)I$\x92\
+JRI$\x92\x94\x92I$\xa5$\x92I)I$\
+\x92JRI$\x92\x94\x92I$\xa5$\x92I)I\
+$\x92JRI$\x92\x94\x92I$\xa5$\x92I)\
+I$\x92JRI$\x92\x94\x92I$\xa5$\x92I\
+)I$\x92JRI$\x92\x94\x87}\xf5cT\xeb\
+\xeev\xd60I(\x8b\x92\xeb\x9dL\xe7^i\xa8\xfe\
+\x82\xa3\x0d\x8f\xce?\xbd\xfd\xca\x1eg8\xe5\xe1\xc5\xbc\
+\x8e\x91\x1e?\xc0,\xc9>\x01}z\x22\xea}V\xee\
+\xa3f\xb2\xcaZ}\x95\xff\x00\x17y\xaa)$\xb1\xa7\
+9d\x91\x94\x8d\x92\xd5$\xc8\xd9\xd4\xa9$\x92MB\
+\x92I$\x94\xa4\x92I%)$\x92IJI$\x92\
+R\x92I$\x94\xa4J\xef\xbe\x9f\xe6l}\x7f\xd4q\
+o\xe4CI\x10H\xd4h\xa6\xf5}k\xa9\xd5\xc5\xee\
+?\xd6\x87\x7f\xd5\x02\xadW\xf5\x9f9\x9f\xce2\xbb\x07\
+\xc0\xb4\xfe\x06?\x05\x8e\x92\x92<\xc6h\xed\x92_m\
+\xfek\x86I\x8d\xa4^\x8a\xbf\xadU\x1f\xe7q\xdc\xdf\
+\xea\xb8;\xf2\x86\xabu\xfdb\xe9\x8f\xfaNu\x7f\xd6\
+i\xff\x00\xbe\xee\x5c\x92JX\xfcC<w\x22^c\
+\xf8R\xe1\x9ec\xb1{z\xba\x8e\x05\xdf\xcd\xe4V\xe3\
+\xe1\xb8\x03\xf7\x15`\x10\xe1-2<B\xe0\x14\xd9m\
+\xb5\x99\xad\xeea\xf1i#\xf2)\xa3\xf13\xfaX\xc1\
+\xf24\xbcs\x1d\xe2\xf7\xa9..\xae\xb1\xd4\xea\xfa9\
+\x0f>O\x87\xff\x00\xd5\x82\xad\xd7\xf5\x9b\xa83\xe9\xb6\
+\xbb> \x8f\xc8T\xb1\xf8\x8e\x13\xb8\x94~\x97\xfbW\
+\x0c\xf1;\xd8z\x94\x96\x05\x7fZ\x9b\xfe\x1b\x1c\x8f\x12\
+\xc7O\xe0@\xfc\xaa\xdd\x7fX\xfak\xfe\x91}g\xf9\
+M\xff\x00\xc8\xeeR\xc7\x9b\xc1-\xb2\x01\xe7\xe9\xfc\xd7\
+\x0c\xb0?\xa4?'Q%V\xbe\xa9\xd3\xad\xfa\x19\x15\
+\xfc\x1cv\xff\x00\xd5B\xb2\xd75\xc2ZA\x07\xb8\xd4\
+)\xa38\xcb\xe5\x90>F\xd7\x02\x0e\xc6\xd7I$\x91\
+J\x92I$\x94\xa4\x92I%)$\x92IJI$\
+\x92R\x92I$\x94\xa4\x92I%)$\x92IJI\
+$\x92R\x92I$\x94\xa4\x92I%)$\x92IJ\
+I$\x92R\x92I$\x94\xa4\x92I%)$\x92I\
+JI$\x92S\x97\xd7\xf3\x8e&\x19\xad\x86,\xbeX\
+<\x9b\xf9\xc5rkK\xaf\xe4\x9c\x8e\xa2\xf6\x83\xed\xa4\
+zm\xf8\x8d]\xf8\xac\xd5\x8d\xcee\xf7sK\xb4}\
+#\xe9\xbf\xe2\xd4\xcb.)\x1e\xc3E$\x92J\xba\xc5\
+$\x92I)I$\x92JRI$\x92\x94\x92I$\
+\xa5$\x92I)I$\x92JRI$\x92\x94\x92I\
+$\xa5$\x92I)I$\x92JRI$\x92\x94\x92\
+I$\xa5)1\xef\xac\xee\xad\xc5\x87\xc5\xa4\x83\xf8(\
+\xa4\x8a\x9bu\xf5n\xa3W\xd1\xc8~\x9f\xbcw\x7f\xd5\
+J\xb5W\xd6N\xa2\xcf\xa7\xe9\xd9\xfdf\xc1\xff\x00\xa2\
+Z\xb2\x92RG>Xm\x92C\xea\xb8NCi\x17\
+\xa0\xaf\xebW\xfal\x7f\x9b\x1d\xfd\xe1Z\xaf\xeb/N\
+~\x8f\x16W\xe6[#\xfe\x89+\x95IK\x1e\x7f<\
+w\x90\x97\x98\xfe\x14\xb8f\x98\xebokWV\xe9\xb7\
+}\x0c\x86I\xec\xe3\xb4\xfd\xce\x85e\x962\xc1,p\
+p\xf1\x06W\x02\x9d\xaesL\xb4\x90|\xb4R\xc7\xe2\
+r\xfd,`\xf9\x1a\xfe+\x870z\xc5\xef\xd2\x5cM\
+}O\xa8S\xfc\xdeE\x83\xc8\x9d\xc3\xeet\xabU\xfd\
+c\xeaL\xfaE\x96\x7fY\xb1\xff\x00S\x0ah\xfcG\
+\x11\xf9\xa3!\xf6\x15\xe3\x98\x8fPC\xd6$\xb9\xda\xfe\
+\xb5<iv8>lt~\x04\x1f\xca\xad\xd7\xf5\x9b\
+\xa7\xbf\xf9\xc6\xd9_\xc5\xa0\x8f\xfa$\xa9c\xce`\x97\
+\xe9\x81\xe7c\xf3\x5c2\xc0\xf5u\xd2T\xab\xeb\x1d2\
+\xdf\xa3\x90\xc1\xfdio\xfdT+U\xdbU\xa3uO\
+k\xc7\x8bH#\xf0R\xc6p\x9f\xcb!/#k\x81\
+\x07b\x0b4\x92I9*I$\x92R\x92I$\x94\
+\xa4\x92I%)$\x92IJI$\x92R\x92I$\
+\x94\xa4\x92I%)$\x92IJI$\x92R\x939\
+\xc1\x8d.:\x00$\xfc\x93\xaa\xddE\xdb:~K\x87\
+\x22\xa7\xc7\xc4\xb4\xa1#\xc3\x12{\x02PM\x02^*\
+\xcb\x0d\xb6:\xd7r\xf2\x5c~fTRI`n\xd2\
+RI$\x82\x94\x92I$\xa5$\x92I)I$\x92\
+JRI$\x92\x94\x92I$\xa5$\x92I)I$\
+\x92JRI$\x92\x94\x92I$\xa5$\x92I)I\
+$\x92JRI$\x92\x94\x92I$\xa5$\x92I)\
+I$\x92JRI$\x92\x94\x92I$\xa5$\x92I\
+)I\xc1-;\x9a`\xf8\x8d\x0ad\x92Sf\xbe\xa3\
+\x9fW\xf3y\x16\x0f-\xc4\xfeUj\xbf\xac=N\xbf\
+\xa4\xf6\xd8<\x1e\xd1\xff\x00}\xda\xb3\x12RG6X\
+|\xb3\x90\xfa\x94\x89\xc8lK\xbb_\xd6\xabG\xf3\xd8\
+\xed>lq\x1f\x81\x05[\xaf\xeb>\x13\xbf\x9c\xae\xc6\
+\x1f\x80p\xfc\xab\x97IK\x1e{<\x7fJ\xfc\xc0^\
+3Lu\xb7\xb2\xaf\xadt\xbb~\x8eC[\xe4\xf9g\
+\xfdP\x0a\xd5w\xd1o\xf3V5\xff\x00\xd5 \xfeE\
+\xc1\xa7\x1a\x1d\x14\xd1\xf8\x94\xc7\xcd\x08\x9f\x22G\xf1\x5c\
+9\x83\xd4\x07\xbfIW\xe9\xc4\x9e\x9f\x8cO\xfa\x1a\xff\
+\x00\xeaB\xb0\xb4bx\x80=\xc5\xb6\x01\xb1jI$\
+\x91R\x92I$\x94\xa4\x92I%)$\x92IJI\
+$\x92R\x92I$\x94\xa5S\xab\x7f\xc9\xb9?\xf1e\
+[U:\xb7\xfc\x9b\x93\xff\x00\x16S2\xff\x007?\
+\xee\x9f\xc9\x12\xf9O\x91x\xb4\xc9\xd3,\x16\x92\x92I\
+$\x94\xa4\x92I%)$\x92IJI$\x92R\x92\
+I$\x94\xa4\x92I%)$\x92IJI$\x92R\
+\x92I$\x94\xa4\x92I%)$\x92IJI$\x92\
+R\x92I$\x94\xa4\x92I%)$\x92IJI$\
+\x92R\x92I$\x94\xa4\x92I%)$\x92IJI\
+$\x92R\x92I$\x94\xa4\x92I%)8L\x9c$\
+\xa7\xb6\xe9\xdf\xf2~/\xfcM\x7f\xf5!YU\xbaw\
+\xfc\x9f\x8b\xff\x00\x13_\xfdHVV\xfe?\x92?\xdd\
+\x1f\x93v;\x0f%$\x92I\xc9RI$\x92\x94\x92\
+I$\xa5$\x92I)I$\x92JRI$\x92\x94\
+\xaauo\xf97'\xfe,\xabj\xa7V\xff\x00\x93r\
+\x7f\xe2\xcaf_\xe6\xe7\xfd\xd3\xf9\x22_)\xf2/\x16\
+\x99:e\x82\xd2RI$\x92\x94\x92I$\xa5$\x92\
+I)I$\x92JRI$\x92\x94\x92I$\xa5$\
+\x92I)I$\x92JRI$\x92\x94\x92I$\xa5\
+$\x92I)I$\x92JRI$\x92\x94\x92I$\
+\xa5$\x92I)I$\x92JRI$\x92\x94\x92I\
+$\xa5$\x92I)I$\x92JRI$\x92\x94\x92\
+I$\xa5'\x09\x93\x84\x94\xf6\xdd;\xfeO\xc5\xff\x00\
+\x89\xaf\xfe\xa4+*\xb7N\xff\x00\x93\xf1\x7f\xe2k\xff\
+\x00\xa9\x0a\xca\xdf\xc7\xf2G\xfb\xa3\xf2n\xc7a\xe4\xa4\
+\x92I9*I$\x92R\x92I$\x94\xa4\x92I%\
+)$\x92IJI$\x92R\x95N\xad\xff\x00&\xe4\
+\xff\x00\xc5\x95mT\xea\xdf\xf2nO\xfcYL\xcb\xfc\
+\xdc\xff\x00\xba\x7f$K\xe5>E\xe2\xd3'L\xb0Z\
+JI$\x92R\x92I$\x94\xa4\x92I%)$\x92\
+IJI$\x92R\x92N\x01q\x0dh\x92t\x00w\
+[\xbd7\xea\xe1p\x17u\x09\x03\x91H:\xff\x00h\
+\xff\x00\x05&,3\xcd.\x18\x0b\xeez\x05\xd1\x81\x99\
+\xa0\xe3c\xe2\xe4e?f=n\xb0\xf7\x81\xa0\xf8\x9e\
+\xcb[\x1b\xea\xbeC\xc0vU\xad\xab\xf9-\x1b\x8f\xdf\
+\xa0\xfc\xab\xa2\xaa\xaa\xa8`\xae\x96\x860p\xd6\x88\x0a\
+kC\x17\xc3\xb1\xc7\x5c\x84\xcc\xfd\x83\xf8\xb3\xc7\x04G\
+\xcd\xab\x95W\xd5\xbe\x9d_\xf3\x81\xf6\x9f\xe5:\x07\xfd\
+\x0d\xaa\xcb:GLg\x18\xd5\x9f\xeb\x0d\xdf\xf5R\xae\
+$\xac\xc7\x06(\xed\x8e?`^!\x11\xb4C[\xf6\
+oO\xff\x00\xb8\xd5\x7f\x98\xdf\xeePwH\xe9\x8f\xe7\
+\x1a\xb1\xfdQ\xb7\xfe\xa6\x15\xc4\x918\xb1\x9d\xe1\x1f\xb0\
+'\x86=\x87\xd8\xe5\xd9\xf5w\xa6?\xe8\xb5\xf5\xff\x00\
+U\xc4\xff\x00\xd5\xeeT\xee\xfa\xac9\xc7\xbf\xe4\xf6\xff\
+\x00\x16\xff\x00r\xe8\x12Q\xcb\x94\xc1=\xf1\x81\xfd\xdf\
+O\xe4\xb4\xe2\x81\xfd\x11\xf9<nOE\xea8\xd2]\
+Q{G\xe7W\xee\x1f\xdf\xf8*+\xd0\x15<\xce\x95\
+\x85\x9c\x09\xba\xb8y\xff\x00\x08\xdd\x1d\xf7\xf7\xf9\xaa\xd9\
+~\x1a7\xc5/\xa4\xbf\x8b\x1c\xb9\x7f\xdd?k\xc5\xa4\
+\xb4\xfa\x87B\xca\xc2\x06\xca\xff\x00MH\xfc\xe6\x8d@\
+\xfeSVb\xa3\x93\x1c\xf1\x1e\x19\x83\x12\xc3(\x98\x9a\
+\x22\x94\x92I&!I$\x92JRI$\x92\x94\x92\
+I$\xa5$\x92I)I$\x92JRI$\x92\x94\
+\x92I$\xa5$\x92I)I$\x92JRp\x998\
+IOm\xd3\xbf\xe4\xfc_\xf8\x9a\xff\x00\xeaB\xb2\xab\
+t\xef\xf9?\x17\xfe&\xbf\xfa\x90\xac\xad\xfc\x7f$\x7f\
+\xba?&\xecv\x1eJI$\x93\x92\xa4\x92I%)\
+$\x92IJI$\x92R\x92I$\x94\xa4\x92I%\
+)T\xea\xdf\xf2nO\xfcYV\xd5N\xad\xff\x00&\
+\xe4\xff\x00\xc5\x94\xcc\xbf\xcd\xcf\xfb\xa7\xf2D\xbeS\xe4\
+^-2t\xcb\x05\xa4\xa4\x92I%)$\x92IJ\
+I$\x92R\x92I$\x94\xa5&1\xd6<1\x80\xb9\
+\xce0\x00\xe4\x92\xa2\xban\x81\xd2\x86=c6\xf1\xfa\
+W\x8f`?\x9a\xd3\xdf\xe2T\xbc\xbe\x09g\x98\x88\xd0\
+~\x91\xec\x17B\x06f\xbe\xd4\xdd#\xa3W\x82\xd1u\
+\xe0; \xf7\xe43\xc9\xbe~kQ$\x96\xce<q\
+\xc5\x11\x18\x0a\x01\xb7\x18\x88\x8a\x0aI$\x93\xd2\xa4\x92\
+I%)$\x92IJI$\x92R\x92I$\x94\xa5\
+\x8b\xd5\xba\x03/\x0e\xc8\xc2\x01\x96\xf2\xea\xc6\x8dw\xc3\
+\xc0\xad\xa4\x932\xe2\x86h\xf0\xcc_\xe6<\x91(\x89\
+\x8a/\x00\xe6\xb9\x8e-p-sL\x10t \x84\xcb\
+\xa9\xeb}\x1ce\xb0\xe5c7\xf4\xed\x1e\xe0?<\x0f\
+\xe2\xb9u\x8f\xcc`\x96\x09\xf0\x9dA\xf9e\xdd\xa98\
+\x18\x1a?E\x92I%\x0a\xd5$\x92I)I$\x92\
+J]\xad.pku.0\x07\x99]I\xfa\xb5\xd3\
+\xcbF\xb6\x02\x04\x12\x1d\xc9\xf9\x82\xb0\xba=>\xbfR\
+\xa1\x9d\x83\xb7\x9f\xec\xfb\xbf\x82\xec\xd6\x87!\x82\x19#\
+9N\x22Z\x80/\xc3\x7f\xcd\x9b\x04\x04\x81$[\x86\
+\xff\x00\xaa\xd8\xe7\xe8^\xf6\xfc@?\xdc\x82\xff\x00\xaa\
+\xb6\x8f\xe6\xf2\x1a|\x9c\xc2?#\x8a\xe8\x92VO%\
+\xcb\x9f\xd0\xaf\x22\x7f\x8b)\xc3\x03\xd1\xe3\xb3\xfa6O\
+N\xa8]s\x98\xe6\xb9\xc1\x83i3$\x13\xdd\xa3\xc1\
+P]G\xd6\x7f\xe8\x15\xff\x00\xc77\xfe\xa5\xeb\x97Y\
+\xbc\xde(\xe1\xcaa\x0d\xa85\xf2\xc4FT\x14\x92I\
+(\x16)$\x92IJI$\x92R\x93\x84\xc9\xc2J\
+{n\x9d\xff\x00'\xe2\xff\x00\xc4\xd7\xff\x00R\x15\x95\
+[\xa7\x7f\xc9\xf8\xbf\xf15\xff\x00\xd4\x85eo\xe3\xf9\
+#\xfd\xd1\xf97c\xb0\xf2RI$\x9c\x95$\x92I\
+)I$\x92JRI$\x92\x94\x92I$\xa5$\x92\
+I)J\xa7V\xff\x00\x93r\x7f\xe2\xca\xb6\xaauo\
+\xf97'\xfe,\xa6e\xfen\x7f\xdd?\x92%\xf2\x9f\
+\x22\xf1i\x93\xa6X-%$\x92I)I$\x92J\
+RI$\x92\x94\x92I\xc0$\xc0\xd4\x9e\x02Jt\xba\
+\x17O\xfbnW\xa9`\x9ai\x87:x'\xf3Z\xba\
+\xd5S\xa5\xe1\x0c\x1c6S\xf9\xe7\xdda\xf1q\xe7\xee\
+\xe1[[\x5c\xa6\x0fg\x18\x07\xe6\x96\xb2\xfe\x1fF\xde\
+(pG\xc4\xee\xa4\x92IN\xbdI$\x92JRI\
+,\xde\xaf\xd5\xd9\xd3\x99\xe9\xb0\x07\xde\xf1-of\x8f\
+\xdernL\x91\xc5\x13)\x9a\x01\x12\x90\x88\xb2\xdf\xb2\
+\xda\xean\xfb^\xd64~s\x88\x03\xf1UOX\xe9\
+\x8d0r\x19\xf2\x93\xfc\x17#\x91\x95\x91\x97g\xab\x90\
+\xf2\xf7v\x9e\x07\xc0vBY\xf3\xf8\x94\xaf\xd1\x01_\
+\xd6\xfe\xc6\x03\xcc\x1e\x83\xed{\x9a3q2LQs\
+\x1e|\x01\x13\xf7r\x8e\xb8\x09#Q\xdb\x85\xaf\xd3:\
+\xfd\xd8\xee\x15f\x13mGM\xe7W7\xfb\xc2\x93\x0f\
+\xc4c#\xc3\x92<7\xfaCe\xd1\xce\x0e\x92\x15\xe2\
+\xf5\x09(\xb1\xed\xb1\xa1\xec!\xcdp\x90F\xa0\x82\xa4\
+\xaf3)$\x92IJ\x5c\xd7\xd6.\x98)\x7f\xdb\xa9\
+\x1e\xc7\x98\xb4\x0e\xce?\x9d\xf3]*\x85\xd4\xd7}O\
+\xa6\xd1,x-p\xf8\xa8\xb9\x8c#>3\x13\xbe\xf1\
+=\x8a\xd9\xc0N5\xf6<\x12H\xd9\x98\xcf\xc3\xc9\xb3\
+\x1d\xfa\x96\x18\x07\xc4v?r\x0a\xc4 \xc4\x90t \
+\xd1i\x91Z\x15$\x92H)I$\x92Jw>\xab\
+S\xbb\x22\xec\x83\xf9\x8c\x0c\x1f\x17\x19?\xf5+\xa4Y\
+_V\xe9\xf4\xfa\x7f\xa8y\xb9\xe5\xdf!\xed\xfe\x0bU\
+mrp\xe0\xc1\x0f\x11\xc5\xf6\xff\x00co\x10\xa8\x0f\
+\x1dT\x92I)\xd7\xb8\xff\x00Y\xff\x00\xa0W\xff\x00\
+\x1c\xdf\xfa\x97\xae]u\x1fY\xff\x00\xa0W\xff\x00\x1c\
+\xdf\xfa\x97\xae]d|C\xf9\xf3\xe4\x1a\xb9\xfe\x7f\xa2\
+\x92I%U\x8dI$\x92JRI$\x92\x94\x9c&\
+N\x12S\xdbt\xef\xf9?\x17\xfe&\xbf\xfa\x90\xac\xaa\
+\xdd;\xfeO\xc5\xff\x00\x89\xaf\xfe\xa4++\x7f\x1f\xc9\
+\x1f\xee\x8f\xc9\xbb\x1d\x87\x92\x92I$\xe4\xa9$\x92I\
+JI$\x92R\x92I$\x94\xa4\x92I%)$\x92\
+IJU:\xb7\xfc\x9b\x93\xff\x00\x16U\xb5S\xab\x7f\
+\xc9\xb9?\xf1e3/\xf3s\xfe\xe9\xfc\x91/\x94\xf9\
+\x17\x8bL\x9d2\xc1i)$\x92IJI$\x92R\
+\x92I$\x94\xa5\xa5\xd0q>\xd5\x9e\xd78K)\x1e\
+\xa3\xbe#\xe8\x8f\xbdf\xae\xa7\xea\xd67\xa5\x84o#\
+\xdd{\xa4\x7fU\xba\x0f\xc6U\x8eO\x1f\xbb\x9a \xed\
+\x1fQ\xfa\x7fj\xfcQ\xe2\x98\xf0\xd5\xd7I$\x96\xcb\
+mI$\x92JRI$\x92\x90fe3\x0f\x19\xf9\
+6j\x184\x1e'\xb0\x5cU\xf7\xd9\x93s\xef\xb4\xee\
+{\xcc\x92\xb6\xfe\xb4e\x12\xea\xb0\xdat\x03\xd4\x7f\xc4\
+\xe8\xdf\xe2\xb0\x16W\xc43\x19\xe4\xf6\xc7\xcb\x0f\xfaM\
+l\xf3\xb9p\xf4\x1f\x9a\x92I%M\x89I$\x92J\
+w~\xaeu\x12\xc7\xfd\x82\xe3\xedt\x9a\x89\xecy-\
+\xf9\xae\x8dp,{\xab{la\x874\x874\xf8\x11\
+\xa8]\xc6\x1eKr\xf1k\xc8o\x164\x12<\x0f\x04\
+|\x8a\xd4\xf8~c8\x9cr:\xc3o\xee\xff\x00c\
+c\x04\xecp\x9e\x9f\x92d\x92I]fRI$\x92\
+\x9c/\xac\xf8{\xaafk\x06\xac\xf6?\xfa\xa7\xe8\xfe\
+?\x95s\x8b\xbb\xc9\xa1\xb98\xf6P\xfe,io\xde\
+\xb8k\x18\xea\xde\xea\xde!\xcc%\xae\x1e`\xc1Y\x7f\
+\x10\xc5\xc1\x90Lm1\xaf\x98kg\x8dJ\xfb\xb1I\
+$\x95&%$\x92\xb3\xd3h\xfbF}\x14\x91!\xcf\
+\x05\xdf\xd5o\xb8\xfe\x01:12\x90\x88\xdc\x90>\xd5\
+\x01d\x0e\xefc\x87O\xd9\xf1)\xa3\x8d\x8ckO\xc6\
+5FI%\xbc\x00\x88\x00l\x057\x80\xad\x14\x92I\
+\x22\xa7\x1f\xeb?\xf4\x0a\xff\x00\xe3\x9b\xff\x00R\xf5\xcb\
+\xae\xa3\xeb?\xf4\x0a\xff\x00\xe3\x9b\xff\x00R\xf5\xcb\xac\
+\x8f\x88\x7f>|\x83W?\xcf\xf4RI$\xaa\xb1\xa9\
+$\x92IJI$\x92R\x93\x84\xc9\xc2J{n\x9d\
+\xff\x00'\xe2\xff\x00\xc4\xd7\xff\x00R\x15\x95[\xa7\x7f\
+\xc9\xf8\xbf\xf15\xff\x00\xd4\x85eo\xe3\xf9#\xfd\xd1\
+\xf97c\xb0\xf2RI$\x9c\x95$\x92I)I$\
+\x92JRI$\x92\x94\x92I$\xa5$\x92I)J\
+\xa7V\xff\x00\x93r\x7f\xe2\xca\xb6\xaauo\xf97'\
+\xfe,\xa6e\xfen\x7f\xdd?\x92%\xf2\x9f\x22\xf1i\
+\x93\xa6X-%$\x92I)I$\x92JRI$\
+\x92\x97\x00\xb8\x86\x81$\xe8\x07\x9a\xee\xb1\xa9\x18\xf8\xf5\
+\xd08\xad\xa1\xbfp\x5c\x87H\xa7\xd7\xeaT0\xea\x03\
+\xf7\x9f\xec\xfb\xbf\x82\xed\x16\x97\xc3a\xa4\xe7\xdc\x88\xfd\
+\x9a\xb3\xf2\xe3B~\x8aI$\x95\xf6u$\x92I)\
+I$\xa1k\xc5u\xbe\xc3\xc3\x1a]\xf7\x09Ke<\
+wW\xbb\xd7\xeaW\xbf\xb0y`\xf83\xdb\xfc\x154\
+\xee%\xc4\xb8\xeaN\xa52\xc0\x9c\xb8\xe5)\x1f\xd2$\
+\xfd\xad\x22l\x93\xdc\xa9$\x92MB\x92I$\x94\xa5\
+\xd2\xfdW\xbf~5\xb8\xe4\xeb[\x83\x87\xc1\xc3\xfb\xc2\
+\xe6\x96\xb7\xd5\xab}>\xa1\xe9\xf6\xb5\x85\xbf1\xee\x1f\
+\x90\xab\x1c\x9c\xf83\xc3\xc4\xf0\xfd\xbf\xda\xbf\x11\xa9\x8f\
+\x1d\x1e\xa9$\x92[-\xb5$\x92I)K\x92\xfa\xc3\
+\x8f\xe8u\x17<\x08m\xc0Y\xf3\xe0\xfeE\xd6\xac?\
+\xad\x14n\xc7\xab s[\x8b\x0f\xc1\xc3\xfb\xda\xabs\
+\xd0\xe3\xc0OX\x91/\xe3\xf81\xe6\x17\x03\xe1\xab\xcd\
+\xad\xfe\x87\xd30\xb30\x8d\x99\x15\xeexyn\xed\xce\
+\x1a\x00<\x0a\xc0]O\xd5\x9f\xf9=\xdf\xf1\x8e\xfc\x8d\
+Ty\x18\xc6y\xaa@Hp\x9d\x08\xb6\x1c \x19\xd1\
+\x17\xa37}\x5c\xe9\x8e\xe1\xafo\xc1\xc7\xf8\xca\x9e\x1f\
+D\xc4\xc2\xc8\x19\x14\x97\x97\x00@\x0e \x8d~KE\
+%\xa49| \x89\x0cq\x04\x1b\x14\x1b\x1c\x11\x06\xf8\
+B\x92I%*\xe5$\x92I)\xcd\xeb\xb8\x99\x19\x98\
+m\xab\x19\xbb\xdc,\x0e\x22@\xd05\xc3\xbf\xc5s\xce\
+\xe8\xddQ\xbc\xe3\xb8\xfc\x08?\x90\xae\xcd%[7'\
+\x0c\xf2\xe3\x94\xa4\x0dV\x95\xfc\x18\xe7\x8a36Ix\
+wt\xec\xf6},k\x7f\xccq\xfc\x81\x09\xd4\xda\xcf\
+\xa6\xc77\xfa\xc0\x8f\xca\xbb\xc4\xea\x13\xf0\xc8\xf4\xc8G\
+\x98\xbf\xe0\xb7\xee\xe3\xf7\x9f?Ih\xfd`\xff\x00\x95\
+m\xfe\xab?\xeaB\xceT2C\xdb\x9c\xa1w\xc2H\
+\xbf&\x09\x0e\x12Gb\xa4\x92I1\x0aN\x13'\x09\
+)\xed\xbaw\xfc\x9f\x8b\xff\x00\x13_\xfdHVUn\
+\x9d\xff\x00'\xe2\xff\x00\xc4\xd7\xff\x00R\x15\x95\xbf\x8f\
+\xe4\x8f\xf7G\xe4\xdd\x8e\xc3\xc9I$\x92rT\x92I\
+$\xa5$\x92I)I$\x92JRI$\x92\x94\x92\
+I$\xa5*\x9d[\xfeM\xc9\xff\x00\x8b*\xda\xa9\xd5\
+\xbf\xe4\xdc\x9f\xf8\xb2\x99\x97\xf9\xb9\xff\x00t\xfeH\x97\
+\xca|\x8b\xc5\xa6N\x99`\xb4\x94\x92I$\xa5$\x92\
+I)I$\x92Jv~\xacU\xbf6\xcbO\x15\xd7\
+\xf8\xb8\x8f\xe0\x0a\xe9\xd6\x17\xd5Z\xe2\x9b\xed\xfd\xe7\xb5\
+\xbf\xe6\x89\xff\x00\xbf-\xd5\xb1\xc8\xc7\x87\x04|l\xfe\
+-\xac\x22\xa0<T\x92I+,\x8aI$\x92R\x95\
+N\xabg\xa7\xd3\xb2]\xdf\xd3p\x1f\x13\xa7\xf1V\xd6\
+o\xd6\x07\xed\xe9v\x8f\xde,o\xfd&\x9f\xe0\xa3\xcc\
+xqd=\xa3/\xc9l\xcdFG\xc0\xbc\x8aI$\
+\xb0\x9ajI$\x92R\x92I$\x94\xa5o\xa4\xd9\xe9\
+\xf5,wx\xbc7\xfc\xefo\xf1U\x14\xe9\x7f\xa7u\
+v~\xe3\xda\xef\xf3H)\xd0\x97\x0c\xe3.\xc4\x1f\xb1\
+ \xd1\x07\xb1{\xd4\x92Io\xb7T\x92I$\xa5*\
+=f\xaf[\xa6^\xde\xedn\xf1\xfd\x9fw\xf0W\x94\
+l`\xb2\xb7V\xee\x1e\x0bO\xc0\xe8\x9b\x92<p\x94\
+\x7fx\x11\xf6\xa0\x8b\x04w\x0f\x02\xba\x9f\xab?\xf2{\
+\xbf\xe3\x1d\xf9\x1a\xb9r\x0bIk\xb9\x1a\x1f\x88]G\
+\xd5\x9f\xf9=\xdf\xf1\x8e\xfc\x8dY\x7f\x0f\xfe\x7f\xfc\x12\
+\xd6\xc1\xf3\xfd\x1dt\x92Ik6\x94\x92I$\xa5$\
+\x92I)I$\x92JRI$\x92\x9eG\xeb\x07\xfc\
+\xabo\xf5Y\xff\x00R\x16j\xd2\xfa\xc1\xff\x00*\xdb\
+\xfdV\x7f\xd4\x85\x9a\xb0\xf9\x8f\xe7\xb2\x7f~_\x9bN\
+\x7f<\xbc\xca\x92I%\x12\xd5'\x09\x93\x84\x94\xf6\xdd\
+;\xfeO\xc5\xff\x00\x89\xaf\xfe\xa4+*\xb7N\xff\x00\
+\x93\xf1\x7f\xe2k\xff\x00\xa9\x0a\xca\xdf\xc7\xf2G\xfb\xa3\
+\xf2n\xc7a\xe4\xa4\x92I9*I$\x92R\x92I\
+$\x94\xa4\x92I%)$\x92IJI$\x92R\x95\
+N\xad\xff\x00&\xe4\xff\x00\xc5\x95mT\xea\xdf\xf2n\
+O\xfcYL\xcb\xfc\xdc\xff\x00\xba\x7f$K\xe5>E\
+\xe2\xd3'L\xb0ZJI$\x92R\x92I$\x94\xa4\
+\x92I%=_\xd5\xb6m\xe9\xa1\xdf\xbe\xf7\x1f\xc8\xdf\
+\xe0\xb5U\x0e\x86\xdd\xbd.\x81\xe2\x0b\xbf\xces\x8f\xf1\
+W\xd6\xef.+\x0e1\xfdA\xf97 *\x11\xf2\x0a\
+I$\x94\x8b\x94\x92I$\xa5,\x8f\xac\xce\x8e\x9e\xc1\
+\xe3h\xff\x00\xa9qZ\xeb\x13\xebK\xa3\x16\x96\xf8\xd8\
+O\xdc\x0f\xf7\xa8y\xb3X2y,\xcb\xf2K\xc9\xe6\
+\x92I%\x88\xd4RI$\x92\x94\x92I$\xa5$\x92\
+t\x94\xf7\x94\xbf\xd4\xa5\x96~\xf3C\xbe\xf1*j\xbe\
+\x01\xdd\x83\x8e\x7f\xe0\x99\xff\x00R\x15\x85\xd0D\xdcA\
+\xee\x03tj\x02\x92I$R\xa4\x92I%<?P\
+g\xa7\x9d\x90\xcf\x0b\x1d\xf9J6\x17W\xcb\xc0\xab\xd1\
+\xa3n\xc2K\xbd\xc2u)\xfa\xe36uK\xc0\xeeA\
+\xfb\xda\xd2\xa8,9\xcaX\xb2\xcf\x80\x98\x91)\x0d<\
+\xdad\x98\xc8\xd1\xaa%\xd9\xaf\xeb6qsZYQ\
+\x92\x07\x07\xbf\xf6\x97L\xb8*\xff\x00\x9cg\xf5\x87\xe5\
+]\xe8W\xfe\x1f\x96yD\xf8\xe4eUW\xf5f\xc1\
+#.+7T\xbaI$\xae\xb3)$\x92IMl\
+\xdc\xeap*\x17_\xbbk\x9c\x19\xed\x12d\x82\x7f\x82\
+\xa8>\xb1\xf4\xc3\xf9\xcf\x1f\x16\x94?\xac\xff\x00\xd0+\
+\xff\x00\x8eo\xfdK\xd7.\xa8s\x5c\xdeL9L#\
+\xc3T7\x0c92\xca\x12\xa1O^:\xff\x00K?\
+\xe1H\xf8\xb5\xdf\xdc\xa6:\xdfK<d\x0f\x98p\xfc\
+\xad\x5cjJ!\xf1,\xbf\xbb\x0f\xb0\xff\x00\x15\x9fx\
+\x97`\xde\xebWU\x91\xd4l\xb6\x97\x07\xb0\x86\xc3\x87\
+\x1a\x00\xa8\xa4\x92\xa99\x19\xcaS;\xc8\x93\xf6\xb1\x93\
+d\x9e\xe5I$\x92j\x14\x9c&N\x12S\xdbt\xef\
+\xf9?\x17\xfe&\xbf\xfa\x90\xac\xaa\xdd;\xfeO\xc5\xff\
+\x00\x89\xaf\xfe\xa4++\x7f\x1f\xc9\x1f\xee\x8f\xc9\xbb\x1d\
+\x87\x92\x92I$\xe4\xa9$\x92IJI$\x92R\x92\
+I$\x94\xa4\x92I%)$\x92IJU:\xb7\xfc\
+\x9b\x93\xff\x00\x16U\xb5S\xab\x7f\xc9\xb9?\xf1e3\
+/\xf3s\xfe\xe9\xfc\x91/\x94\xf9\x17\x8bL\x9d2\xc1\
+i)$\x92IJI$\x92R\x92I$\x94\xf6\xdd\
+1\xbbzv0\xff\x00\x82a\xfb\xda\x0a\xb4\x83\x846\
+\xe1\xd0<+`\xff\x00\xa2\x11\x96\xfe1P\x88\xec\x07\
+\xe4\xdd\x8e\xc3\xc9I$\x92rT\x92I$\xa5,\x1f\
+\xadG\xf4X\xe3\xf9N\xfc\x81o,\x0f\xadG\xdb\x8c\
+<\xdf\xff\x00}U\xf9\xdf\xf7<\xfe\x9f\xf4\x82\xcc\xdf\
+!\xfe]^y$\x92X\xcdE$\x92I)I$\
+\x92JRI$\x92\x9e\xd7\xa5\x19\xe9\xd8\xe7\xfe\x0c+\
+j\x97F3\xd2\xf1\xff\x00\xa9\xfcJ\xba\xb7\xb1k\x8e\
+\x1f\xdd\x8f\xe4\xdd\x8f\xca<\x82\x92I$\xf4\xa9$\x92\
+IO'\xf5\x8d\xbbz\x99?\xbd[]\xf9[\xfc\x16\
+Z\xd8\xfa\xce#>\xb3\xe3H\x1fs\x9f\xfd\xeb\x1db\
+sB\xb3\xe4\xfe\xf1\xfcZy>yy\xb2\xaf\xf9\xc6\
+\x7fX~U\xde\x85\xc1W\xfc\xe3?\xac?*\xefB\
+\xb7\xf0\xcd\xb2\x7f\x83\xfbYy\x7f\xd2\xfa.\x92I-\
+\x06u$\x92I)\xc7\xfa\xcf\xfd\x02\xbf\xf8\xe6\xff\x00\
+\xd4\xbdr\xeb\xa8\xfa\xcf\xfd\x02\xbf\xf8\xe6\xff\x00\xd4\xbd\
+r\xeb#\xe2\x1f\xcf\x9f \xd5\xcf\xf3\xfd\x14\x92I*\
+\xacjI$\x92R\x92I$\x94\xa4\xe12p\x92\x9e\
+\xdb\xa7\x7f\xc9\xf8\xbf\xf15\xff\x00\xd4\x85eV\xe9\xdf\
+\xf2~/\xfcM\x7f\xf5!Y[\xf8\xfeH\xff\x00t\
+~M\xd8\xec<\x94\x92I'%I$\x92JRI\
+$\x92\x94\x92I$\xa5$\x92I)I$\x92JR\
+\xa9\xd5\xbf\xe4\xdc\x9f\xf8\xb2\xad\xaa\x9d[\xfeM\xc9\xff\
+\x00\x8b)\x99\x7f\x9b\x9f\xf7O\xe4\x89|\xa7\xc8\xbcZ\
+d\xe9\x96\x0bII$\x92JRI$\x92\x94\x91\xe0\
+\xa4\x91\xe0\xa4\xa7\xbb\xc6\x11\x8fP\xfeC\x7f EC\
+\xc7\xfe\x8fW\xf5\x1b\xf9\x11\x17A\x1d\x87\x93xl\xa4\
+\x92I\x15)$\x92IJ\x5c\xff\x00\xd6\xaf\xfbM\xfd\
+\xbf\xfb\xea\xe8\x17?\xf5\xab\x9co\xed\xff\x00\xdfU~\
+{\xfd\xcf?\xa7\xfd \xc7\x9b\xe4?O\xcd\xe7\xd2I\
+%\x8c\xd5RI$\x92\x94\x92I$\xa5$\x92I)\
+\xec\xba/\xfc\x97\x8f\xfdS\xf9J\xbc\xa8\xf4O\xf9/\
+\x1f\xfa\xa7\xf2\x95yn\xe1\xfek\x1f\xf7#\xf97!\
+\xf2\xc7\xc8)$\x92R.RI$\x92\x9eg\xebH\
+\xfdn\x93\xff\x00\x06\x7f\xea\x8a\xc5[\x7fZ\x7f\xa4\xd1\
+\xff\x00\x16\x7f*\xc4X\xbc\xe7\xf3\xf9<\xff\x00`j\
+e\xf9\xe4\xca\xbf\xe7\x19\xfda\xf9Wz\x17\x05_\xf3\
+\x8c\xfe\xb0\xfc\xab\xbd\x0a\xd7\xc36\xc9\xfe\x0f\xedd\xe5\
+\xff\x00K\xe8\xbaI$\xb4\x19\xd4\x92I$\xa7\x1f\xeb\
+?\xf4\x0a\xff\x00\xe3\x9b\xff\x00R\xf5\xcb\xae\xa3\xeb?\
+\xf4\x0a\xff\x00\xe3\x9b\xff\x00R\xf5\xcb\xac\x8f\x88\x7f>\
+|\x83W?\xcf\xf4RI$\xaa\xb1\xa9$\x92IJ\
+I$\x92R\x93\x84\xc9\xc2J{n\x9d\xff\x00'\xe2\
+\xff\x00\xc4\xd7\xff\x00R\x15\x95[\xa7\x7f\xc9\xf8\xbf\xf1\
+5\xff\x00\xd4\x85eo\xe3\xf9#\xfd\xd1\xf97c\xb0\
+\xf2RI$\x9c\x95$\x92I)I$\x92JRI\
+$\x92\x94\x92I$\xa5$\x92I)J\xa7V\xff\x00\
+\x93r\x7f\xe2\xca\xb6\xaauo\xf97'\xfe,\xa6e\
+\xfen\x7f\xdd?\x92%\xf2\x9f\x22\xf1i\x93\xa6X-\
+%$\x92I)I$\x92JRG\x84\x92IOw\
+\x8ag\x1a\xa3\xfc\x86\xfe@\x8a\x81\x82waP|j\
+a\xff\x00\xa2\x11\xd7A\x0dc\x1f \xdd\x1b\x05$\x92\
+H\xa5I$\x92JR\xe7\xfe\xb5\x7f\xdao\xed\xff\x00\
+\xdfW@\xb0>\xb5\x0fn1\xf3\x7f\xfd\xf5W\xe7\x7f\
+\xdc\xf3\xfa\x7f\xd2\x0b3|\x87\xe9\xf9\xbc\xf2I$\xb1\
+\x9a\x8aI$\x92R\x92I$\x94\xa4\x92I%=\x97\
+E\xff\x00\x92\xf1\xff\x00\xaa\x7f)W\x95.\x8d\xff\x00\
+%\xe3\xff\x00S\xf8\x95uoa\xfek\x1f\xf7#\xf9\
+7a\xf2\xc7\xc8)$\x92OJ\x92I$\x94\xf3_\
+Z\x7f\xa5Q\xff\x00\x16\x7f*\xc4[?Z\x0f\xeb\xb5\
+\x0f\x0a\xbf+\x9c\xb1\x96/7\xfc\xfeO?\xd8\x1a\x99\
+~yy\xb2\xaf\xf9\xc6\x7fX~U\xde\x85\xc1W\xfc\
+\xe3?\xac?*\xefB\xb5\xf0\xcd\xb2\x7f\x83\xfbY9\
+\x7f\xd2\xfa.\x92I-\x06u$\x92I)\xc7\xfa\xcf\
+\xfd\x02\xbf\xf8\xe6\xff\x00\xd4\xbdr\xeb\xa8\xfa\xcf\xfd\x02\
+\xbf\xf8\xe6\xff\x00\xd4\xbdr\xeb#\xe2\x1f\xcf\x9f \xd5\
+\xcf\xf3\xfd\x14\x92I*\xacjI$\x92R\x92I$\
+\x94\xa4\xe12p\x92\x9e\xdb\xa7\x7f\xc9\xf8\xbf\xf15\xff\
+\x00\xd4\x85eV\xe9\xdf\xf2~/\xfcM\x7f\xf5!Y\
+[\xf8\xfeH\xff\x00t~M\xd8\xec<\x94\x92I'\
+%I$\x92JRI$\x92\x94\x92I$\xa5$\x92\
+I)I$\x92JR\xa9\xd5\xbf\xe4\xdc\x9f\xf8\xb2\xad\
+\xaa\x9d[\xfeM\xc9\xff\x00\x8b)\x99\x7f\x9b\x9f\xf7O\
+\xe4\x89|\xa7\xc8\xbcZd\xe9\x96\x0bII$\x92J\
+RI$\x92\x94\x92I$\xa7\xb6\xe9n\xdd\xd3q\x8f\
+\xfc\x13\x07\xdc\x00V\x95\x0e\x86\xed\xdd*\x83\xe0\x1c>\
+\xe78+\xeb{\x09\xbcp=\xe3\x1f\xc9\xbb\x1db<\
+\x82\x92I$\xf4\xa9$\x92IJX_Z\x87\xe8\xb1\
+\xcf\xf2\x9d\xf9\x02\xddX\xbfZ\x1b8\x94\xbb\xc2\xc8\xfb\
+\xda\x7f\xb9A\xce\x0b\xe5\xf2y\x0f\xcc,\xcb\xf2I\xe6\
+RI%\x8a\xd4RI$\x92\x94\x92I$\xa5$\x92\
+I)\xed:@\x8e\x99\x8e?\x90\x15\xc5[\xa6\x8d\xbd\
+?\x1c\x7f\xc1\xb7\xf1\x0a\xca\xde\xc5\xa68\x0f\xea\x8f\xc9\
+\xbb\x1f\x94y\x05$\x92I\xe9RI$\x92\x9e[\xeb\
+1\x9e\xa2\xd1\xfb\xb54\x7f\xd2yY\x0bK\xeb\x0b\xb7\
+uK\x07\xee\xb5\x8d\xff\x00\xa2\x0f\xf1Y\xab\x13\x997\
+\x9b'\xf7\x8f\xe0\xd3\xc9\xf3\xcb\xcd\x95\x7f\xce3\xfa\xc3\
+\xf2\xae\xf4.\x0a\xbf\xe7\x19\xfda\xf9Wz\x15\xbf\x86\
+m\x93\xfc\x1f\xda\xcb\xcb\xfe\x97\xd1t\x92Ih3\xa9\
+$\x92IN?\xd6\x7f\xe8\x15\xff\x00\xc77\xfe\xa5\xeb\
+\x97]G\xd6\x7f\xe8\x15\xff\x00\xc77\xfe\xa5\xeb\x97Y\
+\x1f\x10\xfe|\xf9\x06\xae\x7f\x9f\xe8\xa4\x92IUcR\
+I$\x92\x94\x92I$\xa5'\x09\x93\x84\x94\xf6\xdd;\
+\xfeO\xc5\xff\x00\x89\xaf\xfe\xa4+*\xb7N\xff\x00\x93\
+\xf1\x7f\xe2k\xff\x00\xa9\x0a\xca\xdf\xc7\xf2G\xfb\xa3\xf2\
+n\xc7a\xe4\xa4\x92I9*I$\x92R\x92I$\
+\x94\xa4\x92I%)$\x92IJI$\x92R\x95N\
+\xad\xff\x00&\xe4\xff\x00\xc5\x95mT\xea\xdf\xf2nO\
+\xfcYL\xcb\xfc\xdc\xff\x00\xba\x7f$K\xe5>E\xe2\
+\xd3'L\xb0ZJI$\x92R\x92I$\x94\xa4\x92\
+I%=_\xd5\xb7\xee\xe9\xa0~\xe3\xdc?#\xbf\x8a\
+\xd5X\x7fU\xac\x9c{\xeb\xfd\xd7\x83\xfep\xff\x00b\
+\xdc[|\xa1\xe2\xc1\x8c\xff\x00V\xbe\xcd\x1bx\x8d\xc2\
+>JI$\x94\xcb\xd4\x92I$\xa5,\x8f\xac\xcd\x9e\
+\x9e\xd3\xfb\xb6\xb4\xfe\x0e\x1f\xc5k\xac\xee\xbe\xdd\xdd*\
+\xef\xe4\x96;\xeesT\x5c\xc8\xbc9?\xba\x7f\x0dV\
+\xe4\xd6\x12\xf2y\x04\x92Ia\xb4\xd4\x92I$\xa5$\
+\x92I)I$\x92J{\x9c!\xb7\x0e\x86\xf8T\xc1\
+\xff\x00D#\xa8\xb1\xbb\x18\xd6\x0f\xcd\x00}\xcaK\xa0\
+\x88\xa0\x07`\xde\x1a\x05$\x92H\xa9I$\x92Jx\
+\xce\xb0\xfd\xfdO \xf8?o\xf9\xa07\xf8*H\xd9\
+o\xf52\xee\xb3\xf7\xacq\xfcJ\x0a\xc1\xc8x\xa73\
+\xdeD\xfe-)\x1b$\xf8\xb2\xaf\xf9\xc6\x7fX~U\
+\xde\x85\xc1W\xfc\xe3?\xac?*\xefB\xbd\xf0\xcd\xb2\
+\x7f\x83\xfbY\xb9\x7f\xd2\xfa.\x92I-\x06u$\x92\
+I)\xc7\xfa\xcf\xfd\x02\xbf\xf8\xe6\xff\x00\xd4\xbdr\xeb\
+\xa8\xfa\xcf\xfd\x02\xbf\xf8\xe6\xff\x00\xd4\xbdr\xeb#\xe2\
+\x1f\xcf\x9f \xd5\xcf\xf3\xfd\x14\x92I*\xacjI$\
+\x92R\x92I$\x94\xa4\xe12p\x92\x9e\xdb\xa7\x7f\xc9\
+\xf8\xbf\xf15\xff\x00\xd4\x85eV\xe9\xdf\xf2~/\xfc\
+M\x7f\xf5!Y[\xf8\xfeH\xff\x00t~M\xd8\xec\
+<\x94\x92I'%I$\x92JRI$\x92\x94\x92\
+I$\xa5$\x92I)I$\x92JR\xa9\xd5\xbf\xe4\
+\xdc\x9f\xf8\xb2\xad\xaa\x9d[\xfeM\xc9\xff\x00\x8b)\x99\
+\x7f\x9b\x9f\xf7O\xe4\x89|\xa7\xc8\xbcZd\xe9\x96\x0b\
+II$\x92JRI$\x92\x94\x92I$\xa7o\xea\
+\xb5\xbbr\xae\xab\xf7\xd8\x1d\xf3a\xff\x00\xcc\x97J\xb8\
+\xee\x87o\xa5\xd4\xe9'\x87\x92\xc3\xfd\xa0\x7f\x8a\xecV\
+\xb7\xc3\xe5xk\xf7dG\xdb\xaf\xedl\xe07\x0a\xec\
+T\x92I+l\xaaI$\x92R\x95^\xa8\xcfS\xa7\
+d3\xc6\xb7\x11\xf2\x12\xad(\xd8\xc1en\xac\xf0\xf6\
+\x96\xfd\xe2\x13f8\xa3(\xf7\x04}\xa8\x22\xc1\x1d\xde\
+\x05$\xee\x05\xa4\xb4\xf24)\x96\x03II$\x92J\
+RI$\x92\x94\x8b\x8a\xcfS&\x9a\xff\x00~\xc67\
+\xefp\x08J\xefG\xaf\xd4\xeax\xe3\xc1\xfb\xbf\xcd\x04\
+\xff\x00\x04\xfcq\xe2\x9cc\xde@}\xa51\x16@\xee\
+^\xcd$\x92[\xcd\xd5$\x92I)Hy\x16\x8ah\
+\xb2\xe3\xfe\x0d\x8e\x7f\xf9\xa2Q\x15\x0e\xbbo\xa5\xd3.\
+=\xdf\x0c\x1f\xda#\xf8&\xe4\x97\x04%/\xdd\x89?\
+`D\x8d\x02{\x07\x8e\xd7\xbf)$\x92\xc0i2\xaf\
+\xf9\xc6\x7fX~U\xde\x85\xc1W\xfc\xe3?\xac?*\
+\xefB\xd1\xf8f\xd9?\xc1\xfd\xac\xfc\xbf\xe9}\x17I\
+$\x96\x83:\x92I$\x94\xe3\xfdg\xfe\x81_\xfcs\
+\x7f\xea^\xb9u\xd4}g\xfe\x81_\xfcs\x7f\xea^\
+\xb9u\x91\xf1\x0f\xe7\xcf\x90j\xe7\xf9\xfe\x8aI$\x95\
+V5$\x92I)I$\x92JRp\x998IO\
+m\xd3\xbf\xe4\xfc_\xf8\x9a\xff\x00\xeaB\xb2\xabt\xef\
+\xf9?\x17\xfe&\xbf\xfa\x90\xac\xad\xfc\x7f$\x7f\xba?\
+&\xecv\x1eJI$\x93\x92\xa4\x92I%)$\x92\
+IJI$\x92R\x92I$\x94\xa4\x92I%)T\
+\xea\xdf\xf2nO\xfcYV\xd5N\xad\xff\x00&\xe4\xff\
+\x00\xc5\x94\xcc\xbf\xcd\xcf\xfb\xa7\xf2D\xbeS\xe4^-\
+2t\xcb\x05\xa4\xa4\x92I%)$\x92IJI$\
+\x92S:\xacu6\xb2\xd6\xfd*\xdc\x1c>-2\xbb\
+\xb6=\xb61\xb60\xcb\x5c\x03\x81\xf2:\xae\x05v\x1d\
+\x0b#\xed\x1d6\xa92\xea\xe6\xb7\x7fg\x8f\xc0\x85\x7f\
+\xe1\xb3\xa9\xce\x1d\xc5\xfd\x9f\xef\xb3r\xe7R;\xba\x09\
+$\x92\xd2l)$\x92IJI$\x92S\xc5uZ\
+}\x0e\xa3\x91_m\xe5\xc3\xe0\xff\x00w\xf1U\x16\xd7\
+\xd6|}\x99U\xe4\x01\xa5\xad\xda~-\xff\x00aX\
+\xab\x0f\x98\x87\xb7\x9aq\xfe\xb1\xfb\x0e\xa1\xa7\x90p\xc8\
+\x8f\x15$\x92J%\xaaI$\x92R\x96\xbf\xd5\x9a\xb7\
+\xe7\xba\xce\xd5VO\xcd\xd0\xd1\xf8J\xc8]/\xd5z\
+6c[\x90F\xb6\xbfh\xf80\x7fyV9(q\
+\xe7\x87\x87\xab\xec\xfe\xd5\xf8\x85\xccxj\xed\xa4\x92K\
+e\xb6\xa4\x92I%)a}i\xbe*\xa7\x18~s\
+\x8d\x87\xe0\xd1\x03\xfe\xa9n\xaeG\xaf\xe4z\xfdI\xed\
+\x06[P\x15\x8f\x88\xd4\xfe%U\xe7\xe7\xc1\x80\x8e\xb2\
+\x22?\xb7\xf61\xe65\x03\xe3\xa3\x9a\x92I,\x86\xab\
+*\xff\x00\x9cg\xf5\x87\xe5]\xe8\x5c\x15\x7f\xce3\xfa\
+\xc3\xf2\xae\xf4-\x1f\x86m\x93\xfc\x1f\xda\xcf\xcb\xfe\x97\
+\xd1t\x92Ih3\xa9$\x92IN?\xd6\x7f\xe8\x0c\
+\xff\x00\x8eo\xfdK\xd7.\xba\xaf\xac\xad\x9e\x9c\x0f\xee\
+\xd8\xd3\xf88\x7f\x15\xca\xac\x9f\x88\x7f?\xfe\x08j\xe7\
+\xf9\xfe\x8aI$\x95F5$\x92I)I$\x92J\
+Rp\x998IOm\xd3\xbf\xe4\xfc_\xf8\x9a\xff\x00\
+\xeaB\xb2\xabt\xef\xf9?\x17\xfe&\xbf\xfa\x90\xac\xad\
+\xfc\x7f$\x7f\xba?&\xecv\x1eJI$\x93\x92\xa4\
+\x92I%)$\x92IJI$\x92R\x92I$\x94\
+\xa4\x92I%)T\xea\xdf\xf2nO\xfcYV\xd5N\
+\xad\xff\x00&\xe4\xff\x00\xc5\x94\xcc\xbf\xcd\xcf\xfb\xa7\xf2\
+D\xbeS\xe4^-2t\xcb\x05\xa4\xa4\x92I%)\
+$\x92IJI$\x92R\x96\xdf\xd5\x8c\x9d\x97\xd9\x8a\
+\xe3\xa5\x8d\xdc\xdf\x8by\xfc\x0a\xc4E\xc5\xbd\xd8\xb9\x15\
+\xe43\x9a\xdc\x1d\xf1\xf1\x1f0\xa4\xc1\x93\xda\xc9\x19\xf6\
+:\xf9u]\x09p\xc8\x17\xbbIF\xbb\x19mm\xb6\
+\xb3-x\x0ei\xf2:\xa9-\xd1\xae\xa1\xb8\xa4\x92I\
+%)$\x92INw]\xc4\xfbWO~\xd1/\xab\
+\xf4\x8d\xfe\xcf?\x82\xe4\x17\xa0.;\xact\xf3\x81\x96\
+CG\xe8l\x97V{y\xb7\xe4\xb3\xfe#\x84\xe9\x94\
+\x7fv_\xb0\xb0g\x86\xd2\x1eE\xa0\x92I,\xe6\x05\
+$\x92I)\x93\x18\xeb\x1e\xda\xd8%\xce!\xad\x1e$\
+\xe8\x17q\x87\x8e\xdcLZ\xf1\xdb\xc5m\x00\x9f\x13\xdc\
+\xfc\xca\xc2\xfa\xb9\xd3\x8b\xec\xfb}\xa3\xda\xc9\x15Ow\
+p]\xf2]\x1a\xd4\xf8~\x13\x08\x9c\x92\x1a\xcfo\xee\
+\xff\x00kc\x04(q\x1e\xbf\x92\x92I%u\x99I\
+$\x92JE\x93{q\xb1\xec\xbd\xfcV\xd2\xef\xb9p\
+\xcf{\xac{\xacy\x978\x97\x13\xe6u+\xa2\xfa\xcf\
+\x99\xb2\x96a4\xeba\xde\xff\x00\xea\x8e?\x1f\xc8\xb9\
+\xb5\x97\xf1\x1c\xbcY\x04\x06\xd0\x1a\xf9\x96\xb6y\x5c\xab\
+\xb2\x92I%I\x89pv\x90\xef\x03?r\xef\x87\x0b\
+\x80\xe7E\xdc\xe0\xdb\xeb\xe1Qo%\xd5\xb4\x9f\x8ck\
+\xf8\xad\x0f\x86\x1drG\xb8\x07\xec\xbf\xe2\xcf\xcb\x9f\x98\
+y'I$\x96\x8b:\x92I$\x94\xd3\xea\xf8\xee\xca\
+\xe9\xf7T\xc1.\x8d\xcd\x03\xb9i\x0e\xfe\x0b\x8b^\x80\
+\xb3r\xfa\x0e\x06]\x86\xd2\x1dS\xdd\xab\x8dd\x09>\
+0A\x0a\x9f9\xcaK9\x13\x81\x1c@Q\x07\xb3\x16\
+\x5cFtF\xef\x22\x92\xeaY\xf5g\xa7\xb4\xfb\x9dk\
+\xfe.\x03\xfe\xa5\xa1]\xc7\xe9\x98\x18\xa4:\x9aZ\x1c\
+8q\xf7\x1f\xbd\xd2\xabG\xe1\xd9O\xccc\x11\xf6\xb1\
+\x8c\x12;\x90\x1e<\xe1\xe4\xb6\x83\x92\xfa\xdc\xda\xa4\x0d\
+\xce\x11$\xf1\x12\x82\xba\xbf\xac\x9f\xf2a\xfe\xbb\x17(\
+\xa2\xe6p\x8c\x13\x10\x04\x9fH6~\xabrC\x82T\
+5\xd1I$\x92\x81b\x93\x84\xc9\xc2J{n\x9d\xff\
+\x00'\xe2\xff\x00\xc4\xd7\xff\x00R\x15\x95[\xa7\x7f\xc9\
+\xf8\xbf\xf15\xff\x00\xd4\x85eo\xe3\xf9#\xfd\xd1\xf9\
+7c\xb0\xf2RI$\x9c\x95$\x92I)I$\x92\
+JRI$\x92\x94\x92I$\xa5$\x92I)J\xa7\
+V\xff\x00\x93r\x7f\xe2\xca\xb6\xaauo\xf97'\xfe\
+,\xa6e\xfen\x7f\xdd?\x92%\xf2\x9f\x22\xf1i\x93\
+\xa6X-%$\x92I)I$\x92JRI$\x92\
+\x94\x92I$\xa7\xa4\xfa\xb5\x9c\x1fS\xb0l>\xea\xfd\
+\xd5\xf9\xb4\xf2>En.\x13\x1b\x22\xcc[\xd9\x91Q\
+\x870\xc8\xf0> \xfcWk\x89\x93^f;2*\
+>\xd7\x8e<\x0fp~\x0bW\x90\xcf\xeeC\xdb'\xd5\
+\x0d\xbcc\xfd\x8d\x9c3\xe2\x1c'q\xf9&I$\x95\
+\xc6U$\x92I)J\xben\x1d9\xd4\x1a.\x1a\x1d\
+Z\xe1\xcbO\x88V\x12BQ\x12\x062\x16\x0e\xe1D\
+^\x85\xe2\xf3\xfafWOy\x16\xb7u\x7f\x9bk~\
+\x89\xfe\xe5Mw\xe4\x02 \xea\x0f!U\x7fJ\xe9\xd6\
+\x1d\xce\xc7\xae|\x86\xdf\xc9\x0a\x86O\x86\xebx\xe7C\
+\xb4\xbf\x8b\x04\xb9\x7f\xdd?k\xc5\xc1\xe3\xc7\x85\xad\xd3\
+:\x05\xf9.\x16\xe5\x83U#]\xa7G;\xfb\x82\xe8\
+\xa9\xc2\xc4\xc73E,a\xfd\xe0\xd1?\x7f(\xe9\xd8\
+~\x1d\x18\x90rK\x8a\xbfDl\x98\xe0\x03Y\x1b\xf0\
+b\xc62\xb6\x0a\xeb\x01\xadh\x86\x81\xa0\x00)$\x92\
+\xbd\xb32\x92I$\x94\xa5\x1b,e5\xba\xdb\x0e\xd6\
+0\x178\x9e\xc0).{\xeb\x1fR\x93\xfb>\x93\xa0\
+\x83q\x1e<\x86\xff\x00z\x8f>a\x83\x19\x99\xfa\x0e\
+\xe5l\xe4!\x12\x5c|\xec\xa7f\xe5Y\x90\xed7\x9f\
+h\xf0h\xd0\x04\x04\x92Xr\x91\x912:\x92l\xb4\
+\xc9\xb3g\xaa\x92I$\x14\xa5\xd4\xfd[\xc9\x16\xe0\x9a\
+\x09\xf7P\xe2#\xf9.\xf7\x0f\xe2\xb9e{\xa3\xe7}\
+\x831\xafy\xfd\x13\xfd\x96y\x03\xdf\xe4\xa7\xe52\x8c\
+9\xa2O\xca}'\xeb\xfd\xab\xf1K\x86@\x9d\x8e\x8f\
+d\x92`A\x00\x83 \xea\x08N\xb6\x9bjI$\x92\
+R\x92I$\x94\xa4\x92I%9_Y?\xe4\xc3\xff\
+\x00\x18\xc5\xca.\xaf\xeb'\xfc\x98\x7f\xe3\x18\xb9E\x93\
+\xf1\x1f\xe7\xff\x00\xc1\x1f\xb5\xad\x9f\xe7\xfa)$\x92U\
+\x18\x94\x9c&N\x12S\xdbt\xef\xf9?\x17\xfe&\xbf\
+\xfa\x90\xac\xaa\xdd;\xfeO\xc5\xff\x00\x89\xaf\xfe\xa4+\
++\x7f\x1f\xc9\x1f\xee\x8f\xc9\xbb\x1d\x87\x92\x92I$\xe4\
+\xa9$\x92IJI$\x92R\x92I$\x94\xa4\x92I\
+%)$\x92IJU:\xb7\xfc\x9b\x93\xff\x00\x16U\
+\xb5S\xab\x7f\xc9\xb9?\xf1e3/\xf3s\xfe\xe9\xfc\
+\x91/\x94\xf9\x17\x8bL\x9d2\xc1i)$\x92IJ\
+I$\x92R\x92I$\x94\xa4\x92I%)itn\
+\xa8z}\xdb,3E\x87\xde?t\xfe\xf0\xfe+5\
+$\xfcy%\x8aBq4Bc#\x13c\xa3\xdf\xb5\
+\xcd{C\x9aAi\x12\x08\xd4\x10S\xaeW\xa3u\xa7\
+a\x11\x8f\x92K\xb1\xc9\xd0\xf2XO\xf0]C\x1e\xcb\
+\x18,\xad\xc1\xcdp\x90\xe1\xa8!lr\xfc\xc43\xc6\
+\xc6\x84|\xd1\xed\xfd\x8d\xb8LLi\xbfP\xc9$\x92\
+S.RI$\x92\x94\x92I$\xa5$\x92I)I\
+$\x92JRI,\xbe\xab\xd6\xea\xc1\x06\x9a\x08\xb3#\
+\xc3\x90\xcf\xeb\x7frfL\x91\xc5\x13)\x9a\x01\x12\x90\
+\x88\xb2\xcb\xac\xf5f\xe0U\xe9\xd4A\xc8x\xf6\x8f\xdd\
+\x1f\xbc\x7f\x82\xe4\x9c\xe2\xe2\x5c\xe3$\x99$\xf2IR\
+\xb6\xdb.\xb1\xd6\xda\xe2\xf7\xb8\xc9q\xee\xa0\xb29\x9e\
+b\x5c\xc4\xec\xe9\x11\xf2\x8f\xe5\xd5\xab\x92fg\xc3\xa2\
+\x92I%\x02\xc5$\x92I)I$\x92Jv\xfa7\
+\x5c\x18\xed\x18\x99\x87\xf4cFY\xce\xdf#\xe4\xba6\
+=\x964>\xb7\x075\xda\x82\x0c\x82\xb8\x14|l\xdc\
+\xacC8\xf6\xba\xb9\xe4\x03\xa1\xf8\x83\xa2\xbb\xcb\xf3\xf2\
+\xc4\x042\x0e(\x8d\x8fQ\xfcYa\x98\xc4T\xb5\x0f\
+r\x92\xe5\xab\xfa\xcd\xd4\x18!\xed\xae\xcf2\x08?\xf4\
+H\xfc\x88\xbf\xf3\xa7\x22?\x98g\xf9\xc5Z\x1c\xfe\x03\
+\xd4\x8f\xa7\xf0e\xf7\xe1\xdc\xfd\x8fH\x92\xe5\xdf\xf5\x9b\
+=\xda5\x953\xe0\x09?\x8b\x95[z\xd7S\xbbG\
+^\xe6\x8f\xe4C\x7f M\x97\xc4p\x8d\x84\xa5\xf4A\
+\xcf\x01\xb5\x97\xae\xb6\xfahn\xeb\x9e\xda\xc7\x8b\x88\x1f\
+\x95f\xe4\xfdd\xc1\xa6[D\xde\xef\xe4\xe8\xdf\xf3\x8f\
+\xf0\x5c\xbb\x9e\xf7\xb8\xb9\xee.q\xe4\xb8\xc9\xfb\xca\x8a\
+\x83'\xc4rKHDG\xc4\xfa\x8f\xf0Y.bG\
+a_\x8b\x7f\xa8u\x9c\xae\xa0\xdfI\xe1\xac\xaagc\
+Gq\xe2J\xa0\x92J\x9c\xe7,\x87\x8ad\xc8\xf8\xb1\
+\x12dl\x9bRI$\x9a\x85'\x09\x93\x84\x94\xf6\xdd\
+;\xfeO\xc5\xff\x00\x89\xaf\xfe\xa4+*\xb7N\xff\x00\
+\x93\xf1\x7f\xe2k\xff\x00\xa9\x0a\xca\xdf\xc7\xf2G\xfb\xa3\
+\xf2n\xc7a\xe4\xa4\x92I9*I$\x92R\x92I\
+$\x94\xa4\x92I%)$\x92IJI$\x92R\x95\
+N\xad\xff\x00&\xe4\xff\x00\xc5\x95mT\xea\xdf\xf2n\
+O\xfcYL\xcb\xfc\xdc\xff\x00\xba\x7f$K\xe5>E\
+\xe2\xd3'L\xb0ZJI$\x92R\x92I$\x94\xa4\
+\x92I%)$\x92IJI$\x92R\x95\xde\x9d\xd5\
+rzs\xa2\xb3\xbe\xa2e\xd5\xbb\x8f\x88\xf0*\x92I\
+\xd0\x9c\xb1\x91(\x92\x08\xea\x12\x09\x89\xb0i\xec\xf0z\
+\xbe\x1ep\x02\xb7l\xb3\xbdo\xd1\xdf/\x15uy\xfa\
+\xd0\xc5\xeb\x9dG\x14\x06\xfa\x9e\xabG\xe6\xd9\xee\xfcy\
+\xfcU\xfc_\x11\xe9\x96?\xe1G\xf83G\x98\xfd\xe1\
+\xf5\x0f`\x92\xc7\xc0\xfa\xc5^]\xec\xc6\xb2\xa3[\xec\
+0\x1c\x0c\xb6b|\x8a\xd8Wq\xe5\x86a\xc5\x03c\
+fh\xc8HX6\xa4\x92I=*I$\x92R\x95\
+|\xac\xfcL!9\x16\x06\x9eCyq\xf84j\x89\
+{\x1de61\xa4\xb5\xcei\x00\x8d\x08$D\x85\xc2\
+;qq\xdeIt\xfb\x89\xd4\xca\xad\xcd\xf32\xe5\xc4\
+DcfW\xa9\xdbF<\xb9\x0e:\xa1\xbb\xaf\xd4>\
+\xb1_\x90\x0dX\x80\xd3Y\xe5\xdf\x9e~\xee\x16G:\
+\x94\xc9,\xbc\x99g\x98\xf1NW\xfb\x1a\xd2\x91\x91\xb2\
+mI$\x92\x8d\x0aI$\x92R\x92I$\x94\xa4\x92\
+I%)$\x92IJI$\x92R\x92I$\x94\xa4\
+\x92I%)$\x92IJI$\x92R\x93\x84\xc9\xc2\
+J{n\x9d\xff\x00'\xe2\xff\x00\xc4\xd7\xff\x00R\x15\
+\x95[\xa7\x7f\xc9\xf8\xbf\xf15\xff\x00\xd4\x85eo\xe3\
+\xf9#\xfd\xd1\xf97c\xb0\xf2RI$\x9c\x95$\x92\
+I)I$\x92JRI$\x92\x94\x92I$\xa5$\
+\x92I)J\xa7V\xff\x00\x93r\x7f\xe2\xca\xb6\xaau\
+o\xf97'\xfe,\xa6e\xfen\x7f\xdd?\x92%\xf2\
+\x9f\x22\xf1i\x93\xa6X-%$\x92I)I$\x92\
+JRI$\x92\x94\x92I$\xa5$\x92I)I$\
+\x92JRI$\x92\x92Qi\xa2\xea\xeeo5\xb8<\
+\x7fd\xca\xee\xda\xe0\xf6\x87\xb7P\xe0\x08>Ep\x0b\
+\xb0\xe8y?h\xe9\xb5I\x97U\xfa7\x7fg\x8f\xc2\
+\x15\xff\x00\x86\xce\xa58w\x1cC\xe9\xfe\xfb7.u\
+#\xbe\xae\x82I$\xb4\x9b\x0aI$\x92R\x97\x1d\xd6\
+\xb1N/P\xb0\x01\xec\xb3\xf4\x8c\xf8;\x9f\xb8\xae\xc5\
+gu\xae\x9b\xfbC\x1ek\xfez\xadY\xe7\xe2\xdf\x9a\
+\xaf\xcea9\xb1zu\x94}C\xf6\x86<\xb0\xe3\x8e\
+\x9b\x87\x90II\xecun,x-sL\x10D\x10\
+TV;UI$\x92\x0aRI$\x92\x94\x92I$\
+\xa5$\x92I)I$\x92JRI$\x92\x94\x92I\
+$\xa5$\x92I)I$\x92JRI$\x92\x94\x9c\
+&K\x8dRS\xdb\xf4\xef\xf9?\x17\xfe&\xbf\xfa\x90\
+\xac\xa0\xe20\xd5\x89Mg\xf3+c~\xe6\x80\x8c\xb7\
+\xe0*\x11\x1d\x80n\x8d\x87\x92\x92I$\xe4\xa9$\x92\
+IJI$\x92R\x92I$\x94\xa4\x92I%)$\
+\x92IJU:\xb7\xfc\x9b\x93\xff\x00\x16U\xb5S\xab\
+\x7f\xc9\xb9?\xf1e3/\xf3s\xfe\xe9\xfc\x91/\x94\
+\xf9\x17\x8bL\x9d2\xc1i)$\x92IJI$\x92\
+R\x92I$\x94\xa4\x92I%)$\x92IJI$\
+\x92R\x92I$\x94\xa5\xb5\xf5g,W\x90\xfcW\x1d\
+.\x1b\x9b\xfdf\xff\x00\xb1b\xa9\xd3k\xe8\xb5\x97V\
+a\xccpp\xf8\x85&\x1c\x9e\xd6H\xcf\xb1\xd7\xcb\xaa\
+a.\x19\x03\xd9\xefRA\xc5\xc9\xaf/\x1d\x99\x15\xfd\
+\x17\x89\x8f\x03\xdc|\x91\x96\xe0\x22@\x11\xa8:\x86\xe8\
+7\xaa\x92I$T\xa4\x92I%5\xb2\xba~\x1en\
+\xb9\x15\x078p\xee\x1d\xfep\x82\xa9\x1f\xab=<\x99\
+\x06\xc1\xe5\xb8\x7f\xe4V\xb2J9`\xc53r\x84I\
+\xefKL\x22u \x17\x9c\xea\xbd\x0f\x13\x07\x0d\xf9\x15\
+9\xe5\xc0\xb4\x00\xe2#S\x1e\x0b\x09u\xbfX\x7f\xe4\
+\xb7\xff\x00Y\x9f\xf5ArK3\x9e\x84q\xe5\x02\x00\
+Dp\x83\xa7\x99k\xe6\x88\x8c\xa8\x0a\xd1I$\x92\xaa\
+\xc6\xa4\x92I%)$\x92IJI$\x92R\x92I\
+$\x94\xa4\x92I%)$\x92IJI$\x92R\x92\
+I$\x94\xa4\x5cj\x8d\xf9\x15R?=\xedo\xdeP\
+\x96\xaf\xd5\xcco[?\xd5#\xdbCK\xbf\xb4}\xad\
+Ra\x87\xb9\x92\x10\xeeG\xd9\xd51\x1cR\x03\xb9z\
+\xa4\xe9$\xb7[\xaaI$\x92R\x92I$\x94\xa4\x92\
+I%)$\x92IJI$\x92R\x92I$\x94\xa5\
+S\xab\x7f\xc9\xb9?\xf1e[U:\xb7\xfc\x9b\x93\xff\
+\x00\x16S2\xff\x007?\xee\x9f\xc9\x12\xf9O\x91x\
+\xb4\xc9\xd3,\x16\x92\x92I$\x94\xa4\x92I%)$\
+\x92IJI$\x92R\x92I$\x94\xa4\x92I%)\
+$\x92IJI$\x92S\xad\xd0z\xa0\xc3\xb7\xec\xd7\
+\x98\xa6\xd3\xa1<5\xde?\x02\xba\xa5\xe7\xebo\xa4\xf5\
+\xe3\x8e\xd6\xe3f\xcb\xaa\x1a2\xceKG\x81\xf1\x0a\xff\
+\x00%\xcd\x88\x0fk!\xa8\xfe\x8c\xbbx\x1f\x06l9\
+k\xd3-\xba\x17\xa5IB\xbbk\xb9\x82\xca\x9c\x1e\xd7\
+p\xe6\x99\x0akH\x1b\xd46\x14\x92I$\xa5$\x92\
+I)\xcc\xfa\xc3\xff\x00%\xbf\xfa\xcc\xff\x00\xaa\x0b\x92\
+]o\xd6\x1f\xf9-\xff\x00\xd6g\xfdP\x5c\x92\xca\xf8\
+\x8f\xf3\xc3\xfb\x83\xf3-l\xff\x00?\xd1I$\x92\xa6\
+\xc4\xa4\x92I%)$\x92IJI$\x92R\x92I\
+$\x94\xa4\x92I%)$\x92IJI$\x92R\x92\
+I$\x94\xa5\xd6\xf4\x0c3\x8b\x82\x1e\xf1\x16_\xefw\
+\x90\xfc\xd1\xf7,.\x8b\xd3\x8e~P/\x1f\xa1\xaa\x1d\
+g\x9f\x83~k\xb0Z\x1f\x0e\xc3\xbec\xe5\x1f\xda\x7f\
+c>\x08~\x91\xfa)$\x92Z,\xeaI$\x92R\
+\x92I$\x94\xa4\x92I%)$\x92IJI$\x92\
+R\x92I$\x94\xa5S\xab\x7f\xc9\xb9?\xf1e[U\
+:\xb7\xfc\x9b\x93\xff\x00\x16S2\xff\x007?\xee\x9f\
+\xc9\x12\xf9O\x91x\xb4\xc9\xd3,\x16\x92\x92I$\x94\
+\xa4\x92I%)$\x92IJI$\x92R\x92I$\
+\x94\xa4\x92I%)$\x92IJI$\x92R\x92I\
+$\x94\x9b\x1b3'\x11\xdb\xb1\xacug\xb8\x1c\x1f\x88\
+:-Z>\xb4d\xb0E\xf52\xcf6\x92\xc3\xff\x00\
+~X\x89)q\xe7\xcb\x8b\xe4\x99\x03\xb6\xe3\xec:.\
+\x8c\xe5\x1d\x8d=3>\xb4\xe1\x91\xef\xaa\xd6\x9f-\xa4\
+\x7f\xd5\x05?\xf9\xcd\xd3\xff\x00v\xdf\xf3G\xfeIr\
+\xc9)G\xc43\xf7\x07\xe8\xbb\xdf\x9f\x83\xd2\xbf\xebN\
+(\xfen\x9b\x1c|\xf6\xb7\xfe\xfc\xe5^\xcf\xadV\x9f\
+\xe6\xb1\xda\xdf\xeb8\xbb\xf2\x06\xac$\x90<\xf70\x7f\
+N\xbc\x80Q\xcd3\xd5\xd0\xcd\xeby\x99\xd5\x1a-\x0c\
+k\x09\x04\x86\x83\xdb^\xe4\xac\xf4\x92PO$\xb2\x1e\
+)\x93#\xe2\xb0\xc8\xc8\xd96\xa4\x92I5\x0aI$\
+\x92R\x92I$\x94\xa4\x92I%)$\x92IJI\
+$\x92R\x92I$\x94\xa4\x92I%)\x1f\x0f\x0e\xec\
+\xeb\xc5\x14\x09'W8\xf0\xd1\xe2U\x9e\x9f\xd1\xb2\xf3\
+\x88tzT\xf7\xb1\xc3\x91\xfc\x91\xddu\x18XX\xf8\
+\x14\xfaT6;\xb9\xc7\x97\x1f\x12U\xae[\x93\x96b\
+%0c\x0f\xc4\xf9\x7f\x16Lx\x8c\xb5:\x05\xf0\xb0\
+\xea\xc1\xc7n=<\x0dK\x8f.=\xc9GI%\xad\
+\x18\x88\x81\x10(\x0d\x83h\x0a\x14\x14\x92I\x22\xa5$\
+\x92I)I$\x92JRI$\x92\x94\x92I$\xa5\
+$\x92I)I$\x92JR\xa9\xd5\xbf\xe4\xdc\x9f\xf8\
+\xb2\xad\xaa\x9d[\xfeM\xc9\xff\x00\x8b)\x99\x7f\x9b\x9f\
+\xf7O\xe4\x89|\xa7\xc8\xbcZd\xe9\x96\x0bII$\
+\x92JRI$\x92\x94\x92I$\xa5$\x92I)I\
+$\x92JRI$\x92\x94\x92I$\xa5$\x92I)\
+I$\x92JRI$\x92\x94\x92I$\xa5$\x92I\
+)I$\x92JRI$\x92\x94\x92I$\xa5$\x97\
+\x1c\xa2W\x8f\x91w\xf3U=\xfemi(\x80N\x80\
+Z\x91\xa4\xaf\xd7\xd1:\x9d\xbcPZ<^C\x7f)\
+\x95j\xaf\xaa\xf9\x8e\xfev\xda\xd9\xf0\x97\x1f\xc8\xd5$\
+yl\xd3\xdb\x1c\xbe\xa2\xbf5\xc3\x1c\xce\xd1.2K\
+\xa4\xaf\xea\xb5\x03\xf9\xdb\xde\xef\xea\x80\xdf\xcb\xb9Z\xab\
+\xea\xff\x00K\xaf\x9a\x8d\x87\xc5\xee'\xf0\x04\x0f\xc1M\
+\x1f\x87\xe7\x96\xfc1\xf3?\xc2\xd7\x0c\x13=\x83\xc8\xa2\
+\xd7\x8d\x91w\xf35>\xcf\xea4\xbb\xf2\x05\xdaW\x85\
+\x87O\xf3TV\xcf\x83B:\x96?\x0c\xfd\xec\x9f`\
+\xfe\xd5\xe3\x97\xef'\x8e\xab\xa1\xf5K\x7f\xc0\x96\x0f\x17\
+\x90?\x09\x95n\xbf\xaa\xf9\x8e\xfev\xca\xd8<\xa5\xc7\
+\xf2\x05\xd3$\xa6\x8f\xc3\xf0\x8d\xf8\xa5\xe6\x7f\x82\xe1\x82\
+\x03\xb9p\xea\xfa\xad\x8e?\x9e\xb9\xef\xfe\xa8\x0d\x1f\x8e\
+\xe5\x7f\x1b\xa3t\xecR\x1c\xca\x83\x9c8s\xfd\xc7\xf1\
+\xd1]IM\x0e[\x0c5\x8c\x07\xe7\xf9\xaf\x18\xe06\
+\x01I$\x92\x95r\x92I$\x94\xa4\x92I%)$\
+\x92IJI$\x92R\x92I$\x94\xa4\x92I%)\
+$\x92IJI$\x92R\x95N\xad\xff\x00&\xe4\xff\
+\x00\xc5\x95mT\xea\xdf\xf2nO\xfcYL\xcb\xfc\xdc\
+\xff\x00\xba\x7f$K\xe5>E\xe2\xd3'L\xb0ZJ\
+I$\x92R\x92I$\x94\xa4\x92I%)$\x92I\
+JI$\x92R\x92I$\x94\xa4\x92I%)$\x92\
+IJI$\x92R\x92I\x12\xba/\xbb\xf9\x9a\xdfg\
+\xf5ZO\xe4D\x02t\x1a\xa9\x1aJ\xf5}\x17\xa9\xdb\
+\xc5\x0e\x1f\xd6!\xbf\xf5D+u}X\xcdw\xf3\xb6\
+WX\xf2\x97\x1f\xc8\x07\xe2\xa4\x8f-\x9a{c\x97\xd9\
+_\x9a\xe1\x8egh\x97\x19%\xd1\xd7\xf5Z\x81\xfc\xed\
+\xeew\xf5@o\xe5\xdc\xad\xd5\xf5\x7f\xa6W\xcdf\xc3\
+\xe2\xf7\x1f\xc8\xd8\x0ah\xfc?<\xb7\x11\x8f\x99\xfe\x16\
+\xb8`\x99\xec\x1eE\x12\xbc{\xee1Uoy\xfeK\
+K\xbf ]\xadX8T\xff\x005Em\xf84\x7f\
+r4\x01\xa0R\xc7\xe1\x87\xf4\xb2}\x83\xfbW\x8e_\
+\xbc\x9e>\xae\x89\xd5-\xe2\x82\xd1\xe2\xf2\x1b\xf8\x13*\
+\xd5\x7fV3]\xfc\xe5\x95\xb3\xe1.?\x90.\x9d%\
+4~\x1d\x84ne/3\xfc\x17\x0c\x10\x1b\xd9p\xea\
+\xfa\xad@\xfez\xf7\xbf\xfa\x807\xf2\xefV\xab\xfa\xbf\
+\xd2\xeb\xe6\xb2\xf3\xfc\xa7\x13\xf9!i$\xa5\x8f+\x82\
+;c\x8f\xd7\xd5\xf9\xae\x18\xe0?D \xab\x07\x0e\x8d\
+j\xa2\xb6\x11\xdc4O\xdf\xca:I)DDt\x00\
+\x0f%\xe0\x01\xb2\x92I$T\xa4\x92I%)$\x92\
+IJI$\x92R\x92I$\x94\xa4\x92I%)$\
+\x92IJI$\x92R\x92I$\x94\xa4\x92I%)\
+$\x92IJI$\x92R\x92I$\x94\xa4\x92I%\
+)T\xea\xdf\xf2nO\xfcYV\xd5N\xad\xff\x00&\
+\xe4\xff\x00\xc5\x94\xcc\xbf\xcd\xcf\xfb\xa7\xf2D\xbeS\xe4\
+^-2t\xcb\x05\xa4\xa4\x92I%)$\x92IJ\
+I$\x92R\x92IN\xban\xbbJku\x9f\xd4i\
+w\xe4D\x02t\x1a\xa9\x82J\xf5}\x17\xa9\xdb\xf4h\
+p\xfe\xb47\xfe\xa8\x85j\xaf\xab\x19\xcf\x83c\xeb\xac\
+|K\x8f\xe0\x00\xfcT\x91\xe5\xf3Klr\xfb+\xf3\
+\x5c1\xcc\xed\x12\xe3\xa4\xba:\xfe\xaa\xd2?\x9e\xbd\xce\
+\xfe\xabC\x7f.\xe5j\xbf\xab\xdd2\xbf\xa4\xc7Y\xfd\
+w\x1f\xfb\xee\xd54~\x1f\x9e[\x88\xc7\xcc\xff\x00\x0b\
+\x5c0L\xf6\x0f$\x89]\x17Zb\xaa\xdc\xf3\xe0\xd6\
+\x93\xf9\x17iV\x06\x15?\xcdQ[|\xc3D\xfd\xe8\
+\xe0\x00 h\x14\xb1\xf8a\xfd,\x9f`^9~\xf2\
+x\xea\xba/S\xb7\x8a\x1c\xd1\xe2\xf2\x1b\xf88\xca\xb5\
+_\xd5\x8c\xe7\x7f8\xfa\xd9\xf3.?\x91u\x09)\xa3\
+\xf0\xec#s)}k\xf2\x5c0@oe\xc2\xab\xea\
+\xad#\xf9\xeb\xdc\xef&\x00\xdf\xcb\xbd[\xaf\xea\xf7K\
+\xaf\x9a\xdc\xf3\xfc\xa7\x1f\xe1\x0bI%,y\x5c\x11\xdb\
+\x1c~\xbe\xaf\xcdp\xc7\x01\xfa#\xf3k\xd5\x81\x85L\
+\x1a\xa8\xad\xa4w\xda'\xef\xe5XI%(\x88\x8e\x80\
+\x01\xe5\xa2\xf0\x00\xd9I$\x92*RI$\x92\x94\x92\
+I$\xa5$\x92I)I$\x92JRI$\x92\x94\
+\x92I$\xa5$\x92I)I$\x92JRI$\x92\
+\x94\x92I$\xa5$\x92I)I$\x92JRI$\
+\x92\x94\x92I$\xa5$\x92I)I$\x92JRI\
+$\x92\x94\x92I$\xa5$\x92I)J\xa7V\xff\x00\
+\x93r\x7f\xe2\xca\xb6\x83\x99A\xc9\xc5\xb7\x1d\xa44\xd8\
+\xd2\xd0OiM\xc8\x09\x84\x80\xdc\xc4\x8f\xc1\x12\xd4\x11\
+\xe0\xf0\xc9\x97E_\xd5Z\x86\xb7d9\xdf\xd5ho\
+\xe5.V\xeb\xfa\xbb\xd3+\xfaMu\x9f\xd6q\xff\x00\
+\xbe\xedYQ\xf8~yn\x04|\xcf\xf0\xb6\xb0\xc13\
+\xd8<\x92\x9b)\xb6\xd3\x15\xb1\xcf?\xc9\x04\xfeE\xda\
+\xd5\xd3\xf0i\xfej\x8a\xda|v\x89\xfb\xf9G\x00\x01\
+\x00@\xf2SG\xe1\x87\xf4\xb2\x0f\xa0^9~\xf2x\
+\xda\xba7S\xb7\xe8\xe3\xb9\xa3\xc5\xf0\xcf\xfa\xa2\x0a\xb7\
+_\xd5\x8c\xe7\x7f8\xfa\xd9\xf3'\xf8.\xa1%,~\
+\x1d\x84ne/\xad~K\x86\x08\x0d\xec\xb85}U\
+\xa8\x7f=\x90\xe3\xe4\xc6\x86\xfe.\xdc\xad\xd5\xf5{\xa6\
+W\xcb\x1da\xf1{\x8f\xf0\x85\xa6\x92\x9a<\xae\x08\xed\
+\x8c}}_\x9a\xe1\x8e\x03\xf4G\xe6\xd6\xaf\xa7`\xd3\
+\x1e\x9d\x15\x828;A?yV\x22\x13\xa4\xa5\x11\x8c\
+t\x88\x03\xc8R\xf0\x00\xdbE$\x92H\xa9I$\x92\
+JRI$\x92\x94\x92I$\xa5$\x92I)I$\
+\x92JRI$\x92\x94\x92I$\xa5$\x92I)I\
+$\x92JRI$\x92\x94\x92I$\xa5$\x92I)\
+I$\x92JRI$\x92\x94\x92I$\xa5$\x92I\
+)I$\x92JRI$\x92\x94\x92I$\xa5$\x92\
+I)I$\x92JRI$\x92\x9f\xff\xd9\x0aen\
+dstream \x0aendobj\x0a\
+\x0a32 0 obj\x0a\x0a<<\x0a/S\
+ /GoTo\x0a/D [11 0 \
+R /FitH 718]\x0a>>\x0a\
+endobj\x0a\x0a25 0 obj\
+\x0a\x0a<<\x0a/Type /Outl\
+ines\x0a/Count 1\x0a/F\
+irst 33 0 R\x0a/Las\
+t 33 0 R\x0a>>\x0aendo\
+bj\x0a\x0a33 0 obj\x0a\x0a<<\
+\x0a/A 32 0 R\x0a/Pare\
+nt 25 0 R\x0a/Title\
+ (the tiger)\x0a>>\x0a\
+endobj\x0a\x0a23 0 obj\
+\x0a\x0a<<\x0a/Subtype /X\
+ML\x0a/Length 4031\x0a\
+/Type /Metadata\x0a\
+>>\x0astream\x0a<?xpac\
+ket begin=\x22\xef\xbb\xbf\x22 \
+id=\x22W5M0MpCehiHz\
+reSzNTczkc9d\x22?>\x0a\
+<x:xmpmeta xmlns\
+:x=\x22adobe:ns:met\
+a/\x22 x:xmptk=\x22Ado\
+be XMP Core 4.0-\
+c316 44.253921, \
+Sun Oct 01 2006 \
+17:08:23\x22>\x0a <r\
+df:RDF xmlns:rdf\
+=\x22http://www.w3.\
+org/1999/02/22-r\
+df-syntax-ns#\x22>\x0a\
+ <rdf:Descr\
+iption rdf:about\
+=\x22\x22\x0a \
+xmlns:xap=\x22http:\
+//ns.adobe.com/x\
+ap/1.0/\x22>\x0a \
+ <xap:ModifyDa\
+te>2015-12-04T10\
+:43:58+01:00</xa\
+p:ModifyDate>\x0a \
+ <xap:Crea\
+teDate>2015-12-0\
+4T10:38:02+01:00\
+</xap:CreateDate\
+>\x0a <xap:\
+MetadataDate>201\
+5-12-04T10:43:58\
++01:00</xap:Meta\
+dataDate>\x0a \
+</rdf:Descriptio\
+n>\x0a <rdf:De\
+scription rdf:ab\
+out=\x22\x22\x0a \
+ xmlns:dc=\x22htt\
+p://purl.org/dc/\
+elements/1.1/\x22>\x0a\
+ <dc:for\
+mat>application/\
+pdf</dc:format>\x0a\
+ <dc:tit\
+le>\x0a \
+<rdf:Alt>\x0a \
+ <rdf:li\
+ xml:lang=\x22x-def\
+ault\x22>Test Docum\
+ent for Qt PDF r\
+endering</rdf:li\
+>\x0a </\
+rdf:Alt>\x0a \
+ </dc:title>\x0a \
+ <dc:descr\
+iption>\x0a \
+ <rdf:Alt>\x0a \
+ <rd\
+f:li xml:lang=\x22x\
+-default\x22>testin\
+g of portable do\
+cument format</r\
+df:li>\x0a \
+ </rdf:Alt>\x0a \
+ </dc:desc\
+ription>\x0a \
+ <dc:creator>\x0a \
+ <rdf:\
+Bag>\x0a \
+ <rdf:li>The \
+Qt Company</rdf:\
+li>\x0a \
+</rdf:Bag>\x0a \
+ </dc:creator\
+>\x0a <dc:s\
+ubject>\x0a \
+ <rdf:Bag>\x0a \
+ <rd\
+f:li>PDF</rdf:li\
+>\x0a \
+ <rdf:li>renderi\
+ng</rdf:li>\x0a \
+ <rdf:\
+li>search</rdf:l\
+i>\x0a \
+ <rdf:li>TOC</r\
+df:li>\x0a \
+ </rdf:Bag>\x0a \
+ </dc:subj\
+ect>\x0a </rdf\
+:Description>\x0a \
+ <rdf:Descrip\
+tion rdf:about=\x22\
+\x22\x0a xm\
+lns:xapMM=\x22http:\
+//ns.adobe.com/x\
+ap/1.0/mm/\x22>\x0a \
+ <xapMM:Doc\
+umentID>uuid:2b0\
+b68ee-0b1f-6045-\
+a8ea-7f7d134162e\
+f</xapMM:Documen\
+tID>\x0a <x\
+apMM:InstanceID>\
+uuid:36d03ad5-25\
+6c-474c-822b-42b\
+ac4cfe5ad</xapMM\
+:InstanceID>\x0a \
+ </rdf:Descrip\
+tion>\x0a <rdf\
+:Description rdf\
+:about=\x22\x22\x0a \
+ xmlns:pdf=\
+\x22http://ns.adobe\
+.com/pdf/1.3/\x22>\x0a\
+ <pdf:Ke\
+ywords>PDF, rend\
+ering, search, T\
+OC</pdf:Keywords\
+>\x0a </rdf:De\
+scription>\x0a </\
+rdf:RDF>\x0a</x:xmp\
+meta>\x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a\
+ \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \
+\x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a\
+ \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \x0a<?xpacket \
+end=\x22w\x22?>\x0aendstr\
+eam \x0aendobj\x0a\x0a26 \
+0 obj\x0a\x0a<<\x0a/Nums \
+[0 \x0a<<\x0a/P (\xfe\xff\x00Q\x00\
+t)\x0a>> 1 \x0a<<\x0a/S /\
+D\x0a>> 2 \x0a<<\x0a/S /r\
+\x0a>>]\x0a>>\x0aendobj\x0a\x0a\
+34 0 obj\x0a\x0a<<\x0a/Ke\
+ywords (PDF, ren\
+dering, search, \
+TOC)\x0a/ModDate (D\
+:20151204104358+\
+01'00')\x0a/Creatio\
+nDate (D:2015120\
+4103802+01'00')\x0a\
+/Subject (testin\
+g of portable do\
+cument format)\x0a/\
+Author (The Qt C\
+ompany)\x0a/Title (\
+Test Document fo\
+r Qt PDF renderi\
+ng)\x0a>>\x0aendobj\x0axr\
+ef\x0a0 35\x0a00000000\
+00 65535 f \x0a0000\
+000015 00000 n \x0a\
+0000000266 00000\
+ n \x0a0000051153 0\
+0000 n \x0a00000001\
+67 00000 n \x0a0000\
+052661 00000 n \x0a\
+0000048499 00000\
+ n \x0a0000048533 0\
+0000 n \x0a00000006\
+99 00000 n \x0a0000\
+001891 00000 n \x0a\
+0000011311 00000\
+ n \x0a0000011576 0\
+0000 n \x0a00000118\
+80 00000 n \x0a0000\
+051448 00000 n \x0a\
+0000011815 00000\
+ n \x0a0000048037 0\
+0000 n \x0a00000480\
+87 00000 n \x0a0000\
+048939 00000 n \x0a\
+0000050266 00000\
+ n \x0a0000050368 0\
+0000 n \x0a00000504\
+56 00000 n \x0a0000\
+053003 00000 n \x0a\
+0000052734 00000\
+ n \x0a0000071321 0\
+0000 n \x0a00000528\
+56 00000 n \x0a0000\
+071177 00000 n \x0a\
+0000075438 00000\
+ n \x0a0000053307 0\
+0000 n \x0a00000532\
+71 00000 n \x0a0000\
+056564 00000 n \x0a\
+0000053886 00000\
+ n \x0a0000053424 0\
+0000 n \x0a00000711\
+22 00000 n \x0a0000\
+071253 00000 n \x0a\
+0000075521 00000\
+ n \x0atrailer\x0a\x0a<<\x0a\
+/Info 34 0 R\x0a/ID\
+ [<4d817246d2ed4\
+7c78e1b455cf09ed\
+407> <086f96dd45\
+7c4bbca529ed1348\
+a1b7b0>]\x0a/Root 2\
+2 0 R\x0a/Size 35\x0a>\
+>\x0astartxref\x0a7577\
+5\x0a%%EOF\x0a\
+\x00\x00\x02\xa5\
+<\
+svg xmlns=\x22http:\
+//www.w3.org/200\
+0/svg\x22 viewBox=\x22\
+0 0 24 24\x22>\x0a <d\
+efs id=\x22defs3051\
+\x22>\x0a <style ty\
+pe=\x22text/css\x22 id\
+=\x22current-color-\
+scheme\x22>\x0a .\
+ColorScheme-Text\
+ {\x0a color\
+:#232629;\x0a \
+}\x0a </style>\
+\x0a </defs>\x0a <pat\
+h\x0a style=\x22fil\
+l:currentColor;f\
+ill-opacity:1;st\
+roke:none\x22\x0a\x09d=\x22M\
+ 8 3 L 0.9433593\
+8 10.056641 L 0 \
+11 L 0.94335938 \
+11.943359 L 8 19\
+ L 20.333984 19 \
+L 22 19 L 22 3 L\
+ 20.333984 3 L 8\
+ 3 z M 11.320312\
+ 7 L 14 9.679687\
+5 L 16.679688 7 \
+L 18 8.3203125 L\
+ 15.320312 11 L \
+18 13.679688 L 1\
+6.679688 15 L 14\
+ 12.320312 L 11.\
+320312 15 L 10 1\
+3.679688 L 12.67\
+9688 11 L 10 8.3\
+203125 L 11.3203\
+12 7 z \x22\x0a cla\
+ss=\x22ColorScheme-\
+Text\x22\x0a trans\
+form=\x22translate(\
+1,1)\x22\x0a />\x0a</s\
+vg>\x0a\
+\x00\x00\x015\
+<\
+svg height=\x2224\x22 \
+width=\x2224\x22 xmlns\
+=\x22http://www.w3.\
+org/2000/svg\x22>\x0a \
+ <style type=\x22\
+text/css\x22 id=\x22cu\
+rrent-color-sche\
+me\x22>\x0a .Co\
+lorScheme-Text {\
+\x0a col\
+or:#232629;\x0a \
+ }\x0a </styl\
+e>\x0a <path d=\x22\
+M4.707 16L4 15.2\
+93l8-8 8 8-.707.\
+707L12 8.707\x22 cl\
+ass=\x22ColorScheme\
+-Text\x22 fill=\x22cur\
+rentColor\x22/>\x0a</s\
+vg>\x0a\
+\x00\x00\x02\x02\
+<\
+svg xmlns=\x22http:\
+//www.w3.org/200\
+0/svg\x22 viewBox=\x22\
+0 0 24 24\x22>\x0a <d\
+efs id=\x22defs3051\
+\x22>\x0a <style ty\
+pe=\x22text/css\x22 id\
+=\x22current-color-\
+scheme\x22>\x0a .\
+ColorScheme-Text\
+ {\x0a color\
+:#232629;\x0a \
+}\x0a </style>\
+\x0a </defs>\x0a <pat\
+h style=\x22fill:cu\
+rrentColor;fill-\
+opacity:1;stroke\
+:none\x22\x0a d=\x22M\
+ 4.7070312 8 L 4\
+ 8.7070312 L 10.\
+125 14.832031 L \
+12 16.707031 L 1\
+3.875 14.832031 \
+L 20 8.7070312 L\
+ 19.292969 8 L 1\
+3.167969 14.125 \
+L 12 15.292969 L\
+ 10.832031 14.12\
+5 L 4.7070312 8 \
+z \x22\x0a class=\x22\
+ColorScheme-Text\
+\x22\x0a />\x0a</svg>\
+\x0a\
+\x00\x00\x02\x02\
+<\
+svg xmlns=\x22http:\
+//www.w3.org/200\
+0/svg\x22 viewBox=\x22\
+0 0 24 24\x22>\x0a <d\
+efs id=\x22defs3051\
+\x22>\x0a <style ty\
+pe=\x22text/css\x22 id\
+=\x22current-color-\
+scheme\x22>\x0a .\
+ColorScheme-Text\
+ {\x0a color\
+:#232629;\x0a \
+}\x0a </style>\
+\x0a </defs>\x0a <pat\
+h style=\x22fill:cu\
+rrentColor;fill-\
+opacity:1;stroke\
+:none\x22\x0a d=\x22M\
+ 15.292969 4 L 9\
+.1679688 10.125 \
+L 7.2929688 12 L\
+ 9.1679688 13.87\
+5 L 15.292969 20\
+ L 16 19.292969 \
+L 9.875 13.16796\
+9 L 8.7070312 12\
+ L 9.875 10.8320\
+31 L 16 4.707031\
+2 L 15.292969 4 \
+z \x22\x0a class=\x22\
+ColorScheme-Text\
+\x22\x0a />\x0a</svg>\
+\x0a\
+\x00\x00\x02\xfd\
+<\
+svg xmlns=\x22http:\
+//www.w3.org/200\
+0/svg\x22 viewBox=\x22\
+0 0 24 24\x22>\x0a <d\
+efs id=\x22defs3051\
+\x22>\x0a <style ty\
+pe=\x22text/css\x22 id\
+=\x22current-color-\
+scheme\x22>\x0a .\
+ColorScheme-Text\
+ {\x0a color\
+:#232629;\x0a \
+}\x0a </style>\
+\x0a </defs>\x0a <pat\
+h style=\x22fill:cu\
+rrentColor;fill-\
+opacity:1;stroke\
+:none\x22\x0a d=\x22M\
+ 4 4 L 4 11 L 5 \
+11 L 5 5 L 19 5 \
+L 19 19 L 13 19 \
+L 13 20 L 20 20 \
+L 20 19 L 20 5 L\
+ 20 4 L 5 4 L 4 \
+4 z M 15.292969 \
+8 L 12 11.292969\
+ L 12 9 L 11 9 L\
+ 11 13 L 12 13 L\
+ 15 13 L 15 12 L\
+ 12.707031 12 L \
+16 8.7070312 L 1\
+5.292969 8 z M 4\
+ 14 L 4 16 L 5 1\
+6 L 5 15 L 6 15 \
+L 6 14 L 4 14 z \
+M 8 14 L 8 15 L \
+9 15 L 9 16 L 10\
+ 16 L 10 14 L 8 \
+14 z M 4 18 L 4 \
+20 L 6 20 L 6 19\
+ L 5 19 L 5 18 L\
+ 4 18 z M 9 18 L\
+ 9 19 L 8 19 L 8\
+ 20 L 10 20 L 10\
+ 18 L 9 18 z \x22\x0a \
+ class=\x22Color\
+Scheme-Text\x22\x0a \
+ />\x0a</svg>\x0a\
+"
+
+qt_resource_name = b"\
+\x00\x09\
+\x0d\xcf \x82\
+\x00p\
+\x00d\x00f\x00v\x00i\x00e\x00w\x00e\x00r\
+\x00\x09\
+\x0alxC\
+\x00r\
+\x00e\x00s\x00o\x00u\x00r\x00c\x00e\x00s\
+\x00\x11\
+\x09\x02%\xc7\
+\x00z\
+\x00o\x00o\x00m\x00-\x00f\x00i\x00t\x00-\x00b\x00e\x00s\x00t\x00.\x00s\x00v\x00g\
+\
+\x00\x0b\
+\x03\x03\x96\xc7\
+\x00z\
+\x00o\x00o\x00m\x00-\x00i\x00n\x00.\x00s\x00v\x00g\
+\x00\x13\
+\x0a\xb9\xc5\x87\
+\x00e\
+\x00d\x00i\x00t\x00-\x00s\x00e\x00l\x00e\x00c\x00t\x00-\x00a\x00l\x00l\x00.\x00s\
+\x00v\x00g\
+\x00\x11\
+\x0e\xab>\xc7\
+\x00z\
+\x00o\x00o\x00m\x00-\x00o\x00r\x00i\x00g\x00i\x00n\x00a\x00l\x00.\x00s\x00v\x00g\
+\
+\x00\x15\
+\x0f!\xbe\x07\
+\x00g\
+\x00o\x00-\x00n\x00e\x00x\x00t\x00-\x00v\x00i\x00e\x00w\x00-\x00p\x00a\x00g\x00e\
+\x00.\x00s\x00v\x00g\
+\x00\x0d\
+\x01\x1c\xbc'\
+\x00e\
+\x00d\x00i\x00t\x00-\x00c\x00o\x00p\x00y\x00.\x00s\x00v\x00g\
+\x00\x12\
+\x01\xfcA\x87\
+\x00z\
+\x00o\x00o\x00m\x00-\x00f\x00i\x00t\x00-\x00w\x00i\x00d\x00t\x00h\x00.\x00s\x00v\
+\x00g\
+\x00\x11\
+\x01\xa6\xc9\x07\
+\x00d\
+\x00o\x00c\x00u\x00m\x00e\x00n\x00t\x00-\x00o\x00p\x00e\x00n\x00.\x00s\x00v\x00g\
+\
+\x00\x10\
+\x0c\xa1\x91\x87\
+\x00r\
+\x00o\x00t\x00a\x00t\x00e\x00-\x00r\x00i\x00g\x00h\x00t\x00.\x00s\x00v\x00g\
+\x00\x0f\
+\x0e\xc2?'\
+\x00r\
+\x00o\x00t\x00a\x00t\x00e\x00-\x00l\x00e\x00f\x00t\x00.\x00s\x00v\x00g\
+\x00\x08\
+\x0c\xa7Y\xe6\
+\x00t\
+\x00e\x00s\x00t\x00.\x00p\x00d\x00f\
+\x00\x0e\
+\x0d\x8b4g\
+\x00e\
+\x00d\x00i\x00t\x00-\x00c\x00l\x00e\x00a\x00r\x00.\x00s\x00v\x00g\
+\x00\x10\
+\x00\xe9\xe4\xe7\
+\x00g\
+\x00o\x00-\x00u\x00p\x00-\x00s\x00e\x00a\x00r\x00c\x00h\x00.\x00s\x00v\x00g\
+\x00\x12\
+\x0f:\x80G\
+\x00g\
+\x00o\x00-\x00d\x00o\x00w\x00n\x00-\x00s\x00e\x00a\x00r\x00c\x00h\x00.\x00s\x00v\
+\x00g\
+\x00\x19\
+\x0d\x16K\xa7\
+\x00g\
+\x00o\x00-\x00p\x00r\x00e\x00v\x00i\x00o\x00u\x00s\x00-\x00v\x00i\x00e\x00w\x00-\
+\x00p\x00a\x00g\x00e\x00.\x00s\x00v\x00g\
+\x00\x0c\
+\x06\xeb\x9ag\
+\x00z\
+\x00o\x00o\x00m\x00-\x00o\x00u\x00t\x00.\x00s\x00v\x00g\
+"
+
+qt_resource_struct = b"\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x18\x00\x02\x00\x00\x00\x10\x00\x00\x00\x03\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x01\xec\x00\x00\x00\x00\x00\x01\x00\x01D\xb8\
+\x00\x00\x01\x83\x17\xd5\xbe\xab\
+\x00\x00\x00\xf8\x00\x00\x00\x00\x00\x01\x00\x00\x0er\
+\x00\x00\x01\x83\x17\xd5\xbe\xab\
+\x00\x00\x01B\x00\x00\x00\x00\x00\x01\x00\x00\x12\x1d\
+\x00\x00\x01\x83\x17\xd5\xbe\xab\
+\x00\x00\x01\x18\x00\x00\x00\x00\x00\x01\x00\x00\x10B\
+\x00\x00\x01\x83\x17\xd5\xbe\xab\
+\x00\x00\x00X\x00\x00\x00\x00\x00\x01\x00\x00\x03\x10\
+\x00\x00\x01\x83\x17\xd5\xbe\xab\
+\x00\x00\x02t\x00\x00\x00\x00\x00\x01\x00\x01I\xfd\
+\x00\x00\x01\x83\x17\xd5\xbe\xab\
+\x00\x00\x000\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
+\x00\x00\x01\x83\x17\xd5\xbe\xab\
+\x00\x00\x00t\x00\x00\x00\x00\x00\x01\x00\x00\x06r\
+\x00\x00\x01\x83\x17\xd5\xbe\xab\
+\x00\x00\x01j\x00\x00\x00\x00\x00\x01\x00\x00\x13\xa7\
+\x00\x00\x01\x83\x17\xd5\xbe\xab\
+\x00\x00\x01\xb4\x00\x00\x00\x00\x00\x01\x00\x00\x16\xb2\
+\x00\x00\x01\x83\x17\xd5\xbe\xab\
+\x00\x00\x02<\x00\x00\x00\x00\x00\x01\x00\x01G\xf7\
+\x00\x00\x01\x83\x17\xd5\xbe\xab\
+\x00\x00\x01\xca\x00\x00\x00\x00\x00\x01\x00\x01B\x0f\
+\x00\x00\x01\x83\x17\xd5\xbe\xab\
+\x00\x00\x00\xa0\x00\x00\x00\x00\x00\x01\x00\x00\x09\xe4\
+\x00\x00\x01\x83\x17\xd5\xbe\xab\
+\x00\x00\x01\x90\x00\x00\x00\x00\x00\x01\x00\x00\x15$\
+\x00\x00\x01\x83\x17\xd5\xbe\xab\
+\x00\x00\x00\xc8\x00\x00\x00\x00\x00\x01\x00\x00\x0cl\
+\x00\x00\x01\x83\x17\xd5\xbe\xab\
+\x00\x00\x02\x12\x00\x00\x00\x00\x00\x01\x00\x01E\xf1\
+\x00\x00\x01\x83\x17\xd5\xbe\xab\
+"
+
+def qInitResources():
+ QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+def qCleanupResources():
+ QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+qInitResources()
diff --git a/examples/pdf/quickpdfviewer/resources/document-open.svg b/examples/pdf/quickpdfviewer/resources/document-open.svg
new file mode 100644
index 000000000..bf23123a3
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/resources/document-open.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#232629;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="m4 4v24h24l-1-1h-22v-13h5l3-3h14v16l1 1v-21h-10l-3-3z"
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/examples/pdf/quickpdfviewer/resources/edit-clear.svg b/examples/pdf/quickpdfviewer/resources/edit-clear.svg
new file mode 100644
index 000000000..1c35aaf04
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/resources/edit-clear.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#232629;
+ }
+ </style>
+ </defs>
+ <path
+ style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 8 3 L 0.94335938 10.056641 L 0 11 L 0.94335938 11.943359 L 8 19 L 20.333984 19 L 22 19 L 22 3 L 20.333984 3 L 8 3 z M 11.320312 7 L 14 9.6796875 L 16.679688 7 L 18 8.3203125 L 15.320312 11 L 18 13.679688 L 16.679688 15 L 14 12.320312 L 11.320312 15 L 10 13.679688 L 12.679688 11 L 10 8.3203125 L 11.320312 7 z "
+ class="ColorScheme-Text"
+ transform="translate(1,1)"
+ />
+</svg>
diff --git a/examples/pdf/quickpdfviewer/resources/edit-copy.svg b/examples/pdf/quickpdfviewer/resources/edit-copy.svg
new file mode 100644
index 000000000..9dd16877d
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/resources/edit-copy.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#232629;
+ }
+ </style>
+ </defs>
+ <path
+ style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="m4 3v1 13h1 2 1v1 1h6l4-4v-1-7-1h-2v-3h-1-10-1m1 1h10v2h-7v1 9h-1-2v-12m4 3h8v7h-3-1v1 3h-4v-11"
+ class="ColorScheme-Text"
+ transform="translate(1,1)"
+ />
+</svg>
diff --git a/examples/pdf/quickpdfviewer/resources/edit-select-all.svg b/examples/pdf/quickpdfviewer/resources/edit-select-all.svg
new file mode 100644
index 000000000..5f21950a0
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/resources/edit-select-all.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#232629;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 4 4 L 4 5 L 4 8 L 5 8 L 5 5 L 8 5 L 8 4 L 5 4 L 4 4 z M 16 4 L 16 5 L 19 5 L 19 8 L 20 8 L 20 4 L 16 4 z M 6 6 L 6 11 L 11 11 L 11 6 L 6 6 z M 13 6 L 13 11 L 18 11 L 18 6 L 13 6 z M 7 7 L 10 7 L 10 10 L 7 10 L 7 7 z M 14 7 L 17 7 L 17 10 L 14 10 L 14 7 z M 6 13 L 6 18 L 11 18 L 11 13 L 6 13 z M 13 13 L 13 18 L 18 18 L 18 13 L 13 13 z M 7 14 L 10 14 L 10 17 L 7 17 L 7 14 z M 14 14 L 17 14 L 17 17 L 14 17 L 14 14 z M 4 16 L 4 20 L 5 20 L 8 20 L 8 19 L 5 19 L 5 16 L 4 16 z M 19 16 L 19 19 L 16 19 L 16 20 L 20 20 L 20 19 L 20 16 L 19 16 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/examples/pdf/quickpdfviewer/resources/go-down-search.svg b/examples/pdf/quickpdfviewer/resources/go-down-search.svg
new file mode 100644
index 000000000..ae17ab93b
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/resources/go-down-search.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#232629;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 4.7070312 8 L 4 8.7070312 L 10.125 14.832031 L 12 16.707031 L 13.875 14.832031 L 20 8.7070312 L 19.292969 8 L 13.167969 14.125 L 12 15.292969 L 10.832031 14.125 L 4.7070312 8 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/examples/pdf/quickpdfviewer/resources/go-next-view-page.svg b/examples/pdf/quickpdfviewer/resources/go-next-view-page.svg
new file mode 100644
index 000000000..e453ddbec
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/resources/go-next-view-page.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#232629;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 8.7070312 4 L 8 4.7070312 L 14.125 10.832031 L 15.292969 12 L 14.125 13.167969 L 8 19.292969 L 8.7070312 20 L 14.832031 13.875 L 16.707031 12 L 14.832031 10.125 L 8.7070312 4 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/examples/pdf/quickpdfviewer/resources/go-previous-view-page.svg b/examples/pdf/quickpdfviewer/resources/go-previous-view-page.svg
new file mode 100644
index 000000000..b032309e9
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/resources/go-previous-view-page.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#232629;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 15.292969 4 L 9.1679688 10.125 L 7.2929688 12 L 9.1679688 13.875 L 15.292969 20 L 16 19.292969 L 9.875 13.167969 L 8.7070312 12 L 9.875 10.832031 L 16 4.7070312 L 15.292969 4 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/examples/pdf/quickpdfviewer/resources/go-up-search.svg b/examples/pdf/quickpdfviewer/resources/go-up-search.svg
new file mode 100644
index 000000000..5cc155873
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/resources/go-up-search.svg
@@ -0,0 +1,8 @@
+<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#232629;
+ }
+ </style>
+ <path d="M4.707 16L4 15.293l8-8 8 8-.707.707L12 8.707" class="ColorScheme-Text" fill="currentColor"/>
+</svg>
diff --git a/examples/pdf/quickpdfviewer/resources/rotate-left.svg b/examples/pdf/quickpdfviewer/resources/rotate-left.svg
new file mode 100644
index 000000000..90ce53c9d
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/resources/rotate-left.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16">
+ <g color="#000" font-weight="400" fill="#474747">
+ <path d="M2 9v1c0 .265.093.53.281.719l3.72 3.719 3.718-3.72c.188-.187.281-.453.281-.718V9H9c-.265 0-.53.093-.719.281l-2.28 2.281-2.282-2.28A1.015 1.015 0 0 0 3 9z"/>
+ <path d="M8.5 3A3.515 3.515 0 0 0 5 6.5V12h2V6.5C7 5.66 7.66 5 8.5 5H13V3z"/>
+ </g>
+</svg>
diff --git a/examples/pdf/quickpdfviewer/resources/rotate-right.svg b/examples/pdf/quickpdfviewer/resources/rotate-right.svg
new file mode 100644
index 000000000..7383d1c84
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/resources/rotate-right.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16">
+ <g font-weight="400" fill="#474747">
+ <path d="M3 3v2h4.5C8.34 5 9 5.66 9 6.5V12h2V6.5C11 4.579 9.421 3 7.5 3z"/>
+ <path d="M6 9h1c.257 0 .529.13.719.313L10 11.592l2.281-2.28C12.471 9.13 12.743 9 13 9h1v1c0 .31-.09.552-.281.75L10 14.406 6.281 10.75C6.091 10.552 6 10.31 6 10z"/>
+ </g>
+</svg>
diff --git a/examples/pdf/quickpdfviewer/resources/test.pdf b/examples/pdf/quickpdfviewer/resources/test.pdf
new file mode 100644
index 000000000..0832dfbed
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/resources/test.pdf
Binary files differ
diff --git a/examples/pdf/quickpdfviewer/resources/zoom-fit-best.svg b/examples/pdf/quickpdfviewer/resources/zoom-fit-best.svg
new file mode 100644
index 000000000..adf302621
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/resources/zoom-fit-best.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 4 4 L 4 5 L 4 8 L 5 8 L 5 5 L 8 5 L 8 4 L 5 4 L 4 4 z M 12 4 L 10 6 L 14 6 L 12 4 z M 16 4 L 16 5 L 19 5 L 19 8 L 20 8 L 20 5 L 20 4 L 19 4 L 16 4 z M 7 7 L 7 17 L 17 17 L 17 7 L 7 7 z M 8 8 L 16 8 L 16 16 L 8 16 L 8 8 z M 6 10 L 4 12 L 6 14 L 6 10 z M 18 10 L 18 14 L 20 12 L 18 10 z M 4 16 L 4 19 L 4 20 L 8 20 L 8 19 L 5 19 L 5 16 L 4 16 z M 19 16 L 19 19 L 16 19 L 16 20 L 20 20 L 20 19 L 20 16 L 19 16 z M 10 18 L 12 20 L 14 18 L 10 18 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/examples/pdf/quickpdfviewer/resources/zoom-fit-width.svg b/examples/pdf/quickpdfviewer/resources/zoom-fit-width.svg
new file mode 100644
index 000000000..985ee5205
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/resources/zoom-fit-width.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 7 7 L 7 17 L 17 17 L 17 7 L 7 7 z M 8 8 L 16 8 L 16 16 L 8 16 L 8 8 z M 6 10 L 4 12 L 6 14 L 6 10 z M 18 10 L 18 14 L 20 12 L 18 10 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/examples/pdf/quickpdfviewer/resources/zoom-in.svg b/examples/pdf/quickpdfviewer/resources/zoom-in.svg
new file mode 100644
index 000000000..efdc9f17d
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/resources/zoom-in.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#232629;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 4 4 L 4 6 L 5 6 L 5 5 L 6 5 L 6 4 L 4 4 z M 9 4 L 9 5 L 11 5 L 11 4 L 9 4 z M 13 4 L 13 5 L 15 5 L 15 4 L 13 4 z M 18 4 L 18 5 L 19 5 L 19 6 L 20 6 L 20 4 L 18 4 z M 12 8 L 12 9 L 14.292969 9 L 11 12.292969 L 11.707031 13 L 15 9.7070312 L 15 12 L 16 12 L 16 8 L 15 8 L 12 8 z M 4 9 L 4 11 L 5 11 L 5 9 L 4 9 z M 19 9 L 19 11 L 20 11 L 20 9 L 19 9 z M 19 13 L 19 15 L 20 15 L 20 13 L 19 13 z M 4 14 L 4 20 L 10 20 L 10 14 L 4 14 z M 5 15 L 9 15 L 9 19 L 5 19 L 5 15 z M 19 18 L 19 19 L 18 19 L 18 20 L 20 20 L 20 18 L 19 18 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/examples/pdf/quickpdfviewer/resources/zoom-original.svg b/examples/pdf/quickpdfviewer/resources/zoom-original.svg
new file mode 100644
index 000000000..1b4080a03
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/resources/zoom-original.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#232629;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 4 4 L 4 5 L 4 7 L 5 7 L 5 5 L 7 5 L 7 4 L 5 4 L 4 4 z M 17 4 L 17 5 L 19 5 L 19 7 L 20 7 L 20 5 L 20 4 L 19 4 L 17 4 z M 6 6 L 6 18 L 18 18 L 18 6 L 6 6 z M 7 7 L 17 7 L 17 17 L 7 17 L 7 7 z M 4 17 L 4 19 L 4 20 L 7 20 L 7 19 L 5 19 L 5 17 L 4 17 z M 19 17 L 19 19 L 17 19 L 17 20 L 20 20 L 20 17 L 19 17 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/examples/pdf/quickpdfviewer/resources/zoom-out.svg b/examples/pdf/quickpdfviewer/resources/zoom-out.svg
new file mode 100644
index 000000000..fcde9e526
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/resources/zoom-out.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#232629;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 4 4 L 4 11 L 5 11 L 5 5 L 19 5 L 19 19 L 13 19 L 13 20 L 20 20 L 20 19 L 20 5 L 20 4 L 5 4 L 4 4 z M 15.292969 8 L 12 11.292969 L 12 9 L 11 9 L 11 13 L 12 13 L 15 13 L 15 12 L 12.707031 12 L 16 8.7070312 L 15.292969 8 z M 4 14 L 4 16 L 5 16 L 5 15 L 6 15 L 6 14 L 4 14 z M 8 14 L 8 15 L 9 15 L 9 16 L 10 16 L 10 14 L 8 14 z M 4 18 L 4 20 L 6 20 L 6 19 L 5 19 L 5 18 L 4 18 z M 9 18 L 9 19 L 8 19 L 8 20 L 10 20 L 10 18 L 9 18 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/examples/pdf/quickpdfviewer/viewer.qml b/examples/pdf/quickpdfviewer/viewer.qml
new file mode 100644
index 000000000..998c41d20
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/viewer.qml
@@ -0,0 +1,307 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Dialogs
+import QtQuick.Layouts
+import QtQuick.Pdf
+
+ApplicationWindow {
+ id: root
+ width: 800
+ height: 1024
+ color: "lightgrey"
+ title: document.title
+ visible: true
+ required property url source // for main.py
+ property real scaleStep: Math.sqrt(2)
+
+ header: ToolBar {
+ RowLayout {
+ anchors.fill: parent
+ anchors.rightMargin: 6
+ ToolButton {
+ action: Action {
+ shortcut: StandardKey.Open
+ icon.source: "qrc:/pdfviewer/resources/document-open.svg"
+ onTriggered: fileDialog.open()
+ }
+ }
+ ToolButton {
+ action: Action {
+ shortcut: StandardKey.ZoomIn
+ enabled: view.sourceSize.width < 10000
+ icon.source: "qrc:/pdfviewer/resources/zoom-in.svg"
+ onTriggered: view.renderScale *= root.scaleStep
+ }
+ }
+ ToolButton {
+ action: Action {
+ shortcut: StandardKey.ZoomOut
+ enabled: view.sourceSize.width > 50
+ icon.source: "qrc:/pdfviewer/resources/zoom-out.svg"
+ onTriggered: view.renderScale /= root.scaleStep
+ }
+ }
+ ToolButton {
+ action: Action {
+ icon.source: "qrc:/pdfviewer/resources/zoom-fit-width.svg"
+ onTriggered: view.scaleToWidth(root.contentItem.width, root.contentItem.height)
+ }
+ }
+ ToolButton {
+ action: Action {
+ icon.source: "qrc:/pdfviewer/resources/zoom-fit-best.svg"
+ onTriggered: view.scaleToPage(root.contentItem.width, root.contentItem.height)
+ }
+ }
+ ToolButton {
+ action: Action {
+ shortcut: "Ctrl+0"
+ icon.source: "qrc:/pdfviewer/resources/zoom-original.svg"
+ onTriggered: view.resetScale()
+ }
+ }
+ ToolButton {
+ action: Action {
+ shortcut: "Ctrl+L"
+ icon.source: "qrc:/pdfviewer/resources/rotate-left.svg"
+ onTriggered: view.pageRotation -= 90
+ }
+ }
+ ToolButton {
+ action: Action {
+ shortcut: "Ctrl+R"
+ icon.source: "qrc:/pdfviewer/resources/rotate-right.svg"
+ onTriggered: view.pageRotation += 90
+ }
+ }
+ ToolButton {
+ action: Action {
+ icon.source: "qrc:/pdfviewer/resources/go-previous-view-page.svg"
+ enabled: view.backEnabled
+ onTriggered: view.back()
+ }
+ ToolTip.visible: enabled && hovered
+ ToolTip.delay: 2000
+ ToolTip.text: "go back"
+ }
+ SpinBox {
+ id: currentPageSB
+ from: 1
+ to: document.pageCount
+ editable: true
+ value: view.currentPage + 1
+ onValueModified: view.goToPage(value - 1)
+ Shortcut {
+ sequence: StandardKey.MoveToPreviousPage
+ onActivated: view.goToPage(currentPageSB.value - 2)
+ }
+ Shortcut {
+ sequence: StandardKey.MoveToNextPage
+ onActivated: view.goToPage(currentPageSB.value)
+ }
+ }
+ ToolButton {
+ action: Action {
+ icon.source: "qrc:/pdfviewer/resources/go-next-view-page.svg"
+ enabled: view.forwardEnabled
+ onTriggered: view.forward()
+ }
+ ToolTip.visible: enabled && hovered
+ ToolTip.delay: 2000
+ ToolTip.text: "go forward"
+ }
+ ToolButton {
+ action: Action {
+ shortcut: StandardKey.SelectAll
+ icon.source: "qrc:/pdfviewer/resources/edit-select-all.svg"
+ onTriggered: view.selectAll()
+ }
+ }
+ ToolButton {
+ action: Action {
+ shortcut: StandardKey.Copy
+ icon.source: "qrc:/pdfviewer/resources/edit-copy.svg"
+ enabled: view.selectedText !== ""
+ onTriggered: view.copySelectionToClipboard()
+ }
+ }
+ Shortcut {
+ sequence: StandardKey.Find
+ onActivated: searchField.forceActiveFocus()
+ }
+ Shortcut {
+ sequence: StandardKey.Quit
+ onActivated: Qt.quit()
+ }
+ }
+ }
+
+ FileDialog {
+ id: fileDialog
+ title: "Open a PDF file"
+ nameFilters: [ "PDF files (*.pdf)" ]
+ onAccepted: document.source = selectedFile
+ }
+
+ Dialog {
+ id: passwordDialog
+ title: "Password"
+ standardButtons: Dialog.Ok | Dialog.Cancel
+ modal: true
+ closePolicy: Popup.CloseOnEscape
+ anchors.centerIn: parent
+ width: 300
+
+ contentItem: TextField {
+ id: passwordField
+ placeholderText: qsTr("Please provide the password")
+ echoMode: TextInput.Password
+ width: parent.width
+ onAccepted: passwordDialog.accept()
+ }
+ onOpened: function() { passwordField.forceActiveFocus() }
+ onAccepted: document.password = passwordField.text
+ }
+
+ Dialog {
+ id: errorDialog
+ title: "Error loading " + document.source
+ standardButtons: Dialog.Close
+ modal: true
+ closePolicy: Popup.CloseOnEscape
+ anchors.centerIn: parent
+ width: 300
+ visible: document.status === PdfDocument.Error
+
+ contentItem: Label {
+ id: errorField
+ text: document.error
+ }
+ }
+
+ PdfScrollablePageView {
+ id: view
+ anchors.fill: parent
+ anchors.leftMargin: searchDrawer.position * searchDrawer.width
+ document: PdfDocument {
+ id: document
+ source: Qt.resolvedUrl(root.source)
+ onPasswordRequired: passwordDialog.open()
+ }
+ searchString: searchField.text
+ }
+
+ Drawer {
+ id: searchDrawer
+ edge: Qt.LeftEdge
+// modal: false
+// dim: false // commented out as workaround for QTBUG-83859
+ width: 300
+ y: root.header.height
+ height: view.height
+ clip: true
+ ListView {
+ id: searchResultsList
+ anchors.fill: parent
+ anchors.margins: 2
+ model: view.searchModel
+ currentIndex: view.searchModel.currentResult
+ ScrollBar.vertical: ScrollBar { }
+ delegate: ItemDelegate {
+ id: resultDelegate
+ required property int index
+ required property int page
+ required property string contextBefore
+ required property string contextAfter
+ width: parent ? parent.width : 0
+ RowLayout {
+ anchors.fill: parent
+ spacing: 0
+ Label {
+ text: "Page " + (resultDelegate.page + 1) + ": "
+ }
+ Label {
+ text: resultDelegate.contextBefore
+ elide: Text.ElideLeft
+ horizontalAlignment: Text.AlignRight
+ Layout.fillWidth: true
+ Layout.preferredWidth: parent.width / 2
+ }
+ Label {
+ font.bold: true
+ text: view.searchString
+ width: implicitWidth
+ }
+ Label {
+ text: resultDelegate.contextAfter
+ elide: Text.ElideRight
+ Layout.fillWidth: true
+ Layout.preferredWidth: parent.width / 2
+ }
+ }
+ highlighted: ListView.isCurrentItem
+ onClicked: view.searchModel.currentResult = resultDelegate.index
+ }
+ }
+ }
+
+ footer: ToolBar {
+ height: footerRow.implicitHeight
+ RowLayout {
+ id: footerRow
+ anchors.fill: parent
+ ToolButton {
+ action: Action {
+ icon.source: "qrc:/pdfviewer/resources/go-up-search.svg"
+ shortcut: StandardKey.FindPrevious
+ onTriggered: view.searchBack()
+ }
+ ToolTip.visible: enabled && hovered
+ ToolTip.delay: 2000
+ ToolTip.text: "find previous"
+ }
+ TextField {
+ id: searchField
+ placeholderText: "search"
+ Layout.minimumWidth: 150
+ Layout.maximumWidth: 300
+ Layout.fillWidth: true
+ onAccepted: searchDrawer.open()
+ Image {
+ visible: searchField.text !== ""
+ source: "qrc:/pdfviewer/resources/edit-clear.svg"
+ anchors {
+ right: parent.right
+ top: parent.top
+ bottom: parent.bottom
+ margins: 3
+ rightMargin: 5
+ }
+ TapHandler {
+ onTapped: searchField.clear()
+ }
+ }
+ }
+ ToolButton {
+ action: Action {
+ icon.source: "qrc:/pdfviewer/resources/go-down-search.svg"
+ shortcut: StandardKey.FindNext
+ onTriggered: view.searchForward()
+ }
+ ToolTip.visible: enabled && hovered
+ ToolTip.delay: 2000
+ ToolTip.text: "find next"
+ }
+ Label {
+ Layout.fillWidth: true
+ property size implicitPointSize: document.pagePointSize(view.currentPage)
+ text: "page " + (view.currentPage + 1) + " of " + document.pageCount +
+ " scale " + view.renderScale.toFixed(2) +
+ " original " + implicitPointSize.width.toFixed(1) + "x" + implicitPointSize.height.toFixed(1) + "pts"
+ visible: document.status === PdfDocument.Ready
+ }
+ }
+ }
+}
diff --git a/examples/pdf/quickpdfviewer/viewer.qrc b/examples/pdf/quickpdfviewer/viewer.qrc
new file mode 100644
index 000000000..3f5fae9f7
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/viewer.qrc
@@ -0,0 +1,20 @@
+<RCC>
+ <qresource prefix="/pdfviewer">
+ <file>resources/document-open.svg</file>
+ <file>resources/edit-clear.svg</file>
+ <file>resources/edit-copy.svg</file>
+ <file>resources/edit-select-all.svg</file>
+ <file>resources/go-down-search.svg</file>
+ <file>resources/go-next-view-page.svg</file>
+ <file>resources/go-previous-view-page.svg</file>
+ <file>resources/go-up-search.svg</file>
+ <file>resources/rotate-left.svg</file>
+ <file>resources/rotate-right.svg</file>
+ <file>resources/test.pdf</file>
+ <file>resources/zoom-in.svg</file>
+ <file>resources/zoom-fit-best.svg</file>
+ <file>resources/zoom-fit-width.svg</file>
+ <file>resources/zoom-original.svg</file>
+ <file>resources/zoom-out.svg</file>
+ </qresource>
+</RCC>
diff --git a/examples/pdfwidgets/pdfviewer/doc/pdfviewer.rst b/examples/pdfwidgets/pdfviewer/doc/pdfviewer.rst
new file mode 100644
index 000000000..1e90c85b3
--- /dev/null
+++ b/examples/pdfwidgets/pdfviewer/doc/pdfviewer.rst
@@ -0,0 +1,5 @@
+PDF Viewer Example
+==================
+
+The PDF Viewer example demonstrates how to use the QPdfView class to render
+PDF documents and the QPdfPageNavigator class to navigate them.
diff --git a/examples/pdfwidgets/pdfviewer/images/document-open.svgz b/examples/pdfwidgets/pdfviewer/images/document-open.svgz
new file mode 100644
index 000000000..5ddde5981
--- /dev/null
+++ b/examples/pdfwidgets/pdfviewer/images/document-open.svgz
Binary files differ
diff --git a/examples/pdfwidgets/pdfviewer/images/go-next-view-page.svgz b/examples/pdfwidgets/pdfviewer/images/go-next-view-page.svgz
new file mode 100644
index 000000000..e7f7bece4
--- /dev/null
+++ b/examples/pdfwidgets/pdfviewer/images/go-next-view-page.svgz
Binary files differ
diff --git a/examples/pdfwidgets/pdfviewer/images/go-next-view.svgz b/examples/pdfwidgets/pdfviewer/images/go-next-view.svgz
new file mode 100644
index 000000000..2f86541cc
--- /dev/null
+++ b/examples/pdfwidgets/pdfviewer/images/go-next-view.svgz
Binary files differ
diff --git a/examples/pdfwidgets/pdfviewer/images/go-previous-view-page.svgz b/examples/pdfwidgets/pdfviewer/images/go-previous-view-page.svgz
new file mode 100644
index 000000000..f4df6df40
--- /dev/null
+++ b/examples/pdfwidgets/pdfviewer/images/go-previous-view-page.svgz
Binary files differ
diff --git a/examples/pdfwidgets/pdfviewer/images/go-previous-view.svgz b/examples/pdfwidgets/pdfviewer/images/go-previous-view.svgz
new file mode 100644
index 000000000..688f55ffe
--- /dev/null
+++ b/examples/pdfwidgets/pdfviewer/images/go-previous-view.svgz
Binary files differ
diff --git a/examples/pdfwidgets/pdfviewer/images/zoom-fit-best.svgz b/examples/pdfwidgets/pdfviewer/images/zoom-fit-best.svgz
new file mode 100644
index 000000000..0cb1b3074
--- /dev/null
+++ b/examples/pdfwidgets/pdfviewer/images/zoom-fit-best.svgz
Binary files differ
diff --git a/examples/pdfwidgets/pdfviewer/images/zoom-fit-width.svgz b/examples/pdfwidgets/pdfviewer/images/zoom-fit-width.svgz
new file mode 100644
index 000000000..a467f6eae
--- /dev/null
+++ b/examples/pdfwidgets/pdfviewer/images/zoom-fit-width.svgz
Binary files differ
diff --git a/examples/pdfwidgets/pdfviewer/images/zoom-in.svgz b/examples/pdfwidgets/pdfviewer/images/zoom-in.svgz
new file mode 100644
index 000000000..21d6c2ab2
--- /dev/null
+++ b/examples/pdfwidgets/pdfviewer/images/zoom-in.svgz
Binary files differ
diff --git a/examples/pdfwidgets/pdfviewer/images/zoom-original.svgz b/examples/pdfwidgets/pdfviewer/images/zoom-original.svgz
new file mode 100644
index 000000000..afa79db19
--- /dev/null
+++ b/examples/pdfwidgets/pdfviewer/images/zoom-original.svgz
Binary files differ
diff --git a/examples/pdfwidgets/pdfviewer/images/zoom-out.svgz b/examples/pdfwidgets/pdfviewer/images/zoom-out.svgz
new file mode 100644
index 000000000..b6db7a144
--- /dev/null
+++ b/examples/pdfwidgets/pdfviewer/images/zoom-out.svgz
Binary files differ
diff --git a/examples/pdfwidgets/pdfviewer/images/zoom-previous.svgz b/examples/pdfwidgets/pdfviewer/images/zoom-previous.svgz
new file mode 100644
index 000000000..ad4c29215
--- /dev/null
+++ b/examples/pdfwidgets/pdfviewer/images/zoom-previous.svgz
Binary files differ
diff --git a/examples/pdfwidgets/pdfviewer/main.py b/examples/pdfwidgets/pdfviewer/main.py
new file mode 100644
index 000000000..c4765fdda
--- /dev/null
+++ b/examples/pdfwidgets/pdfviewer/main.py
@@ -0,0 +1,27 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+from argparse import ArgumentParser, RawTextHelpFormatter
+
+from PySide6.QtWidgets import QApplication
+from PySide6.QtCore import QCoreApplication, QUrl
+
+from mainwindow import MainWindow
+
+"""PySide6 port of the pdfwidgets/pdfviewer example from Qt v6.x"""
+
+
+if __name__ == "__main__":
+ argument_parser = ArgumentParser(description="PDF Viewer",
+ formatter_class=RawTextHelpFormatter)
+ argument_parser.add_argument("file", help="The file to open",
+ nargs='?', type=str)
+ options = argument_parser.parse_args()
+
+ a = QApplication(sys.argv)
+ w = MainWindow()
+ w.show()
+ if options.file:
+ w.open(QUrl.fromLocalFile(options.file))
+ sys.exit(QCoreApplication.exec())
diff --git a/examples/pdfwidgets/pdfviewer/mainwindow.py b/examples/pdfwidgets/pdfviewer/mainwindow.py
new file mode 100644
index 000000000..d37475aca
--- /dev/null
+++ b/examples/pdfwidgets/pdfviewer/mainwindow.py
@@ -0,0 +1,141 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import math
+import sys
+
+from PySide6.QtPdf import QPdfBookmarkModel, QPdfDocument
+from PySide6.QtPdfWidgets import QPdfView
+from PySide6.QtWidgets import (QDialog, QFileDialog, QMainWindow, QMessageBox,
+ QSpinBox)
+from PySide6.QtCore import QModelIndex, QPoint, QStandardPaths, QUrl, Slot
+
+from zoomselector import ZoomSelector
+from ui_mainwindow import Ui_MainWindow
+
+
+ZOOM_MULTIPLIER = math.sqrt(2.0)
+
+
+class MainWindow(QMainWindow):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.ui = Ui_MainWindow()
+ self.m_zoomSelector = ZoomSelector(self)
+ self.m_pageSelector = QSpinBox(self)
+ self.m_document = QPdfDocument(self)
+ self.m_fileDialog = None
+
+ self.ui.setupUi(self)
+
+ self.m_zoomSelector.setMaximumWidth(150)
+ self.ui.mainToolBar.insertWidget(self.ui.actionZoom_In, self.m_zoomSelector)
+
+ self.ui.mainToolBar.insertWidget(self.ui.actionForward, self.m_pageSelector)
+ self.m_pageSelector.valueChanged.connect(self.page_selected)
+ nav = self.ui.pdfView.pageNavigator()
+ nav.currentPageChanged.connect(self.m_pageSelector.setValue)
+ nav.backAvailableChanged.connect(self.ui.actionBack.setEnabled)
+ nav.forwardAvailableChanged.connect(self.ui.actionForward.setEnabled)
+
+ self.m_zoomSelector.zoom_mode_changed.connect(self.ui.pdfView.setZoomMode)
+ self.m_zoomSelector.zoom_factor_changed.connect(self.ui.pdfView.setZoomFactor)
+ self.m_zoomSelector.reset()
+
+ bookmark_model = QPdfBookmarkModel(self)
+ bookmark_model.setDocument(self.m_document)
+
+ self.ui.bookmarkView.setModel(bookmark_model)
+ self.ui.bookmarkView.activated.connect(self.bookmark_selected)
+
+ self.ui.tabWidget.setTabEnabled(1, False) # disable 'Pages' tab for now
+
+ self.ui.pdfView.setDocument(self.m_document)
+
+ self.ui.pdfView.zoomFactorChanged.connect(self.m_zoomSelector.set_zoom_factor)
+
+ @Slot(QUrl)
+ def open(self, doc_location):
+ if doc_location.isLocalFile():
+ self.m_document.load(doc_location.toLocalFile())
+ document_title = self.m_document.metaData(QPdfDocument.MetaDataField.Title)
+ self.setWindowTitle(document_title if document_title else "PDF Viewer")
+ self.page_selected(0)
+ self.m_pageSelector.setMaximum(self.m_document.pageCount() - 1)
+ else:
+ message = f"{doc_location} is not a valid local file"
+ print(message, file=sys.stderr)
+ QMessageBox.critical(self, "Failed to open", message)
+
+ @Slot(QModelIndex)
+ def bookmark_selected(self, index):
+ if not index.isValid():
+ return
+ page = index.data(int(QPdfBookmarkModel.Role.Page))
+ zoom_level = index.data(int(QPdfBookmarkModel.Role.Level))
+ self.ui.pdfView.pageNavigator().jump(page, QPoint(), zoom_level)
+
+ @Slot(int)
+ def page_selected(self, page):
+ nav = self.ui.pdfView.pageNavigator()
+ nav.jump(page, QPoint(), nav.currentZoom())
+
+ @Slot()
+ def on_actionOpen_triggered(self):
+ if not self.m_fileDialog:
+ directory = QStandardPaths.writableLocation(QStandardPaths.DocumentsLocation)
+ self.m_fileDialog = QFileDialog(self, "Choose a PDF", directory)
+ self.m_fileDialog.setAcceptMode(QFileDialog.AcceptOpen)
+ self.m_fileDialog.setMimeTypeFilters(["application/pdf"])
+ if self.m_fileDialog.exec() == QDialog.Accepted:
+ to_open = self.m_fileDialog.selectedUrls()[0]
+ if to_open.isValid():
+ self.open(to_open)
+
+ @Slot()
+ def on_actionQuit_triggered(self):
+ self.close()
+
+ @Slot()
+ def on_actionAbout_triggered(self):
+ QMessageBox.about(self, "About PdfViewer",
+ "An example using QPdfDocument")
+
+ @Slot()
+ def on_actionAbout_Qt_triggered(self):
+ QMessageBox.aboutQt(self)
+
+ @Slot()
+ def on_actionZoom_In_triggered(self):
+ factor = self.ui.pdfView.zoomFactor() * ZOOM_MULTIPLIER
+ self.ui.pdfView.setZoomFactor(factor)
+
+ @Slot()
+ def on_actionZoom_Out_triggered(self):
+ factor = self.ui.pdfView.zoomFactor() / ZOOM_MULTIPLIER
+ self.ui.pdfView.setZoomFactor(factor)
+
+ @Slot()
+ def on_actionPrevious_Page_triggered(self):
+ nav = self.ui.pdfView.pageNavigator()
+ nav.jump(nav.currentPage() - 1, QPoint(), nav.currentZoom())
+
+ @Slot()
+ def on_actionNext_Page_triggered(self):
+ nav = self.ui.pdfView.pageNavigator()
+ nav.jump(nav.currentPage() + 1, QPoint(), nav.currentZoom())
+
+ @Slot()
+ def on_actionContinuous_triggered(self):
+ cont_checked = self.ui.actionContinuous.isChecked()
+ mode = QPdfView.PageMode.MultiPage if cont_checked else QPdfView.PageMode.SinglePage
+ self.ui.pdfView.setPageMode(mode)
+
+ @Slot()
+ def on_actionBack_triggered(self):
+ self.ui.pdfView.pageNavigator().back()
+
+ @Slot()
+ def on_actionForward_triggered(self):
+ self.ui.pdfView.pageNavigator().forward()
diff --git a/examples/pdfwidgets/pdfviewer/mainwindow.ui b/examples/pdfwidgets/pdfviewer/mainwindow.ui
new file mode 100644
index 000000000..7cfcde4b3
--- /dev/null
+++ b/examples/pdfwidgets/pdfviewer/mainwindow.ui
@@ -0,0 +1,327 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>MainWindow</class>
+ <widget class="QMainWindow" name="MainWindow">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>700</width>
+ <height>600</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>PDF Viewer</string>
+ </property>
+ <property name="unifiedTitleAndToolBarOnMac">
+ <bool>true</bool>
+ </property>
+ <widget class="QWidget" name="centralWidget">
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <property name="spacing">
+ <number>0</number>
+ </property>
+ <property name="leftMargin">
+ <number>0</number>
+ </property>
+ <property name="topMargin">
+ <number>0</number>
+ </property>
+ <property name="rightMargin">
+ <number>0</number>
+ </property>
+ <property name="bottomMargin">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QWidget" name="widget" native="true">
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <property name="spacing">
+ <number>0</number>
+ </property>
+ <property name="leftMargin">
+ <number>0</number>
+ </property>
+ <property name="topMargin">
+ <number>0</number>
+ </property>
+ <property name="rightMargin">
+ <number>0</number>
+ </property>
+ <property name="bottomMargin">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QSplitter" name="splitter">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <widget class="QTabWidget" name="tabWidget">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="tabPosition">
+ <enum>QTabWidget::West</enum>
+ </property>
+ <property name="currentIndex">
+ <number>0</number>
+ </property>
+ <property name="documentMode">
+ <bool>false</bool>
+ </property>
+ <widget class="QWidget" name="bookmarkTab">
+ <attribute name="title">
+ <string>Bookmarks</string>
+ </attribute>
+ <layout class="QVBoxLayout" name="verticalLayout_3">
+ <property name="spacing">
+ <number>0</number>
+ </property>
+ <property name="leftMargin">
+ <number>2</number>
+ </property>
+ <property name="topMargin">
+ <number>2</number>
+ </property>
+ <property name="rightMargin">
+ <number>2</number>
+ </property>
+ <property name="bottomMargin">
+ <number>2</number>
+ </property>
+ <item>
+ <widget class="QTreeView" name="bookmarkView">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="headerHidden">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="pagesTab">
+ <attribute name="title">
+ <string>Pages</string>
+ </attribute>
+ </widget>
+ </widget>
+ <widget class="QPdfView" name="pdfView" native="true">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+ <horstretch>10</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QMenuBar" name="menuBar">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>700</width>
+ <height>23</height>
+ </rect>
+ </property>
+ <widget class="QMenu" name="menuFile">
+ <property name="title">
+ <string>File</string>
+ </property>
+ <addaction name="actionOpen"/>
+ <addaction name="actionQuit"/>
+ </widget>
+ <widget class="QMenu" name="menuHelp">
+ <property name="title">
+ <string>Help</string>
+ </property>
+ <addaction name="actionAbout"/>
+ <addaction name="actionAbout_Qt"/>
+ </widget>
+ <widget class="QMenu" name="menuView">
+ <property name="title">
+ <string>View</string>
+ </property>
+ <addaction name="actionZoom_In"/>
+ <addaction name="actionZoom_Out"/>
+ <addaction name="actionPrevious_Page"/>
+ <addaction name="actionNext_Page"/>
+ <addaction name="separator"/>
+ <addaction name="actionContinuous"/>
+ </widget>
+ <addaction name="menuFile"/>
+ <addaction name="menuView"/>
+ <addaction name="menuHelp"/>
+ </widget>
+ <widget class="QToolBar" name="mainToolBar">
+ <property name="movable">
+ <bool>false</bool>
+ </property>
+ <property name="floatable">
+ <bool>false</bool>
+ </property>
+ <attribute name="toolBarArea">
+ <enum>TopToolBarArea</enum>
+ </attribute>
+ <attribute name="toolBarBreak">
+ <bool>false</bool>
+ </attribute>
+ <addaction name="actionOpen"/>
+ <addaction name="separator"/>
+ <addaction name="actionZoom_Out"/>
+ <addaction name="actionZoom_In"/>
+ <addaction name="separator"/>
+ <addaction name="actionBack"/>
+ <addaction name="actionForward"/>
+ </widget>
+ <widget class="QStatusBar" name="statusBar"/>
+ <action name="actionOpen">
+ <property name="icon">
+ <iconset theme="document-open" resource="resources.qrc">
+ <normaloff>:/icons/images/document-open.svgz</normaloff>:/icons/images/document-open.svgz</iconset>
+ </property>
+ <property name="text">
+ <string>Open...</string>
+ </property>
+ <property name="shortcut">
+ <string>Ctrl+O</string>
+ </property>
+ </action>
+ <action name="actionQuit">
+ <property name="icon">
+ <iconset theme="application-exit"/>
+ </property>
+ <property name="text">
+ <string>Quit</string>
+ </property>
+ <property name="shortcut">
+ <string>Ctrl+Q</string>
+ </property>
+ </action>
+ <action name="actionAbout">
+ <property name="icon">
+ <iconset theme="help-about"/>
+ </property>
+ <property name="text">
+ <string>About</string>
+ </property>
+ </action>
+ <action name="actionAbout_Qt">
+ <property name="text">
+ <string>About Qt</string>
+ </property>
+ </action>
+ <action name="actionZoom_In">
+ <property name="icon">
+ <iconset theme="zoom-in" resource="resources.qrc">
+ <normaloff>:/icons/images/zoom-in.svgz</normaloff>:/icons/images/zoom-in.svgz</iconset>
+ </property>
+ <property name="text">
+ <string>Zoom In</string>
+ </property>
+ <property name="shortcut">
+ <string>Ctrl++</string>
+ </property>
+ </action>
+ <action name="actionZoom_Out">
+ <property name="icon">
+ <iconset theme="zoom-out" resource="resources.qrc">
+ <normaloff>:/icons/images/zoom-out.svgz</normaloff>:/icons/images/zoom-out.svgz</iconset>
+ </property>
+ <property name="text">
+ <string>Zoom Out</string>
+ </property>
+ <property name="shortcut">
+ <string>Ctrl+-</string>
+ </property>
+ </action>
+ <action name="actionPrevious_Page">
+ <property name="icon">
+ <iconset theme="go-previous-view-page" resource="resources.qrc">
+ <normaloff>:/icons/images/go-previous-view-page.svgz</normaloff>:/icons/images/go-previous-view-page.svgz</iconset>
+ </property>
+ <property name="text">
+ <string>Previous Page</string>
+ </property>
+ <property name="shortcut">
+ <string>PgUp</string>
+ </property>
+ </action>
+ <action name="actionNext_Page">
+ <property name="icon">
+ <iconset theme="go-next-view-page" resource="resources.qrc">
+ <normaloff>:/icons/images/go-next-view-page.svgz</normaloff>:/icons/images/go-next-view-page.svgz</iconset>
+ </property>
+ <property name="text">
+ <string>Next Page</string>
+ </property>
+ <property name="shortcut">
+ <string>PgDown</string>
+ </property>
+ </action>
+ <action name="actionContinuous">
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ <property name="text">
+ <string>Continuous</string>
+ </property>
+ </action>
+ <action name="actionBack">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="icon">
+ <iconset resource="resources.qrc">
+ <normaloff>:/icons/images/go-previous-view.svgz</normaloff>:/icons/images/go-previous-view.svgz</iconset>
+ </property>
+ <property name="text">
+ <string>Back</string>
+ </property>
+ <property name="toolTip">
+ <string>back to previous view</string>
+ </property>
+ </action>
+ <action name="actionForward">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="icon">
+ <iconset resource="resources.qrc">
+ <normaloff>:/icons/images/go-next-view.svgz</normaloff>:/icons/images/go-next-view.svgz</iconset>
+ </property>
+ <property name="text">
+ <string>Forward</string>
+ </property>
+ <property name="toolTip">
+ <string>forward to next view</string>
+ </property>
+ </action>
+ </widget>
+ <layoutdefault spacing="6" margin="11"/>
+ <customwidgets>
+ <customwidget>
+ <class>QPdfView</class>
+ <extends>QWidget</extends>
+ <header location="global">qpdfview.h</header>
+ <container>1</container>
+ </customwidget>
+ </customwidgets>
+ <resources>
+ <include location="resources.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/examples/pdfwidgets/pdfviewer/pdfviewer.pyproject b/examples/pdfwidgets/pdfviewer/pdfviewer.pyproject
new file mode 100644
index 000000000..cbd5f156f
--- /dev/null
+++ b/examples/pdfwidgets/pdfviewer/pdfviewer.pyproject
@@ -0,0 +1,4 @@
+{
+ "files": ["main.py", "mainwindow.py", "zoomselector.py",
+ "mainwindow.ui","resources.qrc"]
+}
diff --git a/examples/pdfwidgets/pdfviewer/rc_resources.py b/examples/pdfwidgets/pdfviewer/rc_resources.py
new file mode 100644
index 000000000..7e386e99b
--- /dev/null
+++ b/examples/pdfwidgets/pdfviewer/rc_resources.py
@@ -0,0 +1,3468 @@
+# Resource object code (Python 3)
+# Created by: object code
+# Created by: The Resource Compiler for Qt version 6.4.0
+# WARNING! All changes made in this file will be lost!
+
+from PySide6 import QtCore
+
+qt_resource_data = b"\
+\x00\x001G\
+\x1f\
+\x8b\x08\x00\x00\x00\x00\x00\x00\x00\xec}\xebs\x1b\xc7\xb1\
+\xef\xe7\xe4\xaf\xe0U\xbeDU\xc0\xb0\xdf\x0f%\xce\xa9\
+\xc4\x8eS\xa9r\xea\xa4n\x1e\xf7\xdcO.\x88\x04%\
+\x1e\xd3\xa4\x0eI\xf9\x91\xbf\xfe\xee\x02$g!h\xb1\
+\x00\x16P$_s\x5c\xf2b\xb6\xb7{\xfa7==\
+=\xb33\xb3\xbf\xfd\x8f\x1f\xbe\xbd:\xf9n~{w\
+ys\xfd\xd93,\xf0\xecd~}vs~y\xfd\
+\xea\xb3g\xff\xf8\xfb\x97\xd3xvrw?\xbb>\x9f\
+]\xdd\x5c\xcf?{v}\xf3\xec?~\xf7\xcb\xdf\xfe\
+\xaf\xe9\xf4\xe4O\xf3\xeb\xf9\xed\xec\xfe\xe6\xf6\xc5\xc9\xef\
+\xcfo^\xceO\xfe|u\xf5\xf6\xee~\x91u\x82T\
+\xa0\xc0\xe4\xe4o\xff\xfc\xd3\xc9\x1f\x7fxss{\x7f\
+\xf2\xd7\xab\xb7\xaf\xa6\x7f\xbe>)\x8b\xcc\x7f.e\xbe\
+8\xb1\x02p\xf2\x87\xb7\x97W\xe7'\x8a\x22\xf1\xfc\xe4\
+d:mD\xdc}\xf7\xea\x97'''M\xf9\xae\xef\
+^\x5c\xdf}\xf6\xec\xf5\xfd\xfd\x9b\x17\xa7\xa7\xd7we\
+\xd6\x8a+g7\xdf\x9e\xfem\xf6\xdd\xfc\xcb\x9b\xdb\xff\
+3\x7fy\x8a\x05N\x9f\xd5'f\xef\x7f`Q\xd2F\
+\xfe?/\xe7\xdf\xcfo\xff\xf8\xc3\xfd\xfc\xba-\xc6\xdd\
+)\xaf>~\xb9\xe1\xf1\x8e\x9e\xa7\x08\xab\xcf\x9d\x9f=\
+=\xf8\xe6\xed\xedU\xb9\xb9}uz~v:\xbf\x9a\
+\x7f;\xbf\xbe\xbfkJ\x89]\xf2\xb3J~v;\x9f\
+\xdd_~7o\xc4|\xdb\x14\xa8}\xb2\x91\xfd\xab\x0e\
+\xf1\xed\xf9\xc5\x13\xf5\xf7\xdf\x7f_\xbe\xe7\x05\x11f\xe6\
+)\xd0)\xd1\xb4\xa1\x98\xde\xfdx}?\xfba\xba\xfa\
+h\x03\xe6\xfb\x1e%\x008m\xeeU\xca\xed\xa8^\xfc\
+puy\xfdMoa\x16w\xbb\xd2\x1b{zss\
+^1}\xcc(w7oo\xcf\xe6\x17\xcd\x93\xf3r\
+=\xbf?\xfd\xe2\xef_<\xdd\x9cB9\xbf?\xef\xb0\
+i\x98\xde\x9d\xcd\xde\xccW\xe4>f.\xf1\x9a};\
+\xbf{3;\x9b\xdf\x9d>\xe6\xb7\xcfw\x0d\x1c\x17\x19\
+\x97\xe7\x9f=\xfbj\xf6\xe3\xfc\xf6\xeb\xe5\xef\xef/\xcf\
+\xef_7\xb7)\x16?_\xcf/_\xbd\xbe\xaf\xbf\xbf\
+k\xac\xe5\x0f7?|\xf6\x0cN\xe0\x04)N\x1eo\
+\xdc4\x9c/\xaen\xbe\xff\xec\xd9w\x97w\x97/\xaf\
+\x96\xe2\xe6\xd7\xb3\xe6r\xfarv\xf6\xcd\xab\xdb\x9b\xb7\
+\xd7\x8d\xb0\xeb\xf9\xf7'\x9d\x87\x1f\xb5z\xd1\x96\xb6Q\
+\xe8\xcd\xed\xfcn~\xfb\xdd\xf2\xf1G\x00^<\x15\x1b\
+\x0a\xd3\xe2\xd6\xa3V\xdd[b\xabO\x9d\xdf\x9c58\
+4L_\xddL\xaf\xe7?\xdcO\xdf\xcc\x1at\x9b\xfa\
+\xfb\xd7\x1a\xdd\xcb\xd9]Cw\xfa\x8f\xbb\x86\xdb\xe9\xf9\
+\xec\xbb\xcb\xf3\xd3/\xe6w\xdf\xdc\xdf\xbc9\xbdk\xda\
+\xfc\xcb\x9b\x1fV\xa5\xde\xbc\xbd\x7f\xf3\xf6\xfe\xeby\xdb\
+l\x96\xe2\x1b\xd4k\x15,o/D=e\xae2\x98\
+/\x5c\xc1\xf4\xe2\xf2j\xbe,\xe3\xe9\xeb\x9bo\xe7\xa7\
+o.\xaf\x1b\xc8oo\x9a\x8b\xb3\xbb\xd3\x9b\x1f~|\
+5\xbf>m\x9e\xb8jq<\x9d\x9d\xdd/\x9a\xe8\x8a\
+>o\xae_\xbd\x97\xf5\x0f\xe7o\x1a;3/\xfa\xde\
+\xdb?\xd6\xdb\xbf\xfb\xed\xf9\xfc\xe2\xee\xd1\x1a\xdak\x84\
+6\xf7\xe9\x917\x0d*o\xe6gm\xa3\x5c\x01\xee\xfe\
+\xc7\xd6\x06W\xc9\xf8\xfc\x9d\xfay\xf3uc.S\x85\
+\x93\xc6\xc3A\xfb/\xae\x11\xfc\xd8\xd4^{\x03\x16\xf7\
+a\xed\xfe\xbf>{\xe6\xb0\xce`U\xec\xf4\xe6\xf6\xf2\
+\xd5eS\x13\xbc \x92J\xbaP\xab\xa3\x03!=;\
+9\xfd\xe9\xea\x87\xa6\x0b\xfd\xbe\x9d\xdd~3\xbf]\xe1\
+uw\x7fs\xf6MK\xfe\xfb\xdb\xdb\x9b\xef\xf1/\xf3\
+\xeb\xa5:\x0d\xef\xf9u\xd3\xcego\xefo\x16\x19\xb7\
+\xf3\x8b\xff\xdb\xb6)x\xfc\xf5_\xf5\xd7{\x9e\xbf\xbb\
+\xff\xf1\xaa\x81\xea\xd1\x0b\xbcxp\x02\xbfi\xac\xe8\xcd\
+\xec\xfeuK\xb2|\xae\xfd\xc5\xac\xfel\x99\xd5\xe4\xfc\
+\xe5\xa4\xed\x1f\xa1\xc0\xc9W'\xda\x5cMuq9E\
+*\xda\xc9^\xe4>\x91\xfe\xeb\xa4eP\x057\xed\xe8\
+jz\xfb\xf6\xaa1\xef\xef\xe6\xd77\xe7\xe7\xbfi\xfa\
+\xa5\x9bo\xe6/~\x05\x8b\xbf\x87\x9f\xd3\x85{{\x81\
+\x05\xde\xdc\xfff\x09\xcf\xb4\xe9\xd4o\xef_\x5c7\x9d\
+\xfao\x1ex6=\xda\xf5]\xe3\x8a\xbf\xfd\xecY\xdb\
+\xf4\xe6\xbf\x86\x22\xcfOno\xeeg\xf7\xf3_c\xc0\
+\xf3%\xc5\xd5\xe2'L\xe0\xf9\x02\xed\xd3%\xbf\xad`\
+_\xc8\x1c\x01|\xe5\xd0\x0b}\x1f\xf2\xf21\x22\xbf\x01\
+\xf8\xd1`\xffm4\xd8\x7f\xdb\x17l\x83O\x0bl\xea\
+\x82m{`\xfd\xd5H\x7f\xf2\xd5\xbe\xfe\x04?1\x7f\
+\x12\xbd\xfe\x84\x8a\xee\x03\xfch#\xffj_#\x97\xf8\
+\xb4\x8c<\x06\xe0>h\x5c\xb0\xe8\xd4e\xdf\xa0\x00)\
+\xea\xf3\x1bc\x82\x05\x8dP\xb1\xf6\xcf{\x03\x83\xf0\x85\
+\xa6\xcd\xa8d>\xbb\xfd\xd3\xed\xec\xbc5\x95\x15\xc6g\
+7WW\x0dqc>W\xdf\xcf~\xbc{\xe2\xb2\xfa\
+\x88!rc\x0e\x8d\x11\xbeY\xa9\xba6c\xda\xb0\xb8\
+\xb9\xad\x95\xd5f\xdd4\xc1\xfd\xe5\xfd\x8f/\xf0\xb1I\
+\xdc\x5c\x5c\xdc\xcd\x1b)\xf0\xac\x9aSKi\x88m\xec\
+\xb2\x07kx\x975\xae\xb3\xf6e=\xaf\xea\xf2\xbb\xdf\
+\xb6\x17\xb3\xab\xad\xe1X\x0c\xea^\xbc\xbe\x9d7\x83\xd0\
+_\xad\xf2b\x02\x7f\x82l\x95-Q\xe8\xe2\xd6\xab\x87\
+\x8c\x7f\x5c_\xde7\xa3\xcc\xb7\xcd\x90\xe3o\xed\xd8\xe7\
+?\xaf\x9b\xd1\xc7\x0a\xc5\xdf\xab\xf1~;\xbb\xbf\xbd\xfc\
+\xe1\xd7X@\x88T&\xd0\xa6\x82d\x802!,\x9a\
+\xed\xc54\xa8\x18z\xe2\xf3\x05\x9f\xb3\xc6\x00%\x0b \
+\xa6\xe32\xa71:*\xe6\xc2\xe0\xb1\xc8\xb9X\xa3\xb9\
+X\xa3\xb9m\x87\x8bNb\x98\xdcc?\xeb&B\xc4\
+4d\x22/%\x85f;\x9a\x08\x11\xcb\xb0\x89\xcc\xe5\
+\xfc\xec,\xdfa=`!Dl\xef\xb7\x90\xfa{\x84\
+\x85TX\xfa\x10\x0b\x1em!P<\x125\x17\x16\xf2\
+\xf4\x83\xb0\x80\x85\xca\x84\x8b\xa4\x13\xc5|J\xcf\x97E\
+\xc5E\xfd\xa32,\x85\xff\xd8d\xb8\x16F`\x8c%\
+\x09}\xf6,\xa8H\x88\x09-i\xa8C\xb3\xb5E0\
+\xb1>\xdb\x88]\xad\xd3Z)L\xeck\x16\xd1[\xed\
+\x17\x8b\xbf5\x8b:9\xeda\x9dk&\xb1\x13k\xf8\
+\xcd\xf1\xec\xa5\x82\xd6o/x\x00\x8f\x82H\xc29\xc1\
+\x02\xac\xc26\x99\xb6Wh\xc6\x93\xf6\x9e)\xf8\xc4\xb4\
+\xa8\x83\xf2d*YP\x08\xa5c<Q$C\x8d\x9e\
+\xac\x07J *H\xda\x93\xf9H\x14gr\xe2'\xf3\
+\xa1\xc2\xa6N\x96;\x98\x0fx\xb5\x90\x81:\xda\xc5\xa1\
+0A\x0e;\x14\xd26\xed\xd8\xe70!\xfe[\xfb\x1c\
+\xcf\x03X\x88bz\xedsBRh\x82R\x02\x12\x1a\
+\x93p/\x88\xea\x1fC\x9f\xc3Dz$\x13!\x1f6\
+\x91\xd9\xbcM\x03\xacq\x9du\x1e\xdfDH\xfbM\xc4\
+\x8f\xe1D\xa0p\x84yL\xa0\x08\x81\x89L\x0c\x0aB\
+\xd0d*\x5c\x88Am\xd5` #\xe4\xc9`\xa2H\
+*#Q5\x18/\xec\x10\x11O\x06c\xc5\x1d\xd0\xd2\
+\x1f\x0d\x86K\xba\x82\x80no0L\xfa\xfe^\x87\xe9\
+h\xbd\x0e\xd3\x11{\x9da\x8d\x81\xf7i\x22P,X\
+\x94\xc9\x06\xdb\x0a/*`\x0f\x19\xc3\xee\x94\xe1\xf8!\
+<\x03\xf7\xb7\x95C\x04h\x99\x99m\xb0\xee%\x04M\
+l>\xe5\x89\x163\x03\xcf\xf9T&T@\x82\xa1\xc9\
+\xa7\xb63&!bi\x89\xbch \xab\xd7\x86\xc3R\
+\xcc\xdd8\x9f\x1a\x8e\x171\x22\xb7e\xce\xc5\x1a\xcd\xc5\
+\x1a\xcd\xed\xa2mi*f\x0b\xeeA\x83\x17\xd0\xe8\x0d\
+^\x1c\x0f\x80e\xa8)P\x1b\xe8f\xea\xd2\xefx\x9a\
+Q\x9b\x15\x9a\xc62A\xd4\xa2H<\x99\x12\x96d\xf1\
+\xac\xc1\x0bba2\x0ey\x0a^\xd4\x0b\x07g\xe6S\
+\xec\x82R$Y\x19\x974Tiv\x88]@\xe3\xfd\
+~\x06\x0c\xb6\xf739s[\x1fRo1\x18\xe2\xd9\
+\xf9\xf0P\xbc@R\x12\xb0=[+\xa3\xf5\xf92p\
+Xc\xa3 \x8c\xbe\xd1\xa7\x9d\x9d\xd3\xd9\xb6\xee\x12,\
+\xd6D$\xaa#\x87>\x1bPy{\x19\xb4\xbdK~\
+\x99\xd1\xc3\xfa\xa8~\x094z\xfd\x92\x8d\x0f\xf3\xb4\x90\
+9\x0b\xb6^G\x0b(\x1a\xca\x83\x07\x02uOY\x0e\
+\x07\x88\x9b\x8b\xe0\xe2\xae8\x99\x9a\x15\xe5\xd0\xe8x$\
++\xe6j\x12O\x1e)\xb5\xb8%y\xf5Hh\x85\xd0\
+Y\xa5v\xe5RP\x90\x02;\x1e\xc9\xc5\x04v\x98o\
+\xd0|\x7f\x13#\x83\x1d\x9aX\x0d\xf3\x87\x9b\xd8\xf0s\
+\xebm\xe3\xd9Z\xe1\xfa\xda\x16\x19\xac\x1b\xbe\xeb\xb8\xa2\
+w\xb9\xef`\xf2\x00\x00\x1f\xde\xe4Is\x83\xc9\x1f\x22\
+lU\x09\xe5\x09\x16\xb1D\x94E\x0f\x01\x8a\x16\x13\xa2\
+b\xa1\x19\x13$\xa7\x92\xd2\x0e\x8b)\xb1\x08P\xb5u\
+\xd4\xe2\xe4\xe0\xfed\xeb\x1a\x05\x22-\xbc\xda\xfa\x0a\xcd\
+\xc5\x1a\xcd\xedb\xe0\x83\xc2i\xba\xc3\xdc\x9a\xfa\x91\xe6\
+\xd64\x8f5\xb7fxt{!\xf5~{9\xc4\xec\
++1\x1a\xda\x04\x0b%\x0aac\x14X\x1c\x16YX\
+\xd0\xa3u\x8e\x82X\xc2\xa5\xb9\xc7\xa4E\xb5c0B\
+\xc5\xd0\x95\xeb\xc0\x18\x09\x8a\x09>\x8ej\xd6h.\xba\
+4u\x9c#`\x11\xbb\xcc\xbc%\x0e\xd8\xcb\xcb\xabf\
+\x8d\xceZ\x95\x0e\x0c\x8a\x17C\xf3\x9d\xf9\xc2\xe0\x888\
+u\xdb\x01N\x1b\x8e\xc1S\xa8F\xd1\x8d\xe3\xf4)\xcc\
+\xa3\xd8\xb2\xee\xd7\xa1\xc30k\xfa\x95_\xfe\xe2\x17\xbf\
+x\xd0\xb3\x16\x14\xc3\xda\xf0\xa7w\x80sv\xf6\xdey\
+\x86\x0ah\xa3e?g\xea\xe1\xfc\xfd\xeb\xcb\xfb\xf9\xfa\
+\xc0\xa9\x0b\xe8\x03\xdf\x8f\x03@M\xf3>\x005-\x07\
+\xd4\xdc\x0b>M\xc7#\xc3W\xdb\xda\x7f\xfd\xe5\xab?\
+\x7f\xf15}\xbd\x1dD\x15\xcf\x8as\x17\xffZ)U\
+\xb7n\xe9z\x0d\xee\xcb/\xff\xf8{\x80g+8\xd0\
+\x1aDU\xc9^6\x9f\x7f\xfe.\x1b\x19@d?\xe7\
+\xbd\xc4-\xbf\xee\x1b!r\xe2\x0e\x90\xa6\x14\x16\xae\xb8\
+\x22Pa\x11\xaf\xaf0\xac(\xab=\x01\x9cR\x94\x1f\
+F6\xe3\xd5@\xd8\xa0\x07\xef\xa2\x87vT\xe0\x95\xd2\
+\x87\xe9J\xe9\xc3\xf4P\xa5\xc7\x0d\xa5\xd7\x03\x94\xde\x0b\
+%\xd7\xc2k\xfb\xf3Pe\xa7\x0de\xf7]\xcan\x9d\
+\xb2K-{\x14\x00\xa0Zx[\xfe>9\xad\xb1\xcb\
+\xfe\xa5\xf7\xaf\xfb\x22\x16\xd9&b\xa9\xb1(P\x0d*\
+\x90\x0a\x83<\x05\x98\xc8YTC\x0fT\xe4\xd8Pd\
+?p\x91s\xe9y~\xdb\xc4a\xcdJ\xe4\xeb\xff|\
+\xf9\xdfM\x01\x174\xf3\xffy{y;?\xaf\x0b\xd7\
+w_\xa7\xfe\xe8L\x1b\xf9\xb0\xb2\xf8yu\xe9\xf3\x93\
+\xb6+\x85X\xf6i\xbf\xbd|\xf1\xe6\xd5\xc5\xff\x9e_\
+\xaca\xb5(\xc2\xd7\x97U\xf2\xd7\x0d\xe1\xf2\x99\xd3\xc7\
+\x87Z\xcdNW\xb869\xbf<\xa6SEb\x87O\
+\xdb\xabVE\xe8St\xab\xb5\xf8\xf2\xe9\xf9\xd5Zx\
+;\xaec\x1d_\xfc\x8d\xa5\x8f\x03\xc7j\x07\x9e7'\
+\x86\xec+\xbd`\xec\xd2\x80\xa7.%\x08\x1c\xbcS\x07\
+P\x82\xd8\xeb\xea\x8e)FA\xc2\xac\x0d\xa1\x12}X\
+\xd5\xf2\xd3T\xad\x8et\xfaGA\xce\xbb\x18\x9d\x17\xc7\
+t\xa9-\xc7K\x04\xd6\xe6\xb3F\xd2\xe40\x14\x11\xc4\
+\xd0\xbey\x8c\xce\xba\xc7\x22\x0e\x826\x9f\xb6\xcb\x1f?\
+`\x1dk\xba\x7f\xd0:\xae1\xcf\xe1\xebx\x95/j\
+\x86=E7d%U\xba1\x0ec\x01Q\xd0e)\
+/\xd6h.\xd6h\x9a@(JZ\xa0\xf2\xf0\xb2/\
+\x95\xf4\x98L\xa9\xa4&\xc7b\x1e\x1f&P\x12\xd4\x9d\
+&^L\x81\x5c'\x08%<\xc0\x9f\x0f\xd7\xc2\xd1=\
+q\x98\xfa\x11<q\x1bc\xadJ\xea\x95/\xf9\x11\x8e\
+\xda\xc3\x14G\x0e\xdc+'\xee\x19\xbb\xb7yM\xf8y\
+@\xf7\x17f\xd1_\xd3.\xbb4{\xce\xa2\x8cT\xa3\
+\x9e\xda\xdc\xeb\xcd\xfaB\x16\x0b\x86\xeb\xf1\xed\xd5E\x8e\
+`\xaf\x1f\xac\x12\x5c\xec\xd8\x95p\xf4A\xa6i\xc8!\
+\x16ax8\xf1\xe3\xa2\xb6\x0cl\x12M\xb2\xb0\xa1\x03\
+\xe1\x04\x0b\x1a7I\x9e\xef6^=\xf6\xb4\x80i\xf8\
+\xfe\xea\xd7\x00 \x9an\x7f\xe4\xe4\xc1xC\xed\xd11\
+\x95\xa0\xbeP\x86\x02\x08\xc8Y\xfbQ)\xae\x80R_\
+(\xaf\xd2\x5c\xac\xd14j\x10\x14\x0f$\x1dz\xc5\xb3\
+0\x08,\x94h\x08\xadyLQ\x8bzrl\xd1a\
+\x1e}N\x88>\xcd\xca\x1f\x9e9\xa2\xc8\x8f\xbbQ\x1f\
+w\xaa\x9b~\x22S\xdd\xf4IOu\xd3'<\xd5M\
+G\x9c\xea>~\xebw:Z\xeb\x9fb\x14\xe3\xa0\xb4\
+\xc9\xd4J\xb0\xb5\xe9#\xeb\xd4\x89\x5c\x0f\xe1\xd7\xa7\x98\
+%\xdb\xbf\x98Lc\x0f\x0f\xdf\xec\xbc\xbc\x9f\xdfn\xb5\
+\x1fpI\xca$\xf8\xacyn\xfe\xa7\xd9\xdb\xbb\xbb\xcb\
+\xd9\xf5\x1f\xae\xde\xb6\xcf\x0fqh\x070\xe7_\xcc\xbf\
+\xbb\x9c\xdd?\x1e\xb7\xc3)\x8a\xd2Y\x0a\xb0\xca\x94I\
+x\xb9(`)\xf9\xa8\xf5! v\x88\xfa\xa0\x22\xd0\
+\xfe\xe1|j\xbbv\xb9\x07\x1e\x18\x18\x22\xf7o\xe6\xcc\
+:f\xe1\x22\xe1Fu3\x98x\x81\x8c\xf0\xda\xbd`\
+1\xf5\xb4\xac\x1d\x0ceAb%\xdbkRa\x10G\
+\xe3\x92\x92\x16-\x88O2\xa7X\x04\xc4M\xa2\xfa\xaf\
+B\x1c\x86\x91O\x85\x9f\x22\x970\xc9\xa4G\x0d+\xd1\
+\xdeK\x1a\x982\x86\xb7\x5cDl\xde\xec\xb6\x8eC\x9d\
+\xbc\xf2\x92*Y;\x15\xe7\x22F\x16\x9d.\xc7K\xfb\
+\x1b\xa3\xea\x05\x85\xc5\x1c\x87\xd7L33?\xf9\xc9h\
+\xff\x12'\x98\xc5\xc5\xc3x\xc2X C\xd9\x9f\xef\x8d\
+\x10\x11\xf8 BL\xbc?BYB\x12\xac\x8e\xa9\xa1\
+3J-h\x0a\xd01j\x18\x02e\xc2\x85\x1f`\xa1\
+\xa2\x9a\xbc\xd8\xa9\x02\xc58\x83|2E\xcbB\x8c\x8e\
+\x13\xcbb\x0a\x969\x0a\x1d\x19F\x07e_tH\x8b\
+\x87\xa1U\xfb\xe1,d\x81\xd5~*Mg-<\x17\
+T'\x1e\xf6k\x88%\x17\x7f\x13\xd8\x1f\x05V\xe5\xe1\
+\x99\xe4\xcc\x8f\xc5F\xaa\x85@\xb5\x8cj-\x0b\xc3\xe0\
+@\xb4\x07k\xc1D\x1e\x85\x0e\x8e\xb0\x91\x8f\xcb\xc7$\
+\x1a\x89\xc6D\xa0X\xfb\xa7\x13\xa6\x02\x16\x064\x06!\
+\xc9c\xfa\x18\xa6\x0a\x8d\x14f`\xa2\xda\xafh\x09\x06\
+B\xb2\xda~\x80\x0a#\x92\x0c\xaf:v\x14\x0a[\x80\
+C\x8b\x0d\x94\xa2\xca\xea\x93)\xc9(<|\x0b\x8b\x81\
+\xbd\xbd\x8a/\x1b}\x85\x05I\x0a$j\x85%sA\
+\x13Z\xb7\x07Sq\x0ac\xd9\xab[\x9aLu\xd9\xea\
+\x96\xadj\x99k\xa30\xd2A\x9f#\x8c\xfbb\xa4\x92\
+\x05\x0cY:\x9e7\x8b\xbbXg\xc0\x85&\xc5,\xab\
+\xe5T\x9a\xcd\x18eq4\xd5\xc8\xf9\x94\x1e`B\x06\
+\xc4\xe4vh\xc3`h\xe9\x8d=aQ`\xe5q8\
+\x0d\xfaf\x17\xa2]q:t\xcfr\xa0\x1e\xaf\x17\x05\
+\x941=\xd4O\xdf\x07\x93\xb2\x8c\xf0\xc1?\xf1>\x9c\
+\x94\xc7\xf7\xe1\xbb\xece\xe6\xbe\xbd\xcc\xba\xfd\x06\xa83\
+?;?\xf7m7\xce\x89\xc6\xb8\xbd\xcc8\xfe\x04\x8d\
+>8P\x8es\x16\x00\xa3\x1dm\x7f3\xc6\xf1\xe0\x80\
+c\xc1A\xc7\x83C\xf6\xdf\xe9\xeeB\xf4\xde\xf6\xe0B\
+\xb2}{x)M\xb2\xdd7\x04\xe6Y\x9e\xcdp\xe7\
+\x0d\x81\xca\x12\xc3\xcc\xcf\xce\x9bF\x8a;\x9e4\xe1B\
+\xb6?\x9c$\x8c\xef\x85\x93\x84\xf90G%\x8c\xb7\xcd\
+\x22\xa4\xe9\xe0\xf9l\xad\x8c\xba\x85\x0cl\xd3p\x95E\
+\x92\x07\xae\x8b\xf0\xbe\xbd\x96\xc2\xb9\xc6%\x800=6\
+\xb8\xcb\xf9\xacM\xdb\xee\xe7\x14\xc1\xed=\xf1\xf9E\x93\
+\xd6\xd0\x1ca\x1c\x9c9\xe4] -\xe6\xbbz\x17\x12\
+\xc0m\x0e^9kv[\xed\xd8\x1cH\x80\xc7;\xdb\
+\xe1\x18\xb9\xcf!\x8fx\x97;rD\xf0\x03n1.\
+\xa1.\xcd\xda\xf8\xe6\xd0+\x06\x85\xb1\x1f\xa7\x1c\xc6\xe9\
+\x90\xa3\xcb\xf5\xb1\xeb\xfa\xf8\xb6o\x0c\xdc\x1d'\x1f\x18\
+#f\x84^\x8c\x92\x861\x1a;/\xb1>\xcf\xb1>\
+\x19\xb2>cR\xa7Sv\xd8\xae\x1a\xb1\xcfAq\xb9\
+\xc3>\x7f\xc3\xb88\xa7\xad\x0f\x8a\xcb\x1d6\xcb\xcf\xe4\
+\x0c\xe6\xf2\x0e\xeb\xf7y\x9a\x9e\x93F\xd7\xcf\xedd!\
+\xdd\xe1L\xf0\xa1\xf3\xc5\x87\xcf\x22\x1d>\xe1|\xf88\
+\xd4\x83/*\xce\xec3\x7f\x07\x19m\xfe\xd3\x87\xa5?\
+\x13$\x99\xac\x98;\x14\xa0\xd0\xac\x13\x09P\x10\x03\xba\
+\x93<Q\xc0X\xc1\x1f\xad\xbd\xd2\xec\xf9^\xd5\x9d\x0e\
+\xf1^\x15\x8a\x02\x18\x93lx\xb1\xea.\x1f\xec\xc5*\
+\x19\xc8A\x160\x15h\xffh\x22\x1f\xd9:&\x03;\
+\xf6:&\x9d\xe8\xc7\xba\x8c\xc9 ~\x12\xcb\x98\x0c\xe1\
+\x13^\xc6dH\x9f\xec2&C\xf9\xd0\x1b\xcbZ\x0a\
+\xb3B$\xa2\xd5\xf6\x94\x0aa\x88U\xf34.\xc8\xa1\
+\xa8\xb5kH+b!6\xec\xb0\x90\xa3x\xb8\xc4d\
+\x0aK6\x9e#\xa6\xe7Ilx\x01\x82\xc1\xfe\xd3\xae\
+V\x84\x5c\xad\x86\xb9h\xc51\xc4k\xd0\x07\x85\x0d%\
+H\xadNM\xfb\x12\x8f\xf87\x00\x22\xc7\x04$t\x81\
+\x87\xe6\x13 \x92\x0b\xfbp\xaa\x16h\x0fz\xd4\xf1\x83\
+\x97\xb4\x96f;8t\x02\xa3\x10\xa0a\x04\x80\xf6E\
+\xc0\xb4\x88\x04\x22U\x93p.\x19\xe0X\x11 .\xae\
+aR[\x88gA'\x921z\xc1\xb0^\xa9\xff&\
+\xbd\x86k6}\x5c\xb5r\x8cV\xbf'\xeaiB\x03\
+\xb5z(\xa4\xd53\xab\xbc\x06\x13n5\xc6p\xdar\
+\xf5<rpR.V\xcfCQ\xf4P\xdf\x05\x83\xd5\
+\xb22\xb1\xf5u%\xf2\xf5x\xcd\x91\xb0\x88\x10r\x05\
+ \xa2D\xa0\xf3G\x06\xc3\xa0\x8f33\xdb\xfb\xdd\xb5\
+\x17\xf2$\xae-\x81\xc8\x8au\x06>\xca\xc5CP\xb9\
+\xbep#.L\xfe\xd0z\xee\xde\xdc\xceg\xe7\x7f\x99\
+\xdf\xbf\xbeiK?\xbfh%o\x85\x15\x940\x041\
+n\x91\x8a\x82\x86\x1c\xcde\x116\x0c\xf3Q\xed\x87\x8e\
+\xdaSZq\x05\xeft\x0c\x1e%9\x99+l(\x85\
+\x5c#\xaa\xfbp)\xae\xfd\x90\x8d\xd0\x96\xf2\x88\xde\xc2\
+\xa0\x1e\xd8h\x85E\x14\xea^V\xa7\x02\x04\x81\xb5\xcd\
+\xac\xd2\x9cui\x86\xc6\xe2P4\xd0(t\x82\xc5\xcd\
+\xdd\xbc\x9d\xe0\xa4b\x19F\x92\xed\x0f(\x11\x1e\x19M\
+6k\x01\x0f\xb4\x89\x96\x14LH\x19\xd3\xca\xc8\x07!\
+\x14\xc9\x9f[Y7l\x0f\xb2\x91\xc1\xc7\xf8V\xa6\x85\
+\xd9T:\xad\x8c\x8b\x0b\x19\xc7qZ\x1ao\xe3W\xc6\
+\xb7\xb4\xb0\x12di\xb5\xa5M\xd1\x8aYH\xd43V\
+W\x89\xceV\x88\x86\xdb\x1ai\x98\x81\xb7\x91\xb8\x12\x92\
+\xb8\xb4\x97A.,2\x81\x22\x08\x06\x88\x13\x06*\xca\
+):Q(\xa0\xaa\xa9\xa3\x1a\x1a\x1e\xb5\xa1\x15TM\
+\x8dN`\x07RHW\xa2\xba\x04\x0b\xee\x8c\xe7\xa4\xe8\
+\x10\x5c\xef6%v=PO\x85\x83\xbe\xdb\x04\x0e\xb4\
+X\x842\x07\x97\x03\x9c{\x9bv}a\x97I\x07z\
+\x9b\x8b\xeb\xacG,\x07`b\x1f\xd4X\xe7\xb6\xf3\x02\
+\x08\x0a<\xday\xf7$\xb8\xbf\xc6f.C\x1a\x03\xa0\
+I\xec\xa8\xb1\x99\xdb\xb0\xc6\x88\xb3\xdcYc3\x8f1\
+\x1a\x9bU\x8dW\xd8Z\xecp\xcc\xfa\xc5\x19^\xd0\xee\
+k\x144|\xfer\xf73\xa0\x19\x83+\xf3w\xe1\x80\
+\x1dNi>\xa3\x99\xaeU\xe6\x188e\x9boE\x9c\
+\x9f\x9f\xedl@\xb2U\x939\xbfx\xb9\xbb\x01\x89\x8f\
+\xd1\x98qHc\x07v\x80\x9d5f\x1e\xd6\xf8\xe5\x85\
+\xce\x01v\xd6\x98u\x84\xc6\x22v\x94ua&\x12G\
+r\x8b&\x0ac4\x86a\xb7\x188\xe7\xf9\xce\x1a\x83\
+\x0dk\xcc\xe1\xe7ko\x87\x875\x868\xf6\xe9\xd9f\
+f}\x072\xd8A\xd6\x17p\x9a\x92\xf2\xc4J\x06\xa3\
+(\xb6\x1f5\x99z\xf1@Ik\x7f`Q5\x0cn\
+C*\xa2\x12d\x88\x93\xa9e\xb1\x0cC{\xfe\x9eH\
+\xfe\xcd\xec\xbc{\xbe\xb6\x03\xb0v\xde\x85\x01\x17\x0d\xa8\
+S;\xab$\x17\xef\x92\xdc.(TSb\xc4{\xa6\
+\xfe\xe0\xad\xcf$\x11\xea\xca\x9c:\xa5\x1cQG\x89R\
+7>n3\x9dz\xf0\xc2\x8b\xf5\x16^\xa9\x0eU\xb1\
+@J\xe6Ci\x979\x08\x98)5\x0e\xd7\x82\x91\xc8\
+\xdc]2\x03\xe0\xa1\xdb\xe8\xd5?\x96\x1b\xde\x1e\xedE\
+\xc3!-Z\xab\xe3\x00\x13\xa5\xe7\x1f\x12);\xc8\xdb\
+o(\x82\x94\xc04\x81b\x98\xac\x12\xcf\xfbq\xd9\xb9\
+n\xc8\x22b\xa5n\x1c \xf3C\xe2\xe4\xf0\xb1\xe3\xc4\
+%\x0dA*LQ\x885\xc5?(L\xf43L\x9d\
+\xc0\xad7\xa6\xab\xaf\xe4T\x0b\xb7\xba\xd6\xed\xed\xf5\xd5\
+\xcf\xda\xdd\xe5:\xb6DF\xf1\x0f\xefqM\xb8W#\
+\xa9{^\x8c\x0ap8Rw&,\x91\x1d\x1f\xd4Z\
+#i\x15\x85\xe2\x14\x19z\x10\xfb\x99\xf0\xc1\x9d\xa8\xb9\
+\xf4*\x1f\xd0\x99\xb1)\x90\xe6\xaeu\xf6\x14\x8a\x06\x98\
+x\xb5\xc1,\xc9\xc2\x5c\xd7\x91D\x14c\x96\xf8\xa8\xba\
+Q\x0a\xdc\xe5p6\xeb,\xbf$+\xc9f\xab\xcb/\
+E\xdc\x8d\xaa\xceT\x802T>\x9cFL\x8c\x87\xf1\
+Od\xc4F9\xc1\xba,O\xb3\x10i\x80w\x0fH\
+Mg\xc2Z\xf3\x95\xe6\x11\x05\xb1B\x14\xa1\xf9AQ\
+\xe0\x03\xa1\xc0L\xd4\xa2P\x12\x15R:h jq\
+3\x8f\x8a\x06\x16\x08I\xa8\x11$c\xe1\x0e\x0d-=\
+8#\xe9\x81\xc1`b\xef\x05C\xb8\x9e/hPR\
+\x94\x14\xab\xeb\x02-\xc1\xa0\xb5\x07i\x88\xaa\x0d\x0f\xe3\
+\xf8\xe1\xfc\x10y\xc0.\xed\x15\x8a\x00\x81UOeR\
+\xc0\x0d\xa5\xbe\xd4\xa845\xd4\x87\x92F\x84r\xe0\xe3\
+\xf7(\x13zO\xf1\x87<\xc0j\xda\x82 \x10\xa1\x13\
+(A\x01f\x8b\xf7\x0bf\xe2\x92\xd6^F\x183\xf9\
+\x04\x13\x8b\x88\x11O\x8c\x0a)'\xd8P\xf8\xd1\x8e\xf5\
+\x8c\x0b\x08\xbak}G/%=\x05\xa2\xbe\x93\xe4\xa2\
+\x8a\x84\xf5]\xbfb\xd1\xa4\xcc\xfa\xa19.\xe2\xe2F\
+\x0b\x80\xcf\xae.\xdf\xfcuv\xff\xba\xbd\xf9x\xbdy\
+\x12\xff\x91\x8a\x91\xda\x1d0o\x9a\xcb\xee\xd0\xbf]\xcf\
+{\xf5\xe2\xed\xed\xd5\xaf\x7f\xb5\x8a2#\xf3\xf3\xdf\xb4\
+w;\xb3\x00w\xf7\xb77\xdf\xcc_\x5c\xdf\x5c\xcf\x1f\
+\xae\xa7\x8bO\x12\xbc@+\x92\x0a\x00!\x8f7\xda\xfa\
+lj\xfe\xc5\xed\xcd\xdb\xeb\xf3n\xe6\x7f\xdf\x5c^\xaf\
+\xe6~{\xd9\xac\xeb\xbd\xbal\xfe\xf7\xe2\xe9\xf1\xf3\xd9\
+\xdd\xeb\xd9\xed\xed\xec\xc7\x07i5w9\x07\xf1B\x0a\
+\xeaC\xf6\xda\x17\xa1\x1a\xbd\xffr2\xc5\x90\xe2l\xa2\
+\x13\xf2\x92\xc2\xae'\x9f7\xb9)%]\xdd\x9er\xf1\
+dJ\xa0\x85@\xcd'\x8c%0\xd0\xad\xc9D*\xe9\
+@6\xe1,\x1a\xe4F-\x03\x22(\xe9.1\x11/\
+\x1a\x99\xc9m\xa6\x94\xd0\xd4\x89F!\x22\xc3\x87<\x83\
+$\x9fX\x14\xf7\x14\xc8\x93\xaf\xba\xd9i%\x88@\xb0\
+e[\xb3\x11\xa0\x84\xb3G\x9b\x89\x85U\xbc\xcd\x94\x82\
+\x14\xd4f\xa2\x17\x86&\xd5\xcc\x96/*\x15\xb4\x8c.\
+m\xab\xafDA\x0c\xe4.\x0b\x14)al\x5c\x85u\
+3k\xc1\xbe\xeafW5>_f\x1b\xb2<iL\
+KY\x92*\xd8\x85\x06\xd5\x8a\x02\x99\xac\xc2\x88&\x85\
+\xcc\x89\x9e \xc7&\xd3\xa5H:\xf2c\xe5H\xbe\xb7\
+\x1e\xffu\xb2R\xbf\xc2E\x02\x01e\xc1\xd8\xa3p:\
+\xe4S\xb6\xb6\x99T@\x02}\x22Z\x12\xbdek^\
+\xd0#p\xa2P<\x9c\xd4\x96\xe5\xa2\xc2\xe6\x9c\x13\xd5\
+\xa2\x19\x16\xad\x0aY\x92\xb2!5,\xc1\xccA\xcb\xcc\
+\xf6\xa9E\xf5B\x02\xd0\x02.\x82,\xea\x04\xd8\xc9\xfe\
+\xfc!\x1b\xc5\xed\x89\x05\xb6\x99^\x10T\x1fEy\xb6\
+yT(\x05\xe2\x9db\xa5\x17!qzP R\xdb\
+L,\xe0\x1aO\x9a\xf2\xfbQ\xf9Wg\xba\xae\xf5\x00\
+\x8c\xcb\xc8\xa7\xbbI\xe2\xfa\xe6|\xden\x94\xb8k|\
+\xc6\xdd\xd9\xe2\xef\xee\xe1\xbf\xe5\xcc\xde\xa3'9\xba\x9b\
+\xaf\x0eh\xbc\x9b\x87\x22i\x08j\x13(\x22\x90A\xd9\
+\xfavg\x03Mi/\x97\xce\xdf&\xd3\xcc\x82\x82\xe2\
+\x93XDj\xa0\xb1\x8d\x9bw/\xca\xcc\x8e\xef\xbay\
+\xac\xeb\xd5\x22\x0a\x08\x05\xe4\x87p\xf3\xac\xd5\xcdoY\
+\xbf\xeb\xd6\xe1+\x8e4\xbd0a\xe0\xaa\x1f\x05/j\
+\x88\xd4\xf5\xa3\x88^<\x11\xb8\xebG\x91\xb4\xa8\xaa\xd1\
+;\x0e\x80\xb9\xa8Q\xc8\x8a\xb3`/\x22\x12V\x1d\xe9\
+2\x13S\x8cW\x1ci\xcd\xee:\xd2\x9a\xbd\xea\xdb\x98\
+K\x0a\xbc\xe3\x05)KDp\xae:R\x93\xe2\xaa\xc4\
+\xba\xeaH\x0d\x8a\x03Kj\x97\x85\xb6\xc5\x8dL\xad\xc2\
+\xba\x99]GZ\xb3W\x1d\xa9\xb6\xc5\x0d7\xedzR\
+\xc3\x02\x01\xee\xda\x05\xc7\xb2@\x04\x00\xae\x02\xe9VB\
+I\x03\xbb\x9e4\xbc@\x90\xa4WOZ+r\xc5\x91\
+\xd6\xecU?\x9aP2H4\xba~4\xa4\x18\xb3\xb2\
+V?\xeaY\xdc\x04\xddV\x1d\x96KI%\xd7\x8e\x1b\
+u*\x8a\x8a\x9e\xd5\x8d.2E=YV\xdd(\x12\
+\x15Tg\xef\xba\xd1\x87l\x00\xa4\xae\x1bE\xccb\x09\
+a]?\x8a(%<E\xde\xf1\xa3\x08\x05\x10 V\
+\xfc(p1C\xb4\xeaH+*+~t\xdb\xd8)\
+?\xbd\xd8\xe9\xdf\xe5\xe5\xf3\x83zy\xc4\xe2d\xc1\xfa\
+\x11\xb8\xf9\x8fk%;\x11\xd9\xff\xf7K\xb9\x8d\xf2\x90\
+K\xb9\xc7o\xb4Kz\xdce\xe7\xa4\x13d.\x00@\
+\x13\x82\x12n\xd4j\xbaDW\x0bv\xbei>\x85B\
+(Q_<\xc6\x93\xc2\x8f\xca\xf4|\xee?\xa8\x7f\xfd\
+\x86\xd3\x17\xc8_\xac\xbde\xee\xfbf}H?+\xd6\
+\xdf\x7f\x8e\x9f\xbf\xcb\xaa\xb0*\xf7\xf3\xb3~~\xf0e\
+*\xc4\x1a?\xc3\x94~~\xb1\x81\x1f\xc4\xe7\x00k\xfc\
+\x5c\xbd\x9f_\xc2&~\xfe\xfb5~\x0f.\xb7\x1a\xcd\
+.\xab\xc5\x80zv\x99\x83\xecp\x98\xd2\xf9|>t\
+\xdaI\x97\xb5\xedp\x84\x07\xcdc~\xbe\xb6rb\xc4\
+\xfa8\x83}6\xdd\x1b\x1d\xf6\xf0\x97.k\x19q\xb6\
+\xd4h8R{4N\xdf^c\xe3y\xee\xa0q\xe6\
+\xbfQc\x91\xdc\xc3\x00Dq{8`\xf1\xb7\xfd\xe1\
+b\xdc\x03\xc7\x00\xeb\x0a\xc7\xa8c\x17\xc8Y6\x1f\xbb\
+`\xd2\x9e\xba@\xc5\xda?\xef;{\x01)\x9a[&\
+\xfb\x1e\xbd\x00\xf5\xe9\xbd\xce]\xa8\xdb\x18\xa1 Ag\
+[\xa7qAM`]y\x87\xeb\x085\xf2\xa94\x83\
+\xeb{@\xb9\xfd{\xecP\x093E'\x88\xc5m\x22\
+%\x93\x84l\xcc\xb1\xc9\x1c\xc3{y|\xff\x03N%\
+\x0a!\xa1b}e\xa2E-\xba\xf0X\x96$\x86\x88\
+\x95]\x06\x9cd\x1f\x03<0\x1a\x9e\x9f\xb0\xf1x\x0c\
+\xa2\xc3\x86{\x1b\x8f\x14\x0a\xef\xc2\x93\xd8\x96\xda\xc1\xba\
+K\x0d\xea7\xf5\xdb\xfb\x1eJ\xb2\xc5fi\x82\x09\x8c\
+R\xdd\x06U\x17\x80\x9f\xa6\xea2B\xf5\xc11W\xdd\
+\xa6\x93X\x02\x14:\xc3U\xf5\x02\x1a\x8aR\x07`Y\
+@5 \x9f\xc6\x0d\xca\xc5\x18hx4V\x143%\
+'^X1\x89s>\x8d\xc94\x0a\x18\x93\xb0\xb6\xbf\
+\xb0\x90;!\xcadJP\x88\xc4\xc9\x9aK.\x99f\
+\x9c\xfb\x0f\xda\x88\x9d\x86\x9b\x8e\xc4\x9e rQ\x0f$\
+\xad{\x0b\xa5(#i\x1d\xc4b\x97\xe4\xec]\x92\xb3\
+.\xc9\x00\x90V\x14<\xc3\xf2ax\xab\x08\x89>\x99\
+\x1a\x97\x16<\xc3\xc9\x94\xa9\xa4\x03\xa2\x8eB\xec\xa8\xae\
+8\xad\xb01hg\xe5R\x14\x03\xc3\xce6B\xa6\x02\
+\x8aa\xb5\xd5\x09\x17\xcf\x04\xb2=}\xb1\x17\x1533\
+?\x8c?\xb6m6\xb6\xcb\xdeF\x85j\x1d\x9bB+\
+\x10VM\xca\xb1\xb8+Q\xdd\xad\xda\xa58\xebR\x0c\
+O\x22\x98B\xa04H\x91a*\xd0d\xda\x82\x06\x98\
+!\x13.\x9c@\x086A/\x0c\x09\xd6\xdcV/\x96\
+L\xe3\x1a\xa5\x0d;u\x8b\xdc\xdb\xa9\xb7pdp5\
+\xb1\xb4\xc2\xceH\x5c\x9d:A\x11\xf2\x1a\x0cU\x9aA\
+\x13CwR\x89\x87f\x08\xee\x84\xe1\x13+\xaaJ)\
+6\x99JIAs\xc0Q66\xec\xfd\x15\xf1\xa7c\
+c\xcc\x07\xb61\x1a\xb61\xdb\xdb\xc6(J\x0a%\xd5\
+5Jb\x85HS\xde\x99\x89\xe5\xf0\xea\xc6\x1c\x8b\x91\
+\x09\xc8\x9e6\x86%\xc4\xc8\x95\x0fec0lc\xc0\
+?w\x8e\x151\xe1m:\xc7\x9f=\x7f/~8\xd6\
+\xf3\xff\xf4[%\xc76\xad\xf2g\xcf\xdfgc\xac\xc7\
+\xf0\xfc\x87\x8c\x0a\x0e\x14\xa9\x8c\xb11\x1a\x19]\xfc\xf4\
+\x83|\xda*\xc8\xffy\xf8\xbd\xb1-\x92\x8c\x18~\x0f\
+\xb4\xc5\xe1\xa9\x97\xf1\xb3<c\xec\x07GL\xdf|\xda\
+\xaac\x1cU\xf5\xf1\xd3\xb0\xe3'\x85\xc7\xa0\xa3\xa3f\
+s\x8f\x8f\xce\xf87\x0a\xa3\xe0\x19\xf1\xa6\xe4\xa7o<\
+\x90\xc7@\xe7\xdf\xe9.8$\x8e9\xc7\xefZ\x9c\xc2\
+\xb9\xb3\xad\x0e\xa28\x88p\xd5\xc9\xaaBT\x1c\x00M\
+\xc7(d\xc3\x0a%\xef\xab\x10e\xd1`\xd4\xce\x89\xc7\
+Y \x08\xbdV\x92[1[=!\x0a\xad\xa0\x90\xd1\
+\x18\xbd\xb6\xe8\xcd\xc3\xf6\xd5+l\x11\xe8zV\xe3\x83\
+\x22\x18\xa8T]NafJ\xc4\x07\xbd*\xcd(\xbd\
+h\x84G\xfeX\x1b\x15|\x98\xb7G\xc1E\x11C\xad\
+\xbbu\x89\x04\x11\xb3\x86\xafV\xc8\x05\xb53\x88\x84\xa2\
+\x16.8|\xf2\x06QF\xda\xc3\xb8\x8a\x1c\xc0\x01'\
+S\xa2\x92\x14\x99\xb6\xb8DO\x8c\x18\xb1\xb8/8~\
+~O\xb4#bv\xc4\xa90)\x9a\xec\x150\x91\x82\
+\x99a^\xad\x8c:$gk$g\x1d\x92\xe1/\xec\
+\x98\x01\xa9L\xa0hcNE\x83\x04\xd4'R\xc4)\
+\xd4c\x82$\x85\xcd\xbd\xc1\x0e#\x0b\xa59\x8f\xc2N\
+\x86\xb1c\xde\x13;/i\xd1\xc1\x8e\xa3\x88\xb0q\x17\
+\xbajh\xf5v\x076\xd2\xe1v)\xc8\xd1\x02\x02\x05\
+\x0d\xd84\x1b\xf8\x048\x09y\xc2\x85=\x0c\xad\x9d\x12\
+\x83\x82\xc9\x82\xb1\xf8\x96\x13\xa2j\x8e3;\x1a\xf6k\
+d\x1f\xd7\xccE\xf7 \x17\x19u\xa6v0l=+\
+1\xder\x22\x8b\xa2{R\xd7tB!\xb2.v_\
+\xa59\xeb\xd2\x0c\xda\x10e\xaa\xb0\xb66\xe4\x0a\x94\x18\
+\x13,\xa0\xee\xc4\xd6\x5c\x05\x13p\xdb\xe4p\xe1\xd3 \
+'S\x8a\x22\xe4\x068\xc6\x84h\x8bx\x93\xe3g\xcf\
+\xf5^\xecl\x1b\xcf\xf5\xf3\x0b\x90^\xfcd\x9b\x17 \
+?\xe3\xd7\x8b\x1f}\xc4K\x07F\xf8u\x82m&\xe4\
+\x7f\xb6\x8b>\xbb\xc0\x18\xf1\xd2\xe7\x13\xc4O\x0f\x8d\x9f\
+}\xc4\xcb%\x8e\x1fV\xa1\x1c\xe6\x9dk\xfd\x5c^\xf7\
+\x8bx\x0fN\xeb\xf5\xfc\xf2\xd5\xeb\x86\x1e\x8bf\x90\xe9\
+\x12\xce\x87=Y\x99\xf8\xb4\x85n\xb1\xfb\xb3\xa5K\xe0\
+d\xc0e\xd9\x16t\xa2\x98\xa6\xe0\x1b\x8b\xb2\xf6\xfd\xbd\
+\xfe/\xe8\x91\xbc\xf7\xeb{XX\xdc\xd4\x16\x05\xdf\xa8\
+t\xfd\xfc^\x8f\xf6\x16\xf8\x8e\xf6\xa8\x9eB]\xed\xc1\
+#\x1d\xc5pU}\x12\xf1\xa0\xae\xfaH\xc4\x89\x07S\
+\xdf\x82{>>\xc8\x84\x892^{e>PY\x95\
+\xb5\xa7\xaa\xc0\x00Xu|a9\xed@\x85\xe5\x8c\x1e\
+`%w+\xe8\xaa\xa3\x1a\xf2\x9e\x18l\xb8\x9c,\x9a\
+b\x11\xa34\x9fO\x97>\xd4h1\x0f\xe2\x854\xb6\
+\x0d\x82\xeb\xd1\x07D\xa9_\xe3\xd7O}\xc0\xd4\xc0\xa3\
+\xb0\xd6a5[\x16%\xa1\xc7\x8d\x97\xa4\x5c\x00\xa3n\
+\x0c\xae\xcf<\xf5\x0bdZ8{>O\x1e#w'\
+\xf5lNB\xd8\x7f\xa7V\xe5;{\xf1\xed\xe5\xf9_\
+\x9bM\xe7\xf7\x7fkn\xeeX\xd0a\x0eEG\xf0\x18\
+T\xeb\xcb\xc5\xdfV{,\x87{\x9e\x90\xc9\xd4\x5c\xea\
+\xcb!s\xa9\xd3\x07\x1c\xc5\x9d\xb9s\xbcY\xd6I\xf9\
+zw\xef7B\x89\xf2^\xe3\xa1D\xeb\x07\x80\xacM\
+C\xa7D\xf7\x18\x10%F?k\xc66\x0d\xb1.\x88\
+$\xbd\xfci\x83\x05\xc9y\x9b\x06\xf9\xb3\x8b\x02\x00\xf6\
+\xcb\xa0~\x19\x0am\x1a\x94!\xc4\x90\x99\xd9/C6\
+\xc8\xf06\x0d\xcb`\x8b\xcd26T\xb3I\x9b\x86e\
+H\x0e\xe8\xb1\xa1\xbe]\xdb4,\xc3@{\xf9\xf3\x86\
+\xfa\x8eY\x9b\x86\xf9;\xe2F\x1dxC}\xcf\xb8M\
+\xc32\x02e\xa3Mq\x7f}\xdf]^}7\xbf\x1d\
+\x16\x91\x88\x9bEl\xa8\xee\xf3\x8b6m!Cx3\
+T\xb1\x01\xaa\x8b&\x0d\xcbPt\x09\x8f\xe8\x95!\x1b\
+\xaa<\xa5M\xc32\x98t\xa3\x1eB\x1b\xcc\xf6\xacM\
+\xc32T137\xe8!\x1b\x9a\x9f\xb6iXF\x88\
+\x0a\x98\xf7\xcb\xd8P\xe7Jm\x1a\x94a\x10\x06\x00\xd4\
+/cC\x9d\x0b\xb7iX\x86\xa0m\xb4]\xc5~\x19\
+\x9cm\x1a\x96\x91\x14\x1aD\xfd2x\x83\x0c\x1eV\xc2\
+9}c\x85\xab\x8e\xee\xfb\x22#2\xd3\xfbe\xf8\x86\
+\x06h\xb3\x98\x0d5\x8e\x9eo\xef\x8c;\x84d8\xfa\
+\xb9]~\x92R\xc5\xac\xb3v\x91J\xa6\xad\xac]\x8c\
+\xe2NJ}\xcb\x06\xc3\xed\xfd1Mxl\xf0~\xd9\
+\xa6}c\x9a\x88M\x87ax\x9b\x06\xeb\x15$\xa5\x9f\
+?\xf5\xf3\x7f\x99m\x1a\xe4\x8f \xd9\xcf_6\xd8\xcc\
+\xbcM\xc3\xfc\x85\x09\x93\xb8_\x86m\x90\x91M\x1a\xd6\
+\x81P\xad\x9f\x7fl\xb2\xfb6\x0d\xf3\xb7\xb4M\x9dB\
+\xe4\x86z6o\xd3pl\x99\xb1\x81?\x1d\x80\x7fn\
+\x8c]#7\xc5\x95\xd2\xa4mb\xbe\xe0\xcd8m\xa8\
+k\xc16\x0d\xcbH\xd5\xcd26\x8d#\xb4M[\x04\
+\x01\x19\x91\xda\xefK\x01F\xfbkuHS\xe2~\x19\
+\xb4A\xc6\xbcM\xc32R\xa2\x9f\xff\xa6\xfa\xbeh\xd3\
+\x16\x9d\xb3n\x0e\x00`C};\xb4iXF\xf2\xe6\
+\x18\x1cb\x83\x8c\x97m\xda\xa2\x7f\xd6\xd8\xd8?#l\
+\x90q\xd1\xa6a\x19\x03>$\x91F\xda\x14\x1ek\xee\
+\xc1#\x0b\x12\x81o\x98\x810\xf7\x12\xee\x80\x87\x9c\x87\
+\x08\xa3\x9e>\xdbd\xf4`\x1e`C\xa7a6\xda\xe1\
+\x22K\xf4\xf3\x8f\x0d\x1d7\xb5i\x8b\x81#\xf7;s\
+\x87\x0d\x9d\xdelx\xe4k\x94\x1b[D8m\x10\x80\
+m\x1a\x8eX\x95bc\x8f\xe4\x1b*9\xcf\xdb\xf4\x11\
+G\xacV\x80X\xea\xd2;\xc5\x82\xc0J\xefD\xac\xcc\
+\xd1\x1b\xb1\xaa\xf4X\xbf\xda\x86\xb0\xf2e\x9b\xf6\x8eX\
+u\x83aR\xb4i\x9b\xde\x937\xf5\x0aa0\xa2^\
+G\x9fd\x97\xb2\xcf\xb9ni\xdbO\x9c\xf3\xffk\xef\
+\xca\x9a\xdb8\x92\xf4\xf3\xfaW0\xfc\xa6X\xaa\x94\xf7\
+\xa1\xf1:B\xa6\xad\x89\x89\xf0\xecN\xec<\xec\xa3\x83\
+\x92@\x8df$\xd3AQ\xbe~\xfdVv\x03l4\
+\x89&\x05\x8a\x1c\xcb\x07a\x19\xa8\xaf\xd1\xd9\x95_\xe5\
+U\x05\xa0\xcb\x8f\x85\x9e\xbf\xff]\xce\xe2\xfd\xd7\xce\x9f\
+\x9d\x9c\xe8\xd55\xf9\xdb\xdf\xe4\x8c%n\xc1\x06+\xec\
+q\xd3\xbf\xdeg\xdc\xd1\xe5\x05\xc9\xb4\xcf=\xce\xe4\xc5\
+\x9d\x92ax\x1b2\x8c\xdf\x9f\x8c\xd5\x8b\x93\xda\xc4\xf3\
+=M\x83M\x17\xd8X\x12}\x977\xc0\xe3\xb0\xdb\xd0\
+\x11q_w@\xe4\x84_\xf2~\x80\x00\xb7\xa0C\x80\
+\xf6\xb0\x0e=9\xd9\xe3~\x80 \x0bt,\x8a\xbeK\
+:\xc8nC\x07\xeda\x1d\xe5\xdf{\xd0\xc1\xb0_\xe8\
+\xb8[:8nC\x87\xc0>t\x10\xeeA\x87\xec\x15\
+I\x09\xef\x96\x8e\xe4\xdb\xd0\x91z_\xb1C\xd2\xffM\
+\xb1cY\xe7\x05\xae\x14\xf8\xe6}\xc9\xf5\x04/\xcf\xf7\
+o\xd8\x7f\x97\x15\xdecWi\xe1\x14~~\xbdd\xbc\
+*\xd9?\xc06\x14o\x93f\x15y/W9\x86\x17\
+\xefk\x1b\x8a\x0bivY\xf4\x1d\xba\x8aY\xde\x82\x0e\
+s\xbc/W1\xe7\x8f\xd5U,\xf2\xc6\xdd\xb9\xe1\xe4\
+$`OW\xb1\xac\xba\xf1\x16\x92\xe1&W\xb1\xe4\x0f\
+\xb0\x0d\xc7\xdb\xd4\x1c\x8et_\xb6\xe1(\xbf`\x09\xe6\
+\xcc\xb7\xa1\x83\xf5\xbeJ0g\xdf\xaf\x04\xbb\xe3[2\
+3`\xfe*o\xc9|\xfb\xfd>\xa6\x1d\x12\xfc\x9b\xc5\
+m\x15\xfcNvr}\x88\xd9\xb2\xfe\xea\xe6&\x0f\xa6\
+\x1fM\xc2\xd6\x86\xeaH\x8dA\xfcb\xdd\x87\xb3\xa9\x86\
+\xde\x91\x8aq\x8d\x8a\xfe\xe9]l\xf8\x10N,\x9b;\
+\x14\x04\xf6\x07\xd5\xafz\x9aqP\xfd\x10\xd6Z\xb0\xd5\
+c?\xfd\xe7;\x8a\xde\x9e\x80\xfcf1\x15x\xee\xb1\
+\xdfdJc\x99\x96\xabK\x87\x0elm\x8b\x1b\xd6\x94\
+u\xda\x147\xa5\xb7\xcd\xeeH\x0d\x84e=\x02\xf7\xd1\
+C\xb7T\xe0Y\xef\xc3t\xd6\xfbj\xdfQ\xef\xf1\x9a\
+\xde\xf3\x1d\xf4\xde\x1b%O\x9d\xd7j\xdeU\xdf\xe9\x9a\
+\xbe\xeb>}\xb7\xad\xbe\xcb\xd4\xf7h\x00@S\xe7m\
+h\x8fQ\xfd\xc5\xea\xe4\xed\xe7\x9fM{\xa2\x1d\xbfY\
+\xbd\xf8\xfe\xd5\xea\x87\x99\x22?\xbc\xfa\xf6\xc5\xe9\x0f\x0f\
+7_e\xb7\xf0Ow\x1d\xdf|\x81\x1d\x88.E\xfc\
+\xe3\x97\xab\xbe\x01S\x7f\xcf\x7f}\xba\xe3\xd0:\xd3\x0c\
+\x9fx\x8c\xea\xbe{\xd5\xb7f;}\xbd\xea\xf1\xe0\xf9\
+\xaa$n\x0e\x9c\xf5K\xec\xc0O\x9f\xfd\xb3\x13\xbd\xeb\
+\xc8\xb3\xd3\xb3\x17\xab\xb3\x8b+\xe0\x0c\x1e\xb2^\x1f\x07\
+\xab\xbf\x91\xbc\xea\xcf\x06\x1e\x8b\x83\x8b\xb1yv\xdc\xb9\
+\x9eu\xfe\xe7\xd3\xd3\x1e\xaa\xa8\xa9\x12!\xeb\xfc\xe0\xf8\
+=\xe7\xa6$pe=\xb7V\xdb\xa9\xa9G\x04\xed\xa4\
+\xb2b\x98\xc1\xceC?\x95X\xbf$\xf0\xdd\xd9Y7\
+\x8f\x87\xaf\x8f\x7fZ\xf5\x9e\x7f]O\xdf\xac\x13\xdd?\
+N\x7f(\xda*k\xbc[MPQ\xfcv\x02'Y\
+\xc3\x91\x87\xcf\x9e\x9d\xfe\xb8>\xba\x95\xeaK\xd0T_\
+\xfc\xb9\xb7\x9e\x9e\x9d\xbe\xf9\xdb\xd9\x0a\xc4\xfe\xbe:?\
+\x7f\xf5\xed\xcb2\xf3\xfa\x1b\xf3\xea\x8f?\xd5)kh\
+L\xf8\x95\x8b\xbf\xfbq\x06\xfd\xb4\x0d\xbd\xedc\xd5\xe5\
+\x14{\xcd\xcc\xfc\xf2\x81\x9f\xae\x1c\xd8\x8c\x17\x00\xf4\xfa\
+w\x0d\xae\xde|\xb7\x13\xdf26\x9a\xde\xba\x85\xca\x84\
+\xae\xaf\xd8/\xb8\xc1\xbe=~\xf6z5qY\x7f\xdf\
+\xbfz\xfb\xaa\x83#6:\xd5Uw\xfa\xfc\x93\xcf\xde\
+\xac\xce\x8f_\x1c\x9f\x1fo\xcci\xd3\xee3\xebO\xfe\
+\xe3\xb3o\xdf>~{\xf2C\x7f5\xbe|\xfd\xea\xf9\
+\xeam\xb5\xa6\xe6\xe0\xbe\x9b\xc2\xb0H\x9c\xff\xbc\x84b\
+\xfa\x11\xc9\xd4\x1c\xce\xfc\xcb\x97\x1d`4\x17&\x96\xea\
+b]\xe6\xd1t\x9d\xed\xab\xfe\xfd\xf4\xdd\xd9\xf3\xd5\x17\
+\xb5\xa3\xda\xdb[\x5c\xb2\x5c\xab;\xe2\x9b\xafW'\xe7\
+\xff3\x0c\xeeD\xcc\xfa2\xa7\xdf\x9d\xf7\xdd\xd9~\x1e\
+~\x1a\xb16\x9aI\xd5\xf3\xe3\xb3\x97\xab\xf3\x0d\x5c\xf2\
+\xe6H\xe92v\xa3\xffRb\xf5\xb4\xd7\x0a\xc7\xbd+\
+\x7f\xfb\xef?\x93\x8c\x8dbs-k\x0b\xad\x13\xaaj\
+\xea#\xda\x1d\xa5\xfb\xdf4\x82\xe3/.jPO\x8e\
+_\xaf=\xbc\x9fq\xbe:Z\x9b\xcf\xd3\xe1o\xc0\xbf\
+=\xfd\xebtdz\x7fw\x9e\xdas\xee\xf8\xf9$e\
+\xe8E\xb1<\xefG\xc1\x05N\x8a\xdeB\x7f\xb44g\
+%\xc5\xdf\x22\x11\x05/[I\x1d\x1b=\xe5\xb3\xb3\x17\
+'\x8f\xff\xf7\xcb\xa7}s\xd0\xe7\x8f\xff\xef\xf4\xec_\
+\xa3;\x16z\xfc\xec\xf4]'\xa3G\xae\x17\xcf\x1f\x9f\
+\x8c\xd7{\xf5\xa6G\xf6Go\xbf\x7f\xf9\x9f?\xbey\
+\xfd\xd9\xa3\xe9@\xbd\xa7\x82U\x9d\xbe\x11p\xb6z[\
+n\xd0\x9d\xfa\x1f\xe7\xe7\xdf=~\xf4\xe8\xbb\xbe\xa9a\
+;={\xd9\xcf\xeb\xff\xbdyU'<\xfa\xfby\xdf\
+\xd0\xf0/%wt\xfbu?\xfa\xab\x8b\xae=\xdax\
+\xf9\xe7\x9f|\xb2\xab\xd8\xee4M3\x85=\x8a\xd7\x9b\
+\xab\x82\x22~\x9c\x0f\xceg\x95\x8b\xabw\xec\xb5\x91\xd9\
+4s\xc4\xaa,w\x0ai\x80\x8aK\x920\x8c#\xe7\
+\x92bY\x92j,IR\x8d\xa3'1\x93D\xb0,\
+)M\x96$E>yz\xc4sI\xb4(\x09Y}\
+I\xd2\x17|t\xf4\xe5\xa5>\xc9\xb2$\xe7EI_\
+\xcaW\xf4U\xce%-3N\x90\xb9$\xe9\xab\xa3\xa7\
+\xf4T\xe7\x92bY\x92\xb0.Iz\xdaiz:\xb7\
+\x02\x86eIN\xb4(i\xf8\x9bK\x1a\x19\xbf\xfc\x99\
+\xf8M\x8e\x11\xfb9F\xde\xb5g(\xab\xaa\xcf5\xf1\
+\x91\x93\xddc\x8el\x86\xa2\xcb\xb6\x18O\xe2h&O\
+p#oa\xec)\xcd\x22\x96\xc7\xbf\x1es\x89\xbe<\
+jl\xbc<\xfe\xf5\x98K\xca\xbb\x1a\x7f\xc5EI\xca\
+\xb8O\x9f\x94\x17%\x85\xc8\xb2\x9f|q\x85'\xd5\x05\
+I\xb8(\x04\xbb\xdb\xf2\x5c\x88/\x19\xf6\xc2\x92\xe1\xb4\
+np\xff\x8b\x03;i\xdac\xd4\x8c\xf6e\xa8\xdcE\
+y.D\xd6\x0c\xcd\xf8\xb8\x91!\x84o\xeem\xdd\xe1\
+\xc3\x89\xc9; \xc6\xf1v\xc4\xe07\xf7\xb4\xa4\xf1\xc1\
+\xb4\xb8\xedK\x0b'\x7f\xc11\x17\x12\xb7\xa3\x85\xbe\xb9\
+\xb7\xd5\x92\xfd\x88\x89\x88'1O\xc9\xb1\x1c\xb4\x00\x9c\
+\x16%\x1d\xc5W\x91sI\xba,\xc9|1\x90>\xf9\
+\xe2\xc9\xd1\x93K\x92\xfc\x9a\x22H|I\xd2\x91\x1e\xd9\
+\x91\xcc%]\x93&\x10u\xb1\x08\xfa\xa2?\xe6\xc1=\
+\x97\xd3\x04\x03\xd2rp\xaf\xc7\x5c\xd22\xe3\x82\xd7\xa4\
+.\xef\x0f\x9bKZf\x5c\xcdsQ\xd2\x97\xf5\x98K\
+Zb\x1c\xf7\xf0\xb1\xcc\x05\xf7\xf8\xec\xe5\xe6m/\xd9\
+\xd6\xa1\xe6|\xe7\xdd\xb2\xb31\xb3\x1f\x22\xd7\xb3\x02?\
+\xe8s\xa5\xfa\xb9\xff8\x09\x9a\xd6/N_\xacj\xaa\
+\xd3\xbd\xe8\xf9\xfao\xb3\xbc\xb3\xebf\xc2\x82f\xe6\x9b\
+\xbd\x00X\x1d\x85\x0f\x1fR\xb6\xd4`\xee/\x11\x1b\x13\
+*\xcb\x83\xf9gP\x17\x9f5\xb5H\x8d\x04\xa1a\xb3\
+\xf8\xcdo\xde/\xef\x1c?\xceT\xc7\x8d\xe6\xc7\xd7\xec\
+N\x1b\x99]\xfd\xbf\x1e0\xb7\x08\x00\xe3C\xb4\x06\x9e\
+\x10x\xf0\xf56\x8a\xd9\xc0\x22\xbc\xa3\xc1M\xd36P\
+z\xdf\x15?\xa4!mA\x05\x18k\x07\xa2\x85z\x01\
+\xda\x00\x87\xb6\x04e\x89A\xf4\x96,\x87a\xcd\xd1\x81\
+\xa5\xcb\xa9\xe3\x0cY\x18\x0b\x15V\x88\xd2ah\x0b\xe6\
+9\xc0P@I\xaa\xb3\x0c\x91\x16:?\xa1\xe3\xfe\xfb\
+\xd3\xed\x1a\xd8\x86\x92f\x1a\xcc\xd9!\x9f1Tc\x01\
+\xc0XV\xa0 \xccV\x17\x99P\xc2f\xc2F\x1d-\
+:\x9cF\xc85ld\xc8a\x1b\x0a-W\x1f\x001\
+\x19\x81\x8e\x0f\x00DFIG\x82\xc6E\x91\xb7QJ\
+\x01\x0eY\x00!\x0e\xcd\xa4\x81A\xa0\xad\x16z\xf5b\
+l#\xeaB\x8f'\xf4\xe7%\xf3b\xb0\x90d\xd9\xd7\
+\xbcH\xf0\xc1\x9dY\xfe\xcd>\xb6\x19\xc1\x99\x16\xd5\xcb\
+\xb1SW?K\x9c\xd9\xbe6.\x92\xeb\x09\xa33\xb4\
+n#b\xcb\xcc\x01\xf1\xa2\x14\x80:H\x07G\xd5v\
+\xb8hk\xd4`\x8c-l\x1eY\x88\x86m\x10\xc12\
+\xd2\xa4\x96(\x87\x1e\xeb\xa1Ln\x14YmB\xac\x96\
+\x1e\xfa v\xf3z\x1c\xc5j1\x8b^\xe9\xde\xd8\xde\
+e\xd1y\x1f\x94\xf9\x83K\xc3\xbe\xcd`V\xce\xc7C\
+o\x99\xa1e\xecM\x0c\x82d\x83D\x03Bv?\x8c\
+&\x9c\xcc\xb6\x8dd\xc0\xa8\x98\xb7t\x01\x8aC\x84h\
+\xacH\xd1E\xcd\xc0H&-\xe9\xc8\xe2\xda\xa1,.\
+\xb0#\xa9\xe4\x8a\x13\xd2i\xb2\x16\x89.>\x802\x8e\
+\x1aJ\xa2\xe2\x88T[\x00\xcdhhSjra\x1a\
+\xec \x03\x86H\xcc5\x06P\x97$\xae\xd1\x82(\x13\
+(H\xd3\xc8j\xa0\x22\xdd\x0a\xf0j\x98(9_4\
+9\x1cTG\x19f\x1e\x87\xd9\x00%\x8b\xa5\x0d\x12M\
+\x9c\xd3\xa2\x00\xa2d\xee\x080#\xd3Ad\xb3H\x88\
+\x09\xf9zN\xf6\x8e\xf17\xbcq\xfc'\x13\xa8\x0c8\
+\xe5@\xe3\xc9io\xfc\xf0|\xb2\x9f\x9d\xa1\x03\xff4\
+Y\xd3\xd5\x0fz\xd7\x0e8\xef\xb8\x168Y\xd5\xe8;\
+\x95 \xd6.S\x80\xd9\x000[y\x06\xb0\x1e&\x1f\
+D\xa7\x95\xcb\xee*m\xd8\x80t\x5c\xaa1\xbc\xb2:\
+V\xf6\x82u\xc6\x81G\x9d_\xd9\xaa\xc4USch\
+\x8e\xaez\xf9\xc2?\x17S\xb7W6p\xa7\xb2\xfe\x1e\
+\xcazd\x01C\x80\xf0&\x22]\xa9AY\x19\x95\x8d\
+\xf4\x01\xb1RvH\xbb6*[\xea\x80\xd6\x19\xa5\x1d\
+!\x96v%\xee\xde\x95\xe5\x9d\xca\xe6\xfb\x8c\xacr\x01\
+,^\xca\x06t\xd5tPVK\xa1R\x7fD\xea\xff\
+\xd5\xa8W\xa3\xb2^\xca\xd6\x19\xc3\xc8\x8a\x8f#\xab|\
+{e\xafQPw)\xe88S\xf0\xf2\x85\x8f.\x03\
+\x09m\x0c_z\x90\x1d\x05)\x0e\x00;\x98\xd1\xf4R\
+7w\xd05\x072\x1a\x0dV\x1e\xb1f\xa4\xc2\xa5u\
+\xf0\xf2u\xe7\xcd\xb5\xfe\x8f^.\xa4\x82\x1e8\xbe]\
+\x8da\xff\xec\xdd\xeb\xd5\xe3\xd5\xf7\xab\x1eJ\xea\x9b\x92\
+g\xa7\xffZm\xca\x81us\xfc8\xfb1~\xf7\xe3\
+\x06(\xea\xfa\xc7\xa0\x8f\x9f\xbd;?\xdf\xc6\xfe\xd9o\
+\xc4\xd4o\xc8\xd4\xeb\x845\xba;\xa9\xb8\x1d\x12TZ\
+\xa8\xe7\x1dq\xcey\xde\xfb\xad\x83d5#\xbd\xb06\
+\x90\xc3\x8a\x9c\xeb\x17%\xea\x17\xd7\xb3&$\xf3\xf9\x87\
+\xe0\xa7;\xcbP'\xfb=\x16\xea\xf70\xe1\xf9\x05+\
+\xd2\xfb\x9f \xdeG\x05\xff\xfb\x9a\xfeL>g\x9a\xb2\
+\xf7\x08N\x1e+\xbf\xad\xc9\xc5\xcd\xd3\x03\x22\xd7\x07{\
+\x10v\x953\xcd?\xa6\x13\x1f\xc3tb\x8f\x11\xa7\xcb\
+\x13\xc2q>\xf1\xfe\xf3\x87\xad\x99\x07\xa6\xf3\x94\xfd>\
+\xc2\x19\xc0\x95\x92\xcf\xac\xa0}\xebc\xa2\xc4\xc9Q>\
+\xaa\xfa\x7fYU\xe7[\xaa\xca\x93\xaa\x1fU\xf5\xbf\xac\
+j\xc0-U\xd5I\xd5_\xe1<`\x07\x13\x08x\x99\
+\x8ak\xd4\xf7\x07\xf3R|\x9e\x0fYn\xaa\xeb?\x86\
+r\xbcz?\x15\xe4\xc37C/\xfdp\xe2\xf5\xf1\xb3\
+\xd5\xeb\xf5\xb7E\x0f\xea\xd8\xae\xaa\xad\x06\x14\xfa\xa3\x9e\
+\xd5\x1a\x90\x99\xc5\xe1\x10\xf9\xa2\xccd\xbc\xc6\xceS\x1f\
+\xe2pf\x15E\x95\xa6\xaa\xc0\xc3\xe6(&!\xab\x87\
+4\x8b\x98\xc4\xa27\xad\xc0$(\x19\x13\xfeiN\xea\
+\xa4\xf65\x1c\x1b\xc7e\x8eK\xa2if\xda{1}\
+V_\x89\xdc\xa0\x03\xed\xaf_\xf5\xa7\xc7\xb2\xc1^\x1c\
+\xf7\xef8\x9f\x9d\x1d\xff4vmD\xaf/J\x95\xf9\
+\xc1|\xa2\x1d\xde\xa2R7\x8dQ\x02 %\xbd7\x8b\
+\xf8d\xad \x89n\x08X\x183\xa7\x8f\x95f5\xc3\
++\x91R\xb5\x0c\xaa\xd5e\x904U@\x91C\xc3f\
+,H\xd9\xb1C\xa3\xe6!`<4\xcaK\xebY\x1b\
+\xa1&\xfb\xf6Y\xd6\xd84\x1c\xd7r\xbd!\xd5U\xc6\
+k\xa2Vs\x8c\xdd\x0e\x90\xc6\x1d\xb3\x06aX)\xac\
+1\x93\xb0\x0f\x18\x19\x90V\xc2v\x0c\x1fO\xd5\xe4\xa1\
+\x8f\x89\x0dA\xc1\xea\x8d\xd2\x92\x9c\xb4\x0a@\x000\xa1\
+\x8eqS\x0e\xc2\x83\xacFO\xf1\xf5\xa2\x84#\xe9\xd8\
+\xf0h`c\xa3\xcc\xd4m\xad|d\xa3L\xe8=p\
+m\x89\x1c^\x9c\x9a\xb9\x1a\x17\xe4\x9c\xae\x5c\x9d\xa7@\
+\x1aN\x14\xb0Q\xa1\xca?\x92\xccU\xa4\x80\x93K\xd4\
+\xf433Y\xa3.(\x86^YY\x0e\x03\x8a\x8f\xaa\
+\x88\xb8\xd98\x06,\xa3\xa0\xa2v8F\xb2\xeen5\
+\xa4\x0a\xb7I\x98\xe4\xa0\x1f\xf8\xc5E\xedPa\xe0a\
+\xbbs\x8a\x1b\xc2.\x948T\x1ax\x15\x9bT-l\
+\xe4\xbf\xb8\xa8\xb3.h\x92l\xc9\xbenp6\x8bM\
+\x03+\xb8\x8e\x94\x0b\xfaa\x8d\x02:*\xd5\xd0\xa8\x86\
+Q\xc7\xb8\x85G\x10\x96\x5c\x1fz\x84<\x8e~!\x00\
+\x1c\xce\x83Q:b\xd4\xe0\xa7:S\x87\xb0\xa5\x199\
+O\xb6\xbd#>\xb3b^\x80\xe77\xecT\xda[\xe8\
+\xec\x5c\xbb@4\xc8\xf1\xc0Cl\x88\x18H\xf2`\xdf\
+U0b\x83\x07\xef\x1dK\xca\xbb\xe7\x81$\xfe-\x01\
+d\x1e(\xcai\x1c$\xab\xd0\x0dI\x95u\xd5\x8d\x8a\
+\xeaC\x89\x8c\x9c\x96X\x96Qo\xd4\xc2X\xc41u\
+pM\x17\xc5\x0e%\xb9\x12\x0c\xb3S/\x87 \x1c\xa2\
+\x87\xb1\x00\x96\x9d\xa25#\xc8\xa4\x0a \xa2\xe8f\x07\
+\xa8c8\xe7\x8a#\x96 9\xc3\xa4\xec\x88\xc9\xeb\xec\
+\x09\xd5\xc6\x08\xa8\xbe-\xd1\x9aJD\xf8\xf6\xb5\xbd\xb1\
+\x99q\xb7\xcc\xa9\x9b\x95\xd7\xc1\x19ytj\x8f\xe0\xae\
+9\x124\x84\x90(2\x1c\x12p\x80(\x0dd\x98\x09\
+\x0a\x82\xf2p\xb2z@\x14AR\xfdA(4Z\x18\
+T%ZY\xcd\x85\xb4cuq\x8e5ff>\x04\
+*\x07\x8b\x9a\xe7Lh\x11\x9d@`34\xb4\x09\x02\
+H\xccP\xcf\x86\x12\x8e:C%Z(&\xe7\x1c\xad\
+X\xc7\xe84C\xd9[ \x88\xf8\x0cEj\x94\x1c\x94\
+\xa5W\xa1\x8eF\xe5nH\xce\xa6\x07\xa9M\xc1A\xab\
+fj\x00\x11\xaa\xa5\xbf&F\xd5\x9a\x0d\xd3\x82T\xc7\
+\xd9\xb5\xb99Z\x99H\x88\xa7QE\x03\x111+\xfb\
+\x920\xa2\xdcer?\x1f\xf4\x94e\xcd`\x88\x11\x84\
+\x8d$\x08J\xa7\x09\x15j\xa2\x9aZ:Y\xb4\x94\x0c\
+\x90-\xf4\xa8PJ7\xd0-\xd4\xbc\xb9\x93J\x14\x96\
+l\x9c<a3\x9e&t\xe2\xffh\x1b\xb5\x06`A\
+1]\xa70\x09'\xf3\xa9G\x13\xb6\xdd\xfb\x05\x14\xc1\
+\x9a+\xc9\x90p\xa3\x11\x09\x0aN\x96\xdf\xd1\x1d\xac\xec\
+\x0a{\x0ct\xf3\x07\x14\xa1\x7fZ\x9c\xb8\xb2\xd1\xc7\x1c\
+\xba\x96k\x1f\x0b\xbc\xa1\xf6qM\xcd\xb1\xf6\x910/\
+J\x19\x08T\x0a\xa3\xe0\x94\xa8:\xc4\xd4H\x0br]\
+\xf3NZ\xa4{\xac3_%\xa0A\xb0\xd6\xa1\xb1\xe0\
+\x88\x80\xd4\xa8Lg\x1e\x1eY\x98X\x92\x0e\x99\xce\x93\
+P\xf3\x9e2\x9d)\xdec\xa6[.\x9a\x97\x93\x9f\xfc\
+\x91\xfc\xfeH~\xf7\x93\xfcB\x9aY\x8a\xddmF,\
+\xb4\x83\x98\x7f\xe4\xc9\xdfI\x9eT\xc8Y\xac\x9bG\xd4\
+\xd0y|p\x9c2\x89\xe3\xd5L\xe2p5\x93X^\
+\xca$\x0e\x973\x89\xeb\xe5L\xe2z5\x93\xb8^\xcd\
+$.\x973\x89\xcb\x95L\xe2t5\x938N\x99d\
+1\xc6\xf3\xb5\xf5\x81\xfd\xea\xeb\x83\x9b\xf3\xe4\xc3)Q\
+\x226\xb7NX\xb4\x08\x17\xbe\xcdd0\xf6c\xec.\
+W\xee\xe6vL\xd2d\xed-\xe0\x5c\xde\xe2\xcdj\xf1\
+\xcdE\x98\xf3\x02\x80h\xa4\x1a\xd8\x81\xf9);\x5c\x89\
+\x98\xb8\xc0k?\xd5\xba\xb9\xae\xb8\xce\xe4\x1c~\x9d&\
+\xe7D\x97JR\xc468\xbc\xe6f\x19e{q-\
+\xd6\xabd\xb8\xb5\xb8\x16\xd3\xdaZ\xbd\x96\xe1m0\xfc\
+\xe1\xb4\xc26\x9d\xba\xb5\xc2\x96\xdb\x0bl\xc8\x0d\x18\xa9\
+#\x17\xab6\xa8\x0d\xd5\x0a\xbaXM\x9a\xf7oW\xe0\
+t\xd0\x0f\xf1\xa2l\x16B\xcb^t\x8d\x11\xd0G\xe2\
+EW\x9cf\xc9\xad&/\x1a\x01\x8f\xe6\x8a\x19\xba\x01\
+$+C\xa1\xd1\x15O\xdc\xc5<\x13,\xb1\xb6\xf7\x02\
+\xf6\xee@\xe5\xf2\xe0\x12k\x0dP\x9c\xd5o\xc9\xde\xb2\
+kp\xda\xdc5\xc6e\xc3N\x04\xd3\xb0\xca9_\x9d\
+\x85\xf1Yb}\xc0v\x12\x94\xf2\xde\xa6\x09-\x093\
+E\x0f\x1ffc\xb0\xb1\x0al\x99$d\xf9`\xb96\
+\x88\xd4\x0f\xec\xf7=\x8d\x9d\xfd\x02c\xf7\xe1D\xef\x9f\
+M=>\xe68\xa0\x8c\xa5\xa0qKd\xe3Z\x07g\
+lL\xaa4L\xe6\xdcI\x9c\x0e8\x9aJ\xa8\xc7\x10\
+\xc29\x01\xe4@\xac\x81&\x9a_`\x5c\xf546u\
+\x0a\xc2-\xd4\xb5%\x03a\xd6u\xc80C\xc7\xceh\
+\xb6\x84p\xe2\xdbE\x98H\xdf\x7f<\x02>\xda\xf1\x08\
+k\x8e\x95\xf3\x08\x1a{\x10nc\x12-D|\xf6>\
+\xcd\xc6\x86\x149\x96\xe2\x04L0\xce\xcb-\xc0\xa3\x06\
+\x03\x0c\xd5\x86\x94i\xa0\xc8| \xda\xdc(\xd1'\xac\
+\x06=\x9a1\x0a\xdb\x16\xca\x95\x03\xd3u\xc00\xc8{\
+'I\x1bE\xb8\xd6Hr*\xa0\xfc\x06\xec(\x11n\
+aG\xf4+\xf3k\x8a\x86D\x198\xd4O\xe6F^\
+c\x14\xe2$Y\x98eP\xd8\x01k3u-$\x89\
+\xc0\xa2\xc6\x92\x1aZ\x8ax\xa1\x0eb\xce%\xcf\x15(\
+\x0bbM\xe22\x0e\x19B\xe9p]!\x91X\xcfp\
+=\x0a\xa52\xc7t\xd0\x19*\xd9\x1c\x125g\xa8A\
+\x03%\x8f\xa1\x80\xa4&\x0cY\x86\x88\x8d\x9cI\xf1\xc0\
+\xbd\x05a \x95\xb93\xa1\x99\x0c\x13HL\x1c\xf5F\
+V\x87\xf5W4P!M\xea\x9d\x14\x0a)\x07\xc1\x0d\
+B\x98b\x90\x08FA{[R-j\xec&\xcb\x9b\
+\x00)p\x99.\x90\xa8\xea\x01gC'\xd5,\x0c\x01\
+\x1d\xfd@\xa0\xa5:\x04\x0f\x98\x92\xda\xe06\xd9\xea(\
+E\xa1\x90\x0eI\xa3DT\xb2\x01cp\xd3\xabW\xde\
+m\xd9y\xf1]\x88\xfaW7\x80\xf9\xfc\xff\x01\x9e\xd5\
+\xc9%:P\x01\x00\
+\x00\x00\x18\xd8\
+\x1f\
+\x8b\x08\x00\x00\x00\x00\x00\x00\x00\xed}ms\xdbH\x92\
+\xe6\xf7\xf9\x15:\xcf\x97q\x1c\x99\xca\xf7\xccrw\xcf\
+F\xdcL\xec\xc6F\xf4\xc6]\xec\xce\xc4~\xdc\x90%\
+\xda\xd6\x8e,)$\xb9m\xf7\xaf\xbf*\x90\x12X\x14\
+-\xd0l\xda\xdd;c\xb8\xdd&\x1eTUV=\xf9\
+\x06\x14\x80\xc2\xf7\xff\xf4\xe1\xed\xc5\xd1O\x8b\x9b\xdb\xf3\
+\xab\xcb\x1f\x9e\x11\xe0\xb3\xa3\xc5\xe5\xe9\xd5\xd9\xf9\xe5\xeb\
+\x1f\x9e\xfd\xf5/\xff<\xcfgG\xb7w'\x97g'\
+\x17W\x97\x8b\x1f\x9e]^=\xfb\xa7?\xfe\xee\xfb\xff\
+5\x9f\x1f\xfd\xe9fqr\xb78;z\x7f~\xf7\xe6\
+\xe8_/\xffv{zr\xbd8\xfa\xc3\x9b\xbb\xbb\xeb\
+\x17\xc7\xc7\xef\xdf\xbf\x87\xf3\x15\x08W7\xaf\x8f\x9f\x1f\
+\xcd\xe7\xb5\xe6\xedO\xaf\x7fwttT\xc5^\xde\xbe\
+8;\xfd\xe1\xd9\xaa\xfc\xf5\xbb\x9b\x8b\xa1\xdc\xd9\xe9\xf1\
+\xe2b\xf1vqyw{L@\xc7\xcf\xc6\xe2\xa7c\
+\xf1\xd3&\xfc\xfc\xa7\xc5\xe9\xd5\xdb\xb7W\x97\xb7C\xcd\
+\xcb\xdb\xdf\xaf\x15\xbe9{UK\x8f\x9dy/C!\
+*\xa5\x1c#\x1f3\xcfk\x89\xf9\xed\xc7\xcb\xbb\x93\x0f\
+\xf3\xbej\xed\xe3\xb6\xaa\x8c\x88\xc7\xf5\xd8Xr\xb7R\
+/>\x5cT&>\xd9\x99\xe1\xe8\xba\xf4\xca\xfeu\xfd\
+\xfbP\xe1\x1e\x80\xdb\xabw7\xa7\x8bW\xb5\xe6\x02.\
+\x17w\xc7\x7f\xfe\xcb\x9f\x1f\x0e\xce\x11\xce\xee\xce\xd6\x9a\
+\xb9'\xbf\x93\xdbi\xe4\xf2\xe4\xed\xe2\xf6\xfa\xe4tq\
+{|\x8f\xb7\xfa\x9d94\xa0j\xf8\xec\xeeM\xdd\xe5\
+\x1cv\xdf,\xce_\xbf\xb9\x1b\xf7\xcf\xcf~xV\x07\
+\xcc\x8e>\xec\xdfw\xe9\xc5CC\x08\xc2\xc3\xa1{9\
+\xeb\x87t\xa3\xd6\xd9\xd5i\xedY\xed\xf7\xeb\xab\xf9\xe5\
+\xe2\xc3\xdd\xfc\xa7\xf3\xc5{\xa8\x02~\xee\x9b\xb8zw\
+w\xfd\xee\xee\xbfj\x89\xc5\xe5\xb2\xad:\xa8q\x84\xcb\
+\xc3C\xbd\x07\xb0o`\xf1\xe1\xfa\xea\xe6n\xfe\xea\xfc\
+b\xb1\x14x\xfc\xe6\xea\xed\xe2\xf8\xfa\xfc\xb2\x8e\xf0\xe6\
+\xaa\xfe8\xbd=\xbe\xfa\xf0\xf1\xf5\xe2\xf2\xb8\xd6\xb88\
+yy\xb18>9\xbd\xab\xb2n\x8fk\xe7.Nn\
+W\x9d\xbb\xbe|\xbd\xb5\xe9\x0fg\xd7U\x8d\x1e`[\
+\x0f\x7f\x1c\x0f\xff\xb1\x1e\xff\xfe\xed\xe2\xee\xe4\xec\xe4\xee\
+\xa4\xfe^\xd1z\x8fh\x0c%j\x99j\xb4/\xfe\xfd\
+\xcf\xff\xdc\xf6\x86\xfd\xd3\xd3\x17\xffyu\xf3\xb7\xba\xbb\
+\xdaZ\x81\x93\x97W\xef\xaa\x82\x86:\xabrg\xa7/\
+\xaa\xe1\xbc=\xb9\xfb\xe3\xf9\xdb\x93\xd7\x8bf\xa1\xff\xbb\
+\x1a\xca\xf7\xc7\xe3\x81\xae\xf0\xdd\xc7\xebE\x05\xbafo\
+\x16K\x0b\xdc\xe6\xb4\xf5\xbf\xb7\xe7\xad\xd2\xf1\x7f\xdc\x9d\
+_\x5c\xfck\x13\xf2\xec\xe8\xf8\xa1\x9f\xc7\xab\x8e6\xa0\
+\xed\x8e\xe3\xa8;\xf7\xc3\x1c\xf6\x1e\x0c\xa1)\xe5\xac\xf1\
+[\xd1u\xf6\xde\x9f_\x9e]\xbd\x9f\xdf\x9b\xa1G>\
+\xdb^\xe2\xden)c\xb3\xc4u\xed\xde\xed\x9b\x93Z\
+\xea\x87g\xbc\xed\xe0Uu\x8c:\x9ef\xa0\xb8:\xfe\
+\xfa\xdd\xf9\xd9\xe2\xee\xeabqsr\xd9H\xa0\xb5C\
+7U\xd4\xd6#W/\xff{qz\xb7\xfd\xd8\xcb\xab\
+\x9b\xb3\xc5\xcd\x83$\xda8pzuqu\xf3\xc3\xb3\
+\xdf\xfb\xb0\xad\x0e\xb5\xbe\xdd\x1fx5l\xcfFsy\
+yr\xbbX\xed\xde\xbe\xb9z_{U\xc1\xbb\x9bw\
+\x8b\xcd\x11\xfe|u\xf5\xb6\x0d\xcd%\xd1D\x1e\x11x\
+\xfa\xe1\x87gs\x12\x04\x16\x11\x7ft\xb4u\x96\x02\x9c\
+)?\xc5}m\x00?q\xa8\xd6V{\xdc\xe8\xbb\x9b\
+\x9b\x1a\xf4\xabW}\x5c\xdc\x8c\x01e\x1c\xcd@\xff\xed\
+\xf6\xf1\x0c\xc7\xe6/_^}X\x1d_\x99\xd9X\xa0\
+Rqo\xce\xd5J\xab\x1e\xaa_W\xac5\xf4@_\
+\x03X\x99\x1f\xc0\x9f\xceo\xcf\xab\xd3\x8f2\x87\xadF\
+\x8b\x0a\x9em\xa0-\x92\xd6\xacY;\xc0\xe0u\xbb\xfe\
+\xb0y\xe8\xe3\x96C\x8b\xb7\xd7\xab\xa3\xf5`\xf3\x97\xc1\
+\x1f\x1e\xbb\xc0\x80\x9f-^\xdd\x8e\xcan{\xec\x98\x8f\
+\xc6z]c\xeb\xf5\xe2\xb4\xa5\xc7\x95\x981\xb8.\xc7\
+\xde\x17\x95\x91\x851>_\xffW\xd3\xe0\xd1\x8b#\xd7\
+\xfa?\xdaZ\xe2\xe3\xb2\x04!\xb6\x7fpk\x99\x9f\x87\
+<\xb1\xad\x9d\xbe\x0b\xf3\xab\x9b\xf3\xd7\xe75\x88\x0f\xe5\
+tI\x94G\xab\xd3\xe9hmpZ\x1e\x02\xcc\xf75\
+\x87.Nn\xfe\xe5\xe6\xe4\xec\xbc\x1a\xd1z\x85\xfe\x88\
+h\xad\xf5\x10\x94n\xef\xae\xae\xdb\xef\xb1tCDm\
+\x94Y\xb9\xbb\xfbx\xb1X\x1e\x99\x0f\x9e\xf7\xe2\xf78\
+l\xdf\x0d\xd0\xca}_\xacW\xb9z\xf5\xeavQC\
+\x13\xd6\x0eN\x0b\x93\xcf\x17\x86[\x84\xd1\xc8\xc6q?\
+\xe8\xcf\xe5\x88\x8bMr\xc4%\x9e\xee\xb6\xcb\xa2\xbcz\
+u\x18\x8e\xb8\x94'\x85\xad\x22\xe1W\xe5\xc8q\x9a#\
+\xe7\xe9n\x1f\x8c#\xd7\xdf\x1cG\xc8\xd3\x1c\xe1D\xb7\
+O\xcf\x16\x8b\x83q\x84\xfe\xb4\xb03^\xe4\xe2\xec\x00\
+\x1c\xd5\x93\xca\xbb\xc5\xcd}\xc5\x96M\x11\x08\x19\x03\xc9\
+V\xed\x8d\xe7\xd5\xc0\xa8\xa48\xc6\x81\x8f\xcb\xf2\xac\xc5\
+\x1c\xe9\x1e\x1eO\xbc\x81\xb5\x14\xe2.0.%\x8ad\
+\x8c\x9c\xbfZ\xfc\xcb\xc9\xbb\xdb\xdb\xf3\x93\xcb\xffs\xf1\
+\xae\xf5f3\xf8\xd6a_,Nk\x93'\x17\xefO\
+>\xdev\xe4\x9c\xfdy\xf1\xd3\xf9\xc9\xdd\xfdY\xba\xba\
+\x99\x17z\xd6\xd3\xdaK\x10\xc9\xb2\xc6\xcc\xb2K\x9fi\
+5\xae\xa8SV\xe3:\xa5HLZ\xc8\xe2 V\xe3\
+\x8a\xf9\xb40\xc98[\xe8\x84\xb0Cz\x96\xd7m\x92\
+#\xf7\x89n\x97W\xa7\xf4\x8a\x0f\xe3Y\x94\x13Y\xcc\
+2\x16/m\x07a`;\xa8\xc4\x03'\xf4\x7f\xca'\
+\x96\xdb\xc4\xed\xef\xc8\xbd\xa3\xd1\x17r4scK\xce\
+\xa7\x1d\x8d>\xd7\xd1>\xd0\x0f\xcfB \x94]r\x0c\
+4\x15%\x03\x117\xd5\x07\xf4\x03\xd7\xb2\x09E\x8aH\
+\x19\xcbV\x94\x1c\xc20lD\x1f\x1b\xa7\xa9\x8c\xca\x19\
+&7^\xbc\xb9Y\xbc\xaa\xd7+\x8fR\xe8X\xee\xf5\
+\x0a\xfc\xeb\xe5\xf9]=\xc7\x7fw\xbb\xb8\xf9\x8f65\
+\xf1\x7f/\xffz\xbb~\x8e]\xa7}\xce\xfemq\xf7\
+\xe6\xaa\x8a\xad\x8d6N+\x0f\xd3#W\x08\xebG\xad\
+\xc0a\x99\x07\x1c5\xef6\xeab_k\xd4\x14\x05(\
+\x98\xb5\x1f9\x0b\x84\xa5\xf7#\xa7\x10(\x89A\xdd\xc8\
+\xdd@5\x89\xf8\xe9\x91\xfb\xc1G\xde\x97\xfaK\xbdv\
+\xbem\xb3\x14\xf5\x9a\xab\xfd\xbc\xa8\x13\x8f\x7f(1\xc3\
+\xe7;\xd1P\x1c\xd4S\xbd\xa3\xc1\x05H\xd2\xc8:\x1a\
+\x8c\x81)\xd5\xb3\xa7\xc1\x81Y\xd5\xe2\x09\x1a\xb8\x98\x1c\
+\xca\xec\xa7i\xa8\xf357\xe7\x1f\xfe@\x80\xec\xc5\xd1\
+gX\xff\x8c{sF`\xd4\x882\x9b\x13\xa4\x98\x87\
+\xf9Nde,\xb9\xeac\xc4\x1cA\x9c4\xd9\xbc\xb7\
+\x1ar\x08J\x8d\xde_\xd0A9\xcc\x9f\xa6\xcb\xff\x0e\
+\xe8\xd2\x80\xe2\xa9\xc1\xbd\x8b\xf9\xd2\xb6\xa2#K\x0b0\
+\xf5e+\x9a6pe\xe5i\xb2\xcand!\x7f\x15\
+\xb2\x0c\xeb&\x8d,/\xa2,\xb4FVk\xf0\xe4b\
+\x93\xac6\xa3DkCosH1Z\xc0Mu\xbd\
+q\xefU+\x9c\x09\x99\x142\xa2\xb5\x0a1\x81*\x93\
+tl\xf5\x22\xb9\xf8N\x9e\xe8u;\x18[\xf3Gt\
+\xa1\x9b\xfb\x8c\x99A\xc2)*Y\x0c\xea^<w\x22\
+kN\x0e\xee\xa9\x99\x1dg\xe9\x90M\x8e\xadS\xe78\
+\x92\xd4U\x1d\xe1\xae\xea\x93\xdc\xe5N\x96\xa6Z\x0e\xc7\
+\x1d\x02[\xbac%\x09\xc1\x98XC\xdb\xcf\xe4PQ\
+\x9d!(\xa1#\xd1\x8c\xd4\x81\xa5\xa8\xcd\x0c\x01\xcd\xac\
+\xd8\x8e9@\xc1\x1e\xa5\xc1\x82\x9e\xd2\x074T`\xeb\
+\x1c\xd4\x80\x9a\x98\xe4'\x1d4h'\x93S\xd4\x03\x9a\
+\xdc`j\x08\xe9\x84\xea2cJ\x88\xe6\x94*N\xe9\
+1\xc9\xcc\x10\xac\xa3\x0f\xe9s\x16\xef\x89B\x1d\x0b\xd0\
+X`:C\xe3l\x9eM]\x9c\xa2\xcfw\x1b\xf6\x13\
+\x1c\x0b\xeeh\x9a\xc8U\x17\x13'\xe0\x13\x1e\xd8\x9cJ\
+\x0c\x948K\xe9\x9c(\x1c\x0a\x9a\x17\xe9=\xae\x00\xc9\
+\x90A:gu}\xd6\xb94\xe3n\xc4\xcd\x89\x0b4\
+)\xd5\x0b\x18,\x8d\x8b\xe8b\xee\xfb\x90\xd8\x8fOp\
+\xb7L\xc2\xa5\xe0g\x90xzq~\xfd\xffN\xee\xde\
+\xac\x0b\xbe\xc7\x04mt\xa8{pk\xbf\xc7\xeb\xa9\xeb\
+\xb1\xad\xf1\xfa\xee\xe1:\xee\xbbz\xbds\xf1\xa2\xde{\
+\xfa\xc3\xef\x1f\x8f\xee\xf9pt>\x16\xbe\xbd\xbb\xb9\xfa\
+\xdb\xe2\xc5e\xbd\x7f\xbd\xfa\xbd\xbc1\xf4\x02\x81$\xb4\
+\xd4\xed\x1eo\x1c\xd4\x81\xbe\xb8\xb9zwy\xb6\x0e\xfe\
+\xf7\xd5\xf9e\x8f\xd6\x9b]\x8b\x9b\x8b\xf3\xfa\xcf\x0b\xbd\
+\xc7\xceN\xea-\xa5\x9b\x9b\x93\x8f\x9d\xb0\x86\x0e\x97\x9b\
+\xb5$\x90\xad\xe0\xadW\xa5\x95\xb5\x7f;\x9a\x13\x13p\
+b\x99q\x013t\xe5\xa3?5\x94\xc1\xdc\x9cg\x9c\
+\xc0n\x85\x1b\xa6\xe0\xe2\x16\x1dfP\x98x\xbd\xfa\x8f\
+\x15\xd6{\x8b2\x06O\xe7\xb2\x84\x83\x81\x0a\xdb\xa6\xb0\
+\x10\xd0\x08\xa1\xf5\x86\xc3\xc04\xd9;\xcc!\x85Kn\
+\x08K\x01C\x97\x9980K\xf1e\xa3\xa9\x10\x85\x90\
+g\x12`\x98\x9e\xd2\x81\x05,\x8asY\xab\xaf\x08\xe9\
+*64\xea\x08\x12\xe86s\xed\x84d\x00\x89\xb9\xf5\
+22A\x19%h\x1d,\x08ZH(\xd6\xaa\x17\x82\
+\x08G\xc9\xd6\xe88\xa0\x92\xa0Z\xc4\xb25;\x8e\xbd\
+\x14\x08Q\xcc5\x8eFl\xa4s\xac\xde\x93\x1f\x06B\
+\x12\xd8\xe0QU\x9d\xb0Q\xabc\xc3\xa3\xf6Gl\xb4\
+\x93^\x16)8\x86\xe58\xb0\xa1Q\x12\x10\xe6\xf4\x91\
+\x83updkl`$\xb65+\x01\xa1\xc2R\xd9\
+\xef\xc4\x8c:\xea\xa4\x8c\xda\x1c\xc1Q\xef\xeb\xf5G\x1b\
+\xf9q\xab\xed\xff\xbc1\x13r\xbd\x8c)\xb16\xffq\
+\x1fU~\xcb!\x9d\x99@E\xedK\x84t\xf9\xea!\
+]\xcb\xde!}S\x91\x8f\x03 \x93\x80[Z\x1f\x93\
+\x98\x14\x8a\x0a\xaf\x07@\xa6\x00$\xa5\xe8\xb0\x04.\x99\
+\x1b\x01\x90u\xc5\x7f\x1f\x00\xd9\x15,\x90\xca\x8607\
+H\xd3B\xeb\x0d{@aK\xef\xb0\x02Lh\xb9!\
+,\x0c2\xa5\xf4\x01\x90#\x80<}=\x00\x8e\xe0\xe8\
+2c\xfd.\x00\xb21\x84&\xb7\x00\xd8\x09\xb9\xf7\xd3\
+^\xc6\xe8\xd2#8:\xffX\xbd\x0b\x80\xe3\x80\xba\x98\
+4\x8e}\x8c?#G#6\xd29V\xef\xc8\xef\x02\
+\xe0\xa8\xaaN\xd8\xa8\xd5\xb1\xe1Q\xfb#6\xdaI/\
+\x0b\x1dJ\x1am\x04@F\x83@\xd4.\x00\x8e\xe0\xc8\
+\xd6\xd8@\x17\x00Y\x10\x881[\x00\xec\xc4\x8c:\xea\
+\xa4\x8c\xda\x1c\xc1Q\xefc\xfd.\x00\x8ec\xea\x02\xe0\
+~\xa7B\xf2?\xeeT\xe8\xd3!\xbd\x0fe_\xfa\xea\
+c\xff\x0b\xa3'\xaf_8\xfe\xf1\xae_\x0a\x01R!\
+\xe4C$:\xca]\x13\xdd\xdf\x0f\x81\x99\x87$\xd0\xff\
+\xfe\x09\xecO\xb7\x0eL \x96\x7f<\x0b,zH\x02\
+\xe3\x1f\xd0\x02\xed\x90\x04\xd2\xae\x04~K\x22['\xb8\
+\xcbA\x93\xc8?\xe4%'\x97\xc2\xbb\x92\xf8m*\xf6\
+\x93$\xe6\x97\xb7\xc4\x03\xdeo\x9f+B\x98&\xcb&\
+\x13_KS\xdbI\xd4\xafi\x89*\xa0\xa1\xe1\xdc\x8d\
+\x8f\xd0\x80C\x95\xbb\xf1\xb9C&%Z7\xbc$\x10\
+\xb6\x08\xebF\xe9:\xf1\xb8\xc7\xf4\xed \x84 \x16\xcd\
+v\xe3\x8c\xd8\xd1\x92f\x08$j\xc1Z\x7f\x85\xa3:\
+\xc5,@\xdd\x8c\xd1f\x8c@\xa1$\x87\x08\xabR\xbe\
+\xe9\xe1\xf3\xf40'D0Q\xcdC*B\x88\xf2k\
+\xcf\x06\x12\xe9An\xf0\xf4s\x19\xfd\x98v\x9f\xcb \
+\x07-\x86\x88\xa9\xbf\xad\xfb:^\x00\x8b\x84\xcd\xd8\xc0\
+\xa5\xe0r\xa61\x08XRK\x19\xe0\x82%\xb3\x82\x02\
+\x1c\xe9<c\x07\x0b7\xb1\x8a)D\x12\xd7\xea\x09\x84\
+\x11e\xa8^\x08\x02\xadH\xce\xd4\x00\x855l\x04\xcb\
+,\x18B\xcd\xb1\xac\xd5\xcf\x02\x1e\xc8\xc5[}\x0bH\
+s\x0b\x9e\x11:X\xd1R\x8b\x0a\x02\xa9\xa8\x94\x07\xb0\
+\xf6\x89\x04\x982\xfa\xfa\xb2\x14\xf4 'W\x08?t\
+\xc7\xc7\x9a}\xcf\x9b\x9e\xd4\xc9u\xc6\x0a\x99\x051\xda\
+\xf4\x17\xb89\x935\xb0\x109g\x05\x15\xeek?\xd0\
+\xc69\x90\x996\x13\x02qW\xf3\x01$d%\x9d\xc9\
+\x927\x8c\x87\xdaR \x8a\xf1J\xb6\x02;\x91\xe8\xcc\
+\x10\x14\x0b\xb9\x8d \xcd<*\x88\xe4\xa3\xecH@R\
+\xd4\x8131\xd0\xac\xdbpm\xe9\x1c\x85\xablc0\
+\x22\x92{\x8c*\xe6\x02\xc4\x1b\x95C $3\xca\x83\
+\x94\x18\xc1|\xe8O\xdc\xd7\xee;\xee\x08^\xc8\x0a\xcd\
+$@\xd9\xa3P\x15]\xa08\x15\xe3\x99\x08D)\x82\
+\xad6\x01\xe7P\x1f\x9b\xba\xee\xeb38\xa2\xb5\x98\x13\
+`J\x1c^\xc1fx\x85$\x9a\x09\x9a!\x9bn\xb5\
+\xd6\x9f\x8f\xaa\x15\xab\x0e\xbdb\x07\xb1{Uj\x02\x9b\
+&G\x83[\xafHj\xaf\x08\xcc(\xb2\x82\x05\x92I\
+\xdd\x96`\xebe1\xb26U\xbeB\xdc\xee\x91?-\
+\x11I6\x9ey\x82\x9b\x0bQ\x05\x11\x88B\x93fA\
+@I\xa1Z\xe5\xc6\xca\xa4\x83\xc1\xf4\x9e#5P5\
+\xe4Y\x08\x14\xcc\x94\xac\x18\x83\x99\x96|\x00[m\x5c\
+\x9ae_[\x022\xd9(\x1e\x04q\x05\x1d\xd4\x9b\xf8\
+\xf5.\x89w=\xffq\x85\x88\x8cc\x19*\x86ZJ\
+3\xd3\xc2\xaa\x1c\x83\x08N\x16j\xc4\x94\xb0T\xabX\
+B\xac|d}(\x08dF\x85\x9b\xba\x884Vc\
+\xc1\x92\x88>(\x81\x15\x8d\x1e\xabe\xfbm3\x22\xdf\
+2\xc7\xfa\x0f\x91lK\x80\xbb'\x1d8\xd9\xf2WO\
+\xb6\x98\x07\xba\xf5F\x84\x8fr\x14\xb9\x03\xb3c\xf6I\
+\x8a<A\x02\x93\xd7\x93\x14\x05\x82\x12\x16[\xcfR\x14\
+\x04\x85\xc4r#\xd8gBJ\xb2\x8fij\x1d\x1c\xd3\
+\xd4\xd8@\x9f\xa7\xc8\x14JfYOS\xc4\x01\x1c\x16\
+\xde\xa5)B\x10#\xdc\xa8_\x04\x94]J\x8c\xa9\xea\
+\x1eT\x8c1[\x8d\x0dl\x8e\x80\x04,R\xcbz\xba\
+\x22J\x88L\xd3\xf5tE\xcc\x80\x18\x22}\xc6\x22\xb6\
+F-\xd1\x98\xb1V\xa0ht\x19kl\xa0OZD\
+ E\xd4\xc7\xa4\xb5\x0e\x8eIkl\xa0O=$\x0c\
+\xce\xc4\xb4\x9e\xb7H\x0b\xb8\x8a\xfaz\xe2\x22G`{\
+\xdc@ d\x10\x8f\xa9k\xc4\xc6\xcc5V\xdf\x1c\x80\
+\x05$K\xe11y-A,\xca\xb9\x9e\xbc\xc8\x12\x94\
+\xc4\xb2\xcf^d\x05B8c={\x913\xa4\x90\xfa\
+\x98\xbd:;\xee\xd3\x17)-\xbb\xd6g0R\x03\xc9\
+ [\xcf`\xa4\x09\x9eJ4f\xb0\x15(,\xd2\xa5\
+\xb1\x11\xees\xd9\x00\x07Z\x978H\x03XK\x9f\xcb\
+Hui\xf7}:\x22e\xb0\x08\xb1\xf5lFR\xc0\
+3\x84\xeeAmX\xac\xcc\xb6\xaf/\xd6\x14\x98\xba\x9e\
+\xceH\xa4\xb9\x0bF\xd7+\x91G#\xf8q\x0d\xee\x13\
+\xdb\x00\xa3\x17ZOl$\x0aJ\xea:f\xb6e\x0f\
+r\xe5O]\xc7\x028\xc3\xba\xd4\xd6\x06\xc6\x82\x22c\
+j\xebT\xd6e\xb7\xdd\xaf\x1e\xf8\x7f\xde\xd5\xc3\x964\
+\xfd\xed\x9ax\xffIs<d\x9a\x9ez5\x8c\x93&\
+\x9b\x99xwl\xfb[_\x9c\xf2\xc4\x9bc\xc2\x19\x9c\
+\x91\xad\xc8\x84\xf4]\xdf\x1d\x1b\xef\x863\x01\x0aq\xff\
+\xb6\x8c\x10H\xb8G\xf6o\xd6 \xb8k\x1aww\xc7\
+\x0bCVPt\xc7g\x87\x81E\x98\xb9\xcc\x08\x0a\x19\
+\x16\xa5\x03<B\xccl\xbb=\xa6\xad\xbe\x8b!L\xb2\
+\xa6\x0e\xcc\x99V:\xda\xacT\xd4\x12\xa3\xa3- K\
+\x08St\xb4\x8dew\xa5\xcdY\xbc\xd2v\x10\xba\xb0\
+|U\xba\x88\x02\x84\xc5s\x07\xba\x18\x81S2h\x82\
+\xae}\x07\xefn\xb1\xd3\xe0\x9dv\x0c\x1a\xfb?\xc8B\
+\xe0FN\x5c\xaaN\x7f\xbbt\xd9\xc1\xe8\x9a\x8e\xb1\xae\
+\x96_$\xc6\xba:>\x11c9U\x952\xf6\x8a\xb1\
+\xdb\xf3\xf7\xf4{XQ\x8c\x90\x96o{\x8c{\xf3\x02\
+\x16\xe2\xe4^\x7f\x0a\x14\x09cy>\x91\xaawU\xf3\
+xR\xc1`V4\xbd?\xa9\xa0\x04R\x93\xec_\xd9\
+b@\xc50\x19O\x1f\xb6\x96=\xed\xca~:o\x17\
+7\xda\xc5\xa6\x8a\xab\xfcb\x17l\xe2\x1f7;\xf5\x96\
+}q\xb5mo\xb1O-\xc5\xb1e\xfd\x98\xefj\x0f\
+\xa7\xa5\xc5\x16i\xf4\xb44\xe7m\xd2\x0e\xb5\x16\x01[\
+\xe4\x14Kl\x89\x9f\xcfR\xc4~,\xb1%\x7f>K\
+\xa7\xf4%YrU\x9f^\xd5Bs\x1f[j\xdb\xe7\
+\xb3\xe4j8\xc1\xd2\x8e\xd2\xf0\x10,\xed\x9e\x1c&i\
+t\xe2}h|\xf9*q\x0f\x1a\x9dt\x82\xc6Ii\
+\x87\xa7Qh\x9a%\x91=\x5c\x12%p/\x96\xc4>\
+\x9f\xa5\x97\xafl\x81_\x90\xa5\xe9\xf0\xee{\x86w7\
+\xb7}X\xd2\xd8\xc7\x96\xce\xaa5})\x96\xd8\x1c{\
+\x96&:c\xe5\xb1\x81LP8\x06n\xe7\x8e\xa5)\
+iy\x86\xb8\x934\xda.M\x0fgK\xa1\xd3\xb6\x14\
+\xfe\xf9\xb6\xf4r\xcfS\x05\xf7\xc8}l\x89\xea\xf6\xa5\
+lIXbzA0)\xfbx\xdc\xe2e\xbe\xfc|\
+\x96\x84\x95~kI\x90K\xc1)\x96j\x99=r\xdc\
+\xe9\xb0\xed\xc8R/m\x9f\x1cG\xed\xcf\x97:\xa1\x12\
+d\x9a\xb4%\xe4=r\x1c\xe2.\x1e\xf7\xd9M \x90\
+\xb9\xb8\xb8~\xf7\x89e\xaf\xb6\x0e\xa0\xec`\xc4(\xb4\
+\xb5Igv\xa5\xca\xd3\x1e\x9d\xf5\x0c\x0e\x0e\xd9\xc5\x89\
+\x90'\x92\xfb\xeeb\xc5\x87?1e'\xdbW;\xdd\
+\xbeN(\x9b\xca\xde\xeb\x8eN\xafg:\xbd.\xea\xf4\
+\xea\xaa;\xae\xd3:q\x0d;\xb5\xdc\xd8\xf4$\xde\x13\
+Q\xc9\x83>o\xf6\xa0\x9f`\xea\x97\x13\x12\x82 \x0e\
+\xf5\xa9\x99\xab\x8a\x96\x04\xf2\xa0\xb0\x9d\xd6\xac!W\xb3\
+\x90\x875k\x8a\x13\xc5L\x1c0\x8bV|N\x90a\
+%\xb0<\xffU\xd9\xcc8\xe4ZX)\xa0\xc4e\x86\
+\xe0\x8ai61\x0d\xd4\xa9\x88\x09\xb0h)\xda\xa9\xa8\
+\xa2\x84T\xd1NCd@YH\xa4\xd3\x10\x07 F\
+\x9an>\xb8yPF\xeb\xf6\xd4\x03\xa8^\xf0\x90\x0b\
+\xd2\xb8y\x88\xd8\xca\x8e\x98\x95\x0b\xc6\x8c$\xc1]\xb2\
+\xcc\xe6\xa2@\x89Q>E\xf5\xf5\xc9Y7\xe1\xa5\x0c\
+\x81(\xc6\xfd\xe4\x18\x0aXb\xf7`\xf4XtD\xbb\
+\xa2[f\xe7\xbe\xac-\xa3>i\xcb\xc5\xf7\x88\x0cR\
+ \x94\xca\xe6;\x95$`\x9a\xd2\xdd0\xd9V\xb6\xa2\
+s\x83\xc2b\x9c\xb1\x9b\x93\xa8\x83\xcf\x18\xc8\x16s\xfe\
+\xa2\xce/\x5c\xec)\xc2\x02e\x0f\xc2\xe6\x8eP\xd4\xd8\
+\xa8g\x0c\x0dR\xd0zG\x9d[\x01%c\xb5\x8e2\
+5p!\xc6\xf85c_\xa0\xed8\xfc\xfdoy}\
+\xa0\xc9\xdbl\x13\xa9\xa7\xbb}\xf7\xeb\xd2u\xa8T1\
+}c\xb5\xd1Fd\xf0\xf8\xa6n\x10`j\xc1\x9c\xb8\
+\x01\xdc\xdd+\xfeUY+\x87eM\x89\x0b\x0a\xb7\x14\
+KEL\xf3\x8b\xe5X\x81\xe2\x84\xdaS\x9a\xc0bE\
+\x7f]\xc7%\xfa\xc6\xe9\xc19\x95\xdf\x10\xa7V\x00\xc9\
+\xbd\xc4\xe6\x0a\xc1\x8e\x8aB\x1d\xa7.\xa0\xa6\x86}R\
+&\x02\xb1B\xfa\x84\xf3O\x9d}m.k7\xcf\xec\
+\x16\xb5\xdb\x89\xae\x03\x9c\xd8\xa8\xb0N\xac\x048.\x19\
+8\xb5\xb6`C\x8bB\xa3e\xcf\xfb\xc0[\x17I\xdc\
+\xb6F\xe2\x9c\x0c\xac_#\xf1\x80\xa4\x89jy\xe2<\
+\x5c\x85ib\xd5\xc9~\x89\xca~\x1d\xcb\x89\xb5.O\
+\xbb\xaaO\x98\xd8\x84\xbdO\xfa\x11WB\x0fI\x1a;\
+>ii\x94\x13+Nw\xabSO\xac\xdf\xdd\xad\xf5\
+=ep\xd3~X\x12I\xb1\xac\xfc\x10A\x0b\x06\x1d\
+\x8a\x9c\xe9+;\x15\xd2\xce\xa2\x8aA\xa0\x11\xd2\xc6z\
+\xb1\x08\x22\xa4\xfa\x895eO\xb7\xd6<\xedj\xfe\x92\
+\xa7t\x18\x0fl1\xc8O[\x0cn.#\xecAI\
+}\xde\xcb\x84\x10\xd1\xf2hubS\xce\xde`\xd2\xc1\
+4(\x7f\x19\x09\x04\xc9\xee\x143\x01\xd1t\xe1\xfc\x9a\
+^\xb4q\xfa\xee\x04\x94\x8e\xee='\x0clE\xc9\xbe\
+\x16)\xf3\x82P\xac\x98\xcd\xe6\xd1~\x09\x17\xf9\xaa\xac\
+ho)\x01\xa4\x18E:V\x86\xe4\x84a\x1b\xac\x98\
+B\xbaYt\xac\xb0\xe4r@\xbf\x88\x96\x12\x87s\x98\
+\xe9\x8bn\x11\xf6\x89\xa5\xed\xbbe\xf0'\x96\xcc\xef\x96\
+\xd7\xdf+\x0f}\xcd\x91\xf3\xbe\xc9\xa5\xffLB\xff9\
+\x85\xe9\x87\xf4\xd8Y\xf7y\x06\x8f\x9d}\xfa\x0b\x19\x87\
+~\xcey\xfb\xdc\x16m{l\xa7\xbf\xcf\xb2\xf7WV\
+\xfa\x9bl>\x84\x99)a`\xfb\x7fg\xa5\x17\xc78\
+-\x8ev\xfc\xca\xca\xb40>\xd8\xedQ'\xdc_%\
+\xfd\xc7\x81\xa6U\xc2{s\xd4\x7f\x1ch'a\xba\xef\
+\xc7h\xd8\xd1\xa7\xbf\x12\xd5\x7fUj\xfa+T\xfdW\
+\xab\xf6sd\xcc\x1d\xbe)\xf5U\x1c\x19\xf7\xb7\x9a\xfe\
+Cd\xd3\x8a\xc4\x9d\xacf\xff\x0f\x91\xf5\xc2\xf4`\x9e\
+eE\x7f!G\xaf\xea\xb6\x13GV|\x0f\x8e\xa6\x85\
+\xe1vay8\x8e2\x7f!G.\x8b\xb2#G\xf8\
+59\xe2\x03r\xc4\xbf4B\x0f\xdb.\x1c\xa5\xee\xc1\
+\xd1\xb40\xdc.\xcc\x0f\xf8X\x82\xe6\xdf\xd1C\x09\x8d\
+\x90\xf6A\xda\xfak\xf5\xbe\xf9\xf8R\xb9\x04h\x12\xdb\
+\x8c\x18\xc8M\xd5\xeb{\xa5\x84\x06\xa4\x89>s\x02\xd2\
+\x88\xd4\xa3?U\xd4\x81\x84\xb4\x81i\x82\xc6\x03\x143\
+g\xc8\x92\xa8~\xbf\xdfJ\xaf~\x1a\x10R1]\xab\
+\xed@\xeaEs]\x8cC\x1a35\xe1\xe2\x10\xc3\xda\
+\x16D\x06\xc9&T[\x13\x067t\xa9`\x82\x9a\xc5\
+\x11;\xc4\xb0\x97\x9c\xca\xf7\xbbR\x1bX\xfe4(\xc3\
+V+/\x01\x06\xc2L\x97#\x11\x08F\xe3Y\x01U\
+\x0f\xb4\xdc\xc2B{\x89\xb5{#\x9f\x87\xe9\xb0\xed\xef\
+\xb4>\xfe\xde\xc8\xe6;\xad\xcb\xdd\x9bw\x17\x8b\x17\x8b\
+\x9f\x16\x97Wgg\xebo\xb9V-}\xd3\xcd/\xd0\
+\x8d\x98p\xaf\x9b\xf1\xa1%6\xf5$\xd7O.\xc6\xcc\
+\xc5\xf3 \xea\x0a\x86F\x0c\xa0\xb3\xd5\x91\x05\x812\x17\
+\xe2\x86\x11G\xe4Q H:\x96\xd2 \x95\xc2\xe9G\
+^Z-\xae\xdc\x04A6j\x0b8[\xddO\x9c\x91\
+\x83z\xc6\xc3^m\xb6\xfd+\x80mH\xb5A\x07t\
+\xc2\xa8\x0d\x22\xa4\xba{\xdf\x8b\x1f\xbb\xdd\x07\xde\xee\xb6\
+=T\x91B\x85\xa2\x0c\xf3\x8a\xe3^Q #,:\
+c\x10\x13J\xe3\xe7\x9b\xecs\xf0n\x9ea*\xf8y\
+T\x7f\xb7<\xa1\x5c66~E\xf5\xf9\xaf\xac\x02P\
+TEn&\x19E$*\xed\x01\x5cH]f\x05\x8a\
+\x17+Y\xf6WEh\xbaR\x0e\xaa\xa8\xbb\x05\x91J\
+\xce\xd2!-B\xb5\x8auH\x14\x8bG\xaa\x90B\x9f\
+r\x84@%*\x19\xdf=\xa1\x1d>\x90v~\xd7\xe7\
+\xa6Zo\xd1\xf2S\x9dA9]n\x9f\x8ax\x06E\
+\x08\xb9\xb4\x18\x91\xc4Tt\x08y\x04\x81\xec\xa5E3\
+,\x5c\xdc\x86 &@li3\x170rb\xaa\xd8\
+*\xdc\xcd\x5c!\x5c9c\xa8\x9d\x18Yk\x1b\xa4\xa9\
+J\xb6H\x16`,\xadM\x22\x84\xe2:hV\x04\x94\
+L9*\xaaCH,G\x5c@0,u\xc0\x04Q\
+m\xc4\xd6j\xff\xb8\x8e\x06\x94BDC\x84\x1bQ\x03\
+\xf2\x12\xc6-d\x9a\x9aZ4_N\x0b\x13\xde>\xf6\
+m\xe8\xe3\xf0\xa7\xa1\xbd\xd6\x9f\x88ur\x90X\xc7\x91\
+`\x86\xaa3&P\xd7\xa1\xaf\xdc8C\xd3\x98\x85@\
+\xa2\x17\x1b\xc6O\x0cA\xc5+j\xa0\xe4\x864`E\
+\xc9f\xe1\x90\x9c$1TF\x14\x5c\xaej\xe2\x84N\
+\xad\xc9h\xd9\xa1\x00F\xba\xb7\xc6\x92*e\x0c\xee\x98\
+u\xc7\x86\x9d4\xca2\xec\x8dE\x7f\x1c\xf6Y\xa0p\
+a\xe1V\xb5\xed#\x84\xa4X+M\x90\x1a$\xcd\xd9\
+\xd9\x94S\xb6\x0ej\x0b8\xfa\xee\xd4\x87\xe6\x102\x95\
+J\xe1\x990\x83\xa2\xb1\xcd\xe6\x02\xe4\x81\x99\xf6\xfc\xb1\
+\x1a\xe9\xb1\x1a\xd7\x17\xa6\xf8\x84\xd7\xfa\xf3\x8de2\x00\
+#\x02K|\xd1\x0f\x06\xf4\x16\xb4\x19\x06\xe8\xd3AZ\
+\x18\xc4\x5c\xa2R\xaf\xcd[\x15\xb3\xb9\x1e\x82%1W\
+\xd4\x00M\x1cc\xddu\x1c\x98\xac\x88m8Y\x14.\
+\x9d\xe7\xa9\x80\x16N\xe5\x0eu\x87b\xac!U\x90\x09\
+\x18\x12F6\x94\x22\xbc\x96\x0d\x03'v\xd1\x16a\xb8\
+8\x16;*\x02\xe2\xca63\x07\x16\xb1\xe0\x95;R\
+\xba\x0e\xbd\x8c\xe2\xcb\x93\x18Qp-h\xdaPt\x1d\
+\xe2\x08\x93\xba\x0eCD\xe3,[\x87\xfd\xe3Vt\xd3\
+\xbf\x99\x85w=\xf5\xb4r\x10\xff\xee\xbb\xe5.\xcb\xf0\
+H\xa0V\xdc\x07\xb4\xa8\x06Y\xd3[\x90\x09S\x1b;\
+gA\x1b0\x0a\xc5\x94\x86%\x17,\xbc\x0c\x84\x85(\
+\xc4\x9a6\xb1`\x9a6\xcc\xc3E\x07L\xc2\x82\xaca\
+&m\xcc\x0d\x0b\x0eOY\xd66N]\xa1\xe2N\xb1\
+,iE\x06\xc8027*[\x89\xb0eeu%\
+\xd2\x86\x16!v\x1e0\xcc\xa1\x93\x01D\x9aKL\x82\
+\xc2K\xc3\x04M4V\x11\xdcK\x90\x0f(\x99k.\
+KJ\xf0\x00q`\xe4Fe\x09\xd5U\xdd\x8aR\xc3\
+\x8c\x0b\x97\xd2[pH\xf8\x06T4\xa8\xe4C\xe6\xd0\
+\xc2\x03j\x89.\x1b%=%t\xca%\xa8\x00\xa2\xb3\
+\xd1\xa6\xa3\xb08!\xafP)\x1e\xd1\xa1\x82\xa0\xce\x85\
+\xac5\x9b\x94\xc9+?MUod\x18hJ\xb27\
+sO\x0b'i\x98%K\xe6\xba\xa78T\xa8X\xeb\
+Ua`%$\x9e\x99Aj\xaaSm3\x12\xc4\xd0\
+\x9cf\x8ePP\x92\xf4\xc8\x11(\xd2\x88[*7J\
+B?Rjn\x8c\xe2\x83\xeb&\xb35\xcbp\x84\xd0\
+b*\xad\xa4\x17\xb7\xe5\xe9X\x11\x1b0\x02\xe1\x94\xb0\
+&[$8K\xf3hcV\xd4e\x8f\xc4\x8b\x8a\x0e\
+\xa8\xa9\x96\xaa\xf2\x86zI\x13i\xa8\xaa\x9a\x97\x16\x10\
+Z\xd78\x1b&\xaa\xc5}\x15$\x04\xa9\x8b\x12\x0d\x15\
+&\xcb\x01E\xd2hcw\x06\x0cE\xb5\x99(P:\
+\xd2\x93\x11%\x85)\xe8\xfe\xa4\x81\xa9\xb1\x1c\x19\x8c1\
+x\x1fFX\xc5\x18R\x22\x9c\xbbX\xdaP\xc7\x94\x18\
+\xd0,\x91<`\x91\x962`\xa1\x1a\x0d*HE\xbd\
+w\xf2e\xba.\xbcD\x991\x1bf\x82\x1a:`F\
+X|k\x88\xf8q\x1b\xba\xe5|\xc5w\x8fg\xfe-\
+\x9e}\x8bg\xdf\xe2\xd9\xb7x\xf6\x1b\x8eg\xc6\xbas\
+<\xdb\xe7\xfa\xeb\xfb\xe3\xdb\x9f^\xff\xf1w\xff\x1f\x87\
+I\xee\xb2\x11\x94\x00\x00\
+\x00\x00\x19\x91\
+\x1f\
+\x8b\x08\x00\x00\x00\x00\x00\x00\x00\xed}mo\x1c9\x92\
+\xe6\xf7\xf9\x15:\xcf\x971\xae*\x14\xef\x11\xf4t\xcf\
+\x027\x83],\xd0\x8b;\xdc\xce\xe0>.d\xa9d\
+kG\x96\x04In\xdb\xf3\xeb\x97\x99%\x89E)[\
+Y\x96J\xee\xde\xeb.\xb7\xdb\x95O2\x18\x8c\x87\xc1\
+\x88L2\x8b\xf9\xdd?}\xfep\xba\xf7\xe3\xea\xf2\xea\
+\xe4\xfc\xec\xfbW\x04\xf8jouvx~tr\xf6\
+\xee\xfbW\x7f\xfb\xeb?/\xf3\xd5\xde\xd5\xf5\xc1\xd9\xd1\
+\xc1\xe9\xf9\xd9\xea\xfbWg\xe7\xaf\xfe\xe9O\xbf\xfb\xee\
+\x7f,\x97{\x7f\xbe\x5c\x1d\x5c\xaf\x8e\xf6>\x9d\x5c\xbf\
+\xdf\xfb\xd7\xb3\xbf_\x1d\x1e\x5c\xac\xf6\xfe\xf0\xfe\xfa\xfa\
+\xe2\xcd\xfe\xfe\xa7O\x9f\xe0\xe4\x06\x84\xf3\xcbw\xfb\xaf\
+\xf7\x96\xcb*y\xf5\xe3\xbb\xdf\xed\xed\xedU\xb5gW\
+o\x8e\x0e\xbf\x7fuS\xfe\xe2\xe3\xe5\xe9X\xee\xe8p\
+\x7fu\xba\xfa\xb0:\xbb\xbe\xda'\xa0\xfdW\xad\xf8a\
++~8(?\xf9qux\xfe\xe1\xc3\xf9\xd9\xd5(\
+yv\xf5\xfb\x8d\xc2\x97G\xc7\xb5tk\xcc'\x19\x0b\
+Q)e\x1fy\x9fyYK,\xaf\xbe\x9c]\x1f|\
+^\xf6\xa2\xb5\x8dS\xa2\x8c\x88\xfb\xf5\x5c+\xb9]\xa9\
+7\x9fO+\x13?\xd9\x98\xf1\xec\xa6\xf6\xca\xfeE\xfd\
+{'p\x0b\xc0\xd5\xf9\xc7\xcb\xc3\xd5q\x95\x5c\xc1\xd9\
+\xeaz\xff/\x7f\xfd\xcb\xdd\xc9%\xc2\xd1\xf5\xd1F5\
+\xb7\xe4wz\xbb\x1e9;\xf8\xb0\xba\xba88\x5c]\
+\xed\xdf\xe2\x83|\xef\x0e\x15\xa8=|t\xfd\xbe\x1er\
+\x8e\x87\xefW'\xef\xde_\xb7\xe3\x93\xa3\xef_U\x83\
+\xd9\xd1\xc7\xe3\xdb&\xbd\xb9\xab\x08Ax<u\xabg\
+\xf3\x94\xde\x93::?\xac-\xab\xed~w\xbe\xbc\xb8\
+\x5c\xfdxr\xfe\xf1j\xf9\xe3\xc9\xea\x13T%\xff\xe8\
+\xab9\xffx}\xf1\xf1\xfa?V\x9f\xafWg\xeb\xfa\
+\xaaa\xcd\xca\xf5\xe9Q\xee\x0e\xec+X}\xbe8\xbf\
+\xbc^\x1e\x9f\x9c\xae\xd6J\xf7\xdf\x9f\x7fX\xed_\x9c\
+\x9cU+/\xcf\xeb\x97\xc3\xab\xfd\xf3\xcf_\xde\xad\xce\
+\xf6\xab\xc4\xe9\xc1\xdb\xd3\xd5\xfe\xc1\xe1u\xd5u\xb5\xff\
+\xa0\x81\x17g\xef&\xab\xff|tQ\xbb\xd3\x03l\xf2\
+\xf4\x97v\xfaO\xf5\xfcw\x1fV\xd7\x07G\x07\xd7\x07\
+\xf5\xfb\x0d\xbd\xb7\x88\xc6X\xa2\x96\xa9\xce\xfb\xe6\xff\xfe\
+\xe5\x9f\x87\xa3\xf1\xf8\xf0\xf0\xcd\xff;\xbf\xfc\xfbx8\
+~\x86\x02\x07o\xcf?\xd6\x8e\x1aen\xca\x1d\x1d\xbe\
+\xa9\x0e\xf4\xe1\xe0\xfaO'\x1f\x0e\xde\xad\x06O\xfd\x9f\
+\xd5a\xbe\xdbo'\xba\xc2\xd7_.V\x15\xe8\xaa\xbd\
+\x5c\xad=qj\xf0\xd6\xff>\x9c\x0cB\xfb\xff~}\
+rz\xfa\xaf\x83\x92W{\xfbw\xed\xdc\xbfih\x05\
+\xc6\xc3fG=\xb85s<\xbas\x88\xa1c\x8e\x06\
+~+\xba\xc9\xde\xa7\x93\xb3\xa3\xf3O\xcb[w\xf4\xc8\
+W\xd3%n\xfd\x972\xee\x97\xb8\xa8\xcd\xbbz\x7fP\
+K}\xff\x8a\xa7N\x9e\xd7\x01R\xed\x19\x1c\x15o\xce\
+\xbf\xfbxr\xb4\xba>?]]\x1e\x9c\x0d$\xd0\xc6\
+\xa9\xcb\xaaj\xf2\xcc\xf9\xdb\xff\x5c\x1d^O\x9f{{\
+~y\xb4\xba\xbc\xd3D\xf7N\x1c\x9e\x9f\x9e_~\xff\
+\xea\xf7>~nN\x0dm\xbb=q<~^5w\
+y{p\xb5\xba9\xbcz\x7f\xfe\xa9\xb6\xaa\x82\xd7\x97\
+\x1fW\xf7-\xfc\xc7\xf9\xf9\x87Aa\xa2z\x86\xdd?\
+}\xf8\xf9\xfbWKc\x08\xe7\xd0\xf2\xe0lmk\x09\
+ \x8e\x92\xf1\x13\xd4\xd7\x0a\xf0'NUi5\x7fP\
+\xe9\xc7\xcb\xcb\x1a\xfb\x97\xa7\x07_V\x97-\xae\xdc\xb8\
+\xcb]\xb1\xc1\xa4[\xb7\xac\xdeV\xf9\xacc\xb4bC\
+uw4\x0c\x00+\xf3\x1d\xf8\xe3\xc9\xd5I\x1d\xc0\x8d\
+\x8b\xf1SG~\x05\x8f\xee\xa1Cd\xacY\xb0\x1a\xc0\
+0\xf0~\xf1\xf9\xfe\xa9/\x13\xa7V\x1f.n\xce\xd6\
+\x93\xd5\xef\xd7~\xfd\xd0\x95G\xfchu|\xd5:m\
+8b\xc7|`\xebE\x8d\x95\x17\xab\xc3!\xdd\xdd\xa8\
+i\xc1rm{_T\x1a\x0b-\xde^\xfc\xc7\xd0\x15\
+{o\xf6\x5c\xeb\xffh\xb2\xc4\x97u\x09B\x1c\xfe\xc1\
+\xc92\xff\x18\xe3\xfeT=}\x13\x96\xe7\x97'\xefN\
+j@\x1e\xcb\xe9\x9a(\x8f^\xa6Z\xbda\x9c\x96\xbb\
+@\xf1]\xcd\x89\xab\x83\xcb\x7f\xb9<8:\xa9\xde\xb0\
+)\xd0\x9f\x11\xadRw\xc1\xe5\xea\xfa\xfcb\xf8\xdeJ\
+\x0f\x88\xa85\x9d\x95\xbb\xeb/\xa7\xab\xf5\x99\xe58\x82\
+\xde\xfc\x1e\xc7\xcf\x1fG\xe8f\x18\xbe\xd9\x149?>\
+\xbeZ\xd5\x10\x83\xb5\x81\xf3\xca\xe4\xeb\x95\xe1\x842j\
+l\xec\xf7F\x7f-G\x5cl\x96#.\xf1x\xb3]\
+V\xe5\xf8x7\x1cq)\x8f+[G\xb4o\xca\x91\
+\xe3<G\xce\xf3\xcd\xde\x19G\xae\xbf8\x8e\x90\xe79\
+\xc2\x99f\x1f\x1e\xadV;\xe3\x08\xfdqeG\xbc\xca\
+\xd5\xd1\x0e8\xaa\x17\x88\xd7\xab\xcb[\xc1!-\x22\x10\
+2\x06\xd2m\xd6l\xd7\xc9\xc0\xa8\xa4\xd8\xe2\xc0\x97u\
+y\xd6b\x8ew\xc6\xb6\x0bi`-\x85\xb8\x0b\x8ck\
+\x8d\x22\x19\x8d\xf3\xe3\xd5\xbf\x1c|\xbc\xba:98\xfb\
+_\xa7\x1f\xd7\xad\xe9\x83o5\xfbtuX\xab<8\
+\xfdt\xf0\xe5\xaa#\xe7\xe8/\xf5R\xf5\xe0\xfa\xf6\xaa\
+[\xdd\xcc\x0b\xbd\xeai\xed5\x88d\xd9`f\xdd\xa4\
+\xaf\xf4\x1aW\xd49\xafq\x9d\xebHLZ\xc9j'\
+^\xe3\x8a\xf9\xb82\xc98Z\xe9\x8c\xb2]\x8e,\xaf\
+\x9fY\x8e\xdcg\x9a]\x8e\x0f\xe9\x98w3\xb2(g\
+\xb2\x98e\xac\xde\xda\x16\xca\xc0\xe6\xd5\xb9\x07\xce\xf4\xff\
+!\x1fXN\xa8{\xc6@\xee\x07\x1a\xbd\xd0@37\
+\xb6\xe4||\xa0\xd1\xd7\x0e\xb4\xcf\xf4\xfd\xab\x10\x08e\
+\x97l\x81\xa6\xa2d \xe2\xa6-\x0e\x7f\xe6Z6\xa1\
+H\x11)\xadlE\xc9!\x0c\xc3\x1a\xfa\xd09M\xa5\
+u\xce8Y\xf1\xe6\xfd\xe5\xea\xb8\xdew<H\xa1\xad\
+\xdc\xbb\x1b\xf0og'\xd7u\x9a\xe4\xe3\xd5\xea\xf2\xdf\
+\x87\xa9\x86\xff}\xf6\xb7\xab\xcdk\xec:\x8ds\xf4o\
+\xab\xeb\xf7\xe7Um\xadt\xe0\xb4\xf20o\xb9BX\
+o\xb5\x02\x87e\xee\xd0j\xde\xce\xeab\xdf\xcaj\x8a\
+\x02\x14\xcc\xda[\xce\x02a\xe9\xbd\xe5\x14\x02%1\xa8\
+\xb3\xdc\x0dT\x93\x88\x1f\xb7\xdcwny_\xea\xaf\xf5\
+\x1e\xf8j\x98m\xa8\xf7\x5c\xc3\xd7\xd3:\x91\xf8\x87\x12\
+\x0b|\xbd\x15\x0d\xc5A=\xd5;\x1a\x5c\x80$\x8d\xac\
+\xa3\xc1\x18\x98R={\x1a\x1c\x98U-\x1e\xa1\x81\x8b\
+\xc9\xae\xdc~\x9e\x86:\xefry\xf2\xf9\x0f\x04\xc8^\
+\x1c}\x81\xf5O;Z\x8a\x03\xa3F\x94\xc5\x92 \xc5\
+<\xcc\xb7\x22+c\xcdU\x1f#\x96\x08\xe2\xa4\xc9\xe6\
+\xbd\xd7\x90CPj\xf4\xe3\x05\x1d\x94\xc3\xfcq\xba\xfc\
+\xff\x03\xba4\xa0xjp?\xc4|\xed[\xd1\x91\xa5\
+\x05\x98\xfa\xb2\x15M\x1b\xb9\xb2\xf28Ye;\xb2\x90\
+\xbf\x09Y\x86\xf5#\x03Y^DYh\x83\xac\xa1\xc2\
+\x83\xd3\xfbd\x0dSC\xb4a\xfa0\x19\x14\xcd\x03\xea\
+\xd4\x8d\xb5\xa3\xe3\xa1p&dRHC\xab\x081\x81\
+*\x93tl\xf5*\xb9\xf8V#\xd1\xebggl-\
+\x1f\xd0\x85n\xee\x0bF\x07\x09\xa7\xa8d1\xa8{\xf1\
+\xdc\x8a\xac%9\xb8\xa7fv\x9c\xa5C\x0ezl\x93\
+:\xc7F\xd2\xb4\xe8q'\xfa(w\xb9\x95\xa7\xa9\x96\
+\xddq\x87\xc0\x96\xeeXIB0&\xd6\xd0\xe1kr\
+\xa8\xa8.\x10\x94\xd0\x91hA\x82\xc0R\xd4\x16\x86\x80\
+fVl\xcb\x1c\xa0`\x0f\xd2`AO\xe9\x03\x1a*\
+\xb0u\x03\xd4\x80\x065\xc9\x8f\x0e\xd0\xa0\xad\x5cNQ\
+w\xe8r\xa3\xab!\xa4\x13\xaa\xcb\x82\x91!\x86A\xa9\
+\xe2\x94\x1e\xb3\xcc\x8c\xc1:\xfa\x90\xbed\xf1\x9e(\xd4\
+V\x80Z\x81\xf9\x0c\x8d\x8be:\xb0p\x8a\xbe\xde\xce\
+\xecG8\x16\xdc\xd25\x91k_\xcc\x5c\x80\xcf\x8d\xc0\
+:\xa8\xc4@\x89\xb3\x94n\x10\x85CA\xf3\x22\xfd\x88\
++@2f\x90n\xb0\xba\xbe\xea\x864\xe3v\xc4-\
+\x89\x0b\x0cZ\xea(`\xb04.\xa2\xab\xa5?\x85\xc4\
+\xde>\xc1\xed2\x09\x97\x82_A\xe2\xe1\xe9\xc9\xc5\xff\
+9\xb8~\xbf\xa9\xf8\x16\x13\xb46\xa0n\xc1\xc9v\xb7\
+\xfb\xa9\x8bVW\xbb\xbf\xbb\xbb\x8f\xfb\xe3q])z\
+S\xd7\x90\xfe\xf0\xfb\x87\xd6\xbd\x1e\xcf.[\xe1\xab\xeb\
+\xcb\xf3\xbf\xaf\xde\x9c\xd5\xf5\xe8\x9b\xef\xeb\x05\x9e7\x08\
+$\xa1\xa5~n\xf1\x81\x83j\xe8\x9b\xcb\xf3\x8fgG\
+\x9b\xe0\x7f\x9e\x9f\x9c\xf5h]\xb4Z]\x9e\x9e\xd4\x7f\
+\xde\xe8-vtP\x97\x86./\x0f\xbet\xca\x06t\
+\xbc\xdd\xac%\x81\xec\x06\x9e\xbc+\xad\xac\xfd\xdb\xde\x92\
+\x98\x80\x13\xcb\x82\x0b\x98\xa1+\xef\xfdy@\x19\xcc\xcd\
+y\xc1\x09\xecVx\xc0\x14\x5c\xdc\xa2\xc3\x0c\x0a\x13o\
+\x8a\xffPa\xbd\xf5(c\xf0t.k8\x18\xa8\xb0\
+\xddW\x16\x02\x1a!\xb4Yq\x18\x98&{\x879\xa4\
+p\xc9{\xcaR\xc0\xd0e!\x0e\xccR|]i*\
+D!\xe4\x85\x04\x18\xa6\xa7t`\x01\x8b\xe2\x5c6\xe4\
+\x15!]\xc5\xc6J\x1dA\x02\xdd\x16\xae\x9d\x92\x0c \
+1\xb7^G&(\xa3\x04m\x82\x05A\x0b\x09\xc5\x86\
+x!\x88p\x94\x1c*m\x06\x95*\xafE,\x87j\
+\x9b\xed\xa5@\x88bnp\xd4\xb0Fg\x13\xef\xc9\x0f\
+\x03!\x09\x1c\xe0\xd6U\x9d\xb2\xd6\xab\xad\xe2\xd6\xfb\x0d\
+k~\xd2\xeb\xa2*\x8da\xd9\x0c\x1b+%\x01aN\
+o\x1cl\x82\x8d\xadVA#v\xa8V\x02B\x85\xa5\
+\xb2\xdf\xa9i}\xd4ii\xbd\xd9\xc0\xd6\xef\x9b\xf2\xcd\
+G~\x98\xf4\xfd\x7f\xdc\x9b\x09\xb9X\xc7\x94\xd8\x98\xff\
+\xb8\x8d*\xbf\xe4\x90\xceL\xa0\xa2\xf6\x12!]\xbey\
+H\xd7\xf2\x8c\x90\xdew\xe4\xc3\x00\xc8$\xe0\x96\xd6\xc7\
+$&\x85\xa2\xc2\x9b\x01\x90)\x00I):,\x81K\
+\xe6\xbd\x00\xc8z\xc3\x7f\x1f\x00\xd9\x15,\x90\xca=e\
+n\x90\xa6\x856+\xf6\x80\xc2\x96\xdea\x05\x98\xd0\xf2\
+\x9e\xb2\xa8\xe2)\xa5\x0f\x80\x1c\x01\xe4\xe9\x9b\x01\xb0\x81\
+m\xc84\xf9.\x00\xb21\x84&\xaf\x03`+\xd4\xc6\
+i\xa7\xa3\x0d\xe9\x06\xb6\xc1\xdf\xc4\xbb\x00\xd8\x0c\xeab\
+R\xb3\xbd\xc5\x9f\xc6Q\xc3\x1a\x9dM\xbc#\xbf\x0b\x80\
+\xad\xab:e\xadW[\xc5\xad\xf7\x1b\xd6\xfc\xa4\xd7\x85\
+\x0e%\x8d\xfa\x00Xa\x83@\xd4.\x006\xb0\xb1\xd5\
+*\xe8\x02 \x0b\x021\xe6\x10\x00;5\xad\x8f:-\
+\xad7\x1b\xd8\xfa\xbd\xc9w\x01\xb0\xd9\xd4\x05\xc0\xa7]\
+\x0a\xc9\x7f\xbbK\xa1\x9f\x0e\xe9}({\xb1\xbb\x8f]\
+\xdd\x18M\xdf\xbfp\xfc\xfa\xee_\x0a\x01R!\xe4]\
+$:\xca]'\xba_>\x81\x99\xbb$\xd0\x7f\x1d\x04\
+\xb6\xcb\xad\x1d\x13\x88\xe5\xd7\xe7\x81EwI`\xfc\x0a\
+=\xd0vI mK\xe0oIdr\x82\xbb\xec4\
+\x89\xfc*o9\xb9\x14\xde\x96\xc4\xdf\xa6b\x7f\x92\xc4\
+|yO\xdc\xe1z\xfbR\x11\xc24Y\xa6\x99x\xf9\
+\x9e\x9a&Q\xbf\xa5'\xaa\x80\x86\x86sg\x1f\xa1\x01\
+\x87*w\xf6\xb9C&%Zg^\x12\x08[\x84u\
+V\xba\xce<\xee1\xbf\x1c\x84\x10\xc4\xa29,\x9c\x11\
+;Z\xd2\x02\x81D-X\xeb\xb7pT\xa7X\x04\xa8\
+\x9b1\xda\x82\x11(\x94d\x17aU\xcao\xfd\xf0u\
+\xfd\xb0$D0Q\xcd]v\x84\x10\xe5\xb7\x9e\x0d$\
+\xd2\x9d,\xf0\xf4s\x19\xbdM\xdb\xcfe\x90\x83\x16C\
+\xc4\xd4_\xd6\xba\x8e\x17\xc0\x22a\x0b6p)\xb8\x9e\
+i\x0c\x02\x96\xd4RF\xb8`\xc9\xac\xa0\x00G:/\
+\xd8\xc1\xc2M\xacb\x0a\x91\xc4U<\x810\xa2\x8c\xe2\
+\x85 \xd0\x8a\xe4B\x0dPX\xc3\x1aX\x16\xc1\x10j\
+\x8eeC>\x0bx \x17\x1f\xe4- \xcd-xA\
+\xe8`EK-*\x08\xa4\xa2R\xee\xc0\xda&\x12`\
+\xca\xe8\xe5e\xad\xe8NO\xde |\xd7\x1co\x92}\
+\xcb\xc9A\xd5\xc9u\xc1\x0a\x99\x051\x86\xe9/ps\
+&\x1b\xc0B\xe4\x9c\x15T\xb8\x95\xbe\xa3\x8ds$3\
+m!\x04\xe2\xae\xe6#H\xc8J\xba\x905o\x18w\
+\xd2R \x8a\xf1\x8dn\x05v\x22\xd1\x85!(\x16r\
+k -<*\x88\xe4Mw$ )\xea\xc8\x99\x18\
+h\xd6\xcfxo\xe9\x1c\x85\xabnc0\x22\x92[\x8c\
+*\xe6\x02\xc4\xf7\x84C $3\xca\x9d\x96h`\xde\
+\xb5'n\xa5\xfb\x86;\x82\x17\xb2B\x0b\xa9\xd2\xecQ\
+\xa8\xaa.P\x9c\x8a\xf1B\x04\xa2\x14\xc1A\x9a\x80s\
+\x94\xaf\x22\x81\xb7\xf2\x0c\x8ehC\xcc\x090%\x0e\xaf\
+\xa0\x81\x97B\x12\x83\x0b\x9a!\x9bNz\xeb?\xf6\xaa\
+\x17\xab\x8e\xadb\x07\xb1\xdb\xae\xd4\x046M\x8e\x0a\x8f\
+\xad\x22\xa9\xad\x220\xa3\xc8\x0a\x16H&u[\x83C\
++\x8b\x91\x8dS\xe5k\xc4\xed\x16\xf9\xf3\x1a\x91\xe4j\
+\x8e'\xb8\xb9\x10U\x10\x81(4i\x11\x04\x94\x14\xaa\
+Uo\xdc\xb8t0\x98\xder\xa4\x06\xaa\x86\xbc\x08\x81\
+\x82\x99\x92\x15c0\xd3\x92w\xe0 \x8dk\xb7\xec\xa5\
+% \x93\x8d\xe2N\x11W\xd0A}P\xbf\xd9$\xf1\
+\xae\xe5?\xdc \x22\xcd\x96Q0\xd4R\x067-\xac\
+\xca1\xaa\xe0d\xa1\x81\x98\x12\x96j\x15K\x88\x9b1\
+\xb2i\x0a\x02\x99Q\xe1\xa1\xbb\x884nl\xc1\x92\x88\
+>v\x02+\x1aMt\xcb\xe4\xb2\x19\x91O\xcc\xb1\xfe\
+*\x92m\x09p\xf7\xa4\x1d'[\xfe\xe6\xc9\x16sG\
+KoD\xf8 G\x91;0;f\x9f\xa4\xc8\x13$\
+0y3IQ (a\xb1\xcd,EAPH,\
+\xef\x05\xfbLHI\xf6\x96\xa66\xc1\x96\xa6Z\x05}\
+\x9e\x22S(\x99e3M\x11\x07pXx\x97\xa6\x08\
+A\x8c\xf0\x9e|\x11Pv)\xd1R\xd5-\xa8\x18-\
+[\xb5\x0a\xee[@\x02\x16\xa9e3]\x11%D\xa6\
+\xe9f\xba\x22f@\x0c\x91>c\x11\xdb@-Q\xcb\
+X7\xa0ht\x19\xabU\xd0'-\xaarE\xd4[\
+\xd2\xda\x04[\xd2j\x15\xf4\xa9\x87\x84\xc1\x99\x986\xf3\
+\x16i\x01WQ\xdfL\x5c\xe4\x08l\x0f+\x08\x84\x0c\
+\xe2\x96\xba\x1a\xd62W\x13\xbfo\x80\x05$K\xe1\x96\
+\xbc\xd6 \x16\xe5\xdcL^d\x09Jb\xd9g/\xb2\
+\x02!\x9c\xb1\x99\xbd\xc8\x19RH\xbde\xaf\xce\x8f\xfb\
+\xf4EJ\xeb\xa6\xf5\x19\x8c\xd4@2\xc863\x18i\
+\x82\xa7\x12\xb5\x0cv\x03\x0a\x8bti\xac\xc1}.\x1b\
+\xe1@\xeb\x12\x07i\x00k\xe9s\x19\xa9\xae\xfd\xbeO\
+G\xa4\xf5(Bl3\x9b\x91\x14\xf0\x0c\xa1\x96\xcd*\
+\x167n\xdb\xcb\x8b\x01\x92\xa6n\xa63\x12\x01+\x8a\
+\xd1\xb5J\xa4Y\xd0\x0ckp\x97\xd8F\x18\xbd\xd0f\
+b#QPR\xd7\x96\xd9\xd6-\xc8\x9b\xf1\xd45,\
+\x803\xacKm\x83a,(\xd2R[\xd7e]v\
+\xdb\xfe\xee\x81\xff\xfb\xdd=L\xa4\xe9\xdf\xee\x89\x9f>\
+i\x8e\xbbL\xd3s?\x0d\xe3\xa4\xd9jf~;6\
+\xfd\xab/Ny\xe4\x97c\xc2\x19\x9c\x91\xad\xc8\x8c\x11\
+\xf3\xbf\x1dk\xab\xe1L\x80B\xdc\xffZF\x08$\xdc\
+#\xfb_\xd6 \xb8k\x1aw\xab\xe3\x85!+(\xba\
+\xe5\xb3\xc3\xc0\x22\xcc\x5c\x16\x04\x85\x0c\x8b\xd2\x0e\x1e!\
+f\xb6\xed\x1e\xd3V\xdf\xc6\x11fYS\x07\xe6L+\
+\x1dmV*j\x89\xd1\xd1\x16\x90%\x84):\xdaZ\
+\xd9mis\x16\xaf\xb4\xed\x84.,\xdf\x94.\xa2\x00\
+a\xf1\xdc\x82.F\xe0\x94\x0c\x9a\xa6\xeb\xd9\xc6\xbb[\
+le\xbc\x13>\xcf\xf8\xf9\x07Y\x08\xdc\xc8\x89K\xed\
+\xd3_.]\xb63\xba\xe6c\xac\xab\xe5\x8b\xc4XW\
+\xc7Gb,\xa7\xaaR\xc63bl\x9f\x9b\xb6\xf9\x1d\
+V\x14#\xa4\xf5\xaf=\xda\xd1\xb2\x80\x858\xb9\xd7\xaf\
+\x02E\xc2X^\xcf\xa4\xeam\xbb\xb9]T0\x98\x15\
+M\xef/*(\x81\xd4$\xfb\x9fl1\xa0b\x98\xb4\
+\xcb\x87\xc9\xb2\x87\x13e\xa7\xf2vq\xdbj\xb1\xbb\xb8\
+\xca3\x86`S?Q\xed\xcc/\xd1\x8b\xabM\xfd\x8a\
+}n+\x8e\x89\xfdc\xfeX[8\xaf-&\xb4\xd1\
+\xe3\xda\x9c\xa7\xb4\xedj/\x02\xb6\xc89\x96\xd8\x12\xbf\
+\x9e\xa5\x88\xa7\xb1\xc4\x96\xfc\xf5,\x1d\xd2K\xb2\xe4\xaa\
+>\xbf\xab\x85\xe6\x13|i\xfc|=K\xae\x863,\
+m\xa9\x0dw\xc1\xd2\xf6\xc9a\x96F'~\x0a\x8do\
+\x8f\x13\x9f@\xa3\x93\xce\xd08\xabm\xf74\x0a\xcd\xb3\
+$\xf2\x84!\x89\x12\xf8$\x96\xc4\xbe\x9e\xa5\xb7\xc7\xb6\
+\xc2\x17di>\xbc\xfb\x13\xc3\xbb\x9b\xdbSX\xd2x\
+\x8a/\x1dUoz)\x96\xd8\x1c{\x96f\x1ac\xe5\
+\xa1\x83\xccP\xd8\x02\xb7s\xc7\xd2\x9c\xb6<B\xdcJ\
+\x1bMk\xd3\xdd\xf9R\xe8\xbc/\x85\x7f\xbd/\xbd}\
+\xe2\xa5\x82{\xe4S|\x89\xea\xe7\xa5|IXb~\
+C0)O\x19q\xab\xb7\xf9\xf6\xebY\x12V\xfa\xa5\
+%A.\x05\xe7X\xe2R\x9e\x90\xe3\x0e\xc7\xcf\xd7\xb3\
+\xc4\xa5<%\xc7\xd1\xf0\xe7\xa5.\xa8\x04\x99f}\x09\
+\xf9\x099\x0eq\x9b\x11\xf7\xd5U \x90\xb9\xb8\xb8N\
+\x86C\xb0W\x93\x06\x94-\x9c\x18\x85&\xabtfW\
+\xaa<=\xa1\xb1\x9e\xc1\xc1!\xdb\x0c\x22\xe4\x99\xe4\xbe\
+\xbdZ\xf1\xf1O\xcc\xf9\xc9\xf4n\xa7\xd3\xfb\x84\xb2\xa9\
+<o\xdf\xd1\xf9\xfdL\xe7\xf7E\x9d\xdf]u~\x9f\
+\xd6\x99{\xd8\xb9\xed\xc6\xe6'\xf1\x1e\x89J\x1e\xb4\xfd\
+\xec\xc1\xf4\x04S\xdbNH\x08\x828\xd4\xe7f\xae*\
+Z\x12\xc8\x83\xc2\xb6\xda\xb3\x86\x5c\xcdB\xee\xf6\xac)\
+N\xc3\xba\x829\x14B\xe3\xfa\x95 \xc3J`y\xfd\
+\xb3\xd2\x99\xb1\xcb\xcd\xb0R@\x89\xcb\x02\xc1\x15\xd3l\
+~\x1e\xa8\xf5\x11\x13`\xd1R\xb4\xd1\xbeF\x09\xa9\xa2\
+]\x17\x91\x01e!\x91\xae\x8b8\x001\xd2t\xe2\xc9\
+\xcd\xdd1Z?\x8f=\x81\xea\x05w\xb9#\x8d\x9b\x87\
+\x88\xdd8\x12\xb3rY?'\xe0.Y\x16KQ\xa0\
+\xc4(?\xc5\xf4\xc5\xc1Q7\xe1\xa5\x0c\x81(\xc6\xfd\
+\xe4\x18\x0aXb\xa3\xf3x\xb2\xe8qWtbv\xee\
+e]\x19\xf5QW.\xfe\x84\xc8 \x05B\xa9\xdc\xff\
+M%\x09\x98\xa6\x94V\x96'\xcbVtiPX\x8c\
+3\xb6}\x80\xddA\x17\x0cd\xab%\xbf\xe8\xe0\x17.\
+\xf6\x18c\x81\xf2\x04\xc6\x96\x8eP\xd4\xd8\xa8\xa7\x0c\x0d\
+R\xd0\xfa\x81\xba\xb4\x02J\xc6j\x1dgj\xe0B\x8c\
+\xf1s\xc6\xbe@\xdb\xce\xfcg\xacy}\xa6\xd9u\xb6\
+\xf9\xdc\xd3\xd6\xef~^\xba\x9e\x9f*\xe6WV\x1bm\
+D\x06\x0fWu\x83\x00S\x0b\xe6\xcc\x0ap\xb7X\xfc\
+\xb3\xb2Vv\xcb\x9a\x12\x17\x14\x1eR,\x151\xcd\x17\
+\xcb\xb1\x02\xc5\x09\xb5\xa74\x81\xc5\x8a\xfe\xbc\x03\x97\xe8\
+7Nw\xce\xa9\xfc\x828\xb5\x02H\xee%\xeeo\x11\
+\xec\xa8(\xd4q\xea\x02jj\xd8ge\x22\x10+\xa4\
+\x13\x83\x7f\xdb\x15\xcf\xfb\xfb\xda-3\xbb]\xed\xb6\xa2\
+k\x07W6*\xac3[\x01\xb6=\x03g6\x17l\
+\x9b\x10VZ\x9e\xb6\x10<\xb9K\xe2\xd4&\x89K2\
+\xb0~\x93\xc4\x1d\x92&\xaa\xe5\x91\xebp\x15\xa6\x99m\
+'\xfb=*\xfb\x8d,g6\xbb<\xecDg\x5cl\
+\xda\xdf\xb7\x1bG\x5c\x09\xdd%i\xec\xf8\xa8\xa7Q\xce\
+l9\xddmO=\xb3\x81w\xb7\xd9\xf7\x9c\xc3\xcd\x8f\
+\xc3\x92H\x8a\xe5f\x1c\x22h\xc1\xa0]\x913\x7fg\
+\xa7B\xdayT1\x084B\xea<\x8a\x12A\x84T\
+\x7fbS\xd9\xc3I\xc9\xc3N\xf29\x8f\xe90\xee\xd8\
+c\x90\x1f\xf7\x18\xbc\xbf\x8f\xb0\x07%\xf5y/\x13B\
+D\xcb\x83\xed\x89M9{\x87I\x07\xd3\xa0|\x1e\x09\
+\x04\xc9\xee\x14\x0b\x01\xd1t\xe1\xfc\x96\xa3\x08\xa3\xe3\xc4\
+\x09(\x1d\xdd{N\x18\xd8\x8a\x92}+R\x96\x05\xa1\
+X1[,c\xf8&\x5c\xe4\x9b\xb2\xa2\xbd\xa7\x04\x90\
+b\x14\xe9X\x19\x93\x13\x86\xddc\xc5\x14\xd2\xcd\xa2c\
+\x85%\xd7\x06=\x8b\x96\x12\xbb\x1b0\xf37\xdd\x22\xec\
+3{\xdbw\xfb\xe0\xcf\xec\x99\xdf\xed\xaf\xff\xcc<\xf4\
+\xf2\x96\xf3S\x93K\xff\x9e\x84\xfe}\x0a\xf3O\xe9\xb1\
+\xb3>\xe5!<v\xf6\xf9Wd\xec\xfaA\xe7\xe9\xc9\
+-\x9azn\xa7_hy\xd6kV\xda*\x9b\x8fa\
+fN\x19\xd8\xf3^\xb4\xd2\xd41\xce\xab\xa3g\xbcf\
+\xa5W\xc6;[\x1fu\xc2\xe7uI{;\xd0|\x97\
+\xf0s9jo\x07\x9aW\xa6O}\x1b\x0d;\xfa\xfc\
+k\xa2\xfa\xd7J\xcd\xbf\x86\xaa\x7fm\xd5\xd3\x062\xe6\
+v/\x95z\xf9\x81\x8c\xcf\xf3\x9a\xf6&\xb2\xf9\x8e\xc4\
+gy\xcd\xfc\x9b\xc8ze\xba\xb3\x91eE\x9f\xc9\xd1\
+q\xfdl\xc5\x91\x15\x7f\x02G\xf3\xcapZY\xee\x8e\
+\xa3\xccgr\xe4\xb2*[r\x84\xdf\x92#\xde!G\
+\xfc\xdc\x08=~\xb6\xe1(\xf5\x99\x1c5e\xf3\x1c\xa5\
+\xef\xf0\xb9\x04\xcd\xdf\x9eJx\xe6\xbd\x0d{\xd8N_\
+x#\xc2\xac\xe3\xb4G;Z\x122\xa0E\xf1\xc52\
+\x14L\xc2\xc5^O\xdd\x10\xcd\xdd<\xf57Z\xd37\
+e?/\x9b\xf9\xe2l\x92\x80X\xbaK\xc5\xb4\x04\x15\
+\xa3\xd7\x93\xb7\xdc3w\xe7\xdd\x9d\xfc\xf4]\xff\xcbR\
+\x89\xfc(\x95I/O%\x81fQ\x1d\x5c\x14\x0a\x17\
+\x13\x7f\x06\x97\xfdLQ?\xa9\xf4\xf3>\xd8\x91/8\
+\xc6Q\x10\x91\x17\xcbR\x00\xb9Hz\xe5\x92\xc1]\x0b\
+\xf9\xeb\xe9Y\xc2\x86\xce\xcfEN\xcf[\xf63\x94?\
+\xeb\x88\xcf\x9d\xae\x92\x92A)\xe18\xbe\xbdI\xa5\xa0\
+\x95\xb9\xd5\xa7\x17zA\xe5\x8b9\xec\xfc\x0a\x08{\xe1\
+-I\xdd\xe5\xa2\x0f\x0b\x98R\xaa/\xb4\x80\x93\x9b4\
+\x07\xde\xf6\x8db\xdb\xbfC\xac_\xb5\xf9y\x1f?z\
+rx\x98_y,\x0e\x88,\xc5o\x9e\x1bd\xb5\xa8\
+\xac\xee\xf8\xcdb?\xe7\xb3H^b\xf7o\xe5|\xa9\
+\xb7\x90\xaey\xfan\xffhu|5~\x1b\xb76j\
+\xfb\x17\xa5\x01\x93\x8b\x8d\xb91\xd8%\xa3\xeeaB\x01\
+\xa6\xc5T\x17\x8e\x10\x98\xc1\xc3\xbb\x1a\xc8\xc1\xdc\x19+\
+J\xa0$\xa5\xc8^\x8b_\xce\xa0\x96%c\x13\x93*\
+\x81Ei\x90n\xa8\x82;g\xb1\xcd\x1a\x0d\x02#\xb3\
+l\xea\xf6A\x0b\xd9\xd0\xa2\xac\xd2(9\xb6\xd3@\xd2\
+\xc7\x16\x15\x04T/1\xa0\x09H\xee\xbaWn\xf5\x8c\
+\x98d\x11\xef0^7\xa9\xd6\xb9\x81\xda\x0d\xf8\xe7\xae\
+(\xb8\x97D\xdd\xcb\x84\x12\x81\xa9\x8b\x02\x88\xe1\xea9\
+I\x5c\xddc\xa5\xdb0\xaa\xa2\xa5B\x93[\xae<\x1c\
+\x93\x0f\xb6\x5c\x19\x0f/?\x9e\xae\xde\xac~\x5c\x9d\x9d\
+\x1f\x1dmn\xc2R{\xf6\xb7\xfe\xfc\xe6\xfd\xa9\xd4\xf7\
+g{\x0e\x9fM=\xc9u\xe2\xfd\x22-\xc9\xed\xa6\x8b\
+\x13\xf4\xc6\x22\x04g\xd1\xb1;2@\x19\x8d\xd6hf\
+0\xed\xa5\x83\xa4\xc4\xdavDd\x8ej\xe7\x9d4\xdd\
+v\xe6\x0f\x83t\x06\x8fh\x01J\xabhO\xa8\x03r\
+\xf1B\x934S\xcf3\x83+[\x96\xbd\xc2\x80\x96\x9e\
+c\x9b\x14\xc3\x91&[\xff\xc3\x14:\xc5\xbel;\x9a\
+\xb2|\x1d\xd5\x7f\x5cO\x91\xae+[\x7f\x17\xc9x\xfd\
+\x13]\x10\x0c6r\xbav\xdb P\xe6B<`\xc4\
+\x11\xb9\x17\x08\x92\x8e\xa5\x0c\x90J\xe1\xf4=/\x83\x14\
+WscL\x8d\x03\xd7\xce6\x98\x8f\x03\xc3\xea\x19w\
+G\xb5\xda\xe1_\x01Lr\xad\x15:\xa0\x13F\x19\x18\
+Ju\xf7\xbe\x15?t\x87w\xe4]O\x5c\x1f\xa5\x90\
++\xf1\x98\xb9\x97\xe3V]\xea.c\xcf%\x88\x1a\x96\
+\xd7\x0f\xa9\xb7\x9fr\xfc@%*\x19\x1b\x8e\xffp5\
+\xedE{#\x1d\xc2\x8c}\xed\x90\xa4\xe8^\xe9`\x02\
+&w\xb4!\xba\xb9`\xa6\x0cQ\xab@\x94\xd4\xac\xa8\
+\x00j\x96\x12{\x8c\x80l\x9a9D2.\x1c\xca\x83\
+4\x11E\xf8\x10\xc9$\x0a\x0a\xad\xa3\x16y\xfa\xa0\x89\
+\x10\x84s\x0c1Y\x80\x9d\x8a\x0d\xa8\x80\xa6\xa1\xed\x15\
+\x011c]cn\xa2\xd4\xb0\x0d\xe9\x1f6\xd1\x00O\
+\xe3\x18\x87SC\x152\xa4\x0c\xb1\x918s@\x04\xcc\
+]\xb8LY>5lbb\xd8LF\xa8\xdcM\x12\
+\xe2H0C\xd5\x05\x13\xa8\xebh'\x93\x02\xa1i,\
+B \xd1\x8b\x95j'\x13CP\xf1\x8a\x1a(\xb9!\
+\x8dXQ\xb2E8$'I\x8c\xc2\x88\x82\xeb\xed\xf5\
+\x9c\xd0i\xa82bA\x5c\x00#\xdd\x87\xca\x92*9\
+\x0c\xee\x98\xf5\xc0\xc6\x834\xca2\x1e\xb5\xa2?\x8c\xc7\
+,P\xb8\xb0p\x15\x1d\x8f\x11BRl(M\x90\x1a\
+$\xc3\x10eSN\x994j\x02l#o\xe6V\x1a\
+!\x93\xd0=\xeb\x18,\x09Z\xca0-!\xe0\xc8\xae\
+\xa6\x13Cp\xe2Zbs\x87\xb4\xe9HX\xe2\xf5\xbd\
+\xfd\xda\x00#\x02K\xbc\xe8\x9b\xab\x9a\x07M\x0dfz\
+d0\x17\x88\x10\xa7\xd1\xf1\x1d\xc5(\x87!\x96\x90\xca\
+\x98k\x94KJ\x8e9\x8b)m\xc4\xb2 \x9b\x8f\x03\
+\xc2os\x93\x96,l\xb7\xa1\x80\x10c\x0c\x05\xaa\x12\
+|\x1b\x0a83\xc7P\xe0\xacY\xd6\xa1 #u\x1d\
+\x0a\x8ac\xacC\x81a\x8c\x91 -\xd7\x1d\xcf`\xa6\
+D9^\xd5`a\x8aZ\xa58\xa4\x92\x86,\xbc@\
+h\x18\xe6\x9e1\x84\x8f\xf7FA\xe0L\xe1\xebL\xe0\
+\x5c\x8a6\xacJG@\x88\x16\xcd\x0d4\x0d<]q\
+,IQ\x10\xcbFl\x08\x04Qv\x92.\x8e\xa8\x00\
+\x16w\x93\x07\xd1%D\xd3\xfa\xe8b\x10\x8a\xee\xb1W\
+\x08\x92\xb9\xc4H\xa7\xa99O\xf5\xc5\xc3\xf0\xa2\x8c[\
+gezl[\xc1m\x1c\xc2\x82L\xca}\x87\xb0\x12\
+iv\xcf!,9\xf2\x9eC\xb8\x17\xf5\x07\x0eA,\
+c\x1cg\x04\xc1\x22\xa5,\x9c\xc1H\x07\x00\xd3\xad\xd0\
+\xe0!\xa2\x12\x98c!2\xc7\x8a)\x10z(\xafE\
+U\xdc\xc8\x87\x92\xae\xea6J\x07*\x8a\x0c\x18){\
+\xe1M\xc5\x0c.\x16T\x9b\xb3\xd9H\x07-\xc8>\x9a\
+\xd8\xcc1\xc8$oF\x0f\x883Qd\xa3g\xc0\xac\
+h:U\xd9\xd6\x99\x03*^\x9c7;\xdd!\x84\x91\
+6\xa1\x04wM.\x0f|F\xc9\xd0\x1f\xf8\x0c\xa6\xe7\
+}\x9f!q\xa5\xa9\xfez\xe04\x82\xea\xdb:M\xe4\
+\x13\x9c\xa6\x10H\xb0\xd9\xdas\xc5\xb4\xf8\x9a\x95\x12%\
+\xd6\x8c\x92\x07\xa5\xef\x15\x06\x11*4bE4T6\
+1\x87\x0cE\x1a\xa2HC\x95\x81KP\xf2v\x03\xac\
+0\xa9\x8dd\x93\xa8\xae]6\x0aI\xe1\xc9v\xfe0\
+\x85\x8e{\xb12C\x86\x14\x1c/J\xb2\x84\xd9\xe8\xcc\
+\x02\x16\xa1J}(\x0aH\xd7(](\x12\x88\x94H\
+\xdb\x080\x81`\xe9B\xde\x87\xa2\x04CB\xe2\x0d4\
+\x1d0L}\x1d\x8a\x0a\xabQ\x1f\x8a\x14\xdd\xa2\xa3\xc4\
+\x0b(\x19\xf3\xd0\xa04\x90 \xb6\xb1\xa8\xb0\x15.C\
+\xc4\xc3\x08\xcc\x1c\xb0d\xe6b{\x9e`R<\xa8a\
+U\xda\x18\xd8\xccs\x13\x15\x87\xa4`-\x83\x1eT\xcd\
+\xe0i\x8a\xa6\xd0\x09\x9f4\xdd\xda'm\xd6'\xbf\xdb\
+\xbf\xfa\xf1\xdd\x9f~\xf7_\xea_?\x7f\x00\x9a\x00\x00\
+\
+\x00\x00\x15,\
+\x1f\
+\x8b\x08\x00\x00\x00\x00\x00\x00\x00\xed=ko\xe3F\x92\
+\xdf\xe7W\xf0\x9c/1N\xa4\xfa\xfd\xf0xf\x81\xdd\
+A\x82\x00\x17\x1c\xb0\x9b`\xf7[@K\x94\xad\x8b,\
+\x1a\x92<\x96\xe7\xd7_U\xf3\xd5$[\x14\xe5\x91'\
+A`;\x89\xa9\xea\xeaWu\xbdY\xad\x5c\xffm\x7f\
+\xbf\x8a>g\x9b\xed2_\x7f\xb8\xa0\x09\xb9\x88\xb2\xf5\
+,\x9f/\xd7\xb7\x1f.~\xfd\xe5\x87\xd8\x5cD\xdb]\
+\xba\x9e\xa7\xab|\x9d}\xb8X\xe7\x17\x7f\xfb\xf8\xee\xfa\
+\xbf\xe28\xfa\xc7&Kw\xd9<zZ\xee\xee\xa2\x9f\
+\xd6\xbfog\xe9C\x16}\x7f\xb7\xdb=\x5cM\xa7O\
+OO\xc9\xb2\x04&\xf9\xe6vz\x19\xc5\xf1\xc7w\xef\
+\xae\xb7\x9fo\xdfEQ\x04\xf3\xae\xb7W\xf3\xd9\x87\x8b\
+\xb2\xc3\xc3\xe3f\xe5\x10\xe7\xb3i\xb6\xca\xee\xb3\xf5n\
+;\xa5\x09\x9d^4\xe8\xb3\x06}\x86\xb3/?g\xb3\
+\xfc\xfe>_o]\xcf\xf5\xf6;\x0fy3_\xd4\xd8\
+\xb8\x9a'\xee\x90\xa8\xb5vJ\xd8\x94\xb1\x180\xe2\xed\
+\xf3z\x97\xee\xe3vWXc\xa8+#\x84L\xa1\xad\
+\xc1\x1c\x87u\xb5_\x01)\x0e.\xc6\xb5\xfa\xb3\x03\xf9\
+\x1f\xe0\xdf\xbaC\x05H\xb6\xf9\xe3f\x96-\xa0g\x96\
+\xac\xb3\xdd\xf4\xd3/\x9f\xea\xc6\x98$\xf3\xdd\xdc\x1b\xa6\
+\xa2~k\xde\xd6\x91\xac\xd3\xfbl\xfb\x90\xce\xb2\xed\xb4\
+\x82\xbb\xfeO\xcb\xf9\xee\x0e\xb8\x81\x19\xf7\xf1.[\xde\
+\xde\xed\x9a\xcf\xcb\xf9\x87\x0b\xd8\x1f\x17\xa4\xf8\x5c\xad\xe0\
+\xaa\xe6#\x92pV\xa0\x96\xc3\xfaM\xc2$4\xdaX\
+\xad\x88Ci1_k\xb8y>\xc3\x15~\xb8xH\
+o\xb3\xf8K\x9e\xdf'0\xed\x97\xf6\xc0\xf9\xe3\xee\xe1\
+q\xf7[\xb6\xdfe\xebb\x1c\xd8\x99\xb7M\xd7\xec\xfa\
+%\xad=\xd6\x03d\xfb\x87|\xb3\x8b\x17\xcbUV\xcc\
+6\xbd\xcb\xef\xb3\xe9\xc3r\x0d\xfb\xde\xe4\xf00\xdbN\
+\xf3\xfd\xf3m\xb6\x8e\x973`\xb5)\xf4[\xa57\xab\
+l\x9a\xcevK\x07\xb8OW\xab\xa90{a\xa6\xdb\
+u\xfa\x10\xc3\x80y\xf2\xb0\xbe\x0d\xce\xb4\x9f?\xc0\xd1\
+R.\x83\xad\xcfu\xebGh\xbe\x9eg\x8b-\xa2\x15\
+T\xc7O\x5cP\xe2\xda\xa0\x15\x18'K7?n\xd2\
+\xf9\x12\xc4\xa5\xc0\xf3\x86\x9c\xe5\xabU6\x83\x93KW\
+O\xe9\xf3\xf6\xa2F\x80\xa1\xda]\xb9\xa5\xaa\x1c\x14\x86\
+\xdd\xee\xf2\x87\x0a\x17\xcec\xf7\xbc\x02\xb2 0\x86\x11\
+\xf3\xcd\xd5w\xf4\x86I\xce\xdf;P\x0e\x0c\xb4\xdc=\
+_\xd1\xf7\x17M\x9f|\xb1\xd8f01\xf1`\x8em\
+\xa0\x07\xcc\x05Je\xfau\xb3\x91\xd0l48\x1b#\
+\xf5l\xd7\xd3\xf6\xb6\xbf\x8e\x8cNn\xaf\xee6\x19\xe8\
+\x99\xef\xfe\xf3\xf3\xff\xfc\xf4\xe97\xfb[\xac\x06\xc8\xcc\
+\x0c5\xa2n\xbf-\xa1\xbf\xae\x97;\xd0$\x8f\xdbl\
+\xf3/\x94\xc6\xff]\xff\xba\xcdzX\xbfl\xd2\xf5\x16\
+D\xff\xfe\xc3\xc5\x0e\x1fW\xa0|\xbfg6\xb1\x8a+\
+i'1\xb0L\xa2\x14\x93\x97\xcd\xfa(\x90DX\x90\
+E\xab\x1a\xd2<\x03\xd4\xc8\x84s!H\xb3\x96=\x03\
+\x5c)p\x04\xe3\xe12\x1f\xb7\xa6\xe2\x01z\xc1v\x03\
+T\x18\xb7K\x5c\xab\x15\x09\x17\xdc\x10\xdeZ+%\x0c\
+\xc0B\xb7\x96jT\x22\xb9\x94\xd6\xb6\x96\x0a\x03H$\
+\x869\xc4\xca!\xb6\x0c0\x9c\x9c\xe1\xef\x00{W\xcc\
+\xa5X,\x0f\xb3r\x85\xa5\x85f\xf1\x91)\xb3\xc5\x82\
+d\x8b1\x12\x95p\xca\xadPz\xdc\xc4$\xa6\xc3\x13\
+\xa7iz\x93\xdaQ\x13k\x06ZB){x\xe2\x90\
+ \x86\xe8\x0bG'\xe9\x18\xfa\x0a\x8f\xbe\x7f\x06\xe1=\
+\x95\xad\x03\xc2{\x9f\xee6\xcb\xfd\xf74\xb1\xf8c\xe8\
+\x84\xc0\xaf*>Y\x09r\xccXB8cz\x12+\
+NA -\xb3\xdf@\xa6q\xa1\xe9\xeaU\xc8\xd8\x1e\
+\x1a\xc9h\xceFF\xa0\x95\xfb1\x8e\x8c\xe5'\x0aT\
+\x14\x0a\xf6\xcd)>R\x0d\xbb\xe5\xba!\xe2l\x8fD\
+D\x04\xe6i\x90\xd93\xba8\x04\x87\xa0\x0dt\x11\xc4\
+]\x04q7\x1f.\x90\xb0\xe0\xfb\x1cS\x95'\x91\xb5\
+=\x86\x16\x96\x0ds\xa9%_O\xde\x03&\xc6 \xe3\
+Q\xde\xe5G\x9dP\xaa\xba\xdc\xa8\x8d\xe6\xa6\xcb\x8d&\
+\xd1\xd2\x18\xde\xe2F\x0aS0nGX\x98\xd3\x1d\x1b\
+G\xad\xf1\xae\xc6\xc2\xfd\xbc\xd0\xb1\x81\xb9\xc4I\x8eM\
+h\xb6\xd1\x8e\x0d\xcc\xa6\x8e\xe9\xc6s\x08u\x87\x9e\x94\
+\x9aa\xe1\xf6\xb8s\x1c\xf7\xa14\x1a\x9d\xc8\x96 \x82\
+3c\xb4$\x9e6CA461\x82\x1a.[\x82\
+\x08\xeaPjmmK\x10)\xa0j\xc6H\x7f5}\
+%B@\xfbRI\xb8\x14\x13\x88\xa2('\xe0n\x10\
+>)\x1fQ\xb7 \x82\x90\x0a\xb4\x09O,W\x94q\
+>\xa1\x14,\x22\x01\xddz9\xc63\x0a\x90q<\xa3\
+\xcc\xf9b6\x8aQ\x82lI=\x0f\xf8\xb0\xafPE\
+w\x9d\x01\x13)A\x8b\x12O\x90\x83+\xbcI\x17r\
+\xd1q\x99H\xc2\x80\x8e \xee\xec\xfd\xa8\xf9Up~\
+-\xa5b\xd4;\xc7\xe0\xfc\x86\xdf\xc8\xec\xa6;\xbf\xb0\
+\xe0MZ64\x7f\xd0=\xd1\x8b\x99\xea\x8e\xa5\x8d\x10\
+\x86i3Z>\xc1\x90\xff\x01\xf2\x09+\x1c\x90O\xcd\
+\xbc\x83tfP\x83\xee\x06\xcbF[\xd2'X\xa2\xa4\
+\x96\xac%|}\xd4E\x08\x15d\x8f\xb3DR\xa6U\
+?\xd4\x09\xf9A\x1a\xf8\x8b\x17\xe2f9\x08\x86\xd0N\
+\x0a-D\x02 r\x13\x87`\x15\xe3\xe8\x1aQ0\x14\
+\xda\xc0\xa3\x92\xc0\x98`\xd9/G*\x9bW\xb0,H\
+\xe9\xf1LU\xb8)/\xb5,\xcc\x0c\x88\xf0\xc8\xd9\xc6\
+[\x16f\x8er\xeeb\xb9\xdae\x9b\x9agp\xd6x\
+\xb9\x06\xd0C\x0e^\xc32_\xc7\x05\x06\x9c\xc4\xf6\x9f\
+?\xfe\xfd\xe2$B\x17]a\x19^Nb\x91\xfd\x98\
+>n\xb7\xcbt\xfd\xf7\xd5\xe3\xc6[\xf4\xb1\x01\x91>\
+\xf3O\xd9\xe7\xa5[\x16j\x14\xa54\xea_\xdd\xd9z\
+{\x06\x98\xddxD(\x96\xf4jb\x0bq\xaf\x8a\xb9\
+\x17$\x06DW\x04l\xd9\x8b\xa3\x0f\xe7.S\xf4_\
+\x85!\x0a\x9eA\xe4\xc0\x00\x1a\x10.\xd1q\x94-8\
+\x80V\xd3\xb6\xa3lUb\x94\x91T\xb6UD\x0fw\
+\x11\xc4m\xe9\x88\xf3\x8bfM\xcdo\xe4\xf8a\xd6\x22\
+\x96\xf1@`|n\xe7\x0f\x837\x98\xf1hf\xeb[\
+\x88\xa9\xa0\xaf!\xa6\x10\xca\x19\xcb\x055\xc3R*\xe8\
+A)=_b\x80\x92\xdfb3\xc0o\xe8\xf5\x9e\x9a\
+\xd6s\x81\x13X1%\x8c'\x18\x18:q\x9epb\
+\x98\xe7\xe4\xba\xd0\xc9\x9a\x84\x1aF<\x5c\xe6\x1cb%\
+\x8d\x1a\x9f\x9ako\xe5\x84\xdc\x5c{\x8d\xd4K\xd2U\
+\xf98\xa3\xa4\xa7\xa1\xaa|\x5c\x01\xfd\xba|\xdc\x0f\xee\
+'\x94\x1f\xb2\xb1\xfa\xfal\x94\x04\xff\x85\x07F\xd7\xf4\
+x\xf6\xe9\x8f1\x05\xec\xe4 \xeb<\xa6\xe0u\x9d\xc5\
+\xd7L\x9a\x10A\xbdLhX\x84OM\xeem\x1f6\
+Y:\xff9\xdb\xdd\xe5xD\xd9\x02W\xd5\x16p\xc3\
+\x13E\x88l\xe7F\x804\x84C\x10\xd9\x16p\x10\xed\
+\x84\xa3\xe7\xe5K\x10x\xc3\xe8\xae\xbc \xc0,6\xfc\
+\xad2\x1fD\xf0x \xf7\xe1\xe1\xd9X\x86\x06Mh\
+\x91\x00U\xc3\xb2z\xc0h~\xbb\xa4\x0b\x84$@\xd6\
+?\x81\xd5eZ\xbc\x8asL-\xa3\x82(\xd6\xd9|\
+\xd79\xd6\xea\xcf\xe5\x1cs{\xbe\x9c\xf2\x9f\xd29\xfe\
+&\x9e\x1c{%\x9e\x92BA<e\x87yJ\xb0\x83\
+<u~\x83\x10\xe4\xa96\x8a\x12\xe2\x0c\xefj\xeb4\
+\x07a`\x098\xe6\x12\xc1 \x80y4\xca\xb1\x15\x91\
+\x9c0m\x90\xdd$\xd1R\xc9I,T\xc2\x158\xb6\
+\x98qg\x98p\x07\x93\xd9\xc9\xb8\x13\x9aHNE\xcb\
+\xacP\x93(0\x22\x9a\xb6\xccJ\x1f\x15\x80\x12P)\
+\x0c\xcb\xce\xfb\xfe\xa7c\x828e\x83\x22\xeb\xf9\xf6(\
+K\x1a_\x89\x81\x19n\xcb\x92@\x1a1FhK\x96\
+\xfa\xb8\x8b n\xf3Ff\xdcA\xbeB\x9a\x08\xa9\xf0\
+\xad\xcc0\x9e\xf3\xb7\xb3\x85\x9c\xfe\x11/ \x8eq\x15\
+{\xc9\xfb\x87\xd7\xe5\xbd\x93\xbd7n\xac\x8eu\xcc\x0f\
+1N\x9d\x060\xd6\xc6\xa2\xf5\x8a\x7fdH\xb5\x98\xe1\
+o\x87\xcfN\xe3\x1d\x83\xbf\xdd\x11B\xae\x9dd\x0c\x02\
+,\xdd\x8d\xe4\x8b\xea\x1c\x02AV\xac\x8f\xbb\x8e\x80\xc9\
+cv\xc0y\xd4\x8cs\xad\xa5=\xb2g\x92-\x025\
+\x16c\xa6\x96.\xbd\x13\x9a\xdaX\xc2\x84\x1f\xe7\x84\xcb\
+;xF\xb3~\xc5\xc3\x98\xa95\x1cp\xe8\xcd\xc8\x91\
+\x19g\xd9\xecfvs\xe8\x80O\xab\xa5\xe8GK\x1c\
+\xb8\xff\xc8\xd2\x99 /\xe0Kb\x95y\xc9\x19\xc1l\
+\xfct\x22\xa5\xd9l\xd1\x93\x82\xf7\xe7\xa2\x92\x90\xd4\x80\
+\x8f\xa1\x8fQJHFb\x1af\xed#l\x95ep\
+\xce_%\xc5\x02\x7f\xc7H\xb1(\xde)\x84,\x81\xb4\
+\x0a\xd5\x10?~L\xb0U\x16\xdb8\xf4\xa6\xf1\xc8Q\
+-\xd4B.\xe4y\xf8\xf9k\xfcFK\x87j\x84\xf0\
+ec\xcbSS\x1c\x8d\x85\x9f\xbaw)>\xacH\x91\
+\xca\x83\xa2\xab\x16\xc0eE\xceD\x8d\xae\x98y\xc5\x1c\
+\xca\xd1\xad{\x19\xcb\xf1\x89\xc5\xd7#\xd0\xa1\xc0\x0e_\
+\x0b\xbb\xd2+\x81Q\x9e\xc1\xfc\x8a!\xfa\xf8K\xfcW\
+%\x9d=\x91tC\xc5\x0c\x8c\x13\xad\x80\x11\xbb\xbb\x8d\
+\xa5L\xa8\xa1\xd0:aHI\xd8\xb6\xb9|\xa5\xc3\xf8\
+#\x89)\xf8k\x11\x93\x96\xd5f-Zb\xda\x0e(\
+a\xe8_\x92\x96\xfa\x9b\xd22.\x13\x9e\xe4/IL\
+I_]\xcay\x8b\x9aVb])\xb5\xafK\xcc\xeb\
+)\xdeKpO\xf5\xdd\x0d\xbcJ1\xff\xbc\xcc\x9e\xde\
+\xd5\xd4\xb8I\xeb\x9d\xe1\x85\x0eg\xd7\x81\x86E\x0cZ\
+6\xdc\xe4\x9by\xb6\xa9\x9a\x94\xfbi5\x95\xa6\xbf\xb9\
+-\xe2\x1d\x19\x8eZ\xb7\x93p\xfb\xf6.\x9d\xe7O\x1f\
+.X\xb7\x11\xaf\x97`\xc0\xa6\xa42R\xf4\x9a]\x90\
+\xc8\x13\xad\x89\xe5\xa6\xd7\x88\xeb!\x22\xa1\xa4\xb1Cu\
+\xe3<\x9f=\xe2e\xa6\xf8\xb18\xea\x87}\xaf\xfb\xe3\
+f\x83\x08\xab\xf49\xdb\xb4\xaf\xd64\x97o\x8c\xa9;\
+\x96\xd7s<\xc8\xf6.\x7f*\xe8\x83\x95\x9b\x8fYw\
+\x06l\xf7w\xef\xe1`\xd3\xed\x06\xcf'\xd4\xf1i\xb9\
+\x86\x0equ!\x88\xca\x1eaJ\x8cj\x99\xba\xae/\
+\xeab\x00\x01\x03t-\x1b\x9f\xf1\x15\xa2\xbf\xa2\xc7\xe5\
+<\xdb\x86\xd7\xe4\xda\xe2\x9b\x9b|\x1fn\xcfo\xfe\x0f\
+\x047~Hww0\xc2\x22]m\x0f\xa1\xacs7\
+\x89\x8fR\xb4\xec\xf2U\x06\x227\xcb\x1a\xb7\x14i\xe4\
+\x83M\x8b-\xcb\xa3\x0b\xd2\x1e/\x04\xdd\xae\xf2\x9bt\
+5H\xe3\xfbt\xbf\xbc_~\xc9\xe6\x8d\xd7\xdf\x1e\xc3\
+\xdbq\xa9\xc2\x1a\x92\xc0\xe2*\xf9\xdc=\xe3\x95\xaf\xfd\
+3\xc2Z\xda\x08\x01L\x88\xc6I\xc3\xab_\xcb\xf5\xed\
+\x1e_\xb6\xa3\xa0\xd5\xecT7=\x07\x9a\xb2\xfb\x87\xb2\
+\xb5\x91\xa2(\xfa\xbc\xdc.o\xd0g\xf7v\x08\xb8k\
+\xbc'5\xef@q7%>\xae\x09\xb5\xe46_\xaf\
+\x9eK\xb4J\xa9\xf4u\x89\x83\xdfg\xbbt\x9e\xee\xd2\
+F\xb1T\x10.h\x951\xb9\xde\xcc\x17W\xff\xfc\xf4\
+C\x1d\x8e\xccfW\xff\xce7\xbf7!\x06\x22\xa47\
+\xf9#\xf0l\x1d\x9f\xe1}\xab\xd9\x15\xea\xd9t\xf7q\
+y\x0f\x02\x83\xf7\xf8\xfe{\x7f\xbf\x02\x15W7\xb4\x90\
+\x91\xda\xcd\xa0\xc5\xb0\x9b\xac\xb8\xa7\x17\xbc\xda8\x9f\xdd\
+/\xb1\xd3\xf4_\xbb\xe5j\xf5\x13N\xe2\x85M\xe5\xa0\
+\xcb\xdd*\xfb\xe8\xe6,\x1e\xab]L\xcbmTA\x8f\
+\xb7\xcb\xebiE\x06\xf7\xe9\xb6!\xcf\xadVu\x22{\
+\x17\xaa\xf06\xa0\xd6\xa4\x92LMb\xbcz\x90\xc5\xea\
+\xb2\x22\xe3m\xcdU\x01\x0b\xc4\x85`\x8a\xa1\x01\xa7\x09\
+3`\xb3\xb1X\x8fY\xc9a\xc2\x89k\x96V\x13\xbc\
+\xd2@t\x02\xce&\x07\xbfS\xf2D\x12a\xd9e\x9b\
+5\xb1\xd4\xb7\x09\x937 \x82\xbd`\xb0\xa9\xc4\xb4\x9a\
+\x12\x0a\x91\xe4\xfb\x05P\xf0\x0ah\xfb}\xc7\x10\xbbk\
+V\x97\xae\xd9\x0b\xeb\xb7\xbbM\xfe{v\xb5\xce\xd7\x0d\
++\x96)D\x98O\x0b\xe5\x07\xdb\xa5\xc6\xeb$\x8f\x1b\
+u\x8c\xf5\x0e\xae,\xd1ks\xaf\xbd-P\x80\xb7J\
+Y\x81\xafc)\x12\x10=\xdd\x1a*DRM`o\
+\x10\x8fL\xbc\xc78\x0c\x06\xa3\x7f\xe9\x07\xdcm\xa2\xe1\
+\xa4B\x83\xec\xd2Vi\x83[\xa2J\x14k\xec\xaa\xbf\
++\xeen\xa5\xb0V*\xa5\xd2\xfdX7\xa7x\xef%\
+NA;\x1d(\x0f\x1e:\x1d5\xf2t\xceL#\xb4\
+\x09\xde:+\x05S\xa8\xcct3\x1b\xdaD\xaf\xd0\xdd\
+\x98\x13X\x0cg\xd6\xc2\xb4\xf29\xd5\xf4\xeeE\xa2D\
+\xd2\xb7\xd8\xa9iw\x97M\x9c\x226\xa1\xf6\xcd>\xc0\
+\xa8M\xebs\xa0\x15\xb5fD\xa5\xc6\xd0EL\xaa\xc1\
+\xa3Y\x84wh\xac\x90BF\xa0\x0b\xb8\x01\xc50)\
+:Gq\xf1\xb7\xfeX\xe0\x81\xa0\xd7-U\x8f\x06P\
+\xe2\xc21\xd4\xff\xae\xa2\xb2\x91D_B\xcb\xdd\xee\xd2\
+M7\xf1U\xb5ekX7O\xa8\xa0\xd22}>\
+6\xa1\xd4\x82\xefF,x\xcc \x1c\x9aI+\xed\x80\
+l\xbdH!Yr\xb2B\xb2\x01\x85\xe4\x0eJ\x9a\x83\
+\xb2\xeb\xbf\x96\x18\xd4H\x01\xe5pNa\xbb\x9e\xde\x96\
+\x0f\xbe\xcc\xf5g\xa0\x89\xd4\x960\xa5'\x18\xd1X\xc6\
+\x85b8A\xfd\xdc \xc4\xb0\x13\x89\xaf-\xc1\xe0p\
+\x99H\xce\x98\x97\xbe(8\x1a\x0c\x0d\xd7\x10\x13\xd5\xd7\
+G\x1cKS<\x22\x09\xa1e\x14\x9b\xc4\x80M2`\
+\xa9\xaa\xfb!Q\x5c>\xb6@U\x0fd\xef\x1a>\xa9\
+\xba\x9b\x16\xb0\xe9G&M\xcf\xa8\xc2\xf5\x11\x82\xbd\xfc\
+\xc9\xaa\xb5\xd4\x13\xf5\x17\xd7\x88MK\xc6\xfb\x17^Z\
+\x0ab\xa09|\xdf\xa6\xa5\x9eZ\xf7sj}\xe6_\
+\xfa:\xae/\xc1\xe8\x8f\x91\x80\x80V\xae\x99j\xc0\x1d\
+\x81xPIK\x84\xbbG\xa0(\xb8\x18\xcaqj\xfd\
+\xdc \xc4\x94\xe3=\x02\xc5\xc05Q*1\x10*\x8b\
+\x9eCB\x14V*\x8d\xb3\x1cM\x5c\xe1r\xd9\xbe0\
+W-H\x86G\x885b|\x1d&\xc0\x15b\x22\x84\
+\x96o\x96\xb7\xcb5F\x0a?G\x10\xc4\xe3}h\xd0\
+\xa7\xael\x0e\x96\x1b\xfd#\xa2\x10\x90+\x108\xd3\x00\
+\xdduP\x87'Ub\x0d\x07y\xf1`Z4}k\
+\xa0\xc5\xb2\x02c\x19\xf5\xc6\x03!\xae\x06\xac'n`\
+\xd0\xdb\xda\x04\x5c<\xc1<(\xa3<\xe1\x94\xf9\x03\xd6\
+ o\xe2\x1a\xe6-\xb0\x1e\xad\xd9G\x7f\xbf_\xa2\x16\
+\x19d\xf9\x80\x8b\x01\x86\x84\xe7\x06\xc6\xd0Aq\x9d\xa4\
+I\x84T\x1c$\xa5\x81\xb5\x16S\x01-I\x0c*\x14\
+\xd3\x0c\x07Q|k\xfb\xc2\x91\x5c\x82\xc9\xe1\xa6h\x94\
+\xcc\xef\x07\x9f|\x02\xc3\xc7f\xf6\xba_\xbd\xc6\xc0V\
+\xbeD\xe3}\x0e\xbc\xbc3$B\xef\x8b\x9a\x99\xa2k\
+s\x87\xe22\xe4\x8a`\x01W\xd7\x1d\xa8V7\x11`\
+cA\x1b\x80\xee\x8c\xf1\xee\xac\xb1\x85\x99\x07\xa9\x11\x0a\
+\xe0\x13*\x12\xa2-'\xca\x83U\x0f\xa8n\xcb>@\
+\xad\x02\x916\xad}|o\x06\x84\xe1\xfc\xb1\xebg\x14\
+\xa8\xbf\x1a\xe4\x8d\xef\x16e\x09Q\xa8\xa8\x01\xd3\x15i\
+5\x08q\xbf\xcf\x97\xe8\x1e\xd7\x95\xe01\xcd\xe0`\x12\
+\xbc\xc9\x05\x9a\x22bx\xa1\x10q\x91C\x15%\xc8\xd3\
+\x15\xa8z\xc0\x9eE\x0fh\x8d\x1d\x22\xe1E3\xce\xd6\
+\xc2G\x80C\xe6\x8eb\x05h\xe2:Y\xaa\x08m@\
+%6\xee\xc6\xe1s\x0bB\x81h\xee\xe6w=\xb7\x8f\
+^0\xcc\x11\x83\x0d\xd3P\x8dQW\x91\x16\xac?R\
+\x89%\x96\x92\xd1\x89J\x984\xc4\xdd*?\xe8\x1a\x87\
+F6TS\xa6\xa9-G\xae?r\xe0\x16\xd8\x1a\x9c\
+\x01\xac\x1f\xc2Hk\xf5\xe5\x00oA\x88iy\xcd\x5c\
+\x16\xdc\x1c\xed\x98\x8b%(E\xc8[\x12v\xccE\x03\
+*\xff\x16\x9c\x85\x1d\x94\x8a*\xb4\xba\xb1\x8b\xec\x8d\x8d\
+ T?\x8e\xaf\xa4\x01K\xc4=X3z\xb9\x1e0\
+\x07\x8e\xaf\xf0\xde\xa1i\xda\xe3~\x97\x82\xad8\x90\xa2\
+\xe0+\xb0\xa1\xd6P\xc7Wx\xcf\x19\xfcjP\x14\x10\
+\xec\x98\xf2\xb3\xfb/n\xa3DD\xfeE\x14p8]\
+\x9b\x1b'np\x8b\xcf\x0e[\x0b\xea\x18\xaa\x84\xba\xca\
+0c\xb8\x01\x9d\xe5\x01\xebN\xb8\x99\xb2\x1b\x8f\x0aT\
+\xca\x8av\x19\xb5\xf1\xdb,\xd5\xc4*$\xf0\xee\xb9q\
+y\xa5 \xa0\xc9\x15}\x7fPY\x092h\xefC\xca\
+J\xd0\xb6\xb2z\xb3\x8aoV1\xe0C\xe1\x9dd0\
+*\x96\x04\xa3\xe1\xb0KvP\xd3\x1dSO\x9a\xf5\xb4\
+\x93\xe4\x07u\x93fQ\x892\xac\x98\xdc\xa8\x1d\xbd$\
+\xad\x12\x03zII\xaeJ\xbd$\x88<Y/\x81\x8a\
+i\xa9%\x94\xdf\x90Z\x02\x17\xb9RK`\xf2\x8e\xa9\
+%\xd0n\x01\xb5\xa4\x88f\x83jIRm\x0a\xb5$\
+\xb9<I-\xb1V\xec{<\xd3dG\xe7\x01\xdf\x94\
+\xcd\x9b\xb2\x09+\x1b\xc5\x05\x16l\x9fA\xd9\x04\xc3V\
+N\xc1?\xe3\xd5;\xf1\xf2S,\x13L\x00Ye]\
+ZMi\xa2\xb9\x1cr\xab\xe0xk\xad\xc5 \xa4\xa5\
+\xa5\xc7\xce\x9cHQ\xf7\x1a\x97\x09\xee\xc1\xaa\x87Bw\
+a\x1fp|*\xc4\xa6\xb5\x8f\xef\xcd\x80\xb0\xc2\xbf\x05\
+\xaf\x8f\xa3_U\x00\xbc\xb1\xcb\x05\x19\xa9\x9d\xf3\x0c\xce\
+\x9b\xb5\x1eB\xdc\xedQ\xf9\xea\x95\xab.\x0dj.\x8e\
+70\xca\x9d\x08\xc1\x98T\x0d\xa8z(\x1cup\xf0\
+\xac\x15n.\x01\xde\x0fw\xcd\x85\xa2\xf4;8H1\
+\xbc-T|\x01t\x9b\x11\xa0g@B\x1aX\xd5\xa3\
+p\xd7]\x1f\x1a9D^\xb6\xba\x05\xb4\xf0\x1d$\xac\
+\xc4\xec\xb0oE-t5\xe2\xb0o\xc5F\xe6R\xde\
+\xd4\xda\x9bZ\x0b\xab5\xcc\xe12b[\xdf\x07rN\
+'\xca\xaa&\x81\x00Q\x18\xd1\xa5:\xaa\xf2\x07\xe0\xbd\
+\x09\xa6\x1aP\xf9\xb7\xd0E\xae\x83\xcb\x1eP\x97\xb0\xab\
+\x1a\xbb\xc8\xde\xd8\x08\x92\xaa\xf4\xa5\xa0\x17t\xf3`\xcd\
+\xe8\xe5z\x84,b<*-5M{\xdc\xefR\xa8\
+#V\x88\xbfSH\xb0C\xa6\x8b\xdc\x81*\x14\x12\x83\
+\x11!`-\x01\xc5\x9fB\x19!\xaeRN\x19\x01\x12\
+\xa7\xae\xb1p\xdb<lY)#@W\xb6L\x1cT\
+\xdb\x81\x9e\x86H\x1c\xa4\x01\xd6\x9d\x0a}\x84\xdd\x8c\x88\
+\x0aTk&\xe5\xd8Q\xbb\xc3Am$O{yg\
+\x07_\xde\x05\x93PZ\xbc\xc5uo:i\x84N\xe2\
+L\x18\xabZE\xe6/\xd5I_\x91\xa3\x077\x0c\xe4\
+\xd9\xb4^\x91\xbf1\xed\x1b\xd3\x86\xd4c\xff\x1e\xf2\xc9\
+Y/&\x82)zn\x87S\xf4\xda\xcb\xd1\x13\x0b\x82\
+Sz\xb1\xb6\xccg\x1b!\x09\xd5\x0d\xa8\xfc[\x98X\
+\xd7\x81G%\x1a\xab\x1b\xbb\xc8\xde\xd8\x08\xaa=d\x97\
+\x8c\xa6\x1e\xac\x19\xbdX\x0f\x87\xf0\xc5\xd9=C\xb9\xd6\
+M{\xdc\xefR\x98XR\xe4.\x9c\x89\xd5\xda\x15\xb6\
+\xe2\xf0\xe5f\xa4\x95\xda\xc8\x0aP\xfc)L,\xe2\xd2\
+\x221/\xf15\x02\xc7\xab*\x95\xbf_\x22\x8b\xda\xdd\
+\xd7\xeeB\xb7k\x13\xf5f\xe0\xaf\x92\xc2\x07\xd6}\x0a\
+\x03\x0b\xbd\xa4U\x91C\xc5o\x06,\x87\x8eZ\x1dF\
+e\xe7%\x97\xcc\xa8\xaah\xb7\xfe\x08\x1c\xc9\x94\xb4\x1c\
+\x0e\x22\x11\xca\x0a\xad\xcd\xb1w\xe9My\x5c>\xcfP\
+\xc7\x81\xe6\x9am\xb7\xdbf\x09\xcd{Z\xdd\xbc\xbcu\
+|$q\xdd\xd2\xc2\xb9P\x86R\x05\x8bp\x8c\xc4A\
+\xf1I|w\x817\x93\xf1\x8b\x94\xc1\xe9\xd0x1Y\
+BDH\xf1\xd5\xa5\xa4R\x15@+1N\xa5\xa8\xaf\
+\x8cf\x10Xb\xc8\xc3\xb8\x9d\xa8DP-\x84F\xff\
+M\x80<\xc0,\x16B1x\x8c\x98\x04v\xc0\xea\x0d\
+\x80 sB\x9c\x86\xdf.\x0aS\xe1\xfb\x7f\x98\x07\x5c\
+Bf\xe0\x1c\x89A*\xd3\xc40\xae\x15G\x98b\xc4\
+h\x80a%\x19\x84\x7f\x1cdY\xc33\x9c8,\x97\
+\x09\xbcH\x8dN\x9d\x02\xd7S\xe2\xeb}\xd0O\x04\x1c\
+8\x15\xdc\xab\xf7\x0a}\xd8\xdd\xc1;\xe0\xa3\x22-\xaf\
+n|\xbd\xcef\xbb|\x13\xcf\x1e7\x9f\xd3\xdd\xe3&\
+\xc3j\x96\xfa,\x8f\x96C\x94\x89\x00\xe9\x8a\x1c\xac\xb5\
+\x04\xc3eW\xa0\xa35a\x9d\x82\x07\x8dE\xdb\x94\x03\
+J}\xff\xd4+\xe2\xf1\xaax\x8e\x95\xf1\xc8@\x1dO\
+\xa8\x90\xa7\xc6\x8f\xea\x81\xab\xc6\x0e\xae7p\xd9R\x0f\
+\xdb^\xc2\x81z\x86N\xcd\xd2P\xb5S\xab\x92\xa1\x7f\
+\x11\xb7U\xc9\xd0\xbf\xbd\xdb(\x5cJ\xba|\xe1\x05\xe5\
+L\x00[\xd2\x81\x17\x1e\x9c\x8e+\x08\x1b*p\x08\x0a\
+x\xbf<\xed%\xabc\xe3R\x06\x0d5\x18\x19K\xc1\
+\xb1\xf4\x1f:\xba\xc0\x91\xff\x059<X\x7f\x8b_\xf8\
+ \xc1\x0c\x1b\x8b)xP\xffL\xd5\xd7\xd1J\xdd\xdf\
+\xaa\xe7\xe5\xb6\xfe\xaa\xd6\x1e#@$JE\xf3\xc5\x89\
+\xad\xca5<\x1c\x5c\x91\x17\xef\xed\xcb\xbb\x1c\xde7\x14\
+U\xf5dE\xa5\x99\xf5\xbe9\xbc,A\xe3xC\x07\
+\x1c\xc4\xce\xf7\x8c\xc2D\x9c\x8a^AP\xb34C\xdd\
+/'\xd5O\xc1\xac\xdf-\x88\xfb\x12\x82\x01\xdel\xbe\
+\xa4\xc2\xdb\x8dGJ\xfc\x1fr\x00\x19\xe9\xc4\xbb5\xd4\
+\xa7\x8cbF\x02qN\x9f\xbe\xb7M\xeb\x15\xef\xb4\xea\
+\xf2\xacG\x94\xfa\xff\x9aR\x14\xcez-{,\xbf\xeb\
+P\xfd\xd9\xbf\x80\x13\xdc\xefs\xf0\x8a\x0e\x0c\xa5\xf1k\
+e\x8c\x7f3\xf7\xf0\xd4\x07W\xeb\xedm\xe0\x08K\x1a\
+\xb2\x8a\x84\xf4d\x1a\x1e8\xb5!f\xafk\x14{\xcb\
+\xd1\xc6\x9d(?\xc0\xecAr\x1dbw\x8d\xb6\x16\xa8\
+\xc8Nb\xf7\x01\x83q\x88\xdd\xf9Bff\xde\xa6\x15\
+l\xc5\x82\xc2U\xaa\xfc\x16,\xf89.\x00cg\x0c\
+\xb85Xe2\xda\x1a\x94[\xed\xb1|\x9f0\x15-\
+\x9d\xda\xa3\xbe\xea\x08\x10\xfe\xe5\x1c\x7fN\x8de9?\
+\xf9\x08\x83\x04\xe5r\x90\xa0\xc7TX\x15!LP\x1e\
+\x8a\xe8`@\x97\x9d\xb40{\xdaICH\xd6\xa5\x9f\
+\x93\x0d\x0d\xff\x8c \xb9Sn\x1d+\xf3\xdc\x9c\xd9\xa1\
+\x83\xee\x9eih\x98\x16{\xf5\xe4\xb4\xbf\xc8fK\x82\
+\x9e\x87\x96\x82\x8f\xa2\xe5\xb1s=\x85\x19\xe2\xf3r\x83\
+\xd0'r\x83w_\xec(7t\x0e\xe6\x00+\xc4\x95\
+Kg\x0er\x83\x872\x86!\x0e\x0a\xfe O\xd8\xf3\
+PT\xd2\xaf\xe1\x89\xb8\xc3\x14\xce\x04^\xe3\xb5\xb3\x8f\
+\xef\xfe\x1f2\x91g\xd1\x9do\x00\x00\
+\x00\x00\x10\xb4\
+\x1f\
+\x8b\x08\x08\xd3\x9cBb\x00\x03Gnome-f\
+s-directory.svg\x00\
+\xd5Z\xedn\x1bG\x96\xfd\xef\xa7h\xd0X$A\xc8\
+f}\x7fp$\x0f\x12\x09\xde\x0d`\xef\x06\x1b\x07\xb3\
+\x98?\x03\x9al\xda\x84)R\xa0([\xca\xab\xed\x8f\
+}\xa4}\x85=\xe7\x16I\x91R\xb7V\x1e\xc7\xd9Y\
+F1\xbb\xba\xabnU\x9d\xba\x1f\xe7\xde\xe6\xc9\x9fo\
+.\x16\xd5\xc7f}5_-O{\xbaV\xbd\xaaY\
+NV\xd3\xf9\xf2\xddi\xef\xd77/\x07\xa9W]m\
+\xc6\xcb\xe9x\xb1Z6\xa7\xbd\xe5\xaa\xf7\xe7\x17\xcfN\
+\xae>\xbe\xab0ry5\xba\x19_\xbe~}\xda{\
+\xbf\xd9\x5c\x8e\x86\xc3\xe5U=\x9e\xae\xde6\xf5du\
+1\xc4\xa3!$\x0e/.\x86\xbd\xbb\xde\x8f\xf7\xddu\
+\xbc\x9c\xce\xda;\xe2\x01:\xda;\x89\xa7=y8\xc2\
+\xf5E\xb3\x19\xef\x1fL'{\x01\x97\xd7\xebE\xbdZ\
+\xbf\x1bN'\xc3f\xd1\x5c4\xcb\xcd\x15\x84\xe8}\xdf\
+\xc9]\xdf\xc9\xba\x19o\xe6\x1f\x1b\xccu\xb1\xc2\xcc\x1c\
+\xb6\xbcz\xbe\xeb\xb9>X\xd7\xa7O\x9f\xeaOVz\
+\xe8\x9c\xf3P\x99\xa11\x03\xf4\x18\x5c\xdd.7\xe3\x9b\
+\xc1\xc18\x00\xd66\xce(\xa5\x86x\xb6\xed\xf6\x84.\
+\xa3\x9b\xc5|\xf9\xa1s\x0d\xf2\xb4W}\x9aO7\xef\
+O{.]nz\xd5\xfbf\xfe\xee\xfdf\xd7\xfa8\
+o>\xfd\xb8\x02l\xaaR\x95K\xf8\xe3\x09\xdf.p\
+\xb8+(\xc2l\xb1\xfa4\xfa8\xbf\x9a\xbf]4\x7f\
+j\x96c|\x0d\xde\x8e'\x1f\xde\xadW\xd7\xcb\xe9h\
+\xd9|\xaa\x0e\x06\xce\xa7\xa7=\xac\xcd\xf3\xfa@\x8bt\
+\xef\xc5\x09\x17\xb2\xdbU\xaf\xda\xdc^b\x82Ms\xb3\
+\x19N\xae\xaez\xd5\xbaY`$\xa7\xbdz\xdf4\x9b\
+\x22i:^\x7f\x18\x5c\xac\xa6\xcd`r}\xb5Y]\
+\x0cd3\xc3/\x94\xf5\xaeY6\xeb\xf1b/Lz\
+\xdeI[\x8c\xa9\xea\xcd\xf2\xa1\xdc\xd6%\xc9\xe8/\x10\
+\xb3\x14\xed\xda\x8byVU'\xd3fvUz\xe1\x22\
+\x04\xd7\xe3]\xdc_\x8f\xa7\xf3\xf1\xe2\x9f\xf9\x05\x8d\xad\
+\xdem/~]\xce7\x98\xf2\xfa\xaaY\xffr9\x9e\
+4\xff\xb6\xfc\xf5\xaa\xe9\xed\x1f\xbfY\x8f\x97W\xb3\xd5\
+\xfa\xe2\xb4w1\xde\xac\xe77\xdf\xaa\xdaF\x97\xfb\x8a\
+\xff\xe1\xd2\xf7\xb5\xabs\xf6\xb9\xaf\xfdw\xbdjv\x0b\
+\xcd\x88\xb5\xca\x1ag8\x83^\xb8\x5cg\xe5,p=\
+\xedYU\xabdC\xaf\x9a\x1c\xf6\x9a\x1c\xf6\xe2\xc2\xff\
+\xe3\xf5\xab\x9f\xce\xff\xa6\xfd\xdf\xb6K\xc7\xe2\x01\xd6e\
+Q\x0f\x5cx\xef\xf7J\xc6\xf6`\xb2Z\xac\xd6\xa3\xe7\
+\xc9\x9f\xfd\xf0\xf2e\xafZ\xcdfW\x0d4T\x15D\
+\xda\x04\x84V\x01J\xd9\xf3\x1f\xf2\x9d\x00\xbd\x13p2\
+<Fo{\x17:\xd0\x8c\xd7{Ho\x0d6\xa2\xea\
+l\x02\xc4\xdf\xa0am\x1d\x95\xd7\xbd\xeaV\x9f\xf6\x0c\
+\xb6h\x0c\xa4\xdf\xe8\x83'\xff\xcb1\x1c\xc0\x11:\xe1\
+\x08\xa6u7\xd6\xe6\xfc48\x82}\x92\x80\x038\x8e\
+w\xde\x0d\x076\xedc2[8B\x9dB\xde\xa2\xe1\
+j\xaf\xa3.h8[\x07\x1d\xcd\xe7\xa0\x11\xbb\xd1\xc8\
+_\x88FT\x1d\xca\xc1\xcf\xdf\x8d\xc6c\x06\x95}\xb4\
+0&\x93r\x7fP\xbe\xb6\xf7`Z\xd1Z\xd3\x0f\xb6\
+\xce:\xd0\xbe\x08\xea\x80\xa6\x93\xa2+\xa8j_\x07o\
+m\x81\xf5\xe0\x11[\xda\xd4^}\x16\xae\xa9\x13\xd7\x98\
+\xda\x8dN>O\xc2\xb5\xfd`\xbc|\xfe!p5\x88\
+5N\xdb\x82\xab\x89\xb57z\x87\xab7\xe8\x99\xb6\xd6\
+;p\xb5\x11\xa3y:\xae\xb9\x13\xd7\xd4\xee\x8b^\xca\
+\xe7)\xb8\xa6\xd8* \xe7\xb3\xb3\xcf\xb1\xde?.>\
+\xd8\x88\x1bA\x97\xf8\xa0Cm\xbd\x0e\x12\x1f\x10\x05\x9c\
+f\xf0\x9f\x1c\xf6\x9a\x1c\xf6\xba\x83\xd4\xa8NH\xb3\xfb\
+\xc2\xf8\x90\xdb\x03\xcc\xe7\xc6\x87\xdf\x13R\xed\xa8\xc3\x88\
+\x19\xa6/_Z\xd0\xd5\x80\xd7\xd6\x088\xa1\xaf\xc5\xf2\
+\xed\x16c\x9dj\xc5\xb8@\x88m\xaauH\x82p\x86\
+\x19\x04\xfa\xe3\xc9A\x9f\xc9A\x9f\x03|u\x17\xbeA\
+\xb5\x07\x9c\xfb\x1a\xd7\x89oPO\x0b8\xaa\xf6\xdd\x22\
+\xda\xcf\xd8\xda\x10:\xb4\xfe)!\xfcQo\x92U\xe4\
+\x19h\x1b\x5c\x7f\xffU\xee:\x040\xeb\xfa\xbe\xf6!\
+\xc4\xad;\xd1\x1a\x01\x9f\xc6Io\x92\xeb\x10L(\xce\
+\x84\x06a\xb2)\xbed\xf7\xe0\xc9\xae\xc4\x98\xces\xd1\
+_H\x04\x82\xee8\x97\x1f\xf3\xf9\xf1\xb9(\xefB\xb7\
+\x94\xf6\xa3\x09\xeeG},\xc5:\x1b\xbb\xa5t\x90<\
+}\xa6\x8e\xa5\x04\x15\xbb\xd5D\xb7{\xd7l\xcf\xeei\
+Z\xb2\x8f\x08\xf9}<\xecW\xd45\xeb\x8a)\xdf\x14\
+\xce\x85\xe3\xd9\xb2Nx\x87h}*\xba\x86\x86\x93\xd3\
+y\xba\xb2\xd9Ne3\xed\xba\xf2\xe4\xb8\x15L\x87\x9a\
+\x84\x1f\xed\x17\xb2N\xe7jg\xdd\x16\x0e\x04\x15\x13\xf7\
+p0\xcf\x08\xb1\xc0\x01\x0e\x1a]\xf8,\xdbs\x9dp\
+\xd8v\xdb{:\x1c\xb6\x1d\xcf/T\xb2\xdb\x92\x86\x84\
+`\xd3\x16\x0e\x0bJ\xb8c\xe1\xf0D)\xee\xd8\x22c\
+l\xd4\x9f\x93\x93\x98\xce\x14-\xd8/d\xe1\xc1u\xb1\
+\xf0\x10\xce\xce\xbe,'\x09\xc8\xbd\xa8\x107%_\xf3\
+\x8a\xd4V\x92\x92\xfd\x13\xc2aj\xa7\xec\xe7\x90<\xd3\
+\x99\x94\x04\xd7\xeeA\x9eL\x9e\x83kg\xdf_H\x9e\
+oKV\x16\x5c\x8e\xfb\x14M;xB\x81\x03\xd8\x04\
+\x13\xb7\x9c\xd7\xe9\xda;\x97?\x07\x8e\xce\x5c\x22t$\
+\xf0g\xfe\xa5z\x9avt$\xf0\xfa<\xba\xf3v\x82\
+\xf6\x10\x8e\x93!+$r\xc5R\xdft\xbc\x19\xcb\x04\
+\xbb\x86\xc7n\xb7\xa3o\xb0\xc1\x0f\x0dF\xbdm\xde\xcd\
+\x97\xa7\xdf\xfc\xf7\x7f\xfe\xd77\xec\xfb\xcd_\xfck\xf5\
+\xfa\xf2\xacy?\xff\x97\xdf\xd6\xcd/\xbf\xfd\xeb\x9b\xc9\
+o\x1f&y\xfa\xcd\xc9p?\xa6H\x18\xdd\x5c\x5cR\
+r%W\x9b\x0fD\xe9\xe7j\xb3Z->\xcc7\x95\
+\xad\xd5\xc0\xe4~5[\x8f/\x9aO\xab\xf5\x87J\xd7\
+\xe1\x0e\xbd\xdd\x92v7\xc8-\xa7\xb3\xd1\xbf\x9f\xbf\xbc\
+\xbb\xb3\xbdw\xde\x5cM\xd6\xf3\xcb\xcd|\xb5\xac\xd8\x1e\
+\xbf]]\x03\x89\xeb\xeb\xf9t\xa4\xa7\xde\x197\x9e\x0d\
+\xdeNfa\xe0&6\x0f\x92J\xb3\x81\x091\x1b\x03\
+\xcd\x9fNL\xefP\x22d^B\xc6\xcf\xeb\xd5\xf4z\
+\xd2\xac_<\xfb\x81\xc5\xd1\xea\xe7\xf3\x97\xd5b\xfev\
+=^\xdfV\xbeV\xeadx\xdc\xeb`\xf8\xf0\xde\x9a\
+~\xff\xf5\x0e\xff_\x88\xbc\x87\xea\xcd\xf8rt\xc6\xda\
+ps\x8e\xff_<3H-\x06\xf8\xd3\xea\x8d2#\
+\xfc\xe9\xf0=/\x00\xed\xfd\xae\x0f\xe4\xbc^M\xe7\xb3\
+\xdb\xbd\x1cG9&\xbfQi\xe4\xf3\xc8\xc5\xbf\x16\x11\
+\x87\xbd\xda\x97\xb2Z\xbf\x816\xee\xce\xf8\xa7\xc5\xe2\xfa\
+j\xb3\xe6\xedJ\x83\xf0\x1d,d\xd7\xf1\xe1J\xb6j\
+z\xb8\x16=\xd0\xe9\x8dN#\xe7F\xda|\xaf\xf4~\
+O\xc7\x9d\xffP\x95y\xb8\xf4\xd7\xafG\xe7\xab\xc95\
+k\xf9?\x9d\xbfx&\xa2&j2V\xd3\x94\x06S\
+;U\x037m\xdc \xa5\xd9\xdb\x81\x8fa\x12\xa6!\
++\xedg\xb2\x95{\x83\xff/\xb72\x9d\x8c\xc8$\xc7\
+p;\xf3\x8b\xf1\xbb\x86\xa5\xfe\xefo.\x16\xf0uw\
+O\xee\x8f\xd8\xcc7\x8b{Z\xb1]\xde\x0f\x8b\xcd\xfd\
+\xfb\xdb'\x8b9\x8b\xd5\xa3R\xa7\xbe\x19\xc0\x93\x8e\xaf\
+\x17\x1b,g\xb6ZL\x9b\xf5@\xd7\xe3y\xd9\xfeb\
+\xfe@\xf4\xb0U\xb6\xac\xf1\xc1Z\x1e\xc7p2\x19\xfd\
+\x85\xde\xf2\x00\xbbnH>\x03\x91\xdb\xcbFd\xae\x9b\
+\xab\xd5\xf5z\xd2\xb4\xbe\xfc\x99N.\xe6\xec9\xfce\
+3_,~\xa2\xf4c\xd7q\x00\xef\xb1K\x19n\xd7\
+}\xe0\xcf\x87\xf7\x1c\xfa\xc9\xf0\xd8\xe9C\xd3v!\xe4\
+~Pj\x96\x88D\x9f\x8eC\xce\xf1\xf0\x93\xcb\xf1\xe6\
+\xbd\x047^x\x16\x9eq\xfd\xbar\x11\x09\x81\xef\x93\
+\x08'[\x9d\xb1m\xd9\xf2\x99\x97\xca%6\x5c6\x95\
+\x033\xca\xd2\xd1\x9bP\xbd\xaa@\x0d\xac\xc5S_\xdb\
+\x14+\x9b\xea\x94\xa4\xd0\x03)\x93\x8au\x0a+\xe5\x0a\
+\xe3\x22[\x1as\xe0\xcb\x85\xcc\x96\x0d\x96\xad\xa0\xa5\xa5\
+s\x92D\xc7\xb3\xe1\x9cd=F\x07\xb6B\x96\x8e:\
+\x99J\xf5U50`d.\xf4-\xdf\x1b\xa0\xe5 \
+7\xa3eM\x92)\x95T\xf9Tp\xd22\xa5\xe6\xa7\
+\xf5\xc3\x96\xf1\xa6\x0f\x05M\xd6V\xfc\x8aX\xaa\xad5\
+\xa5\xb0\x0e\x8d\xa5\x1al'W\x8bj\x80\x1c+\xb1\xd0\
+\x12\xb1r\xd9W\xd2,(jm8\x12I\x16\x1a0\
+R,\x06`\xe5\xbe\xc6\x0c\xa6\xec\x83\xe9\x9aOe\x1b\
+\xc9\xe2\x895z\xd7@g\xc8cyL\x03h\xac\xae\
+\x14st\xe2\xb5e}\xc7\xc5\x88\xe9\xb1(\xaf\xfb\xd8\
+u\x8a\x06\xd3\xb3c.\xc9 \xafC`i3x\x5c\
+k'\xc5\xa0\x0c\xd2\xa0\x95\xc3d\x11\xd8\x02,c\xfa\
+,\x0e\xe9\x8ae\xce\xd8\xc7\xe1\xe1|0Hy\x8aI\
+\xba\xe2LY\xc48\x5cK\xd9\xae6F\xe6\xe6\x8e<\
+\x93M\xa7\xadLn\x00}9\xd9J\x8eR\x8eF\xc6\
+\x05-Gh\x83\x915\xcaYc\xa9l\x18[\xc6H\
+\xc3\x16\x01\xb2g\x9dd\x8cJl\xec\x94\x85\xd7N\x19\
+\xd1\x15\xcfU@\xa1(\x1b\x99\x09\x92\xb6\x02A\xf4\xa5\
+o\xd8\xe2\x81\x86\x17duY\x1f\x08|\xf5\xdb\xdd;\
+HX\x04lt\x84\x11\xdb\xd7c\xe0\xab\xfbW\x98Z\
+\xa9\x7f\xda\xbf\xdd,\x8d\xcd]2.\x97\x0bD\xa7o\
+\xcb\xe2d\x8f\x91EL\x1a\x12\xe4x\xcf\x14\x93/\x02\
+G\xef\xd7\xcd\xec\xb4\xf7|o]\xb7$\xaf\xd5\xcd\x9e\
+\xc2\xfe\xbd\xd3\x22I\xee\x8b\xda\x99\xef\xb6\xe2v\xa2[\
+\xa7\xdd/\xccn\xa7=\xb6\xfb\xa0vv\xefa\xce\xb1\
+o,\xad\xb82\x1a\x87\x0c\xe3\x0e\xb4{Qs\x9b\xad\
+T\x19E\x99C\xa4\xa6\x89U!\x0d\xa15\xe4\x80\xb3\
+Q5,WC\xb3T\xd1\x0f\xda\x18\x8fO\x0e4Q\
+\x8b#\xf5\x01\xb1\xaaOS\xe6\x10\x9d\xa0\x81b{*\
+%\x19d\xb7eM\xf6\xf4\xa9\xa8\x81\xa5^\x86r\xce\
+\x1e6z\xac\x06i\xab\x06\xb6\xa8\x81;P\x03\x95\x8a\
+\x1e\xc4\xa2\x07\xa6\xb8\x1e\xd1\x0a\x9d\xad\xd8e\xd1T\x93\
+r\xd9\x984|8P\x98\x19<\xf9\x08>\xfe\xdb\xe7\
+\xfb\xb7\x90\xdf\xb5c\x19\x05\xcb\x0b\xa2\xe7\x89\x1e\x5c\xa7\
+\x98\xc6\x1d*\xc7\xdb\xe5&\xf2^\x97\x1f\x991t\xcc\
+\xc8<}7\xa3\xd6\x813fG\x9f\x91\xbdT\x81\x91\
+\x9eqJ\xc3ma\xca\x88\x19C\xe6\xb5g\xfa\xdfj\
+\x14\xfeO\x0ff\x8f]\xb3\xfb\xdd\xec\x16gJ\x8f\x96\
+\xe1\x85'\xf4\x83F\xd9b\xff\x96\x8e\x10\xbe\x8b\xdeH\
+\x9cb\xa23\xf2\x86g8\x88\xf0/\x121B\xdc\x06\
+\x09\x06\x02\x19ME0}\x0e\xa5\x0bC\xff>\x87\x1a\
+\x8c\x82\xf3\x83\x17\xed\x07b\x87Ae\xae2\x15\xbb\x17\
+\xbfc*v\xd7\xdc5\xe7z\xc5\xd8\x95\xe1F4r\
+(\xf8\x06\x845\xa2\x02\x8c\xe8\x98\x13\x9f\xf2Xr\xad\
+\xb1\x10\x046\xc41\xc4/]\xfd\xf5\xf7\xf7\x1a\xb6h\
+1\x1c\xeb\x81\xd7\x88\xa1\xcd|\x89\xef\x03\xafq|\x04\
+\xc9\xde\x1d\x81\x92\x97Y)\x84\x7f\xdc#\xd09\x13r\
+\x12\x06a\x16>h\x80n\x8d\x80\x9e\x10w\x12\x19\x06\
+}\x11=LDh\xf4\x07g\xf0@1S\x87b\xa6\
+\x9dY\xc0\x04\xb4\xc3\xba\x93\x98\xf4\xa4Dz\xba\xae\xe4\
+\xe9^\x8c\xf1\x8c\x8c\x8e\xfbc\x14A\x80Sa\xb7\xbf\
+\xc8\xfd\x95 \x9b<\xa31Eh\x81k C+v\
+\xf7\xc5\xb0\x84\x00\xc1Y\xfa\xc8\xfdY+\xcc\x89\xf88\
+\xec\xcf%aK|\xbbH\xf3w\xdc\x9fC\xd0O\xc2\
+S^q\xba\x94\x03\xcf\x04\xee\xea\x8cM\xc6Y\xa0\x0a\
+M\x95\xf7\x8f\x89\xab\x84L\x83\xa5d\x84\x7f\x09\xda\xf7\
+py\x9e\xf3d2\x9b\xb5\xe2\x91w\xe4\x0e\xa2\xe1\x04\
+!@c\xcf2\x93Q\xf0\xf9\x9c%$\xde7I\xa6\
+\xf4r\xf0\x11\x94\xe3\x151\x8c`r\xc0\xd0\xf9\x02\xa1\
+&WpYh\x06:b\xffF\xfc\xb3\xc1\xe6aA\
+G\x0aR\x00Dg\xd2\x0b\x1c-;\x97*\xb6!5\
+)\x9c!\x08\x0c@%\xc3\x87i>\xcc\x05?07\
+\xe0\x17\x9c\x95\xf0\x04\xc8`\xa1Z\xf4\xc3$\x9ah\x06\
+izD?r\x87~\xf0E\x8b\xe8\x87\xf5\x0c\x03|\
+O\x96\x0c\xc9\x84e\xc9\x5c4\x16\xb3\x04x\x08iD\
+(K\xc6-\xc7\x86\x0d\xdc 8\x22N>\x80\x22\xc6\
+\xaf\x7f\xd2\x85u\xa2\x1f\xc4\x88\x83\xc5\xca\x10\xb5X\x8c\
+\xd4<\x1e\x1fM\xa1\xb2\x95\xce\xd4l\xe1\xae.\xb6\xba\
+wW\xdc\xfb\xf3\x99|\xda\xd1\xc9;tx~0X\
+\xb1c\x9e\xe3=\xc6m\xb6\x8c;\x09\xe3\xe6\x91\xa1k\
+\xc0\xfc\x08h\x1a\x86\xc4\x16\xf5\x03\xe7\x0a\x16\xf1\xa0\x05\
+'\x8b\xf4@\xc3\x17\xe0\xc8\xa3O2\x91\x05\xd2JK\
+\xbcT\xd4>[;\x1b\xd9J\xa2\x13\x90\x01?\xc4`\
+\xeay\x06\xc4\xd2A\x10\xae-\x14\x02\xb2\xd5VG\xef\
+\xd1m't{w\xfd8\xdb\xb6ml[\x1f\xb1m\
+\xdf\xca\xb6\x93\x90mq)\xb0\x02\x92mK\xb2\x8d)\
+\xee\xc8\xb69 \xdbF\xc8v\xea&\xdb\xae\x90mw\
+L\xb6\xedC\xb2]\x88h\xa0\x15\x16\xae\x8d\x14\xaa\x92\
+\xa4I\x88\xb3P\x02\x9dDKBv\x845\x96\xf4\xcc\
+\x8aqm\xf33{\x94\x9f\xb9\xa3\xfcL\x17;-\xe9\
+Y>L\xcf\xf2Qz\xe6w\xe9Y7\x9b1\xaa\xdd\
+,\x83R;\xc5CL(\xc9c\x14\x8e\xdf\x92=\x1e\
+\xaf\xce\x1c\xae\xae-y\xf4\xf7\x92G\x98\x94\x11,\x18\
+\xd3<\xb3<\xce\x07\x97\xb7\xa3\xbb_\xc5\xc7aP\x9d\
+\x09s\x86\x86\xf8V\xfb\xd4\xad\xc8\xe8\x1dK\x87If\
+/\xf6\x00\x05\x05\x99I\xf2\x92\xdf\xd0\x86\xa0u\x88\xc2\
+\xe4\x92\x89\xd1U3\xec\xea\x82\xa1\xa5\x85\xc9\xef.\xb0\
+O\xac\x03^\xd4I#\xe7\xd4\x92\xd3\xc2\x1fIJK\
+t\xa1\x86x\xa4%\x95df\x9c\xe9wH\xa4\x8bu\
+\xdc\x19\x87\xde\xba\xb2\x80\xb5\xc0\xb6aQx\x0e\xd5\xc5\
+J}\x9f6\x9aJ\x8d\x00\x9a\xc4J\x81~,\xb0\x1b\
+\xdd\xa1!f\x17\xc8\xa8\xb7\x9a\xf6n\x8d\x13\xb7\x10\xc5\
+\xb38\xfaQ\xfe\xa0\xb0/o\xae\x98\xf1\x1a#\xfe\xdd\
+f#\x09\x8a5\x0c\xf3\xd6\x97\xd4\x11\x81\x86G\x8bt\
+\x16\xff\x92\x1e\xc2\xf9\x821\xd7\xd9\xd0a\x04\xc5s.\
+\xe0\x0cv\xe8\xf0\xc7|\xe5t\x09:\xdcr\x12\x06\xe0\
+9Lr\x09#\x19\xc9B\x14\x93\xa9\xdan6\xc9C\
+\xa4\xaf\x96\x22\x83\x22?+\x13\x0e\xca\x8c\x03N\x99\x1e\
+\xb3\x1c\xd3\x85K\xda\xd1@@\x00?\x98%\xbd0\xa2\
++L\xe5J\x86\xa4%\xef\x22\x8da:G\xf7\xa8x\
+\xe9%\xb3\x8b\xc2\x88\xb0\x0fF\x8f\xac\xa9\xb9\x81{c\
+F\xa1\x99\xa9\x90\xd616{\xe6- \xfa\xec\x17\x94\
+(\x1e\x9c\xbd\xc4\x1cdw\xc0=\x1b)\x12\xc0\xbf\xa0\
+c\x8c\xc2\x908S\x02\xdc\xd8\xb2\xc7\x13\x83FrV\
+\x042\xc2\xd1\xc0\x8b\xddFU\x0c\x5cf\xabM>n\
+\xb4YLz\x90\xb0\x18\xdb\x05S\xde\xaa\x0f\x0c`\x1b\
+:\x02\x9d3+<\xd0\x1emS\x091\xa4\x04^\x5c\
+;\x0e\x93\xe6\x16$[\x04mB\xf2D{S\xe4{\
+8X6r\xa1R5\xa9\x0b6o\xa9\xfe\xcc\xa4i\
+\x898M\xe8\xbf\x96\xc8\x94@\xadZ\xb5I\x17m\x8a\
+$\x97\x89>\xc4\xe7c\x1d|%\x18\x97\xd0\x19\xc5\xb6\
+\x99R\x8am\xe7b\xdbZK,5\xce\x1co\xed>\
+G\xec\x8e\xfa\xc1\xaa\xbd\x0aYn%q\x01\xe2\xaf2\
+Uhg1$\x1e\xf87Gz<\xe7\xb71\x96a\
+\x95\xac\x1a\x9e\x80!\xdb\x98\x5c\xd4\x8e\x8b%\xa7\x82\xd3\
+\xa0\xcd\x97@h\xa8\x9f\x06X{:\x08Q\xd6H\x92\
+c\xb9IM\xd51)\x14\x85\xd5\xb1\x14\x8e8\x83)\
+\xf1I\xea\x02\xb6D\x1dV\x94\xc4\xd0@\xc0%\xdd\xf7\
+\xf6\xbe\xf5<\xba\xe5\xb8\xf3&q\xc7?\x22]\x01Z\
+\xe2L\xa2\xff\xa3\xc8/\x09%\xd3S0J\xab\xda\xf3\
+r\xfbP\xcd]\x87\x9a\xbb]\xfa\xe3\x88L\x9f?\xb8\
+U\xe2\xbd9E\x99a\xeb\x8e\xa4<\x93K\xe8\x8e\xe4\
+0\x11\xfa5(K\xdb\xd1r-\xf5>J\x09f\xcb\
+\xad\xb6Q\xde\x89u\x22K\x90m\xc4\x12c\x8d\x94\x1a\
+t\xa1OY<\x1e\x94(J\xadH~z\xa9AZ\
+\x19o\x09\x18l-}\xdd\xb4\x8c\xc8\xb2\xa0\x09\xad\xc2\
+\xee\xdb\x91\x8d\xf23^\xf3\x10\xe0\x8eBO\xf0\xe6\x0e\
+`\xfe\x84\x94\x9a\xab\xc4\xa9s\xaa2\xd3vWq\xbb\
++b\xe2\x85\x85\x96\x1c\x5c\x09O,+\x1cl76\
+\xd8\xee\x8c\xd5\xbdR\xd2\x84\xd1\x0ddH\xbf\x8c\x97\xb8\
+\x11\xa5\x1c\xad\xc4\x07\xd1\xe3\x84,X\xc2\xb3\xc4\xe0\x91\
+\xfd\xe3\x9ea\x5c\x93$\xba\x92\xdf\xfbjj\xb0\xda\x9d\
+\xdfW\xca\xf0\x095\xbd\xe5\x80?'y\xb2\x12\x1f\x14\
+\x97V\x8b\xdbw\xabe\x81\xb9\x5c\x07o{\xd5\xe5j\
+\xbe\xe4\xcf\x0a\x1cy\x89!{\x80\xbb\x00EL\xf0\x0e\
+V8\x1e\xdf6DV\xb6\x09\x8b\xa6#\xa1\x1a::\
+o[\xdd\xf3\x07\x08\xbb\xd3q~dJVDwS\
+\x92\x88\x82xB\xaeC\x98\xb6\xf0l6\xf4\x1d\xcf\xc0\
+\xc9\xfb\x0e\xe4\x1c\xaeT\xac\xbbcvG\x91\x22\x04}\
+\xc7v5\x18\xbcEz`K\xf0\xd3z[\xe1\xad\x06\
+\xfcU2\xcf\xa1\x10af`\xd8q\xa9\x93\x07z\xc5\
+\xe8\x8bGQN\x18X\x96\xc3@\xdcU\xb4QO\x13\
+9nt\xbb\xc7\x13\xbe\x06{\xf1?\xc6\xc8&\x02\xb0\
+5\x00\x00\
+\x00\x001:\
+\x1f\
+\x8b\x08\x00\x00\x00\x00\x00\x00\x00\xec}ms\x1bG\x92\
+\xe6\xe7\x9d_\xc1\xd3|\x19E\x00\xc5|\x7f\xd1\x8cw\
+c\xd6\xde\x99\xd8\x08O\xec\xc6\xcd\xee\xde\xde'\x07\x04\
+\x822ohRGR~\x99_\x7f\xdd\x00\xc9j\x08\
+j4\x80\x06d\xc9g\x94)\x03\xd5\xd9Y\x95Oe\
+eeeWU\xff\xe1\x9f~\xfc\xee\xfa\xec\xfb\xc5\xdd\
+\xfd\xd5\xed\xcd\x17/\xb0\xc0\x8b\xb3\xc5\xcd\xfc\xf6\xe2\xea\
+\xe6\xcd\x17/\xfe\xf3?\xfe4\x8d\x17g\xf7\x0f\xb3\x9b\
+\x8b\xd9\xf5\xed\xcd\xe2\x8b\x177\xb7/\xfe\xe9\x1f\x7f\xf3\
+\x87\xff1\x9d\x9e\xfdyq\xb3\xb8\x9b=\xdc\xde\xbd:\
+\xfb\xe3\xc5\xed\xeb\xc5\xd9\xbf^_\xbf\xbb\x7fXf\x9d\
+!\x15(09\xfb\xeb\x7f\xfd\xf9\xec_~|{{\
+\xf7p\xf6\xef\xd7\xef\xdeL\xff\xf5\xe6\xac,3\xffk\
+U\xe6\xab3+\x00g\xff\xfc\xee\xea\xfa\xe2LQ$\
+^\x9e\x9dM\xa7M\x11\xf7\xdf\xbf\xf9\xcd\xd9\xd9YS\
+\xbf\x9b\xfbW7\xf7_\xbc\xf8\xf6\xe1\xe1\xed\xab\xf3\xf3\
+\x9b\xfb2k\x8b+\xf3\xdb\xef\xce\xff:\xfb~\xf1\xa7\
+\xdb\xbb\xff\xb5x}\x8e\x05\xce_\xd4;f\x1f\xbea\
+Y\xd3\xa6\xfc\xff\xbaZ\xfc\xb0\xb8\xfb\x97\x1f\x1f\x167\
+m5\xee\xcfy\xfd\xf6\xab-\xb7w\xe4<GX\xbf\
+\xefb\xfe|\xe3\xdbww\xd7\xe5\xf6\xee\xcd\xf9\xc5\xfc\
+|q\xbd\xf8nq\xf3p\xdf\xd4\x12\xbb\xe4\xf3J>\
+\xbf[\xcc\x1e\xae\xbe_4\xc5|\xd7T\xa8\xbd\xb3)\
+\xfb\xb7\x1d\xe2\xbb\x8b\xcbg\xea\x1f~\xf8\xa1\xfc\xc0K\
+\x22\xcc\xccs\xa0s\xa2iC1\xbd\xff\xe9\xe6a\xf6\
+\xe3t\xfd\xd6\x06\xcc\x0f\xddJ\x00p\xde\x5c\xab\x94\xbb\
+Q\xbd\xfa\xf1\xfa\xea\xe6o\xbd\x95Y^\xed\x96\xde\xe8\
+\xd3\xdb\xe6\xef\xf9\x86\xa7\x8cr\x7f\xfb\xeen\xbe\xb8l\
+\xee\x5c\x94\x9b\xc5\xc3\xf9W\xff\xf1\xd5\xf3\xc5)\x94\x8b\
+\x87\x8b\x0e\x9b\x86\xe9\xfd|\xf6v\xb1V\xeeS\xe6\x0a\
+\xaf\xd9w\x8b\xfb\xb7\xb3\xf9\xe2\xfe\xfc)\xbf\xbd\xbf\xab\
+\xe0\xb8\xcc\xb8\xba\xf8\xe2\xc5\xd7\xb3\x9f\x16w\xdf\xac~\
+\xffpu\xf1\xf0ms\x99b\xf9\xf3\xdb\xc5\xd5\x9bo\
+\x1f\xea\xef\xef\x1bm\xf9\xe7\xdb\x1f\xbfx\x01gp\x86\
+\x14gO\x17n\x1b\xce\x97\xd7\xb7?|\xf1\xe2\xfb\xab\
+\xfb\xab\xd7\xd7\xab\xe2\x167\xb3\xe6\xeb\xf4\xf5l\xfe\xb7\
+7w\xb7\xefn\x9a\xc2n\x16?\x9cun~\x92\xea\
+U[\xdbF\xa0\xb7w\x8b\xfb\xc5\xdd\xf7\xab\xdb\x9f\x00\
+x\xf5\x5cm(L\xcbKORu/\x89\xad\xdfu\
+q;oph\x98\xbe\xb9\x9d6|\xbf\xbf\xba}w\
+?};k\x10n\xda\xf0\xef\x1b\xb4\xafg\xf7\x0d\xed\
+\xf9\x7f\xde7\x1c\xcf/f\xdf_]\x9c\x7f\xb5\xb8\xff\
+\xdb\xc3\xed\xdb\xf3\xfb\xa6\xdf\xbf\xbe\xfdq\xbd\xe4\xdbw\
+\x0fo\xdf=|\xb3h\xbb\xce\xaa\x0a\x0d\xf2\xb5\x19V\
+\x97\x97E=g\xae3X,\xcd\xc1\xf4\xf2\xeaz\xb1\
+\xaa\xe7\xf9\xb7\xb7\xdf-\xce\xdf^\xdd4\xb0\xdf\xdd6\
+_\xe6\xf7\xe7\xb7?\xfe\xf4fqs\xde\xdcq\xddb\
+y>\x9b?,\xbb\xe9\x86Loo\xde|\x90\xfd\x8f\
+\x17o\x1b}3/\xfa\xc1\xcb?\xd5\xcb\xff\xf8\x87\x8b\
+\xc5\xe5\xfd\x93V\xb4\xdf\x11\xda\xdcF\x89\x17\xb3\xbb?\
+\xdf\xcd.\xae\x9a\xae\xbb\xc6d~{}\xbd\x987\x0a\
+2\xbb\xfea\xf6\xd3\xfd\xb3J\xad\xdf\xc2\x8e\xde\xf0\xb9\
+o\xa0l\x08Z\xd8\x1f~\xban\xe4m3\xa6\x0d\x8b\
+\xc6r\xfe\xf6r\xf9\xf9\xfd2\xeb\xb6\xd1\x85\xab\x87\x9f\
+^\xe1\xef_\xac\xe8o//\xef\x17M)\xd0\xfe~\
+,\xa2\xa5d\xc7|qv~\x00kx\x9f5n\xb0\
+&\x5c\xb2>_\x97\xe5\x1f\xff\xf0,\xfc\xdbFQ\xde\
+.\xe6\xad\xadZ\xd3\xa5\x87\x9f\xda\xae\xb9N\xc6\x17\xef\
+\xa9\xed\xdbo\x9a^4U8k\x0c?\xb4\xff\xe2\x06\
+\xc1O\x8d\xc0\xed\x05X^\x87\x8d\xeb\x7f\xff\xe2\x85\xc3\
+&\x83\xf5b\xa7\xb7wWo\xae\x1a\xe5\xe4%\x91T\
+\xd2\xa5\xa8\x1d\x19\x08\xa9\x11\xf8\x97+\x1f\x9a.\xe5\xfb\
+nv\xf7\xb7\xc5\xdd\x1a\xaf\xa6\xc1\xe7\x7fk\xc9\xffx\
+ww\xfb\x03\xfeeq\xb3\x12\xa7\xe1\xbd\xb8i\xb5\xfb\
+\xdd\xc3\xed2\xe3nq\xf9\xbf[S\x03O\xbf\xfe\xbb\
+\xfez\xff\xfe\xaa\x8cO\xc6\xf1\xd5\xa3m\xfc}\xd3\x19\
+\xde\xce\x1e\xbe\xad\x1a\xd7\xfebV\x7fT\xc2&\xe7/\
+g\xad\xdb\xd0\xfc\x9d}}\xa6\xcd\xb7\xa9.\xbfN\x91\
+\x8av\xb2\x97\xb9\xcf\xa4\x7f?{\xb1\xd6\x0b\x1a\xd3r\
+=\xbd{w\xdd\xf4\xf6\xef\x177\xb7\x17\x17M'\xb8\
+\xbb\xfd\xdb\xe2\xd5oa\xf9y\xfc9]Z\xfdWX\
+\xe0\xed\xc3\xefW\xf0L\x1b_\xe7\xee\xe1\xd5M\xe3\xeb\
+<\xf5\x94f\xa0\xbf\xb9oF\xa8\xef\xbex\xd1Z\xa3\
+\xc5\xef\xa0\xc8\xcb\xb3\xbb\xdb\x87\xd9\xc3\xe2w\x18\xf0r\
+Eq\xbd\xfc\x09\x13x\xb9\xea>+~;\xc1\xbe,\
+s\x04\xf0\x95C/\xf4}\xc8\xcb\xa7\x88\xfc\x16\xe0G\
+\x83\xfd\xd7\xd1`\xff\xf5P\xb0\x0d>/\xb0\xa9\x0b\xb6\
+\x1d\x80\xf5\xd7#\xed\xc9\xd7\x87\xda\x13\xfc\xcc\xecI\xf4\
+\xda\x13*z\x08\xf0\xa3\x95\xfc\xebC\x95\x5c\xe2\xf3R\
+\xf2\x18\x80\xfb\xa8~\xc1rP\x97C\x9d\x02\xa4\xa8\xf7\
+o\xf5\x09\x964B\xc5\xda\x8f\xf7:\x06\xe1\xad\xa4\xe3\
+\xfd\x5cC\xe4\x01?\xb76\xd6>~\xae!\xb6\xbe\xcb\
+\xfe\xac\x87\xfd\x5cC\xf4\x0f\xfb\xb9\xed\x97\xd9\xf5\xcep\
+,\xe7\xba\xaf\xbe\xbd[4s\xf3\xdf\xae\xf3b\x02\x7f\
+\x86l\x9d-Q\xe8\xf2\xd2\x9b\xc7\x8c\xff\xbc\xb9zh\
+&\xdf\xef\x9aY\xd8_\xdb)\xe1\xbf\xdd4\x13\xb25\
+\x8a\xff\xa8\xca\xfb\xdd\xec\xe1\xee\xea\xc7\xdfa\x01!R\
+\x99@\x9b\x0a\x92\x01\xca\x84\xb0h\xb6_\xa6A\xc5\xd0\
+\x13_.\xf9\xcc\x1b\x05\x94,\x80\x98\x8e\xab\x9cF\xe9\
+\xa8\x98\x0b\x83\xc72\xe7r\x83\xe6r\x83\xe6\xae\x9dE\
+;\x89ar\x8f\xfel\xaa\x08\x11\xd3\x90\x8a\xbc\x96\x14\
+\x9a\xed\xa9\x22D,\xc3*\xb2\x90\x8b\xf9<\xdfc=\
+\xa0!Dl\x1f\xd6\x90\xfa{\x84\x86TX\xfa\x10\x0b\
+\x1e\xad!P<\x125\x97\x1a\xf2\xfc\x83\xb0\x80\x85\xca\
+\x84\x8b\xa4\x13\xc5bJ/WU\xc5e\xfb\xa32\xac\
+\x0a\xff\xa9\xc9p-\x8c\xc0\x18+\x12\xfa\xe2EP\x91\
+\x10\x13Z\xd1P\x87fg\x8d`b}\xb1\x15\xbb\xda\
+\xa6\xb5Q\x98\xd874b\xdf\xc9\xf5\xd9y\x0f\xeb\xdc\
+P\x89='\xd7\xa7\xd3\x97\x0aZ\xbf\xbe\xe0\x11,\x0a\
+\x22\x09\xe7\x04\x0b\xb0\x0a\xdbd\xda~C3\x9e\xb4\xd7\
+L\xc1'\xa6E\x1d\x94'S\xc9\x82B(\x1d\xe5\x89\
+\x22\x19j\xf4\xac=P\x02QA\xd2\x9e\xd5G\xa28\
+\x93\x13?\xab\x0f\x156u\xb2\xdcC}\xe0D\xb1\x15\
+\x82\x1db+\xa4m\xda7\xb6B\x88?\xeb\x98\xe3y\
+\x04\x0dQL\xafcNH\x0aMPJ@B\xa3\x12\
+\xee\x05Q\xfdS\x18s\x98HO\xa4\x22\xe4\xc3*2\
+[\xb4i\x805n\xb2\xce\xd3\xab\x08i\xbf\x8a\xf8)\
+\x8c\x08\x14\x8e0\x8f\x09\x14!0\x91\x89AA\x08\x9a\
+L\x85\x0b1\xa8\xad+\x0cd\x84<+L\x14Ie\
+$\xaa\x0a\xe3\x85\x1d\x22\xe2Ya\xac\xb8\x03Z\xfa\x93\
+\xc2pIW\x10\xd0\xdd\x15\x86I?<\xea0\x9dl\
+\xd4a:\xe1\xa83,1\xf0!]\x04\x8a\x05\x8b2\
+\xd9`_a\xd0S\x85\xaa\x19N\xef\xc23p\x7f_\
+9\x86\x83\x96\x99\xd9:\xeb^B\xd0\xc4\x16S\x9eh\
+13\xf0\x5cLeB\x05$\x18\x9a|j\x07c\x12\
+\x22\x96\x96\xc8\x8b\x06\xb2z\xed8,\xc5\xdc\x8d\xf3\xb9\
+\xe3x\x11#r[\xe5\x5cn\xd0\x5cn\xd0\xdc-\xfb\
+\x96\xa6b\xb6\xe0\x1e\xd5y\x01\x8d^\xe7\xc5\xf1\x08X\
+\x86\x9a\x02\xb5\x8en\xa6\xae\xec\x8e\xa7\x19\xb5Y\xa1i\
+,\x13D-\x8a\xc4\x93)aI\x16\xcf\xea\xbc \x16\
+&\xe3\x90g\xe7E\xbdppf>\xfb.(E\x92\
+\x95qEC\x95f\x0f\xdf\x054>lg\xc0`w\
+;\x933\xb7\xcd)\xf5\x0e\x93!\x9e]\x0cO\xc5\x0b\
+$%\x01\xdb\x8b\x8d:Z\x9f-\x03\x87\x0d6\x0a\xc2\
+\xe8[m\xda\xfc\x82\xe6\xbb\x9aK\xb0\xd8(\x22Q\x1d\
+9\xf4\xc5\x80\xc8\xbb\x97A\xbb\x9b\xe4\xd7\x19=\xacO\
+j\x97@\xa3\xd7.\xd9x7O\x0b\x99\xb3`ku\
+\xb4\x80\xa2\xa1<Z P\xf7\x94\xd5t\x80\xda\x1e\x15\
+\x5c\xdc\x15'S\xb3\xa2\x1c\x1a\x1d\x8bd\xc5\x5cM\xe2\
+\xd9\x22\xa5\x16\xb7$\xaf\x16\x09\xad\x10:\xab\xd4\xa1\x5c\
+\x0a\x0aR`\xc7\x22\xb9\x98\xc0\x1e\xf1\x06\xcd\x0fw1\
+2\xd8\xa3\x8bU7\x7f\xb8\x8b\x0d\xdf\xb7\xd97^l\
+T\xae\xafo\x91\xc1\xa6\xe2\xbb\x8e\xabz\x97\xfb\x1e*\
+\x0f\x00\xf0\xf1U\x9e4\xb7\xa8\xfc1\xdcV\x95P\x9e\
+`\x11KDY\x8e\x10\xa0h1!*\x16\x9a1A\
+r*)\xed\xb4\x98\x12\x8b\x00U]G-N\x0e\xee\
+\xcf\xba\xaeQ \xd2\xc2\xab\xae\xaf\xd1\x5cn\xd0\xdc-\
+'>(\x9c\xa6{\xc4\xd6\xd4O\x14[\xd3<Ul\
+\xcd\xf0\xe4\xfaB\xea\xfd\xfar\x8c\xe8+1\x1a\xda\x04\
+\x0b%\x0aa\xa3\x14X\x1c\x96YX\xd0\xa35\x8e\x82\
+X\xc2\xa5\xb9\xc6\xa4E\xb5\xa30B\xc5\xd0\x95\xeb\xc4\
+\x18\x09\x8a\x09>\xcdj6h.\xbb4u\x9e#`\
+\x11\xfbD\xde\x12\x07\xf4\xe5\xf5u\xb3ti\xa3I\x07\
+&\xc5\xcb\xa9\xf9\xde|apF\x9c\xba\xeb\x04\xa7u\
+\xc7\xe0\xd9U\xa3\xe8\xfaq\xfa\xec\xe6Q\xec\xd8\xf6\x9b\
+\xd0a\x985\xe3\xcao\xfe\xe1\x1f\xfe\xe1Q\xceZQ\
+\x0ck\xdd\x9f\xde\x09\xce|\xfe\xc18C\x05\xb4\x91\xb2\
+\x9f3\xf5p\xfe\xe1\xdb\xab\x87\xc5\xe6\xc4\xa9\x0b\xe8#\
+\xdfO\x03@M\xf3>\x005-\x07\xc4<\x08>M\
+\xc7\x13\xc3W\xfb\xda\x7f\xff\xe5\xeb\x7f\xfd\xea\x1b\xfaf\
+7\x88*\x9e\x15\xe7.\xfe\xb5Q\xaal\xdd\xda\xf5*\
+\xdc\x9f\xfe\xf4/\x7f\x04x\xb1\x86\x03m@T\x85\xec\
+e\xf3\xe5\x97\xef\xb3\x91\x8a\xc8\x11\x03\xdd+\xdc\xf2\x9b\
+\xbe\x19\x22'\xee\x01iJa\xe1\x8a+\x02\x15\x16\xf1\
+\xfa\x08\xc3\x8a\xb2\xda3\xc0)E\xf9qf3^\x0c\
+\x84-r\xf0>rhG\x04^\xab}\x98\xae\xd5>\
+L\x8fU{\xdcR{=B\xed\xbdPr\xad\xbc\xb6\
+?\x8fUw\xdaRw\xdf\xa7\xee\xd6\xa9\xbb\xd4\xbaG\
+\x01\x00\xaa\x95\xb7\xd5\xef\xb3\xf3\xea\xbb\x1c^{\xff\xa6\
+\xcfc\x91]<\x96\xea\x8b\x02U\xa7\x02\xa90\xc8\xb3\
+\x83\x89\x9cE5\xf4HU\x8e-U\xf6#W9W\
+\x96\xe7\x0f\x8d\x1f\xd6,\xd0\xbe\xf9\xb7\xd7\xff\xa7\xa9\xe0\
+\x92f\xf1\x7f\xdf]\xdd-.\xeaz\xfe\xfd\x97\xef?\
+\x19\xd3\xa6|X[\x13\xbe\xbe\x22\xfcY\xda\xb5J\xac\
+\xc6\xb4?\x5c\xbdz\xfb\xe6\xf2\x7f..7\xb0ZV\
+\xe1\x9b\xabZ\xf27\x0d\xe1\xea\x9e\xf3\xa7\x9bZ\xc9\xce\
+\xd7\xb869\xbf9\xa5QEb\x87\xcf\xdb\xaaVA\
+\xe8s4\xab\xb5\xfa\xf2\xf9\xd9\xd5Zy;\xada\x1d\
+_\xfd\xad\xb5\x8f#\xfbjG\x8e\x9b\x13C\xf6\xd5^\
+0\xf6\xe9\xc0S\x97\x12\x04\x0e\xdei\x03(A\xecu\
+u\xc7\x14\xa3 a\xd6\x8eP\x89>\xaeh\xf9y\x8a\
+Vg:\xfd\xb3 \xe7}\x94\xce\x8bc\xba\xd4\x9e\xe3\
+%\x02k\xf7\xd9 ir\x18\x8a\x08bh_\x1c\xa3\
+\xb3\xee\xb1\x88\x83\xa0-\xa6\xed\xf2\xc7\x8f\xd8\xc6\x9a\xee\
+\x1f\xb5\x8d\xab\xcfs\xfc6^\xe7\x8b\x9aa\xcf\xde\x0d\
+YI\x95\xae\x8f\xc3X@\x14TW\x91\x9d\x0d\x9a\xcb\
+\x0d\x9a\xc6\x11\x8a\x92\x16\xa8<\xbc\xecK%=&S\
+*\xa9\xc9\xb1\x8c\xe3\xc3\x04J\x82\xba\xd3\xc4\x8b)\x90\
+\xeb\x04\xa1\x84\x07\xf8\xcb\xe1V8\xb9%\x0eS?\x81\
+%n}\xac\xf5\x92z\xcb\x97\xfc\x04g\xeda\x8a#\
+'\xee\x95\x13\xf7\xcc\xdd\xdb\xbc\xc6\xfd<\xa2\xf9\x0b\xb3\
+\xe8oi\x97}\xba=gQF\xaa^O\xed\xee\xf5\
+b} \x8b\x05\xc3\xf5\xf4\xfa\xea\x22'\xd0\xd7\x8f\xd6\
+\x08.v\xeaF8\xf9$\xd34\xe4\x18\x8b0<\x9c\
+\xf8iQ[\x066\x89&Y\xd8\xd0\x81p\x82\x05\x8d\
+\x9b$/\xf7\x9b\xaf\x9e:,`\x1a~\xb8\xf8\xd5\x01\
+\x88f\xd8\x1f\x19<\x18\xaf\xa8=2\xa6\x12\xd4\x07\xca\
+P\x00\x019\xeb8*\xc5\x15P\xea\x03\xe5u\x9a\xcb\
+\x0d\x9aF\x0c\x82\xe2\x81\xa4\x03\x8a\x81K\x85\xc0B\x89\
+\x86\xd0\xaa\xc7\x14\xb5\xa8'\xc7\x0e\x03\xe6\xc9cB\xf4\
+y6\xfep\xe4\x88\x22?\xedN}\xdaP7\xfdB\
+B\xdd\xf4Y\x87\xba\xe93\x0eu\xd3\x09C\xdd\xa7\xef\
+\xfdN'\xeb\xfdS\x8cb\x1c\x946\x99Z\x09\xb66\
+}b\x83:\x91\xeb1\xec\xfa\x14\xb3d\xfb\x89\xc94\
+\x0e\xb0\xf0\xcd\xce\xcb\x87\xc5\xddN\xfb\x01W\xa4L\x82\
+/\x9a\xfb\x16\x7f\x9e\xbd\xbb\xbf\xbf\x9a\xdd\xfc\xf3\xf5\xbb\
+\xf6\xfe!\x0e\xed\x04\xe6\xe2\xab\xe6P\x8f\xd9\xc3\xd3)\
+D\x9c\xa2(\x9d\xa5\x00\xebL\x99\x84W\x8b\x02V%\
+\x9f\xb4=\x04\xc4\x8e\xd1\x1eT\x04\xda\x0f.\xa6\xb6\xef\
+\x90{\xe4\x89\x81!r\xfff\xce\xacs\x16.\x12n\
+T7\x83\x89\x17\xc8\x08\xaf\xc3\x0b\x16SO\xcb:\xc0\
+P\x16$V\xb2\x83\x82\x0a\x838\x1a\x97\x94\xb4hA\
+|.s\x8aE@\xdc$\xaa\xfd*\xc4a\x18\xf9\x5c\
+\xf9)r\x09\x93Lz\x92\xb0\x12\x1d\xbc\xa4\x81)c\
+x\xcbE\xc4\xf6\xcdn\x9b8\xd4\xe0\x95\x97T\xc9:\
+\xa88\x171\xb2\xe8\x0c9^\xda\xdf\x18U.(,\
+\xe68\xbcf\x9a\x99\xf9\xd9NF\xfbI\x9c`\x16\x17\
+\x0f\xe3\x09c\x81\x0ce\x7fy0BD\xe0\x83\x081\
+\xf1\xe1\x08e\x09I\xb0:\xa7\x86\xce,\xb5\xa0)@\
+G\xa9a\x08\x94\x09\x17~\x84\x85\x8aj\xf2r\xa7\x0a\
+\x14\xe3\x0c\xf2\xc9\x14-\x0b1:N,\x8b)X\xe6\
+(td\x18\x1d\x94C\xd1!-\x1e\x86V\xf5\x87\xb3\
+\x90\x05V\xfd\xa94\x9d\xb5\xf0\x5cP\x9dx\x87\xe81\
+\x96\x5c~&p8\x0a\xac\xca\xc3\x91\xe4\xccOEG\
+\xaa\x86@\xd5\x8c\xaa-K\xc5\xe0@\xb4Gm\xc1D\
+\x1e\x85\x0e\x8e\xd0\x91O\xcb\xc6$\x1a\x89\xc6D\xa0X\
+\xfb\xd1\x09S\x01\x0b\x03\x1a\x83\x90\xe4)m\x0cS\x85\
+F\x0a30Q\x1dW\xb4\x04\x03!Y\xed?@\x85\
+\x11I\x86W\x1d;\x0a\x85-\xc1\xa1\xe5\x06JQe\
+\xf5\xc9\x94d\x14\x1e\xbe\x83\xc6\xc0\xc1V\xc5W\x9d\xbe\
+\xc2\x82$\x05\x12\xb5\xc2\x92\xb9\xa4\x09\xad\xdb\x83\xa98\
+\x85\xb1\x1c4,M\xa6\xba\xeau\xab^\xb5\xca\xb5Q\
+\x18\xe9\xa0\xcd\x11\xc6C1R\xc9\x02\x86,\x1d\xcb\x9b\
+\xc5]\xac3\xe1B\x93b\x96Us*\xcdv\x8c\xb2\
+8\x9aj\xe4bJ\x8f0!\x03br;\xb5a0\
+\xb4\xf4F\x9f\xb0(\xb0\xf28\x9c\x06m\xb3\x0b\xd1\xbe\
+8\x1d{d9\xd2\x88\xd7\x8b\x02\xca\x98\x11\xea\x97o\
+\x83IYF\xd8\xe0_\xf8\x18N\xca\xe3\xc7\xf0}\xf6\
+2s\xdf^f\xdd}\x03\xd4\xdc\xe7\x17\x17\xbe\xeb\xc6\
+9\xd1\x18\xb7\x97\x19\xc7\x9f\xa0\xd1\x07\x07\xcai\xce\x02\
+`\xb4\x93\xedo\xc68\x1d\x1cp*8\xe8tp\xc8\
+\xe1;\xdd]\x88>\xd8\x1f\x5cHv\xef\x0f\xaf\xa5I\
+\xb6\xff\x86\xc0\x9c\xe7|\x86{o\x08T\x96\x18f>\
+\xbfh:)\xeey\xd2\x84\x0b\xd9\xe1p\x920~\x10\
+N\x12\xe6\xe3\x1c\x950^7\x8b\x90\xa6\x83\xe7\x8b\x8d\
+:\xea\x0ee`\x9b\x86\x9b,\x92<p\xb3\x08\xef\xdb\
+k)\x9c\x1b\x5c\x02\x08\xd3c\x8b\xb9\x5c\xcc\xda\xb4\xeb\
+~N\x11\xdc\xdd\x12_\x5c6i\x03\xcd\x11\xca\xc1\x99\
+C\xd6\x05\xd2b\xb1\xafu!\x01\xdc\xe5\xe0\x95y\xb3\
+\xdbj\xcf\xee@\x02<\xde\xd8\x0e\xfb\xc8}\x06y\xc4\
+\xb3\xdc\x913\x82\x1fq\x87y\x09ui6\xe67\xc7\
+^1(\x8c\xfd8\xe50N\xc7\x9c]n\xce]7\
+\xe7\xb7}s\xe0\xee<\xf9\xc8\x181#\xf4b\x944\
+\x8c\xd1\xd8\xb8\xc4f\x9cc3\x18\xb2\x191\xa9\xe1\x94\
+=\xb6\xabF\x1crP\x5c\xee\xb1\xcf\xdf0./h\
+\xe7\x83\xe2r\x8f\xcd\xf23\x99\xc3B\xd6Y\xefs\xc2\
+\xfa\xe6\xb9\x9d,\xa4{\x9c\x09>t\xbe\xf8\xf0Y\xa4\
+\xc3'\x9c\x0f\x1f\x87z\xf4E\xc5\x99}\xea\xef \xa3\
+\xd5\x7f\xfa\xb8\xf4g\x82$\x935u\x87\x02\x14\x9a5\
+\x90\x00\x051\xa0\x1b\xe4\x89\x02\xc6\x0a\xfe\xa4\xed\x95\xe6\
+\xc0\xe7\xaa\xeet\x8c\xe7\xaaP\x14\xc0\x98d\xcb\x83U\
+w\xe9>X\xed\x9b\x8a\x9b\x15\x22\x11\xad\x8f\x01\x95\x0a\
+a\x88\xd5\x85(\xc6\x059\x14\xb5\xa2\x97V\xc4Bl\
+\x87\x87\x0a\x1c\xc5\xc3%&SX\xb1\xf1\x1c\x11\xc1\x22\
+\xb1\xe1gt\x06\x87G&\xac\x08\xb9V\x93\x87h\xc5\
+1\xc4\xab]\x84\xc2\x86\x12\xa4V\xa37\xbe\xc2#~\
+\x06@\xe4\x94\x80\x84.\xf1\xd0|\x06Dr\xa9\x1fN\
+\xd5\xc5\xb0G9\xea\x10\xeb%\xad\xa5\xd9\x0d\x0e\x9d\xc0\
+(\x04h\x18\x01\xa0C\x110-\x22\x81HU%\x9c\
+K\x068V\x04\x88\x8bk\x98\xd4\x1e\xe2Y\xd0\x89d\
+\x8c\x5c0,W\xea\xcf$\xd7p\xcb\xa6\x8fkV\x8e\
+\xd1\xe2\xf7\xac\xf0\xb9k\xac\x9c\xd5s\xd3\xac\x1e\xeb\xf2\
+\xa8\xb1\xf3\x9a=\xaf\xd9;,0E\x0eN\xca\xe5\x02\
+S(\x8a\x1e\xea\xfb`\xb0^W&\xb6\xbeU.\xf2\
+\xcdx\xc9\x91\xb0\x88\x10r\x05 \xa2D\xa0\xf3'\x06\
+\xc3\xa0\x8d33;\xf8\xf1\x8e\x17\xf2$\xae=\x81\xc8\
+\x8au|\x03\xe5\xe2!\xa8\x5cc\xd2\xc4\x85\xc9\x91V\
+>\xd3\xdb\xbb\xc5\xec\xe2/\x8b\x87oo\xdb\xda/.\
+\xdb\x92w\xc2\x0aJ\x18\x82\x18\xb7HEAC\x8e\xe6\
+k\x116\x0c\xf3Q\xfd\x87N:RZq\x05\xef\x0c\
+\x0c\x1e%9\x99+l(\x85\x5c#\xaa\xf9p)\xae\
+\xfd\x90\x8d\x90\x96\xf2\x84\xd6\xc2\xa0\x9eif\x85E\x14\
+\xeav/\xa7\x02\x04\x81\xb5\xcf\xac\xd3\xcc\xbb4C\xee\
+*\x14\x0d4\x0a\x9d`qs7oc\x00T,\xc3\
+HV\x01\x81\x12\xe1\x91\xd1d\xb3\x16\xf0@\x9bhI\
+\xc1\x84\x941\xbd\x8c|\x10B\x91\xfc\xb5\x97u\x84\xa3\
+ \x1b\xe9|\x8c\xefeZ\x98M\xa5\xd3\xcb\xb8\xb8\x90\
+q\x9c\xa6\xa7\xf1.ve|O\x0b+A\x96V{\
+\xda\x14\xad\x98\x85D=\x86p\x9dh\xbeF4\xdc\xd7\
+H\xc3\x0c\xbc\xf5\xc4\x95\x90\xc4\xa5\xfd\x1a\xe4\xc2\x22\x13\
+(\x82`\x808a\xa0\xa2\x9c\xa2\x13\x85\x02\xaa\x9a:\
+\xaa\xa3\xe1I;ZA\xd5\xd4\xe88v \x85t\xcd\
+\xabK\xb0\xe0\xce|N\x8a\x0e\xc1\xf5~Wb\xd7#\
+\x8dT8h\xbbM\xe0H\xcfS)s\xf0\x89\xd9\x85\
+\xb7i\xdf\x98v&\x1d\xe9\x81\x07n\xb2\x1e\xf1\xc4\x8c\
+\x89}Pb]\xd8\xde\xcf\x08)\xf0dGB\x93\xe0\
+\xe1\x12\x9b\xb9\x0cI\x0c\x80&\xb1\xa7\xc4fn\xc3\x12\
+#\xcero\x89\xcd<\xc6HlV%^ck\xb1\
+\xc7I\xc4\x97s\xbc\xa4\xfd\x1f\xe3i\xf8\xe2\xf5\xfe\xc7\
+\xa42\x06W\xe6\xef\xc3\x01{\x1cd:\xa7\x99n4\
+\xe6\x188e\x97\xe3\xd4/.\xe6{+\x90\xec\xd4e\
+.._\xef\xaf@\xe2c$f\x1c\x92\xd8\x81\x1d`\
+o\x89\x99\x87%~}\xa9\x0b\x80\xbd%f\x1d!\xb1\
+\x88\x9dd\xe9\x84\x89\xc4\x89\xcc\xa2\x89\xc2\x18\x89a\xd8\
+,\x06.x\xb1\xb7\xc4`\xc3\x12s\xf8\xc5\xc6\x03\x94\
+a\x89!N}\xc0\xac\x99Y\xdf\x9ee;\xca#8\
+NSR\x9eX\xc9`\x14\xc5\xf6\xdc\xff\xa9\x17\x0f\x94\
+\xb4\xf6\x07\x16U\xc3\xe0\xd6\xa5\x22*A\x868\x99Z\
+\x16\xcb0\xb4\x97\x1f\xf0\xe4\xdf\xce.\xbaG\xd0:\x00\
+kg\x03\x12p\xd1\x80\x1a\xdaY'\xb9|\x9f\xe4n\
+I\xa1\x9a\x12#v\x94\xf6;o}*\x89P\x1f^\
+\xd7\x90rD\x9d%J\xdd\x1b\xb4K8\xf5\xe8\x95\x17\
+\xeb\xad\xbcR\x9d\xaab\x81\x94\xcc\xc7\xda\xaer\x100\
+S\xaa\x1f\xae\x05#\x91\xb9\xfbT\x19\xc0Cw\x91\xab\
+\x7f.7\xbc\x83\xd0\x8b\x86CZ\xb4Z\xc7\x01&J\
+/?&R&\xc7\xd8y\x07E\x90\x12\x98&P\x0c\
+\x93U\xe2e?.{\xb7\x0dYD\xac\xb5\x8d\x03d\
+~L\x9c\x1c>u\x9c\xb8\xa4!H\x85)\x0a\xb1\xa6\
+\xf8G\x85\x89~\x85\xa9\xe3\xb8\xf5\xfat\xf5\x91\x9cj\
+\xe1V\xd6\xba\x03\xb4>\xfa\xd9\xb8\xbaZ\xea\x91\xc8(\
+\xfe\xf1-\xae\x09\xf7J$uY\xb8Q\x01\x0eG\xea\
+F\xc2\x12\xd9\xf1Q\xac\x0d\x92VP(N\x91\xa1G\
+\xd1\x9f\x09\x1f\xdd\x88\x9aK\xaf\xf0\x01\x9d\x88M\x814\
+w\xad\xd1S(\x1a`\xe2U\x07\xb3$\x0bs]\xe8\
+\x15Q\x8cY\xe2\x93\x1aF)p\x9f\xf3\x8b\xac\xb3B\
+\x89\xac$\x9b\xad\xafP\x12q7\xaa2S\x01\xcaP\
+\xf9x\x1211\x1e\xc7>\x91\x11\x1b\xe5\x04\xeb\xca\x15\
+\xcdB\xa4\x01\xde=C0\x9d\x09k\xcbW\x9a'\x14\
+\xc4\x0aQ\x84\xe6GE\x81\x8f\x84\x023Q\x8bBI\
+TH\xe9\xa0\x81\xa8\xc5\xcd<*\x1aX $\xa1z\
+\x90\x8c\x85;4\xb4\xb2\xe0\x8c\xa4G\x06\x83\x89\xbd\x17\
+\x0c\xe1z\x04\x97AIQR\xac\xa6\x0b\xb4\x04\x83\xd6\
+\x11\xa4!\xaa:<\x8c\xe3\xc7\xb3C\xe4\x01\xfb\xf4W\
+(\x02\x04V-\x95I\x017\x94\xfaP\xa3\xd2TW\
+\x1fJ\x1a\x11\xca\x91O\xa8\xa2L\xe8=\xe8\x1a\xf2\x08\
+\x0b\xce\x0a\x82@\x84N\xa0\x04\x05\x98\xf9rS\x92\x89\
+KZ\xfb5\xc2\x98\xc9'\x98XD\x8cxbTH\
+9\xc1\x86\xdc\x8fv\xaeg\x5c@\xd0]\xeb3z)\
+\xe9)\x10\xf5\x99$\x17U$\xac\xcf\xfa\x15\x8b&e\
+\xd6w1q\x11\x177Z\x02<\xbf\xbez\xfb\xef\x8f\
+\xaf\x81\x7f\xfa\xbe=\x88\xffD\xc5HY\xdf!\xbf\xfe\
+\xbe\xf7W\xef\xee\xae\x7f\xf7\xdbu\x94\x19\x99_\xfe\xbe\
+\xbdZ\xa3\x00\x8f\xef~_\xbd^\x7f\xfd=\xf0V$\
+\x15\x00B\x9e.\xb4\xed\xd9\xb4\xfc\xab\xbb\xdbw7\x17\
+\xdd\xcc\xffs{u\xb3\x9e\xfb\xddU\xb3\xf4\xed\xfa\xaa\
+\xf9\xdf\xab\xe7\xdb/f\xf7\xdf\xce\xee\xeef?=\x96\
+VsW1\x88WRP\x1f\xb3k\x0d\xbb/\xc3\x9f\
+bHq6\xd1\x09yIa\xd7\xb3/\x9b\xdc\x94\x92\
+\xaen\xcf\xb9x6%\xd0\xd2\xfc\x99O\x18K`\xa0\
+[\x93\x89T\xd2\x81l\xc2Y4\xc8\x8dZ\x06DP\
+\xd2]b\x22^42\x93\xdbL)\xa1\xa9\x13\x8dB\
+D\x86\x8fy\x06I>\xb1(\xee)\x90g_w\xb3\
+\xd3J\x10\x81`\xcb\xb6f#@\x09g\x8f6\x13\x0b\
+\xabx\x9b)\x05)\xa8\xcdD/\x0cM\xaa\x99-_\
+T*h\x19]\xdaV^\x89\x82\x18\xc8]\x16(R\
+\xc2\xd8\xb8\x16\xd6\xcd\xac\x15\xfb\xba\x9b]\xc5\xf8r\x95\
+m\xc8\xf2,1\xad\xca\x92T\xc1.4\xa8V\x14\xc8\
+d\x1dF4)dN\xf4\x0c96\x99.E\xd2\x91\
+\x9f\x1aG\xf2\x83\xed\xf8\xf7\xb3\xb5\xf6\x15.\x12\x08(\
+K\xc6\x1e\x85\xd3!\x9f\xb3\xb5\xcd\xa4\x02\x12\xe8\x13\xd1\
+\x92\xe8-[\xf3\x82\x1e\x81\x13\x85\xe2\xe1\xa4\xb6\xaa\x17\
+\x156\xe7\x9c\xa8\x16\xcd\xb0hE\xc8\x92\x94\x0d\xa9a\
+\x09f\x0eZe\xb6w-\x9b\x17\x12\x80\x96p\x11d\
+Q'\xc0N\xf6\x97\x8f\xd9(n\xcf,\xb0\xcd\xf4\x82\
+\xa0\xfaT\x94g\x9bG\x85R \xde\xabVz\x11\x12\
+\xa7G\x01\x22\xb5\xcd\xc4\x02\xae\xf1,)\x7f\x18\x95\xbf\
+w\xc2u\xad\x05`\x5cy>\xddu\xc47\xb7\x17\x8b\
+v-qcJ\xe6\xf7\xf3\xe5\xe7\xfe\xf1\xbfUd\xef\
+\xc9\x92\x9c\xdc\xccW\x034\xde\xccC\x914\x04\xb5\x09\
+\x14\x11\xc8\xa0lm\xbb\xb3\x81\xa6L\xa6O\xc6\xdf&\
+\xd3\xcc\x82\x82\xe2\x93Xzj\xa0\xb1\x8b\x99w/\xca\
+\xcc\x8e\xef\x9by\xac\xeb\xd5\x22\x0a\x08\x05\xe4\xc70\xf3\
+\xac\xd5\xcc\xef\xd8\xbe\x9b\xda\xe1k\x864\xbd0a\xe0\
+\xba\x1d\x05/j\x88\xd4\xb5\xa3\x88^<\x11\xb8kG\
+\x91\xb4\xa8\xaa\xd1{\x06\x80\xb9\xa8Q\xc8\x9a\xb1`/\
+\x22\x12V\x0d\xe9*\x13S\x8c\xd7\x0ci\xcd\xee\x1a\xd2\
+\x9a\xbdn\xdb\x98K\x0a\xbcg\x05)KDp\xae\x1b\
+R\x93\xe2\xaa\xc4\xbanH\x0d\x8a\x03Kj\x97\x85\xb6\
+\xd5\x8dL\xad\x85u3\xbb\x86\xb4f\xaf\x1bRm\xab\
+\x1bn\xda\xb5\xa4\x86\x05\x02\xdc\xb5\x0b\x8ee\x81\x08\x00\
+\x5c\x07\xd2\xad\x84\x92\x06v-ix\x81 I\xaf\x96\
+\xb46\xe4\x9a!\xad\xd9\xebv4\xa1d\x90ht\xed\
+hH1fe\xadv\xd4\xb3\xb8\x09\xba\xad\x1b,\x97\
+\x92J\xae\x1d3\xeaT\x14\x15=\xab\x19]f\x8az\
+\xb2\xac\x9bQ$*\xa8\xce\xde5\xa3\x8f\xd9\x00H]\
+3\x8a\x98\xc5\x12\xc2\xbav\x14QJx\x8a\xbcgG\
+\x11\x0a @\xac\xd9Q\xe0b\x86h\xd5\x90VT\xd6\
+\xec\xe8\xae\xbeS~~\xbe\xd3\xcfe\xe5\xf3\xa3Zy\
+\xc4\xe2d\xc1\xfa\xf3\x9a\xf9Op%;\x11\xd9\xff\xf7\
+K\xb9\x8d\xf2\x98K\xb9\xc7\x9f\xaa\x99O[K\xd3I\
+'\xc8\x5c\x00\x80&\x04%\xdc\xa8\x95t\x85\xae\x16\xec\
+\xbc\xf6w\x0a\x85P\xa2>x\x8cg\x81\x9f\x84\xe9y\
+#vP\xff\xfa\x0d\xa7\xaf\x90\xbf\xdax\xca\xdc\xf7Z\
+\xe7\x90~V\xac\x7f\xfc\x12\xbf|\x9fUaU\xee\xe7\
+g\xfd\xfc\xe0O\xa9\x10\x1b\xfc\x0cS\xfa\xf9\xc5\x16~\
+\x10_\x02l\xf0s\xf5~~\x09\xdb\xf8\xf9\x1f7\xf8\
+=\x9a\xdc\xaa4\xfb\xac\x16\x03\xea\xd9\x88\x09\xb2\xc7y\
+#\x17\x8b\xc5\xd0\x81\x00]\xd6\xb6\xc7.wZ\xc4\xe2\
+bc\xe5\xc4\x88\xf5q\x06\x87\xecK5:\xee\xf9\x08\
+]\xd62\xe2\xf8\x95\xd1p\xa4\xf6H\x9c\xbe\xbb\xc4\xc6\
+\x8b\xdcC\xe2\xcc\x9fQb\x91<@\x01Dq\x10\x8e\
+\xe1Wm\xf7\xb0\xe6qo\xf1\x86\xdf\x8f\xda\x99L\xce\
+\xb2}g\xb2I\xbb1\x99\x8a\xb5\x1f\xef\xdb\x9e\x8c\x14\
+\xcd%\x93Cw'C\xbd\xfb\xa0\xad\xc9u\x1b#\x14\
+$P\xab\x11g.\xa8\x09\xack\xcfp\x1d\xa1z>\
+\x95fp}\x0f(\xb7\x9f\xa7\x01\x950St\x82X\
+\xdc&R2I\xc8\xc6\x9c,\xca1\xbc\x97\xc7\x0f?\
+\x03P\xa2\x10\x12*\xd6G&Z\xd4\xa2\x0b\x8feI\
+b\x88X\xdbe\xc0I\xf6)\xc0\x03\xa3\xe1\xf9\x05+\
+\x8f\xc7 :lx\xb0\xf2H\xa1\xf0.<\x89m\xad\
+\x1d\xac\xbb\xd4\xa0\xbev\xba\xbd\xee\xa1$;l\x96&\
+\x98\xc0(\xd1mPt\x01\xf8e\x8a.#D\x1f\x9c\
+s\xd5m:\x89%@\xa13]U/\xa0\xa1(u\
+\x02\x96\x05T\x03\xf2y\xde\xa0\x5c\x8c\x81\x86gcE\
+1Sr\xe2\x85\x15\x938\x17\xd3\x98L\xa3\x801\x09\
+k\xfb\x0b\x0b\xb9\x13\xa2L\xa6\x04\x85H\x9c\xac\xf9\xca\
+%\xd3\x8c\xf3\xf0I\x1b\xb1\xd3p\xd7\x918\x10D.\
+\xea\x81\xa4uo\xa1\x14e$\xad\x93X\xec\x92\xcc\xdf\
+'\x99wI\x06\x80\xb4\xa2\xe0\x19\x96\x8f\xd3[EH\
+\xf4\xc9\xd4\xb8\xb4\xe0\x19N\xa6L%\x1d\x10u\x14b\
+'5\xc5i\x85\x8dA;+\x97\xa2\x18\x18v\xb6\x11\
+2\x15P\x0c\xab\xbdN\xb8x&\x90\x1dh\x8b\xbd\xa8\
+\x98\x99\xf9q\xec\xb1\xed\xb2\xb1]\x0eV*T\xeb\xe8\
+\x14Z\x81\xb0\xaaR\x8e\xc5]\x89\xean\xd5.\xc5\xbc\
+K1\x1cD0\x85@i\x90\x22\xc3TX\x9e\xad\x9e\
+\x04\x98!\x13.\x9c@\x086A/\x0c\x09\xd6\x5cV\
+/\x96L\xe3:\xa5\x0d\x1bu\x8b<\xd8\xa8\xb7pd\
+pU\xb1\xb4\xc2\xceH\xdc\x89\x92A\x11\xf2\xea\x0cU\
+\x9aA\x15CwR\x89\xc7n\x08\xee\x84\xe1\x13+\xaa\
+J)6\x99JIAs\xc0Q:6l\xfd\x15\xf1\
+\x97\xa3c\xccG\xd61\x1a\xd61;X\xc7(J\x0a\
+%\xd55Jb\x85HS\xde\x8b\xc4rx5c\x8e\
+\xc5\xc8\x04\xe4@\x1d\xc3\x12b\xe4\xca\xc7\xd21\x18\xd6\
+1\xe0_\x07\xc7\x8a\x98\xf0.\x83\xe3\xaf\x96\xbf\x17?\
+\x1ck\xf9\x7f\xf9\xbd\x92c\x97^\xf9\xab\xe5\xef\xd31\
+\xd6SX\xfecz\x05G\xf2T\xc6\xe8\x18\x8d\xf4.\
+~\xf9N>\xed\xe4\xe4\xff:\xfd\xde\xda\x17IFL\
+\xbf\x07\xfa\xe2p\xe8e|\x94g\x8c\xfe\xe0\x88\xf0\xcd\
+\xe7-:\xc6IE\x1f\x1f\x86\x1d\x1f\x14\x1e\x83\x8e\x8e\
+\x8a\xe6\x9e\x1e\x9d\xf1O\x14F\xc13\xe2I\xc9/_\
+y O\x81\xce\xcfi.8$N\x19\xe3w-N\
+\xe1\xdc\xd9V\x07Q\x1cD\xb8\xcadU *\x0e\x80\
+\xa6c\x04\xb2a\x81\x92\x0f\x15\x88\xb2h0j\xe7\xdd\
+\xc6Y \x08\xbd6\x92[1[?!\x0a\xad\xa0\x90\
+\xd1\x18\xb9v\x18\xcd\xc3\x0e\x95+l\xe9\xe8zV\xe5\
+\x83\x22\x18\xa8TMNafJ\xc4G\xb9*\xcd(\
+\xb9h\x84E\xfeT;\x15|\x9c\xa7G\xc1E\x11C\
+\xad\xbbu\x89\x04\x11\xb3\xba\xafV\xc8\x05\xb53\x89\x84\
+\xa2\x16.8|\xf2\x06QF\xda\xd3\xfb\xff\x1d\xc0\x01\
+'S\xa2\x92\x14\x99\xb6\xfc\x8a\x9e\x181bq_p\
+\xfc\xfa\x9chO\xc4\xec\x84\xa10)\x9a\xec\x150\x91\
+\x82\x99a^\xb5\x8c:$\xf3\x0d\x92y\x87d\xf8%\
+\x14f@*\x13(\xda\xa8S\xd1 \x01\xf5\x89\x14q\
+\x0a\xf5\x98 Iaso\xb0\xc3\xc8Bi\xce\xa3\xb0\
+\x93a\xec\x98\x0f\xc4\xceKZt\xb0\xe3(\x22l\xdc\
+\x85\xae*\xda\xfa\xe5y\xbd<\xd4/\x059Z@\xa0\
+\xa0\x01\x9bf\x03\x9f\x00'!O\xb8\xb0\x87\xa1\xb5!\
+1(\x98,\x18\xcb\xd7\x9d \xaa\xe68\xb5\xa3a\xbb\
+F\xf6iE.\xba\x07\xb9\xc8\xa83\xb5\x83a\xe7\xa8\
+\xc4x\xcd\x89,\x8a\xeeI]\xd5\x09\x85\xc8\xba\xd8}\
+\x9df\xde\xa5\x19\xd4!\xcaTamu\xc8\x15(1\
+&X@\xdd\x89\xad\xf9\x16L\xc0m\x97\xc3\xa5M\x83\
+\x9cL)\x8a\x90\x1b\xe0\x18\x15\xa2\x1d\xfcM\x8e_-\
+\xd7\x07\xb1\xb3],\xd7\xaf\x0f@z\xf1\x93]\x1e\x80\
+\xfc\x8a_/~\xf4\x09/\x1d\x18a\xd7\x09v\x09\xc8\
+\xff\xaa\x17}z\x811\xe2\xa1\xcfg\x88\x9f\x1e\x1b?\
+\xfb\x84\x97K\x9c\xde\xadB9\xce3\xd7\xfaF\xa9\xee\
+K\xa3\x1e\x8d\xd6\xb7\x8b\xab7\xdf6\xf4X4\x83L\
+Wp>\xee\xc9\xca\xc4\xe7-t\xcb\xdd\x9f-]\x02\
+'\x03\xae\xea\xb6\xa4\x13\xc54\x05\xdfZ\x95\x8dWT\
+\xf5\xbfd\x8a\xe4\x83/\xa8\xc2\xc2\xe2\xa6\xabh\xd1V\
+\xa1\xeb\x1b\xaaz\xa4\xb7\xc0\xf7\xa4G\xf5\x14\xeaJ\x0f\
+\x1e\xe9(\x86\xeb\xe2\x93\x88\x07u\xc5G\x22N<\x9a\
+\xf8\x16\xdc\xf3~.&L\x94\xf1\xd2+\xf3\x91\xea\xaa\
+\xac=M\x05\x06\xc0\xaa\xe3+\xcbiG\xaa,g\xf4\
+\x00+\xb9_E\xd7\x0d\xd5\x90\xf5\xc4`\xc3U\xb0h\
+\x8aE\x8c\xd2|1]\xd9P\xa3e\x1c\xc4\x0bi\xec\
+\xea\x04\xd7\xa3\x0f\x88R\xbf\xc1o\x9e\xc7\x80\xa9\x81G\
+a\xad\xd3j\xb6,JBO\x1b/I\xb9\x00F\xdd\
+\x18\x5c\xefy\x1e\x17\xc8\xb4p\xf6\xbc\xc17F\xeeN\
+\xea\xd9\x9c\x84p\xf8N\xad\xcaw\xf6\xea\xbb\xab\x8b\x7f\
+o6\x9d?\xfc\xb5\xb9\xb8gE\x879\x14\x1d\xc1c\
+P\xac?-?;\xed\xb1\x1c\x1eyB&Ss\xa9\
+\x0f\x87\xcc\xa5\x86\x0f8\x8a;s\xd4\xd0|\xd6\xa0|\
+\xbdz\xf0\x13\xa1D\xf9\xa0\xf2P\xa2\xf5\x03@\xd6\xa6\
+\xa1S\xa2{\x14\x88\x12\xa3\x9f5c\x9b\x86X\x17D\
+\x92^\xfe\xb4E\x83\xe4\xa2M\x83\xfc\xd9E\x01\x00\xfb\
+\xcb\xa0\xfe2\x14\xda4X\x86\x10Cff\x7f\x19\xb2\
+\xa5\x0co\xd3p\x19l\xb1\xbd\x8c-\xcdl\xd2\xa6\xe1\
+2$\x07\xe4\xd8\xd2\xde\xaem\x1a.\xc3@{\xf9\xf3\
+\x96\xf6\x8eY\x9b\x86\xf9;\xe2V\x19xK{\xcf\xb8\
+M\xc3e\x04\xcaV\x9d\xe2\xfe\xf6\xbe\xbf\xba\xfe~q\
+7\x5cD\x22n/\xc2\x06_\x1f>\x5c\x86\xf0v\xa8\
+b\x0bT\x97M\x1a.C\xd1%<\xa2\xb7\x0c\xd9\xd2\
+\xe4)m\x1a.\x83I\xb7\xca!\xb4Em\xe7m\x1a\
+.C\x153s\x8b\x1c\xb2\xa5\xfbi\x9b\x86\xcb\x08Q\
+\x01\xf3\xfe2\xb6\xb4\xb9R\x9b\x06\xcb0\x08\x03\x00\xea\
+/cK\x9b\x0b\xb7i\xb8\x0cA\xdb\xaa\xbb\x8a\xfde\
+p\xb6i\xb8\x8c\xa4\xd0 \xea/\x83\xb7\x94\xc1\xc3B\
+8\xa7omp\xd5\xd1c_dDfz\x7f\x19\xbe\
+\xa5\x03\xda,fC\x9d\xa3\xe7\xdd;\xe3\x0e!\x19\xf6\
+~\xeeV\xaf\xa4T1\xeb\xac]\xa4\x92ikk\x17\
+\xa3\xb8\x93R\xdf\xb2\xc1p\xfb\xb0O\x13\x1e[\xac_\
+\xb6\xe9P\x9f&b\xdba\x18\xde\xa6\xc1v\x05I\xe9\
+\xe7O\xfd\xfc_g\x9b\x06\xf9#H\xf6\xf3\x97-:\
+\xb3h\xd30\x7fa\xc2$\xee/\xc3\xb6\x94\x91M\x1a\
+\x96\x81P\xad\x9f\x7fl\xd3\xfb6\x0d\xf3\xb7\xb4m\x83\
+B\xe4\x96v6o\xd3\xb0o\x99\xb1\x85?\x1d\x81\x7f\
+n\xf5]#\xb7\xf9\x95\xd2\xa4]|\xbe\xe0\xed8m\
+ik\xc16\x0d\x97\x91\xaa\xdb\xcb\xd86\x8f\xd06\xed\
+\xe0\x04dDj\xbf-\x05\x18m\xaf\xd5!M\x89\xfb\
+\xcb\xa0-e,\xda4\x5cFJ\xf4\xf3\xdf\xd6\xde\x97\
+m\xdaap\xd6\xed\x0e\x00lio\x876\x0d\x97\x91\
+\xbc\xdd\x07\x87\xd8R\xc6\xeb6\xed0>kl\x1d\x9f\
+\x11\xb6\x94q\xd9\xa6\xe12\x06lH\x22\x8d\xd4)<\
+U\xec\xc1#\x0b\x12\x81o\x89@\x98{\x09w\xc0c\
+\xc6!\xc2\xa8g\xcc6\x19=\x99\x07\xd82h\x98\x8d\
+6\xb8\xc8\x12\xfd\xfcc\xcb\xc0Mm\xdaa\xe2\xc8\xfd\
+\xc6\xdca\xcb\xa07\x1b\x9e\xf9\x1a\xe5\xd6\x1e\x11N[\
+\x0a\xc06\x0d{\xacJ\xb1uD\xf2-\x8d\x9c\x17m\
+\xfa\x84=V+@,u\xe9\x9dbA`\xa5\xf7<\
+V\xe6\xe8\xf5XUz\xb4_m\x8b[\xf9\xbaM\x07\
+{\xac\xbaE1)\xda\xb4\xcb\xe8\xc9\xdbF\x850\x18\
+\xd1\xae\xa3O\xb2K9\xe4\x5c\xb7\xb4\xdd\x03\xe7\xec3\
+\xa1\xf9\xee\xa7\x9c\xc5\xee\xb1\xf3\xd7\x97\x97\xba\x11\x93\x1f\
+q\xc8\x19K\x1c\x80\x06+\xec\x8e\xc6\xbc\xa93~\xa0\
+\xca=\x9ci\x9f3\xce\xe4\xe2\xa8`\x18\x1e\x02\x86\xf1\
+\xee`,..\xebK<\x07U\x83M{\xd0\x18f\
+=\xfe\x00<\x0e;\x04\x8e\x88S\x9d\x80\xc8\x09?\xe7\
+y\x80\x00\x07\xc0!@{h\xc7\xffk\xef\xda\x9a\x9c\
+8\xb2\xf4\xf3\xfaWt\xf0F\xacH\xce\xfd\x82YG\
+@\xdbLL\x84\xbd;\xb1~\xd8G\xa2\x01\xc10\x03\
+\xb4\xa3il\xe3_\xbfu\xaa$\x95J\xa8\xbaQ\xd3\
+=`\x8f%\xe3V~Yu\xf2\x9c\x93\xe7\x96\xa9K\
+\xea\xf3\xe7\x07\xfc\x1e \xc8\x8c:fI_\xa7:\xc8\
+\xae\xa2\x0e:\xc0:\xca\xbf\x0fP\x07\xc3a\xa1\xe3z\
+\xd5\xc1q\x15u\x08\x1c\xa2\x0e\xc2\x03\xd4!\x07ER\
+\xc2\xebUG\xf2U\xd4\x91zS\xb1C\xd2\xffE\xb1\
+c^\xe6\x19])\xf0\xe5\xe7\x92\xebs\xdc]\xef_\
+r\xfe.+|\xc4\xa9\xd2\xc2)\xfc\xf4b\xca\xf8!\
+e\xff\x04\xdbP\xbcJ\x9aU\xe4\x83\x5c\xe5\x04\x9e}\
+\xacm(\xce\xa4\xd9y\xd2\xd7\xe8*fy\x05u\x98\
+\xe3M\xb9\x8a9\x7f\xa9\xaeb\x91\x97\x9e\xce\x0d\xcf\x9f\
+\x07\x1c\xe8*\x96X,\x1fN\x19.s\x15K\xfe\x04\
+\xdbp\xbcJ\xcd\xe1H7e\x1b\x8e\xf2\x19K0g\
+\xbe\x8a:Xo\xaa\x04s\xf6\xc3J\xb0k\xfeIf\
+\x06\xcc\xdf\xe5O2_\xfd\xbc\x8f\xf1\x84\x04\x7f<{\
+\xac\x82_\xcbI\xaew0[\xd6\xa3~\xdc\xe4\xf6\xf8\
+\xa5I\xd8:P\x1d\xa91\x88o\xf6}8\x9bj\xe8\
+5\x89\x18\x17\x88\xe8\xb7\xae\xe3\xc0\x87pbY\xffB\
+A``P}\xab\xa7\x19\x07\xd5\x17a\xad\x05[=\
+\x0f\x93\x7fz\xa2\xe8\xd5\x15\x90\x8fgS\x81\xe7\x01\xe7\
+M\xa64\x96q\xbb\xbad\xe8\x80\xadcq\xc3\x9a\xb2\
+\x8e\x87\xe2\xa6tm\xb3k\x12\x03a^\x8e\xc0C\xe4\
+\xd0-\x11x\xc2}\x98N\xb8\xaf\xf65q\x8f\x17p\
+\xcf\xd7\xc0\xbd7J\x1e\x99\xd7j^\x17\xeft\x01\xef\
+z\x08\xef\xb6\xc5\xbb\x8c\xbcG\x03\x00\x1a\x99\xb7\xbe}\
+\xddg\xc8:\xfa\x9c\x18N\xbca\x92\xbd!b\x1an\
+xUn\xcc$\x80\x1b\x8e\x11\xb0\x83Ds\xc5\xf3x\
+\xcdGL\xe5\x90\xad\x9e-\x9f\xbf\xfd\xe6\xfex\xd6\xdb\
+\xc9\xeb\xe5\xb3\x9f_.\x7f\x99\x88\xf8\xcb\xcb7\xcfN\
+\x7f\xb9\xb3\xfe\x88\xbe\x85\xdf\xda\xd7\xbf\xfe`>\x10\xed\
+d\xb2\x93\x17\xcb\xee`\xa9\xee\x9a\xff\xba\xb5\xa7k\x95\
+A\xfbwr\x06\xbe\xdf\xbd\xec\x8e\x9c;}\xb5\xec\xe2\
+\xdc\xd3eQ\x5cw\x9cuC\xec\xc1O\x9f\xfc\xa3\x9b\
+\x82}=ON\xcf\x9e-\xcf6#\xe0\x04\xee\xb3y\
+7C\xd6?\xfa\x8e\xe2g\x0d\x0fE\xcff\xb2\x9e\x9c\
+\xbc]N\x99\xff\xed\xf4\xb4\x0b\xc1\xd4T\x89\x90u\xda\
+9|~\xbb)\x09\xa4L\xbb*\xdc\x1a5\xf5\x88\xa0\
+\xbd\xaa\xac\xd8l\xb0\xb7\xeb}\x91\xf5\x1d\x82\xef\xce\xce\
+\xbay\xbe\xf3\xea\xe4\xfd\xb2\xe3\xfc\xfb\xfa\xf3x\x95\xc0\
+\xff~\xfaK\xa9\xad\xb2\xe1\xbb\xe5\x08\x95\x8a\xdf\x8e\xe0\
+H\xab\xef\xb9\xf3\xe4\xc9\xe9\xaf\xab\xde\xad\x12\xa6\x08\x8d\
+u\xd3_\xba\xd6\xa3\xb3\xd3\xd7\x7f;[\x82\xd8\x8f\xcb\
+\xf3\xf3\x97o^\x94\x03\xd4c\xa8\x17~}_\xb7\xac\
+\xa0\xa1\x90\xa9\x1a\xe3\xa7_'\xd0\xfbm\xe8m7W\
+\x1d\x9d\xd2^33\xdf\xedx\xffA\xc7z\xbe\x00\x00\
+j\xbezp\xf9\xfa\xa7\xbd\xf8\x96\xb1\xd1x\xe9\x16*\
+#\xba\x1a\xb1\x1bp\x8d\xbd9y\xf2j9\xea\xb2\x1e\
+?\xbf|\xfb\xb2\x03\x07lp\xaa\x0f\xdd\xe9\x9b\xaf\xee\
+\xbf^\x9e\x9f<;9?Y\x9b\xd3\xba\xdd\xed\x18|\
+\xf5\x1f\xf7\xdf\xbc\xbd\xf7\xf6\xf9/\xdd\xab\xe1\xe5\xab\x97\
+O\x97o\xab56{\x17_\x17\xbc\xa5\xc4\xe9\xd7f\
+(\xc6/\xc7\x8c\xcd\xfe\xce\xbf~\xdb\x01\x8c\xe6\xc2\xc4\
+R,\xd60w7\xe3LF\xfd\xf1\xf4\xdd\xd9\xd3\xe5\
+\xc3:)\xee\xed\x15\x86,\xd7\xea\x1c\xf1\xf5\xf7\xcb\xe7\
+\xe7\xff\xd3O\xee\xa8\x98\xd50\xa7?\x9dw\xa7\xce\xfd\
+\xd6\x7f\xe5ce4\xa3\xa8\xe7'g/\x96\xe7k\xb8\
+\xe8M\x91\x92e`\xa3\xfb\x06\xc8\xf2QW\x03\x9dt\
+\xac\xfc\xed\xbf\xffB24J\x9b+Z[h\xddP\
+\xd5`7\xa3\x9d\xa3\x94\xffmfp\xf8&IM\xea\
+\xf3\x93W+\x0f\xef\xee8_\x1e\xaf\xcc\xe7Q\xff\xe8\
+\xf17\xa7?lz\xc6\xeb\xcby\xea,\xbd\x93\xa7#\
+\x95\x9e\x8b\xd2\xf2\x94\x8f\x82\x0b\x1c\x05\xbd\x82\xfchi\
+\xceJ\x8a\x7fDE\x14<o%\xd57x\xca\xfd\xb3\
+g\xcf\xef\xfd\xef\xb7\x8f\xbaCO\x9f\xde\xfb\xbf\xd3\xb3\
+\x7f\x0e\xeeX\xe8\xc9\x93\xd3w\x9d2\xba\xc8\xf5\xec\xe9\
+\xbd\xe7\xc3x/_w\x91\xfd\xee\xdb\x9f_\xfc\xe7\xaf\
+\xaf_\xdd\xbf;v\xd45\x15\xac\xea\xf65\x81\xb3\xe5\
+\xdbr\x83\xce\xa9\xff~~\xfe\xd3\xbd\xbbw\x7f\xea\x0e\
+kl\xa7g/\xba\xfb\xba\xff^\xbf\xac\x1b\xee\xfex\
+\xde\x1d\xd4\xf8\xd7\xa2;\xb8\xfd\x8a\x8f\xee\xd5\x86\xb5\xbb\
+k/\xff\xe6\xab\xafv\x16\x11\xd3c\xd5\xfc\xf1AE\
+\xf9\xe5\xe9\xbd\x14?\xacs\xa7\xab\xe5\xd9]I\xf6o\
+7\xa9\xae\xba\xb0*\xe6\xbdD\x1a\xa0\xe2\x1c%\x0c\xe3\
+\xc8)\xa5\x98\xa7\xa4\x1as\x94T\xe3\xf8AL(\x11\
+\xccSJ\x939J\x91\x0f\x1e\x1d\xf3\x94\x12\xcdRB\
+V\x9f\xa3\xf4\x90\x8f\x8f\xbf\xdd\xe1I\xe6)9\xcfR\
+\xfaV\xbe\xa3\xefrJi^\xe3\x04\x99s\x94\xbe;\
+~D\x8ftJ)\xe6)\x09\xeb\x1c\xa5G\x9d\x9a\x1e\
+M\xad\x80a\x9e\x92\x13\xcdR\xea\x1fSJ\x83\xc6w\
+\xdf\xeb\xbf\xcc1\xe20\xc7\xc8\xeb\xf6\x0ceU\xf5\xa9\
+$>\xe8d\xff\x9c#\x9b\xa1\xe8\xbc-\xc6\x838\x9e\
+\xd0\x13\x5c\xd3\x9b\x99{J\xb3\x88\xf9\xf9\xaf\xe7\x94\xa2\
+\xcf\xcf\x1a\x1b\xcf\xcf\x7f=\xa7\x94\xf2\xba\xe6_q\x96\
+\x922\x1e\xc2\x93\xf2,\xa5\x10\x99\xf7\x93\x87\x1f\xe8I\
+u\x86\x12\xce\x12\xc1\xcemyJ\xc4\xe7\x0c{f+\
+t\xdc\x0f\xb9\xf9M\x8f\xbdj:`\xd6\x8c\x0e\xd5P\
+\xb9\x8b\xf2\x94\x88\xac44\xd1\xc7\xa5\x1aBx|c\
+\xfb)\x9f\xae\x98\xbc\x06\xc58^M1\xf8\xf8\x86\xb6\
+j>Y-n\x87\xaa\x85\x93\x1frL\x89\xc4\xd5\xd4\
+B\x8fol\x17\xe80\xc5D\xc4\x83\x98\xa6\xe4\x98\x0f\
+Z\x00N\xb3\x94\x8e\xe3\xbb\xc8)%\x9d\xa7d>\x1b\
+H\x1f<|p\xfc`\x87\x92_P\x04\x89\xcfQ:\
+\xd6c;\x96)\xa5\x0b\xd2\x04\xa2\xce\x16A\x0f\xbb\xe7\
+4\xb8\xe7|\x9a`@\x9a\x0f\xee\xf5\x9cR\x9a\xd7\xb8\
+\xe0\x05\xa9\xcb\xbb\xa7M)\xcdk\x5c\xcds\x96\xd2\xb7\
+\xf5\x9cR\x9a\xd38\x1e\xe0c\x993\xeeq\xff\xc5\xfa\
+\xb2\x17lR\xbf\x1aP?M0n\xd8T\x8b}\xf3\
+\x8d\xe0\x0e\xf9\xe1\x88\xb9E\x00\x18/\xd0\x1axB\xe0\
+\xd1\xf7\xdb(f\x03\x8b\xf0\x0e\x0dn\x9a\xb6\x86\xd2\xbb\
+c\xf1C\x1a\xd2\x16T\x80\xb1v@\xb4P/@\x1b\
+`\xdf\x96\xa0,2\x88\xde\x92e\x11\xd6\x1c\x1dX:\
+:\xd5\xcf\x90\x85\xb1Pa\x85(-B[0O\x01\
+\x86\x02\x8aR\xdde\x884\xc3\xfc\x88\xee\x1c\xc0\xbfy\
+\xd3\xaeEj$\x08\xf5\xa7\xee\xaf\x7f<`\xf7\x08\xfe\
+ai<\x9c\xd8?\xbcfw\xba\xbd\xde\xea\xda\xf7\x83\
+\xd1\x82f\xe6\xeb\xf3\x1eX\x1d\x85\x17w([j0\
+s\x7f\x9e<\x13*\xcb\x9a\xcc\xb8kt\xfalY\x0b\
+\xcc.v=]=j\xc2\xfb\xc9\xbc\xfc\xd2kbj\
+N_\x0c\x16\x92,\x87\xea\x8b\x04oO\xec\xaeF\x02\
+`\x5c 7\x05a\xb6\x9a\xba\x11%l&l\xd4\xa1\
+edN\x03\xe4\x1a6\xd8\x9d\xc36\x14\xda\x08\x87\xdb\
+\xc4d\x00:\xbc\x07 2\x8a:\x124.\xc3\xf36\
+P)\xc0!\x0b \xc4\xbe\x99\xd4\xdb%\xd0V\x0b\xbd\
+\xb8\x18\xda\x88\xba\x9f\xe3\x11-c\x9b\xf8\x9ci\xca\xc1\
+38z\xacl\xebM\x1b\x97\x08\xf5\x07\xa3\x1b\x7f\xd5\
+F\xc4\x96\x99=\xe2\xc50\x94v\x90\x8e\x8e\xab\xed\xb0\
+ik\x94\xa8C\x0b\x9bG\x16\xa2akD\xb0\x1c+\
+\xa9%\xca\xc2c\xa5\xa8\xe4F\x91\xd5&\xc4j\xe9\xc2\
+{\xb2\x9b\xd7\x83\x8e\x92K\xc1\xba\xcb\xde\xaa\xbd\xeb\x85\
+e5\x83\x91LKg\x22\xd7\xdb\x1f\xa7\xb0\x19\x9di\
+n\xeb,+\x85\xe3\xc2[fh\x19O\x13\x83 Y\
+#\xd1\x80\x90\xdd\x17\xd1\x84\x93\xd9\xb6\x91\x0c\x18D\xf1\
+\x96.@\xb1@\x88\xc6\x8a\x14\x1d\xa9\x09\x18\xc9\xa4E\
+\x1dY\x5c;(Kz\xec\x90Tr\xc5\x0dR\x8a\xb1\
+\x16\x89.\xde\x832\xcc\x13J\xa2\xe2\x80T[\x00\xcd\
+\xa8oSjra\x1a\xec =\x86H\xcc\xa5u\xa8\
+!\x89k~ j\xd2\x0b\xd24\xb2\x9a\x9aH\xb7\x02\
+\xbc\x1a&J\xce\x9b&\x87\x83\xea@\xc3\xccc\x91\x0d\
+P\xb2\xb4\xb4F\xa2\x89sZ\x14@\x94\xcc\x1d\x02\xcc\
+\xc8t\x14\xd9,\x12bD\xbe\x9f*\xfb\x80\x19\xa7\xdb\
+;Q\xa47\x80\x17\x93hv\xd9\x9b\xfa\xeb\xec\x87\xe9\
+<f\xbf\xd1\x10V\x06\xbe\x08[\xd9u\x01f=\xc0\
+le\xbe\xc0\xbaH>\x8aX$w\x17T\x87X\x8f\
+t\xb8T\xa3\x7fe\xd5WS\x8cu\xc7\x91G\xdd_\
+i\xb0\xc8USch\x0e\xfe4\x1dx\xd0\xca4D\
+XA\xfbC.~=\xaam\x9a\xf2\x89\x12\xcbQ>\
+VT\x8f,\xa0\xf7ao\x22\xb2H\xe9E\x95A\xd4\
+H\xef\x11+Q\xfbln\x83\xa8%\x0ch\xddQ\xb2\
+\x11b\xc9V\xe4\xae \xaa\xf3\x15E\xe5CD5\xe5\
+\x02X\xbcD\x0d\xf0Ej/\xaa\x968%\xfc\x80\xd4\
+\xff\xab\xd1\xbf\xb2\xbe\xafD\xad;\xfaY\x15\x1ffU\
+\xf9\x0a\xa2\x06\x5cQT\x9d\x11u\x87\x85\xe3] \xa1\
+\x0dqG\x8f\xb2\xa6\xac.A\xc0\x0e\xcch\xba\xcb\xf0\
+\xae\xe2v\x81\x8cF\xbd\xadG\xactSq\xce:p\
+w\xdcis\x8f&\x10pW\x15\x17\x88\xef\x83\xf8w\
+_\xec\xad`Yp;\xba\xbb-\x08*>\xd7\xdf\xbd\
+\x01\xe7\xcd\xe9\x9b\xe5\x10\x5c\xce\xde\xbdZ\xde[\xfe\xbc\
+\xec\x92H}\xf0\xf3\xec\xf4\x9f\xcbM\x0d34\x87w\
+\xb1\xef\xe1O\xbf\xae\x81\xe2\xae{\xf7\xf3\xde\x93w\xe7\
+\xe7\xdb\xd8?\xba\xdf\x95\xea~_\xaa+nV\xe84\
+t\x15\xf7\x93\x82\xbc\xd6\xfes\xa1\x8c\xfa\xbc\xe0\x0b\xe4\
+\xfa\xab\xd0\x99\xfag\xa8\xf7\xae\xbb>\xfe\xf7]g\x8c\
+\xc6j\xaa\xa3+\xefv\xf9\xbfME|\x03\xcb\x89\xcf\
+\xb4\xfc\xba\xbc\x98as\xbd\xfd\xc7\xaa\xd9\xa7f\x9b7\
+\xa12\xdf\xad\xff\xfe\xac\xe0\xbf\xa8\x0a~\x9c\x7f\xc3\xcb\
+\xe7\xbf\x1e\x9b\x02~\xcc\x81\xc6\xb7>\xbe\xa0\x1f\xed\xe7\
+\xc0\x02\x8a\xcd\xb3w\xc0]\xc6\xf5\xd6\x97\xb9\x1c(M\
+]]\xd8\xc0\xbd\xc2\xfa\xad\xcf\xb1 \xb8qay\xaf\
+\xb0y\xebK\x5c\x12\xcc\x0b{\x81\x80\xbaO@\xc7[\
+\xbf\xcb\x85\xc0\xa4\x8e\xff\xfc\x95\xf9e\x0b\x87\xa9\xcey\
+\x87\xfb\xb1\x93\x0c\xa8\xae\x1f\x08\x916&3\xb3E\xc5\
+\xcfI\xb3\xc8~\x09\xab\x91\xaf\xb6\xde\x1c\xe8?%\xba\
+\xf3\xe5\x90W'O\x96\xafV\x9f\x1c=\xaa\xbe}u\
+\xd5\x9d2*\xa8g\xd5\x0f\xdcx\xd1\x07\xec\xa8\xe5\xea\
+\x10\xe9\xf7\xdf\x86\xfdMU\x8aV\xb2\xad\xf2\x0b\x9b\xa3\
+\x98\x84,\xef\xd0d\xe7\x86X\xf4\xb2\xc0\x9f\xa0dL\
+\xf8\xf5T\x9d\xa3\xc0\x17h\xd78v\xb5[\x14M3\
+\xd3>J\xc7g\xf5\xd1\xc85\xda+\xfc\xd5\xcb\xee\xcf\
+=Yc\xcfN\xba\xcf:\x9f\x9d\x9d\xbc\x1fX\x1b\xd0\
+\x8b\xabYe\xbe=\xf5\xef\xf0\x16U\x80\xd0\x10\x9a\x00\
+R\xd2\xbbf\x03\xb2d\xad\xd8\x8cn\x08X\x183\xa7\
+\x0f\xf5}5\xc3\xb5\xac\xb0Z\x06\xd5\xeah\x904U\
+@\x91\x85a3\x16\xa4\xec\xb0\x85Q\xf3\x100\xee\x1b\
+\x15$\xea\xaf6BM\xf6\xed\xbb\xac\xb1i8\xae\xe8\
+zC\xaaQ\x861Q\xab9\xa4\x0c\x07H\xe3\x0e\xb3\
+\x06aX\xb9\xb31\x93\xb0\xf7Xy\x8eV\xd9\xe1\x18\
+>\xdc\xaa\xc9=\x8f\x89\x0dA\xc1\xeaBiINZ\
+E-\x00\x98P\x87qS\x0e\xc2\xa3\xacF\xe7h\xf5\
+\xa2\x88#\xe9\xd0\xf0h`C\xa3\xb7P\x1b\x84\xaf\xd1\
+(\x13\xd8\x17\xae-\x91\xc3K\xa7f\xae\xc6\x059\xa7\
++\x17\xf3\x14H\xfd\x8d\x026\x08TiO\x92\xb9J\
+-pr\x89Z\x9ef&k\xd4\x80b\xe8U\x0e\xc8\
+\x22\xa0\xf4Qu\x1d7\x1b\xe6\x80e \xb40\x19\xfa\
+HV\xecVC\xaa\xfc\x1c\x89I\xf6\xf2\x81o\x06\xb5\
+\x85B\xaf\x87m\xe6\x14\xd7\x0a\xdb\x08\xb1P\xea\xf5*\
+6\x8aZ\xd8\xa0\xff\x84\xd6\xdf\xb5Q\x93dK\xf6U\
+\x83\xb3Y\xac\x1bX\xb1}P\xb9\xa0/j\x16\xd0Q\
+\xa9\xa6F5\x8c:\x8c[x\x04a\xd1\xf5\x9e#\xe4\
+a\xf6\x0b\x01\xe0p\xee\x8d\xd2\x11\xa3&?\xd5\x99\xca\
+ Z\x9a\x91\xf3h\xdb{\xf6\x89X17\xe0\xf9%\
+'\xb1v-tv\xaeS.\x1a\xe4\xd0q\x07\x1b\x22\
+\x06\x92\xdc>4\xf9\x12\x1b\xdc\xfe\xe8XR\xde=\x0d\
+$\xf1/\x09 \xd3@QN\xe3 Y\xe5zH\xaa\
+\xac\xd6\x0e\xa8\xa8\xde\x17\xfa\xc8i\x89e\x19u\xa1\x16\
+\xc6\x22\x8e\xa9\xbdk\xba(vP\x92+A\xbf'\xe0\
+\xe5\x10\x84}\xf40\x16\xc0\xb2S\xb4f\x04\x99T\x01\
+D\x14\xdd\xec\x08u\x08\xe7\x5cq\xc4\x12$'\x98\x94\
+\x1d1y\xdd=\xa2\xda\x18\x01\xd5\xb7)ZS\x89\x08\
+\xdf\x1e\xdb\x1b\x9b\x19\x97en\xd8D\xcc\x06\xce\xc8\x83\
+S{\x04K.\x90\xa0!\x84D)\xc3!\x01{\x88\
+\xd2@\xfa\xd5\xad (\xf77\xab\x07\x944)\xc5\x0f\
+B\xa1\xd1\xc2\xa0\x0a`k@.\xa4\x1dV\x83s\xac\
+03\xf3>P9X\xd4jmDK\xd1\x09\x046\
+AC\x9b \x80\xc4\x04\xf5l(\xe1\xa8\x13T\xa2\x85\
+brN\xd1\x8au\x8cN\x13\x94\xbd\x05\x82\x88OP\
+\xa4F\xc9AYr\x15\xeahT\xee\x86\xe4lz\x94\
+\xda\x14\x1c4\x16X\xfe\x19\xa1Z\xf2kbT\x81\xdb\
+0-Hu\xd8107G+\x13\x09\xf14\xaah\
+ \x22fe_\x12F\x94\xfbL\xee\xb7\xa3\x1f*B\
+\x19\xf41\x82\xb0\x91\x04A\xc94\xa2BMTSK\
+&\x8b\x96\x92\x01\xb2\x85\x1e\x17J\xe9\x06\xba\x85\x9a7\
+wR\x89\xc2\x92\x8d\x93Gl\xa2\xa7\x11\x1d\xf5\x7f\xbc\
+\x8dZ\x03\xb0\xa0\x18\xc7)L\xc2\xc9|\xe4h\xc4\xb6\
+\xb9\x9fA\x11\xac\xb9\x92\xf4\x097\x1a\x91\xa0\xe0\x96\xe5\
+\x7f\xbfO+\xfb\xc2\x1e\x03]\xbe.\x0a\xfdz\xf6\x0d\
+46\xfa\x92C\xd7|\xedc\x81\x97\xd4>\xae\xa99\
+\xd4>\x12\xe6\xa5R\x06\x02\x95\xc2(8%\xaa\x0e1\
+5\xd2\x82\x5cWz'-\xa5{\xac2_%\xa0\x9e\
+\xb0V\xd7PpD@jT\xa63\x0f\x8f,L,\
+I\xfbL\xe7I\xa8yC\x99\xce\x14o0\xd3\xcd\x17\
+\xcd\xf3\xc9O\xfeL~\x7f&\xbf\x9bI~!\xcd,\
+\xc5\xae7#\x16\xda\x81\x98\x7f\xe6\xc9\x7f\x93<\xa9\x90\
+c\xac\xdb\xed\xb4\xd0\x9d]2\x1c3\x89\xe3\x87\x99\xc4\
+\xe1\xc3Lb\xb9\x93I\x1cv3\x89\xebn&q\xfd\
+0\x93\xb8~\x98I\x5cv3\x89\xcb\x07\x99\xc4\xe9\xc3\
+L\xe28f\x92\xd9\x18\xcf\x17\xd6\x07\xf6\xbb\xaf\x0f.\
+\xcf\x93w\xc6D\x89\xd8\xdc\x16H\xd1\x22\x5c\xf8*\x8b\
+\xc18Lc\xd7\xbdO9\xda1I\x93\x95\xb7\x80s\
+y\x8b7\xab\xcd7\x17a\xce\x0d\x00\xd1H5\xb0\x03\
+\xa6\xb7\xecq%b\xe2\x02/|'\xe7\xf2\xba\xe2\x22\
+\x93s\xf8}\x9a\x9c\x13\xed\x94\xa4\x88\xadwx\xcd\xf5\
+6\xca\xf6\xe6Z\xacv\xc9pks-\xc6\xbd\xb5z\
+-\xfde\xd0?p\xdca\x1bo\xdd\xdaa\xcb\xed\x0d\
+6\xe4\x06\x8c\xd4!\x9b]\x1b\xd4\x86j\x05mv\x93\
+\xa6\xfc\xed\x0b\x9c\x0e\xfa)^\x94\xcdBh\xde\x8b.\
+0\x02\xfaR\xbch\xd7i\xe6\xdcj\xf4\xa2\x01\xf0h\
+\xae\x98\xa1k@\xb22\x14\x1a\xedz\xe2\xfe\xa5\x1d\xc1\
+\x9c\xd6\x0e\xde\xc0\xde\x1f\xa8\x5cn\xefh\xad\x01\x8a\xb3\
+\xfa\x15\xb57\xef\x1a\x9c6u\x8da\xdb\xb0\xf6:\xa9\
+\xdf\xe5\x9c\xee\xce\xc2\xf0Wb\xd5a{\x15\x94\xf2\xd1\
+\xa6\x09-\x093E\x17w\xb21\xd8P\x05\xb6L\x12\
+\xb2\xbc=_\x1bD\xea'\xf2}Csg\x9fa\xee\
+>]\xd1\x87gS\x8f/9\x0e(c\x09h\xdc\x12\
+\xd9\xb8\xf6\xc1\x19\x1b\x93*\xf5\x8b9w\x12\xa7#\x8e\
+\xa6\x12\xea\xd1\x87pN\x009\x12k\xa0\x89\xe6\x1b\x8c\
+\xab\x9e\xc6\xa6NA\xb8\x85\xba\xb6d \xcc\x1a\x87\x0c\
+3t`F\xb3%\x84\x13_-\xc2D\xfa\xe1\xf3\x11\
+\xf0\xc5\xceGXs\xac\x9cG\xd0\xd8\x83p\x1b\x93h\
+!\xe2\x93\xeb4\x1b\x1bR\xe4P\x8a\x130\xc1\xb0.\
+\xb7\x00\x8f\x9a\x0c0T\xebS\xa6\x81\x22\xf3\x91hs\
+\xa3D\x1f\xb1\x9a\xf4h\xc6(l[(W\x0eL\xd7\
+\x1e\xc3 \xef\x98$m\x14\xe1Z3\xc9\xa9\x80\xf2\x07\
+\xb0\xa3D\xb8\x82\x1d\xd1\xef\xcc\xaf)\x1a\x12e`_\
+?\x99\x1by\xcdQ\x88\x93da\x96AaG\xac\xcd\
+\xd4\xb5\x90$\x02\x8b\x9aKjh)\xe2\x85:\x889\
+\x17=W\xa0,\x885\x89\xcb8\xa4\x0f\xa5\xfd\xb8B\
+\x22\xb1Z\xe1z\x14Je\x8e\xe9\xa0\x13T\xb29$\
+jNP\x83\x06J\x1e}\x01IM\x18\xb2\x0c\x11\x1b\
+9\x93\xe2\x91{\x0b\xc2@*sgB3\xe9\x17\x90\
+\x988\xc8\x8d\xac\x0e\xabO\x88\xa0B\x9a\xd4\x95\x14\x0a\
+)G\xc1\x0dB\x98\xa2\xa7\x08FAW\xb0\xa4\xa3\x1f\
+\xf6+\xcb\x9b\x00)p\x99.\x90\xa8\xea\x11gC'\
+\xd5,\x0c\x01\x1d\xfdH\xa0\xa5:\x04\xf7\x98\x92Z\xef\
+6\xd9\xaa\x97\xa2PH\x87\xa4\x81\x22*Y\x8f1\xb8\
+\xe9\x9e\x91\xf7Zvn>\xcbQ\xff\xea\x87`\xbe\xf9\
+\x7f\xaf\xd7Z\xe4TM\x01\x00\
+\x00\x00\x17\x91\
+\x1f\
+\x8b\x08\x00\x00\x00\x00\x00\x00\x00\xed=io\xe3F\x96\
+\xdf\xfbWp\x9d/i\xacH\xd5}\xb8\x8f\x01f\x82\
+\x04\x016X`&\xc1\xcc\xb7\x80\x96([\x1bY2\
+$\xb9-\xf7\xaf\xdf\xf7\x8aW\x91,Q\x94,\xbb\x03\
+\xc7v:\xa6\xaa^]\xaf\xde\xcd\xaa\xa7\x8f\x7f\xdb\xdd\
+.\xa2/\xd9z3_-?]\xd0\x84\x5cD\xd9r\
+\xb2\x9a\xce\x97\xd7\x9f.~\xfb\xf5\xc7\xd8\x5cD\x9bm\
+\xba\x9c\xa6\x8b\xd52\xfbt\xb1\x5c]\xfc\xed\xf3\xbb\x8f\
+\xff\x15\xc7\xd1?\xd6Y\xba\xcd\xa6\xd1\xc3|{\x13\xfd\
+\xbc\xfcc3I\xef\xb2\xe8\xfb\x9b\xed\xf6\xeer<~\
+xxH\xe6Ea\xb2Z_\x8f\xdfGq\xfc\xf9\xdd\
+\xbb\x8f\x9b/\xd7\xef\xa2(\x82q\x97\x9b\xcb\xe9\xe4\xd3\
+E\xd1\xe0\xee~\xbdp\x80\xd3\xc98[d\xb7\xd9r\
+\xbb\x19\xd3\x84\x8e/j\xf0I\x0d>\xc1\xd1\xe7_\xb2\
+\xc9\xea\xf6v\xb5\xdc\xb8\x96\xcb\xcdw\x1e\xf0z:\xab\
+\xa0q6\x0f\xdc\x01Qk\xed\x98\xb01c1@\xc4\
+\x9b\xc7\xe56\xdd\xc5\xcd\xa60\xc7PSF\x08\x19C\
+]\x0d9\x0c\xear\xb7\x00T\xec\x9d\x8c\xab\xf5G\x07\
+\xf4\xdf\xc1\xbf\xaaAY\x90lV\xf7\xebI6\x83\x96\
+Y\xb2\xcc\xb6\xe3\x1f~\xfd\xa1\xaa\x8cI2\xddN\xbd\
+nJ\xec7\xc6ml\xc92\xbd\xcd6w\xe9$\xdb\
+\x8c\xcbr\xd7\xfea>\xdd\xde\x0050\xe3>\xded\
+\xf3\xeb\x9bm\xfdy>\xfdt\x01\xeb\xe3\x82\xe4\x9f\xcb\
+\x19\x5cVtD\x12\xcer\xd0\xa2[\xbfJ\x98\x84F\
+k\xab\x15q \x0d\xe2kt7]Mp\x86\x9f.\
+\xbe\xaeV\xb7\xf1\xea~\x9b\xc0\xa8_\x9b\xfdB\xe9\xdd\
+\xfd\xf6\xf7l\xb7\xcd\x96y7\xb00o\x95\xae\xda\xb5\
+K\x1aK\xac:\xc8vw\xab\xf56\x9e\xcd\x17Y>\
+\xd8\xf8fu\x9b\x8d\xef\xe6KX\xf6z\x05\x0f\x93\xcd\
+x\xb5{\xbc\xce\x96\xf1|\x02\x946\x86v\x8b\xf4j\
+\x91\x8d\xd3\xc9v\xee\x0an\xd3\xc5b,\xccN\x98q\
+5\xd5\xbb\xe5up\xa0\xdd\xf4\x0e6\x96r\x19\xac}\
+\xacj?C\xf5\xc7i6\xdb X\x8es\xfc\xc4\x05\
+%\xae\x0ej\x81l\xb2t\xfd\xd3:\x9d\xce\x81Yr\
+8\xaf\xcb\xc9j\xb1\xc8&\xb0o\xe9\xe2!}\xdc\x5c\
+T\x00\xd0U\xb3)\xb7T\x15\x9dB\xb7\x9b\xed\xea\xae\
+\x84\x85\xdd\xd8>.\x00+X\x18C\x8f\xab\xf5\xe5w\
+\xf4\x8aI\xce?\xb8\xa2\x15\x90\xcf|\xfbxI?\x5c\
+\xd4mV\xb3\xd9&\x83\x81\x89W\xe6\x88\x06Z\xc0X\
+ R\xc6O\x1b\x8d\x84F\xa3\xc1\xd1\x18\xa9F\xfb8\
+n.\xfbiht\x5c{y\xb3\xce@\xca|\xf7\x9f\
+_\xfe\xe7\xe7\x1f~\xb7\xbf\xc7\xaa\x07\xcd\xccP#\xaa\
+\xfa\xeb\xa2\xf4\xb7\xe5|\x0br\xe4~\x93\xad\xff\x85\xbc\
+\xf8\xbf\xcb\xdf6Y\x07\xea\xd7u\xba\xdc\x00\xe3\xdf~\
+\xba\xd8\xe2\xe3\x02D\xef\xf7\xcc&Vq%\xed(\x06\
+\x92I\x94b\xf2}=?\x0a(\x11\x168\xd1\xaa\x1a\
+5\x8fPjd\xc2\xb9\x10\xa4\x9e\xcb\x8e\x01\xac\x14\xd8\
+\x83\xf1`\x99\x0f[aq\x0f\xbe`\xb9\x01,\x0c[\
+%\xce\xd5\x8a\x84\x0bn\x08o\xcc\x95\x12\x06\xc5B7\
+\xa6jT\x22\xb9\x94\xd66\xa6\x0a\x1dHD\x86\xd9G\
+\xca!\xb2\x0c\x10\x9c\x9c\xe0o\x0fy\x97\xc4\xa5X,\
+\xf7\x93r\x09\xa5\x85f\xf1\x81!\xb3\xd9\x8cd\xb3!\
+\x1c\x95p\xca\xadPz\xd8\xc0$\xa6\xfd\x03\xa7iz\
+\x95\xdaA\x03k\x06RB)\xbb\x7f\xe0\x10#\x86\xf0\
+\x0b['\xe9\x10\xfc\x0a\x0f\xbf\x7f\x06\xe6=\x96\xac\x03\
+\xcc{\x9bn\xd7\xf3\xdd\xf74\xb1\xf8c\xe8\x88\xc0\xaf\
+\xca?Y\x09|\xccXB8cz\x14+N\x81!\
+-\xb3/\xc0\xd38\xd1t\xf1,hlv\x8dh4\
+gC#\xe0\xca\xfd\x18\x87\xc6\xe2\x13\x05,\x0a\x05\xeb\
+\xe6\x14\x1f\xa9\x86\xd5r]#q\xb2C$\x22\x00\xf3\
+$\xc8\xe4\x11\x0d\x1c\x82]\xd0\xbat\x16\x84\x9d\x05a\
+\xd7\x9f.\x10\xb1`\xf9\x1c\x12\x95G\xa1\xb5\xd9\x87\x16\
+\x96\xf5S\xa9%OG\xef\x1e\x15c\x90\xf0(o\xd3\
+\xa3N(Umj\xd4Fs\xd3\xa6F\x93hi\x0c\
+oP#\x85!\x18\xb7\x034\xcc\xf1\x86\x8d\xc3\xd6p\
+Sc\xe6~N4l`,q\x94a\x13\x1am\xb0\
+a\x03\xa3\xa9C\xb2\xf1\x1cL\xdd\xc2'\xa5\xa6\x9f\xb9\
+=\xea\x1cF}\xc8\x8dF'\xb2\xc1\x88`\xcc\x18-\
+\x89'\xcd\x90\x11\x8dM\x8c\xa0\x86\xcb\x06#\x828\x94\
+Z[\xdb`D\x0a\xa0\x9a1\xd2\x9dMW\x88\x10\x90\
+\xbeT\x12.\xc5\x08|(\xca\x09\x98\x1b\x84\x8f\x8aG\
+\x94-\x08 \xa4\x02i\xc2\x13\xcb\x15e\x9c\x8f(\x05\
+\x8dH@\xb6\xbe\x1fb\x19\x05\xd08\x9cP\xa6|6\
+\x19D(A\xb2\xa4\x9e\x05\xbc\xdfV(}\xbbV\x87\
+\x89\x94 E\x89\xc7\xc8\xc1\x19^\xa539k\x99L\
+$a\x80G`w\xf6a\xd0\xf8*8\xbe\x96R1\
+\xea\xedcp|\xc3\xafdv\xd5\x1e_X\xb0&-\
+\xeb\x1b?h\x9e\xe8\xd9D\xb5\xfb\xd2F\x08\xc3\xb4\x19\
+\xcc\x9f\xa0\xc8\xbf\x01\x7f\xc2\x0c{\xf8S3o#\x9d\
+\x1a\xd4 \xbbA\xb3\xd1\x06\xf7\x09\x96(\xa9%k0\
+_\x17t\x16\x02\x05\xde\xe3,\x91\x94i\xd5uuB\
+v\x90\x06\xfa\xe29\xbbY\x0e\x8c!\xb4\xe3B\x0b\x9e\
+\x00\xb0\xdc\xc8\x01X\xc58\x9aF\x14\x14\x856\xf0\xa8\
+$\x10&h\xf6\xf7\x03\x85\xcd3h\x16\xc4\xf4p\xa2\
+\xca\xcd\x94S5\x0b3=,<p\xb4\xe1\x9a\x85\x99\
+\x83\x94;\x9b/\xb6\xd9\xba\xa2\x19\x1c5\x9e/\xa1\xe8\
+n\x05V\xc3|\xb5\x8cs\x08\xd8\x89\xcd?\x7f\xfa\xfb\
+\xc5Q\x88\xce\x9b\xc24\xbc\x98\xc4,\xfb)\xbd\xdfl\
+\xe6\xe9\xf2\xef\x8b\xfb\xb57\xe9C\x1d\x22~\xa6?d\
+_\xe6nZ(Q\x94\xd2(\x7fuk\xe9\xcd\x11`\
+t\xe3!!\x9f\xd2\xb3\xb1-\xf8\xbd*\xe6\x9e\x93\x18\
+`]\x11\xd0e'{\x1f\xce\x5c\xa6h\xbf\x0aC\x14\
+<\x03\xcb\x81\x024\xc0\x5c\xa2e([0\x00\xad\xa6\
+MC\xd9\xaa\xc4(#\xa9l\x8a\x88\x0e\xec,\x08\xdb\
+\x90\x11\xe7g\xcd\x0a\x9b/d\xf8a\xd4\x22\x96q\x8f\
+c|n\xe3\x0f\x9d7\x18\xf1`d\xeb%\xd8T\xd0\
+\xe7`Sp\xe5\x8c\xe5\x82\x9a~.\x15t/\x97\x9e\
+/0@\xc9\xef\xb1\xe9\xa17\xb4z\x8f\x0d\xeb9\xc7\
+\x09\xb4\x98\x12\xc6c\x0ct\x9d8O81\xcc3r\
+\x9d\xebdMB\x0d#\x1e,s\x06\xb1\x92F\x0d\x0f\
+\xcd5\x97rDl\xae9G\xea\x05\xe9\xcax\x9cQ\
+\xd2\x93Pe<./}Z<\xeeG\xf7\x13\x8a\x0f\
+\xd9X==\x1a%\xc1~\xe1\x81\xde5=\x1c}\xfa\
+6\xaa\x80\x1d\xedd\x9dG\x15<\xaf\xb1\xf8\x9cA\x13\
+\x22\xa8\x17\x09\x0d\xb3\xf0\xb1\xc1\xbd\xcd\xdd:K\xa7\xbf\
+d\xdb\x9b\x15nQ6\xc3Y5\x19\xdc\xf0D\x11\x22\
+\x9b\xb1\x11@\x0d\xe1\xe0D6\x19\x1cX;\xe1hy\
+\xf9\x1c\x04\xd60\x9a+'8\x98\xf9\x82_*\xf2A\
+\x04\x8f{b\x1f\x1e\x9c\x8de\xa8\xd3\x84\xe6\x01P\xd5\
+\xcf\xab{\x94\xe6\xcb\x05]\xc0%\x01\xb4\xfe\x09\xb4.\
+\xd3\xe2Y\x8ccj\x19\x15D\xb1\xd6\xe2\xdb\xc6\xb1V\
+\x7f.\xe3\x98\xdb\xf3\xc5\x94\xff\x94\xc6\xf1\x8bXr\xec\
+\x99hJ\x0a\x05\xfe\x94\xed\xa7)\xc1\xf6\xd2\xd4\xf9\x15\
+B\x90\xa6\x9a J\x883\xbc\xab\xad\xc2\x1c\x84\x81&\
+\xe0\x18K\x04\x85\x00\xea\xd1(GVDr\xc2\xb4A\
+r\x93DK%G\xb1P\x09W`\xd8b\xc4\x9da\
+\xc0\x1dTf+\xe2Nh\x229\x15\x0d\xb5BM\xa2\
+@\x89h\xdaP+]P(\x94\x00J\xa1[v\xde\
+\xf7?-\x15\xc4)\xebeY\xcf\xb6G^\xd2\xf8J\
+\x0c\xd4p\x93\x97\x04\xe2\x881B\x1b\xbc\xd4\x85\x9d\x05\
+a\xeb72\xc36\xf2\x19\xc2D\x88\x85\x97R\xc3\xb8\
+\xcf/\xa7\x0b9\xfd\x16/ \x0eQ\x15;\xe5\xfd\xc3\
+\xf3\xd2\xde\xd1\xd6\x1b7V\xc7:\xe6\xfb\x08\xa7\x0a\x03\
+\x18kc\xd1x\xc5?\xd0\xa5\x9aM\xf0\xb7Eg\xc7\
+\xd1\x8e\xc1\xdfv\x0f!\xd3N2\x06\x0e\x96n{\xf2\
+\xf9\xe9\x1c\x02NV\xac\x0f\x9b\x8e\x00\xc9c\xb6\xc7x\
+\xd4\x8cs\xad\xa5=\xb0f\x92\xcd\x02g,\x86\x0c-\
+]x'4\xb4\xb1\x84\x09\xdf\xcf\x09\x1f\xef\xe0\x19\xcd\
+\xba'\x1e\x86\x0c\xada\x83CoF\x0e\x8c8\xc9&\
+W\x93\xab}\x1b|\xdcY\x8a\xae\xb7\xc4\x81\xfa\x0fL\
+\x9d\x09r\x02]\x12\xab\xcc){\x04\xa3\xf1\xe3\x91\x94\
+f\x93Y\x87\x0b>\x9c\x0bKBR\x036\x86>\x84\
+)!\x19\x89i\x98\xb4\x0f\x90U\x96\xc1>?\x89\x8b\
+\x05\xfe\x0e\xe1b\x91\xbfS\x08i\x02i\x15\x8a!~\
+x\x9b`\xa9,\xb6q\xe8M\xe3\x81\xad\x9a\xa9\x99\x9c\
+\xc9\xf3\xd0\xf3S\xecFK\xfb\xce\x08\xe1\xcb\xc6\x86\xa5\
+\xa68*\x0b?t\xefB|x\x22E*\xaf\x14M\
+\xb5\x00,\xcbc&j\xf0\x89\x99g\x8c\xa1\x1c\x5c\xba\
+\x17\xb1\x1c\x1eX|>\x04\xeds\xec\xf0\xb5\xb0;z\
+%\xd0\xcb3\x18_1D\x1f~\x89\xff\xac\xa8\xb3G\
+\xa2\xae\xef0\x03\xe3D+ \xc4\xf6jc)\x13j\
+(\xd4\x8e\x18b\x12\x96m\xde?\xd3f|Kd\x0a\
+\xfe\x5c\xc8\xa4\xc5i\xb3\x06.1l\x07\x980\xf4U\
+\xe2R\xbf(.\xe3\x22\xe0I^%2%}v.\
+\xe7\x0dlZ\x89\xe7J\xa9}}\xc8\x14D\x9e\xf2\xc6\
+\xed\x95,\xfd\x8c\xc7\x90{U\xe2+D\xdd\xf9\xc2\xc4\
+\x7fuE+\x88:\xc3A\xe37E[\xe0\xf2|o\
+t\xff\xea\x8a\x16\x90y\xbe\xc0\xfd\x9b\xa2Uo\xda\xe6\
+d\xd4\xbdi\x9b\xf3!S\xbfi\x9b\xf3\xe1\xf2M\xdb\
+\x9c\x11\x99o\xda\xe6\x8c\xc8|\xb6\x80\x83\x87L\xa1\x12\
+*\x99\xb2|\xe4.B\xbeN\x1e7/ /kD\
+\xc6\x94\xe3\xcb\xce\xd7\xc9\xe1\xe6\x05\x22\x8a\x1e*\xad\x82\
+RA({\x95\xb8<\x9f9\xb9\xdf&\xf2\x90\xa9\x11\
+?\x8a\xda\xd7\x89\xcc\xf3\xbd7\xe8\xd8\xe61\x1e\x1d\x02\
+\xe98\x8a\x0d\xae\x14P\xc8_#\x0a\xcfx\x94\x9a$\
+\xdc\x08E%7m\x5c\xeaDZ\xa6\xa5\x10#\x87\x1e\
+\xf2:5\xce\x19\xcf`\x0eAeI\x97\xe65\x1aB\
+\x94\x9c\xd3\xaa\xdc\x87Lf\x12\xcb$\xfc\xbcf\xba\xa4\
+\xe4\x9c*\xe70*_9]>\xff\xab\xea\xbf\x8c\xb7\
+C\xe99\x95\xcf_\xdc\x0f\xa7\xf4\xd8\xf3'o\x01\xa2\
+\xfd\xb8|\x8b\x5c\x9e\x0f\x99\xec|\xef\xfdi\xd2\xc5\xa2\
+I$\xe7\x94Z\xf3\xaa\x83\xe9\x94\xfde_\xf8S~\
+,\x01\xbd\xd8\xc9\xba:O\x14\xe8\x16w\xbfiD\xbe\
+\xe5Q:\xc0\xd5\xf9b5!f\xa3\x0c\xd9\x8dP\xf6\
+R\xcc\xf6q\x8cY?\xddS\x95\x17\x15\xf3\x94N\xbf\
+\xcc\xb3\x87w\x15\x1a\xae\xd2jIw\xe9u\xe6N\xcd\
+\x02\xf2\xf2\x1b\x1eE\xc5\xd5j=\xcd\xd6e\x95r?\
+\x8d\xaa\xe2`m\x9d\x89\xd5\xdb+\xec\xb5\xaa'\xe1\xfa\
+\xcdM:]=|\xba`\xedJL\x8a\x0a\x0bk\x17\
+\xe3\xd5\x0b\xa1\x13\x0b\x9ec\xa7\x09^\xc0\xd0\x98F\x16\
+\xdc=\xda\xae\x9c\xae&\xf7\x98\x1f8\xbe\xcf\xb7\xf6n\
+\xd7i~\xbf^#\xc0\x22}\xcc\xd6\xcdl\xb5u>\
+[c\xaa\x86E\xc6[\xafds\xb3z\xc8\xd1\x82d\
+~\x9f\xb5G\xc0z\x7f\xd1\x1e\x0cV]\xafq[B\
+\x0d\x1f\xe6Kh\x10\x979v\xa9\xec\xac\xbd\x80(\xa7\
+\xa9M\x07s\x05\x04\xe0O\x8a}\xcd\x1f\xf1^\xbe?\
+\xa3\xfb\xf94\xdb\x84\xe7\xe4\xea\xe2\xab\xab\xd5.\x5c\xbf\
+\xba\xfa?`\xd4\xf8.\xdd\xde@\x0f\xb3t\xb1\xd9\x07\
+\xb2\x5c\xb9A|\x90\xbcf\xbbZd\xc0b\x93\xac>\
+\xeb\x8d8\xf2\x8bM\x83\x1a\x8b\xad\x0b\xe2~\x99\xde\xc5\
+\xd7\x8b\xd5U\xba\xe8\xc5\xf1m\xba\x9b\xdf\xce\xbff\xd3\
+\xfa(}\xb3\x0fo\xc5\x85\xc8\xaaQ\x02\x93+\xd9r\
+\xfb\x88Y\x94w\x8fX\xd6\x90>X\xc0\x84\xa8-O\
+\xcc\xa6<_^\xef0\x83\x05\xf2WENU\xd5c\
+\xa0*\xbb\xbd+jk\xe6\x89\xa2/\xf3\xcd\xfc\x0a\x0f\
+\xc2{+\x04\xd8%\xe6\x1e\x9e\xb6Jq5\x05<\xce\
+\x09\xa5\xe2f\xb5\x5c<\x16`\xa5,\xe9\x8a\x10W~\
+\x9bm\xd3i\xbaMkyR\x96p\x90\xa8%j\xd6\
+\xd3\xd9\xe5?\x7f\xf8\xb1:\xe3?\x99\x5c\xfe{\xb5\xfe\
+\xa3\x9cB\x14!@z\xb5\xba\x07\x9a\xad.=`\x12\
+\xe3\xc9%\xca\xd5t\xfby~\x0b\x0c\x83\xa9\xb1\xff{\
+w\xbb\x00\xc9VU4\x80\x11\xdbu\xa7y\xb7\xeb,\
+O}\x1d\xcc\x16>\x9d\xdc\xce\xb1\xd1\xf8_\xdb\xf9b\
+\xf13\x0e\xe2\xddE(:\x9do\x17\xd9g7f\xfe\
+X\xaeb\x5c,\xa3\xbcI\xe0\xad\xf2\xe3\xb8D\x83\xfb\
+t]\xa3\xe7Z\xab\xeav\xe86\xa4\x0eM\xa2\xf16\
+'S\xa3\x18\xf3yf\xb1z_\xa2\xf1\xba\xa2\xaaP\
+xA\x08\xa6\x18z\x1a\xa0}\x0cxj\x98\x01\x8bY\
+\xc9a\xc0\x91\xab\x96V\x13\xcc\x13Jt\x02\xda\x87\x83\
+\xed,y\x22\x89\xf0#\xdc\xf9\x14%\xf1R\xe0\xac\x81\
+\x05k\xa4\x167,\xea\xf4fVSB\x85d\x1ff\
+\x80\xc1K\xc0\xed\xf7-\xc5\xebr\x17\xbfw\xd5\xde]\
+\x99\xcdv\xbd\xfa#\xbb\x5c\xae\x965)\x16\xf7\xf2`\
+<-\x94\x7f\x83\xa5\x90x\xad\x1b\x99\xb58\xc6$\x22\
+.\xd7\x97W\xe7rIX\xc0\x00o\xe4\x87\x03\xba\x8e\
+\xa5H\x80\xf5t\xa3\xab\x10J5\x81\xb5\x81\xa6\x1ey\
+\x8fq\xb8\x98\xf8\xd6K\x07i8(\xa8+\x85\xf1\x9f\
+\xf6\x14U\xa2\x98R*\xb0*\xeeR\xbd\xb2\xc6\xfd\xa4\
+R\xf6c2*\xc5;7\xa3s\xdc\xe9@\xce\xbd\xbe\
+\xddQ\x03w\xe7\xcc8B\x9d\xe0\xcd\xb3\x140\xb9\xc8\
+L\xd7\x93\xbeE\xe0\xec[\xa9a\x8f 1\x1cY\x0b\
+\xd3\xb8$U\x0e\xefn\xe7KD}\x83\x9c\xeaz\x97\
+\xc1\xd5\x09b\x13\xaa_\xef\x02\x84Z\xd7>\x06jQ\
+jFTj\x8c\x0b\x88Q\xd9y4\x8901\xad\x15\
+R\xc8\x08d\x017 \x18Fy\xe3(\xce\xffV\x1f\
+s8`\xf4\xaa\xa6lQ\x17\x14\xb0\xb0\x0d\xd5\xbfE\
+TT\x92\xe8kh\xba\x9bm\xban\xdf&+\xeb\xb2\
+%\xcc\x9b'TP\x8c\xab\x9f\x8fL\xd0\x1d\xa0\x84\x80\
+C\x10\x03sh0\xe3\xa4\xed\xe1\xad\x93\x04\x92%G\
+\x0b$\x1b\x10Hn\xa3\xa4\xd9\xcb\xbb\xfe]\xdf^\x89\
+\x14\x10\x0e\xe7d\xb6\x8f\xe3\xeb\xe2\xc1\xe7\xb9\xee\x084\
+\x91\xda\x12\xa6\xc0\x17\xc3\xc4\xba\x8c\x0b\xc5p\x80\xea\xb9\
+\x06\x88a%\x12s\x01\x80\xc2\xe1\x12<\x1b\xc6\xbc\x10\
+LN\xd1\xa0h\xb8flT\xe5du$Mq\x8b\
+$\xa5\x22\x8aMb@'\x19\xd0Te\xd2\xd5(.\
+\x1e\x1bEe\x0b$\xef\xaa|T67\x8d\xc2\xba\x1d\
+\x19\xd5-\xa3\x12\xd6\x07\x08\xb6\xf2\x07+\xe7R\x0d\xd4\
+\x9d\x5c\xcd6\x0d\x1e\xeff\x91m\x08\x88\x9e\xeap\x12\
+\xdb\x86xj$\xbd\xad\xe4\x99\x9fI\xf9\xb0\xbc\x04\xa5\
+?\x84\x03\x02R\xb9\x22\xaa\x1es\x04\xdc@%-\x11\
+.9\xa7\xa2`b(G\xa9\xd5s\x0d\x10S\x8e\xc9\
+9\x15\x03\xd3D\xa9\xc4p\xa2E\xc7 !\x0a\xd3\xff\
+\x0c\xd3\x1c\xb5_\xe1.\x88\xfa\xcc\x5c\xd6 \x1a\xee\xc1\
+\xd7\x88\xf1\x8e\xb9\x00S\x88\x89\x10\xd8j=\xbf\x9e/\
+\xd1S\xf8%\xa2\x86\xe2\x97\x0c\x80<u\xb9\xa8`\xba\
+\xd1?\x22\x0a~\xb8\x02\x863u\xa1\xcb\xb1\xee\xe0\xa4\
+J\xac\xe1\xc0/^\x99\x16u\xdb\xaa\xd0b\xae\x0e\x03\
+\xce\xaa\xd7\x1f0q\xd9a5p]\x06\xad\xadM\xc0\
+\xc4\x13\xcc+ex\x92\x862\xbf\xc3\xaa\xc8\x1b\xb8*\
+\xf3&X\xf5V\xaf\xa3\xbb\xde\xafQ\x03\x0d\xb2x\xc0\
+\xc9\x00A\xc2s]\xc6\xd0@q\x8d\xa4I\x84T\x1c\
+8\xa5.kL\xa6,\xb4$1(PL\xdd\x1d\x05\
+\x89\xe1/_8\x94KP9\xdc\xe4\x95\x92\xf9\xed\xe0\
+\x93\x8f`\xf8X\x8f^\xb5\xab\xe6\x18X\xca\xd7h\xb8\
+\xcd\x81\x19q\xfbX\xe8C\x9e\x88&oZ'&}\
+\x1f2E0+R\xdb\x1c(g7\x12\xa0cA\x1a\
+\x80\xec\x8c1!\xbd\xb1\xb9\x9a\x07\xae\x11\x0a\xcaGT\
+$D[N\x94WV>\xa0\xb8-\xda\x00\xb6r@\
+Z\xd7v\xe1\xbd\x11\xb0\x0c\xc7\x8f];\xa3@\xfcU\
+E^\xffnR\x96\x10\x85\x82\x1a ]\xe6\xa3\x1a \
+\xee\xb6\xf9\x1a\xdd\xe2\xbc\x12\xdc\xa6\x09lL\x82\xe9\x91\
+ARD\x0c\xb3t#,R\xa8\xa2\x04i\xba,*\
+\x1f\xb0e\xde\x02j\xdd\xd91Ex^\x8d\xa35\xe0\
+\xb1\xc0\x01s\x87\xb1\xbc(?pf\xa9\x22\xb4.*\
+\xa0q5\x0e\x9e[`\x0a\x04s_\xa7P\x8d\xed\x83\
+\xe7\x04s@a\xc30T\xa3\xd7\x95G\x03\xab\x8fT\
+b\xde2\xc9\xe8H%L\x1a\xe2\xbe\xaaa\xafi\x1c\
+\xea\xd9PM\x99\xa6\xb6\xe8\xb9\xfa\xc8\x81Z`i\xb0\
+\x070\x7fp#\xad\xd5\xef{h\x0b\x5cL\xcb+\xe2\
+\xb2`\xe6hG\x5c,A.B\xda\x92\xb0b.\xea\
+\xa2\xe2oNY\xd8@\xa9\xa8\x04\xab*\xdb\xc0^\xdf\
+X\x84\xe2\xc7\xd1\x954\xa0\x89\xb8WV\xf7^\xcc\x07\
+\xd4\x81\xa3+L\xe6m\xea\xfa\xb8\xdb$'+\x0e\xa8\
+\xc8\xe9\x0at\xa85\xd4\xd1\x15~y\x00\xd8\xd5 (\
+\xc0\xd91\xc5g\xf7\x7f\x5cF\x01\x88\xf4\x8b `p\
+\xba:\xd7O\x5c\xc3\xe6\x9f\x1d\xb4\x16\xd4\x11TQ\xea\
+\xd2-\x19\xc3\x0d\xc8,\xaf\xb0j\x84\x8b)\x9a\xf1(\
+\x07\xa5,\xaf\x97Q\x13\xbeIR\xb5\xafB\x02\x09\x1d\
+j\x93W\xe2\x11\x1a\xe0\x98\x0f{\x85\x95 \xbd\xfa>\
+$\xac\x04m\x0a\xab7\xad\xf8\xa6\x15\x036\x14&\xfa\
+\x07\xa5bI\xd0\x1b\x0e\x9bd{%\xdd!\xf1\xa4Y\
+G:I\xbeW6i\x16\x15 \xfd\x82\xc9\xf5\xda\x92\
+K\xd2*\xd1#\x97\x94\xe4\xaa\x90K\x82\xc8\xa3\xe5\x12\
+\x88\x98\x86XB\xfe\x0d\x89%0\x91K\xb1\x04*\xef\
+\x90X\x02\xe9\x16\x10K\x8ah\xd6+\x96$\xd5&\x17\
+K\x92\xcb\xa3\xc4\x12k\xf8\xbe\x87#Mvp\x1c\xf0\
+M\xd8\xbc\x09\x9b\xb0\xb0Q\x5c`\x16\xc43\x08\x9b\xa0\
+\xdb\xca)\xd8g\xbc<\xbcS|\x8ae\x82\x01 \xab\
+\xac\x0b\xab)M4\x97}f\x15lo%\xb5\x18\xb8\
+\xb4\xb4\xb0\xd8\x99c)\xea\xde\xde2\xc1\xbd\xb2\xf2!\
+\x97]\xd8\x06\x0c\x9f\x12\xb0\xae\xed\xc2{#`Yn\
+\xdf\x82\xd5\xc7\xd1\xae\xca\x0b\xbc\xbe\x8b\x09\x19\xa9\x9d\xf1\
+\x0c\xc6\x9b\xb5\x1e@\xdcnQ\xda\xea\xa5\xa9.\x0dJ\
+.\x8eiM\x8b\x95\x08\xc1\x98TuQ\xf9\x90\x1b\xea\
+`\xe0Y+\xdcX\x02_\xb1\xbb\xea\x5cP\xfa\x0d\x5c\
+I\xde\xbd\xcdE|^\xe8\x16#@\xce\x00\x87\xd4e\
+e\x8b\xdc\x5cwmh\xe4\x00yQ\xeb&\xd0\x80w\
+%a!f\xfbm+j\xa1\xa9\x11\xfbm+60\
+\x96\xf2&\xd6\xde\xc4ZX\xaca\x0c\x97\x11\xdb\xf8\x92\
+\x9ds\x1aQV\xd5\x01\x04\xf0\xc2\x88.\xc4Q\x19?\
+\x00\xebM0U\x17\x15\x7fsY\xe4\x1a\xb8\xe8\x01u\
+\x01\xbb\xb2\xb2\x0d\xec\xf5\x8dER\x15\xb6\x14\xb4\x82f\
+^Y\xdd{1\x1f!s\x1f\x8fJKM]\x1fw\
+\x9b\xe4\xe2\x88\xe5\xec\xef\x04\x12\xac\x90\xe9<v\xa0r\
+\x81\xc4\xa0GpX\x8b\x82\xfcO.\x8c\x10V)'\
+\x8c\x00\x88SW\x99\x9bm\x1e\xb4,\x85\x11\x80+[\
+\x04\x0e\xca\xe5@KC$vR\x17V\x8dry\x84\
+\xcd\x8c\x88rPkFE\xdfQ\xb3\xc1^i$\x8f\
+{yg{_\xde\x05\x83PZ\xbc\xf9uo2i\
+\x80L\xe2L\x18\xab\x1a\x99\x1bO\x95IO\x88\xd1\x83\
+\x19\x06\xfcl\x1a\xaf\xc8\xdf\x88\xf6\x8dhC\xe2\xb1e\
+\x99q\xdb{* \x18\xf5b\x22\x18\xa2\xe7\xb6?D\
+\xaf\xbd\x18=\xb1\xc08\x85\x15k\x8bx\xb6\x11\x92P\
+]\x17\x15\x7fs\x15\xeb\x1a\xf0\xa8\x00cUe\x1b\xd8\
+\xeb\x1b\x8b*\x0b\xd9\x05\xa3\xa9WV\xf7\x9e\xcf\x87\x83\
+\xfb\xe2\xf4\x9e\xa1\x5c\xeb\xba>\xee6\xc9U,\xc9c\
+\x17N\xc5j\xed\x8e\xe0c\xf7\xc5b\xa4\x95\xda\xc8\xb2\
+ \xff\x93\xabX\x84\xa5y`^\xe2k\x04\x8e\xf9_\
+K{\xbf\x00\x16\x95\xb9\xaf\xdd\xb7$\xb8:Q-\x06\
+\xfe*)\xfc\xc2\xaaM\xae`\xa1\x95\xb4*r\xa0\xf8\
+u\x9bE\xd7Q\xa3\xc1\xa0\xe8\xbc\xe4\x92\x19U\x9e\xd5\
+\xad>\x02E2%-\x87\x8dH\x84\xb2Bks\xe8\
+]z}<n5\xcdP\xc6\x81\xe4\x9al6\x9bz\
+\x0a\xf5{Z]\xbf\xbcut$q\xde\xd2\xc2\xbeP\
+\x86\x5c\x05\x93p\x84\xc4A\xf0I|w\x81\xe9\xfe\xf1\
+\xdb\xc9\xc1\xe8\xd0\x98\xed_\x82GH\xf1\xd5\xa5\xa4R\
+\xe5\x85V\xa2\x9fJQ^\x19\xcd\xc0\xb1D\x97\x87q\
+;R\x89\xa0Z\x08\x8d\xf6\x9b\x00~\x80Q,\xb8b\
+\xf0\x181\x09\xe4\x80\xa77\xa0\x04\x89\x13\xfc4\xfc\xca\
+^\x18\x0a\xdf\xff\xc38`\x12\xe2\xa1eK\x0cb\x99\
+&\x86q\xad8\x96)F\x8c\xc6;\xd2\xb0\x19\xe0\xfe\
+q\xe0e\x0d\xcf\xb0\xe30]&\xf0\xdb\x09\xd0\xa8S\
+`zJ|\xbd\x0f\xf2\x89\x80\x01\xa7\x82k\xf5^\xa1\
+\xf7\x9b;\xf8\xc5\x0a\x83<-\xef\x9c\xf8r\x99M\xb6\
+\xabu<\xb9_\x7fI\xb7\xf7\xeb\x0cO\xb3T{y\
+\xf08D\x11\x08\x90\xee\x90\x83\xb5\x96\xa0\xbb\xec\x0e\xe8\
+hMX\xeb\xc0\x83\xbb1N9\x80TI\xdd\xbdC\
+<\xde)\x9eC\xc7xd\xe0\x1cO\xe8 O\x05\x1f\
+U\x1d\x97\x95-X\xaf\xe3\xa2\xa6\xea\xb69\x85=\xe7\
+\x19Zg\x96\xfaN;5N2t\xb3\xdb7N2\
+tS\xe2\xd7\x02\x97\x926]xN9\x13@\x96\xb4\
+\xe7\x85\x07\xa7\xc3\x0e\x84\xf5\x1dp\x082x\xf7x\xda\
+)\xb3c\xc3B\x0656\x18\x19\x8a\xc1\xa1\xf8\xef\xdb\
+\xba\xc0\x96\xbfB\x0a\x0f\x9e\xbf\xc5oQ\x91\xa0\x86\x8d\
+\xc5\x10<\x88\x7f\xa6\xaa\x1c\xcf\x85\xeco\x9c\xe7\xe5\xb6\
+\xfa\xfe\xe3\x0e!\x80'JE\xfdm\xa4\x8d\x93k\xb8\
+98#\xcf\xdf\xdb\x15W8\xbc4\x9d\xe5y\xb2\xfc\
+\xa4\x19ltUS\x1cA\xe3x/\x13\x0c\xc4\xd6\x97\
+\xf7\xc2@\x9c\x8a\xce\x81\xa0zj\x86\xba_N\xca\x9f\
+\x9cX\xbf\x9b\x11\xf7\xcd\x1e=\xb4Y\x7f\xf3\x8b\xb7\x1a\
+\x0f\x95 y\x17x\xabg\xe4\xddo\xecbF1#\
+\x019\xc7\x0f\xdfY\xa6\xf5\x0e\xef4\xce\xe5Y\x0f)\
+%\x1e\x8b\x83\xb3^\xcd\x0e\x8f\xdf\xb5\xb0\xfe\xe8\xdf\xbb\
+\x09\xae\xf71x3\x07\xba\xd2x\x97\xc9\xf8\xe9\xee\xf7\
+\x0f\xbdw\xb6\xde\xdaz\xb6\xb0\xc0!+QH\x8f\xc6\
+\xe1\x9e]k\x12{\xbd\xec\xce\x0c\x94\x90\xd4\x82kV\
+\x0c\xccg23\xd3\xe6\xc0\x04\xac\x02\x90^J\x05&\
+\xe0Qj)\xdd\xf6Puu\xa1\x05u0`\xb7\xc4\
+y\x87c\x02;\xe7- \xb0k\x9d\x1e\xca\xa1\x9c\xb4\
+\xa05\xc7\x95'\xaf]\xb6\xa2\xee\x02\xc4>\x19\xd0\xc4\
+Q\xc0\xaa\xc1\x0b\x8a\xbd\xca\xa0\xb3\x8c=cX\xd37\
+\x06\x1d\xa0pj\xba\xab\x96X.[$\x86\x83\x91\xc9\
+[Xj\xcb\xa5\xe37\xa4\x09\xee\xb8\xb1!\x16\xf7\x8d\
+TL\xccQ\x84\x86\xff\xbaK\xd0O\xd8\x92A\xd6C\
+\xc0\xa7\x18!\x07\xe5\xfe\xc4\xfb\xeer\x0f5x\xc2|\
+\xe5Q\xdb+\x0e`\xb1\xc1\x04l\xef\xdex\xdb\x17\xda\
+\xda\xb84\x17\xcc\xc1\xddm\x0ctpk\xabkS'\
+\xa1j\x88\xe9\xb5g\xa7\xe2\xa3\xf76>\xc3\xe6\x12{\
+\xdc\xe6\xdaa\x9b\x1b\xe0\xdd\xee\xfez{\x18\xdc\xe2\xfc\
+&js\x8b\xdb2v\x9f\xf4\xf6E*\xab\xf5_\xb9\
+\x12A*\xb5\xb0O\xe2\xb1\x135\xcfy\xb6w \xe7\
+J\x22\xf6o.\x19\xf4\xf2\xd0C\x89\x0a o\x80T\
+vN9\xf3\xa4\xb2D\x7f\xd6\x04\x18\xf7\x04\x0a%f\
+\xc8}\x8az\x11\x92\x9c&~\xca9W\x8b(V\xb5\
+G\xb5\xd4\xb5{z8Q\xb7\xc0\x02\xd8\xe9\xecL\xb4\
+>N\xdd?M\xb2\x94V\xc1\xc9\xd6\x19\x90\xa8\xe8g\
+\xd8\x1e\xeb,\xc6o\x8cT\xc6\x17(\xb5\xc4\xe8\x11(\
+\xc2\xef\xa4I\xbb\x076-h\xa0\xc1\x1a\xd4Sx\xf4\
+Tk\xa0W\xa4<\xb6\xc9q\xd7v\x09OZ*%\
+\xfdR\xb3w\xa9\x94\x0c\x89\xb0\x1d\x10\x86\x03\x85\xe70\
+\x02>0\xdd!w\x17=\xd4\x84T\xcf\x10\x9b\xb6\xa3\
+\x16k2=\x8by\xce\x8f1\xcf\xc1\x9a\xd7\x03\xd6\xd1\
+\xf6`v\x01\x8b,\xe0\x11\xf5;\x85\x87\x9c\xa9\xce\x08\
+\x87h\xb8\xe5Xxk\xb4O\xa0\x0b\xce\x8f#\xe3\xde\
+\x95v&\xa0\x8d\x0b^\x1c\xebp\xd7k\xab\xbe\xf1\xcc\
+\xd74\x9e\xe4l \xcd\x13\x0f\x1d\x05X\x8aW\x9c\xf3\
+G\xbc\x1f\xff\xf9\xdd\xff\x03\x0b\xb0\x0a\x0c\x99\x9b\x00\x00\
+\
+"
+
+qt_resource_name = b"\
+\x00\x05\
+\x00o\xa6S\
+\x00i\
+\x00c\x00o\x00n\x00s\
+\x00\x06\
+\x07\x03}\xc3\
+\x00i\
+\x00m\x00a\x00g\x00e\x00s\
+\x00\x16\
+\x02\x1b\xe1\x0a\
+\x00g\
+\x00o\x00-\x00n\x00e\x00x\x00t\x00-\x00v\x00i\x00e\x00w\x00-\x00p\x00a\x00g\x00e\
+\x00.\x00s\x00v\x00g\x00z\
+\x00\x11\
+\x04\xf3\xa4*\
+\x00g\
+\x00o\x00-\x00n\x00e\x00x\x00t\x00-\x00v\x00i\x00e\x00w\x00.\x00s\x00v\x00g\x00z\
+\
+\x00\x15\
+\x01\x09v*\
+\x00g\
+\x00o\x00-\x00p\x00r\x00e\x00v\x00i\x00o\x00u\x00s\x00-\x00v\x00i\x00e\x00w\x00.\
+\x00s\x00v\x00g\x00z\
+\x00\x0d\
+\x0e\xb9\xa6*\
+\x00z\
+\x00o\x00o\x00m\x00-\x00o\x00u\x00t\x00.\x00s\x00v\x00g\x00z\
+\x00\x12\
+\x0al\x90\xca\
+\x00d\
+\x00o\x00c\x00u\x00m\x00e\x00n\x00t\x00-\x00o\x00p\x00e\x00n\x00.\x00s\x00v\x00g\
+\x00z\
+\x00\x1a\
+\x01d\xbbJ\
+\x00g\
+\x00o\x00-\x00p\x00r\x00e\x00v\x00i\x00o\x00u\x00s\x00-\x00v\x00i\x00e\x00w\x00-\
+\x00p\x00a\x00g\x00e\x00.\x00s\x00v\x00g\x00z\
+\x00\x0c\
+\x009l\x8a\
+\x00z\
+\x00o\x00o\x00m\x00-\x00i\x00n\x00.\x00s\x00v\x00g\x00z\
+"
+
+qt_resource_struct = b"\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x10\x00\x02\x00\x00\x00\x07\x00\x00\x00\x03\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x010\x00\x00\x00\x00\x00\x01\x00\x00\xba\xe2\
+\x00\x00\x01\x81\x8a\xd9\xf0\x94\
+\x00\x00\x00|\x00\x00\x00\x00\x00\x01\x00\x00J'\
+\x00\x00\x01\x81\x8a\xd9\xf0\x94\
+\x00\x00\x00\xf6\x00\x00\x00\x00\x00\x01\x00\x00\x89\xa4\
+\x00\x00\x01\x81\x8a\xd9\xf0\x94\
+\x00\x00\x00\x22\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
+\x00\x00\x01\x81\x8a\xd9\xf0\x94\
+\x00\x00\x00T\x00\x00\x00\x00\x00\x01\x00\x001K\
+\x00\x00\x01\x81\x8a\xd9\xf0\x94\
+\x00\x00\x00\xcc\x00\x00\x00\x00\x00\x01\x00\x00x\xec\
+\x00\x00\x01\x81\x8a\xd9\xf0\x94\
+\x00\x00\x00\xac\x00\x00\x00\x00\x00\x01\x00\x00c\xbc\
+\x00\x00\x01\x81\x8a\xd9\xf0\x94\
+"
+
+def qInitResources():
+ QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+def qCleanupResources():
+ QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+qInitResources()
diff --git a/examples/pdfwidgets/pdfviewer/resources.qrc b/examples/pdfwidgets/pdfviewer/resources.qrc
new file mode 100644
index 000000000..db77763d2
--- /dev/null
+++ b/examples/pdfwidgets/pdfviewer/resources.qrc
@@ -0,0 +1,11 @@
+<RCC>
+ <qresource prefix="/icons">
+ <file>images/document-open.svgz</file>
+ <file>images/go-next-view.svgz</file>
+ <file>images/go-previous-view.svgz</file>
+ <file>images/go-next-view-page.svgz</file>
+ <file>images/go-previous-view-page.svgz</file>
+ <file>images/zoom-in.svgz</file>
+ <file>images/zoom-out.svgz</file>
+ </qresource>
+</RCC>
diff --git a/examples/pdfwidgets/pdfviewer/ui_mainwindow.py b/examples/pdfwidgets/pdfviewer/ui_mainwindow.py
new file mode 100644
index 000000000..9ed525dbf
--- /dev/null
+++ b/examples/pdfwidgets/pdfviewer/ui_mainwindow.py
@@ -0,0 +1,259 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'mainwindow.ui'
+##
+## Created by: Qt User Interface Compiler version 6.7.0
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QAction, QBrush, QColor, QConicalGradient,
+ QCursor, QFont, QFontDatabase, QGradient,
+ QIcon, QImage, QKeySequence, QLinearGradient,
+ QPainter, QPalette, QPixmap, QRadialGradient,
+ QTransform)
+from PySide6.QtPdfWidgets import QPdfView
+from PySide6.QtWidgets import (QApplication, QHeaderView, QMainWindow, QMenu,
+ QMenuBar, QSizePolicy, QSplitter, QStatusBar,
+ QTabWidget, QToolBar, QTreeView, QVBoxLayout,
+ QWidget)
+import rc_resources
+
+class Ui_MainWindow(object):
+ def setupUi(self, MainWindow):
+ if not MainWindow.objectName():
+ MainWindow.setObjectName(u"MainWindow")
+ MainWindow.resize(700, 600)
+ MainWindow.setUnifiedTitleAndToolBarOnMac(True)
+ self.actionOpen = QAction(MainWindow)
+ self.actionOpen.setObjectName(u"actionOpen")
+ icon = QIcon()
+ iconThemeName = u"document-open"
+ if QIcon.hasThemeIcon(iconThemeName):
+ icon = QIcon.fromTheme(iconThemeName)
+ else:
+ icon.addFile(u":/icons/images/document-open.svgz", QSize(), QIcon.Normal, QIcon.Off)
+
+ self.actionOpen.setIcon(icon)
+ self.actionQuit = QAction(MainWindow)
+ self.actionQuit.setObjectName(u"actionQuit")
+ icon1 = QIcon(QIcon.fromTheme(u"application-exit"))
+ self.actionQuit.setIcon(icon1)
+ self.actionAbout = QAction(MainWindow)
+ self.actionAbout.setObjectName(u"actionAbout")
+ icon2 = QIcon(QIcon.fromTheme(u"help-about"))
+ self.actionAbout.setIcon(icon2)
+ self.actionAbout_Qt = QAction(MainWindow)
+ self.actionAbout_Qt.setObjectName(u"actionAbout_Qt")
+ self.actionZoom_In = QAction(MainWindow)
+ self.actionZoom_In.setObjectName(u"actionZoom_In")
+ icon3 = QIcon()
+ iconThemeName = u"zoom-in"
+ if QIcon.hasThemeIcon(iconThemeName):
+ icon3 = QIcon.fromTheme(iconThemeName)
+ else:
+ icon3.addFile(u":/icons/images/zoom-in.svgz", QSize(), QIcon.Normal, QIcon.Off)
+
+ self.actionZoom_In.setIcon(icon3)
+ self.actionZoom_Out = QAction(MainWindow)
+ self.actionZoom_Out.setObjectName(u"actionZoom_Out")
+ icon4 = QIcon()
+ iconThemeName = u"zoom-out"
+ if QIcon.hasThemeIcon(iconThemeName):
+ icon4 = QIcon.fromTheme(iconThemeName)
+ else:
+ icon4.addFile(u":/icons/images/zoom-out.svgz", QSize(), QIcon.Normal, QIcon.Off)
+
+ self.actionZoom_Out.setIcon(icon4)
+ self.actionPrevious_Page = QAction(MainWindow)
+ self.actionPrevious_Page.setObjectName(u"actionPrevious_Page")
+ icon5 = QIcon()
+ iconThemeName = u"go-previous-view-page"
+ if QIcon.hasThemeIcon(iconThemeName):
+ icon5 = QIcon.fromTheme(iconThemeName)
+ else:
+ icon5.addFile(u":/icons/images/go-previous-view-page.svgz", QSize(), QIcon.Normal, QIcon.Off)
+
+ self.actionPrevious_Page.setIcon(icon5)
+ self.actionNext_Page = QAction(MainWindow)
+ self.actionNext_Page.setObjectName(u"actionNext_Page")
+ icon6 = QIcon()
+ iconThemeName = u"go-next-view-page"
+ if QIcon.hasThemeIcon(iconThemeName):
+ icon6 = QIcon.fromTheme(iconThemeName)
+ else:
+ icon6.addFile(u":/icons/images/go-next-view-page.svgz", QSize(), QIcon.Normal, QIcon.Off)
+
+ self.actionNext_Page.setIcon(icon6)
+ self.actionContinuous = QAction(MainWindow)
+ self.actionContinuous.setObjectName(u"actionContinuous")
+ self.actionContinuous.setCheckable(True)
+ self.actionBack = QAction(MainWindow)
+ self.actionBack.setObjectName(u"actionBack")
+ self.actionBack.setEnabled(False)
+ icon7 = QIcon()
+ icon7.addFile(u":/icons/images/go-previous-view.svgz", QSize(), QIcon.Normal, QIcon.Off)
+ self.actionBack.setIcon(icon7)
+ self.actionForward = QAction(MainWindow)
+ self.actionForward.setObjectName(u"actionForward")
+ self.actionForward.setEnabled(False)
+ icon8 = QIcon()
+ icon8.addFile(u":/icons/images/go-next-view.svgz", QSize(), QIcon.Normal, QIcon.Off)
+ self.actionForward.setIcon(icon8)
+ self.centralWidget = QWidget(MainWindow)
+ self.centralWidget.setObjectName(u"centralWidget")
+ self.verticalLayout = QVBoxLayout(self.centralWidget)
+ self.verticalLayout.setSpacing(0)
+ self.verticalLayout.setContentsMargins(11, 11, 11, 11)
+ self.verticalLayout.setObjectName(u"verticalLayout")
+ self.verticalLayout.setContentsMargins(0, 0, 0, 0)
+ self.widget = QWidget(self.centralWidget)
+ self.widget.setObjectName(u"widget")
+ self.verticalLayout_2 = QVBoxLayout(self.widget)
+ self.verticalLayout_2.setSpacing(0)
+ self.verticalLayout_2.setContentsMargins(11, 11, 11, 11)
+ self.verticalLayout_2.setObjectName(u"verticalLayout_2")
+ self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
+ self.splitter = QSplitter(self.widget)
+ self.splitter.setObjectName(u"splitter")
+ self.splitter.setOrientation(Qt.Horizontal)
+ self.tabWidget = QTabWidget(self.splitter)
+ self.tabWidget.setObjectName(u"tabWidget")
+ sizePolicy = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Expanding)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.tabWidget.sizePolicy().hasHeightForWidth())
+ self.tabWidget.setSizePolicy(sizePolicy)
+ self.tabWidget.setTabPosition(QTabWidget.West)
+ self.tabWidget.setDocumentMode(False)
+ self.bookmarkTab = QWidget()
+ self.bookmarkTab.setObjectName(u"bookmarkTab")
+ self.verticalLayout_3 = QVBoxLayout(self.bookmarkTab)
+ self.verticalLayout_3.setSpacing(0)
+ self.verticalLayout_3.setContentsMargins(11, 11, 11, 11)
+ self.verticalLayout_3.setObjectName(u"verticalLayout_3")
+ self.verticalLayout_3.setContentsMargins(2, 2, 2, 2)
+ self.bookmarkView = QTreeView(self.bookmarkTab)
+ self.bookmarkView.setObjectName(u"bookmarkView")
+ sizePolicy.setHeightForWidth(self.bookmarkView.sizePolicy().hasHeightForWidth())
+ self.bookmarkView.setSizePolicy(sizePolicy)
+ self.bookmarkView.setHeaderHidden(True)
+
+ self.verticalLayout_3.addWidget(self.bookmarkView)
+
+ self.tabWidget.addTab(self.bookmarkTab, "")
+ self.pagesTab = QWidget()
+ self.pagesTab.setObjectName(u"pagesTab")
+ self.tabWidget.addTab(self.pagesTab, "")
+ self.splitter.addWidget(self.tabWidget)
+ self.pdfView = QPdfView(self.splitter)
+ self.pdfView.setObjectName(u"pdfView")
+ sizePolicy1 = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
+ sizePolicy1.setHorizontalStretch(10)
+ sizePolicy1.setVerticalStretch(0)
+ sizePolicy1.setHeightForWidth(self.pdfView.sizePolicy().hasHeightForWidth())
+ self.pdfView.setSizePolicy(sizePolicy1)
+ self.splitter.addWidget(self.pdfView)
+
+ self.verticalLayout_2.addWidget(self.splitter)
+
+
+ self.verticalLayout.addWidget(self.widget)
+
+ MainWindow.setCentralWidget(self.centralWidget)
+ self.menuBar = QMenuBar(MainWindow)
+ self.menuBar.setObjectName(u"menuBar")
+ self.menuBar.setGeometry(QRect(0, 0, 700, 23))
+ self.menuFile = QMenu(self.menuBar)
+ self.menuFile.setObjectName(u"menuFile")
+ self.menuHelp = QMenu(self.menuBar)
+ self.menuHelp.setObjectName(u"menuHelp")
+ self.menuView = QMenu(self.menuBar)
+ self.menuView.setObjectName(u"menuView")
+ MainWindow.setMenuBar(self.menuBar)
+ self.mainToolBar = QToolBar(MainWindow)
+ self.mainToolBar.setObjectName(u"mainToolBar")
+ self.mainToolBar.setMovable(False)
+ self.mainToolBar.setFloatable(False)
+ MainWindow.addToolBar(Qt.ToolBarArea.TopToolBarArea, self.mainToolBar)
+ self.statusBar = QStatusBar(MainWindow)
+ self.statusBar.setObjectName(u"statusBar")
+ MainWindow.setStatusBar(self.statusBar)
+
+ self.menuBar.addAction(self.menuFile.menuAction())
+ self.menuBar.addAction(self.menuView.menuAction())
+ self.menuBar.addAction(self.menuHelp.menuAction())
+ self.menuFile.addAction(self.actionOpen)
+ self.menuFile.addAction(self.actionQuit)
+ self.menuHelp.addAction(self.actionAbout)
+ self.menuHelp.addAction(self.actionAbout_Qt)
+ self.menuView.addAction(self.actionZoom_In)
+ self.menuView.addAction(self.actionZoom_Out)
+ self.menuView.addAction(self.actionPrevious_Page)
+ self.menuView.addAction(self.actionNext_Page)
+ self.menuView.addSeparator()
+ self.menuView.addAction(self.actionContinuous)
+ self.mainToolBar.addAction(self.actionOpen)
+ self.mainToolBar.addSeparator()
+ self.mainToolBar.addAction(self.actionZoom_Out)
+ self.mainToolBar.addAction(self.actionZoom_In)
+ self.mainToolBar.addSeparator()
+ self.mainToolBar.addAction(self.actionBack)
+ self.mainToolBar.addAction(self.actionForward)
+
+ self.retranslateUi(MainWindow)
+
+ self.tabWidget.setCurrentIndex(0)
+
+
+ QMetaObject.connectSlotsByName(MainWindow)
+ # setupUi
+
+ def retranslateUi(self, MainWindow):
+ MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"PDF Viewer", None))
+ self.actionOpen.setText(QCoreApplication.translate("MainWindow", u"Open...", None))
+#if QT_CONFIG(shortcut)
+ self.actionOpen.setShortcut(QCoreApplication.translate("MainWindow", u"Ctrl+O", None))
+#endif // QT_CONFIG(shortcut)
+ self.actionQuit.setText(QCoreApplication.translate("MainWindow", u"Quit", None))
+#if QT_CONFIG(shortcut)
+ self.actionQuit.setShortcut(QCoreApplication.translate("MainWindow", u"Ctrl+Q", None))
+#endif // QT_CONFIG(shortcut)
+ self.actionAbout.setText(QCoreApplication.translate("MainWindow", u"About", None))
+ self.actionAbout_Qt.setText(QCoreApplication.translate("MainWindow", u"About Qt", None))
+ self.actionZoom_In.setText(QCoreApplication.translate("MainWindow", u"Zoom In", None))
+#if QT_CONFIG(shortcut)
+ self.actionZoom_In.setShortcut(QCoreApplication.translate("MainWindow", u"Ctrl++", None))
+#endif // QT_CONFIG(shortcut)
+ self.actionZoom_Out.setText(QCoreApplication.translate("MainWindow", u"Zoom Out", None))
+#if QT_CONFIG(shortcut)
+ self.actionZoom_Out.setShortcut(QCoreApplication.translate("MainWindow", u"Ctrl+-", None))
+#endif // QT_CONFIG(shortcut)
+ self.actionPrevious_Page.setText(QCoreApplication.translate("MainWindow", u"Previous Page", None))
+#if QT_CONFIG(shortcut)
+ self.actionPrevious_Page.setShortcut(QCoreApplication.translate("MainWindow", u"PgUp", None))
+#endif // QT_CONFIG(shortcut)
+ self.actionNext_Page.setText(QCoreApplication.translate("MainWindow", u"Next Page", None))
+#if QT_CONFIG(shortcut)
+ self.actionNext_Page.setShortcut(QCoreApplication.translate("MainWindow", u"PgDown", None))
+#endif // QT_CONFIG(shortcut)
+ self.actionContinuous.setText(QCoreApplication.translate("MainWindow", u"Continuous", None))
+ self.actionBack.setText(QCoreApplication.translate("MainWindow", u"Back", None))
+#if QT_CONFIG(tooltip)
+ self.actionBack.setToolTip(QCoreApplication.translate("MainWindow", u"back to previous view", None))
+#endif // QT_CONFIG(tooltip)
+ self.actionForward.setText(QCoreApplication.translate("MainWindow", u"Forward", None))
+#if QT_CONFIG(tooltip)
+ self.actionForward.setToolTip(QCoreApplication.translate("MainWindow", u"forward to next view", None))
+#endif // QT_CONFIG(tooltip)
+ self.tabWidget.setTabText(self.tabWidget.indexOf(self.bookmarkTab), QCoreApplication.translate("MainWindow", u"Bookmarks", None))
+ self.tabWidget.setTabText(self.tabWidget.indexOf(self.pagesTab), QCoreApplication.translate("MainWindow", u"Pages", None))
+ self.menuFile.setTitle(QCoreApplication.translate("MainWindow", u"File", None))
+ self.menuHelp.setTitle(QCoreApplication.translate("MainWindow", u"Help", None))
+ self.menuView.setTitle(QCoreApplication.translate("MainWindow", u"View", None))
+ # retranslateUi
+
diff --git a/examples/pdfwidgets/pdfviewer/zoomselector.py b/examples/pdfwidgets/pdfviewer/zoomselector.py
new file mode 100644
index 000000000..6f9f972e0
--- /dev/null
+++ b/examples/pdfwidgets/pdfviewer/zoomselector.py
@@ -0,0 +1,59 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtPdfWidgets import QPdfView
+from PySide6.QtWidgets import QComboBox
+from PySide6.QtCore import Signal, Slot
+
+
+class ZoomSelector(QComboBox):
+
+ zoom_mode_changed = Signal(QPdfView.ZoomMode)
+ zoom_factor_changed = Signal(float)
+
+ def __init__(self, parent):
+ super().__init__(parent)
+ self.setEditable(True)
+
+ self.addItem("Fit Width")
+ self.addItem("Fit Page")
+ self.addItem("12%")
+ self.addItem("25%")
+ self.addItem("33%")
+ self.addItem("50%")
+ self.addItem("66%")
+ self.addItem("75%")
+ self.addItem("100%")
+ self.addItem("125%")
+ self.addItem("150%")
+ self.addItem("200%")
+ self.addItem("400%")
+
+ self.currentTextChanged.connect(self.on_current_text_changed)
+ self.lineEdit().editingFinished.connect(self._editing_finished)
+
+ @Slot(float)
+ def set_zoom_factor(self, zoomFactor):
+ percent = int(zoomFactor * 100)
+ self.setCurrentText(f"{percent}%")
+
+ @Slot()
+ def reset(self):
+ self.setCurrentIndex(8) # 100%
+
+ @Slot(str)
+ def on_current_text_changed(self, text):
+ if text == "Fit Width":
+ self.zoom_mode_changed.emit(QPdfView.ZoomMode.FitToWidth)
+ elif text == "Fit Page":
+ self.zoom_mode_changed.emit(QPdfView.ZoomMode.FitInView)
+ elif text.endswith("%"):
+ factor = 1.0
+ zoom_level = int(text[:-1])
+ factor = zoom_level / 100.0
+ self.zoom_mode_changed.emit(QPdfView.ZoomMode.Custom)
+ self.zoom_factor_changed.emit(factor)
+
+ @Slot()
+ def _editing_finished(self):
+ self.on_current_text_changed(self.lineEdit().text())
diff --git a/examples/qml/editingmodel/MovingRectangle.qml b/examples/qml/editingmodel/MovingRectangle.qml
new file mode 100644
index 000000000..b99a5f4dc
--- /dev/null
+++ b/examples/qml/editingmodel/MovingRectangle.qml
@@ -0,0 +1,78 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+
+import QtQuick
+import QtQuick.Controls
+
+Rectangle {
+ id: root
+ property int modelIndex
+ property Item dragParent
+ property Item sizeParent
+ property alias text: zone.text
+ property alias bgColor: root.color
+
+ anchors {
+ horizontalCenter: parent.horizontalCenter
+ verticalCenter: parent.verticalCenter
+ }
+ color: backgroundColor
+ anchors.fill: sizeParent
+ border.color: "yellow"
+ border.width: 0
+ TextArea {
+ id: zone
+ anchors.centerIn: parent
+ text: display
+ onTextChanged: model.edit = text
+ }
+
+ MouseArea {
+ id: zoneMouseArea
+ anchors.fill: parent
+
+ acceptedButtons: Qt.MiddleButton
+ onClicked: function(mouse) {
+ if (mouse.button == Qt.MiddleButton)
+ lv.model.remove(index)
+ else
+ mouse.accepted = false
+ }
+ }
+ DragHandler {
+ id: dragHandler
+ xAxis {
+
+ enabled: true
+ minimum: 0
+ maximum: lv.width - droparea.width
+ }
+ yAxis.enabled: false
+ acceptedButtons: Qt.LeftButton
+ }
+ Drag.active: dragHandler.active
+ Drag.source: root
+ Drag.hotSpot.x: width / 2
+
+ states: [
+ State {
+ when: dragHandler.active
+ ParentChange {
+ target: root
+ parent: root.dragParent
+ }
+
+ AnchorChanges {
+ target: root
+ anchors.horizontalCenter: undefined
+ anchors.verticalCenter: undefined
+ }
+ PropertyChanges {
+ target: root
+ opacity: 0.6
+ border.width: 3
+ }
+ }
+ ]
+}
diff --git a/examples/qml/editingmodel/doc/editingmodel.rst b/examples/qml/editingmodel/doc/editingmodel.rst
new file mode 100644
index 000000000..2b45b23f0
--- /dev/null
+++ b/examples/qml/editingmodel/doc/editingmodel.rst
@@ -0,0 +1,16 @@
+QAbstractListModel in QML
+=========================
+
+.. tags:: Android
+
+This example shows how to add, remove and move items inside a QML
+ListView, but showing and editing the data via roles using a
+QAbstractListModel from Python.
+
+You can add new elements and reset the view using the two top buttons,
+remove elements by 'middle click' the element, and move the elements
+with a 'left click' plus dragging the item around.
+
+.. image:: qabstractlistmodelqml.png
+ :width: 400
+ :alt: QAbstractListModel/ListView Screenshot
diff --git a/examples/declarative/editingmodel/doc/qabstractlistmodelqml.png b/examples/qml/editingmodel/doc/qabstractlistmodelqml.png
index 6e181fba1..6e181fba1 100644
--- a/examples/declarative/editingmodel/doc/qabstractlistmodelqml.png
+++ b/examples/qml/editingmodel/doc/qabstractlistmodelqml.png
Binary files differ
diff --git a/examples/qml/editingmodel/main.py b/examples/qml/editingmodel/main.py
new file mode 100644
index 000000000..5240a9de0
--- /dev/null
+++ b/examples/qml/editingmodel/main.py
@@ -0,0 +1,21 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+from pathlib import Path
+
+from PySide6.QtCore import QUrl
+from PySide6.QtGui import QGuiApplication
+from PySide6.QtQml import QQmlApplicationEngine
+
+from model import BaseModel # noqa: F401
+
+if __name__ == "__main__":
+ app = QGuiApplication(sys.argv)
+ engine = QQmlApplicationEngine()
+ qml_file = Path(__file__).parent / "main.qml"
+ engine.load(QUrl.fromLocalFile(qml_file))
+
+ if not engine.rootObjects():
+ sys.exit(-1)
+ sys.exit(app.exec())
diff --git a/examples/declarative/editingmodel/main.pyproject b/examples/qml/editingmodel/main.pyproject
index 71272a973..71272a973 100644
--- a/examples/declarative/editingmodel/main.pyproject
+++ b/examples/qml/editingmodel/main.pyproject
diff --git a/examples/qml/editingmodel/main.qml b/examples/qml/editingmodel/main.qml
new file mode 100644
index 000000000..2318ae8b3
--- /dev/null
+++ b/examples/qml/editingmodel/main.qml
@@ -0,0 +1,106 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Window
+import BaseModel
+
+Window {
+ title: "Moving Rectangle"
+ width: 800
+ height: 480
+ visible: true
+ id: mainWindow
+
+ Column {
+ spacing: 20
+ anchors.fill: parent
+ id: mainColumn
+ Text {
+ padding: 20
+ font.pointSize: 10
+ width: 600
+ wrapMode: Text.Wrap
+ text: "This example shows how to add, remove and move items inside a QML ListView.\n
+It shows and edits data via roles using QAbstractListModel on the Python side.\n
+Use the 'Middle click' on top of a rectangle to remove an item.\n
+'Left click' and drag to move the items."
+ }
+
+ Button {
+ anchors {
+ left: mainColumn.left
+ right: mainColumn.right
+ margins: 30
+ }
+ text: "Reset view"
+ onClicked: lv.model.reset()
+ }
+
+ Button {
+ anchors {
+ left: mainColumn.left
+ right: mainColumn.right
+ margins: 30
+ }
+ text: "Add element"
+ onClicked: lv.model.append()
+ }
+
+ ListView {
+ id: lv
+ anchors {
+ left: mainColumn.left
+ right: mainColumn.right
+ margins: 30
+ }
+
+ height: 200
+ model: BaseModel {}
+ orientation: ListView.Horizontal
+ displaced: Transition {
+ NumberAnimation {
+ properties: "x,y"
+ easing.type: Easing.OutQuad
+ }
+ }
+ delegate: DropArea {
+ id: droparea
+ width: ratio * lv.width
+ height: lv.height
+
+ onEntered: function (drag) {
+ let dragindex = drag.source.modelIndex
+ if (index === dragindex)
+ return
+ lv.model.move(dragindex, index)
+ }
+
+ MovingRectangle {
+ modelIndex: index
+ dragParent: lv
+ sizeParent: droparea
+ }
+ }
+
+ MouseArea {
+ id: lvMousearea
+ anchors.fill: lv
+ z: -1
+ }
+ Rectangle {
+ id: lvBackground
+ anchors.fill: lv
+ anchors.margins: -border.width
+ color: "white"
+ border.color: "black"
+ border.width: 5
+ z: -1
+ }
+ Component.onCompleted: {
+ lv.model.reset()
+ }
+ }
+ }
+}
diff --git a/examples/qml/editingmodel/model.py b/examples/qml/editingmodel/model.py
new file mode 100644
index 000000000..02a1e5717
--- /dev/null
+++ b/examples/qml/editingmodel/model.py
@@ -0,0 +1,156 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+
+from PySide6.QtCore import QAbstractListModel, QByteArray, QModelIndex, Qt, Slot
+from PySide6.QtGui import QColor
+from PySide6.QtQml import QmlElement
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "BaseModel"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class BaseModel(QAbstractListModel):
+
+ RatioRole = Qt.UserRole + 1
+
+ def __init__(self, parent=None):
+ super().__init__(parent=parent)
+ self.db = []
+
+ def rowCount(self, parent=QModelIndex()):
+ return len(self.db)
+
+ def roleNames(self):
+ default = super().roleNames()
+ default[self.RatioRole] = QByteArray(b"ratio")
+ default[Qt.BackgroundRole] = QByteArray(b"backgroundColor")
+ return default
+
+ def data(self, index, role: int):
+ if not self.db:
+ ret = None
+ elif not index.isValid():
+ ret = None
+ elif role == Qt.DisplayRole:
+ ret = self.db[index.row()]["text"]
+ elif role == Qt.BackgroundRole:
+ ret = self.db[index.row()]["bgColor"]
+ elif role == self.RatioRole:
+ ret = self.db[index.row()]["ratio"]
+ else:
+ ret = None
+ return ret
+
+ def setData(self, index, value, role):
+ if not index.isValid():
+ return False
+ if role == Qt.EditRole:
+ self.db[index.row()]["text"] = value
+ return True
+
+ @Slot(result=bool)
+ def append(self):
+ """Slot to append a row at the end"""
+ return self.insertRow(self.rowCount())
+
+ def insertRow(self, row):
+ """Insert a single row at row"""
+ return self.insertRows(row, 0)
+
+ def insertRows(self, row: int, count, index=QModelIndex()):
+ """Insert n rows (n = 1 + count) at row"""
+
+ self.beginInsertRows(QModelIndex(), row, row + count)
+
+ # start database work
+ if len(self.db):
+ newid = max(x["id"] for x in self.db) + 1
+ else:
+ newid = 1
+ for i in range(count + 1): # at least one row
+ self.db.insert(
+ row, {"id": newid, "text": "new", "bgColor": QColor("purple"), "ratio": 0.2}
+ )
+ # end database work
+ self.endInsertRows()
+ return True
+
+ @Slot(int, int, result=bool)
+ def move(self, source: int, target: int):
+ """Slot to move a single row from source to target"""
+ return self.moveRow(QModelIndex(), source, QModelIndex(), target)
+
+ def moveRow(self, sourceParent, sourceRow, dstParent, dstChild):
+ """Move a single row"""
+ return self.moveRows(sourceParent, sourceRow, 0, dstParent, dstChild)
+
+ def moveRows(self, sourceParent, sourceRow, count, dstParent, dstChild):
+ """Move n rows (n=1+ count) from sourceRow to dstChild"""
+
+ if sourceRow == dstChild:
+ return False
+
+ elif sourceRow > dstChild:
+ end = dstChild
+
+ else:
+ end = dstChild + 1
+
+ self.beginMoveRows(QModelIndex(), sourceRow, sourceRow + count, QModelIndex(), end)
+
+ # start database work
+ pops = self.db[sourceRow: sourceRow + count + 1]
+ if sourceRow > dstChild:
+ self.db = (
+ self.db[:dstChild]
+ + pops
+ + self.db[dstChild:sourceRow]
+ + self.db[sourceRow + count + 1:]
+ )
+ else:
+ start = self.db[:sourceRow]
+ middle = self.db[dstChild: dstChild + 1]
+ endlist = self.db[dstChild + count + 1:]
+ self.db = start + middle + pops + endlist
+ # end database work
+
+ self.endMoveRows()
+ return True
+
+ @Slot(int, result=bool)
+ def remove(self, row: int):
+ """Slot to remove one row"""
+ return self.removeRow(row)
+
+ def removeRow(self, row, parent=QModelIndex()):
+ """Remove one row at index row"""
+ return self.removeRows(row, 0, parent)
+
+ def removeRows(self, row: int, count: int, parent=QModelIndex()):
+ """Remove n rows (n=1+count) starting at row"""
+ self.beginRemoveRows(QModelIndex(), row, row + count)
+
+ # start database work
+ self.db = self.db[:row] + self.db[row + count + 1:]
+ # end database work
+
+ self.endRemoveRows()
+ return True
+
+ @Slot(result=bool)
+ def reset(self):
+ self.beginResetModel()
+ self.resetInternalData() # should work without calling it ?
+ self.endResetModel()
+ return True
+
+ def resetInternalData(self):
+ self.db = [
+ {"id": 3, "bgColor": QColor("red"), "ratio": 0.15, "text": "first"},
+ {"id": 1, "bgColor": QColor("blue"), "ratio": 0.1, "text": "second"},
+ {"id": 2, "bgColor": QColor("green"), "ratio": 0.2, "text": "third"},
+ ]
diff --git a/examples/qml/signals/pytoqml1/main.py b/examples/qml/signals/pytoqml1/main.py
new file mode 100644
index 000000000..5bc27a521
--- /dev/null
+++ b/examples/qml/signals/pytoqml1/main.py
@@ -0,0 +1,31 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import os
+from pathlib import Path
+import sys
+from PySide6.QtCore import QTimer, QUrl
+from PySide6.QtGui import QGuiApplication
+from PySide6.QtQuick import QQuickView
+
+if __name__ == '__main__':
+ app = QGuiApplication(sys.argv)
+
+ timer = QTimer()
+ timer.start(2000)
+
+ view = QQuickView()
+ qml_file = os.fspath(Path(__file__).resolve().parent / 'view.qml')
+ view.setSource(QUrl.fromLocalFile(qml_file))
+ if view.status() == QQuickView.Error:
+ sys.exit(-1)
+ root = view.rootObject()
+
+ timer.timeout.connect(root.updateRotater)
+
+ view.show()
+ res = app.exec()
+ # Deleting the view before it goes out of scope is required to make sure all child QML instances
+ # are destroyed in the correct order.
+ del view
+ sys.exit(res)
diff --git a/examples/declarative/signals/pytoqml1/pytoqml1.pyproject b/examples/qml/signals/pytoqml1/pytoqml1.pyproject
index e6f087cce..e6f087cce 100644
--- a/examples/declarative/signals/pytoqml1/pytoqml1.pyproject
+++ b/examples/qml/signals/pytoqml1/pytoqml1.pyproject
diff --git a/examples/qml/signals/pytoqml1/view.qml b/examples/qml/signals/pytoqml1/view.qml
new file mode 100644
index 000000000..af2d966be
--- /dev/null
+++ b/examples/qml/signals/pytoqml1/view.qml
@@ -0,0 +1,36 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+
+Rectangle {
+ id: page
+
+ function updateRotater() {
+ rotater.angle = rotater.angle + 45
+ }
+
+ width: 500; height: 200
+ color: "lightgray"
+
+ Rectangle {
+ id: rotater
+ property real angle : 0
+ x: 240
+ width: 100; height: 10
+ color: "black"
+ y: 95
+
+ transform: Rotation {
+ origin.x: 10; origin.y: 5
+ angle: rotater.angle
+ Behavior on angle {
+ SpringAnimation {
+ spring: 1.4
+ damping: .05
+ }
+ }
+ }
+ }
+
+}
diff --git a/examples/qml/signals/pytoqml2/main.py b/examples/qml/signals/pytoqml2/main.py
new file mode 100644
index 000000000..3a3650aba
--- /dev/null
+++ b/examples/qml/signals/pytoqml2/main.py
@@ -0,0 +1,54 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import os
+from pathlib import Path
+import sys
+from PySide6.QtCore import QObject, QTimer, QUrl, Signal, Slot
+from PySide6.QtGui import QGuiApplication
+from PySide6.QtQuick import QQuickView
+from PySide6.QtQml import QmlElement
+
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "examples.signals.pytoqml2"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class RotateValue(QObject):
+ valueChanged = Signal(int, arguments=['val'])
+
+ def __init__(self):
+ super().__init__()
+ self.r = 0
+
+ @Slot()
+ def increment(self):
+ self.r = self.r + 10
+ self.valueChanged.emit(self.r)
+
+
+if __name__ == '__main__':
+ app = QGuiApplication(sys.argv)
+ view = QQuickView()
+
+ rotatevalue = RotateValue()
+ timer = QTimer()
+ timer.start(2000)
+ view.setInitialProperties({"rotatevalue": rotatevalue})
+
+ qml_file = os.fspath(Path(__file__).resolve().parent / 'view.qml')
+ view.setSource(QUrl.fromLocalFile(qml_file))
+ if view.status() == QQuickView.Error:
+ sys.exit(-1)
+
+ timer.timeout.connect(rotatevalue.increment)
+
+ view.show()
+ res = app.exec()
+ # Deleting the view before it goes out of scope is required to make
+ # sure all child QML instances are destroyed in the correct order.
+ del view
+ sys.exit(res)
diff --git a/examples/declarative/signals/pytoqml2/pytoqml2.pyproject b/examples/qml/signals/pytoqml2/pytoqml2.pyproject
index e6f087cce..e6f087cce 100644
--- a/examples/declarative/signals/pytoqml2/pytoqml2.pyproject
+++ b/examples/qml/signals/pytoqml2/pytoqml2.pyproject
diff --git a/examples/qml/signals/pytoqml2/view.qml b/examples/qml/signals/pytoqml2/view.qml
new file mode 100644
index 000000000..2e9128f53
--- /dev/null
+++ b/examples/qml/signals/pytoqml2/view.qml
@@ -0,0 +1,30 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQml
+
+import examples.signals.pytoqml2 1.0
+
+Rectangle {
+ id: page
+
+ width: 500; height: 200
+ color: "lightgray"
+ required property RotateValue rotatevalue
+
+ Text {
+ id: helloText
+ text: "Hello world!"
+ anchors.horizontalCenter: page.horizontalCenter
+ y: 30
+ font.pointSize: 24; font.bold: true
+ }
+
+ Connections {
+ target: rotatevalue
+ function onValueChanged(val) {
+ helloText.rotation = val
+ }
+ }
+}
diff --git a/examples/qml/signals/qmltopy1/main.py b/examples/qml/signals/qmltopy1/main.py
new file mode 100644
index 000000000..83966903c
--- /dev/null
+++ b/examples/qml/signals/qmltopy1/main.py
@@ -0,0 +1,50 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import os
+from pathlib import Path
+import sys
+from PySide6.QtCore import QObject, QUrl, Slot
+from PySide6.QtGui import QGuiApplication
+from PySide6.QtQuick import QQuickView
+from PySide6.QtQml import QmlElement
+
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "examples.signals.qmltopy1"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class Console(QObject):
+ """Output stuff on the console."""
+
+ @Slot(str)
+ @Slot('double')
+ def output(self, s):
+ print(s)
+
+ @Slot(str)
+ def outputStr(self, s):
+ print(s)
+
+ @Slot('double')
+ def outputFloat(self, x):
+ print(x)
+
+
+if __name__ == '__main__':
+ app = QGuiApplication(sys.argv)
+ view = QQuickView()
+
+ qml_file = os.fspath(Path(__file__).resolve().parent / 'view.qml')
+ view.setSource(QUrl.fromLocalFile(qml_file))
+ if view.status() == QQuickView.Error:
+ sys.exit(-1)
+ view.show()
+ res = app.exec()
+ # Deleting the view before it goes out of scope is required to make sure all child QML instances
+ # are destroyed in the correct order.
+ del view
+ sys.exit(res)
diff --git a/examples/declarative/signals/qmltopy1/qmltopy1.pyproject b/examples/qml/signals/qmltopy1/qmltopy1.pyproject
index e6f087cce..e6f087cce 100644
--- a/examples/declarative/signals/qmltopy1/qmltopy1.pyproject
+++ b/examples/qml/signals/qmltopy1/qmltopy1.pyproject
diff --git a/examples/qml/signals/qmltopy1/view.qml b/examples/qml/signals/qmltopy1/view.qml
new file mode 100644
index 000000000..b10e2e77d
--- /dev/null
+++ b/examples/qml/signals/qmltopy1/view.qml
@@ -0,0 +1,54 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+
+import QtQuick
+
+import examples.signals.qmltopy1 1.0
+
+Rectangle {
+ id: page
+
+ width: 500; height: 200
+ color: "lightgray"
+
+ Console {
+ id: pyConsole
+ }
+
+ Text {
+ id: helloText
+ text: "Hello world!"
+ anchors.horizontalCenter: page.horizontalCenter
+ y: 30
+ font.pointSize: 24; font.bold: true
+ }
+
+ Rectangle {
+ id: button
+ width: 150; height: 40
+ color: "darkgray"
+ anchors.horizontalCenter: page.horizontalCenter
+ y: 120
+ MouseArea {
+ id: buttonMouseArea
+ objectName: "buttonMouseArea"
+ anchors.fill: parent
+ onClicked: {
+ // once the "console" context has been declared,
+ // slots can be called like functions
+ pyConsole.outputFloat(123)
+ pyConsole.outputStr("foobar")
+ pyConsole.output(helloText.x)
+ pyConsole.output(helloText.text)
+ }
+ }
+ Text {
+ id: buttonText
+ text: "Press me!"
+ anchors.horizontalCenter: button.horizontalCenter
+ anchors.verticalCenter: button.verticalCenter
+ font.pointSize: 16
+ }
+ }
+}
diff --git a/examples/qml/signals/qmltopy2/main.py b/examples/qml/signals/qmltopy2/main.py
new file mode 100644
index 000000000..bc2e8d3ed
--- /dev/null
+++ b/examples/qml/signals/qmltopy2/main.py
@@ -0,0 +1,45 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import os
+from pathlib import Path
+import sys
+from PySide6.QtCore import QObject, QUrl, Slot
+from PySide6.QtGui import QGuiApplication
+from PySide6.QtQuick import QQuickView
+from PySide6.QtQml import QmlElement
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "examples.signals.qmltopy2"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class RotateValue(QObject):
+ def __init__(self):
+ super().__init__()
+ self.r = 0
+
+ # If a slot returns a value, the return value type must be explicitly
+ # defined in the decorator.
+ @Slot(result=int)
+ def val(self):
+ self.r = self.r + 10
+ return self.r
+
+
+if __name__ == '__main__':
+ app = QGuiApplication(sys.argv)
+ view = QQuickView()
+
+ qml_file = os.fspath(Path(__file__).resolve().parent / 'view.qml')
+ view.setSource(QUrl.fromLocalFile(qml_file))
+ if view.status() == QQuickView.Error:
+ sys.exit(-1)
+ view.show()
+ res = app.exec()
+ # Deleting the view before it goes out of scope is required to make sure all child QML instances
+ # are destroyed in the correct order.
+ del view
+ sys.exit(res)
diff --git a/examples/declarative/signals/qmltopy2/qmltopy2.pyproject b/examples/qml/signals/qmltopy2/qmltopy2.pyproject
index e6f087cce..e6f087cce 100644
--- a/examples/declarative/signals/qmltopy2/qmltopy2.pyproject
+++ b/examples/qml/signals/qmltopy2/qmltopy2.pyproject
diff --git a/examples/qml/signals/qmltopy2/view.qml b/examples/qml/signals/qmltopy2/view.qml
new file mode 100644
index 000000000..4bbda574c
--- /dev/null
+++ b/examples/qml/signals/qmltopy2/view.qml
@@ -0,0 +1,49 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+
+import examples.signals.qmltopy2 1.0
+
+Rectangle {
+ id: page
+
+ width: 500; height: 200
+ color: "lightgray"
+
+ RotateValue {
+ id: rotatevalue
+ }
+
+ Text {
+ id: helloText
+ text: "Hello world!"
+ anchors.horizontalCenter: page.horizontalCenter
+ y: 30
+ font.pointSize: 24; font.bold: true
+ }
+
+
+ Rectangle {
+ id: button
+ width: 150; height: 40
+ color: "darkgray"
+ anchors.horizontalCenter: page.horizontalCenter
+ y: 120
+ MouseArea {
+ id: buttonMouseArea
+ objectName: "buttonMouseArea"
+ anchors.fill: parent
+ onClicked: {
+ helloText.rotation = rotatevalue.val()
+ }
+ }
+ Text {
+ id: buttonText
+ text: "Press me!"
+ anchors.horizontalCenter: button.horizontalCenter
+ anchors.verticalCenter: button.verticalCenter
+ font.pointSize: 16
+ }
+ }
+}
diff --git a/examples/qml/signals/qmltopy3/main.py b/examples/qml/signals/qmltopy3/main.py
new file mode 100644
index 000000000..6a5554842
--- /dev/null
+++ b/examples/qml/signals/qmltopy3/main.py
@@ -0,0 +1,33 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import os
+from pathlib import Path
+import sys
+from PySide6.QtCore import QUrl
+from PySide6.QtGui import QGuiApplication
+from PySide6.QtQuick import QQuickView
+
+
+def sayThis(s):
+ print(s)
+
+
+if __name__ == '__main__':
+ app = QGuiApplication(sys.argv)
+ view = QQuickView()
+ qml_file = os.fspath(Path(__file__).resolve().parent / 'view.qml')
+ view.setSource(QUrl.fromLocalFile(qml_file))
+ if view.status() == QQuickView.Error:
+ sys.exit(-1)
+
+ root = view.rootObject()
+ root.textRotationChanged.connect(sayThis)
+ root.buttonClicked.connect(lambda: sayThis("clicked button (QML top-level signal)"))
+
+ view.show()
+ res = app.exec()
+ # Deleting the view before it goes out of scope is required to make sure all child QML instances
+ # are destroyed in the correct order.
+ del view
+ sys.exit(res)
diff --git a/examples/declarative/signals/qmltopy3/qmltopy3.pyproject b/examples/qml/signals/qmltopy3/qmltopy3.pyproject
index e6f087cce..e6f087cce 100644
--- a/examples/declarative/signals/qmltopy3/qmltopy3.pyproject
+++ b/examples/qml/signals/qmltopy3/qmltopy3.pyproject
diff --git a/examples/qml/signals/qmltopy3/view.qml b/examples/qml/signals/qmltopy3/view.qml
new file mode 100644
index 000000000..3e8a0f564
--- /dev/null
+++ b/examples/qml/signals/qmltopy3/view.qml
@@ -0,0 +1,66 @@
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+
+Rectangle {
+ id: page
+
+ signal buttonClicked
+ signal textRotationChanged(double rot)
+
+ width: 500; height: 200
+ color: "lightgray"
+
+ Text {
+ id: helloText
+ text: "Hello world!"
+ y: 30
+ x: page.width/2-width/2
+ font.pointSize: 24; font.bold: true
+ onRotationChanged: textRotationChanged(rotation)
+
+ states: State {
+ name: "down"; when: buttonMouseArea.pressed === true
+ PropertyChanges {
+ target: helloText;
+ rotation: 180;
+ y: 100;
+ }
+ }
+
+ transitions: Transition {
+ from: ""; to: "down"; reversible: true
+ ParallelAnimation {
+ NumberAnimation {
+ properties: "y,rotation"
+ duration: 500
+ easing.type: Easing.InOutQuad
+ }
+ }
+ }
+ }
+
+ Rectangle {
+ id: button
+ width: 150; height: 40
+ color: "darkgray"
+ anchors.horizontalCenter: page.horizontalCenter
+ y: 120
+ MouseArea {
+ id: buttonMouseArea
+ objectName: "buttonMouseArea"
+ anchors.fill: parent
+ onClicked: {
+ buttonClicked()
+ }
+ }
+ Text {
+ id: buttonText
+ text: "Press me!"
+ anchors.horizontalCenter: button.horizontalCenter
+ anchors.verticalCenter: button.verticalCenter
+ font.pointSize: 16
+ }
+ }
+}
diff --git a/examples/qml/signals/qmltopy4/main.py b/examples/qml/signals/qmltopy4/main.py
new file mode 100644
index 000000000..8a56073d1
--- /dev/null
+++ b/examples/qml/signals/qmltopy4/main.py
@@ -0,0 +1,33 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import os
+from pathlib import Path
+import sys
+from PySide6.QtCore import QObject, QUrl
+from PySide6.QtGui import QGuiApplication
+from PySide6.QtQuick import QQuickView
+
+
+def sayThis(s):
+ print(s)
+
+
+if __name__ == '__main__':
+ app = QGuiApplication(sys.argv)
+ view = QQuickView()
+ qml_file = os.fspath(Path(__file__).resolve().parent / 'view.qml')
+ view.setSource(QUrl.fromLocalFile(qml_file))
+ if view.status() == QQuickView.Error:
+ sys.exit(-1)
+
+ root = view.rootObject()
+ button = root.findChild(QObject, "buttonMouseArea")
+ button.clicked.connect(lambda: sayThis("clicked button (signal directly connected)"))
+
+ view.show()
+ res = app.exec()
+ # Deleting the view before it goes out of scope is required to make sure all child QML instances
+ # are destroyed in the correct order.
+ del view
+ sys.exit(res)
diff --git a/examples/declarative/signals/qmltopy4/qmltopy4.pyproject b/examples/qml/signals/qmltopy4/qmltopy4.pyproject
index e6f087cce..e6f087cce 100644
--- a/examples/declarative/signals/qmltopy4/qmltopy4.pyproject
+++ b/examples/qml/signals/qmltopy4/qmltopy4.pyproject
diff --git a/examples/qml/signals/qmltopy4/view.qml b/examples/qml/signals/qmltopy4/view.qml
new file mode 100644
index 000000000..771b14c47
--- /dev/null
+++ b/examples/qml/signals/qmltopy4/view.qml
@@ -0,0 +1,31 @@
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+
+Rectangle {
+ id: page
+
+ width: 500; height: 200
+ color: "lightgray"
+
+ Rectangle {
+ id: button
+ width: 150; height: 40
+ color: "darkgray"
+ anchors.horizontalCenter: page.horizontalCenter
+ anchors.verticalCenter: page.verticalCenter
+ MouseArea {
+ id: buttonMouseArea
+ objectName: "buttonMouseArea"
+ anchors.fill: parent
+ }
+ Text {
+ id: buttonText
+ text: "Press me!"
+ anchors.horizontalCenter: button.horizontalCenter
+ anchors.verticalCenter: button.verticalCenter
+ font.pointSize: 16
+ }
+ }
+}
diff --git a/examples/declarative/textproperties/doc/textproperties.png b/examples/qml/textproperties/doc/textproperties.png
index b14bb73d7..b14bb73d7 100644
--- a/examples/declarative/textproperties/doc/textproperties.png
+++ b/examples/qml/textproperties/doc/textproperties.png
Binary files differ
diff --git a/examples/declarative/textproperties/doc/textproperties.rst b/examples/qml/textproperties/doc/textproperties.rst
index 81829dfdc..81829dfdc 100644
--- a/examples/declarative/textproperties/doc/textproperties.rst
+++ b/examples/qml/textproperties/doc/textproperties.rst
diff --git a/examples/qml/textproperties/main.py b/examples/qml/textproperties/main.py
new file mode 100644
index 000000000..4e6afc9ff
--- /dev/null
+++ b/examples/qml/textproperties/main.py
@@ -0,0 +1,76 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+from pathlib import Path
+
+from PySide6.QtCore import QObject, Slot
+from PySide6.QtGui import QGuiApplication
+from PySide6.QtQml import QQmlApplicationEngine, QmlElement
+from PySide6.QtQuickControls2 import QQuickStyle
+
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "io.qt.textproperties"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class Bridge(QObject):
+
+ @Slot(str, result=str)
+ def getColor(self, s):
+ if s.lower() == "red":
+ return "#ef9a9a"
+ elif s.lower() == "green":
+ return "#a5d6a7"
+ elif s.lower() == "blue":
+ return "#90caf9"
+ else:
+ return "white"
+
+ @Slot(float, result=int)
+ def getSize(self, s):
+ size = int(s * 34)
+ if size <= 0:
+ return 1
+ else:
+ return size
+
+ @Slot(str, result=bool)
+ def getItalic(self, s):
+ if s.lower() == "italic":
+ return True
+ else:
+ return False
+
+ @Slot(str, result=bool)
+ def getBold(self, s):
+ if s.lower() == "bold":
+ return True
+ else:
+ return False
+
+ @Slot(str, result=bool)
+ def getUnderline(self, s):
+ if s.lower() == "underline":
+ return True
+ else:
+ return False
+
+
+if __name__ == '__main__':
+ app = QGuiApplication(sys.argv)
+ QQuickStyle.setStyle("Material")
+ engine = QQmlApplicationEngine()
+
+ # Get the path of the current directory, and then add the name
+ # of the QML file, to load it.
+ qml_file = Path(__file__).parent / 'view.qml'
+ engine.load(qml_file)
+
+ if not engine.rootObjects():
+ sys.exit(-1)
+
+ sys.exit(app.exec())
diff --git a/examples/declarative/textproperties/textproperties.pyproject b/examples/qml/textproperties/textproperties.pyproject
index e6f087cce..e6f087cce 100644
--- a/examples/declarative/textproperties/textproperties.pyproject
+++ b/examples/qml/textproperties/textproperties.pyproject
diff --git a/examples/qml/textproperties/view.qml b/examples/qml/textproperties/view.qml
new file mode 100644
index 000000000..c722eb4eb
--- /dev/null
+++ b/examples/qml/textproperties/view.qml
@@ -0,0 +1,160 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+
+import QtQuick
+import QtQuick.Layouts
+import QtQuick.Controls
+import QtQuick.Window
+import QtQuick.Controls.Material
+
+import io.qt.textproperties
+
+ApplicationWindow {
+ id: page
+ width: 800
+ height: 400
+ visible: true
+ Material.theme: Material.Dark
+ Material.accent: Material.Red
+
+ Bridge {
+ id: bridge
+ }
+
+ GridLayout {
+ id: grid
+ columns: 2
+ rows: 3
+
+ ColumnLayout {
+ spacing: 2
+ Layout.columnSpan: 1
+ Layout.preferredWidth: 400
+
+ Text {
+ id: leftlabel
+ Layout.alignment: Qt.AlignHCenter
+ color: "white"
+ font.pointSize: 16
+ text: "Qt for Python"
+ Layout.preferredHeight: 100
+ Material.accent: Material.Green
+ }
+
+ RadioButton {
+ id: italic
+ Layout.alignment: Qt.AlignLeft
+ text: "Italic"
+ onToggled: {
+ leftlabel.font.italic = bridge.getItalic(italic.text)
+ leftlabel.font.bold = bridge.getBold(italic.text)
+ leftlabel.font.underline = bridge.getUnderline(italic.text)
+
+ }
+ }
+ RadioButton {
+ id: bold
+ Layout.alignment: Qt.AlignLeft
+ text: "Bold"
+ onToggled: {
+ leftlabel.font.italic = bridge.getItalic(bold.text)
+ leftlabel.font.bold = bridge.getBold(bold.text)
+ leftlabel.font.underline = bridge.getUnderline(bold.text)
+ }
+ }
+ RadioButton {
+ id: underline
+ Layout.alignment: Qt.AlignLeft
+ text: "Underline"
+ onToggled: {
+ leftlabel.font.italic = bridge.getItalic(underline.text)
+ leftlabel.font.bold = bridge.getBold(underline.text)
+ leftlabel.font.underline = bridge.getUnderline(underline.text)
+ }
+ }
+ RadioButton {
+ id: noneradio
+ Layout.alignment: Qt.AlignLeft
+ text: "None"
+ checked: true
+ onToggled: {
+ leftlabel.font.italic = bridge.getItalic(noneradio.text)
+ leftlabel.font.bold = bridge.getBold(noneradio.text)
+ leftlabel.font.underline = bridge.getUnderline(noneradio.text)
+ }
+ }
+ }
+
+ ColumnLayout {
+ id: rightcolumn
+ spacing: 2
+ Layout.columnSpan: 1
+ Layout.preferredWidth: 400
+ Layout.preferredHeight: 400
+ Layout.fillWidth: true
+
+ RowLayout {
+ Layout.alignment: Qt.AlignVCenter | Qt.AlignHCenter
+
+
+ Button {
+ id: red
+ text: "Red"
+ highlighted: true
+ Material.accent: Material.Red
+ onClicked: {
+ leftlabel.color = bridge.getColor(red.text)
+ }
+ }
+ Button {
+ id: green
+ text: "Green"
+ highlighted: true
+ Material.accent: Material.Green
+ onClicked: {
+ leftlabel.color = bridge.getColor(green.text)
+ }
+ }
+ Button {
+ id: blue
+ text: "Blue"
+ highlighted: true
+ Material.accent: Material.Blue
+ onClicked: {
+ leftlabel.color = bridge.getColor(blue.text)
+ }
+ }
+ Button {
+ id: nonebutton
+ text: "None"
+ highlighted: true
+ Material.accent: Material.BlueGrey
+ onClicked: {
+ leftlabel.color = bridge.getColor(nonebutton.text)
+ }
+ }
+ }
+ RowLayout {
+ Layout.fillWidth: true
+ Layout.alignment: Qt.AlignVCenter | Qt.AlignHCenter
+ Text {
+ id: rightlabel
+ color: "white"
+ Layout.alignment: Qt.AlignLeft
+ text: "Font size"
+ Material.accent: Material.White
+ }
+ Slider {
+ width: rightcolumn.width*0.6
+ Layout.alignment: Qt.AlignRight
+ id: slider
+ value: 0.5
+ onValueChanged: {
+ leftlabel.font.pointSize = bridge.getSize(value)
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/examples/qml/tutorials/extending-qml-advanced/adding/People/Main.qml b/examples/qml/tutorials/extending-qml-advanced/adding/People/Main.qml
new file mode 100644
index 000000000..8d963a861
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/adding/People/Main.qml
@@ -0,0 +1,9 @@
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import People
+
+Person {
+ name: "Bob Jones"
+ shoe_size: 12
+}
diff --git a/examples/qml/tutorials/extending-qml-advanced/adding/People/qmldir b/examples/qml/tutorials/extending-qml-advanced/adding/People/qmldir
new file mode 100644
index 000000000..a2bd9515a
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/adding/People/qmldir
@@ -0,0 +1,3 @@
+module People
+typeinfo coercion.qmltypes
+Main 1.0 Main.qml
diff --git a/examples/qml/tutorials/extending-qml-advanced/adding/adding.pyproject b/examples/qml/tutorials/extending-qml-advanced/adding/adding.pyproject
new file mode 100644
index 000000000..3219f79ca
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/adding/adding.pyproject
@@ -0,0 +1,4 @@
+{
+ "files": ["main.py", "person.py",
+ "People/Main.qml", "People/qmldir"]
+}
diff --git a/examples/qml/tutorials/extending-qml-advanced/adding/doc/adding.rst b/examples/qml/tutorials/extending-qml-advanced/adding/doc/adding.rst
new file mode 100644
index 000000000..4c1b3bdae
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/adding/doc/adding.rst
@@ -0,0 +1,67 @@
+.. _qml-adding-types-example:
+
+Extending QML - Adding Types Example
+====================================
+
+The Adding Types Example shows how to add a new object type, ``Person``, to QML.
+The ``Person`` type can be used from QML like this:
+
+.. code-block:: javascript
+
+ import examples.adding.people
+
+ Person {
+ name: "Bob Jones"
+ shoe_size: 12
+ }
+
+Declare the Person Class
+------------------------
+
+All QML types map to C++ types. Here we declare a basic C++ Person class
+with the two properties we want accessible on the QML type - name and shoeSize.
+Although in this example we use the same name for the C++ class as the QML
+type, the C++ class can be named differently, or appear in a namespace.
+
+The Person class implementation is quite basic. The property accessors simply
+return members of the object instance.
+
+.. code-block:: python
+
+ from PySide6.QtCore import QObject, Property
+ from PySide6.QtQml import QmlElement
+
+ # To be used on the @QmlElement decorator
+ # (QML_IMPORT_MINOR_VERSION is optional)
+ QML_IMPORT_NAME = "People"
+ QML_IMPORT_MAJOR_VERSION = 1
+
+
+ @QmlElement
+ class Person(QObject):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._name = ''
+ self._shoe_size = 0
+
+ @Property(str)
+ def name(self):
+ return self._name
+
+ @name.setter
+ def name(self, n):
+ self._name = n
+
+ @Property(int)
+ def shoe_size(self):
+ return self._shoe_size
+
+ @shoe_size.setter
+ def shoe_size(self, s):
+ self._shoe_size = s
+
+Running the Example
+-------------------
+
+The main.py file in the example includes a simple shell application that
+loads and runs the QML snippet shown at the beginning of this page.
diff --git a/examples/qml/tutorials/extending-qml-advanced/adding/main.py b/examples/qml/tutorials/extending-qml-advanced/adding/main.py
new file mode 100644
index 000000000..ec703dbf3
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/adding/main.py
@@ -0,0 +1,30 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the qml/examples/qml/referenceexamples/adding example from Qt v6.x"""
+
+from pathlib import Path
+import sys
+
+from PySide6.QtCore import QCoreApplication
+from PySide6.QtQml import QQmlComponent, QQmlEngine
+
+from person import Person # noqa: F401
+
+
+if __name__ == '__main__':
+ app = QCoreApplication(sys.argv)
+
+ engine = QQmlEngine()
+ engine.addImportPath(Path(__file__).parent)
+ component = QQmlComponent(engine)
+ component.loadFromModule("People", "Main")
+
+ person = component.create()
+ if person:
+ print(f"The person's name is {person.name}")
+ print(f"They wear a {person.shoe_size} sized shoe")
+ else:
+ print(component.errors())
+ del engine
+ sys.exit(0)
diff --git a/examples/qml/tutorials/extending-qml-advanced/adding/person.py b/examples/qml/tutorials/extending-qml-advanced/adding/person.py
new file mode 100644
index 000000000..526eae714
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/adding/person.py
@@ -0,0 +1,34 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject, Property
+from PySide6.QtQml import QmlElement
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "People"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class Person(QObject):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._name = ''
+ self._shoe_size = 0
+
+ @Property(str)
+ def name(self):
+ return self._name
+
+ @name.setter
+ def name(self, n):
+ self._name = n
+
+ @Property(int)
+ def shoe_size(self):
+ return self._shoe_size
+
+ @shoe_size.setter
+ def shoe_size(self, s):
+ self._shoe_size = s
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/People/Main.qml b/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/People/Main.qml
new file mode 100644
index 000000000..c14051371
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/People/Main.qml
@@ -0,0 +1,16 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import People
+
+BirthdayParty {
+ host: Person {
+ name: "Bob Jones"
+ shoe_size: 12
+ }
+ guests: [
+ Person { name: "Leo Hodges" },
+ Person { name: "Jack Smith" },
+ Person { name: "Anne Brown" }
+ ]
+}
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/People/qmldir b/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/People/qmldir
new file mode 100644
index 000000000..a2bd9515a
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/People/qmldir
@@ -0,0 +1,3 @@
+module People
+typeinfo coercion.qmltypes
+Main 1.0 Main.qml
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/advanced1-Base-project.pyproject b/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/advanced1-Base-project.pyproject
new file mode 100644
index 000000000..09942ebcc
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/advanced1-Base-project.pyproject
@@ -0,0 +1,4 @@
+{
+ "files": ["main.py", "birthdayparty.py", "person.py",
+ "People/Main.qml", "People/qmldir"]
+}
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/birthdayparty.py b/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/birthdayparty.py
new file mode 100644
index 000000000..764815175
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/birthdayparty.py
@@ -0,0 +1,46 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject, Property, Signal
+from PySide6.QtQml import QmlElement, ListProperty
+
+from person import Person
+
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "People"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class BirthdayParty(QObject):
+ host_changed = Signal()
+ guests_changed = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._host = None
+ self._guests = []
+
+ @Property(Person, notify=host_changed, final=True)
+ def host(self):
+ return self._host
+
+ @host.setter
+ def host(self, h):
+ if self._host != h:
+ self._host = h
+ self.host_changed.emit()
+
+ def guest(self, n):
+ return self._guests[n]
+
+ def guestCount(self):
+ return len(self._guests)
+
+ def appendGuest(self, guest):
+ self._guests.append(guest)
+ self.guests_changed.emit()
+
+ guests = ListProperty(Person, appendGuest, notify=guests_changed, final=True)
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/doc/advanced1-Base-project.rst b/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/doc/advanced1-Base-project.rst
new file mode 100644
index 000000000..90a73b78d
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/doc/advanced1-Base-project.rst
@@ -0,0 +1,57 @@
+.. _qml-advanced1-base-project:
+
+Extending QML (advanced) - BirthdayParty Base Project
+=====================================================
+
+This is the first of a series of 6 examples forming a tutorial using the
+example of a birthday party to demonstrate some of the advanced features of
+QML. The code for the various features explained below is based on this
+birthday party project and relies on some of the material in the basic
+tutorial. This simple example is then expanded upon to illustrate the various
+QML extensions explained below. The complete code for each new extension to the
+code can be found at the end of the respective page.
+
+The base project defines the ``Person`` class and the ``BirthdayParty`` class,
+which model the attendees and the party itself respectively.
+
+.. literalinclude:: person.py
+ :lineno-start: 13
+ :lines: 13-41
+
+.. literalinclude:: birthdayparty.py
+ :lineno-start: 16
+ :lines: 16-46
+
+All the information about the party can then be stored in the corresponding QML
+file.
+
+.. literalinclude:: People/Main.qml
+ :lineno-start: 4
+ :lines: 4-16
+
+
+The ``main.py`` file creates a simple shell application that displays whose
+birthday it is and who is invited to their party.
+
+.. literalinclude:: main.py
+ :lineno-start: 17
+ :lines: 17-21
+
+The app outputs the following summary of the party::
+
+ "Bob Jones" is having a birthday!
+ They are inviting:
+ "Leo Hodges"
+ "Jack Smith"
+ "Anne Brown"
+
+Outlook
+-------
+
+The following sections go into how to add support for ``Boy`` and ``Girl``
+attendees instead of just ``Person`` by using inheritance and coercion, how to
+make use of default properties to implicitly assign attendees of the party as
+guests, how to assign properties as groups instead of one by one, how to use
+attached objects to keep track of invited guests' reponses, how to use a
+property value source to display the lyrics of the happy birthday song over
+time, and how to expose third party objects to QML.
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/main.py b/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/main.py
new file mode 100644
index 000000000..560db6602
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/main.py
@@ -0,0 +1,33 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the
+ qml/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project example from Qt v6.x"""
+
+from pathlib import Path
+import sys
+
+from PySide6.QtCore import QCoreApplication
+from PySide6.QtQml import QQmlComponent, QQmlEngine
+
+from person import Person # noqa: F401
+from birthdayparty import BirthdayParty # noqa: F401
+
+
+app = QCoreApplication(sys.argv)
+engine = QQmlEngine()
+engine.addImportPath(Path(__file__).parent)
+component = QQmlComponent(engine)
+component.loadFromModule("People", "Main")
+party = component.create()
+if not party:
+ print(component.errors())
+ del engine
+ sys.exit(-1)
+host = party.host
+print(f"{host.name} is having a birthday!\nThey are inviting:")
+for g in range(party.guestCount()):
+ name = party.guest(g).name
+ print(f" {name}")
+del engine
+sys.exit(0)
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/person.py b/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/person.py
new file mode 100644
index 000000000..60dc9d882
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/person.py
@@ -0,0 +1,41 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject, Property, Signal
+from PySide6.QtQml import QmlElement
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "People"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class Person(QObject):
+ name_changed = Signal()
+ shoe_size_changed = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._name = ''
+ self._shoe_size = 0
+
+ @Property(str, notify=name_changed, final=True)
+ def name(self):
+ return self._name
+
+ @name.setter
+ def name(self, n):
+ if self._name != n:
+ self._name = n
+ self.name_changed.emit()
+
+ @Property(int, notify=shoe_size_changed, final=True)
+ def shoe_size(self):
+ return self._shoe_size
+
+ @shoe_size.setter
+ def shoe_size(self, s):
+ if self._shoe_size != s:
+ self._shoe_size = s
+ self.shoe_size_changed.emit()
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/People/Main.qml b/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/People/Main.qml
new file mode 100644
index 000000000..b2b7ace93
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/People/Main.qml
@@ -0,0 +1,16 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import People
+
+BirthdayParty {
+ host: Boy {
+ name: "Bob Jones"
+ shoe_size: 12
+ }
+ guests: [
+ Boy { name: "Leo Hodges" },
+ Boy { name: "Jack Smith" },
+ Girl { name: "Anne Brown" }
+ ]
+}
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/People/qmldir b/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/People/qmldir
new file mode 100644
index 000000000..a2bd9515a
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/People/qmldir
@@ -0,0 +1,3 @@
+module People
+typeinfo coercion.qmltypes
+Main 1.0 Main.qml
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/advanced2-Inheritance-and-coercion.pyproject b/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/advanced2-Inheritance-and-coercion.pyproject
new file mode 100644
index 000000000..09942ebcc
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/advanced2-Inheritance-and-coercion.pyproject
@@ -0,0 +1,4 @@
+{
+ "files": ["main.py", "birthdayparty.py", "person.py",
+ "People/Main.qml", "People/qmldir"]
+}
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/birthdayparty.py b/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/birthdayparty.py
new file mode 100644
index 000000000..764815175
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/birthdayparty.py
@@ -0,0 +1,46 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject, Property, Signal
+from PySide6.QtQml import QmlElement, ListProperty
+
+from person import Person
+
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "People"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class BirthdayParty(QObject):
+ host_changed = Signal()
+ guests_changed = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._host = None
+ self._guests = []
+
+ @Property(Person, notify=host_changed, final=True)
+ def host(self):
+ return self._host
+
+ @host.setter
+ def host(self, h):
+ if self._host != h:
+ self._host = h
+ self.host_changed.emit()
+
+ def guest(self, n):
+ return self._guests[n]
+
+ def guestCount(self):
+ return len(self._guests)
+
+ def appendGuest(self, guest):
+ self._guests.append(guest)
+ self.guests_changed.emit()
+
+ guests = ListProperty(Person, appendGuest, notify=guests_changed, final=True)
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/doc/advanced2-Inheritance-and-coercion.rst b/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/doc/advanced2-Inheritance-and-coercion.rst
new file mode 100644
index 000000000..16c0dbc9a
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/doc/advanced2-Inheritance-and-coercion.rst
@@ -0,0 +1,62 @@
+.. _qml-advanced2-inheritance-and-coercion:
+
+Extending QML (advanced) - Inheritance and Coercion
+===================================================
+
+This is the second of a series of 6 examples forming a tutorial using the
+example of a birthday party to demonstrate some of the advanced features of
+QML.
+
+Right now, each attendant is being modelled as a person. This is a bit too
+generic and it would be nice to be able to know more about the attendees. By
+specializing them as boys and girls, we can already get a better idea of who's
+coming.
+
+To do this, the ``Boy`` and ``Girl`` classes are introduced, both inheriting from
+``Person``.
+
+.. literalinclude:: person.py
+ :lineno-start: 43
+ :lines: 43-46
+
+.. literalinclude:: person.py
+ :lineno-start: 49
+ :lines: 49-52
+
+The ``Person`` class remains unaltered and the ``Boy`` and ``Girl`` classes are
+trivial extensions of it. The types and their QML name are registered with the
+QML engine with ``@QmlElement``.
+
+Notice that the ``host`` and ``guests`` properties in ``BirthdayParty`` still
+take instances of ``Person``.
+
+.. literalinclude:: birthdayparty.py
+ :lineno-start: 26
+ :lines: 26-26
+
+.. literalinclude:: birthdayparty.py
+ :lineno-start: 46
+ :lines: 46-46
+
+The implementation of the ``Person`` class itself has not been changed.
+However, as the ``Person`` class was repurposed as a common base for ``Boy``
+and ``Girl``, ``Person`` should no longer be instantiable from QML directly. An
+explicit ``Boy`` or ``Girl`` should be instantiated instead.
+
+.. literalinclude:: person.py
+ :lineno-start: 13
+ :lines: 13-15
+
+While we want to disallow instantiating ``Person`` from within QML, it still
+needs to be registered with the QML engine so that it can be used as a property
+type and other types can be coerced to it. This is what the ``@QmlUncreatable``
+macro does. As all three types, ``Person``, ``Boy`` and ``Girl``, have been
+registered with the QML system, on assignment, QML automatically (and
+type-safely) converts the ``Boy`` and ``Girl`` objects into a ``Person``.
+
+With these changes in place, we can now specify the birthday party with the
+extra information about the attendees as follows.
+
+.. literalinclude:: People/Main.qml
+ :lineno-start: 6
+ :lines: 6-16
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/main.py b/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/main.py
new file mode 100644
index 000000000..cc77e2b40
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/main.py
@@ -0,0 +1,38 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the
+ qml/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion example
+ from Qt v6.x"""
+
+from pathlib import Path
+import sys
+
+from PySide6.QtCore import QCoreApplication
+from PySide6.QtQml import QQmlComponent, QQmlEngine
+
+from person import Boy, Girl # noqa: F401
+from birthdayparty import BirthdayParty # noqa: F401
+
+
+app = QCoreApplication(sys.argv)
+engine = QQmlEngine()
+engine.addImportPath(Path(__file__).parent)
+component = QQmlComponent(engine)
+component.loadFromModule("People", "Main")
+party = component.create()
+if not party:
+ print(component.errors())
+ del engine
+ sys.exit(-1)
+host = party.host
+print(f"{host.name} is having a birthday!")
+if isinstance(host, Boy):
+ print("He is inviting:")
+else:
+ print("She is inviting:")
+for g in range(party.guestCount()):
+ name = party.guest(g).name
+ print(f" {name}")
+del engine
+sys.exit(0)
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/person.py b/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/person.py
new file mode 100644
index 000000000..57e73e6f5
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced2-Inheritance-and-coercion/person.py
@@ -0,0 +1,52 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject, Property, Signal
+from PySide6.QtQml import QmlElement, QmlUncreatable
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "People"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+@QmlUncreatable("Person is an abstract base class.")
+class Person(QObject):
+ name_changed = Signal()
+ shoe_size_changed = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._name = ''
+ self._shoe_size = 0
+
+ @Property(str, notify=name_changed, final=True)
+ def name(self):
+ return self._name
+
+ @name.setter
+ def name(self, n):
+ if self._name != n:
+ self._name = n
+ self.name_changed.emit()
+
+ @Property(int, notify=shoe_size_changed, final=True)
+ def shoe_size(self):
+ return self._shoe_size
+
+ @shoe_size.setter
+ def shoe_size(self, s):
+ self._shoe_size = s
+
+
+@QmlElement
+class Boy(Person):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+
+@QmlElement
+class Girl(Person):
+ def __init__(self, parent=None):
+ super().__init__(parent)
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/People/Main.qml b/examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/People/Main.qml
new file mode 100644
index 000000000..9971a2315
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/People/Main.qml
@@ -0,0 +1,15 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import People
+
+BirthdayParty {
+ host: Boy {
+ name: "Bob Jones"
+ shoe_size: 12
+ }
+
+ Boy { name: "Leo Hodges" }
+ Boy { name: "Jack Smith" }
+ Girl { name: "Anne Brown" }
+}
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/People/qmldir b/examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/People/qmldir
new file mode 100644
index 000000000..a2bd9515a
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/People/qmldir
@@ -0,0 +1,3 @@
+module People
+typeinfo coercion.qmltypes
+Main 1.0 Main.qml
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/advanced3-Default-properties.pyproject b/examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/advanced3-Default-properties.pyproject
new file mode 100644
index 000000000..09942ebcc
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/advanced3-Default-properties.pyproject
@@ -0,0 +1,4 @@
+{
+ "files": ["main.py", "birthdayparty.py", "person.py",
+ "People/Main.qml", "People/qmldir"]
+}
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/birthdayparty.py b/examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/birthdayparty.py
new file mode 100644
index 000000000..3f6102c66
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/birthdayparty.py
@@ -0,0 +1,47 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject, ClassInfo, Property, Signal
+from PySide6.QtQml import QmlElement, ListProperty
+
+from person import Person
+
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "People"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+@ClassInfo(DefaultProperty="guests")
+class BirthdayParty(QObject):
+ host_changed = Signal()
+ guests_changed = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._host = None
+ self._guests = []
+
+ @Property(Person, notify=host_changed, final=True)
+ def host(self):
+ return self._host
+
+ @host.setter
+ def host(self, h):
+ if self._host != h:
+ self._host = h
+ self.host_changed.emit()
+
+ def guest(self, n):
+ return self._guests[n]
+
+ def guestCount(self):
+ return len(self._guests)
+
+ def appendGuest(self, guest):
+ self._guests.append(guest)
+ self.guests_changed.emit()
+
+ guests = ListProperty(Person, appendGuest, notify=guests_changed, final=True)
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/doc/advanced3-Default-properties.rst b/examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/doc/advanced3-Default-properties.rst
new file mode 100644
index 000000000..0857f9d0a
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/doc/advanced3-Default-properties.rst
@@ -0,0 +1,40 @@
+.. _qml-advanced3-default-properties:
+
+Extending QML (advanced) - Default Properties
+=============================================
+
+This is the third of a series of 6 examples forming a tutorial using the
+example of a birthday party to demonstrate some of the advanced features of
+QML.
+
+Currently, in the QML file, each property is assigned explicitly. For example,
+the ``host`` property is assigned a ``Boy`` and the ``guests`` property is
+assigned a list of ``Boy`` or ``Girl``. This is easy but it can be made a bit
+simpler for this specific use case. Instead of assigning the ``guests``
+property explicitly, we can add ``Boy`` and ``Girl`` objects inside the party
+directly and have them assigned to ``guests`` implicitly. It makes sense that
+all the attendees that we specify, and that are not the host, are guests. This
+change is purely syntactical but it can add a more natural feel in many
+situations.
+
+The ``guests`` property can be designated as the default property of
+``BirthdayParty``. Meaning that each object created inside of a
+``BirthdayParty`` is implicitly appended to the default property ``guests``.
+The resulting QML looks like this.
+
+.. literalinclude:: People/Main.qml
+ :lineno-start: 6
+ :lines: 6-15
+
+The only change required to enable this behavior is to add the ``DefaultProperty``
+class info annotation to ``BirthdayParty`` to designate ``guests`` as its default
+property.
+
+.. literalinclude:: birthdayparty.py
+ :lineno-start: 16
+ :lines: 16-18
+
+You may already be familiar with this mechanism. The default property for all
+descendants of ``Item`` in QML is the ``data`` property. All elements not
+explicitly added to a property of an ``Item`` will be added to ``data``. This
+makes the structure clear and reduces unnecessary noise in the code.
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/main.py b/examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/main.py
new file mode 100644
index 000000000..020974c9b
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/main.py
@@ -0,0 +1,38 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the
+ qml/examples/qml/tutorials/extending-qml-advanced/default advanced3-Default-properties example
+ from Qt v6.x"""
+
+from pathlib import Path
+import sys
+
+from PySide6.QtCore import QCoreApplication
+from PySide6.QtQml import QQmlComponent, QQmlEngine
+
+from person import Boy, Girl # noqa: F401
+from birthdayparty import BirthdayParty # noqa: F401
+
+
+app = QCoreApplication(sys.argv)
+engine = QQmlEngine()
+engine.addImportPath(Path(__file__).parent)
+component = QQmlComponent(engine)
+component.loadFromModule("People", "Main")
+party = component.create()
+if not party:
+ print(component.errors())
+ del engine
+ sys.exit(-1)
+host = party.host
+print(f"{host.name} is having a birthday!")
+if isinstance(host, Boy):
+ print("He is inviting:")
+else:
+ print("She is inviting:")
+for g in range(party.guestCount()):
+ name = party.guest(g).name
+ print(f" {name}")
+del engine
+sys.exit(0)
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/person.py b/examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/person.py
new file mode 100644
index 000000000..503aaf65e
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced3-Default-properties/person.py
@@ -0,0 +1,51 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject, Property, Signal
+from PySide6.QtQml import QmlAnonymous, QmlElement
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "People"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlAnonymous
+class Person(QObject):
+ name_changed = Signal()
+ shoe_size_changed = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._name = ''
+ self._shoe_size = 0
+
+ @Property(str, notify=name_changed, final=True)
+ def name(self):
+ return self._name
+
+ @name.setter
+ def name(self, n):
+ if self._name != n:
+ self._name = n
+ self.name_changed.emit()
+
+ @Property(int, notify=shoe_size_changed, final=True)
+ def shoe_size(self):
+ return self._shoe_size
+
+ @shoe_size.setter
+ def shoe_size(self, s):
+ self._shoe_size = s
+
+
+@QmlElement
+class Boy(Person):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+
+@QmlElement
+class Girl(Person):
+ def __init__(self, parent=None):
+ super().__init__(parent)
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/People/Main.qml b/examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/People/Main.qml
new file mode 100644
index 000000000..3c34234fd
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/People/Main.qml
@@ -0,0 +1,33 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+
+import People
+
+BirthdayParty {
+ host: Boy {
+ name: "Bob Jones"
+ shoe { size: 12; color: "white"; brand: "Bikey"; price: 90.0 }
+ }
+
+ Boy {
+ name: "Leo Hodges"
+ shoe { size: 10; color: "black"; brand: "Thebok"; price: 59.95 }
+ }
+ Boy { name: "Jack Smith"
+ shoe {
+ size: 8
+ color: "blue"
+ brand: "Luma"
+ price: 19.95
+ }
+ }
+ Girl {
+ name: "Anne Brown"
+ shoe.size: 7
+ shoe.color: "red"
+ shoe.brand: "Job Macobs"
+ shoe.price: 699.99
+ }
+}
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/People/qmldir b/examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/People/qmldir
new file mode 100644
index 000000000..a2bd9515a
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/People/qmldir
@@ -0,0 +1,3 @@
+module People
+typeinfo coercion.qmltypes
+Main 1.0 Main.qml
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/advanced4-Grouped-properties.pyproject b/examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/advanced4-Grouped-properties.pyproject
new file mode 100644
index 000000000..09942ebcc
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/advanced4-Grouped-properties.pyproject
@@ -0,0 +1,4 @@
+{
+ "files": ["main.py", "birthdayparty.py", "person.py",
+ "People/Main.qml", "People/qmldir"]
+}
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/birthdayparty.py b/examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/birthdayparty.py
new file mode 100644
index 000000000..3f6102c66
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/birthdayparty.py
@@ -0,0 +1,47 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject, ClassInfo, Property, Signal
+from PySide6.QtQml import QmlElement, ListProperty
+
+from person import Person
+
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "People"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+@ClassInfo(DefaultProperty="guests")
+class BirthdayParty(QObject):
+ host_changed = Signal()
+ guests_changed = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._host = None
+ self._guests = []
+
+ @Property(Person, notify=host_changed, final=True)
+ def host(self):
+ return self._host
+
+ @host.setter
+ def host(self, h):
+ if self._host != h:
+ self._host = h
+ self.host_changed.emit()
+
+ def guest(self, n):
+ return self._guests[n]
+
+ def guestCount(self):
+ return len(self._guests)
+
+ def appendGuest(self, guest):
+ self._guests.append(guest)
+ self.guests_changed.emit()
+
+ guests = ListProperty(Person, appendGuest, notify=guests_changed, final=True)
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/doc/advanced4-Grouped-properties.rst b/examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/doc/advanced4-Grouped-properties.rst
new file mode 100644
index 000000000..7748d3189
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/doc/advanced4-Grouped-properties.rst
@@ -0,0 +1,39 @@
+.. _qml-advanced-advanced4-grouped-properties:
+
+Extending QML (advanced) - Grouped Properties
+=============================================
+
+This is the fourth of a series of 6 examples forming a tutorial using the
+example of a birthday party to demonstrate some of the advanced features of
+QML.
+
+More information is needed about the shoes of the guests. Aside from their
+size, we also want to store the shoes' color, brand, and price. This
+information is stored in a ``ShoeDescription`` class.
+
+.. literalinclude:: person.py
+ :lineno-start: 14
+ :lines: 14-66
+
+Each person now has two properties, a ``name`` and a shoe description ``shoe``.
+
+.. literalinclude:: person.py
+ :lineno-start: 69
+ :lines: 69-90
+
+Specifying the values for each element of the shoe description works but is a
+bit repetitive.
+
+.. literalinclude:: People/Main.qml
+ :lineno-start: 26
+ :lines: 26-32
+
+Grouped properties provide a more elegant way of assigning these properties.
+Instead of assigning the values to each property one-by-one, the individual
+values can be passed as a group to the ``shoe`` property making the code more
+readable. No changes are required to enable this feature as it is available by
+default for all of QML.
+
+.. literalinclude:: People/Main.qml
+ :lineno-start: 9
+ :lines: 9-12
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/main.py b/examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/main.py
new file mode 100644
index 000000000..9757b6daa
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/main.py
@@ -0,0 +1,46 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the
+ qml/examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties example
+ from Qt v6.x"""
+
+from pathlib import Path
+import sys
+
+from PySide6.QtCore import QCoreApplication
+from PySide6.QtQml import QQmlComponent, QQmlEngine
+
+from person import Boy, Girl # noqa: F401
+from birthdayparty import BirthdayParty # noqa: F401
+
+
+if __name__ == '__main__':
+ app = QCoreApplication(sys.argv)
+ engine = QQmlEngine()
+ engine.addImportPath(Path(__file__).parent)
+ component = QQmlComponent(engine)
+ component.loadFromModule("People", "Main")
+
+ party = component.create()
+ if not party:
+ print(component.errors())
+ del engine
+ sys.exit(-1)
+ host = party.host
+ print(f"{host.name} is having a birthday!")
+ if isinstance(host, Boy):
+ print("He is inviting:")
+ else:
+ print("She is inviting:")
+ best_shoe = None
+ for g in range(party.guestCount()):
+ guest = party.guest(g)
+ name = guest.name
+ print(f" {name}")
+ if not best_shoe or best_shoe.shoe.price < guest.shoe.price:
+ best_shoe = guest
+ if best_shoe:
+ print(f"{best_shoe.name} is wearing the best shoes!")
+ del engine
+ sys.exit(0)
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/person.py b/examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/person.py
new file mode 100644
index 000000000..ccd439e88
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced4-Grouped-properties/person.py
@@ -0,0 +1,102 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject, Property, Signal
+from PySide6.QtGui import QColor
+from PySide6.QtQml import QmlAnonymous, QmlElement
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "People"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlAnonymous
+class ShoeDescription(QObject):
+ brand_changed = Signal()
+ size_changed = Signal()
+ price_changed = Signal()
+ color_changed = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._brand = ''
+ self._size = 0
+ self._price = 0
+ self._color = QColor()
+
+ @Property(str, notify=brand_changed, final=True)
+ def brand(self):
+ return self._brand
+
+ @brand.setter
+ def brand(self, b):
+ if self._brand != b:
+ self._brand = b
+ self.brand_changed.emit()
+
+ @Property(int, notify=size_changed, final=True)
+ def size(self):
+ return self._size
+
+ @size.setter
+ def size(self, s):
+ if self._size != s:
+ self._size = s
+ self.size_changed.emit()
+
+ @Property(float, notify=price_changed, final=True)
+ def price(self):
+ return self._price
+
+ @price.setter
+ def price(self, p):
+ if self._price != p:
+ self._price = p
+ self.price_changed.emit()
+
+ @Property(QColor, notify=color_changed, final=True)
+ def color(self):
+ return self._color
+
+ @color.setter
+ def color(self, c):
+ if self._color != c:
+ self._color = c
+ self.color_changed.emit()
+
+
+@QmlAnonymous
+class Person(QObject):
+ name_changed = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._name = ''
+ self._shoe = ShoeDescription()
+
+ @Property(str, notify=name_changed, final=True)
+ def name(self):
+ return self._name
+
+ @name.setter
+ def name(self, n):
+ if self._name != n:
+ self._name = n
+ self.name_changed.emit()
+
+ @Property(ShoeDescription, final=True)
+ def shoe(self):
+ return self._shoe
+
+
+@QmlElement
+class Boy(Person):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+
+@QmlElement
+class Girl(Person):
+ def __init__(self, parent=None):
+ super().__init__(parent)
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/People/Main.qml b/examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/People/Main.qml
new file mode 100644
index 000000000..795d63867
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/People/Main.qml
@@ -0,0 +1,22 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import People
+
+BirthdayParty {
+ Boy {
+ name: "Robert Campbell"
+ BirthdayParty.rsvp: "2009-07-01"
+ }
+
+ Boy {
+ name: "Leo Hodges"
+ shoe_size: 10
+ BirthdayParty.rsvp: "2009-07-06"
+ }
+
+ host: Boy {
+ name: "Jack Smith"
+ shoe_size: 8
+ }
+}
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/People/qmldir b/examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/People/qmldir
new file mode 100644
index 000000000..a2bd9515a
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/People/qmldir
@@ -0,0 +1,3 @@
+module People
+typeinfo coercion.qmltypes
+Main 1.0 Main.qml
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/advanced5-Attached-properties.pyproject b/examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/advanced5-Attached-properties.pyproject
new file mode 100644
index 000000000..09942ebcc
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/advanced5-Attached-properties.pyproject
@@ -0,0 +1,4 @@
+{
+ "files": ["main.py", "birthdayparty.py", "person.py",
+ "People/Main.qml", "People/qmldir"]
+}
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/birthdayparty.py b/examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/birthdayparty.py
new file mode 100644
index 000000000..f38bfd305
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/birthdayparty.py
@@ -0,0 +1,71 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QDate, QObject, ClassInfo, Property, Signal
+from PySide6.QtQml import QmlAnonymous, QmlAttached, QmlElement, ListProperty
+
+from person import Person
+
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "People"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlAnonymous
+class BirthdayPartyAttached(QObject):
+ rsvp_changed = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._rsvp = QDate()
+
+ @Property(QDate, notify=rsvp_changed, final=True)
+ def rsvp(self):
+ return self._rsvp
+
+ @rsvp.setter
+ def rsvp(self, d):
+ if self._rsvp != d:
+ self._rsvp = d
+ self.rsvp_changed.emit()
+
+
+@QmlElement
+@ClassInfo(DefaultProperty="guests")
+@QmlAttached(BirthdayPartyAttached)
+class BirthdayParty(QObject):
+ host_changed = Signal()
+ guests_changed = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._host = None
+ self._guests = []
+
+ @Property(Person, notify=host_changed, final=True)
+ def host(self):
+ return self._host
+
+ @host.setter
+ def host(self, h):
+ if self._host != h:
+ self._host = h
+ self.host_changed.emit()
+
+ def guest(self, n):
+ return self._guests[n]
+
+ def guestCount(self):
+ return len(self._guests)
+
+ def appendGuest(self, guest):
+ self._guests.append(guest)
+ self.guests_changed.emit()
+
+ @staticmethod
+ def qmlAttachedProperties(self, o):
+ return BirthdayPartyAttached(o)
+
+ guests = ListProperty(Person, appendGuest, notify=guests_changed, final=True)
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/doc/advanced5-Attached-properties.rst b/examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/doc/advanced5-Attached-properties.rst
new file mode 100644
index 000000000..14b4bddb0
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/doc/advanced5-Attached-properties.rst
@@ -0,0 +1,51 @@
+.. _qml-advanced-advanced5-attached-properties:
+
+Extending QML (advanced) - Attached Properties
+==============================================
+
+This is the fifth of a series of 6 examples forming a tutorial using the
+example of a birthday party to demonstrate some of the advanced features of
+QML.
+
+The time has come for the host to send out invitations. To keep track of which
+guests have responded to the invitation and when, we need somewhere to store
+that information. Storing it in the ``BirthdayParty`` object iself would not
+really fit. A better way would be to store the responses as attached objects to
+the party object.
+
+First, we declare the ``BirthdayPartyAttached`` class which holds the guest reponses.
+
+.. literalinclude:: birthdayparty.py
+ :lineno-start: 16
+ :lines: 16-32
+
+And we attach it to the ``BirthdayParty`` class and define
+``qmlAttachedProperties()`` to return the attached object.
+
+.. literalinclude:: birthdayparty.py
+ :lineno-start: 34
+ :lines: 34-38
+
+.. literalinclude:: birthdayparty.py
+ :lineno-start: 67
+ :lines: 67-69
+
+Now, attached objects can be used in the QML to hold the rsvp information of
+the invited guests.
+
+.. literalinclude:: People/Main.qml
+ :lineno-start: 6
+ :lines: 6-22
+
+Finally, the information can be accessed in the following way.
+
+.. literalinclude:: main.py
+ :lineno-start: 36
+ :lines: 36-39
+
+The program outputs the following summary of the party to come::
+
+ "Jack Smith" is having a birthday!
+ He is inviting:
+ "Robert Campbell" RSVP date: "Wed Mar 1 2023"
+ "Leo Hodges" RSVP date: "Mon Mar 6 2023"
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/main.py b/examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/main.py
new file mode 100644
index 000000000..9a92afeb5
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/main.py
@@ -0,0 +1,48 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the
+ qml/examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties example
+ from Qt v6.x"""
+
+from pathlib import Path
+import sys
+
+from PySide6.QtCore import QCoreApplication
+from PySide6.QtQml import QQmlComponent, QQmlEngine, qmlAttachedPropertiesObject
+
+from person import Boy, Girl # noqa: F401
+from birthdayparty import BirthdayParty # noqa: F401
+
+
+app = QCoreApplication(sys.argv)
+engine = QQmlEngine()
+engine.addImportPath(Path(__file__).parent)
+component = QQmlComponent(engine)
+component.loadFromModule("People", "Main")
+party = component.create()
+if not party:
+ print(component.errors())
+ del engine
+ sys.exit(-1)
+host = party.host
+print(f"{host.name} is having a birthday!")
+if isinstance(host, Boy):
+ print("He is inviting:")
+else:
+ print("She is inviting:")
+for g in range(party.guestCount()):
+ guest = party.guest(g)
+ name = guest.name
+
+ rsvp_date = None
+ attached = qmlAttachedPropertiesObject(BirthdayParty, guest, False)
+ if attached:
+ rsvp_date = attached.rsvp.toString()
+ if rsvp_date:
+ print(f" {name} RSVP date: {rsvp_date}")
+ else:
+ print(f" {name} RSVP date: Hasn't RSVP'd")
+
+del engine
+sys.exit(0)
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/person.py b/examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/person.py
new file mode 100644
index 000000000..503aaf65e
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced5-Attached-properties/person.py
@@ -0,0 +1,51 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject, Property, Signal
+from PySide6.QtQml import QmlAnonymous, QmlElement
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "People"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlAnonymous
+class Person(QObject):
+ name_changed = Signal()
+ shoe_size_changed = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._name = ''
+ self._shoe_size = 0
+
+ @Property(str, notify=name_changed, final=True)
+ def name(self):
+ return self._name
+
+ @name.setter
+ def name(self, n):
+ if self._name != n:
+ self._name = n
+ self.name_changed.emit()
+
+ @Property(int, notify=shoe_size_changed, final=True)
+ def shoe_size(self):
+ return self._shoe_size
+
+ @shoe_size.setter
+ def shoe_size(self, s):
+ self._shoe_size = s
+
+
+@QmlElement
+class Boy(Person):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+
+@QmlElement
+class Girl(Person):
+ def __init__(self, parent=None):
+ super().__init__(parent)
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/People/Main.qml b/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/People/Main.qml
new file mode 100644
index 000000000..254265a80
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/People/Main.qml
@@ -0,0 +1,27 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import People
+
+BirthdayParty {
+ HappyBirthdaySong on announcement { name: "Bob Jones" }
+
+ onPartyStarted: (time) => { console.log("This party started rockin' at " + time); }
+
+ host: Boy {
+ name: "Bob Jones"
+ shoe_size: 12
+ }
+
+ Boy {
+ name: "Leo Hodges"
+ BirthdayParty.rsvp: "2009-07-06"
+ }
+ Boy {
+ name: "Jack Smith"
+ }
+ Girl {
+ name: "Anne Brown"
+ BirthdayParty.rsvp: "2009-07-01"
+ }
+}
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/People/qmldir b/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/People/qmldir
new file mode 100644
index 000000000..a2bd9515a
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/People/qmldir
@@ -0,0 +1,3 @@
+module People
+typeinfo coercion.qmltypes
+Main 1.0 Main.qml
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/advanced6-Property-value-source.pyproject b/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/advanced6-Property-value-source.pyproject
new file mode 100644
index 000000000..fe2980fa9
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/advanced6-Property-value-source.pyproject
@@ -0,0 +1,4 @@
+{
+ "files": ["main.py", "birthdayparty.py", "happybirthdaysong.py", "person.py",
+ "People/Main.qml", "People/qmldir"]
+}
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/birthdayparty.py b/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/birthdayparty.py
new file mode 100644
index 000000000..eacb5201d
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/birthdayparty.py
@@ -0,0 +1,89 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QDate, QObject, ClassInfo, Property, QTime, Signal
+from PySide6.QtQml import QmlAnonymous, QmlAttached, QmlElement, ListProperty
+
+from person import Person
+
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "People"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlAnonymous
+class BirthdayPartyAttached(QObject):
+ rsvp_changed = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._rsvp = QDate()
+
+ @Property(QDate, notify=rsvp_changed, final=True)
+ def rsvp(self):
+ return self._rsvp
+
+ @rsvp.setter
+ def rsvp(self, d):
+ if self._rsvp != d:
+ self._rsvp = d
+ self.rsvp_changed.emit()
+
+
+@QmlElement
+@ClassInfo(DefaultProperty="guests")
+@QmlAttached(BirthdayPartyAttached)
+class BirthdayParty(QObject):
+
+ announcement_changed = Signal()
+ host_changed = Signal()
+ guests_changed = Signal()
+ partyStarted = Signal(QTime)
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._announcement = ""
+ self._host = None
+ self._guests = []
+
+ def startParty(self):
+ self.partyStarted.emit(QTime.currentTime())
+
+ @Property(Person, notify=host_changed, final=True)
+ def host(self):
+ return self._host
+
+ @host.setter
+ def host(self, h):
+ if self._host != h:
+ self._host = h
+ self.host_changed.emit()
+
+ @Property(str, notify=announcement_changed, final=True)
+ def announcement(self):
+ return self._announcement
+
+ @announcement.setter
+ def announcement(self, a):
+ if self._announcement != a:
+ self._announcement = a
+ self.announcement_changed.emit()
+ print(a)
+
+ def guest(self, n):
+ return self._guests[n]
+
+ def guestCount(self):
+ return len(self._guests)
+
+ def appendGuest(self, guest):
+ self._guests.append(guest)
+ self.guests_changed.emit()
+
+ @staticmethod
+ def qmlAttachedProperties(self, o):
+ return BirthdayPartyAttached(o)
+
+ guests = ListProperty(Person, appendGuest, notify=guests_changed, final=True)
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/doc/advanced6-Property-value-source.rst b/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/doc/advanced6-Property-value-source.rst
new file mode 100644
index 000000000..4e1dc393a
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/doc/advanced6-Property-value-source.rst
@@ -0,0 +1,43 @@
+.. _qml-advanced/advanced6-property-value-source:
+
+Extending QML (advanced) - Property Value Source
+================================================
+
+This is the last of a series of 6 examples forming a tutorial using the example
+of a birthday party to demonstrate some of the advanced features of QML.
+
+During the party the guests have to sing for the host. It would be handy if the
+program could display the lyrics customized for the occasion to help the
+guests. To this end, a property value source is used to generate the verses of
+the song over time.
+
+.. literalinclude:: happybirthdaysong.py
+ :lineno-start: 13
+ :lines: 13-49
+
+The class ``HappyBirthdaySong`` is added as a value source. It must inherit
+from ``QQmlPropertyValueSource`` and implement its interface. The
+``setTarget()`` function is used to define which property this source acts
+upon. In this case, the value source writes to the ``announcement`` property of
+the ``BirthdayParty`` to display the lyrics over time. It has an internal timer
+that causes the ``announcement`` property of the party to be set to the next
+line of the lyrics repeatedly.
+
+In QML, a ``HappyBirthdaySong`` is instantiated inside the ``BirthdayParty``.
+The ``on`` keyword in its signature is used to specify the property that the
+value source targets, in this case ``announcement``. The ``name`` property of
+the ``HappyBirthdaySong`` object is also bound to the name of the host of the
+party.
+
+.. literalinclude:: People/Main.qml
+ :lineno-start: 6
+ :lines: 6-7
+
+The program displays the time at which the party started using the
+``partyStarted`` signal and then prints the following happy birthday verses
+over and over::
+
+ Happy birthday to you,
+ Happy birthday to you,
+ Happy birthday dear Bob Jones,
+ Happy birthday to you!
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/happybirthdaysong.py b/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/happybirthdaysong.py
new file mode 100644
index 000000000..c35f9bffa
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/happybirthdaysong.py
@@ -0,0 +1,49 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QTimer, Property, Signal, Slot
+from PySide6.QtQml import QmlElement, QPyQmlPropertyValueSource
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "People"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class HappyBirthdaySong(QPyQmlPropertyValueSource):
+ name_changed = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+ self.m_target = None
+ self.m_name = ""
+ self.m_line = -1
+ self.m_lyrics = []
+
+ self.m_timer = QTimer(self)
+ self.m_timer.timeout.connect(self.advance)
+ self.m_timer.start(1000)
+
+ def setTarget(self, property):
+ self.m_target = property
+
+ @Property(str, notify=name_changed, final=True)
+ def name(self):
+ return self.m_name
+
+ @name.setter
+ def name(self, n):
+ if self.m_name != n:
+ self.m_name = n
+ self.m_lyrics = ["Happy birthday to you,",
+ "Happy birthday to you,",
+ f"Happy birthday dear {self.m_name},",
+ "Happy birthday to you!",
+ ""]
+
+ @Slot()
+ def advance(self):
+ self.m_line = (self.m_line + 1) % len(self.m_lyrics)
+ self.m_target.write(self.m_lyrics[self.m_line])
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/main.py b/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/main.py
new file mode 100644
index 000000000..ea412a547
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/main.py
@@ -0,0 +1,53 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the
+ qml/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source example
+ from Qt v6.x"""
+
+from pathlib import Path
+import sys
+
+from PySide6.QtCore import QCoreApplication
+from PySide6.QtQml import QQmlComponent, QQmlEngine, qmlAttachedPropertiesObject
+
+from person import Boy, Girl # noqa: F401
+from birthdayparty import BirthdayParty
+from happybirthdaysong import HappyBirthdaySong # noqa: F401
+
+
+app = QCoreApplication(sys.argv)
+engine = QQmlEngine()
+engine.addImportPath(Path(__file__).parent)
+component = QQmlComponent(engine)
+component.loadFromModule("People", "Main")
+party = component.create()
+if not party:
+ print(component.errors())
+ del engine
+ sys.exit(-1)
+host = party.host
+print(f"{host.name} is having a birthday!")
+if isinstance(host, Boy):
+ print("He is inviting:")
+else:
+ print("She is inviting:")
+for g in range(party.guestCount()):
+ guest = party.guest(g)
+ name = guest.name
+
+ rsvp_date = None
+ attached = qmlAttachedPropertiesObject(BirthdayParty, guest, False)
+ if attached:
+ rsvp_date = attached.rsvp.toString()
+ if rsvp_date:
+ print(f" {name} RSVP date: {rsvp_date}")
+ else:
+ print(f" {name} RSVP date: Hasn't RSVP'd")
+
+party.startParty()
+
+r = app.exec()
+
+del engine
+sys.exit(r)
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/person.py b/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/person.py
new file mode 100644
index 000000000..503aaf65e
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/person.py
@@ -0,0 +1,51 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject, Property, Signal
+from PySide6.QtQml import QmlAnonymous, QmlElement
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "People"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlAnonymous
+class Person(QObject):
+ name_changed = Signal()
+ shoe_size_changed = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._name = ''
+ self._shoe_size = 0
+
+ @Property(str, notify=name_changed, final=True)
+ def name(self):
+ return self._name
+
+ @name.setter
+ def name(self, n):
+ if self._name != n:
+ self._name = n
+ self.name_changed.emit()
+
+ @Property(int, notify=shoe_size_changed, final=True)
+ def shoe_size(self):
+ return self._shoe_size
+
+ @shoe_size.setter
+ def shoe_size(self, s):
+ self._shoe_size = s
+
+
+@QmlElement
+class Boy(Person):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+
+@QmlElement
+class Girl(Person):
+ def __init__(self, parent=None):
+ super().__init__(parent)
diff --git a/examples/qml/tutorials/extending-qml-advanced/binding/People/Main.qml b/examples/qml/tutorials/extending-qml-advanced/binding/People/Main.qml
new file mode 100644
index 000000000..75add22af
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/binding/People/Main.qml
@@ -0,0 +1,29 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import People
+
+BirthdayParty {
+ id: theParty
+
+ HappyBirthdaySong on announcement { name: theParty.host.name }
+
+ onPartyStarted: (time) => { console.log("This party started rockin' at " + time); }
+
+ host: Boy {
+ name: "Bob Jones"
+ shoe_size: 12
+ }
+
+ Boy {
+ name: "Leo Hodges"
+ BirthdayParty.rsvp: "2009-07-06"
+ }
+ Boy {
+ name: "Jack Smith"
+ }
+ Girl {
+ name: "Anne Brown"
+ BirthdayParty.rsvp: "2009-07-01"
+ }
+}
diff --git a/examples/qml/tutorials/extending-qml-advanced/binding/People/qmldir b/examples/qml/tutorials/extending-qml-advanced/binding/People/qmldir
new file mode 100644
index 000000000..a2bd9515a
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/binding/People/qmldir
@@ -0,0 +1,3 @@
+module People
+typeinfo coercion.qmltypes
+Main 1.0 Main.qml
diff --git a/examples/qml/tutorials/extending-qml-advanced/binding/binding.pyproject b/examples/qml/tutorials/extending-qml-advanced/binding/binding.pyproject
new file mode 100644
index 000000000..fe2980fa9
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/binding/binding.pyproject
@@ -0,0 +1,4 @@
+{
+ "files": ["main.py", "birthdayparty.py", "happybirthdaysong.py", "person.py",
+ "People/Main.qml", "People/qmldir"]
+}
diff --git a/examples/qml/tutorials/extending-qml-advanced/binding/birthdayparty.py b/examples/qml/tutorials/extending-qml-advanced/binding/birthdayparty.py
new file mode 100644
index 000000000..a337d4a16
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/binding/birthdayparty.py
@@ -0,0 +1,83 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QDate, QObject, ClassInfo, Property, QTime, Signal
+from PySide6.QtQml import QmlAnonymous, QmlAttached, QmlElement, ListProperty
+
+from person import Person
+
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "People"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlAnonymous
+class BirthdayPartyAttached(QObject):
+
+ rsvp_changed = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._rsvp = QDate()
+
+ @Property(QDate, notify=rsvp_changed)
+ def rsvp(self):
+ return self._rsvp
+
+ @rsvp.setter
+ def rsvp(self, d):
+ if self._rsvp != d:
+ self._rsvp = d
+ self.rsvp_changed.emit()
+
+
+@QmlElement
+@ClassInfo(DefaultProperty="guests")
+@QmlAttached(BirthdayPartyAttached)
+class BirthdayParty(QObject):
+
+ partyStarted = Signal(QTime)
+ host_changed = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._host = None
+ self._guests = []
+
+ def startParty(self):
+ self.partyStarted.emit(QTime.currentTime())
+
+ @Property(Person, notify=host_changed)
+ def host(self):
+ return self._host
+
+ @host.setter
+ def host(self, h):
+ if self._host != h:
+ self._host = h
+ self.host_changed.emit()
+
+ @Property(str)
+ def announcement(self):
+ return ""
+
+ @announcement.setter
+ def announcement(self, a):
+ print(a)
+
+ def guest(self, n):
+ return self._guests[n]
+
+ def guestCount(self):
+ return len(self._guests)
+
+ def appendGuest(self, guest):
+ self._guests.append(guest)
+
+ @staticmethod
+ def qmlAttachedProperties(self, o):
+ return BirthdayPartyAttached(o)
+
+ guests = ListProperty(Person, appendGuest)
diff --git a/examples/qml/tutorials/extending-qml-advanced/binding/doc/binding.rst b/examples/qml/tutorials/extending-qml-advanced/binding/doc/binding.rst
new file mode 100644
index 000000000..5c0ed21be
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/binding/doc/binding.rst
@@ -0,0 +1,17 @@
+.. _qml-binding-example:
+
+Extending QML - Binding Example
+===============================
+
+This example builds on the :ref:`qml-adding-types-example`,
+the :ref:`qml-attached-properties-example`,
+the :ref:`qml-default-property-example`,
+the :ref:`qml-inheritance-and-coercion-example`
+the :ref:`qml-object-and-list-property-types-example`
+and the :ref:`qml-valuesource-example`.
+
+Running the Example
+-------------------
+
+The ``main.py`` file in the example includes a simple shell application that
+loads and runs the QML snippet shown below.
diff --git a/examples/qml/tutorials/extending-qml-advanced/binding/happybirthdaysong.py b/examples/qml/tutorials/extending-qml-advanced/binding/happybirthdaysong.py
new file mode 100644
index 000000000..59ebfe4c6
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/binding/happybirthdaysong.py
@@ -0,0 +1,47 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QTimer, Property, Slot
+from PySide6.QtQml import QmlElement, QPyQmlPropertyValueSource
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "People"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class HappyBirthdaySong(QPyQmlPropertyValueSource):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+ self.m_target = None
+ self.m_name = ""
+ self.m_line = -1
+ self.m_lyrics = []
+
+ self.m_timer = QTimer(self)
+ self.m_timer.timeout.connect(self.advance)
+ self.m_timer.start(1000)
+
+ def setTarget(self, property):
+ self.m_target = property
+
+ @Property(str)
+ def name(self):
+ return self.m_name
+
+ @name.setter
+ def name(self, n):
+ self.m_name = n
+ self.m_lyrics = ["Happy birthday to you,",
+ "Happy birthday to you,",
+ f"Happy birthday dear {self.m_name},",
+ "Happy birthday to you!",
+ ""]
+
+ @Slot()
+ def advance(self):
+ self.m_line = (self.m_line + 1) % len(self.m_lyrics)
+ self.m_target.write(self.m_lyrics[self.m_line])
diff --git a/examples/qml/tutorials/extending-qml-advanced/binding/main.py b/examples/qml/tutorials/extending-qml-advanced/binding/main.py
new file mode 100644
index 000000000..64929a807
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/binding/main.py
@@ -0,0 +1,52 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the qml/examples/qml/referenceexamples/binding example from Qt v6.x"""
+
+from pathlib import Path
+import sys
+
+from PySide6.QtCore import QCoreApplication
+from PySide6.QtQml import QQmlComponent, QQmlEngine, qmlAttachedPropertiesObject
+
+from person import Boy, Girl # noqa: F401
+from birthdayparty import BirthdayParty # noqa: F401
+from happybirthdaysong import HappyBirthdaySong # noqa: F401
+
+
+if __name__ == "__main__":
+ app = QCoreApplication(sys.argv)
+ engine = QQmlEngine()
+ engine.addImportPath(Path(__file__).parent)
+ component = QQmlComponent(engine)
+ component.loadFromModule("People", "Main")
+ party = component.create()
+ if not party:
+ print(component.errors())
+ del engine
+ sys.exit(-1)
+ host = party.host
+ print(f"{host.name} is having a birthday!")
+ if isinstance(host, Boy):
+ print("He is inviting:")
+ else:
+ print("She is inviting:")
+ for g in range(party.guestCount()):
+ guest = party.guest(g)
+ name = guest.name
+
+ rsvp_date = None
+ attached = qmlAttachedPropertiesObject(BirthdayParty, guest, False)
+ if attached:
+ rsvp_date = attached.rsvp.toString()
+ if rsvp_date:
+ print(f" {name} RSVP date: {rsvp_date}")
+ else:
+ print(f" {name} RSVP date: Hasn't RSVP'd")
+
+ party.startParty()
+
+ r = app.exec()
+
+ del engine
+ sys.exit(r)
diff --git a/examples/qml/tutorials/extending-qml-advanced/binding/person.py b/examples/qml/tutorials/extending-qml-advanced/binding/person.py
new file mode 100644
index 000000000..a6942763a
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/binding/person.py
@@ -0,0 +1,53 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject, Property, Signal
+from PySide6.QtQml import QmlAnonymous, QmlElement
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "People"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlAnonymous
+class Person(QObject):
+ name_changed = Signal()
+ shoe_size_changed = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._name = ''
+ self._shoe_size = 0
+
+ @Property(str, notify=name_changed)
+ def name(self):
+ return self._name
+
+ @name.setter
+ def name(self, n):
+ if self._name != n:
+ self._name = n
+ self.name_changed.emit()
+
+ @Property(int, notify=shoe_size_changed)
+ def shoe_size(self):
+ return self._shoe_size
+
+ @shoe_size.setter
+ def shoe_size(self, s):
+ if self._shoe_size != s:
+ self._shoe_size = s
+ self.shoe_size_changed.emit()
+
+
+@QmlElement
+class Boy(Person):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+
+@QmlElement
+class Girl(Person):
+ def __init__(self, parent=None):
+ super().__init__(parent)
diff --git a/examples/qml/tutorials/extending-qml-advanced/extended/doc/extended.rst b/examples/qml/tutorials/extending-qml-advanced/extended/doc/extended.rst
new file mode 100644
index 000000000..745960535
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/extended/doc/extended.rst
@@ -0,0 +1,41 @@
+.. _qml-extension-objects-example:
+
+Extending QML - Extension Objects Example
+=========================================
+
+This example builds on the the :ref:`qml-adding-types-example`.
+
+Shows how to use QmlExtended decorator to provide an extension object to a
+QLineEdit without modifying or subclassing it.
+
+Firstly, the LineEditExtension class is registered with the QML system as an
+extension of QLineEdit. We declare a foreign type to do this as we cannot
+modify Qt's internal QLineEdit class.
+
+.. code-block:: python
+
+ @QmlNamedElement("QLineEdit")
+ @QmlExtended(LineEditExtension)
+ @QmlForeign(QLineEdit)
+ class LineEditForeign(QObject):
+
+
+Note the usage of ``QmlNamedElement()`` instead of ``QmlElement()``.
+``QmlElement()`` uses the name of the containing type by default,
+``LineEditExtension`` in this case. As the class being an extension class is
+an implementation detail, we choose the more natural name ``QLineEdit``
+instead.
+
+The QML engine then instantiates a QLineEdit.
+
+In QML, a property is set on the line edit that only exists in the
+``LineEditExtension`` class:
+
+.. code-block:: javascript
+
+ QLineEdit {
+ left_margin: 20
+ }
+
+The extension type performs calls on the ``QLineEdit`` that otherwise will not
+be accessible to the QML engine.
diff --git a/examples/qml/tutorials/extending-qml-advanced/extended/example.qml b/examples/qml/tutorials/extending-qml-advanced/extended/example.qml
new file mode 100644
index 000000000..e4af3bec5
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/extended/example.qml
@@ -0,0 +1,8 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import examples.extend 1.0
+
+QLineEdit {
+ left_margin: 20
+}
diff --git a/examples/qml/tutorials/extending-qml-advanced/extended/extended.pyproject b/examples/qml/tutorials/extending-qml-advanced/extended/extended.pyproject
new file mode 100644
index 000000000..127a3a76a
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/extended/extended.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["main.py", "example.qml"]
+}
diff --git a/examples/qml/tutorials/extending-qml-advanced/extended/main.py b/examples/qml/tutorials/extending-qml-advanced/extended/main.py
new file mode 100644
index 000000000..6ee386401
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/extended/main.py
@@ -0,0 +1,95 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the qml/examples/qml/referenceexamples/extended example from Qt v6.x"""
+
+from pathlib import Path
+import sys
+
+from PySide6.QtCore import QObject, QUrl, Property
+from PySide6.QtWidgets import QApplication, QLineEdit
+from PySide6.QtQml import (QQmlComponent, QQmlEngine, QmlForeign, QmlExtended,
+ QmlNamedElement)
+
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "examples.extend"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+class LineEditExtension(QObject):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._line_edit = parent
+
+ @Property(int)
+ def left_margin(self):
+ return self._line_edit.textMargins().left()
+
+ @left_margin.setter
+ def left_margin(self, m):
+ margins = self._line_edit.textMargins()
+ margins.setLeft(m)
+ self._line_edit.setTextMargins(margins)
+
+ @Property(int)
+ def right_margin(self):
+ return self._line_edit.textMargins().right()
+
+ @right_margin.setter
+ def right_margin(self, m):
+ margins = self._line_edit.textMargins()
+ margins.setRight(m)
+ self._line_edit.setTextMargins(margins)
+
+ @Property(int)
+ def top_margin(self):
+ return self._line_edit.textMargins().top()
+
+ @top_margin.setter
+ def top_margin(self, m):
+ margins = self._line_edit.textMargins()
+ margins.setTop(m)
+ self._line_edit.setTextMargins(margins)
+
+ @Property(int)
+ def bottom_margin(self):
+ return self._line_edit.textMargins().bottom()
+
+ @bottom_margin.setter
+ def bottom_margin(self, m):
+ margins = self._line_edit.textMargins()
+ margins.setBottom(m)
+ self._line_edit.setTextMargins(margins)
+
+
+@QmlNamedElement("QLineEdit")
+@QmlExtended(LineEditExtension)
+@QmlForeign(QLineEdit)
+class LineEditForeign(QObject):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+
+if __name__ == '__main__':
+ app = QApplication(sys.argv)
+
+ qml_file = Path(__file__).parent / "example.qml"
+ url = QUrl.fromLocalFile(qml_file)
+ engine = QQmlEngine()
+ component = QQmlComponent(engine, url)
+ widget = component.create()
+ if not widget:
+ print(component.errors())
+ del engine
+ sys.exit(-1)
+
+ widget.show()
+ r = app.exec()
+ # Deleting the engine before it goes out of scope is required to make sure
+ # all child QML instances are destroyed in the correct order.
+ del engine
+ sys.exit(r)
diff --git a/examples/qml/tutorials/extending-qml-advanced/methods/People/Main.qml b/examples/qml/tutorials/extending-qml-advanced/methods/People/Main.qml
new file mode 100644
index 000000000..69b2119ab
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/methods/People/Main.qml
@@ -0,0 +1,19 @@
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import People
+
+BirthdayParty {
+ host: Person {
+ name: "Bob Jones"
+ shoe_size: 12
+ }
+ guests: [
+ Person { name: "Leo Hodges" },
+ Person { name: "Jack Smith" },
+ Person { name: "Anne Brown" }
+ ]
+
+ Component.onCompleted: invite("William Green")
+}
diff --git a/examples/qml/tutorials/extending-qml-advanced/methods/People/qmldir b/examples/qml/tutorials/extending-qml-advanced/methods/People/qmldir
new file mode 100644
index 000000000..a2bd9515a
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/methods/People/qmldir
@@ -0,0 +1,3 @@
+module People
+typeinfo coercion.qmltypes
+Main 1.0 Main.qml
diff --git a/examples/qml/tutorials/extending-qml-advanced/methods/birthdayparty.py b/examples/qml/tutorials/extending-qml-advanced/methods/birthdayparty.py
new file mode 100644
index 000000000..a3942b671
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/methods/birthdayparty.py
@@ -0,0 +1,47 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject, Property, Slot
+from PySide6.QtQml import QmlElement, ListProperty
+
+from person import Person
+
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "People"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class BirthdayParty(QObject):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._host = None
+ self._guests = []
+
+ @Property(Person)
+ def host(self):
+ return self._host
+
+ @host.setter
+ def host(self, h):
+ self._host = h
+
+ def guest(self, n):
+ return self._guests[n]
+
+ def guestCount(self):
+ return len(self._guests)
+
+ def appendGuest(self, guest):
+ self._guests.append(guest)
+
+ @Slot(str)
+ def invite(self, name):
+ guest = Person(self)
+ guest.name = name
+ self.appendGuest(guest)
+
+ guests = ListProperty(Person, appendGuest)
diff --git a/examples/qml/tutorials/extending-qml-advanced/methods/doc/methods.rst b/examples/qml/tutorials/extending-qml-advanced/methods/doc/methods.rst
new file mode 100644
index 000000000..bda2ede5a
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/methods/doc/methods.rst
@@ -0,0 +1,15 @@
+.. _qml-methods-example:
+
+Extending QML - Methods Example
+===============================
+
+This example builds on the :ref:`qml-adding-types-example`,
+the :ref:`qml-object-and-list-property-types-example` and
+the :ref:`qml-inheritance-and-coercion-example`.
+
+The Methods Example has an additional method in the ``BirthdayParty`` class:
+``invite()``. ``invite()`` is decorated with ``@Slot`` so that it can be
+called from QML.
+
+In ``example.qml``, the ``invite()`` method is called
+in the ``QtQml.Component.completed()`` signal handler.
diff --git a/examples/qml/tutorials/extending-qml-advanced/methods/main.py b/examples/qml/tutorials/extending-qml-advanced/methods/main.py
new file mode 100644
index 000000000..fb656f266
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/methods/main.py
@@ -0,0 +1,32 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the qml/examples/qml/referenceexamples/methods example from Qt v6.x"""
+
+from pathlib import Path
+import sys
+
+from PySide6.QtCore import QCoreApplication
+from PySide6.QtQml import QQmlComponent, QQmlEngine
+
+from person import Person # noqa: F401
+from birthdayparty import BirthdayParty # noqa: F401
+
+
+app = QCoreApplication(sys.argv)
+engine = QQmlEngine()
+engine.addImportPath(Path(__file__).parent)
+component = QQmlComponent(engine)
+component.loadFromModule("People", "Main")
+party = component.create()
+if not party:
+ print(component.errors())
+ del engine
+ sys.exit(-1)
+host = party.host
+print(f"{host.name} is having a birthday!\nThey are inviting:")
+for g in range(party.guestCount()):
+ name = party.guest(g).name
+ print(f" {name}")
+del engine
+sys.exit(0)
diff --git a/examples/qml/tutorials/extending-qml-advanced/methods/methods.pyproject b/examples/qml/tutorials/extending-qml-advanced/methods/methods.pyproject
new file mode 100644
index 000000000..09942ebcc
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/methods/methods.pyproject
@@ -0,0 +1,4 @@
+{
+ "files": ["main.py", "birthdayparty.py", "person.py",
+ "People/Main.qml", "People/qmldir"]
+}
diff --git a/examples/qml/tutorials/extending-qml-advanced/methods/person.py b/examples/qml/tutorials/extending-qml-advanced/methods/person.py
new file mode 100644
index 000000000..526eae714
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/methods/person.py
@@ -0,0 +1,34 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject, Property
+from PySide6.QtQml import QmlElement
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "People"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class Person(QObject):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._name = ''
+ self._shoe_size = 0
+
+ @Property(str)
+ def name(self):
+ return self._name
+
+ @name.setter
+ def name(self, n):
+ self._name = n
+
+ @Property(int)
+ def shoe_size(self):
+ return self._shoe_size
+
+ @shoe_size.setter
+ def shoe_size(self, s):
+ self._shoe_size = s
diff --git a/examples/qml/tutorials/extending-qml-advanced/properties/People/Main.qml b/examples/qml/tutorials/extending-qml-advanced/properties/People/Main.qml
new file mode 100644
index 000000000..0600b3557
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/properties/People/Main.qml
@@ -0,0 +1,16 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import People
+
+BirthdayParty {
+ host: Person {
+ name: "Bob Jones"
+ shoe_size: 12
+ }
+ guests: [
+ Person { name: "Leo Hodges" },
+ Person { name: "Jack Smith" },
+ Person { name: "Anne Brown" }
+ ]
+}
diff --git a/examples/qml/tutorials/extending-qml-advanced/properties/People/qmldir b/examples/qml/tutorials/extending-qml-advanced/properties/People/qmldir
new file mode 100644
index 000000000..a2bd9515a
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/properties/People/qmldir
@@ -0,0 +1,3 @@
+module People
+typeinfo coercion.qmltypes
+Main 1.0 Main.qml
diff --git a/examples/qml/tutorials/extending-qml-advanced/properties/birthdayparty.py b/examples/qml/tutorials/extending-qml-advanced/properties/birthdayparty.py
new file mode 100644
index 000000000..47dddc85d
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/properties/birthdayparty.py
@@ -0,0 +1,41 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject, Property
+from PySide6.QtQml import QmlElement, ListProperty
+
+from person import Person
+
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "People"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class BirthdayParty(QObject):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._host = None
+ self._guests = []
+
+ @Property(Person)
+ def host(self):
+ return self._host
+
+ @host.setter
+ def host(self, h):
+ self._host = h
+
+ def guest(self, n):
+ return self._guests[n]
+
+ def guestCount(self):
+ return len(self._guests)
+
+ def appendGuest(self, guest):
+ self._guests.append(guest)
+
+ guests = ListProperty(Person, appendGuest)
diff --git a/examples/qml/tutorials/extending-qml-advanced/properties/doc/properties.rst b/examples/qml/tutorials/extending-qml-advanced/properties/doc/properties.rst
new file mode 100644
index 000000000..16924cdcd
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/properties/doc/properties.rst
@@ -0,0 +1,89 @@
+.. _qml-object-and-list-property-types-example:
+
+Extending QML - Object and List Property Types Example
+======================================================
+
+Exporting C++ Properties.
+
+This example builds on :ref:`qml-adding-types-example`.
+
+The Object and List Property Types example shows how to add object and list
+properties in QML. This example adds a BirthdayParty type that specifies a
+birthday party, consisting of a celebrant and a list of guests. People are
+specified using the People QML type built in the previous example.
+
+import examples.properties.people
+
+.. code-block:: javascript
+
+ BirthdayParty {
+ host: Person {
+ name: "Bob Jones"
+ shoe_size: 12
+ }
+ guests: [
+ Person { name: "Leo Hodges" },
+ Person { name: "Jack Smith" },
+ Person { name: "Anne Brown" }
+ ]
+ }
+
+Declare the BirthdayParty
+-------------------------
+
+The BirthdayParty class is declared like this:
+
+.. code-block:: python
+
+ from person import Person
+
+
+ # To be used on the @QmlElement decorator
+ # (QML_IMPORT_MINOR_VERSION is optional)
+ QML_IMPORT_NAME = "People"
+ QML_IMPORT_MAJOR_VERSION = 1
+
+
+ @QmlElement
+ class BirthdayParty(QObject):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._host = None
+ self._guests = []
+
+ @Property(Person)
+ def host(self):
+ return self._host
+
+ @host.setter
+ def host(self, h):
+ self._host = h
+
+ def guest(self, n):
+ return self._guests[n]
+
+ def guestCount(self):
+ return len(self._guests)
+
+ def appendGuest(self, guest):
+ self._guests.append(guest)
+
+ guests = ListProperty(Person, appendGuest)
+
+The class contains a member to store the celebrant object, and also a
+list member storing the Person instances.
+
+In QML, the type of a list properties - and the guests property is a list of
+people - are all of type :class:`~PySide6.QtQml.ListProperty`.
+``ListProperty`` is a simple value type that contains a set of functions.
+QML calls these functions whenever it needs to read from, write to or otherwise
+interact with the list. In addition to concrete lists like the people list used in this
+example, the use of ``ListProperty`` allows for "virtual lists" and other advanced
+scenarios.
+
+Running the Example
+-------------------
+
+The main.py file in the example includes a simple shell application that
+loads and runs the QML snippet shown at the beginning of this page.
diff --git a/examples/qml/tutorials/extending-qml-advanced/properties/main.py b/examples/qml/tutorials/extending-qml-advanced/properties/main.py
new file mode 100644
index 000000000..11757d5f3
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/properties/main.py
@@ -0,0 +1,34 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the qml/examples/qml/referenceexamples/properties example from Qt v6.x"""
+
+from pathlib import Path
+import sys
+
+from PySide6.QtCore import QCoreApplication
+from PySide6.QtQml import QQmlComponent, QQmlEngine
+
+from person import Person # noqa: F401
+from birthdayparty import BirthdayParty # noqa: F401
+
+
+if __name__ == '__main__':
+ app = QCoreApplication(sys.argv)
+
+ engine = QQmlEngine()
+ engine.addImportPath(Path(__file__).parent)
+ component = QQmlComponent(engine)
+ component.loadFromModule("People", "Main")
+
+ party = component.create()
+ if party:
+ print(f"{party.host} is having a birthday!\nThey are inviting:")
+ for g in range(party.guestCount()):
+ name = party.guest(g).name
+ print(f" {name}")
+ else:
+ print(component.errors())
+
+ del engine
+ sys.exit(0)
diff --git a/examples/qml/tutorials/extending-qml-advanced/properties/person.py b/examples/qml/tutorials/extending-qml-advanced/properties/person.py
new file mode 100644
index 000000000..526eae714
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/properties/person.py
@@ -0,0 +1,34 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject, Property
+from PySide6.QtQml import QmlElement
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "People"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class Person(QObject):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._name = ''
+ self._shoe_size = 0
+
+ @Property(str)
+ def name(self):
+ return self._name
+
+ @name.setter
+ def name(self, n):
+ self._name = n
+
+ @Property(int)
+ def shoe_size(self):
+ return self._shoe_size
+
+ @shoe_size.setter
+ def shoe_size(self, s):
+ self._shoe_size = s
diff --git a/examples/qml/tutorials/extending-qml-advanced/properties/properties.pyproject b/examples/qml/tutorials/extending-qml-advanced/properties/properties.pyproject
new file mode 100644
index 000000000..adb34b2d0
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml-advanced/properties/properties.pyproject
@@ -0,0 +1,4 @@
+{
+ "files": ["main.py", "person.py", "birthdayparty.py",
+ "People/Main.qml", "People/qmldir"]
+}
diff --git a/examples/qml/tutorials/extending-qml/chapter1-basics/app.qml b/examples/qml/tutorials/extending-qml/chapter1-basics/app.qml
new file mode 100644
index 000000000..6feef5633
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml/chapter1-basics/app.qml
@@ -0,0 +1,26 @@
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import Charts
+import QtQuick
+
+Item {
+ width: 300; height: 200
+
+ PieChart {
+ id: aPieChart
+ anchors.centerIn: parent
+ width: 100; height: 100
+ name: "A simple pie chart"
+ color: "red"
+ }
+
+ Text {
+ anchors {
+ bottom: parent.bottom;
+ horizontalCenter: parent.horizontalCenter;
+ bottomMargin: 20
+ }
+ text: aPieChart.name
+ }
+}
diff --git a/examples/qml/tutorials/extending-qml/chapter1-basics/basics.py b/examples/qml/tutorials/extending-qml/chapter1-basics/basics.py
new file mode 100644
index 000000000..47d0a0e0c
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml/chapter1-basics/basics.py
@@ -0,0 +1,68 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the qml/tutorials/extending-qml/chapter1-basics example from Qt v5.x"""
+
+import os
+from pathlib import Path
+import sys
+
+from PySide6.QtCore import Property, Signal, QUrl
+from PySide6.QtGui import QGuiApplication, QPen, QPainter, QColor
+from PySide6.QtQml import QmlElement
+from PySide6.QtQuick import QQuickPaintedItem, QQuickView
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "Charts"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class PieChart (QQuickPaintedItem):
+
+ nameChanged = Signal()
+
+ def __init__(self, parent=None):
+ QQuickPaintedItem.__init__(self, parent)
+ self._name = u''
+ self._color = QColor()
+
+ def paint(self, painter):
+ pen = QPen(self.color, 2)
+ painter.setPen(pen)
+ painter.setRenderHints(QPainter.Antialiasing, True)
+ painter.drawPie(self.boundingRect().adjusted(1, 1, -1, -1), 90 * 16, 290 * 16)
+
+ @Property(QColor, final=True)
+ def color(self):
+ return self._color
+
+ @color.setter
+ def color(self, value):
+ self._color = value
+
+ @Property(str, notify=nameChanged, final=True)
+ def name(self):
+ return self._name
+
+ @name.setter
+ def name(self, value):
+ self._name = value
+
+
+if __name__ == '__main__':
+ app = QGuiApplication(sys.argv)
+
+ view = QQuickView()
+ view.setResizeMode(QQuickView.SizeRootObjectToView)
+ qml_file = os.fspath(Path(__file__).resolve().parent / 'app.qml')
+ view.setSource(QUrl.fromLocalFile(qml_file))
+ if view.status() == QQuickView.Error:
+ sys.exit(-1)
+ view.show()
+ res = app.exec()
+ # Deleting the view before it goes out of scope is required to make sure all child QML instances
+ # are destroyed in the correct order.
+ del view
+ sys.exit(res)
diff --git a/examples/declarative/extending/chapter1-basics/chapter1-basics.pyproject b/examples/qml/tutorials/extending-qml/chapter1-basics/chapter1-basics.pyproject
index 869556bb8..869556bb8 100644
--- a/examples/declarative/extending/chapter1-basics/chapter1-basics.pyproject
+++ b/examples/qml/tutorials/extending-qml/chapter1-basics/chapter1-basics.pyproject
diff --git a/examples/qml/tutorials/extending-qml/chapter1-basics/doc/chapter1-basics.rst b/examples/qml/tutorials/extending-qml/chapter1-basics/doc/chapter1-basics.rst
new file mode 100644
index 000000000..38233aae2
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml/chapter1-basics/doc/chapter1-basics.rst
@@ -0,0 +1,107 @@
+.. _qml-chapter1-basics:
+
+Extending QML - Creating a New Type
+===================================
+
+This is the first of a series of 6 examples forming a tutorial
+about extending QML with Python.
+
+The Qt QML module provides a set of APIs for extending QML through Python
+extensions. You can write extensions to add your own QML types, extend existing
+Qt types, or call Python functions that are not accessible from ordinary QML
+code.
+
+This tutorial shows how to write a QML extension using Python that includes
+core QML features, including properties, signals and bindings. It also shows
+how extensions can be deployed through plugins.
+
+A common task when extending QML is to provide a new QML type that supports
+some custom functionality beyond what is provided by the built-in Qt Quick
+types. For example, this could be done to implement particular data models, or
+provide types with custom painting and drawing capabilities, or access system
+features like network programming that are not accessible through built-in QML
+features.
+
+In this tutorial, we will show how to use the C++ classes in the Qt Quick
+module to extend QML. The end result will be a simple Pie Chart display
+implemented by several custom QML types connected together through QML features
+like bindings and signals, and made available to the QML runtime through a
+plugin.
+
+To begin with, let's create a new QML type called ``PieChart`` that has two
+properties: a name and a color. We will make it available in an importable type
+namespace called ``Charts``, with a version of 1.0.
+
+We want this ``PieChart`` type to be usable from QML like this:
+
+.. code-block:: javascript
+
+ import Charts 1.0
+
+ PieChart {
+ width: 100; height: 100
+ name: "A simple pie chart"
+ color: "red"
+ }
+
+To do this, we need a C++ class that encapsulates this ``PieChart`` type and
+its two properties. Since QML makes extensive use of Qt's Meta-Object System
+this new class must:
+
+* Inherit from ``QObject``
+* Declare its properties using the ``Property`` decorator
+
+Class Implementation
+--------------------
+
+Here is our ``PieChart`` class, defined in ``basics.py``:
+
+.. literalinclude:: basics.py
+ :lineno-start: 21
+ :lines: 21-51
+
+The class inherits from ``QQuickPaintedItem`` because we want to override
+``QQuickPaintedItem.paint()`` to perform drawing operations with the
+``QPainter`` API. If the class just represented some data type and was not an
+item that actually needed to be displayed, it could simply inherit from
+``QObject``. Or, if we want to extend the functionality of an existing
+``QObject``-based class, it could inherit from that class instead.
+Alternatively, if we want to create a visual item that doesn't need to perform
+drawing operations with the ``QPainter`` API, we can just subclass
+``QQuickItem``.
+
+The ``PieChart`` class defines the two properties, ``name`` and ``color``, with
+the ``Property`` decorator, and overrides ``QQuickPaintedItem.paint()``. The
+``PieChart`` class is registered using the ``QmlElement`` decorator, to allow
+it to be used from QML. If you don't register the class, ``app.qml`` won't be
+able to create a ``PieChart``.
+
+QML Usage
+---------
+
+Now that we have defined the ``PieChart`` type, we will use it from QML. The
+``app.qml`` file creates a ``PieChart`` item and displays the pie chart's details
+using a standard QML ``Text`` item:
+
+.. literalinclude:: app.qml
+ :lineno-start: 7
+ :lines: 7-26
+
+Notice that although the color is specified as a string in QML, it is
+automatically converted to a ``QColor`` object for the PieChart ``color``
+property. Automatic conversions are provided for various other QML value types.
+For example, a string like "640x480" can be automatically converted to a
+``QSize`` value.
+
+We'll also create a main function that uses a ``QQuickView`` to run and display
+``app.qml``. Here is the application ``basics.py``:
+
+.. literalinclude:: basics.py
+ :lineno-start: 54
+ :lines: 54-68
+
+.. note:: You may see a warning `Expression ... depends on non-NOTIFYable properties:
+ PieChart.name`. This happens because we add a binding to the writable ``name``
+ property, but haven't yet defined a notify signal for it. The QML engine therefore
+ cannot update the binding if the ``name`` value changes. This is addressed in
+ the following chapters.
diff --git a/examples/qml/tutorials/extending-qml/chapter2-methods/app.qml b/examples/qml/tutorials/extending-qml/chapter2-methods/app.qml
new file mode 100644
index 000000000..d9477e253
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml/chapter2-methods/app.qml
@@ -0,0 +1,32 @@
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import Charts
+import QtQuick
+
+Item {
+ width: 300; height: 200
+
+ PieChart {
+ id: aPieChart
+ anchors.centerIn: parent
+ width: 100; height: 100
+ color: "red"
+
+ onChartCleared: console.log("The chart has been cleared")
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: aPieChart.clearChart()
+ }
+
+ Text {
+ anchors {
+ bottom: parent.bottom;
+ horizontalCenter: parent.horizontalCenter;
+ bottomMargin: 20
+ }
+ text: "Click anywhere to clear the chart"
+ }
+}
diff --git a/examples/declarative/extending/chapter2-methods/chapter2-methods.pyproject b/examples/qml/tutorials/extending-qml/chapter2-methods/chapter2-methods.pyproject
index cdf33be7f..cdf33be7f 100644
--- a/examples/declarative/extending/chapter2-methods/chapter2-methods.pyproject
+++ b/examples/qml/tutorials/extending-qml/chapter2-methods/chapter2-methods.pyproject
diff --git a/examples/qml/tutorials/extending-qml/chapter2-methods/doc/chapter2-methods.rst b/examples/qml/tutorials/extending-qml/chapter2-methods/doc/chapter2-methods.rst
new file mode 100644
index 000000000..245d0ddb2
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml/chapter2-methods/doc/chapter2-methods.rst
@@ -0,0 +1,36 @@
+.. _qml-chapter2-methods:
+
+Extending QML - Connecting to C++ Methods and Signals
+=====================================================
+
+This is the second of a series of 6 examples forming a tutorial about extending
+QML with Python.
+
+Suppose we want ``PieChart`` to have a ``clearChart()`` method that erases the
+chart and then emits a ``chartCleared`` signal. Our ``app.qml`` would be able
+to call ``clearChart()`` and receive ``chartCleared()`` signals like this:
+
+.. literalinclude:: app.qml
+ :lineno-start: 4
+ :lines: 4-32
+
+To do this, we add a ``clearChart()`` method and a ``chartCleared()`` signal
+to our C++ class:
+
+.. literalinclude:: methods.py
+ :lineno-start: 54
+ :lines: 54-58
+
+The use of the ``Slot`` decorator makes the ``clearChart()`` method available
+to the Qt Meta-Object system, and in turn, to QML. The method simply changes
+the color to ``Qt::transparent``, repaints the chart, then emits the
+``chartCleared()`` signal:
+
+.. literalinclude:: methods.py
+ :lineno-start: 21
+ :lines: 21-24
+
+Now when we run the application and click the window, the pie chart disappears,
+and the application outputs::
+
+ qml: The chart has been cleared
diff --git a/examples/qml/tutorials/extending-qml/chapter2-methods/methods.py b/examples/qml/tutorials/extending-qml/chapter2-methods/methods.py
new file mode 100644
index 000000000..d455c317b
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml/chapter2-methods/methods.py
@@ -0,0 +1,75 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the qml/tutorials/extending-qml/chapter2-methods example from Qt v5.x"""
+
+import os
+from pathlib import Path
+import sys
+
+from PySide6.QtCore import Property, Signal, Slot, Qt, QUrl
+from PySide6.QtGui import QGuiApplication, QPen, QPainter, QColor
+from PySide6.QtQml import QmlElement
+from PySide6.QtQuick import QQuickPaintedItem, QQuickView
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "Charts"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class PieChart(QQuickPaintedItem):
+
+ chartCleared = Signal()
+ nameChanged = Signal()
+
+ def __init__(self, parent=None):
+ QQuickPaintedItem.__init__(self, parent)
+ self._name = u''
+ self._color = QColor()
+
+ def paint(self, painter):
+ pen = QPen(self.color, 2)
+ painter.setPen(pen)
+ painter.setRenderHints(QPainter.Antialiasing, True)
+ painter.drawPie(self.boundingRect().adjusted(1, 1, -1, -1), 90 * 16, 290 * 16)
+
+ @Property(QColor, final=True)
+ def color(self):
+ return self._color
+
+ @color.setter
+ def color(self, value):
+ self._color = value
+
+ @Property(str, notify=nameChanged, final=True)
+ def name(self):
+ return self._name
+
+ @name.setter
+ def name(self, value):
+ self._name = value
+
+ @Slot() # This should be something like @Invokable
+ def clearChart(self):
+ self.color = Qt.transparent
+ self.update()
+ self.chartCleared.emit()
+
+
+if __name__ == '__main__':
+ app = QGuiApplication(sys.argv)
+
+ view = QQuickView()
+ view.setResizeMode(QQuickView.SizeRootObjectToView)
+ qml_file = os.fspath(Path(__file__).resolve().parent / 'app.qml')
+ view.setSource(QUrl.fromLocalFile(qml_file))
+ if view.status() == QQuickView.Error:
+ sys.exit(-1)
+ view.show()
+ res = app.exec()
+ # Deleting the view before it goes out of scope is required to make sure all child QML instances
+ # are destroyed in the correct order.
+ del view
+ sys.exit(res)
diff --git a/examples/qml/tutorials/extending-qml/chapter3-bindings/app.qml b/examples/qml/tutorials/extending-qml/chapter3-bindings/app.qml
new file mode 100644
index 000000000..f1530516a
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml/chapter3-bindings/app.qml
@@ -0,0 +1,40 @@
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import Charts
+import QtQuick
+
+Item {
+ width: 300; height: 200
+
+ Row {
+ anchors.centerIn: parent
+ spacing: 20
+
+ PieChart {
+ id: chartA
+ width: 100; height: 100
+ color: "red"
+ }
+
+ PieChart {
+ id: chartB
+ width: 100; height: 100
+ color: chartA.color
+ }
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: { chartA.color = "blue" }
+ }
+
+ Text {
+ anchors {
+ bottom: parent.bottom;
+ horizontalCenter: parent.horizontalCenter;
+ bottomMargin: 20
+ }
+ text: "Click anywhere to change the chart color"
+ }
+}
diff --git a/examples/qml/tutorials/extending-qml/chapter3-bindings/bindings.py b/examples/qml/tutorials/extending-qml/chapter3-bindings/bindings.py
new file mode 100644
index 000000000..a9b61e7f1
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml/chapter3-bindings/bindings.py
@@ -0,0 +1,79 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the qml/tutorials/extending-qml/chapter3-bindings example from Qt v5.x"""
+
+import os
+from pathlib import Path
+import sys
+
+from PySide6.QtCore import Property, Signal, Slot, QUrl, Qt
+from PySide6.QtGui import QGuiApplication, QPen, QPainter, QColor
+from PySide6.QtQml import QmlElement
+from PySide6.QtQuick import QQuickPaintedItem, QQuickView
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "Charts"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class PieChart (QQuickPaintedItem):
+
+ chartCleared = Signal()
+ nameChanged = Signal()
+ colorChanged = Signal()
+
+ def __init__(self, parent=None):
+ QQuickPaintedItem.__init__(self, parent)
+ self._name = u''
+ self._color = QColor()
+
+ def paint(self, painter):
+ pen = QPen(self._color, 2)
+ painter.setPen(pen)
+ painter.setRenderHints(QPainter.Antialiasing, True)
+ painter.drawPie(self.boundingRect().adjusted(1, 1, -1, -1), 90 * 16, 290 * 16)
+
+ @Property(QColor, notify=colorChanged, final=True)
+ def color(self):
+ return self._color
+
+ @color.setter
+ def color(self, value):
+ if value != self._color:
+ self._color = value
+ self.update()
+ self.colorChanged.emit()
+
+ @Property(str, notify=nameChanged, final=True)
+ def name(self):
+ return self._name
+
+ @name.setter
+ def name(self, value):
+ self._name = value
+
+ @Slot() # This should be something like @Invokable
+ def clearChart(self):
+ self.color = Qt.transparent
+ self.update()
+ self.chartCleared.emit()
+
+
+if __name__ == '__main__':
+ app = QGuiApplication(sys.argv)
+
+ view = QQuickView()
+ view.setResizeMode(QQuickView.SizeRootObjectToView)
+ qml_file = os.fspath(Path(__file__).resolve().parent / 'app.qml')
+ view.setSource(QUrl.fromLocalFile(qml_file))
+ if view.status() == QQuickView.Error:
+ sys.exit(-1)
+ view.show()
+ res = app.exec()
+ # Deleting the view before it goes out of scope is required to make sure all child QML instances
+ # are destroyed in the correct order.
+ del view
+ sys.exit(res)
diff --git a/examples/declarative/extending/chapter3-bindings/chapter3-bindings.pyproject b/examples/qml/tutorials/extending-qml/chapter3-bindings/chapter3-bindings.pyproject
index 6e21f86f9..6e21f86f9 100644
--- a/examples/declarative/extending/chapter3-bindings/chapter3-bindings.pyproject
+++ b/examples/qml/tutorials/extending-qml/chapter3-bindings/chapter3-bindings.pyproject
diff --git a/examples/qml/tutorials/extending-qml/chapter3-bindings/doc/chapter3-bindings.rst b/examples/qml/tutorials/extending-qml/chapter3-bindings/doc/chapter3-bindings.rst
new file mode 100644
index 000000000..3b7191191
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml/chapter3-bindings/doc/chapter3-bindings.rst
@@ -0,0 +1,54 @@
+.. _qml-chapter3-bindings:
+
+Extending QML - Adding Property Bindings
+========================================
+
+This is the third of a series of 6 examples forming a tutorial about extending
+QML with Python.
+
+Property binding is a powerful feature of QML that allows values of different
+types to be synchronized automatically. It uses signals to notify and update
+other types' values when property values are changed.
+
+Let's enable property bindings for the ``color`` property. That means if we
+have code like this:
+
+.. literalinclude:: app.qml
+ :lineno-start: 7
+ :lines: 7-40
+
+The ``color: chartA.color`` statement binds the ``color`` value of ``chartB``
+to the ``color`` of ``chartA.`` Whenever ``chartA`` 's ``color`` value changes,
+``chartB`` 's ``color`` value updates to the same value. When the window is
+clicked, the ``onClicked`` handler in the ``MouseArea`` changes the color of
+``chartA`` , thereby changing both charts to the color blue.
+
+It's easy to enable property binding for the ``color`` property. We add a
+``notify`` parameter to its ``Property`` decorator to indicate that a
+``colorChanged`` signal is emitted whenever the value changes.
+
+.. literalinclude:: bindings.py
+ :lineno-start: 39
+ :lines: 39-39
+
+.. literalinclude:: bindings.py
+ :lineno-start: 21
+ :lines: 21-26
+
+Then, we emit this signal in ``setColor()``:
+
+.. literalinclude:: bindings.py
+ :lineno-start: 43
+ :lines: 43-48
+
+It's important for ``setColor()`` to check that the color value has actually
+changed before emitting ``colorChanged().`` This ensures the signal is not
+emitted unnecessarily and also prevents loops when other types respond to the
+value change.
+
+The use of bindings is essential to QML. You should always add ``notify``
+signals for properties if they are able to be implemented, so that your
+properties can be used in bindings. Properties that cannot be bound cannot be
+automatically updated and cannot be used as flexibly in QML. Also, since
+bindings are invoked so often and relied upon in QML usage, users of your
+custom QML types may see unexpected behavior if bindings are not implemented.
diff --git a/examples/qml/tutorials/extending-qml/chapter4-customPropertyTypes/app.qml b/examples/qml/tutorials/extending-qml/chapter4-customPropertyTypes/app.qml
new file mode 100644
index 000000000..a5c5ff9fa
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml/chapter4-customPropertyTypes/app.qml
@@ -0,0 +1,22 @@
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import Charts
+import QtQuick
+
+Item {
+ width: 300; height: 200
+
+ PieChart {
+ id: chart
+ anchors.centerIn: parent
+ width: 100; height: 100
+
+ pieSlice: PieSlice {
+ anchors.fill: parent
+ color: "red"
+ }
+ }
+
+ Component.onCompleted: console.log("The pie is colored " + chart.pieSlice.color)
+}
diff --git a/examples/declarative/extending/chapter4-customPropertyTypes/chapter4-customPropertyTypes.pyproject b/examples/qml/tutorials/extending-qml/chapter4-customPropertyTypes/chapter4-customPropertyTypes.pyproject
index af1cfefb7..af1cfefb7 100644
--- a/examples/declarative/extending/chapter4-customPropertyTypes/chapter4-customPropertyTypes.pyproject
+++ b/examples/qml/tutorials/extending-qml/chapter4-customPropertyTypes/chapter4-customPropertyTypes.pyproject
diff --git a/examples/qml/tutorials/extending-qml/chapter4-customPropertyTypes/customPropertyTypes.py b/examples/qml/tutorials/extending-qml/chapter4-customPropertyTypes/customPropertyTypes.py
new file mode 100644
index 000000000..659850f38
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml/chapter4-customPropertyTypes/customPropertyTypes.py
@@ -0,0 +1,83 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the qml/tutorials/extending-qml/chapter4-customPropertyTypes example
+ from Qt v5.x"""
+
+import os
+from pathlib import Path
+import sys
+
+from PySide6.QtCore import Property, QUrl
+from PySide6.QtGui import QGuiApplication, QPen, QPainter, QColor
+from PySide6.QtQml import QmlElement
+from PySide6.QtQuick import QQuickPaintedItem, QQuickView, QQuickItem
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "Charts"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class PieSlice (QQuickPaintedItem):
+
+ def __init__(self, parent=None):
+ QQuickPaintedItem.__init__(self, parent)
+ self._color = QColor()
+
+ @Property(QColor, final=True)
+ def color(self):
+ return self._color
+
+ @color.setter
+ def color(self, value):
+ self._color = value
+
+ def paint(self, painter):
+ pen = QPen(self._color, 2)
+ painter.setPen(pen)
+ painter.setRenderHints(QPainter.Antialiasing, True)
+ painter.drawPie(self.boundingRect().adjusted(1, 1, -1, -1), 90 * 16, 290 * 16)
+
+
+@QmlElement
+class PieChart (QQuickItem):
+ def __init__(self, parent=None):
+ QQuickItem.__init__(self, parent)
+ self._name = None
+ self._pieSlice = None
+
+ @Property(str, final=True)
+ def name(self):
+ return self._name
+
+ @name.setter
+ def name(self, value):
+ self._name = value
+
+ @Property(PieSlice, final=True)
+ def pieSlice(self):
+ return self._pieSlice
+
+ @pieSlice.setter
+ def pieSlice(self, value):
+ self._pieSlice = value
+ self._pieSlice.setParentItem(self)
+
+
+if __name__ == '__main__':
+ app = QGuiApplication(sys.argv)
+
+ view = QQuickView()
+ view.setResizeMode(QQuickView.SizeRootObjectToView)
+ qml_file = os.fspath(Path(__file__).resolve().parent / 'app.qml')
+ view.setSource(QUrl.fromLocalFile(qml_file))
+ if view.status() == QQuickView.Error:
+ sys.exit(-1)
+ view.show()
+ res = app.exec()
+ # Deleting the view before it goes out of scope is required to make sure all child QML instances
+ # are destroyed in the correct order.
+ del view
+ sys.exit(res)
diff --git a/examples/qml/tutorials/extending-qml/chapter4-customPropertyTypes/doc/chapter4-customPropertyTypes.rst b/examples/qml/tutorials/extending-qml/chapter4-customPropertyTypes/doc/chapter4-customPropertyTypes.rst
new file mode 100644
index 000000000..f7c3efb11
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml/chapter4-customPropertyTypes/doc/chapter4-customPropertyTypes.rst
@@ -0,0 +1,73 @@
+.. _qml-chapter4-custompropertytypes:
+
+Extending QML - Using Custom Property Types
+===========================================
+
+This is the fourth of a series of 6 examples forming a tutorial about extending
+QML with Python.
+
+The ``PieChart`` type currently has a string-type property and a color-type property.
+It could have many other types of properties. For example, it could have an
+int-type property to store an identifier for each chart:
+
+.. code-block:: python
+
+ class PieChart(QQuickPaintedItem):
+ chartIdChanged = Signal()
+
+ @Property(int, notify=chartIdChanged)
+ def chartId(self):
+ pass
+
+ @chartId.setter
+ def setChartId(self, chartId):
+ pass
+
+.. code-block:: javascript
+
+ // QML
+ PieChart {
+ ...
+ chartId: 100
+ }
+
+Aside from ``int``, we could use various other property types. Many of the Qt
+data types such as ``QColor``, ``QSize`` and ``QRect`` are automatically
+supported from QML.
+
+If we want to create a property whose type is not supported by QML by default,
+we need to register the type with the QML engine.
+
+For example, let's replace the use of the ``property`` with a type called
+``PieSlice`` that has a ``color`` property. Instead of assigning a color,
+we assign an ``PieSlice`` value which itself contains a ``color``:
+
+.. literalinclude:: app.qml
+ :lineno-start: 4
+ :lines: 4-22
+
+Like ``PieChart``, this new ``PieSlice`` type inherits from
+``QQuickPaintedItem``, is exposed via the ``QmlElement`` decorator and declares
+its properties with the ``Property`` decorator:
+
+.. literalinclude:: customPropertyTypes.py
+ :lineno-start: 21
+ :lines: 21-40
+
+To use it in ``PieChart``, we modify the ``color`` property declaration
+and associated method signatures:
+
+.. literalinclude:: customPropertyTypes.py
+ :lineno-start: 58
+ :lines: 58-65
+
+There is one thing to be aware of when implementing ``setPieSlice()``. The
+``PieSlice`` is a visual item, so it must be set as a child of the ``PieChart``
+using ``QQuickItem.setParentItem()`` so that the ``PieChart`` knows to paint
+this child item when its contents are drawn.
+
+As with ``PieChart``, we add the ``Charts`` type namespace, version 1.0:
+
+.. literalinclude:: customPropertyTypes.py
+ :lineno-start: 15
+ :lines: 15-18
diff --git a/examples/qml/tutorials/extending-qml/chapter5-listproperties/app.qml b/examples/qml/tutorials/extending-qml/chapter5-listproperties/app.qml
new file mode 100644
index 000000000..ac99d5a40
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml/chapter5-listproperties/app.qml
@@ -0,0 +1,32 @@
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import Charts
+import QtQuick
+
+Item {
+ width: 300; height: 200
+
+ PieChart {
+ anchors.centerIn: parent
+ width: 100; height: 100
+
+ slices: [
+ PieSlice {
+ anchors.fill: parent
+ color: "red"
+ fromAngle: 0; angleSpan: 110
+ },
+ PieSlice {
+ anchors.fill: parent
+ color: "black"
+ fromAngle: 110; angleSpan: 50
+ },
+ PieSlice {
+ anchors.fill: parent
+ color: "blue"
+ fromAngle: 160; angleSpan: 100
+ }
+ ]
+ }
+}
diff --git a/examples/declarative/extending/chapter5-listproperties/chapter5-listproperties.pyproject b/examples/qml/tutorials/extending-qml/chapter5-listproperties/chapter5-listproperties.pyproject
index a3f89d575..a3f89d575 100644
--- a/examples/declarative/extending/chapter5-listproperties/chapter5-listproperties.pyproject
+++ b/examples/qml/tutorials/extending-qml/chapter5-listproperties/chapter5-listproperties.pyproject
diff --git a/examples/qml/tutorials/extending-qml/chapter5-listproperties/doc/chapter5-listproperties.rst b/examples/qml/tutorials/extending-qml/chapter5-listproperties/doc/chapter5-listproperties.rst
new file mode 100644
index 000000000..a98f18c81
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml/chapter5-listproperties/doc/chapter5-listproperties.rst
@@ -0,0 +1,47 @@
+.. _qml-chapter5-listproperties:
+
+Extending QML - Using List Property Types
+=========================================
+
+This is the fifth of a series of 6 examples forming a tutorial about extending
+QML with Python.
+
+Right now, a ``PieChart`` can only have one ``PieSlice.`` Ideally a chart would
+have multiple slices, with different colors and sizes. To do this, we could
+have a ``slices`` property that accepts a list of ``PieSlice`` items:
+
+.. literalinclude:: app.qml
+ :lineno-start: 4
+ :lines: 4-32
+
+To do this, we replace the ``pieSlice`` property in ``PieChart`` with a
+``slices`` property, declared as a class variable of the
+:class:`~PySide6.QtQml.ListProperty` type.
+The ``ListProperty`` class enables the creation of list properties in
+QML extensions. We replace the ``pieSlice()`` function with a ``slices()``
+function that returns a list of slices, and add an internal ``appendSlice()``
+function (discussed below). We also use a list to store the internal list of
+slices as ``_slices``:
+
+.. literalinclude:: listproperties.py
+ :lineno-start: 62
+ :lines: 62-65
+
+.. literalinclude:: listproperties.py
+ :lineno-start: 75
+ :lines: 75-79
+
+Although the ``slices`` property does not have an associated setter, it is
+still modifiable because of the way ``ListProperty`` works. We indicate
+that the internal ``PieChart.appendSlice()`` function is to be called whenever
+a request is made from QML to add items to the list.
+
+The ``appendSlice()`` function simply sets the parent item as before, and adds
+the new item to the ``_slices`` list. As you can see, the append function for
+a ``ListProperty`` is called with two arguments: the list property, and the
+item that is to be appended.
+
+The ``PieSlice`` class has also been modified to include ``fromAngle`` and
+``angleSpan`` properties and to draw the slice according to these values. This
+is a straightforward modification if you have read the previous pages in this
+tutorial, so the code is not shown here.
diff --git a/examples/qml/tutorials/extending-qml/chapter5-listproperties/listproperties.py b/examples/qml/tutorials/extending-qml/chapter5-listproperties/listproperties.py
new file mode 100644
index 000000000..98952cef1
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml/chapter5-listproperties/listproperties.py
@@ -0,0 +1,97 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the qml/tutorials/extending-qml/chapter5-listproperties example from Qt v5.x"""
+
+import os
+from pathlib import Path
+import sys
+
+from PySide6.QtCore import Property, QUrl
+from PySide6.QtGui import QGuiApplication, QPen, QPainter, QColor
+from PySide6.QtQml import QmlElement, ListProperty
+from PySide6.QtQuick import QQuickPaintedItem, QQuickView, QQuickItem
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "Charts"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class PieSlice (QQuickPaintedItem):
+ def __init__(self, parent=None):
+ QQuickPaintedItem.__init__(self, parent)
+ self._color = QColor()
+ self._fromAngle = 0
+ self._angleSpan = 0
+
+ @Property(QColor, final=True)
+ def color(self):
+ return self._color
+
+ @color.setter
+ def color(self, value):
+ self._color = value
+
+ @Property(int, final=True)
+ def fromAngle(self):
+ return self._angle
+
+ @fromAngle.setter
+ def fromAngle(self, value):
+ self._fromAngle = value
+
+ @Property(int, final=True)
+ def angleSpan(self):
+ return self._angleSpan
+
+ @angleSpan.setter
+ def angleSpan(self, value):
+ self._angleSpan = value
+
+ def paint(self, painter):
+ pen = QPen(self._color, 2)
+ painter.setPen(pen)
+ painter.setRenderHints(QPainter.Antialiasing, True)
+ painter.drawPie(
+ self.boundingRect().adjusted(1, 1, -1, -1), self._fromAngle * 16, self._angleSpan * 16)
+
+
+@QmlElement
+class PieChart (QQuickItem):
+ def __init__(self, parent=None):
+ QQuickItem.__init__(self, parent)
+ self._name = u''
+ self._slices = []
+
+ @Property(str, final=True)
+ def name(self):
+ return self._name
+
+ @name.setter
+ def name(self, value):
+ self._name = value
+
+ def appendSlice(self, _slice):
+ _slice.setParentItem(self)
+ self._slices.append(_slice)
+
+ slices = ListProperty(PieSlice, appendSlice, final=True)
+
+
+if __name__ == '__main__':
+ app = QGuiApplication(sys.argv)
+
+ view = QQuickView()
+ view.setResizeMode(QQuickView.SizeRootObjectToView)
+ qml_file = os.fspath(Path(__file__).resolve().parent / 'app.qml')
+ view.setSource(QUrl.fromLocalFile(qml_file))
+ if view.status() == QQuickView.Error:
+ sys.exit(-1)
+ view.show()
+ res = app.exec()
+ # Deleting the view before it goes out of scope is required to make sure all child QML instances
+ # are destroyed in the correct order.
+ del view
+ sys.exit(res)
diff --git a/examples/qml/tutorials/extending-qml/chapter6-plugins/Charts/piechart.py b/examples/qml/tutorials/extending-qml/chapter6-plugins/Charts/piechart.py
new file mode 100644
index 000000000..3ab8bcc08
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml/chapter6-plugins/Charts/piechart.py
@@ -0,0 +1,41 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import Property
+from PySide6.QtQml import QmlElement, ListProperty
+from PySide6.QtQuick import QQuickItem
+
+from pieslice import PieSlice
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "Charts"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class PieChart(QQuickItem):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._slices = []
+ self._name = ''
+
+ @Property(str, final=True)
+ def name(self):
+ return self._name
+
+ @name.setter
+ def name(self, name):
+ self._name = name
+
+ def slice(self, n):
+ return self._slices[n]
+
+ def sliceCount(self):
+ return len(self._slices)
+
+ def append_and_setparent(self, slice):
+ self._slices.append(slice)
+ slice.setParentItem(self)
+
+ slices = ListProperty(PieSlice, append_and_setparent)
diff --git a/examples/qml/tutorials/extending-qml/chapter6-plugins/Charts/pieslice.py b/examples/qml/tutorials/extending-qml/chapter6-plugins/Charts/pieslice.py
new file mode 100644
index 000000000..6f82f1f10
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml/chapter6-plugins/Charts/pieslice.py
@@ -0,0 +1,53 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import Property, QRectF
+from PySide6.QtGui import QColor, QPainter, QPen
+from PySide6.QtQuick import QQuickPaintedItem
+from PySide6.QtQml import QmlElement
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "Charts"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class PieSlice(QQuickPaintedItem):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+ self._color = QColor()
+ self._from_angle = 0
+ self._angle_span = 0
+
+ @Property(QColor, final=True)
+ def color(self):
+ return self._color
+
+ @color.setter
+ def color(self, color):
+ self._color = QColor(color)
+
+ @Property(int, final=True)
+ def fromAngle(self):
+ return self._from_angle
+
+ @fromAngle.setter
+ def fromAngle(self, fromAngle):
+ self._from_angle = fromAngle
+
+ @Property(int, final=True)
+ def angleSpan(self):
+ return self._angle_span
+
+ @angleSpan.setter
+ def angleSpan(self, angleSpan):
+ self._angle_span = angleSpan
+
+ def paint(self, painter):
+ painter.setPen(QPen(self._color, 2))
+ painter.setRenderHint(QPainter.RenderHint.Antialiasing, True)
+
+ rect = QRectF(0, 0, self.width(), self.height()).adjusted(1, 1, -1, -1)
+ painter.drawPie(rect, self._from_angle * 16, self._angle_span * 16)
diff --git a/examples/qml/tutorials/extending-qml/chapter6-plugins/Charts/plugins.png b/examples/qml/tutorials/extending-qml/chapter6-plugins/Charts/plugins.png
new file mode 100644
index 000000000..8992e89c0
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml/chapter6-plugins/Charts/plugins.png
Binary files differ
diff --git a/examples/qml/tutorials/extending-qml/chapter6-plugins/app.qml b/examples/qml/tutorials/extending-qml/chapter6-plugins/app.qml
new file mode 100644
index 000000000..1a4772e15
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml/chapter6-plugins/app.qml
@@ -0,0 +1,32 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import Charts 1.0
+
+Item {
+ width: 300; height: 200
+
+ PieChart {
+ anchors.centerIn: parent
+ width: 100; height: 100
+
+ slices: [
+ PieSlice {
+ anchors.fill: parent
+ color: "red"
+ fromAngle: 0; angleSpan: 110
+ },
+ PieSlice {
+ anchors.fill: parent
+ color: "black"
+ fromAngle: 110; angleSpan: 50
+ },
+ PieSlice {
+ anchors.fill: parent
+ color: "blue"
+ fromAngle: 160; angleSpan: 100
+ }
+ ]
+ }
+}
diff --git a/examples/qml/tutorials/extending-qml/chapter6-plugins/chapter6-plugins.pyproject b/examples/qml/tutorials/extending-qml/chapter6-plugins/chapter6-plugins.pyproject
new file mode 100644
index 000000000..cc684401f
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml/chapter6-plugins/chapter6-plugins.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["app.qml", "Charts/piechart.py", "Charts/pieslice.py"]
+}
diff --git a/examples/qml/tutorials/extending-qml/chapter6-plugins/doc/chapter6-plugins.rst b/examples/qml/tutorials/extending-qml/chapter6-plugins/doc/chapter6-plugins.rst
new file mode 100644
index 000000000..a9d100812
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml/chapter6-plugins/doc/chapter6-plugins.rst
@@ -0,0 +1,26 @@
+.. _qml-chapter6-plugins-example:
+
+Extending QML - Plugins Example
+===============================
+
+This is the last of a series of 6 examples forming a tutorial
+about extending QML with Python.
+
+This example refers to the Python version of using a QML plugin in Python. The
+idea of plugins in Python is non-existent because Python modules are
+dynamically loaded anyway. We use this idea and our QML type registration
+decorators - ``QmlELement``/``QmlNamedElement`` - to register the QML modules as they
+are imported. The ``pyside6-qml`` tool does this for you by simply pointing to the
+``.qml`` file.
+
+.. image:: plugins.png
+ :width: 400
+ :alt: Plugins Example
+
+
+Running the Example
+-------------------
+
+.. code-block:: shell
+
+ pyside6-qml examples/qml/tutorials/extending-qml/chapter6-plugins/app.qml -I examples/qml/tutorials/extending-qml/chapter6-plugins/Charts
diff --git a/examples/qml/tutorials/extending-qml/chapter6-plugins/doc/plugins.png b/examples/qml/tutorials/extending-qml/chapter6-plugins/doc/plugins.png
new file mode 100644
index 000000000..8992e89c0
--- /dev/null
+++ b/examples/qml/tutorials/extending-qml/chapter6-plugins/doc/plugins.png
Binary files differ
diff --git a/examples/declarative/usingmodel/doc/usingmodel.png b/examples/qml/usingmodel/doc/usingmodel.png
index b4240951b..b4240951b 100644
--- a/examples/declarative/usingmodel/doc/usingmodel.png
+++ b/examples/qml/usingmodel/doc/usingmodel.png
Binary files differ
diff --git a/examples/qml/usingmodel/doc/usingmodel.rst b/examples/qml/usingmodel/doc/usingmodel.rst
new file mode 100644
index 000000000..06a1b27b0
--- /dev/null
+++ b/examples/qml/usingmodel/doc/usingmodel.rst
@@ -0,0 +1,11 @@
+Using Model Example
+===================
+
+.. tags:: Android
+
+A Python application that demonstrates how to use a :ref:`QAbstractListModel`
+with QML.
+
+.. image:: usingmodel.png
+ :width: 400
+ :alt: Using Model Screenshot
diff --git a/examples/qml/usingmodel/usingmodel.py b/examples/qml/usingmodel/usingmodel.py
new file mode 100644
index 000000000..008a1b94b
--- /dev/null
+++ b/examples/qml/usingmodel/usingmodel.py
@@ -0,0 +1,74 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import os
+from dataclasses import dataclass
+from pathlib import Path
+import sys
+from PySide6.QtCore import QAbstractListModel, Qt, QUrl, QByteArray
+from PySide6.QtGui import QGuiApplication
+from PySide6.QtQuick import QQuickView
+from PySide6.QtQml import QmlElement, QmlSingleton
+
+
+QML_IMPORT_NAME = "PersonModel"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@dataclass
+class Person:
+ name: str
+ myrole: str
+
+
+@QmlElement
+@QmlSingleton
+class PersonModel (QAbstractListModel):
+ MyRole = Qt.UserRole + 1
+
+ def __init__(self, data, parent=None):
+ super().__init__(parent)
+ self._data = data
+
+ def roleNames(self):
+ roles = {
+ PersonModel.MyRole: QByteArray(b'myrole'),
+ Qt.DisplayRole: QByteArray(b'display')
+ }
+ return roles
+
+ def rowCount(self, index):
+ return len(self._data)
+
+ def data(self, index, role):
+ d = self._data[index.row()]
+ if role == Qt.DisplayRole:
+ return d.name
+ if role == Qt.DecorationRole:
+ return Qt.black
+ if role == PersonModel.MyRole:
+ return d.myrole
+ return None
+
+ @staticmethod
+ def create(engine):
+ data = [Person('Qt', 'myrole'), Person('PySide', 'role2')]
+ return PersonModel(data)
+
+
+if __name__ == '__main__':
+ app = QGuiApplication(sys.argv)
+ view = QQuickView()
+ view.setResizeMode(QQuickView.SizeRootObjectToView)
+
+ qml_file = os.fspath(Path(__file__).resolve().parent / 'view.qml')
+ view.setSource(QUrl.fromLocalFile(qml_file))
+ if view.status() == QQuickView.Error:
+ sys.exit(-1)
+ view.show()
+
+ r = app.exec()
+ # Deleting the view before it goes out of scope is required to make sure all child QML instances
+ # are destroyed in the correct order.
+ del view
+ sys.exit(r)
diff --git a/examples/declarative/usingmodel/usingmodel.pyproject b/examples/qml/usingmodel/usingmodel.pyproject
index 600cdb409..600cdb409 100644
--- a/examples/declarative/usingmodel/usingmodel.pyproject
+++ b/examples/qml/usingmodel/usingmodel.pyproject
diff --git a/examples/qml/usingmodel/view.qml b/examples/qml/usingmodel/view.qml
new file mode 100644
index 000000000..e8b1fb2fb
--- /dev/null
+++ b/examples/qml/usingmodel/view.qml
@@ -0,0 +1,21 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import PersonModel
+
+ListView {
+ width: 100
+ height: 100
+ anchors.fill: parent
+ model: PersonModel
+ delegate: Component {
+ Rectangle {
+ height: 25
+ width: 100
+ Text {
+ text: display + ": " + myrole
+ }
+ }
+ }
+}
diff --git a/examples/declarative/objectlistmodel/doc/objectlistmodel.png b/examples/quick/models/objectlistmodel/doc/objectlistmodel.png
index 416e08a85..416e08a85 100644
--- a/examples/declarative/objectlistmodel/doc/objectlistmodel.png
+++ b/examples/quick/models/objectlistmodel/doc/objectlistmodel.png
Binary files differ
diff --git a/examples/quick/models/objectlistmodel/doc/objectlistmodel.rst b/examples/quick/models/objectlistmodel/doc/objectlistmodel.rst
new file mode 100644
index 000000000..a4af62706
--- /dev/null
+++ b/examples/quick/models/objectlistmodel/doc/objectlistmodel.rst
@@ -0,0 +1,14 @@
+Object List Model Example
+=========================
+
+.. tags:: Android
+
+A list of QObject values can also be used as a model.
+A list[QObject,] provides the properties of the objects in the list as roles.
+
+The following application creates a DataObject class with Property values
+that will be accessible as named roles when a list[DataObject,] is exposed to QML:
+
+.. image:: objectlistmodel.png
+ :width: 400
+ :alt: Object List Model Screenshot
diff --git a/examples/quick/models/objectlistmodel/objectlistmodel.py b/examples/quick/models/objectlistmodel/objectlistmodel.py
new file mode 100644
index 000000000..968761e5c
--- /dev/null
+++ b/examples/quick/models/objectlistmodel/objectlistmodel.py
@@ -0,0 +1,61 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from pathlib import Path
+import sys
+from PySide6.QtCore import QObject, QUrl, Property, Signal
+from PySide6.QtGui import QGuiApplication
+from PySide6.QtQuick import QQuickView
+
+# This example illustrates exposing a list of QObjects as a model in QML
+
+
+class DataObject(QObject):
+
+ nameChanged = Signal()
+ colorChanged = Signal()
+
+ def __init__(self, name, color, parent=None):
+ super().__init__(parent)
+ self._name = name
+ self._color = color
+
+ def name(self):
+ return self._name
+
+ def setName(self, name):
+ if name != self._name:
+ self._name = name
+ self.nameChanged.emit()
+
+ def color(self):
+ return self._color
+
+ def setColor(self, color):
+ if color != self._color:
+ self._color = color
+ self.colorChanged.emit()
+
+ name = Property(str, name, setName, notify=nameChanged)
+ color = Property(str, color, setColor, notify=colorChanged)
+
+
+if __name__ == '__main__':
+ app = QGuiApplication(sys.argv)
+
+ dataList = [DataObject("Item 1", "red"),
+ DataObject("Item 2", "green"),
+ DataObject("Item 3", "blue"),
+ DataObject("Item 4", "yellow")]
+
+ view = QQuickView()
+ view.setResizeMode(QQuickView.SizeRootObjectToView)
+ view.setInitialProperties({"model": dataList})
+
+ qml_file = Path(__file__).parent / "view.qml"
+ view.setSource(QUrl.fromLocalFile(qml_file))
+ view.show()
+
+ r = app.exec()
+ del view
+ sys.exit(r)
diff --git a/examples/declarative/objectlistmodel/objectlistmodel.pyproject b/examples/quick/models/objectlistmodel/objectlistmodel.pyproject
index 556e399f4..556e399f4 100644
--- a/examples/declarative/objectlistmodel/objectlistmodel.pyproject
+++ b/examples/quick/models/objectlistmodel/objectlistmodel.pyproject
diff --git a/examples/quick/models/objectlistmodel/view.qml b/examples/quick/models/objectlistmodel/view.qml
new file mode 100644
index 000000000..b7cf68a9b
--- /dev/null
+++ b/examples/quick/models/objectlistmodel/view.qml
@@ -0,0 +1,15 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+
+ListView {
+ width: 100; height: 100
+
+ delegate: Rectangle {
+ color: model.modelData.color
+ height: 25
+ width: 100
+ Text { text: model.modelData.name }
+ }
+}
diff --git a/examples/declarative/stringlistmodel/doc/stringlistmodel.png b/examples/quick/models/stringlistmodel/doc/stringlistmodel.png
index eeb9b518a..eeb9b518a 100644
--- a/examples/declarative/stringlistmodel/doc/stringlistmodel.png
+++ b/examples/quick/models/stringlistmodel/doc/stringlistmodel.png
Binary files differ
diff --git a/examples/quick/models/stringlistmodel/doc/stringlistmodel.rst b/examples/quick/models/stringlistmodel/doc/stringlistmodel.rst
new file mode 100644
index 000000000..ce11674b4
--- /dev/null
+++ b/examples/quick/models/stringlistmodel/doc/stringlistmodel.rst
@@ -0,0 +1,11 @@
+String List Model Example
+=========================
+
+.. tags:: Android
+
+A model may be a simple 'list',
+which provides the contents of the list via the modelData role.
+
+.. image:: stringlistmodel.png
+ :width: 400
+ :alt: String List Model Screenshot
diff --git a/examples/quick/models/stringlistmodel/stringlistmodel.py b/examples/quick/models/stringlistmodel/stringlistmodel.py
new file mode 100644
index 000000000..3982b1ffc
--- /dev/null
+++ b/examples/quick/models/stringlistmodel/stringlistmodel.py
@@ -0,0 +1,26 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from pathlib import Path
+import sys
+from PySide6.QtCore import QUrl
+from PySide6.QtGui import QGuiApplication
+from PySide6.QtQuick import QQuickView
+
+# This example illustrates exposing a QStringList as a model in QML
+
+if __name__ == '__main__':
+ app = QGuiApplication(sys.argv)
+
+ dataList = ["Item 1", "Item 2", "Item 3", "Item 4"]
+
+ view = QQuickView()
+ view.setInitialProperties({"model": dataList})
+
+ qml_file = Path(__file__).parent / "view.qml"
+ view.setSource(QUrl.fromLocalFile(qml_file))
+ view.show()
+
+ r = app.exec()
+ del view
+ sys.exit(r)
diff --git a/examples/declarative/stringlistmodel/stringlistmodel.pyproject b/examples/quick/models/stringlistmodel/stringlistmodel.pyproject
index 5ec3e85d1..5ec3e85d1 100644
--- a/examples/declarative/stringlistmodel/stringlistmodel.pyproject
+++ b/examples/quick/models/stringlistmodel/stringlistmodel.pyproject
diff --git a/examples/quick/models/stringlistmodel/view.qml b/examples/quick/models/stringlistmodel/view.qml
new file mode 100644
index 000000000..5db5576f4
--- /dev/null
+++ b/examples/quick/models/stringlistmodel/view.qml
@@ -0,0 +1,17 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+
+ListView {
+ width: 100
+ height: 100
+ required model
+
+ delegate: Rectangle {
+ required property string modelData
+ height: 25
+ width: 100
+ Text { text: parent.modelData }
+ }
+}
diff --git a/examples/quick/painteditem/doc/painteditem.rst b/examples/quick/painteditem/doc/painteditem.rst
index 6f12355ca..5c3e8935b 100644
--- a/examples/quick/painteditem/doc/painteditem.rst
+++ b/examples/quick/painteditem/doc/painteditem.rst
@@ -1,6 +1,8 @@
Scene Graph Painted Item Example
================================
+.. tags:: Android
+
Shows how to implement QPainter-based custom scenegraph items.
The Painted Item example shows how to use the QML Scene Graph framework to
diff --git a/examples/quick/painteditem/main.qml b/examples/quick/painteditem/main.qml
index 3b5999ae0..44be89dc3 100644
--- a/examples/quick/painteditem/main.qml
+++ b/examples/quick/painteditem/main.qml
@@ -1,42 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt for Python examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import QtQuick
import TextBalloonPlugin
diff --git a/examples/quick/painteditem/painteditem.py b/examples/quick/painteditem/painteditem.py
index 04a9116a8..cf5a05ada 100644
--- a/examples/quick/painteditem/painteditem.py
+++ b/examples/quick/painteditem/painteditem.py
@@ -1,53 +1,22 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+from argparse import ArgumentParser, RawTextHelpFormatter
from pathlib import Path
import sys
from PySide6.QtGui import QPainter, QBrush, QColor
from PySide6.QtWidgets import QApplication
-from PySide6.QtQml import qmlRegisterType
+from PySide6.QtQml import QmlElement, QQmlDebuggingEnabler
from PySide6.QtCore import QUrl, Property, Signal, Qt, QPointF
from PySide6.QtQuick import QQuickPaintedItem, QQuickView
+QML_IMPORT_NAME = "TextBalloonPlugin"
+QML_IMPORT_MAJOR_VERSION = 1
+QML_IMPORT_MINOR_VERSION = 0 # Optional
+
+@QmlElement
class TextBalloon(QQuickPaintedItem):
rightAlignedChanged = Signal()
@@ -94,10 +63,16 @@ class TextBalloon(QQuickPaintedItem):
if __name__ == "__main__":
+ argument_parser = ArgumentParser(description="Scene Graph Painted Item Example",
+ formatter_class=RawTextHelpFormatter)
+ argument_parser.add_argument("-qmljsdebugger", action="store",
+ help="Enable QML debugging")
+ options = argument_parser.parse_args()
+ if options.qmljsdebugger:
+ QQmlDebuggingEnabler.enableDebugging(True)
app = QApplication(sys.argv)
view = QQuickView()
view.setResizeMode(QQuickView.SizeRootObjectToView)
- qmlRegisterType(TextBalloon, "TextBalloonPlugin", 1, 0, "TextBalloon")
qml_file = Path(__file__).parent / "main.qml"
view.setSource(QUrl.fromLocalFile(qml_file))
diff --git a/examples/quick/rendercontrol/rendercontrol_opengl/cuberenderer.py b/examples/quick/rendercontrol/rendercontrol_opengl/cuberenderer.py
new file mode 100644
index 000000000..69e7321f9
--- /dev/null
+++ b/examples/quick/rendercontrol/rendercontrol_opengl/cuberenderer.py
@@ -0,0 +1,183 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import ctypes
+import numpy
+from OpenGL.GL import (GL_COLOR_BUFFER_BIT, GL_CULL_FACE, GL_CW,
+ GL_DEPTH_BUFFER_BIT, GL_DEPTH_TEST, GL_FALSE, GL_FLOAT,
+ GL_TEXTURE_2D, GL_TRIANGLES)
+
+from PySide6.QtGui import QMatrix4x4, QOpenGLContext
+from PySide6.QtOpenGL import (QOpenGLBuffer, QOpenGLShader,
+ QOpenGLShaderProgram, QOpenGLVertexArrayObject)
+from shiboken6 import VoidPtr
+
+
+VERTEXSHADER_SOURCE = """attribute highp vec4 vertex;
+attribute lowp vec2 coord;
+varying lowp vec2 v_coord;
+uniform highp mat4 matrix;
+void main() {
+ v_coord = coord;
+ gl_Position = matrix * vertex;
+}
+"""
+
+
+FRAGMENTSHADER_SOURCE = """varying lowp vec2 v_coord;
+uniform sampler2D sampler;
+void main() {
+ gl_FragColor = vec4(texture2D(sampler, v_coord).rgb, 1.0);
+}
+"""
+
+
+FLOAT_SIZE = ctypes.sizeof(ctypes.c_float)
+
+
+VERTEXES = numpy.array([-0.5, 0.5, 0.5, 0.5, -0.5, 0.5, -0.5, -0.5, 0.5,
+ 0.5, -0.5, 0.5, -0.5, 0.5, 0.5, 0.5, 0.5, 0.5,
+ -0.5, -0.5, -0.5, 0.5, -0.5, -0.5, -0.5, 0.5, -0.5,
+ 0.5, 0.5, -0.5, -0.5, 0.5, -0.5, 0.5, -0.5, -0.5,
+
+ 0.5, -0.5, -0.5, 0.5, -0.5, 0.5, 0.5, 0.5, -0.5,
+ 0.5, 0.5, 0.5, 0.5, 0.5, -0.5, 0.5, -0.5, 0.5,
+ -0.5, 0.5, -0.5, -0.5, -0.5, 0.5, -0.5, -0.5, -0.5,
+ -0.5, -0.5, 0.5, -0.5, 0.5, -0.5, -0.5, 0.5, 0.5,
+
+ 0.5, 0.5, -0.5, -0.5, 0.5, 0.5, -0.5, 0.5, -0.5,
+ -0.5, 0.5, 0.5, 0.5, 0.5, -0.5, 0.5, 0.5, 0.5,
+ -0.5, -0.5, -0.5, -0.5, -0.5, 0.5, 0.5, -0.5, -0.5,
+ 0.5, -0.5, 0.5, 0.5, -0.5, -0.5, -0.5, -0.5, 0.5],
+ dtype=numpy.float32)
+
+
+TEX_COORDS = numpy.array([0.0, 0.0, 1.0, 1.0, 1.0, 0.0,
+ 1.0, 1.0, 0.0, 0.0, 0.0, 1.0,
+ 1.0, 1.0, 1.0, 0.0, 0.0, 1.0,
+ 0.0, 0.0, 0.0, 1.0, 1.0, 0.0,
+
+ 1.0, 1.0, 1.0, 0.0, 0.0, 1.0,
+ 0.0, 0.0, 0.0, 1.0, 1.0, 0.0,
+ 0.0, 0.0, 1.0, 1.0, 1.0, 0.0,
+ 1.0, 1.0, 0.0, 0.0, 0.0, 1.0,
+
+ 0.0, 1.0, 1.0, 0.0, 1.0, 1.0,
+ 1.0, 0.0, 0.0, 1.0, 0.0, 0.0,
+ 1.0, 0.0, 1.0, 1.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0, 0.0, 1.0, 1.0], dtype=numpy.float32)
+
+
+class CubeRenderer():
+ def __init__(self, offscreenSurface):
+ self.m_angle = 0
+ self.m_offscreenSurface = offscreenSurface
+ self.m_context = None
+ self.m_program = None
+ self.m_vbo = None
+ self.m_vao = None
+ self.m_matrixLoc = 0
+ self.m_proj = QMatrix4x4()
+
+ def __del__(self):
+ # Use a temporary offscreen surface to do the cleanup. There may not
+ # be a native window surface available anymore at self stage.
+ self.m_context.makeCurrent(self.m_offscreenSurface)
+ del self.m_program
+ del self.m_vbo
+ del self.m_vao
+ self.m_context.doneCurrent()
+
+ def init(self, w, share):
+ self.m_context = QOpenGLContext()
+ self.m_context.setShareContext(share)
+ self.m_context.setFormat(w.requestedFormat())
+ self.m_context.create()
+ if not self.m_context.makeCurrent(w):
+ return
+
+ f = self.m_context.functions()
+ f.glClearColor(0.0, 0.1, 0.25, 1.0)
+ f.glViewport(0, 0, w.width() * w.devicePixelRatio(),
+ w.height() * w.devicePixelRatio())
+
+ self.m_program = QOpenGLShaderProgram()
+ self.m_program.addCacheableShaderFromSourceCode(QOpenGLShader.Vertex,
+ VERTEXSHADER_SOURCE)
+ self.m_program.addCacheableShaderFromSourceCode(QOpenGLShader.Fragment,
+ FRAGMENTSHADER_SOURCE)
+ self.m_program.bindAttributeLocation("vertex", 0)
+ self.m_program.bindAttributeLocation("coord", 1)
+ self.m_program.link()
+ self.m_matrixLoc = self.m_program.uniformLocation("matrix")
+
+ self.m_vao = QOpenGLVertexArrayObject()
+ self.m_vao.create()
+
+ self.m_vbo = QOpenGLBuffer()
+ self.m_vbo.create()
+ self.m_vbo.bind()
+
+ vertexCount = 36
+ self.m_vbo.allocate(FLOAT_SIZE * vertexCount * 5)
+ vertex_data = VERTEXES.tobytes()
+ tex_coord_data = TEX_COORDS.tobytes()
+ self.m_vbo.write(0, VoidPtr(vertex_data),
+ FLOAT_SIZE * vertexCount * 3)
+ self.m_vbo.write(FLOAT_SIZE * vertexCount * 3,
+ VoidPtr(tex_coord_data),
+ FLOAT_SIZE * vertexCount * 2)
+ self.m_vbo.release()
+
+ if self.m_vao.isCreated():
+ self.setupVertexAttribs()
+
+ def resize(self, w, h):
+ self.m_proj.setToIdentity()
+ self.m_proj.perspective(45, w / float(h), 0.01, 100.0)
+
+ def setupVertexAttribs(self):
+ self.m_vbo.bind()
+ self.m_program.enableAttributeArray(0)
+ self.m_program.enableAttributeArray(1)
+ f = self.m_context.functions()
+
+ null = VoidPtr(0)
+ pointer = VoidPtr(36 * 3 * FLOAT_SIZE)
+ f.glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, null)
+ f.glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 0, pointer)
+ self.m_vbo.release()
+
+ def render(self, w, share, texture):
+ if not self.m_context:
+ self.init(w, share)
+
+ if not self.m_context.makeCurrent(w):
+ return
+
+ f = self.m_context.functions()
+ f.glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
+
+ if texture:
+ f.glBindTexture(GL_TEXTURE_2D, texture)
+ f.glFrontFace(GL_CW) # because our cube's vertex data is such
+ f.glEnable(GL_CULL_FACE)
+ f.glEnable(GL_DEPTH_TEST)
+
+ self.m_program.bind()
+ # If VAOs are not supported, set the vertex attributes every time.
+ if not self.m_vao.isCreated():
+ self.setupVertexAttribs()
+
+ m = QMatrix4x4()
+ m.translate(0, 0, -2)
+ m.rotate(90, 0, 0, 1)
+ m.rotate(self.m_angle, 0.5, 1, 0)
+ self.m_angle += 0.5
+
+ self.m_program.setUniformValue(self.m_matrixLoc, self.m_proj * m)
+
+ # Draw the cube.
+ f.glDrawArrays(GL_TRIANGLES, 0, 36)
+
+ self.m_context.swapBuffers(w)
diff --git a/examples/quick/rendercontrol/rendercontrol_opengl/demo.qml b/examples/quick/rendercontrol/rendercontrol_opengl/demo.qml
new file mode 100644
index 000000000..00f6a81e9
--- /dev/null
+++ b/examples/quick/rendercontrol/rendercontrol_opengl/demo.qml
@@ -0,0 +1,161 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Particles 2.0
+
+Rectangle {
+ id: root
+
+ gradient: Gradient {
+ GradientStop { position: 0; color: mouse.pressed ? "lightsteelblue" : "steelblue" }
+ GradientStop { position: 1; color: "black" }
+ }
+
+ Text {
+ anchors.centerIn: parent
+ text: "Qt Quick in a texture"
+ font.pointSize: 40
+ color: "white"
+
+ SequentialAnimation on rotation {
+ PauseAnimation { duration: 2500 }
+ NumberAnimation { from: 0; to: 360; duration: 5000; easing.type: Easing.InOutCubic }
+ loops: Animation.Infinite
+ }
+ }
+
+ ParticleSystem {
+ id: particles
+ anchors.fill: parent
+
+ ImageParticle {
+ id: smoke
+ system: particles
+ anchors.fill: parent
+ groups: ["A", "B"]
+ source: "qrc:///particleresources/glowdot.png"
+ colorVariation: 0
+ color: "#00111111"
+ }
+ ImageParticle {
+ id: flame
+ anchors.fill: parent
+ system: particles
+ groups: ["C", "D"]
+ source: "qrc:///particleresources/glowdot.png"
+ colorVariation: 0.1
+ color: "#00ff400f"
+ }
+
+ Emitter {
+ id: fire
+ system: particles
+ group: "C"
+
+ y: parent.height
+ width: parent.width
+
+ emitRate: 350
+ lifeSpan: 3500
+
+ acceleration: PointDirection { y: -17; xVariation: 3 }
+ velocity: PointDirection {xVariation: 3}
+
+ size: 24
+ sizeVariation: 8
+ endSize: 4
+ }
+
+ TrailEmitter {
+ id: fireSmoke
+ group: "B"
+ system: particles
+ follow: "C"
+ width: root.width
+ height: root.height - 68
+
+ emitRatePerParticle: 1
+ lifeSpan: 2000
+
+ velocity: PointDirection {y:-17*6; yVariation: -17; xVariation: 3}
+ acceleration: PointDirection {xVariation: 3}
+
+ size: 36
+ sizeVariation: 8
+ endSize: 16
+ }
+
+ TrailEmitter {
+ id: fireballFlame
+ anchors.fill: parent
+ system: particles
+ group: "D"
+ follow: "E"
+
+ emitRatePerParticle: 120
+ lifeSpan: 180
+ emitWidth: TrailEmitter.ParticleSize
+ emitHeight: TrailEmitter.ParticleSize
+ emitShape: EllipseShape{}
+
+ size: 16
+ sizeVariation: 4
+ endSize: 4
+ }
+
+ TrailEmitter {
+ id: fireballSmoke
+ anchors.fill: parent
+ system: particles
+ group: "A"
+ follow: "E"
+
+ emitRatePerParticle: 128
+ lifeSpan: 2400
+ emitWidth: TrailEmitter.ParticleSize
+ emitHeight: TrailEmitter.ParticleSize
+ emitShape: EllipseShape{}
+
+ velocity: PointDirection {yVariation: 16; xVariation: 16}
+ acceleration: PointDirection {y: -16}
+
+ size: 24
+ sizeVariation: 8
+ endSize: 8
+ }
+
+ Emitter {
+ id: balls
+ system: particles
+ group: "E"
+
+ y: parent.height
+ width: parent.width
+
+ emitRate: 2
+ lifeSpan: 7000
+
+ velocity: PointDirection {y:-17*4*2; xVariation: 6*6}
+ acceleration: PointDirection {y: 17*2; xVariation: 6*6}
+
+ size: 8
+ sizeVariation: 4
+ }
+
+ Turbulence { //A bit of turbulence makes the smoke look better
+ anchors.fill: parent
+ groups: ["A","B"]
+ strength: 32
+ system: particles
+ }
+ }
+
+ onWidthChanged: particles.reset()
+ onHeightChanged: particles.reset()
+
+ MouseArea {
+ id: mouse
+ anchors.fill: parent
+ }
+}
diff --git a/examples/quick/rendercontrol/rendercontrol_opengl/doc/rendercontrol_opengl.rst b/examples/quick/rendercontrol/rendercontrol_opengl/doc/rendercontrol_opengl.rst
new file mode 100644
index 000000000..f47567f52
--- /dev/null
+++ b/examples/quick/rendercontrol/rendercontrol_opengl/doc/rendercontrol_opengl.rst
@@ -0,0 +1,5 @@
+QQuickRenderControl OpenGL Example
+==================================
+
+The QQuickRenderControl OpenGL Example shows how to render a Qt Quick scene into a
+texture that is then used by a non-Quick based OpenGL renderer.
diff --git a/examples/quick/rendercontrol/rendercontrol_opengl/main.py b/examples/quick/rendercontrol/rendercontrol_opengl/main.py
new file mode 100644
index 000000000..ee885ae6d
--- /dev/null
+++ b/examples/quick/rendercontrol/rendercontrol_opengl/main.py
@@ -0,0 +1,20 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+from PySide6.QtGui import QGuiApplication
+from PySide6.QtQuick import QQuickWindow, QSGRendererInterface
+
+from window_singlethreaded import WindowSingleThreaded
+
+
+if __name__ == "__main__":
+ app = QGuiApplication(sys.argv)
+ # only functional when Qt Quick is also using OpenGL
+ QQuickWindow.setGraphicsApi(QSGRendererInterface.OpenGLRhi)
+ window = WindowSingleThreaded()
+ window.resize(1024, 768)
+ window.show()
+ ex = app.exec()
+ del window
+ sys.exit(ex)
diff --git a/examples/quick/rendercontrol/rendercontrol_opengl/rendercontrol_opengl.pyproject b/examples/quick/rendercontrol/rendercontrol_opengl/rendercontrol_opengl.pyproject
new file mode 100644
index 000000000..b2e80ab23
--- /dev/null
+++ b/examples/quick/rendercontrol/rendercontrol_opengl/rendercontrol_opengl.pyproject
@@ -0,0 +1,6 @@
+{
+ "files": ["cuberenderer.py",
+ "main.py",
+ "window_singlethreaded.py",
+ "demo.qml"]
+}
diff --git a/examples/quick/rendercontrol/rendercontrol_opengl/window_singlethreaded.py b/examples/quick/rendercontrol/rendercontrol_opengl/window_singlethreaded.py
new file mode 100644
index 000000000..6f1e61f94
--- /dev/null
+++ b/examples/quick/rendercontrol/rendercontrol_opengl/window_singlethreaded.py
@@ -0,0 +1,272 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import numpy
+from pathlib import Path
+import weakref
+from OpenGL.GL import (GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_FILTER,
+ GL_NEAREST, GL_RGBA, GL_TEXTURE_2D, GL_UNSIGNED_BYTE)
+
+from PySide6.QtGui import (QMouseEvent, QOffscreenSurface,
+ QOpenGLContext, QSurface,
+ QSurfaceFormat, QWindow)
+from PySide6.QtOpenGL import QOpenGLFramebufferObject
+from PySide6.QtQml import QQmlComponent, QQmlEngine
+from PySide6.QtQuick import (QQuickGraphicsDevice,
+ QQuickRenderControl,
+ QQuickRenderTarget, QQuickWindow)
+from PySide6.QtCore import QCoreApplication, QTimer, QUrl, Slot
+from shiboken6 import VoidPtr
+
+from cuberenderer import CubeRenderer
+
+
+class RenderControl(QQuickRenderControl):
+ def __init__(self, window=None):
+ super().__init__()
+ self._window = window
+
+ def renderWindow(self, offset):
+ return self._window() # Dereference the weak reference
+
+
+class WindowSingleThreaded(QWindow):
+
+ def __init__(self):
+ super().__init__()
+ self.m_rootItem = None
+ self.m_device = None
+ self.m_texture_ids = numpy.array([0], dtype=numpy.uint32)
+
+ self.m_quickInitialized = False
+ self.m_quickReady = False
+ self.m_dpr = 0
+ self.m_status_conn_id = None
+ self.setSurfaceType(QSurface.OpenGLSurface)
+
+ format = QSurfaceFormat()
+ # Qt Quick may need a depth and stencil buffer. Always make sure these
+ # are available.
+ format.setDepthBufferSize(16)
+ format.setStencilBufferSize(8)
+ self.setFormat(format)
+
+ self.m_context = QOpenGLContext()
+ self.m_context.setFormat(format)
+ self.m_context.create()
+
+ self.m_offscreenSurface = QOffscreenSurface()
+ # Pass m_context.format(), not format. Format does not specify and
+ # color buffer sizes, while the context, that has just been created,
+ # reports a format that has these values filled in. Pass self to the
+ # offscreen surface to make sure it will be compatible with the
+ # context's configuration.
+ self.m_offscreenSurface.setFormat(self.m_context.format())
+ self.m_offscreenSurface.create()
+
+ self.m_cubeRenderer = CubeRenderer(self.m_offscreenSurface)
+
+ self.m_renderControl = RenderControl(weakref.ref(self))
+
+ # Create a QQuickWindow that is associated with out render control.
+ # Note that this window never gets created or shown, meaning that
+ # will never get an underlying native (platform) window.
+ self.m_quickWindow = QQuickWindow(self.m_renderControl)
+
+ # Create a QML engine.
+ self.m_qmlEngine = QQmlEngine()
+ if not self.m_qmlEngine.incubationController():
+ c = self.m_quickWindow.incubationController()
+ self.m_qmlEngine.setIncubationController(c)
+
+ # When Quick says there is a need to render, we will not render
+ # immediately. Instead, a timer with a small interval is used
+ # to get better performance.
+ self.m_updateTimer = QTimer()
+ self.m_updateTimer.setSingleShot(True)
+ self.m_updateTimer.setInterval(5)
+ self.m_updateTimer.timeout.connect(self.render)
+
+ # Now hook up the signals. For simplicy we don't differentiate between
+ # renderRequested (only render is needed, no sync) and sceneChanged
+ # (polish and sync is needed too).
+ self.m_quickWindow.sceneGraphInitialized.connect(self.createTexture)
+ self.m_quickWindow.sceneGraphInvalidated.connect(self.destroyTexture)
+ self.m_renderControl.renderRequested.connect(self.requestUpdate)
+ self.m_renderControl.sceneChanged.connect(self.requestUpdate)
+
+ # Just recreating the texture on resize is not sufficient, when moving
+ # between screens with different devicePixelRatio the QWindow size may
+ # remain the same but the texture dimension is to change regardless.
+ self.screenChanged.connect(self.handleScreenChange)
+
+ def __del__(self):
+ # Make sure the context is current while doing cleanup. Note that
+ # we use the offscreen surface here because passing 'self' at self
+ # point is not safe: the underlying platform window may already be
+ # destroyed. To avoid all the trouble, use another surface that is
+ # valid for sure.
+ self.m_context.makeCurrent(self.m_offscreenSurface)
+
+ del self.m_qmlComponent
+ del self.m_qmlEngine
+ del self.m_quickWindow
+ del self.m_renderControl
+
+ if self.texture_id():
+ self.m_context.functions().glDeleteTextures(1, self.m_texture_ids)
+
+ self.m_context.doneCurrent()
+
+ def texture_id(self):
+ return self.m_texture_ids[0]
+
+ def set_texture_id(self, texture_id):
+ self.m_texture_ids[0] = texture_id
+
+ @Slot()
+ def createTexture(self):
+ # The scene graph has been initialized. It is now time to create a
+ # texture and associate it with the QQuickWindow.
+ self.m_dpr = self.devicePixelRatio()
+ self.m_textureSize = self.size() * self.m_dpr
+ f = self.m_context.functions()
+ f.glGenTextures(1, self.m_texture_ids)
+ f.glBindTexture(GL_TEXTURE_2D, self.texture_id())
+
+ f.glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST)
+ f.glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST)
+ null = VoidPtr(0)
+ f.glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, self.m_textureSize.width(),
+ self.m_textureSize.height(), 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, null)
+ target = QQuickRenderTarget.fromOpenGLTexture(self.texture_id(),
+ self.m_textureSize)
+ self.m_quickWindow.setRenderTarget(target)
+
+ @Slot()
+ def destroyTexture(self):
+ self.m_context.functions().glDeleteTextures(1, self.m_texture_ids)
+ self.set_texture_id(0)
+
+ @Slot()
+ def render(self):
+ if not self.m_context.makeCurrent(self.m_offscreenSurface):
+ return
+
+ # Polish, synchronize and render the next frame (into our texture).
+ # In this example everything happens on the same thread and therefore
+ # all three steps are performed in succession from here. In a threaded
+ # setup the render() call would happen on a separate thread.
+ self.m_renderControl.beginFrame()
+ self.m_renderControl.polishItems()
+ self.m_renderControl.sync()
+ self.m_renderControl.render()
+ self.m_renderControl.endFrame()
+
+ QOpenGLFramebufferObject.bindDefault()
+ self.m_context.functions().glFlush()
+
+ self.m_quickReady = True
+
+ # Get something onto the screen.
+ texture_id = self.texture_id() if self.m_quickReady else 0
+ self.m_cubeRenderer.render(self, self.m_context, texture_id)
+
+ def requestUpdate(self):
+ if not self.m_updateTimer.isActive():
+ self.m_updateTimer.start()
+
+ def run(self):
+ if self.m_status_conn_id:
+ self.m_qmlComponent.statusChanged.disconnect(self.m_status_conn_id)
+ self.m_status_conn_id = None
+
+ if self.m_qmlComponent.isError():
+ for error in self.m_qmlComponent.errors():
+ print(error.url().toString(), error.line(), error.toString())
+ return
+
+ self.m_rootItem = self.m_qmlComponent.create()
+ if self.m_qmlComponent.isError():
+ for error in self.m_qmlComponent.errors():
+ print(error.url().toString(), error.line(), error.toString())
+ return
+
+ if not self.m_rootItem:
+ print("run: Not a QQuickItem")
+ del self.m_rootItem
+
+ # The root item is ready. Associate it with the window.
+ self.m_rootItem.setParentItem(self.m_quickWindow.contentItem())
+
+ # Update item and rendering related geometries.
+ self.updateSizes()
+
+ # Initialize the render control and our OpenGL resources.
+ self.m_context.makeCurrent(self.m_offscreenSurface)
+ self.m_device = QQuickGraphicsDevice.fromOpenGLContext(self.m_context)
+ self.m_quickWindow.setGraphicsDevice(self.m_device)
+ self.m_renderControl.initialize()
+ self.m_quickInitialized = True
+
+ def updateSizes(self):
+ # Behave like SizeRootObjectToView.
+ w = self.width()
+ h = self.height()
+ self.m_rootItem.setWidth(w)
+ self.m_rootItem.setHeight(h)
+ self.m_quickWindow.setGeometry(0, 0, w, h)
+ self.m_cubeRenderer.resize(w, h)
+
+ def startQuick(self, filename):
+ url = QUrl.fromLocalFile(filename)
+ self.m_qmlComponent = QQmlComponent(self.m_qmlEngine, url)
+ if self.m_qmlComponent.isLoading():
+ self.m_status_conn_id = self.m_qmlComponent.statusChanged.connect(self.run)
+ else:
+ self.run()
+
+ def exposeEvent(self, event):
+ if self.isExposed() and not self.m_quickInitialized:
+ texture_id = self.texture_id() if self.m_quickReady else 0
+ self.m_cubeRenderer.render(self, self.m_context, texture_id)
+ qml_file = Path(__file__).parent / "demo.qml"
+ self.startQuick(qml_file)
+
+ def resizeTexture(self):
+ if self.m_rootItem and self.m_context.makeCurrent(self.m_offscreenSurface):
+ self.m_context.functions().glDeleteTextures(1, self.m_texture_ids)
+ self.set_texture_id(0)
+ self.createTexture()
+ self.m_context.doneCurrent()
+ self.updateSizes()
+ self.render()
+
+ def resizeEvent(self, event):
+ # If self is a resize after the scene is up and running, recreate the
+ # texture and the Quick item and scene.
+ if (self.texture_id()
+ and self.m_textureSize != self.size() * self.devicePixelRatio()):
+ self.resizeTexture()
+
+ @Slot()
+ def handleScreenChange(self):
+ if self.m_dpr != self.devicePixelRatio():
+ self.resizeTexture()
+
+ def mousePressEvent(self, e):
+ # Use the constructor taking position and globalPosition. That puts
+ # position into the event's position and scenePosition, and
+ # globalPosition into the event's globalPosition. This way the
+ # scenePosition in `e` is ignored and is replaced by position.
+ # This is necessary because QQuickWindow thinks of itself as
+ # a top-level window always.
+ mappedEvent = QMouseEvent(e.type(), e.position(), e.globalPosition(),
+ e.button(), e.buttons(), e.modifiers())
+ QCoreApplication.sendEvent(self.m_quickWindow, mappedEvent)
+
+ def mouseReleaseEvent(self, e):
+ mappedEvent = QMouseEvent(e.type(), e.position(), e.globalPosition(),
+ e.button(), e.buttons(), e.modifiers())
+ QCoreApplication.sendEvent(self.m_quickWindow, mappedEvent)
diff --git a/examples/declarative/openglunderqml/doc/openglunderqml.rst b/examples/quick/scenegraph/openglunderqml/doc/openglunderqml.rst
index 6a89a99d9..6a89a99d9 100644
--- a/examples/declarative/openglunderqml/doc/openglunderqml.rst
+++ b/examples/quick/scenegraph/openglunderqml/doc/openglunderqml.rst
diff --git a/examples/declarative/openglunderqml/doc/squircle.png b/examples/quick/scenegraph/openglunderqml/doc/squircle.png
index c099a6b7e..c099a6b7e 100644
--- a/examples/declarative/openglunderqml/doc/squircle.png
+++ b/examples/quick/scenegraph/openglunderqml/doc/squircle.png
Binary files differ
diff --git a/examples/quick/scenegraph/openglunderqml/main.py b/examples/quick/scenegraph/openglunderqml/main.py
new file mode 100644
index 000000000..0e24877bd
--- /dev/null
+++ b/examples/quick/scenegraph/openglunderqml/main.py
@@ -0,0 +1,27 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+from pathlib import Path
+
+from PySide6.QtCore import QUrl
+from PySide6.QtGui import QGuiApplication
+from PySide6.QtQuick import QQuickView, QQuickWindow, QSGRendererInterface
+
+from squircle import Squircle # noqa: F401
+
+if __name__ == "__main__":
+ app = QGuiApplication(sys.argv)
+
+ QQuickWindow.setGraphicsApi(QSGRendererInterface.OpenGL)
+
+ view = QQuickView()
+ view.setResizeMode(QQuickView.SizeRootObjectToView)
+ qml_file = Path(__file__).parent / "main.qml"
+ view.setSource(QUrl.fromLocalFile(qml_file))
+
+ if view.status() == QQuickView.Error:
+ sys.exit(-1)
+ view.show()
+
+ sys.exit(app.exec())
diff --git a/examples/quick/scenegraph/openglunderqml/main.qml b/examples/quick/scenegraph/openglunderqml/main.qml
new file mode 100644
index 000000000..73bfa3262
--- /dev/null
+++ b/examples/quick/scenegraph/openglunderqml/main.qml
@@ -0,0 +1,39 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import OpenGLUnderQML
+
+Item {
+
+ width: 320
+ height: 480
+
+ Squircle {
+ SequentialAnimation on t {
+ NumberAnimation { to: 1; duration: 2500; easing.type: Easing.InQuad }
+ NumberAnimation { to: 0; duration: 2500; easing.type: Easing.OutQuad }
+ loops: Animation.Infinite
+ running: true
+ }
+ }
+ Rectangle {
+ color: Qt.rgba(1, 1, 1, 0.7)
+ radius: 10
+ border.width: 1
+ border.color: "white"
+ anchors.fill: label
+ anchors.margins: -10
+ }
+
+ Text {
+ id: label
+ color: "black"
+ wrapMode: Text.WordWrap
+ text: "The background here is a squircle rendered with raw OpenGL using the 'beforeRender()' signal in QQuickWindow. This text label and its border is rendered using QML"
+ anchors.right: parent.right
+ anchors.left: parent.left
+ anchors.bottom: parent.bottom
+ anchors.margins: 20
+ }
+}
diff --git a/examples/declarative/openglunderqml/openglunderqml.pyproject b/examples/quick/scenegraph/openglunderqml/openglunderqml.pyproject
index e7cfbc570..e7cfbc570 100644
--- a/examples/declarative/openglunderqml/openglunderqml.pyproject
+++ b/examples/quick/scenegraph/openglunderqml/openglunderqml.pyproject
diff --git a/examples/quick/scenegraph/openglunderqml/squircle.py b/examples/quick/scenegraph/openglunderqml/squircle.py
new file mode 100644
index 000000000..d2900198b
--- /dev/null
+++ b/examples/quick/scenegraph/openglunderqml/squircle.py
@@ -0,0 +1,79 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import Property, QRunnable, Qt, Signal, Slot
+from PySide6.QtQml import QmlElement
+from PySide6.QtQuick import QQuickItem, QQuickWindow
+
+from squirclerenderer import SquircleRenderer
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "OpenGLUnderQML"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+class CleanupJob(QRunnable):
+ def __init__(self, renderer):
+ super().__init__()
+ self._renderer = renderer
+
+ def run(self):
+ del self._renderer
+
+
+@QmlElement
+class Squircle(QQuickItem):
+
+ tChanged = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._t = 0.0
+ self._renderer = None
+ self.windowChanged.connect(self.handleWindowChanged)
+
+ def t(self):
+ return self._t
+
+ def setT(self, value):
+ if self._t == value:
+ return
+ self._t = value
+ self.tChanged.emit()
+ if self.window():
+ self.window().update()
+
+ @Slot(QQuickWindow)
+ def handleWindowChanged(self, win):
+ if win:
+ win.beforeSynchronizing.connect(self.sync, type=Qt.DirectConnection)
+ win.sceneGraphInvalidated.connect(self.cleanup, type=Qt.DirectConnection)
+ win.setColor(Qt.black)
+ self.sync()
+
+ @Slot()
+ def cleanup(self):
+ del self._renderer
+ self._renderer = None
+
+ @Slot()
+ def sync(self):
+ window = self.window()
+ if not self._renderer:
+ self._renderer = SquircleRenderer()
+ window.beforeRendering.connect(self._renderer.init, Qt.DirectConnection)
+ window.beforeRenderPassRecording.connect(
+ self._renderer.paint, Qt.DirectConnection
+ )
+ self._renderer.setViewportSize(window.size() * window.devicePixelRatio())
+ self._renderer.setT(self._t)
+ self._renderer.setWindow(window)
+
+ def releaseResources(self):
+ self.window().scheduleRenderJob(
+ CleanupJob(self._renderer), QQuickWindow.BeforeSynchronizingStage
+ )
+ self._renderer = None
+
+ t = Property(float, t, setT, notify=tChanged)
diff --git a/examples/quick/scenegraph/openglunderqml/squirclerenderer.py b/examples/quick/scenegraph/openglunderqml/squirclerenderer.py
new file mode 100644
index 000000000..d824f96ab
--- /dev/null
+++ b/examples/quick/scenegraph/openglunderqml/squirclerenderer.py
@@ -0,0 +1,98 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from textwrap import dedent
+
+import numpy as np
+from OpenGL.GL import (GL_ARRAY_BUFFER, GL_BLEND, GL_DEPTH_TEST, GL_FLOAT,
+ GL_ONE, GL_SRC_ALPHA, GL_TRIANGLE_STRIP)
+from PySide6.QtCore import QSize, Slot
+from PySide6.QtGui import QOpenGLFunctions
+from PySide6.QtOpenGL import QOpenGLShader, QOpenGLShaderProgram
+from PySide6.QtQuick import QQuickWindow, QSGRendererInterface
+
+VERTEX_SHADER = dedent(
+ """\
+ attribute highp vec4 vertices;
+ varying highp vec2 coords;
+ void main() {
+ gl_Position = vertices;
+ coords = vertices.xy;
+ }
+ """
+)
+FRAGMENT_SHADER = dedent(
+ """\
+ uniform lowp float t;
+ varying highp vec2 coords;
+ void main() {
+ lowp float i = 1. - (pow(abs(coords.x), 4.) + pow(abs(coords.y), 4.));
+ i = smoothstep(t - 0.8, t + 0.8, i);
+ i = floor(i * 20.) / 20.;
+ gl_FragColor = vec4(coords * .5 + .5, i, i);
+ }
+ """
+)
+
+
+class SquircleRenderer(QOpenGLFunctions):
+ def __init__(self):
+ QOpenGLFunctions.__init__(self)
+ self._viewport_size = QSize()
+ self._t = 0.0
+ self._program = None
+ self._window = QQuickWindow()
+
+ def setT(self, t):
+ self._t = t
+
+ def setViewportSize(self, size):
+ self._viewport_size = size
+
+ def setWindow(self, window):
+ self._window = window
+
+ @Slot()
+ def init(self):
+ if not self._program:
+ rif = self._window.rendererInterface()
+ assert (rif.graphicsApi() == QSGRendererInterface.OpenGL)
+ self.initializeOpenGLFunctions()
+ self._program = QOpenGLShaderProgram()
+ self._program.addCacheableShaderFromSourceCode(QOpenGLShader.Vertex, VERTEX_SHADER)
+ self._program.addCacheableShaderFromSourceCode(QOpenGLShader.Fragment, FRAGMENT_SHADER)
+ self._program.bindAttributeLocation("vertices", 0)
+ self._program.link()
+
+ @Slot()
+ def paint(self):
+ # Play nice with the RHI. Not strictly needed when the scenegraph uses
+ # OpenGL directly.
+ self._window.beginExternalCommands()
+
+ self._program.bind()
+
+ self._program.enableAttributeArray(0)
+
+ values = np.array([-1, -1, 1, -1, -1, 1, 1, 1], dtype="single")
+
+ # This example relies on (deprecated) client-side pointers for the vertex
+ # input. Therefore, we have to make sure no vertex buffer is bound.
+ self.glBindBuffer(GL_ARRAY_BUFFER, 0)
+
+ self._program.setAttributeArray(0, GL_FLOAT, values, 2)
+ self._program.setUniformValue1f("t", self._t)
+
+ self.glViewport(0, 0, self._viewport_size.width(), self._viewport_size.height())
+
+ self.glDisable(GL_DEPTH_TEST)
+
+ self.glEnable(GL_BLEND)
+ self.glBlendFunc(GL_SRC_ALPHA, GL_ONE)
+
+ self.glDrawArrays(GL_TRIANGLE_STRIP, 0, 4)
+
+ self._program.disableAttributeArray(0)
+ self._program.release()
+
+ self._window.endExternalCommands()
diff --git a/examples/quick/scenegraph/scenegraph_customgeometry/doc/scenegraph_customgeometry.rst b/examples/quick/scenegraph/scenegraph_customgeometry/doc/scenegraph_customgeometry.rst
new file mode 100644
index 000000000..190ab80c2
--- /dev/null
+++ b/examples/quick/scenegraph/scenegraph_customgeometry/doc/scenegraph_customgeometry.rst
@@ -0,0 +1,7 @@
+Scene Graph - Custom Geometry
+=============================
+
+The custom geometry example shows how to create a QQuickItem which uses the
+scene graph API to build a custom geometry for the scene graph. It does this
+by creating a BezierCurve item which is made part of the CustomGeometry module
+and makes use of this in a QML file.
diff --git a/examples/quick/scenegraph/scenegraph_customgeometry/main.py b/examples/quick/scenegraph/scenegraph_customgeometry/main.py
new file mode 100644
index 000000000..60a904065
--- /dev/null
+++ b/examples/quick/scenegraph/scenegraph_customgeometry/main.py
@@ -0,0 +1,152 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the Qt Quick customgeometry example from Qt v6.x"""
+
+import sys
+from pathlib import Path
+
+from PySide6.QtQuick import (QQuickView, QQuickItem, QSGNode, QSGGeometryNode,
+ QSGGeometry, QSGFlatColorMaterial)
+from PySide6.QtQml import QmlElement
+from PySide6.QtGui import QGuiApplication, QColor
+from PySide6.QtCore import (QPointF, QUrl, Property, Signal, Slot)
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "CustomGeometry"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class BezierCurve(QQuickItem):
+ p1Changed = Signal()
+ p2Changed = Signal()
+ p3Changed = Signal()
+ p4Changed = Signal()
+ segmentCountChanged = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+ self._p1 = QPointF(0, 0)
+ self._p2 = QPointF(1, 0)
+ self._p3 = QPointF(0, 1)
+ self._p4 = QPointF(1, 1)
+ self._segmentCount = 32
+
+ self._node = None
+ self._geometry = None
+ self.setFlag(QQuickItem.Flags.ItemHasContents, True)
+
+ def p1(self):
+ return self._p1
+
+ def p2(self):
+ return self._p2
+
+ def p3(self):
+ return self._p3
+
+ def p4(self):
+ return self._p4
+
+ def segmentCount(self):
+ return self._segmentCount
+
+ @Slot(QPointF)
+ def setP1(self, p):
+ if p != self._p1:
+ self._p1 = p
+ self.p1Changed.emit()
+ self.update()
+
+ @Slot(QPointF)
+ def setP2(self, p):
+ if p != self._p2:
+ self._p2 = p
+ self.p2Changed.emit()
+ self.update()
+
+ @Slot(QPointF)
+ def setP3(self, p):
+ if p != self._p3:
+ self._p3 = p
+ self.p3Changed.emit()
+ self.update()
+
+ @Slot(QPointF)
+ def setP4(self, p):
+ if p != self._p4:
+ self._p4 = p
+ self.p4Changed.emit()
+ self.update()
+
+ @Slot(int)
+ def setSegmentCount(self, p):
+ if p != self._segmentCount:
+ self._segmentCount = p
+ self.segmentCountChanged.emit()
+ self.update()
+
+ def updatePaintNode(self, oldNode, updatePaintNodeData):
+ self._node = oldNode
+ if not self._node:
+ self._default_attributes = QSGGeometry.defaultAttributes_Point2D()
+ self._geometry = QSGGeometry(self._default_attributes, self._segmentCount)
+ self._geometry.setLineWidth(2)
+ self._geometry.setDrawingMode(QSGGeometry.DrawingMode.DrawLineStrip)
+
+ self._node = QSGGeometryNode()
+ self._node.setGeometry(self._geometry)
+ self._node.setFlag(QSGNode.Flags.OwnsGeometry)
+ self._material = QSGFlatColorMaterial()
+ self._material.setColor(QColor(255, 0, 0))
+ self._node.setMaterial(self._material)
+ self._node.setFlag(QSGNode.Flags.OwnsMaterial)
+ else:
+ self._geometry = self._node.geometry()
+ self._geometry.allocate(self._segmentCount)
+
+ item_size = self.size()
+ item_width = float(item_size.width())
+ item_height = float(item_size.height())
+ vertices = self._geometry.vertexDataAsPoint2D()
+ for i in range(self._segmentCount):
+ t = float(i) / float(self._segmentCount - 1)
+ inv_t = 1 - t
+ pos = ((inv_t * inv_t * inv_t * self._p1)
+ + (3 * inv_t * inv_t * t * self._p2)
+ + (3 * inv_t * t * t * self._p3)
+ + (t * t * t * self._p4))
+ vertices[i].set(pos.x() * item_width, pos.y() * item_height)
+
+ self._geometry.setVertexDataAsPoint2D(vertices)
+
+ self._node.markDirty(QSGNode.DirtyGeometry)
+ return self._node
+
+ p1 = Property(QPointF, p1, setP1, notify=p1Changed)
+ p2 = Property(QPointF, p2, setP2, notify=p2Changed)
+ p3 = Property(QPointF, p3, setP3, notify=p3Changed)
+ p4 = Property(QPointF, p4, setP4, notify=p4Changed)
+
+ segmentCount = Property(int, segmentCount, setSegmentCount,
+ notify=segmentCountChanged)
+
+
+if __name__ == "__main__":
+ app = QGuiApplication([])
+ view = QQuickView()
+ format = view.format()
+ format.setSamples(16)
+ view.setFormat(format)
+
+ qml_file = Path(__file__).parent / "main.qml"
+ view.setSource(QUrl.fromLocalFile(qml_file))
+ if not view.rootObject():
+ sys.exit(-1)
+ view.show()
+ ex = app.exec()
+ del view
+ sys.exit(ex)
diff --git a/examples/quick/scenegraph/scenegraph_customgeometry/main.qml b/examples/quick/scenegraph/scenegraph_customgeometry/main.qml
new file mode 100644
index 000000000..88431a176
--- /dev/null
+++ b/examples/quick/scenegraph/scenegraph_customgeometry/main.qml
@@ -0,0 +1,34 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import CustomGeometry
+
+Item {
+ width: 300
+ height: 200
+
+ BezierCurve {
+ id: line
+ anchors.fill: parent
+ anchors.margins: 20
+ property real t
+ SequentialAnimation on t {
+ NumberAnimation { to: 1; duration: 2000; easing.type: Easing.InOutQuad }
+ NumberAnimation { to: 0; duration: 2000; easing.type: Easing.InOutQuad }
+ loops: Animation.Infinite
+ }
+
+ p2: Qt.point(t, 1 - t)
+ p3: Qt.point(1 - t, t)
+ }
+
+ Text {
+ anchors.bottom: line.bottom
+ x: 20
+ width: parent.width - 40
+ wrapMode: Text.WordWrap
+
+ text: "This curve is a custom scene graph item, implemented using GL_LINE_STRIP"
+ }
+}
diff --git a/examples/quick/scenegraph/scenegraph_customgeometry/scenegraph_customgeometry.pyproject b/examples/quick/scenegraph/scenegraph_customgeometry/scenegraph_customgeometry.pyproject
new file mode 100644
index 000000000..a5247ef6c
--- /dev/null
+++ b/examples/quick/scenegraph/scenegraph_customgeometry/scenegraph_customgeometry.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["main.py","main.qml"]
+}
diff --git a/examples/quick/shared/Button.qml b/examples/quick/shared/Button.qml
new file mode 100644
index 000000000..2d4797a96
--- /dev/null
+++ b/examples/quick/shared/Button.qml
@@ -0,0 +1,50 @@
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Window 2.1
+
+Item {
+ id: container
+
+ property alias text: buttonLabel.text
+ property alias label: buttonLabel
+ signal clicked
+ property alias containsMouse: hoverHandler.hovered
+ property alias pressed: tapHandler.pressed
+ implicitHeight: Math.max(Screen.pixelDensity * 7, buttonLabel.implicitHeight * 1.2)
+ implicitWidth: Math.max(Screen.pixelDensity * 11, buttonLabel.implicitWidth * 1.3)
+ height: implicitHeight
+ width: implicitWidth
+
+ SystemPalette { id: palette }
+
+ Rectangle {
+ id: frame
+ anchors.fill: parent
+ color: palette.button
+ gradient: Gradient {
+ GradientStop { position: 0.0; color: tapHandler.pressed ? Qt.darker(palette.button, 1.3) : palette.button }
+ GradientStop { position: 1.0; color: Qt.darker(palette.button, 1.3) }
+ }
+ antialiasing: true
+ radius: height / 6
+ border.color: Qt.darker(palette.button, 1.5)
+ border.width: 1
+ }
+
+ TapHandler {
+ id: tapHandler
+ onTapped: container.clicked();
+ }
+ HoverHandler {
+ id: hoverHandler
+ }
+
+ Text {
+ id: buttonLabel
+ text: container.text
+ color: palette.buttonText
+ anchors.centerIn: parent
+ }
+}
diff --git a/examples/quick/shared/CheckBox.qml b/examples/quick/shared/CheckBox.qml
new file mode 100644
index 000000000..45c4f4e67
--- /dev/null
+++ b/examples/quick/shared/CheckBox.qml
@@ -0,0 +1,59 @@
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+
+Item {
+ id: root
+ implicitHeight: frame.height
+ implicitWidth: row.implicitWidth
+ width: implicitWidth
+ height: implicitHeight
+ property alias text: label.text
+ property bool checked
+ property alias pressed: tapHandler.pressed
+ property alias row: row
+ signal clicked
+
+ SystemPalette { id: palette }
+
+ Row {
+ id: row
+ anchors.verticalCenter: parent.verticalCenter
+ spacing: 6
+ Rectangle {
+ id: frame
+ gradient: Gradient {
+ GradientStop { position: 0.0; color: tapHandler.pressed ? Qt.darker(palette.button, 1.3) : palette.button }
+ GradientStop { position: 1.0; color: Qt.darker(palette.button, 1.3) }
+ }
+ height: label.implicitHeight * 1.5
+ width: height
+ anchors.margins: 1
+ radius: 3
+ antialiasing: true
+ border.color: Qt.darker(palette.button, 1.5)
+ Image {
+ id: theX
+ source: "images/checkmark.png"
+ anchors.fill: frame
+ anchors.margins: frame.width / 5
+ fillMode: Image.PreserveAspectFit
+ smooth: true
+ visible: root.checked
+ }
+ }
+ Text {
+ id: label
+ color: palette.text
+ anchors.verticalCenter: frame.verticalCenter
+ }
+ }
+ TapHandler {
+ id: tapHandler
+ onTapped: {
+ parent.checked = !parent.checked
+ parent.clicked()
+ }
+ }
+}
diff --git a/examples/quick/shared/FlickrRssModel.qml b/examples/quick/shared/FlickrRssModel.qml
new file mode 100644
index 000000000..e78d1ffa2
--- /dev/null
+++ b/examples/quick/shared/FlickrRssModel.qml
@@ -0,0 +1,45 @@
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+
+ListModel {
+ id: flickrImages
+ property string tags : ""
+ readonly property string queryUrl : "http://api.flickr.com/services/feeds/photos_public.gne?"
+
+ function encodeParams(x) {
+ return encodeURIComponent(x.replace(" ",","));
+ }
+ function fetchImages(format) {
+ var requestURL = queryUrl + (tags ? "tags="+encodeParams(tags)+"&" : "") + "format=" + format + "&nojsoncallback=1";
+ var xhr = new XMLHttpRequest;
+ xhr.onreadystatechange = function() {
+ if (xhr.readyState === XMLHttpRequest.DONE) {
+
+ if (xhr.status !== 200) {
+ console.log("Failed to get images from flickr. status code: " + xhr.status);
+ return;
+ }
+
+ var jsonText = xhr.responseText;
+ var objArray = JSON.parse(jsonText.replace(/\'/g,"'"))
+ if (objArray.errors !== undefined)
+ console.log("Error fetching tweets: " + objArray.errors[0].message)
+ else {
+ for (var key in objArray.items) {
+ var rssItem = objArray.items[key];
+ var jsonObject = "{ \"title\": \"" + rssItem.title +"\",\"media\": \"" + rssItem.media.m + "\", \"thumbnail\": \"" + rssItem.media.m.replace(/\_m\.jpg/,"_s.jpg") +"\"}"
+ flickrImages.append(JSON.parse(jsonObject));
+ }
+ }
+ }
+ }
+ xhr.open("GET", requestURL, true);
+ xhr.send();
+ }
+ Component.onCompleted: {
+ fetchImages("json");
+ }
+}
+
diff --git a/examples/quick/shared/Images.qml b/examples/quick/shared/Images.qml
new file mode 100644
index 000000000..ade3619d8
--- /dev/null
+++ b/examples/quick/shared/Images.qml
@@ -0,0 +1,14 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+pragma Singleton
+import QtQml
+
+QtObject {
+ readonly property url back: Qt.resolvedUrl("images/back.png")
+ readonly property url checkmark: Qt.resolvedUrl("images/checkmark.png")
+ readonly property url next: Qt.resolvedUrl("images/next.png")
+ readonly property url qtLogo: Qt.resolvedUrl("images/qt-logo.png")
+ readonly property url sliderHandle: Qt.resolvedUrl("images/slider_handle.png")
+ readonly property url tab: Qt.resolvedUrl("images/tab.png")
+}
diff --git a/examples/quick/shared/Label.qml b/examples/quick/shared/Label.qml
new file mode 100644
index 000000000..5393336ca
--- /dev/null
+++ b/examples/quick/shared/Label.qml
@@ -0,0 +1,9 @@
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+
+Text {
+ SystemPalette { id: palette }
+ color: palette.text
+}
diff --git a/examples/quick/shared/LauncherList.qml b/examples/quick/shared/LauncherList.qml
new file mode 100644
index 000000000..ff383e4e4
--- /dev/null
+++ b/examples/quick/shared/LauncherList.qml
@@ -0,0 +1,205 @@
+// Copyright (C) 2017 Crimson AS <info@crimson.no>
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQml
+import QtQml.Models 2.12
+import QtQuick
+
+Rectangle {
+ id: root
+ property int activePageCount: 0
+
+ //model is a list of {"name":"somename", "url":"file:///some/url/mainfile.qml"}
+ //function used to add to model A) to enforce scheme B) to allow Qt.resolveUrl in url assignments
+
+ color: "#eee"
+ function addExample(name, desc, url) {
+ myModel.append({"name":name, "description":desc, "url":url})
+ }
+ function showExample(url) {
+ pageComponent.createObject(pageContainer, { exampleUrl: url }).show()
+ }
+
+ // The container rectangle here is used to give a nice "feel" when
+ // transitioning into an example.
+ Rectangle {
+ anchors.fill: parent
+ color: "black"
+
+ ListView {
+ id: launcherList
+ clip: true
+ delegate: SimpleLauncherDelegate{
+ required property url url
+ onClicked: root.showExample(url)
+ }
+ model: ListModel {id:myModel}
+ anchors.fill: parent
+ enabled: opacity == 1.0
+ }
+ }
+
+ Item {
+ id: pageContainer
+ anchors.fill: parent
+ }
+
+ Component {
+ id: pageComponent
+ Rectangle {
+ id: page
+ clip: true
+ property url exampleUrl
+ width: parent.width
+ height: parent.height - bar.height
+ color: "white"
+ TapHandler {
+ //Eats mouse events
+ }
+ Loader{
+ focus: true
+ source: parent.exampleUrl
+ anchors.fill: parent
+ }
+
+ function show() {
+ showAnim.start()
+ }
+
+ function exit() {
+ exitAnim.start()
+ }
+
+ ParallelAnimation {
+ id: showAnim
+ ScriptAction {
+ script: root.activePageCount++
+ }
+ NumberAnimation {
+ target: launcherList
+ property: "opacity"
+ from: 1.0
+ to: 0.0
+ duration: 500
+ }
+ NumberAnimation {
+ target: launcherList
+ property: "scale"
+ from: 1.0
+ to: 0.0
+ duration: 500
+ }
+ NumberAnimation {
+ target: page
+ property: "x"
+ from: -page.width
+ to: 0
+ duration: 300
+ }
+ }
+ SequentialAnimation {
+ id: exitAnim
+
+ ScriptAction {
+ script: root.activePageCount--
+ }
+
+ ParallelAnimation {
+ NumberAnimation {
+ target: launcherList
+ property: "opacity"
+ from: 0.0
+ to: 1.0
+ duration: 300
+ }
+ NumberAnimation {
+ target: launcherList
+ property: "scale"
+ from: 0.0
+ to: 1.0
+ duration: 300
+ }
+ NumberAnimation {
+ target: page
+ property: "x"
+ from: 0
+ to: -page.width
+ duration: 300
+ }
+ }
+
+ ScriptAction {
+ script: page.destroy()
+ }
+ }
+ }
+ }
+ Rectangle {
+ id: bar
+ visible: height > 0
+ anchors.bottom: parent.bottom
+ width: parent.width
+ height: root.activePageCount > 0 ? 40 : 0
+
+ Behavior on height {
+ NumberAnimation {
+ duration: 300
+ }
+ }
+
+ Rectangle {
+ height: 1
+ color: "#ccc"
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ }
+
+ Rectangle {
+ height: 1
+ color: "#fff"
+ anchors.top: parent.top
+ anchors.topMargin: 1
+ anchors.left: parent.left
+ anchors.right: parent.right
+ }
+
+ gradient: Gradient {
+ GradientStop { position: 0 ; color: "#eee" }
+ GradientStop { position: 1 ; color: "#ccc" }
+ }
+
+ Image {
+ id: back
+ source: "images/back.png"
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.verticalCenterOffset: 2
+ anchors.left: parent.left
+ anchors.leftMargin: 16
+
+ TapHandler {
+ id: tapHandler
+ enabled: root.activePageCount > 0
+ onTapped: {
+ pageContainer.children[pageContainer.children.length - 1].exit()
+ }
+ }
+ Rectangle {
+ anchors.centerIn: back
+ width: 38
+ height: 31
+ anchors.verticalCenterOffset: -1
+ opacity: tapHandler.pressed ? 1 : 0
+ Behavior on opacity { NumberAnimation{ duration: 100 }}
+ gradient: Gradient {
+ GradientStop { position: 0 ; color: "#22000000" }
+ GradientStop { position: 0.2 ; color: "#11000000" }
+ }
+ border.color: "darkgray"
+ antialiasing: true
+ radius: 4
+ }
+ }
+ }
+}
diff --git a/examples/quick/shared/README b/examples/quick/shared/README
new file mode 100644
index 000000000..2bf26d7c8
--- /dev/null
+++ b/examples/quick/shared/README
@@ -0,0 +1,11 @@
+These files are shared between multiple examples as a set of common and
+reusuable components. While they do demonstrate the building of reusable
+components in QML, they are not official examples themselves.
+Consequently they do not have entries in the Qt documentation, and are
+documented only through the code comments within the files. Developers
+new to QML are strongly encouraged to go through the official examples
+before delving into this directory.
+
+For most application use, see the Qt Quick Components project to find
+ready-made Components you can use in your own projects. Qt Quick
+examples do not use them only to avoid external dependencies.
diff --git a/examples/quick/shared/SimpleLauncherDelegate.qml b/examples/quick/shared/SimpleLauncherDelegate.qml
new file mode 100644
index 000000000..c6ca9802d
--- /dev/null
+++ b/examples/quick/shared/SimpleLauncherDelegate.qml
@@ -0,0 +1,96 @@
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+import QtQuick
+
+Rectangle {
+ id: container
+ required property string name
+ required property string description
+
+ property Item exampleItem
+ width: ListView.view.width
+ height: button.implicitHeight + 22
+
+ signal clicked()
+
+ gradient: Gradient {
+ GradientStop {
+ position: 0
+ Behavior on color {ColorAnimation { duration: 100 }}
+ color: tapHandler.pressed ? "#e0e0e0" : "#fff"
+ }
+ GradientStop {
+ position: 1
+ Behavior on color {ColorAnimation { duration: 100 }}
+ color: tapHandler.pressed ? "#e0e0e0" : button.containsMouse ? "#f5f5f5" : "#eee"
+ }
+ }
+
+ Image {
+ id: image
+ opacity: 0.7
+ Behavior on opacity {NumberAnimation {duration: 100}}
+ source: "images/next.png"
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.right: parent.right
+ anchors.rightMargin: 16
+ }
+
+ Item {
+ id: button
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.bottom: parent.bottom
+ anchors.right:image.left
+ implicitHeight: col.height
+ height: implicitHeight
+ width: buttonLabel.width + 20
+ property alias containsMouse: hoverHandler.hovered
+
+ TapHandler {
+ id: tapHandler
+ onTapped: container.clicked()
+ }
+ HoverHandler {
+ id: hoverHandler
+ }
+
+ Column {
+ spacing: 2
+ id: col
+ anchors.verticalCenter: parent.verticalCenter
+ width: parent.width
+ Text {
+ id: buttonLabel
+ anchors.left: parent.left
+ anchors.leftMargin: 10
+ anchors.right: parent.right
+ anchors.rightMargin: 10
+ text: container.name
+ color: "black"
+ font.pixelSize: 22
+ wrapMode: Text.WrapAtWordBoundaryOrAnywhere
+ styleColor: "white"
+ style: Text.Raised
+
+ }
+ Text {
+ id: buttonLabel2
+ anchors.left: parent.left
+ anchors.leftMargin: 10
+ text: container.description
+ wrapMode: Text.WrapAtWordBoundaryOrAnywhere
+ color: "#666"
+ font.pixelSize: 12
+ }
+ }
+ }
+
+ Rectangle {
+ height: 1
+ color: "#ccc"
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ anchors.right: parent.right
+ }
+}
diff --git a/examples/quick/shared/Slider.qml b/examples/quick/shared/Slider.qml
new file mode 100644
index 000000000..b8bb6ed30
--- /dev/null
+++ b/examples/quick/shared/Slider.qml
@@ -0,0 +1,82 @@
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+
+Item {
+ id: slider
+ height: 26
+ // default drag range is 180: divisible by 2, 3, 4, 5, 6, 9, 10, ...
+ width: sliderName.width + 223 + handle.width / 2
+
+ property real min: 0
+ property real max: 1
+ property real value: min + (max - min) * dragHandler.value
+ property real init: min+(max-min)/2
+ property string name: "Slider"
+ property color color: "#0066cc"
+ property real minLabelWidth: 44
+
+ DragHandler {
+ id: dragHandler
+ target: handle
+ xAxis.minimum: Math.round(-handle.width / 2 + 3)
+ xAxis.maximum: Math.round(groove.width - handle.width / 2 - 3)
+ property real value: (handle.x - xAxis.minimum) / (xAxis.maximum - xAxis.minimum)
+ }
+
+ Component.onCompleted: setValue(init)
+ function setValue(v) {
+ if (min < max) {
+ handle.x = Math.round( v / (max - min) *
+ (dragHandler.xAxis.maximum - dragHandler.xAxis.minimum)
+ + dragHandler.xAxis.minimum);
+// console.log(name, v, "-> handle.x", handle.x, "from fraction", (v / (max - min)),
+// "of drag range", (dragHandler.xAxis.maximum - dragHandler.xAxis.minimum), "px", min, ":", max)
+ }
+ }
+ Rectangle {
+ id:sliderName
+ anchors.left: parent.left
+ anchors.leftMargin: 16
+ height: childrenRect.height
+ width: Math.max(slider.minLabelWidth, childrenRect.width)
+ anchors.verticalCenter: parent.verticalCenter
+ Text {
+ text: slider.name + ":"
+ font.pointSize: 12
+ color: "#333"
+ }
+ }
+
+ Rectangle {
+ id: groove
+ width: parent.width - 8 - sliderName.width
+ color: "#eee"
+ height: 7
+ radius: 3
+ antialiasing: true
+ border.color: Qt.darker(color, 1.2)
+ anchors.left: sliderName.right
+ anchors.right: parent.right
+ anchors.leftMargin: 10
+ anchors.rightMargin: 24
+ anchors.verticalCenter: parent.verticalCenter
+
+ Rectangle {
+ height: parent.height
+ anchors.left: parent.left
+ anchors.right: handle.horizontalCenter
+ color: slider.color
+ radius: 3
+ border.width: 1
+ border.color: Qt.darker(color, 1.3)
+ opacity: 0.8
+ }
+ Image {
+ id: handle
+ source: "images/slider_handle.png"
+ anchors.verticalCenter: parent.verticalCenter
+ }
+ }
+}
diff --git a/examples/quick/shared/TabSet.qml b/examples/quick/shared/TabSet.qml
new file mode 100644
index 000000000..e78880b91
--- /dev/null
+++ b/examples/quick/shared/TabSet.qml
@@ -0,0 +1,69 @@
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Window 2.1
+
+Item {
+ id: tabWidget
+
+ // Setting the default property to stack.children means any child items
+ // of the TabWidget are actually added to the 'stack' item's children.
+ // See the "Property Binding"
+ // documentation for details on default properties.
+ default property alias content: stack.children
+
+ property int current: 0
+
+ onCurrentChanged: setZOrders()
+ Component.onCompleted: setZOrders()
+
+ function setZOrders() {
+ for (var i = 0; i < stack.children.length; ++i) {
+ stack.children[i].z = (i == current ? 1 : 0)
+ stack.children[i].enabled = (i == current)
+ }
+ }
+
+ Row {
+ id: header
+
+ Repeater {
+ model: stack.children.length
+ delegate: Rectangle {
+ required property int index
+ width: tabWidget.width / stack.children.length
+ height: Math.max(Screen.pixelDensity * 7, label.implicitHeight * 1.2)
+
+ Rectangle {
+ width: parent.width; height: 1
+ anchors { bottom: parent.bottom; bottomMargin: 1 }
+ color: "#acb2c2"
+ }
+ BorderImage {
+ anchors { fill: parent; leftMargin: 2; topMargin: 5; rightMargin: 1 }
+ border { left: 7; right: 7 }
+ source: "images/tab.png"
+ visible: tabWidget.current == parent.index
+ }
+ Text {
+ id: label
+ horizontalAlignment: Qt.AlignHCenter; verticalAlignment: Qt.AlignVCenter
+ anchors.fill: parent
+ text: stack.children[parent.index].title
+ elide: Text.ElideRight
+ font.bold: tabWidget.current == parent.index
+ }
+ TapHandler {
+ onTapped: tabWidget.current = parent.index
+ }
+ }
+ }
+ }
+
+ Item {
+ id: stack
+ width: tabWidget.width
+ anchors.top: header.bottom; anchors.bottom: tabWidget.bottom
+ }
+}
diff --git a/examples/quick/shared/TextField.qml b/examples/quick/shared/TextField.qml
new file mode 100644
index 000000000..66854c89b
--- /dev/null
+++ b/examples/quick/shared/TextField.qml
@@ -0,0 +1,43 @@
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+
+Item {
+ id: root
+
+ property alias textInput: textInput
+ property alias text: textInput.text
+ signal accepted
+ signal downPressed
+ implicitWidth: textInput.implicitWidth + rect.radius * 2
+ implicitHeight: textInput.implicitHeight
+
+ function copyAll() {
+ textInput.selectAll()
+ textInput.copy()
+ }
+
+ SystemPalette { id: palette }
+ height: textInput.implicitHeight + 8
+ clip: true
+
+ Rectangle {
+ id: rect
+ anchors.fill: parent
+ radius: height / 4
+ color: palette.button
+ border.color: Qt.darker(palette.button, 1.5)
+ }
+
+ TextInput {
+ id: textInput
+ color: palette.text
+ anchors.fill: parent
+ anchors.leftMargin: rect.radius
+ anchors.rightMargin: rect.radius
+ verticalAlignment: Text.AlignVCenter
+ onAccepted: root.accepted()
+ Keys.onDownPressed: root.downPressed()
+ }
+}
diff --git a/examples/quick/shared/images/back.png b/examples/quick/shared/images/back.png
new file mode 100644
index 000000000..53402096b
--- /dev/null
+++ b/examples/quick/shared/images/back.png
Binary files differ
diff --git a/examples/quick/shared/images/checkmark.png b/examples/quick/shared/images/checkmark.png
new file mode 100644
index 000000000..821aafccd
--- /dev/null
+++ b/examples/quick/shared/images/checkmark.png
Binary files differ
diff --git a/examples/quick/shared/images/next.png b/examples/quick/shared/images/next.png
new file mode 100644
index 000000000..cdef8db6e
--- /dev/null
+++ b/examples/quick/shared/images/next.png
Binary files differ
diff --git a/examples/quick/shared/images/qt-logo.png b/examples/quick/shared/images/qt-logo.png
new file mode 100644
index 000000000..a3e793b87
--- /dev/null
+++ b/examples/quick/shared/images/qt-logo.png
Binary files differ
diff --git a/examples/quick/shared/images/slider_handle.png b/examples/quick/shared/images/slider_handle.png
new file mode 100644
index 000000000..63c518be7
--- /dev/null
+++ b/examples/quick/shared/images/slider_handle.png
Binary files differ
diff --git a/examples/quick/shared/images/tab.png b/examples/quick/shared/images/tab.png
new file mode 100644
index 000000000..2ea989b68
--- /dev/null
+++ b/examples/quick/shared/images/tab.png
Binary files differ
diff --git a/examples/quick/shared/qmldir b/examples/quick/shared/qmldir
new file mode 100644
index 000000000..5ccdf6021
--- /dev/null
+++ b/examples/quick/shared/qmldir
@@ -0,0 +1,11 @@
+module shared
+Button 2.0 Button.qml
+CheckBox 2.1 CheckBox.qml
+FlickrRssModel 2.0 FlickrRssModel.qml
+Label 2.0 Label.qml
+LauncherList 2.0 LauncherList.qml
+SimpleLauncherDelegate 2.0 SimpleLauncherDelegate.qml
+Slider 2.0 Slider.qml
+TabSet 2.1 TabSet.qml
+TextField 2.1 TextField.qml
+singleton Images 2.2 Images.qml
diff --git a/examples/quick/shared/quick_shared.qrc b/examples/quick/shared/quick_shared.qrc
new file mode 100644
index 000000000..21f393a64
--- /dev/null
+++ b/examples/quick/shared/quick_shared.qrc
@@ -0,0 +1,15 @@
+<RCC>
+ <qresource prefix="/quick/shared">
+ <file>LauncherList.qml</file>
+ <file>SimpleLauncherDelegate.qml</file>
+ <file>Button.qml</file>
+ <file>CheckBox.qml</file>
+ <file>Label.qml</file>
+ <file>TextField.qml</file>
+ <file>images/back.png</file>
+ <file>images/next.png</file>
+ <file>images/checkmark.png</file>
+ <file>Slider.qml</file>
+ <file>images/slider_handle.png</file>
+ </qresource>
+</RCC>
diff --git a/examples/quick/shared/shared.qrc b/examples/quick/shared/shared.qrc
new file mode 100644
index 000000000..c19063a58
--- /dev/null
+++ b/examples/quick/shared/shared.qrc
@@ -0,0 +1,21 @@
+<RCC>
+ <qresource prefix="/shared">
+ <file>Button.qml</file>
+ <file>CheckBox.qml</file>
+ <file>FlickrRssModel.qml</file>
+ <file>Images.qml</file>
+ <file>Label.qml</file>
+ <file>LauncherList.qml</file>
+ <file>SimpleLauncherDelegate.qml</file>
+ <file>Slider.qml</file>
+ <file>TabSet.qml</file>
+ <file>TextField.qml</file>
+ <file>images/back.png</file>
+ <file>images/checkmark.png</file>
+ <file>images/next.png</file>
+ <file>images/qt-logo.png</file>
+ <file>images/slider_handle.png</file>
+ <file>images/tab.png</file>
+ <file>qmldir</file>
+ </qresource>
+</RCC>
diff --git a/examples/quick/shared/shared_rc.py b/examples/quick/shared/shared_rc.py
new file mode 100644
index 000000000..14a9da5b9
--- /dev/null
+++ b/examples/quick/shared/shared_rc.py
@@ -0,0 +1,2253 @@
+# Resource object code (Python 3)
+# Created by: object code
+# Created by: The Resource Compiler for Qt version 6.5.0
+# WARNING! All changes made in this file will be lost!
+
+from PySide6 import QtCore
+
+qt_resource_data = b"\
+\x00\x00\x06\xd1\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0d\x0a// SPD\
+X-License-Identi\
+fier: LicenseRef\
+-Qt-Commercial O\
+R BSD-3-Clause\x0d\x0a\
+\x0d\x0aimport QtQuick\
+\x0d\x0a\x0d\x0aItem {\x0d\x0a \
+id: root\x0d\x0a im\
+plicitHeight: fr\
+ame.height\x0d\x0a \
+implicitWidth: r\
+ow.implicitWidth\
+\x0d\x0a width: imp\
+licitWidth\x0d\x0a \
+height: implicit\
+Height\x0d\x0a prop\
+erty alias text:\
+ label.text\x0d\x0a \
+ property bool c\
+hecked\x0d\x0a prop\
+erty alias press\
+ed: tapHandler.p\
+ressed\x0d\x0a prop\
+erty alias row: \
+row\x0d\x0a signal \
+clicked\x0d\x0a\x0d\x0a S\
+ystemPalette { i\
+d: palette }\x0d\x0a\x0d\x0a\
+ Row {\x0d\x0a \
+ id: row\x0d\x0a \
+ anchors.vert\
+icalCenter: pare\
+nt.verticalCente\
+r\x0d\x0a spaci\
+ng: 6\x0d\x0a R\
+ectangle {\x0d\x0a \
+ id: fram\
+e\x0d\x0a g\
+radient: Gradien\
+t {\x0d\x0a \
+ GradientSto\
+p { position: 0.\
+0; color: tapHan\
+dler.pressed ? Q\
+t.darker(palette\
+.button, 1.3) : \
+palette.button }\
+\x0d\x0a \
+ GradientStop {\
+ position: 1.0; \
+color: Qt.darker\
+(palette.button,\
+ 1.3) }\x0d\x0a \
+ }\x0d\x0a \
+ height: labe\
+l.implicitHeight\
+ * 1.5\x0d\x0a \
+ width: heigh\
+t\x0d\x0a a\
+nchors.margins: \
+1\x0d\x0a r\
+adius: 3\x0d\x0a \
+ antialiasi\
+ng: true\x0d\x0a \
+ border.col\
+or: Qt.darker(pa\
+lette.button, 1.\
+5)\x0d\x0a \
+Image {\x0d\x0a \
+ id: the\
+X\x0d\x0a \
+ source: \x22imag\
+es/checkmark.png\
+\x22\x0d\x0a \
+ anchors.fill:\
+ frame\x0d\x0a \
+ anchors.\
+margins: frame.w\
+idth / 5\x0d\x0a \
+ fillMo\
+de: Image.Preser\
+veAspectFit\x0d\x0a \
+ smo\
+oth: true\x0d\x0a \
+ visib\
+le: root.checked\
+\x0d\x0a }\x0d\
+\x0a }\x0d\x0a \
+ Text {\x0d\x0a \
+ id: labe\
+l\x0d\x0a c\
+olor: palette.te\
+xt\x0d\x0a \
+anchors.vertical\
+Center: frame.ve\
+rticalCenter\x0d\x0a \
+ }\x0d\x0a }\x0d\x0a\
+ TapHandler {\
+\x0d\x0a id: ta\
+pHandler\x0d\x0a \
+ onTapped: {\x0d\x0a \
+ paren\
+t.checked = !par\
+ent.checked\x0d\x0a \
+ parent.\
+clicked()\x0d\x0a \
+ }\x0d\x0a }\x0d\x0a}\x0d\x0a\
+\
+\x00\x00\x04C\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0d\x0a// SPD\
+X-License-Identi\
+fier: LicenseRef\
+-Qt-Commercial O\
+R BSD-3-Clause\x0d\x0a\
+\x0d\x0aimport QtQuick\
+\x0d\x0a\x0d\x0aItem {\x0d\x0a \
+id: root\x0d\x0a\x0d\x0a \
+property alias t\
+extInput: textIn\
+put\x0d\x0a propert\
+y alias text: te\
+xtInput.text\x0d\x0a \
+ signal accepte\
+d\x0d\x0a signal do\
+wnPressed\x0d\x0a i\
+mplicitWidth: te\
+xtInput.implicit\
+Width + rect.rad\
+ius * 2\x0d\x0a imp\
+licitHeight: tex\
+tInput.implicitH\
+eight\x0d\x0a\x0d\x0a fun\
+ction copyAll() \
+{\x0d\x0a textI\
+nput.selectAll()\
+\x0d\x0a textIn\
+put.copy()\x0d\x0a \
+}\x0d\x0a\x0d\x0a SystemP\
+alette { id: pal\
+ette }\x0d\x0a heig\
+ht: textInput.im\
+plicitHeight + 8\
+\x0d\x0a clip: true\
+\x0d\x0a\x0d\x0a Rectangl\
+e {\x0d\x0a id:\
+ rect\x0d\x0a a\
+nchors.fill: par\
+ent\x0d\x0a rad\
+ius: height / 4\x0d\
+\x0a color: \
+palette.button\x0d\x0a\
+ border.c\
+olor: Qt.darker(\
+palette.button, \
+1.5)\x0d\x0a }\x0d\x0a\x0d\x0a \
+ TextInput {\x0d\x0a\
+ id: text\
+Input\x0d\x0a c\
+olor: palette.te\
+xt\x0d\x0a anch\
+ors.fill: parent\
+\x0d\x0a anchor\
+s.leftMargin: re\
+ct.radius\x0d\x0a \
+ anchors.right\
+Margin: rect.rad\
+ius\x0d\x0a ver\
+ticalAlignment: \
+Text.AlignVCente\
+r\x0d\x0a onAcc\
+epted: root.acce\
+pted()\x0d\x0a \
+Keys.onDownPress\
+ed: root.downPre\
+ssed()\x0d\x0a }\x0d\x0a}\
+\x0d\x0a\
+\x00\x00\x00\xcc\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0d\x0a// SPD\
+X-License-Identi\
+fier: LicenseRef\
+-Qt-Commercial O\
+R BSD-3-Clause\x0d\x0a\
+\x0d\x0aimport QtQuick\
+\x0d\x0a\x0d\x0aText {\x0d\x0a \
+SystemPalette { \
+id: palette }\x0d\x0a \
+ color: palett\
+e.text\x0d\x0a}\x0d\x0a\
+\x00\x00\x039\
+\x00\
+\x00\x0a\xd3x\xda\xc5VYO\xdb@\x10~\x8f\x94\xff\
+0\x0a/\xa0*\xceQ5H~\xa9 H\x05\x09J\
+9T\xfa\xba\xb1'\xf6\x0a{\xd7\xdd]\x13R\xc4\x7f\
+\xef\xac\x8f\xf8J(\xa0\xaauP\xd8\x9d\xf9fw\x8e\
+o\xc6\x19\x8d`.\x93\xb5\xe2Ah`\x7f~\x00\xd3\
+\xf1\xe4\x10nC\x84+C\x9a8ab\x0d\xe7\xc6w\
+\xfa\xbd\xd1\x08n\xbe\x9d\xfc\x18\x9es\x0f\x85\xc6\xe1\x99\
+\x8f\xc2\xf0%G\xe5B!\xbb\xc6\xe5\xf0\xca\x0c\xc9.\
+F\xe5q\x16\xc1\xe55\x1c\xdf\x9c\x0c?\x0e\xe7\x11K\
+5\xf6{<N\xa42t\xfaU\xca\xbd\xfb~\xaf\xdf\
+\xbbF\xcf0\x11D\x08O\xfd\x1e\xd0\xc3}\x17<)\
+\x0c\xe3\x02U.R\xf83\xe5\x0a}H\x94LP\x99\
+5h\xa3\xb8\x08@\xb0\x18\xff\x00\xf1Q{\x8a'\x86\
+Ka\xaf\xb3\xd8\x0d\xe4\xcc`\x0c\xf8\xc8\xe2$B\xbb\
+\xce\xd5+\xee\x9b\xd0\x06\xa5\xcdw\x8e+\xe7\xc1~e\
+\xc2\x5c\x1f\xa2M\x97\x0b\x8b\xd4\x18)\x1c\x0a)\xe2\x1e\
+7\xa7\x99\x18>\xc0tZ^\xa4y (\x0b\x1e\xe9\
+\xef\xd1\xdf?(\xe5\x81b>\xa7\xf4\xb9\xf0\xa5X\x95\
+\xc1\xdb\xa7\x94\xdd\x18\x99\xd4\xe5\x99\xebRs\x1b\x8a\x0b\
+\xe3\xa6\xe2\x18C\xf6\xc0\xa5\x02)({\x11-\x9e\xe6\
+\xf6\xdf\x91\xe01\xb3\x16\xf0\x04~\xaaXn<\x19\x8f\
+\xe1\xf9\xb9yBf\xe5\x82a\xc9)\x13~\x84\xcaI\
+\x14jM)\xfd\x0c\x83=\x1c\xdb\xcf\x00\x5cZ/\x97\
+\xcbAe\xfb\xfcV\xcf'\xff\xcb\xf3\xa2`\x05\xb9\xf4\
+\x85$Jf\x90\xe5'\xfb\xc9\x83C\xc4np\xcfe\
+\xe5\xceb\x16`=4\xcbVn\x85\x95H&\x8c\xe8\
+\xb0\xa6\x129\x87\x95\xb4\x1ef\x81\x80\xa7\xafi\xbc\xc0\
+z\xa4\x8d@\xebqj\x99*\x0f\xc9\xc1\xec2=\x12\
+\xf8h\x9cD\x045_\x99\xf0B\xa9\xb4\xf3@\xdc\xe6\
+\x1e\x8b\xe6T\x09\xdb\x9d\x09S\xb4j\x89\xbbf*g\
+u\x81\xcev;@\x17L\x05\xdc\xba8kg\xc7\xf6\
+S+9y\xd2\xbb'\x11E6\x97\xd1\xba\x0b\x88p\
+Y\xb9c7]\xc8B\xd2\xd9\xf1\x06\x94owE\x96\
+%\xaeuP\xb3w\xed\xdc\x89\x9c\xbc\xbd+L\xd9\xee\
+Ml\xa5/\xc6E\x1e\xe79[`\x94\x0f\x0b;\x09\
+jM\xba\x19:,\xe2LC\x83\x84.\x84\x92\xcaS\
+\xb27\xdb\xa0_f\xd5>\xb7\x1bn\xb7\xfb\xca\xe6\xb8\
+b~S'\x05\xd9%X\x1f\xa8Nm\x18m\xe9\xe0\
+\xd3\x9a\x1f\xdbn\xaa\xfb\xd98\xa0\xdaP\xf3\xa6\xb1h\
+\x1bkKy\x11\xb80\xed\x1eJYo\x0a\xdf\xc9\xe4\
+Z5\x0admjo2I\x8d\xd3v\xae\xc9\xd5\xac\
+\x86]\xc0+x\xb9\x0d\xbai\x96\xf1n\xdc\x8b\xad\xf7\
+r\x0bn9\xd5P\x84\xf5\x8aW/\xc9-Cs\xb0\
+\x88\x98w?\xe8\xea\x97d\xef$\xfc\x11\xa3\x1b\xfe\x8b\
+\x18:\x9dv1+\xc5\x92\x0b\xe9\x93\xd6f\xd5\xb9\xa3\
+\xed\x91\xb9\x93\xca?\x96\xa9\xf0\x99Z_\xd2l[\xaf\
+Bbs\xd7X\x9bu\x84\xf3\xc2\x8bU\xc8\x0d\x0ev\
+\x80\x8a\xe3\xaf\x19\xd7\xcd\xaeh\x91\xf7\x0d\xe5\x9d\xfe\x93\
+\xfa\xb6+\xd1\xf8-\xf2W\x93YVso6\x9b\xbd\
+\xa2\x98\x93\xe9\xce$\xb6\xdfx\x9d\xdfg\xf5\x99X{\
+\x95o<\xf0<o\xf0\xeeQ\xfd\x8a\xa1\xbf\xb3Y\xc8\
+e\xfa\xfb\x0d5\xf4\xfb\x95\
+\x00\x00\x05\xa1\
+\x00\
+\x00\x17\xafx\xda\xd5\x18ko\xdb6\xf0{\x80\xfc\x07\
+B\xfdb\xa3\xb1d;\xdd\x03\xda\xda.u\x8b.@\
+\xba>\xdc\x0d\x03\x86}\xa0\xa5\x93\xcdU\x22U\x92N\
+\x1a\x18\xfe\xef;J\xa2-\xc9\x94\xe2\xac\xdd\x86\x12y\
+\x88\xc7\xbb\xe3\xbdyd\x10\x90\x99\xc8o%[\xae4\
+\x19\xcc\x86d:\x9e|Gf\x92eJpr1'\
+?2\x9e\x88\x9f\xa2\x12\xe0s\xf1\xe4\xf4$p\xd2\xbc\
+_\x01y\xabq%\xcb)\xbf%W:\xf6\x0b\xd4\xf9\
+\x9b\xe7\xbf\x8f\xaeX\x04\x5c\xc1\xe82\x06\xaeY\xc2@\
+\x86\xa4\x82\xbd\x83d\xf4V\x8f\x90.\x03\x191\x9a\x92\
+\xd7\xef\xc8\xb3\xf9\xf3\xd1\xf9h\x96\xd2\xb5\x82\xd3\x93\xd3\
+\x13\x96\xe5Bj\xe4\xff6K\x9b3\xff\x95\x88!U\
+d\xeaO\xa6\xf5\x955\x8b>\x18\xcaw\x10i\xca\x97\
+)\x90\xcd\xe9\x09\xc1\xc1\xe2\x90H!t9\xcb\xa5\xc8\
+A\xea[\xc2\xb8&4\xd2\xec\x1a\xde\xd0%\xcc\xc4\x9a\
+\xeb\x90\x8c\x0d\x07\x83\x16\x04\x99\xd9\x860E(I\x99\
+\xd2D$d\xe3q\x9a\x81\x17zJdP|\x9e\x11\
+o-S\x84$,\x850\x08\x02\xb3\x12 (\xc8(\
+\xda\x11\x81\xfe\xc7,\xf5\xb6\x96i\xb2\xe6\xb8%\x1a\x1a\
+\xd5\x8c\x89\x16\x84\xc6\xc5\xbfr\xb3\x8b\xa1\xf9\x06\xb4\xbf\
+\x8c\x80\xa8h\x05\x19\x90g\x05\x90\xa6\xa9\xb8A5}\
+\x09J\xa4\xd7\xf0\xabD\xd9\x90\x0d\xfe\xa3J\xb1%G\
+\x81\xb4\xb2\xd2G\x22\x15hp\xef\x01\x00x%h\xb7\
+3\xee\xf8\xe2\x13\xcd\xf2\x14\x06F\x853\x12\x83\x8a\xce\
+\x0c\xa7\xa1\xb5\x98\x19\xd9mag\x9f\xe69\xf0x`\
+U/I<C#Yn\x18za\xc9\xa04\x04\xfe\
+\xd9\x0eK.\xdb\xd6\xc6j%n\xec\xce\xed\xdd\xf2\xc2\
+\x05\xe8K\x8ej\xf8\x91\x04\xaa\xe1\xf5\xe2/t\xe5\xa0\
+\x5c\xe2\x1a\xed\x09\xf2\x8cl\x08\x94<\xd0\x02a\xa1\xff\
+v\xe8\x1b\xd6\x83\xfd\xb6\xd6\xdaE\x88F\x96\x96\xc8]\
+d\xac@\x82q\xad\xf5\xc2\x12\xa3\x00\xfd\xcc1@\x89\
+\x97\x00\xa4\x1e\xb9Y\x01\xdf\xf1\xd1\x92r\xc5\x8c\x16\x8c\
+/M\xe4\xa0C\xb8\x15\xc4/\xd1\x0e\xe2\xce\x0c\xca\xa3\
+\x95\x90\xca\xc7H@is*Q\xbd\xfd\xaau\xd3\x22\
+\xa5\xd1\x07\xcf\xcam\xc6\x15F\xdco\x0cn\xea\xbcl\
+,c\x8e W\x90\x06\xa7\xb9\x1a\xa5,\x0fQ\xd85\
+4\xe1\xe8GX\xa2EC2gF\xe2\xab\x8a\xc3\xf3\
+\x0a\xde\xda\xc4\x0c\x09\x1f\xd7L\xa2uv\xf9bL\x8d\
+\xbf\x87\xa8\x82\xcfR\xcc=\xa8\xd2\xcco\xfb\xb9I\xb1\
+mN\x8b\xc0\x0f\x0b}\x8bx#\x1bT\xb1\x8a\xbd\x16\
+j\xbf-\xcd\xc0\x9c\x5c\xa4F\x0e\x91\xd3\x88\xa1\xcc\x8f\
+\x1f\x93\x89?\xde#m[!r\xa9!\xab\x9b\xd8\x98\
+\xb7\x11o\xc7xr\xc7m\x17\xc0n\x96\xd5\xe2~\xc9\
+\x191u\x9a\xe3\xbc\xdb\xf0\xd0>9\x9aH7,\xd6\
+++\xb7_\xcc\x9a\x08+0\xd5}\x87QN\xc9\x88\
+,\xa8\xac&-i\xaa\xd8\xbdY1mk\x8c\x1d\xef\
+i\xfe3\xe5q\x8a9\xe7\x08\xad xA\xb5B\xcf\
+c\xf6\x11\xb8.\xebVO\x88\x5c\x09\x1a\x83t0J\
+D\xb4V.\x8b\x98\xa1\xc4\x1a\x8b\xe8N\x9f.\xbb\x1c\
+\x17X\xdbzn\x1e\x14\xb5\xc1\xd0\xa5\xa6Y\xb9\xe0,\
+\xf3\x95\xa6R\x0f\x86\xc7r\x84OL\xbb9\x9a\x95{\
+p|C%\x9e\x1a\x90\x1a\x12Z\xb0v\xf04\xa1f\
+%=\x5c\x9d\x17E\xfe\x22\xea\xa2.\xf4,p\xaa\xdc\
+o\x1d\xa8\x0f\x1f\x1e\xd2l\x0fA\xbf\xac\xb3\x05\xc8^\
+9\xcd@\xad\x97\xa0\xfb\x0a`;%0>\xabR\xe0\
+\xb9\x11\x13)\xb2\xb0Y#\x1a;\x0al\x09\xba\x16\xe3\
+\xb5,\xc4\x0d\xc97\xe3\xf1\xff\xae\xa7\x8ah\x0a_\xa3\
+\x96\x87\x85\xce\xa1\xdd\xa7^\xcdF\x86\x87\xab\xa854\
+\xbcK\xbf\xf3#\xf4kM\xe7xJ\x9a\xfe\x96\xde\x9d\
+d6y\xdbY\xfa%\xd2l4r\x0a~\x08<\xaa\
+$\xdc\xc3\x87\xf7\x8b\xd6{e\xe6\xde\xbb\x9d\xa1i=\
+;\xe9C\xb8\xc3\xbf\x1d1\xfc_\xd9\xa0/k\xbfJ\
+\x0btg\xf3\x91\x19]\xd3\xba_\xe7;\x93\xfe\x9f\xeb\
+\xbe\xfd\xdc$-D\xc3k\x91\x96\xe2\xb6}N\xf7W\
+\x95m\xe3\xee\xe4\xec\x10M5\xc1\xael\x0f\xb8f\x8a\
+a\xdf\x1bV=\x1cyR7\x9dmn\x16Bkc\
+\xd5\xaa\x1f*\xa7{\xb4\xde\xfe\xd0\xf6\x86\xae\xdacv\
+#O\xc9\xa31\xa9\xdd\x9e\xcdx\x06+z\xcd\x84\xc4\
+\xfb\x81\x15\xace\xb5#\xc2\xab\xc7\x7fM\xa3\x1d\xd1U\
+[-&\xeeF\xf6A\x14E\x9e\xfb\xc6\xa1E\xbe3\
+\x0d~\xbb\x91RH\xf6\xed\xb3\x99\xb8\xd1d\xa3\xcd\x96\
+\xcd\xc6\xfa\xcb(\x92$\xc9\xe7(\x82\x0b\xaf0\x9b\x19\
+?\xd8\xe1_Su)i\xcc\xc0<\xc0\xbc\xac\xbe\xda\
+:[\xf8\x1c\xa5#\x1b\x92\x8b\xf2:\x8e1G~h\
+>w\xb4\x93\xab\x93rR\xa74\xce\xef\x0c\xa9\xcb\x0c\
+\xa3\xdduI[P\xf3\xe6\xe4\xbavx\xcc\xd0\xa8\xc0\
+`\xf89_v8\xe4\x1a\xab!\xc33`\x86\x02\x9a\
+'\xb2\xcaVM\xf01\xa4\xaf\x93D\x99\xfa;\xfd,\
+\x8f\x99\x95\x9d\xef\xbfmW\xc1\xfek\x9d\xb1\x87\xdea\
+8n/\xf6r\xdeUE\x5c/\x0b\xef\xcd\xf3\x13\xd2\
+t\xd4\xdb\xc6]\xdd\x8fV,\x8dQ\xc3?\xdc`\xd4\
+\x8e/\xf5\x0a\xef\xb4\x93?\xfd\xf2\x96u\xdf~\xaf3\
+%\xebF\x8c\x0a\x87\x5crWx\xd4J\xed\xf9\xf7\x87\
+K6\xb3\xcf'\xdd\xec\xdd~\x1f9(\xaa\x06\xab\xee\
+\x16?\x97\xa0\xcc\xa3\xd7S\x0c\x7f\xe7\x11[/\xdb\xf6\
+\x19e\xd3.\xd5\x9bZa\x9e\x8c\xc7d\xeb8D\xef\
+\xce\xe9\xfb\xe5\xf6t:.\x86\xd7\xd5\xadt\xb3\xf1\xa7\
+uF\x93I\x0f#\x07h!dl\xc2\xa8\xa2\x8f\xa9\
+\xfc\x80\xba\xb9\xfaVZ\x5c\x05\x18U\x8c/\xbb\xde%\
+\x8c\x90\xe6\xd5\xe2\xd1\x11-\x00\xfe\xfc\x0d[\xcf\xd1\xfe\
+\
+\x00\x00\x0a\x95\
+/\
+/ Copyright (C) \
+2016 The Qt Comp\
+any Ltd.\x0d\x0a// SPD\
+X-License-Identi\
+fier: LicenseRef\
+-Qt-Commercial O\
+R BSD-3-Clause\x0d\x0a\
+\x0d\x0aimport QtQuick\
+\x0d\x0a\x0d\x0aItem {\x0d\x0a \
+id: slider\x0d\x0a \
+height: 26\x0d\x0a \
+// default drag \
+range is 180: di\
+visible by 2, 3,\
+ 4, 5, 6, 9, 10,\
+ ...\x0d\x0a width:\
+ sliderName.widt\
+h + 223 + handle\
+.width / 2\x0d\x0a\x0d\x0a \
+ property real \
+min: 0\x0d\x0a prop\
+erty real max: 1\
+\x0d\x0a property r\
+eal value: min +\
+ (max - min) * d\
+ragHandler.value\
+\x0d\x0a property r\
+eal init: min+(m\
+ax-min)/2\x0d\x0a p\
+roperty string n\
+ame: \x22Slider\x22\x0d\x0a \
+ property colo\
+r color: \x22#0066c\
+c\x22\x0d\x0a property\
+ real minLabelWi\
+dth: 44\x0d\x0a\x0d\x0a D\
+ragHandler {\x0d\x0a \
+ id: dragHa\
+ndler\x0d\x0a t\
+arget: handle\x0d\x0a \
+ xAxis.min\
+imum: Math.round\
+(-handle.width /\
+ 2 + 3)\x0d\x0a \
+ xAxis.maximum: \
+Math.round(groov\
+e.width - handle\
+.width / 2 - 3)\x0d\
+\x0a propert\
+y real value: (h\
+andle.x - xAxis.\
+minimum) / (xAxi\
+s.maximum - xAxi\
+s.minimum)\x0d\x0a \
+}\x0d\x0a\x0d\x0a Compone\
+nt.onCompleted: \
+setValue(init)\x0d\x0a\
+ function set\
+Value(v) {\x0d\x0a \
+ if (min < ma\
+x) {\x0d\x0a \
+ handle.x = Mat\
+h.round( v / (ma\
+x - min) *\x0d\x0a \
+ \
+ (dra\
+gHandler.xAxis.m\
+aximum - dragHan\
+dler.xAxis.minim\
+um)\x0d\x0a \
+ \
+ + dragHandl\
+er.xAxis.minimum\
+);\x0d\x0a// \
+ console.log(na\
+me, v, \x22-> handl\
+e.x\x22, handle.x, \
+\x22from fraction\x22,\
+ (v / (max - min\
+)),\x0d\x0a// \
+ \x22of drag \
+range\x22, (dragHan\
+dler.xAxis.maxim\
+um - dragHandler\
+.xAxis.minimum),\
+ \x22px\x22, min, \x22:\x22,\
+ max)\x0d\x0a }\
+\x0d\x0a }\x0d\x0a Rec\
+tangle {\x0d\x0a \
+ id:sliderName\x0d\
+\x0a anchors\
+.left: parent.le\
+ft\x0d\x0a anch\
+ors.leftMargin: \
+16\x0d\x0a heig\
+ht: childrenRect\
+.height\x0d\x0a \
+ width: Math.max\
+(slider.minLabel\
+Width, childrenR\
+ect.width)\x0d\x0a \
+ anchors.vert\
+icalCenter: pare\
+nt.verticalCente\
+r\x0d\x0a Text \
+{\x0d\x0a t\
+ext: slider.name\
+ + \x22:\x22\x0d\x0a \
+ font.pointSi\
+ze: 12\x0d\x0a \
+ color: \x22#333\
+\x22\x0d\x0a }\x0d\x0a \
+ }\x0d\x0a\x0d\x0a Recta\
+ngle {\x0d\x0a \
+id: groove\x0d\x0a \
+ width: paren\
+t.width - 8 - sl\
+iderName.width\x0d\x0a\
+ color: \x22\
+#eee\x22\x0d\x0a h\
+eight: 7\x0d\x0a \
+ radius: 3\x0d\x0a \
+ antialiasin\
+g: true\x0d\x0a \
+ border.color: Q\
+t.darker(color, \
+1.2)\x0d\x0a an\
+chors.left: slid\
+erName.right\x0d\x0a \
+ anchors.ri\
+ght: parent.righ\
+t\x0d\x0a ancho\
+rs.leftMargin: 1\
+0\x0d\x0a ancho\
+rs.rightMargin: \
+24\x0d\x0a anch\
+ors.verticalCent\
+er: parent.verti\
+calCenter\x0d\x0a\x0d\x0a \
+ Rectangle {\
+\x0d\x0a he\
+ight: parent.hei\
+ght\x0d\x0a \
+ anchors.left: p\
+arent.left\x0d\x0a \
+ anchors.\
+right: handle.ho\
+rizontalCenter\x0d\x0a\
+ colo\
+r: slider.color\x0d\
+\x0a rad\
+ius: 3\x0d\x0a \
+ border.width\
+: 1\x0d\x0a \
+ border.color: Q\
+t.darker(color, \
+1.3)\x0d\x0a \
+ opacity: 0.8\x0d\x0a\
+ }\x0d\x0a \
+ Image {\x0d\x0a \
+ id: hand\
+le\x0d\x0a \
+source: \x22images/\
+slider_handle.pn\
+g\x22\x0d\x0a \
+anchors.vertical\
+Center: parent.v\
+erticalCenter\x0d\x0a \
+ }\x0d\x0a }\x0d\
+\x0a}\x0d\x0a\
+\x00\x00\x06\xed\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0d\x0a// SPD\
+X-License-Identi\
+fier: LicenseRef\
+-Qt-Commercial O\
+R BSD-3-Clause\x0d\x0a\
+\x0d\x0aimport QtQuick\
+\x0d\x0a\x0d\x0aListModel {\x0d\
+\x0a id: flickrI\
+mages\x0d\x0a prope\
+rty string tags \
+: \x22\x22\x0d\x0a readon\
+ly property stri\
+ng queryUrl : \x22h\
+ttp://api.flickr\
+.com/services/fe\
+eds/photos_publi\
+c.gne?\x22\x0d\x0a\x0d\x0a f\
+unction encodePa\
+rams(x) {\x0d\x0a \
+ return encode\
+URIComponent(x.r\
+eplace(\x22 \x22,\x22,\x22))\
+;\x0d\x0a }\x0d\x0a fu\
+nction fetchImag\
+es(format) {\x0d\x0a \
+ var reques\
+tURL = queryUrl \
++ (tags ? \x22tags=\
+\x22+encodeParams(t\
+ags)+\x22&\x22 : \x22\x22) +\
+ \x22format=\x22 + for\
+mat + \x22&nojsonca\
+llback=1\x22;\x0d\x0a \
+ var xhr = ne\
+w XMLHttpRequest\
+;\x0d\x0a xhr.o\
+nreadystatechang\
+e = function() {\
+\x0d\x0a if\
+ (xhr.readyState\
+ === XMLHttpRequ\
+est.DONE) {\x0d\x0a\x0d\x0a \
+ i\
+f (xhr.status !=\
+= 200) {\x0d\x0a \
+ co\
+nsole.log(\x22Faile\
+d to get images \
+from flickr. sta\
+tus code: \x22 + xh\
+r.status);\x0d\x0a \
+ \
+return;\x0d\x0a \
+ }\x0d\x0a\x0d\x0a \
+ va\
+r jsonText = xhr\
+.responseText;\x0d\x0a\
+ \
+var objArray = J\
+SON.parse(jsonTe\
+xt.replace(/\x5c'/g\
+,\x22'\x22))\x0d\x0a \
+ if (objA\
+rray.errors !== \
+undefined)\x0d\x0a \
+ \
+console.log(\x22Err\
+or fetching twee\
+ts: \x22 + objArray\
+.errors[0].messa\
+ge)\x0d\x0a \
+ else {\x0d\x0a \
+ \
+ for (var key in\
+ objArray.items)\
+ {\x0d\x0a \
+ var \
+rssItem = objArr\
+ay.items[key];\x0d\x0a\
+ \
+ var json\
+Object = \x22{ \x5c\x22ti\
+tle\x5c\x22: \x5c\x22\x22 + rss\
+Item.title +\x22\x5c\x22,\
+\x5c\x22media\x5c\x22: \x5c\x22\x22 +\
+ rssItem.media.m\
+ + \x22\x5c\x22, \x5c\x22thumbn\
+ail\x5c\x22: \x5c\x22\x22 + rss\
+Item.media.m.rep\
+lace(/\x5c_m\x5c.jpg/,\
+\x22_s.jpg\x22) +\x22\x5c\x22}\x22\
+\x0d\x0a \
+ flickr\
+Images.append(JS\
+ON.parse(jsonObj\
+ect));\x0d\x0a \
+ }\x0d\x0a \
+ }\
+\x0d\x0a }\x0d\
+\x0a }\x0d\x0a \
+ xhr.open(\x22GE\
+T\x22, requestURL, \
+true);\x0d\x0a \
+xhr.send();\x0d\x0a \
+ }\x0d\x0a Componen\
+t.onCompleted: {\
+\x0d\x0a fetchI\
+mages(\x22json\x22);\x0d\x0a\
+ }\x0d\x0a}\x0d\x0a\x0d\x0a\
+\x00\x00\x01C\
+m\
+odule shared\x0d\x0aBu\
+tton 2.0 Button.\
+qml\x0d\x0aCheckBox 2.\
+1 CheckBox.qml\x0d\x0a\
+FlickrRssModel 2\
+.0 FlickrRssMode\
+l.qml\x0d\x0aLabel 2.0\
+ Label.qml\x0d\x0aLaun\
+cherList 2.0 Lau\
+ncherList.qml\x0d\x0aS\
+impleLauncherDel\
+egate 2.0 Simple\
+LauncherDelegate\
+.qml\x0d\x0aSlider 2.0\
+ Slider.qml\x0d\x0aTab\
+Set 2.1 TabSet.q\
+ml\x0d\x0aTextField 2.\
+1 TextField.qml\x0d\
+\x0asingleton Image\
+s 2.2 Images.qml\
+\x0d\x0a\
+\x00\x00\x09\x1c\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0d\x0a// SPD\
+X-License-Identi\
+fier: LicenseRef\
+-Qt-Commercial O\
+R BSD-3-Clause\x0d\x0a\
+\x0d\x0aimport QtQuick\
+\x0d\x0aimport QtQuick\
+.Window 2.1\x0d\x0a\x0d\x0aI\
+tem {\x0d\x0a id: t\
+abWidget\x0d\x0a\x0d\x0a \
+// Setting the d\
+efault property \
+to stack.childre\
+n means any chil\
+d items\x0d\x0a // \
+of the TabWidget\
+ are actually ad\
+ded to the 'stac\
+k' item's childr\
+en.\x0d\x0a // See \
+the \x22Property Bi\
+nding\x22\x0d\x0a // d\
+ocumentation for\
+ details on defa\
+ult properties.\x0d\
+\x0a default pro\
+perty alias cont\
+ent: stack.child\
+ren\x0d\x0a\x0d\x0a prope\
+rty int current:\
+ 0\x0d\x0a\x0d\x0a onCurr\
+entChanged: setZ\
+Orders()\x0d\x0a Co\
+mponent.onComple\
+ted: setZOrders(\
+)\x0d\x0a\x0d\x0a functio\
+n setZOrders() {\
+\x0d\x0a for (v\
+ar i = 0; i < st\
+ack.children.len\
+gth; ++i) {\x0d\x0a \
+ stack.c\
+hildren[i].z = (\
+i == current ? 1\
+ : 0)\x0d\x0a \
+ stack.childre\
+n[i].enabled = (\
+i == current)\x0d\x0a \
+ }\x0d\x0a }\x0d\
+\x0a\x0d\x0a Row {\x0d\x0a \
+ id: header\
+\x0d\x0a\x0d\x0a Repe\
+ater {\x0d\x0a \
+ model: stack\
+.children.length\
+\x0d\x0a de\
+legate: Rectangl\
+e {\x0d\x0a \
+ required pr\
+operty int index\
+\x0d\x0a \
+ width: tabWidg\
+et.width / stack\
+.children.length\
+\x0d\x0a \
+ height: Math.m\
+ax(Screen.pixelD\
+ensity * 7, labe\
+l.implicitHeight\
+ * 1.2)\x0d\x0a\x0d\x0a \
+ Recta\
+ngle {\x0d\x0a \
+ widt\
+h: parent.width;\
+ height: 1\x0d\x0a \
+ \
+anchors { bottom\
+: parent.bottom;\
+ bottomMargin: 1\
+ }\x0d\x0a \
+ color: \x22\
+#acb2c2\x22\x0d\x0a \
+ }\x0d\x0a \
+ Bor\
+derImage {\x0d\x0a \
+ \
+anchors { fill: \
+parent; leftMarg\
+in: 2; topMargin\
+: 5; rightMargin\
+: 1 }\x0d\x0a \
+ borde\
+r { left: 7; rig\
+ht: 7 }\x0d\x0a \
+ sou\
+rce: \x22images/tab\
+.png\x22\x0d\x0a \
+ visib\
+le: tabWidget.cu\
+rrent == parent.\
+index\x0d\x0a \
+ }\x0d\x0a \
+ Text {\
+\x0d\x0a \
+ id: label\x0d\
+\x0a \
+ horizontalA\
+lignment: Qt.Ali\
+gnHCenter; verti\
+calAlignment: Qt\
+.AlignVCenter\x0d\x0a \
+ \
+ anchors.fill:\
+ parent\x0d\x0a \
+ tex\
+t: stack.childre\
+n[parent.index].\
+title\x0d\x0a \
+ elide\
+: Text.ElideRigh\
+t\x0d\x0a \
+ font.bold\
+: tabWidget.curr\
+ent == parent.in\
+dex\x0d\x0a \
+ }\x0d\x0a \
+ TapHandl\
+er {\x0d\x0a \
+ onTapp\
+ed: tabWidget.cu\
+rrent = parent.i\
+ndex\x0d\x0a \
+ }\x0d\x0a \
+ }\x0d\x0a \
+}\x0d\x0a }\x0d\x0a\x0d\x0a \
+Item {\x0d\x0a \
+id: stack\x0d\x0a \
+ width: tabWid\
+get.width\x0d\x0a \
+ anchors.top: \
+header.bottom; a\
+nchors.bottom: t\
+abWidget.bottom\x0d\
+\x0a }\x0d\x0a}\x0d\x0a\
+\x00\x00\x02v\
+/\
+/ Copyright (C) \
+2021 The Qt Comp\
+any Ltd.\x0d\x0a// SPD\
+X-License-Identi\
+fier: LicenseRef\
+-Qt-Commercial O\
+R BSD-3-Clause\x0d\x0a\
+\x0d\x0apragma Singlet\
+on\x0d\x0aimport QtQml\
+\x0d\x0a\x0d\x0aQtObject {\x0d\x0a\
+ readonly pro\
+perty url back: \
+ Qt.resol\
+vedUrl(\x22images/b\
+ack.png\x22)\x0d\x0a r\
+eadonly property\
+ url checkmark: \
+ Qt.resolvedUr\
+l(\x22images/checkm\
+ark.png\x22)\x0d\x0a r\
+eadonly property\
+ url next: \
+ Qt.resolvedUr\
+l(\x22images/next.p\
+ng\x22)\x0d\x0a readon\
+ly property url \
+qtLogo: Qt\
+.resolvedUrl(\x22im\
+ages/qt-logo.png\
+\x22)\x0d\x0a readonly\
+ property url sl\
+iderHandle: Qt.r\
+esolvedUrl(\x22imag\
+es/slider_handle\
+.png\x22)\x0d\x0a read\
+only property ur\
+l tab: \
+Qt.resolvedUrl(\x22\
+images/tab.png\x22)\
+\x0d\x0a}\x0d\x0a\
+\x00\x00\x05\xa1\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0d\x0a// SPD\
+X-License-Identi\
+fier: LicenseRef\
+-Qt-Commercial O\
+R BSD-3-Clause\x0d\x0a\
+\x0d\x0aimport QtQuick\
+\x0d\x0aimport QtQuick\
+.Window 2.1\x0d\x0a\x0d\x0aI\
+tem {\x0d\x0a id: c\
+ontainer\x0d\x0a\x0d\x0a \
+property alias t\
+ext: buttonLabel\
+.text\x0d\x0a prope\
+rty alias label:\
+ buttonLabel\x0d\x0a \
+ signal clicked\
+\x0d\x0a property a\
+lias containsMou\
+se: hoverHandler\
+.hovered\x0d\x0a pr\
+operty alias pre\
+ssed: tapHandler\
+.pressed\x0d\x0a im\
+plicitHeight: Ma\
+th.max(Screen.pi\
+xelDensity * 7, \
+buttonLabel.impl\
+icitHeight * 1.2\
+)\x0d\x0a implicitW\
+idth: Math.max(S\
+creen.pixelDensi\
+ty * 11, buttonL\
+abel.implicitWid\
+th * 1.3)\x0d\x0a h\
+eight: implicitH\
+eight\x0d\x0a width\
+: implicitWidth\x0d\
+\x0a\x0d\x0a SystemPal\
+ette { id: palet\
+te }\x0d\x0a\x0d\x0a Rect\
+angle {\x0d\x0a \
+ id: frame\x0d\x0a \
+ anchors.fill\
+: parent\x0d\x0a \
+ color: palette\
+.button\x0d\x0a \
+ gradient: Gradi\
+ent {\x0d\x0a \
+ GradientStop \
+{ position: 0.0;\
+ color: tapHandl\
+er.pressed ? Qt.\
+darker(palette.b\
+utton, 1.3) : pa\
+lette.button }\x0d\x0a\
+ Grad\
+ientStop { posit\
+ion: 1.0; color:\
+ Qt.darker(palet\
+te.button, 1.3) \
+}\x0d\x0a }\x0d\x0a \
+ antialiasi\
+ng: true\x0d\x0a \
+ radius: height\
+ / 6\x0d\x0a bo\
+rder.color: Qt.d\
+arker(palette.bu\
+tton, 1.5)\x0d\x0a \
+ border.width\
+: 1\x0d\x0a }\x0d\x0a\x0d\x0a \
+ TapHandler {\x0d\x0a\
+ id: tapH\
+andler\x0d\x0a \
+onTapped: contai\
+ner.clicked();\x0d\x0a\
+ }\x0d\x0a Hover\
+Handler {\x0d\x0a \
+ id: hoverHand\
+ler\x0d\x0a }\x0d\x0a\x0d\x0a \
+ Text {\x0d\x0a \
+ id: buttonLabe\
+l\x0d\x0a text:\
+ container.text\x0d\
+\x0a color: \
+palette.buttonTe\
+xt\x0d\x0a anch\
+ors.centerIn: pa\
+rent\x0d\x0a }\x0d\x0a}\x0d\x0a\
+\
+\x00\x00\x03)\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00@\x00\x00\x00@\x08\x06\x00\x00\x00\xaaiq\xde\
+\x00\x00\x02\xf0IDATx\xda\xe5\x9b_h\xcda\
+\x18\xc7?\x9bm1\xab\x91\xc2\xd0Y+5\xbb`h\
+\xc9\x85\x0b7HJ\x93H))\xe5\xc2\xcd\xb0\x91R\
+\xdc(7\xbbP\xae\x88\x5cXI[v%\xc9\x9fb\
+.\xfc\xbd\xc0(\xffN\xc8\xc6\xd9p16\x8c9.\
+~?u\xac\xe3\x9c\xf3}\xb7\xc3\xfb{\xce\xb7\xde\xab\
+\xd3\xef=\xef\xe7y\xdf\xe7\xf7{\xde\xe7}^\xb0\xa7\
+\x12\xa0\x1aX\x03\xb4\x02W\x8080\x00\x0c\x03\x83@\
+w\xf8\xbb9m\x04n\x03\x9f\x80d\x96v\xc3\x12x\
+\x05p1\x07\xe8\xd4\xb6\xc2\x0a|5\xf0Z\x84?\x0f\
+L\xb0\x00_\x16\xfa\xb6\x02\xff\xde\xca\xccO\x04\xee\x89\
+\xf0\x1f\x81\x1a+\x068)\xc2'\x81uV\xe0\x0f8\
+\xc0\xef\xb6\x02\xbf\x0a\xf8.\xc2\xb7\x01\xc5\x16\xe0k\x80\
+!\x11\xfe!Pj\x01~*\xd0#\xc2\xf7\x02\x95V\
+\x96~\x9b\x08?b)\xd89\xec\xf0\xd2\xdbb\xe9\xa5\
+\xa7\xc2\x1f\xb3\x14\xec$D\xf8\xa7\xe1s&\xd4-\xc2\
+\x0f\x02\xe5\x85\xea\xf7?\x81\x95V\xe0\xeb\x1d\xfc\xbe\xd5\
+\x0a\xfcl\xe0\xb3\x08\x7f\xd6\x0a|)pI\x84\xef\x01\
+\xa6Y1@\x93\x83\xdf7X\x81_V\xc8\xdb\xdb\x0a\
+\xe0\xb9\x83\xdf\x17Y1\xc0\x09\x11>\x8e!m\x10\xe1\
+\x07\x809V\xe0g\x02}\xa2\x01\xb6Y\x9a\xfd\x0e\x87\
+\xcc\x8e\x19\xed\x13\xe1\xef[\xda\xe4\xd4\x91\xdb\xf1Uj\
+rc\x91\xa5\xd9\xbf.\xce\xfe&K\xf0\x07E\xf8\xd3\
+\x96\xbe\xf7\x0b\xd0R\xda\x09`J!/\xfd\x98%\xf8\
+\xfd\x22\xfc^K\xf0\x0d\xc07\xb4\xc3\x0cS\xba\x8av\
+\x82;\xd9\x12\xfc\x1e\xf1{\xdf\xe8\xcb\xc0g\x01k\x09\
+\x8e\xa1\xaf\x01G\x80*\xb1\x8fZ\xd1\xef;|\x00/\
+&8X\xe8O3\xc0w\xe2\xf2\xbc \xc0?\xc2\x83\
+\x13\xdc%\xc0\x87,\x03=\x9ac_\x8d\x02\xfcW\x1f\
+B\xdd\x96\xd0\x07\xb3\x0d\xf6Y\x98\xc1\xc9\xa4\x18AM\
+^\xae\x068\xf4\xbf\xe1\xeb\xc5\x08m^\x16\x17:'\
+\xf4u\xc7\x07\xbfW\x8f\x9e\x8fg\xe8k\xb9\x98\xdd\xf1\
+\xa2h\xe9.zF6\x9d\x8a\xc4\xa5\xdf\xe2\xcb'\xaf\
+\xdd\xc1\x00;\xd2\xf4\xa3$7;}\x0aV\x9a\x1c\x0c\
+p\x8b?ko\xe6\x0a\xef\x91^`\xbaO\x06X\xec\
+`\x80a`~J\x1f\x0f\x84g\xb7\xfa\x16\xaeV\x85\
+A\x8ej\x84\xc7\x0e.\xe4eb\xb3$\x5c\xd2\xc9<\
+\xb77\xc0$\x9f\xc0\x7f\x87\x9e?\x80\xcb\xff\xe0\xff\x9a\
+\x81/\xbe\xee\xdaj\xf3<\xfb\xedQ\xd8\xba\xbe\xca\x13\
+\xfc\x8b\x1c\xc2g/\xb4+O\x06\x88LZ;\x86^\
+\x88\x9c\xad\x9d\x89R\xf6\xa6\x1c\xfd\x12B\xa6\xf6\xd6w\
+\xe0\xd1\x09\x88!\xa0k\x1c\xfb\xdf\x19\xc5\x1c\xde\xc2q\
+\x9a\xfd.\x22\xac'c\x84\xef'\xe2\x15\x9b\xab\xc7\x00\
+?\x02l&\xe2*\x03^:\x1a\xe0f\x94@\xffv\
+yp\x04\x98AP\xba\xa6\xaa.\xdc)F^\x95\xe8\
+%\xab\xdb1\xa6\xa5\x02\xfc)\x8c\xdc\xcc\x1a\xad\xf5a\
+\xce0\x1efr\xfa\x08\xae\x9f&\x08.'t:\xba\
+\x8a\x17\xfa\x05\xc1\xf2\xa6\x01\x10\xe5*G\x00\x00\x00\x00\
+IEND\xaeB`\x82\
+\x00\x00\x015\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x10\x00\x00\x00\x1f\x08\x00\x00\x00\x00\xcb\xce\x12h\
+\x00\x00\x00\xfcIDAT(\x15\x05\xc1AjTa\
+\x10\x06\xc0\xea\x9e\x7fF\x12\x17\x22(\xe8\x01t#\xf1\
+\x12\x9e\xdc\xadk\x97\x0a\x0aB\x5cj\x22$\x99y\xaf\
+?\xabj\xeb\xbbo\x7f\x1f\x8e[e\xbd}\xf5&U\
+\xf3\xfd\xc7\xcd\xcbc\x0a\xbf\x7f\x9d>V\xfd\xf9\xf2i\
+{\x08\xb8:|}\xfe\xae\x7f~\xd8\xee\x0a\xd8\xee\xdf\
+\xdfN\xff{vn@\xf4<\xae\xfb\xeb\xc7\x9e\x80\xbd\
+\xfa\xf2\xd4\xe7\x95\x00Fm\xb3ZK\x81\xe9\x9a\xee\xde\
+;\x80JJ\xc7\x000\x95\x85t\x80\x99\xb2jT\x88\
+\xa8\xb2[\x95)AIfY\x22\x22\xe8\x12\x0bB)\
+\xfb!,\x12\x80$\x96\x1a*%\xe20\x16Q#J\
+\xd2m\x91\xda+\x85\xba\xecc\xc5t\x22\xe8\xde\x97%\
+\x00b\xc6\x22\x09P\x11-\x00Bi\x00D\xd3I\x12\
+\x01I,\x92\x10\xa8\xa2\x8bD\x00t\x0e\xba\x04\xb2\x1d\
+j\xfa\xf0\x94\xcbX\xe0x\xc9iM\x9f\xe6\x9cKc\
+j{\xfd\xb9\xce\xe7\xdb\xab\x9a\x14\xb6\xd3\x8b\xe3\xf1?\
+V\x8e\x9e\xad\xee\x91\x1e\xc8\x00\x00\x00\x00IEND\
+\xaeB`\x82\
+\x00\x00\x066\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x0d\x00\x00\x00\x17\x08\x06\x00\x00\x00\xd0\xa6\xc5\x81\
+\x00\x00\x00\x19tEXtSoftware\
+\x00Adobe ImageRead\
+yq\xc9e<\x00\x00\x03$iTXtXML\
+:com.adobe.xmp\x00\x00\
+\x00\x00\x00<?xpacket beg\
+in=\x22\xef\xbb\xbf\x22 id=\x22W5M\
+0MpCehiHzreSzNTc\
+zkc9d\x22?> <x:xmpm\
+eta xmlns:x=\x22ado\
+be:ns:meta/\x22 x:x\
+mptk=\x22Adobe XMP \
+Core 5.3-c011 66\
+.145661, 2012/02\
+/06-14:56:27 \
+ \x22> <rdf:RDF \
+xmlns:rdf=\x22http:\
+//www.w3.org/199\
+9/02/22-rdf-synt\
+ax-ns#\x22> <rdf:De\
+scription rdf:ab\
+out=\x22\x22 xmlns:xmp\
+=\x22http://ns.adob\
+e.com/xap/1.0/\x22 \
+xmlns:xmpMM=\x22htt\
+p://ns.adobe.com\
+/xap/1.0/mm/\x22 xm\
+lns:stRef=\x22http:\
+//ns.adobe.com/x\
+ap/1.0/sType/Res\
+ourceRef#\x22 xmp:C\
+reatorTool=\x22Adob\
+e Photoshop CS6 \
+(Macintosh)\x22 xmp\
+MM:InstanceID=\x22x\
+mp.iid:DCE827695\
+74811E2B0EE92BEE\
+27047DB\x22 xmpMM:D\
+ocumentID=\x22xmp.d\
+id:DCE8276A57481\
+1E2B0EE92BEE2704\
+7DB\x22> <xmpMM:Der\
+ivedFrom stRef:i\
+nstanceID=\x22xmp.i\
+id:DCE8276757481\
+1E2B0EE92BEE2704\
+7DB\x22 stRef:docum\
+entID=\x22xmp.did:D\
+CE82768574811E2B\
+0EE92BEE27047DB\x22\
+/> </rdf:Descrip\
+tion> </rdf:RDF>\
+ </x:xmpmeta> <?\
+xpacket end=\x22r\x22?\
+>\x97\xa0=\xd8\x00\x00\x02\xa8IDATx\xda\x8c\
+\x94_HSQ\x1c\xc7\xcf\xbd\xbb\xd7;\xb7\xdd\xddQ\
+\x90\xbe\x0cb\x9b\x93\xd4\xf5\x10\xc1\x0a\xf4\xc5)\xd8\x1f\
+)Fd\xd4C\xeaK\xe4CB\xf6\x98\xb4\xb5\xad=\
+\xc8\xe8\xc9\xf5\x1e\xf4\x92\xd2\x96E\xeb!Y\x96\xc5\x94\
+\xc2\x94\x05\xb2\xf9\x10H\xed\xa1\x8767\xc1\xfd\xf3\xf6\
+=\xd7ML\x97z\xe0\xcb\xdd\xef\xdc}8\xbf\xf3\xfd\
+\x9es\x19Y\x96\xc9A\xc3j\xb5\x0ep\x1c\xf7\x98\xc8\
+r\xa1P,\xde`\x0e\x82\xdaZ[\xefiu\xba1\
+\xb5 \x90r\xb9Lr\xeb\xeb1n?\xc0f\xb3\xb9\
+\x0c\x06\xc3\x03Q\xaf'u<O\x0a\x85\x02\x11Eq\
+\xb5&d6\x99\x18\xadV;\x06`D\x02\xa0\xd1h\
+\x94\xf9c\x0d\x0d?\xfc~\xff\xcc\x1e\xc8l6\xabt\
+:\xdd\xb8$I\xb7 R__O\x18\x86!\x8d\x8d\
+\x8d\x09\xaf\xcf7\xb1g%\xcb\x16\xf0\xd4 I\xd7\xf5\
+U\x00\xf3F\xa3\xf1\xbb\xc7\xeb\x0d\xa1^A\xf9v\x1b\
+\xb2X,u:Q\x9c\x04\xd0\xabGK\xea\x0a`2\
+\x99\xbe=\xf4x\xa6x\x9e_F9\x09\x15\xb9\x0a\xa0\
+\xc1\xb2/\x01t)\x80ZM\xa8\xa7\xd6\xe6\xe6y\xb7\
+\xdb\x1daY6\x8e2\x04\x95\xe9\xff\x19\xb4$\x01x\
+-\x19\x0c\xedzQ\xdc\x06N\xdal\xb3\xf7GG\xa7\
+\xf1s\x01z\x05mV\xbb\xe2\x90\xc1sl\xb8]\xaa\
+\xae\x80\xdc\xce\xd8\xed\xd3wGFf\xf1~\x1e\x8a@\
+\xff\x84\xc9\xc1\xdaN\xecE\xb1\x95\xba\x84\xf6V\xef\x0c\
+\x0f\x7f\xc2;\x0a\xbd\xab\x15\x09\xdb\xda\xd2\xf2\x91\xe78\
+\x82\xbe\x95\x89T*e\xbc\xd6\xd7w\x16'\xe1\xfd\xff\
+Bg\xc7\x83\xc1\x0f8[\x0b\xa5RI\x99P\xa9T\
+$\x9dNw\xd7\x09\xc2\x0b\xeahM\x08V~y\xe4\
+\xf7O\xc1\xa99\x0a\xa2&h\x99`\x8f\xbd0(\xd2\
+\x04gwC\xf4\xc0\xd2\xbe.B\xa7|^o\xe7\xe2\
+\xd2R\x07\xcd'\x9f\xcf\x93\xcc\xda\x1a\xc9\xa4\xd3\x9f\xb3\
+\xb9\xdc\xf9d2\x99\xd9\x09)O\xa8\x07\xb2\x07\x02\x81\
+\xf6\xb9X\xccA\xf7\xb8\xb1\xb1A\xd6\x00\xa63\x99\xaf\
+\xb9\x5c\xee\x5c\x22\x91\xf8\xbd\x13\xaa\x0e\x07\xd4\xf1$\x18\
+<\x1d\x8dF/( V\xccf\xb3t\x9fq<{\
+\x00\xfe\xdc}`i\x98\xf9\xdbCC4\xb3\xe2\x9bH\
+\xe4\x12\xee\x11\xc3l\xb5\xd2\x06\xcd\xc04G\xad\xabA\
+\xf3\xc9\x0f\x0c\x0eR\xb0\x10\x0e\x87\xaf\x08\x82\xc0\xd2\x0c\
+\xd1\x93yS\x96C*\x97\xcbU\xcb\xd5_\xd0\x1f\x5c\
+\xc2\xa3\x88 \x15\x8f\xc7O\xe0\xc9\x22}\xb2Y.\x1f\
+a\xf7\xb9\xb8\x8b\xd0\x84\xd3\xe9\x5c\xbe\xd9\xdf\xff\x0c\xdf\
+\x88\x0c\x96+uuw\x87\x99C|X\x9a\xa0\xab\x10\
+_\xa9K\x87\x81\xe88\x0e]\x86\xb4\xf4<\xfe\x15`\
+\x00\x07\x7f\xeb\x18\x9af\x83_\x00\x00\x00\x00IEN\
+D\xaeB`\x82\
+\x00\x00\x05[\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x12\x00\x00\x00\x1f\x08\x06\x00\x00\x00\xeaP\x9d\x89\
+\x00\x00\x00\x19tEXtSoftware\
+\x00Adobe ImageRead\
+yq\xc9e<\x00\x00\x03$iTXtXML\
+:com.adobe.xmp\x00\x00\
+\x00\x00\x00<?xpacket beg\
+in=\x22\xef\xbb\xbf\x22 id=\x22W5M\
+0MpCehiHzreSzNTc\
+zkc9d\x22?> <x:xmpm\
+eta xmlns:x=\x22ado\
+be:ns:meta/\x22 x:x\
+mptk=\x22Adobe XMP \
+Core 5.3-c011 66\
+.145661, 2012/02\
+/06-14:56:27 \
+ \x22> <rdf:RDF \
+xmlns:rdf=\x22http:\
+//www.w3.org/199\
+9/02/22-rdf-synt\
+ax-ns#\x22> <rdf:De\
+scription rdf:ab\
+out=\x22\x22 xmlns:xmp\
+=\x22http://ns.adob\
+e.com/xap/1.0/\x22 \
+xmlns:xmpMM=\x22htt\
+p://ns.adobe.com\
+/xap/1.0/mm/\x22 xm\
+lns:stRef=\x22http:\
+//ns.adobe.com/x\
+ap/1.0/sType/Res\
+ourceRef#\x22 xmp:C\
+reatorTool=\x22Adob\
+e Photoshop CS6 \
+(Macintosh)\x22 xmp\
+MM:InstanceID=\x22x\
+mp.iid:DCE827655\
+74811E2B0EE92BEE\
+27047DB\x22 xmpMM:D\
+ocumentID=\x22xmp.d\
+id:DCE8276657481\
+1E2B0EE92BEE2704\
+7DB\x22> <xmpMM:Der\
+ivedFrom stRef:i\
+nstanceID=\x22xmp.i\
+id:DCE8276357481\
+1E2B0EE92BEE2704\
+7DB\x22 stRef:docum\
+entID=\x22xmp.did:D\
+CE82764574811E2B\
+0EE92BEE27047DB\x22\
+/> </rdf:Descrip\
+tion> </rdf:RDF>\
+ </x:xmpmeta> <?\
+xpacket end=\x22r\x22?\
+>\xd9\x0c\xdf\xc0\x00\x00\x01\xcdIDATx\xda\xac\
+\x95;K\x03A\x14\x857\x994\xdaF1>@\xc5\
+\x88A\x8c,*\x16b#XZ\x08\x06\x04\x0b\xa3\xad\
+\x85\x9d`\x13\x0b\x1bm,5\x8d\x88\x89\xd8(B4\
+>@B\x88\x16\x16\x22b:\xff\x86 X\x04]\xcf\
+\x95+\x84e\xe6\xee\xaef\xe0\xec\xcc\xee\x1c\xbey\xec\
+\xbd3\x91\xa5t\xba\xd9\xb2\xac\x03h\x0ez\x832\x87\
+\xb9\x5c\xd6\x0aX\xc2\xd0\x064\x0fE\xa0(\xb4\x07\xf8\
+\xfa_@\xe3\x9a\xef[\x80e\x82\x82\x1e\x0d}\x9b\x80\
+m\xfb\x05)\xdb\xb6\x1fPO@\xbd\x9a\xfeI\xf47\
+\xbdT\xab%/P\x88\x1e\xbc\xe1\x97\xd0\x94\xc1\xb7\x03\
+\xad\xe1'8\xc6\x19\xd1\x03#\xd60\xf2\xa903\xfa\
+\xde\x06\xcf5\xbcf\x90\x0b6\x0c\x0dh\xbcc\x12L\
+\xd5\xbf0\xec\x0cM[\x80\xb5\xc3s\x03\xafc\x041\
+\xec\xd3\x036\x0a\xc5\xe19\xaf\x87)\xddz\xeb`q\
+(\xa9\xb1$\xdd0e\xfa\x0b\x0c+x\xc0\xfa\xe1)\
+\x927\xe4\x15\x1f\x08\x0d\x1a,\x0f-\x18,E(\xa5\
+\xbc@4uZ\x02\x9a1\xde\x1fw\xa1}\x8c)?\
+\xe1\xcf\xb0+4;\xa1\x11\xdd2\xc3\x01\xf22\xca1\
+\xa6+\xef!?\x04\xecS+\xaa24d\xb0\xac\xa8\
+\x06@V\x91\x83\xbb\xca\x03\xd2\x81\xaa$\xcd\x84 b\
+\x1c\x01\xd2\x85\xea\x0eJ\x08\x90\xac\x18\xd9\x0c\xa9@}\
+\x9a\xee/h\x19\x90}1\xd7\x00\xe9\xe1=1A\x16\
+\x019\x12\xb3\x1f\x10J\x87{\xa8[\x80\x1c\x8b\xe7\x11\
+C*\x1ct\xeeR\xa3\x9b\x06\x90\x13\xf1\x84\x04$\xc1\
+\xcb1AR\x80\x14\xc4\xc3\x1f\x90A^NL\x80\x5c\
+x\xc5\x1b]\x8a\xb4q-\x9a\xbe\x0fh\x16\x90[?\
+\xd1\x1f1$!Af\x00)\x07\xb9 \x9f\xff\x0b\xf9\
+\x05\xd1\x81\xf5\xc4\xef\xaf\xd0tP\xc8\xcf\x05\xe98\x8e\
+\xd5\x88\xf2-\xc0\x00\xaa\xfa\xae\x1fG|9m\x00\x00\
+\x00\x00IEND\xaeB`\x82\
+\x00\x00\x03w\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x1b\x00\x00\x00\x1c\x08\x06\x00\x00\x00\x90\xd1\xc4\xed\
+\x00\x00\x00\x09pHYs\x00\x00\x0b\x13\x00\x00\x0b\x13\
+\x01\x00\x9a\x9c\x18\x00\x00\x03)IDATH\x0d\xbd\
+V=LZQ\x14\x06\xa4\xd1PE\x03\x14\x08\x83\xc8\
+fL\xd3\x10\x93\x06\x97\xa6\xdd\xbb3th\x8c\xa1\x1b\
+\x9d\x18\xbauaj\x22k'6\x17\x87v\xec\xd6\xa5\
+\x1b.\x84\x04\x02&\x18\x15\x02\x89\xd2\x8a\xfc$\xb6D\
+y\xaf\xdfw\xfb\xde\xf5\xf9\xfa\xe4\xa76\x9e\xe4\xe4\xde\
+\xc7\xbd\xdf\xf9\xee\xf9\xdey\xe7bWU\xd5v_\xe6\
+\xb8/\x22\xf28'%\xb3\xc3\xb4\xbd\xfah\x84\x0ay\
+\xa0\xd2H\x99\xecc\xd6m\x1a\x09\x09\x8cn$\xe2\x9c\
+$\xd2o#\x1dI\x06\x22\xcaL\x12\xf3\xa8\x13K\x02\
+\xecQ4B1\x82\x90\xe3\x0d\xb3\x94\xd1\x90\x0dI\xe8\
+3\xf0\xd9\x85\x85\x85@\x22\x91x\xbe\xbc\xbc\xbc\xb6\xb8\
+\xb8\xf8\xa8\xdb\xed~\xaf\xd7\xeb\xe5l6\xfb\xad\xdf\xef\
+\x9fb\xcf\x00>\x84+\x9a\xeaL\xf2ZZ\xce\xcd\x8e\
+\xcd$\xe0Af\xe1\x0f\xa3\xd1\xe8\xd3\x9d\x9d\x9dO\xd5\
+j\xf5\xe7\xd9\xd9\x99z~~\xae\xb6\xdbm1\xf2\x99\
+\xbfs=\x16\x8b=\xe1~\x0dG\xbc\xc3\x18{\x1c\xd1\
+<2y]\xa9T\xba$h6\x9b\xea\xe1\xe1!\x83\
+K\xe73\x7f\xe7z\xa9T\xea\xc6\xe3\xf17 \x99\xb7\
+\x22\xbc\xf1\xce4\xf9t\xd9\x1e\x00\xf8j{{\xfb#\
+\xe4s\x22\x03q0\x04\xb14\xca\xe6\xf7\xfbm \xbd\
+L\xa7\xd3\x09H\xfb\x19\x1b/\xe1BVd\xa8\x9a\xc9\
+t\x22'\xa4{\xbc\xbb\xbb\xfb5\x14\x0a\xb9OO\xf9\
+:&3\x9f\xcfg;99\xe9mnn>\xdb\xdb\
+\xdb\xab\x02u\x05\x1f\x82Kapa\x86\xa2`\xa5\xcd\
+\xa6R\xa9w\x81@\xc0\xddj\xb5\xb4\x1d\x93\x0dT \
+\x18\x0c\xba\x93\xc9\xe4{\xc6\x81\x8b\xcae|I\xa6\x85\
+\x12e\xce\xaa\xdb\xd8\xd8xyqq1R:+z\
+\x16\x04q\xc43\x0e\xf6\x90\x83q\xc5\x84#M\x9c\x80\
+\xe3\xd6\xd6\xd6\x0b\x8f\xc737\x18\xb0\x92\xa77\xe2\x88\
+g\x1c\xa0e\x5csf\x8cl\x8fD\x22\xab\x0e\x87\xc3\
+6\x1c\xf2\xddNo\xc4\x11\x1f\x0e\x87\xd7\x80&\x990\
+K2\xb7\xdb\xed\xa7\x1cw1\xe2\x97\x96\x96|\x881\
+\x92L\xed\xf5z-\x96\xf2]\x8c\xf8N\xa7\xf3\x031\
+\xe4\xa9\xad2S\x8f\x8e\x8e\xf6\x15E\xb1\xcd\xcc\xb0K\
+Mo\xc4\x11_\xab\xd5\xca@K2\xf9\x9d\xb14\xb1\
+\xc0\xe8NTQ8\x9f\xcf\x17\x5c.\xd7\x1c+kZ\
+\x03\x8e\x15\xf9k}}=\x8a\x9eY\x03^|k\xe6\
+\xccx\x0a\x85M5\x97\xcb}!hZ9\xb9\x9f8\
+\xe2\xb5\xe6\xac\xdf\x06\xd7\xa5\x8f\x17J\x22\xdd\x07\x99L\
+\xe6\x03;\x81\xd7\xeb\x9d*1\xb6\xacF\xa3\xd1'\x1e\
+@~;\x22&\xe3[f\x86\x0d\xc3B\xa1P\x06\xe0\
+-Nw\x85N26Cf\xc4V\x85\xa2\xb8Bo\
+L\x11\xcf8p\x99\xd9\xd8\xae\xcf.^,\x16{\x93\
+t\xfd\x83\x83\x83\x0eo\x09\x10Xv\xfd\xbf\xc8\xfe\xa8\
+\xf9o\xf7\x19\xef=\x10\xddz\x9f\xc9j\xc4&i\x90\
+\x84\x95I\xa7\xcc\xf4\x1b7\xf5\xca\xca\xca*\xfb\x1e\x0b\
+\xe0\xf8\xf8x\xdf\xea\xa6\x06F\xc8\xc7w\x85\xb90K\
+2\xb9\xf8\x9f\xff\x83\x8c$#\xa9!K=[\x8ef\
+\xd3\xabXV\x9ey\x03\x9f\xc7\x92\xe9 \x8dT`\xf4\
+\xdf\x0c\xa3\x90\xca(\x99aMN'&\x93\x88;L\
+~\x03}U80w\xf4\xee\xee\x00\x00\x00\x00IE\
+ND\xaeB`\x82\
+\x00\x005\x1c\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x01\x00\x00\x00\x01\x00\x08\x03\x00\x00\x00k\xacXT\
+\x00\x00\x18\x8azTXtRaw prof\
+ile type exif\x00\x00x\
+\xda\xd5\x9bYv\xdc\xb8\x96E\xff1\x8a\x1a\x02\xfaf\
+8h\xd7\xaa\x19\xd4\xf0k\x1f0\xa4\xb4l\xcb\x96^\
+~=+\x1d!\x07\x19$p\x9b\xd3\x00L\xb3\xff\xef\
+\x7f\x8f\xf9\x1f\xfe\x14\xe7\xac\x89\xa9\xd4\xdcr\xb6\xfc\x89\
+-6\xdf\xf9\xa5\xda\xe7O\xbf\xaf\xce\xc6\xfb\xfa\xf6\xc7\
+\xbd^?|n\xde\x7f\xf5\xbc\x07\xde\xc3s\xa0\xe6\xd7\
+\xb7\xde>w\x1f.c]\xe7\xb7\xf4\xc3\x85\xea|\x1d\
+\x18\x1f\x0f\xb4\xf8\xbc\xfb\xfa\xd3\x85^7\x0a\x1a\x91\xe7\
+\x97\xf5\xbaP{](\xf8\xe7\x80{]\xa0?\xd3\xb2\
+\xb9\xd5\xf2\xe3\x14\xc6~\xde\xd7\xdbD\xeb\xf3\xd7\xe8\xa5\
+\x8e\xe7>.\xbd\x8e\xfd\xf4\xefX\x88\xdeJ\xdc'x\
+\xbf\x83\x0b\x96\xd7\x10^\x03\x08\xfa\x1bL\xe8\xfc\x12x\
+\xf5!r\xa2\xe3\xa7\x87x_]x\x8b\x09\x01\xf9]\
+\x9c\xde\xff4Ft4\xd4\xf8\xdb\x93\xbe\x94\xad\xb7\xdf\
+\xcc\xcf\xd9\x8a\xfeuJ\xf8)\xc8\xf9\xfd\xfd\xb7\x9f\x1b\
+\xe2\xf0\xdb\xac\xdc\xd0\xffp\xe7X\xdf\xcb\xe4\xc3\xe7\xa5\
+\xb8\xfeVG\x1f\xa2\xaf\xbf\xe7\xacz\xee\x9c\x99E\x8f\
+\x99P\xe7\xd7\xa4\xde\xa3\xa6_8op\x0b\xdd\xba\x1a\
+\x86\x96m\xe1o\xe2\x12\xe5\xfe4~*U=)\x85\
+e\xa7\x1d\xfcL\xd7\x9c'\xfa\xc7E\xb7\x5cw\xc7\xed\
+\xfb>\xddd\x88\xd1o\xe3\x0b\xbfx?}\xb8\x1f\xd6\
+P|\xf33(\x7fQ?\xee\xf8\x12ZX\xa1\x92\xd7\
+y\xd3\x1e\x83\x7f\x1f\x8b\xbb\xb7mv\x9a{\xb7\xca\x9d\
+\x97\xe3T\xef\xb8\x98\xe3+\xdf\xfe1\xdf\xfd\xc29j\
+\x05\xda\xbd\xbe\xc7\x8aqy\xaf`3\x0ceN\xaf\x9c\
+FF\xdcy\x055\xdd\x00\xbf\xfd\xfc\xfcGy\x0dd\
+0)\xcaj\x91F`\xc7s\x89\x91\xdc?H\x10n\
+\xa2\x03'&\xde\x9f\x1ete\xbd.@\x88\xb8ub\
+0tCtd\xcd\x85\xe4\xb2\xb3\xc5{\x00\x8a@V\
+\x12\xd4\x19\xbazf\x90\x01\x97\x92_\x0c\xd2\xc7\x102\
+\xb9\xa9^\xb7\xe6+\xc5\xddS}\xf2|l\xf8\x1c0\
+#\x13)\xe4P\xc8M\x0b\x9dd\xc5\x98\xa8\x9f\x12+\
+5\xd4SH1\xa5\x94SI5\xb5\xd4s\xc81\xa7\
+\x9cs\xc9\x02\xc5^B\x89\xa6\xa4\x92K)\xb5\xb4\xd2\
+k\xa8\xb1\xa6\x9ak\xa9\xb5\xb6\xda\x9bo\x01\xd0L-\
+\xb7\xd2jk\xadw\xee\xd9\xb9r\xe7\xdb\x9d\x13z\x1f\
+~\x84\x11G2#\x8f2\xeah\xa3O\xcag\xc6\x99\
+f\x9ee\xd6\xd9f_~\x85\x05~\xac\xbc\xca\xaa\xab\
+\xad\xbe\xdd\xa6\x94v\xdci\xe7]v\xddm\xf7C\xa9\
+\x9d`N<\xe9\xe4SN=\xed\xf4\xf7\xac\xbd\xd2\xfa\
+\xcb\xcf7\xb2\xe6^Y\xf37S:\xb1\xbcg\x8dO\
+Ky\xbb\x84\x13\x9c$\xe5\x8c\x84y\x13\x1d\x19/J\
+\x01\x05\xed\x953[]\x8c^\x99S\xcel\x03\xfeB\
+\xf2\x0c2)g\xcb)cd0n\xe7\xd3qo\xb9\
+3\xfe\xc9\xa82\xf7\xaf\xf2fJ\xfc\x907\xff\x9ff\
+\xce(u\xdf\xcc\xdc\xafy\xfb]\xd6\x96\xf0n\xde\x8c\
+=]\xa8\xa0\xda@\xf7q|\xd7\xeek\x17\xd9\xfd\xf2\
+n>;\xf0\xdd\xf7\xff\x9a\x0b\x8dQ\x8e]g\x862\
+\xd6*!.\xe0\x83\xec\x12M[{\x14\xa4\x86\x98\xc6\
+\xea1\x9d}\xb2\xd8\xd6\x80\xc6\xab\xf4\xc3\xc1P\x00\xbf\
+\xb2\x09\xec\xc8\x87Z\x99yPn\xa7S\x8b+\x9f<\
+w8\xbcw\xa8\xfa\xec}:\xaf\xfe\xf4\xb2\xf6I\x8d\
+s\xe9~\xbf\xba\x0f\xbb\x9c\xe0\xe7Z+\xb42\xa8\x81\
+\xb1R\xde\xe7\x08\xe0\xe7\xd0\xfbv\xf1\xe8}\xc5R\xf4\
+\xeeS8g@\xec\xe79b~=t\x92U\xcd1\
+\xee1\xda\x8e\xe5\xe4\xb1\x19m\xd39\x96\xa9D*W\
+\xbfO\xdf\xee\xa5{\xe5\x8e\xdb\xc4\xce\xa7\x99\xfa>\x1f\
+\x0f\xbc>O\xbb\xbb\x98\xdc^>\xad\xc9\xa4\xe9\xaeq\
+\xe69\x15\x16\xf0w\xb0w@\x12\x11\xcf\x80\xeep\xe8\
+\xfe\xf7\xb1R\x80?\x1f\xb9C\xad'7\xbf\xb7\xa3r\
+O]\x87\x90L\x02\xd9\x9c\xd9\xe9~\xc9\xf6;\xdc\xdd\
+\xc3\x8dH\xd3\xe8\xe8\x07h\xe5\x93#\xb4Yr\xb1\x8c\
+\xd8\x00\x96\xb3\x97)3\x9f\xc3(@\xa4Yi\x1a\x9d\
+\x5c5\x08\xde\x93[\xc0T\xbb\xe3\xdbs\xd7?\x1c\x1b\
+fE*\xe7\x89l\xfd1\xae\xefQ\xbd\xa1c\xcc7\
+t|)>#\xfc'\xac\xcf1\xf3\xf1\xe0g\xb1e\
+$\xfef\xf6\xd3b0\x1f\xab\xe1\x93b\xf8,\xc2\x0a\
+\xb0\x8a\x82q \xfdn\x14\xdb3\xc8W|\xef\xa1_\
+\x8e\xfc\x1c\xdf\x1b^A\x8c\x02l\x9e\x083\xcf\xfa\xa4\
+\xf9\xdc(Rn\x8a\xe3\x13\xe1O\x8e\x8c\x0f\xe15_\
+\xab\xdb\xbf\x97\xad\xf9Z\xdd\xfe\xbdl\xcd\xd7\xea\xf6\xef\
+ek\xbeV\xb7\x7f/[\xf3\xb5\xba\xfd{\xd9\x9a\xaf\
+\xd5\xed\xdf\xcb\xd6|\xac\xdb\x9d-h\x99\xe1\xe7S5\
+\xa5\xb1\x138\xd9\xa7 \xb5\x8e\x19\x80\xd7\x11\xee\xd8\xd3\
+\xd8u\xea*\xbc\x87S\x87\xd9\xed\x94\xfa\x1f|Q\xdf\
+\x1b+\xe7\xbe{\x8a\xbbVsR\x09i\xae\xd2\xf2!\
+\x0e\xc2\xefq\x96\xb4!cO\xb5\x1d\x982\xea\x1f\xf6\
+/\xef\xc6~\xf1\xc4\x7fy\xa1\x04\xa1\xe7\x05?\x8c\x98\
+\x97\xdf\x85\xec\xed9\x08\xa9Ksd4B\xf3\xf1z\
+\xd0b\x90\x1b\xd1\x9e\xb8s\x05\xf0]\xf1\x99\xd7\xb5\x9a\
+_\x9b\x9f\x91\xdb\xca\x5c\x06\xc5\x10\xf9\xfe\x1aS\x84\xb0\
+\xd6\xc0\x19S\xd2\xb0\x5c\x18\xad\x1f8'\x9b\xb0\xfd\x9c\
+\xc9\x8d\xd9\x5c\xa6\xae\xe1\xa5\x1cjB\x9bT\xac\x0a\x8a\
+f\x17\x8bb\xf2\x16\xd9\xc1\xeb\x09\xb3n>th\x96\
+\xb6}\x1c\xeb\xb8\x901P\xdbt\x94\xc9\xac\x0d\xb5&\
+\xa5F\xd2\x90a\xbb\xc7S\xc2\xc2l\xc9\xd8\x85\x94\x8f\
+\xa3\x14{;\x09\x19\xc6l\xda\xf4\xbe\xa7D\x9e\x18\x9b\
+\x7f\xa0\x04\x18\xd9$\xacL(\xd3\x93b\xe4\x98\x1b\xc9\
+\x97\x9aCs\x08\xdflc\xaa\x93\xd1\xb7+N\xc7\xa0\
+N\x0e$\x9e\xda\x85\x14z\x8a\xb2\xbft\x14\x1d\xf5\x7f\
+\xfb\xcc\xaa\x90\xe1i\x8f\x0a\x82p\xa9\xdc\x19\x0b\x88I\
+\x8d\xe2\x9c\x18\xa8\x8fh4\xea\x9d\xc1\xa1\xa7\x96\xcd'\
+]\x8f\xa3\x82w\x04{\xaf03\xfa\xd9\x0f\xdf\xa2B\
+5\x5c\xc9\xc4\xad\xe4\xeds\x0b\x93\xab\xc0\xf8;\xe6R\
+\xb9;G%5f\xa5\xfcOl\x9dz\xedg\x88\xd7\
+\xea\xe8\xa9\xcc\xd4\xc6\xaa\x05\xf1\xd9\xfb\xaa\xb3(\xc2\xb9\
+\xb7\x86Qa2\x0e\xe9<\xa3\xe3\xcb\x04\xce\x06\x92\x82\
+\xe0\xab\xad\x13\x81Vb;\xe8\xe4h\xe8\x07\xbf\xd1\x1e\
+\xd1\x8eV\xaa;D\x09\xcf\x9f\x8bW+x\x8bxe\
+(\x03\x1c\xd9+\x85\xd5\xd2^s\x033\xc3%\xce\x9c\
+\x13\xc38c\x5c\xa3\x19'\xec\x09\xc2\xb9\xecC\xc7\x0a\
+9\xdfs\xdb\xb34$\xedl\xb9\xa6\x14\xd1(\x07m\
+$\xbc+\xd8Y\xc4*\xf58\x0f_\x9b(&\xb2\x84\
+\x801\xbeSv\x8e\x8a\xf5I\xd7\xb7\x01_u\x16\x02\
+\x95\xf4\xee\xb4\xecA\x87#\x84)\xaf>7\xdfF\x90\
+\x0f\xf0$\xe6L1\xa1\xb4\xebK\x9c\x99\x89!F\xdf\
+\xd6SQ\xbe\x83VV\xdc\xe3(\x0c\x07\xda\x18c\xe4\
+:\x171u\xb1\xa2\xcfq\x12\xfb\x14\x8a\x14N\xd96\
+\x15W\xde\x8a\xc0\x8c\x9b\xfa_\x8b\x00\xdd\xbf\x06\xc8\xb0\
+\xfa$c\x94\x16\xff\xd5\x15\x93\x8f\x8c\x0e%\x18Si\
+\x93Z\xe0{\xfd\xd6Q\x22\xbe(\xba\xc1T\xd7$\x90\
+\x13{\x9eK;\x88y\xc5\xf5\xa0\xf8H\x8e0\xc8\x0b\
+\xf2zm2h\x0e\xb5\xee\x87\xdd\x94\x00\xa5\xe9\x11w\
+\x06P\xf7\xa3^\xf8\x89\x951\xf7;g\xfb\xf5\xf7\xe3\
+\x08{;\xa6_\xb0\xc7\x9aP\x8e`\x9d\xf3\x99\xb1\xc1\
+h\x80\xdf\x22\x9e\xd8\x19ej\xba\xd5\x03\xe3\x02@p\
+5\xa5/\xd2\xb1&\xa6\x0a5:\x17h\xeeL\x83\x88\
+\xa8+\x82l\x99n\xc5\x99\xb5Y\xc6q\xe9\x84\xac\xb9\
+\xce\x01K`\x8e\x16Q\x1e;7R\x12\xe9B\xee\x0d\
+~\xce\x16\xaa\x9b:\xdc\x0dL\x805\x0a\x8c\xa22\xe7\
+^RZ\x09\xc2)4R\xc6Y\x95\x13\x09-\x99J\
+\x8b\xa8\x12\x9c\xe1\xea(t1 P*\xdekS\x13\
+eXw\xf5\xd1\xcaN\xf0\xd6;\xe5\xba\x86\x94z\xf4\
+\xc8\x84v\xec\xf6k\xcd~\x9d\x13m\xd2I\x88{\xf8\
+\x14#\x07X\xd0>m\xd8\xc2t\x86AWK\x0b3\
+\x87\xe0\x00\x9c\xd4\x03|XJ\xf7\x9e\x91\x04\x8a\x99\xda\
+\xee\xb8@+h\xc5\x0f\x14\x1b\x89L\x1a-Y\xd4x\
+.\xb6Q\xc582S\x99\x8eZ\xbc\xe0f\xc9\x1c\x97\
+\xf3Q\xcb\x0b\xb38\xb2\x92\xb8\x84\xd3\x12P\xc1\xd2\x12\
+\xdb\x88\x11\xe0\x1aX\x83\x02\xb4\xe6N\x22\xf0\x84\x07\x7f\
+iZ\xc8\xd0\x0ee\xc7\x8c\xa9\xb2U\xb8\x10U\x05\x9a\
+\xa5](\x1e\xea%$J\x17g\x89\x8b\x83\xb0}q\
+\x9b\xd7\x1be\x97\x06\x9e\x84A\xd5f\xb8i[\xa1\xd0\
+f\x05\x87\x0a\xe3V\xa2\xe1\x1d7$\xaa\xccx\x8c\x9e\
+W\x00\x82g\x0c\x80\xe6T\x83\xa3(`\xe3-\x10]\
+\xd3\xeeLk5C^G\xa4\x91\xc9V\xe0\xee`\x0a\
+}a\xd1\x144Z\xb5\xb1\x12\xf7\x10\xd6t\x88\x85Q\
+U\x14*\x9cA\xc0\x8a\xb2>\xe2n\xc3\x13\xc6e:\
+\x97-\x1e\x99Z\xb5\x9e\xd2T\x15.-h\xa0PB\
+)\xec\x19<\xd3\x1e3\xa5P\xc8\x06\x08r\xb0\xbbS\
+\xab.\x8b\xacP\x03\x85\xfe\x1d\xd9\x0cn9\xc5\x14\x90\
+\xbc\xbf\x8c\xe0f.4\xd1\x14\xa2-\x01\xec\xd4H0\
+\xf0\x89\x0c\x88\x86\xfc\x8c{\x00\xe0h\x12\xe6\x16w\x0c\
+\x80\x8f\xa9\x90U\xd1\x90A8B9U\xc3\xfe\x02A\
+\xd1w\x98\xedB\xc4\xe1\xc4\x01\xe2\x025V\xb2\x8e\xd2\
+\xe1~\xd5\xcb\xc11H\x90\xb0wC\xf6=g\xd4\x12\
+\xb7s\x9d\xc1&\xe9\xc3q:\xad?\x1eW=\xe3i\
+\x0c\x85\xf0z4\xd0\xacX9n\x04\xf9\x028\x1d\xfc\
+\xa1\x96\x88\x11~\x93B@&\x82\xfa\x85+\xd0>\x87\
+y\x94\xbe\x9d\x1f\xd4:\xba1`\x18=\xe4U@F\
+2/Jr\xb7\xd5[\x9dw\xf9\xef\xe2\xd1\xa2\xa2\xb6\
+z\xe3\xcaM\xfb(\xca\x1c\xaeD\xcd\xe8\xa1\x93!\x19\
+\x14%\xd5\xa6\x12,\xe4\xeb\xcatZ80\xd0\x1d_\
+Xk\xe0\xe0\xf5]\x10\x0a\x8c\xbaBv\x95F;\x16\
+\x90\x80\x13\xcdD\x8ePBP\x00\xa0\x9e\x8b\x93\xe4\xb2\
+\x05\xdaJ)\xc1N\x09\x84\xec\xda\x16`X +b\
+F\x08\x9e\xaeJA\xa3\x14q\x13\x15{\x1a\xd2oh\
+\xe5F\x18\xd4\x1a\xae\x99\xd8\xb5\xa0f\xf1 D;9\
+q\x1f\x0a{zJ\xb1\xf0\x0d>\xd3\xb2\xcfD.\xc5\
+\x15\xe9\x9e\x01$\xd6Fe\xe78jC\x84 \xa1 \
+\x07\xce\xa1\x99\xcf@&\x9c\xd8\x85\xbf\xb4;H\x16c\
+\x1d\x14X%\x9a4w\xb6\x9e\xfa\xb5\xb7\x8fa\x93\xb6\
+-\x05\x09R#F2\xc4=\x93gZ\x1d\xccm\xe8\
+3-$1.j\xc5\xceNz\xa0\x94q\xb4\x8a\x04\
+\xab\x13\xd7\xedmo\xf4\xbe\xa5\xbe\x80\xbf\xf1\x18?\xf7\
+\x0a\xfd\xd4\x92\xcd\x0f\xb8~\x13\x0b\xbfC\x88\xdc{\x07\
+\xdb$6\x98\xda\x96\x06B\xe3u4\x95\xe4X\x0a\xa8\
+Z\x98\xaaA\xa7+\x81\xd4\x94\x8c*\xa1\x1c\x07\xc0\xf3\
+\xeb\xb8\x5cC\x9f\xb9\x10!\xa2\x09\xef\x00^\x9d\x92\x91\
+Pd\xd4~\x12\xe8\xb3\xc8\x1a\x818k\x87\x95\xe1y\
+\x11\x85G\x05\x80\x1c\xcc\x02\x05t\x02\xec\x07\x02T\xe8\
+\x10\xa0\x93\x96k\xd0m(\xb4\xbc\x1a\x88\x99\xddD8\
+o\x0d\xb4\x89\x09r\xb4\x04G\xc1\xc9[\x96so\xd8\
+\xf5*>\x07Z2\x80\x81\xa4\x88\xa2\x0d\x10\xc9:\x8c\
+\x15\x84\xd0\x22\xf2-g\x14+\xfdf\xe6!\xca\xb3\x8b\
+\xe5bG\xec\xc3s\xe8\x05\xfa7\xa9F>\xca\xbb_\
+\x89]\xea\xea\x00\x8cg\x1b:uq\x03\xb8\xaf\x91\x05\
+\x8c\x94\x1f2\x9f9\xc1\x194\xee\xd1\xa2\x22\xect\xc6\
+\xc4\xca\xe5-6\x99]\x0c\xc6\xb7\x0a\xe2\x03\x01\x0a\x9e\
+\x94aZ\xb3~\xdfh\xd4\x04\xf0\x80\xd9-\xa0\x9b\xe8\
+\xa3\x15i\xaf\xb5V\xd5\xdf\x08\xad\x80\x8b\x09\xa1\xd8\xa3\
+\x1f\x12\xcf\xcb5\x00\x87\xeeF\xfalm\xb0\xa4dS\
+&T\x01q\x05]\xc3x\x09exEF\xdcwJ\
+\x99)\xc1l\xf9\x84 \xabJ\xfd\xb6\x80\x1cG\xd7\xa9\
+\x99@\x83\xd0\x87Qt_Ax\x0f\xc1\xe3\xd3&p\
+\xb5\x1a\x93)o\x8e\x0d\xbd\xd70@\xa8\xad\x22\x9f\x0a\
+U\xdd\x1eX\x01J1\xb3D\xa6\x011\x12\x99\x98G\
+\xe2\x82\xdd\xc2X\xdc\x00>{\xad:\xc07\x13,\x9a\
+\x81\xc4\xca\xe7\xa1~\xdcO\x030?\x8e` 9\xa6\
+\x05\x0d\x91\x02\xa5\x86\x002n\xf1\xa7GP\x12\xe3\xb5\
+\xa4\xb2R\xa3\xd8\xe8\xb6\x00\xff\x85\x85j\xab7\x8ff\
+\xc2\x7f\xfd\x0e|Y\xa7\xc5]]\x92\xc3\xcfz\x04\x84\
+\xcd}`\x1d\x12\x873\x86\xe0\x10\xbf\x04\xba\xfa\x0c\xcc\
+\x07:\x87\x86\x01\xf4\xe8~Wa\x890AW\xe6\xaf\
+\xe5\xd6\x18@\x9d\xadM\x9f\x956\xce\x83qRjc\
+h\xeb\xecv\xe1p\xb7\x9a\x7fZ(4\x9f-->\
+\x0b\x1dU\xb1\x08\xf6\x82\xeb\xb8\xaf\x07N\x1cS\xda\x91\
+*\x0c@\xf3\x9cdr/\xc5\x08\x0f\x81k\xb1}7\
+2)\xac_R\xb9|\xa9x\xf8\x89\x0b\xe1\xab!\x81\
+\xbb\x84\x01\xf0\xe1\xd4)\xa6\x9b\x86\xda\x0b\xb6\x84\xbf\x16\
+O[_\xcb<\x04\xb8\xdd\xb0e\xd8\xe4DI\xbe\x81\
+\xf5\x00\x7f\x90\x11\x93\xc9\xdf8\xc2\x0b\x08\xf7$Y\xf4\
+\xcc3@\x99\xfa\xd5\xbc\x90\xe7O\x13\x811)\xea\x0f\
+\x13y\xcdc0\x05\xc7\x10\xfc\xec\x06\xb2<\xd9\x1d\xdc\
+@k\x1b\xe0\x04E\xe6ky\x83\x06\x8f\xeb\xb9(\x1f\
+t\xdf6v\x05{\x8eP\xd1:E=X\x02\xf1Z\
+zx\x0d\xf1\x94\xb8\xe1v\xf0-u\x8f\x11[\x9d\x1b\
+\xd5\xbbZ\xc1\xe4\xaeGV9\xf2S?\xa7S\x03\x9f\
+\x22\xfe+lw\xa8\xa8t\x83\xb8T\x83\x00\x02\x82t\
+\xa2USd\x0chR<2\xd3\xda-\x0a\xf2\xe2\x91\
+\xa9\xb96\x14\x91\x02f\xe7\xab.e\x11\xdeBa\xef\
+\xe1\x89&!\x0eU/\xf1\xae\x09!\x16\xd0\x154Z\
+\x9ew\xc2K\xe8\xe2\x09\xc9]m\xd0ffi\xfd\xbb\
+\x8b\x06Z\xa1\x99\x99[\xb6\xaa`\x0c-\xd6-\xb4\xb5\
+\xa2\xac\xfe\x83\x1eV\xf7yY\xc1|\xed\x1b\x17\xb5\xb7\
+`\x08D\xdfj\xfd\xda\xe4Kq\xd6\x80\x0f\xba\x08\x8a\
+\x8eT\x03\x95W\x0c\xb6\x15\xd5\x851\xe5\x1f$\xf7\x93\
+\x9c\xdc\x94 Jh0a\xf2e\xa3\x04\xd5\xe0ya\
+V\x00a\x1a\x04\xbd@\xb1\xda\x82\xe0\x0c#Udh\
+'\xf5\xd2h\x89\x92\xc6\x15 \xf5\xb4\x08\x8er\x14\xdf\
+\x9f\xfeV\x8b\xda\xdc|'Ask\xf1V\xa2\x8c=\
+cP%*\xfco\x95\xd8\xc6\xf6\xda\x04\xa1\x87\x0b\x16\
+\xces>\xcatZ\xb4\xeb\xc1\x1bb\x06*\xd2\x91^\
+\x93\x13*\x94\x0e\x94\x81\xcf\x97zgJN\xae]\xe0\
+\x86\x22jW\xcd\x7f\xdak\xdcd\x003\xe8l4\x22\
+r\x99QY\xc1\x16B\x19,\x81\x96\x98,\xd8N$\
+\x91$@\xa3\xd8\x94\x5cM\xd4_\x1fS\xfb\xf6\xc5.\
+$\xf4\x9eO\xa7\xa2\xd8\x1e\xa1\xb8\x11/6j\x1d\xf2\
+\x8f\xc5)jT\x81\xe1%\x9f4\x10\x9ag\x85}I\
+.\xc36\xbb\x03\x19\xa0\x07\x83\x19j\x13/\x1dt\x19\
+R\xab\xb6W\x0b^%\x08:<Z\xf0\x96\xd2?Z\
+\xd2\xbc\x89\xc97-\x89\xa5\xc0Y\xe2i\xd7\x03*\x1a\
+;\xa9j\xaf\xfct1\xe0\xef\xc0\xd0\xfci\x03F\x0b\
+\xa3\x85\xa8#\xdep)#E>\x07\xa3k\xc4\xab\xe1\
+o\x90WZ\x82\xe1\xac(YSW\xa9\x80\xfd\x0a\x08\
+\x0cl\x16&\x0d\xc1\xd5=ra0\xc8\xa2*\x83\x0d\
+h\xb6X\xae\xb0G\x19\xd0\x0c\xb1\xf5\xb8/:\x16\x0a\
+\xa4jWt\x22\xaf`\x81\x00\xb3k5v]\x1b\xc3\
+\xb7\x06\xa2\xa07\x81\x167Ar\xad\x94\x00\x8d\xce\xe0\
+\x08a81&\x84 \x0a\xd36\xfcA\xcd&\xd2N\
+\xf85m\xc2#I\x82\x97n\xd1B\x18\xb6{7\xcf\
+8\x91\x9bE\xb5\x88)\x18\x9b\xae[\xcb\xc6-\x91\x80\
+\x81\xd3Z\x1a\xe4\x94\xa3\xdb\x06|=\xe8\x15\xc4I\xef\
+\x97\x19p\xe0uh\xaf\x89b`\x1c'\xb6-\xc7H\
++;\xf2\x82m\xda\xc8l-\xb7\x04ms\xeaz'\
+\x92I\xc3\xd7;\xbe\x0f;4\xb4|\x02\xb7U\x89\x0d\
+ej\x95\xdd\x9feda$\x9a\xba\xbe\x16\x1a\xac\xf8\
+\x15H\x8e\xc8\xbbp\xc4\x84\xb9\x18\xd0\x14O\x80\x08b\
+\x02\x03\xfds\xd0\xb1Yf:x\xc4H\xb1J=\xe2\
+\xba\x82m\xd4\x22*\xb0bz\xec\xdeb\xf4\xc9\xbd\x91\
+\x9ah\xca\xe4\xcdjz\x1c ]\x1esx'=\xae\
+@\xc3\xa3\xe0#\x8d\x93\x94Q\x92\xac5\x84\xcd\x99D\
+1\x90\x1e\xa0\x1c\xdb\xab-\xcb\xc7\xc7\xe0}\x88\x117\
+\x06\xe9\x88\xaf\x9a\x15?\xae\x95%\xf4\x8fv\xdb\xda|\
+\xd9\x9b\xa4\x85#.\xb5\x04s\x82\xc01\x1d~\xcc\xaa\
+Xd\xe8\xacC\xf9\xa3\xc2\xa4\x08\x98\x06\x9a.\xa2\xbf\
+m\x90\x1b\x8c\x1e\x81\x05\xf3n4\x0f\x86\xb7\xfb\x82\x1a\
++\xa0$l\x89\x03\xd5\xc6\xed\xe9M\xcfR\xdc\x10\xa2\
+j)^\x12\xf1\xa1\x17\x9fN|\xda0\xa0U\xc2\xa7\
+\x96\xaf\xa4\x95\xb4\x15\xe2\x0c\xc5\xd9\x04g=QdA\
+\xf9\xff\x8cEd\xfejt\xc09v*\xe1\x00v\xa7\
+\x84\xee\x964n\xc4\xc4\x0ar\xdcu_\xc0\xec\xdc\xec\
+\xf8\x7f\x98\xa7\xdc\x9d\xc7\x0f\xbcsi\xa7\xfeB/\xe6\
+o\xfc#\x90E#\x0f\x10\x8d\xe2s\xe0S\xe7\xe2\x99\
+\x86\x92\xc5*Q\xe5\x80ro\xc0\xc8\x96\x88\xc74Q\
+\xa5J\xba\xc5?,O\xf7\xd3\xad\xa9a\x91+\x05\x01\
+\xe2V\xb4i\xefQ\xb5\xcfP\xe5\x82\xa4\x0c\xa8,b\
+\xdf,\x1a2\x00T]\x126\x07OK\xc6\x11\xa8\x0b\
+,\xfc\xa1[\x8bl\xbd\xe0}\x07\xad\xfa\xc2\xa4q \
+MI\xefq\xf8\x84E_\xd6IJqr\x06\xd7\xc5\
+\xd9\xce\xa1\xcbK\x9c9\xa2\xf2\xdc\xc1R\xe2\xdeh\xfc\
+\x08Zw\x10\x8e\x82\xc4h\x8dN_$\xbbr\x9f\x88\
+\x19\xa1/\x0d\xa1=\xaa:\xa7\xa1'0HT\x9cu\
+\xa32\x82\xa1Up\xac\xd4\x8e\x5c\xf8d\xb1/}\x9b\
+\x89\xee\xa2\xf0\x0e\xe8\xa2\xb5A\xcc\xf5@\xb1W\x00O\
+\x0bE8,\xe3\xf6\x12\xf9\xe2\x15A\x0aOk\xf6\x81\
+1\xe5\x18\x22\xa5\xaevTwR\x5c9<;9#\
+\xf4\x0b\xcd\x90\xc9\x15\xe3L\x18\xc9u7|\xab\x9e\x17\
+\xa0\x8d\xb5\x0c\xb6\x19\x04S_Z\x98w\x8b\xfc,|\
+\x858\xb4\xc1]Y52\x22\xf81\xddlZ\xb3\xef\
+NK\xe6w\xc1\xcal_k\xcd\x00~\xac\x085j\
+na4\xee\xce\x81t@\x19\xaf\x9d\x83\x15\x92\xd6\xd8\
+\x9e\x9d\x03\xd4\x95\x96\x9b,\x83\xa3\xaa\xb4\xbac!H\
+J\x04\x98\xddx\xd1\xdc\x18\x82VS*\x91Dqp\
+\xe7\xeeI#\xf3\xe8\xb6j\x1dkg\x9aV\xad\x83<\
+\xc1\x9e\xc8\x91\xca\xd3\x8e\x16\xb1\xa2U\x8fgH\x81P\
+\xeb\x05\xcb\x12\xa1\xe3\x0d \xb9\xcd\x84]E\xde\xe0^\
+<\xfeeG\x8a\xed\xc0\xfa[\xf2\x12\x0a\xb1\xb02\x11\
+F\xe0\x80\xfb\x86\xe1j5\xa8j\x91\x19\x09T\x05\x22\
+\xf4z\xadc\x11bY\xba\x0d\xdf'\x89\xa56Gk\
+\x22w\xeav\x0b\xc3F\xd7\xf8\xf0\x03\xf6\xf2\x1a\xc9\x93\
+\x92\xc6gxd)\x81\x90|\xa0\x88z\xce\xae\x12~\
+\x8c\xdfP\xd5d\x0b\xca\xe8\xd1\x80\x84\x0c\xe1\x12]\xcb\
+B\xa0\x86\xe7\x15`\xab5\x90\x0a\xf47\xe7\xa9\x99!\
+\x89\xfb\xf8\x01\xb1Gw\xce\xcdD\xb4\xe5\x02ZQX\
+\xb2g@c\x09Ryw\x9d\xad\xa1\x7f\x82\x9e\x821\
+\xe8|-r\xd9\xd7>\xdf$\xa6\xf1.\x8d\x00b9\
+l!\xc3\x8cZ +\x87\xbbPM-<\xe2^\xab\
+dwq\x90\x89/\x7f\xcc^\xd4\x1fc*\x996\xa2\
+\x9b\xa5e\x9cx\xa6\xea\xec\xa0\xcdI\xd9\xa7\xdd\x8a\xa3\
+=:x8c\xcdi\xd0\x1b\xa9Y\xfam\xd3\xcaH\
+\x22\xa3\xf83\x10\x18`\xe1\xccP>\xbd\xf6\x0e.D\
+<\xe6\x08\xa8\xa3\x82\x80\xc6j\xef\x8c\x99O\xe1>r\
+\xe7\xf2\xd4J\xb94\xde\xbe\xde\x1c\x0c7\xda\x05\xc6Q\
+\xf6\xb5\x1c4Z\xb5i\xe7\xb3\x05\x14W\x22\xe7\x84\x98\
+P\x83\xeb\xd2\x85tURU\xc3\xc9\x95\x9a\x1d \x15\
+\xce0\xabk\x11ZC\x22U\x9a3\x83\x9a\xfb8 \
+\x98a`\xb6r\xbfe\xa3uen\xa5us.!\
+QA\x07B\xbe-\x06+l\xd6\xca\xf9\x86\x15L\xb8\
+P\x98\xc1\x87\xfd\x0f\x8f~\xf5\x9d\x8b\xe8\xe9M\x9a6\
+\x99\x5ca*\xe4\xeb\x94[\x95Q\xe8=\xc7\x88\x9c\xa4\
+\xa6%2urh\x22N\x0b.\x80\xbeA\x0f\x01Q\
+%D0P\xb6p/\x8e\x0e\x11\xd16\xaa\xdb\xeb\x89\
+\x15R\xc6I\xbaW\xb7\x1d\x08\xe4\x03\x88r\x03\xfa]\
+\xfb\xc6\x7f\xdcc\xc7\x1d!\x05IOw\xadg\xbf5\
+\xa0|\xb8t9\x8a\xc3\x9f\xf6\xaf)\xc6:0g{\
+j\xf5|Y\x83\xd6\xd6\xbc6zZ6$\xa5\xd1\xf0\
+\xe1 \x22\x93\xc9 \x08\xcd\xb9\xa7E\xfc/\xd0\x11\xf3\
+Z\xb4\x0e\x1c1\xdf^\xf0\x08\xbd\xb5\xe42mdH\
+4\xba\xc6\xce\x9am\x91\xc2:Q+\xaf\xa8\x5c\xa4\xc3\
+a\xaa\x89le\xb2N\xf5\xee\x96\xaf\x1b\x9c\x93\xa2\x1f\
+@o\x04{\xb4\x83C\xdf\x1c\x83\xa8\x99q\x11B\xba\
+'\x22\xd2\xc5\x04\xd3YZK\xff\xa9\xc3\x98\xa1C\xd7\
+9\x8f\x8f\xa6\xcc\x88\x18J\xa7\xa2\xa0\x8e\xd7b\xa6\x05\
+\xd0g\xf3\x06v\xa17%\xda\xe8N\xb4C\x9e\xb4X\
+R\xff\xa1\xb9\x91s\xa8\x16\xa4\x02\xc4\xd1\xf0M\x0d\xc9\
+\x00\x9fP\xe2X\xd4.gQ\xa3D\x0f\xb6\x02\xe3\xb7\
+\xa1.\xbe\x06\xd8p\x87\xa2\x87\x13\xdbD\xd0u\x9ai\
+\xab?\xb5;K\x0dc9\xa2\xd6\x18\xc7\x09\xb4\x1c\x8a\
+\x82\xf2\x86n\xa5\x9d+4d\x9c\x96\xeaH\xed\xd4\xc6\
+\x8ev\xba\x06\xcd\x1f\xe2\x0e\xa0\x9e l\x06\xe2\x86U\
+m3\xf4\x80(\xd5\xda\xf1k\xd1\x16\x1cs\xe4\x99\xee\
+\x07\xad\x0d\xa4\x97GM\xf6\xee\xac!5'~\xe0\xee\
+\x5c\xa1\x99\xb7\x9eD%l\xd8G\x8a\xaf\x93\x17O?\
+-=\xc9\xe6D\xf8\x98\x80$\xc6r[\x0f\xc4\xb5\x83\
+X\xc3Thu\x1cq?\x1a4\xd9\xb4\x12xwZ\
+\xd1\xd8\xc0$*\x1fo\xae\x0d\xa0O\x9f\x042\xf7\xa9\
+\xa5\xf3<\xb5DG\x87,\xf9C\xbe\xdf\x9e\xaa\x80\x5c\
+\xc0\x97\x16\xd0\xbb\xd22D\xdd\xc1QQl+\x19\xed\
+}\x13\xdb\xfaf,n\x0fL\xca\x03\x06\xf3\xdaaA\
+o\xf9q\xd7\xb6BVL\xab6?I\xc5Xw\x15\
+\xd3\x92\x8a\xe1\xc0%Z\x0f\xf8f\x06\xb4\x17i7h\
+\x06l\x11|\x90\x226\xe2\xb5f\x0b\x9b~h\xf5\x80\
+\xd0\x04\xb8\xb3G\xdd\xe9\xb9\xc1}\xb7$6\x83\xd2\x83\
+\xe1\xbbSBf\xea\xd9\xf2\xf5\x1f>3\x80\xf2\x22\xe5\
+GOS\x1a=\xfcB}\xc0E(\x12\x04s^-\
+k\xdfjC\xca\xa1\xae\xd9\xe5\xb2\xbd*\x1e\xb8\xd3\x7f\
+\x90\x22\x10p\xe2Y\x04s\xc8\x01\xc48\xf22\xb4\xa5\
+\x9eu\xa4\xae\xf4\x08Kn\xc8\xf9\xb1\x93Oz\x18\x19\
+}#\xa7G\xebo\x22\x03\x80`\xeb\xb5.<\x22\xaa\
+a\xa7\x94s\xa1\xc0\xc0Vj\xd7\xa4\x8eo`jE\
+a\x86\xac\x91\x08\x1b\x00\x0d\xd4\x11BY\x9b+\xc8\x0d\
+4\x88\x5c\x0d\x15\x88\xc0@*\xe89\xc7\xa0\x07\x04N\
+\x81\x17\x81=Oe\xa3\x08\xe1\xd65igl4\xc6\
+S\xef\x03\xb6\x05O\xc8\xc0b\x5c\x11\x8d\x94\x11\x0c\x07\
+\xd3\xe8\x1e\x19\x16z\xd3F\xac\xb6\xd8P#\xb833\
+\xd0\xa1\x8dXh\xe3\xc6\xa3\x06b\xd3\x86O_\xafe\
+=\xadQ|\xe5\xd1\xc1f\x9a\xa7, \x9a\x80\xd5A\
+qi\x9f\xaf\xe9\xc9\xcfp\xf7\xf9\xa0\xa4\x93U\x04\x91\
+\x1a\xc2c0Cq\xfe\xddF@\xf2R\x96\xdaF\xa0\
+\xff\xf1\xfd\xf5\xaemR\x1a\x5c\x04\xd69 UM2\
+Q\x05\xb5+\xd7A\x84\x10LL4\x92+\x87\x05\xbf\
+\xbb\x15J\xbb\x9bX[\x04\xc5\xca\x0eU\x8b\x1d\x06\xfa\
+\x98\x5c\xc3~\x96_\xbe\x01S\x03>zp#\xd1\x8d\
+\xda\x0fh\xe90\xf8\x94\xd5\xf7\xf86I\x0eZ\xd5\x88\
+\x8b\x8e6\x97\xee^\xf2\xb9j\x13\x91-\xad)\xe3_\
+\x9e\x85\xe8\x83\x16\x0a\x0fWk\x99WL\x9d\x9fU\xad\
+\xf1P\x837\xf4)2\xe3>G\xb5\xf5\xfc*\xff8\
+J\x9e\xb6\xcf\xab\x8c\xbf\xd7sM\x1c\x04\x07^k\x80\
+\xe7Y\xcf\x81\xdc\x9e'\xcc\x86\x1e$\xba\xfb\x22L\xe6\
+\xae\xc1\x1c\xad/\xcaIB\xccCHt\xb2\xcf\x9e\x89\
+\xdc\x85z\x94\x19\x1a\xe3\xb3q=\x1b,\xfe\xedy\xa8\
+\x8f\xf3\xba\x1a\xfay\x8c\x8a\x99\xad\x86\xf8:t\xbe+\
+\xab\x95\x85\x22t\x0b\xa0\x0e\xd2\xe1COh\xca\x88\xfe\
+8$\x22\xe2\x9e\x07\xa2\xfe4)\x95\x1c0][\x1d\
+h\xb7}\x0c\xc8\xf2\xaf\x03\xcd|\xb2IP\xd0\x97\xa2\
+|\x87\xc3e_1\xbe\x11\xfea.\xe6\x87\xc9|!\
+\xbe\x8fF\xd3j\xe0\x1d\xce\x13\xdc;\x13\xf3\xc9T\xfe\
+\x14Y\xfb6\x9c\x1f\xf3m\xfeI\xf8\x1f'\xf3sl\
+\x7f\x08\xed\x93m\xf3y\xba\xff<\xa1\xfcSp\xcd\xf7\
+k\xf8\xf7%l\xbe_\xc3\xbf/a\xf3\xfd\x1a\xfe}\
+\x09\x9b\xef\xd7\xf0\xefK\xd8|\xbf\x86\x7f_\xc2\xe6\xfb\
+5\xfc\xfb\x126\xaf\xf8\x22\xe0`bW\xa5\xe9e\x82\
+p\xc8q\x04\x84\xc5\xb4H\xeb\xde|\x19z\x8c\xa60\
+\xa3\xa2M\xa8\xa5Uk\xfd_;9#;\xd1\x0a\x06\
+_}\x9f\x9a\xc0\x19bc\xa1\xc3)\x0d\x0a\xa4\x8b\xb1\
+H\x9d\x1e\xdf\xc0^\xae,\xf9\x81\xa4\xc8\xe2\xb5]\xf0\
+<h\x16\xe7q\xfb\xc8\x8f\xb8\xa3\xb1{\xdcDZW\
+\xf5\xb8\x05\x1c\x1aF\xd6CL\xa8\x13\xf8z\x91>\x94\
+\x89\x085\xde\x95o\xff\xf0\xfe\xdd\xef\xfcQ\x0a\x98\x7f\
+\xff\xdc\xe1\x7f\xe5\x85(\x1el\x87\xb5\xe6\xff\x015\x94\
+3\xa6\xf6\xe2\x8e\xf3\x00\x00\x01\x85iCCPIC\
+C profile\x00\x00x\x9c}\x91=\
+H\xc3@\x1c\xc5_S\xa5R*\x0ev\xa8\xe2\x90\xa1\
+\x8a\x83\x05Q\x11G\xadB\x11*\x84Z\xa1U\x07\x93\
+K\xbf\xa0IC\x92\xe2\xe2(\xb8\x16\x1c\xfcX\xac:\
+\xb88\xeb\xea\xe0*\x08\x82\x1f \xae.N\x8a.R\
+\xe2\xff\xd2B\x8b\x18\x0f\x8e\xfb\xf1\xee\xde\xe3\xee\x1d \
+\xd4\xcbL\xb3\xba\xc6\x01M\xb7\xcdT\x22.f\xb2\xab\
+b\xe0\x15~D\x10\xc4(\x06df\x19s\x92\x94\x84\
+\xe7\xf8\xba\x87\x8f\xafw1\x9e\xe5}\xee\xcf\xd1\xab\xe6\
+,\x06\xf8D\xe2Yf\x986\xf1\x06\xf1\xf4\xa6mp\
+\xde'\x0e\xb3\xa2\xac\x12\x9f\x13\x8f\x99tA\xe2G\xae\
++M~\xe3\x5cpY\xe0\x99a3\x9d\x9a'\x0e\x13\
+\x8b\x85\x0eV:\x98\x15M\x8dx\x8a8\xaaj:\xe5\
+\x0b\x99&\xab\x9c\xb78k\xe5*k\xdd\x93\xbf0\x94\
+\xd3W\x96\xb9Ns\x08\x09,b\x09\x12D(\xa8\xa2\
+\x842l\xc4h\xd5I\xb1\x90\xa2\xfd\xb8\x87\x7f\xd0\xf5\
+K\xe4R\xc8U\x02#\xc7\x02*\xd0 \xbb~\xf0?\
+\xf8\xdd\xad\x95\x9f\x9ch&\x85\xe2@\xf7\x8b\xe3|\x0c\
+\x03\x81]\xa0Qs\x9c\xefc\xc7i\x9c\x00\xfeg\xe0\
+Jo\xfb+u`\xe6\x93\xf4Z[\x8b\x1e\x01}\xdb\
+\xc0\xc5u[S\xf6\x80\xcb\x1d \xf2d\xc8\xa6\xecJ\
+~\x9aB>\x0f\xbc\x9f\xd17e\x81\xfe[ \xb8\xd6\
+\xec\xad\xb5\x8f\xd3\x07 M]%o\x80\x83C`\xa4\
+@\xd9\xeb\x1e\xef\xee\xe9\xec\xed\xdf3\xad\xfe~\x00p\
+\xa2r\xa6'\xfd-\xde\x00\x00\x0d\x1aiTXtX\
+ML:com.adobe.xmp\
+\x00\x00\x00\x00\x00<?xpacket b\
+egin=\x22\xef\xbb\xbf\x22 id=\x22W\
+5M0MpCehiHzreSzN\
+Tczkc9d\x22?>\x0a<x:xm\
+pmeta xmlns:x=\x22a\
+dobe:ns:meta/\x22 x\
+:xmptk=\x22XMP Core\
+ 4.4.0-Exiv2\x22>\x0a \
+<rdf:RDF xmlns:r\
+df=\x22http://www.w\
+3.org/1999/02/22\
+-rdf-syntax-ns#\x22\
+>\x0a <rdf:Descrip\
+tion rdf:about=\x22\
+\x22\x0a xmlns:xmpM\
+M=\x22http://ns.ado\
+be.com/xap/1.0/m\
+m/\x22\x0a xmlns:st\
+Evt=\x22http://ns.a\
+dobe.com/xap/1.0\
+/sType/ResourceE\
+vent#\x22\x0a xmlns\
+:dc=\x22http://purl\
+.org/dc/elements\
+/1.1/\x22\x0a xmlns\
+:GIMP=\x22http://ww\
+w.gimp.org/xmp/\x22\
+\x0a xmlns:tiff=\
+\x22http://ns.adobe\
+.com/tiff/1.0/\x22\x0a\
+ xmlns:xmp=\x22h\
+ttp://ns.adobe.c\
+om/xap/1.0/\x22\x0a \
+xmpMM:DocumentID\
+=\x22gimp:docid:gim\
+p:b21310e5-9d21-\
+44d1-ab3c-9dd6d0\
+c05628\x22\x0a xmpMM\
+:InstanceID=\x22xmp\
+.iid:a07b1f50-06\
+03-4181-85bb-849\
+97bf046ec\x22\x0a xm\
+pMM:OriginalDocu\
+mentID=\x22xmp.did:\
+568dcc6e-5cfb-43\
+c4-9d41-f5c9e488\
+6fd8\x22\x0a dc:Form\
+at=\x22image/png\x22\x0a \
+ GIMP:API=\x222.0\x22\
+\x0a GIMP:Platfor\
+m=\x22Linux\x22\x0a GIM\
+P:TimeStamp=\x22167\
+9654470333966\x22\x0a \
+ GIMP:Version=\x22\
+2.10.30\x22\x0a tiff\
+:Orientation=\x221\x22\
+\x0a xmp:CreatorT\
+ool=\x22GIMP 2.10\x22>\
+\x0a <xmpMM:Histo\
+ry>\x0a <rdf:Seq\
+>\x0a <rdf:li\x0a \
+ stEvt:actio\
+n=\x22saved\x22\x0a \
+stEvt:changed=\x22/\
+\x22\x0a stEvt:in\
+stanceID=\x22xmp.ii\
+d:e3a96143-5dee-\
+4ed6-917c-416fe8\
+b91c1a\x22\x0a st\
+Evt:softwareAgen\
+t=\x22Gimp 2.10 (Li\
+nux)\x22\x0a stEv\
+t:when=\x222023-03-\
+24T11:41:10+01:0\
+0\x22/>\x0a </rdf:S\
+eq>\x0a </xmpMM:H\
+istory>\x0a </rdf:\
+Description>\x0a </\
+rdf:RDF>\x0a</x:xmp\
+meta>\x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a\
+ \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \
+\x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a\
+ \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \x0a<?xpacket \
+end=\x22w\x22?>\x88u\x1fu\x00\x00\x00\
+\x09pHYs\x00\x00\x10\xdf\x00\x00\x10\xdf\x01tU\
+^0\x00\x00\x00\x07tIME\x07\xe7\x03\x18\x0a)\
+\x0a\xbc\x9cw\x19\x00\x00\x02\xdfPLTE\x00\x00\x00\
+\x00\xff\xff\x00\xff\x80U\xff\xaa@\xbf\x803\xcc\x99+\
+\xd5\x80$\xdb\x92 \xdf\x809\xe3\x8e3\xe6\x80.\xe8\
+\x8b+\xd5\x80$\xdb\x803\xdd\x880\xdf\x80-\xe1\x87\
++\xe3\x80(\xe4\x86&\xd9\x801\xdb\x86,\xde\x85+\
+\xdf\x8a)\xe0\x85'\xe2\x89/\xe3\x84.\xdb\x89,\xdc\
+\x84+\xdd\x88)\xde\x840\xdf\x87.\xe0\x83-\xe1\x87\
+,\xdb\x83+\xdc\x87)\xdd\x83/\xdd\x86.\xde\x83-\
+\xdf\x86,\xe0\x83+\xe1\x86*\xdb\x82.\xdc\x85-\xdd\
+\x82,\xde\x85+\xde\x88+\xdf\x85*\xe0\x87.\xe0\x85\
+-\xdc\x87,\xdd\x84+\xdd\x87+\xde\x84*\xdf\x86.\
+\xdf\x84-\xe0\x86,\xdc\x84+\xdc\x86+\xdd\x84.\xde\
+\x86-\xde\x84-\xdf\x86,\xdf\x83+\xe0\x85+\xdc\x83\
+.\xdd\x85-\xdd\x83,\xde\x85,\xde\x87+\xdf\x85+\
+\xdf\x87-\xe0\x85-\xdd\x86,\xdd\x85,\xdd\x86+\xde\
+\x84+\xde\x86-\xdf\x84-\xdf\x86,\xe0\x84,\xdd\x86\
++\xdd\x84+\xde\x86-\xde\x84,\xde\x85,\xdf\x84+\
+\xdf\x85+\xdd\x84-\xdd\x85,\xde\x85,\xde\x86+\xde\
+\x85+\xdf\x86-\xdf\x85-\xdd\x86,\xdd\x85,\xde\x86\
++\xde\x85+\xde\x86-\xdf\x85,\xdf\x84,\xdd\x86+\
+\xdd\x84+\xde\x85-\xde\x84,\xde\x85,\xdf\x85+\xdf\
+\x84+\xdd\x85-\xdd\x84,\xde\x85,\xde\x84,\xde\x85\
++\xdf\x86-\xdf\x85-\xdd\x86,\xdd\x85,\xde\x86,\
+\xde\x85+\xde\x86-\xde\x85-\xdf\x86,\xdf\x85,\xdd\
+\x85+\xdd\x84+\xde\x85-\xde\x84,\xde\x85,\xde\x84\
+,\xdf\x85+\xdf\x84+\xdd\x85-\xdd\x84,\xde\x84,\
+\xde\x85+\xde\x86+\xdf\x85-\xdd\x86,\xdd\x85,\xde\
+\x86,\xde\x85+\xde\x86-\xde\x85,\xde\x85,\xdf\x85\
+,\xdd\x85,\xdd\x85+\xde\x85-\xde\x84,\xde\x85,\
+\xde\x84+\xdd\x85-\xde\x84,\xde\x85,\xde\x84,\xde\
+\x85,\xde\x86+\xdf\x85-\xdf\x86,\xdd\x85,\xde\x86\
+,\xde\x85,\xde\x86-\xde\x85,\xde\x85,\xdf\x85,\
+\xdd\x85,\xdd\x85+\xde\x85-\xde\x85,\xde\x85,\xde\
+\x84,\xde\x85,\xdf\x84+\xdd\x85-\xde\x84,\xde\x85\
+,\xde\x84,\xde\x85+\xde\x85-\xdf\x86,\xdd\x85,\
+\xde\x86,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xdf\
+\x85,\xde\x85,\xde\x85-\xde\x85,\xde\x85,\xde\x85\
+,\xde\x85,\xdf\x85,\xdd\x85-\xde\x84,\xde\x85,\
+\xde\x84,\xde\x85,\xde\x86,\xde\x85-\xdf\x86,\xdd\
+\x85,\xde\x85,\xde\x85,\xde\x85+\xde\x85,\xde\x85\
+,\xdf\x85,\xde\x85,\xde\x85+\xde\x85,\xde\x85,\
+\xde\x85,\xde\x85,\xde\x85,\xdd\x85-\xde\x85,\xde\
+\x85,\xde\x84,\xde\x85,\xde\x86,\xde\x85,\xde\x85\
+,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\
+\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\
+\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85\
+,\xde\x85,\xde\x85,\xde\x85,\xde\x85\x1ci\x96\x02\
+\x00\x00\x00\xf4tRNS\x00\x01\x02\x03\x04\x05\x06\x07\
+\x08\x09\x0a\x0b\x0c\x0e\x0f\x10\x11\x12\x13\x14\x15\x17\x18\x19\
+\x1a\x1b\x1c\x1d\x1e\x1f !\x22#$%&'()\
+*+,-./0123456789\
+:;<=>?@ABCDEFGHI\
+JKLMNOPQRSTUVWXY\
+Z\x5c]^_`abcdefhijk\
+lmopqrstuvwxyz{|\
+}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8b\x8c\x8d\
+\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9f\
+\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\
+\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbc\xbd\xbe\xbf\xc0\
+\xc1\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\
+\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdc\xdd\xde\xdf\xe0\xe1\xe2\
+\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\
+\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\x88\x04\x8a\x05\
+\x00\x00\x00\x01bKGD\x00\x88\x05\x1dH\x00\x00\x09\
+vIDATx\xda\xed\x9d\xf9_UE\x18\xc6\x0f\
+\x8ak\xd2&Y\xeeK\x0be\x92\x91\xa5\xa5\x94\x8a\x9a\
+\x99\xa6Yi\x0b\xe6Jfj\x8bXR\x16b\xde\x8a\
+\xd2\x16\xcb\x12\x836\xcd\xca\xa5\x05\x13\xc3\x0c\xcd\xc4\xd4\
+J\x055KD\xad@\x13Q\x90\xcb\x9d? \xf9T\
+Z\xcc{\xce\x9d\x99{\xb9s\xde;\xef\xf3\xabg\x9e\
+\x99\xe7\x8b\xf7\x9c3s\xde3\xc7\xb2H$\x12\x89D\
+\x22\x91H$\x12\x89D\x22\x91H$\x12\x89D\x22\x91\
+H$\x12\x89D\x22\x91H$\x92\xb1\xea\x7f\x9c\x85\xbd\
+L\xcf\xef\x04\xa0\x9f\x09\xf9\x99\xe9\xf9\x99\xe9\xf9\x99\xe9\
+\xf9\x99\xe9\xf9\x99\xe9\xf9\x99\xe9\xf9\x99\xe9\xf9\x99\xe9\xf9\
+\x99\xe9\xf9\x99\xe9\xf9\x99\xe9\xf9k\x03\x88?\xc6\x8c\x06\
+`^~fz~fz~fz~fz~f\
+z~fz\xfe\x7f\x01\xc4\x971\xa3\x01\x98\x9b\x9f\x99\
+\x9e\x9f\x99\x9e\xbf\x06@/\x93\xf33\xd3\xf33\xabO\
+y\x1d\xb8V\xee\xca\xc9\x98y\xff\xa0\x84\xeb\xe2:\xb6\
+k\xd9!6\xaeo\xff{\xa6\xbd\xba\xf2\x87?\xdd\x08\
+ \xe8\xf9\x0b2'v\x8d\xb4Ymo;\xf2\xa5\xf5\
+\x15.\x03\x10T\xb7\xaa\xec1\xcd\xfd=rn\xd4\x7f\
+aI\x98\x02\xc8\x1d\x7f\xbe\xd8c\xf7\x06\x03\x17\x1d\x0f\
+;\x00\xde\xb7\xaf\x92)=\x88~\xf2\x8f\xf0\x02\xb0\xf4\
+2\xd9\xea\x8b\xa8\xd4\xf2\xf0\x01P\xd8O\xa5\x00\xa5\xdd\
+\x8ap\x01\x90y\x96b\x0dN\xe2\xd1p\x00P>B\
+\xbd\x0a\xe9\x92\x9d\xfe\xfdWyj\xeb\x90\xab\x00\x14\xc7\
+\x05R\x87uN\x8e\xdf\x0e&r\x8d\xbew\x13\x80\xe2\
+\xcb\x03\xabDk\xb4\x0c7\x80\x83\x9d\x02\xad\xc5k\xb8\
+\x1a3\x80\xb2k\x02\xafF\x8c\xda\x8a\x18\xc0}\xc1\xa8\
+\xc7l[\x82\x16\xc0[\xc1\xa9H\x1d\x8e\x15\xc0\x81s\
+\x82T\x93\xbb\x0c)\x80;\x9dB]<2%#w\
+S\xc1\xde\xe2\xdd\xf9y\x1f\xce\x19\xd7#\xd2\xe1\xd8\xd6\
+e(\x01|f\x1b(rX\xe6>\xee|\xf9\xc5d\
+\xfb\xc9\xe2T\x8c\x00*\xdb\xdb\xa49?\xad\x18nQ\
+\xf1\xee\xd5v\xc4\xb6#\x04\xb0\xd0f\xb2?\xe1w\xfb\
+6\xbe\xcc\x166\xb3\x02|\x00\xbc\x17\xc3\xd7\xb4|\xe7\
+f\xa5\x03\xe1\xff\x02{\xd0\x01x\x1f\x0cr\xd3o\xfe\
+\xdaUO\x07\x1b>\x80\x0d\x80\xaf\x0b\x14\xa3\xa7\xc8R\
+\xd7\x0c\xa8e\xe3\x83\xc8\x00\xe4A)\xae,\x15b7\
+\x16j\xfb\x022\x00I\xd0\xcc\xee'\xc1\xebGg\xa0\
+q,.\x00\x95\xd05\xfd9\xd1\xd6\x9b\x1b\x00\xad\xb7\
+\xa2\x02\xb0\x14Hpy\x95p\xf3\x07\x81\xe6\x8f\xa2\x02\
+0\x14H\xf0\xbex\xf3_\x1b\xf2\xcd[\xfa\x10\x01\xa8\
+l\xc6\x07\x88\xa9\x960\x80\xce\x83\xdb\x10\x01\xc8\x05\xc6\
+?_\xc6`\xab\xf8u\xc0\x95\x00\x80Ky\xe3R)\
+\x87X\xdea\x00\x22\x00\xdd\xf8\xe1\x8f\x90sH\xe7\x1d\
+\x9a\x9c@\x03\xa0\xa4>?\xfc\x8f\xe5,\xf6\x01\xbf\x81\
+\xff,\x8f\x96L8-~\xd9y\xf8\x04H\xd3B\x08\
+\xe0S`\x12xD\xd2\x03XN\x9f}\xe6_\x7f\x91\
+_V\xba(\x84\x00R\x81Y\x90\xac\xc7T\xde\xe3\x0e\
+4\x00n\xe7\xbb\x9f#\xeb\xf19\xef\xd1\x11\x0d\x80\xb6\
+|\xf7ke=J#8\x8f\x88R$\x00\xfe\xe0{\
+\xaf'\xff\x9c\x17x\xa6\x94\x8b\x04\xc0j`\x1e \xef\
+2\x92w\x99\x8b\x04\xc0\xebRkzvz\x9ew\x99\
+\x84\x04\xc04\xbe\xf7g\xe5]V\xf0.\xb7\x22\x01\x00\
+<\x10Y*\xef\xb2\x83w\xe9\x8c\x04@7\xe1\x99\x9c\
+\xe3\x8c\x92\xbf\x9d<\x0b\x09\x80h\xfe\x02\xa6R\xf1\xd5\
+\x81\x0fq\x08\x05\x802\xa0\xecO\xa5\xef\x1by\x9fo\
+Q\x00(\xe0;\xef\xa2\xd27p\x1d\x5c\x8e\x02\xc0z\
+\xe1\xa9\xbc\xb3\xa6\xf0>\x19(\x00\x00w\xf1\xa3T\xfa\
+\xf6\xf0>\xe9\xff\xfe\xdb\xa1\x84\xd3j\xc5\x1du]\x02\
+\xa4\x11!\x03\x90\xc5\x0f\x5ci.\xbe\x88\xf7\x99\x81b\
+Ad\xae\xe3L^\x5c\x1f\xf3>\x13Q\x00\x98\xc9\x0f\
+\xfc\x95 M)F\xa2\x00\xf0\x10?\xf0E*}o\
+\x046\xb0C\x01`\x5c\xc0\x0b\x82\xb6\xf7\xc2\xf1(\x00\
+\x8c\xe2\x07\xfe\xa5J\xdfE\xbcOw\x14\x00\xeevZ\
+\xc9\x90\xd0o\xbcO\x1c\x0a\x00\xc3\xf9\x81\xafS\xe9\xbb\
+\x14(0@\x01`\x08?\xf0\x0d*}\x1f\xe5}.\
+E\x01\xe0f~\xe0\x9bT\xfa>\xc1\xfbt@\x01\xa0\
+/?\xf0-*}W\x01\x8f\xc8Q\x00H\xb0\x823\
+$/P3\x8b\xf5'\xf0\x9dJ\xdf\x15@\x811\xd6\
+\x93\xe0z\x95\xbe\xcb\x9c\x16\x05M\xb8\x0c\x1e\xc6z\x1f\
+\x10\xac\x1b\xa1\xdfy\x9f\xebQ\x00H\xe4\x07\xbeJ\xa5\
+\xefb\xde\xa77\x0a\x00@\x81\xd3G*}\x17\xf2>\
+\x03\xb1N\x873T\xfa\xce\xe7}\x86b]\x10yY\
+\xa5\xef\x5c\xb1B#\xf7\x01\x98\xc7\x0f<M\xa5\xef\x95\
+\xbc\xcfh\x14\x00\xb2\xc4\xcb\x5c\x1d\xf5\x8e\x98\x8f\xfb\x00\
+\x00%R\xf7\xa9\xf4\x0dT\xcayP\x00\x00^\x15H\
+P\xe9\x1bx\xca\xbe\x10\x05\x80\x02\xb1[X\x95\xa5\xb5\
+OP\x00\x00\xee\xe1\x9b\xab\xf4=\xc0\xe1\xe1\xa8\xab\x01\
+0`\xaf \x95\xbd0\xae\xe0m\xf6\xe3\x00\x00\xbc3\
+\xbfY\xde\xa5\xba\x09_n\xea\xc5\x01\x00(\x91\xf9@\
+\xde\x05x\x00\xdc\x86\xe1\x00\xf0\x18?\xf4Ty\x97\x1c\
+\xde\xa5/\x12\x00\xf3\x03.\x96\xb7qy\x00\x09\x80\xd5\
+b\xcb\xb9~4\x86w\x99\x87\x04@\x09P\xe6+\xbf\
+5\x18\xf0\xeai6\x12\x00\xac\x9d\xe0\xd8\x9dt\x0c\xd8\
+Q\xe1 \x16\x00@\xb9\xfc\xf4 \x9c\x03[1,\x00\
+f\xf1\x83\xbf*\x083\x81!h\x00\x00\x9bgD\x14\
+Kz\x00\xdb\x0f\xce\x12\x04\x90\xaf\x1d\xc0a\xe0\xf7\xbb\
+@\xce\xa2\x88?\x91Z_\x0b\x02\xd8\xa0\x1d\x00\xeb!\
+\xb6\xa2\xed \xa0F\xae)\xbc\xdf\xea\xa4\xe0<\x85\x08\
+.\x80\xa7\x80B\xc5\x9dR\x0e1\x82\xf7\x81\xd0\xdbU\
+k\xf4\x03X'\xb9\x15\x8e\x90\xc1K\xa27\xde\xd9\xfa\
+\x01T\x9d\x0d\xbc;\xbb_\xc2\x00\xdaJe7|\xe8\
+\xe3\x81\xbc\xa6^W\x00\xd8=@\x80)\xe2\xcd\xbf\xb5\
+\xc4\xcacj\xc4\xbf\xa4\xf8\xaa\x0b\x00d\x03\x09\x1a\x0a\
+_\x9f\xab\x80\x93(\xb8 Z\xa3\x97\xb9#\x9fq\x01\
+\x00\xefE@\x84\xce\xa2\xdbf\xa7B;\x09\xd9\xddH\
+dr\x87&\xb9\x00\x00\xb4&`Y\xa3\xc4\xf6P\xf8\
+\x12\xdaBd\xb0\xdd\xd1+\x84\x1e\xa1\x86\x1c\xc0\x8f`\
+\xcd\xfeD\x9f@\xd3\xdc\xa6P\xd3\x1c\xbb\xc3\xf9\xd7\x13\
+.t\x03\x00\xa8P\xe6\x94\xee\xf5\xff\xb5\x9a\xc5\xcd\xa0\
+\x86\xd7\xda\x1e\x0f\xbch\xbf\xcf\x0d\x00\xbe\x81\xdf\xdb\x88\
+\xf1\xb3Chy\x12\xdc\xce~OEod]^\x06\
+\x02\xd8M\xae\x0f\x9c\xa4\xfeX\x87\xbfO\xd5\x9b-\xe1\
+V\xbd\x1c:j\xc3\x1d}\x8d\xcf\x0d\x00\xd6\xd8\xbd\xbc\
+\xd3$1\x07>\x19\xeeM\xebh\xd3\xa4\xde&\xb9\x1f\
+\xdb\x0c7\x00`\xb7\xd9\xbf\xc0\xd4ztF\xe1\xff\x0f\
+>\xf2\xd9\xe3=\x22l\x8fO\x92\x5c9\xb0\x06o\xf4\
+\xe9\x07P\x14\xe5\xf8\x16W\xe3\x98A\xe3\xa7\xa5x<\
+\xa9\xc9\x0f\xdeum\xb4\xe3\xa1\xed\x1d\x1f,e\x81m\
+.\xb8{\xca\xactOJr\xd2\xf8;\x87%\xf4\x8a\
+\x8b\xe90$\xe4\x00\xa0\x85m%\xd5w.2\xdb%\
+\xe6\x12\x1bz\x00\xd5\xbd\x82\x03\xe0\x05?\xfd\xb4\x11r\
+i\x1fz\x00\xac\xe8\x82`\xe4\xbf\xd7_7\xf7\x0b\xd9\
+\x9c\xa7\x01\x00[\xd7$\xf0\xfc\xb7T*,AB\x93\
+\x09\x9f\x06\x00le\x83@\xf3\xf7\xf1\xbf\x0b\xe7\xc9h\
+!\xa7c:\x00\xb0\xe5\x8d\x03\xcb?\x5cd\x17\xd2d\
+!\xab\xfdZ\x00\xb0\xb5\xcd\x03\xc9?Uh\xfexH\
+\xe8#&\xdb\xf5\x00`{\xd5\xbf\xb1q\xf6\x12\xc1>\
+\x9e\x14q\xdb\xa0\x09\x00;\x99\x12\xa9\x08@\xf8=\x8b\
+\xcaX\x01\xb7U\xba\x000\xb6%^\x0d\xc08\xe1\x1e\
+\x0a[\xf8w[\xa2\x0f\x00\xf3\xadP\xba'\x8a\x10\x7f\
+\xc4\xb1\xedB\xbfn\x0b5\x028\xa5\xbca\xf5\xe4\x09\
+t>)\xec\x7f\xa0\xb7?\xb3t\xbd\x00\x18\xfb9\xbd\
+\xa74\x03\x89M\xe8\xaa3[;{\xcd\xd4\x0d\xa0\xe6\
+\xcf\xf4\xc6\xb0VR\x00\x9a\xee\x91p\xafx'\xdev\
+F\xdd\xac\xfb\x84\x5c\x17\x00\xa8Q\xf1\xf2\x94\xc1W\x9e\
+\xcb\x8f\xb0\x1f\xb8\x1f\xff@I\xc2o'v\xa9u\xf3\
+\x19}\xc3\xe89\x1f\xed\xaaV\x1cm\x1d\x00\xf8[e\
+?e/^0\xdf\x93\x96\x9c\xfc\x8cg\xc1\xa2%_\
+\xfd\xeacy\xe0\x0fd\xb1\xfcew{NV\xba\xe7\
+\x89\xe4\xe9\x9e\xb9Ykv\x04\xf8\xcd\xd8:\x03\x00i\
+\x1c\x04\xa0\xc5a\xa6S!\x05P\x02\xde5O2\x07\
+\x00{\x13\x5c\x10\xcd3\x07@5\xf4P\xd4\xear\xd2\
+\x18\x00l\x1b8kx\xd1\x1c\x00l2x3\xf0\xb3\
+9\x00\x8e\x82O\x86\x86\x9a\x03\x80\xbd'\xf9d0\xec\
+\x00@\x1bp\xf8\xf9\xdaZ]\xaa<\xf4\x00\x0a\x1bA\
+\x04\x1e\xd6\x94\xbfo\xe8\x01\xc0\xdfY\xaa\xbfYS~\
+\x0d\x00\x8e\x83_\xa9\xeb\xe6\xd5\x93_\x03\x00hG\xca\
+SzMO~\x1d\x00\xa0]X,+\xaaHK~\
+-\x00\xf6\x82UR\x8fh\xc9\xaf\x05\x00\x9b\xcd\xc7\xbf\
+:\xd3\xab%\xbf\x1e\x00\x95\xb5k\xc5{\xae\x0c\xf5\x99\
+\xf8\xf4\xed\x88\x9e\xeb\xef\xda\xff\xae\xed\xd5\x1b\xbc1\xe4\
+W\xa23\xdb\x81i\xba\x03;Sl\xdd(\xb1\x80i\
+\xcc\xaf\x0b\xc0\xc1\x7f\xbe\xd9\x1c5\xb9\x98i\xcd\xaf\x0b\
+\xc0\xdf;\xb1\xb4x\xfa\x08\xd3\x9c_\x1b\x00oW\xab\
+\xd3\xbc\x13L{~m\x00X\xfe\xb2j\xe6\x82\xfc\xfa\
+\x00hR\xed\xfc\x96\xe9\xf9-\xd3\xf3[\xa6\xe7\xb7L\
+\xcfo\x99\x9e\xdf \x00\x15\x83,\xa3\x01\xd8\xe4\xb7L\
+\xcfo\x99\x9e\xdf2=\xbfez~\xcb\xf4\xfc\x96\xe9\
+\xf9-\xd3\xf3\x93H$\x12\x89D\x22\x91H$\x12\x89\
+D\x22\x91H$\x12\x89D\x22\x91H$\x12\x89D\x22\
+\x91H$RX\xeb/\xa5p6\xac\x5c\xb9\xe4\xd3\x00\
+\x00\x00\x00IEND\xaeB`\x82\
+"
+
+qt_resource_name = b"\
+\x00\x06\
+\x07\x9e\x88\xb4\
+\x00s\
+\x00h\x00a\x00r\x00e\x00d\
+\x00\x0c\
+\x00V'\xdc\
+\x00C\
+\x00h\x00e\x00c\x00k\x00B\x00o\x00x\x00.\x00q\x00m\x00l\
+\x00\x0d\
+\x01\xb8P\x9c\
+\x00T\
+\x00e\x00x\x00t\x00F\x00i\x00e\x00l\x00d\x00.\x00q\x00m\x00l\
+\x00\x09\
+\x08\xbf\xf4\xdc\
+\x00L\
+\x00a\x00b\x00e\x00l\x00.\x00q\x00m\x00l\
+\x00\x1a\
+\x04'S\xdc\
+\x00S\
+\x00i\x00m\x00p\x00l\x00e\x00L\x00a\x00u\x00n\x00c\x00h\x00e\x00r\x00D\x00e\x00l\
+\x00e\x00g\x00a\x00t\x00e\x00.\x00q\x00m\x00l\
+\x00\x10\
+\x09\x8e}\x5c\
+\x00L\
+\x00a\x00u\x00n\x00c\x00h\x00e\x00r\x00L\x00i\x00s\x00t\x00.\x00q\x00m\x00l\
+\x00\x0a\
+\x0a\xce\x15\xdc\
+\x00S\
+\x00l\x00i\x00d\x00e\x00r\x00.\x00q\x00m\x00l\
+\x00\x12\
+\x06\xc0(<\
+\x00F\
+\x00l\x00i\x00c\x00k\x00r\x00R\x00s\x00s\x00M\x00o\x00d\x00e\x00l\x00.\x00q\x00m\
+\x00l\
+\x00\x06\
+\x07\x03}\xc3\
+\x00i\
+\x00m\x00a\x00g\x00e\x00s\
+\x00\x06\
+\x07\x84+\x02\
+\x00q\
+\x00m\x00l\x00d\x00i\x00r\
+\x00\x0a\
+\x09\xcc\x1a\xdc\
+\x00T\
+\x00a\x00b\x00S\x00e\x00t\x00.\x00q\x00m\x00l\
+\x00\x0a\
+\x0d\xd0R\xdc\
+\x00I\
+\x00m\x00a\x00g\x00e\x00s\x00.\x00q\x00m\x00l\
+\x00\x0a\
+\x0bhq\x5c\
+\x00B\
+\x00u\x00t\x00t\x00o\x00n\x00.\x00q\x00m\x00l\
+\x00\x0d\
+\x0b]\x12\x87\
+\x00c\
+\x00h\x00e\x00c\x00k\x00m\x00a\x00r\x00k\x00.\x00p\x00n\x00g\
+\x00\x07\
+\x0auW\xa7\
+\x00t\
+\x00a\x00b\x00.\x00p\x00n\x00g\
+\x00\x08\
+\x07\x9eZG\
+\x00b\
+\x00a\x00c\x00k\x00.\x00p\x00n\x00g\
+\x00\x08\
+\x0c\xf7Y\xc7\
+\x00n\
+\x00e\x00x\x00t\x00.\x00p\x00n\x00g\
+\x00\x11\
+\x02G!g\
+\x00s\
+\x00l\x00i\x00d\x00e\x00r\x00_\x00h\x00a\x00n\x00d\x00l\x00e\x00.\x00p\x00n\x00g\
+\
+\x00\x0b\
+\x05R\xbf'\
+\x00q\
+\x00t\x00-\x00l\x00o\x00g\x00o\x00.\x00p\x00n\x00g\
+"
+
+qt_resource_struct = b"\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x0c\x00\x00\x00\x02\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
+\x00\x00\x01\x87\xc7\xa1\xf0\xe5\
+\x00\x00\x000\x00\x00\x00\x00\x00\x01\x00\x00\x06\xd5\
+\x00\x00\x01\x87\xc7\xa1\xf0\xe5\
+\x00\x00\x00h\x00\x01\x00\x00\x00\x01\x00\x00\x0b\xec\
+\x00\x00\x01\x87\xc7\xa1\xf0\xe5\
+\x00\x00\x00\xe2\x00\x00\x00\x00\x00\x01\x00\x00\x1fg\
+\x00\x00\x01\x87\xc7\xa1\xf0\xe5\
+\x00\x00\x01\x0c\x00\x02\x00\x00\x00\x06\x00\x00\x00\x0e\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x01\x1e\x00\x00\x00\x00\x00\x01\x00\x00&X\
+\x00\x00\x01\x87V\x12\x92B\
+\x00\x00\x00P\x00\x00\x00\x00\x00\x01\x00\x00\x0b\x1c\
+\x00\x00\x01\x87\xc7\xa1\xf0\xe5\
+\x00\x00\x00\xa2\x00\x01\x00\x00\x00\x01\x00\x00\x0f)\
+\x00\x00\x01\x87\xc7\xa1\xf0\xe5\
+\x00\x00\x010\x00\x00\x00\x00\x00\x01\x00\x00'\x9f\
+\x00\x00\x01\x87\xc7\xa1\xf0\xe5\
+\x00\x00\x00\xc8\x00\x00\x00\x00\x00\x01\x00\x00\x14\xce\
+\x00\x00\x01\x87\xc7\xa1\xf0\xe5\
+\x00\x00\x01d\x00\x00\x00\x00\x00\x01\x00\x0039\
+\x00\x00\x01\x87\xc7\xa1\xf0\xe5\
+\x00\x00\x01J\x00\x00\x00\x00\x00\x01\x00\x000\xbf\
+\x00\x00\x01\x87V\x12\x92B\
+\x00\x00\x01\xde\x00\x00\x00\x00\x00\x01\x00\x00H\xdd\
+\x00\x00\x01\x87V\x12\x92B\
+\x00\x00\x02\x06\x00\x00\x00\x00\x00\x01\x00\x00LX\
+\x00\x00\x01\x87V\x12\x92B\
+\x00\x00\x01\xb2\x00\x00\x00\x00\x00\x01\x00\x00=D\
+\x00\x00\x01\x87V\x12\x92B\
+\x00\x00\x01\x9e\x00\x00\x00\x00\x00\x01\x00\x00<\x0b\
+\x00\x00\x01\x87V\x12\x92B\
+\x00\x00\x01~\x00\x00\x00\x00\x00\x01\x00\x008\xde\
+\x00\x00\x01\x87V\x12\x92B\
+\x00\x00\x01\xc8\x00\x00\x00\x00\x00\x01\x00\x00C~\
+\x00\x00\x01\x87V\x12\x92B\
+"
+
+def qInitResources():
+ QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+def qCleanupResources():
+ QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+qInitResources()
diff --git a/examples/quick/window/AllScreens.qml b/examples/quick/window/AllScreens.qml
new file mode 100644
index 000000000..25438f21a
--- /dev/null
+++ b/examples/quick/window/AllScreens.qml
@@ -0,0 +1,42 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+Column {
+ id: root
+ spacing: 8
+
+ Label {
+ text: "Total number of screens: " + screenInfo.count
+ font.bold: true
+ }
+
+ Flow {
+ spacing: 12
+ width: parent.width
+
+ Repeater {
+ id: screenInfo
+ model: (Qt.application as Application).screens
+ Label {
+ required property string name
+ required property int virtualX
+ required property int virtualY
+ required property var modelData // avoid shadowing Label.width and height
+
+ lineHeight: 1.5
+ text: name + "\n" + virtualX + ", " + virtualY + " " + modelData.width + "x" + modelData.height
+ }
+ }
+ }
+
+ Component.onCompleted: {
+ var screens = (Qt.application as Application).screens;
+ for (var i = 0; i < screens.length; ++i)
+ console.log("screen " + screens[i].name + " has geometry " +
+ screens[i].virtualX + ", " + screens[i].virtualY + " " +
+ screens[i].width + "x" + screens[i].height)
+ }
+}
diff --git a/examples/quick/window/CurrentScreen.qml b/examples/quick/window/CurrentScreen.qml
new file mode 100644
index 000000000..1f4da7f0b
--- /dev/null
+++ b/examples/quick/window/CurrentScreen.qml
@@ -0,0 +1,83 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+Item {
+ id: root
+ width: 400
+ height: propertyGrid.implicitHeight + 16
+
+ function orientationToString(o) {
+ switch (o) {
+ case Qt.PrimaryOrientation:
+ return "primary";
+ case Qt.PortraitOrientation:
+ return "portrait";
+ case Qt.LandscapeOrientation:
+ return "landscape";
+ case Qt.InvertedPortraitOrientation:
+ return "inverted portrait";
+ case Qt.InvertedLandscapeOrientation:
+ return "inverted landscape";
+ }
+ return "unknown";
+ }
+
+ Grid {
+ id: propertyGrid
+ columns: 2
+ spacing: 8
+ x: spacing
+ y: spacing
+
+ //! [screen]
+ Label {
+ text: "Screen \"" + Screen.name + "\":"
+ font.bold: true
+ }
+ Item { width: 1; height: 1 } // spacer
+
+ Label { text: "manufacturer" }
+ Label { text: Screen.manufacturer ? Screen.manufacturer : "unknown" }
+
+ Label { text: "model" }
+ Label { text: Screen.model ? Screen.model : "unknown" }
+
+ Label { text: "serial number" }
+ Label { text: Screen.serialNumber ? Screen.serialNumber : "unknown" }
+
+ Label { text: "dimensions" }
+ Label { text: Screen.width + "x" + Screen.height }
+
+ Label { text: "pixel density" }
+ Label { text: Screen.pixelDensity.toFixed(2) + " dots/mm (" + (Screen.pixelDensity * 25.4).toFixed(2) + " dots/inch)" }
+
+ Label { text: "logical pixel density" }
+ Label { text: Screen.logicalPixelDensity.toFixed(2) + " dots/mm (" + (Screen.logicalPixelDensity * 25.4).toFixed(2) + " dots/inch)" }
+
+ Label { text: "device pixel ratio" }
+ Label { text: Screen.devicePixelRatio.toFixed(2) }
+
+ Label { text: "available virtual desktop" }
+ Label { text: Screen.desktopAvailableWidth + "x" + Screen.desktopAvailableHeight }
+
+ Label { text: "position in virtual desktop" }
+ Label { text: Screen.virtualX + ", " + Screen.virtualY }
+
+ Label { text: "orientation" }
+ Label { text: root.orientationToString(Screen.orientation) + " (" + Screen.orientation + ")" }
+
+ Label { text: "primary orientation" }
+ Label { text: root.orientationToString(Screen.primaryOrientation) + " (" + Screen.primaryOrientation + ")" }
+ //! [screen]
+
+ Label { text: "10mm rectangle" }
+ Rectangle {
+ color: "red"
+ width: Screen.pixelDensity * 10
+ height: width
+ }
+ }
+}
diff --git a/examples/quick/window/Splash.qml b/examples/quick/window/Splash.qml
new file mode 100644
index 000000000..0a7da219d
--- /dev/null
+++ b/examples/quick/window/Splash.qml
@@ -0,0 +1,42 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import shared
+
+//! [splash-properties]
+Window {
+ id: splash
+ color: "transparent"
+ title: "Splash Window"
+ modality: Qt.ApplicationModal
+ flags: Qt.SplashScreen
+ property int timeoutInterval: 2000
+ signal timeout
+//! [splash-properties]
+//! [screen-properties]
+ x: (Screen.width - splashImage.width) / 2
+ y: (Screen.height - splashImage.height) / 2
+//! [screen-properties]
+ width: splashImage.width
+ height: splashImage.height
+
+ Image {
+ id: splashImage
+ source: Images.qtLogo
+ MouseArea {
+ anchors.fill: parent
+ onClicked: Qt.quit()
+ }
+ }
+ //! [timer]
+ Timer {
+ interval: splash.timeoutInterval; running: true; repeat: false
+ onTriggered: {
+ splash.visible = false
+ splash.timeout()
+ }
+ }
+ //! [timer]
+ Component.onCompleted: visible = true
+}
diff --git a/examples/quick/window/doc/window.png b/examples/quick/window/doc/window.png
new file mode 100644
index 000000000..72487b4d9
--- /dev/null
+++ b/examples/quick/window/doc/window.png
Binary files differ
diff --git a/examples/quick/window/doc/window.rst b/examples/quick/window/doc/window.rst
new file mode 100644
index 000000000..6a8f73eed
--- /dev/null
+++ b/examples/quick/window/doc/window.rst
@@ -0,0 +1,35 @@
+Qt Quick Examples - Window and Screen
+=====================================
+
+This example demonstrates the Window and Screen types in QML.
+
+.. image:: window.png
+ :width: 392
+ :alt: Window and Screen screenshot
+
+In addition, this example demonstrates the usage of the Qt Resource System in
+Qt for Python for more advanced scenarios. There are several QML files, one of
+which imports a module from this sibling directory. Both this "shared" module
+and the QML files of the example need to be compiled into Python modules with
+the resource compiler rcc.
+
+For the "shared" module approach to work with QML and rcc, you need:
+
+* A module definition *qmldir* file
+* A Qt Resource Collection file (.qrc) specifying all the QML files and other
+ resources, plus the *qmldir* file
+
+The .qrc file is the input to rcc. This will generate a Python module (called
+*shared_rc* here) that can then be imported from the Python code. At runtime,
+only this Python module is needed, not the .qrc file or any of the .qml files
+or even the image resources, as they have all been compiled into the Python
+module.
+
+For the example, rcc needs:
+
+* A Qt Resource Collection file (.qrc) specifying all the QML files and other
+ resources. There is no qmldir file here because this is not a module.
+
+This will generate a Python module (called *window_rc* here) that can then be
+imported from the Python code. Again, only the Python module is needed at
+runtime.
diff --git a/examples/quick/window/main.py b/examples/quick/window/main.py
new file mode 100644
index 000000000..62ba6a5e9
--- /dev/null
+++ b/examples/quick/window/main.py
@@ -0,0 +1,40 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import os
+from pathlib import Path
+import sys
+
+from PySide6.QtCore import QUrl, qWarning
+from PySide6.QtGui import QGuiApplication
+from PySide6.QtQml import QQmlComponent, QQmlEngine
+from PySide6.QtQuick import QQuickWindow
+from PySide6.QtQuickControls2 import QQuickStyle
+
+import rc_window # noqa: F401
+
+# Append the parent directory of this file so that Python can find and
+# import from the "shared" sibling directory.
+sys.path.append(os.fspath(Path(__file__).parent.parent))
+from shared import shared_rc # noqa: F401, E402
+
+
+if __name__ == "__main__":
+ app = QGuiApplication(sys.argv)
+ if sys.platform == "win32":
+ QQuickStyle.setStyle("Fusion")
+ engine = QQmlEngine()
+
+ # Add the qrc root as QML import path so that the "shared" module
+ # can be found.
+ engine.addImportPath(":/")
+
+ component = QQmlComponent(engine)
+ QQuickWindow.setDefaultAlphaBuffer(True)
+ component.loadUrl(QUrl("qrc:///window/window.qml"))
+ if component.isReady():
+ component.create()
+ else:
+ qWarning(component.errorString())
+ app.exit(1)
+ app.exec()
diff --git a/examples/quick/window/rc_window.py b/examples/quick/window/rc_window.py
new file mode 100644
index 000000000..30b1fbf0a
--- /dev/null
+++ b/examples/quick/window/rc_window.py
@@ -0,0 +1,335 @@
+# Resource object code (Python 3)
+# Created by: object code
+# Created by: The Resource Compiler for Qt version 6.5.0
+# WARNING! All changes made in this file will be lost!
+
+from PySide6 import QtCore
+
+qt_resource_data = b"\
+\x00\x00\x05\x12\
+/\
+/ Copyright (C) \
+2021 The Qt Comp\
+any Ltd.\x0d\x0a// SPD\
+X-License-Identi\
+fier: LicenseRef\
+-Qt-Commercial O\
+R BSD-3-Clause\x0d\x0a\
+\x0d\x0aimport QtQuick\
+\x0d\x0aimport QtQuick\
+.Controls\x0d\x0a\x0d\x0aCol\
+umn {\x0d\x0a id: r\
+oot\x0d\x0a spacing\
+: 8\x0d\x0a\x0d\x0a Label\
+ {\x0d\x0a text\
+: \x22Total number \
+of screens: \x22 + \
+screenInfo.count\
+\x0d\x0a font.b\
+old: true\x0d\x0a }\
+\x0d\x0a\x0d\x0a Flow {\x0d\x0a\
+ spacing:\
+ 12\x0d\x0a wid\
+th: parent.width\
+\x0d\x0a\x0d\x0a Repe\
+ater {\x0d\x0a \
+ id: screenIn\
+fo\x0d\x0a \
+model: (Qt.appli\
+cation as Applic\
+ation).screens\x0d\x0a\
+ Labe\
+l {\x0d\x0a \
+ required pr\
+operty string na\
+me\x0d\x0a \
+ required pro\
+perty int virtua\
+lX\x0d\x0a \
+ required pro\
+perty int virtua\
+lY\x0d\x0a \
+ required pro\
+perty var modelD\
+ata // avoid sha\
+dowing Label.wid\
+th and height\x0d\x0a\x0d\
+\x0a \
+ lineHeight: 1.5\
+\x0d\x0a \
+ text: name + \x22\
+\x5cn\x22 + virtualX +\
+ \x22, \x22 + virtualY\
+ + \x22 \x22 + modelDa\
+ta.width + \x22x\x22 +\
+ modelData.heigh\
+t\x0d\x0a }\
+\x0d\x0a }\x0d\x0a \
+ }\x0d\x0a\x0d\x0a Compon\
+ent.onCompleted:\
+ {\x0d\x0a var \
+screens = (Qt.ap\
+plication as App\
+lication).screen\
+s;\x0d\x0a for \
+(var i = 0; i < \
+screens.length; \
+++i)\x0d\x0a \
+ console.log(\x22s\
+creen \x22 + screen\
+s[i].name + \x22 ha\
+s geometry \x22 +\x0d\x0a\
+ \
+ screens[\
+i].virtualX + \x22,\
+ \x22 + screens[i].\
+virtualY + \x22 \x22 +\
+\x0d\x0a \
+ screen\
+s[i].width + \x22x\x22\
+ + screens[i].he\
+ight)\x0d\x0a }\x0d\x0a}\x0d\
+\x0a\
+\x00\x00\x04\x8a\
+\x00\
+\x00\x16\xa7x\xda\xcdXYo\xdbF\x10~7\xe0\xff\
+0a_\xec\x06\xba\x93\x17\x15Fa+H\x1d\xc0A\
+b\xcb\xa8\x03\x14}\xa0\xc9\x91\xb8\xf5\x8a+\xec.-\
+9\xae\xff{\x87\xc7\x92\x94\xb8$\xe5ZnJ\x08\x10\
+\xb9;;\xc77\x07g\xd8\xeb\xc1D,\x1f$\x9b\x07\
+\x1a\x8e&\xc70\xec\x0f\x07p\x1d \x5cj\xdaY,\
+\xdd\xf0\x01.\xb4\xdf=<\xe8\xf5`\xfa\xf5\xc3\xb7\xce\
+\x05\xf30T\xd8\xf9\xe4c\xa8\xd9\x8c\xa1\x1cC\xb6v\
+\x85\xb3\xce\xa5\xee\xd0\xb9\x05J\x8f\xb9\x1c\xbe\x5c\xc1\xd9\
+\xf4Cg\xd4\x99p7Rxxpx\xc0\x16K!\
+5\xf1\xbf\x8c\x98w\xb7\xfd\xdc\x9d\x88PK\xc1UL\
+z\xa9\xbf\xdc\xfe\x85\x9e\x86\xc7\xc3\x03\xa0\x8b\xf9c\x90\
+B\xe8\xf4i)\xc5\x12\xa5~\x00\x89$\xc9\xc7\x99\x1b\
+q=]\xba\x1e\x0b\xe7c\x18\xf4\xb7\xa8\xa6\x0fJ\xe3\
+\xe2\xab\xcbQk\x84e\xfa?\xdeZ~\x84\xa7X\xf0\
+\xc6\xc1{W\x82\x97ju\xc3B_\xac\xc6\x90\xfe\x1b\
+\xb5\xe2k\xc5|\x1d\x8c\x89\x8ew\xc9 \xce<\xa6o\
+\xe2%x\x9bh\xdc\xddT\x0f~\x86aq6\xc0\x18\
+\xfe\xcd\xc3\xe7\xc9\xda.\xa7\xe9\x94\x90).\xdd\xcc\xaa\
+\xee*\xd1\xaf\xa0\xd1Ls\xb2\xd5\xc9\xc0\xcd\xf4w\x0a\
+\x82\x89\xe0\xd1\x22,\x1bd\xf0&\xf6\x9b\x8bn\xe8\x05\
+B\xaa\xee\x8cq>&\x1c%\x85\x81\x9db\xe1\xca9\
+\x0b\xd5\xd8f\xc3\xe6\x09e\xbc\xd6J\xb9\xe9t\x0f9\
+\xbf)\x90O\x9c\x00=\x18A\xc7\xb0\xdc<}\xe1\xde\
+\x22''k\x5c\xeb\x12\x1c\x9a\xe2]!\xf9\xd8\x87\x14\
+\xb9\xb1\x13\xc7A\xf9\xe4o\x92\xf9\xdb\xf0\x18\x88\xe6\xb4\
+W\xdd\xf1\x12H\xc9\xfaQuow{K\xb1\x95B\
+\x9d\x1aY%:\x8b\xb4\x16\xa1ME\xa3\xa6\x0a\xc4*\
+\xa5\xb2\xd3\x94B8\xc7\xd5N\x99\xc2\x97\xe8\xaeQ\xe9\
+4\x9a\xba\xf7L\xb1[\x8e\xf0+8\xe7\xccG\x07\x08\
+\xe1i\xb0\x11f\xe5K\x84\x13\x8a\xf4;\xf4\xeb9\x9d\
+\xc0\x9b\x9a\xad*\xcb\xa7\xeaR\xaf\xf7\x06\xfeH\x1d\x8a\
+\xfe$@\xef\xeeV\xac\xff\xac\xd2%[gb]\x07\
+^\x16-7\x19\xa7\x1a{L\x16\x170w\xd3\xa5\x97\
+\xa2}Fr\xe3\xac'\xefz\xb1\xa6H\x81HE\x89\
+GX\x83\x1c\xe3\x8c\x12\xe4\xe4\xe4$\xcb\xf3\xae\xd1\xdc\
+\x06\xd2.\xae\xc8\x18n\xb3\xfbO\x9d\xf0j\xf0f\xde\
+\xfd\x18q\x0eSO\x22\x86\xcek\xf9!\x96\x91\x8a\xd8\
+\x93'\x0a\x86;\xf9\xa2\xbdF\xb8\x91\x16\xfb\xac\x11\xce\
+)1\x5c\xb8\x9ay\xce^\x0c\xce\xd9\xfd\x9eo\xeed\
+\xf9\xae\xd1U\xd8\xdf\x18]\x99q\x9fY\xc8\x16\xec{\
+mIxy\xc4\xe4\x12\xf6\x1409\xbf\x1f\x89\x9a\xbb\
+~m\xd4\x8c\x84}\xa1f\xf8\xb5\xa2\xb6\xf58\x8bB\
+O32\xa4\xe0z-\xa6Z\x92yG\xf7\xc76X\
+\xd5\x8ai/\x80\x9a]\xcfU\xb8]\x85\xc7v\x13%\
+\xeaH\x86\xe0\x98\xd2\xeb\xfc\xd2\xcc.\x8f\x8c\x16~\x8b\
+<\xe6\xdb\x18\x1a\xd0\xda\x18\xe6\xe1\xd0\xc2\xb0(v-\
+\x1cgD\xa8\xd2J\xde\xc2\xd2RNZx\xbby=\
+kaM-\x90\xdf\xaai\x90\x10\xd9XY\x02\xd7\x1c\
+\x8a\xc2\xbbP\xac*\xa7\x9e\xac\xad\xae\xbdc-\xc21\
+!\xab\x12e\xa9\xba\xd1\x14\x03S\xe0\xd0Dr\xd4\xd0\
+\xf8e\xb7I\xef\xc7B\xf3t\x0co\xed8\x001t\
+I@\xe0\xaa\x92N\x89\x94\xac\xdb\xb5$N}\xc6\x1e\
+7\x22rE\x93\xa4\x1b\xceI\xd1Gk\xb7^\x99\xa2\
+b\x10\xfee7n*\xe3\xa0Q\xa3I$c&Y\
+K\xf0\xf8\xffW\xf8\xd4d\xa0\x22m-|\xcb\xf4\xd9\
+\xad}\x9e.\xdc\xd70L\x8f\x86\xfd\xea\x90<|\xd7\
+\xaf\xcc\xbe\xceO\xc3\xc1\xfbw\xfd\xbeS\x9dx\xafI\
+\x90\x91@\xa55H\x8f$\x11\x96\xdc\x15'f\xdc\x9d\
+\xd3\xb4v\xa9\xb3\xca\x0a\x7f\x17\xf7\x1f\xf3\x8a\x92\xbe\xe6\
+\xceYy\xe6\xad\xf5\xd3k\x8c\xca\xb5ymXy$\
+\x04\xe5\xa7\xd0.\xb0\x94\xdc\xd34\xb9+\xdf\x02,~\
+\xff,\x22\x85\xa74r7\x09\xae\xb7\xb2\xe5\x95\x9b\xba\
+\xe4\x84\xdc\x88}o4\xc0f]\xea\x9bX\xa3\x88L\
+#%\x0bLioH\x0c\xb1\x16\xcb\x9c\x94\xee\xeb\x09\
+wwQ\xcb\x88\xdc4\x16P\x09\xc55\xd3Pz\x85\
+\xc5\xa5t.\xca+\xb5)>x\xdfo\x04\xbe\xae\xf1\
+\x9f\xc1\xd1s5=\xae+\xe8\xb0\xbf>>\xbe\x90+\
+|\x99\xa8g\xccH\xcf\x8e4\x8e\xb3\x22\xd0\xe2\x87\x1f\
+\x14g\xce\xb7\xfa\xa0\x18\xf5\x9f\x97\x8c\x5c(<\xaa\x7f\
+\x936\x96u\xb5\xe4\xae\x0aLa\x9f&Oe\xfcD\
+x\xcd\x16(\x22\x93\x1a\x1b\x9fUK\x9f}\xb4\x8c0\
+\x97C\xbf\x7f\x00\xe8k\x05\xe6\
+\x00\x00\x04$\
+/\
+/ Copyright (C) \
+2021 The Qt Comp\
+any Ltd.\x0d\x0a// SPD\
+X-License-Identi\
+fier: LicenseRef\
+-Qt-Commercial O\
+R BSD-3-Clause\x0d\x0a\
+\x0d\x0aimport QtQuick\
+\x0d\x0aimport shared\x0d\
+\x0a\x0d\x0a//! [splash-p\
+roperties]\x0d\x0aWind\
+ow {\x0d\x0a id: sp\
+lash\x0d\x0a color:\
+ \x22transparent\x22\x0d\x0a\
+ title: \x22Spla\
+sh Window\x22\x0d\x0a \
+modality: Qt.App\
+licationModal\x0d\x0a \
+ flags: Qt.Spl\
+ashScreen\x0d\x0a p\
+roperty int time\
+outInterval: 200\
+0\x0d\x0a signal ti\
+meout\x0d\x0a//! [spla\
+sh-properties]\x0d\x0a\
+//! [screen-prop\
+erties]\x0d\x0a x: \
+(Screen.width - \
+splashImage.widt\
+h) / 2\x0d\x0a y: (\
+Screen.height - \
+splashImage.heig\
+ht) / 2\x0d\x0a//! [sc\
+reen-properties]\
+\x0d\x0a width: spl\
+ashImage.width\x0d\x0a\
+ height: spla\
+shImage.height\x0d\x0a\
+\x0d\x0a Image {\x0d\x0a \
+ id: splas\
+hImage\x0d\x0a \
+source: Images.q\
+tLogo\x0d\x0a M\
+ouseArea {\x0d\x0a \
+ anchors.\
+fill: parent\x0d\x0a \
+ onClic\
+ked: Qt.quit()\x0d\x0a\
+ }\x0d\x0a }\
+\x0d\x0a //! [timer\
+]\x0d\x0a Timer {\x0d\x0a\
+ interval\
+: splash.timeout\
+Interval; runnin\
+g: true; repeat:\
+ false\x0d\x0a \
+onTriggered: {\x0d\x0a\
+ spla\
+sh.visible = fal\
+se\x0d\x0a \
+splash.timeout()\
+\x0d\x0a }\x0d\x0a \
+ }\x0d\x0a //! [tim\
+er]\x0d\x0a Compone\
+nt.onCompleted: \
+visible = true\x0d\x0a\
+}\x0d\x0a\
+\x00\x00\x03\x08\
+\x00\
+\x00\x0a\xb7x\xda\xadV\xdfo\xda0\x10~G\xe2\x7f\
+\xb8\xe5\x09\xb6\x91\x00\xeb\xa6)}\x986\xaam\x95\xd0\
+\xdaB\xa5uZ\xf7`\x92\x03\xac&v\xe48\x144\
+\xf5\x7f\x9f\x9d\x1f\x8d\x01\x0f\x82\xb6\x08\x89\xdc\xf9\xbb\xfb\
+>\xdbg_<\x0fF<\xd9\x08\xbaXJ\xe8\x8c\xba\
+0\xec\x0f\x07p\xbbD\xb8\x91j$N\x08\xdb\xc0X\
+\x86n\xbb\xe5y0\xbd\xbe\xb8\xeb\x8di\x80,\xc5\xde\
+e\x88L\xd29E\xe1C\xe9\x9b\xe0\xbcw#{*\
+.F\x11P\x12\xc1\xd5\x04>M/zoz\xa3\x88\
+d)\xb6[\xed\x16\x8d\x13.\xa4\xca\x7f\x93\xd1\xe0a\
+\xd7vG\x9cI\xc1\xa3TC/%\xc6\xf0\xbb\xdd\x02\
+\xf5\xd0\xd0\x07\xc1\xb9,\xacG\x1a\xca\xa5\x0fg\xfd~\
+a/Q\xcf\xc0\x87D\xf0\x04\x85\xdc|\x114tU\
+\xe6\x88\x06T~\xcd\x07\xe1\x15\x0c\xde\xe9\xac\x1a?\xcf\
+X )g\xc0\x05U\xd3 \xfa\xfd\x96O\xa5\xa0l\
+\xd1\xe1\xdd\x8aT?\xe9#\x95\xc1\x12v\xbc\x01I\xf5\
+\x1a\xb9\xd7\x82\xc6Dl\xae\xea4~\x0d\xd2\x8f@\x99\
+\x09\x06NR\x00\x9dsK\x0e5\x7fA\xa8l\x90\xa4\
+D\xda\xb2\x8c\x09\x0b\xd3\x80$x<MTAmy\
+.\xd9J\xad \x86\xcdU\xd12\x02\x0e\xc9\xab\xd2\x9e\
+ \xf39\xafU\xefS\xfdZ\x05d\xec\x81\xf1GV\
+\xa1\x9e\xaa\xdd\xd6\xd5`n\x9e\xae%\xb3R\x0c\xb5<\
+\xcab\x96\xfa04\x0a !\x81*\x0b\x1f\xde\xd7\xbe\
+\xb5_\xb9k\xdf\xc6\xf0\xd5^\xcf{\x01?\xd3@ \
+\xb2_\xb5wLf\x18\x99\x92\xf4#q\xadJ\xd8\x99\
+\xe6`\xb8w\x1cU\xb2\x85\xe12\x12\xa3\xb2\x9c{\xc7\
+w\xb6\x83\xe6\xea\xbc\xb83\x1e\xa9)I\x91\xa1u}\
+\x8asT\x1d\x9a\xc1\xf9\xf3q\x19\xc0\x93\x12\x98\xcbF\
+a\xaa.\xf5U\x92b\xc2\xb29\x09\xd4*\xa3p\xcc\
+\xcc\xdb\xb8R\xac\x89\x86\x0fV\xaf_oV\xbdM6\
+b\x1eb\xd4\x80Q\xc3\x0c\xaa\xdcl\xca\x91\xa2\xd0W\
+\x15\xcb\xe2Y\x93\xd9\x15\xf0o9\xba\xa6\xdc\xf26e\
+\x0ei\xac\xaeMu\x00\xd2\xe3\xb4\xf9\xe6\xe9\x12X\x1b\
+eQ\xec\xe3A\x8e\x84\xae\x95\x19j\x1e\xb99N\x93\
+\xc3/\x0a\xb4+\xf9ge\x86\x9daW\x13C\xc8e\
+\xea\xc51t\xb4\x82\x8e%\x00^\xc2\xf0\xad{\xd6\xb5\
+\x06R\x16,\xbb\x87\xd7#\xe2\x0b\x1a\xa8\xad8Qs\
+\x19v}\xaatK\xdc\xbf\xce \xc4\x95j\x85\xe5\x04\
+\x84\xbe\xdc\x8e\xcb/br\x15\x13\x1dar\x1f\xe2\x22\
++B#2\x8b\x10VT\xc8\x8c\xe8\x15K\x1f$O\
+\x9aP\xe6\xc0\x8fU\x86\xef\xb6\xe2\xda\x05}mPl\
+\x5c-\xa2n\xab\x94\x9d.\xaa\x0c\xb8\xd3:^\x83!\
+\xa4\x1c\xf8q\x90\xdah\xe4\x07\xa8\xf4\x17\x84k\xeb\xf9\
+%\x951Tl|\xc7\xd0a\x0c\xea\xb1#\xa5P6\
+|\xf8?\xc2\x92\xbd\xef\x8c}}\xfb\x98Z\xa6\xbd\x1d\
+\xfdU\xfc\xa0\xaf\x0e\x8b\xc0@\x12\xb6\x88p+\xc3\xa4\
+\xf2\xee\xb6/\xd5;\xb9\xfa\x16t\x04\x86;=\xaal\
+<\xf6\x1bc\xd0\xdf\x06W\xbd)\x0f\xdakg\xeaO\
+\xfd\xfe\x00\x1e\x91\x1e\xa9\
+"
+
+qt_resource_name = b"\
+\x00\x06\
+\x07\xe0Kg\
+\x00w\
+\x00i\x00n\x00d\x00o\x00w\
+\x00\x0e\
+\x0ei\x17\x5c\
+\x00A\
+\x00l\x00l\x00S\x00c\x00r\x00e\x00e\x00n\x00s\x00.\x00q\x00m\x00l\
+\x00\x0a\
+\x0bi\x98\xbc\
+\x00w\
+\x00i\x00n\x00d\x00o\x00w\x00.\x00q\x00m\x00l\
+\x00\x0a\
+\x08\x90\x1a|\
+\x00S\
+\x00p\x00l\x00a\x00s\x00h\x00.\x00q\x00m\x00l\
+\x00\x11\
+\x02YG\x1c\
+\x00C\
+\x00u\x00r\x00r\x00e\x00n\x00t\x00S\x00c\x00r\x00e\x00e\x00n\x00.\x00q\x00m\x00l\
+\
+"
+
+qt_resource_struct = b"\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x02\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00h\x00\x01\x00\x00\x00\x01\x00\x00\x0d\xcc\
+\x00\x00\x01\x87V\x12\x92R\
+\x00\x00\x00N\x00\x00\x00\x00\x00\x01\x00\x00\x09\xa4\
+\x00\x00\x01\x87V\x12\x92R\
+\x00\x00\x004\x00\x01\x00\x00\x00\x01\x00\x00\x05\x16\
+\x00\x00\x01\x87V\x12\x92R\
+\x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
+\x00\x00\x01\x87V\x12\x92R\
+"
+
+def qInitResources():
+ QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+def qCleanupResources():
+ QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+qInitResources()
diff --git a/examples/quick/window/resources/icon.icns b/examples/quick/window/resources/icon.icns
new file mode 100644
index 000000000..88b4b2444
--- /dev/null
+++ b/examples/quick/window/resources/icon.icns
Binary files differ
diff --git a/examples/quick/window/resources/icon.ico b/examples/quick/window/resources/icon.ico
new file mode 100644
index 000000000..52af30a6c
--- /dev/null
+++ b/examples/quick/window/resources/icon.ico
Binary files differ
diff --git a/examples/quick/window/resources/icon.svg b/examples/quick/window/resources/icon.svg
new file mode 100644
index 000000000..0b6153206
--- /dev/null
+++ b/examples/quick/window/resources/icon.svg
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="128"
+ height="128"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.48.2 r9819"
+ version="1.0"
+ sodipodi:docname="icon.svg"
+ inkscape:export-filename="/Users/rutledge/dev/qt5-stable/qtdeclarative/examples/quick/window/window/icon80.png"
+ inkscape:export-xdpi="61.509998"
+ inkscape:export-ydpi="61.509998"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient4009">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop4011" />
+ <stop
+ id="stop4019"
+ offset="0.875"
+ style="stop-color:#ffffff;stop-opacity:0.49803922;" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop4013" />
+ </linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 186.64798 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="559.62469 : 186.64798 : 1"
+ inkscape:persp3d-origin="279.81235 : 124.43199 : 1"
+ id="perspective4876" />
+ <inkscape:perspective
+ id="perspective2836"
+ inkscape:persp3d-origin="22 : 14.666667 : 1"
+ inkscape:vp_z="44 : 22 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 22 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <filter
+ inkscape:collect="always"
+ id="filter4063"
+ x="-0.195491"
+ width="1.390982"
+ y="-0.16235915"
+ height="1.3247183">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="3.3077485"
+ id="feGaussianBlur4065" />
+ </filter>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10"
+ guidetolerance="10"
+ objecttolerance="10000"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="2.9775825"
+ inkscape:cx="62.656189"
+ inkscape:cy="42.423381"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ inkscape:window-width="1280"
+ inkscape:window-height="744"
+ inkscape:window-x="2003"
+ inkscape:window-y="156"
+ showgrid="true"
+ borderlayer="true"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:snap-global="false"
+ inkscape:window-maximized="0">
+ <inkscape:grid
+ type="xygrid"
+ id="grid7194"
+ visible="true"
+ enabled="true"
+ spacingx="8px"
+ spacingy="8px" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-66.38047,-391.3222)">
+ <path
+ id="path7304"
+ d="M 95.556318,434.65407 L 165.25811,434.65407 L 165.25811,490.10429 L 95.556318,490.10429 L 95.556318,434.65407 z"
+ style="fill:#01afaf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:5.24121141000000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ style="fill:#a7c706;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 96.869177,465.30846 c 27.677903,3.04574 41.155393,12.11589 48.000003,24 l -48.000003,0 0,-24 z"
+ id="path7300"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path7302"
+ d="M 165.46767,465.22201 C 137.78977,468.26775 124.31228,477.33791 117.46767,489.22201 L 165.46767,489.22201 L 165.46767,465.22201 z"
+ style="fill:#966406;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;fill-opacity:1" />
+ <path
+ style="fill:#80ffff;fill-rule:evenodd;stroke:#000000;stroke-width:5.24121141000000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;opacity:1;fill-opacity:1"
+ d="M 95.532809,434.35736 L 74.567964,420.38079 L 74.567964,497.25189 L 95.532809,490.26361 L 95.532809,434.35736 z"
+ id="path7270"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:#00ffff;fill-rule:evenodd;stroke:#000000;stroke-width:5.24121141;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 74.567964,455.3222 L 95.532809,462.31048"
+ id="path7272"
+ sodipodi:nodetypes="cc" />
+ <g
+ style="fill:#80ffff;fill-opacity:1"
+ id="g7278"
+ transform="matrix(-0.8735352,0,0,0.8735352,244.36615,64.570513)">
+ <path
+ style="fill:#80ffff;fill-rule:evenodd;stroke:#000000;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
+ d="M 24,32 L 0,16 L 0,104 L 24,96 L 24,32 z"
+ id="path7280"
+ transform="translate(66.38047,391.3222)" />
+ <path
+ style="fill:#80ffff;fill-rule:evenodd;stroke:#000000;stroke-width:6;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
+ d="M 0,56 L 24,64"
+ id="path7282"
+ transform="translate(66.38047,391.3222)"
+ sodipodi:nodetypes="cc" />
+ </g>
+ <path
+ style="fill:#ffffff;fill-opacity:1;filter:url(#filter4063)"
+ d="m 119.74679,437.94232 c -0.0487,0.003 -0.0932,0.0315 -0.14149,0.0354 -0.1659,0.0132 -0.33372,0.008 -0.49523,0.0354 -0.96156,0.0643 -1.9037,0.14607 -2.86523,0.21224 -2.94807,0.23566 -5.19987,2.66253 -5.19987,6.01345 l 0,39.51194 3.32508,3.07747 0,-0.0354 33.2155,-5.58898 c 2.28673,-0.39587 4.06792,-3.06727 4.06792,-5.97808 l 0,-32.18967 -30.5625,-5.023 c -0.45263,-0.0748 -0.91269,-0.0942 -1.34418,-0.0708 z"
+ id="path3987"
+ inkscape:connector-curvature="0" />
+ <g
+ id="g3"
+ transform="matrix(0.20572087,0,0,0.20572087,113.4162,440.80626)">
+ <path
+ sodipodi:nodetypes="cccccccc"
+ id="path5"
+ style="fill:#006225"
+ d="M 43.09,0.3586 C 40.94,0.0036 38.84,-0.0824 36.81,0.0776 31.968136,0.39505671 27.122677,0.73638425 22.28,1.0696 9.62,2.0816 0,12.4996 0,26.8896 l 0,169.7 14.19,13.2 28.87,-209.42 0.03,-0.011 z"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path7"
+ style="fill:#80c342"
+ d="m 174.4,160 c 0,12.5 -7.75,24.07 -17.57,25.77 L 14.23,209.73 V 25.93 C 14.23,9.21 27.57,-2.27 43.12,0.3 l 131.3,21.52 v 138.2 z"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path11"
+ style="fill:#006225"
+ d="m 154.9,80.96 -12.96,-0.598 0,0.278 6.945,0.32 6.016,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path13"
+ style="fill:#006225"
+ d="m 144.6,135.6 c 0.66,0.328 1.43,0.476 2.351,0.476 0.161,0 0.329,-0.004 0.497,-0.016 2.55,-0.148 5.32,-0.933 8.343,-2.308 h -6.015 c -1.821,0.832 -3.532,1.457 -5.176,1.848 z"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 91.15,132.4 c 2.351,-6.051 3.511,-17.91 3.511,-35.62 0,-15.89 -1.148,-26.82 -3.484,-32.81 -2.336,-6.027 -5.832,-9.281 -10.52,-9.691 -0.359,-0.031 -0.714,-0.051 -1.058,-0.051 -4.34,0 -7.68,2.535 -10.01,7.625 -2.52,5.543 -3.793,17.04 -3.793,34.44 0,16.82 1.238,28.75 3.734,35.75 2.356,6.672 5.879,9.976 10.5,9.976 0.207,0 0.41,-0.008 0.621,-0.019 4.633,-0.293 8.121,-3.496 10.49,-9.602 m 17.98,3.75 c -4.117,9.707 -10.39,16.06 -18.99,19 0.867,4.449 2.176,7.441 3.922,9.019 1.351,1.211 3.433,1.821 6.222,1.821 0.805,0 1.668,-0.055 2.59,-0.157 v 13.12 l -5.961,0.782 c -1.758,0.23 -3.426,0.343 -5.004,0.343 -5.218,0 -9.445,-1.265 -12.62,-3.824 -4.207,-3.379 -7.308,-9.894 -9.297,-19.54 -9.136,-1.945 -16.26,-7.754 -21.19,-17.5 -5.004,-9.902 -7.551,-24.39 -7.551,-43.34 0,-20.43 3.484,-35.51 10.34,-45.07 5.789,-8.07 13.86,-12.04 24.02,-12.04 1.629,0 3.309,0.102 5.043,0.305 11.95,1.375 20.62,7.016 26.26,16.79 5.535,9.562 8.254,23.27 8.254,41.26 0,16.48 -2,29.45 -6.043,39.02 z M 130.4,45.91 l 11.52,1.238 0,20.21 12.96,0.914 0,12.68 -12.96,-0.598 0,46.33 c 0,4.032 0.445,6.625 1.34,7.789 0.8,1.067 2.046,1.594 3.71,1.594 0.161,0 0.329,-0.004 0.497,-0.016 2.55,-0.148 5.32,-0.933 8.343,-2.308 v 11.65 c -5.136,2.258 -10.18,3.598 -15.12,4.02 -0.718,0.055 -1.41,0.086 -2.078,0.086 -4.48,0 -7.906,-1.301 -10.25,-3.934 -2.73,-3.051 -4.09,-7.949 -4.09,-14.67 V 79.535 L 118.046,79.25 V 65.66 l 7.586,0.547 4.773,-20.3 z"
+ style="fill:#ffffff"
+ id="path17"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path19"
+ style="fill:#006225"
+ d="m 100.3,166 c 0.809,0 1.672,-0.055 2.59,-0.157 H 98.054 C 98.73,165.949 99.507,166 100.3,166 z"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 84.85,63.98 c 2.336,5.997 3.484,16.92 3.484,32.81 0,17.7 -1.16,29.57 -3.512,35.62 -1.894,4.879 -4.527,7.902 -7.863,9.07 0.965,0.368 1.992,0.551 3.078,0.551 0.207,0 0.41,-0.008 0.621,-0.019 4.633,-0.293 8.121,-3.496 10.49,-9.602 2.351,-6.051 3.511,-17.91 3.511,-35.62 0,-15.89 -1.148,-26.82 -3.484,-32.81 -2.336,-6.027 -5.832,-9.281 -10.52,-9.691 -0.359,-0.031 -0.714,-0.051 -1.058,-0.051 -1.09,0 -2.117,0.16 -3.082,0.481 h -0.004 c 3.601,1.121 6.379,4.215 8.336,9.261 z m -2.344,114.3 c -0.113,-0.05 -0.227,-0.105 -0.336,-0.16 -0.012,-0.004 -0.023,-0.012 -0.035,-0.015 -0.102,-0.051 -0.207,-0.106 -0.309,-0.157 -0.019,-0.011 -0.039,-0.019 -0.058,-0.031 -0.09,-0.051 -0.184,-0.098 -0.278,-0.148 -0.027,-0.016 -0.054,-0.036 -0.086,-0.051 -0.082,-0.043 -0.164,-0.09 -0.242,-0.137 -0.039,-0.023 -0.078,-0.047 -0.113,-0.07 -0.07,-0.039 -0.145,-0.082 -0.215,-0.125 -0.047,-0.031 -0.094,-0.059 -0.14,-0.09 -0.059,-0.039 -0.118,-0.074 -0.176,-0.113 -0.059,-0.039 -0.114,-0.075 -0.168,-0.114 -0.051,-0.031 -0.102,-0.066 -0.149,-0.097 -0.066,-0.047 -0.132,-0.094 -0.195,-0.137 -0.039,-0.027 -0.078,-0.055 -0.113,-0.082 -0.078,-0.055 -0.153,-0.113 -0.231,-0.172 -0.023,-0.016 -0.05,-0.035 -0.078,-0.055 -0.098,-0.078 -0.199,-0.156 -0.297,-0.234 -4.207,-3.379 -7.308,-9.894 -9.297,-19.54 -9.136,-1.945 -16.26,-7.754 -21.19,-17.5 -5.004,-9.902 -7.551,-24.39 -7.551,-43.34 0,-20.43 3.484,-35.51 10.34,-45.07 5.789,-8.07 13.86,-12.04 24.02,-12.04 h -6.351 c -10.15,0.008 -18.22,3.977 -24,12.04 -6.855,9.563 -10.34,24.64 -10.34,45.07 0,18.95 2.547,33.44 7.551,43.34 4.934,9.75 12.05,15.56 21.19,17.5 1.989,9.641 5.09,16.16 9.297,19.54 3.176,2.559 7.403,3.824 12.62,3.824 0.098,0 0.199,0 0.297,-0.004 h 5.539 c -3.406,-0.05 -6.383,-0.66 -8.906,-1.828 L 82.498,178.28 z M 128.4,145.6 c -2.73,-3.051 -4.09,-7.949 -4.09,-14.67 V 79.57 l -6.226,-0.285 v -13.59 h -6.016 v 3.035 c 0.871,3.273 1.555,6.82 2.063,10.64 l 4.164,0.192 v 51.36 c 0,6.723 1.367,11.62 4.09,14.67 2.343,2.633 5.765,3.934 10.25,3.934 h 6.015 c -4.48,0 -7.906,-1.301 -10.25,-3.934 z m 2.043,-99.66 -6.016,0 -4.668,19.88 5.911,0.422 4.773,-20.3 z"
+ style="fill:#006225"
+ id="path21"
+ inkscape:connector-curvature="0" />
+ </g>
+ <path
+ style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:5.24121141;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 96.506224,434.65407 L 166.20801,434.65407 L 166.20801,490.10429 L 96.506224,490.10429 L 96.506224,434.65407 z"
+ id="rect7265" />
+ </g>
+</svg>
diff --git a/examples/quick/window/resources/icon64.png b/examples/quick/window/resources/icon64.png
new file mode 100644
index 000000000..0fa324401
--- /dev/null
+++ b/examples/quick/window/resources/icon64.png
Binary files differ
diff --git a/examples/quick/window/window.pyproject b/examples/quick/window/window.pyproject
new file mode 100644
index 000000000..d3375e95b
--- /dev/null
+++ b/examples/quick/window/window.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["main.py", "window.qml", "window.qrc", "Splash.qml", "AllScreens.qml", "CurrentScreen.qml"]
+}
diff --git a/examples/quick/window/window.qml b/examples/quick/window/window.qml
new file mode 100644
index 000000000..47cc5257b
--- /dev/null
+++ b/examples/quick/window/window.qml
@@ -0,0 +1,151 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+QtObject {
+ id: root
+ property real defaultSpacing: 10
+ property SystemPalette palette: SystemPalette { }
+
+ property var controlWindow: Window {
+ width: col.implicitWidth + root.defaultSpacing * 2
+ height: col.implicitHeight + root.defaultSpacing * 2
+ color: root.palette.window
+ title: "Control Window"
+ Column {
+ id: col
+ anchors.fill: parent
+ anchors.margins: root.defaultSpacing
+ spacing: root.defaultSpacing
+ property real cellWidth: col.width / 3 - spacing
+ Label { text: "Control the second window:" }
+ Grid {
+ id: grid
+ columns: 3
+ spacing: root.defaultSpacing
+ width: parent.width
+ Button {
+ id: showButton
+ width: col.cellWidth
+ text: root.testWindow.visible ? "Hide" : "Show"
+ onClicked: root.testWindow.visible = !root.testWindow.visible
+ }
+ //! [windowedCheckbox]
+ CheckBox {
+ text: "Windowed"
+ height: showButton.height
+ width: col.cellWidth
+ Binding on checked { value: root.testWindow.visibility === Window.Windowed }
+ onClicked: root.testWindow.visibility = Window.Windowed
+ }
+ //! [windowedCheckbox]
+ CheckBox {
+ height: showButton.height
+ width: col.cellWidth
+ text: "Full Screen"
+ Binding on checked { value: root.testWindow.visibility === Window.FullScreen }
+ onClicked: root.testWindow.visibility = Window.FullScreen
+ }
+ Button {
+ id: autoButton
+ width: col.cellWidth
+ text: "Automatic"
+ onClicked: root.testWindow.visibility = Window.AutomaticVisibility
+ }
+ CheckBox {
+ height: autoButton.height
+ text: "Minimized"
+ Binding on checked { value: root.testWindow.visibility === Window.Minimized }
+ onClicked: root.testWindow.visibility = Window.Minimized
+ }
+ CheckBox {
+ height: autoButton.height
+ text: "Maximized"
+ Binding on checked { value: root.testWindow.visibility === Window.Maximized }
+ onClicked: root.testWindow.visibility = Window.Maximized
+ }
+ }
+ function visibilityToString(v) {
+ switch (v) {
+ case Window.Windowed:
+ return "windowed";
+ case Window.Minimized:
+ return "minimized";
+ case Window.Maximized:
+ return "maximized";
+ case Window.FullScreen:
+ return "fullscreen";
+ case Window.AutomaticVisibility:
+ return "automatic";
+ case Window.Hidden:
+ return "hidden";
+ }
+ return "unknown";
+ }
+ Label {
+ id: visibilityLabel
+ text: "second window is " + (root.testWindow.visible ? "visible" : "invisible") +
+ " and has visibility " + parent.visibilityToString(root.testWindow.visibility)
+ }
+ Rectangle {
+ color: root.palette.text
+ width: parent.width
+ height: 1
+ }
+ CurrentScreen { }
+ Rectangle {
+ color: root.palette.text
+ width: parent.width
+ height: 1
+ }
+ AllScreens { width: parent.width }
+ }
+ }
+
+ property var testWindow: Window {
+ width: 320
+ height: 240
+ color: "#215400"
+ title: "Test Window with color " + color
+ flags: Qt.Window | Qt.WindowFullscreenButtonHint
+ Rectangle {
+ anchors.fill: parent
+ anchors.margins: root.defaultSpacing
+ Label {
+ anchors.centerIn: parent
+ text: "Second Window"
+ }
+ MouseArea {
+ anchors.fill: parent
+ onClicked: root.testWindow.color = "#e0c31e"
+ }
+ Button {
+ anchors.right: parent.right
+ anchors.top: parent.top
+ anchors.margins: root.defaultSpacing
+ text: root.testWindow.visibility === Window.FullScreen ? "exit fullscreen" : "go fullscreen"
+ width: 150
+ onClicked: {
+ if (root.testWindow.visibility === Window.FullScreen)
+ root.testWindow.visibility = Window.AutomaticVisibility
+ else
+ root.testWindow.visibility = Window.FullScreen
+ }
+ }
+ Button {
+ anchors.left: parent.left
+ anchors.top: parent.top
+ anchors.margins: root.defaultSpacing
+ text: "X"
+ width: 30
+ onClicked: root.testWindow.close()
+ }
+ }
+ }
+
+ property var splashWindow: Splash {
+ onTimeout: root.controlWindow.visible = true
+ }
+}
diff --git a/examples/quick/window/window.qrc b/examples/quick/window/window.qrc
new file mode 100644
index 000000000..89d1de1b1
--- /dev/null
+++ b/examples/quick/window/window.qrc
@@ -0,0 +1,8 @@
+<RCC>
+ <qresource prefix="/window">
+ <file>window.qml</file>
+ <file>Splash.qml</file>
+ <file>CurrentScreen.qml</file>
+ <file>AllScreens.qml</file>
+ </qresource>
+</RCC>
diff --git a/examples/quick3d/customgeometry/customgeometry.pyproject b/examples/quick3d/customgeometry/customgeometry.pyproject
new file mode 100644
index 000000000..3e31ac931
--- /dev/null
+++ b/examples/quick3d/customgeometry/customgeometry.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["examplepoint.py", "exampletriangle.py", "main.py", "main.qml", "resources.qrc"]
+}
diff --git a/examples/quick3d/customgeometry/doc/customgeometry-example.jpg b/examples/quick3d/customgeometry/doc/customgeometry-example.jpg
new file mode 100644
index 000000000..8f443c3e9
--- /dev/null
+++ b/examples/quick3d/customgeometry/doc/customgeometry-example.jpg
Binary files differ
diff --git a/examples/quick3d/customgeometry/doc/customgeometry.rst b/examples/quick3d/customgeometry/doc/customgeometry.rst
new file mode 100644
index 000000000..32a18a5fe
--- /dev/null
+++ b/examples/quick3d/customgeometry/doc/customgeometry.rst
@@ -0,0 +1,17 @@
+Custom Geometry Example
+=======================
+
+This example makes use of QQuick3DGeometry and the geometry property
+of Model to render a mesh with vertex, normal, and
+texture coordinates specified from Python instead of a pre-baked asset.
+
+In addition, the GridGeometry is also demonstrated. GridGeometry is a
+built-in QQuick3DGeometry implementation that provides a mesh with line
+primitives suitable for displaying a grid.
+
+The focus on this example will be on the code that provides the custom
+geometry.
+
+.. image:: customgeometry-example.jpg
+ :width: 400
+ :alt: QtQuick3D Custom Geometry Screenshot
diff --git a/examples/quick3d/customgeometry/examplepoint.py b/examples/quick3d/customgeometry/examplepoint.py
new file mode 100644
index 000000000..0360806ae
--- /dev/null
+++ b/examples/quick3d/customgeometry/examplepoint.py
@@ -0,0 +1,51 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import random
+
+import numpy as np
+from PySide6.QtGui import QVector3D
+from PySide6.QtQml import QmlElement
+from PySide6.QtQuick3D import QQuick3DGeometry
+
+QML_IMPORT_NAME = "ExamplePointGeometry"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class ExamplePointGeometry(QQuick3DGeometry):
+ def __init__(self, parent=None):
+ QQuick3DGeometry.__init__(self, parent)
+ self.updateData()
+
+ def updateData(self):
+ self.clear()
+
+ # We use numpy arrays to handle the vertex data,
+ # but still we need to consider the 'sizeof(float)'
+ # from C to set the Stride, and Attributes for the
+ # underlying Qt methods
+ FLOAT_SIZE = 4
+ NUM_POINTS = 2000
+ stride = 3
+
+ vertexData = np.zeros(NUM_POINTS * stride, dtype=np.float32)
+
+ p = 0
+ for i in range(NUM_POINTS):
+ vertexData[p] = random.uniform(-5.0, +5.0)
+ p += 1
+ vertexData[p] = random.uniform(-5.0, +5.0)
+ p += 1
+ vertexData[p] = 0.0
+ p += 1
+
+ self.setVertexData(vertexData.tobytes())
+ self.setStride(stride * FLOAT_SIZE)
+ self.setBounds(QVector3D(-5.0, -5.0, 0.0), QVector3D(+5.0, +5.0, 0.0))
+
+ self.setPrimitiveType(QQuick3DGeometry.PrimitiveType.Points)
+
+ self.addAttribute(
+ QQuick3DGeometry.Attribute.PositionSemantic, 0, QQuick3DGeometry.Attribute.F32Type
+ )
diff --git a/examples/quick3d/customgeometry/exampletriangle.py b/examples/quick3d/customgeometry/exampletriangle.py
new file mode 100644
index 000000000..854430c46
--- /dev/null
+++ b/examples/quick3d/customgeometry/exampletriangle.py
@@ -0,0 +1,188 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import numpy as np
+from PySide6.QtCore import Property, Signal
+from PySide6.QtGui import QVector3D
+from PySide6.QtQml import QmlElement
+from PySide6.QtQuick3D import QQuick3DGeometry
+
+QML_IMPORT_NAME = "ExampleTriangleGeometry"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class ExampleTriangleGeometry(QQuick3DGeometry):
+
+ normalsChanged = Signal()
+ normalXYChanged = Signal()
+ uvChanged = Signal()
+ uvAdjustChanged = Signal()
+
+ def __init__(self, parent=None):
+ QQuick3DGeometry.__init__(self, parent)
+ self._hasNormals = False
+ self._normalXY = 0.0
+ self._hasUV = False
+ self._uvAdjust = 0.0
+
+ self.updateData()
+
+ @Property(bool, notify=normalsChanged)
+ def normals(self):
+ return self._hasNormals
+
+ @normals.setter
+ def normals(self, enable):
+ if self._hasNormals == enable:
+ return
+
+ self._hasNormals = enable
+ self.normalsChanged.emit()
+ self.updateData()
+ self.update()
+
+ @Property(float, notify=normalXYChanged)
+ def normalXY(self):
+ return self._normalXY
+
+ @normalXY.setter
+ def normalXY(self, xy):
+ if self._normalXY == xy:
+ return
+
+ self._normalXY = xy
+ self.normalXYChanged.emit()
+ self.updateData()
+ self.update()
+
+ @Property(bool, notify=uvChanged)
+ def uv(self):
+ return self._hasUV
+
+ @uv.setter
+ def uv(self, enable):
+ if self._hasUV == enable:
+ return
+
+ self._hasUV = enable
+ self.uvChanged.emit()
+ self.updateData()
+ self.update()
+
+ @Property(float, notify=uvAdjustChanged)
+ def uvAdjust(self):
+ return self._uvAdjust
+
+ @uvAdjust.setter
+ def uvAdjust(self, f):
+ if self._uvAdjust == f:
+ return
+
+ self._uvAdjust = f
+ self.uvAdjustChanged.emit()
+ self.updateData()
+ self.update()
+
+ def updateData(self):
+ self.clear()
+
+ stride = 3
+ if self._hasNormals:
+ stride += 3
+ if self._hasUV:
+ stride += 2
+
+ # We use numpy arrays to handle the vertex data,
+ # but still we need to consider the 'sizeof(float)'
+ # from C to set the Stride, and Attributes for the
+ # underlying Qt methods
+ FLOAT_SIZE = 4
+ vertexData = np.zeros(3 * stride, dtype=np.float32)
+
+ # a triangle, front face = counter-clockwise
+ p = 0
+ vertexData[p] = -1.0
+ p += 1
+ vertexData[p] = -1.0
+ p += 1
+ vertexData[p] = 0.0
+ p += 1
+
+ if self._hasNormals:
+ vertexData[p] = self._normalXY
+ p += 1
+ vertexData[p] = self._normalXY
+ p += 1
+ vertexData[p] = 1.0
+ p += 1
+
+ if self._hasUV:
+ vertexData[p] = 0.0 + self._uvAdjust
+ p += 1
+ vertexData[p] = 0.0 + self._uvAdjust
+ p += 1
+
+ vertexData[p] = 1.0
+ p += 1
+ vertexData[p] = -1.0
+ p += 1
+ vertexData[p] = 0.0
+ p += 1
+
+ if self._hasNormals:
+ vertexData[p] = self._normalXY
+ p += 1
+ vertexData[p] = self._normalXY
+ p += 1
+ vertexData[p] = 1.0
+ p += 1
+
+ if self._hasUV:
+ vertexData[p] = 1.0 - self._uvAdjust
+ p += 1
+ vertexData[p] = 0.0 + self._uvAdjust
+ p += 1
+
+ vertexData[p] = 0.0
+ p += 1
+ vertexData[p] = 1.0
+ p += 1
+ vertexData[p] = 0.0
+ p += 1
+
+ if self._hasNormals:
+ vertexData[p] = self._normalXY
+ p += 1
+ vertexData[p] = self._normalXY
+ p += 1
+ vertexData[p] = 1.0
+ p += 1
+
+ if self._hasUV:
+ vertexData[p] = 1.0 - self._uvAdjust
+ p += 1
+ vertexData[p] = 1.0 - self._uvAdjust
+ p += 1
+
+ self.setVertexData(vertexData.tobytes())
+ self.setStride(stride * FLOAT_SIZE)
+ self.setBounds(QVector3D(-1.0, -1.0, 0.0), QVector3D(+1.0, +1.0, 0.0))
+ self.setPrimitiveType(QQuick3DGeometry.PrimitiveType.Triangles)
+ self.addAttribute(
+ QQuick3DGeometry.Attribute.PositionSemantic, 0, QQuick3DGeometry.Attribute.F32Type
+ )
+
+ if self._hasNormals:
+ self.addAttribute(
+ QQuick3DGeometry.Attribute.NormalSemantic,
+ 3 * FLOAT_SIZE,
+ QQuick3DGeometry.Attribute.F32Type,
+ )
+
+ if self._hasUV:
+ self.addAttribute(
+ QQuick3DGeometry.Attribute.TexCoordSemantic,
+ 6 * FLOAT_SIZE if self._hasNormals else 3 * FLOAT_SIZE,
+ QQuick3DGeometry.Attribute.F32Type,
+ )
diff --git a/examples/quick3d/customgeometry/main.py b/examples/quick3d/customgeometry/main.py
new file mode 100644
index 000000000..148330d91
--- /dev/null
+++ b/examples/quick3d/customgeometry/main.py
@@ -0,0 +1,29 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+
+import os
+import sys
+
+from PySide6.QtCore import QUrl
+from PySide6.QtGui import QGuiApplication, QSurfaceFormat
+from PySide6.QtQml import QQmlApplicationEngine
+from PySide6.QtQuick3D import QQuick3D
+
+# Imports to trigger the resources and registration of QML elements
+import resources_rc # noqa: F401
+from examplepoint import ExamplePointGeometry # noqa: F401
+from exampletriangle import ExampleTriangleGeometry # noqa: F401
+
+if __name__ == "__main__":
+ os.environ["QT_QUICK_CONTROLS_STYLE"] = "Basic"
+ app = QGuiApplication(sys.argv)
+
+ QSurfaceFormat.setDefaultFormat(QQuick3D.idealSurfaceFormat())
+
+ engine = QQmlApplicationEngine()
+ engine.load(QUrl.fromLocalFile(":/main.qml"))
+ if not engine.rootObjects():
+ sys.exit(-1)
+
+ sys.exit(app.exec())
diff --git a/examples/quick3d/customgeometry/main.qml b/examples/quick3d/customgeometry/main.qml
new file mode 100644
index 000000000..45bb4462e
--- /dev/null
+++ b/examples/quick3d/customgeometry/main.qml
@@ -0,0 +1,240 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import QtQuick3D
+import QtQuick3D.Helpers
+import ExamplePointGeometry
+import ExampleTriangleGeometry
+
+
+Window {
+ id: window
+ width: 1280
+ height: 720
+ visible: true
+ color: "#848895"
+
+ View3D {
+ id: v3d
+ anchors.fill: parent
+ camera: camera
+
+ PerspectiveCamera {
+ id: camera
+ position: Qt.vector3d(0, 0, 600)
+ }
+
+ DirectionalLight {
+ position: Qt.vector3d(-500, 500, -100)
+ color: Qt.rgba(0.4, 0.2, 0.6, 1.0)
+ ambientColor: Qt.rgba(0.1, 0.1, 0.1, 1.0)
+ }
+
+ PointLight {
+ position: Qt.vector3d(0, 0, 100)
+ color: Qt.rgba(0.1, 1.0, 0.1, 1.0)
+ ambientColor: Qt.rgba(0.2, 0.2, 0.2, 1.0)
+ }
+
+ Model {
+ visible: radioGridGeom.checked
+ scale: Qt.vector3d(100, 100, 100)
+ geometry: GridGeometry {
+ id: grid
+ horizontalLines: 20
+ verticalLines: 20
+ }
+ materials: [
+ DefaultMaterial {
+ lineWidth: sliderLineWidth.value
+ }
+ ]
+ }
+
+ //! [model triangle]
+ Model {
+ visible: radioCustGeom.checked
+ scale: Qt.vector3d(100, 100, 100)
+ geometry: ExampleTriangleGeometry {
+ normals: cbNorm.checked
+ normalXY: sliderNorm.value
+ uv: cbUV.checked
+ uvAdjust: sliderUV.value
+ }
+ materials: [
+ DefaultMaterial {
+ Texture {
+ id: baseColorMap
+ source: "qt_logo_rect.png"
+ }
+ cullMode: DefaultMaterial.NoCulling
+ diffuseMap: cbTexture.checked ? baseColorMap : null
+ specularAmount: 0.5
+ }
+ ]
+ }
+ //! [model triangle]
+
+ Model {
+ visible: radioPointGeom.checked
+ scale: Qt.vector3d(100, 100, 100)
+ geometry: ExamplePointGeometry { }
+ materials: [
+ DefaultMaterial {
+ lighting: DefaultMaterial.NoLighting
+ cullMode: DefaultMaterial.NoCulling
+ diffuseColor: "yellow"
+ pointSize: sliderPointSize.value
+ }
+ ]
+ }
+ }
+
+ WasdController {
+ controlledObject: camera
+ }
+
+ ColumnLayout {
+ Label {
+ text: "Use WASD and mouse to navigate"
+ font.bold: true
+ }
+ ButtonGroup {
+ buttons: [ radioGridGeom, radioCustGeom, radioPointGeom ]
+ }
+ RadioButton {
+ id: radioGridGeom
+ text: "GridGeometry"
+ checked: true
+ focusPolicy: Qt.NoFocus
+ }
+ RadioButton {
+ id: radioCustGeom
+ text: "Custom geometry from application (triangle)"
+ checked: false
+ focusPolicy: Qt.NoFocus
+ }
+ RadioButton {
+ id: radioPointGeom
+ text: "Custom geometry from application (points)"
+ checked: false
+ focusPolicy: Qt.NoFocus
+ }
+ RowLayout {
+ visible: radioGridGeom.checked
+ ColumnLayout {
+ Button {
+ text: "More X cells"
+ onClicked: grid.verticalLines += 1
+ focusPolicy: Qt.NoFocus
+ }
+ Button {
+ text: "Fewer X cells"
+ onClicked: grid.verticalLines -= 1
+ focusPolicy: Qt.NoFocus
+ }
+ }
+ ColumnLayout {
+ Button {
+ text: "More Y cells"
+ onClicked: grid.horizontalLines += 1
+ focusPolicy: Qt.NoFocus
+ }
+ Button {
+ text: "Fewer Y cells"
+ onClicked: grid.horizontalLines -= 1
+ focusPolicy: Qt.NoFocus
+ }
+ }
+ }
+ RowLayout {
+ visible: radioGridGeom.checked
+ Label {
+ text: "Line width (if supported)"
+ }
+ Slider {
+ id: sliderLineWidth
+ from: 1.0
+ to: 10.0
+ stepSize: 0.5
+ value: 1.0
+ focusPolicy: Qt.NoFocus
+ }
+ }
+ RowLayout {
+ visible: radioCustGeom.checked
+ CheckBox {
+ id: cbNorm
+ text: "provide normals in geometry"
+ checked: false
+ focusPolicy: Qt.NoFocus
+ }
+ RowLayout {
+ Label {
+ text: "manual adjust"
+ }
+ Slider {
+ id: sliderNorm
+ from: 0.0
+ to: 1.0
+ stepSize: 0.01
+ value: 0.0
+ focusPolicy: Qt.NoFocus
+ }
+ }
+ }
+ RowLayout {
+ visible: radioCustGeom.checked
+ CheckBox {
+ id: cbTexture
+ text: "enable base color map"
+ checked: false
+ focusPolicy: Qt.NoFocus
+ }
+ CheckBox {
+ id: cbUV
+ text: "provide UV in geometry"
+ checked: false
+ focusPolicy: Qt.NoFocus
+ }
+ RowLayout {
+ Label {
+ text: "UV adjust"
+ }
+ Slider {
+ id: sliderUV
+ from: 0.0
+ to: 1.0
+ stepSize: 0.01
+ value: 0.0
+ focusPolicy: Qt.NoFocus
+ }
+ }
+ }
+ RowLayout {
+ visible: radioPointGeom.checked
+ ColumnLayout {
+ RowLayout {
+ Label {
+ text: "Point size (if supported)"
+ }
+ Slider {
+ id: sliderPointSize
+ from: 1.0
+ to: 16.0
+ stepSize: 1.0
+ value: 1.0
+ focusPolicy: Qt.NoFocus
+ }
+ }
+ }
+ }
+ TextArea {
+ id: infoText
+ readOnly: true
+ }
+ }
+}
diff --git a/examples/quick3d/customgeometry/qt_logo_rect.png b/examples/quick3d/customgeometry/qt_logo_rect.png
new file mode 100644
index 000000000..129b873d5
--- /dev/null
+++ b/examples/quick3d/customgeometry/qt_logo_rect.png
Binary files differ
diff --git a/examples/quick3d/customgeometry/resources.qrc b/examples/quick3d/customgeometry/resources.qrc
new file mode 100644
index 000000000..dc55e9ddd
--- /dev/null
+++ b/examples/quick3d/customgeometry/resources.qrc
@@ -0,0 +1,6 @@
+<RCC>
+ <qresource prefix="/">
+ <file>main.qml</file>
+ <file>qt_logo_rect.png</file>
+ </qresource>
+</RCC>
diff --git a/examples/quick3d/customgeometry/resources_rc.py b/examples/quick3d/customgeometry/resources_rc.py
new file mode 100644
index 000000000..1422353a3
--- /dev/null
+++ b/examples/quick3d/customgeometry/resources_rc.py
@@ -0,0 +1,585 @@
+# Resource object code (Python 3)
+# Created by: object code
+# Created by: The Resource Compiler for Qt version 6.2.2
+# WARNING! All changes made in this file will be lost!
+
+from PySide6 import QtCore
+
+qt_resource_data = b"\
+\x00\x00\x09C\
+\x00\
+\x00#\x9fx\x9c\xe5ZQs\xdaH\x12~\xe7W\xf4\
+\xf9\xf2`\xef\x11\x19;\x9b\x5c\x8e\xab\xab+\x01\xb2\xad\
+*,\x11I\xd8qmm\xa5\x844\xc0l\x84\x86\x95\
+F&l\xca\xff\xfd\xbaG\x12\x08\x108N\xec\xbd\xba\
+\xba)\x17\xa0\x99\x9e\xee\xaf\xbf\xee\xe9\x99Qr\xfa\xd3\
+3\xb6\x86\xfa\x83\xae\x98/\x13>\x99J8\xee\x9e\xc0\
+y\xeb\xfc\x0c\xbc)\x83\x0f\x12Gfs?^B_\
+\x86Z.\x19K?\x90m\x98J9O\xdb\xa7\xa7\x8b\
+\xc5B\xfb]j\x5c\x9cF<`q\xca\xe3\xc9i\xa1\
+\xd5\x9b\xf2\x14\xc6<b\x80\xdfs?\x91 \xc6 s\
+\xbdc\x91\xc0`)\xa7\x22\x06\xf6\xc5\x9f\xcd#\x96V\
+F=!\xa2\xcf\x5cj\x85\xa2W\x1f\xbcO\x1d\xe3\xd2\
+\xb4>\xf5\xcd\xaea\xb9F\xbb\xe3\xf6^\xe5pf3\
+\x96\x04\xdc\x8f\xa0\xaf\xcc3\x18\xa6\xfe\x84\xd1X\xd1\x81\
+\x8a\xa7\x22\x0a\x11\x17\xdc\xfb\x11\x0f!X\xcfAS9\
+j\x14\x9a\xf9K\xc8p\xbe\x5c\xa3\x8eI\x8d\x1f\x04\x22\
+\x09\xfd8`\xb0\xe0r\xaa VT\x14\xf3\xc1\x9f$\
+\x8c\xcdX,a\x9e\x88{\x1e\xb2p%NZ\x5c1\
+\x96\x0b?a \x92&\xf8\x91dI\xecK~\xcf\xa2\
+e\x13\xed\xd4\x1aA\x99Y\x8a\xa6\x90p\x1e\xa3\xba\x02\
+\x0e,\x12.%\x8b+\x16GL.\x18\xf6,E\x06\
+~\x1cn\xc5N\x83\x0b${\x15\x9d\x5c\xafR\x15\x13\
+\x19q\xc8%\x17q\x0aHUMT\x95\xf4\xeb\xb5X\
+\xaem\x9c%\x081!-<\xc6X\xce|\x1a,\xf8\
+c9\xe8@Ey\x06\xbe\xacQ[H\xbc\xce\xd22\
+\xc8\x18\xd2\xdd\x18\xea\x9bL\x91\x83\xbbq\xca\xe2\x90%\
+\x15\xca\x8a<\x22\x85Et\x94\xb7(-\xa2H,\xd2\
+va\xf1\xc8a!Oe\xc2G\x99BO|\x90f\
+\x8cG*\xb2\x04cA=#\x1e\xfb\xc9R\xb9\x926\
+\xf3\xe8 \x01\xf4-2Ijf\x22\xe4c\x1e(\x06\
+0\xb6\x18\xe39\xc2\xa0\x18\x85\xeb\x5c\x90S\xa4\x81P\
+\xe5\x18(\x0e\x15\xeaq\x92\xd2\xc4$a\x03\x80\x9f`\
+\x13\x9br\xaa\x00\x15\x88\x90\xc1,K%$\x8cRC\
+\xa9\xf5G\xe2\x9e\x86\x8au\x9ck\x01\x88\x85D\x06\x9a\
+9Y\x11*$=U\xc3q\xb8\x85\x0a\xad\x06\x91\xcf\
+1\xbd\xb5}P\xd0d\x85\x94\x12\x0a\xba\x1af\x01{\
+)4E\xfaS#\x91P\x04\x19\xe5\xbe_F\xee\x14\
+\x83\x22('1A0\x0dpi\xa6\xf5+\x91Z\xd5\
+\x9f\x95\x9b\x16\xe3j>\xa9\x8f\xfd\x19#p\xbbU\x10\
+\x9dX\x8b\xa8\xb0p\x99\x96z)\xab\x95^\x91\xe4\x05\
+e\xc4(\xa3\xd0+\x01,\x0e\xb1\x97\x0a\x00\xe1\x9a\x09\
+\xc9 \xa7L\xa6\x80\xf9\x8b\x19\x1e\x96j\xc68\x9e\x93\
+\x94\x96e\xa3\xc87H\xe7,\xa0l\xc3\xb9\x9c\xd2\xb0\
+\xa8\x05*\xe3\xd2\xb4p\xa7\xac\xbfW\xa6\x0b\xae}\xe1\
+\xdd\xea\x8e\x01\xf8{\xe0\xd87f\xcf\xe8A\xe7\x0e\x07\
+\x0d\xe8\xda\x83;\xc7\xbc\xbc\xf2\xe0\xca\xee\xf7\x0c\xc7\x05\
+\xdd\xeaa\xaf\xe59fg\xe8\xd9\x8e\xab\x96\x89\xee\xe2\
+\xe4#5\xa6[w`|\x1c8\x86\xeb\x82\xed\x80y\
+=\xe8\x9b\xa8\x0f\x0d8\xba\xe5\x99\x86\xdb\x04\xd3\xea\xf6\
+\x87=\xd3\xbal\x02\xea\x00\xcb\xf6T16\xafM\x0f\
+%=\xbb\xa9L\xef\xce\x04\xfb\x02\xae\x0d\xa7{\x85\x8f\
+z\xc7\xec\x9b\xde\x9d2yaz\x16\x99\xbb\xb0\x1dU\
+\x11`\xa0;\x9e\xd9\x1d\xf6u\x07\x06Cg`\xbb\x06\
+\x90\x7f=\xd3\xed\xf6u\xf3\xda\xe8i\x88\x01\xed\x82q\
+cX\x1e\xb8Wz\xbf\xbf\xe9.\xe9\xb1o-\xc3!\
+\x1f\xaa\xeeB\xc7@\xa4z\xa7o\x909\xe5m\xcft\
+\x8c\xaeGn\xad\x7fu\x91D\x04\xd9o\xaa\xca>0\
+\xba&\xfeF^\x0ctJw\xee\x9a\x85Z\xd7\xf80\
+D9\x1c\x84\x9e~\xad_\xa2\x8f\xc7\x8f\xb3\x83A\xea\
+\x0e\x1d\xe3\x9a\xb0#%\xee\xb0\xe3z\xa67\xf4\x0c\xb8\
+\xb4\xed\x9e\xa2\xdd5\x9c\x1b\xdc\x08\xdd\x7fB\xdfv\x15\
+qC\xd7P`z\xba\xa7+\xf3\xa8\x05\x89C\x09\xfc\
+\xdd\x19\xba\xa6\xa2\xd0\xb4<\xc3q\x86\x03\xcf\xb4\xad\x13\
+\x8c\xf9-2\x84Hu\x9c\xddS\x5c\xdb\x16\xf9\x9c\xe7\
+\x8ea;w\xa4\x9a\xf8P\xd1h\xc2\xed\x95\x81\xfd\x0e\
+\xd1\xabX\xd3\x89\x0e\x17\xd9\xebzU14\x89d*\
+\xc7\xd6\xfe\x82e\x5c\xf6\xcdK\xc3\xea\x1a$`\x93\xa2\
+[\xd35N0x\xa6K\x02\xa62\x8e\x19\x81f\x87\
+\xcaw\x0a\x1abS\xe1\xba\xd8L\xe7\xa6\x8a.\x98\x17\
+\xa0\xf7nL\xc2_\xc8c>\xb8f\x91>\x8a\xbe\xee\
+U\xc1\xbevT9N\x18V\xaf<L\xbc\xca\xbb\x9f\
+\xaf\x9d6\x1a|6\x17x\xde\xf9 ?d<\xf8\xbc\
+\xf5\xa8\xd1!*\x11Q\xba\xdd\xdf\xf7q\x83\x93\xdb\xdd\
+oz;\x1d\xda\x15\x8bp\xc9\xaf$\x8d\xfc\x085\x10\
+<\x96\x97L\xe0>\x92,\xb7\xc6<,\x89\xf1$b\
+\xab\xe1F\xe3\x96cIZ\xc0\xd7\x06\xd5\x1c\x1e\xb6\xb1\
+\xc8P\x87z\x5c\xf0PN\xdbpv\xfe\xbe\xa5\x9e\xa7\
+\x8c\x0ay\x1b\xfe~\x9e?\xdf\xf3\x94\x8f\x22\xd6\x06\x99\
+d\xac\x91\xd7\xbeH$m8\xfa\xeb\xfb\x9f\xdf\xbf\xff\
+\xc7\xdb\xa3\x86\xea\xbd\xe1l\xf1\xa6W\xd8(\xed\xdc\xbf\
+\x09W\xcfx\xe6\x99b]\xd4p'\x8f\xdatJ\xc4\
+\xa2\xbe\x1a\x0c\xb0\xc6&~\xbb\xf8n\xac\xfa\x07\xe8;\
+\x16B:\x16t\xd5P\xc5@i\xa4\x98S\xed\x9e\x8b\
+T\xed4mdR\xbb\xc7\xf9\x22y\x13\x1e\xb7\x9a\x80\
+\x7f\xefZ\xad\x93\x95\xf0\xc3\xdaT\x8f'dH\xc4~\
+\xd4W'\xe4\xaf\xdf\xa0\xf2\xf5\xdb\x16\xaaT\x1f\xaf\xcf\
+\xaa\x8a+D\xa1|2\x19\xf9\xc7-\xedg\x04\xa0\x9d\
+\xd3\xc7\xbb&\x9ci[\xe2\xfel\xc4\x91\x93\xee\xf6\xac\
+3\x9aP~l\xcc\xaa\xa0W\x19\xf1\xed\xb8s*\x1e\
+G\x9c[\xac\xb3}\x08\xf1\xf9\xca\xcf\xf3\xfd\x88\xaf\xf1\
+t\x13m\x81]%[\xe2\x87\x5c\x5c&<\xa4,\xd6\
+\x82)\x0b>\xb3pC4\x0d|\x12\xac:u\xd6\xca\
+}\xaaqlR,\x866\x94J\xe9i\xcb:5J\
+\xa8\x09\x8a\xec\x0c`\xee\xf2?\xe8,\x8b\xd9\x11\xb3\xb4\
+\x0d\xc5\xfa\xd8\x80\xcf\x12<\xf7\xec\x93x\xd8xZ\x1d\
+^\xda\xf0\xcb\x8e\xa2\x1e\x1b\xfbY$\xaf\x0b\x99\x1a\x9c\
+\xd4\x224s\x9b/\xdf\x14\xef;,\xe9\x97\x1d\x1a^\
+\x80\x8a\xd5\xba\x1f\xc1\xafuQ9=\xfd\x0b\xfc2S\
+\xa1\x91E!\xf9\xf5\x09!\xeb\xe2\x11\xf1\xd9C\xb6\xa7\
+\xb0\xd5\xb0\x12\xd3\x05\x85(\x0dF\x16\xfe\xacE\xb1\x96\
+\xfbxW\x12\xa7\x84\xeb9\xcb\xeeI\xdb\xf0f\xaf\xae\
+\xec^\x0f\x7fC\xb7K](\xba\xab\xe9\xd9c\xef\xb1\
+/2\xc3\xe3b\xfd(5\xca\xe4\x91\x9f2\xb5:\xaf\
+\xfd\xf9^\xc1\xfc\xb6\x81\x05\xfdw\xf9)\x12\x13\xf1\x89\
+\xea\xa06\x8f'G\xb5S\x1ej{\x83,\x8a(=\
+\xda\xdb\xf85\x0b\x93\x22\xc2T\x9d\xd4\xce\xc3\x1b\xd5\x18\
+\x0f\xce\x88\x8fh.\xbc*\xb9\x86\x7fox\x00m\x88\
+QU\xad\x1e\xda%\xb2\xc8O\xf4\x99\xc8b\x8cEK\
+{\xfb\x84\xf4/\x7f\xd5f\xff\x13\xd2\x7f\xb5/\xbfD\
+\xfeol\xfa\xf0\xf5%\xea\x09n\x1f\x18\xa8\xba\x18\xf6\
+\x8b\xb1\x97\x08~\xb1\x7f\x1c-\x19\xdd\x06\xeb\xb3nN\
+\xce\xbb\xfc\x0fV.\xb3A\xd9\xf1\xe4Z\x97\x7f\xaa\xaf\
+[?\x0d\x8b3Z\x84\x17\xc25-A\xd9\x19\xda\xa3\
+\xdf\x18\xbd\x06\xab\x9c2\x8a\xc9\x08;\x9b\xc5\xf9Q\xae\
+2\xb5\xef\x8fv\xb2Db^\xa3\x83C\xbc\x15\xde\xea\
+nO\xdd\x7f1Q\xe9\xe5\x86\xc0\xfb\xe5=\x9f a\
+\x9b\x8e\x8f\x11\x816\x12QX9ym\xfa\xd5\xc9\xa4\
+\x14\xf1e\x22\xb2\xf9\x96\xb9\x91\x1a\xa1L\xd8\xdcH\x9b\
+\x9bE\xba\xb9\x95\xb4\xb5K\xc2!\x91\xdcT\xcd\xd9k\
+C}\x9d\xcb\xd5\xedv\xd3\xc1b\x85l\xb9\x97\xbb\x1e\
+d\xe9@D<X\xaa\xd5b\x89\x0b\xea\xf9>p\xa5\
+\xb3u\xe0h\x0c\xdd.WZ~\x1d\xf7\xe7\xf3\xa8x\
+\xc9\x03\xc7e\x158\xd9\x83}\x8c\x0b\xee\x05\xc1\xafB\
+\xf3}\xe8\xd5\xa2I_\x04\xbbX\xec$>\xb5'\x1c\
+\xe0\xf6,\x9f\xb2\xd5\x12\xb3\xc5\xc0\xb5\xc0\x1d\xf0#\x04\
+X7\xd2\xfa\xb2!\xe2.z\xa3\xdc\xa5S\x9d\xb6q\
+B\x83\xbf\xfd\x0b\xcej\xa7=F\xc4.![\xb0\x0f\
+\xe3\xbe`\x0b\xac6?\x00\xfc\xf5\xf3\x02\x7fx\x91\xc0\
+\xdc=\xc5\xbf\xad\xe3\xf5\x7f94?\x04\xfd\xc5\x82\xf3\
+\xac\xcb\xafn\x9b\xaa\xf0@\xae\xe4\xef\x06\xe0\x98\x8f!\
+\xcd\xe6\xf4\x8e\x81\x85[\xc5d\x13\xaa\xabv\xe6=\xb7\
+\xaa\xad+\xca\x8e\x0c\x95\xaf6\xdd\x16w!\x09\xeco\
+\xd5\x0c\xa4\x92\xcd\xf33A\xddqO\x9d\x0b\xea5~\
+K$\xbe\x9f\xf7\x83\x97\xa0.\xf5u\xc4\x97=,\xe5\
+\x17\x97}Q)\xdes\x97\xf7\x1czA?\xa9\xdd\x5c\
+\xa9\x1d(\xf4O\xe7\xe0\x90\xf7\xd4\xf6\xa5S\x05\xfc\xcc\
+\x8f3<{\xfa\xea\xb6\xb4\x0bww\xc1\xeeM'j\
+\xeb\x94\xaa%Ly\xa82\xaa.q\x14*Q\x9f\x1b\
+\xd4\xaa\x89\xd5\xaa_\xccEv\xed\xd3\xfeg\xaf\xf5\x1f\
+\xcb\xb9\xe2\xde\xb5/\xedX\xec\xa3%u\x17\xcb_\x11\
+\xe1mc\xfe'$\xdc\xa3\xb8\x877\x8f\xad\x94\xe1\xcd\
+\xff\xd6\x22A\xbc\xcf\xbe@jXR\xbe\xfd\x1f-\x8f\
+\xc3\x17\xf3GN<\x87BJ\xedPX\xa9\x15\xa1U\
+\x18 E\xde\x0en\xa9\xf5\xae\x97\xed`\xc8\xa9\xad\xc3\
+\xbe\xba!\xef\x95\xdd\xbf\xe5\xae\xa0S\x16\xbc; \xb0\
+N\x85Cj\x0el\xc5+,\xdf\x98\x11\xd4v\xa9y\
+<O\xa8\xc4\xe9\x09\xab\xfb\x07\x04\xfa\x8f\x0d4\xbc1\
+\x80\xa2\xa1\x1dG\xcb\xda\xeb\xf7C\xe3\xa1\xf1\x1f\x04$\
+=\xda\
+\x00\x00\x18\xaf\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x01_\x00\x00\x01)\x08\x02\x00\x00\x00\xbb\xac\xb6\x0a\
+\x00\x00\x00\x01sRGB\x00\xae\xce\x1c\xe9\x00\x00\x00\
+\x04gAMA\x00\x00\xb1\x8f\x0b\xfca\x05\x00\x00\x00\
+\x09pHYs\x00\x00\x0e\xc3\x00\x00\x0e\xc3\x01\xc7o\
+\xa8d\x00\x00\x18DIDATx^\xed\x9d\xffk\
+\x14\xd7\xfa\xc7\xef\x7fT\xb8\x5c\x8a\x88\xc8m)Wi\
+S\x09%\x10h\xa9\xd4\x22\xc1\x82\x12\xb0\xa2\x1fR\xa4\
+\x85\x16,---T\x0a\xf9A\xa1\x22\x96\xa2PA\
+\xc1R\x11\x94\x16\xb1\xb9\xc1\xa61,!JZcX\
+B\x1aC\x88\x12\x97\xdc\xe0\xe7=\xf3\xec\x9eLf\x9f\
+]\x93\xcd\x99|\xf3\xf5\xf0b\x98\xcc\x9eo\x1b\xe6y\
+\xed9\xb3\xbb\xb3\xff\xf8w\xff\x1b\x00\x00\xf5`\x07\x00\
+\xf0\xc1\x0e\x00\xe0\x83\x1d\x00\xc0\x07;\x00\x80\x0fv\x00\
+\x00\x1f\xec\x00\x00>\xd8\x01\x00|\xb0\x03\x00\xf8`\x07\
+\x00\xf0\xc1\x0e\x00\xe0\x83\x1d\x00\xc0\x07;\x00\x80\x0fv\
+\x00\x00\x1f\xec\x00\x00>\xd8\x01\x00|\xb0\x03\x00\xf8`\
+\x07\x00\xf0\xc1\x0e\x00\xe0\x83\x1d\x00\xc0\x07;\x00\x80\x0f\
+v\x00\x00\x1f\xec\x00\x00>\xd8\x01\x00|\xb0\x03\x00\xf8\
+`\x07\x00\xf0\xc1\x0e\x00\xe0\x83\x1d\x00\xc0\x07;\x00\x80\
+\x0fv\x00\x00\x1f\xec\x00\x00>\xd8\x01\x00|\xb0\x03\x00\
+\xf8`\x07\x00\xf0\xc1\x0e\x00\xe0\x83\x1d\x00\xc0\x07;\x00\
+\x80\x0fv\x00\x00\x1f\xec\x00\x00>\xd8\x01\x00|\xb0\x03\
+\x00\xf8`\x07\x00\xf0\xc1\x0e\x00\xe0\x83\x1d\x00\xc0\x07;\
+\x00\x80\x0fv\x00\x00\x1f\xec\x00\x00>\xd8\x01\x00|\xb0\
+\x03\x00\xf8`\x07\x00\xf0\xc1\x0e\x00\xe0\x83\x1d\x00\xc0\x07\
+;\x00\x80\x0fv\x00\x00\x1f\xec\x00\x00>\xd8\x01\x00|\
+\xb0\x03\x00\xf8`\x07\x00\xf0\xc1\x0e\x00\xe0\x83\x1d\x00\xc0\
+\x07;\x00\x80\x0fv\x00\x00\x1f\xec\x00\x00>\xd8\x01\x00\
+|\xb0\x03\x00\xf8`\x07\x00\xf0\xc1\x0e\x00\xe0\x83\x1d\x00\
+\xc0\x07;\x00\x80\x0fv\x00\x00\x1f\xec\x00\x00>\xd8\x01\
+\x00|\xb0\x03\x00\xf8`\x07\x00\xf0\xc1\x0e\x00\xe0\x83\x1d\
+\x00\xc0\x07;\x00\x80\x0fv\x00\x00\x1f\xec\x00\x00>\xd8\
+\x01\x00|\xb0\x03\x00\xf8`\x07\x00\xf0\xc1\x0e\x00\xe0\x83\
+\x1d\x00\xc0\x07;\x00\x80\x0fv\x00\x00\x1f\xec\x00\x00>\
+\xd8\x01\x00|\xb0\x03\x00\xf8`\x07\x00\xf0\xc1\x0e\x00\xe0\
+\x83\x1d\x00\xc0\x07;\x00\x80\x0fv\x00\x00\x1f\xec\x00\x00\
+>\xd8a}i\xaf;\x02\xab\x81\xffgL\xb0\xc3:\
+\xc2\xa9\x1c\x1d\xfe\xa51\xc1\x0e\xebE\xf5<\xde\xd9\xb7\
+g{_\x1b\xac\x92\x1d}m\xb5\x7f)\x82\x88\x06v\
+X/\xda_\xee\x7fcG\xdf\x9e\xd7n\xbf\xb5o\xa8\
+{\xef\xd0Ah\x19\xfd\x03;\x07\xbb^\xee\xef@\x0d\
+q\xc1\x0e\xeb\x82\xa9\xa1\xad}\xe0\x9d\xdfg\xef<%\
+V\x1dw\x1f\x8fv\xfc\xf1\xael\xab\x7fl\xdd\x7f\x1b\
+Z\x04;\xac=\x8b\xb3\x86[3\xfd:\xb3\xe7\x9f\xce\
+/<]\x80\xd6\xa8,\xcc\xeb\x7f88[zc\x00\
+;D\x06;\xac1\x89\x1av\xf6\xed\xd9u\xbb\xf3\xc6\
+\xf4\xcdD\x0d\x0b\xff\xd3Vg\xb9\xb6D\x0ba\xff\xc0\
+\xa1\xd9a\xec\x10\x1d\xec\xb0fhI\x9c\xaa\xa1\xbf\xfd\
+\x95\xfe\x8e\x9f\xa7\xae\xdb\x99\x1d^\x03\xd3S\x9dXq\
+`\x87\xe2\xc0\x0ekFU\x0d\xda^\x9e\xbcj\xa7\xb5\
+I\x015\xac&\xb0Cq`\x87\xb5!\x91\x82M\x1f\
+.N^\xb1s:\xa8\x01;\xac&\xb0Cq`\x87\
+5\xa0\xfa6\xdb\xce\xbe=\xdf\x97\x7f\xd4\xa9\x1c\x8c\x80\
+\x1aV\x1f\xd8\xa18\xb0C\xd1T\xd5\xb0\xbd\xaf\xedl\
+\xf9\x82\xcec\xbc\x107\xb0Cq`\x87BI\xd4\xa0\
+\xf3u[\xdf\xab\xa7\xc6\xcf\xe9$\x0eR@\x0d\xb1\x02\
+;\x14\x07v(\x8eE5\x9c\x1c;\xad3\x185\x14\
+\x11\xd8\xa18\xb0CA\x045\xec\xfe\xea~\xaf\x9d\xc7\
+A\x0d\xd8!b`\x87\xe2\xc0\x0eE\xf1r\x7f\xc7\x8b\
+}\xbb\xbf\xf8\xeb[;\x89QCA\x81\x1d\x8a\x03;\
+\x14A\xbb\xd4\xf0\xaf[\xff91\xfau\x90\x82mQ\
+C\xf4\xc0\x0e\xc5\x81\x1d\xe2\xa2\x05EU\x0d\x1f\x8f~\
+YY\xa8\xe8\xc4\xcd\x0a\x82\x88\x1e\xd8\xa18\xb0CD\
+\xecZC\xa2\x86\x0f\xee}\xfaxaNgm\xa1j\
+P\xb3\xa1\xfd\x1c\xf35r\xc7\x85\x95O\x1b\xd8\x0a\x81\
+\x1d\x8a\x03;\xc4\xa2z\x19\xf2\xc5\xbe\xdd\xc7F>\x99\
+\x9d\x7f\x94\x9c\xb8\x85\xa5bHr\xa1\xf4\xb0\x0cYN\
+$\xe5\x95P\x19M\xd8\xce\xe6\x0d\xecP\x1c\xd8!\x0a\
+\x89\x1a\xc4\xf6\xbe\xb6\xee\xe1\xe3\xd3\xf33\xe1\xacU\xc4\
+M\xbf\x90\xd5\x89\x14\xe4\x9fZh\x15\xf3wejl\
+n\xfc\xee\xe3\xd1\xe1\xc7#\xca\x96\xc1\xd9\x92\xb6\xda\xd7\
+\x11\x1d\xd7\xa3s\x0bO\xaa\xa5\xd3\xe1\x89\xd0\x9a\x1d\xdc\
+\x8c\x81\x1d\x8a\x03;DcG_[\xe7`\x97\x920\
+9ekY\x171\xf1Bk\xda\x06\xf5LT&\x7f\
+\x9d\xfe\xedl\xf9\xc2\xc7\xa3_\x1e(\x1d\xed\x18\xdc\xaf\
+\xa5\x8d$\xa5\xd5\xcd?o\xbd\xa2\xed\xf6\xbeW\x950\
+\xca\x9c\xae\xd2\x91\x0f\xef}\xfe]\xf9\x87\x1b\xd37%\
+\x0b\xab\x9e\x15\x84\xed,3\xb2\xb5\x9a\x10J\x16\x17\xd8\
+\xa18\xb0C4\x94\x93\x87\x86{\xc2\xf9\x1a7+B\
+kaGS\x83\xaf\xee\xf7*\xe7w\xf6\xedy\xe1\xd6\
+KZ\xd1h\x00\xda\xd7H$\x88Wjh_Gv\
+\xf6\xb7\xebQ\x95\x912\xb4\xb3o\xa8\xfb\xb3?\xbf\xb1\
+{\xcf(B\x1a\x1bv\xf0\x99\xb1\x9c\x92\xcbo\xad\xe5\
+\xc0\x0e\xc5\x81\x1d\xa2\xa1\xac;8\xfc\x7f:SW\x94\
+c\xcb\x09k-4;\xfe\xa4\xac\x99\xc2\xeb\x03ok\
+j\xb0-\x9d\x1a\xec\xba\xdd\x99\x8a \xb9\xf0\x91\x1b\x95\
+a\x0f\x995lr!M\xa8\xd6\xb1\x91O\xb4\xf4\xc8\
+6n\xfb\xb6\xd3$\xac\x8c\xb6\xe5\xca\x84f\x22\x1aR\
+\x16[\xc8\x842i\x8d\xa2\x02;\x14\x07v\x88F\xb0\
+\x83\x9d\xaf\xb1\x22\x97c?M]W\x1aH\x0a\xca\x84\
+05\x08\x17>\x96A\xf5\xea\xa9\xeaj\xa2\xa1v^\
+\xbb\xfd\x96}sT\x11zyfJ[\x01=SM\
+C\xd4\x82T\x15h\x1fxG\x8d\xcb_\xd9wm\x8a\
+\x0b\xecP\x1c\xd8!\x1aE\xd8\xc1R+$\xd8\xd9\xf2\
+\x05\xf5b9PK\x83\xe5{!\x8f5\xa2E\x87\x1c\
+\xa1E\x8a\x0d;\xd7c\xa3\xb0\x02\xaa\x12T\x15\xd0\x90\
+41\xd1\xac\x04;lv\xb0C4\x8a\xb3\x835(\
+5(\x0f\x95\xcc\xb5\x1e\xeb\xbdP=bi\x1f\xc8=\
+\x9aa\xb1\xbc\x16)\xd9\x0f}/\xdf\x0e\x9d\x83]v\
+\xb1#\xa0\x89\xc3\x8b}\xbb{\xee\x9e\xc0\x0e\x9b\x1d\xec\
+\x10\x8d\xe8v\xa8f`\xfa\xb6\xe5\xb5\x87\xbf(\x99k\
+j\xf0\xf3<uA\xf5\x1a\xe4\x8e\xdao\xc0\x84\xeb\x94\
+\xb5\xb4q\xeb&\xb7\xae\x92zrw\xa0\xd0\xb6Q\x04\
+;t\x0c\xeeO\xe7\x0b\x8b\x0db\x87-\x03v\x88F\
+\x5c;\x84\xf4\xd3vln\x5c/\xd1j?M\xfel\
+z'\x89m\xfb\xe1]\x09\x95\xe9\xf8\xe3\xdd\xfd\xa5\xc3\
+\xdd\xc3\xc7\xb5U\xf6Z\xbano6\xef\xb0?\xdbw\
+\xdd\xee\x0c\x17)\xc3\xd6\x0d\xec\xf0<\x80\x1d\xa2Q\xc4\
+\xdc\xc1R\xeb\xab\xfb\xbd\x9a\xf9+\xeb\x96f\xb5\xf6\x93\
+?\xcd\x0b\xaf\x0f\xbc}b\xf4\xeb_\xa7\x7f\x1b\x7fR\
+\x9e\xa8LN\xcf\xcf\xcc\xce?\xd2V\xfb:\xd2?3\
+\xa0\x85C\xfb\xc0^\x9bM\xa4)\x94\x17\x84\x0e\xaa\x1d\
+9%t\xdd$\xb1\xed!\xec\xb0\xb5\xc1\x0e\xd1\x88h\
+\x07\xcbL\xfbH\xd5\xe0l\xc9\xbcP\x97\xd2U5h\
++}\xd8g\xb7\x9b\x87\xd2\xb5\xf7\xc1\x19M.jY\
+\x94\x13D\xd2\x9a\xfa\xd2*F\x85\x9b?\x0b\xec\xf0<\
+\x80\x1d\xa2\x11\xdd\x0e\xb6\xd3`\xe2\x90\xa0d\xd6\x94\xc1\
+~5\xc7\xc2*\xbaTK<}\xaayD\x9a\xd2\xf5\
+\xeb\x94\xe4\xf2\x84\x12\xfb\xd8\xc8'*\xa6g\x91\xab\x98\
+\x0d;\x8e\x1d\xb66\xd8!\x1aE\xd8\xa1\x5c\x99x\xed\
+\xf6[\xf5^HI.R\x86\xd7y\xabb\xb5lk\
+;\xe1\x88a\xd78%\x88]\xb7;\xebf\x10\xc9\xf4\
+D\x07e\x1c\x15P\xb1&O\xc4\x9a\xc5\x0e[\x1b\xec\
+\x10\x8d\x22\xecpe\xea\x9a2mi\x0e'\xfb:\xb2\
+\xadv\xbbJ\xeb.Ti\x14\xf6\xa8\xb6V\xfe\xbb\xf2\
+\x0f\xb6*\xc9\xa1\xdc\xd6T\xc5\xee\x91\x9b\xfd\x81O\xab\
+\x9b%)\xb0<;4\xc1\x0ah\xdbr`\x87\xe2\xc0\
+\x0e\xd1\x88k\x07\xdby\x7f\xe4\xa3\x5c\xee\x19J\xec\xf6\
+\x81w\xec\x1b_\xd9Lk\x1eV\xc6\xb6\x95\x85\xca\xde\
+\xa1\x83R\xccR\xf5\xc8;In\x87o\x9a\x86\x96\x1b\
+\xb5\xdf\xc4\x0ev\xf3\x9b\xe6\xd1\xa8\xd9\xe5\x07v(\x0e\
+\xec\x10\x8d\xe8v\x98\x9d\x7f\xa4\xf9\x7f\xdd+|r\xe1\
+P/\xef\xbd\x0f\xce\x84\xc2\xcb\xcf1+i\xeb\x0b\xb5\
+\x90~\x1abI\xfb&\x0b-g\x94oI\xc9\xf4\xb9\
+X-m\xe7\x16\x9ehF`h_#\xec\xf8\xe3\xdd\
+\xdc\xa7\xa1\xc2\xc5\x8b\x87\xf3\xd3\x12D(\x9fC\x0f\x85\
+f\xb5m9\xb0Cq`\x87hD\xb7\xc3\xaf\xd3\xbf\
+\xa5\xa9\x9b\x9f\xff+\x01\xa4\x8c\xc1\xd9\x92\x954\xd2z\
+\xcb\x8aP~ln\x5c\x16\xc8\xe5\xb6\x90}\xfey\xeb\
+\x15-jTF\xcf%\x94\x97\x0b\xbaJG:\x07\xbb\
+\xde\xbc\xf3^\xa0\xfe\xd2\xa6\xd0\xf0\xe4\xb5l\xb1,\x9a\
+\xb3(\x93\xbf\xf8\xeb[9\xc2\xc6\xa3m\xcb\x81\x1d\x8a\
+\x03;D#\x96\x1dB6\x9e\x1c;\x9dN\xdas\xaf\
+\xed\x1d\xdb\xfb^=4\xdc\xa3Wf+\x9cVZA\
+X\x15\xdb\x1e(\x1d\xdd\xd1\xd7\x96m_\xdd\xd9\xdc\xe4\
+\xab\xfb\xbd\xa1\xa4\xed\xc8\x0e\xb2\x89}\x9a[N1j\
+\xc3\xcb\x0e\xb2z$\x94\xc9\xa1G\xd5~\xac\xcb\x96\xd8\
+\xa18\xb0C4\x22\xce\x1d\xac\x05-\xfe\xd5\xe6\xd2^\
+\x92\xd4\xd5\x0b\xbb}'\xc2\xf2\xb6\x85\xec\x0a\xb5R\x01\
+\xe5\xbaH\xe6&\xeaW\xbd\xdbg(Ba\xfd\xf9\xfa\
+\xc0\xdb^\x06\xe6\xe7\x0e\xde\x91E\xf4\x14\xa4\x98\xdc\xad\
+7[\x0e\xecP\x1c\xd8!\x1aq\xe7\x0eB\x93\xf0:\
+;T\xa7\xfd\xe7'.\xa9\xa4\xbd\xa7`\xb5V\x14\xd6\
+\xbev\xae=\xfc\xa5\xd6\xc5b>+\xc14;P\xb2\
+\x95+\x13\xd9\xc25;\xe4\x87\xb4R\xec\xc2\x04v\xd8\
+\xf8`\x87hD\xb4\x83\xb6cs\xe3\xed\x03\xef\xe4R\
+1=\xf5\x93%\xbd\xdd\xd6\xa9\xe5\x8eB\xc2\x8f?)\
+\xa7\x8b\x97\xc5.\x0cK\xe0\xbb\x8fG\xb3\x85\xb1\xc3\xf3\
+\x06v\x88F,;\xd8\x07\xa8\xfbg\x06\xb4\xc8\xcf\xa5\
+\xaeN}%\xa7\xe6\x14\x96\xb7vC\xfa\xb4\xd2\x8a#\
+$\xbc\x1cT\xff\xb6\x88\x12\xf8_\xb7\xfec\x0e\xca\xda\
+\xc1\x0a\xeb\xd1\x80\x95_Z\xbdz$[,\x8b\xec\xb6\
+\xbd\xef\xd5\x0f\xef}\x8e\x1d68\xd8!\x1a\xd1\xec\x90\
+V\xbf<yU\x8b\x88\x5c\xde*\xb5\xb4b\xdf_:\
+<Q\x99T\x99\xd5\xe4\x95\xd5U~\xaa\xb5\xfa\xa4\xd2\
+\x9fzy\xbf8y\xc5J\x06;(\xb1e\x0d\x8d!\
+PSCv\x9c\xc9\xfe\xce\xf4\xc6S.\x12\xdc\x0b\xb7\
+^\x0a\xf7\xf5\xc7\x0e\x1b\x16\xec\x10\x8dxs\x87\xe4\xc3\
+\x08\xb5\xcf2\xe6\xed\xa0\xa4\xed\x1e>\xbe\xfaW]\xab\
+[Y\xa8(K5\xf2z;(\x8d\xb3\x1f\xa9\xd0V\
+\x9d\xbe?\xf2QW\xe9\xc8\x81\xd2\xd1\x80\x14\x96\x1b\xa4\
+\x90\x1a\xda\x07\xf6f\x8be\xd1\x7fi\xdfP\xb7\x1a\xb7\
+;\xe8c\x87\x0d\x0bv\x88F\x14;(U\xac\xfa\xc9\
+\xb1\xd3j0\xd7\x85RQ/\xdd\x9a\x93[\xc9\xd5\xe4\
+\x95\xd5\xd5\xf6\x8b\xbf\xbe\x95\x08\xe4\x9dlG\xca1M\
+\xfe\xf5P(f\xdb\xbf+S\x9a\xb6hkh_9\
+ioR\x064H)L\x83,W&r\xe5\x03:\
+8=?\x93m\xbc\xe5\xc0\x0e\xc5\x81\x1d\xa2\x11k\xee\
+PYH\xe6\x0e\x9f\xfd\xf9\xcd\xb6\xea7,\x02\xd5\xb7\
+3O\x8c~m\xc5V\x93W\xa1\xee\xa9\xf1sJf\
+\xcf\x0em\xca\xf0\x90\xc0\x8d\xfa\xea\x1c\xecRNf\xeb\
+\x9a\xc2l\x90\xcf\x8c\xd5<\x05\x0b\xecP\x1c\xd8!\x1a\
+\xb1\xe6\x0e\xf6\xf5\x84\x0f\xee}\xaa\x1c\xcb%\xad\xd9\xc1\
+>\xec\xb0\x9co14\x89\x90\x96g\xcb\x17\xea;2\
+;h\x1da\xcf\xc5\x0ak\x9bC\x86r\xbfgav\
+\xb0\xcfJ\xab\x85l\x95\x1c\xa1\xf1\x96\x03;\x14\x07v\
+\x88F<;$s\x87c#\x9f\xd4\x92vqUo\
+v\xf8\xea~\xaf\x0a\x84\xef)\xb4\x16!9\xbf/\xff\
+\xa8\x8e\xd4r\xe8\xc5P\xa6\xe9\xe9d\xed\x90\x0d;\xa2\
+G\x9b\xd8\xa1Q\xdd\xb8\x81\x1d\x8a\x03;D#\x96\x1d\
+\xec\xaa\xa4^\xb7\xbd\x97\xf4$\xf1\xec\x8b\xdb\xb1\xecp\
+q\xf2J#;\x1c(\x1d\xb5\x19J}Gv\x04;\
+lm\xb0C4\xa2\xd9!\xad\xde\xc0\x0e\xc9\x1b\x8d\xf6\
+V\xc2\xeaW\x16\x96\xb7\x97'\xaf6\xb2\xc3\xfe\xd2a\
+\xec\xf0<\x83\x1d\xa2\x11\xd7\x0e\xdd\xc3\xc7];l\xeb\
+{\xd5n\xcdb\x0b\x90\x96C\x1dY\xde\xfe4u]\
+\xab\x15\xd7\x0e\xfb\x86\xba\xb1\xc3\xf3\x0cv\x88\xc6\xda\xcc\
+\x1d\xd6\xd2\x0e\xcc\x1d\x9es\xb0C4\xd6\xcc\x0e\xb5\x95\
+E\x1c;\x5c\x99\xba\xd6\xc8\x0e\xe9u\x87\xa4\x97\xfa\x0c\
+\xb7#\xd8ak\x83\x1d\xa2\x11\xd7\x0e\xee{\x16\xfa3\
+{\xdda5\x89\xa7\xbaV\xbd\xf1u\x87\xb6C\xc3=\
+\x8d2\xdc\x8e\xe8Q\xec\xb0\x85\xc1\x0e\xd1\x88e\x07\x9b\
+\xcc\xf7\xdc=Q?wP\xe2e\xdf\xd1Lk\xb4\x18\
+\xea\xc8\xf2\xf6\xfc\xc4\xa5Fv\xe8\x1e>no\xa0\xd4\
+g\xb8\x1d\xc1\x0e[\x1b\xec\x10\x8d(vPX\xda\x7f\
+<\xfae\xfa\x11\xc6%]\x98\x1d>\xfb\xf3\x1b+\xb6\
+\x9a\xc4\x0bu\xbf+\xff\xd0\xe8\xb3\x92\x9a\xbf4\xcap\
+\xec\xf0<\x80\x1d\xa2\x11we\xa1\x09B\xfa\xf5\x87l\
+\x17\xd5ORK\x1c*\xa0b\xabI\xbcP\xf7\xe4\xd8\
+\xe9FvP\x86[\xb1\xfa\x8e\xec\x88\xc6\x80\x1d\xb60\
+\xd8!\x1a\xb1\xe6\x0e\xe1\x86\xd1\xb9\xac\x13\xcaa%\x9e\
+^\xd2\x95r\x86Ui!Bz+\x8d\xeb4\xb4\xe4\
+\xf2g(\x9c\x8dP\x1d;la\xb0C4\xa2\xd9!\
+\xad~~\xe2R\xda\xac\xf3\x0d\xeeC\xc3=\xe1\xc7&\
+\xd2\x1a\xad\x84\xd5\xd5\xf2\xe4\xfd\x91\x8f4r\xcf\x0e\xbb\
+\xbf/\xff\x98-\x9c\x0d\xec\xf0<\x80\x1d\xa2\x11\xd7\x0e\
+7\xa6o&?f\xb14\xf1t\xea\xab\x97\xbdC\x07\
+\xc7\xe6\xc6\x93\x92\xabH<K\xda\xd9\xf9Gj\xcd\x9d\
+\xa4HCv\xd3z\x95\xc4\x0e\xcf'\xd8!\x1a\xb1\xec\
+`\xe9\xa4\xd3\xddn\x00\x9d\xedB\xa7\xfe\xce\xf4\x97u\
+\x7f\x9f\xbd\xa32\xea\xa8\xe5\xdc\xb3\x8a\x9a\x83\xa4W\x1c\
+r\xb7o\xa9\xde9.\xfb\x93\x19i\xa5\xc5\xb0#\xd8\
+ak\x83\x1d\xa2\x11\xd7\x0e\xca\xdb\x8e?\xdeU\x9bi\
+\xe3\xf9\x8f<\x84\x9f\xa2Ik\xac8B\xc2+\xa9\xea\
+\xbb0\x94\xe46Cq\xd3\xdb\x0eb\x87\xad\x0dv\x88\
+FD;\xd8\x92a\xdfP\xf7\xf6\xe4\xc6\x8d\xd9^\xaa\
+o[\xd8\xf5B\x954\xd2z+\x88P\xeb\xfc\xc4\xa5\
+\xfa{L+\xc1\x94f\xea\xfd\xef\xcc\xeft\xa6\xf5\x16\
+\xc3\x8e`\x87\xad\x0dv\x88F,;(,\xa3>\x1e\
+\xfd\xd2K\xdd\xe4\xc6\xb3\xdd\x99_\xc1Mk\xac8\xac\
+b\xcf\xdd\x13\x8d\xba\xc8\xde3\xba\xbe\x17;\xa2g\xda\
+\xe8\xdeP\x1a\xbc}p\xa3\xe5\x11.3\xb0Cq`\
+\x87hD\x9c;XF]\x9c\xbc\x92N\xf8\xf3s~\
+\xa1\x1cX\xfd\xefh\xa6w\xa0\xdf\x9b\xcb\xed0=\xb1\
+7,\x1a5n\x075\xc7\xa9\xbf\xa8\xa9\xeaZ\xfbH\
+.\xd8a\xb3\x83\x1d\xa2\x11}\xee\xa0e\xbf\x9a\xad\xff\
+\xb1\x09\xcb\xde\x93c\xa7\xad\x98\xb6\xcb\xcf@+i+\
+\x97\xcb\x93W\x95Ku\xedWW\x16\xfd3\x03I\xc9\
+\x06\xcf%tm7\xbc_Z=\xb1\xc3\xb1H7\xa4\
+\x7ff`\x87\xe2\xc0\x0e\xd1\x88n\x07\xb5\xa3W\xe6\xdc\
+\x9b\x9a5\x92\x1f\xd1\x0f\xd7\x05l\xdb<\x0fC\x81\xb0\
+sh\xb8\xa7\xfe\xe3\x98\xfaSOd\xdfP\xf7\xf8\x93\
+r\xb6p.BSz\xca\xf5vP\xb3\xd9\xdf\x01v\
+[\x88\x15\xd8\xa18\xb0C4\xa2\xdbAqj\xfc\x5c\
+-\x81\xb3\xaf\xf0\xc9\xbe\xba\xb3\x8fT+B\xf9Fy\
+\x18RT[\x1b\x9e\x16\x0e\xa9w\xac\xd9\xd0xub\
+b_\xf4\xb2ZV1\x17\xa1\xb5\xf7G>\xca]\xb9\
+\xd0h\x95\xa5o\xdey/\xfb\x96\x87\xdbH\x94\xc0\x0e\
+\xc5\x81\x1d\xa2\x11\xd7\x0e\x96Nw\x1f\x8f\xaaY\xbd\x1a\
+\xe7\xfaJiW2|W\xfe\xc1\xaaT\x16\xe6\xc3\x0f\
+\xe7eS1\x1c\x11\x1a\x98\xfd\xf9\xeb\xf4o\x9az\xc8\
+\x0eK\xbd\x93L\x1c\xb4\xd0\xd0C\xcf\xfc\x9d\xce\xd0\xc5\
+\x17\x7f}\x9b\x8e\xd0Z\xa8\xa2\x01\xeb\xa0]\x19\xa9,\
+T\xd4\xce\x22O5\xce\xf9d\xb4\xb5\xc1\x84\xa6Z\x0b\
+\xb5\xa3-v(\x02\xec\x10\x8d\x88vPX\xce(\xb5\
+z\xee\x9eH\x7f\xd8\x22\xf7\x99\xa5d\xdf.\x19\xf4>\
+8c\xef_(\xd4u}6\xa6\xe2\xa8\xde*FG\
+.N^Q\x22\xd5RzI\x9b\xe9\xa2`\xb7\xa6\x03\
+\xea=`\x15s\x11\x8e\x9f-_\xd8\xee,O\x92K\
+\x0f'\xd2\x9b\xd6[\xb1F\xd1\xa8\xfd\xe5\x87\x9e\x91\xb6\
+\xd8\xa1\x08\xb0C4\x22\xda!\x9b\x997\xa6o*\xfd\
+4\xe1\xcfu\x17\x12[yx\xa0t\xf4\xf2\xe4\xd5\xd1\
+\xb9\xfbV\xdd\x8d\x89\xca\xa4\x9a\xfa\xf0\xde\xe7Z\xaa\xd4\
+\xcd\x1a\xaa\xfb:\xae\x8e4\xb3Py{\x16\x8d\xb27\
+;<\x0d\xc0\x13Mr\x87\x08u\xa7\x81i&\xd2?\
+3\xa0fU\xf8\xe7\xa9\xebW\xa6\xae\x9d\x9f\xb8\xa4#\
+vq\xb4Q\x17\xcb\x0c\xecP\x1c\xd8!\x1aq\xe7\x0e\
+\x0aK\x1b\xbd\xfc\xda}\xa2RAd3P$\x7f\xea\
+\xb8\x12^\xbdk\xa9\xff\xc1\xbdO5\x95\xf8\xbe\xfc\xa3\
+rR\xa9hyxj\xfc\x9c^\xc6\xf7\x97\x0e\xeb%\
+]\xedh[\x97\xccU\xd4\x88\xf2Y\x9d6W\x83\x22\
+\xd8AJr\x9b2A\xa8;\x8dMK\x15\xb1\xebv\
+g\xed)\xb4\xbfp\xeb%\xcd\x89\xf8\x1d\xcd\x0d\x0ev\
+\x88F\x5c;X\xceXS\xbf\xcf\xdeQv\xd5N\xfd\
+zA$3y=\xa4\x01X6\xda\x14@\xd9(\xf4\
+h8\xae\xf2i~:\x8d\xa8\xba^\xea\x95`\xe1\xad\
+\x8a\xb0m\x14\xf6\xe8\xec\xfc#=kuQ\x97\x96I\
+\x17\xeaNc\xd3\x0aHCJ\xd7A\xd5\x83*/;\
+\xf0\x1b\xdc\x1b\x1c\xec\x10\x8d\xb8vP(m\x84\xb5\xa6\
+\xe9@\xfa\xd6@\x92\xc6u\xb9]=\xa2\x87j\xf3\x82\
+\xe4\x92DH\xc8\xda\xf1\xe0\x85\x5c\xf5D.i^u\
+\xd8g\x1c,]\x9b'\xad\x8d\xcd\xca|W\xfeA\xf6\
+1\x13\xe5Z\xb6#\xe9\x00\x12\xec\xb8:\xd2Zi\xf5\
+\x1f\xf7\xb4\xc0\x0e\xc5\x81\x1d\xa2Q\x84\x1dlk;'\
+\xc7N\xdb\xeb\x7f\x9a\xe7\xb9<4\xdc\x83\x81\xfaG\x93\
+\xecU:\xd9+\xffOS\xd7Cw\xd6\xe33\xc3\x8a\
+\x8d\xcd\x8d\xb7\x0f\xbc\xa3\xcc\xac-\x1cr\xbd\xe4\xb1\x1e\
+\xbbJG&*\x93\xa1\x91\x96\x03;\x14\x07v\x88F\
+t;(,s\xd2tM\xa2\xf7\xc1\x19\xcd\x08\xd4Q\
+\x83\x05Bk\xb4w\x0ev\xdd\x98\xbeY\xeb\xa8\xdac\
+\xdaa\xb3\xb0\xc2V\xf2\xe2\xe4\x95m}\xbb\xd5ZM\
+\x10\xcd\x06\xa6\x04V\x1a\xef\x1d:X\xaeLX;i\
+{-\x06v(\x0e\xec\x10\x8d\x22\xec\xa0\xb0\xe4\x09y\
+\xf8\xf3\xd4\xf57\xef\xbc\xf7\xcf[\xaf\xa8\xc7\x06\x99P\
+\x9f\x99\xd9#K\x1e\xb5\x97\xf1\xb3\xe5\x0bj\xb9R\xbb\
+\x8d\xed\x8a\xd25TI\xdf\xdal\xd3\xecFm6O\
+Q\xcd}\xb4\xe4\xe9\x18\xdc\xdf\xe4\x1b\xe2\xcb\x0f\xecP\
+\x1c\xd8!\x1a\x05\xd9A\x112\xd0v\xf4\x92{j\xfc\
+\xdc\xeb\x03o+\x15\x95\x0f\xd9\x0b~\x96\x99\xf5d\xc6\
+\x99\xb7\x83\x1ay\x7f\xe4\xa3\xec\x05\xc2\xe5\xa7k\xae|\
+\xff\xcc\xc0\xb1\x91O\xb6'o\xa0$\xef\xa1\xecH\xd8\
+\x93\xa1M\x07\x0du*\xc7e\xaf\x80\xb6\x1c\xd8\xa18\
+\xb0C4\x0a\xb5C\xc8\xc3\xd0\xb8\x16\xed\x9a\xcfw\x0f\
+\x1f\xdfu\xbbS)a+\x0ee\x9d\xb0\xe4\xacaG\
+\x92D\xad\x0d5\x08\xa2*\x94\x17\xfbv\x9f\x9f\xb8\xa4\
+6\xd5\xf8Js5\x0c\xcc\xfe\xd4\x04dt\xee\xfe\xe5\
+\xc9\xab'F\xbf\xd6\xd8\xbaJGd\x01\xad\x5c\xf6\x0d\
+u\xcbA\x9f\xfd\xf9\x8d\xa6\x18\xd7\x1e\xfe\xa22\xd3\xf3\
+3\xf6\x5cV\xdac.\xb0Cq`\x87h(\x03\x0b\
+\xb2\x83E\xc8\xc3\x5c:\xfd]\x99\xba1}\xb3\xf7\xc1\
+\x99\x0f\xef}~\xa0tT\xebyKHC\xfb:\xd2\
+s\xf7\xc4\xa1\xe1\x9et\x9c\xa6\x86EA(\x9d\x94T\
+*\xd9\xf2\xd7\x22\x1a\x0d\xcc\xa2\xd1q\x8b&\x0f-3\
+\xb0Cq`\x87h\x14m\x07E\xc84\xdbi\x94Z\
+z\x01\xd7JA/\xce\xc2>q\xa4\xd0\xbe\x14\x90\x99\
+A\x04\xaa\xdf\xbc\xfa\xe2\xafo\xadd\x93\x96\x1b\x85\x95\
+\xb7\x8a\xcd\xabg\xcbX1\xdb\xb6\x1c\xf6\xdf\x1e\x9c-\
+a\x87\xe8`\x87h\xac\x81\x1d,BR\xe5P\xbf\xc2\
+\xf6\xad\xa4\x85\xfe\xb4\xef;h%\xa2A\xa6\x13\x870\
+w\xa8\x92&U{\xcbw\x94\xb1\xb0*\xa1zsB\
+\xf9\x96\xc3\xda\x09v\xe8\xf8\x03;D\x06;Dc\xcd\
+\xec\xe0F\xc87\x17{H\x03\xd3\x08\xd3OUi\xc0\
+YA$\xfb:n\xe3\x0f\xed\xd8\xfe\xc6\x8c0<\xfb\
+oke\xd1>\xb0w'v\x88\x0av\x88\xc6\xfa\xda\
+\xa1y\x84l\xff}\xf6N\x93\x17Xe\x97\xe6\x17*\
+fOa#\x0b\xc2\xc6\x16\xb6Z\x16mK\xdeL\xb5\
+\x8f\x81@\x1c\xb0C46\x85\x1d\xb4\xfd\xec\xcfo^\
+\xec\xdb\xed~\xaeQO\xa1s\xb0+\xfb\x01g\xdbn\
+\xb4\xc8\x8d\xad\xf7\xc1\x19\xa9\xa1\xf6,\xf2O\x0aZ\x06\
+;Dc\x83\xdbA[\xfb\xc6\xf4\xe8\xdc}\xfb\xe0\xb3\
+]k\xa8\x8d?\xd9\xd1\x11=\x8b\x93c\xa7\xd3\xc2\xf3\
+\xaa\xb5\x01\xed\x10\xd4`;\xa7\xc6\xcfIv\xd9g\x01\
+\xb1\xc0\x0e\xd1\xd8\xf8s\x07ac;[\xbe\xe0\xcd\xc3\
+\x93w7\xb5\xb8\xd0\x02>\xfc\xd6VZ{\x03\x85\x19\
+\xc1\x9e\x8bv\xec\x89\x84\xf1g\x9e\x0bD\x00;Dc\
+#\xdbA\x11\xf2J\xdb\xd9\xf9G]\xa5#\xe9][\
+\x96\xac/\x12;\xa47_\xd0\x5c]\xc5\xc2\xad\xe86\
+B\x04#\x84\x9d\xa5?\xd5\x83\x1a\xe2\x83\x1d\xa2\xb1\xc1\
+\xed\xa0\xb0\xa4\xb2\xe1\xfd4u\xdd\xbe\xef #\x98\x14\
+\xb4\xd6\xd0S\xd8_:\xfc\xf3\xd4\xf5\x87\xf3\xd3Qn\
+\xdc\x141rj\xb88yE\x03\xb6\xf9\x0ej(\x08\
+\xec\x10\x8d\x8do\x07\x85e\x97\x8d0\xfdND\x9b\xbc\
+\xa0\xad\x12L^\xb8\xf6\xf0\x97\xf0\xe9\xa9\x90\x87\x1b!\
+l$aH\x97'\xaf\xdaWKPC\xa1`\x87h\
+l\x16;\x84\xed\xdd\xc7\xa3\xf6\x1d\x8dC\xc3=\xf2\x82\
+\x1d\xb4GC\xb1pp\x1d#\x0c\xc3\xfe\xb1\x9a\xda\xc8\
+\x086\xebA\x0d\x85\x82\x1d\xa2\xb1)\xec\xa0\x08\x99\xaf\
+\xad\xdd\x812=\x9c\x1c\x09\xd8\x9fv|}#\x8c\xc7\
+\xfe\xab7\xa6o\xda\x82(\xfd\x9f\xa3\x86b\xc1\x0e\xd1\
+\xd8,vP\xe4\xf2?d\xa0\xed\xdb\xceF\x8800\
+\xbb\xe3\xfe\xad\x99~MvvV\xbf*\x82\x1a\x0a\x07\
+;Dcs\xd9\xa1\x9au\xb5\xaff\xd8\xc1\xf4\xc1\x8d\
+\x12aT\xf6\xff\xec\x9f\x19\xf0~\xa1\x07\x0a\x04;D\
+c\x13\xd9\xc1B\x89\xb71\xbd\xa0\xc8\xa9\xe1\xf7\xd9;\
+\xf6s\xe1\xb5\xb7`\xb1\xc3Z\x80\x1d\xa2\xb1\xe9\xec\xb0\
+\x91\xc3\xec`\xff\xc9\xda\xbd\x1b\xec\x17\x03Q\xc3\xda\x81\
+\x1d\xa2\x81\x1dbEV\x0d\xc3\x8fG:\x07\xbb\xf4\xbf\
+\xad-(P\xc3\xda\x81\x1d\xa2\x81\x1d\xa2DV\x0d\xa3\
+s\xf7\xf7\x0e\x1d\xcc\xa8a\xc9?\x1c\x8a\x06;D#\
+k\x07\x9d\xe2\xd02\xa6\x86\xf1'\xe5\xfd\xa5\xc3\xdb\xab\
+?\xe1\x8b\x1a\xd6\x01\xec\x10\x0d\xd9\xe1\xd0p\x8fNk\
+b\xf5Q\xaeL\x1c(\x1d\xcd|U\x0c;\xac\x03\xd8\
+!\x1a\xb2\x83N\xe8\xcaB\xe5\xef\xca\x94\xdd\xd3\x11V\
+\xca\xc3\xf9\xe9\xd9\xf9Gcs\xe3\xdd\xc3\xc7k_\x12\
+\xd3\xff\x165\xac\x0f\xd8!\x0av\xfaj\x0b\x11\xd8\x99\
+\xfe\xfe\xc5\xd2\xff-\xac\x03\xd8!\x22\x9c\xc7\xd1\xe1_\
+\xba\x9e`\x87\x88p*G\x84\x7f\xe6\xfa\x83\x1d\x00\xc0\
+\x07;\x00\x80\x0fv\x00\x00\x1f\xec\x00\x00>\xd8\x01\x00\
+|\xb0\x03\x00\xf8`\x07\x00\xf0\xc1\x0e\x00\xe0\x83\x1d\x00\
+\xc0\x07;\x00\x80\x0fv\x00\x00\x1f\xec\x00\x00>\xd8\x01\
+\x00|\xb0\x03\x00\xf8`\x07\x00\xf0\xc1\x0e\x00\xe0\x83\x1d\
+\x00\xc0\x07;\x00\x80\x0fv\x00\x00\x1f\xec\x00\x00>\xd8\
+\x01\x00|\xb0\x03\x00\xf8`\x07\x00\xf0\xc1\x0e\x00\xe0\x83\
+\x1d\x00\xc0\x07;\x00\x80\x0fv\x00\x00\x1f\xec\x00\x00>\
+\xd8\x01\x00|\xb0\x03\x00\xf8`\x07\x00\xf0\xc1\x0e\x00\xe0\
+\x83\x1d\x00\xc0\x07;\x00\x80\x0fv\x00\x00\x1f\xec\x00\x00\
+>\xd8\x01\x00|\xb0\x03\x00\xf8`\x07\x00\xf0\xc1\x0e\x00\
+\xe0\x83\x1d\x00\xc0\x07;\x00\x80\x0fv\x00\x00\x1f\xec\x00\
+\x00>\xd8\x01\x00|\xb0\x03\x00\xf8`\x07\x00\xf0\xc1\x0e\
+\x00\xe0\x83\x1d\x00\xc0\x07;\x00\x80\x0fv\x00\x00\x1f\xec\
+\x00\x00>\xd8\x01\x00|\xb0\x03\x00\xf8`\x07\x00\xf0\xc1\
+\x0e\x00\xe0\x83\x1d\x00\xc0\x07;\x00\x80\x0fv\x00\x00\x1f\
+\xec\x00\x00>\xd8\x01\x00|\xb0\x03\x00\xf8`\x07\x00\xf0\
+\xc1\x0e\x00\xe0\x83\x1d\x00\xc0\x07;\x00\x80\x0fv\x00\x00\
+\x1f\xec\x00\x00>\xd8\x01\x00|\xb0\x03\x00\xf8`\x07\x00\
+\xf0\xc1\x0e\x00\xe0\x83\x1d\x00\xc0\x07;\x00\x80\x0fv\x00\
+\x00\x1f\xec\x00\x00>\xd8\x01\x00|\xb0\x03\x00\xf8`\x07\
+\x00\xf0\xc1\x0e\x00\xe0\x83\x1d\x00\xc0\x07;\x00\x80\x0fv\
+\x00\x00\x1f\xec\x00\x00>\xd8\x01\x00|\xb0\x03\x00\xf8`\
+\x07\x00\xf0\xc1\x0e\x00\xe0\x83\x1d\x00\xc0\x07;\x00\x80\x0f\
+v\x00\x00\x1f\xec\x00\x00>\xd8\x01\x00|\xb0\x03\x00\xf8\
+`\x07\x00\xf0\xc1\x0e\x00\xe0\x83\x1d\x00\xc0\xe7\x1f\xff\xfe\
+\xef\x1b\x00\x00y\xfe\xfb\xc6\xff\x034\xc3}\xffR)\
+\xdb\xa4\x00\x00\x00\x00IEND\xaeB`\x82\
+"
+
+qt_resource_name = b"\
+\x00\x08\
+\x08\x01Z\x5c\
+\x00m\
+\x00a\x00i\x00n\x00.\x00q\x00m\x00l\
+\x00\x10\
+\x0d\x0d\xd3\xc7\
+\x00q\
+\x00t\x00_\x00l\x00o\x00g\x00o\x00_\x00r\x00e\x00c\x00t\x00.\x00p\x00n\x00g\
+"
+
+qt_resource_struct = b"\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x01\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\
+\x00\x00\x01}k\x86\xb3\x9c\
+\x00\x00\x00\x16\x00\x00\x00\x00\x00\x01\x00\x00\x09G\
+\x00\x00\x01}k\x86\xb3\x9c\
+"
+
+def qInitResources():
+ QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+def qCleanupResources():
+ QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+qInitResources()
diff --git a/examples/quick3d/intro/doc/intro.png b/examples/quick3d/intro/doc/intro.png
new file mode 100644
index 000000000..ae54997c4
--- /dev/null
+++ b/examples/quick3d/intro/doc/intro.png
Binary files differ
diff --git a/examples/quick3d/intro/doc/intro.rst b/examples/quick3d/intro/doc/intro.rst
new file mode 100644
index 000000000..0afebd5be
--- /dev/null
+++ b/examples/quick3d/intro/doc/intro.rst
@@ -0,0 +1,9 @@
+Introduction Example Qt Quick 3D
+================================
+
+This example gives an introductory overview of the basic Quick 3D features by going
+through the code of a simple example.
+
+.. image:: intro.png
+ :width: 400
+ :alt: QtQuick3D Introduction Screenshot
diff --git a/examples/quick3d/intro/intro.pyproject b/examples/quick3d/intro/intro.pyproject
new file mode 100644
index 000000000..428f88dc1
--- /dev/null
+++ b/examples/quick3d/intro/intro.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["main.py", "main.qml"]
+}
diff --git a/examples/quick3d/intro/main.py b/examples/quick3d/intro/main.py
new file mode 100644
index 000000000..827434038
--- /dev/null
+++ b/examples/quick3d/intro/main.py
@@ -0,0 +1,24 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import os
+import sys
+from pathlib import Path
+from PySide6.QtCore import QUrl
+from PySide6.QtGui import QGuiApplication, QSurfaceFormat
+from PySide6.QtQml import QQmlApplicationEngine
+
+from PySide6.QtQuick3D import QQuick3D
+
+if __name__ == "__main__":
+ app = QGuiApplication(sys.argv)
+
+ QSurfaceFormat.setDefaultFormat(QQuick3D.idealSurfaceFormat(4))
+
+ engine = QQmlApplicationEngine()
+ qml_file = os.fspath(Path(__file__).resolve().parent / 'main.qml')
+ engine.load(QUrl.fromLocalFile(qml_file))
+ if not engine.rootObjects():
+ sys.exit(-1)
+
+ sys.exit(app.exec())
diff --git a/examples/quick3d/intro/main.qml b/examples/quick3d/intro/main.qml
new file mode 100644
index 000000000..648cfcf5c
--- /dev/null
+++ b/examples/quick3d/intro/main.qml
@@ -0,0 +1,80 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+//! [import]
+import QtQuick
+import QtQuick3D
+//! [import]
+
+Window {
+ id: window
+ width: 1280
+ height: 720
+ visible: true
+
+ View3D {
+ id: view
+ anchors.fill: parent
+
+ //! [environment]
+ environment: SceneEnvironment {
+ clearColor: "skyblue"
+ backgroundMode: SceneEnvironment.Color
+ }
+ //! [environment]
+
+ //! [camera]
+ PerspectiveCamera {
+ position: Qt.vector3d(0, 200, 300)
+ eulerRotation.x: -30
+ }
+ //! [camera]
+
+ //! [light]
+ DirectionalLight {
+ eulerRotation.x: -30
+ eulerRotation.y: -70
+ }
+ //! [light]
+
+ //! [objects]
+ Model {
+ position: Qt.vector3d(0, -200, 0)
+ source: "#Cylinder"
+ scale: Qt.vector3d(2, 0.2, 1)
+ materials: [ DefaultMaterial {
+ diffuseColor: "red"
+ }
+ ]
+ }
+
+ Model {
+ position: Qt.vector3d(0, 150, 0)
+ source: "#Sphere"
+
+ materials: [ DefaultMaterial {
+ diffuseColor: "blue"
+ }
+ ]
+
+ //! [animation]
+ SequentialAnimation on y {
+ loops: Animation.Infinite
+ NumberAnimation {
+ duration: 3000
+ to: -150
+ from: 150
+ easing.type:Easing.InQuad
+ }
+ NumberAnimation {
+ duration: 3000
+ to: 150
+ from: -150
+ easing.type:Easing.OutQuad
+ }
+ }
+ //! [animation]
+ }
+ //! [objects]
+ }
+}
diff --git a/examples/quick3d/proceduraltexture/ProceduralTextureModule/Main.qml b/examples/quick3d/proceduraltexture/ProceduralTextureModule/Main.qml
new file mode 100644
index 000000000..610c08a27
--- /dev/null
+++ b/examples/quick3d/proceduraltexture/ProceduralTextureModule/Main.qml
@@ -0,0 +1,188 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick3D
+import QtQuick3D.Helpers
+import QtQuick.Controls
+import QtQuick.Layouts
+
+import ProceduralTextureModule
+
+ApplicationWindow {
+ id: window
+ width: 480
+ height: 320
+ visible: true
+ title: "Procedural Texture Example"
+
+ QtObject {
+ id: applicationState
+ property int size: size256.checked ? 256 : 16
+ property color startColor: "#00dbde"
+ property color endColor: "#fc00ff"
+ property int filterMode: size === 256 ? Texture.Linear : Texture.Nearest
+ property Texture texture: pythonModeRadio.checked ? textureFromPython : textureFromQML
+
+ function randomColor() : color {
+ return Qt.rgba(Math.random(),
+ Math.random(),
+ Math.random(),
+ 1.0);
+ }
+ }
+
+ View3D {
+ anchors.fill: parent
+
+ DirectionalLight {
+ }
+
+ PerspectiveCamera {
+ z: 300
+ }
+
+ Texture {
+ id: textureFromPython
+
+ minFilter: applicationState.filterMode
+ magFilter: applicationState.filterMode
+ textureData: gradientTexture
+
+ GradientTexture {
+ id: gradientTexture
+ startColor: applicationState.startColor
+ endColor: applicationState.endColor
+ width: applicationState.size
+ height: width
+ }
+ }
+
+ Texture {
+ id: textureFromQML
+ minFilter: applicationState.filterMode
+ magFilter: applicationState.filterMode
+ textureData: gradientTextureDataQML
+
+ ProceduralTextureData {
+ id: gradientTextureDataQML
+
+ property color startColor: applicationState.startColor
+ property color endColor: applicationState.endColor
+ width: applicationState.size
+ height: width
+ textureData: generateTextureData()
+
+ function linearInterpolate(startColor : color, endColor : color, fraction : real) : color{
+ return Qt.rgba(
+ startColor.r + (endColor.r - startColor.r) * fraction,
+ startColor.g + (endColor.g - startColor.g) * fraction,
+ startColor.b + (endColor.b - startColor.b) * fraction,
+ startColor.a + (endColor.a - startColor.a) * fraction
+ );
+ }
+
+ function generateTextureData() {
+ let dataBuffer = new ArrayBuffer(width * height * 4)
+ let data = new Uint8Array(dataBuffer)
+
+ let gradientScanline = new Uint8Array(width * 4);
+
+ for (let x = 0; x < width; ++x) {
+ let color = linearInterpolate(startColor, endColor, x / width);
+ let offset = x * 4;
+ gradientScanline[offset + 0] = color.r * 255;
+ gradientScanline[offset + 1] = color.g * 255;
+ gradientScanline[offset + 2] = color.b * 255;
+ gradientScanline[offset + 3] = color.a * 255;
+ }
+
+ for (let y = 0; y < height; ++y) {
+ data.set(gradientScanline, y * width * 4);
+ }
+
+ return dataBuffer;
+ }
+ }
+ }
+
+ Model {
+ source: "#Cube"
+
+ materials: [
+ PrincipledMaterial {
+ baseColorMap: applicationState.texture
+ }
+ ]
+
+ PropertyAnimation on eulerRotation.y {
+ from: 0
+ to: 360
+ duration: 5000
+ loops: Animation.Infinite
+ running: true
+ }
+ }
+ }
+
+ Pane {
+ ColumnLayout {
+
+ GroupBox {
+ title: "Size:"
+
+ ButtonGroup {
+ id: sizeGroup
+ }
+
+ ColumnLayout {
+ RadioButton {
+ id: size256
+ text: "256x256"
+ checked: true
+ ButtonGroup.group: sizeGroup
+ }
+ RadioButton {
+ id: size512
+ text: "16x16"
+ checked: false
+ ButtonGroup.group: sizeGroup
+ }
+ }
+ }
+
+ GroupBox {
+ title: "Backend:"
+
+ ButtonGroup {
+ id: backendGroup
+ }
+
+ ColumnLayout {
+ RadioButton {
+ id: pythonModeRadio
+ text: "Python"
+ checked: true
+ ButtonGroup.group: backendGroup
+ }
+ RadioButton {
+ id: qmlModeRadio
+ text: "QML"
+ checked: false
+ ButtonGroup.group: backendGroup
+ }
+ }
+
+ }
+
+ Button {
+ text: "Random Start Color"
+ onClicked: applicationState.startColor = applicationState.randomColor();
+ }
+ Button {
+ text: "Random End Color"
+ onClicked: applicationState.endColor = applicationState.randomColor();
+ }
+ }
+ }
+}
diff --git a/examples/quick3d/proceduraltexture/ProceduralTextureModule/app.qrc b/examples/quick3d/proceduraltexture/ProceduralTextureModule/app.qrc
new file mode 100644
index 000000000..f0719ad5b
--- /dev/null
+++ b/examples/quick3d/proceduraltexture/ProceduralTextureModule/app.qrc
@@ -0,0 +1,6 @@
+<RCC>
+ <qresource prefix="/qt/qml/ProceduralTextureModule">
+ <file>qmldir</file>
+ <file>Main.qml</file>
+ </qresource>
+</RCC>
diff --git a/examples/quick3d/proceduraltexture/ProceduralTextureModule/qmldir b/examples/quick3d/proceduraltexture/ProceduralTextureModule/qmldir
new file mode 100644
index 000000000..7a5644075
--- /dev/null
+++ b/examples/quick3d/proceduraltexture/ProceduralTextureModule/qmldir
@@ -0,0 +1,2 @@
+module ProceduralTextureModule
+Main 1.0 Main.qml
diff --git a/examples/quick3d/proceduraltexture/doc/proceduraltexture-example.webp b/examples/quick3d/proceduraltexture/doc/proceduraltexture-example.webp
new file mode 100644
index 000000000..60bc9a3df
--- /dev/null
+++ b/examples/quick3d/proceduraltexture/doc/proceduraltexture-example.webp
Binary files differ
diff --git a/examples/quick3d/proceduraltexture/doc/proceduraltexture.rst b/examples/quick3d/proceduraltexture/doc/proceduraltexture.rst
new file mode 100644
index 000000000..f2af3ee52
--- /dev/null
+++ b/examples/quick3d/proceduraltexture/doc/proceduraltexture.rst
@@ -0,0 +1,12 @@
+Procedural Texture Example
+==========================
+
+Demonstrates how to provide custom texture data from Python.
+
+.. image:: proceduraltexture-example.webp
+ :width: 400
+ :alt: QtQuick3D Procedural Texture Example
+
+In this example, we leverage `QQuick3DTextureData` and the `textureData`
+property of `Texture` to produce texture data dynamically from Python, rather
+than sourcing it from a static asset.
diff --git a/examples/quick3d/proceduraltexture/gradienttexture.py b/examples/quick3d/proceduraltexture/gradienttexture.py
new file mode 100644
index 000000000..a577f7ebd
--- /dev/null
+++ b/examples/quick3d/proceduraltexture/gradienttexture.py
@@ -0,0 +1,105 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import Signal, Property, QSize
+from PySide6.QtGui import QColor
+from PySide6.QtQuick3D import QQuick3DTextureData
+from PySide6.QtQml import QmlElement
+
+QML_IMPORT_NAME = "ProceduralTextureModule"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class GradientTexture(QQuick3DTextureData):
+
+ heightChanged = Signal(int)
+ widthChanged = Signal(int)
+ startColorChanged = Signal(QColor)
+ endColorChanged = Signal(QColor)
+
+ def __init__(self, parent=None):
+ super().__init__(parent=parent)
+ self._height = 256
+ self._width = 256
+ self._startcolor = QColor("#d4fc79")
+ self._endcolor = QColor("#96e6a1")
+ self.updateTexture()
+
+ @Property(int, notify=heightChanged)
+ def height(self):
+ return self._height
+
+ @height.setter
+ def height(self, val):
+ if self._height == val:
+ return
+ self._height = val
+ self.updateTexture()
+ self.heightChanged.emit(self._height)
+
+ @Property(int, notify=widthChanged)
+ def width(self):
+ return self._width
+
+ @width.setter
+ def width(self, val):
+ if self._width == val:
+ return
+ self._width = val
+ self.updateTexture()
+ self.widthChanged.emit(self._width)
+
+ @Property(QColor, notify=startColorChanged)
+ def startColor(self):
+ return self._startcolor
+
+ @startColor.setter
+ def startColor(self, val):
+ if self._startcolor == val:
+ return
+ self._startcolor = val
+ self.updateTexture()
+ self.startColorChanged.emit(self._startcolor)
+
+ @Property(QColor, notify=endColorChanged)
+ def endColor(self):
+ return self._endcolor
+
+ @endColor.setter
+ def endColor(self, val):
+ if self._endcolor == val:
+ return
+ self._endcolor = val
+ self.updateTexture()
+ self.endColorChanged.emit(self._endcolor)
+
+ def updateTexture(self):
+ self.setSize(QSize(self._width, self._height))
+ self.setFormat(QQuick3DTextureData.RGBA8)
+ self.setHasTransparency(False)
+ self.setTextureData(self.generate_texture())
+
+ def generate_texture(self):
+ # Generate a horizontal gradient by interpolating between start and end colors.
+ gradientScanline = [
+ self.linear_interpolate(self._startcolor, self._endcolor, x / self._width)
+ for x in range(self._width)
+ ]
+ # Convert the gradient colors to a flattened list of RGBA values.
+ flattenedGradient = [
+ component
+ for color in gradientScanline
+ for component in (color.red(), color.green(), color.blue(), 255)
+ ]
+ # Repeat the gradient vertically to form the texture.
+ return bytearray(flattenedGradient * self._height)
+
+ def linear_interpolate(self, color1, color2, value):
+ output = QColor()
+
+ output.setRedF(color1.redF() + (value * (color2.redF() - color1.redF())))
+ output.setGreenF(color1.greenF() + (value * (color2.greenF() - color1.greenF())))
+ output.setBlueF(color1.blueF() + (value * (color2.blueF() - color1.blueF())))
+
+ return output
diff --git a/examples/quick3d/proceduraltexture/main.py b/examples/quick3d/proceduraltexture/main.py
new file mode 100644
index 000000000..a732cc015
--- /dev/null
+++ b/examples/quick3d/proceduraltexture/main.py
@@ -0,0 +1,30 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtGui import QGuiApplication
+from PySide6.QtQml import QQmlApplicationEngine
+
+from gradienttexture import GradientTexture # noqa: F401
+
+from pathlib import Path
+
+import os
+import sys
+
+if __name__ == "__main__":
+ app = QGuiApplication(sys.argv)
+ app.setOrganizationName("QtProject")
+ app.setApplicationName("ProceduralTexture")
+
+ engine = QQmlApplicationEngine()
+ app_dir = Path(__file__).parent
+ engine.addImportPath(os.fspath(app_dir))
+ engine.loadFromModule("ProceduralTextureModule", "Main")
+
+ if not engine.rootObjects():
+ sys.exit(-1)
+
+ ex = app.exec()
+ del engine
+
+ sys.exit(ex)
diff --git a/examples/quick3d/proceduraltexture/proceduraltexture.pyproject b/examples/quick3d/proceduraltexture/proceduraltexture.pyproject
new file mode 100644
index 000000000..0815cd8b8
--- /dev/null
+++ b/examples/quick3d/proceduraltexture/proceduraltexture.pyproject
@@ -0,0 +1,9 @@
+{
+ "files": [
+ "main.py",
+ "gradienttexture.py",
+ "ProceduralTextureModule/qmldir",
+ "ProceduralTextureModule/Main.qml",
+ "ProceduralTextureModule/app.qrc"
+ ]
+}
diff --git a/examples/quickcontrols/contactslist/Contact/ContactDelegate.ui.qml b/examples/quickcontrols/contactslist/Contact/ContactDelegate.ui.qml
new file mode 100644
index 000000000..affcccc3e
--- /dev/null
+++ b/examples/quickcontrols/contactslist/Contact/ContactDelegate.ui.qml
@@ -0,0 +1,82 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Layouts
+import QtQuick.Controls
+
+ItemDelegate {
+ id: delegate
+
+ checkable: true
+
+ contentItem: ColumnLayout {
+ spacing: 10
+
+ Label {
+ text: fullName
+ font.bold: true
+ elide: Text.ElideRight
+ Layout.fillWidth: true
+ }
+
+ GridLayout {
+ id: grid
+ visible: false
+
+ columns: 2
+ rowSpacing: 10
+ columnSpacing: 10
+
+ Label {
+ text: qsTr("Address:")
+ Layout.leftMargin: 60
+ }
+
+ Label {
+ text: address
+ font.bold: true
+ elide: Text.ElideRight
+ Layout.fillWidth: true
+ }
+
+ Label {
+ text: qsTr("City:")
+ Layout.leftMargin: 60
+ }
+
+ Label {
+ text: city
+ font.bold: true
+ elide: Text.ElideRight
+ Layout.fillWidth: true
+ }
+
+ Label {
+ text: qsTr("Number:")
+ Layout.leftMargin: 60
+ }
+
+ Label {
+ text: number
+ font.bold: true
+ elide: Text.ElideRight
+ Layout.fillWidth: true
+ }
+ }
+ }
+
+ states: [
+ State {
+ name: "expanded"
+ when: delegate.checked
+
+ PropertyChanges {
+ // TODO: When Qt Design Studio supports generalized grouped properties, change to:
+ // grid.visible: true
+ target: grid
+ visible: true
+ }
+ }
+ ]
+}
diff --git a/examples/quickcontrols/contactslist/Contact/ContactDialog.qml b/examples/quickcontrols/contactslist/Contact/ContactDialog.qml
new file mode 100644
index 000000000..d906f00e6
--- /dev/null
+++ b/examples/quickcontrols/contactslist/Contact/ContactDialog.qml
@@ -0,0 +1,45 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+Dialog {
+ id: dialog
+
+ signal finished(string fullName, string address, string city, string number)
+
+ function createContact() {
+ form.fullName.clear();
+ form.address.clear();
+ form.city.clear();
+ form.number.clear();
+
+ dialog.title = qsTr("Add Contact");
+ dialog.open();
+ }
+
+ function editContact(contact) {
+ form.fullName.text = contact.fullName;
+ form.address.text = contact.address;
+ form.city.text = contact.city;
+ form.number.text = contact.number;
+
+ dialog.title = qsTr("Edit Contact");
+ dialog.open();
+ }
+
+ x: parent.width / 2 - width / 2
+ y: parent.height / 2 - height / 2
+
+ focus: true
+ modal: true
+ title: qsTr("Add Contact")
+ standardButtons: Dialog.Ok | Dialog.Cancel
+
+ contentItem: ContactForm {
+ id: form
+ }
+
+ onAccepted: finished(form.fullName.text, form.address.text, form.city.text, form.number.text)
+}
diff --git a/examples/quickcontrols/contactslist/Contact/ContactForm.ui.qml b/examples/quickcontrols/contactslist/Contact/ContactForm.ui.qml
new file mode 100644
index 000000000..56c918619
--- /dev/null
+++ b/examples/quickcontrols/contactslist/Contact/ContactForm.ui.qml
@@ -0,0 +1,72 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Layouts
+import QtQuick.Controls
+
+GridLayout {
+ id: grid
+ property alias fullName: fullName
+ property alias address: address
+ property alias city: city
+ property alias number: number
+ property int minimumInputSize: 120
+ property string placeholderText: qsTr("<enter>")
+
+ rows: 4
+ columns: 2
+
+ Label {
+ text: qsTr("Full Name")
+ Layout.alignment: Qt.AlignLeft | Qt.AlignBaseline
+ }
+
+ TextField {
+ id: fullName
+ focus: true
+ Layout.fillWidth: true
+ Layout.minimumWidth: grid.minimumInputSize
+ Layout.alignment: Qt.AlignLeft | Qt.AlignBaseline
+ placeholderText: grid.placeholderText
+ }
+
+ Label {
+ text: qsTr("Address")
+ Layout.alignment: Qt.AlignLeft | Qt.AlignBaseline
+ }
+
+ TextField {
+ id: address
+ Layout.fillWidth: true
+ Layout.minimumWidth: grid.minimumInputSize
+ Layout.alignment: Qt.AlignLeft | Qt.AlignBaseline
+ placeholderText: grid.placeholderText
+ }
+
+ Label {
+ text: qsTr("City")
+ Layout.alignment: Qt.AlignLeft | Qt.AlignBaseline
+ }
+
+ TextField {
+ id: city
+ Layout.fillWidth: true
+ Layout.minimumWidth: grid.minimumInputSize
+ Layout.alignment: Qt.AlignLeft | Qt.AlignBaseline
+ placeholderText: grid.placeholderText
+ }
+
+ Label {
+ text: qsTr("Number")
+ Layout.alignment: Qt.AlignLeft | Qt.AlignBaseline
+ }
+
+ TextField {
+ id: number
+ Layout.fillWidth: true
+ Layout.minimumWidth: grid.minimumInputSize
+ Layout.alignment: Qt.AlignLeft | Qt.AlignBaseline
+ placeholderText: grid.placeholderText
+ }
+}
diff --git a/examples/quickcontrols/contactslist/Contact/ContactList.qml b/examples/quickcontrols/contactslist/Contact/ContactList.qml
new file mode 100644
index 000000000..0b7af32b5
--- /dev/null
+++ b/examples/quickcontrols/contactslist/Contact/ContactList.qml
@@ -0,0 +1,70 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+ApplicationWindow {
+ id: window
+
+ property int currentContact: -1
+
+ width: 320
+ height: 480
+ visible: true
+ title: qsTr("Contact List")
+
+ ContactDialog {
+ id: contactDialog
+ onFinished: function(fullName, address, city, number) {
+ if (currentContact == -1)
+ contactView.model.append(fullName, address, city, number)
+ else
+ contactView.model.set(currentContact, fullName, address, city, number)
+ }
+ }
+
+ Menu {
+ id: contactMenu
+ x: parent.width / 2 - width / 2
+ y: parent.height / 2 - height / 2
+ modal: true
+
+ Label {
+ padding: 10
+ font.bold: true
+ width: parent.width
+ horizontalAlignment: Qt.AlignHCenter
+ text: currentContact >= 0 ? contactView.model.get(currentContact).fullName : ""
+ }
+ MenuItem {
+ text: qsTr("Edit...")
+ onTriggered: contactDialog.editContact(contactView.model.get(currentContact))
+ }
+ MenuItem {
+ text: qsTr("Remove")
+ onTriggered: contactView.model.remove(currentContact)
+ }
+ }
+
+ ContactView {
+ id: contactView
+ anchors.fill: parent
+ onPressAndHold: {
+ currentContact = index
+ contactMenu.open()
+ }
+ }
+
+ RoundButton {
+ text: qsTr("+")
+ highlighted: true
+ anchors.margins: 10
+ anchors.right: parent.right
+ anchors.bottom: parent.bottom
+ onClicked: {
+ currentContact = -1
+ contactDialog.createContact()
+ }
+ }
+}
diff --git a/examples/quickcontrols/contactslist/Contact/ContactView.ui.qml b/examples/quickcontrols/contactslist/Contact/ContactView.ui.qml
new file mode 100644
index 000000000..3b82b681e
--- /dev/null
+++ b/examples/quickcontrols/contactslist/Contact/ContactView.ui.qml
@@ -0,0 +1,36 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+import Backend
+
+ListView {
+ id: listView
+
+ signal pressAndHold(int index)
+
+ width: 320
+ height: 480
+
+ focus: true
+ boundsBehavior: Flickable.StopAtBounds
+
+ section.property: "fullName"
+ section.criteria: ViewSection.FirstCharacter
+ section.delegate: SectionDelegate {
+ width: listView.width
+ }
+
+ delegate: ContactDelegate {
+ id: delegate
+ width: listView.width
+ onPressAndHold: listView.pressAndHold(index)
+ }
+
+ model: ContactModel {
+ id: contactModel
+ }
+
+ ScrollBar.vertical: ScrollBar { }
+}
diff --git a/examples/quickcontrols/contactslist/Contact/SectionDelegate.ui.qml b/examples/quickcontrols/contactslist/Contact/SectionDelegate.ui.qml
new file mode 100644
index 000000000..3a62409a8
--- /dev/null
+++ b/examples/quickcontrols/contactslist/Contact/SectionDelegate.ui.qml
@@ -0,0 +1,17 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+ToolBar {
+ id: background
+
+ Label {
+ id: label
+ text: section
+ anchors.fill: parent
+ horizontalAlignment: Qt.AlignHCenter
+ verticalAlignment: Qt.AlignVCenter
+ }
+}
diff --git a/examples/quickcontrols/contactslist/Contact/qmldir b/examples/quickcontrols/contactslist/Contact/qmldir
new file mode 100644
index 000000000..339d45a1d
--- /dev/null
+++ b/examples/quickcontrols/contactslist/Contact/qmldir
@@ -0,0 +1,7 @@
+module Contact
+ContactList 1.0 ContactList.qml
+ContactDialog 1.0 ContactDialog.qml
+ContactDelegate 1.0 ContactDelegate.ui.qml
+ContactForm 1.0 ContactForm.ui.qml
+ContactView 1.0 ContactView.ui.qml
+SectionDelegate 1.0 SectionDelegate.ui.qml
diff --git a/examples/quickcontrols/contactslist/contactlist.pyproject b/examples/quickcontrols/contactslist/contactlist.pyproject
new file mode 100644
index 000000000..75b0bd693
--- /dev/null
+++ b/examples/quickcontrols/contactslist/contactlist.pyproject
@@ -0,0 +1,10 @@
+{
+ "files": ["main.py",
+ "contactmodel.py",
+ "Contact/ContactDialog.qml",
+ "Contact/ContactDelegate.ui.qml",
+ "Contact/ContactForm.ui.qml",
+ "Contact/ContactList.qml",
+ "Contact/ContactView.ui.qml",
+ "Contact/SectionDelegate.ui.qml"]
+}
diff --git a/examples/quickcontrols/contactslist/contactmodel.py b/examples/quickcontrols/contactslist/contactmodel.py
new file mode 100644
index 000000000..5d2746c2e
--- /dev/null
+++ b/examples/quickcontrols/contactslist/contactmodel.py
@@ -0,0 +1,116 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import bisect
+from dataclasses import dataclass
+from enum import IntEnum
+
+from PySide6.QtCore import (QAbstractListModel, QEnum, Qt, QModelIndex, Slot,
+ QByteArray)
+from PySide6.QtQml import QmlElement
+
+QML_IMPORT_NAME = "Backend"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class ContactModel(QAbstractListModel):
+
+ @QEnum
+ class ContactRole(IntEnum):
+ FullNameRole = Qt.DisplayRole
+ AddressRole = Qt.UserRole
+ CityRole = Qt.UserRole + 1
+ NumberRole = Qt.UserRole + 2
+
+ @dataclass
+ class Contact:
+ fullName: str
+ address: str
+ city: str
+ number: str
+
+ def __init__(self, parent=None) -> None:
+ super().__init__(parent)
+ self.m_contacts = []
+ self.m_contacts.append(self.Contact("Angel Hogan", "Chapel St. 368 ", "Clearwater",
+ "0311 1823993"))
+ self.m_contacts.append(self.Contact("Felicia Patton", "Annadale Lane 2", "Knoxville",
+ "0368 1244494"))
+ self.m_contacts.append(self.Contact("Grant Crawford", "Windsor Drive 34", "Riverdale",
+ "0351 7826892"))
+ self.m_contacts.append(self.Contact("Gretchen Little", "Sunset Drive 348", "Virginia Beach",
+ "0343 1234991"))
+ self.m_contacts.append(self.Contact("Geoffrey Richards", "University Lane 54", "Trussville",
+ "0423 2144944"))
+ self.m_contacts.append(self.Contact("Henrietta Chavez", "Via Volto San Luca 3",
+ "Piobesi Torinese", "0399 2826994"))
+ self.m_contacts.append(self.Contact("Harvey Chandler", "North Squaw Creek 11",
+ "Madisonville", "0343 1244492"))
+ self.m_contacts.append(self.Contact("Miguel Gomez", "Wild Rose Street 13", "Trussville",
+ "0343 9826996"))
+ self.m_contacts.append(self.Contact("Norma Rodriguez", " Glen Eagles Street 53",
+ "Buffalo", "0241 5826596"))
+ self.m_contacts.append(self.Contact("Shelia Ramirez", "East Miller Ave 68", "Pickerington",
+ "0346 4844556"))
+ self.m_contacts.append(self.Contact("Stephanie Moss", "Piazza Trieste e Trento 77",
+ "Roata Chiusani", "0363 0510490"))
+
+ def rowCount(self, parent=QModelIndex()):
+ return len(self.m_contacts)
+
+ def data(self, index: QModelIndex, role: int):
+ row = index.row()
+ if row < self.rowCount():
+ if role == ContactModel.ContactRole.FullNameRole:
+ return self.m_contacts[row].fullName
+ elif role == ContactModel.ContactRole.AddressRole:
+ return self.m_contacts[row].address
+ elif role == ContactModel.ContactRole.CityRole:
+ return self.m_contacts[row].city
+ elif role == ContactModel.ContactRole.NumberRole:
+ return self.m_contacts[row].number
+
+ def roleNames(self):
+ default = super().roleNames()
+ default[ContactModel.ContactRole.FullNameRole] = QByteArray(b"fullName")
+ default[ContactModel.ContactRole.AddressRole] = QByteArray(b"address")
+ default[ContactModel.ContactRole.CityRole] = QByteArray(b"city")
+ default[ContactModel.ContactRole.NumberRole] = QByteArray(b"number")
+ return default
+
+ @Slot(int)
+ def get(self, row: int):
+ contact = self.m_contacts[row]
+ return {"fullName": contact.fullName, "address": contact.address,
+ "city": contact.city, "number": contact.number}
+
+ @Slot(str, str, str, str)
+ def append(self, full_name: str, address: str, city: str, number: str):
+ contact = self.Contact(full_name, address, city, number)
+ contact_names = [contact.fullName for contact in self.m_contacts]
+ index = bisect.bisect(contact_names, contact.fullName)
+ self.beginInsertRows(QModelIndex(), index, index)
+ self.m_contacts.insert(index, contact)
+ self.endInsertRows()
+
+ @Slot(int, str, str, str, str)
+ def set(self, row: int, full_name: str, address: str, city: str, number: str):
+ if row < 0 or row >= len(self.m_contacts):
+ return
+
+ self.m_contacts[row] = self.Contact(full_name, address, city, number)
+ self.dataChanged(self.index(row, 0), self.index(row, 0),
+ [ContactModel.ContactRole.FullNameRole,
+ ContactModel.ContactRole.AddressRole,
+ ContactModel.ContactRole.CityRole,
+ ContactModel.ContactRole.NumberRole])
+
+ @Slot(int)
+ def remove(self, row):
+ if row < 0 or row >= len(self.m_contacts):
+ return
+
+ self.beginRemoveRows(QModelIndex(), row, row)
+ del self.m_contacts[row]
+ self.endRemoveRows()
diff --git a/examples/quickcontrols/contactslist/doc/contactslist.rst b/examples/quickcontrols/contactslist/doc/contactslist.rst
new file mode 100644
index 000000000..b5540e39b
--- /dev/null
+++ b/examples/quickcontrols/contactslist/doc/contactslist.rst
@@ -0,0 +1,15 @@
+Qt Quick Controls - Contact List
+================================
+
+.. tags:: Android
+
+A QML app using Qt Quick Controls and a Python class that implements a simple
+contact list. This example can also be deployed to Android using
+**pyside6-android-deploy**
+
+A PySide6 application that demonstrates the analogous example in Qt
+`ContactsList <https://doc.qt.io/qt-6.6/qtquickcontrols-contactlist-example.html>`_
+
+.. image:: qtquickcontrols-contactlist.png
+ :width: 400
+ :alt: ContactList Screenshot
diff --git a/examples/quickcontrols/contactslist/doc/qtquickcontrols-contactlist.png b/examples/quickcontrols/contactslist/doc/qtquickcontrols-contactlist.png
new file mode 100644
index 000000000..9f1c30654
--- /dev/null
+++ b/examples/quickcontrols/contactslist/doc/qtquickcontrols-contactlist.png
Binary files differ
diff --git a/examples/quickcontrols/contactslist/main.py b/examples/quickcontrols/contactslist/main.py
new file mode 100644
index 000000000..d501bbdb4
--- /dev/null
+++ b/examples/quickcontrols/contactslist/main.py
@@ -0,0 +1,28 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""
+PySide6 port of Qt Quick Controls Contact List example from Qt v6.x
+"""
+import sys
+from pathlib import Path
+from PySide6.QtGui import QGuiApplication
+from PySide6.QtQml import QQmlApplicationEngine
+
+from contactmodel import ContactModel # noqa: F401
+
+if __name__ == '__main__':
+ app = QGuiApplication(sys.argv)
+ app.setOrganizationName("QtProject")
+ app.setApplicationName("ContactsList")
+ engine = QQmlApplicationEngine()
+
+ engine.addImportPath(Path(__file__).parent)
+ engine.loadFromModule("Contact", "ContactList")
+
+ if not engine.rootObjects():
+ sys.exit(-1)
+
+ ex = app.exec()
+ del engine
+ sys.exit(ex)
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/Main.qml b/examples/quickcontrols/filesystemexplorer/FileSystemModule/Main.qml
new file mode 100644
index 000000000..7f7798ed8
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/Main.qml
@@ -0,0 +1,185 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls.Basic
+import QtQuick.Layouts
+import FileSystemModule
+
+pragma ComponentBehavior: Bound
+
+ApplicationWindow {
+ id: root
+
+ property bool expandPath: false
+ property bool showLineNumbers: true
+ property string currentFilePath: ""
+
+ width: 1100
+ height: 600
+ minimumWidth: 200
+ minimumHeight: 100
+ visible: true
+ color: Colors.background
+ flags: Qt.Window | Qt.FramelessWindowHint
+ title: qsTr("File System Explorer Example")
+
+ function getInfoText() : string {
+ let out = root.currentFilePath
+ if (!out)
+ return qsTr("File System Explorer")
+ return root.expandPath ? out : out.substring(out.lastIndexOf("/") + 1, out.length)
+ }
+
+ menuBar: MyMenuBar {
+ dragWindow: root
+ infoText: root.getInfoText()
+ MyMenu {
+ title: qsTr("File")
+
+ Action {
+ text: qsTr("Increase Font")
+ shortcut: StandardKey.ZoomIn
+ onTriggered: editor.text.font.pixelSize += 1
+ }
+ Action {
+ text: qsTr("Decrease Font")
+ shortcut: StandardKey.ZoomOut
+ onTriggered: editor.text.font.pixelSize -= 1
+ }
+ Action {
+ text: root.showLineNumbers ? qsTr("Toggle Line Numbers OFF")
+ : qsTr("Toggle Line Numbers ON")
+ shortcut: "Ctrl+L"
+ onTriggered: root.showLineNumbers = !root.showLineNumbers
+ }
+ Action {
+ text: root.expandPath ? qsTr("Toggle Short Path")
+ : qsTr("Toggle Expand Path")
+ enabled: root.currentFilePath
+ onTriggered: root.expandPath = !root.expandPath
+ }
+ Action {
+ text: qsTr("Reset Filesystem")
+ enabled: sidebar.currentTabIndex === 1
+ onTriggered: fileSystemView.rootIndex = undefined
+ }
+ Action {
+ text: qsTr("Exit")
+ onTriggered: Qt.exit(0)
+ shortcut: StandardKey.Quit
+ }
+ }
+
+ MyMenu {
+ title: qsTr("Edit")
+
+ Action {
+ text: qsTr("Cut")
+ shortcut: StandardKey.Cut
+ enabled: editor.text.selectedText.length > 0
+ onTriggered: editor.text.cut()
+ }
+ Action {
+ text: qsTr("Copy")
+ shortcut: StandardKey.Copy
+ enabled: editor.text.selectedText.length > 0
+ onTriggered: editor.text.copy()
+ }
+ Action {
+ text: qsTr("Paste")
+ shortcut: StandardKey.Paste
+ enabled: editor.text.canPaste
+ onTriggered: editor.text.paste()
+ }
+ Action {
+ text: qsTr("Select All")
+ shortcut: StandardKey.SelectAll
+ enabled: editor.text.length > 0
+ onTriggered: editor.text.selectAll()
+ }
+ Action {
+ text: qsTr("Undo")
+ shortcut: StandardKey.Undo
+ enabled: editor.text.canUndo
+ onTriggered: editor.text.undo()
+ }
+ }
+ }
+ // Set up the layout of the main components in a row:
+ // [ Sidebar, Navigation, Editor ]
+ RowLayout {
+ anchors.fill: parent
+ spacing: 0
+
+ // Stores the buttons that navigate the application.
+ Sidebar {
+ id: sidebar
+ dragWindow: root
+ Layout.preferredWidth: 50
+ Layout.fillHeight: true
+ }
+
+ // Allows resizing parts of the UI.
+ SplitView {
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ // Customized handle to drag between the Navigation and the Editor.
+ handle: Rectangle {
+ implicitWidth: 10
+ color: SplitHandle.pressed ? Colors.color2 : Colors.background
+ border.color: SplitHandle.hovered ? Colors.color2 : Colors.background
+ opacity: SplitHandle.hovered || navigationView.width < 15 ? 1.0 : 0.0
+
+ Behavior on opacity {
+ OpacityAnimator {
+ duration: 1400
+ }
+ }
+ }
+
+ Rectangle {
+ id: navigationView
+ color: Colors.surface1
+ SplitView.preferredWidth: 250
+ SplitView.fillHeight: true
+ // The stack-layout provides different views, based on the
+ // selected buttons inside the sidebar.
+ StackLayout {
+ anchors.fill: parent
+ currentIndex: sidebar.currentTabIndex
+
+ // Shows the help text.
+ Text {
+ text: qsTr("This example shows how to use and visualize the file system.\n\n"
+ + "Customized Qt Quick Components have been used to achieve this look.\n\n"
+ + "You can edit the files but they won't be changed on the file system.\n\n"
+ + "Click on the folder icon to the left to get started.")
+ wrapMode: TextArea.Wrap
+ color: Colors.text
+ }
+
+ // Shows the files on the file system.
+ FileSystemView {
+ id: fileSystemView
+ color: Colors.surface1
+ onFileClicked: path => root.currentFilePath = path
+ }
+ }
+ }
+
+ // The main view that contains the editor.
+ Editor {
+ id: editor
+ showLineNumbers: root.showLineNumbers
+ currentFilePath: root.currentFilePath
+ SplitView.fillWidth: true
+ SplitView.fillHeight: true
+ }
+ }
+ }
+
+ ResizeButton {
+ resizeWindow: root
+ }
+}
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/app.qrc b/examples/quickcontrols/filesystemexplorer/FileSystemModule/app.qrc
new file mode 100644
index 000000000..fec76fe67
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/app.qrc
@@ -0,0 +1,15 @@
+<RCC>
+ <qresource prefix="/qt/qml/FileSystemModule">
+ <file>qmldir</file>
+ <file>Main.qml</file>
+ <file>qml/About.qml</file>
+ <file>qml/Editor.qml</file>
+ <file>qml/Colors.qml</file>
+ <file>qml/FileSystemView.qml</file>
+ <file>qml/MyMenu.qml</file>
+ <file>qml/MyMenuBar.qml</file>
+ <file>qml/ResizeButton.qml</file>
+ <file>qml/Sidebar.qml</file>
+ <file>qml/WindowDragHandler.qml</file>
+ </qresource>
+</RCC>
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons.qrc b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons.qrc
new file mode 100644
index 000000000..97d8a3d79
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons.qrc
@@ -0,0 +1,14 @@
+<RCC>
+ <qresource>
+ <file>icons/app_icon.svg</file>
+ <file>icons/folder_closed.svg</file>
+ <file>icons/folder_open.svg</file>
+ <file>icons/generic_file.svg</file>
+ <file>icons/globe.svg</file>
+ <file>icons/info_sign.svg</file>
+ <file>icons/light_bulb.svg</file>
+ <file>icons/qt_logo.svg</file>
+ <file>icons/read.svg</file>
+ <file>icons/resize.svg</file>
+ </qresource>
+</RCC>
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/app_icon.svg b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/app_icon.svg
new file mode 100644
index 000000000..5aae4221f
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/app_icon.svg
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg width="800px" height="800px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="#EBDBB2" d="M13.25 8.5a.75.75 0 1 1-.75-.75.75.75 0 0 1 .75.75zM9.911 21.35l.816.578C10.819 21.798 13 18.666 13 13h-1a15.503 15.503 0 0 1-2.089 8.35zM4 6.703V10a2.002 2.002 0 0 1-2 2v1a2.002 2.002 0 0 1 2 2v3.297A3.707 3.707 0 0 0 7.703 22H9v-1H7.703A2.706 2.706 0 0 1 5 18.297V15a2.999 2.999 0 0 0-1.344-2.5A2.999 2.999 0 0 0 5 10V6.703A2.706 2.706 0 0 1 7.703 4H9V3H7.703A3.707 3.707 0 0 0 4 6.703zM20 10V6.703A3.707 3.707 0 0 0 16.297 3H15v1h1.297A2.706 2.706 0 0 1 19 6.703V10a2.999 2.999 0 0 0 1.344 2.5A2.999 2.999 0 0 0 19 15v3.297A2.706 2.706 0 0 1 16.297 21H15v1h1.297A3.707 3.707 0 0 0 20 18.297V15a2.002 2.002 0 0 1 2-2v-1a2.002 2.002 0 0 1-2-2z"/><path fill="none" d="M0 0h24v24H0z"/></svg>
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/folder_closed.svg b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/folder_closed.svg
new file mode 100644
index 000000000..36f119c96
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/folder_closed.svg
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ version="1.1"
+ viewBox="-10 0 1792 1792"
+ id="svg51"
+ sodipodi:docname="folder_closed.svg"
+ width="1792"
+ height="1792"
+ inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs55" />
+ <sodipodi:namedview
+ id="namedview53"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ showgrid="false"
+ inkscape:zoom="0.45033482"
+ inkscape:cx="842.70632"
+ inkscape:cy="896"
+ inkscape:window-width="1846"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg51" />
+ <path
+ fill="currentColor"
+ d="m 1718,672 v 704 q 0,92 -66,158 -66,66 -158,66 H 278 q -92,0 -158,-66 -66,-66 -66,-158 V 416 q 0,-92 66,-158 66,-66 158,-66 h 320 q 92,0 158,66 66,66 66,158 v 32 h 672 q 92,0 158,66 66,66 66,158 z"
+ id="path49" />
+</svg>
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/folder_open.svg b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/folder_open.svg
new file mode 100644
index 000000000..daa55a7a1
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/folder_open.svg
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ version="1.1"
+ viewBox="-10 0 1792 1792"
+ id="svg139"
+ sodipodi:docname="folder_open.svg"
+ width="1792"
+ height="1792"
+ inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs143" />
+ <sodipodi:namedview
+ id="namedview141"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ showgrid="false"
+ inkscape:zoom="0.24358259"
+ inkscape:cx="149.84651"
+ inkscape:cy="1098.1901"
+ inkscape:window-width="1846"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg139" />
+ <path
+ fill="currentColor"
+ d="M 1590,1376 V 672 q 0,-40 -28,-68 -28,-28 -68,-28 H 790 q -40,0 -68,-28 -28,-28 -28,-68 v -64 q 0,-40 -28,-68 -28,-28 -68,-28 H 278 q -40,0 -68,28 -28,28 -28,68 v 960 q 0,40 28,68 28,28 68,28 h 1216 q 40,0 68,-28 28,-28 28,-68 z m 128,-704 v 704 q 0,92 -66,158 -66,66 -158,66 H 278 q -92,0 -158,-66 -66,-66 -66,-158 V 416 q 0,-92 66,-158 66,-66 158,-66 h 320 q 92,0 158,66 66,66 66,158 v 32 h 672 q 92,0 158,66 66,66 66,158 z"
+ id="path137" />
+</svg>
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/generic_file.svg b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/generic_file.svg
new file mode 100644
index 000000000..9c855676e
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/generic_file.svg
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ version="1.1"
+ viewBox="-10 0 1792 1792"
+ id="svg147"
+ sodipodi:docname="generic_file.svg"
+ width="1792"
+ height="1792"
+ inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs151" />
+ <sodipodi:namedview
+ id="namedview149"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ showgrid="false"
+ inkscape:zoom="0.12179129"
+ inkscape:cx="-578.85911"
+ inkscape:cy="1687.3127"
+ inkscape:window-width="1846"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg147" />
+ <path
+ fill="currentColor"
+ d="m 1586,476 q 14,14 28,36 H 1142 V 40 q 22,14 36,28 z m -476,164 h 544 v 1056 q 0,40 -28,68 -28,28 -68,28 H 214 q -40,0 -68,-28 -28,-28 -28,-68 V 96 Q 118,56 146,28 174,0 214,0 h 800 v 544 q 0,40 28,68 28,28 68,28 z m 160,736 v -64 q 0,-14 -9,-23 -9,-9 -23,-9 H 534 q -14,0 -23,9 -9,9 -9,23 v 64 q 0,14 9,23 9,9 23,9 h 704 q 14,0 23,-9 9,-9 9,-23 z m 0,-256 v -64 q 0,-14 -9,-23 -9,-9 -23,-9 H 534 q -14,0 -23,9 -9,9 -9,23 v 64 q 0,14 9,23 9,9 23,9 h 704 q 14,0 23,-9 9,-9 9,-23 z m 0,-256 v -64 q 0,-14 -9,-23 -9,-9 -23,-9 H 534 q -14,0 -23,9 -9,9 -9,23 v 64 q 0,14 9,23 9,9 23,9 h 704 q 14,0 23,-9 9,-9 9,-23 z"
+ id="path145" />
+</svg>
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/globe.svg b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/globe.svg
new file mode 100644
index 000000000..081433813
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/globe.svg
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ version="1.1"
+ viewBox="-10 0 1792 1792"
+ id="svg155"
+ sodipodi:docname="globe.svg"
+ width="1792"
+ height="1792"
+ inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs159" />
+ <sodipodi:namedview
+ id="namedview157"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ showgrid="false"
+ inkscape:zoom="0.12179129"
+ inkscape:cx="504.9622"
+ inkscape:cy="1720.1558"
+ inkscape:window-width="1846"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg155" />
+ <path
+ fill="currentColor"
+ d="m 886,128 q 209,0 385.5,103 176.5,103 279.5,279.5 103,176.5 103,385.5 0,209 -103,385.5 Q 1448,1458 1271.5,1561 1095,1664 886,1664 677,1664 500.5,1561 324,1458 221,1281.5 118,1105 118,896 118,687 221,510.5 324,334 500.5,231 677,128 886,128 Z m 274,521 q -2,1 -9.5,9.5 -7.5,8.5 -13.5,9.5 2,0 4.5,-5 2.5,-5 5,-11 2.5,-6 3.5,-7 6,-7 22,-15 14,-6 52,-12 34,-8 51,11 -2,-2 9.5,-13 11.5,-11 14.5,-12 3,-2 15,-4.5 12,-2.5 15,-7.5 l 2,-22 q -12,1 -17.5,-7 -5.5,-8 -6.5,-21 0,2 -6,8 0,-7 -4.5,-8 -4.5,-1 -11.5,1 -7,2 -9,1 -10,-3 -15,-7.5 -5,-4.5 -8,-16.5 -3,-12 -4,-15 -2,-5 -9.5,-10.5 -7.5,-5.5 -9.5,-10.5 -1,-2 -2.5,-5.5 -1.5,-3.5 -3,-6.5 -1.5,-3 -4,-5.5 -2.5,-2.5 -5.5,-2.5 -3,0 -7,5 -4,5 -7.5,10 -3.5,5 -4.5,5 -3,-2 -6,-1.5 -3,0.5 -4.5,1 -1.5,0.5 -4.5,3 -3,2.5 -5,3.5 -3,2 -8.5,3 -5.5,1 -8.5,2 15,-5 -1,-11 -10,-4 -16,-3 9,-4 7.5,-12 -1.5,-8 -8.5,-14 h 5 q -1,-4 -8.5,-8.5 -7.5,-4.5 -17.5,-8.5 -10,-4 -13,-6 -8,-5 -34,-9.5 -26,-4.5 -33,-0.5 -5,6 -4.5,10.5 0.5,4.5 4,14 3.5,9.5 3.5,12.5 1,6 -5.5,13 -6.5,7 -6.5,12 0,7 14,15.5 14,8.5 10,21.5 -3,8 -16,16 -13,8 -16,12 -5,8 -1.5,18.5 3.5,10.5 10.5,16.5 2,2 1.5,4 -0.5,2 -3.5,4.5 -3,2.5 -5.5,4 -2.5,1.5 -6.5,3.5 l -3,2 q -11,5 -20.5,-6 -9.5,-11 -13.5,-26 -7,-25 -16,-30 -23,-8 -29,1 -5,-13 -41,-26 -25,-9 -58,-4 6,-1 0,-15 -7,-15 -19,-12 3,-6 4,-17.5 1,-11.5 1,-13.5 3,-13 12,-23 1,-1 7,-8.5 6,-7.5 9.5,-13.5 3.5,-6 0.5,-6 35,4 50,-11 5,-5 11.5,-17 6.5,-12 10.5,-17 9,-6 14,-5.5 5,0.5 14.5,5.5 9.5,5 14.5,5 14,1 15.5,-11 1.5,-12 -7.5,-20 12,1 3,-17 -5,-7 -8,-9 -12,-4 -27,5 -8,4 2,8 -1,-1 -9.5,10.5 Q 927,340 919,346 q -8,6 -16,-5 -1,-1 -5.5,-13.5 Q 893,315 888,314 q -8,0 -16,15 3,-8 -11,-15 -14,-7 -24,-8 19,-12 -8,-27 -7,-4 -20.5,-5 -13.5,-1 -19.5,4 -5,7 -5.5,11.5 -0.5,4.5 5,8 5.5,3.5 10.5,5.5 5,2 11.5,4 6.5,2 8.5,3 14,10 8,14 -2,1 -8.5,3.5 -6.5,2.5 -11.5,4.5 -5,2 -6,4 -3,4 0,14 3,10 -2,14 -5,-5 -9,-17.5 -4,-12.5 -7,-16.5 7,9 -25,6 l -10,-1 q -4,0 -16,2 -12,2 -20.5,1 -8.5,-1 -13.5,-8 -4,-8 0,-20 1,-4 4,-2 -4,-3 -11,-9.5 -7,-6.5 -10,-8.5 -46,15 -94,41 6,1 12,-1 5,-2 13,-6.5 8,-4.5 10,-5.5 34,-14 42,-7 l 5,-5 q 14,16 20,25 -7,-4 -30,-1 -20,6 -22,12 7,12 5,18 -4,-3 -11.5,-10 -7.5,-7 -14.5,-11 -7,-4 -15,-5 -16,0 -22,1 -146,80 -235,222 7,7 12,8 4,1 5,9 1,8 2.5,11 1.5,3 11.5,-3 9,8 3,19 1,-1 44,27 19,17 21,21 3,11 -10,18 -1,-2 -9,-9 -8,-7 -9,-4 -3,5 0.5,18.5 3.5,13.5 10.5,12.5 -7,0 -9.5,16 -2.5,16 -2.5,35.5 0,19.5 -1,23.5 l 2,1 q -3,12 5.5,34.5 8.5,22.5 21.5,19.5 -13,3 20,43 6,8 8,9 3,2 12,7.5 9,5.5 15,10 6,4.5 10,10.5 4,5 10,22.5 6,17.5 14,23.5 -2,6 9.5,20 11.5,14 10.5,23 -1,0 -2.5,1 -1.5,1 -2.5,1 3,7 15.5,14 12.5,7 15.5,13 1,3 2,10 1,7 3,11 2,4 8,2 2,-20 -24,-62 -15,-25 -17,-29 -3,-5 -5.5,-15.5 Q 541,919 539,915 q 2,0 6,1.5 4,1.5 8.5,3.5 4.5,2 7.5,4 3,2 2,3 -3,7 2,17.5 5,10.5 12,18.5 7,8 17,19 10,11 12,13 6,6 14,19.5 8,13.5 0,13.5 9,0 20,10 11,10 17,20 5,8 8,26 3,18 5,24 2,7 8.5,13.5 6.5,6.5 12.5,9.5 l 16,8 q 0,0 13,7 5,2 18.5,10.5 13.5,8.5 21.5,11.5 10,4 16,4 6,0 14.5,-2.5 8.5,-2.5 13.5,-3.5 15,-2 29,15 14,17 21,21 36,19 55,11 -2,1 0.5,7.5 2.5,6.5 8,15.5 5.5,9 9,14.5 3.5,5.5 5.5,8.5 5,6 18,15 13,9 18,15 6,-4 7,-9 -3,8 7,20 10,12 18,10 14,-3 14,-32 -31,15 -49,-18 0,-1 -2.5,-5.5 -2.5,-4.5 -4,-8.5 -1.5,-4 -2.5,-8.5 -1,-4.5 0,-7.5 1,-3 5,-3 9,0 10,-3.5 1,-3.5 -2,-12.5 -3,-9 -4,-13 -1,-8 -11,-20 -10,-12 -12,-15 -5,9 -16,8 -11,-1 -16,-9 0,1 -1.5,5.5 -1.5,4.5 -1.5,6.5 -13,0 -15,-1 1,-3 2.5,-17.5 1.5,-14.5 3.5,-22.5 1,-4 5.5,-12 4.5,-8 7.5,-14.5 3,-6.5 4,-12.5 1,-6 -4.5,-9.5 -5.5,-3.5 -17.5,-2.5 -19,1 -26,20 -1,3 -3,10.5 -2,7.5 -5,11.5 -3,4 -9,7 -7,3 -24,2 -17,-1 -24,-5 -13,-8 -22.5,-29 -9.5,-21 -9.5,-37 0,-10 2.5,-26.5 2.5,-16.5 3,-25 0.5,-8.5 -5.5,-24.5 3,-2 9,-9.5 6,-7.5 10,-10.5 2,-1 4.5,-1.5 2.5,-0.5 4.5,0 2,0.5 4,-1.5 2,-2 3,-6 -1,-1 -4,-3 -3,-3 -4,-3 7,3 28.5,-1.5 21.5,-4.5 27.5,1.5 15,11 22,-2 0,-1 -2.5,-9.5 Q 870,931 872,926 q 5,27 29,9 3,3 15.5,5 12.5,2 17.5,5 3,2 7,5.5 4,3.5 5.5,4.5 1.5,1 5,-0.5 3.5,-1.5 8.5,-6.5 10,14 12,24 11,40 19,44 7,3 11,2 4,-1 4.5,-9.5 0.5,-8.5 0,-14 Q 1006,989 1005,982 l -1,-8 v -18 l -1,-8 q -15,-3 -18.5,-12 -3.5,-9 1.5,-18.5 5,-9.5 15,-18.5 1,-1 8,-3.5 7,-2.5 15.5,-6.5 8.5,-4 12.5,-8 21,-19 15,-35 7,0 11,-9 -1,0 -5,-3 -4,-3 -7.5,-5 -3.5,-2 -4.5,-2 9,-5 2,-16 5,-3 7.5,-11 2.5,-8 7.5,-10 9,12 21,2 7,-8 1,-16 5,-7 20.5,-10.5 15.5,-3.5 18.5,-9.5 7,2 8,-2 1,-4 1,-12 0,-8 3,-12 4,-5 15,-9 11,-4 13,-5 l 17,-11 q 3,-4 0,-4 18,2 31,-11 10,-11 -6,-20 3,-6 -3,-9.5 -6,-3.5 -15,-5.5 3,-1 11.5,-0.5 8.5,0.5 10.5,-1.5 15,-10 -7,-16 -17,-5 -43,12 z m -163,877 q 206,-36 351,-189 -3,-3 -12.5,-4.5 -9.5,-1.5 -12.5,-3.5 -18,-7 -24,-8 1,-7 -2.5,-13 -3.5,-6 -8,-9 -4.5,-3 -12.5,-8 -8,-5 -11,-7 -2,-2 -7,-6 -5,-4 -7,-5.5 -2,-1.5 -7.5,-4.5 -5.5,-3 -8.5,-2 -3,1 -10,1 l -3,1 q -3,1 -5.5,2.5 -2.5,1.5 -5.5,3 -3,1.5 -4,3 -1,1.5 0,2.5 -21,-17 -36,-22 -5,-1 -11,-5.5 -6,-4.5 -10.5,-7 -4.5,-2.5 -10,-1.5 -5.5,1 -11.5,7 -5,5 -6,15 -1,10 -2,13 -7,-5 0,-17.5 7,-12.5 2,-18.5 -3,-6 -10.5,-4.5 -7.5,1.5 -12,4.5 -4.5,3 -11.5,8.5 -7,5.5 -9,6.5 -2,1 -8.5,5.5 -6.5,4.5 -8.5,7.5 -3,4 -6,12 -3,8 -5,11 -2,-4 -11.5,-6.5 -9.5,-2.5 -9.5,-5.5 2,10 4,35 2,25 5,38 7,31 -12,48 -27,25 -29,40 -4,22 12,26 0,7 -8,20.5 -8,13.5 -7,21.5 0,6 2,16 z"
+ id="path153" />
+</svg>
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/info_sign.svg b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/info_sign.svg
new file mode 100644
index 000000000..517f76360
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/info_sign.svg
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ version="1.1"
+ viewBox="-10 0 1792 1792"
+ id="svg163"
+ sodipodi:docname="info_sign.svg"
+ width="1792"
+ height="1792"
+ inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs167" />
+ <sodipodi:namedview
+ id="namedview165"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ showgrid="false"
+ inkscape:zoom="0.48716518"
+ inkscape:cx="72.870561"
+ inkscape:cy="896"
+ inkscape:window-width="1846"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg163" />
+ <path
+ fill="currentColor"
+ d="m 1142,1376 v -160 q 0,-14 -9,-23 -9,-9 -23,-9 h -96 V 672 q 0,-14 -9,-23 -9,-9 -23,-9 H 662 q -14,0 -23,9 -9,9 -9,23 v 160 q 0,14 9,23 9,9 23,9 h 96 v 320 h -96 q -14,0 -23,9 -9,9 -9,23 v 160 q 0,14 9,23 9,9 23,9 h 448 q 14,0 23,-9 9,-9 9,-23 z M 1014,480 V 320 q 0,-14 -9,-23 -9,-9 -23,-9 H 790 q -14,0 -23,9 -9,9 -9,23 v 160 q 0,14 9,23 9,9 23,9 h 192 q 14,0 23,-9 9,-9 9,-23 z m 640,416 q 0,209 -103,385.5 Q 1448,1458 1271.5,1561 1095,1664 886,1664 677,1664 500.5,1561 324,1458 221,1281.5 118,1105 118,896 118,687 221,510.5 324,334 500.5,231 677,128 886,128 1095,128 1271.5,231 1448,334 1551,510.5 1654,687 1654,896 Z"
+ id="path161" />
+</svg>
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/light_bulb.svg b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/light_bulb.svg
new file mode 100644
index 000000000..ed2ed55fb
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/light_bulb.svg
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ version="1.1"
+ viewBox="-10 0 1538 1538"
+ id="svg4"
+ sodipodi:docname="light_bulb.svg"
+ width="1538"
+ height="1538"
+ inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs8" />
+ <sodipodi:namedview
+ id="namedview6"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ showgrid="false"
+ fit-margin-top="1"
+ fit-margin-left="1"
+ fit-margin-right="1"
+ fit-margin-bottom="1"
+ lock-margins="true"
+ inkscape:zoom="0.16"
+ inkscape:cx="1234.375"
+ inkscape:cy="409.375"
+ inkscape:window-width="1846"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg4" />
+ <path
+ fill="currentColor"
+ d="m 983,449 q 0,13 -9.5,22.5 Q 964,481 951,481 938,481 928.5,471.5 919,462 919,449 919,403 865,378 811,353 759,353 746,353 736.5,343.5 727,334 727,321 q 0,-13 9.5,-22.5 9.5,-9.5 22.5,-9.5 50,0 99.5,16 49.5,16 87,54 37.5,38 37.5,90 z m 160,0 q 0,-72 -34.5,-134 -34.5,-62 -90,-101.5 Q 963,174 895.5,151.5 828,129 759,129 690,129 622.5,151.5 555,174 499.5,213.5 444,253 409.5,315 375,377 375,449 q 0,101 68,180 10,11 30.5,33 20.5,22 30.5,33 128,153 141,298 h 228 q 13,-145 141,-298 10,-11 30.5,-33 20.5,-22 30.5,-33 68,-79 68,-180 z m 128,0 q 0,155 -103,268 -45,49 -74.5,87 -29.5,38 -59.5,95.5 -30,57.5 -34,107.5 47,28 47,82 0,37 -25,64 25,27 25,64 0,52 -45,81 13,23 13,47 0,46 -31.5,71 -31.5,25 -77.5,25 -20,44 -60,70 -40,26 -87,26 -47,0 -87,-26 -40,-26 -60,-70 -46,0 -77.5,-25 -31.5,-25 -31.5,-71 0,-24 13,-47 -45,-29 -45,-81 0,-37 25,-64 -25,-27 -25,-64 0,-54 47,-82 Q 514,957 484,899.5 454,842 424.5,804 395,766 350,717 247,604 247,449 247,350 291.5,264.5 336,179 408.5,122.5 481,66 572.5,33.5 664,1 759,1 q 95,0 186.5,32.5 91.5,32.5 164,89 72.5,56.5 117,142 Q 1271,350 1271,449 Z"
+ id="path2" />
+</svg>
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/qt_logo.svg b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/qt_logo.svg
new file mode 100644
index 000000000..062daff3e
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/qt_logo.svg
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns="http://www.w3.org/2000/svg"
+ width="462pt"
+ height="339pt"
+ viewBox="0 0 462 339"
+ version="1.1"
+ id="svg2"
+>
+ <path
+ fill="#41cd52"
+ d=" M 63.50 0.00 L 462.00 0.00 L 462.00 274.79 C 440.60 296.26 419.13 317.66 397.61 339.00 L 0.00 339.00 L 0.00 63.39 C 21.08 42.18 42.34 21.13 63.50 0.00 Z"
+ id="path6"/>
+ <path
+ d=" M 122.37 71.33 C 137.50 61.32 156.21 58.79 174.00 58.95 C 190.94 59.16 208.72 62.13 222.76 72.24 C 232.96 79.41 239.59 90.48 244.01 101.93 C 251.16 120.73 253.26 141.03 253.50 161.01 C 253.53 181.13 252.62 201.69 245.96 220.86 C 241.50 233.90 233.01 245.48 221.81 253.52 C 229.87 266.58 238.09 279.54 246.15 292.60 C 236.02 297.27 225.92 301.97 215.78 306.62 C 207.15 292.38 198.56 278.11 189.90 263.89 C 178.19 265.81 166.21 265.66 154.44 264.36 C 140.34 262.67 125.97 258.37 115.09 248.88 C 106.73 241.64 101.48 231.51 97.89 221.21 C 92.01 203.79 90.43 185.25 90.16 166.97 C 90.02 147.21 91.28 127.14 97.24 108.18 C 101.85 93.92 109.48 79.69 122.37 71.33 Z"
+ id="path8"
+ fill="#ffffff"/>
+ <path
+ d=" M 294.13 70.69 C 304.73 70.68 315.33 70.68 325.93 70.69 C 325.96 84.71 325.92 98.72 325.95 112.74 C 339.50 112.76 353.05 112.74 366.60 112.75 C 366.37 121.85 366.12 130.95 365.86 140.05 C 352.32 140.08 338.79 140.04 325.25 140.07 C 325.28 163.05 325.18 186.03 325.30 209.01 C 325.56 215.30 325.42 221.94 328.19 227.75 C 330.21 232.23 335.65 233.38 340.08 233.53 C 348.43 233.50 356.77 233.01 365.12 232.86 C 365.63 241.22 366.12 249.59 366.60 257.95 C 349.99 260.74 332.56 264.08 316.06 258.86 C 309.11 256.80 302.63 252.19 299.81 245.32 C 294.76 233.63 294.35 220.62 294.13 208.07 C 294.11 185.40 294.13 162.74 294.12 140.07 C 286.73 140.05 279.34 140.08 271.95 140.05 C 271.93 130.96 271.93 121.86 271.95 112.76 C 279.34 112.73 286.72 112.77 294.11 112.74 C 294.14 98.72 294.10 84.71 294.13 70.69 Z"
+ id="path10"
+ fill="#ffffff"/>
+ <path
+ fill="#41cd52"
+ d=" M 160.51 87.70 C 170.80 86.36 181.60 86.72 191.34 90.61 C 199.23 93.73 205.93 99.84 209.47 107.58 C 214.90 119.31 216.98 132.26 218.03 145.05 C 219.17 162.07 219.01 179.25 216.66 196.17 C 215.01 206.24 212.66 216.85 205.84 224.79 C 198.92 232.76 188.25 236.18 178.01 236.98 C 167.21 237.77 155.82 236.98 146.07 231.87 C 140.38 228.84 135.55 224.09 132.73 218.27 C 129.31 211.30 127.43 203.69 126.11 196.07 C 122.13 171.91 121.17 146.91 126.61 122.89 C 128.85 113.83 132.11 104.53 138.73 97.70 C 144.49 91.85 152.51 88.83 160.51 87.70 Z"
+ id="path12"/>
+</svg>
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/read.svg b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/read.svg
new file mode 100644
index 000000000..c3af473d2
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/read.svg
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ version="1.1"
+ viewBox="-11 0 1792 1792"
+ id="svg184"
+ sodipodi:docname="read.svg"
+ width="1792"
+ height="1792"
+ inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs188" />
+ <sodipodi:namedview
+ id="namedview186"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ showgrid="false"
+ inkscape:zoom="0.24358259"
+ inkscape:cx="519.33104"
+ inkscape:cy="1089.9794"
+ inkscape:window-width="1846"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg184" />
+ <path
+ fill="currentColor"
+ d="m 1691.8576,478 q 40,57 18,129 l -275,906 q -19,64 -76.5,107.5 -57.5,43.5 -122.5,43.5 H 312.85764 q -77,0 -148.5,-53.5 Q 92.857644,1557 64.857644,1479 q -24,-67 -2,-127 0,-4 3,-27 3,-23 4,-37 1,-8 -3,-21.5 -4,-13.5 -3,-19.5 2,-11 8,-21 6,-10 16.5,-23.5 10.5,-13.5 16.499996,-23.5 23,-38 45,-91.5 22,-53.5 30,-91.5 3,-10 0.5,-30 -2.5,-20 -0.5,-28 3,-11 17,-28 14,-17 17,-23 21,-36 42,-92 21,-56 25,-90 1,-9 -2.5,-32 -3.5,-23 0.5,-28 4,-13 22,-30.5 18,-17.5 22,-22.5 19,-26 42.5,-84.5 23.5,-58.5 27.5,-96.5 1,-8 -3,-25.5 -4,-17.5 -2,-26.5 2,-8 9,-18 7,-10 18,-23 11,-13 17,-21 8,-12 16.5,-30.5 8.5,-18.5 15,-35 6.5,-16.5 16,-36 9.5,-19.5 19.5,-32 10,-12.5 26.5,-23.5 16.5,-11 36,-11.5 19.5,-0.5 47.5,5.5 l -1,3 q 38,-9 51,-9 h 760.99996 q 74,0 114,56 40,56 18,130 l -274,906 q -36,119 -71.5,153.5 -35.5,34.5 -128.5,34.5 H 208.85764 q -27,0 -38,15 -11,16 -1,43 24,70 144,70 h 922.99996 q 29,0 56,-15.5 27,-15.5 35,-41.5 l 300,-987 q 7,-22 5,-57 38,15 59,43 z m -1063.99996,2 q -4,13 2,22.5 6,9.5 20,9.5 h 607.99996 q 13,0 25.5,-9.5 12.5,-9.5 16.5,-22.5 l 21,-64 q 4,-13 -2,-22.5 -6,-9.5 -20,-9.5 H 690.85764 q -13,0 -25.5,9.5 -12.5,9.5 -16.5,22.5 z m -83,256 q -4,13 2,22.5 6,9.5 20,9.5 h 607.99996 q 13,0 25.5,-9.5 12.5,-9.5 16.5,-22.5 l 21,-64 q 4,-13 -2,-22.5 -6,-9.5 -20,-9.5 H 607.85764 q -13,0 -25.5,9.5 -12.5,9.5 -16.5,22.5 z"
+ id="path182" />
+</svg>
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/resize.svg b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/resize.svg
new file mode 100644
index 000000000..e86d612f3
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/icons/resize.svg
@@ -0,0 +1,6 @@
+<svg xmlns='http://www.w3.org/2000/svg' width='100' height='100'>
+ <line x1="00" y1="100" x2="100" y2="00" stroke="black" stroke-width="3" />
+ <line x1="20" y1="100" x2="100" y2="20" stroke="black" stroke-width="3" />
+ <line x1="40" y1="100" x2="100" y2="40" stroke="black" stroke-width="3" />
+ <line x1="60" y1="100" x2="100" y2="60" stroke="black" stroke-width="3" />
+</svg>
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/About.qml b/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/About.qml
new file mode 100644
index 000000000..178bf03e4
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/About.qml
@@ -0,0 +1,93 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls.Basic
+import FileSystemModule
+
+ApplicationWindow {
+ id: root
+ width: 650
+ height: 550
+ flags: Qt.Window | Qt.FramelessWindowHint
+ color: Colors.surface1
+
+ menuBar: MyMenuBar {
+ id: menuBar
+
+ dragWindow: root
+ implicitHeight: 27
+ infoText: "About Qt"
+ }
+
+ Image {
+ id: logo
+
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.top: parent.top
+ anchors.margins: 20
+
+ source: "../icons/qt_logo.svg"
+ sourceSize.width: 80
+ sourceSize.height: 80
+ fillMode: Image.PreserveAspectFit
+
+ smooth: true
+ antialiasing: true
+ asynchronous: true
+ }
+
+ ScrollView {
+ anchors.top: logo.bottom
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.bottom: parent.bottom
+ anchors.margins: 20
+
+ TextArea {
+ selectedTextColor: Colors.textFile
+ selectionColor: Colors.selection
+ horizontalAlignment: Text.AlignHCenter
+ textFormat: Text.RichText
+
+ text: qsTr("<h3>About Qt</h3>"
+ + "<p>This program uses Qt version %1.</p>"
+ + "<p>Qt is a C++ toolkit for cross-platform application "
+ + "development.</p>"
+ + "<p>Qt provides single-source portability across all major desktop "
+ + "operating systems. It is also available for embedded Linux and other "
+ + "embedded and mobile operating systems.</p>"
+ + "<p>Qt is available under multiple licensing options designed "
+ + "to accommodate the needs of our various users.</p>"
+ + "<p>Qt licensed under our commercial license agreement is appropriate "
+ + "for development of proprietary/commercial software where you do not "
+ + "want to share any source code with third parties or otherwise cannot "
+ + "comply with the terms of GNU (L)GPL.</p>"
+ + "<p>Qt licensed under GNU (L)GPL is appropriate for the "
+ + "development of Qt&nbsp;applications provided you can comply with the terms "
+ + "and conditions of the respective licenses.</p>"
+ + "<p>Please see <a href=\"http://%2/\">%2</a> "
+ + "for an overview of Qt licensing.</p>"
+ + "<p>Copyright (C) %3 The Qt Company Ltd and other "
+ + "contributors.</p>"
+ + "<p>Qt and the Qt logo are trademarks of The Qt Company Ltd.</p>"
+ + "<p>Qt is The Qt Company Ltd product developed as an open source "
+ + "project. See <a href=\"http://%4/\">%4</a> for more information.</p>")
+ .arg(Application.version).arg("qt.io/licensing").arg("2023").arg("qt.io")
+ color: Colors.textFile
+ wrapMode: Text.WordWrap
+ readOnly: true
+ antialiasing: true
+ background: null
+
+ onLinkActivated: function(link) {
+ Qt.openUrlExternally(link)
+ }
+ }
+ }
+
+ ResizeButton {
+ resizeWindow: root
+ }
+}
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/Colors.qml b/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/Colors.qml
new file mode 100644
index 000000000..285667773
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/Colors.qml
@@ -0,0 +1,23 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+
+pragma Singleton
+
+QtObject {
+ readonly property color background: "#292828"
+ readonly property color surface1: "#171819"
+ readonly property color surface2: "#090A0C"
+ readonly property color text: "#D4BE98"
+ readonly property color textFile: "#E1D2B7"
+ readonly property color disabledText: "#2C313A"
+ readonly property color selection: "#4B4A4A"
+ readonly property color active: "#292828"
+ readonly property color inactive: "#383737"
+ readonly property color folder: "#383737"
+ readonly property color icon: "#383737"
+ readonly property color iconIndicator: "#D5B35D"
+ readonly property color color1: "#A7B464"
+ readonly property color color2: "#D3869B"
+}
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/Editor.qml b/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/Editor.qml
new file mode 100644
index 000000000..80f7c04c5
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/Editor.qml
@@ -0,0 +1,160 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Layouts
+import QtQuick.Controls
+import FileSystemModule
+
+pragma ComponentBehavior: Bound
+
+// This is the text editor that displays the currently open file, including
+// their corresponding line numbers.
+Rectangle {
+ id: root
+
+ required property string currentFilePath
+ required property bool showLineNumbers
+ property alias text: textArea
+ property int currentLineNumber: -1
+ property int rowHeight: Math.ceil(fontMetrics.lineSpacing)
+
+ color: Colors.background
+
+ onWidthChanged: textArea.update()
+ onHeightChanged: textArea.update()
+
+ RowLayout {
+ anchors.fill: parent
+ // We use a flickable to synchronize the position of the editor and
+ // the line numbers. This is necessary because the line numbers can
+ // extend the available height.
+ Flickable {
+ id: lineNumbers
+
+ // Calculate the width based on the logarithmic scale.
+ Layout.preferredWidth: fontMetrics.averageCharacterWidth
+ * (Math.floor(Math.log10(textArea.lineCount)) + 1) + 10
+ Layout.fillHeight: true
+
+ interactive: false
+ contentY: editorFlickable.contentY
+ visible: textArea.text !== "" && root.showLineNumbers
+
+ Column {
+ anchors.fill: parent
+ Repeater {
+ id: repeatedLineNumbers
+
+ model: LineNumberModel {
+ lineCount: textArea.text !== "" ? textArea.lineCount : 0
+ }
+
+ delegate: Item {
+ required property int index
+
+ width: parent.width
+ height: root.rowHeight
+ Label {
+ id: numbers
+
+ text: parent.index + 1
+
+ width: parent.width
+ height: parent.height
+ horizontalAlignment: Text.AlignLeft
+ verticalAlignment: Text.AlignVCenter
+
+ color: (root.currentLineNumber === parent.index)
+ ? Colors.iconIndicator : Qt.darker(Colors.text, 2)
+ font: textArea.font
+ }
+ Rectangle {
+ id: indicator
+
+ anchors.left: numbers.right
+ width: 1
+ height: parent.height
+ color: Qt.darker(Colors.text, 3)
+ }
+ }
+ }
+ }
+ }
+
+ Flickable {
+ id: editorFlickable
+
+ property alias textArea: textArea
+
+ // We use an inline component to customize the horizontal and vertical
+ // scroll-bars. This is convenient when the component is only used in one file.
+ component MyScrollBar: ScrollBar {
+ id: scrollBar
+ background: Rectangle {
+ implicitWidth: scrollBar.interactive ? 8 : 4
+ implicitHeight: scrollBar.interactive ? 8 : 4
+
+ opacity: scrollBar.active && scrollBar.size < 1.0 ? 1.0 : 0.0
+ color: Colors.background
+ Behavior on opacity {
+ OpacityAnimator {
+ duration: 500
+ }
+ }
+ }
+ contentItem: Rectangle {
+ implicitWidth: scrollBar.interactive ? 8 : 4
+ implicitHeight: scrollBar.interactive ? 8 : 4
+ opacity: scrollBar.active && scrollBar.size < 1.0 ? 1.0 : 0.0
+ color: Colors.color1
+ Behavior on opacity {
+ OpacityAnimator {
+ duration: 1000
+ }
+ }
+ }
+ }
+
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+ ScrollBar.horizontal: MyScrollBar {}
+ ScrollBar.vertical: MyScrollBar {}
+
+ boundsBehavior: Flickable.StopAtBounds
+
+ TextArea.flickable: TextArea {
+ id: textArea
+ anchors.fill: parent
+
+ focus: false
+ topPadding: 0
+ leftPadding: 10
+
+ text: FileSystemModel.readFile(root.currentFilePath)
+ tabStopDistance: fontMetrics.averageCharacterWidth * 4
+
+ // Grab the current line number from the C++ interface.
+ onCursorPositionChanged: {
+ root.currentLineNumber = FileSystemModel.currentLineNumber(
+ textArea.textDocument, textArea.cursorPosition)
+ }
+
+ color: Colors.textFile
+ selectedTextColor: Colors.textFile
+ selectionColor: Colors.selection
+
+ textFormat: TextEdit.PlainText
+ renderType: Text.QtRendering
+ selectByMouse: true
+ antialiasing: true
+ background: null
+ }
+
+ FontMetrics {
+ id: fontMetrics
+ font: textArea.font
+ }
+ }
+ }
+}
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/FileSystemView.qml b/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/FileSystemView.qml
new file mode 100644
index 000000000..db955168c
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/FileSystemView.qml
@@ -0,0 +1,156 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Effects
+import QtQuick.Controls.Basic
+import FileSystemModule
+
+pragma ComponentBehavior: Bound
+
+// This is the file system view which gets populated by the C++ model.
+Rectangle {
+ id: root
+
+ signal fileClicked(string filePath)
+ property alias rootIndex: fileSystemTreeView.rootIndex
+
+ TreeView {
+ id: fileSystemTreeView
+
+ property int lastIndex: -1
+
+ anchors.fill: parent
+ model: FileSystemModel
+ rootIndex: FileSystemModel.rootIndex
+ boundsBehavior: Flickable.StopAtBounds
+ boundsMovement: Flickable.StopAtBounds
+ clip: true
+
+ Component.onCompleted: fileSystemTreeView.toggleExpanded(0)
+
+ // The delegate represents a single entry in the filesystem.
+ delegate: TreeViewDelegate {
+ id: treeDelegate
+ indentation: 8
+ implicitWidth: fileSystemTreeView.width > 0 ? fileSystemTreeView.width : 250
+ implicitHeight: 25
+
+ // Since we have the 'ComponentBehavior Bound' pragma, we need to
+ // require these properties from our model. This is a convenient way
+ // to bind the properties provided by the model's role names.
+ required property int index
+ required property url filePath
+ required property string fileName
+
+ indicator: Image {
+ id: directoryIcon
+
+ x: treeDelegate.leftMargin + (treeDelegate.depth * treeDelegate.indentation)
+ anchors.verticalCenter: parent.verticalCenter
+ source: treeDelegate.hasChildren ? (treeDelegate.expanded
+ ? "../icons/folder_open.svg" : "../icons/folder_closed.svg")
+ : "../icons/generic_file.svg"
+ sourceSize.width: 20
+ sourceSize.height: 20
+ fillMode: Image.PreserveAspectFit
+
+ smooth: true
+ antialiasing: true
+ asynchronous: true
+ }
+
+ contentItem: Text {
+ text: treeDelegate.fileName
+ color: Colors.text
+ }
+
+ background: Rectangle {
+ color: (treeDelegate.index === fileSystemTreeView.lastIndex)
+ ? Colors.selection
+ : (hoverHandler.hovered ? Colors.active : "transparent")
+ }
+
+ // We color the directory icons with this MultiEffect, where we overlay
+ // the colorization color ontop of the SVG icons.
+ MultiEffect {
+ id: iconOverlay
+
+ anchors.fill: directoryIcon
+ source: directoryIcon
+ colorization: 1.0
+ brightness: 1.0
+ colorizationColor: {
+ const isFile = treeDelegate.index === fileSystemTreeView.lastIndex
+ && !treeDelegate.hasChildren;
+ if (isFile)
+ return Qt.lighter(Colors.folder, 3)
+
+ const isExpandedFolder = treeDelegate.expanded && treeDelegate.hasChildren;
+ if (isExpandedFolder)
+ return Colors.color2
+ else
+ return Colors.folder
+ }
+ }
+
+ HoverHandler {
+ id: hoverHandler
+ }
+
+ TapHandler {
+ acceptedButtons: Qt.LeftButton | Qt.RightButton
+ onSingleTapped: (eventPoint, button) => {
+ switch (button) {
+ case Qt.LeftButton:
+ fileSystemTreeView.toggleExpanded(treeDelegate.row)
+ fileSystemTreeView.lastIndex = treeDelegate.index
+ // If this model item doesn't have children, it means it's
+ // representing a file.
+ if (!treeDelegate.hasChildren)
+ root.fileClicked(treeDelegate.filePath)
+ break;
+ case Qt.RightButton:
+ if (treeDelegate.hasChildren)
+ contextMenu.popup();
+ break;
+ }
+ }
+ }
+
+ MyMenu {
+ id: contextMenu
+ Action {
+ text: qsTr("Set as root index")
+ onTriggered: {
+ fileSystemTreeView.rootIndex = fileSystemTreeView.index(treeDelegate.row, 0)
+ }
+ }
+ Action {
+ text: qsTr("Reset root index")
+ onTriggered: fileSystemTreeView.rootIndex = undefined
+ }
+ }
+ }
+
+ // Provide our own custom ScrollIndicator for the TreeView.
+ ScrollIndicator.vertical: ScrollIndicator {
+ active: true
+ implicitWidth: 15
+
+ contentItem: Rectangle {
+ implicitWidth: 6
+ implicitHeight: 6
+
+ color: Colors.color1
+ opacity: fileSystemTreeView.movingVertically ? 0.5 : 0.0
+
+ Behavior on opacity {
+ OpacityAnimator {
+ duration: 500
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/MyMenu.qml b/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/MyMenu.qml
new file mode 100644
index 000000000..1f1d30c56
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/MyMenu.qml
@@ -0,0 +1,45 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls.Basic
+import FileSystemModule
+
+Menu {
+ id: root
+
+ delegate: MenuItem {
+ id: menuItem
+ contentItem: Item {
+ Text {
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+ anchors.leftMargin: 5
+
+ text: menuItem.text
+ color: enabled ? Colors.text : Colors.disabledText
+ }
+ Rectangle {
+ id: indicator
+
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.right: parent.right
+ width: 6
+ height: parent.height
+
+ visible: menuItem.highlighted
+ color: Colors.color2
+ }
+ }
+ background: Rectangle {
+ implicitWidth: 210
+ implicitHeight: 35
+ color: menuItem.highlighted ? Colors.active : "transparent"
+ }
+ }
+ background: Rectangle {
+ implicitWidth: 210
+ implicitHeight: 35
+ color: Colors.surface2
+ }
+}
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/MyMenuBar.qml b/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/MyMenuBar.qml
new file mode 100644
index 000000000..4874a2c03
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/MyMenuBar.qml
@@ -0,0 +1,177 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Layouts
+import QtQuick.Controls.Basic
+import FileSystemModule
+
+// The MenuBar also serves as a controller for our window as we don't use any decorations.
+MenuBar {
+ id: root
+
+ required property ApplicationWindow dragWindow
+ property alias infoText: windowInfo.text
+
+ // Customization of the top level menus inside the MenuBar
+ delegate: MenuBarItem {
+ id: menuBarItem
+
+ contentItem: Text {
+ horizontalAlignment: Text.AlignLeft
+ verticalAlignment: Text.AlignVCenter
+
+ text: menuBarItem.text
+ font: menuBarItem.font
+ elide: Text.ElideRight
+ color: menuBarItem.highlighted ? Colors.textFile : Colors.text
+ opacity: enabled ? 1.0 : 0.3
+ }
+
+ background: Rectangle {
+ id: background
+
+ color: menuBarItem.highlighted ? Colors.selection : "transparent"
+ Rectangle {
+ id: indicator
+
+ width: 0; height: 3
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.bottom: parent.bottom
+
+ color: Colors.color1
+ states: State {
+ name: "active"
+ when: menuBarItem.highlighted
+ PropertyChanges {
+ indicator.width: background.width - 2
+ }
+ }
+ transitions: Transition {
+ NumberAnimation {
+ properties: "width"
+ duration: 175
+ }
+ }
+ }
+ }
+ }
+ // We use the contentItem property as a place to attach our window decorations. Beneath
+ // the usual menu entries within a MenuBar, it includes a centered information text, along
+ // with the minimize, maximize, and close buttons.
+ contentItem: RowLayout {
+ id: windowBar
+
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+
+ spacing: root.spacing
+ Repeater {
+ id: menuBarItems
+
+ Layout.alignment: Qt.AlignLeft
+ model: root.contentModel
+ }
+
+ Item {
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ Text {
+ id: windowInfo
+
+ width: parent.width; height: parent.height
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ leftPadding: windowActions.width
+ color: Colors.text
+ clip: true
+ }
+ }
+
+ RowLayout {
+ id: windowActions
+
+ Layout.alignment: Qt.AlignRight
+ Layout.fillHeight: true
+
+ spacing: 0
+
+ component InteractionButton: Rectangle {
+ id: interactionButton
+
+ signal action()
+ property alias hovered: hoverHandler.hovered
+
+ Layout.fillHeight: true
+ Layout.preferredWidth: height
+
+ color: hovered ? Colors.background : "transparent"
+ HoverHandler {
+ id: hoverHandler
+ }
+ TapHandler {
+ id: tapHandler
+ onTapped: interactionButton.action()
+ }
+ }
+
+ InteractionButton {
+ id: minimize
+
+ onAction: root.dragWindow.showMinimized()
+ Rectangle {
+ anchors.centerIn: parent
+ color: parent.hovered ? Colors.iconIndicator : Colors.icon
+ height: 2
+ width: parent.height - 14
+ }
+ }
+
+ InteractionButton {
+ id: maximize
+
+ onAction: root.dragWindow.showMaximized()
+ Rectangle {
+ anchors.fill: parent
+ anchors.margins: 7
+ border.color: parent.hovered ? Colors.iconIndicator : Colors.icon
+ border.width: 2
+ color: "transparent"
+ }
+ }
+
+ InteractionButton {
+ id: close
+
+ color: hovered ? "#ec4143" : "transparent"
+ onAction: root.dragWindow.close()
+ Rectangle {
+ anchors.centerIn: parent
+ width: parent.height - 8; height: 2
+
+ rotation: 45
+ antialiasing: true
+ transformOrigin: Item.Center
+ color: parent.hovered ? Colors.iconIndicator : Colors.icon
+
+ Rectangle {
+ anchors.centerIn: parent
+ width: parent.height
+ height: parent.width
+
+ antialiasing: true
+ color: parent.color
+ }
+ }
+ }
+ }
+ }
+
+ background: Rectangle {
+ color: Colors.surface2
+ // Make the empty space drag the specified root window.
+ WindowDragHandler {
+ dragWindow: root.dragWindow
+ }
+ }
+}
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/ResizeButton.qml b/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/ResizeButton.qml
new file mode 100644
index 000000000..0df65bf82
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/ResizeButton.qml
@@ -0,0 +1,23 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick.Controls
+import FileSystemModule
+
+Button {
+ required property ApplicationWindow resizeWindow
+
+ icon.width: 20; icon.height: 20
+ anchors.right: parent.right
+ anchors.bottom: parent.bottom
+ rightPadding: 3
+ bottomPadding: 3
+
+ icon.source: "../icons/resize.svg"
+ icon.color: hovered ? Colors.iconIndicator : Colors.icon
+
+ background: null
+ checkable: false
+ display: AbstractButton.IconOnly
+ onPressed: resizeWindow.startSystemResize(Qt.BottomEdge | Qt.RightEdge)
+}
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/Sidebar.qml b/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/Sidebar.qml
new file mode 100644
index 000000000..aac530394
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/Sidebar.qml
@@ -0,0 +1,138 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Layouts
+import QtQuick.Controls.Basic
+import FileSystemModule
+
+Rectangle {
+ id: root
+
+ property alias currentTabIndex: topBar.currentIndex
+ required property ApplicationWindow dragWindow
+ readonly property int tabBarSpacing: 10
+
+ color: Colors.surface2
+
+ component SidebarEntry: Button {
+ id: sidebarButton
+
+ Layout.alignment: Qt.AlignHCenter
+ Layout.fillWidth: true
+
+ icon.color: down || checked ? Colors.iconIndicator : Colors.icon
+ icon.width: 27
+ icon.height: 27
+
+ topPadding: 0
+ rightPadding: 0
+ bottomPadding: 0
+ leftPadding: 0
+ background: null
+
+ Rectangle {
+ id: indicator
+
+ anchors.verticalCenter: parent.verticalCenter
+ x: 2
+ width: 4
+ height: sidebarButton.icon.height * 1.2
+
+ visible: sidebarButton.checked
+ color: Colors.color1
+ }
+ }
+
+ // TabBar is designed to be horizontal, whereas we need a vertical bar.
+ // We can easily achieve that by using a Container.
+ component TabBar: Container {
+ id: tabBarComponent
+
+ Layout.fillWidth: true
+ // ButtonGroup ensures that only one button can be checked at a time.
+ ButtonGroup {
+ buttons: tabBarComponent.contentChildren
+
+ // We have to manage the currentIndex ourselves, which we do by setting it to the index
+ // of the currently checked button. We use setCurrentIndex instead of setting the
+ // currentIndex property to avoid breaking bindings. See "Managing the Current Index"
+ // in Container's documentation for more information.
+ onCheckedButtonChanged: tabBarComponent.setCurrentIndex(
+ Math.max(0, buttons.indexOf(checkedButton)))
+ }
+
+ contentItem: ColumnLayout {
+ spacing: tabBarComponent.spacing
+ Repeater {
+ model: tabBarComponent.contentModel
+ }
+ }
+ }
+
+ ColumnLayout {
+ anchors.fill: root
+ anchors.topMargin: root.tabBarSpacing
+ anchors.bottomMargin: root.tabBarSpacing
+
+ spacing: root.tabBarSpacing
+ TabBar {
+ id: topBar
+
+ spacing: root.tabBarSpacing
+ // Shows help text when clicked.
+ SidebarEntry {
+ id: infoTab
+ icon.source: "../icons/light_bulb.svg"
+ checkable: true
+ checked: true
+ }
+
+ // Shows the file system when clicked.
+ SidebarEntry {
+ id: filesystemTab
+
+ icon.source: "../icons/read.svg"
+ checkable: true
+ }
+ }
+
+ // This item acts as a spacer to expand between the checkable and non-checkable buttons.
+ Item {
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+
+ // Make the empty space drag our main window.
+ WindowDragHandler {
+ dragWindow: root.dragWindow
+ }
+ }
+
+ TabBar {
+ id: bottomBar
+
+ spacing: root.tabBarSpacing
+ // Opens the Qt website in the system's web browser.
+ SidebarEntry {
+ id: qtWebsiteButton
+ icon.source: "../icons/globe.svg"
+ checkable: false
+ onClicked: Qt.openUrlExternally("https://www.qt.io/")
+ }
+
+ // Opens the About Qt Window.
+ SidebarEntry {
+ id: aboutQtButton
+
+ icon.source: "../icons/info_sign.svg"
+ checkable: false
+ onClicked: aboutQtWindow.visible = !aboutQtWindow.visible
+ }
+ }
+ }
+
+ About {
+ id: aboutQtWindow
+ visible: false
+ }
+}
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/WindowDragHandler.qml b/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/WindowDragHandler.qml
new file mode 100644
index 000000000..0e140aca3
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/qml/WindowDragHandler.qml
@@ -0,0 +1,16 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+// Allows dragging the window when placed on an unused section of the UI.
+DragHandler {
+
+ required property ApplicationWindow dragWindow
+
+ target: null
+ onActiveChanged: {
+ if (active) dragWindow.startSystemMove()
+ }
+}
diff --git a/examples/quickcontrols/filesystemexplorer/FileSystemModule/qmldir b/examples/quickcontrols/filesystemexplorer/FileSystemModule/qmldir
new file mode 100644
index 000000000..b1f684600
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/FileSystemModule/qmldir
@@ -0,0 +1,11 @@
+module FileSystemModule
+Main 1.0 Main.qml
+About 1.0 qml/About.qml
+Editor 1.0 qml/Editor.qml
+MyMenu 1.0 qml/MyMenu.qml
+Sidebar 1.0 qml/Sidebar.qml
+MyMenuBar 1.0 qml/MyMenuBar.qml
+singleton Colors 1.0 qml/Colors.qml
+ResizeButton 1.0 qml/ResizeButton.qml
+FileSystemView 1.0 qml/FileSystemView.qml
+WindowDragHandler 1.0 qml/WindowDragHandler.qml
diff --git a/examples/quickcontrols/filesystemexplorer/doc/filesystemexplorer.rst b/examples/quickcontrols/filesystemexplorer/doc/filesystemexplorer.rst
new file mode 100644
index 000000000..b46cbec79
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/doc/filesystemexplorer.rst
@@ -0,0 +1,52 @@
+.. _filesystemexplorer_example:
+
+Qt Quick Controls - Filesystem Explorer
+=======================================
+
+This example demonstrates how to create a **modern-looking** filesystem
+explorer with a dark-themed user interface that has a uniform look
+across all operating systems. Custom Qt Quick Controls have been
+implemented to provide a clean and intuitive UI for opening and
+navigating text-files from the filesystem.
+
+Frameless Window
+----------------
+
+To maximize the available space, we use a **frameless window**. The basic
+functionality, such as minimizing, maximizing, and closing the window,
+has been moved to a customized MenuBar called ``MyMenuBar``. Users can
+drag the window thanks to the ``WindowDragHandler`` added to the Sidebar
+and MenuBar.
+
+Customization
+-------------
+
+Combining **customized animations** and **colors** with QtQuick Controls
+allows us to easily create custom user interfaces. This example
+showcases the potential of QtQuick Controls for creating aesthetically
+pleasing UIs.
+
+..
+
+ With the knowledge gained from this example, developers can apply
+ similar techniques to create **their own** customized UIs using PySide's
+ QtQuick Controls.
+
+
+
+.. image:: filesystemexplorer.webp
+ :target: filesystemexplorer.webp
+ :alt: QtQuickControls Filesystem Explorer Screenshot
+
+References
+----------
+
+If you're interested in the C++ version of this example, you can find it
+`here <https://doc-snapshots.qt.io/qt6-dev/qtquickcontrols-filesystemexplorer-example.html>`_.
+
+Additionally, there is a detailed
+`tutorial <https://doc.qt.io/qtforpython-6/tutorials/extendedexplorer/extendedexplorer.html>`_
+available that provides step-by-step instructions on how to extend this example
+with additional features. This tutorial can be helpful if you want to explore
+and learn more about building upon the existing functionality of the filesystem
+explorer.
diff --git a/examples/quickcontrols/filesystemexplorer/doc/filesystemexplorer.webp b/examples/quickcontrols/filesystemexplorer/doc/filesystemexplorer.webp
new file mode 100644
index 000000000..10ad0d26e
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/doc/filesystemexplorer.webp
Binary files differ
diff --git a/examples/quickcontrols/filesystemexplorer/editormodels.py b/examples/quickcontrols/filesystemexplorer/editormodels.py
new file mode 100644
index 000000000..688147726
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/editormodels.py
@@ -0,0 +1,116 @@
+# Copyright (C) 2024 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtWidgets import QFileSystemModel
+from PySide6.QtQuick import QQuickTextDocument
+from PySide6.QtQml import QmlElement, QmlSingleton
+from PySide6.QtCore import (Qt, QDir, QAbstractListModel, Slot, QFile, QTextStream,
+ QMimeDatabase, QFileInfo, QStandardPaths, QModelIndex,
+ Signal, Property)
+
+QML_IMPORT_NAME = "FileSystemModule"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+@QmlSingleton
+class FileSystemModel(QFileSystemModel):
+
+ rootIndexChanged = Signal()
+
+ def getDefaultRootDir():
+ return QStandardPaths.writableLocation(QStandardPaths.StandardLocation.HomeLocation)
+
+ def __init__(self, parent=None):
+ super().__init__(parent=parent)
+ self.mRootIndex = QModelIndex()
+ self.mDb = QMimeDatabase()
+ self.setFilter(QDir.Filter.AllEntries | QDir.Filter.Hidden | QDir.Filter.NoDotAndDotDot)
+ self.setInitialDirectory()
+
+ # check for the correct mime type and then read the file.
+ # returns the text file's content or an error message on failure
+ @Slot(str, result=str)
+ def readFile(self, path):
+ if path == "":
+ return ""
+
+ file = QFile(path)
+
+ mime = self.mDb.mimeTypeForFile(QFileInfo(file))
+ if ('text' in mime.comment().lower()
+ or any('text' in s.lower() for s in mime.parentMimeTypes())):
+ if file.open(QFile.OpenModeFlag.ReadOnly | QFile.OpenModeFlag.Text):
+ stream = QTextStream(file).readAll()
+ file.close()
+ return stream
+ else:
+ return self.tr("Error opening the file!")
+ return self.tr("File type not supported!")
+
+ @Slot(QQuickTextDocument, int, result=int)
+ def currentLineNumber(self, textDocument, cursorPosition):
+ td = textDocument.textDocument()
+ tb = td.findBlock(cursorPosition)
+ return tb.blockNumber()
+
+ def setInitialDirectory(self, path=getDefaultRootDir()):
+ dir = QDir(path)
+ if dir.makeAbsolute():
+ self.setRootPath(dir.path())
+ else:
+ self.setRootPath(self.getDefaultRootDir())
+ self.setRootIndex(self.index(dir.path()))
+
+ # we only need one column in this example
+ def columnCount(self, parent):
+ return 1
+
+ @Property(QModelIndex, notify=rootIndexChanged)
+ def rootIndex(self):
+ return self.mRootIndex
+
+ def setRootIndex(self, index):
+ if (index == self.mRootIndex):
+ return
+ self.mRootIndex = index
+ self.rootIndexChanged.emit()
+
+
+@QmlElement
+class LineNumberModel(QAbstractListModel):
+
+ lineCountChanged = Signal()
+
+ def __init__(self, parent=None):
+ self.mLineCount = 0
+ super().__init__(parent=parent)
+
+ @Property(int, notify=lineCountChanged)
+ def lineCount(self):
+ return self.mLineCount
+
+ @lineCount.setter
+ def lineCount(self, n):
+ if n < 0:
+ print("lineCount must be greater then zero")
+ return
+ if self.mLineCount == n:
+ return
+
+ if self.mLineCount < n:
+ self.beginInsertRows(QModelIndex(), self.mLineCount, n - 1)
+ self.mLineCount = n
+ self.endInsertRows()
+ else:
+ self.beginRemoveRows(QModelIndex(), n, self.mLineCount - 1)
+ self.mLineCount = n
+ self.endRemoveRows()
+
+ def rowCount(self, parent):
+ return self.mLineCount
+
+ def data(self, index, role):
+ if not self.checkIndex(index) or role != Qt.ItemDataRole.DisplayRole:
+ return
+ return index.row()
diff --git a/examples/quickcontrols/filesystemexplorer/filesystemexplorer.pyproject b/examples/quickcontrols/filesystemexplorer/filesystemexplorer.pyproject
new file mode 100644
index 000000000..8053cfab0
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/filesystemexplorer.pyproject
@@ -0,0 +1,29 @@
+{
+ "files": [
+ "main.py",
+ "editormodels.py",
+ "FileSystemModule/qmldir",
+ "FileSystemModule/app.qrc",
+ "FileSystemModule/qmldir",
+ "FileSystemModule/Main.qml",
+ "FileSystemModule/qml/About.qml",
+ "FileSystemModule/qml/Colors.qml",
+ "FileSystemModule/qml/Editor.qml",
+ "FileSystemModule/qml/FileSystemView.qml",
+ "FileSystemModule/qml/MyMenu.qml",
+ "FileSystemModule/qml/MyMenuBar.qml",
+ "FileSystemModule/qml/ResizeButton.qml",
+ "FileSystemModule/qml/Sidebar.qml",
+ "FileSystemModule/qml/WindowDragHandler.qml",
+ "FileSystemModule/icons/app_icon.svg",
+ "FileSystemModule/icons/folder_closed.svg",
+ "FileSystemModule/icons/folder_open.svg",
+ "FileSystemModule/icons/generic_file.svg",
+ "FileSystemModule/icons/globe.svg",
+ "FileSystemModule/icons/info_sign.svg",
+ "FileSystemModule/icons/light_bulb.svg",
+ "FileSystemModule/icons/qt_logo.svg",
+ "FileSystemModule/icons/read.svg",
+ "FileSystemModule/icons/resize.svg"
+ ]
+}
diff --git a/examples/quickcontrols/filesystemexplorer/main.py b/examples/quickcontrols/filesystemexplorer/main.py
new file mode 100644
index 000000000..8fad951cb
--- /dev/null
+++ b/examples/quickcontrols/filesystemexplorer/main.py
@@ -0,0 +1,48 @@
+# Copyright (C) 2024 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""
+This example shows how to customize Qt Quick Controls by implementing a simple filesystem explorer.
+"""
+
+# Compile both resource files app.qrc and icons.qrc and include them here if you wish
+# to load them from the resource system. Currently, all resources are loaded locally
+# import FileSystemModule.rc_icons
+# import FileSystemModule.rc_app
+
+from editormodels import FileSystemModel # noqa: F401
+from PySide6.QtGui import QGuiApplication, QIcon
+from PySide6.QtQml import QQmlApplicationEngine
+from PySide6.QtCore import QCommandLineParser, qVersion
+
+import sys
+
+if __name__ == '__main__':
+ app = QGuiApplication(sys.argv)
+ app.setOrganizationName("QtProject")
+ app.setApplicationName("File System Explorer")
+ app.setApplicationVersion(qVersion())
+ app.setWindowIcon(QIcon(sys.path[0] + "/FileSystemModule/icons/app_icon.svg"))
+
+ parser = QCommandLineParser()
+ parser.setApplicationDescription("Qt Filesystemexplorer Example")
+ parser.addHelpOption()
+ parser.addVersionOption()
+ parser.addPositionalArgument("", "Initial directory", "[path]")
+ parser.process(app)
+ args = parser.positionalArguments()
+
+ engine = QQmlApplicationEngine()
+ # Include the path of this file to search for the 'qmldir' module
+ engine.addImportPath(sys.path[0])
+
+ engine.loadFromModule("FileSystemModule", "Main")
+
+ if not engine.rootObjects():
+ sys.exit(-1)
+
+ if (len(args) == 1):
+ fsm = engine.singletonInstance("FileSystemModule", "FileSystemModel")
+ fsm.setInitialDirectory(args[0])
+
+ sys.exit(app.exec())
diff --git a/examples/quickcontrols/gallery/+Material/ToolBar.qml b/examples/quickcontrols/gallery/+Material/ToolBar.qml
new file mode 100644
index 000000000..f7ecbf116
--- /dev/null
+++ b/examples/quickcontrols/gallery/+Material/ToolBar.qml
@@ -0,0 +1,8 @@
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick.Controls.Material
+
+ToolBar {
+ Material.foreground: "white"
+}
diff --git a/examples/quickcontrols/gallery/ToolBar.qml b/examples/quickcontrols/gallery/ToolBar.qml
new file mode 100644
index 000000000..03d68dfba
--- /dev/null
+++ b/examples/quickcontrols/gallery/ToolBar.qml
@@ -0,0 +1,6 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick.Controls
+
+ToolBar {}
diff --git a/examples/quickcontrols2/gallery/doc/gallery.png b/examples/quickcontrols/gallery/doc/gallery.png
index 615ea9e3c..615ea9e3c 100644
--- a/examples/quickcontrols2/gallery/doc/gallery.png
+++ b/examples/quickcontrols/gallery/doc/gallery.png
Binary files differ
diff --git a/examples/quickcontrols/gallery/doc/gallery.rst b/examples/quickcontrols/gallery/doc/gallery.rst
new file mode 100644
index 000000000..acd5096f6
--- /dev/null
+++ b/examples/quickcontrols/gallery/doc/gallery.rst
@@ -0,0 +1,9 @@
+Qt Quick Controls 2 - Gallery
+=============================
+
+.. tags:: Android
+
+The gallery example is a simple application with a drawer menu that contains
+all the Qt Quick Controls 2. Each menu item opens a page that shows the
+graphical appearance of a control, allows you to interact with the control, and
+explains in which circumstances it is handy to use this control.
diff --git a/examples/quickcontrols2/gallery/doc/images/qtquickcontrols2-gallery-drawer.png b/examples/quickcontrols/gallery/doc/images/qtquickcontrols2-gallery-drawer.png
index 0df43fbc4..0df43fbc4 100644
--- a/examples/quickcontrols2/gallery/doc/images/qtquickcontrols2-gallery-drawer.png
+++ b/examples/quickcontrols/gallery/doc/images/qtquickcontrols2-gallery-drawer.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/doc/images/qtquickcontrols2-gallery-menu.png b/examples/quickcontrols/gallery/doc/images/qtquickcontrols2-gallery-menu.png
index 3bdaae942..3bdaae942 100644
--- a/examples/quickcontrols2/gallery/doc/images/qtquickcontrols2-gallery-menu.png
+++ b/examples/quickcontrols/gallery/doc/images/qtquickcontrols2-gallery-menu.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/doc/images/qtquickcontrols2-gallery-welcome.png b/examples/quickcontrols/gallery/doc/images/qtquickcontrols2-gallery-welcome.png
index ded30381d..ded30381d 100644
--- a/examples/quickcontrols2/gallery/doc/images/qtquickcontrols2-gallery-welcome.png
+++ b/examples/quickcontrols/gallery/doc/images/qtquickcontrols2-gallery-welcome.png
Binary files differ
diff --git a/examples/quickcontrols/gallery/gallery.py b/examples/quickcontrols/gallery/gallery.py
new file mode 100644
index 000000000..6c2a3612e
--- /dev/null
+++ b/examples/quickcontrols/gallery/gallery.py
@@ -0,0 +1,52 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""
+The gallery example is a simple application with a drawer menu that contains
+all the Qt Quick Controls. Each menu item opens a page that shows the
+graphical appearance of a control, allows you to interact with the control,
+and explains in which circumstances it is handy to use this control.
+"""
+
+import os
+import sys
+import platform
+
+from PySide6.QtGui import QGuiApplication, QIcon
+from PySide6.QtCore import QSettings, QUrl
+from PySide6.QtQml import QQmlApplicationEngine
+from PySide6.QtQuickControls2 import QQuickStyle
+
+import rc_gallery # noqa: F401
+
+if __name__ == "__main__":
+ QGuiApplication.setApplicationName("Gallery")
+ QGuiApplication.setOrganizationName("QtProject")
+
+ app = QGuiApplication()
+ QIcon.setThemeName("gallery")
+
+ settings = QSettings()
+ if not os.environ.get("QT_QUICK_CONTROLS_STYLE"):
+ style_name = settings.value("style")
+ if style_name:
+ QQuickStyle.setStyle(style_name)
+
+ engine = QQmlApplicationEngine()
+
+ built_in_styles = ["Basic", "Fusion", "Imagine", "Material", "Universal"]
+ if platform.system() == "Darwin":
+ built_in_styles.append("macOS")
+ elif platform.system() == "Windows":
+ built_in_styles.append("Windows")
+ engine.setInitialProperties({"builtInStyles": built_in_styles})
+
+ engine.load(QUrl.fromLocalFile(":/gallery.qml"))
+ rootObjects = engine.rootObjects()
+ if not rootObjects:
+ sys.exit(-1)
+
+ window = rootObjects[0]
+ window.setIcon(QIcon(':/qt-project.org/logos/pysidelogo.png'))
+
+ sys.exit(app.exec())
diff --git a/examples/quickcontrols/gallery/gallery.pyproject b/examples/quickcontrols/gallery/gallery.pyproject
new file mode 100644
index 000000000..5b5fe35da
--- /dev/null
+++ b/examples/quickcontrols/gallery/gallery.pyproject
@@ -0,0 +1,36 @@
+{
+ "files": ["gallery.py",
+ "gallery.qml",
+ "gallery.qrc",
+ "qmldir",
+ "qtquickcontrols2.conf",
+ "ToolBar.qml",
+ "+Material/ToolBar.qml",
+ "pages/ComboBoxPage.qml",
+ "pages/FramePage.qml",
+ "pages/SliderPage.qml",
+ "pages/TumblerPage.qml",
+ "pages/SpinBoxPage.qml",
+ "pages/ProgressBarPage.qml",
+ "pages/DelegatePage.qml",
+ "pages/StackViewPage.qml",
+ "pages/DialPage.qml",
+ "pages/PageIndicatorPage.qml",
+ "pages/SwipeViewPage.qml",
+ "pages/TabBarPage.qml",
+ "pages/TextFieldPage.qml",
+ "pages/GroupBoxPage.qml",
+ "pages/RadioButtonPage.qml",
+ "pages/ButtonPage.qml",
+ "pages/ScrollIndicatorPage.qml",
+ "pages/ScrollablePage.qml",
+ "pages/DialogPage.qml",
+ "pages/ToolTipPage.qml",
+ "pages/CheckBoxPage.qml",
+ "pages/TextAreaPage.qml",
+ "pages/RangeSliderPage.qml",
+ "pages/DelayButtonPage.qml",
+ "pages/SwitchPage.qml",
+ "pages/ScrollBarPage.qml",
+ "pages/BusyIndicatorPage.qml"]
+}
diff --git a/examples/quickcontrols/gallery/gallery.qml b/examples/quickcontrols/gallery/gallery.qml
new file mode 100644
index 000000000..65851f8c9
--- /dev/null
+++ b/examples/quickcontrols/gallery/gallery.qml
@@ -0,0 +1,318 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+pragma ComponentBehavior: Bound
+
+import QtCore
+import QtQuick
+import QtQuick.Layouts
+import QtQuick.Controls
+
+import "." as App
+
+ApplicationWindow {
+ id: window
+ width: 360
+ height: 520
+ visible: true
+ title: "Qt Quick Controls"
+
+ //! [orientation]
+ readonly property bool portraitMode: window.width < window.height
+ //! [orientation]
+
+ function help() {
+ let displayingControl = listView.currentIndex !== -1
+ let currentControlName = displayingControl
+ ? listView.model.get(listView.currentIndex).title.toLowerCase() : ""
+ let url = "https://doc.qt.io/qt-6/"
+ + (displayingControl
+ ? "qml-qtquick-controls2-" + currentControlName + ".html"
+ : "qtquick-controls2-qmlmodule.html");
+ Qt.openUrlExternally(url)
+ }
+
+ required property var builtInStyles
+
+ Settings {
+ id: settings
+ property string style
+ }
+
+ Shortcut {
+ sequences: ["Esc", "Back"]
+ enabled: stackView.depth > 1
+ onActivated: navigateBackAction.trigger()
+ }
+
+ Shortcut {
+ sequence: StandardKey.HelpContents
+ onActivated: window.help()
+ }
+
+ Action {
+ id: navigateBackAction
+ icon.name: stackView.depth > 1 ? "back" : "drawer"
+ onTriggered: {
+ if (stackView.depth > 1) {
+ stackView.pop()
+ listView.currentIndex = -1
+ } else {
+ drawer.open()
+ }
+ }
+ }
+
+ Shortcut {
+ sequence: "Menu"
+ onActivated: optionsMenuAction.trigger()
+ }
+
+ Action {
+ id: optionsMenuAction
+ icon.name: "menu"
+ onTriggered: optionsMenu.open()
+ }
+
+ header: App.ToolBar {
+ RowLayout {
+ spacing: 20
+ anchors.fill: parent
+ anchors.leftMargin: !window.portraitMode ? drawer.width : undefined
+
+ ToolButton {
+ action: navigateBackAction
+ visible: window.portraitMode
+ }
+
+ Label {
+ id: titleLabel
+ text: listView.currentItem ? (listView.currentItem as ItemDelegate).text : "Gallery"
+ font.pixelSize: 20
+ elide: Label.ElideRight
+ horizontalAlignment: Qt.AlignHCenter
+ verticalAlignment: Qt.AlignVCenter
+ Layout.fillWidth: true
+ }
+
+ ToolButton {
+ action: optionsMenuAction
+
+ Menu {
+ id: optionsMenu
+ x: parent.width - width
+ transformOrigin: Menu.TopRight
+
+ Action {
+ text: "Settings"
+ onTriggered: settingsDialog.open()
+ }
+ Action {
+ text: "Help"
+ onTriggered: window.help()
+ }
+ Action {
+ text: "About"
+ onTriggered: aboutDialog.open()
+ }
+ }
+ }
+ }
+ }
+
+ Drawer {
+ id: drawer
+
+ width: Math.min(window.width, window.height) / 3 * 2
+ height: window.height
+ modal: window.portraitMode
+ interactive: window.portraitMode ? (stackView.depth === 1) : false
+ position: window.portraitMode ? 0 : 1
+ visible: !window.portraitMode
+
+ ListView {
+ id: listView
+
+ focus: true
+ currentIndex: -1
+ anchors.fill: parent
+
+ model: ListModel {
+ ListElement { title: "BusyIndicator"; source: "qrc:/pages/BusyIndicatorPage.qml" }
+ ListElement { title: "Button"; source: "qrc:/pages/ButtonPage.qml" }
+ ListElement { title: "CheckBox"; source: "qrc:/pages/CheckBoxPage.qml" }
+ ListElement { title: "ComboBox"; source: "qrc:/pages/ComboBoxPage.qml" }
+ ListElement { title: "DelayButton"; source: "qrc:/pages/DelayButtonPage.qml" }
+ ListElement { title: "Dial"; source: "qrc:/pages/DialPage.qml" }
+ ListElement { title: "Dialog"; source: "qrc:/pages/DialogPage.qml" }
+ ListElement { title: "Delegates"; source: "qrc:/pages/DelegatePage.qml" }
+ ListElement { title: "Frame"; source: "qrc:/pages/FramePage.qml" }
+ ListElement { title: "GroupBox"; source: "qrc:/pages/GroupBoxPage.qml" }
+ ListElement { title: "PageIndicator"; source: "qrc:/pages/PageIndicatorPage.qml" }
+ ListElement { title: "ProgressBar"; source: "qrc:/pages/ProgressBarPage.qml" }
+ ListElement { title: "RadioButton"; source: "qrc:/pages/RadioButtonPage.qml" }
+ ListElement { title: "RangeSlider"; source: "qrc:/pages/RangeSliderPage.qml" }
+ ListElement { title: "ScrollBar"; source: "qrc:/pages/ScrollBarPage.qml" }
+ ListElement { title: "ScrollIndicator"; source: "qrc:/pages/ScrollIndicatorPage.qml" }
+ ListElement { title: "Slider"; source: "qrc:/pages/SliderPage.qml" }
+ ListElement { title: "SpinBox"; source: "qrc:/pages/SpinBoxPage.qml" }
+ ListElement { title: "StackView"; source: "qrc:/pages/StackViewPage.qml" }
+ ListElement { title: "SwipeView"; source: "qrc:/pages/SwipeViewPage.qml" }
+ ListElement { title: "Switch"; source: "qrc:/pages/SwitchPage.qml" }
+ ListElement { title: "TabBar"; source: "qrc:/pages/TabBarPage.qml" }
+ ListElement { title: "TextArea"; source: "qrc:/pages/TextAreaPage.qml" }
+ ListElement { title: "TextField"; source: "qrc:/pages/TextFieldPage.qml" }
+ ListElement { title: "ToolTip"; source: "qrc:/pages/ToolTipPage.qml" }
+ ListElement { title: "Tumbler"; source: "qrc:/pages/TumblerPage.qml" }
+ }
+
+ delegate: ItemDelegate {
+ id: delegateItem
+ width: ListView.view.width
+ text: title
+ highlighted: ListView.isCurrentItem
+
+ required property int index
+ required property var model
+ required property string title
+ required property string source
+
+ onClicked: {
+ listView.currentIndex = index
+ stackView.push(source)
+ if (window.portraitMode)
+ drawer.close()
+ }
+ }
+
+ ScrollIndicator.vertical: ScrollIndicator { }
+ }
+ }
+
+ StackView {
+ id: stackView
+
+ anchors.fill: parent
+ anchors.leftMargin: !window.portraitMode ? drawer.width : undefined
+
+ initialItem: Pane {
+ id: pane
+
+ Image {
+ id: logo
+ width: pane.availableWidth / 2
+ height: pane.availableHeight / 2
+ anchors.centerIn: parent
+ anchors.verticalCenterOffset: -50
+ fillMode: Image.PreserveAspectFit
+ source: "images/qt-logo.png"
+ }
+
+ Label {
+ text: "Qt Quick Controls provides a set of controls that can be used to build complete interfaces in Qt Quick."
+ anchors.margins: 20
+ anchors.top: logo.bottom
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.bottom: arrow.top
+ horizontalAlignment: Label.AlignHCenter
+ verticalAlignment: Label.AlignVCenter
+ wrapMode: Label.Wrap
+ }
+
+ Image {
+ id: arrow
+ source: "images/arrow.png"
+ anchors.left: parent.left
+ anchors.bottom: parent.bottom
+ visible: window.portraitMode
+ }
+ }
+ }
+
+ Dialog {
+ id: settingsDialog
+ x: Math.round((window.width - width) / 2)
+ y: Math.round(window.height / 6)
+ width: Math.round(Math.min(window.width, window.height) / 3 * 2)
+ modal: true
+ focus: true
+ title: "Settings"
+
+ standardButtons: Dialog.Ok | Dialog.Cancel
+ onAccepted: {
+ settings.style = styleBox.displayText
+ settingsDialog.close()
+ }
+ onRejected: {
+ styleBox.currentIndex = styleBox.styleIndex
+ settingsDialog.close()
+ }
+
+ contentItem: ColumnLayout {
+ id: settingsColumn
+ spacing: 20
+
+ RowLayout {
+ spacing: 10
+
+ Label {
+ text: "Style:"
+ }
+
+ ComboBox {
+ id: styleBox
+ property int styleIndex: -1
+ model: window.builtInStyles
+ Component.onCompleted: {
+ styleIndex = find(settings.style, Qt.MatchFixedString)
+ if (styleIndex !== -1)
+ currentIndex = styleIndex
+ }
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: "Restart required"
+ color: "#e41e25"
+ opacity: styleBox.currentIndex !== styleBox.styleIndex ? 1.0 : 0.0
+ horizontalAlignment: Label.AlignHCenter
+ verticalAlignment: Label.AlignVCenter
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ }
+ }
+ }
+
+ Dialog {
+ id: aboutDialog
+ modal: true
+ focus: true
+ title: "About"
+ x: (window.width - width) / 2
+ y: window.height / 6
+ width: Math.min(window.width, window.height) / 3 * 2
+ contentHeight: aboutColumn.height
+
+ Column {
+ id: aboutColumn
+ spacing: 20
+
+ Label {
+ width: aboutDialog.availableWidth
+ text: "The Qt Quick Controls module delivers the next generation user interface controls based on Qt Quick."
+ wrapMode: Label.Wrap
+ font.pixelSize: 12
+ }
+
+ Label {
+ width: aboutDialog.availableWidth
+ text: "In comparison to Qt Quick Controls 1, Qt Quick Controls "
+ + "are an order of magnitude simpler, lighter, and faster."
+ wrapMode: Label.Wrap
+ font.pixelSize: 12
+ }
+ }
+ }
+}
diff --git a/examples/quickcontrols2/gallery/gallery.qrc b/examples/quickcontrols/gallery/gallery.qrc
index 330197941..330197941 100644
--- a/examples/quickcontrols2/gallery/gallery.qrc
+++ b/examples/quickcontrols/gallery/gallery.qrc
diff --git a/examples/quickcontrols2/gallery/icons/gallery/20x20/back.png b/examples/quickcontrols/gallery/icons/gallery/20x20/back.png
index 1f89ee058..1f89ee058 100644
--- a/examples/quickcontrols2/gallery/icons/gallery/20x20/back.png
+++ b/examples/quickcontrols/gallery/icons/gallery/20x20/back.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/icons/gallery/20x20/drawer.png b/examples/quickcontrols/gallery/icons/gallery/20x20/drawer.png
index 1e974efae..1e974efae 100644
--- a/examples/quickcontrols2/gallery/icons/gallery/20x20/drawer.png
+++ b/examples/quickcontrols/gallery/icons/gallery/20x20/drawer.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/icons/gallery/20x20/menu.png b/examples/quickcontrols/gallery/icons/gallery/20x20/menu.png
index a10473d9e..a10473d9e 100644
--- a/examples/quickcontrols2/gallery/icons/gallery/20x20/menu.png
+++ b/examples/quickcontrols/gallery/icons/gallery/20x20/menu.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/icons/gallery/20x20@2/back.png b/examples/quickcontrols/gallery/icons/gallery/20x20@2/back.png
index 88e290b13..88e290b13 100644
--- a/examples/quickcontrols2/gallery/icons/gallery/20x20@2/back.png
+++ b/examples/quickcontrols/gallery/icons/gallery/20x20@2/back.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/icons/gallery/20x20@2/drawer.png b/examples/quickcontrols/gallery/icons/gallery/20x20@2/drawer.png
index eba3b6ccc..eba3b6ccc 100644
--- a/examples/quickcontrols2/gallery/icons/gallery/20x20@2/drawer.png
+++ b/examples/quickcontrols/gallery/icons/gallery/20x20@2/drawer.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/icons/gallery/20x20@2/menu.png b/examples/quickcontrols/gallery/icons/gallery/20x20@2/menu.png
index 649c2a08c..649c2a08c 100644
--- a/examples/quickcontrols2/gallery/icons/gallery/20x20@2/menu.png
+++ b/examples/quickcontrols/gallery/icons/gallery/20x20@2/menu.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/icons/gallery/20x20@3/back.png b/examples/quickcontrols/gallery/icons/gallery/20x20@3/back.png
index 4402c7d30..4402c7d30 100644
--- a/examples/quickcontrols2/gallery/icons/gallery/20x20@3/back.png
+++ b/examples/quickcontrols/gallery/icons/gallery/20x20@3/back.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/icons/gallery/20x20@3/drawer.png b/examples/quickcontrols/gallery/icons/gallery/20x20@3/drawer.png
index 3584ed6d8..3584ed6d8 100644
--- a/examples/quickcontrols2/gallery/icons/gallery/20x20@3/drawer.png
+++ b/examples/quickcontrols/gallery/icons/gallery/20x20@3/drawer.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/icons/gallery/20x20@3/menu.png b/examples/quickcontrols/gallery/icons/gallery/20x20@3/menu.png
index 9554b6952..9554b6952 100644
--- a/examples/quickcontrols2/gallery/icons/gallery/20x20@3/menu.png
+++ b/examples/quickcontrols/gallery/icons/gallery/20x20@3/menu.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/icons/gallery/20x20@4/back.png b/examples/quickcontrols/gallery/icons/gallery/20x20@4/back.png
index 9982478c1..9982478c1 100644
--- a/examples/quickcontrols2/gallery/icons/gallery/20x20@4/back.png
+++ b/examples/quickcontrols/gallery/icons/gallery/20x20@4/back.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/icons/gallery/20x20@4/drawer.png b/examples/quickcontrols/gallery/icons/gallery/20x20@4/drawer.png
index 60d93aff7..60d93aff7 100644
--- a/examples/quickcontrols2/gallery/icons/gallery/20x20@4/drawer.png
+++ b/examples/quickcontrols/gallery/icons/gallery/20x20@4/drawer.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/icons/gallery/20x20@4/menu.png b/examples/quickcontrols/gallery/icons/gallery/20x20@4/menu.png
index 187c171cd..187c171cd 100644
--- a/examples/quickcontrols2/gallery/icons/gallery/20x20@4/menu.png
+++ b/examples/quickcontrols/gallery/icons/gallery/20x20@4/menu.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/icons/gallery/index.theme b/examples/quickcontrols/gallery/icons/gallery/index.theme
index a1bcd5e03..a1bcd5e03 100644
--- a/examples/quickcontrols2/gallery/icons/gallery/index.theme
+++ b/examples/quickcontrols/gallery/icons/gallery/index.theme
diff --git a/examples/quickcontrols2/gallery/images/arrow.png b/examples/quickcontrols/gallery/images/arrow.png
index 9835108eb..9835108eb 100644
--- a/examples/quickcontrols2/gallery/images/arrow.png
+++ b/examples/quickcontrols/gallery/images/arrow.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/images/arrow@2x.png b/examples/quickcontrols/gallery/images/arrow@2x.png
index a5187d48c..a5187d48c 100644
--- a/examples/quickcontrols2/gallery/images/arrow@2x.png
+++ b/examples/quickcontrols/gallery/images/arrow@2x.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/images/arrow@3x.png b/examples/quickcontrols/gallery/images/arrow@3x.png
index a512f648c..a512f648c 100644
--- a/examples/quickcontrols2/gallery/images/arrow@3x.png
+++ b/examples/quickcontrols/gallery/images/arrow@3x.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/images/arrow@4x.png b/examples/quickcontrols/gallery/images/arrow@4x.png
index fd893ebb0..fd893ebb0 100644
--- a/examples/quickcontrols2/gallery/images/arrow@4x.png
+++ b/examples/quickcontrols/gallery/images/arrow@4x.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/images/arrows.png b/examples/quickcontrols/gallery/images/arrows.png
index 3a4cc9b95..3a4cc9b95 100644
--- a/examples/quickcontrols2/gallery/images/arrows.png
+++ b/examples/quickcontrols/gallery/images/arrows.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/images/arrows@2x.png b/examples/quickcontrols/gallery/images/arrows@2x.png
index 8c80a2b45..8c80a2b45 100644
--- a/examples/quickcontrols2/gallery/images/arrows@2x.png
+++ b/examples/quickcontrols/gallery/images/arrows@2x.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/images/arrows@3x.png b/examples/quickcontrols/gallery/images/arrows@3x.png
index 22f23cefb..22f23cefb 100644
--- a/examples/quickcontrols2/gallery/images/arrows@3x.png
+++ b/examples/quickcontrols/gallery/images/arrows@3x.png
Binary files differ
diff --git a/examples/quickcontrols2/gallery/images/arrows@4x.png b/examples/quickcontrols/gallery/images/arrows@4x.png
index 6d1afeef5..6d1afeef5 100644
--- a/examples/quickcontrols2/gallery/images/arrows@4x.png
+++ b/examples/quickcontrols/gallery/images/arrows@4x.png
Binary files differ
diff --git a/examples/quickcontrols/gallery/images/qt-logo.png b/examples/quickcontrols/gallery/images/qt-logo.png
new file mode 100644
index 000000000..05684292b
--- /dev/null
+++ b/examples/quickcontrols/gallery/images/qt-logo.png
Binary files differ
diff --git a/examples/quickcontrols/gallery/images/qt-logo@2x.png b/examples/quickcontrols/gallery/images/qt-logo@2x.png
new file mode 100644
index 000000000..2b7683ca0
--- /dev/null
+++ b/examples/quickcontrols/gallery/images/qt-logo@2x.png
Binary files differ
diff --git a/examples/quickcontrols/gallery/images/qt-logo@3x.png b/examples/quickcontrols/gallery/images/qt-logo@3x.png
new file mode 100644
index 000000000..7cc98348d
--- /dev/null
+++ b/examples/quickcontrols/gallery/images/qt-logo@3x.png
Binary files differ
diff --git a/examples/quickcontrols/gallery/images/qt-logo@4x.png b/examples/quickcontrols/gallery/images/qt-logo@4x.png
new file mode 100644
index 000000000..0e1bc9d93
--- /dev/null
+++ b/examples/quickcontrols/gallery/images/qt-logo@4x.png
Binary files differ
diff --git a/examples/quickcontrols/gallery/pages/BusyIndicatorPage.qml b/examples/quickcontrols/gallery/pages/BusyIndicatorPage.qml
new file mode 100644
index 000000000..5f391abfb
--- /dev/null
+++ b/examples/quickcontrols/gallery/pages/BusyIndicatorPage.qml
@@ -0,0 +1,28 @@
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+pragma ComponentBehavior: Bound
+
+import QtQuick
+import QtQuick.Controls
+
+ScrollablePage {
+ id: page
+
+ Column {
+ spacing: 40
+ width: parent.width
+
+ Label {
+ width: parent.width
+ wrapMode: Label.Wrap
+ horizontalAlignment: Qt.AlignHCenter
+ text: "BusyIndicator is used to indicate activity while content is being loaded,"
+ + " or when the UI is blocked waiting for a resource to become available."
+ }
+
+ BusyIndicator {
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+ }
+}
diff --git a/examples/quickcontrols/gallery/pages/ButtonPage.qml b/examples/quickcontrols/gallery/pages/ButtonPage.qml
new file mode 100644
index 000000000..06051767e
--- /dev/null
+++ b/examples/quickcontrols/gallery/pages/ButtonPage.qml
@@ -0,0 +1,44 @@
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Layouts
+import QtQuick.Controls
+
+ScrollablePage {
+ id: page
+
+ Column {
+ spacing: 40
+ width: parent.width
+
+ Label {
+ width: parent.width
+ wrapMode: Label.Wrap
+ horizontalAlignment: Qt.AlignHCenter
+ text: "Button presents a push-button that can be pushed or clicked by the user. "
+ + "Buttons are normally used to perform an action, or to answer a question."
+ }
+
+ ColumnLayout {
+ spacing: 20
+ anchors.horizontalCenter: parent.horizontalCenter
+
+ Button {
+ text: "First"
+ Layout.fillWidth: true
+ }
+ Button {
+ id: button
+ text: "Second"
+ highlighted: true
+ Layout.fillWidth: true
+ }
+ Button {
+ text: "Third"
+ enabled: false
+ Layout.fillWidth: true
+ }
+ }
+ }
+}
diff --git a/examples/quickcontrols/gallery/pages/CheckBoxPage.qml b/examples/quickcontrols/gallery/pages/CheckBoxPage.qml
new file mode 100644
index 000000000..003e44c82
--- /dev/null
+++ b/examples/quickcontrols/gallery/pages/CheckBoxPage.qml
@@ -0,0 +1,40 @@
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+ScrollablePage {
+ id: page
+
+ Column {
+ spacing: 40
+ width: parent.width
+
+ Label {
+ width: parent.width
+ wrapMode: Label.Wrap
+ horizontalAlignment: Qt.AlignHCenter
+ text: "CheckBox presents an option button that can be toggled on or off. "
+ + "Check boxes are typically used to select one or more options from a set of options."
+ }
+
+ Column {
+ spacing: 20
+ anchors.horizontalCenter: parent.horizontalCenter
+
+ CheckBox {
+ text: "First"
+ checked: true
+ }
+ CheckBox {
+ text: "Second"
+ }
+ CheckBox {
+ text: "Third"
+ checked: true
+ enabled: false
+ }
+ }
+ }
+}
diff --git a/examples/quickcontrols/gallery/pages/ComboBoxPage.qml b/examples/quickcontrols/gallery/pages/ComboBoxPage.qml
new file mode 100644
index 000000000..2dc10cee3
--- /dev/null
+++ b/examples/quickcontrols/gallery/pages/ComboBoxPage.qml
@@ -0,0 +1,51 @@
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+ScrollablePage {
+ id: page
+
+ Column {
+ spacing: 40
+ width: parent.width
+
+ Label {
+ width: parent.width
+ wrapMode: Label.Wrap
+ horizontalAlignment: Qt.AlignHCenter
+ text: "ComboBox is a combined button and popup list. It presents "
+ + "a list of options to the user that occupies minimal screen space."
+ }
+
+ ComboBox {
+ model: ["First", "Second", "Third"]
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+
+ Label {
+ width: parent.width
+ wrapMode: Label.Wrap
+ horizontalAlignment: Qt.AlignHCenter
+ text: "ComboBox can be made \l editable. An editable combo box auto-"
+ + "completes its text based on what is available in the model."
+ }
+
+ ComboBox {
+ id: comboBox
+
+ editable: true
+ model: ListModel {
+ ListElement { text: "Banana" }
+ ListElement { text: "Apple" }
+ ListElement { text: "Coconut" }
+ }
+ onAccepted: {
+ if (find(editText) === -1)
+ comboBox.model.append({text: comboBox.editText})
+ }
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+ }
+}
diff --git a/examples/quickcontrols/gallery/pages/DelayButtonPage.qml b/examples/quickcontrols/gallery/pages/DelayButtonPage.qml
new file mode 100644
index 000000000..4c0e8725b
--- /dev/null
+++ b/examples/quickcontrols/gallery/pages/DelayButtonPage.qml
@@ -0,0 +1,27 @@
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+ScrollablePage {
+ id: page
+
+ Column {
+ spacing: 40
+ width: parent.width
+
+ Label {
+ width: parent.width
+ wrapMode: Label.Wrap
+ horizontalAlignment: Qt.AlignHCenter
+ text: "DelayButton is a checkable button that incorporates a delay before the "
+ + "button is activated. This delay prevents accidental presses."
+ }
+
+ DelayButton {
+ text: "DelayButton"
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+ }
+}
diff --git a/examples/quickcontrols/gallery/pages/DelegatePage.qml b/examples/quickcontrols/gallery/pages/DelegatePage.qml
new file mode 100644
index 000000000..26d346a91
--- /dev/null
+++ b/examples/quickcontrols/gallery/pages/DelegatePage.qml
@@ -0,0 +1,201 @@
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Layouts
+import QtQuick.Controls
+
+Pane {
+ ColumnLayout {
+ spacing: 40
+ anchors.fill: parent
+ anchors.topMargin: 20
+
+ Label {
+ Layout.fillWidth: true
+ wrapMode: Label.Wrap
+ horizontalAlignment: Qt.AlignHCenter
+ text: "Delegate controls are used as delegates in views such as ListView."
+ }
+
+ ListView {
+ id: listView
+ clip: true
+ section.property: "type"
+ section.delegate: Pane {
+ id: sectionPane
+ required property string section
+ width: ListView.view.width
+ height: sectionLabel.implicitHeight + 20
+ Label {
+ id: sectionLabel
+ text: sectionPane.section
+ anchors.centerIn: parent
+ }
+ }
+
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+
+ readonly property var delegateComponentMap: {
+ "ItemDelegate": itemDelegateComponent,
+ "SwipeDelegate": swipeDelegateComponent,
+ "CheckDelegate": checkDelegateComponent,
+ "RadioDelegate": radioDelegateComponent,
+ "SwitchDelegate": switchDelegateComponent
+ }
+
+ Component {
+ id: itemDelegateComponent
+
+ ItemDelegate {
+ // qmllint disable unqualified
+ text: value
+ // qmllint enable unqualified
+ width: parent.width
+ }
+ }
+
+ Component {
+ id: swipeDelegateComponent
+
+ SwipeDelegate {
+ id: swipeDelegate
+ // qmllint disable unqualified
+ text: value
+ // qmllint enable unqualified
+ width: parent.width
+
+ Component {
+ id: removeComponent
+
+ Rectangle {
+ color: SwipeDelegate.pressed ? "#333" : "#444"
+ width: parent.width
+ height: parent.height
+ clip: true
+
+ SwipeDelegate.onClicked: {
+ // qmllint disable unqualified
+ view.model.remove(ourIndex)
+ // qmllint enable unqualified
+ }
+
+ Label {
+ // qmllint disable unqualified
+ font.pixelSize: swipeDelegate.font.pixelSize
+ // qmllint enable unqualified
+ text: "Remove"
+ color: "white"
+ anchors.centerIn: parent
+ }
+ }
+ }
+
+ SequentialAnimation {
+ id: removeAnimation
+
+ PropertyAction {
+ // qmllint disable unqualified
+ target: delegateItem
+ // qmllint enable unqualified
+ property: "ListView.delayRemove"
+ value: true
+ }
+ NumberAnimation {
+ // qmllint disable unqualified
+ target: delegateItem.item
+ // qmllint enable unqualified
+ property: "height"
+ to: 0
+ easing.type: Easing.InOutQuad
+ }
+ PropertyAction {
+ // qmllint disable unqualified
+ target: delegateItem
+ // qmllint enable unqualified
+ property: "ListView.delayRemove"
+ value: false
+ }
+ }
+
+ swipe.left: removeComponent
+ swipe.right: removeComponent
+ ListView.onRemove: removeAnimation.start()
+ }
+ }
+
+ Component {
+ id: checkDelegateComponent
+
+ CheckDelegate {
+ // qmllint disable unqualified
+ text: value
+ // qmllint enable unqualified
+ }
+ }
+
+ ButtonGroup {
+ id: radioButtonGroup
+ }
+
+ Component {
+ id: radioDelegateComponent
+
+ RadioDelegate {
+ // qmllint disable unqualified
+ text: value
+ ButtonGroup.group: radioButtonGroup
+ // qmllint enable unqualified
+ }
+ }
+
+ Component {
+ id: switchDelegateComponent
+
+ SwitchDelegate {
+ // qmllint disable unqualified
+ text: value
+ // qmllint enable unqualified
+ }
+ }
+
+ model: ListModel {
+ ListElement { type: "ItemDelegate"; value: "ItemDelegate1" }
+ ListElement { type: "ItemDelegate"; value: "ItemDelegate2" }
+ ListElement { type: "ItemDelegate"; value: "ItemDelegate3" }
+ ListElement { type: "SwipeDelegate"; value: "SwipeDelegate1" }
+ ListElement { type: "SwipeDelegate"; value: "SwipeDelegate2" }
+ ListElement { type: "SwipeDelegate"; value: "SwipeDelegate3" }
+ ListElement { type: "CheckDelegate"; value: "CheckDelegate1" }
+ ListElement { type: "CheckDelegate"; value: "CheckDelegate2" }
+ ListElement { type: "CheckDelegate"; value: "CheckDelegate3" }
+ ListElement { type: "RadioDelegate"; value: "RadioDelegate1" }
+ ListElement { type: "RadioDelegate"; value: "RadioDelegate2" }
+ ListElement { type: "RadioDelegate"; value: "RadioDelegate3" }
+ ListElement { type: "SwitchDelegate"; value: "SwitchDelegate1" }
+ ListElement { type: "SwitchDelegate"; value: "SwitchDelegate2" }
+ ListElement { type: "SwitchDelegate"; value: "SwitchDelegate3" }
+ }
+
+ delegate: Loader {
+ id: delegateLoader
+ width: ListView.view.width
+ // qmllint disable unqualified
+ sourceComponent: listView.delegateComponentMap[type]
+ // qmllint enable unqualified
+
+ required property string value
+ required property string type
+ required property var model
+ required property int index
+
+ property Loader delegateItem: delegateLoader
+ // qmllint disable unqualified
+ property ListView view: listView
+ // qmllint enable unqualified
+ property int ourIndex: index
+ }
+ }
+ }
+}
diff --git a/examples/quickcontrols/gallery/pages/DialPage.qml b/examples/quickcontrols/gallery/pages/DialPage.qml
new file mode 100644
index 000000000..17c9e090b
--- /dev/null
+++ b/examples/quickcontrols/gallery/pages/DialPage.qml
@@ -0,0 +1,27 @@
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+ScrollablePage {
+ id: page
+
+ Column {
+ spacing: 40
+ width: parent.width
+
+ Label {
+ width: parent.width
+ wrapMode: Label.Wrap
+ horizontalAlignment: Qt.AlignHCenter
+ text: "The Dial is similar to a traditional dial knob that is found on devices such as "
+ + "stereos or industrial equipment. It allows the user to specify a value within a range."
+ }
+
+ Dial {
+ value: 0.5
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+ }
+}
diff --git a/examples/quickcontrols/gallery/pages/DialogPage.qml b/examples/quickcontrols/gallery/pages/DialogPage.qml
new file mode 100644
index 000000000..ffabb415e
--- /dev/null
+++ b/examples/quickcontrols/gallery/pages/DialogPage.qml
@@ -0,0 +1,179 @@
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Layouts
+import QtQuick.Controls
+
+ScrollablePage {
+ id: page
+
+ readonly property int buttonWidth: Math.max(button.implicitWidth, Math.min(button.implicitWidth * 2, page.availableWidth / 3))
+
+ Column {
+ spacing: 40
+ width: parent.width
+
+ Label {
+ width: parent.width
+ wrapMode: Label.Wrap
+ horizontalAlignment: Qt.AlignHCenter
+ text: "Dialog is a popup that is mostly used for short-term tasks "
+ + "and brief communications with the user."
+ }
+
+ Button {
+ text: "Message"
+ anchors.horizontalCenter: parent.horizontalCenter
+ width: page.buttonWidth
+ onClicked: messageDialog.open()
+
+ Dialog {
+ id: messageDialog
+
+ x: (parent.width - width) / 2
+ y: (parent.height - height) / 2
+
+ title: "Message"
+
+ Label {
+ text: "Lorem ipsum dolor sit amet..."
+ }
+ }
+ }
+
+ Button {
+ id: button
+ text: "Confirmation"
+ anchors.horizontalCenter: parent.horizontalCenter
+ width: page.buttonWidth
+ onClicked: confirmationDialog.open()
+
+ Dialog {
+ id: confirmationDialog
+
+ x: (parent.width - width) / 2
+ y: (parent.height - height) / 2
+ parent: Overlay.overlay
+
+ modal: true
+ title: "Confirmation"
+ standardButtons: Dialog.Yes | Dialog.No
+
+ Column {
+ spacing: 20
+ anchors.fill: parent
+ Label {
+ text: "The document has been modified.\nDo you want to save your changes?"
+ }
+ CheckBox {
+ text: "Do not ask again"
+ anchors.right: parent.right
+ }
+ }
+ }
+ }
+
+ Button {
+ text: "Content"
+ anchors.horizontalCenter: parent.horizontalCenter
+ width: page.buttonWidth
+ onClicked: contentDialog.open()
+
+ Dialog {
+ id: contentDialog
+
+ x: (parent.width - width) / 2
+ y: (parent.height - height) / 2
+ width: Math.min(page.width, page.height) / 3 * 2
+ contentHeight: logo.height * 2
+ parent: Overlay.overlay
+
+ modal: true
+ title: "Content"
+ standardButtons: Dialog.Close
+
+ Flickable {
+ id: flickable
+ clip: true
+ anchors.fill: parent
+ contentHeight: column.height
+
+ Column {
+ id: column
+ spacing: 20
+ width: parent.width
+
+ Image {
+ id: logo
+ width: parent.width / 2
+ anchors.horizontalCenter: parent.horizontalCenter
+ fillMode: Image.PreserveAspectFit
+ source: "../images/qt-logo.png"
+ }
+
+ Label {
+ width: parent.width
+ text: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc finibus "
+ + "in est quis laoreet. Interdum et malesuada fames ac ante ipsum primis "
+ + "in faucibus. Curabitur eget justo sollicitudin enim faucibus bibendum. "
+ + "Suspendisse potenti. Vestibulum cursus consequat mauris id sollicitudin. "
+ + "Duis facilisis hendrerit consectetur. Curabitur sapien tortor, efficitur "
+ + "id auctor nec, efficitur et nisl. Ut venenatis eros in nunc placerat, "
+ + "eu aliquam enim suscipit."
+ wrapMode: Label.Wrap
+ }
+ }
+
+ ScrollIndicator.vertical: ScrollIndicator {
+ parent: contentDialog.contentItem
+ anchors.top: flickable.top
+ anchors.bottom: flickable.bottom
+ anchors.right: parent.right
+ anchors.rightMargin: -contentDialog.rightPadding + 1
+ }
+ }
+ }
+ }
+
+ Button {
+ text: "Input"
+ anchors.horizontalCenter: parent.horizontalCenter
+ width: page.buttonWidth
+ onClicked: inputDialog.open()
+
+ Dialog {
+ id: inputDialog
+
+ x: (parent.width - width) / 2
+ y: (parent.height - height) / 2
+ parent: Overlay.overlay
+
+ focus: true
+ modal: true
+ title: "Input"
+ standardButtons: Dialog.Ok | Dialog.Cancel
+
+ ColumnLayout {
+ spacing: 20
+ anchors.fill: parent
+ Label {
+ elide: Label.ElideRight
+ text: "Please enter the credentials:"
+ Layout.fillWidth: true
+ }
+ TextField {
+ focus: true
+ placeholderText: "Username"
+ Layout.fillWidth: true
+ }
+ TextField {
+ placeholderText: "Password"
+ echoMode: TextField.PasswordEchoOnEdit
+ Layout.fillWidth: true
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/examples/quickcontrols/gallery/pages/FramePage.qml b/examples/quickcontrols/gallery/pages/FramePage.qml
new file mode 100644
index 000000000..852644253
--- /dev/null
+++ b/examples/quickcontrols/gallery/pages/FramePage.qml
@@ -0,0 +1,47 @@
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+ScrollablePage {
+ id: page
+
+ readonly property int itemWidth: Math.max(button.implicitWidth, Math.min(button.implicitWidth * 3, page.availableWidth / 3 * 2))
+
+ Column {
+ spacing: 40
+ width: parent.width
+
+ Label {
+ width: parent.width
+ wrapMode: Label.Wrap
+ horizontalAlignment: Qt.AlignHCenter
+ text: "Frame is used to layout a logical group of controls together, within a visual frame."
+ }
+
+ Frame {
+ anchors.horizontalCenter: parent.horizontalCenter
+
+ Column {
+ spacing: 20
+ width: page.itemWidth
+
+ RadioButton {
+ text: "First"
+ checked: true
+ width: parent.width
+ }
+ RadioButton {
+ id: button
+ text: "Second"
+ width: parent.width
+ }
+ RadioButton {
+ text: "Third"
+ width: parent.width
+ }
+ }
+ }
+ }
+}
diff --git a/examples/quickcontrols/gallery/pages/GroupBoxPage.qml b/examples/quickcontrols/gallery/pages/GroupBoxPage.qml
new file mode 100644
index 000000000..9e24d8e6c
--- /dev/null
+++ b/examples/quickcontrols/gallery/pages/GroupBoxPage.qml
@@ -0,0 +1,48 @@
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+ScrollablePage {
+ id: page
+
+ readonly property int itemWidth: Math.max(button.implicitWidth, Math.min(button.implicitWidth * 3, page.availableWidth / 3 * 2))
+
+ Column {
+ spacing: 40
+ width: parent.width
+
+ Label {
+ width: parent.width
+ wrapMode: Label.Wrap
+ horizontalAlignment: Qt.AlignHCenter
+ text: "A GroupBox provides a frame, a title on top of it, and a logical group of controls within that frame."
+ }
+
+ GroupBox {
+ title: "Title"
+ anchors.horizontalCenter: parent.horizontalCenter
+
+ Column {
+ spacing: 20
+ width: page.itemWidth
+
+ RadioButton {
+ text: "First"
+ checked: true
+ width: parent.width
+ }
+ RadioButton {
+ id: button
+ text: "Second"
+ width: parent.width
+ }
+ RadioButton {
+ text: "Third"
+ width: parent.width
+ }
+ }
+ }
+ }
+}
diff --git a/examples/quickcontrols/gallery/pages/PageIndicatorPage.qml b/examples/quickcontrols/gallery/pages/PageIndicatorPage.qml
new file mode 100644
index 000000000..e83c86563
--- /dev/null
+++ b/examples/quickcontrols/gallery/pages/PageIndicatorPage.qml
@@ -0,0 +1,27 @@
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+ScrollablePage {
+ id: page
+
+ Column {
+ spacing: 40
+ width: parent.width
+
+ Label {
+ width: parent.width
+ wrapMode: Label.Wrap
+ horizontalAlignment: Qt.AlignHCenter
+ text: "PageIndicator is used to indicate the currently active page in a container of pages."
+ }
+
+ PageIndicator {
+ count: 5
+ currentIndex: 2
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+ }
+}
diff --git a/examples/quickcontrols/gallery/pages/ProgressBarPage.qml b/examples/quickcontrols/gallery/pages/ProgressBarPage.qml
new file mode 100644
index 000000000..d712aae10
--- /dev/null
+++ b/examples/quickcontrols/gallery/pages/ProgressBarPage.qml
@@ -0,0 +1,33 @@
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+ScrollablePage {
+ id: page
+
+ Column {
+ spacing: 40
+ width: parent.width
+
+ Label {
+ width: parent.width
+ wrapMode: Label.Wrap
+ horizontalAlignment: Qt.AlignHCenter
+ text: "ProgressBar indicates the progress of an operation. It can be set in an "
+ + "indeterminate mode to indicate that the length of the operation is unknown."
+ }
+
+ ProgressBar {
+ id: bar
+ value: 0.5
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+
+ ProgressBar {
+ indeterminate: true
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+ }
+}
diff --git a/examples/quickcontrols/gallery/pages/RadioButtonPage.qml b/examples/quickcontrols/gallery/pages/RadioButtonPage.qml
new file mode 100644
index 000000000..644543c00
--- /dev/null
+++ b/examples/quickcontrols/gallery/pages/RadioButtonPage.qml
@@ -0,0 +1,39 @@
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+ScrollablePage {
+ id: page
+
+ Column {
+ spacing: 40
+ width: parent.width
+
+ Label {
+ width: parent.width
+ wrapMode: Label.Wrap
+ horizontalAlignment: Qt.AlignHCenter
+ text: "RadioButton presents an option button that can be toggled on or off. "
+ + "Radio buttons are typically used to select one option from a set of options."
+ }
+
+ Column {
+ spacing: 20
+ anchors.horizontalCenter: parent.horizontalCenter
+
+ RadioButton {
+ text: "First"
+ }
+ RadioButton {
+ text: "Second"
+ checked: true
+ }
+ RadioButton {
+ text: "Third"
+ enabled: false
+ }
+ }
+ }
+}
diff --git a/examples/quickcontrols/gallery/pages/RangeSliderPage.qml b/examples/quickcontrols/gallery/pages/RangeSliderPage.qml
new file mode 100644
index 000000000..0ca235822
--- /dev/null
+++ b/examples/quickcontrols/gallery/pages/RangeSliderPage.qml
@@ -0,0 +1,35 @@
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+ScrollablePage {
+ id: page
+
+ Column {
+ spacing: 40
+ width: parent.width
+
+ Label {
+ width: parent.width
+ wrapMode: Label.Wrap
+ horizontalAlignment: Qt.AlignHCenter
+ text: "RangeSlider is used to select a range specified by two values, by sliding each handle along a track."
+ }
+
+ RangeSlider {
+ id: slider
+ first.value: 0.25
+ second.value: 0.75
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+
+ RangeSlider {
+ orientation: Qt.Vertical
+ first.value: 0.25
+ second.value: 0.75
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+ }
+}
diff --git a/examples/quickcontrols/gallery/pages/ScrollBarPage.qml b/examples/quickcontrols/gallery/pages/ScrollBarPage.qml
new file mode 100644
index 000000000..248e74ca7
--- /dev/null
+++ b/examples/quickcontrols/gallery/pages/ScrollBarPage.qml
@@ -0,0 +1,40 @@
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+Flickable {
+ id: flickable
+
+ contentHeight: pane.height
+
+ Pane {
+ id: pane
+ width: flickable.width
+ height: flickable.height * 1.25
+
+ Column {
+ id: column
+ spacing: 40
+ width: parent.width
+
+ Label {
+ width: parent.width
+ wrapMode: Label.Wrap
+ horizontalAlignment: Qt.AlignHCenter
+ text: "ScrollBar is an interactive bar that can be used to scroll to a specific position. "
+ + "A scroll bar can be either vertical or horizontal, and can be attached to any Flickable, "
+ + "such as ListView and GridView."
+ }
+
+ Image {
+ rotation: 90
+ source: "../images/arrows.png"
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+ }
+ }
+
+ ScrollBar.vertical: ScrollBar { }
+}
diff --git a/examples/quickcontrols/gallery/pages/ScrollIndicatorPage.qml b/examples/quickcontrols/gallery/pages/ScrollIndicatorPage.qml
new file mode 100644
index 000000000..04ce97483
--- /dev/null
+++ b/examples/quickcontrols/gallery/pages/ScrollIndicatorPage.qml
@@ -0,0 +1,40 @@
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+Flickable {
+ id: flickable
+
+ contentHeight: pane.height
+
+ Pane {
+ id: pane
+ width: flickable.width
+ height: flickable.height * 1.25
+
+ Column {
+ id: column
+ spacing: 40
+ width: parent.width
+
+ Label {
+ width: parent.width
+ wrapMode: Label.Wrap
+ horizontalAlignment: Qt.AlignHCenter
+ text: "ScrollIndicator is a non-interactive indicator that indicates the current scroll position. "
+ + "A scroll indicator can be either vertical or horizontal, and can be attached to any Flickable, "
+ + "such as ListView and GridView."
+ }
+
+ Image {
+ rotation: 90
+ source: "../images/arrows.png"
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+ }
+ }
+
+ ScrollIndicator.vertical: ScrollIndicator { }
+}
diff --git a/examples/quickcontrols/gallery/pages/ScrollablePage.qml b/examples/quickcontrols/gallery/pages/ScrollablePage.qml
new file mode 100644
index 000000000..69bc0cd97
--- /dev/null
+++ b/examples/quickcontrols/gallery/pages/ScrollablePage.qml
@@ -0,0 +1,24 @@
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+Page {
+ id: page
+
+ default property alias content: pane.contentItem
+
+ Flickable {
+ anchors.fill: parent
+ contentHeight: pane.implicitHeight
+ flickableDirection: Flickable.AutoFlickIfNeeded
+
+ Pane {
+ id: pane
+ width: parent.width
+ }
+
+ ScrollIndicator.vertical: ScrollIndicator { }
+ }
+}
diff --git a/examples/quickcontrols/gallery/pages/SliderPage.qml b/examples/quickcontrols/gallery/pages/SliderPage.qml
new file mode 100644
index 000000000..fd03680a0
--- /dev/null
+++ b/examples/quickcontrols/gallery/pages/SliderPage.qml
@@ -0,0 +1,33 @@
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+ScrollablePage {
+ id: page
+
+ Column {
+ spacing: 40
+ width: parent.width
+
+ Label {
+ width: parent.width
+ wrapMode: Label.Wrap
+ horizontalAlignment: Qt.AlignHCenter
+ text: "Slider is used to select a value by sliding a handle along a track."
+ }
+
+ Slider {
+ id: slider
+ value: 0.5
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+
+ Slider {
+ orientation: Qt.Vertical
+ value: 0.5
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+ }
+}
diff --git a/examples/quickcontrols/gallery/pages/SpinBoxPage.qml b/examples/quickcontrols/gallery/pages/SpinBoxPage.qml
new file mode 100644
index 000000000..18c9b06c1
--- /dev/null
+++ b/examples/quickcontrols/gallery/pages/SpinBoxPage.qml
@@ -0,0 +1,29 @@
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+ScrollablePage {
+ id: page
+
+ Column {
+ spacing: 40
+ width: parent.width
+
+ Label {
+ width: parent.width
+ wrapMode: Label.Wrap
+ horizontalAlignment: Qt.AlignHCenter
+ text: "SpinBox allows the user to choose an integer value by clicking the up or down indicator buttons, "
+ + "by pressing up or down on the keyboard, or by entering a text value in the input field."
+ }
+
+ SpinBox {
+ id: box
+ value: 50
+ anchors.horizontalCenter: parent.horizontalCenter
+ editable: true
+ }
+ }
+}
diff --git a/examples/quickcontrols/gallery/pages/StackViewPage.qml b/examples/quickcontrols/gallery/pages/StackViewPage.qml
new file mode 100644
index 000000000..841d491ef
--- /dev/null
+++ b/examples/quickcontrols/gallery/pages/StackViewPage.qml
@@ -0,0 +1,58 @@
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+pragma ComponentBehavior: Bound
+
+import QtQuick
+import QtQuick.Controls
+
+StackView {
+ id: stackView
+ initialItem: page
+
+ Component {
+ id: page
+
+ Pane {
+ id: pane
+ width: parent ? parent.width : 0 // TODO: fix null parent on destruction
+
+ Column {
+ spacing: 40
+ width: parent.width
+
+ Label {
+ width: parent.width
+ wrapMode: Label.Wrap
+ horizontalAlignment: Qt.AlignHCenter
+ text: "StackView provides a stack-based navigation model which can be used with a set of interlinked pages. "
+ + "Items are pushed onto the stack as the user navigates deeper into the material, and popped off again "
+ + "when he chooses to go back."
+ }
+
+ Button {
+ id: button
+ text: "Push"
+ anchors.horizontalCenter: parent.horizontalCenter
+ width: Math.max(button.implicitWidth, Math.min(button.implicitWidth * 2, pane.availableWidth / 3))
+ onClicked: stackView.push(page)
+ }
+
+ Button {
+ text: "Pop"
+ enabled: stackView.depth > 1
+ width: Math.max(button.implicitWidth, Math.min(button.implicitWidth * 2, pane.availableWidth / 3))
+ anchors.horizontalCenter: parent.horizontalCenter
+ onClicked: stackView.pop()
+ }
+
+ Label {
+ width: parent.width
+ wrapMode: Label.Wrap
+ horizontalAlignment: Qt.AlignHCenter
+ text: "Stack Depth: " + stackView.depth
+ }
+ }
+ }
+ }
+}
diff --git a/examples/quickcontrols/gallery/pages/SwipeViewPage.qml b/examples/quickcontrols/gallery/pages/SwipeViewPage.qml
new file mode 100644
index 000000000..03958320e
--- /dev/null
+++ b/examples/quickcontrols/gallery/pages/SwipeViewPage.qml
@@ -0,0 +1,49 @@
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+Pane {
+ id: pane
+
+ SwipeView {
+ id: view
+ currentIndex: 1
+ anchors.fill: parent
+
+ Repeater {
+ model: 3
+
+ Pane {
+ width: SwipeView.view.width
+ height: SwipeView.view.height
+
+ Column {
+ spacing: 40
+ width: parent.width
+
+ Label {
+ width: parent.width
+ wrapMode: Label.Wrap
+ horizontalAlignment: Qt.AlignHCenter
+ text: "SwipeView provides a navigation model that simplifies horizontal paged scrolling. "
+ + "The page indicator on the bottom shows which is the presently active page."
+ }
+
+ Image {
+ source: "../images/arrows.png"
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+ }
+ }
+ }
+ }
+
+ PageIndicator {
+ count: view.count
+ currentIndex: view.currentIndex
+ anchors.bottom: parent.bottom
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+}
diff --git a/examples/quickcontrols/gallery/pages/SwitchPage.qml b/examples/quickcontrols/gallery/pages/SwitchPage.qml
new file mode 100644
index 000000000..cca200582
--- /dev/null
+++ b/examples/quickcontrols/gallery/pages/SwitchPage.qml
@@ -0,0 +1,39 @@
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+ScrollablePage {
+ id: page
+
+ Column {
+ spacing: 40
+ width: parent.width
+
+ Label {
+ width: parent.width
+ wrapMode: Label.Wrap
+ horizontalAlignment: Qt.AlignHCenter
+ text: "Switch is an option button that can be dragged or toggled on or off. "
+ + "Switches are typically used to select between two states."
+ }
+
+ Column {
+ spacing: 20
+ anchors.horizontalCenter: parent.horizontalCenter
+
+ Switch {
+ text: "First"
+ }
+ Switch {
+ text: "Second"
+ checked: true
+ }
+ Switch {
+ text: "Third"
+ enabled: false
+ }
+ }
+ }
+}
diff --git a/examples/quickcontrols/gallery/pages/TabBarPage.qml b/examples/quickcontrols/gallery/pages/TabBarPage.qml
new file mode 100644
index 000000000..d4dfeb895
--- /dev/null
+++ b/examples/quickcontrols/gallery/pages/TabBarPage.qml
@@ -0,0 +1,57 @@
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+Page {
+ id: page
+
+ SwipeView {
+ id: swipeView
+ anchors.fill: parent
+ currentIndex: tabBar.currentIndex
+
+ Repeater {
+ model: 3
+
+ Pane {
+ width: SwipeView.view.width
+ height: SwipeView.view.height
+
+ Column {
+ spacing: 40
+ width: parent.width
+
+ Label {
+ width: parent.width
+ wrapMode: Label.Wrap
+ horizontalAlignment: Qt.AlignHCenter
+ text: "TabBar is a bar with icons or text which allows the user "
+ + "to switch between different subtasks, views, or modes."
+ }
+
+ Image {
+ source: "../images/arrows.png"
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+ }
+ }
+ }
+ }
+
+ footer: TabBar {
+ id: tabBar
+ currentIndex: swipeView.currentIndex
+
+ TabButton {
+ text: "First"
+ }
+ TabButton {
+ text: "Second"
+ }
+ TabButton {
+ text: "Third"
+ }
+ }
+}
diff --git a/examples/quickcontrols/gallery/pages/TextAreaPage.qml b/examples/quickcontrols/gallery/pages/TextAreaPage.qml
new file mode 100644
index 000000000..3e9d7ee52
--- /dev/null
+++ b/examples/quickcontrols/gallery/pages/TextAreaPage.qml
@@ -0,0 +1,29 @@
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+ScrollablePage {
+ id: page
+
+ Column {
+ spacing: 40
+ width: parent.width
+
+ Label {
+ width: parent.width
+ wrapMode: Label.Wrap
+ horizontalAlignment: Qt.AlignHCenter
+ text: "TextArea is a multi-line text editor."
+ }
+
+ TextArea {
+ width: page.availableWidth / 3
+ anchors.horizontalCenter: parent.horizontalCenter
+
+ wrapMode: TextArea.Wrap
+ text: "TextArea\n...\n...\n..."
+ }
+ }
+}
diff --git a/examples/quickcontrols/gallery/pages/TextFieldPage.qml b/examples/quickcontrols/gallery/pages/TextFieldPage.qml
new file mode 100644
index 000000000..2b06894c8
--- /dev/null
+++ b/examples/quickcontrols/gallery/pages/TextFieldPage.qml
@@ -0,0 +1,27 @@
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+ScrollablePage {
+ id: page
+
+ Column {
+ spacing: 40
+ width: parent.width
+
+ Label {
+ width: parent.width
+ wrapMode: Label.Wrap
+ horizontalAlignment: Qt.AlignHCenter
+ text: "TextField is a single-line text editor."
+ }
+
+ TextField {
+ id: field
+ placeholderText: "TextField"
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+ }
+}
diff --git a/examples/quickcontrols/gallery/pages/ToolTipPage.qml b/examples/quickcontrols/gallery/pages/ToolTipPage.qml
new file mode 100644
index 000000000..dd92c89b4
--- /dev/null
+++ b/examples/quickcontrols/gallery/pages/ToolTipPage.qml
@@ -0,0 +1,30 @@
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+ScrollablePage {
+ id: page
+
+ Column {
+ spacing: 40
+ width: parent.width
+
+ Label {
+ width: parent.width
+ wrapMode: Label.Wrap
+ horizontalAlignment: Qt.AlignHCenter
+ text: "A tool tip is a short piece of text that informs the user of a control's function."
+ }
+
+ Button {
+ text: "Tip"
+ anchors.horizontalCenter: parent.horizontalCenter
+
+ ToolTip.timeout: 5000
+ ToolTip.visible: pressed
+ ToolTip.text: "This is a tool tip."
+ }
+ }
+}
diff --git a/examples/quickcontrols/gallery/pages/TumblerPage.qml b/examples/quickcontrols/gallery/pages/TumblerPage.qml
new file mode 100644
index 000000000..4d01f02e8
--- /dev/null
+++ b/examples/quickcontrols/gallery/pages/TumblerPage.qml
@@ -0,0 +1,26 @@
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+ScrollablePage {
+ id: page
+
+ Column {
+ spacing: 40
+ width: parent.width
+
+ Label {
+ width: parent.width
+ wrapMode: Label.Wrap
+ horizontalAlignment: Qt.AlignHCenter
+ text: "Tumbler is used to select a value by spinning a wheel."
+ }
+
+ Tumbler {
+ model: 10
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+ }
+}
diff --git a/examples/quickcontrols2/gallery/qmldir b/examples/quickcontrols/gallery/qmldir
index 6b7f86bfa..6b7f86bfa 100644
--- a/examples/quickcontrols2/gallery/qmldir
+++ b/examples/quickcontrols/gallery/qmldir
diff --git a/examples/quickcontrols2/gallery/qtquickcontrols2.conf b/examples/quickcontrols/gallery/qtquickcontrols2.conf
index da1a8f41d..da1a8f41d 100644
--- a/examples/quickcontrols2/gallery/qtquickcontrols2.conf
+++ b/examples/quickcontrols/gallery/qtquickcontrols2.conf
diff --git a/examples/quickcontrols/gallery/rc_gallery.py b/examples/quickcontrols/gallery/rc_gallery.py
new file mode 100644
index 000000000..786c9cfbc
--- /dev/null
+++ b/examples/quickcontrols/gallery/rc_gallery.py
@@ -0,0 +1,4410 @@
+# Resource object code (Python 3)
+# Created by: object code
+# Created by: The Resource Compiler for Qt version 6.5.0
+# WARNING! All changes made in this file will be lost!
+
+from PySide6 import QtCore
+
+qt_resource_data = b"\
+\x00\x00\x09\xc1\
+\x00\
+\x00)\xbbx\xda\xc5Z\xdds\xdb6\x12\x7f\xd7_\x81\
+\xb0/RcQ\xb6s\xc9\x03\xdb\xdc\x8d-'\x8d\xe7\
+\x9cKb\xf9\x9a\xcet\xfa\x00\x91\x90\x843\x04\xd0\x00\
+h[\xcd\xf9\x7f\xbf\x05\xf8!~\x00\xb2\xc4I\xe78\
+\x93\x98\x04\x16\x8b\xc5b?~Xh2AS\x91n\
+$]\xae4\x1aNG\xe8\xf4\xf8\xf4\x04\xdd\xac\x08\xfa\
+\xa2\xa1g\x9db\xbeAW:\x09\x07\x93\x09\x9a}\xbe\
+\xf8m|Ec\xc2\x15\x19_&\x84k\xba\xa0DF\
+\xa8h\xbb&\x8b\xf1\x17=\x86ak\x22c\x8a\x19\xfa\
+t\x8d\xceg\x17\xe3W\xe3)\xc3\x99\x22\x83A*\xf1\
+r\x8d-g\xc1\x81\xc19Y\xe1{*\x80\xc7\xb9\xc8\
+x2\x18P\xe8\x90\x1af\x9f\x0aI\xb6__2\x1a\
+\xdf\xb6>\xc3+\xbc\x11\x99V\xed\xe6\xa9\xe0Z\x0a\xa6\
+*fA\x18 \xac\xd0Y\x9a\x0e\x06\xf0\x1f\xa31\xd6\
+T\xf0\xaf\x94'\xe2\x01}\x1b xh\x12\xa1\x07\xdb\
+`?\x1fh\xa2W\x11z\xf5\xe6\xd8~\xae\x88QP\
+\x84^\x9f\xe6\xdf\xf7T\xd19#\x11\xd22#\xb6E\
+Sm\xbe\x03P\x9b\x95\x02\x95R\x04\x03\xdb?\x99\xbc\
+@\xbf\x0bIa\xcdv\xf2?l\xab$8\x11\x9cm\
+P*EJ\xa4\xde\xa0\xb9\x10\x0c\x19\xa9%\xa6\xfa\xa3\
+HH)VhEB?\x97\x9f\xb9H\x1e\xde\xb6y\
+\x91\xf1\xd8|\x82\xf4,\x1d\x8e\x8a\x85\x9a\x87\x11\x8d\x12\
+\xaaR\x867\x94/\x0bI\xd1[\xc4\xa8\xd2\xbfR\xf2\
+\x10\xc6\x99\x94\xc0\xed\x92'\xe4\x11\xbdx\xfb\x16\x8dO\
+\x1a\x83\x8b\xfeb\xe4\xbf\xf0\x9a\xc0\xe8\x0e\xc7j\x88y\
+\xfe\xb1\xe5\xbe\x86e\xb1pI\xf4\xd09\xe1(\xb4\xca\
+\x0c\xb5\xb8\x12\x0fDN\xb1\x22 =\xe86h\xc8\x90\
+I#r\xb0\xd2:U\xd1d\x92\x888\xbc\xd3!\x15\
+\x93;=~3\x09\x1a\x93\xbfD\xc3\xdd\xd2Y\x01\x83\
+\xbb5\x1b\xdf\xe9;\xb3\x7f\xe3\xb8\xd8\xbf\xd3q\x00\xc3\
+\x1d\x0b~\x09v\xb5\xd2k\x16\xb4\x19\x81\xa4]&\xc0\
+\x1a\x96\x9d\xc1\xb2\xec\x98\xd1O\xd5\xa8/:\x84\xbd\xe7\
+\xff\x96\xec\xdd\xa3&\x92c\xc66CX\xdc\xc8R<\
+\x0d\x0aC\x01\x86\x92$[C\xb9\xc7\x12\xcd3\xca@\
+g3\xbdaD\xe5\x843\xa25\xacQ\xd5v\xdb\x98\
+\xb6*\x9a\xab\xc6\x8a\x8f\xd2\x12:\xe0\x0f\xf0\xa8\xcf8\
+[\x81\x11\xc6\x99\xae1R \x04\xe11Q\x11\xfa=\
+x\xa7\xe2\xe0\x08\x05\xe78\xbe\x0d\xfe\xa8H\x08\xc7\xe0\
+\x17fB\x0d\x1dvk\x13\x92\x82\xdd\xfe\x1dm-H\
+\xf030\xcc{\xac\x0d!\x07\xff_\xc2\xabatf\
+\xed5\x04\x89\x96K\x22\x87\xa3=\xe5\x89\xd0Lc\x9e\
+`\x99\xfc\x93l\xc2\x0f`\xedf\x9f`\xbb\x94{\xca\
+\xca\x83\x8c[\xd4\xe7\xc8\xe7o\xa9\xae+\xe0\xb6\x1b\xf6\
+7\xe4`\x0c\xce\xf5\x1a\x8b\x9a\x1b\xf5\x18\x8bH$\x06\
+[\x0ej\x02\xdd\xe4\xab4\x02}k\x98\x10]\xa0\xa1\
+\x83\xdd\xa8Ef5P\x91\xa5\xa2\x5cK\xfdq;t\
+\xc3\x9d\xed\xf2\x11a\x8a8\xf8\xe7R[\xfblq\x7f\
+\x1a4\xdf\xf6\xd9\xa5\xe0#\xe1Y\xe0\xde\x13\x91\x1a\xcd\
+*C\xb1\xcb\x0a\x9c;\xd4\x19\xeb\xda\xa0`\xdd\x9a\xbc\
+\xa6\xff\x1a\x83\xfaZ\x8b9W\x10\xa4M\x96\x83\xd4\x11\
+\xde@x>\x07\xcf\xdb\x0ap-\x1e\xf2<\xd4R\x9f\
+Jq\x0c\x8e\x15\xa1\x22e\x94\x0f\xe61\xe8H\x85\x0b\
+\xcaX\x84Rl\xb6\xc5I\xc0\xc8B\x7f\xc4rIy\
+\x84^\x14&[O\x0c`^\xc5\xf6\xe4\x99!B\x90\
+@\xc9\x82r\x92\x0c\x1a\x0c\xad\xcc\x99\xd6\x0d\xbdU\xb3\
+Y\x85\xed\xb4\xf2\xf2\xa9\x92\x9eC\x98\x96m4>\xaf\
+\xf0\x9c0\xc7\xd4f\xebl\xa4\xb7\x04\x9dnM\x1e!\
+\xe3v,X\x935\xac|\xe8l\x87$o\xfe^\x10\
+F\xccZ \x91\x00\x0f\xe3}\xbf@P%r\xd3\x09\
+\xd5h\x01\x81\x22L\xe9#a3\xfa'\xe9l\x96\x0d\
+i\x8c\x9a,l\x85\x0c\xdf\x99\x8f\xeb*\xf3\xd6\x1f\xd8\
+4\xfa'\xb0\xc3\xec\x8c\xd1%\x07s\x03\xf1!\xb8\xdb\
+\xaf\x0fS\xf8$\xb2\xabS\x88\xc1\x00G\x5cC~\xf5\
+\x0c\xc9\xad\xcd\xda\xcf\xd7\x1c\xa5T \xc4\xb3\x01{\x19\
+@\xd7\x89:\xa4\xa6\xcf\xc1\xc1\xe1\x86N\x9a\xc7\xd2\xdc\
+\x0b\x83\x1d\xe7(\xcbI\x0b\x86\xc5\xd5B\xc8\xf5'\xf0\
+R\xe3\x01\xd67oD\x9a\xeb\xde9\xa6\x13\x1b\xdc\x16\
+\x15\x94)2\xf0\x126\x82C\x99:/\x00\xd0\x8a\xa5\
++\x16vcb\x1f\xb1L\xde\xdaS\xa4n\x02\xfb\xbe\
+\xa2\x9c\xcd\xc1\xc2\xf6\x94\x05\x1b\xda>\xbay\xda'\x9f\
+\x5c\xd8\x08\xd7\x8a\xf7y\xd8\xdb\x1aA\x01\xd6?b\xbd\
+\x0a\xd7\x94\x0f\xeb\x80\xf9\xa8\x89\x97Gh\x82^\xa1\x1f\
+\xd1i5\xb8\x84\xf6]Xm\x1e\xc0l\x98\xed\x8ex\
+\xd4x\xa9\xf1\xa2{wh4\xd1\xaa\x9d\xce\xdf\x02\xa4\
+>1\x98v\x81!\xf1nA\x99P4\xf7F7\x9f\
+c\x18\xb1\xcd\xdcU<ve\x87\xadv\xae\x8aH\xd9\
+F\x19\xc96\xb86\xfdi!\xe2L9\xa2J\x1dC\
+Dm\x08\xe1Lk\x0d\x0a\x8b\xfa#+\x8e\x11\xd0\x95\
+\x11L\xdf;FL\x1cD\xdf\xaa#\xd5y\xa660\
+\xa99\xb5\x09\x19\xfc\x84\x94\xc8\xa4\x85\x13w2\x8e&\
+)^\x125i\xd0|\x86\xa6\x10\x00w\xe0\xb0:\xdf\
+\x14&:zy\x9b\xce\xc3\x99NW$\xbe=\x17\x8f\
+\x1e\xb6ew\x0f\xc6b=\x17;\x18\x17\xdd\x873\x86\
+\xc4\x897;uQ\xa3\xe8\xc1\x1e\xa2\x84\x8f/t\xf5\
+c(\x96;X\x8ae/%X\xf4\xa0\xfc*\xb0\xfd\
+\x87s~/\x01\x89z\xb8\xda\xbe\xc3Y\xfe\x22E\x96\
+\xfaM\xa1\xec>\x9c\xb1\x19\xf1\x9c\xd35hzL!\
+\xc5R\x12\xa5\x00O\xfb&\xd8R\x1c\xce\xfe\x1a'T\
+\xec4\xe6\x1aE\x1f\xf6|If\x06\x0eJ/\xfb\x8a\
+\xe2p\xf6\xb3X\x0a\xc6\xfc\xaa\xa9\xfa\xfb\xb2~ns\
+[T=\xa6\xd9\xa5\x9b\xdejI)\xf7\x9b{\xd1\xdb\
+\x83m\x99\x9f}\x8c\xcb\xfe\x1e\xac\x1fhJv\xb1.\
+\xfb{\xb1\xd6\xf1\xca\xcf\x17:\x0fgz\x83\xe7~\xab\
+\xcb;{0\x05\x5cy&\x09\xf6\xb1-\xba\xfb1~\
+O\x09Kvp\xb6\xfd=X\xc3\xa9\xe9\x86\xa6>\xc6\
+yo\x0f\xb6\xd9\x1a@\x9bW\xc1y\xaf\x8fm\xeb`\
+\x97\x14\xa9(j\x1c{=G\xed\x92\xd8\x90v\x08\x0a\
+\x08]b\xc5\xf0\xde\xfc\xe7>\x9e\xe5g\x04\xbb\x9c\xee\
+\x19\x18\xc033\x00\xda\x9c\x0c*fTM\xb7\x87\xf4\
+\xee\xd9\xad[\xdb\x04H\x0d\xff\x00f\xeeAk\xea\xa0\
+\x16Z\xeeA[\xd4:\xdd\xb2{\xc9\xf3}\xea\xca-\
+\xf8\x94\xd1\xf8\xb6[\xc0{\xae\xfa\xe6^Z\xab\x9e\x97\
+\xa9\xd50\x9f\xd9}\xa02UB\x07\xee\x1fyOm\
+E\xb1(f\xc2\xd4\xd3\x9f=\x8e5>[\xc9 ,\
+\xcb\x16Q\xbb\x07\x0c\xddW\x19,\x97\xd6\xaeL\x97\xed\
+\xdb\x19w\x96\xc8\xbeky\x8cr8oaf\xec2\
+B\x9f1'\x8eCR\x0a\xcdMm\x5c\xae\xc1==\
+^\x06\x90S\xf8\xbc\xcbp\x0a\xf1=\xa6\xcc\x14\xc9m\
+\xf1\x06\x8e\xa3\xa7]/*\x8e\xa4M\xfa\x0f\xb6\xd59\
+\xa0\xd4Il+F\x97\xdcYW\xac\x13\x96\xfb\x97\x97\
+\x98>-\x16\x8a\xc0|\xe3\xd7\xdd\xea\x97\xd9\x83\xfc\x1a\
+\xca\xae:\xfc\x0cx\x8c\xc8{r\xa6R\x12Ch\xed\
+\xceQ\x855\xba\xb6!\xedN\x8f\x8dR\xc2\x94/\x83\
+>e\xc2\xa2&\xd1\xb9X3~z\x0f(B!l\
+j4H,Py\xdd\x82\xf4\x0ak\x14c\x8e\xe6\x04\
+e\x0a|Z\x0b{Y\x92\x00\xc9:e\x04\x82\xa4=\
+\xb6/p\x0c\xe3)G%\xf70\xf0\xealm\x8dM\
+9k\x84%\x8d\x16in\x02\xe1\x5c\x00\xac\x5c{\x09\
+\x8d\xf5V\xe50\xf3\xe1\xa5\x94\xa5-XR\xe9,=\
+\x96\xb4\xf9\xa4\x11\xc2R\x827\x800\xfb\x15)\xf3\xd2\
+\xe6\xa1u\xca\xda(_\xa9\xf2A\xe247\x9e\x9c\xf8\
++|\xef2\x81]\x8ee\xd7\xf4\xac\xb1\xe5+\xef\x98\
+Z?\xd5\x97\xea,h=[z@Y\xdc]\xe2\xb2\
+\xe7T\xcf}]\xde9\xa8\x95Pm\x95K\x9a\xcb\xf2\
+a\xa3\xd0U\x96SM\x85\xebt\x1b\xde7\x8d\x11\x8d\
+\x22\x17\x10\xbe\x199\x8bh9\xf1A\xf5\xb4Q\xbbd\
+\xd6(\x1f\xb9JJ\x15\x8a\xad\xca\xb1\x83Z\x1a\xb4\xd7\
+y\xf9\xd9\x0c\x06\x16\xf5\xc5O\xb7\xe8\xbf\xe5\xfb\x14v\
+\xa9\x96\xf4\xcdeRLR\xdd\xcd\xc6\xa5*C{\xc5\
+\x09\xe9\xd7\xfe\x85cBX\x5c\x09\x1b\x8c\xe8\x1cQ\xcc\
+\xd4\xce\x98O\xb5I\xaf\xc9\x7f \x0c:&-\xe7h\
+\xa5\xfe\xaa\xdd\xbe\x5cv\x80\xc0\xb3SW\xafq~\xc5\
+\x99\xa7\xae\xa9`\xd9\x9a;\xef\xa1\xea\xd6\x94\x93y\xaf\
+\xa9\x1a\x1d\xbe{\xad\xc6\xa0\x93\xe3\x81\xe3~\xc2\x1d\xc7\
+\xeb\x15x\xb3\xf8(p`\x90NSY\xcc\xdaq\xef\
+P\xea\xd4I\xd0\xc0\x94[\xa5w\xea\x97\xad*ea\
+\xe4\xcd\x0bv\x17}\xf5K\x96\x10\xe0`\x91[\xbc\x80\
+\xb0\xb2\x8c\xd2\x1c\x00\x8e$\xc3\xa6\x81\x1e\x99\x0b p\
+\xbdx\xf5\x9e>\x92df1\xa8\x1f\xd5\xe5\x97\xc5\x15\
+\xcb\xfc\xb7\x1a~\xf2v\x1d\xb74\xc9K/$u\xdf\
+$\xecq\x09\xf5,\xa8|&\xe1_\x13\x08\x03RW\
+\xb8\xbck.\xb1`\xe6\x97C\xc1\x0f\xe4o'\xe4\xf4\
+u\x97@\x18;\xd5\x9b\xc8\xe3\x8eFY\x0e\x87\x04\xe4\
+x\x12\x9aR\xfbqx\xfc\x7fN\xa0{\xaa\xb9F\xf6\
+\xa1\xc0\x8e\x8e;\xc1\xfd\xb3O\xedN\xa7wXo\xdd\
+!\x81\xc7\xf9\xd3U=[uR\xd4\xf7\xb9\xe6)\xc2\
+e\xa9\x1e\xbb\xc2<\x1c\x96W>\x83\xadK\x9bfG\
+\x18\xad\x0d\xda/\x86\xfa,\xbcXI\xfd\xea\xacy,\
+\xf0\xf9D\xf1\xc3\xbc\x16\x10\xce\x7fXd\x0e\xf8\x14\xcc\
+\xcc\xa0_\x82\xb8\xb9\xf9^\x12N\xa4\xfdI\x98A\xc1\
+r\x8by\xb7Hy\x8e\x0d<\x16;\x11\xf0\xb30\xce\
+u\x93~r\xda\xc7\xf7{k\xe6\x92[h\x8f%U\
+\xb0\x18\x80\xfb]5\x9d\x1c9\x1a\xdd\xb7\x9c/Q\x00\
+\x98\x0f\x80 \x122\x01\xc5\xc1\xd9\x02\xf0%\x1c\x163\
+8X*j\xc2\xbc<By\xa5\x03^\x00\xad\xa0\x05\
+V\xf0\xfe\x97i\xaf\xed\xbcO\x83\xff\x01\x9e\xca\xab\x1d\
+\
+\x00\x00\x00`\
+[\
+Material]\x0aPrimar\
+y=#41cd52\x0aAccent\
+=#41cd52\x0aTheme=S\
+ystem\x0a\x0a[Universa\
+l]\x0aAccent=#41cd5\
+2\x0aTheme=System\x0a\
+\x00\x00\x00\x94\
+/\
+/ Copyright (C) \
+2021 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick.Co\
+ntrols\x0a\x0aToolBar \
+{}\x0a\
+\x00\x00\x00\x0b\
+m\
+odule App\x0a\
+\x00\x00\x03\x0b\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aScrollabl\
+ePage {\x0a id: \
+page\x0a\x0a Column\
+ {\x0a spaci\
+ng: 40\x0a w\
+idth: parent.wid\
+th\x0a\x0a Labe\
+l {\x0a \
+width: parent.wi\
+dth\x0a \
+wrapMode: Label.\
+Wrap\x0a \
+ horizontalAlign\
+ment: Qt.AlignHC\
+enter\x0a \
+ text: \x22SpinBox\
+ allows the user\
+ to choose an in\
+teger value by c\
+licking the up o\
+r down indicator\
+ buttons, \x22\x0a \
+ + \x22b\
+y pressing up or\
+ down on the key\
+board, or by ent\
+ering a text val\
+ue in the input \
+field.\x22\x0a \
+}\x0a\x0a SpinB\
+ox {\x0a \
+ id: box\x0a \
+ value: 50\x0a \
+ ancho\
+rs.horizontalCen\
+ter: parent.hori\
+zontalCenter\x0a \
+ editabl\
+e: true\x0a \
+}\x0a }\x0a}\x0a\
+\x00\x00\x02\x84\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aScrollabl\
+ePage {\x0a id: \
+page\x0a\x0a Column\
+ {\x0a spaci\
+ng: 40\x0a w\
+idth: parent.wid\
+th\x0a\x0a Labe\
+l {\x0a \
+width: parent.wi\
+dth\x0a \
+wrapMode: Label.\
+Wrap\x0a \
+ horizontalAlign\
+ment: Qt.AlignHC\
+enter\x0a \
+ text: \x22PageInd\
+icator is used t\
+o indicate the c\
+urrently active \
+page in a contai\
+ner of pages.\x22\x0a \
+ }\x0a\x0a \
+ PageIndicator \
+{\x0a co\
+unt: 5\x0a \
+ currentIndex:\
+ 2\x0a a\
+nchors.horizonta\
+lCenter: parent.\
+horizontalCenter\
+\x0a }\x0a }\
+\x0a}\x0a\
+\x00\x00\x05{\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aPage {\x0a \
+ id: page\x0a\x0a \
+SwipeView {\x0a \
+ id: swipeVie\
+w\x0a anchor\
+s.fill: parent\x0a \
+ currentIn\
+dex: tabBar.curr\
+entIndex\x0a\x0a \
+ Repeater {\x0a \
+ model: \
+3\x0a\x0a P\
+ane {\x0a \
+ width: Swi\
+peView.view.widt\
+h\x0a \
+ height: SwipeV\
+iew.view.height\x0a\
+\x0a \
+ Column {\x0a \
+ sp\
+acing: 40\x0a \
+ wi\
+dth: parent.widt\
+h\x0a\x0a \
+ Label {\x0a \
+ \
+ width: pa\
+rent.width\x0a \
+ \
+ wrapMode: Lab\
+el.Wrap\x0a \
+ \
+horizontalAlignm\
+ent: Qt.AlignHCe\
+nter\x0a \
+ tex\
+t: \x22TabBar is a \
+bar with icons o\
+r text which all\
+ows the user \x22\x0a \
+ \
+ + \x22\
+to switch betwee\
+n different subt\
+asks, views, or \
+modes.\x22\x0a \
+ }\x0a\x0a \
+ \
+ Image {\x0a \
+ \
+ source: \x22../i\
+mages/arrows.png\
+\x22\x0a \
+ anchor\
+s.horizontalCent\
+er: parent.horiz\
+ontalCenter\x0a \
+ \
+}\x0a \
+ }\x0a \
+}\x0a }\x0a \
+}\x0a\x0a footer: T\
+abBar {\x0a \
+id: tabBar\x0a \
+ currentIndex:\
+ swipeView.curre\
+ntIndex\x0a\x0a \
+ TabButton {\x0a \
+ text: \x22\
+First\x22\x0a }\
+\x0a TabButt\
+on {\x0a \
+ text: \x22Second\x22\x0a\
+ }\x0a \
+ TabButton {\x0a \
+ text: \
+\x22Third\x22\x0a \
+}\x0a }\x0a}\x0a\
+\x00\x00\x02\xc6\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ap\
+ragma ComponentB\
+ehavior: Bound\x0a\x0a\
+import QtQuick\x0ai\
+mport QtQuick.Co\
+ntrols\x0a\x0aScrollab\
+lePage {\x0a id:\
+ page\x0a\x0a Colum\
+n {\x0a spac\
+ing: 40\x0a \
+width: parent.wi\
+dth\x0a\x0a Lab\
+el {\x0a \
+ width: parent.w\
+idth\x0a \
+ wrapMode: Label\
+.Wrap\x0a \
+ horizontalAlig\
+nment: Qt.AlignH\
+Center\x0a \
+ text: \x22BusyIn\
+dicator is used \
+to indicate acti\
+vity while conte\
+nt is being load\
+ed,\x22\x0a \
+ + \x22 or wh\
+en the UI is blo\
+cked waiting for\
+ a resource to b\
+ecome available.\
+\x22\x0a }\x0a\x0a \
+ BusyIndicat\
+or {\x0a \
+ anchors.horizon\
+talCenter: paren\
+t.horizontalCent\
+er\x0a }\x0a \
+ }\x0a}\x0a\
+\x00\x00\x02\x01\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aPage {\x0a \
+ id: page\x0a\x0a \
+default property\
+ alias content: \
+pane.contentItem\
+\x0a\x0a Flickable \
+{\x0a anchor\
+s.fill: parent\x0a \
+ contentHe\
+ight: pane.impli\
+citHeight\x0a \
+ flickableDirec\
+tion: Flickable.\
+AutoFlickIfNeede\
+d\x0a\x0a Pane \
+{\x0a id\
+: pane\x0a \
+ width: parent\
+.width\x0a }\
+\x0a\x0a Scroll\
+Indicator.vertic\
+al: ScrollIndica\
+tor { }\x0a }\x0a}\x0a\
+\
+\x00\x00\x03O\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aScrollabl\
+ePage {\x0a id: \
+page\x0a\x0a Column\
+ {\x0a spaci\
+ng: 40\x0a w\
+idth: parent.wid\
+th\x0a\x0a Labe\
+l {\x0a \
+width: parent.wi\
+dth\x0a \
+wrapMode: Label.\
+Wrap\x0a \
+ horizontalAlign\
+ment: Qt.AlignHC\
+enter\x0a \
+ text: \x22Progres\
+sBar indicates t\
+he progress of a\
+n operation. It \
+can be set in an\
+ \x22\x0a \
+ + \x22indetermin\
+ate mode to indi\
+cate that the le\
+ngth of the oper\
+ation is unknown\
+.\x22\x0a }\x0a\x0a \
+ ProgressBa\
+r {\x0a \
+id: bar\x0a \
+ value: 0.5\x0a \
+ ancho\
+rs.horizontalCen\
+ter: parent.hori\
+zontalCenter\x0a \
+ }\x0a\x0a \
+ProgressBar {\x0a \
+ indete\
+rminate: true\x0a \
+ anchor\
+s.horizontalCent\
+er: parent.horiz\
+ontalCenter\x0a \
+ }\x0a }\x0a}\x0a\
+\x00\x00\x02\xda\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aScrollabl\
+ePage {\x0a id: \
+page\x0a\x0a Column\
+ {\x0a spaci\
+ng: 40\x0a w\
+idth: parent.wid\
+th\x0a\x0a Labe\
+l {\x0a \
+width: parent.wi\
+dth\x0a \
+wrapMode: Label.\
+Wrap\x0a \
+ horizontalAlign\
+ment: Qt.AlignHC\
+enter\x0a \
+ text: \x22A tool \
+tip is a short p\
+iece of text tha\
+t informs the us\
+er of a control'\
+s function.\x22\x0a \
+ }\x0a\x0a \
+Button {\x0a \
+ text: \x22Tip\x22\
+\x0a anc\
+hors.horizontalC\
+enter: parent.ho\
+rizontalCenter\x0a\x0a\
+ Tool\
+Tip.timeout: 500\
+0\x0a To\
+olTip.visible: p\
+ressed\x0a \
+ ToolTip.text:\
+ \x22This is a tool\
+ tip.\x22\x0a }\
+\x0a }\x0a}\x0a\
+\x00\x00\x02\x9b\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aScrollabl\
+ePage {\x0a id: \
+page\x0a\x0a Column\
+ {\x0a spaci\
+ng: 40\x0a w\
+idth: parent.wid\
+th\x0a\x0a Labe\
+l {\x0a \
+width: parent.wi\
+dth\x0a \
+wrapMode: Label.\
+Wrap\x0a \
+ horizontalAlign\
+ment: Qt.AlignHC\
+enter\x0a \
+ text: \x22TextAre\
+a is a multi-lin\
+e text editor.\x22\x0a\
+ }\x0a\x0a \
+ TextArea {\x0a \
+ width:\
+ page.availableW\
+idth / 3\x0a \
+ anchors.hor\
+izontalCenter: p\
+arent.horizontal\
+Center\x0a\x0a \
+ wrapMode: Te\
+xtArea.Wrap\x0a \
+ text: \x22T\
+extArea\x5cn...\x5cn..\
+.\x5cn...\x22\x0a \
+}\x0a }\x0a}\x0a\
+\x00\x00\x02\xff\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aScrollabl\
+ePage {\x0a id: \
+page\x0a\x0a Column\
+ {\x0a spaci\
+ng: 40\x0a w\
+idth: parent.wid\
+th\x0a\x0a Labe\
+l {\x0a \
+width: parent.wi\
+dth\x0a \
+wrapMode: Label.\
+Wrap\x0a \
+ horizontalAlign\
+ment: Qt.AlignHC\
+enter\x0a \
+ text: \x22Slider \
+is used to selec\
+t a value by sli\
+ding a handle al\
+ong a track.\x22\x0a \
+ }\x0a\x0a \
+ Slider {\x0a \
+ id: slider\
+\x0a val\
+ue: 0.5\x0a \
+ anchors.hori\
+zontalCenter: pa\
+rent.horizontalC\
+enter\x0a }\x0a\
+\x0a Slider \
+{\x0a or\
+ientation: Qt.Ve\
+rtical\x0a \
+ value: 0.5\x0a \
+ anchor\
+s.horizontalCent\
+er: parent.horiz\
+ontalCenter\x0a \
+ }\x0a }\x0a}\x0a\
+\x00\x00\x02E\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aScrollabl\
+ePage {\x0a id: \
+page\x0a\x0a Column\
+ {\x0a spaci\
+ng: 40\x0a w\
+idth: parent.wid\
+th\x0a\x0a Labe\
+l {\x0a \
+width: parent.wi\
+dth\x0a \
+wrapMode: Label.\
+Wrap\x0a \
+ horizontalAlign\
+ment: Qt.AlignHC\
+enter\x0a \
+ text: \x22Tumbler\
+ is used to sele\
+ct a value by sp\
+inning a wheel.\x22\
+\x0a }\x0a\x0a \
+ Tumbler {\x0a \
+ model:\
+ 10\x0a \
+anchors.horizont\
+alCenter: parent\
+.horizontalCente\
+r\x0a }\x0a \
+}\x0a}\x0a\
+\x00\x00\x04i\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Lay\
+outs\x0aimport QtQu\
+ick.Controls\x0a\x0aSc\
+rollablePage {\x0a \
+ id: page\x0a\x0a \
+ Column {\x0a \
+ spacing: 40\x0a \
+ width: par\
+ent.width\x0a\x0a \
+ Label {\x0a \
+ width: pa\
+rent.width\x0a \
+ wrapMode:\
+ Label.Wrap\x0a \
+ horizont\
+alAlignment: Qt.\
+AlignHCenter\x0a \
+ text: \x22\
+Button presents \
+a push-button th\
+at can be pushed\
+ or clicked by t\
+he user. \x22\x0a \
+ + \x22Bu\
+ttons are normal\
+ly used to perfo\
+rm an action, or\
+ to answer a que\
+stion.\x22\x0a \
+}\x0a\x0a Colum\
+nLayout {\x0a \
+ spacing: 2\
+0\x0a an\
+chors.horizontal\
+Center: parent.h\
+orizontalCenter\x0a\
+\x0a But\
+ton {\x0a \
+ text: \x22Fir\
+st\x22\x0a \
+ Layout.fillW\
+idth: true\x0a \
+ }\x0a \
+ Button {\x0a \
+ id\
+: button\x0a \
+ text: \x22\
+Second\x22\x0a \
+ highligh\
+ted: true\x0a \
+ Layout\
+.fillWidth: true\
+\x0a }\x0a \
+ Butto\
+n {\x0a \
+ text: \x22Third\
+\x22\x0a \
+ enabled: false\
+\x0a \
+ Layout.fillWidt\
+h: true\x0a \
+ }\x0a }\x0a\
+ }\x0a}\x0a\
+\x00\x00\x03\xa5\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aScrollabl\
+ePage {\x0a id: \
+page\x0a\x0a Column\
+ {\x0a spaci\
+ng: 40\x0a w\
+idth: parent.wid\
+th\x0a\x0a Labe\
+l {\x0a \
+width: parent.wi\
+dth\x0a \
+wrapMode: Label.\
+Wrap\x0a \
+ horizontalAlign\
+ment: Qt.AlignHC\
+enter\x0a \
+ text: \x22Switch \
+is an option but\
+ton that can be \
+dragged or toggl\
+ed on or off. \x22\x0a\
+ \
++ \x22Switches are \
+typically used t\
+o select between\
+ two states.\x22\x0a \
+ }\x0a\x0a \
+ Column {\x0a \
+ spacing: 2\
+0\x0a an\
+chors.horizontal\
+Center: parent.h\
+orizontalCenter\x0a\
+\x0a Swi\
+tch {\x0a \
+ text: \x22Fir\
+st\x22\x0a \
+}\x0a Sw\
+itch {\x0a \
+ text: \x22Se\
+cond\x22\x0a \
+ checked: t\
+rue\x0a \
+}\x0a Sw\
+itch {\x0a \
+ text: \x22Th\
+ird\x22\x0a \
+ enabled: fa\
+lse\x0a \
+}\x0a }\x0a \
+}\x0a}\x0a\
+\x00\x00\x02a\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aScrollabl\
+ePage {\x0a id: \
+page\x0a\x0a Column\
+ {\x0a spaci\
+ng: 40\x0a w\
+idth: parent.wid\
+th\x0a\x0a Labe\
+l {\x0a \
+width: parent.wi\
+dth\x0a \
+wrapMode: Label.\
+Wrap\x0a \
+ horizontalAlign\
+ment: Qt.AlignHC\
+enter\x0a \
+ text: \x22TextFie\
+ld is a single-l\
+ine text editor.\
+\x22\x0a }\x0a\x0a \
+ TextField {\
+\x0a id:\
+ field\x0a \
+ placeholderTe\
+xt: \x22TextField\x22\x0a\
+ anch\
+ors.horizontalCe\
+nter: parent.hor\
+izontalCenter\x0a \
+ }\x0a }\x0a}\x0a\
+\
+\x00\x00\x05\xcc\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aScrollabl\
+ePage {\x0a id: \
+page\x0a\x0a Column\
+ {\x0a spaci\
+ng: 40\x0a w\
+idth: parent.wid\
+th\x0a\x0a Labe\
+l {\x0a \
+width: parent.wi\
+dth\x0a \
+wrapMode: Label.\
+Wrap\x0a \
+ horizontalAlign\
+ment: Qt.AlignHC\
+enter\x0a \
+ text: \x22ComboBo\
+x is a combined \
+button and popup\
+ list. It presen\
+ts \x22\x0a \
+ + \x22a list o\
+f options to the\
+ user that occup\
+ies minimal scre\
+en space.\x22\x0a \
+ }\x0a\x0a Co\
+mboBox {\x0a \
+ model: [\x22Fi\
+rst\x22, \x22Second\x22, \
+\x22Third\x22]\x0a \
+ anchors.hor\
+izontalCenter: p\
+arent.horizontal\
+Center\x0a }\
+\x0a\x0a Label \
+{\x0a wi\
+dth: parent.widt\
+h\x0a wr\
+apMode: Label.Wr\
+ap\x0a h\
+orizontalAlignme\
+nt: Qt.AlignHCen\
+ter\x0a \
+text: \x22ComboBox \
+can be made \x5cl e\
+ditable. An edit\
+able combo box a\
+uto-\x22\x0a \
+ + \x22complet\
+es its text base\
+d on what is ava\
+ilable in the mo\
+del.\x22\x0a }\x0a\
+\x0a ComboBo\
+x {\x0a \
+id: comboBox\x0a\x0a \
+ editab\
+le: true\x0a \
+ model: List\
+Model {\x0a \
+ ListElem\
+ent { text: \x22Ban\
+ana\x22 }\x0a \
+ ListEleme\
+nt { text: \x22Appl\
+e\x22 }\x0a \
+ ListElement\
+ { text: \x22Coconu\
+t\x22 }\x0a \
+ }\x0a o\
+nAccepted: {\x0a \
+ if \
+(find(editText) \
+=== -1)\x0a \
+ comb\
+oBox.model.appen\
+d({text: comboBo\
+x.editText})\x0a \
+ }\x0a \
+ anchors.h\
+orizontalCenter:\
+ parent.horizont\
+alCenter\x0a \
+ }\x0a }\x0a}\x0a\
+\x00\x00\x04\xce\
+\x00\
+\x00\x1c\xd2x\xda\xedY\xddo\xdb6\x10\x7f\xd7_A\
+\xa8/\x096+\xb1\x13`\x80\xfa0\xb4N\xb1\x04p\
+\xd6\xc4\x1e\xd6\x02\xc3\x1e\x18\xe9l\x13\xa1H\x85\xa2\xe2\
+\xb8C\xfe\xf7\x91\x92,\x93\xd6\x87\xe5D)V`~\
+\x08B\xde\x07y\xbf;\xde\x1d\xa9\x93\x134\xe6\xf1Z\
+\x90\xc5R\xa2\xa3\xf11\x1a\x9d\x0e\x7fA\x7f,\x01\xdd\
+JE\x89b\xcc\xd6h\x22C\xcf99A\xb3\x9b\x8b\
+\xaf\x83\x09\x09\x80%0\xb8\x0a\x81I2' |T\
+\xccMa>\xb8\x95\x03%\x16\x81\x08\x08\xa6\xe8\xf3\x14\
+}\x9c]\x0c\xce\x06c\x8a\xd3\x04\x1c\x87D1\x17R\
+)\xbfMIp\xbf3\xf4&x\xcdS\x99\xecN\x8f\
+9\x93\x82\xd3\xc4qn0\x03\xf4\x8f\x83\xd4o\xcci\
+\x1a\xb1\x5c\xa2\x98\xd2\xbf$\xc6\x01a\x0b\x1f\x9d\x9f\x96\
+s\x98\x05K.\x12oN(\xf5Q\x8c\x85\xday\x85\
+(y|\x8d\xc5\x820_a\xe0\x94\xe4\x09\xbe\x03j\
+\xe8\xcf\xe7\xf4\xa2\x99\xba/$\x94K\x1fI\x91\x82\xc5\
+\xb2\x128\xbe\xe6!\xf8\xb9\x02\xef\x8b\x1a[\x0cjM\
+\xf2M\xd9\x85\xe9\x07J\x16,R[\xf2\x95\xc1^6\
+\xba\x1c\xab!\x08K@\xc2\x93\xe2p/\x80\xc2\x02K\
+@A\x01\x0aR\xe6 \x85m\x88p\x82\xc2\x82\x9a \
+\xc2\xd0#\x81U\x82\x924Xj\xd2\x84$\xf2O5\
+\xe3\xb9\xa5\xdag\xc3\xcc\x82\xbac)\x09}D\x0b\x92\
+E\x08(\x89k\xccN \x90\x843/\x16<\x06!\
+\xd7j\xc3r\x1d\x83[\xcb\xb4\xd9\xac\x8f\x0c\xb7\xee\xae\
+^0k\x8e\x0a]\xc0CJ\x84\xb2|\xb3\x1cJ\xa4\
+P\xce\xdf\x08U\x04V\xb9\xb7J(4B^6Y\
+a]\x82>\x12\xe5\xfa\xb9\x17U\x5cR\x12\x10y\x99\
+\x11\xd1O:Rv\x05\xeb\x02\xa6\xc6\xa0\x8c\xad\x96)\
+w\xb4a\xb7\xd7d\x8e\x19\xbeA\x161W\xac\x12\xdf\
+[g\xdb\xa3C#\xda`\xb9,\xb0\xc9x\x1c\xdb#\
+8\xe4\x8c\xae\xb7\x1ey\xc4\xa2\x8cJ\x9dO8S\x9b\
+\xbb\xc6*x\xaa\x10\xb9W\x12\xa2M\x80\xbb>\x22\xc6\
+\xb0\x94\xfd\xb9*6[\x91\x18\x0c\xb9\xc4\x1c\xb7\x09\x8e\
+\x97\x10\xdc\x1b\x82\x819n\x13\x9c\xe2\x90pCP\x98\
+\xe3=[\x95\xc1\xd2\xde\xab1Q\x8a\xb69\xabdj\
+82\xb5\xb09\x15V\x13\xec\x86xU9\xff!\xa2\
+\x94\xa8\xa5B\x92\xe0;\xaa2\x0d{H1\xd5y?\
+l\x89\xdeGLS\xd8\xa7\x12X'\x8d\xc5\xa1\xcd\xc3\
+\xba\xe1\xb4>\xbf\x06\xaf\xfap\xa9\x02f\x85Y\xdb\x09\
+7\xf9~,\x5ck\x19\xdb\xf03\xed\x16\x10\xf1\xc76\
+\x007\xbf\xa9\xcag\x98-(\xb4(\xcc\x8a\x0c\xa7\x5c\
+u\x17\x16\xee\xaa\xb4@\xa2\xab\xdd\xaf\xc8}wvv\
+\xe6\x22Uc\xde\x9d\x9f\x9f\xbb\xad\xaa\xba\x04Q]\xfa\
+/\x04\xf2a\xfbf\xb7\x15\xb1\x95\xcf\xb6\x86\xb3\xb1\xaa\
+(\xf7\x10\xfa{\xb0xa\xd8\x98\xbf\xac\xdaE\xaa)\
+\xa1^\xee\xaa#\x9e\xaa\x8a\x11\xc2\xd3\xf1!Kw\x0c\
+\xaf\x86\xc3xH\xb9\xec\xd1\xf6\xb9\xea\x96\xbc\x98<\x01\
+\x9d\x91o\xb0sF=\x9b\xfa\x86`\x18\x8d\xdc4s\
+\x81\xbb\x97\xbd8\x04\xeej\xa9\xf2\xfa~\xf6\xce\xfd@\
+s\xfa\xdcOi\xf0\xe9L\xf5c\xfaR\xa0zZF\
+\x22\xac{\x96N)\xa3\xe4n\x0e\x95\x9b\xa2\x9f\xf8\x10\
+\xec\xd1\xfa\xcaX\x91\xea\x0a\x00\xca=\x9b\x96E\x17I\
+\xe7mb\xc1\xe8\x91\xcb\x86T-\x8b\xd7]\x22#+\
+\x045]Z7\xaf\xfe\x9eFw \xba8\xe9\x0d\xe0\
+\xf4\xc8w\xc14O\xd9\xed(J\xee\xa3\xd3V\x0e\xc0\
+\x89\xbaPx\xfa\x12\xe3\xa3O\xf9\xe0\x8a}N\xd5\xcd\
+\x14\x87/@\xfe\xff8\xae\x8d\xe39\xa6\x09\xf4\x93\x84\
+\xb2\xcc\xeeQ\x98\xcbjG\xd2\xcc/\xf2r\xdfE\xa0\
+4\x92\xb3\xdc\xc2J\x1a\xf3\x12\x05\xbf<:\xee\xb7M\
+\xad\xbf\x9cTA\xb0.5\xff\xd5\xc6\xbe\x15\x89\x8f\xa9\
+\x94\x9c\xfd&x\x1a7`\x91\xdd\xb7\x0c\xb6\xd7\xe0Z\
+\x7fw\xab\xe2j\xdd\xf9\xbe\x1f\xae\x86\x95\xdeB\xff\xdd\
+c\xfd\x1b\xf8\xa3\xc3\x05\xaa\xf6\x0e[w\x832\x18\x7f\
+\xc8\xd8\xcc\xfa\xe7\xfc\x09I\xbf\xef\xd5\xb5\xae\x9a\xf6\x89\
+B\x94\x01\x86\xf2\xd2a?m\xbc\xdf\xe4=kz\xe8\
+\xd6d\xba\x97*\x1b\xf5\xa9\xec\xac\xb32\xfb)f\xab\
+\xcd\x9a\x1f\xf6\xabn\xd4\xaf\xba\xee\xc6\xda\xcfG[u\
+\xd6\xfc\xb0_u\xa3~\xd5u7\xd6~\xf2\xda\xaa\xb3\
+\xe6\x87\xfd\xaa\x1b\xf5\xab\xee\xa006\x9f\xe9\xacH1\
+\x08\xc3\xbe\x15\x8e\xfaVX1y'\x9dm\xdf\xe0'\
+\x1c\x87 \x1a2\xfc\x86-gz\xcd\xbb\xfa\x81\xd9=\
+\xe1\xa9\x08\xb6%e\xfb5\xc2\xab{T\xfeK\x83\xf3\
+\xb7sX\xfa\xef\xfeY\xa1\xbe\xc04\xb2\xeb\xcdt\xe0\
+\xd6/\xe4YU\xe9\xc0\xabM \xfa\xc5\xa6\xba\xeb\x92\
+\xa7p\xa4\xd9\xf9\xefu\xe0\x81^\xd9\xae\xb5\xf9l\xa4\
+=\xde\xf0\xa9\xe8\xf0\x02l\x99\xbby\xa3\xf2\x0b\xc3\xeb\
++u\xfe\xdf\xb3\xf3\xec\xfc\x0b\x01\xe6r&\
+\x00\x00\x02\xc8\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aScrollabl\
+ePage {\x0a id: \
+page\x0a\x0a Column\
+ {\x0a spaci\
+ng: 40\x0a w\
+idth: parent.wid\
+th\x0a\x0a Labe\
+l {\x0a \
+width: parent.wi\
+dth\x0a \
+wrapMode: Label.\
+Wrap\x0a \
+ horizontalAlign\
+ment: Qt.AlignHC\
+enter\x0a \
+ text: \x22The Dia\
+l is similar to \
+a traditional di\
+al knob that is \
+found on devices\
+ such as \x22\x0a \
+ + \x22st\
+ereos or industr\
+ial equipment. I\
+t allows the use\
+r to specify a v\
+alue within a ra\
+nge.\x22\x0a }\x0a\
+\x0a Dial {\x0a\
+ valu\
+e: 0.5\x0a \
+ anchors.horiz\
+ontalCenter: par\
+ent.horizontalCe\
+nter\x0a }\x0a \
+ }\x0a}\x0a\
+\x00\x00\x04\xe8\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aScrollabl\
+ePage {\x0a id: \
+page\x0a\x0a readon\
+ly property int \
+itemWidth: Math.\
+max(button.impli\
+citWidth, Math.m\
+in(button.implic\
+itWidth * 3, pag\
+e.availableWidth\
+ / 3 * 2))\x0a\x0a \
+Column {\x0a \
+ spacing: 40\x0a \
+ width: pare\
+nt.width\x0a\x0a \
+ Label {\x0a \
+ width: par\
+ent.width\x0a \
+ wrapMode: \
+Label.Wrap\x0a \
+ horizonta\
+lAlignment: Qt.A\
+lignHCenter\x0a \
+ text: \x22F\
+rame is used to \
+layout a logical\
+ group of contro\
+ls together, wit\
+hin a visual fra\
+me.\x22\x0a }\x0a\x0a\
+ Frame {\x0a\
+ anch\
+ors.horizontalCe\
+nter: parent.hor\
+izontalCenter\x0a\x0a \
+ Colum\
+n {\x0a \
+ spacing: 20\x0a\
+ \
+width: page.item\
+Width\x0a\x0a \
+ RadioButt\
+on {\x0a \
+ text: \x22\
+First\x22\x0a \
+ check\
+ed: true\x0a \
+ wid\
+th: parent.width\
+\x0a \
+ }\x0a \
+ RadioButton {\
+\x0a \
+ id: button\x0a\
+ \
+ text: \x22Secon\
+d\x22\x0a \
+ width: pa\
+rent.width\x0a \
+ }\x0a \
+ Rad\
+ioButton {\x0a \
+ t\
+ext: \x22Third\x22\x0a \
+ \
+ width: parent.w\
+idth\x0a \
+ }\x0a \
+ }\x0a }\x0a \
+ }\x0a}\x0a\
+\x00\x00\x05B\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aPane {\x0a \
+ id: pane\x0a\x0a \
+SwipeView {\x0a \
+ id: view\x0a \
+ currentInde\
+x: 1\x0a anc\
+hors.fill: paren\
+t\x0a\x0a Repea\
+ter {\x0a \
+ model: 3\x0a\x0a \
+ Pane {\x0a \
+ w\
+idth: SwipeView.\
+view.width\x0a \
+ heigh\
+t: SwipeView.vie\
+w.height\x0a\x0a \
+ Column\
+ {\x0a \
+ spacing: \
+40\x0a \
+ width: pa\
+rent.width\x0a\x0a \
+ \
+Label {\x0a \
+ \
+width: parent.wi\
+dth\x0a \
+ wrap\
+Mode: Label.Wrap\
+\x0a \
+ horizon\
+talAlignment: Qt\
+.AlignHCenter\x0a \
+ \
+ text: \x22Swi\
+peView provides \
+a navigation mod\
+el that simplifi\
+es horizontal pa\
+ged scrolling. \x22\
+\x0a \
+ + \x22The \
+page indicator o\
+n the bottom sho\
+ws which is the \
+presently active\
+ page.\x22\x0a \
+ }\x0a\x0a \
+ \
+ Image {\x0a \
+ \
+ source: \x22../i\
+mages/arrows.png\
+\x22\x0a \
+ anchor\
+s.horizontalCent\
+er: parent.horiz\
+ontalCenter\x0a \
+ \
+}\x0a \
+ }\x0a \
+}\x0a }\x0a \
+}\x0a\x0a PageIndic\
+ator {\x0a c\
+ount: view.count\
+\x0a current\
+Index: view.curr\
+entIndex\x0a \
+ anchors.bottom:\
+ parent.bottom\x0a \
+ anchors.h\
+orizontalCenter:\
+ parent.horizont\
+alCenter\x0a }\x0a}\
+\x0a\
+\x00\x00\x04;\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aFlickable\
+ {\x0a id: flick\
+able\x0a\x0a conten\
+tHeight: pane.he\
+ight\x0a\x0a Pane {\
+\x0a id: pan\
+e\x0a width:\
+ flickable.width\
+\x0a height:\
+ flickable.heigh\
+t * 1.25\x0a\x0a \
+ Column {\x0a \
+ id: colum\
+n\x0a sp\
+acing: 40\x0a \
+ width: par\
+ent.width\x0a\x0a \
+ Label {\x0a \
+ w\
+idth: parent.wid\
+th\x0a \
+ wrapMode: Lab\
+el.Wrap\x0a \
+ horizont\
+alAlignment: Qt.\
+AlignHCenter\x0a \
+ tex\
+t: \x22ScrollBar is\
+ an interactive \
+bar that can be \
+used to scroll t\
+o a specific pos\
+ition. \x22\x0a \
+ + \x22\
+A scroll bar can\
+ be either verti\
+cal or horizonta\
+l, and can be at\
+tached to any Fl\
+ickable, \x22\x0a \
+ +\
+ \x22such as ListVi\
+ew and GridView.\
+\x22\x0a }\x0a\
+\x0a Ima\
+ge {\x0a \
+ rotation: 9\
+0\x0a \
+ source: \x22../im\
+ages/arrows.png\x22\
+\x0a \
+ anchors.horizon\
+talCenter: paren\
+t.horizontalCent\
+er\x0a }\
+\x0a }\x0a }\
+\x0a\x0a ScrollBar.\
+vertical: Scroll\
+Bar { }\x0a}\x0a\
+\x00\x00\x03v\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aScrollabl\
+ePage {\x0a id: \
+page\x0a\x0a Column\
+ {\x0a spaci\
+ng: 40\x0a w\
+idth: parent.wid\
+th\x0a\x0a Labe\
+l {\x0a \
+width: parent.wi\
+dth\x0a \
+wrapMode: Label.\
+Wrap\x0a \
+ horizontalAlign\
+ment: Qt.AlignHC\
+enter\x0a \
+ text: \x22RangeSl\
+ider is used to \
+select a range s\
+pecified by two \
+values, by slidi\
+ng each handle a\
+long a track.\x22\x0a \
+ }\x0a\x0a \
+ RangeSlider {\x0a\
+ id: \
+slider\x0a \
+ first.value: \
+0.25\x0a \
+ second.value: 0\
+.75\x0a \
+anchors.horizont\
+alCenter: parent\
+.horizontalCente\
+r\x0a }\x0a\x0a \
+ RangeSlider\
+ {\x0a o\
+rientation: Qt.V\
+ertical\x0a \
+ first.value:\
+ 0.25\x0a \
+ second.value: \
+0.75\x0a \
+ anchors.horizon\
+talCenter: paren\
+t.horizontalCent\
+er\x0a }\x0a \
+ }\x0a}\x0a\
+\x00\x00\x05\x17\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aScrollabl\
+ePage {\x0a id: \
+page\x0a\x0a readon\
+ly property int \
+itemWidth: Math.\
+max(button.impli\
+citWidth, Math.m\
+in(button.implic\
+itWidth * 3, pag\
+e.availableWidth\
+ / 3 * 2))\x0a\x0a \
+Column {\x0a \
+ spacing: 40\x0a \
+ width: pare\
+nt.width\x0a\x0a \
+ Label {\x0a \
+ width: par\
+ent.width\x0a \
+ wrapMode: \
+Label.Wrap\x0a \
+ horizonta\
+lAlignment: Qt.A\
+lignHCenter\x0a \
+ text: \x22A\
+ GroupBox provid\
+es a frame, a ti\
+tle on top of it\
+, and a logical \
+group of control\
+s within that fr\
+ame.\x22\x0a }\x0a\
+\x0a GroupBo\
+x {\x0a \
+title: \x22Title\x22\x0a \
+ ancho\
+rs.horizontalCen\
+ter: parent.hori\
+zontalCenter\x0a\x0a \
+ Column\
+ {\x0a \
+ spacing: 20\x0a \
+ w\
+idth: page.itemW\
+idth\x0a\x0a \
+ RadioButto\
+n {\x0a \
+ text: \x22F\
+irst\x22\x0a \
+ checke\
+d: true\x0a \
+ widt\
+h: parent.width\x0a\
+ \
+}\x0a \
+ RadioButton {\x0a\
+ \
+ id: button\x0a \
+ \
+ text: \x22Second\
+\x22\x0a \
+ width: par\
+ent.width\x0a \
+ }\x0a \
+ Radi\
+oButton {\x0a \
+ te\
+xt: \x22Third\x22\x0a \
+ \
+width: parent.wi\
+dth\x0a \
+ }\x0a \
+ }\x0a }\x0a \
+ }\x0a}\x0a\
+\x00\x00\x03\xc7\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aScrollabl\
+ePage {\x0a id: \
+page\x0a\x0a Column\
+ {\x0a spaci\
+ng: 40\x0a w\
+idth: parent.wid\
+th\x0a\x0a Labe\
+l {\x0a \
+width: parent.wi\
+dth\x0a \
+wrapMode: Label.\
+Wrap\x0a \
+ horizontalAlign\
+ment: Qt.AlignHC\
+enter\x0a \
+ text: \x22RadioBu\
+tton presents an\
+ option button t\
+hat can be toggl\
+ed on or off. \x22\x0a\
+ \
++ \x22Radio buttons\
+ are typically u\
+sed to select on\
+e option from a \
+set of options.\x22\
+\x0a }\x0a\x0a \
+ Column {\x0a \
+ spacing\
+: 20\x0a \
+ anchors.horizon\
+talCenter: paren\
+t.horizontalCent\
+er\x0a\x0a \
+RadioButton {\x0a \
+ te\
+xt: \x22First\x22\x0a \
+ }\x0a \
+ RadioButto\
+n {\x0a \
+ text: \x22Secon\
+d\x22\x0a \
+ checked: true\
+\x0a }\x0a \
+ Radio\
+Button {\x0a \
+ text: \x22\
+Third\x22\x0a \
+ enabled: \
+false\x0a \
+ }\x0a }\x0a \
+ }\x0a}\x0a\
+\x00\x00\x04U\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aFlickable\
+ {\x0a id: flick\
+able\x0a\x0a conten\
+tHeight: pane.he\
+ight\x0a\x0a Pane {\
+\x0a id: pan\
+e\x0a width:\
+ flickable.width\
+\x0a height:\
+ flickable.heigh\
+t * 1.25\x0a\x0a \
+ Column {\x0a \
+ id: colum\
+n\x0a sp\
+acing: 40\x0a \
+ width: par\
+ent.width\x0a\x0a \
+ Label {\x0a \
+ w\
+idth: parent.wid\
+th\x0a \
+ wrapMode: Lab\
+el.Wrap\x0a \
+ horizont\
+alAlignment: Qt.\
+AlignHCenter\x0a \
+ tex\
+t: \x22ScrollIndica\
+tor is a non-int\
+eractive indicat\
+or that indicate\
+s the current sc\
+roll position. \x22\
+\x0a \
+ + \x22A scroll\
+ indicator can b\
+e either vertica\
+l or horizontal,\
+ and can be atta\
+ched to any Flic\
+kable, \x22\x0a \
+ + \x22\
+such as ListView\
+ and GridView.\x22\x0a\
+ }\x0a\x0a \
+ Image\
+ {\x0a \
+ rotation: 90\x0a\
+ \
+source: \x22../imag\
+es/arrows.png\x22\x0a \
+ a\
+nchors.horizonta\
+lCenter: parent.\
+horizontalCenter\
+\x0a }\x0a \
+ }\x0a }\x0a\x0a\
+ ScrollIndica\
+tor.vertical: Sc\
+rollIndicator { \
+}\x0a}\x0a\
+\x00\x00\x05\x99\
+\x00\
+\x00\x17\x96x\xda\xcdXKs\xdb6\x10\xbe\xf3W\xec\
+\xf8d'\x16\x948\x99\xe9\x8c.\x9dD\x8e'\x9e\xb1\
+\xe3W\xd2\xb43\xbd@\xc4RB\x0d\x024\x00\xdaV\
+S\xff\xf7.H=(\xf1!\xc5I\xed\xf2 \x11\xc0\
+.\xf6\xf5\xedb\xc1~\x1f\x86&\x9bZ9\x9ex\xd8\
+\x1d\xee\xc1\xc1\xab\xd7\xbf\xc0\xe7\x09\xc2\x85\xa7\x954\xe3\
+z\x0a'^\xb0\xa8\xdf\x87\xab\xf3\xc3\xdf{'2F\
+\xed\xb0w,P{\x99H\xb4\x03\x98\xcd]b\xd2\xbb\
+\xf0=bK\xd1\xc6\x92+8\xbb\x84\xf7W\x87\xbd7\
+\xbd\xa1\xe2\xb9\xc3(\x92if\xac\xa7\xcd/r\x19_\
+\xaf\x0d\xd9\x09\x9f\x9a\xdc\xbb\xf5\xe9\xa1\xd1\xde\x1a\xe5\xa2\
+\xe8*\xa6\x7f\xc5G\x0a\xcf\xf9\x18\xe1[\x04\xf4H1\
+\x80\x8c\x86Q1\xb2\xc8\x85\xd1j\x0a\x995\x19Z?\
+\x05\xa9=\x8cr\xef\x8d\xfe*\x85\x9f\x0c\xe0\x94\xfb\x09\
+K\xf9\xfdn9\xcbH\x9c\x92\xb1\xf4\xc5\xf2\xfelY\
+\xea\xc6ex\x01\x07\xfb\x858\xc6o\xb9,t)\x17\
+\xfa\xf0fo\xaf\xd4ahT\x9e\xea\x99z\xe1q\x19\
+\x8f\xa5\x1e\x0f\xe0\xed\xab\xc5\xdc]\xa9L\xc6-9\x92\
+\x15\xa3h\xb1x\xc2G\xa8*\x1b\xb41\xac\xac[\x9e\
+\x9d\x1a\x81\x83\x92\x9b}\xa5\xf1\x0a\xc1\xc4X\xf97\xf9\
+\x92\xabwJ\x8euJ\xdb\x0c\xc8\xc9\xac\x18}\x1c\xd2\
+\x10\xed\x0a\x83\xc7{\xa2\xd89\xa4P\x9a1H\x07\x1c\
+2\x93\xe5\x19\xf8\x09\xf7a\x9c\x1a\xe7\xc9\xd5\x14Z\x01\
+\x89\xb1\xe0H\x84\xef\xd16)x\xee\xae\x1d\xec\xac\xec\
+\x17\x9e\x97\xb0\xc3\xb5\x80\x91\x95\x98@LP\xc9\xb5\x8c\
+\xb9\x97F;\xb2\x90\xfc\xe8\x09|\xb4\xa1eK\xde\x87\
+\xa5c\xde\x171Y\xf3\xccL\xcfSt\x8e\x02\xb3*\
+\x93\xeb\x98\x94rli|i\xe8\xc2\x91\xeb\x0b\xcd>\
+\xa7xW0\xb4Bc\xf4\x90\xf0q\x8d\x04\xc3\xb4\xd4\
+\xa0t\x18#\xfc\xe9\xdd\xbdh\x85x\xe6\xcbo5\xbf\
+\xc8u\xf6\xa8Fr?\x80\xddj\xf4\xa1W\xea\xb7G\
+\xd8;\xa8QO\x97\xd4\x13,\xf2\xbb\x07\xe5KI_\
+c\xf0\xd2+\xac\xba\xb1F\xd1\x84\xca\xb5\x18\x9c\x18\x8b\
+)\xc8\xcc\xe5)\x08\xa3\x02&\xa4\x07\x9e\xa2g\x8c\xd5\
+\xd1\xf0\x105\x8f6E<x\xab\x8cG\x13\x10\xa8`\
+$\xd2\xa6\x05\xaa\x9e\x11\x0dqE\x8d\xc7B\xa2\xbe\xc7\
+\x7f\x8d\x8bu\xfa\x92v\x00g\xb7h\x15\x9f2S\xfe\
+\xd7\xd5H\x8d\xe0j\x00\xde\xe6\xd8\x8a\xad\xf6\xc8\x14e\
+\xd2Si\xe0V\x94!w\x83\x99k\xd8\x1f\xe8\xe0\x9f\
+\xf9\xe0\x93\xa9\x8b\xae\x15\xdc\x95]\xe7\xc5\xf7\xe0U\xe3\
+\xfa\x1c\x13\x89Tj\x8e\x83F\xc2.\xf8W\xd0\x17N\
+Oa\xe2<\xd4W\x98p\x07#D\x1d\xbc\x13NK\
+\xc1\xfe\xd4\x87\x06\xe8\x9c\x83;N\xeb\xde\x80\xe3\xb7\x18\
+&,\xc4\x13\xae\xc7\xe8~\xddi\x14\xf1\xd08;\x9c\
+`|\xfd\xde\xdco\xd6\x8b\xc4jC\xb9\xe8\xae\x81\x8f\
+\xb9\xd4;\xad\x0cs\x8f\x14m\xc1\x225\x8a\xd1\x96\x9a\
+=6\xaf\x97\x09\xecI\xe4\xf3\xe6n\xd0\xe0\x07\xd2v\
+\xc9\xfe\xd4\x19{Wms\xa8\x8f)l\xbe+\x9b\x9b\
+\xe2}\xc9\xfc&\xf43\xb5\x0df\xda\x7f\xc42\xfed\
+\x82\x99K~\xf1\x04\x15\xa2\x1e\xfa\xae\xe20T\xc6a\
+]\xd6Q\x88d\xe8\xceZ\x12#D)\x99\xd34R\
+\xc4Jf-\xca~W\xd9X\xf3f\x5c\xd4\xaa\x99?\
+\xa3\xe6\x9c\xee*gK\x88\x05\xa2V\x92MUoc\
+\x0b\xba\xfe\x1c\xa7\xcb\x96\xbbK\xaf\x80\x96N\xa2\x06\xa9\
+\x8d0\xfey\xb9\xbf\xfe\x84\x90\x95\x9dra\x14;\xb7\
+H\x0d\xe7-\xbes\x19\xc6\xfeH\xfaNnG\xa5:\
+\x0ePe\xac/\x03\xbf\xeb\xdf\xf8^\x91$\x99\x1e\xb7\
+W\xd5\x87v\xdfn:Y\xb6i\xff\xbf\xbb!\xdb\x0f\
+\xc8td0z:{\xb8\x90\x99t\x012\x80Jz\
+\x06\x9fr\x1d\x93\xa7\xb4\x1c\xe5M}|C_/5\
+\xa0\xf3p\x93\xd3\xcd@q\x92KM\x1f\x1c\x87h\x08\
+\x12\x8e\x1eR\xae\xd0\xe5\x5cpHH\x01\xbaN\xc4\x14\
+X\x8f3\xed2+S\xb9\xbd\xa8\x84\xe7q\xd0\x8d\xc1\
+0\xb7|$\x83\x118&)\x7f\xe5.\x9c\xaatQ\
+\x0c\xb7\xb6\x5c\x04\xb5\xb4L\x17\x0c0\x92#\xd4\xa4\x12\
+\xdbN\xd6UN\xb0\xd0B:\x87t\xfd\x09\xa9,\x19\
+\xfcF\x96\xd2f\x94\x82\x10\xe7\xd6\xd1\xae\x853or\
+\x1e\xcc\xcc-\x19\x22\xc5\x8a\x12[J;\x0c\xdeK(\
+w\x95t\xf46!\xc9\x16-\x85\xac\x12\xac\xaa\xc9\x8e\
+g\x92\xda\x0bO\x17/c\xf7\x01\x93\xa4\x10h\xb7\xf4\
+\xa3\x00\xf2\x0aq\x82\xc6\xb8\xcaM~\xd4\xd2)\x06_\
+<\xdc\xa2FM-\x9b\x03\xb4\x86\xec\xd2\xa0\x0362\
+\xc5c\xb4\x9cp\xb4\x95(\xcc\x81+I\x0eJ\xcbp\
+\x90\xcfb\x82\x9cg\xdd\xdc\x1bo\xb5\x9b[\xa4\x96\xc4\
++?&\x1cSd\xe9\xfei,\xa3S\xcb\xd3+\x15\
+\xf3\xb5\x95\x8e\xc4\x9c\x1f}\xab\xed\xc2lt\xec1\xdd\
+\xd8cy\x93U\x0e\xa20\xdc\xc822t\x02\xa6U\
+\xaer\xe6\xa7\xf5s5\x9eSn\xc7R\x0f\xa0\xb7j\
+g\xb1v\xce\x85\x08U\xe3%\xbc~\x9a\xe6\xf0Xg\
+\xf9s\xb6\x862\xc8\x7flcXa\xfe\xdf^\xe4\x12\
+\xba\xbc\xb8\x96\xceg\x9b\x16\xae!@]\x0d\xdc\xd9\xf5\
+\xf2r7\xa4H\xa2j\xbb\xe0\x95\xdf\x07\x9f\xfb\x9aG\
+\xc7\xe3\xb2\x1c}\x08\x83\xcb\xceL\x9a\xc1\xf6\x5c!\xa7\
+\x13\xa4\x80_\xf1\x91+\xb6X|C\xe5\xca\x0dv:\
+Z\x83`s\xa1\xf5\xec\xf3ekG\xda\x5c\xfd>\x93\
+\xf8#\x89Jt\x98\xd4\x15\xf1\x05|B\xb9\x9f\x18%\
+\xd0~.-\xfaBM\x93\xa6\x83\xfc\x99\x95\xaf+v\
+\xce\x9d\xbb3V\xb4+\x86\x84\x85\xf2TYH`s\
+\xae\x0f\xb4v\xa6?\x88\x8e6\xf0\x87\xecj/\x7f\xe5\
+\xefC\xf4/yY\x0ax\
+\x00\x00\x03\xe0\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aScrollabl\
+ePage {\x0a id: \
+page\x0a\x0a Column\
+ {\x0a spaci\
+ng: 40\x0a w\
+idth: parent.wid\
+th\x0a\x0a Labe\
+l {\x0a \
+width: parent.wi\
+dth\x0a \
+wrapMode: Label.\
+Wrap\x0a \
+ horizontalAlign\
+ment: Qt.AlignHC\
+enter\x0a \
+ text: \x22CheckBo\
+x presents an op\
+tion button that\
+ can be toggled \
+on or off. \x22\x0a \
+ + \x22\
+Check boxes are \
+typically used t\
+o select one or \
+more options fro\
+m a set of optio\
+ns.\x22\x0a }\x0a\x0a\
+ Column {\
+\x0a spa\
+cing: 20\x0a \
+ anchors.hor\
+izontalCenter: p\
+arent.horizontal\
+Center\x0a\x0a \
+ CheckBox {\x0a \
+ t\
+ext: \x22First\x22\x0a \
+ che\
+cked: true\x0a \
+ }\x0a \
+ CheckBox {\x0a\
+ \
+text: \x22Second\x22\x0a \
+ }\x0a \
+ CheckBo\
+x {\x0a \
+ text: \x22Third\
+\x22\x0a \
+ checked: true\x0a\
+ \
+enabled: false\x0a \
+ }\x0a \
+ }\x0a }\x0a}\x0a\
+\x00\x00\x02\xb5\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aScrollabl\
+ePage {\x0a id: \
+page\x0a\x0a Column\
+ {\x0a spaci\
+ng: 40\x0a w\
+idth: parent.wid\
+th\x0a\x0a Labe\
+l {\x0a \
+width: parent.wi\
+dth\x0a \
+wrapMode: Label.\
+Wrap\x0a \
+ horizontalAlign\
+ment: Qt.AlignHC\
+enter\x0a \
+ text: \x22DelayBu\
+tton is a checka\
+ble button that \
+incorporates a d\
+elay before the \
+\x22\x0a \
+ + \x22button is a\
+ctivated. This d\
+elay prevents ac\
+cidental presses\
+.\x22\x0a }\x0a\x0a \
+ DelayButto\
+n {\x0a \
+text: \x22DelayButt\
+on\x22\x0a \
+anchors.horizont\
+alCenter: parent\
+.horizontalCente\
+r\x0a }\x0a \
+}\x0a}\x0a\
+\x00\x00\x07\x9f\
+/\
+/ Copyright (C) \
+2017 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ap\
+ragma ComponentB\
+ehavior: Bound\x0a\x0a\
+import QtQuick\x0ai\
+mport QtQuick.Co\
+ntrols\x0a\x0aStackVie\
+w {\x0a id: stac\
+kView\x0a initia\
+lItem: page\x0a\x0a \
+ Component {\x0a \
+ id: page\x0a\x0a \
+ Pane {\x0a \
+ id: pa\
+ne\x0a w\
+idth: parent ? p\
+arent.width : 0 \
+// TODO: fix nul\
+l parent on dest\
+ruction\x0a\x0a \
+ Column {\x0a \
+ sp\
+acing: 40\x0a \
+ width:\
+ parent.width\x0a\x0a \
+ L\
+abel {\x0a \
+ width\
+: parent.width\x0a \
+ \
+ wrapMode: Lab\
+el.Wrap\x0a \
+ hori\
+zontalAlignment:\
+ Qt.AlignHCenter\
+\x0a \
+ text: \x22Stac\
+kView provides a\
+ stack-based nav\
+igation model wh\
+ich can be used \
+with a set of in\
+terlinked pages.\
+ \x22\x0a \
+ + \x22Items \
+are pushed onto \
+the stack as the\
+ user navigates \
+deeper into the \
+material, and po\
+pped off again \x22\
+\x0a \
+ + \x22when he \
+chooses to go ba\
+ck.\x22\x0a \
+ }\x0a\x0a \
+ Button {\
+\x0a \
+ id: button\x0a\
+ \
+ text: \x22Push\x22\
+\x0a \
+ anchors.hor\
+izontalCenter: p\
+arent.horizontal\
+Center\x0a \
+ width\
+: Math.max(butto\
+n.implicitWidth,\
+ Math.min(button\
+.implicitWidth *\
+ 2, pane.availab\
+leWidth / 3))\x0a \
+ \
+ onClicked: sta\
+ckView.push(page\
+)\x0a \
+ }\x0a\x0a \
+ Button {\x0a \
+ \
+ text: \x22Pop\x22\x0a \
+ \
+ enabled: stack\
+View.depth > 1\x0a \
+ \
+ width: Math.m\
+ax(button.implic\
+itWidth, Math.mi\
+n(button.implici\
+tWidth * 2, pane\
+.availableWidth \
+/ 3))\x0a \
+ anchor\
+s.horizontalCent\
+er: parent.horiz\
+ontalCenter\x0a \
+ \
+onClicked: stack\
+View.pop()\x0a \
+ }\x0a\x0a \
+ La\
+bel {\x0a \
+ width:\
+ parent.width\x0a \
+ \
+ wrapMode: Labe\
+l.Wrap\x0a \
+ horiz\
+ontalAlignment: \
+Qt.AlignHCenter\x0a\
+ \
+ text: \x22Stack\
+ Depth: \x22 + stac\
+kView.depth\x0a \
+ }\x0a \
+ }\x0a \
+ }\x0a }\x0a}\x0a\
+\x00\x00\x01?\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x04\x03\x00\x00\x00~\xd0\xa5^\
+\x00\x00\x000PLTE\x00\x00\x00\xff\xff\xffA\xcd\
+RP\xcaNA\xcdRA\xcdRH\xcbPB\xccQ\
+I\xcbPD\xccQE\xccQE\xccQD\xccQD\
+\xccQC\xccQA\xcdR\xb0DE*\x00\x00\x00\x0f\
+tRNS\x00\x00\x186Oc\xab\xae\xb8\xbd\xc9\xd6\
+\xdf\xe9\xf0r\xc1;\x05\x00\x00\x00\xafIDAT(\
+\xcf\x8d\xd2\xb1\x0d\xc20\x14\x04\xd0[\x81\x0d~\x81\x98\
+\x81\x01\xe8-e\x01F@\xf2\x14t\xec\xe0E\xd8!\
+\xca\x08\xac\x10YXXG\x11'v\xf0\x15\x5c\xf9\xf4\
+\x8b\xff\xed\x03\xd6\xb8\x80>.\x99@\x06\x85\xd9\x04r\
+T\xd8\x8f:\x92/\x13\xc8A\xe1l\x02\x7fG\x17\x8c\
+\x06\x00\xe7{\xc9\x93$I\x0f\x00\x0f\xee\x13M \xbd\
+\xc2d\x02\x19\x14&\x13\xc8\xa00+\xe4\xdf8+\x1c\
+\x04Nb\xa5\xac.\x1a\xc5\xed\x1f\x03p\xeb/\x07\x8e\
+\x97\x92\xeb\xf6F\xddw,\xd59\xacq$\xf96\x81\
+\x1e=F\x13X\x06w\xb8\xf5\xa3\xc5\xad\x1e\x0d\xd6\x22\
+5X{Tq\xb2\x1eO\xd5\xbe:U\x87P(\x16\
+\xe3k\x00\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x01\xca\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00@\x00\x00\x00;\x04\x03\x00\x00\x009\xa2\x91\xef\
+\x00\x00\x000PLTE\x00\x00\x00A\xcdRP\xca\
+NA\xcdRA\xcdRF\xccPH\xcbPB\xccQ\
+I\xcbPD\xccQE\xccQE\xccQD\xccQD\
+\xccQC\xccQA\xcdR\x96\x12X7\x00\x00\x00\x0f\
+tRNS\x00\x186Oc\x9d\xab\xae\xb8\xbd\xc9\xd6\
+\xdf\xe9\xf0URDE\x00\x00\x01:IDAT8\
+\xcb\x85\xd4\xcdM\xc40\x10\x05\xe0\x99\x0e,\x05\x11)\
+\x88;\xc7E\x14`QAj\xa0\x02D\x05{B\xe2\
+F\x0d[\x81K\xa0\x06D\x019P\xc0\x1e\x12\x09\xf1\
+\xb3z\x1c\x9c\xc4\xcex\xd63\xd7|yR</&\
+\xd2\xc6\x1f\xa8>\xfe\xc7\x19\x00\x07\x0b\x9c\x9c\x01\xf0n\
+\x81z\x84\x07\xf0\xe9\x0c\x80{\x0bL\xce\x00\xb5\x88\x08\
+\xbe\x8a\x88\x9b\x97y\xde\x00\x00x\x92\xe0\x15\xdb)\x22\
+$(\x22\x0a wV\x00\xb9\xb3\x12\x88\x88\x12\x88\x08\
+\x05\x9c\xd2S~\xd0\x00\x12\xe8\xc6:\xe0\xa0\x82i\x05\
+\xd7P\xc1\xba0\x1eT\xf0\xe1R\x80\x06R\xef\x9a\xa3\
+\x0a\xd6\xe6r\x0f\x0d\xfc\xad\x01\x17\x000\xd2\xe3\xb9c\
+\xe4>\x82\xe6n\x9e^,\xa2E\x04\xa2r)`\x1f\
+\xcfdy\xff6\x82o\x11\x90\x7f\x9c\xdf\xd4i\x0e\xc8\
+f\xe7\x91\x17\xb2\x83\x0aR@P\xc1T\x09\xc0\xce\xe7\
+[\x0a*\x98\xf2-i \xfd\x97\x83\x0a\xd2\x9a\x09\x1a\
+\xb8\xcc\xda\x1e4\x90W\xbd\xb5@y\x8e\x02h\x11[\
+\xa0DlA\xacS\x0d\xc4>U\xc0\x12\xf1\xbb\xdcP\
+\xcf\xf2\xe6\x99#F:;\xcd`\x80\xb8\xb1\x1a\xe0\xc1\
+\x00te\x01\x0e\x06\xa0\xce\x02\x1c\x0c@\xad\x05xo\
+\x00ju\xf0\x0fRR\x00X\xeb\xfc\xd3\xe9\x00\x00\x00\
+\x00IEND\xaeB`\x82\
+\x00\x00%!\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x03 \x00\x00\x02;\x08\x03\x00\x00\x00#\xc8\x0f\xb6\
+\x00\x00\x00\x09pHYs\x00\x004\xba\x00\x004\xba\
+\x010P\xac\x88\x00\x00\x00\x19tEXtSof\
+tware\x00www.inksca\
+pe.org\x9b\xee<\x1a\x00\x00\x03\x00PL\
+TE\x00\x00\x00\x00\xff\xff\x00\xff\x80U\xff\xaa@\xbf\
+\x803\xcc\x99+\xd5\x80$\xdb\x92 \xdf\x809\xe3\x8e\
+3\xe6\x80.\xe8\x8b+\xd5\x80'\xd8\x89$\xdb\x803\
+\xdd\x880\xdf\x80-\xe1\x87+\xe3\x80(\xe4\x86&\xd9\
+\x801\xdb\x86.\xdc\x80,\xde\x85+\xdf\x8a)\xe0\x85\
+'\xe2\x89/\xe3\x84.\xdb\x89,\xdc\x84+\xdd\x88)\
+\xde\x840\xdf\x87.\xe0\x83-\xe1\x87,\xdb\x83+\xdc\
+\x87)\xdd\x83/\xdd\x86.\xde\x83-\xdf\x86,\xe0\x83\
++\xe1\x86*\xdb\x82.\xdc\x85-\xdd\x82,\xde\x85+\
+\xde\x88+\xdf\x85*\xe0\x87.\xe0\x85-\xdc\x87,\xdd\
+\x84+\xdd\x87+\xde\x84*\xdf\x86.\xdf\x84-\xe0\x86\
+,\xdc\x84+\xdc\x86+\xdd\x84.\xde\x86-\xde\x84-\
+\xdf\x86,\xdf\x83+\xe0\x85+\xdc\x83.\xdd\x85-\xdd\
+\x83,\xde\x85,\xde\x87+\xdf\x85+\xdf\x87-\xe0\x85\
+-\xdd\x86,\xdd\x85,\xdd\x86+\xde\x84+\xde\x86-\
+\xdf\x84-\xdf\x86,\xe0\x84,\xdd\x86+\xdd\x84+\xde\
+\x86-\xde\x84,\xde\x85,\xdf\x84+\xdf\x85+\xdd\x84\
+-\xdd\x85-\xdd\x84,\xde\x85,\xde\x86+\xde\x85+\
+\xdf\x86-\xdf\x85-\xdd\x86,\xdd\x85,\xde\x86+\xde\
+\x85+\xde\x86-\xdf\x85-\xdf\x86,\xdf\x84,\xdd\x86\
++\xdd\x84+\xde\x85-\xde\x84,\xde\x85,\xdf\x84,\
+\xdf\x85+\xdf\x84+\xdd\x85-\xdd\x84,\xde\x85,\xde\
+\x84,\xde\x85+\xdf\x86-\xdf\x85-\xdd\x86,\xdd\x85\
+,\xde\x86,\xde\x85+\xde\x86-\xde\x85-\xdf\x86,\
+\xdf\x85,\xdd\x85+\xdd\x84+\xde\x85-\xde\x84,\xde\
+\x85,\xde\x84,\xdf\x85+\xdf\x84+\xdd\x85-\xdd\x84\
+,\xde\x85,\xde\x84,\xde\x85+\xde\x86+\xdf\x85-\
+\xdd\x86,\xdd\x85,\xde\x86,\xde\x85+\xde\x86-\xde\
+\x85,\xde\x85,\xdf\x85,\xdd\x85,\xdd\x85+\xde\x85\
+-\xde\x84,\xde\x85,\xde\x84,\xdf\x85,\xdf\x84+\
+\xdd\x85-\xde\x84,\xde\x85,\xde\x84,\xde\x85,\xde\
+\x86+\xdf\x85-\xdf\x86,\xdd\x85,\xde\x86,\xde\x85\
+,\xde\x86-\xde\x85,\xde\x85,\xdf\x85,\xdd\x85,\
+\xdd\x85+\xde\x85-\xde\x85,\xde\x85,\xde\x84,\xde\
+\x85,\xdf\x84+\xdd\x85-\xde\x84,\xde\x85,\xde\x84\
+,\xde\x85,\xde\x86+\xde\x85-\xdf\x86,\xdd\x85,\
+\xde\x86,\xde\x85,\xde\x85+\xde\x85,\xde\x85,\xde\
+\x85,\xdf\x85,\xde\x85,\xde\x85-\xde\x85,\xde\x85\
+,\xde\x85,\xde\x85,\xdf\x85,\xdd\x85-\xde\x84,\
+\xde\x85,\xde\x84,\xde\x85,\xde\x86,\xde\x85-\xdf\
+\x86,\xdd\x85,\xde\x85,\xde\x85,\xde\x85+\xde\x85\
+,\xde\x85,\xde\x85,\xdf\x85,\xde\x85,\xde\x85+\
+\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xdd\
+\x85-\xde\x85,\xde\x85,\xde\x84,\xde\x85,\xde\x86\
+,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\
+\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\
+\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85\
+,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\
+\xde\x85\xf8\xdf\x16\xb8\x00\x00\x00\xfftRNS\x00\x01\
+\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\
+\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !\
+\x22#$%&'()*+,-./01\
+23456789:;<=>?@A\
+BCDEFGHIJKLMNOPQ\
+RSTUVWXYZ[\x5c]^_`a\
+bcdefghijklmnopq\
+rstuvwxyz{|}~\x7f\x80\x81\
+\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\
+\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\
+\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\
+\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\
+\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\
+\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\
+\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\
+\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xeb\x08\xd9\
+5\x00\x00 \x97IDATx\xda\xed\x9dy\x80\x8f\
+\xd5\xfe\xc7\x9f\x991\xf6m\x0a\xd9\xcb(\x09\x89\x88H\
+\x12\x92\x8aV$\x22\xf5+*j\xda\x10mC\xc9T\
+7.\xb7M\xbb\xa5\xba\xd9Z\xdc\xeaj,\xddH*\
+\x89\xac\x955\xfb\xbe\xaf\xb3|\x7f\xc9u\xb9\xb7\x06s\
+>\xe7y\xce9\xcf\xf3z\xfd_\xf3y\x9f\xcf\xe7\xe5\
+\xfb\xac\xe7\xf1<\xdf8{m\x0c\xc0q\xf0\x03\xc0\x84\
+ \xf8\x01\x08\x82\x1f\x80 \xf8\x01\x08\x82\x1f\x00A\x09\
+\x82\x1f\x80 9S\x15?\x00A\xf0\x03\x10\x04?\x00\
+A\xf0\x03 A\xf0\x03\x10\x04?\x00A\xf0\x03 \
+\x86\x1f\x00\x01\x09\x82\x1f\x80 \xf8\x01\x08\x82\x1f\x00z\
+\x05\xa9\xba\x8e\xc5\x04\x04\xc1\x0f@\x10\xfc\x00\xd0)\x08\
+~\x00\x82\xe0\x07 \x08~\x00\xe8\x15\x04?\x00A\xf0\
+\x03\x10\x04?\x00\xf4\x0ar\x0e~\x00\x82\xe0\x07 \x08\
+~\x00h\x15\x04?\x00A\xf0\x03\x10\x04?\x00\xf4\x0a\
+\x82\x1f\x80 \xf8\x01\x08\x82\x1f\x00z\x05\xa9\xb9\x89\xa5\
+\x03\x04\xc1\x0f@\x10\xfc\x00\xd0)\x08~\x00\x82\xe0\x07\
+\x80\x8a \xf8\x01\x08\x82\x1f\x00*\x82\x9c\x87\x1f\x80 \
+\xf8\x01\xa0 \x08~\x00\x82\xe0\x07\x80\x8a \xf8\x01\x08\
+\x82\x1f\x00*\x82\xe0\x07 \x08~\x00\xa8\x08\x82\x1f\x80\
+ \xf8\x01\xa0\x22\x08~\x00\x82\xe0\x07\x80\x8a \xf8\x01\
+\x08\x82\x1f\x00*\x82\xe0\x07 H\xce\xd4\xc2\x0f@\x90\
+\x9c\xfd\xd8\xcc\x1a\x01\x82\xe0\x07@\xee\x05\xc1\x0f@\x10\
+\xfc\x00P\x11\x04?\x00A\xf0\x03@E\x10\xfc\x00\x88\
+\xe1\x07\x80\x82 \xf8\x01\x90\xb3 \xf8\x01\x90\xb3 \xf8\
+\x01\x90\xb3 \xf8\x01\x90\xb3 \xf8\x01\x90\xb3 \xf8\x01\
+\x90\xb3 \xf8\x01\x90\xb3 \xf8\x01\x90\xb3 \xf8\x01\x90\
+\xb3 \xf8\x01\x90\xb3 \xf8\x01\x90\xb3 \xb5\xf1\x03 \
+GA\xf0\x03 gA\xf0\x03 gA\xf0\x03 g\
+A\xf0\x03 gA\xf0\x03 gAjoa)\x00\
+r\x12\x04?\x00r\x16\x04?\x00r\x16\xa4\xeeV\xd6\
+\xe1x\xec^\xbbx\xd6\xacY\x93\xd2\xd3?\x1b}\x88\
+\x09\xe9\xe9\xe9\xdf\xce\x9a\xb5`\xd5\x0e\x96&\x12\x82\xe0\
+\xc7\x1f\xd9\xb1p\xea\xa8A\x0ftl\xd5\xb8VrR\
+B\xce[#%\x9d~n\xc3\x96\xedS\xd2\x86O\x9c\
+\xc7&\xf8a\x15\x04?\x8e\xfd\xb1\xf8a\xcc\xd3\xb7]\
+\x5c\xb9\xa0\x97{\xf2Vh\xd0\xe1\x89Q3\xb9\x1a\x18\
+2A\xeanc\x11\x0e\xb1m\xea\xa0\xdb/)\xe7\xc9\
+9\xa5^\x87''\xacfA\xc3\x22\x08~\xc4\xd6~\
+\xf2\xd4\x0d\xc9\x9e^J]\xfe\xf0\xe8_\xb2Y[\xf7\
+\x05\x89x\xfe\x85\xaf\xdcT\xd6\xf3\x8bb\xad\x9e\x9d\x99\
+\xc1\x8c!\x88\xa3,\x1d\xd6\xb9\x82\xe77\x85\x9a\xa7\xa6\
+\xefg\xce\x10\xc41\xf6\xa5\xa7\x94\xf7\x82\xa2`\xeba\
+\xeb\x185\x04q\x86\xcd\xa3;\x17\xf5\x82%\xa1N\xea\
+\x02\xa6\x0dA\x1c`\xdb+\x8d\x13<#\x9c\xd3o\x19\
+\x03\x87 V\x93\x95\xde\xb9\x90g\x90:\xc3\xb8\xfd\x8e\
+ \xd62\xff\xa12\x9ei\x0a\xde\xfcy\x16c\x87 \
+6\xfex\xb4\xf6\xec\xa0r\xdav\x06\x0fA\xecb\xd7\
+\xb0s<{(\x9a\xb2\x92\xd1C\x10{\xf8\xb5Wq\
+\xcf.\x12\xdb\x7f\xcb\xf0!\x88\x1dl\xec\x9d\xdf\xb3\x90\
+\xe6\xb3\x18?\x041\xcf\xd6\xd4\x22\x9e\x9d\xc4\xb5]\xcc\
+\x00\x22\x88Yv\xa7%y\xf6\x12\xdfv)#\x88 \
+\xe6\xc8~\xfd4\xcfn\xf2\xf5\xde\xcd\x10\x22\x88!\xe6\
+^\xe4\xd9O\xb9\x11L!\x82\x98`Oj^\xcf\x09\
+Z/g\x0e\x11$p\xc6W\xf0\x5c\xa1`\xdaA&\
+\x11A\x02eGG\xcf%\xea\xfe\xc4(\x22H\x80|\
+\x9d\xec\xb9E\x81!\xcc\x22\x82\x04EFZ\xa2\xe7\x1c\
+\xd7\xb3\x1f\x0a\x82\x04\xc3\xf2\x86\x9e\x8bT\x98\xca8\x22\
+H\x00L,\xee\xb9I\xc2\xe0`\x17j\xdfV5\xb2\
+\x11\xc4e\x86%z\xce\xf2\x7f\x07\x82\x5c\xa9g\x15\xab\
+\xdc\x80 \x0e\x9f~\xf4\xf0\x5c\xe6\xa2\x0d\x08\x82 >\
+\xb2\xa5\xa9\xe76\xc9\xf3\x11\x04A|\xe3\x973=\xd7\
+):\x05A\x10\xc4'\x16\x97\xf3\xdc'\xdfG\x08\x82\
+ \xbe\xb0\xb0\x8c\x17\x06\xf2\x8eG\x10\x04\xf1\x81\xd9%\
+\xbcp\x900\x12A\x10D;\xdf\x9d\xe2\x85\x85\x84\xb7\
+\x10\x04At\xfbQ\xc4\x0b\x0f\xf1\xa3\x11\x04A\xb4\xb2\
+\xf44/L\xe4MG\x10\x04\xd1\xc8\xa6*^\xb8(\
+:\x07A\x10D\x1b{\x1axa\xa3\xecJ\x04A\x10\
+Md^\xe3\x85\x8fj[\x11\x04A\xf4\xd0\xcd\x0b#\
+\xcd3\x11\x04At\xf0\x8e\x17N\x1eC\x10\x04\xd1\xc0\
+\xbc\x82!\x15$\xfeS\x04A\x101\xbb\xce\xf1\xc2J\
+\xd22\x04A\x10)\x1d\xbd\xf0Ro?\x82 \x88\x8c\
+!^\x98\xb9\x17A\x10D\xc4\xa2\xfc\xa1\x16$n\x22\
+\x82 \x88\x80\xccz^\xb89c'\x82 \x88:\x03\
+\xbd\xb0\xd3\x1dA\x10\x84\x03\xac\xe3\x1cd}\x8e \x08\
+b\xfb\x01V\xe1\x0a5\x1b_\xd3\xb6}\xd7\xae]{\
+\xdd\xdd\xb5k\xe7\xb6m\x9a\xd5IN\x8a\x0b\xe6o'\
+\xefF\x10\x04Q\xe3\x19\x9fg3O\x95\xebR\x06\x8d\
+\x9e\xb1:\xe3\xcf\xff\xfc\xc69\x1f\xbf\xd8\xa7c\x1d\xbf\
+\xefS\xde\x87 \x08\xa2\xc4\xaf\x85\xfc\x9b\xca\x22\xcd\xfa\
+\xbc;\xe7\xe4\xeeBd-\xfdx`\x9b\xb2>j:\
+\x1fA\x10D\x85\xf6>M\xe4i\x9d^\x9a\x93\xeb\x07\
+\x05W\xbe{o5\x9f\xeai\x86 \x08\xa2\xc0t?\
+N\x02\xe2\xeb\xf4\x9e\x9e\xa5Z\xd1\xf2am}y\xf1\
+w\x1c\x82 H\xee\xcf\xd0\xcf\xd3?\x89\xd5\xd3\xd6\x0a\
+\xab\xda7\xa1\xad\xfe\xbd\x81+\xeeA\x10\x04\xc9-/\
+\xeb\x1e\xc3\xd2}\x17h)l\xc3\xd0\x9a\xbaK\xeb\x8f\
+ \x08\x92K\xb6h\xde\x05\xab\xd6\xdb\x1a\x1f\x0c\x9c\xdc\
+:^kq\x05W!\x08\x82\xe4\x8e^Z'\xb0\xc5\
+T\xcd\xe5\xfd\xdcM\xeb\x91V7\x04A\x90\x5c\xb1N\
+\xe7\xdd\x87\x0b'\xfbP\xe1\x8a\xae\x09\xfa*L\x5c\x8a\
+ \x08\x92\x1bR\xf4\x0d_\xb5\x09>\xd58\xb7\xa5\xbe\
+\x22oE\x10\x04\xc9\x05k\x0a\xe8\x9a\xbc\x02\xa9>\xbe\
+\x944\xa1\xbc\xae2\x13\x16#\x08\x82\x9c<\xda\xf61\
+i\xb2\xc8\xd7:\xb7\xa7\xe8:\xce\xba\x19A\x10\xe4\xe4\
+\x8f\xef\xf3\xea\x99\xba\xfcC|\xff \xe5\x14M\x0f\xa1\
+$,D\x10\x049Yn\xd53tU\xe7\x06P\xeb\
+\xfa\x16z\x8a\xed\x88 \x08r\xb2g z~@:\
+\xed\x0e\xa4\xda\xac\x01Zn\x8a$\xfe\x8a \x08rr\
+<\xac\xe5M\xa4\xd4\xc0\xea\x1d\xaf\xe5\x9atO\x04A\
+\x90\x93b\xcf\xa9\x1a\xc6-\xef\xc8\x00+\x9eYJC\
+\xc5E\xb7#\x08\x82\x9c\x0c\x7f\xd3\xf1\xbe\xc7\x17\x81\x96\
+\xbc\xe4\x0c\x0d5\x0fF\x10\x049\x092+\xcbg\xad\
+\xd0\xd4\x80\x8b^\xa9\xc1\x90\xd33\x10\x04AN\xccX\
+\x0d\x0f\xffM\x0d\xbc\xea\x15\xa7\xcb\xcb\x1e\x8d \x08r\
+b\x1a\xc9o\x7f|a\xa0\xec\x9f\xe4\xe7!\x8d\x10\x04\
+AN\xc8B\xf9\xf5\xabQF\x0a\xff*\x9f\xb8\xf2\x85\
+\x08\x82 'B\xfe\x98b\xaa\xa1\xca\xdf\x17\xbf#\xdc\
+\x13A\x10\xe4\x04\xec\x13_\xe3m\x9fm\xaa\xf6\xbe\xd2\
+\xd2K\x1d@\x10\x049>\xefJ\x87\xec\xac]\xc6j\
+\xcfj*-~,\x82 \xc8\xf1\xb9T8b\xf9f\
+\x1b,~\xb5\xf4\xe7\xef\x0a\x04A\x90\xe3\xb2Tz\x1c\
+?\xd8h\xf9\xe3\x85\xd5\xc7\xaf@\x10\x049\x1e\xd2\xc7\
+\xb0Zd\x9b\xad_\xfa\x1cr\x7f\x04A\x90\xe3\x90-\
+\xbc\xddV`\x89\xe1\x00[J\x0a\x9f\xd0G\x10\x049\
+\x0e\xd3\x84\xff\x00?i<\xc1k\xc2\x04\xf3\x10\x04A\
+r\xa6\x87\xf0\x0a\xd6>\xe3\x09\xb2\x1a\xc8\x22<\x8a \
+\x08\x92#\x99ed\xd3\xf5O\x0b2\xcc\x92]f8\
+\x0bA\x10$G&\xcb\xfc\xb8\xc4\x8a\x10md!f\
+#\x08\x82\xe4DW\xd9l}mE\x88\xc5yD!\
+z#\x08\x82\xe4@\x86\xec\x81\xd8\xeb,\x89\xd1I\x94\
+\xa2R6\x82 \xc8\x9f3Qv\x93m\xbe%1\x96\
+\xc8\xf6\xca\xfa\x1eA\x10\xc4\x8fkX\xd7X\x93\xa3\x9d\
+\x1d\x97\xaa\x11$l\x82\xc8\xde\xb5\x9dnM\x8e\xefD\
+9.D\x10\x04\xf9S\xe6\x8b\xe6\xaa\xbeEI.\x16\
+\x1d*n@\x10\x04\xf93d_}\xfe\xd0\xa2$\x1f\
+\x8a\x92\x8c@\x10\x04\xf93\x1aK\xa6\xaab\xa6EI\
+\xb2D\x8f\x94\xb5G\x10\x04\xf9\x13\xb6\x8a\xee\x1f\x0c\xb0\
+*K\xaa$JR\x06\x82 \xc8\x1f\x11\xbdK\x98g\
+\x8dUYV\x89\xae\xf4~\x89 \x08\xf2GD\xf7\xd7\
+\xae\xb7,\xccU\x920}\x11\x04A\xfeH9\xd7\x1f\
+S<\x96\x0f$a\x1a \x08\x82\xfc\x81\x9f$#U\
+:\xd3\xb24\x07N\x91\x1c/\xeeD\x10\x04\xf9_\x86\
+I\x04\xb9\xcf\xba8\xb7I\xe2LD\x10\x04\xf9_n\
+\x92L\xd47\xd6\xc5\x99h\xfe$\x04AB%\x88\xe4\
+[\x7f\x95\xb3\xad\x8b\x93y\x9a OC\x04A\x10\x9d\
+\xa7 }-\x0ct\x97 O\xe2.\x04A\x10\x8d\xa7\
+ \xdfY\x18\xe8\x9f~_\x94\x9b\xd1\xf5\x04\xd4W\xfc\
+\xe3\x9d\xbaja/\x82\xd8r\x0aR.\xdb\xc2@\xfb\
+\x0b\x0b\x12\xf59\x89?\xf0\xb6g7\xdb\x11D'\xe5\
+\x05\xad\xe8fe\xa2\xeb\x04\x89\x9a \x08\x82\xfc\x17k\
+$\xad\xf8\xd4\xcaHo\x08\x12\x15\xceD\x10\x049\x96\
+q\x92i\xdage\xa4\x0d\x92\xcf\xa7\xcfG\x10\x049\
+\x16\xc9\x9e\xbc\xad,\xcdT[\x90\xe9M\x04A\x90c\
+i\x22\xe8\xc4_-\xcd\xf4\xa0 \xd3]\x08\x82 \xc7\
+\x90UT\xd0\x89y\x96\x86\xfa\x87 S\x1d\x04A\x90\
+c\x98'hD\xa9lKC\xedL\x14\xdc*\xdc\x8b\
+ \x08r\x94\xd7\x05\x8d\xe8`m*\xc9>\xd63\x10\
+\x04A\x8e\xd2M\xd0\x88\xd7\xadM%\xf9\xa8\xe7\x10\x04\
+A\x90\xa3\xd4\x154b\xb1\xb5\xa9>\x11\xa4\xfa?\x04\
+A\x90\xa3\xe7\xe8\x85\xd4\xfbpj\xb6\xb5\xb1\xb6\x0a\xbe\
+\x84P\x0fA\x10\xe4?H\x1e\xe5mmq\xae\xb3\xd5\
+c\x15\xcaB\x10\x049\xc2XA\x1f\x9e\xb68W\x17\
+A\xae%\x08\x82 GxB\xd0\x87/,\xce\xf5\x8a\
+ \xd7\x07\x08\x82 G\xb8A\xbd\x0d\x09\xbb-\xce5\
+G0_\xfd\x10\x04A\x8ep\x96z\x1bj\xd8\x9c+\
+#\xbfz\xb0\xb6\x08\x82 \xfff\x8f\xe0\xb9\xd7Na\
+\xbd|]\x15A\x10\xe4\xdfH\xbe\xa7\xf1\xbc\xd5\xc9n\
+\x17\x1c;\xeeC\x10\x04\x91\xb7z\x8a\xd5\xc9^\xf0\xf1\
+\x19L\x04\x89\x8c \x8f\xa8w!n\xab\xd5\xc9\xbe\xf2\
+\xf12\x16\x82DF\x90\x1b\xd5\xbbP\xc9\xeed\xbb\x04\
+gW\xcf\x22\x08\x82\x1c\xe6\xfcp\xdeG?D%\xf5\
+h\xdd\x10\x04A\x0eSL\xbd\x0b\xbd-\x8fv\xa5z\
+\xb4\xa6\x08\x82 \xbf\xb3^\xd0\x85\xb7-\xcf\xf6\x80z\
+\xb4\x8a\x08\x82 \xbf3M\xd0\x85o,\xcf\xf6\xaaz\
+\xb4\xf8\xbd\x08\x82 \x87xSp\x11kG\x88\xe5\x9f\
+\x8f \x08r\x08\xc1\x8bw\x15l\xcf\xb6Y0a\x1f\
+\x22\x08\x82\x1c\xa2\x9dz\x13\x9a[\x1f\xae\x84o\x0f\x09\
+ HT\x04\xb9\xc0\xbfK\xa1\xe6\xa9\xa7\x1e.\x05A\
+\x10\xe4\x10\xa5\xd5\x9b\xf0\x8c\xf5\xe1\xda\xab\x87\xbb\x1eA\
+\x10\xe47\x0e\x0a\xee6\x8f\xb1>]\x1f\xf5p\x17 \
+\x08\x82\xfc\xc6rA\x13f[\x9fNp\x9d\xb7\x0c\x82\
+ \xc8o|)h\xc26\xeb\xd3M\x12\xdc\x089\x80\
+ \x08\x12\x8b\xbd\xa3\xde\x83S\xedO\xb7L0b\xcb\
+\x11\x04Ab\xb1g\xd4{p\xbe\xfd\xe92\x12\xd4\xe3\
+}\x89 \x08\x12\x8b\xf5P\xef\xc15\x0et\xa0\x9cz\
+\xbcw\x10\x04Ab\xb1k\xd4{\xd0\xdd\x81\x0e\x08n\
+\x84\xa4!\x08\x82\x8866x\xda\x81\x0e\x08\xbe\xe5y\
+\x0f\x82 \x88\xe8\x18d\x84\x03\x1d\xb8G=\xde\x8d\x08\
+\x82 \xb1\xec\xbc\xea=\x98\xe2@\x07\xd2\xd4\xe3]\x8a\
+ \x08\x12\xdb&\xe8\xc1\xcf\x0et`\xa4z\xbc\x1a\x08\
+\x82 \xb1\x9f\x05=\xd8\xe5@\x07&\xab\xc7+\x85 \
+\x08\x22y\xa5\xa8\xa0\x0b\x1d\x10|~1!\x13A\x10\
+d\x9cz\x0b\xcep\xa1\x03\x1b\x043\xb6\x09A\x10\xe4\
+e\xf5\x16\xd4s\xa1\x03\x99\x82[\xe9\x0b\x10\x04A\xfa\
+\xab\xb7\xa0\x95\x13-(\xa9\x1e\xf0\x0b\x04A\x10\xc1}\
+\x82[\x9dhA5\xf5\x80\xa3\x8f\xf7\xff\xdd<\xeb\x04\
+\xa4(\xfe\xd5\xcfgi!\x13A\xb4 x\xe5\xae\xb7\
+\x13-h\xa2\x1e\xf0E\xd1\x1f~V\xf1\xafn\x88E\
+\x08\xfb\x05\xb9L}~\xfe\xe2D\x0b\xda\xaa\x07|\x0a\
+A\x10D\xb0e\xc3\x9bN\xb4\xe0N\xf5\x80\xbd\x10\x04\
+A\xaa\xa8\xcf\xcfx'Z\xf0\xb0z\xc0n\x08\x82 \
+\xa7\xa9\xcf\xcfT'Z0P=`{\x04A\x10\xc1\
+w.\x7fp\xa2\x05\x82\x1b=W H\xe4\x059 \
+\xb8\xd2\xbe\xc2\x89\x16\xbc\xa7\x1e\xb0!\x82D^\x90\x8d\
+\xa1\xbf\x15\xf5\x99z\xc0\xea\x08\x12yA\x96\xa8\x8fO\
+|\x96\x13-\xf8Z=ay\x04\x89\xbc \xdf\xab\x8f\
+O17Z\xb0H=a\x11\x04\x89\xbc S\xd4\xc7\
+\xa7\x9c\x1b-X\xa5\x9e0.\x13A\xa2.\xc8\x07\xea\
+\xe3S\xc5\x8d\x16l5u\x96\x85 a\x10d\x94\xfa\
+\xf4\xd4v\xa3\x05\x92\xebt\xeb\x10$\xea\x82\xbc\xa6>\
+=\x17;\xd2\x83D\xf5\x88\xcb\x10$\xea\x82\xfcM}\
+zZ:\xd2\x83\xe2>\xbd1\x85 Q\x10\xe4Y\xf5\
+\xe9\xb9\xc1\x91\x1e\x086\xfe\xfa\x1eA\xa2.H?\xf5\
+\xe9\xe9\xecH\x0f\x04\x8fcNG\x90\xa8\x0b\x22\xf8\x02\
+S7Gzp\xbez\xc4t\x04\x89\xba \xf7\xa9O\
+\xcf=\x8e\xf4\xa0\xbez\xc4\x09\x08\x12uA\x04\xaf\x13\
+\xdd\xefH\x0f.\xf2\xe9\xa5t\x04\x89\x82 \xb7\xa8O\
+OOGzp\x89z\xc4\xe1\x08\x12uA\xda\xa9O\
+O\x1fGz\xd0\x5c=\xe20\x04\x89\xba W\xabO\
+\xcfc\x8e\xf4\xa0\xa5z\xc4\xbf\x22H\xd4\x05\xb9B}\
+z\xfa9\xd2\x83V\xea\x11\x9fG\x90\xa8\x0b\xd2B}\
+z\x068\xd2\x83k\xd5#>\x8b Q\x17\xa4\x99\xa1\
+\xe9\x09\x10\xc1\xc6X\x03\x11$\xea\x824Q\x9f\x9eA\
+\x8e\xf4\xe0&\xf5\x88O!H\xd4\x05i\xac>=C\
+\x1d\xe9A'C\xa7Y\x08\x12\x06A\x04w\xd1^r\
+\xa4\x07\xb7\xaaG|\x1cA\xa2.\xc8\x85\xea\xd3\xf3\x9a\
+#=\xb8C=\xe2#\x08\x12uA\xea\xa9O\xcf[\
+\x8e\xf4\xe0nC\xf7B\x11$\x0c\x82\xd4Q\x9f\x9e\x91\
+\x8e\xf4\xe0^\xf5\x88\xbd\x10$\xea\x82\xd4R\x9f\x9e\xbf\
+;\xd2\x83\x07\xd4#>\x88 Q\x17\xa4\xa6\xfa\xf4\x8c\
+u\xa4\x07\xbd\xd4#\xde\x87 Q\x17\xa4\x86\xfa\xf4\x8c\
+s\xa4\x07}\xd5#\xa6 \x08\xbf \xca\xbc\xefH\x0f\
+\x1e\xe6\x10\x0bA\x94\xa9\xad>=\xef8\xd2\x83\x87\xd4\
+#\xf6F\x90\xa8\x0bR\xd7\xd0\xdbD\x01\x22x\xab\xb8\
+/\x82D]\x10\xc1}\x907\x1c\xe9A\x0f\xee\xa4#\
+\x882\x0d\x0c\xbdn\x17 \x82\xd7\xeey\x16+\xf2\x82\
+4R\x9f\x9e\x17\x1d\xe9\xc1\xed<\xcd\x8b \xca\x08\x9e\
+\xe6\x1d\xe2H\x0f\xba\xa8GLC\x90\xa8\x0br\xa9\xfa\
+\xf4\xfc\xc5\x91\x1e\xdcl(\x22\x82\x84A\x90\xe6\x86\xfe\
+y\x0d\x90\xf6\xea\x11\x07#H\xd4\x05ia\xe8\x00=\
+@\xda\xa8G\xfc\x1b\x82D]\x90+\xd5\xa7'\xd5\x91\
+\x1e\x086mx\x09A\xa2.\x88`z\x5c\xd9\x17\xeb\
+*\xf5\x88\xaf\x22H\xd4\x05\x11\x1c\xa0\xbb\xb2\xb3\xe2\xe5\
+\xea\x11\xdfD\x90\xa8\x0b\x22xa\xdb\x95\xbdy\x05;\
+\x1b\xb17o\xe4\x05\x11\xbc\x8fz\x9f#=\x10l^\
+\xfd\x1e\x82D]\x10\xc1\xebv\xae|\x1fD\xb0q\xcb\
+\xc7\x08\x12uA\x1eQ\x9f\x9e\xdb\x1d\xe9\x81\xe0\x03:\
+\x93\x11$\xea\x82<\xa9>=\x1d\x1c\xe9Au\xf5\x88\
+3\x11$\xea\x82<\xa7>=\xd78\xd2\x83\x8a\xea\x11\
+\xe7!H\xd4\x05yA}z\x9a;\xd2\x03\xc1w\xd2\
+\x97!H\xd4\x05yC}z\x1a8\xd2\x83<\xea\x11\
+7 H\xd4\x05yW}zj\xba\xd1\x82\xbd\xea\x09\
+\xbd\xdd\x08\x12uA>R\x9f\x9e\xcan\xb4`\x83z\
+\xc2\xb8l\x04\x89\xba _\xa8\x8fOi7Z\xb0D\
+=a\xa1\x18\x82D]\x90\x1f\xd4\xc7\xa7\xa0\x1b-\x10\
+$,\x85 \x91\x17d\xa9\xe0\x08}\xbf\x13-\xf8R\
+=`%\x04\x89\xbc \x9b=C\xd7x\x02\xe3\x1f\xea\
+\x01k H\xe4\x05\xc9\x10\x08\xf2\x93\x13-xO=\
+`}\x04\x89\xbc \xb1B\xea\xf3\xf3\x8d\x13-xM\
+=`S\x04A\x90\xd2\xea\xf33\xd1\x89\x16<\xaf\x1e\
+\xb0\x1d\x82 \xc8\xd9\xea\xf3\xe3\xc6\xf6\xee\xa9\xea\x01\xef\
+B\x10\x04\x11<\x0c\xee\xc6\xde\xa3\x0f\xaa\x07|\x04A\
+\x10D\xb0\xef\xcf\x00'Z \xd8yt0\x82 H\
+\x87\xb0\xbfs{\x8dz\xc0\x91\x08\x82 )a\x7fc\
+J\xb0\x7f\xfd\xa7\x08\x82 O\xa9\xcf\xcfeN\xb4\xe0\
+L\xf5\x80\xdf\x22\x08\x82\xbc\xaa>?\xb5\x9chA1\
+\xf5\x80K\x11\x04A>P\x9f\x9f\xb2.t\xe0@\x9c\
+z\xc0\xed\x08\x82 _\xa9\xcfO\xdel\x07:\xb0F\
+=_\x9el\x04A\x90\x9f\x05\x0fcmv\xa0\x03s\
+\xd4\xe3\x9d\x16C\x10\x04\xd9.\x10d\x8e\x03\x1d\xf8D\
+=^u\x04A\x90X,\x9f\xfa\x04}\xe2@\x07\x04\
+\xcf*6F\x10\x04\x89\xc5\xca\x85\xfbY\x93~\xea\xf1\
+\xda \x08\x82\xc4b\x17\xa8O\xd0\xe3\x0et\xe0\x0e\xf5\
+x\x0f \x08\x82\xc4b\xd7\xa9O\xd0m\x0et@\xf0\
+\x09\xadA\x08\x82 \xb1\xd8\xbd\xea\x13t\xb9\x03\x1d8\
+O=\xde\x18\x04A\x10\xf5>\xfeFU\x07:PJ\
+=\xde\x0c\x04A\x10\xd1;\xdb\xf9\xb3\xacO\xb7Gp\
+#}5\x82 H,6\xcd36B\x010_p\
+#=\x13A\x10$\x16[!\x10d\x9a\xf5\xe9&\xa8\
+\x87\xab\x18C\x10\x04\x89\xc5\x0e&\xa8\xcf\xd0p\xeb\xd3\
+\x0dU\x0f\xd7\x10A\x10\xe4\x10e\xd5g(\xd5\xfap\
+\xf7\xab\x87\xbb\x11A\x10\xe4\x10\xf5\xd4g\xa8\x93\xf5\xe1\
+\xae5v\x9f\x10A\xc2\x22H{\xf5\x19\xaag}\xb8\
+\x9a\xa6\xb6l@\x90\xd0\x08\xf2\x98\xfa\x0c\x15\xb5\xfd\x8d\
+\x90\xac\x02\xc6\xee\x13\x22HX\x04\x19\x1e\xe2\xeb\xbc\x92\
+\xcd\xeb\x7f@\x10\x049\x84\xe0\x9dB\xefs\xcb\xb3\x09\
+\xde\x06\x89\xdb\x85 \x08r\x88\x8d\x02A\x86X\x9eM\
+\xb01o\x85\x18\x82 \xc8\xef\x08\xbe\x93|\xa7\xe5\xd1\
+\xba\xaaGk\x8e \x08r\x98\xba\xeaS\xd4\xc8\xf2h\
+\x8d\xd5\xa3uG\x10\x049\x8c\xe0:oa\xbb\x1fW\
+\xccNR\x8f6\x14A\x10\xe40\x82\xeb\xbc\xde\xcfV\
+'[.H6\x11A\x10\xe40\xa3\x04cd\xf77\
+B>\x14$[\x81 \x08r\x18\xc1\xd6Q^\x1f\xab\
+\x93=\xa1\x1e\xac@\x16\x82 \xc8a\xf6'\xaa\xcfQ\
+K\xab\x93\x09>}p^\x0cA\x10\xe4\xdfTW\x9f\
+\xa3\x92V?lr\x86z\xb0v\x08\x82 G\xb81\
+\xa4g\xe9\x1b\x04\xb9\x1eC\x10\x049\x82\xe0\x1b!V\
+\xbf3\xf5\x91 \xd7h\x04A\x10\x1d\x83d\xf3\xbd\xf4\
+\x87\x05\xb9\x96\x22\x08\x82\x1ca\x99`\x90jZ\x9c\xeb\
+\x12\xf5X\xc5\xb3\x11\x04A\x8e\x90]D}\x92\x12v\
+X\x1b+\xa3\xb0z\xacKc\x08\x82 \xff\xa1\xa1\xe0\
+'\xc4\xde-\xdeg\x0bR=\x88 \x08r\x94\x14\xb3\
+\xa3\xe4\x13\x83\x04\xa9\xdeC\x10\x049\xca;\x82Q\xb2\
+\xf7S\x9e\xad\x04\xa9~B\x10\x049\xca\x12\xc1(\xc5\
+m\xb4\xf5\x14\xa4\xa8\xe0e\xfb,\x04A\x90c\xce\xd2\
+K\x18\xbdc\xe0\x0f_\x0b2]\x12C\x10\x049\x86\
++\x04\xc3t\x87\xa5\x99\x06\x082\xdd\x87 \x08r,\
+\x82\xc7^\xbd2\x96>\x8e%\xb8\x0b\xe2\x8d4(\xc8\
+z\x04\xb1\x0f\xc1\xee\x1f\x9e\xf7\x8d\x95\x91\xb6\xe6\x11D\
+ZlP\x90\xb5\x08b\x1f\x9b\x05\x9f\xd1\xf0\x1e\xb52\
+\x92\xe45\xb0\xd2\xd9\x06\x05Y\x8d \x16R%tO\
+\x9b\x08\xde\xb4\x17\xef[-\x12d%\x82XHW\xc9\
+1\xd62\x0b\x03\x1d\x14lf\xe4\xbdlR\x90\xe5\x08\
+b!\xefJ\x04y\xda\xc2@\xe9\x92@\x8bL\x0a\xb2\
+\x14A,d\xadd\x9ejX\x18\xe86\xd3\xa7 \xb1\
+\xe7B\xb9QLT\x05\x89U\x95\x182\xd7\xba8\xfb\
+%GX\xed\xb5\x940\xd8\xe0\x154\x04\xd1N7\x89\
+ \xf6\xedm2^\x12\xe7\x15-%\xbc\xa0\xf8\xd7\x7f\
+D\x10\x1b\xf9\xbbd\xa2*f\xda\x16\xa7\x9d\xf1S\x90\
+\xd8\xb0P\xddV\x8a\xbc \xeb$wB\xbc\x7fX\x96\
+f\x8b\xe0\xc39^\x19=5\xbc\xa9\xf8\xe7\xff\x85 \
+VRM\x22H+\xcb\xc2\x0c\xf6\x8c\x9f\x82\xc4F(\
+\xfe\xf9\x89\x08b%=%3\x15\xbf<D\xb6\xbf\xa9\
+\xa7\x06\xd5+\xe7\x1f#\x88\x95|!\x99)\xcb\x1e7\
+\x11e\x89[\xa7\xa7\x88\xb1\x8a\x7f\xff}\x04\xb1\x92\x0c\
+\xc9\x85Q\xaf\xe4\x1e\x9b\xb2Hv\xc2\xf3\xeaj*B\
+u\xe7\xec\xe1\x08b'\xedE?!C-J\xb2L\
+\xf2 \xaf\x97\xaa\xa9\x0a\xd5'\xa4_@\x10;\x19)\
+\x12\xa4\xc2A{\x92\xdc%J\xf2\x9d\xa6*&*\xfe\
+\xfd\x01\x08b'[\x12Ds5\xc2\x9a \x1b$\xd7\
+x\xbdr\xba\xde\xff\x9a\xa2X@/\x04\xb1\x94\x8bD\
+\x82T\xcd\xb0%G_Q\x8e\x1e\xba\xca\x98\xa6X@\
+7\x04\xb1\x944\xd1`y\xafZ\x12c}aQ\x8c\
+\xa9\xba\xea\x98\xa9X\xc0M\x08b)KE7\xd3\xbd\
+\xb2\x96\x5c\xc8\xea.JQJ\xdbS3\x0b\x14+\xb8\
+\x12Al\xa5\x9e\xec'\xc4\x8e\xb3\xcb_\x12E!\xba\
+j+d\x8db\x05\x17 \x88\xad\x0c\x92\x09Rd\x95\
+\x0d!\xdazv\x1ca\xc5\xf6\xa8^\x0fD\x10[Y\
+\x13/\x1b.\x1b\x0e\x0e>\x95E8]\xe3\x87\xdf\xf3\
+\xaa\x95\x90/\x1bAl\xa5\xb1l\xba\xbc\xb1\xc6\x13\xec\
+\xae$K\xf0\x88\xc6ZJ*\xd6\xb0\x15Al\xe5E\
+\xa1 e\x8c\xf7\xf6\x1ea\x82E\x1ak9K\xb1\x86\
+\x85\x08b+\x1b\xf2\x08\xe7\xebZ\xc3\x87\x07\x93\x84\x07\
+\x89\xf5u\x16s\x81b\x11\x93\x11\xc4ZZ\x09\x05\xf1\
+\x06\x1b-\x7f}\x19a\xf9o\xe8\xac\xe62\xc5\x22^\
+G\x10k\xf9H*H\xe2W\x06\xab\xcfl&\xac\xbe\
+\xd8n\x1b\xae\xa7\xf5E\x10k\xc9('5\xa4\x82\xc1\
+\x9d3\x1f\x92\x16\xdfCk9\xb7\x9b}\xa3\x11A\xfc\
+\xe0Q\xe9\x8cy\xd5\x8d\x9d\xa8\xbf,\xae\xfdG+|\
+\xad\x87 \xf6\xb2\x22^<eM\x0f\x98)}\xac\xb8\
+\xf4K\xf4\x16\xf4\x94b\x19\xc5\xb3\x11\xc4^Z\x8a\x05\
+\xf1\xda\x18y5dJ~q\xe1\x1f\xe9\xadHu\xdf\
+\x9f(\xed\xce\xeb\x9e \xe3\xe4\x82xW\xed\x0b\xbe\xee\
+\xcf\x0a\x88\xcb\xae\x92\xa5\xb7\xa4\x8fU\x0b\x19\x8f \xf6\
+r\xb0\xa2\x06CZ\x04\xfe`\xef\xb8\xbc\xf2\xaa_\xd6\
+\x5c\xd3w\xaa\x85<\x8e \x16\xf3\xbc\x06A\xbc\x86\x01\
+\x7fG\xec\x8d<\xf2\x9a\xb5\xef;\xb1Z\xf9\x17\x18A\
+,fgq\x1d\x86\x94\xfb6\xc0\x923z\xeb(y\
+\xa0\xf6\xb2T\xdfa.r\x10A,F\xcb\xb4y\x05\
+\xdf\x0b\xac\xe0M\x97\xea(\xf8\x94\x9d\xda\x0b+\xadZ\
+\xcbW\x08b1k\xf2j1\xc4\xbb}g0\xf5N\
+\xae\xa8\xa5\xdc\xfe\xfa+\xab\xafZK?\x04\xb1\x99.\
+z\x04\xf1\x92\xa7\x05P\xec\xde{\xe3\xb4\x14[|\xbb\
+\xfe\xda\x94w\x1a\xab\x85 63/N\x93!\x09\x0f\
+\xec\xf0\xbb\xd6igk\xaa5\xcd\x87\xe2\xfa(W\xf3\
+\x03\x82\xd8L\x1bO\x17\xa5\xdf\xf6\xf5\xae\xf0\xaf7\xe9\
+r\xb9\xfc^\x1f\xcaS\xbeS\xe8\xa5 \x88\xcd,L\
+\xd0f\x88w\xe1t\xdf\xca\xdc\xdd\xaf\xa0\xb62\xdf\xf0\
+\xa3\xc0\xcf\x95\xcb)\xbc\x06Al\xe6\x16O#\xcd\xbf\
+\xf4\xa5\xc6\x1d\x03J\xe8\xab\xb1\x86/\x9f\xc8Z\xa6^\
+Pg\x04\xb1\x99\xe5yu\x1a\xe25\x99\x98\xa5\xbb\xc2\
+\x8dO$\xe9\xac0\xdd\x97e\xccR\xff\x85\x8b\xff\x0c\
+Al\xa6\xbb\xa7\x97\xcai\x1bu\x967\xabk\x01\xad\
+\xe5\xdd\xe0\xd32\xd6R/\xa9\xc8l\x04\xb1\x98\xb5\x05\
+5\x1b\xe2\xe5\xef8a\xbf\xa6\x03\x97\xb4\xb35\xd7V\
+p\x85O\xcbx\x93\xa0\xa8\xb2\xb3\x11\xc4b\x1e\xf5\xf4\
+S\xbc\xb3\xdc\x91%\x03\xeb\xe8/\xac\xbf_\xab\xd8O\
+RU\x817\x10\xc4^\xf6T\xf4\xfc\xa0`\xcb\xbf\xcc\
+U\xbe\xf0\xbbe\xdc]U\xfc(\xaa\xda~\xbfVQ\
+\xf8\xee\xc0\xb5\x0b\x10\xc4Z\xc6y~q\xdauOO\
+\xca\xedm\xeb\xcc\xf9ow\xaf\x93\xe0O=\xf13|\
+[\xc4e\xc2\xd2\x12\xba\xccF\x10[i\xe1\xf9H\x5c\
+\xd5\xb6\x8f\xbe3\xebd\x1e\xd6\xca\x5c\xf2\xe9\xa0n\x8d\
+\x0b\xfbX\x8b\x8f7\xe5\xb2O\x11WwN\xff9\xb9\
+\xb9\x04}p\xeb\xda\xa5?\xce\x9a\x92>z\x0e\x82\xf8\
+\xcc\xe2\xbc\x9e\xef\x94\xa9{\xf5\xddO\xbe\xfd\xf1\xbf\xe6\
+\xae\xd8\xf6_\x7f{\xef\xbaE3'\xbe;\xf8\xc1\x0e\
+\x17\x9f\xe5{\x15\x95v\xfb\xb8\x88\xcdtTX\xa4i\
+\xdf\xe1S\x96\x1cs\x1c\xb8k\xeb\xf2%\xb3\xbeI\xff\
+d\xf4\xf0a\xcf\xa7\xf5\xe9\xd5\xf5\xb6\xb6W7oX\
+\xa7J\xf2)\xc5\x8e\xfeGw\x22\x88\xdf<\xec\x05J\
+|RRR\xc5\xe4\xe4\x12II\x05\x83\xfc\xb3\x09\xbe\
+>Q\xd9Sc\xa5E\x92*\x9dY+\xb9|\xd2\xc9\
+\xbd{\xdf\x01A\xfcfwe/\x02\xf8\xfb\x81\xf71\
+\xc6r]\x85 \xbe\xf3UB\xf8\xfd\xa8\xe3\xef\xcb{\
+\xeb\x8d\x05k\x84 \xfe\xd33\xf4~\x14\xfd\xd9\xe7%\
+<\xd3T\xb2s\x11\xc4\x7f\xf6\xd7\x0c\xb9\x1fqc\xfc\
+^\xc2[LE;\x1dA\x02`v\xdep\x0b\xd2\xd3\
+\xf7\x15|\xcdT\xb4\xe2\x08\x12\x04O\x85\xda\x8f&\xfe\
+\x7f\xda}\x85\xa9l\xf1\xd9\x08\x12\x00YW\x86\xd8\x8f\
+36\x04\xb0\x82g\x9bJ\xb7\x0bA\x82`\xeb\x99\xa1\
+\xf5\xa3\xc8\x8fA,`\x8a\xa9x\xab\x11$\x10\xe6\x16\
+\x0a\xa9\x1f\x09\xc1\xbc\x92\xf4\xa9\xa9|\xf3\x11$\x18\xde\
+\x0b\xa9 /\x05\xb3|\xfb\x8a\x18\xca7\x03A\x02\xe2\
+\xa1P\xfa\x11\xd8\xdel7\x19\x0a\xf8O\x04\x09\x88\xcc\
+kC\xe8G\x8f\xc0\x96o\x9c\xa1\x84\x7fG\x90\xa0\xd8\
+\xd74t~t\xc8\x0al\xf5\xf6\x18:\x89\x1b\x86 \
+\xc1\xf5\xb8a\xc8\xfch\x9b\x11\xe0\xeau2\x93\xf19\
+\x04\x09\x8eM\xd5B\xe5G\x9b \xfd\x88}a&\xe4\
+c\x08\x12 \xab*\x86\xc8\x8f\x1b\x03\xf5#\x96}\x96\
+\x91\x94\xf7\x22H\x90,\x0b\xcf\x0d\xc3n\x99\x01\xaf]\
+\x9a\x91\x98\xb7 H\xa0\xac\xaf\x15\x12?z\x07\xbet\
+[\x0a\x9b\xc8y\x1d\x82\x04\xcb\xb6F\xa1\xb8\x7f\xfe\x82\
+\x81\xa5\xeba\x22iS\x04\x09\xfaZV\x08\x1e\x5c,\
+\xfc\xa1\x91\xe3\xd3<\x06\xa2\xd6A\x90\xa09\xd8\xd9u\
+?N\x9fkf\xe5:\x1a\xc8z\x16\x82\x04\xcf_\xf3\
+8\xedG\xd0\x1f\xa7\xfe\x0fK\x0c\xbcxV\x0aA\x0c\
+\xf0ei\x87\xfd\xe8z\xc0\xd8\xbau\x0f>m>\x04\
+1\xc1\xca\xba\xae\xeaQ\xe4}\x93\xd7\x00\x8b\x05\x1fx\
+\x1f\x82\x98`\xdf\xadn\xfaQ{\x91\xd1e{)\xf8\
+\xc4\x1b\x10\xc4\x0ccJ\xb8\xa7G\x5c\xca~\xb3\x8b\x96\
+\x15\xfc\xe3l\xbf \x88!\xd6\xb5v\xcd\x8f\x0aS\x8d\
+/\xda\xfc\x02A\x87\xfe\x0eA\x8c1:\xc9-A\xaa\
+\xec7\xbff\xaf\x06\x1dz2\x82\x98c\xc5en\x19\
+\xd2\xdf\x825\x0b\xfa\xd5\xc2\xf1\x08b\x92\x09\xc9.\x09\
+\x92o\xb1\xf9\x15\xdb{a\xb0\x99\xdfF\x10\xa3\x1c\x18\
+R\xd8!C\x9aX\xb0\x8f\xda\xa6`\x9f{\x1f\x82 \
+\xa6\xef\x89\xb4s\xc8\x90\x91\x16,\xd8\xe22Q;\xac\
+\x8c\xb6 \xb1\xd8\xf4\xe6\xce\x08Rj\x8b\x05\xeb\xf5S\
+\x85\x00\x13?\x84 \x160\xcd\x19E\xee\xb0a\xb9\x96\
+U\x8eX\xe0\xc8\x0b\x12\x8b\xcdp\xe4\xaeH\xdct\x1b\
+VkK\xb3\xc0\x02\xdf\x88 \x96\xf0U\x1b'\x1e\xf2\
+\xadq\xd0\x86\xc5:xwPy[\x22\x885\xacM\
++\xe7\x80!\x03\xedX\xacq\xa7\x06\x13\xb7\x01\x82X\
+\xc4\xfe\x91\xf5\xad\x17\xa4\xe0R;\xd6j\xcd\xe5\x81\xc4\
+\xad\x86 v\xf1\xfd}e,7\xc4\x9a\x83\x8e\xf7\xcb\
+\x07\x90\xb6<\x82\xd8F\xe6\xa4\xdb\x8a[m\x885\xfb\
+\xd5\xeez\xd8\xff\x8f\xc1\x17A\x10\x1b\x0f\xb5\xc6\xb7\xb1\
+\xf8\x06{\x99\xed\xd6,\xd4\xba{\xf3\xfb}\xd9.\x13\
+A\xect$\xfd\xfe*\xb6\x1ar\xb7E\xeb\xb4\xfaa\
+\x9f\xcf\xd6\xb7!\x88\xb5,\x19zy~\x1b\x05\x89\x9f\
+i\xd3*\xed}\xb5\xb6_A\x13kv|f/\x82\
+\xd8L\xc6\xac!m\xed{\xf7\xf0\xdc\x83v\xad\xd2\x82\
+\xd43tGLj\x942l\xfa^G\xa6$\xc2\x82\
+\x1c\x22{\xc1\xb0\xceU\xe2\xad2\xc4\xba\xaf\x02dN\
+\xef\xadk\xef\xfc\xfc\xe7w\x194i\xa3S\x13\x12q\
+A~g\xf7\xccaw7*\xaa\xe7\xbc3N\xfc\xbf\
+(\xb4\xc2\xc6#\xd2a\x1d\xca\x8aR\x95h\xd0e\xc0\
+\x98\x05\x19\xee\x0d\x07\x82\x1c\xf9-Y\xfa\xe1sw]\
+~f\xa2@\x8e*\x9dG\xac\xd3\xf01\x9a\xd6\x96\xae\
+\xd0O#R\x1a\xe5\xfecT\x85k\xb7{t\xc4\xcc\
+-\xce\xce\x05\x82\xfc\xcf\x89\xc9\xb2I\xc3\xfav\xb9\xb2\
+v\xd9\xdc<\xbdU\xe8\xdck\x1f|\xf1\xf3\xdf\xaf\xc9\
+\xac\xd7p\x9fe\x9c\xbd\xcb\x93\xf9\xf3G\xcf\xdcvQ\
+\xb9\x938(-pv\xb3.O\xbc>u\xb5\xeb\x03\
+\x81 9\xfd\xa2\xac\xffq\xe2\xa8\x97\xd3\xfa\xf4\xb8\xe5\
+\xfa\xe6u\xab&'\x9f\x9a\x94td\xf6\x93\x92\x92\xca\
+%'W\xa9\x7fE\x87\xee\x8f>\xff\xe6\x87\xd3\xd7\x1d\
+\xfb\xdf\xbd\xa8\xe1\x0e\xf3N\xdb\x17\xe7\xe0\x8ai\xef\x0e\
+}\xa2\xfb\x8d\xcd/</\xb9dR\xbe\xc3e\xe7K\
+*Q\xb9N\xb3\xebo\xed5h\xd4\xa4y\x1b\xc32\
+\x07\x08\xa2\x99,\x0d\x8f|\xa5\xb0\x8c\x08\x12Zf%\
+\x84\xecf\x08\x82\x80V\xee\x92\xff\x84\xd4\xc9d\x19\x11\
+$\xacl\xd7\xf0\xcc\xf0\x10\x96\x11AB\xcbp\x0d\x0f\
+\xba\xaeb\x19\x11$\xacd_*7\xe4z\x96\x11A\
+B\xcb\x82D\xb9!\x1f\xb1\x8c\x08\x12Zz\xc9\x05\xa9\
+\xb8\x8beD\x90\xb0\xb2G\xc3\x13\xb0\x0f\xb1\x8c\x08\x12\
+Z\xc6\xcb\x05\xc93\x9beD\x90\xd0\xd2Jn\xc8\x05\
+\xdc\x0cA\x90\xd0\xb2\xa2\x90\xdc\x90\x17YF\x04\x09-\
+\xfd\xe5\x82\x14]\xcd2\x22HX9P5\x22\x9b\xd7\
+\x22\x08(\x91\xae\xe1\x05\xc5\x09,#\x82\x84\x96\xf6r\
+AN\xdf\xcd2\x22HXYWLnH\x1f\x96\x11\
+AB\xcb`\x0d7C\xe6\xb0\x8c\x08\x12V25\xec\
+\xbaV?\x8buD\x90\xb0\xf2\xad\x86\x1d\xb7^e\x19\
+\x11$\xb4\xdc\xaea\x1b\xc2\x0d,#\x82\x84\x95-%\
+\xe5\x86\xdc\xcc2\x22Hhy]\xc3\xcd\x90t\x96\x11\
+A\xc2J\xf6%rA\xce\xdc\xc7:\x22HX\x99\xa7\
+\xe1\xe5\xc2\xc7YF\x04\x09-\xf7\xcb\x05\xc9\xbb\x90e\
+D\x90\xb0\xb2S\xc3\xf7\xa7\x1bg\xb3\x8e\x08\x12V\xde\
+\xd7p\x9e\xfe\x16\xcb\x88 \xa1\xa5\x85\x5c\x90\x12\x9bX\
+F3lC\x10\xdf\xf9E\xc3\xc7\x10oe\x19\x8d\xb0\
+\xbd\x1e\x82\xf8\xcf\xe3\x1a\xbe\x5c5\x99e4\xe3\x07\x82\
+\xf8\xcf~\x0d\x1f\x9d\xae\xc2\xcd\x10\x03\xc7W\xbf\xf9\x81\
+ \x010Q\xc3yz\x7f\x96\xd1\x88\x1f\x08\x12\x047\
+\xc8\x05\xc9\xb7\x98e4\xe1\x07\x82\x04\xc1\xaa\xc2rC\
+\x9ap3\xc4\x84\x1f\x08\x12\x08\xcfj8\xc8\x1a\xc52\
+\x1a\xf0\x03A\x02!\xe3<n\x86\xb8\xe9\x07\x82\x04\xc3\
+\xb48\xb9!w\xb0\x8c\x81\xf9q\x81\x87 \xc1\xd2E\
+\xc3\xcd\x90\xe9,c\xe0~ H@l.!7\xa4\
+\xfaA\xd61h?\x10$(^\xd6p\x9e>\x90e\
+\x0c\xda\x0f\x04\x09\x8a\xac\x0b\xe5\x82\x14X\xc2:\x06\xec\
+\x07\x82\x04\xc6\xf7\x09rC.g\x19\x03\xf6\x03A\x82\
+\xa3\x87\x86\x83\xac\xf7Y\xc6`\xfd@\x90\xe0\xd8QV\
+.H\xe9m\xacc\xa0~ H\x80\x8c\xd2\xf0\x13r\
+7\xcb\x18\xa8\x1f\x08\x12$M\xe5\x82\xc4\xcf`\x19\x83\
+\xf4\x03A\x82dQ^\xf9\xf7\xd3\xc7\xb0\x8c~\xb1\xe5\
+|\x0fA\xcc\xd2G\xba\x89\xdc\x90\xfd,b\x90\xbf\x1f\
+\x08\x12,{+I\xf4\xa83\x82\x8f!\x04\xed\x07\x82\
+\x04\xcb\xa7\xeaOb\xb5\xe6Q,\x03~ H\xc0\x5c\
+\xad\xa6Gb\xe7\xf9\xac\x9d\x09?\x10$`V\x16R\
+\xd0\xa3P\xcaJV\xce_?\xeaz\x08b\x07\x03r\
+\xff\xa6T\xeaf\x96\xcd\x94\x1f\x08\x124\x07\xce\xc9\xe5\
+\xa7\xa0\x87\xeca\xd1\xcc\xf9\x81 \x81\xf3\xaf\xdc\xbc\x5c\
+x\xee\x88\x0cV\xcc\xa4\x1f\x08\x12<\x1dOZ\x8fF\
+\x13\xd8\xca\xc4\xb0\x1f\x08\x12<\xeb\x8b\x9f\xdcC%\xad\
+y\xaa\xc4\xbc\x1f\x08b\x80\xa1'\xf3\xd5\x9c\xce\x0bX\
+(\x0b\xfc@\x10\x03d\xd5;\x91\x1e\x85S~e\x99\
+\xac\xf0\x03AL\xf0\xdd\xf1_.,\x99\xba\x855\xb2\
+\xc4\x0f\x041\xc2\x9d\xc7\xe9H%\xae\xeb\x06\xc6\xd6\x13\
+\xfa\x81 f\x1aS*\xa7~\x9c\xc7u]\xab\xfc@\
+\x103\xbc\xc5u]7\xfc@\x103d7\xf9\xb3\xeb\
+\xba_\xb30\xb6\xf9\x81 \x86\x98\x9f\xf8\x87\xeb\xba\x8b\
+X\x15\xfb\xfc@\x10S\xf4\xfc\xaf6\x14IY\xcd\x92\
+\xd8\xe8\x07\x82\x98b\xcf\x19G\x9bP*u+\x0b\x12\
+\xb0\x1fu<\x04\xb1\x9b\xb1GZ\x90<d/\xaba\
+\xab\x1f\x08b\x8e\xab~o@\xad\x11\x99,\x85\xbd~\
+ \x889\x96\xe4?t]\x97u\xb0\xda\x0f\x041\xc8\
+\x80\xf6\xb3Y\x04\x03l\xca\xcd\x07\xf1X.\xe0\xf7\x03\
+A\x00\x94\xfc@\x10\xc0\x0f\x04\x01P\xf3\x03A\x00?\
+\x10\x04@\xcd\x0f\x04\x01\xfc@\x10\x80XlcM\x0f\
+A\x00t\xfa\x81 \x80\x1f\x08\x02\xf8q\xae\x87 \x00\
+\x9a\xfd@\x10\xc0\x0f\x04\x01\xfc@\x10\x00\xed~ \x08\
+\xe0\x07\x82\x00~ \x08\x80v?\x10\x04\xf0\x03A\x00\
+?\x10\x04@\xbb\x1f\x08\x02\xf8\x81 \x80\x1f\x08\x02\xa0\
+\xdd\x0f\x04\x01\xfc@\x10\xc0\x0f\x04\x01\xd0\xee\x07\x82\x00\
+~ \x08\xe0\x07\x82\x00h\xf7\x03A |l\xd0\xe7\
+\x07\x82@\xf8\xfc\xa8\xe1!\x08@\x10~ \x08\xe0\x07\
+\x82\x00~ \x08\x80v?\x10\x04\xf0\x03A\x00?\x10\
+\x04\xf0\xc3C\x10\x80\x00\xfd@\x10\xc0\x0f\x04\x01\xfc@\
+\x10\xc0\x0f\x04\x01\x08\xd2\x0f\x04\x01\xfc@\x10\xc0\x0f\x04\
+\x81\xc8\xfaQ\xddC\x10\x00\x03~\xfc?\xf8\x1a\xb7\x9e\
+cx\x86\x0f\x00\x00\x00\x00IEND\xaeB`\x82\
+\
+\x00\x00\x02\xbb\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x80\x00\x00\x00v\x08\x03\x00\x00\x007+k\xfd\
+\x00\x00\x003PLTE\x00\x00\x00A\xcdRP\xca\
+NA\xcdRA\xcdRF\xccPH\xcbPB\xccQ\
+I\xcbPD\xccQE\xccQJ\xcbOE\xccQD\
+\xccQD\xccQC\xccQA\xcdRz\x18s\xcb\x00\
+\x00\x00\x10tRNS\x00\x186Oc\x9d\xab\xae\xb8\
+\xbd\xc9\xcd\xd6\xdf\xe9\xf0\xb8\x82#\xe9\x00\x00\x02'I\
+DATh\xde\xc5\xda[v\x830\x0c\x04PT\xd3\
+\x90\x07\xa5\xda\xffj\xfb\x91\xa4!`\x9f\x18i\xa4\xd1\
+\x06\xe6\xf2\x01#\xc0\xc3\x101E\x17\x19\x98ST\x97\
+\x22\x5c\x80\xea(d\x00Sp\x07\x10\x05\x0f\x00O\xf0\
+\x04\xe8$d\x00K\xf0\x02\x90\x04+\x00G\xb0\x06\xe8\
+U\xc8\x00\x86\xe0\x1d@\x10l\x00:\x0b\x19\x90^\x8e\
+;@\xb6`\x0fH\xae\xe7\x0a \xb7\x18\xaa\x80LA\
+\x1d\x90(h\x00\xf2\x04-\x00\xa4\x18\xa4|\x9eQ\x03\
+\x05\xdf\xea\x1a\xbf\xe0\xacd\x81\x17\xe0\xae&7\xc0+\
+\xf0\x03\x9c\x02\x00\xc0W\xcf\x08\x80\xab\x1c!\x00\x8f\x00\
+\x03p\x08@\x00\xfd\xb5.\x08(\x80\xb9\x9ap\x00\xa3\
+\x00\x08\xb0\x09\x90\x00S1@\x01:\xb1\x01\xda\xbf\x86\
+\xdc\x84\x09\x90Q\xb5\x10\x012j\x10`\xec\xcf\x8f\x00\
+t\xbe.\xdd\xf3\x03\x00\x9d} \x93\xc6\x00\x0e\xe6\xc3\
+\x01\xf3\xc1|4\xa0s/\x93\x8b\xc6\x00z\xf3\xaf\x1a\
+\x030\xe4C\x01\x93!\x1f\x09\xe8\xcd\xff\xd1\x18@o\
+\xfe\xa21\x00c>\x0c\xd0\xb7\x06I\xd9\xe6\xa3\x00\xe3\
+\x91\xc7\x7f\x0d\xf0u\xfe<sD\xfe\x13\xd03%\x22\
+\x1f\x018V\xbfx\xc0\xd1\xfaC\x03\x9c\xf9n\xc0\xec\
+\xcc\xf7\x02\x8e\xd7\xef\xee\x0a:\xee\xbf\x93\xb4\x00\x96\xfa\
+\xb3Li\x00\xb2\xf2[\x80)+\xbf\x01\xb0\xd5/\x0e\
+`\xad?\x14 3\xbf\x060\xd7/\x08\xe0\xa9\x1f\x04\
+ 9\x7f\x07\xc8\xce\xdf\x00|\xf5\xeb\x07x\xeb\xcf\x0b\
+`\xe4\xaf\x013#\x7f\x05\xe8\xfd+q\xd1\x18@\xf7\
+_\x11\x8d\x00\xc8\xed\xd4\xfd\x09t\x89\x00\x1c\x19Y\xc8\
+\x00\xb0\xc0\x00@\xac!>\x00T`\x02 \x056\x00\
+P`\x04\xe0\x9e\x87V\x00L`\x06\xa0\x04v\x00H\
+\xe0\x00`\xf6\x12\x0f\x00\x22p\x01\x10\x02\x1f\x00\xf0v\
+\xe0\x04\xb8\xab\x09pj\xaf-\x18;N0!\x8ej\
+5\x05eH\x9aV1\xa4\x01Z\x82<@C\x90\x08\
+\xa8\x0b2\x01\xd5bH\x05\xd4\x04\xb9\x80\x8a \x19\xb0\
+\x17d\x03v\xd5\x94\x0e\xd8\x0a\xf2\x01\x1b\x01\x01\xf0^\
+\xcf\x0c\xc0[5q\x00+\x01\x09\xf0\x12\xb0\x00\xff\xc5\
+@\x03<\x05<\xc0C@\x04\xdc\x05L\xc0 \x13\x19\
+0\xc8\x14\x04\xf8\x03L-q\xaa\x9e\xb6\xb9\xda\x00\x00\
+\x00\x00IEND\xaeB`\x82\
+\x00\x00\x02\xf6\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x9e\x00\x00\x00\x9d\x04\x03\x00\x00\x00\xb7?\xdc\xe6\
+\x00\x00\x00$PLTE\x00\x00\x00\xff\xff\xffA\xcd\
+RA\xcdRA\xcdRH\xcbPB\xccQE\xccQ\
+J\xcbOD\xccQC\xccQA\xcdRE\xef\x01u\
+\x00\x00\x00\x0btRNS\x00\x00\x18Oc\xab\xae\xc9\
+\xd7\xe9\xf0\xc1\xad8\xf5\x00\x00\x02vIDATh\
+\xde\xcd\xda\xdbM\xc40\x10\x85\xe1\x15i\x00:\x88D\
+\x07\xc0\xdb\xbem))!=\xd0\xc0\xd6\xb2J\xb4\xeb\
+\xe6x\x08\xb98\xbe\x8dg\xfe\x07\xa7\x80OG \x0e\
+\xe3\xb1/\x17\xc1\xd7=\xfb\x0b\xf9u\xee\x0e{\xaf/\
+\xd6s\x8f\x9e\xf5\xdc\x0d\xf6\xc8\x80\x9ds\xce\x0d\xb07\
+\xf5\xac\x07\x06\x5c<.\xe0\xe2\xb9\x11\xf6\xe6\x9e\xf5\xb0\
+\x80\xabG\x05\x5c=\xaa\x166\x0f\xea\xad\xcd\x83\x02\xee\
+\x1e\xd3[\xbb\xc7\xd4\xc2\xc1Cz\xeb\xe8\x11\x01\x8f\x1e\
+Q\x0b\x9e\x07\xd4\x82\xe7\x01\x01}\xcf\x1e\xd0\xf7\xec\xb5\
+p\xf2\xcc\xb5p\xf2\xcc\x01\xcf\x9e5\xe0\xd9\xb3\xd6B\
+\xe0\x19{+\xf0\x8c\x01C\xcf\xd6[\xa1g\xab\x85\x88\
+g\xea\xad\x98g\x09\x18\xf3,\xb5\x10\xf5\x0c\xb5\x10\xf5\
+\x0c\x01\xe3\x9e>`\xdc\xd3\xd7B\xc2S\xd7B\xc2S\
+\x07Ly\xda\x80)O[\x0bI/\xd2[\x9f\xdf\xe5\
+\xef\xc7\xc9\x03^\x9d\xe5\x0b{\xcb\xe6\x85\xb5`\xf4\x82\
+\xde\xb2z\xe7\x80V\xef\x5c\x0bf\xefT\x0bf\xef\x14\
+\xd0\xee\xf9\x01\xed\x9e_\x0b\x80\xe7\xd5\x02\xe0y\x01\x09\
+\xef\x18\x90\xf0\x8e\xb5\x80x\x87\xdeB\xbcC@\xc6\xdb\
+{\x8b\xf1\xf6Z\x80\xbc\xad\xb7(o\x0dHyk-\
+`\xde\x7f-`\xde\x7f@\xce[\x02r\xdeR\x0b\xa0\
+7\xf7\xac\xe7F\xd8\x9b{\xd6sw\xd8{\xf6\xac\xe7\
+\xee\xb0\xf7\x82=\x07{\xcf\xb6\x7f~3\xfc\xfb\x1d\xdb\
+\xfe\xfb\x80\xff~'\xb8_\x86\xb6\xfb\x19\xfe\xff\xf1\x80\
+\xff\xbf\xdd\x9a\x9e\x0f\xb6\x01\xebJ\x15\x01\xea\xed\x03j\
+\x93\xf3\xe9\x0c\xcf\xcfc\xdb\xe7\x0f\xf8|4\xc1\xe7\xb7\
+\xa1\xed\xf3/|>\x7f\xc0\xfb\x83[\xd3\xfb\x97`\x81\
+u\xa5\x8a\x00\xf1\xc2\x05 \xbd\xff3\xed'\x95\x0b\xd4\
+N\xb4\xc9io\xbf\x0b\xef\x9f'x?>\xb0\xfb{\
+\xfa~!\x1e\xef#\xff\xbd'\xbd\xc4\x05\x92\xdaK\x5c\
+pi\xbd\xd4\xfd\x96\xd2K^\x10*\xbdd\x11\xe8\xbc\
+\xf4\x05\xab\xceK\xf7\x94\xca\xcb\x14\x81\xca\xcb\x14\x81\xc6\
+\xcb\xf5\x94\xc6\xcb\xf5\x94\xc2\xcb\x16\x81\xc2\xcb\xf6T\xbd\
+\x97\xef\xa9z/_\xa3\xd5^\xe1\xa2\xbb\xda+\x5c\xc4\
+\xd7z\xa5{\xf8J\xaf\xf8\x90\xa1\xd2+\x0e,u^\
+\xf9!H\x9dW\x9e\xa7\xaa<\xc1\xc0R\xe5\x09\x06\x96\
+\x1aO2O\xd5x\x92y\xaa\xc2\x13\x0d,\x15\x9eh\
+\x9e\x92{\xb2yJ\xee\xc9\xc6=\xb1'|\x90#\xf6\
+\x84\x0f\x86\xa4\x9e\xf4\xbd\x90\xd0\x13?\xb8\x12z\xe2\x83\
+\x95\xcc\x93?X\x93y\xf2s\x9f\xc4{\xfb\x15\xc7\xfb\
+\x03\xfd\xb9\xba%(\xb7\xb7:\x00\x00\x00\x00IEN\
+D\xaeB`\x82\
+\x00\x00\x02c\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00w\x00\x00\x00w\x04\x03\x00\x00\x00\xcb\x17\xc2\xb9\
+\x00\x00\x00'PLTE\x00\x00\x00\xff\xff\xffA\xcd\
+RA\xcdRA\xcdRB\xccQD\xccQE\xccQ\
+E\xccQD\xccQD\xccQC\xccQA\xcdR\xeb\
+\xfeC\xda\x00\x00\x00\x0ctRNS\x00\x00\x18Oc\
+\xae\xbd\xc9\xd6\xdf\xe9\xf0v\x89\xbe\xf7\x00\x00\x01\xdfI\
+DATX\xc3\xc5\xd8\xbbm\xc30\x14\x05P\xc1Z\
+ \xd9\x80e\x902I\xe9\x22\xd0\x08\x9c\xc4\xf0H\xd2\
+\x22)(\x07R\xdeP)\xa2\x0fI\x89|\x9f[\x84\
+\xfd\xc1\x05l]>\x92MS^\xed\xb7k\xcc\xab\xa5\
+\x1e\xc1\xb3\x030\x10\xdd\x12\xfd\xbc\x01\x98\x82\x030u\
+\x08\xb6F\xb7DD\xe4\x11<:\x00\x1b\xa3\x17l\x8b\
+^0\xdd\x11l\xea\xc7\x8aM\xd1\x1b\xb6Do\xd8\xd2\
+\x8f\x1d\x1b\xaa\xb9cCt\x84\xf5\xd5\x8c\xb0\xbe\x1f1\
+VW3\xc1\xda\xe8\x04k\xfb\x91be?R\xac\x8c\
+\xce\xb0.:\xc3\xba~\xe4X\xd5\x8f\x1c\xab\xa2\x0fX\
+\x13}\xc0\x9a~\x1c\xb1\xa2\x9aG\x9cG_\xde\x8b\xeb\
+\xe3\x88\xb3j\xbe\x92j\xa5\xfd\xb8\xeapZM-N\
+\xa2\xb58\xe9\x87\x1a\xc7\xfdP\xe38Z\x8f\xa3h=\
+\x8e\xfaa\xc0{?\x0cx\x8f\xb6\xe0-\xda\x82\xb7~\
+\x98\xf0ZM\x13^\xa3mx\xa9\xa6\x0d/\xfd0\xe2\
+\xbfjZqp\x00&\x8f\xe0\xd1\x01\x98<\x82G\x07\
+`\xba!\xf8\xeb\xdf\xf0'\x80\x03\xf2\x83u\xc0_5\
+\x00\x1f\xc9\x8c|\xdb=\xd0\xaa\x09\xe9\xf3\x1d\xd8I\x96\
+\xcd\xf7\x0a\x04\xdb\xf0\x03\xd9z=\xb0\xe9\x8f\xc8\xb8\xf1\
+\xc0\xa0\x0b\xc8\x88\xed\x80\xe1\x1e\x90cE\x07\x1ch\x06\
+\xe0(5#'\xc0\x1e8{N\xc9\xa9\xf7\xc5z\x06\
+\xd3\x1f\xd6\xe5W\x94\x96\x0b\xd6\xe1\x07rA\xf1\xc0\xd5\
+hD.e\x1e\xb8\x0e\x06\xe4\x22z|sx.\xad\
+\xa7\x1c\x9f\x04\xcb\xf1\xc9c\x87\x18\x0f\xce\x8eO/\xb0\
+R|zu\x16\xe2\xc9\x01\xf8\xbc\x112\x5c\xa8\xa2\x0c\
+\x17\xaa(\xc2\xa5*\x8ap\xa9\x11\x12\x5c\xac\xa2\x04\x17\
+\xab(\xc0\xe5*\x0ap\xf9\xf9\x8f\xc7\x95=\x80\xc7\x95\
+wG\x16\x0f\xce\x8e\xaboI\x1c\xae\xbeb1xr\
+\x00\xae\x0f\xa7:f\xa6b\x1d3S\xb1\x8a\xb9\xa9X\
+\xc5\xdcp\xaaav*V\xf0\x85{\x8b\xff\x05\xc8d\
+f\xae\xfe\xc1\x88\xef\x00\x00\x00\x00IEND\xaeB\
+`\x82\
+\x00\x00\x1cV\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x02X\x00\x00\x01\xad\x08\x03\x00\x00\x00\xfd\x0f\xfa\xd9\
+\x00\x00\x00\x09pHYs\x00\x00'\x8b\x00\x00'\x8b\
+\x01q}\xe4H\x00\x00\x00\x19tEXtSof\
+tware\x00www.inksca\
+pe.org\x9b\xee<\x1a\x00\x00\x03\x00PL\
+TE\x00\x00\x00\x00\xff\xff\x00\xff\x80U\xff\xaa@\xbf\
+\x803\xcc\x99+\xd5\x80$\xdb\x92 \xdf\x809\xe3\x8e\
+3\xe6\x80.\xe8\x8b+\xd5\x80'\xd8\x89$\xdb\x803\
+\xdd\x880\xdf\x80-\xe1\x87+\xe3\x80(\xe4\x86&\xd9\
+\x801\xdb\x86.\xdc\x80,\xde\x85+\xdf\x8a)\xe0\x85\
+'\xe2\x89/\xe3\x84.\xdb\x89,\xdc\x84+\xdd\x88)\
+\xde\x840\xdf\x87.\xe0\x83-\xe1\x87,\xdb\x83+\xdc\
+\x87)\xdd\x83/\xdd\x86.\xde\x83-\xdf\x86,\xe0\x83\
++\xe1\x86*\xdb\x82.\xdc\x85-\xdd\x82,\xde\x85+\
+\xde\x88+\xdf\x85*\xe0\x87.\xe0\x85-\xdc\x87,\xdd\
+\x84+\xdd\x87+\xde\x84*\xdf\x86.\xdf\x84-\xe0\x86\
+,\xdc\x84+\xdc\x86+\xdd\x84.\xde\x86-\xde\x84-\
+\xdf\x86,\xdf\x83+\xe0\x85+\xdc\x83.\xdd\x85-\xdd\
+\x83,\xde\x85,\xde\x87+\xdf\x85+\xdf\x87-\xe0\x85\
+-\xdd\x86,\xdd\x85,\xdd\x86+\xde\x84+\xde\x86-\
+\xdf\x84-\xdf\x86,\xe0\x84,\xdd\x86+\xdd\x84+\xde\
+\x86-\xde\x84,\xde\x85,\xdf\x84+\xdf\x85+\xdd\x84\
+-\xdd\x85-\xdd\x84,\xde\x85,\xde\x86+\xde\x85+\
+\xdf\x86-\xdf\x85-\xdd\x86,\xdd\x85,\xde\x86+\xde\
+\x85+\xde\x86-\xdf\x85-\xdf\x86,\xdf\x84,\xdd\x86\
++\xdd\x84+\xde\x85-\xde\x84,\xde\x85,\xdf\x84,\
+\xdf\x85+\xdf\x84+\xdd\x85-\xdd\x84,\xde\x85,\xde\
+\x84,\xde\x85+\xdf\x86-\xdf\x85-\xdd\x86,\xdd\x85\
+,\xde\x86,\xde\x85+\xde\x86-\xde\x85-\xdf\x86,\
+\xdf\x85,\xdd\x85+\xdd\x84+\xde\x85-\xde\x84,\xde\
+\x85,\xde\x84,\xdf\x85+\xdf\x84+\xdd\x85-\xdd\x84\
+,\xde\x85,\xde\x84,\xde\x85+\xde\x86+\xdf\x85-\
+\xdd\x86,\xdd\x85,\xde\x86,\xde\x85+\xde\x86-\xde\
+\x85,\xde\x85,\xdf\x85,\xdd\x85,\xdd\x85+\xde\x85\
+-\xde\x84,\xde\x85,\xde\x84,\xdf\x85,\xdf\x84+\
+\xdd\x85-\xde\x84,\xde\x85,\xde\x84,\xde\x85,\xde\
+\x86+\xdf\x85-\xdf\x86,\xdd\x85,\xde\x86,\xde\x85\
+,\xde\x86-\xde\x85,\xde\x85,\xdf\x85,\xdd\x85,\
+\xdd\x85+\xde\x85-\xde\x85,\xde\x85,\xde\x84,\xde\
+\x85,\xdf\x84+\xdd\x85-\xde\x84,\xde\x85,\xde\x84\
+,\xde\x85,\xde\x86+\xde\x85-\xdf\x86,\xdd\x85,\
+\xde\x86,\xde\x85,\xde\x85+\xde\x85,\xde\x85,\xde\
+\x85,\xdf\x85,\xde\x85,\xde\x85-\xde\x85,\xde\x85\
+,\xde\x85,\xde\x85,\xdf\x85,\xdd\x85-\xde\x84,\
+\xde\x85,\xde\x84,\xde\x85,\xde\x86,\xde\x85-\xdf\
+\x86,\xdd\x85,\xde\x85,\xde\x85,\xde\x85+\xde\x85\
+,\xde\x85,\xde\x85,\xdf\x85,\xde\x85,\xde\x85+\
+\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xdd\
+\x85-\xde\x85,\xde\x85,\xde\x84,\xde\x85,\xde\x86\
+,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\
+\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\
+\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85\
+,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\
+\xde\x85\xf8\xdf\x16\xb8\x00\x00\x00\xfftRNS\x00\x01\
+\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\
+\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !\
+\x22#$%&'()*+,-./01\
+23456789:;<=>?@A\
+BCDEFGHIJKLMNOPQ\
+RSTUVWXYZ[\x5c]^_`a\
+bcdefghijklmnopq\
+rstuvwxyz{|}~\x7f\x80\x81\
+\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\
+\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\
+\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\
+\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\
+\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\
+\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\
+\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\
+\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xeb\x08\xd9\
+5\x00\x00\x17\xccIDATx\xda\xed\xdd{\x9cM\
+\xe5\xfe\x07\xf0\xb5gh\x90\xeb\xb8D\xe4\xb8F\xb9\x95\
+q\x8b\x944'\xe4\x1aM\xa1\xa2NE\xc2\xe8\xa2\xa6\
+R\x19Q8(\xa4N\xa3\x9bD\x0e\x91J9\x95\xe6\
+\xd0\xa9\x8e\x5c\x0e\xe1'\x84\xdc\xefL\x0d&\xc3\xcc\xec\
+9\xbf\xdf\xef\x9c\x84\xb9\xec\xfdYk}\xd7\xf7Y3\
+\x9f\xcf\xdf^\xf3|\xd7\xf7y\xdb{\xed\xb5\x9e\xf5,\
+\xcbr\x9eJ\xff\x93\xcd0\xe7\x87\xae\x18CaU\xda\
+\xc0.2\xee\xc3\xa2+F\x02\x16]1\x12\xb0\xe8\x8a\
+\x91\x80EW\x8c\x04,\xbab$`\xd1\x15#\x01\x8b\
+\xae\x18\x09Xt\xc5H\xc0\xa2+F\x02\x16]1\x12\
+\xb0*\xd2\x15#\x00\xab\xe2zv\x8eq\x1f\x16]1\
+\x12\xb0\xe8\x8a\x91\x80EW\x8c\x04,\xbab$`\xd1\
+\x15#\x01\x8b\xae\x18\x09Xt\xc5H\xc0\xa2+F\x02\
+\x16]1\x12\xb0\xe8\x8a\x91\x80EW\x8c\x04,\xbab\
+$`\xd1\x15#\x01\x8b\xae\x18\x09X\x15\xd7\xb1U\x8c\
+\xfb\xb0\xe8\x8a\x91\x80Un5\x1b\xc5\xb8\x0f\x8b\xae\x18\
+\x09Xt\xc5H\xc0\xa2+F\x02\x16]1\x12\xb0\xe8\
+\x8a\x91\x80EW\x8c\x04,\xbab$`\xd1\x15#\x01\
+\x8b\xae\x18\x09X\xe5V\xb1=\x8c\xfb\xb0\xe8\x8a\x91\x80\
+U\x96\xae\x18\x01Xt\xc5H\xc0\xa2+F\x02\x16]\
+1\x12\xb0\xe8\x8a\x91\x80EW\x8c\x04,\xbab$`\
+\xd1\x15#\x01\x8b\xae\x18\x09XeW\xb2'\x8c\xfb\xb0\
+\xe8\x8a\x91\x80EW\x8c\x04,\xbab$`\xd1\x15#\
+\x01\x8b\xae\x18\x09Xt\xc5H\xc0\xa2+F\x02\x16]\
+1\x12\xb0\xe8\x8a\x91\x80EW\x8c\x04\xac\xb2+\xd8\x08\
+\xc6}Xt\xc5H\xc0*\xc0\xcfy\xa5\xa6\xa4\x1c\xdb\
+\xfe\x7f9\x90\x92\x92\x92\xc9\xd9\xf6\x14V\xc1r\x95\xb6\
+\xf5\xeb\xb9\x93\x13\xfa\xdfrcL\x9dJ\xc5.\xb8\xc3\
+\x1eQ\xaef\x93\xb6\x9d\xfb\xc4\xbf0\xe3o\xeb\x0fr\
+\xea\x85a\x15\x94\xf5W\xc7V\xcc\x1a\xd9\xb7y\xb9\xb0\
+\xf7\xad/Z\xf7\xe6a\xd3>\xdf\xce\x8f1)X\x05\
+\xc0\xd5\xce\x85\xcfv\xadf\xd9K\x89V\x0f$\xad:\
+E\x07\xee\xc3\xf2w\xf9\x19\xdf\x8d\xef\x1cm9M\x91\
+\xab\xe2\x17\x1c\xa6\x05\xc2\xfao\xd6\xbc\xd0\xa1\xa4\xe5V\
+\x02\x0d\x06/8A\x0f\x85\x1eV\xe67\xc3.\xb3\xdc\
+N\xb1\xd8){H\xa2\x10\xc3\xca\xfc\xa4wiK&\
+\x81f\x93\x0ePE\xe1\x84\xf5CbuK2\x11\xb1\
+3\xd3\x08\xa3\xb0\xc1J\x7f\xb3\x99%\x9frC\xb7\x92\
+Fa\x82ux\x5cU\xcb\x9bD\xc4.\x22\x8e\xc2\x02\
+k\xeb}\xc5,\x0f\xd3\xf4\xafY\xf4Q\x08`\x1dJ\
+\x88\xb2<N\x83yA\x0a)\xe0\xb0\x8e%\x14\xb7\x14\
+\xd2*\x99D\x0a2\xac\xcc\xa9e,\xa5t\xdfE$\
+\x05\x16\xd6\x9a\x16\x96^J$\x9e&\x93\x02\x09\xeb\x97\
+\xc1\x11\x96j\x1a~C'\x05\x10\xd6\xf2Z\x96v\x02\
+\xc3\xf8\xa1U\xd0`e$FZ\x06\xa4\xd9\x8f\xa4R\
+\xa0`\xedhm\x99\x91R3h\xa5\x00\xc1J\x8e\xb6\
+\x8c\xc9\xe0\x0c\xd7\x0fo[R\xb8\xd9AXnfz\
+Q\xcb\xa0\xfc1\xc5\xed\xe3\x9b\x13\xf6\xd8\x0b\x09\xcb\xc5\
+\x8bW\x09\x96Y\xa9\xb3\x89\xb0\x0a\x00\xac_o\xb6L\
+K\xf4*\xc2\xf2=\xac\xb4X\xcb\xbc\x94\xf9\x96\xb0|\
+\x0e\xebd{\xcb\xc4\x5c\xfc%a\xf9\x1a\xd6/\xad,\
+3Sb\x09a\xf9\x18\xd6\xe9\x1b-SSb9a\
+\xf9\x16VV\x9cen*l!,\xbf\xc2z\xc82\
+9\xb5\x0f\x12\x96?aM\xb2\xccN\xcbS\x84\xe5G\
+XK#\x0d\x87e\x0d ,\x1f\xc2:X\xc52>\
+o\x13\x96\xef`e\x5cg\xbe+\xab\xf8Z\xc2\xf2\x1b\
+\xac\x04\xcb\x0f\xa9w\x92\xb0\xfc\x05\xeb\xdb\x08_\xc0\xb2\
+\x86\x12\x96\xaf`\xa5\xd5\xf5\x87++b\x19a\xf9\x09\
+\xd60\xcb/\xa9y\x82\xb0\xfc\x03\xebk\xf7\xbe\x08#\
+\xab\xb6\xbe\xe5\x9eGFOKJzs\xde\xec\xa4\xa4\
+\xa4\x09O\x0d\xeas\xd3\x95\xeem\xd4f\xc5\x13\x96o\
+`\x9d\xae\xe7\xca\xf2\xf4\xb6\x03_N\xde\x95\xc7B\xe2\
+\x94\xb5sF\xf4\xac\xe3\xca\x97\xe1j\xc2\xf2\x0b\xac\x09\
+\x8eg\xbbJ\xff\xd7\xd6\x85\xb1\x11\xf2\xe1\x8f\x9fl\xed\
+\xf82l\x9b a\xf9\x03\xd6\x01\x87\xdb\xf45\x1f\xb3\
+\x06\x98\xeb\xa3\xb3\xfb\x96r6\xde,\xc2\xf2\x07\xac\xbb\
+\x1d\x9dL?\xb3\x19\xff\x0d:\xbb\x93\x93\xcf\xad\xaa'\
+\x08\xcb\x0f\xb0V88so\xff\xb1\xcd\xbd\xacv>\
+\xea`\xbb\x91\xa7\x09\xcb\x0f\xb0\xda\xd9\x9d\xdf@\xcf\xef\
+\x1d\x0c{|b\x05\xdb\x0b\x95\x0f\x11\x96\xf9\xb0\xbe\xb4\
+;\xbd79}v&u\xa4\xdd\x93\xadG\x08\xcb|\
+Xmm\xfe\x0e\x9c\xe7\xc2\xd8\xfb\xfb\xd9\x1b\xbc\xd8^\
+\xc22\x1d\xd6b{\xdf\x82C\x8f\xbb3\xfc\x87\xf6\x16\
+\xeb\x0c%,\xc3a\x05m\xed\xb2]q\xb1k\x05\x1c\
+\xeah\xa7\x80\xa8=\x84e6\xac/\xecL\xebu\xfb\
+\xdc\xa4=\xd6\xce\xa5\x87\xc7\x09\xcblX7\xd9\x98\xd4\
+\xdb\x5c~\x1d\xdc\x87%\xf0\x1aJ\xa7\x12\x96\xc9\xb06\
+\x04\xf09}\xc6\xf5\xbd\xb2WT\xc2\xab\x98BX&\
+\xc3\xb2q\xd1}\x8c@\x19\x9b*\xc3e\xd4\xc8$,\
+sa\x1d\xc0\xdf\x0d\xf0\x82H!\xeb\xca\xc3\x85\xcc'\
+,sa\x8d\xf2\xf6\xa49\xbfoC\xf8=\x05\xb1\x84\
+e,\xac\xac?\xa0\xb3y\xb3\xd8K\xc2\xdfG\xcf\xf6\
+\x02\xdb\x08\xcbTX\x9f\xa1\xae\x9a\x9c\x94+\xe6i\xef\
+nE\x13\x96pz\xa17\x7f7I~|\xa27\xc3\
+\xabf\x12\x96\x99\xb0\x8e\xa0\xa7\xeeo\x88\x96\xb3\x07\xdd\
+\xaa\xf9S\xc22\x13\xd6Dp\x22\xbb\x0b\xd73\x13\xac\
+\xe7V\xc22\x13\xd6\xd5\xd8<\x96\xd8!]\x10\xb8M\
+e\xb1T\xc22\x11\xd66\xf0\x03b\xbcxE\x1b\xc1\
+\xfd\xe5g\x13\x96\x89\xb0\xc6`\xb3X\xf7\x8c|I\xc3\
+\xbc\xf9n&,\xd14\xc4fq\xae\x07%\x1d\xc6\x96\
+\x94F\xfdBX\xe6\xc1\xda\x84\xb9j\xec\xc9\x1b\xc0\x9f\
+\xc0\x8az\x87\xb0\xcc\x83\x05\xde\xceY\xe4IQ\xc7J\
+z\xf1]HX\x92\xc1\x96\x8e^\xe1\xd1{\xe5\xe3\xb1\
++\xb6\xe9\x84e\x1a\xac\x03\xd8\xbd9\xaf^\x1b\xb8\xa3\
+\x08T\xd6\x17\x84e\x1a\xac7\xa1\x09\xbc\xd4\xb3w\xe8\
+\xde\x0a\xd55\x8c\xb0L\x83\xd5\x13\x9a\xc0\x91\x9e\xd5\x85\
+=\xe6X\x9b\xb0\x0c\x83u\x1a\xfaa\x1f\xb9\xd3\xb3\xc2\
+\x82\xd8^G?\x12\x96Y\xb0\x92\xa1\xe9\xeb\xeaae\
+/@\x95\xbdLXf\xc1\xc2V?}\xe8ae\xfb\
+\xa0=Jz\x11\x96Y\xb0\xaeEf\xafl\xba\x97\xa5\
+A\xeb\xb2\xcag\x11\x96I\xb0\xd2\xa0\xa5X\xf7yZ\
+\xdb_\xa0\x0f\xd3\xf5\x84e\x12\xac%\xd0\xe4%{Z\
+\xdb\x11\xe8R\xd6T\xc22\x09\xd6\x08\xe8\xeb&\xd3\xdb\
+\xe2n@\x8a\xeb\x99\xf7\xdf\xc9L\xca#\xf7\x85\xfd\xd7\
+\x07%\xd9\xc8w\x85\x18\x16t\x8a\xd5\xcf\xe3\xe2\xa0\xd7\
+\xdbU\xc8\xfb^S\xba\xa5\x93\xc7\x0a/\xac\xd3\xd0)\
+\xd6|\x8f\xab\xdb\x0cM\xe3V\xc22\x07\xd6\x0ah\xd5\
+\xd3q\xaf\xcb\x83\xde\xbf2\x9b\xb0\xcc\x815\x0d\xe9S\
+{\xcf\xcb\x1b\x82\x94\xf7\x10a\x99\x03\xeb.\xfd\xdd\x1a\
+\xf2\xcb\x07Hym\x08\xcb\x1cX\x97#}Z\xe1y\
+y?#[\xb1\x15?CX\xa6\xc0\xfa\x19Y\x8bU\
+&\xd3\xfb\x02c\x90y\x5cKX\xa6\xc0\x82\xf6\x87\xec\
+\xacP\xe0\xc3\xae<\x9fMX^\x07z)\xd3(\x85\
+\x02\xdfse\xb1\x1fay\x1dhw\xf5\xc5\x0a\x05\xfe\
+\xe8\xca\xafV\xc2\xf2:\xd0\xb3\xf5\x87\x15\x0a\x0c\x22\xfb\
+\x83T ,C`e\x22\xbb\xe7\xd5T)1\x16\x99\
+\xc8\x83\x84e\x06,\xe8Q\xd5\xdbUJ\x84\x1e\x5c]\
+BXf\xc0\x9a\x87ti\xa2J\x89\xef#%\xbeH\
+Xf\xc0JD\xba\xb4L\xa5\xc4\x9dn\xacC$,\
+\x8f\xd3\x17hR\xc4q\x9d\x1a\x91W\x0a\xb4#,3\
+`\xb5\x00\x9aT_\xa9\xc6\x0e@\x8dU\x09\xcb\x0cX\
+\xe5\x80&uW\xaaq(Pc\xe0$a\x99\x00\xeb\
+\x88\x1f\x9a4\xd5\x85\x07*\x08\xcb\xdb\xfc\x13i\xd2t\
+\xa5\x22\xff\x86\x14\xf9\x01a\x99\x00\x0b\xda\x9cx\x99R\
+\x91\xd0\x06\xa9\xe3\x09\xcb\x04X\xcf\x22M\xda\xa7Td\
+\x06\xb2\xcf\xed\x00\xc22\x01V\x7f\xa0G%\x83ZU\
+\x22k\x11;\x11\x96\x09\xb0\x90\xdd\xd4\x9b\xaaU\xd9\x19\
+\xa8\xb2!a\x99\x00\x0by\x06\xa6\xb7Z\x95\x0f!\x8b\
+\x5c\x09\xcb\x04X\xc8\x1b\x98\x9fU\xab\xf2\x15d*\x8f\
+\x13\x96>\xac\xa3H\x8ff\xa8\x95\x09\xbd\xf2n#a\
+\xe9\xc3Z\xe3\xc6\x8a\x14\xf9\xacG\xca\xfc\x9c\xb0\xf4a\
+}\xec\xc25m\xd3\xee\x0f\xbcAX\xfa\xb0^Cz\
+tD\xad\xcc r!k\x0ca\xe9\xc3B\xdeHq\
+QP\xafC\xd5\x80:\x87\x11\x96>,dc\x84\xea\
+\x8a\x1dB\xde\x9c\xd1\x87\xb0\xf4a\xdd\x0e\xb4\xa8\xa5b\
+\x87\xba\x02u\xdeHX\xfa\xb0\x90\xfd\xf2z(v\xe8\
+~\xa0\xce\xc6\x84\xa5\x0f\x0byM\xe1\x03\x8a\x1dz\x06\
+\xa8\xb32a\xe9\xc3\xba\x04hQ\xa2b\x87\x90K\xef\
+Er\xfd\x91\x919.\x8f\xf4\x09\xfb\x0f\xf7\x1bg#\
+\x7f/\x94\xb0\xb2\x90-\x82\x92\x14;\x04m\x92u\x0c\
+\xfa\xd3\xdc5Y ?\xbb\xb04\xd3\x93|\x83\x14\xba\
+\x8d\xb0\xb4a\xedD\xe6+Y\xb1C\x1b\x90B\xd7\x12\
+\x966\xacu\xc8|\xadT\xec\x10\xf4?`\x19ai\
+\xc3\xfa\x072_\x9b\x15;\x94\x82\x14\xfa\x11ai\xc3\
+Z\x84\xcc\xd7~\xc5\x0ee \x85\xce$,mX\xb3\
+\x90\xf9:\xa9\xd9\x22d\xb3\xa5\x97\x09K\x1b\x16ry\
+(2\xa8\xd9\x22\xe4\x82\xdb\x18\xc2\xd2\x865\xd6\xf9Z\
+r\x8f\x82\xac\xcd\x7f\x8c\xb0\xb4a!\xef\xfd\xaa\xae\xda\
+\xa2\xa6@\xa5C\x08K\x1b\xd6\xa3\xc0t5PmQ\
+;\xa0\xd2{\x09K\x1b\xd6\x83\xc0t]\xa3\xda\x22d\
+\xddL_\xc2\xd2\x86u\x0f0]\x1dT[t\x07P\
+iO\xc2\xd2\x86\xd5\x07\x98\xae\x1e\xaa-\x1a\x08T\xda\
+\x89\xb0\xb4a\xf5\x00\xa6+N\xb5E\x83\x81J\xdb\x11\
+\x966\xac\x8e\x8e\x97\x92{\x15\xe4!\xfbV\x84\xa5\x0d\
+\xebz`\xba\xeeRm\xd1p\xa0\xd2&\x84\xa5\x0d\xab\
+\x150]\xf7\xa8\xb6\x08y\x89\xc0\x15\x84\xa5\x0d\xab9\
+0]\x03T[\xf44P\xe9\xe5\x84\xa5\x0d\x0b\xb9\x9e\
+\xfd\xa0j\x8b\x12\x81Jk\x13\x966\xac&\xc0t\xc5\
+\xab\xb6h\x0cPiM\xc2\xd2\x86\x85<\xfd\xf5\x88j\
+\x8b\xc6\x89\xdd\xd5$,\x81\x5c\x09LW\x82j\x8b&\
+\x02\x95V%,mX\xf5\x80\xe9\x1a\xa1\xda\xa2)\x8e\
+\x9fX%,\x0fS\x07\x98\xae\x91\xaa-B\x96$V\
+\x22,mX\xb5\x80\xe9zN\xb5E\xd3\x81J\xcb\x13\
+\x96\x9f`%\xaa\xb6\xe8u\xa0\xd2\x8a\x84\xe5\xa7\xaf\xc2\
+gT[\xf4*Pi\x15\xc2\xf2\xd3\xc9\xfb\x93\xaa-\
+B^\x00V\x8d\xb0\xb4a]\xe1\x97\xfdx\xb2_\x04\
+*\xadAX\xda\xb0\x90\x0b\xa4\x0f\xab\xb6h<Pi\
+\x1d\xc2\xd2\x86\x85\xdc\xd2\x19\xaa\xda\xa2\xe7\x81J\xeb\x11\
+\x966\xac\xab\x81\xe9\x1a\xa4\xda\x22d{\xe7\x06\x84\xa5\
+\x0d\x0b\xd9\x8c\xf8~\xd5\x16!\xefUlLX\xda\xb0\
+Z\x02\xd3u\xb7j\x8b\x9e\x02*mJX\xda\xb0\x90\
+\xa5\xc9w\xaa\xb6\xe81\xa0\xd2\x16\x84\xa5\x0d\xab\x030\
+]\xbdU[\xf4\xb0\xd8\xa3\xb5\x84%\x90[\x80\xe9\xea\
+\xa5\xda\xa2\xa1|\xfc\xcbO\xb0\x90\x07V\xbb\xaa\xb6h\
+\x10Pig\xc2\xd2\x86\x85<b\x7f\x83j\x8b\x90\x97\
+\xa2\xdfFX\xda\xb0\x90MA\x9a\xa9\xb6\xa8\xa7\xd8\x83\
+j\x84%\x10d\x1b\xa3z\xaa-\x8a\xe5\xfeX~\x82\
+\x85<\xadWE\xb5E\xc8\xa3\xb5\x09\x84\xa5\x0d\x0by\
+\xf6\xa5\xa4j\x8b\x90\xc7>\x9e#,mX\xc8\xf2\xb9\
+@\xa6f\x8b.\x03*\x9dDX\xda\xb0f\x03\xd3e\
+\xa5j\xb6\xa8,P\xe8k\x84\xa5\x0d\x0bz\x81\xc0\x1e\
+\xcd\x16\x15\x01\x0a}\x97\xb0\xb4aA\xaf<\xd9\xa8\xd8\
+\xa1_\x91B\x17\x10\x966,\xe8%M\xdf)v\xe8\
+\x10R\xe8R\xc2\xd2\x86\xb5\x03\x99\xaf%\x8a\x1d\xda\x86\
+\x14\xba\x81\xb0\xb4aA/\xd5\x9a\xab\xd8\xa15H\xa1\
+\xfb\x08K\x1bV\x109'\x9e\xac\xd8\xa1\xcf\x10X\xe9\
+\x84\xa5\x0d\x0bz\xf7\x91\xe6\x83\x853\x80:Ke\x13\
+\x96:\xacF>Y\x9b\x8c\xdc\x22\xa8IX\xfa\xb0n\
+\x04&\xac\xa3b\x87\x90\x05\xa4\xcd\x08K\x1fVo`\
+\xc2\xaeR\xecP\x1f\xb9\xff\x00\x84%\x91x\xb1\xfd\xcc\
+\xdc\xcd\x0d@\x9dw\x10\x96>\xac\xd1\xc0\x84Ed\xe8\
+u\x08\xd9d\x22\x9e\xb0\xf4a%!?\xe3\x15\xdf6\
+\x1e\x0d\x94\xf9<a\xe9\xc3\xfa\x04\x81\xb5F\xad\xcc\xf4\
+\x80\xd8=h\xc2\x12\xc9\xf7\x08\xac\xc5je\xeeF\xca\
+\xfc;a\xe9\xc3:\x86\xcc\xd8\xabje~\x87\x94\xb9\
+\x95\xb0\xf4ae_\xec\x8b\x1d\xb2\x90\x05\x89\x81S\x84\
+e\x00\xac\xcb\x81)\xeb\xa2Ve\x22Pe\xc5l\xc2\
+2\x00\x16r\xe9\xfdr\xb5*\xef\x14\xdbk\x86\xb0\x84\
+\x82<a\x5c\xf4\x8cV\x95\xc8\xc3_\xdd\x08\xcb\x04X\
+#\x05O\x8b\xddKy\xa0\xc8\xc1\x84e\x02\xacw\xfd\
+p\xbd\xe1g\xa4\xc8\xb1\x84e\x02\xac\xe5\xc8\x9cMQ\
+*r%R\xe4|\xc22\x01\xd6Qd\xce\x86(\x15\
+\x09=\xfe\xb8\x81\xb0L\x80\x95]\x0e\x98\xb3?*\xd5\
+\xf8\x1cr\xab\xfc\x14a\x19\x01\xab\x85\xe0%\x22\xb7\xd2\
+Wn\xfd(a\x990i\xd6N\x9d\x1a\xebJ\xaes\
+%,\xfd\xaf\x19\xeb}\x95\x12\x7fA\xd66\x0c#,\
+3`}\x80\xc0z\x5c\xa5\xc4/E\xef\x94\x13\x96L\
+\xb6\x22\xb3\xa6\xb3\x0f)\xf2\x88\x8e\x95LXf\xc0\xca\
+B\xd67\x94\xce\xd2(1\x0e\x81\xb5\x97\xb0\xcc\x80\x95\
+\xdd\x1c\x99\xb6M\x1a\x15\xd6\x00\x0a\xac\x90MX\x86\xc0\
+\xfa\x13\x02k\xa6B\x81G\x90\x02;\x10\x96)\xb0^\
+2\xfd\xda;\xb4o\xc3\x93\x84e\x0a\xace\xc8\xbc5\
+R(0Q\xf6\x82\x08a\x09\xe5$\xb2\xe3L\xe0\x80\
+\xf7\x05^\x87\xc0\xdaAX\xa6\xc0\xcan\x8cL\xdc\x1c\
+\xcf\xcbK\x8b\x02\xca\x8b\x0e\x12\x961\xb0\xeeC`\xdd\
+\xebyy\x9f#\xe5\xc5f\x13\x961\xb0\xa6#3w\
+i\xd0\xeb\xf2\x86\x0b\xdf\x1a ,\xa9@;\xdcZ+\
+\xbd.\xaf\xbe\xe4*?\x08\xd6<\xc2\x82\x92Y\x12\x99\
+\xba\xa7=\xae\x0e\xba\xe5\x148,\x09k6aaA\
+^\xe0\x0b\xbe\x22\xde\xe3\xcbl\x0d\xb3%a\xcd ,\
+,c\xa1\xef\xc2\x1f\x0c\xbe\xd80D\x14\xd6\xeb\x84\x85\
+\x05z\xa0\xc2z\xc6\xd3\xdavG\x08\x9fbe\xcf\x0d\
+\xfb\xaf\xbfBXX2J!\x93W\xdb\xd3\xdf\x85\xe3\
+\xa1S\xacC6F\x08\x7fA\xda\x14\xc2\x02\xd3\x11\xfa\
+\xc8\xfa\xd6\xcb\xd2\xae\x96>\xc5\x02^T5\x81\xb0\xc0\
+@+\xe9\xac~\x1eV\xf6/K\xfa\x14\x0b\xb8\xc7\xfd\
+\x02a\x81Y\x0bM_\xf1\xa3\xdeU6\x00\xaa\xecC\
+;C$\x87\xfd\xe7G\x11\x16\x98`5h\xfe&y\
+V\xd8q\xe8\xec\xafx\x9a\x9d1\xbe2\xf6\x12\x9e\xff\
+ae\x0f\x84`U\xf7l\xd7\x99\xa9P]\xddl\x8d\
+\xf1\xcf\xb0\xff\xfe\xa3\x84\x85\xe6ch\x02\xadw\xbc\xfa\
+\xb9\xfa\x07\xa8\xac7m\x0d\xb2*\xec\xbf\x7f7a\xa1\
+I+\x06\xcd`\x03\x8f\x9e\xa9\x80\xb6\xc2\xb1\x22\x0e\xd9\
+\x1a$\xfc\xfd}\xbb\x12\x16\x9cN\xd8G\x967w\xcd\
+2\x1b@E\xb5\xb67\xcaF\xe9\x01\x0a5\xac71\
+X\xb5N{Q\xd4\xdbXQ\xe3\xed\x8d\xf2S\xd8\x03\
+\xd4#,8)\x17a\x93\xe8\xc5K1OU\xc7j\
+\xdal\xf3\xd0\x8d\xdf\x13\xc5\xcf\xb0\xb2\xbb`\x93X\xd6\
+\x83\xd7\x9f\x8c\xc6Jje\xf7\x0b7\xec\x9d!\x22\xb3\
+\x08K\xf8<\xd9\xb2\xe2\xc4+\xda\x82\xfd\xa0\xb0\xa6\xdb\
+\x1d\xa8t\xd8C\xa4\x10\x16~)\xb28(Kz\x9d\
+nV[\xac\x9e\x8bS\xed\x8e\x14\xfe7\xeeV\xc2\xc2\
+\x13\x07\xc2\x8a\xde%[\xcf\xf3`=\xfdm\x8f\x14\xfe\
+SJ_\x11\x16\x9e\xcf\xc0\x89\xb4Z\x88\xfe2\x5cV\
+\x04,\xc7\xfe\xa4\x87\xbf\x94\xf0m\xc2\xb2\xf1\xd5S\x03\
+\x95u\xbf`5\xbb\xab\x80\xc5\xd4\xb1\xbfJ\xac\xab\xa1\
+k\x1c\x0b\x08,\xf4G\xd8\xff\xe69\xb1Z\x8e]\x89\
+\xd62\xd6\xfe`w\x85=\xc8\x1d\x84e#{\xd1/\
+\x1f+0]\xa8\x94\xb4k\xd1RJ9\xf8\xc1\xf6\xb0\
+\xb1\x0f\x92\x14\x0cX\xd9\xdd\xe0\x8f\xac\xc04\x91BR\
+\xdb\xc2\x95\x0cw0\xdc\xa4\xb0G)\x9aNX6\x92\
+l\xe1\x19+P\xc7\xd1\xe6p\x19Q{\x1d\x8c7/\
+\xfcqV\x13\x96\x9d4\xb5!\xeb\x8e_\xdd\xaebs\
+}\xbc\x0aG\xbf#\x80\x87\x94&\x13\x96\x9d\xcc\xb6\x01\
+\xcbj\xbd\xcf\xdd\x22\xe6\x97\xc4k\x88\xd8\xe2\xe8\xe42\
+\xfc\x81\xba\x10\x96\x9d\x80\xeb\xea~\xbbR:\xd7\xc5\x12\
+N\x0c\x08\xd8(\xe1VGcf\x16\x0d\xff7\xc2)\
+\xc2\xb2\x93\x17-[\xe9{\xc8\xad\x02\xbe\xaaeg\xfc\
+\xc8\xf5\xceF\x05\xfe?\xcd%,;9Y\xd9\x9e\xac\
+2/\xb9\xb2\x0a~w\xef\x80\xad\xe1\x07:\x1c\x17\xb8\
+\xb8\xd1\x81\xb0le\xaae3\xf5\xdfs\xbc\xa4\xe4\xc8\
+S%\xec\x8d]\xda\xe9\x07&\xf2:\xa1e\x84e'\
+\xe95,\xdb\xb4f:\xbaw\xb8\x7fxI\xbb#\x8f\
+sz\xd4c\x80\xc1\x9a\xfcJXv\xf2\x96e?\x95\
+\x12\xb6\xdb\x1c5kI\x5cQ\xdb\xc3\xd6t|B\x0d\
+=\xa3\xd4%\x93\xb0\xec\xfcB\xba\xc2\x81,+\xe2\xfa\
+W\xf0]\x95\x83+\x1f\xab\xe1dP\xe7\xfb\xec\xed\x80\
+\xc6\xeb\xfe3a\xd9\xc8\xe7\x96\xb3D\xb6\x1d\xbd\x1c\xf8\
+?}l\xc1\xa0\x1a\xce\x06\xbc\xc9\xf9\xe67\xc1\xd2\xd0\
+\x88\xb5?!,\x1b\xe9i9N\xd9N\xcf.:\x18\
+\xfa\xc3q\xfd[\x83\x9aF:\x1d\xab\xccn\x17\x8e\xb9\
+58h\xdb\xf9\xa7\x08\x0b\xcd\xce\x12\x96+)\xdf\xe6\
+\xde?\xcf\xf9\xfa\xa7\x5cn\xdb\x1e\xdd\xf0\xe9\x1bO\xf4\
+l\x10\xe5\xca0o\xb9q\xcc\x03q\xcf}^^\x9d\
+\xf3\xd02R\x0el\xdf\xb0z\xe9\x92\xf7\xff\x9a4m\
+\x5cb\xc2\x90\x01\xbd\xe3b\x7f\x22\xac\xfff\xb4\xe5j\
+J]\xd6\xf0\xda\xd8\x1eqqw\xc6\xc5\xc5\xdd\x1c\xdb\
+\xacn\xa5(7\xff\xba;\xf7X\xa6\xd9\x1a;P\xa5\
+e\xb7\xb8?\x0d\xb87\xae{l\x9b\x98z\xb5\xca\x97\
+\xcd\xf5_}KX\xbf]rh`\xf9&\xd1\xee<\
+\x85\xb6B\xb0\xc4\xc5\x84\xf5[V\x17\xf5\x0d\xac\xf7\xdc\
+9\xe2\x8c2r%\xce!\xac\xb3\x19\xe5\x17W\x0f\xba\
+u\xc4\x9d\xe5jL\x22\xac\xdf\xff\x03\xb7\xf0\x87\xab6\
+\xae='4Q\xae\xc8\x09\x84\xf5{6\x95\xf4\x83\xab\
+\xcb\x5c[T\x91\xbdF\xae\xca\xa7\x09\xeb\x9c,\x0c\x98\
+\xef\xaa\x98\x8bo\xf5\xc9*/Vf<a\x9d\x9b\x04\
+\xf3a\xcdr\xf3xo\x11+\xb3?a\x9dwY\xfc\
+&\xd3]\x8dq\xf5xg\x88\xd5\xd9\x83\xb0\xce\xcb\xb1\
+\xfaf\xbbz\xd2\xdd\xc3E\xf7\x07\x0b?7\x10\xd6\xf9\
+\xd9}\x99\xc9\xae\x5c?s\xe9$Ui\x0ca]\x90\
+\xad\x97\x98\xeb\xaa\xbf\xeb[\xa0\xcd\x91*\xb5\x0ea\xe5\
+\xb8\x02_\xdaTW}\xdd_lw*Z\xa8\xd6\x8a\
+\x84\x95#\xcb\xa3\xcdt5Xb\x11g\xbcP\xb1Q\
+\x84\x953\x1b\xab\x1a\xc8*\x90(r\xac?E\x0a\xd5\
+\x9bNX9\xb3\xa3\x8eq\xae\xa2\xa4\xf6\x98\xef%T\
+\xf0!\xc2\xca%\xfbcL[(\xf3\x0f\xb1SJ\xa1\
+\xbb\x0d[\x08+\xd7\x93\xda~F\xb9j\xb4Y\xeeP\
+o\x93)y\x15a\xe5\x9e)E\xccq5P\xf2\xa9\
+\xbe-2\x17I\xbf$\xac<\xb2\xb4\x8a!\xac\xca\x08\
+\xef\x9c0B\xa4\xea\x05\x84\x95W\x8e\xden\x84\xab\xe6\
+\xdb\x85\x8f\xf3T]\x89\xb2\xdf&\xac|\xaeK\x1bp\
+E\xab\xc8.\xf1\xc3\x5c)\xf1e8\x99\xb0\xf2\xc9\xbe\
+\x1e\xfa\xb2z\xcb\x1f\xe6K\x02e\x8f\x22\xac|\x93\xdc\
+P]\x96\x07O ?\xe8~\xd5\xc3\x09+\xff\x9c\x99\
+\xa8}\xef\xb0\xb6\xfcN/\x19]\x5c\xaf\xfa~\xc2\x0a\
+\x95\x83\x0f\x15\xd7\x955B\xfe\x18\xd3\xbb\xbb]\xf4m\
+\x84\x15:\x07ti]\xb4\xd1\x83\x0f\xe6\xbb].\xba\
+\x03a\x85E\xeb\x912\x8a\xb2\xae\x0bzp\x88\x13\xdd\
+\xbd\x1d}\x0da\x85\x97\x13I\x8d\xf4d\xbd\xe5\xc5\x11\
+.w\xf5\xd6\xfb\x95\x84\x15\xfe/\xc4^\x17)\xc1*\
+\x7f\xc4\x8b\xe3K\x1d\x18\xe1^\xc9U\x09\x0bH\xca\xf4\
+\xeb#Td\xf5\xf7\xe6\xf8V\xb6t\xad\xe2R\x84\x85\
+e\xcf\x84\x96\x0a\xb6\x02K\xbd9\xba\xe0GM\xdc\xaa\
+8\x93\xb0\xd0\x1c~\xb7\x8f\xe7\xf7z\xea{\xb5\x223\
+\xf8Y'WVh\x95J%,\x1b\xc9\xfcv\xcc\xcd\
+\xde\xfeN|\xce\xbb\x83\xdb\xfalM'\x95F\xd4\xb9\
+u\xd4\xc2\xed\xc1l\xc2\xb2\x99\xacu\xd3\xfa\xd6\x8f\xf4\
+\x0aV\xb1\x1f=<\xb4\xe0\xf2'm\xdd\xca*{\xdd\
+\x90\xe9+N\xaa\xcf\x8c\xcfa\xfd\x7f\xd2VN\x1f\xd2\
+\xb6\x22:\x01\x17\xc7\xe2\xf3\x16\xeb\xf1\x91\xed\x9du\x7f\
+\xe3\xb0\xf7\xa2\xbb\xa8^\xb7\xe1IK\xf7\x192)\x05\
+\x01\xd6\x7fr|\xed\x82??\xd0\xb1\xd1%a\x9c\x9d\
+Tn\xd3o\xd2\x8a\x8c\xec\x0d\xf8\xfe\x81\xb3\xbc?\xae\
+3\xeb\xde}\xbcC\xb5|~\xacDT\x89\xe9:x\
+\xf2\xe2m\x19FMG\xc1\x81u\xf6\xd4k\xff\xdaO\
+\xdf\x9966a\xd0\x9d\xddcccbb\xae\xaaU\
+\xabV\x83\x98\x98\x16\xb1\xb1]\xee\x8a\x1f9\xf9\x9d\x8f\
+\xd7\x9d\xfd\x9e\x18\x0e\xc3\xba$E\xe9\xa82\xf6\xad^\
+\xf4\xfa\xa8\x07o\x8f\xeb\x14\xdb&\xa6Q\xad+c\xda\
+w\x8a\xbb\xe7\x81\x11S\x17.\xdf\x9ba\xe44\x14<\
+X\xc8w(\xfe\x96\xc4\x81\xd9\x0ca\x85\xcc\xfb\xf8\xcf\
+\xadoh\x86\xb0B\x07\xdfZ\xb6\xe1\x19\xa2!\xac\x90\
+\xd9V\x0c\x965\x9eh\x08+t\x12aX%\xb6S\
+\x0da\x85Lz=XVG\xaa!\xac\xd0\xb1\xf12\
+\xbb\xf9dCX\xa1s+\x0c\xab\xca/tCX!\
+\xb3\x07\x7feA<\xdd\x10V\xe8L\xc0/f-g\
+\xd7\x08+d2\xf0uu\x8d3\xd86\xc2\x0a\x99\xaf\
+\xf1Uu\x93\xd95\xc2\x0a\x9d\xfe\xf8\xda\xcc=\xec\x1a\
+a\x85\xccQ\xfcEI=\xd95\xc2\x0a\x9dW\xf1\x8b\
+Y\x1f\xb1k\x84\x152Y\xad`X\xd5O\xb0m\x84\
+\x152\xab\xf1u\xf3\xc3\xd95\xc2\x0a\x9d\xc1\xf86\x7f\
+k\xd85\xc2\x0a\x99T|\x1b\xdd\xe6Yl\x1ba\x85\
+\xccL\xfc\xfc\xfd/\xec\x1aa\x85N{\x18V\xe9}\
+\xec\x1aa\x85\xccF\xfca\xb0\xde\xecZ^YEX\
+g\xf38\xfee\xf8)\xbb\x96{\xd6D\x13\xd6\xd9\xa4\
+\xd5\x80a\xd5\xf9\x95m\xcb\xc3\x15a\xfd\x9e\x05F\xee\
+y\xebSW\x84uN\xf0\x0d\xb1\xbd\xd8\xf3\xd6\x9f\xae\
+\x08\xeb\x9c\xec,\x01\xcbj\x1bd\xdbruEX\xe7\
+f\x94\xa1{\xde\xfa\xd0\x15a\x9d\x9b\xd3\xf8\xc3`\xd1\
+\x87\xd9\xb6\xf3\x5c\xfd\xb6\x04\x89\xad87_\xe0\x1fY\
+w\xb3k\xb9\xb9\x22\xac\xf3\x83\xbfD7\x90\xcc\xae\x9d\
+\xcd\xda\xdf\x97L\xb2\x19\xe7\xe5\x00\xbe\xab\xe9\xe5\xa7\xd8\
+\xb6\x9c\xae\x08\xeb\x82L2z\xcf[\xff\xb8\x22\xac\x0b\
+b\xe3a\xb0\xa8\xcdl[\x0eW\x84ua\xbe\xc1\x1f\
+\x06k\xc7\x8bY9\x5c\x11V\x8e\xdc\x03\xc3j}\x90\
+]\xcb\xfe\xd7\x05/t`G.\xcc\xd1\x0a\x18\xabk\
+\x17\xb1g9>\xaf\x08+\x97\xbc\x86l\xe3\xd0u\x15\
+\x1b\x96\x9b+\xc2\xca\x99\xack\xc2>m\xef\xf7#\xdb\
+\x95\xbb+\xc2\xca%\xeb\x8a\x84\xb74y\xd8~\xf6*\
+/W\x84\x95[\x86\x86\xc1\xaar\x22\xf7_\xcb\xc7\x15\
+a\xe5\x96\xd4KC\xae\x1d\x9d\xc2\xeb\xed\xf9\xba\x22\xac\
+\x5c3+\x7fV133\xd9\xa3\xfc]\x11V\xeei\
+\xcf\xeb\x0b\xce\x5c\x11V\xee\xd9\x12\xc5\xeb\x0b\x8e\x5c\x11\
+V\x1ey\x82\xd7\x17\x1c\xb9\x22\xac<\x92V\x93\xd7\x17\
+B\xe7\xfb\xbc\xb7\xaccs\xf2\xc8B^_\x08\xed*\
+\x9f\xbb_\xecN^\xe9z\xc1\xf5\x85t\xb6\x04pE\
+Xyf\xd7\xc5\xbc\xbe`\xdf\x15a\xe5\x9d\xd1\xbc\xbe\
+`\xdf\x15a\xe5\x9d\xd3\xf5\xffs}a5[\x81\xbb\
+\x22\xac|\xb2\x84\xd7\x17l\xbb\x22\xac\xfc2h\xe4\x11\
+6\xc1\x9e+\xc2bD\x5c\x11\x16#\xe2\x8a\xb0\x18\x11\
+W\x84\xc5\xa0Y\x17\xd6\xd3&\xec\x13#\xe1\x8a\xb0\x18\
+\x11W\x84\xc5\x88\xb8\x22,F\xc4\x15a1\x22\xae\x08\
+\x8b\x09??T\xb6\x08\x8bQuEX\x8c\x88+\xc2\
+bD\x5c\x11\x16#\xe2\x8a\xb0\x18\x11W\x84\xc5\x84\x93\
+M\xa8+\xc2bD\x5c\x11\x16#\xe2\x8a\xb0\x18\x11W\
+\x84\xc5\x88\xb8\x22,F\xc4\x15a1\x22\xae\x08\x8b\x11\
+qEXL\xbe\xae\xaaX\x84\xc5\x18\xe4\x8a\xb0\x18\x11\
+W\x84\xc5\x88\xb8\x22,F\xc4\x15a1\x22\xae\x08\x8b\
+\x11qEXL\xae\xd9\xec\xd0\x15a1\x22\xae\x08\x8b\
+\x11qEX\x8c\x88+\xc2bD\x5c\x11\x16#\xe2\xea\
+\xdfK\xb1\x10m(`\xee\x87\x00\x00\x00\x00IEN\
+D\xaeB`\x82\
+\x00\x00\x01\xdc\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00O\x00\x00\x00O\x04\x03\x00\x00\x00X\x1a\x85\xb5\
+\x00\x00\x000PLTE\x00\x00\x00\xff\xff\xffA\xcd\
+RP\xcaNA\xcdRA\xcdRF\xccPH\xcbP\
+B\xccQI\xcbPE\xccQJ\xcbOE\xccQD\
+\xccQC\xccQA\xcdR\x000]\xbe\x00\x00\x00\x0f\
+tRNS\x00\x00\x186Oc\x9d\xab\xae\xb8\xc9\xcd\
+\xd6\xe9\xf0\xbb\x00_o\x00\x00\x01LIDATH\
+\xc7\xc5\xd6\xbdM\xc4@\x10\x86\xe1+\x01:\x98\x80\x8c\
+\x0aH\x11\xf9\x227@\x09HT\x80\xdc\x05\x11\x92K\
+\xa1\x01$\xebJ\xa0\x00\x12K\xd6\xc9\xd6\x10\x9c\x7f\xd6\
+\xbb\xb3;o\xc6\xc4\x8f>\xe9\xee\xbe\x9d\x9b\xd3)\x9b\
+\xd0\x9f\xd8\x84\xf9\x11B\x1d\x04Bm(d\x91Aa\
+dP\xd5Q \xd4\x96B\x12\x19\x14F^\xe1E \
+\xd4\x8eB?r\x81\xfaE\xe1,\x10jO\xa1W\xb7\
+\x0dz\xdd\xd8\xa1\xd3\x8d\x08\xd6##X\x8f\x8ca\xd4\
+\x8d\xbb\xa7t^\x22\x18u\xe3U\xab\xb3G~\xd6\xe1\
+\x1e\xe9\xc1\xad\x1b\x1e\xdc\xea\xe6\xc25\xd2\x85k\xdd|\
+\xb8\xd4\xcd\x87K\xdd\x00\xbcF\x02\xa8?\x02\xa16\x14\
+\x0e\x02\xa16\x14\x8e\x02\xa1\xbeS\xf8\xfb\x7f\xf0\x19\xc2\
+3\xfc\xd43\xfd\xc2{\xf8\x13N\xb4\x14\x1d\xac\xd9\x85\
+\xf6\xb1\x83\x0d\x1f\xe9\x9bi\xe1+\x1c\xe9\xbbn\xe1\xa6\
+\x18\xe8\xee\xd9v\xee\xc3G:\xdff\xa0\xb3\x9a\xabK\
+<\x1c\xeb\xb5\xcem:7!\xdbO>\x8c\xff\x0dk\
+p\x12\x08\x0fG@\x05\x1eo\x80\x0a<^\x15e\x98\
+\x9c>e\x98\x5c>E\x98\xdeRE\x98\x9eR%\x98\
+\xb5\xa1\x04\xb36\x14`^\xaf\x02\xcc\xebe\xc3\xb30\
+h][&\xb4\x8e-\x0bN\x02\xa1yc\x1a\xd0>\
+1sx\xfff\xb9?\x9e\xd1\xe7wR\xc2\xd3\xb8\x00\
+\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x13H\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x01\x90\x00\x00\x01\x1e\x08\x03\x00\x00\x00\x93\xdb\xb3V\
+\x00\x00\x00\x09pHYs\x00\x00\x1a]\x00\x00\x1a]\
+\x01\x87\x7f\xcb\xb2\x00\x00\x00\x19tEXtSof\
+tware\x00www.inksca\
+pe.org\x9b\xee<\x1a\x00\x00\x02\xfdPL\
+TE\x00\x00\x00\x00\xff\xff\x00\xff\x80U\xff\xaa@\xbf\
+\x803\xcc\x99+\xd5\x80$\xdb\x92 \xdf\x809\xe3\x8e\
+3\xe6\x80.\xe8\x8b+\xd5\x80'\xd8\x89$\xdb\x803\
+\xdd\x880\xdf\x80-\xe1\x87+\xe3\x80(\xe4\x86&\xd9\
+\x801\xdb\x86.\xdc\x80,\xde\x85+\xdf\x8a)\xe0\x85\
+'\xe2\x89/\xe3\x84.\xdb\x89,\xdc\x84+\xdd\x88)\
+\xde\x840\xdf\x87.\xe0\x83-\xe1\x87,\xdb\x83+\xdc\
+\x87)\xdd\x83/\xdd\x86.\xde\x83-\xdf\x86,\xe0\x83\
++\xe1\x86*\xdb\x82.\xdc\x85-\xdd\x82,\xde\x85+\
+\xde\x88+\xdf\x85*\xe0\x87.\xe0\x85-\xdc\x87,\xdd\
+\x84+\xdd\x87+\xde\x84*\xdf\x86.\xdf\x84-\xe0\x86\
+,\xdc\x84+\xdc\x86+\xdd\x84.\xde\x86-\xde\x84-\
+\xdf\x86,\xdf\x83+\xe0\x85+\xdc\x83.\xdd\x85-\xdd\
+\x83,\xde\x85,\xde\x87+\xdf\x85+\xdf\x87-\xe0\x85\
+-\xdd\x86,\xdd\x85,\xdd\x86+\xde\x84+\xde\x86-\
+\xdf\x84-\xdf\x86,\xe0\x84,\xdd\x86+\xdd\x84+\xde\
+\x86-\xde\x84,\xde\x85,\xdf\x84+\xdf\x85+\xdd\x84\
+-\xdd\x85-\xdd\x84,\xde\x85,\xde\x86+\xde\x85+\
+\xdf\x86-\xdd\x86,\xdd\x85,\xde\x86+\xde\x85+\xde\
+\x86-\xdf\x85-\xdf\x86,\xdf\x84,\xdd\x86+\xdd\x84\
++\xde\x85-\xde\x84,\xde\x85,\xdf\x84,\xdf\x85+\
+\xdf\x84+\xdd\x85-\xdd\x84,\xde\x85,\xde\x84,\xde\
+\x85+\xdf\x86-\xdf\x85-\xdd\x86,\xdd\x85,\xde\x86\
+,\xde\x85+\xde\x86-\xde\x85-\xdf\x86,\xdf\x85,\
+\xdd\x85+\xdd\x84+\xde\x85-\xde\x84,\xde\x85,\xde\
+\x84,\xdf\x85+\xdf\x84+\xdd\x85-\xdd\x84,\xde\x85\
+,\xde\x84,\xde\x85+\xde\x86+\xdf\x85-\xdd\x86,\
+\xdd\x85,\xde\x86,\xde\x85+\xde\x86-\xde\x85,\xde\
+\x85,\xdf\x85,\xdd\x85,\xdd\x85+\xde\x85-\xde\x84\
+,\xde\x85,\xde\x84,\xdf\x85,\xdf\x84+\xdd\x85-\
+\xde\x84,\xde\x85,\xde\x84,\xde\x85,\xde\x86+\xdf\
+\x85-\xdf\x86,\xdd\x85,\xde\x86,\xde\x85,\xde\x86\
+-\xde\x85,\xde\x85,\xdf\x85,\xdd\x85,\xdd\x85+\
+\xde\x85-\xde\x85,\xde\x85,\xde\x84,\xde\x85,\xdf\
+\x84+\xdd\x85-\xde\x84,\xde\x85,\xde\x84,\xde\x85\
+,\xde\x86+\xde\x85-\xdf\x86,\xdd\x85,\xde\x86,\
+\xde\x85,\xde\x85+\xde\x85,\xde\x85,\xde\x85,\xdf\
+\x85,\xde\x85,\xde\x85-\xde\x85,\xde\x85,\xde\x85\
+,\xde\x85,\xdf\x85,\xdd\x85-\xde\x84,\xde\x85,\
+\xde\x84,\xde\x85,\xde\x86,\xde\x85-\xdf\x86,\xdd\
+\x85,\xde\x85,\xde\x85,\xde\x85+\xde\x85,\xde\x85\
+,\xde\x85,\xdf\x85,\xde\x85,\xde\x85+\xde\x85,\
+\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xdd\x85-\xde\
+\x85,\xde\x85,\xde\x84,\xde\x85,\xde\x86,\xde\x85\
+,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\
+\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\
+\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85\
+,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85\xbf\
+\x5c\xdf:\x00\x00\x00\xfetRNS\x00\x01\x02\x03\x04\
+\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\
+\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !\x22#$\
+%&'()*+,-./01234\
+56789:;<=>?@ABCD\
+EFGHIJKLMNOPQRST\
+UVWXYZ[\x5c]^_abcde\
+fghijklmnopqrstu\
+vwxyz{|}~\x7f\x80\x81\x82\x83\x84\x85\
+\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\
+\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\
+\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\
+\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\
+\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\
+\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\
+\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\
+\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfeV\xf3|\x8f\x00\x00\x0e\
+\xc2IDATx\xda\xed\xddy|NW\x1a\x07\xf0\
+\x9b}A\x88\x18\xc5\x08\x95\xc6\xbe7(e*\x94Z\
+\x83\xb6t\xaa\x22cmP\x8dA\xd1N-E\x8d)\
+UK-U\xc5\xd8F\xa2C\xec%j,\xa1*v\
+\xad6\xda\xd4:\x12%!MR\x917y\xcfg\x92\
+\x98\x96\x90<\xe7\xde{\xce\xbd\xce\xb9\xf7\xf9\xfd\x9d\xf7\
+<\xf7\x9co\xde\xf7n\xe7\x9e\xab(\x1a\xe2\xfb%\xc1\
+\x18\x1c\xf4\x90\x17\xc4w\x0f\x0e\x97H \xe8!\x16\x08\
+z\x88\x05\x82\x1eb\x81\xa0\x87X \xe8!\x16\x08z\
+\x88\x05\xe2\x83\x1eB\x81\xf8\xc4\xe10\x89\x04\x82\x1eb\
+\x81\xa0\x87X \xe8!\x16\x08z\x88\x05\x82\x1eb\x81\
+\xa0\x87X \xe8!\x16\x08z\x88\x05\x82\x1eb\x81x\
+m\xc3\xc1\x11\x09\x04=\xc4\x02A\x0f\xb1@\xd0C,\
+\x10\xf4\x10\x0b\x04=\xc4\x02A\x0f\xb1@\xd0C,\x10\
+\xf4\x10\x0b\xc4k+\x8e\x89H \xe8!\x16\x08z\x88\
+\x05\xe2\x89\x1eB\x81\xa0\x87X \xe8!\x16\x08z\x88\
+\x05\x82\x1eb\x81\xa0\x87X \xe8!\x16\x08z\x88\x05\
+\x82\x1eb\x81xn\xc1q\x10\x09\x04=\xc4\x02\xf1\xda\
+!\xdcF\xa5\xa7\x15&\xdb\x96 ^\xdb\x85\xd8\x8e\xbc\
+\x0b\xbbWL\x1f\xf9\xf2sM\x82\xfc]\x1f\x98\xacW\
+\xa9V\xb3N\x11\xe3\xe7F\x1fM\xb3\x0d\xc8\xe3\xf7\xb8\
+\x14;\xb9W]/\xda\x83*\x01-\x07\xce?\xf8\x8b\
+\x0d@\x1e\xef\xf7\xe2\xe4\xdc^\x154,\xb7\xe2Zo\
+\xd8\xbf\xae!\x88Q{\x8a\x98~\xe5\x15\x1d\xa9?\xe1\
+p\x1e\x82\xf0\xce\x9d\xf5]=\x15\xdd\xa9\xf8F\x02\x82\
+\xf0\xcc\xe9\xc8r\x0ac\xea\xcf\xbe\x85 |\xe2\x8c\x0b\
+sQ8\xa4\xf4\xd0s\x08\xc2!\xb1\x0d\x14^q\xed\
+\x9f\x84 \x8c\xd9\xd7R\xe1\x19\x8f\xc8\x14\x04aHJ\
+\x84\x8b\xc29\xe5\xe6\xe5\x22\x88\xde\x9d\xc7\x92r\x8a\x01\
+iq\x16At\xe5F\x0f\xc5\x98x\xcfs\x22\x88\xf6\
+\xec\xad\xa2\x18\x96\xb0[\x08\xa25\x8b\xdc\x15\x03S\xfb\
+\xbc\xae\x8d:\xe2_r&Y\x1a\xc41B16\xe5\
+u-\xf2\x1c\x0f\xb4\xf8\x96\x95A\x1c\xfd\x14\xa3\xe3\xb9\
+\x09AT\xe7\xee\x8b\x8a\xf1\xf1\xd8\x80 *\x93\xdbC\
+1#\xee[\x10D]F(\xe6\xc4'\x1eA\xd4d\
+\xaabV*\x9cG\x10z\xb6\xb9\x98\x06\xa24\xc8B\
+\x10Z.\x05(&\xe65\x04\xa1$\xa7\x85bjV\
+ \x08\x9c\xf7\xcc\xf5P\xca^F\x10(gt\xde8\
+/S\xde\xdfK\xdf'\xbb\x22\x08t\x06\x12\xa2\xed\xde\
+F\xcb\xf0)k\x8e$\xa5f\xde\xfbtZrb\xdc\
+\xe21=\xebk\xbb\x0a\xb6\x06AJ\xceb\xf5\xe3X\
+\xaa\xc3\xcc\xf8\x9c\xe2[\xc9\x8c\x1b\xdf\xc6CuC\x95\
+\xd2\x11\xa4\xa4\xa4\xa9\x9d\x04Wv\xe0^\x07\xdcT\xea\
+\xb2PW\x95\x8d\xbd\x8d %%J\xdd\x08\x06\x7f\x9c\
+\xa1\xa6\xb5\xc4a\xbe\xea\xeeW]@\x90\x12NAT\
+\xed\x97\xab/W}S\xfc\xda\x08U\xc7\x08\x83\x10\xa4\
+\xf8\x0cVs\x8d6*SK\x93\xe7\x9fW\xd1\xa6[\
+\x22\x82\x14\x97\x1fU\xec\x88\xeb\x9e\xd6\xd8\xa8s\x8e\x8a\
+/I\x04\x82\x14\x97H\xfa\xc8\xf5\xcd\xd4\xde\xecQ\xfa\
+\xbdy\x8f\xcb\x08\xf2hn\xf8P\x07\xee\x1d]\xb3E\
+.\xd3\xa7>\x8eE\x10=\x17M\xa6\xe9l\xf9\xd6\xd3\
+\xb4\x96\xfdn#\xc8\xc3\xb9[\x896j\x13u\xb7\xfd\
+sMZ\xdb\xf3\x11\xe4\xe1l\xa0\x8dY\x1f\x86\xd9m\
+\xdf\xfbS\x1ao\x88 \x0f\xa73\xed^\xd2\xaf,\xad\
+o\xa6\xdd\xf5J@\x90\xa2\xb9H\xb9\xd0\xe1\xcd8!\
+w\x18\x05$\x12A\x8af\xbaA;\xf4\xdf\x92Q\x95\
+2q.\x07A\x8a\xa4!e\xea'\xf3\xa2\x00\xb4}\
+\xd4v\x04y0\xdfQ\x86+\x9a\xbdD3\xb8\xc2_\
+\x10\xe4\xc1L\xa6\x5c1\xe1\xf0\x5c\xf3\xbf)W\xf4\xb3\
+\x11D\xfd/\xd6Z\x0e%\x9c\x94\x13\xf68\x04y\xe0\
+\xea\x06|T\x1a\xec\xe0Qd\x0d\x0c2\x0aA\xee\x87\
+r\xebv!\x97\x22\x8e\xca`\x91\x9a\x08r?a\xf0\
+9\x08\xa7\xa5}\xc6\xc0\xec\xe7\x11\xe4\xf7\xff\xdd2\xe0\
+H\xfd\x99S\x99\xb30\xc8b\x04\xf9-\x87\xe1\x91\xe2\
+\xb6bZcVw\xbb\x80\xcc\x00\x07\xea\x09\x07\xaf:\
+\xb3\xc1:\x15\x9d\x08\xf2\xfft\x02\x07j8\xbf\x0bf\
+\xf07\xf1\xd1\xa5P\x16\x0d-\x1a\xe8I\xa2\xc6C\xe9\
+q\xc8\x01\x92\x0b\xefB8\xae\xb9Y\x07,\xf4\xe9#\
+\x7f\xdf\x8b\xf3L\xe2l9@N\xc3Ogf\xf0\xab\
+\xf4&Xi(\x82\xdc\xcb\xa7`':p\xac\xb4\x0d\
+\xac\xd4\x04A\xeee\x08\xd8\x89Y\x1c+e\x82S\xf1\
+\xdc2\x11\xa40M\xc0N\x9c\xe6Y*\x14,u\x08\
+A\x0a\x92\x03Ne+\xcdu5\xa5\xf1\xe0x-A\
+\x90\x82\x9c\x01\xfb\xd0\x96k-\xf86\xd5\x08\x04)\xc8\
+Z\xb0\x0f|\xcf\xb7.\x80\xb5\x9eC\x90\x82L\x00\xfb\
+\x10\xc3\xb7\xd8\x1f\xa0Z\xfe\x08R\x90\x9e`\x1f~\xe2\
+[\x0c\x9emt\x1dA\xf2\xd3\x08\xeaB\x00\xe7b\x7f\
+\x03\x07\xec\x08\x82\xe4\x07\xbcp\xd2\x9as\xb1\xd5\xe0\x80\
+\xadG\x10Bn\x82]\x18\xc0\xb9\xda\x11\xb0\xdaL\x04\
+!$\x01\xec\xc2\x0c\xce\xd5\xd24\xcd_\xb4%H\x0c\
+\xd8\x85\xcfy\x97\x03_\xb0\xd0\x09A\x08\xf9\x00\xec\xc2\
+\x19\xde\xe5\x9e\x81\xaa\xd5B\x10\xca4h\x97_y\x97\
+\x0b\x87\xcay\xe5!\x08\xe9\x02\xf5\xa0\x0a\xf7r\xf0\x1c\
+\xc9\xab\x08B\xeaB=\x08\xe1^n\x098b\xf1\x08\
+B\xfc\xa0\x1et\xe7^.V\xcb1\x84\x1dAr\xc0\
+Y\xa4C\xb8w\x00>\x11\xf9\x04AR\xc0\x1e\xf0_\
+\xbf\x1b\x9ey\xf2w\x049\xc7:\x9bPc\xb2\xc1o\
+\xe48\x04\x89\x07{\xb0\x91\x7f\x0f\xc03\xc3\xc1E\xff\
+\xf6PL\xd1L\x03>\xda#\x86\x9e<\x09@\xb6\x80\
+ \x87\xf9\xf7\xa0\x1eT\xef%\xfd\xff=V\x99\xb9\xb8\
+\x02\x04\xf9\x96\x7f\x0fZA\xf5B\x11\x04\x9eo{\x85\
+\x7f\x0f\xc0y\xab\x8d\x10\x04\xbec\x94\xce\xbf\x07\xbd\xa1\
+zU\x11\x04\xbe\x94e\xc0^p T\xd0\x17A^\
+\x85\xc6\xa7\x8c\x01=\x18\xc5p`j\x07\x10p\x8a\xc3\
+\x1f\x0d\xe8\xc1D\x10\xe4\x17\xdb\x83t\x85\x86\xa7\xae\x01\
+=\x80\xef\xbf\xdc\xb4=HGhx\x9a\x19\xd0\x03\xf8\
+r\xef5\xdb\x83\xb4\x85\x86\xa7\x95\x01=\xf8\x0c\x04\xb9\
+d{\x10\xf0<\xedO\x06\xf4\xe0\x9f \xc8\x0f\xb6\x07\
+\x01\xd7\x84io@\x0f\xd62\x5c\x1a\xb0\x03\x088o\
+\xf1\x05\x03z\x10\x0d\x82\x9c\xb4=\x08\xf8\x1cfW\x03\
+z\x00\xaf\x0at\xd4\xf6 OA\xc3\xd3\xc3\x80\x1el\
+\xd1rS\xdd\x86 \x81\xd0\xf0\xbcl@\x0fv\x80 \
+{m\x0f\x02.\xd7\xfb\x8a\x01=\x88\x03A\xbe\xb0=\
+\x08\xb8fR\x1f\x03z\xb0\x07\x04\xd9e{\x90j\x0c\
+7\xf0te'\x08\xf2\xa5\xedA\x82\xcd\xde\xa9o\x05\
+A\xf6\xd9\x1e\xa4\xae\xd9\x87\xbd\x1b\xf1(\x0bLc\xb3\
+O\x0c\xe1\xc7\x1f\xbe\xc2K'f_:Y\x07\x82$\
+\xd8\x1e\xe4YM\x0f\x8es\xc8*\xbct\x02&\xd4\xec\
+\xcb\xef\xf0\xbc\xa3\xb3\xb6\x07y\x01\x1a\x9e\xa7\x0d\xe8\xc1\
+R\x86\xc7\xe2\xed\x00\xd2\x0d\x1a\x9e\x9a\x06\xf4`\x0e\x08\
+\xf2\xb3\xedA\xc0\xf9\xcc\x95\x0c\xe8\xc1{ H\x96\xed\
+A^c\x98&\xa5+c\x19&\x82\xd9\x01\xe4\x0dp\
+|r\xf9\xf7`(T\xb0\x14\xb1=\xc8$\xf0\x17\xe4\
+\x16\xff\x1e\xf4\x85\xeaUD\x90\x8f\x18&\x81\xe8\x0a\xb8\
+\xce|\x10\x82\xc0\x93@\xbe\xe1\xdf\x03p\xdeQs\x04\
+\x81/\xbe\x1e\xe0\xdf\x83\xa6Z\xd6\xd6\xb0!\xc8!\x10\
+$\x86\x7f\x0f\xc0;b\xe1\x08\x02\xbf\x0el\x1e\xf7\x0e\
+\xe4\xb9C\xf5\xa2\x10\xe4:\x08\xf2\x0e\xf7\x0e\xc0\x8fa\
+OE\x10\x07\xf8\x98\xf2@\xee\x1d8\x05\x82,D\x10\
+xi\x8d.\xdc\xcb\xedb\xd9g\xd9\x02\x04|L\xb9\
+)\xf7r+\x19n\x18\xda\x03\xa4\x1b\xc3\x99\xb3\x8e\xfc\
+\x03\x04\xb9\x8c d\x84\xb9\xd7N^\x87\xaa\xb99\x10\
+\x84\xccb\xb8\xc7\xad#\xcfC\xd5\x02\x09\x82P\xd6\xc7\
+_\xc7\xbb\x5c5\x96[\xc6\xb6\x009\x06\x82L\xe1\x5c\
+\xed\x8e+\xcb\xd4U[\x80\xc0\x0b)\xf7\xe3\x5c\xed[\
+\xa6\xf3P{\xbc6\xcf\x8f\xe1\xf2\xab\xe6l\x06AV\
+\x22\x08\xa1<\xd4\xe6\xcb\xf9\xd5\x7f3YNCl\x02\
+\x02/\xdbv\x8ao1p\xe9\x19%\x0dA\x08m=\
+\xa0e|\x8bUg:\x0d\xb5\x07\xc8z\x10\xe4u\xae\
+\xb5n(L\x8f\xc5\xdb\x03\x04>\xf0\xe1\xbb\x942\xfc\
+\x80\xe1H\x04)\x88\x03|\xdb\xa3\xe7\x1d\x9e\xb5\xa6\x81\
+ \xcb\x11\xa40\xcd\xc1Q\xda\xcd\xb3Tg\xb6\x03\x08\
+\x9b\x80\xc0\x97\x17\xc7\xf0<O\xf7\x85*y\xe7 H\
+a\xe0\x99@\xf58V\x82\xefN\xb5 \x08R\x18x\
+\x9e\x03\xcf\xc9r\xa3\xc1B\xc3\x99@F[\x07\xc4\x09\
+.6\xfd\xe8\x1bj\xf5\xa7>Xh=\x13\xc8H\xeb\
+\x80P^-\xc9\xef\xc9O\xf8\xc5\xab.\xc9L \x91\
+\x16\x02\x81\xe7\xf7\xbaq[My*X\xa7\x0e\xbd\x81\
+\xc3\xc0\xc7\x07Y\x08\xe4\x04\xbc\x13y\x9f\xd7O#\xb8\
+\xf2\x902\x8c\xde\x02\xf4\x8a\xbf\x08\x0b\x81\xe4\x05\x80#\
+U\xd3\xc9\xa7\xcc~\x85q\x17\x02N\xea\xeak!\x10\
+\xf81*E9\xc8\xa7\xca\x00\xb0\x88{*\xbd\x85o\
+\x80\xcf\xf7\xb6\x12\x08\xbc\x0e\x22\xa77Q]/\x05\x16\
+i\xa7\xa2\x89D\x93\x97\x01yl i\xee\xb0\xc8\xd7\
+<\x8a\xbc\x05\xd7\x98\xab\xa2\x89$\xe0\xf3\xcfX\x09\x84\
+<\x07\x0fVW\xe3\xbf \xaa^\xdc~\x05\xf8|\xb0\
+\xa5@\x16\xc0\x83\xf5\xc8\x8b\xce\xf9\x7fA\x1a\xa9i\xe3\
+6\xd0\x80\xbf\xa5@R\xdc\xe0\xe1j\xc1\xfc8n\x92\
+/\x5ca\x96\xaa\xc3A`\x12\x91k\xae\x95@\xe0\x09\
+\x85\xf9\xf9\x88\xf5\x1c\x84R\xc0#EU3\xfe@\x13\
+7,\x05\xb2\x9c\x02\xe2}\x82\xad\xfd\x0f)\xed\xf7R\
+\xd7L\x0d\xa0\x89\xe3\x96\x02\xc9\xf4\xa3\x8cX0\xd3?\
+\xe0A\x0fJ\xf3[\xd4\xb5\x03=1\xba\xc6R $\
+\x922bJ+\x867y\x9f+Oi<P\xe5\xf4\
+\xafv@\x1b\xefZ\x0b\xe48\x0dD\xe9\x90\xa9\xb7\xed\
+\xc4\xaa\x0a\xa7]T_\xe1N\xd5\x0d\x03!m\xa8\x22\
+mt\xfej\x9dx\x82\xd6r\x80Z\xebqlW\x8b\
+\xa5\x02\xd9L\x05Qj\x9c\xd6\xd3\xf0:_j\xc3\xaa\
+\xe7\xd8/`\xbb\x9f\x22\x15H^\x1d\xba\x88\xf7l\xcd\
+\xef\xd1K\x1f@o\xb6\xf4M\xb5\xadm\x82\x9aYa\
+-\x10\xea\x91\xef\xbd+FG\xb5\x9d~\xac\x0fT\xd1\
+\xe84\xd5\xed\x81\x0f\xb3\x84Z\x0c\xc4Q[\x8d\x88\xeb\
+\xab\x1a\xde\x8f\xbb\xebY5MVS\x7f\xfc\x06OE\
+\xddk-\x10\xca\xbbo\xee\x93\xf4\xd8\xa1\xea\x87+\xeb\
+\xb3f\xea\x1a\x5c\xaba\x1b\xc1\x95R\xaa\xff\xd7Z \
+\xce\x10Ee\x02G\x1d\xa4Lj\xcb\x88\x0d\xf7S\xd9\
+XK-7$\xc1ET\x95\xa7NY\x0a\x84\x1cv\
+QT\xc7\xb7\xfd\xe4=%\x1c\xac&\x7f\x1e\xd5\xcc]\
+uC^\x9a\xd6\xe4\x1aC\xb9$\x16\xf9\x9d\x95@\xc8\
+\x00E[\xaa\xb4\x0e\x9f\xb8|s\xdc\x91\x93I\xd7.\
+\xfep,>n\xe3\xc7c{\x87\x04hkc\xa6\xa6\
+-\x5cIm\xaf\xc9\xc8\x95\xfb\xcf'\xa7\xa5&%\xe6\
+oPl\xcc\xb2Of\xbe?\xfe\xafC\xfb\xf7\xe9\xd2\
+\xa1y\x7f\xe9@\xaek\x1cL\x0ei\xa9\xed\xaa\xf9i\
+\x96Z\xb5\xa5\x03Q\xbb_\xe7\x97\xd2\xdfk<[b\
+\xf9\x97\xa9,\x1f\x08\xfc6o\xfeq\x89\xd6\xba\x81/\
+1T\xf3\x95\x10$\xb5\x86\xa9 \x135o\xe0\x02\x96\
+r9\xf2\x81\x90\x93\xbe&z\xf4\xd0|%\x06\x9c\x9a\
+E\xcdM\x09A\xc8j\xf3<Ze\xe8\xd8\xbe:\x0c\
+\x05\x93d\x04\xa1L\x89\xe6\x98\xc6\xa9fo\xdeI)\
+Ah'_\xbcR;E\xd7\xd6]p\xd1_r\x9f\
+\x9c \xce!fx4\xd5{\xfb\xa2\xb5\xfe\x9a\x9b\xe5\
+\x04!\xce\xf1\xc6{tL\xd7\xbbu\x1b\xf5\x17]-\
+)\x08!\x1f\xb8\x1a\xec1H\xff\xa26\xce\xc6\xba\xab\
+.\x90\x16\x84l+g$\x87'\xd3\xbc\xbb\x0d\xba\xeb\
+N\x97\x17\x84$60\xce#\x88m%\xc7\xbc\xb6z\
+\x0b\x8f\x93\x18\x84\xdc\x19c\xd4\xcfV\xcf\xdb\x8c\x9b\xf6\
+S\x19\x9d\x95#e\x06!d\x7fMc@\xd8_\x0a\
+\xbeTg\xe5\xber\x83\x90\x9cy~\x86\x88le\xde\
+2\x9d\x87\x81\xdd$\x07!\xe4\xea\x00w\x03@jd\
+1\x1f\x98G\xea*\xdcFz\x10B\x92\x06z\xf0\x17\
+\x99\xc0\xbcYy\x13\xf4\x9c\xb07\xb4\x00\x08!\x97&\
+T\xe0\x0d\xe2q\x96}\xb3\xb6\xf8k\xaf[\xcd\x12 \
+\xf9\x07\x5c+B9\x1fq\xb5\xe6\xf0\xe8\xfb\xc5\xde\x9a\
+\xbf$e-\x02\x92\x9f+\xb3\x9b\xb9\xf0\x14Y\xcac\
+\xa3\x0e\xb5\xd2X\xd5\xd5i\x19\x90\xfc$/\xef\xcd\xef\
+\xf4\xbd\xfcu.\xdbt \xdc[}M\xb7\xda}\xb2\
+\xad\x04R\xb0+=\xb3(<\x98\xcf\xafW8\xa7M\
+J]\xd8\xbd\x94\x0a\xffvo.K\xc82bH\x1e\
+/Ha2\x0e/\x1e\xde\xb9\x96'x\xabc\xd0p\
+\xea\xf4\x86=\xdc6\xe8\xee\xdew\xc3\x9e,i\x1a^\
+\xfd\x17\xc7-\xdb\x9fb\xdch\x08\x00r/\xb9\x97\x0e\
+mZ8)\xb2_\xcf\xf6!\x0d\x83\x82\x82*V\x0d\
+\x0a\xaa\x13\xd2&,\x22jFtBZ\xfew\xa9\x05\
+M\xa4\x16\xd7\xe5N\xc9\xed\xf85\x1f\x8e\xee\xd7\xb1y\
+H\xed\xa0\xca5\xea\x84\x84v\x8ax{\xfe\xa6\xaf\xae\
+\xe6\x19=\x0e\xc2\x80\xd0r\xdc\x8d&2\x99X!\xd2\
+\x80\xc0\xef\x05/\xbc\x06\x7f\x0eA\xccLz\x15\x9aH\
+['\x82\x98\x19\xfa|\xa2U\x08bj\xda\xd3@\x02\
+n \x88\x99I\xf4\xa2\x89\x0cF\x10SC\xbdk\xe1\
+\xf2\x1f\x0413YO\xd2D\xea\xe7 \x88\x99\xa1O\
+\xa1\x9a\x81 \xa6\xa6;\x0d\xc4\xe7G\x0413\x17\xa9\
+\x17\xfe:!\x88\xa9\xa1\xcfU\x8fF\x103s\x97\xba\
+<D\xa5[\x08bfvS\xbf\x22#\x10\xc4\xd4\xbc\
+B\xbd\xaf\xfa\xb5\xc4\x1e\xdb\xe5\x03I.K\x13i$\
+\xef\xc9\xc8No\xf9@\xa8\x0b\x92*\xca\x1cY=\xbe\
+\xf0V$\x04q4\xa1>?~A^\x0f\x09AH\
+<u\x02QWy=d\x04Q\xb1\xa6M\xac\xb4\x1e\
+R\x82\xdc\xa4\xceE\x0d\xcc\x90\xd5CJ\x10\xb2\x84\xfa\
+\x15\x19-\xab\x87\x9c y\xd49\x9fn'$\xf5\x90\
+\x13\x84\x9cp\xb3\xd6\xf9\xfa\xce\xfb3X%=b\x1f\
+Iy\x92f\xabT\xbd\xd9\xf5\xc0\x8cbIA\xa0I\
+A\xaea\x09DZ\x0fYA\xc8\x9a\x928\xbc\x22\xce\
+\x13\x89=\xa4\x05)aR\x90_\xd45\x22\xb5\x87\xbc\
+ \xc5M\x0a\xaa4\xe5\xb6t\xfd\xd8\xe5\xa3X\x03\x84\
+Lx\x98#x^6\x91\xdeCb\x90\xac\xa2\xcb9\
+\x86\xac\xca%\x16\xf0\x90\x18\xa4\xc8\xbb&$;\xce-\
+\xd9Cf\x10\x12\xf6\xfbq\xee1b\x15\x0f\xa9A.\
+\x95\x92\xf38\x17\xf2\x90\x1a\x84LS\x94\xb2Q\xc9\xc4\
+J\x1er\x83dw\x98\x9bI\xac\xe5!7\x88\xcc\xd9\
+]\xbc\x07\x82\x08\xe6\x81 \x82y \x88`\x1e\x08\x22\
+\x98\x07\x82\x08\xe6\x81 \x82y \x88`\x1e\x08bv\
+\xf6S\x1e\x02\xc3\x11\x12\xcb\x03A\x04\xf3@\x10\xc1<\
+\x10D0\x0f\x04\x11\xcc\x03A\x04\xf3@\x10\xf3<J\
++\x08\x22\x9f\x07\x82\x08\xe6\x81 \xe6\xe4\x80Z\x0f\x04\
+\x11\xcc\x03A\x04\xf3@\x10\xc1<\x10D0\x0f\x04\x11\
+\xcc\xe3\x7f\xb9\x0bd\xb5'\xfb\xb9\xcc\x00\x00\x00\x00I\
+END\xaeB`\x82\
+\x00\x00\x04\xbb\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x01\x00\x00\x00\x00\xeb\x04\x03\x00\x00\x00t\xa8U\xa0\
+\x00\x00\x000PLTE\x00\x00\x00A\xcdRA\xcd\
+RA\xcdRH\xcbPB\xccQI\xcbPD\xccQ\
+E\xccQJ\xcbOE\xccQJ\xcbOD\xccQD\
+\xccQC\xccQA\xcdR\xaa`?\xbc\x00\x00\x00\x0f\
+tRNS\x00\x18Oc\xab\xae\xb8\xbd\xc9\xcd\xd6\xd7\
+\xdf\xe9\xf0\x91\xee\xa9J\x00\x00\x04+IDATx\
+\xda\xc5\xda\xc1m\x13A\x18\xc5\xf1\xddT`%Bp\
+ R\x02'N\x08\x1ap\x0dT`q\xa1\x0f*\xa0\
+\x0b*\xa0\x91T\xe0\x1e@\x96|q\x86\x83c\xc7\xbb\
+;\x93\xcc|\xef\xcd{\xd3\xc0\xfe\xf4\x0e\xfb\x9f\x95v\
+\x18z\x9c\xab\xc3j\xb0\x9e\xab\xf4\xe0\x06<\xde\x9b\x01\
+\xe9\xdf\xca\x0cH_\xdc\x00\xeb\x04W)\xa5\xf4\xcd\x0d\
+\xd8\xad\xcc\x00\xe7\x04G\x80q\x82# \xfdt\x03\xf6\
++3\xc07\xc1\x09`\x9b\xe0\x04\xb05\xe9\x0cpe\
+\xf9\x0cpM\xf0\x0c0e\xf9\x19`j\xd2\x05\xc0\x93\
+\xe5K\x80e\x82K\x80\xa5I\x13\x80\xa3I\x13\x80c\
+\x82)\xc00\xc1\x14`h\xd2\x0c\xa0o\xd2\x0c\xa0\x9f\
+`\x0e\x90O0\x07\xc8\x9b\xb4\x00\xa8\xb3\xbc\x00\xa8'\
+X\x02\xc4Y^\x02\xc4M\xca\x00\xb4Y\xce\x01\xa4\x13\
+\xe4\x00\xd2&e\x01\xca&e\x01\xca\x09\xf2\x00\xe1\x04\
+y\x80\xb0I\x05\x80\xaeI\x05\x80n\x82\x12@6A\
+\x09 kR\x11\xc0\xc8\xf2\xf5\x87\xd7\xcf\xc7\xd4q\x82\
+\xcf\x099\x84,c\x00B\x93@\x00\x9ee\x14\x00O\
+\x80\x02\xe0&\xc1\x00\xb4I0\x00\x9d\x00\x07\x80\x13\xe0\
+\x00\xb0I\x04\x00\xd6$\x02\x00\x9b\x80\x01\x80&`\x00\
+\xa0&Q\x00H\x96)\x00d\x02\x0e\x00\xc82\x07\x00\
+4\x89\x04\x88g\x99\x05\x08O\xc0\x02\x84\x9bD\x03D\
+\x9bD\x03D'\xe0\x01\x82\x13\xf0\x00\xc1&\x11\x01\xb1\
+&\x11\x01\xb1\x09\x98\x80\xd0\x04L@\xa8IT@$\
+\xcbT@d\x02.\xe0\xb1\xfa\xb9\xe3\xa7U\x0f@\xaa\
+\x06\xbcIw=\x00\x87\xea\x016}\x00\x0f\xf5\x03t\
+\x01T\xbf\x08\xc6M\x1f@\xf5\xab\xf0]\xea\x02\xa8\x1f\
+\xe0W\x1f@\xd3\x00\x1d\x00\xbb\xa6\x01:\x00\xaa\xafD\
+\xb7\xa9\x0b\xa0~\x80m\x1f@\xe3\x00t@\xf5\x87\xc1\
+\xf5\xb6\x0f\xa0\xf6\xd3h\x5c\xa7.\x80\xea\x01nR\x17\
+@\xf5\xe7\xf1y\x002\xa0\xa5B=\x00\x87\x96\x0a\xf5\
+\x00\x04\x06\xa0\x02\xf6\x81\x01\xa8\x80\xb6\x0a\xf1\x01m\x19\
+\xee\x00\x08\x0d@\x04\xecB\x03\x10\x01\xad\x15b\x03Z\
+3L\x07\x04\x07\xa0\x01\x9a3\xcc\x064g\x98\x0ch\
+\xcf0\x17\x10\xc80\x17\x10\xa9\x10\x13\x10\xc9\xf0\x0c \
+\xfa\x7f`9\xc0\x09\x00\xfdA\xb1\x07\x06\xa0\x00b\x15\
+\xe2\x01b\x19&\x02\xa0\x01\x08\x80\x1d4\x00\x01\x10\xad\
+\x10\x0b\x10\xcd0\x0d\x00\x0e\x00\x03\xc2\x19f\x01\xc2\x19\
+&\x01\xe2\x19\xe6\x00\x80\x0cs\x00H\x85\x9e\xce\xd7\x8a\
+\x0c\xde\x97\x00H\x86[\xce\xdf\x12\x800\x00\x04\xd8\x8b\
+\x06(\x02\xb0\x0a\xe1\x00,\xc3\x04\x80l\x80\x02`'\
+\x1b\xa0\x00@+\x84\x02\xd0\x0c\xc3\x00\xe1\x00Y\x00\x9c\
+a\x14\x00g\x18\x04\xe0\x19\xc6\x00\x84\x0cc\x00U\x85\
+J\x00U\x86\x8b\x00\xf1\x00\x0b\xc0^<\xc0\x02\xa0\xab\
+P\x1e\xa0\xcbp\x01 \x1f`\x06\xd8\xc9\x07\x98\x01\x94\
+\x15\xca\x01\x94\x19\xce\x02\x0c\x03L\x00\xd2\x0c\xe7\x00\xd2\
+\x0cg\x00\xda\x0c/\x01\xe2\x0c/\x01\xea\x0a\xcd\x01\xf5\
+\xff\xe9m\xfa\x00\xea\x7f\xd3K=\x00\xe3\x9f\x95\x17\xd0\
+r\xd6n\x00\xf35\x14\x020_\xc41\xc0\xb85\x03\
+\x86\xf7n\x00\xef:\x12\x04\xf0.dQ\x00q\x82\x18\
+`x\xeb\x06\x8c\x1b3\x80\x97\xc4(\x806A\x14@\
+\xbb\x16\x85\x01\xac{Q\x18\xc0\x9a \x0e M\x10\x07\
+\x90\xb2\x0c\x008YF\x00\x94,#\x00J\x96!\x00\
+\xa3I\x10\x80\x91e\x0c@\x98\x00\x03\x10\xb2\x0c\x02\xf0\
+&\x81\x00<\xcb(\x00\x9e\x00\x05\xc0M\x82\x01h\x93\
+`\x00:\x01\x0exa\x82\xdf?^?\xdfa\xc0\x0b\
+Y\xbe\x1b4\xe7\xd6\x0d(fY\x05(fY\x06(\
+5I\x06(eY\x07(L\xa0\x03\x14\xb2,\x04\xe4\
+\x9b$\x04\xe4\xb3\xac\x04d'P\x02\xb2M\x92\x02r\
+M\x92\x02r\x13h\x01\x99\x09\xb4\x80L\x96\xc5\x80e\
+\x96\xd5\x80E\x96\xd5\x80E\x96\xe5\x80y\x93\xe4\x80y\
+\x96\xf5\x80\xd9\x04z\xc0,\xcb\x06\xc0\xb4I\x06\xc04\
+\xcb\x0e\xc0d\x02\x07`\xd2$\x0b\xe0\xb2I\x16\xc0\xe5\
+\x04\x1e\xc0\xc5\x04\x1e\xc0E\x96M\x80\xe7,\xbb\x00\xe7\
+,\xbb\x00\xe7,\xdb\x00\xa7&\xd9\x00\xa7,\xfb\x00O\
+\x13\xf8\x00OY6\x02\x8eM2\x02\x8eYv\x02\xc6\
+\x8d\x190\xdc\xb8\x01\xe3\xda\x0c\x18n\xdc\x80qm\x06\
+\x0c\xd7\xdb>\x80\xffx\xf2iE\x15\xa8J\x8b\x00\x00\
+\x00\x00IEND\xaeB`\x82\
+\x00\x00\x0b!\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\xc8\x00\x00\x00\x8f\x08\x03\x00\x00\x00\x88\xdbdx\
+\x00\x00\x00\x09pHYs\x00\x00\x0d.\x00\x00\x0d.\
+\x01\xb5\xcb\x89]\x00\x00\x00\x19tEXtSof\
+tware\x00www.inksca\
+pe.org\x9b\xee<\x1a\x00\x00\x02\xacPL\
+TE\x00\x00\x00\x00\xff\xff\x00\xff\x80U\xff\xaa@\xbf\
+\x803\xcc\x99+\xd5\x80$\xdb\x92 \xdf\x809\xe3\x8e\
+3\xe6\x80.\xe8\x8b+\xd5\x80'\xd8\x89$\xdb\x803\
+\xdd\x880\xdf\x80-\xe1\x87+\xe3\x80(\xe4\x86&\xd9\
+\x801\xdb\x86.\xdc\x80,\xde\x85+\xdf\x8a)\xe0\x85\
+'\xe2\x89/\xe3\x84,\xdc\x84+\xdd\x88)\xde\x84.\
+\xe0\x83-\xe1\x87,\xdb\x83+\xdc\x87)\xdd\x83/\xdd\
+\x86.\xde\x83-\xdf\x86,\xe0\x83+\xe1\x86*\xdb\x82\
+.\xdc\x85-\xdd\x82,\xde\x85+\xde\x88+\xdf\x85*\
+\xe0\x87.\xe0\x85-\xdc\x87,\xdd\x84+\xdd\x87+\xde\
+\x84*\xdf\x86.\xdf\x84-\xe0\x86,\xdc\x84+\xdc\x86\
++\xdd\x84.\xde\x86-\xde\x84-\xdf\x86,\xdf\x83+\
+\xe0\x85+\xdc\x83-\xdd\x83,\xde\x85,\xde\x87+\xdf\
+\x87-\xe0\x85-\xdd\x86,\xdd\x86+\xde\x84+\xde\x86\
+-\xdf\x86,\xe0\x84,\xdd\x86-\xde\x84,\xdf\x84+\
+\xdf\x85+\xdd\x84-\xdd\x85-\xdd\x84,\xde\x85,\xde\
+\x86+\xde\x85+\xdf\x86-\xdf\x85-\xdd\x86,\xdd\x85\
++\xde\x85+\xde\x86-\xdf\x85-\xdf\x86,\xdd\x86+\
+\xdd\x84+\xde\x85-\xde\x84,\xde\x85,\xdf\x84,\xdf\
+\x85+\xdf\x84+\xdd\x85-\xdd\x84,\xde\x85,\xde\x84\
+,\xde\x85+\xdf\x86-\xdf\x85-\xdd\x86,\xdd\x85,\
+\xde\x86,\xde\x85+\xde\x86-\xde\x85,\xdd\x85+\xdd\
+\x84+\xde\x85,\xde\x85,\xdf\x85+\xdf\x84+\xdd\x85\
+-\xdd\x84,\xde\x85,\xde\x84+\xde\x86+\xdf\x85,\
+\xdd\x85,\xde\x86,\xde\x85+\xde\x86,\xde\x85,\xdf\
+\x85,\xdd\x85,\xdd\x85+\xde\x85-\xde\x84,\xde\x85\
+,\xdf\x85,\xdf\x84+\xdd\x85-\xde\x84,\xde\x85,\
+\xde\x84,\xde\x85,\xde\x86+\xdf\x85,\xdd\x85,\xde\
+\x86,\xde\x85,\xde\x86-\xde\x85,\xde\x85,\xdf\x85\
+,\xdd\x85,\xdd\x85+\xde\x85-\xde\x85,\xde\x84,\
+\xde\x85,\xdf\x84+\xdd\x85-\xde\x84,\xde\x85,\xde\
+\x84,\xde\x86-\xdf\x86,\xdd\x85,\xde\x86,\xde\x85\
+,\xde\x85,\xde\x85,\xde\x85,\xdf\x85,\xde\x85,\
+\xde\x85-\xde\x85,\xde\x85,\xde\x85,\xdf\x85,\xdd\
+\x85-\xde\x84,\xde\x85,\xde\x84,\xde\x85,\xde\x85\
+,\xdd\x85,\xde\x85,\xde\x85,\xde\x85+\xde\x85,\
+\xde\x85,\xde\x85,\xdf\x85,\xde\x85,\xde\x85+\xde\
+\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xdd\x85\
+-\xde\x85,\xde\x85,\xde\x84,\xde\x86,\xde\x85,\
+\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\
+\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85\
+,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85,\
+\xde\x85,\xde\x85,\xde\x85,\xde\x85,\xde\x85\x83p\
+\xec\x06\x00\x00\x00\xe3tRNS\x00\x01\x02\x03\x04\x05\
+\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\
+\x16\x17\x18\x19\x1a\x1b\x1d\x1e\x1f!\x22#$%&'\
+()*+,-./01234567\
+89:;<=>?@ABDEFHI\
+JLMNPQRUWXYZ[\x5c]^\
+_`abdefgijklmnop\
+qrstuvwxyz{|}\x80\x81\x82\
+\x84\x86\x87\x88\x89\x8a\x8b\x8d\x8e\x90\x91\x92\x93\x95\x96\x97\
+\x98\x99\x9a\x9b\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa7\xa8\xa9\
+\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xbb\
+\xbd\xbe\xbf\xc0\xc1\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcc\xcd\xce\
+\xcf\xd0\xd1\xd3\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\
+\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\
+\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe.\xcby\
+/\x00\x00\x07\x07IDATx\xda\xdd\xdc\xf9_\x94\
+E\x1c\x07\xf0\xd9\x85\xf5@E\x17\x0d\xf3B\x84\x0c\x8f\
+\x14\xb7,\x8d4O\x14+\x0c\x0f4M\xad\x14\xad\xc4\
+\xbc\x22q\xb3\x8c\xf2H\x10I3\xcb\x83\xd4\xb4C\xcd\
+\xf2\xca#\xb5T\xa4\xbc\xc8\xa3\x02\x95\x92c\xbf\xffH\
+?\xa8\xaf\xf8~\x9fk\xf6\xc1yf\xf6\x99\x1fe>\
+\xcf\xcc\xdb=\x9e9\x9eY\xc6\xf4JT\x09DZ\xd1\
+ux#\xcf\xa1\x0b\xf1\xae\x03W@\x22\xd2\x01nq\
+\x80[\x1c\xe0\x16\x07\xb8\xc5\x01nq\x80[\x1c\xe0\x16\
+\x07\xb8\xc5\xd1\x00\xe2Y\x0d\xae\x80D\xb8\x03\xdc\xe2\x00\
+\xb78\xc0-\x0ep\x8b\x03\x18c\xcc\xb3\x0a\x5c\x01q\
+\x85\x03\xdc\xe2\x00\xe6-z`\xd7\xba}G&\xa4\xd1\
+\x8ek;>\xc8y>\x90\xe0\x8fa\x8c\xb1X\x7f\xe2\
+\xc0\xacy+\xf6\xdet\x1e\xd2\xa8\xf4\xf5\xc2\x09I\xfa\
+\xebI}\xa6o\xae\x8e\x14\xc8\xad\xe2\x91>fRZ\
+f\x95\xd6E\x00\xa4\xaa\xa0\x03\xb3,]\x0b\xfeQ\x1c\
+R\xf7n\x1b\xc6U\xba|\xae4\xe4d\x7f\xc6]F\
+_V\x17R\xd8\x94\x85Q\x1e\xdag\xf2\x06\x0d6,\
+\xeb\x1d\x86\x04Yx\xa5\xe9g\x86\x97\xba\x80*>\xed\
+($4\x83\x85[\xbc\x85*B\x96\xb2\xf0K\xd4W\
+\xeaAvE\xd9\x800\xff\x19\xd5 \xbf\xc72[\xa5\
+w\x8db\x901\xfa\xfd\x8c{r\xfc\xdcE\xc1\xe0\xfc\
+\xd73S[\xea\xd7\x08\xaa\x05\xd9\xaa\xf7Q\x1e\xbe\xe2\
+T\xc3{\xe5\xe1`\xaaN\xad\x98\xf3*A\xeet\xd1\
+t\xd07\xf3\x9c\xb6\xde\xe1\x17\xb4\x92L\x95 \x85\x9a\
+\xee\x0d:\xad_\xf3\xbbn\x9a\x17\xee\xb4:\x90:\xcd\
+\x98}f\xadQ\xdd\x1b#h\xddI\xea@6\xd2\xbe\
+\xbde\xf66\xa4\x12\xdf\x05e CI\xd7\xc6\x87\xcc\
+j\xdf|\x8cT_\xa2\x0a\xe4\x12\xb9\x17v\xfa\xcb\xbc\
+\xfeq2\xefzD\x15H>\xf9\x1f.\xb5\x0a\xcc%\
+\x81\xc3\x8a@z\xe1n=\x1e\xb2\x0a\x5c\x8d\xc1\x897\
+\xd4\x80\x5c$\xff\xbf[\xad#\xb3p\xa2\x97\x1a\x90\xb5\
+\xb8W\xedk\xac#\xc7\x88\xfd\xa2\x12\x90,\xdc\xa97\
+y2\xe4\x8b\xabD\x09H<\xee\xd4\x01\x9eL\x1e\xce\
+d\xdf\xff\xf7\xaf\x03wKo\xbc\x80\x14\xa0e\xa5\x00\
+\xc8y2\xde\xe5Z\xb3:\x80C=\x0co\xad\x06e\
+\x91\x00\xc8\x16\xdc\xc4X\xbeAM\x1c\x9e)\xdeV\x00\
+\xb2\x107\xf1\x11_j\xa4\xfe\xfbQ&$\x1d7q\
+\x90/\xb5\x18\xa7V*\x00\xc1S\x11\x1f\xe7Zh)\
+\x19-\xcb\x87\xd4\xe0\x81Vw\xce\xd8\x19\xdc\xb1\x0c\xf9\
+\x90s\xfa=\xb2*\xb5>\xdd{\xbbD\xc87V\xc3\
+&\x83\x82\xe7b-\xe4C\x0am}i\x01\x0c\xc7\xb9\
+\xab\xd2!\xe4\x1e\xbd\x997\x97\x8ds'\xa4C\xc8@\
+\xf6G\xde\x5c.\xce\xed\x91\x0e\x99\x88[(\xe3\xcd-\
+\xc7\xb9-\xf7\xa6\xc1ew\xcb~\xf4\xc7@\x19-7\
+\x1e<d\x14\xee\xd0\x9f\xbc\xb9b\x9c+\x94>\xfa}\
+\x0aw\xa8\xd6\xe6\x10-(\x1d\x92\x82\x17@\xc1\xe6\xd7\
+\xf6\x02\xe9\x10\xbcr\xd8\x9e\xbb\x81\x83\xa6\xd31\x09\x90\
+\xcex\xb3\x96\xbb\x012\xdb\xcd\x91\x0ey\x185\x99\xc8\
+\xdd\xc0\xcf\x182C:$\xcej\xad\xcd\xa0\x9c\xc6\x90\
+\xa9\xd2!\xad\xf4\xe7\xac\xe1\x0e6'J\x87\xc4\xda\x1a\
+\xc5k\xc6\xf1\x93\xa4C\xda\xa2&\x13\xb8\x1b8\x81!\
+\xd3\x15\xfb\xb0\xc7s7p\x08CfI\x87\xe0\x99n\
+,w\x03{1$W\xb1\x1b\xa2\x8f\xbb\x81\xdd\x18\xb2\
+X:\xa4\x07\xee\x10\xf7#e\xa5\xa6\x9b=\x12 \x03\
+q\x87n\xf1\xe6\xc8\xcc\xe3=\xe9\x90\xd1\xb8C\xd7l\
+\x0e\xe3WI\x87\x90)\xebY\xde\xdc\x87\xa6\x9b*\x12\
+ \xb3q\x87\xbe\xe7\xcd-0\x9d\x22K\x80\xbc\x83;\
+\xf4\x05on\x8a\xe9\x14Y\x02\xa4\x08w\xa8\xc0\xe6\x14\
+\xf9\xb6t\xc8\xb7\xa6\xf3\x0a\xde\x99%\xbd\x91J\x80\x94\
+aH:g\xac\xbe\x19\x8a%\xcb\x87\x90E\xec$\xce\
+\xd8o\xd8?J>\x04\x12\xf0\xde\x13\xe7c\xfc;1\
+d\x9e\x02\x10rG\xdc\xc7\x97z\x1b\xa76(\x00!\
+{O\xef\xf3\xa52p\xea\xb8\x02\x90m\xe4Iq\xae\
+P\x1d\x9e\x8fE\xff\xab\x00\x84|l[p\xed\xbd\x91\
+U\xad\x9e`\x0a\x19\xe8\x08\x04\xc81\x8b]6>\x22\
+\xaf\x98C\xfa;\x03!\xeb\xf1\xe3y2\x8f\xe2\xcc\x97\
+\xf4\xefW\xd0\x9fS\x9d\x81\xac\xc7\x9dj\xfe\xb7u\x84\
+<\xf8\xe0\xab\xa2\x15*\xcd\xdfyb \x15\x1e\xdc\xad\
+|\xeb\x08y\x0eg\xb0\xa6B->\x00\xe4\x0c\x04\x9e\
+\xc0\xddj[i\x158\x15eIoboI\xa3q\
+\x102G\xa2\xeb\xb8\x9a\x12\x22\x1b\xa1\x1e\x9dG\x9d\xd1\
+\x09'O\x8d3\x90kMH\xc7v\x9a\xd7'\xbbn\
+l\x88N\x9d\x8e\xf66\xf4\x1a\x07\x81\xe7\xe8\x01\xbd\xfd\
+f\xb57\xd1\x03\x1az\xe7\xc6\xba\xa3\x1a;\x1c\x82\xec\
+\xa1\x9b\xae\xb1\xdb\x8c+\xaf\xa2\x87\x14\x93\xf5\x96\x90\xf0\
+\xa3\xc4y\x0eA \x8dJ<\xaf\x19\xec\x8a^\xca\xd4\
+l5\x17\xeb\xd5\x9b\x84\xaa\xf4s\x0a\xb2[\xe7\xacN\
+~\x85\xb6^yn\x8c\xa6bj\xbd\xde\x15\xf3\xccG\
+\xc7\xa2 0DgS?zT\xc1\xd1\x06\xef\x9a;\
+?,\x1b\xe4\xd19e\xa2\xbf\xeeB\x0e\xa44[r\
+\xd3\x19\xc8\x99\xe6\xfaO(4I\x1e\x915mN\xce\
+\xb4\x17\x87v\x8d\xd6\xaf1[\xff\x82\xe74Wz6\
+{N\xee\xb4\x9723\x86\x0d\x08$'\x16\x89\x82\xd8\
+:\xf3\xc6\x18c}\xaa\xf9\x86\xa2\xa4,\x15\x06\xa9\x1d\
+f\xcb\xd1\xae\xdc\xe8\x82\xe3Ls\xf3\x85A\xa0\xb2\xb7\
+\x0dG\x0b\xe3\x85\xc9M\xa6\xc1W\xc5A\xa0\xbcS\xd8\
+\x8eV{\x8d/W\xdd\xda,9A \x04.\xf7\x0b\
+\xd3\xd1\xe1\x88\xd9\xe5r\xcd\xa2cDB\xa0*=,\
+\xc73\x97L\xaf\xf6\x87\xd9\xc9\xf8\xc1B!\x10Z\xdd\
+\x86\xdf\x91b\xf5 Q\x89I\xb8\xafX\x08\xc0\x95\xb1\
+^n\xc9v\xab\x8b\x99\xbc\xb9\x12EC\x00~\x99\xca\
+{:?\xc1r\x9bnY\xb4Q\xb6\xadx\x08@\xc5\
+\xf24\xbe\x97e\xae\xe5\xa5\x8e\x0c6\x88\xfa\x9c\x80\x00\
+@\xc5\x9a\xc9=\xad\x8f\x85G\x9f\xe0X\xa6\x98\x12\xaf\
+\x19\x9du\xcb\x98W\x12r\x06\x02\x00P\xb5o]\xde\
+\xcb\xe9\x81\x94\xc4x\xbf\xbfsR -;\x7f;=\
+*>\xa0\x9eg\x03\xe2\xd8\x9a\x99\xa3\x03\x89q~\x7f\
+\xe7\x94\xa1\xd9\x0b7\xfc\x14\xde\x0f\xc44\x1e\xc21\xc7\
+e\x0e\xfc~\x97\x10H]_\x02i}92!p\
+\x88~\x0b\x8c\x8bP\x08\xdd\xcbelg\x84B\xae\xb7\
+#\x90\xa4\xea\xc8\x84\xc0\xc7\xf6\x9frW\x0bR?\x80\
+NaOF&\x04\x8e\xd2\x1b\xe5\xa0\x90HG\x910\
+\x08=\xa7a\xb0\xae\xf5\xa0\x1c^q\x90\xca\x8et\x00\
+xUX[k\xbdL\x1c\x04>\xa5/\xc9d\x91\x0e\
+\x81\x10\xcdODx\x8e\x0a{_\x89\x85\xfc\x8ag,\
+i\xdb\x05\xbe\x1eB!0\xbf\xc1\x98<\xe3\x08\x08u\
+\x08\x85Tw\xbd\xff\x9bg\xd9gA\xb0C(\xe4\xde\
+\xb3\xb2\xads*@\xb8C,\x042\x18K\x08V\x8a\
+\xbb~\xf1\xff\xc3l\xb1\x90\xf2\xfe\x9f\xd4\x80#\x0e\xc1\
+\x10\xb1\xa5\xa1\x83\xb9\xc5\xc1\xdc\xe2\x88\x5c\xc8F2\xbc\
+v\x8b\x83\xb9\xc5\xc1\xdc\xe2`nq0\xb78\x98[\
+\x1c\xcc-\x8e\xc8\x83l\xd4\xdf\x15\xfa\x0f\x13\xf4\xa6<\
+X\xcd\xe8\x1c\x00\x00\x00\x00IEND\xaeB`\x82\
+\
+\x00\x00\x03\xae\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\xc0\x00\x00\x00\xb0\x04\x03\x00\x00\x00\xab\xd0|\xf5\
+\x00\x00\x00-PLTE\x00\x00\x00A\xcdRA\xcd\
+RA\xcdRD\xccQH\xcbPB\xccQI\xcbP\
+D\xccQE\xccQE\xccQD\xccQD\xccQC\
+\xccQA\xcdR\x9e%\xfb\x88\x00\x00\x00\x0etRN\
+S\x00\x18Oc\x8f\xab\xae\xb8\xbd\xc9\xd6\xdf\xe9\xf0\xe7\
+5\xddl\x00\x00\x03\x22IDATx\xda\xb5\xd8\xc1\
+\x89\xdb@\x18\xc5q)\x15\x08\x1b\x0cY\xf6\x90l\x01\
+\x82m\xc0\x90R\xdc\x80o!\xe7\x94\xa0\x06\x5cB \
+%\xa4\x01\x1fR@\x0e\xbb\x10\xd8\xb0L\x0d9\xd8\xb2\
+\xa5\x19[\xf3\xbd\xf7}o\xee\xf6\x8fw\xd0\x7f\x84\x9a\
+\xc6y\xfa\xa1\xd1\x9e\xfe\xbd\x13\x03\xe9\x97\x1a\x10O\xe8\
+S\xfa\xdd\x89\x81\xf4\xac\x06^;1 \x9d\xd0\xa7\x94\
+\xd2\xdfN\x0c\xa4\x9d\x1a\x10N8\x01\xc2\x09g\xe0\xad\
+\x13\x03iP\x03\xb2\x09# \x9bp\x01T\xcd\xbb\x00\
+\xaal_\x01\xd1\x84+ \xca\xf6\x04\xd04o\x0aH\
+\xb2=\x05$\x13f\x80\xa2y3@\xd1\xbc9 \x98\
+0\x07\x04\x132 \xbey\x19\x10\xdf\xbc\x1c\x08\x9f\x90\
+\x03\xe1\x13\x0a \xbay\x05\x10\x9d\xed\x12`&\xac\x9e\
+\xee\x9em\x01\x10\xd9n\x8f\x09:p\xf3>`\xff\x8f\
+g\x1b\x05\xe0\x090\x806\x0f\x06\xd0\xe6\xe1\x008\x01\
+\x07\xc0\x09\x04\x805\x8f\x00\xb0\xe61\x004\x81\x01\xa0\
+\x09\x14\x804\x8f\x02\x90ls\x000\x81\x03\x80l\x93\
+\x80\xbdy,`\xce6\x0b\x98'\xd0\x80\xb5y4`\
+m\x1e\x0f\x18'\xf0\x80q\x82\x03x\xab\xbd\xb0|q\
+\x02\xa9\x02<\xbch\x81\xf6\xe8\x05^\x97\x81\xc7\xe4\x05\
+\x96\x1f\xb5\xd5\xd1\x0b,\xc7\xa2\xdd&'\xf0\xfeyq\
+\xc0:y\x81\xe5;\xa7\xddz\x81\xca\x95\xb3N^\xe0\
+\xe7\xf2\x80\xbd\x17\xa8\xbc\xb9l\x92\x17\x18\x0c\x03<\x80\
+i\x80\x07\xf8\xbe<\xe0\xe0\x05*W\xc1\xc7\xe4\x05v\
+\xa6\x01<P\x19\xf0\x90\xbc\xc0s%\xd3^\xa0\xf2J\
+\xf4\x98\xbc@5\xd3N\xa0\x9ei\x1f`\xc8\xb4\x0f0\
+d\xda\x05X2\xed\x02,\x99\x9e\x01\xed\x0fA\xe5\xa6\
+\x00\xf8Aj\x00\x06\x9c\x81\x85\xd3\xfb\x060\x80-\xd3\
+<`\xcc4\x0f\xec\xa0\x018`\xcd4\x0dX3\xcd\
+\x02\xe6L\xb3\x809\xd3$`\xcf\xf4\xe5\x17\xf7\x9f\xe1\
+\xa7\xae\x00\x80L[\xce\xa7\x02\x002M\x01H\xa6)\
+\x00\xc94\x03`\x95#\x80!x@\x0e\x84\x0f\xc8\x01\
+,\xd38\x00f\x1a\x07v\xe1\x03\xe6\x00\x9ai\x18@\
+3\x8d\x02p\xa6Q\x00\xce4\x08\xe0\x99\xc6\x80\xe0L\
+\x97@p\xa6\x0b :\xd3\x05\x10\x9d\xe9\x1c\x88\xaf\x5c\
+\x06\x0c\xa2\x01# \x1b0\x02\xcb\x99n\x0e^\xa0\xf6\
+\xfd;y\x81\xda\xe7\xef\xa3\x13XU\x06\x90\x9d\xbb\x02\
+\xd5\xd3\x1e\xc4\x00uYB\x00?\xc1\x08\xf0\x13\xac\x00\
+\xfd,[\x01\xfaa6\x03\xec\x043\xc0N\xb0\x03\xe4\
+\x9df\x07\xc8K\x0d\x00\xb8\x09\x00\xd0\xac\xfe\x88\x01\xaa\
+y\x10\xc0\xbc\x9dB\x003\x01\x03\x88\xe6a\x00\xd1<\
+\x10\xc0'\x80\x00>\x01\x05\xe0\xe6\xa1\x00\xdc<\x18\xb8\
+5\xe1\xdf\xb7\xbb\xe7k\xd7\x04Lxi\x22\xcf\x8d\xe6\
+\xc5\x027\xb2\x1d\x0c\x94\x13\x82\x812\xdb\xd1@\xd1\xbc\
+p \xcfv8\x90O\x88\x07\xb2\xe6\xc5\x03Y\xf3\x04\
+\xc0|\x82\x00\x98OP\x00\xb3\xe6)\x80Y\xf3$\xc0\
+t\x82\x04\x98N\xd0\x00\x93\xe6i\x80I\xb6E\xc0u\
+\x82\x08\xb8f[\x05\x5c\x9a'\x03\xc6l\xcb\x80q\x82\
+\x0e87O\x07\x9c\x9b'\x04N\x13\x84\xc0i\x82\x12\
+h\xf7b\xa0\xd9\xa8\x81v/\x06\x9a\x8d\x1ah\xb7b\
+\xa0Y\xab\x81v\xeb\x06\xfe\x03$\xe7\x91\x89\x97#\xf5\
+\xaf\x00\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x00\xbf\
+/\
+/ Copyright (C) \
+2020 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick.Co\
+ntrols.Material\x0a\
+\x0aToolBar {\x0a M\
+aterial.foregrou\
+nd: \x22white\x22\x0a}\x0a\
+\x00\x00\x01\x0a\
+[\
+Icon Theme]\x0aName\
+=Gallery\x0aComment\
+=Qt Quick Contro\
+ls 2 Gallery Exa\
+mple Icon Theme\x0a\
+\x0aDirectories=20x\
+20,20x20@2,20x20\
+@3,20x20@4\x0a\x0a[20x\
+20]\x0aSize=20\x0aType\
+=Fixed\x0a\x0a[20x20@2\
+]\x0aSize=20\x0aScale=\
+2\x0aType=Fixed\x0a\x0a[2\
+0x20@3]\x0aSize=20\x0a\
+Scale=3\x0aType=Fix\
+ed\x0a\x0a[20x20@4]\x0aSi\
+ze=20\x0aScale=4\x0aTy\
+pe=Fixed\x0a\
+\x00\x00\x00\xe3\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00<\x00\x00\x00<\x04\x03\x00\x00\x00\xc8\xd2\xc4A\
+\x00\x00\x00$PLTE\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6X\x02G\
+\x00\x00\x00\x0ctRNS\x00\x1c\x1d\x1e=l|}\
+\xd8\xd9\xda\xfa\x85T\xfd\xb6\x00\x00\x00bIDAT\
+8\xcbc`\xa070\xc5+\xcb4\xbb\x00\x9f\xb4\xd5\
+\xeemx5\xef\xde]\x80O\xf3\xee\xdd[\xf0j\xde\
+\x9d\x80W\xf36r5k\x8ej\x1e\x11\x9a\xadh\xa7\
+\x99A\x02(\xbd\x1d\xb74c\xf7n\x82\x89\x7f\x1b\xf9\
+\xda)\xb4}T\xfb\x10\xd5Na\xb2\xc1_\xe4\x82\xb5\
+'\x90]\xdc\x03\xb5'PP\xd5P\x0d\x00\x00^\xe9\
+\x99\xeb`\xde0?\x00\x00\x00\x00IEND\xaeB\
+`\x82\
+\x00\x00\x00\x82\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00<\x00\x00\x00<\x02\x03\x00\x00\x00G\x921\xe1\
+\x00\x00\x00\x09PLTE\x00\x00\x00\xff\xff\xff\x00\x00\
+\x00s\xc6\x83q\x00\x00\x00\x02tRNS\x00\x00v\
+\x93\xcd8\x00\x00\x00&IDAT(\xcfc\x08E\
+\x05\x0c\x03\xcd\x0f[\x85\x0c\xa6R\x9d\x1f\xc2\x80\x0cD\
+\x87\x1c\x7f4|\x066|\x06Y~\x01\x00\x0e\xe9\x0f\
+x\xb7\x12\x1d\x13\x00\x00\x00\x00IEND\xaeB`\
+\x82\
+\x00\x00\x00\xc1\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00<\x00\x00\x00<\x04\x03\x00\x00\x00\xc8\xd2\xc4A\
+\x00\x00\x00\x15PLTE\x00\x00\x00\xff\xff\xff\x22\x1f\
+\x1f\x22\x1f\x1f\x22\x1f\x1f\x22\x1f\x1f\x22\x1f\x1fI:\x15\
+.\x00\x00\x00\x06tRNS\x00\x00 0\x9f\xef,\
+\x93$\x03\x00\x00\x00UIDAT8\xcbc\x10\xc4\
+\x0b\x18\xa8'\xcd\xa0\x12\x96\xea\xc4\x80S\x9a9,-\
+-\xd5\x00\xa7\xb4j\x1a\x10\x04\xe1\x94v\x03I\xa7\xe0\
+\x94\x0e\x03I\xa7\xe2\x94N\x03\x03r\xa5\x09\x18N\xc0\
+i\x04<F X\x08\x04*\x03\x18\x8cJ\x8f&\xc5\
+\xd1\xa48\x9a\x14G\x93\x22m\xaa9\x00L\x0e\xa9W\
+\xb5\x91\xf7\x9e\x00\x00\x00\x00IEND\xaeB`\x82\
+\
+\x00\x00\x00\xf6\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00P\x00\x00\x00P\x04\x03\x00\x00\x00|?\xef\x9e\
+\x00\x00\x00\x1bPLTE\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x94Q\xe2 \x00\x00\x00\x09tRNS\x00\
+1267\xe8\xe9\xeb\xfa\x91\xc7O\xc2\x00\x00\x00\x81\
+IDATH\xc7\xed\xd6\xb1\x0d\x800\x0cDQ\x93\
+\xcc\x90\x15R#Q\xd0\xb2\x05l\x00=\x14\xd9 7\
+6#\xf0\x0b\x22\x82d\xd7\xa7gW\xd6\x99\xfd{&\
+\x98\x0b\xfb\xc2\x82Y\x17\xca\xc5\xa2:2P\x88\x0c\x87\
+\xa4\xba0\x90\xec\x0e\x87$\x9d\xcf\xe0\xfc6\x98\x1dt\
+\xd0\xc1\x9e\xc1X\xbe\x02\x87M\xf0#&\xc1\x8f\x88w\
+s\xb2\xc1\x95N:\xe9d{\x92\xd6\x99fW\xa2^\
+\x98\xe0\xc7\xe2E\xd3\x12\x03\xcd\x86\x95\x81\xbc^w3\
+7\xa7\xd5\xc3\xb4x\xa1\x14\xf6\x00\x00\x00\x00IEN\
+D\xaeB`\x82\
+\x00\x00\x00\x83\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00P\x00\x00\x00P\x02\x03\x00\x00\x00\xf3\x7f\x1a>\
+\x00\x00\x00\x09PLTE\x00\x00\x00\xff\xff\xff\x00\x00\
+\x00s\xc6\x83q\x00\x00\x00\x02tRNS\x00\x00v\
+\x93\xcd8\x00\x00\x00'IDAT8\xcbc\x08\xc5\
+\x02\x18F\x8a\xe0*\x0c08\x05\x190\xc0\xa8 %\
+\x82\xa3\xf1>\x1a\xef\x839\xdeGn\x99\x0c\x00\xaa\xfe\
+\xe3\x80<\x1b\xa3\xfb\x00\x00\x00\x00IEND\xaeB\
+`\x82\
+\x00\x00\x00\xdf\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00P\x00\x00\x00P\x04\x03\x00\x00\x00|?\xef\x9e\
+\x00\x00\x00\x18PLTE\x00\x00\x00\xff\xff\xff\x22\x1f\
+\x1f\x22\x1f\x1f\x22\x1f\x1f\x22\x1f\x1f\x22\x1f\x1f\x22\x1f\x1f\
+G\xb0\x1c\xf2\x00\x00\x00\x07tRNS\x00\x00 `\
+\xbf\xcf\xef\x1dV\xbf\x1a\x00\x00\x00oIDATH\
+\xc7c\x10$\x120\x0c\x22\x85\x0c\x0c&\xe5\xe5\xce\x0c\
+\x0c\x84\x15\xaa\x96\x03A\x10a\x85L\xe9 \x85e\x0a\
+\x04\x15\xb2\x96\x83A\x00A\x85\xe6\x10\x85\xc5\x04\x15\xba\
+C\x14\x96\x10TX\x0e\x05\x83Y!\xd1\x9e!:x\
+\x88\x0ep\xa2\xa3\x90\xe8DA|2\x83\x82Q\x85#\
+A\xe1h\xd93Z\xf6\x8c\x96=\xa3\x0aG\xcb\x9e\xd1\
+\xb2gd\x97=\x83\xb0\xaf\x00\x00G\x10>\xf2\xcfQ\
+\xf1\x00\x00\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x00\x92\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x14\x00\x00\x00\x14\x08\x06\x00\x00\x00\x8d\x89\x1d\x0d\
+\x00\x00\x00YIDAT8\x8d\xed\xd4\xb1\x09\x80@\
+\x0c\x05\xd0\x87\x16\x8e\xe4\xa6\xda\x0a\xeeegw\x13X\
+\xd9Z\x08\xe2%bs\xbf\xcfKB $\xa7\xaf\xac\
+\x99P\xb0g\x0c\xb0\xe2\xc0\x86!\x0b+\x18\xa3\xd8\xd2\
+\xb0\x7f\xb1\xeakv\x91\xceo\x92\xbarC\xbfE\xd3\
+\x9e\xc3\x1d\x1a~_Wt\x964\xe1cN\x85\xa7,\
+\x143\xcaZ\x14\x00\x00\x00\x00IEND\xaeB`\
+\x82\
+\x00\x00\x00{\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x14\x00\x00\x00\x14\x08\x06\x00\x00\x00\x8d\x89\x1d\x0d\
+\x00\x00\x00BIDATx\xda\xec\x94\xc1\x0d\x000\
+\x08\x02\x8f\xc6\xfdW\xc6\x1d\x1a|)\x03\x10\xf0\x0c\xb2\
+MR\x8f\xb0\xe2\x86\x05 )\xd2\xdb\xb6f\x12\x02\xda\
+\x03e\xec\x86\xa9\xef>\xcaG\xf9\xcbq\xdf\xc06\x00\
+\x00\x00\xff\xff\x03\x00\xf7\x83\x0c-\xe7\xf9\xf9<\x00\x00\
+\x00\x00IEND\xaeB`\x82\
+\x00\x00\x00{\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x14\x00\x00\x00\x14\x02\x03\x00\x00\x00\xf0\xe7\xf5\x9e\
+\x00\x00\x00\x0cPLTE\x00\x00\x00\xff\xff\xff\x22\x1f\
+\x1f\x22\x1f\x1f\x13\xee\x05I\x00\x00\x00\x03tRNS\
+\x00\x00\x80\x17\xceG\xfe\x00\x00\x00\x1bIDAT\x08\
+[c\x08\x05\x01\x86\xd0\xd0}`\xf2?\x12\x09\x11\xc1\
+D\x94\xab\x04\x02\x00\xd4P%\xa9\xa8Z\xf7\x1d\x00\x00\
+\x00\x00IEND\xaeB`\x82\
+\x00\x00\x00\xb8\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x04\x03\x00\x00\x00~\xd0\xa5^\
+\x00\x00\x00\x18PLTE\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+V7\x1c*\x00\x00\x00\x08tRNS\x00\x0b\x0e\x90\
+\xbc\xbd\xc2\xfa`jr\x94\x00\x00\x00GIDAT\
+(\xcfc` \x0f(+`\x8a1\xa5'a\x0a\x8a\
+\x96\x97a(e\x0c\xc7\x22\xa8V^\x9eD\x94B\xd1\
+\xe1\xa4\x10\x9b\xaf\x99\xd2\xb1\x85\x99;\x16A\xac\xdaq\
+(\x15\x19\x9eJI\x0a\x01,\x82X\x13-\xd6\xe4\x8d\
+\x17\x00\x00\xbe(.\x06\xf5\xa2\x90\xab\x00\x00\x00\x00I\
+END\xaeB`\x82\
+\x00\x00\x00~\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x02\x03\x00\x00\x00\xf1\x90P\xfe\
+\x00\x00\x00\x09PLTE\x00\x00\x00\xff\xff\xff\x00\x00\
+\x00s\xc6\x83q\x00\x00\x00\x02tRNS\x00\x00v\
+\x93\xcd8\x00\x00\x00\x22IDAT\x18\x95c\x08\x85\
+\x03\x062\x99Q\xab\xa0`)af\x00\x03\x14\xb0R\
+\x979\xd4\xdc@q\xa8\x03\x00\xea\x17x\xdd\x86\xef\x87\
+\xad\x00\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x00\x9e\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00(\x00\x00\x00(\x04\x03\x00\x00\x00~\xd0\xa5^\
+\x00\x00\x00\x0fPLTE\x00\x00\x00\xff\xff\xff\x22\x1f\
+\x1f\x22\x1f\x1f\x22\x1f\x1f\xc1T\xc5\x91\x00\x00\x00\x04t\
+RNS\x00\x00P\xdf\x1fD\xf4\x8b\x00\x00\x00:I\
+DAT(\xcfc\x10\xc4\x02\x18\xf0\x0a2\x998+\
+`\x08\xaa\xb8\xb88a\x08\x9a\xb8\xb88c\x08\xba\x00\
+\x01q\x82X\xb5c\xb5\x08\xab\x93\x18\x80`\xe0\x04G\
+Ci8\x85\x12\xc1\xdc\x01\x00\xcb~A\x15\x05\x8a+\
+\xbc\x00\x00\x00\x00IEND\xaeB`\x82\
+"
+
+qt_resource_name = b"\
+\x00\x05\
+\x00o\xa6S\
+\x00i\
+\x00c\x00o\x00n\x00s\
+\x00\x0b\
+\x0cCR|\
+\x00g\
+\x00a\x00l\x00l\x00e\x00r\x00y\x00.\x00q\x00m\x00l\
+\x00\x15\
+\x08\x1e\x16f\
+\x00q\
+\x00t\x00q\x00u\x00i\x00c\x00k\x00c\x00o\x00n\x00t\x00r\x00o\x00l\x00s\x002\x00.\
+\x00c\x00o\x00n\x00f\
+\x00\x09\
+\x08\xac\xef\x1c\
+\x00+\
+\x00M\x00a\x00t\x00e\x00r\x00i\x00a\x00l\
+\x00\x0b\
+\x083\x9c<\
+\x00T\
+\x00o\x00o\x00l\x00B\x00a\x00r\x00.\x00q\x00m\x00l\
+\x00\x06\
+\x07\x03}\xc3\
+\x00i\
+\x00m\x00a\x00g\x00e\x00s\
+\x00\x06\
+\x07\x84+\x02\
+\x00q\
+\x00m\x00l\x00d\x00i\x00r\
+\x00\x05\
+\x00v}\xc3\
+\x00p\
+\x00a\x00g\x00e\x00s\
+\x00\x0f\
+\x07\x87\xe7<\
+\x00S\
+\x00p\x00i\x00n\x00B\x00o\x00x\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
+\x00\x15\
+\x02E\x02\xfc\
+\x00P\
+\x00a\x00g\x00e\x00I\x00n\x00d\x00i\x00c\x00a\x00t\x00o\x00r\x00P\x00a\x00g\x00e\
+\x00.\x00q\x00m\x00l\
+\x00\x0e\
+\x09\x09P|\
+\x00T\
+\x00a\x00b\x00B\x00a\x00r\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
+\x00\x15\
+\x0fE\xff\x5c\
+\x00B\
+\x00u\x00s\x00y\x00I\x00n\x00d\x00i\x00c\x00a\x00t\x00o\x00r\x00P\x00a\x00g\x00e\
+\x00.\x00q\x00m\x00l\
+\x00\x12\
+\x05P\x5c\x1c\
+\x00S\
+\x00c\x00r\x00o\x00l\x00l\x00a\x00b\x00l\x00e\x00P\x00a\x00g\x00e\x00.\x00q\x00m\
+\x00l\
+\x00\x13\
+\x0dr\xfb|\
+\x00P\
+\x00r\x00o\x00g\x00r\x00e\x00s\x00s\x00B\x00a\x00r\x00P\x00a\x00g\x00e\x00.\x00q\
+\x00m\x00l\
+\x00\x0f\
+\x0b\xe33|\
+\x00T\
+\x00o\x00o\x00l\x00T\x00i\x00p\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
+\x00\x10\
+\x06\xd3\x8b\x1c\
+\x00T\
+\x00e\x00x\x00t\x00A\x00r\x00e\x00a\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
+\x00\x0e\
+\x02%\xd0|\
+\x00S\
+\x00l\x00i\x00d\x00e\x00r\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
+\x00\x0f\
+\x00\xf4\xb9\xfc\
+\x00T\
+\x00u\x00m\x00b\x00l\x00e\x00r\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
+\x00\x0e\
+\x0e\xa2\x84\x9c\
+\x00B\
+\x00u\x00t\x00t\x00o\x00n\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
+\x00\x0e\
+\x0b\xc5|\x5c\
+\x00S\
+\x00w\x00i\x00t\x00c\x00h\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
+\x00\x11\
+\x0fw<\xdc\
+\x00T\
+\x00e\x00x\x00t\x00F\x00i\x00e\x00l\x00d\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
+\
+\x00\x10\
+\x05\xb8\x16\x1c\
+\x00C\
+\x00o\x00m\x00b\x00o\x00B\x00o\x00x\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
+\x00\x10\
+\x00w\xb4\x5c\
+\x00D\
+\x00e\x00l\x00e\x00g\x00a\x00t\x00e\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
+\x00\x0c\
+\x0e\x8bV\xfc\
+\x00D\
+\x00i\x00a\x00l\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
+\x00\x0d\
+\x0c\xc8%\xdc\
+\x00F\
+\x00r\x00a\x00m\x00e\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
+\x00\x11\
+\x03$Q\x5c\
+\x00S\
+\x00w\x00i\x00p\x00e\x00V\x00i\x00e\x00w\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
+\
+\x00\x11\
+\x00\xa3\xff|\
+\x00S\
+\x00c\x00r\x00o\x00l\x00l\x00B\x00a\x00r\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
+\
+\x00\x13\
+\x002\xb3\xbc\
+\x00R\
+\x00a\x00n\x00g\x00e\x00S\x00l\x00i\x00d\x00e\x00r\x00P\x00a\x00g\x00e\x00.\x00q\
+\x00m\x00l\
+\x00\x10\
+\x0fY+\x5c\
+\x00G\
+\x00r\x00o\x00u\x00p\x00B\x00o\x00x\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
+\x00\x13\
+\x0fN\x9e\x5c\
+\x00R\
+\x00a\x00d\x00i\x00o\x00B\x00u\x00t\x00t\x00o\x00n\x00P\x00a\x00g\x00e\x00.\x00q\
+\x00m\x00l\
+\x00\x17\
+\x0a>\xfa\x1c\
+\x00S\
+\x00c\x00r\x00o\x00l\x00l\x00I\x00n\x00d\x00i\x00c\x00a\x00t\x00o\x00r\x00P\x00a\
+\x00g\x00e\x00.\x00q\x00m\x00l\
+\x00\x0e\
+\x08\xd2\xfe\x5c\
+\x00D\
+\x00i\x00a\x00l\x00o\x00g\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
+\x00\x10\
+\x048\xf8\x1c\
+\x00C\
+\x00h\x00e\x00c\x00k\x00B\x00o\x00x\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
+\x00\x13\
+\x05\xac\xa6\xdc\
+\x00D\
+\x00e\x00l\x00a\x00y\x00B\x00u\x00t\x00t\x00o\x00n\x00P\x00a\x00g\x00e\x00.\x00q\
+\x00m\x00l\
+\x00\x11\
+\x07%R|\
+\x00S\
+\x00t\x00a\x00c\x00k\x00V\x00i\x00e\x00w\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
+\
+\x00\x09\
+\x09j\x86g\
+\x00a\
+\x00r\x00r\x00o\x00w\x00.\x00p\x00n\x00g\
+\x00\x0a\
+\x06\xebDg\
+\x00a\
+\x00r\x00r\x00o\x00w\x00s\x00.\x00p\x00n\x00g\
+\x00\x0e\
+\x0d=\xfd'\
+\x00q\
+\x00t\x00-\x00l\x00o\x00g\x00o\x00@\x004\x00x\x00.\x00p\x00n\x00g\
+\x00\x0d\
+\x02\xa9\x8a\x07\
+\x00a\
+\x00r\x00r\x00o\x00w\x00s\x00@\x002\x00x\x00.\x00p\x00n\x00g\
+\x00\x0c\
+\x0e\xa8z'\
+\x00a\
+\x00r\x00r\x00o\x00w\x00@\x004\x00x\x00.\x00p\x00n\x00g\
+\x00\x0c\
+\x0e\xb8z'\
+\x00a\
+\x00r\x00r\x00o\x00w\x00@\x003\x00x\x00.\x00p\x00n\x00g\
+\x00\x0e\
+\x0d-\xfd'\
+\x00q\
+\x00t\x00-\x00l\x00o\x00g\x00o\x00@\x003\x00x\x00.\x00p\x00n\x00g\
+\x00\x0c\
+\x0e\x88z'\
+\x00a\
+\x00r\x00r\x00o\x00w\x00@\x002\x00x\x00.\x00p\x00n\x00g\
+\x00\x0e\
+\x0d\x1d\xfd'\
+\x00q\
+\x00t\x00-\x00l\x00o\x00g\x00o\x00@\x002\x00x\x00.\x00p\x00n\x00g\
+\x00\x0d\
+\x02\x89\x8a\x07\
+\x00a\
+\x00r\x00r\x00o\x00w\x00s\x00@\x004\x00x\x00.\x00p\x00n\x00g\
+\x00\x0b\
+\x05R\xbf'\
+\x00q\
+\x00t\x00-\x00l\x00o\x00g\x00o\x00.\x00p\x00n\x00g\
+\x00\x0d\
+\x02\x99\x8a\x07\
+\x00a\
+\x00r\x00r\x00o\x00w\x00s\x00@\x003\x00x\x00.\x00p\x00n\x00g\
+\x00\x07\
+\x0d\x83,Y\
+\x00g\
+\x00a\x00l\x00l\x00e\x00r\x00y\
+\x00\x07\
+\x05{TR\
+\x002\
+\x000\x00x\x002\x000\x00@\x002\
+\x00\x05\
+\x005{P\
+\x002\
+\x000\x00x\x002\x000\
+\x00\x07\
+\x05{TT\
+\x002\
+\x000\x00x\x002\x000\x00@\x004\
+\x00\x0b\
+\x0b\xba\x81\xb5\
+\x00i\
+\x00n\x00d\x00e\x00x\x00.\x00t\x00h\x00e\x00m\x00e\
+\x00\x07\
+\x05{TS\
+\x002\
+\x000\x00x\x002\x000\x00@\x003\
+\x00\x08\
+\x07\x9eZG\
+\x00b\
+\x00a\x00c\x00k\x00.\x00p\x00n\x00g\
+\x00\x0a\
+\x0d\xc8&G\
+\x00d\
+\x00r\x00a\x00w\x00e\x00r\x00.\x00p\x00n\x00g\
+\x00\x08\
+\x0cXY'\
+\x00m\
+\x00e\x00n\x00u\x00.\x00p\x00n\x00g\
+"
+
+qt_resource_struct = b"\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x08\x00\x00\x00\x01\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x001\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\xb4\x00\x02\x00\x00\x00\x1b\x00\x00\x00\x16\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x90\x00\x02\x00\x00\x00\x0c\x00\x00\x00\x0a\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\xa2\x00\x00\x00\x00\x00\x01\x00\x00\x0a\xc1\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x00,\x00\x00\x00\x00\x00\x01\x00\x00\x09\xc5\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x00t\x00\x00\x00\x00\x00\x01\x00\x00\x0a)\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x00\x5c\x00\x02\x00\x00\x00\x01\x00\x00\x00\x09\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x10\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\
+\x00\x00\x01\x86\xcc\xe0s'\
+\x00\x00\x00t\x00\x00\x00\x00\x00\x01\x00\x00\xe93\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x05\xf6\x00\x00\x00\x00\x00\x01\x00\x00\xd5\x9d\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x062\x00\x00\x00\x00\x00\x01\x00\x00\xe5\x81\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x058\x00\x00\x00\x00\x00\x01\x00\x00\x9b\xf7\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x06\x16\x00\x00\x00\x00\x00\x01\x00\x00\xda\x5c\
+\x00\x00\x01\x87\x137-\xff\
+\x00\x00\x04\xfc\x00\x00\x00\x00\x00\x01\x00\x00u\x04\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x04\xe4\x00\x00\x00\x00\x00\x01\x00\x00s\xc1\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x05\xd4\x00\x00\x00\x00\x00\x01\x00\x00\xc2Q\
+\x00\x00\x01\x87\x137\xd0\xfa\
+\x00\x00\x05\x94\x00\x00\x00\x00\x00\x01\x00\x00\xa4\x17\
+\x00\x00\x01\x87\x137\xd0\xfa\
+\x00\x00\x05\x16\x00\x00\x00\x00\x00\x01\x00\x00v\xd2\
+\x00\x00\x01\x87\x137\xd0\xfe\
+\x00\x00\x05\xb6\x00\x00\x00\x00\x00\x01\x00\x00\xc0q\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x05X\x00\x00\x00\x00\x00\x01\x00\x00\x9e\xb6\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x05v\x00\x00\x00\x00\x00\x01\x00\x00\xa1\xb0\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x03\x96\x00\x00\x00\x00\x00\x01\x00\x00O+\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x02\xe2\x00\x01\x00\x00\x00\x01\x00\x009\x1c\
+\x00\x00\x01\x86\xcc\xe0s'\
+\x00\x00\x03n\x00\x00\x00\x00\x00\x01\x00\x00J\xec\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x02,\x00\x00\x00\x00\x00\x01\x00\x00&\x88\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x02\x0a\x00\x00\x00\x00\x00\x01\x00\x00#\x85\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x00\xe8\x00\x00\x00\x00\x00\x01\x00\x00\x0d\xdf\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x03F\x00\x00\x00\x00\x00\x01\x00\x00E\xa6\
+\x00\x00\x01\x86\xcc\xe0s'\
+\x00\x00\x04j\x00\x00\x00\x00\x00\x01\x00\x00e\x81\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x01j\x00\x00\x00\x00\x00\x01\x00\x00\x18\xb0\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x04\x90\x00\x00\x00\x00\x00\x01\x00\x00ie\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x02\xbc\x00\x00\x00\x00\x00\x01\x00\x003L\
+\x00\x00\x01\x86\xcc\xe0s'\
+\x00\x00\x01\xe4\x00\x00\x00\x00\x00\x01\x00\x00 \xe6\
+\x00\x00\x01\x86\xcc\xe0s'\
+\x00\x00\x04\xbc\x00\x00\x00\x00\x00\x01\x00\x00l\x1e\
+\x00\x00\x01\x86\xcc\xe0s'\
+\x00\x00\x00\xc4\x00\x00\x00\x00\x00\x01\x00\x00\x0a\xd0\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x04H\x00\x01\x00\x00\x00\x01\x00\x00_\xe4\
+\x00\x00\x01\x86\xcc\xe0s'\
+\x00\x00\x01\x18\x00\x00\x00\x00\x00\x01\x00\x00\x10g\
+\x00\x00\x01\x86\xcc\xe0s'\
+\x00\x00\x04\x14\x00\x00\x00\x00\x00\x01\x00\x00[\x8b\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x02r\x00\x00\x00\x00\x00\x01\x00\x00->\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x01\xc0\x00\x00\x00\x00\x00\x01\x00\x00\x1e\x08\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x03&\x00\x00\x00\x00\x00\x01\x00\x00@\xba\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x01\x94\x00\x00\x00\x00\x00\x01\x00\x00\x1a\xb5\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x03\x08\x00\x00\x00\x00\x00\x01\x00\x00=\xee\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x02P\x00\x00\x00\x00\x00\x01\x00\x00(\xd1\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x01:\x00\x00\x00\x00\x00\x01\x00\x00\x15\xe6\
+\x00\x00\x01\x86\xcc\xe0s'\
+\x00\x00\x03\xe8\x00\x00\x00\x00\x00\x01\x00\x00W\xc0\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x03\xc2\x00\x00\x00\x00\x00\x01\x00\x00R\xa5\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x02\x94\x00\x00\x00\x00\x00\x01\x00\x000\xe7\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x06R\x00\x02\x00\x00\x00\x05\x00\x00\x002\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x06z\x00\x02\x00\x00\x00\x03\x00\x00\x00@\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x06f\x00\x02\x00\x00\x00\x03\x00\x00\x00=\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x06\xba\x00\x02\x00\x00\x00\x03\x00\x00\x00:\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x06\x8a\x00\x02\x00\x00\x00\x03\x00\x00\x007\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x06\x9e\x00\x00\x00\x00\x00\x01\x00\x00\xe9\xf6\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x06\xce\x00\x00\x00\x00\x00\x01\x00\x00\xed6\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x06\xfe\x00\x00\x00\x00\x00\x01\x00\x00\xee\xb7\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x06\xe4\x00\x00\x00\x00\x00\x01\x00\x00\xee0\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x06\xce\x00\x00\x00\x00\x00\x01\x00\x00\xeb\x04\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x06\xfe\x00\x00\x00\x00\x00\x01\x00\x00\xecq\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x06\xe4\x00\x00\x00\x00\x00\x01\x00\x00\xeb\xeb\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x06\xce\x00\x00\x00\x00\x00\x01\x00\x00\xf1.\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x06\xfe\x00\x00\x00\x00\x00\x01\x00\x00\xf2l\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x06\xe4\x00\x00\x00\x00\x00\x01\x00\x00\xf1\xea\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x06\xce\x00\x00\x00\x00\x00\x01\x00\x00\xef\x9a\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x06\xfe\x00\x00\x00\x00\x00\x01\x00\x00\xf0\xaf\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+\x00\x00\x06\xe4\x00\x00\x00\x00\x00\x01\x00\x00\xf00\
+\x00\x00\x01\x86\xb7m\x07\x8b\
+"
+
+def qInitResources():
+ QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+def qCleanupResources():
+ QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+qInitResources()
diff --git a/examples/quickcontrols2/gallery/+Material/ToolBar.qml b/examples/quickcontrols2/gallery/+Material/ToolBar.qml
deleted file mode 100644
index 18ca5c82f..000000000
--- a/examples/quickcontrols2/gallery/+Material/ToolBar.qml
+++ /dev/null
@@ -1,55 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick.Controls.Material
-
-ToolBar {
- Material.foreground: "white"
-}
diff --git a/examples/quickcontrols2/gallery/ToolBar.qml b/examples/quickcontrols2/gallery/ToolBar.qml
deleted file mode 100644
index 20341df8e..000000000
--- a/examples/quickcontrols2/gallery/ToolBar.qml
+++ /dev/null
@@ -1,53 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick.Controls
-
-ToolBar {}
diff --git a/examples/quickcontrols2/gallery/doc/gallery.rst b/examples/quickcontrols2/gallery/doc/gallery.rst
deleted file mode 100644
index 29cd49f14..000000000
--- a/examples/quickcontrols2/gallery/doc/gallery.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-Qt Quick Controls 2 - Gallery
-=============================
-
-The gallery example is a simple application with a drawer menu that contains
-all the Qt Quick Controls 2. Each menu item opens a page that shows the
-graphical appearance of a control, allows you to interact with the control, and
-explains in which circumstances it is handy to use this control.
diff --git a/examples/quickcontrols2/gallery/gallery.py b/examples/quickcontrols2/gallery/gallery.py
deleted file mode 100644
index f4c3f3795..000000000
--- a/examples/quickcontrols2/gallery/gallery.py
+++ /dev/null
@@ -1,99 +0,0 @@
-############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## BSD License Usage
-## Alternatively, you may use this file under the terms of the BSD license
-## as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-############################################################################
-
-"""
-The gallery example is a simple application with a drawer menu that contains
-all the Qt Quick Controls. Each menu item opens a page that shows the
-graphical appearance of a control, allows you to interact with the control,
-and explains in which circumstances it is handy to use this control.
-"""
-
-import os
-import sys
-import platform
-
-from PySide6.QtGui import QGuiApplication, QIcon
-from PySide6.QtCore import QSettings
-from PySide6.QtQml import QQmlApplicationEngine
-from PySide6.QtQuickControls2 import QQuickStyle
-
-import rc_gallery
-
-if __name__ == "__main__":
- QGuiApplication.setApplicationName("Gallery")
- QGuiApplication.setOrganizationName("QtProject")
-
- app = QGuiApplication()
- QIcon.setThemeName("gallery")
-
- settings = QSettings()
- if not os.environ.get("QT_QUICK_CONTROLS_STYLE"):
- style_name = settings.value("style")
- if style_name:
- QQuickStyle.setStyle(style_name)
-
- engine = QQmlApplicationEngine()
-
- built_in_styles = ["Basic", "Fusion", "Imagine", "Material", "Universal"]
- if platform.system() == "Darwin":
- built_in_styles.append("macOS")
- elif platform.system() == "Windows":
- built_in_styles.append("Windows")
- engine.setInitialProperties({"builtInStyles": built_in_styles})
-
- engine.load(":/gallery.qml")
- rootObjects = engine.rootObjects()
- if not rootObjects:
- sys.exit(-1)
-
- window = rootObjects[0]
- window.setIcon(QIcon(':/qt-project.org/logos/pysidelogo.png'))
-
- sys.exit(app.exec())
diff --git a/examples/quickcontrols2/gallery/gallery.pyproject b/examples/quickcontrols2/gallery/gallery.pyproject
deleted file mode 100644
index 894fdb5fd..000000000
--- a/examples/quickcontrols2/gallery/gallery.pyproject
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "files": ["gallery.py",
- "gallery.qml",
- "gallery.qrc",
- "rc_gallery.py",
- "qmldir",
- "qtquickcontrols2.conf",
- "ToolBar.qml",
- "+Material/ToolBar.qml",
- "pages/ComboBoxPage.qml",
- "pages/FramePage.qml",
- "pages/SliderPage.qml",
- "pages/TumblerPage.qml",
- "pages/SpinBoxPage.qml",
- "pages/ProgressBarPage.qml",
- "pages/DelegatePage.qml",
- "pages/StackViewPage.qml",
- "pages/DialPage.qml",
- "pages/PageIndicatorPage.qml",
- "pages/SwipeViewPage.qml",
- "pages/TabBarPage.qml",
- "pages/TextFieldPage.qml",
- "pages/GroupBoxPage.qml",
- "pages/RadioButtonPage.qml",
- "pages/ButtonPage.qml",
- "pages/ScrollIndicatorPage.qml",
- "pages/ScrollablePage.qml",
- "pages/DialogPage.qml",
- "pages/ToolTipPage.qml",
- "pages/CheckBoxPage.qml",
- "pages/TextAreaPage.qml",
- "pages/RangeSliderPage.qml",
- "pages/DelayButtonPage.qml",
- "pages/SwitchPage.qml",
- "pages/ScrollBarPage.qml",
- "pages/BusyIndicatorPage.qml"]
-}
diff --git a/examples/quickcontrols2/gallery/gallery.qml b/examples/quickcontrols2/gallery/gallery.qml
deleted file mode 100644
index 398aa73a1..000000000
--- a/examples/quickcontrols2/gallery/gallery.qml
+++ /dev/null
@@ -1,342 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Layouts
-import QtQuick.Controls
-import Qt.labs.settings
-
-import "." as App
-
-ApplicationWindow {
- id: window
- width: 360
- height: 520
- visible: true
- title: "Qt Quick Controls"
-
- function help() {
- let displayingControl = listView.currentIndex !== -1
- let currentControlName = displayingControl
- ? listView.model.get(listView.currentIndex).title.toLowerCase() : ""
- let url = "https://doc.qt.io/qt-5/"
- + (displayingControl
- ? "qml-qtquick-controls2-" + currentControlName + ".html"
- : "qtquick-controls2-qmlmodule.html");
- Qt.openUrlExternally(url)
- }
-
- required property var builtInStyles
-
- Settings {
- id: settings
- property string style
- }
-
- Shortcut {
- sequences: ["Esc", "Back"]
- enabled: stackView.depth > 1
- onActivated: navigateBackAction.trigger()
- }
-
- Shortcut {
- sequence: StandardKey.HelpContents
- onActivated: help()
- }
-
- Action {
- id: navigateBackAction
- icon.name: stackView.depth > 1 ? "back" : "drawer"
- onTriggered: {
- if (stackView.depth > 1) {
- stackView.pop()
- listView.currentIndex = -1
- } else {
- drawer.open()
- }
- }
- }
-
- Shortcut {
- sequence: "Menu"
- onActivated: optionsMenuAction.trigger()
- }
-
- Action {
- id: optionsMenuAction
- icon.name: "menu"
- onTriggered: optionsMenu.open()
- }
-
- header: App.ToolBar {
- RowLayout {
- spacing: 20
- anchors.fill: parent
-
- ToolButton {
- action: navigateBackAction
- }
-
- Label {
- id: titleLabel
- text: listView.currentItem ? listView.currentItem.text : "Gallery"
- font.pixelSize: 20
- elide: Label.ElideRight
- horizontalAlignment: Qt.AlignHCenter
- verticalAlignment: Qt.AlignVCenter
- Layout.fillWidth: true
- }
-
- ToolButton {
- action: optionsMenuAction
-
- Menu {
- id: optionsMenu
- x: parent.width - width
- transformOrigin: Menu.TopRight
-
- Action {
- text: "Settings"
- onTriggered: settingsDialog.open()
- }
- Action {
- text: "Help"
- onTriggered: help()
- }
- Action {
- text: "About"
- onTriggered: aboutDialog.open()
- }
- }
- }
- }
- }
-
- Drawer {
- id: drawer
- width: Math.min(window.width, window.height) / 3 * 2
- height: window.height
- interactive: stackView.depth === 1
-
- ListView {
- id: listView
-
- focus: true
- currentIndex: -1
- anchors.fill: parent
-
- delegate: ItemDelegate {
- width: listView.width
- text: model.title
- highlighted: ListView.isCurrentItem
- onClicked: {
- listView.currentIndex = index
- stackView.push(model.source)
- drawer.close()
- }
- }
-
- model: ListModel {
- ListElement { title: "BusyIndicator"; source: "qrc:/pages/BusyIndicatorPage.qml" }
- ListElement { title: "Button"; source: "qrc:/pages/ButtonPage.qml" }
- ListElement { title: "CheckBox"; source: "qrc:/pages/CheckBoxPage.qml" }
- ListElement { title: "ComboBox"; source: "qrc:/pages/ComboBoxPage.qml" }
- ListElement { title: "DelayButton"; source: "qrc:/pages/DelayButtonPage.qml" }
- ListElement { title: "Dial"; source: "qrc:/pages/DialPage.qml" }
- ListElement { title: "Dialog"; source: "qrc:/pages/DialogPage.qml" }
- ListElement { title: "Delegates"; source: "qrc:/pages/DelegatePage.qml" }
- ListElement { title: "Frame"; source: "qrc:/pages/FramePage.qml" }
- ListElement { title: "GroupBox"; source: "qrc:/pages/GroupBoxPage.qml" }
- ListElement { title: "PageIndicator"; source: "qrc:/pages/PageIndicatorPage.qml" }
- ListElement { title: "ProgressBar"; source: "qrc:/pages/ProgressBarPage.qml" }
- ListElement { title: "RadioButton"; source: "qrc:/pages/RadioButtonPage.qml" }
- ListElement { title: "RangeSlider"; source: "qrc:/pages/RangeSliderPage.qml" }
- ListElement { title: "ScrollBar"; source: "qrc:/pages/ScrollBarPage.qml" }
- ListElement { title: "ScrollIndicator"; source: "qrc:/pages/ScrollIndicatorPage.qml" }
- ListElement { title: "Slider"; source: "qrc:/pages/SliderPage.qml" }
- ListElement { title: "SpinBox"; source: "qrc:/pages/SpinBoxPage.qml" }
- ListElement { title: "StackView"; source: "qrc:/pages/StackViewPage.qml" }
- ListElement { title: "SwipeView"; source: "qrc:/pages/SwipeViewPage.qml" }
- ListElement { title: "Switch"; source: "qrc:/pages/SwitchPage.qml" }
- ListElement { title: "TabBar"; source: "qrc:/pages/TabBarPage.qml" }
- ListElement { title: "TextArea"; source: "qrc:/pages/TextAreaPage.qml" }
- ListElement { title: "TextField"; source: "qrc:/pages/TextFieldPage.qml" }
- ListElement { title: "ToolTip"; source: "qrc:/pages/ToolTipPage.qml" }
- ListElement { title: "Tumbler"; source: "qrc:/pages/TumblerPage.qml" }
- }
-
- ScrollIndicator.vertical: ScrollIndicator { }
- }
- }
-
- StackView {
- id: stackView
- anchors.fill: parent
-
- initialItem: Pane {
- id: pane
-
- Image {
- id: logo
- width: pane.availableWidth / 2
- height: pane.availableHeight / 2
- anchors.centerIn: parent
- anchors.verticalCenterOffset: -50
- fillMode: Image.PreserveAspectFit
- source: "images/qt-logo.png"
- }
-
- Label {
- text: "Qt Quick Controls provides a set of controls that can be used to build complete interfaces in Qt Quick."
- anchors.margins: 20
- anchors.top: logo.bottom
- anchors.left: parent.left
- anchors.right: parent.right
- anchors.bottom: arrow.top
- horizontalAlignment: Label.AlignHCenter
- verticalAlignment: Label.AlignVCenter
- wrapMode: Label.Wrap
- }
-
- Image {
- id: arrow
- source: "images/arrow.png"
- anchors.left: parent.left
- anchors.bottom: parent.bottom
- }
- }
- }
-
- Dialog {
- id: settingsDialog
- x: Math.round((window.width - width) / 2)
- y: Math.round(window.height / 6)
- width: Math.round(Math.min(window.width, window.height) / 3 * 2)
- modal: true
- focus: true
- title: "Settings"
-
- standardButtons: Dialog.Ok | Dialog.Cancel
- onAccepted: {
- settings.style = styleBox.displayText
- settingsDialog.close()
- }
- onRejected: {
- styleBox.currentIndex = styleBox.styleIndex
- settingsDialog.close()
- }
-
- contentItem: ColumnLayout {
- id: settingsColumn
- spacing: 20
-
- RowLayout {
- spacing: 10
-
- Label {
- text: "Style:"
- }
-
- ComboBox {
- id: styleBox
- property int styleIndex: -1
- model: window.builtInStyles
- Component.onCompleted: {
- styleIndex = find(settings.style, Qt.MatchFixedString)
- if (styleIndex !== -1)
- currentIndex = styleIndex
- }
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: "Restart required"
- color: "#e41e25"
- opacity: styleBox.currentIndex !== styleBox.styleIndex ? 1.0 : 0.0
- horizontalAlignment: Label.AlignHCenter
- verticalAlignment: Label.AlignVCenter
- Layout.fillWidth: true
- Layout.fillHeight: true
- }
- }
- }
-
- Dialog {
- id: aboutDialog
- modal: true
- focus: true
- title: "About"
- x: (window.width - width) / 2
- y: window.height / 6
- width: Math.min(window.width, window.height) / 3 * 2
- contentHeight: aboutColumn.height
-
- Column {
- id: aboutColumn
- spacing: 20
-
- Label {
- width: aboutDialog.availableWidth
- text: "The Qt Quick Controls module delivers the next generation user interface controls based on Qt Quick."
- wrapMode: Label.Wrap
- font.pixelSize: 12
- }
-
- Label {
- width: aboutDialog.availableWidth
- text: "In comparison to Qt Quick Controls 1, Qt Quick Controls "
- + "are an order of magnitude simpler, lighter, and faster."
- wrapMode: Label.Wrap
- font.pixelSize: 12
- }
- }
- }
-}
diff --git a/examples/quickcontrols2/gallery/images/qt-logo.png b/examples/quickcontrols2/gallery/images/qt-logo.png
deleted file mode 100644
index dff772951..000000000
--- a/examples/quickcontrols2/gallery/images/qt-logo.png
+++ /dev/null
Binary files differ
diff --git a/examples/quickcontrols2/gallery/images/qt-logo@2x.png b/examples/quickcontrols2/gallery/images/qt-logo@2x.png
deleted file mode 100644
index dbd73aab7..000000000
--- a/examples/quickcontrols2/gallery/images/qt-logo@2x.png
+++ /dev/null
Binary files differ
diff --git a/examples/quickcontrols2/gallery/images/qt-logo@3x.png b/examples/quickcontrols2/gallery/images/qt-logo@3x.png
deleted file mode 100644
index 68e763b59..000000000
--- a/examples/quickcontrols2/gallery/images/qt-logo@3x.png
+++ /dev/null
Binary files differ
diff --git a/examples/quickcontrols2/gallery/images/qt-logo@4x.png b/examples/quickcontrols2/gallery/images/qt-logo@4x.png
deleted file mode 100644
index 08fd88257..000000000
--- a/examples/quickcontrols2/gallery/images/qt-logo@4x.png
+++ /dev/null
Binary files differ
diff --git a/examples/quickcontrols2/gallery/pages/BusyIndicatorPage.qml b/examples/quickcontrols2/gallery/pages/BusyIndicatorPage.qml
deleted file mode 100644
index 867f5d288..000000000
--- a/examples/quickcontrols2/gallery/pages/BusyIndicatorPage.qml
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-ScrollablePage {
- id: page
-
- Column {
- spacing: 40
- width: parent.width
-
- Label {
- width: parent.width
- wrapMode: Label.Wrap
- horizontalAlignment: Qt.AlignHCenter
- text: "BusyIndicator is used to indicate activity while content is being loaded,"
- + " or when the UI is blocked waiting for a resource to become available."
- }
-
- BusyIndicator {
- anchors.horizontalCenter: parent.horizontalCenter
- }
- }
-}
diff --git a/examples/quickcontrols2/gallery/pages/ButtonPage.qml b/examples/quickcontrols2/gallery/pages/ButtonPage.qml
deleted file mode 100644
index 384045700..000000000
--- a/examples/quickcontrols2/gallery/pages/ButtonPage.qml
+++ /dev/null
@@ -1,91 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Layouts
-import QtQuick.Controls
-
-ScrollablePage {
- id: page
-
- Column {
- spacing: 40
- width: parent.width
-
- Label {
- width: parent.width
- wrapMode: Label.Wrap
- horizontalAlignment: Qt.AlignHCenter
- text: "Button presents a push-button that can be pushed or clicked by the user. "
- + "Buttons are normally used to perform an action, or to answer a question."
- }
-
- ColumnLayout {
- spacing: 20
- anchors.horizontalCenter: parent.horizontalCenter
-
- Button {
- text: "First"
- Layout.fillWidth: true
- }
- Button {
- id: button
- text: "Second"
- highlighted: true
- Layout.fillWidth: true
- }
- Button {
- text: "Third"
- enabled: false
- Layout.fillWidth: true
- }
- }
- }
-}
diff --git a/examples/quickcontrols2/gallery/pages/CheckBoxPage.qml b/examples/quickcontrols2/gallery/pages/CheckBoxPage.qml
deleted file mode 100644
index 39ea53ca6..000000000
--- a/examples/quickcontrols2/gallery/pages/CheckBoxPage.qml
+++ /dev/null
@@ -1,87 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-ScrollablePage {
- id: page
-
- Column {
- spacing: 40
- width: parent.width
-
- Label {
- width: parent.width
- wrapMode: Label.Wrap
- horizontalAlignment: Qt.AlignHCenter
- text: "CheckBox presents an option button that can be toggled on or off. "
- + "Check boxes are typically used to select one or more options from a set of options."
- }
-
- Column {
- spacing: 20
- anchors.horizontalCenter: parent.horizontalCenter
-
- CheckBox {
- text: "First"
- checked: true
- }
- CheckBox {
- text: "Second"
- }
- CheckBox {
- text: "Third"
- checked: true
- enabled: false
- }
- }
- }
-}
diff --git a/examples/quickcontrols2/gallery/pages/ComboBoxPage.qml b/examples/quickcontrols2/gallery/pages/ComboBoxPage.qml
deleted file mode 100644
index 04bb634ab..000000000
--- a/examples/quickcontrols2/gallery/pages/ComboBoxPage.qml
+++ /dev/null
@@ -1,97 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-ScrollablePage {
- id: page
-
- Column {
- spacing: 40
- width: parent.width
-
- Label {
- width: parent.width
- wrapMode: Label.Wrap
- horizontalAlignment: Qt.AlignHCenter
- text: "ComboBox is a combined button and popup list. It presents "
- + "a list of options to the user that occupies minimal screen space."
- }
-
- ComboBox {
- model: ["First", "Second", "Third"]
- anchors.horizontalCenter: parent.horizontalCenter
- }
-
- Label {
- width: parent.width
- wrapMode: Label.Wrap
- horizontalAlignment: Qt.AlignHCenter
- text: "ComboBox can be made \l editable. An editable combo box auto-"
- + "completes its text based on what is available in the model."
- }
-
- ComboBox {
- editable: true
- model: ListModel {
- id: model
- ListElement { text: "Banana" }
- ListElement { text: "Apple" }
- ListElement { text: "Coconut" }
- }
- onAccepted: {
- if (find(editText) === -1)
- model.append({text: editText})
- }
- anchors.horizontalCenter: parent.horizontalCenter
- }
- }
-}
diff --git a/examples/quickcontrols2/gallery/pages/DelayButtonPage.qml b/examples/quickcontrols2/gallery/pages/DelayButtonPage.qml
deleted file mode 100644
index b0cc30c2d..000000000
--- a/examples/quickcontrols2/gallery/pages/DelayButtonPage.qml
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-ScrollablePage {
- id: page
-
- Column {
- spacing: 40
- width: parent.width
-
- Label {
- width: parent.width
- wrapMode: Label.Wrap
- horizontalAlignment: Qt.AlignHCenter
- text: "DelayButton is a checkable button that incorporates a delay before the "
- + "button is activated. This delay prevents accidental presses."
- }
-
- DelayButton {
- text: "DelayButton"
- anchors.horizontalCenter: parent.horizontalCenter
- }
- }
-}
diff --git a/examples/quickcontrols2/gallery/pages/DelegatePage.qml b/examples/quickcontrols2/gallery/pages/DelegatePage.qml
deleted file mode 100644
index d2064d987..000000000
--- a/examples/quickcontrols2/gallery/pages/DelegatePage.qml
+++ /dev/null
@@ -1,217 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Layouts
-import QtQuick.Controls
-
-Pane {
- padding: 0
-
- property var delegateComponentMap: {
- "ItemDelegate": itemDelegateComponent,
- "SwipeDelegate": swipeDelegateComponent,
- "CheckDelegate": checkDelegateComponent,
- "RadioDelegate": radioDelegateComponent,
- "SwitchDelegate": switchDelegateComponent
- }
-
- Component {
- id: itemDelegateComponent
-
- ItemDelegate {
- text: labelText
- width: parent.width
- }
- }
-
- Component {
- id: swipeDelegateComponent
-
- SwipeDelegate {
- id: swipeDelegate
- text: labelText
- width: parent.width
-
- Component {
- id: removeComponent
-
- Rectangle {
- color: SwipeDelegate.pressed ? "#333" : "#444"
- width: parent.width
- height: parent.height
- clip: true
-
- SwipeDelegate.onClicked: view.model.remove(ourIndex)
-
- Label {
- font.pixelSize: swipeDelegate.font.pixelSize
- text: "Remove"
- color: "white"
- anchors.centerIn: parent
- }
- }
- }
-
- swipe.left: removeComponent
- swipe.right: removeComponent
- }
- }
-
- Component {
- id: checkDelegateComponent
-
- CheckDelegate {
- text: labelText
- }
- }
-
- ButtonGroup {
- id: radioButtonGroup
- }
-
- Component {
- id: radioDelegateComponent
-
- RadioDelegate {
- text: labelText
- ButtonGroup.group: radioButtonGroup
- }
- }
-
- Component {
- id: switchDelegateComponent
-
- SwitchDelegate {
- text: labelText
- }
- }
-
- ColumnLayout {
- id: column
- spacing: 40
- anchors.fill: parent
- anchors.topMargin: 20
-
- Label {
- Layout.fillWidth: true
- wrapMode: Label.Wrap
- horizontalAlignment: Qt.AlignHCenter
- text: "Delegate controls are used as delegates in views such as ListView."
- }
-
- ListView {
- id: listView
- Layout.fillWidth: true
- Layout.fillHeight: true
- clip: true
- model: ListModel {
- ListElement { type: "ItemDelegate"; text: "ItemDelegate" }
- ListElement { type: "ItemDelegate"; text: "ItemDelegate" }
- ListElement { type: "ItemDelegate"; text: "ItemDelegate" }
- ListElement { type: "SwipeDelegate"; text: "SwipeDelegate" }
- ListElement { type: "SwipeDelegate"; text: "SwipeDelegate" }
- ListElement { type: "SwipeDelegate"; text: "SwipeDelegate" }
- ListElement { type: "CheckDelegate"; text: "CheckDelegate" }
- ListElement { type: "CheckDelegate"; text: "CheckDelegate" }
- ListElement { type: "CheckDelegate"; text: "CheckDelegate" }
- ListElement { type: "RadioDelegate"; text: "RadioDelegate" }
- ListElement { type: "RadioDelegate"; text: "RadioDelegate" }
- ListElement { type: "RadioDelegate"; text: "RadioDelegate" }
- ListElement { type: "SwitchDelegate"; text: "SwitchDelegate" }
- ListElement { type: "SwitchDelegate"; text: "SwitchDelegate" }
- ListElement { type: "SwitchDelegate"; text: "SwitchDelegate" }
- }
-
- section.property: "type"
- section.delegate: Pane {
- width: listView.width
- height: sectionLabel.implicitHeight + 20
-
- Label {
- id: sectionLabel
- text: section
- anchors.centerIn: parent
- }
- }
-
- delegate: Loader {
- id: delegateLoader
- width: listView.width
- sourceComponent: delegateComponentMap[text]
-
- property string labelText: text
- property ListView view: listView
- property int ourIndex: index
-
- // Can't find a way to do this in the SwipeDelegate component itself,
- // so do it here instead.
- ListView.onRemove: SequentialAnimation {
- PropertyAction {
- target: delegateLoader
- property: "ListView.delayRemove"
- value: true
- }
- NumberAnimation {
- target: item
- property: "height"
- to: 0
- easing.type: Easing.InOutQuad
- }
- PropertyAction {
- target: delegateLoader
- property: "ListView.delayRemove"
- value: false
- }
- }
- }
- }
- }
-}
diff --git a/examples/quickcontrols2/gallery/pages/DialPage.qml b/examples/quickcontrols2/gallery/pages/DialPage.qml
deleted file mode 100644
index 55519fb3a..000000000
--- a/examples/quickcontrols2/gallery/pages/DialPage.qml
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-ScrollablePage {
- id: page
-
- Column {
- spacing: 40
- width: parent.width
-
- Label {
- width: parent.width
- wrapMode: Label.Wrap
- horizontalAlignment: Qt.AlignHCenter
- text: "The Dial is similar to a traditional dial knob that is found on devices such as "
- + "stereos or industrial equipment. It allows the user to specify a value within a range."
- }
-
- Dial {
- value: 0.5
- anchors.horizontalCenter: parent.horizontalCenter
- }
- }
-}
diff --git a/examples/quickcontrols2/gallery/pages/DialogPage.qml b/examples/quickcontrols2/gallery/pages/DialogPage.qml
deleted file mode 100644
index e5162b36f..000000000
--- a/examples/quickcontrols2/gallery/pages/DialogPage.qml
+++ /dev/null
@@ -1,226 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Layouts
-import QtQuick.Controls
-
-ScrollablePage {
- id: page
-
- readonly property int buttonWidth: Math.max(button.implicitWidth, Math.min(button.implicitWidth * 2, page.availableWidth / 3))
-
- Column {
- spacing: 40
- width: parent.width
-
- Label {
- width: parent.width
- wrapMode: Label.Wrap
- horizontalAlignment: Qt.AlignHCenter
- text: "Dialog is a popup that is mostly used for short-term tasks "
- + "and brief communications with the user."
- }
-
- Button {
- text: "Message"
- anchors.horizontalCenter: parent.horizontalCenter
- width: buttonWidth
- onClicked: messageDialog.open()
-
- Dialog {
- id: messageDialog
-
- x: (parent.width - width) / 2
- y: (parent.height - height) / 2
-
- title: "Message"
-
- Label {
- text: "Lorem ipsum dolor sit amet..."
- }
- }
- }
-
- Button {
- id: button
- text: "Confirmation"
- anchors.horizontalCenter: parent.horizontalCenter
- width: buttonWidth
- onClicked: confirmationDialog.open()
-
- Dialog {
- id: confirmationDialog
-
- x: (parent.width - width) / 2
- y: (parent.height - height) / 2
- parent: Overlay.overlay
-
- modal: true
- title: "Confirmation"
- standardButtons: Dialog.Yes | Dialog.No
-
- Column {
- spacing: 20
- anchors.fill: parent
- Label {
- text: "The document has been modified.\nDo you want to save your changes?"
- }
- CheckBox {
- text: "Do not ask again"
- anchors.right: parent.right
- }
- }
- }
- }
-
- Button {
- text: "Content"
- anchors.horizontalCenter: parent.horizontalCenter
- width: buttonWidth
- onClicked: contentDialog.open()
-
- Dialog {
- id: contentDialog
-
- x: (parent.width - width) / 2
- y: (parent.height - height) / 2
- width: Math.min(page.width, page.height) / 3 * 2
- contentHeight: logo.height * 2
- parent: Overlay.overlay
-
- modal: true
- title: "Content"
- standardButtons: Dialog.Close
-
- Flickable {
- id: flickable
- clip: true
- anchors.fill: parent
- contentHeight: column.height
-
- Column {
- id: column
- spacing: 20
- width: parent.width
-
- Image {
- id: logo
- width: parent.width / 2
- anchors.horizontalCenter: parent.horizontalCenter
- fillMode: Image.PreserveAspectFit
- source: "../images/qt-logo.png"
- }
-
- Label {
- width: parent.width
- text: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc finibus "
- + "in est quis laoreet. Interdum et malesuada fames ac ante ipsum primis "
- + "in faucibus. Curabitur eget justo sollicitudin enim faucibus bibendum. "
- + "Suspendisse potenti. Vestibulum cursus consequat mauris id sollicitudin. "
- + "Duis facilisis hendrerit consectetur. Curabitur sapien tortor, efficitur "
- + "id auctor nec, efficitur et nisl. Ut venenatis eros in nunc placerat, "
- + "eu aliquam enim suscipit."
- wrapMode: Label.Wrap
- }
- }
-
- ScrollIndicator.vertical: ScrollIndicator {
- parent: contentDialog.contentItem
- anchors.top: flickable.top
- anchors.bottom: flickable.bottom
- anchors.right: parent.right
- anchors.rightMargin: -contentDialog.rightPadding + 1
- }
- }
- }
- }
-
- Button {
- text: "Input"
- anchors.horizontalCenter: parent.horizontalCenter
- width: buttonWidth
- onClicked: inputDialog.open()
-
- Dialog {
- id: inputDialog
-
- x: (parent.width - width) / 2
- y: (parent.height - height) / 2
- parent: Overlay.overlay
-
- focus: true
- modal: true
- title: "Input"
- standardButtons: Dialog.Ok | Dialog.Cancel
-
- ColumnLayout {
- spacing: 20
- anchors.fill: parent
- Label {
- elide: Label.ElideRight
- text: "Please enter the credentials:"
- Layout.fillWidth: true
- }
- TextField {
- focus: true
- placeholderText: "Username"
- Layout.fillWidth: true
- }
- TextField {
- placeholderText: "Password"
- echoMode: TextField.PasswordEchoOnEdit
- Layout.fillWidth: true
- }
- }
- }
- }
- }
-}
diff --git a/examples/quickcontrols2/gallery/pages/FramePage.qml b/examples/quickcontrols2/gallery/pages/FramePage.qml
deleted file mode 100644
index 7fda3d668..000000000
--- a/examples/quickcontrols2/gallery/pages/FramePage.qml
+++ /dev/null
@@ -1,94 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-ScrollablePage {
- id: page
-
- readonly property int itemWidth: Math.max(button.implicitWidth, Math.min(button.implicitWidth * 3, page.availableWidth / 3 * 2))
-
- Column {
- spacing: 40
- width: parent.width
-
- Label {
- width: parent.width
- wrapMode: Label.Wrap
- horizontalAlignment: Qt.AlignHCenter
- text: "Frame is used to layout a logical group of controls together, within a visual frame."
- }
-
- Frame {
- anchors.horizontalCenter: parent.horizontalCenter
-
- Column {
- spacing: 20
- width: page.itemWidth
-
- RadioButton {
- text: "First"
- checked: true
- width: parent.width
- }
- RadioButton {
- id: button
- text: "Second"
- width: parent.width
- }
- RadioButton {
- text: "Third"
- width: parent.width
- }
- }
- }
- }
-}
diff --git a/examples/quickcontrols2/gallery/pages/GroupBoxPage.qml b/examples/quickcontrols2/gallery/pages/GroupBoxPage.qml
deleted file mode 100644
index 2a01297bb..000000000
--- a/examples/quickcontrols2/gallery/pages/GroupBoxPage.qml
+++ /dev/null
@@ -1,95 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-ScrollablePage {
- id: page
-
- readonly property int itemWidth: Math.max(button.implicitWidth, Math.min(button.implicitWidth * 3, page.availableWidth / 3 * 2))
-
- Column {
- spacing: 40
- width: parent.width
-
- Label {
- width: parent.width
- wrapMode: Label.Wrap
- horizontalAlignment: Qt.AlignHCenter
- text: "A GroupBox provides a frame, a title on top of it, and a logical group of controls within that frame."
- }
-
- GroupBox {
- title: "Title"
- anchors.horizontalCenter: parent.horizontalCenter
-
- Column {
- spacing: 20
- width: page.itemWidth
-
- RadioButton {
- text: "First"
- checked: true
- width: parent.width
- }
- RadioButton {
- id: button
- text: "Second"
- width: parent.width
- }
- RadioButton {
- text: "Third"
- width: parent.width
- }
- }
- }
- }
-}
diff --git a/examples/quickcontrols2/gallery/pages/PageIndicatorPage.qml b/examples/quickcontrols2/gallery/pages/PageIndicatorPage.qml
deleted file mode 100644
index 612a942c8..000000000
--- a/examples/quickcontrols2/gallery/pages/PageIndicatorPage.qml
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-ScrollablePage {
- id: page
-
- Column {
- spacing: 40
- width: parent.width
-
- Label {
- width: parent.width
- wrapMode: Label.Wrap
- horizontalAlignment: Qt.AlignHCenter
- text: "PageIndicator is used to indicate the currently active page in a container of pages."
- }
-
- PageIndicator {
- count: 5
- currentIndex: 2
- anchors.horizontalCenter: parent.horizontalCenter
- }
- }
-}
diff --git a/examples/quickcontrols2/gallery/pages/ProgressBarPage.qml b/examples/quickcontrols2/gallery/pages/ProgressBarPage.qml
deleted file mode 100644
index 252e8eff9..000000000
--- a/examples/quickcontrols2/gallery/pages/ProgressBarPage.qml
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-ScrollablePage {
- id: page
-
- Column {
- spacing: 40
- width: parent.width
-
- Label {
- width: parent.width
- wrapMode: Label.Wrap
- horizontalAlignment: Qt.AlignHCenter
- text: "ProgressBar indicates the progress of an operation. It can be set in an "
- + "indeterminate mode to indicate that the length of the operation is unknown."
- }
-
- ProgressBar {
- id: bar
- value: 0.5
- anchors.horizontalCenter: parent.horizontalCenter
- }
-
- ProgressBar {
- indeterminate: true
- anchors.horizontalCenter: parent.horizontalCenter
- }
- }
-}
diff --git a/examples/quickcontrols2/gallery/pages/RadioButtonPage.qml b/examples/quickcontrols2/gallery/pages/RadioButtonPage.qml
deleted file mode 100644
index 41d4d34ea..000000000
--- a/examples/quickcontrols2/gallery/pages/RadioButtonPage.qml
+++ /dev/null
@@ -1,86 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-ScrollablePage {
- id: page
-
- Column {
- spacing: 40
- width: parent.width
-
- Label {
- width: parent.width
- wrapMode: Label.Wrap
- horizontalAlignment: Qt.AlignHCenter
- text: "RadioButton presents an option button that can be toggled on or off. "
- + "Radio buttons are typically used to select one option from a set of options."
- }
-
- Column {
- spacing: 20
- anchors.horizontalCenter: parent.horizontalCenter
-
- RadioButton {
- text: "First"
- }
- RadioButton {
- text: "Second"
- checked: true
- }
- RadioButton {
- text: "Third"
- enabled: false
- }
- }
- }
-}
diff --git a/examples/quickcontrols2/gallery/pages/RangeSliderPage.qml b/examples/quickcontrols2/gallery/pages/RangeSliderPage.qml
deleted file mode 100644
index 65f852ffd..000000000
--- a/examples/quickcontrols2/gallery/pages/RangeSliderPage.qml
+++ /dev/null
@@ -1,82 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-ScrollablePage {
- id: page
-
- Column {
- spacing: 40
- width: parent.width
-
- Label {
- width: parent.width
- wrapMode: Label.Wrap
- horizontalAlignment: Qt.AlignHCenter
- text: "RangeSlider is used to select a range specified by two values, by sliding each handle along a track."
- }
-
- RangeSlider {
- id: slider
- first.value: 0.25
- second.value: 0.75
- anchors.horizontalCenter: parent.horizontalCenter
- }
-
- RangeSlider {
- orientation: Qt.Vertical
- first.value: 0.25
- second.value: 0.75
- anchors.horizontalCenter: parent.horizontalCenter
- }
- }
-}
diff --git a/examples/quickcontrols2/gallery/pages/ScrollBarPage.qml b/examples/quickcontrols2/gallery/pages/ScrollBarPage.qml
deleted file mode 100644
index 90c43965b..000000000
--- a/examples/quickcontrols2/gallery/pages/ScrollBarPage.qml
+++ /dev/null
@@ -1,87 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-Flickable {
- id: flickable
-
- contentHeight: pane.height
-
- Pane {
- id: pane
- width: flickable.width
- height: flickable.height * 1.25
-
- Column {
- id: column
- spacing: 40
- width: parent.width
-
- Label {
- width: parent.width
- wrapMode: Label.Wrap
- horizontalAlignment: Qt.AlignHCenter
- text: "ScrollBar is an interactive bar that can be used to scroll to a specific position. "
- + "A scroll bar can be either vertical or horizontal, and can be attached to any Flickable, "
- + "such as ListView and GridView."
- }
-
- Image {
- rotation: 90
- source: "../images/arrows.png"
- anchors.horizontalCenter: parent.horizontalCenter
- }
- }
- }
-
- ScrollBar.vertical: ScrollBar { }
-}
diff --git a/examples/quickcontrols2/gallery/pages/ScrollIndicatorPage.qml b/examples/quickcontrols2/gallery/pages/ScrollIndicatorPage.qml
deleted file mode 100644
index 301146eaf..000000000
--- a/examples/quickcontrols2/gallery/pages/ScrollIndicatorPage.qml
+++ /dev/null
@@ -1,87 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-Flickable {
- id: flickable
-
- contentHeight: pane.height
-
- Pane {
- id: pane
- width: flickable.width
- height: flickable.height * 1.25
-
- Column {
- id: column
- spacing: 40
- width: parent.width
-
- Label {
- width: parent.width
- wrapMode: Label.Wrap
- horizontalAlignment: Qt.AlignHCenter
- text: "ScrollIndicator is a non-interactive indicator that indicates the current scroll position. "
- + "A scroll indicator can be either vertical or horizontal, and can be attached to any Flickable, "
- + "such as ListView and GridView."
- }
-
- Image {
- rotation: 90
- source: "../images/arrows.png"
- anchors.horizontalCenter: parent.horizontalCenter
- }
- }
- }
-
- ScrollIndicator.vertical: ScrollIndicator { }
-}
diff --git a/examples/quickcontrols2/gallery/pages/ScrollablePage.qml b/examples/quickcontrols2/gallery/pages/ScrollablePage.qml
deleted file mode 100644
index 483159e72..000000000
--- a/examples/quickcontrols2/gallery/pages/ScrollablePage.qml
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-Page {
- id: page
-
- default property alias content: pane.contentItem
-
- Flickable {
- anchors.fill: parent
- contentHeight: pane.implicitHeight
- flickableDirection: Flickable.AutoFlickIfNeeded
-
- Pane {
- id: pane
- width: parent.width
- }
-
- ScrollIndicator.vertical: ScrollIndicator { }
- }
-}
diff --git a/examples/quickcontrols2/gallery/pages/SliderPage.qml b/examples/quickcontrols2/gallery/pages/SliderPage.qml
deleted file mode 100644
index 5dcac2d89..000000000
--- a/examples/quickcontrols2/gallery/pages/SliderPage.qml
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-ScrollablePage {
- id: page
-
- Column {
- spacing: 40
- width: parent.width
-
- Label {
- width: parent.width
- wrapMode: Label.Wrap
- horizontalAlignment: Qt.AlignHCenter
- text: "Slider is used to select a value by sliding a handle along a track."
- }
-
- Slider {
- id: slider
- value: 0.5
- anchors.horizontalCenter: parent.horizontalCenter
- }
-
- Slider {
- orientation: Qt.Vertical
- value: 0.5
- anchors.horizontalCenter: parent.horizontalCenter
- }
- }
-}
diff --git a/examples/quickcontrols2/gallery/pages/SpinBoxPage.qml b/examples/quickcontrols2/gallery/pages/SpinBoxPage.qml
deleted file mode 100644
index 6fddbd27e..000000000
--- a/examples/quickcontrols2/gallery/pages/SpinBoxPage.qml
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-ScrollablePage {
- id: page
-
- Column {
- spacing: 40
- width: parent.width
-
- Label {
- width: parent.width
- wrapMode: Label.Wrap
- horizontalAlignment: Qt.AlignHCenter
- text: "SpinBox allows the user to choose an integer value by clicking the up or down indicator buttons, "
- + "by pressing up or down on the keyboard, or by entering a text value in the input field."
- }
-
- SpinBox {
- id: box
- value: 50
- anchors.horizontalCenter: parent.horizontalCenter
- editable: true
- }
- }
-}
diff --git a/examples/quickcontrols2/gallery/pages/StackViewPage.qml b/examples/quickcontrols2/gallery/pages/StackViewPage.qml
deleted file mode 100644
index fc2a4bdf1..000000000
--- a/examples/quickcontrols2/gallery/pages/StackViewPage.qml
+++ /dev/null
@@ -1,96 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-StackView {
- id: stackView
- initialItem: page
-
- Component {
- id: page
-
- Pane {
- id: pane
- width: parent ? parent.width : 0 // TODO: fix null parent on destruction
-
- Column {
- spacing: 40
- width: parent.width
-
- Label {
- width: parent.width
- wrapMode: Label.Wrap
- horizontalAlignment: Qt.AlignHCenter
- text: "StackView provides a stack-based navigation model which can be used with a set of interlinked pages. "
- + "Items are pushed onto the stack as the user navigates deeper into the material, and popped off again "
- + "when he chooses to go back."
- }
-
- Button {
- id: button
- text: "Push"
- anchors.horizontalCenter: parent.horizontalCenter
- width: Math.max(button.implicitWidth, Math.min(button.implicitWidth * 2, pane.availableWidth / 3))
- onClicked: stackView.push(page)
- }
-
- Button {
- text: "Pop"
- enabled: stackView.depth > 1
- width: Math.max(button.implicitWidth, Math.min(button.implicitWidth * 2, pane.availableWidth / 3))
- anchors.horizontalCenter: parent.horizontalCenter
- onClicked: stackView.pop()
- }
- }
- }
- }
-}
diff --git a/examples/quickcontrols2/gallery/pages/SwipeViewPage.qml b/examples/quickcontrols2/gallery/pages/SwipeViewPage.qml
deleted file mode 100644
index 9cff5db89..000000000
--- a/examples/quickcontrols2/gallery/pages/SwipeViewPage.qml
+++ /dev/null
@@ -1,96 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-Pane {
- id: pane
-
- SwipeView {
- id: view
- currentIndex: 1
- anchors.fill: parent
-
- Repeater {
- model: 3
-
- Pane {
- width: view.width
- height: view.height
-
- Column {
- spacing: 40
- width: parent.width
-
- Label {
- width: parent.width
- wrapMode: Label.Wrap
- horizontalAlignment: Qt.AlignHCenter
- text: "SwipeView provides a navigation model that simplifies horizontal paged scrolling. "
- + "The page indicator on the bottom shows which is the presently active page."
- }
-
- Image {
- source: "../images/arrows.png"
- anchors.horizontalCenter: parent.horizontalCenter
- }
- }
- }
- }
- }
-
- PageIndicator {
- count: view.count
- currentIndex: view.currentIndex
- anchors.bottom: parent.bottom
- anchors.horizontalCenter: parent.horizontalCenter
- }
-}
diff --git a/examples/quickcontrols2/gallery/pages/SwitchPage.qml b/examples/quickcontrols2/gallery/pages/SwitchPage.qml
deleted file mode 100644
index 2f4089a0e..000000000
--- a/examples/quickcontrols2/gallery/pages/SwitchPage.qml
+++ /dev/null
@@ -1,86 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-ScrollablePage {
- id: page
-
- Column {
- spacing: 40
- width: parent.width
-
- Label {
- width: parent.width
- wrapMode: Label.Wrap
- horizontalAlignment: Qt.AlignHCenter
- text: "Switch is an option button that can be dragged or toggled on or off. "
- + "Switches are typically used to select between two states."
- }
-
- Column {
- spacing: 20
- anchors.horizontalCenter: parent.horizontalCenter
-
- Switch {
- text: "First"
- }
- Switch {
- text: "Second"
- checked: true
- }
- Switch {
- text: "Third"
- enabled: false
- }
- }
- }
-}
diff --git a/examples/quickcontrols2/gallery/pages/TabBarPage.qml b/examples/quickcontrols2/gallery/pages/TabBarPage.qml
deleted file mode 100644
index b14df6d12..000000000
--- a/examples/quickcontrols2/gallery/pages/TabBarPage.qml
+++ /dev/null
@@ -1,104 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-Page {
- id: page
-
- SwipeView {
- id: swipeView
- anchors.fill: parent
- currentIndex: tabBar.currentIndex
-
- Repeater {
- model: 3
-
- Pane {
- width: swipeView.width
- height: swipeView.height
-
- Column {
- spacing: 40
- width: parent.width
-
- Label {
- width: parent.width
- wrapMode: Label.Wrap
- horizontalAlignment: Qt.AlignHCenter
- text: "TabBar is a bar with icons or text which allows the user "
- + "to switch between different subtasks, views, or modes."
- }
-
- Image {
- source: "../images/arrows.png"
- anchors.horizontalCenter: parent.horizontalCenter
- }
- }
- }
- }
- }
-
- footer: TabBar {
- id: tabBar
- currentIndex: swipeView.currentIndex
-
- TabButton {
- text: "First"
- }
- TabButton {
- text: "Second"
- }
- TabButton {
- text: "Third"
- }
- }
-}
diff --git a/examples/quickcontrols2/gallery/pages/TextAreaPage.qml b/examples/quickcontrols2/gallery/pages/TextAreaPage.qml
deleted file mode 100644
index 91ecb16e4..000000000
--- a/examples/quickcontrols2/gallery/pages/TextAreaPage.qml
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-ScrollablePage {
- id: page
-
- Column {
- spacing: 40
- width: parent.width
-
- Label {
- width: parent.width
- wrapMode: Label.Wrap
- horizontalAlignment: Qt.AlignHCenter
- text: "TextArea is a multi-line text editor."
- }
-
- TextArea {
- width: Math.max(implicitWidth, Math.min(implicitWidth * 3, pane.availableWidth / 3))
- anchors.horizontalCenter: parent.horizontalCenter
-
- wrapMode: TextArea.Wrap
- text: "TextArea\n...\n...\n..."
- }
- }
-}
diff --git a/examples/quickcontrols2/gallery/pages/TextFieldPage.qml b/examples/quickcontrols2/gallery/pages/TextFieldPage.qml
deleted file mode 100644
index 7ecdddc20..000000000
--- a/examples/quickcontrols2/gallery/pages/TextFieldPage.qml
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-ScrollablePage {
- id: page
-
- Column {
- spacing: 40
- width: parent.width
-
- Label {
- width: parent.width
- wrapMode: Label.Wrap
- horizontalAlignment: Qt.AlignHCenter
- text: "TextField is a single-line text editor."
- }
-
- TextField {
- id: field
- placeholderText: "TextField"
- anchors.horizontalCenter: parent.horizontalCenter
- }
- }
-}
diff --git a/examples/quickcontrols2/gallery/pages/ToolTipPage.qml b/examples/quickcontrols2/gallery/pages/ToolTipPage.qml
deleted file mode 100644
index eaae72b15..000000000
--- a/examples/quickcontrols2/gallery/pages/ToolTipPage.qml
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-ScrollablePage {
- id: page
-
- Column {
- spacing: 40
- width: parent.width
-
- Label {
- width: parent.width
- wrapMode: Label.Wrap
- horizontalAlignment: Qt.AlignHCenter
- text: "A tool tip is a short piece of text that informs the user of a control's function."
- }
-
- Button {
- text: "Tip"
- anchors.horizontalCenter: parent.horizontalCenter
-
- ToolTip.timeout: 5000
- ToolTip.visible: pressed
- ToolTip.text: "This is a tool tip."
- }
- }
-}
diff --git a/examples/quickcontrols2/gallery/pages/TumblerPage.qml b/examples/quickcontrols2/gallery/pages/TumblerPage.qml
deleted file mode 100644
index 8a22a0254..000000000
--- a/examples/quickcontrols2/gallery/pages/TumblerPage.qml
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-ScrollablePage {
- id: page
-
- Column {
- spacing: 40
- width: parent.width
-
- Label {
- width: parent.width
- wrapMode: Label.Wrap
- horizontalAlignment: Qt.AlignHCenter
- text: "Tumbler is used to select a value by spinning a wheel."
- }
-
- Tumbler {
- model: 10
- anchors.horizontalCenter: parent.horizontalCenter
- }
- }
-}
diff --git a/examples/quickcontrols2/gallery/rc_gallery.py b/examples/quickcontrols2/gallery/rc_gallery.py
deleted file mode 100644
index 8b0dcec7f..000000000
--- a/examples/quickcontrols2/gallery/rc_gallery.py
+++ /dev/null
@@ -1,7855 +0,0 @@
-# Resource object code (Python 3)
-# Created by: object code
-# Created by: The Resource Compiler for Qt version 6.1.2
-# WARNING! All changes made in this file will be lost!
-
-from PySide6 import QtCore
-
-qt_resource_data = b"\
-\x00\x00\x00\x0b\
-m\
-odule App\x0a\
-\x00\x00\x00`\
-[\
-Material]\x0aPrimar\
-y=#41cd52\x0aAccent\
-=#41cd52\x0aTheme=S\
-ystem\x0a\x0a[Universa\
-l]\x0aAccent=#41cd5\
-2\x0aTheme=System\x0a\
-\x00\x00\x09\xbb\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2021 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick.Controls\x0a\x0aT\
-oolBar {}\x0a\
-\x00\x00\x0d\x09\
-\x00\
-\x00/\xa5x\x9c\xbdZ_s\xe3\xb6\x11\x7f\xf7\xa7@\
-\xd5<\xd8\x89L\x9f\x9d^\x1e\x94\xb9vd\x89\xb69\
-\x95%\x1fI\x9f{\xd3\xe9d(\x12\x92PS\x04\x0f\
-\x84,+\xa9\xbf{w\x01\x90\x22ER\xb6\xd5\xa4\x9c\
-\x9b3\x09,~\xfb\x07\x8b\xc5b\xa1\xb3\xef\x7f\xc7\xe7\
-H\xfd#\x03\x9en\x04\x9b/$9\x1e\x9c\x90\x8b\x0f\
-\x17\xe7\xc4_P\xf2YB\xcf2\x0d\x92\x0d\x19\xc9\xc8\
-\xd2\x94\x89\x0cB\xd9#\x0b)\xd3\xacwv\xb6^\xaf\
-\xado\xd2b\xfc,f!M2\x96\xcc\xcf\x0c\xaa\xbf\
-`\x19\x99\xb1\x98\x12\xf8\x9b\x06B\x12>#\x12p\xe9\
-s\xb0Lc\x9a\xe5\xdf\xc0\xc7\xe7<~d\xd22C\
-\xbf\xfb\xec\xffri_;\xe3_F\xce\xc0\x1e{v\
-\xef\xd2\x1b~\xa7\x05X.\xa9\x08Y\x10\x93\x91bH\
-\xc9}\x16\xcc)\xf6\x99\x06\x00^\xf08\x02I\xc8S\
-\x10\xb3\x88\x84\xdb1\xc0J\xcb\x09D\xcb`CV0\
-^n\xe5L\x10&\x08C.\xa2 \x09)Y3\xb9\
-P\x22\x96 \xccx\x12\xcc\x05\xa5K\x9aH\x92\x0a\xfe\
-\xc4\x22\x1a\x15\xe4\x88\xe2\xf1\x99\x5c\x07\x82\x12.\xba$\
-\x88%\x15I \xd9\x13\x8d7]\xe0\xd3\xc8\x04h\x96\
-\x19\xb0\x02\x13\xb3\x04\xe0\x8c8d-\x98\x944)q\
-\x9cR\xb9\xa6\xd0\xb2\xe1+\x12$\xd1\xcelY\xe4\x8a\
-\x0bR\xcc\x87\xc6UP\x09\x1a#\x89\x98d<\xc9\x08\
-\x98\xaaa\x1e\x15\xf5\xe9\x96L\xa3\xcdV\x02D\x14\x88\
-\xc2\x92\x19\x17\xcb\x00;\x8d\xfd\xa8\x16:\x94\x04{H\
- \x1b`\x0d\xc5\xe9*\xcb'\x19\xa6\xb4>\x87\xfd\xaa\
-\xa5P\xc1\xfa<\xad\x92\x88\x8a\x92\xc9\x8c\x1f!\xa0\x99\
-\x1d\xa5-P\xf38\xe6\xeb\xacg8v\x5c\x1a\xb1L\
-\x0a6])\xe9\xd1\x1e\x88\x0c\xf3\x91\xf1\x95\x80\xb9\xc0\
-\x96)K\x02\xb1Q\xaad]=;`\x00\xfc\xcbW\
-\x12a\x96<b3\x16*\x0b\xc0\xdc\xc2\x1c\xa7 \x06\
-\xceQ\xb4\xf5\x05\xb9\x003\xa0TZ\x06\x9c\x87\x92\xe9\
-a\x90B\xa2\x12e#\x84|O\xaa\xb2)\xa5\x8cP\
-!\x8f(Y\xae2I\x04E\xd7P\xb0\xc1\x94?a\
-\x97Y\xb9\x1a\x85\x90\x84K\xb0@W\x1b+\x06@\xc4\
-)3N\xa2\x1d\xa9\x80k\x18\x07\x0c\xdc\xdbj\x13\x05\
-X\x96\x8c\x92\x8b\x02\xaaF\xab\x90\xfeQ\xd2\x18\xf7\xc7\
-\x07I\x22\x1e\xae\xd0\xf7\x83|\xe6\xce`R8\xfa$\
-8\x08\xb8\x01,\xcd\xacy%\xe2S\xd6\xa7PsL\
-\x99\x1a\x8f\xf0I\xb0\xa4(\x5c=\xee\x81\x12[\x125\
--Lf9.z\xb5\xc2\xe5B\x07\x94)E\x8f\x02\
-\xad8\xa1I\x04\xad\x18\x00P\xae%\x97\x94h\x93\xc9\
-\x8c\x80\xff\x82\x87G9\xcc\x0c\xfa\xb5\x91\xb2<l\x18\
-\x7f#YJC\xf46\x18\xcb\xd0\x0dM,P\x1e\x97\
-eF\x9d<\xe2\xde8\x1e\xf1&W\xfeC\xdf\xb5\x09\
-\xbc\xdf\xb9\x93/\xce\xd0\x1e\x92\xcb\xaf\xd0i\x93\xc1\xe4\
-\xee\xab\xeb\x5c\xdf\xf8\xe4f2\x1a\xda\xaeG\xfa\xe3!\
-\xb4\x8e}\xd7\xb9\xbc\xf7'\xae\xa7\x96I\xdf\x83\xc1\x1d\
-\xd5\xd7\x1f\x7f%\xf6?\xee\x5c\xdb\xf3\xc8\xc4%\xce\xed\
-\xdd\xc8\x01<`\xe0\xf6\xc7\xbec{]\xe2\x8c\x07\xa3\
-\xfb\xa13\xbe\xee\x12\xc0 \xe3\x89\xaf\x82\xb1s\xeb\xf8\
-@\xe9O\xba\x8au}$\x99\x5c\x91[\xdb\x1d\xdc\xc0\
-g\xff\xd2\x199\xfeW\xc5\xf2\xca\xf1\xc7\xc8\xeej\xe2\
-\xaa\x88@\xee\xfa\xae\xef\x0c\xeeG}\x97\xdc\xdd\xbbw\
-\x13\xcf&\xa8\xdf\xd0\xf1\x06\xa3\xbesk\x0f-\x90\x01\
-\xf8\x12\xfb\x8b=\xf6\x89w\xd3\x1f\x8d\xaa\xea\x22\xce\xe4\
-al\xbb\xa8CY]ri\x83\xa4\xfd\xcb\x91\x8d\xec\
-\x94\xb6C\xc7\xb5\x07>\xaa\xb5}\x1b\x80\x11A\xc8Q\
-WE\xf6;{\xe0\xc0;\xd8\xc5\x06\xa5\xfa\xee\xd7\xae\
-\x81\xf5\xec\xcf\xf7@\x07\x9dd\xd8\xbf\xed_\x83\x8e\xc7\
-\xaf[\x07&ip\xef\xda\xb7(;\x98\xc4\xbb\xbf\xf4\
-|\xc7\xbf\xf7mr=\x99\x0c\x95\xd9=\xdb\xfd\x02\x1b\
-\xa1\xf73\x19M<e\xb8{\xcfV\xc2\x0c\xfb~_\
-\xb1\x07\x140\x1cP\xc0\xfb\xe5\xbd\xe7(\x13:c\xdf\
-v\xdd\xfb;\xdf\x99\x8cO`\xce\x1f\xc0B i\x1f\
-F\x0f\x95\xad'c\xd4Y\xfb\x8e=q\xbf\x224\xda\
-C\xcdF\x97<\xdc\xd8\xd0\xee\xa2y\x95\xd5\xfah\x0e\
-\x0f\xac7\xf0\xcbd\xc0\x12\x8c\xa9\x14\xdb\xeaK\xc6\xf6\
-\xf5\xc8\xb9\xb6\xc7\x03\x1b\x09&\x08\xf4\xe0x\xf6\x09L\
-\x9e\xe3!\x81\xa3\x98\x83G\x00\xdb{\xa5;N\x1a\xc8\
-\xa6\xa6\xeb\xaa\xea\xce]5\xbb\xc4\xb9\x22\xfd\xe1\x17\x07\
-\xe57\xf4\xe0\x0f\x9ec\xdcG\x99opc\xacou\
-J\xe9\x84=\x1e\xe6\xc9\xc4w\xba\xf9\xf7{\xce\x8e\x8e\
-\xd82\xe5\x90\xe1|\x96\x9fW,|\xdc\xf9\xb4F\x01\
-ld\x105v\x9a1\x9b\x12<.\xb5[q0\xcd\
-\xac\x8cJ\x09\xc10+`;V\x07\xb7\xb3~\x9a\x1e\
-\x1d\xc1\x7f\xb1\xd9|\x1e\x18\x84\x985\xf9\xed\x08c\x08\
-\x8bz\x104\xb0A}\xaeY$\x17=\xf2\xe3O\x1f\
-\xd4\xe7\x82b\x5c\xee\x91\x8f\x17\xfa\xfb\x89el\x1a\xd3\
-\x1e\x91bEU\x8bd\x12\xbf;\x10\xfd\x94t$\x97\
-\xaes\xa4\xfag\xab$T\xb1wA\xe3\xf4\xf8\xc4p\
-\xc5'\xa6\x12\x03l\x1a\x07\x1b\x90\xda\x0c#\x9fT\xc0\
-\xff\xc2\xe8\xda\x0aWB@\xe8v`\xdb~&\x7f\xfa\
-\xf4\x89\x9c\x9eW\x06\x9b~3r\x8c\xa1\xf8S\x1d\xb1\
-\x18\x82\xcf\xdf\xb6\xe8\xb0\x1d\xd3\xd8\x9aSy\xdc\xc8\xf0\
-\xc4R\x9aY\x92\x8f\xf8\x9a\x8aA\x90Q\x90\x1e\x14\xed\
-TdX\x09\x14\xb9\x93'.\xb0\xdd\x98\xc4\xe5\x9b<\
-\xfdx\xd6\xa90\xff\x81\x1c\xef\x97N\x09\xd8\xf9\xb6\x8c\
-O\xbf\xc9oh\xcc\xd3\xd0\x18\xf3\xe2\xb4\x03\xc3\x1b\x14\
-\xfe\x01&y!\x97qg\x17\x08$\xad\x83\x004\xa8\
-\xbd\x02\xb5\xd4\x98\x93\x9f\x8bQ\xe0C<\xa5\xc9\xbd\x88\
-\xedg\x95J\xc5\xf1\xe6\x18\x94;Q\x14/z.\x05\
-\x05@\xa1\xd3\x15\xd8I\xe4\x062eA\xa6+\x16\x83\
-\xcd<\xb9\x81\xe4\x5c\x13z\xc6\x13K\xb3\x8d~V8\
-h\xdeX\xe0\xe06\x0b\xdbx\x86\x18e\x8e\xde\x02\xfc\
-8\x84\xfdl\x0b\x94\x81\x10\x14\x12\xe0\xacG\xfe\xd9\xb1\
-\xb3\xb0\xd3%\x9d\xcb |\xec\xfc\xab \xa1I\x00N\
-\x8a\x0c!w|TS\x1b\xd1\x14\xb6\xf6\xbf\x92\xad\x07\
-\xf1\xa4\x0f\x8e\xf9\x04I\x00\x10&\xc1\x13\x9b\xc3+\x02\
-\xf5\x95\xbfZ \xd1|N\xc5\xf1\xc9\x1b\xe5\xe9\x11O\
-B~\x11\x88\xe8\xeftc\xdd\x80\xb7\xe3<\xc1te\
-\xcd,\xf5z(\x83k\xc6;6\xabK\xb6\xed\x86\x89\
-\xb50\xbdhT\x14]i\x8avAW\x88D\x00N\
-\xdc)I\xe2k\xf5P\x92\xdf*\xbe\xc3f\xe4\xb8\x01\
-\xeed\x87L\xa9^\x90\xa5<\xd7\xa5\xfc4\xaf\xe4\xca\
-:V\xea\x13\x1aC\xc2S\xc7\xd7R+\xc7\xdcA\x7f\
-9\xaa\xbe\xbdez:\xb74Yu\x9a'\x83\xa7*\
-\xb3D\x8a}\xd3\xdf8C\xb5\xb1M\x13\xd4Y\xee0\
-/\xd9\xbf\x04P\xd6\xd5\xf0\x5c\xd0\x00\xd2\xbe\x1eFq\
-\x0b\xcf\xbb\x97\xb0\xe4\xb6\x02\xb8|\xadw\x89\x1d\xf3e\
-i\x10\xc2\x8a\xea\x11\x13\xb8\xf3\x07\x8e\x8e`\xa3\xcc\x82\
-\x03Q\xdc\xc3\xe35L\xcbQ\x85B\xf1XIY\xd1\
-\xb3\x18\xae\x14\xdc\xeb\x95%\xd1\xf3g\x14Li\xdc\x80\
-\x86\xd6SQV\x11\xd4\xba%}\x86\xad\xa7\xe6D\x92\
-.\xcbq\xbc\xd4l\xe1\x08t\xf7k\x08_Tlj\
-A\x11N\x0c\x89\xb4R\xf6Lc\x8f\xfdJk\xd6\xc1\
-\x87\xc2\xd9\x1fz\x94H\x96\x8d\x1f\xae:\x9b\xec\xd2\x81\
-\x19\xd9\xafx:\x8d\xfb1\x9b'x\xc8\xe8a\x18U\
-_7\x03\xf8\x84s\xef\xee\xa0'\x88v\xb0\x0b7\x0d\
-\xf9\xd22DO\xaf\x9a\xb0\x07\xbd9\x17{o\x8b\xb9\
-\xdf4\x83u\xaf\xad\x91b_\x03\x02>;~\xdfH\
-\xf3\x9c\xfb\x97\xa5\x92\x0ar\xaa\x93\x8bFZ)\x82$\
-\xc3S\xe2\x04\x96\x05\x03\xf1\xd4b\xf0y\xaam\xdf8\
-\xa6\xb6\x18k\xa0\xca\x7f:\xf9fT\xf7\x86\xfc\xa9\xac\
-\xc6|\x93\x1a\xc2\xd1\x90\xcf\x9b\x82O\xfe\xbc\xfcOb\
-\xe1\x0e\xf1F\x91J[\xc5\xef+C\x7f\x0a\xae\xf5F\
-!\x02\xa4=\xc4(/G\xcd_\x95\xc8=T\xa1~\
-'\xb2\xea\xf8_4\x99\xdc\xf46\x90\x0bk\xc9\x92c\
-\x9d\xb6j\xef\xea\x9a$\xd6\xd2\x19\xeb\x099#?\xc2\
-Y\xfd\xa2\x18\x9cg\xb2\x15\xb2-7\x5cz\xb84\x9e\
-\x1a6\xd3O\x90z\x9eo}pd\x22\xcf\xee\xbe\x19\
-mcU\xd5ag<\x5ce\x0d\xcb\xb6\xbc+\xf6v\
-7\xc5\xd7\x035\xa4\xaf\x14cp\x8f`\xec\x1b\x9a\xaf\
-\x86I7v+\x22f\xf32\xd4.\xa1\xb3b\x15\x94\
-\xeb\x11\x0fL\x16\xa3\xd9\xd0\x1dr+X,\x1bl#\
-pm\x0cO\x06p\xecx\xac\xa7\x19\xf9\xd3\x96#0\
-\xfc\xdb8\xa2\x94u\xac\xb2\xc5\xb1\x96X\xd7\xbc\x9a]\
-\xd2\xa4\x11a\xcc1\x87\x7f\xd5?+\x9f\x0a]k{\
-\x8b\xaf\x0dZ`\x9f\x1d\xeb\x0a\xebo\xc5y\xe8r\x95\
-m@\x17<rq\xd1\xf9\xd9\x14\xe50+\x17a\xef\
-,\x0d\xe64;\xab\xd0\xdcA\x93\x05\x09z\xa7a\x09\
-\xb5\xb1\xc0\x18\xdf\x8a\x8d\x9d\xef\x07\x1d,h\xf8x\xc9\
-\x9f[`\xf3\xee\x03\x80\xf9r\xca\xf7\x00\x9b\xee\xf7\x03\
-\x83\xe7\x07\x9b\xbd\xb6(Q\x1c\x00\x0f!\xaf\x0d\x17\xba\
-\x0e\x03\xe4\xf3=\x90|~\x90\x11\xd4\xf2\xcf\xdaM\xa0\
-\xfa\xdf\x8f|% \x81mAU}\xef\x87\xbc\x16|\
-\x95\xb6\xbbB\xde\xfd~`\x1c\xf1\xda\xa2\xab\xd0\x1c\xc0\
-B\xf0\xb9\xa0Y\x06ix\x1b\x83-\xc5\xfb\xe1\xdd \
-b|\xaf3\x97(\x0e\x81O\xe6\xd4\xc3\xa4\xb6M\xfa\
-\x12\xc5\xfb\xe1\xbdP\xf08n7M\xd1\x7f(\xf4k\
-\x93\xbbCu\x00\x9b}\xb69\xd8,)K\xda\xdd\xdd\
-\xf4\x1e\x00\x9bo\x84m\xc0y\xff\x01\xd0k\x96\xd2}\
-\xd0y\xffA\xd02\x5c\xb4\xe3B\xe7\xfbA\xfd`\xda\
-\xeeu\xba\xf3\x00P\xc8\x88\xfa\x82\x06m\xb0\xa6\xfb0\
-\xe0+F\xe3h\x0f\xb2\xea?\x00\x1a\xce~>K\xdb\
-\x80u\xef\x01\xb0\xab\xe54n]\x17\xa6\xb7\x0dv'\
-\xa5\xdaY\xa3V~&\xee\xed\xf6\x00\xff\xb6:O\xee\
-\xd9\xbb\x05\xc6\xbc\xbdh\xdd\x9fF\xb3\x84I\xd8p1\
-s\xed\x91\xbb \xd9\xcd\x9e\x113\x85\xe6\xaa\x02\xce\x12\
-\x14m)g\xc0\xe6\xcd\xdb\x12pD\xb2\x82\xa7\x80\xc5\
-X\x9eT\x87y8\xa6\x5c\xd4\xc8\xf3\xa3J\x95\xfeF\
-\xb56\x0e\xc8\x95\x0cU\x05\xc1I\x0aE\xdb\x08s\x93\
-\xeb\x92\xc3d6\x83C/\x9c@>\xd6\xab!h7\
-L|{Zk\xeb\x0ev6*\x9eh\x1f/\x18\xc1\
-I\xeb<\x0a\x07aK\xe5\x1c\xdf\xe4)\x1a\xc5J\x93\
-yg\x9f[\xb4\x15\x89\xccQ\xb5v\xbf\x90\xdf\xdaf\
-$\xc03\xbb\xb9\x22\xd6]\xea\x16=\x0c\x92\xf2\xbd*\
-\x96\xa9\xd5\x8f:\xd2\x98J\xaaO|\xb3 \xa4\xea\x9e\
-:G\xb7\xea\x87\xe1\xdcf\xcb@\xccY\x925\xd6\x8c\
-r\x1a\xc9S\xed\x02\xd6\x94\xc3\x06]?\x0e\xe5\x841\
-\x9d\xc9\xa2<\x82\x1f\xad\x94\x22\xf7\x05E*\x1aKQ\
-9\xadf\x0aGu!\xe0\x88\x0b\xc2\xbc\xadh\xa5K\
-]\xef\xad[\x95F\xb5\x95\xae\xd6\x22H\xb5\xf3h\xe2\
-\x07\xf8\xde\xe7\x02\xfb\x16\x96\xd2\xe9Ug\xd3\x9a\xd7\x5c\
-\xadl\xa4\xb7\x9b>7\xa7\xa1m\x98\xd2\xb6b\x86J\
-\xe2[.?tg\xd1\xf5l\x0a\x1a\x90\xf3&\xd1q\
-\xa5\xa6\x91W\xcc\xb0\x98q\xb1=\xb7n*#*\xf5\
-\x0c \xfciKX\xae\x97h\xe2w\x95N\xb6@p\
-\x08\xc6\xf0\x5c)`4\x155\x8a-\xbe\xa8\xb8\x15]\
-\x99\xb9\x1b\xd1\x89+\x0c4\x95\xa4\xc9#\xf9O\xfe>\
-\xc0\xdf5m\xcb\xc0X\xa0\x0fi*\xeb\xb5\x83\xdc\x94\
-\x96\xba/\x22\x9f\xf4\xbd\x11\xe4P\x96\xb9_\xc3\x0d\xb4\
-q\x84\xe1\xb4[\x0ax)1u\xe9\xbf!\xb250\
-\xcdy\xec\x14*\x8av\xf5\xe2\xd4\xca\x16\xaf\xb2.^\
-C}_\xa4w\xa3\x01\x8fW\xcb\xa4\xb1\xb6_\xf6&\
-MVeX*\xfdW:\xda\xee\x0a*\x83\xce?\xd4\
-\xab\xadm\xa1\x19\x9f\xbc\xc8\x8a\xca\xf7\xea\xab\xee\xa5\x8e\
-\x96\x9f\xf4\xf7\x94\x96s\x9b6\x12\x14\x97\x86\x10\xc2\xc9\
-\xd6\xe8\xb5\x0aZ\xfe\x98\x12\x8eq\xf2\xeame\x13=\
-\xfe\x88\x87'\xb8\xe2y20\xdbEk\xf9\x0a\x9f\xad\
-\x0c\xe0\x0e3`s\x5cu\xd0.\xd6\xf8a\xe9\x85\x8b\
-+\xf6L#O\xddu6\x97\xaa\x94\x01\xd4\x05\x5c\x01\
-\xa9/\xbe\xdb\xc9\xf1ir\xc9\xba'\xe6Os\xcd\xf8\
-\x0d\xf7\x0c\xf5\xc1\xef\xdb\xc3]\x0aa@\xc8\xe2\x1e\xb9\
-\xee.!\x8f\xb9\x00\xca?\xd3\xbf\x9c\xd3\x8b\x8fu\x02\
-\x8e~*7\xbd\x96\xe5\x88\xc6jX\x90\xe4o\xe4\xdc\
-\xfa@z\xe4\x83U\xdf\xbc\xff\xbf{\xe2\x1b\xcd\x5c\x22\
-\xbb1\xe9`\xc3\xb5O\xf5m\xdf\xeeS\xaa\xde\x1f\x1c\
-\xd6wn\x0b`\xc5\xb5oW\xe5\xdd\xaa\xb6E5\xee\
-P\xef\xae\xe8\x9bp\x99\x9bGi\xa8\xc3a^\xdd/\
-HusC\x18-\x0dz[\x0cm\xf3p\xa3I\xf9\
-\x92\xa4\x9a\xe9\xb7\xad\x09\xf3\xcb\xc1\x9d\xdcV\xffJ\x03\
-K\xfc\x0c\xdc,\xd3?$\xc4\xcb\xcd9M\xa8(~\
-D+\xb6i\xec6\xf9\x9d\x06\x98\xf1\xf2\xbdI\xed\xab\
-\x99\x99\xf6\x85\xeae\xe9\xf9\xc5!k\xff`\xcb8\x89\
-\xca\xd6\x03\xc12P\x062\xf8\xba\x99\xce\xbb\x0d\x8d\xcd\
-\xf7Y?\x90\x0e\xfe>\x12\xce\x04\x5c\xe0\xcf\x80\xe1\xb8\
-\x00)#\x9c\xffV\x11%\x19\xc30/\xbaD_o\
-\xe0O\xaf\x93\x88\xcc\x82\x0c\xde\xff0\xebU\xdf^\x8e\
-^\x8e\xfe\x0b\xf7\x83q(\
-\x00\x00\x09\xe6\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2020 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick.Controls.Ma\
-terial\x0a\x0aToolBar \
-{\x0a Material.f\
-oreground: \x22whit\
-e\x22\x0a}\x0a\
-\x00\x00\x0e\xe1\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aSc\
-rollablePage {\x0a \
- id: page\x0a\x0a \
- Column {\x0a \
- spacing: 40\x0a \
- width: par\
-ent.width\x0a\x0a \
- Label {\x0a \
- width: pa\
-rent.width\x0a \
- wrapMode:\
- Label.Wrap\x0a \
- horizont\
-alAlignment: Qt.\
-AlignHCenter\x0a \
- text: \x22\
-ComboBox is a co\
-mbined button an\
-d popup list. It\
- presents \x22\x0a \
- + \x22a\
- list of options\
- to the user tha\
-t occupies minim\
-al screen space.\
-\x22\x0a }\x0a\x0a \
- ComboBox {\x0a\
- mode\
-l: [\x22First\x22, \x22Se\
-cond\x22, \x22Third\x22]\x0a\
- anch\
-ors.horizontalCe\
-nter: parent.hor\
-izontalCenter\x0a \
- }\x0a\x0a \
- Label {\x0a \
- width: pare\
-nt.width\x0a \
- wrapMode: L\
-abel.Wrap\x0a \
- horizontal\
-Alignment: Qt.Al\
-ignHCenter\x0a \
- text: \x22Co\
-mboBox can be ma\
-de \x5cl editable. \
-An editable comb\
-o box auto-\x22\x0a \
- + \x22\
-completes its te\
-xt based on what\
- is available in\
- the model.\x22\x0a \
- }\x0a\x0a \
-ComboBox {\x0a \
- editable:\
- true\x0a \
- model: ListMod\
-el {\x0a \
- id: model\x0a \
- L\
-istElement { tex\
-t: \x22Banana\x22 }\x0a \
- Li\
-stElement { text\
-: \x22Apple\x22 }\x0a \
- List\
-Element { text: \
-\x22Coconut\x22 }\x0a \
- }\x0a \
- onAccepted\
-: {\x0a \
- if (find(edi\
-tText) === -1)\x0a \
- \
- model.append(\
-{text: editText}\
-)\x0a }\x0a\
- anch\
-ors.horizontalCe\
-nter: parent.hor\
-izontalCenter\x0a \
- }\x0a }\x0a}\x0a\
-\
-\x00\x00\x08Q\
-\x00\
-\x00\x1dpx\x9c\xd5Ymo\xdb8\x12\xfe\xee_1\
-\xf0\x15\xb8v\xd7\xabt\xb7\x05\x16\xf0~8\xc8\xb2\x92\
-\x08p$G\x92\x93\x0b\x0e\x87\x05#\xd16QY\xf4\
-JT\x5c\xef\x22\xff\xfdf\xa8\x17K\xb6\xdc\xa6{{\
-\xc0\x85(j\x89\x1c\x0e\x9fyf8\x1c*\x17\xdf\xfd\
-\x85m\xa0\xff\x81%\xb7\xfbL\xac\xd6\x0a\xdeZ\xef\xe0\
-\xa7\xf7?\xfe\x0c\xe1\x9a\xc3\xad\xc2\x91\xcd\x96\xa5{\x98\
-\xa9\xd8(%S\xc5\x225\x86\xb5R\xdb||q\xb1\
-\xdb\xed\x8c\xdf\x94!\xe4E\x22\x22\x9e\xe6\x22]]T\
-Z\xc3\xb5\xc8a)\x12\x0e\xf8\xbbe\x99\x02\xb9\x04\x85\
-z\xf9g\xb6\xd9&<\xaf\xdfq\x9dP\xca\xe4\x93P\
-F5\xf5\xcdm\xf8\xeb\xc4\xber\xdc_g\x8ee\xbb\
-\x81=\x9e\x04\xd37%\x80\xcd\x86g\x91`\x09\xcc\xf4\
-\x82\x1c\x169[q\x1a\xab:P\xf1Z&1\x22\x81\
-'\x96\x88\x18\xa2\xc3\x1c\x5c\xaa\xc4\x89B\x1b\xb6\x87\x02\
-\xe7\xab\x03\xce\x94\xd4\xb0(\x92Y\xcc\xd2\x88\xc3N\xa8\
-\xb5\x86\xd8RQ\xcd\x07\xb6\xca8\xdf\xf0T\xc16\x93\
-O\x22\xe6q#NZ\x02\xb9T;\x96q\x90\xd9\x08\
-X\xa2x\x962%\x9ex\xb2\x1f\xe1:\xbd\x8b\xa0\xcc\
-&\xc7\xa5\x90b\x91\xa2\xba\x0a\x0e\xec2\xa1\x14O[\
-+>r\xb5\xe3\xd8\xb3\x97\x05\xb04>\xf2\x96\x01\x97\
-2\x83\xc6\x1f\xa5^\xad*%2\xd2X(!\xd3\x1c\
-\x90\xaa\x1e?j\xe9\x1f\x0eb\xa5\xb6e\x91!\xc4\x8c\
-\xb4\x88t)\xb3\x0d\xa3\xc1\x8a?^\x82\x8e\x14\xd0\x08\
-0\xd5\xa3\xb6\x92\xf8\xa1\xc8k'\xa3KO}hv\
-\x99\x22\x03O\xfdT\xa41\xcfZ\x94UqD\x0a+\
-\xefhkQZ&\x89\xdc\xe5\xe3j\xc5\xa1\xcfc\x91\
-\xabL<\x16\x1a=\xf1A\x9a\xd1\x1f\xb9,2\xf4\x05\
-\xf5<\x8a\x94e{mJ>*\xbd\x83\x04\xd0\xaf,\
-\x14\xa9\xd9\xc8X,E\xa4\x19@\xdf\xa2\x8f\xb7\x08\x83\
-|\x14\x1fbA\xad\x91\x06BUb ?\xb4\xa8\xc7\
-IZ\x13W\x84\x0d\x00\xbe\x83.6mT\x05*\x92\
-1\x87M\x91+\xc88\x85\x86V\xcb\x1e\xe5\x13\x0dU\
-;\xb7\xd4\x02\x90J\x85\x0c\x8cJ\xb2\x12THz\xda\
-\x0b\xa7\xf1\x11*\x5c5J\x98\xc0\xf06\xceA\xc1%\
-[\xa4\xd4P\xd0\xd4\xb8\x88\xf8\xff\x0aM\x15\xfe\xd4H\
-$\x96QA\xb1\xcfj\xcf]\xa0S$\xc5$\x06\x08\
-\x86\x01n\xcd\xbc\x7f'Rk\xdb\xd3\x98\xe9r\xa1\xe7\
-\x93\xfa\x94m8\x81;\xcd{h\xc4AD\xbbE\xa8\
-\xbc\xd6KQ\xad\xf5\xca\xacL(\x8f\x9c\x22\x0a\xad\x92\
-\xc0\xd3\x18{)\x01\x10\xae\x8dT\x1cJ\xcaT\x0e\x18\
-\xbf\x18\xe1q\xadf\x89\xe3%Iy\x9d6\xaax\x83\
-|\xcb#\x8a6\x9c+(\x0c\xab\x5c\xa0#.\xcf+\
-s\xea\x8c{\xed\x04\x10x\x97\xe1\xbd\xe9\xdb\x80\xcfs\
-\xdf\xbbs\xa6\xf6\x14&\x0f8h\x83\xe5\xcd\x1f|\xe7\
-\xea:\x84ko6\xb5\xfd\x00Lw\x8a\xbdn\xe8;\
-\x93E\xe8\xf9\x81\xde&f\x80\x93\x87z\xcct\x1f\xc0\
-\xfe\xe7\xdc\xb7\x83\x00<\x1f\x9c\x9b\xf9\xccA}\xb8\x80\
-o\xba\xa1c\x07#p\x5ck\xb6\x98:\xee\xd5\x08P\
-\x07\xb8^\xa8\x93\xb1s\xe3\x84(\x19z#\xbd\xf4\xe9\
-L\xf0.\xe1\xc6\xf6\xadk|5'\xce\xcc\x09\x1f\xf4\
-\x92\x97N\xe8\xd2r\x97\x9e\xaf3\x02\xccM?t\xac\
-\xc5\xcc\xf4a\xbe\xf0\xe7^`\x03\xd97u\x02kf\
-:7\xf6\xd4@\x0c\xb8.\xd8w\xb6\x1bBpm\xce\
-f]sI\x8fw\xef\xda>\xd9\xd06\x17&6\x22\
-5'3\x9b\x96\xd3\xd6N\x1d\xdf\xb6B2\xeb\xf0d\
-!\x89\x08r6\xd2\x99}n[\x0e>#/6\x1a\
-e\xfa\x0f\xa3Jm`\xdf.P\x0e\x07aj\xde\x98\
-Wh\xe3\xdb\xaf\xb3\x83N\xb2\x16\xbe}C\xd8\x91\x92\
-`1\x09B'\x5c\x846\x5cy\xdeT\xd3\x1e\xd8\xfe\
-\x1d\x1e\x84\xc1/0\xf3\x02M\xdc\x22\xb05\x98\xa9\x19\
-\x9azy\xd4\x82\xc4\xa1\x04>O\x16\x81\xa3)t\xdc\
-\xd0\xf6\xfd\xc5<t<\xf7\x1d\xfa\xfc\x1e\x19B\xa4&\
-\xce\x9ej\xae=\x97l.c\xc7\xf6\xfc\x07RM|\
-ho\x8c\xe0\xfe\xda\xc6~\x9f\xe8\xd5\xac\x99DG\x80\
-\xecYa[\x0c\x97D2\xb5a\x07{\xc1\xb5\xaff\
-\xce\x95\xedZ6\x09x\xa4\xe8\xde\x09\xecw\xe8<'\
- \x01G/\x8e\x11\x81\xcb.\xb4\xed\xe44\xc4\xa6\xdd\
-u\xd9\x0d\xe7\x91\xf6.8\x97`N\xef\x1c\xc2_\xc9\
-c<\x04N\x15>\x9a>\xeb\xbab\xdf\x18\xb6\xca\x09\
-\xdb\x9d\xd6\xc5\xc4\x9b\xb2\xfb\xafk\x17\x83\x81\xd8l%\
-V8\xb7\xea\xb6\x10\xd1\xa7\xa3Wc\xc6\xf0 \xc3\xac\
-q\xd4M\xd5T&\x93|0\x98\xb3\x94\xc3\x1f\x03\xca\
-\x05[\x16S\xed2\x86\xf7\x83\xf2=\x93\xb8\xd9\xd5\x1e\
-\x8b\x99\x0c\xf3F\xc2W\x98\xee(?\xc9\x14\xd3\xe1\x0d\
-\xdb\x8e\xab\x89\xd4\x86\x8e\xe2\x9bi%4\x1cc\xaa:\
-\xbc6sF\x07\xf1`'\xb6\xbc%\x9f\xb7\xdf\xfb&\
-Xk\x1e}jM\x88\xda\xef}\x13|\x16\x0b\xd9\x9a\
-\x90\xb5\xdf\xcf@R\xd1\xba\x8b\xa9\xd5\xd1L\xd13\x9e\
-K\x8e\x9a\xce\x16\x15\x22>c\xfe\xa0\x11i\x93\xd5\x9a\
-\xa9\x8f\x1c\xfe\x19\xab\xdc\x84=\xf2$\xc4\xc7\xce\xd8N\
-\xc4j=\xa6\x92\x16\xb5\x19\xfa\xad\x19\x7f~\x09\xac~\
-\x96\x0f\xb8:^9\x02v2\xff\xbf\x82\xdd\x11\xe8\x83\
-\xdb^6\xe3\x1b<\xe5{\xf0\xd6\xcd\xe7\x91b\xe9*\
-9\xc6\x5c\xb7H&2\x1bw\xcd3\xb6\x19\xcf\xe9\xc4\
-\xfc\x07\x0c\xff\xf6\xe1\xc3\x87!\x8c\xf1\xe1\xe3\xc7\x8f\xc3\
-^\x15_\xe2\xbe\xdd\xd6\x9c\xea\x90F\xb0|\xed\x07\x95\
-\x08\xdcB*+\xf8\xa9A\xd4\xbaheja\x89\xf9\
-\x89#\x1dO\x82\xef\x0c\xac\x05yb\x94\xcc\xbc\xc5r\
-\xcd\xc1\xd2\xf4\xf3\xbb~M3r\xcb\x19j\xa8-1\
-\x1d\x18[\xf1\x99'\x81\xf8\x9d\x1f\xb9\xd9\xe8\x8e\x9eU\
-RF\x00V\xba\x84\xa8\x9fCmu\xe9\x8a\xe1n\x8d\
-{\xe4\xbc\x18^P\xd6X\xc4\x18XTc\x8d\xe5\xa4\
-5\xa1\xbd\x13\x9eOz\xbb=\xcf]Z\xb4yF\xc2\
-\x97\xea4\xb4N\xe5\xb2\xd2\x9f\xe7\x04_\xb4\xef\xfa\x93\
-\xd5\x01U'\xb9\xbd0!t\x16\x9e\x14J\xc9\xf4*\
-\x93\xc5\xf6hi\x9d\xf6Z\xc3/\x81\xdb\x9f*\x0fp\
-;\xa9\xf5\x1b\xf2W\x0b\x86\xb1\xa2\xff\xcf\xc0{1\xaf\
-\xe72t;\xa1\xb5\x04\xfe\x0c\xb3\x96L\x8aMZ\x9e\
-\xa3\xc7^\xd5CMW\xbee\x91>??\xbeo\xfa\
-\xea0\xc6\xdbcr\x12\xc2\xf5\xa0\x92\xdb\x1b\x96\xad\x04\
-\x06\xf9O\xef\x0f\xd8\xfbvm\x89C\xab\xbb/\x13\x92\
-\xce\x1fm\x91]\xc6\xb67\x98\x1c\xc6\xa5\x02\xe3\x1e\xdf\
-;\x02\xb8\xa6\xf8\x9d.\xc5\x89\x99\x88UJw\x9b1\
-V\x06\x86~\xbb\xb6\xf4\x86\xeb\xe1i\xd8\xb0\x18U\xd5\
-\x83\xbe\x81\xeaK\x07\xcb\x9b\x02A_\xda(C\xe1\x95\
-\xa2\x88\xd644\xc3;\xd0\x1d\xe5\xaca\x8b\xe2\x83\x99\
-\xd5h\xcfq\x93TC\xdfJAK\xe4\xbaJ\xc7'\
-2\xad\xec\xdb\xee\xd6iu\xacA\x11\x89}Y\x93\xc6\
-\xec\xa4\xfc\x1e\xf2\x07\xa8\xfd\x16\xa9\xee\x96?\xbf\xd4\x94\
-uz{\xd2\xd4+R\xd5-\xd8\x1a]\xdd\xee\xd7\xaf\
-\xac[f6\xca\xba\xdd\xaf_Y\xb78n\x94u\xbb\
-_\xbf\xb2\xa3\x92\xbe\x1d\x1b\xed\xfeW\xa5\xee\xb8\x98\xc1\
-\xd2\x97>\xc6\xd4\xb75\x9cO\xea\x87\xbdBu\x92\x1e\
-C\xeb\xde\xd7nU\x95['\xde3un]\xe3V\
-j\xcbs\x06\xaf\x98X\xa0\x0aUf\x5c\xf8\xbes\x96\
-5<|\xa1\x12\xd5\x07zKc\xafPIQ%\xd6\
-+\xf1\xe2\xca\xf1\x8b\xb4\x1e\x98\x9aIF\x1f}\xfbo\
-&\xb5X)\xf4'\xe9,\xbf\xb66\xd5\xcb\xb8\xf7\xb2\
-\xfd/\xb2\xfc\xdf\xa7\x8c6\xb7t\xfa\xce\x98\xae\x0e\xe5\
-\xccXsu^\xbe9w\xe9\xb0>s\xd6v&\x08\
-\x8c\xdd\xfa\xa2\x817\x5c\xfa9\x85sq\x01\x16K\xff\
-\xae`\x89\x02\xf4'\x04\xb6\xa7O\x92\xb1,\xbf2V\
-\xdf\x90\xbb\xf7\xcc\xa8\xa9\xee\x84\xcay\xb2\x1c\xf5i\xcd\
-\xb5\x12\xa10\xf82\xfap\x9e+\xceb\xa3w\xa3i\
-\xaaeZ\xdeD\xf0\xd6\xc7\x7f+P\xb9\xc0z'\x15\
-\xd5\x9f\x0f\xfa#p^\x99jF_\x10\xa2\xa6\xb0\x5c\
-\xe3\xea\xab\xee?\xa6\x10\xf7f\x83\x0f\xa7\xb2\xfd\xd7.\
-KO,)xO\x95R\xb7\xd3DC\xcd-6\x8f\
-<\xfb\x9a\xb1m;\xe8s\xc5K\xd0\x97\x1b\xff<^\
-%\xe9\xeb\xd1\xb9Q\xce\xe8\xafBF\x99\xfd\xec\xf2\xc5\
-I\xbdB\xdd\x16,\xfe\x06\xfb\xfe_\xdd\xb4dI\xfe\
-R?\x1d'\x9f\xee\xd3\xf3\xe0y\xf0\x1f\x86VO'\
-\
-\x00\x00\x0b\xef\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aSc\
-rollablePage {\x0a \
- id: page\x0a\x0a \
- Column {\x0a \
- spacing: 40\x0a \
- width: par\
-ent.width\x0a\x0a \
- Label {\x0a \
- width: pa\
-rent.width\x0a \
- wrapMode:\
- Label.Wrap\x0a \
- horizont\
-alAlignment: Qt.\
-AlignHCenter\x0a \
- text: \x22\
-The Dial is simi\
-lar to a traditi\
-onal dial knob t\
-hat is found on \
-devices such as \
-\x22\x0a \
- + \x22stereos or \
-industrial equip\
-ment. It allows \
-the user to spec\
-ify a value with\
-in a range.\x22\x0a \
- }\x0a\x0a \
-Dial {\x0a \
- value: 0.5\x0a \
- anchor\
-s.horizontalCent\
-er: parent.horiz\
-ontalCenter\x0a \
- }\x0a }\x0a}\x0a\
-\x00\x00\x0c2\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aSc\
-rollablePage {\x0a \
- id: page\x0a\x0a \
- Column {\x0a \
- spacing: 40\x0a \
- width: par\
-ent.width\x0a\x0a \
- Label {\x0a \
- width: pa\
-rent.width\x0a \
- wrapMode:\
- Label.Wrap\x0a \
- horizont\
-alAlignment: Qt.\
-AlignHCenter\x0a \
- text: \x22\
-SpinBox allows t\
-he user to choos\
-e an integer val\
-ue by clicking t\
-he up or down in\
-dicator buttons,\
- \x22\x0a \
- + \x22by pressin\
-g up or down on \
-the keyboard, or\
- by entering a t\
-ext value in the\
- input field.\x22\x0a \
- }\x0a\x0a \
- SpinBox {\x0a \
- id: box\x0a\
- valu\
-e: 50\x0a \
- anchors.horizo\
-ntalCenter: pare\
-nt.horizontalCen\
-ter\x0a \
-editable: true\x0a \
- }\x0a }\x0a}\
-\x0a\
-\x00\x00\x0e\x0f\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aSc\
-rollablePage {\x0a \
- id: page\x0a\x0a \
- readonly proper\
-ty int itemWidth\
-: Math.max(butto\
-n.implicitWidth,\
- Math.min(button\
-.implicitWidth *\
- 3, page.availab\
-leWidth / 3 * 2)\
-)\x0a\x0a Column {\x0a\
- spacing:\
- 40\x0a widt\
-h: parent.width\x0a\
-\x0a Label {\
-\x0a wid\
-th: parent.width\
-\x0a wra\
-pMode: Label.Wra\
-p\x0a ho\
-rizontalAlignmen\
-t: Qt.AlignHCent\
-er\x0a t\
-ext: \x22Frame is u\
-sed to layout a \
-logical group of\
- controls togeth\
-er, within a vis\
-ual frame.\x22\x0a \
- }\x0a\x0a F\
-rame {\x0a \
- anchors.horiz\
-ontalCenter: par\
-ent.horizontalCe\
-nter\x0a\x0a \
- Column {\x0a \
- spaci\
-ng: 20\x0a \
- width: pa\
-ge.itemWidth\x0a\x0a \
- Ra\
-dioButton {\x0a \
- \
-text: \x22First\x22\x0a \
- \
- checked: true\x0a\
- \
- width: paren\
-t.width\x0a \
- }\x0a \
- RadioB\
-utton {\x0a \
- id: \
-button\x0a \
- text:\
- \x22Second\x22\x0a \
- wi\
-dth: parent.widt\
-h\x0a \
- }\x0a \
- RadioButton \
-{\x0a \
- text: \x22Thi\
-rd\x22\x0a \
- width: p\
-arent.width\x0a \
- }\x0a \
- }\x0a \
- }\x0a }\x0a}\x0a\
-\x00\x00\x0b\xab\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aSc\
-rollablePage {\x0a \
- id: page\x0a\x0a \
- Column {\x0a \
- spacing: 40\x0a \
- width: par\
-ent.width\x0a\x0a \
- Label {\x0a \
- width: pa\
-rent.width\x0a \
- wrapMode:\
- Label.Wrap\x0a \
- horizont\
-alAlignment: Qt.\
-AlignHCenter\x0a \
- text: \x22\
-PageIndicator is\
- used to indicat\
-e the currently \
-active page in a\
- container of pa\
-ges.\x22\x0a }\x0a\
-\x0a PageInd\
-icator {\x0a \
- count: 5\x0a \
- curren\
-tIndex: 2\x0a \
- anchors.ho\
-rizontalCenter: \
-parent.horizonta\
-lCenter\x0a \
-}\x0a }\x0a}\x0a\
-\x00\x00\x0e\x98\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aPa\
-ge {\x0a id: pag\
-e\x0a\x0a SwipeView\
- {\x0a id: s\
-wipeView\x0a \
- anchors.fill: p\
-arent\x0a cu\
-rrentIndex: tabB\
-ar.currentIndex\x0a\
-\x0a Repeate\
-r {\x0a \
-model: 3\x0a\x0a \
- Pane {\x0a \
- wid\
-th: swipeView.wi\
-dth\x0a \
- height: swip\
-eView.height\x0a\x0a \
- Co\
-lumn {\x0a \
- spaci\
-ng: 40\x0a \
- width\
-: parent.width\x0a\x0a\
- \
- Label {\x0a \
- \
- width: paren\
-t.width\x0a \
- \
-wrapMode: Label.\
-Wrap\x0a \
- hor\
-izontalAlignment\
-: Qt.AlignHCente\
-r\x0a \
- text: \
-\x22TabBar is a bar\
- with icons or t\
-ext which allows\
- the user \x22\x0a \
- \
- + \x22to \
-switch between d\
-ifferent subtask\
-s, views, or mod\
-es.\x22\x0a \
- }\x0a\x0a \
- \
-Image {\x0a \
- \
-source: \x22../imag\
-es/arrows.png\x22\x0a \
- \
- anchors.h\
-orizontalCenter:\
- parent.horizont\
-alCenter\x0a \
- }\x0a \
- }\
-\x0a }\x0a \
- }\x0a }\x0a\x0a\
- footer: TabB\
-ar {\x0a id:\
- tabBar\x0a \
-currentIndex: sw\
-ipeView.currentI\
-ndex\x0a\x0a Ta\
-bButton {\x0a \
- text: \x22Fir\
-st\x22\x0a }\x0a \
- TabButton \
-{\x0a te\
-xt: \x22Second\x22\x0a \
- }\x0a T\
-abButton {\x0a \
- text: \x22Th\
-ird\x22\x0a }\x0a \
- }\x0a}\x0a\
-\x00\x00\x0b\xcc\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aSc\
-rollablePage {\x0a \
- id: page\x0a\x0a \
- Column {\x0a \
- spacing: 40\x0a \
- width: par\
-ent.width\x0a\x0a \
- Label {\x0a \
- width: pa\
-rent.width\x0a \
- wrapMode:\
- Label.Wrap\x0a \
- horizont\
-alAlignment: Qt.\
-AlignHCenter\x0a \
- text: \x22\
-BusyIndicator is\
- used to indicat\
-e activity while\
- content is bein\
-g loaded,\x22\x0a \
- + \x22\
- or when the UI \
-is blocked waiti\
-ng for a resourc\
-e to become avai\
-lable.\x22\x0a \
-}\x0a\x0a BusyI\
-ndicator {\x0a \
- anchors.h\
-orizontalCenter:\
- parent.horizont\
-alCenter\x0a \
- }\x0a }\x0a}\x0a\
-\x00\x00\x0b(\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aPa\
-ge {\x0a id: pag\
-e\x0a\x0a default p\
-roperty alias co\
-ntent: pane.cont\
-entItem\x0a\x0a Fli\
-ckable {\x0a \
- anchors.fill: p\
-arent\x0a co\
-ntentHeight: pan\
-e.implicitHeight\
-\x0a flickab\
-leDirection: Fli\
-ckable.AutoFlick\
-IfNeeded\x0a\x0a \
- Pane {\x0a \
- id: pane\x0a \
- width:\
- parent.width\x0a \
- }\x0a\x0a \
- ScrollIndicator\
-.vertical: Scrol\
-lIndicator { }\x0a \
- }\x0a}\x0a\
-\x00\x00\x0cv\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aSc\
-rollablePage {\x0a \
- id: page\x0a\x0a \
- Column {\x0a \
- spacing: 40\x0a \
- width: par\
-ent.width\x0a\x0a \
- Label {\x0a \
- width: pa\
-rent.width\x0a \
- wrapMode:\
- Label.Wrap\x0a \
- horizont\
-alAlignment: Qt.\
-AlignHCenter\x0a \
- text: \x22\
-ProgressBar indi\
-cates the progre\
-ss of an operati\
-on. It can be se\
-t in an \x22\x0a \
- + \x22ind\
-eterminate mode \
-to indicate that\
- the length of t\
-he operation is \
-unknown.\x22\x0a \
- }\x0a\x0a Pro\
-gressBar {\x0a \
- id: bar\x0a \
- value\
-: 0.5\x0a \
- anchors.horizo\
-ntalCenter: pare\
-nt.horizontalCen\
-ter\x0a }\x0a\x0a \
- ProgressB\
-ar {\x0a \
- indeterminate: \
-true\x0a \
- anchors.horizon\
-talCenter: paren\
-t.horizontalCent\
-er\x0a }\x0a \
- }\x0a}\x0a\
-\x00\x00\x0eU\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aPa\
-ne {\x0a id: pan\
-e\x0a\x0a SwipeView\
- {\x0a id: v\
-iew\x0a curr\
-entIndex: 1\x0a \
- anchors.fill\
-: parent\x0a\x0a \
- Repeater {\x0a \
- model: \
-3\x0a\x0a P\
-ane {\x0a \
- width: vie\
-w.width\x0a \
- height: \
-view.height\x0a\x0a \
- Col\
-umn {\x0a \
- spacin\
-g: 40\x0a \
- width:\
- parent.width\x0a\x0a \
- \
- Label {\x0a \
- \
- width: parent\
-.width\x0a \
- w\
-rapMode: Label.W\
-rap\x0a \
- hori\
-zontalAlignment:\
- Qt.AlignHCenter\
-\x0a \
- text: \x22\
-SwipeView provid\
-es a navigation \
-model that simpl\
-ifies horizontal\
- paged scrolling\
-. \x22\x0a \
- + \x22T\
-he page indicato\
-r on the bottom \
-shows which is t\
-he presently act\
-ive page.\x22\x0a \
- }\
-\x0a\x0a \
- Image {\x0a \
- \
- source: \x22.\
-./images/arrows.\
-png\x22\x0a \
- anc\
-hors.horizontalC\
-enter: parent.ho\
-rizontalCenter\x0a \
- \
- }\x0a \
- }\x0a \
- }\x0a }\x0a \
- }\x0a\x0a PageIn\
-dicator {\x0a \
- count: view.co\
-unt\x0a curr\
-entIndex: view.c\
-urrentIndex\x0a \
- anchors.bott\
-om: parent.botto\
-m\x0a anchor\
-s.horizontalCent\
-er: parent.horiz\
-ontalCenter\x0a \
-}\x0a}\x0a\
-\x00\x00\x0b\xf8\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aSc\
-rollablePage {\x0a \
- id: page\x0a\x0a \
- Column {\x0a \
- spacing: 40\x0a \
- width: par\
-ent.width\x0a\x0a \
- Label {\x0a \
- width: pa\
-rent.width\x0a \
- wrapMode:\
- Label.Wrap\x0a \
- horizont\
-alAlignment: Qt.\
-AlignHCenter\x0a \
- text: \x22\
-TextArea is a mu\
-lti-line text ed\
-itor.\x22\x0a }\
-\x0a\x0a TextAr\
-ea {\x0a \
- width: Math.max\
-(implicitWidth, \
-Math.min(implici\
-tWidth * 3, pane\
-.availableWidth \
-/ 3))\x0a \
- anchors.horizo\
-ntalCenter: pare\
-nt.horizontalCen\
-ter\x0a\x0a \
- wrapMode: TextA\
-rea.Wrap\x0a \
- text: \x22Text\
-Area\x5cn...\x5cn...\x5cn\
-...\x22\x0a }\x0a \
- }\x0a}\x0a\
-\x00\x00\x0db\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aFl\
-ickable {\x0a id\
-: flickable\x0a\x0a \
- contentHeight: \
-pane.height\x0a\x0a \
- Pane {\x0a \
-id: pane\x0a \
- width: flickabl\
-e.width\x0a \
-height: flickabl\
-e.height * 1.25\x0a\
-\x0a Column \
-{\x0a id\
-: column\x0a \
- spacing: 40\
-\x0a wid\
-th: parent.width\
-\x0a\x0a La\
-bel {\x0a \
- width: par\
-ent.width\x0a \
- wrapMo\
-de: Label.Wrap\x0a \
- h\
-orizontalAlignme\
-nt: Qt.AlignHCen\
-ter\x0a \
- text: \x22Scrol\
-lBar is an inter\
-active bar that \
-can be used to s\
-croll to a speci\
-fic position. \x22\x0a\
- \
- + \x22A scroll \
-bar can be eithe\
-r vertical or ho\
-rizontal, and ca\
-n be attached to\
- any Flickable, \
-\x22\x0a \
- + \x22such as\
- ListView and Gr\
-idView.\x22\x0a \
- }\x0a\x0a \
- Image {\x0a \
- rota\
-tion: 90\x0a \
- source:\
- \x22../images/arro\
-ws.png\x22\x0a \
- anchors.\
-horizontalCenter\
-: parent.horizon\
-talCenter\x0a \
- }\x0a \
-}\x0a }\x0a\x0a Scr\
-ollBar.vertical:\
- ScrollBar { }\x0a}\
-\x0a\
-\x00\x00\x0c\x01\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aSc\
-rollablePage {\x0a \
- id: page\x0a\x0a \
- Column {\x0a \
- spacing: 40\x0a \
- width: par\
-ent.width\x0a\x0a \
- Label {\x0a \
- width: pa\
-rent.width\x0a \
- wrapMode:\
- Label.Wrap\x0a \
- horizont\
-alAlignment: Qt.\
-AlignHCenter\x0a \
- text: \x22\
-A tool tip is a \
-short piece of t\
-ext that informs\
- the user of a c\
-ontrol's functio\
-n.\x22\x0a }\x0a\x0a \
- Button {\x0a\
- text\
-: \x22Tip\x22\x0a \
- anchors.hori\
-zontalCenter: pa\
-rent.horizontalC\
-enter\x0a\x0a \
- ToolTip.timeo\
-ut: 5000\x0a \
- ToolTip.vis\
-ible: pressed\x0a \
- ToolTi\
-p.text: \x22This is\
- a tool tip.\x22\x0a \
- }\x0a }\x0a}\x0a\
-\
-\x00\x00\x0c&\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aSc\
-rollablePage {\x0a \
- id: page\x0a\x0a \
- Column {\x0a \
- spacing: 40\x0a \
- width: par\
-ent.width\x0a\x0a \
- Label {\x0a \
- width: pa\
-rent.width\x0a \
- wrapMode:\
- Label.Wrap\x0a \
- horizont\
-alAlignment: Qt.\
-AlignHCenter\x0a \
- text: \x22\
-Slider is used t\
-o select a value\
- by sliding a ha\
-ndle along a tra\
-ck.\x22\x0a }\x0a\x0a\
- Slider {\
-\x0a id:\
- slider\x0a \
- value: 0.5\x0a \
- ancho\
-rs.horizontalCen\
-ter: parent.hori\
-zontalCenter\x0a \
- }\x0a\x0a \
-Slider {\x0a \
- orientation\
-: Qt.Vertical\x0a \
- value:\
- 0.5\x0a \
- anchors.horizon\
-talCenter: paren\
-t.horizontalCent\
-er\x0a }\x0a \
- }\x0a}\x0a\
-\x00\x00\x0bl\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aSc\
-rollablePage {\x0a \
- id: page\x0a\x0a \
- Column {\x0a \
- spacing: 40\x0a \
- width: par\
-ent.width\x0a\x0a \
- Label {\x0a \
- width: pa\
-rent.width\x0a \
- wrapMode:\
- Label.Wrap\x0a \
- horizont\
-alAlignment: Qt.\
-AlignHCenter\x0a \
- text: \x22\
-Tumbler is used \
-to select a valu\
-e by spinning a \
-wheel.\x22\x0a \
-}\x0a\x0a Tumbl\
-er {\x0a \
- model: 10\x0a \
- anchors.h\
-orizontalCenter:\
- parent.horizont\
-alCenter\x0a \
- }\x0a }\x0a}\x0a\
-\x00\x00\x0c\x9d\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aSc\
-rollablePage {\x0a \
- id: page\x0a\x0a \
- Column {\x0a \
- spacing: 40\x0a \
- width: par\
-ent.width\x0a\x0a \
- Label {\x0a \
- width: pa\
-rent.width\x0a \
- wrapMode:\
- Label.Wrap\x0a \
- horizont\
-alAlignment: Qt.\
-AlignHCenter\x0a \
- text: \x22\
-RangeSlider is u\
-sed to select a \
-range specified \
-by two values, b\
-y sliding each h\
-andle along a tr\
-ack.\x22\x0a }\x0a\
-\x0a RangeSl\
-ider {\x0a \
- id: slider\x0a \
- first.\
-value: 0.25\x0a \
- second.v\
-alue: 0.75\x0a \
- anchors.h\
-orizontalCenter:\
- parent.horizont\
-alCenter\x0a \
- }\x0a\x0a Rang\
-eSlider {\x0a \
- orientatio\
-n: Qt.Vertical\x0a \
- first\
-.value: 0.25\x0a \
- second.\
-value: 0.75\x0a \
- anchors.\
-horizontalCenter\
-: parent.horizon\
-talCenter\x0a \
- }\x0a }\x0a}\x0a\
-\x00\x00\x0e>\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aSc\
-rollablePage {\x0a \
- id: page\x0a\x0a \
- readonly proper\
-ty int itemWidth\
-: Math.max(butto\
-n.implicitWidth,\
- Math.min(button\
-.implicitWidth *\
- 3, page.availab\
-leWidth / 3 * 2)\
-)\x0a\x0a Column {\x0a\
- spacing:\
- 40\x0a widt\
-h: parent.width\x0a\
-\x0a Label {\
-\x0a wid\
-th: parent.width\
-\x0a wra\
-pMode: Label.Wra\
-p\x0a ho\
-rizontalAlignmen\
-t: Qt.AlignHCent\
-er\x0a t\
-ext: \x22A GroupBox\
- provides a fram\
-e, a title on to\
-p of it, and a l\
-ogical group of \
-controls within \
-that frame.\x22\x0a \
- }\x0a\x0a \
-GroupBox {\x0a \
- title: \x22T\
-itle\x22\x0a \
- anchors.horizo\
-ntalCenter: pare\
-nt.horizontalCen\
-ter\x0a\x0a \
- Column {\x0a \
- spacin\
-g: 20\x0a \
- width: pag\
-e.itemWidth\x0a\x0a \
- Rad\
-ioButton {\x0a \
- t\
-ext: \x22First\x22\x0a \
- \
- checked: true\x0a \
- \
- width: parent\
-.width\x0a \
- }\x0a \
- RadioBu\
-tton {\x0a \
- id: b\
-utton\x0a \
- text: \
-\x22Second\x22\x0a \
- wid\
-th: parent.width\
-\x0a \
- }\x0a \
- RadioButton {\
-\x0a \
- text: \x22Thir\
-d\x22\x0a \
- width: pa\
-rent.width\x0a \
- }\x0a \
- }\x0a \
- }\x0a }\x0a}\x0a\
-\x00\x00\x0c\xee\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aSc\
-rollablePage {\x0a \
- id: page\x0a\x0a \
- Column {\x0a \
- spacing: 40\x0a \
- width: par\
-ent.width\x0a\x0a \
- Label {\x0a \
- width: pa\
-rent.width\x0a \
- wrapMode:\
- Label.Wrap\x0a \
- horizont\
-alAlignment: Qt.\
-AlignHCenter\x0a \
- text: \x22\
-RadioButton pres\
-ents an option b\
-utton that can b\
-e toggled on or \
-off. \x22\x0a \
- + \x22Radio \
-buttons are typi\
-cally used to se\
-lect one option \
-from a set of op\
-tions.\x22\x0a \
-}\x0a\x0a Colum\
-n {\x0a \
-spacing: 20\x0a \
- anchors.\
-horizontalCenter\
-: parent.horizon\
-talCenter\x0a\x0a \
- RadioButt\
-on {\x0a \
- text: \x22Firs\
-t\x22\x0a }\
-\x0a Rad\
-ioButton {\x0a \
- text:\
- \x22Second\x22\x0a \
- checke\
-d: true\x0a \
- }\x0a \
- RadioButton {\x0a\
- \
-text: \x22Third\x22\x0a \
- en\
-abled: false\x0a \
- }\x0a \
- }\x0a }\x0a}\x0a\
-\x00\x00\x0d|\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aFl\
-ickable {\x0a id\
-: flickable\x0a\x0a \
- contentHeight: \
-pane.height\x0a\x0a \
- Pane {\x0a \
-id: pane\x0a \
- width: flickabl\
-e.width\x0a \
-height: flickabl\
-e.height * 1.25\x0a\
-\x0a Column \
-{\x0a id\
-: column\x0a \
- spacing: 40\
-\x0a wid\
-th: parent.width\
-\x0a\x0a La\
-bel {\x0a \
- width: par\
-ent.width\x0a \
- wrapMo\
-de: Label.Wrap\x0a \
- h\
-orizontalAlignme\
-nt: Qt.AlignHCen\
-ter\x0a \
- text: \x22Scrol\
-lIndicator is a \
-non-interactive \
-indicator that i\
-ndicates the cur\
-rent scroll posi\
-tion. \x22\x0a \
- + \x22A\
- scroll indicato\
-r can be either \
-vertical or hori\
-zontal, and can \
-be attached to a\
-ny Flickable, \x22\x0a\
- \
- + \x22such as L\
-istView and Grid\
-View.\x22\x0a \
- }\x0a\x0a \
- Image {\x0a \
- rotati\
-on: 90\x0a \
- source: \x22\
-../images/arrows\
-.png\x22\x0a \
- anchors.ho\
-rizontalCenter: \
-parent.horizonta\
-lCenter\x0a \
- }\x0a }\x0a\
- }\x0a\x0a Scrol\
-lIndicator.verti\
-cal: ScrollIndic\
-ator { }\x0a}\x0a\
-\x00\x00\x09\x89\
-\x00\
-\x00 \xa9x\x9c\xcdYmo\xdb8\x12\xfe\x9e_1\
-\x08\xfa\xa1\xd9u\x94nw\x81\x03|\x1f\x0e~Q\x12\
-\x01\x8e\xedJrs\x01\x0eX\xd0\x12\x1d\xf3\x22\x89*\
-I\xc5\xf5\xed\xf5\xbf\xdf\x0c)\xc7\xb2-'A\xdb\xdd\
-\x1eQ4\xa28\xaf\xcf\x0c\x87C\xf9\xe2\xa7\xef8N\
-\xec?\x18\xc8r\xad\xc4\xfd\xd2\xc0\xdb\xc1\x19\xbc\x7f\xf7\
-\xcb\xdf ^r\xf8`p%/Y\xb1\x86\x91I=\
-GY\x18\x96\x98.,\x8d)u\xf7\xe2b\xb5Zy\
-\x9f\x8c'\xe4E&\x12^hQ\xdc_\xd4R\xe3\xa5\
-\xd0\xb0\x10\x19\x07\xfc[2e@.\xc0\xa0\x5c\xfe\x99\
-\xe5e\xc6\xf5f\x8ezb)\xb3\x07a\xbc\x9a\xf5\xcd\
-\x87\xf8\xf7\xbe\x7f\x15\x8c\x7f\x1f\x05\x03\x7f\x1c\xf9\xdd~\
-4|\xe3\x0c\xc8s\xae\x12\xc12\x18Y\x85\x1cf\x9a\
-\xddsZ\xab_\xa0\xe0\xa5\xccR\xb4\x04\x1eY&R\
-H\xb6<\xa8\xca\xd9\x89D9[C\x85\xfcfkg\
-AbX\x92H\x95\xb2\x22\xe1\xb0\x12fiMl\x88\
-\xa8\xf9\x81\xdd+\xces^\x18(\x95|\x14)O\x9f\
-\xc8IJ$\x17f\xc5\x14\x07\xa9:\xc02\xc3U\xc1\
-\x8cx\xe4\xd9\xba\x83zZ\x95 M\xaeQ\x15B,\
-\x0a\x14W\x9b\x03+%\x8c\xe1EC\xe3\x9c\x9b\x15\xc7\
-7kY\x01+\xd2\xbdhyp)\x15<\xc5\xc3\xc9\
-\xb5\xa2\x0a\x02\xa3H\x85\x11\xb2\xd0\x80P\xb5\xc4\xd1R\
-\x9fo\xc9\x9c\xb4E\xa5\xd0DERD\xb1\x90*g\
-\xb4X\xe3\xc7\x9d\xd1\x89\x01Z\x01fZ\xc4\xd6\x14\xe7\
-\x95\xde\x04\x19Cz\x18\xc3\xde.R\xe4\xe0a\x9c\xaa\
-\x22\xe5\xaa\x01Y\x9dG$\xb0\x8e\x8e\xf5\x16\xa9e\x96\
-\xc9\x95\xee\xd6\x1aOC\x9e\x0am\x94\x98W\xd6z\xc2\
-\x83$c<\xb4\xac\x14\xc6\x82\xde\xccE\xc1\xd4\xda\xba\
-\xa2;.:\x08\x00\xfd\x95\x95!1\xb9L\xc5B$\
-\x16\x01\x8c-\xc6\xb8D3(F\xe96\x17\xcc\x12a\
- \xab\x9c\x0d\x14\x87\x06\xf4\xc8d%qC\xb6\x01\xc0\
-O\xb0k\x9bu\xaa6*\x91)\x87\xbc\xd2\x06\x14\xa7\
-\xd4\xb0b\xd9\x5c>\xd2R\xbds\x9d\x14\x80B\x1aD\
-\xa0\xe3\xc0\xcaP \xc9i*.\xd2=\xabPk\x92\
-1\x81\xe9\xed\x1d3\x05U6@\xd9\x98\x82\xae\xa6U\
-\xc2\xff,k\xea\xf4\xa7A$\xa9L*\xca}\xb6\x89\
-\xdc\x05\x06ERNb\x82`\x1a\xe0\xd6\xd4\xed;\x91\
-F\xd3\x9f'7\xc7\x5cX~\x12_\xb0\x9c\x93q\x87\
-u\x0f\x9d\xd8\x92\xd8\xb0\x08\xa37r)\xab\xad\x5c\xa9\
-\x5cA\x99s\xca(\xf4J\x02/R|K\x05\x80\xec\
-\xca\xa5\xe1\xe0 3\x1a0\x7f1\xc3\xd3\x8d\x98\x05\xae\
-;\x90\xf4\xa6l\xd4\xf9\x06\xba\xe4\x09e\x1b\xf2\x0aJ\
-\xc3\xba\x16\xd8\x8c\xd3\xbavgSq\xaf\x83\x08\xa2\xc9\
-e|\xdb\x0b}\xc0\xe7i8\xf9\x18\x0c\xfd!\xf4\xef\
-p\xd1\x87\xc1dz\x17\x06W\xd71\x5cOFC?\
-\x8c\xa07\x1e\xe2\xdbq\x1c\x06\xfdY<\x09#\xbbM\
-z\x112\x9f\xda\xb5\xde\xf8\x0e\xfc\x7fNC?\x8a`\
-\x12Bp3\x1d\x05(\x0f\x15\x84\xbdq\x1c\xf8Q\x07\
-\x82\xf1`4\x1b\x06\xe3\xab\x0e\xa0\x0c\x18Ob[\x8c\
-\x83\x9b F\xcax\xd2\xb1\xaa\x0f9ar\x097~\
-8\xb8\xc6i\xaf\x1f\x8c\x82\xf8\xce\xaa\xbc\x0c\xe21\xa9\
-\xbb\x9c\x84\xb6\x22\xc0\xb4\x17\xc6\xc1`6\xea\x850\x9d\
-\x85\xd3I\xe4\x03\xf97\x0c\xa2\xc1\xa8\x17\xdc\xf8C\x0f\
-m@\xbd\xe0\x7f\xf4\xc71D\xd7\xbd\xd1h\xd7]\x92\
-3\xb9\x1d\xfb!\xf9\xd0t\x17\xfa>Z\xda\xeb\x8f|\
-Rg\xbd\x1d\x06\xa1?\x88\xc9\xad\xed\xd3\x00AD#\
-G\x1d[\xd9\xa7\xfe \xc0g\xc4\xc5G\xa7z\xe1]\
-\xa7\x16\x1b\xf9\x1ffH\x87\x8b0\xec\xdd\xf4\xae\xd0\xc7\
-\xb7/\xa3\x83A\x1a\xccB\xff\x86lGH\xa2Y?\
-\x8a\x83x\x16\xfbp5\x99\x0c-\xec\x91\x1f~\xc4\x83\
-0\xfa;\x8c&\x91\x05n\x16\xf9\xd6\x98a/\xeeY\
-\xf5(\x05\x81C\x0a|\xee\xcf\xa2\xc0B\x18\x8cc?\
-\x0cg\xd38\x98\x8c\xcf0\xe6\xb7\x88\x10Z\xdaC\xee\
-\xa1\xc5z2&\x9f]\xee\xf8\x93\xf0\x8eD\x13\x1e6\
-\x1a\x1d\xb8\xbd\xf6\xf1}H\xf0Z\xd4z\x04G\x84\xe8\
-\x0d\xe2&\x19\xaaD0\xadc[\x7fa\xec_\x8d\x82\
-+\x7f<\xf0\x89`B\x82n\x83\xc8?\xc3\xe0\x05\x11\
-\x11\x04V9f\x04\xaa\x9dY\xdf)hh\x9b\x0d\xd7\
-\xe5n:wlt!\xb8\x84\xde\xf0c@\xf6\xd7\xf4\
-\x98\x0fQP\xa7\x8f\x85op]\xa3\xef\x9d6\xda\x09\
-\x7f<\xdc4\x13o\xdc\xeb\xef7.NND^J\
-\xecp>\x98\x0f\x95H\x1e\xf6\xa6\xde\x88\xe1A\x86U\
-c\xef5uSJf\xfa\xe4$J\xf0o\xc6\xe6\x19\
-\x9f\xe2A\x08\x7f\x9cPU\x10i\x17\xfb&<\x17\xed\
-Lq\x96\xca\x22[S\x11\xc1\xddo\xd6X \xb1\x13\
-\xa8\x8c\x91\xc5\xadH\xcd\xb2\x0b7\xcc,\xbd\x9c}~\
-\xeb\xdez\xa8\x0e\xcfCa\xecr\xa7^\x16E\xeb2\
-\xd6\xc3\xf7\x1d\xab\xcec\x8fLX[\xdc\xc2\x05\xfcz\
-v\xe6l\x18\xc8\xac\xca\x8b\xda<\x1a\xbad\x09\x96\xed\
-.\xfc\xf6\xee\xe9\xdd\xca\x19\x83\x1d\x1f\x96k\xcf\xceN\
-\x9e\x16Gl\xce\xb3\x86\x80c\x0c;\xeb\x8a\x957x\
-\x06v\x1d\xb7w\x8b\xf3\x1d\x82\xa5T\xe2?\xd4_d\
-\xbdL\xdc\x17tLt\x11d\xcf\xce\xae\x078\xc5\xce\
-\xa5\xc9`\xf8g\xa48\x1d\xe2\xa1!\xef\xa9=eP\
-\xca\xb2*\xdd\xa9\x8d\xf3\x5cj\x93\xad])\xc73\x0f\
-4\xaa0\xe7\xd4m\x80a\xfaA\xc3\xe9\x8e<\x1a?\
-\xc3\xa9\xed\x1e\x94\xe0\x0b\xdb/VE\xdd#\xe8m\x8b\
-\x87\x02\x95\xb7\xe5\xfd\xb2\x05\xa6oc\xb2\x87Lm\xe7\
-\x0d\xd7\xd4\x1f\xed\xea\xc4\xde\x11\x8d\xd2\xde\xd6y\xe7\xe8\
-\x13\x90\xfb\x0bm\x987\xd2ggY\x16\x03L\x8d\x07\
-\x8e\x19\x98;\xe5\x0e+\x0fS\xafx{v\xb2C\x5c\
-\xc3\xf8\xc7\x01$b\x9f\xfd\xe4\x80\xe4s\x17\xde6\x03\
-\x0f\xe7\xce\xb43L\xbb\xf7\x07\xd4\xeb-\xf5\x92\xdb\x0b\
-\xcb9\xb8\x07G\x7f\xc0`\x84\xc9x\x13\xc1\x03\x8a\xb6\
-\x84\xdc\x83\x7f$\x15\xcfA\x94\xba\xca\xb1\x0d\xc9(\x1d\
-\x84\x01\xec\x06\x8c\xe7y\x87\x89\xf0\xe5\xa4}\xf6R\xb0\
-\x09-\x17\x8f\xb6\x1c\xc0Z\xb1\x10u\xdb\xfdc\x12!\
-iX\xf0\xb5\xd9p(\xe3\xcfN\x89}zG\xdb\x85\
-\xc9#W\x19[{\xd2\xfd=4\x03\xbb|\x96u\xc1\
-\xa8\x8a\x1fM\xab\xe3A\xa1\xa1\x0d\x16\x04\xa6R\x17m\
-\xdd\xad\xa1\xf1\xee\xb0\x8d\xfc\xeff2\x96\x87\xaa\x0f\xca\
-\xec\x8e\xd4M\xc9}\xff\xaeu}\x93\x0exS\xca6\
-)\xd0J\xf8\x5c\xe6[']\xe2\xc5\x8d\xe6\x1b\x96x\
-\xa9\x9a\xd3\xcd\xd3\xdd\x81x\xea\xfd\xab\x18J{M[\
-1\x5c\xc7\xb6W3\xbc\x09\xe0\x0b\x05\xc9\x92\x15\xf7\x5c\
-\xff\xe3\x10\x19\x1a_Z\xdf\x0e\x96<y\xe8\xcb\xcf/\
-\xdb\x85j\xf1z\x81\xb7\xbc\x07\xbc\x18\xe3\xad\xa8]K\
-\x13\x11{5y\xda\x15\xee\xa2\xf2:\xcb\xbevKo\
-\xf7.\xf6\xec\xe6\x87m[R\xfe\x0d;v\xcb\xfeW\
-o\xd6U\xb3\xaf\xc1\xc6\xc5\xb6'+\xd7\xcd\xd8\xe7-\
-\xf3\xaf\xd4\xc0\x1c\x08\xa8\xad\xbf\xe6.\xf4\xe8\x82\xdch\
-n#\xff\xde\xc5\xe10\xea4\x8e\xd5\x85A&5?\
-\xd4uI\x91\xa4v\xec\xc8\x9e\xa0(-64\xad\x14\
-I&\xca#\xc6\xd2xu\xc5\xd8C3\xb1e\xaa\xc6\
-\xf3\xd0n\x1a\xcfV\xb2\x8d\xf1N\xceQ\x92\x97\x0a\x1e\
-\x8dg{\xce\xfd\x11\xe4\xdb\x1e\xfb9\xbb([\x9e%\
-j\xd1\xda\x9a\xc6\xcd\xf1m\xdb~\x7fP\xc8\x5ckl\
-\x9d\xf2\xa6\x8ac\x87\xf9\xc8{\xf4\xd9\xc0\x5c\x8a\xf68\
-n\x86\xfb\xbe\x84\xa9\xeay\x17\x82\xf8\xf5\xc5'sn\
-7IY\xdc\x1f/\xa8_\x8ec\xfb\xd2\xa1B\xe3\xa5\
-~\x7f\x7f\xbc\xd8\x86u(35:\xcc\x0d\x1e;,\
-\x15\xa5\xd0\x942\xc03a<\x18WE\x82H\x15b\
-^\xb55\xee\xfb\x03\x1byQ\x00\xd7\x06>U\xf4\xd9\
-\x8a\xa1^l\xf5 \xa0h\xa4\xa8\x9c\x1b\xc8Y\xc6u\
-\xc5R\x06\x0b\xfbU\x88%\x18X\xc3k\xebJ%r\
-\xf1zU\x0bV%d\x9b\x07\x83J\xb1\xb9 '\xf8\
-=j\xf9w\xa5\xe9@\xc5\x9b!]\xd3\xaa\x94\xcc*\
-D\xfe\xc4\x00s1\xe7\x05\x9a\xe4\xbdNWTaZ\
-\x14\xa9\xd0\x9a\xe3}\x87\xb6\xb2\xf0\xe0#z\x8a\xc2p\
-\x0bBR)]i\x07\xe6\xa7\x8a\x91\x9b\x95BGD\
-\xbac\xc4+\xb5\x0d\x09\xbd\x05\xee\xddLh|Z\xa2\
-f\xc5\x15\x86\xac\x11\xac\xa6\xcb\x9a\x95\x02;\x0b\x837\
--\xfaf\xce\x17\x0b\xabP\xbd\x12\xc7\x14\x10\x15\xe4\x84\
-\x82'Mn\xc4\xb1\x10:\xf3`f\xe0\x91\x17\x9c>\
-.k\xe0J\xda\xef\x9a\x05\xe5F\x99\xb1\x84+\x86y\
-\xf4*U\xbc\x02\x96\x09\x04(w\xe1@\xcc\x12L9\
-\xd3r\x17h\x8e\x17\xaf\xb1\xcd\xd1\xde\x1d\x1d\xd9x\xee\
-\xebA\x80\x91\xc5\x0b\xa7T\x1e\x9eZ\x06\x1f\xb1\x98\xef\
-\xad<\xb317G\xdfn\xbbP\xcf\x02\xc3\xf3\x17\xdb\
-+#\xcb\xc6AD\xd3\x17Y\xe6\x12O\xc0\xbc\xc9\xe5\
-\xde|\xb7V\xee\x80\xe7\x86\xa9{Qt\xe1|\xd7O\
-\xbb6e\xa9\xfd\xd5\xe8g\xf8\xe5\xaf\xe9\x0b\x83\xa2\xac\
-~PW(H\xf5\xd7\xf6\x84\x0d\xe6\xff\xdb\xeb\xdb\x02\
-\xaf,\xfaH\xd3\xf3\x9a\xee\xad%64\x8e\xf5n\x93\
-\x87\xed\x95n@?\xebe\xc7\xaeu\xee[\xe0\x8f\xbe\
-\xdc\xe1\xc9\xb8\xadD>M\xc2g7Q\x9d\xb1\xd3\x8c\
-3<<l\xe6\xb9\x1f\xfe\x14O\xe9\x1ca\x99\xee\x1e\
-/\x7f\xcegku\xfd\xa9\xf2h3\xda^\xf8bT\
-\x7f)x\x96>\xe3\xd2s\x11\xdf\x0c[\xe9\xe9\xd7a\
-\xaeb\xe7\xd1L\xd3\xef\x8d9\xff\xc1\xc6\x1f\x1a6e\
-Z\xaf\xa4J\x8f\x1b\xc61\x17\xdc\x81\xf2\xa4\xc1\xdbp\
-\xf9\xb86)\xfc\xf4\x99\x0e\xf0\x9b\xfc:^\xf9\xdc\xff\
-_N\xfe\x07\xb1\xa6\xc9\xb6\
-\x00\x00\x0d\x90\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Layouts\x0aimpo\
-rt QtQuick.Contr\
-ols\x0a\x0aScrollableP\
-age {\x0a id: pa\
-ge\x0a\x0a Column {\
-\x0a spacing\
-: 40\x0a wid\
-th: parent.width\
-\x0a\x0a Label \
-{\x0a wi\
-dth: parent.widt\
-h\x0a wr\
-apMode: Label.Wr\
-ap\x0a h\
-orizontalAlignme\
-nt: Qt.AlignHCen\
-ter\x0a \
-text: \x22Button pr\
-esents a push-bu\
-tton that can be\
- pushed or click\
-ed by the user. \
-\x22\x0a \
- + \x22Buttons are\
- normally used t\
-o perform an act\
-ion, or to answe\
-r a question.\x22\x0a \
- }\x0a\x0a \
- ColumnLayout {\
-\x0a spa\
-cing: 20\x0a \
- anchors.hor\
-izontalCenter: p\
-arent.horizontal\
-Center\x0a\x0a \
- Button {\x0a \
- tex\
-t: \x22First\x22\x0a \
- Layou\
-t.fillWidth: tru\
-e\x0a }\x0a\
- Butt\
-on {\x0a \
- id: button\x0a\
- \
-text: \x22Second\x22\x0a \
- h\
-ighlighted: true\
-\x0a \
- Layout.fillWidt\
-h: true\x0a \
- }\x0a \
- Button {\x0a \
- text:\
- \x22Third\x22\x0a \
- enabled\
-: false\x0a \
- Layout.f\
-illWidth: true\x0a \
- }\x0a \
- }\x0a }\x0a}\x0a\
-\x00\x00\x0d\x07\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aSc\
-rollablePage {\x0a \
- id: page\x0a\x0a \
- Column {\x0a \
- spacing: 40\x0a \
- width: par\
-ent.width\x0a\x0a \
- Label {\x0a \
- width: pa\
-rent.width\x0a \
- wrapMode:\
- Label.Wrap\x0a \
- horizont\
-alAlignment: Qt.\
-AlignHCenter\x0a \
- text: \x22\
-CheckBox present\
-s an option butt\
-on that can be t\
-oggled on or off\
-. \x22\x0a \
- + \x22Check box\
-es are typically\
- used to select \
-one or more opti\
-ons from a set o\
-f options.\x22\x0a \
- }\x0a\x0a C\
-olumn {\x0a \
- spacing: 20\x0a\
- anch\
-ors.horizontalCe\
-nter: parent.hor\
-izontalCenter\x0a\x0a \
- Check\
-Box {\x0a \
- text: \x22Fir\
-st\x22\x0a \
- checked: tru\
-e\x0a }\x0a\
- Chec\
-kBox {\x0a \
- text: \x22Se\
-cond\x22\x0a \
- }\x0a \
-CheckBox {\x0a \
- text:\
- \x22Third\x22\x0a \
- checked\
-: true\x0a \
- enabled: \
-false\x0a \
- }\x0a }\x0a \
- }\x0a}\x0a\
-\x00\x00\x0b\xdc\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aSc\
-rollablePage {\x0a \
- id: page\x0a\x0a \
- Column {\x0a \
- spacing: 40\x0a \
- width: par\
-ent.width\x0a\x0a \
- Label {\x0a \
- width: pa\
-rent.width\x0a \
- wrapMode:\
- Label.Wrap\x0a \
- horizont\
-alAlignment: Qt.\
-AlignHCenter\x0a \
- text: \x22\
-DelayButton is a\
- checkable butto\
-n that incorpora\
-tes a delay befo\
-re the \x22\x0a \
- + \x22butt\
-on is activated.\
- This delay prev\
-ents accidental \
-presses.\x22\x0a \
- }\x0a\x0a Del\
-ayButton {\x0a \
- text: \x22De\
-layButton\x22\x0a \
- anchors.h\
-orizontalCenter:\
- parent.horizont\
-alCenter\x0a \
- }\x0a }\x0a}\x0a\
-\x00\x00\x0c\xcc\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aSc\
-rollablePage {\x0a \
- id: page\x0a\x0a \
- Column {\x0a \
- spacing: 40\x0a \
- width: par\
-ent.width\x0a\x0a \
- Label {\x0a \
- width: pa\
-rent.width\x0a \
- wrapMode:\
- Label.Wrap\x0a \
- horizont\
-alAlignment: Qt.\
-AlignHCenter\x0a \
- text: \x22\
-Switch is an opt\
-ion button that \
-can be dragged o\
-r toggled on or \
-off. \x22\x0a \
- + \x22Switch\
-es are typically\
- used to select \
-between two stat\
-es.\x22\x0a }\x0a\x0a\
- Column {\
-\x0a spa\
-cing: 20\x0a \
- anchors.hor\
-izontalCenter: p\
-arent.horizontal\
-Center\x0a\x0a \
- Switch {\x0a \
- tex\
-t: \x22First\x22\x0a \
- }\x0a \
- Switch {\x0a \
- te\
-xt: \x22Second\x22\x0a \
- che\
-cked: true\x0a \
- }\x0a \
- Switch {\x0a \
- te\
-xt: \x22Third\x22\x0a \
- enab\
-led: false\x0a \
- }\x0a \
- }\x0a }\x0a}\x0a\
-\x00\x00\x0f\xb4\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aSt\
-ackView {\x0a id\
-: stackView\x0a \
-initialItem: pag\
-e\x0a\x0a Component\
- {\x0a id: p\
-age\x0a\x0a Pan\
-e {\x0a \
-id: pane\x0a \
- width: pare\
-nt ? parent.widt\
-h : 0 // TODO: f\
-ix null parent o\
-n destruction\x0a\x0a \
- Colum\
-n {\x0a \
- spacing: 40\x0a\
- \
-width: parent.wi\
-dth\x0a\x0a \
- Label {\x0a \
- \
- width: parent.w\
-idth\x0a \
- wrapMod\
-e: Label.Wrap\x0a \
- \
- horizontalAlig\
-nment: Qt.AlignH\
-Center\x0a \
- text:\
- \x22StackView prov\
-ides a stack-bas\
-ed navigation mo\
-del which can be\
- used with a set\
- of interlinked \
-pages. \x22\x0a \
- + \x22\
-Items are pushed\
- onto the stack \
-as the user navi\
-gates deeper int\
-o the material, \
-and popped off a\
-gain \x22\x0a \
- + \x22wh\
-en he chooses to\
- go back.\x22\x0a \
- }\x0a\x0a \
- Bu\
-tton {\x0a \
- id: b\
-utton\x0a \
- text: \
-\x22Push\x22\x0a \
- ancho\
-rs.horizontalCen\
-ter: parent.hori\
-zontalCenter\x0a \
- \
- width: Math.max\
-(button.implicit\
-Width, Math.min(\
-button.implicitW\
-idth * 2, pane.a\
-vailableWidth / \
-3))\x0a \
- onClicke\
-d: stackView.pus\
-h(page)\x0a \
- }\x0a\x0a \
- Butto\
-n {\x0a \
- text: \x22P\
-op\x22\x0a \
- enabled:\
- stackView.depth\
- > 1\x0a \
- width: \
-Math.max(button.\
-implicitWidth, M\
-ath.min(button.i\
-mplicitWidth * 2\
-, pane.available\
-Width / 3))\x0a \
- \
-anchors.horizont\
-alCenter: parent\
-.horizontalCente\
-r\x0a \
- onClicked:\
- stackView.pop()\
-\x0a \
- }\x0a }\
-\x0a }\x0a }\
-\x0a}\x0a\
-\x00\x00\x0b\x88\
-/\
-****************\
-****************\
-****************\
-****************\
-************\x0a**\x0a\
-** Copyright (C)\
- 2017 The Qt Com\
-pany Ltd.\x0a** Con\
-tact: https://ww\
-w.qt.io/licensin\
-g/\x0a**\x0a** This fi\
-le is part of th\
-e examples of th\
-e Qt Toolkit.\x0a**\
-\x0a** $QT_BEGIN_LI\
-CENSE:BSD$\x0a** Co\
-mmercial License\
- Usage\x0a** Licens\
-ees holding vali\
-d commercial Qt \
-licenses may use\
- this file in\x0a**\
- accordance with\
- the commercial \
-license agreemen\
-t provided with \
-the\x0a** Software \
-or, alternativel\
-y, in accordance\
- with the terms \
-contained in\x0a** \
-a written agreem\
-ent between you \
-and The Qt Compa\
-ny. For licensin\
-g terms\x0a** and c\
-onditions see ht\
-tps://www.qt.io/\
-terms-conditions\
-. For further\x0a**\
- information use\
- the contact for\
-m at https://www\
-.qt.io/contact-u\
-s.\x0a**\x0a** BSD Lic\
-ense Usage\x0a** Al\
-ternatively, you\
- may use this fi\
-le under the ter\
-ms of the BSD li\
-cense\x0a** as foll\
-ows:\x0a**\x0a** \x22Redi\
-stribution and u\
-se in source and\
- binary forms, w\
-ith or without\x0a*\
-* modification, \
-are permitted pr\
-ovided that the \
-following condit\
-ions are\x0a** met:\
-\x0a** * Redistri\
-butions of sourc\
-e code must reta\
-in the above cop\
-yright\x0a** no\
-tice, this list \
-of conditions an\
-d the following \
-disclaimer.\x0a** \
- * Redistributio\
-ns in binary for\
-m must reproduce\
- the above copyr\
-ight\x0a** noti\
-ce, this list of\
- conditions and \
-the following di\
-sclaimer in\x0a** \
- the documenta\
-tion and/or othe\
-r materials prov\
-ided with the\x0a**\
- distributio\
-n.\x0a** * Neithe\
-r the name of Th\
-e Qt Company Ltd\
- nor the names o\
-f its\x0a** con\
-tributors may be\
- used to endorse\
- or promote prod\
-ucts derived\x0a** \
- from this so\
-ftware without s\
-pecific prior wr\
-itten permission\
-.\x0a**\x0a**\x0a** THIS \
-SOFTWARE IS PROV\
-IDED BY THE COPY\
-RIGHT HOLDERS AN\
-D CONTRIBUTORS\x0a*\
-* \x22AS IS\x22 AND AN\
-Y EXPRESS OR IMP\
-LIED WARRANTIES,\
- INCLUDING, BUT \
-NOT\x0a** LIMITED T\
-O, THE IMPLIED W\
-ARRANTIES OF MER\
-CHANTABILITY AND\
- FITNESS FOR\x0a** \
-A PARTICULAR PUR\
-POSE ARE DISCLAI\
-MED. IN NO EVENT\
- SHALL THE COPYR\
-IGHT\x0a** OWNER OR\
- CONTRIBUTORS BE\
- LIABLE FOR ANY \
-DIRECT, INDIRECT\
-, INCIDENTAL,\x0a**\
- SPECIAL, EXEMPL\
-ARY, OR CONSEQUE\
-NTIAL DAMAGES (I\
-NCLUDING, BUT NO\
-T\x0a** LIMITED TO,\
- PROCUREMENT OF \
-SUBSTITUTE GOODS\
- OR SERVICES; LO\
-SS OF USE,\x0a** DA\
-TA, OR PROFITS; \
-OR BUSINESS INTE\
-RRUPTION) HOWEVE\
-R CAUSED AND ON \
-ANY\x0a** THEORY OF\
- LIABILITY, WHET\
-HER IN CONTRACT,\
- STRICT LIABILIT\
-Y, OR TORT\x0a** (I\
-NCLUDING NEGLIGE\
-NCE OR OTHERWISE\
-) ARISING IN ANY\
- WAY OUT OF THE \
-USE\x0a** OF THIS S\
-OFTWARE, EVEN IF\
- ADVISED OF THE \
-POSSIBILITY OF S\
-UCH DAMAGE.\x22\x0a**\x0a\
-** $QT_END_LICEN\
-SE$\x0a**\x0a*********\
-****************\
-****************\
-****************\
-****************\
-***/\x0a\x0aimport QtQ\
-uick\x0aimport QtQu\
-ick.Controls\x0a\x0aSc\
-rollablePage {\x0a \
- id: page\x0a\x0a \
- Column {\x0a \
- spacing: 40\x0a \
- width: par\
-ent.width\x0a\x0a \
- Label {\x0a \
- width: pa\
-rent.width\x0a \
- wrapMode:\
- Label.Wrap\x0a \
- horizont\
-alAlignment: Qt.\
-AlignHCenter\x0a \
- text: \x22\
-TextField is a s\
-ingle-line text \
-editor.\x22\x0a \
- }\x0a\x0a Text\
-Field {\x0a \
- id: field\x0a \
- placeh\
-olderText: \x22Text\
-Field\x22\x0a \
- anchors.horiz\
-ontalCenter: par\
-ent.horizontalCe\
-nter\x0a }\x0a \
- }\x0a}\x0a\
-\x00\x00\x04\xbb\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x01\x00\x00\x00\x00\xeb\x04\x03\x00\x00\x00t\xa8U\xa0\
-\x00\x00\x000PLTE\x00\x00\x00A\xcdRA\xcd\
-RA\xcdRH\xcbPB\xccQI\xcbPD\xccQ\
-E\xccQJ\xcbOE\xccQJ\xcbOD\xccQD\
-\xccQC\xccQA\xcdR\xaa`?\xbc\x00\x00\x00\x0f\
-tRNS\x00\x18Oc\xab\xae\xb8\xbd\xc9\xcd\xd6\xd7\
-\xdf\xe9\xf0\x91\xee\xa9J\x00\x00\x04+IDATx\
-\xda\xc5\xda\xc1m\x13A\x18\xc5\xf1\xddT`%Bp\
- R\x02'N\x08\x1ap\x0dT`q\xa1\x0f*\xa0\
-\x0b*\xa0\x91T\xe0\x1e@\x96|q\x86\x83c\xc7\xbb\
-;\x93\xcc|\xef\xcd{\xd3\xc0\xfe\xf4\x0e\xfb\x9f\x95v\
-\x18z\x9c\xab\xc3j\xb0\x9e\xab\xf4\xe0\x06<\xde\x9b\x01\
-\xe9\xdf\xca\x0cH_\xdc\x00\xeb\x04W)\xa5\xf4\xcd\x0d\
-\xd8\xad\xcc\x00\xe7\x04G\x80q\x82# \xfdt\x03\xf6\
-+3\xc07\xc1\x09`\x9b\xe0\x04\xb05\xe9\x0cpe\
-\xf9\x0cpM\xf0\x0c0e\xf9\x19`j\xd2\x05\xc0\x93\
-\xe5K\x80e\x82K\x80\xa5I\x13\x80\xa3I\x13\x80c\
-\x82)\xc00\xc1\x14`h\xd2\x0c\xa0o\xd2\x0c\xa0\x9f\
-`\x0e\x90O0\x07\xc8\x9b\xb4\x00\xa8\xb3\xbc\x00\xa8'\
-X\x02\xc4Y^\x02\xc4M\xca\x00\xb4Y\xce\x01\xa4\x13\
-\xe4\x00\xd2&e\x01\xca&e\x01\xca\x09\xf2\x00\xe1\x04\
-y\x80\xb0I\x05\x80\xaeI\x05\x80n\x82\x12@6A\
-\x09 kR\x11\xc0\xc8\xf2\xf5\x87\xd7\xcf\xc7\xd4q\x82\
-\xcf\x099\x84,c\x00B\x93@\x00\x9ee\x14\x00O\
-\x80\x02\xe0&\xc1\x00\xb4I0\x00\x9d\x00\x07\x80\x13\xe0\
-\x00\xb0I\x04\x00\xd6$\x02\x00\x9b\x80\x01\x80&`\x00\
-\xa0&Q\x00H\x96)\x00d\x02\x0e\x00\xc82\x07\x00\
-4\x89\x04\x88g\x99\x05\x08O\xc0\x02\x84\x9bD\x03D\
-\x9bD\x03D'\xe0\x01\x82\x13\xf0\x00\xc1&\x11\x01\xb1\
-&\x11\x01\xb1\x09\x98\x80\xd0\x04L@\xa8IT@$\
-\xcbT@d\x02.\xe0\xb1\xfa\xb9\xe3\xa7U\x0f@\xaa\
-\x06\xbcIw=\x00\x87\xea\x016}\x00\x0f\xf5\x03t\
-\x01T\xbf\x08\xc6M\x1f@\xf5\xab\xf0]\xea\x02\xa8\x1f\
-\xe0W\x1f@\xd3\x00\x1d\x00\xbb\xa6\x01:\x00\xaa\xafD\
-\xb7\xa9\x0b\xa0~\x80m\x1f@\xe3\x00t@\xf5\x87\xc1\
-\xf5\xb6\x0f\xa0\xf6\xd3h\x5c\xa7.\x80\xea\x01nR\x17\
-@\xf5\xe7\xf1y\x002\xa0\xa5B=\x00\x87\x96\x0a\xf5\
-\x00\x04\x06\xa0\x02\xf6\x81\x01\xa8\x80\xb6\x0a\xf1\x01m\x19\
-\xee\x00\x08\x0d@\x04\xecB\x03\x10\x01\xad\x15b\x03Z\
-3L\x07\x04\x07\xa0\x01\x9a3\xcc\x064g\x98\x0ch\
-\xcf0\x17\x10\xc80\x17\x10\xa9\x10\x13\x10\xc9\xf0\x0c \
-\xfa\x7f`9\xc0\x09\x00\xfdA\xb1\x07\x06\xa0\x00b\x15\
-\xe2\x01b\x19&\x02\xa0\x01\x08\x80\x1d4\x00\x01\x10\xad\
-\x10\x0b\x10\xcd0\x0d\x00\x0e\x00\x03\xc2\x19f\x01\xc2\x19\
-&\x01\xe2\x19\xe6\x00\x80\x0cs\x00H\x85\x9e\xce\xd7\x8a\
-\x0c\xde\x97\x00H\x86[\xce\xdf\x12\x800\x00\x04\xd8\x8b\
-\x06(\x02\xb0\x0a\xe1\x00,\xc3\x04\x80l\x80\x02`'\
-\x1b\xa0\x00@+\x84\x02\xd0\x0c\xc3\x00\xe1\x00Y\x00\x9c\
-a\x14\x00g\x18\x04\xe0\x19\xc6\x00\x84\x0cc\x00U\x85\
-J\x00U\x86\x8b\x00\xf1\x00\x0b\xc0^<\xc0\x02\xa0\xab\
-P\x1e\xa0\xcbp\x01 \x1f`\x06\xd8\xc9\x07\x98\x01\x94\
-\x15\xca\x01\x94\x19\xce\x02\x0c\x03L\x00\xd2\x0c\xe7\x00\xd2\
-\x0cg\x00\xda\x0c/\x01\xe2\x0c/\x01\xea\x0a\xcd\x01\xf5\
-\xff\xe9m\xfa\x00\xea\x7f\xd3K=\x00\xe3\x9f\x95\x17\xd0\
-r\xd6n\x00\xf35\x14\x020_\xc41\xc0\xb85\x03\
-\x86\xf7n\x00\xef:\x12\x04\xf0.dQ\x00q\x82\x18\
-`x\xeb\x06\x8c\x1b3\x80\x97\xc4(\x806A\x14@\
-\xbb\x16\x85\x01\xac{Q\x18\xc0\x9a \x0e M\x10\x07\
-\x90\xb2\x0c\x008YF\x00\x94,#\x00J\x96!\x00\
-\xa3I\x10\x80\x91e\x0c@\x98\x00\x03\x10\xb2\x0c\x02\xf0\
-&\x81\x00<\xcb(\x00\x9e\x00\x05\xc0M\x82\x01h\x93\
-`\x00:\x01\x0exa\x82\xdf?^?\xdfa\xc0\x0b\
-Y\xbe\x1b4\xe7\xd6\x0d(fY\x05(fY\x06(\
-5I\x06(eY\x07(L\xa0\x03\x14\xb2,\x04\xe4\
-\x9b$\x04\xe4\xb3\xac\x04d'P\x02\xb2M\x92\x02r\
-M\x92\x02r\x13h\x01\x99\x09\xb4\x80L\x96\xc5\x80e\
-\x96\xd5\x80E\x96\xd5\x80E\x96\xe5\x80y\x93\xe4\x80y\
-\x96\xf5\x80\xd9\x04z\xc0,\xcb\x06\xc0\xb4I\x06\xc04\
-\xcb\x0e\xc0d\x02\x07`\xd2$\x0b\xe0\xb2I\x16\xc0\xe5\
-\x04\x1e\xc0\xc5\x04\x1e\xc0E\x96M\x80\xe7,\xbb\x00\xe7\
-,\xbb\x00\xe7,\xdb\x00\xa7&\xd9\x00\xa7,\xfb\x00O\
-\x13\xf8\x00OY6\x02\x8eM2\x02\x8eYv\x02\xc6\
-\x8d\x190\xdc\xb8\x01\xe3\xda\x0c\x18n\xdc\x80qm\x06\
-\x0c\xd7\xdb>\x80\xffx\xf2iE\x15\xa8J\x8b\x00\x00\
-\x00\x00IEND\xaeB`\x82\
-\x00\x00\x01?\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00(\x00\x00\x00(\x04\x03\x00\x00\x00~\xd0\xa5^\
-\x00\x00\x000PLTE\x00\x00\x00\xff\xff\xffA\xcd\
-RP\xcaNA\xcdRA\xcdRH\xcbPB\xccQ\
-I\xcbPD\xccQE\xccQE\xccQD\xccQD\
-\xccQC\xccQA\xcdR\xb0DE*\x00\x00\x00\x0f\
-tRNS\x00\x00\x186Oc\xab\xae\xb8\xbd\xc9\xd6\
-\xdf\xe9\xf0r\xc1;\x05\x00\x00\x00\xafIDAT(\
-\xcf\x8d\xd2\xb1\x0d\xc20\x14\x04\xd0[\x81\x0d~\x81\x98\
-\x81\x01\xe8-e\x01F@\xf2\x14t\xec\xe0E\xd8!\
-\xca\x08\xac\x10YXXG\x11'v\xf0\x15\x5c\xf9\xf4\
-\x8b\xff\xed\x03\xd6\xb8\x80>.\x99@\x06\x85\xd9\x04r\
-T\xd8\x8f:\x92/\x13\xc8A\xe1l\x02\x7fG\x17\x8c\
-\x06\x00\xe7{\xc9\x93$I\x0f\x00\x0f\xee\x13M \xbd\
-\xc2d\x02\x19\x14&\x13\xc8\xa00+\xe4\xdf8+\x1c\
-\x04Nb\xa5\xac.\x1a\xc5\xed\x1f\x03p\xeb/\x07\x8e\
-\x97\x92\xeb\xf6F\xddw,\xd59\xacq$\xf96\x81\
-\x1e=F\x13X\x06w\xb8\xf5\xa3\xc5\xad\x1e\x0d\xd6\x22\
-5X{Tq\xb2\x1eO\xd5\xbe:U\x87P(\x16\
-\xe3k\x00\x00\x00\x00IEND\xaeB`\x82\
-\x00\x00\x01\xca\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00@\x00\x00\x00;\x04\x03\x00\x00\x009\xa2\x91\xef\
-\x00\x00\x000PLTE\x00\x00\x00A\xcdRP\xca\
-NA\xcdRA\xcdRF\xccPH\xcbPB\xccQ\
-I\xcbPD\xccQE\xccQE\xccQD\xccQD\
-\xccQC\xccQA\xcdR\x96\x12X7\x00\x00\x00\x0f\
-tRNS\x00\x186Oc\x9d\xab\xae\xb8\xbd\xc9\xd6\
-\xdf\xe9\xf0URDE\x00\x00\x01:IDAT8\
-\xcb\x85\xd4\xcdM\xc40\x10\x05\xe0\x99\x0e,\x05\x11)\
-\x88;\xc7E\x14`QAj\xa0\x02D\x05{B\xe2\
-F\x0d[\x81K\xa0\x06D\x019P\xc0\x1e\x12\x09\xf1\
-\xb3z\x1c\x9c\xc4\xcex\xd63\xd7|yR</&\
-\xd2\xc6\x1f\xa8>\xfe\xc7\x19\x00\x07\x0b\x9c\x9c\x01\xf0n\
-\x81z\x84\x07\xf0\xe9\x0c\x80{\x0bL\xce\x00\xb5\x88\x08\
-\xbe\x8a\x88\x9b\x97y\xde\x00\x00x\x92\xe0\x15\xdb)\x22\
-$(\x22\x0a wV\x00\xb9\xb3\x12\x88\x88\x12\x88\x08\
-\x05\x9c\xd2S~\xd0\x00\x12\xe8\xc6:\xe0\xa0\x82i\x05\
-\xd7P\xc1\xba0\x1eT\xf0\xe1R\x80\x06R\xef\x9a\xa3\
-\x0a\xd6\xe6r\x0f\x0d\xfc\xad\x01\x17\x000\xd2\xe3\xb9c\
-\xe4>\x82\xe6n\x9e^,\xa2E\x04\xa2r)`\x1f\
-\xcfdy\xff6\x82o\x11\x90\x7f\x9c\xdf\xd4i\x0e\xc8\
-f\xe7\x91\x17\xb2\x83\x0aR@P\xc1T\x09\xc0\xce\xe7\
-[\x0a*\x98\xf2-i \xfd\x97\x83\x0a\xd2\x9a\x09\x1a\
-\xb8\xcc\xda\x1e4\x90W\xbd\xb5@y\x8e\x02h\x11[\
-\xa0DlA\xacS\x0d\xc4>U\xc0\x12\xf1\xbb\xdcP\
-\xcf\xf2\xe6\x99#F:;\xcd`\x80\xb8\xb1\x1a\xe0\xc1\
-\x00te\x01\x0e\x06\xa0\xce\x02\x1c\x0c@\xad\x05xo\
-\x00ju\xf0\x0fRR\x00X\xeb\xfc\xd3\xe9\x00\x00\x00\
-\x00IEND\xaeB`\x82\
-\x00\x00\x05\x15\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00\xc8\x00\x00\x00\x93\x08\x03\x00\x00\x00\xfc\xcf\xa6\x98\
-\x00\x00\x00HPLTE\x00\x00\x00A\xcdRA\xcd\
-RA\xcdRA\xcdRA\xcdRA\xcdRA\xcdR\
-M\xd0]Y\xd3he\xd6rq\xda}|\xdd\x88\x88\
-\xe0\x93\x94\xe3\x9e\xa0\xe6\xa9\xac\xe9\xb3\xb8\xec\xbe\xc4\xef\
-\xc9\xd0\xf3\xd4\xdb\xf6\xdf\xe7\xf9\xe9\xf3\xfc\xf4\xff\xff\xff\
-Y\xd7\x80\x18\x00\x00\x00\x07tRNS\x00\x100\xaf\
-\xbf\xcf\xefPN\xd4S\x00\x00\x04uIDATx\
-\xda\xed\xdc\xdbz\xa4 \x0c\x00`\xbb\xdb.hTD\
-\x14\xde\xffM\xf7\xa2\x9d\xb6rP@#\x87\xcf\x5cO\
-;\xf3\x0b\x84(`\xd38\xe3\xcf?RN\xbcW\xe2\
-\xd8\x81\x94\xe5pC\x0as8!\xa59\x5c\x90\xe2\x1c\
-\x0eHy\x0e;\xa4@\x87\x15R\xa2\xc3\x06)\xd2a\
-\x81\x94\xe90!\x85:\x0cH\xa9\x0e\x1dR\xacC\x83\
-\x94\xeb\xd8B\x0avl %;~C\x8av\xfc\x82\
-\x94\xed\xf8\x81\x14\xee\xf8\x86\x94\xeexA\x8aw|A\
-\xcaw|B*p\x90\xf7J\x1c\xe4\xfd\x12G\x0b\x00\
-#c\xac\x07\x00\x9a\x0ar\xce\xd1\x0e\x93\x90j\x1b\xab\
-`=\xbd\x1fr\xc2\xd1\xf3U\xb9b\x99\xba\x9b!\xd1\
-m1I\xb5\x1f\xebH\xf3\x87\xb4\x5cy\x84d4s\
-\x08S\x9e\xb1\xf6G\xff\xe9w\x0c7C\xbaE\xf9\x07\
-\xdfo\x94\xcdg\xc5\xbd\x90^\xaa\x90Xh\xa6\x90A\
-\x05\x86\xec\xb2\x84\x04;\x94Zi\x86\x90NE\xc4N\
-\xefJ\x05\xa12\x06\xa2\xa6\xec \xb3\x8a\x0b\xc8\x0c\xd2\
-\xdb\x7f\xa6\x98F\xf8\x0c\xc6\x97\xb0a\x92\x08b\xab\xad\
-fm\xce\xa3\x83\xb0|\x8ae\x05\xb1d,\xdeZ>\
-\x07&E\xd2\x9c F\x83HW\xdf\x1f}\x9b$\x09\
-d\x08H\xab\x9d\x9e\xdedF\x90%`\xa23'\x9c\
-!\x1b\x88\xf1\xd3\xf6o\x9d\xf4\xde\xb5d\x03\x99<\x13\
-\xd1+\xf4\x11\xdf\xe6\x02\xd1\x86\xfaz\xf4y\xd0 c\
-&\x90\xce\xab\xcf\xef4\x89\xc8\x04\xc2\xfc&\x86\x9d:\
-\xe0\xe7/:x\xc5v\x18\x81\x1e\x14\x01\xa2]_\x1e\
-\xde\x19{\xe7\xf0\x09\xaf\xd1N@\x22\xbebr\xd5\xc0\
-)!\xe05\xbf\xed\xfe\x8d\xc8\x02\xa2M\x0bsL+\
-f\x01\xe1\x1e\xb9\xf4h\x5cu9@\x96\x90Y\xdd\x91\
-\xe9\xfa\x1c \xae^\x12\x92\x80Y\x06\x90V\xc5L]\
-\x9dc`%\x84@\xf8,b\xb6\xa3\xc8\x002\x86\x15\
-\x8c\xf6\x91%3\x80\xb0\xd0B\xcb\xfa\x8b3\x80Lq\
-_\xc0\xed\xd5\x96\x03\x22\x85\x1e\xdd\xe5\x10\x11\x93}\x8d\
-\x86\x84\xfd\xa1wG\xf5+b\xb2oE\x90!;\x88\
-\x8a\x83\xc0A\xb2K\x0dYk\x81\x88\x07\xf2@\x1e\xc8\
-5\x90\xeei\x91\x07\xf2@\x1eH\x0e\x10Y\x0b$\xb6\
-h\x1c\x8b-\xe3\xfb\xe7\xc6\xea&\x08\x14\x0b\xb9\xf6\xe1\
-CB\xc8\xb5\x8f\x83\x12B\xae}@\x97\x10\x021\xcb\
-#\xc7\xf3\xe8\xfd\x90\xd6g\xf5\xdf\xfb!vB\xc8\xb5\
-\xcb\x0a)!KL\xdar-\xf4\xa4\x84\x5c\xba\xf4\x96\
-\x12r\xe9bhJH\xcc\xf2t\x7fX\xfcC\x5cQ\
-}\x06\xa2_\xdd>\xbc;\xb2\xc3\xcbs\x0bD\x84\xf7\
--y\x9c \x12@F\x9f\xedW\x9b\x18<Rv\x02\
-\x88\xbe\xcd\xe9x=t\xf5h\xc3\xd0\x8bs\x01\xc4\xd8\
-c\xda\x066\xc8p\x0c\x81[ L\x05\x95)\xfa6\
-z\xfb\x06/\x19UT\x9f\x83\xb4*\xa4s\xd1\xc5\xeb\
-\xd3\x22j\xf9\xfe\x1c\xc4\x5c\x8b\xe5\x01\x0eGO\x9c/\
-\x9aH\x82 `\xee\xeew\x8d\x13\xf3\x18\x96\xf0\xea\xaf\
-\xfc\x16\x88ey\xdc~@\xcfv\xb8\xaf\xf3\xcb\x08\x9b\
-#\x038{\x1a\xadM\xa2\x94\xe4\xc6i\x05\xdb!\x13\
-\xee\x99\xd4\x95R\x8b\x10+\xe6\x9eF{\x93|\x9d\x1f\
-a=\x00\x00\x0c\xae\xf3#\xee=\xa9\xf2\xf6\xcd\x99\x84\
-\x10\xd2\xc6\x9dL\xda\xab\xcc\xe6$\x10\xcbq\x8a\x93g\
-\xac\x0eN\xd1\xa1A\x08\x8fq\x88\x80y3\xeeiM\
-8\x84.\xe1\x8e\xfd\xb3\xa1,\x0d$B\x22hP)\
-s\x17\x84\xd0\xc0\xdeu8\xc7\x0d\x89 \x84\x8c\xf2\x92\
-|\xe5#\xe1\xa8\x10\xd2\x0a\x7f\x88OA;\xc8\x984\
-q\x01\xc4z@\xcfuv\xda\xa7\xcap\xbe\xb0\x00\x1d\
-B\x08py\xd1\x18\xf9\xa4\x8c\xc6\xa5Yf\x06->\
-\x84\xec\xbf\x85#fR\x83\x811!\x84\x10\x8c\x0d\x10\
-x\xd7{\x0aB\x08i{6o/\xa5\x9c\x8d\xf7\xa4\
-\x90\x1b\xe2,\xe4\x95\x92_G\x89:\xdb\x0c\xc7\xca\x81\
-\xec>\xef>\xf3p$-\x04\xa2sOf\x10\xb3\xb2\
-\xec\x0b\x85\x18\xe5\x93D\x7fc\xcd_\x14\x88y\xdb2\
-!;>\xdep \xe6x\x07l\x07\x12\xc4x\xa6\xb0\
-`;\x90 \xc6Qk\xcc\xc9\xe4\xe3\xad\xc1\x83\x98\xe3\
-\xbd\xc5u`A\xcc\x9b\x0c\x81\xeb@\x83\x98\xcf\xc0z\
-T\x07\x1eD\x1b\xefb\xc0u\xe0A6\xc5\xa3\x00\x82\
-\xec@\x84\xd0\xef\xbb\x15\xde\x11t\x07\x22\xe4\xb5\xcc\xce\
-\xb1\xf3\x15:\x84\x08\xdc\x17\x03n\x1c\xa8\x90v\xc5|\
-\xbf\xe1\xd6\x81\x0aA\xaf\xafj\x80\xe8\x8e\xa6\x16GS\
-\x8b\xa3\xa9\xc5\xd1\xd4\xe2hjq4\xb58\x9aZ\x1c\
-M-\x8e\xa6\x16GS\x8b\xa3\xa9\xc5\xd1\xd4\xe2\xf8\x0f\
-/\xf3I\xa9\x5c\xdd\xff\xd4\x00\x00\x00\x00IEND\
-\xaeB`\x82\
-\x00\x00\x01\xdc\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00O\x00\x00\x00O\x04\x03\x00\x00\x00X\x1a\x85\xb5\
-\x00\x00\x000PLTE\x00\x00\x00\xff\xff\xffA\xcd\
-RP\xcaNA\xcdRA\xcdRF\xccPH\xcbP\
-B\xccQI\xcbPE\xccQJ\xcbOE\xccQD\
-\xccQC\xccQA\xcdR\x000]\xbe\x00\x00\x00\x0f\
-tRNS\x00\x00\x186Oc\x9d\xab\xae\xb8\xc9\xcd\
-\xd6\xe9\xf0\xbb\x00_o\x00\x00\x01LIDATH\
-\xc7\xc5\xd6\xbdM\xc4@\x10\x86\xe1+\x01:\x98\x80\x8c\
-\x0aH\x11\xf9\x227@\x09HT\x80\xdc\x05\x11\x92K\
-\xa1\x01$\xebJ\xa0\x00\x12K\xd6\xc9\xd6\x10\x9c\x7f\xd6\
-\xbb\xb3;o\xc6\xc4\x8f>\xe9\xee\xbe\x9d\x9b\xd3)\x9b\
-\xd0\x9f\xd8\x84\xf9\x11B\x1d\x04Bm(d\x91Aa\
-dP\xd5Q \xd4\x96B\x12\x19\x14F^\xe1E \
-\xd4\x8eB?r\x81\xfaE\xe1,\x10jO\xa1W\xb7\
-\x0dz\xdd\xd8\xa1\xd3\x8d\x08\xd6##X\x8f\x8ca\xd4\
-\x8d\xbb\xa7t^\x22\x18u\xe3U\xab\xb3G~\xd6\xe1\
-\x1e\xe9\xc1\xad\x1b\x1e\xdc\xea\xe6\xc25\xd2\x85k\xdd|\
-\xb8\xd4\xcd\x87K\xdd\x00\xbcF\x02\xa8?\x02\xa16\x14\
-\x0e\x02\xa16\x14\x8e\x02\xa1\xbeS\xf8\xfb\x7f\xf0\x19\xc2\
-3\xfc\xd43\xfd\xc2{\xf8\x13N\xb4\x14\x1d\xac\xd9\x85\
-\xf6\xb1\x83\x0d\x1f\xe9\x9bi\xe1+\x1c\xe9\xbbn\xe1\xa6\
-\x18\xe8\xee\xd9v\xee\xc3G:\xdff\xa0\xb3\x9a\xabK\
-<\x1c\xeb\xb5\xcem:7!\xdbO>\x8c\xff\x0dk\
-p\x12\x08\x0fG@\x05\x1eo\x80\x0a<^\x15e\x98\
-\x9c>e\x98\x5c>E\x98\xdeRE\x98\x9eR%\x98\
-\xb5\xa1\x04\xb36\x14`^\xaf\x02\xcc\xebe\xc3\xb30\
-h][&\xb4\x8e-\x0bN\x02\xa1yc\x1a\xd0>\
-1sx\xfff\xb9?\x9e\xd1\xe7wR\xc2\xd3\xb8\x00\
-\x00\x00\x00IEND\xaeB`\x82\
-\x00\x00\x02\xf6\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00\x9e\x00\x00\x00\x9d\x04\x03\x00\x00\x00\xb7?\xdc\xe6\
-\x00\x00\x00$PLTE\x00\x00\x00\xff\xff\xffA\xcd\
-RA\xcdRA\xcdRH\xcbPB\xccQE\xccQ\
-J\xcbOD\xccQC\xccQA\xcdRE\xef\x01u\
-\x00\x00\x00\x0btRNS\x00\x00\x18Oc\xab\xae\xc9\
-\xd7\xe9\xf0\xc1\xad8\xf5\x00\x00\x02vIDATh\
-\xde\xcd\xda\xdbM\xc40\x10\x85\xe1\x15i\x00:\x88D\
-\x07\xc0\xdb\xbem))!=\xd0\xc0\xd6\xb2J\xb4\xeb\
-\xe6x\x08\xb98\xbe\x8dg\xfe\x07\xa7\x80OG \x0e\
-\xe3\xb1/\x17\xc1\xd7=\xfb\x0b\xf9u\xee\x0e{\xaf/\
-\xd6s\x8f\x9e\xf5\xdc\x0d\xf6\xc8\x80\x9ds\xce\x0d\xb07\
-\xf5\xac\x07\x06\x5c<.\xe0\xe2\xb9\x11\xf6\xe6\x9e\xf5\xb0\
-\x80\xabG\x05\x5c=\xaa\x166\x0f\xea\xad\xcd\x83\x02\xee\
-\x1e\xd3[\xbb\xc7\xd4\xc2\xc1Cz\xeb\xe8\x11\x01\x8f\x1e\
-Q\x0b\x9e\x07\xd4\x82\xe7\x01\x01}\xcf\x1e\xd0\xf7\xec\xb5\
-p\xf2\xcc\xb5p\xf2\xcc\x01\xcf\x9e5\xe0\xd9\xb3\xd6B\
-\xe0\x19{+\xf0\x8c\x01C\xcf\xd6[\xa1g\xab\x85\x88\
-g\xea\xad\x98g\x09\x18\xf3,\xb5\x10\xf5\x0c\xb5\x10\xf5\
-\x0c\x01\xe3\x9e>`\xdc\xd3\xd7B\xc2S\xd7B\xc2S\
-\x07Ly\xda\x80)O[\x0bI/\xd2[\x9f\xdf\xe5\
-\xef\xc7\xc9\x03^\x9d\xe5\x0b{\xcb\xe6\x85\xb5`\xf4\x82\
-\xde\xb2z\xe7\x80V\xef\x5c\x0bf\xefT\x0bf\xef\x14\
-\xd0\xee\xf9\x01\xed\x9e_\x0b\x80\xe7\xd5\x02\xe0y\x01\x09\
-\xef\x18\x90\xf0\x8e\xb5\x80x\x87\xdeB\xbcC@\xc6\xdb\
-{\x8b\xf1\xf6Z\x80\xbc\xad\xb7(o\x0dHyk-\
-`\xde\x7f-`\xde\x7f@\xce[\x02r\xdeR\x0b\xa0\
-7\xf7\xac\xe7F\xd8\x9b{\xd6sw\xd8{\xf6\xac\xe7\
-\xee\xb0\xf7\x82=\x07{\xcf\xb6\x7f~3\xfc\xfb\x1d\xdb\
-\xfe\xfb\x80\xff~'\xb8_\x86\xb6\xfb\x19\xfe\xff\xf1\x80\
-\xff\xbf\xdd\x9a\x9e\x0f\xb6\x01\xebJ\x15\x01\xea\xed\x03j\
-\x93\xf3\xe9\x0c\xcf\xcfc\xdb\xe7\x0f\xf8|4\xc1\xe7\xb7\
-\xa1\xed\xf3/|>\x7f\xc0\xfb\x83[\xd3\xfb\x97`\x81\
-u\xa5\x8a\x00\xf1\xc2\x05 \xbd\xff3\xed'\x95\x0b\xd4\
-N\xb4\xc9io\xbf\x0b\xef\x9f'x?>\xb0\xfb{\
-\xfa~!\x1e\xef#\xff\xbd'\xbd\xc4\x05\x92\xdaK\x5c\
-pi\xbd\xd4\xfd\x96\xd2K^\x10*\xbdd\x11\xe8\xbc\
-\xf4\x05\xab\xceK\xf7\x94\xca\xcb\x14\x81\xca\xcb\x14\x81\xc6\
-\xcb\xf5\x94\xc6\xcb\xf5\x94\xc2\xcb\x16\x81\xc2\xcb\xf6T\xbd\
-\x97\xef\xa9z/_\xa3\xd5^\xe1\xa2\xbb\xda+\x5c\xc4\
-\xd7z\xa5{\xf8J\xaf\xf8\x90\xa1\xd2+\x0e,u^\
-\xf9!H\x9dW\x9e\xa7\xaa<\xc1\xc0R\xe5\x09\x06\x96\
-\x1aO2O\xd5x\x92y\xaa\xc2\x13\x0d,\x15\x9eh\
-\x9e\x92{\xb2yJ\xee\xc9\xc6=\xb1'|\x90#\xf6\
-\x84\x0f\x86\xa4\x9e\xf4\xbd\x90\xd0\x13?\xb8\x12z\xe2\x83\
-\x95\xcc\x93?X\x93y\xf2s\x9f\xc4{\xfb\x15\xc7\xfb\
-\x03\xfd\xb9\xba%(\xb7\xb7:\x00\x00\x00\x00IEN\
-D\xaeB`\x82\
-\x00\x00\x03\xae\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00\xc0\x00\x00\x00\xb0\x04\x03\x00\x00\x00\xab\xd0|\xf5\
-\x00\x00\x00-PLTE\x00\x00\x00A\xcdRA\xcd\
-RA\xcdRD\xccQH\xcbPB\xccQI\xcbP\
-D\xccQE\xccQE\xccQD\xccQD\xccQC\
-\xccQA\xcdR\x9e%\xfb\x88\x00\x00\x00\x0etRN\
-S\x00\x18Oc\x8f\xab\xae\xb8\xbd\xc9\xd6\xdf\xe9\xf0\xe7\
-5\xddl\x00\x00\x03\x22IDATx\xda\xb5\xd8\xc1\
-\x89\xdb@\x18\xc5q)\x15\x08\x1b\x0cY\xf6\x90l\x01\
-\x82m\xc0\x90R\xdc\x80o!\xe7\x94\xa0\x06\x5cB \
-%\xa4\x01\x1fR@\x0e\xbb\x10\xd8\xb0L\x0d9\xd8\xb2\
-\xa5\x19[\xf3\xbd\xf7}o\xee\xf6\x8fw\xd0\x7f\x84\x9a\
-\xc6y\xfa\xa1\xd1\x9e\xfe\xbd\x13\x03\xe9\x97\x1a\x10O\xe8\
-S\xfa\xdd\x89\x81\xf4\xac\x06^;1 \x9d\xd0\xa7\x94\
-\xd2\xdfN\x0c\xa4\x9d\x1a\x10N8\x01\xc2\x09g\xe0\xad\
-\x13\x03iP\x03\xb2\x09# \x9bp\x01T\xcd\xbb\x00\
-\xaal_\x01\xd1\x84+ \xca\xf6\x04\xd04o\x0aH\
-\xb2=\x05$\x13f\x80\xa2y3@\xd1\xbc9 \x98\
-0\x07\x04\x132 \xbey\x19\x10\xdf\xbc\x1c\x08\x9f\x90\
-\x03\xe1\x13\x0a \xbay\x05\x10\x9d\xed\x12`&\xac\x9e\
-\xee\x9em\x01\x10\xd9n\x8f\x09:p\xf3>`\xff\x8f\
-g\x1b\x05\xe0\x090\x806\x0f\x06\xd0\xe6\xe1\x008\x01\
-\x07\xc0\x09\x04\x805\x8f\x00\xb0\xe61\x004\x81\x01\xa0\
-\x09\x14\x804\x8f\x02\x90ls\x000\x81\x03\x80l\x93\
-\x80\xbdy,`\xce6\x0b\x98'\xd0\x80\xb5y4`\
-m\x1e\x0f\x18'\xf0\x80q\x82\x03x\xab\xbd\xb0|q\
-\x02\xa9\x02<\xbch\x81\xf6\xe8\x05^\x97\x81\xc7\xe4\x05\
-\x96\x1f\xb5\xd5\xd1\x0b,\xc7\xa2\xdd&'\xf0\xfeyq\
-\xc0:y\x81\xe5;\xa7\xddz\x81\xca\x95\xb3N^\xe0\
-\xe7\xf2\x80\xbd\x17\xa8\xbc\xb9l\x92\x17\x18\x0c\x03<\x80\
-i\x80\x07\xf8\xbe<\xe0\xe0\x05*W\xc1\xc7\xe4\x05v\
-\xa6\x01<P\x19\xf0\x90\xbc\xc0s%\xd3^\xa0\xf2J\
-\xf4\x98\xbc@5\xd3N\xa0\x9ei\x1f`\xc8\xb4\x0f0\
-d\xda\x05X2\xed\x02,\x99\x9e\x01\xed\x0fA\xe5\xa6\
-\x00\xf8Aj\x00\x06\x9c\x81\x85\xd3\xfb\x060\x80-\xd3\
-<`\xcc4\x0f\xec\xa0\x018`\xcd4\x0dX3\xcd\
-\x02\xe6L\xb3\x809\xd3$`\xcf\xf4\xe5\x17\xf7\x9f\xe1\
-\xa7\xae\x00\x80L[\xce\xa7\x02\x002M\x01H\xa6)\
-\x00\xc94\x03`\x95#\x80!x@\x0e\x84\x0f\xc8\x01\
-,\xd38\x00f\x1a\x07v\xe1\x03\xe6\x00\x9ai\x18@\
-3\x8d\x02p\xa6Q\x00\xce4\x08\xe0\x99\xc6\x80\xe0L\
-\x97@p\xa6\x0b :\xd3\x05\x10\x9d\xe9\x1c\x88\xaf\x5c\
-\x06\x0c\xa2\x01# \x1b0\x02\xcb\x99n\x0e^\xa0\xf6\
-\xfd;y\x81\xda\xe7\xef\xa3\x13XU\x06\x90\x9d\xbb\x02\
-\xd5\xd3\x1e\xc4\x00uYB\x00?\xc1\x08\xf0\x13\xac\x00\
-\xfd,[\x01\xfaa6\x03\xec\x043\xc0N\xb0\x03\xe4\
-\x9df\x07\xc8K\x0d\x00\xb8\x09\x00\xd0\xac\xfe\x88\x01\xaa\
-y\x10\xc0\xbc\x9dB\x003\x01\x03\x88\xe6a\x00\xd1<\
-\x10\xc0'\x80\x00>\x01\x05\xe0\xe6\xa1\x00\xdc<\x18\xb8\
-5\xe1\xdf\xb7\xbb\xe7k\xd7\x04Lxi\x22\xcf\x8d\xe6\
-\xc5\x027\xb2\x1d\x0c\x94\x13\x82\x812\xdb\xd1@\xd1\xbc\
-p \xcfv8\x90O\x88\x07\xb2\xe6\xc5\x03Y\xf3\x04\
-\xc0|\x82\x00\x98OP\x00\xb3\xe6)\x80Y\xf3$\xc0\
-t\x82\x04\x98N\xd0\x00\x93\xe6i\x80I\xb6E\xc0u\
-\x82\x08\xb8f[\x05\x5c\x9a'\x03\xc6l\xcb\x80q\x82\
-\x0e87O\x07\x9c\x9b'\x04N\x13\x84\xc0i\x82\x12\
-h\xf7b\xa0\xd9\xa8\x81v/\x06\x9a\x8d\x1ah\xb7b\
-\xa0Y\xab\x81v\xeb\x06\xfe\x03$\xe7\x91\x89\x97#\xf5\
-\xaf\x00\x00\x00\x00IEND\xaeB`\x82\
-\x00\x00\x02c\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00w\x00\x00\x00w\x04\x03\x00\x00\x00\xcb\x17\xc2\xb9\
-\x00\x00\x00'PLTE\x00\x00\x00\xff\xff\xffA\xcd\
-RA\xcdRA\xcdRB\xccQD\xccQE\xccQ\
-E\xccQD\xccQD\xccQC\xccQA\xcdR\xeb\
-\xfeC\xda\x00\x00\x00\x0ctRNS\x00\x00\x18Oc\
-\xae\xbd\xc9\xd6\xdf\xe9\xf0v\x89\xbe\xf7\x00\x00\x01\xdfI\
-DATX\xc3\xc5\xd8\xbbm\xc30\x14\x05P\xc1Z\
- \xd9\x80e\x902I\xe9\x22\xd0\x08\x9c\xc4\xf0H\xd2\
-\x22)(\x07R\xdeP)\xa2\x0fI\x89|\x9f[\x84\
-\xfd\xc1\x05l]>\x92MS^\xed\xb7k\xcc\xab\xa5\
-\x1e\xc1\xb3\x030\x10\xdd\x12\xfd\xbc\x01\x98\x82\x030u\
-\x08\xb6F\xb7DD\xe4\x11<:\x00\x1b\xa3\x17l\x8b\
-^0\xdd\x11l\xea\xc7\x8aM\xd1\x1b\xb6Do\xd8\xd2\
-\x8f\x1d\x1b\xaa\xb9cCt\x84\xf5\xd5\x8c\xb0\xbe\x1f1\
-VW3\xc1\xda\xe8\x04k\xfb\x91be?R\xac\x8c\
-\xce\xb0.:\xc3\xba~\xe4X\xd5\x8f\x1c\xab\xa2\x0fX\
-\x13}\xc0\x9a~\x1c\xb1\xa2\x9aG\x9cG_\xde\x8b\xeb\
-\xe3\x88\xb3j\xbe\x92j\xa5\xfd\xb8\xeapZM-N\
-\xa2\xb58\xe9\x87\x1a\xc7\xfdP\xe38Z\x8f\xa3h=\
-\x8e\xfaa\xc0{?\x0cx\x8f\xb6\xe0-\xda\x82\xb7~\
-\x98\xf0ZM\x13^\xa3mx\xa9\xa6\x0d/\xfd0\xe2\
-\xbfjZqp\x00&\x8f\xe0\xd1\x01\x98<\x82G\x07\
-`\xba!\xf8\xeb\xdf\xf0'\x80\x03\xf2\x83u\xc0_5\
-\x00\x1f\xc9\x8c|\xdb=\xd0\xaa\x09\xe9\xf3\x1d\xd8I\x96\
-\xcd\xf7\x0a\x04\xdb\xf0\x03\xd9z=\xb0\xe9\x8f\xc8\xb8\xf1\
-\xc0\xa0\x0b\xc8\x88\xed\x80\xe1\x1e\x90cE\x07\x1ch\x06\
-\xe0(5#'\xc0\x1e8{N\xc9\xa9\xf7\xc5z\x06\
-\xd3\x1f\xd6\xe5W\x94\x96\x0b\xd6\xe1\x07rA\xf1\xc0\xd5\
-hD.e\x1e\xb8\x0e\x06\xe4\x22z|sx.\xad\
-\xa7\x1c\x9f\x04\xcb\xf1\xc9c\x87\x18\x0f\xce\x8eO/\xb0\
-R|zu\x16\xe2\xc9\x01\xf8\xbc\x112\x5c\xa8\xa2\x0c\
-\x17\xaa(\xc2\xa5*\x8ap\xa9\x11\x12\x5c\xac\xa2\x04\x17\
-\xab(\xc0\xe5*\x0ap\xf9\xf9\x8f\xc7\x95=\x80\xc7\x95\
-wG\x16\x0f\xce\x8e\xaboI\x1c\xae\xbeb1xr\
-\x00\xae\x0f\xa7:f\xa6b\x1d3S\xb1\x8a\xb9\xa9X\
-\xc5\xdcp\xaaav*V\xf0\x85{\x8b\xff\x05\xc8d\
-f\xae\xfe\xc1\x88\xef\x00\x00\x00\x00IEND\xaeB\
-`\x82\
-\x00\x00\x17\x1c\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x03 \x00\x00\x02L\x08\x03\x00\x00\x005\xef2\xcf\
-\x00\x00\x00EPLTE\x00\x00\x00~\xdbrA\xcd\
-RA\xcdRA\xcdRA\xcdRA\xcdRM\xd0]\
-Y\xd3he\xd6rq\xda}|\xdd\x88\x88\xe0\x93\x94\
-\xe3\x9e\xa0\xe6\xa9\xac\xe9\xb3\xb8\xec\xbe\xc4\xef\xc9\xd0\xf3\
-\xd4\xdb\xf6\xdf\xe7\xf9\xe9\xf3\xfc\xf4\xff\xff\xff\xd4\x9f\x8c\
-\x95\x00\x00\x00\x06tRNS\x00\x00\x10\xaf\xbf\xcf\x84\
-\x1d'\x05\x00\x00\x16\x80IDATx\xda\xed\xdd\xe9\
-\xa2\x9b8\x12\x86\xe1\xf6,,\x02\x04\x08\xd0\xfd_\xea\
-\xfc\xc8\xd2\xc9t\x9c\x9cCi)\x15\xefw\x05\x06\xfb\
-A\xaa\x92\x84\xff\xfa\xabd\xfe\xf5\xdf\x8e\x90v\xf2\x9f\
-\x17>\x08y\x0f\x04\x1f\x84(\x01\x82\x0f\x02\x10|\x10\
-\x80\xe0\x83\x00\x04\x1f\x04 \xf8 \xa4>\x10|\x10\x80\
-\xe0\x83\x00\x04\x1f\x04 \xf8 \xa4\x14\x10|\x10\x80\xe0\
-\x83\x00\x04\x1f\x04 \xf8 \xa4\x14\x10|\x90\xb6\x81\xbc\
-\xf0AH\xa5\x11\x04\x1f\x04 \xf8 \x00\xc1\x07\x01\x08\
->\x08)\x05\x04\x1f\x04 \xf8 \x00\xc1\x07\x01\x08>\
-\x08)\x05\x04\x1f\x04 \xf8 \x00\xc1\x07\x01\x08>\x08\
-)\x05\x04\x1f\x04 \xf8 \x00\xc1\x07\x01\xc8\x0b\x1f\x84\
-\x14\x1aA\xf0A\x00\x82\x0f\x02\x10|\x10\x92\x16\x08>\
-\x08@\xf0A\x00\x82\x0fB\xd2\x02\xc1\x07\x01\x08>\x08\
-@\xf0AHZ \xf8 \x00\xc1\x07\x01\x08>\x08I\
-\x0b\x04\x1f\x04 \xf8 \x00\xc1\x07!\xff\x0f\xe4\x85\x0f\
-B2\x8d \xf8 \x00\xc1\x07\x01\x08>\x08I\x0b\x04\
-\x1f\x04 \xf8 \x00\xc1\x07!i\x81\xe0\x83\x00\x04\x1f\
-\x04 \xf8 $-\x10|\x10\x80\xe0\x83\x90;@\xf0\
-A\x00\x82\x0fB\xee\x00\xc1\x07\x01\x08>\x08\xf9\x02\xe4\
-\x85\x0fB\x12\x8d \xf8 \x00\xc1\x07!w\x80\xe0\x83\
-\x00\x04\x1f\x84\xdc\x01\x82\x0f\x02\x10|\x10r\x07\x08>\
-\x08@\xf0A\xc8\x1d \xf8 \x00\xc1\x07!w\x80\xe0\
-\x83\x00\x04\x1f\x84\xdc\x01\x82\x0f\x02\x10|\x10r\x07\x08\
->\xc8\xb3\x81\xbc\xf0A\xc8\xcd\x11\x04\x1f\x04 \xf8 \
-\xe4\x0e\x10|\x10\x80\xe0\x83\x90;@\xf0A\xc8{ \
-\xf8 \xe4=\x10|\x10\xf2\x1e\x08>\x08y\x0f\x04\x1f\
-\x84\xbc\x07\x82\x0fB\xde\x03\xc1\x07!\xef\x81\xe0\x83\x90\
-\xf7@\xf0A\xc8{ \xf8 \xe4=\x10|\x10\xf2#\
-\x90\x17>\x08\xf9\xe0\x08\x82\x0fB\xde\x03\xc1\x07!\xef\
-\x81\xe0\x83\x90\xf7@\xf0A\xc8{ \xf8x\x97\xde\xfd\
-\x1c\xee\xc8\x13\x81\xe0\xe3\xef87{\xbf\x86\x10\x8e\xf8\
->!\x84\xe0\xbd\x9f\x00\xf3\x08 \xf8\xe8\xba\xde\xcd~\
-\x0bg\xfc|\x8e\xb0\xf9\xd9\xf5\xdcB\xb3@\x1e\xeec\
-\x98\xfc\x1e\xa2<a\xf3n\xe0Ge\x0f\xc8\x83}\x8c\
-\xf3\x9a\x82\xc6\x0f\xb9\xc2:\xa3\xc4\x14\x90\xa7\xfap>\
-\x5c1O\xae\xe0\xa9M\xac\x00y\xa4\x0f\xe7C\xcc\x1d\
-\x90\x98\x00\xf2<\x1f\xc3\xb2\xc7B\xb9v\xa6[\xad\x03\
-y\x98\x8f\xd1\x1f\xb1l\x8e\x05#-\x03y\x94\x8e\xf5\
-\x8c5\x82\x11\x80\xe8O\xbf\x1c\xb1^\x8e\x99u\x92\x16\
-\x81\xbc\x9e\x02d\xdac\xedl\xd4\xec\x8c Z\x07\x8f\
-3j\xc8\xc90\x02\x10\x85]\xab\xed\x8aZr\xadT\
-#\x00Q\x15\xb7G]\xd9 \x02\x10=<B\xd4\x17\
-\x88\x00DGF\x8d< \x02\x10-\xb5G\xd4\x9b\x95\
-r\x1d u;W>\xaa\xce\xb5\xf0\xf3\x03H\xbdL\
-g\xd4\x9e\x83u\x11\x80\xd4\x9a]\x85\xd8Bj\xcf\xb3\
-\xdc\xbd\x00\xa4\xf5,Wl#\xd7T\xf5>\xdd\xfc\xd4\
-\x00i|\xf88b;\xd9{\x80\x00\x84\xe1\xe37\xdb\
-O\x1c@\x00R\xb0y\xb5\xc7\xd6\xe2\x01\x02\x90R\x19\
-\xcf\xd8^B\x0f\x10\x80\x14\xc9\x1c\x9b\xcc9\x02D)\
-\x10[\xe7A\xb6\xd8h\xae\x19 \x8c \xd9\xcb\x8f#\
-\xb6\x1b\x0f\x10\x80d.?Z\xf6\x11\xe3\x06\x10\x80d\
-\xf5q\xc5\xb6SaE\x04 \xcf\x01\xd2\xbc\x8f\x18\x8f\
-\x1e \x00\xc9\x94\xa9}\x1f\x15\x84\x00\xe4)@\xe6h\
-\x22\xa5\x85\x00\xe4!@\x5c\x8c\x08\x01\x08@\xec\xd6\x1f\
-\xdf\x85\x00\x04 \xf8\xd0\xd2\xed\x05\xc8\x13\x80\x0c\x96|\
-\x94\x15\x02\x90\x07\x00\xe9\x8fh+3@\x00\x920!\
-Z\x8b\x03\x08@\x92e3\xe7#^\x03@\x00\x92(\
-s4\x98b\xcd^\x80X\x072F\x93\xd9\x00\xa2\x05\
-H\xdb\xe7A\xfa\xd3&\x90R\x85:@\x8c\x8f \xbb\
-Q\x1f\xa5\xca\x10\x80\xd8\x062G\xb3\x09\x00\x01\x884\
-\xc6V\x08\x7f\x8e\x07\x08@\x84\x09\xd1rF\x80\x00D\
-\x94\xc5\xb4\x8f\x22\xdb\x16\x01b\x18\x88\xe9\x09V\xa1I\
-\x16@\x0c\x03)\xd2\xc1:BX\xbd\xf7\xfe\xfb\x8b\xcd\
-\x17\xef\xbd\x0f\xa1\xc8\xecn\x00\x08@ng\xca\xdbf\
-\x0d\xab\xff\xc3k\xfeG\xb7\xac!\xeb(\x16\x00\x02\x90\
-\xbb\xc9\xb7Dx\x05\xef>\xfe\xec\xee\x9d\xdf\xb3)\x99\
-\x01\x02\x90\x9b\xc9\xf4\xffj\xfbr\xa7y4\xccy\x90\
-\x5c=@\x00r\xafB\xcf\xf1s\xdc$\xfff\xe3\xd6\
-\x0cc\x9a\x07\x08@tT\xe82\x1d_\xab\x925\xf9\
-82\x00\x04 w\x1e\xd7\xa9\x9bUs\xa2\xc9\xcc\x9c\
-\xb8\xbd\xb5\x01\x04 7\x92\xf6g\xb8\xa5<\xc2\x97\xf8\
-\xcf\xd9\x1d@\x00\xf2\xf9\xe7tR\x1e\xa9\xa71I\x89\
-\x04\x80\xd4\x05\xd2\xe4y\x90\x84\xe5\xf0\x9ec\x96\x9f\x92\
-\x88\x03\x08#H\xb5\x01\xe4\xc8\xf5\xf3s\xa1\x89!\x04\
- &\x81\xa4\x1a@\xae\x9c]\xd4d\xff\xb5\xeb\x00\x02\
-\x90*\x03H\xc8\xdbC\x1d\x82\xfe!\x04 \x16\x81$\
-\x1a@\xf2o\x96]\xd4\x0f!\x001\x08$\xcd\x00r\
-\x958\x8f\x94\xe6?\xa9\x03@\x00Rz\x00)\xf4\xe6\
-\xa94\xafE\x1d\x01\x02\x90\x8f\xf7\x87\x1aX\xa0\xfe!\
-\x9b\xeaO\x0b\x10{@R\x94\xbek\xc1\xcf\x9bB\xc8\
-\x00\x10\x80|\xb47\xd4\xc21\x8b\x9f\xb2*\x06\x0d\x10\
-s@\xb6\xd6|\xa4\x10\x92\xed\x5c\x08@\xac\x01\xe9\xe5\
-\xcboK\x83\xa8g\x80\x00\xe4CY\x1a\xaa\xcf\x13\x0a\
-9\x00\x02\x90\x0f\xe5l\xd1G\xd7\x89\xbb\xbd#@\x00\
-\xf2\x81\x88{\xbc\xa5\xff\x88\xfc\xdb\xcc\xf0\xd4\xe9\x1a \
-\xc6\x80H\xe7*\xe5\xfe\xbb\xe9\xff2\xea,\xd3\x01\xf2\
-G M\x9d\x07\xe9\xa5\x03\xc8T\xed\xa3/*\xcbt\
-\x80\xd8\x1aA\xa4\xdb\xb0\xd6\x8a\x9f]\xb8\xc0\x19\x00\x02\
-\x90\xdc\xb5n\xa5\x02\xe4K\xa4\xaf\x12\x1e\x00\x02\x90?\
-\xfd\xc6\xd4n\xfa+0\xc9Z\x00\x02\x90?\xc4\xb7;\
-\xc1\x92O\xb2\x0e\x80\x00\xe4\x0f956\x82\x8au\xb2\
-F\x80\x00$\xe7\x0fl\xae~\x01\x9b\xba\x01\x10 \x96\
-\x80\xac\xfa\xa6(\x9f\x8bl#\xd9\x09\x10\x80d\x9ca\
-9\x05W\xe0\xb5\xcd\xb1\x00b\x08\x88l\x86\x154\x5c\
-\x82l\x08Y\x00\x02\x90l3,\xa7\xe2\x1a\xbc\xb2I\
-\x22@\x0c\x019\x9a\x1f@\xa4C\xc8\x00\x10\x80\xbc\xcd\
-\xd0x\x0b+\xc10\xb8\x00\x04 o\xb3h\xeb\x00\x95\
-g\xbe\x03\x04 o\x13,\x0c \xc2\xb5\x10\x80\x00\xe4\
-\xed\xec\xbd\xe9E\xf4\xbf#:\xf25\x01\xa48\x90V\
-\xce\x83\x88\xfe\x16}St!\x92\xd5\x9c\x15 \x8c \
-9\xa6&\xa3\xa2\x0bY4\x95R\x001\x03D\xf2\xe0\
-=4]\x88h\xae\xf8\xe1F\xef\xe0>\x94\xbb\x8bJ\
-)2\x02DK\xf7gVu)[\x89+\x11\x9e\x0c\
-(\x91\x00\x90\x84\x11\x1d\xb6\xedU]\xcaT\xa2\x98\x02\
-\xc8\xc3\x80\xec\xaa\x96\x0fd\xb9\x0a\x14!\x00y\x18\x10\
-\xc9\x16\x8dI\xd9\xb5l\x05\x8a\x10\x80<\x0b\x88d'\
-\xefe\xa9c=\x03\x04 \x89{\xa3\x9b\xba\xab\xb9\xf2\
-_\x0c@\x9e\x05d34\xc3\x12]\xcd\x09\x10\x80$\
-^\x05\xe9\xd5]\xcd\x94\xffj\x00\xf2( \x92U\x90\
-]\xe1\xf5\xe4\x1f\x0f\x01\xf2( \x92G\xee\xa2\xf0z\
-\x04Mk\x0f\x10\x80\xfc#\x92cF\x83\xc2\xebY\xb2\
-\xff\xac\x00\xf2( \x82\xb3 \xa7\xc6\xeb\x91L\x19\x01\
-\x02\x90\x94s\xf6U\xe5\x05\x09\x9a\x0e#@\x8a\x02i\
-\xe1<\x88\xe4\x90\xd1\xa4\xf2\x8a\x04\x8d\xde\x19 \x8c \
-\xe9\xa6\xec\x0a\x9b\xbc]'\xda{\xb9\x02\x04 \xe9\x9e\
-\xb7\x87\xce+\x1ar\xff\xae\x00\xf2$ G\xee\xe7m\
-SE\x08@\x00\x92\xaeF\x9f\x94^\x92`P\x1c\x01\
-\x02\x90\x9f\x22\xd9\xca\xdb+\xbd\xa6%\xb3y\x80<\x08\
-\x88\xa0\xa2=\x0c\xa2\xf7\x00\x01H\xaa/{S{Q\
-\x99\x7fX\x00y\x10\x10\xc1:\xfab\xf0\xa2N\x80\x00\
-\xe4\xa7\x08\xce\x17\xe9}\xb5\x8c`{\x19@\x00\xf2c\
-$/\x922YX9\x80\x00\xe4\x878\x93\xdf\x81\xa0\
-J\x9f\x01\x02\x904\x1d\xd1U\xf1e\xe5mc\x01\xe4\
-9@\x04\xdf\xf5\xa2\xf8\xb2\xeeW\xe9;@\x00\x92\xa6\
-\x89\xe5\x14_\xd6\xfd\xb5\xf4\x03 \x00\xf9!\xb9\xb7-\
-\xb57s\x04HA \xfa\xcf\x83\xdc\xff\x0aN\xcd\x97\
-%\xe8=\x0c\x00a\x04I\xd1\xeeQ\xfd\x15\xf4Yg\
-\x8e\x00y\x0c\x10\xc1\x93\xd6\xab\xbe\xb0\xac\xbd\x07\x80<\
-\x06\x88\xe0\xab\x9eU_X\xc8\x09\x1f \x8f\x01\xb2f\
-\x9d\x8a4\xd9\xc6\xda\x01\x02\x90\x14]^\xabCc\x00\
-\x08@\xbe\xe7\xfey\xdbK\xf7\x85M9/\x0c \x8f\
-\x01b\xf6\x1bp9\x87F\x80<\x05\x88\xa0\x1b\xba\x99\
-\xa5?\x02\x04 \xd6\xbb\xbc\x12 \x0e \x00\x91\x03\x99\
-\x95\xdf\xfb\x90\xf1\xca\x00\xf2\x14 >\xe7s\xd6\xeeB\
-\x08@\x00\x92b\xcbR\xa3\x97\xb6\x02\x04 _#\xf8\
-\xaf\x99\xce,\x90\x00\x10\x80\x88\xe7!\xa7\xf6{?\x01\
-\x04 \xe2\x1cv\xbf\x80\xfb\xfd\x87\x0b \xc5\x80h?\
-\x0fr\xff\x0b\xd8\xb5\xdf\xfb!\xe3\xec\x11 O\x19A\
-\xec.\x83H\xae\x0d \x00\xf9\x92\x11 \xb7:\xd8\x83\
-\xfbH\x96\x5c>\xedD;\x10\xc1:\xe1\xa4\xfe\xe6\x87\
-|@\xf2\xde]\x80X\x00\xe2\x0c\x03\x99\x00\x02\x10\xe9\
-\x5cZ?\x90\xbd\xf6\xf4\x11 O\x06\xa2\xff\xe6{\x80\
-\x00\x04 \x00\x01\x88\xc6YH\x03\xdf\xe2\xfdw\xc7\x05\
-\x80\x00DX\xc76\xd0fw\x00\x01\x08@\x00\x02\x90\
-|9\x00\x92q#&@\x9a\x07r\xbf\x04Y\x1b\xb8\
-\xfb\xb5\x0b,\x80<\x18\x88\x07\x08@\x00\x02\x10\x80<\
-\x19\xc8\x00\x90_\xa7\x07H! \xba\xcf\x83\x98\xde\x8a\
-U\x7f\xb7\x22@Z\x1fA\x00\x02\x10\x80\x00\x04 \x00\
-\x01\x08@\x00\x92<\xf3} c\x03w\xff\xfeN\xb3\
-\x09 \x00\xe9\x8co\xe6\xad\xbf\x9d\x17 \x00\x01\x08@\
-\x00\x02\x10\x80\x00\x04 \x00\x01\x08@\x00\x02\x90\x8fg\
-\x05\x08@\x00\xf2>\xa6\xcfKI\x96yV\x80\x00\x04\
- \xb9/\x0f \x00\x01\x08@\x00\x02\x10\x80\x00\x04 \
-\x00\xa9\x00\xe4\x05\x10\x80\x00\x84\x11\x04 \x00\x01\x08@\
-\x00\x02\x10\x80\x00\x04 \x00\x01\x08@\x00\x02\x10\x80\x00\
-\x04 \x00\x01\x08@\x00\x02\x10\x80\x00\xc4\x0a\x90\xad\x85\
-\xbb?\x00\x04 \x95\x80\xf8&n?@\x00\x22\xca\xfd\
-\xbf\x07i\xe1\xdf\x0f\xba\x11 \x00\xa9\x04$\x00\x04 \
-L\xb1(\xd2\x01\x02\x10\x80\x00\x04 \x00\x01\x88J \
-\x9c\x07\x01\x08@\x18A\x00\x02\x10\x80\x00\x04 \x00\x01\
-\x08@\x00\x02\x10\x80\x00\x04 \x00\x01\x08@\x00\x02\x10\
-\x80\x00\x04 \x00\x01\x08@\x00\xd2\x06\x90\x1d \x00\x11\
-\x019m\x03\xe1\xffA\x00\xd2u\xe6\xffaj\x01\x08\
-@\x00\x92\xe3\xf2\x00\x02\x10\x80\x00\x04 \x00\x01\x08@\
-\x00\x02\x90f\x81\xbc\xac\x02\xe9M\x03Y\x00\xc2\x08\xd2\
-u\xdd|\x1f\x88k\xe0\xeeo\x95\xaf\x0e \xad\x03q\
-\xb6\x81\x04\x80\x00\x04 \x00\x01\x08@\x00\x02\x90\xb6\x80\
-\xcc\xa6\x81\x8c\x00\x01H\xd7u\xfd} -\xbc\x9c\xf7\
-\xaa\xdc\xc4\x06H\xeb@:\xdb@\x22@\x00\x02\x10\x80\
-\x00D\xe1Oh\x03\x08@\xec\x031\xfdz\xf7\xda/\
-w\x07H\xfb@L\x1f)t\x00\x01H5 \x07@\
-\x00b\x1f\xc8ny;\xef\xfd\x9df;@\x00\xd2u\
-\x9d\xf1\xfd\xee\xb5w\xbb\x03\xe4\xd1@z\x80\x00D\x0e\
-\xe4e\x16\x88\xfe\xcdX\xf7w\xbb/\x00a\x04\x11\xd6\
-\xb1\x0d\x00\xa9\xbdW\x11 \x8f\x062\x03\x04 \xe6\x81\
-\xdc_Kk`\xaf\xc9\xfd\xbd\x8a#@\x00\xf2%\x96\
-\x81T\xef\xd0\x01\xe4\xc9@\xd4/\xa5\xf7\x00\x01\x888\
-\xa7] \xf7\xeb\xab\x13 \x00\x11\x17\xb2\x97] \x01\
- \x00\xf9\x1a\xc3{M<@\x00R\xf1W\x94\xaa\xd5\
-\xa3\xf0\xd2<@\x00\x22\x07\xa2}\xa5p\x07\x08@*\
-N\xd4S\xed\xc7PX^M\x00\x01\x88\x1c\x88\xf6\x85\
-\x90\xab\xfa\xd8\x08\x90\xf6\x81\x08\x16\x0bv\xe5\xf7\xfe\xfe\
-\x95\x0d\x00\x01\x88\xfcg\xa4|!D06v\x00\x01\
-\xc8\xb7\x1c\xf5\x7fGy2U_'\x04\xc8\x07\x80\xbc\
-\xb4\x03\x09\xf5g\x22\xda\xfas\x01 \x8c \xdf\xb3Z\
-\xed\xf3\xde?.\xb5\x01\x04 \x09\x1e\xb4\xca\xfb\xbc\xf7\
-\x87F\x0f\x10\x80\xa4\xa8eW\xd5\x17v\xbf\xcb;\x01\
-\x04 \xdf3\x1amc\xf5\x0a\xa6\x8e\x001\x00D\xd0\
-\xe7U\xbd\x9fW02\xf6\x00\x01\xc8\xdf9\x15\xfc\x92\
-2dQ\xe0\x1e \x16\x80\x04\x9bm\xacM\xc1\xcc\x11\
- \x16\x80\x08\xdaX\xde\xa4\xfb\x0d \x00I2\x17Q\
-\xbd\x1bK\x03{\x80X\x00\x22\xa8fO\xbdW5j\
-\x988\x02\xc4\x02\x10A?Tq\x95~\xff\xcd\xee\x09\
-w\xd0\x00\xc4\x02\x10\xc1\x8a\x9a\xe2*]\xb0\x83\xa6\x03\
-\x08@\x12\xb5\xb1\xbc\xc1\x8b\x0a\x00\x01H\xaa6\x96\xde\
-*=*hb\x01\xc4\x06\x10\xc1t]\xedZ\xba\x8e\
-w\x0e\x03\xe4\xcf@^\xfa\x81\x08~Lj_\xfd\xb3\
-\xa8\xa8\xab\x00bb\x04\x11LG\xd4\xeex\x17\xbc\x0f\
-\xaf\x07\x08@\x92U\xe9Z\x8b\x90\xfb\x9d\xb9\x94k;\
-\x00\xb1\x01d3W\x84\x8c:\xc8\x03\xc4\x06\x90\xd9\x5c\
-\x11\xb2\xa8\xa8\xd1\x01b\x04\xc8h\xae\x08\xd9U\xd4\xe8\
-\x001\x02DR\xa5\xeb,B.\x155:@\xac\x00\
-\x11T\xe9*\xbfL\xc1\x90\x98t\xff%@\x8c\x00\x11\
-l\x5cJ\xf7\x86\x83\x84\x11\xec\x0d\xd84\x00\x19\x00\xa2\
-+ST\xf2\x8bJ\x94CIM\xe5\x14\xd4A\x00I\
-\x10\xc9\x8ew\x85\x8d\xdeAKW\x0e F\x80H^\
-\xdc\xa0\xb0\xd1\xabfs\x19@\xac\x00\x11,\x15*|\
-}\x9c\xa0\xc9\x1b\x00\x02\x90\xb4\xcf\x5c}\xe7n%\x13\
-F\x0f\x10\x80$\x9e\xb5\xab\xebcI\xb4'\xfei\x02\
-\xc4\x08\x10Q\x11\xa2\xad\x8f\x15\xf4t\x1c\x0c\xb5\xces\
-\x01y\xb5\x01DR\x84\x5c\xba^\xdd \x19\x0dw\x1d\
-@\xfc\x83\x8042\x82H\xa6%qVu)\x82\x8d\
-\x8a\xc9w\x96\x01\xc4\x0a\x10Ia\x1b\x0f3\xb3\xc5\x11\
- \x00\xf9u\x8e\xa8\xe8wU\xa3s\x94\xa5!\x07\x10\
-3@$\xdb\xb1T\x95\xe9\x9b\xa6\xebP\xb1\x1a\x03\x90\
-\xda\x0f^MoX\xd4\xd5\xb0\x06\x88\x19 \x92#\x14\
-\x9a\xe6\x04^\x95\xf3\x00\x103@$S\x13=\x9d\xde\
-^\xe2<\xfd\xe1\xaf\x9b@.\x80\xe8\x8b\xa8\xd1\xabf\
-\x08\x11\x0d \x8b\x16 \x11 \xfa\x22j\xf4j\x19B\
-D\x03H\x86sJ\xa1\xf9\x9a\x0e \xdf\xb3\x1b\x18B\
-D\x03\xc8\xa1\xe7\x9e:\x80X\x9bc\xa9\x18Bd\x03\
-\xc8\xa2\x07,@\xcc\xcd\xb1T\xac\x85\x88\x06\x90\x1c'\
-\xc1}\xe3%\x1d@\xd2\xcd\xb1\x14<\xf5Dk Y\
-6\xcc\xdc\x05\xb2\x02\xc4\xdc\x1cK\xc1\x8e\xac \xfa\xfc\
-9\xb6\x5c\xde}\x1bF\x00\x88\xbd9V\xf5y\xc1$\
-\xfb\xf89\x8a\xa8\xbb\xfb\x13\xce\xe7\x00y\xb5\x03D:\
-\xc7\xaa\xbcgQV\xa1\xe7yE\xe4\xed\x0d<\x8c \
-\x06\xe7X\xf1\xa8\xda\xc9\x92M\xb0\xf2\x9c\xe2\xeb\xdb-\
-\xe8\x00\xf2\x8b\x5cB!5;Y\xb2\x0eV\xaeI\x8d\
-\xa2\x963@\xe4\xd9\x84@*\x9e-t:\x0b\xa8\xab\
-\xc1G\x0d@\xdef\x94\x02\xa965\x18\xa5\x83_\xa6\
-\xd7\xe1\x06\xaatK@d\xe7\x0ac\x8c\xf1\xaaS\xa8\
-\xf7\xd2\x0f\x9e\xeb_\x1c\x822\xb0\x00\xa9[\xa6W\x12\
-\x22\xf6\x91m\xe4\xf3\xedMV\x01\x92\xafUZI\x88\
-\xdcG\xb6\x19\x8d\xd76\xa4\x01\xa4r\x99^A\x88\xdc\
-G\xbe\xe7\xf5\xfd\xc5\xcb\x1e \x1a3\xc4\xe6\x84$\xf0\
-\x91\xaf$v\x919\x96) \xd2\xe5\xb6/BJ~\
-\xb9\xe3)\xff\xc0\x197\xc9(D\x0b\x90:\x8f\xbc:\
-\xdb\xb2\xa6+\x01\xe8\x8c\xd3\x99\x8b!\xc4\x16\x90\xeeL\
-\x22$\x14\x9aB\xaf\xda9\x07\x95l\x01r?s\x12\
- \xf1*\xb1d8\x1cI>j\xce_\xa2\xa0\xebq\
-\xf4\x00\xb1;\x84\xc4\xb8f\xff~\x97K\xff|P\xb2\
-E\xec\x09B\x1a\x04\x92h\x08\xc9^\xab\x8fG\xa2\x8f\
-\x99\xf5g(\xaa\xe9\x0e\xfb\xeb\xe9M\x9d\x07I<\x84\
-\xc4\x18\xf2\xcd\xb3\xfa-\xd5\x87\xcc\xbbqV\xd67\xbf\
-\xcc\xef\xeamp\x04I7\x84\xc4\x18\xb7<\xcf\xc0\xde\
-_\xa9>a\xeev\xaa\xf0\x83\x9es\x0f\x10\xbbCH\
-\x8cq\x1b5\xf3\xc8\xffwg\xe2\x85\xa5k\x9b>e\
-\xc49\xe7\x9c[\xfc\x00\x90\x16\x86\x90\x18cH\xfb\x1b\
-\x1c\xb7\xa4\x1f.\xf7\xcd\xf4)>\xe5\xb1.\xee\xe7\x1f\
-|\xff\xc5\x81\xf7\xde{\xbf\x87\x10B8Z<\x94\xd8\
-$\x90\xb4CH\x8c\xf1L\xf68\xeb\xe7#\xedG\xcb\
-\xbe-fJ\xf8a\xaf\x10B\xf8\xe8\xe8\x09\x906\xbe\
-\xd4o\xcf\xc0eH\xa0cO\xfd\xb1\xf2\xbf\x80j\x88\
-\x95\x02\x10\xcd\x13\xe7_\x1a\xf1\x92\xc7\xf5\xb0\xec\xe9?\
-R\x89\xd5\xea\xab\x12\x10\x0f\x90|\x193}i\xd7\xbe\
-\xdcy\xb0\x0d\xf3vf\xf9<%\xfe\x90|\x07\x88=\
- i\xf68\xbd\xab\x8b\xd7O(\x19'\x1f\xb2=\x83\
-\x8b\x9cJZ\x00b\x10H\x9f{bp\x85\xcd\xcf\xee\
-\xfd\x9ckt\x93_\xc3\x99\xf73\x14\xe9\x84\x8e\x001\
-\x08$u\xab\xf7w\x03J\x08!\xf8o\xd9?\xd3\xa8\
-Q\xbd\x86^\xbb\x08\xd9\x00\xd2^\x9d\xae*\xa5\x8e}\
-ou./\x00$o{\xf22\xee\xa3\xd8y\x8b\x19\
- \x16\x81T+.\xcd\xad\x13\xf4\x001\x09\xc4\xf8$\
-\xab`\x0d{\x00\xc4$\x10\xd3\x93\xac`\x7f,n\x03\
-\xc8\xab] \xb5&\xcf\xa6\x0a\x90\xae\xab\xb6\xdb\x84\x11\
-\xc4j\xff\xa5@\xca\xbe\xba\xeb\x00\x88M \xfda\xd4\
-G\xe1W\xea,\x00\xb1\x09D\xfe\xaf\x02:S\xfaO\
-d\xeb\xf4\xb1\x06\x80P\x864\xb2\xc6\x5ce\xae\xea\x00\
-R \xde\x9e\x8f\x0ao\xd3q\x00\xb1\x0a\xc4^\xa1^\
-\xe5mS'@\xac\x02\xb1V\xa8\xd7y\x1b\xdb\x0c\x10\
-\xab@\x8c\x09\xa9\xf5\xc6\xdb\x0aC\x88\x07\x08B>\xed\
-c\xact\x13g\x80\x98\x05b\xa8\xd9{\x8c\xd5n\xe2\
-\x09\x10\xb3@\xcc\x08\xa9\xf96\xe8\x19 v\x81${\
-Q\xf4s}T\xd8\x1c\xbd\x01\x84:\xe43\x09u\xdf\
-r[\xfclz\x00\x08BZz\xa0\xae\x001\x0c$\
-\xe1\xff\x0d\xd4\xc9\xf2\xb8gL\x1b@^V\x80\x94\x7f\
-\x02&m\xefN\x0an\xe0\x08\x10\xc3#H\xd7us\
-\xb3\xcd\xac\x8a\xed\xdd\x8a\x9d,\x80\x14\x7f\x04\x9em\xfa\
-\xd8\xb4\xfc\x09\xcd\x06\x10\xd3@\xba~oqz\xa5\xe8\
-\x1f\xc77\x80\x98\x06\x92\xec\x9feKN\xafT\x1d\x1c\
-\x0a\x00\xb1\x0d\xa4\xb95Ce\xeb\xc9%\x9b\x81\x03@\
-\xaa\xa4\xad3T\x93\xb6\xdbWN\x88\x03H\xa5A\xa4\
-\xa5W\xca]\xfdc\x1f0\x00\xa1\x12\xf9@Vuw\
-\xcf]\x001\x0e\xa4\xa9uu}\xbf\x93>\x00\xc48\
-\x90\x96\xe6Y\xc7S\x87`\x0f\x90\xba3\x85V\x88h\
-\xfc\xa1\x94\x18\x82\x01R;s\x1b+\xeb\xd7\xf0\xcc\xe7\
-\x0b@\x14\x10ib\x14Q\xbam/7\x11\x800\xd1\
-ju1\xe4[!\x97u\xa2\xb5\x01DE\x86M}\
-\xd3\xf7\xec\xb5\xde\xbc~\xc9\xb23\xe1\xdc\xfd\xd4\xc6\xbb\
-y_\xf6\x81t]?k\xdf\x7f\xb2*\xbe{\xe3\x9a\
-\xb4\x94\x0b\xeb\xe2\xfaf~:O\x18A\xbe~\xcb\xba\
-\x87\x91Q\xf7\xdd[RLT\xc3\xe6\xdd\xd0\xd8\xef\xe6\
-1@\xba\xae\x9b4O\xb5\x0e\xf5\xb7\xcf\xf9\xdb\xff\x0f\
-\x7f\x86\xb5=\x1a\xcf\x03\xa2\xdb\xc8\xd2\xc2\xfd\x1b&\x1f\
->3\xdf:\xc2\xea\xdd\xd8\xf2/\xe6a@\xba\xae\x9b\
-V\x9d\x8b#W;O\xd8\xd1-~\x0f\xef']W\
-\x08\x9b\xf7\xae\xa1J\x03 ??\x07\x97]\xe1@\xb2\
-\xb7X\xd99\xe7\x9c\xf3_3;\xe7\x1a\x9dI\x01\xe4\
-\x9fe\xe7\xaem$\x99:\x02\x10]3\xeaU\xd3*\
-\xe2\xd9\xf3{\x04\x88\xc6\xbasO\xb1Jr\xc9gm\
-\x9e\xdf#@\xb4\xce\xb8&\xbf\x85\xfbs\xae\xe0]\x8a\
-\x97J\x8d|\x11\x00\xd1=\x9c\xb8\xc9\xff\xb6A\xf3\xcb\
->\xe6\xd7\xbaT>]\x0b|\x03\x00i\xc7\x8as\xd3\
-\x97\xee\xcc\x16~\xcc\xea\xbd\xf7~\xf9g\xc3fx\xc8\
-b\x08@\xc8\xbd\xc8\xdfvpQ\xa7\x03\xc4n\xfa\xf3\
-\x91\x8b!\x00!\x1f\xcc\xf4\x8c\x17\x19\x00\x84\xdcL`\
-1\xc4\x1a\x90\x17@RV\xf6,\x860\x82\x90\xacu\
-:\x8b!\x00\xb1\x9c\x93\xc5\x10\x80\x90\xf7q\xf2!d\
-\xe6.\x02\xc4nv\x16C\x00B\xb2\xd6\xe9\x1bw\x11\
- v\xb3\xb0\x18\x02\x10\xf2\x9b\xc87\xcf\x9f\xdcD\x80\
-P\xa7\xb3\x18\x02\x90g&\xc1\xfb:\x07\xee\x22@\xcc\
-\xa6\xbfX\x0c\x01\x08\xc9Z\xa7\xb3\x18\x02\x10\xc3\x09,\
-\x86\x18\xc9\xbf\x01\x92#\xa3\xed\xd7Y?'\xff\xfd\x17\
-@\xb2de1\xc4\x8a\x0f\x80(\xad\xd3\x0f\xee\xa2\x06\
-\x1f\x9c\x07\xc9\x93\x99\xc5\x10\x1b\xe3\x07#\x88\xde:\x9d\
-\xc5\x10\x0d>\x00\x92'\x09^\x02\xc4b\x88\x06\x1f\x00\
-\xc9\x94\x04\x87\x0by\x9d\xb5\x02\x1f\x00\xc9U\xa7\x9f,\
-\x86X\xf0\x01\x90\x5c\x99X\x0c\xb1\xe0\x03 \x8a\xebt\
-\xde\xe0P\xdf\x07@\xf2\xd5\xe9,\x86\x18\xf0\x01\x10\xd5\
-u:\xaf\xb3\xae\xed\x03 \x19s\xb2\x18\xd2\xbc\x0f\x80\
-dL\x82\xc3\x85\xbc\xce\xba\xb2\x0f\x80\xe4\xcc\xcebH\
-\xeb>\x00\xa2\xbcN\xe7u\xd6u}\x00$k\x16\x16\
-C\x1a\xf7\x01\x90\xbc9X\x0ci\xdb\x07@\xd4\xd7\xe9\
-lZ\xac\xe8\x83\xf3 \xb9\xb3\xb1\x18\xd2\xf2\xf8\xc1\x08\
-\x92;\x09\x0e\x17\xb2i\xb1\xa2\x0f\x804P\xa7\xb3\x18\
-R\xcf\x07@\xb2'\xc1\xa6E\xde\xe0P\xcd\x07@\xb2\
-'\xc1K\x80X\x0c\xa9\xe6\x03 \xf9\x93\xe0%@\xbc\
-\xc1\xa1\x96\x0f\x804Q\xa7\xb3\x18R\xcb\x07@\x0ad\
-f1\xa4Y\x1f\x00i\xa4N\xe7u\xd6u|\x00\xa4\
-D\x12\xbc\x04\x88\xc5\x90:>\x00R$\xf2\xc3\x85\x1b\
-@\xaa\xf8\x00H\x99:]v\xb8\xf0Z9YX\xc9\
-\x07@\xcaD\xf2\x12\xa0\xcb3zT\xf3\x01\x10\xedu\
-\xfa9\xc3\xa3\xa2\x0f\x80\x94\xaa\xd3\xaf\x9b<\xb8uU\
-}\x00Ds\x9d\x1e\xd8\x84U\xd9\x07\xe7A\xca\xe5\xd3\
-u\xfa\x06\x8f\xea\xe3\x07#H\xb9|\xf2p\xe1F\xe3\
-J\x83\x0f\x80\x94\xcb\xfe\x99\xc6\x15<t\xf8\x00\x88\xc2\
-:\x9d\xbe\xae\x1e\x1f\x00)\x98\x85\xc6Us>\x00R\
-2\x1fx\x09\xd0\x01\x0fU>\x00\xa2\xaaN\xa7\xaf\xab\
-\xcd\x07@\x8af\xa3\xaf\xdb\x98\x0f\x80\x14\xcd\xef\x0e\x17\
-\xd2\xd7\xd5\xe8\x03 :\xeat\xfa\xbaJ}\x00\xa4p\
-\x02}\xdd\xa6|\x00\xa4pF\xfa\xbaM\xf9\x00H\xe9\
-\xac\xf4u[\xf2\x01\x90\xbau:}]\xe5>\x00R\
-<3}\xdd\x86|\x00\xa4^\x9dN_W\xbf\x0f\xce\
-\x83T\xc8@_\xb7\x99\xf1\x83\x11\xa4F<}\xddf\
-|\x00\xa4F\x9dN\xe3\xaa\x19\x1f\x00!\xf8\x00\x08\xc1\
-\x07@\x08I\xee\x03 \x04\x1f\x00!\xf8\x00\x08!\xc9\
-}\x00\x84\xe0\x03 \x04\x1f\x00!$\xb9\x0f\x80\x10|\
-\x00\x84\xe0\x03 \x84$\xf7\x01\x10\x82\x0f\xce\x83\x10|\
-0\x82\x10\x92\xdc\x07@\x08>\x00B\xf0\x01\x10B\x92\
-\xfb\x00\x08\xc1\x07@\x08>\x00BHr\x1f\x00!\xf8\
-\x00\x08\xc1\x07@\x08I\xee\x03 \x04\x1f\x00!\xf8\x00\
-\x08\xc1\xc7_\x00!\xa4\xa0\x0f\x80\x10|p\x1e\x84\xe0\
-\x83\x11\x84\xe0\x03 \x84\x94\xf4\x01\x10\x82\x0f\x80\x10|\
-\x00\x84\xe0\x03 \x84\x94\xf4\x01\x10\x82\x0f\x80\x10|\x00\
-\x84\xe0\x03 \x84\x94\xf4\x01\x10\x82\x0f\x80\x10|\x00\x84\
-\xe0\x03 \x84\x94\xf4\x01\x10\x82\x0f\xce\x83\x10|0\x82\
-\x10|\x00\x84\x90\x92>\x00B\xf0\x01\x10\x82\x0f\x80\x10\
-|\x00\x84\x90\x92>\x00B\xf0\x01\x10\x82\x0f\x80\x10|\
-\x00\x84\xe0\xa3d\xfe\x07\xdagL\x80\x9f`\x0d\xd4\x00\
-\x00\x00\x00IEND\xaeB`\x82\
-\x00\x00\x02\xbb\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00\x80\x00\x00\x00v\x08\x03\x00\x00\x007+k\xfd\
-\x00\x00\x003PLTE\x00\x00\x00A\xcdRP\xca\
-NA\xcdRA\xcdRF\xccPH\xcbPB\xccQ\
-I\xcbPD\xccQE\xccQJ\xcbOE\xccQD\
-\xccQD\xccQC\xccQA\xcdRz\x18s\xcb\x00\
-\x00\x00\x10tRNS\x00\x186Oc\x9d\xab\xae\xb8\
-\xbd\xc9\xcd\xd6\xdf\xe9\xf0\xb8\x82#\xe9\x00\x00\x02'I\
-DATh\xde\xc5\xda[v\x830\x0c\x04PT\xd3\
-\x90\x07\xa5\xda\xffj\xfb\x91\xa4!`\x9f\x18i\xa4\xd1\
-\x06\xe6\xf2\x01#\xc0\xc3\x101E\x17\x19\x98ST\x97\
-\x22\x5c\x80\xea(d\x00Sp\x07\x10\x05\x0f\x00O\xf0\
-\x04\xe8$d\x00K\xf0\x02\x90\x04+\x00G\xb0\x06\xe8\
-U\xc8\x00\x86\xe0\x1d@\x10l\x00:\x0b\x19\x90^\x8e\
-;@\xb6`\x0fH\xae\xe7\x0a \xb7\x18\xaa\x80LA\
-\x1d\x90(h\x00\xf2\x04-\x00\xa4\x18\xa4|\x9eQ\x03\
-\x05\xdf\xea\x1a\xbf\xe0\xacd\x81\x17\xe0\xae&7\xc0+\
-\xf0\x03\x9c\x02\x00\xc0W\xcf\x08\x80\xab\x1c!\x00\x8f\x00\
-\x03p\x08@\x00\xfd\xb5.\x08(\x80\xb9\x9ap\x00\xa3\
-\x00\x08\xb0\x09\x90\x00S1@\x01:\xb1\x01\xda\xbf\x86\
-\xdc\x84\x09\x90Q\xb5\x10\x012j\x10`\xec\xcf\x8f\x00\
-t\xbe.\xdd\xf3\x03\x00\x9d} \x93\xc6\x00\x0e\xe6\xc3\
-\x01\xf3\xc1|4\xa0s/\x93\x8b\xc6\x00z\xf3\xaf\x1a\
-\x030\xe4C\x01\x93!\x1f\x09\xe8\xcd\xff\xd1\x18@o\
-\xfe\xa21\x00c>\x0c\xd0\xb7\x06I\xd9\xe6\xa3\x00\xe3\
-\x91\xc7\x7f\x0d\xf0u\xfe<sD\xfe\x13\xd03%\x22\
-\x1f\x018V\xbfx\xc0\xd1\xfaC\x03\x9c\xf9n\xc0\xec\
-\xcc\xf7\x02\x8e\xd7\xef\xee\x0a:\xee\xbf\x93\xb4\x00\x96\xfa\
-\xb3Li\x00\xb2\xf2[\x80)+\xbf\x01\xb0\xd5/\x0e\
-`\xad?\x14 3\xbf\x060\xd7/\x08\xe0\xa9\x1f\x04\
- 9\x7f\x07\xc8\xce\xdf\x00|\xf5\xeb\x07x\xeb\xcf\x0b\
-`\xe4\xaf\x013#\x7f\x05\xe8\xfd+q\xd1\x18@\xf7\
-_\x11\x8d\x00\xc8\xed\xd4\xfd\x09t\x89\x00\x1c\x19Y\xc8\
-\x00\xb0\xc0\x00@\xac!>\x00T`\x02 \x056\x00\
-P`\x04\xe0\x9e\x87V\x00L`\x06\xa0\x04v\x00H\
-\xe0\x00`\xf6\x12\x0f\x00\x22p\x01\x10\x02\x1f\x00\xf0v\
-\xe0\x04\xb8\xab\x09pj\xaf-\x18;N0!\x8ej\
-5\x05eH\x9aV1\xa4\x01Z\x82<@C\x90\x08\
-\xa8\x0b2\x01\xd5bH\x05\xd4\x04\xb9\x80\x8a \x19\xb0\
-\x17d\x03v\xd5\x94\x0e\xd8\x0a\xf2\x01\x1b\x01\x01\xf0^\
-\xcf\x0c\xc0[5q\x00+\x01\x09\xf0\x12\xb0\x00\xff\xc5\
-@\x03<\x05<\xc0C@\x04\xdc\x05L\xc0 \x13\x19\
-0\xc8\x14\x04\xf8\x03L-q\xaa\x9e\xb6\xb9\xda\x00\x00\
-\x00\x00IEND\xaeB`\x82\
-\x00\x00\x0a3\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x01\x90\x00\x00\x01&\x08\x03\x00\x00\x00{\xf26\x96\
-\x00\x00\x00BPLTE\x00\x00\x00A\xcdRA\xcd\
-RA\xcdRA\xcdRA\xcdRM\xd0]Y\xd3h\
-e\xd6rq\xda}|\xdd\x88\x88\xe0\x93\x94\xe3\x9e\xa0\
-\xe6\xa9\xac\xe9\xb3\xb8\xec\xbe\xc4\xef\xc9\xd0\xf3\xd4\xdb\xf6\
-\xdf\xe7\xf9\xe9\xf3\xfc\xf4\xff\xff\xffzo\xb3\xfe\x00\x00\
-\x00\x05tRNS\x00\x10`\x80\xcf\xea\xfd\xddd\x00\
-\x00\x09\x9bIDATx\xda\xed\xddQ\x82\xa4(\x0c\
-\x06\xe0\x99\xdd\x11EEE\xe1\xfeW\xdd\x87\x9e\xdd\xed\
-\xe9\xae\x12\x90\x80\x89\xfc9\x80V\xd5'\x90`\xb4~\
-\xfc\xb8\x14\x7fu\x88\x22\xf17<\x9e\x00\x02\x0f^ \
-\xf0\xe0\x05\x02\x0f^ \xf0\xe0\x05\x02\x0f^ \xf0\xe0\
-\x05\x02\x0f^ \xf0\xe0\x05\x02\x0f^ \xf0\xe0\x05\x02\
-\x0f^ \xf0\xe0\x05\x02\x0f^ \xf0\xe0\x05\x02\x0f^\
- \xf0\xe0\x05\x02\x0f^ \xf0\xe0\x05\x02\x0f^ \xf0\
-\xe0\x05\x02\x0f^ \xf0\xe0\x05\x02\x0f^ \xf0\xe0\x05\
-\x02\x0f^ \xf0\xe0\x05\x02\x0f^ \xf0\xe0\x05\x02\x0f\
-^ \xf0\xe0\x05\x02\x0f^ \xf0\xe0\x05\x02\x0f^ \
-\xf0\xe0\x05\x02\x0f^ \xf0\xe0\x05\x02\x0f^ \xf0\xe0\
-\x05\x02\x0f^ \xf0\xe0\x05\x02\x0f^ \xf0\xe0\x05\x02\
-\x0f^ \xf0\xe0\x05\x02\x0f^ \xf0\xe0\x05\x02\x0f^\
- \xf0\xe0\x05\x02\x0f^ <<\xb4\x1e\x8d1f\xb1\
-\x1f\xb1\x1ac\xcc\xa4u\xdf\x1e\xc8\xcd\x1eJ\x9b\xc5\xee\
-\xfe}8\xbb\x99qh\x07\xe4N\x0fm\xac\xf3\x91\xb1\
-/S\xdf\x02\xc8m\x1e\x83\xb1>5\x8euRO\x07\
-\xb9\xe7\xbc\xe3z\xf8\x8b\xb1=\xda\xe4\x16\x90~\xb9\xac\
-\xf1\xdbd\x04\x08\xe1\xba\xb1\xf9\xfc8\x8c\x02\x08IL\
-\x87\xa7\x09\xf7L\x92\xca z\xf7t\xf1H\x92\xaa \
-\xbd\xf5\xb4\xe1&\x80d\x84\xf1\xf4a3K\x13\xfb>\
-\xa6\x87\x83\x0c\xbb/\x11n\xce\xfaT'G6\xcf\x06\
-\x99\x9c/\x14\x9b\x02Hz\xac\xbe\x5c\xec\x03@R\xf7\
-\x0fw_2\xdc\x00\x10N\x1e9\xd9V\x93 \xc3\xe1\
-\x8b\xc7\x04\x90\xf8\xf1Q\xc1\xc3\xfb\x11 \x5c\xe6\xab\xac\
-u\xa4A\x90:\x1e\xde\xbb\x1e w\xe7\xbb_\xb2_\
-\x05\x90\x88z\xd0\xd7\x8b\x15 \xe1\x04\xcbU\x04\xb9\xb2\
-\xb0\xb7\x06\xb2\xd7\xf4\xf0N\x01\xa4\xfe\xfe\xee\xe9\xb6\x16\
-@N\xa3O\x9c\xb0\x9c]\x8d\x19\xf5\xef\x98\x8c\xb1{\
-\xe9I\xab-\x90\x94\xfbQ\xd6\xe8\x97\x13\xce0\xa5t\
-D\x1c\x0a \xefCG\x8f\x8c\xf5\xfc\xca\xee\xe7\xe8\x91\
-b\x00\xf2>\x22\xaf\xec=\xa6\xcf\xaa_\xe2\xa6\xbf\xd4\
-\xf2\xb0%\x90\xb8\x12\xc4\xea\xd8-\x18\xe3\x0a\x14#-\
-\x81\xc4\x0c\x90\xa4}\xf3>\xaa\xa1\xab\x07\xc8\xf5\x01\x92\
-z\xf7ut\xd4C\xa4!\x90\x88\x01\x92~\x13#f\
-\xeb\xb8\x07\xc8\xb5\x01rm\xc3|\xa5M\xb4\xda\x01\xb1\
-e<\x22D\x926P\x9a\x01\x19\xca5&\xac\x943\
-a3 \xc1_M_?vh\x1d\xd9\x01\xf2}\xf1\
-\x0d\xa5Cs\xc9\x83\x0f\x00I]\xd2m\xd6\xd1\xc7\xc0\
-\xd1\x17\x80$.\xe9.\xf39\x82@\x85x\x00\xe4k\
-M]p\xc2\x8a\x99\xb4F\x80\xfc\x193\xd9\x15\xfc&\
-\x0cU\xb5\xde\x08\xc8^\xa6\xcd0z\x88\x1c\x00\xf9\xf3\
-\xe7*=@\x82Cd\x00HB\x8eE\xf1hR`\
-\x88\x18\x80\xc4'A\x8e\xe4Q\xcd\x95\xa66l\x03\xc4\
-\x91\xf7\xb3%\xef\xcd\xbcBW\xfa{\x9c}N\x1d\x8c\
-^\x06\xc8@VG_O\x1c^%\xbe\xd1\xf7\xf8\xa3\
-\xc3\xc8\x001\xc5\x97\xf4pj\xbd\x00$\xb6L\x9f\x89\
-\xce\xd2'/\x22\xcd\x82\xb8\x1a3Vh\xceR\x00\x89\
-[B\x8eJ3\xa3\x06\xc8\xf5\xc9\xbd\x04\xbc\x01H\x5c\
-\x850V\x9a\x1a-@.\xcf\xedE\xeaO\x07\x90\x88\
-\xe27\xed\xf6j\xde\xdc\xd8\x03$\xe6k/\xd5\xce\xa4\
-\x01\x12\xb3\xb38V\x1b\x8b\x06 \x1f\xb1\x10v\xde\xe6\
-\xacV+@\x22\xeatW/\x9f\xb3\x00\xb9\x96\x8c\x16\
-[\xd5\x01rib/\xb7\xaa+\x80\x84\xbf5\xed{\
-\x0cUZ\x9a\xd5&\xc8X\xaa\x814yz\x9c\x00\x12\
-\xde\xf2\xab\x99@\x18\x80\x04\xb3^G|\xb25)\xef\
-m\x13\xc4\xd6K\xb2\x02\xc3\xd1\x02$\x08\xb2\x11\x9fl\
-J\xda6k\x13\xa4\xea\x17\xd0I\x0b\x16@\x8a\x7f\x81\
-\x01 \xa1\xe8kf\xbd\x01\xfe\xaf\xfbf\xc3\xf7\xf7\xbb\
-\x9f\xed\x86Y\x13\x0c\xcd\x1fD3\x02\xd1y\x1f\xf7\x19\
-\x9d\x8b\xba\xde^o\xd7\x05\x1e\x86\x07H\xf0n\x08\xf9\
-\xc7\xb7\x99\xfb4\xcf\x071\x8c@\x0c@\x02 \x8e\xfc\
-\xe3\xaf\x00!\xad\x9d\xcb\x9e\x0e ]\xa05\xa72\xc8\
-\x06\x90\xca[Y\xf9\x03\x12 \x00\xe1\x04B\xff\x155\
-@\x00\x22\x0bd\x07\x08/\x10\xcf\x08\xc4\x01\x84\x17\x88\
-\x07\x08@\x00\x02\x10\x80\x00\x04 \x00i\x03d$\xff\
-\xf8\x0a 9 \x13F\x08\xa6,\x80\x00\x04 \x00\x01\
-\x08@\x00\x02\x10\x80\x10\x83\x1c\x00\xc1\x1dC\x80\x00$\
-\x03d\x01\x08/\x10\xfa6\xa0\x19 \xbc@\xd0\x97\x15\
-\x0aN\xad\xa4+@\xd0l-\x0b\x04\x8f#0\x03\xc1\
-\x03;\xf5A\xf0H\x1b3\x90\xf3\xcd\xa5\x81\xfa\xe3\xef\
-x\xe83\x0b\x04\x8fEW\x07\xe1\xfc\xe2\x80&A8\
-\xbfZ\x03 \xcc^>\xd3&H\xd5\xbd\x93)\xf7d\
-\x00a\xb6/\xd0\x00\xc8R\xb3\x10Ys7\xfb\x1b\x00\
-9/\xd5U\xc5\xe1h\x00\xd2u\x9c^\x13;\x02$\
-\x9c\xf8\xcc\xa4\xe7R\xd9\xf8\x0d\x80\x9c\xe7\xbdKE|\
-\x05\x90\xae\xeb\x02\xef\x14\xab\xf82~\xd7\x01$\xbc\xd0\
-\xd2\xa6Yk\xb6}\x0b K\xbd\xfd\xde={vl\
-\x01d\xaa\xf7\xccN~\xfe\xd0\x02\xc8\xf9J\xbbV;\
-\x93\x06H\xccu{\x10\x9e\x88\xa0\x06m\x02d\xcf\xbd\
-IA\x92>\x1c\x1d@br\x1f\xcaE\xc4g\xbe\xdf\
-\xaf\x15\x90\xb9\xd2\x22B\xb1'\xa0\xabv\x22\xdf\x04r\
-~\x1b\x8f\xae7k!\xd85\xd3U\xdb\xfan\x02\x09\
-\xfc\xc1=\xd9\xdb\x03\x0e\x82\x0a\xb4\x0d\x90\xad\xca\x9cu\
->\x10#\x7f\xcd\xbe\x09\x90\xf3E\xc4\xa9\x1a3V\xec\
-\x8a\xdc\x04\xc8\xf9\xb5K\x95g\x1d$7^\x9a\x00\x09\
-,\x224\x7f\xa9>\xd2\xa4\x0e\x95j\xd8\x9bA\xce+\
-\x11\x9a\xdb\x86\x96\xa0\x0a\x09\xd42\xcf\x019\xbfzI\
-\xe6\x02M4-\xb6\x01r~k\x95d\x88\x9c\x0f\x90\
-\xf8f\x8a\xaa\xad\xe1\xb7\x81\x04\x12_\x82!\x12\x18 \
-\x1b\x09\xac~\x0e\xc8\xe4\x0b'Z;\xd5\xf1m\xb5\x8e\
-\x8c[ABsVn-2{\xa2\x19\xeb\x14\xc4<\
-\x07$\x94geNZ\x81B'e3`\xe1V\x88\
-\x14\x02\x09\xe4Yy[\xa9\xea\xa0K\x1aL\xd5gT\
-\xef\x03\xe9B\xbfY\xc62\xa2\x02\x0bHRE7q\
-K\xb3J\x81\x18_J$\xe8\x91td]\xf7\xdd,\
-\xf7\x81\xa8 \xc8\xc553\xec\x914\xd3\xf4\x9e\xd9\xe6\
-I)\x90\xe0\xb2\xee\xbd\xdf.\xe4Z\xc3A\x0c]\xb1\
-\x15\xf9^\x90>\x0c\xe2\x0fM?\x13\xa6\xa6\xd4{\x9d\
-\xbbi\xf7\x83\xc4\x0c\x11\xef\xd7\xa4&\x14\xbd{\xf2\x99\
-p+1\xaf\xb2\x04\x89\x19\x22\xde;\x13M\xa2m\xcc\
-\x01\x0f\xe21w\x987\xb9\x96\xd6Z+I qC\
-\xc4{\xbf\xc6L\x5cj\xda\xe3\x8e\x96:\xc9\xe8\x88\x8b\
-\xc6.\x1f\xffg\xbfYk\xad=\x8a\xeev\x15\x04\xe9\
-}l\x1c\x8b\x0ehl\xb1\x87J\xae\xae\x95\xcf\x08Y\
- 1+\xf0\xa7_\xd2\x8c/'/=-{\xfcQ\
-\x5czc\xe4\xd1\x0e\x88J\xfe\xae\xbb]\x8d1\x93\xd6\
-Z\x1bc\x8c\xb5.\xf1\x00\xa6\xdc\xccZ)\x09+\x09\
-\x12\xde\xd1\xa2\x0e[\xf9C\x1aa \xddV\xd7\xc3]\
-\xe9\xe4V-\x81(W\x15d\xac}\xd5\x88\x03\x89I\
-*\xe9\xe2\xe2\xcf3\xb5\x04\x92\x96i\xe5\xc5Z\x7f\x18\
-o\xf2@\xb2\x92\x98\xb4\x0cM\xd5\xff\x88V \x88\xda\
-\xb9{$T\xb0O\x00\xa9$\xb2\xab;F\xb1H\x90\
-*\x22Y\x1e\xd7\x87\xc8.\x12\xa4\x82\xc8\x96\xb9\xedz\
-9\xf5\x90\x09\xd2\xa9\xc2+\xfbr\xdb%#\x14\xa4l\
-\xf6\xeb\x08\x1e8\x19\x5cc \x9d.V\xb3\xef$\xcd\
-:Ck \x9d*\xb4\xafE\xb5\xae^\x1b#\x83\x5c\
-\x90\xae\x1b\xcb\x0c\x12\xaa{\x12\xc3q\xe3\xc9o\x01\xe9\
-T\x91\x95\xe4\xb8s\x0c\xcb\x06\xe9\xba\xbeD\xbaE\xb7\
-\xc3\xa7\x8f\xd6@\xca\x90\x10\xbe\xcffJ\xcc\x7fG\xf1\
- ]\xa7\xccA\x0cB\xba\x811\xac\x91K\x9d\xb3f\
-*\xd0\x8d]\x1f\xa4\xeb\xbaq\xa5]\xdf\x89\xaf\xd3\xc1\
-\xd8P[\xd0\x5c\xa2%\xeb>\x10j\x13G\xff\xeb\x0c\
-\xd3\xf7\x16\x0bg\xad1c\xe1'\x0f\xef\x02\x89\xb8\x10\
-k\xee\x9d\xbc_\xe7\xff\x8dZ\xcf\x8a\xdc\x08\xf2q!\
-.\x96S1r\x7f\xdc\x0c\xf2\x91y\xe9\xd9l\xf6x\
-;aO\xe1\xd4l\x07H\x91\x04Lk\xad\xf5\xf4\xd1\
-H\xab?u3\x87o{\x1b\x80T\x8d9\xb8\xae\xf7\
-\x00\xa9\x1a{\xd5b\x04 \xe1\xd5\xff\x8e>[\x80\x9c\
-\xc4\x12\xdcdT\x00\xa9\xba\xe0\xbb\xfb\x8a\x11\x80\xbc\x8a\
-p\xc7\xe7\x00\x90\xaaa\x9b(F\x04\x81\x84\xd7\xf5\x19\
- U\xc34P\x8c\xfc\xfa)\x08$\xfc\x88\xdc\xf6\x00\
-\x0fA \x11O\x9f\x8d\xf2=$\x81\x84\xd7u\xd9\xc5\
-\xc8\xaf\x9f?\x84\x81\x84\xbb\xa2\x8dx\x0fQ \x11-\
-\xa9\x83t\x0fY \xe1\xc7\xfc\xadt\x0fa \xfa\xa9\
-\xc5\xc8\x7f\x1e\xc2@\xc2\x0f1;%\xdbC\x1aH\xef\
-\x9eX\x8c|\xf2\x90\x06\x12\xbey(\xb0\xe3\xe1\xb3\x87\
-8\x90\xf0\xcdCq\xc5\xc8\x1f\x1e\xf2@\xf4\xd3\x8a\x91\
-?=\xe4\x81D<\xc5\xdc\x0b\xf6\x10\x08\xf2\xac\x9b\x87\
-_=\x04\x82\x84\xd6u\xab%{H\x049\xddd\x5c\
-E\xcfWBA\xde\xde<t\xb28^y\x88\x04y\
-\xd3\x14\xe4\x8c\xb0\x84\xf7\x95\x87L\x90W\xeb\xfa1\xcb\
-\xae?D\x83|o\x0a:&q\xdf\xe1\xb5\x87P\x90\
-/\xeb\xba\x15x\xef\xf6\x8d\x87T\x90^j\x9e\x1b\xf2\
-\x90\x0a\xf2\xff\xcd\xc3Ud\xf3\xcf[\x0f\xb1 \x1fM\
-AN&\xc7\x89\x87X\x90n\x14\x98\xe7Fx\xc8\x05\
-\xe9\xd6Yj\xd3\xcf\x99\x87`\x10\xb1q\xea\x01\x10f\
-\x1e\x00a\xe6\x01\x10f\x1e\x00a\xe6\x01\x10f\x1e\x00\
-a\xe6\x01\x10f\x1e\x00a\xe6\x01\x10f\x1e\x00a\xe6\
-\x01\x10f\x1e\x00a\xe6\x01\x10f\x1e\x00a\xe6\x01\x10\
-f\x1e\x00a\xe6\x01\x10f\x1e\x00a\xe6\x01\x10f\x1e\
-\x00a\xe6\x01\x10f\x1e\x00a\xe6\x01\x10f\x1e\x00a\
-\xe6\x01\x10f\x1e\x00a\xe6\x01\x10f\x1e\xff\x00/\xf5\
-\x9c\xae\x85\xeb4\xef\x00\x00\x00\x00IEND\xaeB\
-`\x82\
-\x00\x00\x10;\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x02X\x00\x00\x01\xb9\x08\x03\x00\x00\x00eH\xbaT\
-\x00\x00\x00?PLTE\x00\x00\x00A\xcdRA\xcd\
-RA\xcdRA\xcdRM\xd0]Y\xd3he\xd6r\
-q\xda}|\xdd\x88\x88\xe0\x93\x94\xe3\x9e\xa0\xe6\xa9\xac\
-\xe9\xb3\xb8\xec\xbe\xc4\xef\xc9\xd0\xf3\xd4\xdb\xf6\xdf\xe7\xf9\
-\xe9\xf3\xfc\xf4\xff\xff\xff=\xe2\xeb\x0e\x00\x00\x00\x04t\
-RNS\x00\x10\x9f\xcfR\xb7\x8c\x1e\x00\x00\x0f\xa7I\
-DATx\xda\xed\xdd\xd9b\xdb\xb8\x12E\xd1\xdcn\
-S\x9c\xc0\x99\xff\xff\xad7v\x86\xce`[*\x12\x07\
-(\x88\xfb<\xe6\xc5\x08\xb5\x04\x14\x8a \xf5\xe5K\xf4\
-\xfc\xf3B.\x9f/\xb8\x22e\xc0\xc2\x15Q\xc0\xc2\x15\
-Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15\
-Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15\
-Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15\
-Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15\
-Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15\
-Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15\
-Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15\
-Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15\
-Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15\
-Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15\
-Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15\
-Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15\
-Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15\
-Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15\
-Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15\
-Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15\
-Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15\
-Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15Q\xc0\xc2\x15\
-Q\xc0\xc2\x15Q\xc0z\x16W\xb7\xa6\xe9C\x18\xe6\xd7\
-l\xfb\xcflo\xff0\x86\x10\x9a\xa6\xe6CO\x07\xeb\
-\x9f\xf2A\xf5a\x9e\xf7\x073\xcf_\x85\xdd\xf8\xf0\xe5\
-\xb0\x8av\xd5\xf4\xe3\xc3\xa2~\xcf2\x85\xa6\x82\x80\x0e\
-V\xb1\xaen\xdd\xb8\xec'\xb3N=\x8b\xa3\x06\xd6?\
-\xa5\xa2Z\xf7H\xd9\xa6\x9e\x851:\xac\x12]\xd5\xc3\
-\xb2G\xce:\xb4h\x88\x0a\xab@U\xeb.\xc96b\
-\xeb\xb2\xb0nA\xa4\xea\xbb\xad\x81\x82\xeb\x8a\xb0\xdai\
-\x97g\xe9Pq-XU\xbf\xeeI\xb2\x05\x9a\x10\xd7\
-\x81U\x85mO\x97\x91]\xe25`\xa5e\x05\xad\xab\
-\xc0J\xce\xea5,\x88\xcf\x0e\xab]\xf7,\xd9(\xe3\
-\x9f\x19\xd6m\xde\xb3e\xa1\xf9\xf0\xb4\xb0\xc2\x9e5A\
-\xfb\xbf{x\x1c\x0d\xb0\xa2\xa6^\xf6\xcc\xd1NZ\xc0\
-\xca\x93~\xdb\xf3\xa7\x07\xd6\x93\xc1\xaa\xa6\xddE\xa6\x0a\
-X\xcf\x04+\xff2\xf8\xf3\xe4C\x0d\xac\xe7\x81\xd5n\
-\xbb\x9bl-\xb0\x9e\x05V\xb7\xbbJ\x07\xac\xe7\x805\
-\xec\xce2\x00\xeb\x19`\x8d\xbb\xbb\x8c\xc0*\x1f\x96C\
-W\x1aY\xc0\xc2\x95D\x16\xb0p%i\x95\x02+e\
-\xbb}w\x9b\x0eX\xe5\xc2\xeav\xc7i\x80U*\xac\
-\xda\xb3\xab}\xbb\x01\xabLX\xd5\xe6\x1a\xd6\xbeT\xc0\
-*\x12\xd6\xbc;\xcf\x08\xac\x12a\x85\xdd}Z`\x95\
-\x07\xab\xf1\xef*n\x99\x05\xac4\x05\xd6Z\x00\xac}\
-\x06Vi\xb0\x86\xbd\x88\xf4\xc0*\x0bVS\x86\xab\x98\
-\x8b!\xb0\xcaZ\x08\x97y\x0a!\xb4\xcd\x8f\x84\xb7\x17\
-\xde:\x5c\x0c\x81U\xca\x8ep\x1e\xfaO\xde+\xdat\
-a\x8e\xd1(k\x81U\x0e\xac\xdb\xf9\x87\x1e\xfa\x87.\
-\x7f\x84\x97L\xae\x15\xb0\x8a\x81un\xa52\xbe\x8d\xaf\
-\xee\xcf=\xa9\x11\x80U\x0a\xacS\x95\xfbt`m\xaa\
-\x873\x8b\xe2\x0dX\x85\xc0:>\x83l\xe1\xe8\xa7\xdc\
-\x1d_\x12G`\x95\x01\xab;\xce\xeaL\xbd\xd3,y\
-\xa7,`\xa9st\xee8\xfd\x12\xab\xa3\xb3\xd6\x0c\xac\
-\x12`\x1d\x9c\xb0\xe6\x08\xf3Fu\xb0\xcd\xd1\x00\xab\x00\
-X\x87\xa6\x8d-\xd2\xbd\x95c\xcf\xf2O\xc0\xf2\x0f\xeb\
-\xd0\x84\xb5D\xbb\xb3R\x8d\xb9\xaa,`\xf9\x9b\xb0\xc6\
-\xdc\xb2G`y\x87\xd5\xe6\x7f`\xa6\xde\xb2LY\xc0\
-\x92f\xce\xee\xea\x90\xac\x00,\xdf\xb0j\x07\xae\x8e\xc8\
-\xda*`\xb9\x865zpuDV\x07,\xcf\xb0*\
-\x1f\xae\x0e\xcc\x9c\x0b\xb0<\xc32?R?\xa8Fb\
-\xde\x1b\xd6\xc0r\x0c\xcb\xdak\x98uC\x19Sw\x1c\
-\x80\xe5\xa7t\xdf\x84?qS\x19{\xf0\x1b\xb0\xfc\xc2\
-\xb2\xce\x12\xad'\xe5\x1d\xb0\xdc\xc2\xda\x12\xaf>\x9f\xc7\
-xGz\x02\x96WX\xad\x9f\x85\xf0m14V|\
-\x15\xb0\x9c\xc2\x1a]t\x1a\x0eC\xef\x80\xe5\x14\x96m\
-%\x5c\xf5\x03\x9aS\xae\x85\xc0r2A\xb4\xfa\x115\
-)\xd7B`\xf9X\x09\x97\x14C\x9a\x13\xae\x85\xc0\xf2\
-\xb1\x12&\xf9-\xdd&\xe1Z\x08,\x17\x1f\xe2\x9af\
-P\xa6)k\x03\x96GX\x83\xbf\x09\xcbz\xcb\xb0\x01\
-\x96CX\xab\xa7\x1e\xd6\xb1Q\x0d\xc0\xf2\x07\xcb\xf6\x22\
-\x901\xd5\xb0B\xb2\x0d\x05\xb0<,:\xb5O\xefw\
-\x8e\xbe7\x9f\xe5\xe1?\xd27\xf6\xdc\xae\x0bkr\xd7\
-k8P\xbew\x91&\xa5\xe8\x09\xd7\x85ej6\xf4\
-Ng\xd2\x11X\xde`\xd9\x0e\xa9T\xe9\x06f:-\
-\xbd\x02\xcb\x1b,\xd3\xa1\xe4)\xe5\xc8\xa6xE\x16\xb0\
-\x9c\x97X]\xca\x91u\xf1F\x06,\xe7%V\xd2=\
-\x8ei-\x1c\x80\xe5\x0b\x96\xa9\xc4Z\xd2\x8em\x8e6\
-4`\xf9\xeeb%\xbeJ\xa6\xf2\x0fX\xbe`\x99\x8e\
-\xcc\xd4\x8eg\xd3\x06X\xae`Y\x9e\xb5\xdaR\x0f\xce\
-R\xff\xf5\xc0r\x05\xcbm\xb3\xc1\xbac\x1d\x81\xe5\x09\
-\x96\xe9,V\x9fzt}\xac\xea\x1dX\xae\xdb\xa3u\
-\xea\xd1\xd5\xb1\xaaw`y\xae\xdd\xb7\xf4\xc3\xdb\x22U\
-\xef\xc0J\x9d\xd9s\x89e\x1b^\x0f,G\xb0\x9c_\
-#\xcbi\xbf\x01X~`\xc5\xeb\x14\xe5\xdf[\xcc\xc0\
-\xf2\x03\xcb\xf4\xa8j\x95~|U\xa4\x12\x10X\x8e\x97\
-\x9a5\xc7\x00\xd78\xf0\x81\xe5\xb8\x039\xe5\x18\xe0\x1c\
-g\xa9\x06\x96\xe3\xcf-x\x9fR;`\xb9\x81\xe5\xbc\
-v\xb7\x15\x81\x01X^`\x99\x8e\xd2ey\x90\xa9\x8e\
-\xb3V\x03\xcb\xefn~w?\xa7\xce\xc0\xf2\x02\xab\x8b\
-\xf3\xb1)\xb3D\xa1\x0f,\xbf\xa5\xf1\x98g\x88\x96\xed\
-E\x05,'\xb0&\xffW\xc8b\xbf\x01\x96\x13X\x96\
-\xe9\xa0\xcd3\xc4\x1eX\x05\xc2\x8au*\xc5\xc9\xfe\x22\
-\x00\xcb\x09,\xe7w\x0a\xad\xfd\x06`9\x81ezS\
-P\x01=\xdc\x19X>`Y\x96\x99%\xd7\xc5\xd9\x80\
-U\x1c\xac6\xcal\xe0g\x83\xb1\x02\xcb\x07\xacX\xe7\
-3\xdd\xec\x5c\x81U\x1e\xacl\x17(\x00\xab8X\x96\
-Gt\xfa\x12`}\xf8|Z\xf8$\x8f_\x05\xdeA\
-*Xe\xb2\xbd1\xb8W\x0f\xb2\xf1\x7f\x0d\x80\x95y\
-\xeb\x0a,\x1f\xb0,\x8d\xf7\xaa\x04X\x01X.`\x95\
-\xd0\x1f5uq\x81\x05,\xc9(\x81\xe5\x02\x96e.\
-X\x8a\x805\x02\xcb\x03\xacX\x8f\x19\xfb\xa9\x04g`\
-\x01K\xb1w\x05Vq\xb0&`\x01\xeb\xd1t\xea\xb2\
-89\xac\x15X\x1e`\x852`M\xe2\xbd+\xb0.\
-\x0a+\x00\x0bX\xc0\x02\x96\xed\x13k\x81\x05\xacGc\
-95\xd3\x94\x01\xab\x02\x96\x03X\xf3\xf3\xc1j\x80\x05\
-\xacG\xd3\x02\x0bX\x8a4\xc0\x02\x16\xb0\x80\x05,`\
-9\x80\xf5\x02,`\x01\x0bXYa-\xc0\x02\x96\x22\
-;\xb0\x80\x05,\xd9\x9d'`\x01Kr\xaf\x1cX\xc0\
-\x02\x16\xb0\x80\x05,\xe7\xb0j`\x01+\xf78\x81\x05\
-,`\x01\x8b\xa5\x10X\x14\xef\xc0\x02\x16\xb0\x80U\x08\
-\xac\x1eX\xc0R\xc0\xe2^!\xb0\x80\xf5\xb4\xb08\x8f\
-\x05,`\x01\xeb9a\xdd\x80\x05,\x05,\x1e\xa6\x00\
-\x16\xb0\x80\x05,`\x01\x0bX\xc0z*XQ~\xa5\
-\x09X\x09\xf3\x84\xaf1z\x01\x96\x03X\x96O\xac\x03\
-\x16\xb0\x14\x9f\x18\xaf\x8a\x04\x16\xb0\x80\x05\xac\x07\xc2\xeb\
-\xb8K\x83\xf5|? \xb0\x00\xcb\x03,~K\x07X\
-\xc0\x02\x16\xb0\x22\x87\x9f\x95+\x0d\x96\xe5\x870\xd7|\
-W\xc70\xca\x01X\x1e`\xf1\xd3\xbd\xc0\xba0\xac\x0a\
-X\xc5\xc12T/\xf9\x8e\x90\xaa\x9f\xfe\x02V\xd6\xfd\
-V\xbe\x8b\xaa>5\x03\xac\x8b\xc2\xea\x80U\x1c\xacQ\
-\xbd\xca\xc4HP\xaf\xd7\xc0\xca\xfa\x99\x85\x12`\xbd\x00\
-\xab8Xc\xae\x8b3\x03\xab8X\x96\x1fl\x9b\x0b\
-\x80\xb5\x00\xcb\x07,\xcb\x86k\xc9uq\xd4wt\x80\
-\x15?\x96{:\xd9:\xa4\x86!N\xc0\xf2\x01\xcb\xd4\
-z\xaf\xf2\x0c\xb1\x96o0\x80\x95u\x99\xc9uU\xe5\
-\x8dw`e\xdeqezN\xa7\x97\xdb\x07V\xfcL\
-\xfe\x1bY\x01X\x05\xc2\x0a\xf2\xca\xd8\x7f\x1b\x0bX\x82\
-t\xfe\xfb\x0d\x86_\xeb\xdc\x80\xe5\x05V\xe3\xbf\xdf\xa0\
-\xef\xe1\x02+~,\x87\xe8\x0e\xbdp#i\xb7a\x02\
-\x96\x17X\xa6FV\x9bc\x80\xad~{\x01\xac\xcc\xa5\
-q\x96ma\xd0\xcb\x07V\xe6~\xc3\xec]~\x03,\
-7\xb0,\x13\xc2\x96c\x80\xab~w\x01\xac\xcc%L\
-\x8e\xe7),\xbb\x8b\x15X~`\xd5\xce\xab\xf7\x14\x0f\
-k\x03+\xf7\xb6pH?\xbc\x14\x87\xa7\x81\x95\xbb8\
-\x9e}\x0f\xaf\x05\x96#X\x96\x07u2\xf4\xde-\xe7\
-zj`9\x82e9\x95\x92\xfe\xc2\xd6)\xd8\x03+\
-wu\x9c\xbeE\xda\xa7X\xa8\x81\x95\xbdzO~\xc0\
-aJ\xb1\xb5\x00\x96$\x8bEV\xeas\xef\x96\x12\xab\
-\x03\x96+X\x83\xe3N\x96i\x9d\xae\x81\xe5\x0a\x96\xe5\
-\xac_\xea\xc7\xa1-\xe8\xb7\x04|\x03\xb0\x1e\x8f\xe9\xd9\
-\xc2\xc4\xb7\x0b-\xcb\xf4\x04,_\xb0L\xb7y\xd3\xae\
-\x85\xb74;V`\xe5\xdfy\xa5]\x0b\x13\xf5\xd8\x80\
-\xe5\xe0\xe3K\xba\x16\x9a6\xac\xc7\xffL\x05,IL\
-\xdd\xed\x94k\xa1i%<s\x1f\x13X\x0e\x8a\xac\x84\
-O\x17ZN6\x9cz\xe1\xa0\xe7\xe3\x1d%\xc32\xdd\
-\x87Nx\xdaoM\xd2\xc5\xb2\xc0\x9a\x81%\xebd\xa5\
-[\x0e\xdad\xb5\x1f\xb041=\x5c\x98\xee\xb7O\xd2\
-\xedV\x81\xe5a\xf7\x95\xea\xad3\xb7t\x83\xf2\xfd8\
-I\xc1\xb0\x82\xc7)\xcbV\xf9\x9d\xba;\xbe&\xe8i\
-\x5c\x12\x96\xad\xe1\x90f\xca\xb2MX\xe7\xf6\xaa3\xb0\
-<\xec\xbf\xd2LY\xb6\x09\xabO\x04\xab\x01\x96)\x83\
-\xbb)\xcb6a\x9d\xec\x81\x00\xcb\xc9Z\xb8\xe9\xcf\xfb\
-\x99\xb6\x84gO\xb6\x8e\x89f\xc6\xeb\xc12\xae\x85\xfa\
-\x0et\x93t\x0a}|\xf3\x12\x80%]\x0b\xd5KB\
-e\x84^\xa5\x825\x03K\xba\x16\xeek\xe5\xc9\xf9\xd9\
-\xb3<\xbd\xb7V\xcb\xf3\xc02\xf6H\xc5\xf7\xa2[\xe3\
-`\xce\x9e\xb8h\x92\xcd\x8d\xd7\x83\xd5\x1b?Ke\x19\
-[o{\xda\xf6G\x93\xce\xf0\xe5`UVX\xba\x9e\
-C\xb5\xa46^9\xda\xb6<\x1b,cC\xf2\xecA\
-\x95\x98\xae\x22,O\x8e\x1f\xd9-\x1eVc\x86\xb5\xd5\
->\x5cE8\x86o\xd8\x84\xde\x80\xa5me\xbd\xcaj\
-=\xb8\x8a\xf1Q\xcf.j\xcb'\x85\xd5\xed{\xfe:\
-\xebfw\x15c\x7f:\xecO\xdap\xf0\x00\xebe;\
- +\xf2\xd3`\xcd\x811\xc4\xe8\xd5\x86\xfdI\xa7,\
-\x17\xb0\xc2\x01X\xfbr\xcb<\x82(\xbd\xf0&{i\
-\xf9\xcc\xb0\xaa#S\xd6\xbeE\xfb\x06\xd7\xcb\x91\xbf\x1f\
-\xe5\xe6R\xbd?\xa9,\x17\xb0\x8eMY_\xe7\x8c(\
-\x9fmu\xec\xafG\xbayg\xfb.5\xc0J0e\
-\xbdVZ\xe7\xd7\xc3n=\xf6\xa7#\xad\xc4\xb3q\xc3\
-p\x03V\x82)\xeb<\xad\xa3\xac\xa2m\x1e\xcc\xed\xe1\
-\xb9\xbb\xff?n\xdeR\x01\xeb\xf8\x94\xf5\xfa%>\xdc\
-\xd4\xba\x85\xa3\xac\xe2\x9d8\xec\x0f\xfc\xf1u\x0a]\xf3\
-3\xe1-\xd3\xfc\x9a\xc5\xcd\xa1S'\xb0NLY\xaf\
-\x17z80mU\xddt\xe2OF;w\xd7\xec\xb2\
-\x00\xeb\xc5~\xc0\xeeo[\xa6\xcbx;\xa5*\xea\x8d\
-;`i\xd3\x9d\xbe\x8e\xdb\x14\x1e*+\xean\x5c\x1d\
-}f\xb3\x0cV\x0f\xacx\x17\xf8\xad\xfc\xa8>\xaci\
-\xc3\x18\xe5\xcf\xc4<\xc2\x12d\xb0\x02\xb0\xcc\xad\xc2\xbb\
-\xb3\xd7\xd7B6\xfc\x92\xe9\x8f\xba\xf6\xa4\xde\x98\xfb\xad\
-\x06X\x9e\xeb\xf7\xa4\x89[\xbc\x00\xcby\xfd\x9e,\x91\
-?\xb0I5\xce\x01X\xf2\x9dw\xcc\xc4>\xca\xd9\xa9\
-\x06:\x03\xab\xa4\xc5p\x8b}S\xe5\x06,y\x96\xcb\
-\x15X\xca\xff5\xb0\xfe\xfb\xf2n\xee]\x09\x9aC\x1d\
-\xb0\xe4i\xbd\xbbR\xfc\x8cA\xa5Z\xb4\x81UL\x99\
-\xa5\x99\x04F\xd1h\x81\x95\xe0\x22\xc7\xd9\x10jN\xa2\
-4\xc0J\xd0\xcdZ.\xe7Jv\xbf\x10Xe\xc8\x92\
-\xb9RMY\x15\xb0J\x90\xb5\x08?'\xcd\x94\xd5\x00\
-\xab\x00YJW\xa2)\x0bX\x05\xc8Z\xb4\xeb\xca\x04\
-\xack\xcaR\xff\x0c\xa7\xa45\x0c\xac\xbfe9\xeb:\
-\xe8O\xa0(\xda\xef=\xb0|wJ\xb7\x14o\xd3\x1b\
-K\xfc:\x14\x08\xeb\xa5us\xdfpI\xf2d\xbb`\
-\xf9\x07\xd6\xbb\xa9\x9d\x14ZC\xa2vP|Y\xc0\xfa\
- \xc3U\x96A\x91\xac\x01X\x1f\xb5w\xf2\x9fVN\
-\xf9\xad\x8f-k\x06\xd6\x87\x97:\xff\xa4\x95\xf2-\x1c\
-\xd5\x04\xacd\x95\xd6\x9c\x19V\xdaO'\x00+Y\xba\
-\xcc\xeba\xda7\xf7\xc7\xdc\xb2\x00\xeb\xde\xd78k\xe7\
-aK|H\xa0\x8f\xf6\xbf\xdd\x80u\xaf\xf6\xc8Jk\
-(\xf6\x7f\x0b\xac\xfb\x17;\xe7\x82\xd8\xa4\xff\x22\xad\xc0\
-J\xd7\x8a\xcfV\xc6\xe7\xf8\xb5\x91\x93\xefY\xda\x97\xb1\
-o8\xe8\xf7`nC\xa6\x151\xe4\x99\xa4\x8f\xd9Z\
-\xe7\xd0\xe6\x7f\xbdrQ\xb0^\xa7\xad1\x87\xad-\xd7\
-+e\x9b`\x99\xa6\xe7)\xb4^\xde\xab\x5c\x1a\xacL\
-\xb6rn\xdc\xeb.\xdcy\x07\xd3:\xbf\xbe\x15\xcc\xd7\
-\xfb\x94\x0b\x84\xf5\xfaE\x1eR\xdf\xa0\xce\xfe3\x94\xd5\
-\xdb[l\xbf\xbd\xc2\xf6G\xc6\x10\xfa\xcc/G~2\
-X\xaf\x17\xbaM\x8ak\xad^\xc8%`}\xfb\x16\x87\
-)U\x17b\xc0\xcau`}_\x17\xfb0\x1by-\
-\x83\xbduQ\x83\xe5b\xb0\xbe\xb7\x22\x9a.\x0c\xf3\xbc\
-\xdd\xdd\x8b\x8fo\xefV\xae\x8bhf\x01\xcb\x17\xb1\xaf\
-\xe9\xc3\x1f\xf9Z\xe56\xbfN:\xf6\xf38=Z\xae\
-\x0d\xeb\xc1\xfal+\xa6\x99\x05\xac\xa2b\x7f\xdej\x82\
-\x0b\xb0\x1e\xc8\x5c^3\x0bXE\xd4b4\xb3\x80%\
-I\xa0\x99\x05,I\xfd\xbe\xd2\xcc\x02\x96\x22mQ7\
-\xa3\x81\xf5\xcc\xf5;\xcd,`=R\xbf\xdb\x9bY\xd4\
-\xef\xc0\x92\xd4\xef4\xb3\x80\xf5H\xec\xf5{\x03\x1a`\
-\xddOC3\x0bX\x92\xd8\x1fX\x08\xa8\xb9\x9f\x7f/\
-\x0f\xeb\xc0\xcb?if\xddw\xf5\xbf\xcb\xc3z\xe9i\
-fI\x5c]\x1e\xd6\x81\x9f\x0b\xec\xa0s\xdf\x15\xb0\xec\
-\xf5;\xcd\xac\x07\x5c\x01\xeb\xc0\xfb\x8aG.\xda]W\
-\xc0:p\x98\x94f\xd6}W\xc0:R\xbf\xaf\x5c\xb4\
-{\xae\x80\xf5r\xe4f4\xcd\xac{\xae\x80\xf5r\xe4\
-a\xb0\x9d'+\xee\xb8\x02\xd6k\x06\x9aY\xb1]\x01\
-\xeb`\xfdN3\xebsW\xc0zKG3+\xb2+\
-`\x1d\xad\xdfy\xb2\xe2SW\xc0\xfa\x16\xfb\xc3`4\
-\xb3>u\x05\xac\xef\xb1\x1f&\xe55!\x9f\xb9\x02\xd6\
-\x8f\xfa}\xa5\x99\x15\xd3\x15\xb0~\xc4\xfe0\x18\xaf\x09\
-\xf9\xc4\x15\xb0N\xd4\xef4\xb3>v\x05\xac\xff\xeaw\
-{3\x8b\xd7\x84|\xe8\x0aXg\xeaw\x9aY\x1f\xba\
-\x02\xd6/YifEs\x05\xac_b?L\xca\xf3\
-\xab\x1f\xb9\x02\xd6\xaf1>\x0c6\xb2-\xfc\xd0\x15\xb0\
-\x8e\xd6\xef\xdb\x00\xabO\x5c\x01\xeb\xb7<|\x98t\x0b\
-\xd4\xed\x9f\xba\x02\xd6\xefy\xeca\xb0\xb5\x83\xd5\x1dW\
-\xc0\xb2\xd7\xef+g\xb1\xee\xbb\x02\xd6\x1f\xb9\xfb0\xd8\
-\xcc\xa9\x86G\x5c\x01\xeb\x8f\xdc9L:\xc1\xea1W\
-\xc0\xb2\xd4\xef\xf4\x17\x1ev\x05\xac\xbf2\xd3_\x88\xe0\
-\x0aX\x7f\xa5\xa6\xbf\x10\xc1\x15\xb0\xfe\xce@\x7f\xe1\xbc\
-+`=P\xbf\xd3_\xb0\xbb\x02\xd6;\xe9\xe8/\x9c\
-v\x05\xac;\xf5;\xfd\x85c\xae\x80\xf5^n\xf4\x17\
-\xce\xba\x02\xd6\xbb\x09\xf4\x17N\xba\x02\xd6\xfb\xf5\xfbJ\
-\x7f\xe1\x9c+`\xbd\x9f\x96\xfe\xc29W\xc0\x22\x12W\
-\xc0\x22\x12W\xc0\x22\x12W\xc0\x22\x12W\xc0\x22\x12W\
-\xc0\x22\x12W\xc0\x22\x12W\xc0\x22\x12W\xc0\x22\x12W\
-\xc0\x22\x12W\xc0\x22\x12W\xc0\x22\x12W\xc0\x22\x12W\
-\xc0\x22\x12W\xc0\x22\x12W\xc0\x22\x12W\xc0\x22\x12W\
-\xc0\x22\x12W\xc0\x22\x12W\xc0\x22\x12W\xc0\x22\x12W\
-\xc0\x22\x12W\xc0\x22\x12W\xc0\x22\x12W\xc0\x22\x12W\
-\xc0\x22\x12W\xc0\x22\x12W\xc0\x22\x12W\xc0\x22\x12W\
-\xc0\x22\x12W\xc0\x22\x12W\xc0\x22\x12W\xc0\x22\x12W\
-\xc0\x22\x12W\xc0\x22\x12W\xc0\x22\x12W\xc0\x22\x12W\
-\xc0\x22\x12W\xc0\x22\x12W\xc0\x22\x12W\xc0\x22\x12W\
-\xc0\x22\x12W\xff\x07\xd4\xfa\xa4\xe6\x83\xa4\x94\xc0\x00\x00\
-\x00\x00IEND\xaeB`\x82\
-\x00\x00\x01\x0a\
-[\
-Icon Theme]\x0aName\
-=Gallery\x0aComment\
-=Qt Quick Contro\
-ls 2 Gallery Exa\
-mple Icon Theme\x0a\
-\x0aDirectories=20x\
-20,20x20@2,20x20\
-@3,20x20@4\x0a\x0a[20x\
-20]\x0aSize=20\x0aType\
-=Fixed\x0a\x0a[20x20@2\
-]\x0aSize=20\x0aScale=\
-2\x0aType=Fixed\x0a\x0a[2\
-0x20@3]\x0aSize=20\x0a\
-Scale=3\x0aType=Fix\
-ed\x0a\x0a[20x20@4]\x0aSi\
-ze=20\x0aScale=4\x0aTy\
-pe=Fixed\x0a\
-\x00\x00\x00\x83\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00P\x00\x00\x00P\x02\x03\x00\x00\x00\xf3\x7f\x1a>\
-\x00\x00\x00\x09PLTE\x00\x00\x00\xff\xff\xff\x00\x00\
-\x00s\xc6\x83q\x00\x00\x00\x02tRNS\x00\x00v\
-\x93\xcd8\x00\x00\x00'IDAT8\xcbc\x08\xc5\
-\x02\x18F\x8a\xe0*\x0c08\x05\x190\xc0\xa8 %\
-\x82\xa3\xf1>\x1a\xef\x839\xdeGn\x99\x0c\x00\xaa\xfe\
-\xe3\x80<\x1b\xa3\xfb\x00\x00\x00\x00IEND\xaeB\
-`\x82\
-\x00\x00\x00\xdf\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00P\x00\x00\x00P\x04\x03\x00\x00\x00|?\xef\x9e\
-\x00\x00\x00\x18PLTE\x00\x00\x00\xff\xff\xff\x22\x1f\
-\x1f\x22\x1f\x1f\x22\x1f\x1f\x22\x1f\x1f\x22\x1f\x1f\x22\x1f\x1f\
-G\xb0\x1c\xf2\x00\x00\x00\x07tRNS\x00\x00 `\
-\xbf\xcf\xef\x1dV\xbf\x1a\x00\x00\x00oIDATH\
-\xc7c\x10$\x120\x0c\x22\x85\x0c\x0c&\xe5\xe5\xce\x0c\
-\x0c\x84\x15\xaa\x96\x03A\x10a\x85L\xe9 \x85e\x0a\
-\x04\x15\xb2\x96\x83A\x00A\x85\xe6\x10\x85\xc5\x04\x15\xba\
-C\x14\x96\x10TX\x0e\x05\x83Y!\xd1\x9e!:x\
-\x88\x0ep\xa2\xa3\x90\xe8DA|2\x83\x82Q\x85#\
-A\xe1h\xd93Z\xf6\x8c\x96=\xa3\x0aG\xcb\x9e\xd1\
-\xb2gd\x97=\x83\xb0\xaf\x00\x00G\x10>\xf2\xcfQ\
-\xf1\x00\x00\x00\x00\x00IEND\xaeB`\x82\
-\x00\x00\x00\xf6\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00P\x00\x00\x00P\x04\x03\x00\x00\x00|?\xef\x9e\
-\x00\x00\x00\x1bPLTE\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x94Q\xe2 \x00\x00\x00\x09tRNS\x00\
-1267\xe8\xe9\xeb\xfa\x91\xc7O\xc2\x00\x00\x00\x81\
-IDATH\xc7\xed\xd6\xb1\x0d\x800\x0cDQ\x93\
-\xcc\x90\x15R#Q\xd0\xb2\x05l\x00=\x14\xd9 7\
-6#\xf0\x0b\x22\x82d\xd7\xa7gW\xd6\x99\xfd{&\
-\x98\x0b\xfb\xc2\x82Y\x17\xca\xc5\xa2:2P\x88\x0c\x87\
-\xa4\xba0\x90\xec\x0e\x87$\x9d\xcf\xe0\xfc6\x98\x1dt\
-\xd0\xc1\x9e\xc1X\xbe\x02\x87M\xf0#&\xc1\x8f\x88w\
-s\xb2\xc1\x95N:\xe9d{\x92\xd6\x99fW\xa2^\
-\x98\xe0\xc7\xe2E\xd3\x12\x03\xcd\x86\x95\x81\xbc^w3\
-7\xa7\xd5\xc3\xb4x\xa1\x14\xf6\x00\x00\x00\x00IEN\
-D\xaeB`\x82\
-\x00\x00\x00{\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00\x14\x00\x00\x00\x14\x08\x06\x00\x00\x00\x8d\x89\x1d\x0d\
-\x00\x00\x00BIDATx\xda\xec\x94\xc1\x0d\x000\
-\x08\x02\x8f\xc6\xfdW\xc6\x1d\x1a|)\x03\x10\xf0\x0c\xb2\
-MR\x8f\xb0\xe2\x86\x05 )\xd2\xdb\xb6f\x12\x02\xda\
-\x03e\xec\x86\xa9\xef>\xcaG\xf9\xcbq\xdf\xc06\x00\
-\x00\x00\xff\xff\x03\x00\xf7\x83\x0c-\xe7\xf9\xf9<\x00\x00\
-\x00\x00IEND\xaeB`\x82\
-\x00\x00\x00{\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00\x14\x00\x00\x00\x14\x02\x03\x00\x00\x00\xf0\xe7\xf5\x9e\
-\x00\x00\x00\x0cPLTE\x00\x00\x00\xff\xff\xff\x22\x1f\
-\x1f\x22\x1f\x1f\x13\xee\x05I\x00\x00\x00\x03tRNS\
-\x00\x00\x80\x17\xceG\xfe\x00\x00\x00\x1bIDAT\x08\
-[c\x08\x05\x01\x86\xd0\xd0}`\xf2?\x12\x09\x11\xc1\
-D\x94\xab\x04\x02\x00\xd4P%\xa9\xa8Z\xf7\x1d\x00\x00\
-\x00\x00IEND\xaeB`\x82\
-\x00\x00\x00\x92\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00\x14\x00\x00\x00\x14\x08\x06\x00\x00\x00\x8d\x89\x1d\x0d\
-\x00\x00\x00YIDAT8\x8d\xed\xd4\xb1\x09\x80@\
-\x0c\x05\xd0\x87\x16\x8e\xe4\xa6\xda\x0a\xeeegw\x13X\
-\xd9Z\x08\xe2%bs\xbf\xcfKB $\xa7\xaf\xac\
-\x99P\xb0g\x0c\xb0\xe2\xc0\x86!\x0b+\x18\xa3\xd8\xd2\
-\xb0\x7f\xb1\xeakv\x91\xceo\x92\xbarC\xbfE\xd3\
-\x9e\xc3\x1d\x1a~_Wt\x964\xe1cN\x85\xa7,\
-\x143\xcaZ\x14\x00\x00\x00\x00IEND\xaeB`\
-\x82\
-\x00\x00\x00~\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00(\x00\x00\x00(\x02\x03\x00\x00\x00\xf1\x90P\xfe\
-\x00\x00\x00\x09PLTE\x00\x00\x00\xff\xff\xff\x00\x00\
-\x00s\xc6\x83q\x00\x00\x00\x02tRNS\x00\x00v\
-\x93\xcd8\x00\x00\x00\x22IDAT\x18\x95c\x08\x85\
-\x03\x062\x99Q\xab\xa0`)af\x00\x03\x14\xb0R\
-\x979\xd4\xdc@q\xa8\x03\x00\xea\x17x\xdd\x86\xef\x87\
-\xad\x00\x00\x00\x00IEND\xaeB`\x82\
-\x00\x00\x00\x9e\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00(\x00\x00\x00(\x04\x03\x00\x00\x00~\xd0\xa5^\
-\x00\x00\x00\x0fPLTE\x00\x00\x00\xff\xff\xff\x22\x1f\
-\x1f\x22\x1f\x1f\x22\x1f\x1f\xc1T\xc5\x91\x00\x00\x00\x04t\
-RNS\x00\x00P\xdf\x1fD\xf4\x8b\x00\x00\x00:I\
-DAT(\xcfc\x10\xc4\x02\x18\xf0\x0a2\x998+\
-`\x08\xaa\xb8\xb88a\x08\x9a\xb8\xb88c\x08\xba\x00\
-\x01q\x82X\xb5c\xb5\x08\xab\x93\x18\x80`\xe0\x04G\
-Ci8\x85\x12\xc1\xdc\x01\x00\xcb~A\x15\x05\x8a+\
-\xbc\x00\x00\x00\x00IEND\xaeB`\x82\
-\x00\x00\x00\xb8\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00(\x00\x00\x00(\x04\x03\x00\x00\x00~\xd0\xa5^\
-\x00\x00\x00\x18PLTE\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-V7\x1c*\x00\x00\x00\x08tRNS\x00\x0b\x0e\x90\
-\xbc\xbd\xc2\xfa`jr\x94\x00\x00\x00GIDAT\
-(\xcfc` \x0f(+`\x8a1\xa5'a\x0a\x8a\
-\x96\x97a(e\x0c\xc7\x22\xa8V^\x9eD\x94B\xd1\
-\xe1\xa4\x10\x9b\xaf\x99\xd2\xb1\x85\x99;\x16A\xac\xdaq\
-(\x15\x19\x9eJI\x0a\x01,\x82X\x13-\xd6\xe4\x8d\
-\x17\x00\x00\xbe(.\x06\xf5\xa2\x90\xab\x00\x00\x00\x00I\
-END\xaeB`\x82\
-\x00\x00\x00\x82\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00<\x00\x00\x00<\x02\x03\x00\x00\x00G\x921\xe1\
-\x00\x00\x00\x09PLTE\x00\x00\x00\xff\xff\xff\x00\x00\
-\x00s\xc6\x83q\x00\x00\x00\x02tRNS\x00\x00v\
-\x93\xcd8\x00\x00\x00&IDAT(\xcfc\x08E\
-\x05\x0c\x03\xcd\x0f[\x85\x0c\xa6R\x9d\x1f\xc2\x80\x0cD\
-\x87\x1c\x7f4|\x066|\x06Y~\x01\x00\x0e\xe9\x0f\
-x\xb7\x12\x1d\x13\x00\x00\x00\x00IEND\xaeB`\
-\x82\
-\x00\x00\x00\xc1\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00<\x00\x00\x00<\x04\x03\x00\x00\x00\xc8\xd2\xc4A\
-\x00\x00\x00\x15PLTE\x00\x00\x00\xff\xff\xff\x22\x1f\
-\x1f\x22\x1f\x1f\x22\x1f\x1f\x22\x1f\x1f\x22\x1f\x1fI:\x15\
-.\x00\x00\x00\x06tRNS\x00\x00 0\x9f\xef,\
-\x93$\x03\x00\x00\x00UIDAT8\xcbc\x10\xc4\
-\x0b\x18\xa8'\xcd\xa0\x12\x96\xea\xc4\x80S\x9a9,-\
--\xd5\x00\xa7\xb4j\x1a\x10\x04\xe1\x94v\x03I\xa7\xe0\
-\x94\x0e\x03I\xa7\xe2\x94N\x03\x03r\xa5\x09\x18N\xc0\
-i\x04<F X\x08\x04*\x03\x18\x8cJ\x8f&\xc5\
-\xd1\xa48\x9a\x14G\x93\x22m\xaa9\x00L\x0e\xa9W\
-\xb5\x91\xf7\x9e\x00\x00\x00\x00IEND\xaeB`\x82\
-\
-\x00\x00\x00\xe3\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00<\x00\x00\x00<\x04\x03\x00\x00\x00\xc8\xd2\xc4A\
-\x00\x00\x00$PLTE\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6X\x02G\
-\x00\x00\x00\x0ctRNS\x00\x1c\x1d\x1e=l|}\
-\xd8\xd9\xda\xfa\x85T\xfd\xb6\x00\x00\x00bIDAT\
-8\xcbc`\xa070\xc5+\xcb4\xbb\x00\x9f\xb4\xd5\
-\xeemx5\xef\xde]\x80O\xf3\xee\xdd[\xf0j\xde\
-\x9d\x80W\xf36r5k\x8ej\x1e\x11\x9a\xadh\xa7\
-\x99A\x02(\xbd\x1d\xb74c\xf7n\x82\x89\x7f\x1b\xf9\
-\xda)\xb4}T\xfb\x10\xd5Na\xb2\xc1_\xe4\x82\xb5\
-'\x90]\xdc\x03\xb5'PP\xd5P\x0d\x00\x00^\xe9\
-\x99\xeb`\xde0?\x00\x00\x00\x00IEND\xaeB\
-`\x82\
-"
-
-qt_resource_name = b"\
-\x00\x05\
-\x00o\xa6S\
-\x00i\
-\x00c\x00o\x00n\x00s\
-\x00\x06\
-\x07\x03}\xc3\
-\x00i\
-\x00m\x00a\x00g\x00e\x00s\
-\x00\x06\
-\x07\x84+\x02\
-\x00q\
-\x00m\x00l\x00d\x00i\x00r\
-\x00\x15\
-\x08\x1e\x16f\
-\x00q\
-\x00t\x00q\x00u\x00i\x00c\x00k\x00c\x00o\x00n\x00t\x00r\x00o\x00l\x00s\x002\x00.\
-\x00c\x00o\x00n\x00f\
-\x00\x05\
-\x00v}\xc3\
-\x00p\
-\x00a\x00g\x00e\x00s\
-\x00\x0b\
-\x083\x9c<\
-\x00T\
-\x00o\x00o\x00l\x00B\x00a\x00r\x00.\x00q\x00m\x00l\
-\x00\x0b\
-\x0cCR|\
-\x00g\
-\x00a\x00l\x00l\x00e\x00r\x00y\x00.\x00q\x00m\x00l\
-\x00\x09\
-\x08\xac\xef\x1c\
-\x00+\
-\x00M\x00a\x00t\x00e\x00r\x00i\x00a\x00l\
-\x00\x10\
-\x05\xb8\x16\x1c\
-\x00C\
-\x00o\x00m\x00b\x00o\x00B\x00o\x00x\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
-\x00\x10\
-\x00w\xb4\x5c\
-\x00D\
-\x00e\x00l\x00e\x00g\x00a\x00t\x00e\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
-\x00\x0c\
-\x0e\x8bV\xfc\
-\x00D\
-\x00i\x00a\x00l\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
-\x00\x0f\
-\x07\x87\xe7<\
-\x00S\
-\x00p\x00i\x00n\x00B\x00o\x00x\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
-\x00\x0d\
-\x0c\xc8%\xdc\
-\x00F\
-\x00r\x00a\x00m\x00e\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
-\x00\x15\
-\x02E\x02\xfc\
-\x00P\
-\x00a\x00g\x00e\x00I\x00n\x00d\x00i\x00c\x00a\x00t\x00o\x00r\x00P\x00a\x00g\x00e\
-\x00.\x00q\x00m\x00l\
-\x00\x0e\
-\x09\x09P|\
-\x00T\
-\x00a\x00b\x00B\x00a\x00r\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
-\x00\x15\
-\x0fE\xff\x5c\
-\x00B\
-\x00u\x00s\x00y\x00I\x00n\x00d\x00i\x00c\x00a\x00t\x00o\x00r\x00P\x00a\x00g\x00e\
-\x00.\x00q\x00m\x00l\
-\x00\x12\
-\x05P\x5c\x1c\
-\x00S\
-\x00c\x00r\x00o\x00l\x00l\x00a\x00b\x00l\x00e\x00P\x00a\x00g\x00e\x00.\x00q\x00m\
-\x00l\
-\x00\x13\
-\x0dr\xfb|\
-\x00P\
-\x00r\x00o\x00g\x00r\x00e\x00s\x00s\x00B\x00a\x00r\x00P\x00a\x00g\x00e\x00.\x00q\
-\x00m\x00l\
-\x00\x11\
-\x03$Q\x5c\
-\x00S\
-\x00w\x00i\x00p\x00e\x00V\x00i\x00e\x00w\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
-\
-\x00\x10\
-\x06\xd3\x8b\x1c\
-\x00T\
-\x00e\x00x\x00t\x00A\x00r\x00e\x00a\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
-\x00\x11\
-\x00\xa3\xff|\
-\x00S\
-\x00c\x00r\x00o\x00l\x00l\x00B\x00a\x00r\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
-\
-\x00\x0f\
-\x0b\xe33|\
-\x00T\
-\x00o\x00o\x00l\x00T\x00i\x00p\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
-\x00\x0e\
-\x02%\xd0|\
-\x00S\
-\x00l\x00i\x00d\x00e\x00r\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
-\x00\x0f\
-\x00\xf4\xb9\xfc\
-\x00T\
-\x00u\x00m\x00b\x00l\x00e\x00r\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
-\x00\x13\
-\x002\xb3\xbc\
-\x00R\
-\x00a\x00n\x00g\x00e\x00S\x00l\x00i\x00d\x00e\x00r\x00P\x00a\x00g\x00e\x00.\x00q\
-\x00m\x00l\
-\x00\x10\
-\x0fY+\x5c\
-\x00G\
-\x00r\x00o\x00u\x00p\x00B\x00o\x00x\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
-\x00\x13\
-\x0fN\x9e\x5c\
-\x00R\
-\x00a\x00d\x00i\x00o\x00B\x00u\x00t\x00t\x00o\x00n\x00P\x00a\x00g\x00e\x00.\x00q\
-\x00m\x00l\
-\x00\x17\
-\x0a>\xfa\x1c\
-\x00S\
-\x00c\x00r\x00o\x00l\x00l\x00I\x00n\x00d\x00i\x00c\x00a\x00t\x00o\x00r\x00P\x00a\
-\x00g\x00e\x00.\x00q\x00m\x00l\
-\x00\x0e\
-\x08\xd2\xfe\x5c\
-\x00D\
-\x00i\x00a\x00l\x00o\x00g\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
-\x00\x0e\
-\x0e\xa2\x84\x9c\
-\x00B\
-\x00u\x00t\x00t\x00o\x00n\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
-\x00\x10\
-\x048\xf8\x1c\
-\x00C\
-\x00h\x00e\x00c\x00k\x00B\x00o\x00x\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
-\x00\x13\
-\x05\xac\xa6\xdc\
-\x00D\
-\x00e\x00l\x00a\x00y\x00B\x00u\x00t\x00t\x00o\x00n\x00P\x00a\x00g\x00e\x00.\x00q\
-\x00m\x00l\
-\x00\x0e\
-\x0b\xc5|\x5c\
-\x00S\
-\x00w\x00i\x00t\x00c\x00h\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
-\x00\x11\
-\x07%R|\
-\x00S\
-\x00t\x00a\x00c\x00k\x00V\x00i\x00e\x00w\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
-\
-\x00\x11\
-\x0fw<\xdc\
-\x00T\
-\x00e\x00x\x00t\x00F\x00i\x00e\x00l\x00d\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\
-\
-\x00\x0d\
-\x02\x89\x8a\x07\
-\x00a\
-\x00r\x00r\x00o\x00w\x00s\x00@\x004\x00x\x00.\x00p\x00n\x00g\
-\x00\x09\
-\x09j\x86g\
-\x00a\
-\x00r\x00r\x00o\x00w\x00.\x00p\x00n\x00g\
-\x00\x0a\
-\x06\xebDg\
-\x00a\
-\x00r\x00r\x00o\x00w\x00s\x00.\x00p\x00n\x00g\
-\x00\x0b\
-\x05R\xbf'\
-\x00q\
-\x00t\x00-\x00l\x00o\x00g\x00o\x00.\x00p\x00n\x00g\
-\x00\x0c\
-\x0e\x88z'\
-\x00a\
-\x00r\x00r\x00o\x00w\x00@\x002\x00x\x00.\x00p\x00n\x00g\
-\x00\x0c\
-\x0e\xa8z'\
-\x00a\
-\x00r\x00r\x00o\x00w\x00@\x004\x00x\x00.\x00p\x00n\x00g\
-\x00\x0d\
-\x02\x99\x8a\x07\
-\x00a\
-\x00r\x00r\x00o\x00w\x00s\x00@\x003\x00x\x00.\x00p\x00n\x00g\
-\x00\x0c\
-\x0e\xb8z'\
-\x00a\
-\x00r\x00r\x00o\x00w\x00@\x003\x00x\x00.\x00p\x00n\x00g\
-\x00\x0e\
-\x0d=\xfd'\
-\x00q\
-\x00t\x00-\x00l\x00o\x00g\x00o\x00@\x004\x00x\x00.\x00p\x00n\x00g\
-\x00\x0d\
-\x02\xa9\x8a\x07\
-\x00a\
-\x00r\x00r\x00o\x00w\x00s\x00@\x002\x00x\x00.\x00p\x00n\x00g\
-\x00\x0e\
-\x0d\x1d\xfd'\
-\x00q\
-\x00t\x00-\x00l\x00o\x00g\x00o\x00@\x002\x00x\x00.\x00p\x00n\x00g\
-\x00\x0e\
-\x0d-\xfd'\
-\x00q\
-\x00t\x00-\x00l\x00o\x00g\x00o\x00@\x003\x00x\x00.\x00p\x00n\x00g\
-\x00\x07\
-\x0d\x83,Y\
-\x00g\
-\x00a\x00l\x00l\x00e\x00r\x00y\
-\x00\x07\
-\x05{TS\
-\x002\
-\x000\x00x\x002\x000\x00@\x003\
-\x00\x07\
-\x05{TR\
-\x002\
-\x000\x00x\x002\x000\x00@\x002\
-\x00\x05\
-\x005{P\
-\x002\
-\x000\x00x\x002\x000\
-\x00\x07\
-\x05{TT\
-\x002\
-\x000\x00x\x002\x000\x00@\x004\
-\x00\x0b\
-\x0b\xba\x81\xb5\
-\x00i\
-\x00n\x00d\x00e\x00x\x00.\x00t\x00h\x00e\x00m\x00e\
-\x00\x0a\
-\x0d\xc8&G\
-\x00d\
-\x00r\x00a\x00w\x00e\x00r\x00.\x00p\x00n\x00g\
-\x00\x08\
-\x0cXY'\
-\x00m\
-\x00e\x00n\x00u\x00.\x00p\x00n\x00g\
-\x00\x08\
-\x07\x9eZG\
-\x00b\
-\x00a\x00c\x00k\x00.\x00p\x00n\x00g\
-"
-
-qt_resource_struct = b"\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x08\x00\x00\x00\x01\
-\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x001\
-\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00d\x00\x02\x00\x00\x00\x1b\x00\x00\x00\x16\
-\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x10\x00\x02\x00\x00\x00\x0c\x00\x00\x00\x0a\
-\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x22\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x01y\xear\xba!\
-\x00\x00\x004\x00\x00\x00\x00\x00\x01\x00\x00\x00\x0f\
-\x00\x00\x01y\xear\xba!\
-\x00\x00\x00t\x00\x00\x00\x00\x00\x01\x00\x00\x00s\
-\x00\x00\x01y\xear\xba\x14\
-\x00\x00\x00\xac\x00\x02\x00\x00\x00\x01\x00\x00\x00\x09\
-\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x90\x00\x01\x00\x00\x00\x01\x00\x00\x0a2\
-\x00\x00\x01z\xa0c\xec\x84\
-\x00\x00\x00t\x00\x00\x00\x00\x00\x01\x00\x00\x17?\
-\x00\x00\x01y\xear\xba\x14\
-\x00\x00\x04\xe4\x00\x00\x00\x00\x00\x01\x00\x01u/\
-\x00\x00\x01y\xear\xba\x1a\
-\x00\x00\x05\x8e\x00\x00\x00\x00\x00\x01\x00\x01\x86\xf2\
-\x00\x00\x01y\xear\xba\x1a\
-\x00\x00\x05\xee\x00\x00\x00\x00\x00\x01\x00\x01\xa4+\
-\x00\x00\x01y\xear\xba\x1a\
-\x00\x00\x056\x00\x00\x00\x00\x00\x01\x00\x01|\xff\
-\x00\x00\x01y\xear\xba\x1a\
-\x00\x00\x05\x1c\x00\x00\x00\x00\x00\x01\x00\x01{1\
-\x00\x00\x01y\xear\xba\x1a\
-\x00\x00\x05\x04\x00\x00\x00\x00\x00\x01\x00\x01y\xee\
-\x00\x00\x01y\xear\xba\x1a\
-\x00\x00\x06\x0e\x00\x00\x00\x00\x00\x01\x00\x01\xa6\xea\
-\x00\x00\x01y\xear\xba\x1a\
-\x00\x00\x060\x00\x00\x00\x00\x00\x01\x00\x01\xb1!\
-\x00\x00\x01y\xear\xba\x1a\
-\x00\x00\x05\xcc\x00\x00\x00\x00\x00\x01\x00\x01\x8d\x0b\
-\x00\x00\x01y\xear\xba\x1a\
-\x00\x00\x05R\x00\x00\x00\x00\x00\x01\x00\x01\x82\x18\
-\x00\x00\x01y\xear\xba\x1a\
-\x00\x00\x05p\x00\x00\x00\x00\x00\x01\x00\x01\x83\xf8\
-\x00\x00\x01y\xear\xba\x1a\
-\x00\x00\x05\xae\x00\x00\x00\x00\x00\x01\x00\x01\x8a\xa4\
-\x00\x00\x01y\xear\xba\x1a\
-\x00\x00\x03*\x00\x00\x00\x00\x00\x01\x00\x00\xe7\xba\
-\x00\x00\x01y\xear\xba\x1e\
-\x00\x00\x00\xea\x00\x01\x00\x00\x00\x01\x00\x000\x0e\
-\x00\x00\x01y\xear\xba\x1a\
-\x00\x00\x02\x98\x00\x00\x00\x00\x00\x01\x00\x00\xb6\xb5\
-\x00\x00\x01y\xear\xba\x1e\
-\x00\x00\x03\x06\x00\x00\x00\x00\x00\x01\x00\x00\xdcJ\
-\x00\x00\x01y\xear\xba!\
-\x00\x00\x02\xe4\x00\x00\x00\x00\x00\x01\x00\x00\xd0 \
-\x00\x00\x01y\xear\xba\x1e\
-\x00\x00\x01r\x00\x00\x00\x00\x00\x01\x00\x00^\x9f\
-\x00\x00\x01y\xear\xba\x1e\
-\x00\x00\x02J\x00\x00\x00\x00\x00\x01\x00\x00\x9c`\
-\x00\x00\x01y\xear\xba\x1e\
-\x00\x00\x04 \x00\x00\x00\x00\x00\x01\x00\x0140\
-\x00\x00\x01y\xear\xba\x1a\
-\x00\x00\x01\xf4\x00\x00\x00\x00\x00\x01\x00\x00\x84\xba\
-\x00\x00\x01y\xear\xba\x1e\
-\x00\x00\x04F\x00\x00\x00\x00\x00\x01\x00\x01A;\
-\x00\x00\x01y\xear\xba\x1a\
-\x00\x00\x00\xc4\x00\x00\x00\x00\x00\x01\x00\x00!)\
-\x00\x00\x01y\xear\xba\x1a\
-\x00\x00\x02r\x00\x00\x00\x00\x00\x01\x00\x00\xaa\xb9\
-\x00\x00\x01y\xear\xba!\
-\x00\x00\x04\x94\x00\x00\x00\x00\x00\x01\x00\x01Y\xeb\
-\x00\x00\x01y\xear\xba\x1e\
-\x00\x00\x01.\x00\x00\x00\x00\x00\x01\x00\x00DV\
-\x00\x00\x01y\xear\xba\x1e\
-\x00\x00\x03\xdc\x00\x01\x00\x00\x00\x01\x00\x01\x1d\x0f\
-\x00\x00\x01y\xear\xba\x1a\
-\x00\x00\x01\xa2\x00\x00\x00\x00\x00\x01\x00\x00jN\
-\x00\x00\x01y\xear\xba\x1e\
-\x00\x00\x03\xa8\x00\x00\x00\x00\x00\x01\x00\x01\x0f\x8f\
-\x00\x00\x01y\xear\xba\x1e\
-\x00\x00\x04r\x00\x00\x00\x00\x00\x01\x00\x01M\x1b\
-\x00\x00\x01y\xear\xba\x1e\
-\x00\x00\x02\xc0\x00\x00\x00\x00\x00\x01\x00\x00\xc4\x1b\
-\x00\x00\x01y\xear\xba!\
-\x00\x00\x01R\x00\x00\x00\x00\x00\x01\x00\x00P\x8c\
-\x00\x00\x01y\xear\xba\x1e\
-\x00\x00\x02\x1e\x00\x00\x00\x00\x00\x01\x00\x00\x8f\xe6\
-\x00\x00\x01y\xear\xba\x1e\
-\x00\x00\x01\x10\x00\x00\x00\x00\x00\x01\x00\x008c\
-\x00\x00\x01y\xear\xba\x1a\
-\x00\x00\x03\xfe\x00\x00\x00\x00\x00\x01\x00\x01&\x9c\
-\x00\x00\x01y\xear\xba\x1a\
-\x00\x00\x01\xc4\x00\x00\x00\x00\x00\x01\x00\x00x\xea\
-\x00\x00\x01y\xear\xba\x1a\
-\x00\x00\x03|\x00\x00\x00\x00\x00\x01\x00\x01\x02\x9d\
-\x00\x00\x01y\xear\xba\x1e\
-\x00\x00\x03V\x00\x00\x00\x00\x00\x01\x00\x00\xf4[\
-\x00\x00\x01y\xear\xba\x1e\
-\x00\x00\x04\xbc\x00\x00\x00\x00\x00\x01\x00\x01i\xa3\
-\x00\x00\x01y\xear\xba!\
-\x00\x00\x06R\x00\x02\x00\x00\x00\x05\x00\x00\x002\
-\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x06\x8e\x00\x02\x00\x00\x00\x03\x00\x00\x00@\
-\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x06z\x00\x02\x00\x00\x00\x03\x00\x00\x00=\
-\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x06f\x00\x02\x00\x00\x00\x03\x00\x00\x00:\
-\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x06\x9e\x00\x02\x00\x00\x00\x03\x00\x00\x007\
-\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x06\xb2\x00\x00\x00\x00\x00\x01\x00\x01\xc1`\
-\x00\x00\x01y\xear\xba\x17\
-\x00\x00\x06\xfe\x00\x00\x00\x00\x00\x01\x00\x01\xc3\xd8\
-\x00\x00\x01y\xear\xba\x17\
-\x00\x00\x06\xe8\x00\x00\x00\x00\x00\x01\x00\x01\xc2\xf5\
-\x00\x00\x01y\xear\xba\x17\
-\x00\x00\x06\xce\x00\x00\x00\x00\x00\x01\x00\x01\xc2n\
-\x00\x00\x01y\xear\xba\x17\
-\x00\x00\x06\xfe\x00\x00\x00\x00\x00\x01\x00\x01\xc9\x91\
-\x00\x00\x01y\xear\xba\x17\
-\x00\x00\x06\xe8\x00\x00\x00\x00\x00\x01\x00\x01\xc8\xcc\
-\x00\x00\x01y\xear\xba\x17\
-\x00\x00\x06\xce\x00\x00\x00\x00\x00\x01\x00\x01\xc8F\
-\x00\x00\x01y\xear\xba\x17\
-\x00\x00\x06\xfe\x00\x00\x00\x00\x00\x01\x00\x01\xc7\x8a\
-\x00\x00\x01y\xear\xba\x17\
-\x00\x00\x06\xe8\x00\x00\x00\x00\x00\x01\x00\x01\xc6\xe8\
-\x00\x00\x01y\xear\xba\x17\
-\x00\x00\x06\xce\x00\x00\x00\x00\x00\x01\x00\x01\xc6f\
-\x00\x00\x01y\xear\xba\x17\
-\x00\x00\x06\xfe\x00\x00\x00\x00\x00\x01\x00\x01\xc5\xd0\
-\x00\x00\x01y\xear\xba\x14\
-\x00\x00\x06\xe8\x00\x00\x00\x00\x00\x01\x00\x01\xc5Q\
-\x00\x00\x01y\xear\xba\x17\
-\x00\x00\x06\xce\x00\x00\x00\x00\x00\x01\x00\x01\xc4\xd2\
-\x00\x00\x01y\xear\xba\x17\
-"
-
-def qInitResources():
- QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
-
-def qCleanupResources():
- QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
-
-qInitResources()
diff --git a/examples/remoteobjects/modelview/modelviewclient.py b/examples/remoteobjects/modelview/modelviewclient.py
index 9025548b5..38409c998 100644
--- a/examples/remoteobjects/modelview/modelviewclient.py
+++ b/examples/remoteobjects/modelview/modelviewclient.py
@@ -1,43 +1,6 @@
-#############################################################################
-##
-## Copyright (C) 2017 Ford Motor Company
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2017 Ford Motor Company
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the remoteobjects/modelviewclient example from Qt v5.x"""
diff --git a/examples/remoteobjects/modelview/modelviewserver.py b/examples/remoteobjects/modelview/modelviewserver.py
index 9d0af050e..0e213fb57 100644
--- a/examples/remoteobjects/modelview/modelviewserver.py
+++ b/examples/remoteobjects/modelview/modelviewserver.py
@@ -1,43 +1,6 @@
-#############################################################################
-##
-## Copyright (C) 2017 Ford Motor Company
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2017 Ford Motor Company
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the remoteobjects/modelviewserver example from Qt v5.x"""
diff --git a/examples/samplebinding/CMakeLists.txt b/examples/samplebinding/CMakeLists.txt
index ac29700c4..4807904c1 100644
--- a/examples/samplebinding/CMakeLists.txt
+++ b/examples/samplebinding/CMakeLists.txt
@@ -1,5 +1,8 @@
-cmake_minimum_required(VERSION 3.16)
-cmake_policy(VERSION 3.16)
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+cmake_minimum_required(VERSION 3.18)
+cmake_policy(VERSION 3.18)
# Enable policy to not use RPATH settings for install_name on macOS.
if(POLICY CMP0068)
@@ -11,8 +14,8 @@ project(SampleBinding)
# ================================ General configuration ======================================
-# Set CPP standard to C++11 minimum.
-set(CMAKE_CXX_STANDARD 11)
+# Set CPP standard to C++17 minimum.
+set(CMAKE_CXX_STANDARD 17)
# The sample library for which we will create bindings. You can change the name to something
# relevant for your project.
@@ -42,7 +45,21 @@ set(generated_sources
# ================================== Shiboken detection ======================================
# Use provided python interpreter if given.
if(NOT python_interpreter)
- find_program(python_interpreter "python")
+ if(WIN32 AND "${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
+ find_program(python_interpreter "python_d")
+ if(NOT python_interpreter)
+ message(FATAL_ERROR
+ "A debug Python interpreter could not be found, which is a requirement when "
+ "building this example in a debug configuration. Make sure python_d.exe is in "
+ "PATH.")
+ endif()
+ else()
+ find_program(python_interpreter "python")
+ if(NOT python_interpreter)
+ message(FATAL_ERROR
+ "No Python interpreter could be found. Make sure python is in PATH.")
+ endif()
+ endif()
endif()
message(STATUS "Using python interpreter: ${python_interpreter}")
@@ -118,7 +135,7 @@ target_compile_definitions(${sample_library} PRIVATE BINDINGS_BUILD)
# Set up the options to pass to shiboken.
set(shiboken_options --generator-set=shiboken --enable-parent-ctor-heuristic
- --enable-return-value-heuristic --use-isnull-as-nb_nonzero
+ --enable-return-value-heuristic --use-isnull-as-nb-bool
--avoid-protected-hack
-I${CMAKE_SOURCE_DIR}
-T${CMAKE_SOURCE_DIR}
@@ -159,7 +176,11 @@ set_property(TARGET ${bindings_library} PROPERTY PREFIX "")
set_property(TARGET ${bindings_library} PROPERTY OUTPUT_NAME
"${bindings_library}${PYTHON_EXTENSION_SUFFIX}")
if(WIN32)
- set_property(TARGET ${bindings_library} PROPERTY SUFFIX ".pyd")
+ if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
+ set_property(TARGET ${bindings_library} PROPERTY SUFFIX "_d.pyd")
+ else()
+ set_property(TARGET ${bindings_library} PROPERTY SUFFIX ".pyd")
+ endif()
endif()
# Make sure the linker doesn't complain about not finding Python symbols on macOS.
diff --git a/examples/samplebinding/README.md b/examples/samplebinding/README.md
deleted file mode 100644
index 26ff2b383..000000000
--- a/examples/samplebinding/README.md
+++ /dev/null
@@ -1,245 +0,0 @@
-# Sample bindings example
-
-This example showcases how to generate Python bindings for a
-non-Qt C++ library.
-
-The example defines a CMake project that builds two libraries:
-* `libuniverse` - a sample library with two C++ classes.
-* `Universe` - the generated Python extension module that contains
- bindings to the library above.
-
-The project file is structured in such a way that a user can copy-paste
-in into their own project, and be able to build it with a minimal amount
-of modifications.
-
-## Description
-
-The libuniverse library declares two classes: `Icecream` and `Truck`.
-
-`Icecream` objects have a flavor, and an accessor for returning the
-flavor.
-
-`Truck` instances store a vector of `Icecream` objects, and have various
-methods for adding new flavors, printing available flavors, delivering
-icecream, etc.
-
-From a C++ perspective, `Icecream` instances are treated as
-**object types** (pointer semantics) because the class declares virtual
-methods.
-
-In contrast `Truck` does not define virtual methods and is treated as
-a **value type** (copy semantics).
-
-Because `Truck` is a value type and it stores a vector of `Icecream`
-pointers, the rule of three has to be taken into account (implement the
-copy constructor, assignment operator, destructor).
-
-And due to `Icecream` objects being copyable, the type has to define an
-implementation of the *clone()* method, to avoid type slicing issues.
-
-Both of these types and their methods will be exposed to Python by
-generating CPython code. The code is generated by **shiboken** and
-placed in separate ".cpp" files named after each C++ type. The code is
-then compiled and linked into a shared library. The shared library is a
-CPython extension module, which is loaded by the Python interpreter.
-
-Beacuse the C++ language has different semantics to Python, shiboken
-needs help in figuring out how to generate the bindings code. This is
-done by specifying a special XML file called a typesystem file.
-
-In the typesystem file you specify things like:
- * which C++ primitive types should have bindings (int, bool, float)
- * which C++ classes should have bindings (Icecream) and what kind of
- semantics (value / object)
- * Ownership rules (who deletes the C++ objects, C++ or Python)
- * Code injection (for various special cases that shiboken doesn't know
- about)
- * Package name (name of package as imported from Python)
-
-In this example we declare `bool` and `std::string` as primitive types,
-`Icecream` as an object type, `Truck` as a value type,
-and the `clone()` and `addIcecreamFlavor(Icecream*)` need additional
-info about who owns the parameter objects when passing them across
-language boundaries (in this case C++ will delete the objects).
-
-The `Truck` has getters and setters for the string `arrivalMessage`.
-In the type system file, we declare this to be a property in Python:
-
-```
-<property type="std::string" name="arrivalMessage" get="getArrivalMessage" set="setArrivalMessage"/>
-```
-
-It can then be used in a more pythonic way:
-
-```
-special_truck.arrivalMessage = "A new SPECIAL icecream truck has arrived!\n"
-```
-
-After shiboken generates the C++ code and CMake makes an extension
-module from the code, the types can be accessed in Python simply by
-importing them using the original C++ names.
-
-```
-from Universe import Icecream, Truck
-```
-
-Constructing C++ wrapped objects is the same as in Python
-```
-icecream = Icecream("vanilla")
-truck = Truck()
-```
-
-
-And actual C++ constructors are mapped to the Python `__init__` method.
-```
-class VanillaChocolateIcecream(Icecream):
- def __init__(self, flavor=""):
- super().__init__(flavor)
-```
-
-
-C++ methods can be accessed as regular Python methods using the C++
-names
-```
-truck.addIcecreamFlavor(icecream)
-```
-
-
-Inheritance works as with regular Python classes, and virtual C++
-methods can be overridden simply by definining a method with the same
-name as in the C++ class.
-```
-class VanillaChocolateIcecream(Icecream):
- # ...
- def getFlavor(self):
- return "vanilla sprinked with chocolate"
-
-```
-
-
-The `main.py` script demonstrates usages of these types.
-
-The CMake project file contains many comments explaining all the build
-rules for those interested in the build process.
-
-## Building the project
-
-This example can only be built using **CMake**.
-The following requirements need to be met:
-
-* A PySide package is installed into the current active Python
- environment (system or virtualenv)
-* A new enough version of CMake (**3.1+**).
-* ninja
-
-For Windows you will also need:
-* a Visual Studio environment to be active in your terminal
-* Correct visual studio architecture chosen (32 vs 64 bit)
-* Make sure that your Python intepreter and bindings project build
- configuration is the same (all Release, which is more likely,
- or all Debug).
-
-The build uses the `pyside_config.py` file to configure the project
-using the current PySide/Shiboken installation.
-
-### Using CMake
-
-You can build and run this example by executing the following commands
-(slightly adapted to your file system layout) in a terminal:
-
-macOS/Linux:
-```bash
-cd ~/pyside-setup/examples/samplebinding
-```
-
-On Windows:
-```bash
-cd C:\pyside-setup\examples\samplebinding
-```
-
-```bash
-mkdir build
-cd build
-mkdir build
-cd build
-cmake -H.. -B. -G Ninja -DCMAKE_BUILD_TYPE=Release
-ninja
-ninja install
-cd ..
-```
-
-The final example can then be run by:
-```bash
-python main.py
-```
-
-#### Windows troubleshooting
-
-It is possible that **CMake** can pick up the wrong compiler
-for a different architecture, but it can be addressed explicitly
-by setting the **CC** environment variable:
-
-```bash
-set CC=cl
-```
-
-or by using the -G option:
-
-```bash
-cmake -H.. -B. -G "Visual Studio 14 Win64"
-```
-
-If the `-G "Visual Studio 14 Win64"` option is used, a `sln` file
-will be generated, and can be used with `MSBuild`
-instead of `nmake/jom`.
-The easiest way to both build and install in this case, is to use
-the cmake executable:
-
-```bash
-cmake --build . --target install --config Release
-```
-
-Note that using the "NMake Makefiles JOM" generator is preferred to
-the MSBuild one, because the MSBuild one generates configs for both
-Debug and Release, and this might lead to building errors if you
-accidentally build the wrong config at least once.
-
-## Virtualenv Support
-
-If the python application is started from a terminal with an activated
-python virtual environment, that environment's packages will be used for
-the python module import process.
-In this case, make sure that the bindings were built while the
-`virtualenv` was active, so that the build system picks up the correct
-python shared library and PySide6 / shiboken package.
-
-## Linux Shared Libraries Notes
-
-For this example's purpose, we link against the absolute path of the
-dependent shared library `libshiboken` because the
-installation of the library is done via a wheel, and there is
-no clean solution to include symbolic links in a wheel package
-(so that passing -lshiboken to the linker would work).
-
-## Windows Notes
-
-The build config of the bindings (Debug or Release) should match
-the PySide build config, otherwise the application will not properly
-work.
-
-In practice this means the only supported configurations are:
-
-1. release config build of the bindings +
- PySide `setup.py` without `--debug` flag + `python.exe` for the
- PySide build process + `python36.dll` for the linked in shared
- library.
-2. debug config build of the application +
- PySide `setup.py` **with** `--debug` flag + `python_d.exe` for the
- PySide build process + `python36_d.dll` for the linked in shared
- library.
-
-This is necessary because all the shared libraries in question have to
-link to the same C++ runtime library (`msvcrt.dll` or `msvcrtd.dll`).
-To make the example as self-contained as possible, the shared libraries
-in use (`pyside6.dll`, `shiboken6.dll`) are hard-linked into the build
-folder of the application.
diff --git a/examples/samplebinding/bindings.h b/examples/samplebinding/bindings.h
index ba42dc626..36f0b86be 100644
--- a/examples/samplebinding/bindings.h
+++ b/examples/samplebinding/bindings.h
@@ -1,52 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the Qt for Python examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
#ifndef BINDINGS_H
#define BINDINGS_H
diff --git a/examples/samplebinding/bindings.xml b/examples/samplebinding/bindings.xml
index 9be9f1afa..fe5b4e5e2 100644
--- a/examples/samplebinding/bindings.xml
+++ b/examples/samplebinding/bindings.xml
@@ -1,60 +1,10 @@
<?xml version="1.0"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the Qt for Python examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-->
<typesystem package="Universe">
- <primitive-type name="bool"/>
- <primitive-type name="std::string"/>
-
<object-type name="Icecream">
<!-- By default the ownership of an object created in Python is tied
to the Python name pointing to it. In order for the underlying
diff --git a/examples/samplebinding/doc/bindings.h.rstinc b/examples/samplebinding/doc/bindings.h.rstinc
new file mode 100644
index 000000000..e2a0b6fef
--- /dev/null
+++ b/examples/samplebinding/doc/bindings.h.rstinc
@@ -0,0 +1,2 @@
+The Shiboken generator needs a header file that includes
+the types we are interested in:
diff --git a/examples/samplebinding/doc/bindings.xml.rstinc b/examples/samplebinding/doc/bindings.xml.rstinc
new file mode 100644
index 000000000..60b9b1a48
--- /dev/null
+++ b/examples/samplebinding/doc/bindings.xml.rstinc
@@ -0,0 +1,31 @@
+Shiboken requires an XML-based typesystem file that defines the
+relationship between C++ and Python types.
+
+It declares the two aforementioned classes. One of them as an
+“object-type” and the other as a “value-type”. The main difference is that
+object-types are passed around in generated code as pointers, whereas
+value-types are copied (value semantics).
+
+By specifying the names of these classes in the typesystem file, Shiboken
+automatically tries to generate bindings for all methods of those
+classes. You need not mention all the methods manually in the XML file, unless
+you want to modify them.
+
+**Object ownership rules**
+
+Shiboken doesn't know if Python or C++ are responsible for freeing the C++
+objects that were allocated in the Python code, and assuming this might lead to
+errors. There can be cases where Python should release the C++ memory when the
+reference count of the Python object becomes zero, but it should never delete
+the underlying C++ object just from assuming that it will not be deleted by
+underlying C++ library, or if it's maybe parented to another object (like
+QWidgets).
+
+In our case, the :code:`clone()` method is only called inside the C++ library,
+and we assume that the C++ code takes care of releasing the cloned object.
+
+As for :code:`addIcecreamFlavor()`, we know that a :code:`Truck` owns the
+:code:`Icecream` object, and will remove it once the :code:`Truck` is
+destroyed. That's why the ownership is set to “c++” in the typesystem file,
+so that the C++ objects are not deleted when the corresponding Python names
+go out of scope.
diff --git a/examples/samplebinding/doc/samplebinding.pyproject b/examples/samplebinding/doc/samplebinding.pyproject
new file mode 100644
index 000000000..b0786355f
--- /dev/null
+++ b/examples/samplebinding/doc/samplebinding.pyproject
@@ -0,0 +1,11 @@
+{
+ "files": ["../bindings.h",
+ "../bindings.xml",
+ "../icecream.cpp",
+ "../icecream.h",
+ "../macros.h",
+ "../main.py",
+ "../truck.cpp",
+ "../truck.h",
+ "../CMakeLists.txt"]
+}
diff --git a/examples/samplebinding/doc/samplebinding.rst b/examples/samplebinding/doc/samplebinding.rst
new file mode 100644
index 000000000..defb55d6b
--- /dev/null
+++ b/examples/samplebinding/doc/samplebinding.rst
@@ -0,0 +1,288 @@
+Sample Bindings Example
+=======================
+
+This example showcases how to generate Python bindings for a
+non-Qt C++ library.
+
+The example defines a CMake project that builds two libraries:
+
+* ``libuniverse`` - a sample library with two C++ classes.
+
+* ``Universe`` - the generated Python extension module that contains
+ bindings to the library above.
+
+The project file is structured in such a way that a user can copy-paste
+in into their own project, and be able to build it with a minimal amount
+of modifications.
+
+Description
++++++++++++
+
+The libuniverse library declares two classes: ``Icecream`` and ``Truck``.
+
+``Icecream`` objects have a flavor, and an accessor for returning the
+flavor.
+
+``Truck`` instances store a vector of ``Icecream`` objects, and have various
+methods for adding new flavors, printing available flavors, delivering
+icecream, etc.
+
+From a C++ perspective, ``Icecream`` instances are treated as
+*object types* (pointer semantics) because the class declares virtual
+methods.
+
+In contrast ``Truck`` does not define virtual methods and is treated as
+a *value type* (copy semantics).
+
+Because ``Truck`` is a value type and it stores a vector of ``Icecream``
+pointers, the rule of five has to be taken into account (implement the
+copy constructor, assignment operator, move constructor, move assignment
+operator and destructor).
+
+And due to ``Icecream`` objects being copyable, the type has to define an
+implementation of the ``clone()`` method, to avoid type slicing issues.
+
+Both of these types and their methods will be exposed to Python by
+generating CPython code. The code is generated by ``shiboken`` and
+placed in separate ``.cpp`` files named after each C++ type. The code is
+then compiled and linked into a shared library. The shared library is a
+CPython extension module, which is loaded by the Python interpreter.
+
+Beacuse the C++ language has different semantics to Python, shiboken
+needs help in figuring out how to generate the bindings code. This is
+done by specifying a special XML file called a typesystem file.
+
+In the typesystem file you specify things like:
+
+ * Which C++ classes should have bindings (Icecream, Truck) and with what
+ kind of semantics (value / object)
+
+ * Ownership rules (who deletes the C++ objects, C++ or Python)
+
+ * Code injection (for various special cases that shiboken doesn't know
+ about)
+
+ * Package name (name of package as imported from Python)
+
+In this example we declare ``Icecream`` as an object type and ``Truck``
+as a value type. The ``clone()`` and ``addIcecreamFlavor(Icecream*)``
+need additional info about who owns the parameter objects when passing
+them across language boundaries (in this case C++ will delete the objects).
+
+The ``Truck`` has getters and setters for the string ``arrivalMessage``.
+In the type system file, we declare this to be a property in Python:
+
+.. code-block:: xml
+
+ <property type="std::string" name="arrivalMessage" get="getArrivalMessage" set="setArrivalMessage"/>
+
+
+It can then be used in a more pythonic way:
+
+.. code-block:: python
+
+ special_truck.arrivalMessage = "A new SPECIAL icecream truck has arrived!\n"
+
+After shiboken generates the C++ code and CMake makes an extension
+module from the code, the types can be accessed in Python simply by
+importing them using the original C++ names.
+
+.. code-block:: python
+
+ from Universe import Icecream, Truck
+
+
+Constructing C++ wrapped objects is the same as in Python
+
+.. code-block:: python
+
+ icecream = Icecream("vanilla")
+ truck = Truck()
+
+
+And actual C++ constructors are mapped to the Python `__init__` method.
+
+.. code-block:: python
+
+ class VanillaChocolateIcecream(Icecream):
+ def __init__(self, flavor=""):
+ super().__init__(flavor)
+
+
+C++ methods can be accessed as regular Python methods using the C++
+names
+
+.. code-block:: python
+
+ truck.addIcecreamFlavor(icecream)
+
+Inheritance works as with regular Python classes, and virtual C++
+methods can be overridden simply by definining a method with the same
+name as in the C++ class.
+
+.. code-block:: python
+
+ class VanillaChocolateIcecream(Icecream):
+ # ...
+ def getFlavor(self):
+ return "vanilla sprinked with chocolate"
+
+
+The ``main.py`` script demonstrates usages of these types.
+
+The CMake project file contains many comments explaining all the build
+rules for those interested in the build process.
+
+Building the project
+++++++++++++++++++++
+
+This example can only be built using ``CMake``.
+The following requirements need to be met:
+
+* A PySide package is installed into the current active Python
+ environment (system or virtualenv)
+
+* A new enough version of CMake (3.16+).
+
+* ninja
+
+For Windows you will also need:
+
+* a Visual Studio environment to be active in your terminal
+
+* Correct visual studio architecture chosen (32 vs 64 bit)
+
+* Make sure that your Python intepreter and bindings project build
+ configuration is the same (all Release, which is more likely,
+ or all Debug).
+
+The build uses the ``pyside_config.py`` file to configure the project
+using the current PySide/Shiboken installation.
+
+Using CMake
+===========
+
+You can build and run this example by executing the following commands
+(slightly adapted to your file system layout) in a terminal:
+
+macOS/Linux:
+
+.. code-block:: bash
+
+ cd ~/pyside-setup/examples/samplebinding
+
+On Windows:
+
+.. code-block:: bash
+
+ cd C:\pyside-setup\examples\samplebinding
+
+.. code-block:: bash
+
+ mkdir build
+ cd build
+ cmake -S.. -B. -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=cl.exe
+ ninja
+ ninja install
+ cd ..
+
+Use the Python module
++++++++++++++++++++++
+
+The final example can then be run by:
+
+.. code-block:: bash
+
+ python main.py
+
+In the ``main.py`` script, two types are derived from :code:`Icecream` for
+different “flavors” after importing the classes from the :code:`Universe`
+module. Then, a :code:`truck` is created to deliver some regular flavored
+Icecreams and two special ones.
+
+If the delivery fails, a new :code:`truck` is created with the old flavors
+copied over, and a new *magical* flavor that will surely satisfy all customers.
+
+Try running it to see if the ice creams are delivered.
+
+Windows troubleshooting
++++++++++++++++++++++++
+
+It is possible that ``CMake`` can pick up the wrong compiler
+for a different architecture, but it can be addressed explicitly
+by setting the ``CC`` environment variable:
+
+.. code-block:: bash
+
+ set CC=cl
+
+passing the compiler on the command line:
+
+.. code-block:: bash
+
+ cmake -S.. -B. -DCMAKE_C_COMPILER=cl.exe -DCMAKE_CXX_COMPILER=cl.exe
+
+or by using the -G option:
+
+.. code-block:: bash
+
+ cmake -S.. -B. -G "Visual Studio 14 Win64"
+
+If the ``-G "Visual Studio 14 Win64"`` option is used, a ``sln`` file
+will be generated, and can be used with ``MSBuild``
+instead of ``ninja``.
+The easiest way to both build and install in this case, is to use
+the cmake executable:
+
+.. code-block:: bash
+
+ cmake --build . --target install --config Release
+
+Note that using the ``"Ninja"`` generator is preferred to
+the MSBuild one, because the MSBuild one generates configs for both
+Debug and Release, and this might lead to building errors if you
+accidentally build the wrong config at least once.
+
+Virtualenv Support
+++++++++++++++++++
+
+If the python application is started from a terminal with an activated
+python virtual environment, that environment's packages will be used for
+the python module import process.
+In this case, make sure that the bindings were built while the
+``virtualenv`` was active, so that the build system picks up the correct
+python shared library and PySide6 / shiboken package.
+
+Linux Shared Libraries Notes
+++++++++++++++++++++++++++++
+
+For this example's purpose, we link against the absolute path of the
+dependent shared library ``libshiboken`` because the
+installation of the library is done via a wheel, and there is
+no clean solution to include symbolic links in a wheel package
+(so that passing -lshiboken to the linker would work).
+
+Windows Notes
++++++++++++++
+
+The build config of the bindings (Debug or Release) should match
+the PySide build config, otherwise the application will not properly
+work.
+
+In practice this means the only supported configurations are:
+
+#. release config build of the bindings +
+ PySide ``setup.py`` without ``--debug`` flag + ``python.exe`` for the
+ PySide build process + ``python39.dll`` for the linked in shared
+ library.
+
+#. debug config build of the application +
+ PySide ``setup.py`` *with* ``--debug`` flag + ``python_d.exe`` for the
+ PySide build process + ``python39_d.dll`` for the linked in shared
+ library.
+
+This is necessary because all the shared libraries in question have to
+link to the same C++ runtime library (``msvcrt.dll`` or ``msvcrtd.dll``).
+To make the example as self-contained as possible, the shared libraries
+in use (``pyside6.dll``, ``shiboken6.dll``) are hard-linked into the build
+folder of the application.
diff --git a/examples/samplebinding/icecream.cpp b/examples/samplebinding/icecream.cpp
index 8d40302da..4a81bd08b 100644
--- a/examples/samplebinding/icecream.cpp
+++ b/examples/samplebinding/icecream.cpp
@@ -1,60 +1,15 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the Qt for Python examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
#include "icecream.h"
+#include <iostream>
+
Icecream::Icecream(const std::string &flavor) : m_flavor(flavor) {}
-Icecream::~Icecream() {}
+Icecream::~Icecream() = default;
-const std::string Icecream::getFlavor()
+std::string Icecream::getFlavor() const
{
return m_flavor;
}
@@ -63,3 +18,9 @@ Icecream *Icecream::clone()
{
return new Icecream(*this);
}
+
+std::ostream &operator<<(std::ostream &str, const Icecream &i)
+{
+ str << i.getFlavor();
+ return str;
+}
diff --git a/examples/samplebinding/icecream.h b/examples/samplebinding/icecream.h
index 1997fdc49..7d5e97d38 100644
--- a/examples/samplebinding/icecream.h
+++ b/examples/samplebinding/icecream.h
@@ -1,71 +1,26 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the Qt for Python examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
#ifndef ICECREAM_H
#define ICECREAM_H
-#include <string>
-
#include "macros.h"
+#include <iosfwd>
+#include <string>
+
class BINDINGS_API Icecream
{
public:
- Icecream(const std::string &flavor);
+ explicit Icecream(const std::string &flavor);
virtual Icecream *clone();
virtual ~Icecream();
- virtual const std::string getFlavor();
+ virtual std::string getFlavor() const;
private:
std::string m_flavor;
};
+std::ostream &operator<<(std::ostream &str, const Icecream &i);
#endif // ICECREAM_H
diff --git a/examples/samplebinding/macros.h b/examples/samplebinding/macros.h
index 71b27c398..af1874fa4 100644
--- a/examples/samplebinding/macros.h
+++ b/examples/samplebinding/macros.h
@@ -1,52 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the Qt for Python examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
#ifndef MACROS_H
#define MACROS_H
diff --git a/examples/samplebinding/main.py b/examples/samplebinding/main.py
index bc5e16eec..cb9f116ee 100644
--- a/examples/samplebinding/main.py
+++ b/examples/samplebinding/main.py
@@ -1,43 +1,5 @@
-
-############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""An example showcasing how to use bindings for a custom non-Qt C++ library"""
diff --git a/examples/samplebinding/truck.cpp b/examples/samplebinding/truck.cpp
index 056abfcd6..819d2b1a0 100644
--- a/examples/samplebinding/truck.cpp
+++ b/examples/samplebinding/truck.cpp
@@ -1,52 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the Qt for Python examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
#include <iostream>
#include <random>
@@ -57,40 +10,38 @@ Truck::Truck(bool leaveOnDestruction) : m_leaveOnDestruction(leaveOnDestruction)
Truck::Truck(const Truck &other)
{
- for (size_t i = 0; i < other.m_flavors.size(); ++i) {
- addIcecreamFlavor(other.m_flavors[i]->clone());
- }
+ assign(other);
}
Truck &Truck::operator=(const Truck &other)
{
if (this != &other) {
- clearFlavors();
- for (size_t i = 0; i < other.m_flavors.size(); ++i) {
- addIcecreamFlavor(other.m_flavors[i]->clone());
- }
+ m_flavors.clear();
+ assign(other);
}
return *this;
}
+Truck::Truck(Truck &&other) = default;
+
+Truck& Truck::operator=(Truck &&other) = default;
+
Truck::~Truck()
{
if (m_leaveOnDestruction)
leave();
- clearFlavors();
}
void Truck::addIcecreamFlavor(Icecream *icecream)
{
- m_flavors.push_back(icecream);
+ m_flavors.push_back(IcecreamPtr(icecream));
}
void Truck::printAvailableFlavors() const
{
std::cout << "It sells the following flavors: \n";
- for (size_t i = 0; i < m_flavors.size(); ++ i) {
- std::cout << " * " << m_flavors[i]->getFlavor() << '\n';
- }
+ for (const auto &flavor : m_flavors)
+ std::cout << " * " << *flavor << '\n';
std::cout << '\n';
}
@@ -119,6 +70,13 @@ std::string Truck::getArrivalMessage() const
return m_arrivalMessage;
}
+void Truck::assign(const Truck &other)
+{
+ m_flavors.reserve(other.m_flavors.size());
+ for (const auto &f : other.m_flavors)
+ m_flavors.push_back(IcecreamPtr(f->clone()));
+}
+
bool Truck::deliver() const
{
std::random_device rd;
@@ -133,11 +91,3 @@ bool Truck::deliver() const
return result;
}
-
-void Truck::clearFlavors()
-{
- for (size_t i = 0; i < m_flavors.size(); ++i) {
- delete m_flavors[i];
- }
- m_flavors.clear();
-}
diff --git a/examples/samplebinding/truck.h b/examples/samplebinding/truck.h
index 3f213f9ac..f7afd1290 100644
--- a/examples/samplebinding/truck.h
+++ b/examples/samplebinding/truck.h
@@ -1,66 +1,24 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the Qt for Python examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
#ifndef TRUCK_H
#define TRUCK_H
-#include <vector>
-
#include "icecream.h"
#include "macros.h"
-class BINDINGS_API Truck {
+#include <memory>
+#include <vector>
+
+class BINDINGS_API Truck
+{
public:
- Truck(bool leaveOnDestruction = false);
+ explicit Truck(bool leaveOnDestruction = false);
Truck(const Truck &other);
Truck& operator=(const Truck &other);
+ Truck(Truck &&other);
+ Truck& operator=(Truck &&other);
+
~Truck();
void addIcecreamFlavor(Icecream *icecream);
@@ -76,11 +34,13 @@ public:
std::string getArrivalMessage() const;
private:
- void clearFlavors();
+ using IcecreamPtr = std::shared_ptr<Icecream>;
+
+ void assign(const Truck &other);
bool m_leaveOnDestruction = false;
std::string m_arrivalMessage = "A new icecream truck has arrived!\n";
- std::vector<Icecream *> m_flavors;
+ std::vector<IcecreamPtr> m_flavors;
};
#endif // TRUCK_H
diff --git a/examples/scriptableapplication/CMakeLists.txt b/examples/scriptableapplication/CMakeLists.txt
index 63b70c5da..fbfa00b98 100644
--- a/examples/scriptableapplication/CMakeLists.txt
+++ b/examples/scriptableapplication/CMakeLists.txt
@@ -1,5 +1,8 @@
-cmake_minimum_required(VERSION 3.16)
-cmake_policy(VERSION 3.16)
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+cmake_minimum_required(VERSION 3.18)
+cmake_policy(VERSION 3.18)
# Enable policy to run automoc on generated files.
if(POLICY CMP0071)
@@ -8,17 +11,29 @@ endif()
project(scriptableapplication)
-# Set CPP standard to C++11 minimum.
-set(CMAKE_CXX_STANDARD 11)
+# Set CPP standard to C++17 minimum.
+set(CMAKE_CXX_STANDARD 17)
# Find required Qt packages.
-find_package(Qt6 COMPONENTS Core)
-find_package(Qt6 COMPONENTS Gui)
-find_package(Qt6 COMPONENTS Widgets)
+find_package(Qt6 COMPONENTS Core Gui Widgets)
# Use provided python interpreter if given.
if(NOT python_interpreter)
- find_program(python_interpreter "python")
+ if(WIN32 AND "${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
+ find_program(python_interpreter "python_d")
+ if(NOT python_interpreter)
+ message(FATAL_ERROR
+ "A debug Python interpreter could not be found, which is a requirement when "
+ "building this example in a debug configuration. Make sure python_d.exe is in "
+ "PATH.")
+ endif()
+ else()
+ find_program(python_interpreter "python")
+ if(NOT python_interpreter)
+ message(FATAL_ERROR
+ "No Python interpreter could be found. Make sure python is in PATH.")
+ endif()
+ endif()
endif()
message(STATUS "Using python interpreter: ${python_interpreter}")
@@ -75,8 +90,9 @@ endforeach()
get_target_property(QtCore_is_framework Qt6::Core FRAMEWORK)
if (QtCore_is_framework)
get_target_property(qt_core_library_location Qt6::Core LOCATION)
- get_filename_component(qt_core_library_location_dir "${qt_core_library_location}" DIRECTORY)
- get_filename_component(lib_dir "${qt_core_library_location_dir}/../" ABSOLUTE)
+ # PYSIDE-623: We move up until the directory contains all the frameworks.
+ # This is "lib" in ".../lib/QtCore.framework/Versions/A/QtCore".
+ get_filename_component(lib_dir "${qt_core_library_location}/../../../.." ABSOLUTE)
list(APPEND INCLUDES "--framework-include-paths=${lib_dir}")
endif()
@@ -85,7 +101,7 @@ set(WRAPPED_HEADER ${CMAKE_SOURCE_DIR}/wrappedclasses.h)
set(TYPESYSTEM_FILE ${CMAKE_SOURCE_DIR}/scriptableapplication.xml)
set(SHIBOKEN_OPTIONS --generator-set=shiboken --enable-parent-ctor-heuristic
- --enable-pyside-extensions --enable-return-value-heuristic --use-isnull-as-nb_nonzero
+ --enable-pyside-extensions --enable-return-value-heuristic --use-isnull-as-nb-bool
--avoid-protected-hack
${INCLUDES}
-I${CMAKE_SOURCE_DIR}
diff --git a/examples/scriptableapplication/README.md b/examples/scriptableapplication/README.md
deleted file mode 100644
index d7773c320..000000000
--- a/examples/scriptableapplication/README.md
+++ /dev/null
@@ -1,165 +0,0 @@
-# Scriptable Application
-
-This example demonstrates how to make a Qt C++ application scriptable.
-
-It has a class **MainWindow** (`mainwindow.{cpp,h}`)
-that inherits from *QMainWindow*, for which bindings are generated
-using Shiboken.
-
-The header `wrappedclasses.h` is passed to Shiboken which generates
-class wrappers and headers in a sub directory called **AppLib/**
-which are linked to the application.
-
-The files `pythonutils.{cpp,h}` contain some code which binds the
-instance of **MainWindow** to a variable called **'mainWindow'** in
-the global Python namespace (`__main___`).
-It is then possible to run Python script snippets like:
-
-```python
-mainWindow.testFunction1()
-```
-which trigger the underlying C++ function.
-
-## Building the project
-
-This example can be built using *CMake* or *QMake*,
-but there are common requirements that you need to take into
-consideration:
-
-* Make sure that a --standalone PySide package (bundled with Qt libraries)
- is installed into the current active Python environment
- (system or virtualenv)
-* qmake has to be in your PATH:
- * so that CMake find_package(Qt6 COMPONENTS Core) works (used for include
- headers),
- * used for building the application with qmake instead of CMake
-* use the same Qt version for building the example application, as was used
- for building PySide, this is to ensure binary compatibility between the
- newly generated bindings libraries, the PySide libraries and the
- Qt libraries.
-
-For Windows you will also need:
-* a Visual Studio environment to be active in your terminal
-* Correct visual studio architecture chosen (32 vs 64 bit)
-* Make sure that your Qt + Python + PySide package + app build configuration
- is the same (all Release, which is more likely, or all Debug).
-* Make sure that your Qt + Python + PySide package + app are built with the
- same version of MSVC, to avoid mixing of C++ runtime libraries.
- In principle this means that if you use the python.org provided Python
- interpreters, you need to use MSVC2015 for Python 3 projects.
-
-Both build options will use the `pyside_config.py` file to configure the project
-using the current PySide/Shiboken installation (for qmake via pyside.pri,
-and for CMake via the project CMakeLists.txt).
-
-
-### Using CMake
-
-To build this example with CMake you will need a recent version of CMake (3.1+).
-
-You can build this example by executing the following commands
-(slightly adapted to your file system layout) in a terminal:
-
-macOS/Linux:
-```bash
-cd ~/pyside-setup/examples/scriptableapplication
-```
-
-On Windows:
-```bash
-cd C:\pyside-setup\examples\scriptableapplication
-```
-
-```bash
-mkdir build
-cd build
-cmake -H.. -B. -G Ninja -DCMAKE_BUILD_TYPE=Release
-ninja
-./scriptableapplication
-```
-
-### Using QMake
-
-The file `scriptableapplication.pro` is the project file associated
-to the example when using qmake.
-
-You can build this example by executing:
-```bash
-mkdir build
-cd build
-qmake ..
-make # or nmake / jom for Windows
-```
-
-#### Windows troubleshooting
-
-Using **qmake** should work out of the box, there was a known issue
-with directories and white spaces that is solved by using the
-"~1" character, so the path will change from:
-c:\Program Files\Python34\libs
-to
-c:\Progra~1\Python34\libs
-this will avoid the issues when the Makefiles are generated.
-
-It is possible when using **cmake** to pick up the wrong compiler
-for a different architecture, but it can be addressed explicitly
-using the -G option:
-
-```bash
-cmake -H.. -B. -G "Visual Studio 14 Win64" -DCMAKE_BUILD_TYPE=Release
-```
-
-If the `-G "Visual Studio 14 Win64"` option is used, a `sln` file
-will be generated, and can be used with `MSBuild`
-instead of `nmake/jom`.
-
-```bash
-MSBuild scriptableapplication.sln "/p:Configuration=Release"
-```
-
-Note that using the "NMake Makefiles JOM" generator is preferred to
-the MSBuild one, because in the latter case the executable is placed
-into a directory other than the one that contains the dependency
-dlls (shiboken, pyside). This leads to execution problems if the
-application is started within the Release subdirectory and not the
-one containing the dependencies.
-
-## Virtualenv Support
-
-If the application is started from a terminal with an activated python
-virtual environment, that environment's packages will be used for the
-python module import process.
-In this case, make sure that the application was built while the
-`virtualenv` was active, so that the build system picks up the correct
-python shared library and PySide package.
-
-## Linux Shared Libraries Notes
-
-For this example's purpose, we link against the absolute paths of the
-shared libraries (`libshiboken` and `libpyside`) because the
-installation of the modules is being done via wheels, and there is
-no clean solution to include symbolic links in the package
-(so that regular -lshiboken works).
-
-## Windows Notes
-
-The build config of the application (Debug or Release) should match
-the PySide6 build config, otherwise the application will not properly
-work.
-
-In practice this means the only supported configurations are:
-
-1. release config build of the application +
- PySide `setup.py` without `--debug` flag + `python.exe` for the
- PySide build process + `python36.dll` for the linked in shared
- library + release build of Qt.
-2. debug config build of the application +
- PySide `setup.py` **with** `--debug` flag + `python_d.exe` for the
- PySide build process + `python36_d.dll` for the linked in shared
- library + debug build of Qt.
-
-This is necessary because all the shared libraries in question have to
-link to the same C++ runtime library (`msvcrt.dll` or `msvcrtd.dll`).
-To make the example as self-contained as possible, the shared libraries
-in use (`pyside6.dll`, `shiboken6.dll`) are hard-linked into the build
-folder of the application.
diff --git a/examples/scriptableapplication/doc/scriptableapplication.pyproject b/examples/scriptableapplication/doc/scriptableapplication.pyproject
new file mode 100644
index 000000000..eee541125
--- /dev/null
+++ b/examples/scriptableapplication/doc/scriptableapplication.pyproject
@@ -0,0 +1,9 @@
+{
+ "files": ["../main.cpp",
+ "../mainwindow.cpp",
+ "../mainwindow.h",
+ "../pythonutils.cpp",
+ "../pythonutils.h",
+ "../wrappedclasses.h",
+ "../CMakeLists.txt"]
+}
diff --git a/examples/scriptableapplication/doc/scriptableapplication.rst b/examples/scriptableapplication/doc/scriptableapplication.rst
new file mode 100644
index 000000000..146911f13
--- /dev/null
+++ b/examples/scriptableapplication/doc/scriptableapplication.rst
@@ -0,0 +1,195 @@
+Scriptable Application Example
+==============================
+
+This example demonstrates how to make a Qt C++ application scriptable.
+
+It has a class ``MainWindow`` (files ``mainwindow.cpp,h``)
+that inherits from ``QMainWindow``, for which bindings are generated
+using Shiboken.
+
+The header ``wrappedclasses.h`` is passed to Shiboken which generates
+class wrappers and headers in a sub directory called ``AppLib/``
+which are linked to the application.
+
+The files ``pythonutils.cpp,h`` contain some code which binds the
+instance of ``MainWindow`` to a variable called ``mainWindow`` in
+the global Python namespace (``__main___``).
+It is then possible to run Python script snippets like:
+
+.. code-block:: python
+
+ mainWindow.testFunction1()
+
+which trigger the underlying C++ function.
+
+Building the project
+********************
+
+This example can be built using ``CMake`` or ``QMake``,
+but there are common requirements that you need to take into
+consideration:
+
+* Make sure that a --standalone PySide package (bundled with Qt libraries)
+ is installed into the current active Python environment
+ (system or virtualenv)
+* qmake has to be in your PATH:
+
+ * so that CMake find_package(Qt6 COMPONENTS Core) works (used for include
+ headers),
+ * used for building the application with qmake instead of CMake
+
+* use the same Qt version for building the example application, as was used
+ for building PySide, this is to ensure binary compatibility between the
+ newly generated bindings libraries, the PySide libraries and the
+ Qt libraries.
+
+For Windows you will also need:
+* a Visual Studio environment to be active in your terminal
+
+* Correct visual studio architecture chosen (32 vs 64 bit)
+
+* Make sure that your Qt + Python + PySide package + app build configuration
+ is the same (all Release, which is more likely, or all Debug).
+
+* Make sure that your Qt + Python + PySide package + app are built with a
+ compatible version of MSVC, to avoid mixing of C++ runtime libraries.
+
+Both build options will use the ``pyside_config.py`` file to configure the project
+using the current PySide/Shiboken installation (for qmake via ``pyside.pri``,
+and for CMake via the project ``CMakeLists.txt``).
+
+
+Using CMake
++++++++++++
+
+To build this example with CMake you will need a recent version of CMake (3.16+).
+
+You can build this example by executing the following commands
+(slightly adapted to your file system layout) in a terminal:
+
+macOS/Linux:
+
+.. code-block:: bash
+
+ cd ~/pyside-setup/examples/scriptableapplication
+
+On Windows:
+
+.. code-block:: bash
+
+ cd C:\pyside-setup\examples\scriptableapplication
+
+
+.. code-block:: bash
+
+ mkdir build
+ cd build
+ cmake -S.. -B. -G Ninja -DCMAKE_BUILD_TYPE=Release
+ ninja
+ ./scriptableapplication
+
+Using QMake
++++++++++++
+
+The file ``scriptableapplication.pro`` is the project file associated
+to the example when using qmake.
+
+You can build this example by executing:
+
+.. code-block:: bash
+
+ mkdir build
+ cd build
+ qmake ..
+ make # or nmake / jom for Windows
+
+
+Windows troubleshooting
+***********************
+
+Using ``qmake`` should work out of the box, there was a known issue
+with directories and white spaces that is solved by using the
+"~1" character, so the path will change from:
+``c:\Program Files\Python39\libs``
+to
+``c:\Progra~1\Python39\libs``
+this will avoid the issues when the Makefiles are generated.
+
+It is possible when using ``CMake`` to pick up the wrong compiler
+for a different architecture, but it can be addressed explicitly
+by setting the ``CC`` environment variable:
+
+.. code-block:: bash
+
+ set CC=cl
+
+passing the compiler on the command line:
+
+.. code-block:: bash
+
+ cmake -S.. -B. -DCMAKE_C_COMPILER=cl.exe -DCMAKE_CXX_COMPILER=cl.exe
+
+or using the -G option:
+
+.. code-block:: bash
+
+ cmake -S.. -B. -G "Visual Studio 14 Win64" -DCMAKE_BUILD_TYPE=Release
+
+
+If the ``-G "Visual Studio 14 Win64"`` option is used, a ``sln`` file
+will be generated, and can be used with ``MSBuild``
+instead of ``ninja``.
+
+.. code-block:: bash
+
+ MSBuild scriptableapplication.sln "/p:Configuration=Release"
+
+Note that using the "Ninja" generator is preferred to
+the MSBuild one, because in the latter case the executable is placed
+into a directory other than the one that contains the dependency
+dlls (shiboken, pyside). This leads to execution problems if the
+application is started within the Release subdirectory and not the
+one containing the dependencies.
+
+Virtualenv Support
+******************
+
+If the application is started from a terminal with an activated python
+virtual environment, that environment's packages will be used for the
+python module import process.
+In this case, make sure that the application was built while the
+`virtualenv` was active, so that the build system picks up the correct
+python shared library and PySide package.
+
+Linux Shared Libraries Notes
+****************************
+
+For this example's purpose, we link against the absolute paths of the
+shared libraries (``libshiboken`` and ``libpyside``) because the
+installation of the modules is being done via wheels, and there is
+no clean solution to include symbolic links in the package
+(so that regular -lshiboken works).
+
+Windows Notes
+*************
+
+The build config of the application (Debug or Release) should match
+the PySide6 build config, otherwise the application will not properly
+work.
+
+In practice this means the only supported configurations are:
+
+#. release config build of the application +
+ PySide ``setup.py`` without ``--debug`` flag + ``python.exe`` for the
+ PySide build process + ``python39.dll`` for the linked in shared
+ library + release build of Qt.
+#. debug config build of the application +
+ PySide ``setup.py`` *with* ``--debug`` flag + ``python_d.exe`` for the
+ PySide build process + ``python39_d.dll`` for the linked in shared
+ library + debug build of Qt.
+
+This is necessary because all the shared libraries in question have to
+link to the same C++ runtime library (``msvcrt.dll`` or ``msvcrtd.dll``).
+To make the example as self-contained as possible, the shared libraries
+in use (``pyside6.dll``, ``shiboken6.dll``) are hard-linked into the build
+folder of the application.
diff --git a/examples/scriptableapplication/main.cpp b/examples/scriptableapplication/main.cpp
index 331417932..8fe7ee8a8 100644
--- a/examples/scriptableapplication/main.cpp
+++ b/examples/scriptableapplication/main.cpp
@@ -1,52 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the Qt for Python examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
#include "mainwindow.h"
diff --git a/examples/scriptableapplication/mainwindow.cpp b/examples/scriptableapplication/mainwindow.cpp
index 15c8b59f0..ece7989e7 100644
--- a/examples/scriptableapplication/mainwindow.cpp
+++ b/examples/scriptableapplication/mainwindow.cpp
@@ -1,52 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the Qt for Python examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
#include "mainwindow.h"
#include "pythonutils.h"
@@ -66,37 +19,44 @@
#include <QtCore/QDebug>
#include <QtCore/QTextStream>
-static const char defaultScript[] = R"(
-import AppLib
+using namespace Qt::StringLiterals;
+
+static const auto defaultScript = R"(import AppLib
print("Hello, world")
mainWindow.testFunction1()
-)";
+)"_L1;
MainWindow::MainWindow()
- : m_scriptEdit(new QPlainTextEdit(QString::fromLatin1(defaultScript).trimmed(), this))
+ : m_scriptEdit(new QPlainTextEdit(defaultScript, this))
{
setWindowTitle(tr("Scriptable Application"));
- QMenu *fileMenu = menuBar()->addMenu(tr("&File"));
- const QIcon runIcon = QIcon::fromTheme(QStringLiteral("system-run"));
- QAction *runAction = fileMenu->addAction(runIcon, tr("&Run..."), this, &MainWindow::slotRunScript);
+ auto *fileMenu = menuBar()->addMenu(tr("&File"));
+ const QIcon runIcon = QIcon::fromTheme("system-run"_L1);
+ auto *runAction = fileMenu->addAction(runIcon, tr("&Run..."),
+ this, &MainWindow::slotRunScript);
runAction->setShortcut(Qt::CTRL | Qt::Key_R);
- QAction *diagnosticAction = fileMenu->addAction(tr("&Print Diagnostics"), this, &MainWindow::slotPrintDiagnostics);
+ auto *diagnosticAction = fileMenu->addAction(tr("&Print Diagnostics"),
+ this, &MainWindow::slotPrintDiagnostics);
diagnosticAction->setShortcut(Qt::CTRL | Qt::Key_D);
- fileMenu->addAction(tr("&Invoke testFunction1()"), this, &MainWindow::testFunction1);
- const QIcon quitIcon = QIcon::fromTheme(QStringLiteral("application-exit"));
- QAction *quitAction = fileMenu->addAction(quitIcon, tr("&Quit"), qApp, &QCoreApplication::quit);
+ fileMenu->addAction(tr("&Invoke testFunction1()"),
+ this, &MainWindow::testFunction1);
+ const QIcon quitIcon = QIcon::fromTheme(QIcon::ThemeIcon::ApplicationExit);
+ auto *quitAction = fileMenu->addAction(quitIcon, tr("&Quit"),
+ qApp, &QCoreApplication::quit);
quitAction->setShortcut(Qt::CTRL | Qt::Key_Q);
- QMenu *editMenu = menuBar()->addMenu(tr("&Edit"));
- const QIcon clearIcon = QIcon::fromTheme(QStringLiteral("edit-clear"));
- QAction *clearAction = editMenu->addAction(clearIcon, tr("&Clear"), m_scriptEdit, &QPlainTextEdit::clear);
+ auto *editMenu = menuBar()->addMenu(tr("&Edit"));
+ const QIcon clearIcon = QIcon::fromTheme(QIcon::ThemeIcon::EditClear);
+ auto *clearAction = editMenu->addAction(clearIcon, tr("&Clear"),
+ m_scriptEdit, &QPlainTextEdit::clear);
- QMenu *helpMenu = menuBar()->addMenu(tr("&Help"));
- const QIcon aboutIcon = QIcon::fromTheme(QStringLiteral("help-about"));
- QAction *aboutAction = helpMenu->addAction(aboutIcon, tr("&About Qt"), qApp, &QApplication::aboutQt);
+ auto *helpMenu = menuBar()->addMenu(tr("&Help"));
+ const QIcon aboutIcon = QIcon::fromTheme(QIcon::ThemeIcon::HelpAbout);
+ auto *aboutAction = helpMenu->addAction(aboutIcon, tr("&About Qt"),
+ qApp, &QApplication::aboutQt);
- QToolBar *toolBar = new QToolBar;
+ auto *toolBar = new QToolBar;
addToolBar(toolBar);
toolBar->addAction(quitAction);
toolBar->addSeparator();
@@ -109,25 +69,29 @@ MainWindow::MainWindow()
m_scriptEdit->setFont(QFontDatabase::systemFont(QFontDatabase::FixedFont));
setCentralWidget(m_scriptEdit);
- if (!PythonUtils::bindAppObject("__main__", "mainWindow", PythonUtils::MainWindowType, this))
+ if (!PythonUtils::bindAppObject("__main__"_L1, "mainWindow"_L1,
+ PythonUtils::MainWindowType, this)) {
statusBar()->showMessage(tr("Error loading the application module"));
+ }
}
void MainWindow::slotRunScript()
{
- const QStringList script = m_scriptEdit->toPlainText().trimmed().split(QLatin1Char('\n'), Qt::SkipEmptyParts);
- if (!script.isEmpty())
- runScript(script);
+ const QString text = m_scriptEdit->toPlainText().trimmed();
+ if (!text.isEmpty())
+ runScript(text);
}
void MainWindow::slotPrintDiagnostics()
{
- const QStringList script = QStringList()
- << "import sys" << "print('Path=', sys.path)" << "print('Executable=', sys.executable)";
+ const QString script = R"P(import sys
+print('Path=', sys.path)
+print('Executable=', sys.executable)
+)P"_L1;
runScript(script);
}
-void MainWindow::runScript(const QStringList &script)
+void MainWindow::runScript(const QString &script)
{
if (!::PythonUtils::runScript(script))
statusBar()->showMessage(tr("Error running script"));
diff --git a/examples/scriptableapplication/mainwindow.h b/examples/scriptableapplication/mainwindow.h
index ce613833c..e72f5ca72 100644
--- a/examples/scriptableapplication/mainwindow.h
+++ b/examples/scriptableapplication/mainwindow.h
@@ -1,59 +1,12 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the Qt for Python examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QtWidgets/QMainWindow>
-class QPlainTextEdit;
+QT_FORWARD_DECLARE_CLASS(QPlainTextEdit)
class MainWindow : public QMainWindow
{
@@ -63,12 +16,14 @@ public:
void testFunction1();
+ static constexpr auto TEST = QLatin1StringView("test");
+
private Q_SLOTS:
void slotRunScript();
void slotPrintDiagnostics();
private:
- void runScript(const QStringList &);
+ void runScript(const QString &);
QPlainTextEdit *m_scriptEdit;
};
diff --git a/examples/scriptableapplication/pythonutils.cpp b/examples/scriptableapplication/pythonutils.cpp
index c23bc46e9..8104bb167 100644
--- a/examples/scriptableapplication/pythonutils.cpp
+++ b/examples/scriptableapplication/pythonutils.cpp
@@ -1,52 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the Qt for Python examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
#include "pythonutils.h"
@@ -161,20 +114,14 @@ bool bindAppObject(const QString &moduleName, const QString &name,
return true;
}
-bool runScript(const QStringList &script)
+bool runScript(const QString &script)
{
if (init() == PythonUninitialized)
return false;
- // Concatenating all the lines
- QString content;
- QTextStream ss(&content);
- for (const QString &line: script)
- ss << line << "\n";
-
// Executing the whole script as one line
bool result = true;
- const QByteArray line = content.toUtf8();
+ const QByteArray line = script.toUtf8();
if (PyRun_SimpleString(line.constData()) == -1) {
if (PyErr_Occurred())
PyErr_Print();
diff --git a/examples/scriptableapplication/pythonutils.h b/examples/scriptableapplication/pythonutils.h
index 942dee508..09e959159 100644
--- a/examples/scriptableapplication/pythonutils.h
+++ b/examples/scriptableapplication/pythonutils.h
@@ -1,59 +1,12 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the Qt for Python examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
#ifndef PYTHONUTILS_H
#define PYTHONUTILS_H
#include <QtCore/QStringList>
-class QObject;
+QT_FORWARD_DECLARE_CLASS(QObject)
namespace PythonUtils {
@@ -74,7 +27,7 @@ State init();
bool bindAppObject(const QString &moduleName, const QString &name,
int index, QObject *o);
-bool runScript(const QStringList &script);
+bool runScript(const QString &script);
} // namespace PythonUtils
diff --git a/examples/scriptableapplication/scriptableapplication.xml b/examples/scriptableapplication/scriptableapplication.xml
index 7ef2e9f9e..ef401cb62 100644
--- a/examples/scriptableapplication/scriptableapplication.xml
+++ b/examples/scriptableapplication/scriptableapplication.xml
@@ -1,54 +1,7 @@
<?xml version="1.0"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the Qt for Python examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-->
<typesystem package="AppLib">
<load-typesystem name="typesystem_widgets.xml" generate="no"/>
diff --git a/examples/scriptableapplication/wrappedclasses.h b/examples/scriptableapplication/wrappedclasses.h
index d7661429e..b31ca7f44 100644
--- a/examples/scriptableapplication/wrappedclasses.h
+++ b/examples/scriptableapplication/wrappedclasses.h
@@ -1,52 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the Qt for Python examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
#ifndef WRAPPEDCLASSES_H
#define WRAPPEDCLASSES_H
diff --git a/examples/serialbus/can/bitratebox.py b/examples/serialbus/can/bitratebox.py
new file mode 100644
index 000000000..68c70baac
--- /dev/null
+++ b/examples/serialbus/can/bitratebox.py
@@ -0,0 +1,55 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtWidgets import QComboBox
+from PySide6.QtGui import QIntValidator
+from PySide6.QtCore import Slot
+
+
+class BitRateBox(QComboBox):
+
+ def __init__(self, parent):
+ super().__init__(parent)
+ self.m_isFlexibleDataRateEnabled = False
+ self.m_customSpeedValidator = None
+ self.m_customSpeedValidator = QIntValidator(0, 1000000, self)
+ self.fill_bit_rates()
+ self.currentIndexChanged.connect(self.check_custom_speed_policy)
+
+ def bit_rate(self):
+ index = self.currentIndex()
+ if index == self.count() - 1:
+ return int(self.currentText)
+ return int(self.itemData(index))
+
+ def is_flexible_data_rate_enabled(self):
+ return self.m_isFlexibleDataRateEnabled
+
+ def set_flexible_date_rate_enabled(self, enabled):
+ self.m_isFlexibleDataRateEnabled = enabled
+ self.m_customSpeedValidator.setTop(10000000 if enabled else 1000000)
+ self.fill_bit_rates()
+
+ @Slot(int)
+ def check_custom_speed_policy(self, idx):
+ is_custom_speed = not self.itemData(idx)
+ self.setEditable(is_custom_speed)
+ if is_custom_speed:
+ self.clearEditText()
+ self.lineEdit().setValidator(self.m_customSpeedValidator)
+
+ def fill_bit_rates(self):
+ rates = [10000, 20000, 50000, 100000, 125000, 250000, 500000,
+ 800000, 1000000]
+ data_rates = [2000000, 4000000, 8000000]
+
+ self.clear()
+ for rate in rates:
+ self.addItem(f"{rate}", rate)
+
+ if self.is_flexible_data_rate_enabled():
+ for rate in data_rates:
+ self.addItem(f"{rate}", rate)
+
+ self.addItem("Custom")
+ self.setCurrentIndex(6) # default is 500000 bits/sec
diff --git a/examples/serialbus/can/can.pyproject b/examples/serialbus/can/can.pyproject
new file mode 100644
index 000000000..288f5f225
--- /dev/null
+++ b/examples/serialbus/can/can.pyproject
@@ -0,0 +1,10 @@
+{
+ "files": ["main.py", "bitratebox.py",
+ "canbusdeviceinfobox.py", "canbusdeviceinfobox.ui",
+ "canbusdeviceinfodialog.py", "canbusdeviceinfodialog.ui",
+ "connectdialog.py", "connectdialog.ui",
+ "mainwindow.py", "mainwindow.ui",
+ "receivedframesmodel.py", "receivedframesview.py",
+ "sendframebox.py", "sendframebox.ui",
+ "can.qrc"]
+}
diff --git a/examples/serialbus/can/can.qrc b/examples/serialbus/can/can.qrc
new file mode 100644
index 000000000..1b8d697b5
--- /dev/null
+++ b/examples/serialbus/can/can.qrc
@@ -0,0 +1,8 @@
+<RCC>
+ <qresource prefix="/">
+ <file>images/connect.png</file>
+ <file>images/disconnect.png</file>
+ <file>images/application-exit.png</file>
+ <file>images/clear.png</file>
+ </qresource>
+</RCC>
diff --git a/examples/serialbus/can/canbusdeviceinfobox.py b/examples/serialbus/can/canbusdeviceinfobox.py
new file mode 100644
index 000000000..5e6049265
--- /dev/null
+++ b/examples/serialbus/can/canbusdeviceinfobox.py
@@ -0,0 +1,49 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import Qt
+from PySide6.QtWidgets import QGroupBox
+
+from ui_canbusdeviceinfobox import Ui_CanBusDeviceInfoBox
+
+
+def _set_readonly_and_compact(box):
+ box.setAttribute(Qt.WA_TransparentForMouseEvents)
+ box.setFocusPolicy(Qt.NoFocus)
+ box.setStyleSheet("margin-top:0; margin-bottom:0;")
+
+
+class CanBusDeviceInfoBox(QGroupBox):
+
+ def __init__(self, parent):
+ super().__init__(parent)
+ self.m_ui = Ui_CanBusDeviceInfoBox()
+ self.m_ui.setupUi(self)
+ _set_readonly_and_compact(self.m_ui.isVirtual)
+ _set_readonly_and_compact(self.m_ui.isFlexibleDataRateCapable)
+
+ def clear(self):
+ self.m_ui.pluginLabel.clear()
+ self.m_ui.nameLabel.clear()
+ self.m_ui.descriptionLabel.clear()
+ self.m_ui.serialNumberLabel.clear()
+ self.m_ui.aliasLabel.clear()
+ self.m_ui.channelLabel.clear()
+ self.m_ui.isVirtual.setChecked(False)
+ self.m_ui.isFlexibleDataRateCapable.setChecked(False)
+
+ def set_device_info(self, info):
+ self.m_ui.pluginLabel.setText(f"Plugin: {info.plugin()}")
+ self.m_ui.nameLabel.setText(f"Name: {info.name()}")
+ self.m_ui.descriptionLabel.setText(info.description())
+ serial_number = info.serialNumber()
+ if not serial_number:
+ serial_number = "n/a"
+ self.m_ui.serialNumberLabel.setText(f"Serial: {serial_number}")
+ alias = info.alias()
+ if not alias:
+ alias = "n/a"
+ self.m_ui.aliasLabel.setText(f"Alias: {alias}")
+ self.m_ui.channelLabel.setText(f"Channel: {info.channel()}")
+ self.m_ui.isVirtual.setChecked(info.isVirtual())
+ self.m_ui.isFlexibleDataRateCapable.setChecked(info.hasFlexibleDataRate())
diff --git a/examples/serialbus/can/canbusdeviceinfobox.ui b/examples/serialbus/can/canbusdeviceinfobox.ui
new file mode 100644
index 000000000..d4dd84fb2
--- /dev/null
+++ b/examples/serialbus/can/canbusdeviceinfobox.ui
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>CanBusDeviceInfoBox</class>
+ <widget class="QGroupBox" name="CanBusDeviceInfoBox">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>319</width>
+ <height>217</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>CAN Interface Properties</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QLabel" name="pluginLabel">
+ <property name="text">
+ <string/>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="nameLabel">
+ <property name="text">
+ <string/>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="descriptionLabel">
+ <property name="text">
+ <string/>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="serialNumberLabel">
+ <property name="text">
+ <string/>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="aliasLabel">
+ <property name="text">
+ <string/>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="channelLabel">
+ <property name="text">
+ <string/>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="isFlexibleDataRateCapable">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="text">
+ <string>Flexible Data Rate</string>
+ </property>
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="isVirtual">
+ <property name="text">
+ <string>Virtual</string>
+ </property>
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/examples/serialbus/can/canbusdeviceinfodialog.py b/examples/serialbus/can/canbusdeviceinfodialog.py
new file mode 100644
index 000000000..dfb4e6025
--- /dev/null
+++ b/examples/serialbus/can/canbusdeviceinfodialog.py
@@ -0,0 +1,16 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtWidgets import QDialog
+
+from ui_canbusdeviceinfodialog import Ui_CanBusDeviceInfoDialog
+
+
+class CanBusDeviceInfoDialog(QDialog):
+
+ def __init__(self, info, parent):
+ super().__init__(parent)
+ self.m_ui = Ui_CanBusDeviceInfoDialog()
+ self.m_ui.setupUi(self)
+ self.m_ui.deviceInfoBox.set_device_info(info)
+ self.m_ui.okButton.pressed.connect(self.close)
diff --git a/examples/serialbus/can/canbusdeviceinfodialog.ui b/examples/serialbus/can/canbusdeviceinfodialog.ui
new file mode 100644
index 000000000..6328a06d1
--- /dev/null
+++ b/examples/serialbus/can/canbusdeviceinfodialog.ui
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>CanBusDeviceInfoDialog</class>
+ <widget class="QDialog" name="CanBusDeviceInfoDialog">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>237</width>
+ <height>225</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>CAN Interface Properties</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="CanBusDeviceInfoBox" name="deviceInfoBox">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="title">
+ <string>CAN Interface Properties</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <spacer name="horizontalSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="okButton">
+ <property name="text">
+ <string>Ok</string>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <customwidgets>
+ <customwidget>
+ <class>CanBusDeviceInfoBox</class>
+ <extends>QGroupBox</extends>
+ <header location="global">canbusdeviceinfobox.h</header>
+ <container>1</container>
+ </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/examples/serialbus/can/connectdialog.py b/examples/serialbus/can/connectdialog.py
new file mode 100644
index 000000000..a6d5ac378
--- /dev/null
+++ b/examples/serialbus/can/connectdialog.py
@@ -0,0 +1,235 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QSettings, Qt, Slot
+from PySide6.QtGui import QIntValidator
+from PySide6.QtWidgets import QDialog
+from PySide6.QtSerialBus import QCanBus, QCanBusDevice
+
+from ui_connectdialog import Ui_ConnectDialog
+
+
+class Settings():
+ def __init__(self):
+ self.plugin_name = ""
+ self.device_interface_name = ""
+ self.configurations = []
+ self.use_configuration_enabled = False
+ self.use_model_ring_buffer = True
+ self.model_ring_buffer_size = 1000
+ self.use_autoscroll = False
+
+
+class ConnectDialog(QDialog):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.m_ui = Ui_ConnectDialog()
+ self.m_currentSettings = Settings()
+ self.m_interfaces = []
+ self.m_settings = QSettings("QtProject", "CAN example")
+ self.m_ui.setupUi(self)
+
+ self.m_ui.errorFilterEdit.setValidator(QIntValidator(0, 0x1FFFFFFF, self))
+
+ self.m_ui.loopbackBox.addItem("unspecified")
+ self.m_ui.loopbackBox.addItem("False", False)
+ self.m_ui.loopbackBox.addItem("True", True)
+
+ self.m_ui.receiveOwnBox.addItem("unspecified")
+ self.m_ui.receiveOwnBox.addItem("False", False)
+ self.m_ui.receiveOwnBox.addItem("True", True)
+
+ self.m_ui.canFdBox.addItem("False", False)
+ self.m_ui.canFdBox.addItem("True", True)
+
+ self.m_ui.dataBitrateBox.set_flexible_date_rate_enabled(True)
+
+ self.m_ui.okButton.clicked.connect(self.ok)
+ self.m_ui.cancelButton.clicked.connect(self.cancel)
+ self.m_ui.useConfigurationBox.toggled.connect(self.m_ui.configurationBox.setEnabled)
+ self.m_ui.pluginListBox.currentTextChanged.connect(self.plugin_changed)
+ self.m_ui.interfaceListBox.currentTextChanged.connect(self.interface_changed)
+ self.m_ui.ringBufferBox.stateChanged.connect(self._ring_buffer_changed)
+
+ self.m_ui.rawFilterEdit.hide()
+ self.m_ui.rawFilterLabel.hide()
+
+ self.m_ui.pluginListBox.addItems(QCanBus.instance().plugins())
+
+ self.restore_settings()
+
+ @Slot(int)
+ def _ring_buffer_changed(self, state):
+ self.m_ui.ringBufferLimitBox.setEnabled(state == Qt.CheckState.Checked.value)
+
+ def settings(self):
+ return self.m_currentSettings
+
+ def save_settings(self):
+ qs = self.m_settings
+ cur = self.m_currentSettings
+ qs.beginGroup("LastSettings")
+ qs.setValue("PluginName", self.m_currentSettings.plugin_name)
+ qs.setValue("DeviceInterfaceName", cur.device_interface_name)
+ qs.setValue("UseAutoscroll", cur.use_autoscroll)
+ qs.setValue("UseRingBuffer", cur.use_model_ring_buffer)
+ qs.setValue("RingBufferSize", cur.model_ring_buffer_size)
+ qs.setValue("UseCustomConfiguration", cur.use_configuration_enabled)
+
+ if cur.use_configuration_enabled:
+ qs.setValue("Loopback",
+ self.configuration_value(QCanBusDevice.LoopbackKey))
+ qs.setValue("ReceiveOwn",
+ self.configuration_value(QCanBusDevice.ReceiveOwnKey))
+ qs.setValue("ErrorFilter",
+ self.configuration_value(QCanBusDevice.ErrorFilterKey))
+ qs.setValue("BitRate",
+ self.configuration_value(QCanBusDevice.BitRateKey))
+ qs.setValue("CanFd",
+ self.configuration_value(QCanBusDevice.CanFdKey))
+ qs.setValue("DataBitRate",
+ self.configuration_value(QCanBusDevice.DataBitRateKey))
+ qs.endGroup()
+
+ def restore_settings(self):
+ qs = self.m_settings
+ cur = self.m_currentSettings
+ qs.beginGroup("LastSettings")
+ cur.plugin_name = qs.value("PluginName", "", str)
+ cur.device_interface_name = qs.value("DeviceInterfaceName", "", str)
+ cur.use_autoscroll = qs.value("UseAutoscroll", False, bool)
+ cur.use_model_ring_buffer = qs.value("UseRingBuffer", False, bool)
+ cur.model_ring_buffer_size = qs.value("RingBufferSize", 0, int)
+ cur.use_configuration_enabled = qs.value("UseCustomConfiguration", False, bool)
+
+ self.revert_settings()
+
+ if cur.use_configuration_enabled:
+ self.m_ui.loopbackBox.setCurrentText(qs.value("Loopback"))
+ self.m_ui.receiveOwnBox.setCurrentText(qs.value("ReceiveOwn"))
+ self.m_ui.errorFilterEdit.setText(qs.value("ErrorFilter"))
+ self.m_ui.bitrateBox.setCurrentText(qs.value("BitRate"))
+ self.m_ui.canFdBox.setCurrentText(qs.value("CanFd"))
+ self.m_ui.dataBitrateBox.setCurrentText(qs.value("DataBitRate"))
+
+ qs.endGroup()
+ self.update_settings()
+
+ @Slot(str)
+ def plugin_changed(self, plugin):
+ self.m_ui.interfaceListBox.clear()
+ interfaces, error_string = QCanBus.instance().availableDevices(plugin)
+ self.m_interfaces = interfaces
+ for info in self.m_interfaces:
+ self.m_ui.interfaceListBox.addItem(info.name())
+
+ @Slot(str)
+ def interface_changed(self, interface):
+ for info in self.m_interfaces:
+ if interface == info.name():
+ self.m_ui.deviceInfoBox.set_device_info(info)
+ return
+ self.m_ui.deviceInfoBox.clear()
+
+ @Slot()
+ def ok(self):
+ self.update_settings()
+ self.save_settings()
+ self.accept()
+
+ @Slot()
+ def cancel(self):
+ self.revert_settings()
+ self.reject()
+
+ def configuration_value(self, key):
+ result = None
+ for k, v in self.m_currentSettings.configurations:
+ if k == key:
+ result = v
+ break
+ if not result and (key == QCanBusDevice.LoopbackKey or key == QCanBusDevice.ReceiveOwnKey):
+ return "unspecified"
+ return str(result)
+
+ def revert_settings(self):
+ self.m_ui.pluginListBox.setCurrentText(self.m_currentSettings.plugin_name)
+ self.m_ui.interfaceListBox.setCurrentText(self.m_currentSettings.device_interface_name)
+ self.m_ui.useConfigurationBox.setChecked(self.m_currentSettings.use_configuration_enabled)
+
+ self.m_ui.ringBufferBox.setChecked(self.m_currentSettings.use_model_ring_buffer)
+ self.m_ui.ringBufferLimitBox.setValue(self.m_currentSettings.model_ring_buffer_size)
+ self.m_ui.autoscrollBox.setChecked(self.m_currentSettings.use_autoscroll)
+
+ value = self.configuration_value(QCanBusDevice.LoopbackKey)
+ self.m_ui.loopbackBox.setCurrentText(value)
+
+ value = self.configuration_value(QCanBusDevice.ReceiveOwnKey)
+ self.m_ui.receiveOwnBox.setCurrentText(value)
+
+ value = self.configuration_value(QCanBusDevice.ErrorFilterKey)
+ self.m_ui.errorFilterEdit.setText(value)
+
+ value = self.configuration_value(QCanBusDevice.BitRateKey)
+ self.m_ui.bitrateBox.setCurrentText(value)
+
+ value = self.configuration_value(QCanBusDevice.CanFdKey)
+ self.m_ui.canFdBox.setCurrentText(value)
+
+ value = self.configuration_value(QCanBusDevice.DataBitRateKey)
+ self.m_ui.dataBitrateBox.setCurrentText(value)
+
+ def update_settings(self):
+ self.m_currentSettings.plugin_name = self.m_ui.pluginListBox.currentText()
+ self.m_currentSettings.device_interface_name = self.m_ui.interfaceListBox.currentText()
+ self.m_currentSettings.use_configuration_enabled = self.m_ui.useConfigurationBox.isChecked()
+
+ self.m_currentSettings.use_model_ring_buffer = self.m_ui.ringBufferBox.isChecked()
+ self.m_currentSettings.model_ring_buffer_size = self.m_ui.ringBufferLimitBox.value()
+ self.m_currentSettings.use_autoscroll = self.m_ui.autoscrollBox.isChecked()
+
+ if self.m_currentSettings.use_configuration_enabled:
+ self.m_currentSettings.configurations.clear()
+ # process LoopBack
+ if self.m_ui.loopbackBox.currentIndex() != 0:
+ item = (QCanBusDevice.LoopbackKey, self.m_ui.loopbackBox.currentData())
+ self.m_currentSettings.configurations.append(item)
+
+ # process ReceiveOwnKey
+ if self.m_ui.receiveOwnBox.currentIndex() != 0:
+ item = (QCanBusDevice.ReceiveOwnKey, self.m_ui.receiveOwnBox.currentData())
+ self.m_currentSettings.configurations.append(item)
+
+ # process error filter
+ error_filter = self.m_ui.errorFilterEdit.text()
+ if error_filter:
+ ok = False
+ try:
+ int(error_filter) # check if value contains a valid integer
+ ok = True
+ except ValueError:
+ pass
+ if ok:
+ item = (QCanBusDevice.ErrorFilterKey, error_filter)
+ self.m_currentSettings.configurations.append(item)
+
+ # process raw filter list
+ if self.m_ui.rawFilterEdit.text():
+ pass # TODO current ui not sufficient to reflect this param
+
+ # process bitrate
+ bitrate = self.m_ui.bitrateBox.bit_rate()
+ if bitrate > 0:
+ item = (QCanBusDevice.BitRateKey, bitrate)
+ self.m_currentSettings.configurations.append(item)
+
+ # process CAN FD setting
+ fd_item = (QCanBusDevice.CanFdKey, self.m_ui.canFdBox.currentData())
+ self.m_currentSettings.configurations.append(fd_item)
+
+ # process data bitrate
+ data_bitrate = self.m_ui.dataBitrateBox.bit_rate()
+ if data_bitrate > 0:
+ item = (QCanBusDevice.DataBitRateKey, data_bitrate)
+ self.m_currentSettings.configurations.append(item)
diff --git a/examples/serialbus/can/connectdialog.ui b/examples/serialbus/can/connectdialog.ui
new file mode 100644
index 000000000..97e6e0050
--- /dev/null
+++ b/examples/serialbus/can/connectdialog.ui
@@ -0,0 +1,278 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>ConnectDialog</class>
+ <widget class="QDialog" name="ConnectDialog">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>542</width>
+ <height>558</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Connect</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout_6">
+ <item row="0" column="0">
+ <layout class="QGridLayout" name="gridLayout_5">
+ <item row="0" column="0">
+ <widget class="QGroupBox" name="selectPluginBox">
+ <property name="title">
+ <string>Select CAN plugin</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="0" column="0">
+ <widget class="QComboBox" name="pluginListBox"/>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="4" column="0" colspan="2">
+ <widget class="QGroupBox" name="groupBox">
+ <property name="title">
+ <string>GUI Settings</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout_2">
+ <item row="0" column="0">
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
+ <item>
+ <widget class="QCheckBox" name="ringBufferBox">
+ <property name="toolTip">
+ <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Use ring buffer in table view model&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+ </property>
+ <property name="text">
+ <string>Use ring buffer</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="ringBufferLimitBox">
+ <property name="toolTip">
+ <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Limit of ring buffer in table view model&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+ </property>
+ <property name="minimum">
+ <number>10</number>
+ </property>
+ <property name="maximum">
+ <number>10000000</number>
+ </property>
+ <property name="singleStep">
+ <number>10</number>
+ </property>
+ <property name="stepType">
+ <enum>QAbstractSpinBox::AdaptiveDecimalStepType</enum>
+ </property>
+ <property name="value">
+ <number>1000</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="autoscrollBox">
+ <property name="toolTip">
+ <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Scroll to bottom table view on each portion of received frames&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+ </property>
+ <property name="text">
+ <string>Autoscroll</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <widget class="QCheckBox" name="useConfigurationBox">
+ <property name="text">
+ <string>Custom configuration</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" rowspan="4">
+ <widget class="QGroupBox" name="configurationBox">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="title">
+ <string>Specify Configuration</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout_4">
+ <item row="0" column="0">
+ <widget class="QLabel" name="rawFilterLabel">
+ <property name="text">
+ <string>RAW Filter</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QLineEdit" name="rawFilterEdit">
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="errorFilterLabel">
+ <property name="text">
+ <string>Error Filter</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QLineEdit" name="errorFilterEdit">
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ <property name="placeholderText">
+ <string>FrameError bits</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="loopbackLabel">
+ <property name="text">
+ <string>Loopback</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="QComboBox" name="loopbackBox"/>
+ </item>
+ <item row="3" column="0">
+ <widget class="QLabel" name="receiveOwnLabel">
+ <property name="text">
+ <string>Receive Own</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1">
+ <widget class="QComboBox" name="receiveOwnBox"/>
+ </item>
+ <item row="4" column="0">
+ <widget class="QLabel" name="bitrateLabel">
+ <property name="text">
+ <string>Bitrate</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="1">
+ <widget class="BitRateBox" name="bitrateBox"/>
+ </item>
+ <item row="5" column="0">
+ <widget class="QLabel" name="canFdLabel">
+ <property name="text">
+ <string>CAN FD</string>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="1">
+ <widget class="QComboBox" name="canFdBox"/>
+ </item>
+ <item row="6" column="0">
+ <widget class="QLabel" name="dataBitrateLabel">
+ <property name="text">
+ <string>Data Bitrate</string>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="1">
+ <widget class="BitRateBox" name="dataBitrateBox"/>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="5" column="0" colspan="2">
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <spacer name="horizontalSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>96</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="cancelButton">
+ <property name="text">
+ <string>Cancel</string>
+ </property>
+ <property name="autoDefault">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="okButton">
+ <property name="text">
+ <string>OK</string>
+ </property>
+ <property name="autoDefault">
+ <bool>false</bool>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="1" column="0">
+ <widget class="QGroupBox" name="specifyInterfaceNameBox">
+ <property name="title">
+ <string>Specify CAN interface name</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout_3">
+ <item row="0" column="0">
+ <widget class="QComboBox" name="interfaceListBox">
+ <property name="editable">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="CanBusDeviceInfoBox" name="deviceInfoBox">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="title">
+ <string>CAN Interface Properties</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <customwidgets>
+ <customwidget>
+ <class>BitRateBox</class>
+ <extends>QComboBox</extends>
+ <header>bitratebox.h</header>
+ </customwidget>
+ <customwidget>
+ <class>CanBusDeviceInfoBox</class>
+ <extends>QGroupBox</extends>
+ <header location="global">canbusdeviceinfobox.h</header>
+ <container>1</container>
+ </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/examples/serialbus/can/doc/can.rst b/examples/serialbus/can/doc/can.rst
new file mode 100644
index 000000000..e6c156be1
--- /dev/null
+++ b/examples/serialbus/can/doc/can.rst
@@ -0,0 +1,6 @@
+CAN Bus example
+===============
+
+The example sends and receives CAN bus frames. The example sends and receives
+CAN bus frames. Incoming frames are ordered according to their type. A connect
+dialog is provided to adjust the CAN Bus connection parameters.
diff --git a/examples/serialbus/can/images/application-exit.png b/examples/serialbus/can/images/application-exit.png
new file mode 100644
index 000000000..32be6b3f1
--- /dev/null
+++ b/examples/serialbus/can/images/application-exit.png
Binary files differ
diff --git a/examples/serialbus/can/images/clear.png b/examples/serialbus/can/images/clear.png
new file mode 100644
index 000000000..aa612f1f3
--- /dev/null
+++ b/examples/serialbus/can/images/clear.png
Binary files differ
diff --git a/examples/serialbus/can/images/connect.png b/examples/serialbus/can/images/connect.png
new file mode 100644
index 000000000..dd5a51e98
--- /dev/null
+++ b/examples/serialbus/can/images/connect.png
Binary files differ
diff --git a/examples/serialbus/can/images/disconnect.png b/examples/serialbus/can/images/disconnect.png
new file mode 100644
index 000000000..fd58f7a48
--- /dev/null
+++ b/examples/serialbus/can/images/disconnect.png
Binary files differ
diff --git a/examples/serialbus/can/main.py b/examples/serialbus/can/main.py
new file mode 100644
index 000000000..97cdcc908
--- /dev/null
+++ b/examples/serialbus/can/main.py
@@ -0,0 +1,18 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from PySide6.QtCore import QCoreApplication, QLoggingCategory
+from PySide6.QtWidgets import QApplication
+from mainwindow import MainWindow
+
+"""PySide6 port of the CAN example from Qt v6.x"""
+
+
+if __name__ == "__main__":
+ QLoggingCategory.setFilterRules("qt.canbus* = true")
+ a = QApplication(sys.argv)
+ w = MainWindow()
+ w.show()
+ sys.exit(QCoreApplication.exec())
diff --git a/examples/serialbus/can/mainwindow.py b/examples/serialbus/can/mainwindow.py
new file mode 100644
index 000000000..ae2a08f1f
--- /dev/null
+++ b/examples/serialbus/can/mainwindow.py
@@ -0,0 +1,238 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QTimer, QUrl, Slot
+from PySide6.QtGui import QDesktopServices
+from PySide6.QtWidgets import QLabel, QMainWindow
+from PySide6.QtSerialBus import QCanBus, QCanBusDevice, QCanBusFrame
+
+from connectdialog import ConnectDialog
+from canbusdeviceinfodialog import CanBusDeviceInfoDialog
+from ui_mainwindow import Ui_MainWindow
+from receivedframesmodel import ReceivedFramesModel
+
+
+def frame_flags(frame):
+ result = " --- "
+ if frame.hasBitrateSwitch():
+ result[1] = 'B'
+ if frame.hasErrorStateIndicator():
+ result[2] = 'E'
+ if frame.hasLocalEcho():
+ result[3] = 'L'
+ return result
+
+
+def show_help():
+ url = "http://doc.qt.io/qt-6/qtcanbus-backends.html#can-bus-plugins"
+ QDesktopServices.openUrl(QUrl(url))
+
+
+class MainWindow(QMainWindow):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.m_ui = Ui_MainWindow()
+ self.m_number_frames_written = 0
+ self.m_number_frames_received = 0
+ self.m_written = None
+ self.m_received = None
+ self.m_can_device = None
+
+ self.m_busStatusTimer = QTimer(self)
+
+ self.m_ui.setupUi(self)
+ self.m_connect_dialog = ConnectDialog(self)
+
+ self.m_status = QLabel()
+ self.m_ui.statusBar.addPermanentWidget(self.m_status)
+ self.m_written = QLabel()
+ self.m_ui.statusBar.addWidget(self.m_written)
+ self.m_received = QLabel()
+ self.m_ui.statusBar.addWidget(self.m_received)
+
+ self.m_model = ReceivedFramesModel(self)
+ self.m_model.set_queue_limit(1000)
+ self.m_ui.receivedFramesView.set_model(self.m_model)
+
+ self.init_actions_connections()
+ QTimer.singleShot(50, self.m_connect_dialog.show)
+
+ self.m_busStatusTimer.timeout.connect(self.bus_status)
+ self.m_appendTimer = QTimer(self)
+ self.m_appendTimer.timeout.connect(self.onAppendFramesTimeout)
+ self.m_appendTimer.start(350)
+
+ def init_actions_connections(self):
+ self.m_ui.actionDisconnect.setEnabled(False)
+ self.m_ui.actionDeviceInformation.setEnabled(False)
+ self.m_ui.sendFrameBox.setEnabled(False)
+
+ self.m_ui.sendFrameBox.send_frame.connect(self.send_frame)
+ self.m_ui.actionConnect.triggered.connect(self._action_connect)
+ self.m_connect_dialog.accepted.connect(self.connect_device)
+ self.m_ui.actionDisconnect.triggered.connect(self.disconnect_device)
+ self.m_ui.actionResetController.triggered.connect(self._reset_controller)
+ self.m_ui.actionQuit.triggered.connect(self.close)
+ self.m_ui.actionAboutQt.triggered.connect(qApp.aboutQt) # noqa: F821
+ self.m_ui.actionClearLog.triggered.connect(self.m_model.clear)
+ self.m_ui.actionPluginDocumentation.triggered.connect(show_help)
+ self.m_ui.actionDeviceInformation.triggered.connect(self._action_device_information)
+
+ @Slot()
+ def _action_connect(self):
+ if self.m_can_device:
+ self.m_can_device.deleteLater()
+ self.m_can_device = None
+ self.m_connect_dialog.show()
+
+ @Slot()
+ def _reset_controller(self):
+ self.m_can_device.resetController()
+
+ @Slot()
+ def _action_device_information(self):
+ info = self.m_can_device.deviceInfo()
+ dialog = CanBusDeviceInfoDialog(info, self)
+ dialog.exec()
+
+ @Slot(QCanBusDevice.CanBusError)
+ def process_errors(self, error):
+ if error != QCanBusDevice.NoError:
+ self.m_status.setText(self.m_can_device.errorString())
+
+ @Slot()
+ def connect_device(self):
+ p = self.m_connect_dialog.settings()
+ if p.use_model_ring_buffer:
+ self.m_model.set_queue_limit(p.model_ring_buffer_size)
+ else:
+ self.m_model.set_queue_limit(0)
+
+ device, error_string = QCanBus.instance().createDevice(
+ p.plugin_name, p.device_interface_name)
+ if not device:
+ self.m_status.setText(
+ f"Error creating device '{p.plugin_name}', reason: '{error_string}'")
+ return
+
+ self.m_number_frames_written = 0
+ self.m_can_device = device
+ self.m_can_device.errorOccurred.connect(self.process_errors)
+ self.m_can_device.framesReceived.connect(self.process_received_frames)
+ self.m_can_device.framesWritten.connect(self.process_frames_written)
+
+ if p.use_configuration_enabled:
+ for k, v in p.configurations:
+ self.m_can_device.setConfigurationParameter(k, v)
+
+ if not self.m_can_device.connectDevice():
+ e = self.m_can_device.errorString()
+ self.m_status.setText(f"Connection error: {e}")
+ self.m_can_device = None
+ else:
+ self.m_ui.actionConnect.setEnabled(False)
+ self.m_ui.actionDisconnect.setEnabled(True)
+ self.m_ui.actionDeviceInformation.setEnabled(True)
+ self.m_ui.sendFrameBox.setEnabled(True)
+ config_bit_rate = self.m_can_device.configurationParameter(QCanBusDevice.BitRateKey)
+ if config_bit_rate > 0:
+ is_can_fd = bool(self.m_can_device.configurationParameter(QCanBusDevice.CanFdKey))
+ config_data_bit_rate = self.m_can_device.configurationParameter(
+ QCanBusDevice.DataBitRateKey)
+ bit_rate = config_bit_rate / 1000
+ if is_can_fd and config_data_bit_rate > 0:
+ data_bit_rate = config_data_bit_rate / 1000
+ m = (f"Plugin: {p.plugin_name}, connected to {p.device_interface_name} "
+ f"at {bit_rate} / {data_bit_rate} kBit/s")
+ self.m_status.setText(m)
+ else:
+ m = (f"Plugin: {p.plugin_name}, connected to {p.device_interface_name} "
+ f"at {bit_rate} kBit/s")
+ self.m_status.setText(m)
+
+ else:
+ self.m_status.setText(
+ f"Plugin: {p.plugin_name}, connected to {p.device_interface_name}")
+
+ if self.m_can_device.hasBusStatus():
+ self.m_busStatusTimer.start(2000)
+ else:
+ self.m_ui.busStatus.setText("No CAN bus status available.")
+
+ def bus_status(self):
+ if not self.m_can_device or not self.m_can_device.hasBusStatus():
+ self.m_ui.busStatus.setText("No CAN bus status available.")
+ self.m_busStatusTimer.stop()
+ return
+
+ state = self.m_can_device.busStatus()
+ if state == QCanBusDevice.CanBusStatus.Good:
+ self.m_ui.busStatus.setText("CAN bus status: Good.")
+ elif state == QCanBusDevice.CanBusStatus.Warning:
+ self.m_ui.busStatus.setText("CAN bus status: Warning.")
+ elif state == QCanBusDevice.CanBusStatus.Error:
+ self.m_ui.busStatus.setText("CAN bus status: Error.")
+ elif state == QCanBusDevice.CanBusStatus.BusOff:
+ self.m_ui.busStatus.setText("CAN bus status: Bus Off.")
+ else:
+ self.m_ui.busStatus.setText("CAN bus status: Unknown.")
+
+ @Slot()
+ def disconnect_device(self):
+ if not self.m_can_device:
+ return
+ self.m_busStatusTimer.stop()
+ self.m_can_device.disconnectDevice()
+ self.m_ui.actionConnect.setEnabled(True)
+ self.m_ui.actionDisconnect.setEnabled(False)
+ self.m_ui.actionDeviceInformation.setEnabled(False)
+ self.m_ui.sendFrameBox.setEnabled(False)
+ self.m_status.setText("Disconnected")
+
+ @Slot(int)
+ def process_frames_written(self, count):
+ self.m_number_frames_written += count
+ self.m_written.setText(f"{self.m_number_frames_written} frames written")
+
+ def closeEvent(self, event):
+ self.m_connect_dialog.close()
+ event.accept()
+
+ @Slot()
+ def process_received_frames(self):
+ if not self.m_can_device:
+ return
+ while self.m_can_device.framesAvailable():
+ self.m_number_frames_received = self.m_number_frames_received + 1
+ frame = self.m_can_device.readFrame()
+ data = ""
+ if frame.frameType() == QCanBusFrame.ErrorFrame:
+ data = self.m_can_device.interpretErrorFrame(frame)
+ else:
+ data = frame.payload().toHex(' ').toUpper()
+
+ secs = frame.timeStamp().seconds()
+ microsecs = frame.timeStamp().microSeconds() / 100
+ time = f"{secs:>10}.{microsecs:0>4}"
+ flags = frame_flags(frame)
+
+ id = f"{frame.frameId():x}"
+ dlc = f"{frame.payload().size()}"
+ frame = [f"{self.m_number_frames_received}", time, flags, id, dlc, data]
+ self.m_model.append_frame(frame)
+
+ @Slot(QCanBusFrame)
+ def send_frame(self, frame):
+ if self.m_can_device:
+ self.m_can_device.writeFrame(frame)
+
+ @Slot()
+ def onAppendFramesTimeout(self):
+ if not self.m_can_device:
+ return
+ if self.m_model.need_update():
+ self.m_model.update()
+ if self.m_connect_dialog.settings().use_autoscroll:
+ self.m_ui.receivedFramesView.scrollToBottom()
+ self.m_received.setText(f"{self.m_number_frames_received} frames received")
diff --git a/examples/serialbus/can/mainwindow.ui b/examples/serialbus/can/mainwindow.ui
new file mode 100644
index 000000000..61c7760e0
--- /dev/null
+++ b/examples/serialbus/can/mainwindow.ui
@@ -0,0 +1,207 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>MainWindow</class>
+ <widget class="QMainWindow" name="MainWindow">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>634</width>
+ <height>527</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>CAN Example</string>
+ </property>
+ <widget class="QWidget" name="centralWidget">
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="SendFrameBox" name="sendFrameBox">
+ <property name="title">
+ <string>Send CAN frame</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="receivedMessagesBox">
+ <property name="title">
+ <string>Received CAN messages</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="0" column="0">
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <widget class="ReceivedFramesView" name="receivedFramesView">
+ <property name="editTriggers">
+ <set>QAbstractItemView::NoEditTriggers</set>
+ </property>
+ <property name="showDropIndicator" stdset="0">
+ <bool>false</bool>
+ </property>
+ <property name="dragDropOverwriteMode">
+ <bool>false</bool>
+ </property>
+ <property name="selectionBehavior">
+ <enum>QAbstractItemView::SelectRows</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QLabel" name="busStatus">
+ <property name="text">
+ <string/>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QMenuBar" name="menuBar">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>634</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <widget class="QMenu" name="menuCalls">
+ <property name="title">
+ <string>&amp;Calls</string>
+ </property>
+ <addaction name="actionConnect"/>
+ <addaction name="actionDisconnect"/>
+ <addaction name="actionDeviceInformation"/>
+ <addaction name="separator"/>
+ <addaction name="actionResetController"/>
+ <addaction name="separator"/>
+ <addaction name="actionClearLog"/>
+ <addaction name="separator"/>
+ <addaction name="actionQuit"/>
+ </widget>
+ <widget class="QMenu" name="menuHelp">
+ <property name="title">
+ <string>&amp;Help</string>
+ </property>
+ <addaction name="actionPluginDocumentation"/>
+ <addaction name="actionAboutQt"/>
+ </widget>
+ <addaction name="menuCalls"/>
+ <addaction name="menuHelp"/>
+ </widget>
+ <widget class="QToolBar" name="mainToolBar">
+ <attribute name="toolBarArea">
+ <enum>TopToolBarArea</enum>
+ </attribute>
+ <attribute name="toolBarBreak">
+ <bool>false</bool>
+ </attribute>
+ <addaction name="actionConnect"/>
+ <addaction name="actionDisconnect"/>
+ <addaction name="separator"/>
+ <addaction name="actionClearLog"/>
+ </widget>
+ <widget class="QStatusBar" name="statusBar"/>
+ <action name="actionConnect">
+ <property name="icon">
+ <iconset resource="can.qrc">
+ <normaloff>:/images/connect.png</normaloff>:/images/connect.png</iconset>
+ </property>
+ <property name="text">
+ <string>&amp;Connect</string>
+ </property>
+ </action>
+ <action name="actionDisconnect">
+ <property name="icon">
+ <iconset resource="can.qrc">
+ <normaloff>:/images/disconnect.png</normaloff>:/images/disconnect.png</iconset>
+ </property>
+ <property name="text">
+ <string>&amp;Disconnect</string>
+ </property>
+ </action>
+ <action name="actionQuit">
+ <property name="icon">
+ <iconset resource="can.qrc">
+ <normaloff>:/images/application-exit.png</normaloff>:/images/application-exit.png</iconset>
+ </property>
+ <property name="text">
+ <string>&amp;Quit</string>
+ </property>
+ </action>
+ <action name="actionAboutQt">
+ <property name="text">
+ <string>&amp;About Qt</string>
+ </property>
+ </action>
+ <action name="actionClearLog">
+ <property name="icon">
+ <iconset resource="can.qrc">
+ <normaloff>:/images/clear.png</normaloff>:/images/clear.png</iconset>
+ </property>
+ <property name="text">
+ <string>Clear &amp;Log</string>
+ </property>
+ </action>
+ <action name="actionPluginDocumentation">
+ <property name="text">
+ <string>Plugin Documentation</string>
+ </property>
+ <property name="toolTip">
+ <string>Open plugin documentation in Webbrowser</string>
+ </property>
+ </action>
+ <action name="actionResetController">
+ <property name="text">
+ <string>&amp;Reset CAN Controller</string>
+ </property>
+ <property name="toolTip">
+ <string>Reset CAN Controller</string>
+ </property>
+ </action>
+ <action name="actionDeviceInformation">
+ <property name="text">
+ <string>Device &amp;Information...</string>
+ </property>
+ </action>
+ </widget>
+ <layoutdefault spacing="6" margin="11"/>
+ <customwidgets>
+ <customwidget>
+ <class>SendFrameBox</class>
+ <extends>QGroupBox</extends>
+ <header location="global">sendframebox.h</header>
+ <container>1</container>
+ </customwidget>
+ <customwidget>
+ <class>ReceivedFramesView</class>
+ <extends>QTableView</extends>
+ <header location="global">receivedframesview.h</header>
+ </customwidget>
+ </customwidgets>
+ <resources>
+ <include location="can.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/examples/serialbus/can/rc_can.py b/examples/serialbus/can/rc_can.py
new file mode 100644
index 000000000..6e0341a15
--- /dev/null
+++ b/examples/serialbus/can/rc_can.py
@@ -0,0 +1,3453 @@
+# Resource object code (Python 3)
+# Created by: object code
+# Created by: The Resource Compiler for Qt version 6.4.1
+# WARNING! All changes made in this file will be lost!
+
+from PySide6 import QtCore
+
+qt_resource_data = b"\
+\x00\x000\xff\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3>a\xcb\
+\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\
+\x00\x00\x00\x09pHYs\x00\x00$\xe9\x00\x00$\xe9\
+\x01P$\xe7\xf8\x00\x00\x00\x19tEXtSof\
+tware\x00www.inksca\
+pe.org\x9b\xee<\x1a\x00\x00 \x00ID\
+ATx\x9c\xed\x9dy\x9c\x1dGu\xef\xbf\xd5\xddw\
+\x9f}\xd7\xbe\xcb\xb2\xe5\x1d\x8c\x17\x0161<\x88m\
+\xc2#\x80Cp\x82\x8c\xc3#$\x84\x80\x09\xe4\x85-\
+` \x04L\x02\x0e\x09Kx\x01,\x03q\x1e6y\
+\x1f\xcc\x92\x18\x8cc\x1b\x8f\xf7\xdd\xb2e\xcb\xb2\xd6\xd1\
+H\x9a}\xe6\xae\xbdT\xd5\xfb\xa3\xfa\xf6\xbd3sg\
+\xd1\x8cF\x92\xc9\xfc\xf4iMo\xb7\x97:\xbf>\xe7\
+\xd4\xa9SUBk\xcd\x22\xfe\xfb\xc2:\xd1\x0f\xb0\x88\
+\x13\x0b\xe7X_\xf0\xabW\x89\x0dJ\xdb\x17\x83nG\
+\x8b\x17\x84\x90;S9v\xbd\xe76]8\xd6\xf7Z\
+\xc4\xfc!\x8e\x85\x09\xf8\xea;\xc4+5\xd6\xfb4\x5c\
+\x0c,\xa9q\x8a\x06\x9e\xd1\x88\xcf^{\xb3\xbc\x85E\
+\xbbs\xd2`^\x04\xb8\xee:a5\xee\xb4\xfe\x1a\xcd\
+'\x00{\x96?{B\x09\xf1\xf1\x0f\xfd \xf8\xf9\x9c\
+o\xbc\x88c\x86y\x11\xe0\x86w\xd8\x9f\x03>^\xde\
+N&bt._M\xe7\xb2\x8d\xd4\xb5,\xc7s]\
+\x0a\xb9\x11rc\xc3\xec\xdb\xf98nq,\xfa\xad\x16\
+|\xf5\xda\x1f\xc8\x0f\xcc\xeb\xe9\x171o\xcc\x99\x007\
+\xbc\xdd\xf9m,\xfd3@\xd8B\xb0q\xd3\x06\xd6\x9e\
+\xfd\xdb\x08\xab\xb6[\xe1y>\xbb\xb6w\xb3\xfb\xb9\xc7\
+ \xbc\xa7\x10\xfc\xd5\x07~ \xbf8\xd7\x87_\xc4\xfc\
+1w\x02\xbc\xc3\xfa%\x88\xd7\x02\x9cy\xd6\xd9\xac\xdc\
+\xfc\x1a\x10\x16\xc5\xdc(={w0:\xd8\x8be\xd9\
+t.\xdf\xc0\xd2\xd5\xa7\x22\x84\x00`\xb4\xff \xdd\xbf\
+\xba\x05%%\x80\x16B\x5c\xfd\x81\x1f\x047\x1d\xab\x17\
+Z\xc4\xd1aN\x04\xf8\xd2\x95\xa2+\xe6X=\x80\xbd\
+|\xed\x19\x9c}\xe1\xff\x00\xa0w\xdf\xf3<q\xdf\xcf\
+QJ\x8d;?\x93\xcep\xe1\xeb\xdfA2\xdd\x00\xc0\
+\xe1\xbdO\xf1h\xf7/\x09\xef\xec+\xad\xd6}\xe8f\
+}`^o\xb2\x889aNq\x80\x98c\xbd\x9d\xd0\
+\xe9[u\xca\xb9\x00\x8c\x0e\x1d\xe6\xb1\xee\x9fU\x84\x1f\
+~\xf1\x00\xf9B\x9e\x07n\xbf\x09\xe5\xbb\x00t\xad>\
+\x93SN=#\xba\x9c\x10\xd6\xfb\xe7\xf6\xf8\x8b\x98/\
+\xe6\x18\x08\x12\xbf\x0f\x90nh\xa3\xb1\xa9\x0d\x80\x1d\x8f\
+\xfe*\xb2\xed\xafz\xc7\x17y\xff\x8dy\xae\xfe\xf2s\
+t\xad{\x05\x00\xb9\x82\xcb\xfe'\x7f\x0a\xe1w\xbf\xf6\
+\xcc\xd7\x90L\xa6\xcc\xd5\xe0\x7f\xfd\xdd;Ef>/\
+\xb2\x88\xb9a\x8e\x04\xd0\xab\x00:\x96o\xc4\x0a\xaf0\
+6<\x00@\xfb\xaa\xb3x\xd9\x15\x1f\xc6\x8e%h\xea\
+\xda\xc0%[o\x88~5\xd8\x7f\x88\xdc\xa1\xa7\xcc\x8d\
+\x9d\x18k7\x9dY>\xd4\xe4\xf8\xd6\xd5s{\x96E\
+\xcc\x07s\x0d\x05[\x00\xb6\x1d\x8bvHiT\xbf\xe5\
+\xc4\xc7\x9d\xa8\xa9\xf8\x18\x02\x0c\x01\xb4\x04`\xc5\xba\xb3\
+\xb1-\xbb|\xf0\xcf#Oq\x11\xc7\x0d\xf3\x22@\xe0\
+U\xa2\xbbu\x99$\x00Gv?\xc2\x8e_\x7f\x0f\x00\
+\xaf\x94\xe5\x81[?\x1d\x9d\x93J\xd8(\xbfDa\xe0\
+E\x00b\xc9:V\xac\xddX>\xbc\xf1\x1f\xae\xb2/\
+\x9f\xe3\xf3,b\x8e\x98'\x01\xf2\xd1\x8eeK\xc2\x08\
+\xb0\xd6\xdc\xfe\x8d\xab\xf9\xd6{\x97\xf0\xad?\xeeb\xdf\
+S\xbf\x04 \x19\xb7i\xc8\x98\x18A\xfe\xf0\xd3\xe1\xaf\
+4\xab7\x9e\x1d]Ci\xf5\xc19>\xcf\x22\xe6\x88\
+\xb9\x12`\x00`t\xb0\xbf\xec\xd3\xb1t\xfd9,k\
+KF'\x14\xc6\xfa\x08\xfc\x12\x00\xf1\x98\xc5\xda\xae$\
+e\xfd\xee\x17\x86pG{\xd0J\x92\xaeo\xa5\xa3\xd3\
+\x90Ghq\xe9W\xfe@\x9c\xc1\x22\x8e\x1b\xe6F\x00\
+\xcd\xbf\x03\xe4\xc6\xfa\x19\x19<\x04@\xb2y%K;\
+[\xd8\xb4\x22CkC\x8c\xba\xa4C]\xcaaY[\
+\x92M\xcb3$\xe3\xe3\x9b\x0ar\x87\x9eF+\x09J\
+\xb2zcE\xe6BY\x8bZ\xe08bN\x04\xd0\xa8\
+[\xcb\xeb=/>\x19\xae\x09\xea\x96\x9cE:a\xb3\
+\xaa#\xc5\xc6\xe5i6.K\xd3\xd9\x14\xc7\xb1'\xfb\
+v\xeeh\x0fAa\x08\xad\x02Z\xda\x96QWW_\
+>t\xd5\xdf\xbdSt\xcc\xe5\xb9\x16q\xf4\x98\x13\x01\
+\xae\xbdY?\x02\xec\x05\xd8\xbf\xe79\xdc\xa2\xf1\x052\
+\x9d\xa7\x91h\x5c>\xeb\xeb\xe4\xfb\x9eC\xab\x00\xad5\
+\xab\xd7o*\xefN\xc4\x02\xeb\xbdsy\xaeE\x1c=\
+\xe6\x9c\x11\xa45_\x05PR\xf2\xe4\x03\xbf\x88|\x81\
+\xe6u\x97`\xc5\x92\xd3\xfd4Bix\x0f2(\xa1\
+U@\xe7\x92\xd5\xc4b\xa6Z\xa9\xe1O\xaf\xbbR\xc4\
+g\xf8\xf9\x22\x8e\x01\xe6L\x80k\xffM\xdd\x00\xfaN\
+\x80\xbe\xde\xdd\xec\xdd\xf9\xb8\xb9`,E\xd3\x9aW\xcf\
+\xea\x1aZIJ\x83\xbb\xd1*\xc0\xb2\x04+V\xad.\
+\x1f\xealp\xec\xdf\x9f\xeb\xb3-b\xf6\x98{N\xa0\
+\xd6Z\x07\xfa\x9d\xc00\xc03\x8f\xddMvd\x10\x80\
+d\xf3*2\x1d\xa7\xce\xea2\xc5!C\x00\xad\x02\x96\
+._\x13\xed\x17\xe8Eg\xf08`^I\xa1\xd7\xfe\
+P\x1fD\x8b\xf7\x80\xf9\x9a\x1f\xbb\xf7g(i\x84Y\
+\xbf\xfce8\xc9\xc6\x19\xaf\xa1\x02\x17w\xac\x17\xad$\
+\xf1X\x9c\xae\xae\xae\xf2\xa1\xb3o\xf8\xfd\xd8%\xf3y\
+\xbeE\xcc\x8cyg\x05\x7f\xf0\xe6\xe0V47\x02d\
+G\xfb\xd9\xf1\xd8\xdd\xa6z\xa75\x8d\xab/BX3\
+g\x8a\x15\x87\xf6\xa2T\x80T\x01K\x97\xae\xac\x1c\x10\
+\xf2\xda\xf9>\xdf\x22\xa6\xc71I\x0b\xf7\xd2\xea\xcf\x81\
+\xdd\x00{v>A\xff\xa1\xbdh-\xb1\xe3ud:\
+7O\xfb[\xad5A)\x8b\x97\x1fBII\xaa\xae\
+\x9e\xfa\x86\x86\xf0\xa8\xb8\xe2+\x7f(\xd6\x1f\x8bg\x5c\
+Dm\x1c\x13\x02\xfc\xe5\xb7uVY\xea*@\x02<\
+\xf9\xe0\x9d\x94\x8a9\xb4\x92$[\xd6\x10\xcb\xb4O\xfa\
+\x8d\xd6\x1a\xa54J\x83\xd2P\x1c\xe9E\xc9\x00%\x03\
+\x96t.\x8d\x9eOH\xeb\xcf\x8f\xc53.\xa26\x8e\
+Y\xc7\x90\x0f}_?\x80\xe6\xb3\x00\x9e[\xe0\xe9G\
+\xef\x89\x22}uK\xceD\xd8\xa6V\xa7\xb5F\xe9\x8a\
+\xe0\xcb\x8b[\x18&\xf0\x8a(\x19\xd0\xd0\xdcH<\x1e\
+\xd5\x02\xdf\xf5\xc5+\xc5\xcc\xce\xc4\x22\xe6\x84c\xda3\
+h\x99T\x9f\x03q?\xc0\xc0\xe1\x1e\xf6\xef\xde\x81\xd6\
+\x12a\xd9\xa4;6U\x04\xaf\xaa\x84_^W\x9a\xe2\
+\xd8\x11\xa4\x0aPR\xd1\xde\xdeV\xbel]\xdc\xb1\xde\
+},\x9fs\x11\x15\x1cS\x02\xbc\xed\x87Z\x22\xe4\x1f\
+\x00Y\x80\x9d\xcf>Nvt\x10-\x03\x9cT\x0b\xb1\
+\xfa%\x93\xbe\xfc\xca\xa2q\xf3C\xc8\xc0G\xc9\x80\xe6\
+\xa6f\x84eB\xc8\x02\xde\x7f\xcb\x95b\xb6\xfd\x0e\x16\
+q\x148\xe6}\x03?\xf8\x03\xbd[#\xde\x0f\xa0\x94\
+\xe4\xe9\xc7\x1f\xc6\x0f<\x94\x0cH6\xad\xc2rRh\
+\x0dZU\x04_\xf6\x05\xa4\x94\x94rCH%\xd1@\
+sCS\xf9\xb2\xab\x0e\xda\xf6\x9bg\xba\xf7\xa3\xdf\x12\
+\xb1{o\x12\x7f\xda}\xa3\xf8\x9b\x07\x7f \x1af:\
+\x7f\x11\x0b\xd49\xf4\xda\x7f\x0d\xb6\x01\xb7\x00\xe4s\xa3\
+\xbc\xb8\xf3\x19\xa4\x0cPJ\x93lY\x8bB\xa0\xb4F\
+km\xc8P\xa5\x09\xbc\xc2(2\xf0\x912\xa0\xb1\xb9\
+\xbe\xfa\xb2\xd3\x06\x86\xee\xbdQ\xbc\xb1\x94`\xbb\xd0|\
+\x0d\xc1\xc7\x02\xc9'\x16\xe2\xdd~\xd3\xb0`\xbd\x83\x13\
+B\xfd1\xd0\x03p\xf0\xc0>\x06\x07\xfa\x91R\x82\x15\
+#^\xdf5\xc9\x17\xd0\xca\x10!\x08|\xbcR\x0e)\
+\x03l\xcb&\x9d6\x89\xa3\x08\xbd\xe5\x1f\xde.\xce\x9b\
+x\x9f\xeembs\xf76\xf1\x0b!\xb8\x0d\x88\xd2\x8b\
+\xd0L:w\x11\x93\xb1`\x04\xf8\x93\x1f\xe8a%\xac\
+w\x02\x0a`\xd7\xf3\xcf\xe0\x96\x0aH\x19\xe0\xa4\x9a\xb1\
+\xe2\x99\x9a\xbe\x80\xd6\x1a\xbf\x98CII \x03\xea2\
+U\xc9\xc2v%W\xe0\xa1\x9bD\xeb}7\x8a\xaf\x01\
+O\x02\xaf+\xef\x17V\xf4J\x152,bJ\x1c\x93\
+\xde\xc1\xd3\xe1+\xef\xb0\xaf\x17\xf0\x11\x80\xc6\xc6\x16\xd6\
+\xae_\x8fV\x0a)=\xf2\x83\xfbP\xd2\xd8\xfb\xc8\x1c\
+`4\x81\x93\xa8G\x0b\x0b%%G\xfa\x06\xf1\x83\x00\
+\xc0O%\xd4\x86\xd3/\xe6\xcd\x08>\x05DNB}\
+\xcbJ\xd6\x9cu\x15\x07w\xfe\x94\xc1\x83&\xe5\xccO\
+S\x7f\xc9\xdbtnA_\xf0%\x8ec>>\xc0D\
+\x8c\x05\xea\x13M\x8e\xf5Z\x0d\xe7\x8c\x8e\x0e\xd1w\xf8\
+\x10-\xad\xad(\x0dN\xba\x95\xd2\xd8\x91H\xe8\xd5\x04\
+\xf0\xbd\x12\xc2\x89\xa3\xa4\x22\x9d\x8c3\x9a\x0bhj\xd3\
+\xb15g\xf2\x08\x82\xa8\x8e\x18O6\xb0\xfa\x8c\xb7\xd1\
+\xba\xe2B\x10\x16\xe9\xfa\xa5\x0cb\x08\x10\xcf\xb3\x1ex\
+b\xa1\xdf\xf1\xa5\x8c\x05'\xc0\xa7~\xa8\xbd\x1b\xde.\
+\xae\xc2\xb2\x1e\x05R\x07{{H\xa6\x92\xc4b\x0eX\
+1\xacX\x1a\xdf-L&A\xe0#\xb4@\xa3I7\
+\x08:O\xd14\xb6i\xc0\x08_X\x0e\xcbO\xfdm\
+\x96\xae\x7f\x03\x96\x93\x8a\xee\x17O5G\xeb\xca\xaa\x10\
+e\x11\xb5q\x5c\x86\x88\xf9\xe0\xbf\xe9\x1d\x1a>\x0c\x80\
+\xd6\x1c\xec9\x80\x0c\x02\xb4\x92\x88x\x06-\xec\x9aq\
+\x01\x8dG\xf3\xb2\x1c\xcbO\xcf\x96\x85\x0f@\xfb\xcaW\
+p\xee\x1b\xfe\x96\xe5\x9b\xde<N\xf8\x00N\xa2\xaa\xf6\
+\xa7hf\x11\xd3\xe2\xb8\x8d\x11t\xed\xbf\xca\xaf\x83\xfe\
+\x19@\xa9T\xa2\xaf\xaf\x8f \x08PRb\xc7\xd2U\
+5\x02\x13*n\xe8\xf4Yqf\x8e\x86N\x8fr:\
+q}\xcbj\xce|\xcd\xc7X\x7f\xde{\x89\xa7Z\xc3\
++kP\xa3\xd1}\x9cx\x15\x01\xc4\x22\x01f\xc2\x82\
+\x9b\x80j\x04\x8e\xbe\xc6\x09\xc4\xd3@\xc7\xe8\xe8(\xf1\
+D\x9cd<\x86\xd2\x1aa\xc7P\x81G\xb2A\xd2\xba\
+\xca%\x9e\xaa\xf40\x8e\xa7\x1aY}\xc6[i]v\
+\x01T7/\xeb<\xa8a\xd0\x01Xu\x80\x8d\x1d\xaf\
+\xd4\x1a\x84X4\x013\xe1\xb8\x8e\x12\xf6\xe1\x9bt\x1f\
+Z\x5cS\xde\x1e\x1c\x18\xc4\xf3<\x82 \xc0I(:\
+7\x96X\xb2\xa9\x18\x09_\xd81Vn\xbe\x82s^\
+\xf7\x19Z\x97\xbf\xc2h\x02\xad@\xbb \x0f\x81\xec7\
+\xc2\x07\xd0>\x00\x89TE\xe6Zs\xce\xf1{\xbb\x97\
+&\x16\xbc\x1aX\x0b7\x5ce\xff\x13\x9a\xf7\x01\xa42\
+1Vl\x144\xb6\x97\x22U\x0f\xd0\xbe\xf2<V\x9e\
+\xf6;\xa1\xaa\x17 ,@\x82\x1c\x01]\x1c\xd7\xfd\x1c\
+\x00\xab-\xd4\x02\xf0\xf8\x7f\xfe%\xa5\xfc\x00#=\x1c\
+\xf9\xe9'\xb8M\xc0&`\x9d\x86\xfb<\xb8\xe6\xdbZ\
+g\x8f\xcf\x9b\x9e\xfc8!\x04\xf8\xca\x95\x22e\xc5\xad\
+G\xda\x97\xeb\xd3\x96\xad\xd78\x95>\xa6\xd4\xb7\xacb\
+\xcd\x99\xbfK\xa6y\x0d\x86\x11\xa1\x92R\xa3\xa0\xb3\x95\
+}b\x82\xf2\xb2\x1a\xc12&\xff\xd9\xbb\xbe\xc9\x9d_\
+}\x88\xe7\xef\x8c\xfa\xa1Vc'\xf0;_\xd7\xfa\xf9\
+\x05x\xb5\x97\x1c\x8e\xab\x0fP\xc6\xf9\x97\xf3*\xa5T\
+\xbcZ\x86\xf1d\x03+7_A\xfb\x8a\x97\x81\xb0\x89\
+\xf2\xcc\xf5\xa8\xf9\xea\xd1\xa1\xd0-\xb3\xae\xf5x-\xa0\
+]\x94Tt\x7f\xf7nn\xbb\xeeI\x8a#\x95C\x09\
+\xcb\x02\xadq\x0d\xd97\x027\x09!.\xd0\x8b\xc3\xd5\
+\x1d_\x0d\xd0\xfd\x1dq\x0a6\x7f\x0fD\xbd\x80-\xcb\
+\xa1k\xdd\x85t\xae\xddB,\x96\xc1\xb2\x13\x08+\x06\
+\xaa\x08j\x08\x080B\x0f\x171q\xdd`\xe7={\
+\xb9\xf5cw\xd2\xfbLO\xb4\xaf\xceq8\xaf\xb9\x99\
+\x95\xb1\x18\x85R\x89{FG9\x22#\x95p\xf5\xd7\
+\xb5\xde\xb6\xe0/}\x92\xe3\xb8\x10\xe0\xae\x1bES\xcc\
+\x84n\xdf\x07D\x0a\xbf\xb9k#\x9dk\xcf'\x91n\
+\xc5\xb2\x13\xd8v\x12\xcb\x12Xd\x11\x14\xa9)\xf4h\
+\xdb\x06,\x06\xf7\x8f\xf2\xef\x9f\xfc%O\xfedGt\
+?\xc7\xb28\xaf\xbd\x9d\xb3\x9a\x9aP\xbe\x8f\xefy\xf8\
+\x9e\xc7p\xa9\xc4\x7f\x8c\x8d\x11\xd6/\x0e\xbb\xb0\xf1\xbf\
+\xbb?\xb0\xa0&\xe0\x96[\x84\xbd\xac\xc0{b\x82\xcf\
+@\xa5J\x96\xaao\xa7}\xcd9\xa4\x1b:\xb1\xed$\
+J\xf9 4\xc8>\xb4p\xc1Ia\xdbq\xc2\x98`\
+\xa8\xeeue\x1b\x8d\x9b/q\xfb\x97\xef\xe7\xce\xaf?\
+H\xe0V\x0c\xfd\xe6\xf6v.^\xb1\x82\x14\xe0\xbb.\
+\xbeR(\xdbF\xda6\x0d\xb1\x18\xeb\xe3qvz\x1e\
+@W\x12\xfe\x02\xf8\xf4B\x96\xc1\xc9\x8e\x05#\xc0\xbd\
+7\x89\xd7.\xd5|E\xc3\xe9\xd1\xcd\x12i\x9a\x97\xae\
+\xa7\xbeu9\x96\x930\x1dB,\x17\xe9\x0d \xf5\x08\
+\x8e\x93\x04'\x8dP6\x96e\x87\x03\x86\x8c\x17\xbc\xd6\
+\x9a\x87\xff\xefv~|\xdd\xdd\x8c\x1e\xa9\xb4\xf3,k\
+l\xe4\xf2SNaI&c\xbex\xd7\xc5\xb2\xedh\
+\xb1m\x1beY\x9c\x9eL\xf2\xa2\xe7!\xcd\x15_\xb1\
+P\xef\xffR\xc1\x82\x10\xa0\xfbF\xf1\xbbB\xf0\xa3\xf2\
+\xb6\xb0c4u\xad\xa1\xbem)\xc2\x12h\x1d\xa0\x95\
+M\x10\x1c&(\x0e\x18\x019i\x94\xb0\x11\xc2\xc3\x12\
+\x0eJ8\xd8N\xd9\x194Z`\xcf\xa3\xbd\xfc\xe8\xa3\
+w\xb1\xf7\xb1\xc3\xd1\xbd\x1a\x92I.?\xe3\x0c\xce]\
+\xba\x94 T\xf7\xca\xb2\x90U\xc2\xb7l\x1b\xcb\xb2\xb0\
+l\x9b\x84\xe3\x90\x10\x82\x821}\xff\xedS\xce\x17F\
+\x03Xl\xaa\x1a\x1a\x88\x86\xb6v\x1a:\x96P\xae\xe8\
++\xe5\x13x\xbdh\xd9\x8f\xe3\xa4@\xa4\x11\xcaA)\
+'\xfc\xeb!\xc2u\xcb\x8a1r(\xc7\x8f?s?\
+\x8f\xdc\xfa\x5cy 2\x1c\xcb\xe2\xd5\xeb\xd7\xf3\xdbg\
+\x9cA2\x1e7\x82W*\x12\xb4m\xdb\xa8\xf2\x12\x12\
+B\xd86;\x5c\xb7,|\x84 X\x90\xf7\x7f\x09a\
+A\x08\xe0+\xbe\x1e\xb3\xd8\x82\xe62\x80\xd1#\xbdx\
+\xc51\xdaV\x9d\x86\xe5\x98P\xad\x1d\xebB[I\x94\
+\xecCH\x0f!\x1c\x94\xe5T\x11\xc1#(\x0a\xee\xf9\
+\xe7'\xb9\xfd\x86\xc7\xf1\x0a~t\xfdS\xdb\xdax\xe3\
+\xe6\xcdt65\xe1X\x16\x96eE*~\xaa/\x7f\
+\xd0\xf7\xb9w`\x80>\xd7\x8cUh\xc7\xe1\xf5\x9fd\
+}\xf76q7\xf0\x0d\xe0\x96-[kD\x0d~\xc3\
+\xb1\x80\xb5\x00!\xee\xdb\xc6G4\xfc\x0d!\xd1\x84%\
+h]\xb1\x8eL\xcb\x0a\x00,+\x8e%@\x05=X\
+Ba;)l'\x8d\xe3\xa4y\xf6\x17#\xfc\xf4\xf3\
+\xcf0t\xa02\x0eQ[*\xc5\x1b\xd6\xac\xe1\x94\x8e\
+\x0e\x9cx\x1c'\x1e'\x16\xfe\xd5\x10y\xfb\xbe\xe7\xe1\
+\x85~\xc0p>\xcf\xdd\x07\x0e\xf0\xdc\xf0p\xa4\x94,\
+\x1b.\xf8#Xs\xd1\xb8\x07\xde\x03|\x11\xf8\xd6\x96\
+\xad\xff}\xe2\x03\x0b^\x0d\xbc\xef&q\xa1\xd6\xfc\x1b\
+\x10u\xfaK\xd67\xd3\xba\xf2Tb\x89\x14\x96\x9d\xc0\
+\xb2\x13\x10\x1c\x06\x9d\xa3\x7f\x97\xe6?\xbf\xd0\xc3\xee\x07\
++\x91\x9c\xa4m\xf3\xca\xf6v^\xd6\xd5E\x22\x91\x88\
+\x84\x1f-\x89\x04v,6\x8e\x00\xa5b\x91{\xf6\xec\
+\xa1\xbb\xa7\x07\xbfR\xf7\xe7\xd4K7p\xd9\xc7\xb7\x90\
+h\xe8a\xf8\xd0S\x8c\x0d\xf6M|\xe4\xbb\x80\xab\xb7\
+l\xd5\xfb\x16\xb4`N\x12\x1c\x978@\xf7wD=\
+6\x9f\x01\xdeO8\xc4\xac\xb0\x1c\xdaV\x9fB]\xf3\
+2,;\x81;&\xb8\xf3+\x8f\xf1\xc8-=\xe8\xf2\
+h\xb3\xc0\xe9\x99\x0c[\xda\xda\xa8K\xa5j\x0a\xbez\
+[i\x8d\xef\xba<\xbe\x7f??{\xf6Y\x86\x8b\xc5\
+\xe8\x19:7t\xf1\x96/\xbc\x95\xd3.\xdd\x84\xd2\x12\
+\xad$RI\xdc|\x0f\x83=Opd\xef}\xa8 \
+23c\xc0\x07\xb6l\xd57.x\xe1\x9c`\x1c\xd7\
+H\xe0}7\x8a\xb3\xb5\xe0\x1b\xc0\x05\xe5}\x0d\xedK\
+\xd9uO\x03\xbf\xfe\xfa\x8b\x94\xb2\x15;\xbf\xd4\xb6\xd9\
+RWG{*5I\xd0\xb5\x84\xef\xc4\xe3\x1c\xce\xe5\
+\xf8\xe1\xc3\x0f\xb3\xab\xbf?\xbaN\xaa1\xcde\x7f\xf5\
+&.~\xcfk\xb0\xed\x22P@\xe9\x94I8Q\x0a\
+\xa5$JI\xbcb?\xfb\x9f\xf9w\xb2\x03{\xab\x1f\
+\xf9\xc7\xc0{\xb6l\xd5\x93\xd4\xc4o\x0aN@c\x90\
+\x10\xf7n\xe3C\x02\xae\xef}\x0a\xeb\xb1\x9ba\xf4P\
+\xe5h=\xf02\xcbbuY\xc0\x13\x05]C\xf0.\
+\xf0\x8b\x17^\xe0\xfe={Pe\x0f\xdf\x12\xbc\xf2]\
+\xaf\xe5\x8aO\xbe\x85\xba\xa6!\xb4\xf7,\xc8\xc3\xa6\xcd\
+@\x0b\xa4X\x02\xd62\xb4\xdd\x89V\x1a\xa5\x14J\x07\
+\x0c\xf5\xdcO\xef\xf3\xbfD\xc9\xa8\x82\xd0\x0f\xbc{\xcb\
+V}\xdb\xf1-\xa7\xe3\x83\x13\xd2\x1ax\x9d\x10V\xa1\
+\x83{\xb2}l)\xef\x8ba\x22F\x1b16b6\
+_\xbd\x88\xc5x\xb4\xaf\x8f;v\xef\xa6\xe4W\xb4\xc7\
+\x86W\x9d\xce[\xbf\xf4G,\xdf\xdc\x82\xf6\x9e\x80\xe0\
+ \xe8\x92\xc9#\xd0.Z\xbbH\xe9#\x03\x9f@Y\
+X\xc9\xf3\x10\xce\x1a\xa3\x0d\xb4\xc4\xcd\x0fpp\xc7\x8f\
+\xc9\x0f\xef/_R\x03\x9f\xd8\xb2U\x7f\xfe\xf8\x95\xd2\
+\xf1\xc1\x09!\xc0\xfb\x84\xf8\xb4\x86O\x81\xb1\xf3k\x80\
+\xb3\x81\xea\xa1\xa5,\xc7\xa9)\xfc\xb2\xd7\xbf\xb7X\xe4\
+\x8e\x03\x07\xe8\xaf\xb2\xf3\xad\xab\xbax\xf3\xe7\xdf\xcd9\
+\xff\xf3\x02\xb4\xbf\x0b\xfc\xe7M\xee\x80.\x01nD\x00\
+t\xc9\x10\xa0L\x02\xe9\x81\xbd\x0c;u\x11\x9a\x04J\
++\x94\x0c\xe8\xdf\xf7_\xf4\xef\xee\xae~\xf4\x7f\x01\xfe\
+d\xcbV\xfd\x1b\x13?8\xee\x04\xf83!\xceWp\
+\x1f`\xc5\x80\xdf\x02Zk\x9c'\x84\xa8\xf9\xd5\x8f\x01\
+\xf7\x0c\x0e\xf2b\xb6\xd2\x86\x13\xcf$y\xfd\x87\x7f\x9f\
+K?p%\xb1x\x1e\xed?\x1b\xa6\x8aU\x04^Y\
+7\xdbJy!\x09\xbc\x90\x04>JY\xd8\xa9\x0b\xb1\
+\xe2\xebPZ\xa2\xa4$;\xf0$\xbd\xcf\x8e\x9b\x04\xe3\
+v\xe0m[\xb6\xfef4\x22\x9d\x08\x02\xbcZ\xc1\xdd\
+\x00\x9b\x81\xb3\xa69\xd7\x8e\xc5*\x1e~,\xc6\xa3\xc5\
+\x22O\xe5r\x15;/\x04\xe7\xfd\xde\xc5\xbc\xe9\xb3\xd7\
+\xd0\xb4\xb4\x05-\xf7\xa3\xbdC\x08+\x00\xedM\x10\xfa\
+\x04\x22\xe0\x12\x04\xde\x04M`\xd6\x85\xb3\x86x\xdd%\
+a\xf75I)\xbb\x8f\x9e\xed\xffN\xe0\x95\xca\x8f\xf6\
+\x14p\xf9\x96\xad\xbag\x8aG\x7f\xc9\xe0\xb8\x13\xe0\x8f\
+\x85Xi\xc3>0\xaa\xff\xc2i\xce\x15\x96\x85\x1d\x8f\
+\xf3\x22\xf0\xa8\xe7Q\xaa\x9a\x8af\xf5\xcb\xd7\xf3\xd6\xeb\
+\xafa\xcd\xf9\xa7\x82\xecG\x07\xc6^K\xe9\x83\x96\xd8\
+6\xe3I@\x85\x04Z\x95@{UZ\xc0'\xf0}\
+\xa4\xaa\x90\x01\xab\x95x\xe3\x1b\x80\x04J)\x02w\x98\
+\x9e\xed?\xc4\xcd\x0f\x97\x1f\xe1 \x86\x04O\xf2\x12\xc6\
+q'\xc0uBXGL\xa7\xd1%\x02\xb8\x0c\x98j\
+\xf8\x8f#\xc0cB0\x5c\xf5\x8c\x8d]\x8d\xbc\xe9\xba\
+\xdf\xe3\x15\xef\xb8\x18\xa1]\xb4\xff\x02\xe8\x1c\x888Z\
+\xd9(%\x91\xd2E\x08M,f\x1b\x12\xe0FdP\
+\xb2\x80\x96%\x04.\x08i\x84\x1fj\x82\xc0\xf7\xcc\x00\
+\x15\xca\x90@\x93\x22\xd1t9\xc2j6#\x9bH\x97\
+C\xcf\xdfF.\x1c\xee\x1e3\x0e\xc2[\xb6l\xd5\xbf\
+\x5c\xb8\x12[X\x9c('\xf0j\x0d\xdf\x05X\x86\x99\
+n\xb4\x1ay\xe01\xa0z\x16)'\xe1p\xe9\x9f\xbd\
+\x96\xd7\x7f\xf8\x8d$2)t\xb0\x1b\x82\xfd bh\
+\x1c\x84H\xa0q\x90A\x10\x0e2Q\xc2\xb6m\xe2\xc9\
+\xd88M \x83\x02J\x16A\xbaXN\x80\xd6\x92@\
+z\x04\xbeG\xe0\xf9\xf8\xd2Ck\x89V\x01R\xfa(\
+%H4\xbe\x01;n\x02\x99\x96\xdd\xc0\xe1\x9d?b\
+\xf8\xe0\xa3\xe5G\xf3\x81\xad[\xb6\xea\x9b\x17\xb4\xd0\x16\
+\x08'\x84\x00B\x08\xf1\xa7\xf0\x90\x86\x97\x03l\x01V\
+aF\x98\xda\x0e<\x17\xae\x97q\xd6\x15g\xf0\xe6\xcf\
+\xbd\x85\xf6\xb5\x9d \x07\xd1\xfeS\xa0}\xb4N\x00\x0e\
+\x9a\x18Xq,+\x89\xd6f\x8c\x22\x19\xb8\xc8\xa0D\
+2\x95&\x16\x0f5\x81\xf6\xd0\xb2\x84\xefg\x8d\x19P\
+\x1e\xb6#P: \x08<\xbc\x92K }\x82\xc0G\
+\xe8\x00E\xa8!\xa4$Q\xff*\x12\x99\xb3\x01A,\
+\xb9\x92\xfe=\xb7r\xe4\x85_\x95\x1fQ\x03\xd7n\xd9\
+\xaa\xff\xe1\xb8\x15\xe21\xc2\x09!\x00\xc0\x9f\x08\xb1E\
+\xc0\xbd\xe5\xedf \x87\xf9\x9c\xcahZ\x0e\x97}\xec\
+L\xce\x7f\xfb\xbb\xb0\x84\x8d\x90\xcf\x83\xf7\x0c\x88\x84Q\
+\xf9$\xd0Xh\xe9\xa0qp\xe2\x19\x101d )\
+\x15FP\x81\x8b\xd6\x1euM-XBE\xe6@\xfa\
+\x05|7\x87V\xc6\x0c81\x81\x94&\x97\xc0sK\
+\x04\x81!\x01H\x10\xd28\x87\x81O\xa2\xee\x5cR\x8d\
+\x97 \xac$\xb1\xe4\x1a\x86{~B\xcf\xf6\x1fU\xbf\
+\xd6\x17\xb6l\xd5\x1f=.\x05x\x8cp\xc2\xa6\x8f\xff\
+\x86\xd6\xdd\x1a>J8~\xc00\x15\xe1[\x0e\xd9\xf3\
+\xde\x09\x97}\x066\xbczS\xd8u\x5c\xa3\xdc\xe70\
+I\xa2f\x11\x04\x08\x14J{(\xe5\xe2{y \xc0\
+v\x04\xb1x\x1c\x8dD\xc9\x80\xec\xd0\x91\xaa;\x0b,\
+;\x06\xc22\xc3\xd4\x04\x012P\x08L\x93\xb2\x13\x8b\
+\x01\x02\x81@\x05 \x03\x10\xc2B\x08\x8bR\xf6\x11\xf2\
+C?E\xab\x02\xd2\xeb\xa3y\xf9\x9bX}\xee\xbb\xab\
+\xc7$\xf8\xab\xeem\xe2;\xdd\xdb\xc4\x09\xc9\xb6\x9e\x0b\
+N\x18\x01\x00\xbe\xa1\xf5\x17\x80\xd7\x03}\xc0a\x8cF\
+\xf8\xd2\xe5\x9f\xe3\xaf7\xfe\x96\xc9\xfdt\x9c8h\x8d\
+F\xa1T\x01\xad\x03\xd3\x1bH\x87$\x10\x0at\x80V\
+>\xd2/\xa0\x82\x22\xe8\x80X\x22\x89\xed8h\xad\x08\
+\xfc\x12\xb9\xd1\xc10\x8d\x5c \x84 \x91H\x86\xc3\xd4\
+\x08JE\x0f\xa5\x01!\xb0l\x8bx\xc2\x90\x00\x01*\
+\xd0H_SNf\xf1\x0a\xcf\x91\xed\xff\x11\x81\x7f\x18\
+%\xc7\xa8\xef\xb8\x98\xb5\xaf\xf8P\xf5dY\xef\x02\xfe\
+_\xf761\xbe\xd7\xeaI\x8a\x13f\x02\xc6=\x84\x10\
+\xa2:G\xbf{\x9bx\x1f\xf0O\x00\x9b.\xbc\x9aL\
+\xcbf,\xcbFe\xbf\x8fm;\xe1leq\x10f\
+Q\xda\xc6+\x05hma9\x09\x12\xa9F\xc0B)\
+\xc9\xd8@\x0f\x81_BI\x8f\xc6\xb6\x0e\x12I'\xf4\
+\x07|\xdc\xe2\x18n)\x8b\x0c|,\x1b\xe2I'\xac\
+\x06\x06\xf8\xbeO\xa9(\x09\xbc\x1cR\x05\xa0%\xc2\x91\
+\xe8\xb0\xa9\xd2\x8euP\xdf~%\xf1\xcc\x19\x08\x91\xc0\
+\xcb\xeff\xf7C_\xc2w\xa3<\xc5\xfb\x80+\xb6l\
+\xd5\xc3\x9c\xc48\xa1\x1a\xa0\x8c\x1a\x1d4\x22W@c\
+\x1b\x13\xa0|\x94\x0a\xc2\xd6\xbb\x8a\x19\x80\x00Kh\x10\
+\x12\xa5}\x02\xb7\x80\x96\x9e\xd9oA\xba\xb1\x19\xad\x15\
+ZKF\xfa\x0e\x86s\x16\x9b\xaf9\x91Jb\x09\x0b\
+4\xf8^@\xe0\x06\x08,\x84\x10\xd8\xb6 \x91Ja\
+\xc5Z@\x0bd\x00\xbeK\xd4_E\xfa}\x8c\xf5}\
+\x0f/\xff4\xa0\x88g\xd6\xb2\xfe\xa2O\x93\xa8\x8bF\
+E\xbd\x08\xb8\xb7{\x9b\x98\xfd\x0c\x1a'\x00'\x05\x01\
+j\xa0B\x00M$\xc0r\xd3\xadRj\x82)\xf0q\
+l\x81\x96>Jyxn6:\x16\x8f'Hf\xea\
+\xcc\x98\xc4\x81\xc7H\xff\xe1\xaa\xdb\x08R\x99LH0\
+M\xb1P2QF!@\x08\x84(\x92L\xd7c'\
+:\x11B\xa0%\xf8\xae\x8eH\xa0\x82QF\x0f\x7f\x1b\
+7g\x06!q\x12\x9d\xac\xbb\xe0SdZ\xa2a\xef\
+O\x03\xee\xeb\xde&f7v\xfe\x09\xc0\xc9J\x00\xaf\
+\xbc\xa2\x82B\xe8\x03\xd8\xa6c\xb02\xc9\x1cJI\xa0\
+B\x02\xdb\xc1T\x0d\x95Q\xedF;H@R\xd7\xd8\
+\x1ce\x18\xe7F\x87)\x15*\xe9\xe4\xb6c\x93H%\
+\xd1J#\xa5\xa6\x94/!\x84\xa0\xfc\x0f\xd5G\xba~\
+\x09N\xc2$\xb5\xca@\xe0\x16u\x94\x9c\xaaU\x91\xd1\
+C\xdf\xc0+<\x15^\xaf\x915/\xff(\x8d]\xd1\
+\xac\xa8+0\x9a \xca\x818\x99p\xb2\x12 \xd2\x00\
+R\x16\x8d\x06P\x1a-\x1c\xd3H\x13i\x82 <5\
+@ \x89\xc5mc*\x02\x17\xafX\xd1\x02\x02EC\
+K\x1bZ\x99\xb1\xe8\x06\x0e\xf5Rmu\xd2u)l\
+\xc7\x98\x1a\xb7\xe0\xe1\xb9\x81!A\xb8(o'\x99\x96\
+\x8d\xc4S\xcb\x11\x80\x0a\xc0\xcd\xeb(sIk\x9f\xe1\
+\x9e\xaf\xe2\x17\x9f\x05@X)V\x9cu-\xad\xab\xa2\
+\x99SZ\x80_uo\x13\x97\x1d\x8f\xc2;\x1a\x9c\xac\
+\x04\x884\x80\x0c\x0aFE\xa3P:\x16\xb5\xd9\x97I\
+`L\x81!A,fE5\x82ba\x94j-\x90\
+H&I\xd7\xd5\xa1Qxn\x91\x91\xaa\xac!\x80t\
+}&\xd44P\x183c\x16\x19S\x00\x08MP|\
+\x9c\xba\xb63\x89gV\x01f\x8c\xc3RN\xa3\xa2\x88\
+U\xc0\xf0\xc1\x7f\xc4+>\x83\xf9\xa9\xc3\xd2S\xdfM\
+\xd7\xa6\xdf\x89n\x01\xfc\xb8{\x9b\xd8\xba0E67\
+\x9c\xac\x04\x88R\xb0|7\x17\xfa\x00\x1aM\xac\x22x\
+5\x99\x04\x96\xad\xb1l\x81V\x01\x81\x9bG\xfa%\xaa\
+I\xd0\xd8j\x1c4\xad\x15\x83G\x0e\xe3{\x11\xcf\x88\
+\xc5\x1d\x92\xe9$h\x8d\x94\x8a\xfch\x11Q\xf5\x0f\xed\
+\xe1\x17\x1e\xa3\xb1\xfde\xa4\xea\xd6\x98\x91iB\x12\x94\
+\x93\x87\xb4*2v\xe4&\xdc\xfc\x93\x18GA\xd0\xbe\
+\xfam\xac<\xfb\x8f\x08\x1dO\x07\xf8n\xf76\xf1\x91\
+\xe3R\x8a\xb3\xc0\xc9J\x80(#7p\xf3F]k\
+\x85&\x1e6\xf6H\xa4\x0c\xc2\x86\x9b\xf1\xfe@<a\
+\xcc\x80V\x01n)k\x06\x08\x08\x17\xdb\x114\xb7\xb7\
+\x816)`G\xf6\x8fo\xcd\xcd4d\x10\x96\x85\x96\
+\x1a7\xef\xe1\xbbA\xe4\x10\x22\x04J\x0e\xe3\x95\x9e%\
+\xd3~\x0e\xe9\x86u\xa6\xc3\x92\xd2\xb89E9\x9fT\
+zG\xc8\x0f\xfd\x147\xf70\xe5\x80vc\xd7%\xac\
+\xbb\xf0\x13\xe5\xf1\x8b\x04p}\xf76\xf1\x0f'C\xc0\
+\xe8d%\xc0!B?\xc0+V4@\xb9iV\xc9\
+\xc0\x8c=\x1c\x04U\xfe\x80\x04|\xe2\x09\x0b\xa5\xcd\xc4\
+\x13n>K\xa5\xbah\xb4@CS\x13\xf1x\x02\xad\
+\x15\xd9\xd1Q\xb2#\xa3\x91C'\x84\xa0\xbe\xa5\xc9\xe4\
+\x01\xa0\xc9\x0e\x17@\x85V \xfc\x17\x94v#\xbd\x1e\
+\xea\xda\xce$\xd3\xb2\xd1\x8cs\xac\xa08\xa6\x08\x5cs\
+!\xbf\xf8\x02\x85\xd1\xbb)\x8e\xdd_~\x0d\xd2\x8d\x1b\
+Y\x7f\xd1gH\xd6G5\x84?\x07\xfe\xab{\x9b\x88\
+f\xc78\x118)\x09\xb0e\xabV\x84\x8d\x81\xa5|\
+_8\xc9\x84\x02\xab\xc9h\x00e4\x80\xef\x87D\x08\
+\x1dB\xa5$BHb1\x0bM\x80[\xca#\x037\
+t\x06\xa5\x19_H(\xda\x96vR\xeeh\xda\xbb\xef\
+`H\x1e\x00M<nS\xd7\xb4\x04\xad52P\xe4\
+FK\x94\xa3\x82eM\xe0\x15\x9eD\xc9Q\xeaZ6\
+S\xdfvZ\xd4}\xb1\x94\xd5xEC\x02/\xff\x0c\
+n\xeeQ\x8a\xa3\xbfF+\xd3\xb9%\x96le\xed\xf9\
+\x1f\xa7\xa9+J\x85|%\xf0x\xf76\xf1\x9a\xe3V\
+\xb8\x13pR\x12 \xc4>\x00\xbf\x985m\xf8Z#\
+\xac\xa6\xa8\x1a(\x03\x89\x96\x01\x81?^\x0b(%I\
+\xa4\x9cp*:I\xa9\x90\xc5|\xfdeM\xa0He\
+\x92467\xa1\xd1\xf8%\x8f\xbe\x9e\xd0\xe5\xd0\xe6\xbf\
+\xba\xe6f\x9cX\x06\xa55\xc5\x9c\x8b\xef\x05\x13\xfc\x01\
+E)\xfb\x10Z\xfbd\x9a7Q\xdfi\xe6>\xd6\xda\
+\xf8\x04n\xce\x90\xc0\xcd=\x81Wx\x9e\xc2\xe8\xdd\xa8\
+\xc08\x9d\xb6\x93`\xc5Y\x7fL\xd7\xc6\xab\x08\xfd\x82\
+\x0e\xe0\x97\xdd\xdb\xc4G\xbb\xb7M\x1c\xf8h\xe1q\xd2\
+\x13@)\xf0\xdd~\xb4R\x08\xbb)t\xfa\x14R\x05\
+\x04A@\xe0\xfbF\xf0\xb2B\x00'\x1eCJ\xe3\x1c\
+\x16\xb3c\x15\x0d\x80\x8c4A\xfb\xd2\x0ela\xa1\xb4\
+\xa2\xaf\xb7\x9fR\xbe\x14\xc6w4\xc8\x01\x9a\x97\x9c\x1d\
+\xd6\x0a4c\x03ES\xe5\x0b\xb5\x80\x10\xa0d\x9eR\
+\xce\xe4\x04d\x1a7\xd0\xb4\xf4\xecp\x143p\x0b\x9a\
+\xe2\x98\xe9\xd1\x5c\xca=\x82\xf4z)\x8e\xdeGP\xda\
+e\xdeL\x08\xda\xd7\xbe\x81\xd5/\xffK,'\x0d&\
+\x11\xfa\xf3\xc0m\xdd\xdb\xc4q\x1d\xdb\xf0d&@\x94\
+\x93\xed\x16\xfaM\x0c^$\x8d#\xa8\x0d\x09\x94\x92\x04\
+\x81\x8f\x94\xe35\x80\x10\x8aX\xccF*I\xa9\x90G\
+)\x13\x1a\x8eH\x80\xc4v\xa0sEG8y\x85\xe2\
+\xe0\xee\x1e\xa2\x10\x9fV8N\x81\x86\xb6M\xa0\x08M\
+\x81[\xfe\xfe)\x87\x92\xa5w\x18\xaf\xf8\x1c\x00\xa9\xfa\
+\xb5\xb4,\x7f\x85q\x225x\x05M~D\x83\x92\x94\
+\xc6\x1e@\xcaa\xdc\xfcv\xdc\xdc\xa3\x94\x9d\xc3\xfa\xb6\
+\xd3\xd9\xb0\xe5\xb3$\xea\xa2h\xf1\x15\xc0\xa3\xdd\xdb\xc4\
+\xcb\x16\xbap\xcb8\x99\x09\x10\xe5\xda\xb9\xa1\x1f\xa0\xb5\
+\x02\xab\xd9LF\x85B\x06\xe6\xcb\x0f\x02o\x9c\x1f\xa0\
+\x94$\x91\x8c\xa1\xa5\xa91\x14\xb29*f\xc0\x10@\
+kEcK\x13\xe9\xba\x14Zk\xc6Fs\x0c\xf5\x8d\
+\x18\xcf\x1e\x8d\xf2{i\xe88\x15;^\x8f\xd6\x9ab\
+\xd6\xc3-\x04D.\xa1\xa8\xb4\x0e\x06\xbe\x09/'2\
+\xcbi[\xfd*\xacp\x82,\xbf\xa4\xc9\x0e(\xa4\x0c\
+(\x8d\xdd\x8fR9\x02\xf7@\xe8\x17\x98t\xf6x\xaa\
+\x83\xf5\x17\xfe5\x8d]\xe7\x97_w\x0d\xd0\xdd\xbdM\
+\x1c\x97\x09\xb4Of\x02<X^)e\xfb\x01\x85\xd6\
+Uf\x00\x15U\x09\x03\xcf\x1f\x17\x1dTJ\x12K\xc6\
+L\x8dA)rc\xd9\xaa6\x84\xf2_\x85F\xb1d\
+U8S\xa9\x86\xde\xdd\xbd\x04A9\xe5?@\xfb\x07\
+\xe8Xu\x11Z\x0bP\x90\x1drQJ\x87\x83\x93U\
+\xcc\xb5\x9b}\x14Uv\xf4\x12\xadt\xac\xbd\x04+\x9e\
+1\x13`\xf80\xd6\xa7\xf0\xdd\x12\xc5\xd1\xfb\xd0\xaa\x84\
+\x0aF(\x8e\xde\x8d\x0a\xccT\xbb\x96\x9db\xe5\xd9\xef\
+c\xd9\xe6w!L\xcd0\x01|\xa3{\x9b\xb8\xa7{\
+\x9b\x98.qz\xde8i\x09\xb0e\xab>\x08\xf4\x02\
+\x14\xb3\x03a\xa3\x90\xc6r\xda\x22?\xa0\x9c\xbb\xef\x8f\
+#\x80Y,\x0bl\xc74\x09\xe7\xb3y\x82 \x18/\
+\xfcpI\xa4\x12\xb4v\x9a\xa4O\xdf\x0b8\xbc\xbf\x8f\
+\xf2\x90\xe5\xd2;\x80\x93\xac\xa7e\xe9\xe9(L[A\
+v\xc0\x8b,E\x19Z\xfb\x94\xc6\x1eD\x87\xaa\xdd\x8e\
+\xd5\xd1\xb9\xf6\x12\x12\xe9fSM\x0c \xdb\xa7)e\
+\xf3\x14\xc7\xeeCk\x1f\xadJ\x14\xc7\xba\x09\xdc\xbd\xe1\
+U\x04-+~\x8b\x0d[>G\xb2.\xeaH\xfd*\
+\x8cI\xf8Z\xf76\xd1\xb2\x10\xe5|\xd2\x12 \xc4C\
+\x00~1\x8f\x0a\xc6\x0c\x01b\xcb\xab\x22\x80\xda\x04\x85\
+\x02\xe3\x10N$A<i\xe6\x1bP\x81\xa4\x90\xcd\x87\
+\x1a\xa1\x1cE\xac\x90\xa0c\xe5z\x9c\xb8\x83F3\xd8\
+;L\xa9\xe8b\xdc\xbf\x00\xe9\xed\xa3\xa1\xfdt\x92\x99\
+V\x13\xf4)J\xf2c\x95&\xe52\x94\x1c\xc3\xcd=\
+\x1em[v\x82\xf6\xb5\xaf&\xd3\xb2$\x8c\x1ajr\
+\x83\x8a\xec\xc0(\xc5\xb1\xfb\x0dY\xb4\xc2\xcd=\x81\x9b\
+{(LW\x83D\xdd2\xd6_\xf4i:\xd6\xbd\xb1\
+|\x0f\x1b\xf8S`g\xf76\xf1\xde\xeem\x13G\xc8\
+\x9c\x1fNv\x02Df\xa0\x985\xc1Aae\xc0j\
+\x08\xbfre\xe6\x1c\x9ed\x06B? \x13\x0b{\x00\
++r\xa3\xd9*\xcd1^\x0bXv\x9c\xe5\xebO\x8f\
+\xec\xff\xe1\xbd\x95v\x02\xe9\xed\x05$\xed\xab/\xc4\xb6\
+\x1c\xd0P\x18\x09\x08\xbc\xc9\x894\x81\xdb\x83_\xf6\xf4\
+\x01!lZ\x97_@\xe3\xd2p(\x22\x01\xc5\xacb\
+\xf8\xe0\x00\x85\xe1\x07L\x08\x1b\x08\xdc^\x0a#w\x22\
+\xfd#\xe1;\xc6\xe8\xdcp%\xeb/\xfa8\x89L\xf4\
+\xe1\xb7bF2y\xa4{\x9b\x88\x02\x09\xf3\xc5\xc9N\
+\x80\x87\xca+\xc5\xb1\xbd\xd1N;\xb6\xcc\x08S\x98\xb8\
+\xbd\x96\x12\xaf\xe4\x8d\xab\x0a*%\xb1m\x81\xe5Xh\
+\x14\xb9\xb1\xbc\x99\x9aVI\xb4R\x111\xb4V(9\
+Dc\xd7\xb9d\x1a\xccX\xc3\xd9\x91<\xb9\x91<e\
+\xfd-\xbd\xbd\xd8\xf1zZW\x9d\x13Mm\x93\x1d\x08\
+\xa8\xea\xa7\x12\xc1\xcd?\x83\x0c\x06\xaa\xf6\x08\x1a;\xce\
+\xa4}\xcdY\x80\x00\x0d^I3\xb0\xff\x08\xb9\x81\xbb\
+Q\xaa\x00\x80V%Jc\xf7\xe3\x15\x9e\x84p\xe8\xa2\
+T\xc3)l\xd8\xf2\xb7t\xae\x7fM\xf5\xa0\xa8\xe7`\
+\x9a\x97\xbf\xd7\xbdM,\x99o\x01\x9f\xb4\x04\x10B\x88\
+#\x83<F\x984\x9a\x1f\xaa\x0c\xd8a'V\x84_\
+\xb3\xa9\xf2I\xa5\xf0jh\x00\xa5$\xa9L\x02)\x15\
+JJrcf>c\xa5eT\x95\xd4JGm\x07\
+\xcb7U\xfa)\x1d\xde7\x88*\x1b\x02w\x0fhI\
+\xa6y=\xf5\xad\xe5(!\xe4\x86j0\x00M)\xfb\
+0J\x15\xc7\xedM7\xaeg\xc9)\x17\xe0\xc4\x8c\x16\
+Q\xbefp\xff\x08\xc3=\xff\x85\x0c\x9dA\x00\xbf\xb8\
+\x87\xe2\xc8]\xa8\xc0d\x92\x09+M\xc7\xfakX\xbf\
+\xe5\xa3\xd4\xb5tT_\xf2\x0f\x80\xe7\xbb\xb7\x89\x0f\xcf\
+\xa7\x9cO\x0a\x02\x84\xed\xeeV\xb88B\x88\x18\x10{\
+\xcb_PT\x9aG\x00\xdc\x5c\x0e\xe9\x99/+\x96X\
+\x11\xda\xf1\x00D\xd8\xb7\xbf\xec\x0c\xca\xf1A\xa1T]\
+\x22\xfa\xda\xb3\xc39\xd3\xf3\xb7Z\x0b\x94\x89 \x87I\
+7\xae\xa7\xb9\xcb\x84\xe6\xbd\x92\xcf\xe8\x91\xb1\xb0\xc1\xc7\
+'p\x0d\x01[W\x9cO,\x9e\x04\x05^^S\xcc\
+N6\x05Z\xb9\xb8\xd9\x87\xd1\x8c'H<\xb5\x94%\
+\x9b^E\xb2.\x19\xb5!\x8c\x1e)qd\xd7\xaf\xf1\
+KQ\xd8\x03%s\x14G\xef\xc1/>G\xd9\xe3L\
+\xd6\x9d\xc6\xea\x97\x7f\x8e\xd6U\xe3\xba\xd1d0\xa3\x99\
+\xcc\x19'\x84\x00U\x02\xb7\x85\xa9\xf7\xc40M\xa5\xb1\
+\xaau\x07pJ.\xb7\x81\xd1\xc6\x85\xd1\xbd\xe6\xf7V\
+\x1a;\xd6n\xd4|\xbc\x01%C-\xe0\xfa\xe3s\x05\
+\x94D\xd8\x16\x89LKX\x1d,\x10\x04~$\xf8\xc8\
+\x17P\x0a\x15\x0c\xa3\xb5`\xe9\xfa-\xd1\x94\xb5\x03\xbd\
+c&\xe4\x8cF\x96^4\x89\xa1v\x92\x8eu\xe7\x95\
+\xa3\xc6\xfa\xdd:\xd7\x00\x00\x10pIDAT\xe4\x87\
+\x14\xd2\x9f\xf8\x86 \x83\xa10_p<\xecX\x0b]\
+\x1b.\xa5\xa9\xb3\xf25\x97\xb2\x92\xde\xe7\x1e\xa60\xb2\
+=\xaaI @\x888\xd5\xcefa\xe4 #\x87\xa2\
+\xf0\x88\x07\xbc}\xcbV\xfd\xad9\x8a\x018\x8e\x04\x10\
+\x06\x96\x10\xc2f\xbc\x90k\x09\xbf\xbc\x1e{r'\xff\
+Y\xbeFnhot\xbdX\xd2$f8\xf1z4\
+q\xb4R\xf8n0\xc9\x0fP\xca#\xd3\xbc<T\xf5\
+e-\x10\xd6\x02BM\xa0\xb4B\x05Ch4N\xa2\
+\x95\xae5fpS)\x15\x83\x87\xb2a\xf3\xb1\x8b\xef\
+\xee\x03\x0d\xf1\xf4\x12ZWl@c\xbe\xe2\x91\xc3*\
+jQ\xac\x86_\xda\x83\xef\xee\x9f\xb4_XIZV\
+\xbe\x92\xce\x0d\xa7b;aT\xd1\x87\xc3\xbb\x9eg`\
+\xef\x1d(9B\xaa\xe1\x958\xc9\xb5\xe1/4C=\
+w\xb3\xe7\xe1\xbfAz#`z\xcf\xbdq\xcbV}\
+\xcb\x5c\xe5Q\xc6\x82\x12`\x82\xd0'\x0a\xdc\xa9\xb1/\
+6q\xf9\xc8\x979\x10H\x9e\x03\xc8\x0d\xeeG\x87C\
+\xf9\xc5R\xa7\x00\x84\xde\xfeR\x94R\x04^0),\
+\xac\x94$]\xd7\x81I\x13\xd7d\x87\xf3\x91\xf0UU\
+\x8d@\xc9<Z\x16\xd1Z\xd3\xba\xe2\x5c\xe2I\x93\xd6\
+?6\x90\xc7-\x85\xdezi\x17Q\x18\xb7\xe3\x0cR\
+\x0dM&^\xe0\x9b*^-\xb8\xf9'\x91r\xa4\xc6\
+\x11A\xa6\xe94\x96m~%\xc9\x86ph\x0c\x0d\xd9\
+\xfe\x1c}\xbb\x9f\xc7+\xf5\xa1\xb5\x87V.\x87\x9f\xff\
+>\x07\xb7\x7f\xbb\x5ck\x18\x06^\xb7e\xab\xfe\xc5\xdc\
+\xa42\x1e\x0bB\x80Y\x0a}\xa2\xe0\xa7:\x1e\x1b\xcd\
+\x19-\xa0\x02\x8f\xe2\xa8\xa9f9\xf1\xa5\xd8\xb1V\xb4\
+\xf6\x89\xa7\x96\x86I\x9d\x0a\xafTv\x06\xab\x92ED\
+@\xa6i\x05Z+\x8a\xb9\x12~\xc93\x82\x8f|\x01\
+Y\xa5\x05\x14B\xc4Y\xba\xc1\xe4pj`\xa87g\
+\x9a\xa4U\x09\xdf-wY\x15\xb4\xaf9\x1f;f\xe6\
+0*\x8ei\xdc|\x0d5\xa0%\xa5\xb1\x87\xd0\xda\x9b\
+|\x0cp\xe2\x1d,\xd9p)\xad+Wc\x85=\x8c\
+\x0a#=\xec~\xf0\x06\x06\xf6\xfd_\xf6>\xfay\xfa\
+\xf7\xfc\x22|\x12\x0e\x05\x92K\xb6l\xd5\xf7\xcfM2\
+\x93q\xcc\x08Pe\xd7\x1d\xc2a~j\xfc\xad%\xfc\
+\xf2\xf1ZZ\xc0\x01\x9c\xc7v\x10u\xbf\xce\xf6U\xec\
+j<}\x06(\x0f'\xd5\x82\x10)\xb4V\xb8\xc5\xc9\
+\xb5\x01)sdZ\xd6\x86f@32\x90\x8d\x82A\
+\x91/\xa0\x94\xf1\xc6\x95is\xc8\xb4\xae\xa1\xae\xc5\xd4\
+\xb2\x8a9\x8fb\xd6\x03\xad\xf1\x8b/P\xce\x06\xb5\x9d\
+:\xda\xd7\x9d\x13\x99\xe9l\x7fm\x7f@\xab\x02\xa5\xec\
+#L\x0a!\x96\xcb\xce\xce\xd0\xb1\xfe=l|\xf5\xf5\
+\xd4\xb5\x9a\x0cr\xe9\x178\xfc\xdc/\xc8\x0d\xee6\xd7\
+\xd0\xec\xe9\xed\xe75\x97\xfc\x11;B\xdf\xe9\x98\xc8n\
+\xde\x17)\x0b\x9e\x8a g\x12~\xad\xfdSi\x00\x07\
+\x88]\xf7M^\x08\xa4\x99\x88zl\xe0E\x944i\
+\xdd\x89\xccf\x94\xcca\x09M\xa2n\x05Ji|\xd7\
+D\x06\xc7\x91 \xc8\x91\xaa\xef\xc0\x8e\x9b\xfe\x01\xa3C\
+y\x02?\xac\x0aF\xb5\x01C\x00\x1d&\x8a\xa04]\
+k\xcf\x8f&\xa5\x18>R\x08G\x13\xcb\x13x\x95T\
+\xb2t\xfd*\x9a\xbaL\xe8\xd6x\xf5\xb5\xfd\x01\xe9\xf7\
+\xe1\x15vL\xdao9\xcd\xa4\x1a/\xc6\x89\xaf \x96\
+\xecd\xcd\xcb?LC\xc7\xf8i\x8f\x95\xe2\x99\x07\xb7\
+\xf3\xba+?\xc2\x81\xea\xf2;\x16D\x98\xd7\x8f\xc3\x9b\
+\xdbL\x16|-!\xdb\xd4\xd6\x04Si\x88q\xc4\xe8\
+\x1f\xe2?\xc0\xf4\xd5\xcb\x0dl7\xf7\xb7\xd28\xc9U\
+(\x99%Y\xbf<\xca\xd1\xf3J\x15\x02\x98\xe4\x911\
+4\x8a\xe6\xce\xf5f^B\xa9\x18\x1d\xcaU\xc6\x09\xd4\
+&\xa6\xa0\xfc1\x94r\xa3<\x80X\xaa\x91\xd6e\x9b\
+\x01\xf0]En\xd8\xb4\x03x\x85\x9dTK\xb9y\xd9\
+9$\xebM\x10)\xf04c}\xaa\xe6\xc7\xee\x15w\
+\x12x\xbda\xe1\xd9$2\xa7\x93j|5\x96m\xe6\
+:T\xc10=\xdb\xafg\xacog\xf4\x1b%y\xfa\
+_\xff\x83+>\xfc\xf7\x0cL(\xebh\x09\x890\xa7\
+d\x929\x11 t\xeej=\xcct\x84\x98H\x86\xe9\
+\x04?\x89\x08\xdf\xff\x19\xb7\xea\xd0\x03\x1b\xee\xad\x98\x81\
+D\xe6td0\x82\x93l\xc0\x8e\x99\xb1F\xbc\x92\xaa\
+\xd2\x00\x01\x817\x88\xd6\x8a\xba\xd6\xd5\xa6\xbd^iF\
+\xfb\xf3\xc6a\x0c\xd5\x7f\xb9j(\xbd\xde\x8a\x16\xd0\x9a\
+\x96e\x9bq\xe2F\xb8c\x03\x9ei[\x90\xd9qZ\
+@\x08\x87\x8eu\xaf\xc0\x8e\x9b\xe2t\xf3z\x8a \x11\
+\xb8\xb9\xc7\xb0\xec:\xd2M\x97\xe2$\xd7S\xb6\x1f\xc5\
+\xb1\xc7\xd9u\xff\xc7\x19>\x18\xcde\xa5Gs\xdc\xf0\
+{\xff\x9b\xff\xf1\xcd[\xc8NS\xa6\xd5D\xb0\x8e\x96\
+\x07GM\x80\x09_\xfdD\x81O$C\xf5\xf1Z\x0f\
+>\x93i\x88\x8e\xfd\xf8.\x06\x87F\xf8\x15@);\
+\x88\x9b7\x02\x88%\xd7\x82v\xb1\x04$3+\xd0\xca\
+|\x85J\xaa*\x1f\xa0\x84\x0c\xc6\x10V\x82\xe6\xaeS\
+@C\xe0+r#\xc5*_\xc0\x90 p{\x22\xe1\
+k4\x96\xe3\xd0\xbe\xfa\x5c\xc04\xe8\x8c\x0d\xf8h\xad\
+\x8d\x16\xa8\x82\x13k\xa6k\xfd9\x94{\x8a\x17F'\
+\x07\x89\x84\x95$\xdd\xfc:\x9c\xe4j\x84\x95\x0c\xaf\x99\
+c`\xcf7y\xf1\x81/\x87I\xac\xa0\x14\x83\xdbw\
+\xf1\x07\x97\xff\x19_:db_S\x0a\xbd\x96\x0c\x8e\
+F\x1b\xcc\x9a\x00U\xb6\xbez\xb1klOE\x8c\xd9\
+\x90a*\x12\xc4\x00\xe7\x8e\x07\xf9a\xf9yF\x0e\x95\
+\xb5\x80\x85\x153A\x95d\xc32\xc0\xf8h^QG\
+YCJI\x02o\x00\xa5\x15\x0d\x1d\xa7\x82\x153\xbe\
+@\x7f!\xca\x11\xd0a\xbb@\xe0\x0f\xa2dq\x9c\x16\
+\xa8k]N\xb2\xde8\x84\x85Q\x89WP(9F\
+\xe0U\x0dq\x0a$2\xabi[S\xb1\xdf\xd9\x01\x85\
+W2$\x88\xa76\xd2\xd8u\x0d\xf1\xf4\xe9h\xe5\x12\
+\xb8=\xb8\xb9'\xd8\xff\xe8G9\xf4|w\xd4\xcb\xa8\
+\xe4\xf2\xe0?\xdf\xcae\xef\xfd\x1c\xdd5\xcah\xba\xb2\
+\x1d'\x83\xd9\xfa\x06\xb3:)d\xd4D\xe1O\x14z\
+\xad\xaf~\xba}S1zJS\xf1\x8f7\xf3|\xb6\
+\xc0\xb3\x00\xa3\x87w\x98\x8c_ \x919\x03%s8\
+\xc9\x0cv\xdc\xb4\x9e\xb9\x05\xd3\xa6o\xaao\x12\xe9\x0f\
+\x86\x91A\x87\xa6\xaeS\xc3F\x19\xc9\xd8P1j&\
+.\xfb\x0c\x81{\xc0d\x1f\x85\x03S\x80\xa6}\xcd9\
+\x18\xab\x07c\x03\xd2\xa4}\x15'O=X\xd7r:\
+\xcd\xcb\xc2Lo\x0d\xa3\x87\x14\x96}\x01\x99\xd67\x99\
+\x96L\x8c\xad\x1f\xdc\xf7-v?\xf4\xf7d\x07\xa3\x18\
+\x81:\xd4\xcf\xd7\xde\xf2\x17\x5c\xfd\x83\x9f3\xc8\xe4\x0f\
+j\xaa\x8fn\xcae6$\x98\xf1\x04QI\x7f\x99\xe9\
+\x86S\x9d3\x1b\x06\xcfd\xdf\x22\x12<\xf2\x8c\x99\x8a\
+F+\x8f\xd1\xde\xfb\xc3gL`\xc7\xdb\xb1\x04\xa4\x9b\
+V\x86#\x7f\x84=y\x01\xd0\xf8\xee\x91(\xe8\xd3\xd8\
+\xb9\x01;\x96\x06`\xa4\xaf\x84\xef\x07\xe3\x9a\x87}\xef\
+\xa0\xa92\xea\xb09H+\x12\xa9:\x9a\x96\x98\xe0\x93\
+\xf4\xa10\xacP\xc1\x08\x81_=\xfa\x88)\xaa\xa6%\
+\xe7Q\xdfj\xfc\x11\xad\xe1\xc8\x0b\xf73\xd6\xf7\x0c\xa0\
+(\x8e>D\xcf\xf6\xef\xd0\xb7{\x1fA\x18\x1a\x90\x92\
+\xc1\xbb\x1f\xe5=o\xfb\x08_\x1b\xcd\xa1\xa9-\xf8\xd9\
+\x0a\x7f\x9c\x1cf\x22\xc1l4\xc0l\xd8V}\xd3\xa9\
+\x1e~\xba\x97\x98\xadf\xb0\xbf\xf0\x1d\xees}\x06\x00\
+\x06\x0f<\x82\x0aL[\x88\x93X\x8e\xb0S\xa4\x1b\x97\
+\x81\x16h\xcd\xb8\xc0\x8c\x929\xa4?d\xda\xff\x1dA\
+\xeb\x0a\x13\xee\xd5R3r\xb8T\xe54*\xa47\x88\
+R\xf9p\x04\x11\x15\xf9\x03MKO\xc1\x89\x1b\xe2\xe4\
+G4\x81\xab\xf1\x0b\x93\xb5\x80\xed4\xb1\xe2\xac\xbf\xa2\
+u\xb5i\xb8\xd1(\x0e=\xf7\x13\x0e<\xf5Mz\x9e\
+\xbe\x93\xe2X%X08\xc2\xcf?\xf5\x0d\xde\xfa\xf1\
+\x7f\xe4\xe1Y\x94\xddl>\xc4\xf2y\xd12\x9dO0\
+-\x01\xc2\x1f\xcef\xa9u\xf3\xe9\x1en\xb6\x0c\x9fD\
+\x80|\x11\x9e}\x91\x9f\x00(\x190x\xe0\xd7\x84\xa5\
+l\xa2\x83N\x82dC{\xa8\xe2\x19\x17\x98\x09\xdc\x03\
+F\x98JQ\xd7\xba\x82x\xa6\x09\x80b6\xa0\x98\xf3\
+)\x8fC\xa0\xb52\x11\xbf*\xe1k\xad\x11\xc2\xa2m\
+\xf5\xd9\xd1\xf5\xb2\x03\x9a \x18B\xfa&\x81D\xd8i\
+\x12\xf5\xe7\x92j\xba\x14;\xbe\x9c%\x1b\xdfA\xe7\xba\
+K\xa3\xf3\x0b#cQ\x0e\x81\xeb\xb1\xef\xe7\xf7\xf2'\
+o\xfa \x7f}\xd7#\x8c\xcePfS\x91`\xa6\xb2\
+\xae\xd6\x045I0%\x01\xaaT\x7f\xad\x1bN\xb7\xaf\
+\x169\xa6\xda\x9e\xc9d\xd4\xd4\x12_\xfc.?w=\
+\x06\x01\x86z\xb6\xe3\x15\x8d\x1a\xb6\xecF,\xa7\x99\xfa\
+\xb6\x8dQk]q\xacR\x1d\x0b\xdc\x9eqM\xb4\xed\
+\xab\xcf\xa1\x5c\x0d\x1b=\xe2#\x03\x15%\x92\xfa\xc5\xfd\
+&;\xb8\xdc--\xac\xf7\xa7\x1b\x97\x90i6\x89\xa4\
+\xbe\xab)\x8ej\x02\xef \x89\xba\xb3H7\xbd\x16'\
+\xbe2\xbaf\xe0\xf5Q\xca\xef\x1c\x97=\xa65\xfe\xce\
+}\xfc\x9f+\xff\x92w~\xfe_x\x9c\xa9\x85;\xd3\
+\xbe\xa9d0\xdd2\x09\xd3i\x80Z?\xacu\xc1\xe9\
+\x04m\xd5\xf8\xddlH2-Az\x8e\xe0\xdf\xf1 \
+7\x96K\xb4\x7f\xf7]\x80Q\xf3\xf1\xf4)$2\x1d\
+$\xd2\xadh4^AG\xbe\x80\xd6\x1e\xd2\xab\xd8\xec\
+D\xba\x85\xa6e\xa7\x01 \x03Mn\xc8\x8f4\x80\x0c\
+F\x08\xdc#a\x82\xe8\xf8\xea\x5c\xdb\xaa\xb3\xa3\x91\xc1\
+\xf2\xc3\x82D\xe6\xb7\xb0c\x9d\xd1\xebJ\xbf\x9f\xbe]\
+\xff\x87\xe7\xef\xf9$\xa3\x87\x0fDA\xa1\xb1<\xdb\xaf\
+\xbf\x91\xad\xd7|\x8a\xef\x0d\x8e \xa7x\xbf\xd9\x96\xcd\
+Q/\xb5\x94\xc0l\x090\x15\x9b\xa6#\xc9l\xaf3\
+\x91$\xb3\xd2,\x7f\xfbm\xee\x1b\x18f;@np\
+\x0f\x85\xd1=\x80F\x88\x18Nb\x19MK7\x83\xd1\
+\xe0\xe4\x87+\x02\x0c\xa2\xc6\x1c\x83\xa6%\xa7\x10O\x9b\
+IM\xf3#\x8ab\xb6\xec\x0c\xea\x9a^>\x80\x93\xec\
+\xa0c\xddk\x01\xd0Jrd\xd7/\x91~?*\x18\
+a`\xcf\xf7\xd9q\xd7G8\xb2\xeb\x9e\xa8j\xe7\xf9\
+\x0c\xde\xf1\x00\x9f\xbd\xec}|\xe0'wsh\x16e\
+2\x9b\xb2\x9e\xaa\xec\xa7\xc3\xa4\xe3s\xed\x9e<\x9d\xd0\
+\x8f\xe5\xcbL{\xdd\x7f\xbe\x95\xef|\xec\xdd|I\x08\
+\xec\xbe]\xff\xc5\xaasW#\x83!\x12ug\xa3d\
+\x96T\xd3s\x14\x87\x8f\x10\xb8\x9aRN\x93\xac\x13\x04\
+\xdea\xb4\xf6\xc2d\x0b\xb0\x84\xa0c\xedy\xf4>{\
+\x07J\xf9\x8c\xf5+3T\x5cJ \xfd\x01d0\x84\
+\xed\xb4\x00\x02;\xd1E,\xb1\x06;\xd6N\xbaQ\x93\
+\xed\xdfEad7\xf9\xe1\xbd\x1cx\xfa\xdb\x14Fz\
+\xaa\xe7\x1d\xc2\x0f\x18\xdb\xbe\x8b[?\xff/\xfc\xf8\xd0\
+\x00\x85)\xcan\xb6\xe5\xadg\xd8.\xef\x9bM\xd9F\
+\xa8\xa9\x01j\xa8\x8a\xe9\x1e\xf8h\x188W\xd4$\xc6\
+\x7ft\xd3\xf3\xcc\x8b\xa6\x8d\xc0\xcd\xf71\xdcs\x0fZ\
+y\xa8 G\xb2\xfe\x02Z\x96\x9b\x08\x9e\xd6\xa6\xdaf\
+\x8aLM\xd2\x02\xf1T\x9a\xf6uao,m\x1at\
+\xca]\xbd\x03\xf7 \xf1\xf4&\xd2\xcd\xaf'Yw>\
+v\xac\xc3\xdc^Xtm\xfc\x9f\x94\xb35s\x03{\
+\x22\xe1\xfb\x01\xd9\xc7vp\xd3\x1f~\x9ck\xde\xff\x05\
+n=4\x80\xcbd!LWn\xc7\xaa\x1cg\xbc\xce\
+\x94\xe3\x04\xd6\x88\xfa\xd5r\xd6\xc4\x14\xdb\xd5\x0e\x9c`\
+\xfa\xaa\xcd\xbc\x96%m\xa4\xbf\xf7y\xbe\x9c\x8c\xd3\x82\
+\x80\x95g\xfe\x0e\xe9\xa6\xb3\x88\xa5\xd6\xa3\x82az\x9f\
+\xfd{F\x0e\x1d@\x03\xe9FA]\x8b\x85\xb0\x12\xa4\
+\x9b.\x8d\xb4@\x19#\xbdO3t\xd0\x84xm'\
+\xc6\xb2\xcdo \xd5x*\xb1\xd4\x06\x84\xa8\xccgR\
+\xca\xbe\xc0\xe0\xfe\xdb\x19\xeey\x98\xf2\xb8\x81\x00A@\
+\xfe\xa9\x17\xf8\xf1\x97\xb6q\xdb\x81\xc3\xe41\x09\xad\x1a\
+\xd3\x86\xa1\x8e\xf3\x22\xab\xee\x1fmO\x1c\x92o>\x04\
+8Y\x16\xf1\x91\xab\xd9\xf2\xa6K\xf8\x80\x11\x9c\xc3\xaa\
+s\xaf\x22\xd5p\x0e\x96\xd3\x8a_|\x91]\x0f|\x81\
+\xc0-\x81\x80\xa6.\xa3\xdec\xc9\xd5\xe1\xe0\xcf\x80\xb0\
+\xb1\xe3\x1d8\xb1\x0e\xfa^\xbc\x93\xc1\xfdw\x01\x10O\
+\xb7\xb2\xf2\xec?$\x96\xec\xc4v\xda\xc8\xf6?B\xff\
+\x9e_P\x18\xd93\xae\xac|I\xee\x99\x17\xf8\xf9\xf5\
+\xdb\xb8m\xff!rUB\xa8%\xfc\x89\xfb\xc6\x09\xe8\
+(\x7fw\xb4\xc4\x92\x13\xe5=\x1d\x01\xaa\xbf\xee\x13&\
+\xdc\xd9\x9e\xf7\xdd\xcf\xf0\xbf6\xac\xe4uFp\xf5\xac\
+>\xf7]$\xea^\x06Xd\x07\xba\xd9\xf7\xd8w\xb0\
+c\xf5\xc4\x92\x0d4/k&\x96h \xd9p\x11N\
+\xac\x13\xcbi\xa2b\x0d%\x07\x9e\xfc&#\x87\x1e\x00\
+ \xd5\xb8\x82d]\x0b\xa3Gv\xa0\x82\xf1Y=#\
+Yv=\xb4\x9d\xdb\xff\xe9f\xee\x1d\x1a\xc3\xad!\xb0\
+\xb9|\xb9S\x09\xbf\x16I\xa6\xfc\xd2k\xed\xd3\xd5\xea\
+\xaa,\xe7\xe9\x86\x8a]`-0k\xe1\xceb\x9fH\
+%\x88\xdd\xfcE>\xd9\xd6\xc4f\x80\xba\xd6%\xac<\
+\xebZ\xec\xb8i\xc4)\xe5\xfa(\x8c\x84\xf1\x02G\x90\
+n\x10\x08+aZ\x13#\xe1\x83R%\x0a#\xbb\xe8\
+y\xea[\xf8\xa5\xc9\xa3\xbcJ\x85\xbb\xb7\x97\xee\xdb\xee\
+\xe2\xf6\x1f\xdd\xc1n\xa6\x17\xfaL$8\xae$\xa91\
+\x22\xeb\x8c\x048\x1a!M\xb4\xfb\xf3!\xc1$\x01O\
+sN\xf4w\xc3*\x1a\xbe\xf6Q\xbe\x98N\xd2\x05\xd0\
+\xb2\xf2t\x96\x9ezmd\xeb\xf3\x83{q\x8b\xa6\xc9\
+5\x16\x17$\xea\x04\x888Z\xda\xe4G\x9e'\xd7\xff\
+4c\xfd\xcf\xa3\xd5\xe4\xfc\xbd\x5c\x81\x9e'wr\xc7\
+7o\xe1\xae=\x07#5\xaf\xa7\xf8;\xdd\xfa\xd1\x12\
+`\xae$\x19\xb7\xd4\xfa\xfaa\x06\x02\xc0\xbcL\xc1L\
+\xbf\x9b\xe9\xcb\x9e\xeax\xads\xa2\xfd\x97\xbf\x8a\x15\x1f\
+\xb9\x9a\xeb\x1d\x9b4\xc0\xb2\xcd\x97Q\xdfq\x09*\xc8\
+\x13x#\xf4\xef\xbe\x17\xbf8D\xe0\x8f\xa1\xd4\x18\xca\
+\xaf\x91\xc4g\xa0G\xb2\xecza?\x0f\xfdg7\x0f\
+\xdd~\x1f\xe5\x11$\xca\xcbD\xc1OG\x82\x99\xc8p\
+\xac\x082\xd1\x1c(\x8c\xdd\xaf)|\x98\x05\x01\xa0\xa6\
+)8\xa6\xea{\x16\xc7j\x05\x88j\x12\x00\xe0C\x7f\
+\xc8y\xbf{)\x9f\xe2(\xabSJ\x13\x0c\x8e\xb0}\
+\xc7n\x1e\xbc\xf5\x0e\x1e|l\x07\xc3\x8c\x17\xfaT\xcb\
+\xd1\x90a\xae\x848\x1a\xe2T\x7f\xf9\xd5\x93\xafL\xc2\
+\xac\x87\x8b?\x0a\x12\xccF\xe8\xd3\x09\xbe\x96p\xa7\xfa\
+[\xbd\x8c\xdb\xf7\xd5\xff\xcd[\xcf=\x95wO\xf7N\
+RQ8\xd4\xcfC\xbd\xfd\xec\xda\xb1\x9b]?\xfb5\
+/\xf6\xf6S\xa2\x12d\xa9\xfe;q\xbdZ\xd8\xb3!\
+\xc3l\xb4\xc3|\xb4E\xadc\x93\xbc\xfe\x898\xaa\xf9\
+\x02\xa60\x07\xc7J\xe0S}\xd1\xb3\x16\xfa\xc4\xe5\xdb\
+\x9f\xe6]\xe9\x14-%\x97\x5c\xc9#W(\x92\xcf\x17\
+\xc9\x1d\x1ed\xf0\xce\x87\xd9\xf3\xdcn*\xa3F\x8f\xc7\
+T\x04\xa8E\x84\xe9\x081\x9d\x9f0_2LG\x8e\
+i\xd5~5\x8ez\xc2\x880JXv\xf8fc\xb3\
+gR\xe73\xa9\xf6Z\xc7\x8ef\xa1\xc6\xdf\xd9b:\
+\x0d0\x1b\x930\xd3\xfatZb\xaed\x90\xb5\xbc\xfd\
+\xa9p\xd4m\x01\xe1\xb5\xa5\x10Bc\x04R~\x81\xea\
+\xf5\xf2R\x8eO\xab\xaa\xe3\x13\xf7\x95\xff\x8a\xaa\xed\x99\
+\xd4\xfdt\x84`\xc2\xdfZ\xc2\x9f\x89\x08z\xc2\xfaL\
+\x1aa.d\x98J\xe8s%\xc3\xac\xbf\xfaj\xcck\
+\xca\x98P\x1bL\xf5\xd5\x1f\xad]?*\x1b_ca\
+\x9am\x98=\x01&\x0a\x7f\xaa\xbfs1\x09\xd3\x99\x83\
+\xf9\x98\x8a\x9au\xfc\xd9\xe0\x98\xcc\x19T\x83\x083\x91\
+`N\x8e\xdd,\x16j\xacW\xff\x9d\xb8>\x1d&\x0a\
+}\xe2\xbe\xf9\x9a\x05\x98=\x19ji\x87Y9y3\
+\xe1\x98N\x1a5\x81\x08\xb3\xb5\xefLq\xcelT>\
+\xb3\x5cg\x9a\xf5Z8Z-0q{\xbefa:\
+R\x94\xa3z3\xbc\xc2\xec\xb0`\xb3\x86M\xa81\xd4\
+\x12\xdeL6~\xaa\xfdL\xb1\x7f:\xfb\xcf\x84c\xb3\
+\xc1\xc4\x82\x99\x8a\x00\xd5\xebS\x91b*sp4d\
+8*\xe7n\xb6X\xf0i\xe3j\xa4\x95\xcfE\xe8s\
+U\xf9\xc7\xc2\x04T\xaf\xcf\xc7'\x98\xc9G\xa8\xb5-\
+\x81\x85\x90{\x84\xe3>o`\x95f\x98\x8b\xc0\x8f\xd6\
+\xe1\xabE\x80Z\xdb\x13QK\xf8\xd5\xeb3i\x81\x89\
+\xdb\xb3%\xc3\xbc\x1c\xba\xb9\xe0\x84N\x1c9A;\xcc\
+d\xe3gK\x02&\xac\xcf\xd5\x0c\xccD\x82\xf2\xfa|\
+\x08Pv\xe6\x16\xf63\x9f\x06'\xc5\xcc\xa1\xd5\x98\xd0\
+\x17\xa1\x9a\x10\x1c\xc5z\xf5\xdf\xe9\xd6\xa7\xc2T\xf6\xbf\
+z}\xa2\xb0k\xed\x9bR\xc5\x9f,\xe5~\xd2\x11\xa0\
+\x16&\xf4Q\x98\xad\x1f@\x8d\xed\xa3q\x02a\xea/\
+\xbf\xbc=\x91\x00\xb5\x9c=N\xe62~I\x10`:\
+T%\xb0\xce\xd6\x14\x1c\xad\x06\x98\xe9+?\xa9\x05<\
+\x13^\xf2\x04X\xc4\xfc\xf0\xff\x01-\xef\xe5]0^\
+&Q\x00\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00:\xf4\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3>a\xcb\
+\x00\x00\x09\xediCCPICC Prof\
+ile\x00\x00x\x9c\xad\xd6gTS\xd9\x16\x07\xf0\
+\xff\xbd)\x84\x04B\xef- \xddP\xa4Jo\x8a\x0d\
+\x18D\x14\xb0\x02!4)\x11\x82(vP\xb0\xa1`\
+W\xb0+v\x05\x95Q\xc7\x8a\x0a\x22\x8c\xa24\x11Q\
+, 8\x22\x1d\x0b\x82y\x1f\x82e\xd6\x9bY\xef\xcb\
+\xdb\x9f\xf6\xd9k\xdd\xb3\xce\xf9\xed}\xd7:\x80\x94b\
+\x98@\x10G\x02\x88O\x10&\x05L\xf0\xe4\x04\x87\xcc\
+\xe4H\xd4\x81\x0a5H\x03\xb0\x0f\xe3%\x0b<\xfc\xfd\
+}\xf0\xaf\xf1\xb1\x1e\x04\x00\xd4\x98\x85\x09\x04q\x89G\
+\xa3\xab\x11\x97\x97\xa9\x92\xe3\xc2\xe9\x9f\xab\xfb\xf8\xdf\xbf\
+\x03\x00\xb0\x93\x82Cf\x02\x04\x17\x80b\x948w\x07\
+\xa0\x18.\xce\x03\x01(\xa6\x0a\x05B\x80\x88\x06\xa0\xc8\
+\x8b\x0e\x8b\x00\x88\xa5\x00\xb8I\x81\x01^\x00q\x1c\x00\
+;J\x9c_\x06\xc0\x0e\x17\xe7\xe5\x00\xd8\x0byQB\
+\x80h\x00(\xf2\x09\x111\x09\x00\xb5\x03\xa0\xbbF\xf0\
+\x93y\x00\x8b\x0b`^D2/\x1e`m\x04`\x19\
+\x1f\x9f\x18\x01\xb0\xae\x010\xe6\x09\x92\x84\x00\xab\x05\x80\
+Yp\xc8L\x8e\xf8\xc8\xe1\x91\x80u\x08@\x1e\xffY\
+\x9b/\x05\x14i\x02\x8a5?k&\x11\x80F\x01p\
+\xf5\xc4\xcfZ_\x00\x08\x00\x84rUr\xa4\xb5\x15\x00\
+\x80\x90\xf2\x04h/D\xa2>C@b\x0b0\x9c+\
+\x12}=$\x12\x0d\x1f\x06(M\xc0\xad8^J\xd2\
+\xc2\x11/\x82x\x00\xfc\xaf\xb5\xf8\xce#A!\x00\x02\
+$\x95\xce\x90dI\xb1e\xe4\xe4\x15\x94\x94U\xd54\
+4\xb5u8z\xa3\xf4\x0d\x8d\x8cMGs\xcd-,\
+\xc7X\xdb\xd8\xda\xd9\x8futrvqus\xf7\xf0\
+\xf4\x1a7\xde{\xc2\xc4I\x93\xa7\xf8\xf8\xfa\xfd\xe6?\
+5 p\xfa\x8c\xa0\xe0\x90\x99\xb3\xe6\xcc\x9d\x17\x1a\x16\
+\xce\x8b\x88\x8c\x8a\x8e\x89\x9d\x1f\x17\x9f X\x90\x94,\
+LY\x98\xba(m\xc9\xd2e\xcbW\xac\x5c\x95\x9e\xb1\
+&3k\xed\xba\xf5\x1b6fo\xca\xc9\xdd\xb2u\xdb\
+\xf6\x1d;w\xed\xde\x93\x97\xbfw\xff\x81\x83\x87\x0e\x1f\
+9Zp\xec\xf8\x89\x93\xa7N\x9f9{\xae\xb0\xa8\xe8\
+\xfc\x85\x8b\xc5\xbf_\xba|\xe5\x8f\xab\xd7\xae_\xbfq\
+\xf3V\xc9\xed;w\xef\x96\x96\xdd+\xbf_QQ\xf9\
+\xe7\x83\x87UU\x8f\x1eW\xd7\xd4\xd4\xd6\xd5\xd5?i\
+hx\xda\xd8\xf8\xac\xa9\xe9\xf9\x8b\x17\xcd/_\xbez\
+\xfd\xfaMKK\xeb\xdb\xb6\xb6\xf6w\xef\xfez\xff\xbe\
+\xe3CggWwwOo__\xff\xc0\xc0\xc7O\
+\x9f?\x7f\x19\x1c\xfc:44\xfc\xed\x9b\x08$\x95.\
+!\xc9\x94\x92\x96\x91\x95WPTVQS\xd7\xd4\xd2\
+\xe6\xe8\xea\xe9\x1b\x18\x1a\x9b\x98r\xcd\xcc-,\xad\xac\
+ml\xed\xc6:\xfc\x1b\xc0\xb4\x11\x80\xd9#\x00\xfc\xef\
+\x00\x89?\x00\x16\xff\x00X\xbd&3k\xed\xfa\x0d\x1b\
+\xb37m\xfeE \x7f\xef\xbe\x7f\x10\x18\x01\x10\x0b\x88\
+\x01\xee\xfc\x0d\xe0\xd1\xe3\xc7\xd55\xb5\xb5u\xf5\xff\x08\
+\xd0\xfa\x03\xa0C\x0c\xd0\xd3\xd3\xdb\xd7\xdf?\xf0\xf1\xe3\
+\xa7\xcf_\xbe\xfc\xbc?\x85FgH2Y\xd2l\x19\
+Yy\x05E%\x15U5u\x0dMm\x1d\x8e\xae\xde\
+(}\x03#c\x13\xd3\xd1\x5c3s\x0b\xcb1V\xd6\
+66\xb6v\xf6c\x1d\x1c\x9d\x9cG$~\xa5\x10\x0f\
+\xc3w\x8cY\xb3\xe7\xcc\x9d\x17\x1a\x1a\x16\xce\x8b\xf8\xe1\
+\x91\xf0\x0bH\xda\xdfE\xd6\xfdB\xf2}&\xbe\x93\xfc\
+\x93\x89\x98dd(J\xcb\xee\x95\x97\xdf\xff\x95\xa4\xae\
+\xfe\x89\xd8\xe3\xf9\x8b\xe6\x97\xaf^\xbfii}\xdb\xd6\
+\xfe\xee\xaf\xf7\x1d\x1f:\xbb\xba{z\xfb\xfa\x07>~\
+\xfe2\xf8uh\xf8\x9b\x08\x10\xff\xfb\x00@\xb7\x03\x0e\
+'\x003\x98@\xe0!`{1`\xe4\x04\xa8t\x01\
+\xfe\xd2@\xa0\x03\xc8dk\x90\x91\x91 U\x98\xa0\x10\
+\x00\x09\x80\x00\x05tHB\x06\xca\xd0\x81)\xec0\x0e\
+\x81\xe0#\x15\xeb\xb1\x0f\x17Q\x89\x16|#\xd4\x09{\
+b:\x91Ll%\x8a\x89\xa7\xc47\xd2\x80\xf4%\x17\
+\x92\xfb\xc9J\xf2\x0b\xc5\x84\x12B\xd9@\xb9I\xe9\xa7\
+r\xa9\x11\xd4\xbd\xd4\xa74UZ\x10m7\xad\x89\xae\
+G\x8f\xa6_\xa0\x8b$|$\xf6Ht0<\x18\xbb\
+\x18\xbd\x92~\x92g\x98l\xe6\x02f\x03\xcb\x8bU(\
+\xa5-\xb5I\x9a\x94N\x93\x1e`'\xb3\xfbdRe\
+\x86e3\xe5\xe4\xe4\x0e\xca\xdb\xc8W(\x84+|S\
+\xdc\xad\xa4\xaftJ\xd9J\xf9\x9a\xca\x04\x95\x1a\xd5p\
+\xd5~\xb5u\xeaZ\xea\x175|4Z5\x97i\xa9\
+h\x15k\xfbkw\xea\xe4pl8\x8d\xba\x19z\xa3\
+\xf5\xaaG-\xd5\xb7\xd0o2\xd8h\xe8b\xd8it\
+\xd08\xc8\x84mRj\x9a>\xdak\xf40\xf7\xba\xd9\
+\x0as\x0f\x0b\x9aE\xa5\xe5\xb61s\xac\x8c\xacz\xad\
+o\xda\xe4\xd8\x86\xdb\xd9\xda\xb3\xec_\x8f\xbd\xe2\xb0\xd9\
+\x91\xef\xe4\xe2\xac\xe5\xfc\xcd\xa5\xd9\xf5\x86\xdb\x01\xf7\x0c\
+\x8fH\xcf)^\xd6\xe38\xe3e\xc7\x0fywO\xa8\
+\x9fxo\xd2\xed\xc9%Sn\xfb\x94\xf9V\xfa=\xfa\
+\xad\xce\xbfi\xea\xbb\x80\xaf\x81r\xd3\x8df8\x07\x05\
+\x06\x0bB\xb2g\x9e\x99U3[4\xd7b\xde\xbc\xd0\
+\x9c\xb02\x1e\x19\xe1\xc6_\x12y5\x9a\x12\xe3\x1f\xbb\
+w~w\xfc\xe4\x84<\x01\x16\xf0\x92\xca\x84\x96)\xfb\
+S\xe5\x16\xadMc,Y\xbetp\xf9\xca\x95\xccU\
+[3tV_\xca\xf4\xc9j^\xb7d\x83\xd6\xc6\x92\
+M\xc1\x9bE\xb9\xa7\xb7\xce\xda.\xb1\xe3\xcc\xae]{\
+\x8a\xf2_\xef\x97=\xe8|Xp\xf4\xd8\xb1\xfa\x93\x92\
+\xa7'\x9d\xcd.,=/*\xf6\xba\x94~\xa5\xf2\x9a\
+\xec\x8d\xa0[Gn\xf7\x97z\xdc\xcb\xbd\xff\xf2O\x87\
+\x87\x1b\x1e\xbd\xa9\xb1\xad\xdb\xf2\xa4\xb71\xa0\xe9r\xb3\
+\xda\xab\xb47/\xde\xfa\xb7\x97\xbc\xb7\xfeP\xd0m\xd4\
+\x9b7\xa0\xf4i\xd7\xa0\xee\xd0S\x91\xe8G\xff\x99\x90\
+\x81\x0at\xc1\x85\x03&\x22\x04\xb1X\x8a\x1c\x14\xe0\x1a\
+\xea\xd0E0\x09c\xc2\x9b\x88 V\x13\x05D\x05\xd1\
+E*\x93\xaed4\xb9\x85\xbcAvP4)\xbe\x94\
+\x15\x94\x0b\x94v*\x87\x1aL\xddB}Hc\xd3\xfc\
+h\x9bi\xb5t\x0dz8\xfd4\xfd\xb3\x84\xb7\xc46\
+\x896\x863c\x1b\xa3Sr\x8a\xe4\x09&\x8b\x99\xc0\
+\xacgy\xb0\xceJiIeK\x13\xd2\x8b\xa5\xfb\xd9\
+\xc9\xec>\x99\x852C\xb2k\xe4\xe4\xe4\x0e\xfc\xcf\xee\
+\xfbj\xb4j.\xd7R\xd1*\xd6\x9e\xaa\xdd\xad\xb3\x85\
+c\xc7y\xae\x9b\xa9g\xa1\xf7dT\xba\xbe\x9d~\xab\
+\xc1\x0e\xc3\x89\x86_\x8d\xce\x19G\x9a\xe8\x984\x9a\xee\
+\x1e\x1d\xc2U\xe2>3;h\xce\xb7\xe0Z|\xb4\xbc\
+=&\xc7j\xae\xb5\x99\x0dl\x9e\xd8\x9e\xb4\xcb\xb4\x0f\
+\x1f\xeb\xea\xa0\xee\xf0\xd1\xb1\xd6\xe9w\xe7|\x97\x0c\xd7\
+X\xb7\x00w'\x0f#Oy/x\xf5\x8e\xeb\x19\xff\
+\xca\xbbi\xc2\x83\x89w'\x95L.\x99R\xe2s\xc7\
+\xb7\xdc\xaf\xf2\xb7*\xff\xda\xa9\xcd\x01\x9d\x81\xc4t\x85\
+\x19\x06A\xf6\xc1\xfe!\xd13\xd3g\x1d\x98]:\xa7\
+k\x9eF\xa8{Xt\xf8.^=\x9f\x15\xe9\x12\x95\
+\x16}=\x16\xf3\xc7\xc7\xe5\xc4\xbfH4\x17\xa4/h\
+H\xb6\x12\xe6\xa6\xf4\xa7\x86,\xba\x95f\xbad\xff2\
+\x85\xe5\xd9+\x99\xab\xb22(\xabWe\xb2\xb2\xf2\xd6\
+\x19\xaf\xbf\xbc\xd1/\xfb\xfd\xe6\x0d\xb9F[J\xb6\xf1\
+v(\xee|\xbe\xfbI>}\x9f\xcd\x01\xfe\xa1\xddG\
+\x1e\x1c\xa3\x9cp<\x15\x7f\xe6\xf4\xb9\xb6\xf3\xdc\x8b)\
+\xbf\x17_\xfer\xd5\xf9\xfa\xea\x9b\x8fnk\xdd\x0d+\
++*\x1f\xaa\xf4{\x90_\xf5\xa1\xda\xb3vg\xfd\xdb\
+\xa7\xf6\xcfr\x9e\xb7\xbet{\xbd\xa3\xe5C\x9b\xef\xbb\
+\xfd\xef\xbft\xce\xe8\xbe\xde\xa77\xb0\xf6S\xd7\xe0\x9c\
+\xa1\xee\x91\xfe\x93`A\x16\xca\xe0\xc0\x1c.\xf0C8\
+R\xb1\x09\x05(\xc1\x0b\x0c\x13\xda\x84;\x11A\xac#\
+\x8a\x88&\x92A\xda\x91Q\xe4N\xb2\x92BR\x9c(\
+)\x94\x22J7\xd5\x8a*\xa4\xfeA\xa3\xd0\xfchy\
+\xb4\xf7tW\xfa6z\x87\xc4\x04\x89\xa3\x0c:#\x96\
+Q-\xe9*y\x86\xa9\xc3\xdc\xc1\x92eeKIK\
+m\x96V\x92>\xc4\xb6f\x97\xc9\xcc\x91\xf9,\xbb]\
+\xceN\xaeI>K\xc1N\xa1]1_\xc9K\xa9Y\
+y\xad\x8a\xb9J\x83\xea\x1a5;\xb5v\xf5|\x8di\
+\x9aL\xcd[Z\x8b\xb5m\xb4\xbbu\x0a9\xc9\xba\x8e\
+z\x14\xbd{\xa3r\xf5C\x0d\xcc\x0d\x86\x0d+\x8d\xf2\
+\x8c\x13L<MUM{FWr\x0b\xcc2\xccC\
+-\xdc,9c\xa8c\xda\xac*\xac\x0bm\xf6\xd8\xa6\
+\xdb\xc5\xdb\xcf\x1e;\xd9\xc1\xdeQ\xcfI\xc6\x99\xe2<\
+\xe8\xd2\xed\xda\xe2\xd6\xe0^\xe3Q\xeeY\xe2uk\x5c\
+\xe9\xf8R\xef\xb2\x09w&\xde\x9dT9\xb9fJ\x93\
+O\xbbo\xbf\x9f\xc8\x9f9U%\xc0d\x9a[`\xd0\
+\xf4\x84\x19k\x82\xf6\x06_\x09i\x9c9<[g\x8e\
+\xdb\xdc\xb0yY\xa1\x85aM<F\x84-\x9f\x1f\xb9\
++\xaa*\x86\x11;~~F\x5cI\xbc(\xd1U\x90\
+\xbe\xe0~\xb2\x8204\xa5(\x95\x5c\x14\xb8\xf8\xe4\x12\
+ri\xc8\xb2\x8b+\xd4V\xa6\xadj\xc8\xf0\x5c}.\
+S#k\xf5\xda\xee\xf5\xbc\x0d\xd5\xd9\xde\x9bn\xe68\
+\xe6^\xd9\xea\xb0\xed\xea\x0e\xd7\x9d\xa5\xbbg\xec\xe9\xc9\
+\xdf\xba\xcft\xff\x83\x83\x89\x87\xe5\x8f\x5c-\x88<\xce\
+:Qx*\xe1\x8c\xce\xd9\x87\x85\xcb\xcf[_\xe8*\
+>})\xe6\x8a\xe9\x1f\x8d\xd7\xf2n\x04\xddR,\xa9\
+\xbd\xb3\xbdt\xfa=\xa5\xf2\x9a\x8aM\x7fNy\xc8\xac\
+*{\xbc\xa8\xc6\xaa\xb6\xbd\xfe`Cp#\xfb\xd9\x8d\
+\xe7\xf3\x9b\xd5_V\xbc\x16\xb6\xa8\xb6\xdeh\x8b}\xc7\
+\xf8\xebP\x87\xf7\x87\x97]Kz\x94zO\xf4;\x0c\
+T|\x9a\xf5\xb9cp\xed\x90\xeap\xa3H\x04\x88\xdf\
+\x8b\x00\x00Z\x8co\x18\x0f\xff\xe7\x88\x8fK\xf9\xbe'\
+\x09@\x8a\x9f0}\x1a\x00\x06\x00c\x81\xd0?\xf0{\
+\x8e\x18\xf8\x22\x0c<\xf1;\x15\x00\xe8\xb2@\xbe\x11\x00\
+\x5c\xf6M\xfa\xaf}\x85\xfcEB\x00\xf0J\x14,N\
+\x8a\x89\x8a\x16r<\x04\x828>\xc7+1^\x90\x22\
+\xe4'q9\x93\x12x\xe6\x5c\x8e\x95\xa5\xa5-\x00\xfc\
+\x07\x8f\x08\x91L8\xcf\x9b\xb0\x00\x00 \x00IDA\
+Tx\x9c\xed}y\x98\xdcV\x95\xef\xefJ\xaa}\xed\
+\xaa\xde\x17o\xb1\xe3v{K\xec8\xdb\x04\x08\x84I\
+X\xb2\x10\xc0\xc0\x83\x19f\x08o\xc20\x0f\xde\x1b\xc2\
+\x00o\xd8g\x80\x84-\xc0\xcc\x03\x860\x0cd\xb2\xd8\
+$&\xb6\x13'1^\x12;\xc6\x8e\x1d'\x8e\xed8\
+^:\xee\xd5\xbdUwuwu\xd7.UIz\x7f\
+H*]\xa9T\xd5\xbb\xed\x04\x9f\xef\xd3'UI\xba\
+\xba\xba\xe7w\xcfv\xcf\xbd\x22\xb2,\xe3\x12\xfd\xf9\x12\
+s\xa1+p\x89.,]\x02\xc0\x9f9\x15\x01\x80\xa8\
+t!*s\x89\xce?\x95\x94\x00\x97@\xf0\xe7Ae\
+U\xc0%\x10\xbc\xf5iB\x1b\xe0\x12\x08\xde\xda4)\
+#\xf0\x12\x08\xde\xba4i/\xe0\x92q\xf8\xd6\xa4)\
+\xbb\x81\x97@\xf0\xd6\xa2\x22\x00L&2x\x09\x04o\
+\x1d\xb2\x94\x00\x97@\xf0\xe7C%U\xc0dA\xf0\xed\
+o\x7f\xfbR4\xf1ML\xc4\x82\xd1\x86\x9e]\xae\xa3\
+?\xf0\xc0\x03\x5cSS\x93k\x98e\xc5\xbf\xbe\xf9\xe6\
+\xd4\x1c\xd4\xef\x12\xcd1\x15\x01\x80\x10R\xfc\x9fr\xc2\
+\xf0\xdf\xeb\xaf\xbfn\xcbf]\xaeh4\xe6\x16\x88\xe0\
+!\xac(\xdc\xf6\xee\x1b\xce\xcdq}/\xd1,\x93%\
+\x00\x00\x00\xb2\x0c\xb3l\xd0Nuvv:\x12\x09\xc6\
+e\xb3\xc1%I9\xcf\xc0\xf0\x98O\xe0\x05\x9f$\xc9\
+\xb9t\xbc\xef\x95\xf5\xeb\xd7\x0b\xe7\xa3\xf2\x97h\xe6T\
+\x1a\x00\x80\x15\x08HOO\x8f\x03\x80+\x9b%nQ\
+\xccy`c\xbd\xc8I\xbe\x91\xb1\xb8?\x9eJ\xfb\x19\
+\x199\x9e`\xef\xed7];x\x1e\xea\x7f\x89fH\
+\xe5\x00\xa0\xede\xf5\x1a\x02\xc0\x09\xc05:\x9aq\xc7\
+\xb31\x8f$\x12\x9f,\x88\xbe\xbc,\xfb\x09d\xff\xd8\
+X\x220\x1aO\x05\x01\xd9Ar\xe2#\xb7\xdcr\xfd\
+\x99\xf3\xf6&\x97hZT\xca\x827(\xfcM\x9b6\
+1\x00\x5c\x00\xdc\x00\xbc\xa1\x90\xcbW\x1d\x0c\x06\x1c\x8c\
+=\xe0p\xd8\x83\x840AIFE \xe0\x0dU\x86\
+\xfd!\x16hd\xec\xdc\x0fw=\x7f\xe8}s\xfd\x02\
+\x96\x95\x9f\x80.D\x9d.V*%\x01\x0a\xbd\x7f\xcf\
+\x9e=lUU\x8b3\x1cv\xbbkk\xbdn\x00^\
+u\xf3\xe7\xf3y\xff\xe0\xf0\xb8_\x96\x11\x10x>\x98\
+\xcb\xe5\x832P!\x08\xf9\xd0pt4$B\x0eC\
+\x96\x9f\xf8\xcbw^\xfd\xd5Y\xaf\xf8\xe4\x19Yx\x97\
+\xc9\x96-\xff\x19\xe5\xc9Y\xb9\x81\x85\xc6}\xe5\x95W\
+8\x8f\xc7\xe3\xb4\xdb+\xdc\x1c\x07\x8f\xcf\xe7\xf1TT\
+x}\x00|\x00\x02\x00\xfc\x00\x02C\xc3cA1\x97\
+\x0ffs\xf9\x10\x9f\xe5+ #\x9c\x97\xc4\xd0\xc8h\
+<\x9c\xcb\xe5\x02\x90\x99\xa7\x92$\xf1\xa9\x0f\xdcx\xe3\
+\xd8\xb4+Z\x9a\xe1V\xff\x9b\xd5\x98Fr\x89\xe3r\
+\xff\xbd\xa5\x01Q\x12\x00\x8f?\xfe\xb8\xad\xa2b\x91\xab\
+\xae.\xec\xb2\xdb\x19\x0f\xe7rzY\x06>\x9b\x8d\xf3\
+\xd5U\x85\xfcP\x00\x10\x00\x10\x04P\x11\x1bKT\xf0\
+|.\xc4\x0b\xf9P&\x9b\x0d\xcb\x92\x14\x96$\xd97\
+6\x9e\x22\xbc\xc0C\x96\xe5c\x099\xf9\xce\xc9\x82\xa0\
+\x04\xc3i\xc6\x9a\xcf\x93\x12\xd7\xd1T\x0a\x00V\xc7\xe6\
+\xbd\xf2\xe3-\x06\x06K\x00\x00\xc0\xf6\xed\xdb\x1d\x02\xe7\
+\x0f\xbb\xed\xac\xa7\xa1\xbe\xd6\xcb\xb1\x8c\xd7\xc1\xda\xfd\x8c\
+\x8d\xf5\xdb\xedl \x14\x08\x04l66\x08\xa0B\xdd\
+B\xf1D:\x94\xced\xc3\x92(\x85\xe3\x89\x94G\x06\
+\x08d`l<\x89L6\x0b\xc8\xf2X^\x96\xdey\
+\xf3\x8dW\x1f+Y!#\xe3\xad\x18n\xfe\x8fl\xd8\
+\xb0!\xb0n\xdd\x0dW\xf8|\xae\xf96\x9b}>\x00\
+\xb0,7\x8f\x10f>\x000\x8cr\x8b(\x8a\xdd\xa2\
+\x98/\xc4*\x92\xc9\xf4k\xa2\x98\x1b;th\xff\xb1\
+\x8f\x7f\xfc\xe3\xe3P\x98\xadm0\xed\xe9\xff\xdf2@\
+(\x09\x00\x00\xd8\xbe}\xbb\x9f\xd8\x83\x8b\x1dv\xceW\
+W\x15\xf6\xb3v\x9b\xdf\xc6p\x01\xbb\xd3\x1e \x04\xc1\
+\xcap\xa0\xc2\xc6q!\x00!\x00!\x09\x08g\xd3|\
+(\x99\xce\xb8eYF<\x9eB>\x9f\x87\x0c \x93\
+\xe6\x11O\xa6 \xcb\xf2\x98\x0c|\xe1\xa6\xb7\xaf}\xb0\
+P\x89\xf2L\xd7~3\xda\xf1\xce\x9d{\x17\xae^\xbd\
+\xf26\x87\xc3\xf96\x8e\xb3\xadbYv\xde\xb4^\x9e\
+z\xac(\x8a\xe7$)\x7f<\x9b\xcd\xee\xef\xef\x1f\xd8\
+\xb7zu\xcb1\x18\x19o\xde\x00\xbc\xf9\x81P\x16\x00\
+\x00\xb0u\xeb\xde\xa0\xc3\xe3\xbc\x9e\xb3\xb1\xe1\xfa\x9ap\
+\xc0f\xe3\x02\x1c\xc7\x05].{\x05!l\xc8\xefu\
+\x87\xdcnGH\x02\xc2\x90\x10&\x04\x0e^\xc8#\x99\
+LA\x92e$\x12)\xf0|\x0e2\x00!\x97\xc3\xf8\
+x\x12\x90eH\xa2t\xcfM\xef\x5c\xf73\xad\x1e\xd4\
+\xbe\x88\xe9\x9f\xfe\xf4\x97\x17\xdez\xeb{\xde\xbeb\xc5\
+\x92[kk\xabV\xb1,g\xc9\xf0\xd94\xf0EQ\
+<\xc7\xf3\xd9m\xbd\xbd\xbd\x8fP`\x90\xf0\x16\x03\xc2\
+\x84\x00\x00\x80\x1d;\x0e\x86d\x8eY\xcf\xb1\xa4:\x1c\
+\x0eV\xb8]\xae\x0a\x1b\xc3T\xb8<\xce\x10!$\xec\
+\xf7zBN\xa7#D\x08\xec2\x00\xc8@>/\x22\
+\x95NC\x14%$\x92\x19\xa43\x19@\x06\x84\xbc\x88\
+D\x22\x05I\x92 \x89\xd2\x7f\xdft\xe3UwAw\
+G\xb5^N\xee\xbc\xf3\x13\x15\xef}\xef\x07?\xb9r\
+\xe5\xd2O,\x5c\xd8\xb8\xd2\xe7\xf3\xea\x95\x9e\x06\x9fg\
+\x02\x0e\x0d\x0cO=\xf5\xc4w?\xf5\xa9O\x8d\x01\x10\
+a\x01\x847#\x08&\x05\x00\x00x\xf0\xc1\xbd\xce\xda\
+y\xae\xcf\xb3\x84\xac\x08W\x04C\x1e\x8f3\xc4\xb0L\
+\xc8\xe7q\x87\x09C*\x5cN\x07\xe7\xf5\xba\xb5\xa6P\
+ZE\x92\x91L) Hgx\x8c\xc7\x93\xca9I\
+\xc6x<\x0dQ\xccC\x92\xa5\xe3\xbb\xfe\xb4\xe3\x96\xfb\
+\xbe\xf6\xb5q\x00\xccg>\xf3\xc5\x05k\xd6\x5c\xf7\xd5\
+\xb5kW~b\xd9\xb2\xcb\xa6\xfeBS\xe4\xf3T\x80\
+\x91\xcb\x09'\xfe\xf3?\x7f\xf9\xde/~\xf1\x8b1(\
+ \xd0$\x82\xa4^\x22\xbf\xd9@0i\x00\x00\xc0\xb6\
+m\xdb\xdc.o\xf57$\x90\x1b}^O\xb8\x22\xe8\
+\x0b3\x84\x04|>\x0f\xcb\xb1\x0c\x1c\x0e;<n\x97\
+\xd2\x87\xd5be\xc8H\xa7\xb3\xc8\xe7E\x08B\x0e\xa3\
+\xb1q\x88\x92r2\x99\xcc@\xc8\x09\x90E\xe9\xb53\
+\xad\xed\xdfg\xc1\xddz\xfd\xf5k>\xbe`A\xe3\xc4\
+\x15\x9fF\x8f\x9e\x0dp\xe4r\xc2\x89\x7f\xfb\xb7\x1f\xbf\
+\xff\x1b\xdf\xf8\xc6(t\x10\x18T\xc3\x9b\x09\x04S\x02\
+\x80F\xbb\x9f\x7f\xf9\x07 \xb8\xdb\xedv\xf9\xc3!?\
+\x03B\x10\xf0{\xc0\xb1,X\x96\x85\xcf\xe7\x06\x01Q\
+\xe4\x80\xac\xb4NN\x10\xc0\x0b9\xe4s\x22F\xc7\xe2\
+\xc8\x09\x8a]\x90Ld088\x82\xba\x9a*\xacX\
+qyq\x05\xcf\x93\xb8\x9f\xca-\x82\xc0\xbf~\xdf}\
+\xffz\xdb\x0f~\xf0\x83\x11\x00y(\xafhP\x0bo\
+\x16\x10L\x0b\x00\x00\xb0k\xcf\xcb\xdfb\x19\xe6\xdb6\
+\x9b\x0d\xe1\xb0\x1f\x0c!\xf0z<p\xba\xec\xe0X\x06\
+.\xa7\x13,\xc7\xa8\x00PP\x90\xcb\xe7\x91\xcb\xe5!\
+I\x12\xa2#c\x18\x19\x1e\xc7H4\x86u\xebV\xc2\
+\xebu\x97y\x9au\xc4\xfa|\x80\xa3\xd4\xe5\x82\xc0\xbf\
+\xfe\x9d\xef|\xf3\xf6\xfb\xef\xbf_\x03A\x914x3\
+\x80`\xda\x00\x00\x80\xe7\xf6\x1e\xfe[\xc2\xb0\xbf\xb3q\
+6TT\xf8\xc02\x0c\xbc\x1e7\xdcn\x07\x08C\xe0\
+v\xb9\xc0\xb0\x0c41 \x03\x90$E\x15\x9c>\xdd\
+\x05\x02\x06--\x13\xeb\xf9\xf2<\xbbp\xe0\xe0\xf9\xec\
+\xc9\x03\x07\xfe\xf4\xb9\xdbn{\xefQ\xe8 \xa0m\x83\
+\x8b\x1e\x043\x02\x00\x00\xec\xde\xfb\xca\x8d\x0c\xc1\x16\x86\
+e\x82\xe1\x8a\x00X\x8e\x85\xd3\xe1D0\xe0\x01!\x04\
+\x0e\x87\x0d\x1c\xcb\xd1\xfe\x12^z\xe95\xd4\xd5\xd5\xa1\
+\xa6&l\xac\xcc\xb4\x98V\xee\xec\xdc\x83C\x14\xf3\xf1\
+\x17^\xd8s\xc7m\xb7\xbd\xf7\x18\x80\x1c\xded \x98\
+1\x00\x00`\xe7\xde\xc3Wp\x0c\xbb\x87a\x98\xa0\xdf\
+\xef\x85\xc3n\x83\xd3aC0\xe8\x03C\x18\xd8\xed6\
+p\x1c\x07\xc82\x0e\x1f>\x81\xa6\xa6F\x84B\xfeR\
+U\xb2\xfewV\xc1Q:\x8dq:\x86\xa2(\xe6\xe3\
+\xbbv\xed\xb8\xf3C\x1f\xba\xe3U(\x92\x80V\x09\x17\
+5\x08f\x05\x00\x00\xb0u\xef\xde`\x80\xf1\xed!\x84\
+\x5c\xe1\xf3{\xe0\xb4\xdb\xc1\xd9XT\x85+\xc00\x04\
+,\xcb\xe2\xf8\xb17\xd0\xd4\xd4\x80`\xd0W\xbeR%\
+\x99p\xf1\x82C\x14\xf3\xf1\xdd\xbbwZ\x81\x80\x0e \
+]t\xb1\x82Y\x03\x00!\x84<\xfa\xf4\xd3\xc1Z_\
+\xed\x16\x96a\xde\xe1t:\xe0\xf18\xc12,*\xc3\
+A\x9c>\xd5\x8e\xf9\xf3\x9bL\xcc\x9f\x1d\x83\xac\x5cY\
+\xe7\x13\x1c\x14\x08\x8eBQ\x07\x17=\x08f\x05\x00\xa6\
+,\x22\xb2{\xcf\xe1\xdfr\x1c\xf7I\x87\xc3\x0e\x8f\xc7\
+\x85\xfe\xde!\xd4\xd5Vc\xde\xbcz\xd3}eK\x9d\
+b\x1d\xa6^V\xb9{FGcH$\xc6\xd1\xd8\xd8\
+\x04\x96e'q\x8f\x02\x0eE\x1d\xfc\xf1\x83\xeb\xd7\xdf\
+\xf9*\xde\x04 \x981\x00\xcc\xcc\x87\xd2\x12\xcc\xb3\xbb\
+\x0e|\xd3\xe3\xf2|5\x93\xc9\xc2\xedpa\xe5\xcab\
+\x1f\xbf|\xb9e\xcf\xceYY\xf1x\x1c\xbd\xbd=\x88\
+\xc7\xe3`\x18\x02\x8f\xc7\x8de\xcb\x96\x1b@0\xd1s\
+DQ\x8c\xef\xda\xb5C\x03A\x9e\xda.:\x10\xcc\x16\
+\x00\xe8\xc1\x1bV\xddl\x8f\xff\xe1\xd9\xcf\xb1\xc4\xf9\xdd\
+\x1bn\xb8\x0a6\x9b\xad\xc4\xfd\xd3yf\xc93\xd3.\
++\x9dN\xa3\xab\xab\xb3\xc0x\x80\xa8\xe7\x08\x1c\x0e'\
+\x9a\x9b\x97\xc1n\xb7O\xba\xce\xa2(\xc6w\xef.\x02\
+\x81\x160\xbah@0\xa3Y=e\x98\xcf\x01\xb0\x8d\
+\x8d\xa6oX\xb5\xaa\x19\x1c\xc7\xa93\x8d\x8a7Y\x96\
+!\xcb\xb0\xdcJQ\xa9\xebK=\xa3\x5c6X6\xcb\
+\xa3\xad\xad\x0d\xc7\x8f\x1fG<\x9e\x80&\xc8\xb4W\xe3\
+8\x0e\xf5\xf5\xf5\xb0\xdbmT\x9dK\xd7A#\x96e\
+\xfd\xef~\xf7-\x9b7m\xda\xb2\x06\x80Mm\x13\xad\
+}\x0aC\xdb\x17:Gq\xda\x12\xc0$\xfa\x19u\xe3\
+\xd4\xcd\xfe\x9d\xef\xfc\xfb\x1dk\xd7\xae\xfb\xcd5\xd7\xac\
+\x9edy%\xcfL\xf1\xfa\xc9=C\x14E\xf4\xf6\xf6\
+```\x00:\x8e\x09\x18Fq\xedX\x96CMM\
+-jjj,\xc5\xffd\xeb+\x8ab|\xe7\xceg\
+?\xf4\xb1\x8f}\xf8(\x00\x01z\x9c\xe0\xa2\x90\x04\xd3\
+\x02\x80\x05\xf3\x09(\xe6_w\xdd;\xaa>\xfb\xd9/\
+\xed\xba\xf6\xda5\x8d\xa1P\xc0|\xef\x14\x9fU\xf6\xec\
+\x94\xef\x11E\x11\x03\x03\xfd\x88D\x06\x90\xcfK D\
+\xa9\x93\x965D\x08PYY\x85\xfa\xfa\x06U\xe4\xcf\
+|\x5cA\x14\xc5\xf8\xc1\x83/\xdd\xf5\xfe\xf7\xbfk/\
+\x8c\x86\xe1\x05\x07\xc1L\x00@\x1b}\x05\xb1\x0f\xc0\xf9\
+\xf3\x9f?\xf4\x95\xc5\x8b/\xff?W]\xb5r\xaa\xe5\
+N\xf1\xfa\xb2g\x8b\xfe\x89F\x87p\xee\x5c\x17\xf2y\
+\xb1\xd0\xeb\x09\xd1S\xc6|\xbe\x00\xe6\xcdk\x82\xcbe\
+\x1c\x97\xa0\x9f\x13\x8d\x0e!\x12\x89\xe0\xb2\xcb\x16\xc3\xed\
+\xf6L\xa9\xbemmg\xbfp\xd5U+\x1f\x86\x11\x04\
+\xe6\xd1\xc4\xf3\x0a\x04n\xaa7X\xa4o\x19\x00\xb0v\
+\xed\xdb+++\xab\xefjh\xa8)\xa9\xc7K1\xae\
+\xdc{[\x81\xa3\x5c3\x11\xa2\x9f\x8cF\x87\xd0\xdb\xdb\
+\x0b\x9e\x17\x0a=^\xc7/`\xb7;\xb0`\xc1\x22\xf8\
+\xfd\xd6\x01*YV\xbc\x83\x8e\x8e6d\xb3J\x19'\
+N\x9c\xc0\xa2E\x8bPUUU\xaa\x06E\xff,^\
+\xbc\xe4\xa7\xaf\xbcr\x02*\x08\xccT\xc8)P\xe7g\
+\x9e\x17\x10L\x19\x00*\x95\x92\x00\xf6\xbb\xee\xfa\xf4\xdd\
+\x1cg\xf3UV\x86J\xde\x5c\x9eq\xa5\xee\xb1\xbe\xa9\
+\x94\xd4\xd0\x98\xa6\xb9t\x84\xe8V\xbd\xd6\xf3\x1d\x0e;\
+\x1a\x1a\x1a\x10\x0eWR\xcf(v\x0b\xfb\xfaz\x10\x8f\
+'\x0a\xe0QT\x06\xd0\xd5\xd5\x09\x8e\xb3!\x18\x0cZ\
+\xd5\xc0\xf2]\x16/^\xac\x81\xe0\x11\xe8m\x98WO\
+\x9fw\x10L\x09\x00\x16\xbd\x9f\xa56\x1b\x00{8\x5c\
+\xfd\xc1\x8a\x0a?X\x96\x9dr\x8f\x06\xa6\x0e\x0e\xabg\
+\xa4Ri\x9c;\xd7\xa9Z\xf5:\xd3\xb4c\x9bM1\
+\xf0\xaa\xabk\xd4z\xd2\xcfP~\xf0<\x8f\xee\xeeN\
+\x8c\x8e\x8e\x19\xa4\x86V\x8e\xdd\xee@}}\x03\x02\x01\
++\xe6\x97\x7f\x97\xc5\x8b\x17\xff\xf4\xd0\xa1\xe3\xe4\xdak\
+W\xd3\x92\xe0\x82\x80`:\x12\xc0\x10\xf0\x01\xc5\xfc\xfb\
+\xee\xfb\xf9\xc7\x1c\x0eg} Pj\xa0G\xa7\xb9\x00\
+G6\xcb\xa3\xaf\xaf\x17\xd1\xe8\x90\x81\xe1\xf4qee\
+%\x9a\x9a\xe6)\x83S\x16\x94\xcd\xf2\xe8\xed\xed\xc5\xf0\
+p\xd4T\x17Ejp\x1ck\xf2\x0ed\xc8ric\
+\xc4\x1a\xb4\xc0\xd2\xa5\x97\xff\xe4\xd0\xa1\xe3\xb8\xf6\xda\xd5\
+\x8fP\xa7D\xed\x12\xa8v\xc1\x5c\x83`\xa6*\x80v\
+\xfdl\xf5\xf5\x0d\xef&\x84 \x10\xf0\x1b\x18<U\xe3\
+n\xaa\xe0\x10E\x11===\x88D\x06\x8a\xc4\xbcv\
+\xec\xf7\xfb\xb0p\xe1\xa2B0\xc7\xfc\x0cQ\x14\x11\x89\
+\x0c```\x00\xa2(\x16\x01\x87\x10\x82p\xb8\x12\xf3\
+\xe6\xcd+\xb8\x85z\x11\xd6\xe2^\xb9\xa6\xf4\xbb\x9b@\
+@_(Bi\xdb9\x07\xc1\xa4\x01P\x22\xe4[\x10\
+\xff\xabW\xaf\x0dUT\x84\xdf\x09\xc8p\xb9\x5c\x86{\
+\xa7\xd3\xdbK\x11]\x96\xee\xd2E(\xa6)U\xd4\xca\
+\xf5x<hj\x9a\x07\x9f\xcf\xa7\xdeO?[\xd9\xf7\
+\xf6\xf6\x22\x12Q\x18\xaf\xd5\x89f~0X\x81y\xf3\
+\xe6\xc1n\xb7\x97\xac\xef\xf8\xb8b+\x88\xa2\x88\x85\x0b\
+\x17\xc3\xe3\xd1<\x89\xf2\xe0\xb8\xfc\xf2\x02\x08\x1e5\x9d\
+\x96\xa8\xfd\x9c\x81`\xaa\x12\xc0,\xfe\x0b\x06\xe0\xed\xb7\
+\xaf\xbf^k\x1c\x8ec\x8b\xc4\xf5lY\xfe\x1aE\xa3\
+C\xe8\xea\xea\x82$\x89\xa0\x19N\x1bx\xf5\xf5\xba\x81\
+gECCC\xe8\xeb\xd3\xbd\x03s9~\xbf\x0f\xf5\
+\xf5\x0d\x05\xf0X\xd57\x9b\xe5q\xee\x5c\x17b\xb1X\
+\x018\xad\xad\xa7\xd1\xdc\xbc\x0cn\xb7[\xbd\xa7T\x0d\
+\x14p\x5c~\xf9\x92\x9f\xec\xdf\x7f\x84\xdcp\xc3\xdaG\
+J\x5c8g \x98\x89\x0a0\xb8\x7f\xb5\xb5\xb5-\x0c\
+C\xc00\xd6\x83&\xb3e\xf9G\xa3Q\xf4\xf6\xf6@\
+\x10\x04\xaa\xa7\xea\x8c\xe38\x0e\xb5\xb5\xb5\xa8\xab\xab/\
+YV<\x1eG{{\x1bU\x06\x0ae(YL\x0e\
+\xd4\xd7\xd7S\xdeAq}5{\x83\xb6\x15\xb4:\x88\
+\xa2\x88\xd6\xd63hiYN\x8d\x1f\x94\xb7k\x96-\
+[v\xff\xfe\xfdG\xa0\x82\x80@\x8f\x15h4' \
+\x98\x14\x00J\xf8\xfe\x86\xd8\xbf,K\x0c!\x04^\xaf\
+\x12\x1c)1\xe9\xd4\xb2\xfc\xc9\x80#\x1e\x1fGoo\
+/\x12\x89q\x00LQ\x8f\x07\x80\x9a\x9aZ\xd4\xd7\xd7\
+\x974\xf0\xac\x5c:\xba\x0c\x96e-\xc1C\x13m+\
+\xe8\xd2G)\x03 \xb0\xd9XTW\x17\x87\x90'#\
+\xe9\x96-[v\xff\x91#'\xfdk\xd7.\xff\x0f\xea\
+\xf4\x9c\x82`*\x12\x80\x986\x83\x0a\xa8\xaa\xaaYC\
+\x08A2\x99D\x22\x91\x80\xcf\xe7+z\xe9\xe9\x88\xfb\
+dRs\xe94\xc6\xeb\xcc\xd7z]0\x18DS\xd3\
+|8\x1c\xd6\x06\x9e\xe2\xd2\xd1bZy\x1d\xfa\xb8\xa6\
+\xa6\x06\xf5\xf5\x0de\x99\xa6\xd9\x0a\xb4\xda1z\x18U\
+\xa8\xab\xab\xa7\xeaa~G\xebw\xa7\x9f3\x7f\xfe\x82\
+o\xb5\xb5\xf5\xb5,^\xdc\xf0y\xea\x12m(\xb9`\
+\x18Z\x974u\x9a\xae\x0d`V\x01\x1c!\x0ca\x18\
+\x02Y&hk\xeb\xc2\xe2\xc5\x0b\xe0\xf5z\xa7m\x0b\
+(\x22\xb6\x07\xc3\xc3Q\xf5\x1e\xa6\xc00\xad\xd1}>\
+\xbfAGkEh\xcf\xa0\xc5\xb4U\x8f\x07\x80pX\
+a\x9a\xd3\xe9(\xf9\xd2Z$QS\x19F\xf0\x00~\
+\xbf\x0f\x8d\x8d\xf3\xe1v\xbbJ\x96A\xd7\xcf\x8a\xe8v\
+\x09\x06\x83\xeb\xdb\xda\xfa\xb0xq\xc3\xe7`dv\xc1\
+; \x84\xccJ\xc8x&q\x00\x83'@\x08\x08\xc3\
+\x10H\x92\xf22\xed\xed\xddhn^\x04\x97\xcb\x0dQ\
+\x94\x0a7\xeb\xcb\x0dY\x14L1\xee\xf8\xf1#\xd0\x19\
+\xc5P\x0d\xa4\xe8\xe8\xba:EG[\xcf\xdeQ\xc4\xb4\
+f\xd9\x9b\x19O\x08\x81\xcf\xe73\x81\xa7\xb8-c\xb1\
+Qtww\xab\x8c\xd7%\x8e&5\x9cN\x07\xe6\xcf\
+_h0\x12K\x95\xa5\xbf\xe3\xe4\xd4` \x10\x5c\x7f\
+\xf6l\x1f\x96,i\xf8\x9cv\x09\xf4\xf8\x00\xc1,\xa9\
+\x82\xe9H\x00mo\xf0\x04dY\x22\xca0\xaa\xf22\
+\x92\x04\xb4\xb5u\xa3\xa5e\x09\x18\x86C>\xaf\x83\x80\
+a\xac\xeb\xac\x81\xc3\xe1p\xa0\xb9y9\xce\x9e=\x0b\
+I\xd2\x19\xc8q\x1c\x1a\x1a\x1aP]]C\xddSJ\
+L\xe7Q,5\x14\xa6566!\x18\xac\xa0\x9e\xa9\
+\xbe\x14eo\xf4\xf5\xf5\xaa\xb6B\xb1\xd4`Y\x0eM\
+MM%\x01X\x8e\xa6\x02\x8e`0\xb8\xfe\xc5\x17\x8f\
+\x1e\xbc\xfe\xfa+\x1f\x811\xb9A\xeb\x80s/\x01,\
+\x12\x164\xe6\xd3 *\x15.R\x80 \xe1\xf4\xe9\
+\xb3X\xb6l\x098N\x07\x81$\xa1$i\xe0\xf0\xfb\
+\xfdX\xbd\xfa\x0a\xb4\xb7\x9fE2\x99@]\x9d\xc2x\
+%\xb9\xc4\x5cGZL\xf3*\xc3\x0b9\x17\x00\x94\xf1\
+\xfd\xfa\xfazTW\xd7\x94dZ6\xcb\xa3\xa3\xa3\xad\
+\xc0x\xb3\xad\xa1\x19\x89Z\x08\x19\x98\xbb\x18\x87F\xe9\
+4\xbf\x00J\xa4U\x82q\xe4pV\xa4\xc0t\x8d@\
+\x80\x9a\xca\x0d\x80\xd1\x1b\xcc8\xa0\x22\xcb2N\x9fn\
+CK\xcb\x12\xd8\xed6\xf0\xbcb\xd4\x96j\x1b\x1a\x1c\
+\x0c\xc3b\xc9\x92f\x08\x82\x00\xbb\xdd\x0e\x86\x01\xcc\xa0\
+W\x5c\xbav\x08BV}\xbe\x96\xe4\xa43\xb0\xbe^\
+\x03\x8f5\xd3x^\xb77h\xa9A\xeb\xfap\xb8\x0a\
+\x8d\x8dMT\x19T\xc3\xccr\x8cCy\xaf\x14\x9e|\
+r\x17\x9eyf\x17\x07\xc0\x0e\x8b\x09'\x98\x05)0\
+\x938\x80\xb6'\x00\x08!\x1c\x14#P\xbbD\x07\x02\
+-\x09\x1c\x0e\x0e<\x9f\x9f\x94-\xa0\x91\xe6K\xd3\xe0\
+H$\x141\x9dH\xc4\xd5{t\x11\xad3\xadR\xb5\
+\xca\x1dj=\x8c\xe5\xe6\xf3\x22\x06\x07\x07\xd0\xd7\xd7c\
+ik\x10\x02\xf8|^\xcc\x9f\xbf\x08\x0eG\xe9(\xe0\
+l\x8en\xb2,\x83\xbd{_\xc2SO\xedE2\x99\
+\x82,K\xdaX\x0b=\xeb\x88\xee\x883\xa2\xc9\x02\xc0\
+\x1c\x07\xd0\xf6\x94\x04\x90\x89n!\xcbE@P$\x81\
+\x0e\x82l6\x0fz\xcc\x9e\xa6r\xe0\x10\x04\x1e\x9d\x9d\
+m\x88\xc7\xc7)\x8b\x5c\x17\xf9\x0a\xd3\x14\xab\x5c\x0fI\
+\x1b\x9f\x93\xcf+F\xe2\xe0`\x04\xa2\xa8\xb9\xd9\x8c\xa1\
+<\x8f\xc7\x8d\xc6\xc6\xf9\xa0\x17\xa6\x98\xcb\xd1MB\x08\
+\xfa\xfb#x\xf0\xc1\xad\xe8\xee\xee/\x94\x17\x8f\x8fv\
+@\xcf)\xccAW\xbb\x12u\xef\xb4\xd5\xc0t%\x00\
+MD\xadD\xa1\xe7i\x0c4\x03A\x96e\xb4\xb6\xb6\
+c\xf9\xf2%\xf0z\x1dH&\xf9\xd2\x85\x96\x00\xc7\x1b\
+o\x9cA&\x93\x82\x86=\x85\xf1\xca\xf3\x1c\x0e\x07\x16\
+,X\x00\xaf\xd78\x1aIK\x8e\x91\x11\xdaV\xd0t\
+\xbc.\xf6\xedvc\x08y.C\xda\xb2\x0c\xb5\xbdd\
+l\xd8\xf04^|\xf1\xd5B\xb6\x92V\x1f\x9e\xcf\xa4\
+aL*5\xa8^\xcc0.0\x1d\x1b\xc0\xf2\x9c\x12\
+\x06f\xd4\x06\x93J\x02A\x92D\x9c:u\x16--\
+K\xe0\xf39\x90Hd-\x8b-\xd5\x9e\xcd\xcd\xcb\xd1\
+\xd3\xd3\x85\x91\x91\xe1\x0238N\xb1\xcaC\xa1J(\
+\xd2\xa6\xf8\xbe\xb1\xb1Qtww!\x97\xe3\xa1\xebv\
+\x1d<,\xcb\xa1\xba\xba\xa6`\xe0I\x92\xac\xda\x1cV\
+\xf5\x9a\x9c\xea\xd2\xef\xb1~\x19\x9b\x8d\xc5+\xaf\x9c\xc0\
+\xa6M;1::\xa6\x96\xa1\xe4'\xea \x10\xe9l\
+bCF\xf1l\xd0L%\x80\xae1\x0d\x12\xa0<\x10\
+DQ*\x80\xc0\xebu\x22\x99\xccNT|\x81X\x96\
+\xc5\x82\x05\x97\xc1\xef\x0f\xa0\xa7\xe7\x1c\xaa\xab\x8d\x89\x1d\
+f\xc9a\xb4\x15\x8a\x19\x0f(!\xe4\xba\xba\xfa\xa2\xec\
+\xdf\xd2\xde\xca\xcc\xc0\xc1q\x0c\xa2\xd1\x11l\xd8\xf0\x0c\
+N\x9el\x03\x00\xb8\xdd.H\x92\x08\x87\xc3\x81`\xd0\
+\x0bB\x08b\xb1\x04\x86\x87\xfb\xa2(\xee\xf9\xe7\xdd\x06\
+(G\x9a\xe9\xa5J\x00\x85\x01\x13\x01A\x92$\x9c>\
+\xdd\x86\x15+\x96\x22\x18tcl,c\xd1SJ\x0f\
+\xa5\x86B\x95j\x8f7\xdd\xa1\x16!\x08<\xda\xdb\xdb\
+\x90L\xc6-\xa3w\x84\x00\xc1`\x10\x8d\x8d\xf3`\xb7\
+[\x1b\x89\xdauVT\x0a\x1c\xe5b\x1c\x0c\xc3\x80a\
+\x80\xad[wc\xe7\xce\x17\x91\xcf\xe7a\xb7\xdb\x10\x0e\
+\x07\xe1p\xd8\xc0\xf39\x08B\x1e\x0c\xa3\xac\x9bp\xf6\
+\xec9\x0c\x0c\xb4\x0db\x96\x99N\xd3l\x00\xa0@\xb4\
+\xdf<\x19 H\x92\x84\xd6\xd6N,[v\x19\x82A\
+\x97%\x08&\x1aJ5\x93 h\xe1\xdf!\xe8\xae \
+m(*Fb]]\x03\xbc^=\x0aXZ|\x97\
+ns\xab{\xac\x80\xc1\xb2\x04v;\x87\x13'\xce\xe0\
+\xb1\xc7\xfe\x88Hd\x18\x0c\xc3\xa0\xba:\x8c`\xd0\x87\
+|>\x8f\xf1\xf1$x>\x07\x86!\x18\x1d\x8d\xa3\xbd\
+\xbd\x17\xe1p\x00\xa0b-\x98\x03\x10\xcc\x06\x00d\x00\
+\x85\x09\x154M\x06\x08<\xcf\xe3\xf4\xe9\xf6\x02\x08b\
+\xb1b\x10\x94f\x8e~\xac\x8d\xd2\xf5\xf7\xf7\x98\x98\xae\
+\x97\xa1\x19x\xe5$\x87\xd5\xebM\x17\x1c\x0cC`\xb7\
+\xb3\x88\xc7\x13\xf8\xcdo\xb6\xe1\xd5WO\x03\x00\xfc~\
+/\xea\xea\xaa`\xb7\xb3\x18\x1fO!\x1eOB\x92\x14\
+\xd5\xa0\xa9\xd2ht\x146\x1b3\xe7\x9f\xe1\x99)\x00\
+\xb4f\x93\x19F\xf3\xa1\x8b\x83A\x13\x01A\x10x\x9c\
+>\xdd\x81e\xcb\x16\xa1\xb2\xd2\x83X,e\x08\x1dO\
+F\xb7\xf2|\x16##\xd1\xa2\xe8\x1d\x00\xb0\xac\x0d5\
+55\xa8\xad\xd5\x86yKq{\xaa\xae\x5cip\xd8\
+\xed\x1c\x18\x06\xd8\xbb\xf70\x1e\x7f|;r9E\xdc\
+/X\xd0\x00\xaf\xd7\x85t:\x8btl\x00\x99\x14\x00\
+\xb0\xe08-\xdbX7\x00;::\xbbL\x15\x96Q\
+\xba\xf2\xd3\xa2\xa9\x00\xa0\xec\xc3\x8b\xdd@\xed\x96\xc9\x01\
+!\x97\xe3q\xe6L\x07\x9a\x9b\x17\xa1\xa2\xc2\x8b\xd1\xd1\
+\x14\xf2y\x91\xba\xb7|\xcc\xc0\xe5\xf2\xa0\xa5e\x15\xda\
+\xda\xde@*\x15\x87\xe6%\xd5\xd5\xd5\x1bB\xb7\xfa=\
+\xd6\xafX:@79p\xd8l,\x5c.\x1b\xce\x9e\
+\xed\xc2\x83\x0fnA\x7f\xbf\x920\xd2\xd8X\x83\x86\x86\
+\x1aH\x92\x88\xe1\xe114y\xce\xa2\xa1*\x81q\xbf\
+\x0d\xaf\x8d4A\x90\x1d\xd0\xc6,\xb4M\x8d\x9a\xce\x19\
+\xf3\x81\xd9S\x01r4\x1a\xed\xa8\xae\xae^A\x0f\xc9\
+N\x15\x08\x82\xc0\xa3\xb5\xb5\x03K\x97.B(\xe41\
+\x80\xa0|@E9\xc9\xb2\x0c\x96.m\xc6\xc0@?\
+r9\x1e\xb5\xb5\x0d%\x0d\xbc\xc9\xa8\x15\xabg\x948\
+\x0b\x86!p\xbb\xed\xc8f3\xf8\xdd\xef\xb6a\xdf\xbe\
+W\x00\x00\x81\x80\x0fK\x97*\xb9\x0a\xb1X\x1c\x83\x83\
+#\x10\x84\x1c\x9a\xeb\xb3p\xb8\x09\x02#\x02\xae\xaen\
+\xc7\xf1\xd8e\xc8Hn\x03\x00\xd4\x19K\xa5\x18?+\
+`\x98,\x00h\x0e\xd2\xa3R\x85\xb8\xf4\xd8\xd8\xe8\x90\
+bd\xc9\x06\xe6\x97\x03\x02M\x1a\x10\x04!W\x00A\
+8\xecE<\x9eF:-\xa8\xd7L\xae\x17\xea\xa2^\
+{\xa6\xd5=S3\xeeJ\x03\x83\xc0\xed\xb6\x81e\x09\
+\x0e\x1c8\x82\xdf\xff\xfe\x8fH\xa5\xd2\xe08\x16--\
+\x97\xa1\xb2\xb2\x02\x82 \xa0\xbb{\x00\xa9T\x06\x0cC\
+ \x8a9\xd8X\x19\x0e?\x03\x9b\x8b\x81tN\xc0\xaa\
+\x8a6\xb4'\xe7cL\x0c\x81\x10\xc5@\x8e\xc7GN\
+R/1'\x92`\xaa\x12@6\x1d\x17\xb6?\xfca\
+\xe3\xc1\xb7\xbf\xfd\xc6\xff\x09\x00\x92\xa4\xd8\x01\x13\x01\x81\
+\x96\x04\x1a\x11\x02\xe4r9\xb4\xb6v\xa2\xb9y!\x02\
+\x01%\xb12\x9d\x16f9\x14;s\xcb\xdf\xe5\xb2\xc1\
+\xe5\xb2\xa1\xb3\xb3\x0f\xbf\xfb\xdd\x16tu\xf5\x01\x00\xe6\
+\xcf\xaf\xc7\xe2\xc5M \x84`pp\x04\x91\xc80\x08\
+!\xe08\x16\x92$B\x96e\x84\x83\x22\x08\xc3\xc2\xe6\
+\x00|M6$\x07rX\x8avtfd\x8cJ5\
+\xd0\xa4\x0a\x8a\xdb|Vi\xba*\xc0,\x05\xa4}\xfb\
+\xf6\x0c\x8c\x8f\xc7\xba\x83\xc1\x8a\xf9Z\x90d&@\xc8\
+\xe7\x15\x10,]\xaa\x83 \x95\x12\xca0\xed\xfc\x81\xc3\
+\xe1`\xe1\xf18 \x08\x02\x1eyd\x1b\xf6\xee}\x19\
+\x82\x90C8\x1cDK\xcb\x22\x04\x02\x8a\xe4\xea\xe8\xe8\
+A.\x97\x07\xcb\xea\xd6}.\x97\x03\xcbr\xaa\x1c$\
+\x00\x01\x1c.\x0e\xf6\x85,\x92\xbd\x02\xe6\xcb\xed\xf0\xe5\
+\x13\xe8\xe2/\xc3\x0c\x97o\x98\x14M\x08\x00Y\x96\xb5\
+Q\x1e\xb3\x08*0\x1f\xea(\xd5\xbe}{\x9e\xb9\xe3\
+\x8e\x0f\xfd\x83\xc6\xe4\x99\x02!\x97\xcb\xe1\x8d7\xba\xb0\
+t\xe9\x22\x04\x02n\xd8\xed,b\xb1L\xc9\xba\xce5\
+88\x8e\x81\xd7\xab\x18k/\xbdt\x1c\x1b7nG\
+,6\x0e\x9b\x8d\xc3\xca\x95\x97\xe3\xb2\xcb\x1a\xc1\xf3\x02\
+\xda\xdaz16\xa6\x0cV\xd1\xcc\x97e\x19\xa2(\x16\
+V Qk\x00\x10\x02\x86\x10\xcc[\x11\xc4`W\x12\
+\x18\x18B.\x9f\xc7\x91\xb1s]\xc6\x0b/|$\xb0\
+$\xf3\x01\x88\xdf\xf8\xc6\xff\xdd\xb5t\xe9\xb2U\xcb\x96\
+-\xbf\x01\xd0\x99<\x13 \xe4r9tt\xf4`\xd1\
+\xa2&\xb8\x5c\x0e\xc82\x10\x8b\xa5-\x197\x9b\xc3\xb2\
+\xca=\xcaM\x0cC\xe0\xf5:\xe0p\xd8\xd0\xdf?\x88\
+G\x1e\xd9\x86\x13'\xce\x02\x00\x16,\xa8\xc7\xea\xd5\x97\
+\xc3n\xb7\xa1\xafo\x08\xe7\xceE I\x12X\x965\
+xF\x84\x10d\xb3\xd9\x02 4\xa6\xeb\x81T\x02\x99\
+\x10\xcck\x0e\x022 \x0f\x8c\xe0#\xeb\xb8\x8f\xb4\x9e\
+v\xbd\x14\x19\xcdhK\x97X\x05\x85\x080\xfd\xc4\x90\
+I\xad\x0fP\x18\xe75&\x82:\xa0|GP\xfb\x92\
+\x98\x0f\xcaG\xa4\xfc\x8f=\xb6\xf9s--\xab\xae\x07\
+\xf4\x06\xd6\x96\x82\x01dH\x92\xf6\xbf\xb6\xdcJ\xf15\
+\xe6\xff\xddn7\x16-j\x82\xcd\xc6!\x9d\xe6\x11\x8b\
+\xa5K\xd5u\xaamP\x12\x1c\x84\x10x<v\xb8\x5c\
+6\x08B\x0e\xdb\xb6\xed\xc1\xf6\xed\xfb!\x089x<\
+n\x5cs\xcd\x0aTWW \x95\xca\xa2\xb5\xb5\x1b\xa9\
+T\xba\x88\xe9t<\x22\x99LB\x0bP\xddz];\
+\x9c\x0e\x16 DK\xa8\x80\xc7e\x83\xcf\xa7\xe4>\x8c\
+FR\xe8|}\x04\xc9d\xa6\xe3\x99\x97\xde\xf8\xd7g\
+\x0eu\x1c\x05\x90\x04\x90\x06\x90E\xf1\x1a\x03\xb2\xdaV\
+S\x02\xc1T\x01@@M\x05\x87\x02\x02\x17\xa8O\xc9\
+i\xfb\x8d\x1b7\xff\xfd\xca\x95\xab\xaf\xa1\x99\xa8\xed\xa7\
+\x0b\x04\xb7\xdb\x8d\x85\x0b\x1ba\xb3q\xc8\xe5\xf2\x88F\
+\x93e{\xb0\xc5{L\xfaZ\xb7\xdb\x06\x8f\xc7\x01\x96\
+eq\xf4\xe8)l\xdc\xf8\x0c\xfa\xfb\xa3\xb0\xd984\
+7/\xc4\xca\x95K \x8a\x22\xba\xba\xfa\xd1\xdb;h\
+\x1a\xc13o\x0c\x04![\x98\x81\xc4\xb1\x12n\xbe\xaa\
+\x13N\x07\xab\x80O\x05\x8c\xc3\xce!\x14tB\x93\x0a\
+#\x03)t\x9f\x19F6\xcd'\x9f>\xf8\xc6\xdd[\
+\xf7\x9f=\x02\x1d\x00\x02\x8c\x8bOM\x0b\x04S\x01\x00\
+\xa0\x03@\xcbR1K\x01M\x12\xf8\x00x7n|\
+\xe2\xefV\xae\xbc\xe2j\xb5R0\xef\xa7\x03\x04\x9f\xcf\
+\x8b\x85\x0b\x9b\xc00\xa4\x00\x02I*~\x87\xa9\x0a\x02\
+\xed\x15\xedv\x16^\xaf\x13v;\x87ht\x14O<\
+\xb1\x13\xfb\xf7\xbf\x0a\x00hj\xaa\xc1\xda\xb5\xcb\xe1\xf3\
+\xb91::\x8e\x93'\xdb!\x8aRQ\x04O\x97\x00\
+\x0c\xd5\xfb\xf5\xa9\xea>W\x0a7\xae\x89\x80\xd1\xa4\x04\
+\x98\x02\x08\xea\xaa\xdd\xd0\x00@\x08A*.\xe0\xd4\xe1\
+>\xf0\xe9l\xb2\xado\xe4\xfb\xdf\xdf\xf8\xd2F\x00\x19\
+\x00<J\xaf42i\x10Lz\x89\x98\x12j\xc0\x0e\
+\x05\x00f\x10h@\xf0l\xdc\xf8\x87O\xafZ\xb5f\
+\x9d\x15\x00\xb4\xfdT\x81\xe0\xf3y\x0a \x10\x84<\xa2\
+\xd1\x84\x05\x08\xca\x87\x8e\xcd\xc4\xb2\x0c\x02\x01'\x1c\x0e\
+;\x04\x81\xc7\x9e=\x87\xb1u\xeb\x1e$\x12Ix<\
+n\x5c}\xf5r45\xd5\xa9+\x9dw \x16\x8b\x1b\
+\xc4\xbc\x0e\x00\xc6\x00\x04\x86!\xe0y\x1e<\xaf\xe4=\
+\x10B\xe0w\xa5\xf0\xb6+\x06\xc0\x10F-\x03 \xea\
+\xb9\xca\xb0\x0b6\x8e\xa1\xc7\xd9!\xa4\xf38s\xa4\x0f\
+\x89\xf14Z\xcfE\xbf\xf6\x83\x8d\x87\x1f\x85\x02\x00\x1e\
+\xc5k\x13O\x09\x04\xd3\x01\x00\x0d\x02;t\x10h\x9f\
+\x96\xf5\xc0\x08\x04\xf7\xc6\x8d\x9b\xefZ\xbd\xfa\x8auf\
+\xa6\x9a\xf7S\x01\x82\xd7\xab\x83@\x92d\x0c\x0d\xc5\x91\
+\xcb\xe9\xa1\xe3\x09\xde\xa6p\xa4\x19x>\x9f\x13\xb2\x0c\
+\x9c9\xd3\x8e\x87\x1f\xde\x86\xee\xee~\x00\xc0\xea\xd5K\
+\xd1\xd2r\x19\x9cN;\xba\xba\xfa\xd1\xd1\xd1S$\xe2\
+\x95q\x10]\xef\x9b\xa5A<\x1eWG\x1c\x95\xdf>\
+g\x0ao[\xd5\x07B\xb4\x9e\xaf\xde\x0b \xe0s\xc0\
+\xe3\xb1\xa9\xb5$\x85\xea\x8ay\x09'^<\x87\xc4X\
+\x0a\xb1df\xcb?\xfdr\xcf\x17`\x04\x01\xbd\xfa\x98\
+f\xa4O\x08\x82\xa9\x02@k=z^ \x0d\x027\
+t\x9b@\x93\x08\x1e\x00\x9e\x8d\x1b7\x7fj\xf5\xea+\
+\xd7Y1\xd5\xbc\x9f,\x10\x8c \x9008h\x04\xc1\
+Dj@a\xbc\x0b\x0cC\x90L\xa6\xb0q\xe3\xb38\
+x\xf08x^@mm\x18\xeb\xd6\xad@ee\x05\
+\xe2\xf1$N\x9f\xee@&\xc3\x1b\xf4\xba\xc2hk\xa6\
+\xd3~\x7f*\x95V=!\xe5?\xaf3\x85\x1bV\xf6\
+\x17\x98^\xf0\x0a@\xe0rs\xa8\x088\xd4\x86\xd6\x01\
+\xa0\xfdn=\xd6\x87\x81\xae\x11\xc4\x92\x99-\x0f\xed8\
+\xfe\xad\x13\x1d\xb1(\x14U`\xa5\x0e&\x04\xc1\x94V\
+\x09+!\x05\xb4\xd5\xc14{\x80\x96\x04\x9a4pC\
+\x01\xc1\xdf^q\xc5\x95\xeb\x8a\x0d<=el\xaa@\
+\xf0z=X\xb0@\x97\x04\x83\x83\xe3\x13J\x02\x87\x83\
+C(\xe4\x05\xc71\xc8\xe7\xf38p\xe0Ul\xdc\xb8\
+\x1d\xf1x\x12v\xbb\x0dW]\xb5\x1c\x97_>\x1f\x00\
+p\xfat\x07\xa2\xd1X\x81\xe94\xc3\xad\x99\x0e\xc3u\
+\xe3\xe3t\xefW\xad}G\x12\x7f\xb1\xbcO\xf5\x00\xf4\
+akB\xd4\xc9\xa5a\x97\x81\xe9j\xe3\xab\xbf\x81\xb6\
+\x13\x038\xd76\x88,/\x9cy`\xdb\xab\x1f}\xbd\
+s,\x0a\xc5(\x9c\xf2\xeac\xd3\x01\x80V\x0f\xcd \
+d\xa0.\x11\x83bu@K\x017\x00\xf7\xd6\xad\xdb\
+\xff\xa1\xb9y\xd9\x0akK\x7fz@\xf0x\xdc\x05\x10\
+\x002\x86\x87\x93H\xa5x\xad\xce\x85\xfa\xdbl,*\
+*\xdcp8\x14\x11\xdb\xdb;\x80\xdf\xfev+\xce\x9c\
+\xe9\x00\x0047/\xc2\x95W.\x85\xd3\xe9\xc0\xc0@\
+\x14]]\x03\xc8\xe7s\x06\xbd\xce\xb2V\x0c\xb7\xee\xfd\
+\xa2(\x22\x91\xd0g\x17i r\xd9\xd3X\xb7\xa4\x13\
+\x0e;c\x09\x82\x86Z\xaf\x81\xe1\xea\xcd\xeao%\xa8\
+2pn\x04'_\xee\x84 \x08}/\x9e\x1c\xf8\xfb\
+\x0d\xcf\x9dy\x15\xc5 \x98p\x91\xea)\xaf\x13h\xa1\
+\x0a\x0c\xcb\xc4@\x01\x81\x0b\xbaJ0\x80\xa0\xba\xba\xb6\
+\xf2\x89'\x9e\xba\xa7\xaa\xaa\xba\xde\xcc\xe0R@\xa0\xcf\
+\x97\x02B \x10DccMa\xcd\xbf\xe1\xe1D\x01\
+\x04\x0cCPQ\xe1\x86\xc7\xe3\x04\xa0\xac\x0b\xfc\xe4\x93\
+{\xb0s\xe7\x8b\xe0y\x01\xc1\xa0\x1f\xeb\xd6-W\x92\
+4\xc4\x11\xb4\xb7\x9eE\xef\xb8\xab\xc8\x98S\xf6\xa5\x19\
+n\x06F2\x99B.\xa7\x03\x88a\x94\xa4\xd8lv\
+\x0c6\x12\xc1\x0d\xab\x00\xaf\x9bNGW\xee\xab\x0a\xbb\
+\xe0\xb0\xb3EL7K\x85\xe8\xc0\x18^\x7f\xa9\x1d\x99\
+\x0c\x9f8\xf0\xfa\xb9\x8fox\xae\xed\x18t\xef\x80\x9e\
+GP\x12\x043](\x12\xb0X#\x18\xba:\xd0@\
+\xe0\xa16wmmmx\xd3\xa6\xa7\xbeX]]S\
+_\xde\xf7\x9f\x1a\x10\xfc\xfe \xe6\xcd\xd3\xe7\x0d\xc6b\
+I0\x0c\x81\xcf\xa70S\x92$\x1c?~\x06\x0f=\
+\xf4\x14\x06\x07G\xd4\x10\xee\x12\xb4\xb4,\x02@\x90\x1c\
+>\x0a\xf7\xe8\xab\x90\x04\x09\xdd\xb9\xc5\x18\x97kKX\
+\xfa\x13K\x00Q\x141>\x9e\x00\xcb\xea\xcc\xe5\xf98\
+\x92\xc9A\x88\xa22\xbaig2\xfc\x8dkI.\x1c\
+t{\x89\x16\x0f\x00A\xc0o\x87\xdf\xeb,f\xba\x85\
+TH\xc6Rx\xe9\xf9S\x10\x04\x01\x9d\x03\xa3_\xf9\
+\xe1\xef\x8fn\x80.\x09&\x5c\xae~\xa6K\xc5j\xf5\
+1\x83\xa0\x94:(\x80@\x91\x04\xdb\xee\xa9\xa9\xa9\xae\
+\x9f8\x084y \x84\xc3a\xd4\xd6\xd2)_\xca\x8d\
+\x03\x03Ql\xda\xb4\x03\x07\x0f\x1e\x07\x0044Tc\
+\xcd\x9ae\x08\x04|H$R\xe8\xe8\xe8A\x83\xff\x0c\
+\x167\xa6\x11mK\x03y\x09#R=\x86\xc8\xe5&\
+\x00L$\x01\x94\xf3z\xef'\x90\xa4\x1c\x12\x89\x01d\
+\xb3\xba\xbb\xda\xd5\xd5\xf9\xf2\x9e=\xcf\xef\x0f\xfam\xcc\
+/\xef\xfd\xf0\xc7j\xaa\x025Z\xb7r;m\xa8\x0c\
+\xb9\x0bL63]\xf9M\x0a?3)\x1eG\xfet\
+\x1ac#\x09\xf4\x0e\x8d\xdf{\xef\x86#\xbf\x82Q\x12\
+\x14\x81`F\x00\xd0\xebBh)@\x07\x89\xac\x0cC\
+\x17\x8a%A\xe5\x13O<\xad\xaa\x83\xc9D\x03'\x07\
+\x84p8T\x00\x01\xcf\xf38t\xe88\x1e|p+\
+\xb2Y\xa5\xe7\xad[\xb7\x1c\x8b\x165\x82\x10\xa0\xab\xab\
+\x1f\xf1x\x0a\xc9d\x0a\xd7/\xefCu\x05\x0fY\x92\
+1\xd2\x93F>\x91\xc38j1\xc25C&\xb6I\
+J\x00\x06\xb2,\x15\x06\x83\x12\x89A\xa4R\xc3\x85\x05\
+\xa8b\xb1\xd1\xae\x17_<\xb0}`\xa0o@k\xc7\
+\x80b\x0e?z\x00\x00\x10\xb6IDAT\xcf\xe6\xfa\
+\xfe\xd7?rg\xcb\xe2p3\x08`\xe3\x18\xd4\xd5\xf8\
+\xca2]=\xa1\xf1\x01\xf9\x5c\x1e\x07w\x1dGl$\
+\x81\xf1Df\xf3W\x7f{\xe8\x1f\xa1H\x02+\xe3P\
+\x86\x0a\x82\xd9\xfc^\x00m\x18NV\x12xjkk\
+\xc3\x9b7?}OU\x95\xa6\x0ef\x07\x08\x1cg\xc7\
+\xbe}\xaf\xe0\xc8\x91\x93\x18\x1bS\xe6\x0fr\x1c\x87\xab\
+\xaej\xc1\xf2\xe5\x8b\x11\x89D\xd1\xd5\xa5L\xc1\xca\xe7\
+E\xa4RI\xdc\xb02\x82\xaa _`\xeaPG\x1c\
+|\x5c\x80\xc0x\x11u^\x070\xf6\x12\x12\x801\xd8\
+\x08\x89D\x0a\xe3\xe3#\x88\xc7\xfb!\x08Y\xc8\xb2\x8c\
+L&=v\xfc\xf8\xb1\xa7O\x9e<q\x02F\x0b\xbd\
+\xd0y~\xf8\xcd;\xef\xbc\xf6\x8ay\xd7\x10BP_\
+\xeb\x05\xa7\xa6\xb1Y1\xdc\xc4\x83\xc2\xf9\xa3\x07O\xa3\
+\xfb\x8d~$\xd3\x99\xdd\x1b\xf7\xbc\xf1\x8f\xc7\xdbcf\
+\x0f\xc1\xe0\x1d\xcc\xe6'ch\xf7p\x22\x17\xd1\xa0\x0e\
+jkk+7o~\xfa\x1e\xc5&\x98\x5c4\xd0\xfa\
+\x1a\xfd|WW?\x1ezh[\xa1\x8e\x1e\x8f\x1b\x0b\
+\x17\xd6\xe3]\xef\xba\x1a\xaf\xbf\xde\x86\xa1\xa1\x91\x02\x03\
+\x13\x89$DQ\xc4\xf5\xcb\x07P]\xa1\x02@y1\
+\x88\xc9<\x06\xdab\xe0\x89\x17q\xd7\x1a\xe4mA\x13\
+\xd3\x8d6B>\x9fG{\xfb\x09\xa4R1\xb5\xce2\
+:;\xdbv\x1f8\xb0\xff\x05A\x10\xe20\xf6DP\
+m\xc6\x01\xe0\xbe\xf0\x99[\xde\xf5\xc1\xf7,\xbb\xad\xba\
+\xd2\x03\x97\x93C9\xa6'\xc7\xd38\xd7>\x94iY\
+\xb3\xd0\xc5P 9s\xbc\x03\xa7\x8e\xb6#\x91\xc9\xec\
+\xfa\xe7\xff<|\x17\xca\x8c\x1d\xccJ\xc6\x81\xacqC\
+\xd71\xda0q\x1e\x0a\xf2x\xb5\x12\x19(\x83\x19i\
+\x00)uKG\x22\x91\xe1\x0f~\xf0\xd6\x9f\x0c\x0d\x0d\
+\xf6\xeb\xba\x96\x81~\x5cl\x84Y_\xa33C\xad\x17\
+\x00mu\xcf\x0a\x5cye3^{\xed\x0d\x0c\x0f\xc7\
+\xc0\xaa\x9f\xb9\x95$\x85I\x8ca\xaa\x0f\x01\xd4\xb2\xfd\
+\xd5n,\x5cQ\x05\x17\x93B0\xb5\x1f\x0e9\x01\x8e\
+c\xc1q\x0cX\x96)\x94\xc3q,\xe2\xf1!\xb4\xb5\
+\xbd\x8cDb\x04\x92$ah(zj\xcb\x96'\xee\
+\xdd\xb3\xe7\xf9\xa7\x04A\x88\x02H\xa8[\x9c\xda\xc7\xa9\
+\xffS?}`\xc7\x8e\xef\xff\xe2\x85_&Sy\xc1\
+\x1cV\xd6c\x11\x0c\x18B\xd0\xdb6\x8c\xa3\xafv\xf7\
+\xb7u\x0e\x1d'\x0c\x03e#Xv\xe5e\x08\x84\xfd\
+`\x08\x13\x84\x22\x81m\xeaF\x0f'\x03\x98\xc5\x94\x13\
+\x0b\x10h.\x88\x06\x02\xc1\x04\x82\x14,@\x10\x8dF\
+\xfa\xcb3y\xf2@\xd0@\xe0t:\x10\x0c\xfa\x91\xcb\
+\xe5\x11\x8b%T\xa6)\x0c\xccd2`\x18\xe5X\x14\
+a\x0a\x1f\x12\xe4r\x12*\x1b\xbch\xb9\xba\x01\x0eN\
+\x86wl/\x1c\xd9\xae\x02\xe3Y\x96\x85(f\xd0\xd7\
+w\x0aCC\x1dH\xa5\xd2\xc8f3\xb1?\xfdi\xef\
+\xaf\xb6m\xdb\xfc@,6r\x0e\xca0.\xcd\xfc8\
+\x80q\xea\x98\x06A\xf2\x99\xddG_\xfb\x97\x9f>\xfb\
+\xff\x06\x87\x13\xfd\x1a\xd3\x01%\x7f\x80!(\xe4\x11\xf0\
+\xd9< \x13\xe6l\xd7\xf0 \x00\x03H\x9c\x0e;l\
+\x9c\xad\x81\x02\x80yn!\x03\x80\xcc\x1a\x00,@ \
+\x9b@ \xc0(\x092*\xf3\x934\x08\xee\xbc\xf3\xf6\
+\xfb\xa3\xd1\xe1>=\xbe>} h\xc4\xb2,\xecv\
+\x1b\xce\x9d\x1b(0\x9eeYu&\xae6e\x8b\x81\
+\xdb\x99\xa7\xdc-\xe5\xfe\xbc(\x83\x10\x06\x9e\x80\x03\xab\
+n\x98\x07\xbf\x8f\x85#v\x08\xb6t\x07\x08\x9102\
+\xd2\x85\xae\xae\xe3H\xa5\xc6\x90Je\xb2mmg\x9f\
+\xdb\xb0\xe1\xe1\xef\x9c=\xfb\xc6\x09\xf5\xdd\x92&F\xd3\
+\x9b\x06\x82\x02\xf3\xb5\xed\xa9\x1d'\xce\xdc\xfa\xd7\xbf\xfc\
+it8\xdeO3]\xeb\xe5D\x1f|\x22\x90\xc1\x9a\
+\xa5\x85\xcda\x87\xc3\xc6\xd5[\x00\x80v\xe1g?\xe9\
+l\x02\x10\x98\xd5\x81&\x0d\xb4\x17OE\x22\xfd#\x1f\
+\xf8\xc0\xfb~\x12\x8d\x0e\xf5)zv\xfa@P~3\
+\xe0y\x1e\xa2(B\x10\xf2\xe08\xb6 \x01\xb2Y\x1e\
+\x0c\xa3\x1cs\x1c\x8b\x80GQ\xcbf\x10\xe4r\xca\xca\
+WN\xb7\x03+\xae\x9f\x0f_\xd0\x05\xdb\xc8\x01\xa4\xdb\
+\x9f\xc4\xc8H\x1f$IBOO\xcf\xd1\x07\x1f\xfc\xed\
+\x0f^x\xe1\xf9\xa7\xa1K8\xba\xe7\x9bE\x7f\xb9\xff\
+\x93\x00\x92\x91hz\xe4\xca[~\xfc\xbd#'z_\
+62]yG\xbb\xdd\x86\xfaJ\xff\x02\x8ea\xdcz\
+0Iy\xf7\x0a\xf5\x83\xde(\x9eZNg\x14\xcdM\
+\xd6!\x05\x02s\xdaX9\x10h\xea \x19\x89\xf4\x0f\
+\xdfq\xc7{\xee\x8fF\xa3}\xa4\x10[\x9f:\x10\xb4\
+-\x9fW>X\xad\xf7~\x06\xb9\x5c\x1e\x0c\x83\x824\
+`\x18F\x15\x88\xba\xdfM\x08\x01\x01\x03Q\x95\x02 \
+\x80\xcd\xc6a\xcd\x8dKP;?\x84\x0a6\x8e\x1a\xe9\
+\x5cv\xff\x0b\xbb\x7f\xbfi\xd3\xa6\xc7y\x9e\x8f\xa1X\
+\xba%J\xec\x93\xd45\xe6\xff\x0d\xdbm\x7f\xf3\xc0\x7f\
+m\x7f\xfe\xd4\x1f\xf5E0\xd4\x88a}\x00,\xc3\xe0\
+\xed\xeb\x16_G\x88\xa2\x22\x0a\xf5V\xdb\x0cz\x94\xd6\
+\x0c\x00`\xb6U\x00MT\xb8q\x22\xc30MmZ\
+\xcaS*\x12\x89\x8c\xdcq\xc7-*\x08\xb4\x10\xec\xd4\
+\x80\xa0\x89vm\xd3\xf56\x07\x9e\x17\x0a\xba_\xdb\xd4\
+61\xb5\x11\xc0\x0b\xb2\xf1\xd9\x00\x9a\xd7\xcc\xc3\xbc%\
+\xd5\xa8rd\x9d\x1f\xb9\xa6\xf2\x1d^'\xc3\x96x'\
+\x0d\xdc\xf4o\x1a\xf4\xe6N`\x05\x82\xd4]\xf7<\xba\
+\xf97\x8f\xee\x7f\x84\xe7\xf3\x19\xad.\xf5\x0b*q\xcd\
+\xbb[\xe0\x0fy\x0cL\xa7U\x01\x8c\x8c/\x9ad:\
+\xa7y\xc7\x93\x04\x01\x0f\xbd\xc7d\xa0\xf7\x8cT$\x12\
+\x19\xb9\xfd\xf6[\xee\x1f\x1eV@0U \xd0\xe7=\
+\x1e\x17l6\xc5Z\xcf\xe5\x04\x83\xeeW6u\x81\xeb\
+B\xc4U\x05\x02!\xca\xc7\xa5\xa0\x1a\x96ZC\x83`\
+\xc9\xaaF,_\xb7\x10a\x9f\xbb\xee\xde\xbf{\xd7=\
+k\x97T\xd5Q\xef\x94\x85Q\xcai\x9b\xf6?\xfd\xee\
+\x93\x01A\xf2\xeb?|f\xcf\xe7\xbf\xfe\xfb\x9f\xf1\xd9\
+\x5cF\xab\x8b\xbf\xc2SH&\x81\xe6\x05AQ\x17B\
+N\x1aD1\xf3\x0d4\xe7\x89\xe7\x14\x08\xe8\x8f&\x96\
+R\x07ZO)4B$\x12\x19\xbe\xed\xb6\x9b\xef\x8f\
+F\xa3}\xc6^^\x0c\x04\xbd\x17h\xe2\x9f)\x80\xc3\
+f\xe3TQ\xafd\xe8\xd0\xbd_\xbbN\xc8\xcb\xea\xc0\
+\x8b\xd1\x13\x10%@.X\xe1\xc6g\xd5/\xa8\xc4\xea\
+\x1b\x96 \x10p\x85>\xfd\xfe+\xfe\xe9/\x96\xd76\
+\xc2\xe8\xf9\xe4Jl\x02\xb5/g \x1b\xd4\xc5S;\
+O\xb6~\xf8\xee\x07\xbe7\x14M\xf4\x19\x98\xae\xb5\x85\
+j+\x8cD\xc6\xc1\x8b\xd2\xe0D\xfc\x99\xfb\x99\x07(\
+\x92\x04t\xe6\x0a\xddPZo0\xbb\x88\xa9H$\x12\
+U@0\xd4W,\xeeu \x18\xff\xd7{6-\xe6\
+\xb3Y\x01\xb2\x0c\x93j`\xe0r\x88`\x0b\xd1\x14\xbd\
+\x97\x135\x00+\xe6e\xfd\x7f*\xd6@\x08AMC\
+\x08W\xbfk9\xdc\x1e\x87\xfbo\xde\xb3\xfaGw\xbf\
+o\xf9M\xb0H\x9b/\xb3\x99\x81Pd\x17\x81\xf2\x96\
+^:\xdas\xee\xe6\x8f\xfe\xecG\xdd\xbd\xb1\xb3\x05\xa6\
+\x17\x5c_\xa5\x8ebND<)t\xc0h\x90\x17E\
+\xfd\xce\x0b\x00\x00Ku\xa0\x01\xc0\x0a\x04\xe6\x06HG\
+\x22\x91\xe8\xad\xb7\xdelR\x07V@\x80\xc1\x00d\x18\
+\x06\xc1\xa0\xd7\xd0\xfbi@h \x008$2.\x83\
+\xfb\x08\xa2\x03B\xc8I\x06\xa6\xd3\x01\x19\x86\x10\x04\x82\
+^\xbc\xed\xbdW\x22\x10\xf2a\xed\xb2\x86/~a\xfd\
+\x9a\x8f\xc2\xca\xa0\xa0\x9a\x04\xd6@(\x1583H\x83\
+\xbe\xa1Dt\xed-\xf7\xdew\xecd\xcfA30\xf3\
+9\x11\xf1\xb1\x14^<\xd9\xbb\x03\x16\xb9\x82\xd4\xf3\xcf\
+\x1f\x00\x80\x926\x01\x0d\x00s\x0f0\xb9\x88\x91\xe8\xad\
+\xb7\xde\xfc\xe3ht\xc8\x22N\xa0\xf7|]\x0d0\x05\
+\x10\xb0,\xa3\xa6e\x93\xa2\xde\xcf\xb2\x0c\xf8\x9c\x84?\
+\x1d'\xe8\x8eh+\xb1\xa9v\x92\xaak\x85\x5c\xde\xc4\
+\xf4b\xdf\xdc\xedu\xe2\xba\xbf\x5c\x85`\xc8\x87\xa5M\
+\xe1\xcf\x7f\xef\xaek\xff\x15\xc6\x05\x9e4?\xbc\xa8i\
+P^\x1a\xd0\x12\xd1\x00\x84\x9b\xd6\xff\xec\x97[\xb7\x1f\
+\xdd\xa8\xabC\x16\x83=#\x88\xa7\xf8\x13\xbb\x8ft\x9f\
+\x81q$\xd00$\x8c\xd9\x0a\x05O\x85&0\x0c\xcd\
+\xba\xd0\x1c6N\x0e\x0c\x0cDo\xbf\xfd=?\xd2\xd5\
+A) \xe8\x9b$)V|&\xc3\x17\xf5|\x86a\
+02\xd2\x877\xde8\x82\xe8\xf0\x10\x9e\xda3:~\
+\xbam\xf0,\xa1z?@ \x08\xb2%\xd3\x09CK\
+\x05\x02\xbb\xc3\x86w\xdcz\x15\xe6-\xaeC8\xe0\xbd\
+\xf5\xfbw_\xf7\xf3\xcb\x1b\xfda\xe8\xfe\xb8\xd9%\xd3\
+\xda\xc2,\x195\x10\x98\xa3\xa7E\xc6\xe1]\xf7<\xbc\
+\xe5\xd1-/\xfdG.\x9fO\x89\xf9<^>\xd4v\
+\xe2\xbeG\xf7}\x13\xa53\x84\x0a\xea`V\x06\x83\xa6\
+C\xc4\xd8\xc2V\x03H\xda\xc4\x13:\xd9\xb40\x8a\xd8\
+\xd0\xd0P\xf9\xcc3;\xbeTYY\xd3`\x1c0\xd2\
+\xc6\xdb\xfb\xf0\xdf\xff\xfdt\x01\x04W\x5c\xb1\x14\xc9d\
+\x8a2\xe0\x80Tj\x1c}}g\x91J\xc5!\x8a\xf9\
+l__\xff\xa1}\xfb\xf6\xec\x01@>\xf7\xa9w\x5c\
+\xf9\x89\x0f^}\x87,kB\x80\xa0\xbe\xd6\x07\x1b\xc7\
+h\xf5\xa7\xaao=bw\xfah\x07N\x1dmC:\
++\xb4\xfez\xcb+\x7f\xd5\x1a\xc9\x0cA\x01\xb8\xd5\xe8\
+\x9c\xa1y`\xf1I>S\x9b8\xd5c\x87\xdaf\xcc\
+g\xfe\xeam\x8b\xfcn\xbb\xebG\xbf~\xeeU\x18\xbd\
+\x10m2\x89\xf6\xec\xc2\x80\xd4\x05\x03\x000!\x08\xac\
+\xe6\x1dX\x80`\xe7\x97\xaa\xab\xab\x1b\xf4\xa4\x10e\xdf\
+\xd5\xd5\x87\x87\x1ezZ\x95\x10\x12\xaa\xab\x9dp\xbb\x83\
+\xb0\xdb\x9d\xc8\xe5\xb2\xe8\xed}\x03ccQ\xc8\xb2\x8c\
+x<q\xea\xc0\x81\x03\xdbFG\x87F\x00u\x82\x22\
+@\xee\xfa\x1f\xd7\xae\xfc\xe4\x87\xae\xfb\xb0\xc3as\x12\
+\x02T\x86\xdc\xf0z\xf4\xef\x09[1]\xff\xa5\x5c\xd0\
+}\xb6\x1f\x87_x\x0dY!\xd7\x7f\xf0\xf5\x9e\xcfn\
+\xda\xd7u\x14F\x10\x98{\xa6V\x84\xd6&4\x08\xe8\
+\x8e\xa1mv\xea\x1a\xa8e\xd06\x15\xedv\xd2#\x82\
+\x22fk8x&T\x02\x04Z\xa2)=\x05\x8d\xce\
+1,\x0c'744T>\xfb\xec\xce/WU\xd5\
+4\xd0I!\xdd\xdd\x03x\xf8\xe1m \x84@\x10F\
+\x90\xcb\xc5\xa0\x0c\x15\xeb \xc9\xe7\xe5\xd8\xb1c\x877\
+\xb6\xb6\xb6\xb6B\xef\x8d2U\x17\xee\xe6w,\x9d\xff\
+\xad{n\xff,\xcb\xb2\xae\x80\xdfa\x98\xbae\xc5p\
+\xe57\x01}\x22:0\x8a?\xedx\x05\xe9t&\xf1\
+\xe2\x89\xbeO<\xbe\xaf\xb3\x14\x08hI@\x1b\x90t\
+\xa7\xa0\x81\xa0\xed\xcd\x00\xb0\xb2%\xcc\xcf\x12q!l\
+\x003\x95\xb1\x094\x11I#\xb9\xc8E\xec\xeb\xeb\x8b\
+\xbe\xef}7\xff0\x1a\x1d,\xb8\x88J\xe6\xae\xf6Q\
+h\x09\x82\x10\x83,K\x90$IM\xd1f\xd0\xdf\x1f\
+\xd9\xf1\xe4\x93O\xdc\xdb\xda\xdaz\x0c\xc6Q:\xc3\x08\
+\xdd\xce\x17Z[?\xf0\xb7\xbf\xf8V,\x9e\xee\xcb\xe5\
+\xb4\x88\xa01\xecJ\x07\x872)\x01\xcf?\xf9\x0a\xe2\
+\xc9\xec\x08Q\xad\xf3\xea\xfaJ\xdct\xfb\xf5p\xbb\x5c\
+\xbe\xebW6<\x0a\x9dy\x9a=`\x88\xceY\xb4\x87\
+\xd9S\xa2E;\x1dR\xa6\xdbF\x9b>\xa6\xa5\x86\x15\
+}\xad\x1c8\xcf^@)\xb2\x00\x01\x8d\xe2r.\xa2\
+\xe2\x12\xf5\xf5\x0d\xbd\xff\xfd\xb7|?\x91\x88\x8f\x98\xe3\
+\x00<?\x0cY\x16\x0b\xf6A&\x93o\xdb\xbe}\xfb\
+\xb7\xf6\xec\xd9\xf9\x87l6=\x04\x85\xf9\xe3(\x06A\
+ap&\x1aKG?\xf5\x8f\xffu\x7fk{\xe4\x84\
+\x15\xd3\xe9\x80L\x7f\xd702i\x01\xcf\xec:\xb1\x9f\
+\x1e\xbc\x09U\x05q\xd9\xb2y\xe0X\xd6\x07E\xa2\xd1\
+#t\xe6Q\xbaR\xf9\x15t\xcf\xb62\x96\xe9P\xb3\
+&\xfa\xadr\x02\x0b \xb8(\x00\x00\x94\x05A\xa9`\
+\x91A\x1a\xf4\xf6\xf6\x0e}\xedk\xff\xfco<\xcfg\
+\xb4F\x97\xe5<x~Te>\x9b\xe9\xee\x1e|x\
+\xf3\xe6\x0d?\x18\x1e\x8et\xa1\x98\xe1\xe3(=F\x9f\
+\x88\x0c\xa5\x86\xd6\xdf\xfd\xeb\x7f\xdf\x7f\xb8c\x8f9\xd4\
+LG\xe1\x92c\x19\xe4s\xf9\xec\xe1c]Qs\xd0\
+\xc8\xae.9\xbf\xa8\xca\x19\x82.\xd2K\x86iQ\x0c\
+\x84R\xae\x22m\xf0\xd1af\xed\x1a\xda\x0b(\xa8\x19\
+Y\x96/\xbc\x0a\xa0i\x0a \xa0\x07\x5c\x0a\x92`\xd3\
+\xa6\xc7N}\xe9K_\xf8\xae \xe4\xd2\x84\x10\xa4\xd3\
+C`\x18\x1bb\xb1\xccs[\xb6<\xf1\xe5\x03\x07v\
+\xeeFq&N\xa9\xbd\xf9\xba$\x80\xe4\x9d\x9f~\xe0\
+\xe1\xff\xdap\xe0\xa1\xc2\xbc>S\x14\xcef\xe7\xe0p\
+8\x9c\x12d\x16\xa0\xc3\xd5\xac\xe2:\x12\x06\xd7,o\
+Z\x81b\x15Pn\x11h\xf3\xd0:\xdd&\xf4\x98\x0a\
+\xbd\x99\x19\xafI\x00P\xfb\xd9]*v6H\x96\x0d\
+K\xd2HP\x1af\xa2Y\x9f\xda\xb5\xf9M\x9b\x1e;\
+i\xb7\xdb\xbf}\xf7\xdd\x9f\xff6\xcfg\xa3\xaf\xbe\xfa\
+\xf2\xaf[[Ot\xc28\xf6\xa0\x01\xc9\xca%\xd3\x12\
+5\xe9\xc4VCC~\xe5{[\x9f\xeb\xec\x8e\x0e\x7f\
+\xeb\x9fn\xff\xac\xd3i7|*,\x10\xf2\xa2\xafs\
+\x08\x7f\xb9\xf6\xb2\xeb\x08a\x0d\x9eB(\xac\xe4\x13\x8a\
+\x0a8\xe8\xdeo\xfc\xbe\x0dL\xb9\xfbz{\x00\xd4G\
+\xa3\xa8\xf6\x01\x8a\xc1c\x0e\x01\x1bt\xbfV\xf6E\x07\
+\x00`B\x10\x98\xdd\x96\x02\xf3\xd5-\xf7\xe8\xa3\x0f\xbf\
+v\xeaT\xeb\xe7\x8f\x1e=\x1cU\xaf\xd1\x98\xa71\x9b\
+\x16\x8f\xf4,\x1a\xda\x0b\xd0\x98\x94\xa3\xca.\x00\xe1W\
+\x8f\x1c8:4\x9a\xfc\xf1\xfd\xdf\xfe\xe8\xff\xaa\x08x\
+B\xcac\x08j\x9b\xc2h{\xbd\x07k\xafY\xd2L\
+\x87\x8e\x01\xc0\xee\xb4\x83\x10\x06\x90I\xa9\xe5\xdf-%\
+\x80\xd6\x1e\xea^{g\xcdf\xa0\xdb\x83\xb6!\xe8\xf6\
+1\xb4\xd9\x8cg\x06\x9d/\xb2p\x11\xe9\x00\x89\xe6\x0e\
+i\xbe\xb0\xb6\xa7-l\x8dh\xcf\x82\xd6\x9f4s\xad\
+2uiW\x94\x9e\xdf\xa0\xc5$\x5c\x8du\xfe\xf0s\
+\x7f\xf8\xd2Wj\xab\x02\x8d\xda\xad\xf9\x5c\x1e6\xbb\x8d\
+~\x0f\x00\xc0P\xff\x08v?\xb9\x1fO<\x7f\xea\xd3\
+;\x8f\xf6jK\xbe\xa4\xa0\xebmC\xee\xbey\x1e\x9f\
+\xa9M\x0a\x7f\x95m\xc42\xcc\x07.\x22#\xd0\x8a\xca\
+\xd8\x04\xb4!\xa4\x19@\xe6\xb1\x03s\xda\x15\x9dq\xa3\
+Y\xca\xb4\xb5,Xl\x1ac\xe8!ZC8\xb6w\
+ \x1e\xbdi\xfd\xfd\xf7\x1d;\xd1}P3\xfalv\
+\x9b\x1e\x92\xa6<\x85hd\x14\x0ca\xb0\xf3ho\xdb\
+,\xb4\x89U\xfa]\xd1fq\xbd\x81.j\x00\x00\xea\
+\x1b\x18S\xcch\xc3\xd0*N`\x1e93\xa7`\xd1\
+n\x12\xed'\xd3\xd2\xc0\xec~\x96\x1c\xa0\x02\x90\xea\xed\
+\x1f\x8b\xbe\xe3C\xf7\xffj\xc7\x9e\xd7\xb7\x99\x99nH\
+\xd2 \x04\xa2$\xcfx\x05p\xaaM\x0a\xc7\xa5\xc8|\
+\xbd\x99.z\x00hd\x91gH\xeb}\xab\x84\x0as\
+*\x96U\x8f7\xab\x00\xb3\x95]\xce\xfb0\x03-\xb9\
+\xfe\xee_=\xf6\xbb\x8d\xfb~[\xe4\x1e\xaa\xbf3\x89\
+,\xc6S\xc2k(1\x7f\xffB\xd0Ei\x04\x96\x22\
+\xca\x08\x02\x8c\x8d\xa7\xe9\xf8r.\x95\xf9\xc3\x8b\xda=\
+\xa5\x92%h\x83J\xa2\x8e\xcd 4$}\xfc\xefo\
+<\xb6\xf3\xd0\xd1\x8e\xce_\xdc\xfb\xc9\x7fv\xd8mn\
+=<\x0c\x0cGb87\x14\xdfO]O\xbf\x83\x8c\
+\x0b\x00\x887\x15\x00\x80\x22\x10\xd06\xc2d\xdc\x22\x9a\
+\xf9\x80\xd15\xb2jt\xedc\xcd\x80\x22\x09\xcc\x0c3\
+\x83A\x04\x90\xdf\xb0\xf9\xe5S6\x8e\xfd\x97\xef~\xf9\
+\xc3\xffPY\xe9\x9f\x0f(\xe3\x01C\xd1D\xc7/\xb6\
+\x1cy\x1a\xd6K\xb9\x94\xab\xc7\x9c\xd1E\xed\x05\x94#\
+\x93\x87`\x8e\xa5[\xc5\xd5\xcd`14\xb8YGN\
+\xe0\x81hk#\xd1\xf3\x1e\xcd\xc3\xb4\xdc\x92E\x95\xfe\
+}[\xbf\xfe=\xaf\xcb\xb1\xe8\xd9?\x1cx\xed\x0b\xf7\
+o\xfeZ\xffp:\x0a]Ei*\xa9(\x16QJ\
+g\xcf6\xbdi\x01\x00\x141\x09\xa6c3\x00\xe8}\
+\xe1\xb8\x5cC[\x80\xcc*o\xa1\xd4\x10\xad\x16\xeb'\
+w\x7f\xe4\xfaE\xbf~\xfc\xc5V\x14g\x0ck\x86h\
+\xd1\xf4\xedK\x00\x98\x02\x99|\xe3r~qY\x97h\
+\x82\xf2\xe9\x8d\x96\x04t\x02\x0b\xbd\xd1a^\xf3\x10\xad\
+9VO\x07\xa2&\xb5\xbc\xdbl\xd1\x9b\xce\x06\xb0\x22\
+Cd\xab(NR|\xcdt\xca7\x95KG%K\
+\x0d\xd6\xd0\xa1^\xed<=\xc4m\x1e\xa5+\xa8\xa5\xf3\
+\xc5|\xe0-\x02\x00\x9a\xe6\xaa\xf1J\x18\x9ffOD\
+\x03\x81\xc6|:\x09T\xeb\xe1y\xd3vA\xdd\xc1\xb7\
+\x1c\x00\xe6\x92,\xdcPm\x8c\xc2,\x05\xf20&}\
+jDO\x8c1\x8f\xd2]\x10]\xfc\x96\xb0\x01\xce7\
+\x95\xf0@\x18\x14\x8f\xee\x95J\xf20\x07\x82J\xae\xe3\
+7\xd7t\x09\x003\xa0\x12\xae\xa2\xd5\x06X\xc7\xea'\
+\x5c\xc9s\xae\xe9\x12\x00fH\x16\xae\xa8UL\x02(\
+vE\xe9\xe8\xe2\x05a>p\x09\x00\xb3Be\xdcP\
+\xabhd\xd1\xf1\x85b>p\x09\x00\xb3J\x16c\xf5\
+\x13\xd2\x85d>p\x09\x00sF\xe5\xc0p\xa1\x99N\
+\xd3%\x00\xfc\x99\xd3\x9b&\x1f\xe0\x12\xcd\x0d\xfd\x7f\xc7\
+\xc0 \xf9A,]\x89\x00\x00\x00\x00IEND\xae\
+B`\x82\
+\x00\x00+\xc0\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3>a\xcb\
+\x00\x00\x00\x09pHYs\x00\x00\x1b\xaf\x00\x00\x1b\xaf\
+\x01^\x1a\x91\x1c\x00\x00\x00\x07tIME\x07\xd7\x0c\
+\x1b\x16\x028\x83\x98\xbev\x00\x00\x00\x06bKGD\
+\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00+MID\
+ATx\xda\xec}\x0b\x98\x1dGu\xe6\xa9\xee{\xef\
+\xbcG\xa3\xd1s4\x92,K\xb24zX\x96%[\
+\xd8\x18l$\x1b\x1c\xb2!` vx\x85\x04\xb0\x9c\
+\x00\xbb\xd9\x0d!l\xbe\xddM\x80\x04\x16\xf2e\x13v\
+\x93\xfd\x92\xdd\x95\x8d\xf1\x02\x1f\xb6\xc3\xe2\xe5e\xcb\x18\
+Y\x0f\x83\xf1\xfb%\x8d\xde\xb2,\xcfhF\xf3~\xdc\
+\xb9s_\xdd\xb5\xe7\xd4\xdc\xfa\xaa{\xce\xed\xee{\xaf\
+\xee\x05\x99\x9dc\x97\xba\xbb\xba\xfbvW\xfd\x7f\x9ds\
+\xeaTu\x0d\xcc\xc9\x9c\xcc\xc9\x9c\xcc\xc9\x9c\xcc\xc9\xff\
+\x97\x22\xa0B\x91\xe0\x97\xdb\x01\xacM\xb8\xfd\x1dL\x1b\
+aNj!\xdd\x98\x1e\xc4t\x04\xd3\x03\x00n5\x80\
+\x14\x95\x00\xdf\x8d`\xb7\xe2\xb6\x1e@\xa40\xad\xc4\xfd\
+S\x85}\x98\x93\x9aK#\x80\x5c\x8b\xe9\x5ca?\x8d\
+ib\xa6\xe1\xb9\xa2F\x04 \xc6\x89\xab1\x0d\xcf\xb4\
+t\x11\x03\xb0S\xcd\xcd\x96\xed\xbaVFJ\xcb\xb1m\
+\x01\xb1\x98\x88\x03@\x0c\xe6\xa4\x16\x92\xc7\x94S;y\
+i;\x8e\xac\x13\xc2u,\xcbmL&]<\xe7\xa0\
+f\x90\x0b\x00\xdc\x17p{;\xa6\xaa\x10@\x16\xae\xeb\
+\x9bi\xe1\xb1\xb6D\x22\xe6\xdav\x5c\xc6bq\xe98\
+q\xb7\xae.\x1ekl\x8c\xdb\xf1xB\x02\x08\x1b\xe6\
+\xd4@\xad\x84\xb0p\x80*\xd9\x96\xd0\xd9)\x1d)s\
+\xd0\xd3\x93\x96CC\x19\x91\xcf\xe7,\xc7\xc9\x8de\xb3\
+\xf9F\xa4H\x07]\x8e)\x0a\x8bX\x89$\xb1\xd2\x00\
+\xf1\xfa\x96\x96D^\xcaz\xb9x\xf1\xfclG\xc7m\
+\xd0\xd0\xf0\x0e)\xe5\x95\xe9T\xaa5;:\x9a\x00)\
+k_\x09\xbf\xa4kd\x85\xef#\xab\xfe^<\xdf\x8a\
+\xc7\xa1\xb1\xb55k77O\xd9\xabWw\xdb\x00\xfb\
+\x12\xbd\xbd\x0f\xe4\x7f\xf1\x8b\x81\xfa\xba\xbatzr2\
+[P\x16.\xddZ\xb1\x06\x90\x05\xf0/ \xf8\xf9\xe6\
+\xe6\x86x\x22\xd1\x94\xbb\xf6\xda\x0f\xda\x1d\x1d\x9f\xb1[\
+Z\x16\xbb\xb9\x1c\xb8SS\x90\xbdp\x01\xd2\xe7\xd0\x22\
+Iy\xd1\xe0\x8a\xda\x00^98\x95\x83n\xceW\xf9\
+\x9cUW\x07-\x9b6A|\xfe|\x8855\xa9c\
+7\x9d\x1e\xce\xf7\xf5\xfd]\xe2\xa7?\xfd\xdf\xb9d2\
+\x19K&\xa7\x97\x14H B\x1e\x13\x8b\x00\x9fT\x7f\
+\x5c655\xc4\xda\xdb\xe7\xbb7\xdd\xf47\xcd]]\
+\xef\xb3\x12\x09\xc8\xa7R\xe0LN\x82\x10\x02\xc4\xd0P\
+\xe5\xa0\xd7\xa6\xa5DK\xad\x00\xaf\xdd\xbb\x9bk\x84\x00\
+\xbb\xb1Q\x81oSjn\x86xs\xf3\x02g\xf9\xf2\
+/M\xc6\xe3\xdb\xe2\x0f?\xfcYGJ\xe8\xc3\xc6\xd9\
+\x01\x90\xa5{\x82H\x10\x0b\xb3\xfb\x83t\xbe\xa5\xa5N\
+\xc4b-\xf2\xado\xfdj\xeb\xce\x9d\x0a|'\x99\x84\
+\x98\x10\x9e\x1b$\xb8\x8eSS\x15/\xab\x0f0\xff\xcd\
+\x1a<[\xd6\x80\xd4BJ\xb0\x1a\x1a\x08x\x22\x00\x11\
+A\x11\x22\xbe`\x01B!\xdf7\xd4\xdf\x9fm:p\
+\xe0s\x88\x9d;89\xe9.\x02\xc8\xcb\x00\x7f \x16\
+f\xf7\xf1d<\xe58\x8d\xd6\xb6mw\xb4^y\xe5\
+\xfb\xe9!\x22\x1eW\x0ct\xf1\xe1n&\x03\xaeeA\
+l\xf5jX\xb8p!\xc4\x17/\x06\xc0\xe3*Hm\
+[tm\x9f_\xf3\x86\xe0&\x93J\xed\x03\x99\xe0T\
+\x8a\x9cB\x10\xd9\xac\xc2\x830\xaa_\xb5\xea\x03c\xe7\
+\xce=\xddt\xf6\xec\xfd\xf5\x08\xbe\xc7\x17\x90%\x11\x80\
+\xfa\xf4m\x08\xe5tSS\xa2\xae\xb5\xb5M\xae\x5c\xf9\
+\x19\xab\xbe\x1e\x1cT)b\xd92\x80\xae.\x10\xf8\xb0\
+&\xb4A\xa2\xb5\x15&{{!36\x06\xd3\xd9,\
+1\x10\xe6\xa4\xb6BX\xc4\x10\xe8\xe6\x8e\x0e\xa8\x9f7\
+\x0f\xb2##\x90A?L\x9e:\x05\x12\xc9\x11\xc7\xc6\
+(\xdb\xdb\xff,\xd6\xd3\xf3H\xb2\xa9)\x8d\xb8\xe5\xc6\
+\x02\x1c\xc2X\x10\xf3\x86\xe8\x9c\x94u\xa9\x85\x0b\xdf\xd3\
+\xd2\xd6\xb6\x84\x98\x96ok\x03\x81\xaa\x87\xfa\xfau\xd8\
+\xeaGN\x9e\x84\xd1'\x9f\x04\xe9\xba0'\xbf|\x19\
+C\xc0\x9b\xb1A.\xbd\xf6Z\xc8\x0c\x0f\xc3\x94m+\
+s\x1cC\xcd`\xcf\x9b\xd71\xd4\xde\xfe\xdb\xed\x03\x03\
+\xf7\x01@f\xed\x8c\x19\x00Q\x8a\x06\x18\xa3\xd6\xdf\xd8\
+h\xa3\x9dO\xe4[[o&\x80S\xd8\xba\x01S\x0c\
+\x1f\xd4\xb0f\x0d\xf4=\xfb,$\xcf\x9f\x879\xf9\xd5\
+\xcadO\x0f\xd8h\x0e\x16l\xd8\x00\xe3/\xbf\x0c\xd3\
+\xa8\xa5\xed\xe9i@\xbf\x0d\x9c\xfa\xfa\x9b\x11\xc3\xef\x10\
+\x96c\xa9\x94\xd5\x06\xe0Fj\x80/\x00\x88\xdd\x98\xb2\
+\xaek\xa3mI\xb8 \xb7`?\x1fr\xe4\xf8\x0d\x0d\
+);?\x8e\xc0\xd3\x83\xe7\xe4\xd2\x90\xf1\xd3\xa7\xa1e\
+\xc5\x0a\xb2\xfd0\xf6\xfc\xf3\x90Es\x9cH\xa7\xc1\x11\
+\xe2*\x07 AXN\x03\x88\xff\x8a\x89\x94|(\x01\
+\xfe\x92\xbc\x7fL\xf5\x96e\xb9R\xc6\x9ct\xa6u\xa2\
+\xfb\x08@C\xa3\xf2:\x1b\xd7\xaf\x87\xe1\xe3\xc7\x01\xe6\
+\xd4\xfe%#.b1~\xe6\x0c$\xd0\x1f8\xbfw\
+\xafr\x0e\x85\xe3\xc0\xc2\xa6\xa66\x89\x18\x12\x96\x08\xb4\
+ l?\x1fB\x00\xc3(\x00\xd1h\xdb\x16\xe4\xf3\xb1\
+\xa9\xfe\xbe\xba\xb1\xbe~\xd02\xff\xfd\xef\x07'\x9f\x87\
+9\xb9\xb4\x84\x9c\xf0f\xd4\x02\xd3\x14\x9f)\x98\xe6\xfa\
+e\xcb\xea\x00\x09\x80\xe6\xc0\x22L\x17\x95\xda\x0d\x14\x98\
+\xf2R\x0a\x89\xbb\xd3\x93I\xc50-\x0e\xc0\x9c\xd3w\
+\x09J\x1eU>\x8e\xc7\x80@\x7f@\xcbT\x12\xb1S\
+a\x03)D9\x91\xc0v\x001N7Ii\xe5\xd2\
+i\x7f\x1f4\x93\x99\xeb\xea]\x82\x22\x1d\x07t\x840\
+W\xc8\xcb\x12v3\xa6\x5c\x10\xa6e\x85\x82]Pw\
+\x88<\xaa{9\xebAs\xf0_rb\x1a\xa5\x10\xa0\
+\xf1!\xec\xdcDBp\xbc\xa2}\x00\x05>%\xaf\xfa\
+\x879\xf5\x7f\xe9J\x11\x5c\x1c\xcc#\x0c\x01\x13a:\
+\xbf\x14\x02\x9c\xc24\x8d\xa9\xb1@\x00\x1f\xf8\x05\x02\xcc\
+Q\xe0R\x13\xd30\xa5\xd1\x00j\xab|\x00L)\xc2\
+\xb6\x14\x02\xf4`ZP0\x01\x16\xfe/\x01j\xaa\x01\
+\x1cL\x8f\x9f=\x0b\xcf\xbe\xf6\x1aLb\x00\xe3\xf2%\
+K\xe0\xb77n\x84\xc5\xe8\xcc\xfc:I?\xda\xe3\x1f\
+vw\xc3\x99\x81\x01hE;\xbd\x03\xfb\xec7\xad\x5c\
+\x09vU\x09\xc0:\xfa\xb4o\xb9\x1a\xdbRM\xc0<\
+LycW\x8cTY\x03\xd03\xee{\xe9%\xe8\xc5\
+.LKK\x0b,\xc6q\x85!$\xc1?\xfd\xecg\
+\xf0\xc1\xed\xdba\x0d\xe6\xfd:\xc8q,\xdf\xfd/\xbc\
+\x00\xf5\x18F_\x82\x04w\x1c\x07\x0ea\xf0\xe6,\xc6\
+\xf0?\xbce\x0b\xc4\xaa\xe4\x03\x88\x82\x060\xe0\xab\x13\
+`\x170\x1d.\x95\x00Y\x00\xea\x01\x08\x04\xdab\xa3\
+SU\xd2\x009L\xf7\x1f;\x06yl\xe9\xef|\xe7\
+;\xe1\x8a+\xae\x80:\xdc\xef\xef\xef\x87\x17\xb0\xb2\x1e\
+:z\x14nCM\xb0\x1a[\xcb\x1bYNNN\xc2\
+\x0fO\x9c\x80-W]\x05\xdb\xb6m\x83\xc5\x18IM\
+\xa368\x81y\xcfc\xd4\xee~,\xe7\x1d8\xb8\x16\
+\x93\xf2b\x09\xa01\xf2m\x09C\x0b\xb1$L\xa1\x0c\
+\x02@\xbc\xe0<\x143\x01\xb2\x0a\xe0\x7f\x17\x072\x00\
+#\x8b\xef\xba\xf9f\xb8\x0a+\xa7\x09\xc7\xb4\x85\x10\x8a\
+\x08\xabq\xa0i\xdf\xbe}\xf0#\x8cm\xff\xd6\xda\xb5\
+\xb0\x0aG\xbf\xde\x88r\x1a\xe3\xf2\x8f\xbc\xfa*\x5c\xbb\
+c\x07\xec\xda\xb5\x0b\x96\xe1\xc0M,\x16#\xb0T9\
+\x97/_\x0e\x8f=\xf6\x18|\x17\x07\xd5\xde\xbbf\xcd\
+\xc5\x91\x80\x1c\xbe\xe2C\xc9\xc2\xc5\x94+wF\x90\xf0\
+ld\x15\x09\x90G\x90\x1fB{O\xc3\xc8\xb7\x16\xc0\
+o4\xad\x5ci\x81\xcb.\xbb\x0cn\xbd\xf5VUY\
+{_y\x05~\x03\x8fW&\x12\xf0F\x923h\xca\
+~\xf2\xfa\xeb\xb0\xfd\x9ak\x14\xf8\x1d8tk\xdb\xb6\
+1\xb3\x18\xb6\xdd\x8ef\x8e\xcaH$\xf8>\xfaA\xef\
+Z\xb9\x92HP\xb9\x0f D\xb1)v\xa2\x82I\xa1\
+\xc6{\x94U$\x00\x81\xff#\x1cD\xb2\x10\xfc]o\
+{\x1blA\xfbg\xc07B\x15E\xad\xe5\x96[n\
+Q\xfb\x8f\x1d>\x0c\xb7tv\xc2\x0a\xac\xac7\x82\x9c\
+\xcdd`?\x9a\xb2m\x08\xf0\xdb\xb0\x9cK\x97.5\
+\xe0\x1bQZo\xeb\xd6\xad@\xb2\x7f\xff~\xf8qo\
+/\xfc&\x96\xdbv\xdd\xaa\xf5\x02\x1c\xde\x9b\x8b&@\
+\xbd\x0e\xf9V\xd1\x04\x10\xf8{\xd1\x03\x16\xc8\xfc]7\
+\xdd\x04\x9b7o\xf6\x83\xcfI\xa0Z\xcd\xce\x9d;\xd5\
+\xfe~\xf4\xa0w\xa2\xfd\xec\xb4,\xb8\x94\xe5\x5c.\x07\
+\x87p\xc8|\xeb\xd5W\xc3\x8d7\xdeHN\x9f\x01\x9f\
+\x0b\xd5\x81\x22\x81\x85\xe5:x\xf0 \xec\xc5\x89\x1d\xef\
+X\xb4\xa8l\x12\x18\x87\x9d\x9b\x00A\x98\x96J\x80U\
+\x05'P1G\xcab&\xa0\x22\xf0\x1fC\x8f\xd7B\
+\xf0oz\xeb[a\xe3\xc6\x8d\x0c\xfc0\x12PE\xd2\
+\xfe!t\x98n\xc4YH\xcb\x84\x80KQ^w\x1c\
+\xf8\xf9\xf8\xb82k7\xdcp\x03\x03?\x8c\x04\xa4\x0d\
+\x89\x04\x87\x0e\x1d\x82}\xa3\xa3\xb0\x0b\xeb\xaa,\x12\xe8\
+k\x85\xf0;\x82\x88a\xbe\xa0\xcdW\x95J\x80\x13\x98\
+\x5c\xea>\x04\x98\x80r(@*\xe9 MR@\xe0\
+\xa8R\xba\xba\xba\x18\xf8\xa5\x90\xe0\xadH\x1c\xaa\xa0'\
+q(\xfaz\xec\x1e.\xbd\xc4\xc6#\xceK\x09O%\
+\x93p\xe5\x95W\xc2\xf5\xd7_\xcf\xc1\x8f&\x01iE\
+\xe5\x08?\x89\xb3\xac\x0e\xa5Rpc}=\x01[\x96\
+\x06\x90|\x22\xaa(`\x09\xe1\x04\xe0'\x84S\x85@\
+\xd0kX\x08\x0b\xc1\xbf\xfeMoR\xe07`_\xb8\
+\x5c!\xe0\xa9\xfbD\x04\xa2J}\x06\xbbP;\xa8O\
+\xed8\x97\x06\xf8\x98\x9eE\xbb\xbf\x09\x01|\x13\x96\x13\
+\xdf\x95\xde\x99@!@\xcb\x22\xc1\xa6M\x9b\xd4\xbdO\
+?\xfd4\xf4\xe0v96\x9ep\xe1\xb8H\xbf/g\
+\x11\x96e;\x81\xf9\x5cN;\x0f\x17\xa5\x01\x12\xe8\xc1\
+_\x8f\xdd\x9du\xeb\xd6U\x00\xbea6\x01\xbf\x08m\
+\xe3u\xd7]\xa7*\xe89\xecF^\x83N\xe1\xc2_\
+\xf1\xdc\x84\x0b\xf8./\x22\x117\xa0Y\xbb\xf6\xdak\
+\xe9\x1d\xbd\xe0WD\x82\x0d\x1b6\xa8\xf2\x8e\xe0\xb8\xbe\
+\xdb\xdd]\x1e\x01x\xdcF\xe41\xc5\xcb!\x00q\xae\
+\x0e\x13\xeb\x05T\x10\x08\xba\x12\x9d\xa1y\xed\xedP_\
+__\x09\xf8\x8c\x044\xfd|\xc7\x8e\x1dj\xffE$\
+\xc1V\x22A6\x0b\xbf\x0a\x19\xc0g\xbf\x8c\xdb\xf5]\
+]\xd4\xa5S\xef\xa6A\xd7[-\xe5\x92`=\xce\xbc\
+\x9aD2\x0d`\x0f\xa8$\xd1D\xe3f@\xe5N\x95\
+\xab\x01\x94\x13X\x85^@\x13\x82Ca^\x0a\x7f\xba\
+\xae[!\xf8&O\x93\x80*\x9cZ\xdaa\x9c\x0a\xb5\
+9\x91\x80\x05\xe94\xfc2e\x10\x9fy\x04\x09\xb0~\
+\xedZ\xe5\xc5/X\xb0\x80\xde\x87\xbd\xb3!\x82\xda/\
+\xd9\xe4\xb5bW\xd9\xe9\xef\xa7\xfa.+\x0e`\x86\x83\
+\x0d\x01\xdcrM@KaDPV!\x10\xd4\x8f\x11\
+\xbd\xc5\xd8B\xe2\xf18\x85@\x89\x04e\x82\xcfI@\
+\x15D$\xb8\x1a\xb5\x0b\xed\x1f\xc3 \xca\x06\x1a\xeeD\
+\xc7\xe9\x97!C\xa8\xcd\x8ec\xbab\xf5j\xe5\xbd\xb7\
+\xb7\xb73\xa0=Z\x80\x9d\x8b\x02_iK\xbc\xbe\x1f\
+c\x03\xb2\x02'\xd0l\x0d\x86-\xe5\x10 W\xe86\
+\x08)/:\x104\x85v\xec\xd4w\xbf\x0b]\x1f\xf8\
+\x00\x15L\x93\xa0b\xf0It\xa5R\xab\xa3.\x17U\
+\xdaI\xfc8u\x1d\xe6\xcfC\xa7\xa9\x962\x82~\xcc\
+)\x0ca\xafY\xb5Jy\xed\xf3\xe9\xe3\x18!\x02[\
+~\xb4&\xe0\xe0St\xf0\xd8\xfd\xf7\xc3TooE\
+\xdd@\x1ff\x84!>0W\xceX@\x0a\x93M\xa9\
+J\x81\xa0\x81\xe7\x9e\x03\x81\x85[\x7f\xc7\x1d\x8c\x04\x0c\
+\xfc2I@\xad\x8f\xba^d\x1a\xce`\xe8u5\xe6\
+\xb5NL@-d\x0c#w\xaf\xb6\xb5\xc1jtl\
+)\x96\xd1\x86\xfb\x1e\xf0\xc3\x81\xe7\xfb\x81\xe0\x9fx\xf0\
+A\x18x\xe6\x99\xca\x22\x81\xc5\xc7\x02 U\xae\x06\x88\
+\x11\xf8\xbc\x1bH\xc0U\xe6-?\xf5\x94Rk\xeb\x7f\
+\xf7w\x19\x09\xca\x04\x9fU0\xb5B\xdd}:\x87\xa1\
+\xe6\xcb\xf0|\x0b\x06d\xaa)\xe3\xe8\xc7\x9cC\xb3\xb3\
+j\xc5\x0a\xea\xceR,?\x08|\xb6\x0d!\x01\x07\xff\
+\x81\x07\xa0\xff\x17\xbf\xa8|>\x007\x01\x16\xe6\x95\xae\
+\x01\x9e\xf38\x81v\xb1\xd0\xe2E\xcc\x07\xe8\xc3\x82\xd1\
+\x8bv}\xf0\x83^\x12T\x02>\xabx\x02\x84\xbaO\
+T\x99\xbdX\x91\x9dx\xae\x09\xc7\xe1\xab!I\xfc\xed\
+^\x8c\xe7\xaf\xec\xec\xa4\xee,9h\xc1-\xdd/\x91\
+$ \xcd\xa5\xc1?\x8ej\xbf\x0f\x83@\x15\x89\x94^\
+\xf5\xcf\xc6\x03\x14\xb6\xa5j\x80D\x81In\x0df\x04\
+\x11\xbb\xa9\xf0\x1b>\xf4!M\x02\xea!P^\xe5~\
+\x81\xf1\x9c\x09 U\xa9\xfdX\xa1\x1d\xd4\xa5\x1a\x1d)\
+\x7fU$\xe9\x05\xbf\x0d\xfa\x11\xf8\xe58H\xb3v\xed\
+Z\x0d>{~\x08\xe0\x81\xe6\x80\xde\x99F?\x95\xcd\
+\xff\xcew\xa0\xff\xe7?\xbf\xb8\x09!\xbc\x17\xa00\x14\
+\x05Le9\x04\xc8b\xb2\x00D-f\x04\x11\xcb\xe9\
+\x857~\xf8\xc3\x8a\x04\xd3\xd3\xd3D\x02\x06ri\xe0\
+s\x12\xacY\xb3F\xed_@\x22,\x01\x09\x8d#\xc3\
+\x15}\xef=5\xbf\x1d\x06/[\x05\x9d\x18\x8a^\x85\
+N_sss1\x13\xa4\xf3J6\x01$\x1a|\xea\
+\x1d\x1d\xfb\xf6\xb7\xe1|(\xf8\x95G\x02\x89\x12n\x01\
+\xd3L9\x1f\x86\xc8|^\xb8\xb6-\xcc\x8fVwN\
+\xa0b;\x91\xe0#\x1fQ\x11\xc2T*E$\xa8\x10\
+|N\x82\xcb/\xbf\x5c\xed\x0f\xc6l\xd5\x04\xea\x87\x06\
+C\x14\x00\xe7\xc7t\xfbB\x18^\xb3\x16:\x16/\xa6\
+\xf9\x09\x14\xcb\xa0\xdfc\xcf/\xc7\x04\xe8\xfb\xb4\xcdO\
+$\x12p\xf4[\xdf\x82>\x9c\x02w\xb1\x22\x03\x06\x83\
+0W\x10\x96\xa2\xfc\x09!zF\x10'\x80\x84\xea\x88\
+*8\xfe\xde\xc6\x8f~\x94H@\x9a\x80\xe6\xb2W\x02\
+>S\x85\x04\x18\x01G\x95=\x1c\x8bC;H\xa8\x1f\
+\x1c(iE\xac\xd4\xc2E0r\xc5zX\x82\x91\xb8\
+\x15+VD\xb5\xfc\xb2m>E\xfa\x08\xfc\xeeo~\
+\x13\xfa\x9ex\x02\xb8T\xee\x03`\x81\xfd\xf8T2\x1f\
+\x80 p0\x05G\x02\xab'\xe7\x91\x04T9\x9b~\
+\xff\xf7iK\x9a@\xf7\x0e\xe8\xf8\xa2\xe2\x04\x04\x1c\x01\
+H$\x18\xb5I\x13\x1c\x81\xc4@\x1f\x84Iz\xe1\x12\
+\x98\xdc\xb0\x19\x96,\x5cH\x93R\xf4T\xb5\xa0\xf7)\
+\xcb\xfb\xa7\xf7\xa0\xdfS\xe0\xdfw\x1f\x9c/\x1b\xfc\xe8\
+H\xa0\xe0>\x80\xc20_\x0e\x01\xd2\xd4\x0d,t!\
+X$PJ\x95\xaa)T\x11\xf4\x9b\x9b\xff\xe0\x0f\xe8\
+\xd0k\x0e*\xf6\x0bH4\x09h\xee\x1d\xb5\xbcQ4\
+\x07\xf3\x0eK\x88\xf7\x9f/\xba\x1cYfI\x07$7\
+]\x05\x8b\x10|\x9c\xc5C-\x95\xa9\xf6\x88\xae_\x10\
+)\xe8\xf9\x06\xfco|\x03zq\xdc\xbf\xaa\xe2q\x02\
+gafY\x1a\xd3r4\x805k,\x80\xb6\xc2\xb6\
+k\xf6u\xd0y\xaa\x10\x22\xc1\xc7>\x06$SSS\
+D\x82\xca\x9dB#d^hN\x81j\x81\xe3Wm\
+\x87\x16*x\x7f\x0fx%\xbbd\x19\xa4\xf0\xdc\xc2\xf6\
+v\x1a\xce\xa5{\x82Z=\x039*\x8f\xbc|\x02\x9f\
+\x9c\xbe#\xf7\xde\x0b\xbd\x07\x0f\xd6\xe4\x13qEjK\
+\x14\x9d\x14J\x98\xc6\xca]&\xae\x90\xfc\x5c\x92\xb2f\
+\x9f\x87Q\xc5\xd0o_\xf9\x89O\x00I2\x99\xac\x0a\
+\x09\x08\xf8\x86\xc2\x9c|\xda\x9f\xd8\xbe\x03\x1a\x9f\x93\x10\
+\xeb{\x1dHr\x1d\xcb!\xbd\xed:hok\xa31\
+\x06r\xd0\x02\xc2\xb5\xac\xe5G\x9a\x00z\x1ei!\xfa\
+\xcd\xc3\xf7\xdcS\x0b\xf0\x8d\x0f\x00\x82\x22\xae\xcc\x04@\
+\xb9>@ca\xea\xf6\xec\xf9\x00\xc2\x125\xd3\x00F\
+\x13`\x05I$\xc1\x9d\xbb\xa9\xd5h\x12T%XD\
+ \xe8\xf1\xfa\xe4\x8e\x1b\xc0z\x86L\x0f\x96u\xc7[\
+\xa0\xad\xb5\x95\xc2\xca\x1a\xfc0{\x1f@\x04v\x1d\xa9\
+}rF\x0b\xe0\xdf\x0d\xbd\x07\x0e\x18\xac\xaa\xaf\x02H\
+e\xb38\x80\xd6\xe2\x84\xa9[\xb2\x09\xf0;\x10&\xc6\
+,,pi\xaf\x16\x04\x10f\xd3\x87$\xa0\xedf$\
+\x81\xd6\x04\xd8;\xa8d\xf8\x98\x81Ej\x98\x06\x91\x08\
+\x9c\xa9\xeb\xdf\xa6\xce\xb5\x22H\x14\xd7\xa7s\xfa\xfa\x08\
+\x89\xd4\x02\xa4\xf6\x09|\xd2<G\xee\xd9\x03\xe7\x0f\xec\
+W\x95)M\xc0\xbe\xaa\x22u/@Xlv\xb7\xd0\
+f\xbdd\x02\x18\xb5a\xf9\xd8dY\x98I\x0c\xab\xbe\
+({\xe3!A\xff\x13H\x02\xcc\xdc\xf4\x89\xbb\xa8p\
+\x86\x04\x95;\x85\xb4\xafI@\x80\xeb~=\xc5\x0d\xc8\
+9+e\xbc\xbe\xa4p/\x05w\x14\xf8\xd8\xf2\xbb\x11\
+\xfc\xbe\x83\x08\xbeg)\xdc*s\xc0\x94\x8d~\xdd\xe2\
+\x91@(\xe0\x99\xa8 \x0e\xa0Dz\x08 \xabl\x02\
+\x84N\x9e\x07\x8aBm\xf5\x1f:\x00\x82\x82Ew\xfe\
+!\x90LNN\x96J\x82\xa8<\x02\x9cH\xa0[k\
+\x98\xe9\x882\x03\xcc\xe1#B5b\xcb\xef\xfe\xfa\xff\
+\x82~l\xf9\xde\x89\x15R\xfa\x9d,\xb7z\x0c\xf08\
+\x81\x5c\xb1\xcar|\x00\x07\x93\xadv\x1c\xcb7\xb0\xa0\
+|\x00\xb7j\x04\x10^\x06H\x93g\x9a\x0a\x91\x80*\
+\x10\x83E\xbb?\x09\x9a\x04\xb9\x5c\xae\x1c\xf0\xc3\xc0\x8a\
+\xea\xda\xb2\xfc \x22h\x9bO\xa4\x22\xf0\x8f\xde\xf3?\
+\x14\xf8$B\xdb}\x93\xfcj\xa0\x0a\xda`\xe9\x8e\x1d\
+Eq\x91\x88\xa1\x82\xb2\x1c\x02d0\xd5S\xf9\x8a\xf6\
+\x02p{\x91\xc1 1{G\xf2}\x01&\x0d<\xb1\
+_\x9d\xd0$\x98\x98\x98 MPi\xb0(\x1a\x5c\x1e\
+O\x08#\x85\x0f\xfc\x06\x02\xff\xee\x7f\x86\x0b\x07\x1f\x07\
+\x0d\xbc\xb6\xfd\xc2\x0f\xbe9W!\x09h\x95\xd0%\xf8\
+\xe9\xd9\xe2\xed\xd8\xb5]\xb9\x12\x06\xf0c\xd3\xe1\xeen\
+6%\x8c\x12a\xdaP\x0a\x01\x86\x0b\x01\x03\xcbt!\
+@\x9a\x82V\xcd\x04\x08\x13k\xe6\xea\xdf\xf7\xd0\x99\xfd\
+\xc1'\x1e\x87c\xb8\xd3u\xe7\xa7\xc8h\xc3\xf8\xf8\xb8\
+&A\xa5&!\x8a\x08\xa1\xa3z\xfa\xbc\xd6$4'\
+\x81\x02G\xc7\xef\xfe'\x188\xb8\x8f\xa9}U\x8c`\
+\x0dP\xb2-\xa0%b\x17\xe1,\xa8%\x08z\x1b\x8e\
+Nf\xb0\x1e\xce>\xfc0\x9cz\xe8!\x98\xec9\x07\
+R\xba\x8c\x00\xda\x09 l#\x090N\xea\xc4L\x0a\
+\xf5\x93\xd6\xb6*\x0e\x07\xfb\xb4\xbd\xd0\x15\xe2qZ\xa5\
+\x87\x04\xbeD\xa25\xc1>\xaa)$\xc1\xbf\x06iH\
+p1NaI$\x08\x13r\xf84\xf8'\xef\xfe\xef\
+\x04\xbeQf\xd2\xef\xe4rm0\x8b nq\xe7\xb0\
+\x19\xa3\x92\xed\x1b7\xaa\xd5@[q\x90\xcb\xc11\x93\
+\xd7\xb1K\xf9\xf4W\xbe\x02=8o\xd0\xc9f\x89\x94\
+\xa8\x05:qk\xb1U\xdf\x09\xcbx\xa9\xeb\x03Lb\
+ZU\x98\x14j\x151\x01\x12.2\x10\xa4\xc0\xd7\xd4\
+d\xc0\x1b\x8f\xc5\xf2\x94@\x18]6\x84$8\x8e\x07\
+\xeb\xee\xfc7\x80B$ \x9f\xa0\x1a$\x88R\xf3\xec\
+\x1c\x82O\xb1\x03\x8aW \xf8\xff\x88\xe0\xff\xd4\x00m\
+\xd4\xbf\x12\x03\xbe\x1fx\x90\x5c\x13$0p\xd4\x8a\xc3\
+\xcf\xf3\xb0\x85/\xe8\xea\x82:$X\xb2\xb7\x17z\x10\
+\xf4\xd7\xbf\xf8E\xe8\x7f\xea)\x02\x9d\xd7+5P\xab\
+\xe8\xac`h lK!\xc0\x94\xf1\xcd\x84\x89\x03\x98\
+@P\x85\x91@\xfd\xa3\xfe\x0c\xc9}\x00\xf3pn&\
+4\x11\x86\x0eaE\xe3\xce\x15w\xfe\xb1\x02C\x93\x00\
+\xa5\x9af\x80\xf2B[>\xc5\x13\x9aT\xcb\xff\x07\x18\
+:\xf0\x98&v \xe0\x9a\x1c\xca\xbcz\xce7.Z\
+\x0c\xcd8\xef\xa0y\xf9Je\xcb\xeb\x90T\xf9\xa9\x14\
+\x0c\xe0\xea)\xaf\xec\xd9\x03=\x07\x0f\xd2\xc2\xd0%M\
+'wY$PW\xa3\xc16\xda\x09,\xd4?\x9b\x10\
+b\x19\x13P\xbe\xcd\xe7N\xa0\x06\xd7\xa8\x1a\xa6\x1d\xfc\
+d\x11\x052\x00\x91\xe01*\x1e\x92\xe0\xdf\x01\xc9\xd8\
+\xd8\x98!\x01\x97\xaa:\x85\xd4\x85\xd4\xe0\x9f\xbe\xe7\x1f\
+`\xf8\xe0O\xfc:7\xc0\xd6+\xf0\xd1_h\xec\xe8\
+\x84\xc6\xce\x15\xd0\xd4\xb9\x12\x9ah\xa0\xaa\xa1\x11\x01\x9f\
+\x82!\x5c\x0b\xe1\xd87\xef\x83\x0b\xcf=\x0fCG\xba\
+\xc1\xc9\xe5\xcbjb\x82\xf0\xb1<\x9a\xca\xd3\x962\xa5\
+\xce\x09\x5c\xab\xb16A\x04\x1f\x8a\x13'O\xc0\xe4D\
+\x12\x12-\xad\xf4gJ\xe8\xa1\xd1\xcc\xd4\xff0\x80\xf5\
+\x83\xf4\x89Y*\xdf\x00\x8e\xfb\x9a\xce&\x7f\x04Ip\
+\x0a$\xac\xbd\xf3O@\x93 \x9b\xcdF\x9b\x82\xca\xcd\
+\x80i\xf9MM\x08\xfe\x7f\xc3\x96\xff\xa8GMj\xa0\
+\xb5\xc3\xd6\x04\x89\xb6v\x88\xcf\x9b\x0f\x89\xf6\x85\xd0\xb0\
+t\x194,\xe9P\xc5N\x9e{\x0dF\xbb_\x863\
+\xdf{\x10F\x8f\x1d\x85\xb1\xd3\xa7\x11pG\xdd\xebJ\
+]\xd6\xb2\xc2\xc6\x84\x05%\x16\x08\xb24\xb6\xa5\xc7\x01\
+\x8c\xc8Y\x04\x98\x1e\x1c\x84\xd1\xd7z\xe8A\x8a\xcd\x89\
+\xd6\x19\x22\xc4\x1a\x1aT\x8a75\xd19?\xf8b\x96\
+j\xd4\xa0[\xb3T=\x8b\x0e\xfa#R\x8a\xdc\xd2\x1f\
+\xe4\x1e=\xf4\x138\x8d\x99\xab?\xf1'\xaa\x1b6<\
+<\x5c\xc9\xcc\xa2H\xb3\xa0\xbd}\x0d\xfe\xab\xf7|\x0d\
+F\x0e>\x0a\x16\x16&\x86\xf3\x06c\xd8 b\x04\xf4\
+\xbcv\x88\xb5\xb6A\xbc\x0d\xc3\xcdu\xf5\x90\x1d\x1b\x81\
+\x14\x0e?\xa7\xce\xbf\x0eC\xcf<\x09\x13gN\xc1\xf8\
+\xa9\x93\x90\x9bN\x83\x06\xdbU\xb6\x96\x90*\xecke\
+\x8b\xfb\xaez\x8f\x92\x09\xc0\xc6\x02X\x07\xa34\x02\x98\
+\x86f\x88`\x9c@\x17U\xad6\x039T]V\x22\
+A\xeb\xd4\x12!\xd4\x90q\x1cU\xa3M3]\xeb\xeb\
+ \x86\xf9v]\x0cbxM\xac.A\x8e\x8ai\xc9\
+\x8a\x04\x5c\xbd\xebd\xc07&\x82i\x05 \x12<\x0a\
+\xa7\x9d<t|\xe4\xd3d\x07\xd9\xb8A%\x91B.\
+fR\xc7\xe0\xc1\xbd`\xe5s\xb0\xf4\xd6\xf7@\xbc\xa5\
+\x0d\xa4\xeb@z\xf0\x02\xa4\x07\xfaa\xe2\xe8K\x0a\xf0\
+\xe9\xf3\xbd\x90\xea\xeb\x85\x5c*\x05\xb2\x00\xb2\xda\x16\x12\
+\x91Y\x17\x1f\xd4\xbe.\x93\xc7G\xf08\xcc\xa5p\x80\
+\xea\xd64>\xe3z\xa8T\xee\x22Q\xf5\x1a\x13\x1f\x01\
+\x04=\x84\xcdDq\xd2i\x95\xb4\xa4\xf1%l\x04<\
+^\x8f\xa0c\x8a\xd7\xd5\x11\x190\x0f5FC\x03n\
+\x91\x144W\x8f\x92%\x0al\x93\xba\x99c\x1em\x0a\
+6\xadP(\xa3%x\x22y\xf5\xf4)\x189\xfc\x0a\
+,\x5cd>\xcd\x8eP\xefl\x1be\x02\xc8\xbc\x9c\xc5\
+\xcf\xd0\xd2\xdd\xaf\x80\xf5\xdc\x01\xc8\x10\xe8\x17\xfa 3\
+<\x00n\xde-\xc4Hf\xc0\x93>\xa0M\xeb\xd6\xb5\
+\xe7j\xa0=\xa0\x83\x97\x0cZ;\x16\xf2\xa4,\x85\x00\
+|J\x98\xe6P\xa6\xc2?\x1b\x07l0\xc8\xb6K\x9a\
+\x9e\xe4f\xd3\xe8\x94!1\x92\x009KOW\xa3$\
+f\x88\x81\xa4 \x22\xc4(\xd1q\xa2@\x12\xcc\x07\xcc\
+\x13q\xd2&D\x06L\xb1\x19scS\x9eecR\
+\xf9\xb4U\xfd\xde\x13N\x0c\x1e\x1eq\xe0\x86\xee\xa3\xb8\
+8C\x1b\xfb\x12\xb9r\x7f\x80\x9f\x1b\x18\x18\x80G_\
+\x1b\x82\xf5'O\xc3\x8a\xf3'\x11,\xa3\xbe\x15\xe8T\
+F\x0d\xbekZ9#\x81O\xdd\x9b}a\xd1}\xfe\
+\x9e\x91k\xe2&\x11&\x80O\x09\xd3Z\xa0\xf2\xbf\x1c\
+\xea\xd7\x00\x94J\x8f\xf2\xd1V\x83\xaf\x13H$G\x06\
+\xf2\xb9\x8c\xaa,\x07\xf3\xb2\x9a\x1c\x82\x92!\x8b(v\
+L\xe0\xdbJ{\xa8\xd4\xdb\xd9\x05{\xdb\xd7\xc1e\xab\
+\x96\xc1\xca\x95+\xc9N3`\xab\xe5\x14\xea\x91\xc3\xf5\
+]\x1b\xe0\xe9\xb1qU\xc6\xe5}'u%k\xb0\x8d\
+\xf3_8\x90\xae\xb6\xc5Av\xde\xdf\xe5\x05\xe1\xd1\x00\
+\xa5\x9b\x82B/ \xc0\x7f\xab\x94\x00\xd2\xbb\x15V\xa4\
+\xd7/\xc0\x03\xb6!\x02O\xe6\x9c\xb9\xd6\x80\xed\xcf\xb7\
+\xccy\x22\x90p\xf3\x00\xb9<\xbc\xbex=\xfcta\
+\x17\x5c\xbe\xearZB\xc6\x10\x80\x83Y\x09\xf8\x81\xd3\
+\xcb\xe8\xa3P\xca\x7f\xa6\xa0\x85\x96\x9f?\x81\xc7\x1al\
+M\x04\xcfV\xb7j\x9f\xca\xf7\x01o\xda\x15\x11\xc4\x00\
+\xef#\x82\x14\xe1\xa8\x8aB\x85\xc9*\x13\xc0H\xa1\xc0\
+!\xc2\xe2\xb9\x82'C\x10\x03\xac\xaf\xb5s\xf0\xb96\
+\xe8]\xb6\x1e\xf6_\xb6\x03\xc1_E\xe0\xd3\x14p\x05\
+~I\x12=\x88\x14\xda\x15\xd4$ _\xe3\x19a)\
+0;\x91\x04\xbeV\x8f\x09\xbcdP@\x878}\xfe\
+\x16\xcfM\x01]\xa4\xfd\x8b\xd0n\xa0`\xe7+%\x00\
+'\x01!`\x8b\xa8\xd6o\xd4\xb9>\xd6\xc9\xa7\x0d\xb8\
+\x99\x10^R0\xf0\x8df8\x8fj\xff\xe0\xe5\xd7\xc1\
+*\x04\xfd-oy\x8b\x06\x9f\xc0\x8a\x021\x0a\xf4\x92\
+\x9dG\x8a\xfd\xd3\x17\xc2$\xcf\x14^\xba\xb3\xe7\xb8\x01\
+\xdc\xa7\xe2\x0d\xa0f\xdf\xeb\xf4\x05\xb4x\x03<\x0b\x8a\
+q\xd1\xa1`\xabv&@h\x14\x22\xc7y=\xac\x15\
+\xde\xe3\x00\xff\x00\x8a\x98\x81\x00\xf0\xfb\x96w\xc1\xa1\xd5\
+o&\xd0\xd5\xa2QZ\xed3\x09V\xff\x17\xed\x0f\x08\
+!|\x8b:\xd1\xf1s\x85\xd9R\xcbz\x8e\x15#\x81\
+q\xe6\xfc\xf1\x0d\xbf)\xf4\x86\xc5\x85\x0f\x80h-\xa0\
+\xf1\x1154\x01Rw\xcdJm\xfd,\x8f\x1ds\x0d\
+`\xb4\x03\x07\x7f\xc5\x06xb\xcd\x0d\x1a|\xfa\xe8\xc3\
+\xd8\xfc\xf2\xa5\xe2o\x0d\xf4\xb16\x07\x9a\x04\xcf+\x12\
+\x00t\xf8I`\xc0\xf5\xd9yN\x00i\xae1-=\
+L\x0bpbb\xaa\xad\x09\xa0Tn\xeb7y\x22B\
+#P\x0a\xf0\x0f\xfaWl\x84'\xd7\xa1\xad\xc7\x16\xff\
+\xe67\xbfY\x83\xcf\x00\xaaP\xcat\x0a\x0d\x11\xf4l\
+c2\x07\xe4\x13\xbcP\x88Y,}\x9dH`\x1a\x86\
+\x0b\xdc\xb37Q\xd2P\xe0\xa3\xb5\x80\x19\x0d\xc4$\xaa\
+n\x02\xcc\xf3M \xa8\xe2\xd6o\x12\xbfF'1\xcb\
+\x14\x5cX\xb9\x11\x9e\xeaz\x1b\x81O\xcb\xc4i\xf0\xc3\
+\xa6f\xd7\x8a\x10\x0c|\xaf&\xa0\xf5\x09h\xffE|\
+\xe9\xad\xb8]z\xee(@\x80\x83G\xc7\x92\x01\x1d\x05\
+<\xd7\x02<\x0eP\xd3^\x80UZ/@\x04k\x04\
+\xde-\xe4\xf7\x99s\x04\xfe&xz\xe3N\xb2\xf5\xb4\
+\x08c\x90\xda\xaf\x84\x08z%\xcf\xc0\xd0q4\x09\xf8\
+\xc7'z\x91\x8a\x97\xed\x19\x9f`\xf1\xb9n\x05\xbc\x15\
+\x06t\xb4\xdd7y\xfe\x095\xdc\x07\xa8u/@=\
+\xc4\xcf\x01c\xc3\x81\xf5\xed\x99F`=\x00\x11\xac!\
+\x06Wm\x86\xe76\xef\x82\x95+V\xd2\xda\x80\x04\xbe\
+\x06MK\xc5$\xa0Q=\xfa\x0a\x88\xae\x1d\x1c\x1c\xf4\
+\x8e\x22\x86\x80\x1f=c\x98\x1cCZB\x86H\xf0\x8a\
+m\xab\xf2-|\xad\x1bd@\xdf\xde7\xe8\x22B\xc8\
+\xa0\xcf{\xef\x9d}\xdaV\xf8\x98\xdb\xaaj\x02\x8c\xae\
+\x0f\x9a\xd6mR\xa860\x89\xf7\x08\xcc\xf1\xd0\xe5\x9b\
+\xe1\xf9-o\x87\x15\xcbW\x10\xf8\xf4\x81'\xeb\xeaE\
+\x11\xc1\x80\xc5\xc1\xa7/\x84Zp\x14S\x16\xae\xbdp\
+\xe1\x02\x91 \xda\x0c\x18\x92\x153\x05l\xb5\xcf\x97-\
+\x1b6\x82\x80\x85g\x8fxL\x01w\x00\x95\x96(\xe6\
+\x04\xd2\xc6O\x1a#\xb3FG\xad\x82-\x95U&\x80\
+\xdf\xc6\x84v\x03MR\x9b\x08\xff\xc0\x10\xc6O\x84\xa1\
+\xd5W\xc2K[o\xc5\x96\xbfB-\xbf\xda\xd9\xd9I\
+\x95Y\x0a\xc0%\xb7|\x02\x7f\xf0ow\x83\xeb\xe4a\
+\xf1\xe7\xee\x01\x12\x22A&\x93)\xc5/`\xa0\x17\x09\
+\x16\x19M\x10\xb3U\x09\x17\xbcz\xd8O\xf8R\xec\xfc\
+l\xd2\x801'R\xfb\x11&\x0eP\x0b\x13\xc0#M\
+>\xf1\xab\x7f\x03\xae\xc9\x8f\xe8\x1d\xf8\xaf\x1dY\xbd\x05\
+\x0eo\x7f'\x81O\xab\x81\x12\xf8\xe1-\xdf\x80\x10y\
+\x9e~\x87\xc0o\xc6\xf1\xfc\xa1\xff\xb2\x1b\xd2\x8f\xcc\x00\
+?Dj\xfa\xcf\xd4>\xfd\xcd\x22\xa5\x09\xa2G\x07\x03\
+\xbba\x8c\x04D\xdeW,[\xe5\xcd?\xf3\x8a\x0fP\
+\xab\x08\xf0\xd276\x10\xd0\xdb\xf2\x10B\xb2\xe7WG\
+\x03pM \x8c\x0f\xe0\xc3S\x14R\xb4F\xe0>\x82\
+'ot\xed\x16\xe8\xde\xf1\xafH\xed\x13\xf8\xfao\xec\
+D}\x9f\x1ft\xde\xb7\xafg\xf2\x10\xf8\xc3\x7f\xb7\x1b\
+2{\xef\x01\xad\xcc\xb2\x8f\xdd\x07\xc3\x02`\xc1g\x0d\
+\x09P\x13\x04=\x8b\x01\xadS\x10\x09h\xdd_\x22\xc1\
+\xe1\x98\xad\x1c\xc3y\xa7^\x06\xe1\x03\x9e5\x08?I\
+|f $\x12h\xd5\xc6\x070[\x0b\x13\xef\x06\xf2\
+\xd6=[\xfd\xcfV\xf5E\xfc\x83\xb1\xb5W\xc1\xb1\xeb\
+\xdeE\xb6\x9e\xfe\xba\x16\x03?p5N~>t\x02\
+\xe7\x08\x82\x9f}T\x83o$\xf7\xd3\xfb`D\x00\xb4\
+\xff\xa9\x8f\x04L\xcd\xe3~X\xf2M\x1c\xa1\xad&\x01\
+\xad^FyG\x90\x08+\x05\x92\xe0\xe4K`\xcdn\
+\xf1\x8c\x10\xbe\x06\xe4'\x04\x80\x8fD\xea\xbcmB\xcb\
+Jj1\x18\x14\xe9\x02h\xc0!J\xfd\x9b\xeb'\xd6\
+m\x85Soy7\xac\xe8\x5cN\xeb\xff\x12\xf8\xd4b\
+\x18\x98\x95h\x01=u\x9b\xc0\x1f\xfd\xdan\xc8\xfdD\
+\x83\xcf%\x8f$\x18\xc5\xed\xfcp\x120\x90\xa3\xb4\x01\
+%r\x0c5\x09\xba\xed\x98\xd2\x04\xcd\xc7_\xf4:\xc3\
+\xc6\x114\x00\x07\xf7\xf9\x85\xf9z\xd7\xf1\xcf\x09\xac\x9d\
+\x09P\x05\xb3-\xf3>\x82c+|\x19A\x041\xa7\
+'\xd7]\x0dgn\xbc\x8dl=\x81\xaf\xff\xbaV\xb1\
+\x96]\xa6\x160\x1fm\x10\xf8c_+\xb4|\xafY\
+bk\xeb#\x09\xf6\xdd\x07cx\xa2\xed3E\x1d\xc3\
+b\xe0j2Dh\x03C\x02\xd2l\xa4\x09:\xc0\x82\
+\xc6\xe3\xcfs\x80\x85\x1f`\xa9\xb2\x82\x9dEa\xba\xe3\
+t\xae\x96&@\x18V\x82o\xec\x9e\x89)H0A\
+\x92]W\xc3\xb9]\xef\xc7E\x18;i\xc9uZ\x97\
+G\x83_\xb1\xad\xd7\xe7\xcc\xe7Z\x0d\x08\xfe]\xa0\xd5\
+\xbee*\xcbG\x00u\xabE\xfb\x05\x12\x80\x8f\x04\xfa\
+\xe3\x13\x06.\x07\x9f\x93\x02\xc5\xab\x09\xe8o\x06\x164\
+\x81\x0d\x8b\x01\xa0\xe1\xe8\xf3^\x80\xcdVrs*\x03\
+\xd1\x15:\x12\xa8M@M\xbb\x81\x06Ls\x10\x16\x1f\
+`\x92\xea\xda\x06=\xb7\xdcN\xea\x9e\xc0g\x7fc'\
+\xa0UG\x02O\xa2?\xd4\xd4\xe0\xe7\x1e\xbd\xdb7\xc9\
+\x04f\xbf\x97\xd4\x0b``\x92\x9c\x04B\x08M\x02\x03\
+fx\x0a\xd5\x14\xda' \x92vcj\xa7\xf1\x84\xc3\
+\xcf\x85\x03\xac\xdf\xdbx\xffL\x84\x1e\xaeW\xe5\xa8\xb2\
+\x090\xf3\x01`\xd6\xe39\x09D\x04A\xa67n\x87\
+\xfe[\xef\x80\xcee\x9d\xb4\xde>\x81o\xbaz\xd1\xea\
+=\x8c\x14\xf4;\x85\xaft\xeb5\xf8\x1axC\x80\xd9\
+\xa3s\x1a|\xda\x9aO\xb6\x98&\xc0\x88!'\x01\x07\
+8\xd2,h\x12\xd0\xd2\xb3\xb4\x7f\xcc\xfe\x84z\x99\xc4\
+\xe1gA\xfb\x01\xb2h\xd7/\xa0~-\xefX\x00\xd4\
+(\x10$0\x15\x0a\x15 \xa6\xa2Cz\x09\x99\xcd\xdb\
+a\xe07>\x00\xcb:\x0d\xf8\x1e\x9b\x1f\x01v\xb4\xcd\
+\xd7\x8b3\x8c\xfe=\xd9|j\xf9lv\x91&\x80\x11\
+/\xf8\xe0\x9d\xae\xcd5\xc1\xd0\xd0\x10\x91\x80\x01\xca\xc9\
+\x10M\x10M\x02*\x7f\xb7u'4K,\xc3+\xcf\
+\xfaL\xbd4\xe0\x078\xdd\xe6\x9ce\xcfL\x92\x95\xb5\
+\xeb\x05\xa8\xc4\xc5o\xdf\x03%\xbb\xe9\x1a\x18\xf9\xad\x0f\
+\xc1\xb2\x8ee\xb4\xc6?-\xc7F-\xb6\xdcV^t\
+_\xaf\xc9\xa3\xc1\xcf \xf8\xbeh#\x9f~\xe6\x11C\
+\x00W\xf2\x99;\xd4;\x18\x93H\x82?U$\xa0\x8f\
+O\xf4\x00R\x04\xc8\xfc\x18\x85\x99\x03\xfa[\xc9t|\
+\xcc\xbaKU\xa0\xfd\xd23|\xb9V.\xfc\xbc%\xaa\
+\xee\x04\xfa\xbf\xdd\x0c\x09\x05\x0b\xff\x01\x93\xfc\xe6ka\
+\xec\xdd\x1fFG\xaf\x83\xe6\xd3\x19\x9b\x1f\x0dn\xc89\
+\xa3\xf6\xf5\x9a<#\x7f\x7f\x17d\x1e\xf1\xb5|\xd3-\
+\xf5k\x02#\xa6\xf5\xb3\xe1[\xdd\xdb\xc9\xee\x9b\xe9\x22\
+\xb6\x7f\xf6\xeb@2::J$\xf0i\x01\xae\x0d\xa2\
+\xc9\xa1'\x9a\xd2\xda\xc6t|\xdc\xfaCHH\xbc\xee\
+\xa5\xa7Y\xc4\x8f\x89\xd0\xe7\xd9h`\x0dz\x01\x9a\xb9\
+E\xf0\x17\x11\x19r\xeb\x0e\x98x\xcf\xef\x91\x97O\x13\
+'\x0c\xf8\xd1}\xfb(\x82\x98\xa5\xd8\xea\xea0\xc2\x87\
+\xe0\xef\xdd\xc3\xcd\x10\x9fuD\xc9w\x91\x99\xcd\xeb\x8f\
+\xc5KO\xf4-C\x11C\x10\x141\xa4g\xd3\xb7\x88\
+\x9a\x04\xd1\x80\xf3}6\xdb\x98V$W$\xf8\xd0\x1f\
+A\x9c2_|:\xb4\x8e\xfd(\xebo%\xa0\xc6&\
+\xc0\x16!\x04\xe0\x99\x895\xeb!\xfd\xe1?\x82\xa5\xad\
+\xea\x0f:\x90\xda\x0f\x1a\xd2\x0do\xf1|\xdf\xb7\x08\xe3\
+\xd0\xdfRl\x1f\xc1\xb7\xc2\xa2\x92|\xd2\xa9\xd0\xaa\xbf\
+\xe8$\x0d\x1e}K?\xfa\x0d\x18\xc2\xedBC\x02\xbd\
+\xb61\x03:,i\x09\x22\xc1\xa9\x8f~\x1a\xec\xb1\xbf\
+\x02\xf7\xccIS?\xa1\x04\x90T\x9e\xb2\xc7\x02\xacR\
+M\x80\xf12M\x14%L\xf4\xf9\xe5\x9f\xfc\x0c,]\
+\xd6I-\xdf\x80\x1f.a\xb1u\x9f\xcd\xd7\xe0\xd3\xa8\
+^\xea\xc7{\x82m$\x14\xd5\x08|~\xa2aKh\
+\xa4s\x1aI0\xf8\xd5\x8f\x91\xbfA\xb1\x06r>\x09\
+t\x9d\x18\xd8\xc5\xf2\x83\x84\xcaCs\x1e\xd7um\x80\
+\xf6\x8f}\xaa\xbc\x857tAj\xa1\x01\xa4~\x88-\
+\xcaz\xa9U;\xdf\x0eY\x10\xa4\xa6K\x05?\xb2\xf5\
+\xeb%\xd7i\xbd\xbf\x81\xbfQ\xe0\x13\x90\xbfTI!\
+\x09\x06$\xc0\xe2\x7f\xaf4\x81Z\xbd\xccq\x9cR#\
+\x84$\xa1$\xa0\x19PK\xda\xe6\xc1\xc0\x7f\xfc\xb7P\
+\xa2\x18\xdf\xa6\x96&@x\xbfQ\x12\xd176#H\
+VK+\x9bvU:\x09\xf8*\x18z\xbd\xfd\xfe\xaf\
+\xee\x86\xa9\x1f\xed\x01;\x08|\xe9\xe9\xdf\xcf\xcew1\
+Y\xa6\xdf\xefB\xc4*\x9e\xfa\x94\xe7|r\xef7\xc0\
+\x95\x02\x96\xfe\xf9\xddz\x81k2\x07\xd1\xaa?Z\x94\
+vkp\x1d(]\x8c\x13\xa8\xa4&&\x80\x0aac\
+b\xe7\x83o\xea\xfd\xc1\xbf\x90mSj\xb2\x0ca\x95\
+\xa6\xc3\xbb\x1a\xfc\xbe\xaf\xec\x86\x89\x1f\xec\xd1x1\x80\
+\x0d\xa2\xe6\xbcK@{\xbe\xdeu\x5c\xef1%~\xbf\
+d?\xe7\x7f`\xf2\x91{\xe1\xfc\x97?\x8e\xad\xb6\x8e\
+\xb4\x1c\xbdc\x90\x16(k\xd2\x0ai\x81\xbe\x87\x1fb\
+U\x1aV\xe9\x0a\x9bj\x13\x80\x87\x82\x8bx\xf9!7\
+\xbd\xf8\xf9\xcf\xc1\xf8\xd1W\xa8@\x9a\x04\x95\x10\xc1\xf7\
+gV\xce\xff\xe7\xdd0\xfe}c\xf3\x0dH\x06H\xde\
+t=\x81\x1e\xa9\xc9`H\xe0\xfb~\x1fT\xe2\xc4\xe0\
+\xbf\xa96\x13\x0f\xe3\x12\xf0\x7f\xfdq|\xb78-\x1e\
+A$\xf0\xf9\x04(e\x83?q\xfc\x08\xbc\xf8\x97\x9f\
+\x8d\xaac#\x9ap\x16T\x99\x00&\xd1\xd5,\x0e\x10\
+\xc5N'=\x0d\xfbn\xdbuQ$ \x9bOZ\x84\
+\xc0\xef\xf9\xf2n\x18\xfd\xbf\x1a|\xd6\xea\x0d\xc8\x1ah\
+\x93\xccB\x0d\x06t\x93\xcc5\xfe\xa9V\xd2\x9f\xcc\xae\
+\xb9\x9ed\xfc\xc7\xf7BO\x81\x04\xa8\xa5\xe8\x9d\x09\x90\
+\x8a\xc0\x9f<\xde\x0d\x8f\xbf\xf7fpRS\x10j\x95\
+\xa4g#MW\xb7\xda&\x80OZ\x10\x01D\x09P\
+M\xd9\xd1\x11\xd8\xff\xbe\x9ba\xe2\xd8\xe1\xb2I@-\
+H\xdfs\xeeK\xbba\xe4\xa1=\x06`\x7f\xec\x9e\xdb\
+\x7f\x7f2$\xa0\xe4\x86$C\x16\xad\x11\xfc\x04\x01J\
+\xdc\x5c\x8c\xfd\xf0^8\xf7\xc5\x8f\xd3\xbb\x12a\xe9\xdd\
+\xcb\x07\xffD7\xd6\xd5.\xc8\x0e\x0d\x9a2\x84\x80\x22\
+\xa5\xd7A\x87\xaa\x9a\x00.\xda\x04\xc8\xa2\x0f1\x95\x0c\
+\xc5H0\x0c\x07\xb0`\x13\xc7\x03H\x10\xf1\xb7t_\
+\xfbk\x04\xff{{\x02AV q;\xcf\x01\xf7\xd9\
+~v\x8f\x01\x9f\x11(\xcc\xbf0\x84\x19\xf9\xc1\xbdp\
+\xf6\x0b\x1f\xa7w\xa6w\xa72\x94\x05\xfeA\x02\x7fx\
+\xd0<\xa6\x14\xa7\xd4\xd7M\xaf\xa1\x090\xc3\x8d\xc1\x17\
+\x9a]\xdeJ\xb2#\xc3p\xe8\xfd7\xa3\x8a;\xc2H\
+\x10\x06\xfe\xab_\xdc\x0d\x83\xff\xc78|FM{\x9e\
+\xe1\xcf\xe3\xad\x9e\x11A\x1f\xb3|c&\x98\x06a\xa4\
+)\xaa\x11F\xbe\xffux\xf5\xf3\x8c\x04\xe1\xe0\x9f\xec\
+\x86'~g\x17dF\x06\x99\xca\xd7\x19\x81Y\xae&\
+\x00\xd4\xd8\x07\x10\x04\x8c0\xf9Q/\xc8\x9c2\x22\xc1\
+\x10\x15\xd4K\x82\xd0?\xa4|\xe6\x0b3\xe0\x03\x03\xbe\
+\x90\x0c\x88\x8c\x1c\xae\xda\xf7m\x8d\x160\xa0\x17'\x81\
+I\x06h\x93\x02\xc8h\xf2\x86\x1e\xfa:\x9c\xfe\x8b0\
+\x12\x18\xf0\x93\x08\xfe\xcf\xb0N\xd2C\x83\x86\xd4!N\
+'\x9f\x17\xea%\x80\xa0\xbdZ\x98\x00\xe1_\xcd\x889\
+B\xe16\xca5eP$\xf8\xd9\x1dH\x82\x13G\xc8\
+V\xea?\x9fJ\x8e\x139z\x94\xa7\x8eO}~7\
+\x5c\xf8\xee\x9e\xd2*\xde\x0b2\xb3\xf7\xe1v\xdf\xa1\xc4\
+\xae\xd5\xe4\xe2&\x81\x83^\x9c\x1c\x83H\x82\x93\xffI\
+\x91@;\xb1TFM\x0a\x95\xa7\xc0\xbf\x1d[\xfe\xf0\
+`pc\x8a\xa8kn\x02d-\x02AR9\x19\x86\
+\xc8f\xe0\x5c\x9a\x15/\x8c#\xe8\xb2y\x81\xa6\xc5\x12\
+\x09\x86\x87\xe0I$\xc1\x9b\xef\xdf\x07\xad]W\xaa\xca\
+\xf1\xca\x89\xbf\xd8\x0d\x03\x08\xbeey*Xx+\x99\
+\x1f\xbb\xc4O\xbd\xef\x9a\x90\xafY{\x98\xcd\xab\xe7\x9f\
+\xc0\xbb\xdc\x84\x98}\x9d\x82H\xc8\x890\xf0\xbd\xaf\xab\
+k\xd6}\xe9n\x02\xdf\xd7\xbd%\x7f\x88\xea\x80l\xbe\
+O\xbcZ\x0c\x02\x9dN&\x96\xed\xa9sY\x0b\x1f@\
+\x84\xda\x18\x03\xb0,-8\x93!M\xf0\xee\xeb\xe1\xb5\
+o\xffO\xea\xf2\xa8R'O\x1d\x85\x17>z3\xf4\
+=hZ>\xab\xdc PLk5[\xae\xde\xfd-\
+\x9f\xf5\x00\xb8\x16\xe0\xa6@\xefG\x13\x81\x8e\xfb\x91\x04\
+/\xfc\xdeN\x98:\xd5\xad.t\xa6Sp\xee;{\
+\xb0\xec\xd7\x11\xf8\xe6Zo5\x85;\x80<\x82\xa9\xf1\
+\x11\xa2z\xa1`>\xa3'\xa8\x9b\xc1[\xbd)\x8ci\
+mRp\xbf!\x8f\xc0\x1f\xfe\xf3\xbb\xa0\xfb?\xdc\xe5\
+\x1f\xc3\xb7\xbc\xd3\xb4\xb8\x160\x1e\xb0\x09\xeb\xbafm\
+T\xad\x91\xf8\xa4\x067\x8a\xf0\x5c\x0bpRq\xf3\xe2\
+\xbf\x9e\x13c\xec\xe9\x03\xf0\x8b\xdf\xdc<s\x8f\xe3\xf1\
+C\x98I\x0b\xa8\xd7R\x08B\x15W\xd3\xb1\x00A\x89\
+\xbf\x9b\x998\x11L\x0a\xe9%\x85\xf4\x83\x22\xbc\x15\xa0\
+\xaf\xe5y\xba\xe5\xf9&\xcf[\xe67\xf5\x08\xaewM\
+a6\x1c(eX\x1d\x19\xc2\xf2\xdeD\xb8O`R\
+8\x11L\x9eF2<j)\xa3\xa2\x92\x92\xed\xd7\x86\
+\x00\x82\x92%\xf8h\xa0\x07 W_\xeb\x03.XK\
+(\x89\x04\xde\x7f\x0c>\x0d`\x9ei\xb9\x851\xfdb\
+\x5c\x95&\x83OV\xf5\x1bY\xd7\xa7b\x03}\x01\x9e\
+\xe7M\xe5\xf5\x18\x8c\xc9\xe1`s3\xca\xbb\xdbFD\
+\xd5\x09\xa0+H\xbf\xac\x8cx\x86\xbe\x96\xb5x\x1f\xf0\
+\x02\xbc\x05\x0c\x03^\x83l\xde\xc3\xd2\xe7\xe9'\x8d\xba\
+W\x22\xe8X\x14\x88 \xbd\x1a\xc0\xcff\x8b\x03oZ\
+\x9d\x8f\x00Q\xa6\x80\xfb\x1f&\x85\x82n\x12\x037\x5c\
+\xfdK_\x0c\x22*2D\xc7\x15\x10\xc0.hm\xfd\
+\x97\xc2tH*=\x99\xa1\x85\x9f\xd5\xd2\xadN\xd6\xfb\
+\xde\xbc\x95\x9a\x93\x9c\x9dRFy\xf6Av\xdeoB\
+,/\x09\xf4\xb1!\x82\xe9\x91\xd0\xbe\xf0\xbc\xd6\x0cA\
+\x98\xb8\xb3[\x17\x07\xd4\x98\x80`m\xc0\xbb\x9f\xa5\xf5\
+\x18\xfc\xf7\x82I>\x82\x05\xa8\x7f\xc2\x84\xb0\xc9 F\
+TX\xa1\xca,\xf5\x8c&I\x98\xe6K!\xc0\x08\xa6\
+%\xfa},\xcb\x8d\xcfk\x81x\xbc\x1e\xa4\xe3\xc0\xf4\
+h\x16\x1a\x97\xb4B]k=\xe4RY\xd0\xe2k\xb5\
+\xc6\x8eF\xdby\xc9\xc9`\xfc\x03\xaf\x9d7\xe7\x8c\xba\
+\xf7\x93@\xa8\x8b\x02\xbb}\x85\x8a0\x8e\xa0`<\xf5\
+\x1f\xb8\xe1\xddB\xee\x17\x84\x98\x00(\xa3\xc7 C\xba\
+z|P\xcaH}[#4u\xb4\xc1\xd4\xf0IH\
+\xe0\x88\xa4\x93\xcbA>\x9fQE)\xf0_\x8e\x94B\
+\x80.\xbcat\xe6\xb7\x1d!e>^_\x97mh\
+_\x94\xb0h\xfa\xb6h\x05\x22\xc4\xa2-\x9d\x90\xec\x9f\
+\x00#e\xday\x19\xa0\x05\x14\x90\xdc\xf37\xde\xbd\xfe\
+y?\x09\x84>6\x7fj\xc6 \xa8\x89\xc1\xfe\x22Y\
+\x88\xb8\xcc\x170+\x81\x1bR\x98\xae`HWT\xb2\
+\xf1\x06\x16J.\xcb?0\x04\xf3\xaf\xdb\xb0\xec\xba\xb5\
+\x10on\x80\xf1\xa1\x8c\xfa\x9b\x0dnr\x12,\x07\xa8\
+\x95\xe6\x08KL\x92\xb0\x8d\x8c\x03\xd0\x1d\x85^J\x1e\
+\xa4L\x0b\xd7MZu1\xb5\xfc{v\x1a`\xf0\xf8\
+8t\xdd~\x0d4-n\xf1c\x1e\xf0\xb2A\xf6\xcf\
+\x0d\xa9\x18\xa9\x13\xef{s\x1b\xecz\xce\x05l)9\
+\xe682928D,\xdd\x90V\xaf\xaf\x09\xf2\x0f\
+\xd8\xe8e\xb4\xcf\xc0c(\x9c\xc4\xad\xcb\xdba\xfd{\
+\xf1;\xcbg{!9\x9aQ\x84\x90\xe0\x92)\x9f\x14\
+\x00\x19\xc2\x920\xcd\x96\x12\x08\x1a\x9bQ\x0bn\xe1\xc6\
+);\x9d~U\xda\x16X\xf5\x0924\xd0\xfb\xc28\
+\xc4\xdb\xe6\xc35\x9f\xde\xe9!A\xa8\xf3\xc2\x0b\xc6\xae\
+\xe1]%7X\xdd\x9a\xfd\xc0\xf0\xad\xc9s\xf8~t\
+\x92\x0cx\xbe\x0d\x18k\x08xw^\xbe\xa0\x14@\x04\
+\x17\xf85$-\x08\xfe5\x7f|\x0b\x1e\x0b8\xf2\xd8\
+\x19R\xa7\x0aU\xc7\xc9C\x03\xc0\x19\xc2\x90\xb0$L\
+\xc7J1\x01I\x00\xd9\x86\x8cq\xf1&\x010\xd1\x94\
+J?;\x95Ln\xafokC\xfcQ\x0bL\xb9p\
+\xf2'\x03\xb0\xf6\xed\xab\xe0\xa6/\xdf\x06G\x1fx\x16\
+\x06_\xee\x81\xccD\x9aj\xc7\xf7\x19\x16%\xf3e\x0e\
+\xdf\x82\xa0\xc4\xaf\x05\xb3\xef\xbb\x06\x84?Iu\x9d\xc7\
+\xc9\xa3-\x1dz\x8f\x85\xdf!\xf6\xafO\x10\xc0_\x9f\
+#hH\xaa\xb6\x96\xc9S[\xcb\xe4{;\xee\xa2p\
+\x9d\xa0\xe4\x9a{\xa0p,<[\xcb\xf57\x08\x97\xf2\
+\xcd\xbd*Y\x9e\xdf\xb6m\x0b\x12\xf3\x1a`\xc9\xd6\xcb\
+`\xe3\x07v`F\x0c\x9e\xfc\xc6K05\x92\x06+\
+n\xa3\x7f\x96\xc6\xdf\xc8\xc3\x02\x17\x9e\x05\xc4\x90\xb0\xc4\
+\x94'l#\x09@\xc1\xca\x9b\x94\xbaP\xac\x19_\x99\
+\xcd\xef\x7f\xb1\xbf\xff}\xce\xd2\xa5\x0b\xe3M\xcd\xca\x10\
+\x8f\xf5&\xe1\xe5\x7fI\xc1\xf2m\xf3a\xeb'w\x81\
+3\x91\x84\xa9\x0b\x13\xe0d\xf2Xp\xbe\x02\x16\x89e\
+\xec\xb5\xb9\xc6\xf7\xa1\xa6\xf7>\xbe\x8a\x18\x04]\xe3\xcd\
+\x9f\x0d0\xe5W\xd2O\x96E\xc2\xae\xc5\x8e\x8b\x13\xc5\
+\x10(\xe0X\x93\xc7\xdc\x17\x14\x80*\xfe\xdbv\x22\x06\
+\xcd\xd8\xf2\xed\x86z\xe8y\xbe\x0f\xba\x1f?;\xa3\xfa\
+\xd1T;\xa9\x0cd\x93IH\xb80\xb8\xd6\x85\x83.\
+b\x98G,\x13\x00.a[\xd27\x1d\x8f\xcf`R\
+\x87\xff\xb4\xbb\x00\xab_\xb5\xc5\xed#\x9d\x1d\x9fZ\xb2\
+e\x8b\xb0bqp\xe8\x0f>d\x90\x22\xa8fb\x09\
+\x89\x0c\x1e\x85\x96\xc5MP\xd7\x5c\x07B\xd7z\xd4W\
+C\xc2l\xf8\xb5\xfc\xbc\x14\x81\xd7F\x03,\xa0r\x99\
+\x0d~h\xd4\x8d_\xc3\xaf\x8f\xf8=\x19\x1e\xdcs]\
+\x09\xf9\xb4\x03\x99\x14\xc0pO\x12Rci\xd5U'\
+'\x9d<\xff\x89\xbe\xf3\xa8\xa5\xa7\xe4Z\x07\xfe\xf1\x0a\
+\x17\x1e\xb4\xd0\x0c\xb83\x9d\xbb\xccN\xbc\xbd\xa48\xc0\
+\x01\x00\xf9\x0e\x80\x9c\x03\x90\xc4;.\xacr\xe4#\xc9\
+\xbe\xfe+\xfa\xa4{k\xfb\xe5\xab\xc1\xaa\xabC\xecs\
+\xea\xafW\xa6\xc6\xd30\xf6\x1a\x9a\x80\xe4DTC\x0a\
+>_\x85\xebd\xc5\xe7\xdexB\x7f\x94\xab\xbe\x15M\
+\xb2m\xab$\x10\xfc\x5c\x12\xc9\x80\x83k\xd9T\x0a\x16\
+\xb9\xf0(\xb6\xfe\xbd\x80\xd8Y\x88a\x1c\xb1|4\xa0\
+\xa8v\xb1\xcc\xfd\x98\xde\x87\xa9\x19@N\x93C\x88i\
+\xb1+\xcf\x0c\xa7\xa6\xe6\x0f\x8f\x0c\xafqs9\xd5\x1e\
+]\xc7Q)7\x9d\xc24\xcdg\xab\x5c\xe2\x04\x90\xf0\
+\xc6\x14\x9b\xbe\xb5\x88\xc7@\xd2\x7f\xf9<\x06\xe8& \
+5:\x8c\x9a!#\x09\xfcm\x0e\xfc3\x00\x9c\xcd\x03\
+\x0c6\x02\x9e\x02p\xee\x0c'\x00\x97+\x00\xe4\x22\xdc\
+\x92\xed\x903}\xc9\xecR\x17\x8e\xa1\x9a\x19\x1d\x9e\x18\
+_=5>\xd6H\xb6&\x8b\xe0\xe73\x19p\xf3\xb9\
+\x80\x0a\xad}\xe5K\xf8u\x17>\xfd\x1b\x1b!:{\
+\xd3\xa8y'!\x97\x9e\x86x\xde\x1d\xbc\xdc\x85{6\
+\xbb\xf0-\x02\x9fZ\x7f\x0c \x99B\xec\x9eB\x0c\xf7\
+Wb\x1d\x1f\xc7\xf3\x13\x00V+\xf2@\x024\x09\x80\
+v\x0a\x14:\x00\x9dg,\xb8i\xd4\x82k\xa6\x01V\
+;\x02\x9a]\xbc\xa6V\xa0\xc9\xaa\x9f\x7f\xe3\x13\xc7\x02\
+\xc8\xfe\xbf\xf6\xce %b\x18\x0c\xa3/I\xe9\x8c\x8c\
+\xcc\x0c\x1e\xc1\xa5\xa7\xd0\x8d\x9e\xc0\x03x\x12\xebI\xbc\
+\x95\xcb\xd9\xb9\xb48Hal\x9b\xc4/\x18A\x17\xe2\
+\x14\x1dWy\xf0\xb6%\xe1\x0b\xfc\xc9\x1fH+x9\
+\x8al\xd2n?m\xf8\x1c<\xa6\xe0#\xb4\x06:e\
+\xd7/!\x5c|?\xd5\xbd\xeev\x8c\xea\x87]A5\
+\xc0|\x84\x14\xf6\xcaJ`i`\x11a\x06T\xd2Q\
+\xf8\x0f\xbc\x1c?z5\xf9\xa8\xb7\xb5\xb2z\xaf\xf9\xbb\
+-\x8c\x97\xb9\x0d\xfc\xab\xdb@\x03\xf1\x1a\xc2\x0d\x0ck\
+\xf0#\xf4@g\xe1)\x05\x9f49\xfc\xf0\xe9\xb7\xbf\
+\x14\xfe\x1c\xf3\xf513\x1f\xf3\x22H\x06\x89t0\xb4\
+\x10\xee!^\xc9\x9f\xbf9\x81\x06\xcc\xadT=\xb1\x1d\
+\xb8\xb9\xac\xc1\xbeJ\x97{5\x1eLO\xe1\x10\xd4\xd2\
+A\x0c\x80\x878\x83\xd0\xcb\x1d\xf8\x85<\x87p\x07\xb1\
+\x91\x13\x16\xd5t\x1ay\x06\xe6X\xae\xf3\xc06)x\
+yB\xe1\x90\xb4\xb2\x86x*{\xe09wo\x1fd\
+C\xa1P(\x14\x0a\x85\xc2~\xbc\x01\xc5\xf3\xa3!\xeb\
+\x0d6:\x00\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00<\x0e\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3>a\xcb\
+\x00\x00\x09\xediCCPICC Prof\
+ile\x00\x00x\x9c\xad\xd6gTS\xd9\x16\x07\xf0\
+\xff\xbd)\x84\x04B\xef- \xddP\xa4Jo\x8a\x0d\
+\x18D\x14\xb0\x02!4)\x11\x82(vP\xb0\xa1`\
+W\xb0+v\x05\x95Q\xc7\x8a\x0a\x22\x8c\xa24\x11Q\
+, 8\x22\x1d\x0b\x82y\x1f\x82e\xd6\x9bY\xef\xcb\
+\xdb\x9f\xf6\xd9k\xdd\xb3\xce\xf9\xed}\xd7:\x80\x94b\
+\x98@\x10G\x02\x88O\x10&\x05L\xf0\xe4\x04\x87\xcc\
+\xe4H\xd4\x81\x0a5H\x03\xb0\x0f\xe3%\x0b<\xfc\xfd\
+}\xf0\xaf\xf1\xb1\x1e\x04\x00\xd4\x98\x85\x09\x04q\x89G\
+\xa3\xab\x11\x97\x97\xa9\x92\xe3\xc2\xe9\x9f\xab\xfb\xf8\xdf\xbf\
+\x03\x00\xb0\x93\x82Cf\x02\x04\x17\x80b\x948w\x07\
+\xa0\x18.\xce\x03\x01(\xa6\x0a\x05B\x80\x88\x06\xa0\xc8\
+\x8b\x0e\x8b\x00\x88\xa5\x00\xb8I\x81\x01^\x00q\x1c\x00\
+;J\x9c_\x06\xc0\x0e\x17\xe7\xe5\x00\xd8\x0byQB\
+\x80h\x00(\xf2\x09\x111\x09\x00\xb5\x03\xa0\xbbF\xf0\
+\x93y\x00\x8b\x0b`^D2/\x1e`m\x04`\x19\
+\x1f\x9f\x18\x01\xb0\xae\x010\xe6\x09\x92\x84\x00\xab\x05\x80\
+Yp\xc8L\x8e\xf8\xc8\xe1\x91\x80u\x08@\x1e\xffY\
+\x9b/\x05\x14i\x02\x8a5?k&\x11\x80F\x01p\
+\xf5\xc4\xcfZ_\x00\x08\x00\x84rUr\xa4\xb5\x15\x00\
+\x80\x90\xf2\x04h/D\xa2>C@b\x0b0\x9c+\
+\x12}=$\x12\x0d\x1f\x06(M\xc0\xad8^J\xd2\
+\xc2\x11/\x82x\x00\xfc\xaf\xb5\xf8\xce#A!\x00\x02\
+$\x95\xce\x90dI\xb1e\xe4\xe4\x15\x94\x94U\xd54\
+4\xb5u8z\xa3\xf4\x0d\x8d\x8cMGs\xcd-,\
+\xc7X\xdb\xd8\xda\xd9\x8futrvqus\xf7\xf0\
+\xf4\x1a7\xde{\xc2\xc4I\x93\xa7\xf8\xf8\xfa\xfd\xe6?\
+5 p\xfa\x8c\xa0\xe0\x90\x99\xb3\xe6\xcc\x9d\x17\x1a\x16\
+\xce\x8b\x88\x8c\x8a\x8e\x89\x9d\x1f\x17\x9f X\x90\x94,\
+LY\x98\xba(m\xc9\xd2e\xcbW\xac\x5c\x95\x9e\xb1\
+&3k\xed\xba\xf5\x1b6fo\xca\xc9\xdd\xb2u\xdb\
+\xf6\x1d;w\xed\xde\x93\x97\xbfw\xff\x81\x83\x87\x0e\x1f\
+9Zp\xec\xf8\x89\x93\xa7N\x9f9{\xae\xb0\xa8\xe8\
+\xfc\x85\x8b\xc5\xbf_\xba|\xe5\x8f\xab\xd7\xae_\xbfq\
+\xf3V\xc9\xed;w\xef\x96\x96\xdd+\xbf_QQ\xf9\
+\xe7\x83\x87UU\x8f\x1eW\xd7\xd4\xd4\xd6\xd5\xd5?i\
+hx\xda\xd8\xf8\xac\xa9\xe9\xf9\x8b\x17\xcd/_\xbez\
+\xfd\xfaMKK\xeb\xdb\xb6\xb6\xf6w\xef\xfez\xff\xbe\
+\xe3CggWwwOo__\xff\xc0\xc0\xc7O\
+\x9f?\x7f\x19\x1c\xfc:44\xfc\xed\x9b\x08$\x95.\
+!\xc9\x94\x92\x96\x91\x95WPTVQS\xd7\xd4\xd2\
+\xe6\xe8\xea\xe9\x1b\x18\x1a\x9b\x98r\xcd\xcc-,\xad\xac\
+ml\xed\xc6:\xfc\x1b\xc0\xb4\x11\x80\xd9#\x00\xfc\xef\
+\x00\x89?\x00\x16\xff\x00X\xbd&3k\xed\xfa\x0d\x1b\
+\xb37m\xfeE \x7f\xef\xbe\x7f\x10\x18\x01\x10\x0b\x88\
+\x01\xee\xfc\x0d\xe0\xd1\xe3\xc7\xd55\xb5\xb5u\xf5\xff\x08\
+\xd0\xfa\x03\xa0C\x0c\xd0\xd3\xd3\xdb\xd7\xdf?\xf0\xf1\xe3\
+\xa7\xcf_\xbe\xfc\xbc?\x85FgH2Y\xd2l\x19\
+Yy\x05E%\x15U5u\x0dMm\x1d\x8e\xae\xde\
+(}\x03#c\x13\xd3\xd1\x5c3s\x0b\xcb1V\xd6\
+66\xb6v\xf6c\x1d\x1c\x9d\x9cG$~\xa5\x10\x0f\
+\xc3w\x8cY\xb3\xe7\xcc\x9d\x17\x1a\x1a\x16\xce\x8b\xf8\xe1\
+\x91\xf0\x0bH\xda\xdfE\xd6\xfdB\xf2}&\xbe\x93\xfc\
+\x93\x89\x98dd(J\xcb\xee\x95\x97\xdf\xff\x95\xa4\xae\
+\xfe\x89\xd8\xe3\xf9\x8b\xe6\x97\xaf^\xbfii}\xdb\xd6\
+\xfe\xee\xaf\xf7\x1d\x1f:\xbb\xba{z\xfb\xfa\x07>~\
+\xfe2\xf8uh\xf8\x9b\x08\x10\xff\xfb\x00@\xb7\x03\x0e\
+'\x003\x98@\xe0!`{1`\xe4\x04\xa8t\x01\
+\xfe\xd2@\xa0\x03\xc8dk\x90\x91\x91 U\x98\xa0\x10\
+\x00\x09\x80\x00\x05tHB\x06\xca\xd0\x81)\xec0\x0e\
+\x81\xe0#\x15\xeb\xb1\x0f\x17Q\x89\x16|#\xd4\x09{\
+b:\x91Ll%\x8a\x89\xa7\xc47\xd2\x80\xf4%\x17\
+\x92\xfb\xc9J\xf2\x0b\xc5\x84\x12B\xd9@\xb9I\xe9\xa7\
+r\xa9\x11\xd4\xbd\xd4\xa74UZ\x10m7\xad\x89\xae\
+G\x8f\xa6_\xa0\x8b$|$\xf6Ht0<\x18\xbb\
+\x18\xbd\x92~\x92g\x98l\xe6\x02f\x03\xcb\x8bU(\
+\xa5-\xb5I\x9a\x94N\x93\x1e`'\xb3\xfbdRe\
+\x86e3\xe5\xe4\xe4\x0e\xca\xdb\xc8W(\x84+|S\
+\xdc\xad\xa4\xaftJ\xd9J\xf9\x9a\xca\x04\x95\x1a\xd5p\
+\xd5~\xb5u\xeaZ\xea\x175|4Z5\x97i\xa9\
+h\x15k\xfbkw\xea\xe4pl8\x8d\xba\x19z\xa3\
+\xf5\xaaG-\xd5\xb7\xd0o2\xd8h\xe8b\xd8it\
+\xd08\xc8\x84mRj\x9a>\xdak\xf40\xf7\xba\xd9\
+\x0as\x0f\x0b\x9aE\xa5\xe5\xb61s\xac\x8c\xacz\xad\
+o\xda\xe4\xd8\x86\xdb\xd9\xda\xb3\xec_\x8f\xbd\xe2\xb0\xd9\
+\x91\xef\xe4\xe2\xac\xe5\xfc\xcd\xa5\xd9\xf5\x86\xdb\x01\xf7\x0c\
+\x8fH\xcf)^\xd6\xe38\xe3e\xc7\x0fywO\xa8\
+\x9fxo\xd2\xed\xc9%Sn\xfb\x94\xf9V\xfa=\xfa\
+\xad\xce\xbfi\xea\xbb\x80\xaf\x81r\xd3\x8df8\x07\x05\
+\x06\x0bB\xb2g\x9e\x99U3[4\xd7b\xde\xbc\xd0\
+\x9c\xb02\x1e\x19\xe1\xc6_\x12y5\x9a\x12\xe3\x1f\xbb\
+w~w\xfc\xe4\x84<\x01\x16\xf0\x92\xca\x84\x96)\xfb\
+S\xe5\x16\xadMc,Y\xbetp\xf9\xca\x95\xccU\
+[3tV_\xca\xf4\xc9j^\xb7d\x83\xd6\xc6\x92\
+M\xc1\x9bE\xb9\xa7\xb7\xce\xda.\xb1\xe3\xcc\xae]{\
+\x8a\xf2_\xef\x97=\xe8|Xp\xf4\xd8\xb1\xfa\x93\x92\
+\xa7'\x9d\xcd.,=/*\xf6\xba\x94~\xa5\xf2\x9a\
+\xec\x8d\xa0[Gn\xf7\x97z\xdc\xcb\xbd\xff\xf2O\x87\
+\x87\x1b\x1e\xbd\xa9\xb1\xad\xdb\xf2\xa4\xb71\xa0\xe9r\xb3\
+\xda\xab\xb47/\xde\xfa\xb7\x97\xbc\xb7\xfeP\xd0m\xd4\
+\x9b7\xa0\xf4i\xd7\xa0\xee\xd0S\x91\xe8G\xff\x99\x90\
+\x81\x0at\xc1\x85\x03&\x22\x04\xb1X\x8a\x1c\x14\xe0\x1a\
+\xea\xd0E0\x09c\xc2\x9b\x88 V\x13\x05D\x05\xd1\
+E*\x93\xaed4\xb9\x85\xbcAvP4)\xbe\x94\
+\x15\x94\x0b\x94v*\x87\x1aL\xddB}Hc\xd3\xfc\
+h\x9bi\xb5t\x0dz8\xfd4\xfd\xb3\x84\xb7\xc46\
+\x896\x863c\x1b\xa3Sr\x8a\xe4\x09&\x8b\x99\xc0\
+\xacgy\xb0\xceJiIeK\x13\xd2\x8b\xa5\xfb\xd9\
+\xc9\xec>\x99\x852C\xb2k\xe4\xe4\xe4\x0e\xfc\xcf\xee\
+\xfbj\xb4j.\xd7R\xd1*\xd6\x9e\xaa\xdd\xad\xb3\x85\
+c\xc7y\xae\x9b\xa9g\xa1\xf7dT\xba\xbe\x9d~\xab\
+\xc1\x0e\xc3\x89\x86_\x8d\xce\x19G\x9a\xe8\x984\x9a\xee\
+\x1e\x1d\xc2U\xe2>3;h\xce\xb7\xe0Z|\xb4\xbc\
+=&\xc7j\xae\xb5\x99\x0dl\x9e\xd8\x9e\xb4\xcb\xb4\x0f\
+\x1f\xeb\xea\xa0\xee\xf0\xd1\xb1\xd6\xe9w\xe7|\x97\x0c\xd7\
+X\xb7\x00w'\x0f#Oy/x\xf5\x8e\xeb\x19\xff\
+\xca\xbbi\xc2\x83\x89w'\x95L.\x99R\xe2s\xc7\
+\xb7\xdc\xaf\xf2\xb7*\xff\xda\xa9\xcd\x01\x9d\x81\xc4t\x85\
+\x19\x06A\xf6\xc1\xfe!\xd13\xd3g\x1d\x98]:\xa7\
+k\x9eF\xa8{Xt\xf8.^=\x9f\x15\xe9\x12\x95\
+\x16}=\x16\xf3\xc7\xc7\xe5\xc4\xbfH4\x17\xa4/h\
+H\xb6\x12\xe6\xa6\xf4\xa7\x86,\xba\x95f\xbad\xff2\
+\x85\xe5\xd9+\x99\xab\xb22(\xabWe\xb2\xb2\xf2\xd6\
+\x19\xaf\xbf\xbc\xd1/\xfb\xfd\xe6\x0d\xb9F[J\xb6\xf1\
+v(\xee|\xbe\xfbI>}\x9f\xcd\x01\xfe\xa1\xddG\
+\x1e\x1c\xa3\x9cp<\x15\x7f\xe6\xf4\xb9\xb6\xf3\xdc\x8b)\
+\xbf\x17_\xfer\xd5\xf9\xfa\xea\x9b\x8fnk\xdd\x0d+\
++*\x1f\xaa\xf4{\x90_\xf5\xa1\xda\xb3vg\xfd\xdb\
+\xa7\xf6\xcfr\x9e\xb7\xbet{\xbd\xa3\xe5C\x9b\xef\xbb\
+\xfd\xef\xbft\xce\xe8\xbe\xde\xa77\xb0\xf6S\xd7\xe0\x9c\
+\xa1\xee\x91\xfe\x93`A\x16\xca\xe0\xc0\x1c.\xf0C8\
+R\xb1\x09\x05(\xc1\x0b\x0c\x13\xda\x84;\x11A\xac#\
+\x8a\x88&\x92A\xda\x91Q\xe4N\xb2\x92BR\x9c(\
+)\x94\x22J7\xd5\x8a*\xa4\xfeA\xa3\xd0\xfchy\
+\xb4\xf7tW\xfa6z\x87\xc4\x04\x89\xa3\x0c:#\x96\
+Q-\xe9*y\x86\xa9\xc3\xdc\xc1\x92eeKIK\
+m\x96V\x92>\xc4\xb6f\x97\xc9\xcc\x91\xf9,\xbb]\
+\xceN\xaeI>K\xc1N\xa1]1_\xc9K\xa9Y\
+y\xad\x8a\xb9J\x83\xea\x1a5;\xb5v\xf5|\x8di\
+\x9aL\xcd[Z\x8b\xb5m\xb4\xbbu\x0a9\xc9\xba\x8e\
+z\x14\xbd{\xa3r\xf5C\x0d\xcc\x0d\x86\x0d+\x8d\xf2\
+\x8c\x13L<MUM{FWr\x0b\xcc2\xccC\
+-\xdc,9c\xa8c\xda\xac*\xac\x0bm\xf6\xd8\xa6\
+\xdb\xc5\xdb\xcf\x1e;\xd9\xc1\xdeQ\xcfI\xc6\x99\xe2<\
+\xe8\xd2\xed\xda\xe2\xd6\xe0^\xe3Q\xeeY\xe2uk\x5c\
+\xe9\xf8R\xef\xb2\x09w&\xde\x9dT9\xb9fJ\x93\
+O\xbbo\xbf\x9f\xc8\x9f9U%\xc0d\x9a[`\xd0\
+\xf4\x84\x19k\x82\xf6\x06_\x09i\x9c9<[g\x8e\
+\xdb\xdc\xb0yY\xa1\x85aM<F\x84-\x9f\x1f\xb9\
++\xaa*\x86\x11;~~F\x5cI\xbc(\xd1U\x90\
+\xbe\xe0~\xb2\x8204\xa5(\x95\x5c\x14\xb8\xf8\xe4\x12\
+ri\xc8\xb2\x8b+\xd4V\xa6\xadj\xc8\xf0\x5c}.\
+S#k\xf5\xda\xee\xf5\xbc\x0d\xd5\xd9\xde\x9bn\xe68\
+\xe6^\xd9\xea\xb0\xed\xea\x0e\xd7\x9d\xa5\xbbg\xec\xe9\xc9\
+\xdf\xba\xcft\xff\x83\x83\x89\x87\xe5\x8f\x5c-\x88<\xce\
+:Qx*\xe1\x8c\xce\xd9\x87\x85\xcb\xcf[_\xe8*\
+>})\xe6\x8a\xe9\x1f\x8d\xd7\xf2n\x04\xddR,\xa9\
+\xbd\xb3\xbdt\xfa=\xa5\xf2\x9a\x8aM\x7fNy\xc8\xac\
+*{\xbc\xa8\xc6\xaa\xb6\xbd\xfe`Cp#\xfb\xd9\x8d\
+\xe7\xf3\x9b\xd5_V\xbc\x16\xb6\xa8\xb6\xdeh\x8b}\xc7\
+\xf8\xebP\x87\xf7\x87\x97]Kz\x94zO\xf4;\x0c\
+T|\x9a\xf5\xb9cp\xed\x90\xeap\xa3H\x04\x88\xdf\
+\x8b\x00\x00Z\x8co\x18\x0f\xff\xe7\x88\x8fK\xf9\xbe'\
+\x09@\x8a\x9f0}\x1a\x00\x06\x00c\x81\xd0?\xf0{\
+\x8e\x18\xf8\x22\x0c<\xf1;\x15\x00\xe8\xb2@\xbe\x11\x00\
+\x5c\xf6M\xfa\xaf}\x85\xfcEB\x00\xf0J\x14,N\
+\x8a\x89\x8a\x16r<\x04\x828>\xc7+1^\x90\x22\
+\xe4'q9\x93\x12x\xe6\x5c\x8e\x95\xa5\xa5-\x00\xfc\
+\x07\x8f\x08\x91L8\xcf\x9b\xb0\x00\x00 \x00IDA\
+Tx\x9c\xed}y\x9c\x5cU\x9d\xef\xf7\xdc\xa5\xf6\xad\
+\xbbz\xdf\x93\xce\xbe\x07\x0cc\x10\x95\x00\x03\x08\x88\xe8\
+\xa0\xbe,\x84\x04\xf8\xa08\xce<\x9e\xcb\x88\x06\x12\xc0\
+\x91y\xbc7\x8e\xa3\x83\xdbg\x06\x01\xc5\x04d\x10|\
+\x82Q\x90@p\x09\x88\x06!\xa1\x93\xd0\xdd\xe9\xee\xa4\
+\x93\xde\xbb\xab\xba\xba\xd6[u\xef\xfb\xe3\xdcs\xb7\xba\
+U]\xd5I $\xf9}>\xf7S\xd5\xb7\xef\xbd\xe7\
+\xdc\xf3\xfd\x9e\xdfv\x96\x22\x00\x88\xa2(\x0a\xce\xc9Y\
+)\x1c\x00\x10B\xc8\xbb]\x91s\xf2\xee\x08Q\x0fM\
+\xcei\x83\xb3K8\xeb\x89s\xda\xe0\xec\x92<\x02\x00\
+\xe7Hp6\x89-\x01\x80s$8[\x84+f\xf2\
+\x09!\xe4\x89'\x9e\xe0\xdf\xc1\xfa\x9c\x93wX\x88\xa2\
+(\x04\x00\xac\x1d~\xdb\xb6md\xf1\xe2+\x9c\x92+\
+\xed\x05\x17\xcf\xad\xbb\xfa\xea\x89w\xa5\x86\xe7\xe4\x94\x8a\
+F\x00@'\xc1\xb6m\xdb\xc8G?\xfaQ\x17\x17\x08\
+xG\x06\xc6}S\x93R \x97\xcb\xa4>\xf9\xb1K\
+\x0e\xbdk5='\xa7DL\x04\x00\x80'\x9ex\x82\
+[\xb4\xe8\xc3n\xb7[\xf1&ri\x1f\x0790>\
+6\x15\x1c\x1d\x9f\x08)\x8a\xa2\x1c\xed\x8e\xff\xfa\x1f\xff\
+\xf1#\xe9w\xab\xc2\xe7\xe4\xe4\x0a\x01%\x01\xfb\x9b\x03\
+\xe0\x89\xc7\xe3\xde\xc1\x89\x84\x1fr6\x90M\xe6\x82\x92\
+\x92\xabH'S\x15\xc7\x87F+r9\x85\x83$o\
+\xbf\xee\xba\x0f\x1d=\xa9\x159A\xa7\xf3\x5c\xfebf\
+\xa2%\x82^|Q\xe1/\xbe\x18^\x00^\x00~\x00\
+\x81\xe3\xc7\xc7BYE\x0e%\xe2\xe9\x0aE\xc9V\xa6\
+R\xd9\xca\xc1\xe1\xb1j)+\xb9\xb9\x1c~p\xcd5\
+\x17\xbd4\xa3B\x8b\x83=\x13\x22\xd8\x82\x7f\x8e\x14\xd3\
+\x0b\x01@\xf6\xef\xdf/z\xbd^OMM\x8d\xd7\xe3\
+\xf1\x04\x00\x04\x00\x84\x00\x84\x86F\xa3\x15R&S\x99\
+\x88\xa7\xc3\x92\x9c\xab\xcaf\xe5\xea\xa1\xa1\xd1\xea\x8c$\
+\xd5\xc8P\xfe\xf5\xda+>\xf0\x1f%\x17f\x06\xde\x0a\
+4\xb19_\x88\x0cV`\x95\x02\x9f\xf4\x8fsD(\
+(\xe4\xa1\x87^t-ZT\xeb\xf5z\x9d^\xbf\xdf\
+\xe3\x0f\x85\x82\x81@\xc0\x1d\x02%@%\x80\xca\xf1\xf1\
+X8\x99\x96\xaa\x92\xc9du:\x9d\xa9V@jF\
+\xc7\x22\xd5\x89D\xca!+\xca\xc3\xd7\x5c\xb1zs\xc1\
+\x02\xf2{\xbb\x11hb\xf3\xb7\xf1\x9a\xe9\xc4\x08\xacl\
+9g\xfd\x9b\xfeq\x8e\x0c&\x11\x1c\x8e\x98/!\x87\
+|.\xde\xe9Oe3\xa1\xc9\xc9\xa9@\x0e\xb9\x8a\x8a\
+\x80\xaf\x02@\x18@\xb8\xb2\xd2_\x15\x9dLTs<\
+\xaay\x9e\xab\x89\xc7S\xe1p8$\x8aB\x0c\xd1X\
+|\xd3\xb3\xcf\xedi\x93\x12\xe9\x8f_w\xdd\xc5\x11\xa0\
+ \xe8V\x809\x9b\xff\x99\xce\xbf\xf5V\xd7EZE\
+\x85\xfc\xca?\xf5\xd4\xb3o\xdeq\xc7\xff\x8c\x80\x82\xac\
+\x80\x82\xce\x00fe\xb1\xf3\x00\xa0\xb0\xba\x9d#\x02\x15\
+\xf2\xe0\xcf~U\xed\x17\xf9\xc6\xc6\x86\xba@(\xe8\xaf\
+p8\x5cA\x97\xd3Q\xe9p\x88\x955U\x810\x80\
+jv$\xd3\xd9\x9a\xc9\xc9\xa9\xcatF\xe2c\xb1\x04\
+dYF<\x91D$:\x05YV\xfe\xaa(\xd9\xcd\
+\xd7\x5cq\xd1\x1b\xc6\xe7\xc3\x0c4g\xf7\xf9\xd4SO\
+\xb5\xae\x5c\xb9\xeaC\x1e\x8fw\x89\xd3\xe9Z\xeat:\
+\x96p\x1c\x17,Zq\x03\xc5dY\x8ef\xb3\xd9}\
+\xe9t\xea\xf7\xd1h\xf4\xcdg\x9eyn\xf7?\xfc\xc3\
+-\x11P\xe0\x19)\xac\xc79\x12@\xedu?yr\
+g\x9d\x87w\xbf?\x14\xf6W\xd4VUV\xb8\x9cb\
+\xa5\xdb\xe9\x0a;\x5cbUUe\xa0\x1a@\x8dz\x84\
+\xa4\xac\xc2E\xa31HR\x0e\xe3\x13Q\xe4d\x05\x19\
+I\xc2\xe8X\x14\x8a,G2r\xf6\x13\xd7]y\xd1\
+n\x14\x00\x1b\x00\xb7z\xf5U\x95\xb7\xdf\xfe\xf9\x0f\xae\
+Zu\xde\xd5UU\xa1%N\xa7s\x89\xa9R'\x98\
+\x84&\x04\x90$i_,\x96\xf8\xe9\xbe}\x7f\xfe\xe5\
+e\x97]\xd6\x033\x194Mq\xb6\x93@S\xcb;\
+~\xfe\xfc\x5c\x87\xc3yeE\xc0__\x13\x0eU\x89\
+\xa2P\xe5\x0b\xb8k\x04\xc2WWV\x85j\x04\x0e\x01\
+vm.\x07\xc4\xa6\x12\x90\xb2Y\x8c\x8cE \xa5%\
+\xc8\x8aB\x09\x91\x95\x91\xc9H7\x7f\xf4\xaa\x0f<\x0a\
+\x0a:\x07\x80\x07\xc0m\xdd\xfa\x1f\x1b\xd6\xac\xb9\xf0\xea\
+\x05\x0b\xe6|$\x14\x0ah\x95\xe0\x0a\x8eH\xd8Tx\
+\x06\xe4\x90$i\xdf\xd8\xd8\xd8}--\xf5O#\x9f\
+\x08\x00\xce^\x22\x98\xe6\x03\xfc\xecg\xbfmp\xfa\x5c\
+_u:\xc5\x96\xc6\xba\xeaj\xd1!\xd6\xf8\xbc\x9e\x1a\
+\x87C\xf0\x05\xfd\x1e8\x1c\xba!V\x14`2\x96\x80\
+$e119\x85\xf8T\x029Y\xc1\xd4T\x02\xe9\
+T\x06\x99l\xfa\xd1\x8f^\xf9\xc1\xcf\xad^}U\xe5\
+'?\xf9?\xfe\xfe\xa2\x8b.\xb8u\xee\xdc\xd6\xa0\xd3\
+\xe9\xccK;\x17\x93\x93I\x8e\xe1\xe1\xa1\xdb\x9a\x9a\xea\
+~\x0c \x87|\xf3pV\x92 oB\xc8\x8e\x9f\xbf\
+0\xdb\xe7r\xdd\xebp\x88\x1f\xa8\xae\x0e\xd5\xb8\x5cN\
+w0\xe0\x87(\xf2\xb0#\xc1T2\x83lF\xc2x\
+d\x12\x93\x93q@Q0\x95L!\x95L\xa3\xaf\xbb\
+\x7f\xff\x82\x05s\x9a\xcf?\x7fqQ{n\xaa\xd0)\
+&\xc7\xc0\xc0\xc0\xe7Z[\x1b\x1e\xc19\x12\x00(0\
+#\xe8\xd1\x9d;\x03A\x12|^\x10\x84\x0b\xeak*\
+\xe1p\x88\xf0\xfb=p\xbb\x9cp\xba\x5c\xf0{\x1dT\
+\x7f\xaaM\x95IKH\xa7%\xc4\xe2\x09\x0c\x8fL \
+\x16\x9dB,\x9a\xc0E\x17\x9d\x07\xa7\xd3axz>\
+b\xe5\xa8\xf4\x93E\x8e\xd1\xd1\xe1\xaf56\xd6~\x07\
+\x94\x049\x18\xfc\x82s\x0404\xc03\xbf\xd9\xf3\x90\
+\xc0\xf3\x9bB!?\xbc\x1e7B!\x1f<n'\x1c\
+\x0e\x11\x1e\x97\x8b\xe2)\xd3\xd6\xcb\xe6\xb2\xc8\xa4%\xec\
+\xdb\xd7\x09\xbf/\x80\xf6\xf6f\xfb\x02\x0bb\xf8\xce\x92\
+#\x91Hl\xaf\xa8\xf0~\x06@\x16g1\x09\xc8t\
+\xef\xfa\xecs\x7f\xfc\x16G\xb8\xdbC\xa1\x00\xbc^7\
+<n'\xc2\x15Ap<\x07\xaf\xc7\xad_\xa8(\xf8\
+\xfd\x1f\xfe\x8a\xb6\xd6f\x84\xc3\x15\xda\xe9\x13\xb7\xe1\xf6\
+\x0f8\x19\xe4H&\x13\xdb++5\x12\xc8\x86\xe3\xac\
+!\xc1\xb4\x04\x00\x80g\x9f{e\x13\xc7q\x0fy<\
+N\x84\x82\x01\xb8]\x0e\x84\xc3\x01\x88\x9c\x00\x97\xdb\x01\
+I\xcaa\xd7\x0b\xafa\xf5\xea\x95\x16\x95o**\xef\
+\xcc\xe9@\x8eD\x22\xb1\xbd\xaa\xcaw\xd6j\x82\x92\x08\
+\x00\x00\xcf\xfc\xfa\x95\x8by\x9e<\xe5\xf6\xb8BA\xbf\
+\x17N\x87\x88\xfa\xba*\xf0<\x87\xdf\xff\xeeu\x5cp\
+\xc1\x0a8\x1c\x85\xc0W\x0b+\x08\xcc\xbbK\x0e\x0b\x09\
+\xce*MP2\x01\x08!\xe4\xc9\xff\xb7{\xa5\xd7\xed\
+zA\x10\xc5Pe\xc8\x07A\x14q\xac\x7f\x10\xcb\x96\
+,\x80\xcf\xe7\xb5\xbb\xab\xf4\x8a\x9cdrd\xb39d\
+\xb3\x12\xdcn\x97\xcd\x7f\xf3\x1f\x10\x8f'\xb6\xd7\xd4\x9c\
+}$(\x87\x00\x1c\x00\xee\x1b\xdf\xf8v\xc5y\x17\xac\
+\xfa\xad 8\x96\xc5\xa2SX\xbcp.jk\xab\xa7\
+\xb9\xd7\xf6l\xe9\x95,\x93\x1c\x03\x03\xc7\xd1\xd3\xd3\x83\
+l6\x87E\x8b\x16\xa2\xaa\xca\xbe~\xd6\xe7R\x12\x04\
+>\x0b@\xc2YB\x82\x92\x08\xa0\x0e\xa0\x10\xd0\x8c\x1e\
+\xff\x99\xcf\xfc\xaf\xf0e\x97_\xb3\xb3\xa6\xaaj\xe9\xb2\
+e\x0bm\xae/\xa3\x02'\x91\x1c\x83\x83\x14\xf8T*\
+\x0dB\x088\x8e\xfes\xfe\xfcE\xa8\xad\xad-Is\
+$\x12\x89\xed55\x01[\x9f\x008\xf3\xf2\x04\xd36\
+\x89\x01|-\xad\xdb\xdb{XLL%C\x0b\x16\xb4\
+\x83\xb6\x87\xf9P\x14\x05\x8a\x02\xdb\xc3*\xf6\xd7)\xb6\
+\xcf\xb5\x9b\xf7\xa1(\xc0\xc4\xc4\x04\xf6\xee\xdd\x8b\x8e\x8e\
+\x8e<\xf0C\xa1\x0a\xd51U \xcb\x0ad\x19\xb6\x07\
+\x13\x8f\xc7\xb3nxx\xf2\x87\xdf\xfc\xe67\xc3\xa0\x84\
+7\x8ec\x9cq\xd3\xe5m\x06Y\xa9\x18^\x945\x00\
+\xaf^/\x5cy\xe5'\xbe\xbat\xe9\x82fQ\x14\x01\
+\xd8\x03\xcb\xc0\xb26\x17\xbd\xd6\xbe\x0d\xed\xaf-\xfc\xdc\
+\x89\x89\x09\xf4\xf6\x1eF$\x12\x01!\x00!\x9c\x06\xbe\
+\xcb\xe5F{{;*+\xab,\xcf\xb2\xaf\x17%\x01\
+=\xe9ry\xd6m\xde\xfc\xb9\xa5\x92$]u\xc7\x1d\
+w\x8c\x81j\x035\xebA\x87\x94\xcf\x14M`K\x80\
+\x02\xe0\xf3\x00\x84M\x9bno\xaf\xad\xad\xbf\xb5\xa5\xa5\
+\x11\xb2\xb1\xeb\xa8\xc2Y\xf4\xec\xa9 G2\x99Do\
+o\x0f\x06\x07\x8f\xab1>\xc7\xea\x0dQ\x14\xd1\xde\xde\
+\x8e\xda\xda:SY\xec\xb9\x91\xc8\x04B\xa1\x8ai\xeb\
+%\x08\xc2\xd2[o\xfd\xc7_\x01`$\xc8\xa9\x17\x9d\
+Q$(\xa8\x01\x90?IC\x00 \xaeZ\xf57_\
+\x993\xa7Uk\xc0\xfc\x9e\x94O\x0a&'J\x8ed\
+2\x85\xde\xde\xc3\x18\x1c\x1c\x00!\x04\x84\xf0\xea\xb5\x14\
+\xf8\xc6\xc6F466A\x10\x84\xbcgG\x22\xe3\x9a\
+\xb6\xa8\xafo\xc0\x82\x05F\xdf\xc5\x5c\x18\xbb\x97\xe7\xc5\
+\xa5\xb7\xdc\xa2\x91`\xd4\xf8\x9a8CH\x90G\x00\x83\
+\xcd\xcf\xeb\xfd\x1b7~f\xb6\xcf\x17\xf8Tmm\x8d\
+v}\xb1\xd7?Y\xe4\xc8f\xb38r\xa4\x0f\xc7\x8e\
+\xf5#\x97\xcb\xaa\xea^\xab/\xea\xeaj\xd1\xd2\xd2\x06\
+\x97\xcb\x9dwo$\x92o&\x86\x86\x86\x90H\xc4\xb1\
+t\xe9\x0a\x08\x82\x00@)\xe8\xb8\x8a\xe2\x99M\x82\xe9\
+4\x80\xd1\xf6\x8b\xef\x7f\xff\x9a/\x07\x83>\xb8\xddN\
+\xd8\xbd\xb3\xd5?:\x19\xe4\xe8\xed\xedA\x7f\xffQd\
+\xb3Yp\x1cQ{>%K(T\x81y\xf3\xe6\xc3\
+\xe5r\xa9\xe5\xe9@\xeafb\xc0t\x0f@\xe0r\xb9\
+\xd0\xd0\xd0\xa4\x82?]]\x15\x88\xa2\xb0\xf4\xe6\x9b\xff\
+\x81\x91`\x1c\xd4'\x00\xce\x00\x12\x98\x08`\xb1\xfdF\
+\x02\x88\x1f\xf8\xc0\x9a\xaa`0x}\xb1\x98\x7f\x9au\
+\x86\x96k\x0bW\x8a\x10`pp\x00\xbd\xbd\x87\x91J\
+\xa5\x00\x10\x0d|\x00\x08\x06ChmmC \x10\xc8\
+\xd3\x1c\x89\x04\x05~hh@+\x97i\x0cA\x10\xd1\
+\xd8\xd8\x84\xd6\xd6VC}\xa7\xf79\x14\x85j\x02\x03\
+\x09\xc6\x0c\x97\xbe\xa7I`\xa7\x01\xac\xe0\x0b\x00\xc4\x8f\
+~\xf4\xfa\xab9\x8e\x83\xdf\xef\xcb\x03\xba\x94\xc8\xa8T\
+r\x8c\x8c\x8c\xa0\xab\xebm\xa4\xd3\x14xB85~\
+'p:\xddhmmCmm\xadv=\xd3\x1c\xb9\
+\x5c\x0eG\x8f\x1e)\xa0-\x08Z[\xdb\xd0\xd0\xd0h\
+\xe3\x1f(\xc8f\xb3\x98\x9a\x9aDEE\xa5\xa1\xbe\xac\
+)t\x11\x04q\xe9\xe6\xcd\x9f\xdf\x09\xe0#g\x0a\x09\
+\x8a\x11@\xb3\xfd\x00\xc4\xea\xea\xba\xcb9\x8e\xd3\xd4\xad\
+Q\xca\xe9\xf9v\xa2(\x0a\x22\x91\x09\xf4\xf4\xf4 \x1a\
+\x1d\xd7@c!\x1d\xcfS\x07\xaf\xb5\xb5M\xbd\xde|\
+?3\x13\xb9\x5c\x16FmA\x08\x87\x9a\x9aZ\xb4\xb6\
+\xb6\xc1\xe9t\x02\xd0\x09\xc3q\x1c$I\xc2\xb1cG\
+p\xf4h?d9\x8b\xf9\xf3\x17\xa1\xae\xae\xdeX3\
+\xf5\x1d\xf43\x0e\x87\xb8d\xf3\xe6\xcf\xed\xbc\xe0\x82\x0f\
+}\xf6\x92K.\xdc\x0b\x9d%\xefI\x12h\x99@\x83\
+\xfa7\x02\xef\x04\xe0\x02\xe0y\xfc\xf1\xe7\xf7r\x1c\xf1\
+_t\xd1\xea\xa2\x0f,o\x10\x87`j*\x86\xce\xce\
+C\x88F#\x008\x8d0\x0c\xfc\x96\x96\xd6<{\xcd\
+dpp\x10\xbd\xbd\x87\x91N\xa7A\x08\xd4\xe4\x0f\x05\
+>\x18\x0c\xa1\xa5\xa5\x05\xc1`H}\x9e\xf9\xde\xfe\xfe\
+\xa3\xe8\xed\xed\xc9\xd3\x16\x8d\x8dMho\x9f3m\xdd\
+eY\x8e\xbe\xf9\xe6\xebW_r\xc9\x85\xaf\xc3<~\
+\xf0\x9e\xca\x18Z[\xd5\x1a\xffk\xe1\x9f(\x0a~Y\
+V\xa6U\xffE\x1c}\x139\x98\x9364t\x1c\x0c\
+4\xb3g_\x8f\x96\x96V[\x8d\xa3\x9b\x894\xacn\
+\x8b\xcb\xe5\xc6\xdc\xb9\xf3\x11\x0a\x85L\xf7\xb0j\x0f\x0c\
+P\xdf\x22\x93I\x83j\x0bN\x8b\x0ejj\xea\xd0\xd0\
+`\x9f\xdf\xd0\xdf\x81c\x9f\xc1e\xcbV>\xbbk\xd7\
+\x1f\xafV5\x81\xd6\x04x\x0fi\x02;\x02\xe4\x85\x7f\
+\xcb\x97\x9f_I\x08\x01\xcf\x03\xb1X\x14\x81@H#\
+B9\xea_\x96\x81\x5c.\x8b\xce\xceC\x18\x1c\x1c\x00\
+\x05\x80W\x01\xd0S\xb7\xed\xed\xed\xf0z}y\xcf\x8f\
+D\x22\xe8\xed\xed6i\x0b\xaa)\xa0\xf9\x0755\xb5\
+\xb6\xf5\x8aD&p\xf0\xe0\x01\xa4\xd3)\xb0H\x97\xf6\
+|\x0e\xa1P\x08\xcd\xcdm\x08\x06\x03\xea\xbd\xc6w0\
+\xbf\x93\x85\x1c\xc1%K\x96\x1bI\xa0\xc0\x901,\xd8\
+0\xa7\x91\x08@^~\xdb\x98\x07\xe0\x01\x08\x17_|\
+\xf9\x22\x8e\xe3\xa0(\x0a:::\xb1h\xd1\x5c\x84B\
+!d\xb3Vm`~\xb8\x11\x84l6\x8b\xfe\xfe#\
+\x16[\xcdi\xe0;\x9dn\xcc\x9f?\x1f\x81\x00\xed\xb9\
+\xc6v\x8e\xc7\xa7\xd0\xd9y\x08\x93\x93\x11\xb5\x0c\x06>\
+ \x08\x02\x1a\x1b\x9b\xd0\xd0\xd0\x08\x96\x9a6\x0a\xcd\x03\
+\xf4\xa8y\x00=\x1cd\xe9\xe2Y\xb3f#\x1cf\xe9\
+b\xa5\xech\x85\xe3\xb8\xe0\x92%\xcb\x9f\xdd\xbd\xfbO\
+W}\xf8\xc3\x17\xec\x05\xcd\x18\xb2q\x83\xd3\xde\x14\x14\
+\xd2\x00&- I\xb2\xc0\xf3\x1cdY\x86\xa2\x10\x1c\
+8\xd0\x85\xc5\x8b\xe7\x22\x10\x08\x22\x9b\xcdi7\xd3W\
+\xb5w\x02h\xde\xbe\xc7`\xab)\xf8N\xa7K\xed\xb9\
+u\xea3t\x10R)=\x96\xa7\x9aWO\xf9\x02\x04\
+55uhoo\xd7\xfc\x03c[\xa7RI\x1c<\
+\xd8\x91\xa7-\x00\xa8\xe9\xe29\x9a\xb60\xcaLBY\
+B\xb8\xe0\x82\x05\x8b\x7fe \x01\xa0\xae98\xddI\
+`$\x805\x07\xa0\x91\x80\x90\x1cGU-\x05@\x96\
+ettP\x12x\xbd\x01\xe4r9\xc3ch\xd7\xb5\
+j\x83\xaa\xaa0\xce?\x7f\x15::\xdeB&\x93\x86\
+(\x8a\xa8\xafg=\xd7\xccCI\x92\xd0\xd5\xf5\xb6\x9a\
+\xc41\x12\x86\xf6\xfap\xb8\x1a\xb3g\xcf1x\xf6\xfa\
+\xbd\xe9\xb4\x9e\x07P\xa70h\xe0\x1b\xb5\x05\x0d\x075\
+\x07\xb8\xa4\xc6*\x86#\xc7q\xc1\xb6\xb69\x7f\x0f\xe0\
+3\xd6\xc68\x9dIP(\x13h\x1c\x02%\x8aB\xd7\
+T\x12BY\xcf\x88\xc0\xccA0\x18B:-\x99\x1e\
+`\xf7\xba^\xaf\x0f+W\xbe\x0f\xc3\xc3\x83\xa8\xad\xad\
+\x83 \xf0\xea\xb52\x00\x0e\xd9\xac\xa4\x9a\x09\x96\xf2e\
+\xc0P\x10\xa9\xadn\xd5<{\xab\x899v\xec\x08z\
+{{4\xdbN\x9dK\xfa:55\xf5\x98={6\
+x^\xc8\x8bTN4\x8c\x05\x80\xa1\xa1\x11\xfc\xe0\x07\
+\x8f\xb7=\xfd\xf4o\xce\xbb\xee\xba+\xacN\xe1iK\
+\x82bQ\x801\x12\xe0x\x9eh=\xcdH\x84\x83\x07\
+\xbb\xb1b\xc5b8\x1cN\xa4R\x92\xe1\x11\xba\x18\x1b\
+\x5c\x10x444\x020\x93\xa4\xb7\xb7\x1b\xc7\x8e\xd1\
+$\x0e#\x1bS\xfb.\x97\x0b\xb3f\xcd1\xd8j\xbd\
+\x1e\xcc\xb7`\xf72m\xc1\xfe\x1f\x0c\x860w\xee|\
+m\x9c\x00(=R\xa1e\x15'G6\x9b\xc5\x13O\
+\xfc\x1a\xcf>\xbb\x1b\xb7\xdd\xb6\xee\xc2U\xab\x96\xef\xee\
+\xee\x1e\xd8\xde\xde^\x7f\xab\xf11\x00\xe4\xd3\x91\x04\xc5\
+\x12A\xdaA\x88B\x08\xe1\xc1\xf3\x0a\x14E\xce#\xc2\
+\x9bo\x1e\xc0\x8a\x15\x8b\xe1r\x89H&\xa5\xa2c\xed\
+V\x19\x1a\x1a0\xc4\xf2\xc4`\xab9\xf0<\x8f\x96\x96\
+6\x8d0\x86\xa5|\x00h\x1e\xa0\xab\xab\x13\xd9,u\
+*\xd9}\x84\x105\x0f\xd0\x86`\x90.J*\xd4\xee\
+3\x0dc9\x8e\xc3\xab\xaf\xbe\x8e\xef\x7f\xffq\xac^\
+\xbd\x02\xdf\xfd\xee6x<\x1e\x002\x9cN\xef\xba\xee\
+\xee\xa1\xe0\x8e\x1d\x8f~\xe6\xce;\xbf\xc8\x86\x929\x9c\
+\x86$\x98n0H\xfdT\x08\xc7\x11\xb5\xe7\xe5\x13\x01\
+P\xf0\xc6\x1b\x1dX\xbe|\x11\x02\x017&'\x936\
+\x8f\xcb\xcf\xaa\xa5\xd3)\xf4\xf7\x1f1\x80O\x8b\x13\x04\
+\x11\x0d\x0d\xcdhll\xd4\xcc\x04\xa0\xf7|6N`\
+$\x0d@Aq\xb9\x5chiiU\x1d<\xce\xd6\x14\
+\x99\xf3\xfc\xe5\x85\xb1\x1cG066\x8e\x1f\xfe\xf0q\
+\x0c\x0e\x8ea\xcb\x96\xcf\xa1\xad-_\xa3\x89\xa2\xfb\xea\
+\xb5ko\xdc\x09\xe0#\xa73\x09\x0ai\x00\xcbw\x1e\
+<O\x09 \xcb\xb0%\x82\xa2(\xd8\xb7\xaf\x03\xcb\x96\
+-B0\xe8F4\x9a\xb0y\x9c\xb9\x91\x1c\x0e\x17\x96\
+/?\x1f\xdd\xdd\x9d\x18\x19\x19\x04@PWW\x87\xe6\
+\xe66[\x07/\x12\x99@ww'\xe2\xf1\xa9<m\
+!\x8afmA\xcb\xb1wH\x8bE+\x85\xc8A\xb5\
+\x9d\x8c\xa7\x9f\xde\x85'\x9f|\x1e\xd7_\x7f\x05\xee\xb8\
+\xe3\xb3\x86|\x08-\xcfL\x02q\xe9\xda\xb57\xee\x94\
+$\xe9\xaa{\xee\xb9c\x14\xa7!\x09\xec\xa2\x00\xab\xa8\
+&\x80\xe67x\x1eE\x88\xa0`\xdf\xbe\x83X\xbat\
+\x01\x02\x01\x0f&'\x93\x06O\xdb\xf6\xd1\xe0y\x1e\xf3\
+\xe6-@UU5\x9cN\x17\xbc^:\xbd\xdc8\x85\
++\x12\x99@__\x0f&'#`\xaa\x9ei\x0b\x80\
+\xd3\x80\xe7y^\xed\xa5\xe6R\xec\x9b\xb9tr8\x9d\
+<\xfe\xfa\xd7\x03\xf8\xeew\xb7\xa3\xa9\xa9\x0e\xdf\xfb\xde\
+\xdd\xf0z=\x05\xc1\xa7\xa4\xa5\xf3\x22\x05A\x5c\xbai\
+\xd3\xad\xfbW\xaf\xfe\xe0UW^\xf9\x81\xd7\xa1\xcf,\
+R\x08!\xf4\xcaw\x91\x08\xc5L\x80Ih\x22\x88\xa8\
+/]\x9c\x08\xfb\xf6\x1d\xc2\xd2\xa5\xf3\x11\x0e{16\
+\x16\xd7&\x89\xe6\x8bN\x8e\xca\xcaJ\xd39\x80 \x9d\
+N\xa1\xb3\xf3\x10\xc6\xc6\xc6\x0cy~]\xe5\xd7\xd4\xd4\
+\xa3\xb5\xb5U\xd3\x16\xec\xdeb>G9\xe4p8\x04\
+D\x22\x11|\xfb\xdb\xff\x8d\x8e\x8e\xc3\xb8\xfd\xf6\x1b\xb1\
+x\xf1<\xf5\xbe\xe9\xc1gu\x22\x84\x0b\xce\x9b\xb7\xf0\
+W\xbf\xf8\xc5\xcbW\x7f\xecc\x1f2\x8e\x1d\x10\xbc\xcb\
+i\xe3\x92\x86n8\x8e\xd3\x06L\xe8w\x1el\x02&\
+\xcf\xd3C\x1fP\xe1\x01(\xd8\xbf\xff\x10b\xb18\xc2\
+a/\x00R\xd6\xcc`\x9a\xc4y\x0b{\xf6\xfcA\x05\
+\x9f^\xc7\xc0\x0f\x06CX\xb1\xe2|\xcc\x9d;\x0f\x0e\
+\x87\xb3\xac\x99\xc5\xa5\xcc\x0c\xe6y\x1eN'\x8f\x9d;\
+_\xc2M7\xdd\x89\x86\x86:<\xf8\xe07\xb0ti\
+\xf9\xe0\x1b\x93EK\x96,y\xf6\x0f\x7f\xe8\xf8\x18h\
+\xc7c\x11\x96\xeah\x97\x18o\x9ed)C\x03\xe8y\
+\x00Yfqma\x8d\xa0(\xc0[o\xbd\x8d\xc5\x8b\
+\xe7\xa1\xaa\xca\x8bH$\x0eI\xa2\xadl7\xd6\xce\x84\
+\x10@\x92r\x18\x1d\x1d\xd5F\x04\xe9y\x02\xaf\xd7\x8f\
+Y\xb3\xda\x11\x0c\x06U\xd5m\xd7iJI\xe5\xda\x9b\
+%B\x08\xdcn'\xba\xbb\xfbp\xff\xfd\xff\x85P(\
+\x80\x1f\xfc\xe0nTW\x87\x01\xd8E\x08\xa5\x81O?\
+\x15\x10B\x82\xf5\xf5\xf5\xdb\xf7\xec9\xf8\xb9\xd5\xab\x17\
+<\x02=m\xfc\xae\xe5\x0a\x8c\x04\xb0+X\x01\xa0\xf0\
+<\xaf0\x1f\x80\xcd\xae)\x8d\x08\x8aJ\x82\xf9\x08\x87\
+\x03\x18\x19\x89\x19R\xc7\xf6 (\x0aM\x18\x9dw\xde\
+*\x1c8\xf0\x16\x12\x898\x5c.\xb7\xc1\xb3\xd7\xaf\xb3\
+\x97\xc2\xf3\xfb\x0a\x91\x83\x02/\x22\x99L\xe2\xdb\xdf~\
+\x0c/\xbf\xfc\x17\xdc~\xfb\x8dX\xbdz\x85\xd6\xdb\x19\
+\xf8\xe6\xdeo.\xb7\x18\xf8:Q\x14TW\xd7|o\
+\xcf\x9e\x83PI\xa07\x06\xdey\x12\x105\xf7n\x1a\
+\xfc\x81>\x0f@\xdb5\xf4\xd5W\xdf\xdaMU(\xcb\
+\xdc15K_J\xff[1\xfd\x9f\x85N\x0b\x17\xce\
+C(\xe4\xc7\xc8\xc8$\xb2\xd9\x22\xc1\xb6\xb1r\x04\x18\
+\x1e\x1eDee\x95a>@>\xba\xe5(O\xeb\xb5\
+.\x97\x08\x87\x83\xc3s\xcf\xed\xc1\x0f\x7f\xf8\x04.\xbd\
+\xf4o\xb0n\xdd5&'\xcf\x1e\xfc\xc2\xbd\xdf|\x9d\
+\x19|\xfd<\x90H$~\xba|y\x93u=\xa2B\
+\x1f\xf1\xce\x90\xc0J\x00\x0e\x80\x08\xc0\x01\x0b\x01^x\
+\xe1\x95\x87\xfd\xfe\xc0lfW\xcb%\x02@\xb0x\xf1\
+<\x04\x02~D\x22\x09\xc4\xe3\xf9\xfbM3u_R\
+\xc5\x0bD\x15\xa5]G\x1d<\x9f\xcf\x85\xae\xae^|\
+\xf3\x9b\x0fC\x96e\xdc~\xfb&\xcc\x9a\xd5d\xa8s\
+\xf9\xe0[{\xbf\xfe\x1c3\xf8\xacm\x12\x89\xe4\xf6\x15\
++\x9ao\xc5\xbbD\x02;'\xd0\xe85i\x0b${\
+{\x0f\xbf\xc2ql\x08\x97S\xa7jq0\xae\xc61\
+:\x83Vg\x91\x10\xa0\xa3\xa3\x0b\x93\x931\x84\xc3\x1e\
+x\xbd\xce\xbc\x82\xa9\x83f\x7f\xe4U\xb2\x80\xe3gu\
+\xfat2B\x0d\xcb8\x84B\x1e\x88\x22\xc1\xb7\xbe\xf5\
+0\xbe\xf6\xb5\x7f\xc7\x9a5\xef\xc7w\xbes\x97\x06\xbe\
+^\x1fV\xd6\xcc\xc0\xb7ZU+\xf8\x8a\x02\xb8\xdd\xae\
+uo\xbc\xd1\xff\xf8\xb6m\xf7\x87aH\xbd\xe3\x1dr\
+\x0c\x8d\x04P\x0c\x9fF\xf0s\x00r\xdb\xb7\xff\xe47\
+\xb9\x5c.\xce\xf3\x14\xfc\x99\x10\x01\x90q\xe0@7&\
+'S\x08\x87=\xf0x\x0ay\xf0\xf9\x15-\x95\x1c\x85\
+\x9eG\xc7\x05\xdc\xf0\xfb]x\xf9\xe5\xd7\xb0v\xed\x97\
+0>\x1e\xc5\x0f~p/>\xf6\xb1Ka\xeclv\
+\x1d\xafT\xf0\xd3\xe9$\x0e\x1d:\x80\x97_~\x11\x83\
+\x83\x83Z\xdd\xed\x9fG\xcf;\x1c\xce\xab\xaf\xbf\xfe\x86\
+_\xab$`\xeb\x11\xd9\x9c\x82SJ\x04\xa3\x09\x00\xf4\
+Y@\x22\xa8\x1f\xe0\x86n\x06\x82\xff\xf2/\xffv\xdd\
+\x95W^\xf3y]\xad\xc9y!W)\xa6A\x10\x04\
+,X0\x07\x81\x80\x1bSS\x19\x8c\x8e\xc6\xa0\xcf\xdb\
+/\xa1\xd2e4\x07\xcf\x13x\xbdNx\xbd\x0etv\
+\x1e\xc1\x03\x0fl\xc7\xd0\xd0\x18\xbe\xf0\x85MX\xb2\xc4\
+\x1c\xd6\x19\xbf\x17\xeb\xfdv\xe0KR\x16G\x8e\xf4\xa0\
+\xbf\xbf\x9f\xd5\x12\x1c\x07\xb4\xb5\xcdF]]\x93m\xef\
+g\x04`\x0es6+\xed{\xf2\xc9G\xaf\xbc\xe7\x9e\
+\xaf\x8cC\xdf\xc0J\xad\x86rJ\xf2\x05V\x02\x18\xa7\
+\x82;@\x09\xe0\x01%\x80\x1f@\xf0\xde{\xef\xbf\xe6\
+\xdak?\xfe\x19\xb3}+\x9f\x08\x0e\x87\x03\x8b\x17\xcf\
+\x85\xcb%j$(X\xc9\x19\x92\xc3\xe3q \x10p\
+!\x93\xc9\xe0G?\xfa9~\xf1\x8b\x97p\xfd\xf5W\
+`\xfd\xfak\xf2\x1c6\xe3\xf7rT\x7f.'\xe1\xe8\
+\xd1~\x1c;vDsn\xd94v\x00\xa8\xabkD\
+k\xebl\xf59\xf6\xe0\x1b\xcb\xca\xe5r\xd1\x9e\x9eC\
+\x1f\xb9\xf6\xda\x8bY\xd6\x90icE\xbd\xee\xe4\x13\x00\
+\x80]$ \x82:\x82n\x00>\xe8$\x08l\xdbv\
+\xdfG>\xfe\xf1O\xde\xcc\x1aa\xa6D\x10E\x07\x16\
+/\x9e\xa3\x91`l,\x0eY\x96\xcb\xf4\xea\xf3\xc9\xe1\
+t\x0a\x08\x85\xdc\xe08\xe0\xe5\x97\xff\x8c\xef\x7f\xffq\
+\xd4\xd6V\xe3\x0b_\xd8\x84\x9a\x9aJ\xb5.'\x0e\xfe\
+\xd0\xd0 \xba\xba\x0e!\x9b\xcd\x19\x1cX\xfaYYY\
+\x85\xd6\xd6Yp8\xd8\xaa\xa5\xe9\xc1g\xff\xcb\xe5\xe4\
+\xe8\xa1C\x1dW}\xf2\x93\x97\xee\x85\xc1\x0f\xc3) \
+\x81\x1d\x01\xd8L`\x16\x0e\xbaa&A\x00\x80\x7f\xeb\
+\xd6\xaf_\xfew\x7f\xb7v\x13\x03z\xa6Dp:\x1d\
+X\xb8p\x0e\xdcn\x11\xe9t\x0e\x03\x03\x11\x95 \x85\
+\x13E\x85D\x10xTVz\xe1t\x8a\xe8\xef\x1f\xc0\
+\x03\x0fl\xc7\x9bov\xe2\x8b_\xbc\x09\x17^\xb8B\
+\x9b\xd0\x99\x1f\xae\x95\x07\xfe\xe0\xe0 \xfa\xfa\x0ek\x8b\
+WX]\x09\x01\xfc\xfe\x10\x9a\x9b[\xe0\xf7\x07\xa7U\
+\xfb\xf9e\xe9f%\x9b\x95\xa3\xc3\xc3\x03\xb7]~\xf9\
+yO\xc1\xac\x09\xd4\xdbN\x0e\x09\xec\xd6\x05X\xcd\x80\
+\xd1\x17`\xfe\x80\x1f\x80o\xcb\x96\xaf\xff\xed\xa7?\xbd\
+v\xa3\xd1\x03\x9f\x09\x11\x1c\x0e\x11\x8b\x16\xcd\x85\xd3)\
+ \x93\xc9\xe1\xf8\xf1\x88\xad\xe3d\xa8\xb6\xe9/\x8e\xe3\
+\x10\x0a\xb9\x10\x08\xb8\x91Lf\xf0\xf0\xc3?\xc7SO\
+\xbd\x80+\xaf\xfc \xd6\xaf\xbf\x16>\x9f\xa7 \xf8\xc6\
+\xef\xcc\x16\xeb\xd7\x99\xc1g\x13L\xe9\xa0\x14X\xbb\x01\
+ p:]hnnEuu\x8dm\xc8788\
+\x88#Gz\x11\x0a\x85\xd0\xde>\xdfT\xae\x15|Z\
+UZ\xf6\xf8\xf8\xc8mk\xd6,{\x18\xa7H\x13\x98\
+\xb6\x88\xb1\xd1\x02,'\xc0H\xe0\x03%\x01\xd3\x06\xbe\
+\xbb\xee\xba\xf7\xd2O\x7fz\xc3\x0dF\xb0gB\x04Q\
+t`\xd1\xa29\x1a\x09\x86\x86bH\xa7\xe9\x1a\xccb\
+\x8bMB!\x0f\xfc~7\x14E\xc6_\xfe\xf2\x16\xbe\
+\xf9\xcdG\xe0\xf1\xb8\xf1\xc5/n\xc6\xec\xd9\xcdZ\xf9\
+\xb4\x1ch\xe51)\xd6\xfbY\xfdb\xb1)tw\xbf\
+\x8dH\x84\x8dF2\x0dE\xe7\x19\xd6\xd77\xa2\xa9\xa9\
+E}\x8e\x19\xfcHd\x1c}}\xbd\x88F#\xda\x0c\
+\xa7`0\x84y\xf3\x16\x80\xe3\x84\xa2\xe0\xab5\xc2\xf8\
+\xf8\xe8mk\xd6,c{\x1c\xb3-n\xd5\xea\x9e\x18\
+\x09\xec\x08@ki\xd8\x11\x04zf\xd0\xa8\x09|\xea\
+\xe1\xdd\xb2\xe5\x9e\xcb\xd6\xae\xdd\xb8\x81\x02;s\x22\x88\
+\xa2\x88\x85\x0b)\x09d\x198v,\xa2\x91\xc0*\x81\
+\x80\x13\xa1\x90\x0f\x82@p\xfc\xf80\xfe\xf3?\xff\x1b\
+{\xf6\xbc\x89\x8d\x1b\xaf\xc5u\xd7\xfd\xad\xa9L\xdaR\
+Z\x8bi\xcf\x98N\xf5\xd3\xfd\x08z\xd45\x0c\xe6\x09\
+\x22\x84\x10\xd4\xd77\xa1\xa9\xa9\x19</\xa8\xcf\xd1\xef\
+\x8f\xc7c\xe8\xea\xeaTg%\xeb\xf3(\x09!p8\
+\x9cho\x9f\x0b\x9f/\x88\xe9\xc0g\xdfS\xa9\xd4O\
+\xdf\xff\xfe\xd9\xb7\xc2\xbc\xbd\xad\x82\x13$A\xde&Q\
+\x16-`t\x08\xb5eb\xd0\x89`$\xc1\xa5\xeb\xd6\
+m\xdc\xc0\x18=S\x22\x88\xa2\x13\x0b\x17\xce6\x91\x80\
+\xce5\xa4\xe2\xf18PQ\xe1\x85\xdb- \x93\x91\xf0\
+\xd8c;\xf1\x93\x9f<\x83\x95+\x17\xe1K_\xda\x0c\
+\xaf\xd7ciT\xb9l\xf0\xb3Y\x09G\x8f\x1eA_\
+_\x0fk\x15\xd66\x00\x80p\xb8\x0amm\xedp8\
+\x1c\x86r\xe8\x97T*\x89\xbe\xbe^\xdb\xa9\xec\x82\xc0\
+\xa3\xb6\xb6\x09\x8d\x8dMZY\xac\xae\xc5\xc0g\xd7\xa5\
+R\xc9\x9f\xae^=\x87\x91\xe0\xa4d\x0d\x8b\x11\x80\x1d\
+L\x0b\x18I`\xd4\x04\x8c\x08\xde\xbb\xee\xfa\xfa%k\
+\xd7\xde\xb0\x81\xd9\xf6\x99\x12A\x10D\xcc\x9f?\x1bn\
+7%\xc1\xc8H\x0c\xc9d\x06UU~x\xbd\x0e\xe4\
+r\x0a^\x7f\xbd\x03\x0f<\xb0\x03\xb1X\x02_\xfa\xd2\
+f,_\xbe\xc0F\x9d\x96\xe7\xf4IR\x16\xfd\xfd}\
+\xda\x0ac\xc08\xf1\x84N0mjjE0\x18\xb4\
+\x80\xa7 \x97\xcb\xa2\xb7\xb7\x07\xc7\x8f\xb3_\xd33\xce\
+J\x06\xea\xeb\x1b\xd1\xd8\xd8\x0c\x8ec3\xa1\xadu\x05\
+t\x02\x14\x1eLJ\xa5\xd2\xcf<\xf3\xcc\xd3\xb7\xdew\
+\xdf\x17X\xae\xe0\x844\x81\xed6q\x16\x12h{\x04\
+\x80\xfa\x03l\x9c\x80\xe5\x08\xf2H\xb0n\xdd\x0d\x1bt\
+`\xe9\x0b\x94K\x04\x9e\x171o\x1e%\x81Q\x06\x06\
+\xc6\xf0\xe8\xa3\xbf\xc4\xd3O\xef\xc2\xc6\x8d\x1f\xc3\x86\x0d\
+\xd7\x16h\xd0\xf2\x9c\xbe\xc1\xc1\xe3\xe8\xed\xedA2\x99\
+\x84\xfe\xfaT\x5c.\xb7\xe6\xe0Y\xcb\xa2S\xd9\xfb\xd5\
+\x15O9\xb5\xfd\xa0\xdd_Y\x19Fk\xeblu\xde\
+B\xbe\xd37<L\x9d\xc3\xa6\xa6VTW\xb3\xd1N\
+\xf3\xc0\x92U\xcbH\x92\xb4\xef\x97\xbf|\xea\x0a\x03\x09\
+f\xec\x18\x16\xdc'\xd0\x86\x04VM\xe0\x04%\x00#\
+\x01s\x10U\x12P\x9f\xe0D\x88\xe0v;1wn\
+;\x04\x81\xce\x11\xd8\xb5\xebU<\xf0\xc0chn\xae\
+\xc3\x97\xbf\xbc\x1955\xc6i\xe2\xe5\x83\x0f\x00##\
+\xc3\xe8\xeaz\x1b\xa9T\x12\xc6y\xb0\x84\x00</\xa2\
+\xa1\xa1\x11\xcd\xcd-\xb6=rpp\x00]]oC\
+_/\xa8\x9b\x8a@ \x88\xa6\xa6f\xd5\xce\xe7{\xfc\
+\xa3\xa3\xa3\xe8\xe9\xe9B:\x9d\xd6\xeemkkG]\
+]]\xc1\xdeO\x17\xe7\xd2\xef\x99Lz\xdf\xb3\xcf\xfe\
+\xe2\x84IPt\xa3H\x8b?`\x0d\x0fY\xa6\xd0N\
+\x13x\xb6n\xfd\xe7K\xd6\xaf\xdf\xb8\x81\xb2v\xe6D\
+\x10\x04\x11\xbbw\xbf\x8e?\xfc\xe15\x8c\x8fO\xe2\xcb\
+_\xbe\x19\x17^\xb8\x12\x85{Ii\xe0\xd3\xfd\x08\xba\
+U\xcf^{_0\x9bM\x81o\x05\xcfsy\x80\x8c\
+\x8c\x8c\xa0\xbb\xbb\xd3\x04\x1eS\xf5.\x97\x0b\x8d\x8d-\
+\x9a\xb60\x9a\x19E\x01\xa2\xd1\x09\xf4\xf5\xf5\x22\x16\x8b\
+j\xf7\xb2\xb2=\x1e\x0f\xe6\xce]\xa8\xcdr\xb2\x82o\
+~/\x19\xb9\x9c\x1c\x1d\x188~\xf9'>q\xe1\xeb\
+\xa0\xe0\xe7\xd4\xb2N\x0e\x01\xd4\x8aYM\x81\xddx\x81\
+\x91\x04>\xf6}\xeb\xd6\x7f\xbed\xc3\x06\xea\x18\x9e\x08\
+\x11>\xff\xf9\xff\x0d\x00\xf8\xd9\xcf\xbe\x85P\xc8\x0f\x14\
+\xb1\x91\xd39}\xc9d\x12\x1d\x1do\x19\x80'\x86\xe4\
+\x12\x87p8\x8cY\xb3\xda\xe1p8M\xf7)\x0a\xb4\
+\xc9\xa9\xec^=*\xd0\xc3\xc1\xc6\xc6f\xc0&\xd9\x93\
+N'\xf1\xf6\xdb\x87\xb4\xa8\xc0X\xae\xc3\xe1Fcc\
+\x13\xaa\xaa\xf2M\x0c}N>\xf8\xecoY\xceE\x07\
+\x06\x06.\xff\xc4'.dY\xc3\xb2|\x81R\xa7\x84\
+)\xd0cO\xf67}\x8bB);\x00\xf7\xde{\xe7\
+.\x8e\x03\xd6\xad\xdb\xb4\x81\xe7\xe9\xc2RYV\xb4\x19\
+E\x8a\x02\xd5)bD \x00\xf4\xff\xb3\xd0IQd\
+\x10\xc2\xe1\xad\xb7\x0e\xe2\x82\x0bV\x18\x16\x83\xd2\xaaX\
+{\x7f^\xe5\x15\x05\xc9d\x12==\x87\x0d!\x1d\xab\
+>\x00\xb0%\xe2-\x08\x04\xf4\x0c\x1e{\xcdd\x92\x8e\
+\xf0\xe9;\x8d\x99ME]\x1d\xcd\x03\xf0<\x0f+\xf8\
+\xa9T\x02}}\xbd\x18\x1e\x1eR\xcb5\x93\xa6\xb6\xb6\
+\x01uuu\xe0\xb8B\xefT\x18|@\x01\xc7q\xc1\
+\xda\xda\xfa\xe7~\xfc\xe3\x9f\xbdo\xe3\xc6O\xf5\x00\xe5\
+M2\x9d\x96\x00\x8a\xa2\xb0\x1f[d\xde&k\xe5\x1c\
+\x80\xcc4\xb7\x93\xbb\xef\xbe\xf3EE!d\xc3\x86M\
+\xeb\xa9sW>\x11\xd8\x8bOM\xc5\xf1\xa7?\xbd\x81\
+\x0b.X\xae\xc6\xde\xa5\xa9~\x80\xf6\xde\xd1\xd1Q\xb0\
+Q:\xa6\xea\x9dN'ZZ\xdaPUUkz\x1e\
+h\xd8\xa5\xe6\x01\xe8\xb0.\x03\x8f\x91\xa7\xba\xba\x16\xcd\
+\xcd-&\x95M\xebB\xf7A8v\xec(\xfa\xfaz\
+M\xf72\xd2UW\xd7\xa0\xa5e\xb6F\x1a\xd6\x0e\xe5\
+\x80\xcf\xca\xcaf3AA\xf0\xce\x02\xd0\xab\x16pr\
+5\x80\x81\x04Z\xdci\xf8\xb7d\x7f\x97.\xf7\xdc\xb3\
+e\x17\xc7\x11e\xfd\xfa\x1b7(\x0a}\xe1r\x88\x00\
+@\x9d\x7f@05\x15\xc7k\xaf\xbd\x81U\xab\x96k\
+!U)v\xbf\xb6\xb6\x01^o\x00\x87\x0eu \x1e\
+\x8fC\x14y\xd4\xd55\xa3\xa5\xa5%ox\x97\x8e\xf0\
+\xd1-d\x98\x92\xb3\x86\x83\xcd\xcd\xadj\xbe_6\x01\
+\x22IY\x1c?\xde\xaf\xaeU\xcci\x93a\x14\x85~\
+\x06\x02!\xcc\x9a5G31f\xd2\xe9R*\xf8\xb4\
+\xcc$$)\xa3\xedg\x5c\x8e\x94<+\xd8\xa2\x09\xac\
+\xbaV\xb1\x14\x9eW\x91m\xdb\xbe\xf6\x22\xa0\x90\x1bn\
+\xd8\xbc\x9e\x86_\xa5\x13\x81\xe3xu\xfa9\x0fYV\
+05\x95\xc4\xde\xbd\xfbq\xdeyK\xb4\xa2J\xf1\xf8\
+\xbd^/\x96-[\x89\xa1\xa1\x01\xd4\xd4\xd4i\x0bI\
+\x18\x08t\xa7\xb1>\xf4\xf7\x1fA.'\xe7\xf5Z\x97\
+\xcb\x8d\xb6\xb6\xd9\xa8\xa8\x08\xab\xcf77\xc3\xe0\xe0\x00\
+\xfa\xfaz\x0d;\x9c\xe9\xf7z\xbd~\xb4\xb6\xce\x82\xdf\
+\xef7i\x99B\xbe\x8c\xb9\xed\x8b\x0f&\xa5\xd3\x09\x16\
+\x822\x93\x5c\xb2\x19(\x99\x006b%AF\xab\x9d\
+.&\x22l\xdb\xb6e\x17\x00l\xdc\xb8y=u`\
+J#\x02\x9da\xc4\xab3\x8c\xe8\xb3&'\xa7\xd0\xd1\
+\xd1\x89\xa5K\x17h\xe3\xf0\xa5d\xfax^@CC\
+c^C\x0f\x0d\xd1<@*\xa5{\xf6\x00\x1d\x87\xe0\
+y\x11\xcd\xcd\xad\xa8\xabk\xb0\xed\x91\xd1\xe8\x04\xde~\
+\xfb\x00\x92\xc9\xb4\xc1G`\xa4\xa1QA8\x5c\x8b\xe9\
+2}\x85T\xbfU\x8c\xef\x94\xc9$\x91\xcdJ\x90$\
+I[c`\x7f\x97\xbd\x94E\x00\x8b\x16`&\xc1Z\
+ \xb1|\x9a\xbeo\xdbF\xcd\xc1\x0d7l\xde`\x9c\
+^^\x8c\x08\x82\xc0\xc0\xd7\xa7\xa0\xf3<0::\x8e\
+\x03\x07\xba\xb0p\xe1\x5cH\x92>f0]\x8e_o\
+h:Xs\xf0`\x87\x01x\x98\xc6\xf6\x19\xf0</\
+\xe4\x81\x1f\x89D\xd0\xd7w\x18\xd1(\x0d\xe9\x8c>\x82\
+ \x88\xa8\xabk@mm\x03\x04A0E'\xe5\x80\
+o\xd7\xfb\x8d\x92\xc9\xc4!\xcb\x0a$I\xb6\xb6\xf7\xc9\
+q\x02\xadR\x80\x04y\x97\x15{\xc6]w}\xedE\
+EQ\xc8\xc6\x8d7\xad\xb7\xae3\xb0#\x02\xb3\xff\xc6\
+\x06f\xfe\xc1\xd0\xd00\x08\x01\x16,\x98\x03I\xca\x95\
+\x05~*\x95DWW'2\x99\xb4a\x16\x0f-\xa3\
+\xa6\xa6\x0eMM-p\xb9\x5c\xa6\x04\x8c\xa2\xc8H\xa5\
+R\xe8\xee\xee\xc4\xd8\xd8\x08\xcc>\x02\x00p\xa8\xae\xae\
+Ak\xeb,\xc3 \x91\xb5\x0d\x8d\x9f\xe5;}\xfa{\
+)H$\xe2\xc8\xe5d\xa8\xbb\xd7\x9e:\x1f\xc0(6\
+\x91\x81\x9d\x14RG\x04\x00\xd9\xbau\xcb.\x80\xc3\x8d\
+7\xde\xb4\x1e6\x0bN\x8cD\xe0y\xa6\x01\xf4-j\
+\x00\x9d\x08\x83\x83#\x00\x80\x85\x0b\xe7\x9av*)\x06\
+>\xa0\xc0\xe9ta\xc5\x8a\xf3\xd1\xdd}\x08CCC\
+\xda\xb2\xb3\xa6\xa6V\x04\x02A\xf5Z\xfd\xf5\x92\xc9$\
+\x8e\x1c1\x8e\x0e\xb2qj\xfa\x19\x0c\x06\xd0\xde>\xcf\
+\x10\x15\xd8\x0f\xf2\x98\xdb\x92]W\x1e\xf8<O\x10\x8b\
+E\x90\xcd\xe6\xa0(2\xb2\xba\x02<u&\xc0\x5cq\
+\x8d\x04\x80\xbd\x16\xb0\x13v\xbd\x02\x00[\xb7~u\x17\
+@\xb0i\xd3M\xeb)X\xf6D`k\x13\xd9\x1e\x05\
+vD\x18\x1a\x1a\x05\xc7\x11\xcc\x9f\xdfn;\x84l\x05\
+\x9f\xfd\xcd\xf3\x1c\xe6\xce]\x88`\xb0\x12\x1c\xc7#\x1c\
+\x0e\xe7\x81\x22It\xfb\x19:H\x9438\x87t\x1b\
+[r\xfcT\x05\x00\x00\x11\xd0IDAT\x8f\xc7\x8b\
+\xb6\xb6\xd9e\x0d\xef\xda\xa9\xf4R\xc1\xa7\xdaPA,\
+\x16\x81,\xe7\xd4\xb6\x92\xca\xb6\xff\xc0\x899\x813%\
+\x01\x13\x02\x00[\xb7\xde\xb1\x8b\xe3\x00j\x0ex\xd8\x11\
+\x81M57\x9b\x80|\x22\x0c\x0e\x8e\xc0\xe1p`\xd6\
+\xac\x16$\x93\x92Z\xc7\xfc\xaa\xd9\x01B\x07b\xf2\xd5\
+qo\xefam\xfb\x19\xa6\xeaY\xb9N\xa7\x0bMM\
+-\xa8\xaa\xaa\xb1Q\xe7\xb4\xdcr\xec~~\x1d\xed\xc0\
+\xa7s\x1eGF\x8e#\x93\x91\xb4\x0c\xab\xea\x03\xbc\xb3\
+\x04P+\xa5\x00Z\xcaX\x1b\x90(G\xee\xbc\xf3\x8e\
+\x17\x09\x01n\xbc\xf1\xe6\xf5\xb2\x0cX\x89\xc0\xf3\xbc\xaa\
+\x01x\x00\xf9[\xd4\xb0|\xbd,\x03G\x8f\x1e\x07!\
+@[[+\x92\xc9\x0c\x14%\x97\xd7\xfb\xf3\xdf\x81\x9e\
+7\x02B\xb7\xae\xe9Qw+\xd7w*\x03h}\xea\
+\xeb\x1bQ_\xdf\xa8\xe5\x22\x8c2\x13\xf0\xad\xbd?\xbf\
+\x8e\x14|\x97\xcb\x81T*\x8eh4\x02\xb6s+\xbd\
+'k\xffr\xd3\xc8\x09\x13\xc0PA\xa3_\x90\x9b\xe6\
+\xf2<\xa6n\xd9r\xc7\x8b\x00\xb0i\xd3-\xeb\x15\x85\
+\xce\x0b`D\x10\x04}\xd1\x89\xa2\x187\xa4\xa0\xaa\x90\
+9\x84ta*\x87#G\x06A\x08\x87\xb6\xb6f\xc4\
+\xe3i\xe8\xdb\xd9\xd8\xaf\xe21\x8a,+\x18\x1b\x1bA\
+WW'd9k\x99\xd4A5Ek\xebl5*\
+0\x82g\xff\xbc\x13\xf5\xf8\x8dd\xa7\x0bid\x0c\x0c\
+\x1cC6+\xc3\x98\x84\xcaM\xd7\xe2\x05\xe4\xa4\x11\x00\
+\xc8#A!\x93P(l\xc4\x96-w\xbc\x04\x00\x9b\
+7\xdf\xb2^]%\x0bYfK\xd3i>\x80\xfa\x05\
+\x80\xbe!\x05\xc0\xb4\x82\xa2@3\x1dT\x13\x10\xb4\xb6\
+6!\x1eOk\xb6R\xadiAP\x00\xba\x0f\xe1\xf2\
+\xe5.tt\xec\xd7\xf6\x14\x0e\x04\x82\x9a\x83\xa7\xbe\xab\
+\xed\xfd\xf9\xbd\xdf\xd4B3\x02\x1f\x00\xbc^'8\x8e\
+C__/\x92\xc9\xa4v\x9d1B\xb1i\xdbi\xe5\
+\xa4\x12\x000\x91\xa0\x98O`m\x1e#\x09^\x048\
+\xdct\xd3-\xeb\xe9 \x10\xcd\x00\xa6R\xa3\xeaw\xa3\
+\x83\xc8\xcc\x00\xfbM\x01\xb3y8z\xf488\x8e\xa0\
+\xb9\xb9\x11\x89D\x06\x99L\x16\xa5\xf6H\xaf\xd7\x8f\x15\
++\xde\x87\xa3G\xfbPYY\x89@ X \xb4,\
+\xc7\xee[\xdb\x8a}\x16\x06\x9f\xe7\x09|>\xba\xb6`\
+p\xf08\x22\x91\x88\xda1\x8c#\xab\xb2i\xc7\xd6r\
+\xe4\xa4\x13\x00(Y\x13h\x97[>\xb1e\xcb?\xbd\
+\x08\x007\xddt\x8b\x9a'P\x90J\x0d\x80\xe3t\xdf\
+\xc0H\x04\xa00\x11\x8e\x1c9\x06B(\x098\x0e\x16\
+\xe7\xb0x\x8f\x14\x04\x1emm\xb3\x8dU;\x01\xf0\xcb\
+w\xfa\x5c.\x01\x1e\x8f\x03\xb2\x0c\x8c\x8d\x8d\xe2\xf8\xf1\
+\xe3\xda,&\xdd\xf6\x9b\x9e\xf7\xee\xf9\x00VQI\xc0\
+\xfe4N\x99\xb1\x9f\xe6\xab\xde\xc6\x8e-[\xfei\x17\
+\xcfs\xca\xe6\xcd7oH&G\xc0\xcf?j\x88\x02\
+\xca#B_\xdf1\x08\x02\x8f\xc6\xc6:5\x01$\xe1\
+D\xd4\xb1\xfe\x8e0\xfc\xef\xe48}\xcc\xe4\xf9\xfd.\
+8\x1c4\x838>>\x82\xc3\x87{4\xe0\xd9}\xba\
+\x13X\xa4E\xa7\x91SF\x00\xa0 \x09Xu\xa7\xb3\
+W\xca\x1dw|i\x17!\xc0\xd4Td\xc5\xa4\xd4{\
+\x84\xe3\xc8U\x80\x11\xec\xd2\x89\xd0\xd7w\x0cN\xa7\x88\
+\xeaj\xfa\x9bG\xc9$\x1d\xc9.?\xfbf\xfe\x9fM\
+\xb5O\xc8\xe9s\xbbE\x04\x02n\xed\xfa\xe3\xc7\x87\xd4\
+!e\xa6\xf2e\x8b\xfa\xa7\xf7\xe5f\xe8\x05\x9eR\x02\
+\x00\x05I\x00\x14&\x80b<\xbe\xf2\x95/\xfd\x16\xc0\
+\x1e\xbc\x047\xb7\x89\x5cE\xe3\x7f\xf5ae\x10\x01\x00\
+:;\xfb@\x08\x87\xaa\xaa0DQ\xc0\xe4dB\xad\
+#\xabk\xe9\xe0O\xe7\xf4\x95\x0b>\xcf\xf3\x08\x85<\
+p8\xe8\x88g6\xab\xe0\xed\xb7\xbb022l\x0b\
+\xbcN\x08:bzZD\x01\x85\xc4@\x02c3e\
+\xa1\x03m\xba\xdcp\x98f!ut\xec\x7fm\xd1\xa2\
+%\xab\xf4D\x10\xfd\x07\x0d\x19\x01E\xa1D\xa0~\x83\
+>\x9f@\x96\x89\xa6*;;{A\x08AUU%\
+\x00\x17\x22\x11\xf3\xae\xa6'\x06~\xf9c\xfb<\xcf!\
+\x18\xf4\xc0\xe3qh '\x93I\xbc\xf5\xd6!LM\
+M\x99\x80\xa7\xcf7\x03\xaf\xd7\xf7\x1d\x1c\x0b\x98\x89\x94\
+\x11\x1d\x18\x9dBv\xad\x0c@\xb9\xe5\x96u?z\xf0\
+\xc1\xedX\xb4h\x99J\x02\x0a2\x0d\x07\xd9\x08\x22\xdb\
+\xb0\x8a\x03\xbb\xc6\xbaqUWW/x\x9eCee\
+\x05\x00\x0e\x13\x13\xf1<[l\xa8\xb7\xfaI\xab4\x13\
+\xbbo~\x1e-G\x10h\x8f\xf7z\x1d\x06\xc7\x0e\xe8\
+\xe9\xe9C_\x1f\xdd-]\xcf]\x14\x06\x9e\x9d'\x84\
+\xb3\xebL\xd3\xca;F\x00\xa0$\x12X{\xbf\xd5o\
+\xc0\xcd7\xaf\xfb\xd1\x83\x0f\xee\xc0\x92%\xcbV\xc9\xb2\
+\x0e\xb21u\x0c@\xeb\xf5\xf6\xe6A\xc1\xdbo\x1f\xc6\
+\x82\x05sPY\x19T\x87\x96\xe3jJ\xb9\x90\xd3w\
+b\x1e?\xfb\xdb\xebu!\x18t\xc1\xe9\x14A\xb5\x13\
+\xbd\xfe\xf8\xf1Atw\xf7 \x91HZ\x80\xd7m\xbd\
+^\xae\xfe?\xaa\x1dd$\x93\xc9\x08f@\x80ig\
+\x05\x9f\x0a\xb1\xacA$\xb0\xfcD\x1d\xf4\x05\xa9l)\
+\x9au\xed\x81\xe7\xc1\x07w\xdc\xb4t\xe9\xf2U\xcc\x1e\
+\xb2\xa5e\x80\xde\x9b\xf4\xf3\x8a\xe1\xbc~\x0d\xc7\xf1X\
+\xbcx\x0e\x02\x01?$I_\x9a>\xbd\xea/\x0f|\
+\x87CD0\xe8\x82\xc7\xe3\x80 \xf0\x06\xbb\x9d\xc3\xd1\
+\xa3\x038|\xb8\x0f\xf1xB\xbb\xc7\x0a\xbc^\xa6Q\
+\x0bPR\xb3\xbfo\xbf}]\x10tR\x0e\xdblJ\
+9\xd53\x82f,\x86\xf1\x03\xeb\x84\x12\xc5\xe6\x00\xcc\
+\xccV\x00\xe0\xe6\x9b\xd7\xfe\xe8\xa1\x87v`\xc9\x92\xe5\
+\xab\x14\x85\x80\xe3\xa8\xdag\xbd\xc4\xceO\xa0e\xea\x1a\
+AQ\xe8/\x9f\xac\x5c\xb9\x18.\x97\x03\x0d\x0d!\x1c\
+;F;Rq\xd5o|\x17\xd8^\xe7\xf39\xe1\xf1\
+8\xe0\xf3\xb9 \x08\x9cf\xc7eYF,\x16\xc3\xd1\
+\xa3\xc7q\xf4\xe8 \xd2\xe9\x0c\xac!\x9d\xd1\xc9\xb3\x02\
+o$;;\x9fN\xa7\xfe`i\xaf\x92\xe5]!\x80\
+E\x8c\xb6>\x0fh\x9bk\x01\x954\x9b7\xaf\xfd\xd1\
+\xc3\x0f\xef\xc0\xe2\xc5+V\xb1\xb9\x01\xe5\x12A\x96e\
+\x1c8\xd0\x89%K\xe6\xc1\xe1\x10\xd1\xd8X\x89\xfe\xfe\
+1\xe4r\xa5\xd9}\x80\xfd\x00\x95\x08\xaf\xd7\x01\x8f\xc7\
+\x05\x8fG4i\x91l6\x87d2\x81\x81\x81a\x1c\
+;6\x8c\xd1\xd1\x09\x14\x0b\xe9t;_\x1cx6\x12\
+\x98H\xc4w\x96\xd0v\xb6\xf2\xae\x98\x00S\x05\xcc3\
+/\xd9\x90\x9b`8\xack\x11\xf3\xcc\xc1#\x8f\xfc\xec\
+\xa6\xc5\x8b\x97\xae2\x02V\xaei\xf0x\x9c*\x09\xe8\
+\xd4\xaf\xbe\xbe\x88\xda;i\xe5d\x19p\xbby\xf0<\
+\x0f\x97K\xd46\x9f\x12E\x1e\xa2h\x8c\x18(0\x92\
+\x94\xc5\xc8\xc8\x04\x86\x87G100\x82\xc9\xc9\xb8\x01\
+P\xfb\x90nr2\x06\xc2s\xe0\x09\x07\x10\x80S'\
+\xc1X\x81\x07\x8c\xa9`\x19\xcf<\xf3\xe4\xac\xdd\xbb\x7f\
+1\x02:C[\xdb?\xa0\x14\x13\xf0\xae\x13\x00\xc8#\
+\x81q\xaf<F\x00\xe3~E\x8c\x00\x1eXH\xb0t\
+\xe9\xf2Uf\x0fY\x07Yw\xc6\xcc\xff7n\x5c\xc5\
+H\xe0t\xd2\xd9\xc2\xe9tN\x03\xb8\x90(\x0a\x90\xcb\
+\x01\x91\xc8$&&\xa2\x18\x1b\x9bD$\x12\xc3\xd8\x18\
+5%\xd6\x9c\xbd]H\x97\xcdf\x11O$\xe0\xf5{\
+\x00B \x8a\x028N@6+\x81\x00\xc8\xa4$d\
+\xa5\xacf\xfb\x19\xf0\x8a\xa2 \x99L<\xbem\xdbm\
+\x9f\x05\xb5\xff\x8c\x00\x8a\xfaN\xef\x0d\x02\x00EI \
+\xc2^\x13\xe4\x91\xe0\xc7?~Bs\x0c\x8d\xea\xdal\
+S\xed\x89\xc0\xb4\x82\xc7\xe3\xc4\xa2Es\xf2V%\x03\
+@4\x9aD&\x93A$2\x85L&\x83\xf1\xf1I\
+\xc4\xe3\x09D\x22Sy\x0ef>\xf0\xac\xac\xfc\x90\x0e\
+<u\x14EQ\x04\xc7\x11\xa43\x12\x04A\x80 \xf0\
+\xc8HY\x88\xa2\x00)%al$\xa2\x01\xcf\xca\xf9\
+\xf3\x9f\x7f\xff\xbe'\x9e\xf8\xafNP\xf0\xb3P\x09P\
+\x0a\xf8\xc0iD\x00\xa0$\x12\xb0\xc8\x80E\x07^\xcb\
+\xa1\x91\x00`\x0d\x0c\xe8v\xbbt\xf3 \x08\x9c:\xe6\
+\xae`l,b!\x8e1\x04+\x0e<`\xef\xd9\xb3\
+zI\xb9\x1c\x9cN\x11\x0e\x87\x00Q\x14\xe1p\x88\xe0\
+x\x1e\xa9T\x8a\x12B\xe0!e(\x09\x92\x89$\x06\
+\x8f\x8dh\xe5$\x93\xf1'\xee\xbd\xf7\xf3\xb7\x81\xf6\xfe\
+\x0c\x0c\xab\x84K%@\x19?\xf5|\xea\xc5Pi\xe6\
+\x18\xb2#\xab\x1ei\x00I\xf5H\x00\x88\xab\xc7\x94\xfa\
+\x99\xd8\xb8\xf1\x93?\xda\xb7\xef\xcd\xd7\xcc\xbb\x96r\xea\
+n\xa6\xfa/\x92\x17\xda\xe5\x94}\x8e\x8fObtt\
+\x02##\x13Z\xac-\xcb9\xd0\xcd \x14\xe4r\xb2\
+\x06\xb2\xa2\xb0sl\xf7\xd2\x9c\xa6\xees9\x19\xfa\xae\
+\xa6\xb2\xc1\xc1\xa3\xcfJ&\x92j\xbd\xd4zp\xf4\xe7\
+oB\xc1\x008\x9e\x83 p\xf0\xf9<\xe09\x82P\
+E\x10\x0dMu\xc8\xe5\x14d\xb3\xd9\xc9\x9d;\x1f\xbb\
+\x13\xe6-c`\xf8,IN+\x02\x00\x05I\x90\x83\
+N\x82\x0c(\x11R\xa0$`\xe0O\xb1\xef\x1b7^\
+\xff\xe0\x9f\xfe\xb4\xe7\xe5|`K'\x82,\xcb\xb6\xc0\
+\xeb\xde9=\xcf\x80\xd75C>\xf0\xec\x7f,\xf67\
+\x9e\xa7\x1bR\x00\x84#\xf4P\xc9\xe0\x10\x05\x84B~\
+\xf0\x84\xa7$\xf0{!\x08\x02*\xaa\x02hi\xab\xc3\
+\xb1c}_|\xed\xb5\xdf\x8f\x1b\xdaH\x8b\xa6J\xed\
+\xfd\xc0iH\x00\xa0(\x09\x98\x9d\xcb@\xd7\x04L\x1b\
+0\x22\xc4\x01$o\xbdu\xe3\x8e\xed\xdb\x1f\xd9\xc1@\
+.\x97\x08,\x06g\xea\xdb\xd8{\xed\x80g\xe02-\
+\xa0\xdbzJ\x06+\xf0\x8c$9EA\x22E\x7f\xd0\
+\x9a\xe7\x088B\xc0\xab\xf5r\xf0\x22B\x15~\x08\x82\
+\x00\x87C\xa49\x05\x8eGeu%.\xbdr\xcde\
+\xc8\xdf0\xaal9-\x09\x00Lk\x0e$P\x12\xa4\
+\xa0\x13 \xcf$\xdc\x7f\xff\xd7w\xff\xf4\xa7?\xd9\xc1\
+\xc0-\x87\x08\xd4_\x90M=\x9f\x01o\xd7\xab\xf3\xcf\
++\xeayc\x92\xc7\xa8\x1dt\x13\x90\xc9HH&(\
+\x098\xb5.\x84\xa7\x87S\x14Q[\x13\x86\xd3\xe9\x00\
+Gxx\xbd.\x08<\x07\x9f\xcf\xff\xe9\x9d\xcf\xfd\xf1\
+\xa5\xaf~\xf5\x1b>\xe8\x1a\xa0l\x12\x9c\xb6\x04\x00\xa6\
+5\x07V\x12$a\xf6\x07\xe2\x00\xe2\xf7\xdf\x7f\xcf\xee\
+\xc7\x1e{d\x87qws+\x11x^'\x02\xdb\x09\
+\x9d\x86w\x8a\x0a\x94\x0e*\xfb4\x02o\xf4\x05\x8c\xc0\
+\xe7\xfb\x08\xb2\xea\x1f\xe8Z%\x95\xce \x9d\xca \x9d\
+\x91\x90H\xa44\xe09F\x06\x9e\xc0\xedr \x5c\x11\
+\x80C\xe4A8\x0e^\xaf\x1b\x02\xcf\x81\x13\x84e\x1f\
+\xba\xf4\xb2\xdf\xfc\xeb\x0f\x7f\x18D\x19\xa1\x9fQNk\
+\x02\x00\x05I\x90\x85\xd9'\xb0j\x02\xcd\x1f\x00\x10\xbf\
+\xef\xbe{vo\xdf\xfe\xc8\x0e\xb6\xc8\x94ny\xcf\xe7\
+\x11\x82N?g&\xc0\xda\xcbu\x07\xcf\xaeW3\xe0\
+\xcd>\x02\x03\xdex\xde\xe80\xca@N\x81\xac(H\
+\xa5\xd2Hg$\xc4\x13)p\xcc!$4<$\x1c\
+\x01\xc7s\xa8\xa8\x0c@\x14\xe9*)\xaf\xd7\x0d\x9e\x13\
+ \xf0\xfc\xf2\xa5\xed+\x7f\xfb\xd3g\x9e\x09\xce\xa4}\
+O\x87T\xf0\xb4\xa2(ys\x0c9\x18\xb6R\x9f\xe6\
+v\x02\x00\xf7\xddw\xcfn\x00\xd8\xb0a\xf3ZEK\
+\x0d\xd3,\x1b\x9b;\xa0(l.\x014\xdb]NH\
+g\x8c\xf1\x999P\xeb\xaf]g\x0d\x1b\x03\x01\x1f\xd2\
+\xc9\x0c\x9c\x0e\x07R\xa9\x14\x9c\x0e\x11\xf1x\x12N\xa7\
+\x83F\x04\xbc\xa0M\x85\xe39\x0e\x95\x15AD\x221\
+H\xd9\x1c\xbc\x1e\x17\xd2\x99\x0c\xb2$\xbb\xbc\xc6W\xbf\
+\xeb\xa9\x17_\x5c\x03 \x822\xe4\xb4\xd7\x00Ll4\
+\x81\x02{s\xc0\xa2\x03k\x88\x18\xbf\xef\xbe{v?\
+\xfa\xe8C;\xd823\xda\xeb\xcd?~\xc1\xb4\x81\x1e\
+\xba\x95\x1e\xd2\xe9\xfeB.O{PS\x91\x7f\xde\xe7\
+\xf3#1\x95@:\x93\x81\x02 \x99\xce \x95\xc9 \
+\x1eO\x82\xe7\x08\x04\x81\x03\xa7\xa6\x85\x01\x80\xe7xT\
+V\x04\xe0q\xbb\xc0q\x80\xdb\xe5\x84(\x8a\xe0\x09Y\
+\x11\xe0\x82\xbf\xde\xb9\xf3\xd5@9\xed\xfa\x9e!\x00\xa0\
+f7X\x16\xc7\x1c\xfa\x94\xe2\x18&\xa0\x92\xe0'?\
+yd\x87\xd1\x07\xb0#\x02-\xaf\xbc\x90\xce\xf8\xa9\xab\
+\x7f\x1dx\xddw0\x9f\x0f\x87+\x10\x8bL!\x9d\xa2\
+c\x0f\xc9d\x06\xe9L\x06\xe3\x91I\xd0\xfc\x13Q5\
+\x13\xa7-M\x0b\x05|p\xbb\xdd \x00\x5c.\xa7\xcc\
+\x8b|\x84\x00\x15.\xbf\xf3\xbf^z\xe9\xafm\xa5\xb6\
+\xe9{\x8a\x00\x16)\xe6\x18\x1a\xf3\x04V\x12$\xef\xbb\
+o\xdb\xcb\x8f>\xfa\xf0cl\xd9\xb9\x1d\x11\xe86l\
+\xe5\x85t\x85\xf3\x05f?\xc2H\x08\xfa<\x05^\x8f\
+\x17\x91\xb1(\xd2\xc9$\x00\x19\xc9T\x1a\xb9\xac\x82H\
+tJ}U\x0a>@s\x06\xe0\x80P\xd0\x07\xb7\xdb\
+\x99!\x04Cn\xa7\xb3O\x10\xf9>\xa2@\x82H>\
+\xfb\xc2\x0b\xaf\xd4\xa2\x04yO\x12\xa0\x809\xb0j\x02\
+;\x12h\xe6\xe0\x1b\xdf\xd8\xb6\xfb\xd1G\x1fzL\xef\
+\xf9f\x22\x14\xf2\xec\x8b\x85tv\xf9\x02c\xe4\xa0\x9f\
+\xd7\x817\x96\x93N\xa7\xde\xf8\xe3\x1fw\x7f11\x15\
+\x7fE\x91\x81d:\x0dI\xcab|b\x0a\x80\x0c\x02\
+\x9a,\xd2\x9a\x01J,\x14\xf4\x1d\xf58\x1d\xbd\x84\xa0\
+\xcf\xe5v\x1d\x11\x1d\xc2Q\x02e\x9cw\xbb/\xff\xed\
+o\xff2\xadcxZ\x8d\x05\xccD,\xfb\x18\x1ag\
+\x17\xd9mkk\xdd\xf2\xdes\xd7]\xf7~\xe8\x86\x1b\
+nZ\xcb\xc6\x0b\xd8\x18\xfb\x9bov\x22\x12\x89\xc1n\
+\xfe\x9d\xd1\x14\x00\xd61\x80\xe2\xe7\xed\x06\x85\x12\x89\xa9\
+\xee\xce\xce\xfd\x0f=\xfd\xf4C\xcf\x03H\xcd\x9b\xb7\x04\
+_\xb9\xf3\x1b\xff'\xe0\xf7_\x11\xf0\xfb\x10\x08x\xe1\
+t\x88\xa8\xac\x0cR\xed\x04E\x020\xce\x112\x0c(\
+\xc3\x00\x19\x8d\xc7S#\xf1xbL!\x18\x97r\xd9\
+\xf1TJ\x8a\x082\x19\xcdf\xc7\xffz\xf1\xc5\x17\xa7\
+\x0a\xb6\xdf{\x9d\x00@A\x12\x18\xa7\x971\x12X7\
+\xb9\xf6\x82\x92\xe0\xc3\x1b7\xde\xb4\x16\x80\x06\xd6\xde\xbd\
+\x07\x11\x89L\x96\xe5\xd9\x97\x0e<\xbdf||d\xcf\
+\xc1\x83\xaf?\xf1\xfc\xf3O\xbe\x0a\xaa\xad\x98\xd6J7\
+5\xcdU\xfe\xef\xbf\xfd\xc7\xbf\x07B\xc1\xeb\xddN\x17\
+\xbc\x1e'DQP*\xc3\xc1\x04O\xc80\x08\x19\x01\
+0\x0c\xc2\x8dr\x8a2\x0apc\xc9tj<\x12\x8d\
+Op\xbc<\x91\xcd*\xd1X\x22=\xc9I\xa9\xe8K\
+/\xfdj\xf8\xee\xbb\xef\xb6\x9d\x87\xf9\x9e\x08\x03K\x14\
+c\x88\xc8\xcc\x81\xdd5\xd6\xef\xca\xd7\xbf\xbe\xf5E\x9e\
+\xe7\x94\x0d\x1b6\xaf3\xae#`\xbd\xbf\xd4\x90\xae\x90\
+&0\x86\x8e\x89\xc4T\xcf\xb1c}\xcf\xbf\xfe\xfa\xef\
+^\xee\xe8\xd8\xdb\x07\x0a:;\x98\xe9\xca\xf4\xf7wf\
+\xd7~\xea\xcaM\xbf\xf8\xd5\xef\x93\xb2#wC<\x95\
+\xcay\x88kb|<:\x14\x0e\x87Fx`D\x01\
+O\xc1\xe71Nd\x8c\xbb\xdc\xae\x89\x0aE\x89D\x22\
+\xb1\xa8\xcc#\xc6\xb9\x9c\xb1\xd8\xb8\x94(\xd6hg\x84\
+\x06\x00\xa6\x9dTb\xa7\x09\x8cs\x0a<\x00\xdc\xf7\xdc\
+s\xdf\xc57\xdc\xb0i\x03\xa0\xe0\x95W\xf6ct4\
+\x02\xe3\x9c\x02#\xf0\xa5\x9c\xa73\x832\x89h4\xb2\
+\x7ftt\xe0\xcd\xbd{\xf7\xfc\xee\xe0\xc1\xbf\x1c\x85>\
+|k=$\xc3\xc1\xf2\xfc\xb9\xdf\xec\xfa\xf3\xf7\x04\x8e\
+\x5cNxn\xd8\xe7q\x0f\x8b\x227Z\x15\xae\x18\xe5\
+@\xc6\x14\x9e\x8cC\xc1\x04\xe1\x94\x09NFD\x96\x95\
+\xc9\xa9\xa9d,\x16\x1b\x9e\x02\x90x\xdf\xfb\xde\xa7u\
+\x04\xbb,\xe1\x19C\x00\xa0,\x12\x18\x7f\xf8\x82}\xba\
+\x01\xb8\xbe\xf2\x95-\x7f\xb3y\xf3-\x9b\xff\xf2\x97\x83\
+\xee\xd1\xd1\x88I\xfd\xb3\xf1\x81b\xc0G\xa3c\x1d\x13\
+\x13\x13\xbd\x91\xc8\xc8\xe1#G\xba\xba^}\xf5\xa5C\
+0\x03\xcb\x9cT\xbb\xeflB\x87\xf1P\x00(\xbf\xdd\
+\xf5\xdaW\x09\xc7\xaf\xe4En\xd4\xe3v\x8d:\x1c\xe2\
+xU\xc87N\x04q\x82\xc8\x88\xc8<\x89\x0a\x0a\x99\
+T\x94\xe4\x14\x80\xf8\xef~\xf7\xbb\xd4\xa7>\xf5\xa9\xfc\
+\xc9\xed\x16\xc0\xcf(\x02\x00\x05I`\xfc\xf9\x1bF\x02\
+\xe3F\xd7n\xc39\xc7\xa7?\xbdv\xcee\x97}j\
+\xcb\xd4T\xd2C\x97ie\x12\xb1\xd8\xe4\x11\xa3=\x1f\
+\x19\x198@\x08\xe4h4:<668\xb4\x7f\xff\
+\x9f\xba\x87\x87\x07'\xa1\x83\xc8\x22\x12\xeb\xa7ds\xde\
+\x0a\xbcq\x88W\x1b\xe4y\xe1w{\xd7r \xb3y\
+\x8e\x1bw\xb9\x5c\xe3\x0e'\x17\x09WUDx\x19\x93\
+\xb9\x1c&eY\x88\xc7b\xfd\xf1%K\x96\x14\xdd\xbd\
+\xd5H\x823\x8e\x00@\xc9\x9a\xc0\xa8\x0d\xd8\xef\x1f\xb8\
+\xd4\xff\x8b\xa0\xa41n\xbf\xca\x1a\xca\x18vZAc\
+\xdf\xb3%\x1ev\xbd\xdd4\xb6\x0f\xcb\xec\x9e]/\xef\
+\xfd\x10\xcfqaA\x14\x22.\x81\x8f\x12\x978\x19r\
+\xfbc>\x1f\x89\xef\xde\xbd;i\xd7\xeb\xed\x84=\xf3\
+\x8c$\x00`K\x02ct`\xfc\xcd\x03\xb6\x08\x85}\
+g\xd3\xcfx\xc3\xbd\x80\xb97\xca\x96\xc3J\x00v\x18\
+m9[\xb0a\x04\x9e\xddc\x04\xde\xd4\xeb\xed\xec\xf6\
+\xee\xdd\xaf\xcf\xcd\xf1\xc4\xe1\x80\x18\xe3yLE\x22\x8e\
+\xf8UW\xcd\x9bn\xe3\xee<Q\x14E9c\x09\x00\
+\x14%\x01\xfb\xbd\x03\xa3F\x10a\x06\x9fC\xbe\x06(\
+D\x82\x9c\xcd\xdf\x85\xb4\x83b8W\x10x\xa0\xf8\xd0\
+\xeeK/\xfd5\x14\x15\xe3\xb9\xa0$%\xd7\xacY3\
+\xc3\xb5\xc1g\xb0\x06`R`\xdd\x81\xf1\x87/\x8ck\
+\x10\xd8\xdfF\xf0\x0bi\x00\xeb\xa7\xb1'\xdb\x1d9\xcb\
+3r6\xcf\xa5'J\x04\xc5\xf0n3\x923^\x03\
+\x18\xa5\xc8zD\xce\xe6\xbb\x15|\xc0\x0c\x92\x1d\x09\xac\
+\xe7\xec\xce\xdb\xf5\xf4\xb2\x81/\xf0^e\xc9\x19\xef\x03\
+\xd8I\x01\x93\xc0Y\x0e\x82|\xf5\x0f\xe4\x83V\xca!\
+\xdb\x5c\x0f\x9c \xe8E\xde\xab$9\xe3\xa3\x80bR\
+\xc0$\x90\x02\x87\x9dXIP\xec\x9cI\xb5\xe3$\x03\
+o\x94RIp\xc6\xe7\x01J\x11KcY\x01/F\
+\x80\xbc\x1e\x5c\xe0\xbb\xddu'\x1dt\xabLG\x823\
+>\x13X\xae\xd8\x10\xc1\xee\xbbU\x0a5\x98\xed\xf9S\
+\x0d\xbaU\x0a\x91\xa0P=\xcej\x020)\xd2s\xac\
+>\xc0\xb4\xf2N\x03n'\xd6\xf7)V\xa7s\x04\xb0\
+\x91\x99\xa8\xd2\xd3M\xd8;LW\xd7s\x048\xcb\xe5\
+=9%\xec\x9c\x9c<\xf9\xff.}$/\xf4\x80\x9c\
+-\x00\x00\x00\x00IEND\xaeB`\x82\
+"
+
+qt_resource_name = b"\
+\x00\x06\
+\x07\x03}\xc3\
+\x00i\
+\x00m\x00a\x00g\x00e\x00s\
+\x00\x09\
+\x0b\x85\x83\x07\
+\x00c\
+\x00l\x00e\x00a\x00r\x00.\x00p\x00n\x00g\
+\x00\x0e\
+\x0a\x93\x87\x07\
+\x00d\
+\x00i\x00s\x00c\x00o\x00n\x00n\x00e\x00c\x00t\x00.\x00p\x00n\x00g\
+\x00\x14\
+\x07@\xa2\xc7\
+\x00a\
+\x00p\x00p\x00l\x00i\x00c\x00a\x00t\x00i\x00o\x00n\x00-\x00e\x00x\x00i\x00t\x00.\
+\x00p\x00n\x00g\
+\x00\x0b\
+\x0bs\x9d\xc7\
+\x00c\
+\x00o\x00n\x00n\x00e\x00c\x00t\x00.\x00p\x00n\x00g\
+"
+
+qt_resource_struct = b"\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x02\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00L\x00\x00\x00\x00\x00\x01\x00\x00k\xfb\
+\x00\x00\x01z\xae\x0ay=\
+\x00\x00\x00*\x00\x00\x00\x00\x00\x01\x00\x001\x03\
+\x00\x00\x01z\xae\x0ay=\
+\x00\x00\x00z\x00\x00\x00\x00\x00\x01\x00\x00\x97\xbf\
+\x00\x00\x01z\xae\x0ay=\
+\x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
+\x00\x00\x01z\xae\x0ay=\
+"
+
+def qInitResources():
+ QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+def qCleanupResources():
+ QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+qInitResources()
diff --git a/examples/serialbus/can/receivedframesmodel.py b/examples/serialbus/can/receivedframesmodel.py
new file mode 100644
index 000000000..7953f3750
--- /dev/null
+++ b/examples/serialbus/can/receivedframesmodel.py
@@ -0,0 +1,142 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from enum import IntEnum
+
+from PySide6.QtCore import QAbstractTableModel, QModelIndex, QSize, Qt
+
+
+class ReceivedFramesModelColumns(IntEnum):
+ number = 0
+ timestamp = 1
+ flags = 2
+ can_id = 3
+ DLC = 4
+ data = 5
+ count = 6
+
+
+clipboard_text_role = Qt.UserRole + 1
+
+
+column_alignment = [Qt.AlignRight | Qt.AlignVCenter, Qt.AlignRight | Qt.AlignVCenter,
+ Qt.AlignCenter, Qt.AlignRight | Qt.AlignVCenter,
+ Qt.AlignRight | Qt.AlignVCenter, Qt.AlignLeft | Qt.AlignVCenter]
+
+
+class ReceivedFramesModel(QAbstractTableModel):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.m_framesQueue = [] # QQueue()
+ self.m_framesAccumulator = []
+ self.m_queueLimit = 0
+
+ def remove_rows(self, row, count, parent):
+ self.beginRemoveRows(parent, row, row + count - 1)
+ self.m_framesQueue = self.m_framesQueue[0:row] + self.m_framesQueue[row + count:]
+ self.endRemoveRows()
+ return True
+
+ def headerData(self, section, orientation, role):
+ if role == Qt.DisplayRole and orientation == Qt.Horizontal:
+ if section == ReceivedFramesModelColumns.number:
+ return "#"
+ if section == ReceivedFramesModelColumns.timestamp:
+ return "Timestamp"
+ if section == ReceivedFramesModelColumns.flags:
+ return "Flags"
+ if section == ReceivedFramesModelColumns.can_id:
+ return "CAN-ID"
+ if section == ReceivedFramesModelColumns.DLC:
+ return "DLC"
+ if section == ReceivedFramesModelColumns.data:
+ return "Data"
+
+ if role == Qt.SizeHintRole and orientation == Qt.Horizontal:
+ if section == ReceivedFramesModelColumns.number:
+ return QSize(80, 25)
+ if section == ReceivedFramesModelColumns.timestamp:
+ return QSize(130, 25)
+ if section == ReceivedFramesModelColumns.flags:
+ return QSize(25, 25)
+ if section == ReceivedFramesModelColumns.can_id:
+ return QSize(50, 25)
+ if section == ReceivedFramesModelColumns.DLC:
+ return QSize(25, 25)
+ if section == ReceivedFramesModelColumns.data:
+ return QSize(200, 25)
+ return None
+
+ def data(self, index, role):
+ if not self.m_framesQueue:
+ return None
+ row = index.row()
+ column = index.column()
+ if role == Qt.TextAlignmentRole:
+ return column_alignment[index.column()]
+ if role == Qt.DisplayRole:
+ return self.m_framesQueue[row][column]
+ if role == clipboard_text_role:
+ f = self.m_framesQueue[row][column]
+ return f"[{f}]" if column == ReceivedFramesModelColumns.DLC else f
+ return None
+
+ def rowCount(self, parent=QModelIndex()):
+ return 0 if parent.isValid() else len(self.m_framesQueue)
+
+ def columnCount(self, parent=QModelIndex()):
+ return 0 if parent.isValid() else ReceivedFramesModelColumns.count
+
+ def append_frames(self, slvector):
+ self.m_framesAccumulator.extend(slvector)
+
+ def need_update(self):
+ return self.m_framesAccumulator
+
+ def update(self):
+ if not self.m_framesAccumulator:
+ return
+
+ if self.m_queueLimit:
+ self.append_frames_ring_buffer(self.m_framesAccumulator)
+ else:
+ self.append_frames_unlimited(self.m_framesAccumulator)
+ self.m_framesAccumulator.clear()
+
+ def append_frames_ring_buffer(self, slvector):
+ slvector_len = len(slvector)
+ row_count = self.rowCount()
+ if self.m_queueLimit <= row_count + slvector_len:
+ if slvector_len < self.m_queueLimit:
+ self.remove_rows(0, row_count + slvector_len - self.m_queueLimit + 1)
+ else:
+ self.clear()
+
+ self.beginInsertRows(QModelIndex(), row_count, row_count + slvector_len - 1)
+ if slvector_len < self.m_queueLimit:
+ self.m_framesQueue.extend(slvector)
+ else:
+ self.m_framesQueue.extend(slvector[slvector_len - self.m_queueLimit:])
+ self.endInsertRows()
+
+ def append_frame(self, slist):
+ self.append_frames([slist])
+
+ def append_frames_unlimited(self, slvector):
+ row_count = self.rowCount()
+ self.beginInsertRows(QModelIndex(), row_count, row_count + len(slvector) - 1)
+ self.m_framesQueue.extend(slvector)
+ self.endInsertRows()
+
+ def clear(self):
+ if self.m_framesQueue:
+ self.beginResetModel()
+ self.m_framesQueue.clear()
+ self.endResetModel()
+
+ def set_queue_limit(self, limit):
+ self.m_queueLimit = limit
+ frame_queue_len = len(self.m_framesQueue)
+ if limit and frame_queue_len > limit:
+ self.remove_rows(0, frame_queue_len - limit)
diff --git a/examples/serialbus/can/receivedframesview.py b/examples/serialbus/can/receivedframesview.py
new file mode 100644
index 000000000..0f99a1e77
--- /dev/null
+++ b/examples/serialbus/can/receivedframesview.py
@@ -0,0 +1,54 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QPoint, Qt, Slot
+from PySide6.QtGui import QAction, QKeySequence
+from PySide6.QtWidgets import QApplication, QMenu, QTableView
+
+from receivedframesmodel import clipboard_text_role
+
+
+class ReceivedFramesView(QTableView):
+
+ def __init__(self, parent):
+ super().__init__(parent)
+ self.setContextMenuPolicy(Qt.CustomContextMenu)
+ self.customContextMenuRequested.connect(self._context_menu)
+
+ @Slot(QPoint)
+ def _context_menu(self, pos):
+ context_menu = QMenu("Context menu", self)
+ if self.selectedIndexes():
+ copy_action = QAction("Copy", self)
+ copy_action.triggered.connect(self.copy_row)
+ context_menu.addAction(copy_action)
+
+ select_all_action = QAction("Select all", self)
+ select_all_action.triggered.connect(self.selectAll)
+ context_menu.addAction(select_all_action)
+ context_menu.exec(self.mapToGlobal(pos))
+
+ def set_model(self, model):
+ super().setModel(model)
+ for i in range(0, model.columnCount()):
+ size = model.headerData(i, Qt.Horizontal, Qt.SizeHintRole)
+ self.setColumnWidth(i, size.width())
+
+ def keyPressEvent(self, event):
+ if event.matches(QKeySequence.Copy):
+ self.copy_row()
+ elif event.matches(QKeySequence.SelectAll):
+ self.selectAll()
+ else:
+ super().keyPressEvent(event)
+
+ @Slot()
+ def copy_row(self):
+ clipboard = QApplication.clipboard()
+ str_row = ""
+ last_column = self.model().columnCount() - 1
+ for index in self.selectedIndexes():
+ str_row += index.data(clipboard_text_role) + " "
+ if index.column() == last_column:
+ str_row += "\n"
+ clipboard.setText(str_row)
diff --git a/examples/serialbus/can/sendframebox.py b/examples/serialbus/can/sendframebox.py
new file mode 100644
index 000000000..6472fc473
--- /dev/null
+++ b/examples/serialbus/can/sendframebox.py
@@ -0,0 +1,195 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import re
+
+from PySide6.QtGui import QValidator
+from PySide6.QtCore import QByteArray, Signal, Slot
+from PySide6.QtWidgets import QGroupBox
+from PySide6.QtSerialBus import QCanBusFrame
+
+from ui_sendframebox import Ui_SendFrameBox
+
+
+THREE_HEX_DIGITS_PATTERN = re.compile("[0-9a-fA-F]{3}")
+HEX_NUMBER_PATTERN = re.compile("^[0-9a-fA-F]+$")
+
+
+MAX_STANDARD_ID = 0x7FF
+MAX_EXTENDED_ID = 0x10000000
+MAX_PAYLOAD = 8
+MAX_PAYLOAD_FD = 64
+
+
+def is_even_hex(input):
+ return len(input.replace(" ", "")) % 2 == 0
+
+
+def insert_space(string, pos):
+ return string[0:pos] + " " + string[pos:]
+
+
+# Formats a string of hex characters with a space between every byte
+# Example: "012345" -> "01 23 45"
+def format_hex_data(input):
+ out = input.strip()
+ while True:
+ match = THREE_HEX_DIGITS_PATTERN.search(out)
+ if match:
+ out = insert_space(out, match.end(0) - 1)
+ else:
+ break
+ return out.strip().upper()
+
+
+class HexIntegerValidator(QValidator):
+
+ def __init__(self, parent):
+ super().__init__(parent)
+ self.m_maximum = MAX_STANDARD_ID
+
+ def validate(self, input, pos):
+ result = QValidator.Intermediate
+ if input:
+ result = QValidator.Invalid
+ try:
+ value = int(input, base=16)
+ if value < self.m_maximum:
+ result = QValidator.Acceptable
+ except ValueError:
+ pass
+ return result
+
+ def set_maximum(self, maximum):
+ self.m_maximum = maximum
+
+
+class HexStringValidator(QValidator):
+
+ def __init__(self, parent):
+ super().__init__(parent)
+ self.m_maxLength = MAX_PAYLOAD
+
+ def validate(self, input, pos):
+ max_size = 2 * self.m_maxLength
+ data = input.replace(" ", "")
+ if not data:
+ return QValidator.Intermediate
+
+ # limit maximum size
+ if len(data) > max_size:
+ return QValidator.Invalid
+
+ # check if all input is valid
+ if not HEX_NUMBER_PATTERN.match(data):
+ return QValidator.Invalid
+
+ # insert a space after every two hex nibbles
+ while True:
+ match = THREE_HEX_DIGITS_PATTERN.search(input)
+ if not match:
+ break
+ start = match.start(0)
+ end = match.end()
+ if pos == start + 1:
+ # add one hex nibble before two - Abc
+ input = insert_space(input, pos)
+ elif pos == start + 2:
+ # add hex nibble in the middle - aBc
+ input = insert_space(input, end - 1)
+ pos = end
+ else:
+ # add one hex nibble after two - abC
+ input = insert_space(input, end - 1)
+ pos = end + 1
+
+ return (QValidator.Acceptable, input, pos)
+
+ def set_max_length(self, maxLength):
+ self.m_maxLength = maxLength
+
+
+class SendFrameBox(QGroupBox):
+
+ send_frame = Signal(QCanBusFrame)
+
+ def __init__(self, parent):
+ super().__init__(parent)
+ self.m_ui = Ui_SendFrameBox()
+ self.m_ui.setupUi(self)
+
+ self.m_hexIntegerValidator = HexIntegerValidator(self)
+ self.m_ui.frameIdEdit.setValidator(self.m_hexIntegerValidator)
+ self.m_hexStringValidator = HexStringValidator(self)
+ self.m_ui.payloadEdit.setValidator(self.m_hexStringValidator)
+
+ self.m_ui.dataFrame.toggled.connect(self._data_frame)
+ self.m_ui.remoteFrame.toggled.connect(self._remote_frame)
+ self.m_ui.errorFrame.toggled.connect(self._error_frame)
+ self.m_ui.extendedFormatBox.toggled.connect(self._extended_format)
+ self.m_ui.flexibleDataRateBox.toggled.connect(self._flexible_datarate)
+ self.m_ui.frameIdEdit.textChanged.connect(self._frameid_or_payload_changed)
+ self.m_ui.payloadEdit.textChanged.connect(self._frameid_or_payload_changed)
+ self._frameid_or_payload_changed()
+ self.m_ui.sendButton.clicked.connect(self._send)
+
+ @Slot(bool)
+ def _data_frame(self, value):
+ if value:
+ self.m_ui.flexibleDataRateBox.setEnabled(True)
+
+ @Slot(bool)
+ def _remote_frame(self, value):
+ if value:
+ self.m_ui.flexibleDataRateBox.setEnabled(False)
+ self.m_ui.flexibleDataRateBox.setChecked(False)
+
+ @Slot(bool)
+ def _error_frame(self, value):
+ if value:
+ self.m_ui.flexibleDataRateBox.setEnabled(False)
+ self.m_ui.flexibleDataRateBox.setChecked(False)
+
+ @Slot(bool)
+ def _extended_format(self, value):
+ m = MAX_EXTENDED_ID if value else MAX_STANDARD_ID
+ self.m_hexIntegerValidator.set_maximum(m)
+
+ @Slot(bool)
+ def _flexible_datarate(self, value):
+ len = MAX_PAYLOAD_FD if value else MAX_PAYLOAD
+ self.m_hexStringValidator.set_max_length(len)
+ self.m_ui.bitrateSwitchBox.setEnabled(value)
+ if not value:
+ self.m_ui.bitrateSwitchBox.setChecked(False)
+
+ @Slot()
+ def _frameid_or_payload_changed(self):
+ has_frame_id = bool(self.m_ui.frameIdEdit.text())
+ self.m_ui.sendButton.setEnabled(has_frame_id)
+ tt = "" if has_frame_id else "Cannot send because no Frame ID was given."
+ self.m_ui.sendButton.setToolTip(tt)
+ if has_frame_id:
+ is_even = is_even_hex(self.m_ui.payloadEdit.text())
+ self.m_ui.sendButton.setEnabled(is_even)
+ tt = "" if is_even else "Cannot send because Payload hex string is invalid."
+ self.m_ui.sendButton.setToolTip(tt)
+
+ @Slot()
+ def _send(self):
+ frame_id = int(self.m_ui.frameIdEdit.text(), base=16)
+ data = self.m_ui.payloadEdit.text().replace(" ", "")
+ self.m_ui.payloadEdit.setText(format_hex_data(data))
+ payload = QByteArray.fromHex(bytes(data, encoding='utf8'))
+
+ frame = QCanBusFrame(frame_id, payload)
+ frame.setExtendedFrameFormat(self.m_ui.extendedFormatBox.isChecked())
+ frame.setFlexibleDataRateFormat(self.m_ui.flexibleDataRateBox.isChecked())
+ frame.setBitrateSwitch(self.m_ui.bitrateSwitchBox.isChecked())
+
+ if self.m_ui.errorFrame.isChecked():
+ frame.setFrameType(QCanBusFrame.ErrorFrame)
+ elif self.m_ui.remoteFrame.isChecked():
+ frame.setFrameType(QCanBusFrame.RemoteRequestFrame)
+
+ self.send_frame.emit(frame)
diff --git a/examples/serialbus/can/sendframebox.ui b/examples/serialbus/can/sendframebox.ui
new file mode 100644
index 000000000..d913e334c
--- /dev/null
+++ b/examples/serialbus/can/sendframebox.ui
@@ -0,0 +1,211 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>SendFrameBox</class>
+ <widget class="QGroupBox" name="SendFrameBox">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>485</width>
+ <height>206</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Dialog</string>
+ </property>
+ <property name="title">
+ <string/>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_4">
+ <property name="sizeConstraint">
+ <enum>QLayout::SetMinimumSize</enum>
+ </property>
+ <item>
+ <widget class="QGroupBox" name="frameTypeBox">
+ <property name="title">
+ <string>Frame Type</string>
+ </property>
+ <property name="checkable">
+ <bool>false</bool>
+ </property>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <property name="topMargin">
+ <number>0</number>
+ </property>
+ <property name="bottomMargin">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QRadioButton" name="dataFrame">
+ <property name="toolTip">
+ <string>Sends a CAN data frame.</string>
+ </property>
+ <property name="text">
+ <string>D&amp;ata Frame</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="remoteFrame">
+ <property name="toolTip">
+ <string>Sends a CAN remote request frame.</string>
+ </property>
+ <property name="text">
+ <string>Re&amp;mote Request Frame</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="errorFrame">
+ <property name="toolTip">
+ <string>Sends an error frame.</string>
+ </property>
+ <property name="text">
+ <string>&amp;Error Frame</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="frameOptionsBox">
+ <property name="title">
+ <string>Frame Options</string>
+ </property>
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
+ <property name="topMargin">
+ <number>0</number>
+ </property>
+ <property name="bottomMargin">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QCheckBox" name="extendedFormatBox">
+ <property name="toolTip">
+ <string>Allows extended frames with 29 bit identifier.</string>
+ </property>
+ <property name="text">
+ <string>E&amp;xtended Format</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="flexibleDataRateBox">
+ <property name="toolTip">
+ <string>Allows up to 64 byte payload data.</string>
+ </property>
+ <property name="text">
+ <string>&amp;Flexible Data-Rate</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="bitrateSwitchBox">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="toolTip">
+ <string>Sends payload at higher data rate.</string>
+ </property>
+ <property name="text">
+ <string>&amp;Bitrate Switch</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_3">
+ <property name="sizeConstraint">
+ <enum>QLayout::SetMinimumSize</enum>
+ </property>
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QLabel" name="frameIdLabel">
+ <property name="text">
+ <string>Frame &amp;ID (hex)</string>
+ </property>
+ <property name="buddy">
+ <cstring>frameIdEdit</cstring>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="frameIdEdit">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+ <horstretch>1</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="placeholderText">
+ <string>123</string>
+ </property>
+ <property name="clearButtonEnabled">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <widget class="QLabel" name="payloadLabel">
+ <property name="text">
+ <string>&amp;Payload (hex)</string>
+ </property>
+ <property name="buddy">
+ <cstring>payloadEdit</cstring>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="payloadEdit">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>2</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="placeholderText">
+ <string>12 34 AB CE</string>
+ </property>
+ <property name="clearButtonEnabled">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout_3">
+ <item>
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string/>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="sendButton">
+ <property name="text">
+ <string>&amp;Send</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/examples/serialbus/can/ui_canbusdeviceinfobox.py b/examples/serialbus/can/ui_canbusdeviceinfobox.py
new file mode 100644
index 000000000..d2f0e74a5
--- /dev/null
+++ b/examples/serialbus/can/ui_canbusdeviceinfobox.py
@@ -0,0 +1,88 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'canbusdeviceinfobox.ui'
+##
+## Created by: Qt User Interface Compiler version 6.7.0
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
+ QFont, QFontDatabase, QGradient, QIcon,
+ QImage, QKeySequence, QLinearGradient, QPainter,
+ QPalette, QPixmap, QRadialGradient, QTransform)
+from PySide6.QtWidgets import (QApplication, QCheckBox, QGroupBox, QLabel,
+ QSizePolicy, QVBoxLayout, QWidget)
+
+class Ui_CanBusDeviceInfoBox(object):
+ def setupUi(self, CanBusDeviceInfoBox):
+ if not CanBusDeviceInfoBox.objectName():
+ CanBusDeviceInfoBox.setObjectName(u"CanBusDeviceInfoBox")
+ CanBusDeviceInfoBox.resize(319, 217)
+ self.verticalLayout = QVBoxLayout(CanBusDeviceInfoBox)
+ self.verticalLayout.setObjectName(u"verticalLayout")
+ self.pluginLabel = QLabel(CanBusDeviceInfoBox)
+ self.pluginLabel.setObjectName(u"pluginLabel")
+
+ self.verticalLayout.addWidget(self.pluginLabel)
+
+ self.nameLabel = QLabel(CanBusDeviceInfoBox)
+ self.nameLabel.setObjectName(u"nameLabel")
+
+ self.verticalLayout.addWidget(self.nameLabel)
+
+ self.descriptionLabel = QLabel(CanBusDeviceInfoBox)
+ self.descriptionLabel.setObjectName(u"descriptionLabel")
+
+ self.verticalLayout.addWidget(self.descriptionLabel)
+
+ self.serialNumberLabel = QLabel(CanBusDeviceInfoBox)
+ self.serialNumberLabel.setObjectName(u"serialNumberLabel")
+
+ self.verticalLayout.addWidget(self.serialNumberLabel)
+
+ self.aliasLabel = QLabel(CanBusDeviceInfoBox)
+ self.aliasLabel.setObjectName(u"aliasLabel")
+
+ self.verticalLayout.addWidget(self.aliasLabel)
+
+ self.channelLabel = QLabel(CanBusDeviceInfoBox)
+ self.channelLabel.setObjectName(u"channelLabel")
+
+ self.verticalLayout.addWidget(self.channelLabel)
+
+ self.isFlexibleDataRateCapable = QCheckBox(CanBusDeviceInfoBox)
+ self.isFlexibleDataRateCapable.setObjectName(u"isFlexibleDataRateCapable")
+ self.isFlexibleDataRateCapable.setEnabled(True)
+ self.isFlexibleDataRateCapable.setCheckable(True)
+
+ self.verticalLayout.addWidget(self.isFlexibleDataRateCapable)
+
+ self.isVirtual = QCheckBox(CanBusDeviceInfoBox)
+ self.isVirtual.setObjectName(u"isVirtual")
+ self.isVirtual.setCheckable(True)
+
+ self.verticalLayout.addWidget(self.isVirtual)
+
+
+ self.retranslateUi(CanBusDeviceInfoBox)
+
+ QMetaObject.connectSlotsByName(CanBusDeviceInfoBox)
+ # setupUi
+
+ def retranslateUi(self, CanBusDeviceInfoBox):
+ CanBusDeviceInfoBox.setWindowTitle(QCoreApplication.translate("CanBusDeviceInfoBox", u"CAN Interface Properties", None))
+ self.pluginLabel.setText("")
+ self.nameLabel.setText("")
+ self.descriptionLabel.setText("")
+ self.serialNumberLabel.setText("")
+ self.aliasLabel.setText("")
+ self.channelLabel.setText("")
+ self.isFlexibleDataRateCapable.setText(QCoreApplication.translate("CanBusDeviceInfoBox", u"Flexible Data Rate", None))
+ self.isVirtual.setText(QCoreApplication.translate("CanBusDeviceInfoBox", u"Virtual", None))
+ # retranslateUi
+
diff --git a/examples/serialbus/can/ui_canbusdeviceinfodialog.py b/examples/serialbus/can/ui_canbusdeviceinfodialog.py
new file mode 100644
index 000000000..c32e9ca2d
--- /dev/null
+++ b/examples/serialbus/can/ui_canbusdeviceinfodialog.py
@@ -0,0 +1,64 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'canbusdeviceinfodialog.ui'
+##
+## Created by: Qt User Interface Compiler version 6.7.0
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
+ QFont, QFontDatabase, QGradient, QIcon,
+ QImage, QKeySequence, QLinearGradient, QPainter,
+ QPalette, QPixmap, QRadialGradient, QTransform)
+from PySide6.QtWidgets import (QApplication, QDialog, QHBoxLayout, QPushButton,
+ QSizePolicy, QSpacerItem, QVBoxLayout, QWidget)
+
+from canbusdeviceinfobox import CanBusDeviceInfoBox
+
+class Ui_CanBusDeviceInfoDialog(object):
+ def setupUi(self, CanBusDeviceInfoDialog):
+ if not CanBusDeviceInfoDialog.objectName():
+ CanBusDeviceInfoDialog.setObjectName(u"CanBusDeviceInfoDialog")
+ CanBusDeviceInfoDialog.resize(237, 225)
+ self.verticalLayout = QVBoxLayout(CanBusDeviceInfoDialog)
+ self.verticalLayout.setObjectName(u"verticalLayout")
+ self.deviceInfoBox = CanBusDeviceInfoBox(CanBusDeviceInfoDialog)
+ self.deviceInfoBox.setObjectName(u"deviceInfoBox")
+ self.deviceInfoBox.setEnabled(True)
+
+ self.verticalLayout.addWidget(self.deviceInfoBox)
+
+ self.horizontalLayout = QHBoxLayout()
+ self.horizontalLayout.setObjectName(u"horizontalLayout")
+ self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
+
+ self.horizontalLayout.addItem(self.horizontalSpacer)
+
+ self.okButton = QPushButton(CanBusDeviceInfoDialog)
+ self.okButton.setObjectName(u"okButton")
+
+ self.horizontalLayout.addWidget(self.okButton)
+
+
+ self.verticalLayout.addLayout(self.horizontalLayout)
+
+
+ self.retranslateUi(CanBusDeviceInfoDialog)
+
+ self.okButton.setDefault(True)
+
+
+ QMetaObject.connectSlotsByName(CanBusDeviceInfoDialog)
+ # setupUi
+
+ def retranslateUi(self, CanBusDeviceInfoDialog):
+ CanBusDeviceInfoDialog.setWindowTitle(QCoreApplication.translate("CanBusDeviceInfoDialog", u"CAN Interface Properties", None))
+ self.deviceInfoBox.setTitle(QCoreApplication.translate("CanBusDeviceInfoDialog", u"CAN Interface Properties", None))
+ self.okButton.setText(QCoreApplication.translate("CanBusDeviceInfoDialog", u"Ok", None))
+ # retranslateUi
+
diff --git a/examples/serialbus/can/ui_connectdialog.py b/examples/serialbus/can/ui_connectdialog.py
new file mode 100644
index 000000000..f01adc4eb
--- /dev/null
+++ b/examples/serialbus/can/ui_connectdialog.py
@@ -0,0 +1,252 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'connectdialog.ui'
+##
+## Created by: Qt User Interface Compiler version 6.7.0
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
+ QFont, QFontDatabase, QGradient, QIcon,
+ QImage, QKeySequence, QLinearGradient, QPainter,
+ QPalette, QPixmap, QRadialGradient, QTransform)
+from PySide6.QtWidgets import (QAbstractSpinBox, QApplication, QCheckBox, QComboBox,
+ QDialog, QGridLayout, QGroupBox, QHBoxLayout,
+ QLabel, QLineEdit, QPushButton, QSizePolicy,
+ QSpacerItem, QSpinBox, QVBoxLayout, QWidget)
+
+from bitratebox import BitRateBox
+from canbusdeviceinfobox import CanBusDeviceInfoBox
+
+class Ui_ConnectDialog(object):
+ def setupUi(self, ConnectDialog):
+ if not ConnectDialog.objectName():
+ ConnectDialog.setObjectName(u"ConnectDialog")
+ ConnectDialog.resize(542, 558)
+ self.gridLayout_6 = QGridLayout(ConnectDialog)
+ self.gridLayout_6.setObjectName(u"gridLayout_6")
+ self.gridLayout_5 = QGridLayout()
+ self.gridLayout_5.setObjectName(u"gridLayout_5")
+ self.selectPluginBox = QGroupBox(ConnectDialog)
+ self.selectPluginBox.setObjectName(u"selectPluginBox")
+ self.gridLayout = QGridLayout(self.selectPluginBox)
+ self.gridLayout.setObjectName(u"gridLayout")
+ self.pluginListBox = QComboBox(self.selectPluginBox)
+ self.pluginListBox.setObjectName(u"pluginListBox")
+
+ self.gridLayout.addWidget(self.pluginListBox, 0, 0, 1, 1)
+
+
+ self.gridLayout_5.addWidget(self.selectPluginBox, 0, 0, 1, 1)
+
+ self.groupBox = QGroupBox(ConnectDialog)
+ self.groupBox.setObjectName(u"groupBox")
+ self.gridLayout_2 = QGridLayout(self.groupBox)
+ self.gridLayout_2.setObjectName(u"gridLayout_2")
+ self.verticalLayout_2 = QVBoxLayout()
+ self.verticalLayout_2.setObjectName(u"verticalLayout_2")
+ self.horizontalLayout_2 = QHBoxLayout()
+ self.horizontalLayout_2.setObjectName(u"horizontalLayout_2")
+ self.ringBufferBox = QCheckBox(self.groupBox)
+ self.ringBufferBox.setObjectName(u"ringBufferBox")
+ self.ringBufferBox.setChecked(True)
+
+ self.horizontalLayout_2.addWidget(self.ringBufferBox)
+
+ self.ringBufferLimitBox = QSpinBox(self.groupBox)
+ self.ringBufferLimitBox.setObjectName(u"ringBufferLimitBox")
+ self.ringBufferLimitBox.setMinimum(10)
+ self.ringBufferLimitBox.setMaximum(10000000)
+ self.ringBufferLimitBox.setSingleStep(10)
+ self.ringBufferLimitBox.setStepType(QAbstractSpinBox.AdaptiveDecimalStepType)
+ self.ringBufferLimitBox.setValue(1000)
+
+ self.horizontalLayout_2.addWidget(self.ringBufferLimitBox)
+
+
+ self.verticalLayout_2.addLayout(self.horizontalLayout_2)
+
+ self.autoscrollBox = QCheckBox(self.groupBox)
+ self.autoscrollBox.setObjectName(u"autoscrollBox")
+
+ self.verticalLayout_2.addWidget(self.autoscrollBox)
+
+
+ self.gridLayout_2.addLayout(self.verticalLayout_2, 0, 0, 1, 1)
+
+
+ self.gridLayout_5.addWidget(self.groupBox, 4, 0, 1, 2)
+
+ self.useConfigurationBox = QCheckBox(ConnectDialog)
+ self.useConfigurationBox.setObjectName(u"useConfigurationBox")
+
+ self.gridLayout_5.addWidget(self.useConfigurationBox, 3, 0, 1, 1)
+
+ self.configurationBox = QGroupBox(ConnectDialog)
+ self.configurationBox.setObjectName(u"configurationBox")
+ self.configurationBox.setEnabled(False)
+ self.gridLayout_4 = QGridLayout(self.configurationBox)
+ self.gridLayout_4.setObjectName(u"gridLayout_4")
+ self.rawFilterLabel = QLabel(self.configurationBox)
+ self.rawFilterLabel.setObjectName(u"rawFilterLabel")
+
+ self.gridLayout_4.addWidget(self.rawFilterLabel, 0, 0, 1, 1)
+
+ self.rawFilterEdit = QLineEdit(self.configurationBox)
+ self.rawFilterEdit.setObjectName(u"rawFilterEdit")
+ self.rawFilterEdit.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
+
+ self.gridLayout_4.addWidget(self.rawFilterEdit, 0, 1, 1, 1)
+
+ self.errorFilterLabel = QLabel(self.configurationBox)
+ self.errorFilterLabel.setObjectName(u"errorFilterLabel")
+
+ self.gridLayout_4.addWidget(self.errorFilterLabel, 1, 0, 1, 1)
+
+ self.errorFilterEdit = QLineEdit(self.configurationBox)
+ self.errorFilterEdit.setObjectName(u"errorFilterEdit")
+ self.errorFilterEdit.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
+
+ self.gridLayout_4.addWidget(self.errorFilterEdit, 1, 1, 1, 1)
+
+ self.loopbackLabel = QLabel(self.configurationBox)
+ self.loopbackLabel.setObjectName(u"loopbackLabel")
+
+ self.gridLayout_4.addWidget(self.loopbackLabel, 2, 0, 1, 1)
+
+ self.loopbackBox = QComboBox(self.configurationBox)
+ self.loopbackBox.setObjectName(u"loopbackBox")
+
+ self.gridLayout_4.addWidget(self.loopbackBox, 2, 1, 1, 1)
+
+ self.receiveOwnLabel = QLabel(self.configurationBox)
+ self.receiveOwnLabel.setObjectName(u"receiveOwnLabel")
+
+ self.gridLayout_4.addWidget(self.receiveOwnLabel, 3, 0, 1, 1)
+
+ self.receiveOwnBox = QComboBox(self.configurationBox)
+ self.receiveOwnBox.setObjectName(u"receiveOwnBox")
+
+ self.gridLayout_4.addWidget(self.receiveOwnBox, 3, 1, 1, 1)
+
+ self.bitrateLabel = QLabel(self.configurationBox)
+ self.bitrateLabel.setObjectName(u"bitrateLabel")
+
+ self.gridLayout_4.addWidget(self.bitrateLabel, 4, 0, 1, 1)
+
+ self.bitrateBox = BitRateBox(self.configurationBox)
+ self.bitrateBox.setObjectName(u"bitrateBox")
+
+ self.gridLayout_4.addWidget(self.bitrateBox, 4, 1, 1, 1)
+
+ self.canFdLabel = QLabel(self.configurationBox)
+ self.canFdLabel.setObjectName(u"canFdLabel")
+
+ self.gridLayout_4.addWidget(self.canFdLabel, 5, 0, 1, 1)
+
+ self.canFdBox = QComboBox(self.configurationBox)
+ self.canFdBox.setObjectName(u"canFdBox")
+
+ self.gridLayout_4.addWidget(self.canFdBox, 5, 1, 1, 1)
+
+ self.dataBitrateLabel = QLabel(self.configurationBox)
+ self.dataBitrateLabel.setObjectName(u"dataBitrateLabel")
+
+ self.gridLayout_4.addWidget(self.dataBitrateLabel, 6, 0, 1, 1)
+
+ self.dataBitrateBox = BitRateBox(self.configurationBox)
+ self.dataBitrateBox.setObjectName(u"dataBitrateBox")
+
+ self.gridLayout_4.addWidget(self.dataBitrateBox, 6, 1, 1, 1)
+
+
+ self.gridLayout_5.addWidget(self.configurationBox, 0, 1, 4, 1)
+
+ self.horizontalLayout = QHBoxLayout()
+ self.horizontalLayout.setObjectName(u"horizontalLayout")
+ self.horizontalSpacer = QSpacerItem(96, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
+
+ self.horizontalLayout.addItem(self.horizontalSpacer)
+
+ self.cancelButton = QPushButton(ConnectDialog)
+ self.cancelButton.setObjectName(u"cancelButton")
+ self.cancelButton.setAutoDefault(False)
+
+ self.horizontalLayout.addWidget(self.cancelButton)
+
+ self.okButton = QPushButton(ConnectDialog)
+ self.okButton.setObjectName(u"okButton")
+ self.okButton.setAutoDefault(False)
+
+ self.horizontalLayout.addWidget(self.okButton)
+
+
+ self.gridLayout_5.addLayout(self.horizontalLayout, 5, 0, 1, 2)
+
+ self.specifyInterfaceNameBox = QGroupBox(ConnectDialog)
+ self.specifyInterfaceNameBox.setObjectName(u"specifyInterfaceNameBox")
+ self.gridLayout_3 = QGridLayout(self.specifyInterfaceNameBox)
+ self.gridLayout_3.setObjectName(u"gridLayout_3")
+ self.interfaceListBox = QComboBox(self.specifyInterfaceNameBox)
+ self.interfaceListBox.setObjectName(u"interfaceListBox")
+ self.interfaceListBox.setEditable(True)
+
+ self.gridLayout_3.addWidget(self.interfaceListBox, 0, 0, 1, 1)
+
+
+ self.gridLayout_5.addWidget(self.specifyInterfaceNameBox, 1, 0, 1, 1)
+
+ self.deviceInfoBox = CanBusDeviceInfoBox(ConnectDialog)
+ self.deviceInfoBox.setObjectName(u"deviceInfoBox")
+ self.deviceInfoBox.setEnabled(True)
+
+ self.gridLayout_5.addWidget(self.deviceInfoBox, 2, 0, 1, 1)
+
+
+ self.gridLayout_6.addLayout(self.gridLayout_5, 0, 0, 1, 1)
+
+
+ self.retranslateUi(ConnectDialog)
+
+ self.okButton.setDefault(True)
+
+
+ QMetaObject.connectSlotsByName(ConnectDialog)
+ # setupUi
+
+ def retranslateUi(self, ConnectDialog):
+ ConnectDialog.setWindowTitle(QCoreApplication.translate("ConnectDialog", u"Connect", None))
+ self.selectPluginBox.setTitle(QCoreApplication.translate("ConnectDialog", u"Select CAN plugin", None))
+ self.groupBox.setTitle(QCoreApplication.translate("ConnectDialog", u"GUI Settings", None))
+#if QT_CONFIG(tooltip)
+ self.ringBufferBox.setToolTip(QCoreApplication.translate("ConnectDialog", u"<html><head/><body><p>Use ring buffer in table view model</p></body></html>", None))
+#endif // QT_CONFIG(tooltip)
+ self.ringBufferBox.setText(QCoreApplication.translate("ConnectDialog", u"Use ring buffer", None))
+#if QT_CONFIG(tooltip)
+ self.ringBufferLimitBox.setToolTip(QCoreApplication.translate("ConnectDialog", u"<html><head/><body><p>Limit of ring buffer in table view model</p></body></html>", None))
+#endif // QT_CONFIG(tooltip)
+#if QT_CONFIG(tooltip)
+ self.autoscrollBox.setToolTip(QCoreApplication.translate("ConnectDialog", u"<html><head/><body><p>Scroll to bottom table view on each portion of received frames</p></body></html>", None))
+#endif // QT_CONFIG(tooltip)
+ self.autoscrollBox.setText(QCoreApplication.translate("ConnectDialog", u"Autoscroll", None))
+ self.useConfigurationBox.setText(QCoreApplication.translate("ConnectDialog", u"Custom configuration", None))
+ self.configurationBox.setTitle(QCoreApplication.translate("ConnectDialog", u"Specify Configuration", None))
+ self.rawFilterLabel.setText(QCoreApplication.translate("ConnectDialog", u"RAW Filter", None))
+ self.errorFilterLabel.setText(QCoreApplication.translate("ConnectDialog", u"Error Filter", None))
+ self.errorFilterEdit.setPlaceholderText(QCoreApplication.translate("ConnectDialog", u"FrameError bits", None))
+ self.loopbackLabel.setText(QCoreApplication.translate("ConnectDialog", u"Loopback", None))
+ self.receiveOwnLabel.setText(QCoreApplication.translate("ConnectDialog", u"Receive Own", None))
+ self.bitrateLabel.setText(QCoreApplication.translate("ConnectDialog", u"Bitrate", None))
+ self.canFdLabel.setText(QCoreApplication.translate("ConnectDialog", u"CAN FD", None))
+ self.dataBitrateLabel.setText(QCoreApplication.translate("ConnectDialog", u"Data Bitrate", None))
+ self.cancelButton.setText(QCoreApplication.translate("ConnectDialog", u"Cancel", None))
+ self.okButton.setText(QCoreApplication.translate("ConnectDialog", u"OK", None))
+ self.specifyInterfaceNameBox.setTitle(QCoreApplication.translate("ConnectDialog", u"Specify CAN interface name", None))
+ self.deviceInfoBox.setTitle(QCoreApplication.translate("ConnectDialog", u"CAN Interface Properties", None))
+ # retranslateUi
+
diff --git a/examples/serialbus/can/ui_mainwindow.py b/examples/serialbus/can/ui_mainwindow.py
new file mode 100644
index 000000000..4ba4dd309
--- /dev/null
+++ b/examples/serialbus/can/ui_mainwindow.py
@@ -0,0 +1,172 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'mainwindow.ui'
+##
+## Created by: Qt User Interface Compiler version 6.7.0
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QAction, QBrush, QColor, QConicalGradient,
+ QCursor, QFont, QFontDatabase, QGradient,
+ QIcon, QImage, QKeySequence, QLinearGradient,
+ QPainter, QPalette, QPixmap, QRadialGradient,
+ QTransform)
+from PySide6.QtWidgets import (QAbstractItemView, QApplication, QGridLayout, QGroupBox,
+ QHBoxLayout, QHeaderView, QLabel, QMainWindow,
+ QMenu, QMenuBar, QSizePolicy, QSpacerItem,
+ QStatusBar, QToolBar, QVBoxLayout, QWidget)
+
+from receivedframesview import ReceivedFramesView
+from sendframebox import SendFrameBox
+import rc_can
+
+class Ui_MainWindow(object):
+ def setupUi(self, MainWindow):
+ if not MainWindow.objectName():
+ MainWindow.setObjectName(u"MainWindow")
+ MainWindow.resize(634, 527)
+ self.actionConnect = QAction(MainWindow)
+ self.actionConnect.setObjectName(u"actionConnect")
+ icon = QIcon()
+ icon.addFile(u":/images/connect.png", QSize(), QIcon.Normal, QIcon.Off)
+ self.actionConnect.setIcon(icon)
+ self.actionDisconnect = QAction(MainWindow)
+ self.actionDisconnect.setObjectName(u"actionDisconnect")
+ icon1 = QIcon()
+ icon1.addFile(u":/images/disconnect.png", QSize(), QIcon.Normal, QIcon.Off)
+ self.actionDisconnect.setIcon(icon1)
+ self.actionQuit = QAction(MainWindow)
+ self.actionQuit.setObjectName(u"actionQuit")
+ icon2 = QIcon()
+ icon2.addFile(u":/images/application-exit.png", QSize(), QIcon.Normal, QIcon.Off)
+ self.actionQuit.setIcon(icon2)
+ self.actionAboutQt = QAction(MainWindow)
+ self.actionAboutQt.setObjectName(u"actionAboutQt")
+ self.actionClearLog = QAction(MainWindow)
+ self.actionClearLog.setObjectName(u"actionClearLog")
+ icon3 = QIcon()
+ icon3.addFile(u":/images/clear.png", QSize(), QIcon.Normal, QIcon.Off)
+ self.actionClearLog.setIcon(icon3)
+ self.actionPluginDocumentation = QAction(MainWindow)
+ self.actionPluginDocumentation.setObjectName(u"actionPluginDocumentation")
+ self.actionResetController = QAction(MainWindow)
+ self.actionResetController.setObjectName(u"actionResetController")
+ self.actionDeviceInformation = QAction(MainWindow)
+ self.actionDeviceInformation.setObjectName(u"actionDeviceInformation")
+ self.centralWidget = QWidget(MainWindow)
+ self.centralWidget.setObjectName(u"centralWidget")
+ self.verticalLayout = QVBoxLayout(self.centralWidget)
+ self.verticalLayout.setSpacing(6)
+ self.verticalLayout.setContentsMargins(11, 11, 11, 11)
+ self.verticalLayout.setObjectName(u"verticalLayout")
+ self.sendFrameBox = SendFrameBox(self.centralWidget)
+ self.sendFrameBox.setObjectName(u"sendFrameBox")
+
+ self.verticalLayout.addWidget(self.sendFrameBox)
+
+ self.receivedMessagesBox = QGroupBox(self.centralWidget)
+ self.receivedMessagesBox.setObjectName(u"receivedMessagesBox")
+ self.gridLayout = QGridLayout(self.receivedMessagesBox)
+ self.gridLayout.setSpacing(6)
+ self.gridLayout.setContentsMargins(11, 11, 11, 11)
+ self.gridLayout.setObjectName(u"gridLayout")
+ self.verticalLayout_2 = QVBoxLayout()
+ self.verticalLayout_2.setSpacing(6)
+ self.verticalLayout_2.setObjectName(u"verticalLayout_2")
+ self.receivedFramesView = ReceivedFramesView(self.receivedMessagesBox)
+ self.receivedFramesView.setObjectName(u"receivedFramesView")
+ self.receivedFramesView.setEditTriggers(QAbstractItemView.NoEditTriggers)
+ self.receivedFramesView.setProperty("showDropIndicator", False)
+ self.receivedFramesView.setDragDropOverwriteMode(False)
+ self.receivedFramesView.setSelectionBehavior(QAbstractItemView.SelectRows)
+
+ self.verticalLayout_2.addWidget(self.receivedFramesView)
+
+ self.horizontalLayout = QHBoxLayout()
+ self.horizontalLayout.setSpacing(6)
+ self.horizontalLayout.setObjectName(u"horizontalLayout")
+ self.busStatus = QLabel(self.receivedMessagesBox)
+ self.busStatus.setObjectName(u"busStatus")
+
+ self.horizontalLayout.addWidget(self.busStatus)
+
+ self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
+
+ self.horizontalLayout.addItem(self.horizontalSpacer)
+
+
+ self.verticalLayout_2.addLayout(self.horizontalLayout)
+
+
+ self.gridLayout.addLayout(self.verticalLayout_2, 0, 0, 1, 1)
+
+
+ self.verticalLayout.addWidget(self.receivedMessagesBox)
+
+ MainWindow.setCentralWidget(self.centralWidget)
+ self.menuBar = QMenuBar(MainWindow)
+ self.menuBar.setObjectName(u"menuBar")
+ self.menuBar.setGeometry(QRect(0, 0, 634, 22))
+ self.menuCalls = QMenu(self.menuBar)
+ self.menuCalls.setObjectName(u"menuCalls")
+ self.menuHelp = QMenu(self.menuBar)
+ self.menuHelp.setObjectName(u"menuHelp")
+ MainWindow.setMenuBar(self.menuBar)
+ self.mainToolBar = QToolBar(MainWindow)
+ self.mainToolBar.setObjectName(u"mainToolBar")
+ MainWindow.addToolBar(Qt.ToolBarArea.TopToolBarArea, self.mainToolBar)
+ self.statusBar = QStatusBar(MainWindow)
+ self.statusBar.setObjectName(u"statusBar")
+ MainWindow.setStatusBar(self.statusBar)
+
+ self.menuBar.addAction(self.menuCalls.menuAction())
+ self.menuBar.addAction(self.menuHelp.menuAction())
+ self.menuCalls.addAction(self.actionConnect)
+ self.menuCalls.addAction(self.actionDisconnect)
+ self.menuCalls.addAction(self.actionDeviceInformation)
+ self.menuCalls.addSeparator()
+ self.menuCalls.addAction(self.actionResetController)
+ self.menuCalls.addSeparator()
+ self.menuCalls.addAction(self.actionClearLog)
+ self.menuCalls.addSeparator()
+ self.menuCalls.addAction(self.actionQuit)
+ self.menuHelp.addAction(self.actionPluginDocumentation)
+ self.menuHelp.addAction(self.actionAboutQt)
+ self.mainToolBar.addAction(self.actionConnect)
+ self.mainToolBar.addAction(self.actionDisconnect)
+ self.mainToolBar.addSeparator()
+ self.mainToolBar.addAction(self.actionClearLog)
+
+ self.retranslateUi(MainWindow)
+
+ QMetaObject.connectSlotsByName(MainWindow)
+ # setupUi
+
+ def retranslateUi(self, MainWindow):
+ MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"CAN Example", None))
+ self.actionConnect.setText(QCoreApplication.translate("MainWindow", u"&Connect", None))
+ self.actionDisconnect.setText(QCoreApplication.translate("MainWindow", u"&Disconnect", None))
+ self.actionQuit.setText(QCoreApplication.translate("MainWindow", u"&Quit", None))
+ self.actionAboutQt.setText(QCoreApplication.translate("MainWindow", u"&About Qt", None))
+ self.actionClearLog.setText(QCoreApplication.translate("MainWindow", u"Clear &Log", None))
+ self.actionPluginDocumentation.setText(QCoreApplication.translate("MainWindow", u"Plugin Documentation", None))
+#if QT_CONFIG(tooltip)
+ self.actionPluginDocumentation.setToolTip(QCoreApplication.translate("MainWindow", u"Open plugin documentation in Webbrowser", None))
+#endif // QT_CONFIG(tooltip)
+ self.actionResetController.setText(QCoreApplication.translate("MainWindow", u"&Reset CAN Controller", None))
+#if QT_CONFIG(tooltip)
+ self.actionResetController.setToolTip(QCoreApplication.translate("MainWindow", u"Reset CAN Controller", None))
+#endif // QT_CONFIG(tooltip)
+ self.actionDeviceInformation.setText(QCoreApplication.translate("MainWindow", u"Device &Information...", None))
+ self.sendFrameBox.setTitle(QCoreApplication.translate("MainWindow", u"Send CAN frame", None))
+ self.receivedMessagesBox.setTitle(QCoreApplication.translate("MainWindow", u"Received CAN messages", None))
+ self.busStatus.setText("")
+ self.menuCalls.setTitle(QCoreApplication.translate("MainWindow", u"&Calls", None))
+ self.menuHelp.setTitle(QCoreApplication.translate("MainWindow", u"&Help", None))
+ # retranslateUi
+
diff --git a/examples/serialbus/can/ui_sendframebox.py b/examples/serialbus/can/ui_sendframebox.py
new file mode 100644
index 000000000..79f013c89
--- /dev/null
+++ b/examples/serialbus/can/ui_sendframebox.py
@@ -0,0 +1,188 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'sendframebox.ui'
+##
+## Created by: Qt User Interface Compiler version 6.7.0
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
+ QFont, QFontDatabase, QGradient, QIcon,
+ QImage, QKeySequence, QLinearGradient, QPainter,
+ QPalette, QPixmap, QRadialGradient, QTransform)
+from PySide6.QtWidgets import (QApplication, QCheckBox, QGroupBox, QHBoxLayout,
+ QLabel, QLayout, QLineEdit, QPushButton,
+ QRadioButton, QSizePolicy, QVBoxLayout, QWidget)
+
+class Ui_SendFrameBox(object):
+ def setupUi(self, SendFrameBox):
+ if not SendFrameBox.objectName():
+ SendFrameBox.setObjectName(u"SendFrameBox")
+ SendFrameBox.resize(485, 206)
+ self.verticalLayout_4 = QVBoxLayout(SendFrameBox)
+ self.verticalLayout_4.setObjectName(u"verticalLayout_4")
+ self.verticalLayout_4.setSizeConstraint(QLayout.SetMinimumSize)
+ self.frameTypeBox = QGroupBox(SendFrameBox)
+ self.frameTypeBox.setObjectName(u"frameTypeBox")
+ self.frameTypeBox.setCheckable(False)
+ self.horizontalLayout = QHBoxLayout(self.frameTypeBox)
+ self.horizontalLayout.setObjectName(u"horizontalLayout")
+ self.horizontalLayout.setContentsMargins(-1, 0, -1, 0)
+ self.dataFrame = QRadioButton(self.frameTypeBox)
+ self.dataFrame.setObjectName(u"dataFrame")
+ self.dataFrame.setChecked(True)
+
+ self.horizontalLayout.addWidget(self.dataFrame)
+
+ self.remoteFrame = QRadioButton(self.frameTypeBox)
+ self.remoteFrame.setObjectName(u"remoteFrame")
+
+ self.horizontalLayout.addWidget(self.remoteFrame)
+
+ self.errorFrame = QRadioButton(self.frameTypeBox)
+ self.errorFrame.setObjectName(u"errorFrame")
+
+ self.horizontalLayout.addWidget(self.errorFrame)
+
+
+ self.verticalLayout_4.addWidget(self.frameTypeBox)
+
+ self.frameOptionsBox = QGroupBox(SendFrameBox)
+ self.frameOptionsBox.setObjectName(u"frameOptionsBox")
+ self.horizontalLayout_2 = QHBoxLayout(self.frameOptionsBox)
+ self.horizontalLayout_2.setObjectName(u"horizontalLayout_2")
+ self.horizontalLayout_2.setContentsMargins(-1, 0, -1, 0)
+ self.extendedFormatBox = QCheckBox(self.frameOptionsBox)
+ self.extendedFormatBox.setObjectName(u"extendedFormatBox")
+
+ self.horizontalLayout_2.addWidget(self.extendedFormatBox)
+
+ self.flexibleDataRateBox = QCheckBox(self.frameOptionsBox)
+ self.flexibleDataRateBox.setObjectName(u"flexibleDataRateBox")
+
+ self.horizontalLayout_2.addWidget(self.flexibleDataRateBox)
+
+ self.bitrateSwitchBox = QCheckBox(self.frameOptionsBox)
+ self.bitrateSwitchBox.setObjectName(u"bitrateSwitchBox")
+ self.bitrateSwitchBox.setEnabled(False)
+
+ self.horizontalLayout_2.addWidget(self.bitrateSwitchBox)
+
+
+ self.verticalLayout_4.addWidget(self.frameOptionsBox)
+
+ self.horizontalLayout_3 = QHBoxLayout()
+ self.horizontalLayout_3.setObjectName(u"horizontalLayout_3")
+ self.horizontalLayout_3.setSizeConstraint(QLayout.SetMinimumSize)
+ self.verticalLayout = QVBoxLayout()
+ self.verticalLayout.setObjectName(u"verticalLayout")
+ self.frameIdLabel = QLabel(SendFrameBox)
+ self.frameIdLabel.setObjectName(u"frameIdLabel")
+
+ self.verticalLayout.addWidget(self.frameIdLabel)
+
+ self.frameIdEdit = QLineEdit(SendFrameBox)
+ self.frameIdEdit.setObjectName(u"frameIdEdit")
+ sizePolicy = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Fixed)
+ sizePolicy.setHorizontalStretch(1)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.frameIdEdit.sizePolicy().hasHeightForWidth())
+ self.frameIdEdit.setSizePolicy(sizePolicy)
+ self.frameIdEdit.setClearButtonEnabled(True)
+
+ self.verticalLayout.addWidget(self.frameIdEdit)
+
+
+ self.horizontalLayout_3.addLayout(self.verticalLayout)
+
+ self.verticalLayout_2 = QVBoxLayout()
+ self.verticalLayout_2.setObjectName(u"verticalLayout_2")
+ self.payloadLabel = QLabel(SendFrameBox)
+ self.payloadLabel.setObjectName(u"payloadLabel")
+
+ self.verticalLayout_2.addWidget(self.payloadLabel)
+
+ self.payloadEdit = QLineEdit(SendFrameBox)
+ self.payloadEdit.setObjectName(u"payloadEdit")
+ sizePolicy1 = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed)
+ sizePolicy1.setHorizontalStretch(2)
+ sizePolicy1.setVerticalStretch(0)
+ sizePolicy1.setHeightForWidth(self.payloadEdit.sizePolicy().hasHeightForWidth())
+ self.payloadEdit.setSizePolicy(sizePolicy1)
+ self.payloadEdit.setClearButtonEnabled(True)
+
+ self.verticalLayout_2.addWidget(self.payloadEdit)
+
+
+ self.horizontalLayout_3.addLayout(self.verticalLayout_2)
+
+ self.verticalLayout_3 = QVBoxLayout()
+ self.verticalLayout_3.setObjectName(u"verticalLayout_3")
+ self.label = QLabel(SendFrameBox)
+ self.label.setObjectName(u"label")
+
+ self.verticalLayout_3.addWidget(self.label)
+
+ self.sendButton = QPushButton(SendFrameBox)
+ self.sendButton.setObjectName(u"sendButton")
+
+ self.verticalLayout_3.addWidget(self.sendButton)
+
+
+ self.horizontalLayout_3.addLayout(self.verticalLayout_3)
+
+
+ self.verticalLayout_4.addLayout(self.horizontalLayout_3)
+
+#if QT_CONFIG(shortcut)
+ self.frameIdLabel.setBuddy(self.frameIdEdit)
+ self.payloadLabel.setBuddy(self.payloadEdit)
+#endif // QT_CONFIG(shortcut)
+
+ self.retranslateUi(SendFrameBox)
+
+ QMetaObject.connectSlotsByName(SendFrameBox)
+ # setupUi
+
+ def retranslateUi(self, SendFrameBox):
+ SendFrameBox.setWindowTitle(QCoreApplication.translate("SendFrameBox", u"Dialog", None))
+ SendFrameBox.setTitle("")
+ self.frameTypeBox.setTitle(QCoreApplication.translate("SendFrameBox", u"Frame Type", None))
+#if QT_CONFIG(tooltip)
+ self.dataFrame.setToolTip(QCoreApplication.translate("SendFrameBox", u"Sends a CAN data frame.", None))
+#endif // QT_CONFIG(tooltip)
+ self.dataFrame.setText(QCoreApplication.translate("SendFrameBox", u"D&ata Frame", None))
+#if QT_CONFIG(tooltip)
+ self.remoteFrame.setToolTip(QCoreApplication.translate("SendFrameBox", u"Sends a CAN remote request frame.", None))
+#endif // QT_CONFIG(tooltip)
+ self.remoteFrame.setText(QCoreApplication.translate("SendFrameBox", u"Re&mote Request Frame", None))
+#if QT_CONFIG(tooltip)
+ self.errorFrame.setToolTip(QCoreApplication.translate("SendFrameBox", u"Sends an error frame.", None))
+#endif // QT_CONFIG(tooltip)
+ self.errorFrame.setText(QCoreApplication.translate("SendFrameBox", u"&Error Frame", None))
+ self.frameOptionsBox.setTitle(QCoreApplication.translate("SendFrameBox", u"Frame Options", None))
+#if QT_CONFIG(tooltip)
+ self.extendedFormatBox.setToolTip(QCoreApplication.translate("SendFrameBox", u"Allows extended frames with 29 bit identifier.", None))
+#endif // QT_CONFIG(tooltip)
+ self.extendedFormatBox.setText(QCoreApplication.translate("SendFrameBox", u"E&xtended Format", None))
+#if QT_CONFIG(tooltip)
+ self.flexibleDataRateBox.setToolTip(QCoreApplication.translate("SendFrameBox", u"Allows up to 64 byte payload data.", None))
+#endif // QT_CONFIG(tooltip)
+ self.flexibleDataRateBox.setText(QCoreApplication.translate("SendFrameBox", u"&Flexible Data-Rate", None))
+#if QT_CONFIG(tooltip)
+ self.bitrateSwitchBox.setToolTip(QCoreApplication.translate("SendFrameBox", u"Sends payload at higher data rate.", None))
+#endif // QT_CONFIG(tooltip)
+ self.bitrateSwitchBox.setText(QCoreApplication.translate("SendFrameBox", u"&Bitrate Switch", None))
+ self.frameIdLabel.setText(QCoreApplication.translate("SendFrameBox", u"Frame &ID (hex)", None))
+ self.frameIdEdit.setPlaceholderText(QCoreApplication.translate("SendFrameBox", u"123", None))
+ self.payloadLabel.setText(QCoreApplication.translate("SendFrameBox", u"&Payload (hex)", None))
+ self.payloadEdit.setPlaceholderText(QCoreApplication.translate("SendFrameBox", u"12 34 AB CE", None))
+ self.label.setText("")
+ self.sendButton.setText(QCoreApplication.translate("SendFrameBox", u"&Send", None))
+ # retranslateUi
+
diff --git a/examples/serialbus/modbus/modbusclient/doc/modbusclient.rst b/examples/serialbus/modbus/modbusclient/doc/modbusclient.rst
new file mode 100644
index 000000000..122804e6f
--- /dev/null
+++ b/examples/serialbus/modbus/modbusclient/doc/modbusclient.rst
@@ -0,0 +1,9 @@
+Modbus Client example
+=====================
+
+The example acts as Modbus client sending Modbus request via serial line
+and TCP respectively. The shown dialog allows the definition of standard
+requests and displays incoming responses.
+
+The example must be used in conjunction with the Modbus server example
+or another Modbus device which is either connected via TCP or Serial Port.
diff --git a/examples/serialbus/modbus/modbusclient/images/application-exit.png b/examples/serialbus/modbus/modbusclient/images/application-exit.png
new file mode 100644
index 000000000..32be6b3f1
--- /dev/null
+++ b/examples/serialbus/modbus/modbusclient/images/application-exit.png
Binary files differ
diff --git a/examples/serialbus/modbus/modbusclient/images/connect.png b/examples/serialbus/modbus/modbusclient/images/connect.png
new file mode 100644
index 000000000..dd5a51e98
--- /dev/null
+++ b/examples/serialbus/modbus/modbusclient/images/connect.png
Binary files differ
diff --git a/examples/serialbus/modbus/modbusclient/images/disconnect.png b/examples/serialbus/modbus/modbusclient/images/disconnect.png
new file mode 100644
index 000000000..fd58f7a48
--- /dev/null
+++ b/examples/serialbus/modbus/modbusclient/images/disconnect.png
Binary files differ
diff --git a/examples/serialbus/modbus/modbusclient/images/settings.png b/examples/serialbus/modbus/modbusclient/images/settings.png
new file mode 100644
index 000000000..3d1042e26
--- /dev/null
+++ b/examples/serialbus/modbus/modbusclient/images/settings.png
Binary files differ
diff --git a/examples/serialbus/modbus/modbusclient/main.py b/examples/serialbus/modbus/modbusclient/main.py
new file mode 100644
index 000000000..1bad75c49
--- /dev/null
+++ b/examples/serialbus/modbus/modbusclient/main.py
@@ -0,0 +1,26 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the examples/serialbus/modbus/client example from Qt v6.x"""
+
+from argparse import ArgumentParser, RawDescriptionHelpFormatter
+import sys
+
+from PySide6.QtCore import QCoreApplication, QLoggingCategory
+from PySide6.QtWidgets import QApplication
+from mainwindow import MainWindow
+
+
+if __name__ == "__main__":
+ parser = ArgumentParser(prog="Modbus Client Example",
+ formatter_class=RawDescriptionHelpFormatter)
+ parser.add_argument("-v", "--verbose", action="store_true",
+ help="Generate more output")
+ options = parser.parse_args()
+ if options.verbose:
+ QLoggingCategory.setFilterRules("qt.modbus* = true")
+
+ a = QApplication(sys.argv)
+ w = MainWindow()
+ w.show()
+ sys.exit(QCoreApplication.exec())
diff --git a/examples/serialbus/modbus/modbusclient/mainwindow.py b/examples/serialbus/modbus/modbusclient/mainwindow.py
new file mode 100644
index 000000000..02f9d478b
--- /dev/null
+++ b/examples/serialbus/modbus/modbusclient/mainwindow.py
@@ -0,0 +1,331 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import functools
+from enum import IntEnum
+
+from PySide6.QtCore import QUrl, Slot
+from PySide6.QtGui import QStandardItemModel, QStandardItem
+from PySide6.QtWidgets import QMainWindow
+from PySide6.QtSerialBus import (QModbusDataUnit,
+ QModbusDevice, QModbusReply,
+ QModbusRtuSerialClient, QModbusTcpClient)
+
+from ui_mainwindow import Ui_MainWindow
+from settingsdialog import SettingsDialog
+from writeregistermodel import WriteRegisterModel
+
+
+class ModbusConnection(IntEnum):
+ SERIAL = 0
+ TCP = 1
+
+
+class MainWindow(QMainWindow):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.ui = Ui_MainWindow()
+ self.ui.setupUi(self)
+
+ self._modbus_device = None
+
+ self._settings_dialog = SettingsDialog(self)
+
+ self.init_actions()
+
+ self._write_model = WriteRegisterModel(self)
+ self._write_model.set_start_address(self.ui.writeAddress.value())
+ self._write_model.set_number_of_values(self.ui.writeSize.currentText())
+
+ self.ui.writeValueTable.setModel(self._write_model)
+ self.ui.writeValueTable.hideColumn(2)
+ vp = self.ui.writeValueTable.viewport()
+ self._write_model.update_viewport.connect(vp.update)
+
+ self.ui.writeTable.addItem("Coils", QModbusDataUnit.Coils)
+ self.ui.writeTable.addItem("Discrete Inputs", QModbusDataUnit.DiscreteInputs)
+ self.ui.writeTable.addItem("Input Registers", QModbusDataUnit.InputRegisters)
+ self.ui.writeTable.addItem("Holding Registers", QModbusDataUnit.HoldingRegisters)
+
+ self.ui.connectType.setCurrentIndex(0)
+ self.onConnectTypeChanged(0)
+
+ self._write_size_model = QStandardItemModel(0, 1, self)
+ for i in range(1, 11):
+ self._write_size_model.appendRow(QStandardItem(f"{i}"))
+ self.ui.writeSize.setModel(self._write_size_model)
+ self.ui.writeSize.setCurrentText("10")
+ self.ui.writeSize.currentTextChanged.connect(self._write_model.set_number_of_values)
+
+ self.ui.writeAddress.valueChanged.connect(self._write_model.set_start_address)
+ self.ui.writeAddress.valueChanged.connect(self._writeAddress)
+
+ @Slot(int)
+ def _writeAddress(self, i):
+ last_possible_index = 0
+ currentIndex = self.ui.writeSize.currentIndex()
+ for ii in range(0, 10):
+ if ii < (10 - i):
+ last_possible_index = ii
+ self._write_size_model.item(ii).setEnabled(True)
+ else:
+ self._write_size_model.item(ii).setEnabled(False)
+ if currentIndex > last_possible_index:
+ self.ui.writeSize.setCurrentIndex(last_possible_index)
+
+ def _close_device(self):
+ if self._modbus_device:
+ self._modbus_device.disconnectDevice()
+ del self._modbus_device
+ self._modbus_device = None
+
+ def closeEvent(self, event):
+ self._close_device()
+ event.accept()
+
+ def init_actions(self):
+ self.ui.actionConnect.setEnabled(True)
+ self.ui.actionDisconnect.setEnabled(False)
+ self.ui.actionExit.setEnabled(True)
+ self.ui.actionOptions.setEnabled(True)
+
+ self.ui.connectButton.clicked.connect(self.onConnectButtonClicked)
+ self.ui.actionConnect.triggered.connect(self.onConnectButtonClicked)
+ self.ui.actionDisconnect.triggered.connect(self.onConnectButtonClicked)
+ self.ui.readButton.clicked.connect(self.onReadButtonClicked)
+ self.ui.writeButton.clicked.connect(self.onWriteButtonClicked)
+ self.ui.readWriteButton.clicked.connect(self.onReadWriteButtonClicked)
+ self.ui.connectType.currentIndexChanged.connect(self.onConnectTypeChanged)
+ self.ui.writeTable.currentIndexChanged.connect(self.onWriteTableChanged)
+
+ self.ui.actionExit.triggered.connect(self.close)
+ self.ui.actionOptions.triggered.connect(self._settings_dialog.show)
+
+ @Slot(int)
+ def onConnectTypeChanged(self, index):
+ self._close_device()
+
+ if index == ModbusConnection.SERIAL:
+ self._modbus_device = QModbusRtuSerialClient(self)
+ elif index == ModbusConnection.TCP:
+ self._modbus_device = QModbusTcpClient(self)
+ if not self.ui.portEdit.text():
+ self.ui.portEdit.setText("127.0.0.1:502")
+
+ self._modbus_device.errorOccurred.connect(self._show_device_errorstring)
+
+ if not self._modbus_device:
+ self.ui.connectButton.setDisabled(True)
+ message = "Could not create Modbus client."
+ self.statusBar().showMessage(message, 5000)
+ else:
+ self._modbus_device.stateChanged.connect(self.onModbusStateChanged)
+
+ @Slot()
+ def _show_device_errorstring(self):
+ self.statusBar().showMessage(self._modbus_device.errorString(), 5000)
+
+ @Slot()
+ def onConnectButtonClicked(self):
+ if not self._modbus_device:
+ return
+
+ self.statusBar().clearMessage()
+ md = self._modbus_device
+ if md.state() != QModbusDevice.ConnectedState:
+ settings = self._settings_dialog.settings()
+ if self.ui.connectType.currentIndex() == ModbusConnection.SERIAL:
+ md.setConnectionParameter(QModbusDevice.SerialPortNameParameter,
+ self.ui.portEdit.text())
+ md.setConnectionParameter(QModbusDevice.SerialParityParameter,
+ settings.parity)
+ md.setConnectionParameter(QModbusDevice.SerialBaudRateParameter,
+ settings.baud)
+ md.setConnectionParameter(QModbusDevice.SerialDataBitsParameter,
+ settings.data_bits)
+ md.setConnectionParameter(QModbusDevice.SerialStopBitsParameter,
+ settings.stop_bits)
+ else:
+ url = QUrl.fromUserInput(self.ui.portEdit.text())
+ md.setConnectionParameter(QModbusDevice.NetworkPortParameter,
+ url.port())
+ md.setConnectionParameter(QModbusDevice.NetworkAddressParameter,
+ url.host())
+
+ md.setTimeout(settings.response_time)
+ md.setNumberOfRetries(settings.number_of_retries)
+ if not md.connectDevice():
+ message = "Connect failed: " + md.errorString()
+ self.statusBar().showMessage(message, 5000)
+ else:
+ self.ui.actionConnect.setEnabled(False)
+ self.ui.actionDisconnect.setEnabled(True)
+
+ else:
+ md.disconnectDevice()
+ self.ui.actionConnect.setEnabled(True)
+ self.ui.actionDisconnect.setEnabled(False)
+
+ @Slot(int)
+ def onModbusStateChanged(self, state):
+ connected = (state != QModbusDevice.UnconnectedState)
+ self.ui.actionConnect.setEnabled(not connected)
+ self.ui.actionDisconnect.setEnabled(connected)
+
+ if state == QModbusDevice.UnconnectedState:
+ self.ui.connectButton.setText("Connect")
+ elif state == QModbusDevice.ConnectedState:
+ self.ui.connectButton.setText("Disconnect")
+
+ @Slot()
+ def onReadButtonClicked(self):
+ if not self._modbus_device:
+ return
+ self.ui.readValue.clear()
+ self.statusBar().clearMessage()
+ reply = self._modbus_device.sendReadRequest(self.read_request(),
+ self.ui.serverEdit.value())
+ if reply:
+ if not reply.isFinished():
+ reply.finished.connect(functools.partial(self.onReadReady, reply))
+ else:
+ del reply # broadcast replies return immediately
+ else:
+ message = "Read error: " + self._modbus_device.errorString()
+ self.statusBar().showMessage(message, 5000)
+
+ @Slot()
+ def onReadReady(self, reply):
+ if not reply:
+ return
+
+ if reply.error() == QModbusDevice.NoError:
+ unit = reply.result()
+ total = unit.valueCount()
+ for i in range(0, total):
+ addr = unit.startAddress() + i
+ value = unit.value(i)
+ if unit.registerType().value <= QModbusDataUnit.Coils.value:
+ entry = f"Address: {addr}, Value: {value}"
+ else:
+ entry = f"Address: {addr}, Value: {value:x}"
+ self.ui.readValue.addItem(entry)
+
+ elif reply.error() == QModbusDevice.ProtocolError:
+ e = reply.errorString()
+ ex = reply.rawResult().exceptionCode()
+ message = f"Read response error: {e} (Modbus exception: 0x{ex:x})"
+ self.statusBar().showMessage(message, 5000)
+ else:
+ e = reply.errorString()
+ code = int(reply.error())
+ message = f"Read response error: {e} (code: 0x{code:x})"
+ self.statusBar().showMessage(message, 5000)
+
+ reply.deleteLater()
+
+ @Slot()
+ def onWriteButtonClicked(self):
+ if not self._modbus_device:
+ return
+ self.statusBar().clearMessage()
+
+ write_unit = self.write_request()
+ total = write_unit.valueCount()
+ table = write_unit.registerType()
+ for i in range(0, total):
+ addr = i + write_unit.startAddress()
+ if table == QModbusDataUnit.Coils:
+ write_unit.setValue(i, self._write_model.m_coils[addr])
+ else:
+ write_unit.setValue(i, self._write_model.m_holdingRegisters[addr])
+
+ reply = self._modbus_device.sendWriteRequest(write_unit,
+ self.ui.serverEdit.value())
+ if reply:
+ if reply.isFinished():
+ # broadcast replies return immediately
+ reply.deleteLater()
+ else:
+ reply.finished.connect(functools.partial(self._write_finished, reply))
+ else:
+ message = "Write error: " + self._modbus_device.errorString()
+ self.statusBar().showMessage(message, 5000)
+
+ @Slot(QModbusReply)
+ def _write_finished(self, reply):
+ error = reply.error()
+ if error == QModbusDevice.ProtocolError:
+ e = reply.errorString()
+ ex = reply.rawResult().exceptionCode()
+ message = f"Write response error: {e} (Modbus exception: 0x{ex:x}"
+ self.statusBar().showMessage(message, 5000)
+ elif error != QModbusDevice.NoError:
+ e = reply.errorString()
+ message = f"Write response error: {e} (code: 0x{error:x})"
+ self.statusBar().showMessage(message, 5000)
+ reply.deleteLater()
+
+ @Slot()
+ def onReadWriteButtonClicked(self):
+ if not self._modbus_device:
+ return
+ self.ui.readValue.clear()
+ self.statusBar().clearMessage()
+
+ write_unit = self.write_request()
+ table = write_unit.registerType()
+ total = write_unit.valueCount()
+ for i in range(0, total):
+ addr = i + write_unit.startAddress()
+ if table == QModbusDataUnit.Coils:
+ write_unit.setValue(i, self._write_model.m_coils[addr])
+ else:
+ write_unit.setValue(i, self._write_model.m_holdingRegisters[addr])
+
+ reply = self._modbus_device.sendReadWriteRequest(self.read_request(),
+ write_unit,
+ self.ui.serverEdit.value())
+ if reply:
+ if not reply.isFinished():
+ reply.finished.connect(functools.partial(self.onReadReady, reply))
+ else:
+ del reply # broadcast replies return immediately
+ else:
+ message = "Read error: " + self._modbus_device.errorString()
+ self.statusBar().showMessage(message, 5000)
+
+ @Slot(int)
+ def onWriteTableChanged(self, index):
+ coils_or_holding = index == 0 or index == 3
+ if coils_or_holding:
+ self.ui.writeValueTable.setColumnHidden(1, index != 0)
+ self.ui.writeValueTable.setColumnHidden(2, index != 3)
+ self.ui.writeValueTable.resizeColumnToContents(0)
+
+ self.ui.readWriteButton.setEnabled(index == 3)
+ self.ui.writeButton.setEnabled(coils_or_holding)
+ self.ui.writeGroupBox.setEnabled(coils_or_holding)
+
+ def read_request(self):
+ table = self.ui.writeTable.currentData()
+
+ start_address = self.ui.readAddress.value()
+ assert start_address >= 0 and start_address < 10
+
+ # do not go beyond 10 entries
+ number_of_entries = min(int(self.ui.readSize.currentText()),
+ 10 - start_address)
+ return QModbusDataUnit(table, start_address, number_of_entries)
+
+ def write_request(self):
+ table = self.ui.writeTable.currentData()
+
+ start_address = self.ui.writeAddress.value()
+ assert start_address >= 0 and start_address < 10
+
+ # do not go beyond 10 entries
+ number_of_entries = min(int(self.ui.writeSize.currentText()),
+ 10 - start_address)
+ return QModbusDataUnit(table, start_address, number_of_entries)
diff --git a/examples/serialbus/modbus/modbusclient/mainwindow.ui b/examples/serialbus/modbus/modbusclient/mainwindow.ui
new file mode 100644
index 000000000..1de381978
--- /dev/null
+++ b/examples/serialbus/modbus/modbusclient/mainwindow.ui
@@ -0,0 +1,520 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>MainWindow</class>
+ <widget class="QMainWindow" name="MainWindow">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>516</width>
+ <height>378</height>
+ </rect>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>16777215</width>
+ <height>1000</height>
+ </size>
+ </property>
+ <property name="windowTitle">
+ <string>Modbus Client Example</string>
+ </property>
+ <widget class="QWidget" name="centralWidget">
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="0" column="5">
+ <widget class="QLabel" name="label_27">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Server Address:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="7">
+ <widget class="QPushButton" name="connectButton">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Maximum" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Connect</string>
+ </property>
+ <property name="checkable">
+ <bool>false</bool>
+ </property>
+ <property name="autoDefault">
+ <bool>false</bool>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="4">
+ <spacer name="horizontalSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="0" column="6">
+ <widget class="QSpinBox" name="serverEdit">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Maximum" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimum">
+ <number>1</number>
+ </property>
+ <property name="maximum">
+ <number>247</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QComboBox" name="connectType">
+ <item>
+ <property name="text">
+ <string>Serial</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>TCP</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="0" column="2">
+ <widget class="QLabel" name="label_2">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Port:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0">
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Connection type:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="3">
+ <widget class="QLineEdit" name="portEdit">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
+ <item>
+ <widget class="QGroupBox" name="groupBox_2">
+ <property name="minimumSize">
+ <size>
+ <width>250</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="title">
+ <string>Read</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout_3">
+ <item row="0" column="0">
+ <widget class="QLabel" name="label_4">
+ <property name="text">
+ <string>Start address:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QSpinBox" name="readAddress">
+ <property name="maximum">
+ <number>9</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="label_5">
+ <property name="text">
+ <string>Number of values:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QComboBox" name="readSize">
+ <property name="currentIndex">
+ <number>9</number>
+ </property>
+ <item>
+ <property name="text">
+ <string>1</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>3</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>4</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>5</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>6</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>7</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>8</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>9</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>10</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="label_9">
+ <property name="text">
+ <string>Result:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0" colspan="2">
+ <widget class="QListWidget" name="readValue">
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="writeGroupBox">
+ <property name="minimumSize">
+ <size>
+ <width>225</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="title">
+ <string>Write</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout_2">
+ <item row="0" column="0">
+ <widget class="QLabel" name="label_7">
+ <property name="text">
+ <string>Start address:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0" colspan="2">
+ <widget class="QTreeView" name="writeValueTable">
+ <property name="showDropIndicator" stdset="0">
+ <bool>true</bool>
+ </property>
+ <property name="alternatingRowColors">
+ <bool>true</bool>
+ </property>
+ <property name="rootIsDecorated">
+ <bool>false</bool>
+ </property>
+ <property name="uniformRowHeights">
+ <bool>true</bool>
+ </property>
+ <property name="itemsExpandable">
+ <bool>false</bool>
+ </property>
+ <property name="expandsOnDoubleClick">
+ <bool>false</bool>
+ </property>
+ <attribute name="headerVisible">
+ <bool>true</bool>
+ </attribute>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QSpinBox" name="writeAddress">
+ <property name="maximum">
+ <number>9</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="label_8">
+ <property name="text">
+ <string>Number of values:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QComboBox" name="writeSize">
+ <property name="currentIndex">
+ <number>9</number>
+ </property>
+ <item>
+ <property name="text">
+ <string>1</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>3</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>4</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>5</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>6</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>7</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>8</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>9</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>10</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="label_3">
+ <property name="text">
+ <string/>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QLabel" name="label_6">
+ <property name="text">
+ <string>Table:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QComboBox" name="writeTable"/>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer_2">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>13</width>
+ <height>17</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="readButton">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Maximum" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Read</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="writeButton">
+ <property name="text">
+ <string>Write</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="readWriteButton">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Read-Write</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QStatusBar" name="statusBar"/>
+ <widget class="QMenuBar" name="menuBar">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>516</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <widget class="QMenu" name="menuDevice">
+ <property name="title">
+ <string>&amp;Device</string>
+ </property>
+ <addaction name="actionConnect"/>
+ <addaction name="actionDisconnect"/>
+ <addaction name="separator"/>
+ <addaction name="actionExit"/>
+ </widget>
+ <widget class="QMenu" name="menuToo_ls">
+ <property name="title">
+ <string>Too&amp;ls</string>
+ </property>
+ <addaction name="actionOptions"/>
+ </widget>
+ <addaction name="menuDevice"/>
+ <addaction name="menuToo_ls"/>
+ </widget>
+ <action name="actionConnect">
+ <property name="icon">
+ <iconset resource="modbusclient.qrc">
+ <normaloff>:/images/connect.png</normaloff>:/images/connect.png</iconset>
+ </property>
+ <property name="text">
+ <string>&amp;Connect</string>
+ </property>
+ </action>
+ <action name="actionDisconnect">
+ <property name="icon">
+ <iconset resource="modbusclient.qrc">
+ <normaloff>:/images/disconnect.png</normaloff>:/images/disconnect.png</iconset>
+ </property>
+ <property name="text">
+ <string>&amp;Disconnect</string>
+ </property>
+ </action>
+ <action name="actionExit">
+ <property name="icon">
+ <iconset resource="modbusclient.qrc">
+ <normaloff>:/images/application-exit.png</normaloff>:/images/application-exit.png</iconset>
+ </property>
+ <property name="text">
+ <string>&amp;Quit</string>
+ </property>
+ </action>
+ <action name="actionOptions">
+ <property name="icon">
+ <iconset resource="modbusclient.qrc">
+ <normaloff>:/images/settings.png</normaloff>:/images/settings.png</iconset>
+ </property>
+ <property name="text">
+ <string>&amp;Options</string>
+ </property>
+ </action>
+ </widget>
+ <layoutdefault spacing="6" margin="11"/>
+ <tabstops>
+ <tabstop>connectType</tabstop>
+ <tabstop>portEdit</tabstop>
+ <tabstop>serverEdit</tabstop>
+ <tabstop>connectButton</tabstop>
+ <tabstop>readAddress</tabstop>
+ <tabstop>readSize</tabstop>
+ <tabstop>readValue</tabstop>
+ <tabstop>writeAddress</tabstop>
+ <tabstop>writeSize</tabstop>
+ <tabstop>writeValueTable</tabstop>
+ <tabstop>writeTable</tabstop>
+ <tabstop>readButton</tabstop>
+ <tabstop>writeButton</tabstop>
+ <tabstop>readWriteButton</tabstop>
+ </tabstops>
+ <resources>
+ <include location="modbusclient.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/examples/serialbus/modbus/modbusclient/modbusclient.pyproject b/examples/serialbus/modbus/modbusclient/modbusclient.pyproject
new file mode 100644
index 000000000..11322fa9b
--- /dev/null
+++ b/examples/serialbus/modbus/modbusclient/modbusclient.pyproject
@@ -0,0 +1,5 @@
+{
+ "files": ["main.py", "mainwindow.py", "mainwindow.ui", "settingsdialog.py",
+ "settingsdialog.ui",
+ "writeregistermodel.py", "modbusclient.qrc"]
+}
diff --git a/examples/serialbus/modbus/modbusclient/modbusclient.qrc b/examples/serialbus/modbus/modbusclient/modbusclient.qrc
new file mode 100644
index 000000000..5e8e998e9
--- /dev/null
+++ b/examples/serialbus/modbus/modbusclient/modbusclient.qrc
@@ -0,0 +1,8 @@
+<RCC>
+ <qresource prefix="/">
+ <file>images/application-exit.png</file>
+ <file>images/connect.png</file>
+ <file>images/disconnect.png</file>
+ <file>images/settings.png</file>
+ </qresource>
+</RCC>
diff --git a/examples/serialbus/modbus/modbusclient/rc_modbusclient.py b/examples/serialbus/modbus/modbusclient/rc_modbusclient.py
new file mode 100644
index 000000000..2734e796a
--- /dev/null
+++ b/examples/serialbus/modbus/modbusclient/rc_modbusclient.py
@@ -0,0 +1,3672 @@
+# Resource object code (Python 3)
+# Created by: object code
+# Created by: The Resource Compiler for Qt version 6.4.1
+# WARNING! All changes made in this file will be lost!
+
+from PySide6 import QtCore
+
+qt_resource_data = b"\
+\x00\x00:\xf4\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3>a\xcb\
+\x00\x00\x09\xediCCPICC Prof\
+ile\x00\x00x\x9c\xad\xd6gTS\xd9\x16\x07\xf0\
+\xff\xbd)\x84\x04B\xef- \xddP\xa4Jo\x8a\x0d\
+\x18D\x14\xb0\x02!4)\x11\x82(vP\xb0\xa1`\
+W\xb0+v\x05\x95Q\xc7\x8a\x0a\x22\x8c\xa24\x11Q\
+, 8\x22\x1d\x0b\x82y\x1f\x82e\xd6\x9bY\xef\xcb\
+\xdb\x9f\xf6\xd9k\xdd\xb3\xce\xf9\xed}\xd7:\x80\x94b\
+\x98@\x10G\x02\x88O\x10&\x05L\xf0\xe4\x04\x87\xcc\
+\xe4H\xd4\x81\x0a5H\x03\xb0\x0f\xe3%\x0b<\xfc\xfd\
+}\xf0\xaf\xf1\xb1\x1e\x04\x00\xd4\x98\x85\x09\x04q\x89G\
+\xa3\xab\x11\x97\x97\xa9\x92\xe3\xc2\xe9\x9f\xab\xfb\xf8\xdf\xbf\
+\x03\x00\xb0\x93\x82Cf\x02\x04\x17\x80b\x948w\x07\
+\xa0\x18.\xce\x03\x01(\xa6\x0a\x05B\x80\x88\x06\xa0\xc8\
+\x8b\x0e\x8b\x00\x88\xa5\x00\xb8I\x81\x01^\x00q\x1c\x00\
+;J\x9c_\x06\xc0\x0e\x17\xe7\xe5\x00\xd8\x0byQB\
+\x80h\x00(\xf2\x09\x111\x09\x00\xb5\x03\xa0\xbbF\xf0\
+\x93y\x00\x8b\x0b`^D2/\x1e`m\x04`\x19\
+\x1f\x9f\x18\x01\xb0\xae\x010\xe6\x09\x92\x84\x00\xab\x05\x80\
+Yp\xc8L\x8e\xf8\xc8\xe1\x91\x80u\x08@\x1e\xffY\
+\x9b/\x05\x14i\x02\x8a5?k&\x11\x80F\x01p\
+\xf5\xc4\xcfZ_\x00\x08\x00\x84rUr\xa4\xb5\x15\x00\
+\x80\x90\xf2\x04h/D\xa2>C@b\x0b0\x9c+\
+\x12}=$\x12\x0d\x1f\x06(M\xc0\xad8^J\xd2\
+\xc2\x11/\x82x\x00\xfc\xaf\xb5\xf8\xce#A!\x00\x02\
+$\x95\xce\x90dI\xb1e\xe4\xe4\x15\x94\x94U\xd54\
+4\xb5u8z\xa3\xf4\x0d\x8d\x8cMGs\xcd-,\
+\xc7X\xdb\xd8\xda\xd9\x8futrvqus\xf7\xf0\
+\xf4\x1a7\xde{\xc2\xc4I\x93\xa7\xf8\xf8\xfa\xfd\xe6?\
+5 p\xfa\x8c\xa0\xe0\x90\x99\xb3\xe6\xcc\x9d\x17\x1a\x16\
+\xce\x8b\x88\x8c\x8a\x8e\x89\x9d\x1f\x17\x9f X\x90\x94,\
+LY\x98\xba(m\xc9\xd2e\xcbW\xac\x5c\x95\x9e\xb1\
+&3k\xed\xba\xf5\x1b6fo\xca\xc9\xdd\xb2u\xdb\
+\xf6\x1d;w\xed\xde\x93\x97\xbfw\xff\x81\x83\x87\x0e\x1f\
+9Zp\xec\xf8\x89\x93\xa7N\x9f9{\xae\xb0\xa8\xe8\
+\xfc\x85\x8b\xc5\xbf_\xba|\xe5\x8f\xab\xd7\xae_\xbfq\
+\xf3V\xc9\xed;w\xef\x96\x96\xdd+\xbf_QQ\xf9\
+\xe7\x83\x87UU\x8f\x1eW\xd7\xd4\xd4\xd6\xd5\xd5?i\
+hx\xda\xd8\xf8\xac\xa9\xe9\xf9\x8b\x17\xcd/_\xbez\
+\xfd\xfaMKK\xeb\xdb\xb6\xb6\xf6w\xef\xfez\xff\xbe\
+\xe3CggWwwOo__\xff\xc0\xc0\xc7O\
+\x9f?\x7f\x19\x1c\xfc:44\xfc\xed\x9b\x08$\x95.\
+!\xc9\x94\x92\x96\x91\x95WPTVQS\xd7\xd4\xd2\
+\xe6\xe8\xea\xe9\x1b\x18\x1a\x9b\x98r\xcd\xcc-,\xad\xac\
+ml\xed\xc6:\xfc\x1b\xc0\xb4\x11\x80\xd9#\x00\xfc\xef\
+\x00\x89?\x00\x16\xff\x00X\xbd&3k\xed\xfa\x0d\x1b\
+\xb37m\xfeE \x7f\xef\xbe\x7f\x10\x18\x01\x10\x0b\x88\
+\x01\xee\xfc\x0d\xe0\xd1\xe3\xc7\xd55\xb5\xb5u\xf5\xff\x08\
+\xd0\xfa\x03\xa0C\x0c\xd0\xd3\xd3\xdb\xd7\xdf?\xf0\xf1\xe3\
+\xa7\xcf_\xbe\xfc\xbc?\x85FgH2Y\xd2l\x19\
+Yy\x05E%\x15U5u\x0dMm\x1d\x8e\xae\xde\
+(}\x03#c\x13\xd3\xd1\x5c3s\x0b\xcb1V\xd6\
+66\xb6v\xf6c\x1d\x1c\x9d\x9cG$~\xa5\x10\x0f\
+\xc3w\x8cY\xb3\xe7\xcc\x9d\x17\x1a\x1a\x16\xce\x8b\xf8\xe1\
+\x91\xf0\x0bH\xda\xdfE\xd6\xfdB\xf2}&\xbe\x93\xfc\
+\x93\x89\x98dd(J\xcb\xee\x95\x97\xdf\xff\x95\xa4\xae\
+\xfe\x89\xd8\xe3\xf9\x8b\xe6\x97\xaf^\xbfii}\xdb\xd6\
+\xfe\xee\xaf\xf7\x1d\x1f:\xbb\xba{z\xfb\xfa\x07>~\
+\xfe2\xf8uh\xf8\x9b\x08\x10\xff\xfb\x00@\xb7\x03\x0e\
+'\x003\x98@\xe0!`{1`\xe4\x04\xa8t\x01\
+\xfe\xd2@\xa0\x03\xc8dk\x90\x91\x91 U\x98\xa0\x10\
+\x00\x09\x80\x00\x05tHB\x06\xca\xd0\x81)\xec0\x0e\
+\x81\xe0#\x15\xeb\xb1\x0f\x17Q\x89\x16|#\xd4\x09{\
+b:\x91Ll%\x8a\x89\xa7\xc47\xd2\x80\xf4%\x17\
+\x92\xfb\xc9J\xf2\x0b\xc5\x84\x12B\xd9@\xb9I\xe9\xa7\
+r\xa9\x11\xd4\xbd\xd4\xa74UZ\x10m7\xad\x89\xae\
+G\x8f\xa6_\xa0\x8b$|$\xf6Ht0<\x18\xbb\
+\x18\xbd\x92~\x92g\x98l\xe6\x02f\x03\xcb\x8bU(\
+\xa5-\xb5I\x9a\x94N\x93\x1e`'\xb3\xfbdRe\
+\x86e3\xe5\xe4\xe4\x0e\xca\xdb\xc8W(\x84+|S\
+\xdc\xad\xa4\xaftJ\xd9J\xf9\x9a\xca\x04\x95\x1a\xd5p\
+\xd5~\xb5u\xeaZ\xea\x175|4Z5\x97i\xa9\
+h\x15k\xfbkw\xea\xe4pl8\x8d\xba\x19z\xa3\
+\xf5\xaaG-\xd5\xb7\xd0o2\xd8h\xe8b\xd8it\
+\xd08\xc8\x84mRj\x9a>\xdak\xf40\xf7\xba\xd9\
+\x0as\x0f\x0b\x9aE\xa5\xe5\xb61s\xac\x8c\xacz\xad\
+o\xda\xe4\xd8\x86\xdb\xd9\xda\xb3\xec_\x8f\xbd\xe2\xb0\xd9\
+\x91\xef\xe4\xe2\xac\xe5\xfc\xcd\xa5\xd9\xf5\x86\xdb\x01\xf7\x0c\
+\x8fH\xcf)^\xd6\xe38\xe3e\xc7\x0fywO\xa8\
+\x9fxo\xd2\xed\xc9%Sn\xfb\x94\xf9V\xfa=\xfa\
+\xad\xce\xbfi\xea\xbb\x80\xaf\x81r\xd3\x8df8\x07\x05\
+\x06\x0bB\xb2g\x9e\x99U3[4\xd7b\xde\xbc\xd0\
+\x9c\xb02\x1e\x19\xe1\xc6_\x12y5\x9a\x12\xe3\x1f\xbb\
+w~w\xfc\xe4\x84<\x01\x16\xf0\x92\xca\x84\x96)\xfb\
+S\xe5\x16\xadMc,Y\xbetp\xf9\xca\x95\xccU\
+[3tV_\xca\xf4\xc9j^\xb7d\x83\xd6\xc6\x92\
+M\xc1\x9bE\xb9\xa7\xb7\xce\xda.\xb1\xe3\xcc\xae]{\
+\x8a\xf2_\xef\x97=\xe8|Xp\xf4\xd8\xb1\xfa\x93\x92\
+\xa7'\x9d\xcd.,=/*\xf6\xba\x94~\xa5\xf2\x9a\
+\xec\x8d\xa0[Gn\xf7\x97z\xdc\xcb\xbd\xff\xf2O\x87\
+\x87\x1b\x1e\xbd\xa9\xb1\xad\xdb\xf2\xa4\xb71\xa0\xe9r\xb3\
+\xda\xab\xb47/\xde\xfa\xb7\x97\xbc\xb7\xfeP\xd0m\xd4\
+\x9b7\xa0\xf4i\xd7\xa0\xee\xd0S\x91\xe8G\xff\x99\x90\
+\x81\x0at\xc1\x85\x03&\x22\x04\xb1X\x8a\x1c\x14\xe0\x1a\
+\xea\xd0E0\x09c\xc2\x9b\x88 V\x13\x05D\x05\xd1\
+E*\x93\xaed4\xb9\x85\xbcAvP4)\xbe\x94\
+\x15\x94\x0b\x94v*\x87\x1aL\xddB}Hc\xd3\xfc\
+h\x9bi\xb5t\x0dz8\xfd4\xfd\xb3\x84\xb7\xc46\
+\x896\x863c\x1b\xa3Sr\x8a\xe4\x09&\x8b\x99\xc0\
+\xacgy\xb0\xceJiIeK\x13\xd2\x8b\xa5\xfb\xd9\
+\xc9\xec>\x99\x852C\xb2k\xe4\xe4\xe4\x0e\xfc\xcf\xee\
+\xfbj\xb4j.\xd7R\xd1*\xd6\x9e\xaa\xdd\xad\xb3\x85\
+c\xc7y\xae\x9b\xa9g\xa1\xf7dT\xba\xbe\x9d~\xab\
+\xc1\x0e\xc3\x89\x86_\x8d\xce\x19G\x9a\xe8\x984\x9a\xee\
+\x1e\x1d\xc2U\xe2>3;h\xce\xb7\xe0Z|\xb4\xbc\
+=&\xc7j\xae\xb5\x99\x0dl\x9e\xd8\x9e\xb4\xcb\xb4\x0f\
+\x1f\xeb\xea\xa0\xee\xf0\xd1\xb1\xd6\xe9w\xe7|\x97\x0c\xd7\
+X\xb7\x00w'\x0f#Oy/x\xf5\x8e\xeb\x19\xff\
+\xca\xbbi\xc2\x83\x89w'\x95L.\x99R\xe2s\xc7\
+\xb7\xdc\xaf\xf2\xb7*\xff\xda\xa9\xcd\x01\x9d\x81\xc4t\x85\
+\x19\x06A\xf6\xc1\xfe!\xd13\xd3g\x1d\x98]:\xa7\
+k\x9eF\xa8{Xt\xf8.^=\x9f\x15\xe9\x12\x95\
+\x16}=\x16\xf3\xc7\xc7\xe5\xc4\xbfH4\x17\xa4/h\
+H\xb6\x12\xe6\xa6\xf4\xa7\x86,\xba\x95f\xbad\xff2\
+\x85\xe5\xd9+\x99\xab\xb22(\xabWe\xb2\xb2\xf2\xd6\
+\x19\xaf\xbf\xbc\xd1/\xfb\xfd\xe6\x0d\xb9F[J\xb6\xf1\
+v(\xee|\xbe\xfbI>}\x9f\xcd\x01\xfe\xa1\xddG\
+\x1e\x1c\xa3\x9cp<\x15\x7f\xe6\xf4\xb9\xb6\xf3\xdc\x8b)\
+\xbf\x17_\xfer\xd5\xf9\xfa\xea\x9b\x8fnk\xdd\x0d+\
++*\x1f\xaa\xf4{\x90_\xf5\xa1\xda\xb3vg\xfd\xdb\
+\xa7\xf6\xcfr\x9e\xb7\xbet{\xbd\xa3\xe5C\x9b\xef\xbb\
+\xfd\xef\xbft\xce\xe8\xbe\xde\xa77\xb0\xf6S\xd7\xe0\x9c\
+\xa1\xee\x91\xfe\x93`A\x16\xca\xe0\xc0\x1c.\xf0C8\
+R\xb1\x09\x05(\xc1\x0b\x0c\x13\xda\x84;\x11A\xac#\
+\x8a\x88&\x92A\xda\x91Q\xe4N\xb2\x92BR\x9c(\
+)\x94\x22J7\xd5\x8a*\xa4\xfeA\xa3\xd0\xfchy\
+\xb4\xf7tW\xfa6z\x87\xc4\x04\x89\xa3\x0c:#\x96\
+Q-\xe9*y\x86\xa9\xc3\xdc\xc1\x92eeKIK\
+m\x96V\x92>\xc4\xb6f\x97\xc9\xcc\x91\xf9,\xbb]\
+\xceN\xaeI>K\xc1N\xa1]1_\xc9K\xa9Y\
+y\xad\x8a\xb9J\x83\xea\x1a5;\xb5v\xf5|\x8di\
+\x9aL\xcd[Z\x8b\xb5m\xb4\xbbu\x0a9\xc9\xba\x8e\
+z\x14\xbd{\xa3r\xf5C\x0d\xcc\x0d\x86\x0d+\x8d\xf2\
+\x8c\x13L<MUM{FWr\x0b\xcc2\xccC\
+-\xdc,9c\xa8c\xda\xac*\xac\x0bm\xf6\xd8\xa6\
+\xdb\xc5\xdb\xcf\x1e;\xd9\xc1\xdeQ\xcfI\xc6\x99\xe2<\
+\xe8\xd2\xed\xda\xe2\xd6\xe0^\xe3Q\xeeY\xe2uk\x5c\
+\xe9\xf8R\xef\xb2\x09w&\xde\x9dT9\xb9fJ\x93\
+O\xbbo\xbf\x9f\xc8\x9f9U%\xc0d\x9a[`\xd0\
+\xf4\x84\x19k\x82\xf6\x06_\x09i\x9c9<[g\x8e\
+\xdb\xdc\xb0yY\xa1\x85aM<F\x84-\x9f\x1f\xb9\
++\xaa*\x86\x11;~~F\x5cI\xbc(\xd1U\x90\
+\xbe\xe0~\xb2\x8204\xa5(\x95\x5c\x14\xb8\xf8\xe4\x12\
+ri\xc8\xb2\x8b+\xd4V\xa6\xadj\xc8\xf0\x5c}.\
+S#k\xf5\xda\xee\xf5\xbc\x0d\xd5\xd9\xde\x9bn\xe68\
+\xe6^\xd9\xea\xb0\xed\xea\x0e\xd7\x9d\xa5\xbbg\xec\xe9\xc9\
+\xdf\xba\xcft\xff\x83\x83\x89\x87\xe5\x8f\x5c-\x88<\xce\
+:Qx*\xe1\x8c\xce\xd9\x87\x85\xcb\xcf[_\xe8*\
+>})\xe6\x8a\xe9\x1f\x8d\xd7\xf2n\x04\xddR,\xa9\
+\xbd\xb3\xbdt\xfa=\xa5\xf2\x9a\x8aM\x7fNy\xc8\xac\
+*{\xbc\xa8\xc6\xaa\xb6\xbd\xfe`Cp#\xfb\xd9\x8d\
+\xe7\xf3\x9b\xd5_V\xbc\x16\xb6\xa8\xb6\xdeh\x8b}\xc7\
+\xf8\xebP\x87\xf7\x87\x97]Kz\x94zO\xf4;\x0c\
+T|\x9a\xf5\xb9cp\xed\x90\xeap\xa3H\x04\x88\xdf\
+\x8b\x00\x00Z\x8co\x18\x0f\xff\xe7\x88\x8fK\xf9\xbe'\
+\x09@\x8a\x9f0}\x1a\x00\x06\x00c\x81\xd0?\xf0{\
+\x8e\x18\xf8\x22\x0c<\xf1;\x15\x00\xe8\xb2@\xbe\x11\x00\
+\x5c\xf6M\xfa\xaf}\x85\xfcEB\x00\xf0J\x14,N\
+\x8a\x89\x8a\x16r<\x04\x828>\xc7+1^\x90\x22\
+\xe4'q9\x93\x12x\xe6\x5c\x8e\x95\xa5\xa5-\x00\xfc\
+\x07\x8f\x08\x91L8\xcf\x9b\xb0\x00\x00 \x00IDA\
+Tx\x9c\xed}y\x98\xdcV\x95\xef\xefJ\xaa}\xed\
+\xaa\xde\x17o\xb1\xe3v{K\xec8\xdb\x04\x08\x84I\
+X\xb2\x10\xc0\xc0\x83\x19f\x08o\xc20\x0f\xde\x1b\xc2\
+\x00o\xd8g\x80\x84-\xc0\xcc\x03\x860\x0cd\xb2\xd8\
+$&\xb6\x13'1^\x12;\xc6\x8e\x1d'\x8e\xed8\
+^:\xee\xd5\xbdUwuwu\xd7.UIz\x7f\
+H*]\xa9T\xd5\xbb\xed\x04\x9f\xef\xd3'UI\xba\
+\xba\xba\xe7w\xcfv\xcf\xbd\x22\xb2,\xe3\x12\xfd\xf9\x12\
+s\xa1+p\x89.,]\x02\xc0\x9f9\x15\x01\x80\xa8\
+t!*s\x89\xce?\x95\x94\x00\x97@\xf0\xe7Ae\
+U\xc0%\x10\xbc\xf5iB\x1b\xe0\x12\x08\xde\xda4)\
+#\xf0\x12\x08\xde\xba4i/\xe0\x92q\xf8\xd6\xa4)\
+\xbb\x81\x97@\xf0\xd6\xa2\x22\x00L&2x\x09\x04o\
+\x1d\xb2\x94\x00\x97@\xf0\xe7C%U\xc0dA\xf0\xed\
+o\x7f\xfbR4\xf1ML\xc4\x82\xd1\x86\x9e]\xae\xa3\
+?\xf0\xc0\x03\x5cSS\x93k\x98e\xc5\xbf\xbe\xf9\xe6\
+\xd4\x1c\xd4\xef\x12\xcd1\x15\x01\x80\x10R\xfc\x9fr\xc2\
+\xf0\xdf\xeb\xaf\xbfn\xcbf]\xaeh4\xe6\x16\x88\xe0\
+!\xac(\xdc\xf6\xee\x1b\xce\xcdq}/\xd1,\x93%\
+\x00\x00\x00\xb2\x0c\xb3l\xd0Nuvv:\x12\x09\xc6\
+e\xb3\xc1%I9\xcf\xc0\xf0\x98O\xe0\x05\x9f$\xc9\
+\xb9t\xbc\xef\x95\xf5\xeb\xd7\x0b\xe7\xa3\xf2\x97h\xe6T\
+\x1a\x00\x80\x15\x08HOO\x8f\x03\x80+\x9b%nQ\
+\xccy`c\xbd\xc8I\xbe\x91\xb1\xb8?\x9eJ\xfb\x19\
+\x199\x9e`\xef\xed7];x\x1e\xea\x7f\x89fH\
+\xe5\x00\xa0\xede\xf5\x1a\x02\xc0\x09\xc05:\x9aq\xc7\
+\xb31\x8f$\x12\x9f,\x88\xbe\xbc,\xfb\x09d\xff\xd8\
+X\x220\x1aO\x05\x01\xd9Ar\xe2#\xb7\xdcr\xfd\
+\x99\xf3\xf6&\x97hZT\xca\x827(\xfcM\x9b6\
+1\x00\x5c\x00\xdc\x00\xbc\xa1\x90\xcbW\x1d\x0c\x06\x1c\x8c\
+=\xe0p\xd8\x83\x840AIFE \xe0\x0dU\x86\
+\xfd!\x16hd\xec\xdc\x0fw=\x7f\xe8}s\xfd\x02\
+\x96\x95\x9f\x80.D\x9d.V*%\x01\x0a\xbd\x7f\xcf\
+\x9e=lUU\x8b3\x1cv\xbbkk\xbdn\x00^\
+u\xf3\xe7\xf3y\xff\xe0\xf0\xb8_\x96\x11\x10x>\x98\
+\xcb\xe5\x832P!\x08\xf9\xd0pt4$B\x0eC\
+\x96\x9f\xf8\xcbw^\xfd\xd5Y\xaf\xf8\xe4\x19Yx\x97\
+\xc9\x96-\xff\x19\xe5\xc9Y\xb9\x81\x85\xc6}\xe5\x95W\
+8\x8f\xc7\xe3\xb4\xdb+\xdc\x1c\x07\x8f\xcf\xe7\xf1TT\
+x}\x00|\x00\x02\x00\xfc\x00\x02C\xc3cA1\x97\
+\x0ffs\xf9\x10\x9f\xe5+ #\x9c\x97\xc4\xd0\xc8h\
+<\x9c\xcb\xe5\x02\x90\x99\xa7\x92$\xf1\xa9\x0f\xdcx\xe3\
+\xd8\xb4+Z\x9a\xe1V\xff\x9b\xd5\x98Fr\x89\xe3r\
+\xff\xbd\xa5\x01Q\x12\x00\x8f?\xfe\xb8\xad\xa2b\x91\xab\
+\xae.\xec\xb2\xdb\x19\x0f\xe7rzY\x06>\x9b\x8d\xf3\
+\xd5U\x85\xfcP\x00\x10\x00\x10\x04P\x11\x1bKT\xf0\
+|.\xc4\x0b\xf9P&\x9b\x0d\xcb\x92\x14\x96$\xd97\
+6\x9e\x22\xbc\xc0C\x96\xe5c\x099\xf9\xce\xc9\x82\xa0\
+\x04\xc3i\xc6\x9a\xcf\x93\x12\xd7\xd1T\x0a\x00V\xc7\xe6\
+\xbd\xf2\xe3-\x06\x06K\x00\x00\xc0\xf6\xed\xdb\x1d\x02\xe7\
+\x0f\xbb\xed\xac\xa7\xa1\xbe\xd6\xcb\xb1\x8c\xd7\xc1\xda\xfd\x8c\
+\x8d\xf5\xdb\xedl \x14\x08\x04l66\x08\xa0B\xdd\
+B\xf1D:\x94\xced\xc3\x92(\x85\xe3\x89\x94G\x06\
+\x08d`l<\x89L6\x0b\xc8\xf2X^\x96\xdey\
+\xf3\x8dW\x1f+Y!#\xe3\xad\x18n\xfe\x8fl\xd8\
+\xb0!\xb0n\xdd\x0dW\xf8|\xae\xf96\x9b}>\x00\
+\xb0,7\x8f\x10f>\x000\x8cr\x8b(\x8a\xdd\xa2\
+\x98/\xc4*\x92\xc9\xf4k\xa2\x98\x1b;th\xff\xb1\
+\x8f\x7f\xfc\xe3\xe3P\x98\xadm0\xed\xe9\xff\xdf2@\
+(\x09\x00\x00\xd8\xbe}\xbb\x9f\xd8\x83\x8b\x1dv\xceW\
+W\x15\xf6\xb3v\x9b\xdf\xc6p\x01\xbb\xd3\x1e \x04\xc1\
+\xcap\xa0\xc2\xc6q!\x00!\x00!\x09\x08g\xd3|\
+(\x99\xce\xb8eYF<\x9eB>\x9f\x87\x0c \x93\
+\xe6\x11O\xa6 \xcb\xf2\x98\x0c|\xe1\xa6\xb7\xaf}\xb0\
+P\x89\xf2L\xd7~3\xda\xf1\xce\x9d{\x17\xae^\xbd\
+\xf26\x87\xc3\xf96\x8e\xb3\xadbYv\xde\xb4^\x9e\
+z\xac(\x8a\xe7$)\x7f<\x9b\xcd\xee\xef\xef\x1f\xd8\
+\xb7zu\xcb1\x18\x19o\xde\x00\xbc\xf9\x81P\x16\x00\
+\x00\xb0u\xeb\xde\xa0\xc3\xe3\xbc\x9e\xb3\xb1\xe1\xfa\x9ap\
+\xc0f\xe3\x02\x1c\xc7\x05].{\x05!l\xc8\xefu\
+\x87\xdcnGH\x02\xc2\x90\x10&\x04\x0e^\xc8#\x99\
+LA\x92e$\x12)\xf0|\x0e2\x00!\x97\xc3\xf8\
+x\x12\x90eH\xa2t\xcfM\xef\x5c\xf73\xad\x1e\xd4\
+\xbe\x88\xe9\x9f\xfe\xf4\x97\x17\xdez\xeb{\xde\xbeb\xc5\
+\x92[kk\xabV\xb1,g\xc9\xf0\xd94\xf0EQ\
+<\xc7\xf3\xd9m\xbd\xbd\xbd\x8fP`\x90\xf0\x16\x03\xc2\
+\x84\x00\x00\x80\x1d;\x0e\x86d\x8eY\xcf\xb1\xa4:\x1c\
+\x0eV\xb8]\xae\x0a\x1b\xc3T\xb8<\xce\x10!$\xec\
+\xf7zBN\xa7#D\x08\xec2\x00\xc8@>/\x22\
+\x95NC\x14%$\x92\x19\xa43\x19@\x06\x84\xbc\x88\
+D\x22\x05I\x92 \x89\xd2\x7f\xdft\xe3UwAw\
+G\xb5^N\xee\xbc\xf3\x13\x15\xef}\xef\x07?\xb9r\
+\xe5\xd2O,\x5c\xd8\xb8\xd2\xe7\xf3\xea\x95\x9e\x06\x9fg\
+\x02\x0e\x0d\x0cO=\xf5\xc4w?\xf5\xa9O\x8d\x01\x10\
+a\x01\x847#\x08&\x05\x00\x00x\xf0\xc1\xbd\xce\xda\
+y\xae\xcf\xb3\x84\xac\x08W\x04C\x1e\x8f3\xc4\xb0L\
+\xc8\xe7q\x87\x09C*\x5cN\x07\xe7\xf5\xba\xb5\xa6P\
+ZE\x92\x91L) Hgx\x8c\xc7\x93\xca9I\
+\xc6x<\x0dQ\xccC\x92\xa5\xe3\xbb\xfe\xb4\xe3\x96\xfb\
+\xbe\xf6\xb5q\x00\xccg>\xf3\xc5\x05k\xd6\x5c\xf7\xd5\
+\xb5kW~b\xd9\xb2\xcb\xa6\xfeBS\xe4\xf3T\x80\
+\x91\xcb\x09'\xfe\xf3?\x7f\xf9\xde/~\xf1\x8b1(\
+ \xd0$\x82\xa4^\x22\xbf\xd9@0i\x00\x00\xc0\xb6\
+m\xdb\xdc.o\xf57$\x90\x1b}^O\xb8\x22\xe8\
+\x0b3\x84\x04|>\x0f\xcb\xb1\x0c\x1c\x0e;<n\x97\
+\xd2\x87\xd5be\xc8H\xa7\xb3\xc8\xe7E\x08B\x0e\xa3\
+\xb1q\x88\x92r2\x99\xcc@\xc8\x09\x90E\xe9\xb53\
+\xad\xed\xdfg\xc1\xddz\xfd\xf5k>\xbe`A\xe3\xc4\
+\x15\x9fF\x8f\x9e\x0dp\xe4r\xc2\x89\x7f\xfb\xb7\x1f\xbf\
+\xff\x1b\xdf\xf8\xc6(t\x10\x18T\xc3\x9b\x09\x04S\x02\
+\x80F\xbb\x9f\x7f\xf9\x07 \xb8\xdb\xedv\xf9\xc3!?\
+\x03B\x10\xf0{\xc0\xb1,X\x96\x85\xcf\xe7\x06\x01Q\
+\xe4\x80\xac\xb4NN\x10\xc0\x0b9\xe4s\x22F\xc7\xe2\
+\xc8\x09\x8a]\x90Ld088\x82\xba\x9a*\xacX\
+qyq\x05\xcf\x93\xb8\x9f\xca-\x82\xc0\xbf~\xdf}\
+\xffz\xdb\x0f~\xf0\x83\x11\x00y(\xafhP\x0bo\
+\x16\x10L\x0b\x00\x00\xb0k\xcf\xcb\xdfb\x19\xe6\xdb6\
+\x9b\x0d\xe1\xb0\x1f\x0c!\xf0z<p\xba\xec\xe0X\x06\
+.\xa7\x13,\xc7\xa8\x00PP\x90\xcb\xe7\x91\xcb\xe5!\
+I\x12\xa2#c\x18\x19\x1e\xc7H4\x86u\xebV\xc2\
+\xebu\x97y\x9au\xc4\xfa|\x80\xa3\xd4\xe5\x82\xc0\xbf\
+\xfe\x9d\xef|\xf3\xf6\xfb\xef\xbf_\x03A\x914x3\
+\x80`\xda\x00\x00\x80\xe7\xf6\x1e\xfe[\xc2\xb0\xbf\xb3q\
+6TT\xf8\xc02\x0c\xbc\x1e7\xdcn\x07\x08C\xe0\
+v\xb9\xc0\xb0\x0c41 \x03\x90$E\x15\x9c>\xdd\
+\x05\x02\x06--\x13\xeb\xf9\xf2<\xbbp\xe0\xe0\xf9\xec\
+\xc9\x03\x07\xfe\xf4\xb9\xdbn{\xefQ\xe8 \xa0m\x83\
+\x8b\x1e\x043\x02\x00\x00\xec\xde\xfb\xca\x8d\x0c\xc1\x16\x86\
+e\x82\xe1\x8a\x00X\x8e\x85\xd3\xe1D0\xe0\x01!\x04\
+\x0e\x87\x0d\x1c\xcb\xd1\xfe\x12^z\xe95\xd4\xd5\xd5\xa1\
+\xa6&l\xac\xcc\xb4\x98V\xee\xec\xdc\x83C\x14\xf3\xf1\
+\x17^\xd8s\xc7m\xb7\xbd\xf7\x18\x80\x1c\xded \x98\
+1\x00\x00`\xe7\xde\xc3Wp\x0c\xbb\x87a\x98\xa0\xdf\
+\xef\x85\xc3n\x83\xd3aC0\xe8\x03C\x18\xd8\xed6\
+p\x1c\x07\xc82\x0e\x1f>\x81\xa6\xa6F\x84B\xfeR\
+U\xb2\xfewV\xc1Q:\x8dq:\x86\xa2(\xe6\xe3\
+\xbbv\xed\xb8\xf3C\x1f\xba\xe3U(\x92\x80V\x09\x17\
+5\x08f\x05\x00\x00\xb0u\xef\xde`\x80\xf1\xed!\x84\
+\x5c\xe1\xf3{\xe0\xb4\xdb\xc1\xd9XT\x85+\xc00\x04\
+,\xcb\xe2\xf8\xb17\xd0\xd4\xd4\x80`\xd0W\xbeR%\
+\x99p\xf1\x82C\x14\xf3\xf1\xdd\xbbwZ\x81\x80\x0e \
+]t\xb1\x82Y\x03\x00!\x84<\xfa\xf4\xd3\xc1Z_\
+\xed\x16\x96a\xde\xe1t:\xe0\xf18\xc12,*\xc3\
+A\x9c>\xd5\x8e\xf9\xf3\x9bL\xcc\x9f\x1d\x83\xac\x5cY\
+\xe7\x13\x1c\x14\x08\x8eBQ\x07\x17=\x08f\x05\x00\xa6\
+,\x22\xb2{\xcf\xe1\xdfr\x1c\xf7I\x87\xc3\x0e\x8f\xc7\
+\x85\xfe\xde!\xd4\xd5Vc\xde\xbcz\xd3}eK\x9d\
+b\x1d\xa6^V\xb9{FGcH$\xc6\xd1\xd8\xd8\
+\x04\x96e'q\x8f\x02\x0eE\x1d\xfc\xf1\x83\xeb\xd7\xdf\
+\xf9*\xde\x04 \x981\x00\xcc\xcc\x87\xd2\x12\xcc\xb3\xbb\
+\x0e|\xd3\xe3\xf2|5\x93\xc9\xc2\xedpa\xe5\xcab\
+\x1f\xbf|\xb9e\xcf\xceYY\xf1x\x1c\xbd\xbd=\x88\
+\xc7\xe3`\x18\x02\x8f\xc7\x8de\xcb\x96\x1b@0\xd1s\
+DQ\x8c\xef\xda\xb5C\x03A\x9e\xda.:\x10\xcc\x16\
+\x00\xe8\xc1\x1bV\xddl\x8f\xff\xe1\xd9\xcf\xb1\xc4\xf9\xdd\
+\x1bn\xb8\x0a6\x9b\xad\xc4\xfd\xd3yf\xc93\xd3.\
++\x9dN\xa3\xab\xab\xb3\xc0x\x80\xa8\xe7\x08\x1c\x0e'\
+\x9a\x9b\x97\xc1n\xb7O\xba\xce\xa2(\xc6w\xef.\x02\
+\x81\x160\xbah@0\xa3Y=e\x98\xcf\x01\xb0\x8d\
+\x8d\xa6oX\xb5\xaa\x19\x1c\xc7\xa93\x8d\x8a7Y\x96\
+!\xcb\xb0\xdcJQ\xa9\xebK=\xa3\x5c6X6\xcb\
+\xa3\xad\xad\x0d\xc7\x8f\x1fG<\x9e\x80&\xc8\xb4W\xe3\
+8\x0e\xf5\xf5\xf5\xb0\xdbmT\x9dK\xd7A#\x96e\
+\xfd\xef~\xf7-\x9b7m\xda\xb2\x06\x80Mm\x13\xad\
+}\x0aC\xdb\x17:Gq\xda\x12\xc0$\xfa\x19u\xe3\
+\xd4\xcd\xfe\x9d\xef\xfc\xfb\x1dk\xd7\xae\xfb\xcd5\xd7\xac\
+\x9edy%\xcfL\xf1\xfa\xc9=C\x14E\xf4\xf6\xf6\
+```\x00:\x8e\x09\x18Fq\xedX\x96CMM\
+-jjj,\xc5\xffd\xeb+\x8ab|\xe7\xceg\
+?\xf4\xb1\x8f}\xf8(\x00\x01z\x9c\xe0\xa2\x90\x04\xd3\
+\x02\x80\x05\xf3\x09(\xe6_w\xdd;\xaa>\xfb\xd9/\
+\xed\xba\xf6\xda5\x8d\xa1P\xc0|\xef\x14\x9fU\xf6\xec\
+\x94\xef\x11E\x11\x03\x03\xfd\x88D\x06\x90\xcfK D\
+\xa9\x93\x965D\x08PYY\x85\xfa\xfa\x06U\xe4\xcf\
+|\x5cA\x14\xc5\xf8\xc1\x83/\xdd\xf5\xfe\xf7\xbfk/\
+\x8c\x86\xe1\x05\x07\xc1L\x00@\x1b}\x05\xb1\x0f\xc0\xf9\
+\xf3\x9f?\xf4\x95\xc5\x8b/\xff?W]\xb5r\xaa\xe5\
+N\xf1\xfa\xb2g\x8b\xfe\x89F\x87p\xee\x5c\x17\xf2y\
+\xb1\xd0\xeb\x09\xd1S\xc6|\xbe\x00\xe6\xcdk\x82\xcbe\
+\x1c\x97\xa0\x9f\x13\x8d\x0e!\x12\x89\xe0\xb2\xcb\x16\xc3\xed\
+\xf6L\xa9\xbemmg\xbfp\xd5U+\x1f\x86\x11\x04\
+\xe6\xd1\xc4\xf3\x0a\x04n\xaa7X\xa4o\x19\x00\xb0v\
+\xed\xdb+++\xab\xefjh\xa8)\xa9\xc7K1\xae\
+\xdc{[\x81\xa3\x5c3\x11\xa2\x9f\x8cF\x87\xd0\xdb\xdb\
+\x0b\x9e\x17\x0a=^\xc7/`\xb7;\xb0`\xc1\x22\xf8\
+\xfd\xd6\x01*YV\xbc\x83\x8e\x8e6d\xb3J\x19'\
+N\x9c\xc0\xa2E\x8bPUUU\xaa\x06E\xff,^\
+\xbc\xe4\xa7\xaf\xbcr\x02*\x08\xccT\xc8)P\xe7g\
+\x9e\x17\x10L\x19\x00*\x95\x92\x00\xf6\xbb\xee\xfa\xf4\xdd\
+\x1cg\xf3UV\x86J\xde\x5c\x9eq\xa5\xee\xb1\xbe\xa9\
+\x94\xd4\xd0\x98\xa6\xb9t\x84\xe8V\xbd\xd6\xf3\x1d\x0e;\
+\x1a\x1a\x1a\x10\x0eWR\xcf(v\x0b\xfb\xfaz\x10\x8f\
+'\x0a\xe0QT\x06\xd0\xd5\xd5\x09\x8e\xb3!\x18\x0cZ\
+\xd5\xc0\xf2]\x16/^\xac\x81\xe0\x11\xe8m\x98WO\
+\x9fw\x10L\x09\x00\x16\xbd\x9f\xa56\x1b\x00{8\x5c\
+\xfd\xc1\x8a\x0a?X\x96\x9dr\x8f\x06\xa6\x0e\x0e\xabg\
+\xa4Ri\x9c;\xd7\xa9Z\xf5:\xd3\xb4c\x9bM1\
+\xf0\xaa\xabk\xd4z\xd2\xcfP~\xf0<\x8f\xee\xeeN\
+\x8c\x8e\x8e\x19\xa4\x86V\x8e\xdd\xee@}}\x03\x02\x01\
++\xe6\x97\x7f\x97\xc5\x8b\x17\xff\xf4\xd0\xa1\xe3\xe4\xdak\
+W\xd3\x92\xe0\x82\x80`:\x12\xc0\x10\xf0\x01\xc5\xfc\xfb\
+\xee\xfb\xf9\xc7\x1c\x0eg} Pj\xa0G\xa7\xb9\x00\
+G6\xcb\xa3\xaf\xaf\x17\xd1\xe8\x90\x81\xe1\xf4qee\
+%\x9a\x9a\xe6)\x83S\x16\x94\xcd\xf2\xe8\xed\xed\xc5\xf0\
+p\xd4T\x17Ejp\x1ck\xf2\x0ed\xc8ric\
+\xc4\x1a\xb4\xc0\xd2\xa5\x97\xff\xe4\xd0\xa1\xe3\xb8\xf6\xda\xd5\
+\x8fP\xa7D\xed\x12\xa8v\xc1\x5c\x83`\xa6*\x80v\
+\xfdl\xf5\xf5\x0d\xef&\x84 \x10\xf0\x1b\x18<U\xe3\
+n\xaa\xe0\x10E\x11===\x88D\x06\x8a\xc4\xbcv\
+\xec\xf7\xfb\xb0p\xe1\xa2B0\xc7\xfc\x0cQ\x14\x11\x89\
+\x0c```\x00\xa2(\x16\x01\x87\x10\x82p\xb8\x12\xf3\
+\xe6\xcd+\xb8\x85z\x11\xd6\xe2^\xb9\xa6\xf4\xbb\x9b@\
+@_(Bi\xdb9\x07\xc1\xa4\x01P\x22\xe4[\x10\
+\xff\xabW\xaf\x0dUT\x84\xdf\x09\xc8p\xb9\x5c\x86{\
+\xa7\xd3\xdbK\x11]\x96\xee\xd2E(\xa6)U\xd4\xca\
+\xf5x<hj\x9a\x07\x9f\xcf\xa7\xdeO?[\xd9\xf7\
+\xf6\xf6\x22\x12Q\x18\xaf\xd5\x89f~0X\x81y\xf3\
+\xe6\xc1n\xb7\x97\xac\xef\xf8\xb8b+\x88\xa2\x88\x85\x0b\
+\x17\xc3\xe3\xd1<\x89\xf2\xe0\xb8\xfc\xf2\x02\x08\x1e5\x9d\
+\x96\xa8\xfd\x9c\x81`\xaa\x12\xc0,\xfe\x0b\x06\xe0\xed\xb7\
+\xaf\xbf^k\x1c\x8ec\x8b\xc4\xf5lY\xfe\x1aE\xa3\
+C\xe8\xea\xea\x82$\x89\xa0\x19N\x1bx\xf5\xf5\xba\x81\
+gECCC\xe8\xeb\xd3\xbd\x03s9~\xbf\x0f\xf5\
+\xf5\x0d\x05\xf0X\xd57\x9b\xe5q\xee\x5c\x17b\xb1X\
+\x018\xad\xad\xa7\xd1\xdc\xbc\x0cn\xb7[\xbd\xa7T\x0d\
+\x14p\x5c~\xf9\x92\x9f\xec\xdf\x7f\x84\xdcp\xc3\xdaG\
+J\x5c8g \x98\x89\x0a0\xb8\x7f\xb5\xb5\xb5-\x0c\
+C\xc00\xd6\x83&\xb3e\xf9G\xa3Q\xf4\xf6\xf6@\
+\x10\x04\xaa\xa7\xea\x8c\xe38\x0e\xb5\xb5\xb5\xa8\xab\xab/\
+YV<\x1eG{{\x1bU\x06\x0ae(YL\x0e\
+\xd4\xd7\xd7S\xdeAq}5{\x83\xb6\x15\xb4:\x88\
+\xa2\x88\xd6\xd63hiYN\x8d\x1f\x94\xb7k\x96-\
+[v\xff\xfe\xfdG\xa0\x82\x80@\x8f\x15h4' \
+\x98\x14\x00J\xf8\xfe\x86\xd8\xbf,K\x0c!\x04^\xaf\
+\x12\x1c)1\xe9\xd4\xb2\xfc\xc9\x80#\x1e\x1fGoo\
+/\x12\x89q\x00LQ\x8f\x07\x80\x9a\x9aZ\xd4\xd7\xd7\
+\x974\xf0\xac\x5c:\xba\x0c\x96e-\xc1C\x13m+\
+\xe8\xd2G)\x03 \xb0\xd9XTW\x17\x87\x90'#\
+\xe9\x96-[v\xff\x91#'\xfdk\xd7.\xff\x0f\xea\
+\xf4\x9c\x82`*\x12\x80\x986\x83\x0a\xa8\xaa\xaaYC\
+\x08A2\x99D\x22\x91\x80\xcf\xe7+z\xe9\xe9\x88\xfb\
+dRs\xe94\xc6\xeb\xcc\xd7z]0\x18DS\xd3\
+|8\x1c\xd6\x06\x9e\xe2\xd2\xd1bZy\x1d\xfa\xb8\xa6\
+\xa6\x06\xf5\xf5\x0de\x99\xa6\xd9\x0a\xb4\xda1z\x18U\
+\xa8\xab\xab\xa7\xeaa~G\xebw\xa7\x9f3\x7f\xfe\x82\
+o\xb5\xb5\xf5\xb5,^\xdc\xf0y\xea\x12m(\xb9`\
+\x18Z\x974u\x9a\xae\x0d`V\x01\x1c!\x0ca\x18\
+\x02Y&hk\xeb\xc2\xe2\xc5\x0b\xe0\xf5z\xa7m\x0b\
+(\x22\xb6\x07\xc3\xc3Q\xf5\x1e\xa6\xc00\xad\xd1}>\
+\xbfAGkEh\xcf\xa0\xc5\xb4U\x8f\x07\x80pX\
+a\x9a\xd3\xe9(\xf9\xd2Z$QS\x19F\xf0\x00~\
+\xbf\x0f\x8d\x8d\xf3\xe1v\xbbJ\x96A\xd7\xcf\x8a\xe8v\
+\x09\x06\x83\xeb\xdb\xda\xfa\xb0xq\xc3\xe7`dv\xc1\
+; \x84\xccJ\xc8x&q\x00\x83'@\x08\x08\xc3\
+\x10H\x92\xf22\xed\xed\xddhn^\x04\x97\xcb\x0dQ\
+\x94\x0a7\xeb\xcb\x0dY\x14L1\xee\xf8\xf1#\xd0\x19\
+\xc5P\x0d\xa4\xe8\xe8\xba:EG[\xcf\xdeQ\xc4\xb4\
+f\xd9\x9b\x19O\x08\x81\xcf\xe73\x81\xa7\xb8-c\xb1\
+Qtww\xab\x8c\xd7%\x8e&5\x9cN\x07\xe6\xcf\
+_h0\x12K\x95\xa5\xbf\xe3\xe4\xd4` \x10\x5c\x7f\
+\xf6l\x1f\x96,i\xf8\x9cv\x09\xf4\xf8\x00\xc1,\xa9\
+\x82\xe9H\x00mo\xf0\x04dY\x22\xca0\xaa\xf22\
+\x92\x04\xb4\xb5u\xa3\xa5e\x09\x18\x86C>\xaf\x83\x80\
+a\xac\xeb\xac\x81\xc3\xe1p\xa0\xb9y9\xce\x9e=\x0b\
+I\xd2\x19\xc8q\x1c\x1a\x1a\x1aP]]C\xddSJ\
+L\xe7Q,5\x14\xa6566!\x18\xac\xa0\x9e\xa9\
+\xbe\x14eo\xf4\xf5\xf5\xaa\xb6B\xb1\xd4`Y\x0eM\
+MM%\x01X\x8e\xa6\x02\x8e`0\xb8\xfe\xc5\x17\x8f\
+\x1e\xbc\xfe\xfa+\x1f\x811\xb9A\xeb\x80s/\x01,\
+\x12\x164\xe6\xd3 *\x15.R\x80 \xe1\xf4\xe9\
+\xb3X\xb6l\x098N\x07\x81$\xa1$i\xe0\xf0\xfb\
+\xfdX\xbd\xfa\x0a\xb4\xb7\x9fE2\x99@]\x9d\xc2x\
+%\xb9\xc4\x5cGZL\xf3*\xc3\x0b9\x17\x00\x94\xf1\
+\xfd\xfa\xfazTW\xd7\x94dZ6\xcb\xa3\xa3\xa3\xad\
+\xc0x\xb3\xad\xa1\x19\x89Z\x08\x19\x98\xbb\x18\x87F\xe9\
+4\xbf\x00J\xa4U\x82q\xe4pV\xa4\xc0t\x8d@\
+\x80\x9a\xca\x0d\x80\xd1\x1b\xcc8\xa0\x22\xcb2N\x9fn\
+CK\xcb\x12\xd8\xed6\xf0\xbcb\xd4\x96j\x1b\x1a\x1c\
+\x0c\xc3b\xc9\x92f\x08\x82\x00\xbb\xdd\x0e\x86\x01\xcc\xa0\
+W\x5c\xbav\x08BV}\xbe\x96\xe4\xa43\xb0\xbe^\
+\x03\x8f5\xd3x^\xb77h\xa9A\xeb\xfap\xb8\x0a\
+\x8d\x8dMT\x19T\xc3\xccr\x8cCy\xaf\x14\x9e|\
+r\x17\x9eyf\x17\x07\xc0\x0e\x8b\x09'\x98\x05)0\
+\x938\x80\xb6'\x00\x08!\x1c\x14#P\xbbD\x07\x02\
+-\x09\x1c\x0e\x0e<\x9f\x9f\x94-\xa0\x91\xe6K\xd3\xe0\
+H$\x141\x9dH\xc4\xd5{t\x11\xad3\xadR\xb5\
+\xca\x1dj=\x8c\xe5\xe6\xf3\x22\x06\x07\x07\xd0\xd7\xd7c\
+ik\x10\x02\xf8|^\xcc\x9f\xbf\x08\x0eG\xe9(\xe0\
+l\x8en\xb2,\x83\xbd{_\xc2SO\xedE2\x99\
+\x82,K\xdaX\x0b=\xeb\x88\xee\x883\xa2\xc9\x02\xc0\
+\x1c\x07\xd0\xf6\x94\x04\x90\x89n!\xcbE@P$\x81\
+\x0e\x82l6\x0fz\xcc\x9e\xa6r\xe0\x10\x04\x1e\x9d\x9d\
+m\x88\xc7\xc7)\x8b\x5c\x17\xf9\x0a\xd3\x14\xab\x5c\x0fI\
+\x1b\x9f\x93\xcf+F\xe2\xe0`\x04\xa2\xa8\xb9\xd9\x8c\xa1\
+<\x8f\xc7\x8d\xc6\xc6\xf9\xa0\x17\xa6\x98\xcb\xd1MB\x08\
+\xfa\xfb#x\xf0\xc1\xad\xe8\xee\xee/\x94\x17\x8f\x8fv\
+@\xcf)\xccAW\xbb\x12u\xef\xb4\xd5\xc0t%\x00\
+MD\xadD\xa1\xe7i\x0c4\x03A\x96e\xb4\xb6\xb6\
+c\xf9\xf2%\xf0z\x1dH&\xf9\xd2\x85\x96\x00\xc7\x1b\
+o\x9cA&\x93\x82\x86=\x85\xf1\xca\xf3\x1c\x0e\x07\x16\
+,X\x00\xaf\xd78\x1aIK\x8e\x91\x11\xdaV\xd0t\
+\xbc.\xf6\xedvc\x08y.C\xda\xb2\x0c\xb5\xbdd\
+l\xd8\xf04^|\xf1\xd5B\xb6\x92V\x1f\x9e\xcf\xa4\
+aL*5\xa8^\xcc0.0\x1d\x1b\xc0\xf2\x9c\x12\
+\x06f\xd4\x06\x93J\x02A\x92D\x9c:u\x16--\
+K\xe0\xf39\x90Hd-\x8b-\xd5\x9e\xcd\xcd\xcb\xd1\
+\xd3\xd3\x85\x91\x91\xe1\x0238N\xb1\xcaC\xa1J(\
+\xd2\xa6\xf8\xbe\xb1\xb1Qtww!\x97\xe3\xa1\xebv\
+\x1d<,\xcb\xa1\xba\xba\xa6`\xe0I\x92\xac\xda\x1cV\
+\xf5\x9a\x9c\xea\xd2\xef\xb1~\x19\x9b\x8d\xc5+\xaf\x9c\xc0\
+\xa6M;1::\xa6\x96\xa1\xe4'\xea \x10\xe9l\
+bCF\xf1l\xd0L%\x80\xae1\x0d\x12\xa0<\x10\
+DQ*\x80\xc0\xebu\x22\x99\xccNT|\x81X\x96\
+\xc5\x82\x05\x97\xc1\xef\x0f\xa0\xa7\xe7\x1c\xaa\xab\x8d\x89\x1d\
+f\xc9a\xb4\x15\x8a\x19\x0f(!\xe4\xba\xba\xfa\xa2\xec\
+\xdf\xd2\xde\xca\xcc\xc0\xc1q\x0c\xa2\xd1\x11l\xd8\xf0\x0c\
+N\x9el\x03\x00\xb8\xdd.H\x92\x08\x87\xc3\x81`\xd0\
+\x0bB\x08b\xb1\x04\x86\x87\xfb\xa2(\xee\xf9\xe7\xdd\x06\
+(G\x9a\xe9\xa5J\x00\x85\x01\x13\x01A\x92$\x9c>\
+\xdd\x86\x15+\x96\x22\x18tcl,c\xd1SJ\x0f\
+\xa5\x86B\x95j\x8f7\xdd\xa1\x16!\x08<\xda\xdb\xdb\
+\x90L\xc6-\xa3w\x84\x00\xc1`\x10\x8d\x8d\xf3`\xb7\
+[\x1b\x89\xdauVT\x0a\x1c\xe5b\x1c\x0c\xc3\x80a\
+\x80\xad[wc\xe7\xce\x17\x91\xcf\xe7a\xb7\xdb\x10\x0e\
+\x07\xe1p\xd8\xc0\xf39\x08B\x1e\x0c\xa3\xac\x9bp\xf6\
+\xec9\x0c\x0c\xb4\x0db\x96\x99N\xd3l\x00\xa0@\xb4\
+\xdf<\x19 H\x92\x84\xd6\xd6N,[v\x19\x82A\
+\x97%\x08&\x1aJ5\x93 h\xe1\xdf!\xe8\xae \
+m(*Fb]]\x03\xbc^=\x0aXZ|\x97\
+ns\xab{\xac\x80\xc1\xb2\x04v;\x87\x13'\xce\xe0\
+\xb1\xc7\xfe\x88Hd\x18\x0c\xc3\xa0\xba:\x8c`\xd0\x87\
+|>\x8f\xf1\xf1$x>\x07\x86!\x18\x1d\x8d\xa3\xbd\
+\xbd\x17\xe1p\x00\xa0b-\x98\x03\x10\xcc\x06\x00d\x00\
+\x85\x09\x154M\x06\x08<\xcf\xe3\xf4\xe9\xf6\x02\x08b\
+\xb1b\x10\x94f\x8e~\xac\x8d\xd2\xf5\xf7\xf7\x98\x98\xae\
+\x97\xa1\x19x\xe5$\x87\xd5\xebM\x17\x1c\x0cC`\xb7\
+\xb3\x88\xc7\x13\xf8\xcdo\xb6\xe1\xd5WO\x03\x00\xfc~\
+/\xea\xea\xaa`\xb7\xb3\x18\x1fO!\x1eOB\x92\x14\
+\xd5\xa0\xa9\xd2ht\x146\x1b3\xe7\x9f\xe1\x99)\x00\
+\xb4f\x93\x19F\xf3\xa1\x8b\x83A\x13\x01A\x10x\x9c\
+>\xdd\x81e\xcb\x16\xa1\xb2\xd2\x83X,e\x08\x1dO\
+F\xb7\xf2|\x16##\xd1\xa2\xe8\x1d\x00\xb0\xac\x0d5\
+55\xa8\xad\xd5\x86yKq{\xaa\xae\x5cip\xd8\
+\xed\x1c\x18\x06\xd8\xbb\xf70\x1e\x7f|;r9E\xdc\
+/X\xd0\x00\xaf\xd7\x85t:\x8btl\x00\x99\x14\x00\
+\xb0\xe08-\xdbX7\x00;::\xbbL\x15\x96Q\
+\xba\xf2\xd3\xa2\xa9\x00\xa0\xec\xc3\x8b\xdd@\xed\x96\xc9\x01\
+!\x97\xe3q\xe6L\x07\x9a\x9b\x17\xa1\xa2\xc2\x8b\xd1\xd1\
+\x14\xf2y\x91\xba\xb7|\xcc\xc0\xe5\xf2\xa0\xa5e\x15\xda\
+\xda\xde@*\x15\x87\xe6%\xd5\xd5\xd5\x1bB\xb7\xfa=\
+\xd6\xafX:@79p\xd8l,\x5c.\x1b\xce\x9e\
+\xed\xc2\x83\x0fnA\x7f\xbf\x920\xd2\xd8X\x83\x86\x86\
+\x1aH\x92\x88\xe1\xe114y\xce\xa2\xa1*\x81q\xbf\
+\x0d\xaf\x8d4A\x90\x1d\xd0\xc6,\xb4M\x8d\x9a\xce\x19\
+\xf3\x81\xd9S\x01r4\x1a\xed\xa8\xae\xae^A\x0f\xc9\
+N\x15\x08\x82\xc0\xa3\xb5\xb5\x03K\x97.B(\xe41\
+\x80\xa0|@E9\xc9\xb2\x0c\x96.m\xc6\xc0@?\
+r9\x1e\xb5\xb5\x0d%\x0d\xbc\xc9\xa8\x15\xabg\x948\
+\x0b\x86!p\xbb\xed\xc8f3\xf8\xdd\xef\xb6a\xdf\xbe\
+W\x00\x00\x81\x80\x0fK\x97*\xb9\x0a\xb1X\x1c\x83\x83\
+#\x10\x84\x1c\x9a\xeb\xb3p\xb8\x09\x02#\x02\xae\xaen\
+\xc7\xf1\xd8e\xc8Hn\x03\x00\xd4\x19K\xa5\x18?+\
+`\x98,\x00h\x0e\xd2\xa3R\x85\xb8\xf4\xd8\xd8\xe8\x90\
+bd\xc9\x06\xe6\x97\x03\x02M\x1a\x10\x04!W\x00A\
+8\xecE<\x9eF:-\xa8\xd7L\xae\x17\xea\xa2^\
+{\xa6\xd5=S3\xeeJ\x03\x83\xc0\xed\xb6\x81e\x09\
+\x0e\x1c8\x82\xdf\xff\xfe\x8fH\xa5\xd2\xe08\x16--\
+\x97\xa1\xb2\xb2\x02\x82 \xa0\xbb{\x00\xa9T\x06\x0cC\
+ \x8a9\xd8X\x19\x0e?\x03\x9b\x8b\x81tN\xc0\xaa\
+\x8a6\xb4'\xe7cL\x0c\x81\x10\xc5@\x8e\xc7GN\
+R/1'\x92`\xaa\x12@6\x1d\x17\xb6?\xfca\
+\xe3\xc1\xb7\xbf\xfd\xc6\xff\x09\x00\x92\xa4\xd8\x01\x13\x01\x81\
+\x96\x04\x1a\x11\x02\xe4r9\xb4\xb6v\xa2\xb9y!\x02\
+\x01%\xb12\x9d\x16f9\x14;s\xcb\xdf\xe5\xb2\xc1\
+\xe5\xb2\xa1\xb3\xb3\x0f\xbf\xfb\xdd\x16tu\xf5\x01\x00\xe6\
+\xcf\xaf\xc7\xe2\xc5M \x84`pp\x04\x91\xc80\x08\
+!\xe08\x16\x92$B\x96e\x84\x83\x22\x08\xc3\xc2\xe6\
+\x00|M6$\x07rX\x8avtfd\x8cJ5\
+\xd0\xa4\x0a\x8a\xdb|Vi\xba*\xc0,\x05\xa4}\xfb\
+\xf6\x0c\x8c\x8f\xc7\xba\x83\xc1\x8a\xf9Z\x90d&@\xc8\
+\xe7\x15\x10,]\xaa\x83 \x95\x12\xca0\xed\xfc\x81\xc3\
+\xe1`\xe1\xf18 \x08\x02\x1eyd\x1b\xf6\xee}\x19\
+\x82\x90C8\x1cDK\xcb\x22\x04\x02\x8a\xe4\xea\xe8\xe8\
+A.\x97\x07\xcb\xea\xd6}.\x97\x03\xcbr\xaa\x1c$\
+\x00\x01\x1c.\x0e\xf6\x85,\x92\xbd\x02\xe6\xcb\xed\xf0\xe5\
+\x13\xe8\xe2/\xc3\x0c\x97o\x98\x14M\x08\x00Y\x96\xb5\
+Q\x1e\xb3\x08*0\x1f\xea(\xd5\xbe}{\x9e\xb9\xe3\
+\x8e\x0f\xfd\x83\xc6\xe4\x99\x02!\x97\xcb\xe1\x8d7\xba\xb0\
+t\xe9\x22\x04\x02n\xd8\xed,b\xb1L\xc9\xba\xce5\
+88\x8e\x81\xd7\xab\x18k/\xbdt\x1c\x1b7nG\
+,6\x0e\x9b\x8d\xc3\xca\x95\x97\xe3\xb2\xcb\x1a\xc1\xf3\x02\
+\xda\xdaz16\xa6\x0cV\xd1\xcc\x97e\x19\xa2(\x16\
+V Qk\x00\x10\x02\x86\x10\xcc[\x11\xc4`W\x12\
+\x18\x18B.\x9f\xc7\x91\xb1s]\xc6\x0b/|$\xb0\
+$\xf3\x01\x88\xdf\xf8\xc6\xff\xdd\xb5t\xe9\xb2U\xcb\x96\
+-\xbf\x01\xd0\x99<\x13 \xe4r9tt\xf4`\xd1\
+\xa2&\xb8\x5c\x0e\xc82\x10\x8b\xa5-\x197\x9b\xc3\xb2\
+\xca=\xcaM\x0cC\xe0\xf5:\xe0p\xd8\xd0\xdf?\x88\
+G\x1e\xd9\x86\x13'\xce\x02\x00\x16,\xa8\xc7\xea\xd5\x97\
+\xc3n\xb7\xa1\xafo\x08\xe7\xceE I\x12X\x965\
+xF\x84\x10d\xb3\xd9\x02 4\xa6\xeb\x81T\x02\x99\
+\x10\xcck\x0e\x022 \x0f\x8c\xe0#\xeb\xb8\x8f\xb4\x9e\
+v\xbd\x14\x19\xcdhK\x97X\x05\x85\x080\xfd\xc4\x90\
+I\xad\x0fP\x18\xe75&\x82:\xa0|GP\xfb\x92\
+\x98\x0f\xcaG\xa4\xfc\x8f=\xb6\xf9s--\xab\xae\x07\
+\xf4\x06\xd6\x96\x82\x01dH\x92\xf6\xbf\xb6\xdcJ\xf15\
+\xe6\xff\xddn7\x16-j\x82\xcd\xc6!\x9d\xe6\x11\x8b\
+\xa5K\xd5u\xaamP\x12\x1c\x84\x10x<v\xb8\x5c\
+6\x08B\x0e\xdb\xb6\xed\xc1\xf6\xed\xfb!\x089x<\
+n\x5cs\xcd\x0aTWW \x95\xca\xa2\xb5\xb5\x1b\xa9\
+T\xba\x88\xe9t<\x22\x99LB\x0bP\xddz];\
+\x9c\x0e\x16 DK\xa8\x80\xc7e\x83\xcf\xa7\xe4>\x8c\
+FR\xe8|}\x04\xc9d\xa6\xe3\x99\x97\xde\xf8\xd7g\
+\x0eu\x1c\x05\x90\x04\x90\x06\x90E\xf1\x1a\x03\xb2\xdaV\
+S\x02\xc1T\x01@@M\x05\x87\x02\x02\x17\xa8O\xc9\
+i\xfb\x8d\x1b7\xff\xfd\xca\x95\xab\xaf\xa1\x99\xa8\xed\xa7\
+\x0b\x04\xb7\xdb\x8d\x85\x0b\x1ba\xb3q\xc8\xe5\xf2\x88F\
+\x93e{\xb0\xc5{L\xfaZ\xb7\xdb\x06\x8f\xc7\x01\x96\
+eq\xf4\xe8)l\xdc\xf8\x0c\xfa\xfb\xa3\xb0\xd984\
+7/\xc4\xca\x95K \x8a\x22\xba\xba\xfa\xd1\xdb;h\
+\x1a\xc13o\x0c\x04![\x98\x81\xc4\xb1\x12n\xbe\xaa\
+\x13N\x07\xab\x80O\x05\x8c\xc3\xce!\x14tB\x93\x0a\
+#\x03)t\x9f\x19F6\xcd'\x9f>\xf8\xc6\xdd[\
+\xf7\x9f=\x02\x1d\x00\x02\x8c\x8bOM\x0b\x04S\x01\x00\
+\xa0\x03@\xcbR1K\x01M\x12\xf8\x00x7n|\
+\xe2\xefV\xae\xbc\xe2j\xb5R0\xef\xa7\x03\x04\x9f\xcf\
+\x8b\x85\x0b\x9b\xc00\xa4\x00\x02I*~\x87\xa9\x0a\x02\
+\xed\x15\xedv\x16^\xaf\x13v;\x87ht\x14O<\
+\xb1\x13\xfb\xf7\xbf\x0a\x00hj\xaa\xc1\xda\xb5\xcb\xe1\xf3\
+\xb91::\x8e\x93'\xdb!\x8aRQ\x04O\x97\x00\
+\x0c\xd5\xfb\xf5\xa9\xea>W\x0a7\xae\x89\x80\xd1\xa4\x04\
+\x98\x02\x08\xea\xaa\xdd\xd0\x00@\x08A*.\xe0\xd4\xe1\
+>\xf0\xe9l\xb2\xado\xe4\xfb\xdf\xdf\xf8\xd2F\x00\x19\
+\x00<J\xaf42i\x10Lz\x89\x98\x12j\xc0\x0e\
+\x05\x00f\x10h@\xf0l\xdc\xf8\x87O\xafZ\xb5f\
+\x9d\x15\x00\xb4\xfdT\x81\xe0\xf3y\x0a \x10\x84<\xa2\
+\xd1\x84\x05\x08\xca\x87\x8e\xcd\xc4\xb2\x0c\x02\x01'\x1c\x0e\
+;\x04\x81\xc7\x9e=\x87\xb1u\xeb\x1e$\x12Ix<\
+n\x5c}\xf5r45\xd5\xa9+\x9dw \x16\x8b\x1b\
+\xc4\xbc\x0e\x00\xc6\x00\x04\x86!\xe0y\x1e<\xaf\xe4=\
+\x10B\xe0w\xa5\xf0\xb6+\x06\xc0\x10F-\x03 \xea\
+\xb9\xca\xb0\x0b6\x8e\xa1\xc7\xd9!\xa4\xf38s\xa4\x0f\
+\x89\xf14Z\xcfE\xbf\xf6\x83\x8d\x87\x1f\x85\x02\x00\x1e\
+\xc5k\x13O\x09\x04\xd3\x01\x00\x0d\x02;t\x10h\x9f\
+\x96\xf5\xc0\x08\x04\xf7\xc6\x8d\x9b\xefZ\xbd\xfa\x8auf\
+\xa6\x9a\xf7S\x01\x82\xd7\xab\x83@\x92d\x0c\x0d\xc5\x91\
+\xcb\xe9\xa1\xe3\x09\xde\xa6p\xa4\x19x>\x9f\x13\xb2\x0c\
+\x9c9\xd3\x8e\x87\x1f\xde\x86\xee\xee~\x00\xc0\xea\xd5K\
+\xd1\xd2r\x19\x9cN;\xba\xba\xfa\xd1\xd1\xd1S$\xe2\
+\x95q\x10]\xef\x9b\xa5A<\x1eWG\x1c\x95\xdf>\
+g\x0ao[\xd5\x07B\xb4\x9e\xaf\xde\x0b \xe0s\xc0\
+\xe3\xb1\xa9\xb5$\x85\xea\x8ay\x09'^<\x87\xc4X\
+\x0a\xb1df\xcb?\xfdr\xcf\x17`\x04\x01\xbd\xfa\x98\
+f\xa4O\x08\x82\xa9\x02@k=z^ \x0d\x027\
+t\x9b@\x93\x08\x1e\x00\x9e\x8d\x1b7\x7fj\xf5\xea+\
+\xd7Y1\xd5\xbc\x9f,\x10\x8c \x9008h\x04\xc1\
+Dj@a\xbc\x0b\x0cC\x90L\xa6\xb0q\xe3\xb38\
+x\xf08x^@mm\x18\xeb\xd6\xad@ee\x05\
+\xe2\xf1$N\x9f\xee@&\xc3\x1b\xf4\xba\xc2hk\xa6\
+\xd3~\x7f*\x95V=!\xe5?\xaf3\x85\x1bV\xf6\
+\x17\x98^\xf0\x0a@\xe0rs\xa8\x088\xd4\x86\xd6\x01\
+\xa0\xfdn=\xd6\x87\x81\xae\x11\xc4\x92\x99-\x0f\xed8\
+\xfe\xad\x13\x1d\xb1(\x14U`\xa5\x0e&\x04\xc1\x94V\
+\x09+!\x05\xb4\xd5\xc14{\x80\x96\x04\x9a4pC\
+\x01\xc1\xdf^q\xc5\x95\xeb\x8a\x0d<=el\xaa@\
+\xf0z=X\xb0@\x97\x04\x83\x83\xe3\x13J\x02\x87\x83\
+C(\xe4\x05\xc71\xc8\xe7\xf38p\xe0Ul\xdc\xb8\
+\x1d\xf1x\x12v\xbb\x0dW]\xb5\x1c\x97_>\x1f\x00\
+p\xfat\x07\xa2\xd1X\x81\xe94\xc3\xad\x99\x0e\xc3u\
+\xe3\xe3t\xefW\xad}G\x12\x7f\xb1\xbcO\xf5\x00\xf4\
+akB\xd4\xc9\xa5a\x97\x81\xe9j\xe3\xab\xbf\x81\xb6\
+\x13\x038\xd76\x88,/\x9cy`\xdb\xab\x1f}\xbd\
+s,\x0a\xc5(\x9c\xf2\xeac\xd3\x01\x80V\x0f\xcd \
+d\xa0.\x11\x83bu@K\x017\x00\xf7\xd6\xad\xdb\
+\xff\xa1\xb9y\xd9\x0akK\x7fz@\xf0x\xdc\x05\x10\
+\x002\x86\x87\x93H\xa5x\xad\xce\x85\xfa\xdbl,*\
+*\xdcp8\x14\x11\xdb\xdb;\x80\xdf\xfev+\xce\x9c\
+\xe9\x00\x0047/\xc2\x95W.\x85\xd3\xe9\xc0\xc0@\
+\x14]]\x03\xc8\xe7s\x06\xbd\xce\xb2V\x0c\xb7\xee\xfd\
+\xa2(\x22\x91\xd0g\x17i r\xd9\xd3X\xb7\xa4\x13\
+\x0e;c\x09\x82\x86Z\xaf\x81\xe1\xea\xcd\xeao%\xa8\
+2pn\x04'_\xee\x84 \x08}/\x9e\x1c\xf8\xfb\
+\x0d\xcf\x9dy\x15\xc5 \x98p\x91\xea)\xaf\x13h\xa1\
+\x0a\x0c\xcb\xc4@\x01\x81\x0b\xbaJ0\x80\xa0\xba\xba\xb6\
+\xf2\x89'\x9e\xba\xa7\xaa\xaa\xba\xde\xcc\xe0R@\xa0\xcf\
+\x97\x02B \x10DccMa\xcd\xbf\xe1\xe1D\x01\
+\x04\x0cCPQ\xe1\x86\xc7\xe3\x04\xa0\xac\x0b\xfc\xe4\x93\
+{\xb0s\xe7\x8b\xe0y\x01\xc1\xa0\x1f\xeb\xd6-W\x92\
+4\xc4\x11\xb4\xb7\x9eE\xef\xb8\xab\xc8\x98S\xf6\xa5\x19\
+n\x06F2\x99B.\xa7\x03\x88a\x94\xa4\xd8lv\
+\x0c6\x12\xc1\x0d\xab\x00\xaf\x9bNGW\xee\xab\x0a\xbb\
+\xe0\xb0\xb3EL7K\x85\xe8\xc0\x18^\x7f\xa9\x1d\x99\
+\x0c\x9f8\xf0\xfa\xb9\x8fox\xae\xed\x18t\xef\x80\x9e\
+GP\x12\x043](\x12\xb0X#\x18\xba:\xd0@\
+\xe0\xa16wmmmx\xd3\xa6\xa7\xbeX]]S\
+_\xde\xf7\x9f\x1a\x10\xfc\xfe \xe6\xcd\xd3\xe7\x0d\xc6b\
+I0\x0c\x81\xcf\xa70S\x92$\x1c?~\x06\x0f=\
+\xf4\x14\x06\x07G\xd4\x10\xee\x12\xb4\xb4,\x02@\x90\x1c\
+>\x0a\xf7\xe8\xab\x90\x04\x09\xdd\xb9\xc5\x18\x97kKX\
+\xfa\x13K\x00Q\x141>\x9e\x00\xcb\xea\xcc\xe5\xf98\
+\x92\xc9A\x88\xa22\xbaig2\xfc\x8dkI.\x1c\
+t{\x89\x16\x0f\x00A\xc0o\x87\xdf\xeb,f\xba\x85\
+TH\xc6Rx\xe9\xf9S\x10\x04\x01\x9d\x03\xa3_\xf9\
+\xe1\xef\x8fn\x80.\x09&\x5c\xae~\xa6K\xc5j\xf5\
+1\x83\xa0\x94:(\x80@\x91\x04\xdb\xee\xa9\xa9\xa9\xae\
+\x9f8\x084y \x84\xc3a\xd4\xd6\xd2)_\xca\x8d\
+\x03\x03Ql\xda\xb4\x03\x07\x0f\x1e\x07\x0044Tc\
+\xcd\x9ae\x08\x04|H$R\xe8\xe8\xe8A\x83\xff\x0c\
+\x167\xa6\x11mK\x03y\x09#R=\x86\xc8\xe5&\
+\x00L$\x01\x94\xf3z\xef'\x90\xa4\x1c\x12\x89\x01d\
+\xb3\xba\xbb\xda\xd5\xd5\xf9\xf2\x9e=\xcf\xef\x0f\xfam\xcc\
+/\xef\xfd\xf0\xc7j\xaa\x025Z\xb7r;m\xa8\x0c\
+\xb9\x0bL63]\xf9M\x0a?3)\x1eG\xfet\
+\x1ac#\x09\xf4\x0e\x8d\xdf{\xef\x86#\xbf\x82Q\x12\
+\x14\x81`F\x00\xd0\xebBh)@\x07\x89\xac\x0cC\
+\x17\x8a%A\xe5\x13O<\xad\xaa\x83\xc9D\x03'\x07\
+\x84p8T\x00\x01\xcf\xf38t\xe88\x1e|p+\
+\xb2Y\xa5\xe7\xad[\xb7\x1c\x8b\x165\x82\x10\xa0\xab\xab\
+\x1f\xf1x\x0a\xc9d\x0a\xd7/\xefCu\x05\x0fY\x92\
+1\xd2\x93F>\x91\xc38j1\xc25C&\xb6I\
+J\x00\x06\xb2,\x15\x06\x83\x12\x89A\xa4R\xc3\x85\x05\
+\xa8b\xb1\xd1\xae\x17_<\xb0}`\xa0o@k\xc7\
+\x80b\x0e?z\x00\x00\x10\xb6IDAT\xcf\xe6\xfa\
+\xfe\xd7?rg\xcb\xe2p3\x08`\xe3\x18\xd4\xd5\xf8\
+\xca2]=\xa1\xf1\x01\xf9\x5c\x1e\x07w\x1dGl$\
+\x81\xf1Df\xf3W\x7f{\xe8\x1f\xa1H\x02+\xe3P\
+\x86\x0a\x82\xd9\xfc^\x00m\x18NV\x12xjkk\
+\xc3\x9b7?}OU\x95\xa6\x0ef\x07\x08\x1cg\xc7\
+\xbe}\xaf\xe0\xc8\x91\x93\x18\x1bS\xe6\x0fr\x1c\x87\xab\
+\xaej\xc1\xf2\xe5\x8b\x11\x89D\xd1\xd5\xa5L\xc1\xca\xe7\
+E\xa4RI\xdc\xb02\x82\xaa _`\xeaPG\x1c\
+|\x5c\x80\xc0x\x11u^\x070\xf6\x12\x12\x801\xd8\
+\x08\x89D\x0a\xe3\xe3#\x88\xc7\xfb!\x08Y\xc8\xb2\x8c\
+L&=v\xfc\xf8\xb1\xa7O\x9e<q\x02F\x0b\xbd\
+\xd0y~\xf8\xcd;\xef\xbc\xf6\x8ay\xd7\x10BP_\
+\xeb\x05\xa7\xa6\xb1Y1\xdc\xc4\x83\xc2\xf9\xa3\x07O\xa3\
+\xfb\x8d~$\xd3\x99\xdd\x1b\xf7\xbc\xf1\x8f\xc7\xdbcf\
+\x0f\xc1\xe0\x1d\xcc\xe6'ch\xf7p\x22\x17\xd1\xa0\x0e\
+jkk+7o~\xfa\x1e\xc5&\x98\x5c4\xd0\xfa\
+\x1a\xfd|WW?\x1ezh[\xa1\x8e\x1e\x8f\x1b\x0b\
+\x17\xd6\xe3]\xef\xba\x1a\xaf\xbf\xde\x86\xa1\xa1\x91\x02\x03\
+\x13\x89$DQ\xc4\xf5\xcb\x07P]\xa1\x02@y1\
+\x88\xc9<\x06\xdab\xe0\x89\x17q\xd7\x1a\xe4mA\x13\
+\xd3\x8d6B>\x9fG{\xfb\x09\xa4R1\xb5\xce2\
+:;\xdbv\x1f8\xb0\xff\x05A\x10\xe20\xf6DP\
+m\xc6\x01\xe0\xbe\xf0\x99[\xde\xf5\xc1\xf7,\xbb\xad\xba\
+\xd2\x03\x97\x93C9\xa6'\xc7\xd38\xd7>\x94iY\
+\xb3\xd0\xc5P 9s\xbc\x03\xa7\x8e\xb6#\x91\xc9\xec\
+\xfa\xe7\xff<|\x17\xca\x8c\x1d\xccJ\xc6\x81\xacqC\
+\xd71\xda0q\x1e\x0a\xf2x\xb5\x12\x19(\x83\x19i\
+\x00)uKG\x22\x91\xe1\x0f~\xf0\xd6\x9f\x0c\x0d\x0d\
+\xf6\xeb\xba\x96\x81~\x5cl\x84Y_\xa33C\xad\x17\
+\x00mu\xcf\x0a\x5cye3^{\xed\x0d\x0c\x0f\xc7\
+\xc0\xaa\x9f\xb9\x95$\x85I\x8ca\xaa\x0f\x01\xd4\xb2\xfd\
+\xd5n,\x5cQ\x05\x17\x93B0\xb5\x1f\x0e9\x01\x8e\
+c\xc1q\x0cX\x96)\x94\xc3q,\xe2\xf1!\xb4\xb5\
+\xbd\x8cDb\x04\x92$ah(zj\xcb\x96'\xee\
+\xdd\xb3\xe7\xf9\xa7\x04A\x88\x02H\xa8[\x9c\xda\xc7\xa9\
+\xffS?}`\xc7\x8e\xef\xff\xe2\x85_&Sy\xc1\
+\x1cV\xd6c\x11\x0c\x18B\xd0\xdb6\x8c\xa3\xafv\xf7\
+\xb7u\x0e\x1d'\x0c\x03e#Xv\xe5e\x08\x84\xfd\
+`\x08\x13\x84\x22\x81m\xeaF\x0f'\x03\x98\xc5\x94\x13\
+\x0b\x10h.\x88\x06\x02\xc1\x04\x82\x14,@\x10\x8dF\
+\xfa\xcb3y\xf2@\xd0@\xe0t:\x10\x0c\xfa\x91\xcb\
+\xe5\x11\x8b%T\xa6)\x0c\xccd2`\x18\xe5X\x14\
+a\x0a\x1f\x12\xe4r\x12*\x1b\xbch\xb9\xba\x01\x0eN\
+\x86wl/\x1c\xd9\xae\x02\xe3Y\x96\x85(f\xd0\xd7\
+w\x0aCC\x1dH\xa5\xd2\xc8f3\xb1?\xfdi\xef\
+\xaf\xb6m\xdb\xfc@,6r\x0e\xca0.\xcd\xfc8\
+\x80q\xea\x98\x06A\xf2\x99\xddG_\xfb\x97\x9f>\xfb\
+\xff\x06\x87\x13\xfd\x1a\xd3\x01%\x7f\x80!(\xe4\x11\xf0\
+\xd9< \x13\xe6l\xd7\xf0 \x00\x03H\x9c\x0e;l\
+\x9c\xad\x81\x02\x80yn!\x03\x80\xcc\x1a\x00,@ \
+\x9b@ \xc0(\x092*\xf3\x934\x08\xee\xbc\xf3\xf6\
+\xfb\xa3\xd1\xe1>=\xbe>} h\xc4\xb2,\xecv\
+\x1b\xce\x9d\x1b(0\x9eeYu&\xae6e\x8b\x81\
+\xdb\x99\xa7\xdc-\xe5\xfe\xbc(\x83\x10\x06\x9e\x80\x03\xab\
+n\x98\x07\xbf\x8f\x85#v\x08\xb6t\x07\x08\x9102\
+\xd2\x85\xae\xae\xe3H\xa5\xc6\x90Je\xb2mmg\x9f\
+\xdb\xb0\xe1\xe1\xef\x9c=\xfb\xc6\x09\xf5\xdd\x92&F\xd3\
+\x9b\x06\x82\x02\xf3\xb5\xed\xa9\x1d'\xce\xdc\xfa\xd7\xbf\xfc\
+it8\xdeO3]\xeb\xe5D\x1f|\x22\x90\xc1\x9a\
+\xa5\x85\xcda\x87\xc3\xc6\xd5[\x00\x80v\xe1g?\xe9\
+l\x02\x10\x98\xd5\x81&\x0d\xb4\x17OE\x22\xfd#\x1f\
+\xf8\xc0\xfb~\x12\x8d\x0e\xf5)zv\xfa@P~3\
+\xe0y\x1e\xa2(B\x10\xf2\xe08\xb6 \x01\xb2Y\x1e\
+\x0c\xa3\x1cs\x1c\x8b\x80GQ\xcbf\x10\xe4r\xca\xca\
+WN\xb7\x03+\xae\x9f\x0f_\xd0\x05\xdb\xc8\x01\xa4\xdb\
+\x9f\xc4\xc8H\x1f$IBOO\xcf\xd1\x07\x1f\xfc\xed\
+\x0f^x\xe1\xf9\xa7\xa1K8\xba\xe7\x9bE\x7f\xb9\xff\
+\x93\x00\x92\x91hz\xe4\xca[~\xfc\xbd#'z_\
+62]yG\xbb\xdd\x86\xfaJ\xff\x02\x8ea\xdcz\
+0Iy\xf7\x0a\xf5\x83\xde(\x9eZNg\x14\xcdM\
+\xd6!\x05\x02s\xdaX9\x10h\xea \x19\x89\xf4\x0f\
+\xdfq\xc7{\xee\x8fF\xa3}\xa4\x10[\x9f:\x10\xb4\
+-\x9fW>X\xad\xf7~\x06\xb9\x5c\x1e\x0c\x83\x824\
+`\x18F\x15\x88\xba\xdfM\x08\x01\x01\x03Q\x95\x02 \
+\x80\xcd\xc6a\xcd\x8dKP;?\x84\x0a6\x8e\x1a\xe9\
+\x5cv\xff\x0b\xbb\x7f\xbfi\xd3\xa6\xc7y\x9e\x8f\xa1X\
+\xba%J\xec\x93\xd45\xe6\xff\x0d\xdbm\x7f\xf3\xc0\x7f\
+m\x7f\xfe\xd4\x1f\xf5E0\xd4\x88a}\x00,\xc3\xe0\
+\xed\xeb\x16_G\x88\xa2\x22\x0a\xf5V\xdb\x0cz\x94\xd6\
+\x0c\x00`\xb6U\x00MT\xb8q\x22\xc30MmZ\
+\xcaS*\x12\x89\x8c\xdcq\xc7-*\x08\xb4\x10\xec\xd4\
+\x80\xa0\x89vm\xd3\xf56\x07\x9e\x17\x0a\xba_\xdb\xd4\
+61\xb5\x11\xc0\x0b\xb2\xf1\xd9\x00\x9a\xd7\xcc\xc3\xbc%\
+\xd5\xa8rd\x9d\x1f\xb9\xa6\xf2\x1d^'\xc3\x96x'\
+\x0d\xdc\xf4o\x1a\xf4\xe6N`\x05\x82\xd4]\xf7<\xba\
+\xf97\x8f\xee\x7f\x84\xe7\xf3\x19\xad.\xf5\x0b*q\xcd\
+\xbb[\xe0\x0fy\x0cL\xa7U\x01\x8c\x8c/\x9ad:\
+\xa7y\xc7\x93\x04\x01\x0f\xbd\xc7d\xa0\xf7\x8cT$\x12\
+\x19\xb9\xfd\xf6[\xee\x1f\x1eV@0U \xd0\xe7=\
+\x1e\x17l6\xc5Z\xcf\xe5\x04\x83\xeeW6u\x81\xeb\
+B\xc4U\x05\x02!\xca\xc7\xa5\xa0\x1a\x96ZC\x83`\
+\xc9\xaaF,_\xb7\x10a\x9f\xbb\xee\xde\xbf{\xd7=\
+k\x97T\xd5Q\xef\x94\x85Q\xcai\x9b\xf6?\xfd\xee\
+\x93\x01A\xf2\xeb?|f\xcf\xe7\xbf\xfe\xfb\x9f\xf1\xd9\
+\x5cF\xab\x8b\xbf\xc2SH&\x81\xe6\x05AQ\x17B\
+N\x1aD1\xf3\x0d4\xe7\x89\xe7\x14\x08\xe8\x8f&\x96\
+R\x07ZO)4B$\x12\x19\xbe\xed\xb6\x9b\xef\x8f\
+F\xa3}\xc6^^\x0c\x04\xbd\x17h\xe2\x9f)\x80\xc3\
+f\xe3TQ\xafd\xe8\xd0\xbd_\xbbN\xc8\xcb\xea\xc0\
+\x8b\xd1\x13\x10%@.X\xe1\xc6g\xd5/\xa8\xc4\xea\
+\x1b\x96 \x10p\x85>\xfd\xfe+\xfe\xe9/\x96\xd76\
+\xc2\xe8\xf9\xe4Jl\x02\xb5/g \x1b\xd4\xc5S;\
+O\xb6~\xf8\xee\x07\xbe7\x14M\xf4\x19\x98\xae\xb5\x85\
+j+\x8cD\xc6\xc1\x8b\xd2\xe0D\xfc\x99\xfb\x99\x07(\
+\x92\x04t\xe6\x0a\xddPZo0\xbb\x88\xa9H$\x12\
+U@0\xd4W,\xeeu \x18\xff\xd7{6-\xe6\
+\xb3Y\x01\xb2\x0c\x93j`\xe0r\x88`\x0b\xd1\x14\xbd\
+\x97\x135\x00+\xe6e\xfd\x7f*\xd6@\x08AMC\
+\x08W\xbfk9\xdc\x1e\x87\xfbo\xde\xb3\xfaGw\xbf\
+o\xf9M\xb0H\x9b/\xb3\x99\x81Pd\x17\x81\xf2\x96\
+^:\xdas\xee\xe6\x8f\xfe\xecG\xdd\xbd\xb1\xb3\x05\xa6\
+\x17\x5c_\xa5\x8ebND<)t\xc0h\x90\x17E\
+\xfd\xce\x0b\x00\x00Ku\xa0\x01\xc0\x0a\x04\xe6\x06HG\
+\x22\x91\xe8\xad\xb7\xdelR\x07V@\x80\xc1\x00d\x18\
+\x06\xc1\xa0\xd7\xd0\xfbi@h \x008$2.\x83\
+\xfb\x08\xa2\x03B\xc8I\x06\xa6\xd3\x01\x19\x86\x10\x04\x82\
+^\xbc\xed\xbdW\x22\x10\xf2a\xed\xb2\x86/~a\xfd\
+\x9a\x8f\xc2\xca\xa0\xa0\x9a\x04\xd6@(\x1583H\x83\
+\xbe\xa1Dt\xed-\xf7\xdew\xecd\xcfA30\xf3\
+9\x11\xf1\xb1\x14^<\xd9\xbb\x03\x16\xb9\x82\xd4\xf3\xcf\
+\x1f\x00\x80\x926\x01\x0d\x00s\x0f0\xb9\x88\x91\xe8\xad\
+\xb7\xde\xfc\xe3ht\xc8\x22N\xa0\xf7|]\x0d0\x05\
+\x10\xb0,\xa3\xa6e\x93\xa2\xde\xcf\xb2\x0c\xf8\x9c\x84?\
+\x1d'\xe8\x8eh+\xb1\xa9v\x92\xaak\x85\x5c\xde\xc4\
+\xf4b\xdf\xdc\xedu\xe2\xba\xbf\x5c\x85`\xc8\x87\xa5M\
+\xe1\xcf\x7f\xef\xaek\xff\x15\xc6\x05\x9e4?\xbc\xa8i\
+P^\x1a\xd0\x12\xd1\x00\x84\x9b\xd6\xff\xec\x97[\xb7\x1f\
+\xdd\xa8\xabC\x16\x83=#\x88\xa7\xf8\x13\xbb\x8ft\x9f\
+\x81q$\xd00$\x8c\xd9\x0a\x05O\x85&0\x0c\xcd\
+\xba\xd0\x1c6N\x0e\x0c\x0cDo\xbf\xfd=?\xd2\xd5\
+A) \xe8\x9b$)V|&\xc3\x17\xf5|\x86a\
+02\xd2\x877\xde8\x82\xe8\xf0\x10\x9e\xda3:~\
+\xbam\xf0,\xa1z?@ \x08\xb2%\xd3\x09CK\
+\x05\x02\xbb\xc3\x86w\xdcz\x15\xe6-\xaeC8\xe0\xbd\
+\xf5\xfbw_\xf7\xf3\xcb\x1b\xfda\xe8\xfe\xb8\xd9%\xd3\
+\xda\xc2,\x195\x10\x98\xa3\xa7E\xc6\xe1]\xf7<\xbc\
+\xe5\xd1-/\xfdG.\x9fO\x89\xf9<^>\xd4v\
+\xe2\xbeG\xf7}\x13\xa53\x84\x0a\xea`V\x06\x83\xa6\
+C\xc4\xd8\xc2V\x03H\xda\xc4\x13:\xd9\xb40\x8a\xd8\
+\xd0\xd0P\xf9\xcc3;\xbeTYY\xd3`\x1c0\xd2\
+\xc6\xdb\xfb\xf0\xdf\xff\xfdt\x01\x04W\x5c\xb1\x14\xc9d\
+\x8a2\xe0\x80Tj\x1c}}g\x91J\xc5!\x8a\xf9\
+l__\xff\xa1}\xfb\xf6\xec\x01@>\xf7\xa9w\x5c\
+\xf9\x89\x0f^}\x87,kB\x80\xa0\xbe\xd6\x07\x1b\xc7\
+h\xf5\xa7\xaao=bw\xfah\x07N\x1dmC:\
++\xb4\xfez\xcb+\x7f\xd5\x1a\xc9\x0cA\x01\xb8\xd5\xe8\
+\x9c\xa1y`\xf1I>S\x9b8\xd5c\x87\xdaf\xcc\
+g\xfe\xeam\x8b\xfcn\xbb\xebG\xbf~\xeeU\x18\xbd\
+\x10m2\x89\xf6\xec\xc2\x80\xd4\x05\x03\x000!\x08\xac\
+\xe6\x1dX\x80`\xe7\x97\xaa\xab\xab\x1b\xf4\xa4\x10e\xdf\
+\xd5\xd5\x87\x87\x1ezZ\x95\x10\x12\xaa\xab\x9dp\xbb\x83\
+\xb0\xdb\x9d\xc8\xe5\xb2\xe8\xed}\x03ccQ\xc8\xb2\x8c\
+x<q\xea\xc0\x81\x03\xdbFG\x87F\x00u\x82\x22\
+@\xee\xfa\x1f\xd7\xae\xfc\xe4\x87\xae\xfb\xb0\xc3as\x12\
+\x02T\x86\xdc\xf0z\xf4\xef\x09[1]\xff\xa5\x5c\xd0\
+}\xb6\x1f\x87_x\x0dY!\xd7\x7f\xf0\xf5\x9e\xcfn\
+\xda\xd7u\x14F\x10\x98{\xa6V\x84\xd6&4\x08\xe8\
+\x8e\xa1mv\xea\x1a\xa8e\xd06\x15\xedv\xd2#\x82\
+\x22fk8x&T\x02\x04Z\xa2)=\x05\x8d\xce\
+1,\x0c'744T>\xfb\xec\xce/WU\xd5\
+4\xd0I!\xdd\xdd\x03x\xf8\xe1m \x84@\x10F\
+\x90\xcb\xc5\xa0\x0c\x15\xeb \xc9\xe7\xe5\xd8\xb1c\x877\
+\xb6\xb6\xb6\xb6B\xef\x8d2U\x17\xee\xe6w,\x9d\xff\
+\xad{n\xff,\xcb\xb2\xae\x80\xdfa\x98\xbae\xc5p\
+\xe57\x01}\x22:0\x8a?\xedx\x05\xe9t&\xf1\
+\xe2\x89\xbeO<\xbe\xaf\xb3\x14\x08hI@\x1b\x90t\
+\xa7\xa0\x81\xa0\xed\xcd\x00\xb0\xb2%\xcc\xcf\x12q!l\
+\x003\x95\xb1\x094\x11I#\xb9\xc8E\xec\xeb\xeb\x8b\
+\xbe\xef}7\xff0\x1a\x1d,\xb8\x88J\xe6\xae\xf6Q\
+h\x09\x82\x10\x83,K\x90$IM\xd1f\xd0\xdf\x1f\
+\xd9\xf1\xe4\x93O\xdc\xdb\xda\xdaz\x0c\xc6Q:\xc3\x08\
+\xdd\xce\x17Z[?\xf0\xb7\xbf\xf8V,\x9e\xee\xcb\xe5\
+\xb4\x88\xa01\xecJ\x07\x872)\x01\xcf?\xf9\x0a\xe2\
+\xc9\xec\x08Q\xad\xf3\xea\xfaJ\xdct\xfb\xf5p\xbb\x5c\
+\xbe\xebW6<\x0a\x9dy\x9a=`\x88\xceY\xb4\x87\
+\xd9S\xa2E;\x1dR\xa6\xdbF\x9b>\xa6\xa5\x86\x15\
+}\xad\x1c8\xcf^@)\xb2\x00\x01\x8d\xe2r.\xa2\
+\xe2\x12\xf5\xf5\x0d\xbd\xff\xfd\xb7|?\x91\x88\x8f\x98\xe3\
+\x00<?\x0cY\x16\x0b\xf6A&\x93o\xdb\xbe}\xfb\
+\xb7\xf6\xec\xd9\xf9\x87l6=\x04\x85\xf9\xe3(\x06A\
+ap&\x1aKG?\xf5\x8f\xffu\x7fk{\xe4\x84\
+\x15\xd3\xe9\x80L\x7f\xd702i\x01\xcf\xec:\xb1\x9f\
+\x1e\xbc\x09U\x05q\xd9\xb2y\xe0X\xd6\x07E\xa2\xd1\
+#t\xe6Q\xbaR\xf9\x15t\xcf\xb62\x96\xe9P\xb3\
+&\xfa\xadr\x02\x0b \xb8(\x00\x00\x94\x05A\xa9`\
+\x91A\x1a\xf4\xf6\xf6\x0e}\xedk\xff\xfco<\xcfg\
+\xb4F\x97\xe5<x~Te>\x9b\xe9\xee\x1e|x\
+\xf3\xe6\x0d?\x18\x1e\x8et\xa1\x98\xe1\xe3(=F\x9f\
+\x88\x0c\xa5\x86\xd6\xdf\xfd\xeb\x7f\xdf\x7f\xb8c\x8f9\xd4\
+LG\xe1\x92c\x19\xe4s\xf9\xec\xe1c]Qs\xd0\
+\xc8\xae.9\xbf\xa8\xca\x19\x82.\xd2K\x86iQ\x0c\
+\x84R\xae\x22m\xf0\xd1af\xed\x1a\xda\x0b(\xa8\x19\
+Y\x96/\xbc\x0a\xa0i\x0a \xa0\x07\x5c\x0a\x92`\xd3\
+\xa6\xc7N}\xe9K_\xf8\xae \xe4\xd2\x84\x10\xa4\xd3\
+C`\x18\x1bb\xb1\xccs[\xb6<\xf1\xe5\x03\x07v\
+\xeeFq&N\xa9\xbd\xf9\xba$\x80\xe4\x9d\x9f~\xe0\
+\xe1\xff\xdap\xe0\xa1\xc2\xbc>S\x14\xcef\xe7\xe0p\
+8\x9c\x12d\x16\xa0\xc3\xd5\xac\xe2:\x12\x06\xd7,o\
+Z\x81b\x15Pn\x11h\xf3\xd0:\xdd&\xf4\x98\x0a\
+\xbd\x99\x19\xafI\x00P\xfb\xd9]*v6H\x96\x0d\
+K\xd2HP\x1af\xa2Y\x9f\xda\xb5\xf9M\x9b\x1e;\
+i\xb7\xdb\xbf}\xf7\xdd\x9f\xff6\xcfg\xa3\xaf\xbe\xfa\
+\xf2\xaf[[Ot\xc28\xf6\xa0\x01\xc9\xca%\xd3\x12\
+5\xe9\xc4VCC~\xe5{[\x9f\xeb\xec\x8e\x0e\x7f\
+\xeb\x9fn\xff\xac\xd3i7|*,\x10\xf2\xa2\xafs\
+\x08\x7f\xb9\xf6\xb2\xeb\x08a\x0d\x9eB(\xac\xe4\x13\x8a\
+\x0a8\xe8\xdeo\xfc\xbe\x0dL\xb9\xfbz{\x00\xd4G\
+\xa3\xa8\xf6\x01\x8a\xc1c\x0e\x01\x1bt\xbfV\xf6E\x07\
+\x00`B\x10\x98\xdd\x96\x02\xf3\xd5-\xf7\xe8\xa3\x0f\xbf\
+v\xeaT\xeb\xe7\x8f\x1e=\x1cU\xaf\xd1\x98\xa71\x9b\
+\x16\x8f\xf4,\x1a\xda\x0b\xd0\x98\x94\xa3\xca.\x00\xe1W\
+\x8f\x1c8:4\x9a\xfc\xf1\xfd\xdf\xfe\xe8\xff\xaa\x08x\
+B\xcac\x08j\x9b\xc2h{\xbd\x07k\xafY\xd2L\
+\x87\x8e\x01\xc0\xee\xb4\x83\x10\x06\x90I\xa9\xe5\xdf-%\
+\x80\xd6\x1e\xea^{g\xcdf\xa0\xdb\x83\xb6!\xe8\xf6\
+1\xb4\xd9\x8cg\x06\x9d/\xb2p\x11\xe9\x00\x89\xe6\x0e\
+i\xbe\xb0\xb6\xa7-l\x8dh\xcf\x82\xd6\x9f4s\xad\
+2uiW\x94\x9e\xdf\xa0\xc5$\x5c\x8du\xfe\xf0s\
+\x7f\xf8\xd2Wj\xab\x02\x8d\xda\xad\xf9\x5c\x1e6\xbb\x8d\
+~\x0f\x00\xc0P\xff\x08v?\xb9\x1fO<\x7f\xea\xd3\
+;\x8f\xf6jK\xbe\xa4\xa0\xebmC\xee\xbey\x1e\x9f\
+\xa9M\x0a\x7f\x95m\xc42\xcc\x07.\x22#\xd0\x8a\xca\
+\xd8\x04\xb4!\xa4\x19@\xe6\xb1\x03s\xda\x15\x9dq\xa3\
+Y\xca\xb4\xb5,Xl\x1ac\xe8!ZC8\xb6w\
+ \x1e\xbdi\xfd\xfd\xf7\x1d;\xd1}P3\xfalv\
+\x9b\x1e\x92\xa6<\x85hd\x14\x0ca\xb0\xf3ho\xdb\
+,\xb4\x89U\xfa]\xd1fq\xbd\x81.j\x00\x00\xea\
+\x1b\x18S\xcch\xc3\xd0*N`\x1e93\xa7`\xd1\
+n\x12\xed'\xd3\xd2\xc0\xec~\x96\x1c\xa0\x02\x90\xea\xed\
+\x1f\x8b\xbe\xe3C\xf7\xffj\xc7\x9e\xd7\xb7\x99\x99nH\
+\xd2 \x04\xa2$\xcfx\x05p\xaaM\x0a\xc7\xa5\xc8|\
+\xbd\x99.z\x00hd\x91gH\xeb}\xab\x84\x0as\
+*\x96U\x8f7\xab\x00\xb3\x95]\xce\xfb0\x03-\xb9\
+\xfe\xee_=\xf6\xbb\x8d\xfb~[\xe4\x1e\xaa\xbf3\x89\
+,\xc6S\xc2k(1\x7f\xffB\xd0Ei\x04\x96\x22\
+\xca\x08\x02\x8c\x8d\xa7\xe9\xf8r.\x95\xf9\xc3\x8b\xda=\
+\xa5\x92%h\x83J\xa2\x8e\xcd 4$}\xfc\xefo\
+<\xb6\xf3\xd0\xd1\x8e\xce_\xdc\xfb\xc9\x7fv\xd8mn\
+=<\x0c\x0cGb87\x14\xdfO]O\xbf\x83\x8c\
+\x0b\x00\x887\x15\x00\x80\x22\x10\xd06\xc2d\xdc\x22\x9a\
+\xf9\x80\xd15\xb2jt\xedc\xcd\x80\x22\x09\xcc\x0c3\
+\x83A\x04\x90\xdf\xb0\xf9\xe5S6\x8e\xfd\x97\xef~\xf9\
+\xc3\xffPY\xe9\x9f\x0f(\xe3\x01C\xd1D\xc7/\xb6\
+\x1cy\x1a\xd6K\xb9\x94\xab\xc7\x9c\xd1E\xed\x05\x94#\
+\x93\x87`\x8e\xa5[\xc5\xd5\xcd`14\xb8YGN\
+\xe0\x81hk#\xd1\xf3\x1e\xcd\xc3\xb4\xdc\x92E\x95\xfe\
+}[\xbf\xfe=\xaf\xcb\xb1\xe8\xd9?\x1cx\xed\x0b\xf7\
+o\xfeZ\xffp:\x0a]Ei*\xa9(\x16QJ\
+g\xcf6\xbdi\x01\x00\x141\x09\xa6c3\x00\xe8}\
+\xe1\xb8\x5cC[\x80\xcc*o\xa1\xd4\x10\xad\x16\xeb'\
+w\x7f\xe4\xfaE\xbf~\xfc\xc5V\x14g\x0ck\x86h\
+\xd1\xf4\xedK\x00\x98\x02\x99|\xe3r~qY\x97h\
+\x82\xf2\xe9\x8d\x96\x04t\x02\x0b\xbd\xd1a^\xf3\x10\xad\
+9VO\x07\xa2&\xb5\xbc\xdbl\xd1\x9b\xce\x06\xb0\x22\
+Cd\xab(NR|\xcdt\xca7\x95KG%K\
+\x0d\xd6\xd0\xa1^\xed<=\xc4m\x1e\xa5+\xa8\xa5\xf3\
+\xc5|\xe0-\x02\x00\x9a\xe6\xaa\xf1J\x18\x9ffOD\
+\x03\x81\xc6|:\x09T\xeb\xe1y\xd3vA\xdd\xc1\xb7\
+\x1c\x00\xe6\x92,\xdcPm\x8c\xc2,\x05\xf20&}\
+jDO\x8c1\x8f\xd2]\x10]\xfc\x96\xb0\x01\xce7\
+\x95\xf0@\x18\x14\x8f\xee\x95J\xf20\x07\x82J\xae\xe3\
+7\xd7t\x09\x003\xa0\x12\xae\xa2\xd5\x06X\xc7\xea'\
+\x5c\xc9s\xae\xe9\x12\x00fH\x16\xae\xa8UL\x02(\
+vE\xe9\xe8\xe2\x05a>p\x09\x00\xb3Be\xdcP\
+\xabhd\xd1\xf1\x85b>p\x09\x00\xb3J\x16c\xf5\
+\x13\xd2\x85d>p\x09\x00sF\xe5\xc0p\xa1\x99N\
+\xd3%\x00\xfc\x99\xd3\x9b&\x1f\xe0\x12\xcd\x0d\xfd\x7f\xc7\
+\xc0 \xf9A,]\x89\x00\x00\x00\x00IEND\xae\
+B`\x82\
+\x00\x00>\xa7\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3>a\xcb\
+\x00\x00\x00\x09pHYs\x00\x00\x00H\x00\x00\x00H\
+\x00F\xc9k>\x00\x00\x00\x09vpAg\x00\x00\x00\
+\x80\x00\x00\x00\x80\x000\xe11\x9a\x00\x00\x00\x06bK\
+GD\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00=\xd0\
+IDATx\xda\xed}wXTW\xb7\xf7\xb5\xbe\
+\xd1D\x93\x18\x13\x937\xd1\x98\xc4\x98hL\xb0\xc7\xde\
+{G\xc5\x0a\x16D\x14\xectP\xaa`/tA\x04\
+APD\xc1^@E\xc5\x82\x15D\xa4\xd8+\xf6\xa8\
+\xc9\xfb\xdd\xfb\xbd\xf7~\xff\xeco\xad}\xd6\x1e\xf6\x9c\
+93\x0ch\xd4\xe4\xca\xf3\xac\x07ef\xce\xcc\x9c\xdf\
+o\xad\xbd\xda^\xfb?\xfe\xe3\xdd\xcf\x9f\xf6S\xfd\xbb\
+_*\xa1\xbc\xbb\x13\x7f\x91\x9f\xfa\x8d\x7f\xae\xf4\xd5\xf7\
+\xcdP*\xab\xa4\x12>\xf6\xee\x0e\xfd\xdd\x00\xff\xe1\x97\
+J \x95%\xa9JRM%\xe2\xef\xe2y\xef\xc8\xf0\
+W\xfei\xf0\xa3E%\x90\xca$\xd5@\xaa\x83\xfc\x03\
+\xa4\x06\xc8\xfb$\x1f\x90\x88\xff\xd7\xa0\xe7T\x13\xaf}\
+w'\xffr\xc07\x07\xe0\x9b\x03x\xcd\xab\x80\x00\x90\
+\xcd\x01\xd0\xe65Aj\x81|\xd4n\xc0\xf8o\x06N\
+\xf1\x1a:|F\xa0\xe70\x07\xff\x99\x03m=\x87\xc1\
+\xdf\xeb\x81|\x0aR\x07\xa46=\x1f_W\x95\xae\xf5\
+\xce\x1a\xbc! +U\x10|\x01<hu\xf3\x0fA\
+\xea\xf6\xb1\x9e\xd7c\xe4\x9c%\xfbF;\xad`j\x19\
+5o\xf9\x1f\xc3\x1c\x03V\xc1\xf3\xbe\x06\xf9\x02\xe4\x13\
+\x22\xcc{\xefH\xf0z\xb5Vhn\x15\xba\xf1U\xe9\
+\xdf\x95M\x81 \xbd\x1e\x9f_\x9d4\xb86i\xf5\x97\
+C\xa7\xfb\xfa!\xd0\xd6n\xc1\xcc/b3\x8b\xdfq\
+\x84\xed?\x96\xc3v\x1f9\xc76\xc0\xbf\xfd\xe1o\xf8\
+\xb8\xd5\x9c%E\x16]\x06\xb6!\x22|F\xd7\x10$\
+xG\x80?\x11\xf4\xaa\x92\xd6\xe2\x0d\xaf\xa1\x92\x7f\x10\
+\xb0:m\x14\x80\xa8\xb4\xfe=\xd2\xdcOZ\xf7\x1e\xf9\
+\xc3\xe0\xa9\x0b\x9c\xac\xe6.\xbb\x87\xe0z\xacJd\xa9\
+\x07N\xb1\xbdY\xb9,\xe3D\x1e\xcb<\x95\xcf\x8e\x9e\
+-`'r\x8a\xd8\xa9\xbc\xcbl\xfd\xb6C\x9c\x04#\
+f\x05\x9d\x87\xd7\xff\x0c\xf2\x0d\x91\xa0\x16\xbd\x7f\x95w\
+$x\xf5\xc0\x0b\xd0k\x90\xb9F\x8d\xfb\x98L\xb0\x90\
+:d\xc6?\xa0\xe7\xc9D\x90\xd7\xfa\x9a\xf4\xbc\xcf\x86\
+\xd8{\xcfC\xb3\x8e\x80\xceX\xb8\x96E&g\xb0\xb4\
+\x83g\xd8\xae\xc3\xe7\x80\x009\x9c\x00\x87\x88\x00\xc7\x91\
+\x00\x17.\xb3\xb3\xf9WYtJ\x06'A\x1f\x1b\xa7\
+ \x22AC\xfa\x0c\xef\xd3{\xbc#\xc0+\x02\xbf\xaa\
+\xe4\x9c\xd5&\x90?\x03\x8d\x9d\x08\x1a\x18m5g\xe9\
+\xc9\x91\xb3\x17\xef\xb7\x9c\xb1pE\xa7a\x93;\xc0c\
+_\x916~LDx\x8f\x00\xa9&\x99\xfc\x8f@>\
+\x87\xd7oA\x10g\x06\xc6\xb0\xc8\xcd\x19l\xeb\x813\
+z\x92v\xe8,\xdbw,W\x93\x00\xb9\x85\xd7\x99\xbd\
+O$X\x81E7\xe0Z\x1dA\x9a\x80\xfc\x93\x88\xf5\
+\xce\x0a\xbc$\xf8B[\xab\x93&\xd7&\xed\xfab\x88\
+\xbd\xcf\xdcQs\x97\xdd\x15N\xd98\xd7`\x90\xd5:\
+'\x0d\x009`\xd1uPKxn}Z\xd7?$\
+\xd0kH\xe0\x7f\x01\x84\x89\xc3\xe7/Z\xbbM\x0f\xf4\
+\x8c\xec|.\xf2\xdf\xf6\x1f\xbf\xa0\x10\xe0\xbc>\x01\xc2\
+\x92\xf6\xf2\xf7\x84\xeb\xf5\x03iIK\xc1'\xf4^U\
+\xcd\xf0CLI\xa5wZ\xafh0j\xf2\xe7\xfd&\
+\xb8\x8c\x02m/\xc4\x1b>\xd6e5\xb3\xf1\x8c`\x93\
+\xbc\xd72;\xbful\xda\xc28\xe6\x18\xb8\x9e\xd9z\
+\xaf\xe1\x80\x80\x07_\xfcs\xa7\xfe\xed\x09\x90\xcf\xe9\x1a\
+\x1f\x8ak\x81\x97?\x0e\x9f7?d\x93\x0e\xe4\xd3\xf9\
+\xd7\xd8\x9d\x07\xbf\xb1\x92\xc7\xcfA\x9e\xb1\xdb\xf7\x9f\xb2\
+\xa3\xe7\x8a\xf8c\xa9 \x87O_\xe2\x04\xc8\x96\x08\x10\
+\xb3\xf5\x00\x7f\xbf\x1fZw\xb5!+\xf0\x03\x85\x89\xba\
+e@\xc3\xffP\xfb1ZRM\xb5tU\xfa\xdf\x04\
+\xbep\xd0\xb8g\xde\xc5\xd2\xae\x1d\x00z\x0ao\xf4\x18\
+\xe7\x95\xcc\xda#\x9c\x03/d\x0a\x11`FP<\x9b\
+\xbdd\x03\x9b\xb9(\x9e\x832l\xba\xdf^x\xbd\x05\
+\xc8wd\x9a\xebQ\xd8\xf6-X\x89\xb3\x93\xe7\x87\xe9\
+\xc0\xbfP|[\x01\xfe\xd13v\x8f\xe4\xee\xc3\xdf\xb8\
+\xa4\x9f\xbc\xa8\xb3\x022\x01r$\x0b\xd0\xb8U\x97\xa9\
+p\xdd\xee \xcd\xe8\xbdj\x91\xf5\xaal\x22\xd7\xf0\x01\
+}\xc7\x8fTR\x9b\x1e\xab)\x91\x81G7\xff[\xc0\
+\xafA\xdaZ\xcf\xd21`\xa5\x12\x92\xadfN\xcb\x12\
+XP\xccN.\xee\xc1\x9b\xf5\x09\x10\x00\x16\x80\x080\
+oy\x12\x9b\xea\x1b\xcd\x81i\xd5\xd3r\x14\x5c\xa79\
+\xc8\xf7\xe4\xa4}\xf7k\xff\xb1}d\xd3\x8fZ^\x0a\
+\xba\x02\xfc\x1d\x14\xb0\x06\xb7\x1f<e\x17.\xdf\xe6\xcf\
+\xdb\x01N\xe1\xf1\xf3\x85\xa5\x04(@\x02\xec\x11K\xc0\
+D\x90\xdeD\xb8/U~@\x15\x8d\x5c\xc3'}m\
+\x9cz\x0c\x9d\xee7k\xf8\xcc\xc0eB\xfaOr\x1d\
+\x09\x11\xc9\x8fd\xb5>\xa1\xe7\xbe\xff\xb7O4\x11\x01\
+\xaa\x92\xe6\x7f(;hn+7\xb0\x8d{O\x1a8\
+h\x9b\xf6es\x22L\xf15$\x80\xf3\x8a\x8d\x1c\x98\
+\x81S\xbcv\xc2\xb5\xba\x80\xb4\x00i\x8a\xdez\xbf\x09\
+\xce\xfe\xf8XLj&\xbf\xce\xe5[\x0ft\xda\x8e\xa0\
+\x0b\xe0q\x09\xb8u\xff\x09\xcb\xbfzWG\x80c\x9c\
+\x00\xc5\xec\x0c\x11\xc0uy<\x03\x92>\x80\xebN\x06\
+\xe9Kd\xfb\x8a4\xf9=\x95\xe3\x89\x9a]\x17A\x97\
+}\x18-\x1913hk\xa7\xa1\x93:\x11\x99\xea\xd2\
+kk\xd0\xf5\xfe^$ \xf0\xab\x10\xcb\xd1t\xd6\x1b\
+2\xcd'@\xed\xa0\xed\x87p\xec\x5c\xc1M\x90\x1b`\
+\x8e\xf3t\x7fw]\x95l@\x00\xd7\x95\x9b\xd8\xe4\xf9\
+\xe1\x0c\xa2\x83'p\xbd\x81 \x9dA\xda\x82\xfc:\xd0\
+\xd6#\x01\xaf-^\x7fG\x07\xfcS=\xe0o\x95<\
+a7A.^\xb9cH\x80\x8bW8\x010\x0a\x18\
+0\xd9=\x07\xae;\x09\xa4\x0fY\x00A\x00\xe1xr\
+?\x06\xfc\x8e\x9eVs\x97\x16\xe0{#q\xe2\xd32\
+Y\xfa\xd1\x5c\x96u\xaa\x80\x1d\xcc\xcac{\x0f\xe5\xb0\
+\xe8M\x07\xd8\xfcU\x1b\xd9xpj14\x1dh\xeb\
+\xe9A\x96\xab\x1e)\x86\x8e\x04\x7f7\x02T#S\xf7\
+I\x8b\xee\xc3~\xc6/?o\xc9z\x1dH\x97\xae\xdd\
+cO\x9f\xff\x8b\xcb\x93\xe7\x7f\xb0'\xcf\xfe`\xc7r\
+.\xf3\xc76\xec:\xce\xec\x89\x00\xb3\x88\x00.@\x80\
+\x19\x81\xb1\x5c\x9b:\x0c\xb2\xf1\x87\xeb\xf6\x07\xe9\x01\xd2\
+\x13\xbc\xffK\x18\xf6\xe1k\xf7\x1e\xbb \x81\xfeT\x07\
+:\xca\x8d{\x8f\xb9\x9c\xbax\x8d?wOV\x8eB\
+\x80\x5c\x85\x00\xd9\xb9E\xfc\xfa\xbd\xc6\xcd>\x08\xd7\x9d\
+\x00\xd2\x0b\xe4\x17\x22\x80\xa8\x13\xf0\xd4r\xefqsz\
+\xe3w\x9a\xe8\x11\xc22\x8e\xe5\xb0K\xc5\xb7XN\xfe\
+uv\xea\xfce\x85\x00\xc7.r\x02l\xdf\x7f\x96m\
+\xd9\x95\xcdb6\x1dbv\x0b\x22(\xcf0o\x0e\xf9\
+1\x9f\xd3\xf5\xfe>\xd9F\x95\xf6\xe3\x97\xfb'\xc4\xf7\
+\x8bd\x13\x8d\x0e\xda\x13\x04\x1e@\x7fL\xf2\xe8\xb7\xdf\
+\xb9\xec:\x9a\xc3\x9f\xe3\xbcbS)\x01\x96)\x04\xf0\
+\x80\xe5a\xac\xcbJ6h\x8a\xd7I\xb8\xeeh\x90!\
+ C\xc1*<\xc6e\x05_w\xf0\xd4%=m\xbf\
+I\xa0\xa3\x5c\xbf\x8b\xf2\x88e\x9e)\xe0\xcf\xc5|\x80\
+L\x80\xed\x07Oq\x80\xda\xf4\x19\x15\x05\xd7\xb5&\x82\
+!\x01\x1aP\xf8\x89\xa6\xfb\xf3\x9ecf\xf6\xe3\xe0{\
+\x86\xb0\xec\x9c\x22v\xf5\xc6=V\x00~\x85\x01\x012\
+s\xd8\x8et \xc0\xeel\x96\xb4\xed8[\xbb)\x93\
+M\x99\x1f\xc1`\xb9\xf8W\xb3\x8e}\xd1\x82}+e\
+\x1b\xab\xff-\xf2\x0c\xd2\xda_\x83\x9c\x9eo\x86\xcf\x08\
+<,<\xf4m\x99\xe7J\x81'\xd0Q\x1e>Ey\
+\xc1N^\xb8\xc2\x9f\x17\xb21C!\xc0b}\x02\xd8\
+\xf9\xaca\x10:\xfe\x17\x5c\xd7\x0eA\x02o\xdd\x1eA\
+\xf3\x8f\xdc\xc2_w\x02^/k\xfb\xf5{\x0a\xe8\xd7\
+P\xee<bW\xef<d\xfbh\xb99p2\x8f\x1d\
+;W\xc8N\x12\x01B6\xec\xe6\x04\xf8\xbeE\xc7\x05\
+p\xedqD\x00\x0b\x0a=q\xed\xae?\xc8n\xbe\x0b\
+>\x07\xbfOj\x86\x92Z\xde\x0e\xdfi\xc7\xe1\xf3l\
+'\xc8>\xb0@\x87N\xe4s\x02\xec\x93\x08\xb0\x11\x08\
+\xb0>\xe5([\x19\xa38\x99\xe0\x1c\x86I\xe4\xaaS\
+V\x9e\xe1\xafh\xfe?\xa0u\xee\xc7\xe13\x83r\x85\
+\x89>\x90}\xa9\x14\xf4\xdf\x14\xd0\x1f\xa0<y\xc1\xee\
+?y\xce5V8\x84\x0eD\x80\xb9\x12\x01\xe6,Q\
+B\xc2\x1e\xa3\x1d\xb7\xf5\xb1q\xda9\xc4\xde'\x17\xff\
+/\xb2~y\xb0\xbe\xcb\xda.\x03\x7f\xf5\xf6Cv\x05\
+D,C\x98\x07\x90\x09\x10\x10\x99\xc2\xe0\xb3\xfe\x0e\x9f\
+\xd9\x19d<-\x01\xad\xf0;`\xd4\x01\x96,\x08\xdf\
+\xcb}U\x22KI?\xc5v\x08\xe0\x8f\x9c\xe7\x96k\
+7\xc8\x1e \xc4^\xb0,\xfb\x8f\xe5I\x048\xa5#\
+\xc0\xda\x8dh\x05\xc2\x19.[p\xcd\x0e\x94g\xf8\x5c\
+\x1df\xfe\xd5C\xbf\xea\xb4^b\xfc\xfc3\x84Cy\
+\xa5\x04\xc8\xd7i\xbb\x0c\xfc}\x9e\xacQ\x126\xb8\x8e\
+\xe3s}\x22\xd2\xf4\x08\x80\x11\xc2\xfc\xb0-l\xbc[\
+\xb0\xce\xbb\xb6q\x0ffv\xde\x91\xba\xa8\xa2\xe8F\x89\
+\x02\xfa]\x02]\x02\xfe\x0aD\x07y\x14\x02\xa6\x1d<\
+\xcb\x09\x90E\x048\x0d\x04\x98\x19\xb8\x96\x0ds\xf0\x7f\
+\x0c\x9f\xd9\x8d\xc2\xc0\x01\x94\x0cj\xd5g\xfc\xdcyJ\
+Q)I\x07\xfa!x}N\xd1MV\x00\xfe\x8c\x10\
+L>e\x9c\xbc\xc8\xd2\xc1\xc1\xdd\x9fu\x81\x13`+\
+\x11 ~\x8bB\x00\xa7\xc5\xf1\x0c\x9c\xc7\xff\x94\xc2\xcc\
+\x06\x94\xd0z\xef/\xbb\x0c\xa82~\xef\xd1\x17\xc2\xd4\
+msX\x02.\x0a\x02\xa0\xf9\xd5\x81.\x03/%l\
+\xce^\xba\xc1\x9f\x1b\x99r\xc8\x90\x00\xa1[`I\xd8\
+\xc0\x5cW$\xb2\x80\xa8mli\xdcn\xb6j\xc3>\
+\x9dV\xab\xb5\xfd\xca\xed\x07<,D)\x06\xc9&\x07\
+\x10#\x80\xc3\xa7\xf3\xf5\x08 H\x05K\xcc\xff\xed?\
+\xc9\xed\x80E\x97\x81\x0e\x98\x12n?p\xbc\x1d\xae\xdb\
+\xd3\xfd\xa2x\x06\x11\xb5\x1d\x1dI\x19x\x9d\x5c\xbf\x07\
+>\xce-N\xf4\x83\xa7\xf2\xd9\xae\x03\xe7\xd8\xd6=@\
+\x80\xed'8\x01b\x80\x00\xee\xcb\x12E\xae\x01}\x98\
+_\xc9!\xacKQ\xc6\xdb\xbf\x0ch\xe4\xbd\xab\xa8R\
+\xa1\xef\xd3\xfa\x8f\xe1N\xabAv^;\xf0\x0b\x0b-\
+Ep\x84\xb6k%l\x10@\x01(\x82\x8f\xe2\x8c\x04\
+X\xad\x10\xc0'\x22\x95\x83\x1f\x14\xb3\x83\x13 lS\
+\x86\x8e\x5c\xb2\xb6\xeb\x80\xbfy\x9fK\xd1\x8d\xfb\xec\xe8\
+\xb9b\xfe\x5c4\xd7z\x04\xc8\xbb\xc2\xce_\xba\xc6R\
+\xf6\x9f`AQ[ud\xb0t\x5cx\x09\x8bC\xd8\
+K\x80\x15E4\xf1\x98hB\xa0e\xd0\x85\x14\x92d\
+\x83/\x92\x09\x16b\xdf\x91\x5cN\x80M\x12\x01f\xf8\
+\xaf\xc5\xfa\xc63\xb87V \x98\x1bh,\xa5\x9b\xdf\
+^\x02h\x94r\xabK\xe5\xdc\x9a\xf4\x05jQ\xcc\x5c\
+\x8f\x98\xdd\xa6m\xbf1\xb3\xf0f._\xbf\x8b\xdf\xfc\
+\xe3\xb9W\x0c\xd2\xb3\xea\x84\x0dz\xf3\xf8\xdc\xc0\xb5;\
+8\x01\xfc\x01\xf0\x95\xa0\xe9\x11\x9b\x0f\xb2\xf5;\xb2X\
+\xe2\xee\x13\x06\x89\xa4#g\x8b\xf4\xb4\x9d\x83N\xc0\x17\
+\xc2\xd2\x80\x22\x96\x97\xfd\xb0Ngr\x02\x14\xe8\x11\xe0\
+B\xd1\x0dv\xe9\xca-^\x17\x88\xdf\x9e\xc9\xa6\xf9*\
+\xb5\x88\xc4]\xc7\xf8k1\x82\xd0\x02\x5c-g/]\
+gG\xcf\x16\xb2\xf4\xac<\x89\x00Y\x10\x0ef\xb2\x89\
+\x1e\xa1\x0c\xfc\x09\xf4\x01\xc6\x80t\xa5\xaa\xe3\xe7\xe47\
+\xbd}e\xe7\xb2\xfa\xecH\xdb\xebRH#\xf2\xf3\x0d\
+\xc8yj\x072h\xc4\xec\xc5O\xc52\xb0\xebH\x8e\
+AzV\x17\xb7\xdfW\xc27L\x0e\xe1s\xb5\x80\xd6\
+\x12\xd4\xfe\xc2\xeb%\xa5\xda\xae\x02\x1e\x1fC\xc0\xb0\x1c\
+,,\x00\x96\x84\x91\x00\xd8\x14\x82\x048G\x04\xc8\x07\
+\x02\x14]\xbf\xc3\xae\xde\xbc\xc7n\xdc\xb9\xcf\xbd}L\
+T\xa1I\xbft\xf5\xae\x09\xe0K\xe0u%\xdc\x0f9\
+\x0f\x9f\xff\xd8\xf9\x22\x96\x01\xce`*\x11 ak\x16\
+\x0b\x08S\xacK\x97\xe1v\xc9\x7f\x09\x02\x98\xea\xb3\xeb\
+6rZ\xeba\x8e\x01\x0b\xb0~o5gI\xf6H\
+\x100m[z\x8f\x9f;\x9e\xd2\xb4-(c7\xa4\
+\xe7\xd8Y\xc9\xf8\xc5\xe3wfq\x00\x10$\xad,\x9d\
+\x08\xe1\xd0\x94\xef\xc9\xba\xa0\x03\x18M\xef\xa1\xd3\x05<\
+Y\x94[t\x0b\x9c\xaf[ej;\x02\x22\x80\x17r\
+\xf8L!'\x01\x86\xa3\x18\xbea\xd8\x86\xa6\xfat\xde\
+e}\x02\x5c\xbb\xc3\xae\x00\x01\xce\x17\x5c\xe7\x0e\xddA\
+X\xd3qm7\x05\xba\x90b\x90s`\x01N\x80e\
+9p\xfc\x22K\xdd{\x9am\xdaq\x82\xadK>\xcc\
+\xb5\x7f\xc4\xcc\xa0\x17pO\xe6\xbc\xd5K\x80\xa9>\xbb\
+\xd6\xbdF\xfc\x88E\x1d\xd1u3\xc6e\x15/\xe7\xa2\
+\x88\xb5\x13<\xff\xc3M\xdb\xf5\xeaG\x9e\xee\x88\x9f;\
+\xf6\xf3\x90S\xc1\x87\xc1<\x96\x95\xb0AO>\xb7\xf8\
+6\x07\xd7\xe4\xdanD\xdb\x8dIv\xdeU\xbe\xc4\xa0\
+%R\xc2\xb7\x5cn\xde\x8f\x82?\x80\xe9\xe0\xfc\xcb\x0a\
+\x01.^\xbe\xc9=zt\xe8r\x0ao\xea\x01\xaf\x06\
+]\x00_\xcc\xff}\x8f\x9d\x02\x8b\x92\x0d\xb2\xe7P\x0e\
+'@2\x10\xc0\xd1O)h5\xef:x\x0d\xdc\x93\
+\xe9o\xad\x13h\xac\xcf\x8e\xb2zN\x02\xf8qn!\
+l\xc2\xfc(\xbdR.\x8a\xb5G\x98h\xe4\xb8\xd6\xb6\
+\xef\xa8\xb9\x14S;b\x91\xc5\x1e\xd6T\x9e\x10:t\
+\xae\xcc\x84\x0d\x8a\x96'o\xae\xb6\x97%X\x14\xc2\xb0\
+\x0d\xc9\xb0\xef\xf8\x05^\x9b8\x00\x80cu\x10-\x01\
+Z\x06\x5c&\xce\xc0s\x8a\x10\xf4\x1b\xc6A\xe7r\xb3\
+\x84]\x069\x0b\x96\xe4\xf4\xc5\xab\xec88\x8b\x18\x05\
+\xa4\x01\x01\x5c\x97&\xf0{\xd2i\xe8\xa4\xbd\x14fN\
+\xa0ZC\xf3\xb7*\x0c4R\xc6\xfd\x8c7oP\x83\
+%o\xde\xf0\x8a4\x00^\x96\x09^\x8a\xf3\x84\xf1n\
+\xbb\xfe\xe3\x96\x7f\xdf\xa2\x93\xd7 \xbb\xf9ErJ\x18\
+\xcd\xb8~\xc2\xe6\xa1\xf1\x10\xae\x82\xdan\x8e\xa0Fc\
+<\x7f\x22\xf7\xb2.|;\x04\xa4@\x02\x9c\x02ka\
+\x0e\xe8\x97\xe1s\xa1\x5c\x80\xeb`e\xf1\x0c\x10 \xe3\
+h\x1e'\xc0bp`\xf1{\xc3\xd2\x98\x0b\xf7\xd2\x87\
+\xb4\xdf\x92r\x0c?\x92\xcf\xf4v$\x824\xc0\xff|\
+\xe4\xec\xc5\x19\x22\xfd\x19\x10\x95\xc6\xa2\xb6dB\xe8u\
+\x80\xf9\xad\xd9\xc6\xbbw\x8c\x92\x00\xac\x03.\x0fd\x0d\
+\x9e\x89\x8e\x1d\x11\x0e\x9e\x81u\xb2<\xda^\xf4\x12\xda\
+n\x8e\xe7\x8er\xf1\xf2mv<\xa7\x18|\x05\x8c\x0e\
+.+\xe6\xde(\xe8\x0a\xf0WPn\xdd\x07\x8br\x9b\
+\xfb\x11(X\x0f\xc88z\x81E&\xa5\xf3\xef\x0f\x0a\
+T\x04\xf7\x12\x9bM\xd1\x22\x8e\xa5,csjA\xff\
+\xe4\xadH\x05K\x85\x1c]\x0d\x7f\xf8\xcc\xa0\xadr\xae\
+\xddX\x0d\xdf\x18\x09&.\x88fc]\x839y\xe4\
+&\xcdLp\xe8^\x97\xb6\x17\x96%7JL\xae\xe9\
+\x08\xb8\x1a\xf4\xcb\x04\xba\x90\x82kw\xb9\xc3\x88]E\
+\xa7\xc0Q=r\xf2\x12K\xdey\x9c\xefE\x18\xe6\xe0\
+\xff\xb4Q\xf3\x0e\xc1d\xfa'Q\x86\xb1-5\xb5\xd4\
+{+Z\xcfU\xa6\x1f\xc3\x91O\xfb\xd8\xcc\x1b\xa3\x06\
+\x1fc\xed\xbc\xcbw\xb8\x88\xd6*\x14\xb4\x06\xc6H\xe0\
+\xb4b\xa3N\xeb\xd1\x03\xc7\x10O\x0d\xba:a\xf3\xb2\
+\xda^6\xe8\x04|\x19\xe6]\xcf\xc4\xdf\xd2\x07\x1d\xe5\
+*~\x07x<\x17|\x06\x94\xf3\xe0/\x9c<W\xcc\
+\xb5\x7f\xca\x82p\xece\xfc\xefF\x16\xed#\xe0~b\
+\x81\xc9\x1ed\x18\x99\xfe\xa6T`\xfaH\xea\x09\xa8\x22\
+z\x0e\xb5\xe4uj?~\xa8\xfa`\xfa\xcf\xc8}v\
+\xb8N\xaa\x1b-D\xf5\x0eeU\xe2~\x03\xf0\x91\x18\
+rw.\x82k\xae\xb6\x17\xbe&\xd0\xb5\xb5\xfd\xbe\x0e\
+\xf4\xcb\x06\xa0+\xc0_\x03\xc1\x7f\xe7\x15\xdfT\x04\xee\
+\xcf\xf9\xbck\xa0\xfd\xf9\xcc1 \x9a\x8d\x9c\xbd\xe4\x7f\
+~\xe94`3\xdc\xcb\x85 \xb3\xa9\x84-J\xcc_\
+K{\x0e\xaaK\xbb\xa0\xe4]Qj\xf9\xf3\x1aJU\
+M\x1c\x9fB\xa8\xd2B\x0e\xdbP\xf3\xb5\x126(g\
+A\xa3\xd1\xab\xc7\xe7\xad\xdbvT\xe7\x17 !\x04\xf8\
+\x18\xbf_)\x97\xb6\x97\xbc<\xe0\x22d+/\xe87\
+\x8d\x83.\x80\xbfvG\xf9}\xe9\xcam\xf0\x1bn\xf1\
+\xdf\xf9\xe0\xd4\x22\x01b\xb7\x1cT\x1aK\xc6\xce*\x84\
+{\xb9\x12\xc4\x83Z\xcc\x84\xe9oD\xa6_\xde\x88Z\
+]\xda\x19%\xb2\xaa\xb2h\xee\x90z\xd5\xce\x9f\xae\x8a\
+\xd7s\xec\xacIr\x99\x15C&\xad\x84\x8d\x88\xdb1\
+C\x86\x152|n\xc2\xae\xe3\xdcI\x14&\x1f\x0b'\
+ek{\x09\x81^b\x14\xfcB\xb3\x81/\xe1\xdan\
+\x14\xf4\x9b\x1a\xe6\xfd\xa6\xa1yWk\xbb\x00\xfe:\x97\
+\x87\xac\x10\xd6}\x04\xbe\xf0\xda\x1dv\x19\xc3J$\x00\
+|\xd7lX\x02|C\x939\x09\xda\x0d\x18\x97F\x8e\
+\xdf\x18\xea2\x16=\x00\xa2/\xf0})\x85\xfe!\xf5\
+\x06\xc8YU\xb1s\xf9\x13\xb2\xcc\xf2\x0e\xa9*\xaf\x84\
+\x08\xd2\xfa/\xbax\xea\xf7\x18=c\x8aL\x00\xec\xa3\
+3\x1a\xb7S\xe9\x15\xc1\xdd\x9d\x95\xab\xb7\x0b\x07;p\
+Mi\xbb,j\xa0\xf55\xbd\xc4\xc4\xef\x12\xa3\xa6]\
+\x0b\xf8\xcb*m\xd7\x03\xbc\x0c\xd0\xf17>\xa7\x18\xbb\
+\x80\xae\xde\x01\xe7\xf1.\xbb\x01\xcf\xb9\x02\x9f\x05\xdb\xc2\
+8\x01\xce\x17\xb3\xa3\xd9\x05\xcc\xd1?\x1a7\x9c\xfe\xbb\
+Y\x87\xbe\x18\xfa\x8d\xa4\xac\xe8OR\x87Q\x1di+\
+\x5c\xbd\xde\xe3\xe7\xf4\x1a1\x13wF)YU!\x98\
+t\xeb4\x847\x94\xd6'B\x88\x1dR\xaf\xa6\xb3X\
+\xd5\xc6\x85,\xfb\xba\xfb(\x87\xa9\xe5m\xb4\x10k{\
+\x16\xdc\x80tX\x071\x8bgL\xdb\x8d\x01oT\xa3\
+U\x82iYY\xb0\xce\x8fb\xcc\xbc\x17\x9b\x09\xfaU\
+\x03\xd0\x95u\x1e\x01GM/\xb8\xaah<\x0a\x82\x7f\
+\x19\xfe~\xeb\xeeC\x1d\x01r\x80\x00\xd8\x16v\x14\xc2\
+\xc0m\xe9\xa7\x99\x0dD\x01C\xa7\xfb]\x85{\x8a\xed\
+\xec\xdd\xa4}\x0d\x08\xe6\x97\xadz\x0e\xff\x09\xa2\x04\x1f\
+\xb9\xabx\x82[(\xb3q\x0de\xd6.!l\x9c\xb3\
+^v5\xcd\xa2\xeb\xa0V\xd2\x0e)y\xf7r\xe5W\
+\xe5\x00\x22\xbb\x1a\xb6\xe9c5X\xf6\x012\xcf\x14\x1a\
+O\xd8\x18]\xdbM\x03o\x0e\xd0(\x08\xec\xa9\x8bW\
+y\x19\x16\x134\x98\x97\x17\x89\x1a\x0c'1f?r\
+\xb6\x90\xa7r\xb3\xe09\x18\xc7c&.\x17\x9c\xb2K\
+\xa0\xa5\xc6L\xbc\x81\xb6K\xa0_\xb9U\xc2\x01F-\
+\xbf\x04\xa0\xe3o\x01z\xf1\x0d\x05x\xac\x15\x5c\x85\xe7\
+]\xc3k\xdc \x02\xe4_\x93\xfa\x02\xf3X\xd4Fe\
+\xc3i\xefq\xb37P#+\xeen\xb2\xe87\xd1\xd5\
+\x11B\xecT\x1d\xe8\xee\xa1l\xb6\xffz\xe6\xb6(\x99\
+\xb9\x04nbs\xfd\x92\xd8,\xef\x0d\xcc\xd1+\x9e\xd9\
+\xbb\xc72\x1b\x97p\xad\x1dR\xf5^\xc9\x16v-\x0b\
+\x80u|\xcb\x19\x0b\xf3\xe5(\xe0t\xfeu\xa3\x8d\x16\
+\xa6\xd6v\xe3\xe0\x1b\x7f\x1c\x97\x1c\x8c0\xb0\xeb\x06\xd3\
+\xb3\x07E\x86\xee\xb4\x02|\xd2\xeecl#\xca\x9ec\
+l\xd3\x9e\xe3,y\xaf\x22\x08>\x16a0\x89\x83)\
+]\xcc\xc9cV.\x0f\xc0A+`\xa0\xedw\x04\xf0\
+\x0f9)\x10`\x5c\xd7Q\x84\xb6ce\xb0X\x00\x7f\
+S\x06\xbe\x84]\x87k\xdd\xc0\xd7\xc3\xef\x02\xad\xce\xe0\
+\xcc\x1c\xe6\xbcd=fD\xff\xab\xc3\xe0\x09\xbe\x03m\
+=\xe2\xad\xe6,}\xc0S\xe9.\xab\xd8\xac\x80X\xe6\
+\xb7:\x95\xf9\xaf\xde\xc6\xbc\x97oe\x1e\x8bS8\x01\
+\xe6\xf9\x13\x01\xe6\xc7\xb3i\x1eq\xcc\xce\x0d\x1ck\xe7\
+(\xb1\xc7 G\xeaU\xfc\x94\x96\x83\x8a7\x95j\xf9\
+\x00X\xc9\xeb4l\xb2\xab\xd8\xc8!H\x80\x159\xf3\
+B\xb8\x8aI>\x00\x8f)YQ\x84A\xd0\xb7\x83/\
+\x11\xbca\x0fs\x87\xcf1\x85Z\xabM\x89\x9dw\x04\
+\xf3Z\x9d\xc4\x22\x93\xf7\x03q\xf2\xd8\xd9|%;\x87\
+\x89\x1a$\x02\xfa\x00B\xdbQ\xf39\xe8WKA/\
+\xb8fB\xdbI\xe3\xaf\xdfQ\x80\xbfy\xf7\x01\xbbu\
+\xef!\xbb]\xf2\x90;\x82\xb9\xf9J\x22H&\xc0\xc6\
+\xed\xc7\xf8N(\xf1\xf9f\xf8\xc70\xefU\x9bY\xf2\
+\x8e\x93\xec\x10<\x07-\x07J\xe6\x89|\x16\xb7\xf9\x08\
+s\x15\x04\xf0\xd1'\x80\xadK\x0c\xb3q\xa2\xd6r\xeb\
+yb\x0b{\xfdW\xd2T\xaa\xd5\xcb\x87=\xf7\x03l\
+=\xf6\xa9I\x80\xeb{\x01\x0f\xaf^\x0d\xe8\xdc\x0f\x00\
+\x8fZ\xc9\xc5+\xda\x8e\xc5\x99\xc8\xe4t\x1eOKk\
+\xe0\xbf\xfaMp)\xee1\xda\xf1t\xcb\x1e\x96\xdb[\
+\xf5\xb4L\x835t\xab,\xe0\xbc\x9e\xec7\xd1\xa5\x00\
+\xcc\xeb\x1f\xe2u\xd8\x87\x10\xbf\xfd0\x15y\x94\x98\xbd\
+\x80\xaf\xe7w\x80p\xb7\x0dM<\xad\xed\x8a\xb6\x97\xe8\
+\xcc\xbc\x1at\x05\xf8G\xec\xce\xfdG\xec\xee\xfd\xc7 \
+\x8fX^\xe1Mv\x1a\x08p\xecT!\x07W4\x86\
+.Z\x93\xc6\xbc\x83\x93Y\xfc\xd6#\xec\xf8\x99\x22v\
+\x17^\xf7\xec\xf9\x0b\xf6\xfc\xc5\xef\xec\xc5\xef\xbf\xb3\xdf\
+\x7f\xff\x83\xfd\xf1\x87\x22\xb7\xc1\xa7\x08^\xb7_\x93\x00\
+\x93\x9c\xd6\xb21N\xab\xc4\x16\xf6\x0eTJV5\x95\
+ZTz\x99<\x80\xe8\xe6\xfd\x812V#\x80m\xbb\
+\xf0Fb%Od\xf4\xb0\x84\x8a\xa1\xe1\xcb\x02\x8f\x0e\
+\x1bf\x06\xf9\xda~J\x01~e\xc2^6\xd1S\xa9\
+(\x82\x03\xf5\xac\x8b\xe5\x94\x93M\xdavO\x84\xcf\x12\
+\x02\xb2\x9cr\xea\x01TX\xc1\x0c\xdb|\x92\x05\xf47\
+|,\xa8\xc9\xaf=\xa3\xba\x8e\xb0?\x84\x8d\x9e|\x9d\
+\xf5\x08a\xe1\x1b\xf7\xf2}\x80z&\xde\xe8\xda\xae\x98\
+x\x0e\xfc]}m\xbfS\xf2\x88\x03~\xef\xc1c.\
+%\x0f\x9f\xb0\xfb\x8f <\x06\x82p\x02\x9c\x16\x04\xc8\
+\xe5\x048\x92}\x89\x15\x01\xc9t\xa0\xbf\xd0\x07\xfdw\
+\x10$\x02>\x86\xcf\xf9\xed\xd9s\xde?\xa0E\x80\xf1\
+Na\xa2\xa7\xd0HSi\xc5\x09 \xf7\xf37\xa4\xfd\
+\xf1X\xd3\x9f\x80\x1d,\x18\xd2 \x09D5\x0f\x1b*\
+\xb0\xa2g\x16\xd87\x0c\xc35\xd4z\xbe\xce\x93C\x87\
+\xcd\x22v\xbe1\x8a\xb33{\xc9\xfft\x18d\x93\x05\
+\xef\x1dI\xc9\x94@\x02\x18[\xb6gQE\x0dw\xf0\
+\xdaR\x92e2\xfd{*=6\x8b\x9e\x8b\xc4X\xd8\
+\xaa\xd7\x88\x8d\x03\xa7x^U\x88\x1c\xc9\xd2\x0edk\
+\x82nL\xdbo\xdfS@\xe7\xda\xae\x02\xfd\xc1\xa3\xa7\
+\xec\xe1\xe3\xa7\xec\xd1\x93\xdf\xb8`>\x00\x09\x80R\x08\
+D{\xfc\xf4\x19{\x0e\xa0\xbe\x10\xda\xfe\x87\x04<\x90\
+\x00\xff\x8e\x8f?{\x06\xc0\xff\xf6\x9c=\x81\xe7?~\
+\xf2\x8c\xdd\x81\xf7t\x0a\xd8\xc8\x090\xd5-VG\x00\
+\x1b\xa7H~\x8f:\x0e\x998\x9f:\xae\x1a\xe9\xf7\x13\
+T\x9c\x00z;z\xa8U\xa9\x13\x95.\xa75\xef6\
+8\x14I\x80\xebYT\xca\x01\xdeU\x83\x9d:&A\
+\x97\xa4H\x05~\xd6\xf9\x22\x0e<v\xdcx\x87\xa7\xea\
+J\xc8\xe0\xe9\xfe\x0fx\xba\xa9\xf0\x9e\xab)\x8d\xeaN\
+\x80N\xa1\x0d\x1b#\xa8\x99b\x00\x11\xb4/I?\xfa\
+\xdb\x10z\xce8\x22\xc5\x0c\x10W\x10\xdf\xd6\xbdF$\
+\x09\x8b\xb0xm*o\xfa\xd0\x81~\xbb\x14\xf4\x9bw\
+\x0dM\xbc\x0et\x0e\xfcS\xf6\xe01\x02\xaf\x80\x8e \
+#pO\x01@$\x03>\xc7\x98\x89\xd7\x81\xfe\xe2\x85\
+N\xdb\x9f\xea\x80\x87\xeb\xc15\x1f\xe2\xf5\xe1\x1a\xe8'\
+L\xf3T\x13 B\xde\x22\xd7\x85p\xaaW\xdaR\xf6\
+r\x04\xa8.\x8aA\xb4u\xa9%\x99\x1a\xbc\x99s \
+\x0e\x8d\xc67w^\x1a\xaf\xec\x84\x01\x93m\x0ax\xad\
+\xa4\x0c:z\x18\xb6\x1d\x81\xf0\x0d;mg.J\xd0\
+\x81\x0f&\xff72\xf7\xcbH\xe3gQ\x05m$\x81\
+\xdb\x9d\xd6\xbe\xb6\xf4\xd9\x9a\x93\x19\xb4\xa0\x7f\xb7\xa4\xc7\
+:\xd0s1\xf4\x1aN[\xbd\xd02\xb8\x80\xf8\xf5\x1c\
+33\x0b\xdfo\xce\xa2u\xec\xfc\xa5\xabf\x9bxY\
+\xdb\x11,\x04\xed\xc9o\x00<\x80\x88@*\xa0\xbf \
+\x13\xaf\xd6v\xc5\xf4\x1b\x82\xfeL\x02\x1d\xc8\xf3\xe0\x09\
++\xc1\xf7\x05\xd2\x9d\x00\x7fa\xba\x8a\x00\xd2\x12 \xb6\
+\xaf\xa9f\x18\xbc<\x01D[w\x03\xbaxg\xaab\
+M\xed5n\xf6!|\xf3\xe4}'yc%v\xcb\
+\xc8\xa0\x17\xdd0\x9d\x95\xcb\x87u\x10[\xb1\xb1c\x96\
+o\x02\xf5\x8f\xe5%c\x1c\x14\x81\x95\xb3&m{$\
+\xc0\xfb,&\xad\x9fF\x05\x94\xfe\xf4\x19Z\xd1\xe7\xf9\
+\x9e\xc8\xf95y\xc1_\x91\xd4\xa7\xbf}K\xcf\xf9\x89\
+\x08\xd1\x91\xea\xef\xf8\x1dp\xf2\x87#^\xbfu\xef\x91\
+\x09h\xd1\xf8\x1e\xbf\xdc\x22\xa3\xda.@\x7f\xf8D\xd2\
+\xf6\xdf\x14m\xd7\x81^\x96\xb6K&\xfe\xe9o\xcft\
+\xda\x8e\xd7\xc5\xeb\xe3\xfb\x94\x00\xf0\x08::\x88w\xee\
+=\xe2\xce .#\xd3=\xd7\xeb\x080\x99\x9c@K\
+\xc7\x85\xf7\xa9\xab\xa8'9\xec_\x92\x03\x8f\x04\xa8l\
+\xf6\xdccU\xc7\xaf<\xbf\xe73\xba\x99\xcd\xe8\x06\x0e\
+j\xdc\xaa\xb3#n\x9a\xc0\x10\x0bM?\x86jei\
+\xbb\x9c\x99\xc3\xd8\xff$x\xe2h\xfac\xb7\x1d\xd1U\
+\x0c\xb1\xc3\x08\xc1\xff\xa5\xf3\x80dr\xf0\x5c\xc8t[\
+\x92\x16\xb7&3\xf7\x0d1\xfd3)7\xfe\xa1JD\
+\x97\xf2\xa7\xf4\xdc\xaf\xc9\xa1\xb5\xa0$Lo\xb2\x08\xe8\
+3\xccm\xdeup\x84 \xc1\xe9\xbcb\xaey:m\
+7b\xe2\x15m\x7fQ.\x87\xce\x98\x89\xe7\xda\x8e\x84\
++Q\x80G_\x033\x8b\xe8L\xde\x80%\xe9(8\
+\x8f\x82\x00S\x80\x00\x13h\xfd\xefbi\xb7\xf9\xa5-\
+\x80\x91\x8e_\xbc\x81\x9fA\x98\xd5\x0c\xd6\xca`\x08\xa7\
+2qo\xdf0\x07\xbfSC\xa6\xf9\xe4\xe0\x9boI\
+W\xda\xa4\xb1\xf7\xdd\x9c\xdc\xbb\x10\xdc,\x81\x89\x9a\x9d\
+\x87\xcf\xe9\xc0\x1f\xef\xae\x98\xb3\x0e\x83'\x1c\x82\xf7]\
+D\xe0O\xa6u\xbc3\x15O\xbe\x93&x\xd6VU\
+\xc7\xb4D\x1e;W\x87\xd6\xc7\xfa\x1425'\xbff\
+\x00-k\x8e\xcd\xbb\x0d\x09\x11$\xc06p\xd9\xa1\xd3\
+\xd4\xf6\x17\xc6\x1c\xba\xdf\x8d:t\x1ct=m\x7fl\
+\xa0\xed\xb7\xd0\xff\xb8\x0d\xc0\xdf\x02\x7f\x04s\x15p\x0f\
+1\x82\x10\x04\x98\xe4\xa2$\x82\x869\x06<\xa4\x02\xd3\
+\xe8\x0a\xf9\x00\xa6:~\xc1[nb\xe9\x18\xb0J\xdd\
+\xf1+Z\xbb\xe6,\x8a\xe5N\x1bf\xe4L\x95VK\
+EI\xc3\xe6\xf2\x9e\xbbb\xfeZ\xfb\x80X]\xcb\x18\
+\x9f\xfaa\xebq\x13\xde{\x099j\x08\xfe`\xb2:\
+\xcdTS;k\x1a\x19\xb8T\xd9\xc8N\xa5\xea\xf2@\
+\x07\xbaI_\xd3\x0dkK\xcb\x02\xfa\x16S[t\x1b\
+\xb2\x0a\xac\xdb\xbf\x9d\x96\xc4\xe9i;\x82\xfe\xdb\xf3\x17\
+e;t\xcf\xcbv\xe8\xb4L<\x07\x9d\xb4\xfd:\x00\
+\x7f\x0d\xf3\x0e\x18\x95\x80\xb5\xbc\x0c\x8e\xf2\xa2\xb0\x9d\x9c\
+\x00\xb6\xae\x98\x0f\xe1\xcb\xe4\xbf\xd1j\x91?3\xb4\xdc\
+Q@Y\x1d\xbf\xa2\xf1\xd3X\xc7\xef\x9a\x94\x83<C\
+\xc7;e\x8d\x16]\xf4\x0b/\xe8\xf1\x8b\xb4,\x8ez\
+Q\x9b\xfeF\xcd\xdb\x87\xc2\xfb{\xd2\x96\xef\xa1\xa4\xa1\
+?Ie\xd3\x0f$\xe0\xcdj\x8a\xd0 y\x0d\xfa\xae\
+u\xc8\x5c6\xa2}\x0b\xddh\xa9\x99\x02^\xf5z\xfc\
+\xee\x09\xdb35\x1d\xba?T\xda^\xb6\x89\xd7w\xe8\
+\x14\xe0\x1fJ\xda.\x83^\xa2\x03\xbd\xf8\xea]\x9e3\
+\xc0,\xe2t\xafXf\xe3\x1aF\x89\xb0\xa0?,\xba\
+\x0c\x8a\x81\xcf\xeaD\xe6\xbf|y\x00e\x84z\xc5;\
+~\xa7\x82\xc3\x86m\xd2\x18\xba]\xc2\x0fz\xd3x\xb5\
+Mn\xa88Gm\xd2\xe1\xc9\x07t\xd7\xc2\xf7\xa0m\
+\xde\xa7(y\xe3@\xa1[\x17\xd2\xfc\x06\xaa\x8e\x99\x0a\
+\xd5\xbe\x8dX\xbb\x0f\xc9\xaa|CKL\x17\x22\xc1\xd4\
+\xbe\x13\x9c\x8f\xe3\xe7\xca\xbf|\xc3<\x87\x8e\xac\xc5#\
+3\x1c:\x03\x13\xaf\xd2\xf6b,/C\x84\x84\xc3&\
+p\xed\xb7_\x10%\xc2\xe2\xff\xc6\xfb\xd4\xa8y\x87U\
+\xd4W8\x85\xacd\xf92\x81\xca\x0c|\xfd\x8e_1\
+\xb8\x09\xfb\xd7\x16F\xa5\xb1\x15\xf1{\xb9\xe0^<\xb7\
+\xd5\xfa\xcd\x9e\x0b\xa3\xb7\xf3\xca\x1bnx\xd0\x04]\xa3\
+\x93\x06\xabq\xd8&\x8d\xa4\x91\xaf\x85\x8d\xa2\x8a\xf6w\
+X)u\xca\xf6\xa45\xba\xa1\xa4\xf9\xafdr\x86\x11\
+\xcb\xf7)-\x09?\xd3\x16\xad\x11\xdf\xb7\xec4\x0f\x1d\
+]\xef\x90\x8d/\xe1\xd0\x11\xe8*\x87N\xcb\xc4sm\
+\x07\xd0\x0b\x01t\x04\x1ek\x02\xeb\xb6\x1c\xe0YK\xae\
+ \xa3\x1c\xcf4\xb2h\x1fI\xf9\x10\x17\xb2\x92\xc3\x89\
+\xb4\xe6\xd7\x020,\x00\x02\xe8u\xfc\x8a\xc9\x9a\x8bc\
+\xb6\xf1M\x11\xe9'.\x96\x16a\xa4\x92\xeb\xae#\xe7\
+!\xec\xcb\xe6a\x1f\x96\x5c/\xf0\x82\x8aq\xd0E\xb3\
+$\x0av\xc9b\x11\x06w\xf5\xca\xed\xe2\x8a\xf6\xcf\xc8\
+&\xd3oK\x83\x9f\xda\x90i\xfeS\x864\xab\x22\x1e\
+1\xb4\xb2.\x11\xae9\x11pl\xd7\xe1S\x93\xf0\xf3\
+\x9d\x81\xa8@h\xfbS\xb3\x1d\xba\x87\x9a\xda\xae3\xf1\
+\x98}\xbc\xa6\x98\xf8B\xd2v\x04\xfd\xf8\xd9\x02\x16\x9e\
+\xb4\x97\x0f\xa9\x22\xbf\xe8\x06\x84\xc4q\x14\x12\xcf\xa7\x9e\
+\xc2\x89\xb4Dv-W5\xf0\xcbF?\xe1y8t\
+r\x86~\xc7/\x82\xaf\x80~\x91@/-\xb9*u\
+\xf6\x02\x1e\xb3c\xec\x8e\x9b\x1dO\x80\x17\x8fk\xbe)\
+\xd0E}\x1dS\xadH\x00$\x90\xac\xfd\xe3\xdcB\xf9\
+\x97l\xda\xaeg\x18%z\xac\x88\xd1M\xa5\xd9\xbc\x7f\
+\xda.\x19\xad)fD\xbc6DD[\xdc\xc7\xb0 \
+8I/f\x17\xda^\xa6\x897\xaa\xedwJ\xb5\x1d\
+@?\x97w\x95%\xed8\xc2f\x07\xc6\xe8\x0a^\x08\
+<\x16\xb5\xc8)\xf6\x06\x99GZ/\xf2!\x1d\xa5i\
+\xe6\xe6\xf5\x03\x10\x01\xd09\xd0u\xfcbx\x87f_\
+\xbd\x13\x86\x83~F\x01]4X \xf0r\x9d\x9do\
+~(\xb8N}\xf07\xb8\xa0\x97\xafT\xdan\xf1\xfd\
+u\xb9\x85J\x9b\xf4\x85\xe2\x9blY\xdcn=\x02`\
+\xd2g\xe0\x14\xcfk\xa4\xfd\x93\xe9\x8b\xb5\x92\xa6s\xd7\
+\xfc\xb3w\xc9j\xec\x81\xf8'\x11\x10\x89h\xd5u\xc4\
+\xd4D\x04$\xe7\xd2\xd52\x1d:C\x13o\xe8\xd0a\
+M@h;&wpn\x90\xbd\xb7\xc8~\xfa>\xef\
+l9\xe54e@\xb1\xd8\xe5K\x8e\x9e=-\x8d\x83\
+\xc8Y\x15\xf9\x90\x06\xe5\xea\x08\x22\x02TS\xce\xc5\xe1\
+/l\x84o\xbcp\xcdV\xea\xaa\xb9d\xd0U\xa3\x03\
+\x9d\x03\x7f\x99'p0\x8eGO\x1e\x1d:l\xb2\x10\
+uv\x99\x0c\x1ct*\xb9b\xb7,N\xe3V\xef\x16\
+\xc2\xf7\xee6\xd2\xfe\x00\xed\x90\x1d%\xc5\xb2_\xbc\xce\
+\x89YR\x05\xb4\xa6<\xd0\x02\x09\x89I/\xfc\x9c+\
+b\xb7\x9b\x17\xb3\xab\xb4]m\xe2\xb1[8\xfd\xc8\x05\
+\xbeM\x1ck\xfeQ\x89\x87\x98\xeb\xd2\x0d\x22\xa5\x8b\xd9\
+\xcf\x08\xca\x83\xb8\x93C<\x9er!=(d\xfdI\
+\x1a\x91[G\x9a\x9a^vO \x10\x00S\x83\x98!\
+\xe2\xb5\xfev\x03\xc6\xf5\xc67^\xb39C\xcf\xc4c\
+\x86N\xad\xed\x22|;-\x80\x07\x87\xee\xec\xa5\xd2\x06\
+\x0b4\xf1\xa8\xed\x17H\xdb\x05\xf0\xb8\xc5\x1aK\xae\x09\
+;\xb3T\x1bG\xc3\xc5\x0e\xd9\x08\xaa\xdc\x0d\x22\xd3\xfb\
+\xcd\xeb\xde\x22\xa5J\x7f\xd7\x22\x026\xa1\x04\x94\xd5@\
+[\xcf\xd3\xd3\xfd\xd6\x94\xc3\xa1\x93M\xbc\x02|>(\
+\xc3\xc5\xc2\x9b\xec@V\x1eK\xd9\x95\xcd\x12\xd3\x8eq\
+\x02D\x03\x01\xdc\x96\xeaF\xc5DJI\xb0)\x14\x0d\
+\xf5\xa2\x18\xffgZ\x9e\xbe\x94\xb4\xbef\xb9\xda\xc3\x89\
+\x00x\x1a\x96^\xc7/\xb6R\xa9\xb5]\x80\xae\xa7\xed\
+\xf9W\xf5\xbajr\x8ch{>\xf5\xc7\xcb]5X\
+\xe5\xd3Z\xff)\x9c\xb1\xd6\xc8e\xff\xe3un\x90\xd4\
+\x1akGV`@7\xabi\xb1\xf8YO\x9e/4\
+\xc3\xa1+5\xf1X\x0eF\xd0\xf3\x0a\xe0\xfe\x5c\xba\xc1\
+\xbb\x84\xb0\xdbG\x8f\x00I\x87\x98\x7f\x882,\xa2\xc9\
+\xaf=b\xa4<\x88%\x99\xfb\x16\x14\xe2\xd5'\xa7\xf8\
+#i\xc6p\xb5rYH @\x15\x22\x80\xe8\xf7k\
+\x89o\xbcr\xfd\xceRm\xbf i\xfb\xc5+d\xe2\
+\x8di{)\xe8\x8a\xb6\x1b\xef\xaaQ\xe7\x120\xcf0\
+\xc4\xde\xe7\x0ey\xb5#\xc9\xa9iL_\xf2\xb5\x9f\xcc\
+ad\xb2\x19\x9a\xdb\xee\xbft\x1e\xc0G\xdbl\xd8~\
+\xb8L\x87\xee\x92\x00\x1d\xe4\x02\x00\x9f{\xe9:\xef\x0f\
+\xc46qt\xf6\xb0E\x0c\x09\x90\x94v\x9c\xc5\xa5(\
+\x04\x08\x0aWv\x0d\xb7\xee=r\x03\xdd\x8f1\xa4\x10\
+-I\xeb\x85\xb9\xaf\xa5qZJ\xa5\xf2\x12\x00\xd6\x0b\
+\x8b\x8fi\x9dk=r\xf6\x92GNK\xd7\xeb@7\
+\xa5\xed\xb2C\xa76\xf1\xa6\xbaj\x0eBd\xa1&\x00\
+\xa6\x94\x07\xd9y\x15S\xa5o\xb0d\xfeE,\xfb\xda\
+7HJV\xa0\xa6\xf0\x91\xa8pd\x09\xd1\xc0oK\
+\xa2S\xf5cv=m\xbfi\xa0\xed\xd8\x1a\x8ek\xfe\
+\xb9\x0bp/\xc1\x92\x9e\xc9\xbd\xc2\x09\x80#c\x93h\
+^ '@\x84\x8e\x00q\xd2\x96\xf1N\xaa\xbd\x03b\
+\xba\xf8{\xaa-d\x95^\xca\x02\x0c\x98\xec\xcec\xdd\
+\xd4\x8cl=\x87\xee\xbc\x09\x87N\x98\xf8\xb2\xda\xa4E\
+\x83E\xdc\xf6#\x06\x04\xa0-S\x99\xaai\xdc\xf5\xa5\
+q\xec\x95\xdf\x10\x01\xe4\xb6\xf8\x06\xa4\x85\xfd\x879\xf8\
+_v[\x91\xa0\xe7\xd0\x19\x98x\x95\xb6\x9f\x05\xe0\x11\
+tl\x0d\xc3\x0ea\xdc)\x84\xbb\x85\xc5\xc8X>0\
+2)S\x22\x80U\x1c)\xc40\x89\x00\x0d)\xc3'\
+\x9f\x99TSE\x04\xf3\xee\x95\xda\x07\xc0$B\x93\xb6\
+=,q\xf2\xf6\x04\x8f`\xb67\xeb\xbc\x81C\x97g\
+J\xdb\x8d\xb6I\xebw\xd5`\xdd@\x93\x00\xca0f\
+\x1b\xedR\xe6\x9b\xd9\x1eM$0l\x8a\x9d\xec\x9e\x8e\
+Y9Cm\xbf\xce\xb5]\x01\xfd\x9a\x04\xfa\x15\xde\x15\
+\x8c\xbb\x83p\x97\xf0\x89\xb3E\xbc\x09T\x84~\xf2\xc4\
+\xd0ED\x00,B\x0ds\xf0\xbb\x02\xa1\xf1n\x90\xf5\
+\xb8)\xa7\xdd\x80\xf1=\xa5\x0d$\xea\x12x\xadrm\
+\x0fSG\x01\xc4\xb0\xaem\xfaX\xb9b\xbf:~\xc1\
+\xd0\xc4=,\xfdx\xaeI\x87\xae\xcc6iUW\x8d\
+_d\x9a&\x01z\x8f\x9b\x93A\xf1\xadzBV\xd5\
+7L\x80\xaaRS,~\xae\xae\xfd&\xb8\xf0\xcd\x1b\
+\x06&\xde\x84\xb6\x9f\x04\xd0\xb1\x93\xe78\xf5\x05\xa2\xf9\
+\xc7\xdc\xbezdlH\xec~\xe6\xbc8\x81\xcd\x0e\x88\
+e\xb6^\x11l\xac\xf3*\x83\x16wP\xd2\xd3\xb0\x0c\
+e`\x85\x16\x9c\xf7\xfe\xd2\xf6\xb0:\xaa\x03\xb4*\x97\
+\x95\x08\xd2\xcb\x03\xd0p\xa2A\x8d[v\x9e\x81\xe1\x8e\
+\xfc\xa6\xb3\x83b\x98O\xe8&\x16\xb1i\x1f\xdb\x07\xd6\
+\xe1\xd4\x85\xe2\x0a\xb5I\xfb\xad1B\x80\xf1s\xd2)\
+\xb3\xd5\x99F\xa4|\xf6\xa6'di\xf8\x01\xe8\x98v\
+\xea7\xd1\x85\xd7J\xb4M\xfc\x95R\xd0u\xda.\x83\
+^\xc0M\xffa\x88\x002\x8f\xe7\x1b\x8c\x8c\x8d\x88?\
+\xc0\xdb\xbf\x97G\xeda\x8b\xc2w\xb2\x80\xe0ml\xfe\
+\xb2-ln\xc0\x06\xe6\xe8\xbd\x8e\xd9yF1k\xd7\
+\x10=b !\xfaX\xcf\x1dG\xcb\xd4g\xd2\x01Z\
+\xc6I\xa0\x95\x09$\xd3\xdb\x85\x0a\x0bv?\xb5\xef\x13\
+\xd4~\xe0\xf8M=\xc7\xcc<6\xc4\xde\xfb.\xf6\xe0\
+\x8b7\x8d\xda\x9c^\xae6i\xd1U\xe3\xaf14\x02\
+\xb3\x804$\xf1m&@]R\x92\x0e\xfd&\xba\xa6\
+\xe0=\x90\x1d:\xa1\xedj\x13\x9fu\xaaP\x01\x1d\xb4\
+\xfd0\x00\x8f\xa1\xdf\xa1\xe3\x17\xf9\x06\x11\xcc\x03p\x02\
+\xd0\xc4PN\x80\x84R\x02,&\x02\xf8\xacHe\x9e\
+KR\x98kP2\xdf\x1c2\x9b\xf6\x06\xd8{\xc4\xb2\
+\x89.\x91\xbc\x1d\x0c?\xcf\x80\xc9\x1e^\xd2\x99\x03\x1f\
+\xe9\x93@U\x0d\xd4\xaa\x05\x90\xe7\xdd\x5c\xaa\x87O\xa2\
+\xbc\xbc'U\x9e\xb0J\xb7\x06\xdf,:%\xbdBm\
+\xd2XQ\xd4\x0a\x03\x87N\xf7\xbd\xfe\x16/\x01\x22\x1f\
+\x807\xb7}\xff\x89\xae\x9b\xf1\x1e\xe8\x9b\xf8b\xc5\xc4\
+\x9f\xd17\xf1\xb2\xb6\xe3\x9e\x00<5\x04\x81\xc7i!\
+\x98\x05\xc4M\x22;3\xce\xe9\xc6\xc6\xc5&\x1ff\xe1\
+\xf1\x19l\x85\x8e\x00\xdb9\x01\xbc\x88\x00N\xfe\x1b9\
+\x01f\xe0\xde\x00j\x0c\x9d\xec\xb2\x96\x8ds\x0a\xa1\x91\
+\xf3n\xde\xd4\xfb\xf8\x854iD\xbb!D\xa3\x1a(\
+F\xb96'M\x1c@iY[\x89\x08|<\xfa\xda\
+-\x19\x15j\x93\x0e\xd0 \x80\x94\x08\xd2\xeag\xab\xf6\
+\xb6\x11`\xb0\xbd\xf7a\xdcjf\xa8\xed\xb2\x897\xd4\
+v\x01\xfa\xfe\xc3\xb9|s\x086w\xec9t\x9e\xed\
+>x\x9eO\x0eC\x22`\xbb\xd7\xf6\xfdg\xd8\xb6}\
+gx\x82\x08}\x03$\xc4\xd2\x88]\xdc\x0a\xe0\x9e\x00\
+A\x00\xb91\x14;\x83\xc7:\xadV\x0e\x9e\xe8\xd0\xb7\
+\xab4p\x82*\xa8\x16U4\x9bB5\xfa\x01\xeaQ\
+\xb8\xd1\x94\xe2\xf1\xaeD\x84\xd1\x94\x95r\x1e2\xcd\xe7\
+v@\xc4f\xf3\xda\xa4\x9f\xea\xb7I/\x8f\xdf\xa31\
+C0\x9cN\xff\x1a\xeeCa\xa08\x93\xe7\xc379\
+&\xcd\x18\x01pX\xb4\xd3\xe28\x03\x87\xee\x88\xce\xc4\
+\xe7K\xa0\xe7)\xa0\xa3\xb6\x1f\x16\xa0\xe7\x18\x82\x0e\xb2\
+\x8d\x03\x7f\x9a\xcf\x10\xc4Q\xb2\xb8<`\x9e\x00\x93E\
+\x9bw\x9e\xe4\x84\xc0\xa5\x01\x97\x81\x19\x0b\x12\xf4\x1aC\
+\xb13x\x82\x93h\xa7\xf3\x8c\x97z(\xa8\x81\xc6\xa2\
+\x9a1\x02\xa8;\x82j\xd3z\xf7%}\xe1\x9f\x88\x08\
+=hY\xb0Es\xed\xb5:\xb1Bm\xd2\xd8:\xae\
+5:\x0e?8\xf8\x1a)T\x07hM\x1f\xfe\x8d\x0e\
+J4\xe6\x03\xe0g\x0dZ\xb3\xd5\xc0\xa1\xe3&\xde\x98\
+\xb6\x03\xe8{\x0e\x1a\xd7v\x05\xf4\xd3|\x884\x86\x86\
+\x02t\xdc\x04\x82\xc5\x22t\x141_\x80$\xc0\xa2\x11\
+Z\x015\x01\x84\x15\x181+\xe8&Yp\xa9\x94n\
+\xf1\x0f\xf4\xf9p\xe9/\xabEJ\x9e\xfd\xfb)i\xe2\
+\xf7\x94\x04\xc18t\x14\x98\xc0\xbcyKbM\xee\x84\
+1\xd6&\x8d\x872j\xb5\x96qG\xd0\xde\xfb\x229\
+\xa0\x1d\xe8=?}\x93\xa3R\xb5\xa2\x80\x0e\x83l\xf8\
+\x98\x9c5\x1b\xd35L|^)\xe8\xa6\xb4}\xbf\xa2\
+\xedi\xa0\xed\xb8\xf6+\xa0\x9f\xd2\x07\x1d\xfc\x01t\x0e\
+\x11\xf4$\x00=1\xf5\x18\xdb\xb05\x8b\x0f\x97F\x87\
+q\xd5\xda}\x0a\x01\xdc\xf5\x09 m\x10\x11\xe5t*\
+\xa8Y\xd4\x00\x02T\xd5$\x80\x89\xbd\x00\xa29\xf4+\
+r\xcc\x10\x98\xa1bchE\xda\xa4\xb1r\xa6E\x00\
+\xd1\x0a\xfeK\xe7\x01\xb3\xc9\x09\xfdIU\x0a\xae\xf46\
+\xe4\x01\xfaOr\x0d\xc5\xcf\xb9=\xfd\xb4\x81C\xa7h\
+{N\xa9\xb6\x1f\x00\xe03\x10\xf8\xb3\x1a\xdaN&^\
+O\xdbO\x94j{\x9a\xa2\xed\x1b\x00x\x01:\xfa\x03\
+X4\x8a\x05\xc1M\xa2\xb8\x14\xe8\x08\xe0l@\x80\x11\
+R\x7f\xe0g\x18\xee\x9b$\x80\x11K \x0ea\xfe'\
+m\xa4h\xd7q\xc8$/\x1c\xf3\x8eoR|\xfdN\
+\x85\xda\xa4\xf1\xc0'c\xcb@_\x1b\xa7\x1d\xb4\x9f\xaf\
+\xc5\x9b\x9e\x97\xab\x95\x09\x1c\xe6\x18p\x02\xcf\xf7\xd14\
+\xf1&\x1c:}m\xd70\xf1\xa4\xed\xfa\xa0g\xb1\xf5\
+\x00<\x16\x8a8\xf0\x00\xfa\xbaM\x87\xf9\x01\x13\x986\
+\xf6[\x95\xa6\x10\xc0u\x9d\x8e\x00\xe3\x9cB\xf9\xe9&\
+\x14Qu+\x8d\xa8,ja\xde\xc7\x1c\x02TQ5\
+I\xe2\xda\xd7\x00G\x90\x0cs\xf0\xdb+\xf6\x05`\x07\
+/f\x06+\xd2&\xbd.\xed\xb0\xa6\x15\xc0\xa6P\xcc\
+B\xfe\xd0\xba\xdbx*\xbc4\x22\xd3\xfb\xa6*\x82z\
+\xb5\x80\xb6}G\x0d\xe4C2\xc3R\xccr\xe8\xd4&\
+^q\xe8Njk;\x9a\xf8\xd4,Cm\x17\xa0o\
+\xca\xe4y\x02,\x18\xa1\x0f\xb0f\xc3A\xb6|\xcd\x1e\
+>*F&\xc0\x18'\x9eS)\xa0\xe6\x91\x1e\xa5\x96\
+\x94\x13\xa0:f\x80?o\xf8C%s;d\xebv\
+\xb6\x9c\xd2\x1e\xe7\xd6\x8c\x9a\xb7\x8c'\x81f\x05\xc5\xb2\
+\xed\x87\xcep\xc7\xcf\xec}o\xaa6i\xac&j\x11\
+@\xb4\x85c\xaaU\x0a\x07\xd5g\xf4\xbe\xce\x9e\x00\xdd\
+\x8cD$\xe3 \xbb\xf91\xf8\xf9Rv\x9fT9t\
+g+\xec\xd0\x19\x98\xf8\x94R\x13\x1f\x03\xc0\xaf\xe5\xda\
+~\x887\x8bD%\x1e\xe4\xc0G&\x1c\xe0\x19\xc3\xa5\
+\x91\xbb\xf4\x08 v\x08w\x19\xce\xb7\x88\x8d\xa7-t\
+j\x02T25\x0d\xa4\xaa\xbc\x0fp\xe8t?_\xbc\
+\xe0$\xcfP\xb6:~'\xef\x8b\x7fU\xfb\xde<\x8c\
+\xcc\x12\x16V\xa0y\xb7\xc1\xb6\xd4\xf6\xf4\x9d\xca\x0aT\
+~Mma\xa2AT\x98\xfffVs\x96<\x98\x1d\
+\xb8\xee\xa5\x1c:\x01:w\xe8\xb6\x18\xd1\xf6\x8d\x86\xda\
+\xceA\x07\xc1\x9c@\xd8\xfa\x0c\x16\x1a\x97\xce\xe7\x07\x09\
+\x02Lr\x8e\xd6\xda\x22\xd6\xb9t\x8b\x98\xc5\x07F\x97\
+\x00\x95\xb9\xab\xdd\xb6\xdf\xe8Fx\xca\x07^\x10\x81/\
+y\xf8\xd8\xe4\xd6f\xa3m\xd2\x8f\x8c\xb7I\xef8t\
+\xd6\xe84q\xe5`\xa6\x80\x02\xb2\x02\xa2\xcf\xfd\xa3\xd7\
+\xd5\x1a\xa6\xd1\x17\xf8\x0d\xc4\xd6+x\x02,\xf9\xe0K\
+8tZ&^h\xbb\x06\xe8:m\xcf`\xe1\x00z\
+\x18\x80\x8e\xc0c\xc1\x08\xd3\xc5s\xfd\x129\x01&\xbb\
+D\x8b\xcd\x22\xea-b\xbf\x96n\x11\xb3\xa8\xa9\xe9\x04\
+\xaa\xf2\x00<%\x8c\x95&\xbc`p\xc2N3\xf7\xbd\
+U\xacMz\xce\xd2DM\x12\x88\xc3%\xc0!\x5cK\
+\xbe\x80\xd8\xe9R\xfb\xcf^\x0a\xb4:\x83!2\xf9\x15\
+3l3\x17\xc6\x94\x82n\xd2\xa1;\xae\xed\xd0\xa5\x18\
+w\xe8\x14\xe0\xf5M<\x07\x9d\xb4]\x80\xbe:f\x1f\
+[\x05\xb20d;\x9b\xea\x01\xf7\xca%\xd4\xcc-b\
+\x16\xefi\xe6\x01\x88\x00\xf2@\xe8\xaf,g,\xdc\x86\
+f\x1f\xd7k\x01\xfc\x8b\x97\xdc\xf7\xa6\xd5&}\xf0D\
+\x9e\xd1i\xe2\xb8\x14\xe0\x17\xeb<\xcc\xd6\x85\xe2\xd9o\
+i)\xf8\xd3\xc6\xa8\x1b\x19\x88\xf1\xdd\xf0\x19\x81Gx\
+\x1bX\xeaQ\x03\x13o\xd4\xa1\xdbZ>\x87Nm\xe2\
+\xb9\xb6\xc7\xaa\x80_\xbb\x97\xad\x8c\xde\xcb\x02C\xb7\xf1\
+\xc1\x91\xe5\xdb\x22fQ\x1dk?\xc6\x08PUrv\
+\xbe\x835\xf8~p\xc2.\xa3\x0e\x1d7\xf1O*\xb0\
+\xb5Y\xd7CwW\xd7&\x1d\x18\xbd\xc3\xe8\x99\x02\x18\
+mX\xcd]\xf6\x9f\xed\x07ZO!67Tm\x0c\
+\xad\xf2*}\x02\xc9\x12\xd6\xa4\xdaz\x83\x01\x93\xdd\xe7\
+\xe3\x8d\xf6\x0bM)\xbfC\xb7\xd9\xd0\xa1C\xd01\x81\
+\x84!$Z\x92\xd0\xf5\xfb\x98\xcf\xea\xcd\xbc\x17Pm\
+\xe2\x15\xd0\xf7\xb1\x95\x00\xfc\x0a\x00\x1e\xd3\xc0.\x8b7\
+\xf0Y\x82\x1cxe\x8bX\x84y[\xc4,\xaa\x9aJ\
+\x05\xcb-\xd0M9\xdbwd\x9a\xed\xd0\xdd-\xd7\xbe\
+7\xfd6\xe9s\x17\xaf\xb1i\x01qe\x91\xe0\xff\xb4\
+\x1fd3\x99\xbe\xd4\xd7\x92%x\xefU8\x86\x1aG\
+\xe2\xa0%\xfc\xb2\xeb\x08\xfbah\xfa\xed\xbd#_\x99\
+C\xb7yg6O!c\x02\x09s\x07\xb3\x16\xc6\xe8\
+5{L\xf6\x0ag\xd3}\xa3\x99\xd3\xa2\x04\xb6`\xe5\
+f\xe6\xbbz\x0b\x9b\xbf\x22\x99\x0f\x8f\xb4qS*~\
+\x83\xed\xbd\xef\x01\xf0k\xa8m\xdc\xcc-b\x1a\xc5 \
+\xaa\x06\xca\xc3 1\xe3g!\xb6C\x9b\xeb\xd0\xa9\xb5\
+\xdd`'L\x19m\xd2\xbb\x0f\x9f7y\xba\x88 \x01\
+\xf8\x04\x81\xb4s\xf7\x1bU\xe3C\x85\xc7\xa5\xab\xc0\x17\
+\x89\xaf/`=m\x85\xa1\xaf\xb5\xebj\xee\xbc\x99\x17\
+\xb3\x9bv\xe8\xd0\xc4#\xf0|`$\xfc\x8e\xdd\x92I\
+\x1bb\xa6\x15\xb4\xe9c\x95\xd5\xddjz\xee\x00[\x8f\
+[r\xdf\x85,\xb8s\xaaU\xcf\xe1\x9b\x09\xf8\x05\xe4\
+\xed\x9b\xb9E\xcct9X\x8c\x83\xe5\x8d\x8fx\xb3#\
+7\xed\xe3\xc0?0{\xdf[\xc9K\xb5I'\xee<\
+V&\x09\xf0&\x0c\xb1\xf7\xd9\xdc\xacc\xdf\xceR\x8b\
+\xf4'\x1a-\xd2UL\xcd\x0cP\x9dv*g=?\
+\xe6\xe0w\x1d\xd4\x12\xe7\xef\x8e\x07\xf0#\x133L:\
+t\xc2\xc4\x9b\xe3\xd0\xe1k\xe5\x91\xb1\x98Q\x04\xff\x02\
+\x0f\x8c\xc6\x16\xf0\x18\xda\x09\x84s\x0fq=_\xd9\xaa\
+\xd7\x88M(\x16]\x06\xc6\x12\xe8~T\x92\x9fC\xc0\
+\x8fy\xa9-b\x1a\x04\xe0\xdd\xc1\xc3\x1c\xfc\xb3q\xf7\
+\x8bnk\xb3\xa4\xedfom\xae@\x9bt\xfc\xf6,\
+\x93\xa7\x8e\x89\xbe\x01\x9c\xab\x8bM\x92T\xed\x92;e\
+k\xab\xda\xa5\xabi\x10B}\xa6\xb1\x98\x84\xc2k\x1e\
+\xdd\xac\xa6\x0f\x01\xcd\xff\x03\xc1\x8f\xd8\x90\xfeJ\x1c\xba\
+Pr\xe8\xb0G@\x8c\x8c\x0d^\xbf\x9b\x7f\x97\x16\xdd\
+\x87b/d\x944\xf7\xd0\x87@v'\xa7\xce\x95<\
+\xfb\xd9\x14\xdeM\xa2\x1e\x8dA\x94\xe8\xa9\xf8\x161\x8d\
+%\x80\x9f\xec-\xe6\x01o\xdcu\xd4\xe4\xac\x1a\xe1\xd0\
+\xa1\x89?\x95S\xcc\xb2\xcf\x17\xbdT\x9b4v\xd5\xc4\
+\xa5\x1d1I\x02\xcc\x16b\xe5\x90N\x1d;\xdfc\xf4\
+\x0c[j!kH7\xe0S\xd2dA\x86\x9ad\x1d\
+\xde#\x11g\x1a\x7f@\xdf\xf9\x13\xf2} \xd6\xf7\xf0\
+@\xb3\x8f\xe0\x87'\xec7\xcb\xa1\x8bJ4\x12\xbe\xa9\
+\x1c:\xbc\x0e\x12_\x8c\x8cu[\xbeA>A\x04\x0f\
+\x8f\xf2'\xb0g\x90vO\xa2\x89_\xe3)\xaf?\x92\
+\xf6\x05\xf6%'\xaf\x0deJ\xbf{\xa9-bD\x00\
+\x83\xd6\xe7\xa1\xd3|\xcf\xe1\x07\xdc\xba\xff\x84Qm\xbf\
+Pp\x9d\xc5\xa5\x1eb\xb3\x83\xd6\xf1/\xe3\x1d\xb2\xe9\
+\xa5\xdb\xa4Q;6l?\xc6'\x8f\x18#\x81\xado\
+\x0c\x9b4\x7f\x0d\x1bK\xcb\x02F-\x83\xec\xe6/F\
+\xa7\x8d\xca\xc8_\xd3w\xa9GQ\xc3'\xa4\x19u\xa4\
+iah5\xbe\xc2C\x17\x86L\xf3\x09\x00\x93\xcf\xcf\
+/t\xf0\x8b\x06\x903\x09\xf8#&\x1c:\x15\xe8\xf1\
+r\xcc\x9e\xaex\xf1\xeb\xf6\xe9\xc27\xfc\xfe\xa8\x04\xf2\
+\xc8\xd8\xf9\xab6\xea\xd6\xf6\xef[t\xf4\xa7\x0d\xa0\xd6\
+\xe4\xc9\x0f$\xb0{\x91\x89\xefD\x89\x9d\xe6d\xea\xbf\
+\x95\x80\xffP\xb5E\xcc|_\x88\xa2\x00\x83y\xc0?\
+\xb4\xeej\x0d\xeb\xd3\x1d\xfc\x80K\xd6\xa6\xb1\x8cc9\
+\xb0v\xdf`\xa7r\x8bY\xf2\xee,\xde!,\x9c\x93\
+\xa1\xd3\xfd\x9e\xf7\x9f\xec\xc6\xc7\xc9\xec<xZ\xdf\xc4\
+\x97\xb3MZ4X\xec<p\x8e\xb9\xadJ6J\x00\
+\x1c*\xe5\x10\x18\xcf\xec\xc0c\xb6q\x0f\xd1}\x16 \
+C\xc9\x88YA\x07q\x9a\x19\x90\xc2\xa5\x8f\x8d\xd3\x98\
+\xbe\x13\x9cG\xe3\xc8\x1b\x94\x81\xb6\x9evx\xda\x06\x9e\
+{(F\xe0\xa0\xe0\x89\xe0\x8b\xd6l+\x97C\x17.\
+g\xe8\x8c\xc4\xec+\xa2\xf7\xf0\xb20\xfaA\x0a\x01\xae\
+(\x048\xae\xcc\x0c^\x1d\xb7[\x1cI\x7f\xff\xe7\x8e\
+\xfd\xdc\xa8\x8c\xdb\x87\x00oC\x807#+\xf7\x1d\xad\
+\xf1_\x10\xb1?\xd4\xd8\x1bX>GX\xca\x03\xd4 \
+\x0d\x11\xf3\x80\xf1CX\xf7\xb1\x9e\xbb\x07\xcb\x8bj\x8f\
+\x14<\xd5?z\x8f\x9b\x93G\xe3[\xd7\x81\xc4\xa1\xf7\
+:\xd5;\xe2\xa5\xda\xa4\xd5=t!\x1b\xf6\x1bX\x03\
+$\x00\xfe\xcd!p=\x9b\x05q1\x1e%?w\xe9\
+\x066#0\x96\xd9\xf9\xaca\x13<B\xcb\x1c\x1f\x8f\
+\x89.\xe7e\xf1lI\xccv\xb6n+h\xfc\xd6\xa3\
+z&>F\x14a\xca\x99\xa1[)\x80\x87\x98\x1d\xab\
+u\xcb\xd6\xec\xe6\xce\xa3X\x0aO\xe7J\x048\x9c\xcb\
+\x0bI\x91\x89\xe9\x0c\xa3\x0d\xac\x81\xb4\xe93\xca\x89\x1a\
+o\xdaHk\xbb\x00]^\xdej\xbe\x14\xf0\x1a\x99@\
+Q\xf8\xf8\x82\xd8\xd6\x9e\x1c\x8d\x09\xdf\xb7\xe8\xe4\x06\x1f\
+,\x1aw\xeft\xb3\x9a\xb6\x9f\xbc\xd2\xa54\xb1b1\
+\xfd{\x05N\xb1\xe0)\xe4\xf8]\x15n\x93\xd6\xea\xaa\
+\xd9\x9e~\x86-\x8d\xd9\xcd\xa6\xfa)D\xb0\xf5)%\
+\xc0\xcc\xc5\x09\x9c\x00\xce+71\xf7\xd5\x9b\x99W\xe8\
+\x16\xe6\x13\x91\xca\x9bO\x17\x84\xa5p\xf1\x8d\xd8\xc2\x02\
+\xd6\xa4\xb2\xc0\xe84\xb6<n\x17[\x9b\x9a\xc9\xe2\xb6\
+\x1d\xe1N\xe7z\x04\xbe\x9c\x0e\x1d\x9a\xf8\x90u\x1a\xda\
+\x8e\xa0G)\xa0/\x8d\xdc\xcd\x96D\xecb\x8b\xc3w\
+\xf1\xfe~$\x0d\xde\x0bT\x0a\xb4zH\xf6\xfd\x9c\x00\
+\xe7xvqMR\x06\x9b\xba Rl\x92YF\xe6\
+\xbe\x09-g\xe2L\xa0Z\xd2,D\xb3\xa7\xa3U\xa4\
+\xf8\xd1\x80\xd8\xd7\x81\x1aB\xc7P\x8aq\x06\xc5\x9e\xf3\
+H\xe6\x90\xcc#\x8f\xd5\xa7\x8f\xf5\xbc3\xbcd\xba\xe7\
+D\x85\xda\xa45\xbbj\xa4\x92k\x088g\x9e\xc1)\
+*\x02$2\xe7\x15\xfa\x04\xc0\xf6\xf3\xa0\x98\x1dlI\
+\xec.>\xe0*8q?\x0b\xdb\x94\xc1\xb7\xa6\xc5l\
+9,i\xbb\x0at3\x1c:\xfd\x0c])\xe8\xcb\x22\
+w\xf3\x12\xad\x02\xfcN>\xcf/(t\x07\x0b\x04\xc1\
+\xdc=\xfe\x0d\xbf\x1f\xde\x13\x99\x00XL\xc2<\x03\xfa\
+\x1e\xd3}\xa3(\xdc\xf5N\xa1\x84\xce\xb7D\x80\x0f_\
+\xf9\xc9`&\x86\x22\xd4%\xe65\xa50\xa3\x079%\
+\xc3)\x04\x19M\xbf\x85\x8c\xa1L\x94#83\xbe\xb0\
+\xc6>\xb4q\x0f\xe6\xe7\xe3\x94\xabM\xba\x9c]5\xd1\
+\x9b\x0e\xb1e\xebv3\xff\xc8m\xcc/\x22\x8dy\x87\
+m\xd5#\xc0\x8a\xf5{\xd8\xaa\xf8},b\xe3\x01\x16\
+\x05\xcfE\xc0\xcb\xef\xd0\x95\x82n\xa0\xedk\xd4\xdaN\
+\xa0\x87)\xa0\x07\x02\xe8\x0b\x83\xb7\xf3\xcd\x1dx\xfc\x0b\
+v\xf0\xf8\xaeL\xe3\xe9d\xbc\x17j\x02`\xd4\x81\xcb\
+\xcf\x1cX\xca\x94\x8d\x1e\xee\xab\x09\x83\xafhy\xae\xf9\
+\xa7\x95\xc4\xa5\xfe7\xb9\x13H4\x84\xfeL\x89\x86\x0e\
+Tc\xeeB\xbf\xc5\xbf\xbbK\xad\xe3\xd3\xc4\x98U<\
+\x22\xcdx\x9bt\xeeK\xb7I\x9b\xdfUc\x9eC\x17\
+f\x86C\xa76\xf1\x06\xda\x8e\xa0\x87\xa8@\xe7\xc0\xa7\
+\xf2\x0d\x1eX\xc3_\xb0l+\x7f/\xbc\x0f\xf8\x9d\x91\
+\xd4\x98b\xc6\xcf\x8d\xe4\xc4\xcf\xe4\xe0\xab\x94x\xdb\xf4\
+\xb6\x1aB\x18\xfc\xf9\xd5PUfL\x8cR\xfd\x8c\x88\
+\xf0\x0d}\x90\x1f\xc8G\x10\xd2\x94LU;\x0a[\xc6\
+u\x19n\xb7\x89\xcf\x1b\x82\xb5\xf7u\xb4I\x9b\xddU\
+c\xd4\xa13]\x84Q\xb4\xdd\x88\x89\x0f+5\xf1\x5c\
+\xdbW\xebk;\x07}\x05\x80\x0e\xc0\xe3\x1e\xbf\xf9K\
+\xb70\xaf\xa5)|\x93\x07^\x07\xbf\xab\xd8\x15$\x08\
+\x80\x9f\x0fI\x87E\x9f\xa1\xd3}\xd3\xa9?R\xea\xf1\
+\xff\x13\xdb\xe34:\x83?PM\xdb\x16'W~N\
+\xf2%\xadSh%:\x83\xb3\xe8\xcc\xe7\x07\x07\xc5\xbe\
+\xd66\xe9\x8av\xd5\x94:t\xfb\xccv\xe8\x16\x01\xe8\
+A&L\xbc\x8fJ\xdb\x11x/\x00\x1eA\xc7\x13\xc0\
+<\x16of\xee\x8b63\xb7\xa0d\xfe\x1a\xfc\x9e:\
+\x02$+\x04\xc0\xcf\x86\x07IaZ\xde\xb0\xc7\xffO\
+n\x8f\xd3\x18\xa5*O\xdb~\x9fHQKJ\xa1\x22\
+\x09~l\xda\xaeW\x1f,\xdf:\xf8E\x01\xc0g_\
+{\x9b\xb4\xe9\xae\x9a\xf29tK\xcbp\xe8\x04\xe8\xfe\
+\x00\xa0\x9f\xda\xc4//\x05\x1d\xf7\xf4)\xc0\x97\x82\x8e\
+{\xfc\xf0\x140\x97\x85\x9b\x98s\xc0F\xfez$\xf9\
+\x06\x15\x01\xb0\x22\xa8\xdd\xe3\xff\x9a\x86fi\x14MD\
+\x0e\xbd\xba\xbam\xfc\x97\xce\x03\xdb\x8e\x9c\xbd\xf8\xaa\xb5\
+[0K\x82\xf0\xaaL\x87n\xef\xabo\x93.\x8fC\
+\xb7\xca\xa8C\xb7\xab\x5c\x0e\x9db\xe2S9\xe8\x5c\xdb\
+%\x13\xaf\x03}Q\xb2\x02\xbc\x00}\xe1F\xbe\xc7\xcf\
+\xc9?\x89\xf7\xf6ck\x17Z&\xfc\x9e\xb1\xda\x04P\
+\xf5\xf8\xbf\x81]\xd3\xd2\x99\xf5\x95\xa5\xd6\xf1\x1a\xe4'\
+\xd4\x1f\xe6\xe0\xc7\x87(\xaeIJ\x7fcm\xd2\x91\x09\
+/\xe7\xd0-\xae\x80C\x87\xaf\x93M\xbc\xe7bCm\
+\xc7C\x1f\x9dI\xdb\x11x\x05\xf4$6\xc77\x91\x0b\
+n\xf3\xc2]\xc0\x82\x00Hb$\x80s)\x01T=\
+\xfeop\xd3\xacj\x82\x162\xf13q\xac\xbc\xe7\xca\
+\xa4W\xdf&m\xa4\x08\x13\x9dX1\x87n\xb9)\x87\
+N\xcf\xc4\xab\x1d\xbaT\x03\x87.\x19\xc8\xbb$&\x8d\
+M\xf7^\xab\xa7\xed\xae\x1a\xda\x8e\xa0\xcf\xf3S\xb4]\
+\x80\x8eg\x00\xce\xf2N`3\x17$p\xab\xa1\x10\xe0\
+\x08\xff^H\xde\xc9\x9e\xe1\xe2\x18\x18U\x8f\xbf<\x05\
+\xfc5\x93@\xe3$\xb1\xaf ^\xf5\xe2\xd5\xc3\xed\xc7\
+\x14\x87n\xdfkj\x936R\x841\xcf\xa1\xdbi\xb6\
+C\xe7\xadr\xe8\x90\x04AkR\xd9D\x8f\xd2\x1a\x84\
+\xadg$\x07[\xd1\xf6\x8d\x8a\xb6\xfb\xebk\xfbl\x01\
+\xbc\xf7\x066\x13\x80\xc7\x1d\xbe\xb8\xcd\x1b\x87= \x81\
+\xd0\xea\xc5\xd2\xc4\xd0\xc0\xf04~\xdd\xee\xa3\x1cv\xd2\
+)&\xdd\xdf\x86\xedr\x9aC\x14\x07O]\xc0O\x0d\
+\xabH\x9bt\xc4\x86\x03\x5c\xbb_E\x9b\xb4N\xdb5\
+L\xfc\xd2\x88\xb2\x1d:?3\x1c\xba\xb8-G\xd8\x89\
+\xf3E|t\xbb\xe5\x8c\x85\xff\xf5C\xeb\xae\x19\x9d\x86\
+N\xbe\x80\xdf\xdf\xda5\x98\xcd\xf5O\xd4\x81\xae\xa7\xed\
+\x04\xfaL\x09t\x07\xaf\xf5\x5cp\x93'\x92M\x0c\x8c\
+\x5c\xb1v7\x0f\x01-\x95\x1e\x7f1:WLN\x91\
+\x8e\x81y\xb3\x04x\x9f\x1c\x92\xc6\x83\xec\xbc\xf8\xf4\xcc\
+\xf2\xb6I\xc7\x00\xd0v\xbe\xeb\xd8\x14\x10\xbf\xb0\xd4\x97\
+j\x93^Y\x11\x87n\xb5)\x87N?fGBa\
+\x173NM\xbbX|\x93\x05Eo\xc5\xd9<\xff\x0f\
+\xbe?\xb6h%\xb5\x1fd}\x02\x1b5\xf1h\xf7\x19\
+\xde\xeb9\xe8\xb3%\x13\x8f\xda\x8e\xa0\xe3\xc9\xdf\x02t\
+<\xfc\x11\x05{\xfb\x91\xe4x\x7f\x16\x86\xa72\xecG\
+\xb0Rz\xfc\xc3h8\xf4\x10\xaa\x0d|\xa7\x7f\x0c\xcc\
+\x9b#@52C\xe8\x904\xc51fH\x80\xf2\xb4\
+I\xaf\x05\x0d\x9f\x11\x94\xa04yx*[\x9a&z\
+\x842\xbf\x90-\xe5n\x93\xd64\xf1\xe68t+\x0d\
+3tZ1\xfb\x8e\x83gY\xf6\x85b>%\x15\xb7\
+\xb5!\x01R3N*\x99\xba\xbe\xa3p\xbea4\xce\
+\xf6\xc5\x13\xce\x90\x04\xb8?o\x9a\xd7:=\x13/@\
+\xc7\xf3\xfe\x14\xd0\x15\xe0q\x7f?\xbeg\x04V=\xbd\
+#E\x1d\xe0.\x84\xd4\xa1Tw\x19G\xd5A\x8b7\
+\xbdYV\xed\x00\x8a.\xe2\x9fz\x8cv\xf4\xe6cf\
+\xd7\xed2\xdb\xa1sZ\xb6Q\x0f|\x1c\x8f\x8e\xc2\xcf\
+\xf3u\x0f\xe1'icC\xc5\xabu\xe8\x8c\x9b\xf8\xf9\
+&b\xf6-\xfbNq\x02\xe0\xf0\xcc\x1c~\xda\xf8M\
+>*o\x9ao$\x1b\xa0\x1cn\xb5\x8a*\xa3\x8b\x1a\
+5\xef\x10<\xcc\xc1\xff\x11\xf7\x0b\xdc\xa34\xb5\x1dA\
+\xb7Cq]\xc7\xec=\xd7\xe9\x0a@XN\xef8d\
+b:\x1d\x93\xe7L]A\x03I\xfb\x1bK#_\xde\
+\xd8\xd4\x14y\xcb\xb4\x8e\x00\xe8\xa0\xe0\x80IG\xbfh\
+=\x13o\xcc\xa1\xf3\x5c\x95\xc2[\xbbp8\x948\x19\
+\xf4;\x8bv\x1b\xb1\xa7\xa0m\xdf\xd1\x07\xc0\xa7\xb8\xcf\
+\x0f\xa9\x82u\xd0k\xc5&\xf3\x8a0\xe1\x8a\x89/\x97\
+C\xb7T_\xdb\xdd9\xf0R\xccN\x0e\x1d\x9a\xff\xec\
+\x5c$\xc0\x15=\x02\xac\x8a\xdf\xc9??\x80\xbe\x9c\xda\
+\xb3\xb1\x8f\xcf\x03\xfe\xbfh\x90\xdd\xfcb|l\xbcs\
+0\xb3u\x8b\xe6\xdb\xb8\xa7\x12\xe8|3\xa7\xcbZx\
+\xactsG\x97\xe1v\xc7\xa8/\xd0\x8f\xaa\xab\x93\xc8\
+\xf4\x8b)\xa1_\x91\xf6\xd7x\x93\x83\xb3\xb4N\x14G\
+\xc7\xa4s\x97\xe1S\x97\xe2\x97qZ\xbc\xde\xa4C\x17\
+\x00\xde\xad\xd8\xf5\x83\x8c\xa7\xb3\x01\xc3H\x8bV\xd0M\
+\x08i\xd9\xc3r\x07\xbf^P\xbcyE\x98r:t\
+\x9eF\xb4\xddE\xca\xd0\xc91\xfb\xd13\x05D\x80k\
+:\x02\x1c9}Q\xec^J#s\xed@\x8d\x9b3\
+\xb1\xbf\xaf\xbb\xd5tl\xa6\xf9\xb7\x88\x14\xc69\x05s\
+\xc1\xa3\xde\xc4\xdfz\x8f\x9f\x9b\xd3\xc8\xa2}85\x84\
+zP\xc9\xdd\x9az1:I\xc7\xe4\xd5\x95\xea\x00U\
+\xde4\x01\xe4\xb99\xdf\x91\x89\x1a\x0c\xce\xe0\x09\xbe\x85\
+< \x86\x85\xc5\xef\xd7s\xe8\xc2\xe3\xd3\x99\xfb\xb2\xc4\
+\xd2\xedL\xa5\x07\x1f-\xa2NX\x0f\xea)\xc0\xdf>\
+x\xb27>\xd7\x07\xac\x85)\x87N]\x84\xf1]\x95\
+\xaa\x17\xb3{.\xdb\xcc\x9c\x03\x13\x99S 8d~\
+q<fw\x09\xdch2C7O\xca\xd0\x09/~\
+\xe3\x8e\xe3\x9c\x00\xe79\x01np\x02\xe0h\x5c\x5c\x06\
+\x86N\xf3\xbdA\xe0O\xa0\xa4\xcd8\x9a{\xcc\x0f\xa8\
+\x06\x071\xb1\xaf\x8d\xf3\x89!\xd3|n\xa1\xf4\x9f\xe4\
+\x96\xd7m\xe4\xb4t:\x1c\xcb\x8f\xbe\xf3,z\xcdH\
+\xea\xc6jG\x9a/\xc0\xaf\xf5\xba\xb7\xc8\x9b;8\xa1\
+>9(\xfcp\xa5>\xd6\xf3v\x0bvO\x99\x1f\xc1\
+\xa6\xf9D\x81\xac\xd11\xbe\xdfD\x97\xc2&\xbf\xf6X\
+'\xedj\x99KC\x91'\xd3\x0d\xc4._\xc7\xeeV\
+\x0e\xfc:\x01!i\xbc\x08\xb3X\x1d\xb3\x1bq\xe8<\
+W\xa7\xb0\xf9a[\x98o$v\x05mg\xb3\x17\xc5\
+\x19\xb4\x83\xd9yE\x01\xe8\xe6e\xe8D\xf8\x16\x10\xb2\
+M\x8f\x0082\x17\x09\x10\xbf]\xd9\xdc\xf1s\xc7~\
+\x1e\x14\xae\x0d\xa6\xd2\xf8`:\xf7h\x02y\xf2\xb3\xa8\
+\xbd\xdbU\xa3\xd5{\x22=\xb7?\x95\xd7\xc5\xb9\x00_\
+\xa9\xc0\xaf\xfaF\xc17\xe2\x08\xd6\xa3\x0f\xfb+}q\
+\xebf\x1d\xfa\xfa`\x02\x034\xe3&\x8e\x94\xc3\x90\x06\
+\x7f\xb7\x06\xad&S\xe7%\xedj\x19C[\x9a\xfa\xd3\
+h\x18\x5c\xf7\xc6\xf6\x9b\xe8z\x18\xbb~\xb5\x1c:\x7f\
+\x13\x0e\x9d{\xf0fN\x00\xd1\x166\x15\xc8\x07\x9f\xe3\
+\xf7\xe6\xdd\x86\x1c\xfd\xb1M\xb7=\xa0}%\xe3\xc0\xf7\
+\x90\xb5}\xae\x89\x0c\xdd\x8c\x05\xc2\x8b\x8fg\x99\xd9\xf9\
+\x0a\x01\x8a\x90\x00\xb78\x01\xb2\xce^\x12\xbb{\xe2h\
+\x8aZ/\x8a\xd9;Q\xfa\xb6\x0f\x91a$Y\x87\xf1\
+\x1a\xad\xde}\xe85\xadU{\x1d>\x96\x9a>\xab\x98\
+<\x03\xe8\x0d&\x83>&\xa66\xa5>\xc2\xfe\xf4\xe5\
+\xec\x09d\xb7\x9f\xda\xf7^Bf\xce\x99\xd6G[i\
+WKw2w\xad\xa9\xfb\x08o\xc4 \xf0\xa4\x8bq\
+XrYE\x18\xd9\xa1\xf3\x5c\x96\xa2\x10@\xea\x0b\xb4\
+v\x0ff\xd8\xb1\x0c\xd7\xc4\xc3\x97\xd6w\x18ds\x0c\
+\x01s\xf4\x8e+\x05\xddwC\xa9\xb6/H0\x1a\xbe\
+a\x12\xe8\xfc\xa5k|r\xbaB\x80;|\x5c.^\
+\xaf\x8f\xcd\xbc]D\xe4.\xd4T\xfb3I\x0b\xfa^\
+\x1di\xdf^w\x92\xaeD\x92\xb6R\xab\xf77\xd2n\
+\xa7\xda\xaa\x16\xb0J\xff\xf1\xb6\xfc\xa8f\x09\xbd/\xe6\
+\x08\xd1\x97\xf8\x95\x96\x83\xa1\xd4!dC\x1e\xedDZ\
+\x1bG\x90\xa5\xe8&mnhL[\xbd~\xa4\x1b\xd6\
+\x83\xf7\xe8\xfb\xc6\x18\xef\xaa\xd1p\xe8\xdc\x97n\xe6}\
+\x812\x01x:\xd5jz.\x9d\xc1\x83\xdb\xaeBp\
+\x90\xc2$\xb7p\xd3\x19:\xcf\xd2\xf0\xcd\x9e\xc27t\
+\x18e\x02\x14q\x02\xdcS\x08`\xad#@\x07Z\xbb\
+\xc5Q\xf6\x0d\xe9\xdf\x8d\xe9\xfe4%iB\x7f\xfbV\
+\xea\xfa\xfdD\xd5\xf1[\xf5\x8d\x85{\xe5\xac\x09\xc8-\
+d\x8d\xa5\x0e\xa1\xaed\x12\xfb\xd0\xc0\x82\x1e\xc4\xfaV\
+R\xcb\xf3WRs\x09\xfa\x13M\x9a\xb6\xeb\xd5\x8fO\
+(\xf7\x8f3\xe8\xaaQg\xe8\xf4\x8a0\xcb\xf4\x1bC\
+\xddi\xe3E\xcb\x9e\x96i\xd4\xbd\x8c\x9b/\xfc\xd1\x09\
+\xc3d\x8dl\xe2\x8de\xe8\xd4\xe1\x9b\x9a\x00\x19\xc7s\
+\xf8{t\x1a:)R\xca\xd85&M\x16\x9bR\xea\
+R\xd6Tn\xa4\xa9\xa71\xef\xbf\xe6+\xef\xf8}M\
+K\x81\x18.\xf91}\xb9\x06\xd4>\xd6\x94v\xf3Z\
+\x904\xa3\x96\xb2o\xa4m\x5c\x1f\x11\xeb?\xa2\x9b\xf2\
+=\xac\xa7\xfcx6\x97\xa0$\xb3\xbaj\x84C\xe7\xa2\
+\x22\x80C\xc0Z\x11\xa7\xaf\xa0%\x08\xe3\xeb\xb9\xb0\x0c\
+$pg\xd0#Z3C\xa7\x03\xddM\x01}\x8a\xcb\
+:>\x8f\xd7\xd69\x86\xed<xN\x8f\x00\x8b\xd7\xa6\
+\xf2\xf7h\xdc\xb2\xf3\x1c\xe9\xb43y\x98EM\x12\xb9\
+\x99\xe6\x03\xe9\xff\xa2\xcd\xbb\xfa_\x06\xf82Z\xc8j\
+I\xbd\x84_\x90\x86\xd7\x97N\xb9\xa8'\x99\xba\xf7\xa5\
+}{\xef\xcba%_\x02|b\xcc\xee\xaaA\x87\x0e\
+O!\x17\x04\x98\x1f\x9a\xc2\xb7\x8e\x0d\x9c\xe2u\x85\xc0\
+w\xa0H\x03\x97\xa3\xe9\xb8\xd9\xc5\xc6%L\xcf\xc4\x0b\
+\xd0\x85\xb6s\xd0\xf9\x10\xc6\xd2I\x9cx\x8a\x1a\x12\x00\
+OL\xc1s\x13h\x94\xcdI\xf2k\xfa\xd1\xfa\xdf@\
+J\xdaT\x936\xa9VSIU\x8d#\xef\xff\x1a\xc0\
+\x97\xd1B&\xda\xc7jQ\xc9XHmb\xbf\xbc\xb9\
+\xa1\xaa\xd4\x5cR\x87\xacC[<\xc0j\xb2G\x84\x0e\
+t\xf7\xb2\xbaj\xfc\x139\x01\xdcV'\xf3\x09dX\
+\xad\xb3*\x1d\x9a\xe4H\x9e\xb7%\x9d\xc13\xb6\xff$\
+\xd7Ln\x05\x00p\xd9\xc4O\x91A\xa7\xd9{B\xd0\
+_8GK\xc0\xd6\xf4\x13\xfc=\x869\x04<\xfa\xbe\
+E\xc7\x05&\x8e\xbb\xab\x22\x9d\xe8UY\x0d\xf6_\x12\
+p3:\x86\xd4\xadc\xb2T\xd3`\xbd\x9cW\xe0'\
+u\x0e\x98\xec\xce\x13AxR\x86\xa9\x0c\x9d\x88\xd9\xe7\
+\x04*\x04p\x0c\x8c\xe5\xd54e]\x9e\xbc\x93\xcc\xbe\
+5\x85b=\xc5\x1e\x87_:\x0f\x98\xcbK\xb8\xce\xa1\
+z&^\x0d\xba,\x09iYl\xdb\x81S\xb0\xd4\xc4\
++#\xd9\x1c\xfc\x1f\xc3\xf2\xb2\x98\x086\x9c<\xfd\x1f\
+\xdex\xc9\xf6-\xb2\x08\xc6\xa4\x92\xc6s\xf5\xb6\xa87\
+i\xdb}\xb8\xd5\xdc\xa5\xff\x89\xc7\xa3\xcc\x0bH2\xdd\
+U\xe3\x93\xc0\xec}\xd7\xb2q\x04<\x8eP\xb1\xe82\
+0\x8er\xf3\xb6\xe4\x9cu\xa5\x90\xab-\xfd{(\x8e\
+\xa5\xc5\xe7\xdb8\x85\x9b\x04\x1e\x05\xc3F\xe7\xa5\xebu\
+\x99L*\xda\x04JS\xb9\xfa\x90\xf9oh\xd6\xd1\xed\
+\xef~\x0c\xfc\x08\xf5!\x8d\xdd\xc0Y\xf3\xe3Z\xea\x12\
+\xcck\xecZ]5\xd3\xbdb\x19\xd6\xe0Em\x01<\
+\xfem\xb4W\xd1\x93r\x11\xc3\x09\xf0\x16R\x08\xd6\x8a\
+\xac\xc1\xe8\x81S<\xb3\xf1\xb5c\x9d\x82\xf9\xbc}5\
+\xf0\x13\x9d\xa2u\x03\x98\xa5\x14v8E\x14N\xe4S\
+\x0c\xa6\x1c\xc8\x8f\xe4\xf7\xd4~+\xd2\xb6\x7f1\x8b\xa1\
+7\x96U\x1c`\xd5n\xc0\xf8\xc5bw\xf2\x04\xd70\
+f\xeb\xbe\x86Mv\x8f\xe4b\xe3ZZM\xa3\xa2\xd2\
+j\xd2JW:\x83x\x04%]ZHs\x03\x1a\x12\
+P\x22s9\xa1\xc7\xe8\x19i\xe2=\xf0\xfc\x1d\x9c\xb9\
+/\xa4\xb4h3\xe7\x82T\xbb\xf0\xa2\x84\x96\x0d\x81/\
+\x8a6\x0d^\xd7I\xe7\x7fG\x02\xc8\xb3\x0a\xeb\x933\
+\x85\x9a;\x02C,<Ul\xc4\xac\xa0\xe7\xfa[\xd4\
+\x83\xfe\x00\xf0\xb2I#\xe5\x89Y\x93\xc8\xd9\x13\xe7\xed\
+6\x92\xc2\xcezt\xfd\x9fh\xcdF\x00'}\xdf\xa2\
+\x93g\xf7Q\x0e\xbby\xc1\xc6\xde\xe7\x0e6e\xa0\xf4\
+\xb1\x9ew\xb6\xc9\xaf=\xa34R\xd8V\xb4\x13\xaa\x83\
+\xaabW\xeb\xad\xcc\xde\xfdE|\x06\xf9\x00\xabo\xa5\
+C*F\xd2Mw\xa2\xe9X\x01\xd44\x81\xa0\xf8R\
+\x987G51\xab\x13\xe5 \xbe\x95\xf2\xea\xb5\xa5\x83\
+0\xbe&\x92u\x22\x12X\x933\xe7BD\xf2\xa5*\
+\xa5\x17\xfdM\xa4\xb0GS\xbc\xdf\x95\x96\x92\x1f\x89P\
+u\xa5\xd1u\xef\xd6\xfe\x97\xb4\x02\x1f\x12h\x8d\x88\x04\
+\xdd\xc8\x91\x1bO ;\x12 3h\x9d\x9f(\x0dN\
+\x92'f}\xad\x1a'\xf7\x9e\x94\xab\x10$hF\xeb\
+w_\xf2\x17\xc6\x13\xd0SI&\xd3\xdfF\x10\xb1\xba\
+J\xc3\x1b\xbe\xa55\xbf\x8e4\xbc\xb2\xea[S\xb4\xf9\
+\x8b:\x83\xf2\x01V\x9fSb\xe8\x17\x02\xa9'\xb5H\
+Y\x12 \x96\xa4\xbd}\xa4\xc1I\x02\x98\x7fj\x9c\xa4\
+YU\xe3,\x84\xfa\x14\xba\xb5\xa4%\xa1'\x01=\x90\
+\xa4\x1f\xfd\xad#=\xa7\xa94\x9f\xa7\xaej0S\x95\
+w\xe0\xbf\xba\xa5@\x90\xe03r\xae\x1a\x13\x11ZS\
+\x9d\xa1\x03\x91\xa2\x8d\xc6\xe0\xa4\xbaF&fU\xd6\xd8\
+\x01]\x87\xb4X8\x87\xbf\x10\xd0\xad\xc9\xc47\x97\x0a\
+V\x0d\xa5\x1c\x7f\xc5\x073\xbd\xfb1\x9b\x04\xefI \
+\xd5\x93\xb6\xa97\x22\xaf\xbe\x91\xaa\x9af\x0c\x18\x1d8\
+\x1ag#\xc9s\x02?\xa7\xf7\x10\xd1BC\xba\xb68\
+\xa8\xb9\xce+\x9d\xcf\xf3\xee\xc7\x18\x09,h~!\x0e\
+\xb1\xb4\xc09\xb78\xec\xf8\x03\xe5\xa4s\x0b<\x01\x0b\
+\xe7\xdf\x7fJ\xbf\xf1\xff\x1f\xe1\x89\x188\x13\x1f\x8fG\
+SNC\xe5\xaf\xad\xac9\x22U\xff=\xaa\xd1kj\
+J\xef\x81\xe3\xd5\xeb\x90|\xa4\x1c\xb0\x8dg,\xf3\xcf\
+!\xae_\xd9\xd4\xf5\xdf\xfd\xbc\x82\x9f\xfa?\xfcR\x09\
+\xa42HU\x90\xea \xff\x00\xa9\x01RS\x92\x1a\xf4\
+w|\xbc\x1a=\x1f\xa5R9\xae_\x99^+\xde\xe3\
+=I\xfeAR\x8d>\x87\xd9\xd7\x7f\xf7\xf3\x8a~\xbe\
+\xfa\xbeY%\x90\xca$U@\xaaJREz\x0c\xa5\
+\xd2K^_\xbcG\x95Wq\xedw?\x7f\xc2\xcf?\
+\xbfmRI\xc8\xbb\xbb\xf1\xee\xe7\xddO\x05~\xfe?\
+\xaeY\xd8\xf4\x1d\xfb\xf58\x00\x00\x00%tEXt\
+date:create\x002010\
+-02-10T01:44:25-\
+06:00\x0e\xe0\x0c\x1b\x00\x00\x00%tEX\
+tdate:modify\x00200\
+4-05-23T19:30:34\
+-05:00\x17\xb7\x8ah\x00\x00\x00\x00IE\
+ND\xaeB`\x82\
+\x00\x00+\xc0\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3>a\xcb\
+\x00\x00\x00\x09pHYs\x00\x00\x1b\xaf\x00\x00\x1b\xaf\
+\x01^\x1a\x91\x1c\x00\x00\x00\x07tIME\x07\xd7\x0c\
+\x1b\x16\x028\x83\x98\xbev\x00\x00\x00\x06bKGD\
+\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00+MID\
+ATx\xda\xec}\x0b\x98\x1dGu\xe6\xa9\xee{\xef\
+\xbcG\xa3\xd1s4\x92,K\xb24zX\x96%[\
+\xd8\x18l$\x1b\x1c\xb2!` vx\x85\x04\xb0\x9c\
+\x00\xbb\xd9\x0d!l\xbe\xddM\x80\x04\x16\xf2e\x13v\
+\x93\xfd\x92\xdd\x95\x8d\xf1\x02\x1f\xb6\xc3\xe2\xe5e\xcb\x18\
+Y\x0f\x83\xf1\xfb%\x8d\xde\xb2,\xcfhF\xf3~\xdc\
+\xb9s_\xdd\xb5\xe7\xd4\xdc\xfa\xaa{\xce\xed\xee{\xaf\
+\xee\x05\x99\x9dc\x97\xba\xbb\xba\xfbvW\xfd\x7f\x9ds\
+\xeaTu\x0d\xcc\xc9\x9c\xcc\xc9\x9c\xcc\xc9\x9c\xcc\xc9\xff\
+\x97\x22\xa0B\x91\xe0\x97\xdb\x01\xacM\xb8\xfd\x1dL\x1b\
+aNj!\xdd\x98\x1e\xc4t\x04\xd3\x03\x00n5\x80\
+\x14\x95\x00\xdf\x8d`\xb7\xe2\xb6\x1e@\xa40\xad\xc4\xfd\
+S\x85}\x98\x93\x9aK#\x80\x5c\x8b\xe9\x5ca?\x8d\
+ib\xa6\xe1\xb9\xa2F\x04 \xc6\x89\xab1\x0d\xcf\xb4\
+t\x11\x03\xb0S\xcd\xcd\x96\xed\xbaVFJ\xcb\xb1m\
+\x01\xb1\x98\x88\x03@\x0c\xe6\xa4\x16\x92\xc7\x94S;y\
+i;\x8e\xac\x13\xc2u,\xcbmL&]<\xe7\xa0\
+f\x90\x0b\x00\xdc\x17p{;\xa6\xaa\x10@\x16\xae\xeb\
+\x9bi\xe1\xb1\xb6D\x22\xe6\xdav\x5c\xc6bq\xe98\
+q\xb7\xae.\x1ekl\x8c\xdb\xf1xB\x02\x08\x1b\xe6\
+\xd4@\xad\x84\xb0p\x80*\xd9\x96\xd0\xd9)\x1d)s\
+\xd0\xd3\x93\x96CC\x19\x91\xcf\xe7,\xc7\xc9\x8de\xb3\
+\xf9F\xa4H\x07]\x8e)\x0a\x8bX\x89$\xb1\xd2\x00\
+\xf1\xfa\x96\x96D^\xcaz\xb9x\xf1\xfclG\xc7m\
+\xd0\xd0\xf0\x0e)\xe5\x95\xe9T\xaa5;:\x9a\x00)\
+k_\x09\xbf\xa4kd\x85\xef#\xab\xfe^<\xdf\x8a\
+\xc7\xa1\xb1\xb55k77O\xd9\xabWw\xdb\x00\xfb\
+\x12\xbd\xbd\x0f\xe4\x7f\xf1\x8b\x81\xfa\xba\xbatzr2\
+[P\x16.\xddZ\xb1\x06\x90\x05\xf0/ \xf8\xf9\xe6\
+\xe6\x86x\x22\xd1\x94\xbb\xf6\xda\x0f\xda\x1d\x1d\x9f\xb1[\
+Z\x16\xbb\xb9\x1c\xb8SS\x90\xbdp\x01\xd2\xe7\xd0\x22\
+Iy\xd1\xe0\x8a\xda\x00^98\x95\x83n\xceW\xf9\
+\x9cUW\x07-\x9b6A|\xfe|\x8855\xa9c\
+7\x9d\x1e\xce\xf7\xf5\xfd]\xe2\xa7?\xfd\xdf\xb9d2\
+\x19K&\xa7\x97\x14H B\x1e\x13\x8b\x00\x9fT\x7f\
+\x5c655\xc4\xda\xdb\xe7\xbb7\xdd\xf47\xcd]]\
+\xef\xb3\x12\x09\xc8\xa7R\xe0LN\x82\x10\x02\xc4\xd0P\
+\xe5\xa0\xd7\xa6\xa5DK\xad\x00\xaf\xdd\xbb\x9bk\x84\x00\
+\xbb\xb1Q\x81oSjn\x86xs\xf3\x02g\xf9\xf2\
+/M\xc6\xe3\xdb\xe2\x0f?\xfcYGJ\xe8\xc3\xc6\xd9\
+\x01\x90\xa5{\x82H\x10\x0b\xb3\xfb\x83t\xbe\xa5\xa5N\
+\xc4b-\xf2\xado\xfdj\xeb\xce\x9d\x0a|'\x99\x84\
+\x98\x10\x9e\x1b$\xb8\x8eSS\x15/\xab\x0f0\xff\xcd\
+\x1a<[\xd6\x80\xd4BJ\xb0\x1a\x1a\x08x\x22\x00\x11\
+A\x11\x22\xbe`\x01B!\xdf7\xd4\xdf\x9fm:p\
+\xe0s\x88\x9d;89\xe9.\x02\xc8\xcb\x00\x7f \x16\
+f\xf7\xf1d<\xe58\x8d\xd6\xb6mw\xb4^y\xe5\
+\xfb\xe9!\x22\x1eW\x0ct\xf1\xe1n&\x03\xaeeA\
+l\xf5jX\xb8p!\xc4\x17/\x06\xc0\xe3*Hm\
+[tm\x9f_\xf3\x86\xe0&\x93J\xed\x03\x99\xe0T\
+\x8a\x9cB\x10\xd9\xac\xc2\x830\xaa_\xb5\xea\x03c\xe7\
+\xce=\xddt\xf6\xec\xfd\xf5\x08\xbe\xc7\x17\x90%\x11\x80\
+\xfa\xf4m\x08\xe5tSS\xa2\xae\xb5\xb5M\xae\x5c\xf9\
+\x19\xab\xbe\x1e\x1cT)b\xd92\x80\xae.\x10\xf8\xb0\
+&\xb4A\xa2\xb5\x15&{{!36\x06\xd3\xd9,\
+1\x10\xe6\xa4\xb6BX\xc4\x10\xe8\xe6\x8e\x0e\xa8\x9f7\
+\x0f\xb2##\x90A?L\x9e:\x05\x12\xc9\x11\xc7\xc6\
+(\xdb\xdb\xff,\xd6\xd3\xf3H\xb2\xa9)\x8d\xb8\xe5\xc6\
+\x02\x1c\xc2X\x10\xf3\x86\xe8\x9c\x94u\xa9\x85\x0b\xdf\xd3\
+\xd2\xd6\xb6\x84\x98\x96ok\x03\x81\xaa\x87\xfa\xfau\xd8\
+\xeaGN\x9e\x84\xd1'\x9f\x04\xe9\xba0'\xbf|\x19\
+C\xc0\x9b\xb1A.\xbd\xf6Z\xc8\x0c\x0f\xc3\x94m+\
+s\x1cC\xcd`\xcf\x9b\xd71\xd4\xde\xfe\xdb\xed\x03\x03\
+\xf7\x01@f\xed\x8c\x19\x00Q\x8a\x06\x18\xa3\xd6\xdf\xd8\
+h\xa3\x9dO\xe4[[o&\x80S\xd8\xba\x01S\x0c\
+\x1f\xd4\xb0f\x0d\xf4=\xfb,$\xcf\x9f\x879\xf9\xd5\
+\xcadO\x0f\xd8h\x0e\x16l\xd8\x00\xe3/\xbf\x0c\xd3\
+\xa8\xa5\xed\xe9i@\xbf\x0d\x9c\xfa\xfa\x9b\x11\xc3\xef\x10\
+\x96c\xa9\x94\xd5\x06\xe0Fj\x80/\x00\x88\xdd\x98\xb2\
+\xaek\xa3mI\xb8 \xb7`?\x1fr\xe4\xf8\x0d\x0d\
+);?\x8e\xc0\xd3\x83\xe7\xe4\xd2\x90\xf1\xd3\xa7\xa1e\
+\xc5\x0a\xb2\xfd0\xf6\xfc\xf3\x90Es\x9cH\xa7\xc1\x11\
+\xe2*\x07 AXN\x03\x88\xff\x8a\x89\x94|(\x01\
+\xfe\x92\xbc\x7fL\xf5\x96e\xb9R\xc6\x9ct\xa6u\xa2\
+\xfb\x08@C\xa3\xf2:\x1b\xd7\xaf\x87\xe1\xe3\xc7\x01\xe6\
+\xd4\xfe%#.b1~\xe6\x0c$\xd0\x1f8\xbfw\
+\xafr\x0e\x85\xe3\xc0\xc2\xa6\xa66\x89\x18\x12\x96\x08\xb4\
+ l?\x1fB\x00\xc3(\x00\xd1h\xdb\x16\xe4\xf3\xb1\
+\xa9\xfe\xbe\xba\xb1\xbe~\xd02\xff\xfd\xef\x07'\x9f\x87\
+9\xb9\xb4\x84\x9c\xf0f\xd4\x02\xd3\x14\x9f)\x98\xe6\xfa\
+e\xcb\xea\x00\x09\x80\xe6\xc0\x22L\x17\x95\xda\x0d\x14\x98\
+\xf2R\x0a\x89\xbb\xd3\x93I\xc50-\x0e\xc0\x9c\xd3w\
+\x09J\x1eU>\x8e\xc7\x80@\x7f@\xcbT\x12\xb1S\
+a\x03)D9\x91\xc0v\x001N7Ii\xe5\xd2\
+i\x7f\x1f4\x93\x99\xeb\xea]\x82\x22\x1d\x07t\x840\
+W\xc8\xcb\x12v3\xa6\x5c\x10\xa6e\x85\x82]Pw\
+\x88<\xaa{9\xebAs\xf0_rb\x1a\xa5\x10\xa0\
+\xf1!\xec\xdcDBp\xbc\xa2}\x00\x05>%\xaf\xfa\
+\x879\xf5\x7f\xe9J\x11\x5c\x1c\xcc#\x0c\x01\x13a:\
+\xbf\x14\x02\x9c\xc24\x8d\xa9\xb1@\x00\x1f\xf8\x05\x02\xcc\
+Q\xe0R\x13\xd30\xa5\xd1\x00j\xab|\x00L)\xc2\
+\xb6\x14\x02\xf4`ZP0\x01\x16\xfe/\x01j\xaa\x01\
+\x1cL\x8f\x9f=\x0b\xcf\xbe\xf6\x1aLb\x00\xe3\xf2%\
+K\xe0\xb77n\x84\xc5\xe8\xcc\xfc:I?\xda\xe3\x1f\
+vw\xc3\x99\x81\x01hE;\xbd\x03\xfb\xec7\xad\x5c\
+\x09vU\x09\xc0:\xfa\xb4o\xb9\x1a\xdbRM\xc0<\
+LycW\x8cTY\x03\xd03\xee{\xe9%\xe8\xc5\
+.LKK\x0b,\xc6q\x85!$\xc1?\xfd\xecg\
+\xf0\xc1\xed\xdba\x0d\xe6\xfd:\xc8q,\xdf\xfd/\xbc\
+\x00\xf5\x18F_\x82\x04w\x1c\x07\x0ea\xf0\xe6,\xc6\
+\xf0?\xbce\x0b\xc4\xaa\xe4\x03\x88\x82\x060\xe0\xab\x13\
+`\x170\x1d.\x95\x00Y\x00\xea\x01\x08\x04\xdab\xa3\
+SU\xd2\x009L\xf7\x1f;\x06yl\xe9\xef|\xe7\
+;\xe1\x8a+\xae\x80:\xdc\xef\xef\xef\x87\x17\xb0\xb2\x1e\
+:z\x14nCM\xb0\x1a[\xcb\x1bYNNN\xc2\
+\x0fO\x9c\x80-W]\x05\xdb\xb6m\x83\xc5\x18IM\
+\xa368\x81y\xcfc\xd4\xee~,\xe7\x1d8\xb8\x16\
+\x93\xf2b\x09\xa01\xf2m\x09C\x0b\xb1$L\xa1\x0c\
+\x02@\xbc\xe0<\x143\x01\xb2\x0a\xe0\x7f\x17\x072\x00\
+#\x8b\xef\xba\xf9f\xb8\x0a+\xa7\x09\xc7\xb4\x85\x10\x8a\
+\x08\xabq\xa0i\xdf\xbe}\xf0#\x8cm\xff\xd6\xda\xb5\
+\xb0\x0aG\xbf\xde\x88r\x1a\xe3\xf2\x8f\xbc\xfa*\x5c\xbb\
+c\x07\xec\xda\xb5\x0b\x96\xe1\xc0M,\x16#\xb0T9\
+\x97/_\x0e\x8f=\xf6\x18|\x17\x07\xd5\xde\xbbf\xcd\
+\xc5\x91\x80\x1c\xbe\xe2C\xc9\xc2\xc5\x94+wF\x90\xf0\
+ld\x15\x09\x90G\x90\x1fB{O\xc3\xc8\xb7\x16\xc0\
+o4\xad\x5ci\x81\xcb.\xbb\x0cn\xbd\xf5VUY\
+{_y\x05~\x03\x8fW&\x12\xf0F\x923h\xca\
+~\xf2\xfa\xeb\xb0\xfd\x9ak\x14\xf8\x1d8tk\xdb\xb6\
+1\xb3\x18\xb6\xdd\x8ef\x8e\xcaH$\xf8>\xfaA\xef\
+Z\xb9\x92HP\xb9\x0f D\xb1)v\xa2\x82I\xa1\
+\xc6{\x94U$\x00\x81\xff#\x1cD\xb2\x10\xfc]o\
+{\x1blA\xfbg\xc07B\x15E\xad\xe5\x96[n\
+Q\xfb\x8f\x1d>\x0c\xb7tv\xc2\x0a\xac\xac7\x82\x9c\
+\xcdd`?\x9a\xb2m\x08\xf0\xdb\xb0\x9cK\x97.5\
+\xe0\x1bQZo\xeb\xd6\xad@\xb2\x7f\xff~\xf8qo\
+/\xfc&\x96\xdbv\xdd\xaa\xf5\x02\x1c\xde\x9b\x8b&@\
+\xbd\x0e\xf9V\xd1\x04\x10\xf8{\xd1\x03\x16\xc8\xfc]7\
+\xdd\x04\x9b7o\xf6\x83\xcfI\xa0Z\xcd\xce\x9d;\xd5\
+\xfe~\xf4\xa0w\xa2\xfd\xec\xb4,\xb8\x94\xe5\x5c.\x07\
+\x87p\xc8|\xeb\xd5W\xc3\x8d7\xdeHN\x9f\x01\x9f\
+\x0b\xd5\x81\x22\x81\x85\xe5:x\xf0 \xec\xc5\x89\x1d\xef\
+X\xb4\xa8l\x12\x18\x87\x9d\x9b\x00A\x98\x96J\x80U\
+\x05'P1G\xcab&\xa0\x22\xf0\x1fC\x8f\xd7B\
+\xf0oz\xeb[a\xe3\xc6\x8d\x0c\xfc0\x12PE\xd2\
+\xfe!t\x98n\xc4YH\xcb\x84\x80KQ^w\x1c\
+\xf8\xf9\xf8\xb82k7\xdcp\x03\x03?\x8c\x04\xa4\x0d\
+\x89\x04\x87\x0e\x1d\x82}\xa3\xa3\xb0\x0b\xeb\xaa,\x12\xe8\
+k\x85\xf0;\x82\x88a\xbe\xa0\xcdW\x95J\x80\x13\x98\
+\x5c\xea>\x04\x98\x80r(@*\xe9 MR@\xe0\
+\xa8R\xba\xba\xba\x18\xf8\xa5\x90\xe0\xadH\x1c\xaa\xa0'\
+q(\xfaz\xec\x1e.\xbd\xc4\xc6#\xceK\x09O%\
+\x93p\xe5\x95W\xc2\xf5\xd7_\xcf\xc1\x8f&\x01iE\
+\xe5\x08?\x89\xb3\xac\x0e\xa5Rpc}=\x01[\x96\
+\x06\x90|\x22\xaa(`\x09\xe1\x04\xe0'\x84S\x85@\
+\xd0kX\x08\x0b\xc1\xbf\xfeMoR\xe07`_\xb8\
+\x5c!\xe0\xa9\xfbD\x04\xa2J}\x06\xbbP;\xa8O\
+\xed8\x97\x06\xf8\x98\x9eE\xbb\xbf\x09\x01|\x13\x96\x13\
+\xdf\x95\xde\x99@!@\xcb\x22\xc1\xa6M\x9b\xd4\xbdO\
+?\xfd4\xf4\xe0v96\x9ep\xe1\xb8H\xbf/g\
+\x11\x96e;\x81\xf9\x5cN;\x0f\x17\xa5\x01\x12\xe8\xc1\
+_\x8f\xdd\x9du\xeb\xd6U\x00\xbea6\x01\xbf\x08m\
+\xe3u\xd7]\xa7*\xe89\xecF^\x83N\xe1\xc2_\
+\xf1\xdc\x84\x0b\xf8./\x22\x117\xa0Y\xbb\xf6\xdak\
+\xe9\x1d\xbd\xe0WD\x82\x0d\x1b6\xa8\xf2\x8e\xe0\xb8\xbe\
+\xdb\xdd]\x1e\x01x\xdcF\xe41\xc5\xcb!\x00q\xae\
+\x0e\x13\xeb\x05T\x10\x08\xba\x12\x9d\xa1y\xed\xedP_\
+__\x09\xf8\x8c\x044\xfd|\xc7\x8e\x1dj\xffE$\
+\xc1V\x22A6\x0b\xbf\x0a\x19\xc0g\xbf\x8c\xdb\xf5]\
+]\xd4\xa5S\xef\xa6A\xd7[-\xe5\x92`=\xce\xbc\
+\x9aD2\x0d`\x0f\xa8$\xd1D\xe3f@\xe5N\x95\
+\xab\x01\x94\x13X\x85^@\x13\x82Ca^\x0a\x7f\xba\
+\xae[!\xf8&O\x93\x80*\x9cZ\xdaa\x9c\x0a\xb5\
+9\x91\x80\x05\xe94\xfc2e\x10\x9fy\x04\x09\xb0~\
+\xedZ\xe5\xc5/X\xb0\x80\xde\x87\xbd\xb3!\x82\xda/\
+\xd9\xe4\xb5bW\xd9\xe9\xef\xa7\xfa.+\x0e`\x86\x83\
+\x0d\x01\xdcrM@KaDPV!\x10\xd4\x8f\x11\
+\xbd\xc5\xd8B\xe2\xf18\x85@\x89\x04e\x82\xcfI@\
+\x15D$\xb8\x1a\xb5\x0b\xed\x1f\xc3 \xca\x06\x1a\xeeD\
+\xc7\xe9\x97!C\xa8\xcd\x8ec\xbab\xf5j\xe5\xbd\xb7\
+\xb7\xb73\xa0=Z\x80\x9d\x8b\x02_iK\xbc\xbe\x1f\
+c\x03\xb2\x02'\xd0l\x0d\x86-\xe5\x10 W\xe86\
+\x08)/:\x104\x85v\xec\xd4w\xbf\x0b]\x1f\xf8\
+\x00\x15L\x93\xa0b\xf0It\xa5R\xab\xa3.\x17U\
+\xdaI\xfc8u\x1d\xe6\xcfC\xa7\xa9\x962\x82~\xcc\
+)\x0ca\xafY\xb5Jy\xed\xf3\xe9\xe3\x18!\x02[\
+~\xb4&\xe0\xe0St\xf0\xd8\xfd\xf7\xc3TooE\
+\xdd@\x1ff\x84!>0W\xceX@\x0a\x93M\xa9\
+J\x81\xa0\x81\xe7\x9e\x03\x81\x85[\x7f\xc7\x1d\x8c\x04\x0c\
+\xfc2I@\xad\x8f\xba^d\x1a\xce`\xe8u5\xe6\
+\xb5NL@-d\x0c#w\xaf\xb6\xb5\xc1jtl\
+)\x96\xd1\x86\xfb\x1e\xf0\xc3\x81\xe7\xfb\x81\xe0\x9fx\xf0\
+A\x18x\xe6\x99\xca\x22\x81\xc5\xc7\x02 U\xae\x06\x88\
+\x11\xf8\xbc\x1bH\xc0U\xe6-?\xf5\x94Rk\xeb\x7f\
+\xf7w\x19\x09\xca\x04\x9fU0\xb5B\xdd}:\x87\xa1\
+\xe6\xcb\xf0|\x0b\x06d\xaa)\xe3\xe8\xc7\x9cC\xb3\xb3\
+j\xc5\x0a\xea\xceR,?\x08|\xb6\x0d!\x01\x07\xff\
+\x81\x07\xa0\xff\x17\xbf\xa8|>\x007\x01\x16\xe6\x95\xae\
+\x01\x9e\xf38\x81v\xb1\xd0\xe2E\xcc\x07\xe8\xc3\x82\xd1\
+\x8bv}\xf0\x83^\x12T\x02>\xabx\x02\x84\xbaO\
+T\x99\xbdX\x91\x9dx\xae\x09\xc7\xe1\xab!I\xfc\xed\
+^\x8c\xe7\xaf\xec\xec\xa4\xee,9h\xc1-\xdd/\x91\
+$ \xcd\xa5\xc1?\x8ej\xbf\x0f\x83@\x15\x89\x94^\
+\xf5\xcf\xc6\x03\x14\xb6\xa5j\x80D\x81In\x0df\x04\
+\x11\xbb\xa9\xf0\x1b>\xf4!M\x02\xea!P^\xe5~\
+\x81\xf1\x9c\x09 U\xa9\xfdX\xa1\x1d\xd4\xa5\x1a\x1d)\
+\x7fU$\xe9\x05\xbf\x0d\xfa\x11\xf8\xe58H\xb3v\xed\
+Z\x0d>{~\x08\xe0\x81\xe6\x80\xde\x99F?\x95\xcd\
+\xff\xcew\xa0\xff\xe7?\xbf\xb8\x09!\xbc\x17\xa00\x14\
+\x05Le9\x04\xc8b\xb2\x00D-f\x04\x11\xcb\xe9\
+\x857~\xf8\xc3\x8a\x04\xd3\xd3\xd3D\x02\x06ri\xe0\
+s\x12\xacY\xb3F\xed_@\x22,\x01\x09\x8d#\xc3\
+\x15}\xef=5\xbf\x1d\x06/[\x05\x9d\x18\x8a^\x85\
+N_sss1\x13\xa4\xf3J6\x01$\x1a|\xea\
+\x1d\x1d\xfb\xf6\xb7\xe1|(\xf8\x95G\x02\x89\x12n\x01\
+\xd3L9\x1f\x86\xc8|^\xb8\xb6-\xcc\x8fVwN\
+\xa0b;\x91\xe0#\x1fQ\x11\xc2T*E$\xa8\x10\
+|N\x82\xcb/\xbf\x5c\xed\x0f\xc6l\xd5\x04\xea\x87\x06\
+C\x14\x00\xe7\xc7t\xfbB\x18^\xb3\x16:\x16/\xa6\
+\xf9\x09\x14\xcb\xa0\xdfc\xcf/\xc7\x04\xe8\xfb\xb4\xcdO\
+$\x12p\xf4[\xdf\x82>\x9c\x02w\xb1\x22\x03\x06\x83\
+0W\x10\x96\xa2\xfc\x09!zF\x10'\x80\x84\xea\x88\
+*8\xfe\xde\xc6\x8f~\x94H@\x9a\x80\xe6\xb2W\x02\
+>S\x85\x04\x18\x01G\x95=\x1c\x8bC;H\xa8\x1f\
+\x1c(iE\xac\xd4\xc2E0r\xc5zX\x82\x91\xb8\
+\x15+VD\xb5\xfc\xb2m>E\xfa\x08\xfc\xeeo~\
+\x13\xfa\x9ex\x02\xb8T\xee\x03`\x81\xfd\xf8T2\x1f\
+\x80 p0\x05G\x02\xab'\xe7\x91\x04T9\x9b~\
+\xff\xf7iK\x9a@\xf7\x0e\xe8\xf8\xa2\xe2\x04\x04\x1c\x01\
+H$\x18\xb5I\x13\x1c\x81\xc4@\x1f\x84Iz\xe1\x12\
+\x98\xdc\xb0\x19\x96,\x5cH\x93R\xf4T\xb5\xa0\xf7)\
+\xcb\xfb\xa7\xf7\xa0\xdfS\xe0\xdfw\x1f\x9c/\x1b\xfc\xe8\
+H\xa0\xe0>\x80\xc20_\x0e\x01\xd2\xd4\x0d,t!\
+X$PJ\x95\xaa)T\x11\xf4\x9b\x9b\xff\xe0\x0f\xe8\
+\xd0k\x0e*\xf6\x0bH4\x09h\xee\x1d\xb5\xbcQ4\
+\x07\xf3\x0eK\x88\xf7\x9f/\xba\x1cYfI\x07$7\
+]\x05\x8b\x10|\x9c\xc5C-\x95\xa9\xf6\x88\xae_\x10\
+)\xe8\xf9\x06\xfco|\x03zq\xdc\xbf\xaa\xe2q\x02\
+gafY\x1a\xd3r4\x805k,\x80\xb6\xc2\xb6\
+k\xf6u\xd0y\xaa\x10\x22\xc1\xc7>\x06$SSS\
+D\x82\xca\x9dB#d^hN\x81j\x81\xe3Wm\
+\x87\x16*x\x7f\x0fx%\xbbd\x19\xa4\xf0\xdc\xc2\xf6\
+v\x1a\xce\xa5{\x82Z=\x039*\x8f\xbc|\x02\x9f\
+\x9c\xbe#\xf7\xde\x0b\xbd\x07\x0f\xd6\xe4\x13qEjK\
+\x14\x9d\x14J\x98\xc6\xca]&\xae\x90\xfc\x5c\x92\xb2f\
+\x9f\x87Q\xc5\xd0o_\xf9\x89O\x00I2\x99\xac\x0a\
+\x09\x08\xf8\x86\xc2\x9c|\xda\x9f\xd8\xbe\x03\x1a\x9f\x93\x10\
+\xeb{\x1dHr\x1d\xcb!\xbd\xed:hok\xa31\
+\x06r\xd0\x02\xc2\xb5\xac\xe5G\x9a\x00z\x1ei!\xfa\
+\xcd\xc3\xf7\xdcS\x0b\xf0\x8d\x0f\x00\x82\x22\xae\xcc\x04@\
+\xb9>@ca\xea\xf6\xec\xf9\x00\xc2\x125\xd3\x00F\
+\x13`\x05I$\xc1\x9d\xbb\xa9\xd5h\x12T%XD\
+ \xe8\xf1\xfa\xe4\x8e\x1b\xc0z\x86L\x0f\x96u\xc7[\
+\xa0\xad\xb5\x95\xc2\xca\x1a\xfc0{\x1f@\x04v\x1d\xa9\
+}rF\x0b\xe0\xdf\x0d\xbd\x07\x0e\x18\xac\xaa\xaf\x02H\
+e\xb38\x80\xd6\xe2\x84\xa9[\xb2\x09\xf0;\x10&\xc6\
+,,pi\xaf\x16\x04\x10f\xd3\x87$\xa0\xedf$\
+\x81\xd6\x04\xd8;\xa8d\xf8\x98\x81Ej\x98\x06\x91\x08\
+\x9c\xa9\xeb\xdf\xa6\xce\xb5\x22H\x14\xd7\xa7s\xfa\xfa\x08\
+\x89\xd4\x02\xa4\xf6\x09|\xd2<G\xee\xd9\x03\xe7\x0f\xec\
+W\x95)M\xc0\xbe\xaa\x22u/@Xlv\xb7\xd0\
+f\xbdd\x02\x18\xb5a\xf9\xd8dY\x98I\x0c\xab\xbe\
+({\xe3!A\xff\x13H\x02\xcc\xdc\xf4\x89\xbb\xa8p\
+\x86\x04\x95;\x85\xb4\xafI@\x80\xeb~=\xc5\x0d\xc8\
+9+e\xbc\xbe\xa4p/\x05w\x14\xf8\xd8\xf2\xbb\x11\
+\xfc\xbe\x83\x08\xbeg)\xdc*s\xc0\x94\x8d~\xdd\xe2\
+\x91@(\xe0\x99\xa8 \x0e\xa0Dz\x08 \xabl\x02\
+\x84N\x9e\x07\x8aBm\xf5\x1f:\x00\x82\x82Ew\xfe\
+!\x90LNN\x96J\x82\xa8<\x02\x9cH\xa0[k\
+\x98\xe9\x882\x03\xcc\xe1#B5b\xcb\xef\xfe\xfa\xff\
+\x82~l\xf9\xde\x89\x15R\xfa\x9d,\xb7z\x0c\xf08\
+\x81\x5c\xb1\xcar|\x00\x07\x93\xadv\x1c\xcb7\xb0\xa0\
+|\x00\xb7j\x04\x10^\x06H\x93g\x9a\x0a\x91\x80*\
+\x10\x83E\xbb?\x09\x9a\x04\xb9\x5c\xae\x1c\xf0\xc3\xc0\x8a\
+\xea\xda\xb2\xfc \x22h\x9bO\xa4\x22\xf0\x8f\xde\xf3?\
+\x14\xf8$B\xdb}\x93\xfcj\xa0\x0a\xda`\xe9\x8e\x1d\
+Eq\x91\x88\xa1\x82\xb2\x1c\x02d0\xd5S\xf9\x8a\xf6\
+\x02p{\x91\xc1 1{G\xf2}\x01&\x0d<\xb1\
+_\x9d\xd0$\x98\x98\x98 MPi\xb0(\x1a\x5c\x1e\
+O\x08#\x85\x0f\xfc\x06\x02\xff\xee\x7f\x86\x0b\x07\x1f\x07\
+\x0d\xbc\xb6\xfd\xc2\x0f\xbe9W!\x09h\x95\xd0%\xf8\
+\xe9\xd9\xe2\xed\xd8\xb5]\xb9\x12\x06\xf0c\xd3\xe1\xeen\
+6%\x8c\x12a\xdaP\x0a\x01\x86\x0b\x01\x03\xcbt!\
+@\x9a\x82V\xcd\x04\x08\x13k\xe6\xea\xdf\xf7\xd0\x99\xfd\
+\xc1'\x1e\x87c\xb8\xd3u\xe7\xa7\xc8h\xc3\xf8\xf8\xb8\
+&A\xa5&!\x8a\x08\xa1\xa3z\xfa\xbc\xd6$4'\
+\x81\x02G\xc7\xef\xfe'\x188\xb8\x8f\xa9}U\x8c`\
+\x0dP\xb2-\xa0%b\x17\xe1,\xa8%\x08z\x1b\x8e\
+Nf\xb0\x1e\xce>\xfc0\x9cz\xe8!\x98\xec9\x07\
+R\xba\x8c\x00\xda\x09 l#\x090N\xea\xc4L\x0a\
+\xf5\x93\xd6\xb6*\x0e\x07\xfb\xb4\xbd\xd0\x15\xe2qZ\xa5\
+\x87\x04\xbeD\xa25\xc1>\xaa)$\xc1\xbf\x06iH\
+p1NaI$\x08\x13r\xf84\xf8'\xef\xfe\xef\
+\x04\xbeQf\xd2\xef\xe4rm0\x8b nq\xe7\xb0\
+\x19\xa3\x92\xed\x1b7\xaa\xd5@[q\x90\xcb\xc11\x93\
+\xd7\xb1K\xf9\xf4W\xbe\x02=8o\xd0\xc9f\x89\x94\
+\xa8\x05:qk\xb1U\xdf\x09\xcbx\xa9\xeb\x03Lb\
+ZU\x98\x14j\x151\x01\x12.2\x10\xa4\xc0\xd7\xd4\
+d\xc0\x1b\x8f\xc5\xf2\x94@\x18]6\x84$8\x8e\x07\
+\xeb\xee\xfc7\x80B$ \x9f\xa0\x1a$\x88R\xf3\xec\
+\x1c\x82O\xb1\x03\x8aW \xf8\xff\x88\xe0\xff\xd4\x00m\
+\xd4\xbf\x12\x03\xbe\x1fx\x90\x5c\x13$0p\xd4\x8a\xc3\
+\xcf\xf3\xb0\x85/\xe8\xea\x82:$X\xb2\xb7\x17z\x10\
+\xf4\xd7\xbf\xf8E\xe8\x7f\xea)\x02\x9d\xd7+5P\xab\
+\xe8\xac`h lK!\xc0\x94\xf1\xcd\x84\x89\x03\x98\
+@P\x85\x91@\xfd\xa3\xfe\x0c\xc9}\x00\xf3pn&\
+4\x11\x86\x0eaE\xe3\xce\x15w\xfe\xb1\x02C\x93\x00\
+\xa5\x9af\x80\xf2B[>\xc5\x13\x9aT\xcb\xff\x07\x18\
+:\xf0\x98&v \xe0\x9a\x1c\xca\xbcz\xce7.Z\
+\x0c\xcd8\xef\xa0y\xf9Je\xcb\xeb\x90T\xf9\xa9\x14\
+\x0c\xe0\xea)\xaf\xec\xd9\x03=\x07\x0f\xd2\xc2\xd0%M\
+'wY$PW\xa3\xc16\xda\x09,\xd4?\x9b\x10\
+b\x19\x13P\xbe\xcd\xe7N\xa0\x06\xd7\xa8\x1a\xa6\x1d\xfc\
+d\x11\x052\x00\x91\xe01*\x1e\x92\xe0\xdf\x01\xc9\xd8\
+\xd8\x98!\x01\x97\xaa:\x85\xd4\x85\xd4\xe0\x9f\xbe\xe7\x1f\
+`\xf8\xe0O\xfc:7\xc0\xd6+\xf0\xd1_h\xec\xe8\
+\x84\xc6\xce\x15\xd0\xd4\xb9\x12\x9ah\xa0\xaa\xa1\x11\x01\x9f\
+\x82!\x5c\x0b\xe1\xd87\xef\x83\x0b\xcf=\x0fCG\xba\
+\xc1\xc9\xe5\xcbjb\x82\xf0\xb1<\x9a\xca\xd3\x962\xa5\
+\xce\x09\x5c\xab\xb16A\x04\x1f\x8a\x13'O\xc0\xe4D\
+\x12\x12-\xad\xf4gJ\xe8\xa1\xd1\xcc\xd4\xff0\x80\xf5\
+\x83\xf4\x89Y*\xdf\x00\x8e\xfb\x9a\xce&\x7f\x04Ip\
+\x0a$\xac\xbd\xf3O@\x93 \x9b\xcdF\x9b\x82\xca\xcd\
+\x80i\xf9MM\x08\xfe\x7f\xc3\x96\xff\xa8GMj\xa0\
+\xb5\xc3\xd6\x04\x89\xb6v\x88\xcf\x9b\x0f\x89\xf6\x85\xd0\xb0\
+t\x194,\xe9P\xc5N\x9e{\x0dF\xbb_\x863\
+\xdf{\x10F\x8f\x1d\x85\xb1\xd3\xa7\x11pG\xdd\xebJ\
+]\xd6\xb2\xc2\xc6\x84\x05%\x16\x08\xb24\xb6\xa5\xc7\x01\
+\x8c\xc8Y\x04\x98\x1e\x1c\x84\xd1\xd7z\xe8A\x8a\xcd\x89\
+\xd6\x19\x22\xc4\x1a\x1aT\x8a75\xd19?\xf8b\x96\
+j\xd4\xa0[\xb3T=\x8b\x0e\xfa#R\x8a\xdc\xd2\x1f\
+\xe4\x1e=\xf4\x138\x8d\x99\xab?\xf1'\xaa\x1b6<\
+<\x5c\xc9\xcc\xa2H\xb3\xa0\xbd}\x0d\xfe\xab\xf7|\x0d\
+F\x0e>\x0a\x16\x16&\x86\xf3\x06c\xd8 b\x04\xf4\
+\xbcv\x88\xb5\xb6A\xbc\x0d\xc3\xcdu\xf5\x90\x1d\x1b\x81\
+\x14\x0e?\xa7\xce\xbf\x0eC\xcf<\x09\x13gN\xc1\xf8\
+\xa9\x93\x90\x9bN\x83\x06\xdbU\xb6\x96\x90*\xecke\
+\x8b\xfb\xaez\x8f\x92\x09\xc0\xc6\x02X\x07\xa34\x02\x98\
+\x86f\x88`\x9c@\x17U\xad6\x039T]V\x22\
+A\xeb\xd4\x12!\xd4\x90q\x1cU\xa3M3]\xeb\xeb\
+ \x86\xf9v]\x0cbxM\xac.A\x8e\x8ai\xc9\
+\x8a\x04\x5c\xbd\xebd\xc07&\x82i\x05 \x12<\x0a\
+\xa7\x9d<t|\xe4\xd3d\x07\xd9\xb8A%\x91B.\
+fR\xc7\xe0\xc1\xbd`\xe5s\xb0\xf4\xd6\xf7@\xbc\xa5\
+\x0d\xa4\xeb@z\xf0\x02\xa4\x07\xfaa\xe2\xe8K\x0a\xf0\
+\xe9\xf3\xbd\x90\xea\xeb\x85\x5c*\x05\xb2\x00\xb2\xda\x16\x12\
+\x91Y\x17\x1f\xd4\xbe.\x93\xc7G\xf08\xcc\xa5p\x80\
+\xea\xd64>\xe3z\xa8T\xee\x22Q\xf5\x1a\x13\x1f\x01\
+\x04=\x84\xcdDq\xd2i\x95\xb4\xa4\xf1%l\x04<\
+^\x8f\xa0c\x8a\xd7\xd5\x11\x190\x0f5FC\x03n\
+\x91\x144W\x8f\x92%\x0al\x93\xba\x99c\x1em\x0a\
+6\xadP(\xa3%x\x22y\xf5\xf4)\x189\xfc\x0a\
+,\x5cd>\xcd\x8eP\xefl\x1be\x02\xc8\xbc\x9c\xc5\
+\xcf\xd0\xd2\xdd\xaf\x80\xf5\xdc\x01\xc8\x10\xe8\x17\xfa 3\
+<\x00n\xde-\xc4Hf\xc0\x93>\xa0M\xeb\xd6\xb5\
+\xe7j\xa0=\xa0\x83\x97\x0cZ;\x16\xf2\xa4,\x85\x00\
+|J\x98\xe6P\xa6\xc2?\x1b\x07l0\xc8\xb6K\x9a\
+\x9e\xe4f\xd3\xe8\x94!1\x92\x009KOW\xa3$\
+f\x88\x81\xa4 \x22\xc4(\xd1q\xa2@\x12\xcc\x07\xcc\
+\x13q\xd2&D\x06L\xb1\x19scS\x9eecR\
+\xf9\xb4U\xfd\xde\x13N\x0c\x1e\x1eq\xe0\x86\xee\xa3\xb8\
+8C\x1b\xfb\x12\xb9r\x7f\x80\x9f\x1b\x18\x18\x80G_\
+\x1b\x82\xf5'O\xc3\x8a\xf3'\x11,\xa3\xbe\x15\xe8T\
+F\x0d\xbekZ9#\x81O\xdd\x9b}a\xd1}\xfe\
+\x9e\x91k\xe2&\x11&\x80O\x09\xd3Z\xa0\xf2\xbf\x1c\
+\xea\xd7\x00\x94J\x8f\xf2\xd1V\x83\xaf\x13H$G\x06\
+\xf2\xb9\x8c\xaa,\x07\xf3\xb2\x9a\x1c\x82\x92!\x8b(v\
+L\xe0\xdbJ{\xa8\xd4\xdb\xd9\x05{\xdb\xd7\xc1e\xab\
+\x96\xc1\xca\x95+\xc9N3`\xab\xe5\x14\xea\x91\xc3\xf5\
+]\x1b\xe0\xe9\xb1qU\xc6\xe5}'u%k\xb0\x8d\
+\xf3_8\x90\xae\xb6\xc5Av\xde\xdf\xe5\x05\xe1\xd1\x00\
+\xa5\x9b\x82B/ \xc0\x7f\xab\x94\x00\xd2\xbb\x15V\xa4\
+\xd7/\xc0\x03\xb6!\x02O\xe6\x9c\xb9\xd6\x80\xed\xcf\xb7\
+\xccy\x22\x90p\xf3\x00\xb9<\xbc\xbex=\xfcta\
+\x17\x5c\xbe\xearZB\xc6\x10\x80\x83Y\x09\xf8\x81\xd3\
+\xcb\xe8\xa3P\xca\x7f\xa6\xa0\x85\x96\x9f?\x81\xc7\x1al\
+M\x04\xcfV\xb7j\x9f\xca\xf7\x01o\xda\x15\x11\xc4\x00\
+\xef#\x82\x14\xe1\xa8\x8aB\x85\xc9*\x13\xc0H\xa1\xc0\
+!\xc2\xe2\xb9\x82'C\x10\x03\xac\xaf\xb5s\xf0\xb96\
+\xe8]\xb6\x1e\xf6_\xb6\x03\xc1_E\xe0\xd3\x14p\x05\
+~I\x12=\x88\x14\xda\x15\xd4$ _\xe3\x19a)\
+0;\x91\x04\xbeV\x8f\x09\xbcdP@\x878}\xfe\
+\x16\xcfM\x01]\xa4\xfd\x8b\xd0n\xa0`\xe7+%\x00\
+'\x01!`\x8b\xa8\xd6o\xd4\xb9>\xd6\xc9\xa7\x0d\xb8\
+\x99\x10^R0\xf0\x8df8\x8fj\xff\xe0\xe5\xd7\xc1\
+*\x04\xfd-oy\x8b\x06\x9f\xc0\x8a\x021\x0a\xf4\x92\
+\x9dG\x8a\xfd\xd3\x17\xc2$\xcf\x14^\xba\xb3\xe7\xb8\x01\
+\xdc\xa7\xe2\x0d\xa0f\xdf\xeb\xf4\x05\xb4x\x03<\x0b\x8a\
+q\xd1\xa1`\xabv&@h\x14\x22\xc7y=\xac\x15\
+\xde\xe3\x00\xff\x00\x8a\x98\x81\x00\xf0\xfb\x96w\xc1\xa1\xd5\
+o&\xd0\xd5\xa2QZ\xed3\x09V\xff\x17\xed\x0f\x08\
+!|\x8b:\xd1\xf1s\x85\xd9R\xcbz\x8e\x15#\x81\
+q\xe6\xfc\xf1\x0d\xbf)\xf4\x86\xc5\x85\x0f\x80h-\xa0\
+\xf1\x1154\x01Rw\xcdJm\xfd,\x8f\x1ds\x0d\
+`\xb4\x03\x07\x7f\xc5\x06xb\xcd\x0d\x1a|\xfa\xe8\xc3\
+\xd8\xfc\xf2\xa5\xe2o\x0d\xf4\xb16\x07\x9a\x04\xcf+\x12\
+\x00t\xf8I`\xc0\xf5\xd9yN\x00i\xae1-=\
+L\x0bpbb\xaa\xad\x09\xa0Tn\xeb7y\x22B\
+#P\x0a\xf0\x0f\xfaWl\x84'\xd7\xa1\xad\xc7\x16\xff\
+\xe67\xbfY\x83\xcf\x00\xaaP\xcat\x0a\x0d\x11\xf4l\
+c2\x07\xe4\x13\xbcP\x88Y,}\x9dH`\x1a\x86\
+\x0b\xdc\xb37Q\xd2P\xe0\xa3\xb5\x80\x19\x0d\xc4$\xaa\
+n\x02\xcc\xf3M \xa8\xe2\xd6o\x12\xbfF'1\xcb\
+\x14\x5cX\xb9\x11\x9e\xeaz\x1b\x81O\xcb\xc4i\xf0\xc3\
+\xa6f\xd7\x8a\x10\x0c|\xaf&\xa0\xf5\x09h\xffE|\
+\xe9\xad\xb8]z\xee(@\x80\x83G\xc7\x92\x01\x1d\x05\
+<\xd7\x02<\x0eP\xd3^\x80UZ/@\x04k\x04\
+\xde-\xe4\xf7\x99s\x04\xfe&xz\xe3N\xb2\xf5\xb4\
+\x08c\x90\xda\xaf\x84\x08z%\xcf\xc0\xd0q4\x09\xf8\
+\xc7'z\x91\x8a\x97\xed\x19\x9f`\xf1\xb9n\x05\xbc\x15\
+\x06t\xb4\xdd7y\xfe\x095\xdc\x07\xa8u/@=\
+\xc4\xcf\x01c\xc3\x81\xf5\xed\x99F`=\x00\x11\xac!\
+\x06Wm\x86\xe76\xef\x82\x95+V\xd2\xda\x80\x04\xbe\
+\x06MK\xc5$\xa0Q=\xfa\x0a\x88\xae\x1d\x1c\x1c\xf4\
+\x8e\x22\x86\x80\x1f=c\x98\x1cCZB\x86H\xf0\x8a\
+m\xab\xf2-|\xad\x1bd@\xdf\xde7\xe8\x22B\xc8\
+\xa0\xcf{\xef\x9d}\xdaV\xf8\x98\xdb\xaaj\x02\x8c\xae\
+\x0f\x9a\xd6mR\xa860\x89\xf7\x08\xcc\xf1\xd0\xe5\x9b\
+\xe1\xf9-o\x87\x15\xcbW\x10\xf8\xf4\x81'\xeb\xeaE\
+\x11\xc1\x80\xc5\xc1\xa7/\x84Zp\x14S\x16\xae\xbdp\
+\xe1\x02\x91 \xda\x0c\x18\x92\x153\x05l\xb5\xcf\x97-\
+\x1b6\x82\x80\x85g\x8fxL\x01w\x00\x95\x96(\xe6\
+\x04\xd2\xc6O\x1a#\xb3FG\xad\x82-\x95U&\x80\
+\xdf\xc6\x84v\x03MR\x9b\x08\xff\xc0\x10\xc6O\x84\xa1\
+\xd5W\xc2K[o\xc5\x96\xbfB-\xbf\xda\xd9\xd9I\
+\x95Y\x0a\xc0%\xb7|\x02\x7f\xf0ow\x83\xeb\xe4a\
+\xf1\xe7\xee\x01\x12\x22A&\x93)\xc5/`\xa0\x17\x09\
+\x16\x19M\x10\xb3U\x09\x17\xbcz\xd8O\xf8R\xec\xfc\
+l\xd2\x801'R\xfb\x11&\x0eP\x0b\x13\xc0#M\
+>\xf1\xab\x7f\x03\xae\xc9\x8f\xe8\x1d\xf8\xaf\x1dY\xbd\x05\
+\x0eo\x7f'\x81O\xab\x81\x12\xf8\xe1-\xdf\x80\x10y\
+\x9e~\x87\xc0o\xc6\xf1\xfc\xa1\xff\xb2\x1b\xd2\x8f\xcc\x00\
+?Dj\xfa\xcf\xd4>\xfd\xcd\x22\xa5\x09\xa2G\x07\x03\
+\xbba\x8c\x04D\xdeW,[\xe5\xcd?\xf3\x8a\x0fP\
+\xab\x08\xf0\xd276\x10\xd0\xdb\xf2\x10B\xb2\xe7WG\
+\x03pM \x8c\x0f\xe0\xc3S\x14R\xb4F\xe0>\x82\
+'ot\xed\x16\xe8\xde\xf1\xafH\xed\x13\xf8\xfao\xec\
+D}\x9f\x1ft\xde\xb7\xafg\xf2\x10\xf8\xc3\x7f\xb7\x1b\
+2{\xef\x01\xad\xcc\xb2\x8f\xdd\x07\xc3\x02`\xc1g\x0d\
+\x09P\x13\x04=\x8b\x01\xadS\x10\x09h\xdd_\x22\xc1\
+\xe1\x98\xad\x1c\xc3y\xa7^\x06\xe1\x03\x9e5\x08?I\
+|f $\x12h\xd5\xc6\x070[\x0b\x13\xef\x06\xf2\
+\xd6=[\xfd\xcfV\xf5E\xfc\x83\xb1\xb5W\xc1\xb1\xeb\
+\xdeE\xb6\x9e\xfe\xba\x16\x03?p5N~>t\x02\
+\xe7\x08\x82\x9f}T\x83o$\xf7\xd3\xfb`D\x00\xb4\
+\xff\xa9\x8f\x04L\xcd\xe3~X\xf2M\x1c\xa1\xad&\x01\
+\xad^FyG\x90\x08+\x05\x92\xe0\xe4K`\xcdn\
+\xf1\x8c\x10\xbe\x06\xe4'\x04\x80\x8fD\xea\xbcmB\xcb\
+Jj1\x18\x14\xe9\x02h\xc0!J\xfd\x9b\xeb'\xd6\
+m\x85Soy7\xac\xe8\x5cN\xeb\xff\x12\xf8\xd4b\
+\x18\x98\x95h\x01=u\x9b\xc0\x1f\xfd\xdan\xc8\xfdD\
+\x83\xcf%\x8f$\x18\xc5\xed\xfcp\x120\x90\xa3\xb4\x01\
+%r\x0c5\x09\xba\xed\x98\xd2\x04\xcd\xc7_\xf4:\xc3\
+\xc6\x114\x00\x07\xf7\xf9\x85\xf9z\xd7\xf1\xcf\x09\xac\x9d\
+\x09P\x05\xb3-\xf3>\x82c+|\x19A\x041\xa7\
+'\xd7]\x0dgn\xbc\x8dl=\x81\xaf\xff\xbaV\xb1\
+\x96]\xa6\x160\x1fm\x10\xf8c_+\xb4|\xafY\
+bk\xeb#\x09\xf6\xdd\x07cx\xa2\xed3E\x1d\xc3\
+b\xe0j2Dh\x03C\x02\xd2l\xa4\x09:\xc0\x82\
+\xc6\xe3\xcfs\x80\x85\x1f`\xa9\xb2\x82\x9dEa\xba\xe3\
+t\xae\x96&@\x18V\x82o\xec\x9e\x89)H0A\
+\x92]W\xc3\xb9]\xef\xc7E\x18;i\xc9uZ\x97\
+G\x83_\xb1\xad\xd7\xe7\xcc\xe7Z\x0d\x08\xfe]\xa0\xd5\
+\xbee*\xcbG\x00u\xabE\xfb\x05\x12\x80\x8f\x04\xfa\
+\xe3\x13\x06.\x07\x9f\x93\x02\xc5\xab\x09\xe8o\x06\x164\
+\x81\x0d\x8b\x01\xa0\xe1\xe8\xf3^\x80\xcdVrs*\x03\
+\xd1\x15:\x12\xa8M@M\xbb\x81\x06Ls\x10\x16\x1f\
+`\x92\xea\xda\x06=\xb7\xdcN\xea\x9e\xc0g\x7fc'\
+\xa0UG\x02O\xa2?\xd4\xd4\xe0\xe7\x1e\xbd\xdb7\xc9\
+\x04f\xbf\x97\xd4\x0b``\x92\x9c\x04B\x08M\x02\x03\
+fx\x0a\xd5\x14\xda' \x92vcj\xa7\xf1\x84\xc3\
+\xcf\x85\x03\xac\xdf\xdbx\xffL\x84\x1e\xaeW\xe5\xa8\xb2\
+\x090\xf3\x01`\xd6\xe39\x09D\x04A\xa67n\x87\
+\xfe[\xef\x80\xcee\x9d\xb4\xde>\x81o\xbaz\xd1\xea\
+=\x8c\x14\xf4;\x85\xaft\xeb5\xf8\x1axC\x80\xd9\
+\xa3s\x1a|\xda\x9aO\xb6\x98&\xc0\x88!'\x01\x07\
+8\xd2,h\x12\xd0\xd2\xb3\xb4\x7f\xcc\xfe\x84z\x99\xc4\
+\xe1gA\xfb\x01\xb2h\xd7/\xa0~-\xefX\x00\xd4\
+(\x10$0\x15\x0a\x15 \xa6\xa2Cz\x09\x99\xcd\xdb\
+a\xe07>\x00\xcb:\x0d\xf8\x1e\x9b\x1f\x01v\xb4\xcd\
+\xd7\x8b3\x8c\xfe=\xd9|j\xf9lv\x91&\x80\x11\
+/\xf8\xe0\x9d\xae\xcd5\xc1\xd0\xd0\x10\x91\x80\x01\xca\xc9\
+\x10M\x10M\x02*\x7f\xb7u'4K,\xc3+\xcf\
+\xfaL\xbd4\xe0\x078\xdd\xe6\x9ce\xcfL\x92\x95\xb5\
+\xeb\x05\xa8\xc4\xc5o\xdf\x03%\xbb\xe9\x1a\x18\xf9\xad\x0f\
+\xc1\xb2\x8ee\xb4\xc6?-\xc7F-\xb6\xdcV^t\
+_\xaf\xc9\xa3\xc1\xcf \xf8\xbeh#\x9f~\xe6\x11C\
+\x00W\xf2\x99;\xd4;\x18\x93H\x82?U$\xa0\x8f\
+O\xf4\x00R\x04\xc8\xfc\x18\x85\x99\x03\xfa[\xc9t|\
+\xcc\xbaKU\xa0\xfd\xd23|\xb9V.\xfc\xbc%\xaa\
+\xee\x04\xfa\xbf\xdd\x0c\x09\x05\x0b\xff\x01\x93\xfc\xe6ka\
+\xec\xdd\x1fFG\xaf\x83\xe6\xd3\x19\x9b\x1f\x0dn\xc89\
+\xa3\xf6\xf5\x9a<#\x7f\x7f\x17d\x1e\xf1\xb5|\xd3-\
+\xf5k\x02#\xa6\xf5\xb3\xe1[\xdd\xdb\xc9\xee\x9b\xe9\x22\
+\xb6\x7f\xf6\xeb@2::J$\xf0i\x01\xae\x0d\xa2\
+\xc9\xa1'\x9a\xd2\xda\xc6t|\xdc\xfaCHH\xbc\xee\
+\xa5\xa7Y\xc4\x8f\x89\xd0\xe7\xd9h`\x0dz\x01\x9a\xb9\
+E\xf0\x17\x11\x19r\xeb\x0e\x98x\xcf\xef\x91\x97O\x13\
+'\x0c\xf8\xd1}\xfb(\x82\x98\xa5\xd8\xea\xea0\xc2\x87\
+\xe0\xef\xdd\xc3\xcd\x10\x9fuD\xc9w\x91\x99\xcd\xeb\x8f\
+\xc5KO\xf4-C\x11C\x10\x141\xa4g\xd3\xb7\x88\
+\x9a\x04\xd1\x80\xf3}6\xdb\x98V$W$\xf8\xd0\x1f\
+A\x9c2_|:\xb4\x8e\xfd(\xebo%\xa0\xc6&\
+\xc0\x16!\x04\xe0\x99\x895\xeb!\xfd\xe1?\x82\xa5\xad\
+\xea\x0f:\x90\xda\x0f\x1a\xd2\x0do\xf1|\xdf\xb7\x08\xe3\
+\xd0\xdfRl\x1f\xc1\xb7\xc2\xa2\x92|\xd2\xa9\xd0\xaa\xbf\
+\xe8$\x0d\x1e}K?\xfa\x0d\x18\xc2\xedBC\x02\xbd\
+\xb61\x03:,i\x09\x22\xc1\xa9\x8f~\x1a\xec\xb1\xbf\
+\x02\xf7\xccIS?\xa1\x04\x90T\x9e\xb2\xc7\x02\xacR\
+M\x80\xf12M\x14%L\xf4\xf9\xe5\x9f\xfc\x0c,]\
+\xd6I-\xdf\x80\x1f.a\xb1u\x9f\xcd\xd7\xe0\xd3\xa8\
+^\xea\xc7{\x82m$\x14\xd5\x08|~\xa2aKh\
+\xa4s\x1aI0\xf8\xd5\x8f\x91\xbfA\xb1\x06r>\x09\
+t\x9d\x18\xd8\xc5\xf2\x83\x84\xcaCs\x1e\xd7um\x80\
+\xf6\x8f}\xaa\xbc\x857tAj\xa1\x01\xa4~\x88-\
+\xcaz\xa9U;\xdf\x0eY\x10\xa4\xa6K\x05?\xb2\xf5\
+\xeb%\xd7i\xbd\xbf\x81\xbfQ\xe0\x13\x90\xbfTI!\
+\x09\x06$\xc0\xe2\x7f\xaf4\x81Z\xbd\xccq\x9cR#\
+\x84$\xa1$\xa0\x19PK\xda\xe6\xc1\xc0\x7f\xfc\xb7P\
+\xa2\x18\xdf\xa6\x96&@x\xbfQ\x12\xd176#H\
+VK+\x9bvU:\x09\xf8*\x18z\xbd\xfd\xfe\xaf\
+\xee\x86\xa9\x1f\xed\x01;\x08|\xe9\xe9\xdf\xcf\xcew1\
+Y\xa6\xdf\xefB\xc4*\x9e\xfa\x94\xe7|r\xef7\xc0\
+\x95\x02\x96\xfe\xf9\xddz\x81k2\x07\xd1\xaa?Z\x94\
+vkp\x1d(]\x8c\x13\xa8\xa4&&\x80\x0aac\
+b\xe7\x83o\xea\xfd\xc1\xbf\x90mSj\xb2\x0ca\x95\
+\xa6\xc3\xbb\x1a\xfc\xbe\xaf\xec\x86\x89\x1f\xec\xd1x1\x80\
+\x0d\xa2\xe6\xbcK@{\xbe\xdeu\x5c\xef1%~\xbf\
+d?\xe7\x7f`\xf2\x91{\xe1\xfc\x97?\x8e\xad\xb6\x8e\
+\xb4\x1c\xbdc\x90\x16(k\xd2\x0ai\x81\xbe\x87\x1fb\
+U\x1aV\xe9\x0a\x9bj\x13\x80\x87\x82\x8bx\xf9!7\
+\xbd\xf8\xf9\xcf\xc1\xf8\xd1W\xa8@\x9a\x04\x95\x10\xc1\xf7\
+gV\xce\xff\xe7\xdd0\xfe}c\xf3\x0dH\x06H\xde\
+t=\x81\x1e\xa9\xc9`H\xe0\xfb~\x1fT\xe2\xc4\xe0\
+\xbf\xa96\x13\x0f\xe3\x12\xf0\x7f\xfdq|\xb78-\x1e\
+A$\xf0\xf9\x04(e\x83?q\xfc\x08\xbc\xf8\x97\x9f\
+\x8d\xaac#\x9ap\x16T\x99\x00&\xd1\xd5,\x0e\x10\
+\xc5N'=\x0d\xfbn\xdbuQ$ \x9bOZ\x84\
+\xc0\xef\xf9\xf2n\x18\xfd\xbf\x1a|\xd6\xea\x0d\xc8\x1ah\
+\x93\xccB\x0d\x06t\x93\xcc5\xfe\xa9V\xd2\x9f\xcc\xae\
+\xb9\x9ed\xfc\xc7\xf7BO\x81\x04\xa8\xa5\xe8\x9d\x09\x90\
+\x8a\xc0\x9f<\xde\x0d\x8f\xbf\xf7fpRS\x10j\x95\
+\xa4g#MW\xb7\xda&\x80OZ\x10\x01D\x09P\
+M\xd9\xd1\x11\xd8\xff\xbe\x9ba\xe2\xd8\xe1\xb2I@-\
+H\xdfs\xeeK\xbba\xe4\xa1=\x06`\x7f\xec\x9e\xdb\
+\x7f\x7f2$\xa0\xe4\x86$C\x16\xad\x11\xfc\x04\x01J\
+\xdc\x5c\x8c\xfd\xf0^8\xf7\xc5\x8f\xd3\xbb\x12a\xe9\xdd\
+\xcb\x07\xffD7\xd6\xd5.\xc8\x0e\x0d\x9a2\x84\x80\x22\
+\xa5\xd7A\x87\xaa\x9a\x00.\xda\x04\xc8\xa2\x0f1\x95\x0c\
+\xc5H0\x0c\x07\xb0`\x13\xc7\x03H\x10\xf1\xb7t_\
+\xfbk\x04\xff{{\x02AV q;\xcf\x01\xf7\xd9\
+~v\x8f\x01\x9f\x11(\xcc\xbf0\x84\x19\xf9\xc1\xbdp\
+\xf6\x0b\x1f\xa7w\xa6w\xa72\x94\x05\xfeA\x02\x7fx\
+\xd0<\xa6\x14\xa7\xd4\xd7M\xaf\xa1\x090\xc3\x8d\xc1\x17\
+\x9a]\xdeJ\xb2#\xc3p\xe8\xfd7\xa3\x8a;\xc2H\
+\x10\x06\xfe\xab_\xdc\x0d\x83\xff\xc78|FM{\x9e\
+\xe1\xcf\xe3\xad\x9e\x11A\x1f\xb3|c&\x98\x06a\xa4\
+)\xaa\x11F\xbe\xffux\xf5\xf3\x8c\x04\xe1\xe0\x9f\xec\
+\x86'~g\x17dF\x06\x99\xca\xd7\x19\x81Y\xae&\
+\x00\xd4\xd8\x07\x10\x04\x8c0\xf9Q/\xc8\x9c2\x22\xc1\
+\x10\x15\xd4K\x82\xd0?\xa4|\xe6\x0b3\xe0\x03\x03\xbe\
+\x90\x0c\x88\x8c\x1c\xae\xda\xf7m\x8d\x160\xa0\x17'\x81\
+I\x06h\x93\x02\xc8h\xf2\x86\x1e\xfa:\x9c\xfe\x8b0\
+\x12\x18\xf0\x93\x08\xfe\xcf\xb0N\xd2C\x83\x86\xd4!N\
+'\x9f\x17\xea%\x80\xa0\xbdZ\x98\x00\xe1_\xcd\x889\
+B\xe16\xca5eP$\xf8\xd9\x1dH\x82\x13G\xc8\
+V\xea?\x9fJ\x8e\x139z\x94\xa7\x8eO}~7\
+\x5c\xf8\xee\x9e\xd2*\xde\x0b2\xb3\xf7\xe1v\xdf\xa1\xc4\
+\xae\xd5\xe4\xe2&\x81\x83^\x9c\x1c\x83H\x82\x93\xffI\
+\x91@;\xb1TFM\x0a\x95\xa7\xc0\xbf\x1d[\xfe\xf0\
+`pc\x8a\xa8kn\x02d-\x02AR9\x19\x86\
+\xc8f\xe0\x5c\x9a\x15/\x8c#\xe8\xb2y\x81\xa6\xc5\x12\
+\x09\x86\x87\xe0I$\xc1\x9b\xef\xdf\x07\xad]W\xaa\xca\
+\xf1\xca\x89\xbf\xd8\x0d\x03\x08\xbeey*Xx+\x99\
+\x1f\xbb\xc4O\xbd\xef\x9a\x90\xafY{\x98\xcd\xab\xe7\x9f\
+\xc0\xbb\xdc\x84\x98}\x9d\x82H\xc8\x890\xf0\xbd\xaf\xab\
+k\xd6}\xe9n\x02\xdf\xd7\xbd%\x7f\x88\xea\x80l\xbe\
+O\xbcZ\x0c\x02\x9dN&\x96\xed\xa9sY\x0b\x1f@\
+\x84\xda\x18\x03\xb0,-8\x93!M\xf0\xee\xeb\xe1\xb5\
+o\xffO\xea\xf2\xa8R'O\x1d\x85\x17>z3\xf4\
+=hZ>\xab\xdc PLk5[\xae\xde\xfd-\
+\x9f\xf5\x00\xb8\x16\xe0\xa6@\xefG\x13\x81\x8e\xfb\x91\x04\
+/\xfc\xdeN\x98:\xd5\xad.t\xa6Sp\xee;{\
+\xb0\xec\xd7\x11\xf8\xe6Zo5\x85;\x80<\x82\xa9\xf1\
+\x11\xa2z\xa1`>\xa3'\xa8\x9b\xc1[\xbd)\x8ci\
+mRp\xbf!\x8f\xc0\x1f\xfe\xf3\xbb\xa0\xfb?\xdc\xe5\
+\x1f\xc3\xb7\xbc\xd3\xb4\xb8\x160\x1e\xb0\x09\xeb\xbafm\
+T\xad\x91\xf8\xa4\x067\x8a\xf0\x5c\x0bpRq\xf3\xe2\
+\xbf\x9e\x13c\xec\xe9\x03\xf0\x8b\xdf\xdc<s\x8f\xe3\xf1\
+C\x98I\x0b\xa8\xd7R\x08B\x15W\xd3\xb1\x00A\x89\
+\xbf\x9b\x998\x11L\x0a\xe9%\x85\xf4\x83\x22\xbc\x15\xa0\
+\xaf\xe5y\xba\xe5\xf9&\xcf[\xe67\xf5\x08\xaewM\
+a6\x1c(eX\x1d\x19\xc2\xf2\xdeD\xb8O`R\
+8\x11L\x9eF2<j)\xa3\xa2\x92\x92\xed\xd7\x86\
+\x00\x82\x92%\xf8h\xa0\x07 W_\xeb\x03.XK\
+(\x89\x04\xde\x7f\x0c>\x0d`\x9ei\xb9\x851\xfdb\
+\x5c\x95&\x83OV\xf5\x1bY\xd7\xa7b\x03}\x01\x9e\
+\xe7M\xe5\xf5\x18\x8c\xc9\xe1`s3\xca\xbb\xdbFD\
+\xd5\x09\xa0+H\xbf\xac\x8cx\x86\xbe\x96\xb5x\x1f\xf0\
+\x02\xbc\x05\x0c\x03^\x83l\xde\xc3\xd2\xe7\xe9'\x8d\xba\
+W\x22\xe8X\x14\x88 \xbd\x1a\xc0\xcff\x8b\x03oZ\
+\x9d\x8f\x00Q\xa6\x80\xfb\x1f&\x85\x82n\x12\x037\x5c\
+\xfdK_\x0c\x22*2D\xc7\x15\x10\xc0.hm\xfd\
+\x97\xc2tH*=\x99\xa1\x85\x9f\xd5\xd2\xadN\xd6\xfb\
+\xde\xbc\x95\x9a\x93\x9c\x9dRFy\xf6Av\xdeoB\
+,/\x09\xf4\xb1!\x82\xe9\x91\xd0\xbe\xf0\xbc\xd6\x0cA\
+\x98\xb8\xb3[\x17\x07\xd4\x98\x80`m\xc0\xbb\x9f\xa5\xf5\
+\x18\xfc\xf7\x82I>\x82\x05\xa8\x7f\xc2\x84\xb0\xc9 F\
+TX\xa1\xca,\xf5\x8c&I\x98\xe6K!\xc0\x08\xa6\
+%\xfa},\xcb\x8d\xcfk\x81x\xbc\x1e\xa4\xe3\xc0\xf4\
+h\x16\x1a\x97\xb4B]k=\xe4RY\xd0\xe2k\xb5\
+\xc6\x8eF\xdby\xc9\xc9`\xfc\x03\xaf\x9d7\xe7\x8c\xba\
+\xf7\x93@\xa8\x8b\x02\xbb}\x85\x8a0\x8e\xa0`<\xf5\
+\x1f\xb8\xe1\xddB\xee\x17\x84\x98\x00(\xa3\xc7 C\xba\
+z|P\xcaH}[#4u\xb4\xc1\xd4\xf0IH\
+\xe0\x88\xa4\x93\xcbA>\x9fQE)\xf0_\x8e\x94B\
+\x80.\xbcat\xe6\xb7\x1d!e>^_\x97mh\
+_\x94\xb0h\xfa\xb6h\x05\x22\xc4\xa2-\x9d\x90\xec\x9f\
+\x00#e\xday\x19\xa0\x05\x14\x90\xdc\xf37\xde\xbd\xfe\
+y?\x09\x84>6\x7fj\xc6 \xa8\x89\xc1\xfe\x22Y\
+\x88\xb8\xcc\x170+\x81\x1bR\x98\xae`HWT\xb2\
+\xf1\x06\x16J.\xcb?0\x04\xf3\xaf\xdb\xb0\xec\xba\xb5\
+\x10on\x80\xf1\xa1\x8c\xfa\x9b\x0dnr\x12,\x07\xa8\
+\x95\xe6\x08KL\x92\xb0\x8d\x8c\x03\xd0\x1d\x85^J\x1e\
+\xa4L\x0b\xd7MZu1\xb5\xfc{v\x1a`\xf0\xf8\
+8t\xdd~\x0d4-n\xf1c\x1e\xf0\xb2A\xf6\xcf\
+\x0d\xa9\x18\xa9\x13\xef{s\x1b\xecz\xce\x05l)9\
+\xe682928D,\xdd\x90V\xaf\xaf\x09\xf2\x0f\
+\xd8\xe8e\xb4\xcf\xc0c(\x9c\xc4\xad\xcb\xdba\xfd{\
+\xf1;\xcbg{!9\x9aQ\x84\x90\xe0\x92)\x9f\x14\
+\x00\x19\xc2\x920\xcd\x96\x12\x08\x1a\x9bQ\x0bn\xe1\xc6\
+);\x9d~U\xda\x16X\xf5\x0924\xd0\xfb\xc28\
+\xc4\xdb\xe6\xc35\x9f\xde\xe9!A\xa8\xf3\xc2\x0b\xc6\xae\
+\xe1]%7X\xdd\x9a\xfd\xc0\xf0\xad\xc9s\xf8~t\
+\x92\x0cx\xbe\x0d\x18k\x08xw^\xbe\xa0\x14@\x04\
+\x17\xf85$-\x08\xfe5\x7f|\x0b\x1e\x0b8\xf2\xd8\
+\x19R\xa7\x0aU\xc7\xc9C\x03\xc0\x19\xc2\x90\xb0$L\
+\xc7J1\x01I\x00\xd9\x86\x8cq\xf1&\x010\xd1\x94\
+J?;\x95Ln\xafokC\xfcQ\x0bL\xb9p\
+\xf2'\x03\xb0\xf6\xed\xab\xe0\xa6/\xdf\x06G\x1fx\x16\
+\x06_\xee\x81\xccD\x9aj\xc7\xf7\x19\x16%\xf3e\x0e\
+\xdf\x82\xa0\xc4\xaf\x05\xb3\xef\xbb\x06\x84?Iu\x9d\xc7\
+\xc9\xa3-\x1dz\x8f\x85\xdf!\xf6\xafO\x10\xc0_\x9f\
+#hH\xaa\xb6\x96\xc9S[\xcb\xe4{;\xee\xa2p\
+\x9d\xa0\xe4\x9a{\xa0p,<[\xcb\xf57\x08\x97\xf2\
+\xcd\xbd*Y\x9e\xdf\xb6m\x0b\x12\xf3\x1a`\xc9\xd6\xcb\
+`\xe3\x07v`F\x0c\x9e\xfc\xc6K05\x92\x06+\
+n\xa3\x7f\x96\xc6\xdf\xc8\xc3\x02\x17\x9e\x05\xc4\x90\xb0\xc4\
+\x94'l#\x09@\xc1\xca\x9b\x94\xbaP\xac\x19_\x99\
+\xcd\xef\x7f\xb1\xbf\xff}\xce\xd2\xa5\x0b\xe3M\xcd\xca\x10\
+\x8f\xf5&\xe1\xe5\x7fI\xc1\xf2m\xf3a\xeb'w\x81\
+3\x91\x84\xa9\x0b\x13\xe0d\xf2Xp\xbe\x02\x16\x89e\
+\xec\xb5\xb9\xc6\xf7\xa1\xa6\xf7>\xbe\x8a\x18\x04]\xe3\xcd\
+\x9f\x0d0\xe5W\xd2O\x96E\xc2\xae\xc5\x8e\x8b\x13\xc5\
+\x10(\xe0X\x93\xc7\xdc\x17\x14\x80*\xfe\xdbv\x22\x06\
+\xcd\xd8\xf2\xed\x86z\xe8y\xbe\x0f\xba\x1f?;\xa3\xfa\
+\xd1T;\xa9\x0cd\x93IH\xb80\xb8\xd6\x85\x83.\
+b\x98G,\x13\x00.a[\xd27\x1d\x8f\xcf`R\
+\x87\xff\xb4\xbb\x00\xab_\xb5\xc5\xed#\x9d\x1d\x9fZ\xb2\
+e\x8b\xb0bqp\xe8\x0f>d\x90\x22\xa8fb\x09\
+\x89\x0c\x1e\x85\x96\xc5MP\xd7\x5c\x07B\xd7z\xd4W\
+C\xc2l\xf8\xb5\xfc\xbc\x14\x81\xd7F\x03,\xa0r\x99\
+\x0d~h\xd4\x8d_\xc3\xaf\x8f\xf8=\x19\x1e\xdcs]\
+\x09\xf9\xb4\x03\x99\x14\xc0pO\x12Rci\xd5U'\
+'\x9d<\xff\x89\xbe\xf3\xa8\xa5\xa7\xe4Z\x07\xfe\xf1\x0a\
+\x17\x1e\xb4\xd0\x0c\xb83\x9d\xbb\xccN\xbc\xbd\xa48\xc0\
+\x01\x00\xf9\x0e\x80\x9c\x03\x90\xc4;.\xacr\xe4#\xc9\
+\xbe\xfe+\xfa\xa4{k\xfb\xe5\xab\xc1\xaa\xabC\xecs\
+\xea\xafW\xa6\xc6\xd30\xf6\x1a\x9a\x80\xe4DTC\x0a\
+>_\x85\xebd\xc5\xe7\xdexB\x7f\x94\xab\xbe\x15M\
+\xb2m\xab$\x10\xfc\x5c\x12\xc9\x80\x83k\xd9T\x0a\x16\
+\xb9\xf0(\xb6\xfe\xbd\x80\xd8Y\x88a\x1c\xb1|4\xa0\
+\xa8v\xb1\xcc\xfd\x98\xde\x87\xa9\x19@N\x93C\x88i\
+\xb1+\xcf\x0c\xa7\xa6\xe6\x0f\x8f\x0c\xafqs9\xd5\x1e\
+]\xc7Q)7\x9d\xc24\xcdg\xab\x5c\xe2\x04\x90\xf0\
+\xc6\x14\x9b\xbe\xb5\x88\xc7@\xd2\x7f\xf9<\x06\xe8& \
+5:\x8c\x9a!#\x09\xfcm\x0e\xfc3\x00\x9c\xcd\x03\
+\x0c6\x02\x9e\x02p\xee\x0c'\x00\x97+\x00\xe4\x22\xdc\
+\x92\xed\x903}\xc9\xecR\x17\x8e\xa1\x9a\x19\x1d\x9e\x18\
+_=5>\xd6H\xb6&\x8b\xe0\xe73\x19p\xf3\xb9\
+\x80\x0a\xad}\xe5K\xf8u\x17>\xfd\x1b\x1b!:{\
+\xd3\xa8y'!\x97\x9e\x86x\xde\x1d\xbc\xdc\x85{6\
+\xbb\xf0-\x02\x9fZ\x7f\x0c \x99B\xec\x9eB\x0c\xf7\
+Wb\x1d\x1f\xc7\xf3\x13\x00V+\xf2@\x024\x09\x80\
+v\x0a\x14:\x00\x9dg,\xb8i\xd4\x82k\xa6\x01V\
+;\x02\x9a]\xbc\xa6V\xa0\xc9\xaa\x9f\x7f\xe3\x13\xc7\x02\
+\xc8\xfe\xbf\xf6\xce %b\x18\x0c\xa3/I\xe9\x8c\x8c\
+\xcc\x0c\x1e\xc1\xa5\xa7\xd0\x8d\x9e\xc0\x03x\x12\xebI\xbc\
+\x95\xcb\xd9\xb9\xb48Hal\x9b\xc4/\x18A\x17\xe2\
+\x14\x1dWy\xf0\xb6%\xe1\x0b\xfc\xc9\x1fH+x9\
+\x8al\xd2n?m\xf8\x1c<\xa6\xe0#\xb4\x06:e\
+\xd7/!\x5c|?\xd5\xbd\xeev\x8c\xea\x87]A5\
+\xc0|\x84\x14\xf6\xcaJ`i`\x11a\x06T\xd2Q\
+\xf8\x0f\xbc\x1c?z5\xf9\xa8\xb7\xb5\xb2z\xaf\xf9\xbb\
+-\x8c\x97\xb9\x0d\xfc\xab\xdb@\x03\xf1\x1a\xc2\x0d\x0ck\
+\xf0#\xf4@g\xe1)\x05\x9f49\xfc\xf0\xe9\xb7\xbf\
+\x14\xfe\x1c\xf3\xf513\x1f\xf3\x22H\x06\x89t0\xb4\
+\x10\xee!^\xc9\x9f\xbf9\x81\x06\xcc\xadT=\xb1\x1d\
+\xb8\xb9\xac\xc1\xbeJ\x97{5\x1eLO\xe1\x10\xd4\xd2\
+A\x0c\x80\x878\x83\xd0\xcb\x1d\xf8\x85<\x87p\x07\xb1\
+\x91\x13\x16\xd5t\x1ay\x06\xe6X\xae\xf3\xc06)x\
+yB\xe1\x90\xb4\xb2\x86x*{\xe09wo\x1fd\
+C\xa1P(\x14\x0a\x85\xc2~\xbc\x01\xc5\xf3\xa3!\xeb\
+\x0d6:\x00\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00<\x0e\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3>a\xcb\
+\x00\x00\x09\xediCCPICC Prof\
+ile\x00\x00x\x9c\xad\xd6gTS\xd9\x16\x07\xf0\
+\xff\xbd)\x84\x04B\xef- \xddP\xa4Jo\x8a\x0d\
+\x18D\x14\xb0\x02!4)\x11\x82(vP\xb0\xa1`\
+W\xb0+v\x05\x95Q\xc7\x8a\x0a\x22\x8c\xa24\x11Q\
+, 8\x22\x1d\x0b\x82y\x1f\x82e\xd6\x9bY\xef\xcb\
+\xdb\x9f\xf6\xd9k\xdd\xb3\xce\xf9\xed}\xd7:\x80\x94b\
+\x98@\x10G\x02\x88O\x10&\x05L\xf0\xe4\x04\x87\xcc\
+\xe4H\xd4\x81\x0a5H\x03\xb0\x0f\xe3%\x0b<\xfc\xfd\
+}\xf0\xaf\xf1\xb1\x1e\x04\x00\xd4\x98\x85\x09\x04q\x89G\
+\xa3\xab\x11\x97\x97\xa9\x92\xe3\xc2\xe9\x9f\xab\xfb\xf8\xdf\xbf\
+\x03\x00\xb0\x93\x82Cf\x02\x04\x17\x80b\x948w\x07\
+\xa0\x18.\xce\x03\x01(\xa6\x0a\x05B\x80\x88\x06\xa0\xc8\
+\x8b\x0e\x8b\x00\x88\xa5\x00\xb8I\x81\x01^\x00q\x1c\x00\
+;J\x9c_\x06\xc0\x0e\x17\xe7\xe5\x00\xd8\x0byQB\
+\x80h\x00(\xf2\x09\x111\x09\x00\xb5\x03\xa0\xbbF\xf0\
+\x93y\x00\x8b\x0b`^D2/\x1e`m\x04`\x19\
+\x1f\x9f\x18\x01\xb0\xae\x010\xe6\x09\x92\x84\x00\xab\x05\x80\
+Yp\xc8L\x8e\xf8\xc8\xe1\x91\x80u\x08@\x1e\xffY\
+\x9b/\x05\x14i\x02\x8a5?k&\x11\x80F\x01p\
+\xf5\xc4\xcfZ_\x00\x08\x00\x84rUr\xa4\xb5\x15\x00\
+\x80\x90\xf2\x04h/D\xa2>C@b\x0b0\x9c+\
+\x12}=$\x12\x0d\x1f\x06(M\xc0\xad8^J\xd2\
+\xc2\x11/\x82x\x00\xfc\xaf\xb5\xf8\xce#A!\x00\x02\
+$\x95\xce\x90dI\xb1e\xe4\xe4\x15\x94\x94U\xd54\
+4\xb5u8z\xa3\xf4\x0d\x8d\x8cMGs\xcd-,\
+\xc7X\xdb\xd8\xda\xd9\x8futrvqus\xf7\xf0\
+\xf4\x1a7\xde{\xc2\xc4I\x93\xa7\xf8\xf8\xfa\xfd\xe6?\
+5 p\xfa\x8c\xa0\xe0\x90\x99\xb3\xe6\xcc\x9d\x17\x1a\x16\
+\xce\x8b\x88\x8c\x8a\x8e\x89\x9d\x1f\x17\x9f X\x90\x94,\
+LY\x98\xba(m\xc9\xd2e\xcbW\xac\x5c\x95\x9e\xb1\
+&3k\xed\xba\xf5\x1b6fo\xca\xc9\xdd\xb2u\xdb\
+\xf6\x1d;w\xed\xde\x93\x97\xbfw\xff\x81\x83\x87\x0e\x1f\
+9Zp\xec\xf8\x89\x93\xa7N\x9f9{\xae\xb0\xa8\xe8\
+\xfc\x85\x8b\xc5\xbf_\xba|\xe5\x8f\xab\xd7\xae_\xbfq\
+\xf3V\xc9\xed;w\xef\x96\x96\xdd+\xbf_QQ\xf9\
+\xe7\x83\x87UU\x8f\x1eW\xd7\xd4\xd4\xd6\xd5\xd5?i\
+hx\xda\xd8\xf8\xac\xa9\xe9\xf9\x8b\x17\xcd/_\xbez\
+\xfd\xfaMKK\xeb\xdb\xb6\xb6\xf6w\xef\xfez\xff\xbe\
+\xe3CggWwwOo__\xff\xc0\xc0\xc7O\
+\x9f?\x7f\x19\x1c\xfc:44\xfc\xed\x9b\x08$\x95.\
+!\xc9\x94\x92\x96\x91\x95WPTVQS\xd7\xd4\xd2\
+\xe6\xe8\xea\xe9\x1b\x18\x1a\x9b\x98r\xcd\xcc-,\xad\xac\
+ml\xed\xc6:\xfc\x1b\xc0\xb4\x11\x80\xd9#\x00\xfc\xef\
+\x00\x89?\x00\x16\xff\x00X\xbd&3k\xed\xfa\x0d\x1b\
+\xb37m\xfeE \x7f\xef\xbe\x7f\x10\x18\x01\x10\x0b\x88\
+\x01\xee\xfc\x0d\xe0\xd1\xe3\xc7\xd55\xb5\xb5u\xf5\xff\x08\
+\xd0\xfa\x03\xa0C\x0c\xd0\xd3\xd3\xdb\xd7\xdf?\xf0\xf1\xe3\
+\xa7\xcf_\xbe\xfc\xbc?\x85FgH2Y\xd2l\x19\
+Yy\x05E%\x15U5u\x0dMm\x1d\x8e\xae\xde\
+(}\x03#c\x13\xd3\xd1\x5c3s\x0b\xcb1V\xd6\
+66\xb6v\xf6c\x1d\x1c\x9d\x9cG$~\xa5\x10\x0f\
+\xc3w\x8cY\xb3\xe7\xcc\x9d\x17\x1a\x1a\x16\xce\x8b\xf8\xe1\
+\x91\xf0\x0bH\xda\xdfE\xd6\xfdB\xf2}&\xbe\x93\xfc\
+\x93\x89\x98dd(J\xcb\xee\x95\x97\xdf\xff\x95\xa4\xae\
+\xfe\x89\xd8\xe3\xf9\x8b\xe6\x97\xaf^\xbfii}\xdb\xd6\
+\xfe\xee\xaf\xf7\x1d\x1f:\xbb\xba{z\xfb\xfa\x07>~\
+\xfe2\xf8uh\xf8\x9b\x08\x10\xff\xfb\x00@\xb7\x03\x0e\
+'\x003\x98@\xe0!`{1`\xe4\x04\xa8t\x01\
+\xfe\xd2@\xa0\x03\xc8dk\x90\x91\x91 U\x98\xa0\x10\
+\x00\x09\x80\x00\x05tHB\x06\xca\xd0\x81)\xec0\x0e\
+\x81\xe0#\x15\xeb\xb1\x0f\x17Q\x89\x16|#\xd4\x09{\
+b:\x91Ll%\x8a\x89\xa7\xc47\xd2\x80\xf4%\x17\
+\x92\xfb\xc9J\xf2\x0b\xc5\x84\x12B\xd9@\xb9I\xe9\xa7\
+r\xa9\x11\xd4\xbd\xd4\xa74UZ\x10m7\xad\x89\xae\
+G\x8f\xa6_\xa0\x8b$|$\xf6Ht0<\x18\xbb\
+\x18\xbd\x92~\x92g\x98l\xe6\x02f\x03\xcb\x8bU(\
+\xa5-\xb5I\x9a\x94N\x93\x1e`'\xb3\xfbdRe\
+\x86e3\xe5\xe4\xe4\x0e\xca\xdb\xc8W(\x84+|S\
+\xdc\xad\xa4\xaftJ\xd9J\xf9\x9a\xca\x04\x95\x1a\xd5p\
+\xd5~\xb5u\xeaZ\xea\x175|4Z5\x97i\xa9\
+h\x15k\xfbkw\xea\xe4pl8\x8d\xba\x19z\xa3\
+\xf5\xaaG-\xd5\xb7\xd0o2\xd8h\xe8b\xd8it\
+\xd08\xc8\x84mRj\x9a>\xdak\xf40\xf7\xba\xd9\
+\x0as\x0f\x0b\x9aE\xa5\xe5\xb61s\xac\x8c\xacz\xad\
+o\xda\xe4\xd8\x86\xdb\xd9\xda\xb3\xec_\x8f\xbd\xe2\xb0\xd9\
+\x91\xef\xe4\xe2\xac\xe5\xfc\xcd\xa5\xd9\xf5\x86\xdb\x01\xf7\x0c\
+\x8fH\xcf)^\xd6\xe38\xe3e\xc7\x0fywO\xa8\
+\x9fxo\xd2\xed\xc9%Sn\xfb\x94\xf9V\xfa=\xfa\
+\xad\xce\xbfi\xea\xbb\x80\xaf\x81r\xd3\x8df8\x07\x05\
+\x06\x0bB\xb2g\x9e\x99U3[4\xd7b\xde\xbc\xd0\
+\x9c\xb02\x1e\x19\xe1\xc6_\x12y5\x9a\x12\xe3\x1f\xbb\
+w~w\xfc\xe4\x84<\x01\x16\xf0\x92\xca\x84\x96)\xfb\
+S\xe5\x16\xadMc,Y\xbetp\xf9\xca\x95\xccU\
+[3tV_\xca\xf4\xc9j^\xb7d\x83\xd6\xc6\x92\
+M\xc1\x9bE\xb9\xa7\xb7\xce\xda.\xb1\xe3\xcc\xae]{\
+\x8a\xf2_\xef\x97=\xe8|Xp\xf4\xd8\xb1\xfa\x93\x92\
+\xa7'\x9d\xcd.,=/*\xf6\xba\x94~\xa5\xf2\x9a\
+\xec\x8d\xa0[Gn\xf7\x97z\xdc\xcb\xbd\xff\xf2O\x87\
+\x87\x1b\x1e\xbd\xa9\xb1\xad\xdb\xf2\xa4\xb71\xa0\xe9r\xb3\
+\xda\xab\xb47/\xde\xfa\xb7\x97\xbc\xb7\xfeP\xd0m\xd4\
+\x9b7\xa0\xf4i\xd7\xa0\xee\xd0S\x91\xe8G\xff\x99\x90\
+\x81\x0at\xc1\x85\x03&\x22\x04\xb1X\x8a\x1c\x14\xe0\x1a\
+\xea\xd0E0\x09c\xc2\x9b\x88 V\x13\x05D\x05\xd1\
+E*\x93\xaed4\xb9\x85\xbcAvP4)\xbe\x94\
+\x15\x94\x0b\x94v*\x87\x1aL\xddB}Hc\xd3\xfc\
+h\x9bi\xb5t\x0dz8\xfd4\xfd\xb3\x84\xb7\xc46\
+\x896\x863c\x1b\xa3Sr\x8a\xe4\x09&\x8b\x99\xc0\
+\xacgy\xb0\xceJiIeK\x13\xd2\x8b\xa5\xfb\xd9\
+\xc9\xec>\x99\x852C\xb2k\xe4\xe4\xe4\x0e\xfc\xcf\xee\
+\xfbj\xb4j.\xd7R\xd1*\xd6\x9e\xaa\xdd\xad\xb3\x85\
+c\xc7y\xae\x9b\xa9g\xa1\xf7dT\xba\xbe\x9d~\xab\
+\xc1\x0e\xc3\x89\x86_\x8d\xce\x19G\x9a\xe8\x984\x9a\xee\
+\x1e\x1d\xc2U\xe2>3;h\xce\xb7\xe0Z|\xb4\xbc\
+=&\xc7j\xae\xb5\x99\x0dl\x9e\xd8\x9e\xb4\xcb\xb4\x0f\
+\x1f\xeb\xea\xa0\xee\xf0\xd1\xb1\xd6\xe9w\xe7|\x97\x0c\xd7\
+X\xb7\x00w'\x0f#Oy/x\xf5\x8e\xeb\x19\xff\
+\xca\xbbi\xc2\x83\x89w'\x95L.\x99R\xe2s\xc7\
+\xb7\xdc\xaf\xf2\xb7*\xff\xda\xa9\xcd\x01\x9d\x81\xc4t\x85\
+\x19\x06A\xf6\xc1\xfe!\xd13\xd3g\x1d\x98]:\xa7\
+k\x9eF\xa8{Xt\xf8.^=\x9f\x15\xe9\x12\x95\
+\x16}=\x16\xf3\xc7\xc7\xe5\xc4\xbfH4\x17\xa4/h\
+H\xb6\x12\xe6\xa6\xf4\xa7\x86,\xba\x95f\xbad\xff2\
+\x85\xe5\xd9+\x99\xab\xb22(\xabWe\xb2\xb2\xf2\xd6\
+\x19\xaf\xbf\xbc\xd1/\xfb\xfd\xe6\x0d\xb9F[J\xb6\xf1\
+v(\xee|\xbe\xfbI>}\x9f\xcd\x01\xfe\xa1\xddG\
+\x1e\x1c\xa3\x9cp<\x15\x7f\xe6\xf4\xb9\xb6\xf3\xdc\x8b)\
+\xbf\x17_\xfer\xd5\xf9\xfa\xea\x9b\x8fnk\xdd\x0d+\
++*\x1f\xaa\xf4{\x90_\xf5\xa1\xda\xb3vg\xfd\xdb\
+\xa7\xf6\xcfr\x9e\xb7\xbet{\xbd\xa3\xe5C\x9b\xef\xbb\
+\xfd\xef\xbft\xce\xe8\xbe\xde\xa77\xb0\xf6S\xd7\xe0\x9c\
+\xa1\xee\x91\xfe\x93`A\x16\xca\xe0\xc0\x1c.\xf0C8\
+R\xb1\x09\x05(\xc1\x0b\x0c\x13\xda\x84;\x11A\xac#\
+\x8a\x88&\x92A\xda\x91Q\xe4N\xb2\x92BR\x9c(\
+)\x94\x22J7\xd5\x8a*\xa4\xfeA\xa3\xd0\xfchy\
+\xb4\xf7tW\xfa6z\x87\xc4\x04\x89\xa3\x0c:#\x96\
+Q-\xe9*y\x86\xa9\xc3\xdc\xc1\x92eeKIK\
+m\x96V\x92>\xc4\xb6f\x97\xc9\xcc\x91\xf9,\xbb]\
+\xceN\xaeI>K\xc1N\xa1]1_\xc9K\xa9Y\
+y\xad\x8a\xb9J\x83\xea\x1a5;\xb5v\xf5|\x8di\
+\x9aL\xcd[Z\x8b\xb5m\xb4\xbbu\x0a9\xc9\xba\x8e\
+z\x14\xbd{\xa3r\xf5C\x0d\xcc\x0d\x86\x0d+\x8d\xf2\
+\x8c\x13L<MUM{FWr\x0b\xcc2\xccC\
+-\xdc,9c\xa8c\xda\xac*\xac\x0bm\xf6\xd8\xa6\
+\xdb\xc5\xdb\xcf\x1e;\xd9\xc1\xdeQ\xcfI\xc6\x99\xe2<\
+\xe8\xd2\xed\xda\xe2\xd6\xe0^\xe3Q\xeeY\xe2uk\x5c\
+\xe9\xf8R\xef\xb2\x09w&\xde\x9dT9\xb9fJ\x93\
+O\xbbo\xbf\x9f\xc8\x9f9U%\xc0d\x9a[`\xd0\
+\xf4\x84\x19k\x82\xf6\x06_\x09i\x9c9<[g\x8e\
+\xdb\xdc\xb0yY\xa1\x85aM<F\x84-\x9f\x1f\xb9\
++\xaa*\x86\x11;~~F\x5cI\xbc(\xd1U\x90\
+\xbe\xe0~\xb2\x8204\xa5(\x95\x5c\x14\xb8\xf8\xe4\x12\
+ri\xc8\xb2\x8b+\xd4V\xa6\xadj\xc8\xf0\x5c}.\
+S#k\xf5\xda\xee\xf5\xbc\x0d\xd5\xd9\xde\x9bn\xe68\
+\xe6^\xd9\xea\xb0\xed\xea\x0e\xd7\x9d\xa5\xbbg\xec\xe9\xc9\
+\xdf\xba\xcft\xff\x83\x83\x89\x87\xe5\x8f\x5c-\x88<\xce\
+:Qx*\xe1\x8c\xce\xd9\x87\x85\xcb\xcf[_\xe8*\
+>})\xe6\x8a\xe9\x1f\x8d\xd7\xf2n\x04\xddR,\xa9\
+\xbd\xb3\xbdt\xfa=\xa5\xf2\x9a\x8aM\x7fNy\xc8\xac\
+*{\xbc\xa8\xc6\xaa\xb6\xbd\xfe`Cp#\xfb\xd9\x8d\
+\xe7\xf3\x9b\xd5_V\xbc\x16\xb6\xa8\xb6\xdeh\x8b}\xc7\
+\xf8\xebP\x87\xf7\x87\x97]Kz\x94zO\xf4;\x0c\
+T|\x9a\xf5\xb9cp\xed\x90\xeap\xa3H\x04\x88\xdf\
+\x8b\x00\x00Z\x8co\x18\x0f\xff\xe7\x88\x8fK\xf9\xbe'\
+\x09@\x8a\x9f0}\x1a\x00\x06\x00c\x81\xd0?\xf0{\
+\x8e\x18\xf8\x22\x0c<\xf1;\x15\x00\xe8\xb2@\xbe\x11\x00\
+\x5c\xf6M\xfa\xaf}\x85\xfcEB\x00\xf0J\x14,N\
+\x8a\x89\x8a\x16r<\x04\x828>\xc7+1^\x90\x22\
+\xe4'q9\x93\x12x\xe6\x5c\x8e\x95\xa5\xa5-\x00\xfc\
+\x07\x8f\x08\x91L8\xcf\x9b\xb0\x00\x00 \x00IDA\
+Tx\x9c\xed}y\x9c\x5cU\x9d\xef\xf7\xdc\xa5\xf6\xad\
+\xbbz\xdf\x93\xce\xbe\x07\x0cc\x10\x95\x00\x03\x08\x88\xe8\
+\xa0\xbe,\x84\x04\xf8\xa08\xce<\x9e\xcb\x88\x06\x12\xc0\
+\x91y\xbc7\x8e\xa3\x83\xdbg\x06\x01\xc5\x04d\x10|\
+\x82Q\x90@p\x09\x88\x06!\xa1\x93\xd0\xdd\xe9\xee\xa4\
+\x93\xde\xbb\xab\xba\xba\xd6[u\xef\xfb\xe3\xdcs\xb7\xba\
+U]\xd5I $\xf9}>\xf7S\xd5\xb7\xef\xbd\xe7\
+\xdc\xf3\xfd\x9e\xdfv\x96\x22\x00\x88\xa2(\x0a\xce\xc9Y\
+)\x1c\x00\x10B\xc8\xbb]\x91s\xf2\xee\x08Q\x0fM\
+\xcei\x83\xb3K8\xeb\x89s\xda\xe0\xec\x92<\x02\x00\
+\xe7Hp6\x89-\x01\x80s$8[\x84+f\xf2\
+\x09!\xe4\x89'\x9e\xe0\xdf\xc1\xfa\x9c\x93wX\x88\xa2\
+(\x04\x00\xac\x1d~\xdb\xb6md\xf1\xe2+\x9c\x92+\
+\xed\x05\x17\xcf\xad\xbb\xfa\xea\x89w\xa5\x86\xe7\xe4\x94\x8a\
+F\x00@'\xc1\xb6m\xdb\xc8G?\xfaQ\x17\x17\x08\
+xG\x06\xc6}S\x93R \x97\xcb\xa4>\xf9\xb1K\
+\x0e\xbdk5='\xa7DL\x04\x00\x80'\x9ex\x82\
+[\xb4\xe8\xc3n\xb7[\xf1&ri\x1f\x0790>\
+6\x15\x1c\x1d\x9f\x08)\x8a\xa2\x1c\xed\x8e\xff\xfa\x1f\xff\
+\xf1#\xe9w\xab\xc2\xe7\xe4\xe4\x0a\x01%\x01\xfb\x9b\x03\
+\xe0\x89\xc7\xe3\xde\xc1\x89\x84\x1fr6\x90M\xe6\x82\x92\
+\x92\xabH'S\x15\xc7\x87F+r9\x85\x83$o\
+\xbf\xee\xba\x0f\x1d=\xa9\x159A\xa7\xf3\x5c\xfebf\
+\xa2%\x82^|Q\xe1/\xbe\x18^\x00^\x00~\x00\
+\x81\xe3\xc7\xc7BYE\x0e%\xe2\xe9\x0aE\xc9V\xa6\
+R\xd9\xca\xc1\xe1\xb1j)+\xb9\xb9\x1c~p\xcd5\
+\x17\xbd4\xa3B\x8b\x83=\x13\x22\xd8\x82\x7f\x8e\x14\xd3\
+\x0b\x01@\xf6\xef\xdf/z\xbd^OMM\x8d\xd7\xe3\
+\xf1\x04\x00\x04\x00\x84\x00\x84\x86F\xa3\x15R&S\x99\
+\x88\xa7\xc3\x92\x9c\xab\xcaf\xe5\xea\xa1\xa1\xd1\xea\x8c$\
+\xd5\xc8P\xfe\xf5\xda+>\xf0\x1f%\x17f\x06\xde\x0a\
+4\xb19_\x88\x0cV`\x95\x02\x9f\xf4\x8fsD(\
+(\xe4\xa1\x87^t-ZT\xeb\xf5z\x9d^\xbf\xdf\
+\xe3\x0f\x85\x82\x81@\xc0\x1d\x02%@%\x80\xca\xf1\xf1\
+X8\x99\x96\xaa\x92\xc9du:\x9d\xa9V@jF\
+\xc7\x22\xd5\x89D\xca!+\xca\xc3\xd7\x5c\xb1zs\xc1\
+\x02\xf2{\xbb\x11hb\xf3\xb7\xf1\x9a\xe9\xc4\x08\xacl\
+9g\xfd\x9b\xfeq\x8e\x0c&\x11\x1c\x8e\x98/!\x87\
+|.\xde\xe9Oe3\xa1\xc9\xc9\xa9@\x0e\xb9\x8a\x8a\
+\x80\xaf\x02@\x18@\xb8\xb2\xd2_\x15\x9dLTs<\
+\xaay\x9e\xab\x89\xc7S\xe1p8$\x8aB\x0c\xd1X\
+|\xd3\xb3\xcf\xedi\x93\x12\xe9\x8f_w\xdd\xc5\x11\xa0\
+ \xe8V\x809\x9b\xff\x99\xce\xbf\xf5V\xd7EZE\
+\x85\xfc\xca?\xf5\xd4\xb3o\xdeq\xc7\xff\x8c\x80\x82\xac\
+\x80\x82\xce\x00fe\xb1\xf3\x00\xa0\xb0\xba\x9d#\x02\x15\
+\xf2\xe0\xcf~U\xed\x17\xf9\xc6\xc6\x86\xba@(\xe8\xaf\
+p8\x5cA\x97\xd3Q\xe9p\x88\x955U\x810\x80\
+jv$\xd3\xd9\x9a\xc9\xc9\xa9\xcatF\xe2c\xb1\x04\
+dYF<\x91D$:\x05YV\xfe\xaa(\xd9\xcd\
+\xd7\x5cq\xd1\x1b\xc6\xe7\xc3\x0c4g\xf7\xf9\xd4SO\
+\xb5\xae\x5c\xb9\xeaC\x1e\x8fw\x89\xd3\xe9Z\xeat:\
+\x96p\x1c\x17,Zq\x03\xc5dY\x8ef\xb3\xd9}\
+\xe9t\xea\xf7\xd1h\xf4\xcdg\x9eyn\xf7?\xfc\xc3\
+-\x11P\xe0\x19)\xac\xc79\x12@\xedu?yr\
+g\x9d\x87w\xbf?\x14\xf6W\xd4VUV\xb8\x9cb\
+\xa5\xdb\xe9\x0a;\x5cbUUe\xa0\x1a@\x8dz\x84\
+\xa4\xac\xc2E\xa31HR\x0e\xe3\x13Q\xe4d\x05\x19\
+I\xc2\xe8X\x14\x8a,G2r\xf6\x13\xd7]y\xd1\
+n\x14\x00\x1b\x00\xb7z\xf5U\x95\xb7\xdf\xfe\xf9\x0f\xae\
+Zu\xde\xd5UU\xa1%N\xa7s\x89\xa9R'\x98\
+\x84&\x04\x90$i_,\x96\xf8\xe9\xbe}\x7f\xfe\xe5\
+e\x97]\xd6\x033\x194Mq\xb6\x93@S\xcb;\
+~\xfe\xfc\x5c\x87\xc3yeE\xc0__\x13\x0eU\x89\
+\xa2P\xe5\x0b\xb8k\x04\xc2WWV\x85j\x04\x0e\x01\
+vm.\x07\xc4\xa6\x12\x90\xb2Y\x8c\x8cE \xa5%\
+\xc8\x8aB\x09\x91\x95\x91\xc9H7\x7f\xf4\xaa\x0f<\x0a\
+\x0a:\x07\x80\x07\xc0m\xdd\xfa\x1f\x1b\xd6\xac\xb9\xf0\xea\
+\x05\x0b\xe6|$\x14\x0ah\x95\xe0\x0a\x8eH\xd8Tx\
+\x06\xe4\x90$i\xdf\xd8\xd8\xd8}--\xf5O#\x9f\
+\x08\x00\xce^\x22\x98\xe6\x03\xfc\xecg\xbfmp\xfa\x5c\
+_u:\xc5\x96\xc6\xba\xeaj\xd1!\xd6\xf8\xbc\x9e\x1a\
+\x87C\xf0\x05\xfd\x1e8\x1c\xba!V\x14`2\x96\x80\
+$e119\x85\xf8T\x029Y\xc1\xd4T\x02\xe9\
+T\x06\x99l\xfa\xd1\x8f^\xf9\xc1\xcf\xad^}U\xe5\
+'?\xf9?\xfe\xfe\xa2\x8b.\xb8u\xee\xdc\xd6\xa0\xd3\
+\xe9\xccK;\x17\x93\x93I\x8e\xe1\xe1\xa1\xdb\x9a\x9a\xea\
+~\x0c \x87|\xf3pV\x92 oB\xc8\x8e\x9f\xbf\
+0\xdb\xe7r\xdd\xebp\x88\x1f\xa8\xae\x0e\xd5\xb8\x5cN\
+w0\xe0\x87(\xf2\xb0#\xc1T2\x83lF\xc2x\
+d\x12\x93\x93q@Q0\x95L!\x95L\xa3\xaf\xbb\
+\x7f\xff\x82\x05s\x9a\xcf?\x7fqQ{n\xaa\xd0)\
+&\xc7\xc0\xc0\xc0\xe7Z[\x1b\x1e\xc19\x12\x00(0\
+#\xe8\xd1\x9d;\x03A\x12|^\x10\x84\x0b\xeak*\
+\xe1p\x88\xf0\xfb=p\xbb\x9cp\xba\x5c\xf0{\x1dT\
+\x7f\xaaM\x95IKH\xa7%\xc4\xe2\x09\x0c\x8fL \
+\x16\x9dB,\x9a\xc0E\x17\x9d\x07\xa7\xd3axz>\
+b\xe5\xa8\xf4\x93E\x8e\xd1\xd1\xe1\xaf56\xd6~\x07\
+\x94\x049\x18\xfc\x82s\x0404\xc03\xbf\xd9\xf3\x90\
+\xc0\xf3\x9bB!?\xbc\x1e7B!\x1f<n'\x1c\
+\x0e\x11\x1e\x97\x8b\xe2)\xd3\xd6\xcb\xe6\xb2\xc8\xa4%\xec\
+\xdb\xd7\x09\xbf/\x80\xf6\xf6f\xfb\x02\x0bb\xf8\xce\x92\
+#\x91Hl\xaf\xa8\xf0~\x06@\x16g1\x09\xc8t\
+\xef\xfa\xecs\x7f\xfc\x16G\xb8\xdbC\xa1\x00\xbc^7\
+<n'\xc2\x15Ap<\x07\xaf\xc7\xad_\xa8(\xf8\
+\xfd\x1f\xfe\x8a\xb6\xd6f\x84\xc3\x15\xda\xe9\x13\xb7\xe1\xf6\
+\x0f8\x19\xe4H&\x13\xdb++5\x12\xc8\x86\xe3\xac\
+!\xc1\xb4\x04\x00\x80g\x9f{e\x13\xc7q\x0fy<\
+N\x84\x82\x01\xb8]\x0e\x84\xc3\x01\x88\x9c\x00\x97\xdb\x01\
+I\xcaa\xd7\x0b\xafa\xf5\xea\x95\x16\x95o**\xef\
+\xcc\xe9@\x8eD\x22\xb1\xbd\xaa\xcaw\xd6j\x82\x92\x08\
+\x00\x00\xcf\xfc\xfa\x95\x8by\x9e<\xe5\xf6\xb8BA\xbf\
+\x17N\x87\x88\xfa\xba*\xf0<\x87\xdf\xff\xeeu\x5cp\
+\xc1\x0a8\x1c\x85\xc0W\x0b+\x08\xcc\xbbK\x0e\x0b\x09\
+\xce*MP2\x01\x08!\xe4\xc9\xff\xb7{\xa5\xd7\xed\
+zA\x10\xc5Pe\xc8\x07A\x14q\xac\x7f\x10\xcb\x96\
+,\x80\xcf\xe7\xb5\xbb\xab\xf4\x8a\x9cdrd\xb39d\
+\xb3\x12\xdcn\x97\xcd\x7f\xf3\x1f\x10\x8f'\xb6\xd7\xd4\x9c\
+}$(\x87\x00\x1c\x00\xee\x1b\xdf\xf8v\xc5y\x17\xac\
+\xfa\xad 8\x96\xc5\xa2SX\xbcp.jk\xab\xa7\
+\xb9\xd7\xf6l\xe9\x95,\x93\x1c\x03\x03\xc7\xd1\xd3\xd3\x83\
+l6\x87E\x8b\x16\xa2\xaa\xca\xbe~\xd6\xe7R\x12\x04\
+>\x0b@\xc2YB\x82\x92\x08\xa0\x0e\xa0\x10\xd0\x8c\x1e\
+\xff\x99\xcf\xfc\xaf\xf0e\x97_\xb3\xb3\xa6\xaaj\xe9\xb2\
+e\x0bm\xae/\xa3\x02'\x91\x1c\x83\x83\x14\xf8T*\
+\x0dB\x088\x8e\xfes\xfe\xfcE\xa8\xad\xad-Is\
+$\x12\x89\xed55\x01[\x9f\x008\xf3\xf2\x04\xd36\
+\x89\x01|-\xad\xdb\xdb{XLL%C\x0b\x16\xb4\
+\x83\xb6\x87\xf9P\x14\x05\x8a\x02\xdb\xc3*\xf6\xd7)\xb6\
+\xcf\xb5\x9b\xf7\xa1(\xc0\xc4\xc4\x04\xf6\xee\xdd\x8b\x8e\x8e\
+\x8e<\xf0C\xa1\x0a\xd51U \xcb\x0ad\x19\xb6\x07\
+\x13\x8f\xc7\xb3nxx\xf2\x87\xdf\xfc\xe67\xc3\xa0\x84\
+7\x8ec\x9cq\xd3\xe5m\x06Y\xa9\x18^\x945\x00\
+\xaf^/\x5cy\xe5'\xbe\xbat\xe9\x82fQ\x14\x01\
+\xd8\x03\xcb\xc0\xb26\x17\xbd\xd6\xbe\x0d\xed\xaf-\xfc\xdc\
+\x89\x89\x09\xf4\xf6\x1eF$\x12\x01!\x00!\x9c\x06\xbe\
+\xcb\xe5F{{;*+\xab,\xcf\xb2\xaf\x17%\x01\
+=\xe9ry\xd6m\xde\xfc\xb9\xa5\x92$]u\xc7\x1d\
+w\x8c\x81j\x035\xebA\x87\x94\xcf\x14M`K\x80\
+\x02\xe0\xf3\x00\x84M\x9bno\xaf\xad\xad\xbf\xb5\xa5\xa5\
+\x11\xb2\xb1\xeb\xa8\xc2Y\xf4\xec\xa9 G2\x99Do\
+o\x0f\x06\x07\x8f\xab1>\xc7\xea\x0dQ\x14\xd1\xde\xde\
+\x8e\xda\xda:SY\xec\xb9\x91\xc8\x04B\xa1\x8ai\xeb\
+%\x08\xc2\xd2[o\xfd\xc7_\x01`$\xc8\xa9\x17\x9d\
+Q$(\xa8\x01\x90?IC\x00 \xaeZ\xf57_\
+\x993\xa7Uk\xc0\xfc\x9e\x94O\x0a&'J\x8ed\
+2\x85\xde\xde\xc3\x18\x1c\x1c\x00!\x04\x84\xf0\xea\xb5\x14\
+\xf8\xc6\xc6F466A\x10\x84\xbcgG\x22\xe3\x9a\
+\xb6\xa8\xafo\xc0\x82\x05F\xdf\xc5\x5c\x18\xbb\x97\xe7\xc5\
+\xa5\xb7\xdc\xa2\x91`\xd4\xf8\x9a8CH\x90G\x00\x83\
+\xcd\xcf\xeb\xfd\x1b7~f\xb6\xcf\x17\xf8Tmm\x8d\
+v}\xb1\xd7?Y\xe4\xc8f\xb38r\xa4\x0f\xc7\x8e\
+\xf5#\x97\xcb\xaa\xea^\xab/\xea\xeaj\xd1\xd2\xd2\x06\
+\x97\xcb\x9dwo$\x92o&\x86\x86\x86\x90H\xc4\xb1\
+t\xe9\x0a\x08\x82\x00@)\xe8\xb8\x8a\xe2\x99M\x82\xe9\
+4\x80\xd1\xf6\x8b\xef\x7f\xff\x9a/\x07\x83>\xb8\xddN\
+\xd8\xbd\xb3\xd5?:\x19\xe4\xe8\xed\xedA\x7f\xffQd\
+\xb3Yp\x1cQ{>%K(T\x81y\xf3\xe6\xc3\
+\xe5r\xa9\xe5\xe9@\xeafb\xc0t\x0f@\xe0r\xb9\
+\xd0\xd0\xd0\xa4\x82?]]\x15\x88\xa2\xb0\xf4\xe6\x9b\xff\
+\x81\x91`\x1c\xd4'\x00\xce\x00\x12\x98\x08`\xb1\xfdF\
+\x02\x88\x1f\xf8\xc0\x9a\xaa`0x}\xb1\x98\x7f\x9au\
+\x86\x96k\x0bW\x8a\x10`pp\x00\xbd\xbd\x87\x91J\
+\xa5\x00\x10\x0d|\x00\x08\x06ChmmC \x10\xc8\
+\xd3\x1c\x89\x04\x05~hh@+\x97i\x0cA\x10\xd1\
+\xd8\xd8\x84\xd6\xd6VC}\xa7\xf79\x14\x85j\x02\x03\
+\x09\xc6\x0c\x97\xbe\xa7I`\xa7\x01\xac\xe0\x0b\x00\xc4\x8f\
+~\xf4\xfa\xab9\x8e\x83\xdf\xef\xcb\x03\xba\x94\xc8\xa8T\
+r\x8c\x8c\x8c\xa0\xab\xebm\xa4\xd3\x14xB85~\
+'p:\xddhmmCmm\xadv=\xd3\x1c\xb9\
+\x5c\x0eG\x8f\x1e)\xa0-\x08Z[\xdb\xd0\xd0\xd0h\
+\xe3\x1f(\xc8f\xb3\x98\x9a\x9aDEE\xa5\xa1\xbe\xac\
+)t\x11\x04q\xe9\xe6\xcd\x9f\xdf\x09\xe0#g\x0a\x09\
+\x8a\x11@\xb3\xfd\x00\xc4\xea\xea\xba\xcb9\x8e\xd3\xd4\xad\
+Q\xca\xe9\xf9v\xa2(\x0a\x22\x91\x09\xf4\xf4\xf4 \x1a\
+\x1d\xd7@c!\x1d\xcfS\x07\xaf\xb5\xb5M\xbd\xde|\
+?3\x13\xb9\x5c\x16FmA\x08\x87\x9a\x9aZ\xb4\xb6\
+\xb6\xc1\xe9t\x02\xd0\x09\xc3q\x1c$I\xc2\xb1cG\
+p\xf4h?d9\x8b\xf9\xf3\x17\xa1\xae\xae\xdeX3\
+\xf5\x1d\xf43\x0e\x87\xb8d\xf3\xe6\xcf\xed\xbc\xe0\x82\x0f\
+}\xf6\x92K.\xdc\x0b\x9d%\xefI\x12h\x99@\x83\
+\xfa7\x02\xef\x04\xe0\x02\xe0y\xfc\xf1\xe7\xf7r\x1c\xf1\
+_t\xd1\xea\xa2\x0f,o\x10\x87`j*\x86\xce\xce\
+C\x88F#\x008\x8d0\x0c\xfc\x96\x96\xd6<{\xcd\
+dpp\x10\xbd\xbd\x87\x91N\xa7A\x08\xd4\xe4\x0f\x05\
+>\x18\x0c\xa1\xa5\xa5\x05\xc1`H}\x9e\xf9\xde\xfe\xfe\
+\xa3\xe8\xed\xed\xc9\xd3\x16\x8d\x8dMho\x9f3m\xdd\
+eY\x8e\xbe\xf9\xe6\xebW_r\xc9\x85\xaf\xc3<~\
+\xf0\x9e\xca\x18Z[\xd5\x1a\xffk\xe1\x9f(\x0a~Y\
+V\xa6U\xffE\x1c}\x139\x98\x9364t\x1c\x0c\
+4\xb3g_\x8f\x96\x96V[\x8d\xa3\x9b\x894\xacn\
+\x8b\xcb\xe5\xc6\xdc\xb9\xf3\x11\x0a\x85L\xf7\xb0j\x0f\x0c\
+P\xdf\x22\x93I\x83j\x0bN\x8b\x0ejj\xea\xd0\xd0\
+`\x9f\xdf\xd0\xdf\x81c\x9f\xc1e\xcbV>\xbbk\xd7\
+\x1f\xafV5\x81\xd6\x04x\x0fi\x02;\x02\xe4\x85\x7f\
+\xcb\x97\x9f_I\x08\x01\xcf\x03\xb1X\x14\x81@H#\
+B9\xea_\x96\x81\x5c.\x8b\xce\xceC\x18\x1c\x1c\x00\
+\x05\x80W\x01\xd0S\xb7\xed\xed\xed\xf0z}y\xcf\x8f\
+D\x22\xe8\xed\xed6i\x0b\xaa)\xa0\xf9\x0755\xb5\
+\xb6\xf5\x8aD&p\xf0\xe0\x01\xa4\xd3)\xb0H\x97\xf6\
+|\x0e\xa1P\x08\xcd\xcdm\x08\x06\x03\xea\xbd\xc6w0\
+\xbf\x93\x85\x1c\xc1%K\x96\x1bI\xa0\xc0\x901,\xd8\
+0\xa7\x91\x08@^~\xdb\x98\x07\xe0\x01\x08\x17_|\
+\xf9\x22\x8e\xe3\xa0(\x0a:::\xb1h\xd1\x5c\x84B\
+!d\xb3Vm`~\xb8\x11\x84l6\x8b\xfe\xfe#\
+\x16[\xcdi\xe0;\x9dn\xcc\x9f?\x1f\x81\x00\xed\xb9\
+\xc6v\x8e\xc7\xa7\xd0\xd9y\x08\x93\x93\x11\xb5\x0c\x06>\
+ \x08\x02\x1a\x1b\x9b\xd0\xd0\xd0\x08\x96\x9a6\x0a\xcd\x03\
+\xf4\xa8y\x00=\x1cd\xe9\xe2Y\xb3f#\x1cf\xe9\
+b\xa5\xech\x85\xe3\xb8\xe0\x92%\xcb\x9f\xdd\xbd\xfbO\
+W}\xf8\xc3\x17\xec\x05\xcd\x18\xb2q\x83\xd3\xde\x14\x14\
+\xd2\x00&- I\xb2\xc0\xf3\x1cdY\x86\xa2\x10\x1c\
+8\xd0\x85\xc5\x8b\xe7\x22\x10\x08\x22\x9b\xcdi7\xd3W\
+\xb5w\x02h\xde\xbe\xc7`\xab)\xf8N\xa7K\xed\xb9\
+u\xea3t\x10R)=\x96\xa7\x9aWO\xf9\x02\x04\
+55uhoo\xd7\xfc\x03c[\xa7RI\x1c<\
+\xd8\x91\xa7-\x00\xa8\xe9\xe29\x9a\xb60\xcaLBY\
+B\xb8\xe0\x82\x05\x8b\x7fe \x01\xa0\xae98\xddI\
+`$\x805\x07\xa0\x91\x80\x90\x1cGU-\x05@\x96\
+ettP\x12x\xbd\x01\xe4r9\xc3ch\xd7\xb5\
+j\x83\xaa\xaa0\xce?\x7f\x15::\xdeB&\x93\x86\
+(\x8a\xa8\xafg=\xd7\xccCI\x92\xd0\xd5\xf5\xb6\x9a\
+\xc41\x12\x86\xf6\xfap\xb8\x1a\xb3g\xcf1x\xf6\xfa\
+\xbd\xe9\xb4\x9e\x07P\xa70h\xe0\x1b\xb5\x05\x0d\x075\
+\x07\xb8\xa4\xc6*\x86#\xc7q\xc1\xb6\xb69\x7f\x0f\xe0\
+3\xd6\xc68\x9dIP(\x13h\x1c\x02%\x8aB\xd7\
+T\x12BY\xcf\x88\xc0\xccA0\x18B:-\x99\x1e\
+`\xf7\xba^\xaf\x0f+W\xbe\x0f\xc3\xc3\x83\xa8\xad\xad\
+\x83 \xf0\xea\xb52\x00\x0e\xd9\xac\xa4\x9a\x09\x96\xf2e\
+\xc0P\x10\xa9\xadn\xd5<{\xab\x899v\xec\x08z\
+{{4\xdbN\x9dK\xfa:55\xf5\x98={6\
+x^\xc8\x8bTN4\x8c\x05\x80\xa1\xa1\x11\xfc\xe0\x07\
+\x8f\xb7=\xfd\xf4o\xce\xbb\xee\xba+\xacN\xe1iK\
+\x82bQ\x801\x12\xe0x\x9eh=\xcdH\x84\x83\x07\
+\xbb\xb1b\xc5b8\x1cN\xa4R\x92\xe1\x11\xba\x18\x1b\
+\x5c\x10x444\x020\x93\xa4\xb7\xb7\x1b\xc7\x8e\xd1\
+$\x0e#\x1bS\xfb.\x97\x0b\xb3f\xcd1\xd8j\xbd\
+\x1e\xcc\xb7`\xf72m\xc1\xfe\x1f\x0c\x860w\xee|\
+m\x9c\x00(=R\xa1e\x15'G6\x9b\xc5\x13O\
+\xfc\x1a\xcf>\xbb\x1b\xb7\xdd\xb6\xee\xc2U\xab\x96\xef\xee\
+\xee\x1e\xd8\xde\xde^\x7f\xab\xf11\x00\xe4\xd3\x91\x04\xc5\
+\x12A\xdaA\x88B\x08\xe1\xc1\xf3\x0a\x14E\xce#\xc2\
+\x9bo\x1e\xc0\x8a\x15\x8b\xe1r\x89H&\xa5\xa2c\xed\
+V\x19\x1a\x1a0\xc4\xf2\xc4`\xab9\xf0<\x8f\x96\x96\
+6\x8d0\x86\xa5|\x00h\x1e\xa0\xab\xab\x13\xd9,u\
+*\xd9}\x84\x105\x0f\xd0\x86`\x90.J*\xd4\xee\
+3\x0dc9\x8e\xc3\xab\xaf\xbe\x8e\xef\x7f\xffq\xac^\
+\xbd\x02\xdf\xfd\xee6x<\x1e\x002\x9cN\xef\xba\xee\
+\xee\xa1\xe0\x8e\x1d\x8f~\xe6\xce;\xbf\xc8\x86\x929\x9c\
+\x86$\x98n0H\xfdT\x08\xc7\x11\xb5\xe7\xe5\x13\x01\
+P\xf0\xc6\x1b\x1dX\xbe|\x11\x02\x017&'\x936\
+\x8f\xcb\xcf\xaa\xa5\xd3)\xf4\xf7\x1f1\x80O\x8b\x13\x04\
+\x11\x0d\x0d\xcdhll\xd4\xcc\x04\xa0\xf7|6N`\
+$\x0d@Aq\xb9\x5chiiU\x1d<\xce\xd6\x14\
+\x99\xf3\xfc\xe5\x85\xb1\x1cG066\x8e\x1f\xfe\xf0q\
+\x0c\x0e\x8ea\xcb\x96\xcf\xa1\xad-_\xa3\x89\xa2\xfb\xea\
+\xb5ko\xdc\x09\xe0#\xa73\x09\x0ai\x00\xcbw\x1e\
+<O\x09 \xcb\xb0%\x82\xa2(\xd8\xb7\xaf\x03\xcb\x96\
+-B0\xe8F4\x9a\xb0y\x9c\xb9\x91\x1c\x0e\x17\x96\
+/?\x1f\xdd\xdd\x9d\x18\x19\x19\x04@PWW\x87\xe6\
+\xe66[\x07/\x12\x99@ww'\xe2\xf1\xa9<m\
+!\x8afmA\xcb\xb1wH\x8bE+\x85\xc8A\xb5\
+\x9d\x8c\xa7\x9f\xde\x85'\x9f|\x1e\xd7_\x7f\x05\xee\xb8\
+\xe3\xb3\x86|\x08-\xcfL\x02q\xe9\xda\xb57\xee\x94\
+$\xe9\xaa{\xee\xb9c\x14\xa7!\x09\xec\xa2\x00\xab\xa8\
+&\x80\xe67x\x1eE\x88\xa0`\xdf\xbe\x83X\xbat\
+\x01\x02\x01\x0f&'\x93\x06O\xdb\xf6\xd1\xe0y\x1e\xf3\
+\xe6-@UU5\x9cN\x17\xbc^:\xbd\xdc8\x85\
++\x12\x99@__\x0f&'#`\xaa\x9ei\x0b\x80\
+\xd3\x80\xe7y^\xed\xa5\xe6R\xec\x9b\xb9tr8\x9d\
+<\xfe\xfa\xd7\x03\xf8\xeew\xb7\xa3\xa9\xa9\x0e\xdf\xfb\xde\
+\xdd\xf0z=\x05\xc1\xa7\xa4\xa5\xf3\x22\x05A\x5c\xbai\
+\xd3\xad\xfbW\xaf\xfe\xe0UW^\xf9\x81\xd7\xa1\xcf,\
+R\x08!\xf4\xcaw\x91\x08\xc5L\x80Ih\x22\x88\xa8\
+/]\x9c\x08\xfb\xf6\x1d\xc2\xd2\xa5\xf3\x11\x0e{16\
+\x16\xd7&\x89\xe6\x8bN\x8e\xca\xcaJ\xd39\x80 \x9d\
+N\xa1\xb3\xf3\x10\xc6\xc6\xc6\x0cy~]\xe5\xd7\xd4\xd4\
+\xa3\xb5\xb5U\xd3\x16\xec\xdeb>G9\xe4p8\x04\
+D\x22\x11|\xfb\xdb\xff\x8d\x8e\x8e\xc3\xb8\xfd\xf6\x1b\xb1\
+x\xf1<\xf5\xbe\xe9\xc1gu\x22\x84\x0b\xce\x9b\xb7\xf0\
+W\xbf\xf8\xc5\xcbW\x7f\xecc\x1f2\x8e\x1d\x10\xbc\xcb\
+i\xe3\x92\x86n8\x8e\xd3\x06L\xe8w\x1el\x02&\
+\xcf\xd3C\x1fP\xe1\x01(\xd8\xbf\xff\x10b\xb18\xc2\
+a/\x00R\xd6\xcc`\x9a\xc4y\x0b{\xf6\xfcA\x05\
+\x9f^\xc7\xc0\x0f\x06CX\xb1\xe2|\xcc\x9d;\x0f\x0e\
+\x87\xb3\xac\x99\xc5\xa5\xcc\x0c\xe6y\x1eN'\x8f\x9d;\
+_\xc2M7\xdd\x89\x86\x86:<\xf8\xe07\xb0ti\
+\xf9\xe0\x1b\x93EK\x96,y\xf6\x0f\x7f\xe8\xf8\x18h\
+\xc7c\x11\x96\xeah\x97\x18o\x9ed)C\x03\xe8y\
+\x00Yfqma\x8d\xa0(\xc0[o\xbd\x8d\xc5\x8b\
+\xe7\xa1\xaa\xca\x8bH$\x0eI\xa2\xadl7\xd6\xce\x84\
+\x10@\x92r\x18\x1d\x1d\xd5F\x04\xe9y\x02\xaf\xd7\x8f\
+Y\xb3\xda\x11\x0c\x06U\xd5m\xd7iJI\xe5\xda\x9b\
+%B\x08\xdcn'\xba\xbb\xfbp\xff\xfd\xff\x85P(\
+\x80\x1f\xfc\xe0nTW\x87\x01\xd8E\x08\xa5\x81O?\
+\x15\x10B\x82\xf5\xf5\xf5\xdb\xf7\xec9\xf8\xb9\xd5\xab\x17\
+<\x02=m\xfc\xae\xe5\x0a\x8c\x04\xb0+X\x01\xa0\xf0\
+<\xaf0\x1f\x80\xcd\xae)\x8d\x08\x8aJ\x82\xf9\x08\x87\
+\x03\x18\x19\x89\x19R\xc7\xf6 (\x0aM\x18\x9dw\xde\
+*\x1c8\xf0\x16\x12\x898\x5c.\xb7\xc1\xb3\xd7\xaf\xb3\
+\x97\xc2\xf3\xfb\x0a\x91\x83\x02/\x22\x99L\xe2\xdb\xdf~\
+\x0c/\xbf\xfc\x17\xdc~\xfb\x8dX\xbdz\x85\xd6\xdb\x19\
+\xf8\xe6\xdeo.\xb7\x18\xf8:Q\x14TW\xd7|o\
+\xcf\x9e\x83PI\xa07\x06\xdey\x12\x105\xf7n\x1a\
+\xfc\x81>\x0f@\xdb5\xf4\xd5W\xdf\xdaMU(\xcb\
+\xdc15K_J\xff[1\xfd\x9f\x85N\x0b\x17\xce\
+C(\xe4\xc7\xc8\xc8$\xb2\xd9\x22\xc1\xb6\xb1r\x04\x18\
+\x1e\x1eDee\x95a>@>\xba\xe5(O\xeb\xb5\
+.\x97\x08\x87\x83\xc3s\xcf\xed\xc1\x0f\x7f\xf8\x04.\xbd\
+\xf4o\xb0n\xdd5&'\xcf\x1e\xfc\xc2\xbd\xdf|\x9d\
+\x19|\xfd<\x90H$~\xba|y\x93u=\xa2B\
+\x1f\xf1\xce\x90\xc0J\x00\x0e\x80\x08\xc0\x01\x0b\x01^x\
+\xe1\x95\x87\xfd\xfe\xc0lfW\xcb%\x02@\xb0x\xf1\
+<\x04\x02~D\x22\x09\xc4\xe3\xf9\xfbM3u_R\
+\xc5\x0bD\x15\xa5]G\x1d<\x9f\xcf\x85\xae\xae^|\
+\xf3\x9b\x0fC\x96e\xdc~\xfb&\xcc\x9a\xd5d\xa8s\
+\xf9\xe0[{\xbf\xfe\x1c3\xf8\xacm\x12\x89\xe4\xf6\x15\
++\x9ao\xc5\xbbD\x02;'\xd0\xe85i\x0b${\
+{\x0f\xbf\xc2ql\x08\x97S\xa7jq0\xae\xc61\
+:\x83Vg\x91\x10\xa0\xa3\xa3\x0b\x93\x931\x84\xc3\x1e\
+x\xbd\xce\xbc\x82\xa9\x83f\x7f\xe4U\xb2\x80\xe3gu\
+\xfat2B\x0d\xcb8\x84B\x1e\x88\x22\xc1\xb7\xbe\xf5\
+0\xbe\xf6\xb5\x7f\xc7\x9a5\xef\xc7w\xbes\x97\x06\xbe\
+^\x1fV\xd6\xcc\xc0\xb7ZU+\xf8\x8a\x02\xb8\xdd\xae\
+uo\xbc\xd1\xff\xf8\xb6m\xf7\x87aH\xbd\xe3\x1dr\
+\x0c\x8d\x04P\x0c\x9fF\xf0s\x00r\xdb\xb7\xff\xe47\
+\xb9\x5c.\xce\xf3\x14\xfc\x99\x10\x01\x90q\xe0@7&\
+'S\x08\x87=\xf0x\x0ay\xf0\xf9\x15-\x95\x1c\x85\
+\x9eG\xc7\x05\xdc\xf0\xfb]x\xf9\xe5\xd7\xb0v\xed\x97\
+0>\x1e\xc5\x0f~p/>\xf6\xb1Ka\xeclv\
+\x1d\xafT\xf0\xd3\xe9$\x0e\x1d:\x80\x97_~\x11\x83\
+\x83\x83Z\xdd\xed\x9fG\xcf;\x1c\xce\xab\xaf\xbf\xfe\x86\
+_\xab$`\xeb\x11\xd9\x9c\x82SJ\x04\xa3\x09\x00\xf4\
+Y@\x22\xa8\x1f\xe0\x86n\x06\x82\xff\xf2/\xffv\xdd\
+\x95W^\xf3y]\xad\xc9y!W)\xa6A\x10\x04\
+,X0\x07\x81\x80\x1bSS\x19\x8c\x8e\xc6\xa0\xcf\xdb\
+/\xa1\xd2e4\x07\xcf\x13x\xbdNx\xbd\x0etv\
+\x1e\xc1\x03\x0fl\xc7\xd0\xd0\x18\xbe\xf0\x85MX\xb2\xc4\
+\x1c\xd6\x19\xbf\x17\xeb\xfdv\xe0KR\x16G\x8e\xf4\xa0\
+\xbf\xbf\x9f\xd5\x12\x1c\x07\xb4\xb5\xcdF]]\x93m\xef\
+g\x04`\x0es6+\xed{\xf2\xc9G\xaf\xbc\xe7\x9e\
+\xaf\x8cC\xdf\xc0J\xad\x86rJ\xf2\x05V\x02\x18\xa7\
+\x82;@\x09\xe0\x01%\x80\x1f@\xf0\xde{\xef\xbf\xe6\
+\xdak?\xfe\x19\xb3}+\x9f\x08\x0e\x87\x03\x8b\x17\xcf\
+\x85\xcb%j$(X\xc9\x19\x92\xc3\xe3q \x10p\
+!\x93\xc9\xe0G?\xfa9~\xf1\x8b\x97p\xfd\xf5W\
+`\xfd\xfak\xf2\x1c6\xe3\xf7rT\x7f.'\xe1\xe8\
+\xd1~\x1c;vDsn\xd94v\x00\xa8\xabkD\
+k\xebl\xf59\xf6\xe0\x1b\xcb\xca\xe5r\xd1\x9e\x9eC\
+\x1f\xb9\xf6\xda\x8bY\xd6\x90icE\xbd\xee\xe4\x13\x00\
+\x80]$ \x82:\x82n\x00>\xe8$\x08l\xdbv\
+\xdfG>\xfe\xf1O\xde\xcc\x1aa\xa6D\x10E\x07\x16\
+/\x9e\xa3\x91`l,\x0eY\x96\xcb\xf4\xea\xf3\xc9\xe1\
+t\x0a\x08\x85\xdc\xe08\xe0\xe5\x97\xff\x8c\xef\x7f\xffq\
+\xd4\xd6V\xe3\x0b_\xd8\x84\x9a\x9aJ\xb5.'\x0e\xfe\
+\xd0\xd0 \xba\xba\x0e!\x9b\xcd\x19\x1cX\xfaYYY\
+\x85\xd6\xd6Yp8\xd8\xaa\xa5\xe9\xc1g\xff\xcb\xe5\xe4\
+\xe8\xa1C\x1dW}\xf2\x93\x97\xee\x85\xc1\x0f\xc3) \
+\x81\x1d\x01\xd8L`\x16\x0e\xbaa&A\x00\x80\x7f\xeb\
+\xd6\xaf_\xfew\x7f\xb7v\x13\x03z\xa6Dp:\x1d\
+X\xb8p\x0e\xdcn\x11\xe9t\x0e\x03\x03\x11\x95 \x85\
+\x13E\x85D\x10xTVz\xe1t\x8a\xe8\xef\x1f\xc0\
+\x03\x0fl\xc7\x9bov\xe2\x8b_\xbc\x09\x17^\xb8B\
+\x9b\xd0\x99\x1f\xae\x95\x07\xfe\xe0\xe0 \xfa\xfa\x0ek\x8b\
+WX]\x09\x01\xfc\xfe\x10\x9a\x9b[\xe0\xf7\x07\xa7U\
+\xfb\xf9e\xe9f%\x9b\x95\xa3\xc3\xc3\x03\xb7]~\xf9\
+yO\xc1\xac\x09\xd4\xdbN\x0e\x09\xec\xd6\x05X\xcd\x80\
+\xd1\x17`\xfe\x80\x1f\x80o\xcb\x96\xaf\xff\xed\xa7?\xbd\
+v\xa3\xd1\x03\x9f\x09\x11\x1c\x0e\x11\x8b\x16\xcd\x85\xd3)\
+ \x93\xc9\xe1\xf8\xf1\x88\xad\xe3d\xa8\xb6\xe9/\x8e\xe3\
+\x10\x0a\xb9\x10\x08\xb8\x91Lf\xf0\xf0\xc3?\xc7SO\
+\xbd\x80+\xaf\xfc \xd6\xaf\xbf\x16>\x9f\xa7 \xf8\xc6\
+\xef\xcc\x16\xeb\xd7\x99\xc1g\x13L\xe9\xa0\x14X\xbb\x01\
+ p:]hnnEuu\x8dm\xc8788\
+\x88#Gz\x11\x0a\x85\xd0\xde>\xdfT\xae\x15|Z\
+UZ\xf6\xf8\xf8\xc8mk\xd6,{\x18\xa7H\x13\x98\
+\xb6\x88\xb1\xd1\x02,'\xc0H\xe0\x03%\x01\xd3\x06\xbe\
+\xbb\xee\xba\xf7\xd2O\x7fz\xc3\x0dF\xb0gB\x04Q\
+t`\xd1\xa29\x1a\x09\x86\x86bH\xa7\xe9\x1a\xccb\
+\x8bMB!\x0f\xfc~7\x14E\xc6_\xfe\xf2\x16\xbe\
+\xf9\xcdG\xe0\xf1\xb8\xf1\xc5/n\xc6\xec\xd9\xcdZ\xf9\
+\xb4\x1ch\xe51)\xd6\xfbY\xfdb\xb1)tw\xbf\
+\x8dH\x84\x8dF2\x0dE\xe7\x19\xd6\xd77\xa2\xa9\xa9\
+E}\x8e\x19\xfcHd\x1c}}\xbd\x88F#\xda\x0c\
+\xa7`0\x84y\xf3\x16\x80\xe3\x84\xa2\xe0\xab5\xc2\xf8\
+\xf8\xe8mk\xd6,c{\x1c\xb3-n\xd5\xea\x9e\x18\
+\x09\xec\x08@ki\xd8\x11\x04zf\xd0\xa8\x09|\xea\
+\xe1\xdd\xb2\xe5\x9e\xcb\xd6\xae\xdd\xb8\x81\x02;s\x22\x88\
+\xa2\x88\x85\x0b)\x09d\x198v,\xa2\x91\xc0*\x81\
+\x80\x13\xa1\x90\x0f\x82@p\xfc\xf80\xfe\xf3?\xff\x1b\
+{\xf6\xbc\x89\x8d\x1b\xaf\xc5u\xd7\xfd\xad\xa9L\xdaR\
+Z\x8bi\xcf\x98N\xf5\xd3\xfd\x08z\xd45\x0c\xe6\x09\
+\x22\x84\x10\xd4\xd77\xa1\xa9\xa9\x19</\xa8\xcf\xd1\xef\
+\x8f\xc7c\xe8\xea\xeaTg%\xeb\xf3(\x09!p8\
+\x9cho\x9f\x0b\x9f/\x88\xe9\xc0g\xdfS\xa9\xd4O\
+\xdf\xff\xfe\xd9\xb7\xc2\xbc\xbd\xad\x82\x13$A\xde&Q\
+\x16-`t\x08\xb5eb\xd0\x89`$\xc1\xa5\xeb\xd6\
+m\xdc\xc0\x18=S\x22\x88\xa2\x13\x0b\x17\xce6\x91\x80\
+\xce5\xa4\xe2\xf18PQ\xe1\x85\xdb- \x93\x91\xf0\
+\xd8c;\xf1\x93\x9f<\x83\x95+\x17\xe1K_\xda\x0c\
+\xaf\xd7ciT\xb9l\xf0\xb3Y\x09G\x8f\x1eA_\
+_\x0fk\x15\xd66\x00\x80p\xb8\x0amm\xedp8\
+\x1c\x86r\xe8\x97T*\x89\xbe\xbe^\xdb\xa9\xec\x82\xc0\
+\xa3\xb6\xb6\x09\x8d\x8dMZY\xac\xae\xc5\xc0g\xd7\xa5\
+R\xc9\x9f\xae^=\x87\x91\xe0\xa4d\x0d\x8b\x11\x80\x1d\
+L\x0b\x18I`\xd4\x04\x8c\x08\xde\xbb\xee\xfa\xfa%k\
+\xd7\xde\xb0\x81\xd9\xf6\x99\x12A\x10D\xcc\x9f?\x1bn\
+7%\xc1\xc8H\x0c\xc9d\x06UU~x\xbd\x0e\xe4\
+r\x0a^\x7f\xbd\x03\x0f<\xb0\x03\xb1X\x02_\xfa\xd2\
+f,_\xbe\xc0F\x9d\x96\xe7\xf4IR\x16\xfd\xfd}\
+\xda\x0ac\xc08\xf1\x84N0mjjE0\x18\xb4\
+\x80\xa7 \x97\xcb\xa2\xb7\xb7\x07\xc7\x8f\xb3_\xd33\xce\
+J\x06\xea\xeb\x1b\xd1\xd8\xd8\x0c\x8ec3\xa1\xadu\x05\
+t\x02\x14\x1eLJ\xa5\xd2\xcf<\xf3\xcc\xd3\xb7\xdew\
+\xdf\x17X\xae\xe0\x844\x81\xed6q\x16\x12h{\x04\
+\x80\xfa\x03l\x9c\x80\xe5\x08\xf2H\xb0n\xdd\x0d\x1bt\
+`\xe9\x0b\x94K\x04\x9e\x171o\x1e%\x81Q\x06\x06\
+\xc6\xf0\xe8\xa3\xbf\xc4\xd3O\xef\xc2\xc6\x8d\x1f\xc3\x86\x0d\
+\xd7\x16h\xd0\xf2\x9c\xbe\xc1\xc1\xe3\xe8\xed\xedA2\x99\
+\x84\xfe\xfaT\x5c.\xb7\xe6\xe0Y\xcb\xa2S\xd9\xfb\xd5\
+\x15O9\xb5\xfd\xa0\xdd_Y\x19Fk\xeblu\xde\
+B\xbe\xd37<L\x9d\xc3\xa6\xa6VTW\xb3\xd1N\
+\xf3\xc0\x92U\xcbH\x92\xb4\xef\x97\xbf|\xea\x0a\x03\x09\
+f\xec\x18\x16\xdc'\xd0\x86\x04VM\xe0\x04%\x00#\
+\x01s\x10U\x12P\x9f\xe0D\x88\xe0v;1wn\
+;\x04\x81\xce\x11\xd8\xb5\xebU<\xf0\xc0chn\xae\
+\xc3\x97\xbf\xbc\x1955\xc6i\xe2\xe5\x83\x0f\x00##\
+\xc3\xe8\xeaz\x1b\xa9T\x12\xc6y\xb0\x84\x00</\xa2\
+\xa1\xa1\x11\xcd\xcd-\xb6=rpp\x00]]oC\
+_/\xa8\x9b\x8a@ \x88\xa6\xa6f\xd5\xce\xe7{\xfc\
+\xa3\xa3\xa3\xe8\xe9\xe9B:\x9d\xd6\xeemkkG]\
+]]\xc1\xdeO\x17\xe7\xd2\xef\x99Lz\xdf\xb3\xcf\xfe\
+\xe2\x84IPt\xa3H\x8b?`\x0d\x0fY\xa6\xd0N\
+\x13x\xb6n\xfd\xe7K\xd6\xaf\xdf\xb8\x81\xb2v\xe6D\
+\x10\x04\x11\xbbw\xbf\x8e?\xfc\xe15\x8c\x8fO\xe2\xcb\
+_\xbe\x19\x17^\xb8\x12\x85{Ii\xe0\xd3\xfd\x08\xba\
+U\xcf^{_0\x9bM\x81o\x05\xcfsy\x80\x8c\
+\x8c\x8c\xa0\xbb\xbb\xd3\x04\x1eS\xf5.\x97\x0b\x8d\x8d-\
+\x9a\xb60\x9a\x19E\x01\xa2\xd1\x09\xf4\xf5\xf5\x22\x16\x8b\
+j\xf7\xb2\xb2=\x1e\x0f\xe6\xce]\xa8\xcdr\xb2\x82o\
+~/\x19\xb9\x9c\x1c\x1d\x188~\xf9'>q\xe1\xeb\
+\xa0\xe0\xe7\xd4\xb2N\x0e\x01\xd4\x8aYM\x81\xddx\x81\
+\x91\x04>\xf6}\xeb\xd6\x7f\xbed\xc3\x06\xea\x18\x9e\x08\
+\x11>\xff\xf9\xff\x0d\x00\xf8\xd9\xcf\xbe\x85P\xc8\x0f\x14\
+\xb1\x91\xd39}\xc9d\x12\x1d\x1do\x19\x80'\x86\xe4\
+\x12\x87p8\x8cY\xb3\xda\xe1p8M\xf7)\x0a\xb4\
+\xc9\xa9\xec^=*\xd0\xc3\xc1\xc6\xc6f\xc0&\xd9\x93\
+N'\xf1\xf6\xdb\x87\xb4\xa8\xc0X\xae\xc3\xe1Fcc\
+\x13\xaa\xaa\xf2M\x0c}N>\xf8\xecoY\xceE\x07\
+\x06\x06.\xff\xc4'.dY\xc3\xb2|\x81R\xa7\x84\
+)\xd0cO\xf67}\x8bB);\x00\xf7\xde{\xe7\
+.\x8e\x03\xd6\xad\xdb\xb4\x81\xe7\xe9\xc2RYV\xb4\x19\
+E\x8a\x02\xd5)bD \x00\xf4\xff\xb3\xd0IQd\
+\x10\xc2\xe1\xad\xb7\x0e\xe2\x82\x0bV\x18\x16\x83\xd2\xaaX\
+{\x7f^\xe5\x15\x05\xc9d\x12==\x87\x0d!\x1d\xab\
+>\x00\xb0%\xe2-\x08\x04\xf4\x0c\x1e{\xcdd\x92\x8e\
+\xf0\xe9;\x8d\x99ME]\x1d\xcd\x03\xf0<\x0f+\xf8\
+\xa9T\x02}}\xbd\x18\x1e\x1eR\xcb5\x93\xa6\xb6\xb6\
+\x01uuu\xe0\xb8B\xefT\x18|@\x01\xc7q\xc1\
+\xda\xda\xfa\xe7~\xfc\xe3\x9f\xbdo\xe3\xc6O\xf5\x00\xe5\
+M2\x9d\x96\x00\x8a\xa2\xb0\x1f[d\xde&k\xe5\x1c\
+\x80\xcc4\xb7\x93\xbb\xef\xbe\xf3EE!d\xc3\x86M\
+\xeb\xa9sW>\x11\xd8\x8bOM\xc5\xf1\xa7?\xbd\x81\
+\x0b.X\xae\xc6\xde\xa5\xa9~\x80\xf6\xde\xd1\xd1Q\xb0\
+Q:\xa6\xea\x9dN'ZZ\xdaPUUkz\x1e\
+h\xd8\xa5\xe6\x01\xe8\xb0.\x03\x8f\x91\xa7\xba\xba\x16\xcd\
+\xcd-&\x95M\xebB\xf7A8v\xec(\xfa\xfaz\
+M\xf72\xd2UW\xd7\xa0\xa5e\xb6F\x1a\xd6\x0e\xe5\
+\x80\xcf\xca\xcaf3AA\xf0\xce\x02\xd0\xab\x16pr\
+5\x80\x81\x04Z\xdci\xf8\xb7d\x7f\x97.\xf7\xdc\xb3\
+e\x17\xc7\x11e\xfd\xfa\x1b7(\x0a}\xe1r\x88\x00\
+@\x9d\x7f@05\x15\xc7k\xaf\xbd\x81U\xab\x96k\
+!U)v\xbf\xb6\xb6\x01^o\x00\x87\x0eu \x1e\
+\x8fC\x14y\xd4\xd55\xa3\xa5\xa5%ox\x97\x8e\xf0\
+\xd1-d\x98\x92\xb3\x86\x83\xcd\xcd\xadj\xbe_6\x01\
+\x22IY\x1c?\xde\xaf\xaeU\xcci\x93a\x14\x85~\
+\x06\x02!\xcc\x9a5G31f\xd2\xe9R*\xf8\xb4\
+\xcc$$)\xa3\xedg\x5c\x8e\x94<+\xd8\xa2\x09\xac\
+\xbaV\xb1\x14\x9eW\x91m\xdb\xbe\xf6\x22\xa0\x90\x1bn\
+\xd8\xbc\x9e\x86_\xa5\x13\x81\xe3xu\xfa9\x0fYV\
+05\x95\xc4\xde\xbd\xfbq\xdeyK\xb4\xa2J\xf1\xf8\
+\xbd^/\x96-[\x89\xa1\xa1\x01\xd4\xd4\xd4i\x0bI\
+\x18\x08t\xa7\xb1>\xf4\xf7\x1fA.'\xe7\xf5Z\x97\
+\xcb\x8d\xb6\xb6\xd9\xa8\xa8\x08\xab\xcf77\xc3\xe0\xe0\x00\
+\xfa\xfaz\x0d;\x9c\xe9\xf7z\xbd~\xb4\xb6\xce\x82\xdf\
+\xef7i\x99B\xbe\x8c\xb9\xed\x8b\x0f&\xa5\xd3\x09\x16\
+\x822\x93\x5c\xb2\x19(\x99\x006b%AF\xab\x9d\
+.&\x22l\xdb\xb6e\x17\x00l\xdc\xb8y=u`\
+J#\x02\x9da\xc4\xab3\x8c\xe8\xb3&'\xa7\xd0\xd1\
+\xd1\x89\xa5K\x17h\xe3\xf0\xa5d\xfax^@CC\
+c^C\x0f\x0d\xd1<@*\xa5{\xf6\x00\x1d\x87\xe0\
+y\x11\xcd\xcd\xad\xa8\xabk\xb0\xed\x91\xd1\xe8\x04\xde~\
+\xfb\x00\x92\xc9\xb4\xc1G`\xa4\xa1QA8\x5c\x8b\xe9\
+2}\x85T\xbfU\x8c\xef\x94\xc9$\x91\xcdJ\x90$\
+I[c`\x7f\x97\xbd\x94E\x00\x8b\x16`&\xc1Z\
+ \xb1|\x9a\xbeo\xdbF\xcd\xc1\x0d7l\xde`\x9c\
+^^\x8c\x08\x82\xc0\xc0\xd7\xa7\xa0\xf3<0::\x8e\
+\x03\x07\xba\xb0p\xe1\x5cH\x92>f0]\x8e_o\
+h:Xs\xf0`\x87\x01x\x98\xc6\xf6\x19\xf0</\
+\xe4\x81\x1f\x89D\xd0\xd7w\x18\xd1(\x0d\xe9\x8c>\x82\
+ \x88\xa8\xabk@mm\x03\x04A0E'\xe5\x80\
+o\xd7\xfb\x8d\x92\xc9\xc4!\xcb\x0a$I\xb6\xb6\xf7\xc9\
+q\x02\xadR\x80\x04y\x97\x15{\xc6]w}\xedE\
+EQ\xc8\xc6\x8d7\xad\xb7\xae3\xb0#\x02\xb3\xff\xc6\
+\x06f\xfe\xc1\xd0\xd00\x08\x01\x16,\x98\x03I\xca\x95\
+\x05~*\x95DWW'2\x99\xb4a\x16\x0f-\xa3\
+\xa6\xa6\x0eMM-p\xb9\x5c\xa6\x04\x8c\xa2\xc8H\xa5\
+R\xe8\xee\xee\xc4\xd8\xd8\x08\xcc>\x02\x00p\xa8\xae\xae\
+Ak\xeb,\xc3 \x91\xb5\x0d\x8d\x9f\xe5;}\xfa{\
+)H$\xe2\xc8\xe5d\xa8\xbb\xd7\x9e:\x1f\xc0(6\
+\x91\x81\x9d\x14RG\x04\x00\xd9\xbau\xcb.\x80\xc3\x8d\
+7\xde\xb4\x1e6\x0bN\x8cD\xe0y\xa6\x01\xf4-j\
+\x00\x9d\x08\x83\x83#\x00\x80\x85\x0b\xe7\x9av*)\x06\
+>\xa0\xc0\xe9ta\xc5\x8a\xf3\xd1\xdd}\x08CCC\
+\xda\xb2\xb3\xa6\xa6V\x04\x02A\xf5Z\xfd\xf5\x92\xc9$\
+\x8e\x1c1\x8e\x0e\xb2qj\xfa\x19\x0c\x06\xd0\xde>\xcf\
+\x10\x15\xd8\x0f\xf2\x98\xdb\x92]W\x1e\xf8<O\x10\x8b\
+E\x90\xcd\xe6\xa0(2\xb2\xba\x02<u&\xc0\x5cq\
+\x8d\x04\x80\xbd\x16\xb0\x13v\xbd\x02\x00[\xb7~u\x17\
+@\xb0i\xd3M\xeb)X\xf6D`k\x13\xd9\x1e\x05\
+vD\x18\x1a\x1a\x05\xc7\x11\xcc\x9f\xdfn;\x84l\x05\
+\x9f\xfd\xcd\xf3\x1c\xe6\xce]\x88`\xb0\x12\x1c\xc7#\x1c\
+\x0e\xe7\x81\x22It\xfb\x19:H\x9438\x87t\x1b\
+[r\xfcT\x05\x00\x00\x11\xd0IDAT\x8f\xc7\x8b\
+\xb6\xb6\xd9e\x0d\xef\xda\xa9\xf4R\xc1\xa7\xdaPA,\
+\x16\x81,\xe7\xd4\xb6\x92\xca\xb6\xff\xc0\x899\x813%\
+\x01\x13\x02\x00[\xb7\xde\xb1\x8b\xe3\x00j\x0ex\xd8\x11\
+\x81M57\x9b\x80|\x22\x0c\x0e\x8e\xc0\xe1p`\xd6\
+\xac\x16$\x93\x92Z\xc7\xfc\xaa\xd9\x01B\x07b\xf2\xd5\
+qo\xefam\xfb\x19\xa6\xeaY\xb9N\xa7\x0bMM\
+-\xa8\xaa\xaa\xb1Q\xe7\xb4\xdcr\xec~~\x1d\xed\xc0\
+\xa7s\x1eGF\x8e#\x93\x91\xb4\x0c\xab\xea\x03\xbc\xb3\
+\x04P+\xa5\x00Z\xcaX\x1b\x90(G\xee\xbc\xf3\x8e\
+\x17\x09\x01n\xbc\xf1\xe6\xf5\xb2\x0cX\x89\xc0\xf3\xbc\xaa\
+\x01x\x00\xf9[\xd4\xb0|\xbd,\x03G\x8f\x1e\x07!\
+@[[+\x92\xc9\x0c\x14%\x97\xd7\xfb\xf3\xdf\x81\x9e\
+7\x02B\xb7\xae\xe9Qw+\xd7w*\x03h}\xea\
+\xeb\x1bQ_\xdf\xa8\xe5\x22\x8c2\x13\xf0\xad\xbd?\xbf\
+\x8e\x14|\x97\xcb\x81T*\x8eh4\x02\xb6s+\xbd\
+'k\xffr\xd3\xc8\x09\x13\xc0PA\xa3_\x90\x9b\xe6\
+\xf2<\xa6n\xd9r\xc7\x8b\x00\xb0i\xd3-\xeb\x15\x85\
+\xce\x0b`D\x10\x04}\xd1\x89\xa2\x187\xa4\xa0\xaa\x90\
+9\x84ta*\x87#G\x06A\x08\x87\xb6\xb6f\xc4\
+\xe3i\xe8\xdb\xd9\xd8\xaf\xe21\x8a,+\x18\x1b\x1bA\
+WW'd9k\x99\xd4A5Ek\xebl5*\
+0\x82g\xff\xbc\x13\xf5\xf8\x8dd\xa7\x0bid\x0c\x0c\
+\x1cC6+\xc3\x98\x84\xcaM\xd7\xe2\x05\xe4\xa4\x11\x00\
+\xc8#A!\x93P(l\xc4\x96-w\xbc\x04\x00\x9b\
+7\xdf\xb2^]%\x0bYfK\xd3i>\x80\xfa\x05\
+\x80\xbe!\x05\xc0\xb4\x82\xa2@3\x1dT\x13\x10\xb4\xb6\
+6!\x1eOk\xb6R\xadiAP\x00\xba\x0f\xe1\xf2\
+\xe5.tt\xec\xd7\xf6\x14\x0e\x04\x82\x9a\x83\xa7\xbe\xab\
+\xed\xfd\xf9\xbd\xdf\xd4B3\x02\x1f\x00\xbc^'8\x8e\
+C__/\x92\xc9\xa4v\x9d1B\xb1i\xdbi\xe5\
+\xa4\x12\x000\x91\xa0\x98O`m\x1e#\x09^\x048\
+\xdct\xd3-\xeb\xe9 \x10\xcd\x00\xa6R\xa3\xeaw\xa3\
+\x83\xc8\xcc\x00\xfbM\x01\xb3y8z\xf488\x8e\xa0\
+\xb9\xb9\x11\x89D\x06\x99L\x16\xa5\xf6H\xaf\xd7\x8f\x15\
++\xde\x87\xa3G\xfbPYY\x89@ X \xb4,\
+\xc7\xee[\xdb\x8a}\x16\x06\x9f\xe7\x09|>\xba\xb6`\
+p\xf08\x22\x91\x88\xda1\x8c#\xab\xb2i\xc7\xd6r\
+\xe4\xa4\x13\x00(Y\x13h\x97[>\xb1e\xcb?\xbd\
+\x08\x007\xddt\x8b\x9a'P\x90J\x0d\x80\xe3t\xdf\
+\xc0H\x04\xa00\x11\x8e\x1c9\x06B(\x098\x0e\x16\
+\xe7\xb0x\x8f\x14\x04\x1emm\xb3\x8dU;\x01\xf0\xcb\
+w\xfa\x5c.\x01\x1e\x8f\x03\xb2\x0c\x8c\x8d\x8d\xe2\xf8\xf1\
+\xe3\xda,&\xdd\xf6\x9b\x9e\xf7\xee\xf9\x00VQI\xc0\
+\xfe4N\x99\xb1\x9f\xe6\xab\xde\xc6\x8e-[\xfei\x17\
+\xcfs\xca\xe6\xcd7oH&G\xc0\xcf?j\x88\x02\
+\xca#B_\xdf1\x08\x02\x8f\xc6\xc6:5\x01$\xe1\
+D\xd4\xb1\xfe\x8e0\xfc\xef\xe48}\xcc\xe4\xf9\xfd.\
+8\x1c4\x838>>\x82\xc3\x87{4\xe0\xd9}\xba\
+\x13X\xa4E\xa7\x91SF\x00\xa0 \x09Xu\xa7\xb3\
+W\xca\x1dw|i\x17!\xc0\xd4Td\xc5\xa4\xd4{\
+\x84\xe3\xc8U\x80\x11\xec\xd2\x89\xd0\xd7w\x0cN\xa7\x88\
+\xeaj\xfa\x9bG\xc9$\x1d\xc9.?\xfbf\xfe\x9fM\
+\xb5O\xc8\xe9s\xbbE\x04\x02n\xed\xfa\xe3\xc7\x87\xd4\
+!e\xa6\xf2e\x8b\xfa\xa7\xf7\xe5f\xe8\x05\x9eR\x02\
+\x00\x05I\x00\x14&\x80b<\xbe\xf2\x95/\xfd\x16\xc0\
+\x1e\xbc\x047\xb7\x89\x5cE\xe3\x7f\xf5ae\x10\x01\x00\
+:;\xfb@\x08\x87\xaa\xaa0DQ\xc0\xe4dB\xad\
+#\xabk\xe9\xe0O\xe7\xf4\x95\x0b>\xcf\xf3\x08\x85<\
+p8\xe8\x88g6\xab\xe0\xed\xb7\xbb022l\x0b\
+\xbcN\x08:bzZD\x01\x85\xc4@\x02c3e\
+\xa1\x03m\xba\xdcp\x98f!ut\xec\x7fm\xd1\xa2\
+%\xab\xf4D\x10\xfd\x07\x0d\x19\x01E\xa1D\xa0~\x83\
+>\x9f@\x96\x89\xa6*;;{A\x08AUU%\
+\x00\x17\x22\x11\xf3\xae\xa6'\x06~\xf9c\xfb<\xcf!\
+\x18\xf4\xc0\xe3qh '\x93I\xbc\xf5\xd6!LM\
+M\x99\x80\xa7\xcf7\x03\xaf\xd7\xf7\x1d\x1c\x0b\x98\x89\x94\
+\x11\x1d\x18\x9dBv\xad\x0c@\xb9\xe5\x96u?z\xf0\
+\xc1\xedX\xb4h\x99J\x02\x0a2\x0d\x07\xd9\x08\x22\xdb\
+\xb0\x8a\x03\xbb\xc6\xbaqUWW/x\x9eCee\
+\x05\x00\x0e\x13\x13\xf1<[l\xa8\xb7\xfaI\xab4\x13\
+\xbbo~\x1e-G\x10h\x8f\xf7z\x1d\x06\xc7\x0e\xe8\
+\xe9\xe9C_\x1f\xdd-]\xcf]\x14\x06\x9e\x9d'\x84\
+\xb3\xebL\xd3\xca;F\x00\xa0$\x12X{\xbf\xd5o\
+\xc0\xcd7\xaf\xfb\xd1\x83\x0f\xee\xc0\x92%\xcbV\xc9\xb2\
+\x0e\xb21u\x0c@\xeb\xf5\xf6\xe6A\xc1\xdbo\x1f\xc6\
+\x82\x05sPY\x19T\x87\x96\xe3jJ\xb9\x90\xd3w\
+b\x1e?\xfb\xdb\xebu!\x18t\xc1\xe9\x14A\xb5\x13\
+\xbd\xfe\xf8\xf1Atw\xf7 \x91HZ\x80\xd7m\xbd\
+^\xae\xfe?\xaa\x1dd$\x93\xc9\x08f@\x80ig\
+\x05\x9f\x0a\xb1\xacA$\xb0\xfcD\x1d\xf4\x05\xa9l)\
+\x9au\xed\x81\xe7\xc1\x07w\xdc\xb4t\xe9\xf2U\xcc\x1e\
+\xb2\xa5e\x80\xde\x9b\xf4\xf3\x8a\xe1\xbc~\x0d\xc7\xf1X\
+\xbcx\x0e\x02\x01?$I_\x9a>\xbd\xea/\x0f|\
+\x87CD0\xe8\x82\xc7\xe3\x80 \xf0\x06\xbb\x9d\xc3\xd1\
+\xa3\x038|\xb8\x0f\xf1xB\xbb\xc7\x0a\xbc^\xa6Q\
+\x0bPR\xb3\xbfo\xbf}]\x10tR\x0e\xdblJ\
+9\xd53\x82f,\x86\xf1\x03\xeb\x84\x12\xc5\xe6\x00\xcc\
+\xccV\x00\xe0\xe6\x9b\xd7\xfe\xe8\xa1\x87v`\xc9\x92\xe5\
+\xab\x14\x85\x80\xe3\xa8\xdag\xbd\xc4\xceO\xa0e\xea\x1a\
+AQ\xe8/\x9f\xac\x5c\xb9\x18.\x97\x03\x0d\x0d!\x1c\
+;F;Rq\xd5o|\x17\xd8^\xe7\xf39\xe1\xf1\
+8\xe0\xf3\xb9 \x08\x9cf\xc7eYF,\x16\xc3\xd1\
+\xa3\xc7q\xf4\xe8 \xd2\xe9\x0c\xac!\x9d\xd1\xc9\xb3\x02\
+o$;;\x9fN\xa7\xfe`i\xaf\x92\xe5]!\x80\
+E\x8c\xb6>\x0fh\x9bk\x01\x954\x9b7\xaf\xfd\xd1\
+\xc3\x0f\xef\xc0\xe2\xc5+V\xb1\xb9\x01\xe5\x12A\x96e\
+\x1c8\xd0\x89%K\xe6\xc1\xe1\x10\xd1\xd8X\x89\xfe\xfe\
+1\xe4r\xa5\xd9}\x80\xfd\x00\x95\x08\xaf\xd7\x01\x8f\xc7\
+\x05\x8fG4i\x91l6\x87d2\x81\x81\x81a\x1c\
+;6\x8c\xd1\xd1\x09\x14\x0b\xe9t;_\x1cx6\x12\
+\x98H\xc4w\x96\xd0v\xb6\xf2\xae\x98\x00S\x05\xcc3\
+/\xd9\x90\x9b`8\xack\x11\xf3\xcc\xc1#\x8f\xfc\xec\
+\xa6\xc5\x8b\x97\xae2\x02V\xaei\xf0x\x9c*\x09\xe8\
+\xd4\xaf\xbe\xbe\x88\xda;i\xe5d\x19p\xbby\xf0<\
+\x0f\x97K\xd46\x9f\x12E\x1e\xa2h\x8c\x18(0\x92\
+\x94\xc5\xc8\xc8\x04\x86\x87G100\x82\xc9\xc9\xb8\x01\
+P\xfb\x90nr2\x06\xc2s\xe0\x09\x07\x10\x80S'\
+\xc1X\x81\x07\x8c\xa9`\x19\xcf<\xf3\xe4\xac\xdd\xbb\x7f\
+1\x02:C[\xdb?\xa0\x14\x13\xf0\xae\x13\x00\xc8#\
+\x81q\xaf<F\x00\xe3~E\x8c\x00\x1eXH\xb0t\
+\xe9\xf2Uf\x0fY\x07Yw\xc6\xcc\xff7n\x5c\xc5\
+H\xe0t\xd2\xd9\xc2\xe9tN\x03\xb8\x90(\x0a\x90\xcb\
+\x01\x91\xc8$&&\xa2\x18\x1b\x9bD$\x12\xc3\xd8\x18\
+5%\xd6\x9c\xbd]H\x97\xcdf\x11O$\xe0\xf5{\
+\x00B \x8a\x028N@6+\x81\x00\xc8\xa4$d\
+\xa5\xacf\xfb\x19\xf0\x8a\xa2 \x99L<\xbem\xdbm\
+\x9f\x05\xb5\xff\x8c\x00\x8a\xfaN\xef\x0d\x02\x00EI \
+\xc2^\x13\xe4\x91\xe0\xc7?~Bs\x0c\x8d\xea\xdal\
+S\xed\x89\xc0\xb4\x82\xc7\xe3\xc4\xa2Es\xf2V%\x03\
+@4\x9aD&\x93A$2\x85L&\x83\xf1\xf1I\
+\xc4\xe3\x09D\x22Sy\x0ef>\xf0\xac\xac\xfc\x90\x0e\
+<u\x14EQ\x04\xc7\x11\xa43\x12\x04A\x80 \xf0\
+\xc8HY\x88\xa2\x00)%al$\xa2\x01\xcf\xca\xf9\
+\xf3\x9f\x7f\xff\xbe'\x9e\xf8\xafNP\xf0\xb3P\x09P\
+\x0a\xf8\xc0iD\x00\xa0$\x12\xb0\xc8\x80E\x07^\xcb\
+\xa1\x91\x00`\x0d\x0c\xe8v\xbbt\xf3 \x08\x9c:\xe6\
+\xae`l,b!\x8e1\x04+\x0e<`\xef\xd9\xb3\
+zI\xb9\x1c\x9cN\x11\x0e\x87\x00Q\x14\xe1p\x88\xe0\
+x\x1e\xa9T\x8a\x12B\xe0!e(\x09\x92\x89$\x06\
+\x8f\x8dh\xe5$\x93\xf1'\xee\xbd\xf7\xf3\xb7\x81\xf6\xfe\
+\x0c\x0c\xab\x84K%@\x19?\xf5|\xea\xc5Pi\xe6\
+\x18\xb2#\xab\x1ei\x00I\xf5H\x00\x88\xab\xc7\x94\xfa\
+\x99\xd8\xb8\xf1\x93?\xda\xb7\xef\xcd\xd7\xcc\xbb\x96r\xea\
+n\xa6\xfa/\x92\x17\xda\xe5\x94}\x8e\x8fObtt\
+\x02##\x13Z\xac-\xcb9\xd0\xcd \x14\xe4r\xb2\
+\x06\xb2\xa2\xb0sl\xf7\xd2\x9c\xa6\xees9\x19\xfa\xae\
+\xa6\xb2\xc1\xc1\xa3\xcfJ&\x92j\xbd\xd4zp\xf4\xe7\
+oB\xc1\x008\x9e\x83 p\xf0\xf9<\xe09\x82P\
+E\x10\x0dMu\xc8\xe5\x14d\xb3\xd9\xc9\x9d;\x1f\xbb\
+\x13\xe6-c`\xf8,IN+\x02\x00\x05I\x90\x83\
+N\x82\x0c(\x11R\xa0$`\xe0O\xb1\xef\x1b7^\
+\xff\xe0\x9f\xfe\xb4\xe7\xe5|`K'\x82,\xcb\xb6\xc0\
+\xeb\xde9=\xcf\x80\xd75C>\xf0\xec\x7f,\xf67\
+\x9e\xa7\x1bR\x00\x84#\xf4P\xc9\xe0\x10\x05\x84B~\
+\xf0\x84\xa7$\xf0{!\x08\x02*\xaa\x02hi\xab\xc3\
+\xb1c}_|\xed\xb5\xdf\x8f\x1b\xdaH\x8b\xa6J\xed\
+\xfd\xc0iH\x00\xa0(\x09\x98\x9d\xcb@\xd7\x04L\x1b\
+0\x22\xc4\x01$o\xbdu\xe3\x8e\xed\xdb\x1f\xd9\xc1@\
+.\x97\x08,\x06g\xea\xdb\xd8{\xed\x80g\xe02-\
+\xa0\xdbzJ\x06+\xf0\x8c$9EA\x22E\x7f\xd0\
+\x9a\xe7\x088B\xc0\xab\xf5r\xf0\x22B\x15~\x08\x82\
+\x00\x87C\xa49\x05\x8eGeu%.\xbdr\xcde\
+\xc8\xdf0\xaal9-\x09\x00Lk\x0e$P\x12\xa4\
+\xa0\x13 \xcf$\xdc\x7f\xff\xd7w\xff\xf4\xa7?\xd9\xc1\
+\xc0-\x87\x08\xd4_\x90M=\x9f\x01o\xd7\xab\xf3\xcf\
++\xeayc\x92\xc7\xa8\x1dt\x13\x90\xc9HH&(\
+\x098\xb5.\x84\xa7\x87S\x14Q[\x13\x86\xd3\xe9\x00\
+Gxx\xbd.\x08<\x07\x9f\xcf\xff\xe9\x9d\xcf\xfd\xf1\
+\xa5\xaf~\xf5\x1b>\xe8\x1a\xa0l\x12\x9c\xb6\x04\x00\xa6\
+5\x07V\x12$a\xf6\x07\xe2\x00\xe2\xf7\xdf\x7f\xcf\xee\
+\xc7\x1e{d\x87qws+\x11x^'\x02\xdb\x09\
+\x9d\x86w\x8a\x0a\x94\x0e*\xfb4\x02o\xf4\x05\x8c\xc0\
+\xe7\xfb\x08\xb2\xea\x1f\xe8Z%\x95\xce \x9d\xca \x9d\
+\x91\x90H\xa44\xe09F\x06\x9e\xc0\xedr \x5c\x11\
+\x80C\xe4A8\x0e^\xaf\x1b\x02\xcf\x81\x13\x84e\x1f\
+\xba\xf4\xb2\xdf\xfc\xeb\x0f\x7f\x18D\x19\xa1\x9fQNk\
+\x02\x00\x05I\x90\x85\xd9'\xb0j\x02\xcd\x1f\x00\x10\xbf\
+\xef\xbe{vo\xdf\xfe\xc8\x0e\xb6\xc8\x94ny\xcf\xe7\
+\x11\x82N?g&\xc0\xda\xcbu\x07\xcf\xaeW3\xe0\
+\xcd>\x02\x03\xdex\xde\xe80\xca@N\x81\xac(H\
+\xa5\xd2Hg$\xc4\x13)p\xcc!$4<$\x1c\
+\x01\xc7s\xa8\xa8\x0c@\x14\xe9*)\xaf\xd7\x0d\x9e\x13\
+ \xf0\xfc\xf2\xa5\xed+\x7f\xfb\xd3g\x9e\x09\xce\xa4}\
+O\x87T\xf0\xb4\xa2(ys\x0c9\x18\xb6R\x9f\xe6\
+v\x02\x00\xf7\xddw\xcfn\x00\xd8\xb0a\xf3ZEK\
+\x0d\xd3,\x1b\x9b;\xa0(l.\x014\xdb]NH\
+g\x8c\xf1\x999P\xeb\xaf]g\x0d\x1b\x03\x01\x1f\xd2\
+\xc9\x0c\x9c\x0e\x07R\xa9\x14\x9c\x0e\x11\xf1x\x12N\xa7\
+\x83F\x04\xbc\xa0M\x85\xe39\x0e\x95\x15AD\x221\
+H\xd9\x1c\xbc\x1e\x17\xd2\x99\x0c\xb2$\xbb\xbc\xc6W\xbf\
+\xeb\xa9\x17_\x5c\x03 \x822\xe4\xb4\xd7\x00Ll4\
+\x81\x02{s\xc0\xa2\x03k\x88\x18\xbf\xef\xbe{v?\
+\xfa\xe8C;\xd823\xda\xeb\xcd?~\xc1\xb4\x81\x1e\
+\xba\x95\x1e\xd2\xe9\xfeB.O{PS\x91\x7f\xde\xe7\
+\xf3#1\x95@:\x93\x81\x02 \x99\xce \x95\xc9 \
+\x1eO\x82\xe7\x08\x04\x81\x03\xa7\xa6\x85\x01\x80\xe7xT\
+V\x04\xe0q\xbb\xc0q\x80\xdb\xe5\x84(\x8a\xe0\x09Y\
+\x11\xe0\x82\xbf\xde\xb9\xf3\xd5@9\xed\xfa\x9e!\x00\xa0\
+f7X\x16\xc7\x1c\xfa\x94\xe2\x18&\xa0\x92\xe0'?\
+yd\x87\xd1\x07\xb0#\x02-\xaf\xbc\x90\xce\xf8\xa9\xab\
+\x7f\x1dx\xddw0\x9f\x0f\x87+\x10\x8bL!\x9d\xa2\
+c\x0f\xc9d\x06\xe9L\x06\xe3\x91I\xd0\xfc\x13Q5\
+\x13\xa7-M\x0b\x05|p\xbb\xdd \x00\x5c.\xa7\xcc\
+\x8b|\x84\x00\x15.\xbf\xf3\xbf^z\xe9\xafm\xa5\xb6\
+\xe9{\x8a\x00\x16)\xe6\x18\x1a\xf3\x04V\x12$\xef\xbb\
+o\xdb\xcb\x8f>\xfa\xf0cl\xd9\xb9\x1d\x11\xe86l\
+\xe5\x85t\x85\xf3\x05f?\xc2H\x08\xfa<\x05^\x8f\
+\x17\x91\xb1(\xd2\xc9$\x00\x19\xc9T\x1a\xb9\xac\x82H\
+tJ}U\x0a>@s\x06\xe0\x80P\xd0\x07\xb7\xdb\
+\x99!\x04Cn\xa7\xb3O\x10\xf9>\xa2@\x82H>\
+\xfb\xc2\x0b\xaf\xd4\xa2\x04yO\x12\xa0\x809\xb0j\x02\
+;\x12h\xe6\xe0\x1b\xdf\xd8\xb6\xfb\xd1G\x1fzL\xef\
+\xf9f\x22\x14\xf2\xec\x8b\x85tv\xf9\x02c\xe4\xa0\x9f\
+\xd7\x817\x96\x93N\xa7\xde\xf8\xe3\x1fw\x7f11\x15\
+\x7fE\x91\x81d:\x0dI\xcab|b\x0a\x80\x0c\x02\
+\x9a,\xd2\x9a\x01J,\x14\xf4\x1d\xf58\x1d\xbd\x84\xa0\
+\xcf\xe5v\x1d\x11\x1d\xc2Q\x02e\x9cw\xbb/\xff\xed\
+o\xff2\xadcxZ\x8d\x05\xccD,\xfb\x18\x1ag\
+\x17\xd9mkk\xdd\xf2\xdes\xd7]\xf7~\xe8\x86\x1b\
+nZ\xcb\xc6\x0b\xd8\x18\xfb\x9bov\x22\x12\x89\xc1n\
+\xfe\x9d\xd1\x14\x00\xd61\x80\xe2\xe7\xed\x06\x85\x12\x89\xa9\
+\xee\xce\xce\xfd\x0f=\xfd\xf4C\xcf\x03H\xcd\x9b\xb7\x04\
+_\xb9\xf3\x1b\xff'\xe0\xf7_\x11\xf0\xfb\x10\x08x\xe1\
+t\x88\xa8\xac\x0cR\xed\x04E\x020\xce\x112\x0c(\
+\xc3\x00\x19\x8d\xc7S#\xf1xbL!\x18\x97r\xd9\
+\xf1TJ\x8a\x082\x19\xcdf\xc7\xffz\xf1\xc5\x17\xa7\
+\x0a\xb6\xdf{\x9d\x00@A\x12\x18\xa7\x971\x12X7\
+\xb9\xf6\x82\x92\xe0\xc3\x1b7\xde\xb4\x16\x80\x06\xd6\xde\xbd\
+\x07\x11\x89L\x96\xe5\xd9\x97\x0e<\xbdf||d\xcf\
+\xc1\x83\xaf?\xf1\xfc\xf3O\xbe\x0a\xaa\xad\x98\xd6J7\
+5\xcdU\xfe\xef\xbf\xfd\xc7\xbf\x07B\xc1\xeb\xddN\x17\
+\xbc\x1e'DQP*\xc3\xc1\x04O\xc80\x08\x19\x01\
+0\x0c\xc2\x8dr\x8a2\x0apc\xc9tj<\x12\x8d\
+Op\xbc<\x91\xcd*\xd1X\x22=\xc9I\xa9\xe8K\
+/\xfdj\xf8\xee\xbb\xef\xb6\x9d\x87\xf9\x9e\x08\x03K\x14\
+c\x88\xc8\xcc\x81\xdd5\xd6\xef\xca\xd7\xbf\xbe\xf5E\x9e\
+\xe7\x94\x0d\x1b6\xaf3\xae#`\xbd\xbf\xd4\x90\xae\x90\
+&0\x86\x8e\x89\xc4T\xcf\xb1c}\xcf\xbf\xfe\xfa\xef\
+^\xee\xe8\xd8\xdb\x07\x0a:;\x98\xe9\xca\xf4\xf7wf\
+\xd7~\xea\xcaM\xbf\xf8\xd5\xef\x93\xb2#wC<\x95\
+\xcay\x88kb|<:\x14\x0e\x87Fx`D\x01\
+O\xc1\xe71Nd\x8c\xbb\xdc\xae\x89\x0aE\x89D\x22\
+\xb1\xa8\xcc#\xc6\xb9\x9c\xb1\xd8\xb8\x94(\xd6hg\x84\
+\x06\x00\xa6\x9dTb\xa7\x09\x8cs\x0a<\x00\xdc\xf7\xdc\
+s\xdf\xc57\xdc\xb0i\x03\xa0\xe0\x95W\xf6ct4\
+\x02\xe3\x9c\x02#\xf0\xa5\x9c\xa73\x832\x89h4\xb2\
+\x7ftt\xe0\xcd\xbd{\xf7\xfc\xee\xe0\xc1\xbf\x1c\x85>\
+|k=$\xc3\xc1\xf2\xfc\xb9\xdf\xec\xfa\xf3\xf7\x04\x8e\
+\x5cNxn\xd8\xe7q\x0f\x8b\x227Z\x15\xae\x18\xe5\
+@\xc6\x14\x9e\x8cC\xc1\x04\xe1\x94\x09NFD\x96\x95\
+\xc9\xa9\xa9d,\x16\x1b\x9e\x02\x90x\xdf\xfb\xde\xa7u\
+\x04\xbb,\xe1\x19C\x00\xa0,\x12\x18\x7f\xf8\x82}\xba\
+\x01\xb8\xbe\xf2\x95-\x7f\xb3y\xf3-\x9b\xff\xf2\x97\x83\
+\xee\xd1\xd1\x88I\xfd\xb3\xf1\x81b\xc0G\xa3c\x1d\x13\
+\x13\x13\xbd\x91\xc8\xc8\xe1#G\xba\xba^}\xf5\xa5C\
+0\x03\xcb\x9cT\xbb\xeflB\x87\xf1P\x00(\xbf\xdd\
+\xf5\xdaW\x09\xc7\xaf\xe4En\xd4\xe3v\x8d:\x1c\xe2\
+xU\xc87N\x04q\x82\xc8\x88\xc8<\x89\x0a\x0a\x99\
+T\x94\xe4\x14\x80\xf8\xef~\xf7\xbb\xd4\xa7>\xf5\xa9\xfc\
+\xc9\xed\x16\xc0\xcf(\x02\x00\x05I`\xfc\xf9\x1bF\x02\
+\xe3F\xd7n\xc39\xc7\xa7?\xbdv\xcee\x97}j\
+\xcb\xd4T\xd2C\x97ie\x12\xb1\xd8\xe4\x11\xa3=\x1f\
+\x19\x198@\x08\xe4h4:<668\xb4\x7f\xff\
+\x9f\xba\x87\x87\x07'\xa1\x83\xc8\x22\x12\xeb\xa7ds\xde\
+\x0a\xbcq\x88W\x1b\xe4y\xe1w{\xd7r \xb3y\
+\x8e\x1bw\xb9\x5c\xe3\x0e'\x17\x09WUDx\x19\x93\
+\xb9\x1c&eY\x88\xc7b\xfd\xf1%K\x96\x14\xdd\xbd\
+\xd5H\x823\x8e\x00@\xc9\x9a\xc0\xa8\x0d\xd8\xef\x1f\xb8\
+\xd4\xff\x8b\xa0\xa41n\xbf\xca\x1a\xca\x18vZAc\
+\xdf\xb3%\x1ev\xbd\xdd4\xb6\x0f\xcb\xec\x9e]/\xef\
+\xfd\x10\xcfqaA\x14\x22.\x81\x8f\x12\x978\x19r\
+\xfbc>\x1f\x89\xef\xde\xbd;i\xd7\xeb\xed\x84=\xf3\
+\x8c$\x00`K\x02ct`\xfc\xcd\x03\xb6\x08\x85}\
+g\xd3\xcfx\xc3\xbd\x80\xb97\xca\x96\xc3J\x00v\x18\
+m9[\xb0a\x04\x9e\xddc\x04\xde\xd4\xeb\xed\xec\xf6\
+\xee\xdd\xaf\xcf\xcd\xf1\xc4\xe1\x80\x18\xe3yLE\x22\x8e\
+\xf8UW\xcd\x9bn\xe3\xee<Q\x14E9c\x09\x00\
+\x14%\x01\xfb\xbd\x03\xa3F\x10a\x06\x9fC\xbe\x06(\
+D\x82\x9c\xcd\xdf\x85\xb4\x83b8W\x10x\xa0\xf8\xd0\
+\xeeK/\xfd5\x14\x15\xe3\xb9\xa0$%\xd7\xacY3\
+\xc3\xb5\xc1g\xb0\x06`R`\xdd\x81\xf1\x87/\x8ck\
+\x10\xd8\xdfF\xf0\x0bi\x00\xeb\xa7\xb1'\xdb\x1d9\xcb\
+3r6\xcf\xa5'J\x04\xc5\xf0n3\x923^\x03\
+\x18\xa5\xc8zD\xce\xe6\xbb\x15|\xc0\x0c\x92\x1d\x09\xac\
+\xe7\xec\xce\xdb\xf5\xf4\xb2\x81/\xf0^e\xc9\x19\xef\x03\
+\xd8I\x01\x93\xc0Y\x0e\x82|\xf5\x0f\xe4\x83V\xca!\
+\xdb\x5c\x0f\x9c \xe8E\xde\xab$9\xe3\xa3\x80bR\
+\xc0$\x90\x02\x87\x9dXIP\xec\x9cI\xb5\xe3$\x03\
+o\x94RIp\xc6\xe7\x01J\x11KcY\x01/F\
+\x80\xbc\x1e\x5c\xe0\xbb\xddu'\x1dt\xabLG\x823\
+>\x13X\xae\xd8\x10\xc1\xee\xbbU\x0a5\x98\xed\xf9S\
+\x0d\xbaU\x0a\x91\xa0P=\xcej\x020)\xd2s\xac\
+>\xc0\xb4\xf2N\x03n'\xd6\xf7)V\xa7s\x04\xb0\
+\x91\x99\xa8\xd2\xd3M\xd8;LW\xd7s\x048\xcb\xe5\
+=9%\xec\x9c\x9c<\xf9\xff.}$/\xf4\x80\x9c\
+-\x00\x00\x00\x00IEND\xaeB`\x82\
+"
+
+qt_resource_name = b"\
+\x00\x06\
+\x07\x03}\xc3\
+\x00i\
+\x00m\x00a\x00g\x00e\x00s\
+\x00\x0e\
+\x0a\x93\x87\x07\
+\x00d\
+\x00i\x00s\x00c\x00o\x00n\x00n\x00e\x00c\x00t\x00.\x00p\x00n\x00g\
+\x00\x0c\
+\x0b\xdf!G\
+\x00s\
+\x00e\x00t\x00t\x00i\x00n\x00g\x00s\x00.\x00p\x00n\x00g\
+\x00\x14\
+\x07@\xa2\xc7\
+\x00a\
+\x00p\x00p\x00l\x00i\x00c\x00a\x00t\x00i\x00o\x00n\x00-\x00e\x00x\x00i\x00t\x00.\
+\x00p\x00n\x00g\
+\x00\x0b\
+\x0bs\x9d\xc7\
+\x00c\
+\x00o\x00n\x00n\x00e\x00c\x00t\x00.\x00p\x00n\x00g\
+"
+
+qt_resource_struct = b"\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x02\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00R\x00\x00\x00\x00\x00\x01\x00\x00y\xa3\
+\x00\x00\x01\x83\xa8\x1a9\xce\
+\x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
+\x00\x00\x01\x83\xa8\x1a9\xce\
+\x00\x00\x00\x80\x00\x00\x00\x00\x00\x01\x00\x00\xa5g\
+\x00\x00\x01\x83\xa8\x1a9\xce\
+\x00\x00\x004\x00\x00\x00\x00\x00\x01\x00\x00:\xf8\
+\x00\x00\x01\x83\xa8\x1a9\xce\
+"
+
+def qInitResources():
+ QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+def qCleanupResources():
+ QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+qInitResources()
diff --git a/examples/serialbus/modbus/modbusclient/settingsdialog.py b/examples/serialbus/modbus/modbusclient/settingsdialog.py
new file mode 100644
index 000000000..a5e4a37ca
--- /dev/null
+++ b/examples/serialbus/modbus/modbusclient/settingsdialog.py
@@ -0,0 +1,52 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import Slot
+from PySide6.QtWidgets import QDialog
+from PySide6.QtSerialPort import QSerialPort
+
+from ui_settingsdialog import Ui_SettingsDialog
+
+
+class Settings:
+ def __init__(self):
+ self.parity = QSerialPort.EvenParity
+ self.baud = QSerialPort.Baud19200
+ self.data_bits = QSerialPort.Data8
+ self.stop_bits = QSerialPort.OneStop
+ self.response_time = 1000
+ self.number_of_retries = 3
+
+
+class SettingsDialog(QDialog):
+
+ def __init__(self, parent):
+ super().__init__(parent)
+ self.m_settings = Settings()
+ self.ui = Ui_SettingsDialog()
+ self.ui.setupUi(self)
+
+ self.ui.parityCombo.setCurrentIndex(1)
+ self.ui.baudCombo.setCurrentText(f"{self.m_settings.baud}")
+ self.ui.dataBitsCombo.setCurrentText(f"{self.m_settings.data_bits}")
+ self.ui.stopBitsCombo.setCurrentText(f"{self.m_settings.stop_bits}")
+ self.ui.timeoutSpinner.setValue(self.m_settings.response_time)
+ self.ui.retriesSpinner.setValue(self.m_settings.number_of_retries)
+
+ self.ui.applyButton.clicked.connect(self._apply)
+
+ @Slot()
+ def _apply(self):
+ self.m_settings.parity = self.ui.parityCombo.currentIndex()
+ if self.m_settings.parity > 0:
+ self.m_settings.parity = self.m_settings.parity + 1
+ self.m_settings.baud = int(self.ui.baudCombo.currentText())
+ self.m_settings.data_bits = int(self.ui.dataBitsCombo.currentText())
+ self.m_settings.stop_bits = int(self.ui.stopBitsCombo.currentText())
+ self.m_settings.response_time = self.ui.timeoutSpinner.value()
+ self.m_settings.number_of_retries = self.ui.retriesSpinner.value()
+
+ self.hide()
+
+ def settings(self):
+ return self.m_settings
diff --git a/examples/serialbus/modbus/modbusclient/settingsdialog.ui b/examples/serialbus/modbus/modbusclient/settingsdialog.ui
new file mode 100644
index 000000000..fb594f4d4
--- /dev/null
+++ b/examples/serialbus/modbus/modbusclient/settingsdialog.ui
@@ -0,0 +1,237 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>SettingsDialog</class>
+ <widget class="QDialog" name="SettingsDialog">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>239</width>
+ <height>256</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Modbus Settings</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="3" column="1">
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>43</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="1" column="1">
+ <widget class="QSpinBox" name="timeoutSpinner">
+ <property name="accelerated">
+ <bool>true</bool>
+ </property>
+ <property name="suffix">
+ <string> ms</string>
+ </property>
+ <property name="minimum">
+ <number>-1</number>
+ </property>
+ <property name="maximum">
+ <number>5000</number>
+ </property>
+ <property name="singleStep">
+ <number>20</number>
+ </property>
+ <property name="value">
+ <number>200</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Response Timeout:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="1">
+ <widget class="QPushButton" name="applyButton">
+ <property name="text">
+ <string>Apply</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" colspan="2">
+ <widget class="QGroupBox" name="groupBox">
+ <property name="title">
+ <string>Serial Parameters</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout_2">
+ <item row="0" column="0">
+ <widget class="QLabel" name="label_2">
+ <property name="text">
+ <string>Parity:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QComboBox" name="parityCombo">
+ <item>
+ <property name="text">
+ <string>No</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Even</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Odd</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Space</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Mark</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="label_3">
+ <property name="text">
+ <string>Baud Rate:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QComboBox" name="baudCombo">
+ <item>
+ <property name="text">
+ <string>1200</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2400</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>4800</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>9600</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>19200</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>38400</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>57600</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>115200</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="label_4">
+ <property name="text">
+ <string>Data Bits:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="QComboBox" name="dataBitsCombo">
+ <item>
+ <property name="text">
+ <string>5</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>6</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>7</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>8</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <widget class="QLabel" name="label_5">
+ <property name="text">
+ <string>Stop Bits:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1">
+ <widget class="QComboBox" name="stopBitsCombo">
+ <item>
+ <property name="text">
+ <string>1</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>3</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="label_6">
+ <property name="text">
+ <string>Number of retries:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="QSpinBox" name="retriesSpinner">
+ <property name="value">
+ <number>3</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/examples/serialbus/modbus/modbusclient/ui_mainwindow.py b/examples/serialbus/modbus/modbusclient/ui_mainwindow.py
new file mode 100644
index 000000000..1535fc8d8
--- /dev/null
+++ b/examples/serialbus/modbus/modbusclient/ui_mainwindow.py
@@ -0,0 +1,377 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'mainwindow.ui'
+##
+## Created by: Qt User Interface Compiler version 6.7.0
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QAction, QBrush, QColor, QConicalGradient,
+ QCursor, QFont, QFontDatabase, QGradient,
+ QIcon, QImage, QKeySequence, QLinearGradient,
+ QPainter, QPalette, QPixmap, QRadialGradient,
+ QTransform)
+from PySide6.QtWidgets import (QApplication, QComboBox, QGridLayout, QGroupBox,
+ QHBoxLayout, QHeaderView, QLabel, QLineEdit,
+ QListWidget, QListWidgetItem, QMainWindow, QMenu,
+ QMenuBar, QPushButton, QSizePolicy, QSpacerItem,
+ QSpinBox, QStatusBar, QTreeView, QVBoxLayout,
+ QWidget)
+import rc_modbusclient
+
+class Ui_MainWindow(object):
+ def setupUi(self, MainWindow):
+ if not MainWindow.objectName():
+ MainWindow.setObjectName(u"MainWindow")
+ MainWindow.resize(516, 378)
+ MainWindow.setMaximumSize(QSize(16777215, 1000))
+ self.actionConnect = QAction(MainWindow)
+ self.actionConnect.setObjectName(u"actionConnect")
+ icon = QIcon()
+ icon.addFile(u":/images/connect.png", QSize(), QIcon.Normal, QIcon.Off)
+ self.actionConnect.setIcon(icon)
+ self.actionDisconnect = QAction(MainWindow)
+ self.actionDisconnect.setObjectName(u"actionDisconnect")
+ icon1 = QIcon()
+ icon1.addFile(u":/images/disconnect.png", QSize(), QIcon.Normal, QIcon.Off)
+ self.actionDisconnect.setIcon(icon1)
+ self.actionExit = QAction(MainWindow)
+ self.actionExit.setObjectName(u"actionExit")
+ icon2 = QIcon()
+ icon2.addFile(u":/images/application-exit.png", QSize(), QIcon.Normal, QIcon.Off)
+ self.actionExit.setIcon(icon2)
+ self.actionOptions = QAction(MainWindow)
+ self.actionOptions.setObjectName(u"actionOptions")
+ icon3 = QIcon()
+ icon3.addFile(u":/images/settings.png", QSize(), QIcon.Normal, QIcon.Off)
+ self.actionOptions.setIcon(icon3)
+ self.centralWidget = QWidget(MainWindow)
+ self.centralWidget.setObjectName(u"centralWidget")
+ self.verticalLayout = QVBoxLayout(self.centralWidget)
+ self.verticalLayout.setSpacing(6)
+ self.verticalLayout.setContentsMargins(11, 11, 11, 11)
+ self.verticalLayout.setObjectName(u"verticalLayout")
+ self.gridLayout = QGridLayout()
+ self.gridLayout.setSpacing(6)
+ self.gridLayout.setObjectName(u"gridLayout")
+ self.label_27 = QLabel(self.centralWidget)
+ self.label_27.setObjectName(u"label_27")
+ sizePolicy = QSizePolicy(QSizePolicy.Policy.Maximum, QSizePolicy.Policy.Preferred)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.label_27.sizePolicy().hasHeightForWidth())
+ self.label_27.setSizePolicy(sizePolicy)
+
+ self.gridLayout.addWidget(self.label_27, 0, 5, 1, 1)
+
+ self.connectButton = QPushButton(self.centralWidget)
+ self.connectButton.setObjectName(u"connectButton")
+ sizePolicy1 = QSizePolicy(QSizePolicy.Policy.Maximum, QSizePolicy.Policy.Fixed)
+ sizePolicy1.setHorizontalStretch(0)
+ sizePolicy1.setVerticalStretch(0)
+ sizePolicy1.setHeightForWidth(self.connectButton.sizePolicy().hasHeightForWidth())
+ self.connectButton.setSizePolicy(sizePolicy1)
+ self.connectButton.setCheckable(False)
+ self.connectButton.setAutoDefault(False)
+
+ self.gridLayout.addWidget(self.connectButton, 0, 7, 1, 1)
+
+ self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
+
+ self.gridLayout.addItem(self.horizontalSpacer, 0, 4, 1, 1)
+
+ self.serverEdit = QSpinBox(self.centralWidget)
+ self.serverEdit.setObjectName(u"serverEdit")
+ sizePolicy1.setHeightForWidth(self.serverEdit.sizePolicy().hasHeightForWidth())
+ self.serverEdit.setSizePolicy(sizePolicy1)
+ self.serverEdit.setMinimum(1)
+ self.serverEdit.setMaximum(247)
+
+ self.gridLayout.addWidget(self.serverEdit, 0, 6, 1, 1)
+
+ self.connectType = QComboBox(self.centralWidget)
+ self.connectType.addItem("")
+ self.connectType.addItem("")
+ self.connectType.setObjectName(u"connectType")
+
+ self.gridLayout.addWidget(self.connectType, 0, 1, 1, 1)
+
+ self.label_2 = QLabel(self.centralWidget)
+ self.label_2.setObjectName(u"label_2")
+ sizePolicy.setHeightForWidth(self.label_2.sizePolicy().hasHeightForWidth())
+ self.label_2.setSizePolicy(sizePolicy)
+
+ self.gridLayout.addWidget(self.label_2, 0, 2, 1, 1)
+
+ self.label = QLabel(self.centralWidget)
+ self.label.setObjectName(u"label")
+
+ self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
+
+ self.portEdit = QLineEdit(self.centralWidget)
+ self.portEdit.setObjectName(u"portEdit")
+ sizePolicy2 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Fixed)
+ sizePolicy2.setHorizontalStretch(0)
+ sizePolicy2.setVerticalStretch(0)
+ sizePolicy2.setHeightForWidth(self.portEdit.sizePolicy().hasHeightForWidth())
+ self.portEdit.setSizePolicy(sizePolicy2)
+
+ self.gridLayout.addWidget(self.portEdit, 0, 3, 1, 1)
+
+
+ self.verticalLayout.addLayout(self.gridLayout)
+
+ self.horizontalLayout_2 = QHBoxLayout()
+ self.horizontalLayout_2.setSpacing(6)
+ self.horizontalLayout_2.setObjectName(u"horizontalLayout_2")
+ self.groupBox_2 = QGroupBox(self.centralWidget)
+ self.groupBox_2.setObjectName(u"groupBox_2")
+ self.groupBox_2.setMinimumSize(QSize(250, 0))
+ self.gridLayout_3 = QGridLayout(self.groupBox_2)
+ self.gridLayout_3.setSpacing(6)
+ self.gridLayout_3.setContentsMargins(11, 11, 11, 11)
+ self.gridLayout_3.setObjectName(u"gridLayout_3")
+ self.label_4 = QLabel(self.groupBox_2)
+ self.label_4.setObjectName(u"label_4")
+
+ self.gridLayout_3.addWidget(self.label_4, 0, 0, 1, 1)
+
+ self.readAddress = QSpinBox(self.groupBox_2)
+ self.readAddress.setObjectName(u"readAddress")
+ self.readAddress.setMaximum(9)
+
+ self.gridLayout_3.addWidget(self.readAddress, 0, 1, 1, 1)
+
+ self.label_5 = QLabel(self.groupBox_2)
+ self.label_5.setObjectName(u"label_5")
+
+ self.gridLayout_3.addWidget(self.label_5, 1, 0, 1, 1)
+
+ self.readSize = QComboBox(self.groupBox_2)
+ self.readSize.addItem("")
+ self.readSize.addItem("")
+ self.readSize.addItem("")
+ self.readSize.addItem("")
+ self.readSize.addItem("")
+ self.readSize.addItem("")
+ self.readSize.addItem("")
+ self.readSize.addItem("")
+ self.readSize.addItem("")
+ self.readSize.addItem("")
+ self.readSize.setObjectName(u"readSize")
+
+ self.gridLayout_3.addWidget(self.readSize, 1, 1, 1, 1)
+
+ self.label_9 = QLabel(self.groupBox_2)
+ self.label_9.setObjectName(u"label_9")
+
+ self.gridLayout_3.addWidget(self.label_9, 2, 0, 1, 1)
+
+ self.readValue = QListWidget(self.groupBox_2)
+ self.readValue.setObjectName(u"readValue")
+ self.readValue.setMinimumSize(QSize(0, 0))
+
+ self.gridLayout_3.addWidget(self.readValue, 3, 0, 1, 2)
+
+
+ self.horizontalLayout_2.addWidget(self.groupBox_2)
+
+ self.writeGroupBox = QGroupBox(self.centralWidget)
+ self.writeGroupBox.setObjectName(u"writeGroupBox")
+ self.writeGroupBox.setMinimumSize(QSize(225, 0))
+ self.gridLayout_2 = QGridLayout(self.writeGroupBox)
+ self.gridLayout_2.setSpacing(6)
+ self.gridLayout_2.setContentsMargins(11, 11, 11, 11)
+ self.gridLayout_2.setObjectName(u"gridLayout_2")
+ self.label_7 = QLabel(self.writeGroupBox)
+ self.label_7.setObjectName(u"label_7")
+
+ self.gridLayout_2.addWidget(self.label_7, 0, 0, 1, 1)
+
+ self.writeValueTable = QTreeView(self.writeGroupBox)
+ self.writeValueTable.setObjectName(u"writeValueTable")
+ self.writeValueTable.setProperty("showDropIndicator", True)
+ self.writeValueTable.setAlternatingRowColors(True)
+ self.writeValueTable.setRootIsDecorated(False)
+ self.writeValueTable.setUniformRowHeights(True)
+ self.writeValueTable.setItemsExpandable(False)
+ self.writeValueTable.setExpandsOnDoubleClick(False)
+ self.writeValueTable.header().setVisible(True)
+
+ self.gridLayout_2.addWidget(self.writeValueTable, 3, 0, 1, 2)
+
+ self.writeAddress = QSpinBox(self.writeGroupBox)
+ self.writeAddress.setObjectName(u"writeAddress")
+ self.writeAddress.setMaximum(9)
+
+ self.gridLayout_2.addWidget(self.writeAddress, 0, 1, 1, 1)
+
+ self.label_8 = QLabel(self.writeGroupBox)
+ self.label_8.setObjectName(u"label_8")
+
+ self.gridLayout_2.addWidget(self.label_8, 1, 0, 1, 1)
+
+ self.writeSize = QComboBox(self.writeGroupBox)
+ self.writeSize.addItem("")
+ self.writeSize.addItem("")
+ self.writeSize.addItem("")
+ self.writeSize.addItem("")
+ self.writeSize.addItem("")
+ self.writeSize.addItem("")
+ self.writeSize.addItem("")
+ self.writeSize.addItem("")
+ self.writeSize.addItem("")
+ self.writeSize.addItem("")
+ self.writeSize.setObjectName(u"writeSize")
+
+ self.gridLayout_2.addWidget(self.writeSize, 1, 1, 1, 1)
+
+ self.label_3 = QLabel(self.writeGroupBox)
+ self.label_3.setObjectName(u"label_3")
+
+ self.gridLayout_2.addWidget(self.label_3, 2, 0, 1, 1)
+
+
+ self.horizontalLayout_2.addWidget(self.writeGroupBox)
+
+
+ self.verticalLayout.addLayout(self.horizontalLayout_2)
+
+ self.horizontalLayout = QHBoxLayout()
+ self.horizontalLayout.setSpacing(6)
+ self.horizontalLayout.setObjectName(u"horizontalLayout")
+ self.label_6 = QLabel(self.centralWidget)
+ self.label_6.setObjectName(u"label_6")
+
+ self.horizontalLayout.addWidget(self.label_6)
+
+ self.writeTable = QComboBox(self.centralWidget)
+ self.writeTable.setObjectName(u"writeTable")
+
+ self.horizontalLayout.addWidget(self.writeTable)
+
+ self.horizontalSpacer_2 = QSpacerItem(13, 17, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
+
+ self.horizontalLayout.addItem(self.horizontalSpacer_2)
+
+ self.readButton = QPushButton(self.centralWidget)
+ self.readButton.setObjectName(u"readButton")
+ sizePolicy1.setHeightForWidth(self.readButton.sizePolicy().hasHeightForWidth())
+ self.readButton.setSizePolicy(sizePolicy1)
+
+ self.horizontalLayout.addWidget(self.readButton)
+
+ self.writeButton = QPushButton(self.centralWidget)
+ self.writeButton.setObjectName(u"writeButton")
+
+ self.horizontalLayout.addWidget(self.writeButton)
+
+ self.readWriteButton = QPushButton(self.centralWidget)
+ self.readWriteButton.setObjectName(u"readWriteButton")
+ self.readWriteButton.setEnabled(False)
+
+ self.horizontalLayout.addWidget(self.readWriteButton)
+
+
+ self.verticalLayout.addLayout(self.horizontalLayout)
+
+ MainWindow.setCentralWidget(self.centralWidget)
+ self.statusBar = QStatusBar(MainWindow)
+ self.statusBar.setObjectName(u"statusBar")
+ MainWindow.setStatusBar(self.statusBar)
+ self.menuBar = QMenuBar(MainWindow)
+ self.menuBar.setObjectName(u"menuBar")
+ self.menuBar.setGeometry(QRect(0, 0, 516, 21))
+ self.menuDevice = QMenu(self.menuBar)
+ self.menuDevice.setObjectName(u"menuDevice")
+ self.menuToo_ls = QMenu(self.menuBar)
+ self.menuToo_ls.setObjectName(u"menuToo_ls")
+ MainWindow.setMenuBar(self.menuBar)
+ QWidget.setTabOrder(self.connectType, self.portEdit)
+ QWidget.setTabOrder(self.portEdit, self.serverEdit)
+ QWidget.setTabOrder(self.serverEdit, self.connectButton)
+ QWidget.setTabOrder(self.connectButton, self.readAddress)
+ QWidget.setTabOrder(self.readAddress, self.readSize)
+ QWidget.setTabOrder(self.readSize, self.readValue)
+ QWidget.setTabOrder(self.readValue, self.writeAddress)
+ QWidget.setTabOrder(self.writeAddress, self.writeSize)
+ QWidget.setTabOrder(self.writeSize, self.writeValueTable)
+ QWidget.setTabOrder(self.writeValueTable, self.writeTable)
+ QWidget.setTabOrder(self.writeTable, self.readButton)
+ QWidget.setTabOrder(self.readButton, self.writeButton)
+ QWidget.setTabOrder(self.writeButton, self.readWriteButton)
+
+ self.menuBar.addAction(self.menuDevice.menuAction())
+ self.menuBar.addAction(self.menuToo_ls.menuAction())
+ self.menuDevice.addAction(self.actionConnect)
+ self.menuDevice.addAction(self.actionDisconnect)
+ self.menuDevice.addSeparator()
+ self.menuDevice.addAction(self.actionExit)
+ self.menuToo_ls.addAction(self.actionOptions)
+
+ self.retranslateUi(MainWindow)
+
+ self.connectButton.setDefault(True)
+ self.readSize.setCurrentIndex(9)
+ self.writeSize.setCurrentIndex(9)
+
+
+ QMetaObject.connectSlotsByName(MainWindow)
+ # setupUi
+
+ def retranslateUi(self, MainWindow):
+ MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"Modbus Client Example", None))
+ self.actionConnect.setText(QCoreApplication.translate("MainWindow", u"&Connect", None))
+ self.actionDisconnect.setText(QCoreApplication.translate("MainWindow", u"&Disconnect", None))
+ self.actionExit.setText(QCoreApplication.translate("MainWindow", u"&Quit", None))
+ self.actionOptions.setText(QCoreApplication.translate("MainWindow", u"&Options", None))
+ self.label_27.setText(QCoreApplication.translate("MainWindow", u"Server Address:", None))
+ self.connectButton.setText(QCoreApplication.translate("MainWindow", u"Connect", None))
+ self.connectType.setItemText(0, QCoreApplication.translate("MainWindow", u"Serial", None))
+ self.connectType.setItemText(1, QCoreApplication.translate("MainWindow", u"TCP", None))
+
+ self.label_2.setText(QCoreApplication.translate("MainWindow", u"Port:", None))
+ self.label.setText(QCoreApplication.translate("MainWindow", u"Connection type:", None))
+ self.groupBox_2.setTitle(QCoreApplication.translate("MainWindow", u"Read", None))
+ self.label_4.setText(QCoreApplication.translate("MainWindow", u"Start address:", None))
+ self.label_5.setText(QCoreApplication.translate("MainWindow", u"Number of values:", None))
+ self.readSize.setItemText(0, QCoreApplication.translate("MainWindow", u"1", None))
+ self.readSize.setItemText(1, QCoreApplication.translate("MainWindow", u"2", None))
+ self.readSize.setItemText(2, QCoreApplication.translate("MainWindow", u"3", None))
+ self.readSize.setItemText(3, QCoreApplication.translate("MainWindow", u"4", None))
+ self.readSize.setItemText(4, QCoreApplication.translate("MainWindow", u"5", None))
+ self.readSize.setItemText(5, QCoreApplication.translate("MainWindow", u"6", None))
+ self.readSize.setItemText(6, QCoreApplication.translate("MainWindow", u"7", None))
+ self.readSize.setItemText(7, QCoreApplication.translate("MainWindow", u"8", None))
+ self.readSize.setItemText(8, QCoreApplication.translate("MainWindow", u"9", None))
+ self.readSize.setItemText(9, QCoreApplication.translate("MainWindow", u"10", None))
+
+ self.label_9.setText(QCoreApplication.translate("MainWindow", u"Result:", None))
+ self.writeGroupBox.setTitle(QCoreApplication.translate("MainWindow", u"Write", None))
+ self.label_7.setText(QCoreApplication.translate("MainWindow", u"Start address:", None))
+ self.label_8.setText(QCoreApplication.translate("MainWindow", u"Number of values:", None))
+ self.writeSize.setItemText(0, QCoreApplication.translate("MainWindow", u"1", None))
+ self.writeSize.setItemText(1, QCoreApplication.translate("MainWindow", u"2", None))
+ self.writeSize.setItemText(2, QCoreApplication.translate("MainWindow", u"3", None))
+ self.writeSize.setItemText(3, QCoreApplication.translate("MainWindow", u"4", None))
+ self.writeSize.setItemText(4, QCoreApplication.translate("MainWindow", u"5", None))
+ self.writeSize.setItemText(5, QCoreApplication.translate("MainWindow", u"6", None))
+ self.writeSize.setItemText(6, QCoreApplication.translate("MainWindow", u"7", None))
+ self.writeSize.setItemText(7, QCoreApplication.translate("MainWindow", u"8", None))
+ self.writeSize.setItemText(8, QCoreApplication.translate("MainWindow", u"9", None))
+ self.writeSize.setItemText(9, QCoreApplication.translate("MainWindow", u"10", None))
+
+ self.label_3.setText("")
+ self.label_6.setText(QCoreApplication.translate("MainWindow", u"Table:", None))
+ self.readButton.setText(QCoreApplication.translate("MainWindow", u"Read", None))
+ self.writeButton.setText(QCoreApplication.translate("MainWindow", u"Write", None))
+ self.readWriteButton.setText(QCoreApplication.translate("MainWindow", u"Read-Write", None))
+ self.menuDevice.setTitle(QCoreApplication.translate("MainWindow", u"&Device", None))
+ self.menuToo_ls.setTitle(QCoreApplication.translate("MainWindow", u"Too&ls", None))
+ # retranslateUi
+
diff --git a/examples/serialbus/modbus/modbusclient/ui_settingsdialog.py b/examples/serialbus/modbus/modbusclient/ui_settingsdialog.py
new file mode 100644
index 000000000..af3a0665c
--- /dev/null
+++ b/examples/serialbus/modbus/modbusclient/ui_settingsdialog.py
@@ -0,0 +1,173 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'settingsdialog.ui'
+##
+## Created by: Qt User Interface Compiler version 6.7.0
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
+ QFont, QFontDatabase, QGradient, QIcon,
+ QImage, QKeySequence, QLinearGradient, QPainter,
+ QPalette, QPixmap, QRadialGradient, QTransform)
+from PySide6.QtWidgets import (QApplication, QComboBox, QDialog, QGridLayout,
+ QGroupBox, QLabel, QPushButton, QSizePolicy,
+ QSpacerItem, QSpinBox, QWidget)
+
+class Ui_SettingsDialog(object):
+ def setupUi(self, SettingsDialog):
+ if not SettingsDialog.objectName():
+ SettingsDialog.setObjectName(u"SettingsDialog")
+ SettingsDialog.resize(239, 256)
+ self.gridLayout = QGridLayout(SettingsDialog)
+ self.gridLayout.setObjectName(u"gridLayout")
+ self.verticalSpacer = QSpacerItem(20, 43, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
+
+ self.gridLayout.addItem(self.verticalSpacer, 3, 1, 1, 1)
+
+ self.timeoutSpinner = QSpinBox(SettingsDialog)
+ self.timeoutSpinner.setObjectName(u"timeoutSpinner")
+ self.timeoutSpinner.setAccelerated(True)
+ self.timeoutSpinner.setMinimum(-1)
+ self.timeoutSpinner.setMaximum(5000)
+ self.timeoutSpinner.setSingleStep(20)
+ self.timeoutSpinner.setValue(200)
+
+ self.gridLayout.addWidget(self.timeoutSpinner, 1, 1, 1, 1)
+
+ self.label = QLabel(SettingsDialog)
+ self.label.setObjectName(u"label")
+
+ self.gridLayout.addWidget(self.label, 1, 0, 1, 1)
+
+ self.applyButton = QPushButton(SettingsDialog)
+ self.applyButton.setObjectName(u"applyButton")
+
+ self.gridLayout.addWidget(self.applyButton, 4, 1, 1, 1)
+
+ self.groupBox = QGroupBox(SettingsDialog)
+ self.groupBox.setObjectName(u"groupBox")
+ self.gridLayout_2 = QGridLayout(self.groupBox)
+ self.gridLayout_2.setObjectName(u"gridLayout_2")
+ self.label_2 = QLabel(self.groupBox)
+ self.label_2.setObjectName(u"label_2")
+
+ self.gridLayout_2.addWidget(self.label_2, 0, 0, 1, 1)
+
+ self.parityCombo = QComboBox(self.groupBox)
+ self.parityCombo.addItem("")
+ self.parityCombo.addItem("")
+ self.parityCombo.addItem("")
+ self.parityCombo.addItem("")
+ self.parityCombo.addItem("")
+ self.parityCombo.setObjectName(u"parityCombo")
+
+ self.gridLayout_2.addWidget(self.parityCombo, 0, 1, 1, 1)
+
+ self.label_3 = QLabel(self.groupBox)
+ self.label_3.setObjectName(u"label_3")
+
+ self.gridLayout_2.addWidget(self.label_3, 1, 0, 1, 1)
+
+ self.baudCombo = QComboBox(self.groupBox)
+ self.baudCombo.addItem("")
+ self.baudCombo.addItem("")
+ self.baudCombo.addItem("")
+ self.baudCombo.addItem("")
+ self.baudCombo.addItem("")
+ self.baudCombo.addItem("")
+ self.baudCombo.addItem("")
+ self.baudCombo.addItem("")
+ self.baudCombo.setObjectName(u"baudCombo")
+
+ self.gridLayout_2.addWidget(self.baudCombo, 1, 1, 1, 1)
+
+ self.label_4 = QLabel(self.groupBox)
+ self.label_4.setObjectName(u"label_4")
+
+ self.gridLayout_2.addWidget(self.label_4, 2, 0, 1, 1)
+
+ self.dataBitsCombo = QComboBox(self.groupBox)
+ self.dataBitsCombo.addItem("")
+ self.dataBitsCombo.addItem("")
+ self.dataBitsCombo.addItem("")
+ self.dataBitsCombo.addItem("")
+ self.dataBitsCombo.setObjectName(u"dataBitsCombo")
+
+ self.gridLayout_2.addWidget(self.dataBitsCombo, 2, 1, 1, 1)
+
+ self.label_5 = QLabel(self.groupBox)
+ self.label_5.setObjectName(u"label_5")
+
+ self.gridLayout_2.addWidget(self.label_5, 3, 0, 1, 1)
+
+ self.stopBitsCombo = QComboBox(self.groupBox)
+ self.stopBitsCombo.addItem("")
+ self.stopBitsCombo.addItem("")
+ self.stopBitsCombo.addItem("")
+ self.stopBitsCombo.setObjectName(u"stopBitsCombo")
+
+ self.gridLayout_2.addWidget(self.stopBitsCombo, 3, 1, 1, 1)
+
+
+ self.gridLayout.addWidget(self.groupBox, 0, 0, 1, 2)
+
+ self.label_6 = QLabel(SettingsDialog)
+ self.label_6.setObjectName(u"label_6")
+
+ self.gridLayout.addWidget(self.label_6, 2, 0, 1, 1)
+
+ self.retriesSpinner = QSpinBox(SettingsDialog)
+ self.retriesSpinner.setObjectName(u"retriesSpinner")
+ self.retriesSpinner.setValue(3)
+
+ self.gridLayout.addWidget(self.retriesSpinner, 2, 1, 1, 1)
+
+
+ self.retranslateUi(SettingsDialog)
+
+ QMetaObject.connectSlotsByName(SettingsDialog)
+ # setupUi
+
+ def retranslateUi(self, SettingsDialog):
+ SettingsDialog.setWindowTitle(QCoreApplication.translate("SettingsDialog", u"Modbus Settings", None))
+ self.timeoutSpinner.setSuffix(QCoreApplication.translate("SettingsDialog", u" ms", None))
+ self.label.setText(QCoreApplication.translate("SettingsDialog", u"Response Timeout:", None))
+ self.applyButton.setText(QCoreApplication.translate("SettingsDialog", u"Apply", None))
+ self.groupBox.setTitle(QCoreApplication.translate("SettingsDialog", u"Serial Parameters", None))
+ self.label_2.setText(QCoreApplication.translate("SettingsDialog", u"Parity:", None))
+ self.parityCombo.setItemText(0, QCoreApplication.translate("SettingsDialog", u"No", None))
+ self.parityCombo.setItemText(1, QCoreApplication.translate("SettingsDialog", u"Even", None))
+ self.parityCombo.setItemText(2, QCoreApplication.translate("SettingsDialog", u"Odd", None))
+ self.parityCombo.setItemText(3, QCoreApplication.translate("SettingsDialog", u"Space", None))
+ self.parityCombo.setItemText(4, QCoreApplication.translate("SettingsDialog", u"Mark", None))
+
+ self.label_3.setText(QCoreApplication.translate("SettingsDialog", u"Baud Rate:", None))
+ self.baudCombo.setItemText(0, QCoreApplication.translate("SettingsDialog", u"1200", None))
+ self.baudCombo.setItemText(1, QCoreApplication.translate("SettingsDialog", u"2400", None))
+ self.baudCombo.setItemText(2, QCoreApplication.translate("SettingsDialog", u"4800", None))
+ self.baudCombo.setItemText(3, QCoreApplication.translate("SettingsDialog", u"9600", None))
+ self.baudCombo.setItemText(4, QCoreApplication.translate("SettingsDialog", u"19200", None))
+ self.baudCombo.setItemText(5, QCoreApplication.translate("SettingsDialog", u"38400", None))
+ self.baudCombo.setItemText(6, QCoreApplication.translate("SettingsDialog", u"57600", None))
+ self.baudCombo.setItemText(7, QCoreApplication.translate("SettingsDialog", u"115200", None))
+
+ self.label_4.setText(QCoreApplication.translate("SettingsDialog", u"Data Bits:", None))
+ self.dataBitsCombo.setItemText(0, QCoreApplication.translate("SettingsDialog", u"5", None))
+ self.dataBitsCombo.setItemText(1, QCoreApplication.translate("SettingsDialog", u"6", None))
+ self.dataBitsCombo.setItemText(2, QCoreApplication.translate("SettingsDialog", u"7", None))
+ self.dataBitsCombo.setItemText(3, QCoreApplication.translate("SettingsDialog", u"8", None))
+
+ self.label_5.setText(QCoreApplication.translate("SettingsDialog", u"Stop Bits:", None))
+ self.stopBitsCombo.setItemText(0, QCoreApplication.translate("SettingsDialog", u"1", None))
+ self.stopBitsCombo.setItemText(1, QCoreApplication.translate("SettingsDialog", u"3", None))
+ self.stopBitsCombo.setItemText(2, QCoreApplication.translate("SettingsDialog", u"2", None))
+
+ self.label_6.setText(QCoreApplication.translate("SettingsDialog", u"Number of retries:", None))
+ # retranslateUi
+
diff --git a/examples/serialbus/modbus/modbusclient/writeregistermodel.py b/examples/serialbus/modbus/modbusclient/writeregistermodel.py
new file mode 100644
index 000000000..07b1226de
--- /dev/null
+++ b/examples/serialbus/modbus/modbusclient/writeregistermodel.py
@@ -0,0 +1,118 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from enum import IntEnum
+
+from PySide6.QtCore import QAbstractTableModel, QBitArray, Qt, Signal, Slot
+
+
+class Column(IntEnum):
+ NUM_COLUMN = 0
+ COILS_COLUMN = 1
+ HOLDING_COLUMN = 2
+ COLUMN_COUNT = 3
+ ROW_COUNT = 10
+
+
+class WriteRegisterModel(QAbstractTableModel):
+
+ update_viewport = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.m_coils = QBitArray(Column.ROW_COUNT, False)
+ self.m_number = 0
+ self.m_address = 0
+ self.m_holdingRegisters = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
+
+ def rowCount(self, parent):
+ return Column.ROW_COUNT
+
+ def columnCount(self, parent):
+ return Column.COLUMN_COUNT
+
+ def data(self, index, role):
+ row = index.row()
+ column = index.column()
+ if not index.isValid() or row >= Column.ROW_COUNT or column >= Column.COLUMN_COUNT:
+ return None
+
+ assert self.m_coils.size() == Column.ROW_COUNT
+ assert len(self.m_holdingRegisters) == Column.ROW_COUNT
+
+ if column == Column.NUM_COLUMN and role == Qt.DisplayRole:
+ return f"{row}"
+
+ if column == Column.COILS_COLUMN and role == Qt.CheckStateRole: # coils
+ return Qt.Checked if self.m_coils[row] else Qt.Unchecked
+
+ # holding registers
+ if column == Column.HOLDING_COLUMN and role == Qt.DisplayRole:
+ reg = self.m_holdingRegisters[row]
+ return f"0x{reg:x}"
+ return None
+
+ def headerData(self, section, orientation, role):
+ if role != Qt.DisplayRole:
+ return None
+
+ if orientation == Qt.Horizontal:
+ if section == Column.NUM_COLUMN:
+ return "#"
+ if section == Column.COILS_COLUMN:
+ return "Coils "
+ if section == Column.HOLDING_COLUMN:
+ return "Holding Registers"
+ return None
+
+ def setData(self, index, value, role):
+ row = index.row()
+ column = index.column()
+ if not index.isValid() or row >= Column.ROW_COUNT or column >= Column.COLUMN_COUNT:
+ return False
+
+ assert self.m_coils.size() == Column.ROW_COUNT
+ assert len(self.m_holdingRegisters) == Column.ROW_COUNT
+
+ if column == Column.COILS_COLUMN and role == Qt.CheckStateRole: # coils
+ s = Qt.CheckState(int(value))
+ if s == Qt.Checked:
+ self.m_coils.setBit(row)
+ else:
+ self.m_coils.clearBit(row)
+ self.dataChanged.emit(index, index)
+ return True
+
+ if column == Column.HOLDING_COLUMN and role == Qt.EditRole: # holding registers
+ base = 16 if value.startswith("0x") else 10
+ self.m_holdingRegisters[row] = int(value, base=base)
+ self.dataChanged.emit(index, index)
+ return True
+
+ return False
+
+ def flags(self, index):
+ row = index.row()
+ column = index.column()
+ flags = super().flags(index)
+ if not index.isValid() or row >= Column.ROW_COUNT or column >= Column.COLUMN_COUNT:
+ return flags
+
+ if row < self.m_address or row >= (self.m_address + self.m_number):
+ flags &= ~Qt.ItemIsEnabled
+
+ if column == Column.COILS_COLUMN: # coils
+ return flags | Qt.ItemIsUserCheckable
+ if column == Column.HOLDING_COLUMN: # holding registers
+ return flags | Qt.ItemIsEditable
+ return flags
+
+ @Slot(int)
+ def set_start_address(self, address):
+ self.m_address = address
+ self.update_viewport.emit()
+
+ @Slot(str)
+ def set_number_of_values(self, number):
+ self.m_number = int(number)
+ self.update_viewport.emit()
diff --git a/examples/serialport/terminal/console.py b/examples/serialport/terminal/console.py
new file mode 100644
index 000000000..125951374
--- /dev/null
+++ b/examples/serialport/terminal/console.py
@@ -0,0 +1,49 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import Qt, Signal, Slot
+from PySide6.QtGui import QPalette
+from PySide6.QtWidgets import QPlainTextEdit
+
+
+UNHANDLED_KEYS = [Qt.Key_Backspace, Qt.Key_Left, Qt.Key_Right, Qt.Key_Up,
+ Qt.Key_Down]
+
+
+class Console(QPlainTextEdit):
+
+ get_data = Signal(bytearray)
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.m_localEchoEnabled = False
+ self.document().setMaximumBlockCount(100)
+ p = self.palette()
+ p.setColor(QPalette.Base, Qt.black)
+ p.setColor(QPalette.Text, Qt.green)
+ self.setPalette(p)
+
+ @Slot(bytearray)
+ def put_data(self, data):
+ self.insertPlainText(data.decode("utf8"))
+ bar = self.verticalScrollBar()
+ bar.setValue(bar.maximum())
+
+ def set_local_echo_enabled(self, e):
+ self.m_localEchoEnabled = e
+
+ def keyPressEvent(self, e):
+ key = e.key()
+ if key not in UNHANDLED_KEYS:
+ if self.m_localEchoEnabled:
+ super().keyPressEvent(e)
+ self.get_data.emit(e.text().encode())
+
+ def mousePressEvent(self, e):
+ self.setFocus()
+
+ def mouseDoubleClickEvent(self, e):
+ pass
+
+ def contextMenuEvent(self, e):
+ pass
diff --git a/examples/serialport/terminal/doc/terminal.rst b/examples/serialport/terminal/doc/terminal.rst
new file mode 100644
index 000000000..61579121f
--- /dev/null
+++ b/examples/serialport/terminal/doc/terminal.rst
@@ -0,0 +1,9 @@
+Terminal Example
+================
+
+The Terminal Example shows how to create a terminal for a simple serial
+interface by using Qt Serial Port.
+
+It demonstrates the main features of the QSerialPort class, like configuration,
+I/O implementation and so forth. Also, the class QSerialPortInfo is invoked to
+display information about the serial ports available in the system.
diff --git a/examples/serialport/terminal/images/application-exit.png b/examples/serialport/terminal/images/application-exit.png
new file mode 100644
index 000000000..32be6b3f1
--- /dev/null
+++ b/examples/serialport/terminal/images/application-exit.png
Binary files differ
diff --git a/examples/serialport/terminal/images/clear.png b/examples/serialport/terminal/images/clear.png
new file mode 100644
index 000000000..aa612f1f3
--- /dev/null
+++ b/examples/serialport/terminal/images/clear.png
Binary files differ
diff --git a/examples/serialport/terminal/images/connect.png b/examples/serialport/terminal/images/connect.png
new file mode 100644
index 000000000..dd5a51e98
--- /dev/null
+++ b/examples/serialport/terminal/images/connect.png
Binary files differ
diff --git a/examples/serialport/terminal/images/disconnect.png b/examples/serialport/terminal/images/disconnect.png
new file mode 100644
index 000000000..fd58f7a48
--- /dev/null
+++ b/examples/serialport/terminal/images/disconnect.png
Binary files differ
diff --git a/examples/serialport/terminal/images/settings.png b/examples/serialport/terminal/images/settings.png
new file mode 100644
index 000000000..3d1042e26
--- /dev/null
+++ b/examples/serialport/terminal/images/settings.png
Binary files differ
diff --git a/examples/serialport/terminal/main.py b/examples/serialport/terminal/main.py
new file mode 100644
index 000000000..0d2ce0a01
--- /dev/null
+++ b/examples/serialport/terminal/main.py
@@ -0,0 +1,17 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from PySide6.QtWidgets import QApplication
+
+from mainwindow import MainWindow
+
+"""PySide6 port of the serialport/terminal example from Qt v6.x"""
+
+
+if __name__ == "__main__":
+ a = QApplication(sys.argv)
+ w = MainWindow()
+ w.show()
+ sys.exit(a.exec())
diff --git a/examples/serialport/terminal/mainwindow.py b/examples/serialport/terminal/mainwindow.py
new file mode 100644
index 000000000..bdfb0fb0e
--- /dev/null
+++ b/examples/serialport/terminal/mainwindow.py
@@ -0,0 +1,108 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QIODeviceBase, Slot
+from PySide6.QtWidgets import QLabel, QMainWindow, QMessageBox
+from PySide6.QtSerialPort import QSerialPort
+
+from ui_mainwindow import Ui_MainWindow
+from console import Console
+from settingsdialog import SettingsDialog
+
+
+HELP = """The <b>Simple Terminal</b> example demonstrates how to
+ use the Qt Serial Port module in modern GUI applications
+ using Qt, with a menu bar, toolbars, and a status bar."""
+
+
+def description(s):
+ return (f"Connected to {s.name} : {s.string_baud_rate}, "
+ f"{s.string_data_bits}, {s.string_parity}, {s.string_stop_bits}, "
+ f"{s.string_flow_control}")
+
+
+class MainWindow(QMainWindow):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.m_ui = Ui_MainWindow()
+ self.m_status = QLabel()
+ self.m_console = Console()
+ self.m_settings = SettingsDialog(self)
+ self.m_serial = QSerialPort(self)
+ self.m_ui.setupUi(self)
+ self.m_console.setEnabled(False)
+ self.setCentralWidget(self.m_console)
+
+ self.m_ui.actionConnect.setEnabled(True)
+ self.m_ui.actionDisconnect.setEnabled(False)
+ self.m_ui.actionQuit.setEnabled(True)
+ self.m_ui.actionConfigure.setEnabled(True)
+
+ self.m_ui.statusBar.addWidget(self.m_status)
+
+ self.m_ui.actionConnect.triggered.connect(self.open_serial_port)
+ self.m_ui.actionDisconnect.triggered.connect(self.close_serial_port)
+ self.m_ui.actionQuit.triggered.connect(self.close)
+ self.m_ui.actionConfigure.triggered.connect(self.m_settings.show)
+ self.m_ui.actionClear.triggered.connect(self.m_console.clear)
+ self.m_ui.actionAbout.triggered.connect(self.about)
+ self.m_ui.actionAboutQt.triggered.connect(qApp.aboutQt) # noqa: F821
+
+ self.m_serial.errorOccurred.connect(self.handle_error)
+ self.m_serial.readyRead.connect(self.read_data)
+ self.m_console.get_data.connect(self.write_data)
+
+ @Slot()
+ def open_serial_port(self):
+ s = self.m_settings.settings()
+ self.m_serial.setPortName(s.name)
+ self.m_serial.setBaudRate(s.baud_rate)
+ self.m_serial.setDataBits(s.data_bits)
+ self.m_serial.setParity(s.parity)
+ self.m_serial.setStopBits(s.stop_bits)
+ self.m_serial.setFlowControl(s.flow_control)
+ if self.m_serial.open(QIODeviceBase.ReadWrite):
+ self.m_console.setEnabled(True)
+ self.m_console.set_local_echo_enabled(s.local_echo_enabled)
+ self.m_ui.actionConnect.setEnabled(False)
+ self.m_ui.actionDisconnect.setEnabled(True)
+ self.m_ui.actionConfigure.setEnabled(False)
+ self.show_status_message(description(s))
+ else:
+ QMessageBox.critical(self, "Error", self.m_serial.errorString())
+ self.show_status_message("Open error")
+
+ @Slot()
+ def close_serial_port(self):
+ if self.m_serial.isOpen():
+ self.m_serial.close()
+ self.m_console.setEnabled(False)
+ self.m_ui.actionConnect.setEnabled(True)
+ self.m_ui.actionDisconnect.setEnabled(False)
+ self.m_ui.actionConfigure.setEnabled(True)
+ self.show_status_message("Disconnected")
+
+ @Slot()
+ def about(self):
+ QMessageBox.about(self, "About Simple Terminal", HELP)
+
+ @Slot(bytearray)
+ def write_data(self, data):
+ self.m_serial.write(data)
+
+ @Slot()
+ def read_data(self):
+ data = self.m_serial.readAll()
+ self.m_console.put_data(data.data())
+
+ @Slot(QSerialPort.SerialPortError)
+ def handle_error(self, error):
+ if error == QSerialPort.ResourceError:
+ QMessageBox.critical(self, "Critical Error",
+ self.m_serial.errorString())
+ self.close_serial_port()
+
+ @Slot(str)
+ def show_status_message(self, message):
+ self.m_status.setText(message)
diff --git a/examples/serialport/terminal/mainwindow.ui b/examples/serialport/terminal/mainwindow.ui
new file mode 100644
index 000000000..452fdd537
--- /dev/null
+++ b/examples/serialport/terminal/mainwindow.ui
@@ -0,0 +1,162 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>MainWindow</class>
+ <widget class="QMainWindow" name="MainWindow">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>400</width>
+ <height>300</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Simple Terminal</string>
+ </property>
+ <widget class="QWidget" name="centralWidget">
+ <layout class="QVBoxLayout" name="verticalLayout"/>
+ </widget>
+ <widget class="QMenuBar" name="menuBar">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>400</width>
+ <height>19</height>
+ </rect>
+ </property>
+ <widget class="QMenu" name="menuCalls">
+ <property name="title">
+ <string>Calls</string>
+ </property>
+ <addaction name="actionConnect"/>
+ <addaction name="actionDisconnect"/>
+ <addaction name="separator"/>
+ <addaction name="actionQuit"/>
+ </widget>
+ <widget class="QMenu" name="menuTools">
+ <property name="title">
+ <string>Tools</string>
+ </property>
+ <addaction name="actionConfigure"/>
+ <addaction name="actionClear"/>
+ </widget>
+ <widget class="QMenu" name="menuHelp">
+ <property name="title">
+ <string>Help</string>
+ </property>
+ <addaction name="actionAbout"/>
+ <addaction name="actionAboutQt"/>
+ </widget>
+ <addaction name="menuCalls"/>
+ <addaction name="menuTools"/>
+ <addaction name="menuHelp"/>
+ </widget>
+ <widget class="QToolBar" name="mainToolBar">
+ <attribute name="toolBarArea">
+ <enum>TopToolBarArea</enum>
+ </attribute>
+ <attribute name="toolBarBreak">
+ <bool>false</bool>
+ </attribute>
+ <addaction name="actionConnect"/>
+ <addaction name="actionDisconnect"/>
+ <addaction name="actionConfigure"/>
+ <addaction name="actionClear"/>
+ </widget>
+ <widget class="QStatusBar" name="statusBar"/>
+ <action name="actionAbout">
+ <property name="text">
+ <string>&amp;About</string>
+ </property>
+ <property name="toolTip">
+ <string>About program</string>
+ </property>
+ <property name="shortcut">
+ <string>Alt+A</string>
+ </property>
+ </action>
+ <action name="actionAboutQt">
+ <property name="text">
+ <string>About Qt</string>
+ </property>
+ </action>
+ <action name="actionConnect">
+ <property name="icon">
+ <iconset resource="terminal.qrc">
+ <normaloff>:/images/connect.png</normaloff>:/images/connect.png</iconset>
+ </property>
+ <property name="text">
+ <string>C&amp;onnect</string>
+ </property>
+ <property name="toolTip">
+ <string>Connect to serial port</string>
+ </property>
+ <property name="shortcut">
+ <string>Ctrl+O</string>
+ </property>
+ </action>
+ <action name="actionDisconnect">
+ <property name="icon">
+ <iconset resource="terminal.qrc">
+ <normaloff>:/images/disconnect.png</normaloff>:/images/disconnect.png</iconset>
+ </property>
+ <property name="text">
+ <string>&amp;Disconnect</string>
+ </property>
+ <property name="toolTip">
+ <string>Disconnect from serial port</string>
+ </property>
+ <property name="shortcut">
+ <string>Ctrl+D</string>
+ </property>
+ </action>
+ <action name="actionConfigure">
+ <property name="icon">
+ <iconset resource="terminal.qrc">
+ <normaloff>:/images/settings.png</normaloff>:/images/settings.png</iconset>
+ </property>
+ <property name="text">
+ <string>&amp;Configure</string>
+ </property>
+ <property name="toolTip">
+ <string>Configure serial port</string>
+ </property>
+ <property name="shortcut">
+ <string>Alt+C</string>
+ </property>
+ </action>
+ <action name="actionClear">
+ <property name="icon">
+ <iconset resource="terminal.qrc">
+ <normaloff>:/images/clear.png</normaloff>:/images/clear.png</iconset>
+ </property>
+ <property name="text">
+ <string>C&amp;lear</string>
+ </property>
+ <property name="toolTip">
+ <string>Clear data</string>
+ </property>
+ <property name="shortcut">
+ <string>Alt+L</string>
+ </property>
+ </action>
+ <action name="actionQuit">
+ <property name="icon">
+ <iconset resource="terminal.qrc">
+ <normaloff>:/images/application-exit.png</normaloff>:/images/application-exit.png</iconset>
+ </property>
+ <property name="text">
+ <string>&amp;Quit</string>
+ </property>
+ <property name="shortcut">
+ <string>Ctrl+Q</string>
+ </property>
+ </action>
+ </widget>
+ <layoutdefault spacing="6" margin="11"/>
+ <resources>
+ <include location="terminal.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/examples/serialport/terminal/rc_terminal.py b/examples/serialport/terminal/rc_terminal.py
new file mode 100644
index 000000000..cb3624e21
--- /dev/null
+++ b/examples/serialport/terminal/rc_terminal.py
@@ -0,0 +1,4464 @@
+# Resource object code (Python 3)
+# Created by: object code
+# Created by: The Resource Compiler for Qt version 6.4.0
+# WARNING! All changes made in this file will be lost!
+
+from PySide6 import QtCore
+
+qt_resource_data = b"\
+\x00\x000\xff\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3>a\xcb\
+\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\
+\x00\x00\x00\x09pHYs\x00\x00$\xe9\x00\x00$\xe9\
+\x01P$\xe7\xf8\x00\x00\x00\x19tEXtSof\
+tware\x00www.inksca\
+pe.org\x9b\xee<\x1a\x00\x00 \x00ID\
+ATx\x9c\xed\x9dy\x9c\x1dGu\xef\xbf\xd5\xddw\
+\x9f}\xd7\xbe\xcb\xb2\xe5\x1d\x8c\x17\x0161<\x88m\
+\xc2#\x80Cp\x82\x8c\xc3#$\x84\x80\x09\xe4\x85-\
+` \x04L\x02\x0e\x09Kx\x01,\x03q\x1e6y\
+\x1f\xcc\x92\x18\x8cc\x1b\x8f\xf7\xdd\xb2e\xcb\xb2\xd6\xd1\
+H\x9a}\xe6\xae\xbdT\xd5\xfb\xa3\xfa\xf6\xbd3sg\
+\xd1\x8cF\x92\xc9\xfc\xf4iMo\xb7\x97:\xbf>\xe7\
+\xd4\xa9SUBk\xcd\x22\xfe\xfb\xc2:\xd1\x0f\xb0\x88\
+\x13\x0b\xe7X_\xf0\xabW\x89\x0dJ\xdb\x17\x83nG\
+\x8b\x17\x84\x90;S9v\xbd\xe76]8\xd6\xf7Z\
+\xc4\xfc!\x8e\x85\x09\xf8\xea;\xc4+5\xd6\xfb4\x5c\
+\x0c,\xa9q\x8a\x06\x9e\xd1\x88\xcf^{\xb3\xbc\x85E\
+\xbbs\xd2`^\x04\xb8\xee:a5\xee\xb4\xfe\x1a\xcd\
+'\x00{\x96?{B\x09\xf1\xf1\x0f\xfd \xf8\xf9\x9c\
+o\xbc\x88c\x86y\x11\xe0\x86w\xd8\x9f\x03>^\xde\
+N&bt._M\xe7\xb2\x8d\xd4\xb5,\xc7s]\
+\x0a\xb9\x11rc\xc3\xec\xdb\xf98nq,\xfa\xad\x16\
+|\xf5\xda\x1f\xc8\x0f\xcc\xeb\xe9\x171o\xcc\x99\x007\
+\xbc\xdd\xf9m,\xfd3@\xd8B\xb0q\xd3\x06\xd6\x9e\
+\xfd\xdb\x08\xab\xb6[\xe1y>\xbb\xb6w\xb3\xfb\xb9\xc7\
+ \xbc\xa7\x10\xfc\xd5\x07~ \xbf8\xd7\x87_\xc4\xfc\
+1w\x02\xbc\xc3\xfa%\x88\xd7\x02\x9cy\xd6\xd9\xac\xdc\
+\xfc\x1a\x10\x16\xc5\xdc(={w0:\xd8\x8be\xd9\
+t.\xdf\xc0\xd2\xd5\xa7\x22\x84\x00`\xb4\xff \xdd\xbf\
+\xba\x05%%\x80\x16B\x5c\xfd\x81\x1f\x047\x1d\xab\x17\
+Z\xc4\xd1aN\x04\xf8\xd2\x95\xa2+\xe6X=\x80\xbd\
+|\xed\x19\x9c}\xe1\xff\x00\xa0w\xdf\xf3<q\xdf\xcf\
+QJ\x8d;?\x93\xcep\xe1\xeb\xdfA2\xdd\x00\xc0\
+\xe1\xbdO\xf1h\xf7/\x09\xef\xec+\xad\xd6}\xe8f\
+}`^o\xb2\x889aNq\x80\x98c\xbd\x9d\xd0\
+\xe9[u\xca\xb9\x00\x8c\x0e\x1d\xe6\xb1\xee\x9fU\x84\x1f\
+~\xf1\x00\xf9B\x9e\x07n\xbf\x09\xe5\xbb\x00t\xad>\
+\x93SN=#\xba\x9c\x10\xd6\xfb\xe7\xf6\xf8\x8b\x98/\
+\xe6\x18\x08\x12\xbf\x0f\x90nh\xa3\xb1\xa9\x0d\x80\x1d\x8f\
+\xfe*\xb2\xed\xafz\xc7\x17y\xff\x8dy\xae\xfe\xf2s\
+t\xad{\x05\x00\xb9\x82\xcb\xfe'\x7f\x0a\xe1w\xbf\xf6\
+\xcc\xd7\x90L\xa6\xcc\xd5\xe0\x7f\xfd\xdd;Ef>/\
+\xb2\x88\xb9a\x8e\x04\xd0\xab\x00:\x96o\xc4\x0a\xaf0\
+6<\x00@\xfb\xaa\xb3x\xd9\x15\x1f\xc6\x8e%h\xea\
+\xda\xc0%[o\x88~5\xd8\x7f\x88\xdc\xa1\xa7\xcc\x8d\
+\x9d\x18k7\x9dY>\xd4\xe4\xf8\xd6\xd5s{\x96E\
+\xcc\x07s\x0d\x05[\x00\xb6\x1d\x8bvHiT\xbf\xe5\
+\xc4\xc7\x9d\xa8\xa9\xf8\x18\x02\x0c\x01\xb4\x04`\xc5\xba\xb3\
+\xb1-\xbb|\xf0\xcf#Oq\x11\xc7\x0d\xf3\x22@\xe0\
+U\xa2\xbbu\x99$\x00Gv?\xc2\x8e_\x7f\x0f\x00\
+\xaf\x94\xe5\x81[?\x1d\x9d\x93J\xd8(\xbfDa\xe0\
+E\x00b\xc9:V\xac\xddX>\xbc\xf1\x1f\xae\xb2/\
+\x9f\xe3\xf3,b\x8e\x98'\x01\xf2\xd1\x8eeK\xc2\x08\
+\xb0\xd6\xdc\xfe\x8d\xab\xf9\xd6{\x97\xf0\xad?\xeeb\xdf\
+S\xbf\x04 \x19\xb7i\xc8\x98\x18A\xfe\xf0\xd3\xe1\xaf\
+4\xab7\x9e\x1d]Ci\xf5\xc19>\xcf\x22\xe6\x88\
+\xb9\x12`\x00`t\xb0\xbf\xec\xd3\xb1t\xfd9,k\
+KF'\x14\xc6\xfa\x08\xfc\x12\x00\xf1\x98\xc5\xda\xae$\
+e\xfd\xee\x17\x86pG{\xd0J\x92\xaeo\xa5\xa3\xd3\
+\x90Ghq\xe9W\xfe@\x9c\xc1\x22\x8e\x1b\xe6F\x00\
+\xcd\xbf\x03\xe4\xc6\xfa\x19\x19<\x04@\xb2y%K;\
+[\xd8\xb4\x22CkC\x8c\xba\xa4C]\xcaaY[\
+\x92M\xcb3$\xe3\xe3\x9b\x0ar\x87\x9eF+\x09J\
+\xb2zcE\xe6BY\x8bZ\xe08bN\x04\xd0\xa8\
+[\xcb\xeb=/>\x19\xae\x09\xea\x96\x9cE:a\xb3\
+\xaa#\xc5\xc6\xe5i6.K\xd3\xd9\x14\xc7\xb1'\xfb\
+v\xeeh\x0fAa\x08\xad\x02Z\xda\x96QWW_\
+>t\xd5\xdf\xbdSt\xcc\xe5\xb9\x16q\xf4\x98\x13\x01\
+\xae\xbdY?\x02\xec\x05\xd8\xbf\xe79\xdc\xa2\xf1\x052\
+\x9d\xa7\x91h\x5c>\xeb\xeb\xe4\xfb\x9eC\xab\x00\xad5\
+\xab\xd7o*\xefN\xc4\x02\xeb\xbdsy\xaeE\x1c=\
+\xe6\x9c\x11\xa45_\x05PR\xf2\xe4\x03\xbf\x88|\x81\
+\xe6u\x97`\xc5\x92\xd3\xfd4Bix\x0f2(\xa1\
+U@\xe7\x92\xd5\xc4b\xa6Z\xa9\xe1O\xaf\xbbR\xc4\
+g\xf8\xf9\x22\x8e\x01\xe6L\x80k\xffM\xdd\x00\xfaN\
+\x80\xbe\xde\xdd\xec\xdd\xf9\xb8\xb9`,E\xd3\x9aW\xcf\
+\xea\x1aZIJ\x83\xbb\xd1*\xc0\xb2\x04+V\xad.\
+\x1f\xealp\xec\xdf\x9f\xeb\xb3-b\xf6\x98{N\xa0\
+\xd6Z\x07\xfa\x9d\xc00\xc03\x8f\xddMvd\x10\x80\
+d\xf3*2\x1d\xa7\xce\xea2\xc5!C\x00\xad\x02\x96\
+._\x13\xed\x17\xe8Eg\xf08`^I\xa1\xd7\xfe\
+P\x1fD\x8b\xf7\x80\xf9\x9a\x1f\xbb\xf7g(i\x84Y\
+\xbf\xfce8\xc9\xc6\x19\xaf\xa1\x02\x17w\xac\x17\xad$\
+\xf1X\x9c\xae\xae\xae\xf2\xa1\xb3o\xf8\xfd\xd8%\xf3y\
+\xbeE\xcc\x8cyg\x05\x7f\xf0\xe6\xe0V47\x02d\
+G\xfb\xd9\xf1\xd8\xdd\xa6z\xa75\x8d\xab/BX3\
+g\x8a\x15\x87\xf6\xa2T\x80T\x01K\x97\xae\xac\x1c\x10\
+\xf2\xda\xf9>\xdf\x22\xa6\xc71I\x0b\xf7\xd2\xea\xcf\x81\
+\xdd\x00{v>A\xff\xa1\xbdh-\xb1\xe3ud:\
+7O\xfb[\xad5A)\x8b\x97\x1fBII\xaa\xae\
+\x9e\xfa\x86\x86\xf0\xa8\xb8\xe2+\x7f(\xd6\x1f\x8bg\x5c\
+Dm\x1c\x13\x02\xfc\xe5\xb7uVY\xea*@\x02<\
+\xf9\xe0\x9d\x94\x8a9\xb4\x92$[\xd6\x10\xcb\xb4O\xfa\
+\x8d\xd6\x1a\xa54J\x83\xd2P\x1c\xe9E\xc9\x00%\x03\
+\x96t.\x8d\x9eOH\xeb\xcf\x8f\xc53.\xa26\x8e\
+Y\xc7\x90\x0f}_?\x80\xe6\xb3\x00\x9e[\xe0\xe9G\
+\xef\x89\x22}uK\xceD\xd8\xa6V\xa7\xb5F\xe9\x8a\
+\xe0\xcb\x8b[\x18&\xf0\x8a(\x19\xd0\xd0\xdcH<\x1e\
+\xd5\x02\xdf\xf5\xc5+\xc5\xcc\xce\xc4\x22\xe6\x84c\xda3\
+h\x99T\x9f\x03q?\xc0\xc0\xe1\x1e\xf6\xef\xde\x81\xd6\
+\x12a\xd9\xa4;6U\x04\xaf\xaa\x84_^W\x9a\xe2\
+\xd8\x11\xa4\x0aPR\xd1\xde\xdeV\xbel]\xdc\xb1\xde\
+},\x9fs\x11\x15\x1cS\x02\xbc\xed\x87Z\x22\xe4\x1f\
+\x00Y\x80\x9d\xcf>Nvt\x10-\x03\x9cT\x0b\xb1\
+\xfa%\x93\xbe\xfc\xca\xa2q\xf3C\xc8\xc0G\xc9\x80\xe6\
+\xa6f\x84eB\xc8\x02\xde\x7f\xcb\x95b\xb6\xfd\x0e\x16\
+q\x148\xe6}\x03?\xf8\x03\xbd[#\xde\x0f\xa0\x94\
+\xe4\xe9\xc7\x1f\xc6\x0f<\x94\x0cH6\xad\xc2rRh\
+\x0dZU\x04_\xf6\x05\xa4\x94\x94rCH%\xd1@\
+sCS\xf9\xb2\xab\x0e\xda\xf6\x9bg\xba\xf7\xa3\xdf\x12\
+\xb1{o\x12\x7f\xda}\xa3\xf8\x9b\x07\x7f \x1af:\
+\x7f\x11\x0b\xd49\xf4\xda\x7f\x0d\xb6\x01\xb7\x00\xe4s\xa3\
+\xbc\xb8\xf3\x19\xa4\x0cPJ\x93lY\x8bB\xa0\xb4F\
+km\xc8P\xa5\x09\xbc\xc2(2\xf0\x912\xa0\xb1\xb9\
+\xbe\xfa\xb2\xd3\x06\x86\xee\xbdQ\xbc\xb1\x94`\xbb\xd0|\
+\x0d\xc1\xc7\x02\xc9'\x16\xe2\xdd~\xd3\xb0`\xbd\x83\x13\
+B\xfd1\xd0\x03p\xf0\xc0>\x06\x07\xfa\x91R\x82\x15\
+#^\xdf5\xc9\x17\xd0\xca\x10!\x08|\xbcR\x0e)\
+\x03l\xcb&\x9d6\x89\xa3\x08\xbd\xe5\x1f\xde.\xce\x9b\
+x\x9f\xeembs\xf76\xf1\x0b!\xb8\x0d\x88\xd2\x8b\
+\xd0L:w\x11\x93\xb1`\x04\xf8\x93\x1f\xe8a%\xac\
+w\x02\x0a`\xd7\xf3\xcf\xe0\x96\x0aH\x19\xe0\xa4\x9a\xb1\
+\xe2\x99\x9a\xbe\x80\xd6\x1a\xbf\x98CII \x03\xea2\
+U\xc9\xc2v%W\xe0\xa1\x9bD\xeb}7\x8a\xaf\x01\
+O\x02\xaf+\xef\x17V\xf4J\x152,bJ\x1c\x93\
+\xde\xc1\xd3\xe1+\xef\xb0\xaf\x17\xf0\x11\x80\xc6\xc6\x16\xd6\
+\xae_\x8fV\x0a)=\xf2\x83\xfbP\xd2\xd8\xfb\xc8\x1c\
+`4\x81\x93\xa8G\x0b\x0b%%G\xfa\x06\xf1\x83\x00\
+\xc0O%\xd4\x86\xd3/\xe6\xcd\x08>\x05DNB}\
+\xcbJ\xd6\x9cu\x15\x07w\xfe\x94\xc1\x83&\xe5\xccO\
+S\x7f\xc9\xdbtnA_\xf0%\x8ec>>\xc0D\
+\x8c\x05\xea\x13M\x8e\xf5Z\x0d\xe7\x8c\x8e\x0e\xd1w\xf8\
+\x10-\xad\xad(\x0dN\xba\x95\xd2\xd8\x91H\xe8\xd5\x04\
+\xf0\xbd\x12\xc2\x89\xa3\xa4\x22\x9d\x8c3\x9a\x0bhj\xd3\
+\xb15g\xf2\x08\x82\xa8\x8e\x18O6\xb0\xfa\x8c\xb7\xd1\
+\xba\xe2B\x10\x16\xe9\xfa\xa5\x0cb\x08\x10\xcf\xb3\x1ex\
+b\xa1\xdf\xf1\xa5\x8c\x05'\xc0\xa7~\xa8\xbd\x1b\xde.\
+\xae\xc2\xb2\x1e\x05R\x07{{H\xa6\x92\xc4b\x0eX\
+1\xacX\x1a\xdf-L&A\xe0#\xb4@\xa3I7\
+\x08:O\xd14\xb6i\xc0\x08_X\x0e\xcbO\xfdm\
+\x96\xae\x7f\x03\x96\x93\x8a\xee\x17O5G\xeb\xca\xaa\x10\
+e\x11\xb5q\x5c\x86\x88\xf9\xe0\xbf\xe9\x1d\x1a>\x0c\x80\
+\xd6\x1c\xec9\x80\x0c\x02\xb4\x92\x88x\x06-\xec\x9aq\
+\x01\x8dG\xf3\xb2\x1c\xcbO\xcf\x96\x85\x0f@\xfb\xcaW\
+p\xee\x1b\xfe\x96\xe5\x9b\xde<N\xf8\x00N\xa2\xaa\xf6\
+\xa7hf\x11\xd3\xe2\xb8\x8d\x11t\xed\xbf\xca\xaf\x83\xfe\
+\x19@\xa9T\xa2\xaf\xaf\x8f \x08PRb\xc7\xd2U\
+5\x02\x13*n\xe8\xf4Yqf\x8e\x86N\x8fr:\
+q}\xcbj\xce|\xcd\xc7X\x7f\xde{\x89\xa7Z\xc3\
++kP\xa3\xd1}\x9cx\x15\x01\xc4\x22\x01f\xc2\x82\
+\x9b\x80j\x04\x8e\xbe\xc6\x09\xc4\xd3@\xc7\xe8\xe8(\xf1\
+D\x9cd<\x86\xd2\x1aa\xc7P\x81G\xb2A\xd2\xba\
+\xca%\x9e\xaa\xf40\x8e\xa7\x1aY}\xc6[i]v\
+\x01T7/\xeb<\xa8a\xd0\x01Xu\x80\x8d\x1d\xaf\
+\xd4\x1a\x84X4\x013\xe1\xb8\x8e\x12\xf6\xe1\x9bt\x1f\
+Z\x5cS\xde\x1e\x1c\x18\xc4\xf3<\x82 \xc0I(:\
+7\x96X\xb2\xa9\x18\x09_\xd81Vn\xbe\x82s^\
+\xf7\x19Z\x97\xbf\xc2h\x02\xad@\xbb \x0f\x81\xec7\
+\xc2\x07\xd0>\x00\x89TE\xe6Zs\xce\xf1{\xbb\x97\
+&\x16\xbc\x1aX\x0b7\x5ce\xff\x13\x9a\xf7\x01\xa42\
+1Vl\x144\xb6\x97\x22U\x0f\xd0\xbe\xf2<V\x9e\
+\xf6;\xa1\xaa\x17 ,@\x82\x1c\x01]\x1c\xd7\xfd\x1c\
+\x00\xab-\xd4\x02\xf0\xf8\x7f\xfe%\xa5\xfc\x00#=\x1c\
+\xf9\xe9'\xb8M\xc0&`\x9d\x86\xfb<\xb8\xe6\xdbZ\
+g\x8f\xcf\x9b\x9e\xfc8!\x04\xf8\xca\x95\x22e\xc5\xad\
+G\xda\x97\xeb\xd3\x96\xad\xd78\x95>\xa6\xd4\xb7\xacb\
+\xcd\x99\xbfK\xa6y\x0d\x86\x11\xa1\x92R\xa3\xa0\xb3\x95\
+}b\x82\xf2\xb2\x1a\xc12&\xff\xd9\xbb\xbe\xc9\x9d_\
+}\x88\xe7\xef\x8c\xfa\xa1Vc'\xf0;_\xd7\xfa\xf9\
+\x05x\xb5\x97\x1c\x8e\xab\x0fP\xc6\xf9\x97\xf3*\xa5T\
+\xbcZ\x86\xf1d\x03+7_A\xfb\x8a\x97\x81\xb0\x89\
+\xf2\xcc\xf5\xa8\xf9\xea\xd1\xa1\xd0-\xb3\xae\xf5x-\xa0\
+]\x94Tt\x7f\xf7nn\xbb\xeeI\x8a#\x95C\x09\
+\xcb\x02\xadq\x0d\xd97\x027\x09!.\xd0\x8b\xc3\xd5\
+\x1d_\x0d\xd0\xfd\x1dq\x0a6\x7f\x0fD\xbd\x80-\xcb\
+\xa1k\xdd\x85t\xae\xddB,\x96\xc1\xb2\x13\x08+\x06\
+\xaa\x08j\x08\x080B\x0f\x171q\xdd`\xe7={\
+\xb9\xf5cw\xd2\xfbLO\xb4\xaf\xceq8\xaf\xb9\x99\
+\x95\xb1\x18\x85R\x89{FG9\x22#\x95p\xf5\xd7\
+\xb5\xde\xb6\xe0/}\x92\xe3\xb8\x10\xe0\xae\x1bES\xcc\
+\x84n\xdf\x07D\x0a\xbf\xb9k#\x9dk\xcf'\x91n\
+\xc5\xb2\x13\xd8v\x12\xcb\x12Xd\x11\x14\xa9)\xf4h\
+\xdb\x06,\x06\xf7\x8f\xf2\xef\x9f\xfc%O\xfedGt\
+?\xc7\xb28\xaf\xbd\x9d\xb3\x9a\x9aP\xbe\x8f\xefy\xf8\
+\x9e\xc7p\xa9\xc4\x7f\x8c\x8d\x11\xd6/\x0e\xbb\xb0\xf1\xbf\
+\xbb?\xb0\xa0&\xe0\x96[\x84\xbd\xac\xc0{b\x82\xcf\
+@\xa5J\x96\xaao\xa7}\xcd9\xa4\x1b:\xb1\xed$\
+J\xf9 4\xc8>\xb4p\xc1Ia\xdbq\xc2\x98`\
+\xa8\xeeue\x1b\x8d\x9b/q\xfb\x97\xef\xe7\xce\xaf?\
+H\xe0V\x0c\xfd\xe6\xf6v.^\xb1\x82\x14\xe0\xbb.\
+\xbeR(\xdbF\xda6\x0d\xb1\x18\xeb\xe3qvz\x1e\
+@W\x12\xfe\x02\xf8\xf4B\x96\xc1\xc9\x8e\x05#\xc0\xbd\
+7\x89\xd7.\xd5|E\xc3\xe9\xd1\xcd\x12i\x9a\x97\xae\
+\xa7\xbeu9\x96\x930\x1dB,\x17\xe9\x0d \xf5\x08\
+\x8e\x93\x04'\x8dP6\x96e\x87\x03\x86\x8c\x17\xbc\xd6\
+\x9a\x87\xff\xefv~|\xdd\xdd\x8c\x1e\xa9\xb4\xf3,k\
+l\xe4\xf2SNaI&c\xbex\xd7\xc5\xb2\xedh\
+\xb1m\x1beY\x9c\x9eL\xf2\xa2\xe7!\xcd\x15_\xb1\
+P\xef\xffR\xc1\x82\x10\xa0\xfbF\xf1\xbbB\xf0\xa3\xf2\
+\xb6\xb0c4u\xad\xa1\xbem)\xc2\x12h\x1d\xa0\x95\
+M\x10\x1c&(\x0e\x18\x019i\x94\xb0\x11\xc2\xc3\x12\
+\x0eJ8\xd8N\xd9\x194Z`\xcf\xa3\xbd\xfc\xe8\xa3\
+w\xb1\xf7\xb1\xc3\xd1\xbd\x1a\x92I.?\xe3\x0c\xce]\
+\xba\x94 T\xf7\xca\xb2\x90U\xc2\xb7l\x1b\xcb\xb2\xb0\
+l\x9b\x84\xe3\x90\x10\x82\x821}\xff\xedS\xce\x17F\
+\x03Xl\xaa\x1a\x1a\x88\x86\xb6v\x1a:\x96P\xae\xe8\
++\xe5\x13x\xbdh\xd9\x8f\xe3\xa4@\xa4\x11\xcaA)\
+'\xfc\xeb!\xc2u\xcb\x8a1r(\xc7\x8f?s?\
+\x8f\xdc\xfa\x5cy 2\x1c\xcb\xe2\xd5\xeb\xd7\xf3\xdbg\
+\x9cA2\x1e7\x82W*\x12\xb4m\xdb\xa8\xf2\x12\x12\
+B\xd86;\x5c\xb7,|\x84 X\x90\xf7\x7f\x09a\
+A\x08\xe0+\xbe\x1e\xb3\xd8\x82\xe62\x80\xd1#\xbdx\
+\xc51\xdaV\x9d\x86\xe5\x98P\xad\x1d\xebB[I\x94\
+\xecCH\x0f!\x1c\x94\xe5T\x11\xc1#(\x0a\xee\xf9\
+\xe7'\xb9\xfd\x86\xc7\xf1\x0a~t\xfdS\xdb\xdax\xe3\
+\xe6\xcdt65\xe1X\x16\x96eE*~\xaa/\x7f\
+\xd0\xf7\xb9w`\x80>\xd7\x8cUh\xc7\xe1\xf5\x9fd\
+}\xf76q7\xf0\x0d\xe0\x96-[kD\x0d~\xc3\
+\xb1\x80\xb5\x00!\xee\xdb\xc6G4\xfc\x0d!\xd1\x84%\
+h]\xb1\x8eL\xcb\x0a\x00,+\x8e%@\x05=X\
+Ba;)l'\x8d\xe3\xa4y\xf6\x17#\xfc\xf4\xf3\
+\xcf0t\xa02\x0eQ[*\xc5\x1b\xd6\xac\xe1\x94\x8e\
+\x0e\x9cx\x1c'\x1e'\x16\xfe\xd5\x10y\xfb\xbe\xe7\xe1\
+\x85~\xc0p>\xcf\xdd\x07\x0e\xf0\xdc\xf0p\xa4\x94,\
+\x1b.\xf8#Xs\xd1\xb8\x07\xde\x03|\x11\xf8\xd6\x96\
+\xad\xff}\xe2\x03\x0b^\x0d\xbc\xef&q\xa1\xd6\xfc\x1b\
+\x10u\xfaK\xd67\xd3\xba\xf2Tb\x89\x14\x96\x9d\xc0\
+\xb2\x13\x10\x1c\x06\x9d\xa3\x7f\x97\xe6?\xbf\xd0\xc3\xee\x07\
++\x91\x9c\xa4m\xf3\xca\xf6v^\xd6\xd5E\x22\x91\x88\
+\x84\x1f-\x89\x04v,6\x8e\x00\xa5b\x91{\xf6\xec\
+\xa1\xbb\xa7\x07\xbfR\xf7\xe7\xd4K7p\xd9\xc7\xb7\x90\
+h\xe8a\xf8\xd0S\x8c\x0d\xf6M|\xe4\xbb\x80\xab\xb7\
+l\xd5\xfb\x16\xb4`N\x12\x1c\x978@\xf7wD=\
+6\x9f\x01\xdeO8\xc4\xac\xb0\x1c\xdaV\x9fB]\xf3\
+2,;\x81;&\xb8\xf3+\x8f\xf1\xc8-=\xe8\xf2\
+h\xb3\xc0\xe9\x99\x0c[\xda\xda\xa8K\xa5j\x0a\xbez\
+[i\x8d\xef\xba<\xbe\x7f??{\xf6Y\x86\x8b\xc5\
+\xe8\x19:7t\xf1\x96/\xbc\x95\xd3.\xdd\x84\xd2\x12\
+\xad$RI\xdc|\x0f\x83=Opd\xef}\xa8 \
+23c\xc0\x07\xb6l\xd57.x\xe1\x9c`\x1c\xd7\
+H\xe0}7\x8a\xb3\xb5\xe0\x1b\xc0\x05\xe5}\x0d\xedK\
+\xd9uO\x03\xbf\xfe\xfa\x8b\x94\xb2\x15;\xbf\xd4\xb6\xd9\
+RWG{*5I\xd0\xb5\x84\xef\xc4\xe3\x1c\xce\xe5\
+\xf8\xe1\xc3\x0f\xb3\xab\xbf?\xbaN\xaa1\xcde\x7f\xf5\
+&.~\xcfk\xb0\xed\x22P@\xe9\x94I8Q\x0a\
+\xa5$JI\xbcb?\xfb\x9f\xf9w\xb2\x03{\xab\x1f\
+\xf9\xc7\xc0{\xb6l\xd5\x93\xd4\xc4o\x0aN@c\x90\
+\x10\xf7n\xe3C\x02\xae\xef}\x0a\xeb\xb1\x9ba\xf4P\
+\xe5h=\xf02\xcbbuY\xc0\x13\x05]C\xf0.\
+\xf0\x8b\x17^\xe0\xfe={Pe\x0f\xdf\x12\xbc\xf2]\
+\xaf\xe5\x8aO\xbe\x85\xba\xa6!\xb4\xf7,\xc8\xc3\xa6\xcd\
+@\x0b\xa4X\x02\xd62\xb4\xdd\x89V\x1a\xa5\x14J\x07\
+\x0c\xf5\xdcO\xef\xf3\xbfD\xc9\xa8\x82\xd0\x0f\xbc{\xcb\
+V}\xdb\xf1-\xa7\xe3\x83\x13\xd2\x1ax\x9d\x10V\xa1\
+\x83{\xb2}l)\xef\x8ba\x22F\x1b16b6\
+_\xbd\x88\xc5x\xb4\xaf\x8f;v\xef\xa6\xe4W\xb4\xc7\
+\x86W\x9d\xce[\xbf\xf4G,\xdf\xdc\x82\xf6\x9e\x80\xe0\
+ \xe8\x92\xc9#\xd0.Z\xbbH\xe9#\x03\x9f@Y\
+X\xc9\xf3\x10\xce\x1a\xa3\x0d\xb4\xc4\xcd\x0fpp\xc7\x8f\
+\xc9\x0f\xef/_R\x03\x9f\xd8\xb2U\x7f\xfe\xf8\x95\xd2\
+\xf1\xc1\x09!\xc0\xfb\x84\xf8\xb4\x86O\x81\xb1\xf3k\x80\
+\xb3\x81\xea\xa1\xa5,\xc7\xa9)\xfc\xb2\xd7\xbf\xb7X\xe4\
+\x8e\x03\x07\xe8\xaf\xb2\xf3\xad\xab\xbax\xf3\xe7\xdf\xcd9\
+\xff\xf3\x02\xb4\xbf\x0b\xfc\xe7M\xee\x80.\x01nD\x00\
+t\xc9\x10\xa0L\x02\xe9\x81\xbd\x0c;u\x11\x9a\x04J\
++\x94\x0c\xe8\xdf\xf7_\xf4\xef\xee\xae~\xf4\x7f\x01\xfe\
+d\xcbV\xfd\x1b\x13?8\xee\x04\xf83!\xceWp\
+\x1f`\xc5\x80\xdf\x02Zk\x9c'\x84\xa8\xf9\xd5\x8f\x01\
+\xf7\x0c\x0e\xf2b\xb6\xd2\x86\x13\xcf$y\xfd\x87\x7f\x9f\
+K?p%\xb1x\x1e\xed?\x1b\xa6\x8aU\x04^Y\
+7\xdbJy!\x09\xbc\x90\x04>JY\xd8\xa9\x0b\xb1\
+\xe2\xebPZ\xa2\xa4$;\xf0$\xbd\xcf\x8e\x9b\x04\xe3\
+v\xe0m[\xb6\xfef4\x22\x9d\x08\x02\xbcZ\xc1\xdd\
+\x00\x9b\x81\xb3\xa69\xd7\x8e\xc5*\x1e~,\xc6\xa3\xc5\
+\x22O\xe5r\x15;/\x04\xe7\xfd\xde\xc5\xbc\xe9\xb3\xd7\
+\xd0\xb4\xb4\x05-\xf7\xa3\xbdC\x08+\x00\xedM\x10\xfa\
+\x04\x22\xe0\x12\x04\xde\x04M`\xd6\x85\xb3\x86x\xdd%\
+a\xf75I)\xbb\x8f\x9e\xed\xffN\xe0\x95\xca\x8f\xf6\
+\x14p\xf9\x96\xad\xbag\x8aG\x7f\xc9\xe0\xb8\x13\xe0\x8f\
+\x85Xi\xc3>0\xaa\xff\xc2i\xce\x15\x96\x85\x1d\x8f\
+\xf3\x22\xf0\xa8\xe7Q\xaa\x9a\x8af\xf5\xcb\xd7\xf3\xd6\xeb\
+\xafa\xcd\xf9\xa7\x82\xecG\x07\xc6^K\xe9\x83\x96\xd8\
+6\xe3I@\x85\x04Z\x95@{UZ\xc0'\xf0}\
+\xa4\xaa\x90\x01\xab\x95x\xe3\x1b\x80\x04J)\x02w\x98\
+\x9e\xed?\xc4\xcd\x0f\x97\x1f\xe1 \x86\x04O\xf2\x12\xc6\
+q'\xc0uBXGL\xa7\xd1%\x02\xb8\x0c\x98j\
+\xf8\x8f#\xc0cB0\x5c\xf5\x8c\x8d]\x8d\xbc\xe9\xba\
+\xdf\xe3\x15\xef\xb8\x18\xa1]\xb4\xff\x02\xe8\x1c\x888Z\
+\xd9(%\x91\xd2E\x08M,f\x1b\x12\xe0FdP\
+\xb2\x80\x96%\x04.\x08i\x84\x1fj\x82\xc0\xf7\xcc\x00\
+\x15\xca\x90@\x93\x22\xd1t9\xc2j6#\x9bH\x97\
+C\xcf\xdfF.\x1c\xee\x1e3\x0e\xc2[\xb6l\xd5\xbf\
+\x5c\xb8\x12[X\x9c('\xf0j\x0d\xdf\x05X\x86\x99\
+n\xb4\x1ay\xe01\xa0z\x16)'\xe1p\xe9\x9f\xbd\
+\x96\xd7\x7f\xf8\x8d$2)t\xb0\x1b\x82\xfd bh\
+\x1c\x84H\xa0q\x90A\x10\x0e2Q\xc2\xb6m\xe2\xc9\
+\xd88M \x83\x02J\x16A\xbaXN\x80\xd6\x92@\
+z\x04\xbeG\xe0\xf9\xf8\xd2Ck\x89V\x01R\xfa(\
+%H4\xbe\x01;n\x02\x99\x96\xdd\xc0\xe1\x9d?b\
+\xf8\xe0\xa3\xe5G\xf3\x81\xad[\xb6\xea\x9b\x17\xb4\xd0\x16\
+\x08'\x84\x00B\x08\xf1\xa7\xf0\x90\x86\x97\x03l\x01V\
+aF\x98\xda\x0e<\x17\xae\x97q\xd6\x15g\xf0\xe6\xcf\
+\xbd\x85\xf6\xb5\x9d \x07\xd1\xfeS\xa0}\xb4N\x00\x0e\
+\x9a\x18Xq,+\x89\xd6f\x8c\x22\x19\xb8\xc8\xa0D\
+2\x95&\x16\x0f5\x81\xf6\xd0\xb2\x84\xefg\x8d\x19P\
+\x1e\xb6#P: \x08<\xbc\x92K }\x82\xc0G\
+\xe8\x00E\xa8!\xa4$Q\xff*\x12\x99\xb3\x01A,\
+\xb9\x92\xfe=\xb7r\xe4\x85_\x95\x1fQ\x03\xd7n\xd9\
+\xaa\xff\xe1\xb8\x15\xe21\xc2\x09!\x00\xc0\x9f\x08\xb1E\
+\xc0\xbd\xe5\xedf \x87\xf9\x9c\xcahZ\x0e\x97}\xec\
+L\xce\x7f\xfb\xbb\xb0\x84\x8d\x90\xcf\x83\xf7\x0c\x88\x84Q\
+\xf9$\xd0Xh\xe9\xa0qp\xe2\x19\x101d )\
+\x15FP\x81\x8b\xd6\x1euM-XBE\xe6@\xfa\
+\x05|7\x87V\xc6\x0c81\x81\x94&\x97\xc0sK\
+\x04\x81!\x01H\x10\xd28\x87\x81O\xa2\xee\x5cR\x8d\
+\x97 \xac$\xb1\xe4\x1a\x86{~B\xcf\xf6\x1fU\xbf\
+\xd6\x17\xb6l\xd5\x1f=.\x05x\x8cp\xc2\xa6\x8f\xff\
+\x86\xd6\xdd\x1a>J8~\xc00\x15\xe1[\x0e\xd9\xf3\
+\xde\x09\x97}\x066\xbczS\xd8u\x5c\xa3\xdc\xe70\
+I\xa2f\x11\x04\x08\x14J{(\xe5\xe2{y \xc0\
+v\x04\xb1x\x1c\x8dD\xc9\x80\xec\xd0\x91\xaa;\x0b,\
+;\x06\xc22\xc3\xd4\x04\x012P\x08L\x93\xb2\x13\x8b\
+\x01\x02\x81@\x05 \x03\x10\xc2B\x08\x8bR\xf6\x11\xf2\
+C?E\xab\x02\xd2\xeb\xa3y\xf9\x9bX}\xee\xbb\xab\
+\xc7$\xf8\xab\xeem\xe2;\xdd\xdb\xc4\x09\xc9\xb6\x9e\x0b\
+N\x18\x01\x00\xbe\xa1\xf5\x17\x80\xd7\x03}\xc0a\x8cF\
+\xf8\xd2\xe5\x9f\xe3\xaf7\xfe\x96\xc9\xfdt\x9c8h\x8d\
+F\xa1T\x01\xad\x03\xd3\x1bH\x87$\x10\x0at\x80V\
+>\xd2/\xa0\x82\x22\xe8\x80X\x22\x89\xed8h\xad\x08\
+\xfc\x12\xb9\xd1\xc10\x8d\x5c \x84 \x91H\x86\xc3\xd4\
+\x08JE\x0f\xa5\x01!\xb0l\x8bx\xc2\x90\x00\x01*\
+\xd0H_SNf\xf1\x0a\xcf\x91\xed\xff\x11\x81\x7f\x18\
+%\xc7\xa8\xef\xb8\x98\xb5\xaf\xf8P\xf5dY\xef\x02\xfe\
+_\xf761\xbe\xd7\xeaI\x8a\x13f\x02\xc6=\x84\x10\
+\xa2:G\xbf{\x9bx\x1f\xf0O\x00\x9b.\xbc\x9aL\
+\xcbf,\xcbFe\xbf\x8fm;\xe1leq\x10f\
+Q\xda\xc6+\x05hma9\x09\x12\xa9F\xc0B)\
+\xc9\xd8@\x0f\x81_BI\x8f\xc6\xb6\x0e\x12I'\xf4\
+\x07|\xdc\xe2\x18n)\x8b\x0c|,\x1b\xe2I'\xac\
+\x06\x06\xf8\xbeO\xa9(\x09\xbc\x1cR\x05\xa0%\xc2\x91\
+\xe8\xb0\xa9\xd2\x8euP\xdf~%\xf1\xcc\x19\x08\x91\xc0\
+\xcb\xeff\xf7C_\xc2w\xa3<\xc5\xfb\x80+\xb6l\
+\xd5\xc3\x9c\xc48\xa1\x1a\xa0\x8c\x1a\x1d4\x22W@c\
+\x1b\x13\xa0|\x94\x0a\xc2\xd6\xbb\x8a\x19\x80\x00Kh\x10\
+\x12\xa5}\x02\xb7\x80\x96\x9e\xd9oA\xba\xb1\x19\xad\x15\
+ZKF\xfa\x0e\x86s\x16\x9b\xaf9\x91Jb\x09\x0b\
+4\xf8^@\xe0\x06\x08,\x84\x10\xd8\xb6 \x91Ja\
+\xc5Z@\x0bd\x00\xbeK\xd4_E\xfa}\x8c\xf5}\
+\x0f/\xff4\xa0\x88g\xd6\xb2\xfe\xa2O\x93\xa8\x8bF\
+E\xbd\x08\xb8\xb7{\x9b\x98\xfd\x0c\x1a'\x00'\x05\x01\
+j\xa0B\x00M$\xc0r\xd3\xadRj\x82)\xf0q\
+l\x81\x96>Jyxn6:\x16\x8f'Hf\xea\
+\xcc\x98\xc4\x81\xc7H\xff\xe1\xaa\xdb\x08R\x99LH0\
+M\xb1P2QF!@\x08\x84(\x92L\xd7c'\
+:\x11B\xa0%\xf8\xae\x8eH\xa0\x82QF\x0f\x7f\x1b\
+7g\x06!q\x12\x9d\xac\xbb\xe0SdZ\xa2a\xef\
+O\x03\xee\xeb\xde&f7v\xfe\x09\xc0\xc9J\x00\xaf\
+\xbc\xa2\x82B\xe8\x03\xd8\xa6c\xb02\xc9\x1cJI\xa0\
+B\x02\xdb\xc1T\x0d\x95Q\xedF;H@R\xd7\xd8\
+\x1ce\x18\xe7F\x87)\x15*\xe9\xe4\xb6c\x93H%\
+\xd1J#\xa5\xa6\x94/!\x84\xa0\xfc\x0f\xd5G\xba~\
+\x09N\xc2$\xb5\xca@\xe0\x16u\x94\x9c\xaaU\x91\xd1\
+C\xdf\xc0+<\x15^\xaf\x915/\xff(\x8d]\xd1\
+\xac\xa8+0\x9a \xca\x818\x99p\xb2\x12 \xd2\x00\
+R\x16\x8d\x06P\x1a-\x1c\xd3H\x13i\x82 <5\
+@ \x89\xc5mc*\x02\x17\xafX\xd1\x02\x02EC\
+K\x1bZ\x99\xb1\xe8\x06\x0e\xf5Rmu\xd2u)l\
+\xc7\x98\x1a\xb7\xe0\xe1\xb9\x81!A\xb8(o'\x99\x96\
+\x8d\xc4S\xcb\x11\x80\x0a\xc0\xcd\xeb(sIk\x9f\xe1\
+\x9e\xaf\xe2\x17\x9f\x05@X)V\x9cu-\xad\xab\xa2\
+\x99SZ\x80_uo\x13\x97\x1d\x8f\xc2;\x1a\x9c\xac\
+\x04\x884\x80\x0c\x0aFE\xa3P:\x16\xb5\xd9\x97I\
+`L\x81!A,fE5\x82ba\x94j-\x90\
+H&I\xd7\xd5\xa1Qxn\x91\x91\xaa\xac!\x80t\
+}&\xd44P\x183c\x16\x19S\x00\x08MP|\
+\x9c\xba\xb63\x89gV\x01f\x8c\xc3RN\xa3\xa2\x88\
+U\xc0\xf0\xc1\x7f\xc4+>\x83\xf9\xa9\xc3\xd2S\xdfM\
+\xd7\xa6\xdf\x89n\x01\xfc\xb8{\x9b\xd8\xba0E67\
+\x9c\xac\x04\x88R\xb0|7\x17\xfa\x00\x1aM\xac\x22x\
+5\x99\x04\x96\xad\xb1l\x81V\x01\x81\x9bG\xfa%\xaa\
+I\xd0\xd8j\x1c4\xad\x15\x83G\x0e\xe3{\x11\xcf\x88\
+\xc5\x1d\x92\xe9$h\x8d\x94\x8a\xfch\x11Q\xf5\x0f\xed\
+\xe1\x17\x1e\xa3\xb1\xfde\xa4\xea\xd6\x98\x91iB\x12\x94\
+\x93\x87\xb4*2v\xe4&\xdc\xfc\x93\x18GA\xd0\xbe\
+\xfam\xac<\xfb\x8f\x08\x1dO\x07\xf8n\xf76\xf1\x91\
+\xe3R\x8a\xb3\xc0\xc9J\x80(#7p\xf3F]k\
+\x85&\x1e6\xf6H\xa4\x0c\xc2\x86\x9b\xf1\xfe@<a\
+\xcc\x80V\x01n)k\x06\x08\x08\x17\xdb\x114\xb7\xb7\
+\x816)`G\xf6\x8fo\xcd\xcd4d\x10\x96\x85\x96\
+\x1a7\xef\xe1\xbbA\xe4\x10\x22\x04J\x0e\xe3\x95\x9e%\
+\xd3~\x0e\xe9\x86u\xa6\xc3\x92\xd2\xb89E9\x9fT\
+zG\xc8\x0f\xfd\x147\xf70\xe5\x80vc\xd7%\xac\
+\xbb\xf0\x13\xe5\xf1\x8b\x04p}\xf76\xf1\x0f'C\xc0\
+\xe8d%\xc0!B?\xc0+V4@\xb9iV\xc9\
+\xc0\x8c=\x1c\x04U\xfe\x80\x04|\xe2\x09\x0b\xa5\xcd\xc4\
+\x13n>K\xa5\xbah\xb4@CS\x13\xf1x\x02\xad\
+\x15\xd9\xd1Q\xb2#\xa3\x91C'\x84\xa0\xbe\xa5\xc9\xe4\
+\x01\xa0\xc9\x0e\x17@\x85V \xfc\x17\x94v#\xbd\x1e\
+\xea\xda\xce$\xd3\xb2\xd1\x8cs\xac\xa08\xa6\x08\x5cs\
+!\xbf\xf8\x02\x85\xd1\xbb)\x8e\xdd_~\x0d\xd2\x8d\x1b\
+Y\x7f\xd1gH\xd6G5\x84?\x07\xfe\xab{\x9b\x88\
+f\xc78\x118)\x09\xb0e\xabV\x84\x8d\x81\xa5|\
+_8\xc9\x84\x02\xab\xc9h\x00e4\x80\xef\x87D\x08\
+\x1dB\xa5$BHb1\x0bM\x80[\xca#\x037\
+t\x06\xa5\x19_H(\xda\x96vR\xeeh\xda\xbb\xef\
+`H\x1e\x00M<nS\xd7\xb4\x04\xad52P\xe4\
+FK\x94\xa3\x82eM\xe0\x15\x9eD\xc9Q\xeaZ6\
+S\xdfvZ\xd4}\xb1\x94\xd5xEC\x02/\xff\x0c\
+n\xeeQ\x8a\xa3\xbfF+\xd3\xb9%\x96le\xed\xf9\
+\x1f\xa7\xa9+J\x85|%\xf0x\xf76\xf1\x9a\xe3V\
+\xb8\x13pR\x12 \xc4>\x00\xbf\x985m\xf8Z#\
+\xac\xa6\xa8\x1a(\x03\x89\x96\x01\x81?^\x0b(%I\
+\xa4\x9cp*:I\xa9\x90\xc5|\xfdeM\xa0He\
+\x92467\xa1\xd1\xf8%\x8f\xbe\x9e\xd0\xe5\xd0\xe6\xbf\
+\xba\xe6f\x9cX\x06\xa55\xc5\x9c\x8b\xef\x05\x13\xfc\x01\
+E)\xfb\x10Z\xfbd\x9a7Q\xdfi\xe6>\xd6\xda\
+\xf8\x04n\xce\x90\xc0\xcd=\x81Wx\x9e\xc2\xe8\xdd\xa8\
+\xc08\x9d\xb6\x93`\xc5Y\x7fL\xd7\xc6\xab\x08\xfd\x82\
+\x0e\xe0\x97\xdd\xdb\xc4G\xbb\xb7M\x1c\xf8h\xe1q\xd2\
+\x13@)\xf0\xdd~\xb4R\x08\xbb)t\xfa\x14R\x05\
+\x04A@\xe0\xfbF\xf0\xb2B\x00'\x1eCJ\xe3\x1c\
+\x16\xb3c\x15\x0d\x80\x8c4A\xfb\xd2\x0ela\xa1\xb4\
+\xa2\xaf\xb7\x9fR\xbe\x14\xc6w4\xc8\x01\x9a\x97\x9c\x1d\
+\xd6\x0a4c\x03ES\xe5\x0b\xb5\x80\x10\xa0d\x9eR\
+\xce\xe4\x04d\x1a7\xd0\xb4\xf4\xecp\x143p\x0b\x9a\
+\xe2\x98\xe9\xd1\x5c\xca=\x82\xf4z)\x8e\xdeGP\xda\
+e\xdeL\x08\xda\xd7\xbe\x81\xd5/\xffK,'\x0d&\
+\x11\xfa\xf3\xc0m\xdd\xdb\xc4q\x1d\xdb\xf0d&@\x94\
+\x93\xed\x16\xfaM\x0c^$\x8d#\xa8\x0d\x09\x94\x92\x04\
+\x81\x8f\x94\xe35\x80\x10\x8aX\xccF*I\xa9\x90G\
+)\x13\x1a\x8eH\x80\xc4v\xa0sEG8y\x85\xe2\
+\xe0\xee\x1e\xa2\x10\x9fV8N\x81\x86\xb6M\xa0\x08M\
+\x81[\xfe\xfe)\x87\x92\xa5w\x18\xaf\xf8\x1c\x00\xa9\xfa\
+\xb5\xb4,\x7f\x85q\x225x\x05M~D\x83\x92\x94\
+\xc6\x1e@\xcaa\xdc\xfcv\xdc\xdc\xa3\x94\x9d\xc3\xfa\xb6\
+\xd3\xd9\xb0\xe5\xb3$\xea\xa2h\xf1\x15\xc0\xa3\xdd\xdb\xc4\
+\xcb\x16\xbap\xcb8\x99\x09\x10\xe5\xda\xb9\xa1\x1f\xa0\xb5\
+\x02\xab\xd9LF\x85B\x06\xe6\xcb\x0f\x02o\x9c\x1f\xa0\
+\x94$\x91\x8c\xa1\xa5\xa91\x14\xb29*f\xc0\x10@\
+kEcK\x13\xe9\xba\x14Zk\xc6Fs\x0c\xf5\x8d\
+\x18\xcf\x1e\x8d\xf2{i\xe88\x15;^\x8f\xd6\x9ab\
+\xd6\xc3-\x04D.\xa1\xa8\xb4\x0e\x06\xbe\x09/'2\
+\xcbi[\xfd*\xacp\x82,\xbf\xa4\xc9\x0e(\xa4\x0c\
+(\x8d\xdd\x8fR9\x02\xf7@\xe8\x17\x98t\xf6x\xaa\
+\x83\xf5\x17\xfe5\x8d]\xe7\x97_w\x0d\xd0\xdd\xbdM\
+\x1c\x97\x09\xb4Of\x02<X^)e\xfb\x01\x85\xd6\
+Uf\x00\x15U\x09\x03\xcf\x1f\x17\x1dTJ\x12K\xc6\
+L\x8dA)rc\xd9\xaa6\x84\xf2_\x85F\xb1d\
+U8S\xa9\x86\xde\xdd\xbd\x04A9\xe5?@\xfb\x07\
+\xe8Xu\x11Z\x0bP\x90\x1drQJ\x87\x83\x93U\
+\xcc\xb5\x9b}\x14Uv\xf4\x12\xadt\xac\xbd\x04+\x9e\
+1\x13`\xf80\xd6\xa7\xf0\xdd\x12\xc5\xd1\xfb\xd0\xaa\x84\
+\x0aF(\x8e\xde\x8d\x0a\xccT\xbb\x96\x9db\xe5\xd9\xef\
+c\xd9\xe6w!L\xcd0\x01|\xa3{\x9b\xb8\xa7{\
+\x9b\x98.qz\xde8i\x09\xb0e\xab>\x08\xf4\x02\
+\x14\xb3\x03a\xa3\x90\xc6r\xda\x22?\xa0\x9c\xbb\xef\x8f\
+#\x80Y,\x0bl\xc74\x09\xe7\xb3y\x82 \x18/\
+\xfcpI\xa4\x12\xb4v\x9a\xa4O\xdf\x0b8\xbc\xbf\x8f\
+\xf2\x90\xe5\xd2;\x80\x93\xac\xa7e\xe9\xe9(L[A\
+v\xc0\x8b,E\x19Z\xfb\x94\xc6\x1eD\x87\xaa\xdd\x8e\
+\xd5\xd1\xb9\xf6\x12\x12\xe9fSM\x0c \xdb\xa7)e\
+\xf3\x14\xc7\xeeCk\x1f\xadJ\x14\xc7\xba\x09\xdc\xbd\xe1\
+U\x04-+~\x8b\x0d[>G\xb2.\xeaH\xfd*\
+\x8cI\xf8Z\xf76\xd1\xb2\x10\xe5|\xd2\x12 \xc4C\
+\x00~1\x8f\x0a\xc6\x0c\x01b\xcb\xab\x22\x80\xda\x04\x85\
+\x02\xe3\x10N$A<i\xe6\x1bP\x81\xa4\x90\xcd\x87\
+\x1a\xa1\x1cE\xac\x90\xa0c\xe5z\x9c\xb8\x83F3\xd8\
+;L\xa9\xe8b\xdc\xbf\x00\xe9\xed\xa3\xa1\xfdt\x92\x99\
+V\x13\xf4)J\xf2c\x95&\xe52\x94\x1c\xc3\xcd=\
+\x1em[v\x82\xf6\xb5\xaf&\xd3\xb2$\x8c\x1ajr\
+\x83\x8a\xec\xc0(\xc5\xb1\xfb\x0dY\xb4\xc2\xcd=\x81\x9b\
+{(LW\x83D\xdd2\xd6_\xf4i:\xd6\xbd\xb1\
+|\x0f\x1b\xf8S`g\xf76\xf1\xde\xeem\x13G\xc8\
+\x9c\x1fNv\x02Df\xa0\x985\xc1Aae\xc0j\
+\x08\xbfre\xe6\x1c\x9ed\x06B? \x13\x0b{\x00\
++r\xa3\xd9*\xcd1^\x0bXv\x9c\xe5\xebO\x8f\
+\xec\xff\xe1\xbd\x95v\x02\xe9\xed\x05$\xed\xab/\xc4\xb6\
+\x1c\xd0P\x18\x09\x08\xbc\xc9\x894\x81\xdb\x83_\xf6\xf4\
+\x01!lZ\x97_@\xe3\xd2p(\x22\x01\xc5\xacb\
+\xf8\xe0\x00\x85\xe1\x07L\x08\x1b\x08\xdc^\x0a#w\x22\
+\xfd#\xe1;\xc6\xe8\xdcp%\xeb/\xfa8\x89L\xf4\
+\xe1\xb7bF2y\xa4{\x9b\x88\x02\x09\xf3\xc5\xc9N\
+\x80\x87\xca+\xc5\xb1\xbd\xd1N;\xb6\xcc\x08S\x98\xb8\
+\xbd\x96\x12\xaf\xe4\x8d\xab\x0a*%\xb1m\x81\xe5Xh\
+\x14\xb9\xb1\xbc\x99\x9aVI\xb4R\x111\xb4V(9\
+Dc\xd7\xb9d\x1a\xccX\xc3\xd9\x91<\xb9\x91<e\
+\xfd-\xbd\xbd\xd8\xf1zZW\x9d\x13Mm\x93\x1d\x08\
+\xa8\xea\xa7\x12\xc1\xcd?\x83\x0c\x06\xaa\xf6\x08\x1a;\xce\
+\xa4}\xcdY\x80\x00\x0d^I3\xb0\xff\x08\xb9\x81\xbb\
+Q\xaa\x00\x80V%Jc\xf7\xe3\x15\x9e\x84p\xe8\xa2\
+T\xc3)l\xd8\xf2\xb7t\xae\x7fM\xf5\xa0\xa8\xe7`\
+\x9a\x97\xbf\xd7\xbdM,\x99o\x01\x9f\xb4\x04\x10B\x88\
+#\x83<F\x984\x9a\x1f\xaa\x0c\xd8a'V\x84_\
+\xb3\xa9\xf2I\xa5\xf0jh\x00\xa5$\xa9L\x02)\x15\
+JJrcf>c\xa5eT\x95\xd4JGm\x07\
+\xcb7U\xfa)\x1d\xde7\x88*\x1b\x02w\x0fhI\
+\xa6y=\xf5\xad\xe5(!\xe4\x86j0\x00M)\xfb\
+0J\x15\xc7\xedM7\xaeg\xc9)\x17\xe0\xc4\x8c\x16\
+Q\xbefp\xff\x08\xc3=\xff\x85\x0c\x9dA\x00\xbf\xb8\
+\x87\xe2\xc8]\xa8\xc0d\x92\x09+M\xc7\xfakX\xbf\
+\xe5\xa3\xd4\xb5tT_\xf2\x0f\x80\xe7\xbb\xb7\x89\x0f\xcf\
+\xa7\x9cO\x0a\x02\x84\xed\xeeV\xb88B\x88\x18\x10{\
+\xcb_PT\x9aG\x00\xdc\x5c\x0e\xe9\x99/+\x96X\
+\x11\xda\xf1\x00D\xd8\xb7\xbf\xec\x0c\xca\xf1A\xa1T]\
+\x22\xfa\xda\xb3\xc39\xd3\xf3\xb7Z\x0b\x94\x89 \x87I\
+7\xae\xa7\xb9\xcb\x84\xe6\xbd\x92\xcf\xe8\x91\xb1\xb0\xc1\xc7\
+'p\x0d\x01[W\x9cO,\x9e\x04\x05^^S\xcc\
+N6\x05Z\xb9\xb8\xd9\x87\xd1\x8c'H<\xb5\x94%\
+\x9b^E\xb2.\x19\xb5!\x8c\x1e)qd\xd7\xaf\xf1\
+KQ\xd8\x03%s\x14G\xef\xc1/>G\xd9\xe3L\
+\xd6\x9d\xc6\xea\x97\x7f\x8e\xd6U\xe3\xba\xd1d0\xa3\x99\
+\xcc\x19'\x84\x00U\x02\xb7\x85\xa9\xf7\xc40M\xa5\xb1\
+\xaau\x07pJ.\xb7\x81\xd1\xc6\x85\xd1\xbd\xe6\xf7V\
+\x1a;\xd6n\xd4|\xbc\x01%C-\xe0\xfa\xe3s\x05\
+\x94D\xd8\x16\x89LKX\x1d,\x10\x04~$\xf8\xc8\
+\x17P\x0a\x15\x0c\xa3\xb5`\xe9\xfa-\xd1\x94\xb5\x03\xbd\
+c&\xe4\x8cF\x96^4\x89\xa1v\x92\x8eu\xe7\x95\
+\xa3\xc6\xfa\xdd:\xd7\x00\x00\x10pIDAT\xe4\x87\
+\x14\xd2\x9f\xf8\x86 \x83\xa10_p<\xecX\x0b]\
+\x1b.\xa5\xa9\xb3\xf25\x97\xb2\x92\xde\xe7\x1e\xa60\xb2\
+=\xaaI @\x888\xd5\xcefa\xe4 #\x87\xa2\
+\xf0\x88\x07\xbc}\xcbV\xfd\xad9\x8a\x018\x8e\x04\x10\
+\x06\x96\x10\xc2f\xbc\x90k\x09\xbf\xbc\x1e{r'\xff\
+Y\xbeFnhot\xbdX\xd2$f8\xf1z4\
+q\xb4R\xf8n0\xc9\x0fP\xca#\xd3\xbc<T\xf5\
+e-\x10\xd6\x02BM\xa0\xb4B\x05Ch4N\xa2\
+\x95\xae5fpS)\x15\x83\x87\xb2a\xf3\xb1\x8b\xef\
+\xee\x03\x0d\xf1\xf4\x12ZWl@c\xbe\xe2\x91\xc3*\
+jQ\xac\x86_\xda\x83\xef\xee\x9f\xb4_XIZV\
+\xbe\x92\xce\x0d\xa7b;aT\xd1\x87\xc3\xbb\x9eg`\
+\xef\x1d(9B\xaa\xe1\x958\xc9\xb5\xe1/4C=\
+w\xb3\xe7\xe1\xbfAz#`z\xcf\xbdq\xcbV}\
+\xcb\x5c\xe5Q\xc6\x82\x12`\x82\xd0'\x0a\xdc\xa9\xb1/\
+6q\xf9\xc8\x979\x10H\x9e\x03\xc8\x0d\xeeG\x87C\
+\xf9\xc5R\xa7\x00\x84\xde\xfeR\x94R\x04^0),\
+\xac\x94$]\xd7\x81I\x13\xd7d\x87\xf3\x91\xf0UU\
+\x8d@\xc9<Z\x16\xd1Z\xd3\xba\xe2\x5c\xe2I\x93\xd6\
+?6\x90\xc7-\x85\xdezi\x17Q\x18\xb7\xe3\x0cR\
+\x0dM&^\xe0\x9b*^-\xb8\xf9'\x91r\xa4\xc6\
+\x11A\xa6\xe94\x96m~%\xc9\x86ph\x0c\x0d\xd9\
+\xfe\x1c}\xbb\x9f\xc7+\xf5\xa1\xb5\x87V.\x87\x9f\xff\
+>\x07\xb7\x7f\xbb\x5ck\x18\x06^\xb7e\xab\xfe\xc5\xdc\
+\xa42\x1e\x0bB\x80Y\x0a}\xa2\xe0\xa7:\x1e\x1b\xcd\
+\x19-\xa0\x02\x8f\xe2\xa8\xa9f9\xf1\xa5\xd8\xb1V\xb4\
+\xf6\x89\xa7\x96\x86I\x9d\x0a\xafTv\x06\xab\x92ED\
+@\xa6i\x05Z+\x8a\xb9\x12~\xc93\x82\x8f|\x01\
+Y\xa5\x05\x14B\xc4Y\xba\xc1\xe4pj`\xa87g\
+\x9a\xa4U\x09\xdf-wY\x15\xb4\xaf9\x1f;f\xe6\
+0*\x8ei\xdc|\x0d5\xa0%\xa5\xb1\x87\xd0\xda\x9b\
+|\x0cp\xe2\x1d,\xd9p)\xad+Wc\x85=\x8c\
+\x0a#=\xec~\xf0\x06\x06\xf6\xfd_\xf6>\xfay\xfa\
+\xf7\xfc\x22|\x12\x0e\x05\x92K\xb6l\xd5\xf7\xcfM2\
+\x93q\xcc\x08Pe\xd7\x1d\xc2a~j\xfc\xad%\xfc\
+\xf2\xf1ZZ\xc0\x01\x9c\xc7v\x10u\xbf\xce\xf6U\xec\
+j<}\x06(\x0f'\xd5\x82\x10)\xb4V\xb8\xc5\xc9\
+\xb5\x01)sdZ\xd6\x86f@32\x90\x8d\x82A\
+\x91/\xa0\x94\xf1\xc6\x95is\xc8\xb4\xae\xa1\xae\xc5\xd4\
+\xb2\x8a9\x8fb\xd6\x03\xad\xf1\x8b/P\xce\x06\xb5\x9d\
+:\xda\xd7\x9d\x13\x99\xe9l\x7fm\x7f@\xab\x02\xa5\xec\
+#L\x0a!\x96\xcb\xce\xce\xd0\xb1\xfe=l|\xf5\xf5\
+\xd4\xb5\x9a\x0cr\xe9\x178\xfc\xdc/\xc8\x0d\xee6\xd7\
+\xd0\xec\xe9\xed\xe75\x97\xfc\x11;B\xdf\xe9\x98\xc8n\
+\xde\x17)\x0b\x9e\x8a g\x12~\xad\xfdSi\x00\x07\
+\x88]\xf7M^\x08\xa4\x99\x88zl\xe0E\x944i\
+\xdd\x89\xccf\x94\xcca\x09M\xa2n\x05Ji|\xd7\
+D\x06\xc7\x91 \xc8\x91\xaa\xef\xc0\x8e\x9b\xfe\x01\xa3C\
+y\x02?\xac\x0aF\xb5\x01C\x00\x1d&\x8a\xa04]\
+k\xcf\x8f&\xa5\x18>R\x08G\x13\xcb\x13x\x95T\
+\xb2t\xfd*\x9a\xbaL\xe8\xd6x\xf5\xb5\xfd\x01\xe9\xf7\
+\xe1\x15vL\xdao9\xcd\xa4\x1a/\xc6\x89\xaf \x96\
+\xecd\xcd\xcb?LC\xc7\xf8i\x8f\x95\xe2\x99\x07\xb7\
+\xf3\xba+?\xc2\x81\xea\xf2;\x16D\x98\xd7\x8f\xc3\x9b\
+\xdbL\x16|-!\xdb\xd4\xd6\x04Si\x88q\xc4\xe8\
+\x1f\xe2?\xc0\xf4\xd5\xcb\x0dl7\xf7\xb7\xd28\xc9U\
+(\x99%Y\xbf<\xca\xd1\xf3J\x15\x02\x98\xe4\x911\
+4\x8a\xe6\xce\xf5f^B\xa9\x18\x1d\xcaU\xc6\x09\xd4\
+&\xa6\xa0\xfc1\x94r\xa3<\x80X\xaa\x91\xd6e\x9b\
+\x01\xf0]En\xd8\xb4\x03x\x85\x9dTK\xb9y\xd9\
+9$\xebM\x10)\xf04c}\xaa\xe6\xc7\xee\x15w\
+\x12x\xbda\xe1\xd9$2\xa7\x93j|5\x96m\xe6\
+:T\xc10=\xdb\xafg\xacog\xf4\x1b%y\xfa\
+_\xff\x83+>\xfc\xf7\x0cL(\xebh\x09\x890\xa7\
+d\x929\x11 t\xeej=\xcct\x84\x98H\x86\xe9\
+\x04?\x89\x08\xdf\xff\x19\xb7\xea\xd0\x03\x1b\xee\xad\x98\x81\
+D\xe6td0\x82\x93l\xc0\x8e\x99\xb1F\xbc\x92\xaa\
+\xd2\x00\x01\x817\x88\xd6\x8a\xba\xd6\xd5\xa6\xbd^iF\
+\xfb\xf3\xc6a\x0c\xd5\x7f\xb9j(\xbd\xde\x8a\x16\xd0\x9a\
+\x96e\x9bq\xe2F\xb8c\x03\x9ei[\x90\xd9qZ\
+@\x08\x87\x8eu\xaf\xc0\x8e\x9b\xe2t\xf3z\x8a \x11\
+\xb8\xb9\xc7\xb0\xec:\xd2M\x97\xe2$\xd7S\xb6\x1f\xc5\
+\xb1\xc7\xd9u\xff\xc7\x19>\x18\xcde\xa5Gs\xdc\xf0\
+{\xff\x9b\xff\xf1\xcd[\xc8NS\xa6\xd5D\xb0\x8e\x96\
+\x07GM\x80\x09_\xfdD\x81O$C\xf5\xf1Z\x0f\
+>\x93i\x88\x8e\xfd\xf8.\x06\x87F\xf8\x15@);\
+\x88\x9b7\x02\x88%\xd7\x82v\xb1\x04$3+\xd0\xca\
+|\x85J\xaa*\x1f\xa0\x84\x0c\xc6\x10V\x82\xe6\xaeS\
+@C\xe0+r#\xc5*_\xc0\x90 p{\x22\xe1\
+k4\x96\xe3\xd0\xbe\xfa\x5c\xc04\xe8\x8c\x0d\xf8h\xad\
+\x8d\x16\xa8\x82\x13k\xa6k\xfd9\x94{\x8a\x17F'\
+\x07\x89\x84\x95$\xdd\xfc:\x9c\xe4j\x84\x95\x0c\xaf\x99\
+c`\xcf7y\xf1\x81/\x87I\xac\xa0\x14\x83\xdbw\
+\xf1\x07\x97\xff\x19_:db_S\x0a\xbd\x96\x0c\x8e\
+F\x1b\xcc\x9a\x00U\xb6\xbez\xb1klOE\x8c\xd9\
+\x90a*\x12\xc4\x00\xe7\x8e\x07\xf9a\xf9yF\x0e\x95\
+\xb5\x80\x85\x153A\x95d\xc32\xc0\xf8h^QG\
+YCJI\x02o\x00\xa5\x15\x0d\x1d\xa7\x82\x153\xbe\
+@\x7f!\xca\x11\xd0a\xbb@\xe0\x0f\xa2dq\x9c\x16\
+\xa8k]N\xb2\xde8\x84\x85Q\x89WP(9F\
+\xe0U\x0dq\x0a$2\xabi[S\xb1\xdf\xd9\x01\x85\
+W2$\x88\xa76\xd2\xd8u\x0d\xf1\xf4\xe9h\xe5\x12\
+\xb8=\xb8\xb9'\xd8\xff\xe8G9\xf4|w\xd4\xcb\xa8\
+\xe4\xf2\xe0?\xdf\xcae\xef\xfd\x1c\xdd5\xcah\xba\xb2\
+\x1d'\x83\xd9\xfa\x06\xb3:)d\xd4D\xe1O\x14z\
+\xad\xaf~\xba}S1zJS\xf1\x8f7\xf3|\xb6\
+\xc0\xb3\x00\xa3\x87w\x98\x8c_ \x919\x03%s8\
+\xc9\x0cv\xdc\xb4\x9e\xb9\x05\xd3\xa6o\xaao\x12\xe9\x0f\
+\x86\x91A\x87\xa6\xaeS\xc3F\x19\xc9\xd8P1j&\
+.\xfb\x0c\x81{\xc0d\x1f\x85\x03S\x80\xa6}\xcd9\
+\x18\xab\x07c\x03\xd2\xa4}\x15'O=X\xd7r:\
+\xcd\xcb\xc2Lo\x0d\xa3\x87\x14\x96}\x01\x99\xd67\x99\
+\x96L\x8c\xad\x1f\xdc\xf7-v?\xf4\xf7d\x07\xa3\x18\
+\x81:\xd4\xcf\xd7\xde\xf2\x17\x5c\xfd\x83\x9f3\xc8\xe4\x0f\
+j\xaa\x8fn\xcae6$\x98\xf1\x04QI\x7f\x99\xe9\
+\x86S\x9d3\x1b\x06\xcfd\xdf\x22\x12<\xf2\x8c\x99\x8a\
+F+\x8f\xd1\xde\xfb\xc3gL`\xc7\xdb\xb1\x04\xa4\x9b\
+V\x86#\x7f\x84=y\x01\xd0\xf8\xee\x91(\xe8\xd3\xd8\
+\xb9\x01;\x96\x06`\xa4\xaf\x84\xef\x07\xe3\x9a\x87}\xef\
+\xa0\xa92\xea\xb09H+\x12\xa9:\x9a\x96\x98\xe0\x93\
+\xf4\xa10\xacP\xc1\x08\x81_=\xfa\x88)\xaa\xa6%\
+\xe7Q\xdfj\xfc\x11\xad\xe1\xc8\x0b\xf73\xd6\xf7\x0c\xa0\
+(\x8e>D\xcf\xf6\xef\xd0\xb7{\x1fA\x18\x1a\x90\x92\
+\xc1\xbb\x1f\xe5=o\xfb\x08_\x1b\xcd\xa1\xa9-\xf8\xd9\
+\x0a\x7f\x9c\x1cf\x22\xc1l4\xc0l\xd8V}\xd3\xa9\
+\x1e~\xba\x97\x98\xadf\xb0\xbf\xf0\x1d\xees}\x06\x00\
+\x06\x0f<\x82\x0aL[\x88\x93X\x8e\xb0S\xa4\x1b\x97\
+\x81\x16h\xcd\xb8\xc0\x8c\x929\xa4?d\xda\xff\x1dA\
+\xeb\x0a\x13\xee\xd5R3r\xb8T\xe54*\xa47\x88\
+R\xf9p\x04\x11\x15\xf9\x03MKO\xc1\x89\x1b\xe2\xe4\
+G4\x81\xab\xf1\x0b\x93\xb5\x80\xed4\xb1\xe2\xac\xbf\xa2\
+u\xb5i\xb8\xd1(\x0e=\xf7\x13\x0e<\xf5Mz\x9e\
+\xbe\x93\xe2X%X08\xc2\xcf?\xf5\x0d\xde\xfa\xf1\
+\x7f\xe4\xe1Y\x94\xddl>\xc4\xf2y\xd12\x9dO0\
+-\x01\xc2\x1f\xcef\xa9u\xf3\xe9\x1en\xb6\x0c\x9fD\
+\x80|\x11\x9e}\x91\x9f\x00(\x190x\xe0\xd7\x84\xa5\
+l\xa2\x83N\x82dC{\xa8\xe2\x19\x17\x98\x09\xdc\x03\
+F\x98JQ\xd7\xba\x82x\xa6\x09\x80b6\xa0\x98\xf3\
+)\x8fC\xa0\xb52\x11\xbf*\xe1k\xad\x11\xc2\xa2m\
+\xf5\xd9\xd1\xf5\xb2\x03\x9a \x18B\xfa&\x81D\xd8i\
+\x12\xf5\xe7\x92j\xba\x14;\xbe\x9c%\x1b\xdfA\xe7\xba\
+K\xa3\xf3\x0b#cQ\x0e\x81\xeb\xb1\xef\xe7\xf7\xf2'\
+o\xfa \x7f}\xd7#\x8c\xcePfS\x91`\xa6\xb2\
+\xae\xd6\x045I0%\x01\xaaT\x7f\xad\x1bN\xb7\xaf\
+\x169\xa6\xda\x9e\xc9d\xd4\xd4\x12_\xfc.?w=\
+\x06\x01\x86z\xb6\xe3\x15\x8d\x1a\xb6\xecF,\xa7\x99\xfa\
+\xb6\x8dQk]q\xacR\x1d\x0b\xdc\x9eqM\xb4\xed\
+\xab\xcf\xa1\x5c\x0d\x1b=\xe2#\x03\x15%\x92\xfa\xc5\xfd\
+&;\xb8\xdc--\xac\xf7\xa7\x1b\x97\x90i6\x89\xa4\
+\xbe\xab)\x8ej\x02\xef \x89\xba\xb3H7\xbd\x16'\
+\xbe2\xbaf\xe0\xf5Q\xca\xef\x1c\x97=\xa65\xfe\xce\
+}\xfc\x9f+\xff\x92w~\xfe_x\x9c\xa9\x85;\xd3\
+\xbe\xa9d0\xdd2\x09\xd3i\x80Z?\xacu\xc1\xe9\
+\x04m\xd5\xf8\xddlH2-Az\x8e\xe0\xdf\xf1 \
+7\x96K\xb4\x7f\xf7]\x80Q\xf3\xf1\xf4)$2\x1d\
+$\xd2\xadh4^AG\xbe\x80\xd6\x1e\xd2\xab\xd8\xec\
+D\xba\x85\xa6e\xa7\x01 \x03Mn\xc8\x8f4\x80\x0c\
+F\x08\xdc#a\x82\xe8\xf8\xea\x5c\xdb\xaa\xb3\xa3\x91\xc1\
+\xf2\xc3\x82D\xe6\xb7\xb0c\x9d\xd1\xebJ\xbf\x9f\xbe]\
+\xff\x87\xe7\xef\xf9$\xa3\x87\x0fDA\xa1\xb1<\xdb\xaf\
+\xbf\x91\xad\xd7|\x8a\xef\x0d\x8e \xa7x\xbf\xd9\x96\xcd\
+Q/\xb5\x94\xc0l\x090\x15\x9b\xa6#\xc9l\xaf3\
+\x91$\xb3\xd2,\x7f\xfbm\xee\x1b\x18f;@np\
+\x0f\x85\xd1=\x80F\x88\x18Nb\x19MK7\x83\xd1\
+\xe0\xe4\x87+\x02\x0c\xa2\xc6\x1c\x83\xa6%\xa7\x10O\x9b\
+IM\xf3#\x8ab\xb6\xec\x0c\xea\x9a^>\x80\x93\xec\
+\xa0c\xddk\x01\xd0Jrd\xd7/\x91~?*\x18\
+a`\xcf\xf7\xd9q\xd7G8\xb2\xeb\x9e\xa8j\xe7\xf9\
+\x0c\xde\xf1\x00\x9f\xbd\xec}|\xe0'wsh\x16e\
+2\x9b\xb2\x9e\xaa\xec\xa7\xc3\xa4\xe3s\xed\x9e<\x9d\xd0\
+\x8f\xe5\xcbL{\xdd\x7f\xbe\x95\xef|\xec\xdd|I\x08\
+\xec\xbe]\xff\xc5\xaasW#\x83!\x12ug\xa3d\
+\x96T\xd3s\x14\x87\x8f\x10\xb8\x9aRN\x93\xac\x13\x04\
+\xdea\xb4\xf6\xc2d\x0b\xb0\x84\xa0c\xedy\xf4>{\
+\x07J\xf9\x8c\xf5+3T\x5cJ \xfd\x01d0\x84\
+\xed\xb4\x00\x02;\xd1E,\xb1\x06;\xd6N\xbaQ\x93\
+\xed\xdfEad7\xf9\xe1\xbd\x1cx\xfa\xdb\x14Fz\
+\xaa\xe7\x1d\xc2\x0f\x18\xdb\xbe\x8b[?\xff/\xfc\xf8\xd0\
+\x00\x85)\xcan\xb6\xe5\xadg\xd8.\xef\x9bM\xd9F\
+\xa8\xa9\x01j\xa8\x8a\xe9\x1e\xf8h\x188W\xd4$\xc6\
+\x7ft\xd3\xf3\xcc\x8b\xa6\x8d\xc0\xcd\xf71\xdcs\x0fZ\
+y\xa8 G\xb2\xfe\x02Z\x96\x9b\x08\x9e\xd6\xa6\xdaf\
+\x8aLM\xd2\x02\xf1T\x9a\xf6uao,m\x1at\
+\xca]\xbd\x03\xf7 \xf1\xf4&\xd2\xcd\xaf'Yw>\
+v\xac\xc3\xdc^Xtm\xfc\x9f\x94\xb35s\x03{\
+\x22\xe1\xfb\x01\xd9\xc7vp\xd3\x1f~\x9ck\xde\xff\x05\
+n=4\x80\xcbd!LWn\xc7\xaa\x1cg\xbc\xce\
+\x94\xe3\x04\xd6\x88\xfa\xd5r\xd6\xc4\x14\xdb\xd5\x0e\x9c`\
+\xfa\xaa\xcd\xbc\x96%m\xa4\xbf\xf7y\xbe\x9c\x8c\xd3\x82\
+\x80\x95g\xfe\x0e\xe9\xa6\xb3\x88\xa5\xd6\xa3\x82az\x9f\
+\xfd{F\x0e\x1d@\x03\xe9FA]\x8b\x85\xb0\x12\xa4\
+\x9b.\x8d\xb4@\x19#\xbdO3t\xd0\x84xm'\
+\xc6\xb2\xcdo \xd5x*\xb1\xd4\x06\x84\xa8\xccgR\
+\xca\xbe\xc0\xe0\xfe\xdb\x19\xeey\x98\xf2\xb8\x81\x00A@\
+\xfe\xa9\x17\xf8\xf1\x97\xb6q\xdb\x81\xc3\xe41\x09\xad\x1a\
+\xd3\x86\xa1\x8e\xf3\x22\xab\xee\x1fmO\x1c\x92o>\x04\
+8Y\x16\xf1\x91\xab\xd9\xf2\xa6K\xf8\x80\x11\x9c\xc3\xaa\
+s\xaf\x22\xd5p\x0e\x96\xd3\x8a_|\x91]\x0f|\x81\
+\xc0-\x81\x80\xa6.\xa3\xdec\xc9\xd5\xe1\xe0\xcf\x80\xb0\
+\xb1\xe3\x1d8\xb1\x0e\xfa^\xbc\x93\xc1\xfdw\x01\x10O\
+\xb7\xb2\xf2\xec?$\x96\xec\xc4v\xda\xc8\xf6?B\xff\
+\x9e_P\x18\xd93\xae\xac|I\xee\x99\x17\xf8\xf9\xf5\
+\xdb\xb8m\xff!rUB\xa8%\xfc\x89\xfb\xc6\x09\xe8\
+(\x7fw\xb4\xc4\x92\x13\xe5=\x1d\x01\xaa\xbf\xee\x13&\
+\xdc\xd9\x9e\xf7\xdd\xcf\xf0\xbf6\xac\xe4uFp\xf5\xac\
+>\xf7]$\xea^\x06Xd\x07\xba\xd9\xf7\xd8w\xb0\
+c\xf5\xc4\x92\x0d4/k&\x96h \xd9p\x11N\
+\xac\x13\xcbi\xa2b\x0d%\x07\x9e\xfc&#\x87\x1e\x00\
+ \xd5\xb8\x82d]\x0b\xa3Gv\xa0\x82\xf1Y=#\
+Yv=\xb4\x9d\xdb\xff\xe9f\xee\x1d\x1a\xc3\xad!\xb0\
+\xb9|\xb9S\x09\xbf\x16I\xa6\xfc\xd2k\xed\xd3\xd5\xea\
+\xaa,\xe7\xe9\x86\x8a]`-0k\xe1\xceb\x9fH\
+%\x88\xdd\xfcE>\xd9\xd6\xc4f\x80\xba\xd6%\xac<\
+\xebZ\xec\xb8i\xc4)\xe5\xfa(\x8c\x84\xf1\x02G\x90\
+n\x10\x08+aZ\x13#\xe1\x83R%\x0a#\xbb\xe8\
+y\xea[\xf8\xa5\xc9\xa3\xbcJ\x85\xbb\xb7\x97\xee\xdb\xee\
+\xe2\xf6\x1f\xdd\xc1n\xa6\x17\xfaL$8\xae$\xa91\
+\x22\xeb\x8c\x048\x1a!M\xb4\xfb\xf3!\xc1$\x01O\
+sN\xf4w\xc3*\x1a\xbe\xf6Q\xbe\x98N\xd2\x05\xd0\
+\xb2\xf2t\x96\x9ezmd\xeb\xf3\x83{q\x8b\xa6\xc9\
+5\x16\x17$\xea\x04\x888Z\xda\xe4G\x9e'\xd7\xff\
+4c\xfd\xcf\xa3\xd5\xe4\xfc\xbd\x5c\x81\x9e'wr\xc7\
+7o\xe1\xae=\x07#5\xaf\xa7\xf8;\xdd\xfa\xd1\x12\
+`\xae$\x19\xb7\xd4\xfa\xfaa\x06\x02\xc0\xbcL\xc1L\
+\xbf\x9b\xe9\xcb\x9e\xeax\xads\xa2\xfd\x97\xbf\x8a\x15\x1f\
+\xb9\x9a\xeb\x1d\x9b4\xc0\xb2\xcd\x97Q\xdfq\x09*\xc8\
+\x13x#\xf4\xef\xbe\x17\xbf8D\xe0\x8f\xa1\xd4\x18\xca\
+\xaf\x91\xc4g\xa0G\xb2\xecza?\x0f\xfdg7\x0f\
+\xdd~\x1f\xe5\x11$\xca\xcbD\xc1OG\x82\x99\xc8p\
+\xac\x082\xd1\x1c(\x8c\xdd\xaf)|\x98\x05\x01\xa0\xa6\
+)8\xa6\xea{\x16\xc7j\x05\x88j\x12\x00\xe0C\x7f\
+\xc8y\xbf{)\x9f\xe2(\xabSJ\x13\x0c\x8e\xb0}\
+\xc7n\x1e\xbc\xf5\x0e\x1e|l\x07\xc3\x8c\x17\xfaT\xcb\
+\xd1\x90a\xae\x848\x1a\xe2T\x7f\xf9\xd5\x93\xafL\xc2\
+\xac\x87\x8b?\x0a\x12\xccF\xe8\xd3\x09\xbe\x96p\xa7\xfa\
+[\xbd\x8c\xdb\xf7\xd5\xff\xcd[\xcf=\x95wO\xf7N\
+RQ8\xd4\xcfC\xbd\xfd\xec\xda\xb1\x9b]?\xfb5\
+/\xf6\xf6S\xa2\x12d\xa9\xfe;q\xbdZ\xd8\xb3!\
+\xc3l\xb4\xc3|\xb4E\xadc\x93\xbc\xfe\x898\xaa\xf9\
+\x02\xa60\x07\xc7J\xe0S}\xd1\xb3\x16\xfa\xc4\xe5\xdb\
+\x9f\xe6]\xe9\x14-%\x97\x5c\xc9#W(\x92\xcf\x17\
+\xc9\x1d\x1ed\xf0\xce\x87\xd9\xf3\xdcn*\xa3F\x8f\xc7\
+T\x04\xa8E\x84\xe9\x081\x9d\x9f0_2LG\x8e\
+i\xd5~5\x8ez\xc2\x880JXv\xf8fc\xb3\
+gR\xe73\xa9\xf6Z\xc7\x8ef\xa1\xc6\xdf\xd9b:\
+\x0d0\x1b\x930\xd3\xfatZb\xaed\x90\xb5\xbc\xfd\
+\xa9p\xd4m\x01\xe1\xb5\xa5\x10Bc\x04R~\x81\xea\
+\xf5\xf2R\x8eO\xab\xaa\xe3\x13\xf7\x95\xff\x8a\xaa\xed\x99\
+\xd4\xfdt\x84`\xc2\xdfZ\xc2\x9f\x89\x08z\xc2\xfaL\
+\x1aa.d\x98J\xe8s%\xc3\xac\xbf\xfaj\xcck\
+\xca\x98P\x1bL\xf5\xd5\x1f\xad]?*\x1b_ca\
+\x9am\x98=\x01&\x0a\x7f\xaa\xbfs1\x09\xd3\x99\x83\
+\xf9\x98\x8a\x9au\xfc\xd9\xe0\x98\xcc\x19T\x83\x083\x91\
+`N\x8e\xdd,\x16j\xacW\xff\x9d\xb8>\x1d&\x0a\
+}\xe2\xbe\xf9\x9a\x05\x98=\x19ji\x87Y9y3\
+\xe1\x98N\x1a5\x81\x08\xb3\xb5\xefLq\xcelT>\
+\xb3\x5cg\x9a\xf5Z8Z-0q{\xbefa:\
+R\x94\xa3z3\xbc\xc2\xec\xb0`\xb3\x86M\xa81\xd4\
+\x12\xdeL6~\xaa\xfdL\xb1\x7f:\xfb\xcf\x84c\xb3\
+\xc1\xc4\x82\x99\x8a\x00\xd5\xebS\x91b*sp4d\
+8*\xe7n\xb6X\xf0i\xe3j\xa4\x95\xcfE\xe8s\
+U\xf9\xc7\xc2\x04T\xaf\xcf\xc7'\x98\xc9G\xa8\xb5-\
+\x81\x85\x90{\x84\xe3>o`\x95f\x98\x8b\xc0\x8f\xd6\
+\xe1\xabE\x80Z\xdb\x13QK\xf8\xd5\xeb3i\x81\x89\
+\xdb\xb3%\xc3\xbc\x1c\xba\xb9\xe0\x84N\x1c9A;\xcc\
+d\xe3gK\x02&\xac\xcf\xd5\x0c\xccD\x82\xf2\xfa|\
+\x08Pv\xe6\x16\xf63\x9f\x06'\xc5\xcc\xa1\xd5\x98\xd0\
+\x17\xa1\x9a\x10\x1c\xc5z\xf5\xdf\xe9\xd6\xa7\xc2T\xf6\xbf\
+z}\xa2\xb0k\xed\x9bR\xc5\x9f,\xe5~\xd2\x11\xa0\
+\x16&\xf4Q\x98\xad\x1f@\x8d\xed\xa3q\x02a\xea/\
+\xbf\xbc=\x91\x00\xb5\x9c=N\xe62~I\x10`:\
+T%\xb0\xce\xd6\x14\x1c\xad\x06\x98\xe9+?\xa9\x05<\
+\x13^\xf2\x04X\xc4\xfc\xf0\xff\x01-\xef\xe5]0^\
+&Q\x00\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00:\xf4\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3>a\xcb\
+\x00\x00\x09\xediCCPICC Prof\
+ile\x00\x00x\x9c\xad\xd6gTS\xd9\x16\x07\xf0\
+\xff\xbd)\x84\x04B\xef- \xddP\xa4Jo\x8a\x0d\
+\x18D\x14\xb0\x02!4)\x11\x82(vP\xb0\xa1`\
+W\xb0+v\x05\x95Q\xc7\x8a\x0a\x22\x8c\xa24\x11Q\
+, 8\x22\x1d\x0b\x82y\x1f\x82e\xd6\x9bY\xef\xcb\
+\xdb\x9f\xf6\xd9k\xdd\xb3\xce\xf9\xed}\xd7:\x80\x94b\
+\x98@\x10G\x02\x88O\x10&\x05L\xf0\xe4\x04\x87\xcc\
+\xe4H\xd4\x81\x0a5H\x03\xb0\x0f\xe3%\x0b<\xfc\xfd\
+}\xf0\xaf\xf1\xb1\x1e\x04\x00\xd4\x98\x85\x09\x04q\x89G\
+\xa3\xab\x11\x97\x97\xa9\x92\xe3\xc2\xe9\x9f\xab\xfb\xf8\xdf\xbf\
+\x03\x00\xb0\x93\x82Cf\x02\x04\x17\x80b\x948w\x07\
+\xa0\x18.\xce\x03\x01(\xa6\x0a\x05B\x80\x88\x06\xa0\xc8\
+\x8b\x0e\x8b\x00\x88\xa5\x00\xb8I\x81\x01^\x00q\x1c\x00\
+;J\x9c_\x06\xc0\x0e\x17\xe7\xe5\x00\xd8\x0byQB\
+\x80h\x00(\xf2\x09\x111\x09\x00\xb5\x03\xa0\xbbF\xf0\
+\x93y\x00\x8b\x0b`^D2/\x1e`m\x04`\x19\
+\x1f\x9f\x18\x01\xb0\xae\x010\xe6\x09\x92\x84\x00\xab\x05\x80\
+Yp\xc8L\x8e\xf8\xc8\xe1\x91\x80u\x08@\x1e\xffY\
+\x9b/\x05\x14i\x02\x8a5?k&\x11\x80F\x01p\
+\xf5\xc4\xcfZ_\x00\x08\x00\x84rUr\xa4\xb5\x15\x00\
+\x80\x90\xf2\x04h/D\xa2>C@b\x0b0\x9c+\
+\x12}=$\x12\x0d\x1f\x06(M\xc0\xad8^J\xd2\
+\xc2\x11/\x82x\x00\xfc\xaf\xb5\xf8\xce#A!\x00\x02\
+$\x95\xce\x90dI\xb1e\xe4\xe4\x15\x94\x94U\xd54\
+4\xb5u8z\xa3\xf4\x0d\x8d\x8cMGs\xcd-,\
+\xc7X\xdb\xd8\xda\xd9\x8futrvqus\xf7\xf0\
+\xf4\x1a7\xde{\xc2\xc4I\x93\xa7\xf8\xf8\xfa\xfd\xe6?\
+5 p\xfa\x8c\xa0\xe0\x90\x99\xb3\xe6\xcc\x9d\x17\x1a\x16\
+\xce\x8b\x88\x8c\x8a\x8e\x89\x9d\x1f\x17\x9f X\x90\x94,\
+LY\x98\xba(m\xc9\xd2e\xcbW\xac\x5c\x95\x9e\xb1\
+&3k\xed\xba\xf5\x1b6fo\xca\xc9\xdd\xb2u\xdb\
+\xf6\x1d;w\xed\xde\x93\x97\xbfw\xff\x81\x83\x87\x0e\x1f\
+9Zp\xec\xf8\x89\x93\xa7N\x9f9{\xae\xb0\xa8\xe8\
+\xfc\x85\x8b\xc5\xbf_\xba|\xe5\x8f\xab\xd7\xae_\xbfq\
+\xf3V\xc9\xed;w\xef\x96\x96\xdd+\xbf_QQ\xf9\
+\xe7\x83\x87UU\x8f\x1eW\xd7\xd4\xd4\xd6\xd5\xd5?i\
+hx\xda\xd8\xf8\xac\xa9\xe9\xf9\x8b\x17\xcd/_\xbez\
+\xfd\xfaMKK\xeb\xdb\xb6\xb6\xf6w\xef\xfez\xff\xbe\
+\xe3CggWwwOo__\xff\xc0\xc0\xc7O\
+\x9f?\x7f\x19\x1c\xfc:44\xfc\xed\x9b\x08$\x95.\
+!\xc9\x94\x92\x96\x91\x95WPTVQS\xd7\xd4\xd2\
+\xe6\xe8\xea\xe9\x1b\x18\x1a\x9b\x98r\xcd\xcc-,\xad\xac\
+ml\xed\xc6:\xfc\x1b\xc0\xb4\x11\x80\xd9#\x00\xfc\xef\
+\x00\x89?\x00\x16\xff\x00X\xbd&3k\xed\xfa\x0d\x1b\
+\xb37m\xfeE \x7f\xef\xbe\x7f\x10\x18\x01\x10\x0b\x88\
+\x01\xee\xfc\x0d\xe0\xd1\xe3\xc7\xd55\xb5\xb5u\xf5\xff\x08\
+\xd0\xfa\x03\xa0C\x0c\xd0\xd3\xd3\xdb\xd7\xdf?\xf0\xf1\xe3\
+\xa7\xcf_\xbe\xfc\xbc?\x85FgH2Y\xd2l\x19\
+Yy\x05E%\x15U5u\x0dMm\x1d\x8e\xae\xde\
+(}\x03#c\x13\xd3\xd1\x5c3s\x0b\xcb1V\xd6\
+66\xb6v\xf6c\x1d\x1c\x9d\x9cG$~\xa5\x10\x0f\
+\xc3w\x8cY\xb3\xe7\xcc\x9d\x17\x1a\x1a\x16\xce\x8b\xf8\xe1\
+\x91\xf0\x0bH\xda\xdfE\xd6\xfdB\xf2}&\xbe\x93\xfc\
+\x93\x89\x98dd(J\xcb\xee\x95\x97\xdf\xff\x95\xa4\xae\
+\xfe\x89\xd8\xe3\xf9\x8b\xe6\x97\xaf^\xbfii}\xdb\xd6\
+\xfe\xee\xaf\xf7\x1d\x1f:\xbb\xba{z\xfb\xfa\x07>~\
+\xfe2\xf8uh\xf8\x9b\x08\x10\xff\xfb\x00@\xb7\x03\x0e\
+'\x003\x98@\xe0!`{1`\xe4\x04\xa8t\x01\
+\xfe\xd2@\xa0\x03\xc8dk\x90\x91\x91 U\x98\xa0\x10\
+\x00\x09\x80\x00\x05tHB\x06\xca\xd0\x81)\xec0\x0e\
+\x81\xe0#\x15\xeb\xb1\x0f\x17Q\x89\x16|#\xd4\x09{\
+b:\x91Ll%\x8a\x89\xa7\xc47\xd2\x80\xf4%\x17\
+\x92\xfb\xc9J\xf2\x0b\xc5\x84\x12B\xd9@\xb9I\xe9\xa7\
+r\xa9\x11\xd4\xbd\xd4\xa74UZ\x10m7\xad\x89\xae\
+G\x8f\xa6_\xa0\x8b$|$\xf6Ht0<\x18\xbb\
+\x18\xbd\x92~\x92g\x98l\xe6\x02f\x03\xcb\x8bU(\
+\xa5-\xb5I\x9a\x94N\x93\x1e`'\xb3\xfbdRe\
+\x86e3\xe5\xe4\xe4\x0e\xca\xdb\xc8W(\x84+|S\
+\xdc\xad\xa4\xaftJ\xd9J\xf9\x9a\xca\x04\x95\x1a\xd5p\
+\xd5~\xb5u\xeaZ\xea\x175|4Z5\x97i\xa9\
+h\x15k\xfbkw\xea\xe4pl8\x8d\xba\x19z\xa3\
+\xf5\xaaG-\xd5\xb7\xd0o2\xd8h\xe8b\xd8it\
+\xd08\xc8\x84mRj\x9a>\xdak\xf40\xf7\xba\xd9\
+\x0as\x0f\x0b\x9aE\xa5\xe5\xb61s\xac\x8c\xacz\xad\
+o\xda\xe4\xd8\x86\xdb\xd9\xda\xb3\xec_\x8f\xbd\xe2\xb0\xd9\
+\x91\xef\xe4\xe2\xac\xe5\xfc\xcd\xa5\xd9\xf5\x86\xdb\x01\xf7\x0c\
+\x8fH\xcf)^\xd6\xe38\xe3e\xc7\x0fywO\xa8\
+\x9fxo\xd2\xed\xc9%Sn\xfb\x94\xf9V\xfa=\xfa\
+\xad\xce\xbfi\xea\xbb\x80\xaf\x81r\xd3\x8df8\x07\x05\
+\x06\x0bB\xb2g\x9e\x99U3[4\xd7b\xde\xbc\xd0\
+\x9c\xb02\x1e\x19\xe1\xc6_\x12y5\x9a\x12\xe3\x1f\xbb\
+w~w\xfc\xe4\x84<\x01\x16\xf0\x92\xca\x84\x96)\xfb\
+S\xe5\x16\xadMc,Y\xbetp\xf9\xca\x95\xccU\
+[3tV_\xca\xf4\xc9j^\xb7d\x83\xd6\xc6\x92\
+M\xc1\x9bE\xb9\xa7\xb7\xce\xda.\xb1\xe3\xcc\xae]{\
+\x8a\xf2_\xef\x97=\xe8|Xp\xf4\xd8\xb1\xfa\x93\x92\
+\xa7'\x9d\xcd.,=/*\xf6\xba\x94~\xa5\xf2\x9a\
+\xec\x8d\xa0[Gn\xf7\x97z\xdc\xcb\xbd\xff\xf2O\x87\
+\x87\x1b\x1e\xbd\xa9\xb1\xad\xdb\xf2\xa4\xb71\xa0\xe9r\xb3\
+\xda\xab\xb47/\xde\xfa\xb7\x97\xbc\xb7\xfeP\xd0m\xd4\
+\x9b7\xa0\xf4i\xd7\xa0\xee\xd0S\x91\xe8G\xff\x99\x90\
+\x81\x0at\xc1\x85\x03&\x22\x04\xb1X\x8a\x1c\x14\xe0\x1a\
+\xea\xd0E0\x09c\xc2\x9b\x88 V\x13\x05D\x05\xd1\
+E*\x93\xaed4\xb9\x85\xbcAvP4)\xbe\x94\
+\x15\x94\x0b\x94v*\x87\x1aL\xddB}Hc\xd3\xfc\
+h\x9bi\xb5t\x0dz8\xfd4\xfd\xb3\x84\xb7\xc46\
+\x896\x863c\x1b\xa3Sr\x8a\xe4\x09&\x8b\x99\xc0\
+\xacgy\xb0\xceJiIeK\x13\xd2\x8b\xa5\xfb\xd9\
+\xc9\xec>\x99\x852C\xb2k\xe4\xe4\xe4\x0e\xfc\xcf\xee\
+\xfbj\xb4j.\xd7R\xd1*\xd6\x9e\xaa\xdd\xad\xb3\x85\
+c\xc7y\xae\x9b\xa9g\xa1\xf7dT\xba\xbe\x9d~\xab\
+\xc1\x0e\xc3\x89\x86_\x8d\xce\x19G\x9a\xe8\x984\x9a\xee\
+\x1e\x1d\xc2U\xe2>3;h\xce\xb7\xe0Z|\xb4\xbc\
+=&\xc7j\xae\xb5\x99\x0dl\x9e\xd8\x9e\xb4\xcb\xb4\x0f\
+\x1f\xeb\xea\xa0\xee\xf0\xd1\xb1\xd6\xe9w\xe7|\x97\x0c\xd7\
+X\xb7\x00w'\x0f#Oy/x\xf5\x8e\xeb\x19\xff\
+\xca\xbbi\xc2\x83\x89w'\x95L.\x99R\xe2s\xc7\
+\xb7\xdc\xaf\xf2\xb7*\xff\xda\xa9\xcd\x01\x9d\x81\xc4t\x85\
+\x19\x06A\xf6\xc1\xfe!\xd13\xd3g\x1d\x98]:\xa7\
+k\x9eF\xa8{Xt\xf8.^=\x9f\x15\xe9\x12\x95\
+\x16}=\x16\xf3\xc7\xc7\xe5\xc4\xbfH4\x17\xa4/h\
+H\xb6\x12\xe6\xa6\xf4\xa7\x86,\xba\x95f\xbad\xff2\
+\x85\xe5\xd9+\x99\xab\xb22(\xabWe\xb2\xb2\xf2\xd6\
+\x19\xaf\xbf\xbc\xd1/\xfb\xfd\xe6\x0d\xb9F[J\xb6\xf1\
+v(\xee|\xbe\xfbI>}\x9f\xcd\x01\xfe\xa1\xddG\
+\x1e\x1c\xa3\x9cp<\x15\x7f\xe6\xf4\xb9\xb6\xf3\xdc\x8b)\
+\xbf\x17_\xfer\xd5\xf9\xfa\xea\x9b\x8fnk\xdd\x0d+\
++*\x1f\xaa\xf4{\x90_\xf5\xa1\xda\xb3vg\xfd\xdb\
+\xa7\xf6\xcfr\x9e\xb7\xbet{\xbd\xa3\xe5C\x9b\xef\xbb\
+\xfd\xef\xbft\xce\xe8\xbe\xde\xa77\xb0\xf6S\xd7\xe0\x9c\
+\xa1\xee\x91\xfe\x93`A\x16\xca\xe0\xc0\x1c.\xf0C8\
+R\xb1\x09\x05(\xc1\x0b\x0c\x13\xda\x84;\x11A\xac#\
+\x8a\x88&\x92A\xda\x91Q\xe4N\xb2\x92BR\x9c(\
+)\x94\x22J7\xd5\x8a*\xa4\xfeA\xa3\xd0\xfchy\
+\xb4\xf7tW\xfa6z\x87\xc4\x04\x89\xa3\x0c:#\x96\
+Q-\xe9*y\x86\xa9\xc3\xdc\xc1\x92eeKIK\
+m\x96V\x92>\xc4\xb6f\x97\xc9\xcc\x91\xf9,\xbb]\
+\xceN\xaeI>K\xc1N\xa1]1_\xc9K\xa9Y\
+y\xad\x8a\xb9J\x83\xea\x1a5;\xb5v\xf5|\x8di\
+\x9aL\xcd[Z\x8b\xb5m\xb4\xbbu\x0a9\xc9\xba\x8e\
+z\x14\xbd{\xa3r\xf5C\x0d\xcc\x0d\x86\x0d+\x8d\xf2\
+\x8c\x13L<MUM{FWr\x0b\xcc2\xccC\
+-\xdc,9c\xa8c\xda\xac*\xac\x0bm\xf6\xd8\xa6\
+\xdb\xc5\xdb\xcf\x1e;\xd9\xc1\xdeQ\xcfI\xc6\x99\xe2<\
+\xe8\xd2\xed\xda\xe2\xd6\xe0^\xe3Q\xeeY\xe2uk\x5c\
+\xe9\xf8R\xef\xb2\x09w&\xde\x9dT9\xb9fJ\x93\
+O\xbbo\xbf\x9f\xc8\x9f9U%\xc0d\x9a[`\xd0\
+\xf4\x84\x19k\x82\xf6\x06_\x09i\x9c9<[g\x8e\
+\xdb\xdc\xb0yY\xa1\x85aM<F\x84-\x9f\x1f\xb9\
++\xaa*\x86\x11;~~F\x5cI\xbc(\xd1U\x90\
+\xbe\xe0~\xb2\x8204\xa5(\x95\x5c\x14\xb8\xf8\xe4\x12\
+ri\xc8\xb2\x8b+\xd4V\xa6\xadj\xc8\xf0\x5c}.\
+S#k\xf5\xda\xee\xf5\xbc\x0d\xd5\xd9\xde\x9bn\xe68\
+\xe6^\xd9\xea\xb0\xed\xea\x0e\xd7\x9d\xa5\xbbg\xec\xe9\xc9\
+\xdf\xba\xcft\xff\x83\x83\x89\x87\xe5\x8f\x5c-\x88<\xce\
+:Qx*\xe1\x8c\xce\xd9\x87\x85\xcb\xcf[_\xe8*\
+>})\xe6\x8a\xe9\x1f\x8d\xd7\xf2n\x04\xddR,\xa9\
+\xbd\xb3\xbdt\xfa=\xa5\xf2\x9a\x8aM\x7fNy\xc8\xac\
+*{\xbc\xa8\xc6\xaa\xb6\xbd\xfe`Cp#\xfb\xd9\x8d\
+\xe7\xf3\x9b\xd5_V\xbc\x16\xb6\xa8\xb6\xdeh\x8b}\xc7\
+\xf8\xebP\x87\xf7\x87\x97]Kz\x94zO\xf4;\x0c\
+T|\x9a\xf5\xb9cp\xed\x90\xeap\xa3H\x04\x88\xdf\
+\x8b\x00\x00Z\x8co\x18\x0f\xff\xe7\x88\x8fK\xf9\xbe'\
+\x09@\x8a\x9f0}\x1a\x00\x06\x00c\x81\xd0?\xf0{\
+\x8e\x18\xf8\x22\x0c<\xf1;\x15\x00\xe8\xb2@\xbe\x11\x00\
+\x5c\xf6M\xfa\xaf}\x85\xfcEB\x00\xf0J\x14,N\
+\x8a\x89\x8a\x16r<\x04\x828>\xc7+1^\x90\x22\
+\xe4'q9\x93\x12x\xe6\x5c\x8e\x95\xa5\xa5-\x00\xfc\
+\x07\x8f\x08\x91L8\xcf\x9b\xb0\x00\x00 \x00IDA\
+Tx\x9c\xed}y\x98\xdcV\x95\xef\xefJ\xaa}\xed\
+\xaa\xde\x17o\xb1\xe3v{K\xec8\xdb\x04\x08\x84I\
+X\xb2\x10\xc0\xc0\x83\x19f\x08o\xc20\x0f\xde\x1b\xc2\
+\x00o\xd8g\x80\x84-\xc0\xcc\x03\x860\x0cd\xb2\xd8\
+$&\xb6\x13'1^\x12;\xc6\x8e\x1d'\x8e\xed8\
+^:\xee\xd5\xbdUwuwu\xd7.UIz\x7f\
+H*]\xa9T\xd5\xbb\xed\x04\x9f\xef\xd3'UI\xba\
+\xba\xba\xe7w\xcfv\xcf\xbd\x22\xb2,\xe3\x12\xfd\xf9\x12\
+s\xa1+p\x89.,]\x02\xc0\x9f9\x15\x01\x80\xa8\
+t!*s\x89\xce?\x95\x94\x00\x97@\xf0\xe7Ae\
+U\xc0%\x10\xbc\xf5iB\x1b\xe0\x12\x08\xde\xda4)\
+#\xf0\x12\x08\xde\xba4i/\xe0\x92q\xf8\xd6\xa4)\
+\xbb\x81\x97@\xf0\xd6\xa2\x22\x00L&2x\x09\x04o\
+\x1d\xb2\x94\x00\x97@\xf0\xe7C%U\xc0dA\xf0\xed\
+o\x7f\xfbR4\xf1ML\xc4\x82\xd1\x86\x9e]\xae\xa3\
+?\xf0\xc0\x03\x5cSS\x93k\x98e\xc5\xbf\xbe\xf9\xe6\
+\xd4\x1c\xd4\xef\x12\xcd1\x15\x01\x80\x10R\xfc\x9fr\xc2\
+\xf0\xdf\xeb\xaf\xbfn\xcbf]\xaeh4\xe6\x16\x88\xe0\
+!\xac(\xdc\xf6\xee\x1b\xce\xcdq}/\xd1,\x93%\
+\x00\x00\x00\xb2\x0c\xb3l\xd0Nuvv:\x12\x09\xc6\
+e\xb3\xc1%I9\xcf\xc0\xf0\x98O\xe0\x05\x9f$\xc9\
+\xb9t\xbc\xef\x95\xf5\xeb\xd7\x0b\xe7\xa3\xf2\x97h\xe6T\
+\x1a\x00\x80\x15\x08HOO\x8f\x03\x80+\x9b%nQ\
+\xccy`c\xbd\xc8I\xbe\x91\xb1\xb8?\x9eJ\xfb\x19\
+\x199\x9e`\xef\xed7];x\x1e\xea\x7f\x89fH\
+\xe5\x00\xa0\xede\xf5\x1a\x02\xc0\x09\xc05:\x9aq\xc7\
+\xb31\x8f$\x12\x9f,\x88\xbe\xbc,\xfb\x09d\xff\xd8\
+X\x220\x1aO\x05\x01\xd9Ar\xe2#\xb7\xdcr\xfd\
+\x99\xf3\xf6&\x97hZT\xca\x827(\xfcM\x9b6\
+1\x00\x5c\x00\xdc\x00\xbc\xa1\x90\xcbW\x1d\x0c\x06\x1c\x8c\
+=\xe0p\xd8\x83\x840AIFE \xe0\x0dU\x86\
+\xfd!\x16hd\xec\xdc\x0fw=\x7f\xe8}s\xfd\x02\
+\x96\x95\x9f\x80.D\x9d.V*%\x01\x0a\xbd\x7f\xcf\
+\x9e=lUU\x8b3\x1cv\xbbkk\xbdn\x00^\
+u\xf3\xe7\xf3y\xff\xe0\xf0\xb8_\x96\x11\x10x>\x98\
+\xcb\xe5\x832P!\x08\xf9\xd0pt4$B\x0eC\
+\x96\x9f\xf8\xcbw^\xfd\xd5Y\xaf\xf8\xe4\x19Yx\x97\
+\xc9\x96-\xff\x19\xe5\xc9Y\xb9\x81\x85\xc6}\xe5\x95W\
+8\x8f\xc7\xe3\xb4\xdb+\xdc\x1c\x07\x8f\xcf\xe7\xf1TT\
+x}\x00|\x00\x02\x00\xfc\x00\x02C\xc3cA1\x97\
+\x0ffs\xf9\x10\x9f\xe5+ #\x9c\x97\xc4\xd0\xc8h\
+<\x9c\xcb\xe5\x02\x90\x99\xa7\x92$\xf1\xa9\x0f\xdcx\xe3\
+\xd8\xb4+Z\x9a\xe1V\xff\x9b\xd5\x98Fr\x89\xe3r\
+\xff\xbd\xa5\x01Q\x12\x00\x8f?\xfe\xb8\xad\xa2b\x91\xab\
+\xae.\xec\xb2\xdb\x19\x0f\xe7rzY\x06>\x9b\x8d\xf3\
+\xd5U\x85\xfcP\x00\x10\x00\x10\x04P\x11\x1bKT\xf0\
+|.\xc4\x0b\xf9P&\x9b\x0d\xcb\x92\x14\x96$\xd97\
+6\x9e\x22\xbc\xc0C\x96\xe5c\x099\xf9\xce\xc9\x82\xa0\
+\x04\xc3i\xc6\x9a\xcf\x93\x12\xd7\xd1T\x0a\x00V\xc7\xe6\
+\xbd\xf2\xe3-\x06\x06K\x00\x00\xc0\xf6\xed\xdb\x1d\x02\xe7\
+\x0f\xbb\xed\xac\xa7\xa1\xbe\xd6\xcb\xb1\x8c\xd7\xc1\xda\xfd\x8c\
+\x8d\xf5\xdb\xedl \x14\x08\x04l66\x08\xa0B\xdd\
+B\xf1D:\x94\xced\xc3\x92(\x85\xe3\x89\x94G\x06\
+\x08d`l<\x89L6\x0b\xc8\xf2X^\x96\xdey\
+\xf3\x8dW\x1f+Y!#\xe3\xad\x18n\xfe\x8fl\xd8\
+\xb0!\xb0n\xdd\x0dW\xf8|\xae\xf96\x9b}>\x00\
+\xb0,7\x8f\x10f>\x000\x8cr\x8b(\x8a\xdd\xa2\
+\x98/\xc4*\x92\xc9\xf4k\xa2\x98\x1b;th\xff\xb1\
+\x8f\x7f\xfc\xe3\xe3P\x98\xadm0\xed\xe9\xff\xdf2@\
+(\x09\x00\x00\xd8\xbe}\xbb\x9f\xd8\x83\x8b\x1dv\xceW\
+W\x15\xf6\xb3v\x9b\xdf\xc6p\x01\xbb\xd3\x1e \x04\xc1\
+\xcap\xa0\xc2\xc6q!\x00!\x00!\x09\x08g\xd3|\
+(\x99\xce\xb8eYF<\x9eB>\x9f\x87\x0c \x93\
+\xe6\x11O\xa6 \xcb\xf2\x98\x0c|\xe1\xa6\xb7\xaf}\xb0\
+P\x89\xf2L\xd7~3\xda\xf1\xce\x9d{\x17\xae^\xbd\
+\xf26\x87\xc3\xf96\x8e\xb3\xadbYv\xde\xb4^\x9e\
+z\xac(\x8a\xe7$)\x7f<\x9b\xcd\xee\xef\xef\x1f\xd8\
+\xb7zu\xcb1\x18\x19o\xde\x00\xbc\xf9\x81P\x16\x00\
+\x00\xb0u\xeb\xde\xa0\xc3\xe3\xbc\x9e\xb3\xb1\xe1\xfa\x9ap\
+\xc0f\xe3\x02\x1c\xc7\x05].{\x05!l\xc8\xefu\
+\x87\xdcnGH\x02\xc2\x90\x10&\x04\x0e^\xc8#\x99\
+LA\x92e$\x12)\xf0|\x0e2\x00!\x97\xc3\xf8\
+x\x12\x90eH\xa2t\xcfM\xef\x5c\xf73\xad\x1e\xd4\
+\xbe\x88\xe9\x9f\xfe\xf4\x97\x17\xdez\xeb{\xde\xbeb\xc5\
+\x92[kk\xabV\xb1,g\xc9\xf0\xd94\xf0EQ\
+<\xc7\xf3\xd9m\xbd\xbd\xbd\x8fP`\x90\xf0\x16\x03\xc2\
+\x84\x00\x00\x80\x1d;\x0e\x86d\x8eY\xcf\xb1\xa4:\x1c\
+\x0eV\xb8]\xae\x0a\x1b\xc3T\xb8<\xce\x10!$\xec\
+\xf7zBN\xa7#D\x08\xec2\x00\xc8@>/\x22\
+\x95NC\x14%$\x92\x19\xa43\x19@\x06\x84\xbc\x88\
+D\x22\x05I\x92 \x89\xd2\x7f\xdft\xe3UwAw\
+G\xb5^N\xee\xbc\xf3\x13\x15\xef}\xef\x07?\xb9r\
+\xe5\xd2O,\x5c\xd8\xb8\xd2\xe7\xf3\xea\x95\x9e\x06\x9fg\
+\x02\x0e\x0d\x0cO=\xf5\xc4w?\xf5\xa9O\x8d\x01\x10\
+a\x01\x847#\x08&\x05\x00\x00x\xf0\xc1\xbd\xce\xda\
+y\xae\xcf\xb3\x84\xac\x08W\x04C\x1e\x8f3\xc4\xb0L\
+\xc8\xe7q\x87\x09C*\x5cN\x07\xe7\xf5\xba\xb5\xa6P\
+ZE\x92\x91L) Hgx\x8c\xc7\x93\xca9I\
+\xc6x<\x0dQ\xccC\x92\xa5\xe3\xbb\xfe\xb4\xe3\x96\xfb\
+\xbe\xf6\xb5q\x00\xccg>\xf3\xc5\x05k\xd6\x5c\xf7\xd5\
+\xb5kW~b\xd9\xb2\xcb\xa6\xfeBS\xe4\xf3T\x80\
+\x91\xcb\x09'\xfe\xf3?\x7f\xf9\xde/~\xf1\x8b1(\
+ \xd0$\x82\xa4^\x22\xbf\xd9@0i\x00\x00\xc0\xb6\
+m\xdb\xdc.o\xf57$\x90\x1b}^O\xb8\x22\xe8\
+\x0b3\x84\x04|>\x0f\xcb\xb1\x0c\x1c\x0e;<n\x97\
+\xd2\x87\xd5be\xc8H\xa7\xb3\xc8\xe7E\x08B\x0e\xa3\
+\xb1q\x88\x92r2\x99\xcc@\xc8\x09\x90E\xe9\xb53\
+\xad\xed\xdfg\xc1\xddz\xfd\xf5k>\xbe`A\xe3\xc4\
+\x15\x9fF\x8f\x9e\x0dp\xe4r\xc2\x89\x7f\xfb\xb7\x1f\xbf\
+\xff\x1b\xdf\xf8\xc6(t\x10\x18T\xc3\x9b\x09\x04S\x02\
+\x80F\xbb\x9f\x7f\xf9\x07 \xb8\xdb\xedv\xf9\xc3!?\
+\x03B\x10\xf0{\xc0\xb1,X\x96\x85\xcf\xe7\x06\x01Q\
+\xe4\x80\xac\xb4NN\x10\xc0\x0b9\xe4s\x22F\xc7\xe2\
+\xc8\x09\x8a]\x90Ld088\x82\xba\x9a*\xacX\
+qyq\x05\xcf\x93\xb8\x9f\xca-\x82\xc0\xbf~\xdf}\
+\xffz\xdb\x0f~\xf0\x83\x11\x00y(\xafhP\x0bo\
+\x16\x10L\x0b\x00\x00\xb0k\xcf\xcb\xdfb\x19\xe6\xdb6\
+\x9b\x0d\xe1\xb0\x1f\x0c!\xf0z<p\xba\xec\xe0X\x06\
+.\xa7\x13,\xc7\xa8\x00PP\x90\xcb\xe7\x91\xcb\xe5!\
+I\x12\xa2#c\x18\x19\x1e\xc7H4\x86u\xebV\xc2\
+\xebu\x97y\x9au\xc4\xfa|\x80\xa3\xd4\xe5\x82\xc0\xbf\
+\xfe\x9d\xef|\xf3\xf6\xfb\xef\xbf_\x03A\x914x3\
+\x80`\xda\x00\x00\x80\xe7\xf6\x1e\xfe[\xc2\xb0\xbf\xb3q\
+6TT\xf8\xc02\x0c\xbc\x1e7\xdcn\x07\x08C\xe0\
+v\xb9\xc0\xb0\x0c41 \x03\x90$E\x15\x9c>\xdd\
+\x05\x02\x06--\x13\xeb\xf9\xf2<\xbbp\xe0\xe0\xf9\xec\
+\xc9\x03\x07\xfe\xf4\xb9\xdbn{\xefQ\xe8 \xa0m\x83\
+\x8b\x1e\x043\x02\x00\x00\xec\xde\xfb\xca\x8d\x0c\xc1\x16\x86\
+e\x82\xe1\x8a\x00X\x8e\x85\xd3\xe1D0\xe0\x01!\x04\
+\x0e\x87\x0d\x1c\xcb\xd1\xfe\x12^z\xe95\xd4\xd5\xd5\xa1\
+\xa6&l\xac\xcc\xb4\x98V\xee\xec\xdc\x83C\x14\xf3\xf1\
+\x17^\xd8s\xc7m\xb7\xbd\xf7\x18\x80\x1c\xded \x98\
+1\x00\x00`\xe7\xde\xc3Wp\x0c\xbb\x87a\x98\xa0\xdf\
+\xef\x85\xc3n\x83\xd3aC0\xe8\x03C\x18\xd8\xed6\
+p\x1c\x07\xc82\x0e\x1f>\x81\xa6\xa6F\x84B\xfeR\
+U\xb2\xfewV\xc1Q:\x8dq:\x86\xa2(\xe6\xe3\
+\xbbv\xed\xb8\xf3C\x1f\xba\xe3U(\x92\x80V\x09\x17\
+5\x08f\x05\x00\x00\xb0u\xef\xde`\x80\xf1\xed!\x84\
+\x5c\xe1\xf3{\xe0\xb4\xdb\xc1\xd9XT\x85+\xc00\x04\
+,\xcb\xe2\xf8\xb17\xd0\xd4\xd4\x80`\xd0W\xbeR%\
+\x99p\xf1\x82C\x14\xf3\xf1\xdd\xbbwZ\x81\x80\x0e \
+]t\xb1\x82Y\x03\x00!\x84<\xfa\xf4\xd3\xc1Z_\
+\xed\x16\x96a\xde\xe1t:\xe0\xf18\xc12,*\xc3\
+A\x9c>\xd5\x8e\xf9\xf3\x9bL\xcc\x9f\x1d\x83\xac\x5cY\
+\xe7\x13\x1c\x14\x08\x8eBQ\x07\x17=\x08f\x05\x00\xa6\
+,\x22\xb2{\xcf\xe1\xdfr\x1c\xf7I\x87\xc3\x0e\x8f\xc7\
+\x85\xfe\xde!\xd4\xd5Vc\xde\xbcz\xd3}eK\x9d\
+b\x1d\xa6^V\xb9{FGcH$\xc6\xd1\xd8\xd8\
+\x04\x96e'q\x8f\x02\x0eE\x1d\xfc\xf1\x83\xeb\xd7\xdf\
+\xf9*\xde\x04 \x981\x00\xcc\xcc\x87\xd2\x12\xcc\xb3\xbb\
+\x0e|\xd3\xe3\xf2|5\x93\xc9\xc2\xedpa\xe5\xcab\
+\x1f\xbf|\xb9e\xcf\xceYY\xf1x\x1c\xbd\xbd=\x88\
+\xc7\xe3`\x18\x02\x8f\xc7\x8de\xcb\x96\x1b@0\xd1s\
+DQ\x8c\xef\xda\xb5C\x03A\x9e\xda.:\x10\xcc\x16\
+\x00\xe8\xc1\x1bV\xddl\x8f\xff\xe1\xd9\xcf\xb1\xc4\xf9\xdd\
+\x1bn\xb8\x0a6\x9b\xad\xc4\xfd\xd3yf\xc93\xd3.\
++\x9dN\xa3\xab\xab\xb3\xc0x\x80\xa8\xe7\x08\x1c\x0e'\
+\x9a\x9b\x97\xc1n\xb7O\xba\xce\xa2(\xc6w\xef.\x02\
+\x81\x160\xbah@0\xa3Y=e\x98\xcf\x01\xb0\x8d\
+\x8d\xa6oX\xb5\xaa\x19\x1c\xc7\xa93\x8d\x8a7Y\x96\
+!\xcb\xb0\xdcJQ\xa9\xebK=\xa3\x5c6X6\xcb\
+\xa3\xad\xad\x0d\xc7\x8f\x1fG<\x9e\x80&\xc8\xb4W\xe3\
+8\x0e\xf5\xf5\xf5\xb0\xdbmT\x9dK\xd7A#\x96e\
+\xfd\xef~\xf7-\x9b7m\xda\xb2\x06\x80Mm\x13\xad\
+}\x0aC\xdb\x17:Gq\xda\x12\xc0$\xfa\x19u\xe3\
+\xd4\xcd\xfe\x9d\xef\xfc\xfb\x1dk\xd7\xae\xfb\xcd5\xd7\xac\
+\x9edy%\xcfL\xf1\xfa\xc9=C\x14E\xf4\xf6\xf6\
+```\x00:\x8e\x09\x18Fq\xedX\x96CMM\
+-jjj,\xc5\xffd\xeb+\x8ab|\xe7\xceg\
+?\xf4\xb1\x8f}\xf8(\x00\x01z\x9c\xe0\xa2\x90\x04\xd3\
+\x02\x80\x05\xf3\x09(\xe6_w\xdd;\xaa>\xfb\xd9/\
+\xed\xba\xf6\xda5\x8d\xa1P\xc0|\xef\x14\x9fU\xf6\xec\
+\x94\xef\x11E\x11\x03\x03\xfd\x88D\x06\x90\xcfK D\
+\xa9\x93\x965D\x08PYY\x85\xfa\xfa\x06U\xe4\xcf\
+|\x5cA\x14\xc5\xf8\xc1\x83/\xdd\xf5\xfe\xf7\xbfk/\
+\x8c\x86\xe1\x05\x07\xc1L\x00@\x1b}\x05\xb1\x0f\xc0\xf9\
+\xf3\x9f?\xf4\x95\xc5\x8b/\xff?W]\xb5r\xaa\xe5\
+N\xf1\xfa\xb2g\x8b\xfe\x89F\x87p\xee\x5c\x17\xf2y\
+\xb1\xd0\xeb\x09\xd1S\xc6|\xbe\x00\xe6\xcdk\x82\xcbe\
+\x1c\x97\xa0\x9f\x13\x8d\x0e!\x12\x89\xe0\xb2\xcb\x16\xc3\xed\
+\xf6L\xa9\xbemmg\xbfp\xd5U+\x1f\x86\x11\x04\
+\xe6\xd1\xc4\xf3\x0a\x04n\xaa7X\xa4o\x19\x00\xb0v\
+\xed\xdb+++\xab\xefjh\xa8)\xa9\xc7K1\xae\
+\xdc{[\x81\xa3\x5c3\x11\xa2\x9f\x8cF\x87\xd0\xdb\xdb\
+\x0b\x9e\x17\x0a=^\xc7/`\xb7;\xb0`\xc1\x22\xf8\
+\xfd\xd6\x01*YV\xbc\x83\x8e\x8e6d\xb3J\x19'\
+N\x9c\xc0\xa2E\x8bPUUU\xaa\x06E\xff,^\
+\xbc\xe4\xa7\xaf\xbcr\x02*\x08\xccT\xc8)P\xe7g\
+\x9e\x17\x10L\x19\x00*\x95\x92\x00\xf6\xbb\xee\xfa\xf4\xdd\
+\x1cg\xf3UV\x86J\xde\x5c\x9eq\xa5\xee\xb1\xbe\xa9\
+\x94\xd4\xd0\x98\xa6\xb9t\x84\xe8V\xbd\xd6\xf3\x1d\x0e;\
+\x1a\x1a\x1a\x10\x0eWR\xcf(v\x0b\xfb\xfaz\x10\x8f\
+'\x0a\xe0QT\x06\xd0\xd5\xd5\x09\x8e\xb3!\x18\x0cZ\
+\xd5\xc0\xf2]\x16/^\xac\x81\xe0\x11\xe8m\x98WO\
+\x9fw\x10L\x09\x00\x16\xbd\x9f\xa56\x1b\x00{8\x5c\
+\xfd\xc1\x8a\x0a?X\x96\x9dr\x8f\x06\xa6\x0e\x0e\xabg\
+\xa4Ri\x9c;\xd7\xa9Z\xf5:\xd3\xb4c\x9bM1\
+\xf0\xaa\xabk\xd4z\xd2\xcfP~\xf0<\x8f\xee\xeeN\
+\x8c\x8e\x8e\x19\xa4\x86V\x8e\xdd\xee@}}\x03\x02\x01\
++\xe6\x97\x7f\x97\xc5\x8b\x17\xff\xf4\xd0\xa1\xe3\xe4\xdak\
+W\xd3\x92\xe0\x82\x80`:\x12\xc0\x10\xf0\x01\xc5\xfc\xfb\
+\xee\xfb\xf9\xc7\x1c\x0eg} Pj\xa0G\xa7\xb9\x00\
+G6\xcb\xa3\xaf\xaf\x17\xd1\xe8\x90\x81\xe1\xf4qee\
+%\x9a\x9a\xe6)\x83S\x16\x94\xcd\xf2\xe8\xed\xed\xc5\xf0\
+p\xd4T\x17Ejp\x1ck\xf2\x0ed\xc8ric\
+\xc4\x1a\xb4\xc0\xd2\xa5\x97\xff\xe4\xd0\xa1\xe3\xb8\xf6\xda\xd5\
+\x8fP\xa7D\xed\x12\xa8v\xc1\x5c\x83`\xa6*\x80v\
+\xfdl\xf5\xf5\x0d\xef&\x84 \x10\xf0\x1b\x18<U\xe3\
+n\xaa\xe0\x10E\x11===\x88D\x06\x8a\xc4\xbcv\
+\xec\xf7\xfb\xb0p\xe1\xa2B0\xc7\xfc\x0cQ\x14\x11\x89\
+\x0c```\x00\xa2(\x16\x01\x87\x10\x82p\xb8\x12\xf3\
+\xe6\xcd+\xb8\x85z\x11\xd6\xe2^\xb9\xa6\xf4\xbb\x9b@\
+@_(Bi\xdb9\x07\xc1\xa4\x01P\x22\xe4[\x10\
+\xff\xabW\xaf\x0dUT\x84\xdf\x09\xc8p\xb9\x5c\x86{\
+\xa7\xd3\xdbK\x11]\x96\xee\xd2E(\xa6)U\xd4\xca\
+\xf5x<hj\x9a\x07\x9f\xcf\xa7\xdeO?[\xd9\xf7\
+\xf6\xf6\x22\x12Q\x18\xaf\xd5\x89f~0X\x81y\xf3\
+\xe6\xc1n\xb7\x97\xac\xef\xf8\xb8b+\x88\xa2\x88\x85\x0b\
+\x17\xc3\xe3\xd1<\x89\xf2\xe0\xb8\xfc\xf2\x02\x08\x1e5\x9d\
+\x96\xa8\xfd\x9c\x81`\xaa\x12\xc0,\xfe\x0b\x06\xe0\xed\xb7\
+\xaf\xbf^k\x1c\x8ec\x8b\xc4\xf5lY\xfe\x1aE\xa3\
+C\xe8\xea\xea\x82$\x89\xa0\x19N\x1bx\xf5\xf5\xba\x81\
+gECCC\xe8\xeb\xd3\xbd\x03s9~\xbf\x0f\xf5\
+\xf5\x0d\x05\xf0X\xd57\x9b\xe5q\xee\x5c\x17b\xb1X\
+\x018\xad\xad\xa7\xd1\xdc\xbc\x0cn\xb7[\xbd\xa7T\x0d\
+\x14p\x5c~\xf9\x92\x9f\xec\xdf\x7f\x84\xdcp\xc3\xdaG\
+J\x5c8g \x98\x89\x0a0\xb8\x7f\xb5\xb5\xb5-\x0c\
+C\xc00\xd6\x83&\xb3e\xf9G\xa3Q\xf4\xf6\xf6@\
+\x10\x04\xaa\xa7\xea\x8c\xe38\x0e\xb5\xb5\xb5\xa8\xab\xab/\
+YV<\x1eG{{\x1bU\x06\x0ae(YL\x0e\
+\xd4\xd7\xd7S\xdeAq}5{\x83\xb6\x15\xb4:\x88\
+\xa2\x88\xd6\xd63hiYN\x8d\x1f\x94\xb7k\x96-\
+[v\xff\xfe\xfdG\xa0\x82\x80@\x8f\x15h4' \
+\x98\x14\x00J\xf8\xfe\x86\xd8\xbf,K\x0c!\x04^\xaf\
+\x12\x1c)1\xe9\xd4\xb2\xfc\xc9\x80#\x1e\x1fGoo\
+/\x12\x89q\x00LQ\x8f\x07\x80\x9a\x9aZ\xd4\xd7\xd7\
+\x974\xf0\xac\x5c:\xba\x0c\x96e-\xc1C\x13m+\
+\xe8\xd2G)\x03 \xb0\xd9XTW\x17\x87\x90'#\
+\xe9\x96-[v\xff\x91#'\xfdk\xd7.\xff\x0f\xea\
+\xf4\x9c\x82`*\x12\x80\x986\x83\x0a\xa8\xaa\xaaYC\
+\x08A2\x99D\x22\x91\x80\xcf\xe7+z\xe9\xe9\x88\xfb\
+dRs\xe94\xc6\xeb\xcc\xd7z]0\x18DS\xd3\
+|8\x1c\xd6\x06\x9e\xe2\xd2\xd1bZy\x1d\xfa\xb8\xa6\
+\xa6\x06\xf5\xf5\x0de\x99\xa6\xd9\x0a\xb4\xda1z\x18U\
+\xa8\xab\xab\xa7\xeaa~G\xebw\xa7\x9f3\x7f\xfe\x82\
+o\xb5\xb5\xf5\xb5,^\xdc\xf0y\xea\x12m(\xb9`\
+\x18Z\x974u\x9a\xae\x0d`V\x01\x1c!\x0ca\x18\
+\x02Y&hk\xeb\xc2\xe2\xc5\x0b\xe0\xf5z\xa7m\x0b\
+(\x22\xb6\x07\xc3\xc3Q\xf5\x1e\xa6\xc00\xad\xd1}>\
+\xbfAGkEh\xcf\xa0\xc5\xb4U\x8f\x07\x80pX\
+a\x9a\xd3\xe9(\xf9\xd2Z$QS\x19F\xf0\x00~\
+\xbf\x0f\x8d\x8d\xf3\xe1v\xbbJ\x96A\xd7\xcf\x8a\xe8v\
+\x09\x06\x83\xeb\xdb\xda\xfa\xb0xq\xc3\xe7`dv\xc1\
+; \x84\xccJ\xc8x&q\x00\x83'@\x08\x08\xc3\
+\x10H\x92\xf22\xed\xed\xddhn^\x04\x97\xcb\x0dQ\
+\x94\x0a7\xeb\xcb\x0dY\x14L1\xee\xf8\xf1#\xd0\x19\
+\xc5P\x0d\xa4\xe8\xe8\xba:EG[\xcf\xdeQ\xc4\xb4\
+f\xd9\x9b\x19O\x08\x81\xcf\xe73\x81\xa7\xb8-c\xb1\
+Qtww\xab\x8c\xd7%\x8e&5\x9cN\x07\xe6\xcf\
+_h0\x12K\x95\xa5\xbf\xe3\xe4\xd4` \x10\x5c\x7f\
+\xf6l\x1f\x96,i\xf8\x9cv\x09\xf4\xf8\x00\xc1,\xa9\
+\x82\xe9H\x00mo\xf0\x04dY\x22\xca0\xaa\xf22\
+\x92\x04\xb4\xb5u\xa3\xa5e\x09\x18\x86C>\xaf\x83\x80\
+a\xac\xeb\xac\x81\xc3\xe1p\xa0\xb9y9\xce\x9e=\x0b\
+I\xd2\x19\xc8q\x1c\x1a\x1a\x1aP]]C\xddSJ\
+L\xe7Q,5\x14\xa6566!\x18\xac\xa0\x9e\xa9\
+\xbe\x14eo\xf4\xf5\xf5\xaa\xb6B\xb1\xd4`Y\x0eM\
+MM%\x01X\x8e\xa6\x02\x8e`0\xb8\xfe\xc5\x17\x8f\
+\x1e\xbc\xfe\xfa+\x1f\x811\xb9A\xeb\x80s/\x01,\
+\x12\x164\xe6\xd3 *\x15.R\x80 \xe1\xf4\xe9\
+\xb3X\xb6l\x098N\x07\x81$\xa1$i\xe0\xf0\xfb\
+\xfdX\xbd\xfa\x0a\xb4\xb7\x9fE2\x99@]\x9d\xc2x\
+%\xb9\xc4\x5cGZL\xf3*\xc3\x0b9\x17\x00\x94\xf1\
+\xfd\xfa\xfazTW\xd7\x94dZ6\xcb\xa3\xa3\xa3\xad\
+\xc0x\xb3\xad\xa1\x19\x89Z\x08\x19\x98\xbb\x18\x87F\xe9\
+4\xbf\x00J\xa4U\x82q\xe4pV\xa4\xc0t\x8d@\
+\x80\x9a\xca\x0d\x80\xd1\x1b\xcc8\xa0\x22\xcb2N\x9fn\
+CK\xcb\x12\xd8\xed6\xf0\xbcb\xd4\x96j\x1b\x1a\x1c\
+\x0c\xc3b\xc9\x92f\x08\x82\x00\xbb\xdd\x0e\x86\x01\xcc\xa0\
+W\x5c\xbav\x08BV}\xbe\x96\xe4\xa43\xb0\xbe^\
+\x03\x8f5\xd3x^\xb77h\xa9A\xeb\xfap\xb8\x0a\
+\x8d\x8dMT\x19T\xc3\xccr\x8cCy\xaf\x14\x9e|\
+r\x17\x9eyf\x17\x07\xc0\x0e\x8b\x09'\x98\x05)0\
+\x938\x80\xb6'\x00\x08!\x1c\x14#P\xbbD\x07\x02\
+-\x09\x1c\x0e\x0e<\x9f\x9f\x94-\xa0\x91\xe6K\xd3\xe0\
+H$\x141\x9dH\xc4\xd5{t\x11\xad3\xadR\xb5\
+\xca\x1dj=\x8c\xe5\xe6\xf3\x22\x06\x07\x07\xd0\xd7\xd7c\
+ik\x10\x02\xf8|^\xcc\x9f\xbf\x08\x0eG\xe9(\xe0\
+l\x8en\xb2,\x83\xbd{_\xc2SO\xedE2\x99\
+\x82,K\xdaX\x0b=\xeb\x88\xee\x883\xa2\xc9\x02\xc0\
+\x1c\x07\xd0\xf6\x94\x04\x90\x89n!\xcbE@P$\x81\
+\x0e\x82l6\x0fz\xcc\x9e\xa6r\xe0\x10\x04\x1e\x9d\x9d\
+m\x88\xc7\xc7)\x8b\x5c\x17\xf9\x0a\xd3\x14\xab\x5c\x0fI\
+\x1b\x9f\x93\xcf+F\xe2\xe0`\x04\xa2\xa8\xb9\xd9\x8c\xa1\
+<\x8f\xc7\x8d\xc6\xc6\xf9\xa0\x17\xa6\x98\xcb\xd1MB\x08\
+\xfa\xfb#x\xf0\xc1\xad\xe8\xee\xee/\x94\x17\x8f\x8fv\
+@\xcf)\xccAW\xbb\x12u\xef\xb4\xd5\xc0t%\x00\
+MD\xadD\xa1\xe7i\x0c4\x03A\x96e\xb4\xb6\xb6\
+c\xf9\xf2%\xf0z\x1dH&\xf9\xd2\x85\x96\x00\xc7\x1b\
+o\x9cA&\x93\x82\x86=\x85\xf1\xca\xf3\x1c\x0e\x07\x16\
+,X\x00\xaf\xd78\x1aIK\x8e\x91\x11\xdaV\xd0t\
+\xbc.\xf6\xedvc\x08y.C\xda\xb2\x0c\xb5\xbdd\
+l\xd8\xf04^|\xf1\xd5B\xb6\x92V\x1f\x9e\xcf\xa4\
+aL*5\xa8^\xcc0.0\x1d\x1b\xc0\xf2\x9c\x12\
+\x06f\xd4\x06\x93J\x02A\x92D\x9c:u\x16--\
+K\xe0\xf39\x90Hd-\x8b-\xd5\x9e\xcd\xcd\xcb\xd1\
+\xd3\xd3\x85\x91\x91\xe1\x0238N\xb1\xcaC\xa1J(\
+\xd2\xa6\xf8\xbe\xb1\xb1Qtww!\x97\xe3\xa1\xebv\
+\x1d<,\xcb\xa1\xba\xba\xa6`\xe0I\x92\xac\xda\x1cV\
+\xf5\x9a\x9c\xea\xd2\xef\xb1~\x19\x9b\x8d\xc5+\xaf\x9c\xc0\
+\xa6M;1::\xa6\x96\xa1\xe4'\xea \x10\xe9l\
+bCF\xf1l\xd0L%\x80\xae1\x0d\x12\xa0<\x10\
+DQ*\x80\xc0\xebu\x22\x99\xccNT|\x81X\x96\
+\xc5\x82\x05\x97\xc1\xef\x0f\xa0\xa7\xe7\x1c\xaa\xab\x8d\x89\x1d\
+f\xc9a\xb4\x15\x8a\x19\x0f(!\xe4\xba\xba\xfa\xa2\xec\
+\xdf\xd2\xde\xca\xcc\xc0\xc1q\x0c\xa2\xd1\x11l\xd8\xf0\x0c\
+N\x9el\x03\x00\xb8\xdd.H\x92\x08\x87\xc3\x81`\xd0\
+\x0bB\x08b\xb1\x04\x86\x87\xfb\xa2(\xee\xf9\xe7\xdd\x06\
+(G\x9a\xe9\xa5J\x00\x85\x01\x13\x01A\x92$\x9c>\
+\xdd\x86\x15+\x96\x22\x18tcl,c\xd1SJ\x0f\
+\xa5\x86B\x95j\x8f7\xdd\xa1\x16!\x08<\xda\xdb\xdb\
+\x90L\xc6-\xa3w\x84\x00\xc1`\x10\x8d\x8d\xf3`\xb7\
+[\x1b\x89\xdauVT\x0a\x1c\xe5b\x1c\x0c\xc3\x80a\
+\x80\xad[wc\xe7\xce\x17\x91\xcf\xe7a\xb7\xdb\x10\x0e\
+\x07\xe1p\xd8\xc0\xf39\x08B\x1e\x0c\xa3\xac\x9bp\xf6\
+\xec9\x0c\x0c\xb4\x0db\x96\x99N\xd3l\x00\xa0@\xb4\
+\xdf<\x19 H\x92\x84\xd6\xd6N,[v\x19\x82A\
+\x97%\x08&\x1aJ5\x93 h\xe1\xdf!\xe8\xae \
+m(*Fb]]\x03\xbc^=\x0aXZ|\x97\
+ns\xab{\xac\x80\xc1\xb2\x04v;\x87\x13'\xce\xe0\
+\xb1\xc7\xfe\x88Hd\x18\x0c\xc3\xa0\xba:\x8c`\xd0\x87\
+|>\x8f\xf1\xf1$x>\x07\x86!\x18\x1d\x8d\xa3\xbd\
+\xbd\x17\xe1p\x00\xa0b-\x98\x03\x10\xcc\x06\x00d\x00\
+\x85\x09\x154M\x06\x08<\xcf\xe3\xf4\xe9\xf6\x02\x08b\
+\xb1b\x10\x94f\x8e~\xac\x8d\xd2\xf5\xf7\xf7\x98\x98\xae\
+\x97\xa1\x19x\xe5$\x87\xd5\xebM\x17\x1c\x0cC`\xb7\
+\xb3\x88\xc7\x13\xf8\xcdo\xb6\xe1\xd5WO\x03\x00\xfc~\
+/\xea\xea\xaa`\xb7\xb3\x18\x1fO!\x1eOB\x92\x14\
+\xd5\xa0\xa9\xd2ht\x146\x1b3\xe7\x9f\xe1\x99)\x00\
+\xb4f\x93\x19F\xf3\xa1\x8b\x83A\x13\x01A\x10x\x9c\
+>\xdd\x81e\xcb\x16\xa1\xb2\xd2\x83X,e\x08\x1dO\
+F\xb7\xf2|\x16##\xd1\xa2\xe8\x1d\x00\xb0\xac\x0d5\
+55\xa8\xad\xd5\x86yKq{\xaa\xae\x5cip\xd8\
+\xed\x1c\x18\x06\xd8\xbb\xf70\x1e\x7f|;r9E\xdc\
+/X\xd0\x00\xaf\xd7\x85t:\x8btl\x00\x99\x14\x00\
+\xb0\xe08-\xdbX7\x00;::\xbbL\x15\x96Q\
+\xba\xf2\xd3\xa2\xa9\x00\xa0\xec\xc3\x8b\xdd@\xed\x96\xc9\x01\
+!\x97\xe3q\xe6L\x07\x9a\x9b\x17\xa1\xa2\xc2\x8b\xd1\xd1\
+\x14\xf2y\x91\xba\xb7|\xcc\xc0\xe5\xf2\xa0\xa5e\x15\xda\
+\xda\xde@*\x15\x87\xe6%\xd5\xd5\xd5\x1bB\xb7\xfa=\
+\xd6\xafX:@79p\xd8l,\x5c.\x1b\xce\x9e\
+\xed\xc2\x83\x0fnA\x7f\xbf\x920\xd2\xd8X\x83\x86\x86\
+\x1aH\x92\x88\xe1\xe114y\xce\xa2\xa1*\x81q\xbf\
+\x0d\xaf\x8d4A\x90\x1d\xd0\xc6,\xb4M\x8d\x9a\xce\x19\
+\xf3\x81\xd9S\x01r4\x1a\xed\xa8\xae\xae^A\x0f\xc9\
+N\x15\x08\x82\xc0\xa3\xb5\xb5\x03K\x97.B(\xe41\
+\x80\xa0|@E9\xc9\xb2\x0c\x96.m\xc6\xc0@?\
+r9\x1e\xb5\xb5\x0d%\x0d\xbc\xc9\xa8\x15\xabg\x948\
+\x0b\x86!p\xbb\xed\xc8f3\xf8\xdd\xef\xb6a\xdf\xbe\
+W\x00\x00\x81\x80\x0fK\x97*\xb9\x0a\xb1X\x1c\x83\x83\
+#\x10\x84\x1c\x9a\xeb\xb3p\xb8\x09\x02#\x02\xae\xaen\
+\xc7\xf1\xd8e\xc8Hn\x03\x00\xd4\x19K\xa5\x18?+\
+`\x98,\x00h\x0e\xd2\xa3R\x85\xb8\xf4\xd8\xd8\xe8\x90\
+bd\xc9\x06\xe6\x97\x03\x02M\x1a\x10\x04!W\x00A\
+8\xecE<\x9eF:-\xa8\xd7L\xae\x17\xea\xa2^\
+{\xa6\xd5=S3\xeeJ\x03\x83\xc0\xed\xb6\x81e\x09\
+\x0e\x1c8\x82\xdf\xff\xfe\x8fH\xa5\xd2\xe08\x16--\
+\x97\xa1\xb2\xb2\x02\x82 \xa0\xbb{\x00\xa9T\x06\x0cC\
+ \x8a9\xd8X\x19\x0e?\x03\x9b\x8b\x81tN\xc0\xaa\
+\x8a6\xb4'\xe7cL\x0c\x81\x10\xc5@\x8e\xc7GN\
+R/1'\x92`\xaa\x12@6\x1d\x17\xb6?\xfca\
+\xe3\xc1\xb7\xbf\xfd\xc6\xff\x09\x00\x92\xa4\xd8\x01\x13\x01\x81\
+\x96\x04\x1a\x11\x02\xe4r9\xb4\xb6v\xa2\xb9y!\x02\
+\x01%\xb12\x9d\x16f9\x14;s\xcb\xdf\xe5\xb2\xc1\
+\xe5\xb2\xa1\xb3\xb3\x0f\xbf\xfb\xdd\x16tu\xf5\x01\x00\xe6\
+\xcf\xaf\xc7\xe2\xc5M \x84`pp\x04\x91\xc80\x08\
+!\xe08\x16\x92$B\x96e\x84\x83\x22\x08\xc3\xc2\xe6\
+\x00|M6$\x07rX\x8avtfd\x8cJ5\
+\xd0\xa4\x0a\x8a\xdb|Vi\xba*\xc0,\x05\xa4}\xfb\
+\xf6\x0c\x8c\x8f\xc7\xba\x83\xc1\x8a\xf9Z\x90d&@\xc8\
+\xe7\x15\x10,]\xaa\x83 \x95\x12\xca0\xed\xfc\x81\xc3\
+\xe1`\xe1\xf18 \x08\x02\x1eyd\x1b\xf6\xee}\x19\
+\x82\x90C8\x1cDK\xcb\x22\x04\x02\x8a\xe4\xea\xe8\xe8\
+A.\x97\x07\xcb\xea\xd6}.\x97\x03\xcbr\xaa\x1c$\
+\x00\x01\x1c.\x0e\xf6\x85,\x92\xbd\x02\xe6\xcb\xed\xf0\xe5\
+\x13\xe8\xe2/\xc3\x0c\x97o\x98\x14M\x08\x00Y\x96\xb5\
+Q\x1e\xb3\x08*0\x1f\xea(\xd5\xbe}{\x9e\xb9\xe3\
+\x8e\x0f\xfd\x83\xc6\xe4\x99\x02!\x97\xcb\xe1\x8d7\xba\xb0\
+t\xe9\x22\x04\x02n\xd8\xed,b\xb1L\xc9\xba\xce5\
+88\x8e\x81\xd7\xab\x18k/\xbdt\x1c\x1b7nG\
+,6\x0e\x9b\x8d\xc3\xca\x95\x97\xe3\xb2\xcb\x1a\xc1\xf3\x02\
+\xda\xdaz16\xa6\x0cV\xd1\xcc\x97e\x19\xa2(\x16\
+V Qk\x00\x10\x02\x86\x10\xcc[\x11\xc4`W\x12\
+\x18\x18B.\x9f\xc7\x91\xb1s]\xc6\x0b/|$\xb0\
+$\xf3\x01\x88\xdf\xf8\xc6\xff\xdd\xb5t\xe9\xb2U\xcb\x96\
+-\xbf\x01\xd0\x99<\x13 \xe4r9tt\xf4`\xd1\
+\xa2&\xb8\x5c\x0e\xc82\x10\x8b\xa5-\x197\x9b\xc3\xb2\
+\xca=\xcaM\x0cC\xe0\xf5:\xe0p\xd8\xd0\xdf?\x88\
+G\x1e\xd9\x86\x13'\xce\x02\x00\x16,\xa8\xc7\xea\xd5\x97\
+\xc3n\xb7\xa1\xafo\x08\xe7\xceE I\x12X\x965\
+xF\x84\x10d\xb3\xd9\x02 4\xa6\xeb\x81T\x02\x99\
+\x10\xcck\x0e\x022 \x0f\x8c\xe0#\xeb\xb8\x8f\xb4\x9e\
+v\xbd\x14\x19\xcdhK\x97X\x05\x85\x080\xfd\xc4\x90\
+I\xad\x0fP\x18\xe75&\x82:\xa0|GP\xfb\x92\
+\x98\x0f\xcaG\xa4\xfc\x8f=\xb6\xf9s--\xab\xae\x07\
+\xf4\x06\xd6\x96\x82\x01dH\x92\xf6\xbf\xb6\xdcJ\xf15\
+\xe6\xff\xddn7\x16-j\x82\xcd\xc6!\x9d\xe6\x11\x8b\
+\xa5K\xd5u\xaamP\x12\x1c\x84\x10x<v\xb8\x5c\
+6\x08B\x0e\xdb\xb6\xed\xc1\xf6\xed\xfb!\x089x<\
+n\x5cs\xcd\x0aTWW \x95\xca\xa2\xb5\xb5\x1b\xa9\
+T\xba\x88\xe9t<\x22\x99LB\x0bP\xddz];\
+\x9c\x0e\x16 DK\xa8\x80\xc7e\x83\xcf\xa7\xe4>\x8c\
+FR\xe8|}\x04\xc9d\xa6\xe3\x99\x97\xde\xf8\xd7g\
+\x0eu\x1c\x05\x90\x04\x90\x06\x90E\xf1\x1a\x03\xb2\xdaV\
+S\x02\xc1T\x01@@M\x05\x87\x02\x02\x17\xa8O\xc9\
+i\xfb\x8d\x1b7\xff\xfd\xca\x95\xab\xaf\xa1\x99\xa8\xed\xa7\
+\x0b\x04\xb7\xdb\x8d\x85\x0b\x1ba\xb3q\xc8\xe5\xf2\x88F\
+\x93e{\xb0\xc5{L\xfaZ\xb7\xdb\x06\x8f\xc7\x01\x96\
+eq\xf4\xe8)l\xdc\xf8\x0c\xfa\xfb\xa3\xb0\xd984\
+7/\xc4\xca\x95K \x8a\x22\xba\xba\xfa\xd1\xdb;h\
+\x1a\xc13o\x0c\x04![\x98\x81\xc4\xb1\x12n\xbe\xaa\
+\x13N\x07\xab\x80O\x05\x8c\xc3\xce!\x14tB\x93\x0a\
+#\x03)t\x9f\x19F6\xcd'\x9f>\xf8\xc6\xdd[\
+\xf7\x9f=\x02\x1d\x00\x02\x8c\x8bOM\x0b\x04S\x01\x00\
+\xa0\x03@\xcbR1K\x01M\x12\xf8\x00x7n|\
+\xe2\xefV\xae\xbc\xe2j\xb5R0\xef\xa7\x03\x04\x9f\xcf\
+\x8b\x85\x0b\x9b\xc00\xa4\x00\x02I*~\x87\xa9\x0a\x02\
+\xed\x15\xedv\x16^\xaf\x13v;\x87ht\x14O<\
+\xb1\x13\xfb\xf7\xbf\x0a\x00hj\xaa\xc1\xda\xb5\xcb\xe1\xf3\
+\xb91::\x8e\x93'\xdb!\x8aRQ\x04O\x97\x00\
+\x0c\xd5\xfb\xf5\xa9\xea>W\x0a7\xae\x89\x80\xd1\xa4\x04\
+\x98\x02\x08\xea\xaa\xdd\xd0\x00@\x08A*.\xe0\xd4\xe1\
+>\xf0\xe9l\xb2\xado\xe4\xfb\xdf\xdf\xf8\xd2F\x00\x19\
+\x00<J\xaf42i\x10Lz\x89\x98\x12j\xc0\x0e\
+\x05\x00f\x10h@\xf0l\xdc\xf8\x87O\xafZ\xb5f\
+\x9d\x15\x00\xb4\xfdT\x81\xe0\xf3y\x0a \x10\x84<\xa2\
+\xd1\x84\x05\x08\xca\x87\x8e\xcd\xc4\xb2\x0c\x02\x01'\x1c\x0e\
+;\x04\x81\xc7\x9e=\x87\xb1u\xeb\x1e$\x12Ix<\
+n\x5c}\xf5r45\xd5\xa9+\x9dw \x16\x8b\x1b\
+\xc4\xbc\x0e\x00\xc6\x00\x04\x86!\xe0y\x1e<\xaf\xe4=\
+\x10B\xe0w\xa5\xf0\xb6+\x06\xc0\x10F-\x03 \xea\
+\xb9\xca\xb0\x0b6\x8e\xa1\xc7\xd9!\xa4\xf38s\xa4\x0f\
+\x89\xf14Z\xcfE\xbf\xf6\x83\x8d\x87\x1f\x85\x02\x00\x1e\
+\xc5k\x13O\x09\x04\xd3\x01\x00\x0d\x02;t\x10h\x9f\
+\x96\xf5\xc0\x08\x04\xf7\xc6\x8d\x9b\xefZ\xbd\xfa\x8auf\
+\xa6\x9a\xf7S\x01\x82\xd7\xab\x83@\x92d\x0c\x0d\xc5\x91\
+\xcb\xe9\xa1\xe3\x09\xde\xa6p\xa4\x19x>\x9f\x13\xb2\x0c\
+\x9c9\xd3\x8e\x87\x1f\xde\x86\xee\xee~\x00\xc0\xea\xd5K\
+\xd1\xd2r\x19\x9cN;\xba\xba\xfa\xd1\xd1\xd1S$\xe2\
+\x95q\x10]\xef\x9b\xa5A<\x1eWG\x1c\x95\xdf>\
+g\x0ao[\xd5\x07B\xb4\x9e\xaf\xde\x0b \xe0s\xc0\
+\xe3\xb1\xa9\xb5$\x85\xea\x8ay\x09'^<\x87\xc4X\
+\x0a\xb1df\xcb?\xfdr\xcf\x17`\x04\x01\xbd\xfa\x98\
+f\xa4O\x08\x82\xa9\x02@k=z^ \x0d\x027\
+t\x9b@\x93\x08\x1e\x00\x9e\x8d\x1b7\x7fj\xf5\xea+\
+\xd7Y1\xd5\xbc\x9f,\x10\x8c \x9008h\x04\xc1\
+Dj@a\xbc\x0b\x0cC\x90L\xa6\xb0q\xe3\xb38\
+x\xf08x^@mm\x18\xeb\xd6\xad@ee\x05\
+\xe2\xf1$N\x9f\xee@&\xc3\x1b\xf4\xba\xc2hk\xa6\
+\xd3~\x7f*\x95V=!\xe5?\xaf3\x85\x1bV\xf6\
+\x17\x98^\xf0\x0a@\xe0rs\xa8\x088\xd4\x86\xd6\x01\
+\xa0\xfdn=\xd6\x87\x81\xae\x11\xc4\x92\x99-\x0f\xed8\
+\xfe\xad\x13\x1d\xb1(\x14U`\xa5\x0e&\x04\xc1\x94V\
+\x09+!\x05\xb4\xd5\xc14{\x80\x96\x04\x9a4pC\
+\x01\xc1\xdf^q\xc5\x95\xeb\x8a\x0d<=el\xaa@\
+\xf0z=X\xb0@\x97\x04\x83\x83\xe3\x13J\x02\x87\x83\
+C(\xe4\x05\xc71\xc8\xe7\xf38p\xe0Ul\xdc\xb8\
+\x1d\xf1x\x12v\xbb\x0dW]\xb5\x1c\x97_>\x1f\x00\
+p\xfat\x07\xa2\xd1X\x81\xe94\xc3\xad\x99\x0e\xc3u\
+\xe3\xe3t\xefW\xad}G\x12\x7f\xb1\xbcO\xf5\x00\xf4\
+akB\xd4\xc9\xa5a\x97\x81\xe9j\xe3\xab\xbf\x81\xb6\
+\x13\x038\xd76\x88,/\x9cy`\xdb\xab\x1f}\xbd\
+s,\x0a\xc5(\x9c\xf2\xeac\xd3\x01\x80V\x0f\xcd \
+d\xa0.\x11\x83bu@K\x017\x00\xf7\xd6\xad\xdb\
+\xff\xa1\xb9y\xd9\x0akK\x7fz@\xf0x\xdc\x05\x10\
+\x002\x86\x87\x93H\xa5x\xad\xce\x85\xfa\xdbl,*\
+*\xdcp8\x14\x11\xdb\xdb;\x80\xdf\xfev+\xce\x9c\
+\xe9\x00\x0047/\xc2\x95W.\x85\xd3\xe9\xc0\xc0@\
+\x14]]\x03\xc8\xe7s\x06\xbd\xce\xb2V\x0c\xb7\xee\xfd\
+\xa2(\x22\x91\xd0g\x17i r\xd9\xd3X\xb7\xa4\x13\
+\x0e;c\x09\x82\x86Z\xaf\x81\xe1\xea\xcd\xeao%\xa8\
+2pn\x04'_\xee\x84 \x08}/\x9e\x1c\xf8\xfb\
+\x0d\xcf\x9dy\x15\xc5 \x98p\x91\xea)\xaf\x13h\xa1\
+\x0a\x0c\xcb\xc4@\x01\x81\x0b\xbaJ0\x80\xa0\xba\xba\xb6\
+\xf2\x89'\x9e\xba\xa7\xaa\xaa\xba\xde\xcc\xe0R@\xa0\xcf\
+\x97\x02B \x10DccMa\xcd\xbf\xe1\xe1D\x01\
+\x04\x0cCPQ\xe1\x86\xc7\xe3\x04\xa0\xac\x0b\xfc\xe4\x93\
+{\xb0s\xe7\x8b\xe0y\x01\xc1\xa0\x1f\xeb\xd6-W\x92\
+4\xc4\x11\xb4\xb7\x9eE\xef\xb8\xab\xc8\x98S\xf6\xa5\x19\
+n\x06F2\x99B.\xa7\x03\x88a\x94\xa4\xd8lv\
+\x0c6\x12\xc1\x0d\xab\x00\xaf\x9bNGW\xee\xab\x0a\xbb\
+\xe0\xb0\xb3EL7K\x85\xe8\xc0\x18^\x7f\xa9\x1d\x99\
+\x0c\x9f8\xf0\xfa\xb9\x8fox\xae\xed\x18t\xef\x80\x9e\
+GP\x12\x043](\x12\xb0X#\x18\xba:\xd0@\
+\xe0\xa16wmmmx\xd3\xa6\xa7\xbeX]]S\
+_\xde\xf7\x9f\x1a\x10\xfc\xfe \xe6\xcd\xd3\xe7\x0d\xc6b\
+I0\x0c\x81\xcf\xa70S\x92$\x1c?~\x06\x0f=\
+\xf4\x14\x06\x07G\xd4\x10\xee\x12\xb4\xb4,\x02@\x90\x1c\
+>\x0a\xf7\xe8\xab\x90\x04\x09\xdd\xb9\xc5\x18\x97kKX\
+\xfa\x13K\x00Q\x141>\x9e\x00\xcb\xea\xcc\xe5\xf98\
+\x92\xc9A\x88\xa22\xbaig2\xfc\x8dkI.\x1c\
+t{\x89\x16\x0f\x00A\xc0o\x87\xdf\xeb,f\xba\x85\
+TH\xc6Rx\xe9\xf9S\x10\x04\x01\x9d\x03\xa3_\xf9\
+\xe1\xef\x8fn\x80.\x09&\x5c\xae~\xa6K\xc5j\xf5\
+1\x83\xa0\x94:(\x80@\x91\x04\xdb\xee\xa9\xa9\xa9\xae\
+\x9f8\x084y \x84\xc3a\xd4\xd6\xd2)_\xca\x8d\
+\x03\x03Ql\xda\xb4\x03\x07\x0f\x1e\x07\x0044Tc\
+\xcd\x9ae\x08\x04|H$R\xe8\xe8\xe8A\x83\xff\x0c\
+\x167\xa6\x11mK\x03y\x09#R=\x86\xc8\xe5&\
+\x00L$\x01\x94\xf3z\xef'\x90\xa4\x1c\x12\x89\x01d\
+\xb3\xba\xbb\xda\xd5\xd5\xf9\xf2\x9e=\xcf\xef\x0f\xfam\xcc\
+/\xef\xfd\xf0\xc7j\xaa\x025Z\xb7r;m\xa8\x0c\
+\xb9\x0bL63]\xf9M\x0a?3)\x1eG\xfet\
+\x1ac#\x09\xf4\x0e\x8d\xdf{\xef\x86#\xbf\x82Q\x12\
+\x14\x81`F\x00\xd0\xebBh)@\x07\x89\xac\x0cC\
+\x17\x8a%A\xe5\x13O<\xad\xaa\x83\xc9D\x03'\x07\
+\x84p8T\x00\x01\xcf\xf38t\xe88\x1e|p+\
+\xb2Y\xa5\xe7\xad[\xb7\x1c\x8b\x165\x82\x10\xa0\xab\xab\
+\x1f\xf1x\x0a\xc9d\x0a\xd7/\xefCu\x05\x0fY\x92\
+1\xd2\x93F>\x91\xc38j1\xc25C&\xb6I\
+J\x00\x06\xb2,\x15\x06\x83\x12\x89A\xa4R\xc3\x85\x05\
+\xa8b\xb1\xd1\xae\x17_<\xb0}`\xa0o@k\xc7\
+\x80b\x0e?z\x00\x00\x10\xb6IDAT\xcf\xe6\xfa\
+\xfe\xd7?rg\xcb\xe2p3\x08`\xe3\x18\xd4\xd5\xf8\
+\xca2]=\xa1\xf1\x01\xf9\x5c\x1e\x07w\x1dGl$\
+\x81\xf1Df\xf3W\x7f{\xe8\x1f\xa1H\x02+\xe3P\
+\x86\x0a\x82\xd9\xfc^\x00m\x18NV\x12xjkk\
+\xc3\x9b7?}OU\x95\xa6\x0ef\x07\x08\x1cg\xc7\
+\xbe}\xaf\xe0\xc8\x91\x93\x18\x1bS\xe6\x0fr\x1c\x87\xab\
+\xaej\xc1\xf2\xe5\x8b\x11\x89D\xd1\xd5\xa5L\xc1\xca\xe7\
+E\xa4RI\xdc\xb02\x82\xaa _`\xeaPG\x1c\
+|\x5c\x80\xc0x\x11u^\x070\xf6\x12\x12\x801\xd8\
+\x08\x89D\x0a\xe3\xe3#\x88\xc7\xfb!\x08Y\xc8\xb2\x8c\
+L&=v\xfc\xf8\xb1\xa7O\x9e<q\x02F\x0b\xbd\
+\xd0y~\xf8\xcd;\xef\xbc\xf6\x8ay\xd7\x10BP_\
+\xeb\x05\xa7\xa6\xb1Y1\xdc\xc4\x83\xc2\xf9\xa3\x07O\xa3\
+\xfb\x8d~$\xd3\x99\xdd\x1b\xf7\xbc\xf1\x8f\xc7\xdbcf\
+\x0f\xc1\xe0\x1d\xcc\xe6'ch\xf7p\x22\x17\xd1\xa0\x0e\
+jkk+7o~\xfa\x1e\xc5&\x98\x5c4\xd0\xfa\
+\x1a\xfd|WW?\x1ezh[\xa1\x8e\x1e\x8f\x1b\x0b\
+\x17\xd6\xe3]\xef\xba\x1a\xaf\xbf\xde\x86\xa1\xa1\x91\x02\x03\
+\x13\x89$DQ\xc4\xf5\xcb\x07P]\xa1\x02@y1\
+\x88\xc9<\x06\xdab\xe0\x89\x17q\xd7\x1a\xe4mA\x13\
+\xd3\x8d6B>\x9fG{\xfb\x09\xa4R1\xb5\xce2\
+:;\xdbv\x1f8\xb0\xff\x05A\x10\xe20\xf6DP\
+m\xc6\x01\xe0\xbe\xf0\x99[\xde\xf5\xc1\xf7,\xbb\xad\xba\
+\xd2\x03\x97\x93C9\xa6'\xc7\xd38\xd7>\x94iY\
+\xb3\xd0\xc5P 9s\xbc\x03\xa7\x8e\xb6#\x91\xc9\xec\
+\xfa\xe7\xff<|\x17\xca\x8c\x1d\xccJ\xc6\x81\xacqC\
+\xd71\xda0q\x1e\x0a\xf2x\xb5\x12\x19(\x83\x19i\
+\x00)uKG\x22\x91\xe1\x0f~\xf0\xd6\x9f\x0c\x0d\x0d\
+\xf6\xeb\xba\x96\x81~\x5cl\x84Y_\xa33C\xad\x17\
+\x00mu\xcf\x0a\x5cye3^{\xed\x0d\x0c\x0f\xc7\
+\xc0\xaa\x9f\xb9\x95$\x85I\x8ca\xaa\x0f\x01\xd4\xb2\xfd\
+\xd5n,\x5cQ\x05\x17\x93B0\xb5\x1f\x0e9\x01\x8e\
+c\xc1q\x0cX\x96)\x94\xc3q,\xe2\xf1!\xb4\xb5\
+\xbd\x8cDb\x04\x92$ah(zj\xcb\x96'\xee\
+\xdd\xb3\xe7\xf9\xa7\x04A\x88\x02H\xa8[\x9c\xda\xc7\xa9\
+\xffS?}`\xc7\x8e\xef\xff\xe2\x85_&Sy\xc1\
+\x1cV\xd6c\x11\x0c\x18B\xd0\xdb6\x8c\xa3\xafv\xf7\
+\xb7u\x0e\x1d'\x0c\x03e#Xv\xe5e\x08\x84\xfd\
+`\x08\x13\x84\x22\x81m\xeaF\x0f'\x03\x98\xc5\x94\x13\
+\x0b\x10h.\x88\x06\x02\xc1\x04\x82\x14,@\x10\x8dF\
+\xfa\xcb3y\xf2@\xd0@\xe0t:\x10\x0c\xfa\x91\xcb\
+\xe5\x11\x8b%T\xa6)\x0c\xccd2`\x18\xe5X\x14\
+a\x0a\x1f\x12\xe4r\x12*\x1b\xbch\xb9\xba\x01\x0eN\
+\x86wl/\x1c\xd9\xae\x02\xe3Y\x96\x85(f\xd0\xd7\
+w\x0aCC\x1dH\xa5\xd2\xc8f3\xb1?\xfdi\xef\
+\xaf\xb6m\xdb\xfc@,6r\x0e\xca0.\xcd\xfc8\
+\x80q\xea\x98\x06A\xf2\x99\xddG_\xfb\x97\x9f>\xfb\
+\xff\x06\x87\x13\xfd\x1a\xd3\x01%\x7f\x80!(\xe4\x11\xf0\
+\xd9< \x13\xe6l\xd7\xf0 \x00\x03H\x9c\x0e;l\
+\x9c\xad\x81\x02\x80yn!\x03\x80\xcc\x1a\x00,@ \
+\x9b@ \xc0(\x092*\xf3\x934\x08\xee\xbc\xf3\xf6\
+\xfb\xa3\xd1\xe1>=\xbe>} h\xc4\xb2,\xecv\
+\x1b\xce\x9d\x1b(0\x9eeYu&\xae6e\x8b\x81\
+\xdb\x99\xa7\xdc-\xe5\xfe\xbc(\x83\x10\x06\x9e\x80\x03\xab\
+n\x98\x07\xbf\x8f\x85#v\x08\xb6t\x07\x08\x9102\
+\xd2\x85\xae\xae\xe3H\xa5\xc6\x90Je\xb2mmg\x9f\
+\xdb\xb0\xe1\xe1\xef\x9c=\xfb\xc6\x09\xf5\xdd\x92&F\xd3\
+\x9b\x06\x82\x02\xf3\xb5\xed\xa9\x1d'\xce\xdc\xfa\xd7\xbf\xfc\
+it8\xdeO3]\xeb\xe5D\x1f|\x22\x90\xc1\x9a\
+\xa5\x85\xcda\x87\xc3\xc6\xd5[\x00\x80v\xe1g?\xe9\
+l\x02\x10\x98\xd5\x81&\x0d\xb4\x17OE\x22\xfd#\x1f\
+\xf8\xc0\xfb~\x12\x8d\x0e\xf5)zv\xfa@P~3\
+\xe0y\x1e\xa2(B\x10\xf2\xe08\xb6 \x01\xb2Y\x1e\
+\x0c\xa3\x1cs\x1c\x8b\x80GQ\xcbf\x10\xe4r\xca\xca\
+WN\xb7\x03+\xae\x9f\x0f_\xd0\x05\xdb\xc8\x01\xa4\xdb\
+\x9f\xc4\xc8H\x1f$IBOO\xcf\xd1\x07\x1f\xfc\xed\
+\x0f^x\xe1\xf9\xa7\xa1K8\xba\xe7\x9bE\x7f\xb9\xff\
+\x93\x00\x92\x91hz\xe4\xca[~\xfc\xbd#'z_\
+62]yG\xbb\xdd\x86\xfaJ\xff\x02\x8ea\xdcz\
+0Iy\xf7\x0a\xf5\x83\xde(\x9eZNg\x14\xcdM\
+\xd6!\x05\x02s\xdaX9\x10h\xea \x19\x89\xf4\x0f\
+\xdfq\xc7{\xee\x8fF\xa3}\xa4\x10[\x9f:\x10\xb4\
+-\x9fW>X\xad\xf7~\x06\xb9\x5c\x1e\x0c\x83\x824\
+`\x18F\x15\x88\xba\xdfM\x08\x01\x01\x03Q\x95\x02 \
+\x80\xcd\xc6a\xcd\x8dKP;?\x84\x0a6\x8e\x1a\xe9\
+\x5cv\xff\x0b\xbb\x7f\xbfi\xd3\xa6\xc7y\x9e\x8f\xa1X\
+\xba%J\xec\x93\xd45\xe6\xff\x0d\xdbm\x7f\xf3\xc0\x7f\
+m\x7f\xfe\xd4\x1f\xf5E0\xd4\x88a}\x00,\xc3\xe0\
+\xed\xeb\x16_G\x88\xa2\x22\x0a\xf5V\xdb\x0cz\x94\xd6\
+\x0c\x00`\xb6U\x00MT\xb8q\x22\xc30MmZ\
+\xcaS*\x12\x89\x8c\xdcq\xc7-*\x08\xb4\x10\xec\xd4\
+\x80\xa0\x89vm\xd3\xf56\x07\x9e\x17\x0a\xba_\xdb\xd4\
+61\xb5\x11\xc0\x0b\xb2\xf1\xd9\x00\x9a\xd7\xcc\xc3\xbc%\
+\xd5\xa8rd\x9d\x1f\xb9\xa6\xf2\x1d^'\xc3\x96x'\
+\x0d\xdc\xf4o\x1a\xf4\xe6N`\x05\x82\xd4]\xf7<\xba\
+\xf97\x8f\xee\x7f\x84\xe7\xf3\x19\xad.\xf5\x0b*q\xcd\
+\xbb[\xe0\x0fy\x0cL\xa7U\x01\x8c\x8c/\x9ad:\
+\xa7y\xc7\x93\x04\x01\x0f\xbd\xc7d\xa0\xf7\x8cT$\x12\
+\x19\xb9\xfd\xf6[\xee\x1f\x1eV@0U \xd0\xe7=\
+\x1e\x17l6\xc5Z\xcf\xe5\x04\x83\xeeW6u\x81\xeb\
+B\xc4U\x05\x02!\xca\xc7\xa5\xa0\x1a\x96ZC\x83`\
+\xc9\xaaF,_\xb7\x10a\x9f\xbb\xee\xde\xbf{\xd7=\
+k\x97T\xd5Q\xef\x94\x85Q\xcai\x9b\xf6?\xfd\xee\
+\x93\x01A\xf2\xeb?|f\xcf\xe7\xbf\xfe\xfb\x9f\xf1\xd9\
+\x5cF\xab\x8b\xbf\xc2SH&\x81\xe6\x05AQ\x17B\
+N\x1aD1\xf3\x0d4\xe7\x89\xe7\x14\x08\xe8\x8f&\x96\
+R\x07ZO)4B$\x12\x19\xbe\xed\xb6\x9b\xef\x8f\
+F\xa3}\xc6^^\x0c\x04\xbd\x17h\xe2\x9f)\x80\xc3\
+f\xe3TQ\xafd\xe8\xd0\xbd_\xbbN\xc8\xcb\xea\xc0\
+\x8b\xd1\x13\x10%@.X\xe1\xc6g\xd5/\xa8\xc4\xea\
+\x1b\x96 \x10p\x85>\xfd\xfe+\xfe\xe9/\x96\xd76\
+\xc2\xe8\xf9\xe4Jl\x02\xb5/g \x1b\xd4\xc5S;\
+O\xb6~\xf8\xee\x07\xbe7\x14M\xf4\x19\x98\xae\xb5\x85\
+j+\x8cD\xc6\xc1\x8b\xd2\xe0D\xfc\x99\xfb\x99\x07(\
+\x92\x04t\xe6\x0a\xddPZo0\xbb\x88\xa9H$\x12\
+U@0\xd4W,\xeeu \x18\xff\xd7{6-\xe6\
+\xb3Y\x01\xb2\x0c\x93j`\xe0r\x88`\x0b\xd1\x14\xbd\
+\x97\x135\x00+\xe6e\xfd\x7f*\xd6@\x08AMC\
+\x08W\xbfk9\xdc\x1e\x87\xfbo\xde\xb3\xfaGw\xbf\
+o\xf9M\xb0H\x9b/\xb3\x99\x81Pd\x17\x81\xf2\x96\
+^:\xdas\xee\xe6\x8f\xfe\xecG\xdd\xbd\xb1\xb3\x05\xa6\
+\x17\x5c_\xa5\x8ebND<)t\xc0h\x90\x17E\
+\xfd\xce\x0b\x00\x00Ku\xa0\x01\xc0\x0a\x04\xe6\x06HG\
+\x22\x91\xe8\xad\xb7\xdelR\x07V@\x80\xc1\x00d\x18\
+\x06\xc1\xa0\xd7\xd0\xfbi@h \x008$2.\x83\
+\xfb\x08\xa2\x03B\xc8I\x06\xa6\xd3\x01\x19\x86\x10\x04\x82\
+^\xbc\xed\xbdW\x22\x10\xf2a\xed\xb2\x86/~a\xfd\
+\x9a\x8f\xc2\xca\xa0\xa0\x9a\x04\xd6@(\x1583H\x83\
+\xbe\xa1Dt\xed-\xf7\xdew\xecd\xcfA30\xf3\
+9\x11\xf1\xb1\x14^<\xd9\xbb\x03\x16\xb9\x82\xd4\xf3\xcf\
+\x1f\x00\x80\x926\x01\x0d\x00s\x0f0\xb9\x88\x91\xe8\xad\
+\xb7\xde\xfc\xe3ht\xc8\x22N\xa0\xf7|]\x0d0\x05\
+\x10\xb0,\xa3\xa6e\x93\xa2\xde\xcf\xb2\x0c\xf8\x9c\x84?\
+\x1d'\xe8\x8eh+\xb1\xa9v\x92\xaak\x85\x5c\xde\xc4\
+\xf4b\xdf\xdc\xedu\xe2\xba\xbf\x5c\x85`\xc8\x87\xa5M\
+\xe1\xcf\x7f\xef\xaek\xff\x15\xc6\x05\x9e4?\xbc\xa8i\
+P^\x1a\xd0\x12\xd1\x00\x84\x9b\xd6\xff\xec\x97[\xb7\x1f\
+\xdd\xa8\xabC\x16\x83=#\x88\xa7\xf8\x13\xbb\x8ft\x9f\
+\x81q$\xd00$\x8c\xd9\x0a\x05O\x85&0\x0c\xcd\
+\xba\xd0\x1c6N\x0e\x0c\x0cDo\xbf\xfd=?\xd2\xd5\
+A) \xe8\x9b$)V|&\xc3\x17\xf5|\x86a\
+02\xd2\x877\xde8\x82\xe8\xf0\x10\x9e\xda3:~\
+\xbam\xf0,\xa1z?@ \x08\xb2%\xd3\x09CK\
+\x05\x02\xbb\xc3\x86w\xdcz\x15\xe6-\xaeC8\xe0\xbd\
+\xf5\xfbw_\xf7\xf3\xcb\x1b\xfda\xe8\xfe\xb8\xd9%\xd3\
+\xda\xc2,\x195\x10\x98\xa3\xa7E\xc6\xe1]\xf7<\xbc\
+\xe5\xd1-/\xfdG.\x9fO\x89\xf9<^>\xd4v\
+\xe2\xbeG\xf7}\x13\xa53\x84\x0a\xea`V\x06\x83\xa6\
+C\xc4\xd8\xc2V\x03H\xda\xc4\x13:\xd9\xb40\x8a\xd8\
+\xd0\xd0P\xf9\xcc3;\xbeTYY\xd3`\x1c0\xd2\
+\xc6\xdb\xfb\xf0\xdf\xff\xfdt\x01\x04W\x5c\xb1\x14\xc9d\
+\x8a2\xe0\x80Tj\x1c}}g\x91J\xc5!\x8a\xf9\
+l__\xff\xa1}\xfb\xf6\xec\x01@>\xf7\xa9w\x5c\
+\xf9\x89\x0f^}\x87,kB\x80\xa0\xbe\xd6\x07\x1b\xc7\
+h\xf5\xa7\xaao=bw\xfah\x07N\x1dmC:\
++\xb4\xfez\xcb+\x7f\xd5\x1a\xc9\x0cA\x01\xb8\xd5\xe8\
+\x9c\xa1y`\xf1I>S\x9b8\xd5c\x87\xdaf\xcc\
+g\xfe\xeam\x8b\xfcn\xbb\xebG\xbf~\xeeU\x18\xbd\
+\x10m2\x89\xf6\xec\xc2\x80\xd4\x05\x03\x000!\x08\xac\
+\xe6\x1dX\x80`\xe7\x97\xaa\xab\xab\x1b\xf4\xa4\x10e\xdf\
+\xd5\xd5\x87\x87\x1ezZ\x95\x10\x12\xaa\xab\x9dp\xbb\x83\
+\xb0\xdb\x9d\xc8\xe5\xb2\xe8\xed}\x03ccQ\xc8\xb2\x8c\
+x<q\xea\xc0\x81\x03\xdbFG\x87F\x00u\x82\x22\
+@\xee\xfa\x1f\xd7\xae\xfc\xe4\x87\xae\xfb\xb0\xc3as\x12\
+\x02T\x86\xdc\xf0z\xf4\xef\x09[1]\xff\xa5\x5c\xd0\
+}\xb6\x1f\x87_x\x0dY!\xd7\x7f\xf0\xf5\x9e\xcfn\
+\xda\xd7u\x14F\x10\x98{\xa6V\x84\xd6&4\x08\xe8\
+\x8e\xa1mv\xea\x1a\xa8e\xd06\x15\xedv\xd2#\x82\
+\x22fk8x&T\x02\x04Z\xa2)=\x05\x8d\xce\
+1,\x0c'744T>\xfb\xec\xce/WU\xd5\
+4\xd0I!\xdd\xdd\x03x\xf8\xe1m \x84@\x10F\
+\x90\xcb\xc5\xa0\x0c\x15\xeb \xc9\xe7\xe5\xd8\xb1c\x877\
+\xb6\xb6\xb6\xb6B\xef\x8d2U\x17\xee\xe6w,\x9d\xff\
+\xad{n\xff,\xcb\xb2\xae\x80\xdfa\x98\xbae\xc5p\
+\xe57\x01}\x22:0\x8a?\xedx\x05\xe9t&\xf1\
+\xe2\x89\xbeO<\xbe\xaf\xb3\x14\x08hI@\x1b\x90t\
+\xa7\xa0\x81\xa0\xed\xcd\x00\xb0\xb2%\xcc\xcf\x12q!l\
+\x003\x95\xb1\x094\x11I#\xb9\xc8E\xec\xeb\xeb\x8b\
+\xbe\xef}7\xff0\x1a\x1d,\xb8\x88J\xe6\xae\xf6Q\
+h\x09\x82\x10\x83,K\x90$IM\xd1f\xd0\xdf\x1f\
+\xd9\xf1\xe4\x93O\xdc\xdb\xda\xdaz\x0c\xc6Q:\xc3\x08\
+\xdd\xce\x17Z[?\xf0\xb7\xbf\xf8V,\x9e\xee\xcb\xe5\
+\xb4\x88\xa01\xecJ\x07\x872)\x01\xcf?\xf9\x0a\xe2\
+\xc9\xec\x08Q\xad\xf3\xea\xfaJ\xdct\xfb\xf5p\xbb\x5c\
+\xbe\xebW6<\x0a\x9dy\x9a=`\x88\xceY\xb4\x87\
+\xd9S\xa2E;\x1dR\xa6\xdbF\x9b>\xa6\xa5\x86\x15\
+}\xad\x1c8\xcf^@)\xb2\x00\x01\x8d\xe2r.\xa2\
+\xe2\x12\xf5\xf5\x0d\xbd\xff\xfd\xb7|?\x91\x88\x8f\x98\xe3\
+\x00<?\x0cY\x16\x0b\xf6A&\x93o\xdb\xbe}\xfb\
+\xb7\xf6\xec\xd9\xf9\x87l6=\x04\x85\xf9\xe3(\x06A\
+ap&\x1aKG?\xf5\x8f\xffu\x7fk{\xe4\x84\
+\x15\xd3\xe9\x80L\x7f\xd702i\x01\xcf\xec:\xb1\x9f\
+\x1e\xbc\x09U\x05q\xd9\xb2y\xe0X\xd6\x07E\xa2\xd1\
+#t\xe6Q\xbaR\xf9\x15t\xcf\xb62\x96\xe9P\xb3\
+&\xfa\xadr\x02\x0b \xb8(\x00\x00\x94\x05A\xa9`\
+\x91A\x1a\xf4\xf6\xf6\x0e}\xedk\xff\xfco<\xcfg\
+\xb4F\x97\xe5<x~Te>\x9b\xe9\xee\x1e|x\
+\xf3\xe6\x0d?\x18\x1e\x8et\xa1\x98\xe1\xe3(=F\x9f\
+\x88\x0c\xa5\x86\xd6\xdf\xfd\xeb\x7f\xdf\x7f\xb8c\x8f9\xd4\
+LG\xe1\x92c\x19\xe4s\xf9\xec\xe1c]Qs\xd0\
+\xc8\xae.9\xbf\xa8\xca\x19\x82.\xd2K\x86iQ\x0c\
+\x84R\xae\x22m\xf0\xd1af\xed\x1a\xda\x0b(\xa8\x19\
+Y\x96/\xbc\x0a\xa0i\x0a \xa0\x07\x5c\x0a\x92`\xd3\
+\xa6\xc7N}\xe9K_\xf8\xae \xe4\xd2\x84\x10\xa4\xd3\
+C`\x18\x1bb\xb1\xccs[\xb6<\xf1\xe5\x03\x07v\
+\xeeFq&N\xa9\xbd\xf9\xba$\x80\xe4\x9d\x9f~\xe0\
+\xe1\xff\xdap\xe0\xa1\xc2\xbc>S\x14\xcef\xe7\xe0p\
+8\x9c\x12d\x16\xa0\xc3\xd5\xac\xe2:\x12\x06\xd7,o\
+Z\x81b\x15Pn\x11h\xf3\xd0:\xdd&\xf4\x98\x0a\
+\xbd\x99\x19\xafI\x00P\xfb\xd9]*v6H\x96\x0d\
+K\xd2HP\x1af\xa2Y\x9f\xda\xb5\xf9M\x9b\x1e;\
+i\xb7\xdb\xbf}\xf7\xdd\x9f\xff6\xcfg\xa3\xaf\xbe\xfa\
+\xf2\xaf[[Ot\xc28\xf6\xa0\x01\xc9\xca%\xd3\x12\
+5\xe9\xc4VCC~\xe5{[\x9f\xeb\xec\x8e\x0e\x7f\
+\xeb\x9fn\xff\xac\xd3i7|*,\x10\xf2\xa2\xafs\
+\x08\x7f\xb9\xf6\xb2\xeb\x08a\x0d\x9eB(\xac\xe4\x13\x8a\
+\x0a8\xe8\xdeo\xfc\xbe\x0dL\xb9\xfbz{\x00\xd4G\
+\xa3\xa8\xf6\x01\x8a\xc1c\x0e\x01\x1bt\xbfV\xf6E\x07\
+\x00`B\x10\x98\xdd\x96\x02\xf3\xd5-\xf7\xe8\xa3\x0f\xbf\
+v\xeaT\xeb\xe7\x8f\x1e=\x1cU\xaf\xd1\x98\xa71\x9b\
+\x16\x8f\xf4,\x1a\xda\x0b\xd0\x98\x94\xa3\xca.\x00\xe1W\
+\x8f\x1c8:4\x9a\xfc\xf1\xfd\xdf\xfe\xe8\xff\xaa\x08x\
+B\xcac\x08j\x9b\xc2h{\xbd\x07k\xafY\xd2L\
+\x87\x8e\x01\xc0\xee\xb4\x83\x10\x06\x90I\xa9\xe5\xdf-%\
+\x80\xd6\x1e\xea^{g\xcdf\xa0\xdb\x83\xb6!\xe8\xf6\
+1\xb4\xd9\x8cg\x06\x9d/\xb2p\x11\xe9\x00\x89\xe6\x0e\
+i\xbe\xb0\xb6\xa7-l\x8dh\xcf\x82\xd6\x9f4s\xad\
+2uiW\x94\x9e\xdf\xa0\xc5$\x5c\x8du\xfe\xf0s\
+\x7f\xf8\xd2Wj\xab\x02\x8d\xda\xad\xf9\x5c\x1e6\xbb\x8d\
+~\x0f\x00\xc0P\xff\x08v?\xb9\x1fO<\x7f\xea\xd3\
+;\x8f\xf6jK\xbe\xa4\xa0\xebmC\xee\xbey\x1e\x9f\
+\xa9M\x0a\x7f\x95m\xc42\xcc\x07.\x22#\xd0\x8a\xca\
+\xd8\x04\xb4!\xa4\x19@\xe6\xb1\x03s\xda\x15\x9dq\xa3\
+Y\xca\xb4\xb5,Xl\x1ac\xe8!ZC8\xb6w\
+ \x1e\xbdi\xfd\xfd\xf7\x1d;\xd1}P3\xfalv\
+\x9b\x1e\x92\xa6<\x85hd\x14\x0ca\xb0\xf3ho\xdb\
+,\xb4\x89U\xfa]\xd1fq\xbd\x81.j\x00\x00\xea\
+\x1b\x18S\xcch\xc3\xd0*N`\x1e93\xa7`\xd1\
+n\x12\xed'\xd3\xd2\xc0\xec~\x96\x1c\xa0\x02\x90\xea\xed\
+\x1f\x8b\xbe\xe3C\xf7\xffj\xc7\x9e\xd7\xb7\x99\x99nH\
+\xd2 \x04\xa2$\xcfx\x05p\xaaM\x0a\xc7\xa5\xc8|\
+\xbd\x99.z\x00hd\x91gH\xeb}\xab\x84\x0as\
+*\x96U\x8f7\xab\x00\xb3\x95]\xce\xfb0\x03-\xb9\
+\xfe\xee_=\xf6\xbb\x8d\xfb~[\xe4\x1e\xaa\xbf3\x89\
+,\xc6S\xc2k(1\x7f\xffB\xd0Ei\x04\x96\x22\
+\xca\x08\x02\x8c\x8d\xa7\xe9\xf8r.\x95\xf9\xc3\x8b\xda=\
+\xa5\x92%h\x83J\xa2\x8e\xcd 4$}\xfc\xefo\
+<\xb6\xf3\xd0\xd1\x8e\xce_\xdc\xfb\xc9\x7fv\xd8mn\
+=<\x0c\x0cGb87\x14\xdfO]O\xbf\x83\x8c\
+\x0b\x00\x887\x15\x00\x80\x22\x10\xd06\xc2d\xdc\x22\x9a\
+\xf9\x80\xd15\xb2jt\xedc\xcd\x80\x22\x09\xcc\x0c3\
+\x83A\x04\x90\xdf\xb0\xf9\xe5S6\x8e\xfd\x97\xef~\xf9\
+\xc3\xffPY\xe9\x9f\x0f(\xe3\x01C\xd1D\xc7/\xb6\
+\x1cy\x1a\xd6K\xb9\x94\xab\xc7\x9c\xd1E\xed\x05\x94#\
+\x93\x87`\x8e\xa5[\xc5\xd5\xcd`14\xb8YGN\
+\xe0\x81hk#\xd1\xf3\x1e\xcd\xc3\xb4\xdc\x92E\x95\xfe\
+}[\xbf\xfe=\xaf\xcb\xb1\xe8\xd9?\x1cx\xed\x0b\xf7\
+o\xfeZ\xffp:\x0a]Ei*\xa9(\x16QJ\
+g\xcf6\xbdi\x01\x00\x141\x09\xa6c3\x00\xe8}\
+\xe1\xb8\x5cC[\x80\xcc*o\xa1\xd4\x10\xad\x16\xeb'\
+w\x7f\xe4\xfaE\xbf~\xfc\xc5V\x14g\x0ck\x86h\
+\xd1\xf4\xedK\x00\x98\x02\x99|\xe3r~qY\x97h\
+\x82\xf2\xe9\x8d\x96\x04t\x02\x0b\xbd\xd1a^\xf3\x10\xad\
+9VO\x07\xa2&\xb5\xbc\xdbl\xd1\x9b\xce\x06\xb0\x22\
+Cd\xab(NR|\xcdt\xca7\x95KG%K\
+\x0d\xd6\xd0\xa1^\xed<=\xc4m\x1e\xa5+\xa8\xa5\xf3\
+\xc5|\xe0-\x02\x00\x9a\xe6\xaa\xf1J\x18\x9ffOD\
+\x03\x81\xc6|:\x09T\xeb\xe1y\xd3vA\xdd\xc1\xb7\
+\x1c\x00\xe6\x92,\xdcPm\x8c\xc2,\x05\xf20&}\
+jDO\x8c1\x8f\xd2]\x10]\xfc\x96\xb0\x01\xce7\
+\x95\xf0@\x18\x14\x8f\xee\x95J\xf20\x07\x82J\xae\xe3\
+7\xd7t\x09\x003\xa0\x12\xae\xa2\xd5\x06X\xc7\xea'\
+\x5c\xc9s\xae\xe9\x12\x00fH\x16\xae\xa8UL\x02(\
+vE\xe9\xe8\xe2\x05a>p\x09\x00\xb3Be\xdcP\
+\xabhd\xd1\xf1\x85b>p\x09\x00\xb3J\x16c\xf5\
+\x13\xd2\x85d>p\x09\x00sF\xe5\xc0p\xa1\x99N\
+\xd3%\x00\xfc\x99\xd3\x9b&\x1f\xe0\x12\xcd\x0d\xfd\x7f\xc7\
+\xc0 \xf9A,]\x89\x00\x00\x00\x00IEND\xae\
+B`\x82\
+\x00\x00>\xa7\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3>a\xcb\
+\x00\x00\x00\x09pHYs\x00\x00\x00H\x00\x00\x00H\
+\x00F\xc9k>\x00\x00\x00\x09vpAg\x00\x00\x00\
+\x80\x00\x00\x00\x80\x000\xe11\x9a\x00\x00\x00\x06bK\
+GD\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00=\xd0\
+IDATx\xda\xed}wXTW\xb7\xf7\xb5\xbe\
+\xd1D\x93\x18\x13\x937\xd1\x98\xc4\x98hL\xb0\xc7\xde\
+{G\xc5\x0a\x16D\x14\xectP\xaa`/tA\x04\
+APD\xc1^@E\xc5\x82\x15D\xa4\xd8+\xf6\xa8\
+\xc9\xfb\xdd\xfb\xbd\xf7~\xff\xeco\xad}\xd6\x1e\xf6\x9c\
+93\x0ch\xd4\xe4\xca\xf3\xac\x07ef\xce\xcc\x9c\xdf\
+o\xad\xbd\xda^\xfb?\xfe\xe3\xdd\xcf\x9f\xf6S\xfd\xbb\
+_*\xa1\xbc\xbb\x13\x7f\x91\x9f\xfa\x8d\x7f\xae\xf4\xd5\xf7\
+\xcdP*\xab\xa4\x12>\xf6\xee\x0e\xfd\xdd\x00\xff\xe1\x97\
+J \x95%\xa9JRM%\xe2\xef\xe2y\xef\xc8\xf0\
+W\xfei\xf0\xa3E%\x90\xca$\xd5@\xaa\x83\xfc\x03\
+\xa4\x06\xc8\xfb$\x1f\x90\x88\xff\xd7\xa0\xe7T\x13\xaf}\
+w'\xffr\xc07\x07\xe0\x9b\x03x\xcd\xab\x80\x00\x90\
+\xcd\x01\xd0\xe65Aj\x81|\xd4n\xc0\xf8o\x06N\
+\xf1\x1a:|F\xa0\xe70\x07\xff\x99\x03m=\x87\xc1\
+\xdf\xeb\x81|\x0aR\x07\xa46=\x1f_W\x95\xae\xf5\
+\xce\x1a\xbc! +U\x10|\x01<hu\xf3\x0fA\
+\xea\xf6\xb1\x9e\xd7c\xe4\x9c%\xfbF;\xad`j\x19\
+5o\xf9\x1f\xc3\x1c\x03V\xc1\xf3\xbe\x06\xf9\x02\xe4\x13\
+\x22\xcc{\xefH\xf0z\xb5Vhn\x15\xba\xf1U\xe9\
+\xdf\x95M\x81 \xbd\x1e\x9f_\x9d4\xb86i\xf5\x97\
+C\xa7\xfb\xfa!\xd0\xd6n\xc1\xcc/b3\x8b\xdfq\
+\x84\xed?\x96\xc3v\x1f9\xc76\xc0\xbf\xfd\xe1o\xf8\
+\xb8\xd5\x9c%E\x16]\x06\xb6!\x22|F\xd7\x10$\
+xG\x80?\x11\xf4\xaa\x92\xd6\xe2\x0d\xaf\xa1\x92\x7f\x10\
+\xb0:m\x14\x80\xa8\xb4\xfe=\xd2\xdcOZ\xf7\x1e\xf9\
+\xc3\xe0\xa9\x0b\x9c\xac\xe6.\xbb\x87\xe0z\xacJd\xa9\
+\x07N\xb1\xbdY\xb9,\xe3D\x1e\xcb<\x95\xcf\x8e\x9e\
+-`'r\x8a\xd8\xa9\xbc\xcbl\xfd\xb6C\x9c\x04#\
+f\x05\x9d\x87\xd7\xff\x0c\xf2\x0d\x91\xa0\x16\xbd\x7f\x95w\
+$x\xf5\xc0\x0b\xd0k\x90\xb9F\x8d\xfb\x98L\xb0\x90\
+:d\xc6?\xa0\xe7\xc9D\x90\xd7\xfa\x9a\xf4\xbc\xcf\x86\
+\xd8{\xcfC\xb3\x8e\x80\xceX\xb8\x96E&g\xb0\xb4\
+\x83g\xd8\xae\xc3\xe7\x80\x009\x9c\x00\x87\x88\x00\xc7\x91\
+\x00\x17.\xb3\xb3\xf9WYtJ\x06'A\x1f\x1b\xa7\
+ \x22AC\xfa\x0c\xef\xd3{\xbc#\xc0+\x02\xbf\xaa\
+\xe4\x9c\xd5&\x90?\x03\x8d\x9d\x08\x1a\x18m5g\xe9\
+\xc9\x91\xb3\x17\xef\xb7\x9c\xb1pE\xa7a\x93;\xc0c\
+_\x916~LDx\x8f\x00\xa9&\x99\xfc\x8f@>\
+\x87\xd7oA\x10g\x06\xc6\xb0\xc8\xcd\x19l\xeb\x813\
+z\x92v\xe8,\xdbw,W\x93\x00\xb9\x85\xd7\x99\xbd\
+O$X\x81E7\xe0Z\x1dA\x9a\x80\xfc\x93\x88\xf5\
+\xce\x0a\xbc$\xf8B[\xab\x93&\xd7&\xed\xfab\x88\
+\xbd\xcf\xdcQs\x97\xdd\x15N\xd98\xd7`\x90\xd5:\
+'\x0d\x009`\xd1uPKxn}Z\xd7?$\
+\xd0kH\xe0\x7f\x01\x84\x89\xc3\xe7/Z\xbbM\x0f\xf4\
+\x8c\xec|.\xf2\xdf\xf6\x1f\xbf\xa0\x10\xe0\xbc>\x01\xc2\
+\x92\xf6\xf2\xf7\x84\xeb\xf5\x03iIK\xc1'\xf4^U\
+\xcd\xf0CLI\xa5wZ\xafh0j\xf2\xe7\xfd&\
+\xb8\x8c\x02m/\xc4\x1b>\xd6e5\xb3\xf1\x8c`\x93\
+\xbc\xd72;\xbful\xda\xc28\xe6\x18\xb8\x9e\xd9z\
+\xaf\xe1\x80\x80\x07_\xfcs\xa7\xfe\xed\x09\x90\xcf\xe9\x1a\
+\x1f\x8ak\x81\x97?\x0e\x9f7?d\x93\x0e\xe4\xd3\xf9\
+\xd7\xd8\x9d\x07\xbf\xb1\x92\xc7\xcfA\x9e\xb1\xdb\xf7\x9f\xb2\
+\xa3\xe7\x8a\xf8c\xa9 \x87O_\xe2\x04\xc8\x96\x08\x10\
+\xb3\xf5\x00\x7f\xbf\x1fZw\xb5!+\xf0\x03\x85\x89\xba\
+e@\xc3\xffP\xfb1ZRM\xb5tU\xfa\xdf\x04\
+\xbep\xd0\xb8g\xde\xc5\xd2\xae\x1d\x00z\x0ao\xf4\x18\
+\xe7\x95\xcc\xda#\x9c\x03/d\x0a\x11`FP<\x9b\
+\xbdd\x03\x9b\xb9(\x9e\x832l\xba\xdf^x\xbd\x05\
+\xc8wd\x9a\xebQ\xd8\xf6-X\x89\xb3\x93\xe7\x87\xe9\
+\xc0\xbfP|[\x01\xfe\xd13v\x8f\xe4\xee\xc3\xdf\xb8\
+\xa4\x9f\xbc\xa8\xb3\x022\x01r$\x0b\xd0\xb8U\x97\xa9\
+p\xdd\xee \xcd\xe8\xbdj\x91\xf5\xaal\x22\xd7\xf0\x01\
+}\xc7\x8fTR\x9b\x1e\xab)\x91\x81G7\xff[\xc0\
+\xafA\xdaZ\xcf\xd21`\xa5\x12\x92\xadfN\xcb\x12\
+XP\xccN.\xee\xc1\x9b\xf5\x09\x10\x00\x16\x80\x080\
+oy\x12\x9b\xea\x1b\xcd\x81i\xd5\xd3r\x14\x5c\xa79\
+\xc8\xf7\xe4\xa4}\xf7k\xff\xb1}d\xd3\x8fZ^\x0a\
+\xba\x02\xfc\x1d\x14\xb0\x06\xb7\x1f<e\x17.\xdf\xe6\xcf\
+\xdb\x01N\xe1\xf1\xf3\x85\xa5\x04(@\x02\xec\x11K\xc0\
+D\x90\xdeD\xb8/U~@\x15\x8d\x5c\xc3'}m\
+\x9cz\x0c\x9d\xee7k\xf8\xcc\xc0eB\xfaOr\x1d\
+\x09\x11\xc9\x8fd\xb5>\xa1\xe7\xbe\xff\xb7O4\x11\x01\
+\xaa\x92\xe6\x7f(;hn+7\xb0\x8d{O\x1a8\
+h\x9b\xf6es\x22L\xf15$\x80\xf3\x8a\x8d\x1c\x98\
+\x81S\xbcv\xc2\xb5\xba\x80\xb4\x00i\x8a\xdez\xbf\x09\
+\xce\xfe\xf8XLj&\xbf\xce\xe5[\x0ft\xda\x8e\xa0\
+\x0b\xe0q\x09\xb8u\xff\x09\xcb\xbfzWG\x80c\x9c\
+\x00\xc5\xec\x0c\x11\xc0uy<\x03\x92>\x80\xebN\x06\
+\xe9Kd\xfb\x8a4\xf9=\x95\xe3\x89\x9a]\x17A\x97\
+}\x18-\x1913hk\xa7\xa1\x93:\x11\x99\xea\xd2\
+kk\xd0\xf5\xfe^$ \xf0\xab\x10\xcb\xd1t\xd6\x1b\
+2\xcd'@\xed\xa0\xed\x87p\xec\x5c\xc1M\x90\x1b`\
+\x8e\xf3t\x7fw]\x95l@\x00\xd7\x95\x9b\xd8\xe4\xf9\
+\xe1\x0c\xa2\x83'p\xbd\x81 \x9dA\xda\x82\xfc:\xd0\
+\xd6#\x01\xaf-^\x7fG\x07\xfcS=\xe0o\x95<\
+a7A.^\xb9cH\x80\x8bW8\x010\x0a\x18\
+0\xd9=\x07\xae;\x09\xa4\x0fY\x00A\x00\xe1xr\
+?\x06\xfc\x8e\x9eVs\x97\x16\xe0{#q\xe2\xd32\
+Y\xfa\xd1\x5c\x96u\xaa\x80\x1d\xcc\xcac{\x0f\xe5\xb0\
+\xe8M\x07\xd8\xfcU\x1b\xd9xpj14\x1dh\xeb\
+\xe9A\x96\xab\x1e)\x86\x8e\x04\x7f7\x02T#S\xf7\
+I\x8b\xee\xc3~\xc6/?o\xc9z\x1dH\x97\xae\xdd\
+cO\x9f\xff\x8b\xcb\x93\xe7\x7f\xb0'\xcf\xfe`\xc7r\
+.\xf3\xc76\xec:\xce\xec\x89\x00\xb3\x88\x00.@\x80\
+\x19\x81\xb1\x5c\x9b:\x0c\xb2\xf1\x87\xeb\xf6\x07\xe9\x01\xd2\
+\x13\xbc\xffK\x18\xf6\xe1k\xf7\x1e\xbb \x81\xfeT\x07\
+:\xca\x8d{\x8f\xb9\x9c\xbax\x8d?wOV\x8eB\
+\x80\x5c\x85\x00\xd9\xb9E\xfc\xfa\xbd\xc6\xcd>\x08\xd7\x9d\
+\x00\xd2\x0b\xe4\x17\x22\x80\xa8\x13\xf0\xd4r\xefqsz\
+\xe3w\x9a\xe8\x11\xc22\x8e\xe5\xb0K\xc5\xb7XN\xfe\
+uv\xea\xfce\x85\x00\xc7.r\x02l\xdf\x7f\x96m\
+\xd9\x95\xcdb6\x1dbv\x0b\x22(\xcf0o\x0e\xf9\
+1\x9f\xd3\xf5\xfe>\xd9F\x95\xf6\xe3\x97\xfb'\xc4\xf7\
+\x8bd\x13\x8d\x0e\xda\x13\x04\x1e@\x7fL\xf2\xe8\xb7\xdf\
+\xb9\xec:\x9a\xc3\x9f\xe3\xbcbS)\x01\x96)\x04\xf0\
+\x80\xe5a\xac\xcbJ6h\x8a\xd7I\xb8\xeeh\x90!\
+ C\xc1*<\xc6e\x05_w\xf0\xd4%=m\xbf\
+I\xa0\xa3\x5c\xbf\x8b\xf2\x88e\x9e)\xe0\xcf\xc5|\x80\
+L\x80\xed\x07Oq\x80\xda\xf4\x19\x15\x05\xd7\xb5&\x82\
+!\x01\x1aP\xf8\x89\xa6\xfb\xf3\x9ecf\xf6\xe3\xe0{\
+\x86\xb0\xec\x9c\x22v\xf5\xc6=V\x00~\x85\x01\x012\
+s\xd8\x8et \xc0\xeel\x96\xb4\xed8[\xbb)\x93\
+M\x99\x1f\xc1`\xb9\xf8W\xb3\x8e}\xd1\x82}+e\
+\x1b\xab\xff-\xf2\x0c\xd2\xda_\x83\x9c\x9eo\x86\xcf\x08\
+<,<\xf4m\x99\xe7J\x81'\xd0Q\x1e>Ey\
+\xc1N^\xb8\xc2\x9f\x17\xb21C!\xc0b}\x02\xd8\
+\xf9\xaca\x10:\xfe\x17\x5c\xd7\x0eA\x02o\xdd\x1eA\
+\xf3\x8f\xdc\xc2_w\x02^/k\xfb\xf5{\x0a\xe8\xd7\
+P\xee<bW\xef<d\xfbh\xb99p2\x8f\x1d\
+;W\xc8N\x12\x01B6\xec\xe6\x04\xf8\xbeE\xc7\x05\
+p\xedqD\x00\x0b\x0a=q\xed\xae?\xc8n\xbe\x0b\
+>\x07\xbfOj\x86\x92Z\xde\x0e\xdfi\xc7\xe1\xf3l\
+'\xc8>\xb0@\x87N\xe4s\x02\xec\x93\x08\xb0\x11\x08\
+\xb0>\xe5([\x19\xa38\x99\xe0\x1c\x86I\xe4\xaaS\
+V\x9e\xe1\xafh\xfe?\xa0u\xee\xc7\xe13\x83r\x85\
+\x89>\x90}\xa9\x14\xf4\xdf\x14\xd0\x1f\xa0<y\xc1\xee\
+?y\xce5V8\x84\x0eD\x80\xb9\x12\x01\xe6,Q\
+B\xc2\x1e\xa3\x1d\xb7\xf5\xb1q\xda9\xc4\xde'\x17\xff\
+/\xb2~y\xb0\xbe\xcb\xda.\x03\x7f\xf5\xf6Cv\x05\
+D,C\x98\x07\x90\x09\x10\x10\x99\xc2\xe0\xb3\xfe\x0e\x9f\
+\xd9\x19d<-\x01\xad\xf0;`\xd4\x01\x96,\x08\xdf\
+\xcb}U\x22KI?\xc5v\x08\xe0\x8f\x9c\xe7\x96k\
+7\xc8\x1e \xc4^\xb0,\xfb\x8f\xe5I\x048\xa5#\
+\xc0\xda\x8dh\x05\xc2\x19.[p\xcd\x0e\x94g\xf8\x5c\
+\x1df\xfe\xd5C\xbf\xea\xb4^b\xfc\xfc3\x84Cy\
+\xa5\x04\xc8\xd7i\xbb\x0c\xfc}\x9e\xacQ\x126\xb8\x8e\
+\xe3s}\x22\xd2\xf4\x08\x80\x11\xc2\xfc\xb0-l\xbc[\
+\xb0\xce\xbb\xb6q\x0ffv\xde\x91\xba\xa8\xa2\xe8F\x89\
+\x02\xfa]\x02]\x02\xfe\x0aD\x07y\x14\x02\xa6\x1d<\
+\xcb\x09\x90E\x048\x0d\x04\x98\x19\xb8\x96\x0ds\xf0\x7f\
+\x0c\x9f\xd9\x8d\xc2\xc0\x01\x94\x0cj\xd5g\xfc\xdcyJ\
+Q)I\x07\xfa!x}N\xd1MV\x00\xfe\x8c\x10\
+L>e\x9c\xbc\xc8\xd2\xc1\xc1\xdd\x9fu\x81\x13`+\
+\x11 ~\x8bB\x00\xa7\xc5\xf1\x0c\x9c\xc7\xff\x94\xc2\xcc\
+\x06\x94\xd0z\xef/\xbb\x0c\xa82~\xef\xd1\x17\xc2\xd4\
+msX\x02.\x0a\x02\xa0\xf9\xd5\x81.\x03/%l\
+\xce^\xba\xc1\x9f\x1b\x99r\xc8\x90\x00\xa1[`I\xd8\
+\xc0\x5cW$\xb2\x80\xa8mli\xdcn\xb6j\xc3>\
+\x9dV\xab\xb5\xfd\xca\xed\x07<,D)\x06\xc9&\x07\
+\x10#\x80\xc3\xa7\xf3\xf5\x08 H\x05K\xcc\xff\xed?\
+\xc9\xed\x80E\x97\x81\x0e\x98\x12n?p\xbc\x1d\xae\xdb\
+\xd3\xfd\xa2x\x06\x11\xb5\x1d\x1dI\x19x\x9d\x5c\xbf\x07\
+>\xce-N\xf4\x83\xa7\xf2\xd9\xae\x03\xe7\xd8\xd6=@\
+\x80\xed'8\x01b\x80\x00\xee\xcb\x12E\xae\x01}\x98\
+_\xc9!\xacKQ\xc6\xdb\xbf\x0ch\xe4\xbd\xab\xa8R\
+\xa1\xef\xd3\xfa\x8f\xe1N\xabAv^;\xf0\x0b\x0b-\
+Ep\x84\xb6k%l\x10@\x01(\x82\x8f\xe2\x8c\x04\
+X\xad\x10\xc0'\x22\x95\x83\x1f\x14\xb3\x83\x13 lS\
+\x86\x8e\x5c\xb2\xb6\xeb\x80\xbfy\x9fK\xd1\x8d\xfb\xec\xe8\
+\xb9b\xfe\x5c4\xd7z\x04\xc8\xbb\xc2\xce_\xba\xc6R\
+\xf6\x9f`AQ[ud\xb0t\x5cx\x09\x8bC\xd8\
+K\x80\x15E4\xf1\x98hB\xa0e\xd0\x85\x14\x92d\
+\x83/\x92\x09\x16b\xdf\x91\x5cN\x80M\x12\x01f\xf8\
+\xaf\xc5\xfa\xc63\xb87V \x98\x1bh,\xa5\x9b\xdf\
+^\x02h\x94r\xabK\xe5\xdc\x9a\xf4\x05jQ\xcc\x5c\
+\x8f\x98\xdd\xa6m\xbf1\xb3\xf0f._\xbf\x8b\xdf\xfc\
+\xe3\xb9W\x0c\xd2\xb3\xea\x84\x0dz\xf3\xf8\xdc\xc0\xb5;\
+8\x01\xfc\x01\xf0\x95\xa0\xe9\x11\x9b\x0f\xb2\xf5;\xb2X\
+\xe2\xee\x13\x06\x89\xa4#g\x8b\xf4\xb4\x9d\x83N\xc0\x17\
+\xc2\xd2\x80\x22\x96\x97\xfd\xb0Ngr\x02\x14\xe8\x11\xe0\
+B\xd1\x0dv\xe9\xca-^\x17\x88\xdf\x9e\xc9\xa6\xf9*\
+\xb5\x88\xc4]\xc7\xf8k1\x82\xd0\x02\x5c-g/]\
+gG\xcf\x16\xb2\xf4\xac<\x89\x00Y\x10\x0ef\xb2\x89\
+\x1e\xa1\x0c\xfc\x09\xf4\x01\xc6\x80t\xa5\xaa\xe3\xe7\xe47\
+\xbd}e\xe7\xb2\xfa\xecH\xdb\xebRH#\xf2\xf3\x0d\
+\xc8yj\x072h\xc4\xec\xc5O\xc52\xb0\xebH\x8e\
+AzV\x17\xb7\xdfW\xc27L\x0e\xe1s\xb5\x80\xd6\
+\x12\xd4\xfe\xc2\xeb%\xa5\xda\xae\x02\x1e\x1fC\xc0\xb0\x1c\
+,,\x00\x96\x84\x91\x00\xd8\x14\x82\x048G\x04\xc8\x07\
+\x02\x14]\xbf\xc3\xae\xde\xbc\xc7n\xdc\xb9\xcf\xbd}L\
+T\xa1I\xbft\xf5\xae\x09\xe0K\xe0u%\xdc\x0f9\
+\x0f\x9f\xff\xd8\xf9\x22\x96\x01\xce`*\x11 ak\x16\
+\x0b\x08S\xacK\x97\xe1v\xc9\x7f\x09\x02\x98\xea\xb3\xeb\
+6rZ\xeba\x8e\x01\x0b\xb0~o5gI\xf6H\
+\x100m[z\x8f\x9f;\x9e\xd2\xb4-(c7\xa4\
+\xe7\xd8Y\xc9\xf8\xc5\xe3wfq\x00\x10$\xad,\x9d\
+\x08\xe1\xd0\x94\xef\xc9\xba\xa0\x03\x18M\xef\xa1\xd3\x05<\
+Y\x94[t\x0b\x9c\xaf[ej;\x02\x22\x80\x17r\
+\xf8L!'\x01\x86\xa3\x18\xbea\xd8\x86\xa6\xfat\xde\
+e}\x02\x5c\xbb\xc3\xae\x00\x01\xce\x17\x5c\xe7\x0e\xddA\
+X\xd3qm7\x05\xba\x90b\x90s`\x01N\x80e\
+9p\xfc\x22K\xdd{\x9am\xdaq\x82\xadK>\xcc\
+\xb5\x7f\xc4\xcc\xa0\x17pO\xe6\xbc\xd5K\x80\xa9>\xbb\
+\xd6\xbdF\xfc\x88E\x1d\xd1u3\xc6e\x15/\xe7\xa2\
+\x88\xb5\x13<\xff\xc3M\xdb\xf5\xeaG\x9e\xee\x88\x9f;\
+\xf6\xf3\x90S\xc1\x87\xc1<\x96\x95\xb0AO>\xb7\xf8\
+6\x07\xd7\xe4\xdanD\xdb\x8dIv\xdeU\xbe\xc4\xa0\
+%R\xc2\xb7\x5cn\xde\x8f\x82?\x80\xe9\xe0\xfc\xcb\x0a\
+\x01.^\xbe\xc9=zt\xe8r\x0ao\xea\x01\xaf\x06\
+]\x00_\xcc\xff}\x8f\x9d\x02\x8b\x92\x0d\xb2\xe7P\x0e\
+'@2\x10\xc0\xd1O)h5\xef:x\x0d\xdc\x93\
+\xe9o\xad\x13h\xac\xcf\x8e\xb2zN\x02\xf8qn!\
+l\xc2\xfc(\xbdR.\x8a\xb5G\x98h\xe4\xb8\xd6\xb6\
+\xef\xa8\xb9\x14S;b\x91\xc5\x1e\xd6T\x9e\x10:t\
+\xae\xcc\x84\x0d\x8a\x96'o\xae\xb6\x97%X\x14\xc2\xb0\
+\x0d\xc9\xb0\xef\xf8\x05^\x9b8\x00\x80cu\x10-\x01\
+Z\x06\x5c&\xce\xc0s\x8a\x10\xf4\x1b\xc6A\xe7r\xb3\
+\x84]\x069\x0b\x96\xe4\xf4\xc5\xab\xec88\x8b\x18\x05\
+\xa4\x01\x01\x5c\x97&\xf0{\xd2i\xe8\xa4\xbd\x14fN\
+\xa0ZC\xf3\xb7*\x0c4R\xc6\xfd\x8c7oP\x83\
+%o\xde\xf0\x8a4\x00^\x96\x09^\x8a\xf3\x84\xf1n\
+\xbb\xfe\xe3\x96\x7f\xdf\xa2\x93\xd7 \xbb\xf9ErJ\x18\
+\xcd\xb8~\xc2\xe6\xa1\xf1\x10\xae\x82\xdan\x8e\xa0Fc\
+<\x7f\x22\xf7\xb2.|;\x04\xa4@\x02\x9c\x02ka\
+\x0e\xe8\x97\xe1s\xa1\x5c\x80\xeb`e\xf1\x0c\x10 \xe3\
+h\x1e'\xc0bp`\xf1{\xc3\xd2\x98\x0b\xf7\xd2\x87\
+\xb4\xdf\x92r\x0c?\x92\xcf\xf4v$\x824\xc0\xff|\
+\xe4\xec\xc5\x19\x22\xfd\x19\x10\x95\xc6\xa2\xb6dB\xe8u\
+\x80\xf9\xad\xd9\xc6\xbbw\x8c\x92\x00\xac\x03.\x0fd\x0d\
+\x9e\x89\x8e\x1d\x11\x0e\x9e\x81u\xb2<\xda^\xf4\x12\xda\
+n\x8e\xe7\x8er\xf1\xf2mv<\xa7\x18|\x05\x8c\x0e\
+.+\xe6\xde(\xe8\x0a\xf0WPn\xdd\x07\x8br\x9b\
+\xfb\x11(X\x0f\xc88z\x81E&\xa5\xf3\xef\x0f\x0a\
+T\x04\xf7\x12\x9bM\xd1\x22\x8e\xa5,csjA\xff\
+\xe4\xadH\x05K\x85\x1c]\x0d\x7f\xf8\xcc\xa0\xadr\xae\
+\xddX\x0d\xdf\x18\x09&.\x88fc]\x839y\xe4\
+&\xcdLp\xe8^\x97\xb6\x17\x96%7JL\xae\xe9\
+\x08\xb8\x1a\xf4\xcb\x04\xba\x90\x82kw\xb9\xc3\x88]E\
+\xa7\xc0Q=r\xf2\x12K\xdey\x9c\xefE\x18\xe6\xe0\
+\xff\xb4Q\xf3\x0e\xc1d\xfa'Q\x86\xb1-5\xb5\xd4\
+{+Z\xcfU\xa6\x1f\xc3\x91O\xfb\xd8\xcc\x1b\xa3\x06\
+\x1fc\xed\xbc\xcbw\xb8\x88\xd6*\x14\xb4\x06\xc6H\xe0\
+\xb4b\xa3N\xeb\xd1\x03\xc7\x10O\x0d\xba:a\xf3\xb2\
+\xda^6\xe8\x04|\x19\xe6]\xcf\xc4\xdf\xd2\x07\x1d\xe5\
+*~\x07x<\x17|\x06\x94\xf3\xe0/\x9c<W\xcc\
+\xb5\x7f\xca\x82p\xece\xfc\xefF\x16\xed#\xe0~b\
+\x81\xc9\x1ed\x18\x99\xfe\xa6T`\xfaH\xea\x09\xa8\x22\
+z\x0e\xb5\xe4uj?~\xa8\xfa`\xfa\xcf\xc8}v\
+\xb8N\xaa\x1b-D\xf5\x0eeU\xe2~\x03\xf0\x91\x18\
+rw.\x82k\xae\xb6\x17\xbe&\xd0\xb5\xb5\xfd\xbe\x0e\
+\xf4\xcb\x06\xa0+\xc0_\x03\xc1\x7f\xe7\x15\xdfT\x04\xee\
+\xcf\xf9\xbck\xa0\xfd\xf9\xcc1 \x9a\x8d\x9c\xbd\xe4\x7f\
+~\xe94`3\xdc\xcb\x85 \xb3\xa9\x84-J\xcc_\
+K{\x0e\xaaK\xbb\xa0\xe4]Qj\xf9\xf3\x1aJU\
+M\x1c\x9fB\xa8\xd2B\x0e\xdbP\xf3\xb5\x126(g\
+A\xa3\xd1\xab\xc7\xe7\xad\xdbvT\xe7\x17 !\x04\xf8\
+\x18\xbf_)\x97\xb6\x97\xbc<\xe0\x22d+/\xe87\
+\x8d\x83.\x80\xbfvG\xf9}\xe9\xcam\xf0\x1bn\xf1\
+\xdf\xf9\xe0\xd4\x22\x01b\xb7\x1cT\x1aK\xc6\xce*\x84\
+{\xb9\x12\xc4\x83Z\xcc\x84\xe9oD\xa6_\xde\x88Z\
+]\xda\x19%\xb2\xaa\xb2h\xee\x90z\xd5\xce\x9f\xae\x8a\
+\xd7s\xec\xacIr\x99\x15C&\xad\x84\x8d\x88\xdb1\
+C\x86\x152|n\xc2\xae\xe3\xdcI\x14&\x1f\x0b'\
+ek{\x09\x81^b\x14\xfcB\xb3\x81/\xe1\xdan\
+\x14\xf4\x9b\x1a\xe6\xfd\xa6\xa1yWk\xbb\x00\xfe:\x97\
+\x87\xac\x10\xd6}\x04\xbe\xf0\xda\x1dv\x19\xc3J$\x00\
+|\xd7lX\x02|C\x939\x09\xda\x0d\x18\x97F\x8e\
+\xdf\x18\xea2\x16=\x00\xa2/\xf0})\x85\xfe!\xf5\
+\x06\xc8YU\xb1s\xf9\x13\xb2\xcc\xf2\x0e\xa9*\xaf\x84\
+\x08\xd2\xfa/\xbax\xea\xf7\x18=c\x8aL\x00\xec\xa3\
+3\x1a\xb7S\xe9\x15\xc1\xdd\x9d\x95\xab\xb7\x0b\x07;p\
+Mi\xbb,j\xa0\xf55\xbd\xc4\xc4\xef\x12\xa3\xa6]\
+\x0b\xf8\xcb*m\xd7\x03\xbc\x0c\xd0\xf17>\xa7\x18\xbb\
+\x80\xae\xde\x01\xe7\xf1.\xbb\x01\xcf\xb9\x02\x9f\x05\xdb\xc2\
+8\x01\xce\x17\xb3\xa3\xd9\x05\xcc\xd1?\x1a7\x9c\xfe\xbb\
+Y\x87\xbe\x18\xfa\x8d\xa4\xac\xe8OR\x87Q\x1di+\
+\x5c\xbd\xde\xe3\xe7\xf4\x1a1\x13wF)YU!\x98\
+t\xeb4\x847\x94\xd6'B\x88\x1dR\xaf\xa6\xb3X\
+\xd5\xc6\x85,\xfb\xba\xfb(\x87\xa9\xe5m\xb4\x10k{\
+\x16\xdc\x80tX\x071\x8bgL\xdb\x8d\x01oT\xa3\
+U\x82iYY\xb0\xce\x8fb\xcc\xbc\x17\x9b\x09\xfaU\
+\x03\xd0\x95u\x1e\x01GM/\xb8\xaah<\x0a\x82\x7f\
+\x19\xfe~\xeb\xeeC\x1d\x01r\x80\x00\xd8\x16v\x14\xc2\
+\xc0m\xe9\xa7\x99\x0dD\x01C\xa7\xfb]\x85{\x8a\xed\
+\xec\xdd\xa4}\x0d\x08\xe6\x97\xadz\x0e\xff\x09\xa2\x04\x1f\
+\xb9\xabx\x82[(\xb3q\x0de\xd6.!l\x9c\xb3\
+^v5\xcd\xa2\xeb\xa0V\xd2\x0e)y\xf7r\xe5W\
+\xe5\x00\x22\xbb\x1a\xb6\xe9c5X\xf6\x012\xcf\x14\x1a\
+O\xd8\x18]\xdbM\x03o\x0e\xd0(\x08\xec\xa9\x8bW\
+y\x19\x16\x134\x98\x97\x17\x89\x1a\x0c'1f?r\
+\xb6\x90\xa7r\xb3\xe09\x18\xc7c&.\x17\x9c\xb2K\
+\xa0\xa5\xc6L\xbc\x81\xb6K\xa0_\xb9U\xc2\x01F-\
+\xbf\x04\xa0\xe3o\x01z\xf1\x0d\x05x\xac\x15\x5c\x85\xe7\
+]\xc3k\xdc \x02\xe4_\x93\xfa\x02\xf3X\xd4Fe\
+\xc3i\xefq\xb37P#+\xeen\xb2\xe87\xd1\xd5\
+\x11B\xecT\x1d\xe8\xee\xa1l\xb6\xffz\xe6\xb6(\x99\
+\xb9\x04nbs\xfd\x92\xd8,\xef\x0d\xcc\xd1+\x9e\xd9\
+\xbb\xc72\x1b\x97p\xad\x1dR\xf5^\xc9\x16v-\x0b\
+\x80u|\xcb\x19\x0b\xf3\xe5(\xe0t\xfeu\xa3\x8d\x16\
+\xa6\xd6v\xe3\xe0\x1b\x7f\x1c\x97\x1c\x8c0\xb0\xeb\x06\xd3\
+\xb3\x07E\x86\xee\xb4\x02|\xd2\xeecl#\xca\x9ec\
+l\xd3\x9e\xe3,y\xaf\x22\x08>\x16a0\x89\x83)\
+]\xcc\xc9cV.\x0f\xc0A+`\xa0\xedw\x04\xf0\
+\x0f9)\x10`\x5c\xd7Q\x84\xb6ce\xb0X\x00\x7f\
+S\x06\xbe\x84]\x87k\xdd\xc0\xd7\xc3\xef\x02\xad\xce\xe0\
+\xcc\x1c\xe6\xbcd=fD\xff\xab\xc3\xe0\x09\xbe\x03m\
+=\xe2\xad\xe6,}\xc0S\xe9.\xab\xd8\xac\x80X\xe6\
+\xb7:\x95\xf9\xaf\xde\xc6\xbc\x97oe\x1e\x8bS8\x01\
+\xe6\xf9\x13\x01\xe6\xc7\xb3i\x1eq\xcc\xce\x0d\x1ck\xe7\
+(\xb1\xc7 G\xeaU\xfc\x94\x96\x83\x8a7\x95j\xf9\
+\x00X\xc9\xeb4l\xb2\xab\xd8\xc8!H\x80\x159\xf3\
+B\xb8\x8aI>\x00\x8f)YQ\x84A\xd0\xb7\x83/\
+\x11\xbca\x0fs\x87\xcf1\x85Z\xabM\x89\x9dw\x04\
+\xf3Z\x9d\xc4\x22\x93\xf7\x03q\xf2\xd8\xd9|%;\x87\
+\x89\x1a$\x02\xfa\x00B\xdbQ\xf39\xe8WKA/\
+\xb8fB\xdbI\xe3\xaf\xdfQ\x80\xbfy\xf7\x01\xbbu\
+\xef!\xbb]\xf2\x90;\x82\xb9\xf9J\x22H&\xc0\xc6\
+\xed\xc7\xf8N(\xf1\xf9f\xf8\xc70\xefU\x9bY\xf2\
+\x8e\x93\xec\x10<\x07-\x07J\xe6\x89|\x16\xb7\xf9\x08\
+s\x15\x04\xf0\xd1'\x80\xadK\x0c\xb3q\xa2\xd6r\xeb\
+yb\x0b{\xfdW\xd2T\xaa\xd5\xcb\x87=\xf7\x03l\
+=\xf6\xa9I\x80\xeb{\x01\x0f\xaf^\x0d\xe8\xdc\x0f\x00\
+\x8fZ\xc9\xc5+\xda\x8e\xc5\x99\xc8\xe4t\x1eOKk\
+\xe0\xbf\xfaMp)\xee1\xda\xf1t\xcb\x1e\x96\xdb[\
+\xf5\xb4L\x835t\xab,\xe0\xbc\x9e\xec7\xd1\xa5\x00\
+\xcc\xeb\x1f\xe2u\xd8\x87\x10\xbf\xfd0\x15y\x94\x98\xbd\
+\x80\xaf\xe7w\x80p\xb7\x0dM<\xad\xed\x8a\xb6\x97\xe8\
+\xcc\xbc\x1at\x05\xf8G\xec\xce\xfdG\xec\xee\xfd\xc7 \
+\x8fX^\xe1Mv\x1a\x08p\xecT!\x07W4\x86\
+.Z\x93\xc6\xbc\x83\x93Y\xfc\xd6#\xec\xf8\x99\x22v\
+\x17^\xf7\xec\xf9\x0b\xf6\xfc\xc5\xef\xec\xc5\xef\xbf\xb3\xdf\
+\x7f\xff\x83\xfd\xf1\x87\x22\xb7\xc1\xa7\x08^\xb7_\x93\x00\
+\x93\x9c\xd6\xb21N\xab\xc4\x16\xf6\x0eTJV5\x95\
+ZTz\x99<\x80\xe8\xe6\xfd\x812V#\x80m\xbb\
+\xf0Fb%Od\xf4\xb0\x84\x8a\xa1\xe1\xcb\x02\x8f\x0e\
+\x1bf\x06\xf9\xda~J\x01~e\xc2^6\xd1S\xa9\
+(\x82\x03\xf5\xac\x8b\xe5\x94\x93M\xdavO\x84\xcf\x12\
+\x02\xb2\x9cr\xea\x01TX\xc1\x0c\xdb|\x92\x05\xf47\
+|,\xa8\xc9\xaf=\xa3\xba\x8e\xb0?\x84\x8d\x9e|\x9d\
+\xf5\x08a\xe1\x1b\xf7\xf2}\x80z&\xde\xe8\xda\xae\x98\
+x\x0e\xfc]}m\xbfS\xf2\x88\x03~\xef\xc1c.\
+%\x0f\x9f\xb0\xfb\x8f <\x06\x82p\x02\x9c\x16\x04\xc8\
+\xe5\x048\x92}\x89\x15\x01\xc9t\xa0\xbf\xd0\x07\xfdw\
+\x10$\x02>\x86\xcf\xf9\xed\xd9s\xde?\xa0E\x80\xf1\
+Na\xa2\xa7\xd0HSi\xc5\x09 \xf7\xf37\xa4\xfd\
+\xf1X\xd3\x9f\x80\x1d,\x18\xd2 \x09D5\x0f\x1b*\
+\xb0\xa2g\x16\xd87\x0c\xc35\xd4z\xbe\xce\x93C\x87\
+\xcd\x22v\xbe1\x8a\xb33{\xc9\xfft\x18d\x93\x05\
+\xef\x1dI\xc9\x94@\x02\x18[\xb6gQE\x0dw\xf0\
+\xdaR\x92e2\xfd{*=6\x8b\x9e\x8b\xc4X\xd8\
+\xaa\xd7\x88\x8d\x03\xa7x^U\x88\x1c\xc9\xd2\x0edk\
+\x82nL\xdbo\xdfS@\xe7\xda\xae\x02\xfd\xc1\xa3\xa7\
+\xec\xe1\xe3\xa7\xec\xd1\x93\xdf\xb8`>\x00\x09\x80R\x08\
+D{\xfc\xf4\x19{\x0e\xa0\xbe\x10\xda\xfe\x87\x04<\x90\
+\x00\xff\x8e\x8f?{\x06\xc0\xff\xf6\x9c=\x81\xe7?~\
+\xf2\x8c\xdd\x81\xf7t\x0a\xd8\xc8\x090\xd5-VG\x00\
+\x1b\xa7H~\x8f:\x0e\x998\x9f:\xae\x1a\xe9\xf7\x13\
+T\x9c\x00z;z\xa8U\xa9\x13\x95.\xa75\xef6\
+8\x14I\x80\xebYT\xca\x01\xdeU\x83\x9d:&A\
+\x97\xa4H\x05~\xd6\xf9\x22\x0e<v\xdcx\x87\xa7\xea\
+J\xc8\xe0\xe9\xfe\x0fx\xba\xa9\xf0\x9e\xab)\x8d\xeaN\
+\x80N\xa1\x0d\x1b#\xa8\x99b\x00\x11\xb4/I?\xfa\
+\xdb\x10z\xce8\x22\xc5\x0c\x10W\x10\xdf\xd6\xbdF$\
+\x09\x8b\xb0xm*o\xfa\xd0\x81~\xbb\x14\xf4\x9bw\
+\x0dM\xbc\x0et\x0e\xfcS\xf6\xe01\x02\xaf\x80\x8e \
+#pO\x01@$\x03>\xc7\x98\x89\xd7\x81\xfe\xe2\x85\
+N\xdb\x9f\xea\x80\x87\xeb\xc15\x1f\xe2\xf5\xe1\x1a\xe8'\
+L\xf3T\x13 B\xde\x22\xd7\x85p\xaaW\xdaR\xf6\
+r\x04\xa8.\x8aA\xb4u\xa9%\x99\x1a\xbc\x99s \
+\x0e\x8d\xc67w^\x1a\xaf\xec\x84\x01\x93m\x0ax\xad\
+\xa4\x0c:z\x18\xb6\x1d\x81\xf0\x0d;mg.J\xd0\
+\x81\x0f&\xff72\xf7\xcbH\xe3gQ\x05m$\x81\
+\xdb\x9d\xd6\xbe\xb6\xf4\xd9\x9a\x93\x19\xb4\xa0\x7f\xb7\xa4\xc7\
+:\xd0s1\xf4\x1aN[\xbd\xd02\xb8\x80\xf8\xf5\x1c\
+33\x0b\xdfo\xce\xa2u\xec\xfc\xa5\xabf\x9bxY\
+\xdb\x11,\x04\xed\xc9o\x00<\x80\x88@*\xa0\xbf \
+\x13\xaf\xd6v\xc5\xf4\x1b\x82\xfeL\x02\x1d\xc8\xf3\xe0\x09\
++\xc1\xf7\x05\xd2\x9d\x00\x7fa\xba\x8a\x00\xd2\x12 \xb6\
+\xaf\xa9f\x18\xbc<\x01D[w\x03\xbaxg\xaab\
+M\xed5n\xf6!|\xf3\xe4}'yc%v\xcb\
+\xc8\xa0\x17\xdd0\x9d\x95\xcb\x87u\x10[\xb1\xb1c\x96\
+o\x02\xf5\x8f\xe5%c\x1c\x14\x81\x95\xb3&m{$\
+\xc0\xfb,&\xad\x9fF\x05\x94\xfe\xf4\x19Z\xd1\xe7\xf9\
+\x9e\xc8\xf95y\xc1_\x91\xd4\xa7\xbf}K\xcf\xf9\x89\
+\x08\xd1\x91\xea\xef\xf8\x1dp\xf2\x87#^\xbfu\xef\x91\
+\x09h\xd1\xf8\x1e\xbf\xdc\x22\xa3\xda.@\x7f\xf8D\xd2\
+\xf6\xdf\x14m\xd7\x81^\x96\xb6K&\xfe\xe9o\xcft\
+\xda\x8e\xd7\xc5\xeb\xe3\xfb\x94\x00\xf0\x08::\x88w\xee\
+=\xe2\xce .#\xd3=\xd7\xeb\x080\x99\x9c@K\
+\xc7\x85\xf7\xa9\xab\xa8'9\xec_\x92\x03\x8f\x04\xa8l\
+\xf6\xdccU\xc7\xaf<\xbf\xe73\xba\x99\xcd\xe8\x06\x0e\
+j\xdc\xaa\xb3#n\x9a\xc0\x10\x0bM?\x86jei\
+\xbb\x9c\x99\xc3\xd8\xff$x\xe2h\xfac\xb7\x1d\xd1U\
+\x0c\xb1\xc3\x08\xc1\xff\xa5\xf3\x80dr\xf0\x5c\xc8t[\
+\x92\x16\xb7&3\xf7\x0d1\xfd3)7\xfe\xa1JD\
+\x97\xf2\xa7\xf4\xdc\xaf\xc9\xa1\xb5\xa0$Lo\xb2\x08\xe8\
+3\xccm\xdeup\x84 \xc1\xe9\xbcb\xaey:m\
+7b\xe2\x15m\x7fQ.\x87\xce\x98\x89\xe7\xda\x8e\x84\
++Q\x80G_\x033\x8b\xe8L\xde\x80%\xe9(8\
+\x8f\x82\x00S\x80\x00\x13h\xfd\xefbi\xb7\xf9\xa5-\
+\x80\x91\x8e_\xbc\x81\x9fA\x98\xd5\x0c\xd6\xca`\x08\xa7\
+2qo\xdf0\x07\xbfSC\xa6\xf9\xe4\xe0\x9boI\
+W\xda\xa4\xb1\xf7\xdd\x9c\xdc\xbb\x10\xdc,\x81\x89\x9a\x9d\
+\x87\xcf\xe9\xc0\x1f\xef\xae\x98\xb3\x0e\x83'\x1c\x82\xf7]\
+D\xe0O\xa6u\xbc3\x15O\xbe\x93&x\xd6VU\
+\xc7\xb4D\x1e;W\x87\xd6\xc7\xfa\x1425'\xbff\
+\x00-k\x8e\xcd\xbb\x0d\x09\x11$\xc06p\xd9\xa1\xd3\
+\xd4\xf6\x17\xc6\x1c\xba\xdf\x8d:t\x1ct=m\x7fl\
+\xa0\xed\xb7\xd0\xff\xb8\x0d\xc0\xdf\x02\x7f\x04s\x15p\x0f\
+1\x82\x10\x04\x98\xe4\xa2$\x82\x869\x06<\xa4\x02\xd3\
+\xe8\x0a\xf9\x00\xa6:~\xc1[nb\xe9\x18\xb0J\xdd\
+\xf1+Z\xbb\xe6,\x8a\xe5N\x1bf\xe4L\x95VK\
+EI\xc3\xe6\xf2\x9e\xbbb\xfeZ\xfb\x80X]\xcb\x18\
+\x9f\xfaa\xebq\x13\xde{\x099j\x08\xfe`\xb2:\
+\xcdTS;k\x1a\x19\xb8T\xd9\xc8N\xa5\xea\xf2@\
+\x07\xbaI_\xd3\x0dkK\xcb\x02\xfa\x16S[t\x1b\
+\xb2\x0a\xac\xdb\xbf\x9d\x96\xc4\xe9i;\x82\xfe\xdb\xf3\x17\
+e;t\xcf\xcbv\xe8\xb4L<\x07\x9d\xb4\xfd:\x00\
+\x7f\x0d\xf3\x0e\x18\x95\x80\xb5\xbc\x0c\x8e\xf2\xa2\xb0\x9d\x9c\
+\x00\xb6\xae\x98\x0f\xe1\xcb\xe4\xbf\xd1j\x91?3\xb4\xdc\
+Q@Y\x1d\xbf\xa2\xf1\xd3X\xc7\xef\x9a\x94\x83<C\
+\xc7;e\x8d\x16]\xf4\x0b/\xe8\xf1\x8b\xb4,\x8ez\
+Q\x9b\xfeF\xcd\xdb\x87\xc2\xfb{\xd2\x96\xef\xa1\xa4\xa1\
+?Ie\xd3\x0f$\xe0\xcdj\x8a\xd0 y\x0d\xfa\xae\
+u\xc8\x5c6\xa2}\x0b\xddh\xa9\x99\x02^\xf5z\xfc\
+\xee\x09\xdb35\x1d\xba?T\xda^\xb6\x89\xd7w\xe8\
+\x14\xe0\x1fJ\xda.\x83^\xa2\x03\xbd\xf8\xea]\x9e3\
+\xc0,\xe2t\xafXf\xe3\x1aF\x89\xb0\xa0?,\xba\
+\x0c\x8a\x81\xcf\xeaD\xe6\xbf|y\x00e\x84z\xc5;\
+~\xa7\x82\xc3\x86m\xd2\x18\xba]\xc2\x0fz\xd3x\xb5\
+Mn\xa88Gm\xd2\xe1\xc9\x07t\xd7\xc2\xf7\xa0m\
+\xde\xa7(y\xe3@\xa1[\x17\xd2\xfc\x06\xaa\x8e\x99\x0a\
+\xd5\xbe\x8dX\xbb\x0f\xc9\xaa|CKL\x17\x22\xc1\xd4\
+\xbe\x13\x9c\x8f\xe3\xe7\xca\xbf|\xc3<\x87\x8e\xac\xc5#\
+3\x1c:\x03\x13\xaf\xd2\xf6b,/C\x84\x84\xc3&\
+p\xed\xb7_\x10%\xc2\xe2\xff\xc6\xfb\xd4\xa8y\x87U\
+\xd4W8\x85\xacd\xf92\x81\xca\x0c|\xfd\x8e_1\
+\xb8\x09\xfb\xd7\x16F\xa5\xb1\x15\xf1{\xb9\xe0^<\xb7\
+\xd5\xfa\xcd\x9e\x0b\xa3\xb7\xf3\xca\x1bnx\xd0\x04]\xa3\
+\x93\x06\xabq\xd8&\x8d\xa4\x91\xaf\x85\x8d\xa2\x8a\xf6w\
+X)u\xca\xf6\xa45\xba\xa1\xa4\xf9\xafdr\x86\x11\
+\xcb\xf7)-\x09?\xd3\x16\xad\x11\xdf\xb7\xec4\x0f\x1d\
+]\xef\x90\x8d/\xe1\xd0\x11\xe8*\x87N\xcb\xc4sm\
+\x07\xd0\x0b\x01t\x04\x1ek\x02\xeb\xb6\x1c\xe0YK\xae\
+ \xa3\x1c\xcf4\xb2h\x1fI\xf9\x10\x17\xb2\x92\xc3\x89\
+\xb4\xe6\xd7\x020,\x00\x02\xe8u\xfc\x8a\xc9\x9a\x8bc\
+\xb6\xf1M\x11\xe9'.\x96\x16a\xa4\x92\xeb\xae#\xe7\
+!\xec\xcb\xe6a\x1f\x96\x5c/\xf0\x82\x8aq\xd0E\xb3\
+$\x0av\xc9b\x11\x06w\xf5\xca\xed\xe2\x8a\xf6\xcf\xc8\
+&\xd3oK\x83\x9f\xda\x90i\xfeS\x864\xab\x22\x1e\
+1\xb4\xb2.\x11\xae9\x11pl\xd7\xe1S\x93\xf0\xf3\
+\x9d\x81\xa8@h\xfbS\xb3\x1d\xba\x87\x9a\xda\xae3\xf1\
+\x98}\xbc\xa6\x98\xf8B\xd2v\x04\xfd\xf8\xd9\x02\x16\x9e\
+\xb4\x97\x0f\xa9\x22\xbf\xe8\x06\x84\xc4q\x14\x12\xcf\xa7\x9e\
+\xc2\x89\xb4Dv-W5\xf0\xcbF?\xe1y8t\
+r\x86~\xc7/\x82\xaf\x80~\x91@/-\xb9*u\
+\xf6\x02\x1e\xb3c\xec\x8e\x9b\x1dO\x80\x17\x8fk\xbe)\
+\xd0E}\x1dS\xadH\x00$\x90\xac\xfd\xe3\xdcB\xf9\
+\x97l\xda\xaeg\x18%z\xac\x88\xd1M\xa5\xd9\xbc\x7f\
+\xda.\x19\xad)fD\xbc6DD[\xdc\xc7\xb0 \
+8I/f\x17\xda^\xa6\x897\xaa\xedwJ\xb5\x1d\
+@?\x97w\x95%\xed8\xc2f\x07\xc6\xe8\x0a^\x08\
+<\x16\xb5\xc8)\xf6\x06\x99GZ/\xf2!\x1d\xa5i\
+\xe6\xe6\xf5\x03\x10\x01\xd09\xd0u\xfcbx\x87f_\
+\xbd\x13\x86\x83~F\x01]4X \xf0r\x9d\x9do\
+~(\xb8N}\xf07\xb8\xa0\x97\xafT\xdan\xf1\xfd\
+u\xb9\x85J\x9b\xf4\x85\xe2\x9blY\xdcn=\x02`\
+\xd2g\xe0\x14\xcfk\xa4\xfd\x93\xe9\x8b\xb5\x92\xa6s\xd7\
+\xfc\xb3w\xc9j\xec\x81\xf8'\x11\x10\x89h\xd5u\xc4\
+\xd4D\x04$\xe7\xd2\xd52\x1d:C\x13o\xe8\xd0a\
+M@h;&wpn\x90\xbd\xb7\xc8~\xfa>\xef\
+l9\xe54e@\xb1\xd8\xe5K\x8e\x9e=-\x8d\x83\
+\xc8Y\x15\xf9\x90\x06\xe5\xea\x08\x22\x02TS\xce\xc5\xe1\
+/l\x84o\xbcp\xcdV\xea\xaa\xb9d\xd0U\xa3\x03\
+\x9d\x03\x7f\x99'p0\x8eGO\x1e\x1d:l\xb2\x10\
+uv\x99\x0c\x1ct*\xb9b\xb7,N\xe3V\xef\x16\
+\xc2\xf7\xee6\xd2\xfe\x00\xed\x90\x1d%\xc5\xb2_\xbc\xce\
+\x89YR\x05\xb4\xa6<\xd0\x02\x09\x89I/\xfc\x9c+\
+b\xb7\x9b\x17\xb3\xab\xb4]m\xe2\xb1[8\xfd\xc8\x05\
+\xbeM\x1ck\xfeQ\x89\x87\x98\xeb\xd2\x0d\x22\xa5\x8b\xd9\
+\xcf\x08\xca\x83\xb8\x93C<\x9er!=(d\xfdI\
+\x1a\x91[G\x9a\x9a^vO \x10\x00S\x83\x98!\
+\xe2\xb5\xfev\x03\xc6\xf5\xc67^\xb39C\xcf\xc4c\
+\x86N\xad\xed\x22|;-\x80\x07\x87\xee\xec\xa5\xd2\x06\
+\x0b4\xf1\xa8\xed\x17H\xdb\x05\xf0\xb8\xc5\x1aK\xae\x09\
+;\xb3T\x1bG\xc3\xc5\x0e\xd9\x08\xaa\xdc\x0d\x22\xd3\xfb\
+\xcd\xeb\xde\x22\xa5J\x7f\xd7\x22\x026\xa1\x04\x94\xd5@\
+[\xcf\xd3\xd3\xfd\xd6\x94\xc3\xa1\x93M\xbc\x02|>(\
+\xc3\xc5\xc2\x9b\xec@V\x1eK\xd9\x95\xcd\x12\xd3\x8eq\
+\x02D\x03\x01\xdc\x96\xeaF\xc5DJI\xb0)\x14\x0d\
+\xf5\xa2\x18\xffgZ\x9e\xbe\x94\xb4\xbef\xb9\xda\xc3\x89\
+\x00x\x1a\x96^\xc7/\xb6R\xa9\xb5]\x80\xae\xa7\xed\
+\xf9W\xf5\xbajr\x8ch{>\xf5\xc7\xcb]5X\
+\xe5\xd3Z\xff)\x9c\xb1\xd6\xc8e\xff\xe3un\x90\xd4\
+\x1akGV`@7\xabi\xb1\xf8YO\x9e/4\
+\xc3\xa1+5\xf1X\x0eF\xd0\xf3\x0a\xe0\xfe\x5c\xba\xc1\
+\xbb\x84\xb0\xdbG\x8f\x00I\x87\x98\x7f\x882,\xa2\xc9\
+\xaf=b\xa4<\x88%\x99\xfb\x16\x14\xe2\xd5'\xa7\xf8\
+#i\xc6p\xb5rYH @\x15\x22\x80\xe8\xf7k\
+\x89o\xbcr\xfd\xceRm\xbf i\xfb\xc5+d\xe2\
+\x8di{)\xe8\x8a\xb6\x1b\xef\xaaQ\xe7\x120\xcf0\
+\xc4\xde\xe7\x0ey\xb5#\xc9\xa9iL_\xf2\xb5\x9f\xcc\
+ad\xb2\x19\x9a\xdb\xee\xbft\x1e\xc0G\xdbl\xd8~\
+\xb8L\x87\xee\x92\x00\x1d\xe4\x02\x00\x9f{\xe9:\xef\x0f\
+\xc46qt\xf6\xb0E\x0c\x09\x90\x94v\x9c\xc5\xa5(\
+\x04\x08\x0aWv\x0d\xb7\xee=r\x03\xdd\x8f1\xa4\x10\
+-I\xeb\x85\xb9\xaf\xa5qZJ\xa5\xf2\x12\x00\xd6\x0b\
+\x8b\x8fi\x9dk=r\xf6\x92GNK\xd7\xeb@7\
+\xa5\xed\xb2C\xa76\xf1\xa6\xbaj\x0eBd\xa1&\x00\
+\xa6\x94\x07\xd9y\x15S\xa5o\xb0d\xfeE,\xfb\xda\
+7HJV\xa0\xa6\xf0\x91\xa8pd\x09\xd1\xc0oK\
+\xa2S\xf5cv=m\xbfi\xa0\xed\xd8\x1a\x8ek\xfe\
+\xb9\x0bp/\xc1\x92\x9e\xc9\xbd\xc2\x09\x80#c\x93h\
+^ '@\x84\x8e\x00q\xd2\x96\xf1N\xaa\xbd\x03b\
+\xba\xf8{\xaa-d\x95^\xca\x02\x0c\x98\xec\xcec\xdd\
+\xd4\x8cl=\x87\xee\xbc\x09\x87N\x98\xf8\xb2\xda\xa4E\
+\x83E\xdc\xf6#\x06\x04\xa0-S\x99\xaai\xdc\xf5\xa5\
+q\xec\x95\xdf\x10\x01\xe4\xb6\xf8\x06\xa4\x85\xfd\x879\xf8\
+_v[\x91\xa0\xe7\xd0\x19\x98x\x95\xb6\x9f\x05\xe0\x11\
+tl\x0d\xc3\x0ea\xdc)\x84\xbb\x85\xc5\xc8X>0\
+2)S\x22\x80U\x1c)\xc40\x89\x00\x0d)\xc3'\
+\x9f\x99TSE\x04\xf3\xee\x95\xda\x07\xc0$B\x93\xb6\
+=,q\xf2\xf6\x04\x8f`\xb67\xeb\xbc\x81C\x97g\
+J\xdb\x8d\xb6I\xebw\xd5`\xdd@\x93\x00\xca0f\
+\x1b\xedR\xe6\x9b\xd9\x1eM$0l\x8a\x9d\xec\x9e\x8e\
+Y9Cm\xbf\xce\xb5]\x01\xfd\x9a\x04\xfa\x15\xde\x15\
+\x8c\xbb\x83p\x97\xf0\x89\xb3E\xbc\x09T\x84~\xf2\xc4\
+\xd0ED\x00,B\x0ds\xf0\xbb\x02\xa1\xf1n\x90\xf5\
+\xb8)\xa7\xdd\x80\xf1=\xa5\x0d$\xea\x12x\xadrm\
+\x0fSG\x01\xc4\xb0\xaem\xfaX\xb9b\xbf:~\xc1\
+\xd0\xc4=,\xfdx\xaeI\x87\xae\xcc6iUW\x8d\
+_d\x9a&\x01z\x8f\x9b\x93A\xf1\xadzBV\xd5\
+7L\x80\xaaRS,~\xae\xae\xfd&\xb8\xf0\xcd\x1b\
+\x06&\xde\x84\xb6\x9f\x04\xd0\xb1\x93\xe78\xf5\x05\xa2\xf9\
+\xc7\xdc\xbezdlH\xec~\xe6\xbc8\x81\xcd\x0e\x88\
+e\xb6^\x11l\xac\xf3*\x83\x16wP\xd2\xd3\xb0\x0c\
+e`\x85\x16\x9c\xf7\xfe\xd2\xf6\xb0:\xaa\x03\xb4*\x97\
+\x95\x08\xd2\xcb\x03\xd0p\xa2A\x8d[v\x9e\x81\xe1\x8e\
+\xfc\xa6\xb3\x83b\x98O\xe8&\x16\xb1i\x1f\xdb\x07\xd6\
+\xe1\xd4\x85\xe2\x0a\xb5I\xfb\xad1B\x80\xf1s\xd2)\
+\xb3\xd5\x99F\xa4|\xf6\xa6'di\xf8\x01\xe8\x98v\
+\xea7\xd1\x85\xd7J\xb4M\xfc\x95R\xd0u\xda.\x83\
+^\xc0M\xffa\x88\x002\x8f\xe7\x1b\x8c\x8c\x8d\x88?\
+\xc0\xdb\xbf\x97G\xeda\x8b\xc2w\xb2\x80\xe0ml\xfe\
+\xb2-ln\xc0\x06\xe6\xe8\xbd\x8e\xd9yF1k\xd7\
+\x10=b !\xfaX\xcf\x1dG\xcb\xd4g\xd2\x01Z\
+\xc6I\xa0\x95\x09$\xd3\xdb\x85\x0a\x0bv?\xb5\xef\x13\
+\xd4~\xe0\xf8M=\xc7\xcc<6\xc4\xde\xfb.\xf6\xe0\
+\x8b7\x8d\xda\x9c^\xae6i\xd1U\xe3\xaf14\x02\
+\xb3\x804$\xf1m&@]R\x92\x0e\xfd&\xba\xa6\
+\xe0=\x90\x1d:\xa1\xedj\x13\x9fu\xaaP\x01\x1d\xb4\
+\xfd0\x00\x8f\xa1\xdf\xa1\xe3\x17\xf9\x06\x11\xcc\x03p\x02\
+\xd0\xc4PN\x80\x84R\x02,&\x02\xf8\xacHe\x9e\
+KR\x98kP2\xdf\x1c2\x9b\xf6\x06\xd8{\xc4\xb2\
+\x89.\x91\xbc\x1d\x0c?\xcf\x80\xc9\x1e^\xd2\x99\x03\x1f\
+\xe9\x93@U\x0d\xd4\xaa\x05\x90\xe7\xdd\x5c\xaa\x87O\xa2\
+\xbc\xbc'U\x9e\xb0J\xb7\x06\xdf,:%\xbdBm\
+\xd2XQ\xd4\x0a\x03\x87N\xf7\xbd\xfe\x16/\x01\x22\x1f\
+\x807\xb7}\xff\x89\xae\x9b\xf1\x1e\xe8\x9b\xf8b\xc5\xc4\
+\x9f\xd17\xf1\xb2\xb6\xe3\x9e\x00<5\x04\x81\xc7i!\
+\x98\x05\xc4M\x22;3\xce\xe9\xc6\xc6\xc5&\x1ff\xe1\
+\xf1\x19l\x85\x8e\x00\xdb9\x01\xbc\x88\x00N\xfe\x1b9\
+\x01f\xe0\xde\x00j\x0c\x9d\xec\xb2\x96\x8ds\x0a\xa1\x91\
+\xf3n\xde\xd4\xfb\xf8\x854iD\xbb!D\xa3\x1a(\
+F\xb96'M\x1c@iY[\x89\x08|<\xfa\xda\
+-\x19\x15j\x93\x0e\xd0 \x80\x94\x08\xd2\xeag\xab\xf6\
+\xb6\x11`\xb0\xbd\xf7a\xdcjf\xa8\xed\xb2\x897\xd4\
+v\x01\xfa\xfe\xc3\xb9|s\x086w\xec9t\x9e\xed\
+>x\x9eO\x0eC\x22`\xbb\xd7\xf6\xfdg\xd8\xb6}\
+gx\x82\x08}\x03$\xc4\xd2\x88]\xdc\x0a\xe0\x9e\x00\
+A\x00\xb91\x14;\x83\xc7:\xadV\x0e\x9e\xe8\xd0\xb7\
+\xab4p\x82*\xa8\x16U4\x9bB5\xfa\x01\xeaQ\
+\xb8\xd1\x94\xe2\xf1\xaeD\x84\xd1\x94\x95r\x1e2\xcd\xe7\
+v@\xc4f\xf3\xda\xa4\x9f\xea\xb7I/\x8f\xdf\xa31\
+C0\x9cN\xff\x1a\xeeCa\xa08\x93\xe7\xc379\
+&\xcd\x18\x01pX\xb4\xd3\xe28\x03\x87\xee\x88\xce\xc4\
+\xe7K\xa0\xe7)\xa0\xa3\xb6\x1f\x16\xa0\xe7\x18\x82\x0e\xb2\
+\x8d\x03\x7f\x9a\xcf\x10\xc4Q\xb2\xb8<`\x9e\x00\x93E\
+\x9bw\x9e\xe4\x84\xc0\xa5\x01\x97\x81\x19\x0b\x12\xf4\x1aC\
+\xb13x\x82\x93h\xa7\xf3\x8c\x97z(\xa8\x81\xc6\xa2\
+\x9a1\x02\xa8;\x82j\xd3z\xf7%}\xe1\x9f\x88\x08\
+=hY\xb0Es\xed\xb5:\xb1Bm\xd2\xd8:\xae\
+5:\x0e?8\xf8\x1a)T\x07hM\x1f\xfe\x8d\x0e\
+J4\xe6\x03\xe0g\x0dZ\xb3\xd5\xc0\xa1\xe3&\xde\x98\
+\xb6\x03\xe8{\x0e\x1a\xd7v\x05\xf4\xd3|\x884\x86\x86\
+\x02t\xdc\x04\x82\xc5\x22t\x141_\x80$\xc0\xa2\x11\
+Z\x015\x01\x84\x15\x181+\xe8&Yp\xa9\x94n\
+\xf1\x0f\xf4\xf9p\xe9/\xabEJ\x9e\xfd\xfb)i\xe2\
+\xf7\x94\x04\xc18t\x14\x98\xc0\xbcyKbM\xee\x84\
+1\xd6&\x8d\x872j\xb5\x96qG\xd0\xde\xfb\x229\
+\xa0\x1d\xe8=?}\x93\xa3R\xb5\xa2\x80\x0e\x83l\xf8\
+\x98\x9c5\x1b\xd35L|^)\xe8\xa6\xb4}\xbf\xa2\
+\xedi\xa0\xed\xb8\xf6+\xa0\x9f\xd2\x07\x1d\xfc\x01t\x0e\
+\x11\xf4$\x00=1\xf5\x18\xdb\xb05\x8b\x0f\x97F\x87\
+q\xd5\xda}\x0a\x01\xdc\xf5\x09 m\x10\x11\xe5t*\
+\xa8Y\xd4\x00\x02T\xd5$\x80\x89\xbd\x00\xa29\xf4+\
+r\xcc\x10\x98\xa1bchE\xda\xa4\xb1r\xa6E\x00\
+\xd1\x0a\xfeK\xe7\x01\xb3\xc9\x09\xfdIU\x0a\xae\xf46\
+\xe4\x01\xfaOr\x0d\xc5\xcf\xb9=\xfd\xb4\x81C\xa7h\
+{N\xa9\xb6\x1f\x00\xe03\x10\xf8\xb3\x1a\xdaN&^\
+O\xdbO\x94j{\x9a\xa2\xed\x1b\x00x\x01:\xfa\x03\
+X4\x8a\x05\xc1M\xa2\xb8\x14\xe8\x08\xe0l@\x80\x11\
+R\x7f\xe0g\x18\xee\x9b$\x80\x11K \x0ea\xfe'\
+m\xa4h\xd7q\xc8$/\x1c\xf3\x8eoR|\xfdN\
+\x85\xda\xa4\xf1\xc0'c\xcb@_\x1b\xa7\x1d\xb4\x9f\xaf\
+\xc5\x9b\x9e\x97\xab\x95\x09\x1c\xe6\x18p\x02\xcf\xf7\xd14\
+\xf1&\x1c:}m\xd70\xf1\xa4\xed\xfa\xa0g\xb1\xf5\
+\x00<\x16\x8a8\xf0\x00\xfa\xbaM\x87\xf9\x01\x13\x986\
+\xf6[\x95\xa6\x10\xc0u\x9d\x8e\x00\xe3\x9cB\xf9\xe9&\
+\x14Qu+\x8d\xa8,ja\xde\xc7\x1c\x02TQ5\
+I\xe2\xda\xd7\x00G\x90\x0cs\xf0\xdb+\xf6\x05`\x07\
+/f\x06+\xd2&\xbd.\xed\xb0\xa6\x15\xc0\xa6P\xcc\
+B\xfe\xd0\xba\xdbx*\xbc4\x22\xd3\xfb\xa6*\x82z\
+\xb5\x80\xb6}G\x0d\xe4C2\xc3R\xccr\xe8\xd4&\
+^q\xe8Njk;\x9a\xf8\xd4,Cm\x17\xa0o\
+\xca\xe4y\x02,\x18\xa1\x0f\xb0f\xc3A\xb6|\xcd\x1e\
+>*F&\xc0\x18'\x9eS)\xa0\xe6\x91\x1e\xa5\x96\
+\x94\x13\xa0:f\x80?o\xf8C%s;d\xebv\
+\xb6\x9c\xd2\x1e\xe7\xd6\x8c\x9a\xb7\x8c'\x81f\x05\xc5\xb2\
+\xed\x87\xcep\xc7\xcf\xec}o\xaa6i\xac&j\x11\
+@\xb4\x85c\xaaU\x0a\x07\xd5g\xf4\xbe\xce\x9e\x00\xdd\
+\x8cD$\xe3 \xbb\xf91\xf8\xf9Rv\x9fT9t\
+g+\xec\xd0\x19\x98\xf8\x94R\x13\x1f\x03\xc0\xaf\xe5\xda\
+~\x887\x8bD%\x1e\xe4\xc0G&\x1c\xe0\x19\xc3\xa5\
+\x91\xbb\xf4\x08 v\x08w\x19\xce\xb7\x88\x8d\xa7-t\
+j\x02T25\x0d\xa4\xaa\xbc\x0fp\xe8t?_\xbc\
+\xe0$\xcfP\xb6:~'\xef\x8b\x7fU\xfb\xde<\x8c\
+\xcc\x12\x16V\xa0y\xb7\xc1\xb6\xd4\xf6\xf4\x9d\xca\x0aT\
+~Mma\xa2AT\x98\xfffVs\x96<\x98\x1d\
+\xb8\xee\xa5\x1c:\x01:w\xe8\xb6\x18\xd1\xf6\x8d\x86\xda\
+\xceA\x07\xc1\x9c@\xd8\xfa\x0c\x16\x1a\x97\xce\xe7\x07\x09\
+\x02Lr\x8e\xd6\xda\x22\xd6\xb9t\x8b\x98\xc5\x07F\x97\
+\x00\x95\xb9\xab\xdd\xb6\xdf\xe8Fx\xca\x07^\x10\x81/\
+y\xf8\xd8\xe4\xd6f\xa3m\xd2\x8f\x8c\xb7I\xef8t\
+\xd6\xe84q\xe5`\xa6\x80\x02\xb2\x02\xa2\xcf\xfd\xa3\xd7\
+\xd5\x1a\xa6\xd1\x17\xf8\x0d\xc4\xd6+x\x02,\xf9\xe0K\
+8tZ&^h\xbb\x06\xe8:m\xcf`\xe1\x00z\
+\x18\x80\x8e\xc0c\xc1\x08\xd3\xc5s\xfd\x129\x01&\xbb\
+D\x8b\xcd\x22\xea-b\xbf\x96n\x11\xb3\xa8\xa9\xe9\x04\
+\xaa\xf2\x00<%\x8c\x95&\xbc`p\xc2N3\xf7\xbd\
+U\xacMz\xce\xd2DM\x12\x88\xc3%\xc0!\x5cK\
+\xbe\x80\xd8\xe9R\xfb\xcf^\x0a\xb4:\x83!2\xf9\x15\
+3l3\x17\xc6\x94\x82n\xd2\xa1;\xae\xed\xd0\xa5\x18\
+w\xe8\x14\xe0\xf5M<\x07\x9d\xb4]\x80\xbe:f\x1f\
+[\x05\xb20d;\x9b\xea\x01\xf7\xca%\xd4\xcc-b\
+\x16\xefi\xe6\x01\x88\x00\xf2@\xe8\xaf,g,\xdc\x86\
+f\x1f\xd7k\x01\xfc\x8b\x97\xdc\xf7\xa6\xd5&}\xf0D\
+\x9e\xd1i\xe2\xb8\x14\xe0\x17\xeb<\xcc\xd6\x85\xe2\xd9o\
+i)\xf8\xd3\xc6\xa8\x1b\x19\x88\xf1\xdd\xf0\x19\x81Gx\
+\x1bX\xeaQ\x03\x13o\xd4\xa1\xdbZ>\x87Nm\xe2\
+\xb9\xb6\xc7\xaa\x80_\xbb\x97\xad\x8c\xde\xcb\x02C\xb7\xf1\
+\xc1\x91\xe5\xdb\x22fQ\x1dk?\xc6\x08PUrv\
+\xbe\x835\xf8~p\xc2.\xa3\x0e\x1d7\xf1O*\xb0\
+\xb5Y\xd7CwW\xd7&\x1d\x18\xbd\xc3\xe8\x99\x02\x18\
+mX\xcd]\xf6\x9f\xed\x07ZO!67Tm\x0c\
+\xad\xf2*}\x02\xc9\x12\xd6\xa4\xdaz\x83\x01\x93\xdd\xe7\
+\xe3\x8d\xf6\x0bM)\xbfC\xb7\xd9\xd0\xa1C\xd01\x81\
+\x84!$Z\x92\xd0\xf5\xfb\x98\xcf\xea\xcd\xbc\x17Pm\
+\xe2\x15\xd0\xf7\xb1\x95\x00\xfc\x0a\x00\x1e\xd3\xc0.\x8b7\
+\xf0Y\x82\x1cxe\x8bX\x84y[\xc4,\xaa\x9aJ\
+\x05\xcb-\xd0M9\xdbwd\x9a\xed\xd0\xdd-\xd7\xbe\
+7\xfd6\xe9s\x17\xaf\xb1i\x01qe\x91\xe0\xff\xb4\
+\x1fd3\x99\xbe\xd4\xd7\x92%x\xefU8\x86\x1aG\
+\xe2\xa0%\xfc\xb2\xeb\x08\xfbah\xfa\xed\xbd#_\x99\
+C\xb7yg6O!c\x02\x09s\x07\xb3\x16\xc6\xe8\
+5{L\xf6\x0ag\xd3}\xa3\x99\xd3\xa2\x04\xb6`\xe5\
+f\xe6\xbbz\x0b\x9b\xbf\x22\x99\x0f\x8f\xb4qS*~\
+\x83\xed\xbd\xef\x01\xf0k\xa8m\xdc\xcc-b\x1a\xc5 \
+\xaa\x06\xca\xc3 1\xe3g!\xb6C\x9b\xeb\xd0\xa9\xb5\
+\xdd`'L\x19m\xd2\xbb\x0f\x9f7y\xba\x88 \x01\
+\xf8\x04\x81\xb4s\xf7\x1bU\xe3C\x85\xc7\xa5\xab\xc0\x17\
+\x89\xaf/`=m\x85\xa1\xaf\xb5\xebj\xee\xbc\x99\x17\
+\xb3\x9bv\xe8\xd0\xc4#\xf0|`$\xfc\x8e\xdd\x92I\
+\x1bb\xa6\x15\xb4\xe9c\x95\xd5\xddjz\xee\x00[\x8f\
+[r\xdf\x85,\xb8s\xaaU\xcf\xe1\x9b\x09\xf8\x05\xe4\
+\xed\x9b\xb9E\xcct9X\x8c\x83\xe5\x8d\x8fx\xb3#\
+7\xed\xe3\xc0?0{\xdf[\xc9K\xb5I'\xee<\
+V&\x09\xf0&\x0c\xb1\xf7\xd9\xdc\xacc\xdf\xceR\x8b\
+\xf4'\x1a-\xd2UL\xcd\x0cP\x9dv*g=?\
+\xe6\xe0w\x1d\xd4\x12\xe7\xef\x8e\x07\xf0#\x133L:\
+t\xc2\xc4\x9b\xe3\xd0\xe1k\xe5\x91\xb1\x98Q\x04\xff\x02\
+\x0f\x8c\xc6\x16\xf0\x18\xda\x09\x84s\x0fq=_\xd9\xaa\
+\xd7\x88M(\x16]\x06\xc6\x12\xe8~T\x92\x9fC\xc0\
+\x8fy\xa9-b\x1a\x04\xe0\xdd\xc1\xc3\x1c\xfc\xb3q\xf7\
+\x8bnk\xb3\xa4\xedfom\xae@\x9bt\xfc\xf6,\
+\x93\xa7\x8e\x89\xbe\x01\x9c\xab\x8bM\x92T\xed\x92;e\
+k\xab\xda\xa5\xabi\x10B}\xa6\xb1\x98\x84\xc2k\x1e\
+\xdd\xac\xa6\x0f\x01\xcd\xff\x03\xc1\x8f\xd8\x90\xfeJ\x1c\xba\
+Pr\xe8\xb0G@\x8c\x8c\x0d^\xbf\x9b\x7f\x97\x16\xdd\
+\x87b/d\x944\xf7\xd0\x87@v'\xa7\xce\x95<\
+\xfb\xd9\x14\xdeM\xa2\x1e\x8dA\x94\xe8\xa9\xf8\x161\x8d\
+%\x80\x9f\xec-\xe6\x01o\xdcu\xd4\xe4\xac\x1a\xe1\xd0\
+\xa1\x89?\x95S\xcc\xb2\xcf\x17\xbdT\x9b4v\xd5\xc4\
+\xa5\x1d1I\x02\xcc\x16b\xe5\x90N\x1d;\xdfc\xf4\
+\x0c[j!kH7\xe0S\xd2dA\x86\x9ad\x1d\
+\xde#\x11g\x1a\x7f@\xdf\xf9\x13\xf2} \xd6\xf7\xf0\
+@\xb3\x8f\xe0\x87'\xec7\xcb\xa1\x8bJ4\x12\xbe\xa9\
+\x1c:\xbc\x0e\x12_\x8c\x8cu[\xbeA>A\x04\x0f\
+\x8f\xf2'\xb0g\x90vO\xa2\x89_\xe3)\xaf?\x92\
+\xf6\x05\xf6%'\xaf\x0deJ\xbf{\xa9-bD\x00\
+\x83\xd6\xe7\xa1\xd3|\xcf\xe1\x07\xdc\xba\xff\x84Qm\xbf\
+Pp\x9d\xc5\xa5\x1eb\xb3\x83\xd6\xf1/\xe3\x1d\xb2\xe9\
+\xa5\xdb\xa4Q;6l?\xc6'\x8f\x18#\x81\xado\
+\x0c\x9b4\x7f\x0d\x1bK\xcb\x02F-\x83\xec\xe6/F\
+\xa7\x8d\xca\xc8_\xd3w\xa9GQ\xc3'\xa4\x19u\xa4\
+iah5\xbe\xc2C\x17\x86L\xf3\x09\x00\x93\xcf\xcf\
+/t\xf0\x8b\x06\x903\x09\xf8#&\x1c:\x15\xe8\xf1\
+r\xcc\x9e\xaex\xf1\xeb\xf6\xe9\xc27\xfc\xfe\xa8\x04\xf2\
+\xc8\xd8\xf9\xab6\xea\xd6\xf6\xef[t\xf4\xa7\x0d\xa0\xd6\
+\xe4\xc9\x0f$\xb0{\x91\x89\xefD\x89\x9d\xe6d\xea\xbf\
+\x95\x80\xffP\xb5E\xcc|_\x88\xa2\x00\x83y\xc0?\
+\xb4\xeej\x0d\xeb\xd3\x1d\xfc\x80K\xd6\xa6\xb1\x8cc9\
+\xb0v\xdf`\xa7r\x8bY\xf2\xee,\xde!,\x9c\x93\
+\xa1\xd3\xfd\x9e\xf7\x9f\xec\xc6\xc7\xc9\xec<xZ\xdf\xc4\
+\x97\xb3MZ4X\xec<p\x8e\xb9\xadJ6J\x00\
+\x1c*\xe5\x10\x18\xcf\xec\xc0c\xb6q\x0f\xd1}\x16 \
+C\xc9\x88YA\x07q\x9a\x19\x90\xc2\xa5\x8f\x8d\xd3\x98\
+\xbe\x13\x9cG\xe3\xc8\x1b\x94\x81\xb6\x9evx\xda\x06\x9e\
+{(F\xe0\xa0\xe0\x89\xe0\x8b\xd6l+\x97C\x17.\
+g\xe8\x8c\xc4\xec+\xa2\xf7\xf0\xb20\xfaA\x0a\x01\xae\
+(\x048\xae\xcc\x0c^\x1d\xb7[\x1cI\x7f\xff\xe7\x8e\
+\xfd\xdc\xa8\x8c\xdb\x87\x00oC\x807#+\xf7\x1d\xad\
+\xf1_\x10\xb1?\xd4\xd8\x1bX>GX\xca\x03\xd4 \
+\x0d\x11\xf3\x80\xf1CX\xf7\xb1\x9e\xbb\x07\xcb\x8bj\x8f\
+\x14<\xd5?z\x8f\x9b\x93G\xe3[\xd7\x81\xc4\xa1\xf7\
+:\xd5;\xe2\xa5\xda\xa4\xd5=t!\x1b\xf6\x1bX\x03\
+$\x00\xfe\xcd!p=\x9b\x05q1\x1e%?w\xe9\
+\x066#0\x96\xd9\xf9\xaca\x13<B\xcb\x1c\x1f\x8f\
+\x89.\xe7e\xf1lI\xccv\xb6n+h\xfc\xd6\xa3\
+z&>F\x14a\xca\x99\xa1[)\x80\x87\x98\x1d\xab\
+u\xcb\xd6\xec\xe6\xce\xa3X\x0aO\xe7J\x048\x9c\xcb\
+\x0bI\x91\x89\xe9\x0c\xa3\x0d\xac\x81\xb4\xe93\xca\x89\x1a\
+o\xdaHk\xbb\x00]^\xdej\xbe\x14\xf0\x1a\x99@\
+Q\xf8\xf8\x82\xd8\xd6\x9e\x1c\x8d\x09\xdf\xb7\xe8\xe4\x06\x1f\
+,\x1aw\xeft\xb3\x9a\xb6\x9f\xbc\xd2\xa54\xb1b1\
+\xfd{\x05N\xb1\xe0)\xe4\xf8]\x15n\x93\xd6\xea\xaa\
+\xd9\x9e~\x86-\x8d\xd9\xcd\xa6\xfa)D\xb0\xf5)%\
+\xc0\xcc\xc5\x09\x9c\x00\xce+71\xf7\xd5\x9b\x99W\xe8\
+\x16\xe6\x13\x91\xca\x9bO\x17\x84\xa5p\xf1\x8d\xd8\xc2\x02\
+\xd6\xa4\xb2\xc0\xe84\xb6<n\x17[\x9b\x9a\xc9\xe2\xb6\
+\x1d\xe1N\xe7z\x04\xbe\x9c\x0e\x1d\x9a\xf8\x90u\x1a\xda\
+\x8e\xa0G)\xa0/\x8d\xdc\xcd\x96D\xecb\x8b\xc3w\
+\xf1\xfe~$\x0d\xde\x0bT\x0a\xb4zH\xf6\xfd\x9c\x00\
+\xe7xvqMR\x06\x9b\xba Rl\x92YF\xe6\
+\xbe\x09-g\xe2L\xa0Z\xd2,D\xb3\xa7\xa3U\xa4\
+\xf8\xd1\x80\xd8\xd7\x81\x1aB\xc7P\x8aq\x06\xc5\x9e\xf3\
+H\xe6\x90\xcc#\x8f\xd5\xa7\x8f\xf5\xbc3\xbcd\xba\xe7\
+D\x85\xda\xa45\xbbj\xa4\x92k\x088g\x9e\xc1)\
+*\x02$2\xe7\x15\xfa\x04\xc0\xf6\xf3\xa0\x98\x1dlI\
+\xec.>\xe0*8q?\x0b\xdb\x94\xc1\xb7\xa6\xc5l\
+9,i\xbb\x0at3\x1c:\xfd\x0c])\xe8\xcb\x22\
+w\xf3\x12\xad\x02\xfcN>\xcf/(t\x07\x0b\x04\xc1\
+\xdc=\xfe\x0d\xbf\x1f\xde\x13\x99\x00XL\xc2<\x03\xfa\
+\x1e\xd3}\xa3(\xdc\xf5N\xa1\x84\xce\xb7D\x80\x0f_\
+\xf9\xc9`&\x86\x22\xd4%\xe65\xa50\xa3\x079%\
+\xc3)\x04\x19M\xbf\x85\x8c\xa1L\x94#83\xbe\xb0\
+\xc6>\xb4q\x0f\xe6\xe7\xe3\x94\xabM\xba\x9c]5\xd1\
+\x9b\x0e\xb1e\xebv3\xff\xc8m\xcc/\x22\x8dy\x87\
+m\xd5#\xc0\x8a\xf5{\xd8\xaa\xf8},b\xe3\x01\x16\
+\x05\xcfE\xc0\xcb\xef\xd0\x95\x82n\xa0\xedk\xd4\xdaN\
+\xa0\x87)\xa0\x07\x02\xe8\x0b\x83\xb7\xf3\xcd\x1dx\xfc\x0b\
+v\xf0\xf8\xaeL\xe3\xe9d\xbc\x17j\x02`\xd4\x81\xcb\
+\xcf\x1cX\xca\x94\x8d\x1e\xee\xab\x09\x83\xafhy\xae\xf9\
+\xa7\x95\xc4\xa5\xfe7\xb9\x13H4\x84\xfeL\x89\x86\x0e\
+Tc\xeeB\xbf\xc5\xbf\xbbK\xad\xe3\xd3\xc4\x98U<\
+\x22\xcdx\x9bt\xeeK\xb7I\x9b\xdfUc\x9eC\x17\
+f\x86C\xa76\xf1\x06\xda\x8e\xa0\x87\xa8@\xe7\xc0\xa7\
+\xf2\x0d\x1eX\xc3_\xb0l+\x7f/\xbc\x0f\xf8\x9d\x91\
+\xd4\x98b\xc6\xcf\x8d\xe4\xc4\xcf\xe4\xe0\xab\x94x\xdb\xf4\
+\xb6\x1aB\x18\xfc\xf9\xd5PUfL\x8cR\xfd\x8c\x88\
+\xf0\x0d}\x90\x1f\xc8G\x10\xd2\x94LU;\x0a[\xc6\
+u\x19n\xb7\x89\xcf\x1b\x82\xb5\xf7u\xb4I\x9b\xddU\
+c\xd4\xa13]\x84Q\xb4\xdd\x88\x89\x0f+5\xf1\x5c\
+\xdbW\xebk;\x07}\x05\x80\x0e\xc0\xe3\x1e\xbf\xf9K\
+\xb70\xaf\xa5)|\x93\x07^\x07\xbf\xab\xd8\x15$\x08\
+\x80\x9f\x0fI\x87E\x9f\xa1\xd3}\xd3\xa9?R\xea\xf1\
+\xff\x13\xdb\xe34:\x83?PM\xdb\x16'W~N\
+\xf2%\xadSh%:\x83\xb3\xe8\xcc\xe7\x07\x07\xc5\xbe\
+\xd66\xe9\x8av\xd5\x94:t\xfb\xccv\xe8\x16\x01\xe8\
+A&L\xbc\x8fJ\xdb\x11x/\x00\x1eA\xc7\x13\xc0\
+<\x16of\xee\x8b63\xb7\xa0d\xfe\x1a\xfc\x9e:\
+\x02$+\x04\xc0\xcf\x86\x07IaZ\xde\xb0\xc7\xffO\
+n\x8f\xd3\x18\xa5*O\xdb~\x9fHQKJ\xa1\x22\
+\x09~l\xda\xaeW\x1f,\xdf:\xf8E\x01\xc0g_\
+{\x9b\xb4\xe9\xae\x9a\xf29tK\xcbp\xe8\x04\xe8\xfe\
+\x00\xa0\x9f\xda\xc4//\x05\x1d\xf7\xf4)\xc0\x97\x82\x8e\
+{\xfc\xf0\x140\x97\x85\x9b\x98s\xc0F\xfez$\xf9\
+\x06\x15\x01\xb0\x22\xa8\xdd\xe3\xff\x9a\x86fi\x14MD\
+\x0e\xbd\xba\xbam\xfc\x97\xce\x03\xdb\x8e\x9c\xbd\xf8\xaa\xb5\
+[0K\x82\xf0\xaaL\x87n\xef\xabo\x93.\x8fC\
+\xb7\xca\xa8C\xb7\xab\x5c\x0e\x9db\xe2S9\xe8\x5c\xdb\
+%\x13\xaf\x03}Q\xb2\x02\xbc\x00}\xe1F\xbe\xc7\xcf\
+\xc9?\x89\xf7\xf6ck\x17Z&\xfc\x9e\xb1\xda\x04P\
+\xf5\xf8\xbf\x81]\xd3\xd2\x99\xf5\x95\xa5\xd6\xf1\x1a\xe4'\
+\xd4\x1f\xe6\xe0\xc7\x87(\xaeIJ\x7fcm\xd2\x91\x09\
+/\xe7\xd0-\xae\x80C\x87\xaf\x93M\xbc\xe7bCm\
+\xc7C\x1f\x9dI\xdb\x11x\x05\xf4$6\xc77\x91\x0b\
+n\xf3\xc2]\xc0\x82\x00Hb$\x80s)\x01T=\
+\xfeop\xd3\xacj\x82\x162\xf13q\xac\xbc\xe7\xca\
+\xa4W\xdf&m\xa4\x08\x13\x9dX1\x87n\xb9)\x87\
+N\xcf\xc4\xab\x1d\xbaT\x03\x87.\x19\xc8\xbb$&\x8d\
+M\xf7^\xab\xa7\xed\xae\x1a\xda\x8e\xa0\xcf\xf3S\xb4]\
+\x80\x8eg\x00\xce\xf2N`3\x17$p\xab\xa1\x10\xe0\
+\x08\xff^H\xde\xc9\x9e\xe1\xe2\x18\x18U\x8f\xbf<\x05\
+\xfc5\x93@\xe3$\xb1\xaf ^\xf5\xe2\xd5\xc3\xed\xc7\
+\x14\x87n\xdfkj\x936R\x841\xcf\xa1\xdbi\xb6\
+C\xe7\xadr\xe8\x90\x04AkR\xd9D\x8f\xd2\x1a\x84\
+\xadg$\x07[\xd1\xf6\x8d\x8a\xb6\xfb\xebk\xfbl\x01\
+\xbc\xf7\x066\x13\x80\xc7\x1d\xbe\xb8\xcd\x1b\x87= \x81\
+\xd0\xea\xc5\xd2\xc4\xd0\xc0\xf04~\xdd\xee\xa3\x1cv\xd2\
+)&\xdd\xdf\x86\xedr\x9aC\x14\x07O]\xc0O\x0d\
+\xabH\x9bt\xc4\x86\x03\x5c\xbb_E\x9b\xb4N\xdb5\
+L\xfc\xd2\x88\xb2\x1d:?3\x1c\xba\xb8-G\xd8\x89\
+\xf3E|t\xbb\xe5\x8c\x85\xff\xf5C\xeb\xae\x19\x9d\x86\
+N\xbe\x80\xdf\xdf\xda5\x98\xcd\xf5O\xd4\x81\xae\xa7\xed\
+\x04\xfaL\x09t\x07\xaf\xf5\x5cp\x93'\x92M\x0c\x8c\
+\x5c\xb1v7\x0f\x01-\x95\x1e\x7f1:WLN\x91\
+\x8e\x81y\xb3\x04x\x9f\x1c\x92\xc6\x83\xec\xbc\xf8\xf4\xcc\
+\xf2\xb6I\xc7\x00\xd0v\xbe\xeb\xd8\x14\x10\xbf\xb0\xd4\x97\
+j\x93^Y\x11\x87n\xb5)\x87N?fGBa\
+\x173NM\xbbX|\x93\x05Eo\xc5\xd9<\xff\x0f\
+\xbe?\xb6h%\xb5\x1fd}\x02\x1b5\xf1h\xf7\x19\
+\xde\xeb9\xe8\xb3%\x13\x8f\xda\x8e\xa0\xe3\xc9\xdf\x02t\
+<\xfc\x11\x05{\xfb\x91\xe4x\x7f\x16\x86\xa72\xecG\
+\xb0Rz\xfc\xc3h8\xf4\x10\xaa\x0d|\xa7\x7f\x0c\xcc\
+\x9b#@52C\xe8\x904\xc51fH\x80\xf2\xb4\
+I\xaf\x05\x0d\x9f\x11\x94\xa04yx*[\x9a&z\
+\x842\xbf\x90-\xe5n\x93\xd64\xf1\xe68t+\x0d\
+3tZ1\xfb\x8e\x83gY\xf6\x85b>%\x15\xb7\
+\xb5!\x01R3N*\x99\xba\xbe\xa3p\xbea4\xce\
+\xf6\xc5\x13\xce\x90\x04\xb8?o\x9a\xd7:=\x13/@\
+\xc7\xf3\xfe\x14\xd0\x15\xe0q\x7f?\xbeg\x04V=\xbd\
+#E\x1d\xe0.\x84\xd4\xa1Tw\x19G\xd5A\x8b7\
+\xbdYV\xed\x00\x8a.\xe2\x9fz\x8cv\xf4\xe6cf\
+\xd7\xed2\xdb\xa1sZ\xb6Q\x0f|\x1c\x8f\x8e\xc2\xcf\
+\xf3u\x0f\xe1'icC\xc5\xabu\xe8\x8c\x9b\xf8\xf9\
+&b\xf6-\xfbNq\x02\xe0\xf0\xcc\x1c~\xda\xf8M\
+>*o\x9ao$\x1b\xa0\x1cn\xb5\x8a*\xa3\x8b\x1a\
+5\xef\x10<\xcc\xc1\xff\x11\xf7\x0b\xdc\xa34\xb5\x1dA\
+\xb7Cq]\xc7\xec=\xd7\xe9\x0a@XN\xef8d\
+b:\x1d\x93\xe7L]A\x03I\xfb\x1bK#_\xde\
+\xd8\xd4\x14y\xcb\xb4\x8e\x00\xe8\xa0\xe0\x80IG\xbfh\
+=\x13o\xcc\xa1\xf3\x5c\x95\xc2[\xbbp8\x948\x19\
+\xf4;\x8bv\x1b\xb1\xa7\xa0m\xdf\xd1\x07\xc0\xa7\xb8\xcf\
+\x0f\xa9\x82u\xd0k\xc5&\xf3\x8a0\xe1\x8a\x89/\x97\
+C\xb7T_\xdb\xdd9\xf0R\xccN\x0e\x1d\x9a\xff\xec\
+\x5c$\xc0\x15=\x02\xac\x8a\xdf\xc9??\x80\xbe\x9c\xda\
+\xb3\xb1\x8f\xcf\x03\xfe\xbfh\x90\xdd\xfcb|l\xbcs\
+0\xb3u\x8b\xe6\xdb\xb8\xa7\x12\xe8|3\xa7\xcbZx\
+\xactsG\x97\xe1v\xc7\xa8/\xd0\x8f\xaa\xab\x93\xc8\
+\xf4\x8b)\xa1_\x91\xf6\xd7x\x93\x83\xb3\xb4N\x14G\
+\xc7\xa4s\x97\xe1S\x97\xe2\x97qZ\xbc\xde\xa4C\x17\
+\x00\xde\xad\xd8\xf5\x83\x8c\xa7\xb3\x01\xc3H\x8bV\xd0M\
+\x08i\xd9\xc3r\x07\xbf^P\xbcyE\x98r:t\
+\x9eF\xb4\xddE\xca\xd0\xc91\xfb\xd13\x05D\x80k\
+:\x02\x1c9}Q\xec^J#s\xed@\x8d\x9b3\
+\xb1\xbf\xaf\xbb\xd5tl\xa6\xf9\xb7\x88\x14\xc69\x05s\
+\xc1\xa3\xde\xc4\xdfz\x8f\x9f\x9b\xd3\xc8\xa2}85\x84\
+zP\xc9\xdd\x9az1:I\xc7\xe4\xd5\x95\xea\x00U\
+\xde4\x01\xe4\xb99\xdf\x91\x89\x1a\x0c\xce\xe0\x09\xbe\x85\
+< \x86\x85\xc5\xef\xd7s\xe8\xc2\xe3\xd3\x99\xfb\xb2\xc4\
+\xd2\xedL\xa5\x07\x1f-\xa2NX\x0f\xea)\xc0\xdf>\
+x\xb27>\xd7\x07\xac\x85)\x87N]\x84\xf1]\x95\
+\xaa\x17\xb3{.\xdb\xcc\x9c\x03\x13\x99S 8d~\
+q<fw\x09\xdch2C7O\xca\xd0\x09/~\
+\xe3\x8e\xe3\x9c\x00\xe79\x01np\x02\xe0h\x5c\x5c\x06\
+\x86N\xf3\xbdA\xe0O\xa0\xa4\xcd8\x9a{\xcc\x0f\xa8\
+\x06\x071\xb1\xaf\x8d\xf3\x89!\xd3|n\xa1\xf4\x9f\xe4\
+\x96\xd7m\xe4\xb4t:\x1c\xcb\x8f\xbe\xf3,z\xcdH\
+\xea\xc6jG\x9a/\xc0\xaf\xf5\xba\xb7\xc8\x9b;8\xa1\
+>9(\xfcp\xa5>\xd6\xf3v\x0bvO\x99\x1f\xc1\
+\xa6\xf9D\x81\xac\xd11\xbe\xdfD\x97\xc2&\xbf\xf6X\
+'\xedj\x99KC\x91'\xd3\x0d\xc4._\xc7\xeeV\
+\x0e\xfc:\x01!i\xbc\x08\xb3X\x1d\xb3\x1bq\xe8<\
+W\xa7\xb0\xf9a[\x98o$v\x05mg\xb3\x17\xc5\
+\x19\xb4\x83\xd9yE\x01\xe8\xe6e\xe8D\xf8\x16\x10\xb2\
+M\x8f\x0082\x17\x09\x10\xbf]\xd9\xdc\xf1s\xc7~\
+\x1e\x14\xae\x0d\xa6\xd2\xf8`:\xf7h\x02y\xf2\xb3\xa8\
+\xbd\xdbU\xa3\xd5{\x22=\xb7?\x95\xd7\xc5\xb9\x00_\
+\xa9\xc0\xaf\xfaF\xc17\xe2\x08\xd6\xa3\x0f\xfb+}q\
+\xebf\x1d\xfa\xfa`\x02\x034\xe3&\x8e\x94\xc3\x90\x06\
+\x7f\xb7\x06\xad&S\xe7%\xedj\x19C[\x9a\xfa\xd3\
+h\x18\x5c\xf7\xc6\xf6\x9b\xe8z\x18\xbb~\xb5\x1c:\x7f\
+\x13\x0e\x9d{\xf0fN\x00\xd1\x166\x15\xc8\x07\x9f\xe3\
+\xf7\xe6\xdd\x86\x1c\xfd\xb1M\xb7=\xa0}%\xe3\xc0\xf7\
+\x90\xb5}\xae\x89\x0c\xdd\x8c\x05\xc2\x8b\x8fg\x99\xd9\xf9\
+\x0a\x01\x8a\x90\x00\xb78\x01\xb2\xce^\x12\xbb{\xe2h\
+\x8aZ/\x8a\xd9;Q\xfa\xb6\x0f\x91a$Y\x87\xf1\
+\x1a\xad\xde}\xe85\xadU{\x1d>\x96\x9a>\xab\x98\
+<\x03\xe8\x0d&\x83>&\xa66\xa5>\xc2\xfe\xf4\xe5\
+\xec\x09d\xb7\x9f\xda\xf7^Bf\xce\x99\xd6G[i\
+WKw2w\xad\xa9\xfb\x08o\xc4 \xf0\xa4\x8bq\
+XrYE\x18\xd9\xa1\xf3\x5c\x96\xa2\x10@\xea\x0b\xb4\
+v\x0ff\xd8\xb1\x0c\xd7\xc4\xc3\x97\xd6w\x18ds\x0c\
+\x01s\xf4\x8e+\x05\xddwC\xa9\xb6/H0\x1a\xbe\
+a\x12\xe8\xfc\xa5k|r\xbaB\x80;|\x5c.^\
+\xaf\x8f\xcd\xbc]D\xe4.\xd4T\xfb3I\x0b\xfa^\
+\x1di\xdf^w\x92\xaeD\x92\xb6R\xab\xf77\xd2n\
+\xa7\xda\xaa\x16\xb0J\xff\xf1\xb6\xfc\xa8f\x09\xbd/\xe6\
+\x08\xd1\x97\xf8\x95\x96\x83\xa1\xd4!dC\x1e\xedDZ\
+\x1bG\x90\xa5\xe8&mnhL[\xbd~\xa4\x1b\xd6\
+\x83\xf7\xe8\xfb\xc6\x18\xef\xaa\xd1p\xe8\xdc\x97n\xe6}\
+\x812\x01x:\xd5jz.\x9d\xc1\x83\xdb\xaeBp\
+\x90\xc2$\xb7p\xd3\x19:\xcf\xd2\xf0\xcd\x9e\xc27t\
+\x18e\x02\x14q\x02\xdcS\x08`\xad#@\x07Z\xbb\
+\xc5Q\xf6\x0d\xe9\xdf\x8d\xe9\xfe4%iB\x7f\xfbV\
+\xea\xfa\xfdD\xd5\xf1[\xf5\x8d\x85{\xe5\xac\x09\xc8-\
+d\x8d\xa5\x0e\xa1\xaed\x12\xfb\xd0\xc0\x82\x1e\xc4\xfaV\
+R\xcb\xf3WRs\x09\xfa\x13M\x9a\xb6\xeb\xd5\x8fO\
+(\xf7\x8f3\xe8\xaaQg\xe8\xf4\x8a0\xcb\xf4\x1bC\
+\xddi\xe3E\xcb\x9e\x96i\xd4\xbd\x8c\x9b/\xfc\xd1\x09\
+\xc3d\x8dl\xe2\x8de\xe8\xd4\xe1\x9b\x9a\x00\x19\xc7s\
+\xf8{t\x1a:)R\xca\xd85&M\x16\x9bR\xea\
+R\xd6Tn\xa4\xa9\xa71\xef\xbf\xe6+\xef\xf8}M\
+K\x81\x18.\xf91}\xb9\x06\xd4>\xd6\x94v\xf3Z\
+\x904\xa3\x96\xb2o\xa4m\x5c\x1f\x11\xeb?\xa2\x9b\xf2\
+=\xac\xa7\xfcx6\x97\xa0$\xb3\xbaj\x84C\xe7\xa2\
+\x22\x80C\xc0Z\x11\xa7\xaf\xa0%\x08\xe3\xeb\xb9\xb0\x0c\
+$pg\xd0#Z3C\xa7\x03\xddM\x01}\x8a\xcb\
+:>\x8f\xd7\xd69\x86\xed<xN\x8f\x00\x8b\xd7\xa6\
+\xf2\xf7h\xdc\xb2\xf3\x1c\xe9\xb43y\x98EM\x12\xb9\
+\x99\xe6\x03\xe9\xff\xa2\xcd\xbb\xfa_\x06\xf82Z\xc8j\
+I\xbd\x84_\x90\x86\xd7\x97N\xb9\xa8'\x99\xba\xf7\xa5\
+}{\xef\xcba%_\x02|b\xcc\xee\xaaA\x87\x0e\
+O!\x17\x04\x98\x1f\x9a\xc2\xb7\x8e\x0d\x9c\xe2u\x85\xc0\
+w\xa0H\x03\x97\xa3\xe9\xb8\xd9\xc5\xc6%L\xcf\xc4\x0b\
+\xd0\x85\xb6s\xd0\xf9\x10\xc6\xd2I\x9cx\x8a\x1a\x12\x00\
+OL\xc1s\x13h\x94\xcdI\xf2k\xfa\xd1\xfa\xdf@\
+J\xdaT\x936\xa9VSIU\x8d#\xef\xff\x1a\xc0\
+\x97\xd1B&\xda\xc7jQ\xc9XHmb\xbf\xbc\xb9\
+\xa1\xaa\xd4\x5cR\x87\xacC[<\xc0j\xb2G\x84\x0e\
+t\xf7\xb2\xbaj\xfc\x139\x01\xdcV'\xf3\x09dX\
+\xad\xb3*\x1d\x9a\xe4H\x9e\xb7%\x9d\xc13\xb6\xff$\
+\xd7Ln\x05\x00p\xd9\xc4O\x91A\xa7\xd9{B\xd0\
+_8GK\xc0\xd6\xf4\x13\xfc=\x869\x04<\xfa\xbe\
+E\xc7\x05&\x8e\xbb\xab\x22\x9d\xe8UY\x0d\xf6_\x12\
+p3:\x86\xd4\xadc\xb2T\xd3`\xbd\x9cW\xe0'\
+u\x0e\x98\xec\xce\x13AxR\x86\xa9\x0c\x9d\x88\xd9\xe7\
+\x04*\x04p\x0c\x8c\xe5\xd54e]\x9e\xbc\x93\xcc\xbe\
+5\x85b=\xc5\x1e\x87_:\x0f\x98\xcbK\xb8\xce\xa1\
+z&^\x0d\xba,\x09iYl\xdb\x81S\xb0\xd4\xc4\
++#\xd9\x1c\xfc\x1f\xc3\xf2\xb2\x98\x086\x9c<\xfd\x1f\
+\xdex\xc9\xf6-\xb2\x08\xc6\xa4\x92\xc6s\xf5\xb6\xa87\
+i\xdb}\xb8\xd5\xdc\xa5\xff\x89\xc7\xa3\xcc\x0bH2\xdd\
+U\xe3\x93\xc0\xec}\xd7\xb2q\x04<\x8eP\xb1\xe82\
+0\x8er\xf3\xb6\xe4\x9cu\xa5\x90\xab-\xfd{(\x8e\
+\xa5\xc5\xe7\xdb8\x85\x9b\x04\x1e\x05\xc3F\xe7\xa5\xebu\
+\x99L*\xda\x04JS\xb9\xfa\x90\xf9oh\xd6\xd1\xed\
+\xef~\x0c\xfc\x08\xf5!\x8d\xdd\xc0Y\xf3\xe3Z\xea\x12\
+\xcck\xecZ]5\xd3\xbdb\x19\xd6\xe0Em\x01<\
+\xfem\xb4W\xd1\x93r\x11\xc3\x09\xf0\x16R\x08\xd6\x8a\
+\xac\xc1\xe8\x81S<\xb3\xf1\xb5c\x9d\x82\xf9\xbc}5\
+\xf0\x13\x9d\xa2u\x03\x98\xa5\x14v8E\x14N\xe4S\
+\x0c\xa6\x1c\xc8\x8f\xe4\xf7\xd4~+\xd2\xb6\x7f1\x8b\xa1\
+7\x96U\x1c`\xd5n\xc0\xf8\xc5bw\xf2\x04\xd70\
+f\xeb\xbe\x86Mv\x8f\xe4b\xe3ZZM\xa3\xa2\xd2\
+j\xd2JW:\x83x\x04%]ZHs\x03\x1a\x12\
+P\x22s9\xa1\xc7\xe8\x19i\xe2=\xf0\xfc\x1d\x9c\xb9\
+/\xa4\xb4h3\xe7\x82T\xbb\xf0\xa2\x84\x96\x0d\x81/\
+\x8a6\x0d^\xd7I\xe7\x7fG\x02\xc8\xb3\x0a\xeb\x933\
+\x85\x9a;\x02C,<Ul\xc4\xac\xa0\xe7\xfa[\xd4\
+\x83\xfe\x00\xf0\xb2I#\xe5\x89Y\x93\xc8\xd9\x13\xe7\xed\
+6\x92\xc2\xcezt\xfd\x9fh\xcdF\x00'}\xdf\xa2\
+\x93g\xf7Q\x0e\xbby\xc1\xc6\xde\xe7\x0e6e\xa0\xf4\
+\xb1\x9ew\xb6\xc9\xaf=\xa34R\xd8V\xb4\x13\xaa\x83\
+\xaabW\xeb\xad\xcc\xde\xfdE|\x06\xf9\x00\xabo\xa5\
+C*F\xd2Mw\xa2\xe9X\x01\xd44\x81\xa0\xf8R\
+\x987G51\xab\x13\xe5 \xbe\x95\xf2\xea\xb5\xa5\x83\
+0\xbe&\x92u\x22\x12X\x933\xe7BD\xf2\xa5*\
+\xa5\x17\xfdM\xa4\xb0GS\xbc\xdf\x95\x96\x92\x1f\x89P\
+u\xa5\xd1u\xef\xd6\xfe\x97\xb4\x02\x1f\x12h\x8d\x88\x04\
+\xdd\xc8\x91\x1bO ;\x12 3h\x9d\x9f(\x0dN\
+\x92'f}\xad\x1a'\xf7\x9e\x94\xab\x10$hF\xeb\
+w_\xf2\x17\xc6\x13\xd0SI&\xd3\xdfF\x10\xb1\xba\
+J\xc3\x1b\xbe\xa55\xbf\x8e4\xbc\xb2\xea[S\xb4\xf9\
+\x8b:\x83\xf2\x01V\x9fSb\xe8\x17\x02\xa9'\xb5H\
+Y\x12 \x96\xa4\xbd}\xa4\xc1I\x02\x98\x7fj\x9c\xa4\
+YU\xe3,\x84\xfa\x14\xba\xb5\xa4%\xa1'\x01=\x90\
+\xa4\x1f\xfd\xad#=\xa7\xa94\x9f\xa7\xaej0S\x95\
+w\xe0\xbf\xba\xa5@\x90\xe03r\xae\x1a\x13\x11ZS\
+\x9d\xa1\x03\x91\xa2\x8d\xc6\xe0\xa4\xbaF&fU\xd6\xd8\
+\x01]\x87\xb4X8\x87\xbf\x10\xd0\xad\xc9\xc47\x97\x0a\
+V\x0d\xa5\x1c\x7f\xc5\x073\xbd\xfb1\x9b\x04\xefI \
+\xd5\x93\xb6\xa97\x22\xaf\xbe\x91\xaa\x9af\x0c\x18\x1d8\
+\x1ag#\xc9s\x02?\xa7\xf7\x10\xd1BC\xba\xb68\
+\xa8\xb9\xce+\x9d\xcf\xf3\xee\xc7\x18\x09,h~!\x0e\
+\xb1\xb4\xc09\xb78\xec\xf8\x03\xe5\xa4s\x0b<\x01\x0b\
+\xe7\xdf\x7fJ\xbf\xf1\xff\x1f\xe1\x89\x188\x13\x1f\x8fG\
+SNC\xe5\xaf\xad\xac9\x22U\xff=\xaa\xd1kj\
+J\xef\x81\xe3\xd5\xeb\x90|\xa4\x1c\xb0\x8dg,\xf3\xcf\
+!\xae_\xd9\xd4\xf5\xdf\xfd\xbc\x82\x9f\xfa?\xfcR\x09\
+\xa42HU\x90\xea \xff\x00\xa9\x01RS\x92\x1a\xf4\
+w|\xbc\x1a=\x1f\xa5R9\xae_\x99^+\xde\xe3\
+=I\xfeAR\x8d>\x87\xd9\xd7\x7f\xf7\xf3\x8a~\xbe\
+\xfa\xbeY%\x90\xca$U@\xaaJREz\x0c\xa5\
+\xd2K^_\xbcG\x95Wq\xedw?\x7f\xc2\xcf?\
+\xbfmRI\xc8\xbb\xbb\xf1\xee\xe7\xddO\x05~\xfe?\
+\xaeY\xd8\xf4\x1d\xfb\xf58\x00\x00\x00%tEXt\
+date:create\x002010\
+-02-10T01:44:25-\
+06:00\x0e\xe0\x0c\x1b\x00\x00\x00%tEX\
+tdate:modify\x00200\
+4-05-23T19:30:34\
+-05:00\x17\xb7\x8ah\x00\x00\x00\x00IE\
+ND\xaeB`\x82\
+\x00\x00+\xc0\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3>a\xcb\
+\x00\x00\x00\x09pHYs\x00\x00\x1b\xaf\x00\x00\x1b\xaf\
+\x01^\x1a\x91\x1c\x00\x00\x00\x07tIME\x07\xd7\x0c\
+\x1b\x16\x028\x83\x98\xbev\x00\x00\x00\x06bKGD\
+\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00+MID\
+ATx\xda\xec}\x0b\x98\x1dGu\xe6\xa9\xee{\xef\
+\xbcG\xa3\xd1s4\x92,K\xb24zX\x96%[\
+\xd8\x18l$\x1b\x1c\xb2!` vx\x85\x04\xb0\x9c\
+\x00\xbb\xd9\x0d!l\xbe\xddM\x80\x04\x16\xf2e\x13v\
+\x93\xfd\x92\xdd\x95\x8d\xf1\x02\x1f\xb6\xc3\xe2\xe5e\xcb\x18\
+Y\x0f\x83\xf1\xfb%\x8d\xde\xb2,\xcfhF\xf3~\xdc\
+\xb9s_\xdd\xb5\xe7\xd4\xdc\xfa\xaa{\xce\xed\xee{\xaf\
+\xee\x05\x99\x9dc\x97\xba\xbb\xba\xfbvW\xfd\x7f\x9ds\
+\xeaTu\x0d\xcc\xc9\x9c\xcc\xc9\x9c\xcc\xc9\x9c\xcc\xc9\xff\
+\x97\x22\xa0B\x91\xe0\x97\xdb\x01\xacM\xb8\xfd\x1dL\x1b\
+aNj!\xdd\x98\x1e\xc4t\x04\xd3\x03\x00n5\x80\
+\x14\x95\x00\xdf\x8d`\xb7\xe2\xb6\x1e@\xa40\xad\xc4\xfd\
+S\x85}\x98\x93\x9aK#\x80\x5c\x8b\xe9\x5ca?\x8d\
+ib\xa6\xe1\xb9\xa2F\x04 \xc6\x89\xab1\x0d\xcf\xb4\
+t\x11\x03\xb0S\xcd\xcd\x96\xed\xbaVFJ\xcb\xb1m\
+\x01\xb1\x98\x88\x03@\x0c\xe6\xa4\x16\x92\xc7\x94S;y\
+i;\x8e\xac\x13\xc2u,\xcbmL&]<\xe7\xa0\
+f\x90\x0b\x00\xdc\x17p{;\xa6\xaa\x10@\x16\xae\xeb\
+\x9bi\xe1\xb1\xb6D\x22\xe6\xdav\x5c\xc6bq\xe98\
+q\xb7\xae.\x1ekl\x8c\xdb\xf1xB\x02\x08\x1b\xe6\
+\xd4@\xad\x84\xb0p\x80*\xd9\x96\xd0\xd9)\x1d)s\
+\xd0\xd3\x93\x96CC\x19\x91\xcf\xe7,\xc7\xc9\x8de\xb3\
+\xf9F\xa4H\x07]\x8e)\x0a\x8bX\x89$\xb1\xd2\x00\
+\xf1\xfa\x96\x96D^\xcaz\xb9x\xf1\xfclG\xc7m\
+\xd0\xd0\xf0\x0e)\xe5\x95\xe9T\xaa5;:\x9a\x00)\
+k_\x09\xbf\xa4kd\x85\xef#\xab\xfe^<\xdf\x8a\
+\xc7\xa1\xb1\xb55k77O\xd9\xabWw\xdb\x00\xfb\
+\x12\xbd\xbd\x0f\xe4\x7f\xf1\x8b\x81\xfa\xba\xbatzr2\
+[P\x16.\xddZ\xb1\x06\x90\x05\xf0/ \xf8\xf9\xe6\
+\xe6\x86x\x22\xd1\x94\xbb\xf6\xda\x0f\xda\x1d\x1d\x9f\xb1[\
+Z\x16\xbb\xb9\x1c\xb8SS\x90\xbdp\x01\xd2\xe7\xd0\x22\
+Iy\xd1\xe0\x8a\xda\x00^98\x95\x83n\xceW\xf9\
+\x9cUW\x07-\x9b6A|\xfe|\x8855\xa9c\
+7\x9d\x1e\xce\xf7\xf5\xfd]\xe2\xa7?\xfd\xdf\xb9d2\
+\x19K&\xa7\x97\x14H B\x1e\x13\x8b\x00\x9fT\x7f\
+\x5c655\xc4\xda\xdb\xe7\xbb7\xdd\xf47\xcd]]\
+\xef\xb3\x12\x09\xc8\xa7R\xe0LN\x82\x10\x02\xc4\xd0P\
+\xe5\xa0\xd7\xa6\xa5DK\xad\x00\xaf\xdd\xbb\x9bk\x84\x00\
+\xbb\xb1Q\x81oSjn\x86xs\xf3\x02g\xf9\xf2\
+/M\xc6\xe3\xdb\xe2\x0f?\xfcYGJ\xe8\xc3\xc6\xd9\
+\x01\x90\xa5{\x82H\x10\x0b\xb3\xfb\x83t\xbe\xa5\xa5N\
+\xc4b-\xf2\xado\xfdj\xeb\xce\x9d\x0a|'\x99\x84\
+\x98\x10\x9e\x1b$\xb8\x8eSS\x15/\xab\x0f0\xff\xcd\
+\x1a<[\xd6\x80\xd4BJ\xb0\x1a\x1a\x08x\x22\x00\x11\
+A\x11\x22\xbe`\x01B!\xdf7\xd4\xdf\x9fm:p\
+\xe0s\x88\x9d;89\xe9.\x02\xc8\xcb\x00\x7f \x16\
+f\xf7\xf1d<\xe58\x8d\xd6\xb6mw\xb4^y\xe5\
+\xfb\xe9!\x22\x1eW\x0ct\xf1\xe1n&\x03\xaeeA\
+l\xf5jX\xb8p!\xc4\x17/\x06\xc0\xe3*Hm\
+[tm\x9f_\xf3\x86\xe0&\x93J\xed\x03\x99\xe0T\
+\x8a\x9cB\x10\xd9\xac\xc2\x830\xaa_\xb5\xea\x03c\xe7\
+\xce=\xddt\xf6\xec\xfd\xf5\x08\xbe\xc7\x17\x90%\x11\x80\
+\xfa\xf4m\x08\xe5tSS\xa2\xae\xb5\xb5M\xae\x5c\xf9\
+\x19\xab\xbe\x1e\x1cT)b\xd92\x80\xae.\x10\xf8\xb0\
+&\xb4A\xa2\xb5\x15&{{!36\x06\xd3\xd9,\
+1\x10\xe6\xa4\xb6BX\xc4\x10\xe8\xe6\x8e\x0e\xa8\x9f7\
+\x0f\xb2##\x90A?L\x9e:\x05\x12\xc9\x11\xc7\xc6\
+(\xdb\xdb\xff,\xd6\xd3\xf3H\xb2\xa9)\x8d\xb8\xe5\xc6\
+\x02\x1c\xc2X\x10\xf3\x86\xe8\x9c\x94u\xa9\x85\x0b\xdf\xd3\
+\xd2\xd6\xb6\x84\x98\x96ok\x03\x81\xaa\x87\xfa\xfau\xd8\
+\xeaGN\x9e\x84\xd1'\x9f\x04\xe9\xba0'\xbf|\x19\
+C\xc0\x9b\xb1A.\xbd\xf6Z\xc8\x0c\x0f\xc3\x94m+\
+s\x1cC\xcd`\xcf\x9b\xd71\xd4\xde\xfe\xdb\xed\x03\x03\
+\xf7\x01@f\xed\x8c\x19\x00Q\x8a\x06\x18\xa3\xd6\xdf\xd8\
+h\xa3\x9dO\xe4[[o&\x80S\xd8\xba\x01S\x0c\
+\x1f\xd4\xb0f\x0d\xf4=\xfb,$\xcf\x9f\x879\xf9\xd5\
+\xcadO\x0f\xd8h\x0e\x16l\xd8\x00\xe3/\xbf\x0c\xd3\
+\xa8\xa5\xed\xe9i@\xbf\x0d\x9c\xfa\xfa\x9b\x11\xc3\xef\x10\
+\x96c\xa9\x94\xd5\x06\xe0Fj\x80/\x00\x88\xdd\x98\xb2\
+\xaek\xa3mI\xb8 \xb7`?\x1fr\xe4\xf8\x0d\x0d\
+);?\x8e\xc0\xd3\x83\xe7\xe4\xd2\x90\xf1\xd3\xa7\xa1e\
+\xc5\x0a\xb2\xfd0\xf6\xfc\xf3\x90Es\x9cH\xa7\xc1\x11\
+\xe2*\x07 AXN\x03\x88\xff\x8a\x89\x94|(\x01\
+\xfe\x92\xbc\x7fL\xf5\x96e\xb9R\xc6\x9ct\xa6u\xa2\
+\xfb\x08@C\xa3\xf2:\x1b\xd7\xaf\x87\xe1\xe3\xc7\x01\xe6\
+\xd4\xfe%#.b1~\xe6\x0c$\xd0\x1f8\xbfw\
+\xafr\x0e\x85\xe3\xc0\xc2\xa6\xa66\x89\x18\x12\x96\x08\xb4\
+ l?\x1fB\x00\xc3(\x00\xd1h\xdb\x16\xe4\xf3\xb1\
+\xa9\xfe\xbe\xba\xb1\xbe~\xd02\xff\xfd\xef\x07'\x9f\x87\
+9\xb9\xb4\x84\x9c\xf0f\xd4\x02\xd3\x14\x9f)\x98\xe6\xfa\
+e\xcb\xea\x00\x09\x80\xe6\xc0\x22L\x17\x95\xda\x0d\x14\x98\
+\xf2R\x0a\x89\xbb\xd3\x93I\xc50-\x0e\xc0\x9c\xd3w\
+\x09J\x1eU>\x8e\xc7\x80@\x7f@\xcbT\x12\xb1S\
+a\x03)D9\x91\xc0v\x001N7Ii\xe5\xd2\
+i\x7f\x1f4\x93\x99\xeb\xea]\x82\x22\x1d\x07t\x840\
+W\xc8\xcb\x12v3\xa6\x5c\x10\xa6e\x85\x82]Pw\
+\x88<\xaa{9\xebAs\xf0_rb\x1a\xa5\x10\xa0\
+\xf1!\xec\xdcDBp\xbc\xa2}\x00\x05>%\xaf\xfa\
+\x879\xf5\x7f\xe9J\x11\x5c\x1c\xcc#\x0c\x01\x13a:\
+\xbf\x14\x02\x9c\xc24\x8d\xa9\xb1@\x00\x1f\xf8\x05\x02\xcc\
+Q\xe0R\x13\xd30\xa5\xd1\x00j\xab|\x00L)\xc2\
+\xb6\x14\x02\xf4`ZP0\x01\x16\xfe/\x01j\xaa\x01\
+\x1cL\x8f\x9f=\x0b\xcf\xbe\xf6\x1aLb\x00\xe3\xf2%\
+K\xe0\xb77n\x84\xc5\xe8\xcc\xfc:I?\xda\xe3\x1f\
+vw\xc3\x99\x81\x01hE;\xbd\x03\xfb\xec7\xad\x5c\
+\x09vU\x09\xc0:\xfa\xb4o\xb9\x1a\xdbRM\xc0<\
+LycW\x8cTY\x03\xd03\xee{\xe9%\xe8\xc5\
+.LKK\x0b,\xc6q\x85!$\xc1?\xfd\xecg\
+\xf0\xc1\xed\xdba\x0d\xe6\xfd:\xc8q,\xdf\xfd/\xbc\
+\x00\xf5\x18F_\x82\x04w\x1c\x07\x0ea\xf0\xe6,\xc6\
+\xf0?\xbce\x0b\xc4\xaa\xe4\x03\x88\x82\x060\xe0\xab\x13\
+`\x170\x1d.\x95\x00Y\x00\xea\x01\x08\x04\xdab\xa3\
+SU\xd2\x009L\xf7\x1f;\x06yl\xe9\xef|\xe7\
+;\xe1\x8a+\xae\x80:\xdc\xef\xef\xef\x87\x17\xb0\xb2\x1e\
+:z\x14nCM\xb0\x1a[\xcb\x1bYNNN\xc2\
+\x0fO\x9c\x80-W]\x05\xdb\xb6m\x83\xc5\x18IM\
+\xa368\x81y\xcfc\xd4\xee~,\xe7\x1d8\xb8\x16\
+\x93\xf2b\x09\xa01\xf2m\x09C\x0b\xb1$L\xa1\x0c\
+\x02@\xbc\xe0<\x143\x01\xb2\x0a\xe0\x7f\x17\x072\x00\
+#\x8b\xef\xba\xf9f\xb8\x0a+\xa7\x09\xc7\xb4\x85\x10\x8a\
+\x08\xabq\xa0i\xdf\xbe}\xf0#\x8cm\xff\xd6\xda\xb5\
+\xb0\x0aG\xbf\xde\x88r\x1a\xe3\xf2\x8f\xbc\xfa*\x5c\xbb\
+c\x07\xec\xda\xb5\x0b\x96\xe1\xc0M,\x16#\xb0T9\
+\x97/_\x0e\x8f=\xf6\x18|\x17\x07\xd5\xde\xbbf\xcd\
+\xc5\x91\x80\x1c\xbe\xe2C\xc9\xc2\xc5\x94+wF\x90\xf0\
+ld\x15\x09\x90G\x90\x1fB{O\xc3\xc8\xb7\x16\xc0\
+o4\xad\x5ci\x81\xcb.\xbb\x0cn\xbd\xf5VUY\
+{_y\x05~\x03\x8fW&\x12\xf0F\x923h\xca\
+~\xf2\xfa\xeb\xb0\xfd\x9ak\x14\xf8\x1d8tk\xdb\xb6\
+1\xb3\x18\xb6\xdd\x8ef\x8e\xcaH$\xf8>\xfaA\xef\
+Z\xb9\x92HP\xb9\x0f D\xb1)v\xa2\x82I\xa1\
+\xc6{\x94U$\x00\x81\xff#\x1cD\xb2\x10\xfc]o\
+{\x1blA\xfbg\xc07B\x15E\xad\xe5\x96[n\
+Q\xfb\x8f\x1d>\x0c\xb7tv\xc2\x0a\xac\xac7\x82\x9c\
+\xcdd`?\x9a\xb2m\x08\xf0\xdb\xb0\x9cK\x97.5\
+\xe0\x1bQZo\xeb\xd6\xad@\xb2\x7f\xff~\xf8qo\
+/\xfc&\x96\xdbv\xdd\xaa\xf5\x02\x1c\xde\x9b\x8b&@\
+\xbd\x0e\xf9V\xd1\x04\x10\xf8{\xd1\x03\x16\xc8\xfc]7\
+\xdd\x04\x9b7o\xf6\x83\xcfI\xa0Z\xcd\xce\x9d;\xd5\
+\xfe~\xf4\xa0w\xa2\xfd\xec\xb4,\xb8\x94\xe5\x5c.\x07\
+\x87p\xc8|\xeb\xd5W\xc3\x8d7\xdeHN\x9f\x01\x9f\
+\x0b\xd5\x81\x22\x81\x85\xe5:x\xf0 \xec\xc5\x89\x1d\xef\
+X\xb4\xa8l\x12\x18\x87\x9d\x9b\x00A\x98\x96J\x80U\
+\x05'P1G\xcab&\xa0\x22\xf0\x1fC\x8f\xd7B\
+\xf0oz\xeb[a\xe3\xc6\x8d\x0c\xfc0\x12PE\xd2\
+\xfe!t\x98n\xc4YH\xcb\x84\x80KQ^w\x1c\
+\xf8\xf9\xf8\xb82k7\xdcp\x03\x03?\x8c\x04\xa4\x0d\
+\x89\x04\x87\x0e\x1d\x82}\xa3\xa3\xb0\x0b\xeb\xaa,\x12\xe8\
+k\x85\xf0;\x82\x88a\xbe\xa0\xcdW\x95J\x80\x13\x98\
+\x5c\xea>\x04\x98\x80r(@*\xe9 MR@\xe0\
+\xa8R\xba\xba\xba\x18\xf8\xa5\x90\xe0\xadH\x1c\xaa\xa0'\
+q(\xfaz\xec\x1e.\xbd\xc4\xc6#\xceK\x09O%\
+\x93p\xe5\x95W\xc2\xf5\xd7_\xcf\xc1\x8f&\x01iE\
+\xe5\x08?\x89\xb3\xac\x0e\xa5Rpc}=\x01[\x96\
+\x06\x90|\x22\xaa(`\x09\xe1\x04\xe0'\x84S\x85@\
+\xd0kX\x08\x0b\xc1\xbf\xfeMoR\xe07`_\xb8\
+\x5c!\xe0\xa9\xfbD\x04\xa2J}\x06\xbbP;\xa8O\
+\xed8\x97\x06\xf8\x98\x9eE\xbb\xbf\x09\x01|\x13\x96\x13\
+\xdf\x95\xde\x99@!@\xcb\x22\xc1\xa6M\x9b\xd4\xbdO\
+?\xfd4\xf4\xe0v96\x9ep\xe1\xb8H\xbf/g\
+\x11\x96e;\x81\xf9\x5cN;\x0f\x17\xa5\x01\x12\xe8\xc1\
+_\x8f\xdd\x9du\xeb\xd6U\x00\xbea6\x01\xbf\x08m\
+\xe3u\xd7]\xa7*\xe89\xecF^\x83N\xe1\xc2_\
+\xf1\xdc\x84\x0b\xf8./\x22\x117\xa0Y\xbb\xf6\xdak\
+\xe9\x1d\xbd\xe0WD\x82\x0d\x1b6\xa8\xf2\x8e\xe0\xb8\xbe\
+\xdb\xdd]\x1e\x01x\xdcF\xe41\xc5\xcb!\x00q\xae\
+\x0e\x13\xeb\x05T\x10\x08\xba\x12\x9d\xa1y\xed\xedP_\
+__\x09\xf8\x8c\x044\xfd|\xc7\x8e\x1dj\xffE$\
+\xc1V\x22A6\x0b\xbf\x0a\x19\xc0g\xbf\x8c\xdb\xf5]\
+]\xd4\xa5S\xef\xa6A\xd7[-\xe5\x92`=\xce\xbc\
+\x9aD2\x0d`\x0f\xa8$\xd1D\xe3f@\xe5N\x95\
+\xab\x01\x94\x13X\x85^@\x13\x82Ca^\x0a\x7f\xba\
+\xae[!\xf8&O\x93\x80*\x9cZ\xdaa\x9c\x0a\xb5\
+9\x91\x80\x05\xe94\xfc2e\x10\x9fy\x04\x09\xb0~\
+\xedZ\xe5\xc5/X\xb0\x80\xde\x87\xbd\xb3!\x82\xda/\
+\xd9\xe4\xb5bW\xd9\xe9\xef\xa7\xfa.+\x0e`\x86\x83\
+\x0d\x01\xdcrM@KaDPV!\x10\xd4\x8f\x11\
+\xbd\xc5\xd8B\xe2\xf18\x85@\x89\x04e\x82\xcfI@\
+\x15D$\xb8\x1a\xb5\x0b\xed\x1f\xc3 \xca\x06\x1a\xeeD\
+\xc7\xe9\x97!C\xa8\xcd\x8ec\xbab\xf5j\xe5\xbd\xb7\
+\xb7\xb73\xa0=Z\x80\x9d\x8b\x02_iK\xbc\xbe\x1f\
+c\x03\xb2\x02'\xd0l\x0d\x86-\xe5\x10 W\xe86\
+\x08)/:\x104\x85v\xec\xd4w\xbf\x0b]\x1f\xf8\
+\x00\x15L\x93\xa0b\xf0It\xa5R\xab\xa3.\x17U\
+\xdaI\xfc8u\x1d\xe6\xcfC\xa7\xa9\x962\x82~\xcc\
+)\x0ca\xafY\xb5Jy\xed\xf3\xe9\xe3\x18!\x02[\
+~\xb4&\xe0\xe0St\xf0\xd8\xfd\xf7\xc3TooE\
+\xdd@\x1ff\x84!>0W\xceX@\x0a\x93M\xa9\
+J\x81\xa0\x81\xe7\x9e\x03\x81\x85[\x7f\xc7\x1d\x8c\x04\x0c\
+\xfc2I@\xad\x8f\xba^d\x1a\xce`\xe8u5\xe6\
+\xb5NL@-d\x0c#w\xaf\xb6\xb5\xc1jtl\
+)\x96\xd1\x86\xfb\x1e\xf0\xc3\x81\xe7\xfb\x81\xe0\x9fx\xf0\
+A\x18x\xe6\x99\xca\x22\x81\xc5\xc7\x02 U\xae\x06\x88\
+\x11\xf8\xbc\x1bH\xc0U\xe6-?\xf5\x94Rk\xeb\x7f\
+\xf7w\x19\x09\xca\x04\x9fU0\xb5B\xdd}:\x87\xa1\
+\xe6\xcb\xf0|\x0b\x06d\xaa)\xe3\xe8\xc7\x9cC\xb3\xb3\
+j\xc5\x0a\xea\xceR,?\x08|\xb6\x0d!\x01\x07\xff\
+\x81\x07\xa0\xff\x17\xbf\xa8|>\x007\x01\x16\xe6\x95\xae\
+\x01\x9e\xf38\x81v\xb1\xd0\xe2E\xcc\x07\xe8\xc3\x82\xd1\
+\x8bv}\xf0\x83^\x12T\x02>\xabx\x02\x84\xbaO\
+T\x99\xbdX\x91\x9dx\xae\x09\xc7\xe1\xab!I\xfc\xed\
+^\x8c\xe7\xaf\xec\xec\xa4\xee,9h\xc1-\xdd/\x91\
+$ \xcd\xa5\xc1?\x8ej\xbf\x0f\x83@\x15\x89\x94^\
+\xf5\xcf\xc6\x03\x14\xb6\xa5j\x80D\x81In\x0df\x04\
+\x11\xbb\xa9\xf0\x1b>\xf4!M\x02\xea!P^\xe5~\
+\x81\xf1\x9c\x09 U\xa9\xfdX\xa1\x1d\xd4\xa5\x1a\x1d)\
+\x7fU$\xe9\x05\xbf\x0d\xfa\x11\xf8\xe58H\xb3v\xed\
+Z\x0d>{~\x08\xe0\x81\xe6\x80\xde\x99F?\x95\xcd\
+\xff\xcew\xa0\xff\xe7?\xbf\xb8\x09!\xbc\x17\xa00\x14\
+\x05Le9\x04\xc8b\xb2\x00D-f\x04\x11\xcb\xe9\
+\x857~\xf8\xc3\x8a\x04\xd3\xd3\xd3D\x02\x06ri\xe0\
+s\x12\xacY\xb3F\xed_@\x22,\x01\x09\x8d#\xc3\
+\x15}\xef=5\xbf\x1d\x06/[\x05\x9d\x18\x8a^\x85\
+N_sss1\x13\xa4\xf3J6\x01$\x1a|\xea\
+\x1d\x1d\xfb\xf6\xb7\xe1|(\xf8\x95G\x02\x89\x12n\x01\
+\xd3L9\x1f\x86\xc8|^\xb8\xb6-\xcc\x8fVwN\
+\xa0b;\x91\xe0#\x1fQ\x11\xc2T*E$\xa8\x10\
+|N\x82\xcb/\xbf\x5c\xed\x0f\xc6l\xd5\x04\xea\x87\x06\
+C\x14\x00\xe7\xc7t\xfbB\x18^\xb3\x16:\x16/\xa6\
+\xf9\x09\x14\xcb\xa0\xdfc\xcf/\xc7\x04\xe8\xfb\xb4\xcdO\
+$\x12p\xf4[\xdf\x82>\x9c\x02w\xb1\x22\x03\x06\x83\
+0W\x10\x96\xa2\xfc\x09!zF\x10'\x80\x84\xea\x88\
+*8\xfe\xde\xc6\x8f~\x94H@\x9a\x80\xe6\xb2W\x02\
+>S\x85\x04\x18\x01G\x95=\x1c\x8bC;H\xa8\x1f\
+\x1c(iE\xac\xd4\xc2E0r\xc5zX\x82\x91\xb8\
+\x15+VD\xb5\xfc\xb2m>E\xfa\x08\xfc\xeeo~\
+\x13\xfa\x9ex\x02\xb8T\xee\x03`\x81\xfd\xf8T2\x1f\
+\x80 p0\x05G\x02\xab'\xe7\x91\x04T9\x9b~\
+\xff\xf7iK\x9a@\xf7\x0e\xe8\xf8\xa2\xe2\x04\x04\x1c\x01\
+H$\x18\xb5I\x13\x1c\x81\xc4@\x1f\x84Iz\xe1\x12\
+\x98\xdc\xb0\x19\x96,\x5cH\x93R\xf4T\xb5\xa0\xf7)\
+\xcb\xfb\xa7\xf7\xa0\xdfS\xe0\xdfw\x1f\x9c/\x1b\xfc\xe8\
+H\xa0\xe0>\x80\xc20_\x0e\x01\xd2\xd4\x0d,t!\
+X$PJ\x95\xaa)T\x11\xf4\x9b\x9b\xff\xe0\x0f\xe8\
+\xd0k\x0e*\xf6\x0bH4\x09h\xee\x1d\xb5\xbcQ4\
+\x07\xf3\x0eK\x88\xf7\x9f/\xba\x1cYfI\x07$7\
+]\x05\x8b\x10|\x9c\xc5C-\x95\xa9\xf6\x88\xae_\x10\
+)\xe8\xf9\x06\xfco|\x03zq\xdc\xbf\xaa\xe2q\x02\
+gafY\x1a\xd3r4\x805k,\x80\xb6\xc2\xb6\
+k\xf6u\xd0y\xaa\x10\x22\xc1\xc7>\x06$SSS\
+D\x82\xca\x9dB#d^hN\x81j\x81\xe3Wm\
+\x87\x16*x\x7f\x0fx%\xbbd\x19\xa4\xf0\xdc\xc2\xf6\
+v\x1a\xce\xa5{\x82Z=\x039*\x8f\xbc|\x02\x9f\
+\x9c\xbe#\xf7\xde\x0b\xbd\x07\x0f\xd6\xe4\x13qEjK\
+\x14\x9d\x14J\x98\xc6\xca]&\xae\x90\xfc\x5c\x92\xb2f\
+\x9f\x87Q\xc5\xd0o_\xf9\x89O\x00I2\x99\xac\x0a\
+\x09\x08\xf8\x86\xc2\x9c|\xda\x9f\xd8\xbe\x03\x1a\x9f\x93\x10\
+\xeb{\x1dHr\x1d\xcb!\xbd\xed:hok\xa31\
+\x06r\xd0\x02\xc2\xb5\xac\xe5G\x9a\x00z\x1ei!\xfa\
+\xcd\xc3\xf7\xdcS\x0b\xf0\x8d\x0f\x00\x82\x22\xae\xcc\x04@\
+\xb9>@ca\xea\xf6\xec\xf9\x00\xc2\x125\xd3\x00F\
+\x13`\x05I$\xc1\x9d\xbb\xa9\xd5h\x12T%XD\
+ \xe8\xf1\xfa\xe4\x8e\x1b\xc0z\x86L\x0f\x96u\xc7[\
+\xa0\xad\xb5\x95\xc2\xca\x1a\xfc0{\x1f@\x04v\x1d\xa9\
+}rF\x0b\xe0\xdf\x0d\xbd\x07\x0e\x18\xac\xaa\xaf\x02H\
+e\xb38\x80\xd6\xe2\x84\xa9[\xb2\x09\xf0;\x10&\xc6\
+,,pi\xaf\x16\x04\x10f\xd3\x87$\xa0\xedf$\
+\x81\xd6\x04\xd8;\xa8d\xf8\x98\x81Ej\x98\x06\x91\x08\
+\x9c\xa9\xeb\xdf\xa6\xce\xb5\x22H\x14\xd7\xa7s\xfa\xfa\x08\
+\x89\xd4\x02\xa4\xf6\x09|\xd2<G\xee\xd9\x03\xe7\x0f\xec\
+W\x95)M\xc0\xbe\xaa\x22u/@Xlv\xb7\xd0\
+f\xbdd\x02\x18\xb5a\xf9\xd8dY\x98I\x0c\xab\xbe\
+({\xe3!A\xff\x13H\x02\xcc\xdc\xf4\x89\xbb\xa8p\
+\x86\x04\x95;\x85\xb4\xafI@\x80\xeb~=\xc5\x0d\xc8\
+9+e\xbc\xbe\xa4p/\x05w\x14\xf8\xd8\xf2\xbb\x11\
+\xfc\xbe\x83\x08\xbeg)\xdc*s\xc0\x94\x8d~\xdd\xe2\
+\x91@(\xe0\x99\xa8 \x0e\xa0Dz\x08 \xabl\x02\
+\x84N\x9e\x07\x8aBm\xf5\x1f:\x00\x82\x82Ew\xfe\
+!\x90LNN\x96J\x82\xa8<\x02\x9cH\xa0[k\
+\x98\xe9\x882\x03\xcc\xe1#B5b\xcb\xef\xfe\xfa\xff\
+\x82~l\xf9\xde\x89\x15R\xfa\x9d,\xb7z\x0c\xf08\
+\x81\x5c\xb1\xcar|\x00\x07\x93\xadv\x1c\xcb7\xb0\xa0\
+|\x00\xb7j\x04\x10^\x06H\x93g\x9a\x0a\x91\x80*\
+\x10\x83E\xbb?\x09\x9a\x04\xb9\x5c\xae\x1c\xf0\xc3\xc0\x8a\
+\xea\xda\xb2\xfc \x22h\x9bO\xa4\x22\xf0\x8f\xde\xf3?\
+\x14\xf8$B\xdb}\x93\xfcj\xa0\x0a\xda`\xe9\x8e\x1d\
+Eq\x91\x88\xa1\x82\xb2\x1c\x02d0\xd5S\xf9\x8a\xf6\
+\x02p{\x91\xc1 1{G\xf2}\x01&\x0d<\xb1\
+_\x9d\xd0$\x98\x98\x98 MPi\xb0(\x1a\x5c\x1e\
+O\x08#\x85\x0f\xfc\x06\x02\xff\xee\x7f\x86\x0b\x07\x1f\x07\
+\x0d\xbc\xb6\xfd\xc2\x0f\xbe9W!\x09h\x95\xd0%\xf8\
+\xe9\xd9\xe2\xed\xd8\xb5]\xb9\x12\x06\xf0c\xd3\xe1\xeen\
+6%\x8c\x12a\xdaP\x0a\x01\x86\x0b\x01\x03\xcbt!\
+@\x9a\x82V\xcd\x04\x08\x13k\xe6\xea\xdf\xf7\xd0\x99\xfd\
+\xc1'\x1e\x87c\xb8\xd3u\xe7\xa7\xc8h\xc3\xf8\xf8\xb8\
+&A\xa5&!\x8a\x08\xa1\xa3z\xfa\xbc\xd6$4'\
+\x81\x02G\xc7\xef\xfe'\x188\xb8\x8f\xa9}U\x8c`\
+\x0dP\xb2-\xa0%b\x17\xe1,\xa8%\x08z\x1b\x8e\
+Nf\xb0\x1e\xce>\xfc0\x9cz\xe8!\x98\xec9\x07\
+R\xba\x8c\x00\xda\x09 l#\x090N\xea\xc4L\x0a\
+\xf5\x93\xd6\xb6*\x0e\x07\xfb\xb4\xbd\xd0\x15\xe2qZ\xa5\
+\x87\x04\xbeD\xa25\xc1>\xaa)$\xc1\xbf\x06iH\
+p1NaI$\x08\x13r\xf84\xf8'\xef\xfe\xef\
+\x04\xbeQf\xd2\xef\xe4rm0\x8b nq\xe7\xb0\
+\x19\xa3\x92\xed\x1b7\xaa\xd5@[q\x90\xcb\xc11\x93\
+\xd7\xb1K\xf9\xf4W\xbe\x02=8o\xd0\xc9f\x89\x94\
+\xa8\x05:qk\xb1U\xdf\x09\xcbx\xa9\xeb\x03Lb\
+ZU\x98\x14j\x151\x01\x12.2\x10\xa4\xc0\xd7\xd4\
+d\xc0\x1b\x8f\xc5\xf2\x94@\x18]6\x84$8\x8e\x07\
+\xeb\xee\xfc7\x80B$ \x9f\xa0\x1a$\x88R\xf3\xec\
+\x1c\x82O\xb1\x03\x8aW \xf8\xff\x88\xe0\xff\xd4\x00m\
+\xd4\xbf\x12\x03\xbe\x1fx\x90\x5c\x13$0p\xd4\x8a\xc3\
+\xcf\xf3\xb0\x85/\xe8\xea\x82:$X\xb2\xb7\x17z\x10\
+\xf4\xd7\xbf\xf8E\xe8\x7f\xea)\x02\x9d\xd7+5P\xab\
+\xe8\xac`h lK!\xc0\x94\xf1\xcd\x84\x89\x03\x98\
+@P\x85\x91@\xfd\xa3\xfe\x0c\xc9}\x00\xf3pn&\
+4\x11\x86\x0eaE\xe3\xce\x15w\xfe\xb1\x02C\x93\x00\
+\xa5\x9af\x80\xf2B[>\xc5\x13\x9aT\xcb\xff\x07\x18\
+:\xf0\x98&v \xe0\x9a\x1c\xca\xbcz\xce7.Z\
+\x0c\xcd8\xef\xa0y\xf9Je\xcb\xeb\x90T\xf9\xa9\x14\
+\x0c\xe0\xea)\xaf\xec\xd9\x03=\x07\x0f\xd2\xc2\xd0%M\
+'wY$PW\xa3\xc16\xda\x09,\xd4?\x9b\x10\
+b\x19\x13P\xbe\xcd\xe7N\xa0\x06\xd7\xa8\x1a\xa6\x1d\xfc\
+d\x11\x052\x00\x91\xe01*\x1e\x92\xe0\xdf\x01\xc9\xd8\
+\xd8\x98!\x01\x97\xaa:\x85\xd4\x85\xd4\xe0\x9f\xbe\xe7\x1f\
+`\xf8\xe0O\xfc:7\xc0\xd6+\xf0\xd1_h\xec\xe8\
+\x84\xc6\xce\x15\xd0\xd4\xb9\x12\x9ah\xa0\xaa\xa1\x11\x01\x9f\
+\x82!\x5c\x0b\xe1\xd87\xef\x83\x0b\xcf=\x0fCG\xba\
+\xc1\xc9\xe5\xcbjb\x82\xf0\xb1<\x9a\xca\xd3\x962\xa5\
+\xce\x09\x5c\xab\xb16A\x04\x1f\x8a\x13'O\xc0\xe4D\
+\x12\x12-\xad\xf4gJ\xe8\xa1\xd1\xcc\xd4\xff0\x80\xf5\
+\x83\xf4\x89Y*\xdf\x00\x8e\xfb\x9a\xce&\x7f\x04Ip\
+\x0a$\xac\xbd\xf3O@\x93 \x9b\xcdF\x9b\x82\xca\xcd\
+\x80i\xf9MM\x08\xfe\x7f\xc3\x96\xff\xa8GMj\xa0\
+\xb5\xc3\xd6\x04\x89\xb6v\x88\xcf\x9b\x0f\x89\xf6\x85\xd0\xb0\
+t\x194,\xe9P\xc5N\x9e{\x0dF\xbb_\x863\
+\xdf{\x10F\x8f\x1d\x85\xb1\xd3\xa7\x11pG\xdd\xebJ\
+]\xd6\xb2\xc2\xc6\x84\x05%\x16\x08\xb24\xb6\xa5\xc7\x01\
+\x8c\xc8Y\x04\x98\x1e\x1c\x84\xd1\xd7z\xe8A\x8a\xcd\x89\
+\xd6\x19\x22\xc4\x1a\x1aT\x8a75\xd19?\xf8b\x96\
+j\xd4\xa0[\xb3T=\x8b\x0e\xfa#R\x8a\xdc\xd2\x1f\
+\xe4\x1e=\xf4\x138\x8d\x99\xab?\xf1'\xaa\x1b6<\
+<\x5c\xc9\xcc\xa2H\xb3\xa0\xbd}\x0d\xfe\xab\xf7|\x0d\
+F\x0e>\x0a\x16\x16&\x86\xf3\x06c\xd8 b\x04\xf4\
+\xbcv\x88\xb5\xb6A\xbc\x0d\xc3\xcdu\xf5\x90\x1d\x1b\x81\
+\x14\x0e?\xa7\xce\xbf\x0eC\xcf<\x09\x13gN\xc1\xf8\
+\xa9\x93\x90\x9bN\x83\x06\xdbU\xb6\x96\x90*\xecke\
+\x8b\xfb\xaez\x8f\x92\x09\xc0\xc6\x02X\x07\xa34\x02\x98\
+\x86f\x88`\x9c@\x17U\xad6\x039T]V\x22\
+A\xeb\xd4\x12!\xd4\x90q\x1cU\xa3M3]\xeb\xeb\
+ \x86\xf9v]\x0cbxM\xac.A\x8e\x8ai\xc9\
+\x8a\x04\x5c\xbd\xebd\xc07&\x82i\x05 \x12<\x0a\
+\xa7\x9d<t|\xe4\xd3d\x07\xd9\xb8A%\x91B.\
+fR\xc7\xe0\xc1\xbd`\xe5s\xb0\xf4\xd6\xf7@\xbc\xa5\
+\x0d\xa4\xeb@z\xf0\x02\xa4\x07\xfaa\xe2\xe8K\x0a\xf0\
+\xe9\xf3\xbd\x90\xea\xeb\x85\x5c*\x05\xb2\x00\xb2\xda\x16\x12\
+\x91Y\x17\x1f\xd4\xbe.\x93\xc7G\xf08\xcc\xa5p\x80\
+\xea\xd64>\xe3z\xa8T\xee\x22Q\xf5\x1a\x13\x1f\x01\
+\x04=\x84\xcdDq\xd2i\x95\xb4\xa4\xf1%l\x04<\
+^\x8f\xa0c\x8a\xd7\xd5\x11\x190\x0f5FC\x03n\
+\x91\x144W\x8f\x92%\x0al\x93\xba\x99c\x1em\x0a\
+6\xadP(\xa3%x\x22y\xf5\xf4)\x189\xfc\x0a\
+,\x5cd>\xcd\x8eP\xefl\x1be\x02\xc8\xbc\x9c\xc5\
+\xcf\xd0\xd2\xdd\xaf\x80\xf5\xdc\x01\xc8\x10\xe8\x17\xfa 3\
+<\x00n\xde-\xc4Hf\xc0\x93>\xa0M\xeb\xd6\xb5\
+\xe7j\xa0=\xa0\x83\x97\x0cZ;\x16\xf2\xa4,\x85\x00\
+|J\x98\xe6P\xa6\xc2?\x1b\x07l0\xc8\xb6K\x9a\
+\x9e\xe4f\xd3\xe8\x94!1\x92\x009KOW\xa3$\
+f\x88\x81\xa4 \x22\xc4(\xd1q\xa2@\x12\xcc\x07\xcc\
+\x13q\xd2&D\x06L\xb1\x19scS\x9eecR\
+\xf9\xb4U\xfd\xde\x13N\x0c\x1e\x1eq\xe0\x86\xee\xa3\xb8\
+8C\x1b\xfb\x12\xb9r\x7f\x80\x9f\x1b\x18\x18\x80G_\
+\x1b\x82\xf5'O\xc3\x8a\xf3'\x11,\xa3\xbe\x15\xe8T\
+F\x0d\xbekZ9#\x81O\xdd\x9b}a\xd1}\xfe\
+\x9e\x91k\xe2&\x11&\x80O\x09\xd3Z\xa0\xf2\xbf\x1c\
+\xea\xd7\x00\x94J\x8f\xf2\xd1V\x83\xaf\x13H$G\x06\
+\xf2\xb9\x8c\xaa,\x07\xf3\xb2\x9a\x1c\x82\x92!\x8b(v\
+L\xe0\xdbJ{\xa8\xd4\xdb\xd9\x05{\xdb\xd7\xc1e\xab\
+\x96\xc1\xca\x95+\xc9N3`\xab\xe5\x14\xea\x91\xc3\xf5\
+]\x1b\xe0\xe9\xb1qU\xc6\xe5}'u%k\xb0\x8d\
+\xf3_8\x90\xae\xb6\xc5Av\xde\xdf\xe5\x05\xe1\xd1\x00\
+\xa5\x9b\x82B/ \xc0\x7f\xab\x94\x00\xd2\xbb\x15V\xa4\
+\xd7/\xc0\x03\xb6!\x02O\xe6\x9c\xb9\xd6\x80\xed\xcf\xb7\
+\xccy\x22\x90p\xf3\x00\xb9<\xbc\xbex=\xfcta\
+\x17\x5c\xbe\xearZB\xc6\x10\x80\x83Y\x09\xf8\x81\xd3\
+\xcb\xe8\xa3P\xca\x7f\xa6\xa0\x85\x96\x9f?\x81\xc7\x1al\
+M\x04\xcfV\xb7j\x9f\xca\xf7\x01o\xda\x15\x11\xc4\x00\
+\xef#\x82\x14\xe1\xa8\x8aB\x85\xc9*\x13\xc0H\xa1\xc0\
+!\xc2\xe2\xb9\x82'C\x10\x03\xac\xaf\xb5s\xf0\xb96\
+\xe8]\xb6\x1e\xf6_\xb6\x03\xc1_E\xe0\xd3\x14p\x05\
+~I\x12=\x88\x14\xda\x15\xd4$ _\xe3\x19a)\
+0;\x91\x04\xbeV\x8f\x09\xbcdP@\x878}\xfe\
+\x16\xcfM\x01]\xa4\xfd\x8b\xd0n\xa0`\xe7+%\x00\
+'\x01!`\x8b\xa8\xd6o\xd4\xb9>\xd6\xc9\xa7\x0d\xb8\
+\x99\x10^R0\xf0\x8df8\x8fj\xff\xe0\xe5\xd7\xc1\
+*\x04\xfd-oy\x8b\x06\x9f\xc0\x8a\x021\x0a\xf4\x92\
+\x9dG\x8a\xfd\xd3\x17\xc2$\xcf\x14^\xba\xb3\xe7\xb8\x01\
+\xdc\xa7\xe2\x0d\xa0f\xdf\xeb\xf4\x05\xb4x\x03<\x0b\x8a\
+q\xd1\xa1`\xabv&@h\x14\x22\xc7y=\xac\x15\
+\xde\xe3\x00\xff\x00\x8a\x98\x81\x00\xf0\xfb\x96w\xc1\xa1\xd5\
+o&\xd0\xd5\xa2QZ\xed3\x09V\xff\x17\xed\x0f\x08\
+!|\x8b:\xd1\xf1s\x85\xd9R\xcbz\x8e\x15#\x81\
+q\xe6\xfc\xf1\x0d\xbf)\xf4\x86\xc5\x85\x0f\x80h-\xa0\
+\xf1\x1154\x01Rw\xcdJm\xfd,\x8f\x1ds\x0d\
+`\xb4\x03\x07\x7f\xc5\x06xb\xcd\x0d\x1a|\xfa\xe8\xc3\
+\xd8\xfc\xf2\xa5\xe2o\x0d\xf4\xb16\x07\x9a\x04\xcf+\x12\
+\x00t\xf8I`\xc0\xf5\xd9yN\x00i\xae1-=\
+L\x0bpbb\xaa\xad\x09\xa0Tn\xeb7y\x22B\
+#P\x0a\xf0\x0f\xfaWl\x84'\xd7\xa1\xad\xc7\x16\xff\
+\xe67\xbfY\x83\xcf\x00\xaaP\xcat\x0a\x0d\x11\xf4l\
+c2\x07\xe4\x13\xbcP\x88Y,}\x9dH`\x1a\x86\
+\x0b\xdc\xb37Q\xd2P\xe0\xa3\xb5\x80\x19\x0d\xc4$\xaa\
+n\x02\xcc\xf3M \xa8\xe2\xd6o\x12\xbfF'1\xcb\
+\x14\x5cX\xb9\x11\x9e\xeaz\x1b\x81O\xcb\xc4i\xf0\xc3\
+\xa6f\xd7\x8a\x10\x0c|\xaf&\xa0\xf5\x09h\xffE|\
+\xe9\xad\xb8]z\xee(@\x80\x83G\xc7\x92\x01\x1d\x05\
+<\xd7\x02<\x0eP\xd3^\x80UZ/@\x04k\x04\
+\xde-\xe4\xf7\x99s\x04\xfe&xz\xe3N\xb2\xf5\xb4\
+\x08c\x90\xda\xaf\x84\x08z%\xcf\xc0\xd0q4\x09\xf8\
+\xc7'z\x91\x8a\x97\xed\x19\x9f`\xf1\xb9n\x05\xbc\x15\
+\x06t\xb4\xdd7y\xfe\x095\xdc\x07\xa8u/@=\
+\xc4\xcf\x01c\xc3\x81\xf5\xed\x99F`=\x00\x11\xac!\
+\x06Wm\x86\xe76\xef\x82\x95+V\xd2\xda\x80\x04\xbe\
+\x06MK\xc5$\xa0Q=\xfa\x0a\x88\xae\x1d\x1c\x1c\xf4\
+\x8e\x22\x86\x80\x1f=c\x98\x1cCZB\x86H\xf0\x8a\
+m\xab\xf2-|\xad\x1bd@\xdf\xde7\xe8\x22B\xc8\
+\xa0\xcf{\xef\x9d}\xdaV\xf8\x98\xdb\xaaj\x02\x8c\xae\
+\x0f\x9a\xd6mR\xa860\x89\xf7\x08\xcc\xf1\xd0\xe5\x9b\
+\xe1\xf9-o\x87\x15\xcbW\x10\xf8\xf4\x81'\xeb\xeaE\
+\x11\xc1\x80\xc5\xc1\xa7/\x84Zp\x14S\x16\xae\xbdp\
+\xe1\x02\x91 \xda\x0c\x18\x92\x153\x05l\xb5\xcf\x97-\
+\x1b6\x82\x80\x85g\x8fxL\x01w\x00\x95\x96(\xe6\
+\x04\xd2\xc6O\x1a#\xb3FG\xad\x82-\x95U&\x80\
+\xdf\xc6\x84v\x03MR\x9b\x08\xff\xc0\x10\xc6O\x84\xa1\
+\xd5W\xc2K[o\xc5\x96\xbfB-\xbf\xda\xd9\xd9I\
+\x95Y\x0a\xc0%\xb7|\x02\x7f\xf0ow\x83\xeb\xe4a\
+\xf1\xe7\xee\x01\x12\x22A&\x93)\xc5/`\xa0\x17\x09\
+\x16\x19M\x10\xb3U\x09\x17\xbcz\xd8O\xf8R\xec\xfc\
+l\xd2\x801'R\xfb\x11&\x0eP\x0b\x13\xc0#M\
+>\xf1\xab\x7f\x03\xae\xc9\x8f\xe8\x1d\xf8\xaf\x1dY\xbd\x05\
+\x0eo\x7f'\x81O\xab\x81\x12\xf8\xe1-\xdf\x80\x10y\
+\x9e~\x87\xc0o\xc6\xf1\xfc\xa1\xff\xb2\x1b\xd2\x8f\xcc\x00\
+?Dj\xfa\xcf\xd4>\xfd\xcd\x22\xa5\x09\xa2G\x07\x03\
+\xbba\x8c\x04D\xdeW,[\xe5\xcd?\xf3\x8a\x0fP\
+\xab\x08\xf0\xd276\x10\xd0\xdb\xf2\x10B\xb2\xe7WG\
+\x03pM \x8c\x0f\xe0\xc3S\x14R\xb4F\xe0>\x82\
+'ot\xed\x16\xe8\xde\xf1\xafH\xed\x13\xf8\xfao\xec\
+D}\x9f\x1ft\xde\xb7\xafg\xf2\x10\xf8\xc3\x7f\xb7\x1b\
+2{\xef\x01\xad\xcc\xb2\x8f\xdd\x07\xc3\x02`\xc1g\x0d\
+\x09P\x13\x04=\x8b\x01\xadS\x10\x09h\xdd_\x22\xc1\
+\xe1\x98\xad\x1c\xc3y\xa7^\x06\xe1\x03\x9e5\x08?I\
+|f $\x12h\xd5\xc6\x070[\x0b\x13\xef\x06\xf2\
+\xd6=[\xfd\xcfV\xf5E\xfc\x83\xb1\xb5W\xc1\xb1\xeb\
+\xdeE\xb6\x9e\xfe\xba\x16\x03?p5N~>t\x02\
+\xe7\x08\x82\x9f}T\x83o$\xf7\xd3\xfb`D\x00\xb4\
+\xff\xa9\x8f\x04L\xcd\xe3~X\xf2M\x1c\xa1\xad&\x01\
+\xad^FyG\x90\x08+\x05\x92\xe0\xe4K`\xcdn\
+\xf1\x8c\x10\xbe\x06\xe4'\x04\x80\x8fD\xea\xbcmB\xcb\
+Jj1\x18\x14\xe9\x02h\xc0!J\xfd\x9b\xeb'\xd6\
+m\x85Soy7\xac\xe8\x5cN\xeb\xff\x12\xf8\xd4b\
+\x18\x98\x95h\x01=u\x9b\xc0\x1f\xfd\xdan\xc8\xfdD\
+\x83\xcf%\x8f$\x18\xc5\xed\xfcp\x120\x90\xa3\xb4\x01\
+%r\x0c5\x09\xba\xed\x98\xd2\x04\xcd\xc7_\xf4:\xc3\
+\xc6\x114\x00\x07\xf7\xf9\x85\xf9z\xd7\xf1\xcf\x09\xac\x9d\
+\x09P\x05\xb3-\xf3>\x82c+|\x19A\x041\xa7\
+'\xd7]\x0dgn\xbc\x8dl=\x81\xaf\xff\xbaV\xb1\
+\x96]\xa6\x160\x1fm\x10\xf8c_+\xb4|\xafY\
+bk\xeb#\x09\xf6\xdd\x07cx\xa2\xed3E\x1d\xc3\
+b\xe0j2Dh\x03C\x02\xd2l\xa4\x09:\xc0\x82\
+\xc6\xe3\xcfs\x80\x85\x1f`\xa9\xb2\x82\x9dEa\xba\xe3\
+t\xae\x96&@\x18V\x82o\xec\x9e\x89)H0A\
+\x92]W\xc3\xb9]\xef\xc7E\x18;i\xc9uZ\x97\
+G\x83_\xb1\xad\xd7\xe7\xcc\xe7Z\x0d\x08\xfe]\xa0\xd5\
+\xbee*\xcbG\x00u\xabE\xfb\x05\x12\x80\x8f\x04\xfa\
+\xe3\x13\x06.\x07\x9f\x93\x02\xc5\xab\x09\xe8o\x06\x164\
+\x81\x0d\x8b\x01\xa0\xe1\xe8\xf3^\x80\xcdVrs*\x03\
+\xd1\x15:\x12\xa8M@M\xbb\x81\x06Ls\x10\x16\x1f\
+`\x92\xea\xda\x06=\xb7\xdcN\xea\x9e\xc0g\x7fc'\
+\xa0UG\x02O\xa2?\xd4\xd4\xe0\xe7\x1e\xbd\xdb7\xc9\
+\x04f\xbf\x97\xd4\x0b``\x92\x9c\x04B\x08M\x02\x03\
+fx\x0a\xd5\x14\xda' \x92vcj\xa7\xf1\x84\xc3\
+\xcf\x85\x03\xac\xdf\xdbx\xffL\x84\x1e\xaeW\xe5\xa8\xb2\
+\x090\xf3\x01`\xd6\xe39\x09D\x04A\xa67n\x87\
+\xfe[\xef\x80\xcee\x9d\xb4\xde>\x81o\xbaz\xd1\xea\
+=\x8c\x14\xf4;\x85\xaft\xeb5\xf8\x1axC\x80\xd9\
+\xa3s\x1a|\xda\x9aO\xb6\x98&\xc0\x88!'\x01\x07\
+8\xd2,h\x12\xd0\xd2\xb3\xb4\x7f\xcc\xfe\x84z\x99\xc4\
+\xe1gA\xfb\x01\xb2h\xd7/\xa0~-\xefX\x00\xd4\
+(\x10$0\x15\x0a\x15 \xa6\xa2Cz\x09\x99\xcd\xdb\
+a\xe07>\x00\xcb:\x0d\xf8\x1e\x9b\x1f\x01v\xb4\xcd\
+\xd7\x8b3\x8c\xfe=\xd9|j\xf9lv\x91&\x80\x11\
+/\xf8\xe0\x9d\xae\xcd5\xc1\xd0\xd0\x10\x91\x80\x01\xca\xc9\
+\x10M\x10M\x02*\x7f\xb7u'4K,\xc3+\xcf\
+\xfaL\xbd4\xe0\x078\xdd\xe6\x9ce\xcfL\x92\x95\xb5\
+\xeb\x05\xa8\xc4\xc5o\xdf\x03%\xbb\xe9\x1a\x18\xf9\xad\x0f\
+\xc1\xb2\x8ee\xb4\xc6?-\xc7F-\xb6\xdcV^t\
+_\xaf\xc9\xa3\xc1\xcf \xf8\xbeh#\x9f~\xe6\x11C\
+\x00W\xf2\x99;\xd4;\x18\x93H\x82?U$\xa0\x8f\
+O\xf4\x00R\x04\xc8\xfc\x18\x85\x99\x03\xfa[\xc9t|\
+\xcc\xbaKU\xa0\xfd\xd23|\xb9V.\xfc\xbc%\xaa\
+\xee\x04\xfa\xbf\xdd\x0c\x09\x05\x0b\xff\x01\x93\xfc\xe6ka\
+\xec\xdd\x1fFG\xaf\x83\xe6\xd3\x19\x9b\x1f\x0dn\xc89\
+\xa3\xf6\xf5\x9a<#\x7f\x7f\x17d\x1e\xf1\xb5|\xd3-\
+\xf5k\x02#\xa6\xf5\xb3\xe1[\xdd\xdb\xc9\xee\x9b\xe9\x22\
+\xb6\x7f\xf6\xeb@2::J$\xf0i\x01\xae\x0d\xa2\
+\xc9\xa1'\x9a\xd2\xda\xc6t|\xdc\xfaCHH\xbc\xee\
+\xa5\xa7Y\xc4\x8f\x89\xd0\xe7\xd9h`\x0dz\x01\x9a\xb9\
+E\xf0\x17\x11\x19r\xeb\x0e\x98x\xcf\xef\x91\x97O\x13\
+'\x0c\xf8\xd1}\xfb(\x82\x98\xa5\xd8\xea\xea0\xc2\x87\
+\xe0\xef\xdd\xc3\xcd\x10\x9fuD\xc9w\x91\x99\xcd\xeb\x8f\
+\xc5KO\xf4-C\x11C\x10\x141\xa4g\xd3\xb7\x88\
+\x9a\x04\xd1\x80\xf3}6\xdb\x98V$W$\xf8\xd0\x1f\
+A\x9c2_|:\xb4\x8e\xfd(\xebo%\xa0\xc6&\
+\xc0\x16!\x04\xe0\x99\x895\xeb!\xfd\xe1?\x82\xa5\xad\
+\xea\x0f:\x90\xda\x0f\x1a\xd2\x0do\xf1|\xdf\xb7\x08\xe3\
+\xd0\xdfRl\x1f\xc1\xb7\xc2\xa2\x92|\xd2\xa9\xd0\xaa\xbf\
+\xe8$\x0d\x1e}K?\xfa\x0d\x18\xc2\xedBC\x02\xbd\
+\xb61\x03:,i\x09\x22\xc1\xa9\x8f~\x1a\xec\xb1\xbf\
+\x02\xf7\xccIS?\xa1\x04\x90T\x9e\xb2\xc7\x02\xacR\
+M\x80\xf12M\x14%L\xf4\xf9\xe5\x9f\xfc\x0c,]\
+\xd6I-\xdf\x80\x1f.a\xb1u\x9f\xcd\xd7\xe0\xd3\xa8\
+^\xea\xc7{\x82m$\x14\xd5\x08|~\xa2aKh\
+\xa4s\x1aI0\xf8\xd5\x8f\x91\xbfA\xb1\x06r>\x09\
+t\x9d\x18\xd8\xc5\xf2\x83\x84\xcaCs\x1e\xd7um\x80\
+\xf6\x8f}\xaa\xbc\x857tAj\xa1\x01\xa4~\x88-\
+\xcaz\xa9U;\xdf\x0eY\x10\xa4\xa6K\x05?\xb2\xf5\
+\xeb%\xd7i\xbd\xbf\x81\xbfQ\xe0\x13\x90\xbfTI!\
+\x09\x06$\xc0\xe2\x7f\xaf4\x81Z\xbd\xccq\x9cR#\
+\x84$\xa1$\xa0\x19PK\xda\xe6\xc1\xc0\x7f\xfc\xb7P\
+\xa2\x18\xdf\xa6\x96&@x\xbfQ\x12\xd176#H\
+VK+\x9bvU:\x09\xf8*\x18z\xbd\xfd\xfe\xaf\
+\xee\x86\xa9\x1f\xed\x01;\x08|\xe9\xe9\xdf\xcf\xcew1\
+Y\xa6\xdf\xefB\xc4*\x9e\xfa\x94\xe7|r\xef7\xc0\
+\x95\x02\x96\xfe\xf9\xddz\x81k2\x07\xd1\xaa?Z\x94\
+vkp\x1d(]\x8c\x13\xa8\xa4&&\x80\x0aac\
+b\xe7\x83o\xea\xfd\xc1\xbf\x90mSj\xb2\x0ca\x95\
+\xa6\xc3\xbb\x1a\xfc\xbe\xaf\xec\x86\x89\x1f\xec\xd1x1\x80\
+\x0d\xa2\xe6\xbcK@{\xbe\xdeu\x5c\xef1%~\xbf\
+d?\xe7\x7f`\xf2\x91{\xe1\xfc\x97?\x8e\xad\xb6\x8e\
+\xb4\x1c\xbdc\x90\x16(k\xd2\x0ai\x81\xbe\x87\x1fb\
+U\x1aV\xe9\x0a\x9bj\x13\x80\x87\x82\x8bx\xf9!7\
+\xbd\xf8\xf9\xcf\xc1\xf8\xd1W\xa8@\x9a\x04\x95\x10\xc1\xf7\
+gV\xce\xff\xe7\xdd0\xfe}c\xf3\x0dH\x06H\xde\
+t=\x81\x1e\xa9\xc9`H\xe0\xfb~\x1fT\xe2\xc4\xe0\
+\xbf\xa96\x13\x0f\xe3\x12\xf0\x7f\xfdq|\xb78-\x1e\
+A$\xf0\xf9\x04(e\x83?q\xfc\x08\xbc\xf8\x97\x9f\
+\x8d\xaac#\x9ap\x16T\x99\x00&\xd1\xd5,\x0e\x10\
+\xc5N'=\x0d\xfbn\xdbuQ$ \x9bOZ\x84\
+\xc0\xef\xf9\xf2n\x18\xfd\xbf\x1a|\xd6\xea\x0d\xc8\x1ah\
+\x93\xccB\x0d\x06t\x93\xcc5\xfe\xa9V\xd2\x9f\xcc\xae\
+\xb9\x9ed\xfc\xc7\xf7BO\x81\x04\xa8\xa5\xe8\x9d\x09\x90\
+\x8a\xc0\x9f<\xde\x0d\x8f\xbf\xf7fpRS\x10j\x95\
+\xa4g#MW\xb7\xda&\x80OZ\x10\x01D\x09P\
+M\xd9\xd1\x11\xd8\xff\xbe\x9ba\xe2\xd8\xe1\xb2I@-\
+H\xdfs\xeeK\xbba\xe4\xa1=\x06`\x7f\xec\x9e\xdb\
+\x7f\x7f2$\xa0\xe4\x86$C\x16\xad\x11\xfc\x04\x01J\
+\xdc\x5c\x8c\xfd\xf0^8\xf7\xc5\x8f\xd3\xbb\x12a\xe9\xdd\
+\xcb\x07\xffD7\xd6\xd5.\xc8\x0e\x0d\x9a2\x84\x80\x22\
+\xa5\xd7A\x87\xaa\x9a\x00.\xda\x04\xc8\xa2\x0f1\x95\x0c\
+\xc5H0\x0c\x07\xb0`\x13\xc7\x03H\x10\xf1\xb7t_\
+\xfbk\x04\xff{{\x02AV q;\xcf\x01\xf7\xd9\
+~v\x8f\x01\x9f\x11(\xcc\xbf0\x84\x19\xf9\xc1\xbdp\
+\xf6\x0b\x1f\xa7w\xa6w\xa72\x94\x05\xfeA\x02\x7fx\
+\xd0<\xa6\x14\xa7\xd4\xd7M\xaf\xa1\x090\xc3\x8d\xc1\x17\
+\x9a]\xdeJ\xb2#\xc3p\xe8\xfd7\xa3\x8a;\xc2H\
+\x10\x06\xfe\xab_\xdc\x0d\x83\xff\xc78|FM{\x9e\
+\xe1\xcf\xe3\xad\x9e\x11A\x1f\xb3|c&\x98\x06a\xa4\
+)\xaa\x11F\xbe\xffux\xf5\xf3\x8c\x04\xe1\xe0\x9f\xec\
+\x86'~g\x17dF\x06\x99\xca\xd7\x19\x81Y\xae&\
+\x00\xd4\xd8\x07\x10\x04\x8c0\xf9Q/\xc8\x9c2\x22\xc1\
+\x10\x15\xd4K\x82\xd0?\xa4|\xe6\x0b3\xe0\x03\x03\xbe\
+\x90\x0c\x88\x8c\x1c\xae\xda\xf7m\x8d\x160\xa0\x17'\x81\
+I\x06h\x93\x02\xc8h\xf2\x86\x1e\xfa:\x9c\xfe\x8b0\
+\x12\x18\xf0\x93\x08\xfe\xcf\xb0N\xd2C\x83\x86\xd4!N\
+'\x9f\x17\xea%\x80\xa0\xbdZ\x98\x00\xe1_\xcd\x889\
+B\xe16\xca5eP$\xf8\xd9\x1dH\x82\x13G\xc8\
+V\xea?\x9fJ\x8e\x139z\x94\xa7\x8eO}~7\
+\x5c\xf8\xee\x9e\xd2*\xde\x0b2\xb3\xf7\xe1v\xdf\xa1\xc4\
+\xae\xd5\xe4\xe2&\x81\x83^\x9c\x1c\x83H\x82\x93\xffI\
+\x91@;\xb1TFM\x0a\x95\xa7\xc0\xbf\x1d[\xfe\xf0\
+`pc\x8a\xa8kn\x02d-\x02AR9\x19\x86\
+\xc8f\xe0\x5c\x9a\x15/\x8c#\xe8\xb2y\x81\xa6\xc5\x12\
+\x09\x86\x87\xe0I$\xc1\x9b\xef\xdf\x07\xad]W\xaa\xca\
+\xf1\xca\x89\xbf\xd8\x0d\x03\x08\xbeey*Xx+\x99\
+\x1f\xbb\xc4O\xbd\xef\x9a\x90\xafY{\x98\xcd\xab\xe7\x9f\
+\xc0\xbb\xdc\x84\x98}\x9d\x82H\xc8\x890\xf0\xbd\xaf\xab\
+k\xd6}\xe9n\x02\xdf\xd7\xbd%\x7f\x88\xea\x80l\xbe\
+O\xbcZ\x0c\x02\x9dN&\x96\xed\xa9sY\x0b\x1f@\
+\x84\xda\x18\x03\xb0,-8\x93!M\xf0\xee\xeb\xe1\xb5\
+o\xffO\xea\xf2\xa8R'O\x1d\x85\x17>z3\xf4\
+=hZ>\xab\xdc PLk5[\xae\xde\xfd-\
+\x9f\xf5\x00\xb8\x16\xe0\xa6@\xefG\x13\x81\x8e\xfb\x91\x04\
+/\xfc\xdeN\x98:\xd5\xad.t\xa6Sp\xee;{\
+\xb0\xec\xd7\x11\xf8\xe6Zo5\x85;\x80<\x82\xa9\xf1\
+\x11\xa2z\xa1`>\xa3'\xa8\x9b\xc1[\xbd)\x8ci\
+mRp\xbf!\x8f\xc0\x1f\xfe\xf3\xbb\xa0\xfb?\xdc\xe5\
+\x1f\xc3\xb7\xbc\xd3\xb4\xb8\x160\x1e\xb0\x09\xeb\xbafm\
+T\xad\x91\xf8\xa4\x067\x8a\xf0\x5c\x0bpRq\xf3\xe2\
+\xbf\x9e\x13c\xec\xe9\x03\xf0\x8b\xdf\xdc<s\x8f\xe3\xf1\
+C\x98I\x0b\xa8\xd7R\x08B\x15W\xd3\xb1\x00A\x89\
+\xbf\x9b\x998\x11L\x0a\xe9%\x85\xf4\x83\x22\xbc\x15\xa0\
+\xaf\xe5y\xba\xe5\xf9&\xcf[\xe67\xf5\x08\xaewM\
+a6\x1c(eX\x1d\x19\xc2\xf2\xdeD\xb8O`R\
+8\x11L\x9eF2<j)\xa3\xa2\x92\x92\xed\xd7\x86\
+\x00\x82\x92%\xf8h\xa0\x07 W_\xeb\x03.XK\
+(\x89\x04\xde\x7f\x0c>\x0d`\x9ei\xb9\x851\xfdb\
+\x5c\x95&\x83OV\xf5\x1bY\xd7\xa7b\x03}\x01\x9e\
+\xe7M\xe5\xf5\x18\x8c\xc9\xe1`s3\xca\xbb\xdbFD\
+\xd5\x09\xa0+H\xbf\xac\x8cx\x86\xbe\x96\xb5x\x1f\xf0\
+\x02\xbc\x05\x0c\x03^\x83l\xde\xc3\xd2\xe7\xe9'\x8d\xba\
+W\x22\xe8X\x14\x88 \xbd\x1a\xc0\xcff\x8b\x03oZ\
+\x9d\x8f\x00Q\xa6\x80\xfb\x1f&\x85\x82n\x12\x037\x5c\
+\xfdK_\x0c\x22*2D\xc7\x15\x10\xc0.hm\xfd\
+\x97\xc2tH*=\x99\xa1\x85\x9f\xd5\xd2\xadN\xd6\xfb\
+\xde\xbc\x95\x9a\x93\x9c\x9dRFy\xf6Av\xdeoB\
+,/\x09\xf4\xb1!\x82\xe9\x91\xd0\xbe\xf0\xbc\xd6\x0cA\
+\x98\xb8\xb3[\x17\x07\xd4\x98\x80`m\xc0\xbb\x9f\xa5\xf5\
+\x18\xfc\xf7\x82I>\x82\x05\xa8\x7f\xc2\x84\xb0\xc9 F\
+TX\xa1\xca,\xf5\x8c&I\x98\xe6K!\xc0\x08\xa6\
+%\xfa},\xcb\x8d\xcfk\x81x\xbc\x1e\xa4\xe3\xc0\xf4\
+h\x16\x1a\x97\xb4B]k=\xe4RY\xd0\xe2k\xb5\
+\xc6\x8eF\xdby\xc9\xc9`\xfc\x03\xaf\x9d7\xe7\x8c\xba\
+\xf7\x93@\xa8\x8b\x02\xbb}\x85\x8a0\x8e\xa0`<\xf5\
+\x1f\xb8\xe1\xddB\xee\x17\x84\x98\x00(\xa3\xc7 C\xba\
+z|P\xcaH}[#4u\xb4\xc1\xd4\xf0IH\
+\xe0\x88\xa4\x93\xcbA>\x9fQE)\xf0_\x8e\x94B\
+\x80.\xbcat\xe6\xb7\x1d!e>^_\x97mh\
+_\x94\xb0h\xfa\xb6h\x05\x22\xc4\xa2-\x9d\x90\xec\x9f\
+\x00#e\xday\x19\xa0\x05\x14\x90\xdc\xf37\xde\xbd\xfe\
+y?\x09\x84>6\x7fj\xc6 \xa8\x89\xc1\xfe\x22Y\
+\x88\xb8\xcc\x170+\x81\x1bR\x98\xae`HWT\xb2\
+\xf1\x06\x16J.\xcb?0\x04\xf3\xaf\xdb\xb0\xec\xba\xb5\
+\x10on\x80\xf1\xa1\x8c\xfa\x9b\x0dnr\x12,\x07\xa8\
+\x95\xe6\x08KL\x92\xb0\x8d\x8c\x03\xd0\x1d\x85^J\x1e\
+\xa4L\x0b\xd7MZu1\xb5\xfc{v\x1a`\xf0\xf8\
+8t\xdd~\x0d4-n\xf1c\x1e\xf0\xb2A\xf6\xcf\
+\x0d\xa9\x18\xa9\x13\xef{s\x1b\xecz\xce\x05l)9\
+\xe682928D,\xdd\x90V\xaf\xaf\x09\xf2\x0f\
+\xd8\xe8e\xb4\xcf\xc0c(\x9c\xc4\xad\xcb\xdba\xfd{\
+\xf1;\xcbg{!9\x9aQ\x84\x90\xe0\x92)\x9f\x14\
+\x00\x19\xc2\x920\xcd\x96\x12\x08\x1a\x9bQ\x0bn\xe1\xc6\
+);\x9d~U\xda\x16X\xf5\x0924\xd0\xfb\xc28\
+\xc4\xdb\xe6\xc35\x9f\xde\xe9!A\xa8\xf3\xc2\x0b\xc6\xae\
+\xe1]%7X\xdd\x9a\xfd\xc0\xf0\xad\xc9s\xf8~t\
+\x92\x0cx\xbe\x0d\x18k\x08xw^\xbe\xa0\x14@\x04\
+\x17\xf85$-\x08\xfe5\x7f|\x0b\x1e\x0b8\xf2\xd8\
+\x19R\xa7\x0aU\xc7\xc9C\x03\xc0\x19\xc2\x90\xb0$L\
+\xc7J1\x01I\x00\xd9\x86\x8cq\xf1&\x010\xd1\x94\
+J?;\x95Ln\xafokC\xfcQ\x0bL\xb9p\
+\xf2'\x03\xb0\xf6\xed\xab\xe0\xa6/\xdf\x06G\x1fx\x16\
+\x06_\xee\x81\xccD\x9aj\xc7\xf7\x19\x16%\xf3e\x0e\
+\xdf\x82\xa0\xc4\xaf\x05\xb3\xef\xbb\x06\x84?Iu\x9d\xc7\
+\xc9\xa3-\x1dz\x8f\x85\xdf!\xf6\xafO\x10\xc0_\x9f\
+#hH\xaa\xb6\x96\xc9S[\xcb\xe4{;\xee\xa2p\
+\x9d\xa0\xe4\x9a{\xa0p,<[\xcb\xf57\x08\x97\xf2\
+\xcd\xbd*Y\x9e\xdf\xb6m\x0b\x12\xf3\x1a`\xc9\xd6\xcb\
+`\xe3\x07v`F\x0c\x9e\xfc\xc6K05\x92\x06+\
+n\xa3\x7f\x96\xc6\xdf\xc8\xc3\x02\x17\x9e\x05\xc4\x90\xb0\xc4\
+\x94'l#\x09@\xc1\xca\x9b\x94\xbaP\xac\x19_\x99\
+\xcd\xef\x7f\xb1\xbf\xff}\xce\xd2\xa5\x0b\xe3M\xcd\xca\x10\
+\x8f\xf5&\xe1\xe5\x7fI\xc1\xf2m\xf3a\xeb'w\x81\
+3\x91\x84\xa9\x0b\x13\xe0d\xf2Xp\xbe\x02\x16\x89e\
+\xec\xb5\xb9\xc6\xf7\xa1\xa6\xf7>\xbe\x8a\x18\x04]\xe3\xcd\
+\x9f\x0d0\xe5W\xd2O\x96E\xc2\xae\xc5\x8e\x8b\x13\xc5\
+\x10(\xe0X\x93\xc7\xdc\x17\x14\x80*\xfe\xdbv\x22\x06\
+\xcd\xd8\xf2\xed\x86z\xe8y\xbe\x0f\xba\x1f?;\xa3\xfa\
+\xd1T;\xa9\x0cd\x93IH\xb80\xb8\xd6\x85\x83.\
+b\x98G,\x13\x00.a[\xd27\x1d\x8f\xcf`R\
+\x87\xff\xb4\xbb\x00\xab_\xb5\xc5\xed#\x9d\x1d\x9fZ\xb2\
+e\x8b\xb0bqp\xe8\x0f>d\x90\x22\xa8fb\x09\
+\x89\x0c\x1e\x85\x96\xc5MP\xd7\x5c\x07B\xd7z\xd4W\
+C\xc2l\xf8\xb5\xfc\xbc\x14\x81\xd7F\x03,\xa0r\x99\
+\x0d~h\xd4\x8d_\xc3\xaf\x8f\xf8=\x19\x1e\xdcs]\
+\x09\xf9\xb4\x03\x99\x14\xc0pO\x12Rci\xd5U'\
+'\x9d<\xff\x89\xbe\xf3\xa8\xa5\xa7\xe4Z\x07\xfe\xf1\x0a\
+\x17\x1e\xb4\xd0\x0c\xb83\x9d\xbb\xccN\xbc\xbd\xa48\xc0\
+\x01\x00\xf9\x0e\x80\x9c\x03\x90\xc4;.\xacr\xe4#\xc9\
+\xbe\xfe+\xfa\xa4{k\xfb\xe5\xab\xc1\xaa\xabC\xecs\
+\xea\xafW\xa6\xc6\xd30\xf6\x1a\x9a\x80\xe4DTC\x0a\
+>_\x85\xebd\xc5\xe7\xdexB\x7f\x94\xab\xbe\x15M\
+\xb2m\xab$\x10\xfc\x5c\x12\xc9\x80\x83k\xd9T\x0a\x16\
+\xb9\xf0(\xb6\xfe\xbd\x80\xd8Y\x88a\x1c\xb1|4\xa0\
+\xa8v\xb1\xcc\xfd\x98\xde\x87\xa9\x19@N\x93C\x88i\
+\xb1+\xcf\x0c\xa7\xa6\xe6\x0f\x8f\x0c\xafqs9\xd5\x1e\
+]\xc7Q)7\x9d\xc24\xcdg\xab\x5c\xe2\x04\x90\xf0\
+\xc6\x14\x9b\xbe\xb5\x88\xc7@\xd2\x7f\xf9<\x06\xe8& \
+5:\x8c\x9a!#\x09\xfcm\x0e\xfc3\x00\x9c\xcd\x03\
+\x0c6\x02\x9e\x02p\xee\x0c'\x00\x97+\x00\xe4\x22\xdc\
+\x92\xed\x903}\xc9\xecR\x17\x8e\xa1\x9a\x19\x1d\x9e\x18\
+_=5>\xd6H\xb6&\x8b\xe0\xe73\x19p\xf3\xb9\
+\x80\x0a\xad}\xe5K\xf8u\x17>\xfd\x1b\x1b!:{\
+\xd3\xa8y'!\x97\x9e\x86x\xde\x1d\xbc\xdc\x85{6\
+\xbb\xf0-\x02\x9fZ\x7f\x0c \x99B\xec\x9eB\x0c\xf7\
+Wb\x1d\x1f\xc7\xf3\x13\x00V+\xf2@\x024\x09\x80\
+v\x0a\x14:\x00\x9dg,\xb8i\xd4\x82k\xa6\x01V\
+;\x02\x9a]\xbc\xa6V\xa0\xc9\xaa\x9f\x7f\xe3\x13\xc7\x02\
+\xc8\xfe\xbf\xf6\xce %b\x18\x0c\xa3/I\xe9\x8c\x8c\
+\xcc\x0c\x1e\xc1\xa5\xa7\xd0\x8d\x9e\xc0\x03x\x12\xebI\xbc\
+\x95\xcb\xd9\xb9\xb48Hal\x9b\xc4/\x18A\x17\xe2\
+\x14\x1dWy\xf0\xb6%\xe1\x0b\xfc\xc9\x1fH+x9\
+\x8al\xd2n?m\xf8\x1c<\xa6\xe0#\xb4\x06:e\
+\xd7/!\x5c|?\xd5\xbd\xeev\x8c\xea\x87]A5\
+\xc0|\x84\x14\xf6\xcaJ`i`\x11a\x06T\xd2Q\
+\xf8\x0f\xbc\x1c?z5\xf9\xa8\xb7\xb5\xb2z\xaf\xf9\xbb\
+-\x8c\x97\xb9\x0d\xfc\xab\xdb@\x03\xf1\x1a\xc2\x0d\x0ck\
+\xf0#\xf4@g\xe1)\x05\x9f49\xfc\xf0\xe9\xb7\xbf\
+\x14\xfe\x1c\xf3\xf513\x1f\xf3\x22H\x06\x89t0\xb4\
+\x10\xee!^\xc9\x9f\xbf9\x81\x06\xcc\xadT=\xb1\x1d\
+\xb8\xb9\xac\xc1\xbeJ\x97{5\x1eLO\xe1\x10\xd4\xd2\
+A\x0c\x80\x878\x83\xd0\xcb\x1d\xf8\x85<\x87p\x07\xb1\
+\x91\x13\x16\xd5t\x1ay\x06\xe6X\xae\xf3\xc06)x\
+yB\xe1\x90\xb4\xb2\x86x*{\xe09wo\x1fd\
+C\xa1P(\x14\x0a\x85\xc2~\xbc\x01\xc5\xf3\xa3!\xeb\
+\x0d6:\x00\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00<\x0e\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3>a\xcb\
+\x00\x00\x09\xediCCPICC Prof\
+ile\x00\x00x\x9c\xad\xd6gTS\xd9\x16\x07\xf0\
+\xff\xbd)\x84\x04B\xef- \xddP\xa4Jo\x8a\x0d\
+\x18D\x14\xb0\x02!4)\x11\x82(vP\xb0\xa1`\
+W\xb0+v\x05\x95Q\xc7\x8a\x0a\x22\x8c\xa24\x11Q\
+, 8\x22\x1d\x0b\x82y\x1f\x82e\xd6\x9bY\xef\xcb\
+\xdb\x9f\xf6\xd9k\xdd\xb3\xce\xf9\xed}\xd7:\x80\x94b\
+\x98@\x10G\x02\x88O\x10&\x05L\xf0\xe4\x04\x87\xcc\
+\xe4H\xd4\x81\x0a5H\x03\xb0\x0f\xe3%\x0b<\xfc\xfd\
+}\xf0\xaf\xf1\xb1\x1e\x04\x00\xd4\x98\x85\x09\x04q\x89G\
+\xa3\xab\x11\x97\x97\xa9\x92\xe3\xc2\xe9\x9f\xab\xfb\xf8\xdf\xbf\
+\x03\x00\xb0\x93\x82Cf\x02\x04\x17\x80b\x948w\x07\
+\xa0\x18.\xce\x03\x01(\xa6\x0a\x05B\x80\x88\x06\xa0\xc8\
+\x8b\x0e\x8b\x00\x88\xa5\x00\xb8I\x81\x01^\x00q\x1c\x00\
+;J\x9c_\x06\xc0\x0e\x17\xe7\xe5\x00\xd8\x0byQB\
+\x80h\x00(\xf2\x09\x111\x09\x00\xb5\x03\xa0\xbbF\xf0\
+\x93y\x00\x8b\x0b`^D2/\x1e`m\x04`\x19\
+\x1f\x9f\x18\x01\xb0\xae\x010\xe6\x09\x92\x84\x00\xab\x05\x80\
+Yp\xc8L\x8e\xf8\xc8\xe1\x91\x80u\x08@\x1e\xffY\
+\x9b/\x05\x14i\x02\x8a5?k&\x11\x80F\x01p\
+\xf5\xc4\xcfZ_\x00\x08\x00\x84rUr\xa4\xb5\x15\x00\
+\x80\x90\xf2\x04h/D\xa2>C@b\x0b0\x9c+\
+\x12}=$\x12\x0d\x1f\x06(M\xc0\xad8^J\xd2\
+\xc2\x11/\x82x\x00\xfc\xaf\xb5\xf8\xce#A!\x00\x02\
+$\x95\xce\x90dI\xb1e\xe4\xe4\x15\x94\x94U\xd54\
+4\xb5u8z\xa3\xf4\x0d\x8d\x8cMGs\xcd-,\
+\xc7X\xdb\xd8\xda\xd9\x8futrvqus\xf7\xf0\
+\xf4\x1a7\xde{\xc2\xc4I\x93\xa7\xf8\xf8\xfa\xfd\xe6?\
+5 p\xfa\x8c\xa0\xe0\x90\x99\xb3\xe6\xcc\x9d\x17\x1a\x16\
+\xce\x8b\x88\x8c\x8a\x8e\x89\x9d\x1f\x17\x9f X\x90\x94,\
+LY\x98\xba(m\xc9\xd2e\xcbW\xac\x5c\x95\x9e\xb1\
+&3k\xed\xba\xf5\x1b6fo\xca\xc9\xdd\xb2u\xdb\
+\xf6\x1d;w\xed\xde\x93\x97\xbfw\xff\x81\x83\x87\x0e\x1f\
+9Zp\xec\xf8\x89\x93\xa7N\x9f9{\xae\xb0\xa8\xe8\
+\xfc\x85\x8b\xc5\xbf_\xba|\xe5\x8f\xab\xd7\xae_\xbfq\
+\xf3V\xc9\xed;w\xef\x96\x96\xdd+\xbf_QQ\xf9\
+\xe7\x83\x87UU\x8f\x1eW\xd7\xd4\xd4\xd6\xd5\xd5?i\
+hx\xda\xd8\xf8\xac\xa9\xe9\xf9\x8b\x17\xcd/_\xbez\
+\xfd\xfaMKK\xeb\xdb\xb6\xb6\xf6w\xef\xfez\xff\xbe\
+\xe3CggWwwOo__\xff\xc0\xc0\xc7O\
+\x9f?\x7f\x19\x1c\xfc:44\xfc\xed\x9b\x08$\x95.\
+!\xc9\x94\x92\x96\x91\x95WPTVQS\xd7\xd4\xd2\
+\xe6\xe8\xea\xe9\x1b\x18\x1a\x9b\x98r\xcd\xcc-,\xad\xac\
+ml\xed\xc6:\xfc\x1b\xc0\xb4\x11\x80\xd9#\x00\xfc\xef\
+\x00\x89?\x00\x16\xff\x00X\xbd&3k\xed\xfa\x0d\x1b\
+\xb37m\xfeE \x7f\xef\xbe\x7f\x10\x18\x01\x10\x0b\x88\
+\x01\xee\xfc\x0d\xe0\xd1\xe3\xc7\xd55\xb5\xb5u\xf5\xff\x08\
+\xd0\xfa\x03\xa0C\x0c\xd0\xd3\xd3\xdb\xd7\xdf?\xf0\xf1\xe3\
+\xa7\xcf_\xbe\xfc\xbc?\x85FgH2Y\xd2l\x19\
+Yy\x05E%\x15U5u\x0dMm\x1d\x8e\xae\xde\
+(}\x03#c\x13\xd3\xd1\x5c3s\x0b\xcb1V\xd6\
+66\xb6v\xf6c\x1d\x1c\x9d\x9cG$~\xa5\x10\x0f\
+\xc3w\x8cY\xb3\xe7\xcc\x9d\x17\x1a\x1a\x16\xce\x8b\xf8\xe1\
+\x91\xf0\x0bH\xda\xdfE\xd6\xfdB\xf2}&\xbe\x93\xfc\
+\x93\x89\x98dd(J\xcb\xee\x95\x97\xdf\xff\x95\xa4\xae\
+\xfe\x89\xd8\xe3\xf9\x8b\xe6\x97\xaf^\xbfii}\xdb\xd6\
+\xfe\xee\xaf\xf7\x1d\x1f:\xbb\xba{z\xfb\xfa\x07>~\
+\xfe2\xf8uh\xf8\x9b\x08\x10\xff\xfb\x00@\xb7\x03\x0e\
+'\x003\x98@\xe0!`{1`\xe4\x04\xa8t\x01\
+\xfe\xd2@\xa0\x03\xc8dk\x90\x91\x91 U\x98\xa0\x10\
+\x00\x09\x80\x00\x05tHB\x06\xca\xd0\x81)\xec0\x0e\
+\x81\xe0#\x15\xeb\xb1\x0f\x17Q\x89\x16|#\xd4\x09{\
+b:\x91Ll%\x8a\x89\xa7\xc47\xd2\x80\xf4%\x17\
+\x92\xfb\xc9J\xf2\x0b\xc5\x84\x12B\xd9@\xb9I\xe9\xa7\
+r\xa9\x11\xd4\xbd\xd4\xa74UZ\x10m7\xad\x89\xae\
+G\x8f\xa6_\xa0\x8b$|$\xf6Ht0<\x18\xbb\
+\x18\xbd\x92~\x92g\x98l\xe6\x02f\x03\xcb\x8bU(\
+\xa5-\xb5I\x9a\x94N\x93\x1e`'\xb3\xfbdRe\
+\x86e3\xe5\xe4\xe4\x0e\xca\xdb\xc8W(\x84+|S\
+\xdc\xad\xa4\xaftJ\xd9J\xf9\x9a\xca\x04\x95\x1a\xd5p\
+\xd5~\xb5u\xeaZ\xea\x175|4Z5\x97i\xa9\
+h\x15k\xfbkw\xea\xe4pl8\x8d\xba\x19z\xa3\
+\xf5\xaaG-\xd5\xb7\xd0o2\xd8h\xe8b\xd8it\
+\xd08\xc8\x84mRj\x9a>\xdak\xf40\xf7\xba\xd9\
+\x0as\x0f\x0b\x9aE\xa5\xe5\xb61s\xac\x8c\xacz\xad\
+o\xda\xe4\xd8\x86\xdb\xd9\xda\xb3\xec_\x8f\xbd\xe2\xb0\xd9\
+\x91\xef\xe4\xe2\xac\xe5\xfc\xcd\xa5\xd9\xf5\x86\xdb\x01\xf7\x0c\
+\x8fH\xcf)^\xd6\xe38\xe3e\xc7\x0fywO\xa8\
+\x9fxo\xd2\xed\xc9%Sn\xfb\x94\xf9V\xfa=\xfa\
+\xad\xce\xbfi\xea\xbb\x80\xaf\x81r\xd3\x8df8\x07\x05\
+\x06\x0bB\xb2g\x9e\x99U3[4\xd7b\xde\xbc\xd0\
+\x9c\xb02\x1e\x19\xe1\xc6_\x12y5\x9a\x12\xe3\x1f\xbb\
+w~w\xfc\xe4\x84<\x01\x16\xf0\x92\xca\x84\x96)\xfb\
+S\xe5\x16\xadMc,Y\xbetp\xf9\xca\x95\xccU\
+[3tV_\xca\xf4\xc9j^\xb7d\x83\xd6\xc6\x92\
+M\xc1\x9bE\xb9\xa7\xb7\xce\xda.\xb1\xe3\xcc\xae]{\
+\x8a\xf2_\xef\x97=\xe8|Xp\xf4\xd8\xb1\xfa\x93\x92\
+\xa7'\x9d\xcd.,=/*\xf6\xba\x94~\xa5\xf2\x9a\
+\xec\x8d\xa0[Gn\xf7\x97z\xdc\xcb\xbd\xff\xf2O\x87\
+\x87\x1b\x1e\xbd\xa9\xb1\xad\xdb\xf2\xa4\xb71\xa0\xe9r\xb3\
+\xda\xab\xb47/\xde\xfa\xb7\x97\xbc\xb7\xfeP\xd0m\xd4\
+\x9b7\xa0\xf4i\xd7\xa0\xee\xd0S\x91\xe8G\xff\x99\x90\
+\x81\x0at\xc1\x85\x03&\x22\x04\xb1X\x8a\x1c\x14\xe0\x1a\
+\xea\xd0E0\x09c\xc2\x9b\x88 V\x13\x05D\x05\xd1\
+E*\x93\xaed4\xb9\x85\xbcAvP4)\xbe\x94\
+\x15\x94\x0b\x94v*\x87\x1aL\xddB}Hc\xd3\xfc\
+h\x9bi\xb5t\x0dz8\xfd4\xfd\xb3\x84\xb7\xc46\
+\x896\x863c\x1b\xa3Sr\x8a\xe4\x09&\x8b\x99\xc0\
+\xacgy\xb0\xceJiIeK\x13\xd2\x8b\xa5\xfb\xd9\
+\xc9\xec>\x99\x852C\xb2k\xe4\xe4\xe4\x0e\xfc\xcf\xee\
+\xfbj\xb4j.\xd7R\xd1*\xd6\x9e\xaa\xdd\xad\xb3\x85\
+c\xc7y\xae\x9b\xa9g\xa1\xf7dT\xba\xbe\x9d~\xab\
+\xc1\x0e\xc3\x89\x86_\x8d\xce\x19G\x9a\xe8\x984\x9a\xee\
+\x1e\x1d\xc2U\xe2>3;h\xce\xb7\xe0Z|\xb4\xbc\
+=&\xc7j\xae\xb5\x99\x0dl\x9e\xd8\x9e\xb4\xcb\xb4\x0f\
+\x1f\xeb\xea\xa0\xee\xf0\xd1\xb1\xd6\xe9w\xe7|\x97\x0c\xd7\
+X\xb7\x00w'\x0f#Oy/x\xf5\x8e\xeb\x19\xff\
+\xca\xbbi\xc2\x83\x89w'\x95L.\x99R\xe2s\xc7\
+\xb7\xdc\xaf\xf2\xb7*\xff\xda\xa9\xcd\x01\x9d\x81\xc4t\x85\
+\x19\x06A\xf6\xc1\xfe!\xd13\xd3g\x1d\x98]:\xa7\
+k\x9eF\xa8{Xt\xf8.^=\x9f\x15\xe9\x12\x95\
+\x16}=\x16\xf3\xc7\xc7\xe5\xc4\xbfH4\x17\xa4/h\
+H\xb6\x12\xe6\xa6\xf4\xa7\x86,\xba\x95f\xbad\xff2\
+\x85\xe5\xd9+\x99\xab\xb22(\xabWe\xb2\xb2\xf2\xd6\
+\x19\xaf\xbf\xbc\xd1/\xfb\xfd\xe6\x0d\xb9F[J\xb6\xf1\
+v(\xee|\xbe\xfbI>}\x9f\xcd\x01\xfe\xa1\xddG\
+\x1e\x1c\xa3\x9cp<\x15\x7f\xe6\xf4\xb9\xb6\xf3\xdc\x8b)\
+\xbf\x17_\xfer\xd5\xf9\xfa\xea\x9b\x8fnk\xdd\x0d+\
++*\x1f\xaa\xf4{\x90_\xf5\xa1\xda\xb3vg\xfd\xdb\
+\xa7\xf6\xcfr\x9e\xb7\xbet{\xbd\xa3\xe5C\x9b\xef\xbb\
+\xfd\xef\xbft\xce\xe8\xbe\xde\xa77\xb0\xf6S\xd7\xe0\x9c\
+\xa1\xee\x91\xfe\x93`A\x16\xca\xe0\xc0\x1c.\xf0C8\
+R\xb1\x09\x05(\xc1\x0b\x0c\x13\xda\x84;\x11A\xac#\
+\x8a\x88&\x92A\xda\x91Q\xe4N\xb2\x92BR\x9c(\
+)\x94\x22J7\xd5\x8a*\xa4\xfeA\xa3\xd0\xfchy\
+\xb4\xf7tW\xfa6z\x87\xc4\x04\x89\xa3\x0c:#\x96\
+Q-\xe9*y\x86\xa9\xc3\xdc\xc1\x92eeKIK\
+m\x96V\x92>\xc4\xb6f\x97\xc9\xcc\x91\xf9,\xbb]\
+\xceN\xaeI>K\xc1N\xa1]1_\xc9K\xa9Y\
+y\xad\x8a\xb9J\x83\xea\x1a5;\xb5v\xf5|\x8di\
+\x9aL\xcd[Z\x8b\xb5m\xb4\xbbu\x0a9\xc9\xba\x8e\
+z\x14\xbd{\xa3r\xf5C\x0d\xcc\x0d\x86\x0d+\x8d\xf2\
+\x8c\x13L<MUM{FWr\x0b\xcc2\xccC\
+-\xdc,9c\xa8c\xda\xac*\xac\x0bm\xf6\xd8\xa6\
+\xdb\xc5\xdb\xcf\x1e;\xd9\xc1\xdeQ\xcfI\xc6\x99\xe2<\
+\xe8\xd2\xed\xda\xe2\xd6\xe0^\xe3Q\xeeY\xe2uk\x5c\
+\xe9\xf8R\xef\xb2\x09w&\xde\x9dT9\xb9fJ\x93\
+O\xbbo\xbf\x9f\xc8\x9f9U%\xc0d\x9a[`\xd0\
+\xf4\x84\x19k\x82\xf6\x06_\x09i\x9c9<[g\x8e\
+\xdb\xdc\xb0yY\xa1\x85aM<F\x84-\x9f\x1f\xb9\
++\xaa*\x86\x11;~~F\x5cI\xbc(\xd1U\x90\
+\xbe\xe0~\xb2\x8204\xa5(\x95\x5c\x14\xb8\xf8\xe4\x12\
+ri\xc8\xb2\x8b+\xd4V\xa6\xadj\xc8\xf0\x5c}.\
+S#k\xf5\xda\xee\xf5\xbc\x0d\xd5\xd9\xde\x9bn\xe68\
+\xe6^\xd9\xea\xb0\xed\xea\x0e\xd7\x9d\xa5\xbbg\xec\xe9\xc9\
+\xdf\xba\xcft\xff\x83\x83\x89\x87\xe5\x8f\x5c-\x88<\xce\
+:Qx*\xe1\x8c\xce\xd9\x87\x85\xcb\xcf[_\xe8*\
+>})\xe6\x8a\xe9\x1f\x8d\xd7\xf2n\x04\xddR,\xa9\
+\xbd\xb3\xbdt\xfa=\xa5\xf2\x9a\x8aM\x7fNy\xc8\xac\
+*{\xbc\xa8\xc6\xaa\xb6\xbd\xfe`Cp#\xfb\xd9\x8d\
+\xe7\xf3\x9b\xd5_V\xbc\x16\xb6\xa8\xb6\xdeh\x8b}\xc7\
+\xf8\xebP\x87\xf7\x87\x97]Kz\x94zO\xf4;\x0c\
+T|\x9a\xf5\xb9cp\xed\x90\xeap\xa3H\x04\x88\xdf\
+\x8b\x00\x00Z\x8co\x18\x0f\xff\xe7\x88\x8fK\xf9\xbe'\
+\x09@\x8a\x9f0}\x1a\x00\x06\x00c\x81\xd0?\xf0{\
+\x8e\x18\xf8\x22\x0c<\xf1;\x15\x00\xe8\xb2@\xbe\x11\x00\
+\x5c\xf6M\xfa\xaf}\x85\xfcEB\x00\xf0J\x14,N\
+\x8a\x89\x8a\x16r<\x04\x828>\xc7+1^\x90\x22\
+\xe4'q9\x93\x12x\xe6\x5c\x8e\x95\xa5\xa5-\x00\xfc\
+\x07\x8f\x08\x91L8\xcf\x9b\xb0\x00\x00 \x00IDA\
+Tx\x9c\xed}y\x9c\x5cU\x9d\xef\xf7\xdc\xa5\xf6\xad\
+\xbbz\xdf\x93\xce\xbe\x07\x0cc\x10\x95\x00\x03\x08\x88\xe8\
+\xa0\xbe,\x84\x04\xf8\xa08\xce<\x9e\xcb\x88\x06\x12\xc0\
+\x91y\xbc7\x8e\xa3\x83\xdbg\x06\x01\xc5\x04d\x10|\
+\x82Q\x90@p\x09\x88\x06!\xa1\x93\xd0\xdd\xe9\xee\xa4\
+\x93\xde\xbb\xab\xba\xba\xd6[u\xef\xfb\xe3\xdcs\xb7\xba\
+U]\xd5I $\xf9}>\xf7S\xd5\xb7\xef\xbd\xe7\
+\xdc\xf3\xfd\x9e\xdfv\x96\x22\x00\x88\xa2(\x0a\xce\xc9Y\
+)\x1c\x00\x10B\xc8\xbb]\x91s\xf2\xee\x08Q\x0fM\
+\xcei\x83\xb3K8\xeb\x89s\xda\xe0\xec\x92<\x02\x00\
+\xe7Hp6\x89-\x01\x80s$8[\x84+f\xf2\
+\x09!\xe4\x89'\x9e\xe0\xdf\xc1\xfa\x9c\x93wX\x88\xa2\
+(\x04\x00\xac\x1d~\xdb\xb6md\xf1\xe2+\x9c\x92+\
+\xed\x05\x17\xcf\xad\xbb\xfa\xea\x89w\xa5\x86\xe7\xe4\x94\x8a\
+F\x00@'\xc1\xb6m\xdb\xc8G?\xfaQ\x17\x17\x08\
+xG\x06\xc6}S\x93R \x97\xcb\xa4>\xf9\xb1K\
+\x0e\xbdk5='\xa7DL\x04\x00\x80'\x9ex\x82\
+[\xb4\xe8\xc3n\xb7[\xf1&ri\x1f\x0790>\
+6\x15\x1c\x1d\x9f\x08)\x8a\xa2\x1c\xed\x8e\xff\xfa\x1f\xff\
+\xf1#\xe9w\xab\xc2\xe7\xe4\xe4\x0a\x01%\x01\xfb\x9b\x03\
+\xe0\x89\xc7\xe3\xde\xc1\x89\x84\x1fr6\x90M\xe6\x82\x92\
+\x92\xabH'S\x15\xc7\x87F+r9\x85\x83$o\
+\xbf\xee\xba\x0f\x1d=\xa9\x159A\xa7\xf3\x5c\xfebf\
+\xa2%\x82^|Q\xe1/\xbe\x18^\x00^\x00~\x00\
+\x81\xe3\xc7\xc7BYE\x0e%\xe2\xe9\x0aE\xc9V\xa6\
+R\xd9\xca\xc1\xe1\xb1j)+\xb9\xb9\x1c~p\xcd5\
+\x17\xbd4\xa3B\x8b\x83=\x13\x22\xd8\x82\x7f\x8e\x14\xd3\
+\x0b\x01@\xf6\xef\xdf/z\xbd^OMM\x8d\xd7\xe3\
+\xf1\x04\x00\x04\x00\x84\x00\x84\x86F\xa3\x15R&S\x99\
+\x88\xa7\xc3\x92\x9c\xab\xcaf\xe5\xea\xa1\xa1\xd1\xea\x8c$\
+\xd5\xc8P\xfe\xf5\xda+>\xf0\x1f%\x17f\x06\xde\x0a\
+4\xb19_\x88\x0cV`\x95\x02\x9f\xf4\x8fsD(\
+(\xe4\xa1\x87^t-ZT\xeb\xf5z\x9d^\xbf\xdf\
+\xe3\x0f\x85\x82\x81@\xc0\x1d\x02%@%\x80\xca\xf1\xf1\
+X8\x99\x96\xaa\x92\xc9du:\x9d\xa9V@jF\
+\xc7\x22\xd5\x89D\xca!+\xca\xc3\xd7\x5c\xb1zs\xc1\
+\x02\xf2{\xbb\x11hb\xf3\xb7\xf1\x9a\xe9\xc4\x08\xacl\
+9g\xfd\x9b\xfeq\x8e\x0c&\x11\x1c\x8e\x98/!\x87\
+|.\xde\xe9Oe3\xa1\xc9\xc9\xa9@\x0e\xb9\x8a\x8a\
+\x80\xaf\x02@\x18@\xb8\xb2\xd2_\x15\x9dLTs<\
+\xaay\x9e\xab\x89\xc7S\xe1p8$\x8aB\x0c\xd1X\
+|\xd3\xb3\xcf\xedi\x93\x12\xe9\x8f_w\xdd\xc5\x11\xa0\
+ \xe8V\x809\x9b\xff\x99\xce\xbf\xf5V\xd7EZE\
+\x85\xfc\xca?\xf5\xd4\xb3o\xdeq\xc7\xff\x8c\x80\x82\xac\
+\x80\x82\xce\x00fe\xb1\xf3\x00\xa0\xb0\xba\x9d#\x02\x15\
+\xf2\xe0\xcf~U\xed\x17\xf9\xc6\xc6\x86\xba@(\xe8\xaf\
+p8\x5cA\x97\xd3Q\xe9p\x88\x955U\x810\x80\
+jv$\xd3\xd9\x9a\xc9\xc9\xa9\xcatF\xe2c\xb1\x04\
+dYF<\x91D$:\x05YV\xfe\xaa(\xd9\xcd\
+\xd7\x5cq\xd1\x1b\xc6\xe7\xc3\x0c4g\xf7\xf9\xd4SO\
+\xb5\xae\x5c\xb9\xeaC\x1e\x8fw\x89\xd3\xe9Z\xeat:\
+\x96p\x1c\x17,Zq\x03\xc5dY\x8ef\xb3\xd9}\
+\xe9t\xea\xf7\xd1h\xf4\xcdg\x9eyn\xf7?\xfc\xc3\
+-\x11P\xe0\x19)\xac\xc79\x12@\xedu?yr\
+g\x9d\x87w\xbf?\x14\xf6W\xd4VUV\xb8\x9cb\
+\xa5\xdb\xe9\x0a;\x5cbUUe\xa0\x1a@\x8dz\x84\
+\xa4\xac\xc2E\xa31HR\x0e\xe3\x13Q\xe4d\x05\x19\
+I\xc2\xe8X\x14\x8a,G2r\xf6\x13\xd7]y\xd1\
+n\x14\x00\x1b\x00\xb7z\xf5U\x95\xb7\xdf\xfe\xf9\x0f\xae\
+Zu\xde\xd5UU\xa1%N\xa7s\x89\xa9R'\x98\
+\x84&\x04\x90$i_,\x96\xf8\xe9\xbe}\x7f\xfe\xe5\
+e\x97]\xd6\x033\x194Mq\xb6\x93@S\xcb;\
+~\xfe\xfc\x5c\x87\xc3yeE\xc0__\x13\x0eU\x89\
+\xa2P\xe5\x0b\xb8k\x04\xc2WWV\x85j\x04\x0e\x01\
+vm.\x07\xc4\xa6\x12\x90\xb2Y\x8c\x8cE \xa5%\
+\xc8\x8aB\x09\x91\x95\x91\xc9H7\x7f\xf4\xaa\x0f<\x0a\
+\x0a:\x07\x80\x07\xc0m\xdd\xfa\x1f\x1b\xd6\xac\xb9\xf0\xea\
+\x05\x0b\xe6|$\x14\x0ah\x95\xe0\x0a\x8eH\xd8Tx\
+\x06\xe4\x90$i\xdf\xd8\xd8\xd8}--\xf5O#\x9f\
+\x08\x00\xce^\x22\x98\xe6\x03\xfc\xecg\xbfmp\xfa\x5c\
+_u:\xc5\x96\xc6\xba\xeaj\xd1!\xd6\xf8\xbc\x9e\x1a\
+\x87C\xf0\x05\xfd\x1e8\x1c\xba!V\x14`2\x96\x80\
+$e119\x85\xf8T\x029Y\xc1\xd4T\x02\xe9\
+T\x06\x99l\xfa\xd1\x8f^\xf9\xc1\xcf\xad^}U\xe5\
+'?\xf9?\xfe\xfe\xa2\x8b.\xb8u\xee\xdc\xd6\xa0\xd3\
+\xe9\xccK;\x17\x93\x93I\x8e\xe1\xe1\xa1\xdb\x9a\x9a\xea\
+~\x0c \x87|\xf3pV\x92 oB\xc8\x8e\x9f\xbf\
+0\xdb\xe7r\xdd\xebp\x88\x1f\xa8\xae\x0e\xd5\xb8\x5cN\
+w0\xe0\x87(\xf2\xb0#\xc1T2\x83lF\xc2x\
+d\x12\x93\x93q@Q0\x95L!\x95L\xa3\xaf\xbb\
+\x7f\xff\x82\x05s\x9a\xcf?\x7fqQ{n\xaa\xd0)\
+&\xc7\xc0\xc0\xc0\xe7Z[\x1b\x1e\xc19\x12\x00(0\
+#\xe8\xd1\x9d;\x03A\x12|^\x10\x84\x0b\xeak*\
+\xe1p\x88\xf0\xfb=p\xbb\x9cp\xba\x5c\xf0{\x1dT\
+\x7f\xaaM\x95IKH\xa7%\xc4\xe2\x09\x0c\x8fL \
+\x16\x9dB,\x9a\xc0E\x17\x9d\x07\xa7\xd3axz>\
+b\xe5\xa8\xf4\x93E\x8e\xd1\xd1\xe1\xaf56\xd6~\x07\
+\x94\x049\x18\xfc\x82s\x0404\xc03\xbf\xd9\xf3\x90\
+\xc0\xf3\x9bB!?\xbc\x1e7B!\x1f<n'\x1c\
+\x0e\x11\x1e\x97\x8b\xe2)\xd3\xd6\xcb\xe6\xb2\xc8\xa4%\xec\
+\xdb\xd7\x09\xbf/\x80\xf6\xf6f\xfb\x02\x0bb\xf8\xce\x92\
+#\x91Hl\xaf\xa8\xf0~\x06@\x16g1\x09\xc8t\
+\xef\xfa\xecs\x7f\xfc\x16G\xb8\xdbC\xa1\x00\xbc^7\
+<n'\xc2\x15Ap<\x07\xaf\xc7\xad_\xa8(\xf8\
+\xfd\x1f\xfe\x8a\xb6\xd6f\x84\xc3\x15\xda\xe9\x13\xb7\xe1\xf6\
+\x0f8\x19\xe4H&\x13\xdb++5\x12\xc8\x86\xe3\xac\
+!\xc1\xb4\x04\x00\x80g\x9f{e\x13\xc7q\x0fy<\
+N\x84\x82\x01\xb8]\x0e\x84\xc3\x01\x88\x9c\x00\x97\xdb\x01\
+I\xcaa\xd7\x0b\xafa\xf5\xea\x95\x16\x95o**\xef\
+\xcc\xe9@\x8eD\x22\xb1\xbd\xaa\xcaw\xd6j\x82\x92\x08\
+\x00\x00\xcf\xfc\xfa\x95\x8by\x9e<\xe5\xf6\xb8BA\xbf\
+\x17N\x87\x88\xfa\xba*\xf0<\x87\xdf\xff\xeeu\x5cp\
+\xc1\x0a8\x1c\x85\xc0W\x0b+\x08\xcc\xbbK\x0e\x0b\x09\
+\xce*MP2\x01\x08!\xe4\xc9\xff\xb7{\xa5\xd7\xed\
+zA\x10\xc5Pe\xc8\x07A\x14q\xac\x7f\x10\xcb\x96\
+,\x80\xcf\xe7\xb5\xbb\xab\xf4\x8a\x9cdrd\xb39d\
+\xb3\x12\xdcn\x97\xcd\x7f\xf3\x1f\x10\x8f'\xb6\xd7\xd4\x9c\
+}$(\x87\x00\x1c\x00\xee\x1b\xdf\xf8v\xc5y\x17\xac\
+\xfa\xad 8\x96\xc5\xa2SX\xbcp.jk\xab\xa7\
+\xb9\xd7\xf6l\xe9\x95,\x93\x1c\x03\x03\xc7\xd1\xd3\xd3\x83\
+l6\x87E\x8b\x16\xa2\xaa\xca\xbe~\xd6\xe7R\x12\x04\
+>\x0b@\xc2YB\x82\x92\x08\xa0\x0e\xa0\x10\xd0\x8c\x1e\
+\xff\x99\xcf\xfc\xaf\xf0e\x97_\xb3\xb3\xa6\xaaj\xe9\xb2\
+e\x0bm\xae/\xa3\x02'\x91\x1c\x83\x83\x14\xf8T*\
+\x0dB\x088\x8e\xfes\xfe\xfcE\xa8\xad\xad-Is\
+$\x12\x89\xed55\x01[\x9f\x008\xf3\xf2\x04\xd36\
+\x89\x01|-\xad\xdb\xdb{XLL%C\x0b\x16\xb4\
+\x83\xb6\x87\xf9P\x14\x05\x8a\x02\xdb\xc3*\xf6\xd7)\xb6\
+\xcf\xb5\x9b\xf7\xa1(\xc0\xc4\xc4\x04\xf6\xee\xdd\x8b\x8e\x8e\
+\x8e<\xf0C\xa1\x0a\xd51U \xcb\x0ad\x19\xb6\x07\
+\x13\x8f\xc7\xb3nxx\xf2\x87\xdf\xfc\xe67\xc3\xa0\x84\
+7\x8ec\x9cq\xd3\xe5m\x06Y\xa9\x18^\x945\x00\
+\xaf^/\x5cy\xe5'\xbe\xbat\xe9\x82fQ\x14\x01\
+\xd8\x03\xcb\xc0\xb26\x17\xbd\xd6\xbe\x0d\xed\xaf-\xfc\xdc\
+\x89\x89\x09\xf4\xf6\x1eF$\x12\x01!\x00!\x9c\x06\xbe\
+\xcb\xe5F{{;*+\xab,\xcf\xb2\xaf\x17%\x01\
+=\xe9ry\xd6m\xde\xfc\xb9\xa5\x92$]u\xc7\x1d\
+w\x8c\x81j\x035\xebA\x87\x94\xcf\x14M`K\x80\
+\x02\xe0\xf3\x00\x84M\x9bno\xaf\xad\xad\xbf\xb5\xa5\xa5\
+\x11\xb2\xb1\xeb\xa8\xc2Y\xf4\xec\xa9 G2\x99Do\
+o\x0f\x06\x07\x8f\xab1>\xc7\xea\x0dQ\x14\xd1\xde\xde\
+\x8e\xda\xda:SY\xec\xb9\x91\xc8\x04B\xa1\x8ai\xeb\
+%\x08\xc2\xd2[o\xfd\xc7_\x01`$\xc8\xa9\x17\x9d\
+Q$(\xa8\x01\x90?IC\x00 \xaeZ\xf57_\
+\x993\xa7Uk\xc0\xfc\x9e\x94O\x0a&'J\x8ed\
+2\x85\xde\xde\xc3\x18\x1c\x1c\x00!\x04\x84\xf0\xea\xb5\x14\
+\xf8\xc6\xc6F466A\x10\x84\xbcgG\x22\xe3\x9a\
+\xb6\xa8\xafo\xc0\x82\x05F\xdf\xc5\x5c\x18\xbb\x97\xe7\xc5\
+\xa5\xb7\xdc\xa2\x91`\xd4\xf8\x9a8CH\x90G\x00\x83\
+\xcd\xcf\xeb\xfd\x1b7~f\xb6\xcf\x17\xf8Tmm\x8d\
+v}\xb1\xd7?Y\xe4\xc8f\xb38r\xa4\x0f\xc7\x8e\
+\xf5#\x97\xcb\xaa\xea^\xab/\xea\xeaj\xd1\xd2\xd2\x06\
+\x97\xcb\x9dwo$\x92o&\x86\x86\x86\x90H\xc4\xb1\
+t\xe9\x0a\x08\x82\x00@)\xe8\xb8\x8a\xe2\x99M\x82\xe9\
+4\x80\xd1\xf6\x8b\xef\x7f\xff\x9a/\x07\x83>\xb8\xddN\
+\xd8\xbd\xb3\xd5?:\x19\xe4\xe8\xed\xedA\x7f\xffQd\
+\xb3Yp\x1cQ{>%K(T\x81y\xf3\xe6\xc3\
+\xe5r\xa9\xe5\xe9@\xeafb\xc0t\x0f@\xe0r\xb9\
+\xd0\xd0\xd0\xa4\x82?]]\x15\x88\xa2\xb0\xf4\xe6\x9b\xff\
+\x81\x91`\x1c\xd4'\x00\xce\x00\x12\x98\x08`\xb1\xfdF\
+\x02\x88\x1f\xf8\xc0\x9a\xaa`0x}\xb1\x98\x7f\x9au\
+\x86\x96k\x0bW\x8a\x10`pp\x00\xbd\xbd\x87\x91J\
+\xa5\x00\x10\x0d|\x00\x08\x06ChmmC \x10\xc8\
+\xd3\x1c\x89\x04\x05~hh@+\x97i\x0cA\x10\xd1\
+\xd8\xd8\x84\xd6\xd6VC}\xa7\xf79\x14\x85j\x02\x03\
+\x09\xc6\x0c\x97\xbe\xa7I`\xa7\x01\xac\xe0\x0b\x00\xc4\x8f\
+~\xf4\xfa\xab9\x8e\x83\xdf\xef\xcb\x03\xba\x94\xc8\xa8T\
+r\x8c\x8c\x8c\xa0\xab\xebm\xa4\xd3\x14xB85~\
+'p:\xddhmmCmm\xadv=\xd3\x1c\xb9\
+\x5c\x0eG\x8f\x1e)\xa0-\x08Z[\xdb\xd0\xd0\xd0h\
+\xe3\x1f(\xc8f\xb3\x98\x9a\x9aDEE\xa5\xa1\xbe\xac\
+)t\x11\x04q\xe9\xe6\xcd\x9f\xdf\x09\xe0#g\x0a\x09\
+\x8a\x11@\xb3\xfd\x00\xc4\xea\xea\xba\xcb9\x8e\xd3\xd4\xad\
+Q\xca\xe9\xf9v\xa2(\x0a\x22\x91\x09\xf4\xf4\xf4 \x1a\
+\x1d\xd7@c!\x1d\xcfS\x07\xaf\xb5\xb5M\xbd\xde|\
+?3\x13\xb9\x5c\x16FmA\x08\x87\x9a\x9aZ\xb4\xb6\
+\xb6\xc1\xe9t\x02\xd0\x09\xc3q\x1c$I\xc2\xb1cG\
+p\xf4h?d9\x8b\xf9\xf3\x17\xa1\xae\xae\xdeX3\
+\xf5\x1d\xf43\x0e\x87\xb8d\xf3\xe6\xcf\xed\xbc\xe0\x82\x0f\
+}\xf6\x92K.\xdc\x0b\x9d%\xefI\x12h\x99@\x83\
+\xfa7\x02\xef\x04\xe0\x02\xe0y\xfc\xf1\xe7\xf7r\x1c\xf1\
+_t\xd1\xea\xa2\x0f,o\x10\x87`j*\x86\xce\xce\
+C\x88F#\x008\x8d0\x0c\xfc\x96\x96\xd6<{\xcd\
+dpp\x10\xbd\xbd\x87\x91N\xa7A\x08\xd4\xe4\x0f\x05\
+>\x18\x0c\xa1\xa5\xa5\x05\xc1`H}\x9e\xf9\xde\xfe\xfe\
+\xa3\xe8\xed\xed\xc9\xd3\x16\x8d\x8dMho\x9f3m\xdd\
+eY\x8e\xbe\xf9\xe6\xebW_r\xc9\x85\xaf\xc3<~\
+\xf0\x9e\xca\x18Z[\xd5\x1a\xffk\xe1\x9f(\x0a~Y\
+V\xa6U\xffE\x1c}\x139\x98\x9364t\x1c\x0c\
+4\xb3g_\x8f\x96\x96V[\x8d\xa3\x9b\x894\xacn\
+\x8b\xcb\xe5\xc6\xdc\xb9\xf3\x11\x0a\x85L\xf7\xb0j\x0f\x0c\
+P\xdf\x22\x93I\x83j\x0bN\x8b\x0ejj\xea\xd0\xd0\
+`\x9f\xdf\xd0\xdf\x81c\x9f\xc1e\xcbV>\xbbk\xd7\
+\x1f\xafV5\x81\xd6\x04x\x0fi\x02;\x02\xe4\x85\x7f\
+\xcb\x97\x9f_I\x08\x01\xcf\x03\xb1X\x14\x81@H#\
+B9\xea_\x96\x81\x5c.\x8b\xce\xceC\x18\x1c\x1c\x00\
+\x05\x80W\x01\xd0S\xb7\xed\xed\xed\xf0z}y\xcf\x8f\
+D\x22\xe8\xed\xed6i\x0b\xaa)\xa0\xf9\x0755\xb5\
+\xb6\xf5\x8aD&p\xf0\xe0\x01\xa4\xd3)\xb0H\x97\xf6\
+|\x0e\xa1P\x08\xcd\xcdm\x08\x06\x03\xea\xbd\xc6w0\
+\xbf\x93\x85\x1c\xc1%K\x96\x1bI\xa0\xc0\x901,\xd8\
+0\xa7\x91\x08@^~\xdb\x98\x07\xe0\x01\x08\x17_|\
+\xf9\x22\x8e\xe3\xa0(\x0a:::\xb1h\xd1\x5c\x84B\
+!d\xb3Vm`~\xb8\x11\x84l6\x8b\xfe\xfe#\
+\x16[\xcdi\xe0;\x9dn\xcc\x9f?\x1f\x81\x00\xed\xb9\
+\xc6v\x8e\xc7\xa7\xd0\xd9y\x08\x93\x93\x11\xb5\x0c\x06>\
+ \x08\x02\x1a\x1b\x9b\xd0\xd0\xd0\x08\x96\x9a6\x0a\xcd\x03\
+\xf4\xa8y\x00=\x1cd\xe9\xe2Y\xb3f#\x1cf\xe9\
+b\xa5\xech\x85\xe3\xb8\xe0\x92%\xcb\x9f\xdd\xbd\xfbO\
+W}\xf8\xc3\x17\xec\x05\xcd\x18\xb2q\x83\xd3\xde\x14\x14\
+\xd2\x00&- I\xb2\xc0\xf3\x1cdY\x86\xa2\x10\x1c\
+8\xd0\x85\xc5\x8b\xe7\x22\x10\x08\x22\x9b\xcdi7\xd3W\
+\xb5w\x02h\xde\xbe\xc7`\xab)\xf8N\xa7K\xed\xb9\
+u\xea3t\x10R)=\x96\xa7\x9aWO\xf9\x02\x04\
+55uhoo\xd7\xfc\x03c[\xa7RI\x1c<\
+\xd8\x91\xa7-\x00\xa8\xe9\xe29\x9a\xb60\xcaLBY\
+B\xb8\xe0\x82\x05\x8b\x7fe \x01\xa0\xae98\xddI\
+`$\x805\x07\xa0\x91\x80\x90\x1cGU-\x05@\x96\
+ettP\x12x\xbd\x01\xe4r9\xc3ch\xd7\xb5\
+j\x83\xaa\xaa0\xce?\x7f\x15::\xdeB&\x93\x86\
+(\x8a\xa8\xafg=\xd7\xccCI\x92\xd0\xd5\xf5\xb6\x9a\
+\xc41\x12\x86\xf6\xfap\xb8\x1a\xb3g\xcf1x\xf6\xfa\
+\xbd\xe9\xb4\x9e\x07P\xa70h\xe0\x1b\xb5\x05\x0d\x075\
+\x07\xb8\xa4\xc6*\x86#\xc7q\xc1\xb6\xb69\x7f\x0f\xe0\
+3\xd6\xc68\x9dIP(\x13h\x1c\x02%\x8aB\xd7\
+T\x12BY\xcf\x88\xc0\xccA0\x18B:-\x99\x1e\
+`\xf7\xba^\xaf\x0f+W\xbe\x0f\xc3\xc3\x83\xa8\xad\xad\
+\x83 \xf0\xea\xb52\x00\x0e\xd9\xac\xa4\x9a\x09\x96\xf2e\
+\xc0P\x10\xa9\xadn\xd5<{\xab\x899v\xec\x08z\
+{{4\xdbN\x9dK\xfa:55\xf5\x98={6\
+x^\xc8\x8bTN4\x8c\x05\x80\xa1\xa1\x11\xfc\xe0\x07\
+\x8f\xb7=\xfd\xf4o\xce\xbb\xee\xba+\xacN\xe1iK\
+\x82bQ\x801\x12\xe0x\x9eh=\xcdH\x84\x83\x07\
+\xbb\xb1b\xc5b8\x1cN\xa4R\x92\xe1\x11\xba\x18\x1b\
+\x5c\x10x444\x020\x93\xa4\xb7\xb7\x1b\xc7\x8e\xd1\
+$\x0e#\x1bS\xfb.\x97\x0b\xb3f\xcd1\xd8j\xbd\
+\x1e\xcc\xb7`\xf72m\xc1\xfe\x1f\x0c\x860w\xee|\
+m\x9c\x00(=R\xa1e\x15'G6\x9b\xc5\x13O\
+\xfc\x1a\xcf>\xbb\x1b\xb7\xdd\xb6\xee\xc2U\xab\x96\xef\xee\
+\xee\x1e\xd8\xde\xde^\x7f\xab\xf11\x00\xe4\xd3\x91\x04\xc5\
+\x12A\xdaA\x88B\x08\xe1\xc1\xf3\x0a\x14E\xce#\xc2\
+\x9bo\x1e\xc0\x8a\x15\x8b\xe1r\x89H&\xa5\xa2c\xed\
+V\x19\x1a\x1a0\xc4\xf2\xc4`\xab9\xf0<\x8f\x96\x96\
+6\x8d0\x86\xa5|\x00h\x1e\xa0\xab\xab\x13\xd9,u\
+*\xd9}\x84\x105\x0f\xd0\x86`\x90.J*\xd4\xee\
+3\x0dc9\x8e\xc3\xab\xaf\xbe\x8e\xef\x7f\xffq\xac^\
+\xbd\x02\xdf\xfd\xee6x<\x1e\x002\x9cN\xef\xba\xee\
+\xee\xa1\xe0\x8e\x1d\x8f~\xe6\xce;\xbf\xc8\x86\x929\x9c\
+\x86$\x98n0H\xfdT\x08\xc7\x11\xb5\xe7\xe5\x13\x01\
+P\xf0\xc6\x1b\x1dX\xbe|\x11\x02\x017&'\x936\
+\x8f\xcb\xcf\xaa\xa5\xd3)\xf4\xf7\x1f1\x80O\x8b\x13\x04\
+\x11\x0d\x0d\xcdhll\xd4\xcc\x04\xa0\xf7|6N`\
+$\x0d@Aq\xb9\x5chiiU\x1d<\xce\xd6\x14\
+\x99\xf3\xfc\xe5\x85\xb1\x1cG066\x8e\x1f\xfe\xf0q\
+\x0c\x0e\x8ea\xcb\x96\xcf\xa1\xad-_\xa3\x89\xa2\xfb\xea\
+\xb5ko\xdc\x09\xe0#\xa73\x09\x0ai\x00\xcbw\x1e\
+<O\x09 \xcb\xb0%\x82\xa2(\xd8\xb7\xaf\x03\xcb\x96\
+-B0\xe8F4\x9a\xb0y\x9c\xb9\x91\x1c\x0e\x17\x96\
+/?\x1f\xdd\xdd\x9d\x18\x19\x19\x04@PWW\x87\xe6\
+\xe66[\x07/\x12\x99@ww'\xe2\xf1\xa9<m\
+!\x8afmA\xcb\xb1wH\x8bE+\x85\xc8A\xb5\
+\x9d\x8c\xa7\x9f\xde\x85'\x9f|\x1e\xd7_\x7f\x05\xee\xb8\
+\xe3\xb3\x86|\x08-\xcfL\x02q\xe9\xda\xb57\xee\x94\
+$\xe9\xaa{\xee\xb9c\x14\xa7!\x09\xec\xa2\x00\xab\xa8\
+&\x80\xe67x\x1eE\x88\xa0`\xdf\xbe\x83X\xbat\
+\x01\x02\x01\x0f&'\x93\x06O\xdb\xf6\xd1\xe0y\x1e\xf3\
+\xe6-@UU5\x9cN\x17\xbc^:\xbd\xdc8\x85\
++\x12\x99@__\x0f&'#`\xaa\x9ei\x0b\x80\
+\xd3\x80\xe7y^\xed\xa5\xe6R\xec\x9b\xb9tr8\x9d\
+<\xfe\xfa\xd7\x03\xf8\xeew\xb7\xa3\xa9\xa9\x0e\xdf\xfb\xde\
+\xdd\xf0z=\x05\xc1\xa7\xa4\xa5\xf3\x22\x05A\x5c\xbai\
+\xd3\xad\xfbW\xaf\xfe\xe0UW^\xf9\x81\xd7\xa1\xcf,\
+R\x08!\xf4\xcaw\x91\x08\xc5L\x80Ih\x22\x88\xa8\
+/]\x9c\x08\xfb\xf6\x1d\xc2\xd2\xa5\xf3\x11\x0e{16\
+\x16\xd7&\x89\xe6\x8bN\x8e\xca\xcaJ\xd39\x80 \x9d\
+N\xa1\xb3\xf3\x10\xc6\xc6\xc6\x0cy~]\xe5\xd7\xd4\xd4\
+\xa3\xb5\xb5U\xd3\x16\xec\xdeb>G9\xe4p8\x04\
+D\x22\x11|\xfb\xdb\xff\x8d\x8e\x8e\xc3\xb8\xfd\xf6\x1b\xb1\
+x\xf1<\xf5\xbe\xe9\xc1gu\x22\x84\x0b\xce\x9b\xb7\xf0\
+W\xbf\xf8\xc5\xcbW\x7f\xecc\x1f2\x8e\x1d\x10\xbc\xcb\
+i\xe3\x92\x86n8\x8e\xd3\x06L\xe8w\x1el\x02&\
+\xcf\xd3C\x1fP\xe1\x01(\xd8\xbf\xff\x10b\xb18\xc2\
+a/\x00R\xd6\xcc`\x9a\xc4y\x0b{\xf6\xfcA\x05\
+\x9f^\xc7\xc0\x0f\x06CX\xb1\xe2|\xcc\x9d;\x0f\x0e\
+\x87\xb3\xac\x99\xc5\xa5\xcc\x0c\xe6y\x1eN'\x8f\x9d;\
+_\xc2M7\xdd\x89\x86\x86:<\xf8\xe07\xb0ti\
+\xf9\xe0\x1b\x93EK\x96,y\xf6\x0f\x7f\xe8\xf8\x18h\
+\xc7c\x11\x96\xeah\x97\x18o\x9ed)C\x03\xe8y\
+\x00Yfqma\x8d\xa0(\xc0[o\xbd\x8d\xc5\x8b\
+\xe7\xa1\xaa\xca\x8bH$\x0eI\xa2\xadl7\xd6\xce\x84\
+\x10@\x92r\x18\x1d\x1d\xd5F\x04\xe9y\x02\xaf\xd7\x8f\
+Y\xb3\xda\x11\x0c\x06U\xd5m\xd7iJI\xe5\xda\x9b\
+%B\x08\xdcn'\xba\xbb\xfbp\xff\xfd\xff\x85P(\
+\x80\x1f\xfc\xe0nTW\x87\x01\xd8E\x08\xa5\x81O?\
+\x15\x10B\x82\xf5\xf5\xf5\xdb\xf7\xec9\xf8\xb9\xd5\xab\x17\
+<\x02=m\xfc\xae\xe5\x0a\x8c\x04\xb0+X\x01\xa0\xf0\
+<\xaf0\x1f\x80\xcd\xae)\x8d\x08\x8aJ\x82\xf9\x08\x87\
+\x03\x18\x19\x89\x19R\xc7\xf6 (\x0aM\x18\x9dw\xde\
+*\x1c8\xf0\x16\x12\x898\x5c.\xb7\xc1\xb3\xd7\xaf\xb3\
+\x97\xc2\xf3\xfb\x0a\x91\x83\x02/\x22\x99L\xe2\xdb\xdf~\
+\x0c/\xbf\xfc\x17\xdc~\xfb\x8dX\xbdz\x85\xd6\xdb\x19\
+\xf8\xe6\xdeo.\xb7\x18\xf8:Q\x14TW\xd7|o\
+\xcf\x9e\x83PI\xa07\x06\xdey\x12\x105\xf7n\x1a\
+\xfc\x81>\x0f@\xdb5\xf4\xd5W\xdf\xdaMU(\xcb\
+\xdc15K_J\xff[1\xfd\x9f\x85N\x0b\x17\xce\
+C(\xe4\xc7\xc8\xc8$\xb2\xd9\x22\xc1\xb6\xb1r\x04\x18\
+\x1e\x1eDee\x95a>@>\xba\xe5(O\xeb\xb5\
+.\x97\x08\x87\x83\xc3s\xcf\xed\xc1\x0f\x7f\xf8\x04.\xbd\
+\xf4o\xb0n\xdd5&'\xcf\x1e\xfc\xc2\xbd\xdf|\x9d\
+\x19|\xfd<\x90H$~\xba|y\x93u=\xa2B\
+\x1f\xf1\xce\x90\xc0J\x00\x0e\x80\x08\xc0\x01\x0b\x01^x\
+\xe1\x95\x87\xfd\xfe\xc0lfW\xcb%\x02@\xb0x\xf1\
+<\x04\x02~D\x22\x09\xc4\xe3\xf9\xfbM3u_R\
+\xc5\x0bD\x15\xa5]G\x1d<\x9f\xcf\x85\xae\xae^|\
+\xf3\x9b\x0fC\x96e\xdc~\xfb&\xcc\x9a\xd5d\xa8s\
+\xf9\xe0[{\xbf\xfe\x1c3\xf8\xacm\x12\x89\xe4\xf6\x15\
++\x9ao\xc5\xbbD\x02;'\xd0\xe85i\x0b${\
+{\x0f\xbf\xc2ql\x08\x97S\xa7jq0\xae\xc61\
+:\x83Vg\x91\x10\xa0\xa3\xa3\x0b\x93\x931\x84\xc3\x1e\
+x\xbd\xce\xbc\x82\xa9\x83f\x7f\xe4U\xb2\x80\xe3gu\
+\xfat2B\x0d\xcb8\x84B\x1e\x88\x22\xc1\xb7\xbe\xf5\
+0\xbe\xf6\xb5\x7f\xc7\x9a5\xef\xc7w\xbes\x97\x06\xbe\
+^\x1fV\xd6\xcc\xc0\xb7ZU+\xf8\x8a\x02\xb8\xdd\xae\
+uo\xbc\xd1\xff\xf8\xb6m\xf7\x87aH\xbd\xe3\x1dr\
+\x0c\x8d\x04P\x0c\x9fF\xf0s\x00r\xdb\xb7\xff\xe47\
+\xb9\x5c.\xce\xf3\x14\xfc\x99\x10\x01\x90q\xe0@7&\
+'S\x08\x87=\xf0x\x0ay\xf0\xf9\x15-\x95\x1c\x85\
+\x9eG\xc7\x05\xdc\xf0\xfb]x\xf9\xe5\xd7\xb0v\xed\x97\
+0>\x1e\xc5\x0f~p/>\xf6\xb1Ka\xeclv\
+\x1d\xafT\xf0\xd3\xe9$\x0e\x1d:\x80\x97_~\x11\x83\
+\x83\x83Z\xdd\xed\x9fG\xcf;\x1c\xce\xab\xaf\xbf\xfe\x86\
+_\xab$`\xeb\x11\xd9\x9c\x82SJ\x04\xa3\x09\x00\xf4\
+Y@\x22\xa8\x1f\xe0\x86n\x06\x82\xff\xf2/\xffv\xdd\
+\x95W^\xf3y]\xad\xc9y!W)\xa6A\x10\x04\
+,X0\x07\x81\x80\x1bSS\x19\x8c\x8e\xc6\xa0\xcf\xdb\
+/\xa1\xd2e4\x07\xcf\x13x\xbdNx\xbd\x0etv\
+\x1e\xc1\x03\x0fl\xc7\xd0\xd0\x18\xbe\xf0\x85MX\xb2\xc4\
+\x1c\xd6\x19\xbf\x17\xeb\xfdv\xe0KR\x16G\x8e\xf4\xa0\
+\xbf\xbf\x9f\xd5\x12\x1c\x07\xb4\xb5\xcdF]]\x93m\xef\
+g\x04`\x0es6+\xed{\xf2\xc9G\xaf\xbc\xe7\x9e\
+\xaf\x8cC\xdf\xc0J\xad\x86rJ\xf2\x05V\x02\x18\xa7\
+\x82;@\x09\xe0\x01%\x80\x1f@\xf0\xde{\xef\xbf\xe6\
+\xdak?\xfe\x19\xb3}+\x9f\x08\x0e\x87\x03\x8b\x17\xcf\
+\x85\xcb%j$(X\xc9\x19\x92\xc3\xe3q \x10p\
+!\x93\xc9\xe0G?\xfa9~\xf1\x8b\x97p\xfd\xf5W\
+`\xfd\xfak\xf2\x1c6\xe3\xf7rT\x7f.'\xe1\xe8\
+\xd1~\x1c;vDsn\xd94v\x00\xa8\xabkD\
+k\xebl\xf59\xf6\xe0\x1b\xcb\xca\xe5r\xd1\x9e\x9eC\
+\x1f\xb9\xf6\xda\x8bY\xd6\x90icE\xbd\xee\xe4\x13\x00\
+\x80]$ \x82:\x82n\x00>\xe8$\x08l\xdbv\
+\xdfG>\xfe\xf1O\xde\xcc\x1aa\xa6D\x10E\x07\x16\
+/\x9e\xa3\x91`l,\x0eY\x96\xcb\xf4\xea\xf3\xc9\xe1\
+t\x0a\x08\x85\xdc\xe08\xe0\xe5\x97\xff\x8c\xef\x7f\xffq\
+\xd4\xd6V\xe3\x0b_\xd8\x84\x9a\x9aJ\xb5.'\x0e\xfe\
+\xd0\xd0 \xba\xba\x0e!\x9b\xcd\x19\x1cX\xfaYYY\
+\x85\xd6\xd6Yp8\xd8\xaa\xa5\xe9\xc1g\xff\xcb\xe5\xe4\
+\xe8\xa1C\x1dW}\xf2\x93\x97\xee\x85\xc1\x0f\xc3) \
+\x81\x1d\x01\xd8L`\x16\x0e\xbaa&A\x00\x80\x7f\xeb\
+\xd6\xaf_\xfew\x7f\xb7v\x13\x03z\xa6Dp:\x1d\
+X\xb8p\x0e\xdcn\x11\xe9t\x0e\x03\x03\x11\x95 \x85\
+\x13E\x85D\x10xTVz\xe1t\x8a\xe8\xef\x1f\xc0\
+\x03\x0fl\xc7\x9bov\xe2\x8b_\xbc\x09\x17^\xb8B\
+\x9b\xd0\x99\x1f\xae\x95\x07\xfe\xe0\xe0 \xfa\xfa\x0ek\x8b\
+WX]\x09\x01\xfc\xfe\x10\x9a\x9b[\xe0\xf7\x07\xa7U\
+\xfb\xf9e\xe9f%\x9b\x95\xa3\xc3\xc3\x03\xb7]~\xf9\
+yO\xc1\xac\x09\xd4\xdbN\x0e\x09\xec\xd6\x05X\xcd\x80\
+\xd1\x17`\xfe\x80\x1f\x80o\xcb\x96\xaf\xff\xed\xa7?\xbd\
+v\xa3\xd1\x03\x9f\x09\x11\x1c\x0e\x11\x8b\x16\xcd\x85\xd3)\
+ \x93\xc9\xe1\xf8\xf1\x88\xad\xe3d\xa8\xb6\xe9/\x8e\xe3\
+\x10\x0a\xb9\x10\x08\xb8\x91Lf\xf0\xf0\xc3?\xc7SO\
+\xbd\x80+\xaf\xfc \xd6\xaf\xbf\x16>\x9f\xa7 \xf8\xc6\
+\xef\xcc\x16\xeb\xd7\x99\xc1g\x13L\xe9\xa0\x14X\xbb\x01\
+ p:]hnnEuu\x8dm\xc8788\
+\x88#Gz\x11\x0a\x85\xd0\xde>\xdfT\xae\x15|Z\
+UZ\xf6\xf8\xf8\xc8mk\xd6,{\x18\xa7H\x13\x98\
+\xb6\x88\xb1\xd1\x02,'\xc0H\xe0\x03%\x01\xd3\x06\xbe\
+\xbb\xee\xba\xf7\xd2O\x7fz\xc3\x0dF\xb0gB\x04Q\
+t`\xd1\xa29\x1a\x09\x86\x86bH\xa7\xe9\x1a\xccb\
+\x8bMB!\x0f\xfc~7\x14E\xc6_\xfe\xf2\x16\xbe\
+\xf9\xcdG\xe0\xf1\xb8\xf1\xc5/n\xc6\xec\xd9\xcdZ\xf9\
+\xb4\x1ch\xe51)\xd6\xfbY\xfdb\xb1)tw\xbf\
+\x8dH\x84\x8dF2\x0dE\xe7\x19\xd6\xd77\xa2\xa9\xa9\
+E}\x8e\x19\xfcHd\x1c}}\xbd\x88F#\xda\x0c\
+\xa7`0\x84y\xf3\x16\x80\xe3\x84\xa2\xe0\xab5\xc2\xf8\
+\xf8\xe8mk\xd6,c{\x1c\xb3-n\xd5\xea\x9e\x18\
+\x09\xec\x08@ki\xd8\x11\x04zf\xd0\xa8\x09|\xea\
+\xe1\xdd\xb2\xe5\x9e\xcb\xd6\xae\xdd\xb8\x81\x02;s\x22\x88\
+\xa2\x88\x85\x0b)\x09d\x198v,\xa2\x91\xc0*\x81\
+\x80\x13\xa1\x90\x0f\x82@p\xfc\xf80\xfe\xf3?\xff\x1b\
+{\xf6\xbc\x89\x8d\x1b\xaf\xc5u\xd7\xfd\xad\xa9L\xdaR\
+Z\x8bi\xcf\x98N\xf5\xd3\xfd\x08z\xd45\x0c\xe6\x09\
+\x22\x84\x10\xd4\xd77\xa1\xa9\xa9\x19</\xa8\xcf\xd1\xef\
+\x8f\xc7c\xe8\xea\xeaTg%\xeb\xf3(\x09!p8\
+\x9cho\x9f\x0b\x9f/\x88\xe9\xc0g\xdfS\xa9\xd4O\
+\xdf\xff\xfe\xd9\xb7\xc2\xbc\xbd\xad\x82\x13$A\xde&Q\
+\x16-`t\x08\xb5eb\xd0\x89`$\xc1\xa5\xeb\xd6\
+m\xdc\xc0\x18=S\x22\x88\xa2\x13\x0b\x17\xce6\x91\x80\
+\xce5\xa4\xe2\xf18PQ\xe1\x85\xdb- \x93\x91\xf0\
+\xd8c;\xf1\x93\x9f<\x83\x95+\x17\xe1K_\xda\x0c\
+\xaf\xd7ciT\xb9l\xf0\xb3Y\x09G\x8f\x1eA_\
+_\x0fk\x15\xd66\x00\x80p\xb8\x0amm\xedp8\
+\x1c\x86r\xe8\x97T*\x89\xbe\xbe^\xdb\xa9\xec\x82\xc0\
+\xa3\xb6\xb6\x09\x8d\x8dMZY\xac\xae\xc5\xc0g\xd7\xa5\
+R\xc9\x9f\xae^=\x87\x91\xe0\xa4d\x0d\x8b\x11\x80\x1d\
+L\x0b\x18I`\xd4\x04\x8c\x08\xde\xbb\xee\xfa\xfa%k\
+\xd7\xde\xb0\x81\xd9\xf6\x99\x12A\x10D\xcc\x9f?\x1bn\
+7%\xc1\xc8H\x0c\xc9d\x06UU~x\xbd\x0e\xe4\
+r\x0a^\x7f\xbd\x03\x0f<\xb0\x03\xb1X\x02_\xfa\xd2\
+f,_\xbe\xc0F\x9d\x96\xe7\xf4IR\x16\xfd\xfd}\
+\xda\x0ac\xc08\xf1\x84N0mjjE0\x18\xb4\
+\x80\xa7 \x97\xcb\xa2\xb7\xb7\x07\xc7\x8f\xb3_\xd33\xce\
+J\x06\xea\xeb\x1b\xd1\xd8\xd8\x0c\x8ec3\xa1\xadu\x05\
+t\x02\x14\x1eLJ\xa5\xd2\xcf<\xf3\xcc\xd3\xb7\xdew\
+\xdf\x17X\xae\xe0\x844\x81\xed6q\x16\x12h{\x04\
+\x80\xfa\x03l\x9c\x80\xe5\x08\xf2H\xb0n\xdd\x0d\x1bt\
+`\xe9\x0b\x94K\x04\x9e\x171o\x1e%\x81Q\x06\x06\
+\xc6\xf0\xe8\xa3\xbf\xc4\xd3O\xef\xc2\xc6\x8d\x1f\xc3\x86\x0d\
+\xd7\x16h\xd0\xf2\x9c\xbe\xc1\xc1\xe3\xe8\xed\xedA2\x99\
+\x84\xfe\xfaT\x5c.\xb7\xe6\xe0Y\xcb\xa2S\xd9\xfb\xd5\
+\x15O9\xb5\xfd\xa0\xdd_Y\x19Fk\xeblu\xde\
+B\xbe\xd37<L\x9d\xc3\xa6\xa6VTW\xb3\xd1N\
+\xf3\xc0\x92U\xcbH\x92\xb4\xef\x97\xbf|\xea\x0a\x03\x09\
+f\xec\x18\x16\xdc'\xd0\x86\x04VM\xe0\x04%\x00#\
+\x01s\x10U\x12P\x9f\xe0D\x88\xe0v;1wn\
+;\x04\x81\xce\x11\xd8\xb5\xebU<\xf0\xc0chn\xae\
+\xc3\x97\xbf\xbc\x1955\xc6i\xe2\xe5\x83\x0f\x00##\
+\xc3\xe8\xeaz\x1b\xa9T\x12\xc6y\xb0\x84\x00</\xa2\
+\xa1\xa1\x11\xcd\xcd-\xb6=rpp\x00]]oC\
+_/\xa8\x9b\x8a@ \x88\xa6\xa6f\xd5\xce\xe7{\xfc\
+\xa3\xa3\xa3\xe8\xe9\xe9B:\x9d\xd6\xeemkkG]\
+]]\xc1\xdeO\x17\xe7\xd2\xef\x99Lz\xdf\xb3\xcf\xfe\
+\xe2\x84IPt\xa3H\x8b?`\x0d\x0fY\xa6\xd0N\
+\x13x\xb6n\xfd\xe7K\xd6\xaf\xdf\xb8\x81\xb2v\xe6D\
+\x10\x04\x11\xbbw\xbf\x8e?\xfc\xe15\x8c\x8fO\xe2\xcb\
+_\xbe\x19\x17^\xb8\x12\x85{Ii\xe0\xd3\xfd\x08\xba\
+U\xcf^{_0\x9bM\x81o\x05\xcfsy\x80\x8c\
+\x8c\x8c\xa0\xbb\xbb\xd3\x04\x1eS\xf5.\x97\x0b\x8d\x8d-\
+\x9a\xb60\x9a\x19E\x01\xa2\xd1\x09\xf4\xf5\xf5\x22\x16\x8b\
+j\xf7\xb2\xb2=\x1e\x0f\xe6\xce]\xa8\xcdr\xb2\x82o\
+~/\x19\xb9\x9c\x1c\x1d\x188~\xf9'>q\xe1\xeb\
+\xa0\xe0\xe7\xd4\xb2N\x0e\x01\xd4\x8aYM\x81\xddx\x81\
+\x91\x04>\xf6}\xeb\xd6\x7f\xbed\xc3\x06\xea\x18\x9e\x08\
+\x11>\xff\xf9\xff\x0d\x00\xf8\xd9\xcf\xbe\x85P\xc8\x0f\x14\
+\xb1\x91\xd39}\xc9d\x12\x1d\x1do\x19\x80'\x86\xe4\
+\x12\x87p8\x8cY\xb3\xda\xe1p8M\xf7)\x0a\xb4\
+\xc9\xa9\xec^=*\xd0\xc3\xc1\xc6\xc6f\xc0&\xd9\x93\
+N'\xf1\xf6\xdb\x87\xb4\xa8\xc0X\xae\xc3\xe1Fcc\
+\x13\xaa\xaa\xf2M\x0c}N>\xf8\xecoY\xceE\x07\
+\x06\x06.\xff\xc4'.dY\xc3\xb2|\x81R\xa7\x84\
+)\xd0cO\xf67}\x8bB);\x00\xf7\xde{\xe7\
+.\x8e\x03\xd6\xad\xdb\xb4\x81\xe7\xe9\xc2RYV\xb4\x19\
+E\x8a\x02\xd5)bD \x00\xf4\xff\xb3\xd0IQd\
+\x10\xc2\xe1\xad\xb7\x0e\xe2\x82\x0bV\x18\x16\x83\xd2\xaaX\
+{\x7f^\xe5\x15\x05\xc9d\x12==\x87\x0d!\x1d\xab\
+>\x00\xb0%\xe2-\x08\x04\xf4\x0c\x1e{\xcdd\x92\x8e\
+\xf0\xe9;\x8d\x99ME]\x1d\xcd\x03\xf0<\x0f+\xf8\
+\xa9T\x02}}\xbd\x18\x1e\x1eR\xcb5\x93\xa6\xb6\xb6\
+\x01uuu\xe0\xb8B\xefT\x18|@\x01\xc7q\xc1\
+\xda\xda\xfa\xe7~\xfc\xe3\x9f\xbdo\xe3\xc6O\xf5\x00\xe5\
+M2\x9d\x96\x00\x8a\xa2\xb0\x1f[d\xde&k\xe5\x1c\
+\x80\xcc4\xb7\x93\xbb\xef\xbe\xf3EE!d\xc3\x86M\
+\xeb\xa9sW>\x11\xd8\x8bOM\xc5\xf1\xa7?\xbd\x81\
+\x0b.X\xae\xc6\xde\xa5\xa9~\x80\xf6\xde\xd1\xd1Q\xb0\
+Q:\xa6\xea\x9dN'ZZ\xdaPUUkz\x1e\
+h\xd8\xa5\xe6\x01\xe8\xb0.\x03\x8f\x91\xa7\xba\xba\x16\xcd\
+\xcd-&\x95M\xebB\xf7A8v\xec(\xfa\xfaz\
+M\xf72\xd2UW\xd7\xa0\xa5e\xb6F\x1a\xd6\x0e\xe5\
+\x80\xcf\xca\xcaf3AA\xf0\xce\x02\xd0\xab\x16pr\
+5\x80\x81\x04Z\xdci\xf8\xb7d\x7f\x97.\xf7\xdc\xb3\
+e\x17\xc7\x11e\xfd\xfa\x1b7(\x0a}\xe1r\x88\x00\
+@\x9d\x7f@05\x15\xc7k\xaf\xbd\x81U\xab\x96k\
+!U)v\xbf\xb6\xb6\x01^o\x00\x87\x0eu \x1e\
+\x8fC\x14y\xd4\xd55\xa3\xa5\xa5%ox\x97\x8e\xf0\
+\xd1-d\x98\x92\xb3\x86\x83\xcd\xcd\xadj\xbe_6\x01\
+\x22IY\x1c?\xde\xaf\xaeU\xcci\x93a\x14\x85~\
+\x06\x02!\xcc\x9a5G31f\xd2\xe9R*\xf8\xb4\
+\xcc$$)\xa3\xedg\x5c\x8e\x94<+\xd8\xa2\x09\xac\
+\xbaV\xb1\x14\x9eW\x91m\xdb\xbe\xf6\x22\xa0\x90\x1bn\
+\xd8\xbc\x9e\x86_\xa5\x13\x81\xe3xu\xfa9\x0fYV\
+05\x95\xc4\xde\xbd\xfbq\xdeyK\xb4\xa2J\xf1\xf8\
+\xbd^/\x96-[\x89\xa1\xa1\x01\xd4\xd4\xd4i\x0bI\
+\x18\x08t\xa7\xb1>\xf4\xf7\x1fA.'\xe7\xf5Z\x97\
+\xcb\x8d\xb6\xb6\xd9\xa8\xa8\x08\xab\xcf77\xc3\xe0\xe0\x00\
+\xfa\xfaz\x0d;\x9c\xe9\xf7z\xbd~\xb4\xb6\xce\x82\xdf\
+\xef7i\x99B\xbe\x8c\xb9\xed\x8b\x0f&\xa5\xd3\x09\x16\
+\x822\x93\x5c\xb2\x19(\x99\x006b%AF\xab\x9d\
+.&\x22l\xdb\xb6e\x17\x00l\xdc\xb8y=u`\
+J#\x02\x9da\xc4\xab3\x8c\xe8\xb3&'\xa7\xd0\xd1\
+\xd1\x89\xa5K\x17h\xe3\xf0\xa5d\xfax^@CC\
+c^C\x0f\x0d\xd1<@*\xa5{\xf6\x00\x1d\x87\xe0\
+y\x11\xcd\xcd\xad\xa8\xabk\xb0\xed\x91\xd1\xe8\x04\xde~\
+\xfb\x00\x92\xc9\xb4\xc1G`\xa4\xa1QA8\x5c\x8b\xe9\
+2}\x85T\xbfU\x8c\xef\x94\xc9$\x91\xcdJ\x90$\
+I[c`\x7f\x97\xbd\x94E\x00\x8b\x16`&\xc1Z\
+ \xb1|\x9a\xbeo\xdbF\xcd\xc1\x0d7l\xde`\x9c\
+^^\x8c\x08\x82\xc0\xc0\xd7\xa7\xa0\xf3<0::\x8e\
+\x03\x07\xba\xb0p\xe1\x5cH\x92>f0]\x8e_o\
+h:Xs\xf0`\x87\x01x\x98\xc6\xf6\x19\xf0</\
+\xe4\x81\x1f\x89D\xd0\xd7w\x18\xd1(\x0d\xe9\x8c>\x82\
+ \x88\xa8\xabk@mm\x03\x04A0E'\xe5\x80\
+o\xd7\xfb\x8d\x92\xc9\xc4!\xcb\x0a$I\xb6\xb6\xf7\xc9\
+q\x02\xadR\x80\x04y\x97\x15{\xc6]w}\xedE\
+EQ\xc8\xc6\x8d7\xad\xb7\xae3\xb0#\x02\xb3\xff\xc6\
+\x06f\xfe\xc1\xd0\xd00\x08\x01\x16,\x98\x03I\xca\x95\
+\x05~*\x95DWW'2\x99\xb4a\x16\x0f-\xa3\
+\xa6\xa6\x0eMM-p\xb9\x5c\xa6\x04\x8c\xa2\xc8H\xa5\
+R\xe8\xee\xee\xc4\xd8\xd8\x08\xcc>\x02\x00p\xa8\xae\xae\
+Ak\xeb,\xc3 \x91\xb5\x0d\x8d\x9f\xe5;}\xfa{\
+)H$\xe2\xc8\xe5d\xa8\xbb\xd7\x9e:\x1f\xc0(6\
+\x91\x81\x9d\x14RG\x04\x00\xd9\xbau\xcb.\x80\xc3\x8d\
+7\xde\xb4\x1e6\x0bN\x8cD\xe0y\xa6\x01\xf4-j\
+\x00\x9d\x08\x83\x83#\x00\x80\x85\x0b\xe7\x9av*)\x06\
+>\xa0\xc0\xe9ta\xc5\x8a\xf3\xd1\xdd}\x08CCC\
+\xda\xb2\xb3\xa6\xa6V\x04\x02A\xf5Z\xfd\xf5\x92\xc9$\
+\x8e\x1c1\x8e\x0e\xb2qj\xfa\x19\x0c\x06\xd0\xde>\xcf\
+\x10\x15\xd8\x0f\xf2\x98\xdb\x92]W\x1e\xf8<O\x10\x8b\
+E\x90\xcd\xe6\xa0(2\xb2\xba\x02<u&\xc0\x5cq\
+\x8d\x04\x80\xbd\x16\xb0\x13v\xbd\x02\x00[\xb7~u\x17\
+@\xb0i\xd3M\xeb)X\xf6D`k\x13\xd9\x1e\x05\
+vD\x18\x1a\x1a\x05\xc7\x11\xcc\x9f\xdfn;\x84l\x05\
+\x9f\xfd\xcd\xf3\x1c\xe6\xce]\x88`\xb0\x12\x1c\xc7#\x1c\
+\x0e\xe7\x81\x22It\xfb\x19:H\x9438\x87t\x1b\
+[r\xfcT\x05\x00\x00\x11\xd0IDAT\x8f\xc7\x8b\
+\xb6\xb6\xd9e\x0d\xef\xda\xa9\xf4R\xc1\xa7\xdaPA,\
+\x16\x81,\xe7\xd4\xb6\x92\xca\xb6\xff\xc0\x899\x813%\
+\x01\x13\x02\x00[\xb7\xde\xb1\x8b\xe3\x00j\x0ex\xd8\x11\
+\x81M57\x9b\x80|\x22\x0c\x0e\x8e\xc0\xe1p`\xd6\
+\xac\x16$\x93\x92Z\xc7\xfc\xaa\xd9\x01B\x07b\xf2\xd5\
+qo\xefam\xfb\x19\xa6\xeaY\xb9N\xa7\x0bMM\
+-\xa8\xaa\xaa\xb1Q\xe7\xb4\xdcr\xec~~\x1d\xed\xc0\
+\xa7s\x1eGF\x8e#\x93\x91\xb4\x0c\xab\xea\x03\xbc\xb3\
+\x04P+\xa5\x00Z\xcaX\x1b\x90(G\xee\xbc\xf3\x8e\
+\x17\x09\x01n\xbc\xf1\xe6\xf5\xb2\x0cX\x89\xc0\xf3\xbc\xaa\
+\x01x\x00\xf9[\xd4\xb0|\xbd,\x03G\x8f\x1e\x07!\
+@[[+\x92\xc9\x0c\x14%\x97\xd7\xfb\xf3\xdf\x81\x9e\
+7\x02B\xb7\xae\xe9Qw+\xd7w*\x03h}\xea\
+\xeb\x1bQ_\xdf\xa8\xe5\x22\x8c2\x13\xf0\xad\xbd?\xbf\
+\x8e\x14|\x97\xcb\x81T*\x8eh4\x02\xb6s+\xbd\
+'k\xffr\xd3\xc8\x09\x13\xc0PA\xa3_\x90\x9b\xe6\
+\xf2<\xa6n\xd9r\xc7\x8b\x00\xb0i\xd3-\xeb\x15\x85\
+\xce\x0b`D\x10\x04}\xd1\x89\xa2\x187\xa4\xa0\xaa\x90\
+9\x84ta*\x87#G\x06A\x08\x87\xb6\xb6f\xc4\
+\xe3i\xe8\xdb\xd9\xd8\xaf\xe21\x8a,+\x18\x1b\x1bA\
+WW'd9k\x99\xd4A5Ek\xebl5*\
+0\x82g\xff\xbc\x13\xf5\xf8\x8dd\xa7\x0bid\x0c\x0c\
+\x1cC6+\xc3\x98\x84\xcaM\xd7\xe2\x05\xe4\xa4\x11\x00\
+\xc8#A!\x93P(l\xc4\x96-w\xbc\x04\x00\x9b\
+7\xdf\xb2^]%\x0bYfK\xd3i>\x80\xfa\x05\
+\x80\xbe!\x05\xc0\xb4\x82\xa2@3\x1dT\x13\x10\xb4\xb6\
+6!\x1eOk\xb6R\xadiAP\x00\xba\x0f\xe1\xf2\
+\xe5.tt\xec\xd7\xf6\x14\x0e\x04\x82\x9a\x83\xa7\xbe\xab\
+\xed\xfd\xf9\xbd\xdf\xd4B3\x02\x1f\x00\xbc^'8\x8e\
+C__/\x92\xc9\xa4v\x9d1B\xb1i\xdbi\xe5\
+\xa4\x12\x000\x91\xa0\x98O`m\x1e#\x09^\x048\
+\xdct\xd3-\xeb\xe9 \x10\xcd\x00\xa6R\xa3\xeaw\xa3\
+\x83\xc8\xcc\x00\xfbM\x01\xb3y8z\xf488\x8e\xa0\
+\xb9\xb9\x11\x89D\x06\x99L\x16\xa5\xf6H\xaf\xd7\x8f\x15\
++\xde\x87\xa3G\xfbPYY\x89@ X \xb4,\
+\xc7\xee[\xdb\x8a}\x16\x06\x9f\xe7\x09|>\xba\xb6`\
+p\xf08\x22\x91\x88\xda1\x8c#\xab\xb2i\xc7\xd6r\
+\xe4\xa4\x13\x00(Y\x13h\x97[>\xb1e\xcb?\xbd\
+\x08\x007\xddt\x8b\x9a'P\x90J\x0d\x80\xe3t\xdf\
+\xc0H\x04\xa00\x11\x8e\x1c9\x06B(\x098\x0e\x16\
+\xe7\xb0x\x8f\x14\x04\x1emm\xb3\x8dU;\x01\xf0\xcb\
+w\xfa\x5c.\x01\x1e\x8f\x03\xb2\x0c\x8c\x8d\x8d\xe2\xf8\xf1\
+\xe3\xda,&\xdd\xf6\x9b\x9e\xf7\xee\xf9\x00VQI\xc0\
+\xfe4N\x99\xb1\x9f\xe6\xab\xde\xc6\x8e-[\xfei\x17\
+\xcfs\xca\xe6\xcd7oH&G\xc0\xcf?j\x88\x02\
+\xca#B_\xdf1\x08\x02\x8f\xc6\xc6:5\x01$\xe1\
+D\xd4\xb1\xfe\x8e0\xfc\xef\xe48}\xcc\xe4\xf9\xfd.\
+8\x1c4\x838>>\x82\xc3\x87{4\xe0\xd9}\xba\
+\x13X\xa4E\xa7\x91SF\x00\xa0 \x09Xu\xa7\xb3\
+W\xca\x1dw|i\x17!\xc0\xd4Td\xc5\xa4\xd4{\
+\x84\xe3\xc8U\x80\x11\xec\xd2\x89\xd0\xd7w\x0cN\xa7\x88\
+\xeaj\xfa\x9bG\xc9$\x1d\xc9.?\xfbf\xfe\x9fM\
+\xb5O\xc8\xe9s\xbbE\x04\x02n\xed\xfa\xe3\xc7\x87\xd4\
+!e\xa6\xf2e\x8b\xfa\xa7\xf7\xe5f\xe8\x05\x9eR\x02\
+\x00\x05I\x00\x14&\x80b<\xbe\xf2\x95/\xfd\x16\xc0\
+\x1e\xbc\x047\xb7\x89\x5cE\xe3\x7f\xf5ae\x10\x01\x00\
+:;\xfb@\x08\x87\xaa\xaa0DQ\xc0\xe4dB\xad\
+#\xabk\xe9\xe0O\xe7\xf4\x95\x0b>\xcf\xf3\x08\x85<\
+p8\xe8\x88g6\xab\xe0\xed\xb7\xbb022l\x0b\
+\xbcN\x08:bzZD\x01\x85\xc4@\x02c3e\
+\xa1\x03m\xba\xdcp\x98f!ut\xec\x7fm\xd1\xa2\
+%\xab\xf4D\x10\xfd\x07\x0d\x19\x01E\xa1D\xa0~\x83\
+>\x9f@\x96\x89\xa6*;;{A\x08AUU%\
+\x00\x17\x22\x11\xf3\xae\xa6'\x06~\xf9c\xfb<\xcf!\
+\x18\xf4\xc0\xe3qh '\x93I\xbc\xf5\xd6!LM\
+M\x99\x80\xa7\xcf7\x03\xaf\xd7\xf7\x1d\x1c\x0b\x98\x89\x94\
+\x11\x1d\x18\x9dBv\xad\x0c@\xb9\xe5\x96u?z\xf0\
+\xc1\xedX\xb4h\x99J\x02\x0a2\x0d\x07\xd9\x08\x22\xdb\
+\xb0\x8a\x03\xbb\xc6\xbaqUWW/x\x9eCee\
+\x05\x00\x0e\x13\x13\xf1<[l\xa8\xb7\xfaI\xab4\x13\
+\xbbo~\x1e-G\x10h\x8f\xf7z\x1d\x06\xc7\x0e\xe8\
+\xe9\xe9C_\x1f\xdd-]\xcf]\x14\x06\x9e\x9d'\x84\
+\xb3\xebL\xd3\xca;F\x00\xa0$\x12X{\xbf\xd5o\
+\xc0\xcd7\xaf\xfb\xd1\x83\x0f\xee\xc0\x92%\xcbV\xc9\xb2\
+\x0e\xb21u\x0c@\xeb\xf5\xf6\xe6A\xc1\xdbo\x1f\xc6\
+\x82\x05sPY\x19T\x87\x96\xe3jJ\xb9\x90\xd3w\
+b\x1e?\xfb\xdb\xebu!\x18t\xc1\xe9\x14A\xb5\x13\
+\xbd\xfe\xf8\xf1Atw\xf7 \x91HZ\x80\xd7m\xbd\
+^\xae\xfe?\xaa\x1dd$\x93\xc9\x08f@\x80ig\
+\x05\x9f\x0a\xb1\xacA$\xb0\xfcD\x1d\xf4\x05\xa9l)\
+\x9au\xed\x81\xe7\xc1\x07w\xdc\xb4t\xe9\xf2U\xcc\x1e\
+\xb2\xa5e\x80\xde\x9b\xf4\xf3\x8a\xe1\xbc~\x0d\xc7\xf1X\
+\xbcx\x0e\x02\x01?$I_\x9a>\xbd\xea/\x0f|\
+\x87CD0\xe8\x82\xc7\xe3\x80 \xf0\x06\xbb\x9d\xc3\xd1\
+\xa3\x038|\xb8\x0f\xf1xB\xbb\xc7\x0a\xbc^\xa6Q\
+\x0bPR\xb3\xbfo\xbf}]\x10tR\x0e\xdblJ\
+9\xd53\x82f,\x86\xf1\x03\xeb\x84\x12\xc5\xe6\x00\xcc\
+\xccV\x00\xe0\xe6\x9b\xd7\xfe\xe8\xa1\x87v`\xc9\x92\xe5\
+\xab\x14\x85\x80\xe3\xa8\xdag\xbd\xc4\xceO\xa0e\xea\x1a\
+AQ\xe8/\x9f\xac\x5c\xb9\x18.\x97\x03\x0d\x0d!\x1c\
+;F;Rq\xd5o|\x17\xd8^\xe7\xf39\xe1\xf1\
+8\xe0\xf3\xb9 \x08\x9cf\xc7eYF,\x16\xc3\xd1\
+\xa3\xc7q\xf4\xe8 \xd2\xe9\x0c\xac!\x9d\xd1\xc9\xb3\x02\
+o$;;\x9fN\xa7\xfe`i\xaf\x92\xe5]!\x80\
+E\x8c\xb6>\x0fh\x9bk\x01\x954\x9b7\xaf\xfd\xd1\
+\xc3\x0f\xef\xc0\xe2\xc5+V\xb1\xb9\x01\xe5\x12A\x96e\
+\x1c8\xd0\x89%K\xe6\xc1\xe1\x10\xd1\xd8X\x89\xfe\xfe\
+1\xe4r\xa5\xd9}\x80\xfd\x00\x95\x08\xaf\xd7\x01\x8f\xc7\
+\x05\x8fG4i\x91l6\x87d2\x81\x81\x81a\x1c\
+;6\x8c\xd1\xd1\x09\x14\x0b\xe9t;_\x1cx6\x12\
+\x98H\xc4w\x96\xd0v\xb6\xf2\xae\x98\x00S\x05\xcc3\
+/\xd9\x90\x9b`8\xack\x11\xf3\xcc\xc1#\x8f\xfc\xec\
+\xa6\xc5\x8b\x97\xae2\x02V\xaei\xf0x\x9c*\x09\xe8\
+\xd4\xaf\xbe\xbe\x88\xda;i\xe5d\x19p\xbby\xf0<\
+\x0f\x97K\xd46\x9f\x12E\x1e\xa2h\x8c\x18(0\x92\
+\x94\xc5\xc8\xc8\x04\x86\x87G100\x82\xc9\xc9\xb8\x01\
+P\xfb\x90nr2\x06\xc2s\xe0\x09\x07\x10\x80S'\
+\xc1X\x81\x07\x8c\xa9`\x19\xcf<\xf3\xe4\xac\xdd\xbb\x7f\
+1\x02:C[\xdb?\xa0\x14\x13\xf0\xae\x13\x00\xc8#\
+\x81q\xaf<F\x00\xe3~E\x8c\x00\x1eXH\xb0t\
+\xe9\xf2Uf\x0fY\x07Yw\xc6\xcc\xff7n\x5c\xc5\
+H\xe0t\xd2\xd9\xc2\xe9tN\x03\xb8\x90(\x0a\x90\xcb\
+\x01\x91\xc8$&&\xa2\x18\x1b\x9bD$\x12\xc3\xd8\x18\
+5%\xd6\x9c\xbd]H\x97\xcdf\x11O$\xe0\xf5{\
+\x00B \x8a\x028N@6+\x81\x00\xc8\xa4$d\
+\xa5\xacf\xfb\x19\xf0\x8a\xa2 \x99L<\xbem\xdbm\
+\x9f\x05\xb5\xff\x8c\x00\x8a\xfaN\xef\x0d\x02\x00EI \
+\xc2^\x13\xe4\x91\xe0\xc7?~Bs\x0c\x8d\xea\xdal\
+S\xed\x89\xc0\xb4\x82\xc7\xe3\xc4\xa2Es\xf2V%\x03\
+@4\x9aD&\x93A$2\x85L&\x83\xf1\xf1I\
+\xc4\xe3\x09D\x22Sy\x0ef>\xf0\xac\xac\xfc\x90\x0e\
+<u\x14EQ\x04\xc7\x11\xa43\x12\x04A\x80 \xf0\
+\xc8HY\x88\xa2\x00)%al$\xa2\x01\xcf\xca\xf9\
+\xf3\x9f\x7f\xff\xbe'\x9e\xf8\xafNP\xf0\xb3P\x09P\
+\x0a\xf8\xc0iD\x00\xa0$\x12\xb0\xc8\x80E\x07^\xcb\
+\xa1\x91\x00`\x0d\x0c\xe8v\xbbt\xf3 \x08\x9c:\xe6\
+\xae`l,b!\x8e1\x04+\x0e<`\xef\xd9\xb3\
+zI\xb9\x1c\x9cN\x11\x0e\x87\x00Q\x14\xe1p\x88\xe0\
+x\x1e\xa9T\x8a\x12B\xe0!e(\x09\x92\x89$\x06\
+\x8f\x8dh\xe5$\x93\xf1'\xee\xbd\xf7\xf3\xb7\x81\xf6\xfe\
+\x0c\x0c\xab\x84K%@\x19?\xf5|\xea\xc5Pi\xe6\
+\x18\xb2#\xab\x1ei\x00I\xf5H\x00\x88\xab\xc7\x94\xfa\
+\x99\xd8\xb8\xf1\x93?\xda\xb7\xef\xcd\xd7\xcc\xbb\x96r\xea\
+n\xa6\xfa/\x92\x17\xda\xe5\x94}\x8e\x8fObtt\
+\x02##\x13Z\xac-\xcb9\xd0\xcd \x14\xe4r\xb2\
+\x06\xb2\xa2\xb0sl\xf7\xd2\x9c\xa6\xees9\x19\xfa\xae\
+\xa6\xb2\xc1\xc1\xa3\xcfJ&\x92j\xbd\xd4zp\xf4\xe7\
+oB\xc1\x008\x9e\x83 p\xf0\xf9<\xe09\x82P\
+E\x10\x0dMu\xc8\xe5\x14d\xb3\xd9\xc9\x9d;\x1f\xbb\
+\x13\xe6-c`\xf8,IN+\x02\x00\x05I\x90\x83\
+N\x82\x0c(\x11R\xa0$`\xe0O\xb1\xef\x1b7^\
+\xff\xe0\x9f\xfe\xb4\xe7\xe5|`K'\x82,\xcb\xb6\xc0\
+\xeb\xde9=\xcf\x80\xd75C>\xf0\xec\x7f,\xf67\
+\x9e\xa7\x1bR\x00\x84#\xf4P\xc9\xe0\x10\x05\x84B~\
+\xf0\x84\xa7$\xf0{!\x08\x02*\xaa\x02hi\xab\xc3\
+\xb1c}_|\xed\xb5\xdf\x8f\x1b\xdaH\x8b\xa6J\xed\
+\xfd\xc0iH\x00\xa0(\x09\x98\x9d\xcb@\xd7\x04L\x1b\
+0\x22\xc4\x01$o\xbdu\xe3\x8e\xed\xdb\x1f\xd9\xc1@\
+.\x97\x08,\x06g\xea\xdb\xd8{\xed\x80g\xe02-\
+\xa0\xdbzJ\x06+\xf0\x8c$9EA\x22E\x7f\xd0\
+\x9a\xe7\x088B\xc0\xab\xf5r\xf0\x22B\x15~\x08\x82\
+\x00\x87C\xa49\x05\x8eGeu%.\xbdr\xcde\
+\xc8\xdf0\xaal9-\x09\x00Lk\x0e$P\x12\xa4\
+\xa0\x13 \xcf$\xdc\x7f\xff\xd7w\xff\xf4\xa7?\xd9\xc1\
+\xc0-\x87\x08\xd4_\x90M=\x9f\x01o\xd7\xab\xf3\xcf\
++\xeayc\x92\xc7\xa8\x1dt\x13\x90\xc9HH&(\
+\x098\xb5.\x84\xa7\x87S\x14Q[\x13\x86\xd3\xe9\x00\
+Gxx\xbd.\x08<\x07\x9f\xcf\xff\xe9\x9d\xcf\xfd\xf1\
+\xa5\xaf~\xf5\x1b>\xe8\x1a\xa0l\x12\x9c\xb6\x04\x00\xa6\
+5\x07V\x12$a\xf6\x07\xe2\x00\xe2\xf7\xdf\x7f\xcf\xee\
+\xc7\x1e{d\x87qws+\x11x^'\x02\xdb\x09\
+\x9d\x86w\x8a\x0a\x94\x0e*\xfb4\x02o\xf4\x05\x8c\xc0\
+\xe7\xfb\x08\xb2\xea\x1f\xe8Z%\x95\xce \x9d\xca \x9d\
+\x91\x90H\xa44\xe09F\x06\x9e\xc0\xedr \x5c\x11\
+\x80C\xe4A8\x0e^\xaf\x1b\x02\xcf\x81\x13\x84e\x1f\
+\xba\xf4\xb2\xdf\xfc\xeb\x0f\x7f\x18D\x19\xa1\x9fQNk\
+\x02\x00\x05I\x90\x85\xd9'\xb0j\x02\xcd\x1f\x00\x10\xbf\
+\xef\xbe{vo\xdf\xfe\xc8\x0e\xb6\xc8\x94ny\xcf\xe7\
+\x11\x82N?g&\xc0\xda\xcbu\x07\xcf\xaeW3\xe0\
+\xcd>\x02\x03\xdex\xde\xe80\xca@N\x81\xac(H\
+\xa5\xd2Hg$\xc4\x13)p\xcc!$4<$\x1c\
+\x01\xc7s\xa8\xa8\x0c@\x14\xe9*)\xaf\xd7\x0d\x9e\x13\
+ \xf0\xfc\xf2\xa5\xed+\x7f\xfb\xd3g\x9e\x09\xce\xa4}\
+O\x87T\xf0\xb4\xa2(ys\x0c9\x18\xb6R\x9f\xe6\
+v\x02\x00\xf7\xddw\xcfn\x00\xd8\xb0a\xf3ZEK\
+\x0d\xd3,\x1b\x9b;\xa0(l.\x014\xdb]NH\
+g\x8c\xf1\x999P\xeb\xaf]g\x0d\x1b\x03\x01\x1f\xd2\
+\xc9\x0c\x9c\x0e\x07R\xa9\x14\x9c\x0e\x11\xf1x\x12N\xa7\
+\x83F\x04\xbc\xa0M\x85\xe39\x0e\x95\x15AD\x221\
+H\xd9\x1c\xbc\x1e\x17\xd2\x99\x0c\xb2$\xbb\xbc\xc6W\xbf\
+\xeb\xa9\x17_\x5c\x03 \x822\xe4\xb4\xd7\x00Ll4\
+\x81\x02{s\xc0\xa2\x03k\x88\x18\xbf\xef\xbe{v?\
+\xfa\xe8C;\xd823\xda\xeb\xcd?~\xc1\xb4\x81\x1e\
+\xba\x95\x1e\xd2\xe9\xfeB.O{PS\x91\x7f\xde\xe7\
+\xf3#1\x95@:\x93\x81\x02 \x99\xce \x95\xc9 \
+\x1eO\x82\xe7\x08\x04\x81\x03\xa7\xa6\x85\x01\x80\xe7xT\
+V\x04\xe0q\xbb\xc0q\x80\xdb\xe5\x84(\x8a\xe0\x09Y\
+\x11\xe0\x82\xbf\xde\xb9\xf3\xd5@9\xed\xfa\x9e!\x00\xa0\
+f7X\x16\xc7\x1c\xfa\x94\xe2\x18&\xa0\x92\xe0'?\
+yd\x87\xd1\x07\xb0#\x02-\xaf\xbc\x90\xce\xf8\xa9\xab\
+\x7f\x1dx\xddw0\x9f\x0f\x87+\x10\x8bL!\x9d\xa2\
+c\x0f\xc9d\x06\xe9L\x06\xe3\x91I\xd0\xfc\x13Q5\
+\x13\xa7-M\x0b\x05|p\xbb\xdd \x00\x5c.\xa7\xcc\
+\x8b|\x84\x00\x15.\xbf\xf3\xbf^z\xe9\xafm\xa5\xb6\
+\xe9{\x8a\x00\x16)\xe6\x18\x1a\xf3\x04V\x12$\xef\xbb\
+o\xdb\xcb\x8f>\xfa\xf0cl\xd9\xb9\x1d\x11\xe86l\
+\xe5\x85t\x85\xf3\x05f?\xc2H\x08\xfa<\x05^\x8f\
+\x17\x91\xb1(\xd2\xc9$\x00\x19\xc9T\x1a\xb9\xac\x82H\
+tJ}U\x0a>@s\x06\xe0\x80P\xd0\x07\xb7\xdb\
+\x99!\x04Cn\xa7\xb3O\x10\xf9>\xa2@\x82H>\
+\xfb\xc2\x0b\xaf\xd4\xa2\x04yO\x12\xa0\x809\xb0j\x02\
+;\x12h\xe6\xe0\x1b\xdf\xd8\xb6\xfb\xd1G\x1fzL\xef\
+\xf9f\x22\x14\xf2\xec\x8b\x85tv\xf9\x02c\xe4\xa0\x9f\
+\xd7\x817\x96\x93N\xa7\xde\xf8\xe3\x1fw\x7f11\x15\
+\x7fE\x91\x81d:\x0dI\xcab|b\x0a\x80\x0c\x02\
+\x9a,\xd2\x9a\x01J,\x14\xf4\x1d\xf58\x1d\xbd\x84\xa0\
+\xcf\xe5v\x1d\x11\x1d\xc2Q\x02e\x9cw\xbb/\xff\xed\
+o\xff2\xadcxZ\x8d\x05\xccD,\xfb\x18\x1ag\
+\x17\xd9mkk\xdd\xf2\xdes\xd7]\xf7~\xe8\x86\x1b\
+nZ\xcb\xc6\x0b\xd8\x18\xfb\x9bov\x22\x12\x89\xc1n\
+\xfe\x9d\xd1\x14\x00\xd61\x80\xe2\xe7\xed\x06\x85\x12\x89\xa9\
+\xee\xce\xce\xfd\x0f=\xfd\xf4C\xcf\x03H\xcd\x9b\xb7\x04\
+_\xb9\xf3\x1b\xff'\xe0\xf7_\x11\xf0\xfb\x10\x08x\xe1\
+t\x88\xa8\xac\x0cR\xed\x04E\x020\xce\x112\x0c(\
+\xc3\x00\x19\x8d\xc7S#\xf1xbL!\x18\x97r\xd9\
+\xf1TJ\x8a\x082\x19\xcdf\xc7\xffz\xf1\xc5\x17\xa7\
+\x0a\xb6\xdf{\x9d\x00@A\x12\x18\xa7\x971\x12X7\
+\xb9\xf6\x82\x92\xe0\xc3\x1b7\xde\xb4\x16\x80\x06\xd6\xde\xbd\
+\x07\x11\x89L\x96\xe5\xd9\x97\x0e<\xbdf||d\xcf\
+\xc1\x83\xaf?\xf1\xfc\xf3O\xbe\x0a\xaa\xad\x98\xd6J7\
+5\xcdU\xfe\xef\xbf\xfd\xc7\xbf\x07B\xc1\xeb\xddN\x17\
+\xbc\x1e'DQP*\xc3\xc1\x04O\xc80\x08\x19\x01\
+0\x0c\xc2\x8dr\x8a2\x0apc\xc9tj<\x12\x8d\
+Op\xbc<\x91\xcd*\xd1X\x22=\xc9I\xa9\xe8K\
+/\xfdj\xf8\xee\xbb\xef\xb6\x9d\x87\xf9\x9e\x08\x03K\x14\
+c\x88\xc8\xcc\x81\xdd5\xd6\xef\xca\xd7\xbf\xbe\xf5E\x9e\
+\xe7\x94\x0d\x1b6\xaf3\xae#`\xbd\xbf\xd4\x90\xae\x90\
+&0\x86\x8e\x89\xc4T\xcf\xb1c}\xcf\xbf\xfe\xfa\xef\
+^\xee\xe8\xd8\xdb\x07\x0a:;\x98\xe9\xca\xf4\xf7wf\
+\xd7~\xea\xcaM\xbf\xf8\xd5\xef\x93\xb2#wC<\x95\
+\xcay\x88kb|<:\x14\x0e\x87Fx`D\x01\
+O\xc1\xe71Nd\x8c\xbb\xdc\xae\x89\x0aE\x89D\x22\
+\xb1\xa8\xcc#\xc6\xb9\x9c\xb1\xd8\xb8\x94(\xd6hg\x84\
+\x06\x00\xa6\x9dTb\xa7\x09\x8cs\x0a<\x00\xdc\xf7\xdc\
+s\xdf\xc57\xdc\xb0i\x03\xa0\xe0\x95W\xf6ct4\
+\x02\xe3\x9c\x02#\xf0\xa5\x9c\xa73\x832\x89h4\xb2\
+\x7ftt\xe0\xcd\xbd{\xf7\xfc\xee\xe0\xc1\xbf\x1c\x85>\
+|k=$\xc3\xc1\xf2\xfc\xb9\xdf\xec\xfa\xf3\xf7\x04\x8e\
+\x5cNxn\xd8\xe7q\x0f\x8b\x227Z\x15\xae\x18\xe5\
+@\xc6\x14\x9e\x8cC\xc1\x04\xe1\x94\x09NFD\x96\x95\
+\xc9\xa9\xa9d,\x16\x1b\x9e\x02\x90x\xdf\xfb\xde\xa7u\
+\x04\xbb,\xe1\x19C\x00\xa0,\x12\x18\x7f\xf8\x82}\xba\
+\x01\xb8\xbe\xf2\x95-\x7f\xb3y\xf3-\x9b\xff\xf2\x97\x83\
+\xee\xd1\xd1\x88I\xfd\xb3\xf1\x81b\xc0G\xa3c\x1d\x13\
+\x13\x13\xbd\x91\xc8\xc8\xe1#G\xba\xba^}\xf5\xa5C\
+0\x03\xcb\x9cT\xbb\xeflB\x87\xf1P\x00(\xbf\xdd\
+\xf5\xdaW\x09\xc7\xaf\xe4En\xd4\xe3v\x8d:\x1c\xe2\
+xU\xc87N\x04q\x82\xc8\x88\xc8<\x89\x0a\x0a\x99\
+T\x94\xe4\x14\x80\xf8\xef~\xf7\xbb\xd4\xa7>\xf5\xa9\xfc\
+\xc9\xed\x16\xc0\xcf(\x02\x00\x05I`\xfc\xf9\x1bF\x02\
+\xe3F\xd7n\xc39\xc7\xa7?\xbdv\xcee\x97}j\
+\xcb\xd4T\xd2C\x97ie\x12\xb1\xd8\xe4\x11\xa3=\x1f\
+\x19\x198@\x08\xe4h4:<668\xb4\x7f\xff\
+\x9f\xba\x87\x87\x07'\xa1\x83\xc8\x22\x12\xeb\xa7ds\xde\
+\x0a\xbcq\x88W\x1b\xe4y\xe1w{\xd7r \xb3y\
+\x8e\x1bw\xb9\x5c\xe3\x0e'\x17\x09WUDx\x19\x93\
+\xb9\x1c&eY\x88\xc7b\xfd\xf1%K\x96\x14\xdd\xbd\
+\xd5H\x823\x8e\x00@\xc9\x9a\xc0\xa8\x0d\xd8\xef\x1f\xb8\
+\xd4\xff\x8b\xa0\xa41n\xbf\xca\x1a\xca\x18vZAc\
+\xdf\xb3%\x1ev\xbd\xdd4\xb6\x0f\xcb\xec\x9e]/\xef\
+\xfd\x10\xcfqaA\x14\x22.\x81\x8f\x12\x978\x19r\
+\xfbc>\x1f\x89\xef\xde\xbd;i\xd7\xeb\xed\x84=\xf3\
+\x8c$\x00`K\x02ct`\xfc\xcd\x03\xb6\x08\x85}\
+g\xd3\xcfx\xc3\xbd\x80\xb97\xca\x96\xc3J\x00v\x18\
+m9[\xb0a\x04\x9e\xddc\x04\xde\xd4\xeb\xed\xec\xf6\
+\xee\xdd\xaf\xcf\xcd\xf1\xc4\xe1\x80\x18\xe3yLE\x22\x8e\
+\xf8UW\xcd\x9bn\xe3\xee<Q\x14E9c\x09\x00\
+\x14%\x01\xfb\xbd\x03\xa3F\x10a\x06\x9fC\xbe\x06(\
+D\x82\x9c\xcd\xdf\x85\xb4\x83b8W\x10x\xa0\xf8\xd0\
+\xeeK/\xfd5\x14\x15\xe3\xb9\xa0$%\xd7\xacY3\
+\xc3\xb5\xc1g\xb0\x06`R`\xdd\x81\xf1\x87/\x8ck\
+\x10\xd8\xdfF\xf0\x0bi\x00\xeb\xa7\xb1'\xdb\x1d9\xcb\
+3r6\xcf\xa5'J\x04\xc5\xf0n3\x923^\x03\
+\x18\xa5\xc8zD\xce\xe6\xbb\x15|\xc0\x0c\x92\x1d\x09\xac\
+\xe7\xec\xce\xdb\xf5\xf4\xb2\x81/\xf0^e\xc9\x19\xef\x03\
+\xd8I\x01\x93\xc0Y\x0e\x82|\xf5\x0f\xe4\x83V\xca!\
+\xdb\x5c\x0f\x9c \xe8E\xde\xab$9\xe3\xa3\x80bR\
+\xc0$\x90\x02\x87\x9dXIP\xec\x9cI\xb5\xe3$\x03\
+o\x94RIp\xc6\xe7\x01J\x11KcY\x01/F\
+\x80\xbc\x1e\x5c\xe0\xbb\xddu'\x1dt\xabLG\x823\
+>\x13X\xae\xd8\x10\xc1\xee\xbbU\x0a5\x98\xed\xf9S\
+\x0d\xbaU\x0a\x91\xa0P=\xcej\x020)\xd2s\xac\
+>\xc0\xb4\xf2N\x03n'\xd6\xf7)V\xa7s\x04\xb0\
+\x91\x99\xa8\xd2\xd3M\xd8;LW\xd7s\x048\xcb\xe5\
+=9%\xec\x9c\x9c<\xf9\xff.}$/\xf4\x80\x9c\
+-\x00\x00\x00\x00IEND\xaeB`\x82\
+"
+
+qt_resource_name = b"\
+\x00\x06\
+\x07\x03}\xc3\
+\x00i\
+\x00m\x00a\x00g\x00e\x00s\
+\x00\x09\
+\x0b\x85\x83\x07\
+\x00c\
+\x00l\x00e\x00a\x00r\x00.\x00p\x00n\x00g\
+\x00\x0e\
+\x0a\x93\x87\x07\
+\x00d\
+\x00i\x00s\x00c\x00o\x00n\x00n\x00e\x00c\x00t\x00.\x00p\x00n\x00g\
+\x00\x0c\
+\x0b\xdf!G\
+\x00s\
+\x00e\x00t\x00t\x00i\x00n\x00g\x00s\x00.\x00p\x00n\x00g\
+\x00\x14\
+\x07@\xa2\xc7\
+\x00a\
+\x00p\x00p\x00l\x00i\x00c\x00a\x00t\x00i\x00o\x00n\x00-\x00e\x00x\x00i\x00t\x00.\
+\x00p\x00n\x00g\
+\x00\x0b\
+\x0bs\x9d\xc7\
+\x00c\
+\x00o\x00n\x00n\x00e\x00c\x00t\x00.\x00p\x00n\x00g\
+"
+
+qt_resource_struct = b"\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x02\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00j\x00\x00\x00\x00\x00\x01\x00\x00\xaa\xa6\
+\x00\x00\x01\x81<\xe7\xd0\x1c\
+\x00\x00\x00*\x00\x00\x00\x00\x00\x01\x00\x001\x03\
+\x00\x00\x01\x81<\xe7\xd0\x1c\
+\x00\x00\x00\x98\x00\x00\x00\x00\x00\x01\x00\x00\xd6j\
+\x00\x00\x01\x81<\xe7\xd0\x1c\
+\x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
+\x00\x00\x01\x81<\xe7\xd0\x1c\
+\x00\x00\x00L\x00\x00\x00\x00\x00\x01\x00\x00k\xfb\
+\x00\x00\x01\x81<\xe7\xd0\x1c\
+"
+
+def qInitResources():
+ QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+def qCleanupResources():
+ QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+qInitResources()
diff --git a/examples/serialport/terminal/settingsdialog.py b/examples/serialport/terminal/settingsdialog.py
new file mode 100644
index 000000000..c9373d5b0
--- /dev/null
+++ b/examples/serialport/terminal/settingsdialog.py
@@ -0,0 +1,180 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from PySide6.QtCore import Slot
+from PySide6.QtGui import QIntValidator
+from PySide6.QtWidgets import QComboBox
+from PySide6.QtSerialPort import QSerialPort, QSerialPortInfo
+
+from PySide6.QtWidgets import QDialog
+
+from ui_settingsdialog import Ui_SettingsDialog
+
+
+BLANK_STRING = "N/A"
+
+
+CUSTOM_BAUDRATE_INDEX = 4
+
+
+class Settings():
+
+ def __init__(self):
+ self.name = ""
+ self.baud_rate = 0
+ self.string_baud_rate = ""
+ self.data_bits = QSerialPort.Data8
+ self.string_data_bits = ""
+ self.parity = QSerialPort.NoParity
+ self.string_parity = ""
+ self.stop_bits = QSerialPort.OneStop
+ self.string_stop_bits = ""
+ self.flow_control = QSerialPort.SoftwareControl
+ self.string_flow_control = ""
+ self.local_echo_enabled = False
+
+
+class SettingsDialog(QDialog):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+ self.m_ui = Ui_SettingsDialog()
+ self._custom_port_index = -1
+ self.m_ui.setupUi(self)
+ self.m_currentSettings = Settings()
+ self.m_intValidator = QIntValidator(0, 4000000, self)
+
+ self.m_ui.baudRateBox.setInsertPolicy(QComboBox.NoInsert)
+
+ self.m_ui.applyButton.clicked.connect(self.apply)
+ self.m_ui.serialPortInfoListBox.currentIndexChanged.connect(self.show_port_info)
+ self.m_ui.baudRateBox.currentIndexChanged.connect(self.check_custom_baud_rate_policy)
+ self.m_ui.serialPortInfoListBox.currentIndexChanged.connect(
+ self.check_custom_device_path_policy)
+
+ self.fill_ports_parameters()
+ self.fill_ports_info()
+
+ self.update_settings()
+
+ def settings(self):
+ return self.m_currentSettings
+
+ @Slot(int)
+ def show_port_info(self, idx):
+ if idx == -1:
+ return
+
+ list = self.m_ui.serialPortInfoListBox.itemData(idx)
+ count = len(list) if list else 0
+ description = list[1] if count > 1 else BLANK_STRING
+ self.m_ui.descriptionLabel.setText(f"Description: {description}")
+ manufacturer = list[2] if count > 2 else BLANK_STRING
+ self.m_ui.manufacturerLabel.setText(f"Manufacturer: {manufacturer}")
+ serialno = list[3] if count > 3 else BLANK_STRING
+ self.m_ui.serialNumberLabel.setText(f"Serial number: {serialno}")
+ location = list[4] if count > 4 else BLANK_STRING
+ self.m_ui.locationLabel.setText(f"Location: {location}")
+ vendor = list[5] if count > 5 else BLANK_STRING
+ self.m_ui.vidLabel.setText(f"Vendor Identifier: {vendor}")
+ id = list[6] if count > 6 else BLANK_STRING
+ self.m_ui.pidLabel.setText(f"Product Identifier: {id}")
+
+ @Slot()
+ def apply(self):
+ self.update_settings()
+ self.hide()
+
+ @Slot(int)
+ def check_custom_baud_rate_policy(self, idx):
+ is_custom_baud_rate = idx == CUSTOM_BAUDRATE_INDEX
+ self.m_ui.baudRateBox.setEditable(is_custom_baud_rate)
+ if is_custom_baud_rate:
+ self.m_ui.baudRateBox.clearEditText()
+ edit = self.m_ui.baudRateBox.lineEdit()
+ edit.setValidator(self.m_intValidator)
+
+ @Slot(int)
+ def check_custom_device_path_policy(self, idx):
+ is_custom_path = idx == self._custom_port_index
+ self.m_ui.serialPortInfoListBox.setEditable(is_custom_path)
+ if is_custom_path:
+ self.m_ui.serialPortInfoListBox.clearEditText()
+
+ def fill_ports_parameters(self):
+ self.m_ui.baudRateBox.addItem("9600", QSerialPort.Baud9600)
+ self.m_ui.baudRateBox.addItem("19200", QSerialPort.Baud19200)
+ self.m_ui.baudRateBox.addItem("38400", QSerialPort.Baud38400)
+ self.m_ui.baudRateBox.addItem("115200", QSerialPort.Baud115200)
+ self.m_ui.baudRateBox.addItem("Custom")
+
+ self.m_ui.dataBitsBox.addItem("5", QSerialPort.Data5)
+ self.m_ui.dataBitsBox.addItem("6", QSerialPort.Data6)
+ self.m_ui.dataBitsBox.addItem("7", QSerialPort.Data7)
+ self.m_ui.dataBitsBox.addItem("8", QSerialPort.Data8)
+ self.m_ui.dataBitsBox.setCurrentIndex(3)
+
+ self.m_ui.parityBox.addItem("None", QSerialPort.NoParity)
+ self.m_ui.parityBox.addItem("Even", QSerialPort.EvenParity)
+ self.m_ui.parityBox.addItem("Odd", QSerialPort.OddParity)
+ self.m_ui.parityBox.addItem("Mark", QSerialPort.MarkParity)
+ self.m_ui.parityBox.addItem("Space", QSerialPort.SpaceParity)
+
+ self.m_ui.stopBitsBox.addItem("1", QSerialPort.OneStop)
+ if sys.platform == "win32":
+ self.m_ui.stopBitsBox.addItem("1.5", QSerialPort.OneAndHalfStop)
+
+ self.m_ui.stopBitsBox.addItem("2", QSerialPort.TwoStop)
+
+ self.m_ui.flowControlBox.addItem("None", QSerialPort.NoFlowControl)
+ self.m_ui.flowControlBox.addItem("RTS/CTS", QSerialPort.HardwareControl)
+ self.m_ui.flowControlBox.addItem("XON/XOFF", QSerialPort.SoftwareControl)
+
+ def fill_ports_info(self):
+ self.m_ui.serialPortInfoListBox.clear()
+ for info in QSerialPortInfo.availablePorts():
+ list = []
+ description = info.description()
+ manufacturer = info.manufacturer()
+ serial_number = info.serialNumber()
+ list.append(info.portName())
+ list.append(description if description else BLANK_STRING)
+ list.append(manufacturer if manufacturer else BLANK_STRING)
+ list.append(serial_number if serial_number else BLANK_STRING)
+ list.append(info.systemLocation())
+ vid = info.vendorIdentifier()
+ list.append(f"{vid:x}" if vid else BLANK_STRING)
+ pid = info.productIdentifier()
+ list.append(f"{pid:x}" if pid else BLANK_STRING)
+ self.m_ui.serialPortInfoListBox.addItem(list[0], list)
+
+ self._custom_port_index = self.m_ui.serialPortInfoListBox.count()
+ self.m_ui.serialPortInfoListBox.addItem("Custom")
+
+ def update_settings(self):
+ self.m_currentSettings.name = self.m_ui.serialPortInfoListBox.currentText()
+
+ baud_index = self.m_ui.baudRateBox.currentIndex()
+ if baud_index == CUSTOM_BAUDRATE_INDEX:
+ text = self.m_ui.baudRateBox.currentText()
+ self.m_currentSettings.baud_rate = int(text)
+ else:
+ self.m_currentSettings.baud_rate = self.m_ui.baudRateBox.currentData()
+ self.m_currentSettings.string_baud_rate = f"{self.m_currentSettings.baud_rate}"
+
+ self.m_currentSettings.data_bits = self.m_ui.dataBitsBox.currentData()
+ self.m_currentSettings.string_data_bits = self.m_ui.dataBitsBox.currentText()
+
+ self.m_currentSettings.parity = self.m_ui.parityBox.currentData()
+ self.m_currentSettings.string_parity = self.m_ui.parityBox.currentText()
+
+ self.m_currentSettings.stop_bits = self.m_ui.stopBitsBox.currentData()
+ self.m_currentSettings.string_stop_bits = self.m_ui.stopBitsBox.currentText()
+
+ self.m_currentSettings.flow_control = self.m_ui.flowControlBox.currentData()
+ self.m_currentSettings.string_flow_control = self.m_ui.flowControlBox.currentText()
+
+ self.m_currentSettings.local_echo_enabled = self.m_ui.localEchoCheckBox.isChecked()
diff --git a/examples/serialport/terminal/settingsdialog.ui b/examples/serialport/terminal/settingsdialog.ui
new file mode 100644
index 000000000..8f15b1a52
--- /dev/null
+++ b/examples/serialport/terminal/settingsdialog.ui
@@ -0,0 +1,177 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>SettingsDialog</class>
+ <widget class="QDialog" name="SettingsDialog">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>281</width>
+ <height>262</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Settings</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout_3">
+ <item row="0" column="1">
+ <widget class="QGroupBox" name="parametersBox">
+ <property name="title">
+ <string>Select Parameters</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout_2">
+ <item row="0" column="0">
+ <widget class="QLabel" name="baudRateLabel">
+ <property name="text">
+ <string>BaudRate:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QComboBox" name="baudRateBox"/>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="dataBitsLabel">
+ <property name="text">
+ <string>Data bits:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QComboBox" name="dataBitsBox"/>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="parityLabel">
+ <property name="text">
+ <string>Parity:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="QComboBox" name="parityBox"/>
+ </item>
+ <item row="3" column="0">
+ <widget class="QLabel" name="stopBitsLabel">
+ <property name="text">
+ <string>Stop bits:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1">
+ <widget class="QComboBox" name="stopBitsBox"/>
+ </item>
+ <item row="4" column="0">
+ <widget class="QLabel" name="flowControlLabel">
+ <property name="text">
+ <string>Flow control:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="1">
+ <widget class="QComboBox" name="flowControlBox"/>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="0" column="0">
+ <widget class="QGroupBox" name="selectBox">
+ <property name="title">
+ <string>Select Serial Port</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="0" column="0">
+ <widget class="QComboBox" name="serialPortInfoListBox"/>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="descriptionLabel">
+ <property name="text">
+ <string>Description:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="manufacturerLabel">
+ <property name="text">
+ <string>Manufacturer:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <widget class="QLabel" name="serialNumberLabel">
+ <property name="text">
+ <string>Serial number:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0">
+ <widget class="QLabel" name="locationLabel">
+ <property name="text">
+ <string>Location:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="0">
+ <widget class="QLabel" name="vidLabel">
+ <property name="text">
+ <string>Vendor ID:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="0">
+ <widget class="QLabel" name="pidLabel">
+ <property name="text">
+ <string>Product ID:</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="2" column="0" colspan="2">
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <spacer name="horizontalSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>96</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="applyButton">
+ <property name="text">
+ <string>Apply</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="1" column="0" colspan="2">
+ <widget class="QGroupBox" name="additionalOptionsGroupBox">
+ <property name="title">
+ <string>Additional options</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QCheckBox" name="localEchoCheckBox">
+ <property name="text">
+ <string>Local echo</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/examples/serialport/terminal/terminal.pyproject b/examples/serialport/terminal/terminal.pyproject
new file mode 100644
index 000000000..ed64bd91a
--- /dev/null
+++ b/examples/serialport/terminal/terminal.pyproject
@@ -0,0 +1,4 @@
+{
+ "files": ["main.py", "console.py", "mainwindow.py", "mainwindow.ui",
+ "settingsdialog.py", "settingsdialog.ui", "terminal.qrc"]
+}
diff --git a/examples/serialport/terminal/terminal.qrc b/examples/serialport/terminal/terminal.qrc
new file mode 100644
index 000000000..0b4987941
--- /dev/null
+++ b/examples/serialport/terminal/terminal.qrc
@@ -0,0 +1,9 @@
+<RCC>
+ <qresource prefix="/">
+ <file>images/connect.png</file>
+ <file>images/disconnect.png</file>
+ <file>images/application-exit.png</file>
+ <file>images/settings.png</file>
+ <file>images/clear.png</file>
+ </qresource>
+</RCC>
diff --git a/examples/serialport/terminal/ui_mainwindow.py b/examples/serialport/terminal/ui_mainwindow.py
new file mode 100644
index 000000000..21adbd5c1
--- /dev/null
+++ b/examples/serialport/terminal/ui_mainwindow.py
@@ -0,0 +1,149 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'mainwindow.ui'
+##
+## Created by: Qt User Interface Compiler version 6.7.0
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QAction, QBrush, QColor, QConicalGradient,
+ QCursor, QFont, QFontDatabase, QGradient,
+ QIcon, QImage, QKeySequence, QLinearGradient,
+ QPainter, QPalette, QPixmap, QRadialGradient,
+ QTransform)
+from PySide6.QtWidgets import (QApplication, QMainWindow, QMenu, QMenuBar,
+ QSizePolicy, QStatusBar, QToolBar, QVBoxLayout,
+ QWidget)
+import rc_terminal
+
+class Ui_MainWindow(object):
+ def setupUi(self, MainWindow):
+ if not MainWindow.objectName():
+ MainWindow.setObjectName(u"MainWindow")
+ MainWindow.resize(400, 300)
+ self.actionAbout = QAction(MainWindow)
+ self.actionAbout.setObjectName(u"actionAbout")
+ self.actionAboutQt = QAction(MainWindow)
+ self.actionAboutQt.setObjectName(u"actionAboutQt")
+ self.actionConnect = QAction(MainWindow)
+ self.actionConnect.setObjectName(u"actionConnect")
+ icon = QIcon()
+ icon.addFile(u":/images/connect.png", QSize(), QIcon.Normal, QIcon.Off)
+ self.actionConnect.setIcon(icon)
+ self.actionDisconnect = QAction(MainWindow)
+ self.actionDisconnect.setObjectName(u"actionDisconnect")
+ icon1 = QIcon()
+ icon1.addFile(u":/images/disconnect.png", QSize(), QIcon.Normal, QIcon.Off)
+ self.actionDisconnect.setIcon(icon1)
+ self.actionConfigure = QAction(MainWindow)
+ self.actionConfigure.setObjectName(u"actionConfigure")
+ icon2 = QIcon()
+ icon2.addFile(u":/images/settings.png", QSize(), QIcon.Normal, QIcon.Off)
+ self.actionConfigure.setIcon(icon2)
+ self.actionClear = QAction(MainWindow)
+ self.actionClear.setObjectName(u"actionClear")
+ icon3 = QIcon()
+ icon3.addFile(u":/images/clear.png", QSize(), QIcon.Normal, QIcon.Off)
+ self.actionClear.setIcon(icon3)
+ self.actionQuit = QAction(MainWindow)
+ self.actionQuit.setObjectName(u"actionQuit")
+ icon4 = QIcon()
+ icon4.addFile(u":/images/application-exit.png", QSize(), QIcon.Normal, QIcon.Off)
+ self.actionQuit.setIcon(icon4)
+ self.centralWidget = QWidget(MainWindow)
+ self.centralWidget.setObjectName(u"centralWidget")
+ self.verticalLayout = QVBoxLayout(self.centralWidget)
+ self.verticalLayout.setSpacing(6)
+ self.verticalLayout.setContentsMargins(11, 11, 11, 11)
+ self.verticalLayout.setObjectName(u"verticalLayout")
+ MainWindow.setCentralWidget(self.centralWidget)
+ self.menuBar = QMenuBar(MainWindow)
+ self.menuBar.setObjectName(u"menuBar")
+ self.menuBar.setGeometry(QRect(0, 0, 400, 19))
+ self.menuCalls = QMenu(self.menuBar)
+ self.menuCalls.setObjectName(u"menuCalls")
+ self.menuTools = QMenu(self.menuBar)
+ self.menuTools.setObjectName(u"menuTools")
+ self.menuHelp = QMenu(self.menuBar)
+ self.menuHelp.setObjectName(u"menuHelp")
+ MainWindow.setMenuBar(self.menuBar)
+ self.mainToolBar = QToolBar(MainWindow)
+ self.mainToolBar.setObjectName(u"mainToolBar")
+ MainWindow.addToolBar(Qt.ToolBarArea.TopToolBarArea, self.mainToolBar)
+ self.statusBar = QStatusBar(MainWindow)
+ self.statusBar.setObjectName(u"statusBar")
+ MainWindow.setStatusBar(self.statusBar)
+
+ self.menuBar.addAction(self.menuCalls.menuAction())
+ self.menuBar.addAction(self.menuTools.menuAction())
+ self.menuBar.addAction(self.menuHelp.menuAction())
+ self.menuCalls.addAction(self.actionConnect)
+ self.menuCalls.addAction(self.actionDisconnect)
+ self.menuCalls.addSeparator()
+ self.menuCalls.addAction(self.actionQuit)
+ self.menuTools.addAction(self.actionConfigure)
+ self.menuTools.addAction(self.actionClear)
+ self.menuHelp.addAction(self.actionAbout)
+ self.menuHelp.addAction(self.actionAboutQt)
+ self.mainToolBar.addAction(self.actionConnect)
+ self.mainToolBar.addAction(self.actionDisconnect)
+ self.mainToolBar.addAction(self.actionConfigure)
+ self.mainToolBar.addAction(self.actionClear)
+
+ self.retranslateUi(MainWindow)
+
+ QMetaObject.connectSlotsByName(MainWindow)
+ # setupUi
+
+ def retranslateUi(self, MainWindow):
+ MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"Simple Terminal", None))
+ self.actionAbout.setText(QCoreApplication.translate("MainWindow", u"&About", None))
+#if QT_CONFIG(tooltip)
+ self.actionAbout.setToolTip(QCoreApplication.translate("MainWindow", u"About program", None))
+#endif // QT_CONFIG(tooltip)
+#if QT_CONFIG(shortcut)
+ self.actionAbout.setShortcut(QCoreApplication.translate("MainWindow", u"Alt+A", None))
+#endif // QT_CONFIG(shortcut)
+ self.actionAboutQt.setText(QCoreApplication.translate("MainWindow", u"About Qt", None))
+ self.actionConnect.setText(QCoreApplication.translate("MainWindow", u"C&onnect", None))
+#if QT_CONFIG(tooltip)
+ self.actionConnect.setToolTip(QCoreApplication.translate("MainWindow", u"Connect to serial port", None))
+#endif // QT_CONFIG(tooltip)
+#if QT_CONFIG(shortcut)
+ self.actionConnect.setShortcut(QCoreApplication.translate("MainWindow", u"Ctrl+O", None))
+#endif // QT_CONFIG(shortcut)
+ self.actionDisconnect.setText(QCoreApplication.translate("MainWindow", u"&Disconnect", None))
+#if QT_CONFIG(tooltip)
+ self.actionDisconnect.setToolTip(QCoreApplication.translate("MainWindow", u"Disconnect from serial port", None))
+#endif // QT_CONFIG(tooltip)
+#if QT_CONFIG(shortcut)
+ self.actionDisconnect.setShortcut(QCoreApplication.translate("MainWindow", u"Ctrl+D", None))
+#endif // QT_CONFIG(shortcut)
+ self.actionConfigure.setText(QCoreApplication.translate("MainWindow", u"&Configure", None))
+#if QT_CONFIG(tooltip)
+ self.actionConfigure.setToolTip(QCoreApplication.translate("MainWindow", u"Configure serial port", None))
+#endif // QT_CONFIG(tooltip)
+#if QT_CONFIG(shortcut)
+ self.actionConfigure.setShortcut(QCoreApplication.translate("MainWindow", u"Alt+C", None))
+#endif // QT_CONFIG(shortcut)
+ self.actionClear.setText(QCoreApplication.translate("MainWindow", u"C&lear", None))
+#if QT_CONFIG(tooltip)
+ self.actionClear.setToolTip(QCoreApplication.translate("MainWindow", u"Clear data", None))
+#endif // QT_CONFIG(tooltip)
+#if QT_CONFIG(shortcut)
+ self.actionClear.setShortcut(QCoreApplication.translate("MainWindow", u"Alt+L", None))
+#endif // QT_CONFIG(shortcut)
+ self.actionQuit.setText(QCoreApplication.translate("MainWindow", u"&Quit", None))
+#if QT_CONFIG(shortcut)
+ self.actionQuit.setShortcut(QCoreApplication.translate("MainWindow", u"Ctrl+Q", None))
+#endif // QT_CONFIG(shortcut)
+ self.menuCalls.setTitle(QCoreApplication.translate("MainWindow", u"Calls", None))
+ self.menuTools.setTitle(QCoreApplication.translate("MainWindow", u"Tools", None))
+ self.menuHelp.setTitle(QCoreApplication.translate("MainWindow", u"Help", None))
+ # retranslateUi
+
diff --git a/examples/serialport/terminal/ui_settingsdialog.py b/examples/serialport/terminal/ui_settingsdialog.py
new file mode 100644
index 000000000..6c5a417cc
--- /dev/null
+++ b/examples/serialport/terminal/ui_settingsdialog.py
@@ -0,0 +1,181 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'settingsdialog.ui'
+##
+## Created by: Qt User Interface Compiler version 6.7.0
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
+ QFont, QFontDatabase, QGradient, QIcon,
+ QImage, QKeySequence, QLinearGradient, QPainter,
+ QPalette, QPixmap, QRadialGradient, QTransform)
+from PySide6.QtWidgets import (QApplication, QCheckBox, QComboBox, QDialog,
+ QGridLayout, QGroupBox, QHBoxLayout, QLabel,
+ QPushButton, QSizePolicy, QSpacerItem, QVBoxLayout,
+ QWidget)
+
+class Ui_SettingsDialog(object):
+ def setupUi(self, SettingsDialog):
+ if not SettingsDialog.objectName():
+ SettingsDialog.setObjectName(u"SettingsDialog")
+ SettingsDialog.resize(281, 262)
+ self.gridLayout_3 = QGridLayout(SettingsDialog)
+ self.gridLayout_3.setObjectName(u"gridLayout_3")
+ self.parametersBox = QGroupBox(SettingsDialog)
+ self.parametersBox.setObjectName(u"parametersBox")
+ self.gridLayout_2 = QGridLayout(self.parametersBox)
+ self.gridLayout_2.setObjectName(u"gridLayout_2")
+ self.baudRateLabel = QLabel(self.parametersBox)
+ self.baudRateLabel.setObjectName(u"baudRateLabel")
+
+ self.gridLayout_2.addWidget(self.baudRateLabel, 0, 0, 1, 1)
+
+ self.baudRateBox = QComboBox(self.parametersBox)
+ self.baudRateBox.setObjectName(u"baudRateBox")
+
+ self.gridLayout_2.addWidget(self.baudRateBox, 0, 1, 1, 1)
+
+ self.dataBitsLabel = QLabel(self.parametersBox)
+ self.dataBitsLabel.setObjectName(u"dataBitsLabel")
+
+ self.gridLayout_2.addWidget(self.dataBitsLabel, 1, 0, 1, 1)
+
+ self.dataBitsBox = QComboBox(self.parametersBox)
+ self.dataBitsBox.setObjectName(u"dataBitsBox")
+
+ self.gridLayout_2.addWidget(self.dataBitsBox, 1, 1, 1, 1)
+
+ self.parityLabel = QLabel(self.parametersBox)
+ self.parityLabel.setObjectName(u"parityLabel")
+
+ self.gridLayout_2.addWidget(self.parityLabel, 2, 0, 1, 1)
+
+ self.parityBox = QComboBox(self.parametersBox)
+ self.parityBox.setObjectName(u"parityBox")
+
+ self.gridLayout_2.addWidget(self.parityBox, 2, 1, 1, 1)
+
+ self.stopBitsLabel = QLabel(self.parametersBox)
+ self.stopBitsLabel.setObjectName(u"stopBitsLabel")
+
+ self.gridLayout_2.addWidget(self.stopBitsLabel, 3, 0, 1, 1)
+
+ self.stopBitsBox = QComboBox(self.parametersBox)
+ self.stopBitsBox.setObjectName(u"stopBitsBox")
+
+ self.gridLayout_2.addWidget(self.stopBitsBox, 3, 1, 1, 1)
+
+ self.flowControlLabel = QLabel(self.parametersBox)
+ self.flowControlLabel.setObjectName(u"flowControlLabel")
+
+ self.gridLayout_2.addWidget(self.flowControlLabel, 4, 0, 1, 1)
+
+ self.flowControlBox = QComboBox(self.parametersBox)
+ self.flowControlBox.setObjectName(u"flowControlBox")
+
+ self.gridLayout_2.addWidget(self.flowControlBox, 4, 1, 1, 1)
+
+
+ self.gridLayout_3.addWidget(self.parametersBox, 0, 1, 1, 1)
+
+ self.selectBox = QGroupBox(SettingsDialog)
+ self.selectBox.setObjectName(u"selectBox")
+ self.gridLayout = QGridLayout(self.selectBox)
+ self.gridLayout.setObjectName(u"gridLayout")
+ self.serialPortInfoListBox = QComboBox(self.selectBox)
+ self.serialPortInfoListBox.setObjectName(u"serialPortInfoListBox")
+
+ self.gridLayout.addWidget(self.serialPortInfoListBox, 0, 0, 1, 1)
+
+ self.descriptionLabel = QLabel(self.selectBox)
+ self.descriptionLabel.setObjectName(u"descriptionLabel")
+
+ self.gridLayout.addWidget(self.descriptionLabel, 1, 0, 1, 1)
+
+ self.manufacturerLabel = QLabel(self.selectBox)
+ self.manufacturerLabel.setObjectName(u"manufacturerLabel")
+
+ self.gridLayout.addWidget(self.manufacturerLabel, 2, 0, 1, 1)
+
+ self.serialNumberLabel = QLabel(self.selectBox)
+ self.serialNumberLabel.setObjectName(u"serialNumberLabel")
+
+ self.gridLayout.addWidget(self.serialNumberLabel, 3, 0, 1, 1)
+
+ self.locationLabel = QLabel(self.selectBox)
+ self.locationLabel.setObjectName(u"locationLabel")
+
+ self.gridLayout.addWidget(self.locationLabel, 4, 0, 1, 1)
+
+ self.vidLabel = QLabel(self.selectBox)
+ self.vidLabel.setObjectName(u"vidLabel")
+
+ self.gridLayout.addWidget(self.vidLabel, 5, 0, 1, 1)
+
+ self.pidLabel = QLabel(self.selectBox)
+ self.pidLabel.setObjectName(u"pidLabel")
+
+ self.gridLayout.addWidget(self.pidLabel, 6, 0, 1, 1)
+
+
+ self.gridLayout_3.addWidget(self.selectBox, 0, 0, 1, 1)
+
+ self.horizontalLayout = QHBoxLayout()
+ self.horizontalLayout.setObjectName(u"horizontalLayout")
+ self.horizontalSpacer = QSpacerItem(96, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
+
+ self.horizontalLayout.addItem(self.horizontalSpacer)
+
+ self.applyButton = QPushButton(SettingsDialog)
+ self.applyButton.setObjectName(u"applyButton")
+
+ self.horizontalLayout.addWidget(self.applyButton)
+
+
+ self.gridLayout_3.addLayout(self.horizontalLayout, 2, 0, 1, 2)
+
+ self.additionalOptionsGroupBox = QGroupBox(SettingsDialog)
+ self.additionalOptionsGroupBox.setObjectName(u"additionalOptionsGroupBox")
+ self.verticalLayout = QVBoxLayout(self.additionalOptionsGroupBox)
+ self.verticalLayout.setObjectName(u"verticalLayout")
+ self.localEchoCheckBox = QCheckBox(self.additionalOptionsGroupBox)
+ self.localEchoCheckBox.setObjectName(u"localEchoCheckBox")
+ self.localEchoCheckBox.setChecked(True)
+
+ self.verticalLayout.addWidget(self.localEchoCheckBox)
+
+
+ self.gridLayout_3.addWidget(self.additionalOptionsGroupBox, 1, 0, 1, 2)
+
+
+ self.retranslateUi(SettingsDialog)
+
+ QMetaObject.connectSlotsByName(SettingsDialog)
+ # setupUi
+
+ def retranslateUi(self, SettingsDialog):
+ SettingsDialog.setWindowTitle(QCoreApplication.translate("SettingsDialog", u"Settings", None))
+ self.parametersBox.setTitle(QCoreApplication.translate("SettingsDialog", u"Select Parameters", None))
+ self.baudRateLabel.setText(QCoreApplication.translate("SettingsDialog", u"BaudRate:", None))
+ self.dataBitsLabel.setText(QCoreApplication.translate("SettingsDialog", u"Data bits:", None))
+ self.parityLabel.setText(QCoreApplication.translate("SettingsDialog", u"Parity:", None))
+ self.stopBitsLabel.setText(QCoreApplication.translate("SettingsDialog", u"Stop bits:", None))
+ self.flowControlLabel.setText(QCoreApplication.translate("SettingsDialog", u"Flow control:", None))
+ self.selectBox.setTitle(QCoreApplication.translate("SettingsDialog", u"Select Serial Port", None))
+ self.descriptionLabel.setText(QCoreApplication.translate("SettingsDialog", u"Description:", None))
+ self.manufacturerLabel.setText(QCoreApplication.translate("SettingsDialog", u"Manufacturer:", None))
+ self.serialNumberLabel.setText(QCoreApplication.translate("SettingsDialog", u"Serial number:", None))
+ self.locationLabel.setText(QCoreApplication.translate("SettingsDialog", u"Location:", None))
+ self.vidLabel.setText(QCoreApplication.translate("SettingsDialog", u"Vendor ID:", None))
+ self.pidLabel.setText(QCoreApplication.translate("SettingsDialog", u"Product ID:", None))
+ self.applyButton.setText(QCoreApplication.translate("SettingsDialog", u"Apply", None))
+ self.additionalOptionsGroupBox.setTitle(QCoreApplication.translate("SettingsDialog", u"Additional options", None))
+ self.localEchoCheckBox.setText(QCoreApplication.translate("SettingsDialog", u"Local echo", None))
+ # retranslateUi
+
diff --git a/examples/spatialaudio/audiopanning/audiopanning.pyproject b/examples/spatialaudio/audiopanning/audiopanning.pyproject
new file mode 100644
index 000000000..cc7a74a34
--- /dev/null
+++ b/examples/spatialaudio/audiopanning/audiopanning.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["main.py"]
+}
diff --git a/examples/spatialaudio/audiopanning/doc/audiopanning.rst b/examples/spatialaudio/audiopanning/doc/audiopanning.rst
new file mode 100644
index 000000000..ea1fe4983
--- /dev/null
+++ b/examples/spatialaudio/audiopanning/doc/audiopanning.rst
@@ -0,0 +1,15 @@
+Spatial Audio Panning Example
+=============================
+
+The Spatial Audio Example demonstrates how you can use Qt Spatial Audio to
+place sound sources in 3D space and how positioning of the sound source and
+room properties affect the listening experience.
+
+The example lets you specify a sound file to be played back at a certain
+position in 3D space relative to the listener. Using sliders you can change
+the distance and the azimuth and elevation angles to the source. You can also
+change dimensions of a virtual room, the intensity of the room reflections
+and reverb.
+
+Various other properties can also be modified such as the dimensions of a virtual
+room and the intensity of the room reflections and reverb.
diff --git a/examples/spatialaudio/audiopanning/main.py b/examples/spatialaudio/audiopanning/main.py
new file mode 100644
index 000000000..19b6c3bbd
--- /dev/null
+++ b/examples/spatialaudio/audiopanning/main.py
@@ -0,0 +1,193 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import math
+import sys
+from argparse import ArgumentParser, RawTextHelpFormatter
+
+from PySide6.QtSpatialAudio import (QAudioRoom, QAudioEngine, QAudioListener,
+ QSpatialSound)
+from PySide6.QtWidgets import (QApplication, QCheckBox, QComboBox, QDialog,
+ QFileDialog, QFormLayout, QHBoxLayout,
+ QLineEdit, QPushButton, QSlider, QWidget)
+from PySide6.QtGui import QGuiApplication, QVector3D, QQuaternion
+from PySide6.QtCore import (QCoreApplication, QPropertyAnimation,
+ QStandardPaths, QUrl, Qt, qVersion, Slot)
+
+
+"""PySide6 port of the spatialaudio/audiopanning example from Qt v6.x"""
+
+
+class AudioWidget(QWidget):
+
+ def __init__(self):
+ super().__init__()
+ self._file_dialog = None
+ self.setMinimumSize(400, 300)
+ form = QFormLayout(self)
+
+ file_layout = QHBoxLayout()
+ self._file_edit = QLineEdit()
+ self._file_edit.setPlaceholderText("Audio File")
+ file_layout.addWidget(self._file_edit)
+ self._file_dialog_button = QPushButton("Choose...")
+ file_layout.addWidget(self._file_dialog_button)
+ form.addRow(file_layout)
+
+ self._azimuth = QSlider(Qt.Horizontal)
+ self._azimuth.setRange(-180, 180)
+ form.addRow("Azimuth (-180 - 180 degree):", self._azimuth)
+
+ self._elevation = QSlider(Qt.Horizontal)
+ self._elevation.setRange(-90, 90)
+ form.addRow("Elevation (-90 - 90 degree)", self._elevation)
+
+ self._distance = QSlider(Qt.Horizontal)
+ self._distance.setRange(0, 1000)
+ self._distance.setValue(100)
+ form.addRow("Distance (0 - 10 meter):", self._distance)
+
+ self._occlusion = QSlider(Qt.Horizontal)
+ self._occlusion.setRange(0, 400)
+ form.addRow("Occlusion (0 - 4):", self._occlusion)
+
+ self._room_dimension = QSlider(Qt.Horizontal)
+ self._room_dimension.setRange(0, 10000)
+ self._room_dimension.setValue(1000)
+ form.addRow("Room dimension (0 - 100 meter):", self._room_dimension)
+
+ self._reverb_gain = QSlider(Qt.Horizontal)
+ self._reverb_gain.setRange(0, 500)
+ self._reverb_gain.setValue(0)
+ form.addRow("Reverb gain (0-5):", self._reverb_gain)
+
+ self._reflection_gain = QSlider(Qt.Horizontal)
+ self._reflection_gain.setRange(0, 500)
+ self._reflection_gain.setValue(0)
+ form.addRow("Reflection gain (0-5):", self._reflection_gain)
+
+ self._mode = QComboBox()
+ self._mode.addItem("Surround", QAudioEngine.Surround)
+ self._mode.addItem("Stereo", QAudioEngine.Stereo)
+ self._mode.addItem("Headphone", QAudioEngine.Headphone)
+
+ form.addRow("Output mode:", self._mode)
+
+ self._animate_button = QCheckBox("Animate sound position")
+ form.addRow(self._animate_button)
+
+ self._file_edit.textChanged.connect(self.file_changed)
+ self._file_dialog_button.clicked.connect(self.open_file_dialog)
+
+ self._azimuth.valueChanged.connect(self.update_position)
+ self._elevation.valueChanged.connect(self.update_position)
+ self._distance.valueChanged.connect(self.update_position)
+ self._occlusion.valueChanged.connect(self.new_occlusion)
+
+ self._room_dimension.valueChanged.connect(self.update_room)
+ self._reverb_gain.valueChanged.connect(self.update_room)
+ self._reflection_gain.valueChanged.connect(self.update_room)
+
+ self._mode.currentIndexChanged.connect(self.mode_changed)
+
+ self._engine = QAudioEngine()
+ self._room = QAudioRoom(self._engine)
+ self._room.setWallMaterial(QAudioRoom.BackWall, QAudioRoom.BrickBare)
+ self._room.setWallMaterial(QAudioRoom.FrontWall, QAudioRoom.BrickBare)
+ self._room.setWallMaterial(QAudioRoom.LeftWall, QAudioRoom.BrickBare)
+ self._room.setWallMaterial(QAudioRoom.RightWall, QAudioRoom.BrickBare)
+ self._room.setWallMaterial(QAudioRoom.Floor, QAudioRoom.Marble)
+ self._room.setWallMaterial(QAudioRoom.Ceiling, QAudioRoom.WoodCeiling)
+ self.update_room()
+
+ self._listener = QAudioListener(self._engine)
+ self._listener.setPosition(QVector3D())
+ self._listener.setRotation(QQuaternion())
+ self._engine.start()
+
+ self._sound = QSpatialSound(self._engine)
+ self.update_position()
+
+ self._animation = QPropertyAnimation(self._azimuth, b"value")
+ self._animation.setDuration(10000)
+ self._animation.setStartValue(-180)
+ self._animation.setEndValue(180)
+ self._animation.setLoopCount(-1)
+ self._animate_button.toggled.connect(self.animate_changed)
+
+ def set_file(self, file):
+ self._file_edit.setText(file)
+
+ def update_position(self):
+ az = self._azimuth.value() / 180. * math.pi
+ el = self._elevation.value() / 180. * math.pi
+ d = self._distance.value()
+
+ x = d * math.sin(az) * math.cos(el)
+ y = d * math.sin(el)
+ z = -d * math.cos(az) * math.cos(el)
+ self._sound.setPosition(QVector3D(x, y, z))
+
+ @Slot()
+ def new_occlusion(self):
+ self._sound.setOcclusionIntensity(self._occlusion.value() / 100.)
+
+ @Slot()
+ def mode_changed(self):
+ self._engine.setOutputMode(self._mode.currentData())
+
+ @Slot(str)
+ def file_changed(self, file):
+ self._sound.setSource(QUrl.fromLocalFile(file))
+ self._sound.setSize(5)
+ self._sound.setLoops(QSpatialSound.Infinite)
+
+ @Slot()
+ def open_file_dialog(self):
+ if not self._file_dialog:
+ directory = QStandardPaths.writableLocation(QStandardPaths.MusicLocation)
+ self._file_dialog = QFileDialog(self, "Open Audio File", directory)
+ self._file_dialog.setAcceptMode(QFileDialog.AcceptOpen)
+ mime_types = ["audio/mpeg", "audio/aac", "audio/x-ms-wma",
+ "audio/x-flac+ogg", "audio/x-wav"]
+ self._file_dialog.setMimeTypeFilters(mime_types)
+ self._file_dialog.selectMimeTypeFilter(mime_types[0])
+
+ if self._file_dialog.exec() == QDialog.Accepted:
+ self._file_edit.setText(self._file_dialog.selectedFiles()[0])
+
+ @Slot()
+ def update_room(self):
+ d = self._room_dimension.value()
+ self._room.setDimensions(QVector3D(d, d, 400))
+ self._room.setReflectionGain(float(self._reflection_gain.value()) / 100)
+ self._room.setReverbGain(float(self._reverb_gain.value()) / 100)
+
+ @Slot()
+ def animate_changed(self):
+ if self._animate_button.isChecked():
+ self._animation.start()
+ else:
+ self._animation.stop()
+
+
+if __name__ == '__main__':
+ app = QApplication(sys.argv)
+
+ name = "Spatial Audio Test Application"
+ QCoreApplication.setApplicationVersion(qVersion())
+ QGuiApplication.setApplicationDisplayName(name)
+
+ argument_parser = ArgumentParser(description=name,
+ formatter_class=RawTextHelpFormatter)
+ argument_parser.add_argument("file", help="File",
+ nargs='?', type=str)
+ options = argument_parser.parse_args()
+
+ w = AudioWidget()
+ w.show()
+
+ if options.file:
+ w.set_file(options.file)
+
+ sys.exit(app.exec())
diff --git a/examples/speech/hello_speak/doc/hello_speak.rst b/examples/speech/hello_speak/doc/hello_speak.rst
new file mode 100644
index 000000000..b7c17c35f
--- /dev/null
+++ b/examples/speech/hello_speak/doc/hello_speak.rst
@@ -0,0 +1,16 @@
+Hello Speak
+===========
+
+The Hello Speak example reads out user-provided text.
+
+The Hello Speak example demonstrates how QTextToSpeech can be used in a Qt C++
+application to read out text, and to control the speech.
+
+The example uses a widget UI to provide controls for the pitch, volume, and
+rate of the speech. It also lets the user select an engine, the language, and a
+voice.
+
+.. image:: hello_speak.webp
+ :width: 400
+ :alt: Hello Speak Screenshot
+
diff --git a/examples/speech/hello_speak/doc/hello_speak.webp b/examples/speech/hello_speak/doc/hello_speak.webp
new file mode 100644
index 000000000..c378d1a4b
--- /dev/null
+++ b/examples/speech/hello_speak/doc/hello_speak.webp
Binary files differ
diff --git a/examples/speech/hello_speak/hello_speak.pyproject b/examples/speech/hello_speak/hello_speak.pyproject
new file mode 100644
index 000000000..0cefc7531
--- /dev/null
+++ b/examples/speech/hello_speak/hello_speak.pyproject
@@ -0,0 +1,5 @@
+{
+ "files": ["main.py",
+ "mainwindow.py",
+ "mainwindow.ui"]
+}
diff --git a/examples/speech/hello_speak/main.py b/examples/speech/hello_speak/main.py
new file mode 100644
index 000000000..b025dd6c0
--- /dev/null
+++ b/examples/speech/hello_speak/main.py
@@ -0,0 +1,20 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the hello_speak example from Qt v6.x"""
+
+import sys
+
+from PySide6.QtCore import QLoggingCategory
+from PySide6.QtWidgets import QApplication
+
+from mainwindow import MainWindow
+
+
+if __name__ == "__main__":
+ QLoggingCategory.setFilterRules("qt.speech.tts=true\nqt.speech.tts.*=true")
+
+ app = QApplication(sys.argv)
+ win = MainWindow()
+ win.show()
+ sys.exit(app.exec())
diff --git a/examples/speech/hello_speak/mainwindow.py b/examples/speech/hello_speak/mainwindow.py
new file mode 100644
index 000000000..7790fec8c
--- /dev/null
+++ b/examples/speech/hello_speak/mainwindow.py
@@ -0,0 +1,134 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QLocale, QSignalBlocker, Slot
+from PySide6.QtWidgets import QMainWindow
+from PySide6.QtTextToSpeech import QTextToSpeech, QVoice
+
+from ui_mainwindow import Ui_MainWindow
+
+
+class MainWindow(QMainWindow):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+ self._speech = None
+ self._voices = []
+
+ self._ui = Ui_MainWindow()
+ self._ui.setupUi(self)
+
+ # Populate engine selection list
+ self._ui.engine.addItem("Default", "default")
+ engines = QTextToSpeech.availableEngines()
+ for engine in engines:
+ self._ui.engine.addItem(engine, engine)
+ self._ui.engine.setCurrentIndex(0)
+ self.engine_selected(0)
+
+ self._ui.pitch.valueChanged.connect(self.set_pitch)
+ self._ui.rate.valueChanged.connect(self.set_rate)
+ self._ui.volume.valueChanged.connect(self.set_volume)
+ self._ui.engine.currentIndexChanged.connect(self.engine_selected)
+ self._ui.voice.currentIndexChanged.connect(self.voice_selected)
+ self._ui.language.currentIndexChanged.connect(self.language_selected)
+
+ @Slot(int)
+ def set_rate(self, rate):
+ self._speech.setRate(rate / 10.0)
+
+ @Slot(int)
+ def set_pitch(self, pitch):
+ self._speech.setPitch(pitch / 10.0)
+
+ @Slot(int)
+ def set_volume(self, volume):
+ self._speech.setVolume(volume / 100.0)
+
+ @Slot(QTextToSpeech.State)
+ def state_changed(self, state):
+ if state == QTextToSpeech.Speaking:
+ self._ui.statusbar.showMessage("Speech started...")
+ elif state == QTextToSpeech.Ready:
+ self._ui.statusbar.showMessage("Speech stopped...", 2000)
+ elif state == QTextToSpeech.Paused:
+ self._ui.statusbar.showMessage("Speech paused...")
+ else:
+ self._ui.statusbar.showMessage("Speech error!")
+
+ self._ui.pauseButton.setEnabled(state == QTextToSpeech.Speaking)
+ self._ui.resumeButton.setEnabled(state == QTextToSpeech.Paused)
+ can_stop = state == QTextToSpeech.Speaking or state == QTextToSpeech.Paused
+ self._ui.stopButton.setEnabled(can_stop)
+
+ @Slot(int)
+ def engine_selected(self, index):
+ engine_name = self._ui.engine.itemData(index)
+ self._speech = None
+ self._speech = (QTextToSpeech(self) if engine_name == "default"
+ else QTextToSpeech(engine_name, self))
+
+ # Block signals of the languages combobox while populating
+ current = self._speech.locale()
+ with QSignalBlocker(self._ui.language):
+ self._ui.language.clear()
+ # Populate the languages combobox before connecting its signal.
+ locales = self._speech.availableLocales()
+ for locale in locales:
+ lang = QLocale.languageToString(locale.language())
+ territory = QLocale.territoryToString(locale.territory())
+ self._ui.language.addItem(f"{lang} ({territory})", locale)
+ if locale.name() == current.name():
+ current = locale
+
+ self.set_rate(self._ui.rate.value())
+ self.set_pitch(self._ui.pitch.value())
+ self.set_volume(self._ui.volume.value())
+
+ self._ui.speakButton.clicked.connect(self.speak_text)
+ self._ui.stopButton.clicked.connect(self.stop_speaking)
+ self._ui.pauseButton.clicked.connect(self.pause_speaking)
+ self._ui.resumeButton.clicked.connect(self._speech.resume)
+
+ self._speech.stateChanged.connect(self.state_changed)
+ self._speech.localeChanged.connect(self.locale_changed)
+
+ self.locale_changed(current)
+
+ @Slot()
+ def speak_text(self):
+ self._speech.say(self._ui.plainTextEdit.toPlainText())
+
+ @Slot()
+ def stop_speaking(self):
+ self._speech.stop()
+
+ @Slot()
+ def pause_speaking(self):
+ self._speech.pause()
+
+ @Slot(int)
+ def language_selected(self, language):
+ locale = self._ui.language.itemData(language)
+ self._speech.setLocale(locale)
+
+ @Slot(int)
+ def voice_selected(self, index):
+ self._speech.setVoice(self._voices[index])
+
+ @Slot(QLocale)
+ def locale_changed(self, locale):
+ self._ui.language.setCurrentIndex(self._ui.language.findData(locale))
+
+ with QSignalBlocker(self._ui.voice):
+ self._ui.voice.clear()
+ self._voices = self._speech.availableVoices()
+ current_voice = self._speech.voice()
+ for voice in self._voices:
+ name = voice.name()
+ gender = QVoice.genderName(voice.gender())
+ age = QVoice.ageName(voice.age())
+ self._ui.voice.addItem(f"{name} - {gender} - {age}")
+ if voice.name() == current_voice.name():
+ self._ui.voice.setCurrentIndex(self._ui.voice.count() - 1)
diff --git a/examples/speech/hello_speak/mainwindow.ui b/examples/speech/hello_speak/mainwindow.ui
new file mode 100644
index 000000000..6f3accf6c
--- /dev/null
+++ b/examples/speech/hello_speak/mainwindow.ui
@@ -0,0 +1,267 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>MainWindow</class>
+ <widget class="QMainWindow" name="MainWindow">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>551</width>
+ <height>448</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>MainWindow</string>
+ </property>
+ <widget class="QWidget" name="centralwidget">
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QPlainTextEdit" name="plainTextEdit">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="plainText">
+ <string>Hello QtTextToSpeech,
+this is an example text in English.
+
+QtSpeech is a library that makes text to speech easy with Qt.
+Done, over and out.</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="4" column="0">
+ <widget class="QLabel" name="label_5">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Engine</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <widget class="QLabel" name="label_3">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Pitch:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="0">
+ <widget class="QLabel" name="label_4">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>&amp;Language:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ <property name="buddy">
+ <cstring>language</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="2">
+ <widget class="QSlider" name="pitch">
+ <property name="minimum">
+ <number>-10</number>
+ </property>
+ <property name="maximum">
+ <number>10</number>
+ </property>
+ <property name="singleStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="0">
+ <widget class="QLabel" name="label_6">
+ <property name="text">
+ <string>Voice name:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2">
+ <widget class="QSlider" name="volume">
+ <property name="maximum">
+ <number>100</number>
+ </property>
+ <property name="singleStep">
+ <number>5</number>
+ </property>
+ <property name="pageStep">
+ <number>20</number>
+ </property>
+ <property name="value">
+ <number>70</number>
+ </property>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="2">
+ <widget class="QComboBox" name="language">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="2">
+ <widget class="QComboBox" name="voice"/>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="label">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Rate:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="label_2">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Volume:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="2">
+ <widget class="QSlider" name="rate">
+ <property name="minimum">
+ <number>-10</number>
+ </property>
+ <property name="maximum">
+ <number>10</number>
+ </property>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="2">
+ <widget class="QComboBox" name="engine">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QPushButton" name="speakButton">
+ <property name="text">
+ <string>Speak</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="pauseButton">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Pause</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="resumeButton">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Resume</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="stopButton">
+ <property name="text">
+ <string>Stop</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QStatusBar" name="statusbar"/>
+ </widget>
+ <tabstops>
+ <tabstop>plainTextEdit</tabstop>
+ <tabstop>speakButton</tabstop>
+ <tabstop>pauseButton</tabstop>
+ <tabstop>resumeButton</tabstop>
+ <tabstop>stopButton</tabstop>
+ </tabstops>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/examples/speech/hello_speak/ui_mainwindow.py b/examples/speech/hello_speak/ui_mainwindow.py
new file mode 100644
index 000000000..ab132e7fb
--- /dev/null
+++ b/examples/speech/hello_speak/ui_mainwindow.py
@@ -0,0 +1,211 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'mainwindow.ui'
+##
+## Created by: Qt User Interface Compiler version 6.7.0
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
+ QFont, QFontDatabase, QGradient, QIcon,
+ QImage, QKeySequence, QLinearGradient, QPainter,
+ QPalette, QPixmap, QRadialGradient, QTransform)
+from PySide6.QtWidgets import (QApplication, QComboBox, QGridLayout, QHBoxLayout,
+ QLabel, QMainWindow, QPlainTextEdit, QPushButton,
+ QSizePolicy, QSlider, QSpacerItem, QStatusBar,
+ QVBoxLayout, QWidget)
+
+class Ui_MainWindow(object):
+ def setupUi(self, MainWindow):
+ if not MainWindow.objectName():
+ MainWindow.setObjectName(u"MainWindow")
+ MainWindow.resize(551, 448)
+ self.centralwidget = QWidget(MainWindow)
+ self.centralwidget.setObjectName(u"centralwidget")
+ self.verticalLayout = QVBoxLayout(self.centralwidget)
+ self.verticalLayout.setObjectName(u"verticalLayout")
+ self.plainTextEdit = QPlainTextEdit(self.centralwidget)
+ self.plainTextEdit.setObjectName(u"plainTextEdit")
+ sizePolicy = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.plainTextEdit.sizePolicy().hasHeightForWidth())
+ self.plainTextEdit.setSizePolicy(sizePolicy)
+
+ self.verticalLayout.addWidget(self.plainTextEdit)
+
+ self.gridLayout = QGridLayout()
+ self.gridLayout.setObjectName(u"gridLayout")
+ self.label_5 = QLabel(self.centralwidget)
+ self.label_5.setObjectName(u"label_5")
+ sizePolicy1 = QSizePolicy(QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Preferred)
+ sizePolicy1.setHorizontalStretch(0)
+ sizePolicy1.setVerticalStretch(0)
+ sizePolicy1.setHeightForWidth(self.label_5.sizePolicy().hasHeightForWidth())
+ self.label_5.setSizePolicy(sizePolicy1)
+ self.label_5.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
+
+ self.gridLayout.addWidget(self.label_5, 4, 0, 1, 1)
+
+ self.label_3 = QLabel(self.centralwidget)
+ self.label_3.setObjectName(u"label_3")
+ sizePolicy1.setHeightForWidth(self.label_3.sizePolicy().hasHeightForWidth())
+ self.label_3.setSizePolicy(sizePolicy1)
+ self.label_3.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
+
+ self.gridLayout.addWidget(self.label_3, 3, 0, 1, 1)
+
+ self.label_4 = QLabel(self.centralwidget)
+ self.label_4.setObjectName(u"label_4")
+ sizePolicy1.setHeightForWidth(self.label_4.sizePolicy().hasHeightForWidth())
+ self.label_4.setSizePolicy(sizePolicy1)
+ self.label_4.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
+
+ self.gridLayout.addWidget(self.label_4, 5, 0, 1, 1)
+
+ self.pitch = QSlider(self.centralwidget)
+ self.pitch.setObjectName(u"pitch")
+ self.pitch.setMinimum(-10)
+ self.pitch.setMaximum(10)
+ self.pitch.setSingleStep(1)
+ self.pitch.setOrientation(Qt.Horizontal)
+
+ self.gridLayout.addWidget(self.pitch, 3, 2, 1, 1)
+
+ self.label_6 = QLabel(self.centralwidget)
+ self.label_6.setObjectName(u"label_6")
+ self.label_6.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
+
+ self.gridLayout.addWidget(self.label_6, 6, 0, 1, 1)
+
+ self.volume = QSlider(self.centralwidget)
+ self.volume.setObjectName(u"volume")
+ self.volume.setMaximum(100)
+ self.volume.setSingleStep(5)
+ self.volume.setPageStep(20)
+ self.volume.setValue(70)
+ self.volume.setOrientation(Qt.Horizontal)
+
+ self.gridLayout.addWidget(self.volume, 1, 2, 1, 1)
+
+ self.language = QComboBox(self.centralwidget)
+ self.language.setObjectName(u"language")
+ sizePolicy2 = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed)
+ sizePolicy2.setHorizontalStretch(0)
+ sizePolicy2.setVerticalStretch(0)
+ sizePolicy2.setHeightForWidth(self.language.sizePolicy().hasHeightForWidth())
+ self.language.setSizePolicy(sizePolicy2)
+
+ self.gridLayout.addWidget(self.language, 5, 2, 1, 1)
+
+ self.voice = QComboBox(self.centralwidget)
+ self.voice.setObjectName(u"voice")
+
+ self.gridLayout.addWidget(self.voice, 6, 2, 1, 1)
+
+ self.label = QLabel(self.centralwidget)
+ self.label.setObjectName(u"label")
+ sizePolicy1.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth())
+ self.label.setSizePolicy(sizePolicy1)
+ self.label.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
+
+ self.gridLayout.addWidget(self.label, 2, 0, 1, 1)
+
+ self.label_2 = QLabel(self.centralwidget)
+ self.label_2.setObjectName(u"label_2")
+ sizePolicy1.setHeightForWidth(self.label_2.sizePolicy().hasHeightForWidth())
+ self.label_2.setSizePolicy(sizePolicy1)
+ self.label_2.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
+
+ self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1)
+
+ self.rate = QSlider(self.centralwidget)
+ self.rate.setObjectName(u"rate")
+ self.rate.setMinimum(-10)
+ self.rate.setMaximum(10)
+ self.rate.setOrientation(Qt.Horizontal)
+
+ self.gridLayout.addWidget(self.rate, 2, 2, 1, 1)
+
+ self.engine = QComboBox(self.centralwidget)
+ self.engine.setObjectName(u"engine")
+ sizePolicy2.setHeightForWidth(self.engine.sizePolicy().hasHeightForWidth())
+ self.engine.setSizePolicy(sizePolicy2)
+
+ self.gridLayout.addWidget(self.engine, 4, 2, 1, 1)
+
+
+ self.verticalLayout.addLayout(self.gridLayout)
+
+ self.horizontalLayout = QHBoxLayout()
+ self.horizontalLayout.setObjectName(u"horizontalLayout")
+ self.speakButton = QPushButton(self.centralwidget)
+ self.speakButton.setObjectName(u"speakButton")
+
+ self.horizontalLayout.addWidget(self.speakButton)
+
+ self.pauseButton = QPushButton(self.centralwidget)
+ self.pauseButton.setObjectName(u"pauseButton")
+ self.pauseButton.setEnabled(False)
+
+ self.horizontalLayout.addWidget(self.pauseButton)
+
+ self.resumeButton = QPushButton(self.centralwidget)
+ self.resumeButton.setObjectName(u"resumeButton")
+ self.resumeButton.setEnabled(False)
+
+ self.horizontalLayout.addWidget(self.resumeButton)
+
+ self.stopButton = QPushButton(self.centralwidget)
+ self.stopButton.setObjectName(u"stopButton")
+
+ self.horizontalLayout.addWidget(self.stopButton)
+
+
+ self.verticalLayout.addLayout(self.horizontalLayout)
+
+ self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
+
+ self.verticalLayout.addItem(self.verticalSpacer)
+
+ MainWindow.setCentralWidget(self.centralwidget)
+ self.statusbar = QStatusBar(MainWindow)
+ self.statusbar.setObjectName(u"statusbar")
+ MainWindow.setStatusBar(self.statusbar)
+#if QT_CONFIG(shortcut)
+ self.label_4.setBuddy(self.language)
+#endif // QT_CONFIG(shortcut)
+ QWidget.setTabOrder(self.plainTextEdit, self.speakButton)
+ QWidget.setTabOrder(self.speakButton, self.pauseButton)
+ QWidget.setTabOrder(self.pauseButton, self.resumeButton)
+ QWidget.setTabOrder(self.resumeButton, self.stopButton)
+
+ self.retranslateUi(MainWindow)
+
+ QMetaObject.connectSlotsByName(MainWindow)
+ # setupUi
+
+ def retranslateUi(self, MainWindow):
+ MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"MainWindow", None))
+ self.plainTextEdit.setPlainText(QCoreApplication.translate("MainWindow", u"Hello QtTextToSpeech,\n"
+"this is an example text in English.\n"
+"\n"
+"QtSpeech is a library that makes text to speech easy with Qt.\n"
+"Done, over and out.", None))
+ self.label_5.setText(QCoreApplication.translate("MainWindow", u"Engine", None))
+ self.label_3.setText(QCoreApplication.translate("MainWindow", u"Pitch:", None))
+ self.label_4.setText(QCoreApplication.translate("MainWindow", u"&Language:", None))
+ self.label_6.setText(QCoreApplication.translate("MainWindow", u"Voice name:", None))
+ self.label.setText(QCoreApplication.translate("MainWindow", u"Rate:", None))
+ self.label_2.setText(QCoreApplication.translate("MainWindow", u"Volume:", None))
+ self.speakButton.setText(QCoreApplication.translate("MainWindow", u"Speak", None))
+ self.pauseButton.setText(QCoreApplication.translate("MainWindow", u"Pause", None))
+ self.resumeButton.setText(QCoreApplication.translate("MainWindow", u"Resume", None))
+ self.stopButton.setText(QCoreApplication.translate("MainWindow", u"Stop", None))
+ # retranslateUi
+
diff --git a/examples/sql/books/bookdelegate.py b/examples/sql/books/bookdelegate.py
index f8b199d76..78295adf1 100644
--- a/examples/sql/books/bookdelegate.py
+++ b/examples/sql/books/bookdelegate.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import copy
from PySide6.QtSql import QSqlRelationalDelegate
@@ -50,7 +13,8 @@ class BookDelegate(QSqlRelationalDelegate):
def __init__(self, parent=None):
QSqlRelationalDelegate.__init__(self, parent)
- self.star = QPixmap(":/images/star.png")
+ self.star = QPixmap(":/images/star.svg")
+ self.star_filled = QPixmap(":/images/star-filled.svg")
def paint(self, painter, option, index):
""" Paint the items in the table.
@@ -80,19 +44,19 @@ class BookDelegate(QSqlRelationalDelegate):
if option.state & QStyle.State_Selected:
painter.fillRect(option.rect,
- option.palette.color(color_group, QPalette.Highlight))
+ option.palette.color(color_group, QPalette.Highlight))
rating = model.data(index, Qt.DisplayRole)
width = self.star.width()
height = self.star.height()
x = option.rect.x()
y = option.rect.y() + (option.rect.height() / 2) - (height / 2)
- for i in range(rating):
- painter.drawPixmap(x, y, self.star)
+ for i in range(5):
+ if i < rating:
+ painter.drawPixmap(x, y, self.star_filled)
+ else:
+ painter.drawPixmap(x, y, self.star)
x += width
- # Since we draw the grid ourselves:
- self.drawFocus(painter, option, option.rect.adjusted(0, 0, -1, -1))
-
pen = painter.pen()
painter.setPen(option.palette.color(QPalette.Mid))
painter.drawLine(option.rect.bottomLeft(), option.rect.bottomRight())
diff --git a/examples/sql/books/books.qrc b/examples/sql/books/books.qrc
index d6ad21337..a52ee381b 100644
--- a/examples/sql/books/books.qrc
+++ b/examples/sql/books/books.qrc
@@ -1,5 +1,6 @@
<!DOCTYPE RCC><RCC version="1.0">
<qresource>
- <file>images/star.png</file>
+ <file>images/star.svg</file>
+ <file>images/star-filled.svg</file>
</qresource>
</RCC>
diff --git a/examples/sql/books/bookwindow.py b/examples/sql/books/bookwindow.py
index c57db4afb..7f9e0f94b 100644
--- a/examples/sql/books/bookwindow.py
+++ b/examples/sql/books/bookwindow.py
@@ -1,45 +1,8 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from PySide6.QtWidgets import (QAbstractItemView, QDataWidgetMapper,
- QHeaderView, QMainWindow, QMessageBox)
+ QHeaderView, QMainWindow, QMessageBox)
from PySide6.QtGui import QKeySequence
from PySide6.QtSql import QSqlRelation, QSqlRelationalTableModel, QSqlTableModel
from PySide6.QtCore import Qt, Slot
@@ -95,7 +58,7 @@ class BookWindow(QMainWindow, Ui_BookWindow):
# Lock and prohibit resizing of the width of the rating column:
self.bookTable.horizontalHeader().setSectionResizeMode(model.fieldIndex("rating"),
- QHeaderView.ResizeToContents)
+ QHeaderView.ResizeToContents)
mapper = QDataWidgetMapper(self)
mapper.setModel(model)
@@ -112,24 +75,24 @@ class BookWindow(QMainWindow, Ui_BookWindow):
self.bookTable.setCurrentIndex(model.index(0, 0))
self.create_menubar()
- def showError(err):
+ def showError(self, err):
QMessageBox.critical(self, "Unable to initialize Database",
- f"Error initializing database: {err.text()}")
+ f"Error initializing database: {err.text()}")
def create_menubar(self):
file_menu = self.menuBar().addMenu(self.tr("&File"))
quit_action = file_menu.addAction(self.tr("&Quit"))
- quit_action.triggered.connect(qApp.quit)
+ quit_action.triggered.connect(qApp.quit) # noqa: F821
help_menu = self.menuBar().addMenu(self.tr("&Help"))
about_action = help_menu.addAction(self.tr("&About"))
about_action.setShortcut(QKeySequence.HelpContents)
about_action.triggered.connect(self.about)
aboutQt_action = help_menu.addAction("&About Qt")
- aboutQt_action.triggered.connect(qApp.aboutQt)
+ aboutQt_action.triggered.connect(qApp.aboutQt) # noqa: F821
@Slot()
def about(self):
QMessageBox.about(self, self.tr("About Books"),
- self.tr("<p>The <b>Books</b> example shows how to use Qt SQL classes "
- "with a model/view framework."))
+ self.tr("<p>The <b>Books</b> example shows how to use Qt SQL classes "
+ "with a model/view framework."))
diff --git a/examples/sql/books/createdb.py b/examples/sql/books/createdb.py
index 48784a88e..5ee0f148e 100644
--- a/examples/sql/books/createdb.py
+++ b/examples/sql/books/createdb.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from PySide6.QtSql import QSqlDatabase, QSqlQuery
from datetime import date
diff --git a/examples/sql/books/images/star-filled.svg b/examples/sql/books/images/star-filled.svg
new file mode 100644
index 000000000..8a2aee27f
--- /dev/null
+++ b/examples/sql/books/images/star-filled.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="#0d0d0d"><path d="M8.41 18.138L12 15.845l3.59 2.323-.94-4.345 3.162-2.897-4.159-.392L12 6.43l-1.652 4.073-4.159.392 3.162 2.927-.94 4.315zm-1.346 3.696a1.04 1.04 0 0 1-1.567-1.104l1.318-6.033-4.476-4.11c-.665-.611-.293-1.726.604-1.808l5.866-.539 2.229-5.587c.348-.872 1.575-.872 1.923 0l2.229 5.587 5.866.539c.897.082 1.269 1.197.604 1.808l-4.476 4.11 1.318 6.033a1.04 1.04 0 0 1-1.567 1.104L12 18.681l-4.935 3.153z"/><path d="M12 5l-1.796 5.528H4.392l4.702 3.416-1.796 5.528L12 16.056l4.702 3.416-1.796-5.528 4.702-3.416h-5.812L12 5z"/></svg>
diff --git a/examples/sql/books/images/star.png b/examples/sql/books/images/star.png
deleted file mode 100644
index 87f4464bd..000000000
--- a/examples/sql/books/images/star.png
+++ /dev/null
Binary files differ
diff --git a/examples/sql/books/images/star.svg b/examples/sql/books/images/star.svg
new file mode 100644
index 000000000..d959abc18
--- /dev/null
+++ b/examples/sql/books/images/star.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none"><path d="M8.41 18.138L12 15.845l3.59 2.323-.94-4.345 3.162-2.897-4.159-.392L12 6.43l-1.652 4.073-4.159.392 3.162 2.927-.94 4.315zm-1.346 3.696a1.04 1.04 0 0 1-1.567-1.104l1.318-6.033-4.476-4.11c-.665-.611-.293-1.726.604-1.808l5.866-.539 2.229-5.587c.348-.872 1.575-.872 1.923 0l2.229 5.587 5.866.539c.897.082 1.269 1.197.604 1.808l-4.476 4.11 1.318 6.033a1.04 1.04 0 0 1-1.567 1.104L12 18.681l-4.935 3.153z" fill="#0d0d0d"/></svg>
diff --git a/examples/sql/books/main.py b/examples/sql/books/main.py
index 3994a66b4..025b55884 100644
--- a/examples/sql/books/main.py
+++ b/examples/sql/books/main.py
@@ -1,47 +1,10 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
from PySide6.QtWidgets import QApplication
from bookwindow import BookWindow
-import rc_books
+import rc_books # noqa: F401
if __name__ == "__main__":
app = QApplication([])
diff --git a/examples/sql/books/rc_books.py b/examples/sql/books/rc_books.py
index b5d1d53bb..123d50de8 100644
--- a/examples/sql/books/rc_books.py
+++ b/examples/sql/books/rc_books.py
@@ -1,62 +1,86 @@
# Resource object code (Python 3)
# Created by: object code
-# Created by: The Resource Compiler for Qt version 5.14.0
+# Created by: The Resource Compiler for Qt version 6.6.1
# WARNING! All changes made in this file will be lost!
from PySide6 import QtCore
qt_resource_data = b"\
-\x00\x00\x03\x0e\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xffa\
-\x00\x00\x00\x09pHYs\x00\x00\x0b\x11\x00\x00\x0b\x11\
-\x01\x7fd_\x91\x00\x00\x00\x07tIME\x07\xd4\x09\
-\x03\x12\x11\x08\x18~\xe5:\x00\x00\x00\x06bKGD\
-\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\x02\x9bID\
-AT8\xcbc\x98:c\x1e#:\xe6\xe5d\xcf\x17\
-\x12\x12\x16\xc4&\x87\x8e\x19\xb0\x09v\xc6\x18\xb7x\xea\
-\x8b\xcd\x9c=o\x09i\x06,X4\x8f\xf1\xd2\xa5\x99\
-L\xb9\xa1\x16\xc5\xc7\xbb\xed\xff\x0a\xf2\xb2;M\x9f\xb5\
-\x908\x03\x16,\x9a\xcb\xf8\xe0\xde\x04\x96\xc7\x0f\xdby\
-\xe7MO\xc8\xfbv\xbf\xe5\xff\xb4\x0a\x9b\x9by\x851\
-\xdc\xd3g-\x82k\x983\x7f)\xe3l F1`\
-\xca\xf4y\x8c\xd7\xaeMg\x02i~\xf2\xa8Y\xe1\xd2\
-\xa5\xfa\xdc_\x9f7\xfd\xffx\xbf\xea\x7fE\x96m\x97\
-\x81\x81>'33\x8b\xa5\x9e8gi\xb8\x9e\xc0f\
-&&\xa6D\x14\x03&N\x9d\xc7x\xef\xdeD\x96'\
-\x0f[E\x9f>j\xd6\xbdu\xb3\x22\xef\xd7\xb7=\xff\
-\xbe\x7f\xe8\xfb\x7f~S\xcc\xef\x05\xc5\xea\x9fNOQ\
-\xfb\x7f\xbaM\xed\xbf\x87\x1a\xefn5-\x1dV\x14\x03\
-f\xcf[\xce\xa8\xa4\xa9![W\xed\x9b}\xefJ\xcb\
-\xcew\xaf&\x7f\xfa\xfee\xc9\xff\xef\x1f\xfa\xff\xbf\xbf\
-\x95\xf2\xff\xc9^\x83\xffW\x17\xaa\xfdot\x12{\xc4\
-\xc7\xc7/\x8e\x12\x06Y\xb9\x85\xcc\xb2\x82\x1c\xf3\xa7D\
-\xab\xfe\xfa\xbe%\xe2\xff\x8fgm\xff\x7f|\x9a\x08\xd6\
-\xfc\xf5Y\xcd\xff\xd7\xe7\xfc\xfe\xdf\xde\xa0\xf5\x7fE\x94\
-\xecO\x16\x16V\xebi3\xe7\xa3\x06\xe2\xe4is\x18\
-\xe7/Z\xc1\xc8\xce\xc1i\x10\xe5\xa8\xd2\xbe\xa6\xcd\xe7\
-\xf6\xc3m\x99\xff~^(\xf8\xff\xe1j\xe0\xff\x17G\
-L\xff\xdf\xdf\xae\xf6\xbf\xc2]\xf4\xba\x9a\x9a\x06\x1bF\
-,\x00\x01#2\xe6\xe6\xe6`Q\xd6\x941_\xde\xe4\
-q\xfb\xc3y\xd3\xff\x1b\x8aT\xff\xbf?`\xff\xff\xdc\
-l\xe5\xff\xea\xc2\x1c9\xd3g-\xc0i\x00\x13\x10\x8b\
-\x03\xb1?\x10\xe7\xf5\x16\xd8\xde\xf8p\xc6\xe4\xbf\x9d<\
-\xf7t\x7fC\xe9\x95\xb7\x96\xd9\xff\x9b\x9c,\xfdN@\
-@H\x14\x9b\x01LP,\x06\xc4\x19@|\x22;\xca\
-\xf0\xe7\xe9\xf9\x06\xff\x81\xec\x03@\xbc^\x82\x9f\xf3\xf6\
-\x9e\x1a\xf3_az\x823P\xd2\x01T#3\x10\x0b\
-\x00\xb1\x1e\x10\x17\x03\xf1\xd1\xa8@\xdd\x9f\xad\x09J \
-\x03\xfe\x00\xf17 >\x0f\xb4kf\xb9\xa7\xea\x0d}\
-i>#d\x03\xb4\x808\x08\x88k\x81x\x09\xd4\xc6\
-\x1b\x11a\x06\xdf\xec\x94\xb8\xdf\x03\xd9;\x81x\x1a\x10\
-\xf7\x82\xd4\xb0\xb2\xb1G\xf9\xda\x99:L\x9d9\x9f\x09\
-f\x80\x0e\x10;\x02\xb1\x13\x10[\x00\xb1\x01\x10\x07\x06\
-{h\x9c\x02\xd2k\xa0\x86\x8b\x001\x17\x10\xf3\x80\xb0\
-\x88\x88(\xcb,hFC\xf6\x02\x08\xb3\x001+\x10\
-K122\xe4\x01i7 \x96\x01b6\xa88\x0b\
-T=cW\xef$\xb0\x01\x00\xceo{\xf5UL\xf0\
-\xac\x00\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x02e\
+<\
+svg xmlns=\x22http:\
+//www.w3.org/200\
+0/svg\x22 width=\x2224\
+\x22 height=\x2224\x22 fi\
+ll=\x22#0d0d0d\x22><pa\
+th d=\x22M8.41 18.1\
+38L12 15.845l3.5\
+9 2.323-.94-4.34\
+5 3.162-2.897-4.\
+159-.392L12 6.43\
+l-1.652 4.073-4.\
+159.392 3.162 2.\
+927-.94 4.315zm-\
+1.346 3.696a1.04\
+ 1.04 0 0 1-1.56\
+7-1.104l1.318-6.\
+033-4.476-4.11c-\
+.665-.611-.293-1\
+.726.604-1.808l5\
+.866-.539 2.229-\
+5.587c.348-.872 \
+1.575-.872 1.923\
+ 0l2.229 5.587 5\
+.866.539c.897.08\
+2 1.269 1.197.60\
+4 1.808l-4.476 4\
+.11 1.318 6.033a\
+1.04 1.04 0 0 1-\
+1.567 1.104L12 1\
+8.681l-4.935 3.1\
+53z\x22/><path d=\x22M\
+12 5l-1.796 5.52\
+8H4.392l4.702 3.\
+416-1.796 5.528L\
+12 16.056l4.702 \
+3.416-1.796-5.52\
+8 4.702-3.416h-5\
+.812L12 5z\x22/></s\
+vg>\x0a\
+\x00\x00\x01\xfa\
+<\
+svg xmlns=\x22http:\
+//www.w3.org/200\
+0/svg\x22 width=\x2224\
+\x22 height=\x2224\x22 fi\
+ll=\x22none\x22><path \
+d=\x22M8.41 18.138L\
+12 15.845l3.59 2\
+.323-.94-4.345 3\
+.162-2.897-4.159\
+-.392L12 6.43l-1\
+.652 4.073-4.159\
+.392 3.162 2.927\
+-.94 4.315zm-1.3\
+46 3.696a1.04 1.\
+04 0 0 1-1.567-1\
+.104l1.318-6.033\
+-4.476-4.11c-.66\
+5-.611-.293-1.72\
+6.604-1.808l5.86\
+6-.539 2.229-5.5\
+87c.348-.872 1.5\
+75-.872 1.923 0l\
+2.229 5.587 5.86\
+6.539c.897.082 1\
+.269 1.197.604 1\
+.808l-4.476 4.11\
+ 1.318 6.033a1.0\
+4 1.04 0 0 1-1.5\
+67 1.104L12 18.6\
+81l-4.935 3.153z\
+\x22 fill=\x22#0d0d0d\x22\
+/></svg>\x0a\
"
qt_resource_name = b"\
@@ -64,19 +88,25 @@ qt_resource_name = b"\
\x07\x03}\xc3\
\x00i\
\x00m\x00a\x00g\x00e\x00s\
+\x00\x0f\
+\x02\x11 \x07\
+\x00s\
+\x00t\x00a\x00r\x00-\x00f\x00i\x00l\x00l\x00e\x00d\x00.\x00s\x00v\x00g\
\x00\x08\
-\x0a\x85X\x07\
+\x0a\x85U\x87\
\x00s\
-\x00t\x00a\x00r\x00.\x00p\x00n\x00g\
+\x00t\x00a\x00r\x00.\x00s\x00v\x00g\
"
qt_resource_struct = b"\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x01j\x965\xd3\xea\
+\x00\x00\x01\x8c\xd4\xc79\xcf\
+\x00\x00\x006\x00\x00\x00\x00\x00\x01\x00\x00\x02i\
+\x00\x00\x01\x8c\xd4\xc79\xcf\
"
def qInitResources():
diff --git a/examples/sql/books/ui_bookwindow.py b/examples/sql/books/ui_bookwindow.py
index 597b339cd..52795217e 100644
--- a/examples/sql/books/ui_bookwindow.py
+++ b/examples/sql/books/ui_bookwindow.py
@@ -3,21 +3,26 @@
################################################################################
## Form generated from reading UI file 'bookwindow.ui'
##
-## Created by: Qt User Interface Compiler version 5.14.0
+## Created by: Qt User Interface Compiler version 6.7.0
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
-from PySide6.QtCore import (QCoreApplication, QMetaObject, QObject, QPoint,
- QRect, QSize, QUrl, Qt)
-from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QFont,
- QFontDatabase, QIcon, QLinearGradient, QPalette, QPainter, QPixmap,
- QRadialGradient)
-from PySide6.QtWidgets import *
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
+ QFont, QFontDatabase, QGradient, QIcon,
+ QImage, QKeySequence, QLinearGradient, QPainter,
+ QPalette, QPixmap, QRadialGradient, QTransform)
+from PySide6.QtWidgets import (QAbstractItemView, QApplication, QComboBox, QFormLayout,
+ QGroupBox, QHeaderView, QLabel, QLineEdit,
+ QMainWindow, QSizePolicy, QSpinBox, QTableView,
+ QVBoxLayout, QWidget)
class Ui_BookWindow(object):
def setupUi(self, BookWindow):
- if BookWindow.objectName():
+ if not BookWindow.objectName():
BookWindow.setObjectName(u"BookWindow")
BookWindow.resize(601, 420)
self.centralWidget = QWidget(BookWindow)
@@ -127,3 +132,4 @@ class Ui_BookWindow(object):
self.yearEdit.setPrefix("")
self.label.setText(QCoreApplication.translate("BookWindow", u"<b>Rating:</b>", None))
# retranslateUi
+
diff --git a/examples/sql/relationaltablemodel/connection.py b/examples/sql/relationaltablemodel/connection.py
new file mode 100644
index 000000000..6bfc828c8
--- /dev/null
+++ b/examples/sql/relationaltablemodel/connection.py
@@ -0,0 +1,18 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the relationaltablemodel example from Qt v6.x"""
+
+
+from PySide6.QtSql import QSqlDatabase
+
+
+def createConnection():
+
+ def check(func, *args):
+ if not func(*args):
+ raise ValueError(func.__self__.lastError())
+ db = QSqlDatabase.addDatabase("QSQLITE")
+ db.setDatabaseName(":memory:")
+
+ check(db.open)
diff --git a/examples/sql/relationaltablemodel/relationaltablemodel.py b/examples/sql/relationaltablemodel/relationaltablemodel.py
new file mode 100644
index 000000000..d2efac2dc
--- /dev/null
+++ b/examples/sql/relationaltablemodel/relationaltablemodel.py
@@ -0,0 +1,77 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the relationaltablemodel example from Qt v6.x"""
+
+import sys
+
+import connection
+
+from PySide6.QtCore import QObject, Qt
+from PySide6.QtSql import (QSqlQuery, QSqlRelation, QSqlRelationalDelegate,
+ QSqlRelationalTableModel)
+from PySide6.QtWidgets import QApplication, QTableView
+
+
+def initializeModel(model):
+
+ model.setTable("employee")
+ model.setEditStrategy(QSqlRelationalTableModel.OnManualSubmit)
+ model.setRelation(2, QSqlRelation("city", "id", "name"))
+ model.setRelation(3, QSqlRelation("country", "id", "name"))
+ model.setHeaderData(0, Qt.Horizontal, QObject().tr("ID"))
+
+ model.setHeaderData(1, Qt.Horizontal, QObject().tr("Name"))
+ model.setHeaderData(2, Qt.Horizontal, QObject().tr("City"))
+ model.setHeaderData(3, Qt.Horizontal, QObject().tr("Country"))
+
+ model.select()
+
+
+def createView(title, model):
+
+ table_view = QTableView()
+ table_view.setModel(model)
+ table_view.setItemDelegate(QSqlRelationalDelegate(table_view))
+ table_view.setWindowTitle(title)
+
+ return table_view
+
+
+def createRelationalTables():
+
+ query = QSqlQuery()
+
+ query.exec("create table employee(id int primary key, name varchar(20), city int, country int)")
+ query.exec("insert into employee values(1, 'Espen', 5000, 47)")
+ query.exec("insert into employee values(2, 'Harald', 80000, 49)")
+ query.exec("insert into employee values(3, 'Sam', 100, 1)")
+
+ query.exec("create table city(id int, name varchar(20))")
+ query.exec("insert into city values(100, 'San Jose')")
+ query.exec("insert into city values(5000, 'Oslo')")
+ query.exec("insert into city values(80000, 'Munich')")
+
+ query.exec("create table country(id int, name varchar(20))")
+ query.exec("insert into country values(1, 'USA')")
+ query.exec("insert into country values(47, 'Norway')")
+ query.exec("insert into country values(49, 'Germany')")
+
+
+if __name__ == "__main__":
+ app = QApplication(sys.argv)
+
+ connection.createConnection()
+ createRelationalTables()
+
+ model = QSqlRelationalTableModel()
+
+ initializeModel(model)
+
+ title = "Relational Table Model"
+
+ window = createView(title, model)
+ window.resize(600, 200)
+ window.show()
+
+ sys.exit(app.exec())
diff --git a/examples/statemachine/moveblocks/doc/moveblocks.png b/examples/statemachine/moveblocks/doc/moveblocks.png
new file mode 100644
index 000000000..56353d181
--- /dev/null
+++ b/examples/statemachine/moveblocks/doc/moveblocks.png
Binary files differ
diff --git a/examples/statemachine/moveblocks/doc/moveblocks.rst b/examples/statemachine/moveblocks/doc/moveblocks.rst
new file mode 100644
index 000000000..4cffd3b85
--- /dev/null
+++ b/examples/statemachine/moveblocks/doc/moveblocks.rst
@@ -0,0 +1,10 @@
+Move Blocks Example
+===================
+
+The Move Blocks example shows how to animate items in a QGraphicsScene
+using a QStateMachine with a custom transition.
+
+
+.. image:: moveblocks.png
+ :width: 400
+ :alt: Move Blocks Screenshot
diff --git a/examples/statemachine/moveblocks/moveblocks.py b/examples/statemachine/moveblocks/moveblocks.py
new file mode 100644
index 000000000..0d52c5b00
--- /dev/null
+++ b/examples/statemachine/moveblocks/moveblocks.py
@@ -0,0 +1,222 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the examples/statemachine/moveblocks example from Qt v6.x"""
+
+import sys
+
+from PySide6.QtCore import (QAbstractAnimation, QEasingCurve, QEvent, QObject,
+ QParallelAnimationGroup, QPropertyAnimation,
+ QRandomGenerator, QRect, QSequentialAnimationGroup,
+ Qt, QTimer)
+from PySide6.QtGui import QPainter, QResizeEvent
+from PySide6.QtWidgets import (QApplication, QGraphicsView, QGraphicsScene,
+ QGraphicsWidget, QStyleOptionGraphicsItem,
+ QWidget)
+from PySide6.QtStateMachine import (QAbstractTransition, QState, QStateMachine)
+
+
+StateSwitchType = QEvent.Type(QEvent.Type.User + 256)
+
+
+class StateSwitchEvent(QEvent):
+ def __init__(self, rand: int = 0) -> None:
+ super().__init__(StateSwitchType)
+ self._rand = rand
+
+ def rand(self) -> int:
+ return self._rand
+
+
+class QGraphicsRectWidget(QGraphicsWidget):
+ def __init__(self):
+ super().__init__()
+
+ def paint(self, painter: QPainter,
+ option: QStyleOptionGraphicsItem, widget: QWidget | None = None):
+ painter.fillRect(self.rect(), Qt.blue)
+
+
+class StateSwitchTransition(QAbstractTransition):
+ def __init__(self, rand: int = 0) -> None:
+ super().__init__()
+ self._rand = rand
+
+ def eventTest(self, event: QEvent) -> bool:
+ return event.type() == StateSwitchType and event.rand() == self._rand
+
+ def onTransition(self, event: QEvent):
+ pass
+
+
+class StateSwitcher(QState):
+ def __init__(self, machine: QStateMachine) -> None:
+ super().__init__(machine)
+ self._state_count = 0
+ self._last_index = 0
+ self.rg = QRandomGenerator.global_()
+
+ def onEntry(self, event: QEvent) -> None:
+ while True:
+ n = int(self.rg.bounded(self._state_count)) + 1
+ if n != self._last_index:
+ break
+ self._last_index = n
+ self.event = StateSwitchEvent(n)
+ self.machine().postEvent(self.event)
+
+ def onExit(self, event: QEvent) -> None:
+ pass
+
+ def addState(self, state: QState, animation: QAbstractAnimation) -> None:
+ self._state_count += 1
+ trans = StateSwitchTransition(self._state_count)
+ trans.setTargetState(state)
+ self.addTransition(trans)
+ trans.addAnimation(animation)
+
+
+def createGeometryState(w1: QObject, rect1: QRect,
+ w2: QObject, rect2: QRect,
+ w3: QObject, rect3: QRect,
+ w4: QObject, rect4: QRect, parent: QState) -> QState:
+ result = QState(parent)
+ result.assignProperty(w1, "geometry", rect1)
+ result.assignProperty(w2, "geometry", rect2)
+ result.assignProperty(w3, "geometry", rect3)
+ result.assignProperty(w4, "geometry", rect4)
+
+ return result
+
+
+class GraphicsView(QGraphicsView):
+ def __init__(self, scene: QGraphicsScene, parent: QWidget | None = None):
+ super().__init__(scene, parent)
+
+ def resizeEvent(self, event: QResizeEvent) -> None:
+ self.fitInView(self.sceneRect())
+ super().resizeEvent(event)
+
+
+if __name__ == '__main__':
+ app = QApplication(sys.argv)
+
+ button1, button2 = QGraphicsRectWidget(), QGraphicsRectWidget()
+ button3, button4 = QGraphicsRectWidget(), QGraphicsRectWidget()
+
+ button2.setZValue(1)
+ button3.setZValue(2)
+ button4.setZValue(3)
+
+ scene = QGraphicsScene(0, 0, 300, 300)
+ scene.setBackgroundBrush(Qt.black)
+ scene.addItem(button1)
+ scene.addItem(button2)
+ scene.addItem(button3)
+ scene.addItem(button4)
+
+ window = GraphicsView(scene)
+ window.setFrameStyle(0)
+ window.setAlignment(Qt.AlignLeft | Qt.AlignTop)
+ window.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
+ window.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
+
+ machine = QStateMachine()
+
+ group = QState()
+ group.setObjectName("group")
+ timer = QTimer()
+ timer.setInterval(1250)
+ timer.setSingleShot(True)
+
+ group.entered.connect(timer.start)
+
+ state1, state2, state3 = QState(), QState(), QState()
+ state4, state5, state6 = QState(), QState(), QState()
+ state7 = QState()
+
+ state1 = createGeometryState(button1, QRect(100, 0, 50, 50),
+ button2, QRect(150, 0, 50, 50),
+ button3, QRect(200, 0, 50, 50),
+ button4, QRect(250, 0, 50, 50),
+ group)
+ state2 = createGeometryState(button1, QRect(250, 100, 50, 50),
+ button2, QRect(250, 150, 50, 50),
+ button3, QRect(250, 200, 50, 50),
+ button4, QRect(250, 250, 50, 50),
+ group)
+ state3 = createGeometryState(button1, QRect(150, 250, 50, 50),
+ button2, QRect(100, 250, 50, 50),
+ button3, QRect(50, 250, 50, 50),
+ button4, QRect(0, 250, 50, 50),
+ group)
+ state4 = createGeometryState(button1, QRect(0, 150, 50, 50),
+ button2, QRect(0, 100, 50, 50),
+ button3, QRect(0, 50, 50, 50),
+ button4, QRect(0, 0, 50, 50),
+ group)
+ state5 = createGeometryState(button1, QRect(100, 100, 50, 50),
+ button2, QRect(150, 100, 50, 50),
+ button3, QRect(100, 150, 50, 50),
+ button4, QRect(150, 150, 50, 50),
+ group)
+ state6 = createGeometryState(button1, QRect(50, 50, 50, 50),
+ button2, QRect(200, 50, 50, 50),
+ button3, QRect(50, 200, 50, 50),
+ button4, QRect(200, 200, 50, 50),
+ group)
+ state7 = createGeometryState(button1, QRect(0, 0, 50, 50),
+ button2, QRect(250, 0, 50, 50),
+ button3, QRect(0, 250, 50, 50),
+ button4, QRect(250, 250, 50, 50),
+ group)
+ group.setInitialState(state1)
+
+ animation_group = QParallelAnimationGroup()
+ sub_group = QSequentialAnimationGroup()
+
+ anim = QPropertyAnimation(button4, b"geometry")
+ anim.setDuration(1000)
+ anim.setEasingCurve(QEasingCurve.OutElastic)
+ animation_group.addAnimation(anim)
+
+ sub_group = QSequentialAnimationGroup(animation_group)
+ sub_group.addPause(100)
+ anim = QPropertyAnimation(button3, b"geometry")
+ anim.setDuration(1000)
+ anim.setEasingCurve(QEasingCurve.OutElastic)
+ sub_group.addAnimation(anim)
+
+ sub_group = QSequentialAnimationGroup(animation_group)
+ sub_group.addPause(150)
+ anim = QPropertyAnimation(button2, b"geometry")
+ anim.setDuration(1000)
+ anim.setEasingCurve(QEasingCurve.OutElastic)
+ sub_group.addAnimation(anim)
+
+ sub_group = QSequentialAnimationGroup(animation_group)
+ sub_group.addPause(200)
+ anim = QPropertyAnimation(button1, b"geometry")
+ anim.setDuration(1000)
+ anim.setEasingCurve(QEasingCurve.OutElastic)
+ sub_group.addAnimation(anim)
+
+ state_switcher = StateSwitcher(machine)
+ state_switcher.setObjectName("state_switcher")
+ group.addTransition(timer.timeout, state_switcher)
+ state_switcher.addState(state1, animation_group)
+ state_switcher.addState(state2, animation_group)
+ state_switcher.addState(state3, animation_group)
+ state_switcher.addState(state4, animation_group)
+ state_switcher.addState(state5, animation_group)
+ state_switcher.addState(state6, animation_group)
+ state_switcher.addState(state7, animation_group)
+
+ machine.addState(group)
+ machine.setInitialState(group)
+ machine.start()
+
+ window.resize(300, 300)
+ window.show()
+
+ sys.exit(app.exec())
diff --git a/examples/statemachine/moveblocks/moveblocks.pyproject b/examples/statemachine/moveblocks/moveblocks.pyproject
new file mode 100644
index 000000000..8c3eff508
--- /dev/null
+++ b/examples/statemachine/moveblocks/moveblocks.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["moveblocks.py"]
+}
diff --git a/examples/statemachine/ping_pong/ping_pong.py b/examples/statemachine/ping_pong/ping_pong.py
new file mode 100644
index 000000000..d5c18eb28
--- /dev/null
+++ b/examples/statemachine/ping_pong/ping_pong.py
@@ -0,0 +1,70 @@
+# Copyright (C) 2010 velociraptor Genjix <aphidia@hotmail.com>
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from PySide6.QtCore import QCoreApplication, QEvent
+from PySide6.QtStateMachine import QAbstractTransition, QState, QStateMachine
+
+
+class PingEvent(QEvent):
+ def __init__(self):
+ super().__init__(QEvent.Type(QEvent.User + 2))
+
+
+class PongEvent(QEvent):
+ def __init__(self):
+ super().__init__(QEvent.Type(QEvent.User + 3))
+
+
+class Pinger(QState):
+ def __init__(self, parent):
+ super().__init__(parent)
+
+ def onEntry(self, e):
+ self.p = PingEvent()
+ self.machine().postEvent(self.p)
+ print('ping?')
+
+
+class PongTransition(QAbstractTransition):
+ def eventTest(self, e):
+ return e.type() == QEvent.User + 3
+
+ def onTransition(self, e):
+ self.p = PingEvent()
+ machine.postDelayedEvent(self.p, 500)
+ print('ping?')
+
+
+class PingTransition(QAbstractTransition):
+ def eventTest(self, e):
+ return e.type() == QEvent.User + 2
+
+ def onTransition(self, e):
+ self.p = PongEvent()
+ machine.postDelayedEvent(self.p, 500)
+ print('pong!')
+
+
+if __name__ == '__main__':
+ app = QCoreApplication(sys.argv)
+
+ machine = QStateMachine()
+ group = QState(QState.ParallelStates)
+ group.setObjectName('group')
+
+ pinger = Pinger(group)
+ pinger.setObjectName('pinger')
+ pinger.addTransition(PongTransition())
+
+ ponger = QState(group)
+ ponger.setObjectName('ponger')
+ ponger.addTransition(PingTransition())
+
+ machine.addState(group)
+ machine.setInitialState(group)
+ machine.start()
+
+ sys.exit(app.exec())
diff --git a/examples/statemachine/ping_pong/ping_pong.pyproject b/examples/statemachine/ping_pong/ping_pong.pyproject
new file mode 100644
index 000000000..7fb430352
--- /dev/null
+++ b/examples/statemachine/ping_pong/ping_pong.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["ping_pong.py"]
+}
diff --git a/examples/statemachine/rogue/rogue.py b/examples/statemachine/rogue/rogue.py
new file mode 100644
index 000000000..f0ce9c28c
--- /dev/null
+++ b/examples/statemachine/rogue/rogue.py
@@ -0,0 +1,179 @@
+# Copyright (C) 2010 velociraptor Genjix <aphidia@hotmail.com>
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from PySide6.QtCore import (QEvent, QPoint, QRandomGenerator, QSize, Qt,
+ Property)
+from PySide6.QtGui import QFont, QFontMetrics, QFontDatabase, QPainter
+from PySide6.QtWidgets import QApplication, QMainWindow
+from PySide6.QtStateMachine import (QEventTransition, QFinalState,
+ QKeyEventTransition, QState, QStateMachine)
+
+
+class MovementTransition(QEventTransition):
+ def __init__(self, window):
+ super().__init__(window, QEvent.KeyPress)
+ self.window = window
+
+ def eventTest(self, event):
+ if (event.type() == QEvent.StateMachineWrapped
+ and event.event().type() == QEvent.KeyPress):
+ key = event.event().key()
+ return (key == Qt.Key_2 or key == Qt.Key_8
+ or key == Qt.Key_6 or key == Qt.Key_4)
+ return False
+
+ def onTransition(self, event):
+ key = event.event().key()
+ if key == Qt.Key_4:
+ self.window.move_player(self.window.left)
+ if key == Qt.Key_8:
+ self.window.move_player(self.window.Up)
+ if key == Qt.Key_6:
+ self.window.move_player(self.window.right)
+ if key == Qt.Key_2:
+ self.window.move_player(self.window.down)
+
+
+class Custom(QState):
+ def __init__(self, parent, mw):
+ super().__init__(parent)
+ self.mw = mw
+
+ def onEntry(self, e):
+ print(self.mw.status)
+
+
+class MainWindow(QMainWindow):
+ def __init__(self):
+ super().__init__()
+ self.pX = 5
+ self.pY = 5
+ self.width = 35
+ self.height = 20
+ self._status_str = ''
+
+ font = QFont()
+ if 'Monospace' in QFontDatabase.families():
+ font = QFont('Monospace', 12)
+ else:
+ for family in QFontDatabase.families():
+ if QFontDatabase.isFixedPitch(family):
+ font = QFont(family, 12)
+ self.setFont(font)
+
+ self.setup_map()
+ self.build_machine()
+ self.show()
+
+ def setup_map(self):
+ self.map = []
+ generator = QRandomGenerator().global_()
+ for x in range(self.width):
+ column = []
+ for y in range(self.height):
+ if (x == 0 or x == self.width - 1 or y == 0
+ or y == self.height - 1 or generator.bounded(0, 40) == 0):
+ column.append('#')
+ else:
+ column.append('.')
+ self.map.append(column)
+
+ def build_machine(self):
+ machine = QStateMachine(self)
+
+ input_state = Custom(machine, self)
+ # this line sets the status
+ self.status = 'hello!'
+ # however this line does not
+ input_state.assignProperty(self, 'status', 'Move the rogue with 2, 4, 6, and 8')
+
+ machine.setInitialState(input_state)
+ machine.start()
+
+ transition = MovementTransition(self)
+ input_state.addTransition(transition)
+
+ quit_state = QState(machine)
+ quit_state.assignProperty(self, 'status', 'Really quit(y/n)?')
+
+ yes_transition = QKeyEventTransition(self, QEvent.KeyPress, Qt.Key_Y)
+ self._final_state = QFinalState(machine)
+ yes_transition.setTargetState(self._final_state)
+ quit_state.addTransition(yes_transition)
+
+ no_transition = QKeyEventTransition(self, QEvent.KeyPress, Qt.Key_N)
+ no_transition.setTargetState(input_state)
+ quit_state.addTransition(no_transition)
+
+ quit_transition = QKeyEventTransition(self, QEvent.KeyPress, Qt.Key_Q)
+ quit_transition.setTargetState(quit_state)
+ input_state.addTransition(quit_transition)
+
+ machine.setInitialState(input_state)
+ machine.finished.connect(qApp.quit) # noqa: F821
+ machine.start()
+
+ def sizeHint(self):
+ metrics = QFontMetrics(self.font())
+ return QSize(metrics.horizontalAdvance('X') * self.width,
+ metrics.height() * (self.height + 1))
+
+ def paintEvent(self, event):
+ metrics = QFontMetrics(self.font())
+ with QPainter(self) as painter:
+ font_height = metrics.height()
+ font_width = metrics.horizontalAdvance('X')
+
+ painter.fillRect(self.rect(), Qt.black)
+ painter.setPen(Qt.white)
+
+ y_pos = font_height
+ painter.drawText(QPoint(0, y_pos), self.status)
+ for y in range(self.height):
+ y_pos += font_height
+ x_pos = 0
+ for x in range(self.width):
+ if y == self.pY and x == self.pX:
+ x_pos += font_width
+ continue
+ painter.drawText(QPoint(x_pos, y_pos), self.map[x][y])
+ x_pos += font_width
+ painter.drawText(QPoint(self.pX * font_width, (self.pY + 2) * font_height), '@')
+
+ def move_player(self, direction):
+ if direction == self.left:
+ if self.map[self.pX - 1][self.pY] != '#':
+ self.pX -= 1
+ elif direction == self.right:
+ if self.map[self.pX + 1][self.pY] != '#':
+ self.pX += 1
+ elif direction == self.Up:
+ if self.map[self.pX][self.pY - 1] != '#':
+ self.pY -= 1
+ elif direction == self.down:
+ if self.map[self.pX][self.pY + 1] != '#':
+ self.pY += 1
+ self.repaint()
+
+ def get_status(self):
+ return self._status_str
+
+ def set_status(self, status):
+ self._status_str = status
+ self.repaint()
+ status = Property(str, get_status, set_status)
+ Up = 0
+ down = 1
+ left = 2
+ right = 3
+ width = 35
+ height = 20
+
+
+if __name__ == '__main__':
+ app = QApplication(sys.argv)
+ main_win = MainWindow()
+ sys.exit(app.exec())
diff --git a/examples/widgets/state-machine/rogue/rogue.pyproject b/examples/statemachine/rogue/rogue.pyproject
index b8baf9802..b8baf9802 100644
--- a/examples/widgets/state-machine/rogue/rogue.pyproject
+++ b/examples/statemachine/rogue/rogue.pyproject
diff --git a/examples/statemachine/trafficlight/doc/trafficlight.png b/examples/statemachine/trafficlight/doc/trafficlight.png
new file mode 100644
index 000000000..24d40beec
--- /dev/null
+++ b/examples/statemachine/trafficlight/doc/trafficlight.png
Binary files differ
diff --git a/examples/widgets/state-machine/trafficlight/doc/trafficlight.rst b/examples/statemachine/trafficlight/doc/trafficlight.rst
index 57d369465..57d369465 100644
--- a/examples/widgets/state-machine/trafficlight/doc/trafficlight.rst
+++ b/examples/statemachine/trafficlight/doc/trafficlight.rst
diff --git a/examples/statemachine/trafficlight/trafficlight.py b/examples/statemachine/trafficlight/trafficlight.py
new file mode 100644
index 000000000..1e58384f9
--- /dev/null
+++ b/examples/statemachine/trafficlight/trafficlight.py
@@ -0,0 +1,117 @@
+# Copyright (C) 2010 velociraptor Genjix <aphidia@hotmail.com>
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from PySide6.QtCore import QTimer, Qt, Property, Slot
+from PySide6.QtGui import QPainter, QPalette
+from PySide6.QtWidgets import QApplication, QVBoxLayout, QWidget
+from PySide6.QtStateMachine import QFinalState, QState, QStateMachine
+
+
+class LightWidget(QWidget):
+ def __init__(self, color):
+ super().__init__()
+ self.color = color
+ self._on_val = False
+
+ def is_on(self):
+ return self._on_val
+
+ def set_on(self, on):
+ if self._on_val == on:
+ return
+ self._on_val = on
+ self.update()
+
+ @Slot()
+ def turn_off(self):
+ self.set_on(False)
+
+ @Slot()
+ def turn_on(self):
+ self.set_on(True)
+
+ def paintEvent(self, e):
+ if not self._on_val:
+ return
+ with QPainter(self) as painter:
+ painter.setRenderHint(QPainter.Antialiasing)
+ painter.setBrush(self.color)
+ painter.drawEllipse(0, 0, self.width(), self.height())
+
+ on = Property(bool, is_on, set_on)
+
+
+class TrafficLightWidget(QWidget):
+ def __init__(self):
+ super().__init__()
+ vbox = QVBoxLayout(self)
+ self._red_light = LightWidget(Qt.red)
+ vbox.addWidget(self._red_light)
+ self._yellow_light = LightWidget(Qt.yellow)
+ vbox.addWidget(self._yellow_light)
+ self._green_light = LightWidget(Qt.green)
+ vbox.addWidget(self._green_light)
+ pal = QPalette()
+ pal.setColor(QPalette.Window, Qt.black)
+ self.setPalette(pal)
+ self.setAutoFillBackground(True)
+
+
+def create_light_state(light, duration, parent=None):
+ light_state = QState(parent)
+ timer = QTimer(light_state)
+ timer.setInterval(duration)
+ timer.setSingleShot(True)
+ timing = QState(light_state)
+ timing.entered.connect(light.turn_on)
+ timing.entered.connect(timer.start)
+ timing.exited.connect(light.turn_off)
+ done = QFinalState(light_state)
+ timing.addTransition(timer.timeout, done)
+ light_state.setInitialState(timing)
+ return light_state
+
+
+class TrafficLight(QWidget):
+ def __init__(self):
+ super().__init__()
+ vbox = QVBoxLayout(self)
+ widget = TrafficLightWidget()
+ vbox.addWidget(widget)
+ vbox.setContentsMargins(0, 0, 0, 0)
+
+ machine = QStateMachine(self)
+ red_going_yellow = create_light_state(widget._red_light, 1000)
+ red_going_yellow.setObjectName('redGoingYellow')
+ yellow_going_green = create_light_state(widget._red_light, 1000)
+ yellow_going_green.setObjectName('yellowGoingGreen')
+ red_going_yellow.addTransition(red_going_yellow.finished,
+ yellow_going_green)
+ green_going_yellow = create_light_state(widget._yellow_light, 3000)
+ green_going_yellow.setObjectName('greenGoingYellow')
+ yellow_going_green.addTransition(yellow_going_green.finished,
+ green_going_yellow)
+ yellow_going_red = create_light_state(widget._green_light, 1000)
+ yellow_going_red.setObjectName('yellowGoingRed')
+ green_going_yellow.addTransition(green_going_yellow.finished,
+ yellow_going_red)
+ yellow_going_red.addTransition(yellow_going_red.finished,
+ red_going_yellow)
+
+ machine.addState(red_going_yellow)
+ machine.addState(yellow_going_green)
+ machine.addState(green_going_yellow)
+ machine.addState(yellow_going_red)
+ machine.setInitialState(red_going_yellow)
+ machine.start()
+
+
+if __name__ == '__main__':
+ app = QApplication(sys.argv)
+ widget = TrafficLight()
+ widget.resize(110, 300)
+ widget.show()
+ sys.exit(app.exec())
diff --git a/examples/widgets/state-machine/trafficlight/trafficlight.pyproject b/examples/statemachine/trafficlight/trafficlight.pyproject
index 912472693..912472693 100644
--- a/examples/widgets/state-machine/trafficlight/trafficlight.pyproject
+++ b/examples/statemachine/trafficlight/trafficlight.pyproject
diff --git a/examples/texttospeech/hello_speak/hello_speak.py b/examples/texttospeech/hello_speak/hello_speak.py
deleted file mode 100644
index 98be4f0c6..000000000
--- a/examples/texttospeech/hello_speak/hello_speak.py
+++ /dev/null
@@ -1,109 +0,0 @@
-
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-"""PySide6 QTextToSpeech example"""
-
-import sys
-from PySide6.QtCore import Qt
-from PySide6.QtWidgets import (QApplication, QComboBox, QFormLayout,
- QHBoxLayout, QLineEdit, QMainWindow, QPushButton, QSlider, QWidget)
-
-from PySide6.QtTextToSpeech import QTextToSpeech
-
-
-class MainWindow(QMainWindow):
- def __init__(self):
- super().__init__()
-
- centralWidget = QWidget()
- self.setCentralWidget(centralWidget)
- layout = QFormLayout(centralWidget)
-
- textLayout = QHBoxLayout()
- self.text = QLineEdit('Hello, PySide6')
- self.text.setClearButtonEnabled(True)
- textLayout.addWidget(self.text)
- self.sayButton = QPushButton('Say')
- textLayout.addWidget(self.sayButton)
- self.text.returnPressed.connect(self.sayButton.animateClick)
- self.sayButton.clicked.connect(self.say)
- layout.addRow('Text:', textLayout)
-
- self.voiceCombo = QComboBox()
- layout.addRow('Voice:', self.voiceCombo)
-
- self.volumeSlider = QSlider(Qt.Horizontal)
- self.volumeSlider.setMinimum(0)
- self.volumeSlider.setMaximum(100)
- self.volumeSlider.setValue(100)
- layout.addRow('Volume:', self.volumeSlider)
-
- self.engine = None
- engineNames = QTextToSpeech.availableEngines()
- if len(engineNames) > 0:
- engineName = engineNames[0]
- self.engine = QTextToSpeech(engineName)
- self.engine.stateChanged.connect(self.stateChanged)
- self.setWindowTitle(f'QTextToSpeech Example ({engineName})')
- self.voices = []
- for voice in self.engine.availableVoices():
- self.voices.append(voice)
- self.voiceCombo.addItem(voice.name())
- else:
- self.setWindowTitle('QTextToSpeech Example (no engines available)')
- self.sayButton.setEnabled(False)
-
- def say(self):
- self.sayButton.setEnabled(False)
- self.engine.setVoice(self.voices[self.voiceCombo.currentIndex()])
- self.engine.setVolume(float(self.volumeSlider.value()) / 100)
- self.engine.say(self.text.text())
-
- def stateChanged(self, state):
- if (state == QTextToSpeech.State.Ready):
- self.sayButton.setEnabled(True)
-
-
-if __name__ == '__main__':
- app = QApplication(sys.argv)
- mainWin = MainWindow()
- mainWin.show()
- sys.exit(app.exec())
diff --git a/examples/texttospeech/hello_speak/hello_speak.pyproject b/examples/texttospeech/hello_speak/hello_speak.pyproject
deleted file mode 100644
index 15b9b8529..000000000
--- a/examples/texttospeech/hello_speak/hello_speak.pyproject
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "files": ["hello_speak.py"]
-}
diff --git a/examples/uitools/uiloader/uiloader.py b/examples/uitools/uiloader/uiloader.py
index bb48d2aa1..265c93837 100644
--- a/examples/uitools/uiloader/uiloader.py
+++ b/examples/uitools/uiloader/uiloader.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""QUiLoader example, showing how to dynamically load a Qt Designer form
from a UI file."""
@@ -44,8 +7,8 @@
from argparse import ArgumentParser, RawTextHelpFormatter
import sys
-from PySide6.QtCore import Qt, QFile, QIODevice
-from PySide6.QtWidgets import QApplication, QWidget
+from PySide6.QtCore import QFile, QIODevice
+from PySide6.QtWidgets import QApplication
from PySide6.QtUiTools import QUiLoader
diff --git a/examples/utils/pyside_config.py b/examples/utils/pyside_config.py
index 02d4a5da2..d3067eec1 100644
--- a/examples/utils/pyside_config.py
+++ b/examples/utils/pyside_config.py
@@ -1,44 +1,7 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-from distutils import sysconfig
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sysconfig
from enum import Enum
import glob
import os
@@ -115,10 +78,12 @@ options.append(("--shiboken-module-shared-libraries-cmake",
options.append(("--pyside-shared-libraries-qmake",
lambda: get_shared_libraries_qmake(Package.PYSIDE_MODULE), pyside_libs_error,
- "Print paths of f{PYSIDE_MODULE} shared libraries (.so's, .dylib's, .dll's) for qmake"))
+ "Print paths of f{PYSIDE_MODULE} shared libraries (.so's, .dylib's, .dll's) "
+ "for qmake"))
options.append(("--pyside-shared-libraries-cmake",
lambda: get_shared_libraries_cmake(Package.PYSIDE_MODULE), pyside_libs_error,
- f"Print paths of {PYSIDE_MODULE} shared libraries (.so's, .dylib's, .dll's) for cmake"))
+ f"Print paths of {PYSIDE_MODULE} shared libraries (.so's, .dylib's, .dll's) "
+ "for cmake"))
options_usage = ''
for i, (flag, _, _, description) in enumerate(options):
@@ -190,11 +155,11 @@ def link_option(lib):
# libraries when compiling the project
baseName = os.path.basename(lib)
link = ' -l'
- if sys.platform in ['linux', 'linux2']: # Linux: 'libfoo.so' -> '/absolute/path/libfoo.so'
+ if sys.platform in ['linux', 'linux2']: # Linux: 'libfoo.so' -> '/absolute/path/libfoo.so'
link = lib
- elif sys.platform in ['darwin']: # Darwin: 'libfoo.so' -> '-lfoo'
+ elif sys.platform in ['darwin']: # Darwin: 'libfoo.so' -> '-lfoo'
link += os.path.splitext(baseName[3:])[0]
- else: # Windows: 'libfoo.dll' -> 'libfoo.dll'
+ else: # Windows: 'libfoo.dll' -> 'libfoo.dll'
link += os.path.splitext(baseName)[0]
return link
@@ -231,13 +196,13 @@ def find_package_path(dir_name):
return None
-# Return version as "3.6"
+# Return version as "x.y" (e.g. 3.9, 3.12, etc)
def python_version():
return str(sys.version_info[0]) + '.' + str(sys.version_info[1])
def get_python_include_path():
- return sysconfig.get_python_inc()
+ return sysconfig.get_path('include')
def python_link_flags_qmake():
@@ -249,7 +214,7 @@ def python_link_flags_qmake():
# e.g.: "Program Files" to "Progra~1"
for d in libdir.split("\\"):
if " " in d:
- libdir = libdir.replace(d, d.split(" ")[0][:-1]+"~1")
+ libdir = libdir.replace(d, d.split(" ")[0][:-1] + "~1")
lib_flags = flags['lib']
return f'-L{libdir} -l{lib_flags}'
elif sys.platform == 'darwin':
diff --git a/examples/webchannel/standalone/core.py b/examples/webchannel/standalone/core.py
index d9b4bd20b..2d0cb0286 100644
--- a/examples/webchannel/standalone/core.py
+++ b/examples/webchannel/standalone/core.py
@@ -1,43 +1,6 @@
-#############################################################################
-##
-## Copyright (C) 2017 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Milian Wolff <milian.wolff@kdab.com>
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2017 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Milian Wolff <milian.wolff@kdab.com>
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from PySide6.QtCore import QObject, Signal, Slot
diff --git a/examples/webchannel/standalone/dialog.py b/examples/webchannel/standalone/dialog.py
index 6f7cc842e..7f2413e6c 100644
--- a/examples/webchannel/standalone/dialog.py
+++ b/examples/webchannel/standalone/dialog.py
@@ -1,43 +1,6 @@
-#############################################################################
-##
-## Copyright (C) 2017 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Milian Wolff <milian.wolff@kdab.com>
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2017 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Milian Wolff <milian.wolff@kdab.com>
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from PySide6.QtCore import Signal, Slot
diff --git a/examples/webchannel/standalone/main.py b/examples/webchannel/standalone/main.py
index cd55a3814..8c04aa64f 100644
--- a/examples/webchannel/standalone/main.py
+++ b/examples/webchannel/standalone/main.py
@@ -1,43 +1,6 @@
-#############################################################################
-##
-## Copyright (C) 2016 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Milian Wolff <milian.wolff@kdab.com>
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2016 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Milian Wolff <milian.wolff@kdab.com>
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import os
diff --git a/examples/webchannel/standalone/ui_dialog.py b/examples/webchannel/standalone/ui_dialog.py
index 0cbcd96e2..36c2fe400 100644
--- a/examples/webchannel/standalone/ui_dialog.py
+++ b/examples/webchannel/standalone/ui_dialog.py
@@ -3,18 +3,20 @@
################################################################################
## Form generated from reading UI file 'dialog.ui'
##
-## Created by: Qt User Interface Compiler version 5.14.1
+## Created by: Qt User Interface Compiler version 6.7.0
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
-from PySide6.QtCore import (QCoreApplication, QMetaObject, QObject, QPoint,
- QRect, QSize, QUrl, Qt)
-from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor, QFont,
- QFontDatabase, QIcon, QLinearGradient, QPalette, QPainter, QPixmap,
- QRadialGradient)
-from PySide6.QtWidgets import *
-
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
+ QFont, QFontDatabase, QGradient, QIcon,
+ QImage, QKeySequence, QLinearGradient, QPainter,
+ QPalette, QPixmap, QRadialGradient, QTransform)
+from PySide6.QtWidgets import (QApplication, QDialog, QGridLayout, QLineEdit,
+ QPlainTextEdit, QPushButton, QSizePolicy, QWidget)
class Ui_Dialog(object):
def setupUi(self, Dialog):
@@ -41,6 +43,7 @@ class Ui_Dialog(object):
self.gridLayout.addWidget(self.output, 0, 0, 1, 2)
+
self.retranslateUi(Dialog)
QMetaObject.connectSlotsByName(Dialog)
diff --git a/examples/webchannel/standalone/websocketclientwrapper.py b/examples/webchannel/standalone/websocketclientwrapper.py
index f8a196b49..00b410891 100644
--- a/examples/webchannel/standalone/websocketclientwrapper.py
+++ b/examples/webchannel/standalone/websocketclientwrapper.py
@@ -1,43 +1,6 @@
-#############################################################################
-##
-## Copyright (C) 2017 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Milian Wolff <milian.wolff@kdab.com>
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2017 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Milian Wolff <milian.wolff@kdab.com>
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from PySide6.QtCore import QObject, Signal, Slot
diff --git a/examples/webchannel/standalone/websockettransport.py b/examples/webchannel/standalone/websockettransport.py
index e006ba1ca..ab60e8448 100644
--- a/examples/webchannel/standalone/websockettransport.py
+++ b/examples/webchannel/standalone/websockettransport.py
@@ -1,43 +1,6 @@
-#############################################################################
-##
-## Copyright (C) 2017 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Milian Wolff <milian.wolff@kdab.com>
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2017 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Milian Wolff <milian.wolff@kdab.com>
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from PySide6.QtWebChannel import QWebChannelAbstractTransport
from PySide6.QtCore import QByteArray, QJsonDocument, Slot
diff --git a/examples/webenginequick/nanobrowser/ApplicationRoot.qml b/examples/webenginequick/nanobrowser/ApplicationRoot.qml
new file mode 100644
index 000000000..55c414409
--- /dev/null
+++ b/examples/webenginequick/nanobrowser/ApplicationRoot.qml
@@ -0,0 +1,40 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtWebEngine
+
+QtObject {
+ id: root
+
+ property QtObject defaultProfile: WebEngineProfile {
+ storageName: "Profile"
+ offTheRecord: false
+ }
+
+ property QtObject otrProfile: WebEngineProfile {
+ offTheRecord: true
+ }
+
+ property Component browserWindowComponent: BrowserWindow {
+ applicationRoot: root
+ }
+ property Component browserDialogComponent: BrowserDialog {
+ onClosing: destroy()
+ }
+ function createWindow(profile) {
+ var newWindow = browserWindowComponent.createObject(root);
+ newWindow.currentWebView.profile = profile;
+ profile.downloadRequested.connect(newWindow.onDownloadRequested);
+ return newWindow;
+ }
+ function createDialog(profile) {
+ var newDialog = browserDialogComponent.createObject(root);
+ newDialog.currentWebView.profile = profile;
+ return newDialog;
+ }
+ function load(url) {
+ var browserWindow = createWindow(defaultProfile);
+ browserWindow.currentWebView.url = url;
+ }
+}
diff --git a/examples/webenginequick/nanobrowser/BrowserDialog.qml b/examples/webenginequick/nanobrowser/BrowserDialog.qml
new file mode 100644
index 000000000..7af347ec3
--- /dev/null
+++ b/examples/webenginequick/nanobrowser/BrowserDialog.qml
@@ -0,0 +1,27 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Window
+import QtWebEngine
+
+Window {
+ id: window
+ property alias currentWebView: webView
+ flags: Qt.Dialog
+ width: 800
+ height: 600
+ visible: true
+ onClosing: destroy()
+ WebEngineView {
+ id: webView
+ anchors.fill: parent
+
+ onGeometryChangeRequested: function(geometry) {
+ window.x = geometry.x
+ window.y = geometry.y
+ window.width = geometry.width
+ window.height = geometry.height
+ }
+ }
+}
diff --git a/examples/webenginequick/nanobrowser/BrowserWindow.qml b/examples/webenginequick/nanobrowser/BrowserWindow.qml
new file mode 100644
index 000000000..a517c5a51
--- /dev/null
+++ b/examples/webenginequick/nanobrowser/BrowserWindow.qml
@@ -0,0 +1,817 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtCore
+import QtQml
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import QtQuick.Window
+import QtWebEngine
+import BrowserUtils
+
+ApplicationWindow {
+ id: browserWindow
+ property QtObject applicationRoot
+ property Item currentWebView: tabBar.currentIndex < tabBar.count ? tabLayout.children[tabBar.currentIndex] : null
+ property int previousVisibility: Window.Windowed
+ property int createdTabs: 0
+
+ width: 1300
+ height: 900
+ visible: true
+ title: currentWebView && currentWebView.title
+
+ // Make sure the Qt.WindowFullscreenButtonHint is set on OS X.
+ Component.onCompleted: flags = flags | Qt.WindowFullscreenButtonHint
+
+ onCurrentWebViewChanged: {
+ findBar.reset();
+ }
+
+ // When using style "mac", ToolButtons are not supposed to accept focus.
+ property bool platformIsMac: Qt.platform.os == "osx"
+
+ Settings {
+ id : appSettings
+ property alias autoLoadImages: loadImages.checked
+ property alias javaScriptEnabled: javaScriptEnabled.checked
+ property alias errorPageEnabled: errorPageEnabled.checked
+ property alias pluginsEnabled: pluginsEnabled.checked
+ property alias fullScreenSupportEnabled: fullScreenSupportEnabled.checked
+ property alias autoLoadIconsForPage: autoLoadIconsForPage.checked
+ property alias touchIconsEnabled: touchIconsEnabled.checked
+ property alias webRTCPublicInterfacesOnly : webRTCPublicInterfacesOnly.checked
+ property alias devToolsEnabled: devToolsEnabled.checked
+ property alias pdfViewerEnabled: pdfViewerEnabled.checked
+ }
+
+ Action {
+ shortcut: "Ctrl+D"
+ onTriggered: {
+ downloadView.visible = !downloadView.visible;
+ }
+ }
+ Action {
+ id: focus
+ shortcut: "Ctrl+L"
+ onTriggered: {
+ addressBar.forceActiveFocus();
+ addressBar.selectAll();
+ }
+ }
+ Action {
+ shortcut: StandardKey.Refresh
+ onTriggered: {
+ if (currentWebView)
+ currentWebView.reload();
+ }
+ }
+ Action {
+ shortcut: StandardKey.AddTab
+ onTriggered: {
+ tabBar.createTab(tabBar.count != 0 ? currentWebView.profile : defaultProfile);
+ addressBar.forceActiveFocus();
+ addressBar.selectAll();
+ }
+ }
+ Action {
+ shortcut: StandardKey.Close
+ onTriggered: {
+ currentWebView.triggerWebAction(WebEngineView.RequestClose);
+ }
+ }
+ Action {
+ shortcut: StandardKey.Quit
+ onTriggered: browserWindow.close()
+ }
+ Action {
+ shortcut: "Escape"
+ onTriggered: {
+ if (currentWebView.state == "FullScreen") {
+ browserWindow.visibility = browserWindow.previousVisibility;
+ fullScreenNotification.hide();
+ currentWebView.triggerWebAction(WebEngineView.ExitFullScreen);
+ }
+
+ if (findBar.visible)
+ findBar.visible = false;
+ }
+ }
+ Action {
+ shortcut: "Ctrl+0"
+ onTriggered: currentWebView.zoomFactor = 1.0
+ }
+ Action {
+ shortcut: StandardKey.ZoomOut
+ onTriggered: currentWebView.zoomFactor -= 0.1
+ }
+ Action {
+ shortcut: StandardKey.ZoomIn
+ onTriggered: currentWebView.zoomFactor += 0.1
+ }
+
+ Action {
+ shortcut: StandardKey.Copy
+ onTriggered: currentWebView.triggerWebAction(WebEngineView.Copy)
+ }
+ Action {
+ shortcut: StandardKey.Cut
+ onTriggered: currentWebView.triggerWebAction(WebEngineView.Cut)
+ }
+ Action {
+ shortcut: StandardKey.Paste
+ onTriggered: currentWebView.triggerWebAction(WebEngineView.Paste)
+ }
+ Action {
+ shortcut: "Shift+"+StandardKey.Paste
+ onTriggered: currentWebView.triggerWebAction(WebEngineView.PasteAndMatchStyle)
+ }
+ Action {
+ shortcut: StandardKey.SelectAll
+ onTriggered: currentWebView.triggerWebAction(WebEngineView.SelectAll)
+ }
+ Action {
+ shortcut: StandardKey.Undo
+ onTriggered: currentWebView.triggerWebAction(WebEngineView.Undo)
+ }
+ Action {
+ shortcut: StandardKey.Redo
+ onTriggered: currentWebView.triggerWebAction(WebEngineView.Redo)
+ }
+ Action {
+ shortcut: StandardKey.Back
+ onTriggered: currentWebView.triggerWebAction(WebEngineView.Back)
+ }
+ Action {
+ shortcut: StandardKey.Forward
+ onTriggered: currentWebView.triggerWebAction(WebEngineView.Forward)
+ }
+ Action {
+ shortcut: StandardKey.Find
+ onTriggered: {
+ if (!findBar.visible)
+ findBar.visible = true;
+ }
+ }
+ Action {
+ shortcut: StandardKey.FindNext
+ onTriggered: findBar.findNext()
+ }
+ Action {
+ shortcut: StandardKey.FindPrevious
+ onTriggered: findBar.findPrevious()
+ }
+
+ menuBar: ToolBar {
+ id: navigationBar
+ RowLayout {
+ anchors.fill: parent
+ ToolButton {
+ enabled: currentWebView && (currentWebView.canGoBack || currentWebView.canGoForward)
+ onClicked: historyMenu.open()
+ text: qsTr("▼")
+ Menu {
+ id: historyMenu
+ Instantiator {
+ model: currentWebView && currentWebView.history.items
+ MenuItem {
+ text: model.title
+ onTriggered: currentWebView.goBackOrForward(model.offset)
+ checkable: !enabled
+ checked: !enabled
+ enabled: model.offset
+ }
+
+ onObjectAdded: function(index, object) {
+ historyMenu.insertItem(index, object)
+ }
+ onObjectRemoved: function(index, object) {
+ historyMenu.removeItem(object)
+ }
+ }
+ }
+ }
+
+ ToolButton {
+ id: backButton
+ icon.source: "qrc:/icons/go-previous.png"
+ onClicked: currentWebView.goBack()
+ enabled: currentWebView && currentWebView.canGoBack
+ activeFocusOnTab: !browserWindow.platformIsMac
+ }
+ ToolButton {
+ id: forwardButton
+ icon.source: "qrc:/icons/go-next.png"
+ onClicked: currentWebView.goForward()
+ enabled: currentWebView && currentWebView.canGoForward
+ activeFocusOnTab: !browserWindow.platformIsMac
+ }
+ ToolButton {
+ id: reloadButton
+ icon.source: currentWebView && currentWebView.loading ? "qrc:/icons/process-stop.png" : "qrc:/icons/view-refresh.png"
+ onClicked: currentWebView && currentWebView.loading ? currentWebView.stop() : currentWebView.reload()
+ activeFocusOnTab: !browserWindow.platformIsMac
+ }
+ TextField {
+ id: addressBar
+ Image {
+ anchors.verticalCenter: addressBar.verticalCenter;
+ x: 5
+ z: 2
+ id: faviconImage
+ width: 16; height: 16
+ sourceSize: Qt.size(width, height)
+ source: currentWebView && currentWebView.icon ? currentWebView.icon : ''
+ }
+ MouseArea {
+ id: textFieldMouseArea
+ acceptedButtons: Qt.RightButton
+ anchors.fill: parent
+ onClicked: {
+ var textSelectionStartPos = addressBar.selectionStart;
+ var textSelectionEndPos = addressBar.selectionEnd;
+ textFieldContextMenu.open();
+ addressBar.select(textSelectionStartPos, textSelectionEndPos);
+ }
+ Menu {
+ id: textFieldContextMenu
+ x: textFieldMouseArea.mouseX
+ y: textFieldMouseArea.mouseY
+ MenuItem {
+ text: qsTr("Cut")
+ onTriggered: addressBar.cut()
+ enabled: addressBar.selectedText.length > 0
+ }
+ MenuItem {
+ text: qsTr("Copy")
+ onTriggered: addressBar.copy()
+ enabled: addressBar.selectedText.length > 0
+ }
+ MenuItem {
+ text: qsTr("Paste")
+ onTriggered: addressBar.paste()
+ enabled: addressBar.canPaste
+ }
+ MenuItem {
+ text: qsTr("Delete")
+ onTriggered: addressBar.text = qsTr("")
+ enabled: addressBar.selectedText.length > 0
+ }
+ MenuSeparator {}
+ MenuItem {
+ text: qsTr("Select All")
+ onTriggered: addressBar.selectAll()
+ enabled: addressBar.text.length > 0
+ }
+ }
+ }
+ leftPadding: 26
+ focus: true
+ Layout.fillWidth: true
+ Binding on text {
+ when: currentWebView
+ value: currentWebView.url
+ }
+ onAccepted: currentWebView.url = Utils.fromUserInput(text)
+ selectByMouse: true
+ }
+ ToolButton {
+ id: settingsMenuButton
+ text: qsTr("⋮")
+ onClicked: settingsMenu.open()
+ Menu {
+ id: settingsMenu
+ y: settingsMenuButton.height
+ MenuItem {
+ id: loadImages
+ text: "Autoload images"
+ checkable: true
+ checked: WebEngine.settings.autoLoadImages
+ }
+ MenuItem {
+ id: javaScriptEnabled
+ text: "JavaScript On"
+ checkable: true
+ checked: WebEngine.settings.javascriptEnabled
+ }
+ MenuItem {
+ id: errorPageEnabled
+ text: "ErrorPage On"
+ checkable: true
+ checked: WebEngine.settings.errorPageEnabled
+ }
+ MenuItem {
+ id: pluginsEnabled
+ text: "Plugins On"
+ checkable: true
+ checked: true
+ }
+ MenuItem {
+ id: fullScreenSupportEnabled
+ text: "FullScreen On"
+ checkable: true
+ checked: WebEngine.settings.fullScreenSupportEnabled
+ }
+ MenuItem {
+ id: offTheRecordEnabled
+ text: "Off The Record"
+ checkable: true
+ checked: currentWebView && currentWebView.profile === otrProfile
+ onToggled: function(checked) {
+ if (currentWebView) {
+ currentWebView.profile = checked ? otrProfile : defaultProfile;
+ }
+ }
+ }
+ MenuItem {
+ id: httpDiskCacheEnabled
+ text: "HTTP Disk Cache"
+ checkable: currentWebView && !currentWebView.profile.offTheRecord
+ checked: currentWebView && (currentWebView.profile.httpCacheType === WebEngineProfile.DiskHttpCache)
+ onToggled: function(checked) {
+ if (currentWebView) {
+ currentWebView.profile.httpCacheType = checked ? WebEngineProfile.DiskHttpCache : WebEngineProfile.MemoryHttpCache;
+ }
+ }
+ }
+ MenuItem {
+ id: autoLoadIconsForPage
+ text: "Icons On"
+ checkable: true
+ checked: WebEngine.settings.autoLoadIconsForPage
+ }
+ MenuItem {
+ id: touchIconsEnabled
+ text: "Touch Icons On"
+ checkable: true
+ checked: WebEngine.settings.touchIconsEnabled
+ enabled: autoLoadIconsForPage.checked
+ }
+ MenuItem {
+ id: webRTCPublicInterfacesOnly
+ text: "WebRTC Public Interfaces Only"
+ checkable: true
+ checked: WebEngine.settings.webRTCPublicInterfacesOnly
+ }
+ MenuItem {
+ id: devToolsEnabled
+ text: "Open DevTools"
+ checkable: true
+ checked: false
+ }
+ MenuItem {
+ id: pdfViewerEnabled
+ text: "PDF viewer enabled"
+ checkable: true
+ checked: WebEngine.settings.pdfViewerEnabled
+ }
+ }
+ }
+ }
+ ProgressBar {
+ id: progressBar
+ height: 3
+ anchors {
+ left: parent.left
+ top: parent.bottom
+ right: parent.right
+ leftMargin: parent.leftMargin
+ rightMargin: parent.rightMargin
+ }
+ background: Item {}
+ z: -2
+ from: 0
+ to: 100
+ value: (currentWebView && currentWebView.loadProgress < 100) ? currentWebView.loadProgress : 0
+ }
+ }
+
+ StackLayout {
+ id: tabLayout
+ currentIndex: tabBar.currentIndex
+
+ anchors.top: tabBar.bottom
+ anchors.bottom: devToolsView.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ }
+
+ Component {
+ id: tabButtonComponent
+
+ TabButton {
+ property color frameColor: "#999"
+ property color fillColor: "#eee"
+ property color nonSelectedColor: "#ddd"
+ property string tabTitle: "New Tab"
+
+ id: tabButton
+ contentItem: Rectangle {
+ id: tabRectangle
+ color: tabButton.down ? fillColor : nonSelectedColor
+ border.width: 1
+ border.color: frameColor
+ implicitWidth: Math.max(text.width + 30, 80)
+ implicitHeight: Math.max(text.height + 10, 20)
+ Rectangle { height: 1 ; width: parent.width ; color: frameColor}
+ Rectangle { height: parent.height ; width: 1; color: frameColor}
+ Rectangle { x: parent.width - 2; height: parent.height ; width: 1; color: frameColor}
+ Text {
+ id: text
+ anchors.left: parent.left
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.leftMargin: 6
+ text: tabButton.tabTitle
+ elide: Text.ElideRight
+ color: tabButton.down ? "black" : frameColor
+ width: parent.width - button.background.width
+ }
+ Button {
+ id: button
+ anchors.right: parent.right
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.rightMargin: 4
+ height: 12
+ background: Rectangle {
+ implicitWidth: 12
+ implicitHeight: 12
+ color: button.hovered ? "#ccc" : tabRectangle.color
+ Text {text: "x"; anchors.centerIn: parent; color: "gray"}
+ }
+ onClicked: tabButton.closeTab()
+ }
+ }
+
+ onClicked: addressBar.text = tabLayout.itemAt(TabBar.index).url;
+ function closeTab() {
+ tabBar.removeView(TabBar.index);
+ }
+ }
+ }
+
+ TabBar {
+ id: tabBar
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ Component.onCompleted: createTab(defaultProfile)
+
+ function createTab(profile, focusOnNewTab = true, url = undefined) {
+ var webview = tabComponent.createObject(tabLayout, {profile: profile});
+ var newTabButton = tabButtonComponent.createObject(tabBar, {tabTitle: Qt.binding(function () { return webview.title; })});
+ tabBar.addItem(newTabButton);
+ if (focusOnNewTab) {
+ tabBar.setCurrentIndex(tabBar.count - 1);
+ }
+ if (url !== undefined) {
+ webview.url = url;
+ }
+ return webview;
+ }
+
+ function removeView(index) {
+ tabBar.removeItem(index);
+ if (tabBar.count > 1) {
+ tabBar.removeItem(tabBar.itemAt(index));
+ tabLayout.children[index].destroy();
+ } else {
+ browserWindow.close();
+ }
+ }
+
+ Component {
+ id: tabComponent
+ WebEngineView {
+ id: webEngineView
+ focus: true
+
+ onLinkHovered: function(hoveredUrl) {
+ if (hoveredUrl == "")
+ hideStatusText.start();
+ else {
+ statusText.text = hoveredUrl;
+ statusBubble.visible = true;
+ hideStatusText.stop();
+ }
+ }
+
+ states: [
+ State {
+ name: "FullScreen"
+ PropertyChanges {
+ target: tabBar
+ visible: false
+ height: 0
+ }
+ PropertyChanges {
+ target: navigationBar
+ visible: false
+ }
+ }
+ ]
+ settings.localContentCanAccessRemoteUrls: true
+ settings.localContentCanAccessFileUrls: false
+ settings.autoLoadImages: appSettings.autoLoadImages
+ settings.javascriptEnabled: appSettings.javaScriptEnabled
+ settings.errorPageEnabled: appSettings.errorPageEnabled
+ settings.pluginsEnabled: appSettings.pluginsEnabled
+ settings.fullScreenSupportEnabled: appSettings.fullScreenSupportEnabled
+ settings.autoLoadIconsForPage: appSettings.autoLoadIconsForPage
+ settings.touchIconsEnabled: appSettings.touchIconsEnabled
+ settings.webRTCPublicInterfacesOnly: appSettings.webRTCPublicInterfacesOnly
+ settings.pdfViewerEnabled: appSettings.pdfViewerEnabled
+
+ onCertificateError: function(error) {
+ error.defer();
+ sslDialog.enqueue(error);
+ }
+
+ onNewWindowRequested: function(request) {
+ if (!request.userInitiated)
+ console.warn("Blocked a popup window.");
+ else if (request.destination === WebEngineNewWindowRequest.InNewTab) {
+ var tab = tabBar.createTab(currentWebView.profile, true, request.requestedUrl);
+ tab.acceptAsNewWindow(request);
+ } else if (request.destination === WebEngineNewWindowRequest.InNewBackgroundTab) {
+ var backgroundTab = tabBar.createTab(currentWebView.profile, false);
+ backgroundTab.acceptAsNewWindow(request);
+ } else if (request.destination === WebEngineNewWindowRequest.InNewDialog) {
+ var dialog = applicationRoot.createDialog(currentWebView.profile);
+ dialog.currentWebView.acceptAsNewWindow(request);
+ } else {
+ var window = applicationRoot.createWindow(currentWebView.profile);
+ window.currentWebView.acceptAsNewWindow(request);
+ }
+ }
+
+ onFullScreenRequested: function(request) {
+ if (request.toggleOn) {
+ webEngineView.state = "FullScreen";
+ browserWindow.previousVisibility = browserWindow.visibility;
+ browserWindow.showFullScreen();
+ fullScreenNotification.show();
+ } else {
+ webEngineView.state = "";
+ browserWindow.visibility = browserWindow.previousVisibility;
+ fullScreenNotification.hide();
+ }
+ request.accept();
+ }
+
+ onRegisterProtocolHandlerRequested: function(request) {
+ console.log("accepting registerProtocolHandler request for "
+ + request.scheme + " from " + request.origin);
+ request.accept();
+ }
+
+ onRenderProcessTerminated: function(terminationStatus, exitCode) {
+ var status = "";
+ switch (terminationStatus) {
+ case WebEngineView.NormalTerminationStatus:
+ status = "(normal exit)";
+ break;
+ case WebEngineView.AbnormalTerminationStatus:
+ status = "(abnormal exit)";
+ break;
+ case WebEngineView.CrashedTerminationStatus:
+ status = "(crashed)";
+ break;
+ case WebEngineView.KilledTerminationStatus:
+ status = "(killed)";
+ break;
+ }
+
+ print("Render process exited with code " + exitCode + " " + status);
+ reloadTimer.running = true;
+ }
+
+ onSelectClientCertificate: function(selection) {
+ selection.certificates[0].select();
+ }
+
+ onFindTextFinished: function(result) {
+ if (!findBar.visible)
+ findBar.visible = true;
+
+ findBar.numberOfMatches = result.numberOfMatches;
+ findBar.activeMatch = result.activeMatch;
+ }
+
+ onLoadingChanged: function(loadRequest) {
+ if (loadRequest.status == WebEngineView.LoadStartedStatus)
+ findBar.reset();
+ }
+
+ onFeaturePermissionRequested: function(securityOrigin, feature) {
+ featurePermissionDialog.securityOrigin = securityOrigin;
+ featurePermissionDialog.feature = feature;
+ featurePermissionDialog.visible = true;
+ }
+
+ Timer {
+ id: reloadTimer
+ interval: 0
+ running: false
+ repeat: false
+ onTriggered: currentWebView.reload()
+ }
+ }
+ }
+ }
+ WebEngineView {
+ id: devToolsView
+ visible: devToolsEnabled.checked
+ height: visible ? 400 : 0
+ inspectedView: visible && tabBar.currentIndex < tabBar.count ? tabLayout.children[tabBar.currentIndex] : null
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.bottom: parent.bottom
+ onNewWindowRequested: function(request) {
+ var tab = tabBar.createTab(currentWebView.profile);
+ request.openIn(tab);
+ }
+
+ Timer {
+ id: hideTimer
+ interval: 0
+ running: false
+ repeat: false
+ onTriggered: devToolsEnabled.checked = false
+ }
+ onWindowCloseRequested: function(request) {
+ // Delay hiding for keep the inspectedView set to receive the ACK message of close.
+ hideTimer.running = true;
+ }
+ }
+ Dialog {
+ id: sslDialog
+ anchors.centerIn: parent
+ contentWidth: Math.max(mainTextForSSLDialog.width, detailedTextForSSLDialog.width)
+ contentHeight: mainTextForSSLDialog.height + detailedTextForSSLDialog.height
+ property var certErrors: []
+ // fixme: icon!
+ // icon: StandardIcon.Warning
+ standardButtons: Dialog.No | Dialog.Yes
+ title: "Server's certificate not trusted"
+ contentItem: Item {
+ Label {
+ id: mainTextForSSLDialog
+ text: "Do you wish to continue?"
+ }
+ Text {
+ id: detailedTextForSSLDialog
+ anchors.top: mainTextForSSLDialog.bottom
+ text: "If you wish so, you may continue with an unverified certificate.\n" +
+ "Accepting an unverified certificate means\n" +
+ "you may not be connected with the host you tried to connect to.\n" +
+ "Do you wish to override the security check and continue?"
+ }
+ }
+
+ onAccepted: {
+ certErrors.shift().acceptCertificate();
+ presentError();
+ }
+ onRejected: reject()
+
+ function reject(){
+ certErrors.shift().rejectCertificate();
+ presentError();
+ }
+ function enqueue(error){
+ certErrors.push(error);
+ presentError();
+ }
+ function presentError(){
+ visible = certErrors.length > 0
+ }
+ }
+ Dialog {
+ id: featurePermissionDialog
+ anchors.centerIn: parent
+ width: Math.min(browserWindow.width, browserWindow.height) / 3 * 2
+ contentWidth: mainTextForPermissionDialog.width
+ contentHeight: mainTextForPermissionDialog.height
+ standardButtons: Dialog.No | Dialog.Yes
+ title: "Permission Request"
+
+ property var feature;
+ property url securityOrigin;
+
+ contentItem: Item {
+ Label {
+ id: mainTextForPermissionDialog
+ text: featurePermissionDialog.questionForFeature()
+ }
+ }
+
+ onAccepted: currentWebView && currentWebView.grantFeaturePermission(securityOrigin, feature, true)
+ onRejected: currentWebView && currentWebView.grantFeaturePermission(securityOrigin, feature, false)
+ onVisibleChanged: {
+ if (visible)
+ width = contentWidth + 20;
+ }
+
+ function questionForFeature() {
+ var question = "Allow " + securityOrigin + " to "
+
+ switch (feature) {
+ case WebEngineView.Geolocation:
+ question += "access your location information?";
+ break;
+ case WebEngineView.MediaAudioCapture:
+ question += "access your microphone?";
+ break;
+ case WebEngineView.MediaVideoCapture:
+ question += "access your webcam?";
+ break;
+ case WebEngineView.MediaVideoCapture:
+ question += "access your microphone and webcam?";
+ break;
+ case WebEngineView.MouseLock:
+ question += "lock your mouse cursor?";
+ break;
+ case WebEngineView.DesktopVideoCapture:
+ question += "capture video of your desktop?";
+ break;
+ case WebEngineView.DesktopAudioVideoCapture:
+ question += "capture audio and video of your desktop?";
+ break;
+ case WebEngineView.Notifications:
+ question += "show notification on your desktop?";
+ break;
+ default:
+ question += "access unknown or unsupported feature [" + feature + "] ?";
+ break;
+ }
+
+ return question;
+ }
+ }
+
+ FullScreenNotification {
+ id: fullScreenNotification
+ }
+
+ DownloadView {
+ id: downloadView
+ visible: false
+ anchors.fill: parent
+ }
+
+ function onDownloadRequested(download) {
+ downloadView.visible = true;
+ downloadView.append(download);
+ download.accept();
+ }
+
+ FindBar {
+ id: findBar
+ visible: false
+ anchors.right: parent.right
+ anchors.rightMargin: 10
+ anchors.top: parent.top
+
+ onFindNext: {
+ if (text)
+ currentWebView && currentWebView.findText(text);
+ else if (!visible)
+ visible = true;
+ }
+ onFindPrevious: {
+ if (text)
+ currentWebView && currentWebView.findText(text, WebEngineView.FindBackward);
+ else if (!visible)
+ visible = true;
+ }
+ }
+
+
+ Rectangle {
+ id: statusBubble
+ color: "oldlace"
+ property int padding: 8
+ visible: false
+
+ anchors.left: parent.left
+ anchors.bottom: parent.bottom
+ width: statusText.paintedWidth + padding
+ height: statusText.paintedHeight + padding
+
+ Text {
+ id: statusText
+ anchors.centerIn: statusBubble
+ elide: Qt.ElideMiddle
+
+ Timer {
+ id: hideStatusText
+ interval: 750
+ onTriggered: {
+ statusText.text = "";
+ statusBubble.visible = false;
+ }
+ }
+ }
+ }
+}
diff --git a/examples/webenginequick/nanobrowser/DownloadView.qml b/examples/webenginequick/nanobrowser/DownloadView.qml
new file mode 100644
index 000000000..e16647cdb
--- /dev/null
+++ b/examples/webenginequick/nanobrowser/DownloadView.qml
@@ -0,0 +1,127 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+import QtWebEngine
+import QtQuick.Layouts
+
+Rectangle {
+ id: downloadView
+ color: "lightgray"
+
+ ListModel {
+ id: downloadModel
+ property var downloads: []
+ }
+
+ function append(download) {
+ downloadModel.append(download);
+ downloadModel.downloads.push(download);
+ }
+
+ Component {
+ id: downloadItemDelegate
+
+ Rectangle {
+ width: listView.width
+ height: childrenRect.height
+ anchors.margins: 10
+ radius: 3
+ color: "transparent"
+ border.color: "black"
+ Rectangle {
+ id: progressBar
+
+ property real progress: downloadModel.downloads[index]
+ ? downloadModel.downloads[index].receivedBytes / downloadModel.downloads[index].totalBytes : 0
+
+ radius: 3
+ color: width == listView.width ? "green" : "#2b74c7"
+ width: listView.width * progress
+ height: cancelButton.height
+
+ Behavior on width {
+ SmoothedAnimation { duration: 100 }
+ }
+ }
+ Rectangle {
+ anchors {
+ left: parent.left
+ right: parent.right
+ leftMargin: 20
+ }
+ Label {
+ id: label
+ text: downloadModel.downloads[index] ? downloadModel.downloads[index].downloadDirectory + "/" + downloadModel.downloads[index].downloadFileName : qsTr("")
+ anchors {
+ verticalCenter: cancelButton.verticalCenter
+ left: parent.left
+ right: cancelButton.left
+ }
+ }
+ Button {
+ id: cancelButton
+ anchors.right: parent.right
+ icon.source: "qrc:/icons/process-stop.png"
+ onClicked: {
+ var download = downloadModel.downloads[index];
+
+ download.cancel();
+
+ downloadModel.downloads = downloadModel.downloads.filter(function (el) {
+ return el.id !== download.id;
+ });
+ downloadModel.remove(index);
+ }
+ }
+ }
+ }
+
+ }
+ ListView {
+ id: listView
+ anchors {
+ topMargin: 10
+ top: parent.top
+ bottom: parent.bottom
+ horizontalCenter: parent.horizontalCenter
+ }
+ width: parent.width - 20
+ spacing: 5
+
+ model: downloadModel
+ delegate: downloadItemDelegate
+
+ Text {
+ visible: !listView.count
+ horizontalAlignment: Text.AlignHCenter
+ height: 30
+ anchors {
+ top: parent.top
+ left: parent.left
+ right: parent.right
+ }
+ font.pixelSize: 20
+ text: "No active downloads."
+ }
+
+ Rectangle {
+ color: "gray"
+ anchors {
+ bottom: parent.bottom
+ left: parent.left
+ right: parent.right
+ }
+ height: 30
+ Button {
+ id: okButton
+ text: "OK"
+ anchors.centerIn: parent
+ onClicked: {
+ downloadView.visible = false;
+ }
+ }
+ }
+ }
+}
diff --git a/examples/webenginequick/nanobrowser/FindBar.qml b/examples/webenginequick/nanobrowser/FindBar.qml
new file mode 100644
index 000000000..4d130a22b
--- /dev/null
+++ b/examples/webenginequick/nanobrowser/FindBar.qml
@@ -0,0 +1,95 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+
+Rectangle {
+ id: root
+
+ property int numberOfMatches: 0
+ property int activeMatch: 0
+ property alias text: findTextField.text
+
+ function reset() {
+ numberOfMatches = 0;
+ activeMatch = 0;
+ visible = false;
+ }
+
+ signal findNext()
+ signal findPrevious()
+
+ width: 250
+ height: 35
+ radius: 2
+
+ border.width: 1
+ border.color: "black"
+ color: "white"
+
+ onVisibleChanged: {
+ if (visible)
+ findTextField.forceActiveFocus();
+ }
+
+
+ RowLayout {
+ anchors.fill: parent
+ anchors.topMargin: 5
+ anchors.bottomMargin: 5
+ anchors.leftMargin: 10
+ anchors.rightMargin: 10
+
+ spacing: 5
+
+ Rectangle {
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+
+ TextField {
+ id: findTextField
+ anchors.fill: parent
+ background: Rectangle {
+ color: "transparent"
+ }
+
+ onAccepted: root.findNext()
+ onTextChanged: root.findNext()
+ onActiveFocusChanged: activeFocus ? selectAll() : deselect()
+ }
+ }
+
+ Label {
+ text: activeMatch + "/" + numberOfMatches
+ visible: findTextField.text != ""
+ }
+
+ Rectangle {
+ border.width: 1
+ border.color: "#ddd"
+ width: 2
+ height: parent.height
+ anchors.topMargin: 5
+ anchors.bottomMargin: 5
+ }
+
+ ToolButton {
+ text: "<"
+ enabled: numberOfMatches > 0
+ onClicked: root.findPrevious()
+ }
+
+ ToolButton {
+ text: ">"
+ enabled: numberOfMatches > 0
+ onClicked: root.findNext()
+ }
+
+ ToolButton {
+ text: "x"
+ onClicked: root.visible = false
+ }
+ }
+}
diff --git a/examples/webenginequick/nanobrowser/FullScreenNotification.qml b/examples/webenginequick/nanobrowser/FullScreenNotification.qml
new file mode 100644
index 000000000..779406432
--- /dev/null
+++ b/examples/webenginequick/nanobrowser/FullScreenNotification.qml
@@ -0,0 +1,62 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+
+Rectangle {
+ id: fullScreenNotification
+ width: 500
+ height: 40
+ color: "white"
+ radius: 7
+
+ visible: false
+ opacity: 0
+
+ function show() {
+ visible = true;
+ opacity = 1;
+ reset.start();
+ }
+
+ function hide() {
+ reset.stop();
+ opacity = 0;
+ }
+
+ Behavior on opacity {
+ NumberAnimation {
+ duration: 750
+ onStopped: {
+ if (opacity == 0)
+ visible = false;
+ }
+ }
+ }
+
+ Timer {
+ id: reset
+ interval: 5000
+ onTriggered: hide()
+ }
+
+ anchors.horizontalCenter: parent.horizontalCenter
+ y: 125
+
+ Text {
+ id: message
+ width: parent.width
+
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.verticalCenter: parent.verticalCenter
+
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+
+ wrapMode: Text.WordWrap
+ elide: Text.ElideNone
+ clip: true
+
+ text: qsTr("You are now in fullscreen mode. Press ESC to quit!")
+ }
+}
diff --git a/examples/webenginequick/nanobrowser/browser.qml b/examples/webenginequick/nanobrowser/browser.qml
deleted file mode 100644
index dd441328e..000000000
--- a/examples/webenginequick/nanobrowser/browser.qml
+++ /dev/null
@@ -1,53 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt for Python examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Window
-import QtWebEngine
-
-Window {
- width: 1024
- height: 768
- visible: true
- WebEngineView {
- anchors.fill: parent
- url: "https://www.qt.io"
- }
-}
diff --git a/examples/webenginequick/nanobrowser/icons/3rdparty/COPYING b/examples/webenginequick/nanobrowser/icons/3rdparty/COPYING
new file mode 100644
index 000000000..220881da6
--- /dev/null
+++ b/examples/webenginequick/nanobrowser/icons/3rdparty/COPYING
@@ -0,0 +1 @@
+The icons in this repository are herefore released into the Public Domain.
diff --git a/examples/webenginequick/nanobrowser/icons/3rdparty/go-next.png b/examples/webenginequick/nanobrowser/icons/3rdparty/go-next.png
new file mode 100644
index 000000000..6f3f65d33
--- /dev/null
+++ b/examples/webenginequick/nanobrowser/icons/3rdparty/go-next.png
Binary files differ
diff --git a/examples/webenginequick/nanobrowser/icons/3rdparty/go-previous.png b/examples/webenginequick/nanobrowser/icons/3rdparty/go-previous.png
new file mode 100644
index 000000000..93be3d1ee
--- /dev/null
+++ b/examples/webenginequick/nanobrowser/icons/3rdparty/go-previous.png
Binary files differ
diff --git a/examples/webenginequick/nanobrowser/icons/3rdparty/process-stop.png b/examples/webenginequick/nanobrowser/icons/3rdparty/process-stop.png
new file mode 100644
index 000000000..b68290bf1
--- /dev/null
+++ b/examples/webenginequick/nanobrowser/icons/3rdparty/process-stop.png
Binary files differ
diff --git a/examples/webenginequick/nanobrowser/icons/3rdparty/view-refresh.png b/examples/webenginequick/nanobrowser/icons/3rdparty/view-refresh.png
new file mode 100644
index 000000000..cab4d02c7
--- /dev/null
+++ b/examples/webenginequick/nanobrowser/icons/3rdparty/view-refresh.png
Binary files differ
diff --git a/examples/webenginequick/nanobrowser/nanobrowser.pyproject b/examples/webenginequick/nanobrowser/nanobrowser.pyproject
index dd9039229..c86c57f67 100644
--- a/examples/webenginequick/nanobrowser/nanobrowser.pyproject
+++ b/examples/webenginequick/nanobrowser/nanobrowser.pyproject
@@ -1,3 +1,6 @@
{
- "files": ["quicknanobrowser.py", "browser.qml"]
+ "files": ["quicknanobrowser.py", "ApplicationRoot.qml",
+ "BrowserDialog.qml", "BrowserWindow.qml", "DownloadView.qml",
+ "FindBar.qml", "FullScreenNotification.qml",
+ "resources.qrc"]
}
diff --git a/examples/webenginequick/nanobrowser/quicknanobrowser.py b/examples/webenginequick/nanobrowser/quicknanobrowser.py
index c6017995a..aee79c2aa 100644
--- a/examples/webenginequick/nanobrowser/quicknanobrowser.py
+++ b/examples/webenginequick/nanobrowser/quicknanobrowser.py
@@ -1,61 +1,70 @@
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 WebEngine QtQuick 2 Example"""
import os
-from PySide6.QtCore import QUrl
-from PySide6.QtQml import QQmlApplicationEngine
-from PySide6.QtWidgets import QApplication
+import sys
+from argparse import ArgumentParser, RawTextHelpFormatter
+from pathlib import Path
+
+from PySide6.QtCore import (QCoreApplication, QFileInfo, QMetaObject, QObject,
+ QUrl, Slot, Q_ARG)
+from PySide6.QtQml import QQmlApplicationEngine, QmlElement, QmlSingleton
+from PySide6.QtGui import QGuiApplication
from PySide6.QtWebEngineQuick import QtWebEngineQuick
+import rc_resources # noqa: F401
+
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "BrowserUtils"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+def url_from_user_input(user_input):
+ file_info = QFileInfo(user_input)
+ if file_info.exists():
+ return QUrl.fromLocalFile(file_info.absoluteFilePath())
+ return QUrl.fromUserInput(user_input)
+
+
+@QmlElement
+@QmlSingleton
+class Utils(QObject):
+
+ @Slot(str, result=QUrl)
+ def fromUserInput(self, user_input):
+ return url_from_user_input(user_input)
+
+
+if __name__ == '__main__':
+ QCoreApplication.setApplicationName("Quick Nano Browser")
+ QCoreApplication.setOrganizationName("QtProject")
-def main():
- app = QApplication([])
QtWebEngineQuick.initialize()
+
+ argument_parser = ArgumentParser(description="Quick Nano Browser",
+ formatter_class=RawTextHelpFormatter)
+ argument_parser.add_argument("--single-process", "-s", action="store_true",
+ help="Run in single process mode (trouble shooting)")
+ argument_parser.add_argument("url", help="The URL to open",
+ nargs='?', type=str)
+ options = argument_parser.parse_args()
+
+ url = url_from_user_input(options.url) if options.url else QUrl("https://www.qt.io")
+
+ app_args = sys.argv
+ if options.single_process:
+ app_args.extend(["--webEngineArgs", "--single-process"])
+ app = QGuiApplication(app_args)
engine = QQmlApplicationEngine()
- qml_file_path = os.path.join(os.path.dirname(__file__), 'browser.qml')
- qml_url = QUrl.fromLocalFile(os.path.abspath(qml_file_path))
- engine.load(qml_url)
- app.exec()
+ qml_file = os.fspath(Path(__file__).resolve().parent / 'ApplicationRoot.qml')
+ engine.load(QUrl.fromLocalFile(qml_file))
+ if not engine.rootObjects():
+ sys.exit(-1)
+ QMetaObject.invokeMethod(engine.rootObjects()[0], "load", Q_ARG("QVariant", url))
-if __name__ == '__main__':
- main()
+ app.exec()
diff --git a/examples/webenginequick/nanobrowser/rc_resources.py b/examples/webenginequick/nanobrowser/rc_resources.py
new file mode 100644
index 000000000..990f10274
--- /dev/null
+++ b/examples/webenginequick/nanobrowser/rc_resources.py
@@ -0,0 +1,348 @@
+# Resource object code (Python 3)
+# Created by: object code
+# Created by: The Resource Compiler for Qt version 6.4.0
+# WARNING! All changes made in this file will be lost!
+
+from PySide6 import QtCore
+
+qt_resource_data = b"\
+\x00\x00\x03\xa2\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x16\x00\x00\x00\x16\x08\x06\x00\x00\x00\xc4\xb4l;\
+\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\
+\x00\x00\x00\x19tEXtSoftware\
+\x00www.inkscape.or\
+g\x9b\xee<\x1a\x00\x00\x034IDAT8\x8d\xb5\
+\x95[h\x1dU\x14\x86\xbf5\xb3\xe7\xe4b\xedE)\
+)(\xd6'o\xed\x83\x85\x0a5\x89\xd0\x82V\x04A\
+E\xad\xfa\x22R\xa5\x14|iII\x0b\x82\xa2`Q\
+\xa4>\xf4EPKi\xccC\x88Z\x0a)bK4\
+\x86&\xa6*\x9a\x1654\xc6K\xd4\xa4\xb1\xc6\x04\xd3\
+\x93\xe4\xcce\xcf^>\x9c9u\x926\xd1\x87t\xc1\
+\xcf\xcc\x865\xdf\xda\xff\xda\x8b\xd9\xa2\xaa\x5c\x8d\xf0\xae\
+\x0a\xf5\xff\x82\x1b\x9b\x83\xae\xfa&\xf3\xe0\x92\x83\xd5\xb1\
+ym\xdd-\xef76\x17v/)\x18`\xc7\xc3/\
+T\xaf\xbby\xe3\xab\xf7\xec5oo\xdb&\xfe\x92\x81\
+}?\xe0\x91\xcd\xdbk6\xad\xbb\xff\xe9\xf3kM\xe7\
+\x96\xe7e\xd9b\xf9&\xbfhh\x0e\xfe\xc0QwY\
+u#\xa1s\xb6\xfa\xcc\xf9N\x1a7l\xadZ\xb1l\
+U\xc3\xc7}m\xfd\x9b\xf6\xca\x96\xd3\xaf\xeb\xc8\x95\xc0\
+\x92\x1f\xb7\x86=\x81\xee\xdf\xd92'A\xd5\xa1(N\
+\x1d]C\xad\x08\x1ew\xaci`l|\xd4\x1d\xebj\
+\xf9\xdbZ{\xef\xe7\x07\xe2\xfe\xff\x04\xbf\xb2\xe3]N\
+\xfd\xd4\x9eA\x15\xc5\x91\xba\x14\xa7\x0e\xa7\x96\xd4YR\
+\xb5\xdcVw7\x1a{\x1c\xfd\xe4\xf0L),>u\
+\xea\x0d\xdb1\xc7\xe5\xfcJ\xa9\xb3D\xb6DdK\xc4\
+iHdC\x924\x22ICb\x1b\x12\xa7!\xb1-\
+\xf1\xcd\xef'\xb8\x98\x8e\xf1\xe4\x03;\xafYq\xed\xea\
+\xb6\x86=A\xd3\xa2`\xeb\x12JI\x91\xc9\xd91.\
+\x14\x87\x19\x9f\xfe\x8d\xa9\xd2\x9f\x84\xb6HBH*\x11\
+Nb\x9c\xc4\x0c\x5c\xe8ah\xe2\x0b\x1e\xbb\xef\x99\xda\
+\x1b\xebnz\xb9\xb1\xd9\x1c\xacp\xcc|p1\x9cd\
+x\xe2[\x94r\x8b\xc4\x03?\xf0\xf0\x9d\xe0\x07>\x05\
+S\xc03>\xe2\x04')j\xa2\xf2S\x10DnX\
+\x10\x9c\xb8h\x0e4\xa8\xf20\x85\xb2<#x\xbe\x05\
+,\xce)\xb7\xae\xacgM\xe1v><qdvj\
+z\xe2Pom\xbakAp>\xfc\xc0\xc3\x0f<L\
+\x95w\xa9\x80g\x04O<\xd6\xaf\xda\x8a?\xbb\x9c\xb6\
+\x8e\xc3\xb3\xd3S3\xfbN\x1fL\xdf\x01\xe0\xa5y`\
+\x11\x09\xea\x9b\xca\xcb\xc77\xecC\x00\xcfH\x19n\x04\
+\xdf\x08'\xc7\xde\xa4\xb6\xa6\x86;\xaf\x7f\x88\xf1\x91)\
+=v\xbcef\xf2\x97\xe8\xd9\xef\xda]7P\x0b\x18\
+\x11\x89T51\x19\xd4\x00\x05\x85\xf1\xb7\xda\xf6\xaf\xbe\
+l\xe7F\xe2\xdd\xcf\xbdX\xa8\xf6\x97\xb3\xf1\xbaG9\
+\xf7\xfd\xb9\xb4\xf3\xb3\x93\x13\xc3\xbd\xba}\xb4\xcf\x0d\x01\
+5\xfc;\x08*\x22ie\xc7>\xe0\xf7\x1d\xb0\xeb\x81\
+\xaaL\xd5\x95\xf7\xfa&\xd3\xebR\xe5\xae\x95O\xd0\xd3\
+\xdd\x13\x7f}\xf6\xcb\x9f\x07>\xb0\xbb.\x8e\xf0\x17P\
+\x00\x1c\x90f\xb2\x80Y\xb4\xc7\xf9\x08K!\x1f}\xda\
+\x11\x0f\x0e\x0e\xf6\x9c9\xe2^K#f\x16Iw\x15\
+p\xbe\x9a\x9f)\x06\x04\xca#\xd2~\xbc5\xfe\xf5\x87\
+\xd1Cg\xdfs\xadYn\x92)\xce\xbe\xcb\xab\xdc\x0a\
+U\xb5\x22B\x06\x22g\xcd\x02&M\xf4\xab\x1f\xfbG\
+Z\x06\x8e\xba\xee\xac\x90\xcbA*\xf0\x04(\x01\xa1\xaa\
+\xea\x9c\x7f\x85\x94\xe9A\xd6\xdb\x80\xf2\xd4T\x1cH\xce\
+\x81\xces\x19\x01\x91\xaa\xdaK\xac\x85.S\x11\xf1)\
+\x9f\xb4\x9fS\xc5M\xfe\xb0R\xbd\x02\xe4\x1f-'\x87\
+\xbf\xf3\xe1\xd64\x00\x00\x00\x00IEND\xaeB`\
+\x82\
+\x00\x00\x05T\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x16\x00\x00\x00\x16\x08\x06\x00\x00\x00\xc4\xb4l;\
+\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\
+\x00\x00\x00\x19tEXtSoftware\
+\x00www.inkscape.or\
+g\x9b\xee<\x1a\x00\x00\x04\xe6IDAT8\x8d\xb5\
+\x95iL\x14g\x18\xc7\xff\xef;3;\xbb\xb3K9\
+\x96[\xe4\x10k\x91\xa0\x16E\xa8h\x1b\x8f\x9a&\xad\
+1i\xda\x10\x82\x9a\x98\xa6\x02\xd6O\xb6M\x13\x93&\
+\xfd\xd2415i\xd2Z\x14$5\xb6\x80\xa44i\
+\xb5\xb1Gb<J\xad\x0a\x04A[\x05B=\x10\x16\
+\x01q\x81\xbd\xe7x\x9f~`!\x1c~\xf0K'\xf9\
+g\x92\x99g~\xf3\x9bg\x9e\x99\x97\x11\x11\xfe\x8f\x8d\
+?KQYY\x8b\xf4,u\x1b\xf67g\x97\xbe\xdb\
+\x92\x00\x00\xeci\xc6%\x95\xdf\xaeP\x14\xf5#0l\
+5M+M\x10\x14\x893?\xe7l\xd4\x12tA\x90\
+h\x11\x14\xf8\xa3\xa3\xb6\xd2\x98\xb9\xe6\xa5}\xa7S\x04\
+\xa7\xbfL\x0b[;\xeb+\x1e\xcc\x033\x06V\xfa^\
+s=\xc0\xca_~q\xa9meN\xb2\xecr\xaa\xe0\
+\x9cA\xd7\x0d\x04B\x06\x1e<\x9a\xb4n\xf4z\x02#\
+\xe3\x01\x891\x1c\xf6s\xe5\x0b\x97\xa4s\xe8\xbc\xdd\x12\
+b\x051\x91\xd5Q\xbbg`\x1ex\xe3\x81\xe6\x93\xd9\
+iqe{^_\xadE\x0c\x0b\x13\xfe0b4\x15\
+\x9a\xaa@\xe2\x00\xe3\x0c\xa0i\x03\x7f0\x82K\x9d\xf7\
+\xc3\xd7\xff\x1e\xd2I\xc0\xb3\xa90k\xd9\xad\xfe\x11c\
+r\x22\x98w\xed\xc4\xaeAy\x06ZT\xf5]I\x82\
+K{{{\xf12\xed\xeb\x96v1\xe6\x0dr\xce\x01\
+a\x11\x11\x83\x99\xeav\x85J\x0a2\x9c\x85/\xa4J\
+D@\xc8 l]\x9fk/\xca\xcf\xb0\xf7?|\x12\
+\xf3jQ\x16\xeb\xea\x1d6u!\x89y/\xcf.+\
+\xd5\xcf\xb9Tg\xfd\x99N\x9a\x0a\x18\xccaW\xc2\x96\
+\x10\xdf_\xab\xad\xe0!\x8e\x14\xcf\x88\x7f\xfb\xb9\xd6\xbe\
+\x1f>\xfd\xa65\xd8\xd63LNU\xc2\xd0x\x08O\
+\x02&\xd6\xe7\xa73E\xe6\xb0,\x01\xd9\x1e\x9e\x0f\x06\
+\xc3k\x03\xc3\x93\xcc\x1d\x17\xe3]\x9e\x9dzC\xd7M\
+/ >\x07\x80\x9b5\x15\xde\xf6\xfa\x8a\xb6+5\xe5\
+\xe5\x86nm\xfc\xfdJ_\xfb\x89\x1f;\x82\xf1\x0e\x8e\
+\xcc$\x0d\x97n\x8dB\x918,!Xd\xa11\x09\
+\xa8\x9aC\x1d\xca\xccH\xae\x8d\xd5\xec\x0d`\xbc\xcf\x22\
+\x9bw\xe1\xc4\xb4\xd5Ut\xe9\x86yh*\xa0K1\
+\x0e\x05C\xe3!\x08\x00v\x85\xc3\xb2\x88)B\x16\x00\
+0\xdbcK\x88`\xa2\xcb\xf1e\x8c\xc3\xfe\xb3\xae\xab\
+\x8f)\xc2N\xc5,M\x9eZ\x08.\xaaj\x5c\xa5\xc8\
+\xd2\xd9\xea\xb7\x8a\xd4\xa4x\x0di\x89Nl.H\x86\
+\xaaH0\x051\x9b\xb5\x00\xecHK\xcf9\x8b\xcb\xe2\
+\xcc\xde7\x04\x00\xa0r\xc5\xa2\xf9.\xaajHc\xc4\
+\x7f\xb3,\xd2\x8e\xb6\xb4GH\x10\x88\x00\xc2\xf4^\x08\
+\xb2\xe9V@\x00s>\x90\xe2\xaa\xa61\x06\xb8\x16\xd1\
+\x00\x10\xc1\xc7\xb8\xd8\xfe\xc4\xe6\xeeq\xf9F\x1cO\xab\
+\x01\x00\x85\xa0\xb6\x9f\xda;J\x04\x92\xe7\x1c\x8fk\xf8\
+d\x87l\x939\x00\x06\xc6\x80\xb0n\xe2\xe3\xba\xd6\xc8\
+\xfd\x91\xc9\xf7\xaf\x1f\xdf\xdd\x1d\xad\x8bL\xdb\xd7)@\
+\xbcVZP\x18v\xc7\xe8\xf1\xdd\xff>,\x1d\x1c}\
+\x5cG\x84\xc4y\xad\x00\x11\xb3\xdbd\x5c\xb85\x02\x06\
+Bi^\x12\x9a\xce\xdf\x89\x0c\x8c\xfa\x8e\xb6\x1d\xdf\xd5\
+\xb0\xd0N\x16\xce\x14I\x15\xc7T\x87\xef\xa7\xc9\xb0H\
+\x9a\xf0\xfb\xabl\xb2l\xcd\x9c\x9f3n\xd3\x96\x86)\
+\x90\x91\xe8\x04\x03\xd0\xdd?F\x9c\xb1U\xc5\xef4/\
+]\xf4\xdc\x12\x9e\xb3,\xb1a\xd2\x17\xdc}\xfb\xde\xe0\
+\x87\xbe@8\x9bq\xdc\x9d\xbd\xf1\xac0\x881\x00k\
+r\xe208\x1e\xc4\x90\x97\xe3\xc8\x81-\xf6\xa6\xf3=\
+\xdb\xce]\xe9\xef)\xa9n\xfaJX\xd4\x01b\x03\x5c\
+\xb1d\x22\xe9\x88CU\xe2z\xee\x0em\xb6)\x12\xb9\
+c5\xc3;\x11\xaa_\x04\x9e\x96f\x08\x86t\xe4/\
+\x89E\xc4\xb4\xd0y\xcf\x8bW\x0a3\xa5\xe2\xfct\xad\
+\xe3\xce\xf0\x07\x9e\xc7\xbe\xb0g\xcc\xc7\xc6'\x82N\xc9\
+\xc6\x90\xe2\xd6\x90\x97\x93\x8c\xc48'k\xfc\xa5+\xac\
+\x99z\xe3\x220g\x8c\xdd\x7f4\x85C5\x97&8\
+\x03\xdf\xb1i\xb9m\xcb\xba,\xbb7`\xc2\x22\xa00\
+/M.\xb0R]\x8cM\xf7\xcf\x10\x04\xd3\x14\x98\xf0\
+G\xd0\xf8\xeb\x0d\xbfe\x18\x07/\x9e\xdc\x1b\x9e\x95$\
+\x220\xc6\xa4\xf5\x95\x0dF\xac\xd3\x16\xe8\xef\xba\xb8\xc3\
+\xd3q\xe6Q\xee\x96\xca\x9d\xee%\xb9\xd5\xab\x9fO\xcb\
+\xc8\xcfMQ2Sc\x99\xd3aC\xc4\x100L\x0b\
+\x93\x01\x1d]\xbd\x1eq\xf5\xe6C=81r\xb8\xfb\
+\xf4\xc1\x1a\x00a\x00a\x22\xd2g\xc0\xf6u\xfb\x1a\xbc\
+~\xcf\xed\xb2\xdes\x9f\xfd\x03\xc0\x11\x8d=}\xed\xce\
+5)+\xb7\x95+Z\xfcZp\xa6:U\xc5\x08F\
+L\x89\x08\x10\x11\xdf\x9f\xa3}\xad\xc7\x06\xae6u\x03\
+\x08E\x13$\xa2\xe0\x0c\x98\xad\xde}\xec\xcd\x9b\x0d\xfb\
+/\x03\xb0\x03P\xe7D\x89F\x92\x9cn%!\xa3 \
+!\xe8\x1d\xf6\x06F\xfb\xbc\x00\xf4\xe8\x5cG\xa2P\x1f\
+\x80\x08\x11\xd1\xa2\xa5\x891&\xcd\x81\xcdD\x06 a\
+\xfa7oEcD\xa3\x030\x89\xc8\x9a\xcb\xf9\x0f)\
+i\x5c\x9ar\xdc\xdf`\x00\x00\x00\x00IEND\xae\
+B`\x82\
+\x00\x00\x04\xf8\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x16\x00\x00\x00\x16\x08\x06\x00\x00\x00\xc4\xb4l;\
+\x00\x00\x00\x06bKGD\x00\x00\x00\x00\x00\x00\xf9C\
+\xbb\x7f\x00\x00\x00\x09pHYs\x00\x00\x0b\x13\x00\x00\
+\x0b\x13\x01\x00\x9a\x9c\x18\x00\x00\x00\x07tIME\x07\
+\xd5\x0a\x11\x17+\x00C+G\xfb\x00\x00\x04\x85ID\
+AT8\xcb\x8d\x95[hTG\x18\xc7\x7fs\xcen\
+\xf6\x92l\xe2\x0d\xb5\xb5jH[M\x0d\x16\xdcf\xc5\
+\x18\x0d\x16\x95R\x0a\x81\xbeD\xc4\x06\x94\xb6\xd8B)\
+\xb6T\x8b\xd1\x07\x95\xc4z\x81\xfa\xd0\x87B\xfb\x16\xa1\
+PA\x10\xa9\xad\xb6\x09\xa5(\xda\x82\xa6\x18s\xd1\xb4\
+I\x9b\xdb\xba\xbbI\xdc\xdd\xec\xd9\xeb9s\xa6\x0f\xbb\
+\xae\xc6D\xe9\xc0\xc7<\xcc\xcco\xbe\xf9.\xff\x11<\
+c\x1c\x87%\x80x\xc6\x96H\x0b\xd8s-<\xf5\xd0\
+I\xf8B\xc1\xa7\x02\xe4\x5c\xeb\x0a4\x01\xe7%\xbc\xd3\
+\x02\xea\x7f\x81O\xc2\xe9\xea\x86\x86\x8f\xb665\xb9u\
+\x97\x0b\x94*\x9a\xb2m\xb0,\xacT\x8a\x9f\xdb\xdb3\
+\x83}}\xdfK\xd8\xf3$|\x16\xf8\x04\x9c\xa9\xae\xaf\
+\xff`\xdb\xce\x9d\xeex_\x1f\xa9\xf1q\xb0m\xb0\xed\
+<TJ\x94\x94\xb8\x17-b\xfe\x9a5\x5c9w.\
+3\xd4\xdb\xfb\xdd\xe7\xf0\xee\xe3\x1c\xfd\x09\xe8W\xd5u\
+u\xefo\xdb\xb5\xcb\x13\xef\xeb#\x1d\x0a!D\xe1n\
+\xa5\x1e\xcdJa\x19\x06\x96aPS_\xef\x88\xc6\xe3\
+\xd5\xaf\x85\xc3\xcb;\xe0\x87Y\xe0\x13\xf0\xf5\xea@`\
+\xcf\xf6\xe6fO\xac\xa7\x87t$B\xcc\xe3A*\x85\
+\xcb\xb6g\x84\xc3\x10\x82\xe9\x92\x12\x1c\xb1\x18f2\xc9\
+\x9a\xf5\xeb\x9dS\xb1XM\xed\xc4\xc4\xd2\x0e\xf8\xa9\x08\
+>\x01\xdf\xae\xf6\xfb\x9b\xb7\xef\xde\xed\x89\xde\xbeM:\
+\x12!\xeav#\xaa\xaa\xc8\x98&v6[\x84'\x84\
+ \xe1\xf3\xe1]\xbb\x96x8\x8c#\x16\xc3J\xa5x\
+\xc5\xefwF\x13\x89\xb5\xb5\x13\x13\x0b;\xe0\x8a\x06 \
+\x1c\x8e\xf7\xb677{\xa2]]dB!rJ\x91\
+\xb5,\x16\xec\xd8\xc1\xd2}\xfbH\xf9|L\x0b\x81\xa1\
+i\x18ee\xacjme\xc5\xde\xbd\x98B\x90V\x0a\
+#\x12\xe1\xc1\xe0 [\xb7l\xf1h\x1e\xcf'\x00\x1a\
+\x80\xae\xebhB\x90\xbe\x7f\x1f\x0aO\xf7Z\x16\xa13\
+g\x10B\xb0\xec\xc0\x01R\xe5\xe5\x18\xa5\xa5\xbc\xdc\xda\
+\x8a\xb3\xb4\x94\xbf\x0e\x1d\xc2m\x9a\xb8\x00\xa5\x14F8\
+\x8c\xaei\xa8B.\x1c\xc5\xbaT*\x9fy!@)\
+*l\x9b\xf8\xd4\x14\xc1\xd3\xa7Yq\xf0 /\x1e?\
+\x8e\xaeihJ1p\xf80\x04\x83\xf8r9\x94R\
+(\xa5\xb0\x95\x02)\x8bI\xd6\x1eU\xbc*\x96\xd3\xc3\
+\x92*\xcf\xe5`r\x92\xa9\x0b\x17pz<8\xbd^\
+\x22\x17/b\x8d\x8d\x15\xa1\xb6mc?\x84\xcbG\xbd\
+\xe4x\x1c\x8cm\xe7=\xd7\xf2\xf7%t\x1d\xe9v\xb3\
+\xb8\xb1\x11M\x084\xe0\xb9\xc6F\xe2\xb7naI\x89\
+\xea\xeeF\x9a&\xb6i\xa24\x0dJJ\xf2\xce\xcd\xf2\
+X\xca|3HI\x020<\x1e^:v\x0cgY\
+\x19\xff\x9c:E\xdf\xfe\xfdhBPs\xf4(S\xe3\
+\xe3\xc4\xa5$\xd9\xd3C\xf2\xde=\x8c\xfe~\xe4\xf00\
+\xb6i\xce\x04?\x84*)\xc9HIr\xde<V\xb5\
+\xb5\xa1{\xbd\xfc\xdd\xd6F\xa6\xab\x8b\xe8\xd9\xb3\xf4\x1f\
+9\x82\xd3\xe5bc{;\x19\x97\x8b\x14y\x15r,\
+^\x8c\xf2\xf9f\x86BJ\x8998\x88\x98\x9a\x22\x15\
+\x0cb\x99&l\xdaD\xe2\xe6M\xee_\xbaD\xee\xfa\
+uJGG)\x07\x12\x97/\xd3\xadi\xbc\xd0\xd4\x84\
+\xab\xa2\x02+/H\xe8.\x17b\xe9\xd2\x99-\xbd\xcd\
+\xb6\xad\xb1\xe1\xe1\xbau\x0d\x0d\xce\x5c$Bnb\x02\
+g\x22\xc1\x83p\x1852\x82g`\x00\xbb\x00\xd0\xa6\
+\xa7\x89\xde\xb9C.\x99\xc4\x15\x8d\x92\x1b\x19\xc1\xb3r\
+%U\x81\x00=7n\x98\xa1\xc9\xc9\xdb\x1d\xf0\x8d\x0e\
+\xd0\x01W\xebR)5:6\xb6q\xdd\xe6\xcd\xce\x9c\
+a\x90\x09\x06\xd1\x86\x86\xd0C\xa1\x22\xd4.\x98SJ\
+r\xbd\xbddGF(\xad\xac\xa42\x10\xe0No\xaf\
+\xf9\xe7\xdd\xbb\x7f\xd8\xf0z'XE\xad\xe8\x80\xab\x1b\
+\xd3i9:>^\xef\xaf\xafw\xe6\x92I\xb2\xf1x\
+\x11\xa6\xe6\x98\xcb*+YY[\xcb\xef\x9d\x9d\xd9\xfe\
+\xb1\xb1_mx\xb3\x05\xb2\xb3\xd4\xad\x03\xae\xd5e2\
+\xe6h0\xb8\xc9\x1f\x088s\x99\x0c\xd9t\x1at\x1d\
+\xa5\xeb\xa0i\xa8\x82\x95WU\xb1\xdc\xef\xe7\xda/\xbf\
+d\x86b\xb1\x1fmx\xbb\x05\xac\xa7\xe9\xb1\x13X\xf2\
+1|V\xe3\xf3}\xf8\xd6\x86\x0d%\xce\xf9\xf3\x11e\
+e\xf9\xe2/h\xb2\x92\x12\xe5\xf5\xd2y\xfe\xbc\xd9\x1d\
+\x8f\xff\xf6%\x1c\xb2!\x02\x84\x81\xf4\x93\xe0R`9\
+\xf0<\xb0\xac\x09v\xbc\x0ao\x00B\xe5\xf7\x09\x05B\
+\xe4\xa3\xa0\x04\xa8\x01\xe8o\x87s\xc08\x10\x04\xfe\x05\
+\x06\x01S\xcc\xf1Uy\x01\x1fP\x01,\x04\x16\x00\x8b\
+\x80y\x85\x17\x19@\x1cxP\xb0(0\x0d\xc4(\xc4\
+\x17\xe0?\x98\x97d\xf0\xa2y\x08\xf3\x00\x00\x00\x00I\
+END\xaeB`\x82\
+\x00\x00\x03\xbb\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x16\x00\x00\x00\x16\x08\x06\x00\x00\x00\xc4\xb4l;\
+\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\
+\x00\x00\x00\x19tEXtSoftware\
+\x00www.inkscape.or\
+g\x9b\xee<\x1a\x00\x00\x03MIDAT8\x8d\xb5\
+\x95Mh\x5cU\x18\x86\x9f\xef\x9cs\xef\xcd\x9fR\xfb\
+#\x18\x8d4\x05\x8d\x88\xa0\x82\xc6\x98\x99,\xda(\x11\
+\xa9\xc1\xfa\x1f\x8a]H\xe9\xa6+k\x13\xa1.\xa2\x88\
+\x1b\x11\x84\x8a.L7\xadbuQ\x8d\x22B-\xb6\
+\x1b\x15\x22\x9d*(\x88A\x94X\xd3\x88\xa16i\xe8\
+df\xee\xb9\xf7s1w\x921\xa6c\x5c\xf4\xc0\xcb\
+9\x8b\x8f\xe7{\xbf\x97{\xee\x11U\xe5J,sE\
+\xa8\x80\xfb?\xc5\xbd\xfb\x83\x01\x11\x0e\x84m\xbe\xff\xd4\
+\xa8\xfaF\xb5kv\xdc7\x12\xee\xbd~S\xe7\x87F\
+l\xdfZ\x0c\xfd'X^\x12\x93\x1bvo\xde\xdcq\
+\xfb\xab{\x06\x0f\xb4X\xe3\xd2\xb5\x18i\xd8y`X\
+Zs\xe2\xc6\xbbo\xdd\x9a\xbf\xaf\xfb\xd1\xa6\xc0\x85k\
+a6\x06\xe7\x9f\x97v\xc1\x9d\xea\xbf{G\xe7\x9d]\
+\xf7\x06\xdfN\x7fN\xcf\xe6A\x8c\xa3R^p\x8b\xb9\
+\xfd\xc1?\xea\xc50\x1b\xb4\xfa\xf6Z\xf6\xab\x82s#\
+\xe1\x1d\xd64\x9d\x18\xdc\xb6\xf3\x9a\xeb6\xdd`'\xa6\
+>\x05\x94$Mxa\xd7[\xcdF\x0c\x82 \xb2\x9c\
+\xe4\xe8\xd8\xee\xf5\xe0\x1d\xb0:\xb8\xf79\xb7\xbd\xb5\xb9\
+\xed\xe8\xc3[\x9fn3\x9121\xf5\x09F,\xd6\x04\
+|1y\x18#\x0e#\x06k,\x82AD\xc8oy\
+\xbcq\x14\xb9\xe1`\xdf\xba\xab7\xbc\xbc\xa3\x7fW\xcb\
+\xf9\xc5)~>{\x06k\x02\x9c\x09H5%M\x13\
+\xacq\x18\xb1\xf8\xd4`2\xc7I\x1a\xa3(\xb2\x1a8\
+?\xe2\x0e\xb6o\xecxf \xffX\xcb\xe4\xf9o\x98\
+\x9e\xfbi\x19\xa8\x09\x81\xa4\xa4\xb6BE<\x89\xc6\xa0\
+\xe0\x08\x89\xecUx\x8dYy\x83\x97\x1d\x1b\xda1\x88\
+\x92\x10\xfb\x12e_$\x16\x8b\xa2\xd8\x10\xc0cP\x8c\
+\x15\xc4T\xbdi\xaah\x09\x8a\xe9\x85\x7fE\xb1\x94\xfe\
+W\xcd\xc9\x13\xe7\xfe\xfc\xfd\xd0G'\xdf\xbdt\xd3\x86\
+n\xba\xae\xbd\x87\xb2/\x92\x9a\x12\xd8\x0a.\x82\xb0\xd9\
+\x12\xb5X\x9aZ-Qk\xf5\x1c4\x1bR\xa9\x5c\x1e\
+\xac\xa3\x9a~\xfd\x9a\xdf\xf7\xd7\xec\x85\xe1c\xc7\x0f\x17\
+\xd7\x87\x1d\xf4t>D\x10\x04\xd8\xc0\xe0BC\x10\x99\
+*|\x09jq\x91\xc1XA\x81\x85s\xcb\xbc\xa5(\
+D$\x00\xa2\x897\xfc\x07\xb7=U\x9c\x19O\xde;\
+r\x7f\xef\xf6\xb6\xbe\xce'\xa50\xfb1j*<\xb8\
+\xe5Y\x9cs\xd8\xc0\xa0\xaa\xa4^I|uG`\xe6\
+\x0c-\x22\x12\xabj\xec2\xa8\x03\xc2L\xd1\x0f\xef'\
+\xdf\xdd\x98\xe7\x91\xe3~\xfc\x9d\xdc]\xdb6\xe6o\xd9\
+\xe9N\xcf\x1eCSx\xfd\xd0+\xe5r1\x8eV\x8e\
+.07\x7f\x16\x03\x84\x22\x92\xd4\x1c\xdbL\xae\xa6\xdf\
+\xbeL\xfe\x98\xff\x95\xa1\xc4\x9f<8\x7fq\xbe+\xd7\
+3\x14j\x22\xc4e\x0d\x0ac\xfe\x81\xf2E\x16\x80r\
+\xa6R\xb6\xd7X\xae\xe1Oh~\x9a\x85\xc2\xdb\xc9\xde\
+B\xe1\xf4\xc9\xcfN\x8c\x97\x17\x8b\xa5F\xe5\xf5+\xad\
+9N2\xf9:\xf7\x15@|\x09-\x8c\xa5/V\x86\
+~\x99\xbcT<\xb2\x874\x8d\xc4P\xcc\x5c\xc6Y\x9d\
+_\xa1j\x14\xaa\xeaE$\x8b\xaa\xda\xb1\xae\x91\x03\xdc\
+\xf7G\x93\xb1\xca\xe0\xcc\x8f\xeb6\xcb\xee$f.\x1b\
+\xdd\xd7\xc1c`\x11(\xa9\xaaJ\xfd\x8d\x91*=\x00\
+\xa2lwu\x13H&\xcdT?e\x19(\xab.\xbf\
+*r\xb9\xc7TD,\xd5\xef\xdc\xd6\xa96Mm\xa2\
+\x04Ht\x15\xc8\xdfq\xe6X\xba\xbc$\xce\xad\x00\x00\
+\x00\x00IEND\xaeB`\x82\
+"
+
+qt_resource_name = b"\
+\x00\x05\
+\x00o\xa6S\
+\x00i\
+\x00c\x00o\x00n\x00s\
+\x00\x0b\
+\x0c+\x1f\xc7\
+\x00g\
+\x00o\x00-\x00n\x00e\x00x\x00t\x00.\x00p\x00n\x00g\
+\x00\x10\
+\x08\x15\x13g\
+\x00v\
+\x00i\x00e\x00w\x00-\x00r\x00e\x00f\x00r\x00e\x00s\x00h\x00.\x00p\x00n\x00g\
+\x00\x10\
+\x08\xea\xfbg\
+\x00p\
+\x00r\x00o\x00c\x00e\x00s\x00s\x00-\x00s\x00t\x00o\x00p\x00.\x00p\x00n\x00g\
+\x00\x0f\
+\x0e6v\xc7\
+\x00g\
+\x00o\x00-\x00p\x00r\x00e\x00v\x00i\x00o\x00u\x00s\x00.\x00p\x00n\x00g\
+"
+
+qt_resource_struct = b"\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x02\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00,\x00\x00\x00\x00\x00\x01\x00\x00\x03\xa6\
+\x00\x00\x01{\xe0\xa8\xe4\xe2\
+\x00\x00\x00R\x00\x00\x00\x00\x00\x01\x00\x00\x08\xfe\
+\x00\x00\x01{\xe0\xa8\xe4\xe2\
+\x00\x00\x00\x10\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
+\x00\x00\x01{\xe0\xa8\xe4\xe2\
+\x00\x00\x00x\x00\x00\x00\x00\x00\x01\x00\x00\x0d\xfa\
+\x00\x00\x01{\xe0\xa8\xe4\xe2\
+"
+
+def qInitResources():
+ QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+def qCleanupResources():
+ QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+qInitResources()
diff --git a/examples/webenginequick/nanobrowser/resources.qrc b/examples/webenginequick/nanobrowser/resources.qrc
new file mode 100644
index 000000000..829285ec0
--- /dev/null
+++ b/examples/webenginequick/nanobrowser/resources.qrc
@@ -0,0 +1,8 @@
+<RCC>
+ <qresource prefix="/icons">
+ <file alias="go-next.png">icons/3rdparty/go-next.png</file>
+ <file alias="go-previous.png">icons/3rdparty/go-previous.png</file>
+ <file alias="process-stop.png">icons/3rdparty/process-stop.png</file>
+ <file alias="view-refresh.png">icons/3rdparty/view-refresh.png</file>
+ </qresource>
+</RCC>
diff --git a/examples/webenginewidgets/markdowneditor/document.py b/examples/webenginewidgets/markdowneditor/document.py
index 348323704..331fbc0ca 100644
--- a/examples/webenginewidgets/markdowneditor/document.py
+++ b/examples/webenginewidgets/markdowneditor/document.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from PySide6.QtCore import QObject, Property, Signal
diff --git a/examples/webenginewidgets/markdowneditor/main.py b/examples/webenginewidgets/markdowneditor/main.py
index 08d07a036..4d787f0f0 100644
--- a/examples/webenginewidgets/markdowneditor/main.py
+++ b/examples/webenginewidgets/markdowneditor/main.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 Markdown Editor Example"""
@@ -46,7 +9,7 @@ from PySide6.QtCore import QCoreApplication
from PySide6.QtWidgets import QApplication
from mainwindow import MainWindow
-import rc_markdowneditor
+import rc_markdowneditor # noqa: F401
if __name__ == '__main__':
diff --git a/examples/webenginewidgets/markdowneditor/mainwindow.py b/examples/webenginewidgets/markdowneditor/mainwindow.py
index 4f19f4323..6f74cf93d 100644
--- a/examples/webenginewidgets/markdowneditor/mainwindow.py
+++ b/examples/webenginewidgets/markdowneditor/mainwindow.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from PySide6.QtCore import QDir, QFile, QIODevice, QUrl, Qt, Slot
@@ -84,7 +47,7 @@ class MainWindow(QMainWindow):
data = defaultTextFile.readAll()
self._ui.editor.setPlainText(data.data().decode('utf8'))
- @Slot(str)
+ @Slot()
def plainTextEditChanged(self):
self.m_content.setText(self._ui.editor.toPlainText())
@@ -114,7 +77,7 @@ class MainWindow(QMainWindow):
return
self.m_file_path = ''
- self._ui.editor.setPlainText(tr("## New document"))
+ self._ui.editor.setPlainText("## New document")
self._ui.editor.document().setModified(False)
@Slot()
@@ -142,18 +105,19 @@ class MainWindow(QMainWindow):
name = QDir.toNativeSeparators(self.m_file_path)
if not f.open(QIODevice.WriteOnly | QIODevice.Text):
error = f.errorString()
- QMessageBox.warning(self, windowTitle(),
+ QMessageBox.warning(self, self.windowTitle(),
f"Could not write to file {name}: {error}")
return
text = self._ui.editor.toPlainText()
f.write(bytes(text, encoding='utf8'))
f.close()
+ self._ui.editor.document().setModified(False)
self.statusBar().showMessage(f"Wrote {name}")
@Slot()
def onFileSaveAs(self):
dialog = QFileDialog(self)
- dialog.setWindowTitle("Open MarkDown File")
+ dialog.setWindowTitle("Save MarkDown File")
dialog.setMimeTypeFilters(["text/markdown"])
dialog.setAcceptMode(QFileDialog.AcceptSave)
dialog.setDefaultSuffix("md")
diff --git a/examples/webenginewidgets/markdowneditor/markdowneditor.pyproject b/examples/webenginewidgets/markdowneditor/markdowneditor.pyproject
index b10b12512..e18e05096 100644
--- a/examples/webenginewidgets/markdowneditor/markdowneditor.pyproject
+++ b/examples/webenginewidgets/markdowneditor/markdowneditor.pyproject
@@ -4,6 +4,5 @@
"mainwindow.py",
"mainwindow.ui",
"previewpage.py",
- "resources/markdowneditor.qrc",
- "ui_mainwindow.py"]
+ "resources/markdowneditor.qrc"]
}
diff --git a/examples/webenginewidgets/markdowneditor/previewpage.py b/examples/webenginewidgets/markdowneditor/previewpage.py
index e28af5b1a..35ac80be4 100644
--- a/examples/webenginewidgets/markdowneditor/previewpage.py
+++ b/examples/webenginewidgets/markdowneditor/previewpage.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from PySide6.QtGui import QDesktopServices
from PySide6.QtWebEngineCore import QWebEnginePage
diff --git a/examples/webenginewidgets/markdowneditor/resources/default.md b/examples/webenginewidgets/markdowneditor/resources/default.md
index af835fa4d..d29cdfe60 100644
--- a/examples/webenginewidgets/markdowneditor/resources/default.md
+++ b/examples/webenginewidgets/markdowneditor/resources/default.md
@@ -1,6 +1,6 @@
## WebEngine Markdown Editor Example
-This example uses [QWebEngineView](http://doc.qt.io/qt-5/qwebengineview.html)
+This example uses [QWebEngineView](https://doc.qt.io/qt-5/qwebengineview.html)
to preview text written using the [Markdown](https://en.wikipedia.org/wiki/Markdown)
syntax.
diff --git a/examples/webenginewidgets/markdowneditor/resources/index.html b/examples/webenginewidgets/markdowneditor/resources/index.html
index 289a2110b..c8e30b49b 100644
--- a/examples/webenginewidgets/markdowneditor/resources/index.html
+++ b/examples/webenginewidgets/markdowneditor/resources/index.html
@@ -14,7 +14,7 @@
var placeholder = document.getElementById('placeholder');
var updateText = function(text) {
- placeholder.innerHTML = marked(text);
+ placeholder.innerHTML = marked.parse(text);
}
new QWebChannel(qt.webChannelTransport,
diff --git a/examples/webenginewidgets/markdowneditor/ui_mainwindow.py b/examples/webenginewidgets/markdowneditor/ui_mainwindow.py
index 305108324..0be769119 100644
--- a/examples/webenginewidgets/markdowneditor/ui_mainwindow.py
+++ b/examples/webenginewidgets/markdowneditor/ui_mainwindow.py
@@ -3,7 +3,7 @@
################################################################################
## Form generated from reading UI file 'mainwindow.ui'
##
-## Created by: Qt User Interface Compiler version 6.2.0
+## Created by: Qt User Interface Compiler version 6.7.0
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
diff --git a/examples/webenginewidgets/notifications/doc/notifications.png b/examples/webenginewidgets/notifications/doc/notifications.png
new file mode 100644
index 000000000..3540be8d1
--- /dev/null
+++ b/examples/webenginewidgets/notifications/doc/notifications.png
Binary files differ
diff --git a/examples/webenginewidgets/notifications/doc/notifications.rst b/examples/webenginewidgets/notifications/doc/notifications.rst
new file mode 100644
index 000000000..a06ebfbc5
--- /dev/null
+++ b/examples/webenginewidgets/notifications/doc/notifications.rst
@@ -0,0 +1,8 @@
+WebEngine Notifications Example
+===============================
+
+Python port of C++ `WebEngine Notifications <https://doc.qt.io/qt-6/qtwebengine-webenginewidgets-notifications-example.html>`_
+
+.. image:: notifications.png
+ :width: 400
+ :alt: Notifications Example Screenshot
diff --git a/examples/webenginewidgets/notifications/main.py b/examples/webenginewidgets/notifications/main.py
new file mode 100644
index 000000000..b59aead97
--- /dev/null
+++ b/examples/webenginewidgets/notifications/main.py
@@ -0,0 +1,57 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 WebEngineWidgets Notifications Example"""
+
+import sys
+from pathlib import Path
+
+from PySide6.QtCore import QUrl, QCoreApplication
+from PySide6.QtWidgets import QApplication
+from PySide6.QtWebEngineCore import QWebEnginePage
+from PySide6.QtWebEngineWidgets import QWebEngineView
+from PySide6.QtGui import QDesktopServices
+
+from notificationpopup import NotificationPopup
+
+
+class WebEnginePage(QWebEnginePage):
+ def __init__(self, parent):
+ super().__init__(parent)
+
+ def acceptNavigationRequest(self, url: QUrl, *_):
+ if url.scheme != "https":
+ return True
+ QDesktopServices.openUrl(url)
+ return False
+
+
+if __name__ == '__main__':
+
+ src_dir = Path(__file__).resolve().parent
+ QCoreApplication.setOrganizationName("QtProject")
+ app = QApplication(sys.argv)
+ view = QWebEngineView()
+
+ # set custom page to open all page's links for https scheme in system browser
+ view.setPage(WebEnginePage(view))
+
+ def set_feature_permission(origin: QUrl, feature: QWebEnginePage.Feature):
+ if feature != QWebEnginePage.Notifications:
+ return
+
+ view.page().setFeaturePermission(origin, feature, QWebEnginePage.PermissionGrantedByUser)
+
+ view.page().featurePermissionRequested.connect(set_feature_permission)
+ profile = view.page().profile()
+ popup = NotificationPopup(view)
+
+ def presentNotification(notification):
+ popup.present(notification)
+
+ profile.setNotificationPresenter(presentNotification)
+ view.resize(640, 480)
+ view.show()
+ view.setUrl(QUrl.fromLocalFile(src_dir / "resources" / "index.html"))
+
+ sys.exit(app.exec())
diff --git a/examples/webenginewidgets/notifications/notificationpopup.py b/examples/webenginewidgets/notifications/notificationpopup.py
new file mode 100644
index 000000000..e68ce3d6f
--- /dev/null
+++ b/examples/webenginewidgets/notifications/notificationpopup.py
@@ -0,0 +1,68 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import Qt, QTimer, QPoint, Slot
+from PySide6.QtWidgets import (QWidget, QHBoxLayout, QLabel, QVBoxLayout, QSpacerItem, QSizePolicy,
+ QPushButton)
+from PySide6.QtWebEngineCore import QWebEngineNotification
+from PySide6.QtGui import QPixmap, QMouseEvent
+
+
+class NotificationPopup(QWidget):
+ def __init__(self, parent) -> None:
+ super().__init__(parent)
+ self.notification = None
+ self.m_icon, self.m_title, self.m_message = QLabel(), QLabel(), QLabel()
+ self.setWindowFlags(Qt.ToolTip)
+
+ rootLayout = QHBoxLayout(self)
+ rootLayout.addWidget(self.m_icon)
+
+ bodyLayout = QVBoxLayout()
+ rootLayout.addLayout(bodyLayout)
+
+ titleLayout = QHBoxLayout()
+ bodyLayout.addLayout(titleLayout)
+
+ titleLayout.addWidget(self.m_title)
+ titleLayout.addItem(QSpacerItem(0, 0, QSizePolicy.Expanding))
+
+ close = QPushButton("Close")
+ titleLayout.addWidget(close)
+ close.clicked.connect(self.onClosed)
+
+ bodyLayout.addWidget(self.m_message)
+ self.adjustSize()
+
+ def present(self, newNotification: QWebEngineNotification):
+ if self.notification:
+ self.notification.close()
+
+ self.notification = newNotification
+
+ self.m_title.setText("<b>" + self.notification.title() + "</b>")
+ self.m_message.setText(self.notification.message())
+ self.m_icon.setPixmap(QPixmap.fromImage(self.notification.icon())
+ .scaledToHeight(self.m_icon.height()))
+
+ self.show()
+ self.notification.show()
+
+ self.notification.closed.connect(self.onClosed)
+ QTimer.singleShot(10000, lambda: self.onClosed())
+
+ self.move(self.parentWidget().mapToGlobal(self.parentWidget().rect().bottomRight()
+ - QPoint(self.width() + 10, self.height() + 10)))
+
+ @Slot()
+ def onClosed(self):
+ self.hide()
+ if self.notification:
+ self.notification.close()
+ self.notification = None
+
+ def mouseReleaseEvent(self, event: QMouseEvent) -> None:
+ QWidget.mouseReleaseEvent(event)
+ if self.notification and event.button() == Qt.LeftButton:
+ self.notification.click()
+ self.onClosed()
diff --git a/examples/webenginewidgets/notifications/notifications.pyproject b/examples/webenginewidgets/notifications/notifications.pyproject
new file mode 100644
index 000000000..0a3d3c4c5
--- /dev/null
+++ b/examples/webenginewidgets/notifications/notifications.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["main.py", "notificationpopup.py"]
+}
diff --git a/examples/webenginewidgets/notifications/resources/icon.png b/examples/webenginewidgets/notifications/resources/icon.png
new file mode 100644
index 000000000..4c3870c06
--- /dev/null
+++ b/examples/webenginewidgets/notifications/resources/icon.png
Binary files differ
diff --git a/examples/webenginewidgets/notifications/resources/index.html b/examples/webenginewidgets/notifications/resources/index.html
new file mode 100644
index 000000000..99dbac683
--- /dev/null
+++ b/examples/webenginewidgets/notifications/resources/index.html
@@ -0,0 +1,91 @@
+<!doctype html>
+<html>
+<head>
+<title>Web Notifications Example</title>
+<script>
+ var notificationsCreated = 0
+
+ function getPermission() { return document.Notification }
+ function resetPermission(permission = 'default') {
+ document.Notification = permission
+ document.getElementById('state').value = getPermission()
+ }
+
+ function createNotification() {
+ let title = 'Notification #' + ++notificationsCreated
+ let options = { body: 'Visit doc.qt.io for more info!', icon: 'icon.png', }
+
+ let notification = new Notification(title, options)
+ document.notification = notification
+
+ notification.onerror = function(error) {
+ document.getElementById('act').value += ' with error'
+ document.notification = null
+ }
+ notification.onshow = function() {
+ document.getElementById('act').value += ', shown'
+ document.getElementById('close').style.display = 'inline'
+ }
+ notification.onclick = function() {
+ document.getElementById('act').value += ', clicked'
+ }
+ notification.onclose = function() {
+ if (document.notification && notification == document.notification) {
+ document.getElementById('act').value += ' and closed'
+ document.getElementById('close').style.display = 'none'
+ document.notification = null
+ }
+ }
+
+ console.log('...notification created [Title: ' + title + ']')
+ document.getElementById('act').value = 'Notification was created'
+ }
+
+ function onMakeNotification() {
+ if (getPermission() == 'granted') {
+ createNotification()
+ } else if (getPermission() == 'denied') {
+ setTimeout(function() {
+ if (window.confirm('Notifications are disabled!\n' +
+ 'Permission needs to be granted by user. Reset?'))
+ resetPermission()
+ }, 1)
+ } else {
+ Notification.requestPermission().then(function (permission) {
+ console.info('notifications request: ' + permission)
+ resetPermission(permission)
+ if (permission == 'granted')
+ createNotification()
+ })
+ }
+ }
+
+ function closeNotification() { if (document.notification) document.notification.close() }
+
+ document.addEventListener('DOMContentLoaded', function() {
+ resetPermission(Notification.permission) })
+</script>
+</head>
+<body style='text-align:center;'>
+ <h3>Click the button to send a notification</h3>
+
+ <button onclick='onMakeNotification()'>Notify!</button>
+
+ <p>
+ <output id='act'></output>
+ <button id='close' style='display: none;' onclick='closeNotification()'>Close</button>
+ </p><br>
+
+ <p>
+ <label for='state'>Permission:</label>
+ <output id='state'></output>
+ <button onclick='resetPermission()'>Reset</button>
+ </p><br>
+
+ <h4>More info can be found on:</h4>
+ <ul style='list-style-type: none;'>
+ <li>W3 <a href='https://www.w3.org/TR/notifications'>Web Notifications</a> standard</li>
+ <li>Documentation for <a href='https://doc.qt.io'>Qt WebEngine</a> module</li>
+ </ul>
+</body>
+</html>
diff --git a/examples/webenginewidgets/simplebrowser/browser.py b/examples/webenginewidgets/simplebrowser/browser.py
new file mode 100644
index 000000000..a124ea084
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/browser.py
@@ -0,0 +1,69 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtWebEngineCore import (qWebEngineChromiumVersion,
+ QWebEngineProfile, QWebEngineSettings)
+from PySide6.QtCore import QObject, Qt, Slot
+
+from downloadmanagerwidget import DownloadManagerWidget
+from browserwindow import BrowserWindow
+
+
+class Browser(QObject):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._windows = []
+ self._download_manager_widget = DownloadManagerWidget()
+ self._profile = None
+
+ # Quit application if the download manager window is the only
+ # remaining window
+ self._download_manager_widget.setAttribute(Qt.WA_QuitOnClose, False)
+
+ dp = QWebEngineProfile.defaultProfile()
+ dp.downloadRequested.connect(self._download_manager_widget.download_requested)
+
+ def create_hidden_window(self, offTheRecord=False):
+ if not offTheRecord and not self._profile:
+ name = "simplebrowser." + qWebEngineChromiumVersion()
+ self._profile = QWebEngineProfile(name)
+ s = self._profile.settings()
+ s.setAttribute(QWebEngineSettings.PluginsEnabled, True)
+ s.setAttribute(QWebEngineSettings.DnsPrefetchEnabled, True)
+ s.setAttribute(QWebEngineSettings.LocalContentCanAccessRemoteUrls, True)
+ s.setAttribute(QWebEngineSettings.LocalContentCanAccessFileUrls, False)
+ self._profile.downloadRequested.connect(
+ self._download_manager_widget.download_requested)
+
+ profile = QWebEngineProfile.defaultProfile() if offTheRecord else self._profile
+ main_window = BrowserWindow(self, profile, False)
+ self._windows.append(main_window)
+ main_window.about_to_close.connect(self._remove_window)
+ return main_window
+
+ def create_window(self, offTheRecord=False):
+ main_window = self.create_hidden_window(offTheRecord)
+ main_window.show()
+ return main_window
+
+ def create_dev_tools_window(self):
+ profile = (self._profile if self._profile
+ else QWebEngineProfile.defaultProfile())
+ main_window = BrowserWindow(self, profile, True)
+ self._windows.append(main_window)
+ main_window.about_to_close.connect(self._remove_window)
+ main_window.show()
+ return main_window
+
+ def windows(self):
+ return self._windows
+
+ def download_manager_widget(self):
+ return self._download_manager_widget
+
+ @Slot()
+ def _remove_window(self):
+ w = self.sender()
+ if w in self._windows:
+ del self._windows[self._windows.index(w)]
diff --git a/examples/webenginewidgets/simplebrowser/browserwindow.py b/examples/webenginewidgets/simplebrowser/browserwindow.py
new file mode 100644
index 000000000..43b811200
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/browserwindow.py
@@ -0,0 +1,500 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from PySide6.QtWebEngineCore import QWebEnginePage
+from PySide6.QtWidgets import (QMainWindow, QFileDialog,
+ QInputDialog, QLineEdit, QMenu, QMessageBox,
+ QProgressBar, QToolBar, QVBoxLayout, QWidget)
+from PySide6.QtGui import QAction, QGuiApplication, QIcon, QKeySequence
+from PySide6.QtCore import QUrl, Qt, Slot, Signal
+
+from tabwidget import TabWidget
+
+
+def remove_backspace(keys):
+ result = keys.copy()
+ # Chromium already handles navigate on backspace when appropriate.
+ for i, key in enumerate(result):
+ if (key[0].key() & Qt.Key_unknown) == Qt.Key_Backspace:
+ del result[i]
+ break
+ return result
+
+
+class BrowserWindow(QMainWindow):
+
+ about_to_close = Signal()
+
+ def __init__(self, browser, profile, forDevTools):
+ super().__init__()
+
+ self._progress_bar = None
+ self._history_back_action = None
+ self._history_forward_action = None
+ self._stop_action = None
+ self._reload_action = None
+ self._stop_reload_action = None
+ self._url_line_edit = None
+ self._fav_action = None
+ self._last_search = ""
+ self._toolbar = None
+
+ self._browser = browser
+ self._profile = profile
+ self._tab_widget = TabWidget(profile, self)
+
+ self._stop_icon = QIcon.fromTheme(QIcon.ThemeIcon.ProcessStop,
+ QIcon(":process-stop.png"))
+ self._reload_icon = QIcon.fromTheme(QIcon.ThemeIcon.ViewRefresh,
+ QIcon(":view-refresh.png"))
+
+ self.setAttribute(Qt.WA_DeleteOnClose, True)
+ self.setFocusPolicy(Qt.ClickFocus)
+
+ if not forDevTools:
+ self._progress_bar = QProgressBar(self)
+
+ self._toolbar = self.create_tool_bar()
+ self.addToolBar(self._toolbar)
+ mb = self.menuBar()
+ mb.addMenu(self.create_file_menu(self._tab_widget))
+ mb.addMenu(self.create_edit_menu())
+ mb.addMenu(self.create_view_menu())
+ mb.addMenu(self.create_window_menu(self._tab_widget))
+ mb.addMenu(self.create_help_menu())
+
+ central_widget = QWidget(self)
+ layout = QVBoxLayout(central_widget)
+ layout.setSpacing(0)
+ layout.setContentsMargins(0, 0, 0, 0)
+ if not forDevTools:
+ self.addToolBarBreak()
+
+ self._progress_bar.setMaximumHeight(1)
+ self._progress_bar.setTextVisible(False)
+ s = "QProgressBar {border: 0px} QProgressBar.chunk {background-color: #da4453}"
+ self._progress_bar.setStyleSheet(s)
+
+ layout.addWidget(self._progress_bar)
+
+ layout.addWidget(self._tab_widget)
+ self.setCentralWidget(central_widget)
+
+ self._tab_widget.title_changed.connect(self.handle_web_view_title_changed)
+ if not forDevTools:
+ self._tab_widget.link_hovered.connect(self._show_status_message)
+ self._tab_widget.load_progress.connect(self.handle_web_view_load_progress)
+ self._tab_widget.web_action_enabled_changed.connect(
+ self.handle_web_action_enabled_changed)
+ self._tab_widget.url_changed.connect(self._url_changed)
+ self._tab_widget.fav_icon_changed.connect(self._fav_action.setIcon)
+ self._tab_widget.dev_tools_requested.connect(self.handle_dev_tools_requested)
+ self._url_line_edit.returnPressed.connect(self._address_return_pressed)
+ self._tab_widget.find_text_finished.connect(self.handle_find_text_finished)
+
+ focus_url_line_edit_action = QAction(self)
+ self.addAction(focus_url_line_edit_action)
+ focus_url_line_edit_action.setShortcut(QKeySequence(Qt.CTRL | Qt.Key_L))
+ focus_url_line_edit_action.triggered.connect(self._focus_url_lineEdit)
+
+ self.handle_web_view_title_changed("")
+ self._tab_widget.create_tab()
+
+ @Slot(str)
+ def _show_status_message(self, m):
+ self.statusBar().showMessage(m)
+
+ @Slot(QUrl)
+ def _url_changed(self, url):
+ self._url_line_edit.setText(url.toDisplayString())
+
+ @Slot()
+ def _address_return_pressed(self):
+ url = QUrl.fromUserInput(self._url_line_edit.text())
+ self._tab_widget.set_url(url)
+
+ @Slot()
+ def _focus_url_lineEdit(self):
+ self._url_line_edit.setFocus(Qt.ShortcutFocusReason)
+
+ @Slot()
+ def _new_tab(self):
+ self._tab_widget.create_tab()
+ self._url_line_edit.setFocus()
+
+ @Slot()
+ def _close_current_tab(self):
+ self._tab_widget.close_tab(self._tab_widget.currentIndex())
+
+ @Slot()
+ def _update_close_action_text(self):
+ last_win = len(self._browser.windows()) == 1
+ self._close_action.setText("Quit" if last_win else "Close Window")
+
+ def sizeHint(self):
+ desktop_rect = QGuiApplication.primaryScreen().geometry()
+ return desktop_rect.size() * 0.9
+
+ def create_file_menu(self, tabWidget):
+ file_menu = QMenu("File")
+ file_menu.addAction("&New Window", QKeySequence.New,
+ self.handle_new_window_triggered)
+ file_menu.addAction("New &Incognito Window",
+ self.handle_new_incognito_window_triggered)
+
+ new_tab_action = QAction("New Tab", self)
+ new_tab_action.setShortcuts(QKeySequence.AddTab)
+ new_tab_action.triggered.connect(self._new_tab)
+ file_menu.addAction(new_tab_action)
+
+ file_menu.addAction("&Open File...", QKeySequence.Open,
+ self.handle_file_open_triggered)
+ file_menu.addSeparator()
+
+ close_tab_action = QAction("Close Tab", self)
+ close_tab_action.setShortcuts(QKeySequence.Close)
+ close_tab_action.triggered.connect(self._close_current_tab)
+ file_menu.addAction(close_tab_action)
+
+ self._close_action = QAction("Quit", self)
+ self._close_action.setShortcut(QKeySequence(Qt.CTRL | Qt.Key_Q))
+ self._close_action.triggered.connect(self.close)
+ file_menu.addAction(self._close_action)
+
+ file_menu.aboutToShow.connect(self._update_close_action_text)
+ return file_menu
+
+ @Slot()
+ def _find_next(self):
+ tab = self.current_tab()
+ if tab and self._last_search:
+ tab.findText(self._last_search)
+
+ @Slot()
+ def _find_previous(self):
+ tab = self.current_tab()
+ if tab and self._last_search:
+ tab.findText(self._last_search, QWebEnginePage.FindBackward)
+
+ def create_edit_menu(self):
+ edit_menu = QMenu("Edit")
+ find_action = edit_menu.addAction("Find")
+ find_action.setShortcuts(QKeySequence.Find)
+ find_action.triggered.connect(self.handle_find_action_triggered)
+
+ find_next_action = edit_menu.addAction("Find Next")
+ find_next_action.setShortcut(QKeySequence.FindNext)
+ find_next_action.triggered.connect(self._find_next)
+
+ find_previous_action = edit_menu.addAction("Find Previous")
+ find_previous_action.setShortcut(QKeySequence.FindPrevious)
+ find_previous_action.triggered.connect(self._find_previous)
+ return edit_menu
+
+ @Slot()
+ def _stop(self):
+ self._tab_widget.trigger_web_page_action(QWebEnginePage.Stop)
+
+ @Slot()
+ def _reload(self):
+ self._tab_widget.trigger_web_page_action(QWebEnginePage.Reload)
+
+ @Slot()
+ def _zoom_in(self):
+ tab = self.current_tab()
+ if tab:
+ tab.setZoomFactor(tab.zoomFactor() + 0.1)
+
+ @Slot()
+ def _zoom_out(self):
+ tab = self.current_tab()
+ if tab:
+ tab.setZoomFactor(tab.zoomFactor() - 0.1)
+
+ @Slot()
+ def _reset_zoom(self):
+ tab = self.current_tab()
+ if tab:
+ tab.setZoomFactor(1)
+
+ @Slot()
+ def _toggle_toolbar(self):
+ if self._toolbar.isVisible():
+ self._view_toolbar_action.setText("Show Toolbar")
+ self._toolbar.close()
+ else:
+ self._view_toolbar_action.setText("Hide Toolbar")
+ self._toolbar.show()
+
+ @Slot()
+ def _toggle_statusbar(self):
+ sb = self.statusBar()
+ if sb.isVisible():
+ self._view_statusbar_action.setText("Show Status Bar")
+ sb.close()
+ else:
+ self._view_statusbar_action.setText("Hide Status Bar")
+ sb.show()
+
+ def create_view_menu(self):
+ view_menu = QMenu("View")
+ self._stop_action = view_menu.addAction("Stop")
+ shortcuts = []
+ shortcuts.append(QKeySequence(Qt.CTRL | Qt.Key_Period))
+ shortcuts.append(QKeySequence(Qt.Key_Escape))
+ self._stop_action.setShortcuts(shortcuts)
+ self._stop_action.triggered.connect(self._stop)
+
+ self._reload_action = view_menu.addAction("Reload Page")
+ self._reload_action.setShortcuts(QKeySequence.Refresh)
+ self._reload_action.triggered.connect(self._reload)
+
+ zoom_in = view_menu.addAction("Zoom In")
+ zoom_in.setShortcut(QKeySequence(Qt.CTRL | Qt.Key_Plus))
+ zoom_in.triggered.connect(self._zoom_in)
+
+ zoom_out = view_menu.addAction("Zoom Out")
+ zoom_out.setShortcut(QKeySequence(Qt.CTRL | Qt.Key_Minus))
+ zoom_out.triggered.connect(self._zoom_out)
+
+ reset_zoom = view_menu.addAction("Reset Zoom")
+ reset_zoom.setShortcut(QKeySequence(Qt.CTRL | Qt.Key_0))
+ reset_zoom.triggered.connect(self._reset_zoom)
+
+ view_menu.addSeparator()
+ self._view_toolbar_action = QAction("Hide Toolbar", self)
+ self._view_toolbar_action.setShortcut("Ctrl+|")
+ self._view_toolbar_action.triggered.connect(self._toggle_toolbar)
+ view_menu.addAction(self._view_toolbar_action)
+
+ self._view_statusbar_action = QAction("Hide Status Bar", self)
+ self._view_statusbar_action.setShortcut("Ctrl+/")
+ self._view_statusbar_action.triggered.connect(self._toggle_statusbar)
+ view_menu.addAction(self._view_statusbar_action)
+ return view_menu
+
+ @Slot()
+ def _emit_dev_tools_requested(self):
+ tab = self.current_tab()
+ if tab:
+ tab.dev_tools_requested.emit(tab.page())
+
+ def create_window_menu(self, tabWidget):
+ menu = QMenu("Window")
+ self._next_tab_action = QAction("Show Next Tab", self)
+ shortcuts = []
+ shortcuts.append(QKeySequence(Qt.CTRL | Qt.Key_BraceRight))
+ shortcuts.append(QKeySequence(Qt.CTRL | Qt.Key_PageDown))
+ shortcuts.append(QKeySequence(Qt.CTRL | Qt.Key_BracketRight))
+ shortcuts.append(QKeySequence(Qt.CTRL | Qt.Key_Less))
+ self._next_tab_action.setShortcuts(shortcuts)
+ self._next_tab_action.triggered.connect(tabWidget.next_tab)
+
+ self._previous_tab_action = QAction("Show Previous Tab", self)
+ shortcuts.clear()
+ shortcuts.append(QKeySequence(Qt.CTRL | Qt.Key_BraceLeft))
+ shortcuts.append(QKeySequence(Qt.CTRL | Qt.Key_PageUp))
+ shortcuts.append(QKeySequence(Qt.CTRL | Qt.Key_BracketLeft))
+ shortcuts.append(QKeySequence(Qt.CTRL | Qt.Key_Greater))
+ self._previous_tab_action.setShortcuts(shortcuts)
+ self._previous_tab_action.triggered.connect(tabWidget.previous_tab)
+
+ self._inspector_action = QAction("Open inspector in window", self)
+ shortcuts.clear()
+ shortcuts.append(QKeySequence(Qt.CTRL | Qt.SHIFT | Qt.Key_I))
+ self._inspector_action.setShortcuts(shortcuts)
+ self._inspector_action.triggered.connect(self._emit_dev_tools_requested)
+ self._window_menu = menu
+ menu.aboutToShow.connect(self._populate_window_menu)
+ return menu
+
+ def _populate_window_menu(self):
+ menu = self._window_menu
+ menu.clear()
+ menu.addAction(self._next_tab_action)
+ menu.addAction(self._previous_tab_action)
+ menu.addSeparator()
+ menu.addAction(self._inspector_action)
+ menu.addSeparator()
+ windows = self._browser.windows()
+ index = 0
+ title = self.window().windowTitle()
+ for window in windows:
+ action = menu.addAction(title, self.handle_show_window_triggered)
+ action.setData(index)
+ action.setCheckable(True)
+ if window == self:
+ action.setChecked(True)
+ index += 1
+
+ def create_help_menu(self):
+ help_menu = QMenu("Help")
+ help_menu.addAction("About Qt", qApp.aboutQt) # noqa: F821
+ return help_menu
+
+ @Slot()
+ def _back(self):
+ self._tab_widget.trigger_web_page_action(QWebEnginePage.Back)
+
+ @Slot()
+ def _forward(self):
+ self._tab_widget.trigger_web_page_action(QWebEnginePage.Forward)
+
+ @Slot()
+ def _stop_reload(self):
+ a = self._stop_reload_action.data()
+ self._tab_widget.trigger_web_page_action(QWebEnginePage.WebAction(a))
+
+ def create_tool_bar(self):
+ navigation_bar = QToolBar("Navigation")
+ navigation_bar.setMovable(False)
+ navigation_bar.toggleViewAction().setEnabled(False)
+
+ self._history_back_action = QAction(self)
+ back_shortcuts = remove_backspace(QKeySequence.keyBindings(QKeySequence.Back))
+
+ # For some reason Qt doesn't bind the dedicated Back key to Back.
+ back_shortcuts.append(QKeySequence(Qt.Key_Back))
+ self._history_back_action.setShortcuts(back_shortcuts)
+ self._history_back_action.setIconVisibleInMenu(False)
+ back_icon = QIcon.fromTheme(QIcon.ThemeIcon.GoPrevious,
+ QIcon(":go-previous.png"))
+ self._history_back_action.setIcon(back_icon)
+ self._history_back_action.setToolTip("Go back in history")
+ self._history_back_action.triggered.connect(self._back)
+ navigation_bar.addAction(self._history_back_action)
+
+ self._history_forward_action = QAction(self)
+ fwd_shortcuts = remove_backspace(QKeySequence.keyBindings(QKeySequence.Forward))
+ fwd_shortcuts.append(QKeySequence(Qt.Key_Forward))
+ self._history_forward_action.setShortcuts(fwd_shortcuts)
+ self._history_forward_action.setIconVisibleInMenu(False)
+ next_icon = QIcon.fromTheme(QIcon.ThemeIcon.GoNext,
+ QIcon(":go-next.png"))
+ self._history_forward_action.setIcon(next_icon)
+ self._history_forward_action.setToolTip("Go forward in history")
+ self._history_forward_action.triggered.connect(self._forward)
+ navigation_bar.addAction(self._history_forward_action)
+
+ self._stop_reload_action = QAction(self)
+ self._stop_reload_action.triggered.connect(self._stop_reload)
+ navigation_bar.addAction(self._stop_reload_action)
+
+ self._url_line_edit = QLineEdit(self)
+ self._fav_action = QAction(self)
+ self._url_line_edit.addAction(self._fav_action, QLineEdit.LeadingPosition)
+ self._url_line_edit.setClearButtonEnabled(True)
+ navigation_bar.addWidget(self._url_line_edit)
+
+ downloads_action = QAction(self)
+ downloads_action.setIcon(QIcon(":go-bottom.png"))
+ downloads_action.setToolTip("Show downloads")
+ navigation_bar.addAction(downloads_action)
+ dw = self._browser.download_manager_widget()
+ downloads_action.triggered.connect(dw.show)
+
+ return navigation_bar
+
+ def handle_web_action_enabled_changed(self, action, enabled):
+ if action == QWebEnginePage.Back:
+ self._history_back_action.setEnabled(enabled)
+ elif action == QWebEnginePage.Forward:
+ self._history_forward_action.setEnabled(enabled)
+ elif action == QWebEnginePage.Reload:
+ self._reload_action.setEnabled(enabled)
+ elif action == QWebEnginePage.Stop:
+ self._stop_action.setEnabled(enabled)
+ else:
+ print("Unhandled webActionChanged signal", file=sys.stderr)
+
+ def handle_web_view_title_changed(self, title):
+ off_the_record = self._profile.isOffTheRecord()
+ suffix = ("Qt Simple Browser (Incognito)" if off_the_record
+ else "Qt Simple Browser")
+ if title:
+ self.setWindowTitle(f"{title} - {suffix}")
+ else:
+ self.setWindowTitle(suffix)
+
+ def handle_new_window_triggered(self):
+ window = self._browser.create_window()
+ window._url_line_edit.setFocus()
+
+ def handle_new_incognito_window_triggered(self):
+ window = self._browser.create_window(True)
+ window._url_line_edit.setFocus()
+
+ def handle_file_open_triggered(self):
+ filter = "Web Resources (*.html *.htm *.svg *.png *.gif *.svgz);;All files (*.*)"
+ url, _ = QFileDialog.getOpenFileUrl(self, "Open Web Resource", "", filter)
+ if url:
+ self.current_tab().setUrl(url)
+
+ def handle_find_action_triggered(self):
+ if not self.current_tab():
+ return
+ search, ok = QInputDialog.getText(self, "Find", "Find:",
+ QLineEdit.Normal, self._last_search)
+ if ok and search:
+ self._last_search = search
+ self.current_tab().findText(self._last_search)
+
+ def closeEvent(self, event):
+ count = self._tab_widget.count()
+ if count > 1:
+ m = f"Are you sure you want to close the window?\nThere are {count} tabs open."
+ ret = QMessageBox.warning(self, "Confirm close", m,
+ QMessageBox.Yes | QMessageBox.No,
+ QMessageBox.No)
+ if ret == QMessageBox.No:
+ event.ignore()
+ return
+
+ event.accept()
+ self.about_to_close.emit()
+ self.deleteLater()
+
+ def tab_widget(self):
+ return self._tab_widget
+
+ def current_tab(self):
+ return self._tab_widget.current_web_view()
+
+ def handle_web_view_load_progress(self, progress):
+ if 0 < progress and progress < 100:
+ self._stop_reload_action.setData(QWebEnginePage.Stop)
+ self._stop_reload_action.setIcon(self._stop_icon)
+ self._stop_reload_action.setToolTip("Stop loading the current page")
+ self._progress_bar.setValue(progress)
+ else:
+ self._stop_reload_action.setData(QWebEnginePage.Reload)
+ self._stop_reload_action.setIcon(self._reload_icon)
+ self._stop_reload_action.setToolTip("Reload the current page")
+ self._progress_bar.setValue(0)
+
+ def handle_show_window_triggered(self):
+ action = self.sender()
+ if action:
+ offset = action.data()
+ window = self._browser.windows()[offset]
+ window.activateWindow()
+ window.current_tab().setFocus()
+
+ def handle_dev_tools_requested(self, source):
+ page = self._browser.create_dev_tools_window().current_tab().page()
+ source.setDevToolsPage(page)
+ source.triggerAction(QWebEnginePage.InspectElement)
+
+ def handle_find_text_finished(self, result):
+ sb = self.statusBar()
+ if result.numberOfMatches() == 0:
+ sb.showMessage(f'"{self._lastSearch}" not found.')
+ else:
+ active = result.activeMatch()
+ number = result.numberOfMatches()
+ sb.showMessage(f'"{self._last_search}" found: {active}/{number}')
+
+ def browser(self):
+ return self._browser
diff --git a/examples/webenginewidgets/simplebrowser/certificateerrordialog.ui b/examples/webenginewidgets/simplebrowser/certificateerrordialog.ui
new file mode 100644
index 000000000..a97f25b6e
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/certificateerrordialog.ui
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>CertificateErrorDialog</class>
+ <widget class="QDialog" name="CertificateErrorDialog">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>370</width>
+ <height>141</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Dialog</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <property name="leftMargin">
+ <number>20</number>
+ </property>
+ <property name="rightMargin">
+ <number>20</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="m_iconLabel">
+ <property name="text">
+ <string>Icon</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="m_errorLabel">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Error</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ <property name="wordWrap">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="m_infoLabel">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>If you wish so, you may continue with an unverified certificate. Accepting an unverified certificate mean you may not be connected with the host you tried to connect to.
+
+Do you wish to override the security check and continue ? </string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+ </property>
+ <property name="wordWrap">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>16</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::No|QDialogButtonBox::Yes</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>CertificateErrorDialog</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>248</x>
+ <y>254</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>157</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>CertificateErrorDialog</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>316</x>
+ <y>260</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>286</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/examples/webenginewidgets/simplebrowser/data/3rdparty/COPYING b/examples/webenginewidgets/simplebrowser/data/3rdparty/COPYING
new file mode 100644
index 000000000..220881da6
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/data/3rdparty/COPYING
@@ -0,0 +1 @@
+The icons in this repository are herefore released into the Public Domain.
diff --git a/examples/webenginewidgets/simplebrowser/data/3rdparty/dialog-error.png b/examples/webenginewidgets/simplebrowser/data/3rdparty/dialog-error.png
new file mode 100644
index 000000000..cdd95bade
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/data/3rdparty/dialog-error.png
Binary files differ
diff --git a/examples/webenginewidgets/simplebrowser/data/3rdparty/edit-clear.png b/examples/webenginewidgets/simplebrowser/data/3rdparty/edit-clear.png
new file mode 100644
index 000000000..5542948bc
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/data/3rdparty/edit-clear.png
Binary files differ
diff --git a/examples/webenginewidgets/simplebrowser/data/3rdparty/go-bottom.png b/examples/webenginewidgets/simplebrowser/data/3rdparty/go-bottom.png
new file mode 100644
index 000000000..bf973fedc
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/data/3rdparty/go-bottom.png
Binary files differ
diff --git a/examples/webenginewidgets/simplebrowser/data/3rdparty/go-next.png b/examples/webenginewidgets/simplebrowser/data/3rdparty/go-next.png
new file mode 100644
index 000000000..a68e2db77
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/data/3rdparty/go-next.png
Binary files differ
diff --git a/examples/webenginewidgets/simplebrowser/data/3rdparty/go-previous.png b/examples/webenginewidgets/simplebrowser/data/3rdparty/go-previous.png
new file mode 100644
index 000000000..c37bc0414
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/data/3rdparty/go-previous.png
Binary files differ
diff --git a/examples/webenginewidgets/simplebrowser/data/3rdparty/process-stop.png b/examples/webenginewidgets/simplebrowser/data/3rdparty/process-stop.png
new file mode 100644
index 000000000..e7a8d1722
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/data/3rdparty/process-stop.png
Binary files differ
diff --git a/examples/webenginewidgets/simplebrowser/data/3rdparty/qt_attribution.json b/examples/webenginewidgets/simplebrowser/data/3rdparty/qt_attribution.json
new file mode 100644
index 000000000..d81f5bf23
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/data/3rdparty/qt_attribution.json
@@ -0,0 +1,24 @@
+{
+ "Id": "simplebrowser-tango",
+ "Name": "Tango Icon Library",
+ "QDocModule": "qtwebengine",
+ "QtUsage": "Used in WebEngine SimpleBrowser example.",
+
+ "QtParts": [ "examples" ],
+ "Description": "Selected icons from the Tango Icon Library",
+ "Homepage": "http://tango.freedesktop.org/Tango_Icon_Library",
+ "Version": "0.8.90",
+ "DownloadLocation": "http://tango.freedesktop.org/releases/tango-icon-theme-0.8.90.tar.gz",
+ "LicenseId": "urn:dje:license:public-domain",
+ "License": "Public Domain",
+ "LicenseFile": "COPYING",
+ "Copyright": "Ulisse Perusin <uli.peru@gmail.com>
+Steven Garrity <sgarrity@silverorange.com>
+Lapo Calamandrei <calamandrei@gmail.com>
+Ryan Collier <rcollier@novell.com>
+Rodney Dawes <dobey@novell.com>
+Andreas Nilsson <nisses.mail@home.se>
+Tuomas Kuosmanen <tigert@tigert.com>
+Garrett LeSage <garrett@novell.com>
+Jakub Steiner <jimmac@novell.com>"
+}
diff --git a/examples/webenginewidgets/simplebrowser/data/3rdparty/text-html.png b/examples/webenginewidgets/simplebrowser/data/3rdparty/text-html.png
new file mode 100644
index 000000000..a896697d7
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/data/3rdparty/text-html.png
Binary files differ
diff --git a/examples/webenginewidgets/simplebrowser/data/3rdparty/view-refresh.png b/examples/webenginewidgets/simplebrowser/data/3rdparty/view-refresh.png
new file mode 100644
index 000000000..606ea9eba
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/data/3rdparty/view-refresh.png
Binary files differ
diff --git a/examples/webenginewidgets/simplebrowser/data/AppLogoColor.png b/examples/webenginewidgets/simplebrowser/data/AppLogoColor.png
new file mode 100644
index 000000000..2a4971782
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/data/AppLogoColor.png
Binary files differ
diff --git a/examples/webenginewidgets/simplebrowser/data/ninja.png b/examples/webenginewidgets/simplebrowser/data/ninja.png
new file mode 100644
index 000000000..e5d7b6fd7
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/data/ninja.png
Binary files differ
diff --git a/examples/webenginewidgets/simplebrowser/data/rc_simplebrowser.py b/examples/webenginewidgets/simplebrowser/data/rc_simplebrowser.py
new file mode 100644
index 000000000..5d5a3736a
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/data/rc_simplebrowser.py
@@ -0,0 +1,1391 @@
+# Resource object code (Python 3)
+# Created by: object code
+# Created by: The Resource Compiler for Qt version 6.5.0
+# WARNING! All changes made in this file will be lost!
+
+from PySide6 import QtCore
+
+qt_resource_data = b"\
+\x00\x00\x06\xdf\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
+\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\
+\x00\x00\x06\x96IDATX\x85\xe5\x97[l\x1cW\
+\x19\xc7\x7f3\xb3\xde\xab\xd7^{}\x8d\xe38I\xeb\
+]\xe7\x82\x1b\xa3\xdaN\xda\x105\x12\x17\x89\x0a\x19!\
+\x11\x10O\x01E\x02a\xc4\xe5\xa5\xe2\x01\xa1\xc0\x0b\xbc\
+\x80DE@\x88\x16\xfc\xd0\x82\x84J\xaa\x906\x94\xf4\
+B\xd2`\x92Z\xd8M\x1c\xdb\x91/\xc9:\xb1\x1dg\
+\xed\xb5\xd7;3;\xb3\xbbs\xe3!\xde\xcd\xda^\xbb\
+N%\x9e\xf8\xa4\xa39\xe7\xcc\xd9\xf3\xfd\xe6\xff}\xe7\
+\xb2\xf0\xffn\xc2\xfa\x8e3g\xce|\xc9\xe5r\xf5\x01\
+AI\x92\x10E\x11\xdb\xb6\xb1,\xabPL\xd3,<\
+\x8b\xeb[\xf5\x01\x8ai\x9a'\xfb\xfa\xfa\xce\x16\xfbs\
+m \x12\x84\x97O\x9d:\x15\x5c\xadc\x9a&.\x97\
+\x0b\xc7q\xd6\x8c+no\xb3\x1e\xec\xed\xed}\x19\xd8\
+\x1a\xc0\xb2\xac\x10@,\x16C\x10\x04,\xcb\x22\x10\x08\
+\x90\xcb\xe5\xf2\x80\x08\xc2#\xe1\x8a\xeb\xa5\xday\x90\xba\
+\xba:r\xb9\x5ch\xfd\xbb\x0d\x00\x8e\xe3\x14\x9c\xe4'\
+[_/\xf5\xdc\xcc\xf9G\xd9\x06\x00\xdb\xb6\xd78-\
+v455Ux\xbf\x1d\xa7\x92$\x11\x89D\xd6|\
+\xdc\xb6\x00\xf2*\xac\x07imm\xfd\xdf+`Y\xd6\
+\x9a\x09\x8bU\xf88\x0aD\xa3\xd1B{\xdb\x0a\x94r\
+.\x08\x02\x91H\xe4c)\x90\xef\xdf\x16@^\x81R\
+I899\x89eY\xdb\x96]\x92$\xda\xda\xda\x0a\
+\xed\xc7\x02\x00\x18\x1a\x1a\xa2\xa3\xa3\xa3\x00\x90\x97\xb3\x18\
+\xce\xb2\x1c\x06\x06\xc6\xb9\xd2\x7f\x8b\xf1\x899\x94\x94\x0a\
+@\xb0\xb2\x9ch\xa4\x89d\x12:;#\x8f\x07\x90O\
+\xc2\xae\xae\xae5\xeb\x7fbbb\x8d\x02\xa3\xa3s\xfc\
+\xed\x8d\x9b\xb4}\xe2I\x9e=\xd6\xc17\xbe\xd9CM\
+\xc8\x8f\x961\x89\xcd+\x0c\x8f\xde\xe5\xfc\xdb#\xfc\xee\
+\xf7\xff\xe0\x07\xdf\xfb\xe2\xe3\x87\xc0\xb6\xed5\x12G\xa3\
+\xd1B\xfb\x8f}\xefp}d\x8e\x9f\xfc\xec[\xb4\xed\
+\xadeA\xce\xd2X\xe9&\x18,\xe7R\xff\x00\xde\xda\
+'\xe8:\xbc\x9f\xe7\x8e\xeeg|r\x96\xdf\xbet\x81\
+t\xaa\x1c\x1en\xff\x05\x12i=\xc0\xd1\xa3GO\x1f\
+?~\x1cUU\x11\x04\x01\xc7qp\xbb\xdd8\x8e\xc3\
+\xc4\xc4\x04\x0b\x0b\x0b\xbc\xf2\xea%\xe6\x97\x0c^\xfc\xc5\
+),\xc7d\xe2\xde<9\x13ty\x99\xc1[w\xf1\
+\x94\xd7\x90s$4E!(\xa6y\xfa\xc0.:\xbb\
+[\xf9`h\x9e``\x9fwvf\xe0\x9d\xbc?q\
+\xab\x10\xacO\xc2\xb6\xb66\x0c\xc3GlF\xe5\x97?\
+?Il6\x8e\x91\xcb\xd2T\xe5\xa7\xbe\xa1\x81@\xdd\
+^Z\xf7\xb5SU\xdb\x80O\xc8\x81\xa9\x12_\x92q\
+{\xdc47\x86\xf9\xe9\x8fNP\x11\xae\xea\xed\xee\xee\
+\xfd\xcc\xa6\x00\xab'WI\x1b\x1b\xbb\xc5\x8bg\xde\xe0\
+\x85\x17\xbe\x8c\xdf\xe7\xe5`\xa4\x85=\xcd\x0d\xcc\xdc\x8f\
+\xa3\xa7\x15\xdc\x1e\x0fn\xb7\x0b\x97K\xc2\xb2\xa1s\xdf\
+.>{\xac\x13\x9f\xd7\x8b(\x8a\x84\xab\x82|\xfd\xe4\
+1\xbf\xe0*\xfb\x0d\x9c\x167U\xa0\xf8\xab\x8b\x8b\xa2\
+\x88\xec\xd8\xd3\xcc\xa1\x83{\x00\xd04\x9d\xcb\xd7\xae\xd3\
+\x1c\xed\xa0\xa2\xaa\x16\xc7\x01Q\x10\x11\x04\x91\xfa\xa0\xc3\
+\xc5\xf7\xff\xc3\xb9\xb7\xfb\x99\xbc\x1d\xc3\xe5ra\x18\x06\
+\x9f\xea\xde'\xee\xd8\xdd\xd4p\xe4\xc8b\xcf\x96\x00\xa5\
+\xec\xf2\x951>\xf7\xe9C\x88\xab\xb9\xf1\xd6\x95AZ\
+\x9fz\x06\xb7\xc7\x87\x03\xd8\xf9\xe28,\xa5\xd2\x1c\xeb\
+n\xc7\xe7\xf518\x95\xe0\xdd\xab7V\xe77\xe9\xea\
+l\xf6#I_\x83\x8fX\x86\xeb\xf3\xe0\xe6H\x8co\
+\xf7\xf6p\xfe\xbd\x0fX\xd2%\x1a[\x9e\x22\xa5\x19T\
+\x07\xcapx\x98\xde\x86i\x91^\x9e\xe7\xf0\xa1}\x00\
+45\xd6\x030tc\x0c5\xad142ISS\
+5\xc0\xd1\x92\x0a\x14\xe7\xc0\xc0\xc0\x00\xa2\xf8h\x88\xa6\
+f\xf0\xfb=\xd4\x84*0]\xe5d\x0d\x1b9\x9d%\
+\xa1d\xd1\xb3&Z\xc6@\xd5\x0d|\x92\xb1A\xbd'\
+v\xef\xe4\xda\xf5qv\xd4V\x92\x16\x83\x0e\xb6\x13\xde\
+T\x81\xbc\x1d9r\x84l6[P\x00\xc7\xe1\xce\x03\
+\x9d\xe9\xb8L\xb8\x0c|Y\x1bM\x13\xd0\xcb\x1bH\xba\
+$D\xc0\xb4l\x02\x99\xf4\x9a9\x1d\xc7\xc14\x0d\x1a\
+\xc3A^\xbb4F\xa4\xad\xbd\xf0n\xd3\x10\xe4\xeb\xc5\
+a\xa8\xa8\x0a\xb2\xb0\xac\x90\x96jXPT\xbes<\
+\x8a$I\x5c\xb84\xc0\xb2\xa7\x05\xdbq0\x0c\x8bL\
+\xc6\xcf\xfc\x9b\x97I\xach|\xf5\xf9gp\xbb$t\
+]\xa7\xaa2\x80fH\xa8)\xcdD\x14\x92%C\xb0\
+\xfe8.\xb6\x9dM!F\xc7\xeeQ\xee\x91\xa8\xf2\x9a\
+H\xd2\xc3}\xec\xf3\xcfu\x11\x0d\xae\xa0,\xddgE\
+\xd1Y\xd1L\xc6\xe4jb\xd9:&\xee\xcc\xa0\xaa*\
+\xe9t\x9a\xd7/^#\x18\xaagfnQ\x04\xfeU\
+\x12 \x9f\x03\xa5N\xb9/<\x7f\x98[\x1f\x8eS\xe9\
+\x97\x98\x8e\xab\x18\xc6\xa3Xw\x1c\x8cb\xa4\xe6I*\
+\x1a+\x8aNJ\xd5\x91\xd3\x19>\x1c\x9fE\x96e\x14\
+E!\xb1\x92\xa61\x1c`z\xe4v\x06\xcb\xfa\xd3\xa6\
+\x0a\x94:4\x00**\x1cR\xf1\x07\xdc\x1a\x9f!\x1c\
+\xae\xe5W\xaf\xbc\x85,\xcbh\x9aF6\x9b%\xb6\x0c\
+\xcb\xb2\xbe\x0a\x90ANg0s\x19R\xa9\x143\xb3\
+\xf7\x09U\xd71\x1fW\xf4\xa5\xb9\x07\xf1\xabWk\xcf\
+m\x19\x82R\x10\x07\x0e\xec\xe7\xfb\xdf\xed\xe1\xfds\xef\
+Q\xe9\x11\xc8z\x9bX\x5c\x5c$\x91H\xf0\xeb\xbe\xb3\
+$r>\x92\xb2F\xb2\x08b\xe4n\x92d2I|\
+)EEM37\xde\xfd\xb7\xa3)\xf1\x1f\xc2i{\
+\xcb\x10lf\xed\xed\xbb\xf9d\xfb\x0e\xce\xbdz\x81\x1d\
+\x95ed\xb29b\xd3\xf7\xb8r\xc7&\xa9fI\xca\
+:IE#\xa9\xe8\xa4U\x85\xb8\x22\xb2\xb8,\xa3\xda\
+!\xfa\xff\xdeO\xe2A\xec\xdc\xf0\xf0\x9fo\x02e\xb0\
+q\x15\x04EQ\x94\x1d\xc7\xa9\x08\x85B\x05E\xca\xca\
+\xca\x0a\x8a\x98\xa6\xc9WN<\x8b\xfa\x87\x8b\x9c}\xe9\
+\xafd{\x9e\xc6[\x19b\x7fd7s\x09\x95\xb4\x96\
+\xc5\xe3\x18x\x03\x02\xf5\x95\xe54\x84\x1b\x19\xbe\xaf2\
+\xfc\xcfk\xac,\x8d\x9b\xc3\xd7_{\x1d\xf0\xf0p\xd3\
+\x5c\xf3\xd7,\x08\xd4vww\x9fhii\xf91\xe0\
+\xdbL\x85\x5c.\x87\xae\xebh\x9a\x1b\xc3\xdeIC\xcb\
+.vF\x9f\xa4\xae!\x84?\xe0\xc3\xb6\x1d\x14Ye\
+!\x9ebn|\x8a\xc4\xec,\x8e\x15\xb3\xe6\xe6F\xff\
+2;;{\x1e\x18\x04\xa6\x00\xbb\x18\xc0\x0d\xd4\x03a\
+ \xb4J\xb9\xe1\xbe\xb0n|\x95(z\xaa\x9b\x9a\x0e\
+u\x86\xaa\xf7\x1e\xf2zC;]\x92\xe8\x050-;\
+\xa3\xeb\xcb\x0f\x92K\xb7G\xe7\xe7\x87\x07m;'\x03\
+w\x81I`\x1aP\xd7+\x907\x0f\xe0]u\xb0\x9d\
+\x8b\xbe\xb8:>\x00\xf8W\x7f'\x01\x16\x90\x014@\
+Yu\x98\x01\xb2\x14\xdd\x88\xfe\x0b\xd2\xfcz\x18\x9f\x9f\
+e\xa7\x00\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x04\xc3\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
+\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\
+\x00\x00\x04zIDATX\x85\xed\x96\x7fhUe\
+\x18\xc7?\xef{\xceq\xded\xea\xa6\xce\x143S\x0b\
+\x8a~\x97.\xe7(*\x13-\x09\xcb\xfaC\x8a2#\
+(\x0cB7#\x09\xc2\xa0\xa2\xc8\xfe\x91D#,\x84\
+\xe5\x0f\xa4\x85\x18e\xaci\xb36\xdcr*\xe6\xaf\xd0\
+\xcd\x99S7\x9b\xda\xb6\xbb\xbb{~\xbc\xef\xdb\x1f\xf7\
+\x9cyw\xdd\xe6\x9c\xe0_{\xe0\xb9\xcf\xcb=\xe7y\
+\xbe\xdf\xf3}\x9e\xf3\xbe\x07\x06m\xd0\x06h\x05E\xb6\
+\x99Ql=w\xbdu\xe4\xf5$O\x1e{\xe7\xc6\xc2\
+b{% \x06Z\xc3\x1ah\xe2-\x05r\xe5\x87\xaf\
+}k\xc7\x93\xad\x8f0\xb5nz\xdel\xbd\xed\xdco\
+\xf8\xd7Z\xe7\xba\x14\x90R0\xbfp\xf1\xd0\x05\x8f\xbd\
+1'\x96p\xf6\xe5\xbf\xcb\x84\x1bJ\xc0S.G\x9b\
+\xab\xb8gj\xbe\xf3\xfa\xbc\xf7o\x1ffe\x1f,(\
+\xb6g\xdc0\x02Z\x07$\x838G\x9b*\x199b\
+\xb8|\xfb\x85\x8frF\x0d\x1f[^\xb0\xccZ\xd4\xdf\
+\x1a=\x0eOA\x91m\x10t\xf6\x99i\x88}\xfa\xd6\
+w\x1ch,\xc3S.\xc6h\xc6dOdLl\x12\
+\x9b\xcb\xd6$\xeb\x9b\x0e\x7f=\xbeA-\xdd\xba\x155\
+ \x02\x1f,^\x8be9H$B\x08\x04\x02\xa2\x18\
+fJa\xf3\xe7\xa9\x1f\xf1\xb5\x8b\xd6\x0a\x83&;k\
+4SF?HyMi\xb2\xfa\xe8\xce=I\x19\xcc\
+\xaf\xfd\x8c\xd6\xde\x08\xd8\xbdS3\xec>\xb1\x09)\xac\
+.\x17B\xa4\x91\xb9,\x85\xd6\x1am\x0c\xda(Z:\
+N\xd3\x9e\xbc\xc0\xa3\x0f\xcd\x1d:*gl\xe1\xcfU\
+\x9b\xff\xca_.\x9f\xac\xfe\xdc=\xde\x13L\xaf3\xa0\
+\x8c\xc2W\x1e\xbe\xf6\x08\xb4\x87\xaf]|\x95Z\x07x\
+(<t\x18\x95\xf0P\xc2E\x91\xba\xde\xee^\xa0\xe6\
+\xd4v&N\xb8\xcd~i\xce\x92\x09\xc3\x9c\xac\xda\x99\
+E\xf6S\xd7D\xc0\x18\x9d\x02S\x1e\xber\xf1\xb5\x1b\
+\x82\x84.|\x02\xe1\xa1\x84\x8f\x16>\x0a\x97\xb8\xdf\xc2\
+\xc5d#\xe7;Nr\xae\xad\x8e\xdd\xc77\xe1Yq\
+\xf1\xea\xbcw\xb2sF\xe4m\x9b\xb9\xdcY\xda\xef\x16\
+h\xad\x08\xb4\x87@\x22\xa5\xc4\x16V\x8a\xaf\x94a\xff\
+\x05\xca\x04tx\x97hK\xb6\x90\xf0\xdb\xd1J\xa1\x95\
+Ish\xfe\xbb\x81;\xf2\xa6\xf3\xf2\xdc%\xb1m\x15\
+%\x1fS||V\xe5\xaa\xe0\x99\xab\x12\xf0\xb5K\xc2\
+k\xc3\x926\x8e\xe3\x10h\x83\x09\x14F\x05\x04\xc6\xc5\
+\xd5q<\x95\xc0\x08\x00\x83\xb4\x09g\x04R?\x1ac\
+\x0cFC\xa0=<\xed\xa2M \x80)\xfdR \xe1\
+\xb5\xd3\xd4V\x8f\x90`9\x12\xcb\x16X\xb6@\xda\x02\
+i\x09\xa4\x04\xe9\xa4\xde\x09\x83\xc0h\x83\x8e\xc0\x85\x01\
+#\xc0\x08\xee\x1e\xff\x04y\xb1\xc9l\xd9\xb1\xae\xb3\xb5\
+\xfd\xe2\xea\xcaU\xc1\x8a\xab\x11\xe86\x17\xd2\x12H+\
+\x8c\xb6\xc0\x0a\xa3\x94\x02\x11\xdei\x0c\x18\x1d)`\x00\
+\x83-b<<\xe9Y\xfc\xb86\xdf\x97m\xe8Lt\
+t\xbeY\xbdZm\x02L_\x04D\xfa\x7fB\xa6\xf6\
+{)\xc3\xa7\x8e\xc0\xbbT\x10!\x01\x83\xd1\xe1\x93\x03\
+\xc3\x9c\x5c\xa6\xdd\xfc<\xf5'\xeb\x82\x8a\x9a\xb2\xb6\xd6\
+F\xb3\xe0\xd0fUK\xea\xf0S\xe9$2\x09\xc8t\
+\x05^|`E\x17P\xa4\x82\x90)\xf9\x85L\xf5\xbb\
+\xec\xcc\x97\xf8\x81\x8bV\xa9\x9acb\x13\xb97\xf7i\
+*\xf7\xee\xf6\x0e\x1e\xa9\xad;\xf5G\xb0\xf0L\x0dg\
+\xc3\xba\xe1$_\xde\x1d{j\x81\x00X\xbb\xe5\x93\x1e\
+.u\xb7\xe2%+\xb0\x1c\x81\x0e\x87\xef\xd6\xec\xfb\x98\
+\x14\xcbg\xfb/\xa5\xc9\x86\xd3\x0d;\x8flT\xcb\xda\
+[\x88\xa7\xd7%c\xf7\xcd$`\x00]\xf5E0\x1c\
+\x18\x028\xa1\xa7\xaf\x1d\xc0),\xb6+\x10dY\x96\
+@\x1b\x8b\xbbF>N\xcc\x1dGI\xe9\x06\xf7\xdf\x7f\
+.\xae\xa9\xfdF\xad\x03\xfc\xb0f\xbaw;\x1b2\x09\
+\xe8\xd0\x15\x10\x84l#\xef\x22\xd8UD\x08\x86f\xdd\
+\xc4\xfd\xb9\xb3\xb8t\xb6\xd3\x94\xfc\xb4>q\xeeXr\
+\xe9\xb1\x1f\xd4\xae0?r\x95\xb6\xees\x08I\x03\xbe\
+B\x99\xb4B\x16\x80-\x860-g!\xfb\xf7\xef\x0b\
+v\xfd\xfekK\xe3>\xfd\xca\xc9ru\x22\x03\xdcO\
+\x8bW|1\xf5D\xc0\x00^\x08\x18\x01\x07\xe1\xbd\x16\
+\xd1 \x09\x8c\xf2\xa1\xac\xa2\xdc=pd\xef\xc1\xfa\x1d\
+\xfe\xa2\xa6\xc3\xfc\x97A4\x8a.\xf4|,\xf7\xe7c\
+\xd2\xbe\x02\x1cdA\x91}!/w\x9c\xdft\xfel\
+\xc9\xa1\xf5\xea\xbdx\x9c\x80\xcb-\x8cH\xfb\xbd\x01\xf7\
+\xa5@\xa6ERF\xb3\xd0\xf5\xaa677-\xdf\xb3\
+Z}E\xf7\x01\x8bT\x1b\xb4A\xeb\x97\xfd\x0f\xcc\x13\
+\x1e)\xc9\x8aX\x89\x00\x00\x00\x00IEND\xaeB\
+`\x82\
+\x00\x00\x04\xef\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
+\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\
+\x00\x00\x04\xa6IDATX\x85\xed\x97]\x88UU\
+\x14\xc7\x7f{\x9fs\xef\x5c?\x82RqP\xfb\x18\xc3\
+\xac\x87\x14\xcb\xaf\xcaJK\xc8\x87\x12\xc6@\xa3D\x83\
+\x0a\x83\xa0\x82B{\xe9a\xc2zP{\xec\xc1\x08\x09\
+#$\x13\x95\x88P\xc8\xaf\xc1\x994t*1\xa7\xd4\
+1u\x1amrR\x9bf\xee\xd79g\xaf\xd5\xc3\xb9\
+\xf7:\xe3\xdc\x9b\xf7\x12C/m\xd8\xac}\xf69\xe7\
+\xbf~g\xed}\xd6:\x07\xfeo\xffq3\xd5\x5c4\
+o\xb5\xd5Z\x85[7HU\xda~\xb5\x82\xef\xad\xfa\
+\x14'\x11A\x94\xc5i\x84\x93\xb8\x8bF\xf1\xb1\x8b-\
+\x186\xed\xdc\x00d\xab\xd2\xad\x1a ty\x8e]\xd8\
+O\x7f\xee\x0a\xa1\xe4\x09%O\xe4r\x84. (\xd8\
+|\x94a\xd1=/U+\x09\x80\xad\xf6BU%\x92\
+\x00\xa7!\x91\x04D. t\x01\xa1\xcb\x17\xc6y\xc2\
+(\x87\x93px\x00\xaai\x82\xd4|O\x0d\x00\xf1>\
+T\x1dl\xe33\xf1\xd8I4\x9c\x00\xa0*(:\x08\
+\xe2\xdaX\x90\xe1\x04P\x95\xd8!J\xfc\xcc\x05\x98\x02\
+P\xe0r\xa5H\x0c\x0b\x80\x14\x9d\xaa E\x18\x8da\
+\x9cD\xe4\xc3t\xcd\xce\xa1\xcckX1\xe9\xa8\x22\xe2\
+P\x04\xac`P\xacQ\x5c\x98##\x97\xf1\x92\xa0j\
+0\xde\x10\x9d\x00HB\xf9\xe444\x0fX\xf3\xcc\xa4\
+\xb1\x937\xbf\xd2\xb86e\xadE\xd4\x15\x9e\xd8\xc5\x8e\
+\xad`\x00!\xa0/\xe8!\xebz\xb1\x09\xb0XT!\
+\x99H\xb1j\xe9\x9a8B\x02\xe24\xb9c\xef\xc7a\
+\xcf\xd5\x8b\xaf\x96{\xae\xb2\xe9\xf2\xe1\xb7\xec\xdaiw\
+>\xf8\xe6\xd3\x8f\xbe8\xe2\xfb\xae=\xa4\xc3^\x94\x10\
+gB\x1cy\xaed\xbb\xe8\x0b\xfe\x00\xab`\x0c&\x0e\
+\x10\xa8\xa2\x0a\x22J\xc2\x8cdA\xc3\x0aZ\xdb\xf6g\
+;:\x7f\xfc\xa8e\xbd\xbc^\xce\x97Wn\xb2\xb3U\
+\x0f\x8c\xb8\xb7k\x8e\xb5~\xc3\xf4\xc9\x8f\xf8\x97\xd2\x1d\
+8\x1b\x12i\x96\x8b\xfd'\xc9\xe9_\xd8\x84\xc1\xf3\x0c\
+\xd63X?\xb6\xc63\x18\x0b\xbe\xe73\xef\x8e\xa5t\
+\x9c=\x1d\x1c?}\xf8\xf0\x84_ty{{\xf9\x1d\
+Zi\x13j&\xa5\xcf\xee\xfbng\xc7\xb9\x8b\xedn\
+j\xfd\x5c\x94\x88\xee\xf4)\x9c\xcd\xe1%\x0c~\xc2\xe0\
+%-~\xd2\xe2'\x8a\xd6\xe0',\xf7Mz\x82\xbe\
+\xde\xb4~{l_wF\xb5q\xdb6\x5c\x05?\x95\
+\xdf\x82\xb6&2.\x90E\xdb\x9b7\xfd\x99\xcf\x05:\
+n\xf4\xad\x84&\x8b\xe7\x9b\xb8\x17 \xfc\x22D\xd2\xe2\
+%-S\xc6\xcdb\xb4\xa9gw\xf3\x8e\xfe\xc8\xc8\xc2\
+\xb6u\xf4V\xf2Qq\x09\x8a\xad\xeb0}\xb7\xcdq\
+{O\xfez|\xc5\xfdw?\x94\x10/\xa0\xdf\xf5`\
+}\x8bW\xea\xf1\x12\x18k\x18?\xaa\x81\xa97\xcd\xe7\
+\xf3/?\xc9f\xb3\xb9\xc6o\xd6\xcb\xd1\x7f\xd2\xbf!\
+\x00@\xe7!~\x1b\xff@x\xfa|\xd7\x99\xa7\x1e\x9b\
+\xb1$\xd1\xeb\xba\x09\xe8\xc3KX\xbc\x84\x89\xado\x18\
+\x9d\x1c\xc3\xcc\xb1K\xd8\xb9kk\xa6\xe7\xf2\xefo\xb7\
+\xbe\xef\xb6\xdcH\xbb*\x00\x80\xae\x16m\xaf\x9f\x9bM\
+^\xba\xdc={\xc1\xf4\xc6\xc4\xa5\xfc\x19\xc4\xe6K\x11\
+\xa8K\xa6\x98=v\x19\xcd\xad\xfbs\x1d\xe7\x7f\xda\xd1\
+\xb2N\xd6T\xa3[5\x00@g\x8b6\xdf<\xe3\xea\
+\xac(\x92\x86Yw=\xeew\xe7~\x06+x\xd62\
+cL#\x1d\xa7\xceF\x87\x8e\x1c<q%\xe5\x16\xf7\
+\x1c\xa8\xbc\xe9\xaeo\xb5\x14#\xcd\xd4\xe9\xf2\x1fN\x1c\
+9s\xee\xdc\xf9h\xfa-O\xa2\x0e\xa6\x8c\x9aO\x7f\
+O\xa0{\x9aw_\xc5D\x8bN4\x11\xd4\xa094\
+\x11\xcdlb\xe4\x88\x1cu\x15)\x94\x89\x16\xef\xe8\xb2\
+\xc5+\xeb&N\xb8\xdd\xf4\xf5\xf7\xb2y\xeb\x87\x12\x06\
+\xe1B\xfc\xe8X\xa5\xfb\xb2)\xf2mMd\xae\x9f\x1f\
+\x92\x8aSi\x9b\xc6\x90+\x8f\x17O\x89hj\xfbW\
+\x9f\xf1\xf2\xf3\xaf\xf1\xc5\xd7[\x5c\x10\xe6=\xeb\xb3\x0b\
+l\x9cm\xca\xa4\x9cT\x9a\x14TS\x0b\x807\x9e\xdb\
+\x90*\xea\x18\x0b\xd6\xc4\xd6X\xc0*\xc6\x98\xd8\x02/\
+4\xae\xf6\xe2\xc8h\x0a\x15\xa4P%E\x04u\xe0D\
+\x10Q>\xd8\xf2N\xd9\xc8\x94\x05\x88$d\xdf\x85\x8d\
+x\xd6\xc3X\xc5\xfa\x03K\xb1\xc3\xa9\xc3\x89\xa0\x02.\
+\x8a\x8b\x95D\x82\x08H\xe4P\x0c\xea\xb4T\x90\x96L\
+[]\xd6yE\x80|\x94a^\xfd\xcak\x13\xa6\x18\
+\x05\x83)F\xc3\x98\xd2\x12\x19S,F\xf1q\x1c\x81\
+xNE\x11)\xad\x89\x0f\x0c\xfal*\x0b\xb0q\xdb\
+\xbb\x15\x89\xffe\xb3\xc4\xd8%\xa2J\x7f/\x16H\x10\
+\x03z\x03\xec\xc0^\x14+\x0a* \x80\xbb\xaeG\x05\
+\x1b\x14\xc6\x83\xb6\xe8\x8d~\x9fL\xc1\xd1@\x08;`\
+\xbexMQT\x0a\xe3\xa2\xe3\xa80W\xf1{\xbd\xaa\
+\xff\xb7*\xef\xad\xfd\x8b\x14\xf8\x1b\xa76\x84\xbb\x5c\xf4\
+\x09<\x00\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x07\xe8\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
+\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\
+\x00\x00\x07\x9fIDATX\x85\xc5\x97ilT\xd7\
+\x15\xc7\xff\xf7\xde\xb7\xcc\xe6\x19\x0f\xb6\xd9q\x0dij\
+\x84\xa1,\x06\x5c5\xe4\x03(%%Q\x8bB\x15Z\
+\xe3\x80\x9a\x14\xe3\xa6\x8a\x14\xb5R\x94\x96\xb6R\xfb\xa1\
+\xf9P\xa9\xad\xd4FE\xa1,i\xb0I\x05\xa1\xca\xd2\
+\xaa\x09\x11qC\x09M\x00c\x96\x1a\x12\x88\xb1\x0dx\
+\xb7g\xb3g\xe6\xad\xf7\xf4\xc3\xcc\xd0\xe7\x05\xdb\xdfz\
+\xa4\xab7\xf7\xcd\xb9\xe7\xff;w\xce=\xef\x0d\xf0\x7f\
+66\x13\xa7\xd5O7.\xf3\xf9\xd5\xef(\x1c\x8f;\
+\x0eU8\xae[\xc49s\x18X\x96\x0b\xd6n\xbb\xf2\
+#\xd7u\xde1\x93\xbe3m\xc7\xb7[S\xc5Z[\
+\x7f\xe4[\x17\xfe\xb4\xf3\xc4\x8c\x00\xd6\xd5\x1f\xad\xd25\
+~0\x12\xf2-\xdd\xb0\xb2<T>\xafX\x84\x83\x1a\
+tM\x81#%L\xc3\xc6p\xca@\xcf`\xca\xbd|\
+s }\xb7?E\x8c\xd3A\xd3\xa2\xdf\xb7\x1e\xac\xeb\
+\x1a\x1f\xaf\xfa\x99\xc6\xcd\xe0x\xaf\xe5\xc0S\xf7t\xef\
+\x0b\xb0\xae\xbe\xe9\xbb~]\xf9\xc3\xf6\xafU\x05\x97.\
+.eD\x80$\x02I\x82K\x04)s~\x04\x803\
+@\xe1\x0c\xa9\x8c\x8d\xd6\x1b}\xf6\xe9\xf3\x9d\xb6Cn\
+\x93#\xb1\xb7e\xff\x8e!\x00X\xfb\xbd\xc6\x87\x14E\
+\x9c\xb4]70-\xc0\xba\x86\xa6m\x01]=\xf2\xfc\
+\xb7k\x02\xc5a\x1fd^\x90@ \x99\x03q$\x81\
+\x88 %A\x12 )\x07\xa2\xab\x1c\xae$|t\xe9\
+\xb6}\xba\xa5\xd3p\x80\x06&\xe9\xba\x10\xfc_[7\
+U\x85\xde8y\x05^\x00e\xbc\xf8\xfa]\x7f.\xe1\
+\x8c\x1fjx\xa2:0+\xe2\x83K\x04\xc3r\x10K\
+daX\x0e\x14!P\x14\xd4\x10\x09\xe9 \x02lW\
+\xc2r$H\x12lI0m\x17\x823<\xbc\xbaB\
+\xad\xac(S\xffr\xf2\xca\x81x2\x1bxb\xd32\
+Z87<!\xd9\x09\x00\x14P\xeb\xd7/\x9f\xaf\xcf\
+++\xc2\xd5\xf6\x01z\xff\xe3[r0\x91\xe1\x8c\x81\
+\x11Q\xce\x87H\x0a\xce\xec\xc5\xf3\xa3\xe6\xaa\xa5\xf3C\
+\x95\x15%\xdc\xa72\xa4M\x17\x19\xd3F2c!\x95\
+I!\xa8+\xd8\xb1eU k\xd8\xd0t\x95\xb9\x92\
+\xa6\x07\xd0\x05\xdfSS\xb5\xc0w\xe8\xed\x8b\xee\xad\xbb\
+\x098\x92\x84\xe0\xdc\xb4,\xa7\x9b\xb8\xbb\xa3e\xff\xae\
+O\x00\xa0z\xcf\xb1\xc8\xf5[C5\xed\xdd\xf1\xdd\x80\
+||M\xe5\x02\xb6\xa2r\x9e\x1f\x5c m\xb8p%\
+\x10O\xdb\x185]\xcc\x89\xe8h\xef\x1b\xc5\xb2\x85\x13\
+w`L\x0dT\xefy%\xe0W\x8a\x07WV\xce\xd1\
+.~\xda\x87h8\xa8(\x0aG\xdfP\x22.\x1c\xf5\
+\x8b\xff>\xb8=6Y\xcd\xacx\xb6)\xeaw\xf9\xb3\
+\x82\xb3\x9f|e\xe5\x22\xdf\xca\xcay\xca`\xd2D<\
+cCJB!\xf3\xb5\x0fD\xf1\xebW\xcfP\xcb\x81\
+:^X\xcb\xbd\x818\x15-&P\xe0\xd2g\xbd\xe2\
+\x0b\x0bJXI4\x18\x13B\xf4\x83X\xdb\xfd\xc4\x01\
+\xe0\xea\xbe\xba\xf8\xb9\xfd\xb5/\x19\x16U\x9e\xbd\xdcu\
+\xf2\xd57/\xa0$\xa4\xa0\xbc4\x00\xa2\x5c\xb1\x02\x00\
+\xe7\x0c\x9c\xc1\x1c\xa3\xe9\x9dH&\xb9a9\xd0|\xbe\
+\xe1\x90\xdf\xf7A@\xd7?p\x1c\xe7&\x91;\xe1L\
+Of\xad\x87j{\x00\xfaXQ\xb8\xa5(\x0a\xe2\xa3\
+\x16\x88\x00\x22\x801\x80\xb3\x89\x87nL\x0d(6\x5c\
+G\x00\xb3\xa3\xa1\x7f\x04\x03\xfa5\xc6y\xb28\x12\x0c\
+\x0c\x0d\x8f\xcc\xa8cV\xd77~?\xec\xd7\x7f\x5c\xfb\
+\xd8*\xad?i \x91\xb6 \x91\xeb\x15\x85\x1d\x98\x12\
+ \xeb\xc8.Up\x8cf\xb2\x1f\xf6w;\xed\xb6\x22\
+F\x93\xd9\x84\xe9\xba\xf6\xe8t\xe25\x0dM[}\xba\
+\xf6\xdb]\xdfX\xed\xd7u\x15A\x9f\x86\xf2\xd2\x00\xc0\
+\x00\x06\x06Up\x08\x06\x0fN\xce& \xad{\xfa\xf5\
+E\xe7\x0f\xd7\xde\x99I\xc6\x05[\xb3\xfb\xb5M\x0c\xfc\
+\xd4L\xfd\xa7\xec\x84\xd5\xbb\x1bIp\x96-\xcc%\x91\
+B\x04u\xb2@\xd2\xd5f\xb7\x1e\xde>8S\xe1'\
+\x9f<&\xba\x22F\xf9\xb9\x03\xbb:\x0a\xf7&\xf4\x01\
+\x00x\xf9\x85\xaf\xfb\x81\x5c\xf1H\x22\xd8\xae\x84\x94\xb9\
+B\xea\xe8Mb\xdf\x89\xf3)\xdbr\xab\xa7\x13on\
+\xee\xf0m\xdc\xb8\xd8(\xcc\xdb\x8b\xado2\xe2\x7f\x85\
+'q>\xd9BI\x84\xcb\x9d\x09\xb4v\xc4q\xb93\
+\x81kwR\x88\x8d\x9a\x18\x88gp\xe0\xcd\x96\xb4\xe3\
+:\x9b/\x1e\xdc\xf9\xf9\x94\xe9\x1217\xaa\x967\xb7\
+\x0d\xcc\xfd\x9f\x18\xb9@\xae\x89M\x090\xdef\x854\
+\xa8\x82\xe1\x8f\xc7\xceI\xc3v\xeb\x0a\xddp*\xfb\xc5\
+/\xc1\xae\xdf\xcd>, \xabN]\xed\x7f\xa0\xb9\xb9\
+YQUmk\xee[c\x1a\x00O\xa12\x06\x94\x14\
+i\xc8dm\x00\xc4\x05xm\xf5\x9e\xa3\xa5\xd3\x01t\
+F.\x85\xe3i\xf7\xab\x00_\xa6p\xaaj\x8b\xcf\xd9\
+H$w0\x06XB\x8cL\x09\xe0}f\x10\x017\
+{G 9\xc7\x0fw>\x84\x0dk\xca\xb7\x09\x8e\xf6\
+u\xf5G\x9e\xaf\xa9k\x9c\xd8\xdc\xf3\x96\x96\xf6\xa3\xaa\
+\xc2\xaa8\xa3e\x89\xb4\xb5\xf6\xf8\xe9\xebME\xe1\x22\
+\xc19\x1f\xb9\xba\xaf.^\xf0\x9b\xb4\x08%\x118c\
+\x98_\xeaGO,\x0b\xdb%\xc4F,\xc4F\x80%\
+\x8b\xca\xd4Y\xd1\x22\xf5\xf2\xa7\xbd/uv\x0f\xfdj\
+}\xc3\xd1\x13\xb6#_\xd3\x0c\x9c\xff\xa4\xe9\xa9T\xf5\
+\x8b\xefG\x8a\x84\xef\xb9\xd1\xb4\xf3\xe2\xf2\x8aP\xea\xed\
+\xb3w\xe6\x9e\xb9\xd4\xb1 \x10\xf0\x91/\xe0S\x13\x89\
+\xd4\x05\xaf\xd6\xa4\xc7\xf0w?\xda\x8c\xac\xe5\x22\x91\xca\
+\x22\x1c\xf2\xa3/\x91E\xf7p\x16\xfd\x09\x13\xae\x94\xd0\
+U\x81hP\x85\x94\x84\xae\x9e\x98{\xb7'\x96\x8e\x8f\
+dt!\x14\x9dq\x05\x94\x7fvK\xc7A \xa8\xbb\
+\xd1hX\xd1\x03~\xdc\xe9\xea\x19\xc9\x9a\xe6\x0f.\xbe\
+\xb2\xa3q\xca\x1d \x02n\xdeI\xc8\xc3o\xb5\xf0\x07\
+\xcbK\xb2[6<\xe8W\x04\x07c\x04\x02\x901\x1d\
+\xa4\x0d\x07B0D\xa3a1\xbb,\x12&\x09\x8c\xa4\
+\x0d\xa4\x0d\x1b\x8eK\xe0\x9c1\xaehpI*\x8e\x0b\
+\xa4\x92iX\x861j\xc6\xd5c^\xad\xf1\x00\x0c\x00\
+n\xf5&\xd0\xf8\xf7\xd6\x91\xe1\xdb\xe7\x1f\xb5S\x15\x9b\
+:zb?_\xb3t\xa1\xba\xa4b\xb6\x92L\xdb\x88\
+\xa5-\xd8\x0e\xc1r$L[B\x12\xdd[\xce5\x1d\
+B\xe6\xfa\x86\xe5\xba\x001d2Y\x0c\xf6\xf5g\x8d\
+D\xcf\xae\xb6\xe3/0\xe4jO\x02\x80\xf0\x88s\x00\
+\xfa\x82\xeam?\xbbr\xa3?=t\xfbR\xed\xadw\
+\x7fs\xab\xbf\xed\xbd\xcf\xccl\xf2o#|\xf6\xbc\xcf\
+o\xc7\x17\xfau\x05s\xa2!\xee\xd7\x150\x86\xfc{\
+!@2w\x95$\xf3y\xe4v+>\x9c\x94\x03\xbd\
+\x83\x99\xcc`{C\xdb\x89\xbdg\xf3:9\x07@\xb2\
+{\xe8\x80\x06@\xab\xde\xdd\x98\xca&n?s\xed\x8d\
+\xbd\xcd\x85{\x85QZ\xf5\xc8\x92\xf9\xcb\x1f\xab\xf5E\
+J\x1f)\x0e\x07eii\xd4\x1f\x0c\xf8\x98\xa6\xa9\x00\
+cp$`\x9a6\xd2\x86\x85d2\xed&c\x89\xac\
+mf\xfe\xd3}\xf1\xad\x9f\xf6_y\xa7\x03\x805n\
+\x98\xcc\x93\xbd\x06@\xffr\xed\xcb{\xae\xbc\xfe\xdcQ\
+\x00\xfa8\x80{s\xcd\x1f)*[\xbeee\xf1\xc2\
+\x155zQ\xd9\x97\xb8\xa6\x97\x81\xb8B\x8c\x09\x069\
+*\x1d\xb3\xd7\x88\xf7}8t\xe3\x9f\xef\x0e\x5c?\xd5\
+Y\x10\xf3\x0a\xe7\xaf\x86\xf7\x14L*\x96\x1f\xea\xb8\xcf\
+j\xbe~\x84w;\x018\x00l\xcf\x18\x9f\xf1\x98\xec\
+\x01\x98\xde\x22\xb41\xf6X\x16\x82\xba\xf9\xc0N~a\
+AX`l#\xa3\xbc\xaf\xd7\xdf\xf6\xac\xf3B\x19\xf9\
+\xeb\xa4\x7fL\x0a?\x87\x8a\xb1\xd9\x8e\x17.\x14S!\
+F\x01\xb8\x00=\x19HA\xf8^\xaf\x9d\xeeUK\xe4\
+\x85\x0b\x10\xdc\x03\xe0\x15/\x00x!\xbc\xc2N\xfe\xde\
+\x04\x9b\xd1\xbb\xde$k\xbc\xa3 \xee\x85\x98\xf8\x0f\xe4\
+>\xf6_\x84=\xc2\x88m2sv\x00\x00\x00\x00I\
+END\xaeB`\x82\
+\x00\x00\x07\x87\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
+\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\
+\x00\x00\x07>IDATX\x85\x9d\x97ilT\xd7\
+\x15\xc7\x7fo\x1bw\xc66\x06\xef@\x10I\xb0\x0dF\
+\xd8\xc6\xae\xb1\xc3\x14\x09\xc5U\x95\x0f\xa9\x1aAEi\
++5!J\xd5\xaa\x12k\x11\x04\x15U\x15\xadZ\xe1\
+\x88\x86\x90\x14\x1a)\xf9\x80\x95D\x09\xf9\x12U\xaaT\
+\xb58\xa8iTZ\x88\xa1j\x95Pd\xeca\x16\xdb\
+\xe3M\xf60\xdb\x9b7o\xeb\x87yo\xc6c\x8fk\
+\xb7W:z\xdb\x99\xfb\xfb\xdfs\xce]F`\x15\xed\
+\x97\xf0}\x01\xdeZ\x8d\xaf\xdb$\xf8\xcd\xcbpd%\
+?a%\x87W\xe0\x07U\xb5\xb5\xaf}\xf7\xd4)\xaf\
+\xec\xf3-u\xb0m\xb0,\xb0ml\xd3\x04\xcb\xc26\
+M~\xf7\xe6\x9b\xeaX(t\xf94\x9c\xfa\xbf\x05\x9c\
+\x87\x1f\xad\xab\xab\xfb\xf5\xb7\x8f\x1e\xf5\xa6\xc3a\xe2\x0f\
+\x1e,\x85\x03\xb6m\xe7\xee\x1d\xf364\xb0v\xfbv\
+~\x7f\xf5\xaa\x1a\x19\x1b\xbbx\x06\xce.\xc7\x90\x96\xfb\
+\xd0\x0f\x87k\xea\xeb/\x1c<v\xcc\x9b\x8eD\x88\x8f\
+\x8e\x82 \x14\x0c\xf2\xd7\xc5\xa30\x92I\x0cU\xa5\xfd\
+\xe9\xa7\x95\xc9@\xa0\xbb'\x91\xf0\x0c\xc2\x9fW-\xa0\
+\x1f\x8eV\xd7\xd7\xf7\x1f<v\xcc\x9b\x0a\x85H\x04\x02\
+ \x08\x08\xa2\x88\xb0\x08\xee\xb6R\x22\xccL\x86\xb6\xbd\
+{\x95h \xd0\xd3\x9bL\xda\x83\xf0\xe9\x8a\x02^\x81\
+\x13\xb5\x8d\x8d\xbf\xfa\xd6\xd1\xa3\xbed0H\xf2\xe1C\
+\x04\x07\xee\x8e^\x10\x84\x92\xb9\xcb\xbfsRc$\x93\
+\x98\x9aF\xdb\x9e=\xcaX \xe0\xf7\xa7R\x99A\xf8\
+\xdb\xb2\x02\xfa\xe1d]c\xe3/\x0e\x1c9\xe2K\x04\
+\x02\xa4\x82\xc1\x1cT\x14s\xb60\xfc%F\xed\x82\x0b\
+\x8f6z2\x89\xa9\xebt\xf8\xfdJ$\x10\xd8\xf3\x95\
+t:u\x1dn-\x11\xd0\x0f\xa7\x1a\xd6\xaf\xff\xf97\
+\x8f\x1c\xf1%FGI\x86B\xb9p;\x02\xcae\x99\
+\x8d\x1e\x0f\x09\xd3\xc4.\xa6\x14Ak\x14\x85:E\xe1\
+\x91a`\xdb66\x90M&\xb1L\x93\xf6\xde^%\
+\x1c\x08\xec\xf5\xab\xea\xdc \x0c\xe5\x05\x9c\x873\x8d\x1b\
+6\xfcl\xff\xe1\xc3\xbe\xf8\xf00\xa9p8\x1fj\x04\
+\x81rY\xa6\xb6\xa1\x81\xf4\xbe}\xac\x1b\x19!\x99\xcd\
+\x16D,\x10\xb0\xce\xe3\xa1\xbc\xa5\x05\xbd\xa7\x875\xe1\
+0q\xc7\xcf\x064G\xc4\x8e\xeen%\x1c\x08\xf4=\
+\xa5iS7\xe0\xae\x04\xd0\x07\x9f\xbet\xee\x9c\x12\xfb\
+\xfc\xf3\x1c\xdc\x0d\xb1\x03\xaf\xa9\xafg\xee\xecY\xf4-\
+[\xa0\xbe\x9e\xea{\xf7HjZn\xfa9\xad\xba\xac\
+\x8c\x8a\xe6fb\xa7O\x93mkC6M\xd6\x86\xc3\
+<\xd2\xb4\xbcO&\x99\x04\xdb\xa6k\xf7n\xe5\xce\x9d\
+;\xdf\xf8\x18\xce\x89y\x98,\x93\x0c\x85\x8aFd\xdb\
+6\x0d@\xfa\xd9g\xb1}>\x04A@\xdb\xb5\x8b\xcc\
+\x8b/\xb2\xb1\xb2\x12\xd1\x99\xf7\xd5^/\xe5\xad\xad\xc4\
+\xcf\x9cA\xf4x\x10E\x11\xf5\x99g\xa8\x04\xca$\x09\
+\x0b\xb0\x9c~\xe3SS\x88\x8a\x92g\xc8\x8b\xebhq\
+X\x83\xba\xcec\xd7\xaeAE\x05\xd9\xae.\x04A@\
+\xef\xedE\x90e6\x0e\x0c\x90J\xa7)om%y\
+\xfcxn\xa6\xd86b:M\xd5\x85\x0b\x04\xb3Y\xd2\
+\x0bj\xc1v\x06\x85e-#\xc0q\x5c8\x9dLA\
+ \x12\x8b\xb1\xe9\xddw\x11e\x99\xec\xce\x9d\x08\x82\x80\
+\xb1k\x17\xa2$Qy\xe3\x06\x89\x13'@\x14\x11\x01\
+!\x95\xa2\xf2\xe2E&B!\xe2\xaaZ\x04\xce\x0b)\
+)\xc0]J\x9d\x1f`\xdb\xf9E\xc72M\x22\xd1(\
+\x9b\xde\x7f\x1fQQ\xd0\xdb\xdbs\x22\xba\xbb1\xba\xbb\
+\xc9\xe71\x95\xa2\xfc\xf5\xd7\x99\x18\x1d%\x9eH\x14\xa0\
+\xffK\x04\xb0\xed\xfc|_(\xc4\xb2m\x22\xc1 \x8f\
+]\xbb\x86(\x08\xe8\x1d\x1d\x85U\x11@U\xf1]\xb9\
+\xc2\xf8\xfd\xfb\xc4c\xb1\x22\xb8\xa5\xebX\x86\x81\xe5\xa6\
+#\x9b-\x1d\x01\xdb\xb2\x8a;u\xc4\xb8\xd5nZ\x16\
+\xe9x\x9c\xca\x9b71;;\x8b|\xa5\xc9I\xa4L\
+\x86\xe4\xfc<\xd9\x99\x19\x8cx\x1c3\x95\xc2PUl\
+\xcb*D\x000\xea\xea\x96OA\xbe\x06\xdcH\xb8\x05\
+)\x08To\xdeLEO\x0f\x99\xe7\x9fG\x14E\xe7\
+\xb5\x93\xa6\xa6&\xd4\xe7\x9e\xe3\x89p\x98\x7f\x0d\x0d\xa1\
+\xebz\x11\xd45\x0b\x8aR\x90O\x9f\xed\xec\xe9XV\
+N\xb1\x13\x11\xf7}\xf5\x93OR\xe5\xf7\x93}\xe1\x05\
+\x04YF\x14E$]G\x9a\x9ar\xf4\xdb\x98\x9d\x9d\
+\xd8\x87\x0f\xd3~\xf0 \x92\xc7\xb3\x04l\xb9\xcf%k\
+\xc0\xb2r\xe6\x86\xd5\x8d\x00P\xdd\xdcL\xd5\x9e=h\
+\x07\x0e H\x12\xa2(\x22f\xb3Ho\xbc\x8141\
+\x81~\xe8\x10f{;\x96eauu!\xca2\x1d\
+>\x1f\xff\x18\x18@\xd7\xb4\x02\x98\x05\x85XJ\x80m\
+\xdbK\xc2_\xdb\xd6F\xa5\xdfOf\xff\xfe\x02\x5c\xd3\
+\x10/]b\xe4\xbd\xf7\x88G\x22\xb4)\x0a\xb2\xa2`\
+\xb4\xb6\xe6j\xa5\xad\x0d\xf1\xd0!\xba**\xf8\xec\xf2\
+eLM+\x12P2\x05\x96iR\xbea\xc3\x92\xf0\
+W<\xfe8\xe6\xe6\xcd\xe0\x9e\x05T\x15\xf1\xca\x15F\
+?\xf8\x80\xb9\x91\x11tM\xe3\x9fo\xbf\x8d\xf1\xe1\x87\
+H\xc3\xc3\xb9\xadZ\x10\xb0\xd6\xaf\xc7\xd7\xd8\x88\xb2f\
+M\x11\x5c\x10\xc5\xa2\x14H\x00_\x83\x9a\xe9`\xb0c\
+G_\x9fl\xa6\xd3\xe8\xf1x\xbe \xe7\x87\x87\xa9\xf4\
+x\x90e\x19\xb3\xba\x1a\xcf\xc0\x00\xa3\xef\xbc\xc3\xdc\xfd\
+\xfb\xf9NM\xc3`\xea\xee]\xeakk\x11\x1b\x1bA\
+\x92\xf0|\xf4\x11C\xaf\xbeJrr\xb2\x08\xfeDS\
+\x13s\x89\x84=\x1a\x8b\x09\x1f\xc39\x09`\x10\xfe\xd0\
+;?_?=>\xde\xb1\xa3\xb7W6fgQ\xc7\
+\xc6\xd0gg\xd1\x22\x11f>\xf9\x84\xb5UUT\x8d\
+\x8d1|\xf5*s_|\xb1\xa4\xba\x0d\xc3`\xf2\xf6\
+m6l\xda\x847\x14b\xe8\xfcy\x12\xe3\xe3\xf9\xef\
+\xa2$\xb1\xa5\xa5\x85X&c\xdd\x08\x87c\x22|y\
+\x10f\x8b\xce\x14\xfdp\xb1\xa1\xa6\xe6\x87_\xef\xeb\xf3\
+N\xdf\xbeM\x22\x14*\xe4M\x92\xf0\xd4\xd4\xa0NO\
+/\xa9\xee\x85\xcf\x92\xd7\x8bXVF&\x16+\xc0e\
+\x99-\xcd\xcd\xcc\xa4R\xd6_\xc2\xe1\x99,\xec\xfe)\
+<\xcc\xa7\xc0m\x83\xf0\xc7\xdd\xaaZ=\x11\x8d\xee\xec\
+\xf0\xfb\x15#\x95B{\xf4(_\xb9z*\xf5_\xe1\
+n:\x8cL\xa6 H\x96\xd9\xd2\xd2B4\x910\xff\
+\x1a\x89L\x00\xbd?\x81\xfc\x9e\xbf\xe4L8\x08\x7f\xf2\
+g2k\xc7\xa2\xd1\xce\xce\xde^\xc5L\xa7\xc9\xc4\xe3\
++\x82K\x99\xac(4m\xddJ8\x163\xfe>>\
+\xfeP\x84\xa7NCt!\xaf\xe4\xa9\xf8:\x5c\xdf\x95\
+\xc9TG''w\xee\xec\xeeV\x0cU\xcd\x8bX-\
+\x5c\xf1xh\xda\xb6\x8d\x91\xd9Y\xe3\xb3h\xf4\xc1\x1d\
+\xf8\xeak0\xb9\x98\xb5\xdc\xff\x82\xf2\x1b0\xb4]\xd3\
+\xd6\xcdLN\xee\xe8\xec\xea\x92\xf5L\x065\x91X\x1d\
+\xbc\xac\x8c\xa6m\xdb\xf8\xf7\xf4\xb4qkjj\xf8-\
+\xf8\xdeMH\x93[\xe5\xb3\x0bA\xcb\x9d\xae+];\
+\x09/o\xad\xa8\xf8\xce\xbe\xbd{\xcb\x04wi\xb6,\
+,w\xe5\x5c`\xee;\xdb\xb2\xb8\x13\x0c\xea\xb7gf\
+\xee\xfd\x16\x8e\xcf\xc2,\x90\x00\xe2@\xcc\xd1\xb9\xac\x00\
+72k\x80\x0a\xa0\xe2\xc7p\xb2\x16^Z\xc6\xb7d\
+K\xc3\xadKp*\x01\xf3@\x8a\xdc5\x8e\xb3\x1f\xad\
+$`\xa1\x90/\xb9B\x9c{\x8fc\x0a\xb9\x95\xd4\xed\
+\xc3\x02\x0cr!\xce\xe64\x90\x00\x92@f1x\xb5\
+\x02J\xf9\x8b\x8e0\x17.P<AL\x0a\xb5\xbab\
+\xfb\x0fC+\x09\xef\xbdQ\xf6l\x00\x00\x00\x00IE\
+ND\xaeB`\x82\
+\x00\x00\x04\xb0\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
+\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\
+\x00\x00\x04gIDATX\x85\xed\x96mh\xd5U\
+\x1c\xc7?\xe7\x9c\xff\x7f\xbb\xce\xcc\x8a\x1c\xa4\x22\xc3\xb4\
+\x15\x11\x14Y\xb3\xdd\xa9eV\x9b\xd9\x83J\x0b\x02S\
+\x12M{\x91\xd8\xe6^\xc6 \xa4^\xa8AA\xd0\x13\
+\xcc7EM\xca0\xf0EJ\x96\xe8E\x03\x89\x05\xea\
+\x16e\xea|\xdau\xde=\xde\xbb{\xefy\xe8\xc5\xff\
+\xbf\xdb\xbd\xd7\xad\xf6@\xef\xf6\x85\x1f\xbf?\xe7\xcf\xf9\
+\xfd\xbe\xe7\xf7t\x0eLa\x0a\x93\xc4\xe2FU_\xdd\
+\xe0\xb9\x89\xee\x97\x93\xf0-\xa2;\xbc\x9d\x0b\xee\xba\x7f\
+\xaf\xef\x95N\xd8\xc8\x84\x08<\xdd\xc8\xf4\x9a&\xef\xc0\
+\xe2\xfbV\xbc\xf5\xfa\x0boG<\xe5O\x98\x807\xde\
+\x0dUM\xccM\xe2\x1fZ\xb3t\xd3\xfcE\xf7.\xf3\
+\x95T\x13v\x0e\xe3\x8c@u\xa3\xf7\xd8t\xef\xd6\xb6\
+7V\xbf\xb3\xf0\xe1\xca%~{\xd7I\xac\xd3\x93\x22\
+0\xe6\x08D\x1b\xd4\xfaY3g\x7f\xb4\xf5\xc5\xe62\
+\xe5+:\xbaN\x921i\x1c \xc0\xfc\x7f\x04\x9a\x91\
+\xd1\xa4\xb7\xbbr\xceC[6\xd4\xed\x88\xf4e\xe2\x9c\
+\xef\xfe\x1dc5\xceYp\x0e\x07j,\x9dp|\xb7\
+\x16\xe3\x22\x10mb\x06\x83\xde\xfe\x9a\x07\xea\xaa\x9f\x8b\
+n\x88\x5c\xeai'\x91\xba\x8au\x06k\x0d\xc6i\xa4\
+\x904\xbf\xf6\x09\xd6Y\x1c\x06\xebl(\x06\x17jc\
+\x0d\xef\xb6\xbc94\xae\x08\xd4l\x8f\xccw\xc2\x1c^\
+\xbbl\xe3\x9cE\x95O\xf8\x1d]'Hf\xfap\xb8\
+\x9ca\xeb\x0c\xb1\xbf\xbe\xc5X\x8d\xb1\x1a\x1djc\xb3\
+h\x9b\xcd\xe9\xe5\xf7\xbc:\xea!G$P\xd3\xe8=\
+^\xe2\xfb\xdf\xad\xab\xdb1c\xf6\x9d\xf3D\xdb\xe5\x1f\
+\xc9\x9at\xf8\xd7\xe1\xb0 \x1c\x16\x83\xc5\xe0\xa4\xc6\xa2\
+q.\xd0\xc3\xe4\xac38,\xce\x8d\x9e\x9d\x9b\x08D\
+\x1b\xfc-w\xcc,\xdf\xb3\xaev\xfb4\xe9C\xdb\xe5\
+#A\xae\x85@\x08\x10\x12\x10\x00\x16+\x0c\x16\x1b\x90\
+\x10\x1a'\x0d\xe4\xa5'\x08\xbf\x06,\x0eF\xec\xd7\x02\
+\x02\xd1&\xff\xab\x8a\xf2\xca\xe7\xd7\xafl\x8c\x5c\xea;\
+Kg\xf7Y\x04\x02!\x04R\x06Z\x00B\x10\x9c\x0c\
+K\xca\xf4\x93\xcc\xf42\xa4\x93h\x93\xc6\x1a\x87p\x0a\
+\xe9|\x14%amXp\x8c8\xad\x0a\x08Xk\xab\
+\x85\x07\x83\x99\x04}C\xd7\xd1&\x03\x04\xce\x95\x10\x01\
+\x19\x1c\x83\x99\x1e\xfa3q\xfa\xb3\xd7\xc9\xd8T\xd0\x09\
+\x0e\x9c\x05k\x1dV;\xacq\x18\xed\xf0\x88\x90\xd6\xa9\
+\xb1\xa5`\xeeySq\x8e\xb3\xbb>\xde\xbfs\xf3\xb3\
+K_*S\xd2\xe7\xcc\xb5\x18\xa5%>\xd2\x03C\x1a\
+-\xd2 \x0dR\x09\x84\x14xR\xe0\x10\xe0\x1c\xd6\x82\
+0a\x86\x00\xe7 \x9bM\xe5\x13P\x14\xcd\x8c\x82I\
+\xd8\xda\x8a9\xb6Ko\xef\xedKl\xdd\xf7\xc3\xde\xa4\
+o\xca\xdc\xa3\x15u\xa4\xed \x03\xd9n2\x0c\x22\x94\
+Ey\x12\xe5\x89@|\x81\xe7\x8b\x7f\xd6\x94@z\x02\
+\xa9\x04R\x81T\x05\xad\xefST\x0b#\x8db\x19\xdb\
+c\xbe\xee\xbf\x92\xa9\xfd\xfe\xa7}\x89+W\xaf\xea'\
+\x17\xae\xe7\xb6\xb2Y\xa1\xd1\xc0\x81\xf2$\xca\x17(_\
+\xa2|\x89\xf4C\xc79\xe7A\xea\x82\xda)\x88xA\
+\xd4GjC\x09\xc8S-\xbam\xde\x12\x96\x1c\xb3\x87\
+[o$\xba\xee^Z\xf5J\xe9o\xdd\x07\x89\xa7\xff\
+D\xe59YY\xd1\x00\x8e\xb0\x06\x824\x04\xdaau\
+X\x13\xc6\x15\xd8\x0e\xc5\x8eF \x87\x0bG\x89\xf7v\
+\xe8U\xba\xbemOO_\xa2v\xd5Sk#\x9dC\
+\xbfr~\xf0\x97\x80\x84\x17\xd4\xc1{\x1f4\xff\x9b\x99\
+|\x8ci\x14\xbb\x90\x9d\x03l\xef5\x86N|h\xb6\
+e7vn\xfeb\xa0\xa5a\xcd\xaa\xfa\xc8\xed\xe5\xe5\
+\x9c\xee?\x84P&\x97\xe3\xe3\xbbu\x14\xd0\xa1d\xf3\
+$\x93\xf7m\xf3\xec\xe7BR\x0cS$\x1a\xd0\xa7>\
+\xd7\x9fv\x9e\xee\xd9\xf4\xe57-\x03\x83q\xe7\xaa\xca\
+\xeb\x99\xe6\xdf\x12\x0c\xa6\x00I`\x08H\x179\xd5y\
+b\xc2\xb5\x1cF{M\xb8\x11\xbe]\xfc\x8c\xbb \x15\
+\x07/\xa7\xce\xac\x88\xa8\xb2\xb2G\x16<\xa3JT)\
+GcG\xb8\x18\xb3\xef\x17\x9d\xb8\x98D6$W\xd0\
+\x86\xa3\xd5\x80\x0b\x0d\xd8<\xd1\x80w\xeeg\xdd>p\
+\x89\xe5\xce\x1e\xfd\xac\xab;^\xb5\xba\xb6>\x92\x17\x81\
+\xe1\xf0\x16Gp\x98\xd0M\x97\xc2\x7f\xbd\xa7\x86\x1d\x9b\
+p\xb3\x01t2A\xeab\xcc\xb6\x96.\xb81\xbd\xe3\
+\x8f\xf6\x07\x93C\x03\xde\xc5\x98\xddYt\xf2t\x9eL\
+\xee\xd9T\x04\x11\x12\xf7\x00\x7f\xf16\xf5r\xf8\x18\xf1\
+\xc3\xb5\xdcu5\x85)\x8c\x05\x7f\x03\x8dcF\xa6\x8c\
+\x98\x19\x1a\x00\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x06\x92\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
+\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\
+\x00\x00\x06IIDATX\x85\xb5\xd5}l]u\
+\x1d\xc7\xf1\xf79\xf7\xdc\xc7\xf6\xde\xdbvm\xd7\xadv\
+\xed\xba\x95\x87\xb5\x85\xd9\xb1\xb1\x8d=\xb0\x11\x10\xcc\x88\
+\x89\x93\xb1dVS6j\xe2\x031\xe8bD\xd1\x09\
+F\x0d\xa0\x18\xd82\x15\x12\xca@c\xda1\x13\x94\x02\
+\xdbD]]\xd9D\xd9CW\xba\xa7\x92>\xdc\xc7\xde\
+\xb6\xf7\xe1\xdc\xc7\xf3\xe8\x1f\xde\xe2\x9d\x94tv\xeb7\
+\xf9\xe6\xe4wrr\xce\xeb\xf79\xbfs~\x02\x05\xf5\
+\xdc}\xd8)\xb3\xbcd\xc2}\x98h\x02f7\xaa\xf1\
+\xedG\xba\x880G%\x14\x0e\x9e\xdf!\xfd\xa4\xe6\x86\
+[\x1em\xb9\xe7k\xf6\x5c&\x81o\xe0\x98v\xf6\xf8\
+\xeb#\xba\xaa7=\xdaEf.\x00\xd2\x95\x1c\xf3K\
+\xb7\xdc\xd9f?r\xe0\xbb(\xaaFIE\x8d\xb4\xb0\
+\xbeqa\xe0\xc3\xfeV\xd0\x7f3\x17\x00\xb1p`\x18\
+\xa6W\x8e\x06\xb1\xb8\xcax\xf0\xa9\x8b\xc8\xd11\xea\x1b\
+\xd7;\x04\x81\x1f\xee\xd9s\xe5\xb5s\x02\x10\x11\xdeM\
+\xc7|\xa6\xa1\xa49\xf8X3\x129*k\x9b\xf0\x94\
+Vz=\x17-\xf7\xcf\x05\xc0R8\xb8\xb7\xd9\xfc \
+4|\xa1\xf5\xee\x1d\x8f[]F\x04\xb7\x11\x04\x0c\x8a\
+\xbd\x95\xb6\xb0\xff\xf2\xd27\xcf\x9a/\xcc)\xe0\xad>\
+\x82\x9fi2\x84\x09\xff\xf9\xd5M\x1b[\xad\xa9P\x1f\
+\xd9\xe8\x10\xa5\x8b\x963|\xf9\x83\xd2\xbbn\xd6\xba\x0f\
+\x9f#t=\x01\x1f{\xaf\xd1\x06\xe3\xa7\x93\xa1\x91s\
+\x17N\x1e\xd2J\x16\xafCS2\xc8\xc1\x01\x16TU\
+\xd9\x9c\x0e\xe1\x07\xef\xfe\xd6\xfe\xfc\xdf;0;;\xaf\
+\xc4\xcf\xb6\x84\xe9N\xfe|;5\x16\x8b\xa5\xbf\xe5\xf6\
+\x8dn33N:\x1e\xc2V!b+\x99`A\xc3\
+z%2\xf2\x0f\x8b\x91N.\xb9c\x17\xc3s\x02\x00\
+\xf8\xe5\x83\x96\x07\xac\x0e\xebK7\xdf\xba\xb0\xc8^\x1a\
+\xc4=\xaf\x86\xfa\x15\xad@\x19\xaf\xb4\x7f_\xb9p8\
+\x96PU\xb3}\x1f\xfcaN\x00\xbd\xaf\xb04#\x0b\
+\xc7\x8b\xbc\xde\xca\x86\x95_\xc0[\xb1\x8c\x13\xaf\xf6\xf0\
+\xc6\x9e\xa3\xd49\x8bX`\x88\x1c\x09\x04d\x0dj\xf7\
+Ct\xb6\x00i\xba\x93=\x1d|\xcb0\xc4g\x16\xde\
+t\xa3^\xb9\xe86\x82}a\xf6\xef~\x0d)a\xd2\
+\xde\xb2\x1a\xaf(\xe2\xf3\xf9p\x84\xc3bZ\xd7[\x80\
+?\xcf\x160m\x02\xc7\x0e\xb0Q48\x22\x08\xd5\xc6\
+\xfb\x1d\x9a}\xe4\xc48k\x1cnV\xd6/\xa1\xb4\xaa\
+\x8a\xf7\x02~\xfe8\xd0G\xcdm\xa6\xbe\xeaa\x06L\
+\xc3\xf8\xce\xba6\xba\xaf\x1b\x00\xe0\xc4\xabx\xba\xda\x09\
+\xd5\xe7p.\xd3\xc1SR\x82\xec\xf5\xf2\xb7D\x04\xeb\
+|\xc1\xdc\xb6\xaf]X\xbc\xa2\x8eXd\x90\xe1s\xaf\
+\xa7\xb3\xf2\xd0A\xaf\x83\x87\x1b\xb7\xa1\x5c\x17\x00\xc0#\
+0\xb4\x0ej\xdd\xc0Y\x87\xc8\xb8\x0d\xb6\xfcx\x0b\xeb\
+w\xb6c\xe6z!\xf7>\x8anE1\x1a\x09\x0e\xf6\
+f'}\xc7\xce\xe44\xee\xdd\xd4F\xec\xba\x00\xbe\x02\
+\x9f\xb5\x0bt\x09V\x9c\x9f\xdeZ\xcc\xf6g\x9f\x10l\
+v\x15\xd3\x88\xa3e\xc7\xb0\x08\xe3\xe8\xba\x1f9\x91\xc2\
+\xb0\xad!\x19O\xab\xa1\x81\xceQ\x0c}\xc3\xda/\xe3\
+\xbff@\x1e\xd1\xb0\xf5\x17<\xd1\xb8\xe9\xfe\xed\xf3\xab\
+\xab@\x0b\xa3SJ&\x95\xc4\xeeP\xd1\xb3~\x14-\
+A,\x1a\xc5\xe6^\x87(.1\x86\xcf\xfcj\xc2\xcc\
+\xa56\xacm\xe3\xfcL\xf7\x9fq\x87\xfb5\x5c*\x9a\
+GR3T\x145\x05F\x0c%\x1d\xc4n\x13H\x8c\
+\x87A\x90\xd0r\x06v\x87\x97X\xa0\x1bM\x1b\x10\xeb\
+W=V.9\xcbO\xf6\x1c\xe0\xf6k\x06\x00`\xe0\
+W3qCUA\xd3dtu\x12AHbh9\
+\xb2\xa94JV\xc7\xd43\x14y\xeb\x99\x1cy\x9bl\
+\xa2G\xa8_\xfd\xb8\xa7\xc8\xdd\xf0\xce\xf1\x97\xf9\xe25\
+\x03\x0c\x81\x0f\xd3\x89HV\xd3\xec\xa4\x92\x09\x102\xa4\
+\x13AJ\xca\x8b\x89\x04\x82\xb8<^\x921\x0d\x84\x08\
+\xee\x8af&\x86\x8f\x12\x0fuR\xb7r\xb7\xab\xa4z\
+\xf3\x0b\xbd\x07x\xb1\xb7\x13\xe7\xac\x01\x02\xfc+#\x87\
+uC\xf0\x90\x92\x13\x18\x86B\x22:\x8eER(*\
+q\x13\x1e\xf5\xe1\xf2T#GR\x98\xda(e5k\
+\x89\xfa\xfe\xc9\xd8\xe0~\x16\xde\xf4\x80\xa3\xfa\xd6o\xb6\
+\x8aZ\xf1\xc8\xf1\x0e\xb6\xce\x0ap\xc7\x10\x03ZN\x16\
+45EN\xb5\xa1\xe4\x92(J\x8ed<JiU\
+\x1d\x89\x09\x19\x8b\x94C\x94\xaaI\xc7&1\xf4Q*\
+\x97\xdeIj|\x90\x91\xd3?\xc3]\xd6`\xbba\xfd\
+s\xe5\xa2\xcd{\xb0\xa7\x83\xf6\xc2{_\xd5\x96\xfa\xa3\
+\xbfb\xee\xfc<-6\x97g\x99(\x15\xa1\xa4G\x11\
+D\x89\xb4\x9c\xc6\xe9.\xc6\xeeZDx\xa8\x9f\x8a\xba\
+f\xa2\xfe\x08\x82e\x1c\xab\xc3\x8bg\xferL\xcdJ\
+\xe0\xc2!R\xe3g\x94dbt\xefW\x9f\xe1\xe9H\
+\x04\xe3\xffJ\x00\x90bq^\x8e\x05\xfbe\xa7\xbb\x89\
+\x94\xacb\xb5\xdb\x88Od\xc8$\xfc\x14\x97\xd7\x83X\
+L*z\x91y\x8bW!\x8f\x09\xa8\x990.\xcf\x1a\
+\x8a+\x96\xa3g\xe3\xb9\xa0\xaf\xbfc\xd3C<\xd9\xdf\
+\x8f\x13p\x026@\xb8\x9a\x04\xac\x80\xad\xbb\x17\xff\xb6\
+\xcd\xe9]\x9e\xca\x06\xb7axQ\x95\xcbX\x1du\xc8\
+\x13\x01\x1c\x1e\x0fNO-\xa1\xc1\xd3\x94U7\xe0\xf0\
+4\x13\x1d\xbdL*~^\x09]z3\xfe\x97\x93\xfa\
+C;\xf7\xd0\x99\x9f\xb0P\xd83\x01,y\x805\x9b\
+E\xbag5\xb2\xc3\x12\xddPQ\xbb\xc5\x9a\x18;\x85\
+\xbb\xa2\x96X \x84(%q\x95.\xc7\xc4\x81\x92\xd2\
+\xb19K\x8cx\xe8\xb4\x16\x0aFz\xbf\xf1\x14\xbb\xba\
+\x0e\xe3+xha\x993\xfd\x09\xa5|TV\xc0\xe6\
+tb{k/\xef|\xaaq\xf3R\xc9\xbeB4\xf5\
+SH\xd6\x1aF\xfb\xbb\xa8k\xf9:\xe9\xf8\xa0\x1e\x1a\
+8$N\xc8\xfa{\xbf\xfb\x13{\x7f\xff6\x97\x00\x15\
+P>\xe98\x13\xe0\xa3\x04\xa6 \xbb\xdb\xb8\xf1s\x1b\
+\x85\xee\xea\xc6\x1d\xael2\x85\xd5\x966&}\xa7\xd4\
+l:B`\xcc|\xa3\xeb(\x07_;\xc20\xa0\x03\
+Z\xbe\xd5\xff\xe9)\x80:\xe3^\x90O\xc1Z\xd0\xd2\
+\xbe\xef\xb1\xb9y\x09O\xea&F<\xc1\x89\xd3\x179\
+\xfc\xf4\x8b\xf4\xa5T\xcc\xa9h\xf3\xadO\x03)\x04\xe5\
+\xae\x06\x00\xffyw\x1f\x01\xf2m)h\x91\xff.\xb0\
+B\x80\x91\xef)\xc4\xd4Q\xc9\xf7\x8ck`\xba\xb2\x14\
+ \xc4\xfcX\xe0\xe3\x9ft!bj\xd6S\x89\x5c1\
+\xb3k\xad\xc2\xd5]\x98@!\xe2\x13\xeb\xdf4\xc1\xdb\
+\x049\x93)\x01\x00\x00\x00\x00IEND\xaeB`\
+\x82\
+\x00\x00\x17\xe1\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x90\x00\x00\x00\x90\x08\x06\x00\x00\x00\xe7F\xe2\xb8\
+\x00\x00\x00\x19tEXtSoftware\
+\x00Adobe ImageRead\
+yq\xc9e<\x00\x00\x03(iTXtXML\
+:com.adobe.xmp\x00\x00\
+\x00\x00\x00<?xpacket beg\
+in=\x22\xef\xbb\xbf\x22 id=\x22W5M\
+0MpCehiHzreSzNTc\
+zkc9d\x22?> <x:xmpm\
+eta xmlns:x=\x22ado\
+be:ns:meta/\x22 x:x\
+mptk=\x22Adobe XMP \
+Core 5.6-c067 79\
+.157747, 2015/03\
+/30-23:40:42 \
+ \x22> <rdf:RDF \
+xmlns:rdf=\x22http:\
+//www.w3.org/199\
+9/02/22-rdf-synt\
+ax-ns#\x22> <rdf:De\
+scription rdf:ab\
+out=\x22\x22 xmlns:xmp\
+=\x22http://ns.adob\
+e.com/xap/1.0/\x22 \
+xmlns:xmpMM=\x22htt\
+p://ns.adobe.com\
+/xap/1.0/mm/\x22 xm\
+lns:stRef=\x22http:\
+//ns.adobe.com/x\
+ap/1.0/sType/Res\
+ourceRef#\x22 xmp:C\
+reatorTool=\x22Adob\
+e Photoshop CC 2\
+015 (Macintosh)\x22\
+ xmpMM:InstanceI\
+D=\x22xmp.iid:A7137\
+DD0390811E5A111E\
+32F6F5F6555\x22 xmp\
+MM:DocumentID=\x22x\
+mp.did:A7137DD13\
+90811E5A111E32F6\
+F5F6555\x22> <xmpMM\
+:DerivedFrom stR\
+ef:instanceID=\x22x\
+mp.iid:A7137DCE3\
+90811E5A111E32F6\
+F5F6555\x22 stRef:d\
+ocumentID=\x22xmp.d\
+id:A7137DCF39081\
+1E5A111E32F6F5F6\
+555\x22/> </rdf:Des\
+cription> </rdf:\
+RDF> </x:xmpmeta\
+> <?xpacket end=\
+\x22r\x22?>\x03\xa0\x95\x84\x00\x00\x14OIDA\
+Tx\xda\xec\x9d\x09t\x94U\x96\x80o\xedK\x92J\
+\x08\xa9$$\x10@$\xec\x10\x10\x05Yd\xd8\x0d\x10\
+\x04\xba\xc7qN\xdb2n\xa0c\x9f\x86\xc1n4c\
+K\xd3\xea4HK+Gi\x15\xa1\x15\xd43\xda\xa7\
+\x15\x9aEF\x86\x0ez@\x16A\xc0\x80\xec\x8b$$\
+d_\xaaR{\xfdU\xf3nQa\xd2\xe1\xff+U\
+\x95Z\xde\xab\xbc\xcby\xfc\x81,\xff}\xef}\xb9\xf7\
+\xbe\xed>\x99\xd7\xeb\x05.\x5c\xc2\x15%\xfe%\x93\xc9\
+\xbad\xe5W\xee\x9f\x22\xabm\x19\x93/x4Ce\
+2!O\x0eB\x8eL\xe6\xce&\x9f\xd2`\x91\xcb\x9d\
+\xf8\x04\x8fG\xed \x0f_\xf1z\x95U\x1ePTz\
+\xbd\x8a2\x85\xdcq\xda\x98|\xe4\xc2\xca\x89%]\xf2\
+\xb7\x10\x8d\x8f\xcc\xf7W\x82\x03\xb4\xe4\xcb%z\x87\xbb\
+\xdb\x1c\xd2\xe1\x93\x95r\xcbH\xa5\xc2\xd2W\xadhN\
+U+L\x1a\x02L'\x1bQ\x09N\xc1\xe0p\x0a\xa9\
+\xcdn!\xe9\xaa\xdb\x93t\x82\x00\xb9O\xa3l\xdc\xb9\
+n\xe6:+\x07\x88Ayfwq&xeO+\
+\x14\xd6B\xad\xb2n\x90NUm \x16&\xc6\x8d\xab\
+\x00\x9b+\xcbdwg\x9c\x15\x04\xfdn\xd2\xd2o\xaf\
+/\x5cU\xc3\x01\xa2T\xfe\xfd\x8b\xdfLV\xc8\xed\xcf\
+j\x95\xb5\xe3\xf4\xea\x8an2\x99\x87\xb2\xc6\x96\x83\xd5\
+\x99\xdbhw\x1b\x0f\x0a\x1e\xed\xda?\xcdze\x1f\x07\
+(\xce\xf2\xd4\xae\x97\xeeU)L+\x93\xd4\xe5\x13\xb5\
+\xaaZ\x1dK\xba\xdb]F\x9b\xc5\xd9k\xbfK0\xac\
+|g\xf6\x8aC\x1c\xa0\xd8\xb9\xa7$\x8fW\xf5r\x92\
+\xba\xec\x91dMYw\xf6\x1d\x81\x0cZ\x1c\xbd\xea-\
+\xce\xbc-r\x99\xebE\xe2\xe6,\x1c\xa0(\xc8\x13;\
+\xd6\xe4\xebT\xb5\xebS\xb5\xe7\xa6\x90 X\x9e\x88A\
+)\x09\xc2=\xcd\xf6\x81%6\x97\xf1\x99\x8dE\xcb/\
+p\x80\x22 \x8bw\xbd4Z\xa7\xac\xddd\xd0]\x18\
+N~C\xbb\xc4\xf0\x98XX0\xd9\xf2Kmn\xe3\
+\xe3\xef\xce^q\x8c\x03\x14\x86,\xda\xb9j\xb8VU\
+\xbd9Mw\xb6\xa0\xab\x80#\x06R\x93m\xd0I\xbb\
++k\xe1\x869\xc5\xa5\x1c\xa0 \xe4\xf1\xed\x7fL\xd7\
+\xab+\xff\xd2M\x7fj\x0a\x01\xa7k\xcep\xde\x0e\x92\
+\xb7\xd1:\xac\xc4\xea\xccyp\xd3\xdce\x0d\x1c \xe9\
+\xa1\xf8ki\xba3K\xd4\xca&%\xc7\xe6vq\xba\
+\xd3\xdcM\xb6\xc1\xeb\xfe4\xeb\x95_q\x80\xda\xc8\x93\
+;V\x8f5h/oK\xd1^\xce\xe2\x98t,f\
+{\xbfj\x93\xbd\xdf\xbc\xf7\x8a\x9e?\xdc\xa5\x01\xf2\xad\
+E\x99\xc7~\x9c\x9et\xe2!\x85\xdc\xc1\xddU\x08\x22\
+x4\xde\x06\xcb\xc8O\x8c)\x87\x7f\x16\xaf\xb5\xb8\xb8\
+\x02\xf4\xc4\xf6\xb5CRu\xe7J\x88\xd5\xc9\xe48t\
+\xce\x1a5\xdb\x06N\xdd8\xf7\xd9\x1f\xe2\x01P\x5c\xe6\
+S\x9e\xda\xf5\xbb_g\x19\xbe.\xe5\xf0t^\xd0\xed\
+c[b\x9b\xc6\xe3\xfd1\xb5@d\x84%\xd7\xa9\xaa\
+vg$\x7f7\x83\xf0\xcb{?\xb2]\x09u-w\
+\xed\xb1\xb9\xb2\x0b\xc9H-&\x0b\x811ua\x04\x9e\
+L\xe2\xb2N\x1a\xb4\x97z\xf0\xce\x8e\x9e\x98\xecw\xde\
+ e\xc4\xc6\xa2\xe5\xb5\x09\x03\x10\x19e\x15\xa4'\x95\
+\x1e$\xd6G\xc7\xbb8\xfaB\xac\x90\xb5\xde2r\xfc\
+\xc6\xa2_\x9fd>\x06Z\xb4s\xd5<c\xca\x91c\
+\x1c\x9e\xd8\x09ik}f\xca\xc1c\xd8\xf6\xd1~W\
+T\x01Z\xbc\xf3\xbf\x1e\xcbL\xf9\xe6s\xb5\xa2Y\xc1\
+\xbb5\xb6\x82m\x8em\x8f}\xc0$@\x8bw\xbe\xfc\
+KR\x81\x8dJ\xb9\x95\xcf\xef\xc4I\xb0\xed\xb1\x0f\xb0\
+/\x98\x02h\xc6\xe6\x0b\x93\x04\xafv\xadBn\xe7\xf0\
+\xc4Y\xb0\x0f\xb2\x0c\x07\xd6E\x0b\x22y\x14\xe0\x19C\
+\x1e\xdb\xcb\x1a\x1ePV4\xcd\xe4=H\x81\xe0n\x86\
+\xcc\x94CoD\xc3\x9dEt\x14F\xe0\x19J\x1e_\
+\x91rk\xa7`\xef\xf4\xad\x90\x9b\xf6%\xefE\x0a\xc4\
+\xed\xd1{k\xcc\xe3\x17l\x98S\xbc\x8d\xbaa<\x81\
+\x07\xe7w\x8e\x90\xd2\xab\xfd\xe78D\xf4\x88SH\x15\
+j\xcc\xe3FGb\x88\x1f\xb1a<\x81'\x89<v\
+\x89\xc1\x83r\xada>pwF\xcf\xe8\xac{\xd2\x89\
+o\x9e\xd8\xb1\xc6HE\x0cD\xe0A\xf3\xf51)#\
+\x03}\x1d\x87\x88\x1e\xc1y\x22\x83\xf6\xd2\xf7\xb8\xb4D\
+C\x10]L\xca\x03\xc1|!\x87\x88\x1e\xc1%%\x5c\
+\x97\x8c+@\xc4\xfaL%\x8f\x97C\xf9\x1e\x0e\x11=\
+\x82\x8b\xda\x9d]\xc5\x0f;\x88&\xf0\xe0\xee\xc1S\xa4\
+\x84\xe5Ky`M\x87\xb8\x84dO\xb5i\xd2\xf0p\
+\xf6\x13u6\x88\xde\x14.<\xdc\x12\xd1#*E\x8b\
+<Uw\xee\xef\xb8;4f.\x8cX\x9f\xc5\xe41\
+\xbb\xb3\xcas\x88\xe8\x10\xdc\x94V\xdb2\xe6\xa3\x98\xb8\
+0\x02O\x1ey\x9c!%)R\x15\xe0\xee,\xfe\x82\
+{\xac\xabL\x93\xc6\x85\xb2Q?\x5c\x17\xf6V$\xe1\
+\xe1\x96\x88\x0e\xc1C\x0dx2&\xaa.\x8cX\x9f\x05\
+\xe4Q\x14\x8d\x0ap\x88\xe8pex6/*.\x8c\
+\xc0\x83\x1b\xc2\xce\x83\xc4l3wg\x89!xx\xb1\
+\xda<!+\x98\x13\xb0\xa1\xba\xb0\xff\x886<\xdc\x12\
+\xc5_\xf0T0\x1e-\x8f\xa8\x05\xf2\xcf\xf9\x5cD+\
+\x17\xab\x8apK\x14?\xc1\xb3\xf8U\xa6\xfbFl\x98\
+\xf3\xc2\xa9HY\xa0\xe2X\xc2\xc3-Q|\x05\x93Z\
+hU\xb5[\x22b\x81\xfc\xdb4\xae\x90\xa2\x8dGe\
+\xb8%\x8a\x9b\x15\x82j\xf3\xf8\xbb\x03\xe5'Bv\x82\
+\xc9\x82\xf1\x5c\xbc\xe0i\xb5D(\xd1\x84H&\x93C\
+\x86\xae\x17\xa4\xebzB\xba6\x07\x0c\x1a#\xa8\xe5Z\
+P)nV\xdb%\xd8\xc1\xe9\xb1\x83\xc9Q\x0b\x0d\xf6\
+Jh\xb0]\x87:[9i@O\x22[!\xc0\xc4\
+^\xe4\xc3\x11a[ b}pg\xe1\xf5x\x02\x14\
+-K\xd4\x9d\xc02\xb0\xfb\x04\xe8\x9bZ\x00\xbd\x0cC\
+@\xad\xd0\x876Z\x11\xacPn\xfa\x01\xae6\x9f\x84\
+s\xf5\x07\xa0\xdev=!\xadPe\xf3\xd4\x01R\xe9\
+\xf6\x82\xb1@\x8bh\x80'R\x96\x08!\x19\x95U\x08\
+\xc33\xa7A\x8f\xe4\xfc\xce\x8dV\xc8\xcf\xea\xd7\xedn\
+_\x99\xd6\xe7I\xb8\xd1r\x01Jk\xf6\xc2\xf1\xea\xdd\
+>\xb8\x12\xc6\x0a\xa9j\xd7\x93\x0f\xa7\x87l\x81\x88\xf5\
+A\xb8~\xc4>\xa3\xa9R\xe1X\xa2$U\x1a\x8c\xcd\
+\xfd)\xdc\x9d=\x174\xca\xa4\xa8\xea\xe7p[\xe0h\
+\xd5v8\x5c\xf1W\xb0\xb8\x9a\x98\x87\x08\x13\x7f6\xda\
+\x86\x1a\xc4\xb2\xc7vd\x81\xe6\xd1\x06O\xa8\x96H.\
+S\xc0\x98\x9c\xf90)o!hBtQ\xe1\x0a\x02\
+:\xa1\xe7\xbf\xc2\xdd=\x1e\x80\xaf\xcb6\xc3\x91\xca\xad\
+\xc4\x15\x08\xcc\x02\x84\x19q1\xad2\xf9p\x99h\x1b\
+\x07\xf8\xde\xc7h\xadT0C\xfc\xdc\x94\x81\xf0\xf4\xc8\
+\x8d0\xa3\xef\xd31\x83\xe7\x1f@\x22\xef\xc4w\xa3\x0e\
+\xa8\x0b\xcb\x829\xb9Cra\xc4}\xa1\xe5)\x03\x00\
+\xaa\xf31\x8b\xbb3\x99\xcf\x02L\xe9\xfd\xa8ot\x15\
+\x8a\xd8\xdc\x1e\xa80\xb9\xa0\x92\x14\xb3S\x00\xbb\xfb\xe6\
+(K\xab\x94C\x8aZ\x019\x06\x15\xe4\x92\xa2S\x86\
+\xf6sq\xb4Vr\xed}8p\xfd\xbf\x81\xcd\xb46\
+2\xa86M\x18\xfb\xf6\xec\xdf\x1d\x09\xd6\x85=L;\
+<b\xeeL%\xd7\xc0\xfc\x01\xc50\xa8\xfb\xc4\xa0\xbe\
+_ \x0dp\xbc\xd2\x0a\xdfVX\xa1\xb4\xca\x0a\xd7\x9a\
+\x9c\x1dv/\xfe\xaa\xf5NS\xc3\xf0l=\xdc\x93K\
+\x82\xf2\x1c=(:\x98\xc9G\x90\xa7\xf6y\x1crR\
+\xf2a\xeb\xf9U\xe0\xf28\x18\x03\xc8\x8b\xae\xec%\xf2\
+\xc1mf_\x0a\xa0\x07Y\xa9Z+Dwd\x1c\x80\
+\x9f\x0fy\x95\xb8\x8bA\x1d~O\x9d\xd5\x0d\x9f\x9fi\
+\x82\xbf_1A\x93]\x08\xb1)\xc9\xc8\x82\x80\x86e\
+\xfb\xb9&H\xd3*`\xea\x1d\x06X08\x0d2\xf4\
+\x81\x07\xb5\x08\xb6aX\x06|\xf8\xc3s\xbe`\x9b-\
+7V>1(\x17\xe6\xdf0v\x8d\xad\xca\xc9\xe1\xcd\
+\xd9\xa9\x04\x9e\x8c\x80_gr\x08\xb0\xe5d=\xec\xbe\
+h\x02\xb7'\xb2\xaeD)\x97Aa\x7f\x03<R\xd0\
+\x1d\x0c\x9a\xc0\xc9Hj\xacW\xe1\xfd\xd2\xa5\xc4E\xb6\
+0\x05Q\x8dy\xdc\x94\xb6\xb7\x0cI\xad\x85\xfd\x84\xa5\
+Ji\x942\xf8\xfd\xb4\xdc\x0e\xe1\xd9}\xb1\x19\x1e\xdb\
+v\x0dv\x9co\x8e8<\xbe\xe1.\xf9\x99\xf8\xb3\xf1\
+\x1d\xf8\xae@\x92\xa9\xef\x0b\x0f\x0fY\xeds\xb9,\x09\
+^\xa7\x15\xcc(l\x16;\xa1\x1d\xc0s\x13\xb2a`\
+\x86\xf4\x5cg\x8b\xd3\x03\xaf|}\x03\xde8T\x03f\
+G\xf4\x87\xd3\xf8\x0e|\x17\xbe\x13\xdf-=J\x1c\x04\
+\xf3\xf3\x9f\xf7\xd7\x82\x0d\xc1\xbb\xd8\x02\x02D\xdc\x17\xf6\
+\xc4DV*\xf4/\xc3\xd2a|^\xb2\xb4\xc9\xb5\xb8\
+a\xc9\x17\xe5\xb0\xffZ\xec]\x05\xbe\x13\xdf\x8d:H\
+\xc6D\x19\xf7\xc1\xd8\x9c\x05\xcc\x00\x84\x17\xf9\xf9n\x83\
+\x0c`\x81\x10\x1e&\xec\xea\x00bu\x16\x16H_\x17\
+\x86A\xee\xd2\xdd\xe5p\xdd\xe4\x8c\x9b\x8e\xf8n\xd4\x01\
+u\x91\x92\xe9}\x17AN\xf2\x006,>\xde\x02\xe9\
+\x95=\x1d\x08\xa0\xc9L\xf8b\x12\xf4\xffj|\x16\xc8\
+e\xd2\x96\xe7\x85\xbd\x15Pou\xc7]W\xd4\x01u\
+\x91\xb2Dr\x99\x12\xe6\xe5/\xf7\xcd\x9a3\xd1\xf6\x0a\
+ka \x80\xc6\xb0P\x89y\x83\xd2 /U-\xfa\
+9\x0b\x89;\x8a\xff\xb7\xc27T\xa7EP\x17\xd4\xc9\
+\x22\x11\x13\x19\xf5}\x88+cc\xec\x82\x97\x18\x8b\x02\
+D\xe2\x1f\xfc\x15\xb8\x87\xf6\x0a\xe0\xbc\xcb\xc3#\xd2%\
+?\xff\xfa\xa1\xea\xb8\xba\xad@\xee\x0cu\x93\x92Iy\
+\x8f\x80^\x95J=@x\x036^\xa3.f\x81\x90\
+\xacd\xda+0\x9fX\x1f\xbdJ|\x92\xfc\xcbK\xa6\
+\xb8\x04\xcc\xa1\x04\xd6\xa8\xa3\x98\xa8\x15:\xb87\xf7\x9f\
+\x19\x88\x83\x04<\xb91[\x0c\xa0\xa1\xf4\xd3/\x87\xa2\
+\x01i\x92\xc3\xe7\xf7\xbe\xab\xa3\xbe\x03PG\xa9\xe9\x04\
+\xdcn\xa2UR\xff;\x0cr\xb9s\x8a\x18@\x83i\
+W\xfc\xfe;\x0d\xbeYg1\xd9r\xb2!&\xf3<\
+\x9d\x15\xb3o6\x5c\xfc\xc8\x15n\x05\x19n\x9cF}\
+\x1d\x94r\xcbH1\x80\x86\xd1\xae8\xae9\x89I\xa3\
+M\x80/:\x98\xfd\xa5IPW\xd4YL\x0a\xb2\xe8\
+?\x89\xa2R\xb4\xf4\x11\x03\xa8\x1f\xcdJ\xf74\xa8\xa1\
+\x7fw\xf1)\xaa\xadg\x1b\xa3\xb2<\x11-A]Q\
+g1\xc1\xad\xb6\x19\xfa<\xca\x012\xa5\x89\x01D\xb5\
+\xd6\xe3\xf2\xc4\xb7\xa2z\x097{.\x9b\x805A\x9d\
+\xbd\x12\xcc\xf7\xefF\xf7`X\xad0iZ\xf3\x09\xc9\
+\xfdCx\x1c?R=\x86\x1c\x91-\xbe\xab\xf0d\x95\
+U\xd2\x1d\xd0,\xa83\xea.&\xfd\xd2FS>\x12\
+sCm\xcb\x98\xfc\xb6\x16(\x97f\x85q\xc6y\xb0\
+Q|\xc1\xf4\xf0u\x0b\xb0*R\xba\xe7\xa5\x0e\x07\x19\
+\xe5\x8b\xac\x82G3\xb4-@\xe9\xb4\xc7?Rs?\
+\xa7\xaam\xcc\x02$\xa5;n\xf3\xe8\xa6\xcd\xa1\xdc\x0a\
+\x09y\xcc\x00\x84\xfb\x90\xc5\xc4\xe1\xf6\xc2\x95F\x07\xb3\
+\x00\xa1\xeeX\x071\xc9L\xeaK\xb5\xeer\x10r\x98\
+\x01('E|\xdd\xab\xd2\xec\x94\x0cDY\x10\xd4\x1d\
+\xeb &\xe9\xd4[ wv[\x80\xb44+kL\
+RJ\x00\xe4\x02\xd6E\xaa\x0e\x0c\xac\x8bi\x98\x01H\
+\xab\x14\x0f(\xcdN\xf6\x93\x1bH\xd5\x815\x80\x80n\
+\x80\xc4\xd5\xb4\xb9\xd8\x07H\xaa\x0e\xb4\xef\x0f\x92\xcb\x9d\
+\xec\x00\xc4\x85\xe6`\x9a\x01i=!\xda^t*\xf6\
+\xf9\x97\xaa\x03\xed\xe7\xe9=\x1e\xb5\xa3-@v\xba\x01\
+\x12\x1fj\xa5\xa8\xd9\x07(Y\x02 \xab\x8b\xfa\xc5a\
+v\x00\xaa\x95\xd8O\x9c\x93\xa2b\x1e \xa99.\xb3\
+\xb3\x9e)\x80\x1ah\xd6Tj\xae\x04\xe7\x87d\x0c\xdf\
+\x0b\x8d\xbaK\xcdq5;j\xa8\xd6\xdd\xebUV1\
+\x03\x10f\xcc\x10\x1dG\x92\xe1\xfd\x1d\xdd4\xcc\x02\x84\
+\xbak$\xa6(\xaa-\x97\xe9\x8e\x81@Q\xc9\x0c@\
+\xb8!\xdd*1\xdc\x1d\x96\xa5c\x16 )\xdd\x1d\x82\
+\x15\x1a\xed7(\xb7@\x8a\xb2\xb6\x00UPM;\x89\
+\xa1\xcf\xd4\x8a\x87ic{&1\x0b\x90\x94\xee\xe5\xa6\
+\xd3\xd4\xeb\xae\x90;N\xdf\x02h\xcf\xc2|\x0c\xf9\xa9\
+\x0e\xfb\xbf\x97\xd8;S\x90\xad\x87n:\x05s\xf0\xa0\
+\xce\x05\x12{\x9c.5\x1e\xa5=\xfe\x01c\xf2\x91\x0b\
+m-\x10J\x19\xcdJ\x1f,\xb3H\x06\xa23\xfa\x19\
+\x98\x03\x08u\x96\x1a\x00\x5ch8L\xb5\xeeN\xc1\xe0\
+X9\xb1\xc4\xdb\x1e\xa0K\xb4\xc7A\x17\xeb\xc5\xb7n\
+\xcc\x1f\xd4\xcd\x97\x9f\x87\x15A]Qg\xd1\x01\x83\xf9\
+\x1c\x89\x7f*\xa9\xd6\xdf%\x18n\xa5\x9fm\x0b\x10\xf5\
+\x8e\x173\x8aI\xb9\x83Y\xfdS\x99\x01\x08u\x95r\
+\xbb\xc7\xabwQ\xaf\xbfKH\xfeQ\x0c\xa03\xb4+\
+\xfe?\x97L\x92\xe7\xcb\x1f)H\x87\x14\x0d\xfd\xb1\x10\
+\xea\x88\xba\x8a\x8e\xbe\xdc\x168]\xfb\x15\xf5up{\
+\x92N\x88\x01t\x8av\xc5q\xe5z\xc7\xf9&\xc9\x8e\
+y\xf2\xae\x0c\xea\x1b\x1fu\x94\x02\xfdp\xe5gLd\
+\xb9\x17<\x9a}b\x00\x9d#\x85\xfa\xa4}[\xcf6\
+I\xce\x09\xcd\xbc\xd3\x00\x13{\xd3{4\x18uC\x1d\
+\xa5\xac\x0f\x02D\xbbx\xbd\x0a\xd0(\x1bw\xde\x06\x10\
+\x19\xca\xe3\xf2\xef\xb7\xb4W\x00\xb3\xaa~\xf4\xbd\xf4\xbc\
+\xe7\xd2{\xb3|\x9b\xf0i\x13\xd4\x09u\x93\x92}e\
+\x1f0\x91t\xd3\xe6\xca2\xad\x9b\xb9\xce*f\x81P\
+\x8e\xb0\x10\x84n#V\xa8\xacY|},Y-\x87\
+U\xd3s\xa1\xbb^I\x8d\xbe\xa8\x0b\xea\x94,\xb1{\
+\xa0\xb2\xe5<|{c\x1b\x0bMO \xcf8\xdb\xf6\
+\xdf\xedk\xb4\x8f\x85J`\x82\xf0\xd7\xbe\xa9\x06\xa9\xd3\
+\xcc\x99IJ_\xe6V\x1a B\x1dP\x97L\x89}\
+\xdd\x82\xd7\x0d;.\xfe\x91\x99\xbb\xc7\x04A\xbf;\x10\
+@\xfb\xc1\xbfLO\xbb\x9c\xaf\xb3\xc3\xe6\x93\xd2[\x1e\
+\xfa\xa4\xa9\xe1\xf5\xfb{\xc6\xd5\x9d\xe1\xbbQ\x07\xd4E\
+rdy\xf9-\xa8\xb2\x5cb\x02\x1e\xafW\x8e\x99\xc5\
+\xdf\x96\x04\x88\xc4Av?DL\xc8\xa7\xa7\x1a\xe0\x9b\
+2\xe9\xb8!+Y\x05\xebf\xf5\x8aK`\x8d\xef\xc4\
+w\xa3\x0eR\x82\x17\xd5\x1d\xab\xda\xc1Js\x83\xd5\x99\
+\xdb\xb8\xbepUM \x0b\x84\xf2\x05+\x15B\x0f\xf6\
+\xea\x81*8W'\xbd\x1f\x0e\xe3\x8e\xdfL\xeaA\x02\
+\xd8\xcc\x98\xcc\x13\xe1;\xf0]\xf8\xce\xe4\x0evL\xf6\
+M\x1b\x15\xd4\xd5\x0c\xf4\xc4?\xc6\x83\xed\xffO\xac\x86\
+\x9f\x01C\x82';\xffsoE\xc0T\xba(\x85\xfd\
+S\xe1\xcf\xf3zC\xd1\x80\xd4\xa8,{\xe0\xcf\xc4\x9f\
+\x8d\xef(\x0crV\x1c\xaf\x84\xfa\xf9\xd05\xcc@$\
+x\xb4k\xdb\xff\x9f\xd4uO\xdf\x91\xc7(\x96@\xc2\
+\xcce\x18\xac\x06\xcaZ\xdf*\x985\x15\xe7\x93\xf6^\
+\x0e\xfd\xb2\x95\xf6\x82I?\xa7\xf53\xf8r7f\x84\
+\x19\xb4\xe3\xfe\x9f\x0fO/\x87\x0a\xf3Yz\xad\x8f\xcb\
+h[=\xe5S\xfd?\xc6D^I\x80\xf0\xa6\xe6\xd5\
+\xc0\x98\xe0\xee>\xbc\xfa P\xf6\xfa\xf6\xa3\xb9X\x5c\
+\xf7\x94\x08\x10\xd5[F\xedy\xf3\xfe\xd7f\x06\x0b\x10\
+\x1e\xcc.\x07\x06\xcf\x8daM\xf0\x0a\x04\xccb\x1f\xaa\
+\xa7j{\xe1\x5c\x8bS\xf0\xfd\x1b\x05/\x98K\xee\xc4\
+\x85s.\xc1\x0b\x9b\x8e\xd7\xf9\xb2\xebO\xee\x9b\xc2$\
+DU\xa6\x7f\x1a\xf7\xce\xec\x15\x87\x82\x02\xc8\x0f\x11\x06\
+\xd3\x85\xc0\xa8`ga6{\xa9\x84\xe4\xb1\x92\xab\x8d\
+\x0eXs\xa0\xda\x97\x89\x03\x81^N,$k\x10\xb5\
+8\xf2\xea_\x9b\xf6A\xc6\xed\xc3zo@\x0b\xf3g\
+`Xp\x9e\xe8\xa9\xede\xb0\xe1X\x9d\xe4\xdaYT\
+\x87\xbc\xe4\x9do\x1f\xad\x85gv\x96\xdfJA\x83\x13\
+\x9fk\xc8\xa8q\xdfU3S\x81\xb5\xc5\x99\xb7E\xea\
+s\x81\x00\xc2\xb9\xf5\x0a\x96!\xc2\x18\xe7\xb33\x8d\xf0\
+\xe8\xd6\x1f\xe1\xd3\xd3\x8d\x92[A\x22\xdb\xd8\x1e\xf8\xb8\
+\xb4\x01\xfe\xed\xf3\x1f}K.B\xbb\xfc3\xacA\x84\
+\xd7~\xcbe\xae\x17%C\x06)\x17\xe6wc\xc5\xe4\
+\xf1{H\x10\xc1c\xc4\x98k\x1a\xd3\x05Ke|\x0d\
+W.58|\x17\xcd\x95\x5c1\x07e\xf1Xqg\
+\xf5\x96\xbb\xf6\xbey\xff\x1f\xa6\x8b}.`\x0c\xe4\x07\
+\x08\xefS\xba\x0e\x94\xa7\x7f\x09Gp\x99\x013\xbfb\
+\xf2N\xcc\xbf\xa8\x0f\xf1\x9c=\xeeM\xc2\x09\xcc\xa3d\
+\x04w\xe4\xba%\xac\xfb9h\x87\xc8\xe3UAe\xf3\
+\xd4\x01\x1b\x8b\x96_\x08\x0b ?Do\x90\xc7\x12H\
+`\xc1\x8eD\xa0p\x84\x85'E1\xa1\x15\xe6$j\
+M+\x83\xa3(\xbc\x06\xbc\xde*@U\x8b\x0b\xca\x9b\
+\x9dPn\x8aLv4\x9a!j\xb2\x0e)}c\xe6\
+\x9b#\xa4>\x1f\xe8\xda\xef\xb6\xf2*)\x8b\x13\xd1\x0a\
+\xb5\x8dKp{\xc8\xcd-\x22\x96\x98\xbf\x1bc\x22\x14\
+)\x88Zc\xa2XB\x84\xd6\xc7\xe66>\xde\xe1/\
+@G_\xb0ga>\x1e\x91|\x17\xb8D\x1d\x22\x9a\
+\x02\xeb&\xdb\xa0\x93\xef\xce^q\xac\xd3\x00\xf9\x05\x03\
+i3\xef\xea\xae\x01\x11\xb1>^\xbb+kaP.\
+8\x98/\x22V\x08\x97\xf0W\xf3n\xee\x1a\x105Z\
+\x87\x95l\x98S\x5c\x1a1\x80\xfc\xf2:\xdc\x5c\xde\xe0\
+\x92\xc0\x109\xddin\xab3\xe7\xc1\xa0\x07\x01\xc1~\
+!\xb1B\x98V})\xef\xe2\xc4\x86\xa8\xc96x\xdd\
+\xa6\xb9\xcb\x82\xce\xd6\xd2\xe10^dX\xbf\x9d<\x8a\
+x7\xc7fz!\x96C|\xb3\xbd_\xf5\xda\xe9\xef\
+e\x07\xfb\xf5\x1d\xad\x85I\xc9/b>\xd6\xe5\x96(\
+\xea\x96H\xf0h\xbc&{\xbfy!C\x1e\xea7\x10\
+W\x86Y<\x96\xf1\xeeM,\x88\x1a,#?y\xaf\
+\xe8\xf9\xc3Q\x07\xc8\x0f\xd1\x06\xf2\xd8\xc9\xbb71 \
+\x22\xae\xab\xc6\x98r\xf8ga\xb9\xd9N\xd4\xeb\x09R\
+jy\xf7\xb2\x0d\x91KH\xf64\xdb\x06Ni\xcd\xf7\
+\x133\x80\x88\x15\xaa&\x8f\x87\xb0n\xbc{Y\x85H\
+\x86\xab\xed\xc5\x1b\xe7>\xfbC\xd8\x81~g*D \
+*!\x8f\x17y\xd7\xb2\x09Q]\xcb]{\xde\x99\xfd\
+\xdb5\x9d\x1a)F\xa0N\xab\xe0\xe6\xe63.\x0cA\
+d\xb2\xdfy\xc3\xe6\xca\xee\xf4\x96\xe5N\x03D\xac\x10\
+\xfaN\x0c\xc0\x8e\xf3\xaee\x03\x22\x02\x8e\x8d\xc4=\x05\
+\x9b\xe6.\xf3\xc4\x1d ?D\x98\xeec\x0e\xf0\xa5\x0e\
+\xea!r\x0a\xa9B\x83e\xf88\x02ODR\xe1\x87\
+<\x13\x1dHfl\xbe\x807\xf9~EJw\xde\xbd\
+\xb1\x93`g\xac?(]\xe1=^\x99\xb1`\xc3\x9c\
+\xe2\x88\x84\x1cA\xedH\x0c\x03\xa21h\x94H1\xf0\
+\xae\xa5\x07\x22/\xf9\xf3\xf5\xb5\xe3\xefN\xee3\xfa\xa9\
+H\xbd3\xdc\xa5\x8c\x8e\xdc\x19&\xa9\xc2\xb52\x1b\xef\
+Vz\xdcY\xc9\xd5\xa3\x1fF\x12\x9e\xa8\xb8\xb0v\x96\
+\xe8>\xf2\xd8\xc1-Q|-\x11\xee\xdb>~\xc3\xfa\
+\x87\xd1\xb9I\xcb#\xfd\xae\xa8\xb80\x11w\xb6\x8b\xc7\
+D\xf1\x81\x08s\x14\x9d\xb8a\xfd\xed==\x93_\x8a\
+\xc6{\xa2\x0eP\x9b\xc0\x1a\x8fI\xf7\xe2]\x1bS\x88\
+\xca\x7f96s\xf9\xac\xfc\xb4O\xa2\xf5\x8e\xa8\xc4@\
+\x221\x11f\xc0GK\xc4\xe7\x89b'\xc7IL4\
+&\x9a\xf0\xdc\x025\x16\xb5\xf1\x9f\xec\x98H\xca\xdfx\
+\xdfF]\xb0\x8d'\xfa\xdb\x1c\x12\x02 ?D8\xd9\
+8\x9f\x94\x17\x80/\xc0Fe \xe6o\xdb\xf9\xfe\xb6\
+\x8e\x89D=\x06\x92\x88\x8b\xa6\x90\x07\x9aW#\xef\xf7\
+\x88\x08n\xaby\xc8\xbf\xb8\x1d3\x89I\x0c$a\x8d\
+\xb0\xa2\xc3\x80oJ\x8b\x84`\x1b\x0e\x8b5<q\xb5\
+@\xed\xac\x11\x1e\x9b\xc6\xe4\x8dI\x9c\x85\x90\x04\xf7\xa5\
+?K\xc0\x89\xdb\xa9\xe1\x98\x0c\xe3\x83\x84(\x8f<\xde\
+\x02~\xda#X\xc1\x09\xda_\xf8\xf7\xa7C\x97\x07\xa8\
+\x0dH\x0b\xc8\x03\xb3\x81\xf09#q\xc1\xdd\x0eK\x09\
+8\x9f\xd3\xa0L\xdcb\xa0\x00\xb1\x116\xcc\x00\xffh\
+\x82\x9f\xc5\xff\x7f1\xfb\xdbd\x00-\xf0P\x13\x03\x05\
+\xb0Fx7\x12fHK\xe8\xd42\x1d\x08\xa6\xe0\xc7\
+\x18g\x95\x7f\x0f:UB\x9d\x0b\x93\x00\xa9\x07y<\
+\xd7\xc5@j\x05\xe7\xd5XM\x08&,@m@\xc2\
+\x05\xd9E\xa4<CJn\x82\x82\x83IM\xd7\x93\xb2\
+\x81\x80SO\xbb\xb2L\x01\xd4\x06$\xcc\xaa\x863\xda\
+\x8f\x92\x82\x99\xd3\xe5\x8cC\x833\xc8_\x92\xf2>)\
+[\x098nV\x14g\x12\xa0v0\xa1%z\x98\x14\
+LG2\x8a1\xf5qq\xf9/\xa4|D\xa0a2\
+\x9d2\xf3\x00\xb5\x83\x09\xe7\x92~\x0a7\xb3\xeb\xe3\xc2\
+\xad\x862\x151\xdb8\xde\xc5\x867\xfe\xfd5\xdes\
+8\x1c\xa0\xc00i\xfd\x10M\x86\x9b[I\xee!%\
+\xd6\xb7\xce\xe1Mxx\x891n\xf1\xc5\xabD\xf7\xfb\
+/\xf4K\x18IX\x80D\x80\xc2\x9b\xe6\xf0\x5c\x0bn\
+n\x1b\x027\xd7\xe1\xee \x05\xadVj'\x7f|3\
+)hM\xae\x90r\x8a\x14<&\x8c{\xa0\xce\xfao\
+\xc2NX\xe92\x00u\x00W\xaa\x7fT\x97\xde\xa6\xe8\
+D\x5c \xba <(\xd0\xd0\xa6T\x10H\x9a\xbbj\
+\xdb\xdd\x02\x88\x0b\x97p\xe5\xff\x04\x18\x00\xc3:\x8dd\
+\xf2\x87\x09m\x00\x00\x00\x00IEND\xaeB`\x82\
+\
+\x00\x00\x06\x87\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
+\x00\x00\x00\x19tEXtSoftware\
+\x00Adobe ImageRead\
+yq\xc9e<\x00\x00\x03#iTXtXML\
+:com.adobe.xmp\x00\x00\
+\x00\x00\x00<?xpacket beg\
+in=\x22\xef\xbb\xbf\x22 id=\x22W5M\
+0MpCehiHzreSzNTc\
+zkc9d\x22?> <x:xmpm\
+eta xmlns:x=\x22ado\
+be:ns:meta/\x22 x:x\
+mptk=\x22Adobe XMP \
+Core 5.6-c140 79\
+.160451, 2017/05\
+/06-01:08:21 \
+ \x22> <rdf:RDF \
+xmlns:rdf=\x22http:\
+//www.w3.org/199\
+9/02/22-rdf-synt\
+ax-ns#\x22> <rdf:De\
+scription rdf:ab\
+out=\x22\x22 xmlns:xmp\
+=\x22http://ns.adob\
+e.com/xap/1.0/\x22 \
+xmlns:xmpMM=\x22htt\
+p://ns.adobe.com\
+/xap/1.0/mm/\x22 xm\
+lns:stRef=\x22http:\
+//ns.adobe.com/x\
+ap/1.0/sType/Res\
+ourceRef#\x22 xmp:C\
+reatorTool=\x22Adob\
+e Photoshop CC (\
+Macintosh)\x22 xmpM\
+M:InstanceID=\x22xm\
+p.iid:7F517578FC\
+EF11E793C7AB30FF\
+B47C13\x22 xmpMM:Do\
+cumentID=\x22xmp.di\
+d:7F517579FCEF11\
+E793C7AB30FFB47C\
+13\x22> <xmpMM:Deri\
+vedFrom stRef:in\
+stanceID=\x22xmp.ii\
+d:7F517576FCEF11\
+E793C7AB30FFB47C\
+13\x22 stRef:docume\
+ntID=\x22xmp.did:7F\
+517577FCEF11E793\
+C7AB30FFB47C13\x22/\
+> </rdf:Descript\
+ion> </rdf:RDF> \
+</x:xmpmeta> <?x\
+packet end=\x22r\x22?>\
+@\xb2\x97\xa1\x00\x00\x02\xfaIDATx\xda\xacW\
+Ak\x1aA\x14~\xabV*z\x08\xd4@\x0d\x05i\
+\xa99\x05J\x14$ \xb94\xc5KI\xbd\x19\x08H\
+\xb1`1\xc6\x1e\xfa\x07z\xb0\x90\xdc,R\x1b\xa8=\
+Ti+\x18\xf1RA/\xa5\xa5\x16\xa1\x98DC\x0e\
+\x0d\x89\x05/\xb6\x87b\xa5\xa0\xa2P\xa2}\xb3]\xb7\
+\x094\xee\xcc\xee>\xf8|\xeb\xec{\xf3}\xfbfv\
+f\x96\x03F\x0b\x87\xc3W\xd0=D\xdcA\x5c\x17\x9a\
+\xbf\x22\xde\x22\x9e\xc4\xe3\xf1&K\x7f\x1c#\xb9\x1f\xdd\
+3\x84\xe1\x9c\x90>b\x1dE\xbc\xa4\xedS\xcb@\xbe\
+\x8e\xee9\xe2\xc2\x840r\xcf\xe3t:[\x95Je\
+G\xb5\x0a \xb9\x1d\xddg\x09\xf2\xd3\xf6\x1b\xb1\x80\x95\
+\xa8J\x05j(;\x8c1\x90\x8f+\x11S\xa5\x02\xf8\
+\xf4\x0et\xbb \xcf\x9cX\x85\x1d\xa5\x15X\x06\xf9v\
+[\x8d!XP @2WG\xd1\xc9e\xf2c\xb7\
+\xdb\xc1\xeb\xf5\x82\xd1h\x9c\x18\xdc\xeb\xf5`{{\x1b\
+\xaa\xd5\xaa\x98\xab\xb4\x02\x179\x8e\x83\x95\x95\x15Ir\
+b$\x86\x08\x15\xcc\xa0\x86\x80\x1f\xe3\x8b\xd1h\x04\x1b\
+\x1b\x1b\xb0\xb9\xb9y&\xe0\xbc\xf6\xd3\xb9J\x04\x1c\x12\
+\x02R\xd6\x93\x93\x13\xc9`\x12\x93\xcdf\xc7\x7f\xbf\xa8\
+1\x07>!\xee\xef\xed\xedA\xa3\xd1\x00\x97\xcb\x05\xb3\
+\xb3\xb3\xd0\xedv\xc5!!\xe3\xbe\xba\xba\x0a\xc7\xc7\xc7\
+\x10\x89D\xa0\xddn\x9f\xceU,\xe0\xfd\xf8\x82t\x9c\
+\xcf\xe7Y\xde\x82\x0f\x8a\x87\x00\x17\x92\xef2\x17\xa2]\
+\xcc\xfd\xa6\xd6R\xfcZ\x86\x00\xaa\x1cZ\x01o\x10\x03\
+\x06\xf2\x81\x90\xa3\x8e\x00,e\x0b\xdd\x16\x83\x80-!\
+G\xb5\x0a\x10{L&<E\x5cO\x88\x05U\x05\xe0\
+\x13\xfdBw@\x11z \xc4\xaa+\x00\xb7e\x0b:\
+\x1bE\xa8\xadX,\xde\xc0\xc5\x8b\xea\xb0\xc3M \xbc\
+\x8a\xee\x16\xe2&\xd9\xd7\x11\xd7h:\x5c\x5c\x5c\xe4\xf7\
+\x82~\xbf?\xdc\xdf\xdf?L\xa7\xd3\xe4`\xf2\x0e\xab\
+\xd2\x90\x14\x80\xa4&t\x01\x84\x0f1\xcf\xfa\xde\xb9\xdd\
+nX^\xfe{|h\xb5Z\x10\x8dF\xa1\xd3\xe9\x8c\
+o\xd7\x10\xaf\x10/PL\xf7\x8c\x00$&\xfe\x01\xe2\
+\x11\xe2\x12+1\xd9-=\x1e\x0f,--\xf1\xff\x09\
+)!'\x22\xfec?\x11\x11\xc4S\x142\xe2\x04\xf2\
+\x94\xf0\xd4\xcc\xa6\xd1h\xf8\x92\x93=\x82_\x00\x06\x03\
+\x88\xc5b\xd0lJ~\x1e\x90j\xdc%{\xc1=\xb9\
+\xe4Z\xad\x16|>\x1f8\x1c\x0eq'L$\x124\
+\xe4 p~$\x02\x82r\xc8\xf5z=\xf8\xfd~\x98\
+\x9b\x9b\x13\xcf\x04\xc9d\x12\xea\xf5:K7A\x9d\x9c\
+\xc9f0\x18 \x10\x08\x80\xcd\xf6\xef\xad\xccd2\x80\
+\xb3\x9e\xb5\xaby\x1d\xcb\xd7\x111\x93\xc9\x04\xc1`\x10\
+\xacV\xab\xd8V(\x14\xa0\x5c.\xcb\x1aE\x1dK\xf4\
+\xd4\xd4\x14\x84B!\xb0X,b[\xa9T\x02\x5cx\
+d\x1f\x9b\xa9\x05LOO\xf3\xe4f\xb3Yl\xab\xd5\
+j\x90\xcb\xe5@\x89Q\x09\x98\x99\x99\x81\xb5\xb55\xbe\
+\x02c;::\x82T*\x05\xc3\xe1P\x91\x80?\x02\
+\x0c\x00\xae\x14\xfd~;\x03\x1c1\x00\x00\x00\x00IE\
+ND\xaeB`\x82\
+\x00\x00\x06m\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
+\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\
+\x00\x00\x06$IDATX\x85\xc5\x97]l\x1cW\
+\x15\x80\xbf{g\xf6\xd7\xeb\xdd\xecn\xd7v\x8a\x93\xaa\
+\x09N\xec@\xab\xa4\x15\x85\x22\x81\x08/\xfd\xaf\xa1\xa1\
+\x91\xa8\xaa*o}\x02\xa9\x02\xc1\x03\x0fHH\xbc!\
+\xc4\x8f\xfaP\xde\xc2\x03Q\xd3\xa2\x22\xa52\xa9x\xa8\
+\x10T\x94\x86\xa8\xad\xed\xc4I\x14\x9aD\xae\xecl\xd6\
+k{\xed\x9d\xdd\xd9\x9d\xb9\xf7\xf2\xb03\x9b\xd9];\
+N\x11\x12W:\xba3g\xee\x9e\xf3\x9d\x9f\xb9w\x16\
+\xfe\xcfC\xdc\xed\xc2\xb3Ph\xc3Sq\xdb~\x01)\
+\x0fj\xa5\x8aJ\xeb!KJ\xc7\x92r\xc5h\xbd\xe0\
+)uJ\xc0\xcc\xd3\xb0\xf6?\x038\x03\x13\xb6e\xfd\
+F\xc37J\xa3\xa3z\xf7\x17\x0e\xa53\xbb\xc7H\xe4\
+\x0b\xc4s\xc3\xb4k\x1b\xb8\xab\xab8\xcb7Y\xbep\
+\xb1Q)\x97-a\xcc_<c^\x99\x86\xab\xff5\
+\xc0i\x88g\xa4\xfc5p\xe2\xf3\x0f\x1d\x89\xdf\xff\xf8\
+c\xd2\xf2=XY\x05\xc7\x81V\x1b|\x0f\xec\x18$\
+b04\x04\xc5<\xca\xb6\xf9\xf7\xcc;\xfa\x93\xd9\xb9\
+\x16\xc6\x9c\x5c\xd4\xfa\xfb/\x83\xf7\x99\x00f\xa0\x84\x10\
+\xef\xdc322\xf5\xe0K/&\xe3\xca\x87k7\xa0\
+\xe9\x0e\xac5\xfd\xd7\xe9\x14\xdc7N\xdb\x92|\xfc\xfb\
+?\xb8\xab\x95\x95\x0b\xda\x98\xc7\x9f\x81\x95\xbb\x02x\x1b\
+\xf2B\x88\xb9}SS\xa3\x07\x9f?fs\xf92\xac\
+o\xdc\xd1\xa91f@\xcf\xae\x1c\x1c\xdc\xc7\x957\xff\
+\xe4\xdfX\xb8|\xd31\xe6\x8b\xc7\xa1\xd6\xef\xcf\x8a\xde\
+\x9c\x06+)\xc4\xbb\xfb'''\x0e\x1c\xfb\x96\xcd\xdc\
+<\xd4\x1b\x83Q\x06Nu\xf4>2k\xc0\xb8-L\
+u\x8d\xe2\xd7\xbf\x22\xcdJ5\xe5VW\x8fN\xc3\xc9\
+7\xfa8e\xf4&+\xe5\xcfK\xc5\xc2\x03\x13\xcf\x7f\
+\xdb6s\x17;FB\xa3\xc6\xf4\x88\x898\x0bE\x85\
+\xce\xc3\xf5M\x175{\x89}\xc7\x9e\x8d\xe5\x8b\x85\xc3\
+\x19)\x7f\xd6\x9f\x81n\x09\xfe\x08\xbb3R.\x1c}\
+\xe5{9\xb9\xb8\x04\x1b\x9b\x03\xa9\x8d\xce\xfd\xba0+\
+\x03k\x8c\x81l\x063>\xca?~\xfb\xbb\xf5\x96\xd6\
+\x93\xd3P\x1e\xc8@Z\xca_\x1e84\x95\x91m\x0f\
+]\xdb\xe8F\xa9\xb7\x910J\x13dD\x05%\xd1\x11\
+}X&\xbdQG\xf8>{'\x0fd\xe2R\xfeb\
+\xa0\x04\xa7!\xa7\x8d\x99\xbe\xf7\x99',ucq[\
+\xc7\x03\xa5\x88>\x0bK\x13\xe8U\x1f\x88\xba\xbe\xc4\xbd\
+O|\xd3V\xc6<7\x03\xd9\x1e\x80\x14<U,\xe4\
+\x95P\x0a\xddj\xf7:\x8eD\xa9\xb7\x88\xb2\xab\x17\xa2\
+#\x91\xf4\x87:%%\xaa\xed!\x84$\x97\x1d\xd6\x1e\
+<\xd6\x03\x10\x13\xe2\xbb\xa3\x13\xfb3\xaa\xba\x8e\x89\x18\
+\xd1\xa1\x11)1Rv\x0d\x9a@\xa7-\x0bcY\x18\
+)1\x11\xbd\x0a\xd6w%\xd0\xfbk\x1b\x14\xf7\xed\xcd\
+\xd8B\xbc\x10\x02\xd8A\xc3L\xa6\xf7\xeeA7\x1a]\
+C\x08\x01\xaf\xbf\x1e-\x17\x82\xcfpx\x04\xa3y\xfc\
+x\xa7\x99\x85@7[\xa4>\xb7\x1b\xf1\xd1\x85\xa9\x1e\
+\x00\x0d\xa5\xf8H\x09S\xaev\x88\x83\x0c\xc8\xed\xacF\
+\x861\x06\xadu\xf7Z\x08\x81\x94\x12!:\xa8\xa1=\
+\x00\xed\xf9\xc4\x8a\xbb0P\x0a\x7f/\x01\xb41\x99X\
+!\x8fV\xaa\x93\xda u;\x0d\xad5J\xa9n\xa3\
+\x85\x10J)|\xdfGk\xdd\xe9\x95\xb0\x17\x8c!\x96\
+\xcb\xa0\x8d\x19\xee\x01\x90B\xd4\xdb\x8e\x83\x8e\xc5o\xd7\
+{\x07\x00\xa5T7\xf2;\x016\xce\x9f\xc7\xabV;\
+\xbd\x12\x8b\xe1\x96+\x08!6\xc356\x80\x80[\xcd\
+J%7\x94\x8c\xa3[\xad\x1d\x8d\xee\xe4\xb8\x07\xb4\xd1\
+\xc0\x9f\x9fG\xa4\xd3\xc4\xee\x1f\xc75\x1e\x02*=\x00\
+\xc0\xa5\xfa\xd5k\x13CG\x0ec6\x9dN\x03\x02\xee\
+\x89\x13\x9d\xd4\x1a\x83_.\xe3]\xbf\x8eq\x9c\xee\x0e\
+\x17\xf6J\xcf\xee\x17\xd9={\xf4\x8e\x83\xe5:46\
+\xeah\xb8\xd8\x03\xe0\x1bs\xaa<\x7f\xf1h\xe9KG\
+2=MS\xaf\xa3*\x15\xfc\xa5\xa5\xce\x1b\xb2\xcdV\
+\xdb\xaf\xeb\x07\x0c\x9f\xc9\xb1\x02\xb5\xcb\xd76\xb51\xa7\
+z\x00\x5c\x98\xd9\xd8\xac[\xed\xc5O\xf0\xfe\xb5\x801\
+\xa0[-\x8c\xebn\x19\xe5\xddD\xdf\x03d\x0c2\x9d\
+\xc0\xc4$\x8e\xdb\xb2\x81\xb3!\x80\x048\x0e5!\xc4\
+[\xcb\xff\x9c\xf5\xe5}cx\xb5\x1a\xcau\xbb\xa7[\
+\xb8\xf3\x85\xa2\xb8\xbd\xd5\xf6o\xcd\xa1^\x85\xe7C\xa0\
+\x8f\x1d\xd8C\xf9\x83\x05_\x1a\xde\x98\x86\xcd\x1e\x00\x00\
+W\xeb\x1f./\x95\xeb&\x9bF\xe4\xb3\xb7\x9dE\x0e\
+\x9a\x01\xa7\xdc>\x86U\x1f`\x14\x5c\xe63\x90\x8eS\
+\xbd\xb5Z\xf7\xe1GDF\x17\xe0\x18,#\xc4kW\
+\xdf\xfd\xa0\x91xx\x12\x93\x8c\xef\x18\xbd\xda\x02&\x0a\
+\xae\x8d\xc1\xa4\x12\xa4\x1e\x9a`\xf1o\xb3\x8e\x14\xe2\xd5\
+\xe8Q\xdc\x03\x00P\xd7\xfa'N\xd3\x9d\xfd\xf4\xef\x1f\
+z\xc9G\x1f\xc0\xa4\x12\x03\xa9\xdd*\xfa\x9elE\xa2\
+'\x9d`\xe8\xcb\x07Yzo\xae\xed\xb6\xda\x1f\xd5\xb5\
+\xfe)}c`k\x7f\x0bv\xd90_(\xe5G\xc6\
+\xbfv$\xe6\x9c\xbf\x84\xbfR\xebm\xb8-:<\xaa\
+\x07\xb0K9\x86\x0e\xefg\xf9\xbdyo\xb3Z[n\
+\xc2\x83[}\x13ny\xb6\x9c\x81{\x04\x9cM\xa5\x92\
+\x87\xf6\x1e}8e\x1a.\xcd\x0b\xd7QNs\xdb\xd7\
+0\x14k8Mjr\x1c\x91\x8a\xf3\xe9_?nz\
+n{\xae\x0dO>\x07\xd5\xad|m{\xb8\xbd\x06\xb1\
+1xU\x0a\xf1b~\xb4\x90\x18y\xe4\x90\xc4m\xd1\
+\xba\xb9\x8a\xbf\xee\xa0\xdd\x16\xdaS\x10\xb3\x90\xc9\x04V\
+.Ml,\x8f\x8c[\xdc:w\xc5\xaf\xddZ\xf3\xda\
+p\xf2$\xfc\xe0\x0c4\xb6\xf3\xb3\x15\x80\x002\xc0\x10\
+\x90\xf9\x0eLN\xc3\x8f\xb3\xf0H2\x95P\xd9\xb1B\
+*Y\xccb\x0f\xa7\xb1\x87\x92xN\x93V\xadA{\
+u\x83\xf5\x9bkM\xcfmY\xebp\xeeM\xf8\xd5\xdb\
+p\x05\xa8\x03Nd\xde\x11 \x1d\x00\x0cG\xe7=0\
+\xf6$<z\x18\xbe\x9a\x85\xb1\x04dl\x88\xfb\xe0\xb9\
+P_\x87\xca\x87\xf0\xfe\x9f\xe1\xdcR\xa7\xd3\xebt\xde\
+\xf7p\xde\xa4\xf3\x9fQ\xddM\x09\xd2t\xbe\xdb\xc2L\
+\xa4\x839\x15H\x02\x88\xd3\xf9_a\x02\xa3\x1e\xe0\x02\
+M:)\x0f%t\xbc\xd9\xef\xfcN\x00\xd1\xe7\xb1\xc0\
+a\x0aH\x06\x8e\xe3\x81\xde\x06\xfc\x08@\x1bh\x05\x8e\
+\xdd@7\xe04:\xfe\x03\xe7\x9a\x10E\xb3\x99\xaa\x5c\
+\x00\x00\x00\x00IEND\xaeB`\x82\
+"
+
+qt_resource_name = b"\
+\x00\x0d\
+\x0e\xa1\xb1G\
+\x00t\
+\x00e\x00x\x00t\x00-\x00h\x00t\x00m\x00l\x00.\x00p\x00n\x00g\
+\x00\x0b\
+\x0c+\x1f\xc7\
+\x00g\
+\x00o\x00-\x00n\x00e\x00x\x00t\x00.\x00p\x00n\x00g\
+\x00\x0d\
+\x07\x1b{\x87\
+\x00g\
+\x00o\x00-\x00b\x00o\x00t\x00t\x00o\x00m\x00.\x00p\x00n\x00g\
+\x00\x10\
+\x08\x15\x13g\
+\x00v\
+\x00i\x00e\x00w\x00-\x00r\x00e\x00f\x00r\x00e\x00s\x00h\x00.\x00p\x00n\x00g\
+\x00\x10\
+\x08\xea\xfbg\
+\x00p\
+\x00r\x00o\x00c\x00e\x00s\x00s\x00-\x00s\x00t\x00o\x00p\x00.\x00p\x00n\x00g\
+\x00\x0f\
+\x0e6v\xc7\
+\x00g\
+\x00o\x00-\x00p\x00r\x00e\x00v\x00i\x00o\x00u\x00s\x00.\x00p\x00n\x00g\
+\x00\x0e\
+\x0d\x8b9\xe7\
+\x00e\
+\x00d\x00i\x00t\x00-\x00c\x00l\x00e\x00a\x00r\x00.\x00p\x00n\x00g\
+\x00\x10\
+\x05\xcb%G\
+\x00A\
+\x00p\x00p\x00L\x00o\x00g\x00o\x00C\x00o\x00l\x00o\x00r\x00.\x00p\x00n\x00g\
+\x00\x09\
+\x05\x04\xbdG\
+\x00n\
+\x00i\x00n\x00j\x00a\x00.\x00p\x00n\x00g\
+\x00\x10\
+\x0f\xcb\x90g\
+\x00d\
+\x00i\x00a\x00l\x00o\x00g\x00-\x00e\x00r\x00r\x00o\x00r\x00.\x00p\x00n\x00g\
+"
+
+qt_resource_struct = b"\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x0a\x00\x00\x00\x01\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x01\x14\x00\x00\x00\x00\x00\x01\x00\x00CC\
+\x00\x00\x01\x83\x17\xd5\xbe\xbb\
+\x00\x00\x00\xee\x00\x00\x00\x00\x00\x01\x00\x00+^\
+\x00\x00\x01\x83\x17\xd5\xbe\xbb\
+\x00\x00\x00<\x00\x00\x00\x00\x00\x01\x00\x00\x0b\xaa\
+\x00\x00\x01\x83\x17\xd5\xbe\xb7\
+\x00\x00\x00\x5c\x00\x00\x00\x00\x00\x01\x00\x00\x10\x9d\
+\x00\x00\x01\x83\x17\xd5\xbe\xbb\
+\x00\x00\x00\x82\x00\x00\x00\x00\x00\x01\x00\x00\x18\x89\
+\x00\x00\x01\x83\x17\xd5\xbe\xbb\
+\x00\x00\x00 \x00\x00\x00\x00\x00\x01\x00\x00\x06\xe3\
+\x00\x00\x01\x83\x17\xd5\xbe\xbb\
+\x00\x00\x00\xcc\x00\x00\x00\x00\x00\x01\x00\x00$\xc8\
+\x00\x00\x01\x83\x17\xd5\xbe\xb7\
+\x00\x00\x00\xa8\x00\x00\x00\x00\x00\x01\x00\x00 \x14\
+\x00\x00\x01\x83\x17\xd5\xbe\xbb\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
+\x00\x00\x01\x83\x17\xd5\xbe\xbb\
+\x00\x00\x01,\x00\x00\x00\x00\x00\x01\x00\x00I\xce\
+\x00\x00\x01\x83\x17\xd5\xbe\xb7\
+"
+
+def qInitResources():
+ QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+def qCleanupResources():
+ QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+qInitResources()
diff --git a/examples/webenginewidgets/simplebrowser/data/simplebrowser.qrc b/examples/webenginewidgets/simplebrowser/data/simplebrowser.qrc
new file mode 100644
index 000000000..eda8e3f3d
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/data/simplebrowser.qrc
@@ -0,0 +1,16 @@
+<RCC>
+ <qresource prefix="/">
+ <file>AppLogoColor.png</file>
+ <file>ninja.png</file>
+ </qresource>
+ <qresource prefix="/">
+ <file alias="dialog-error.png">3rdparty/dialog-error.png</file>
+ <file alias="edit-clear.png">3rdparty/edit-clear.png</file>
+ <file alias="go-bottom.png">3rdparty/go-bottom.png</file>
+ <file alias="go-next.png">3rdparty/go-next.png</file>
+ <file alias="go-previous.png">3rdparty/go-previous.png</file>
+ <file alias="process-stop.png">3rdparty/process-stop.png</file>
+ <file alias="text-html.png">3rdparty/text-html.png</file>
+ <file alias="view-refresh.png">3rdparty/view-refresh.png</file>
+ </qresource>
+</RCC>
diff --git a/examples/webenginewidgets/simplebrowser/doc/simplebrowser.rst b/examples/webenginewidgets/simplebrowser/doc/simplebrowser.rst
index 83dd109c5..abe707670 100644
--- a/examples/webenginewidgets/simplebrowser/doc/simplebrowser.rst
+++ b/examples/webenginewidgets/simplebrowser/doc/simplebrowser.rst
@@ -1,8 +1,177 @@
-Simple Browser Example
-======================
+Simple Browser
+==============
-A simple browser based on Qt WebEngine Widgets.
+Simple Browser demonstrates how to use the Qt WebEngine Widgets classes to
+develop a small Web browser application that contains the following elements:
-.. image:: simplebrowser.png
- :width: 400
+- Menu bar for opening stored pages and managing windows and tabs.
+- Navigation bar for entering a URL and for moving backward and
+ forward in the web page browsing history.
+- Multi-tab area for displaying web content within tabs.
+- Status bar for displaying hovered links.
+- A simple download manager.
+
+The web content can be opened in new tabs or separate windows. HTTP and
+proxy authentication can be used for accessing web pages.
+
+Class Hierarchy
++++++++++++++++
+
+We will implement the following main classes:
+
+- ``Browser`` is a class managing the application windows.
+- ``BrowserWindow`` is a ``QMainWindow`` showing the menu, a navigation
+ bar, ``TabWidget``, and a status bar.
+- ``TabWidget`` is a ``QTabWidget`` and contains one or multiple
+ browser tabs.
+- ``WebView`` is a ``QWebEngineView``, provides a view for ``WebPage``,
+ and is added as a tab in ``TabWidget``.
+- ``WebPage`` is a ``QWebEnginePage`` that represents website content.
+
+Additionally, we will implement some auxiliary classes:
+
+- ``WebPopupWindow`` is a ``QWidget`` for showing popup windows.
+- ``DownloadManagerWidget`` is a ``QWidget`` implementing the downloads
+ list.
+
+Creating the Browser Main Window
+++++++++++++++++++++++++++++++++
+
+This example supports multiple main windows that are owned by a ``Browser``
+object. This class also owns the ``DownloadManagerWidget`` and could be used
+for further functionality, such as bookmarks and history managers.
+
+In ``main.cpp``, we create the first ``BrowserWindow`` instance and add it
+to the ``Browser`` object. If no arguments are passed on the command line,
+we open the Qt Homepage.
+
+To suppress flicker when switching the window to OpenGL rendering, we call
+show after the first browser tab has been added.
+
+Creating Tabs
++++++++++++++
+
+The ``BrowserWindow`` constructor initializes all the necessary user interface
+related objects. The centralWidget of ``BrowserWindow`` contains an instance of
+``TabWidget``. The ``TabWidget`` contains one or several ``WebView`` instances
+as tabs, and delegates it's signals and slots to the currently selected one.
+
+In ``TabWidget.setup_view()``, we make sure that the ``TabWidget`` always
+forwards the signals of the currently selected ``WebView``.
+
+Implementing WebView Functionality
+++++++++++++++++++++++++++++++++++
+
+The class ``WebView`` is derived from ``QWebEngineView`` to support the
+following functionality:
+
+- Displaying error messages in case the render process dies
+- Handling ``createWindow()`` requests
+- Adding custom menu items to context menus
+
+Managing WebWindows
+-------------------
+
+The loaded page might want to create windows of the type
+``QWebEnginePage.WebWindowType``, for example, when a JavaScript program requests
+to open a document in a new window or dialog. This is handled by overriding
+``QWebView.createWindow()``.
+
+In case of ``QWebEnginePage.WebDialog``, we create an instance of a custom
+``WebPopupWindow`` class.
+
+Adding Context Menu Items
+-------------------------
+
+We add a menu item to the context menu, so that users can right-click to have
+an inspector opened in a new window. We override
+``QWebEngineView.contextMenuEvent()`` and use
+``QWebEnginePage.createStandardContextMenu()`` to create a default ``QMenu``
+with a default list of ``QWebEnginePage.WebAction`` actions.
+
+Implementing WebPage and WebView Functionality
++++++++++++++++++++++++++++++++++++++++++++++++
+
+We implement ``WebPage`` as a subclass of ``QWebEnginePage`` and ``WebView`` as
+as subclass of ``QWebEngineView`` to enable HTTP, proxy authentication, as well
+as ignoring SSL certificate errors when accessing web pages.
+
+In all the cases above, we display the appropriate dialog to the user. In
+case of authentication, we need to set the correct credential values on the
+QAuthenticator object.
+
+The ``handleProxyAuthenticationRequired`` signal handler implements the very same
+steps for the authentication of HTTP proxies.
+
+In case of SSL errors, we just need to return a boolean value indicating
+whether the certificate should be ignored.
+
+Opening a Web Page
+++++++++++++++++++
+
+This section describes the workflow for opening a new page. When the user
+enters a URL in the navigation bar and presses Enter, the
+``QLineEdit.:returnPressed()`` signal is emitted and the new URL is then handed
+over to ``TabWidget.set_url()``.
+
+The call is forwarded to the currently selected tab.
+
+The ``set_url()`` method of ``WebView`` just forwards the url to the associated
+``WebPage``, which in turn starts the downloading of the page's content in the
+background.
+
+Implementing Private Browsing
++++++++++++++++++++++++++++++
+
+*Private browsing*, *incognito mode*, or *off-the-record* mode is a feature of
+many browsers where normally persistent data, such as cookies, the HTTP cache,
+or browsing history, is kept only in memory, leaving no trace on disk. In this
+example we will implement private browsing on the window level with tabs in one
+window all in either normal or private mode. Alternatively we could implement
+private browsing on the tab-level, with some tabs in a window in normal mode,
+others in private mode.
+
+Implementing private browsing is quite easy using Qt WebEngine. All one has to
+do is to create a new ``QWebEngineProfile`` and use it in the
+``QWebEnginePage`` instead of the default profile. In the example, this new
+profile is owned by the ``Browser`` object.
+
+The required profile for *private browsing* is created together with its first
+window. The default constructor for ``QWebEngineProfile`` already puts it in
+*off-the-record* mode.
+
+All that is left to do is to pass the appropriate profile down to the
+appropriate ``QWebEnginePage`` objects. The ``Browser`` object will hand to
+each new ``BrowserWindow`` either the global default profile or one shared
+*off-the-record* profile instance.
+
+The ``BrowserWindow`` and ``TabWidget`` objects will then ensure that all
+``QWebEnginePage`` objects contained in a window will use this profile.
+
+Managing Downloads
+++++++++++++++++++
+
+Downloads are associated with a ``QWebEngineProfile``. Whenever a download is
+triggered on a web page the ``QWebEngineProfile.downloadRequested`` signal is
+emitted with a ``QWebEngineDownloadRequest``, which in this example is
+forwarded to ``DownloadManagerWidget.download_requested()``.
+
+This method prompts the user for a file name (with a pre-filled suggestion) and
+starts the download (unless the user cancels the ``Save As`` dialog).
+
+The ``QWebEngineDownloadRequest`` object will periodically emit the
+``QWebEngineDownloadRequest.receivedBytesChanged()`` signal to notify potential
+observers of the download progress and the
+``QWebEngineDownloadRequest.stateChanged()`` signal when the download is
+finished or when an error occurs.
+
+Files and Attributions
+++++++++++++++++++++++
+
+The example uses icons from the `Tango Icon Library`_.
+
+.. image:: simplebrowser.webp
+ :width: 800
:alt: Simple Browser Screenshot
+
+.. _`Tango Icon Library`: http://tango.freedesktop.org/Tango_Icon_Library
diff --git a/examples/webenginewidgets/simplebrowser/doc/simplebrowser.webp b/examples/webenginewidgets/simplebrowser/doc/simplebrowser.webp
new file mode 100644
index 000000000..0edc72c0b
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/doc/simplebrowser.webp
Binary files differ
diff --git a/examples/webenginewidgets/simplebrowser/downloadmanagerwidget.py b/examples/webenginewidgets/simplebrowser/downloadmanagerwidget.py
new file mode 100644
index 000000000..7096b8b57
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/downloadmanagerwidget.py
@@ -0,0 +1,51 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtWebEngineCore import QWebEngineDownloadRequest
+from PySide6.QtWidgets import QWidget, QFileDialog
+from PySide6.QtCore import QDir, QFileInfo, Qt
+
+from downloadwidget import DownloadWidget
+from ui_downloadmanagerwidget import Ui_DownloadManagerWidget
+
+
+# Displays a list of downloads.
+class DownloadManagerWidget(QWidget):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._ui = Ui_DownloadManagerWidget()
+ self._num_downloads = 0
+ self._ui.setupUi(self)
+
+ def download_requested(self, download):
+ assert (download and download.state() == QWebEngineDownloadRequest.DownloadRequested)
+
+ proposal_dir = download.downloadDirectory()
+ proposal_name = download.downloadFileName()
+ proposal = QDir(proposal_dir).filePath(proposal_name)
+ path, _ = QFileDialog.getSaveFileName(self, "Save as", proposal)
+ if not path:
+ return
+
+ fi = QFileInfo(path)
+ download.setDownloadDirectory(fi.path())
+ download.setDownloadFileName(fi.fileName())
+ download.accept()
+ self.add(DownloadWidget(download))
+
+ self.show()
+
+ def add(self, downloadWidget):
+ downloadWidget.remove_clicked.connect(self.remove)
+ self._ui.m_itemsLayout.insertWidget(0, downloadWidget, 0, Qt.AlignTop)
+ if self._num_downloads == 0:
+ self._ui.m_zeroItemsLabel.hide()
+ self._num_downloads += 1
+
+ def remove(self, downloadWidget):
+ self._ui.m_itemsLayout.removeWidget(downloadWidget)
+ downloadWidget.deleteLater()
+ self._num_downloads -= 1
+ if self._num_downloads == 0:
+ self._ui.m_zeroItemsLabel.show()
diff --git a/examples/webenginewidgets/simplebrowser/downloadmanagerwidget.ui b/examples/webenginewidgets/simplebrowser/downloadmanagerwidget.ui
new file mode 100644
index 000000000..b7544ac16
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/downloadmanagerwidget.ui
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>DownloadManagerWidget</class>
+ <widget class="QWidget" name="DownloadManagerWidget">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>400</width>
+ <height>212</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Downloads</string>
+ </property>
+ <property name="styleSheet">
+ <string notr="true">#DownloadManagerWidget {
+ background: palette(button)
+}</string>
+ </property>
+ <layout class="QVBoxLayout" name="m_topLevelLayout">
+ <property name="sizeConstraint">
+ <enum>QLayout::SetNoConstraint</enum>
+ </property>
+ <property name="leftMargin">
+ <number>0</number>
+ </property>
+ <property name="topMargin">
+ <number>0</number>
+ </property>
+ <property name="rightMargin">
+ <number>0</number>
+ </property>
+ <property name="bottomMargin">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QScrollArea" name="m_scrollArea">
+ <property name="styleSheet">
+ <string notr="true">#m_scrollArea {
+ margin: 2px;
+ border: none;
+}</string>
+ </property>
+ <property name="verticalScrollBarPolicy">
+ <enum>Qt::ScrollBarAlwaysOn</enum>
+ </property>
+ <property name="horizontalScrollBarPolicy">
+ <enum>Qt::ScrollBarAlwaysOff</enum>
+ </property>
+ <property name="widgetResizable">
+ <bool>true</bool>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+ </property>
+ <widget class="QWidget" name="m_items">
+ <property name="styleSheet">
+ <string notr="true">#m_items {background: palette(mid)}</string>
+ </property>
+ <layout class="QVBoxLayout" name="m_itemsLayout">
+ <property name="spacing">
+ <number>2</number>
+ </property>
+ <property name="leftMargin">
+ <number>3</number>
+ </property>
+ <property name="topMargin">
+ <number>3</number>
+ </property>
+ <property name="rightMargin">
+ <number>3</number>
+ </property>
+ <property name="bottomMargin">
+ <number>3</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="m_zeroItemsLabel">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="styleSheet">
+ <string notr="true">color: palette(shadow)</string>
+ </property>
+ <property name="text">
+ <string>No downloads</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/examples/webenginewidgets/simplebrowser/downloadwidget.py b/examples/webenginewidgets/simplebrowser/downloadwidget.py
new file mode 100644
index 000000000..3b4973cb8
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/downloadwidget.py
@@ -0,0 +1,109 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from ui_downloadwidget import Ui_DownloadWidget
+
+from PySide6.QtWebEngineCore import QWebEngineDownloadRequest
+from PySide6.QtWidgets import QFrame, QWidget
+from PySide6.QtGui import QIcon
+from PySide6.QtCore import QElapsedTimer, Signal, Slot
+
+
+def with_unit(bytes):
+ if bytes < (1 << 10):
+ return f"{bytes} B"
+ if bytes < (1 << 20):
+ s = bytes / (1 << 10)
+ return f"{int(s)} KiB"
+ if bytes < (1 << 30):
+ s = bytes / (1 << 20)
+ return f"{int(s)} MiB"
+ s = bytes / (1 << 30)
+ return f"{int(s)} GiB"
+
+
+class DownloadWidget(QFrame):
+ """Displays one ongoing or finished download (QWebEngineDownloadRequest)."""
+
+ # This signal is emitted when the user indicates that they want to remove
+ # this download from the downloads list.
+ remove_clicked = Signal(QWidget)
+
+ def __init__(self, download, parent=None):
+ super().__init__(parent)
+ self._download = download
+ self._time_added = QElapsedTimer()
+ self._time_added.start()
+ self._cancel_icon = QIcon.fromTheme(QIcon.ThemeIcon.ProcessStop,
+ QIcon(":process-stop.png"))
+ self._remove_icon = QIcon.fromTheme(QIcon.ThemeIcon.EditClear,
+ QIcon(":edit-clear.png"))
+
+ self._ui = Ui_DownloadWidget()
+ self._ui.setupUi(self)
+ self._ui.m_dstName.setText(self._download.downloadFileName())
+ self._ui.m_srcUrl.setText(self._download.url().toDisplayString())
+
+ self._ui.m_cancelButton.clicked.connect(self._canceled)
+
+ self._download.totalBytesChanged.connect(self.update_widget)
+ self._download.receivedBytesChanged.connect(self.update_widget)
+
+ self._download.stateChanged.connect(self.update_widget)
+
+ self.update_widget()
+
+ @Slot()
+ def _canceled(self):
+ state = self._download.state()
+ if state == QWebEngineDownloadRequest.DownloadInProgress:
+ self._download.cancel()
+ else:
+ self.remove_clicked.emit(self)
+
+ def update_widget(self):
+ total_bytes_v = self._download.totalBytes()
+ total_bytes = with_unit(total_bytes_v)
+ received_bytes_v = self._download.receivedBytes()
+ received_bytes = with_unit(received_bytes_v)
+ elapsed = self._time_added.elapsed()
+ bytes_per_second_v = received_bytes_v / elapsed * 1000 if elapsed else 0
+ bytes_per_second = with_unit(bytes_per_second_v)
+
+ state = self._download.state()
+
+ progress_bar = self._ui.m_progressBar
+ if state == QWebEngineDownloadRequest.DownloadInProgress:
+ if total_bytes_v > 0:
+ progress = round(100 * received_bytes_v / total_bytes_v)
+ progress_bar.setValue(progress)
+ progress_bar.setDisabled(False)
+ fmt = f"%p% - {received_bytes} of {total_bytes} downloaded - {bytes_per_second}/s"
+ progress_bar.setFormat(fmt)
+ else:
+ progress_bar.setValue(0)
+ progress_bar.setDisabled(False)
+ fmt = f"unknown size - {received_bytes} downloaded - {bytes_per_second}/s"
+ progress_bar.setFormat(fmt)
+ elif state == QWebEngineDownloadRequest.DownloadCompleted:
+ progress_bar.setValue(100)
+ progress_bar.setDisabled(True)
+ fmt = f"completed - {received_bytes} downloaded - {bytes_per_second}/s"
+ progress_bar.setFormat(fmt)
+ elif state == QWebEngineDownloadRequest.DownloadCancelled:
+ progress_bar.setValue(0)
+ progress_bar.setDisabled(True)
+ fmt = f"cancelled - {received_bytes} downloaded - {bytes_per_second}/s"
+ progress_bar.setFormat(fmt)
+ elif state == QWebEngineDownloadRequest.DownloadInterrupted:
+ progress_bar.setValue(0)
+ progress_bar.setDisabled(True)
+ fmt = "interrupted: " + self._download.interruptReasonString()
+ progress_bar.setFormat(fmt)
+
+ if state == QWebEngineDownloadRequest.DownloadInProgress:
+ self._ui.m_cancelButton.setIcon(self._cancel_icon)
+ self._ui.m_cancelButton.setToolTip("Stop downloading")
+ else:
+ self._ui.m_cancelButton.setIcon(self._remove_icon)
+ self._ui.m_cancelButton.setToolTip("Remove from list")
diff --git a/examples/webenginewidgets/simplebrowser/downloadwidget.ui b/examples/webenginewidgets/simplebrowser/downloadwidget.ui
new file mode 100644
index 000000000..47f621486
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/downloadwidget.ui
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>DownloadWidget</class>
+ <widget class="QFrame" name="DownloadWidget">
+ <property name="styleSheet">
+ <string notr="true">#DownloadWidget {
+ background: palette(button);
+ border: 1px solid palette(dark);
+ margin: 0px;
+}</string>
+ </property>
+ <layout class="QGridLayout" name="m_topLevelLayout">
+ <property name="sizeConstraint">
+ <enum>QLayout::SetMinAndMaxSize</enum>
+ </property>
+ <item row="0" column="0">
+ <widget class="QLabel" name="m_dstName">
+ <property name="styleSheet">
+ <string notr="true">font-weight: bold
+</string>
+ </property>
+ <property name="text">
+ <string>TextLabel</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QPushButton" name="m_cancelButton">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed"/>
+ </property>
+ <property name="styleSheet">
+ <string notr="true">QPushButton {
+ margin: 1px;
+ border: none;
+}
+QPushButton:pressed {
+ margin: none;
+ border: 1px solid palette(shadow);
+ background: palette(midlight);
+}</string>
+ </property>
+ <property name="flat">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" colspan="2">
+ <widget class="QLabel" name="m_srcUrl">
+ <property name="maximumSize">
+ <size>
+ <width>350</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <property name="styleSheet">
+ <string notr="true"/>
+ </property>
+ <property name="text">
+ <string>TextLabel</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" colspan="2">
+ <widget class="QProgressBar" name="m_progressBar">
+ <property name="styleSheet">
+ <string notr="true">font-size: 12px</string>
+ </property>
+ <property name="value">
+ <number>24</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/examples/webenginewidgets/simplebrowser/main.py b/examples/webenginewidgets/simplebrowser/main.py
new file mode 100644
index 000000000..781ec29eb
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/main.py
@@ -0,0 +1,45 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the Qt WebEngineWidgets Simple Browser example from Qt v6.x"""
+
+import sys
+from argparse import ArgumentParser, RawTextHelpFormatter
+
+from PySide6.QtWebEngineCore import QWebEngineProfile, QWebEngineSettings
+from PySide6.QtWidgets import QApplication
+from PySide6.QtGui import QIcon
+from PySide6.QtCore import QCoreApplication, QLoggingCategory, QUrl
+
+from browser import Browser
+
+import data.rc_simplebrowser # noqa: F401
+
+if __name__ == "__main__":
+ parser = ArgumentParser(description="Qt Widgets Web Browser",
+ formatter_class=RawTextHelpFormatter)
+ parser.add_argument("--single-process", "-s", action="store_true",
+ help="Run in single process mode (trouble shooting)")
+ parser.add_argument("url", type=str, nargs="?", help="URL")
+ args = parser.parse_args()
+
+ QCoreApplication.setOrganizationName("QtExamples")
+
+ app_args = sys.argv
+ if args.single_process:
+ app_args.extend(["--webEngineArgs", "--single-process"])
+ app = QApplication(app_args)
+ app.setWindowIcon(QIcon(":AppLogoColor.png"))
+ QLoggingCategory.setFilterRules("qt.webenginecontext.debug=true")
+
+ s = QWebEngineProfile.defaultProfile().settings()
+ s.setAttribute(QWebEngineSettings.PluginsEnabled, True)
+ s.setAttribute(QWebEngineSettings.DnsPrefetchEnabled, True)
+
+ browser = Browser()
+ window = browser.create_hidden_window()
+
+ url = QUrl.fromUserInput(args.url) if args.url else QUrl("https://www.qt.io")
+ window.tab_widget().set_url(url)
+ window.show()
+ sys.exit(app.exec())
diff --git a/examples/webenginewidgets/simplebrowser/passworddialog.ui b/examples/webenginewidgets/simplebrowser/passworddialog.ui
new file mode 100644
index 000000000..bbf5004f5
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/passworddialog.ui
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>PasswordDialog</class>
+ <widget class="QDialog" name="PasswordDialog">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>399</width>
+ <height>148</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Authentication Required</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout" columnstretch="0,0" columnminimumwidth="0,0">
+ <item row="0" column="0">
+ <widget class="QLabel" name="m_iconLabel">
+ <property name="text">
+ <string>Icon</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QLabel" name="m_infoLabel">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Info</string>
+ </property>
+ <property name="wordWrap">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="userLabel">
+ <property name="text">
+ <string>Username:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QLineEdit" name="m_userNameLineEdit"/>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="passwordLabel">
+ <property name="text">
+ <string>Password:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="QLineEdit" name="m_passwordLineEdit">
+ <property name="echoMode">
+ <enum>QLineEdit::Password</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0" colspan="2">
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ <zorder>userLabel</zorder>
+ <zorder>m_userNameLineEdit</zorder>
+ <zorder>passwordLabel</zorder>
+ <zorder>m_passwordLineEdit</zorder>
+ <zorder>buttonBox</zorder>
+ <zorder>m_iconLabel</zorder>
+ <zorder>m_infoLabel</zorder>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>PasswordDialog</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>248</x>
+ <y>254</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>157</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>PasswordDialog</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>316</x>
+ <y>260</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>286</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/examples/webenginewidgets/simplebrowser/simplebrowser.py b/examples/webenginewidgets/simplebrowser/simplebrowser.py
deleted file mode 100644
index e3f45356b..000000000
--- a/examples/webenginewidgets/simplebrowser/simplebrowser.py
+++ /dev/null
@@ -1,104 +0,0 @@
-
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-"""PySide6 WebEngineWidgets Example"""
-
-import sys
-from PySide6.QtCore import QUrl
-from PySide6.QtGui import QIcon
-from PySide6.QtWidgets import (QApplication, QLineEdit,
- QMainWindow, QPushButton, QToolBar)
-from PySide6.QtWebEngineCore import QWebEnginePage
-from PySide6.QtWebEngineWidgets import QWebEngineView
-
-
-class MainWindow(QMainWindow):
-
- def __init__(self):
- super().__init__()
-
- self.setWindowTitle('PySide6 WebEngineWidgets Example')
-
- self.toolBar = QToolBar()
- self.addToolBar(self.toolBar)
- self.backButton = QPushButton()
- self.backButton.setIcon(QIcon(':/qt-project.org/styles/commonstyle/images/left-32.png'))
- self.backButton.clicked.connect(self.back)
- self.toolBar.addWidget(self.backButton)
- self.forwardButton = QPushButton()
- self.forwardButton.setIcon(QIcon(':/qt-project.org/styles/commonstyle/images/right-32.png'))
- self.forwardButton.clicked.connect(self.forward)
- self.toolBar.addWidget(self.forwardButton)
-
- self.addressLineEdit = QLineEdit()
- self.addressLineEdit.returnPressed.connect(self.load)
- self.toolBar.addWidget(self.addressLineEdit)
-
- self.webEngineView = QWebEngineView()
- self.setCentralWidget(self.webEngineView)
- initialUrl = 'http://qt.io'
- self.addressLineEdit.setText(initialUrl)
- self.webEngineView.load(QUrl(initialUrl))
- self.webEngineView.page().titleChanged.connect(self.setWindowTitle)
- self.webEngineView.page().urlChanged.connect(self.urlChanged)
-
- def load(self):
- url = QUrl.fromUserInput(self.addressLineEdit.text())
- if url.isValid():
- self.webEngineView.load(url)
-
- def back(self):
- self.webEngineView.page().triggerAction(QWebEnginePage.Back)
-
- def forward(self):
- self.webEngineView.page().triggerAction(QWebEnginePage.Forward)
-
- def urlChanged(self, url):
- self.addressLineEdit.setText(url.toString())
-
-
-if __name__ == '__main__':
- app = QApplication(sys.argv)
- mainWin = MainWindow()
- availableGeometry = mainWin.screen().availableGeometry()
- mainWin.resize(availableGeometry.width() * 2 / 3, availableGeometry.height() * 2 / 3)
- mainWin.show()
- sys.exit(app.exec())
diff --git a/examples/webenginewidgets/simplebrowser/simplebrowser.pyproject b/examples/webenginewidgets/simplebrowser/simplebrowser.pyproject
index 6bc12af6b..eceac291e 100644
--- a/examples/webenginewidgets/simplebrowser/simplebrowser.pyproject
+++ b/examples/webenginewidgets/simplebrowser/simplebrowser.pyproject
@@ -1,3 +1,7 @@
{
- "files": ["simplebrowser.py"]
+ "files": ["main.py", "browser.py", "browserwindow.py", "certificateerrordialog.ui",
+ "data/simplebrowser.qrc", "downloadmanagerwidget.py",
+ "downloadmanagerwidget.ui", "downloadwidget.py",
+ "downloadwidget.ui", "passworddialog.ui", "tabwidget.py",
+ "webpage.py", "webpopupwindow.py", "webview.py"]
}
diff --git a/examples/webenginewidgets/simplebrowser/tabwidget.py b/examples/webenginewidgets/simplebrowser/tabwidget.py
new file mode 100644
index 000000000..bda321ac1
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/tabwidget.py
@@ -0,0 +1,241 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from functools import partial
+
+from PySide6.QtWebEngineCore import (QWebEngineFindTextResult, QWebEnginePage)
+from PySide6.QtWidgets import QLabel, QMenu, QTabBar, QTabWidget
+from PySide6.QtGui import QCursor, QIcon, QKeySequence, QPixmap
+from PySide6.QtCore import QUrl, Qt, Signal, Slot
+
+from webpage import WebPage
+from webview import WebView
+
+
+class TabWidget(QTabWidget):
+ link_hovered = Signal(str)
+ load_progress = Signal(int)
+ title_changed = Signal(str)
+ url_changed = Signal(QUrl)
+ fav_icon_changed = Signal(QIcon)
+ web_action_enabled_changed = Signal(QWebEnginePage.WebAction, bool)
+ dev_tools_requested = Signal(QWebEnginePage)
+ find_text_finished = Signal(QWebEngineFindTextResult)
+
+ def __init__(self, profile, parent):
+ super().__init__(parent)
+ self._profile = profile
+ tab_bar = self.tabBar()
+ tab_bar.setTabsClosable(True)
+ tab_bar.setSelectionBehaviorOnRemove(QTabBar.SelectPreviousTab)
+ tab_bar.setMovable(True)
+ tab_bar.setContextMenuPolicy(Qt.CustomContextMenu)
+ tab_bar.customContextMenuRequested.connect(self.handle_context_menu_requested)
+ tab_bar.tabCloseRequested.connect(self.close_tab)
+ tab_bar.tabBarDoubleClicked.connect(self._tabbar_double_clicked)
+ self.setDocumentMode(True)
+ self.setElideMode(Qt.ElideRight)
+
+ self.currentChanged.connect(self.handle_current_changed)
+
+ if profile.isOffTheRecord():
+ icon = QLabel(self)
+ pixmap = QPixmap(":ninja.png")
+ icon.setPixmap(pixmap.scaledToHeight(tab_bar.height()))
+ w = icon.pixmap().width()
+ self.setStyleSheet(f"QTabWidget.tab-bar {{ left: {w}px; }}")
+
+ @Slot(int)
+ def _tabbar_double_clicked(self, index):
+ if index == -1:
+ self.create_tab()
+
+ def handle_current_changed(self, index):
+ if index != -1:
+ view = self.web_view(index)
+ if view.url():
+ view.setFocus()
+ self.title_changed.emit(view.title())
+ self.load_progress.emit(view.load_progress())
+ self.url_changed.emit(view.url())
+ self.fav_icon_changed.emit(view.fav_icon())
+ e = view.is_web_action_enabled(QWebEnginePage.Back)
+ self.web_action_enabled_changed.emit(QWebEnginePage.Back, e)
+ e = view.is_web_action_enabled(QWebEnginePage.Forward)
+ self.web_action_enabled_changed.emit(QWebEnginePage.Forward, e)
+ e = view.is_web_action_enabled(QWebEnginePage.Stop)
+ self.web_action_enabled_changed.emit(QWebEnginePage.Stop, e)
+ e = view.is_web_action_enabled(QWebEnginePage.Reload)
+ self.web_action_enabled_changed.emit(QWebEnginePage.Reload, e)
+ else:
+ self.title_changed.emit("")
+ self.load_progress.emit(0)
+ self.url_changed.emit(QUrl())
+ self.fav_icon_changed.emit(QIcon())
+ self.web_action_enabled_changed.emit(QWebEnginePage.Back, False)
+ self.web_action_enabled_changed.emit(QWebEnginePage.Forward, False)
+ self.web_action_enabled_changed.emit(QWebEnginePage.Stop, False)
+ self.web_action_enabled_changed.emit(QWebEnginePage.Reload, True)
+
+ def handle_context_menu_requested(self, pos):
+ menu = QMenu()
+ menu.addAction("New &Tab", QKeySequence.AddTab, self.create_tab)
+ index = self.tabBar().tabAt(pos)
+ if index != -1:
+ action = menu.addAction("Clone Tab")
+ action.triggered.connect(partial(self.clone_tab, index))
+ menu.addSeparator()
+ action = menu.addAction("Close Tab")
+ action.setShortcut(QKeySequence.Close)
+ action.triggered.connect(partial(self.close_tab, index))
+ action = menu.addAction("Close Other Tabs")
+ action.triggered.connect(partial(self.close_other_tabs, index))
+ menu.addSeparator()
+ action = menu.addAction("Reload Tab")
+ action.setShortcut(QKeySequence.Refresh)
+ action.triggered.connect(partial(self.reload_tab, index))
+ else:
+ menu.addSeparator()
+
+ menu.addAction("Reload All Tabs", self.reload_all_tabs)
+ menu.exec(QCursor.pos())
+
+ def current_web_view(self):
+ return self.web_view(self.currentIndex())
+
+ def web_view(self, index):
+ return self.widget(index)
+
+ def _title_changed(self, web_view, title):
+ index = self.indexOf(web_view)
+ if index != -1:
+ self.setTabText(index, title)
+ self.setTabToolTip(index, title)
+
+ if self.currentIndex() == index:
+ self.title_changed.emit(title)
+
+ def _url_changed(self, web_view, url):
+ index = self.indexOf(web_view)
+ if index != -1:
+ self.tabBar().setTabData(index, url)
+ if self.currentIndex() == index:
+ self.url_changed.emit(url)
+
+ def _load_progress(self, web_view, progress):
+ if self.currentIndex() == self.indexOf(web_view):
+ self.load_progress.emit(progress)
+
+ def _fav_icon_changed(self, web_view, icon):
+ index = self.indexOf(web_view)
+ if index != -1:
+ self.setTabIcon(index, icon)
+ if self.currentIndex() == index:
+ self.fav_icon_changed.emit(icon)
+
+ def _link_hovered(self, web_view, url):
+ if self.currentIndex() == self.indexOf(web_view):
+ self.link_hovered.emit(url)
+
+ def _webaction_enabled_changed(self, webView, action, enabled):
+ if self.currentIndex() == self.indexOf(webView):
+ self.web_action_enabled_changed.emit(action, enabled)
+
+ def _window_close_requested(self, webView):
+ index = self.indexOf(webView)
+ if webView.page().inspectedPage():
+ self.window().close()
+ elif index >= 0:
+ self.close_tab(index)
+
+ def _find_text_finished(self, webView, result):
+ if self.currentIndex() == self.indexOf(webView):
+ self.find_text_finished.emit(result)
+
+ def setup_view(self, webView):
+ web_page = webView.page()
+ webView.titleChanged.connect(partial(self._title_changed, webView))
+ webView.urlChanged.connect(partial(self._url_changed, webView))
+ webView.loadProgress.connect(partial(self._load_progress, webView))
+ web_page.linkHovered.connect(partial(self._link_hovered, webView))
+ webView.fav_icon_changed.connect(partial(self._fav_icon_changed, webView))
+ webView.web_action_enabled_changed.connect(partial(self._webaction_enabled_changed,
+ webView))
+ web_page.windowCloseRequested.connect(partial(self._window_close_requested,
+ webView))
+ webView.dev_tools_requested.connect(self.dev_tools_requested)
+ web_page.findTextFinished.connect(partial(self._find_text_finished,
+ webView))
+
+ def create_tab(self):
+ web_view = self.create_background_tab()
+ self.setCurrentWidget(web_view)
+ return web_view
+
+ def create_background_tab(self):
+ web_view = WebView()
+ web_page = WebPage(self._profile, web_view)
+ web_view.set_page(web_page)
+ self.setup_view(web_view)
+ index = self.addTab(web_view, "(Untitled)")
+ self.setTabIcon(index, web_view.fav_icon())
+ # Workaround for QTBUG-61770
+ web_view.resize(self.currentWidget().size())
+ web_view.show()
+ return web_view
+
+ def reload_all_tabs(self):
+ for i in range(0, self.count()):
+ self.web_view(i).reload()
+
+ def close_other_tabs(self, index):
+ for i in range(index, self.count() - 1, -1):
+ self.close_tab(i)
+ for i in range(-1, index - 1, -1):
+ self.close_tab(i)
+
+ def close_tab(self, index):
+ view = self.web_view(index)
+ if view:
+ has_focus = view.hasFocus()
+ self.removeTab(index)
+ if has_focus and self.count() > 0:
+ self.current_web_view().setFocus()
+ if self.count() == 0:
+ self.create_tab()
+ view.deleteLater()
+
+ def clone_tab(self, index):
+ view = self.web_view(index)
+ if view:
+ tab = self.create_tab()
+ tab.setUrl(view.url())
+
+ def set_url(self, url):
+ view = self.current_web_view()
+ if view:
+ view.setUrl(url)
+ view.setFocus()
+
+ def trigger_web_page_action(self, action):
+ web_view = self.current_web_view()
+ if web_view:
+ web_view.triggerPageAction(action)
+ web_view.setFocus()
+
+ def next_tab(self):
+ next = self.currentIndex() + 1
+ if next == self.count():
+ next = 0
+ self.setCurrentIndex(next)
+
+ def previous_tab(self):
+ next = self.currentIndex() - 1
+ if next < 0:
+ next = self.count() - 1
+ self.setCurrentIndex(next)
+
+ def reload_tab(self, index):
+ view = self.web_view(index)
+ if view:
+ view.reload()
diff --git a/examples/webenginewidgets/simplebrowser/ui_certificateerrordialog.py b/examples/webenginewidgets/simplebrowser/ui_certificateerrordialog.py
new file mode 100644
index 000000000..a963f0ac0
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/ui_certificateerrordialog.py
@@ -0,0 +1,87 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'certificateerrordialog.ui'
+##
+## Created by: Qt User Interface Compiler version 6.7.0
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
+ QFont, QFontDatabase, QGradient, QIcon,
+ QImage, QKeySequence, QLinearGradient, QPainter,
+ QPalette, QPixmap, QRadialGradient, QTransform)
+from PySide6.QtWidgets import (QAbstractButton, QApplication, QDialog, QDialogButtonBox,
+ QLabel, QSizePolicy, QSpacerItem, QVBoxLayout,
+ QWidget)
+
+class Ui_CertificateErrorDialog(object):
+ def setupUi(self, CertificateErrorDialog):
+ if not CertificateErrorDialog.objectName():
+ CertificateErrorDialog.setObjectName(u"CertificateErrorDialog")
+ CertificateErrorDialog.resize(370, 141)
+ self.verticalLayout = QVBoxLayout(CertificateErrorDialog)
+ self.verticalLayout.setObjectName(u"verticalLayout")
+ self.verticalLayout.setContentsMargins(20, -1, 20, -1)
+ self.m_iconLabel = QLabel(CertificateErrorDialog)
+ self.m_iconLabel.setObjectName(u"m_iconLabel")
+ self.m_iconLabel.setAlignment(Qt.AlignCenter)
+
+ self.verticalLayout.addWidget(self.m_iconLabel)
+
+ self.m_errorLabel = QLabel(CertificateErrorDialog)
+ self.m_errorLabel.setObjectName(u"m_errorLabel")
+ sizePolicy = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Preferred)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.m_errorLabel.sizePolicy().hasHeightForWidth())
+ self.m_errorLabel.setSizePolicy(sizePolicy)
+ self.m_errorLabel.setAlignment(Qt.AlignCenter)
+ self.m_errorLabel.setWordWrap(True)
+
+ self.verticalLayout.addWidget(self.m_errorLabel)
+
+ self.m_infoLabel = QLabel(CertificateErrorDialog)
+ self.m_infoLabel.setObjectName(u"m_infoLabel")
+ sizePolicy1 = QSizePolicy(QSizePolicy.Policy.MinimumExpanding, QSizePolicy.Policy.MinimumExpanding)
+ sizePolicy1.setHorizontalStretch(0)
+ sizePolicy1.setVerticalStretch(0)
+ sizePolicy1.setHeightForWidth(self.m_infoLabel.sizePolicy().hasHeightForWidth())
+ self.m_infoLabel.setSizePolicy(sizePolicy1)
+ self.m_infoLabel.setAlignment(Qt.AlignLeading|Qt.AlignLeft|Qt.AlignVCenter)
+ self.m_infoLabel.setWordWrap(True)
+
+ self.verticalLayout.addWidget(self.m_infoLabel)
+
+ self.verticalSpacer = QSpacerItem(20, 16, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
+
+ self.verticalLayout.addItem(self.verticalSpacer)
+
+ self.buttonBox = QDialogButtonBox(CertificateErrorDialog)
+ self.buttonBox.setObjectName(u"buttonBox")
+ self.buttonBox.setOrientation(Qt.Horizontal)
+ self.buttonBox.setStandardButtons(QDialogButtonBox.No|QDialogButtonBox.Yes)
+
+ self.verticalLayout.addWidget(self.buttonBox)
+
+
+ self.retranslateUi(CertificateErrorDialog)
+ self.buttonBox.accepted.connect(CertificateErrorDialog.accept)
+ self.buttonBox.rejected.connect(CertificateErrorDialog.reject)
+
+ QMetaObject.connectSlotsByName(CertificateErrorDialog)
+ # setupUi
+
+ def retranslateUi(self, CertificateErrorDialog):
+ CertificateErrorDialog.setWindowTitle(QCoreApplication.translate("CertificateErrorDialog", u"Dialog", None))
+ self.m_iconLabel.setText(QCoreApplication.translate("CertificateErrorDialog", u"Icon", None))
+ self.m_errorLabel.setText(QCoreApplication.translate("CertificateErrorDialog", u"Error", None))
+ self.m_infoLabel.setText(QCoreApplication.translate("CertificateErrorDialog", u"If you wish so, you may continue with an unverified certificate. Accepting an unverified certificate mean you may not be connected with the host you tried to connect to.\n"
+"\n"
+"Do you wish to override the security check and continue ? ", None))
+ # retranslateUi
+
diff --git a/examples/webenginewidgets/simplebrowser/ui_downloadmanagerwidget.py b/examples/webenginewidgets/simplebrowser/ui_downloadmanagerwidget.py
new file mode 100644
index 000000000..f0f61aa75
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/ui_downloadmanagerwidget.py
@@ -0,0 +1,76 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'downloadmanagerwidget.ui'
+##
+## Created by: Qt User Interface Compiler version 6.7.0
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
+ QFont, QFontDatabase, QGradient, QIcon,
+ QImage, QKeySequence, QLinearGradient, QPainter,
+ QPalette, QPixmap, QRadialGradient, QTransform)
+from PySide6.QtWidgets import (QApplication, QLabel, QLayout, QScrollArea,
+ QSizePolicy, QVBoxLayout, QWidget)
+
+class Ui_DownloadManagerWidget(object):
+ def setupUi(self, DownloadManagerWidget):
+ if not DownloadManagerWidget.objectName():
+ DownloadManagerWidget.setObjectName(u"DownloadManagerWidget")
+ DownloadManagerWidget.resize(400, 212)
+ DownloadManagerWidget.setStyleSheet(u"#DownloadManagerWidget {\n"
+" background: palette(button)\n"
+"}")
+ self.m_topLevelLayout = QVBoxLayout(DownloadManagerWidget)
+ self.m_topLevelLayout.setObjectName(u"m_topLevelLayout")
+ self.m_topLevelLayout.setSizeConstraint(QLayout.SetNoConstraint)
+ self.m_topLevelLayout.setContentsMargins(0, 0, 0, 0)
+ self.m_scrollArea = QScrollArea(DownloadManagerWidget)
+ self.m_scrollArea.setObjectName(u"m_scrollArea")
+ self.m_scrollArea.setStyleSheet(u"#m_scrollArea {\n"
+" margin: 2px;\n"
+" border: none;\n"
+"}")
+ self.m_scrollArea.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
+ self.m_scrollArea.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
+ self.m_scrollArea.setWidgetResizable(True)
+ self.m_scrollArea.setAlignment(Qt.AlignLeading|Qt.AlignLeft|Qt.AlignTop)
+ self.m_items = QWidget()
+ self.m_items.setObjectName(u"m_items")
+ self.m_items.setStyleSheet(u"#m_items {background: palette(mid)}")
+ self.m_itemsLayout = QVBoxLayout(self.m_items)
+ self.m_itemsLayout.setSpacing(2)
+ self.m_itemsLayout.setObjectName(u"m_itemsLayout")
+ self.m_itemsLayout.setContentsMargins(3, 3, 3, 3)
+ self.m_zeroItemsLabel = QLabel(self.m_items)
+ self.m_zeroItemsLabel.setObjectName(u"m_zeroItemsLabel")
+ sizePolicy = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.m_zeroItemsLabel.sizePolicy().hasHeightForWidth())
+ self.m_zeroItemsLabel.setSizePolicy(sizePolicy)
+ self.m_zeroItemsLabel.setStyleSheet(u"color: palette(shadow)")
+ self.m_zeroItemsLabel.setAlignment(Qt.AlignCenter)
+
+ self.m_itemsLayout.addWidget(self.m_zeroItemsLabel)
+
+ self.m_scrollArea.setWidget(self.m_items)
+
+ self.m_topLevelLayout.addWidget(self.m_scrollArea)
+
+
+ self.retranslateUi(DownloadManagerWidget)
+
+ QMetaObject.connectSlotsByName(DownloadManagerWidget)
+ # setupUi
+
+ def retranslateUi(self, DownloadManagerWidget):
+ DownloadManagerWidget.setWindowTitle(QCoreApplication.translate("DownloadManagerWidget", u"Downloads", None))
+ self.m_zeroItemsLabel.setText(QCoreApplication.translate("DownloadManagerWidget", u"No downloads", None))
+ # retranslateUi
+
diff --git a/examples/webenginewidgets/simplebrowser/ui_downloadwidget.py b/examples/webenginewidgets/simplebrowser/ui_downloadwidget.py
new file mode 100644
index 000000000..58c32fdf8
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/ui_downloadwidget.py
@@ -0,0 +1,86 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'downloadwidget.ui'
+##
+## Created by: Qt User Interface Compiler version 6.7.0
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
+ QFont, QFontDatabase, QGradient, QIcon,
+ QImage, QKeySequence, QLinearGradient, QPainter,
+ QPalette, QPixmap, QRadialGradient, QTransform)
+from PySide6.QtWidgets import (QApplication, QFrame, QGridLayout, QLabel,
+ QLayout, QProgressBar, QPushButton, QSizePolicy,
+ QWidget)
+
+class Ui_DownloadWidget(object):
+ def setupUi(self, DownloadWidget):
+ if not DownloadWidget.objectName():
+ DownloadWidget.setObjectName(u"DownloadWidget")
+ DownloadWidget.setStyleSheet(u"#DownloadWidget {\n"
+" background: palette(button);\n"
+" border: 1px solid palette(dark);\n"
+" margin: 0px;\n"
+"}")
+ self.m_topLevelLayout = QGridLayout(DownloadWidget)
+ self.m_topLevelLayout.setObjectName(u"m_topLevelLayout")
+ self.m_topLevelLayout.setSizeConstraint(QLayout.SetMinAndMaxSize)
+ self.m_dstName = QLabel(DownloadWidget)
+ self.m_dstName.setObjectName(u"m_dstName")
+ self.m_dstName.setStyleSheet(u"font-weight: bold\n"
+"")
+
+ self.m_topLevelLayout.addWidget(self.m_dstName, 0, 0, 1, 1)
+
+ self.m_cancelButton = QPushButton(DownloadWidget)
+ self.m_cancelButton.setObjectName(u"m_cancelButton")
+ sizePolicy = QSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.m_cancelButton.sizePolicy().hasHeightForWidth())
+ self.m_cancelButton.setSizePolicy(sizePolicy)
+ self.m_cancelButton.setStyleSheet(u"QPushButton {\n"
+" margin: 1px;\n"
+" border: none;\n"
+"}\n"
+"QPushButton:pressed {\n"
+" margin: none;\n"
+" border: 1px solid palette(shadow);\n"
+" background: palette(midlight);\n"
+"}")
+ self.m_cancelButton.setFlat(False)
+
+ self.m_topLevelLayout.addWidget(self.m_cancelButton, 0, 1, 1, 1)
+
+ self.m_srcUrl = QLabel(DownloadWidget)
+ self.m_srcUrl.setObjectName(u"m_srcUrl")
+ self.m_srcUrl.setMaximumSize(QSize(350, 16777215))
+ self.m_srcUrl.setStyleSheet(u"")
+
+ self.m_topLevelLayout.addWidget(self.m_srcUrl, 1, 0, 1, 2)
+
+ self.m_progressBar = QProgressBar(DownloadWidget)
+ self.m_progressBar.setObjectName(u"m_progressBar")
+ self.m_progressBar.setStyleSheet(u"font-size: 12px")
+ self.m_progressBar.setValue(24)
+
+ self.m_topLevelLayout.addWidget(self.m_progressBar, 2, 0, 1, 2)
+
+
+ self.retranslateUi(DownloadWidget)
+
+ QMetaObject.connectSlotsByName(DownloadWidget)
+ # setupUi
+
+ def retranslateUi(self, DownloadWidget):
+ self.m_dstName.setText(QCoreApplication.translate("DownloadWidget", u"TextLabel", None))
+ self.m_srcUrl.setText(QCoreApplication.translate("DownloadWidget", u"TextLabel", None))
+ pass
+ # retranslateUi
+
diff --git a/examples/webenginewidgets/simplebrowser/ui_passworddialog.py b/examples/webenginewidgets/simplebrowser/ui_passworddialog.py
new file mode 100644
index 000000000..11e0c4a2e
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/ui_passworddialog.py
@@ -0,0 +1,96 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'passworddialog.ui'
+##
+## Created by: Qt User Interface Compiler version 6.7.0
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
+ QFont, QFontDatabase, QGradient, QIcon,
+ QImage, QKeySequence, QLinearGradient, QPainter,
+ QPalette, QPixmap, QRadialGradient, QTransform)
+from PySide6.QtWidgets import (QAbstractButton, QApplication, QDialog, QDialogButtonBox,
+ QGridLayout, QLabel, QLineEdit, QSizePolicy,
+ QWidget)
+
+class Ui_PasswordDialog(object):
+ def setupUi(self, PasswordDialog):
+ if not PasswordDialog.objectName():
+ PasswordDialog.setObjectName(u"PasswordDialog")
+ PasswordDialog.resize(399, 148)
+ self.gridLayout = QGridLayout(PasswordDialog)
+ self.gridLayout.setObjectName(u"gridLayout")
+ self.m_iconLabel = QLabel(PasswordDialog)
+ self.m_iconLabel.setObjectName(u"m_iconLabel")
+ self.m_iconLabel.setAlignment(Qt.AlignCenter)
+
+ self.gridLayout.addWidget(self.m_iconLabel, 0, 0, 1, 1)
+
+ self.m_infoLabel = QLabel(PasswordDialog)
+ self.m_infoLabel.setObjectName(u"m_infoLabel")
+ sizePolicy = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Preferred)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.m_infoLabel.sizePolicy().hasHeightForWidth())
+ self.m_infoLabel.setSizePolicy(sizePolicy)
+ self.m_infoLabel.setWordWrap(True)
+
+ self.gridLayout.addWidget(self.m_infoLabel, 0, 1, 1, 1)
+
+ self.userLabel = QLabel(PasswordDialog)
+ self.userLabel.setObjectName(u"userLabel")
+
+ self.gridLayout.addWidget(self.userLabel, 1, 0, 1, 1)
+
+ self.m_userNameLineEdit = QLineEdit(PasswordDialog)
+ self.m_userNameLineEdit.setObjectName(u"m_userNameLineEdit")
+
+ self.gridLayout.addWidget(self.m_userNameLineEdit, 1, 1, 1, 1)
+
+ self.passwordLabel = QLabel(PasswordDialog)
+ self.passwordLabel.setObjectName(u"passwordLabel")
+
+ self.gridLayout.addWidget(self.passwordLabel, 2, 0, 1, 1)
+
+ self.m_passwordLineEdit = QLineEdit(PasswordDialog)
+ self.m_passwordLineEdit.setObjectName(u"m_passwordLineEdit")
+ self.m_passwordLineEdit.setEchoMode(QLineEdit.Password)
+
+ self.gridLayout.addWidget(self.m_passwordLineEdit, 2, 1, 1, 1)
+
+ self.buttonBox = QDialogButtonBox(PasswordDialog)
+ self.buttonBox.setObjectName(u"buttonBox")
+ self.buttonBox.setOrientation(Qt.Horizontal)
+ self.buttonBox.setStandardButtons(QDialogButtonBox.Cancel|QDialogButtonBox.Ok)
+
+ self.gridLayout.addWidget(self.buttonBox, 3, 0, 1, 2)
+
+ self.userLabel.raise_()
+ self.m_userNameLineEdit.raise_()
+ self.passwordLabel.raise_()
+ self.m_passwordLineEdit.raise_()
+ self.buttonBox.raise_()
+ self.m_iconLabel.raise_()
+ self.m_infoLabel.raise_()
+
+ self.retranslateUi(PasswordDialog)
+ self.buttonBox.accepted.connect(PasswordDialog.accept)
+ self.buttonBox.rejected.connect(PasswordDialog.reject)
+
+ QMetaObject.connectSlotsByName(PasswordDialog)
+ # setupUi
+
+ def retranslateUi(self, PasswordDialog):
+ PasswordDialog.setWindowTitle(QCoreApplication.translate("PasswordDialog", u"Authentication Required", None))
+ self.m_iconLabel.setText(QCoreApplication.translate("PasswordDialog", u"Icon", None))
+ self.m_infoLabel.setText(QCoreApplication.translate("PasswordDialog", u"Info", None))
+ self.userLabel.setText(QCoreApplication.translate("PasswordDialog", u"Username:", None))
+ self.passwordLabel.setText(QCoreApplication.translate("PasswordDialog", u"Password:", None))
+ # retranslateUi
+
diff --git a/examples/webenginewidgets/simplebrowser/webpage.py b/examples/webenginewidgets/simplebrowser/webpage.py
new file mode 100644
index 000000000..2f2800a17
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/webpage.py
@@ -0,0 +1,29 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from functools import partial
+
+from PySide6.QtWebEngineCore import QWebEnginePage, QWebEngineCertificateError
+from PySide6.QtCore import QTimer, Signal
+
+
+class WebPage(QWebEnginePage):
+
+ create_certificate_error_dialog = Signal(QWebEngineCertificateError)
+
+ def __init__(self, profile, parent):
+ super().__init__(profile, parent)
+
+ self.selectClientCertificate.connect(self.handle_select_client_certificate)
+ self.certificateError.connect(self.handle_certificate_error)
+
+ def _emit_create_certificate_error_dialog(self, error):
+ self.create_certificate_error_dialog.emit(error)
+
+ def handle_certificate_error(self, error):
+ error.defer()
+ QTimer.singleShot(0, partial(self._emit_create_certificate_error_dialog, error))
+
+ def handle_select_client_certificate(self, selection):
+ # Just select one.
+ selection.select(selection.certificates()[0])
diff --git a/examples/webenginewidgets/simplebrowser/webpopupwindow.py b/examples/webenginewidgets/simplebrowser/webpopupwindow.py
new file mode 100644
index 000000000..fac27a61a
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/webpopupwindow.py
@@ -0,0 +1,53 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtWidgets import QLineEdit, QSizePolicy, QWidget, QVBoxLayout
+from PySide6.QtGui import QAction
+from PySide6.QtCore import QUrl, Qt, Slot
+
+from webpage import WebPage
+
+
+class WebPopupWindow(QWidget):
+
+ def __init__(self, view, profile, parent=None):
+ super().__init__(parent, Qt.Window)
+ self.m_urlLineEdit = QLineEdit(self)
+ self._url_line_edit = QLineEdit()
+ self._fav_action = QAction(self)
+ self._view = view
+
+ self.setAttribute(Qt.WA_DeleteOnClose)
+ self.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum)
+
+ layout = QVBoxLayout(self)
+ layout.setContentsMargins(0, 0, 0, 0)
+ layout.addWidget(self._url_line_edit)
+ layout.addWidget(self._view)
+
+ self._view.setPage(WebPage(profile, self._view))
+ self._view.setFocus()
+
+ self._url_line_edit.setReadOnly(True)
+ self._url_line_edit.addAction(self._fav_action, QLineEdit.LeadingPosition)
+
+ self._view.titleChanged.connect(self.setWindowTitle)
+ self._view.urlChanged.connect(self._url_changed)
+ self._view.fav_icon_changed.connect(self._fav_action.setIcon)
+ p = self._view.page()
+ p.geometryChangeRequested.connect(self.handle_geometry_change_requested)
+ p.windowCloseRequested.connect(self.close)
+
+ @Slot(QUrl)
+ def _url_changed(self, url):
+ self._url_line_edit.setText(url.toDisplayString())
+
+ def view(self):
+ return self._view
+
+ def handle_geometry_change_requested(self, newGeometry):
+ window = self.windowHandle()
+ if window:
+ self.setGeometry(newGeometry.marginsRemoved(window.frameMargins()))
+ self.show()
+ self._view.setFocus()
diff --git a/examples/webenginewidgets/simplebrowser/webview.py b/examples/webenginewidgets/simplebrowser/webview.py
new file mode 100644
index 000000000..e1282c1dd
--- /dev/null
+++ b/examples/webenginewidgets/simplebrowser/webview.py
@@ -0,0 +1,294 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from functools import partial
+
+from PySide6.QtWebEngineCore import (QWebEngineFileSystemAccessRequest,
+ QWebEnginePage)
+from PySide6.QtWebEngineWidgets import QWebEngineView
+
+from PySide6.QtWidgets import QDialog, QMessageBox, QStyle
+from PySide6.QtGui import QIcon
+from PySide6.QtNetwork import QAuthenticator
+from PySide6.QtCore import QTimer, Signal, Slot
+
+from webpage import WebPage
+from webpopupwindow import WebPopupWindow
+from ui_passworddialog import Ui_PasswordDialog
+from ui_certificateerrordialog import Ui_CertificateErrorDialog
+
+
+def question_for_feature(feature):
+ if feature == QWebEnginePage.Geolocation:
+ return "Allow %1 to access your location information?"
+ if feature == QWebEnginePage.MediaAudioCapture:
+ return "Allow %1 to access your microphone?"
+ if feature == QWebEnginePage.MediaVideoCapture:
+ return "Allow %1 to access your webcam?"
+ if feature == QWebEnginePage.MediaAudioVideoCapture:
+ return "Allow %1 to access your microphone and webcam?"
+ if feature == QWebEnginePage.MouseLock:
+ return "Allow %1 to lock your mouse cursor?"
+ if feature == QWebEnginePage.DesktopVideoCapture:
+ return "Allow %1 to capture video of your desktop?"
+ if feature == QWebEnginePage.DesktopAudioVideoCapture:
+ return "Allow %1 to capture audio and video of your desktop?"
+ if feature == QWebEnginePage.Notifications:
+ return "Allow %1 to show notification on your desktop?"
+ return ""
+
+
+class WebView(QWebEngineView):
+
+ web_action_enabled_changed = Signal(QWebEnginePage.WebAction, bool)
+ fav_icon_changed = Signal(QIcon)
+ dev_tools_requested = Signal(QWebEnginePage)
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+ self._load_progress = 100
+ self.loadStarted.connect(self._load_started)
+ self.loadProgress.connect(self._slot_load_progress)
+ self.loadFinished.connect(self._load_finished)
+ self.iconChanged.connect(self._emit_faviconchanged)
+ self.renderProcessTerminated.connect(self._render_process_terminated)
+
+ self._error_icon = QIcon(":dialog-error.png")
+ self._loading_icon = QIcon.fromTheme(QIcon.ThemeIcon.ViewRefresh,
+ QIcon(":view-refresh.png"))
+ self._default_icon = QIcon(":text-html.png")
+
+ @Slot()
+ def _load_started(self):
+ self._load_progress = 0
+ self.fav_icon_changed.emit(self.fav_icon())
+
+ @Slot(int)
+ def _slot_load_progress(self, progress):
+ self._load_progress = progress
+
+ @Slot()
+ def _emit_faviconchanged(self):
+ self.fav_icon_changed.emit(self.fav_icon())
+
+ @Slot(bool)
+ def _load_finished(self, success):
+ self._load_progress = 100 if success else -1
+ self._emit_faviconchanged()
+
+ @Slot(QWebEnginePage.RenderProcessTerminationStatus, int)
+ def _render_process_terminated(self, termStatus, statusCode):
+ status = ""
+ if termStatus == QWebEnginePage.NormalTerminationStatus:
+ status = "Render process normal exit"
+ elif termStatus == QWebEnginePage.AbnormalTerminationStatus:
+ status = "Render process abnormal exit"
+ elif termStatus == QWebEnginePage.CrashedTerminationStatus:
+ status = "Render process crashed"
+ elif termStatus == QWebEnginePage.KilledTerminationStatus:
+ status = "Render process killed"
+
+ m = f"Render process exited with code: {statusCode:#x}\nDo you want to reload the page?"
+ btn = QMessageBox.question(self.window(), status, m)
+ if btn == QMessageBox.Yes:
+ QTimer.singleShot(0, self.reload)
+
+ def set_page(self, page):
+ old_page = self.page()
+ if old_page and isinstance(old_page, WebPage):
+ old_page.createCertificateErrorDialog.disconnect(self.handle_certificate_error)
+ old_page.authenticationRequired.disconnect(self.handle_authentication_required)
+ old_page.featurePermissionRequested.disconnect(self.handle_feature_permission_requested)
+ old_page.proxyAuthenticationRequired.disconnect(
+ self.handle_proxy_authentication_required)
+ old_page.registerProtocolHandlerRequested.disconnect(
+ self.handle_register_protocol_handler_requested)
+ old_page.fileSystemAccessRequested.disconnect(self.handle_file_system_access_requested)
+
+ self.create_web_action_trigger(page, QWebEnginePage.Forward)
+ self.create_web_action_trigger(page, QWebEnginePage.Back)
+ self.create_web_action_trigger(page, QWebEnginePage.Reload)
+ self.create_web_action_trigger(page, QWebEnginePage.Stop)
+ super().setPage(page)
+ page.create_certificate_error_dialog.connect(self.handle_certificate_error)
+ page.authenticationRequired.connect(self.handle_authentication_required)
+ page.featurePermissionRequested.connect(self.handle_feature_permission_requested)
+ page.proxyAuthenticationRequired.connect(self.handle_proxy_authentication_required)
+ page.registerProtocolHandlerRequested.connect(
+ self.handle_register_protocol_handler_requested)
+ page.fileSystemAccessRequested.connect(self.handle_file_system_access_requested)
+
+ def load_progress(self):
+ return self._load_progress
+
+ def _emit_webactionenabledchanged(self, action, webAction):
+ self.web_action_enabled_changed.emit(webAction, action.isEnabled())
+
+ def create_web_action_trigger(self, page, webAction):
+ action = page.action(webAction)
+ action.changed.connect(partial(self._emit_webactionenabledchanged, action, webAction))
+
+ def is_web_action_enabled(self, webAction):
+ return self.page().action(webAction).isEnabled()
+
+ def fav_icon(self):
+ fav_icon = self.icon()
+ if not fav_icon.isNull():
+ return fav_icon
+ if self._load_progress < 0:
+ return self._error_icon
+ if self._load_progress < 100:
+ return self._loading_icon
+ return self._default_icon
+
+ def createWindow(self, type):
+ main_window = self.window()
+ if not main_window:
+ return None
+
+ if type == QWebEnginePage.WebBrowserTab:
+ return main_window.tab_widget().create_tab()
+
+ if type == QWebEnginePage.WebBrowserBackgroundTab:
+ return main_window.tab_widget().create_background_tab()
+
+ if type == QWebEnginePage.WebBrowserWindow:
+ return main_window.browser().createWindow().current_tab()
+
+ if type == QWebEnginePage.WebDialog:
+ view = WebView()
+ WebPopupWindow(view, self.page().profile(), self.window())
+ view.dev_tools_requested.connect(self.dev_tools_requested)
+ return view
+
+ return None
+
+ @Slot()
+ def _emit_devtools_requested(self):
+ self.dev_tools_requested.emit(self.page())
+
+ def contextMenuEvent(self, event):
+ menu = self.createStandardContextMenu()
+ actions = menu.actions()
+ inspect_action = self.page().action(QWebEnginePage.InspectElement)
+ if inspect_action in actions:
+ inspect_action.setText("Inspect element")
+ else:
+ vs = self.page().action(QWebEnginePage.ViewSource)
+ if vs not in actions:
+ menu.addSeparator()
+
+ action = menu.addAction("Open inspector in new window")
+ action.triggered.connect(self._emit_devtools_requested)
+
+ menu.popup(event.globalPos())
+
+ def handle_certificate_error(self, error):
+ w = self.window()
+ dialog = QDialog(w)
+ dialog.setModal(True)
+
+ certificate_dialog = Ui_CertificateErrorDialog()
+ certificate_dialog.setupUi(dialog)
+ certificate_dialog.m_iconLabel.setText("")
+ icon = QIcon(w.style().standardIcon(QStyle.SP_MessageBoxWarning, 0, w))
+ certificate_dialog.m_iconLabel.setPixmap(icon.pixmap(32, 32))
+ certificate_dialog.m_errorLabel.setText(error.description())
+ dialog.setWindowTitle("Certificate Error")
+
+ if dialog.exec() == QDialog.Accepted:
+ error.acceptCertificate()
+ else:
+ error.rejectCertificate()
+
+ def handle_authentication_required(self, requestUrl, auth):
+ w = self.window()
+ dialog = QDialog(w)
+ dialog.setModal(True)
+
+ password_dialog = Ui_PasswordDialog()
+ password_dialog.setupUi(dialog)
+
+ password_dialog.m_iconLabel.setText("")
+ icon = QIcon(w.style().standardIcon(QStyle.SP_MessageBoxQuestion, 0, w))
+ password_dialog.m_iconLabel.setPixmap(icon.pixmap(32, 32))
+
+ url_str = requestUrl.toString().toHtmlEscaped()
+ realm = auth.realm()
+ m = f'Enter username and password for "{realm}" at {url_str}'
+ password_dialog.m_infoLabel.setText(m)
+ password_dialog.m_infoLabel.setWordWrap(True)
+
+ if dialog.exec() == QDialog.Accepted:
+ auth.setUser(password_dialog.m_userNameLineEdit.text())
+ auth.setPassword(password_dialog.m_passwordLineEdit.text())
+ else:
+ # Set authenticator null if dialog is cancelled
+ auth = QAuthenticator()
+
+ def handle_feature_permission_requested(self, securityOrigin, feature):
+ title = "Permission Request"
+ host = securityOrigin.host()
+ question = question_for_feature(feature).replace("%1", host)
+ w = self.window()
+ page = self.page()
+ if question and QMessageBox.question(w, title, question) == QMessageBox.Yes:
+ page.setFeaturePermission(securityOrigin, feature,
+ QWebEnginePage.PermissionGrantedByUser)
+ else:
+ page.setFeaturePermission(securityOrigin, feature,
+ QWebEnginePage.PermissionDeniedByUser)
+
+ def handle_proxy_authentication_required(self, url, auth, proxyHost):
+ w = self.window()
+ dialog = QDialog(w)
+ dialog.setModal(True)
+
+ password_dialog = Ui_PasswordDialog()
+ password_dialog.setupUi(dialog)
+
+ password_dialog.m_iconLabel.setText("")
+
+ icon = QIcon(w.style().standardIcon(QStyle.SP_MessageBoxQuestion, 0, w))
+ password_dialog.m_iconLabel.setPixmap(icon.pixmap(32, 32))
+
+ proxy = proxyHost.toHtmlEscaped()
+ password_dialog.m_infoLabel.setText(f'Connect to proxy "{proxy}" using:')
+ password_dialog.m_infoLabel.setWordWrap(True)
+
+ if dialog.exec() == QDialog.Accepted:
+ auth.setUser(password_dialog.m_userNameLineEdit.text())
+ auth.setPassword(password_dialog.m_passwordLineEdit.text())
+ else:
+ # Set authenticator null if dialog is cancelled
+ auth = QAuthenticator()
+
+ def handle_register_protocol_handler_requested(self, request):
+ host = request.origin().host()
+ m = f"Allow {host} to open all {request.scheme()} links?"
+ answer = QMessageBox.question(self.window(), "Permission Request", m)
+ if answer == QMessageBox.Yes:
+ request.accept()
+ else:
+ request.reject()
+
+ def handle_file_system_access_requested(self, request):
+ access_type = ""
+ type = request.accessFlags()
+ if type == QWebEngineFileSystemAccessRequest.Read:
+ access_type = "read"
+ elif type == QWebEngineFileSystemAccessRequest.Write:
+ access_type = "write"
+ elif type == (QWebEngineFileSystemAccessRequest.Read
+ | QWebEngineFileSystemAccessRequest.Write):
+ access_type = "read and write"
+ host = request.origin().host()
+ path = request.filePath().toString()
+ t = "File system access request"
+ m = f"Give {host} {access_type} access to {path}?"
+ answer = QMessageBox.question(self.window(), t, m)
+ if answer == QMessageBox.Yes:
+ request.accept()
+ else:
+ request.reject()
diff --git a/examples/webenginewidgets/tabbedbrowser/bookmarkwidget.py b/examples/webenginewidgets/tabbedbrowser/bookmarkwidget.py
deleted file mode 100644
index 7a76e8a7c..000000000
--- a/examples/webenginewidgets/tabbedbrowser/bookmarkwidget.py
+++ /dev/null
@@ -1,276 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-import json
-import os
-import warnings
-
-from PySide6 import QtCore
-from PySide6.QtCore import QDir, QFileInfo, QStandardPaths, Qt, QUrl
-from PySide6.QtGui import QIcon, QStandardItem, QStandardItemModel
-from PySide6.QtWidgets import QMenu, QMessageBox, QTreeView
-
-_url_role = Qt.UserRole + 1
-
-# Default bookmarks as an array of arrays which is the form
-# used to read from/write to a .json bookmarks file
-_default_bookmarks = [
- ['Tool Bar'],
- ['http://qt.io', 'Qt', ':/qt-project.org/qmessagebox/images/qtlogo-64.png'],
- ['https://download.qt.io/snapshots/ci/pyside/', 'Downloads'],
- ['https://doc.qt.io/qtforpython/', 'Documentation'],
- ['https://bugreports.qt.io/projects/PYSIDE/', 'Bug Reports'],
- ['https://www.python.org/', 'Python', None],
- ['https://wiki.qt.io/PySide6', 'Qt for Python', None],
- ['Other Bookmarks']
-]
-
-
-def _config_dir():
- location = QStandardPaths.writableLocation(QStandardPaths.ConfigLocation)
- return f'{location}/QtForPythonBrowser'
-
-
-_bookmark_file = 'bookmarks.json'
-
-
-def _create_folder_item(title):
- result = QStandardItem(title)
- result.setFlags(Qt.ItemIsEnabled | Qt.ItemIsSelectable)
- return result
-
-
-def _create_item(url, title, icon):
- result = QStandardItem(title)
- result.setFlags(Qt.ItemIsEnabled | Qt.ItemIsSelectable)
- result.setData(url, _url_role)
- if icon is not None:
- result.setIcon(icon)
- return result
-
-
-# Create the model from an array of arrays
-def _create_model(parent, serialized_bookmarks):
- result = QStandardItemModel(0, 1, parent)
- last_folder_item = None
- for entry in serialized_bookmarks:
- if len(entry) == 1:
- last_folder_item = _create_folder_item(entry[0])
- result.appendRow(last_folder_item)
- else:
- url = QUrl.fromUserInput(entry[0])
- title = entry[1]
- icon = QIcon(entry[2]) if len(entry) > 2 and entry[2] else None
- last_folder_item.appendRow(_create_item(url, title, icon))
- return result
-
-
-# Serialize model into an array of arrays, writing out the icons
-# into .png files under directory in the process
-def _serialize_model(model, directory):
- result = []
- folder_count = model.rowCount()
- for f in range(0, folder_count):
- folder_item = model.item(f)
- result.append([folder_item.text()])
- item_count = folder_item.rowCount()
- for i in range(0, item_count):
- item = folder_item.child(i)
- entry = [item.data(_url_role).toString(), item.text()]
- icon = item.icon()
- if not icon.isNull():
- icon_sizes = icon.availableSizes()
- largest_size = icon_sizes[len(icon_sizes) - 1]
- w = largest_size.width()
- icon_file_name = f'{directory}/icon{f:02}_{i:02}_{w}.png'
- icon.pixmap(largest_size).save(icon_file_name, 'PNG')
- entry.append(icon_file_name)
- result.append(entry)
- return result
-
-
-# Bookmarks as a tree view to be used in a dock widget with
-# functionality to persist and populate tool bars and menus.
-class BookmarkWidget(QTreeView):
- """Provides a tree view to manage the bookmarks."""
-
- open_bookmark = QtCore.Signal(QUrl)
- open_bookmark_in_new_tab = QtCore.Signal(QUrl)
- changed = QtCore.Signal()
-
- def __init__(self):
- super().__init__()
- self.setRootIsDecorated(False)
- self.setUniformRowHeights(True)
- self.setHeaderHidden(True)
- self._model = _create_model(self, self._read_bookmarks())
- self.setModel(self._model)
- self.expandAll()
- self.activated.connect(self._activated)
- self._model.rowsInserted.connect(self._changed)
- self._model.rowsRemoved.connect(self._changed)
- self._model.dataChanged.connect(self._changed)
- self._modified = False
-
- def _changed(self):
- self._modified = True
- self.changed.emit()
-
- def _activated(self, index):
- item = self._model.itemFromIndex(index)
- self.open_bookmark.emit(item.data(_url_role))
-
- def _action_activated(self, index):
- action = self.sender()
- self.open_bookmark.emit(action.data())
-
- def _tool_bar_item(self):
- return self._model.item(0, 0)
-
- def _other_item(self):
- return self._model.item(1, 0)
-
- def add_bookmark(self, url, title, icon):
- self._other_item().appendRow(_create_item(url, title, icon))
-
- def add_tool_bar_bookmark(self, url, title, icon):
- self._tool_bar_item().appendRow(_create_item(url, title, icon))
-
- # Synchronize the bookmarks under parent_item to a target_object
- # like QMenu/QToolBar, which has a list of actions. Update
- # the existing actions, append new ones if needed or hide
- # superfluous ones
- def _populate_actions(self, parent_item, target_object, first_action):
- existing_actions = target_object.actions()
- existing_action_count = len(existing_actions)
- a = first_action
- row_count = parent_item.rowCount()
- for r in range(0, row_count):
- item = parent_item.child(r)
- title = item.text()
- icon = item.icon()
- url = item.data(_url_role)
- if a < existing_action_count:
- action = existing_actions[a]
- if (title != action.toolTip()):
- action.setText(BookmarkWidget.short_title(title))
- action.setIcon(icon)
- action.setToolTip(title)
- action.setData(url)
- action.setVisible(True)
- else:
- short_title = BookmarkWidget.short_title(title)
- action = target_object.addAction(icon, short_title)
- action.setToolTip(title)
- action.setData(url)
- action.triggered.connect(self._action_activated)
- a = a + 1
- while a < existing_action_count:
- existing_actions[a].setVisible(False)
- a = a + 1
-
- def populate_tool_bar(self, tool_bar):
- self._populate_actions(self._tool_bar_item(), tool_bar, 0)
-
- def populate_other(self, menu, first_action):
- self._populate_actions(self._other_item(), menu, first_action)
-
- def _current_item(self):
- index = self.currentIndex()
- if index.isValid():
- item = self._model.itemFromIndex(index)
- if item.parent(): # exclude top level items
- return item
- return None
-
- def context_menu_event(self, event):
- context_menu = QMenu()
- open_in_new_tab_action = context_menu.addAction("Open in New Tab")
- remove_action = context_menu.addAction("Remove...")
- current_item = self._current_item()
- open_in_new_tab_action.setEnabled(current_item is not None)
- remove_action.setEnabled(current_item is not None)
- chosen_action = context_menu.exec(event.globalPos())
- if chosen_action == open_in_new_tab_action:
- self.open_bookmarkInNewTab.emit(current_item.data(_url_role))
- elif chosen_action == remove_action:
- self._remove_item(current_item)
-
- def _remove_item(self, item):
- message = f"Would you like to remove \"{item.text()}\"?"
- button = QMessageBox.question(self, "Remove", message,
- QMessageBox.Yes | QMessageBox.No)
- if button == QMessageBox.Yes:
- item.parent().removeRow(item.row())
-
- def write_bookmarks(self):
- if not self._modified:
- return
- dir_path = _config_dir()
- native_dir_path = QDir.toNativeSeparators(dir_path)
- directory = QFileInfo(dir_path)
- if not directory.isDir():
- print(f'Creating {native_dir_path}...')
- if not QDir(directory.absolutePath()).mkpath(directory.fileName()):
- warnings.warn(f'Cannot create {native_dir_path}.',
- RuntimeWarning)
- return
- serialized_model = _serialize_model(self._model, dir_path)
- bookmark_file_name = os.path.join(native_dir_path, _bookmark_file)
- print(f'Writing {bookmark_file_name}...')
- with open(bookmark_file_name, 'w') as bookmark_file:
- json.dump(serialized_model, bookmark_file, indent=4)
-
- def _read_bookmarks(self):
- bookmark_file_name = os.path.join(QDir.toNativeSeparators(_config_dir()),
- _bookmark_file)
- if os.path.exists(bookmark_file_name):
- print(f'Reading {bookmark_file_name}...')
- return json.load(open(bookmark_file_name))
- return _default_bookmarks
-
- # Return a short title for a bookmark action,
- # "Qt | Cross Platform.." -> "Qt"
- @staticmethod
- def short_title(t):
- i = t.find(' | ')
- if i == -1:
- i = t.find(' - ')
- return t[0:i] if i != -1 else t
diff --git a/examples/webenginewidgets/tabbedbrowser/browsertabwidget.py b/examples/webenginewidgets/tabbedbrowser/browsertabwidget.py
deleted file mode 100644
index 5e87da074..000000000
--- a/examples/webenginewidgets/tabbedbrowser/browsertabwidget.py
+++ /dev/null
@@ -1,244 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-from functools import partial
-
-from bookmarkwidget import BookmarkWidget
-from webengineview import WebEngineView
-from historywindow import HistoryWindow
-from PySide6 import QtCore
-from PySide6.QtCore import Qt, QUrl
-from PySide6.QtWidgets import QMenu, QTabBar, QTabWidget
-from PySide6.QtWebEngineCore import QWebEngineDownloadRequest, QWebEnginePage
-
-
-class BrowserTabWidget(QTabWidget):
- """Enables having several tabs with QWebEngineView."""
-
- url_changed = QtCore.Signal(QUrl)
- enabled_changed = QtCore.Signal(QWebEnginePage.WebAction, bool)
- download_requested = QtCore.Signal(QWebEngineDownloadRequest)
-
- def __init__(self, window_factory_function):
- super().__init__()
- self.setTabsClosable(True)
- self._window_factory_function = window_factory_function
- self._webengineviews = []
- self._history_windows = {} # map WebengineView to HistoryWindow
- self.currentChanged.connect(self._current_changed)
- self.tabCloseRequested.connect(self.handle_tab_close_request)
- self._actions_enabled = {}
- for web_action in WebEngineView.web_actions():
- self._actions_enabled[web_action] = False
-
- tab_bar = self.tabBar()
- tab_bar.setSelectionBehaviorOnRemove(QTabBar.SelectPreviousTab)
- tab_bar.setContextMenuPolicy(Qt.CustomContextMenu)
- tab_bar.customContextMenuRequested.connect(self._handle_tab_context_menu)
-
- def add_browser_tab(self):
- factory_func = partial(BrowserTabWidget.add_browser_tab, self)
- web_engine_view = WebEngineView(factory_func,
- self._window_factory_function)
- index = self.count()
- self._webengineviews.append(web_engine_view)
- title = f'Tab {index + 1}'
- self.addTab(web_engine_view, title)
- page = web_engine_view.page()
- page.titleChanged.connect(self._title_changed)
- page.iconChanged.connect(self._icon_changed)
- page.profile().downloadRequested.connect(self._download_requested)
- web_engine_view.urlChanged.connect(self._url_changed)
- web_engine_view.enabled_changed.connect(self._enabled_changed)
- self.setCurrentIndex(index)
- return web_engine_view
-
- def load(self, url):
- index = self.currentIndex()
- if index >= 0 and url.isValid():
- self._webengineviews[index].setUrl(url)
-
- def find(self, needle, flags):
- index = self.currentIndex()
- if index >= 0:
- self._webengineviews[index].page().findText(needle, flags)
-
- def url(self):
- index = self.currentIndex()
- return self._webengineviews[index].url() if index >= 0 else QUrl()
-
- def _url_changed(self, url):
- index = self.currentIndex()
- if index >= 0 and self._webengineviews[index] == self.sender():
- self.url_changed.emit(url)
-
- def _title_changed(self, title):
- index = self._index_of_page(self.sender())
- if (index >= 0):
- self.setTabText(index, BookmarkWidget.short_title(title))
-
- def _icon_changed(self, icon):
- index = self._index_of_page(self.sender())
- if (index >= 0):
- self.setTabIcon(index, icon)
-
- def _enabled_changed(self, web_action, enabled):
- index = self.currentIndex()
- if index >= 0 and self._webengineviews[index] == self.sender():
- self._check_emit_enabled_changed(web_action, enabled)
-
- def _check_emit_enabled_changed(self, web_action, enabled):
- if enabled != self._actions_enabled[web_action]:
- self._actions_enabled[web_action] = enabled
- self.enabled_changed.emit(web_action, enabled)
-
- def _current_changed(self, index):
- self._update_actions(index)
- self.url_changed.emit(self.url())
-
- def _update_actions(self, index):
- if index >= 0 and index < len(self._webengineviews):
- view = self._webengineviews[index]
- for web_action in WebEngineView.web_actions():
- enabled = view.is_web_action_enabled(web_action)
- self._check_emit_enabled_changed(web_action, enabled)
-
- def back(self):
- self._trigger_action(QWebEnginePage.Back)
-
- def forward(self):
- self._trigger_action(QWebEnginePage.Forward)
-
- def reload(self):
- self._trigger_action(QWebEnginePage.Reload)
-
- def undo(self):
- self._trigger_action(QWebEnginePage.Undo)
-
- def redo(self):
- self._trigger_action(QWebEnginePage.Redo)
-
- def cut(self):
- self._trigger_action(QWebEnginePage.Cut)
-
- def copy(self):
- self._trigger_action(QWebEnginePage.Copy)
-
- def paste(self):
- self._trigger_action(QWebEnginePage.Paste)
-
- def select_all(self):
- self._trigger_action(QWebEnginePage.SelectAll)
-
- def show_history(self):
- index = self.currentIndex()
- if index >= 0:
- webengineview = self._webengineviews[index]
- history_window = self._history_windows.get(webengineview)
- if not history_window:
- history = webengineview.page().history()
- history_window = HistoryWindow(history, self)
- history_window.open_url.connect(self.load)
- history_window.setWindowFlags(history_window.windowFlags()
- | Qt.Window)
- history_window.setWindowTitle('History')
- self._history_windows[webengineview] = history_window
- else:
- history_window.refresh()
- history_window.show()
- history_window.raise_()
-
- def zoom_factor(self):
- return self._webengineviews[0].zoomFactor() if self._webengineviews else 1.0
-
- def set_zoom_factor(self, z):
- for w in self._webengineviews:
- w.setZoomFactor(z)
-
- def _handle_tab_context_menu(self, point):
- index = self.tabBar().tabAt(point)
- if index < 0:
- return
- tab_count = len(self._webengineviews)
- context_menu = QMenu()
- duplicate_tab_action = context_menu.addAction("Duplicate Tab")
- close_other_tabs_action = context_menu.addAction("Close Other Tabs")
- close_other_tabs_action.setEnabled(tab_count > 1)
- close_tabs_to_the_right_action = context_menu.addAction("Close Tabs to the Right")
- close_tabs_to_the_right_action.setEnabled(index < tab_count - 1)
- close_tab_action = context_menu.addAction("&Close Tab")
- chosen_action = context_menu.exec(self.tabBar().mapToGlobal(point))
- if chosen_action == duplicate_tab_action:
- current_url = self.url()
- self.add_browser_tab().load(current_url)
- elif chosen_action == close_other_tabs_action:
- for t in range(tab_count - 1, -1, -1):
- if t != index:
- self.handle_tab_close_request(t)
- elif chosen_action == close_tabs_to_the_right_action:
- for t in range(tab_count - 1, index, -1):
- self.handle_tab_close_request(t)
- elif chosen_action == close_tab_action:
- self.handle_tab_close_request(index)
-
- def handle_tab_close_request(self, index):
- if (index >= 0 and self.count() > 1):
- webengineview = self._webengineviews[index]
- if self._history_windows.get(webengineview):
- del self._history_windows[webengineview]
- self._webengineviews.remove(webengineview)
- self.removeTab(index)
-
- def close_current_tab(self):
- self.handle_tab_close_request(self.currentIndex())
-
- def _trigger_action(self, action):
- index = self.currentIndex()
- if index >= 0:
- self._webengineviews[index].page().triggerAction(action)
-
- def _index_of_page(self, web_page):
- for p in range(0, len(self._webengineviews)):
- if (self._webengineviews[p].page() == web_page):
- return p
- return -1
-
- def _download_requested(self, item):
- self.download_requested.emit(item)
diff --git a/examples/webenginewidgets/tabbedbrowser/doc/tabbedbrowser.png b/examples/webenginewidgets/tabbedbrowser/doc/tabbedbrowser.png
deleted file mode 100644
index 27c3daa09..000000000
--- a/examples/webenginewidgets/tabbedbrowser/doc/tabbedbrowser.png
+++ /dev/null
Binary files differ
diff --git a/examples/webenginewidgets/tabbedbrowser/doc/tabbedbrowser.rst b/examples/webenginewidgets/tabbedbrowser/doc/tabbedbrowser.rst
deleted file mode 100644
index d8f5deb8d..000000000
--- a/examples/webenginewidgets/tabbedbrowser/doc/tabbedbrowser.rst
+++ /dev/null
@@ -1,58 +0,0 @@
-**********************
-Web Browser Example
-**********************
-
-The example demonstrates the power and simplicity offered by |project| to developers.
-It uses several |pymodname| submodules to offer a fluid and modern-looking UI that
-is apt for a web browser. The application offers the following features:
-
- * Tab-based browsing experience using QTabWidget.
- * Download manager using a QProgressBar and QWebEngineDownloadItem.
- * Bookmark manager using QTreeView.
-
-.. image:: tabbedbrowser.png
-
-The application's code is organized in several parts for ease of maintenance. For example,
-:code:`DownloadWidget` provides a widget to track progress of a download item. In the following
-sections, these different parts are discussed briefly to help you understand the Python code behind
-them a little better.
-
-BookmarkWidget or :code:`bookmarkwidget.py`
-===========================================
-
-This widget docks to the left of the main window by default. It inherits QTreeView and
-loads a default set of bookmarks using a QStandardItemModel. The model is populated at startup
-from a JSON file, which is updated when you add or remove bookmarks from the tree view.
-
-.. automodule:: bookmarkwidget
- :members:
-
-DownloadWidget or :code:`downloadwidget.py`
-=============================================
-
-The widget tracks progress of the download item. It inherits QProgressBar to display
-progress of the QWebEngineDownloadItem instance, and offers a context-menu with actions such as Launch,
-Show in folder, Cancel, and Remove.
-
-.. automodule:: downloadwidget
- :members:
-
-BrowserTabWidget or :code:`browsertabwidget.py`
-===============================================
-
-The widget includes a QWebEngineView to enable viewing web content. It docks to the right
-of BookmarkWidget in the main window.
-
-.. automodule:: browsertabwidget
- :members:
-
-MainWindow or :code:`main.py`
-=============================
-
-This is the parent window that collates all the other widgets together to offer the complete package.
-
-.. automodule:: main
- :members:
-
-
-Try running the example to explore it further.
diff --git a/examples/webenginewidgets/tabbedbrowser/downloadwidget.py b/examples/webenginewidgets/tabbedbrowser/downloadwidget.py
deleted file mode 100644
index aa1479eba..000000000
--- a/examples/webenginewidgets/tabbedbrowser/downloadwidget.py
+++ /dev/null
@@ -1,148 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-import sys
-from PySide6 import QtCore
-from PySide6.QtCore import QDir, QFileInfo, QStandardPaths, Qt, QUrl
-from PySide6.QtGui import QDesktopServices
-from PySide6.QtWidgets import QMenu, QProgressBar, QStyleFactory
-from PySide6.QtWebEngineCore import QWebEngineDownloadRequest
-
-
-# A QProgressBar with context menu for displaying downloads in a QStatusBar.
-class DownloadWidget(QProgressBar):
- """Lets you track progress of a QWebEngineDownloadRequest."""
- finished = QtCore.Signal()
- remove_requested = QtCore.Signal()
-
- def __init__(self, download_item):
- super().__init__()
- self._download_item = download_item
- download_item.finished.connect(self._finished)
- download_item.downloadProgress.connect(self._download_progress)
- download_item.stateChanged.connect(self._update_tool_tip())
- path = download_item.path()
- self.setMaximumWidth(300)
- # Shorten 'PySide6-5.11.0a1-5.11.0-cp36-cp36m-linux_x86_64.whl'...
- description = QFileInfo(path).fileName()
- description_length = len(description)
- if description_length > 30:
- description_ini = description[0:10]
- description_end = description[description_length - 10:]
- description = f'{description_ini}...{description_end}'
- self.setFormat(f'{description} %p%')
- self.setOrientation(Qt.Horizontal)
- self.setMinimum(0)
- self.setValue(0)
- self.setMaximum(100)
- self._update_tool_tip()
- # Force progress bar text to be shown on macoS by using 'fusion' style
- if sys.platform == 'darwin':
- self.setStyle(QStyleFactory.create('fusion'))
-
- @staticmethod
- def open_file(file):
- QDesktopServices.openUrl(QUrl.fromLocalFile(file))
-
- @staticmethod
- def open_download_directory():
- path = QStandardPaths.writableLocation(QStandardPaths.DownloadLocation)
- DownloadWidget.open_file(path)
-
- def state(self):
- return self._download_item.state()
-
- def _update_tool_tip(self):
- path = self._download_item.path()
- url_str = self._download_item.url().toString()
- native_sep = QDir.toNativeSeparators(path)
- tool_tip = f"{url_str}\n{native_sep}"
- total_bytes = self._download_item.totalBytes()
- if total_bytes > 0:
- tool_tip += f"\n{total_bytes / 1024}K"
- state = self.state()
- if state == QWebEngineDownloadRequest.DownloadRequested:
- tool_tip += "\n(requested)"
- elif state == QWebEngineDownloadRequest.DownloadInProgress:
- tool_tip += "\n(downloading)"
- elif state == QWebEngineDownloadRequest.DownloadCompleted:
- tool_tip += "\n(completed)"
- elif state == QWebEngineDownloadRequest.DownloadCancelled:
- tool_tip += "\n(cancelled)"
- else:
- tool_tip += "\n(interrupted)"
- self.setToolTip(tool_tip)
-
- def _download_progress(self, bytes_received, bytes_total):
- self.setValue(int(100 * bytes_received / bytes_total))
-
- def _finished(self):
- self._update_tool_tip()
- self.finished.emit()
-
- def _launch(self):
- DownloadWidget.open_file(self._download_item.path())
-
- def mouseDoubleClickEvent(self, event):
- if self.state() == QWebEngineDownloadRequest.DownloadCompleted:
- self._launch()
-
- def contextMenuEvent(self, event):
- state = self.state()
- context_menu = QMenu()
- launch_action = context_menu.addAction("Launch")
- launch_action.setEnabled(state == QWebEngineDownloadRequest.DownloadCompleted)
- show_in_folder_action = context_menu.addAction("Show in Folder")
- show_in_folder_action.setEnabled(state == QWebEngineDownloadRequest.DownloadCompleted)
- cancel_action = context_menu.addAction("Cancel")
- cancel_action.setEnabled(state == QWebEngineDownloadRequest.DownloadInProgress)
- remove_action = context_menu.addAction("Remove")
- remove_action.setEnabled(state != QWebEngineDownloadRequest.DownloadInProgress)
-
- chosen_action = context_menu.exec(event.globalPos())
- if chosen_action == launch_action:
- self._launch()
- elif chosen_action == show_in_folder_action:
- path = QFileInfo(self._download_item.path()).absolutePath()
- DownloadWidget.open_file(path)
- elif chosen_action == cancel_action:
- self._download_item.cancel()
- elif chosen_action == remove_action:
- self.remove_requested.emit()
diff --git a/examples/webenginewidgets/tabbedbrowser/findtoolbar.py b/examples/webenginewidgets/tabbedbrowser/findtoolbar.py
deleted file mode 100644
index c38f01afa..000000000
--- a/examples/webenginewidgets/tabbedbrowser/findtoolbar.py
+++ /dev/null
@@ -1,99 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-from PySide6 import QtCore
-from PySide6.QtCore import Qt
-from PySide6.QtGui import QIcon, QKeySequence
-from PySide6.QtWidgets import QCheckBox, QLineEdit, QToolBar, QToolButton
-from PySide6.QtWebEngineCore import QWebEnginePage
-
-
-# A Find tool bar (bottom area)
-class FindToolBar(QToolBar):
-
- find = QtCore.Signal(str, QWebEnginePage.FindFlags)
-
- def __init__(self):
- super().__init__()
- self._line_edit = QLineEdit()
- self._line_edit.setClearButtonEnabled(True)
- self._line_edit.setPlaceholderText("Find...")
- self._line_edit.setMaximumWidth(300)
- self._line_edit.returnPressed.connect(self._find_next)
- self.addWidget(self._line_edit)
-
- self._previous_button = QToolButton()
- style_icons = ':/qt-project.org/styles/commonstyle/images/'
- self._previous_button.setIcon(QIcon(style_icons + 'up-32.png'))
- self._previous_button.clicked.connect(self._find_previous)
- self.addWidget(self._previous_button)
-
- self._next_button = QToolButton()
- self._next_button.setIcon(QIcon(style_icons + 'down-32.png'))
- self._next_button.clicked.connect(self._find_next)
- self.addWidget(self._next_button)
-
- self._case_sensitive_checkbox = QCheckBox('Case Sensitive')
- self.addWidget(self._case_sensitive_checkbox)
-
- self._hideButton = QToolButton()
- self._hideButton.setShortcut(QKeySequence(Qt.Key_Escape))
- self._hideButton.setIcon(QIcon(style_icons + 'closedock-16.png'))
- self._hideButton.clicked.connect(self.hide)
- self.addWidget(self._hideButton)
-
- def focus_find(self):
- self._line_edit.setFocus()
-
- def _emit_find(self, backward):
- needle = self._line_edit.text().strip()
- if needle:
- flags = QWebEnginePage.FindFlags()
- if self._case_sensitive_checkbox.isChecked():
- flags |= QWebEnginePage.FindCaseSensitively
- if backward:
- flags |= QWebEnginePage.FindBackward
- self.find.emit(needle, flags)
-
- def _find_next(self):
- self._emit_find(False)
-
- def _find_previous(self):
- self._emit_find(True)
diff --git a/examples/webenginewidgets/tabbedbrowser/historywindow.py b/examples/webenginewidgets/tabbedbrowser/historywindow.py
deleted file mode 100644
index bc2640e69..000000000
--- a/examples/webenginewidgets/tabbedbrowser/historywindow.py
+++ /dev/null
@@ -1,103 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-from PySide6.QtWidgets import QApplication, QTreeView
-
-from PySide6.QtCore import Signal, QAbstractTableModel, QModelIndex, Qt, QUrl
-
-
-class HistoryModel(QAbstractTableModel):
-
- def __init__(self, history, parent=None):
- super().__init__(parent)
- self._history = history
-
- def headerData(self, section, orientation, role=Qt.DisplayRole):
- if orientation == Qt.Horizontal and role == Qt.DisplayRole:
- return 'Title' if section == 0 else 'Url'
- return None
-
- def rowCount(self, index=QModelIndex()):
- return self._history.count()
-
- def columnCount(self, index=QModelIndex()):
- return 2
-
- def item_at(self, model_index):
- return self._history.itemAt(model_index.row())
-
- def data(self, index, role=Qt.DisplayRole):
- item = self.item_at(index)
- column = index.column()
- if role == Qt.DisplayRole:
- return item.title() if column == 0 else item.url().toString()
- return None
-
- def refresh(self):
- self.beginResetModel()
- self.endResetModel()
-
-
-class HistoryWindow(QTreeView):
-
- open_url = Signal(QUrl)
-
- def __init__(self, history, parent):
- super().__init__(parent)
-
- self._model = HistoryModel(history, self)
- self.setModel(self._model)
- self.activated.connect(self._activated)
-
- screen = QApplication.desktop().screenGeometry(parent)
- self.resize(screen.width() / 3, screen.height() / 3)
- self._adjustSize()
-
- def refresh(self):
- self._model.refresh()
- self._adjustSize()
-
- def _adjustSize(self):
- if (self._model.rowCount() > 0):
- self.resizeColumnToContents(0)
-
- def _activated(self, index):
- item = self._model.item_at(index)
- self.open_url.emit(item.url())
diff --git a/examples/webenginewidgets/tabbedbrowser/main.py b/examples/webenginewidgets/tabbedbrowser/main.py
deleted file mode 100644
index 400a87540..000000000
--- a/examples/webenginewidgets/tabbedbrowser/main.py
+++ /dev/null
@@ -1,395 +0,0 @@
-
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-"""PySide6 WebEngineWidgets Example"""
-
-import sys
-from bookmarkwidget import BookmarkWidget
-from browsertabwidget import BrowserTabWidget
-from downloadwidget import DownloadWidget
-from findtoolbar import FindToolBar
-from webengineview import WebEngineView
-from PySide6 import QtCore
-from PySide6.QtCore import Qt, QUrl
-from PySide6.QtGui import QAction, QKeySequence, QIcon
-from PySide6.QtWidgets import (QApplication, QDockWidget, QLabel,
- QLineEdit, QMainWindow, QToolBar)
-from PySide6.QtWebEngineCore import QWebEngineDownloadRequest, QWebEnginePage
-
-main_windows = []
-
-
-def create_main_window():
- """Creates a MainWindow using 75% of the available screen resolution."""
- main_win = MainWindow()
- main_windows.append(main_win)
- available_geometry = main_win.screen().availableGeometry()
- main_win.resize(available_geometry.width() * 2 / 3,
- available_geometry.height() * 2 / 3)
- main_win.show()
- return main_win
-
-
-def create_main_window_with_browser():
- """Creates a MainWindow with a BrowserTabWidget."""
- main_win = create_main_window()
- return main_win.add_browser_tab()
-
-
-class MainWindow(QMainWindow):
- """Provides the parent window that includes the BookmarkWidget,
- BrowserTabWidget, and a DownloadWidget, to offer the complete
- web browsing experience."""
-
- def __init__(self):
- super().__init__()
-
- self.setWindowTitle('PySide6 tabbed browser Example')
-
- self._tab_widget = BrowserTabWidget(create_main_window_with_browser)
- self._tab_widget.enabled_changed.connect(self._enabled_changed)
- self._tab_widget.download_requested.connect(self._download_requested)
- self.setCentralWidget(self._tab_widget)
- self.connect(self._tab_widget, QtCore.SIGNAL("url_changed(QUrl)"),
- self.url_changed)
-
- self._bookmark_dock = QDockWidget()
- self._bookmark_dock.setWindowTitle('Bookmarks')
- self._bookmark_widget = BookmarkWidget()
- self._bookmark_widget.open_bookmark.connect(self.load_url)
- self._bookmark_widget.open_bookmark_in_new_tab.connect(self.load_url_in_new_tab)
- self._bookmark_dock.setWidget(self._bookmark_widget)
- self.addDockWidget(Qt.LeftDockWidgetArea, self._bookmark_dock)
-
- self._find_tool_bar = None
-
- self._actions = {}
- self._create_menu()
-
- self._tool_bar = QToolBar()
- self.addToolBar(self._tool_bar)
- for action in self._actions.values():
- if not action.icon().isNull():
- self._tool_bar.addAction(action)
-
- self._addres_line_edit = QLineEdit()
- self._addres_line_edit.setClearButtonEnabled(True)
- self._addres_line_edit.returnPressed.connect(self.load)
- self._tool_bar.addWidget(self._addres_line_edit)
- self._zoom_label = QLabel()
- self.statusBar().addPermanentWidget(self._zoom_label)
- self._update_zoom_label()
-
- self._bookmarksToolBar = QToolBar()
- self.addToolBar(Qt.TopToolBarArea, self._bookmarksToolBar)
- self.insertToolBarBreak(self._bookmarksToolBar)
- self._bookmark_widget.changed.connect(self._update_bookmarks)
- self._update_bookmarks()
-
- def _update_bookmarks(self):
- self._bookmark_widget.populate_tool_bar(self._bookmarksToolBar)
- self._bookmark_widget.populate_other(self._bookmark_menu, 3)
-
- def _create_menu(self):
- file_menu = self.menuBar().addMenu("&File")
- exit_action = QAction(QIcon.fromTheme("application-exit"), "E&xit",
- self, shortcut="Ctrl+Q", triggered=qApp.quit)
- file_menu.addAction(exit_action)
-
- navigation_menu = self.menuBar().addMenu("&Navigation")
-
- style_icons = ':/qt-project.org/styles/commonstyle/images/'
- back_action = QAction(QIcon.fromTheme("go-previous",
- QIcon(style_icons + 'left-32.png')),
- "Back", self,
- shortcut=QKeySequence(QKeySequence.Back),
- triggered=self._tab_widget.back)
- self._actions[QWebEnginePage.Back] = back_action
- back_action.setEnabled(False)
- navigation_menu.addAction(back_action)
- forward_action = QAction(QIcon.fromTheme("go-next",
- QIcon(style_icons + 'right-32.png')),
- "Forward", self,
- shortcut=QKeySequence(QKeySequence.Forward),
- triggered=self._tab_widget.forward)
- forward_action.setEnabled(False)
- self._actions[QWebEnginePage.Forward] = forward_action
-
- navigation_menu.addAction(forward_action)
- reload_action = QAction(QIcon(style_icons + 'refresh-32.png'),
- "Reload", self,
- shortcut=QKeySequence(QKeySequence.Refresh),
- triggered=self._tab_widget.reload)
- self._actions[QWebEnginePage.Reload] = reload_action
- reload_action.setEnabled(False)
- navigation_menu.addAction(reload_action)
-
- navigation_menu.addSeparator()
-
- new_tab_action = QAction("New Tab", self,
- shortcut='Ctrl+T',
- triggered=self.add_browser_tab)
- navigation_menu.addAction(new_tab_action)
-
- close_tab_action = QAction("Close Current Tab", self,
- shortcut="Ctrl+W",
- triggered=self._close_current_tab)
- navigation_menu.addAction(close_tab_action)
-
- navigation_menu.addSeparator()
-
- history_action = QAction("History...", self,
- triggered=self._tab_widget.show_history)
- navigation_menu.addAction(history_action)
-
- edit_menu = self.menuBar().addMenu("&Edit")
-
- find_action = QAction("Find", self,
- shortcut=QKeySequence(QKeySequence.Find),
- triggered=self._show_find)
- edit_menu.addAction(find_action)
-
- edit_menu.addSeparator()
- undo_action = QAction("Undo", self,
- shortcut=QKeySequence(QKeySequence.Undo),
- triggered=self._tab_widget.undo)
- self._actions[QWebEnginePage.Undo] = undo_action
- undo_action.setEnabled(False)
- edit_menu.addAction(undo_action)
-
- redo_action = QAction("Redo", self,
- shortcut=QKeySequence(QKeySequence.Redo),
- triggered=self._tab_widget.redo)
- self._actions[QWebEnginePage.Redo] = redo_action
- redo_action.setEnabled(False)
- edit_menu.addAction(redo_action)
-
- edit_menu.addSeparator()
-
- cut_action = QAction("Cut", self,
- shortcut=QKeySequence(QKeySequence.Cut),
- triggered=self._tab_widget.cut)
- self._actions[QWebEnginePage.Cut] = cut_action
- cut_action.setEnabled(False)
- edit_menu.addAction(cut_action)
-
- copy_action = QAction("Copy", self,
- shortcut=QKeySequence(QKeySequence.Copy),
- triggered=self._tab_widget.copy)
- self._actions[QWebEnginePage.Copy] = copy_action
- copy_action.setEnabled(False)
- edit_menu.addAction(copy_action)
-
- paste_action = QAction("Paste", self,
- shortcut=QKeySequence(QKeySequence.Paste),
- triggered=self._tab_widget.paste)
- self._actions[QWebEnginePage.Paste] = paste_action
- paste_action.setEnabled(False)
- edit_menu.addAction(paste_action)
-
- edit_menu.addSeparator()
-
- select_all_action = QAction("Select All", self,
- shortcut=QKeySequence(QKeySequence.SelectAll),
- triggered=self._tab_widget.select_all)
- self._actions[QWebEnginePage.SelectAll] = select_all_action
- select_all_action.setEnabled(False)
- edit_menu.addAction(select_all_action)
-
- self._bookmark_menu = self.menuBar().addMenu("&Bookmarks")
- add_bookmark_action = QAction("&Add Bookmark", self,
- triggered=self._add_bookmark)
- self._bookmark_menu.addAction(add_bookmark_action)
- add_tool_bar_bookmark_action = QAction("&Add Bookmark to Tool Bar", self,
- triggered=self._add_tool_bar_bookmark)
- self._bookmark_menu.addAction(add_tool_bar_bookmark_action)
- self._bookmark_menu.addSeparator()
-
- tools_menu = self.menuBar().addMenu("&Tools")
- download_action = QAction("Open Downloads", self,
- triggered=DownloadWidget.open_download_directory)
- tools_menu.addAction(download_action)
-
- window_menu = self.menuBar().addMenu("&Window")
-
- window_menu.addAction(self._bookmark_dock.toggleViewAction())
-
- window_menu.addSeparator()
-
- zoom_in_action = QAction(QIcon.fromTheme("zoom-in"),
- "Zoom In", self,
- shortcut=QKeySequence(QKeySequence.ZoomIn),
- triggered=self._zoom_in)
- window_menu.addAction(zoom_in_action)
- zoom_out_action = QAction(QIcon.fromTheme("zoom-out"),
- "Zoom Out", self,
- shortcut=QKeySequence(QKeySequence.ZoomOut),
- triggered=self._zoom_out)
- window_menu.addAction(zoom_out_action)
-
- reset_zoom_action = QAction(QIcon.fromTheme("zoom-original"),
- "Reset Zoom", self,
- shortcut="Ctrl+0",
- triggered=self._reset_zoom)
- window_menu.addAction(reset_zoom_action)
-
- about_menu = self.menuBar().addMenu("&About")
- about_action = QAction("About Qt", self,
- shortcut=QKeySequence(QKeySequence.HelpContents),
- triggered=qApp.aboutQt)
- about_menu.addAction(about_action)
-
- def add_browser_tab(self):
- return self._tab_widget.add_browser_tab()
-
- def _close_current_tab(self):
- if self._tab_widget.count() > 1:
- self._tab_widget.close_current_tab()
- else:
- self.close()
-
- def close_event(self, event):
- main_windows.remove(self)
- event.accept()
-
- def load(self):
- url_string = self._addres_line_edit.text().strip()
- if url_string:
- self.load_url_string(url_string)
-
- def load_url_string(self, url_s):
- url = QUrl.fromUserInput(url_s)
- if (url.isValid()):
- self.load_url(url)
-
- def load_url(self, url):
- self._tab_widget.load(url)
-
- def load_url_in_new_tab(self, url):
- self.add_browser_tab().load(url)
-
- def url_changed(self, url):
- self._addres_line_edit.setText(url.toString())
-
- def _enabled_changed(self, web_action, enabled):
- action = self._actions[web_action]
- if action:
- action.setEnabled(enabled)
-
- def _add_bookmark(self):
- index = self._tab_widget.currentIndex()
- if index >= 0:
- url = self._tab_widget.url()
- title = self._tab_widget.tabText(index)
- icon = self._tab_widget.tabIcon(index)
- self._bookmark_widget.add_bookmark(url, title, icon)
-
- def _add_tool_bar_bookmark(self):
- index = self._tab_widget.currentIndex()
- if index >= 0:
- url = self._tab_widget.url()
- title = self._tab_widget.tabText(index)
- icon = self._tab_widget.tabIcon(index)
- self._bookmark_widget.add_tool_bar_bookmark(url, title, icon)
-
- def _zoom_in(self):
- new_zoom = self._tab_widget.zoom_factor() * 1.5
- if (new_zoom <= WebEngineView.maximum_zoom_factor()):
- self._tab_widget.set_zoom_factor(new_zoom)
- self._update_zoom_label()
-
- def _zoom_out(self):
- new_zoom = self._tab_widget.zoom_factor() / 1.5
- if (new_zoom >= WebEngineView.minimum_zoom_factor()):
- self._tab_widget.set_zoom_factor(new_zoom)
- self._update_zoom_label()
-
- def _reset_zoom(self):
- self._tab_widget.set_zoom_factor(1)
- self._update_zoom_label()
-
- def _update_zoom_label(self):
- percent = int(self._tab_widget.zoom_factor() * 100)
- self._zoom_label.setText(f"{percent}%")
-
- def _download_requested(self, item):
- # Remove old downloads before opening a new one
- for old_download in self.statusBar().children():
- if (type(old_download).__name__ == 'DownloadWidget' and
- old_download.state() != QWebEngineDownloadItem.DownloadInProgress):
- self.statusBar().removeWidget(old_download)
- del old_download
-
- item.accept()
- download_widget = DownloadWidget(item)
- download_widget.remove_requested.connect(self._remove_download_requested,
- Qt.QueuedConnection)
- self.statusBar().addWidget(download_widget)
-
- def _remove_download_requested(self):
- download_widget = self.sender()
- self.statusBar().removeWidget(download_widget)
- del download_widget
-
- def _show_find(self):
- if self._find_tool_bar is None:
- self._find_tool_bar = FindToolBar()
- self._find_tool_bar.find.connect(self._tab_widget.find)
- self.addToolBar(Qt.BottomToolBarArea, self._find_tool_bar)
- else:
- self._find_tool_bar.show()
- self._find_tool_bar.focus_find()
-
- def write_bookmarks(self):
- self._bookmark_widget.write_bookmarks()
-
-
-if __name__ == '__main__':
- app = QApplication(sys.argv)
- main_win = create_main_window()
- initial_urls = sys.argv[1:]
- if not initial_urls:
- initial_urls.append('http://qt.io')
- for url in initial_urls:
- main_win.load_url_in_new_tab(QUrl.fromUserInput(url))
- exit_code = app.exec()
- main_win.write_bookmarks()
- sys.exit(exit_code)
diff --git a/examples/webenginewidgets/tabbedbrowser/tabbedbrowser.pyproject b/examples/webenginewidgets/tabbedbrowser/tabbedbrowser.pyproject
deleted file mode 100644
index 1d26848b0..000000000
--- a/examples/webenginewidgets/tabbedbrowser/tabbedbrowser.pyproject
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "files": ["main.py", "bookmarkwidget.py", "browsertabwidget.py",
- "downloadwidget.py", "findtoolbar.py", "historywindow.py",
- "webengineview.py"]
-}
diff --git a/examples/webenginewidgets/tabbedbrowser/webengineview.py b/examples/webenginewidgets/tabbedbrowser/webengineview.py
deleted file mode 100644
index 19a16e8d3..000000000
--- a/examples/webenginewidgets/tabbedbrowser/webengineview.py
+++ /dev/null
@@ -1,92 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-from PySide6.QtWebEngineCore import QWebEnginePage
-from PySide6.QtWebEngineWidgets import QWebEngineView
-
-from PySide6 import QtCore
-
-_web_actions = [QWebEnginePage.Back, QWebEnginePage.Forward,
- QWebEnginePage.Reload,
- QWebEnginePage.Undo, QWebEnginePage.Redo,
- QWebEnginePage.Cut, QWebEnginePage.Copy,
- QWebEnginePage.Paste, QWebEnginePage.SelectAll]
-
-
-class WebEngineView(QWebEngineView):
-
- enabled_changed = QtCore.Signal(QWebEnginePage.WebAction, bool)
-
- @staticmethod
- def web_actions():
- return _web_actions
-
- @staticmethod
- def minimum_zoom_factor():
- return 0.25
-
- @staticmethod
- def maximum_zoom_factor():
- return 5
-
- def __init__(self, tab_factory_func, window_factory_func):
- super().__init__()
- self._tab_factory_func = tab_factory_func
- self._window_factory_func = window_factory_func
- page = self.page()
- self._actions = {}
- for web_action in WebEngineView.web_actions():
- action = page.action(web_action)
- action.changed.connect(self._enabled_changed)
- self._actions[action] = web_action
-
- def is_web_action_enabled(self, web_action):
- return self.page().action(web_action).isEnabled()
-
- def createWindow(self, window_type):
- if (window_type == QWebEnginePage.WebBrowserTab or
- window_type == QWebEnginePage.WebBrowserBackgroundTab):
- return self._tab_factory_func()
- return self._window_factory_func()
-
- def _enabled_changed(self):
- action = self.sender()
- web_action = self._actions[action]
- self.enabled_changed.emit(web_action, action.isEnabled())
diff --git a/examples/webenginewidgets/simplebrowser/doc/simplebrowser.png b/examples/webenginewidgets/widgetsnanobrowser/doc/widgetsnanobrowser.png
index 3fa5a0046..3fa5a0046 100644
--- a/examples/webenginewidgets/simplebrowser/doc/simplebrowser.png
+++ b/examples/webenginewidgets/widgetsnanobrowser/doc/widgetsnanobrowser.png
Binary files differ
diff --git a/examples/webenginewidgets/widgetsnanobrowser/doc/widgetsnanobrowser.rst b/examples/webenginewidgets/widgetsnanobrowser/doc/widgetsnanobrowser.rst
new file mode 100644
index 000000000..d9358a230
--- /dev/null
+++ b/examples/webenginewidgets/widgetsnanobrowser/doc/widgetsnanobrowser.rst
@@ -0,0 +1,8 @@
+Qt Widgets Nano Browser Example
+===============================
+
+A minimal browser based on Qt WebEngine Widgets.
+
+.. image:: widgetsnanobrowser.png
+ :width: 400
+ :alt: Minimal Browser Screenshot
diff --git a/examples/webenginewidgets/widgetsnanobrowser/widgetsnanobrowser.py b/examples/webenginewidgets/widgetsnanobrowser/widgetsnanobrowser.py
new file mode 100644
index 000000000..2db865996
--- /dev/null
+++ b/examples/webenginewidgets/widgetsnanobrowser/widgetsnanobrowser.py
@@ -0,0 +1,70 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 WebEngineWidgets Example"""
+
+import sys
+from PySide6.QtCore import QUrl, Slot
+from PySide6.QtGui import QIcon
+from PySide6.QtWidgets import (QApplication, QLineEdit,
+ QMainWindow, QPushButton, QToolBar)
+from PySide6.QtWebEngineCore import QWebEnginePage
+from PySide6.QtWebEngineWidgets import QWebEngineView
+
+
+class MainWindow(QMainWindow):
+
+ def __init__(self):
+ super().__init__()
+
+ self.setWindowTitle('PySide6 WebEngineWidgets Example')
+
+ self.toolBar = QToolBar()
+ self.addToolBar(self.toolBar)
+ self.backButton = QPushButton()
+ self.backButton.setIcon(QIcon(':/qt-project.org/styles/commonstyle/images/left-32.png'))
+ self.backButton.clicked.connect(self.back)
+ self.toolBar.addWidget(self.backButton)
+ self.forwardButton = QPushButton()
+ self.forwardButton.setIcon(QIcon(':/qt-project.org/styles/commonstyle/images/right-32.png'))
+ self.forwardButton.clicked.connect(self.forward)
+ self.toolBar.addWidget(self.forwardButton)
+
+ self.addressLineEdit = QLineEdit()
+ self.addressLineEdit.returnPressed.connect(self.load)
+ self.toolBar.addWidget(self.addressLineEdit)
+
+ self.webEngineView = QWebEngineView()
+ self.setCentralWidget(self.webEngineView)
+ initialUrl = 'http://qt.io'
+ self.addressLineEdit.setText(initialUrl)
+ self.webEngineView.load(QUrl(initialUrl))
+ self.webEngineView.page().titleChanged.connect(self.setWindowTitle)
+ self.webEngineView.page().urlChanged.connect(self.urlChanged)
+
+ @Slot()
+ def load(self):
+ url = QUrl.fromUserInput(self.addressLineEdit.text())
+ if url.isValid():
+ self.webEngineView.load(url)
+
+ @Slot()
+ def back(self):
+ self.webEngineView.page().triggerAction(QWebEnginePage.Back)
+
+ @Slot()
+ def forward(self):
+ self.webEngineView.page().triggerAction(QWebEnginePage.Forward)
+
+ @Slot(QUrl)
+ def urlChanged(self, url):
+ self.addressLineEdit.setText(url.toString())
+
+
+if __name__ == '__main__':
+ app = QApplication(sys.argv)
+ mainWin = MainWindow()
+ availableGeometry = mainWin.screen().availableGeometry()
+ mainWin.resize(availableGeometry.width() * 2 / 3, availableGeometry.height() * 2 / 3)
+ mainWin.show()
+ sys.exit(app.exec())
diff --git a/examples/webenginewidgets/widgetsnanobrowser/widgetsnanobrowser.pyproject b/examples/webenginewidgets/widgetsnanobrowser/widgetsnanobrowser.pyproject
new file mode 100644
index 000000000..c054184df
--- /dev/null
+++ b/examples/webenginewidgets/widgetsnanobrowser/widgetsnanobrowser.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["widgetsnanobrowser.py"]
+}
diff --git a/examples/widgetbinding/CMakeLists.txt b/examples/widgetbinding/CMakeLists.txt
index e601a3579..1c5eefa50 100644
--- a/examples/widgetbinding/CMakeLists.txt
+++ b/examples/widgetbinding/CMakeLists.txt
@@ -1,5 +1,8 @@
-cmake_minimum_required(VERSION 3.16)
-cmake_policy(VERSION 3.16)
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+cmake_minimum_required(VERSION 3.18)
+cmake_policy(VERSION 3.18)
# Enable policy to not use RPATH settings for install_name on macOS.
if(POLICY CMP0068)
@@ -16,14 +19,12 @@ project(wiggly LANGUAGES CXX)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
-find_package(Qt6 COMPONENTS Core)
-find_package(Qt6 COMPONENTS Gui)
-find_package(Qt6 COMPONENTS Widgets)
+find_package(Qt6 COMPONENTS Core Gui Widgets)
# ================================ General configuration ======================================
-# Set CPP standard to C++11 minimum.
-set(CMAKE_CXX_STANDARD 11)
+# Set CPP standard to C++17 minimum.
+set(CMAKE_CXX_STANDARD 17)
# The wiggly library for which we will create bindings. You can change the name to something
# relevant for your project.
@@ -52,7 +53,21 @@ set(generated_sources
# ================================== Shiboken detection ======================================
# Use provided python interpreter if given.
if(NOT python_interpreter)
- find_program(python_interpreter "python")
+ if(WIN32 AND "${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
+ find_program(python_interpreter "python_d")
+ if(NOT python_interpreter)
+ message(FATAL_ERROR
+ "A debug Python interpreter could not be found, which is a requirement when "
+ "building this example in a debug configuration. Make sure python_d.exe is in "
+ "PATH.")
+ endif()
+ else()
+ find_program(python_interpreter "python")
+ if(NOT python_interpreter)
+ message(FATAL_ERROR
+ "No Python interpreter could be found. Make sure python is in PATH.")
+ endif()
+ endif()
endif()
message(STATUS "Using python interpreter: ${python_interpreter}")
@@ -204,7 +219,11 @@ set_property(TARGET ${bindings_library} PROPERTY PREFIX "")
set_property(TARGET ${bindings_library} PROPERTY OUTPUT_NAME
"${bindings_library}${PYTHON_EXTENSION_SUFFIX}")
if(WIN32)
- set_property(TARGET ${bindings_library} PROPERTY SUFFIX ".pyd")
+ if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
+ set_property(TARGET ${bindings_library} PROPERTY SUFFIX "_d.pyd")
+ else()
+ set_property(TARGET ${bindings_library} PROPERTY SUFFIX ".pyd")
+ endif()
endif()
# Make sure the linker doesn't complain about not finding Python symbols on macOS.
diff --git a/examples/widgetbinding/README.md b/examples/widgetbinding/README.md
deleted file mode 100644
index 5fee93c8c..000000000
--- a/examples/widgetbinding/README.md
+++ /dev/null
@@ -1,76 +0,0 @@
-# WigglyWidget
-
-The original Qt/C++ example can be found here:
-https://doc.qt.io/qt-6/qtwidgets-widgets-wiggly-example.html
-
-This example shows how to interact with a custom widget from two
-different ways:
-
- * A full Python translation from a C++ example,
- * A Python binding generated from the C++ file.
-
-
-The original example contained three different files:
- * `main.cpp/h`, which was translated to `main.py`,
- * `dialog.cpp/h`, which was translated to `dialog.py`,
- * `wigglywidget.cpp/h`, which was translated to `wigglywidget.py`,
- but also remains as is, to enable the binding generation through
- Shiboken.
-
-In the `dialog.py` file you will find two imports that will be related
-to each of the two approaches described before::
-
-
- # Python translated file
- from wigglywidget import WigglyWidget
-
- # Binding module create with Shiboken
- from wiggly import WigglyWidget
-
-
-## Steps to build the bindings
-
-The most important files are:
- * `bindings.xml`, to specify the class that we want to expose from C++
- to Python,
- * `bindings.h` to include the header of the classes we want to expose
- * `CMakeList.txt`, with all the instructions to build the shared libraries
- (DLL, or dylib)
- * `pyside_config.py` which is located in the utils directory, one level
- up, to get the path for Shiboken and PySide.
-
-Now create a `build/` directory, and from inside run `cmake` to use
-the provided `CMakeLists.txt`:
-
-macOS/Linux:
-```bash
-cd ~/pyside-setup/examples/widgetbinding
-```
-
-On Windows:
-```bash
-cd C:\pyside-setup\examples\widgetbinding
-```
-
-```bash
-mkdir build
-cd build
-cmake -H.. -B. -G Ninja -DCMAKE_BUILD_TYPE=Release
-ninja
-ninja install
-cd ..
-```
-
-The final example can then be run by:
-```bash
-python main.py
-```
-
-You should see two identical custom widgets, one being the
-Python translation, and the other one being the C++ one.
-
-## Final words
-
-Since this example originated by mixing the concepts of the `scriptableapplication`
-and `samplebinding` examples, you can complement this README with the ones in
-those directories.
diff --git a/examples/widgetbinding/bindings.h b/examples/widgetbinding/bindings.h
index d59222656..7b45ad1bf 100644
--- a/examples/widgetbinding/bindings.h
+++ b/examples/widgetbinding/bindings.h
@@ -1,52 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the Qt for Python examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
#ifndef BINDINGS_H
#define BINDINGS_H
diff --git a/examples/widgetbinding/bindings.xml b/examples/widgetbinding/bindings.xml
index 07f1c89c9..957684074 100644
--- a/examples/widgetbinding/bindings.xml
+++ b/examples/widgetbinding/bindings.xml
@@ -1,54 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the Qt for Python examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-->
<typesystem package="wiggly">
<load-typesystem name="typesystem_widgets.xml" generate="no"/>
diff --git a/examples/widgetbinding/dialog.py b/examples/widgetbinding/dialog.py
index f51e2186c..1bd127804 100644
--- a/examples/widgetbinding/dialog.py
+++ b/examples/widgetbinding/dialog.py
@@ -1,52 +1,5 @@
-############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## BSD License Usage
-## Alternatively, you may use this file under the terms of the BSD license
-## as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from PySide6.QtWidgets import QDialog, QLineEdit, QVBoxLayout
@@ -68,12 +21,13 @@ class Dialog(QDialog):
layout.addWidget(wiggly_widget_py)
layout.addWidget(wiggly_widget_cpp)
layout.addWidget(lineEdit)
+ lineEdit.setClearButtonEnabled(True)
wiggly_widget_py.running = True
wiggly_widget_cpp.setRunning(True)
lineEdit.textChanged.connect(wiggly_widget_py.setText)
lineEdit.textChanged.connect(wiggly_widget_cpp.setText)
- lineEdit.setText("Hello world!")
+ lineEdit.setText("🖖 Hello world!")
self.setWindowTitle("Wiggly")
self.resize(360, 145)
diff --git a/examples/widgetbinding/doc/widgetbinding.md b/examples/widgetbinding/doc/widgetbinding.md
new file mode 100644
index 000000000..6355ea311
--- /dev/null
+++ b/examples/widgetbinding/doc/widgetbinding.md
@@ -0,0 +1,74 @@
+(widgetbinding-example)=
+# WigglyWidget Example
+
+This example shows how to interact with a custom widget from two
+different ways:
+
+ * A full Python translation from a C++ example,
+ * A Python binding generated from the C++ file.
+
+
+The original example contained three different files:
+ * `main.cpp/h`, which was translated to `main.py`,
+ * `dialog.cpp/h`, which was translated to `dialog.py`,
+ * `wigglywidget.cpp/h`, which was translated to `wigglywidget.py`,
+ but also remains as is, to enable the binding generation through
+ Shiboken.
+
+In the `dialog.py` file you will find two imports that will be related
+to each of the two approaches described before::
+
+
+ # Python translated file
+ from wigglywidget import WigglyWidget
+
+ # Binding module create with Shiboken
+ from wiggly import WigglyWidget
+
+
+## Steps to build the bindings
+
+The most important files are:
+ * `bindings.xml`, to specify the class that we want to expose from C++
+ to Python,
+ * `bindings.h` to include the header of the classes we want to expose
+ * `CMakeList.txt`, with all the instructions to build the shared libraries
+ (DLL, or dylib)
+ * `pyside_config.py` which is located in the utils directory, one level
+ up, to get the path for Shiboken and PySide.
+
+Now create a `build/` directory, and from inside run `cmake` to use
+the provided `CMakeLists.txt`:
+
+macOS/Linux:
+```bash
+cd ~/pyside-setup/examples/widgetbinding
+```
+
+On Windows:
+```bash
+cd C:\pyside-setup\examples\widgetbinding
+```
+
+```bash
+mkdir build
+cd build
+cmake -S.. -B. -G Ninja -DCMAKE_BUILD_TYPE=Release
+ninja
+ninja install
+cd ..
+```
+
+The final example can then be run by:
+```bash
+python main.py
+```
+
+You should see two identical custom widgets, one being the
+Python translation, and the other one being the C++ one.
+
+## Final words
+
+Since this example originated by mixing the concepts of the `scriptableapplication`
+and `samplebinding` examples, you can complement this README with the ones in
+those directories.
diff --git a/examples/widgetbinding/doc/widgetbinding.pyproject b/examples/widgetbinding/doc/widgetbinding.pyproject
new file mode 100644
index 000000000..e423ea347
--- /dev/null
+++ b/examples/widgetbinding/doc/widgetbinding.pyproject
@@ -0,0 +1,10 @@
+{
+ "files": ["../bindings.h",
+ "../dialog.py",
+ "../macros.h",
+ "../main.py",
+ "../registerwigglywidget.py",
+ "../wigglywidget.cpp",
+ "../wigglywidget.h",
+ "../wigglywidget.py"]
+}
diff --git a/examples/widgetbinding/macros.h b/examples/widgetbinding/macros.h
index 224fada68..001647966 100644
--- a/examples/widgetbinding/macros.h
+++ b/examples/widgetbinding/macros.h
@@ -1,52 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the Qt for Python examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
#ifndef MACROS_H
#define MACROS_H
diff --git a/examples/widgetbinding/main.py b/examples/widgetbinding/main.py
index 4524802f3..2b24018b1 100644
--- a/examples/widgetbinding/main.py
+++ b/examples/widgetbinding/main.py
@@ -1,52 +1,5 @@
-############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## BSD License Usage
-## Alternatively, you may use this file under the terms of the BSD license
-## as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
diff --git a/examples/widgetbinding/registerwigglywidget.py b/examples/widgetbinding/registerwigglywidget.py
index cdef7300d..c5560ba6b 100644
--- a/examples/widgetbinding/registerwigglywidget.py
+++ b/examples/widgetbinding/registerwigglywidget.py
@@ -1,52 +1,5 @@
-############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## BSD License Usage
-## Alternatively, you may use this file under the terms of the BSD license
-## as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection
from wigglywidget import WigglyWidget
diff --git a/examples/widgetbinding/wigglywidget.cpp b/examples/widgetbinding/wigglywidget.cpp
index 01a49b1ef..6fdc65f39 100644
--- a/examples/widgetbinding/wigglywidget.cpp
+++ b/examples/widgetbinding/wigglywidget.cpp
@@ -1,52 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
#include "wigglywidget.h"
@@ -86,14 +39,16 @@ void WigglyWidget::paintEvent(QPaintEvent * /* event */)
//! [3]
QPainter painter(this);
//! [3] //! [4]
- for (int i = 0; i < m_text.size(); ++i) {
- int index = (m_step + i) % 16;
+ int offset = 0;
+ const auto codePoints = m_text.toUcs4();
+ for (char32_t codePoint : codePoints) {
+ const int index = (m_step + offset++) % 16;
color.setHsv((15 - index) * 16, 255, 191);
painter.setPen(color);
- const QChar c = m_text.at(i);
+ QString symbol = QString::fromUcs4(&codePoint, 1);
const int dy = (sineTable[index] * metrics.height()) / 400;
- painter.drawText(x, y - dy, c);
- x += metrics.horizontalAdvance(c);
+ painter.drawText(x, y - dy, symbol);
+ x += metrics.horizontalAdvance(symbol);
}
}
//! [4]
diff --git a/examples/widgetbinding/wigglywidget.h b/examples/widgetbinding/wigglywidget.h
index 5bfb4da14..e527a8f49 100644
--- a/examples/widgetbinding/wigglywidget.h
+++ b/examples/widgetbinding/wigglywidget.h
@@ -1,52 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
#ifndef WIGGLYWIDGET_H
#define WIGGLYWIDGET_H
diff --git a/examples/widgetbinding/wigglywidget.py b/examples/widgetbinding/wigglywidget.py
index 482415ae6..3362eab6b 100644
--- a/examples/widgetbinding/wigglywidget.py
+++ b/examples/widgetbinding/wigglywidget.py
@@ -1,52 +1,5 @@
-############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## BSD License Usage
-## Alternatively, you may use this file under the terms of the BSD license
-## as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from PySide6.QtCore import QBasicTimer, Property
from PySide6.QtGui import QColor, QFontMetrics, QPainter, QPalette
@@ -89,15 +42,15 @@ class WigglyWidget(QWidget):
y = (self.height() + metrics.ascent() - metrics.descent()) / 2
color = QColor()
- painter = QPainter(self)
- for i in range(len(self.text)):
- index = (self._step + i) % 16
- color.setHsv((15 - index) * 16, 255, 191)
- painter.setPen(color)
- dy = (sineTable[index] * metrics.height()) / 400
- c = self._text[i]
- painter.drawText(x, y - dy, str(c))
- x += metrics.horizontalAdvance(c)
+ with QPainter(self) as painter:
+ for i in range(len(self.text)):
+ index = (self._step + i) % 16
+ color.setHsv((15 - index) * 16, 255, 191)
+ painter.setPen(color)
+ dy = (sineTable[index] * metrics.height()) / 400
+ c = self._text[i]
+ painter.drawText(x, y - dy, str(c))
+ x += metrics.horizontalAdvance(c)
def timerEvent(self, event):
if event.timerId() == self._timer.timerId():
diff --git a/examples/widgets/animation/animatedtiles/animatedtiles.py b/examples/widgets/animation/animatedtiles/animatedtiles.py
index 01828c9ec..02fc75bf5 100644
--- a/examples/widgets/animation/animatedtiles/animatedtiles.py
+++ b/examples/widgets/animation/animatedtiles/animatedtiles.py
@@ -1,44 +1,6 @@
-
-#############################################################################
-##
-## Copyright (C) 2010 Riverbank Computing Limited.
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2010 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
import math
@@ -46,14 +8,14 @@ import math
from PySide6.QtCore import (QEasingCurve, QObject, QParallelAnimationGroup,
QPointF, QPropertyAnimation, QRandomGenerator,
QRectF, QTimer, Qt, Property, Signal)
-from PySide6.QtGui import (QBrush, QColor, QLinearGradient, QPainter,
+from PySide6.QtGui import (QBrush, QLinearGradient, QPainter,
QPainterPath, QPixmap, QTransform)
from PySide6.QtWidgets import (QApplication, QGraphicsItem, QGraphicsPixmapItem,
QGraphicsRectItem, QGraphicsScene, QGraphicsView,
- QGraphicsWidget, QStyle, QWidget)
+ QGraphicsWidget, QStyle)
from PySide6.QtStateMachine import QState, QStateMachine
-import animatedtiles_rc
+import animatedtiles_rc # noqa: F401
# Deriving from more than one wrapped class is not supported, so we use
@@ -133,7 +95,7 @@ class Button(QGraphicsWidget):
painter.drawEllipse(r.adjusted(5, 5, -5, -5))
painter.drawPixmap(-self._pix.width() / 2, -self._pix.height() / 2,
- self._pix)
+ self._pix)
def mousePressEvent(self, ev):
self.pressed.emit()
@@ -161,7 +123,7 @@ if __name__ == '__main__':
for i in range(64):
item = Pixmap(kinetic_pix)
item.pixmap_item.setOffset(-kinetic_pix.width() / 2,
- -kinetic_pix.height() / 2)
+ -kinetic_pix.height() / 2)
item.pixmap_item.setZValue(i)
items.append(item)
scene.addItem(item.pixmap_item)
@@ -199,23 +161,25 @@ if __name__ == '__main__':
for i, item in enumerate(items):
# Ellipse.
ellipse_state.assignProperty(item, 'pos',
- QPointF(math.cos((i / 63.0) * 6.28) * 250,
- math.sin((i / 63.0) * 6.28) * 250))
+ QPointF(math.cos((i / 63.0) * 6.28) * 250,
+ math.sin((i / 63.0) * 6.28) * 250))
# Figure 8.
figure_8state.assignProperty(item, 'pos',
- QPointF(math.sin((i / 63.0) * 6.28) * 250,
- math.sin(((i * 2) / 63.0) * 6.28) * 250))
+ QPointF(math.sin((i / 63.0) * 6.28) * 250,
+ math.sin(((i * 2) / 63.0) * 6.28) * 250))
# Random.
random_state.assignProperty(item, 'pos',
- QPointF(-250 + generator.bounded(0, 500),
- -250 + generator.bounded(0, 500)))
+ QPointF(-250 + generator.bounded(0, 500),
+ -250 + generator.bounded(0, 500)))
# Tiled.
+ width = kinetic_pix.width()
+ height = kinetic_pix.height()
tiled_state.assignProperty(item, 'pos',
- QPointF(((i % 8) - 4) * kinetic_pix.width() + kinetic_pix.width() / 2,
- ((i // 8) - 4) * kinetic_pix.height() + kinetic_pix.height() / 2))
+ QPointF(((i % 8) - 4) * width + width / 2,
+ ((i // 8) - 4) * height + height / 2))
# Centered.
centered_state.assignProperty(item, 'pos', QPointF())
@@ -226,8 +190,7 @@ if __name__ == '__main__':
view.setViewportUpdateMode(QGraphicsView.BoundingRectViewportUpdate)
view.setBackgroundBrush(QBrush(bg_pix))
view.setCacheMode(QGraphicsView.CacheBackground)
- view.setRenderHints(
- QPainter.Antialiasing | QPainter.SmoothPixmapTransform)
+ view.setRenderHints(QPainter.Antialiasing | QPainter.SmoothPixmapTransform)
view.show()
states = QStateMachine()
diff --git a/examples/widgets/animation/animatedtiles/animatedtiles.pyproject b/examples/widgets/animation/animatedtiles/animatedtiles.pyproject
index 08ee55685..20f4abe43 100644
--- a/examples/widgets/animation/animatedtiles/animatedtiles.pyproject
+++ b/examples/widgets/animation/animatedtiles/animatedtiles.pyproject
@@ -1,4 +1,3 @@
{
- "files": ["animatedtiles.qrc", "animatedtiles.py",
- "animatedtiles_rc.py"]
+ "files": ["animatedtiles.qrc", "animatedtiles.py"]
}
diff --git a/examples/widgets/animation/animatedtiles/animatedtiles_rc.py b/examples/widgets/animation/animatedtiles/animatedtiles_rc.py
index 3486fa55c..065aca760 100644
--- a/examples/widgets/animation/animatedtiles/animatedtiles_rc.py
+++ b/examples/widgets/animation/animatedtiles/animatedtiles_rc.py
@@ -1,892 +1,11 @@
# Resource object code (Python 3)
# Created by: object code
-# Created by: The Resource Compiler for Qt version 5.14.0
+# Created by: The Resource Compiler for Qt version 6.2.2
# WARNING! All changes made in this file will be lost!
from PySide6 import QtCore
qt_resource_data = b"\
-\x00\x006\xe2\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00d\x00\x00\x00d\x08\x06\x00\x00\x00p\xe2\x95T\
-\x00\x00\x00\x01sRGB\x00\xae\xce\x1c\xe9\x00\x00\x00\
-\x06bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\
-\x00\x00\x09pHYs\x00\x00\x0e\xc4\x00\x00\x0e\xc4\x01\
-\x95+\x0e\x1b\x00\x00\x00\x07tIME\x07\xd9\x03\x03\
-\x0e\x1c$|\x1a\xa6\xff\x00\x00 \x00IDATx\
-\xda\xed\x9dw\x98\x9de\x9d\xf7?\xf7SN\x9f\x993\
-3\x99Lf\x122\xa9\xa4\x03\x91\x90\x10j\xe8H\xd9\
-\x05\xa5\x88\xc8\xba\xeb\xcb\xb2\xae\x04QW_W]]\
-v]EQVPqYu\xa5Y\xc0\x12:\x16\x88\
-\x94\x00\x09)\xa4M\xea\xb4L\xa6\xcf\x9c9\xbd=\xf5\
-~\xff8\xf3<\x99A\x944}\xdf\xeb\xbd\xb8\xaf+\
-W2\xc9\xc9y\xca\xf7\xfe\xb5\xef\xaf\xdc\xf0\xeezw\
-\xbd\xbb\xde]\xef\xaew\xd7\xbb\xeb\xdd\xf5\xeezw\xfd\
-\x7f\xbf\xc4\xb1\xfc\xe7\xba\xba\xba\xab\x0c\xc3\x08N\x992\
-\xe5s+W\xae<QQ\x14\xb6m\xdbFmm\xed\
-\xa1\x0b\xb8\x02\x09 \xe4\x1f\x5cMU\xd5\x94\xa2(\xf9\
-r\xb9\xac\xbf\xfa\xea\xab\xb3\xfeo\xbf\x8c\xda\xda\xda\x9f\
-]w\xdduW\x97\xcbe\x17@A\xe0H\x89\xf8#\
-o\xc9q\x1c\x02\x81\x00\xaf\xbf\xfe\xba\xb3`\xc1\x82\xc2\
-\xc0\xc0@l\xcb\x96-\xd3-\xcbJ\x1e\xed=h\xc7\
-\xf2\x00\x8b\x16-\xfa\xe1\xcc\x993\xeb7o\xdeL\xa9\
-T\xc2\xb6m\xea\xeb\xebihh@\x08A\xbf\x95b\
-\xda\x05E\xaa\xa2:N:\x88\x93\xd1qs:vJ\
-C\x165\x80\xb0\x94\xf2\x0f\xbew\xda\xb4i\xa2\xb7\xb7\
-W\xfe%@\xa8\xaa\xaa\xba`\xc5\x8a\x15kt]7\
-\x1d\xc7\xa9\xe9\xef\xed\xd3m\x0b\x84\x2210\x09\xc5\x04\
-\xb2\xa0M\xd8LB\x08\xf6\xee\xdd\xcb\xd2\xa5K\xbd\x8d\
-\x85\xa6i\xb1X,\x86\xeb\xba\xa7\x85B\xa1lmm\
-\xed\xae\x81\x81\x81\xec\x9f\x1d\x90E\x8b\x16\xb1w\xef\xde\
-\x90\xe38(\x8a\xe2\x94J%\x5c\xd7\xc54Ml\xdb\
-\xc6\xb2,\xca\xe52B\x08\x8a\xdd\x09\xba\xba\xc3Hi\
-\x220\x91\xaa\x8b@\x80\xa8<\xf08\x19\x95g\x9cq\
-\x86\x04\xc8f\xb3\xb4\xb6\xb6\x8a\xbf\x94T\x94\xcb\xe5\xe6\
-\xc9\x93'W\x9b\xa6\x89\x82\xe0`\xb8\x87\x85\x17*\xd8\
-\xc3A\xecD\x10g4\x88\x8c\x0a\xa4\xa9 -\xa5\xf2\
-\xd24\x0dUU1M\x13EQp]\x17\xc300\
-MS^u\xd5U\xbf\x11B\xf0\xdak\xaf]\x00\xfc\
-\xfe\xcf\x0eHGG\xc7\x9c\xd3N;\xad\xad\xb6\xb6\x96\
-B\xa1\x80i\x9a\x13\x00\xf1nNQ\x14\xa6Lm\x22\
-\x1c\x0e\xa3\x08A\xabq\x80\xe5\x1f\x82@@\xc1\x1e\xd5\
-\xb1z\xa3\x98\x83\x01\x9c\xe1 B\xa9(\x05)%\xc1\
-`\xf0/\xab\xb3\x85\xf07\x92\x86\x8a;?C ^\
-C ^\x82\x13K\x13>;\xf4\xe8$\xdc\xa2\x8a\xeb\
-\xbaH)1\x0c\x03!\x04RJ,\xcb\xc2u]a\
-\x18\x06\x9a\xa6\x01\xb8\x7f\x11\x95U.\x97\x1b\x1a\x1a\x1a\
-\x08\x85B\xe4\xf3y\x0c\xc3\xf0o\xceq\x1c\x1c\xc7\xf1\
-o4\x10\x08T\xc0\x11\x82^{\x84\xf3bM\xb8F\
-\x90%KNa\xe7\xe4W\x89\x08\x89\xa2\xe8\xa4_\xae\
-\xa2\xb0'\x8c\x94\x12\xd7u\xff\xec D\xa3\xd1\xb3\xae\
-\xb9\xe6\x9au\xa5R\xa9\xf2B])C\xf5B\xb8)\
-\x9d\x19\xbbNat\x97\xacH\xf0[\xe4\xb4m\xef.\
-f\xcc\x98\xe1\x032^B\xca\xe5\xb2\xbf1\xa5\x94\x94\
-\xcb\xe5\x8fWUU]WUU\xf5@\x7f\x7f\xff\xa6\
-?\xab\x0d\xb1m\x1b\xc30|i\xf0n\xc4q\x1c\x7f\
-\xb7\x09!PU\x15\xcb\xb2\x90\xaeK}:\xc4\xc1\xa7\
-\x15N\x08.&W?\x05;1\x17\xac0I:)\
-\x0c\x988y\xc7\x07\xe4\xec\xb3\xcf\xfe\x1f)e \x99\
-L\x86{{{\xff6\x9b\xcd\xe6\x8f' R\xca\xb0\
-\xaa\xaa\x15\x89\x96\x92]\x93w\x8a\xf3\xaf\xac\xc3\x956\
-vVCd\xc3\xd8Y\x0d'\xabQ\xde\x1fA:\xc2\
-\x97\xa6r\xb9\x8c\xa2TT\x97\x07\x88'!\x8e\xe3T\
-\x9eWJ\xb9j\xd5\xaa\xab\x9b\x9b\x9by\xf0\xc1\x07\xd7\
-\x03\x7f\x1e@\xa6M\x9b\xb6\xb0T*\xcd\xb7m\x1b)\
-%\x8e\xe3LPY\x8e\xe3\x00\xf8*K\xd34\xff3\
-\x0b\x1bf\x13MU\x91$Aw\x7f7\xf1\xf7\x14\xd0\
-\xcc\x00\xd1D\x9cH\xbd\x86\xac\x11HC\x01W\x80\xe0\
-#\x00\xe1p\x98\xdd\xbbw\x7f\x148&@\x9a\x9a\x9a\
-\x18\x18\x18\x18\x0f\x884M\x13\xd341]\x9bX\xb5\
-\x0e\xb6\xc2\xf2\xc9\xef\xa7\xaa%\xc4K\x9d\xbfb\xfa\xbc\
-&\x86\x8c.\xf2\x1d*N\xa9\x02\x80\xf7\x9c\xe3\xed\x86\
-\xf7gO2\xc6\xde\x87\xc8f\xb3D\xa3Q\x14E\x91\
-\x7f6\x95U[[\xbbf\xd9\xb2e\xf3\xd2\xe9\xb4o\
-/\x1c\xa7\xb2\xb3=/+\x18\x0c2f\xf0\x09\x06\x83\
-\xb8\xae\x8beY\xbe\xb1WQ\xd8\x17\xee\xe0\xc2\x05\xd5\
-@\xf1-\x0a]\x92^WC\xb9-\x02\x80eY\xc7\
-E\x22\x06\x06\x06hjj\x9a\x04,\x01\x1c\xc30N\
-N$\x12d\xb3Yl\x5c\xec\x11\x9b\x9d\xcf\x17\xb8\xf2\
-}\xf3y\xfa\xd55\xcck\xbe\x82\xf7\xd4\xaf\xe4\xbf\xb6\
-\x7f\x8al*\x87.\xc3\xbe\x9b\xeb\x01\x02P(\x14p\
-\x1c\x07\xd7u)\x95J\x9e\xed\xc0\xf3\x1c=M\xf1g\
-\x03DJ\xa9\x14\x0a\x05\x1f\x08\xdb\xb6\xc9\xe5r\xd8\xb6\
-M>\x9f\xf7uk\xa9TBQ\x14\xc2\xe10\xb6m\
-c\xdb\xf6\xa1\x87\x91\x02\xc2\x15\xf1\xff\xc8\xc2\xbb\x91\x8a\
-K\xda\xedd\xe3\xd6.\x92U\xeb\x18\x1d\xfb\x9c\xb7#\
-\x8f\xd7*\x95J7\x9f\x7f\xfe\xf9w\xaa\xaa\x8a@\x90\
-03L?\xbd\x1aw8\x8c3\xda\x82H\xc3\x8f\xbe\
-\xf3S\x14U\xf0\x1a[xUn&\xa0\xcd'\x9fl\
-'\x1aU\x91Rz\xb6\xc1\x07\xa4X,\xfa\xef\x22\x9b\
-\xcd\x12\x8b\xc5|0\xc6IKc,\x16\x9b\x95\xcf\xe7\
-;\xff\x1c\x80\xf8/\xd8\xb2,l\xdb\xf6_\x9e\xa6i\
->\x10\xaa\xaa\xfa\xdeK\xb1X\xf4\x8d\xbd'!X\x92\
-\xd1^\x83\xa9\xef\x99\xcbu?Z\xca\xcf>\xb2\x81\xa6\
-\x93\xd2\xac\xed\xc9\xb2'\xfb*\xf9\x9c\xe9\xab>\xa0\xce\
-\xbb\xfe\xf4\xe9\xd3\x93\x07\x0f\x1et\x8f\xd2nD\xbd\x0d\
-StM\xb4s\xfa\xa9\x9d\x1f\xc1\x92\x83H\x1bD6\
-\x86\x9dQqR:\xf9-\xd5\xa0H\x1ci\xfb\xb6\xc2\
-\x93\x90T*\x85\xaa\xaa8\x8e\xe3\xc5\x1f\x08!\xd04\
-\x0dEQ\xc8\xe5r\x04\x83A\x22\x91\x08\xa6i\xca\x93\
-O>\xf9\x9b\xaa\xaa\xde\xf1\xca+\xafT\xfd9\x00\x91\
-\x1e\x10\xdeNQ\x14\x05\xdb\xb6\x994i\x127\xddt\
-\x13\xdf\xf9\xcew\xa8\xad\xade\xfa\xf4\xe9tuu\x91\
-\xcdf}c\xed8\x0e\x96\x10\xa8\xdb\x5c\x8a\xf9\xa9\xdc\
-\xf4\xab\x0fP\x1b8\x95\x9b\xd6\xdd\x88\xae\xa9\xa8v\x08\
-Mk$^\xe3\xc7(\xf2\xca+\xaf\xdc\xe7\xfd\xff\xf5\
-\xeb\xd7\xcf\x07\xf6\x1d\xad\x94x*\xc4tM\xe2\xe1\x00\
-\x85\x8c\xcbM'\xdf\x81\xab\x16Y\xb3\xf7^&74\
-2\x9c\xefe\xf4\xd50J@NP\xc9\xde\x86TU\
-\xd5\x07$\x16\x8b!\x84\xf07\xa1\xa2(\xfe5\x02\x81\
-\x00\x96e\x09!\x04\xe1p\xb8p\xb8\xf7\xa8\x1c\xce\x87\
-\xa6L\x992i\xca\x94)/\xb9\xae;\xcd\xb3\x05\xd9\
-l%\x08\xbd\xea\xaa\xabhll\xe4W\xbf\xfa\x15\xcd\
-\xcd\xcd\x00\xac]\xbb\x96\xdbo\xbf\x9dP(\x84\xa6i\
-\xbeq7\x0c\x83r\xa9\x84\xd0\x04\xa1X\x90\xda\xdaZ\
-\xba\xd5!\x16|\xbc\xcc\xac\x8f\x16i\xb9u\x94\xc9\xd7\
-$\x89\x9fn\x10i\x16\x04\x83\x01\x11\x0c\x06\x09\x06\x83\
-\xd4\xd7\xd7\xe38\xce1\xe90\xc30\xbc\x00\x0eE(\
-\x9c\x14~?\xa1j\x9b\xe7\xdfx\x9dE\xda\xf5\xac>\
-\xe3njB\xf5\x94\xcb\xe5\xca\xbd\x96\xcb\x98\xa6I6\
-\x9b\xf57V \x10\xf0\xa5\xe1\xb2\xcb.#\x12\x89P\
-__\xcf\xdc\xb9s}`4M\xf3\xb5\x87\xe7}\x1d\
-W@\x92\xc9d\xed\x05\x17\x5cpn(\x14\x8aX\x96\
-\xe5_\xb8\x5c.\xf3\xe1\x0f\x7f\x18\xc30\xb8\xff\xfe\xfb\
-Y\xbe|\xb9\xaf;\xbd\x1b_\xb0`\x01\xb7\xddv\xdb\
-\x04\xe3\xee\xc5-\xa6a\xe2\x04L4M%\x9bt\xb8\
-j\xe1\xc7\xa8\x9b\x1a#\xb28K\xed\x15\xc3\xe8\x0bR\
-\x18\xa51o\xc84\x8f\xd8@644\x5c\x1e\x8dF\
-o\x8a\xc5b7J)\x97\x0c\x0d\x0d188Hb\
-h\x84\x817\xb3\xf4\xed\x18\xe0\xb95k\xd9\xf1\xfa\x0e\
-\xf6m\xda\xc3\xfd\x0f|\x97\x9d/v\x91/d}\xe0\
-<\x0f\xca\xf3\xa2\xce>\xfbl\xaa\xab\xab\x91R\x92H\
-$|\xa3\x9eH$\x18\x93\x06_ue\xb3Y_]\
-\x1fW\xa3\xee\xf9\xdf\xde\xc5\x15E\xe1\xfc\xf3\xcf\xa7\xb5\
-\xb5\x95\xc7\x1f\x7f\x9c\xba\xba:\x9ez\xea)\x9ey\xe6\
-\x19B\xa1\x10W]u\x15\xa7\x9f~:\xa9T\x8a\xfb\
-\xef\xbf\x9f\xbe\xbe>\x0c\xc3 \x99L\xfa\xd1\xb8i\x9a\
- Aj\x92r\xc9\xe1\xae\xf7>\xc5\xa3\xad\xdf\xe0\xa6\
-\xf9_e\xed\x8e\x17P\x1b\xfax\xcd\xdeV\xb1#J\
-eg\x1e\xe9\x9a<y\xf2\xb7\x97-[6\xcb\xb2,\
-T\xa1P\xacN\xcbX\xb5&\xdc\xac\x8e\x9d\xd4\xe9\xdb\
-6\x0c\x02\xea\xb5i\x8c\xa6s$d\x96\xa6\xc0\x0a\xf6\
-\x8f\xbeDS\xa0\xc9\x7f\x91\x9eM\xb4,\x8bH$\xe2\
-{\x91\x1b7n$\x16\x8b\x91H$\xa8\xae\xaeF\x08\
-\xc1\xb4i\xd3\x18\x1e\x1e&\x9f\xcf\xfb1\xdb\x91H\xb6\
-r\xb8\x80x`\x14\x8bE\xa6M\x9b\xc6\xbf\xfc\xcb\xbf\
-\xa0i\x1a\xcf=\xf7\x1c}}}\xc4b1\x82\xc1\xa0\
-\xef\xeen\xdb\xb6\x0dM\xd3&\xf8\xff\x9e\xcd9$!\
-\x95(?\xa0F\x98\xd68\x85\x84\xd8\x85\xb4BH\x09\
-\x8e\xb4p\x1d\x07\xc34|\xd1\xb7\xde\xe2\x07755\
-\xbd\xd3};\xe5r\x99r\xb9\xcc\xeel\x17\x91s\x07\
-E\xe8\xac~B\x97uP\xf5\xe1}\xd4|\xf0\x00\xa1\
-s\xfb\x113\x93\x95\xebX&\x96{(\x9e\xf0$\xbd\
-\xbe\xbe\x1eM\xd3\xd0u\x9d\x97^z\xc9\xb7)\xba\xae\
-\xfbR\x14\x0e\x871\x0c\xc3\x07\xcf\xb35c\x804\xad\
-\x5c\xb9R\xd6\xd7\xd7\xcf?nF\xdd\x8b;L\xd3\xa4\
-T*100@$\x12ahh\x08\xc7q\xe8\xef\
-\xef\xf7\xe9\xe8\xd1\xd1\xd1\x0a\x975e\x0a\x9f\xfd\xecg\
-q\x1c\x87`0\x88\xaa\x1er\x1f\xbdw\xeb\xb4\x97\xd8\
-\xf0\xef*\xa7\xfe\xdb\xa9\x00<\xcf\x87\xde\xf6\xfa\xd9l\
-\x96\xf9\xf3\xe7wy\xee\xf0\xd0\xd0\xd0\xbf\x0d\x0c\x0c\xdc\
-\xf1N^\xa1\x07\xa6)-\x14\x14\xc8L\xe6\x8e\xcb\xbf\
-G{z3\xdf{\xf9\xdfX\xbcd\x0e\xddu\x9dd\
-wi\xbe4\x18\x86A*\x95\xf2\x8d\xf3\xf5\xd7_\xcf\
-\x9a5k\xc8d2\xd4\xd5U\x9c\xbe\xd1\xd1Q\xff\x1a\
-\xf5\xf5\xf5\x98\xa6I8\x1cfhh\x08UU\x89\xc7\
-\xe3\xe8\xbaN.\x97\x03`\xee\xdc\xb9\xec\xda\xb5\xcb9\
-.\x80X\x96U\xf0^\xa0\xa2(\x14\x8bE>\xf3\x99\
-\xcfP]]\xed\xe7>\xc6{\x22\xde\x9f\x93\xc9$\x81\
-@\xc0\x07\xe4\x87?\xfc!\x86a\xf0\xf1\x8f\x7f\xdc\xe7\
-\xbbTT\x96,YRQ\x89\xd2!9\xf7\x00s\x16\
-Fpr*\xd6p\x08{(\x885\x18DH\x05\xa1\
-\xbb\xfe5\x86\x86\x86\x0e\xdb\x90\xdb\x96\x8d\xab:\x08E\
-p\xdd\x82O\xb3\xbe\xf7I\x9c\x91i\x5c7\xf7K\x9c\
-\x7f\xea\x99\xdc\xfe\xe8\xe5\xbek\xab\xaa\xaa\x1f\x03yl\
-\xc3\x96-[*\xe4\xe3\x98s2i\xd2$\xa4\x94\x08\
-!(\x95J\xfe\xc6TU\x95P(D\xb1X$\x12\
-\x89\xf8\xa1\x80eY\xfe\xf7\x1f3 \xb5\xb5\xb5\xb7,\
-]\xba\xf4.\x8f.9\xe1\x84\x13H\xa5R\x04\x02\x01\
-\xd2\xe9\xb4\xaf\x82\xa4\x94(\x8a\xe2\xb3\x9f\xde\xee\x1a\xa3\
-\x16\x5ce,\x9a\x9a6m\x1a\x8e\xe3P(\x14\x10\x08\
-liQ,\x16)\x97\xcb\xf4YIZ\xa6;\xc8H\
-\x89\xc6I\xd3IM\xedC\x0a\x07\xd35QJa\x86\
-\x1e\x99\x5cIt\x1d\x01EbY\x16\xb6e!\x15\x89\
-\xa2\x09\x1a\xaa\x9b9X\xfa=\xc9$d\xdd~\xeaN\
-0\x08\x07#^\xcc3A\xe5x*\xb6\xa7\xa7\x87P\
-(\x84\xeb\xba\xac^\xbd\x9a\xad[\xb7\xd2\xd9\xd9\xe9{\
-R\xaaZa\x80kjj\xc8f\xb3\xa8\xaaJ,\x16\
-\xf3\xd5\x9e\x17\xbb\x1d\x8eS\xf2\x8e\x80\x98\xa69\xb5\xa9\
-\xa9\xa9\xa6\xa7\xa7\x07\xd34\xb9\xe7\x9e{\xd8\xb3g\x0f\
-7\xdex#?\xf8\xc1\x0fH$\x12\xd4\xd6\xd6\x12\x0c\
-\x06y\xe9\xa5\x97X\xb8p!\xbbv\xed\xa2\xa7\xa7\x87\
-\xb9s\xe7\xb2m\xdb6\xf6\xef\xdf\x7f\xfb\x82\x05\x0b\xbe\
-\xf3\xec\xb3\xcfr\xd1E\x17Q.\x97}\x95%t\xc5\
-\xf7\xbe\x5c\xc7EU\x04\xa1\xec|>q\xd1\x9dh2\
-\xca\x17\x9e\xf8\x08\x1f>\xfbF~\xb6\xfdn,\xcb\xac\
-\xe4R\xfe\xc8\x83\x0d\x0c\x0c0k\xd6\xac;\xa3\xd1\xe8\
-T\x00\xe9\xca)\xc9\xd1\x14\xd2uA\xb7\xe9\xfc\xa5\xc2\
-w_\xf8\x16i\xf7 F6\x88M\x89\xeeu\x9dt\
-\x0d\xe60\xcd\xb0\x0fH8\x1cf\xc6\x8c\x19\x0c\x0e\x0e\
-b\x9af\xaaT*\xf58\x8e\xb3DQ\x14q\xd7]\
-wI\xd7u\x85\xb7\x01=\x1b\x0b\xf8\x86\x1c \x95J\
-\x11\x8b\xc5\xfcMz\xb84\x8av8\x06\xdd4M\x0a\
-\x85\x02\xaa\xaa\xf2\xa3\x1f\xfd\x88o\x7f\xfb\xdb\xfc\xf4\xa7\
-?e\xfd\xfa\xf5\xa8\xaa\x8a\xae\xebh\x9aF*\x95b\
-\xef\xde\xbd\xe4\xf3y\xca\xe52\x89D\xc2S_!U\
-U\xd9\xb0a\x03\xaf\xbf\xfe\xba\xef\xab\x8f\xbd4\xdf\xdf\
-\xb7\xb1qqY\xd6p\x19\x8fl\xfb*\xb3\xb4\xf3\xb9\
-\xf6\xa4\xd5\xb4\xd4LA\xa0T\xd4\x9c\x22\xde\xc9\xb3\xfa\
-\xfb\xe9\xd3\xa7\xd7\x0b!(8eX8L}<\x8c\
-\xd3\x1f\xc1\xea\x0b\x93\x19M\x22\x88\x11\xaa\x98e\x8aC\
-\x92Fq\x22\x1df\x87\xcf8TWW\x13\x8f\xc7I\
-\xa5R\x98\xa6\xf9\xec\x9e={n\x8a\xc7\xe3\xd7Z\x96\
-5\xcb\xb2\xac\xaf]p\xc1\x05\xacX\xb1\x82G\x1f}\
-\xd4\xb7\xab^\x10\xe9QJ\x8a\xa20<<L4\x1a\
-=\x22^\xeb\xb0\x00\xf1\xbe\xccs\xf5N;\xed4_\
--\x8d\xb7\x1fB\x08z{{\xfd?\x1f8p\xc0\xf3\
-\xbc\xd2\xfb\xf7\xef\xff\xab\xb1\xe8\x95P(\xf4\xf8\x89'\
-\x9e\xa8~\xf1\x8b_\xe4s\x9f\xfb\x1c\xa6iV\xf2)\
-\xaa\x8d\x10\x10\xd0\x228\xae\x8da\x9add\x8a\xaeL\
-\xe2\x10\x85!\xf0w\xe6\xdb-\x8f\x85\x05x#\xbf\x9f\
-\xebO\xaf\xc1\xb2s\x94Z\x06\xa9\xd6\xc2\x08GE\x1a\
-*\xc5=Q\xf2\xdbb *;=\x95J\xf9\xd7(\
-\x95J\xa4R\xa9\x09\xcf\x98N\xa7\x7f\x01\x9c\xb8j\xd5\
-\xaa\xaf\xddy\xe7\x9d\xe8\xba\x8ea\x18tuu\xb1t\
-\xe9R~\xf9\xcb_\xf2\xbe\xf7\xbd\x8f-[\xb6\xb0g\
-\xcf\x1e.\xbd\xf4R\x86\x86\x86X\xbbv\xad\xbf\xa9\x17\
-,X\xf0fkk\xeb\xaal6\xbb\xe5\x98%\xc43\
-p\x93'Ofhh\xc8\xb7\x15\xdeM\xbb\xae\xeb\xff\
-\xf2x\xac\xb1\x07|B\xd7\xf5\xbd\xc3\xc3\xc3\xafz\xdf\
-\xd9\xd2\xd2\x22\x9f{\xee9^|\xf1E\x96/_\xce\
-\x86\x0d\x1b*\xbb,\xe42\xb4\xce\xe2\xf9\xf8\xd3\xc8\xc8\
-(\xfd\xca\x1b\x18V\x89\xaa\x1a\x9d\x83C\x06\x85\xa2\xed\
-\xdfS,\x16;w\xf1\xe2\xc5_\x02\x84a\x18v[\
-[\xdbW<\xbe\xc9\xf7\x8e\x85D\x22Y \xaeg\xc5\
-{N!m\xf6\xb3a\xdfkdB\xfb)\x06l,\
-\xcbD\x22\xd14\xcd'2]\xd7\x95\xaa\xaa\x0a\xc7q\
-\x88\xc7\xe3$\x12\x89\xf1\xe8+CCC\xec\xde\xbd\x9b\
-\xe6\xe6f<\x97z\xe3\xc6\x8d\x00\xbc\xf6\xdak\x94\xcb\
-et]\xe7\xb5\xd7^\xa3\xa1\xa1\xc1\xbf_\xc30\xa8\
-\xa9\xa9\x89Y\x96\xa5\x1f\xab\x97%m\xdbFUU\x1e\
-~\xf8a\xa6N\x9d\xca#\x8f<\xc2\xce\x9d;\x09\x85\
-B$\x93I\xa2\xd1(\x83\x83\x83\x04\x02\x01b\xb1\x18\
-###d2\x19\xd2\xe94mmmW\xbf\xdd.\
-~\xf6\xd9g\xa9\xad\xad%\x97\xcb\xf94E\xa9T\xa4\
-.\xb9\x08\x07\x0b\x91\xa9\xa1\xcf\x19\x224\xbd\x8c\x99\x0d\
-\xd0\xc8<&\xaf\xa8\xe4\xb5\xa5%@a\x95\x10\xac\x1a\
-\x8biJ\x1e \xe3%D\x00\x03\xfdy\xfe\xf3o>\
-\xce\xc7\x7f}6_>\xe7ij\xecy\xa85)\xbe\
-\xb5\xe9\xab\x18\x86\x09\xa2\xc2Yy*T\xd3418\
-8\xd8988\xb8M\x08\xe1\x06\x02\x81\xb5o\xdd\xa0\
-\xabW\xaf\xc6\xb6mB\xa1\xd0\x045t\xf0\xe0\xc1\x09\
-?\x1f8p\xc0\xb7!\x85B\xe1\x0f>\x7fT\x80(\
-\x8a2\xc7\xb2,TU\xa5T*Q,\x16\x99;w\
-.o\xbe\xf9&K\x96,axx\x98\xda\xdaZ\xb2\
-\xd9,\xe5r\x99H$\xc29\xe7\x9c\xc33\xcf<\xf3\
-G/\xaei\x1a_\xfa\xd2\x97|C\xe8\xc5\x0b\x05\xa5\
-L\xa9TB\xa4\x05B\x08v\xe8\xfbx\xef\x195\xd8\
-\xd6x\xcfJ\xe2\x18\x0a\x99\x17\xea0\x87\x03\x80\xfc\x03\
-\xb0}\x9aE\x07\xc7\x86\x80\xae\xa3)\x01\x10\x90\xc8\x0f\
-\xf2F\xff\x03HW\x8e\xa9\xc0\x8a\x94744\xf86\
-@Q\x94_g2\x99\xd5o\x17\x8ey\xae\xbc\xb7\xeb\
-\x0f3\xed\xed\x7f\xff\xb1\x022\xbd\xb6\xb6\xf6F\xc30\
-\xa4\xa6i\xe2\xee\xbb\xef\xa6\xb1\xb1\x91\xbd{\xf7\xe2\xba\
-.\x83\x83\x83\x18\x86A8\x1c\xa6P( \xa5dt\
-t\x94]\xbbv\xfdI\xee\xa9X,\xe6\xa5\x94\xde\xb5\
-\x83\xe1pXw\x1c\x07\xddRq\xdcC*G\x09\x09\
-,\xc7fE\xf4\x16\x16\xcf\x5c\xc0\x96\xe4\xe3\xe4\x92\x1a\
-\xbb\xdd\xe7p\xb4\x18\x96\x09\x129\xc1\xa6\xb8\xae+}\
-\x03\x1a\x12\xc4'\x85(\x18e\x02!\x95\x9a\xaaZL\
-\xa5\x88\x16\xd2@\xa9\x00\x22\x91\xbe\xfamnnfh\
-h\x88\xb7+M\x02\x08\x04\x02\xed\x1d\x1d\x1d\x8d\xf3\xe7\
-\xcf\x1f\x9a2e\x0a7\xdcp\x03\x8f=\xf6\x98o{\
-\xbc\x80\xd7\xdb`\x1e\xc3\xa1\xeb\xba\xcf\x8a\x1f+ \x11\
-!\x04\xb9\x5cN\xd4\xd7\xd73<<\xcc\xe0\xc0\x10 \
-\x10\x02\x1f\xf1r\xb9\xec\x07T\xde6\x8e\xc5b\xa2T\
-*\xbdm\xf4,\x84\xf0+\xe9f\xce\x9c\xf9\xa0\xaa\xaa\
-\x1f\xbe\xfc\xf2\xcb\xfd\x00\xec\x90+)I\x0d\x0a\xfe\xee\
-\xe6\x9b\xb9\xe9gK\xf9\x97\xb3\x1f\xa3\x18/0\xd3l\
-\xe6'\xbfy\x02\xc3\x90\x9e\x0d\x08]t\xd1E#\x80\
-\x14\x8e\xa8\xb3,\x89\xa2\xc0\x22;\xc2\xf0\xc3\x0a\xd7?\
-t-R\x09q\xfd\x7f]\x83e[\x04\xb5\x08\xdb[\
-{\xa9\x8a\xc4}J\xdd#?\xff\x18\x18\xe3\xf2\x222\
-\x16\x8b\xf1\xe2\x8b/\xb2q\xe3FZZZ\xd8\xbau\
-+\xe1p\x98\xf5\xeb\xd7\xfb61\x12\x89\xd0\xd2\xd2\xc2\
-\xae]\xbb\x18\x1d\x1d\xf5\x93t\xc7\xac\xb2\xa4\x94\xe8\xba\
-\xce\xbe}\xfb\x90\xae\xa4f\xb1N$\xac\x92\xeb\xb7)\
-\x0e9H\xf7m\xd5\x9c(\x97\xcb\x9d\x8a\xa2|\xf3\xed\
-\x9c\x84\xb7\xb0\x00\xfa\x07>\xf0\x01\xe6\xcc\x99\xc3\x07?\
-\xf8An\xbd\xf5V?\xcf \x10T\x05\xe3\xd8\xb2D\
-\xbc\xaa\x8a\xe6\xda\xa9<\xbf\xe3\xd7<\xd1w\x1f\xb6\xd5\
-\x88i\xb9P\xd9\xe1\xa2\xa6\xa6f\x92@\xd05m\x0f\
-\xa7]\x14\xc6\x18\xac\xd4U\xd9\x83\x01\x9c\xac\x06\x96\x8e\
-[RPu\x0dMS)\xe5Ml#\xe5%\xddd\
-4\x1a\x15###\x84B\xa1w\xe4\xf8\x1c\xc7\xe1\x95\
-W^!\x1e\x8f\xe3\xba.\xfd\xfd\xfd~\xa2\xcaK\xc8\
-y\xeco]]\x1d\x03\x03\x03h\x9a\xe6\x05\x91\xb1\xe3\
-\x02\xc8\xec\xd9\xb3+\x14@\xb2\x22\x9aQ)\x89\xd4\xcb\
-\x09\xa5;\x9e\x975\xb6\xe3z\x06\x06\x06\xfe\xebp\xe9\
-\x8d\xb9s\xe7\xfaQ\xed!u'\xb0]\x13Eh\x80\
-\xa0d\x15\xd1T\x8d\xa0\x16\xc5q\x5cL\xd3\xf2\x839\
-\xcb\xb2(8ej\xa7)H[%Z\x1fF\x99b\
-a\xccO\xf8\x9b`\xe0\xa1IH[\xf1=A\x8f[\
-SUUtuu=\xe0\xed\x11]\xd7\x7f\xfd\xa7\xee\
-\xd7u]>\xf9\xc9O\xfa\xdf3~\xed\xdbw(\x7f\
-\xd6\xdf\xdf\xef{\xa1\xf1x\x1c\xc7q\xa8\xaa\xaa\xfar\
-:\x9d~\xe1\x98\x00Y\xb1b\x05\x97]v\x19g\x9f\
-}6\xdf\xfb\xde\xf7hmm\xe5\xe4\x93O\xe6\xf5\xd7\
-_g\xee\xdc\xb9d2\x19Z[[\x09\x87\xc3\xcc\x9c\
-9\x937\xdex\xe3\xb0)\xf2@ \xc0\x0b/\xbc\xc0\
-\xde\xbd{\xe9\xed\xed\xf5\x19T!\x04\x85\xd6\x1cCF\
-#\xff\xeb\xa5[\x18\xcc\xea|\xea\xb1O`\x186y\
-'\x8e]\x14D\x22\x87\xa4\xae\xa2\x1e%\xca\xeb\x939\
-\xf8\x86\xe0\xc1\x07~\xc4\xfe\x9e.~\xbb\xf7\xa7\xfc\xed\
-\xaa\x8fr\xf7\xba[1M\x0bi\x1f\x02B\xd7u\x9f\
-J\x1f\x19\x19\xf9\xc8\xe1\xdes>\x9f'\x12\x89\x1c\x02\
-\xc3\x01\xcbt\xc7\xee\x05\x84*P\xd41m0\xf6\x91\
-\xd1\xd1Q_=\x1e\x8b\x84\xb8\xde.\x88\xc7\xe3\x84\xc3\
-a\x9ft\x0b\x04\x02,]\xba\x94\xee\xeen\xaa\xab\xab\
-}\xa3\xa5\xeb\xfa;^\xf4-*+\xa0(\x0a\x07\x0f\
-\x1e\xf4\x8a\x06d\xb9\x5c\x16\x00\xe5b\x91i+f\x92\
-\xcb\xe5\x88iu\xa4g\x1c\xa0iF\x80\xaa\xb4\x8e\x93\
-\x1d\xfb\x95\xd6ps\x1ab\xecI\xc2\xe10\xe9T\x9a\
-\xf5=\xcf\xb2\xe9\xcd..>\xf9\x06\x1ac\xd3\x11(\
-\x95X\xc7\xaaH\xd4\xbcy\xf3\xfcl\xe6\xe1\x12\x95\x00\
-555#\x1d\x1d\x1dM\xa7\x9cr\xca@*\x95B\
-Hpg\x0b\x96_YC~\xc0\xa18l\x93\x1bp\
-(\x0e\xd9\x18\x19\x17\xcf$y\xef\xf0O\xd9\xa8w\x04\
-$\x1a\x8d.\x07\xd8\xb6m\x1b\x89D\x82\xe1\xe1a\x8a\
-\xc5J\xe9\xce\xee\xdd\xbb\xfd\xc0\xd0\x03\xcdu]^~\
-\xf9\xe5#J&%\x93\xc9/\x0e\x0d\x0d}w\xcc\x8d\
-\x9c\xbe`\xc1\x82\x87\x0fy#\x95\x0a\x96r\xb9L\xca\
-\xcd1u\xae\x89\xa8\xb2i\x9c\xd6D\xd9\xcdQr\x12\
-(\x0a\xd8y\x95\xe1\x9fN\xf6\x1f\x5cJ\x89W\xb2\x9e\
-)\x8d\x925\x12\x08EL\x00$\x93\xc9p\xf5\xd5W\
-\xf3\xf4\xd3O\xfb1\xc8\xe1\xacL&\x83\xae\xebR\xd3\
-4\x9a\x9a\x9a*6\xa2\x7f\x80\x8e\x07\x15,\xc7E(\
-:\xae\xab\xa2\x11@\x09\xbb~N\xc4S\xe5\xc7\x04\x88\
-\xae\xeb\x7f\xe3e\xf8\xfa\xfa\xfa\xfc\xa4\xcc\xf8\xdf\x8fu\
-\x15\x0a\x85\xbd\xc0\xde\xb1\x1f\xe7{\x8c\x80\x10\x02\xa5P\
-y\x89\xa6ab+\x0e\xaa\xaa\xd0\xa2\xae\xe2\xefV\xde\
-JM\xa0\x9e\x0f|\xef|n\xbb\xeaV~\xb1\xfe\xfb\
-\x13\xe8s\xdb\xb1Y0\xe94\x92ST\x06r\xdd\x04\
-\xd5\xd3QP0\xcd2\xaeU\x89\x832\x99\x0cO?\
-\xfd\xb4\xef\x96\x1e\xe9R\x14\x85\x07\x1ex\x80\xe1\xe1a\
-\x84\x10<\xfe\xf8\xe3\xc4\xe3q:;;innf\
-\xcb\x96-\xcc\x9a5\x0b\xc7q\xd8\xb7o\x1f\xcd\xcd\xcd\
-ttt\x1c\x1b\x97%\xa5Tc\xb1\x18{\xf6\xecA\
-\x08A\xf4|\x9d\x15\x17\xd5 \x01#'I\xee5\x18\
-m\xb7\xc8t\x98\x98\x85C\xf9\x90\x9a\x9a\x9a\x11\xe0}\
-G[\xa6\xfa\xd3\x9f\xfe\x94B\xa1\xc0\xe7?\xffy\xbf\
-0\xc1RM\x84\x90\x9c<\xe5l~\xd7\xfe\x00\xa9\xce\
-\x06\xaeX\xf8\xb7\xcc\xa8Y\x84\xedT\xaa`<\x09\xe9\
-\xee\xee\xe6k\xff\xfb\xbb\x95\xc4V)\xc5\xc6\x9f\xec\xe2\
-\xc0 dSy\x8f\x02\x92\x8a\xa2\x08\xaf\x8e\xea\x9dv\
-\xed\xdb\xd9U\x8f]\x9e?\x7f>]]]\x8c\x8c\x8c\
-x\xcf\xce\xc9'\x9f\xcc\xe6\xcd\x9b\x19\x19\x19a\xd1\xa2\
-E\xa4R)FGG\xd14\xed\xd8$\xc4\x8b\xaa=\
-\xef\xc9\xd9\xa9\xf1fG\x96|\xbf\x83U\x94(\x9e\xf1\
-RUTU\xfa\xb9\x91@ \xe0\x0e\x0c\x0c\x1cU\xd3\
-\xca\xbcy\xf3hnnftt\x94\xe6\xe6\xe6J\x85\
-\xbde\xe2\xe0\x00\x02M\x09`K\x0b\xdb\xb1\x18H\x0f\
-\xd3\x95\x0e\xa3\x09\xdd\x8f_4M\x03\xcd\xa1\xa4\xa6p\
-\xb2\x1a\x8a\xd4\xc9\xe6\xb2\xc4\xf48\xb9\x5c\x07\x8a\xa2\xa0\
-\xeb\xba(\x14\x0a;7m\xda\xf4OB\x08UQ\x94\
-#.\x91TU\x95\xaf|\xe5+\xcc\x9f?\x9f\xcd\x9b\
-7\xa3\xeb:\x1d\x1d\x1d\xb8\xae\xcb\xab\xaf\xbe\x8a\xa6i\
-$\x93I\xda\xdb\xdb\xc7\x9b\x00\xa4\x945\xc7\x22!H\
-)\xf9\xd1\x8f~\xc4\xacY\xb3\xb8\xf7\xde{+e\x93\
-sJ~\x92\xaaX,\x22\xa5d\xd2\xa4Ituu\
-\x91\xc9d\x8e\xb8:dB\x85y[\x1b/\xbd\xf4\x12\
----\x1c8p\x80x<^I\xc3b\xa3k!\
-R\xc6 \xd3\xa7\xcc\xa3~Z\x1d\x9bz\xba\xa9\x8dL\
-\x1e\x8b\xba\x0f\xb9\xc0z\x5cR\xf7\xfe\x01F\x9e\xae\xc3\
-\xe8\xad\xd0+\x8e\xe3\xf8\xe5;c\xbf'\x8b\xc5\xe2\xf3\
-Gs\x8fc\x84\xab\xab\xeb\xba\xb2s\xe7\xceJ\x0b\x85\
-\x00UU\x90\x12b\x91\x18\x96kU\x1c,\x81\x1f\xab\
-\x8d\xd5x-8&\x09\x997o\x1e\xb3g\xcf\xe6\x84\
-\x13N`\xd9\xb2el\xdd\xba\x95e\xcb\x96\xf1\xe4\x93\
-Or\xf1\xc5\x17\xb3{\xf7n6l\xd8\xc0\x99g\x9e\
-Iss3\xcf>\xfb\xec\x9f\xa4\xc7\xdfiE\x22\x11\
-\xbe\xf5\xado!\x84`hh\xa8R\x01h\x98\xd8\xaa\
-\xcb\x86\xff\x1ed\x93\xf9U\xe65.\xc1\x95.;\xfa\
-6\xd1\xfah\x1b\x1d#\xbd\x14\x86\x0e\xbd,MSY\
-\xf7\xb5a\x8c\xd1Q\x9c\x92d\xc6\x8c\x19\xe8\xba\xce\xd1\
-\xaa\xa8\xb7\xf1\x0c\x87v\xee\xdcy\xf1\xacY\xb3^(\
-\x95J\xb8*L\xbd!\xca\xc9\xcbc\xd8\x8eCSx\
-\x1e\xc3F;\x8e\xe1r\xf0\xd5\x12\xfb\x9e\xc8\xa3\xa8\x15\
-\xa7'\xe2\xf9\xeaG\x0bHgg'\xbf\xfc\xe5/9\
-\xe5\x94Sx\xe5\x95W\xc8\xe5r\xf4\xf4\xf4`\x18\x06\
-O>\xf9\xa4_\x99\xf1\x9b\xdf\xfc\x86@ \xe0\xa7>\
-\x8fr\x8d\x0e\x0d\x0d}C\xd7uk\xec\xc1?\x98J\
-\xa5f\xe4\xf3y,S2+<\x83\x193\xa6W\xa4\
-T\x1a,\xbb~\x16U\x912\x0d\xc3'c\x0d\x06q\
-F+i'\xa1HP$L\x83\x5c.\xc7\xc8\xc8\x08\
-\xd1h\x94x<\xcei\xa7\x9d\xc6\xcb/\xbf|\x5c\x1c\
-\x12?\xcd+\xa1\xd4j\xb3c\x7f\x8e|\xaf\x83ml\
-\xc4.J\xecr\xa5?Q\x0fh\xbe#p\xac\xd4I\
-4\x1a\x8d\xf2\xf4\xd3O\xf3\xc4\xe3O\x1c\xf2F\x84\xc7\
-I)~O\x8bP*\x89\xac\xea\xeaji\xdb\xf6\xd1\
-\xea\xac\x91\xde\xde\xde\xff\xed\xfdP__\xbf\x5cQ\x94\
-\x19\xaa\xa2\x80\x03\xae\xe3\x92\xcf\xe7\x11\xc0f\xab\x8dK\
-Z\xa2\xb8J\x8e\xe0\xd4\x22\x8a,\xa1j\x0avZ\xa7\
-\xbc/F~[\xd4g\x01\xbc\xea\xc1|>_\xc9\xe5\
-\x8b\xe3\xd31gY\x16\xb7\xdcr\x0b\x00/\xae}\x11\
-QV\xd0\xb4\x02B\x17\x18\xba\x81\xac\x96~l\x94H\
-$\x0e+k\xa8\xbd\x83A\xaf\xf7\x92\xf9\xae\x0a\x93\xe6\
-\x05\xd0u\x81\xb4u\xe6N^HGj\x07(PN\
-9\xa4\xbb|\x1d.l\xdb\xee\xe0\xf8,%\x10\x080\
-}\xe1\xc2JF\xcf\x1a\xa3\xd6\xbd\x88X\x11\xac\xac\xbe\
-\x85\xf7\x9d~-;\x86_\xe6\x85-/\xa15\x0f\xd3\
-\xd67\xe0\x13\x85^\xc2\xca\x8b\x05\xd6\xaf_\xef\xf1U\
-\xc7\xbc\xce>\xfbl.\xb8\xe0\x02\xe6\xcc\x99C\xa1P\
-\xa0\xb7\xb7\x97\x8b/\xbe\x98\xc7\x1f\x7f\x9c\xf3\xce;\x8f\
-b\xb1\xc8\xab\xaf\xbe\xca\xfc\xf9\xf3\x89\xc5b<\xf5\xd4\
-S~\x09\xeeQ\x01\xa2(\x8a\xa8\xaf\xaf\xa7\x90/`\
-E$K?RGu\x8d\x86t%\xc9\xb6~\xea\xf6\
-U1\xbc\xdd\xc0\x1au\x88\xc5\x82\xbe'144\xf4\
-\xe6\xf1x`\xd7u\xb9\xfd\xf6\xdb\xa9\xae\xae\xe6\x8a+\
-\xae\xe0\xa2\x8b.\xaa\xe4 $\x10\x82L\xba\xc4eg\
-\x5c\xcf-\xbf<\x93\x9f\xff\xcd.N\x08-%\xe1\xec\
-g\xf7\xfa;0\x0c\xcd\x0fZ\xcb\xe52\xd1h\x94`\
-0xX\xae\xe7\xe1\xaem\xdb\xb61u\xeaT\x06\x06\
-\x06PU\x95\xda\xdaZv\xec\xd8\x81\x10\x82\x8e\x8e\x0e\
-\xbf\x16x\xe7\xce\x9d\xac\x5c\xb9\xf2\xd8\xe9w\x8f{)\
-\x95K\xe8\x8e\xce\x9bw\xa7\x91\x16X\xc5C9t\xa1\
-L\xd4\x8dGB\x9b\x1c\xce2M\x93\xfa\xfaz\xbf\xe2\
-\xdc\xb2\xacJ'o\x08\x0c\xc3%\x14\x0c\xe0R\xa9?\
-\xeb\x1e:\xc8\xc6\xfcc(\xa8\x13\x92G\x1e\xf7\xd4\xd6\
-\xd66\xb7X,\x8e\x00\xb2\xa1\xa1\xc18\x1e6\xe4\xea\
-\xab\xafF\xd3\xb4?HV\xb5\xb7\xb7\xfb\xc4\xa2\x94\x92\
-_\xfc\xe2\x17\x95\xf7u\xac\xf4\xfb%\x97\x5c\xc2\x87>\
-\xf4!\x5c\xd7\xe5\xc9'\x9f\xa4\xab\xab\x8bh4\xca\xc1\
-\x83\x07\x89\xc5bTUUq\xe0\xc0\x01r\xb9\x1c\x8d\
-\x8d\x8d\xf4\xf4\xf4\x1c\xb7\x1d(\x84\xe0\x87?\xfc!\xcb\
-\x96-\xe3?\xfe\xe3?\x0e\x05\x7f\x08\xa4\x0b\xf1x\x88\
-d&MM\xa0\xbe\xe2VJ\x9b\x80\x88 ]\x89e\
-\xd9~\xad\x98W\xd6\xa9\xebz\xceu\xdd\x0cpD\xfc\
-\xd5\x1f\x91^s|\xbe\xc7\x09@u\x5c\xc5q]&\
-\x87gPr\xd3\x14\xac,BH\x8c\xac\x8b[\x92~\
-\xf6\xf0\xa8\x01\x19k\xc0\xa4\xb5\xb5\x95\x1bn\xb8\x81m\
-\xdb\xb6Q*\x95\xa8\xab\xabc\xd9\xb2el\xdc\xb8\x91\
-`0H8\x1c&\x93\xc9\x1c\xf7\xb6f)\xa5[U\
-U%w\xec\xd8Q)Y\xf0JP%H!\x89E\
-\xc2<\xbe\xfb~\xbeu\xe5o\xf8\xcd\xfe\x87x\xa9\xe3\
-e\xce:\xe9t^s7b\x18\xa6\xcf\xe8zT\x8c\
-m\xdb\xb3\xea\xeb\xeb\x03\xa3\xa3\xa3=\xc7zo\xb6m\
-\xb7\x09!*\xc5\x82\x08F\x96H\xfe\xee\xf6f$.\
-Q3BP\x0frp\xb8\x80U\x90\xbc~W\x0a\xe9\
-T4\xce1\xb9\xbdB\x08\xbe\xf9\xcdor\xfb\xed\xb7\
-\xf3\xc9O~\x92\xb6\xb66\x5c\xd7\x9d\xd0_8\xd6\x9f\
-\x8d\x94\x92\x9e\x9e\x9e\xe3\x0aH*\x95\xba\xe8\xf9\xe7\x9f\
-\xa7\xa5\xa5\xa5}\xce\x9c9\xb3\xb3\xd9l\xa5nX(\
-\x14j$%3\xca~\xf9\x1c\xdfyVg\xd5\xe9\xa7\
-\x90Pv\xf0\xcc\xbe]\x0c\xb5\xe5H\xa5*\x01k(\
-\x14\xa2\xa5\xa5\x85R\xa9\xc4\xb5\xd7^\xfbz[[\xdb\
-\x86u\xeb\xd6\xad<\x1e\x0e\x87\xef\xfa\x0a\x85\xba\x83\x92\
-}O\x15\x18\xdan\x90\xef\xdb8A5\xa9B\x03\x8d\
-\xb7\xcd\x9f\x1c\xb1\x0d\x89\xc7\xe3\xdcw\xdf}~\xc2\xc8\
-+4\x00\xd05\x1d];\xe4\x0a{\xe5\xa3\xfb\xf7\xef\
-\x9fq<\xed\x88W-\xef\xbd\x00\x81@5\x5c\xb40\
-\xe4{\xe1\xf5\xce\x9f\xf3\xe4O~LyDb\x95\x5c\
-\xcai\xd7\x8f\x85TU%\x9dN\x13\x0a\x85\x18\x19\x19\
-9\xa2^\x8d\xc3!\x18/\xbc\xf0Bn\xbc\xf1F\xbe\
-\xf5\xado\xa1\xf6\xa9\x10\xcc\xd18\x1b\xbf\x7f\xbf\x5c.\
-SUUE*\x95\xc2\xeb\x8b?j@b\xb1\x98\xdc\
-\xb4iS\xa5\x92#\x06\x0b\xcf\x8f\xa1\x07\x04J\xa9\x9e\
-\x0b\x16_\xca\xef:\x1fA\x0b\xa8\x8c\xee3\x19\xd8\x5c\
-\xf6\x12NR\xd7\xf5)\xc7\x13\x10\xd7u\x1d/i\xa5\
-\xaa*\x8b\x17/\xa6\xb3\xbd\x83\xd7\xfe\xa9\x5c\xd9\x1b\x0a\
-\xa0T(\x12\xe1\xba\x84B\xd2\xa7*\xbc\x11\x18c=\
-\x7f\xc7\xb5\x91\xb4X,\xf2\xe9O\x7f\x9aT*\xc5'\
-?\xf9I\x1ez\xe8!N_y:\xdd\xdd\xdd\xcc\x9b\
-7\x8f\xdf\xfe\xf6\xb7\xac\x5c\xb9\x12]\xd7\xc9f\xb3\xec\
-\xd8\xb1\xc3\xaf\x9a?*@BcOf\xdb6\xb2\xda\
-e\xc695h\x08\xac\xb2\xc1\xeb#?C\xb5\xc3$\
-Z\x0d\x92\xfb+\xc1\xcf\x98\xdb+\x86\x87\x87\x8f\xc9\xaa\
-\xc7\xe3\xf1\x96\xb9s\xe7\x1e\x08\x04\x02\x15OOQq\
-\x84M\xa9T\xe2\xdb\xdf\xfe6MMM$\x12\x09~\
-\xf7\xbb\xdf\xf9\x05\x04\x00###L\x9d:\x95d2\
-\xc9\xc8\xc8\x08\xaa\xaa\x92L&\x09\x85B\x94\xcbe\x02\
-\x81\xc0q\x05$\x14\x0a\xb1c\xc7\x0ef\xcf\x9e\xcd\x0b\
-/\xbc\xe0\xf7\xd0\x8c\x8e\x8e\xfa\x95\x90\x83\x83\x83\xc4\xe3\
-q\xbfx\xf0\x9dX\x8cw\xb4!\x9e\x1b[\x9d\x83\x0d\
-wd\xdf2\xaa\xa8\xa2F\x82\x11}\x82\x18\x1f\x87\x9d\
-\x17\x98={6\xb6m\xa3\x0a\x95Vu?g\xdd\x10\
-d\xfd\x7f8\xbe+<o\xde<\x1e{\xec1\x9a\x9b\
-\x9b\xa9\xad\xade\xde\xbcy\xdcs\xcf=h\x9a\xc6\xc2\
-\x85\x0b\xd1u\x9d_\xff\xfa\xd7~V\xd0\xab^?\x9e\
-\x80\x84\xc3a\xbe\xfa\xd5\xafNPC\xad\xad\xad\x00\xec\
-\xdf\xbf\xdf\xa7\xe8\xc7\xab\xdec\x02DJ\xc9?\xfe\xe3\
-?2w\xee\x5cjkky\xe2\x89'8x\xf0 \
-\x9a\xa6\xf9\x85\xd4s\xe7\xce\xa5\xbd\xbd\x9dD\x22As\
-s3\x07\x0e\x1c8.\xee\xae\xd7h\xa3\x09\x95L<\
-\x03r2\x91H\x84\xaf\x7f\xfd\xeb\x9cz\xea\xa9~\xed\
-\x97\xc7$\xe8\xbaN\xb1Xd\xd7\xae]~O\xbc\xe7\
-\xf7\x8f\xa7,\x8e\x17 \xf1x\xfc\x1b^@\x08 \x15\
-\x89\xa6\x09\x5c\x17\xa2\xa1(\x05#Wi\x10\x12\xe0\xda\
-\x87\x18\xdfw\xba\xbe\xf6N\x5c\xcd\xfc\xf9\xf3\xc9\xe5r\
-\x5cz\xe9\xa5\xfc\xfe\xf7\xbfg\xce\x9c9\xd4\xd7\xd73\
-s\xe6L\x1ez\xe8!t]g\xd2\xa4Ix\xcd\xa0\
-\xc7\xc3\xcb\x1a?\xa1GR)B(\x17%\xf9\xb4A\
-DSY\xbb\xb6R\xdd\xa9\xabA\x14\xadR#\xe65\
-\x00yv\xc2\x8b\xc8\xbd\xder/MkY\xd6\xa4P\
-(t\x9d\x10\x22\x00\x88\xba\xba\xbaW\xfb\xfa\xfa\xba\x8e\
-\xc2\xaeM\xaf\xaf\xaf\xaf\xd8\x04E\xa0\x9d\xafs\xe9\xb5\
-\x93(\x96\x0d.;\xf1f\xb6\x8c>Eb(I\xae\
-\xdfa\xc37\x93>\xcb\x1c\x8dF\x87\x8f\x1a\x90`0\
-\xc8\xbd\xf7\xde\xcb\xe7>\xf79>\xf6\xb1\x8f\xd1\xdf\xdf\
-\xef\x8b\xbd7\xdb$\x95JaY\x16\xa5R\xc9\xcf\x85\
-\xc8\xb1\xc8\xf0\xad\x0d4G\x0a\x88a\x188(\xa8\xaa\
-Bo\xa7\xc1\xdd\xf7~\x95o<\xfb/|\xe1\xfc/\
-\x13\x8f\xc4\xf9\x9f\xad_\xa4\xfd79\x8c\x11\xc5\xaf\xec\
-8\xe1\x84\x13hlld\xfb\xf6\xed\xd45Uq\xc2\
-\xccF\x96OZ\x86\xea\xea\x15\x07@0G\x22\x1f\xf3\
-\xd2\xd0?\xfc\xe1\x0f\xff\x06\xe8:\x8a{\x94\xe3U\xb4\
-\x18\x81\xe1]e\x12{-\xbe\xfa\xdd{I\xee\xb3p\
-M\x89\xa2\x0b\x14M\xf15\x8e\x10B9&\x1b\x92H\
-$\xb8\xfd\xf6\xdb\x0f\xeb&\xbd\x1eC!\xc4\xa2\xa6C\
-\x9e\x9f\xf6\x00\x00\x16VIDAT\xa6\xa6S\x06\x06\
-\x06\xb6\x1dC\xe0U\x01]*\xa8B\x05\x14\x96.;\
-\x85\x86\xb6*\x96\xaf8\x8d)\xb5M\xac)\xa9Tm\
-\x8c\xa0\xe4\x85\xaf\xd3g\xcc\x98\xe1y\x88L:\xdd\xa5\
-\xf9\xec4\xd2M\xe3\x00\xc6@\x00\xa3-B\xb93\x82\
-\x10\x15\xdeMU\xd5\xa3v@TUe\xe1\xc2\x85\x9c\
-t\xd2Il\xd8\xb0\x81\x815\x15\xa3\x1ep\x1c&7\
-\xba~\xac\xe6mbo\xb0\xdbQ\x032<<\xdc\xe5\
-\xba\xee\x5c\xaf\x80\xa0\xe9\xac0\x91\x88\x82\xb4u\xdew\
-\xd2-<\xb3\xef\x87\xd8\x18\xd8\x86\xe4\xc0\xef\x8b~\x0a\
-\xb5\xaa\xaa*R,\x16\xe3G\xf2pS\xa6Ly_\
-\xb1X\xbc\x10p\xa5\x94\xf1\xce\xce\xce\x8a\xee\x97\x82\xb2\
-a2\xd0S\xe2\xab\x89o\xb2\xa7m\x98;\xb6\xfd+\
-\xb1P5\x1b\x0e\x1e\xc4\xee\x8b\xa2XA\x7f\x07\xb6\xb6\
-\xb6\xfami\x81b3w^\xf4#6\xf6\xfe\x96\x1f\
-\xbc\xf8\x9f\xcc\x9cQ\xc7P9Ovw\xa5\xb6W\xd7\
-\xf5c\xa2\xe2\x83\xc1 \xdf\xfc\xe67\x89\xc5b45\
-5\xb1c\xc7\x0e\xce=\xf7\x5c\xd6\xacY\xc3\xca\x95+\
-ikkC\x08\xc1\xacY\xb3\xc8d2\xbc\xf2\xca+\
-\xc7\xc6\xf6Z\x96\xd5\x16\x0c\x06/\xf6\xf2\xd5\xd3/\x09\
-\x13\x8fk\xe4\xfam~3p\x1f\xb6\x22(\x0c8\xa4\
-\xbb\x0f\x19M]\xd7}7\xf4\x08I\xc4[\xaf\xbb\xee\
-\xba\xf3\xa5\x94\xb8H2U\xa34M\x0f\xe0f\xbc\xfa\
-+\x9dt\x22\xc7\xa9\x0d\xe7`\x16m\x92\xc5$\xa77\
-]\xc9\xb3[\x9f!\x18t|\x09U\x14\x05\xe9J\xa4\
-%\xb8v\xf9\x87\xf8\xef\x0d\xff\xca\xf2\xd8\x87X\xd9p\
-#+\x17,\xe0;\xad_\x99\xd0\xfb~\xb4\x80H)\
-\x9d\xf1\x05\xe5\x9e\x93\xe3\xb9\xd9^\xc7Yww7\x81\
-@\x80\xda\xdaZ\x7f\x9c\xd3\xb1\x90\x8b\x0a@uu5\
-\xb6m\xb3\xe3kE\xac\x9cDh \x14\x10\xaaW\x81\
-\xa1\xa2i\x87\x22\xe3\xa3\x1c\xab\xa4'\x93I\x5c\xd7%\
-c\x17\x99sE\x06[\xad\xa8})ltM\x85\xa4\
-\x82q J\xfe\x8d\xb1\xe10c\xde\xd4\xf8\x12\xa0H\
-8L2\x98\xe3\xcc\x8fE8\xff\xfc\x0b\xf8\xd1\xce\xe7\
-\x18J\x8d\xb0\xb7\x7f'\xc5\x9a\xed\xa8Tjl\x85z\
-t\xe3\x93\x00\x1a\x1b\x1bO\x94R\xae\x08\x85B\x5cs\
-\xcd5\xc4b1\x7f\x13n\xdd\xba\x15EQ\xd8\xb3g\
-\x8f_\xf4100\xe0\x17\x18\x1e+ \x9c|\xf2\xc9\
-|\xe9K_\xc2\xb6m\x1e~\xf8a\x0e\x1c80a\
-\x8eG<\x1egpp\xd0\x8fF\xbd\xc14G\x9b\x81\
-s]\x17\xcb\xb1Q\x84B\xba'\xcc#\x7f\xff;\xfa\
-\x0b\xfb\xb9\xe3\xb7\x7f\xc7\xec\xc6yt\x96\xdb0\xca!\
-\x14\xfd\xd0D7\xdf\xf5\xf4\x8a\xf6\x14\x85@@\xc7\xb2\
-\x0c4%\x88\xaah\x04\xb4 !\xadB\x85\x1b\xa6\x81\
-\xa2\x8a\xa3\x9e\xc7U*\x95Z\x9a\x9b\x9b\xc3\x85B\x81\
-\xaa\xaa*\x9f2\x1a\xbf\xfeX\xb1\xa0\x170\x1e5 \
-+V\xac`\xf7\xee\xdd\xfc\xf5_\xff5g\x9cq\x06\
-B\x08\x22\x91J\x1b\xb1\x97\x0e-\x16\x8b\x0c\x0f\x0f\xd3\
-\xdc\xdc\xcc\xe0\xe0\xa0o\x97\x8f\xf4A\xbd\xb9\x8d\x16\x15\
-U\xb0z\xd5\xbf\xf2\xf3=_'y\xa0\x9a\x05\xdaU\
-\xdcr\xc6\xdf\xf3\x99\x9e\xf7W\x5c\x5c\xa7\xa2r\x82\xc1\
-\xa0?\xdb\xd1u]\x0c\xd3\xc4*\x18d\xd7,\xe6\x8b\
-\xbf\xfa\x22\x8e\xb4\xd9\xcb\xe3\x94\x0d\x8b\xcc\xcb\x02\xe4\x0c\
-f\xcf\x96 *\xb9\x8a\xcb/\xbf\xfc\x7f\x84\x10\xdf\x07\
-\xd8\xbcys\xc7\xde\xbd{\x97\x1c\xae'\x98N\xa7+\
-\x1d\xc4\x01\xb8\xe4\xdf\x1aPT\x01\xa84\xd7\x9f@\x7f\
-\xea\x00\xa3\xfbL\x0e\xbcX$\xd5^\x91\xe0\xaa\xaa*\
-\xf2\xf9\xfc\xfd\xc7\x14\x18\xfe\xfc\xe7?\xe7\x03\x1f\xf8\x00\
-w\xdf}7\xeb\xd7\xaf\xf7\xfd\xfd|>\xef\xd3%\xa9\
-TjB\xaaTJIcc\xe3\x97\x14E\xb9\xa5\xaf\
-\xaf\xef\xc0\x91J\x88\x83\x83\x22U\xa6\xd4Ma\xff@\
-\x91\xa2\x05\x1d\xc3\xfbyr\xef}\xd8\xb6\x85eUt\
-\xa9i\x9a\x04\x83AN=\xf5T\xf6\xee\xddK\x22\x91\
- \x9dNc\xba&V\xd9\xc60*S\x91v\xd7n\
-\xe6\x9ckc8\xb9\xca\x1cE7\x13\xc4\xc9j8\x19\
-\x0dk \x18@\xfa3\x15\x83G`C\xd0\xf5J=\
-\x98\xee*\x0cl6)\x0e;\x14\x86\x1c^\x1dHP\
-N\xb9\x95\xba5M\xf8\xb5\x08c6\xcb>&\x1b\xe2\
-\xba.\x0f<\xf0\xc0\xa1\x1b\xf1\x02M\x01\x99t\x06\xcf\
-\xad\x16\xa2\xc2\xdbxc\xfd\xe6\xcc\x99sQ&\x93\xa9\
-\x07\xfe( \xf3\xe6\xcd{\x8f\xae\xebBQ\x14gx\
-x8V.U&{Z\x8aM\xbe?\xc0\xae]\xbb\
-H\xe4\x0a\xa4\x07l\xb2\x89,\xa3\x07\x8b\xe4\x07-L\
-K\xa2\xc8\x0a\x80\x86a\xd0\xdc\xdc\xcc\x8e\x1d;P\x94\
-J\xeb\xb4#\x0fM\x1e2\x5c\x8bp-(\x8e\xc6\xb4\
-\xfa\x05\xc4gT\xb1sp\x03u\x91\xc9d\xe5\x10\x03\
-\x0f6\xe0\x14\x0e\xa9\xbc#I/WUU\xb1z\xf5\
-j\xf6\xec\xd9\xc3\x81}\x07\x08\x18eT\xc7!V\xef\
-b\xd7\xd8\xfe\x98\x0e/n\xf3\xbc\xbfc\x89C\xfe\xfb\
-\xe0\xc1\x83\x17\xdb\xb6=S\x08A1&9\xf5\xf2j\
-\xf4\x80\xa00R\xc5\xfb\xcf\xb8\x9eg\xf6\xfd\x00M\xd5\
-\x19\xdan0\xb8\xb5\x84P\x84?\xed\xe7\x1d\x1e\xb0\xe1\
-\xb4\xd3N\xdb\xac\xaa\xaa\x10B \x91P[\x82l\x10\
-\xe1\xa8\xb0\x11\x9e\xd8\xf8\xd4!\xde\x88\x1av\x1c\x18d\
-\xf4`\x0cG\xe6\xb0M\xe9\x1bs\xaf\x16\xcc\x9b\xec\xe6\
-\x9a\xae\xdfjmI\x07EU\xe8\xdeo\xf3\x95[\xbf\
-\xc2\x0f\xd6~\x97KZn\xe1\x8a%\x1f\xe4S\xcf_\
-\x80eZ\xd8\xa6sD\x80xi\xd9o\x7f\xfb\xdb$\
-\x12\x09n\xbe\xf9f\x9e{\xee9\xbfr\xb1\xbd\xbd\x9d\
-e\xcb\x96\x11\x0e\x87\xd9\xb6m\x1b\xdb\xb6mc\xe9\xd2\
-\xa5l\xd8\xb0\xe1\x1d\xbf\xfbO\x02\x92\xcb\xe5\xb667\
-7\x0f\x1b\x861S\x08\x81\xa1;\xb4\x9cW\x8d\x9d\x92\
-\xa4;\x0c\x1e\xfd\xed\x03\x14\x07\x04V\xd1\xa2\x9c\x92\x84\
-\xc2!\xdf\xf5}\xa7\xf60@/\x97\xcb\xc2\xb6m\x10\
-\xb05\xb2\x8b\xf7\x9e_\x87+]\x1c\xc3E\xb1\x83H\
-K\xc1\xc9\xab\xe4^\xab\xc1)\xaa>\xb1\x98L&\xfd\
-\xe0\xd1\xa3G\x5c\xd7\xa5\xb3\xb3S\xbe\xf1\xc6\x1b\xe2\xd1\
-G\x1fe\xdb\xb6m\x15\xc7C:\xa8\x9a\xc2\x09\xd5K\
-8\x98\xdf\xcdH\xf9 \xff\xeb\xc4\xdb\x09j!B\xa1\
- \x96cc\x99\xbe\x1azGDjjj>q\xde\
-y\xe7}\xa3\xb5\xb5\x95G\x1ey\x84/\x7f\xf9\xcb\xf4\
-\xf5\xf5\xb1w\xef^r\xb9\x9cO\xd3\xac]\xbb\x96\x99\
-3g\xd2\xd3\xd3\x83\xe38\x8c\x8e\x8e\x1e\x9f\xc1\x01\x95\
-\x0d!8\xe9\xa4\x93\xe8\xee\xeaf\xe3\xe7\xcaH{\xcc\
-!\x16\x1a\x08\x15\xe98\x84B\xba\xffr\xbc\x12\xfcw\
-\xba\x01\xbf<\x07I\xa0\xae\xd2\xd9t\xd6\xa4\x0f\xd32\
-\xb9\x85\xa7;\xbe\xc7\xcc\xaaS\xd8\x9a\xfa\x0d\xf6\xc60\
-\xb6u\xa8\x8ad|\x1bD\xa1P\xb8c\xff\xfe\xfd\xff\
->i\xd2\xa4\x81\x91\x91\x91\xc6\xb5k\xd7\xb2h\xd1\x22\
-6n\xdcX\xe9\xc8R]\x92\xbf/\xd3;u\x90{\
-6?@2\x97\xe0\x0b\xbf\xfb\x12\xaa\xa2\xd2\x9d\x05+\
-\x7fH2&O\x9e|\xc2\xb4i\xd3^\x05T\xc7q\
-\xd8\xb9s\xe7u\xc9d\xb2\xe7-lD\xad\xa2(\x9a\
-\x94\x92M\x9b6q\xd1E\x17\xf9\xe4\xe6[\xd7\xfe\xfd\
-\xfb}\x82s\xeb\xd6\xad\xc4\xe3\xf1c\x07\xc4\xb2,n\
-\xbd\xf5V\xce;\xef<\x0c\xc3\xe0\xb1\xc7\x1e\xf3\x07A\
-z\x9e\xd6\x9c9s\xd8\xbbw\xafO\x0d\x0c\x0c\x0cx\
-7\xb9p\xda\xb4i\xc9\xde\xde\xde\xb7\xe3\x8a\x1c\x8f\xaf\
-\x92\x02\x14E\xd0\xbd\xcf\xe6\xdb\x7fu\x13\xff\xf0\xe3+\
-\xf8\xe2\xc5\xdf'\x1en`t{'\x83\xd6\x08\x86\xe1\
-\xf8\x80{\xc4\xe1\xb8*I\xa9\xaa*\xb7\xdez+\x9f\
-\xff\xfc\xe7\xb9\xff\xfe\xfb\xfd\x09<\xb6p\xd1\x8a\x1a\xb1\
-\x13\xaa(e,\x0a\x96`d\xd9V\xe2\xb1\x10\x93F\
-\xc2\xd8\xf5A\xdc\xb2\x8a4\x14\xa4\xa9\x84\x91\xe2L/\
-\xf7\xfd\xe6\x9bo\x86\xdeN]\x8dO[+\xaaJ\xb8\
-J#\x10\x14\x87:\xa6\x04\xd8%\x17\xbb\xa4\xf86W\
-Q\x14J\xa5\x92e\x9af\xe2\x98\x00q\x1c\x87\xd9\xb3\
-g\x93L&9\xe5\x94S\x08\x85B\x9cr\xca)D\
-\xa3Q\xa2\xd1(?\xf9\xc9O\xa8\xa9\xa9\xe1\xcc3\xcf\
-$\x9dN\xb3n\xdd:\x02\x81\x00\xb6m\xf3\x9e\xf7\xbc\
-\xe7\xe1\xf6\xf6\xf6\x1f\xf7\xf6\xf6\xde4F66\x01\xab\
-\x01\xd3u\xdd\xea\xde\xde\xdeJ\x012`Z&\xf9l\
-\x8c;\xef\xfc\x1a=\xedY\x1e\x1fz\x86L!\xc3+\
-}oR\xe8\x0a\x13\xd3k=\xb6\x94\xaa\xaa*r\xb9\
-\xdc\x84\xd1\x17B\x08\xda\xda\xda\xb8\xe9\xa6\x9b\xc8\xe5r\
-TUUUf\x09\x0b\x17\xdc\xb19\xed\xc0\x906\xc2\
-\xc2\x85\x01l\xcb\x84\xa6\x89#\x93\xb2\x9b\xc7*\x1e\x85\
-\xf4\x0b#\xfe\x18\xf1\xd9\xd0\xd00\xd6\x82\x00\xb5\xe7\x04\
-Y|Z\x8c\xa1\xedeF\xf7Y\x8c\xee6q\xed\xb7\
-u\x04\x0e\x0c\x0e\x0e\xdewL\x80D\x22\x11\xee\xbc\xf3\
-N\xce<\xf3L\xee\xb9\xe7\x1e\x8a\xc5\xe2\x84\xec\x97i\
-\x9a\xac]\xbb\x16\xdb\xaed\xf4\x82\xc1\xa0\xff\xef\xde\xf0\
-.o\x8d\x8c\x8c\xac\xba\xf2\xca+?\xefQ\xf4\x19\xb3\
-(kg;B&\xc3\xb8\xc9\x00\xd8\x92=ov2\
-YY\xc0\xa6\x8d\x95\xe9\xdc\xd3\xb4\xe5t\xba\x1d~\x8e\
-:\x12\x89\x10\x0c\x06\xfd\x91G\xe3\xa8\x97{\x86\x87\x87\
-\xab\x84\x10n\xb9\x5c^.\x84\xb8\xb8\x5c.\xe3(.\
-\xa1Px\xac\xe2Q\x80*1M\x87\x0f\xcc\xbc\x93\xee\
-\xec.N\x9a\xb5\x98\xffz\xee>\xec\xbav\x1c'\x82\
-eZ\xa0\xc8\xb7\x8d\xe2\x03\x81\xc0l)e\x9d7H\
-a\xd1\xa2E\x04\x02\x01\xfa^\xebe\xe7\xcb\x12I\x00\
-)ub\x91\x90\xafR\xbd_^a\xc81\xab,\xdb\
-\xb6\x83\x8a\xa2\xf0\xdak\xafU\xf4\xa1d\xc2d\x05!\
-\xc0\xb6\x1c\x84R1\xe6^.\xa2P(L\x18,\xec\
-=\x933nPrva\xa7\x98yF\x14\xcb5q\
-\x1c\x17%\x17\xab\xc4\x07\xde\xec\xdc1\xf7\xd2\x9b\x17,\
-\xa5\xf4\xe9\xfe\xfa\xfaz\x12\x89C\xd2\x9fL&\xbf\xe6\
-\x19\xfb\xc9\x93'\x7fL\xd3\xb4\x8b\xa5\x94\x08\x1b\xb0]\
-\xffP\x00\xcb4H\xec\x93T5W\xf3\xfc\x9b?\xc6\
-:\xf01\x16(g\x12SV\xf0X\xefO\xc9\x8d\x06\
-@Ho\xf0\xd8)\x81@\xa0^UUQ*\x95v\
-_r\xc9%\xed===X\x96%kkk\xc5?\
-\xff\xf3?\xb3x\xf1b\xee\xbd\xf7^\xf6\xed\xdb\xc7\xe2\
-\xc5\x8by\xf3\xcd7iii\xa1\xbf\xbf\x9ft:\xcd\
-\x94)S\x90R\xb2}\xfbv\xd2\xe9\xf4\xb1\x03r\xe0\
-\xc0\x81\xbf\xcb\xe5r\x9b\xd41~\x22\x1fr9\xff\x96\
-:\xcaY\x07\xbb$)\xa5\x5c\xd2]\x16\x99\x036\xee\
-8\xa0&M\x9a\xe4\xd1+U\xb1XlF>\x9f?\
-\x00\xb8\xe3wJ8\xa2a\x14%\x97\xcf\xfc'&\xd7\
-\xd5\xf2\xf3=\xdf V\xd7H\xa2\xf9\x00\xc9\xf5!_\
-\xf7:\x8eC:\x9dFJI8\x1c\xc6\xb2,\x06\x06\
-\x06\xbc\x06\x98\xb7\xf3\x1cTM\xd3X\xbdz5\xf9|\
-\x9e\x1f\xff\xf8\xc7~\x02\xad\xae\x5cEh\xeb\x1c\xee\xda\
-|\x17\xaa2\x87\xdf\x06\x9e \xa4\xebHCe\x8a\xb3\
-\x98\xa6\x13\xbd\x9d&\xb9\xfa\xea\xab\x7f\xeeU\x8e\xacY\
-\xb3f\xaaW\x13l\xdb\xb67\x8f\xd7\x1f6\xe3\xba.\
-\x93'Of\xfa\xf4\xe9\x94\xcbef\xcc\x98\xc1\xbau\
-\xeb\xfcd\xde\xce\x9d;\x8f\x8f\x97eY\xd6\xd6@ \
- =5\x13\x01v\xfe\xc0|Kn]'\xa4\xeb\xa0\
-\x1f\x8ab5M\xc3\xb2,\x1a\x1b\x1b\xffz\xc9\x92%\
-\x97\xbd\xf8\xe2\x8b_\xb5,\xeb\xe4\xbe\xbe\xbeCc\x9d\
-\xde(\xa0\xb5W\xb3\xeb\xc46\xbe\xb1\xf9\x19fN\x99\
-\x89\x1e\x9fB\xdb\xe0N\xf2C\xae_\x1c\xf0\x16\xd1/\
-wtt<4\x96\xf134M{\xe5\xedr)\xef\
-{\xdf\xfb\xa8\xaf\xaf\xe7\xb6\xdbn\xe3\xd1G\x1f\xf5S\
-\xba\xaet)\x9b\x15\xb5\xbb!\xdd\xca{o\x0dO\x18\
-3e\x0d\x070{\xc2\x98\x07\xc389\x8d\xf1\xb3T\
-\xbc*z/\xc6\xb9\xed\xb6\xdb\x08\x06\x83\x94J%\xa4\
-\x94|\xff\xfb\xdf\x9f\xd0\x7f\x22\xa5d\xf7\xee\xdd\xb4\xb6\
-\xb6\x1e6\x89yX\xed\xa7\xae\xeb\xf2\xd1\x8f~\x94s\
-\xce9\x87\x8e\x8e\x0ev\xee\xdcIgg\xa7?\xdb\xc3\
-4MN?\xfdt\xf6\xef\xdf\xcf\x9e={\x98={\
-6\x1d\x1d\x1d~&\xb1\x5c.\xeb\xe7\x9e{\xee\xbf*\
-BaX\x1b\x96\xd3O\x12\xc2\x1c\x0cc\x0f\x07qS\
-:;6\xee\xa5E=\x11g\xc4\xa5wx\x90&m\
-)\xeb\x13\xaf\xfb\xbd\xe0^q\xc0\x18\x91\x98O$\x12\
-\x1f\xfd\x93\x0f\xa5i\xbc\xf2\xca+\xacY\xb3\x86\x91\x91\
-\x11\x8a\xc5\xa2?O\xd7+\x0b\x02(\x0a\x93hm\x0c\
-\x92\xd3\xb8\xfd\x92/\xf1\x8b\xd6\xffd$2\x82=7\
-Kb\xb3E\xea\xe5*T\xad\xd2\xb2}\xd6Yg\xad\
-\xf3\x00)\x95J\x84\xc3\x95\xf3N\x8a\xb9J9\xa9P\
-\x15\x94?^\xd6,\x01\x91J\xa5\xa2\xc7\x05\x10)%\
-\xd7\x5cs\x0d[\xb6la\xd5\xaaU$\x12\x09\x16-\
-Z\xc4\xf6\xed\xdbihh\xa0\xb3\xb3\x93\x9a\x9a\x1a\x16\
-.\x5cH \x10\xa0\xbd\xbd\xdd\x1f\x00\xe9\xbd\x80\xfe\xfe\
-~\x1c)\xa9\xbe>/\xc2\x8bc\x84\x97fA\x91H\
-S\xc1Nk\xb8Y\x9d\xd4\xf3\xb58\x96\x8b\xe6\x1e\xaa\
-.\xf1\x06\xa7\xd5\xd5\xd5M\x985\xffN\x91t\xb1X\
-\xe4\x9cs\xce\xf1\xc1\xf4\xf4w]]\x9d\xff\xbdM=\
-*{\xbf\x5c\x87\xedf\xf8\x9b\xff\xfc\x18\x02\x9d@@\
-E\x1aQ\x14]\x22t\x13\xd5U\xbc\xd1\xb8\xb3\x0c\xc3\
-\xc0\xb6m\xaa\xab\xab+\xc9'\x04\xb5K\x82\xe8\x08\xf2\
-\x03\x0eF\xc6\x9d0\x9c\xc8\x93\x0aM\xd3D6\x9b}\
-\xc3\xb6\xed\xf7\x1e\x17@t]\xe7\xfa\xeb\xaf\xe7\xae\xbb\
-\xee\xe2\xeb_\xff:\xdd\xdd\xdd\x13N\xd2)\x16\x8bt\
-uu\x91\xcb\xe5\xfc)\x9d\xaa\xaa\x92\xcdf\xa9\xad\xad\
-\xc5u]\x7f\xc8\xc0\xc0\x036o(\xde\xb0Ie\x1c\
-eaR\xb4\xdahii\x99\x90\xb7\xf7&\xea|\xf4\
-\xa3\x1f\xe5\xfe\xfb\xef?\xac2#\xc30r\xb6mw\
-{u]B\x88\xe9\xaa\xaa\x0aO\xda\xfd\x89\xa8\x01\x8d\
-\x9aI1,\xcbb\xb4lS}\xe9\x10\xb5\x93td\
-I\xc3\x1c\x0aR\xec\x08@\x22\xeaWNz\xf1G(\
-\x14\xe2\x13\x9f\xf8\x04\xc9d\x92\xed\xdb\xb7W\x1a\x95j\
--d\xfc\x90\xf3\xe1\xfd\xee\x15]\x94J\xa5r\x22\x91\
-H\x1d\x17@\xbc\xb9\x8a_\xf8\xc2\x17\xfe\xe8g\xf2\xf9\
-\xbcO\xcdK)\x19;\xb1\xccg\x81\x87\x86\x86*\x85\
-\xda\x93\xe3\xa8\xaaJ[[\x9b?\xcbw\xf1\xe2\xc5c\
-\xd4G\xd9\xcfq\xd8\xb6\xed\xe7\x0e\xaa\xaa\xaa\xfc\xf9\x86\
-\x87\x03H:\x9d~p\xd3\xa6M\x0fz?O\x9f>\
-\xddRUU;\xf1\xc4\x13\xe9\xee\xee\xf6\x81\xf6^\x98\
-a\x18${Fh^\x7f\x12\xd9R\x89u\xeb\xd6\xa1\
-i\x1a\xcb\x97/\xa7\xa1\xa1\x816\xa5}\xc2\x09:\x17\
-^x!\x93'O\xe63\x9f\xf9\x0c\x8f<\xf2\x08/\
-\xbf\xfc2\x97]v\x19\xbf\xff\xfd\xef\x995k\x16\xc3\
-\xc3\xc3l\xd8\xb0\x81X,\xc6\xa9\xa7\x9e\xcas\xcf=\
-w\xd8\xa4\xe5a\x01\x92J\xa5\xfe*\x9b\xcd~\xa3\xa6\
-\xa6fQ>\x9f\xf7\xcb\xfb\xc7\x1b\xaa\xb7\x1a-\xaf\xc8\
-\xce\x03\xc5\xcbuTUU\x11\x08\x04hjjb\xe6\
-\xcc\x99\x0c\x0c\x0cL8\xbfj\xfc1B\xe3\x8b\x93\xbd\
-\xe1hG\x93\xfc\x92R\xb2n\xdd:\x86\x86\x86X\xbd\
-z\xb5\x1fKyR\xe8yJ\xb6m\x93N\xa79\xeb\
-\xac\xb3\x88\xc5b$\x93I2\x99\xcc\xf8S\xd80M\
-\x93\xbd{\xf7r\xdbm\xb7122\xc2\x8e\x1d;p\
-]\x97\xed\xdb\xb7\xe3\xba.\xfb\xf6\xed\xf3\x9f\xbdP(\
-088xD,\xf2a\x01\x92L&\x7f]WW\
-\xf7\xcf\xcb\x97/g\xf5\xea\xd5tww\xb3y\xf3f\
-\xba\xba\xba\x08\x04\x02~\xe2~\xea\xd4\xa9\xf4\xf5\xf5\x91\
-N\xa7\x994i\x92\xcf~\xfa%=\xe3b\x10\xcb\xb2\
-\xc8\xe7\xf3>M>\xfe@\xb1\xf1\xb3s\xc7^\x5cj\
-``\xe0\xe1\xb1\xff7r4eE\x86a\xf8R\x9b\
-\xcdf\xfd\xef\x1f?t\xdfSK\xa6i\xfa\x07\xd5x\
-\xff\xe6\xfd\xbd\xe38\x8c\x8c\x8c\xb0j\xd5*_\x9dC\
-\xa5\x9b\xca\x1f\xeb1n\x83\xbe\xf1\xc6\x1bG\xd4Bw\
-$\xe7\x87\x88\x8f\x7f\xfc\xe3\x0c\x0e\x0er\xed\xb5\xd7b\
-\xdb6\xb3g\xcf\xa6\xaf\xaf\x0f\xdb\xb6\xa9\xab\xabC\x88\
-J2\xa6\xbd\xbd\x9db\xb1H0\x18\xf4\x87${\xb6\
-\xc0\x03\xc4/\xf3\x19\x03a\xbc$\xa9\xaaJ \x10\xa0\
-\xa5\xa5\xc5\x9b;5\xd2\xd9\xd9\xf9\x89\xf11\xce\xf8\xa0\
-\xf0pT\xee\xc5\x17_\xccE\x17]\xc4\xf0\xf0\xb0\xaf\
-\xb2B\xa1\x90\x9f\x8a\xf6\xd4\xd7x\x06`\xfc\xe1g\xde\
-\xdc\xc9\xb1\x0d:\x81L\x1c_r\xfbv\xd7\x96Rv\
-I)\xfb\x8e7 |\xfa\xd3\x9f\xe6\xa1\x87\x1e\xe2g\
-?\xfb\x19/\xbe\xf8\xe2\x84\xf38\x0c\xc3 \x1a\x8d\xfa\
-e\xf7\xde\x91\x0e\x9ek\xec\xa9\xaf\xf1\xa7\xd5\x8c?\xe9\
-\xcd{!\xc5b\xd1\xaf2\x9c:u*\xe9t\xfa\x0f\
-(\x87#\x01\xc3SYMMM\xec\xde\xbd\xdbW\xb7\
-\x9eZ\x1c\x7f\x14\x85\xf7gOZ\xc7\xd7T\x99\xa6\x89\
-\xae\xeb\xdcq\xc7\x1d\x5cp\xc1\x05\xfc\xfb\xbf\xff\xbb\x97\
-_\xf7YkO\xda\xab\xaa\xaa\xfcA=RJv\xed\
-\xda5\xeb\xb8K\x88\xe7>~\xf0\x83\x1f\x9c\xd0S8\
-\xdevx\x93\x9d=\xfdYUU\xe5\x9f\xc4\xe3\xedJ\
-\x8f#\xf2\xa4\xc5\xf3F<\x8a\xc4\xa3\xab\xa5\x94\x13\x06\
-\x80\x1d\xcbJ\xa7\xd3\xb36o\xde\x8ceY\xf9\xe9\xd3\
-\xa7w\xacZ\xb5\xaa\xf6S\x9f\xfa\x147\xdf|3\xf9\
-|\xde\xef\xb5\xf7\xdcZo\x1c\xdfx\x9a?\x93\xc90\
-{\xf6l\xce=\xf7\x5c\xa2\xd1(\xe7\x9cs\x0e\x1b6\
-l\xe0\x92K.a\xcd\x9a5\x5cy\xe5\x95<\xf9\xe4\
-\x93,\x5c\xb8\x90\xda\xdaZTU\xe5\xb9\xe7\x9e\x9b0\
-\xed\xfax\x03\xf2\x8b\xee\xee\xee\xed\x8a\xa2\xac~\xef{\
-\xdf\x8b\xa2(\xb4\xb7\xb7c\x18\x86?\xef\xdc\xd3\xb75\
-558\x8e\xe3\x0f\x94\x14B\x90J\xa5\xfc\x01\xf5\xe3\
-U\x96W\xd1\xe7}n\xacZ]:\x8e#l\xdb\xa6\
-\xa6\xa6\x86L&\xa3\x1e# ~N\xa3X,\xbaw\
-\xddu\x17\xeb\xd7\xaf\xa7\xba\xba\x9a\x91\x91\x11\x7f\xf7\x8f\
-\xb7g\x1e\xd52>\xd1\x96\xcb\xe5\xd8\xbd{7\x0d\x0d\
-\x0dx\xe7\xffzn\xef\xd6\xad[\xb1m\x9b\x9e\x9e\x1e\
-\x7f\x10\x8d7\x92\xe9\x88\xec\xdd\xe1|\xc8;\xab\x0f\xd0\
-\x96,Ybm\xdd\xba\x95\x9d;w\xd2\xd3\xd3\xc3\x96\
--[X\xb1b\x05?\xf8\xc1\x0f\xb8\xf0\xc2\x0b\xe9\xec\
-\xec$\x18\x0c2\x7f\xfe|:;;y\xf5\xd5W\xc9\
-f\xb3\x0c\x0f\x0f\x13\x8b\xc5\xfcrS\xef\x04\x01)\xa5\
-\xdf\x9f\x18\x8dF\xfd\x03Q\x06\x07\x07\x13\xe5r\xf9\xe5\
-1\xbb\xb4gdd\xe4\x8b\x1c\x87u\xe2\x89'&n\
-\xbc\xf1\xc6\xfaK/\xbd\x94\xcf~\xf6\xb3\x0c\x0c\x0cP\
-*\x95\xfc9\xed\x85B\x81)S\xa6\xf8\x07\x9cy\xe3\
-oUUe\xe6\xcc\x99d2\x19\xff\xb4\x87\xb7s\x1e\
-\xde\x9a\xe6\xb5m\x9b7\xdf|S\x1cW\x09\x19\xa7\xc3\
-\x15\xcb\xb2x\xf8\xe1\x87\xb9\xec\xb2\xcbx\xf4\xd1GI\
-&\x93\xbc\xf0\xc2\x0bH)\x19\x1c\x1cd\xdf\xbe}\x95\
-\xb3\xa5\xba\xbb'd\x10\xbd\xc1/\xe9t\x9a`0\xe8\
-\x0fO\x8eF\xa3\xbe\xd4\x18\x86\xc1\xec\xd9\xb3\xc9d2\
-(\x8a\xb2+\x93\xc9\x5c\xc3q^\xba\xae\xf3\xe4\x93O\
-\xf2\xd4SO\x91\xcf\xe7\x99<y2\x9f\xfd\xecg\xf9\
-\xf4\xa7?\xed\x0fK\xf3F\x8d\xc7\xe3q\x9f6\xff\xfc\
-\xe7?\xcf}\xf7\xdd\xe7\x8f\x05\xf4\xc8NO\x9d\xd7\xd5\
-\xd5\x91\xcf\xe7I\xa5R4662<<\x8ceY\
-}\x8a\xa2\xe4\xff,*\xcb[\xa1P\x88{\xee\xb9\x87\
-\xfb\xee\xbb\xcf\x8f\x13<u\xd3\xdd\xdd\x8d\x10\xc2\x1fv\
-\xe6\xddlUU\x95O\xc5{'-{\xb6\xc6;\xef\
-\xd0\x8b?\xf6\xec\xd9s\x5c\xfb\x00\xdf\xbaFGG_\
-\x09\x87\xc3\xd5c\xf7\xb6\xf2\x1b\xdf\xf8F\xe4\xb5\xd7^\
-\xf3\xef\xcd\xb3a\xe3\x8f\xdep]\x97U\xabV1u\
-\xeaT\x96-[\xc6\xd3O?Muu5[\xb6l\
-\xa1\xb9\xb9\x99\xad[\xb7\xb2r\xe5J\x0a\x85\x02\xed\xed\
-\xed\x1c<x\x90h4Joo\xef\xe5\xdd\xdd\xdd\xdb\
-\x8f\xa4\x0b\xe0H\xad\xa56s\xe6\xcc'\xa3\xd1h@\
-\xd7\xf5\x0bO<\xf1DB\xa1\x10\xaa\xaa\xb2o\xdf>\
-\xbf\x059\x1c\x0e\xfb\xd3\x0dB\xa1\x90\x7f\x1cP&\x93\
-!\x97\xcbM\xe0\xb9\x82\xc1 \x17^x!/\xbf\xfc\
-2\xde\xbcu!\x04\xed\xed\xed\xaf\x0f\x0c\x0c\x9cy<\
-\xc1\x18\xb3G\xfe\xcfs\xe7\xce\xdd{\xed\xb5\xd7\xce\xbb\
-\xf9\xe6\x9b\xb9\xfc\xf2\xcbY\xb6l\x19---<\xf9\
-\xe4\x93\xbej\xfd\x87\x7f\xf8\x07\x1ey\xe4\x11\x0c\xc3\xe0\
-\x86\x1bn`\xd3\xa6M\x8c\x8e\x8e\xfa\xae\xb0\xd7\x93\xa2\
-\xeb\xba\x7f\x0cG0\x18D\xd7u\xba\xbb\xbb\x97\x1d<\
-xp\xcb\x91\xdc\xe3\x91\xf6\x9f\xd9]]]\x97\xb7\xb6\
-\xb6^\x17\x0a\x858\xf3\xcc3\xf9\xc2\x17\xbe@4\x1a\
-\xa5\xb9\xb9\x99\xa9S\xa7RUU\xc5\x8c\x193\xa8\xa9\
-\xa9\xa1\xae\xae\x8eH$\x82\xeb\xba~\xa0\xb5r\xe5J\
-\x02\x81\x00\x0d\x0d\x0d\xc4\xe3q\x82\xc1 \xd1h\x94\xb1\
-\x81\xcdon\xdf\xbe\xfd\x9f\xb6o\xdf\xfe\x19\xe0+\xc7\
-[:\xc6\x831&\xa1\xca\x0b/\xbc\xc0%\x97\x5c\x82\
-\x10\x82{\xee\xb9\xc7?\x9fp\xc3\x86\x0d\x18\x86\xc1\x15\
-W\x5cA\x22\x91@\xd7u~\xf9\xcb_\xd2\xdd\xddM\
-\xa1P\xa0X,N89\xc7s\xedC\xa1\x90\xf4\xcb\
-\x91\x5c\xf7\x88\xdd\xc3\xa3:-Z\xd3\xb4\x80\x10\x82\x07\
-\x1f|\x90\x87\x1ez\xe8\x0f\xfe\xfd\xe0\xc1\x83\x7f\xd49\
-x\xab\x1b\xeb8\x0e\xbf\xfd\xedo\xbdIo\xbbr\xb9\
-\xdc\x7f\x02\xefX\xb6\x7f<V6\x9b\x95\x9e\x8a\x12B\
-\xf0\xfc\xf3\xcfs\xfa\xe9\xa7\xb3c\xc7\x0e6l\xd8@\
-}}=\x0f>\xf8 \x0f>\xf8 w\xdf}\xb7\xef\
-\xba{A\xafw\xc2\x90\x97\xbe\x1eSo\xa2\xad\xad\xed\
-\x5c\xc7q\xf6\xd4\xd5\xd5%\x8e\xf4\x9e\x8e\xca\xc1\x0f\x85\
-B\xb1\xba\xba\xba\xcf\x85B!\x17\xb8*\x1c\x0e/>\
-\x1c\xbd\xefMz\xf0\xa6<{\x996\xcf\xdfO\xa7\xd3\
-kzzz\xde\xcf_~E\x16/^\x5c\xf0\xfaE\
-t]g\xe9\xd2\xa5\xec\xdb\xb7\xcfw\xc9\x0f\xc7}\xf5\
-\xf8\xb1\xed\xdb\xb7\xcf-\x14\x0a\xedGs#\xc7<8\
-\xaa\xb9\xb9\xf9\xe7MMM\xd7\x1e\xce\x5cs\x0f\x14\x8f\
-\xce\xae\xa9\xa9\xa1P(\x14[[[\xa3\xe3\xbe\x8f\xfe\
-\xfe\xfe\xbf4 \xc1\x96\x96\x96m\xf1x\x5c\xe4\xf3\xf9\
-Hcc\xe3\x09RJ\x0a\x85\xc2a\x8f\x90-\x14\x0a\
-\x98\xa6y\x9f\xeb\xbaV\xb9\x5c\xfe\x8f\xa1\xa1\xa1\xd1\xff\
-+\x80\x00\x81\xb1\xef\x09\x86B\xa1\xa5\x87\x1b\xd7xQ\
-{8\x1cNd2\x99]\xfc?\xb2\x82\xc1`m8\
-\x1c\xfeG\xd7u\x9d#`\x08d \x10H\x9e|\xf2\
-\xc9\xff\xf3\xc2\x0b/H\xde]\xef\xaew\xd7\xbb\xeb\xdd\
-\xf5\xeezw\xbd\xbb\xde]\xff\x8f\xad\xff\x03!\xf6p\
-\xa0\xc1\x03\x97\x85\x00\x00\x00\x00IEND\xaeB`\
-\x82\
\x00\x00:y\
\x89\
PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
@@ -1825,433 +944,7 @@ a\x02S\xa7N\xa5\xa7\xa7\x87\xee\xee\xee2\xb9\xc1\xfe\
\xd1\xf8h|4>\x1a\x1f\x8d\x8f\xc6G\xe3\xa3\xf1\xd1\
8`\xfc\x7f\xa7\x8cK\xc9\xd0\xc3l\x1c\x00\x00\x00\x00\
IEND\xaeB`\x82\
-\x00\x00\x1ax\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00d\x00\x00\x00i\x08\x06\x00\x00\x00\xcc|\x86\x8a\
-\x00\x00\x00\x01sRGB\x00\xae\xce\x1c\xe9\x00\x00\x00\
-\x06bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\
-\x00\x00\x09pHYs\x00\x00\x88&\x00\x00\x88&\x01\
-\xac\x91\x9d\x06\x00\x00\x00\x07tIME\x07\xd9\x03\x03\
-\x0e\x04:\x04\x0e\x03\xc5\x00\x00\x19\xf8IDATx\
-\xda\xed\x9d{tT\xf5\xbd\xe8?\xbf\xbdg\xcfd\x92\
-\x0cy\x12\xc2#\x01J(\x8fJ\x90\xa2\x16k\xc3\xa9\
-\xa0\x02\xf5\xd4.\xbd\xda.[\xee\xa5\x85z\xb4u\xf5\
-\xae\x16\xef\x83\xf6\xf6\x9cs[\xd0z{\xafK\xaf\xbd\
-\xb4\x97\xd5z=*\xb7\xd6\x1e=\xe7\xd4Z\xa1*x\
-\x05\x0fJ\x00Q\x08\xa4\x09\xaf\xc8#\x04\xf2\x9a$3\
-\x99\xcc\xec\xc7\xef\xfe1\xccf\x1e{\x87\x09L\x12p\
-\xe5;k\xafd\xf6\xfe\xfd~\xfb\xf7\xfb\xbe\xbf\xdf\xdf\
-c\x04@eee\x9d\x10b\x07c0\xea\xa0\x00\xaa\
-eY\xda\x18*\xae\x0e\xf0\x00\x85\xa6i\x16\xaa\xaa\x0a\
-\x80\x94\x12\xcb\xb2\xc603B \x84@Q\x94\x14\x82\
-\x94\x1b\x86Q\xe6\xf5z\x01\xc8\xcf\xcfg\xe5\xca\x95c\
-\x98\x1a!\xd8\xbf\x7f?{\xf7\xeeM!\xc8D\xc30\
-*\xd3\x0b\x9a\xa6\x89\xae\xebc\x18\x1bF\xc9\xf0\xf9|\
-\x08!2T\xd6\xf8\x0b\x97\x0dRJ\xfa\xfb\xfbik\
-k\x1b\xc3\xdc0A^^\x1eS\xa6LAJ\x99A\
-\x90\x80eY\x81\xf4\x0a\xc3eK\x84\x10((\x08@\
- \x88\x19&1\xcb@\xf5\x9b\xf1;1\x0f\xaa\xa5\x82\
-\x00\xa1H\x10 \x91\x9f8\x82\xa4\x13\x22\x99 ^!\
-\x84\xe6T0]\x9cr\x01A\xa3\x8f\x93\xfa9\xba\x8d\
-\x10\x032\xc6gn\xc8gvm\x01Iv\x8d\xfe\x1e\
-\x89l\xcf'v\xce\x87\xd5\xee\xc73\x90\x17'\x90\xdd\
-\xb1O6A\x14\xcb\xb2\xd4d\x22X\x96\x95S\x09\x11\
-@\x8f\x19\xa6a\xe0\x04\x1df\x0fB*L\x9d\x9e\xc7\
-\x8a\xa5e\xe4\xe5)\x98&H\x09\xe2\x824\x14\x94\x0a\
-(\xebG\xcc\x09\x83\x02\xb1\x01\x89\xec\xd30z5d\
-\x9f\x86\x19\xf2`\x854\xac\xb0\x07+\xa4\xa2\xe8\x9a-\
-M\xf1K^\x13\x04I\xe09\x9d \xc2I\x12\xdc(\
-x9\x10\xb2\x22\xfck\x7f\x03RJT\xa9R1\xc9\
-\xcb\x17\xbfT\x8a\xb4\xc00$B\x08\x12]\x10q\x1d\
-\x05R \x11`H4U\x81b\x13o\xb1\x09\x0c\x10\
-\xef\xda\x85r\xc0@Hb\x9c\xcf\xc3h\xf7\xa1\xb7\xf9\
-\xf0\x84\xf3mN\x10W\xa9D\x0d&!\xae\x94\xcb\x85\
-\x84\x18\xd2dW\xff\xa1\x0b\x12 \xf0\xe5\x09n\xbb\xab\
-\x0cie\xa9\x16\xed\xe7\xc2\xf1\x96\x04\xfcE\x02\x8a\x07\
-\x10\xb3\x07@\x01=fa\xf6z\xb0z\xbd\x18\xbd*\
-\xb2\xcf\x8b\x19V\x91!\x0fFHA\x89z\x11B\xc6\
-\xc3\xe2Q\x92\xa8\xc1$\xc4\xb5B.\xa4\xe4\xa4~\x0e\
-C\x9a(\x17\xb0X3\xb7\x00E\x11\xc8\x1c1\xae\xdd\
-\x86\x14H\x13\xa4\x09\x1e\xa1\xe0)\x92P\x14\xbd0\x96\
-\xfe\x14\x89\xd2\xa3\x92\x816\x0d\xeb\x9c\x9fH\x9b\x07O\
-w\xbe\xad\xeeFJ\xa2\xb2\x96\x90db\xe4\x82 \xed\
-FO\x8a\x14TN\xf6\x0e\xab]\x16N\xff%K\x94\
-\x94x\xfd\x02\xef\x0c\x1dQ\xa3S\xa2HL\xab\x83X\
-\x8f\x02=^b=*\xf4z1\xc2\x0a\x845b!\
-\x81\x12\xd1\x10jn%\xc9\x0d\xbf\xc3N\x90\x90\x8c\xa4\
-|/,RG= \x03\xc0\x8aK\xa94@\x11\x0a\
-y\x85\x12\x0ac\xe4M\x06I\x04d\xc2\x96\x81e@\
-\xd7\x9fK\x90]y9'HV*+\x97\x0410\
-\xe3\x86\xfa\x02\xf8|\xa3K\x10W\x02\xa5\xcbV\xc2c\
-\x93\xa0\xfa@\xd1\xc0\x90r\xe4\x09\x92K\xef\x8a\xf8x\
-l\xfb\x01\xa0\x88k,\x8c\x10I\x03\x19\x01\x18TB\
-\xc6\xb2\xbe\xc3\x97\xb9\x18\x92\x0d\xc9\xb5\xa4d\xb6%\x87\
-P\xf7\x82Z\x11\xf1zq\xc4H[\xdd\x08.\xc60\
-\xc3J\x90\x1c\x8b\xc8\x90\xbc\xac\x04'\xe4\x82#\x84\x88\
-\x1b\xcdTP\xb2\xaa\xab\xa8\xd0\xd5\xaes\xead\x1f5\
-\x15s\xb8a\xc6MT\x96N`z\xe5\xa7P\x15\xe8\
-\xeco\xe3d\xf0/\xb4\x85>\xe6xw\x03\x8aP\x1d\
-\xde\x953\x0c\xe6\x5cB\x86\x1c\x87\x0c\xb7cz)\xc9\
-x\xfbO\xdd\xf4\xb4\xc3\xab?\xfb\xbf\xcc\x9f>\x1f\x8f\
-\xeaq\xec\xa7)\x0d\xce\xf4\x1e\xe5\xd7{\xff\x96\xf3\xa1\
-\x93\xa8\x8as\xb9DF\xc0\x92V\x5c\xf2\x10Y\xe7\xeb\
-\xe40\xa8@'<+\xd9x\x01Wr]\x0e\xc4\x06\
-,^}\xb1\x0d-V\xc6G\xcf\xec`a\xcdBT\
-Eu\xf5\x92<\x8a\xc6\xd4\xe29l\xb8\xeden\xfd\
-\xd4}\x18\x96\xeeX.\xd4k\xb0\xedO\xedL\xb6\xea\
-\xb8\xbfv-K>\xf5U\xe6\x8c\xff\x5c\xd6\x0c\x92+\
-\x9c\x0c\x86\x97aw{\x11\x82\xf4f\x06k\xd7\xb2\xe0\
-\xf5\x7f\xec$\xe0/\xe5\xfd_\xbe\x89\xdf\xeb\xcf*\xc5\
-\x92\x90\x80\xfbk\xff#\xc5y\x15\xfcc\xc3\xff\xc4\xab\
-\xfa\xec\xe7\xaaG\xd0rd\x80\xe6\xc3=\xdc\xff\xf7\x7f\
-C\xcd\xc4\x99\x00\xb4t\x1f\xe6\xf0\xf9\xf7\xb3\xa0\x88\x95\
-S\xad\xe1\xa4\xae\x06UY\xb9\xf3\xf3\xe3\xaen2\xa7\
-*\x8a;r\x0f\x7f\xd0G\xa4\xdf\xe4\xe7\x0f>b\x13\
-#\x1d\xa2F\x84\xf7\xff\xb2\x1bM\xf8\xb9a\xd6\x02\xbc\
-\x1eo\x0aaV|z\x15M\x1d{i\xee\xfc\xe0\x22\
-AT\xc1\xc9c\x03TV\x94P3q\xa6M@\x04\
-)s\xdaW\xaajs\xee\xf6\xe6B\xe5\x5c\xb6\x1f#\
-\x05\x87?\x0cQ^\x12\xe0\xdf\xdev\xbfc\xa9s\xa1\
-S\xfc\xb7\x9d\xab\xe9\xe9\x0b\xb3\xf5\xe5N\xaa'T\xf1\
-\xde/\xde\xca\x08\xf4\xfe\xcdg\xfe=\x8f\xbd\xb3\xca\xfe\
-\x1e\x09[\xf4\xf5\x98\xdc<oavI\xcda\xca\xed\
-]J\x0b)\x83\x89\x93eYW|%\x5c\xc6\xc4'\
-\xfd{\xe2\xa3\xa8\x82\x86}}t\xf7\x84\xf9\xdf\x8f<\
-\xe1j\x04_\xf8\xf0Q\x22F\x98\xbc|\xc1\xedw\x97\
-p\xf0H\x13w\xfe\xf8\xde\x0c\x04W\x15\xcd\xa4\xa6t\
->\xa6e \x91tw\xe8H$\xd7\xd7\x5c\xe7\xe8\xd2\
-^\xf2\x93#|$.7/Kq2~\xb9\xe4\x06\
-\x91\xf6q\xba'\x10(B\xa1\xf9`?\x15\xe5E,\
-\xb9~\x89\xa3Q\xee\x8e\x9c\xa3\xb1\xbd\x1e\x81@ZP\
-P\xa82s\xf68\xde\xfbp?\xef7\xd6g\xd4Y\
-\xb3\xf0\xa7X\xc4\xd0T\x85sma\xf4\x98\xc1\xbcO\
-\xcd\xc9p\x9f\x84\x14\x5c\xea\x93k7+\xeb\xc00\xd9\
-\x1d\xcb\xdd\x8c\xa1\xc8 Q:t\xb4\xc5\xd0c\xb0\xe2\
-\xe6\xbfr\x8d%\xde9\xf1O\xa8\xc2\x13\xaf\x7f\xa1\x89\
-\x09\x93}\x9c<\x16\xe5\x9d\x8f\xfe\x95EsnJ\x19\
-G\xb1\x7f<M;Kh:v\x8a\xed\xbfx\x99\xfe\
-\xaf\xc7\x983%\x95 \x01_\x09\x9f\xabZ\xce\x80\x11\
-A7#\xb4\x87[\xe9\xe8?\xe3(E\xb9\x8eCF\
-\xc7\xcb\xca\x12\xba\xdau\x84\x80\x053\xe7\xb9\x96i\xee\
-\xfc\x00U\xa4\xba\xbf%e\xf1\xe5\x00\x07\x8e58&\
-\x0d\xe7U\xcd\xa7\xe1/\x1f3\xa9d2%S\xca3\
-\xda,\xcb\x9f\xc8\xaa\x05\x7f\x1bO\xecJ\x8b\xffw\xe2\
-e^9\xf4\xf4\xd5eC\x86#\x0f\x94\xfar\x99q\
-\x85zM\xa4\x94TULtm\xe7tO3B(\
-)\xf5\x0a\x02*RJ\xcev\xb6;\xd6\x99;\xf53\
-Y\x05v\x82xFAIk\xff\xe2u\x15$\x17s\
-\xc1\x11\x8aHUQ\xc2\xc5}\x0c\xf7Y\x08!\xa8\x99\
-<\xd3\xb5-\xc323\x8c\xb7?_A\x08Ak\xc7\
-\x19\xc7:\xd3&M\xc62\xa1\xc0\xe7O\x89W\x06W\
-\xaf\xc2\xd9\xf0\xcbQ\x9a\xa0J\xcfi]y,\x22.\
-\xe9\xd3\x87CqdW\x96\x959G\xeff\xd4\x11\x91\
-\xaa'\x9e\xfe\x08G#\xce\x122\xb3\x9a\xaf\xfdM%\
-\x13\xef\x9bEYQ\x11G\xfe\xe1P\xaa\x1b\xddw\x8a\
-\x7f>\xf8\x0c\x9a\xe2\xa3\xc0WHG\xf4cg\x82X\
-W\x81\x0d\x19I\xd0c\xf1\xc1\x96\x14\x16;?7\x07\
-\x5c\x93L\x9aO\x10\x899?/\xce\x1b\x8f\xc7\xa3\x90\
-\xe7\xc9\xc7225t\xc4\xe8\xe3@\xc7\x9b\xa92\xe2\
-\xb4\x0ag\xd8\xd5\xf8 ^Vn\xd7ee\x17\x80\x99\
-F\xbcc\xf9\xde\x80\xab\x84\xb8\x81\xd7\xab\x10\xeew^\
-\x87\xecU\xf3.\xa6\x0c\x84s\xf7D6\x19\xe2\xd1\xcc\
-\xf6&b\x91\x5c\xac\x5c\x8c\xe3A\xa4}w \x889\
-x\xf4\xac\x9bQW\xd2\xfa|\x0a\xbaa:>\xd3T\
-\xef\xc5\xf5s\x0e\xed\x0bW\xab\x96\x8d\xea\xcd\xb5*\x1f\
-d>d\xa4g\x0c\x0dC\x0e:\xdf\x1e\x1bTe)\
-\x18\xba\x85i\x99\x19YaM\xf1]\x94\x84+\xc8G\
-\xe5\x1a\x1f\xc9\x11\xfb\x88g{\xb3Q\xc0\x8a\x10\xf6L\
-\xe0P\xb8SB\xea\xaa\xc7a\xe2\xea8>\x86?R\
-WFB4\xb3\x01U\x15\xe8\x86;\x07\xda\xb6\xc0\x81\
-\xdez\xccBU\xe3;\x91\xd2\x07iZ\xc6\x05\x0c\x08\
-W\x09\x1b-\xc8Ze\xb9\xcdf]I.+\xcd\x8a\
-:\xbb\xaf\x03\xee\x8c\xa0\xa9>\xc7z\x08\x81\x11\x13h\
-\x9a\xc7q\x90\xba\x15\x03q1\x8b\xe6J\xd5Q\xca\xf6\
-fmC\x92\xb3\xb5#%!\x08\x88\x9a\x11|j\xe6\
-<\x88m\x0b\x5c\x5cf\xaf\xe6qq\x06b\xb9A \
-\x16\xb9DG\xd6\xd9\xde\x5cJ\x87\x9bMrJo\xfb\
-\xfcqus\xae\xfb\xbc\x8b\xca\xf29\xd6\x13\x02b1\
-I\x9e\xe6u\xce\x00\xc4\x82\x17\xd3\xfe\xd2\x0d\xd9\x97\xfe\
-\x0cG\xb6wH\x81a\xee\x88\x929C\xa88\x98\xae\
-\xfc\x02\x15EQ\xe8\xea\x09R]>\xd5Qe\x09\xe9\
-\x10\xb4I\xe2\xa9\x91|g\x1b\xd3\x1b\xed\x8e\xef\xd8\x12\
-\x02\xb7\x89A%\x8b\x94\x9e\xcc\xf1\x14\xee\x90\x92\x8b9\
-\x9d\x0f\x11\xd99\x0c\xfe\xfc\xb8\xbb\xda\xda\xd96\x88\x1d\
-\xf1f\x1am#\xfe\x8e\xc2\xbc\x80\x0bA:\x93\xe2S\
-qEJ+\xd70j\xb9\xacl\xa0p\x5c\x9c \xc7\
-[[\x5c\xcbT\x17\xcf\xe2H\xc7G))\xf8p(\
-\x1e\x10V\x8f\x9f\xe2X\xa7-\xd4\x92#\xe41\xba\xb9\
-,\xb7U\x11\x97=\x9a4\x9d\x9d\x0e%\xe5\x1aH\xc9\
-\xfe\xa3\x07\x5c\x9b\x99Q2\x9f\xa6\xf6\x0fRTL\x7f\
-\xc8\x02)\x19_R\xeaX\xe7l\xdf\x09\xdb\x068\x8e\
-'\xcbM\xa5r\x98V\x9ddm\xd4s\x16\x8b\x08\x01\
-\x8ab_\x82\xf8.\xdc\xf4Oi\xb9\x06\x8a\xc2\xa1\x13\
-\xcd\xae\x1c\xf4\xb9\xaa\xe5X\xd2L\xa9\x17\xec4@Q\
-X8k\x81\xe38N\x06\x9b\xe2\x04T\x04\xc2a\xb5\
-\x8b\xa6\xe6\xa1\xc8\xe4\x16\x9d\xfb7\x12i\x93AmH\
-2\x05Gb\xa1\x9c\xd7'\x982\xcd\xc7\xc1\xa3\xcd\x1c\
-=\xdb\x9c\xd1a)%\x13\x0a\xab\xa9,\x9c\x9a\x82\xf0\
-\xf3\xad1,\xcb\xa2\xae\xf6s\x19\x03n\x09\x1e\xe6|\
-\xe8T\xdc\xadV\x04\xb1hf\x02rBA\x15\xba\x15\
-E7tN\x9f\xee\xa37\xe8\x9c\x13\x93\x96\xcc\xe9B\
-\xb9\xac%\xc4-\x1e\xb9\xa2U'\xe9\x04r\x98\x903\
-\x0dX\xb0(\x80G\xd5\xf8\xbb\xff\xf3\xb8+G\xdd2\
-\xf5.L\xcbDQ\x05\xbdA\x83\xa3\xcd\xbd,\xbdq\
-\x11\xb5\xd3k3\xea\xbc\xd6\xf8\x1b<\x8a\x06\x12\xbc>\
-\x85H4\x13\xd9\xaa\xe2\xe1?\xd7=\xcb\xd4\xe8\xdd\xac\
-\xb9\xfeg\xac\xff\xebg\x1d\xfb7\x1c\xabN\xb2\xb6!\
-\x09$\xe6&\xdb\xeb\xb0:]8\xc7\x02\xf9\x85*S\
-\xa7\x17\xb0m\xdf{\x1cm=J\xcd\xa4\x9a\x8crw\
-\xd4\xac\xa4\xab\xff,\xbf\xdd\xf9\x02;\xdf\xe8\xe3\xcbu\
-\xb7\xf3\xcc\x7f\xf8_\x19\xe5Nt\x1f\xa2\xa9s\x9f\xbd\
-\xce\xb7\xb8\xd4CO\xb7A\xd3\xe9&fM\x99\x952\
-\xcei\xa5\xb3Y\xf7\xb5\xd9\x00\x9c\xeai\x1a$\xa0\x1f\
-\xfe\x94\x922\x98w\x95+\x09\x89\x13E\x5c\xdcV\xe0\
-p\xd9\x8b\x12n(\x04\x09?\xfb\xedS\xae\xb6\xe4\xfe\
-\xf9\xff\x89\x8d_{\x9d\xc3\xcf\xedd\xf3\x0f\x7f\x8dO\
-\xf3e8\x0co\x1c}!\xe5}Sk\xf2@\xc2?\
-\xed|mP[)P\x1c\xfb\x97Xu2\xe2\xeb\xb2\
-F\xc3\xe5M\x86\xf2J\x8d\x1bn\x19\xc7+\xdb\xff\xcc\
-\xaf\xfe\xb4)\x13a\x17\xbeW\x8f\xafbRIU\xc6\
-\x80\x04\x82W\x0e\xfd\x82\x03m\xef\xa6\xdc\x9fT\xed\xe3\
-\xc6\xc5\xe3x\xea\xa5g\xf8\xf5\x96\xe7\x1cm\xd4\xbb-\
-\x7f\xe0\xf9\x0f\x1f\xcd\xc6Q\xcc\x99\xdb\x9bU\xfa=\x97\
-\xfbC\x86\xec\x0e\x9a\x92\x9a\xb9~\x06\x06\x8a\xf9/\x9b\
-\xfe;\x05\xbe\x00\xff\xee\xb6\xfb]\x83\xbad\xc4\x1a\x96\
-\xce\x96\xe6\x7f`\xdb\xf1\xdf\xc5mG\xca\x98$3f\
-\xfb\x99>\xd3\xcf\x96\x8f\x7f\xc1\x9f6n\xe4\xf3so\
-\xa4\xbc\xa8\x9c\x96\xee\xc3\x9c\xedk\xc1\xa3x\xf0(^\
-g\xd54L3\x86#\x1e\x87\x88\xcb\xb09R\xc2\xdc\
-\xeb\xf3\x99\x5c\xed\xe3\xd1\x17\x1f\xe7\xb7o\xfc\x0b\xcf\xae\
-{\x8a\x89\xa5\x93\x5c\xeb\xedo}\x9b\xd7\x9b\x9f\xe5l\
-\xa8%\x83\x18\xc9\xed\x0a\x05\xa6T\x15\x02\x92\x93\xe1\x83\
-\x9c\x0cK\x04\xf19\xf7\xc1l\x845B\xabN\x94l\
-\xf3-#\xb9?$\x81\xc0\xe22\x0f\x7f\xfd\xb52*\
-\xae;\xc3\xc2\x87?\xcf\xb2uw\xd3\xdau\xd6\xb1\xfc\
-\xef\x0e>\xc1\xb9\xf0\xc9!\xec\xa0\x12\x17\xd6a\xa9\x17\
-\xed\xdb\x10\x82\xdb+\xc5\x99[\xc4~\xc9\x19C\xd34\
-\x87\x1c\xfe\xa7\xa4\xbf\x0d#e\xbf\xbdi\x19\x08K\xb8\
-\xe7\x8bdj\xe6\xc80\xa1\xb0\x04f\xce.f\xf7\x9e\
-\x8fxc\xef6\xbeyG\xe6\x89w\x9f\xa9X\xc4\xfb\
-\xa7^\xbfD\xe6If\x9d\xaa\x92i7#\xfd\x11\xfa\
-\xfb\x8d\xdcyS\x8a\x92\xbd\xca\xb2,\x0b]\xd7\x09\x87\
-\xc3W,\xa6Q\xdd@X\xa9\xf3\x13\xf22\xdc\xc7\x92\
-\xf1`\x18\x06\xef5\xec\xe5\x9bw\xac\x8c\xa7\xde\x93\x14\
-\xe2\x8aO\x7f\x93\xe6\x8e\x0f\xe8\x8b\x061\xa4\x8e1\xc8\
-*\x95ltk\xfa\x84V\xb4\xdf\xc00rG\x10\xc3\
-0\x18\x18\x18\xc88\xb5\xcfQ\xbec\xb1\x18\xb1X,\
-g6$\xd9\xedM\xec\xeb\x1b\xea5\xb1\xca\x87\xd7\xab\
-\xf0\xcf\x17\xdc\xd6t\x8e\x1e_0\x85\xbf\xbb\xf5\xb7\xfc\
-\xd7%\xbf\xe3\xceO\xaf\xc6\xb0bC{G\xc6*}\
-q1\x1eS\xa0\xaf-w\xc4\x18r\x1cb\x9afN\
-\xf7\x87\xe4*?y\xcb\xed\xc5\xb4w\xf5\xf1\xf7/l\
-p\xd4\xf9^O\x1e%\xf9\x15\x14\xfa\x8as\xb6\x8dY\
-Q\x05g\x0fE1BfN\xe3\x10\xb7\x88]\x19.\
-cn\x1b\xaf\x1c\x05\xb7\x96%\x99T\xed\xa3\xf6\xb3%\
-\xfc\x8f\xcd\x9bxk\xff\xf6\xac\xed\xd8\x151\x82\x80\xc3\
-/\xf6\xa2xs\x8b\x97\xcb\xf2\xb2\xae&HH\xc4\xe7\
-\x97\x141wA\x80o<\xb6\x9a\x97w\xbdD{\xef\
-yB\x03\xbd\xe8f\x94\xa8\x11!\xa2\x87\xe9\x8f\xf5r\
-\xa5\x9c\x90`\xa6\x13o\xf7\x13\x0b\x9a#6N\x8f{\
-\xfeI\xe4&w\x93c\x0e\xb6,XxK\x80y\x0b\
-\x0b\xf8}\xf3c\xfc\xf9\xf4FJ\x03%\xf8}~L\
-\xcb$fF\x08\xc7z\xd1\x14\xef\x15\xbdG\xf3+\x9c\
-\xd8\xd5\xcf\x91\x7f\x09\x0dK\x0e\xcb\x0d\xbf\x1e\xaeA\x90\
-\x16h^\x85\x12o\x1e\x10%\x18k#\x18\xbb\xccD\
-\xe0\x85UIR\x82\x11\x95\x981\x0b#\x229\xb6\xbd\
-\x9f3;\x22\xa8\x9a\x18V\x89w:\xb7wx%\xe4\
-jR{\x0a\x085n\xa8\x0dC\xd2sF\xa7\xb7\xc5\
-\xa0\xe7\xb4N\xff\x19\x13\xbd_\xa2\xf7[\xc4\xfa,\xa4\
-\x89M\x8c\xe1\xc2Cb\x0d\xf55/!\xd9\xc6\x13f\
-L\xdaW4d\x11<e\xd0sL\xa7\xfbc\x9d\xc8\
-\x19#\xcetJ\x9cP\xe9\xd6T\x0c\xb3u\x1d5\x09\
-\x91b\xf8\xce\x98\xb49^\x11\x98R\xd2{\xd6\xa0\xaf\
-\xc5\xa0\xe7\x8cA\xf8\xb4A,,1\xc2\x16\xb1~\x89\
-\x19\x89\xaf\xe1J\xa8(O\xde\xe8\xfb3Y\xdb\x90\x5c\
-\x8ah~\x97B\xa4\xd8\xe2\xb2\xd7\x9e's\xbc.\xb1\
-b\x12S\x97\xc4\xfa%\xc1\xd3:\xbd\xc7\x0c\xba>\xd6\
-\xe9?i\xc6\xc39\x9b\xe3EJ\xf4\xa8\x5ce\xba\xc0\
-\x8d\xe9=C\xa5\xe0Pa\xdcy\x15\x8f.\xe8\xad0\
-\x11Rd\xc5\xf1B\x11H$\xbd\xe7MB\x1f'8\
-\xde$\xd6g\xd9\x1co\xf4K{\xa9\x95\x10\xe0\xf1\x89\
-\x1c\xe4\x9aG\x1f\x5c\x93\x8b\xb9[u\x02\x05\xdd\xf1\xb3\
-\xdcCe\x16\xc9{*-#\xae\xdf-]\xa2\x0fH\
-zZ\x8d8\xc7\x9f\xd4\x09\xb7\x98`\xe2\xaa\xe3\x15\x95\
-k\x1e\xb2^(\xe7fp\xae\x84(\x85\xdd*\xaa.\
-h\xffK\x8cp\x9bI\xf8\x94I\xb4\xcfB\x0fI\xf4\
-\xb0\x85\x1e\x96q[\xa3\xc49^\xf5\x88O\xa2\xcb\x91\
-\xa1\xb2\xb2\xf6\xb2r\xed\xeaI\x01\xfe\x90\xca\xa1_\x87\
->\xb1\x1c\x9f\x0b\xc3>\xb2q\x88\x00E\x13\x8c\x81{\
-\xa4\xae\x8c\xa1\xe6\x1a0\xea9\xb7!cpen\xaf\
-\xc8r\x8b\x17\x80\xaa\xaah\x9a\x86eY\xf6to.\
-7Z^m^P.\xeb\x0d)\xb9\xe8\xa6\xe3,\xcb\
-b``\x80;\xef\xbc\x93;\xef\xbc\x93\xf1\xe3\xc7\x13\
-\x08\x04\x88\xc5b\x04\x83Av\xef\xde\xcd\xee\xdd\xbb\xd1\
-4-\xc5\x8bp\xfa\x9b\xed\xb3\xa1\x96K\xf43\x19A\
-n\xe5\xae\xf4]N\x7f\x13S\xe0\xb1X\xcc\x959\xdd\
-\xee{\xb2Ix%\xc3g?\xfbY~\xf9\xcb_R\
-\x96v&I\x22v\xb9\xf5\xd6[\xe9\xed\xed\xe5\xe9\xa7\
-\x9f\xe6\xe8\xd1\xa3\x19\x03O\xb4\x9d>[\x96>\xd8\xc1\
-\xbeg[n\xb0\xff\xdd\xbe[\x96\x95r\x88\xdb`\xfd\
-u\xeb\x97\xc7\xe3\xc1\xeb\xf5\xe2\xf7\xfb\xe9\xef\xef\xb7g\
-`\xb3\x91$\xe5R\xfa-q\x19\x86\xc1\x8f~\xf4#\
-^z\xe9%\x9b\x18\xe9\xcbE\x13\x10\x08\x04X\xb7n\
-\x1d_\xff\xfa\xd7]\x17\x06\xe4\xe7\xe7SWWG\xe2\
-\x07-\xaf\xc6 -]3\xdcz\xeb\xad\x8c\x1f?>\
-+5$\xa5DQ\x14\x0a\x0a\x0a\xc8\xcb\xcbs\x9d\xcb\
-\x1f\xb2\x97\x95\xa8\xf4\xfd\xef\x7f\x9fU\xabV\xd9\x1d\xaf\
-\xaf\xafg\xf5\xea\xd5l\xdd\xba\xd5.k\x18\x06?\xff\
-\xf9\xcfY\xb3f\x0d\x07\x0e\x1c\xe0\x8e;\xee\xe0\x9e{\
-\xeeq\x1c\xec\x8a\x15+\xf8\xcew\xbe\xc3M7\xdd4\
-\xea\x84P\x14\x85i\xd3\xa6\x0dZn\xee\xdc\xb9l\xd8\
-\xb0\x81\x87\x1ezh\xc8\xf6\xc1\xe7\xf3\xe1\xf3\xf9.\xcf\
-\xcb\xbax\x02\xb4\xb0\x7f l\xce\x9c9|\xef{\xdf\
-Ky\xd1\xb9s\xe7\xf0\xf9|L\x992\xc5\xae\xf7\xf4\
-\xd3O\xd3\xd8\xd8\xc8\xda\xb5k\x997/~2\xdc=\
-\xf7\xdc\xc3\xfe\xfd\xfbiiiI\xe9\xe4\xce\x9d;\x89\
-F\xa3\x1c<xpT\x09\x12\x8dFy\xe8\xa1\x87\xb8\
-\xf9\xe6\x9by\xe0\x81\x07\x5c\xcb\x1d?~\x9c'\x9f|\
-\x92\x03\x07\x0e\x5cV\xe0\xe7\xf3\xf90\x0c\xc3y\x01\xfa\
-P$\xc40\x0c6m\xda\x94q\xff\xdc\xb9sH)\
-\xa9\xac\xacDJ\xc9\x0b/\xbc@SS\x13\xabW\xaf\
-f\xde\xbcy)R\xb1v\xed\xda\x94\x05w~\xbf\x9f\
-P(\xc4[o\xbdE8\x1cv|\xaf\xa6ih\x9a\
-\x86\x94\x92\xbc\xbc<\x02\x81\x00\xf9\xf9\xf9Y\x9e\xb1\x1b\
-\x7fG \x10\xa0\xa0\xa0\xc0\x9d\x1b=\x1e\xaa\xab\xabY\
-\xb9r%\xcd\xcd\xcd\xe4\xe7\xe7\xe3\xf7g\xee\x91\xf7\xf9\
-|x\xbd^\xb6l\xd9\xc2\xf1\xe3\xc7\x07\x956UU\
-),,d\xdc\xb8q\x14\x16\x16\xda*Y\x08\xe1\xd8\
-vVF=\xf9Z\xb4h\x11\x13&L\xc8H8\xb6\
-\xb5\xb5!\x84\xa0\xa2\xa2\x82\x17_|\x917\xdf|\x93\
-\x07\x1ex\x80\xba\xba\xba\x0c]ZRR\xc2\xdc\xb9s\
-inn\xa6\xa4\xa4\x84\xa7\x9ez\xca&\xc4\xb7\xbf\xfd\
-mG;r\xef\xbd\xf7\xe2\xf1x\xe8\xea\xea\xe2\xab_\
-\xfd*~\xbf\x9fH$\xc2\x9bo\xbe\xc9\xb3\xcf>;\
-(\x92\x1f~\xf8an\xb9\xe5\x16,\xcb\xc2\xe3\xf1\xb0\
-g\xcf\x1e\x1e}4uU{,\x16\xe3\xc1\x07\x1f\xe4\
-\xde{\xef\xb5U\xe8\xb2e\xcb\xa8\xaf\xaf\xe7\x87?\xfc\
-\xa1].\x12\x89\xb0q\xe3Fjjj\x88F\xa3\xfc\
-\xf8\xc7?f\xff\xfe\xfd\x19\xef\xd5u\x9d\xeb\xae\xbb\x8e\
-G\x1ey\x84\xda\xdaZ,\xcbBUU6l\xd8\xc0\
-\x1f\xff\xf8G\x9bX\xaa\xaa\xda\x8e\xc3eIHB\xc7\
-'W\x94R\xd2\xda\xdaJuu5;v\xec`\xfb\
-\xf6\xed\xdcw\xdf},^\xbc8s{\xc0\x85z\xb3\
-g\xc77\xc4tww\xb3j\xd5*\xf2\xf3\xf3\xe9\xec\
-\xect\xfd\xbd\xdd\xea\xeaj\x96,Y\xc2\xf2\xe5\xcby\
-\xf0\xc1\x07Y\xbe|9g\xce\x9c\xe1\xae\xbb\xee\xc2\xe3\
-\xf1\xb8z-k\xd7\xae\xe5\xb6\xdbnc\xe3\xc6\x8d|\
-\xe5+_a\xf3\xe6\xcd\xd4\xd5\xd5\xb1dI\xea\xd1\xb3\
-^\xaf\x97M\x9b6\xb1y\xf3f\x00\xd6\xad[\xc7\xd2\
-\xa5KY\xb7n]\x86\xa4=\xfc\xf0\xc3\xd4\xd7\xd7S\
-\x5c\x5c\xcc\xd9\xb3\xcek\x8bg\xcf\x9e\xcd\xf3\xcf?O\
-QQ\x11+V\xac\xa0\xb6\xb6\x96e\xcb\x96\xd9*.\
-\x81\x87K91\x97\xf4\xb2&L\x98\x90\xf1<\x18\x0c\
-\xd2\xd7\xd7\xc7\xc0\xc0\x00\x9b7of\xd9\xb2e\xdcu\
-\xd7]\x83\xfa\xd7%%%6\xd2JKKQU\x95\
-\x8f>\xfa\xc8\xb5\x83\x93&M\xa2\xa0\xa0\x80\xf5\xeb\xd7\
-\x13\x0e\x87\xf1z\xbd\xec\xde\xbd\x1b\x80\xb2\xb2\xb2\x0c\x82\
-\x18\x86\xc1\x82\x05\x0bX\xbcx1\x7f\xf8\xc3\x1f\xd8\xb2\
-e\x0b>\x9f\xcfV1EEE\x8e\x04\xac\xae\xae\x06\
-\xe0\xe4\xc9\x93\x83\xaa\xa2\xa9S\xa7b\x9a\xa6c9)\
-%?\xf8\xc1\x0fl\xf5\xdc\xd9\xd9Iaa!]]\
-]\x9c8q\x22\x15\xe1\x8a2t/+\xb9\xe0\xb8q\
-\xe32\x9e\x1f:t(\xbe\xd1\xb2\xae\x8eh4:\xe8\
-\x82\xec\x04$t\xb9i\x9a\xd4\xd6\xc6\xf7\x03\x1e<x\
-0\x83 \x09DO\x9c8\x91\x96\x96\x16N\x9c8a\
-;\x17UUU\x00\xb4\xb7\xb7g\x1e2\xa3\xeb\xb6\xe3\
-\xf1\xcc3\xcfPXXH^^\x1e\xb7\xdf~;\x96\
-e\xd1\xd8\xd8\xe88\xce\xaa\xaa*,\xcb\xe2\xd4\xa9S\
-\x83\x06q\xd3\xa6M\xe3\xd0\xa1C\x19c\x95RRT\
-T\xc4\x8d7\xde\xc8\x87\x1f~Hss\xb3m\xe7\x14\
-E\xc9\xb0y\xc9\xef\xb8\xac\x19\xc3`0\x98q\xbf\xb1\
-\xb1\x11UUY\xbat)\x07\x0e\x1c`\xdb\xb6m,\
-]\xba\x94\xf2\xf2r\xd7\xb6B\xa1\x90M\x90\x84\x07\x96\
-\xdc\xf9tn\x04\xd8\xb1c\x07\x9a\xa6\xd9\xf5\xae\xbf\xfe\
-z\x82\xc1`J\xf0\x96\x80\xc9\x93'SQQA$\
-\x12\xe1'?\xf9\x09\x81@\x80\xea\xeaj\xda\xda\xda\xd8\
-\xb0a\x03\x0d\x0d\x0dx<\x9e\x8c\xd8b\xfa\xf4\xe94\
-66\xa2\xeb\xba\xfd\xae\xf42\x09)\xaa\xaf\xaf\xcf`\
- \xc30X\xbe|9\x00/\xbd\xf4\x12\x89\xdf\xa5\x1f\
-L\xda\x06K-y.\x15$9\xe9\xcc\xc3\x87\x0fS\
-YY\x89\xaa\xaa,^\xbc\x98\xe6\xe6f\xde~\xfbm\
-\xee\xbb\xef>\xd7\x17vtt\xd8\x03\xbc\xee\xba\xeb\xe8\
-\xea\xea\xc24\xcd\x0c\xc4&\x10\x0f\xa4\xa8\xb4\xd2\xd2R\
-\xc6\x8d\x1bGCC\x83c6!\xc1\x0cg\xce\x9ca\
-\xd7\xae]ttt\xd0\xd0\xd0@0\x18\xc4\xe3\xf1d\
-\x10CJ\xc9\xc4\x89\xf13\x82\xf7\xec\xd9\x93\xf1<\xb9\
-?\x8b\x16-\x02`\xf7\xee\xdd\x19\x041M\x93\x193\
-f\x00p\xe2\xc4\x89Kz\x81\xc9{\x1b/+R\xaf\
-\xaf\xafOi(\x12\x89\x10\x0e\x87\xed\xc1\xdct\xd3M\
-\x04\x02\x01\xdey\xe7\x1d\x0c\xc3p\xdc\xbb\x97 bB\
-\xff\xe7\xe7\xe7\xd3\xda\xda\xea\x8a\x80\xf9\xf3\xe7\x03\xa4\xa8\
-\x91\xc9\x93'\xdb\x08\x1fl\xa0G\x8e\x1c\xe1\xb5\xd7^\
-\xe3\xbd\xf7\xde#\x1c\x0e;r}\xfa{\xf6\xec\xd9\xe3\
-j\xcb\x0c\xc3\xb0\x1d\x9b\xa6\xa6\xa6\x8crB\x08\xa2\xd1\
-\xa8\xad6]O\xbeKK\xcd\xb8\xd9[\xe5R\xe9\xf7\
-}\xfb\xf6q\xe4\xc8\x11\xfb^\xc2\xddM6\xf6\xabV\
-\xad\x22\x18\x0c\xf2\xfb\xdf\xff\xde\xb1\xad\xd3\xa7O\xd3\xd4\
-\xd4d\x1bk7\xc9K\xc0\x9c9sl\x82%\xde\x9b\
-\x08@\xdd\x08r\xfe\xfcy[\x05y\xbd^T5~\
-\xbaPyy9\x85\x85\x85\x99\x87\xd6\x98&s\xe7\xce\
-MA\xb4\xdb\x8f4/X\xb0\x80\xd6\xd6V\xc7\xd5\xfc\
-\xaa\xaa\xda\xc1\xed\x97\xbe\xf4%;o\xa5i\x1a\xaa\xaa\
-\xa6HD\xe2\xd9`F\xfd\x923\x86~\xbf\x9f\xef~\
-\xf7\xbbl\xdd\xba\x15UU9u\xea\x14\x91H\x84\x8a\
-\x8a\x0a\xbb\xc3\xb5\xb5\xb5L\x9f>\x9d\xad[\xb7\xb2d\
-\xc9\x12*++St\xf0\x13O<a\xeb\xd6\x04b\
-\xdd\x082i\xd2$TU\xa5\xad-\xf5T\xa0\x84A\
-w#H{{;\xcf=\xf7\x1c\xdf\xfa\xd6\xb7x\xfc\
-\xf1\xc79s\xe6\x0c\xe5\xe5\xe5\xcc\x9e=\x9b5k\xd6\
-dr\xa2\xa2\xd8\x1e\xd8O\x7f\xfaS\x0c\xc3\xe0\xf5\xd7\
-_g\xe7\xce\x9d)\xeak\xca\x94)\xf8|>N\x9f\
->\xed\x1a\xf7\xbc\xf1\xc6\x1b|\xe3\x1b\xdf`\xcd\x9a5\
-\xcc\x981\x83H$\xc2\xc2\x85\x0bY\xbf~=\xbbv\
-\xed\xb2\xddt]\xd7m\x95\xe6F\x10\x15\xb8A\xd3\xb4\
-\xea\xbc\xbc\xbc\xdaDG\xa7M\x9b\xc6\xc0\xc0\x00==\
-\xf1\xdf\xb1\x0d\x87\xc3tvvRWWGii)\
-_\xf8\xc2\x17\x985k\x96\x9db\x07X\xb8p!u\
-uu\x04\x02\x01;o#\xa5\xe4\xf9\xe7\x9f\xa7\xb1\xb1\
-\xd1.WTTD__\x1f\xf5\xf5\xf5\xf4\xf6\xf6f\
-t(\x10\x08 \xa5\xa4\xbe\xbe>\x05\xf9\xa5\xa5\xa5t\
-tt\xf0\xee\xbb\xef\xda*\x22\x9dS\x0f\x1d:\xc4\xbe\
-}\xfb(++#\x10\x08\xd0\xd0\xd0\xc0c\x8f=F\
-___f\x00\xa6(466\xd2\xd7\xd7GUU\
-\x15g\xcf\x9ee\xfb\xf6\xed\x0c\x0c\x0c\xa4\x94M\xb8\xcb\
-;v\xec\xa0\xa5\xa5\xc5\xd5\xf9y\xe5\x95W\x08\x87\xc3\
-L\x980\x81h4\xca\xaf~\xf5+\xf6\xee\xddkK\
-\x89\xae\xeb)R\xaai\x1a\xa5\xa5\xa5\x04\x83A\xba\xbb\
-\xbb/\xb6\x05<\xe8\xf7\xfb\xbfP\x5c\x5c\xbc2A\xf1\
-/~\xf1\x8b\x04\x83\xc1\x14\x9f\xdb0\x0c\xee\xbe\xfbn\
-\xd6\xaf_\x9fu\xd2\xee7\xbf\xf9\x0d;v\xec\xb0;\
-%\xa5\xc40\x0cL\xd3LQ\x11\xc9il\xd34m\
-NJ\xae\xa7\xeb\xba\x1dy;\xa5\xc7\x93\xf7D&r\
-FB\x08\x9b\xdb\xdd\xd2\xed\xb1X\xcc\xb6}\x89TM\
-r\xfb\x96e\x11\x8b\xc5R\xfa\xe3\x96~\x8f\xc5b)\
-\xefM\xd8\x1b]\xd7m\x07&9\xdb]SS\xc3\xf1\
-\xe3\xc7S\xd21\x9elS\xd2\x1e\x8f\x87W_}\x95\
-\xfa\xfaz6n\xdc\xc8\xf4\xe9\xd3\x1d\x0d\xa1eY\xb4\
-\xb6\xb6\xf2\xe4\x93O\xd2\xd9\xd9\x99Q&\x91>p\xdd\
-\xb0\xa2(x\xbd\x99\x07\x95\xa5#\xd65\xd2M\xaa\x9f\
-\xcd\xc9x\x9a\xa6\xa5D\xfeN\x99\x06\x9f\xcf\x97\xd5\xae\
-\xe2d\x977y\xa2j('\xf4\x0di\xc6P\x08\xc1\
-\xd9\xb3g\xf9\xf2\x97\xbfLmm-\xb5\xb5\xb5L\x9a\
-4\x89\x8a\x8a\x0aB\xa1\x10\xed\xed\xed\x1c;v\x8cc\
-\xc7\x8e9\xba\x99\x83\xcd\xd49\xfd\xbd\xd4\x0c\xa3[\xbb\
-C\xbd\x7f\xb9\xe5.5\xbb\xe84Wt\xd9\x04qk\
-(\xc1\xe1\xcd\xcd\xcd\xb6\xe7\x94\xf33\xb6>\x01\x0b\x18\
-.\x85\x8f!M\xe1f\xbb.k\x8c\x00WN\xb8!\
-g{\xc7`x\xa5h\xc8q\xc8\x18\x8c,Q\xc6$\
-dLB\xc6`LB\xae!O\xccUB\xc6\x8d\x1b\
-\xc7\xacY\xb3\xc607L\x90\x989tTY\xe9\x01\
-\x8fS\xaeh\x0cr\x0b\x96e\x11\x8dF3\x16\x12z\
-\x00K\x88\x8b\xfbd\x0d\xc3`\xdb\xb6mc\x18\x1b\xa5\
-X\xc4\x03\xe8@,]\x9c\xc6`\x94T\x19\x10\x16B\
-\x0c\x8cyT\xa3\x0fR\xc6w\x16/\x05&j\x9aV\
-!\xa5\xf4p-\xee%\xbev\xc0\x14B\xc4\x80^E\
-Q:TU=\xa7iZP\xd3\xb4\x88\xc7\xe31\x00\
-\xf9\xff\x01\xfa\x90K\xa0\xc0O~5\x00\x00\x00\x00I\
-END\xaeB`\x82\
-\x00\x00\x03|\
+\x00\x006\xe2\
\x89\
PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
\x00\x00d\x00\x00\x00d\x08\x06\x00\x00\x00p\xe2\x95T\
@@ -2259,56 +952,879 @@ PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
\x06bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\
\x00\x00\x09pHYs\x00\x00\x0e\xc4\x00\x00\x0e\xc4\x01\
\x95+\x0e\x1b\x00\x00\x00\x07tIME\x07\xd9\x03\x03\
-\x0e\x1c\x0e\xa7\xa1o)\x00\x00\x02\xfcIDATx\
-\xda\xed\xd6\xbfo\x1cE\x18\xc6\xf1\xef\xcc\xed\xda\xb1\x0f\
-\x9b\x93\x85\x90-\xb08\x12\x09wn\xac\x14n\x10\xe0\
-\x8b\x90K7\x14\xc8\x7f\x03\xfc\x01T'QB\x81(\
-\xdd\xd0\x906m0\x8ep*DD\x94 \x17\xc8\x0e\
-\x06d\x90\xec\xe4\x02\xde\xf3\xde\x9e\xf7\xd7\xecP\x1c9\
-\x892R\xaeX\xf1|\xa4\xedv\xa4\x9d}\xe7y\xdf\
-\x01\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\
-\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\
-\x11y1L\x9d>vqq\xf1\x13cL\xf8\x9c\xcb\
-\xa6\x80\xcfNOO\xffVA^\xb0\xf5\xf5u\xdfn\
-\xb7\xf1\xdeSQQ\xbe\xf9\x94\x97\xaeLS>\x99\xc6\
-\x9d\xcd\x8c^\xb2`\xac\x1f\xef,\x8ec\xf6\xf6\xf6V\
-\xb2,;\xaa\xc3\x1e\x83\xbaE:MS\x0cp?\xff\
-\x85\xce\xf5\x19\x1a\xe1\x05\x99\xbb\xa4\x19^\x81$\xa0<\
-\x9f\x22\xfbu\x86\xe1\xe1,\x00eYb\x8c\xf1u\xd9\
-\x9f\xadS1\xaa\xaa\x22\xcfs\xf2\xbc\xc0Sa\x8d\xe1\
-\xaay\x9f\xcf;wx\xe7\xf5\x0f\x98\xe7\x1a\x8bW[\
-\xd8W2\x8a\xa2\xa0(\x0a\x9cs\xb5:p\xb5J\x88\
-s\x8e<\xcf\xc1\x8f&\xc3`\x90\xf2\xe1{\x1f\xf3\xd1\
-\xad\x1b|\xbd\xfd\x90w_;\xe3$}\xc0\x17\xf7?\
-%\xcfs\xbc\xf7\xcf\x12\xa2\x82L\x82\xf7\x9e,\xcb0\
-\x18\x98\x82\xe1\xc01\xd7l\x92W)\x00\x87\x7f\x1e\xf2\
-cr\x0b\xe3-Y\x96\x8dS\xa5\x82L\xb8e\x19\x00\
-\x0fs\xf3S\x0c\x86C\xa6\x1b\xa3yQ\xe1)]\x81\
-\xf7\x8c\x92\xf4\xec\xe6R\xa3\x82\xd8:&$\xcbr*\
-</\xcf7\xb9\xfd\xf3M\xba7n\xf2\xe0\xf4.\xf7\
-\xfe\xf8\x96\xb7\xdf\xd8\xa2(\xf3\x7f\xdf\xcb\xd4\xb2&\xa9\
-(\x0a\xe28\xc6\x1aK2Wq\x995\xf9\xc1}E\
-uo\x8eW\xafe\x1c\x97\xdf\xf0\xfbO{D\x8f\x13\
-\xce\xcf\x13\xbc\xf7\xcc\xce\xceb\xadUA&\x16ik\
-1\x18L\x05\x8diC\xc3\x86|\xf7\xdb\x97\x5c\xdc1\
-<y\x94\x90\xfe\xe5H\x1e;\x8c1\xb5JFm\x0b\
-\xe2\x9ccaa\x81\xf0l\xc8\xf7\xdd\x0b.\x9fV\x18\
-\x03\xc6\x8e\x1eo\x0cA\x10\x8cgN\x9d\xd2Q\xcb[\
-V\xb7\xdbecc\x83\xfd\xfd}\x0e\x0e\x0e\xe8\xf5z\
-\x94eIUUDQD\xab\xd5\x22I\x12z\xbd\x1e\
-\x8dF\x83~\xbf\x8f\xf7\xbe>\x1d\xa0n3\xa4\xddn\
-srr\xc2\xe6\xe6&Q\x14\xb1\xb4\xb4\xc4\xda\xda\x1a\
-\xdb\xdb\xdbx\xefi\xb5Z\xac\xac\xac\xd0\xe9t(\xcb\
-\x920\x0ck\x95\x90Z5\xd9\xd5\xd5U\xbf\xbc\xbc\xcc\
-\xd6\xd6\x16\xbb\xbb\xbb\xa3\x01o\xed\xf8\xc7GQD\x18\
-\x86x\xefI\xd3\x14\xe7\x1c\xce9\x8e\x8e\x8e\xde\x1a\x0c\
-\x06\x8f\xd4\xb2&\xa0\xdf\xef\xb3\xb3\xb33\x9e\x13\xff9\
-]\xc6P\x14\xc5hcA@\x10\x04\x14E\xa1k\xef\
-\xa4\x1c\x1f\x1f?\x04\xca\xe7Y\x13\x86\xe1L\xb3\xd9L\
-\xe38FDDDDDDDDDDDDD\
-DDDDDDDDDDDDDDDD\
-DDD\xfeO\xfe\x01\xd1\xc0Q%\xbd%\x7f`\x00\
-\x00\x00\x00IEND\xaeB`\x82\
+\x0e\x1c$|\x1a\xa6\xff\x00\x00 \x00IDATx\
+\xda\xed\x9dw\x98\x9de\x9d\xf7?\xf7SN\x9f\x993\
+3\x99Lf\x122\xa9\xa4\x03\x91\x90\x10j\xe8H\xd9\
+\x05\xa5\x88\xc8\xba\xeb\xcb\xb2\xae\x04QW_W]]\
+v]EQVPqYu\xa5Y\xc0\x12:\x16\x88\
+\x94\x00\x09)\xa4M\xea\xb4L\xa6\xcf\x9c9\xbd=\xf5\
+~\xff8\xf3<\x99A\x944}\xdf\xeb\xbd\xb8\xaf+\
+W2\xc9\xc9y\xca\xf7\xfe\xb5\xef\xaf\xdc\xf0\xeezw\
+\xbd\xbb\xde]\xef\xaew\xd7\xbb\xeb\xdd\xf5\xeezw\xfd\
+\x7f\xbf\xc4\xb1\xfc\xe7\xba\xba\xba\xab\x0c\xc3\x08N\x992\
+\xe5s+W\xae<QQ\x14\xb6m\xdbFmm\xed\
+\xa1\x0b\xb8\x02\x09 \xe4\x1f\x5cMU\xd5\x94\xa2(\xf9\
+r\xb9\xac\xbf\xfa\xea\xab\xb3\xfeo\xbf\x8c\xda\xda\xda\x9f\
+]w\xdduW\x97\xcbe\x17@A\xe0H\x89\xf8#\
+o\xc9q\x1c\x02\x81\x00\xaf\xbf\xfe\xba\xb3`\xc1\x82\xc2\
+\xc0\xc0@l\xcb\x96-\xd3-\xcbJ\x1e\xed=h\xc7\
+\xf2\x00\x8b\x16-\xfa\xe1\xcc\x993\xeb7o\xdeL\xa9\
+T\xc2\xb6m\xea\xeb\xebihh@\x08A\xbf\x95b\
+\xda\x05E\xaa\xa2:N:\x88\x93\xd1qs:vJ\
+C\x165\x80\xb0\x94\xf2\x0f\xbew\xda\xb4i\xa2\xb7\xb7\
+W\xfe%@\xa8\xaa\xaa\xba`\xc5\x8a\x15kt]7\
+\x1d\xc7\xa9\xe9\xef\xed\xd3m\x0b\x84\x2210\x09\xc5\x04\
+\xb2\xa0M\xd8LB\x08\xf6\xee\xdd\xcb\xd2\xa5K\xbd\x8d\
+\x85\xa6i\xb1X,\x86\xeb\xba\xa7\x85B\xa1lmm\
+\xed\xae\x81\x81\x81\xec\x9f\x1d\x90E\x8b\x16\xb1w\xef\xde\
+\x90\xe38(\x8a\xe2\x94J%\x5c\xd7\xc54Ml\xdb\
+\xc6\xb2,\xca\xe52B\x08\x8a\xdd\x09\xba\xba\xc3Hi\
+\x220\x91\xaa\x8b@\x80\xa8<\xf08\x19\x95g\x9cq\
+\x86\x04\xc8f\xb3\xb4\xb6\xb6\x8a\xbf\x94T\x94\xcb\xe5\xe6\
+\xc9\x93'W\x9b\xa6\x89\x82\xe0`\xb8\x87\x85\x17*\xd8\
+\xc3A\xecD\x10g4\x88\x8c\x0a\xa4\xa9 -\xa5\xf2\
+\xd24\x0dUU1M\x13EQp]\x17\xc300\
+MS^u\xd5U\xbf\x11B\xf0\xdak\xaf]\x00\xfc\
+\xfe\xcf\x0eHGG\xc7\x9c\xd3N;\xad\xad\xb6\xb6\x96\
+B\xa1\x80i\x9a\x13\x00\xf1nNQ\x14\xa6Lm\x22\
+\x1c\x0e\xa3\x08A\xabq\x80\xe5\x1f\x82@@\xc1\x1e\xd5\
+\xb1z\xa3\x98\x83\x01\x9c\xe1 B\xa9(\x05)%\xc1\
+`\xf0/\xab\xb3\x85\xf07\x92\x86\x8a;?C ^\
+C ^\x82\x13K\x13>;\xf4\xe8$\xdc\xa2\x8a\xeb\
+\xbaH)1\x0c\x03!\x04RJ,\xcb\xc2u]a\
+\x18\x06\x9a\xa6\x01\xb8\x7f\x11\x95U.\x97\x1b\x1a\x1a\x1a\
+\x08\x85B\xe4\xf3y\x0c\xc3\xf0o\xceq\x1c\x1c\xc7\xf1\
+o4\x10\x08T\xc0\x11\x82^{\x84\xf3bM\xb8F\
+\x90%KNa\xe7\xe4W\x89\x08\x89\xa2\xe8\xa4_\xae\
+\xa2\xb0'\x8c\x94\x12\xd7u\xff\xec D\xa3\xd1\xb3\xae\
+\xb9\xe6\x9au\xa5R\xa9\xf2B])C\xf5B\xb8)\
+\x9d\x19\xbbNat\x97\xacH\xf0[\xe4\xb4m\xef.\
+f\xcc\x98\xe1\x032^B\xca\xe5\xb2\xbf1\xa5\x94\x94\
+\xcb\xe5\x8fWUU]WUU\xf5@\x7f\x7f\xff\xa6\
+?\xab\x0d\xb1m\x1b\xc30|i\xf0n\xc4q\x1c\x7f\
+\xb7\x09!PU\x15\xcb\xb2\x90\xaeK}:\xc4\xc1\xa7\
+\x15N\x08.&W?\x05;1\x17\xac0I:)\
+\x0c\x988y\xc7\x07\xe4\xec\xb3\xcf\xfe\x1f)e \x99\
+L\x86{{{\xff6\x9b\xcd\xe6\x8f' R\xca\xb0\
+\xaa\xaa\x15\x89\x96\x92]\x93w\x8a\xf3\xaf\xac\xc3\x956\
+vVCd\xc3\xd8Y\x0d'\xabQ\xde\x1fA:\xc2\
+\x97\xa6r\xb9\x8c\xa2TT\x97\x07\x88'!\x8e\xe3T\
+\x9eWJ\xb9j\xd5\xaa\xab\x9b\x9b\x9by\xf0\xc1\x07\xd7\
+\x03\x7f\x1e@\xa6M\x9b\xb6\xb0T*\xcd\xb7m\x1b)\
+%\x8e\xe3LPY\x8e\xe3\x00\xf8*K\xd34\xff3\
+\x0b\x1bf\x13MU\x91$Aw\x7f7\xf1\xf7\x14\xd0\
+\xcc\x00\xd1D\x9cH\xbd\x86\xac\x11HC\x01W\x80\xe0\
+#\x00\xe1p\x98\xdd\xbbw\x7f\x148&@\x9a\x9a\x9a\
+\x18\x18\x18\x18\x0f\x884M\x13\xd341]\x9bX\xb5\
+\x0e\xb6\xc2\xf2\xc9\xef\xa7\xaa%\xc4K\x9d\xbfb\xfa\xbc\
+&\x86\x8c.\xf2\x1d*N\xa9\x02\x80\xf7\x9c\xe3\xed\x86\
+\xf7gO2\xc6\xde\x87\xc8f\xb3D\xa3Q\x14E\x91\
+\x7f6\x95U[[\xbbf\xd9\xb2e\xf3\xd2\xe9\xb4o\
+/\x1c\xa7\xb2\xb3=/+\x18\x0c2f\xf0\x09\x06\x83\
+\xb8\xae\x8beY\xbe\xb1WQ\xd8\x17\xee\xe0\xc2\x05\xd5\
+@\xf1-\x0a]\x92^WC\xb9-\x02\x80eY\xc7\
+E\x22\x06\x06\x06hjj\x9a\x04,\x01\x1c\xc30N\
+N$\x12d\xb3Yl\x5c\xec\x11\x9b\x9d\xcf\x17\xb8\xf2\
+}\xf3y\xfa\xd55\xcck\xbe\x82\xf7\xd4\xaf\xe4\xbf\xb6\
+\x7f\x8al*\x87.\xc3\xbe\x9b\xeb\x01\x02P(\x14p\
+\x1c\x07\xd7u)\x95J\x9e\xed\xc0\xf3\x1c=M\xf1g\
+\x03DJ\xa9\x14\x0a\x05\x1f\x08\xdb\xb6\xc9\xe5r\xd8\xb6\
+M>\x9f\xf7uk\xa9TBQ\x14\xc2\xe10\xb6m\
+c\xdb\xf6\xa1\x87\x91\x02\xc2\x15\xf1\xff\xc8\xc2\xbb\x91\x8a\
+K\xda\xedd\xe3\xd6.\x92U\xeb\x18\x1d\xfb\x9c\xb7#\
+\x8f\xd7*\x95J7\x9f\x7f\xfe\xf9w\xaa\xaa\x8a@\x90\
+03L?\xbd\x1aw8\x8c3\xda\x82H\xc3\x8f\xbe\
+\xf3S\x14U\xf0\x1a[xUn&\xa0\xcd'\x9fl\
+'\x1aU\x91Rz\xb6\xc1\x07\xa4X,\xfa\xef\x22\x9b\
+\xcd\x12\x8b\xc5|0\xc6IKc,\x16\x9b\x95\xcf\xe7\
+;\xff\x1c\x80\xf8/\xd8\xb2,l\xdb\xf6_\x9e\xa6i\
+>\x10\xaa\xaa\xfa\xdeK\xb1X\xf4\x8d\xbd'!X\x92\
+\xd1^\x83\xa9\xef\x99\xcbu?Z\xca\xcf>\xb2\x81\xa6\
+\x93\xd2\xac\xed\xc9\xb2'\xfb*\xf9\x9c\xe9\xab>\xa0\xce\
+\xbb\xfe\xf4\xe9\xd3\x93\x07\x0f\x1et\x8f\xd2nD\xbd\x0d\
+StM\xb4s\xfa\xa9\x9d\x1f\xc1\x92\x83H\x1bD6\
+\x86\x9dQqR:\xf9-\xd5\xa0H\x1ci\xfb\xb6\xc2\
+\x93\x90T*\x85\xaa\xaa8\x8e\xe3\xc5\x1f\x08!\xd04\
+\x0dEQ\xc8\xe5r\x04\x83A\x22\x91\x08\xa6i\xca\x93\
+O>\xf9\x9b\xaa\xaa\xde\xf1\xca+\xafT\xfd9\x00\x91\
+\x1e\x10\xdeNQ\x14\x05\xdb\xb6\x994i\x127\xddt\
+\x13\xdf\xf9\xcew\xa8\xad\xade\xfa\xf4\xe9tuu\x91\
+\xcdf}c\xed8\x0e\x96\x10\xa8\xdb\x5c\x8a\xf9\xa9\xdc\
+\xf4\xab\x0fP\x1b8\x95\x9b\xd6\xdd\x88\xae\xa9\xa8v\x08\
+Mk$^\xe3\xc7(\xf2\xca+\xaf\xdc\xe7\xfd\xff\xf5\
+\xeb\xd7\xcf\x07\xf6\x1d\xad\x94x*\xc4tM\xe2\xe1\x00\
+\x85\x8c\xcbM'\xdf\x81\xab\x16Y\xb3\xf7^&74\
+2\x9c\xefe\xf4\xd50J@NP\xc9\xde\x86TU\
+\xd5\x07$\x16\x8b!\x84\xf07\xa1\xa2(\xfe5\x02\x81\
+\x00\x96e\x09!\x04\xe1p\xb8p\xb8\xf7\xa8\x1c\xce\x87\
+\xa6L\x992i\xca\x94)/\xb9\xae;\xcd\xb3\x05\xd9\
+l%\x08\xbd\xea\xaa\xabhll\xe4W\xbf\xfa\x15\xcd\
+\xcd\xcd\x00\xac]\xbb\x96\xdbo\xbf\x9dP(\x84\xa6i\
+\xbeq7\x0c\x83r\xa9\x84\xd0\x04\xa1X\x90\xda\xdaZ\
+\xba\xd5!\x16|\xbc\xcc\xac\x8f\x16i\xb9u\x94\xc9\xd7\
+$\x89\x9fn\x10i\x16\x04\x83\x01\x11\x0c\x06\x09\x06\x83\
+\xd4\xd7\xd7\xe38\xce1\xe90\xc30\xbc\x00\x0eE(\
+\x9c\x14~?\xa1j\x9b\xe7\xdfx\x9dE\xda\xf5\xac>\
+\xe3njB\xf5\x94\xcb\xe5\xca\xbd\x96\xcb\x98\xa6I6\
+\x9b\xf57V \x10\xf0\xa5\xe1\xb2\xcb.#\x12\x89P\
+__\xcf\xdc\xb9s}`4M\xf3\xb5\x87\xe7}\x1d\
+W@\x92\xc9d\xed\x05\x17\x5cpn(\x14\x8aX\x96\
+\xe5_\xb8\x5c.\xf3\xe1\x0f\x7f\x18\xc30\xb8\xff\xfe\xfb\
+Y\xbe|\xb9\xaf;\xbd\x1b_\xb0`\x01\xb7\xddv\xdb\
+\x04\xe3\xee\xc5-\xa6a\xe2\x04L4M%\x9bt\xb8\
+j\xe1\xc7\xa8\x9b\x1a#\xb28K\xed\x15\xc3\xe8\x0bR\
+\x18\xa51o\xc84\x8f\xd8@644\x5c\x1e\x8dF\
+o\x8a\xc5b7J)\x97\x0c\x0d\x0d188Hb\
+h\x84\x817\xb3\xf4\xed\x18\xe0\xb95k\xd9\xf1\xfa\x0e\
+\xf6m\xda\xc3\xfd\x0f|\x97\x9d/v\x91/d}\xe0\
+<\x0f\xca\xf3\xa2\xce>\xfbl\xaa\xab\xab\x91R\x92H\
+$|\xa3\x9eH$\x18\x93\x06_ue\xb3Y_]\
+\x1fW\xa3\xee\xf9\xdf\xde\xc5\x15E\xe1\xfc\xf3\xcf\xa7\xb5\
+\xb5\x95\xc7\x1f\x7f\x9c\xba\xba:\x9ez\xea)\x9ey\xe6\
+\x19B\xa1\x10W]u\x15\xa7\x9f~:\xa9T\x8a\xfb\
+\xef\xbf\x9f\xbe\xbe>\x0c\xc3 \x99L\xfa\xd1\xb8i\x9a\
+ Aj\x92r\xc9\xe1\xae\xf7>\xc5\xa3\xad\xdf\xe0\xa6\
+\xf9_e\xed\x8e\x17P\x1b\xfax\xcd\xdeV\xb1#J\
+eg\x1e\xe9\x9a<y\xf2\xb7\x97-[6\xcb\xb2,\
+T\xa1P\xacN\xcbX\xb5&\xdc\xac\x8e\x9d\xd4\xe9\xdb\
+6\x0c\x02\xea\xb5i\x8c\xa6s$d\x96\xa6\xc0\x0a\xf6\
+\x8f\xbeDS\xa0\xc9\x7f\x91\x9eM\xb4,\x8bH$\xe2\
+{\x91\x1b7n$\x16\x8b\x91H$\xa8\xae\xaeF\x08\
+\xc1\xb4i\xd3\x18\x1e\x1e&\x9f\xcf\xfb1\xdb\x91H\xb6\
+r\xb8\x80x`\x14\x8bE\xa6M\x9b\xc6\xbf\xfc\xcb\xbf\
+\xa0i\x1a\xcf=\xf7\x1c}}}\xc4b1\x82\xc1\xa0\
+\xef\xeen\xdb\xb6\x0dM\xd3&\xf8\xff\x9e\xcd9$!\
+\x95(?\xa0F\x98\xd68\x85\x84\xd8\x85\xb4BH\x09\
+\x8e\xb4p\x1d\x07\xc34|\xd1\xb7\xde\xe2\x07755\
+\xbd\xd3};\xe5r\x99r\xb9\xcc\xeel\x17\x91s\x07\
+E\xe8\xac~B\x97uP\xf5\xe1}\xd4|\xf0\x00\xa1\
+s\xfb\x113\x93\x95\xebX&\x96{(\x9e\xf0$\xbd\
+\xbe\xbe\x1eM\xd3\xd0u\x9d\x97^z\xc9\xb7)\xba\xae\
+\xfbR\x14\x0e\x871\x0c\xc3\x07\xcf\xb35c\x804\xad\
+\x5c\xb9R\xd6\xd7\xd7\xcf?nF\xdd\x8b;L\xd3\xa4\
+T*100@$\x12ahh\x08\xc7q\xe8\xef\
+\xef\xf7\xe9\xe8\xd1\xd1\xd1\x0a\x975e\x0a\x9f\xfd\xecg\
+q\x1c\x87`0\x88\xaa\x1er\x1f\xbdw\xeb\xb4\x97\xd8\
+\xf0\xef*\xa7\xfe\xdb\xa9\x00<\xcf\x87\xde\xf6\xfa\xd9l\
+\x96\xf9\xf3\xe7wy\xee\xf0\xd0\xd0\xd0\xbf\x0d\x0c\x0c\xdc\
+\xf1N^\xa1\x07\xa6)-\x14\x14\xc8L\xe6\x8e\xcb\xbf\
+G{z3\xdf{\xf9\xdfX\xbcd\x0e\xddu\x9dd\
+wi\xbe4\x18\x86A*\x95\xf2\x8d\xf3\xf5\xd7_\xcf\
+\x9a5k\xc8d2\xd4\xd5U\x9c\xbe\xd1\xd1Q\xff\x1a\
+\xf5\xf5\xf5\x98\xa6I8\x1cfhh\x08UU\x89\xc7\
+\xe3\xe8\xbaN.\x97\x03`\xee\xdc\xb9\xec\xda\xb5\xcb9\
+.\x80X\x96U\xf0^\xa0\xa2(\x14\x8bE>\xf3\x99\
+\xcfP]]\xed\xe7>\xc6{\x22\xde\x9f\x93\xc9$\x81\
+@\xc0\x07\xe4\x87?\xfc!\x86a\xf0\xf1\x8f\x7f\xdc\xe7\
+\xbbTT\x96,YRQ\x89\xd2!9\xf7\x00s\x16\
+Fpr*\xd6p\x08{(\x885\x18DH\x05\xa1\
+\xbb\xfe5\x86\x86\x86\x0e\xdb\x90\xdb\x96\x8d\xab:\x08E\
+p\xdd\x82O\xb3\xbe\xf7I\x9c\x91i\x5c7\xf7K\x9c\
+\x7f\xea\x99\xdc\xfe\xe8\xe5\xbek\xab\xaa\xaa\x1f\x03yl\
+\xc3\x96-[*\xe4\xe3\x98s2i\xd2$\xa4\x94\x08\
+!(\x95J\xfe\xc6TU\x95P(D\xb1X$\x12\
+\x89\xf8\xa1\x80eY\xfe\xf7\x1f3 \xb5\xb5\xb5\xb7,\
+]\xba\xf4.\x8f.9\xe1\x84\x13H\xa5R\x04\x02\x01\
+\xd2\xe9\xb4\xaf\x82\xa4\x94(\x8a\xe2\xb3\x9f\xde\xee\x1a\xa3\
+\x16\x5ce,\x9a\x9a6m\x1a\x8e\xe3P(\x14\x10\x08\
+liQ,\x16)\x97\xcb\xf4YIZ\xa6;\xc8H\
+\x89\xc6I\xd3IM\xedC\x0a\x07\xd35QJa\x86\
+\x1e\x99\x5cIt\x1d\x01EbY\x16\xb6e!\x15\x89\
+\xa2\x09\x1a\xaa\x9b9X\xfa=\xc9$d\xdd~\xeaN\
+0\x08\x07#^\xcc3A\xe5x*\xb6\xa7\xa7\x87P\
+(\x84\xeb\xba\xac^\xbd\x9a\xad[\xb7\xd2\xd9\xd9\xe9{\
+R\xaaZa\x80kjj\xc8f\xb3\xa8\xaaJ,\x16\
+\xf3\xd5\x9e\x17\xbb\x1d\x8eS\xf2\x8e\x80\x98\xa69\xb5\xa9\
+\xa9\xa9\xa6\xa7\xa7\x07\xd34\xb9\xe7\x9e{\xd8\xb3g\x0f\
+7\xdex#?\xf8\xc1\x0fH$\x12\xd4\xd6\xd6\x12\x0c\
+\x06y\xe9\xa5\x97X\xb8p!\xbbv\xed\xa2\xa7\xa7\x87\
+\xb9s\xe7\xb2m\xdb6\xf6\xef\xdf\x7f\xfb\x82\x05\x0b\xbe\
+\xf3\xec\xb3\xcfr\xd1E\x17Q.\x97}\x95%t\xc5\
+\xf7\xbe\x5c\xc7EU\x04\xa1\xec|>q\xd1\x9dh2\
+\xca\x17\x9e\xf8\x08\x1f>\xfbF~\xb6\xfdn,\xcb\xac\
+\xe4R\xfe\xc8\x83\x0d\x0c\x0c0k\xd6\xac;\xa3\xd1\xe8\
+T\x00\xe9\xca)\xc9\xd1\x14\xd2uA\xb7\xe9\xfc\xa5\xc2\
+w_\xf8\x16i\xf7 F6\x88M\x89\xeeu\x9dt\
+\x0d\xe60\xcd\xb0\x0fH8\x1cf\xc6\x8c\x19\x0c\x0e\x0e\
+b\x9af\xaaT*\xf58\x8e\xb3DQ\x14q\xd7]\
+wI\xd7u\x85\xb7\x01=\x1b\x0b\xf8\x86\x1c \x95J\
+\x11\x8b\xc5\xfcMz\xb84\x8av8\x06\xdd4M\x0a\
+\x85\x02\xaa\xaa\xf2\xa3\x1f\xfd\x88o\x7f\xfb\xdb\xfc\xf4\xa7\
+?e\xfd\xfa\xf5\xa8\xaa\x8a\xae\xebh\x9aF*\x95b\
+\xef\xde\xbd\xe4\xf3y\xca\xe52\x89D\xc2S_!U\
+U\xd9\xb0a\x03\xaf\xbf\xfe\xba\xef\xab\x8f\xbd4\xdf\xdf\
+\xb7\xb1qqY\xd6p\x19\x8fl\xfb*\xb3\xb4\xf3\xb9\
+\xf6\xa4\xd5\xb4\xd4LA\xa0T\xd4\x9c\x22\xde\xc9\xb3\xfa\
+\xfb\xe9\xd3\xa7\xd7\x0b!(8eX8L}<\x8c\
+\xd3\x1f\xc1\xea\x0b\x93\x19M\x22\x88\x11\xaa\x98e\x8aC\
+\x92Fq\x22\x1df\x87\xcf8TWW\x13\x8f\xc7I\
+\xa5R\x98\xa6\xf9\xec\x9e={n\x8a\xc7\xe3\xd7Z\x96\
+5\xcb\xb2\xac\xaf]p\xc1\x05\xacX\xb1\x82G\x1f}\
+\xd4\xb7\xab^\x10\xe9QJ\x8a\xa20<<L4\x1a\
+=\x22^\xeb\xb0\x00\xf1\xbe\xccs\xf5N;\xed4_\
+-\x8d\xb7\x1fB\x08z{{\xfd?\x1f8p\xc0\xf3\
+\xbc\xd2\xfb\xf7\xef\xff\xab\xb1\xe8\x95P(\xf4\xf8\x89'\
+\x9e\xa8~\xf1\x8b_\xe4s\x9f\xfb\x1c\xa6iV\xf2)\
+\xaa\x8d\x10\x10\xd0\x228\xae\x8da\x9add\x8a\xaeL\
+\xe2\x10\x85!\xf0w\xe6\xdb-\x8f\x85\x05x#\xbf\x9f\
+\xebO\xaf\xc1\xb2s\x94Z\x06\xa9\xd6\xc2\x08GE\x1a\
+*\xc5=Q\xf2\xdbb *;=\x95J\xf9\xd7(\
+\x95J\xa4R\xa9\x09\xcf\x98N\xa7\x7f\x01\x9c\xb8j\xd5\
+\xaa\xaf\xddy\xe7\x9d\xe8\xba\x8ea\x18tuu\xb1t\
+\xe9R~\xf9\xcb_\xf2\xbe\xf7\xbd\x8f-[\xb6\xb0g\
+\xcf\x1e.\xbd\xf4R\x86\x86\x86X\xbbv\xad\xbf\xa9\x17\
+,X\xf0fkk\xeb\xaal6\xbb\xe5\x98%\xc43\
+p\x93'Ofhh\xc8\xb7\x15\xdeM\xbb\xae\xeb\xff\
+\xf2x\xac\xb1\x07|B\xd7\xf5\xbd\xc3\xc3\xc3\xafz\xdf\
+\xd9\xd2\xd2\x22\x9f{\xee9^|\xf1E\x96/_\xce\
+\x86\x0d\x1b*\xbb,\xe42\xb4\xce\xe2\xf9\xf8\xd3\xc8\xc8\
+(\xfd\xca\x1b\x18V\x89\xaa\x1a\x9d\x83C\x06\x85\xa2\xed\
+\xdfS,\x16;w\xf1\xe2\xc5_\x02\x84a\x18v[\
+[\xdbW<\xbe\xc9\xf7\x8e\x85D\x22Y \xaeg\xc5\
+{N!m\xf6\xb3a\xdfkdB\xfb)\x06l,\
+\xcbD\x22\xd14\xcd'2]\xd7\x95\xaa\xaa\x0a\xc7q\
+\x88\xc7\xe3$\x12\x89\xf1\xe8+CCC\xec\xde\xbd\x9b\
+\xe6\xe6f<\x97z\xe3\xc6\x8d\x00\xbc\xf6\xdak\x94\xcb\
+et]\xe7\xb5\xd7^\xa3\xa1\xa1\xc1\xbf_\xc30\xa8\
+\xa9\xa9\x89Y\x96\xa5\x1f\xab\x97%m\xdbFUU\x1e\
+~\xf8a\xa6N\x9d\xca#\x8f<\xc2\xce\x9d;\x09\x85\
+B$\x93I\xa2\xd1(\x83\x83\x83\x04\x02\x01b\xb1\x18\
+###d2\x19\xd2\xe94mmmW\xbf\xdd.\
+~\xf6\xd9g\xa9\xad\xad%\x97\xcb\xf94E\xa9T\xa4\
+.\xb9\x08\x07\x0b\x91\xa9\xa1\xcf\x19\x224\xbd\x8c\x99\x0d\
+\xd0\xc8<&\xaf\xa8\xe4\xb5\xa5%@a\x95\x10\xac\x1a\
+\x8biJ\x1e \xe3%D\x00\x03\xfdy\xfe\xf3o>\
+\xce\xc7\x7f}6_>\xe7ij\xecy\xa85)\xbe\
+\xb5\xe9\xab\x18\x86\x09\xa2\xc2Yy*T\xd3418\
+8\xd8988\xb8M\x08\xe1\x06\x02\x81\xb5o\xdd\xa0\
+\xabW\xaf\xc6\xb6mB\xa1\xd0\x045t\xf0\xe0\xc1\x09\
+?\x1f8p\xc0\xb7!\x85B\xe1\x0f>\x7fT\x80(\
+\x8a2\xc7\xb2,TU\xa5T*Q,\x16\x99;w\
+.o\xbe\xf9&K\x96,axx\x98\xda\xdaZ\xb2\
+\xd9,\xe5r\x99H$\xc29\xe7\x9c\xc33\xcf<\xf3\
+G/\xaei\x1a_\xfa\xd2\x97|C\xe8\xc5\x0b\x05\xa5\
+L\xa9TB\xa4\x05B\x08v\xe8\xfbx\xef\x195\xd8\
+\xd6x\xcfJ\xe2\x18\x0a\x99\x17\xea0\x87\x03\x80\xfc\x03\
+\xb0}\x9aE\x07\xc7\x86\x80\xae\xa3)\x01\x10\x90\xc8\x0f\
+\xf2F\xff\x03HW\x8e\xa9\xc0\x8a\x94744\xf86\
+@Q\x94_g2\x99\xd5o\x17\x8ey\xae\xbc\xb7\xeb\
+\x0f3\xed\xed\x7f\xff\xb1\x022\xbd\xb6\xb6\xf6F\xc30\
+\xa4\xa6i\xe2\xee\xbb\xef\xa6\xb1\xb1\x91\xbd{\xf7\xe2\xba\
+.\x83\x83\x83\x18\x86A8\x1c\xa6P( \xa5dt\
+t\x94]\xbbv\xfdI\xee\xa9X,\xe6\xa5\x94\xde\xb5\
+\x83\xe1pXw\x1c\x07\xddRq\xdcC*G\x09\x09\
+,\xc7fE\xf4\x16\x16\xcf\x5c\xc0\x96\xe4\xe3\xe4\x92\x1a\
+\xbb\xdd\xe7p\xb4\x18\x96\x09\x129\xc1\xa6\xb8\xae+}\
+\x03\x1a\x12\xc4'\x85(\x18e\x02!\x95\x9a\xaaZL\
+\xa5\x88\x16\xd2@\xa9\x00\x22\x91\xbe\xfamnnfh\
+h\x88\xb7+M\x02\x08\x04\x02\xed\x1d\x1d\x1d\x8d\xf3\xe7\
+\xcf\x1f\x9a2e\x0a7\xdcp\x03\x8f=\xf6\x98o{\
+\xbc\x80\xd7\xdb`\x1e\xc3\xa1\xeb\xba\xcf\x8a\x1f+ \x11\
+!\x04\xb9\x5cN\xd4\xd7\xd73<<\xcc\xe0\xc0\x10 \
+\x10\x02\x1f\xf1r\xb9\xec\x07T\xde6\x8e\xc5b\xa2T\
+*\xbdm\xf4,\x84\xf0+\xe9f\xce\x9c\xf9\xa0\xaa\xaa\
+\x1f\xbe\xfc\xf2\xcb\xfd\x00\xec\x90+)I\x0d\x0a\xfe\xee\
+\xe6\x9b\xb9\xe9gK\xf9\x97\xb3\x1f\xa3\x18/0\xd3l\
+\xe6'\xbfy\x02\xc3\x90\x9e\x0d\x08]t\xd1E#\x80\
+\x14\x8e\xa8\xb3,\x89\xa2\xc0\x22;\xc2\xf0\xc3\x0a\xd7?\
+t-R\x09q\xfd\x7f]\x83e[\x04\xb5\x08\xdb[\
+{\xa9\x8a\xc4}J\xdd#?\xff\x18\x18\xe3\xf2\x222\
+\x16\x8b\xf1\xe2\x8b/\xb2q\xe3FZZZ\xd8\xbau\
++\xe1p\x98\xf5\xeb\xd7\xfb61\x12\x89\xd0\xd2\xd2\xc2\
+\xae]\xbb\x18\x1d\x1d\xf5\x93t\xc7\xac\xb2\xa4\x94\xe8\xba\
+\xce\xbe}\xfb\x90\xae\xa4f\xb1N$\xac\x92\xeb\xb7)\
+\x0e9H\xf7m\xd5\x9c(\x97\xcb\x9d\x8a\xa2|\xf3\xed\
+\x9c\x84\xb7\xb0\x00\xfa\x07>\xf0\x01\xe6\xcc\x99\xc3\x07?\
+\xf8An\xbd\xf5V?\xcf \x10T\x05\xe3\xd8\xb2D\
+\xbc\xaa\x8a\xe6\xda\xa9<\xbf\xe3\xd7<\xd1w\x1f\xb6\xd5\
+\x88i\xb9P\xd9\xe1\xa2\xa6\xa6f\x92@\xd05m\x0f\
+\xa7]\x14\xc6\x18\xac\xd4U\xd9\x83\x01\x9c\xac\x06\x96\x8e\
+[RPu\x0dMS)\xe5Ml#\xe5%\xddd\
+4\x1a\x15###\x84B\xa1w\xe4\xf8\x1c\xc7\xe1\x95\
+W^!\x1e\x8f\xe3\xba.\xfd\xfd\xfd~\xa2\xcaK\xc8\
+y\xeco]]\x1d\x03\x03\x03h\x9a\xe6\x05\x91\xb1\xe3\
+\x02\xc8\xec\xd9\xb3+\x14@\xb2\x22\x9aQ)\x89\xd4\xcb\
+\x09\xa5;\x9e\x975\xb6\xe3z\x06\x06\x06\xfe\xebp\xe9\
+\x8d\xb9s\xe7\xfaQ\xed!u'\xb0]\x13Eh\x80\
+\xa0d\x15\xd1T\x8d\xa0\x16\xc5q\x5cL\xd3\xf2\x839\
+\xcb\xb2(8ej\xa7)H[%Z\x1fF\x99b\
+a\xccO\xf8\x9b`\xe0\xa1IH[\xf1=A\x8f[\
+SUUtuu=\xe0\xed\x11]\xd7\x7f\xfd\xa7\xee\
+\xd7u]>\xf9\xc9O\xfa\xdf3~\xed\xdbw(\x7f\
+\xd6\xdf\xdf\xef{\xa1\xf1x\x1c\xc7q\xa8\xaa\xaa\xfar\
+:\x9d~\xe1\x98\x00Y\xb1b\x05\x97]v\x19g\x9f\
+}6\xdf\xfb\xde\xf7hmm\xe5\xe4\x93O\xe6\xf5\xd7\
+_g\xee\xdc\xb9d2\x19Z[[\x09\x87\xc3\xcc\x9c\
+9\x937\xdex\xe3\xb0)\xf2@ \xc0\x0b/\xbc\xc0\
+\xde\xbd{\xe9\xed\xed\xf5\x19T!\x04\x85\xd6\x1cCF\
+#\xff\xeb\xa5[\x18\xcc\xea|\xea\xb1O`\x186y\
+'\x8e]\x14D\x22\x87\xa4\xae\xa2\x1e%\xca\xeb\x939\
+\xf8\x86\xe0\xc1\x07~\xc4\xfe\x9e.~\xbb\xf7\xa7\xfc\xed\
+\xaa\x8fr\xf7\xba[1M\x0bi\x1f\x02B\xd7u\x9f\
+J\x1f\x19\x19\xf9\xc8\xe1\xdes>\x9f'\x12\x89\x1c\x02\
+\xc3\x01\xcbt\xc7\xee\x05\x84*P\xd41m0\xf6\x91\
+\xd1\xd1Q_=\x1e\x8b\x84\xb8\xde.\x88\xc7\xe3\x84\xc3\
+a\x9ft\x0b\x04\x02,]\xba\x94\xee\xeen\xaa\xab\xab\
+}\xa3\xa5\xeb\xfa;^\xf4-*+\xa0(\x0a\x07\x0f\
+\x1e\xf4\x8a\x06d\xb9\x5c\x16\x00\xe5b\x91i+f\x92\
+\xcb\xe5\x88iu\xa4g\x1c\xa0iF\x80\xaa\xb4\x8e\x93\
+\x1d\xfb\x95\xd6ps\x1ab\xecI\xc2\xe10\xe9T\x9a\
+\xf5=\xcf\xb2\xe9\xcd..>\xf9\x06\x1ac\xd3\x11(\
+\x95X\xc7\xaaH\xd4\xbcy\xf3\xfcl\xe6\xe1\x12\x95\x00\
+555#\x1d\x1d\x1dM\xa7\x9cr\xca@*\x95B\
+Hpg\x0b\x96_YC~\xc0\xa18l\x93\x1bp\
+(\x0e\xd9\x18\x19\x17\xcf$y\xef\xf0O\xd9\xa8w\x04\
+$\x1a\x8d.\x07\xd8\xb6m\x1b\x89D\x82\xe1\xe1a\x8a\
+\xc5J\xe9\xce\xee\xdd\xbb\xfd\xc0\xd0\x03\xcdu]^~\
+\xf9\xe5#J&%\x93\xc9/\x0e\x0d\x0d}w\xcc\x8d\
+\x9c\xbe`\xc1\x82\x87\x0fy#\x95\x0a\x96r\xb9L\xca\
+\xcd1u\xae\x89\xa8\xb2i\x9c\xd6D\xd9\xcdQr\x12\
+(\x0a\xd8y\x95\xe1\x9fN\xf6\x1f\x5cJ\x89W\xb2\x9e\
+)\x8d\x925\x12\x08EL\x00$\x93\xc9p\xf5\xd5W\
+\xf3\xf4\xd3O\xfb1\xc8\xe1\xacL&\x83\xae\xebR\xd3\
+4\x9a\x9a\x9a*6\xa2\x7f\x80\x8e\x07\x15,\xc7E(\
+:\xae\xab\xa2\x11@\x09\xbb~N\xc4S\xe5\xc7\x04\x88\
+\xae\xeb\x7f\xe3e\xf8\xfa\xfa\xfa\xfc\xa4\xcc\xf8\xdf\x8fu\
+\x15\x0a\x85\xbd\xc0\xde\xb1\x1f\xe7{\x8c\x80\x10\x02\xa5P\
+y\x89\xa6ab+\x0e\xaa\xaa\xd0\xa2\xae\xe2\xefV\xde\
+JM\xa0\x9e\x0f|\xef|n\xbb\xeaV~\xb1\xfe\xfb\
+\x13\xe8s\xdb\xb1Y0\xe94\x92ST\x06r\xdd\x04\
+\xd5\xd3QP0\xcd2\xaeU\x89\x832\x99\x0cO?\
+\xfd\xb4\xef\x96\x1e\xe9R\x14\x85\x07\x1ex\x80\xe1\xe1a\
+\x84\x10<\xfe\xf8\xe3\xc4\xe3q:;;innf\
+\xcb\x96-\xcc\x9a5\x0b\xc7q\xd8\xb7o\x1f\xcd\xcd\xcd\
+ttt\x1c\x1b\x97%\xa5Tc\xb1\x18{\xf6\xecA\
+\x08A\xf4|\x9d\x15\x17\xd5 \x01#'I\xee5\x18\
+m\xb7\xc8t\x98\x98\x85C\xf9\x90\x9a\x9a\x9a\x11\xe0}\
+G[\xa6\xfa\xd3\x9f\xfe\x94B\xa1\xc0\xe7?\xffy\xbf\
+0\xc1RM\x84\x90\x9c<\xe5l~\xd7\xfe\x00\xa9\xce\
+\x06\xaeX\xf8\xb7\xcc\xa8Y\x84\xedT\xaa`<\x09\xe9\
+\xee\xee\xe6k\xff\xfb\xbb\x95\xc4V)\xc5\xc6\x9f\xec\xe2\
+\xc0 dSy\x8f\x02\x92\x8a\xa2\x08\xaf\x8e\xea\x9dv\
+\xed\xdb\xd9U\x8f]\x9e?\x7f>]]]\x8c\x8c\x8c\
+x\xcf\xce\xc9'\x9f\xcc\xe6\xcd\x9b\x19\x19\x19a\xd1\xa2\
+E\xa4R)FGG\xd14\xed\xd8$\xc4\x8b\xaa=\
+\xef\xc9\xd9\xa9\xf1fG\x96|\xbf\x83U\x94(\x9e\xf1\
+RUTU\xfa\xb9\x91@ \xe0\x0e\x0c\x0c\x1cU\xd3\
+\xca\xbcy\xf3hnnftt\x94\xe6\xe6\xe6J\x85\
+\xbde\xe2\xe0\x00\x02M\x09`K\x0b\xdb\xb1\x18H\x0f\
+\xd3\x95\x0e\xa3\x09\xdd\x8f_4M\x03\xcd\xa1\xa4\xa6p\
+\xb2\x1a\x8a\xd4\xc9\xe6\xb2\xc4\xf48\xb9\x5c\x07\x8a\xa2\xa0\
+\xeb\xba(\x14\x0a;7m\xda\xf4OB\x08UQ\x94\
+#.\x91TU\x95\xaf|\xe5+\xcc\x9f?\x9f\xcd\x9b\
+7\xa3\xeb:\x1d\x1d\x1d\xb8\xae\xcb\xab\xaf\xbe\x8a\xa6i\
+$\x93I\xda\xdb\xdb\xc7\x9b\x00\xa4\x945\xc7\x22!H\
+)\xf9\xd1\x8f~\xc4\xacY\xb3\xb8\xf7\xde{+e\x93\
+sJ~\x92\xaaX,\x22\xa5d\xd2\xa4Ituu\
+\x91\xc9d\x8e\xb8:dB\x85y[\x1b/\xbd\xf4\x12\
+---\x1c8p\x80x<^I\xc3b\xa3k!\
+R\xc6 \xd3\xa7\xcc\xa3~Z\x1d\x9bz\xba\xa9\x8dL\
+\x1e\x8b\xba\x0f\xb9\xc0z\x5cR\xf7\xfe\x01F\x9e\xae\xc3\
+\xe8\xad\xd0+\x8e\xe3\xf8\xe5;c\xbf'\x8b\xc5\xe2\xf3\
+Gs\x8fc\x84\xab\xab\xeb\xba\xb2s\xe7\xceJ\x0b\x85\
+\x00UU\x90\x12b\x91\x18\x96kU\x1c,\x81\x1f\xab\
+\x8d\xd5x-8&\x09\x997o\x1e\xb3g\xcf\xe6\x84\
+\x13N`\xd9\xb2el\xdd\xba\x95e\xcb\x96\xf1\xe4\x93\
+Or\xf1\xc5\x17\xb3{\xf7n6l\xd8\xc0\x99g\x9e\
+Iss3\xcf>\xfb\xec\x9f\xa4\xc7\xdfiE\x22\x11\
+\xbe\xf5\xado!\x84`hh\xa8R\x01h\x98\xd8\xaa\
+\xcb\x86\xff\x1ed\x93\xf9U\xe65.\xc1\x95.;\xfa\
+6\xd1\xfah\x1b\x1d#\xbd\x14\x86\x0e\xbd,MSY\
+\xf7\xb5a\x8c\xd1Q\x9c\x92d\xc6\x8c\x19\xe8\xba\xce\xd1\
+\xaa\xa8\xb7\xf1\x0c\x87v\xee\xdcy\xf1\xacY\xb3^(\
+\x95J\xb8*L\xbd!\xca\xc9\xcbc\xd8\x8eCSx\
+\x1e\xc3F;\x8e\xe1r\xf0\xd5\x12\xfb\x9e\xc8\xa3\xa8\x15\
+\xa7'\xe2\xf9\xeaG\x0bHgg'\xbf\xfc\xe5/9\
+\xe5\x94Sx\xe5\x95W\xc8\xe5r\xf4\xf4\xf4`\x18\x06\
+O>\xf9\xa4_\x99\xf1\x9b\xdf\xfc\x86@ \xe0\xa7>\
+\x8fr\x8d\x0e\x0d\x0d}C\xd7uk\xec\xc1?\x98J\
+\xa5f\xe4\xf3y,S2+<\x83\x193\xa6W\xa4\
+T\x1a,\xbb~\x16U\x912\x0d\xc3'c\x0d\x06q\
+F+i'\xa1HP$L\x83\x5c.\xc7\xc8\xc8\x08\
+\xd1h\x94x<\xcei\xa7\x9d\xc6\xcb/\xbf|\x5c\x1c\
+\x12?\xcd+\xa1\xd4j\xb3c\x7f\x8e|\xaf\x83ml\
+\xc4.J\xecr\xa5?Q\x0fh\xbe#p\xac\xd4I\
+4\x1a\x8d\xf2\xf4\xd3O\xf3\xc4\xe3O\x1c\xf2F\x84\xc7\
+I)~O\x8bP*\x89\xac\xea\xeaji\xdb\xf6\xd1\
+\xea\xac\x91\xde\xde\xde\xff\xed\xfdP__\xbf\x5cQ\x94\
+\x19\xaa\xa2\x80\x03\xae\xe3\x92\xcf\xe7\x11\xc0f\xab\x8dK\
+Z\xa2\xb8J\x8e\xe0\xd4\x22\x8a,\xa1j\x0avZ\xa7\
+\xbc/F~[\xd4g\x01\xbc\xea\xc1|>_\xc9\xe5\
+\x8b\xe3\xd31gY\x16\xb7\xdcr\x0b\x00/\xae}\x11\
+QV\xd0\xb4\x02B\x17\x18\xba\x81\xac\x96~l\x94H\
+$\x0e+k\xa8\xbd\x83A\xaf\xf7\x92\xf9\xae\x0a\x93\xe6\
+\x05\xd0u\x81\xb4u\xe6N^HGj\x07(PN\
+9\xa4\xbb|\x1d.l\xdb\xee\xe0\xf8,%\x10\x080\
+}\xe1\xc2JF\xcf\x1a\xa3\xd6\xbd\x88X\x11\xac\xac\xbe\
+\x85\xf7\x9d~-;\x86_\xe6\x85-/\xa15\x0f\xd3\
+\xd67\xe0\x13\x85^\xc2\xca\x8b\x05\xd6\xaf_\xef\xf1U\
+\xc7\xbc\xce>\xfbl.\xb8\xe0\x02\xe6\xcc\x99C\xa1P\
+\xa0\xb7\xb7\x97\x8b/\xbe\x98\xc7\x1f\x7f\x9c\xf3\xce;\x8f\
+b\xb1\xc8\xab\xaf\xbe\xca\xfc\xf9\xf3\x89\xc5b<\xf5\xd4\
+S~\x09\xeeQ\x01\xa2(\x8a\xa8\xaf\xaf\xa7\x90/`\
+E$K?RGu\x8d\x86t%\xc9\xb6~\xea\xf6\
+U1\xbc\xdd\xc0\x1au\x88\xc5\x82\xbe'144\xf4\
+\xe6\xf1x`\xd7u\xb9\xfd\xf6\xdb\xa9\xae\xae\xe6\x8a+\
+\xae\xe0\xa2\x8b.\xaa\xe4 $\x10\x82L\xba\xc4eg\
+\x5c\xcf-\xbf<\x93\x9f\xff\xcd.N\x08-%\xe1\xec\
+g\xf7\xfa;0\x0c\xcd\x0fZ\xcb\xe52\xd1h\x94`\
+0xX\xae\xe7\xe1\xaem\xdb\xb61u\xeaT\x06\x06\
+\x06PU\x95\xda\xdaZv\xec\xd8\x81\x10\x82\x8e\x8e\x0e\
+\xbf\x16x\xe7\xce\x9d\xac\x5c\xb9\xf2\xd8\xe9w\x8f{)\
+\x95K\xe8\x8e\xce\x9bw\xa7\x91\x16X\xc5C9t\xa1\
+L\xd4\x8dGB\x9b\x1c\xce2M\x93\xfa\xfaz\xbf\xe2\
+\xdc\xb2\xacJ'o\x08\x0c\xc3%\x14\x0c\xe0R\xa9?\
+\xeb\x1e:\xc8\xc6\xfcc(\xa8\x13\x92G\x1e\xf7\xd4\xd6\
+\xd66\xb7X,\x8e\x00\xb2\xa1\xa1\xc18\x1e6\xe4\xea\
+\xab\xafF\xd3\xb4?HV\xb5\xb7\xb7\xfb\xc4\xa2\x94\x92\
+_\xfc\xe2\x17\x95\xf7u\xac\xf4\xfb%\x97\x5c\xc2\x87>\
+\xf4!\x5c\xd7\xe5\xc9'\x9f\xa4\xab\xab\x8bh4\xca\xc1\
+\x83\x07\x89\xc5bTUUq\xe0\xc0\x01r\xb9\x1c\x8d\
+\x8d\x8d\xf4\xf4\xf4\x1c\xb7\x1d(\x84\xe0\x87?\xfc!\xcb\
+\x96-\xe3?\xfe\xe3?\x0e\x05\x7f\x08\xa4\x0b\xf1x\x88\
+d&MM\xa0\xbe\xe2VJ\x9b\x80\x88 ]\x89e\
+\xd9~\xad\x98W\xd6\xa9\xebz\xceu\xdd\x0cpD\xfc\
+\xd5\x1f\x91^s|\xbe\xc7\x09@u\x5c\xc5q]&\
+\x87gPr\xd3\x14\xac,BH\x8c\xac\x8b[\x92~\
+\xf6\xf0\xa8\x01\x19k\xc0\xa4\xb5\xb5\x95\x1bn\xb8\x81m\
+\xdb\xb6Q*\x95\xa8\xab\xabc\xd9\xb2el\xdc\xb8\x91\
+`0H8\x1c&\x93\xc9\x1c\xf7\xb6f)\xa5[U\
+U%w\xec\xd8Q)Y\xf0JP%H!\x89E\
+\xc2<\xbe\xfb~\xbeu\xe5o\xf8\xcd\xfe\x87x\xa9\xe3\
+e\xce:\xe9t^s7b\x18\xa6\xcf\xe8zT\x8c\
+m\xdb\xb3\xea\xeb\xeb\x03\xa3\xa3\xa3=\xc7zo\xb6m\
+\xb7\x09!*\xc5\x82\x08F\x96H\xfe\xee\xf6f$.\
+Q3BP\x0frp\xb8\x80U\x90\xbc~W\x0a\xe9\
+T4\xce1\xb9\xbdB\x08\xbe\xf9\xcdor\xfb\xed\xb7\
+\xf3\xc9O~\x92\xb6\xb66\x5c\xd7\x9d\xd0_8\xd6\x9f\
+\x8d\x94\x92\x9e\x9e\x9e\xe3\x0aH*\x95\xba\xe8\xf9\xe7\x9f\
+\xa7\xa5\xa5\xa5}\xce\x9c9\xb3\xb3\xd9l\xa5nX(\
+\x14j$%3\xca~\xf9\x1c\xdfyVg\xd5\xe9\xa7\
+\x90Pv\xf0\xcc\xbe]\x0c\xb5\xe5H\xa5*\x01k(\
+\x14\xa2\xa5\xa5\x85R\xa9\xc4\xb5\xd7^\xfbz[[\xdb\
+\x86u\xeb\xd6\xad<\x1e\x0e\x87\xef\xfa\x0a\x85\xba\x83\x92\
+}O\x15\x18\xdan\x90\xef\xdb8A5\xa9B\x03\x8d\
+\xb7\xcd\x9f\x1c\xb1\x0d\x89\xc7\xe3\xdcw\xdf}~\xc2\xc8\
++4\x00\xd05\x1d];\xe4\x0a{\xe5\xa3\xfb\xf7\xef\
+\x9fq<\xed\x88W-\xef\xbd\x00\x81@5\x5c\xb40\
+\xe4{\xe1\xf5\xce\x9f\xf3\xe4O~LyDb\x95\x5c\
+\xcai\xd7\x8f\x85TU%\x9dN\x13\x0a\x85\x18\x19\x19\
+9\xa2^\x8d\xc3!\x18/\xbc\xf0Bn\xbc\xf1F\xbe\
+\xf5\xado\xa1\xf6\xa9\x10\xcc\xd18\x1b\xbf\x7f\xbf\x5c.\
+SUUE*\x95\xc2\xeb\x8b?j@b\xb1\x98\xdc\
+\xb4iS\xa5\x92#\x06\x0b\xcf\x8f\xa1\x07\x04J\xa9\x9e\
+\x0b\x16_\xca\xef:\x1fA\x0b\xa8\x8c\xee3\x19\xd8\x5c\
+\xf6\x12NR\xd7\xf5)\xc7\x13\x10\xd7u\x1d/i\xa5\
+\xaa*\x8b\x17/\xa6\xb3\xbd\x83\xd7\xfe\xa9\x5c\xd9\x1b\x0a\
+\xa0T(\x12\xe1\xba\x84B\xd2\xa7*\xbc\x11\x18c=\
+\x7f\xc7\xb5\x91\xb4X,\xf2\xe9O\x7f\x9aT*\xc5'\
+?\xf9I\x1ez\xe8!N_y:\xdd\xdd\xdd\xcc\x9b\
+7\x8f\xdf\xfe\xf6\xb7\xac\x5c\xb9\x12]\xd7\xc9f\xb3\xec\
+\xd8\xb1\xc3\xaf\x9a?*@BcOf\xdb6\xb2\xda\
+e\xc695h\x08\xac\xb2\xc1\xeb#?C\xb5\xc3$\
+Z\x0d\x92\xfb+\xc1\xcf\x98\xdb+\x86\x87\x87\x8f\xc9\xaa\
+\xc7\xe3\xf1\x96\xb9s\xe7\x1e\x08\x04\x02\x15OOQq\
+\x84M\xa9T\xe2\xdb\xdf\xfe6MMM$\x12\x09~\
+\xf7\xbb\xdf\xf9\x05\x04\x00###L\x9d:\x95d2\
+\xc9\xc8\xc8\x08\xaa\xaa\x92L&\x09\x85B\x94\xcbe\x02\
+\x81\xc0q\x05$\x14\x0a\xb1c\xc7\x0ef\xcf\x9e\xcd\x0b\
+/\xbc\xe0\xf7\xd0\x8c\x8e\x8e\xfa\x95\x90\x83\x83\x83\xc4\xe3\
+q\xbfx\xf0\x9dX\x8cw\xb4!\x9e\x1b[\x9d\x83\x0d\
+wd\xdf2\xaa\xa8\xa2F\x82\x11}\x82\x18\x1f\x87\x9d\
+\x17\x98={6\xb6m\xa3\x0a\x95Vu?g\xdd\x10\
+d\xfd\x7f8\xbe+<o\xde<\x1e{\xec1\x9a\x9b\
+\x9b\xa9\xad\xade\xde\xbcy\xdcs\xcf=h\x9a\xc6\xc2\
+\x85\x0b\xd1u\x9d_\xff\xfa\xd7~V\xd0\xab^?\x9e\
+\x80\x84\xc3a\xbe\xfa\xd5\xafNPC\xad\xad\xad\x00\xec\
+\xdf\xbf\xdf\xa7\xe8\xc7\xab\xdec\x02DJ\xc9?\xfe\xe3\
+?2w\xee\x5cjkky\xe2\x89'8x\xf0 \
+\x9a\xa6\xf9\x85\xd4s\xe7\xce\xa5\xbd\xbd\x9dD\x22As\
+s3\x07\x0e\x1c8.\xee\xae\xd7h\xa3\x09\x95L<\
+\x03r2\x91H\x84\xaf\x7f\xfd\xeb\x9cz\xea\xa9~\xed\
+\x97\xc7$\xe8\xbaN\xb1Xd\xd7\xae]~O\xbc\xe7\
+\xf7\x8f\xa7,\x8e\x17 \xf1x\xfc\x1b^@\x08 \x15\
+\x89\xa6\x09\x5c\x17\xa2\xa1(\x05#Wi\x10\x12\xe0\xda\
+\x87\x18\xdfw\xba\xbe\xf6N\x5c\xcd\xfc\xf9\xf3\xc9\xe5r\
+\x5cz\xe9\xa5\xfc\xfe\xf7\xbfg\xce\x9c9\xd4\xd7\xd73\
+s\xe6L\x1ez\xe8!t]g\xd2\xa4Ix\xcd\xa0\
+\xc7\xc3\xcb\x1a?\xa1GR)B(\x17%\xf9\xb4A\
+DSY\xbb\xb6R\xdd\xa9\xabA\x14\xadR#\xe65\
+\x00yv\xc2\x8b\xc8\xbd\xder/MkY\xd6\xa4P\
+(t\x9d\x10\x22\x00\x88\xba\xba\xbaW\xfb\xfa\xfa\xba\x8e\
+\xc2\xaeM\xaf\xaf\xaf\xaf\xd8\x04E\xa0\x9d\xafs\xe9\xb5\
+\x93(\x96\x0d.;\xf1f\xb6\x8c>Eb(I\xae\
+\xdfa\xc37\x93>\xcb\x1c\x8dF\x87\x8f\x1a\x90`0\
+\xc8\xbd\xf7\xde\xcb\xe7>\xf79>\xf6\xb1\x8f\xd1\xdf\xdf\
+\xef\x8b\xbd7\xdb$\x95JaY\x16\xa5R\xc9\xcf\x85\
+\xc8\xb1\xc8\xf0\xad\x0d4G\x0a\x88a\x188(\xa8\xaa\
+Bo\xa7\xc1\xdd\xf7~\x95o<\xfb/|\xe1\xfc/\
+\x13\x8f\xc4\xf9\x9f\xad_\xa4\xfd79\x8c\x11\xc5\xaf\xec\
+8\xe1\x84\x13hlld\xfb\xf6\xed\xd45Uq\xc2\
+\xccF\x96OZ\x86\xea\xea\x15\x07@0G\x22\x1f\xf3\
+\xd2\xd0?\xfc\xe1\x0f\xff\x06\xe8:\x8a{\x94\xe3U\xb4\
+\x18\x81\xe1]e\x12{-\xbe\xfa\xdd{I\xee\xb3p\
+M\x89\xa2\x0b\x14M\xf15\x8e\x10B9&\x1b\x92H\
+$\xb8\xfd\xf6\xdb\x0f\xeb&\xbd\x1eC!\xc4\xa2\xa6C\
+\x9e\x9f\xf6\x00\x00\x16VIDAT\xa6\xa6S\x06\x06\
+\x06\xb6\x1dC\xe0U\x01]*\xa8B\x05\x14\x96.;\
+\x85\x86\xb6*\x96\xaf8\x8d)\xb5M\xac)\xa9Tm\
+\x8c\xa0\xe4\x85\xaf\xd3g\xcc\x98\xe1y\x88L:\xdd\xa5\
+\xf9\xec4\xd2M\xe3\x00\xc6@\x00\xa3-B\xb93\x82\
+\x10\x15\xdeMU\xd5\xa3v@TUe\xe1\xc2\x85\x9c\
+t\xd2Il\xd8\xb0\x81\x815\x15\xa3\x1ep\x1c&7\
+\xba~\xac\xe6mbo\xb0\xdbQ\x032<<\xdc\xe5\
+\xba\xee\x5c\xaf\x80\xa0\xe9\xac0\x91\x88\x82\xb4u\xdew\
+\xd2-<\xb3\xef\x87\xd8\x18\xd8\x86\xe4\xc0\xef\x8b~\x0a\
+\xb5\xaa\xaa*R,\x16\xe3G\xf2pS\xa6Ly_\
+\xb1X\xbc\x10p\xa5\x94\xf1\xce\xce\xce\x8a\xee\x97\x82\xb2\
+a2\xd0S\xe2\xab\x89o\xb2\xa7m\x98;\xb6\xfd+\
+\xb1P5\x1b\x0e\x1e\xc4\xee\x8b\xa2XA\x7f\x07\xb6\xb6\
+\xb6\xfami\x81b3w^\xf4#6\xf6\xfe\x96\x1f\
+\xbc\xf8\x9f\xcc\x9cQ\xc7P9Ovw\xa5\xb6W\xd7\
+\xf5c\xa2\xe2\x83\xc1 \xdf\xfc\xe67\x89\xc5b45\
+5\xb1c\xc7\x0e\xce=\xf7\x5c\xd6\xacY\xc3\xca\x95+\
+ikkC\x08\xc1\xacY\xb3\xc8d2\xbc\xf2\xca+\
+\xc7\xc6\xf6Z\x96\xd5\x16\x0c\x06/\xf6\xf2\xd5\xd3/\x09\
+\x13\x8fk\xe4\xfam~3p\x1f\xb6\x22(\x0c8\xa4\
+\xbb\x0f\x19M]\xd7}7\xf4\x08I\xc4[\xaf\xbb\xee\
+\xba\xf3\xa5\x94\xb8H2U\xa34M\x0f\xe0f\xbc\xfa\
++\x9dt\x22\xc7\xa9\x0d\xe7`\x16m\x92\xc5$\xa77\
+]\xc9\xb3[\x9f!\x18t|\x09U\x14\x05\xe9J\xa4\
+%\xb8v\xf9\x87\xf8\xef\x0d\xff\xca\xf2\xd8\x87X\xd9p\
+#+\x17,\xe0;\xad_\x99\xd0\xfb~\xb4\x80H)\
+\x9d\xf1\x05\xe5\x9e\x93\xe3\xb9\xd9^\xc7Yww7\x81\
+@\x80\xda\xdaZ\x7f\x9c\xd3\xb1\x90\x8b\x0a@uu5\
+\xb6m\xb3\xe3kE\xac\x9cDh \x14\x10\xaaW\x81\
+\xa1\xa2i\x87\x22\xe3\xa3\x1c\xab\xa4'\x93I\x5c\xd7%\
+c\x17\x99sE\x06[\xad\xa8})ltM\x85\xa4\
+\x82q J\xfe\x8d\xb1\xe10c\xde\xd4\xf8\x12\xa0H\
+8L2\x98\xe3\xcc\x8fE8\xff\xfc\x0b\xf8\xd1\xce\xe7\
+\x18J\x8d\xb0\xb7\x7f'\xc5\x9a\xed\xa8Tjl\x85z\
+t\xe3\x93\x00\x1a\x1b\x1bO\x94R\xae\x08\x85B\x5cs\
+\xcd5\xc4b1\x7f\x13n\xdd\xba\x15EQ\xd8\xb3g\
+\x8f_\xf4100\xe0\x17\x18\x1e+ \x9c|\xf2\xc9\
+|\xe9K_\xc2\xb6m\x1e~\xf8a\x0e\x1c80a\
+\x8eG<\x1egpp\xd0\x8fF\xbd\xc14G\x9b\x81\
+s]\x17\xcb\xb1Q\x84B\xba'\xcc#\x7f\xff;\xfa\
+\x0b\xfb\xb9\xe3\xb7\x7f\xc7\xec\xc6yt\x96\xdb0\xca!\
+\x14\xfd\xd0D7\xdf\xf5\xf4\x8a\xf6\x14\x85@@\xc7\xb2\
+\x0c4%\x88\xaah\x04\xb4 !\xadB\x85\x1b\xa6\x81\
+\xa2\x8a\xa3\x9e\xc7U*\x95Z\x9a\x9b\x9b\xc3\x85B\x81\
+\xaa\xaa*\x9f2\x1a\xbf\xfeX\xb1\xa0\x170\x1e5 \
++V\xac`\xf7\xee\xdd\xfc\xf5_\xff5g\x9cq\x06\
+B\x08\x22\x91J\x1b\xb1\x97\x0e-\x16\x8b\x0c\x0f\x0f\xd3\
+\xdc\xdc\xcc\xe0\xe0\xa0o\x97\x8f\xf4A\xbd\xb9\x8d\x16\x15\
+U\xb0z\xd5\xbf\xf2\xf3=_'y\xa0\x9a\x05\xdaU\
+\xdcr\xc6\xdf\xf3\x99\x9e\xf7W\x5c\x5c\xa7\xa2r\x82\xc1\
+\xa0?\xdb\xd1u]\x0c\xd3\xc4*\x18d\xd7,\xe6\x8b\
+\xbf\xfa\x22\x8e\xb4\xd9\xcb\xe3\x94\x0d\x8b\xcc\xcb\x02\xe4\x0c\
+f\xcf\x96 *\xb9\x8a\xcb/\xbf\xfc\x7f\x84\x10\xdf\x07\
+\xd8\xbcys\xc7\xde\xbd{\x97\x1c\xae'\x98N\xa7+\
+\x1d\xc4\x01\xb8\xe4\xdf\x1aPT\x01\xa84\xd7\x9f@\x7f\
+\xea\x00\xa3\xfbL\x0e\xbcX$\xd5^\x91\xe0\xaa\xaa*\
+\xf2\xf9\xfc\xfd\xc7\x14\x18\xfe\xfc\xe7?\xe7\x03\x1f\xf8\x00\
+w\xdf}7\xeb\xd7\xaf\xf7\xfd\xfd|>\xef\xd3%\xa9\
+TjB\xaaTJIcc\xe3\x97\x14E\xb9\xa5\xaf\
+\xaf\xef\xc0\x91J\x88\x83\x83\x22U\xa6\xd4Ma\xff@\
+\x91\xa2\x05\x1d\xc3\xfbyr\xef}\xd8\xb6\x85eUt\
+\xa9i\x9a\x04\x83AN=\xf5T\xf6\xee\xddK\x22\x91\
+ \x9dNc\xba&V\xd9\xc60*S\x91v\xd7n\
+\xe6\x9ckc8\xb9\xca\x1cE7\x13\xc4\xc9j8\x19\
+\x0dk \x18@\xfa3\x15\x83G`C\xd0\xf5J=\
+\x98\xee*\x0cl6)\x0e;\x14\x86\x1c^\x1dHP\
+N\xb9\x95\xba5M\xf8\xb5\x08c6\xcb>&\x1b\xe2\
+\xba.\x0f<\xf0\xc0\xa1\x1b\xf1\x02M\x01\x99t\x06\xcf\
+\xad\x16\xa2\xc2\xdbxc\xfd\xe6\xcc\x99sQ&\x93\xa9\
+\x07\xfe( \xf3\xe6\xcd{\x8f\xae\xebBQ\x14gx\
+x8V.U&{Z\x8aM\xbe?\xc0\xae]\xbb\
+H\xe4\x0a\xa4\x07l\xb2\x89,\xa3\x07\x8b\xe4\x07-L\
+K\xa2\xc8\x0a\x80\x86a\xd0\xdc\xdc\xcc\x8e\x1d;P\x94\
+J\xeb\xb4#\x0fM\x1e2\x5c\x8bp-(\x8e\xc6\xb4\
+\xfa\x05\xc4gT\xb1sp\x03u\x91\xc9d\xe5\x10\x03\
+\x0f6\xe0\x14\x0e\xa9\xbc#I/WUU\xb1z\xf5\
+j\xf6\xec\xd9\xc3\x81}\x07\x08\x18eT\xc7!V\xef\
+b\xd7\xd8\xfe\x98\x0e/n\xf3\xbc\xbfc\x89C\xfe\xfb\
+\xe0\xc1\x83\x17\xdb\xb6=S\x08A1&9\xf5\xf2j\
+\xf4\x80\xa00R\xc5\xfb\xcf\xb8\x9eg\xf6\xfd\x00M\xd5\
+\x19\xdan0\xb8\xb5\x84P\x84?\xed\xe7\x1d\x1e\xb0\xe1\
+\xb4\xd3N\xdb\xac\xaa\xaa\x10B \x91P[\x82l\x10\
+\xe1\xa8\xb0\x11\x9e\xd8\xf8\xd4!\xde\x88\x1av\x1c\x18d\
+\xf4`\x0cG\xe6\xb0M\xe9\x1bs\xaf\x16\xcc\x9b\xec\xe6\
+\x9a\xae\xdfjmI\x07EU\xe8\xdeo\xf3\x95[\xbf\
+\xc2\x0f\xd6~\x97KZn\xe1\x8a%\x1f\xe4S\xcf_\
+\x80eZ\xd8\xa6sD\x80xi\xd9o\x7f\xfb\xdb$\
+\x12\x09n\xbe\xf9f\x9e{\xee9\xbfr\xb1\xbd\xbd\x9d\
+e\xcb\x96\x11\x0e\x87\xd9\xb6m\x1b\xdb\xb6mc\xe9\xd2\
+\xa5l\xd8\xb0\xe1\x1d\xbf\xfbO\x02\x92\xcb\xe5\xb667\
+7\x0f\x1b\x861S\x08\x81\xa1;\xb4\x9cW\x8d\x9d\x92\
+\xa4;\x0c\x1e\xfd\xed\x03\x14\x07\x04V\xd1\xa2\x9c\x92\x84\
+\xc2!\xdf\xf5}\xa7\xf60@/\x97\xcb\xc2\xb6m\x10\
+\xb05\xb2\x8b\xf7\x9e_\x87+]\x1c\xc3E\xb1\x83H\
+K\xc1\xc9\xab\xe4^\xab\xc1)\xaa>\xb1\x98L&\xfd\
+\xe0\xd1\xa3G\x5c\xd7\xa5\xb3\xb3S\xbe\xf1\xc6\x1b\xe2\xd1\
+G\x1fe\xdb\xb6m\x15\xc7C:\xa8\x9a\xc2\x09\xd5K\
+8\x98\xdf\xcdH\xf9 \xff\xeb\xc4\xdb\x09j!B\xa1\
+ \x96cc\x99\xbe\x1azGDjjj>q\xde\
+y\xe7}\xa3\xb5\xb5\x95G\x1ey\x84/\x7f\xf9\xcb\xf4\
+\xf5\xf5\xb1w\xef^r\xb9\x9cO\xd3\xac]\xbb\x96\x99\
+3g\xd2\xd3\xd3\x83\xe38\x8c\x8e\x8e\x1e\x9f\xc1\x01\x95\
+\x0d!8\xe9\xa4\x93\xe8\xee\xeaf\xe3\xe7\xcaH{\xcc\
+!\x16\x1a\x08\x15\xe98\x84B\xba\xffr\xbc\x12\xfcw\
+\xba\x01\xbf<\x07I\xa0\xae\xd2\xd9t\xd6\xa4\x0f\xd32\
+\xb9\x85\xa7;\xbe\xc7\xcc\xaaS\xd8\x9a\xfa\x0d\xf6\xc60\
+\xb6u\xa8\x8ad|\x1bD\xa1P\xb8c\xff\xfe\xfd\xff\
+>i\xd2\xa4\x81\x91\x91\x91\xc6\xb5k\xd7\xb2h\xd1\x22\
+6n\xdcX\xe9\xc8R]\x92\xbf/\xd3;u\x90{\
+6?@2\x97\xe0\x0b\xbf\xfb\x12\xaa\xa2\xd2\x9d\x05+\
+\x7fH2&O\x9e|\xc2\xb4i\xd3^\x05T\xc7q\
+\xd8\xb9s\xe7u\xc9d\xb2\xe7-lD\xad\xa2(\x9a\
+\x94\x92M\x9b6q\xd1E\x17\xf9\xe4\xe6[\xd7\xfe\xfd\
+\xfb}\x82s\xeb\xd6\xad\xc4\xe3\xf1c\x07\xc4\xb2,n\
+\xbd\xf5V\xce;\xef<\x0c\xc3\xe0\xb1\xc7\x1e\xf3\x07A\
+z\x9e\xd6\x9c9s\xd8\xbbw\xafO\x0d\x0c\x0c\x0cx\
+7\xb9p\xda\xb4i\xc9\xde\xde\xde\xb7\xe3\x8a\x1c\x8f\xaf\
+\x92\x02\x14E\xd0\xbd\xcf\xe6\xdb\x7fu\x13\xff\xf0\xe3+\
+\xf8\xe2\xc5\xdf'\x1en`t{'\x83\xd6\x08\x86\xe1\
+\xf8\x80{\xc4\xe1\xb8*I\xa9\xaa*\xb7\xdez+\x9f\
+\xff\xfc\xe7\xb9\xff\xfe\xfb\xfd\x09<\xb6p\xd1\x8a\x1a\xb1\
+\x13\xaa(e,\x0a\x96`d\xd9V\xe2\xb1\x10\x93F\
+\xc2\xd8\xf5A\xdc\xb2\x8a4\x14\xa4\xa9\x84\x91\xe2L/\
+\xf7\xfd\xe6\x9bo\x86\xdeN]\x8dO[+\xaaJ\xb8\
+J#\x10\x14\x87:\xa6\x04\xd8%\x17\xbb\xa4\xf86W\
+Q\x14J\xa5\x92e\x9af\xe2\x98\x00q\x1c\x87\xd9\xb3\
+g\x93L&9\xe5\x94S\x08\x85B\x9cr\xca)D\
+\xa3Q\xa2\xd1(?\xf9\xc9O\xa8\xa9\xa9\xe1\xcc3\xcf\
+$\x9dN\xb3n\xdd:\x02\x81\x00\xb6m\xf3\x9e\xf7\xbc\
+\xe7\xe1\xf6\xf6\xf6\x1f\xf7\xf6\xf6\xde4F66\x01\xab\
+\x01\xd3u\xdd\xea\xde\xde\xdeJ\x012`Z&\xf9l\
+\x8c;\xef\xfc\x1a=\xedY\x1e\x1fz\x86L!\xc3+\
+}oR\xe8\x0a\x13\xd3k=\xb6\x94\xaa\xaa*r\xb9\
+\xdc\x84\xd1\x17B\x08\xda\xda\xda\xb8\xe9\xa6\x9b\xc8\xe5r\
+TUUUf\x09\x0b\x17\xdc\xb19\xed\xc0\x906\xc2\
+\xc2\x85\x01l\xcb\x84\xa6\x89#\x93\xb2\x9b\xc7*\x1e\x85\
+\xf4\x0b#\xfe\x18\xf1\xd9\xd0\xd00\xd6\x82\x00\xb5\xe7\x04\
+Y|Z\x8c\xa1\xedeF\xf7Y\x8c\xee6q\xed\xb7\
+u\x04\x0e\x0c\x0e\x0e\xdewL\x80D\x22\x11\xee\xbc\xf3\
+N\xce<\xf3L\xee\xb9\xe7\x1e\x8a\xc5\xe2\x84\xec\x97i\
+\x9a\xac]\xbb\x16\xdb\xaed\xf4\x82\xc1\xa0\xff\xef\xde\xf0\
+.o\x8d\x8c\x8c\xac\xba\xf2\xca+?\xefQ\xf4\x19\xb3\
+(kg;B&\xc3\xb8\xc9\x00\xd8\x92=ov2\
+YY\xc0\xa6\x8d\x95\xe9\xdc\xd3\xb4\xe5t\xba\x1d~\x8e\
+:\x12\x89\x10\x0c\x06\xfd\x91G\xe3\xa8\x97{\x86\x87\x87\
+\xab\x84\x10n\xb9\x5c^.\x84\xb8\xb8\x5c.\xe3(.\
+\xa1Px\xac\xe2Q\x80*1M\x87\x0f\xcc\xbc\x93\xee\
+\xec.N\x9a\xb5\x98\xffz\xee>\xec\xbav\x1c'\x82\
+eZ\xa0\xc8\xb7\x8d\xe2\x03\x81\xc0l)e\x9d7H\
+a\xd1\xa2E\x04\x02\x01\xfa^\xebe\xe7\xcb\x12I\x00\
+)ub\x91\x90\xafR\xbd_^a\xc81\xab,\xdb\
+\xb6\x83\x8a\xa2\xf0\xdak\xafU\xf4\xa1d\xc2d\x05!\
+\xc0\xb6\x1c\x84R1\xe6^.\xa2P(L\x18,\xec\
+=\x933nPrva\xa7\x98yF\x14\xcb5q\
+\x1c\x17%\x17\xab\xc4\x07\xde\xec\xdc1\xf7\xd2\x9b\x17,\
+\xa5\xf4\xe9\xfe\xfa\xfaz\x12\x89C\xd2\x9fL&\xbf\xe6\
+\x19\xfb\xc9\x93'\x7fL\xd3\xb4\x8b\xa5\x94\x08\x1b\xb0]\
+\xffP\x00\xcb4H\xec\x93T5W\xf3\xfc\x9b?\xc6\
+:\xf01\x16(g\x12SV\xf0X\xefO\xc9\x8d\x06\
+@Ho\xf0\xd8)\x81@\xa0^UUQ*\x95v\
+_r\xc9%\xed===X\x96%kkk\xc5?\
+\xff\xf3?\xb3x\xf1b\xee\xbd\xf7^\xf6\xed\xdb\xc7\xe2\
+\xc5\x8by\xf3\xcd7iii\xa1\xbf\xbf\x9ft:\xcd\
+\x94)S\x90R\xb2}\xfbv\xd2\xe9\xf4\xb1\x03r\xe0\
+\xc0\x81\xbf\xcb\xe5r\x9b\xd41~\x22\x1fr9\xff\x96\
+:\xcaY\x07\xbb$)\xa5\x5c\xd2]\x16\x99\x036\xee\
+8\xa0&M\x9a\xe4\xd1+U\xb1XlF>\x9f?\
+\x00\xb8\xe3wJ8\xa2a\x14%\x97\xcf\xfc'&\xd7\
+\xd5\xf2\xf3=\xdf V\xd7H\xa2\xf9\x00\xc9\xf5!_\
+\xf7:\x8eC:\x9dFJI8\x1c\xc6\xb2,\x06\x06\
+\x06\xbc\x06\x98\xb7\xf3\x1cTM\xd3X\xbdz5\xf9|\
+\x9e\x1f\xff\xf8\xc7~\x02\xad\xae\x5cEh\xeb\x1c\xee\xda\
+|\x17\xaa2\x87\xdf\x06\x9e \xa4\xebHCe\x8a\xb3\
+\x98\xa6\x13\xbd\x9d&\xb9\xfa\xea\xab\x7f\xeeU\x8e\xacY\
+\xb3f\xaaW\x13l\xdb\xb67\x8f\xd7\x1f6\xe3\xba.\
+\x93'Of\xfa\xf4\xe9\x94\xcbef\xcc\x98\xc1\xbau\
+\xeb\xfcd\xde\xce\x9d;\x8f\x8f\x97eY\xd6\xd6@ \
+ =5\x13\x01v\xfe\xc0|Kn]'\xa4\xeb\xa0\
+\x1f\x8ab5M\xc3\xb2,\x1a\x1b\x1b\xffz\xc9\x92%\
+\x97\xbd\xf8\xe2\x8b_\xb5,\xeb\xe4\xbe\xbe\xbeCc\x9d\
+\xde(\xa0\xb5W\xb3\xeb\xc46\xbe\xb1\xf9\x19fN\x99\
+\x89\x1e\x9fB\xdb\xe0N\xf2C\xae_\x1c\xf0\x16\xd1/\
+wtt<4\x96\xf134M{\xe5\xedr)\xef\
+{\xdf\xfb\xa8\xaf\xaf\xe7\xb6\xdbn\xe3\xd1G\x1f\xf5S\
+\xba\xaet)\x9b\x15\xb5\xbb!\xdd\xca{o\x0dO\x18\
+3e\x0d\x070{\xc2\x98\x07\xc389\x8d\xf1\xb3T\
+\xbc*z/\xc6\xb9\xed\xb6\xdb\x08\x06\x83\x94J%\xa4\
+\x94|\xff\xfb\xdf\x9f\xd0\x7f\x22\xa5d\xf7\xee\xdd\xb4\xb6\
+\xb6\x1e6\x89yX\xed\xa7\xae\xeb\xf2\xd1\x8f~\x94s\
+\xce9\x87\x8e\x8e\x0ev\xee\xdcIgg\xa7?\xdb\xc3\
+4MN?\xfdt\xf6\xef\xdf\xcf\x9e={\x98={\
+6\x1d\x1d\x1d~&\xb1\x5c.\xeb\xe7\x9e{\xee\xbf*\
+BaX\x1b\x96\xd3O\x12\xc2\x1c\x0cc\x0f\x07qS\
+:;6\xee\xa5E=\x11g\xc4\xa5wx\x90&m\
+)\xeb\x13\xaf\xfb\xbd\xe0^q\xc0\x18\x91\x98O$\x12\
+\x1f\xfd\x93\x0f\xa5i\xbc\xf2\xca+\xacY\xb3\x86\x91\x91\
+\x11\x8a\xc5\xa2?O\xd7+\x0b\x02(\x0a\x93hm\x0c\
+\x92\xd3\xb8\xfd\x92/\xf1\x8b\xd6\xffd$2\x82=7\
+Kb\xb3E\xea\xe5*T\xad\xd2\xb2}\xd6Yg\xad\
+\xf3\x00)\x95J\x84\xc3\x95\xf3N\x8a\xb9J9\xa9P\
+\x15\x94?^\xd6,\x01\x91J\xa5\xa2\xc7\x05\x10)%\
+\xd7\x5cs\x0d[\xb6la\xd5\xaaU$\x12\x09\x16-\
+Z\xc4\xf6\xed\xdbihh\xa0\xb3\xb3\x93\x9a\x9a\x1a\x16\
+.\x5cH \x10\xa0\xbd\xbd\xdd\x1f\x00\xe9\xbd\x80\xfe\xfe\
+~\x1c)\xa9\xbe>/\xc2\x8bc\x84\x97fA\x91H\
+S\xc1Nk\xb8Y\x9d\xd4\xf3\xb58\x96\x8b\xe6\x1e\xaa\
+.\xf1\x06\xa7\xd5\xd5\xd5M\x985\xffN\x91t\xb1X\
+\xe4\x9cs\xce\xf1\xc1\xf4\xf4w]]\x9d\xff\xbdM=\
+*{\xbf\x5c\x87\xedf\xf8\x9b\xff\xfc\x18\x02\x9d@@\
+E\x1aQ\x14]\x22t\x13\xd5U\xbc\xd1\xb8\xb3\x0c\xc3\
+\xc0\xb6m\xaa\xab\xab+\xc9'\x04\xb5K\x82\xe8\x08\xf2\
+\x03\x0eF\xc6\x9d0\x9c\xc8\x93\x0aM\xd3D6\x9b}\
+\xc3\xb6\xed\xf7\x1e\x17@t]\xe7\xfa\xeb\xaf\xe7\xae\xbb\
+\xee\xe2\xeb_\xff:\xdd\xdd\xdd\x13N\xd2)\x16\x8bt\
+uu\x91\xcb\xe5\xfc)\x9d\xaa\xaa\x92\xcdf\xa9\xad\xad\
+\xc5u]\x7f\xc8\xc0\xc0\x036o(\xde\xb0Ie\x1c\
+eaR\xb4\xdahii\x99\x90\xb7\xf7&\xea|\xf4\
+\xa3\x1f\xe5\xfe\xfb\xef?\xac2#\xc30r\xb6mw\
+{u]B\x88\xe9\xaa\xaa\x0aO\xda\xfd\x89\xa8\x01\x8d\
+\x9aI1,\xcbb\xb4lS}\xe9\x10\xb5\x93td\
+I\xc3\x1c\x0aR\xec\x08@\x22\xeaWNz\xf1G(\
+\x14\xe2\x13\x9f\xf8\x04\xc9d\x92\xed\xdb\xb7W\x1a\x95j\
+-d\xfc\x90\xf3\xe1\xfd\xee\x15]\x94J\xa5r\x22\x91\
+H\x1d\x17@\xbc\xb9\x8a_\xf8\xc2\x17\xfe\xe8g\xf2\xf9\
+\xbcO\xcdK)\x19;\xb1\xccg\x81\x87\x86\x86*\x85\
+\xda\x93\xe3\xa8\xaaJ[[\x9b?\xcbw\xf1\xe2\xc5c\
+\xd4G\xd9\xcfq\xd8\xb6\xed\xe7\x0e\xaa\xaa\xaa\xfc\xf9\x86\
+\x87\x03H:\x9d~p\xd3\xa6M\x0fz?O\x9f>\
+\xddRUU;\xf1\xc4\x13\xe9\xee\xee\xf6\x81\xf6^\x98\
+a\x18${Fh^\x7f\x12\xd9R\x89u\xeb\xd6\xa1\
+i\x1a\xcb\x97/\xa7\xa1\xa1\x816\xa5}\xc2\x09:\x17\
+^x!\x93'O\xe63\x9f\xf9\x0c\x8f<\xf2\x08/\
+\xbf\xfc2\x97]v\x19\xbf\xff\xfd\xef\x995k\x16\xc3\
+\xc3\xc3l\xd8\xb0\x81X,\xc6\xa9\xa7\x9e\xcas\xcf=\
+w\xd8\xa4\xe5a\x01\x92J\xa5\xfe*\x9b\xcd~\xa3\xa6\
+\xa6fQ>\x9f\xf7\xcb\xfb\xc7\x1b\xaa\xb7\x1a-\xaf\xc8\
+\xce\x03\xc5\xcbuTUU\x11\x08\x04hjjb\xe6\
+\xcc\x99\x0c\x0c\x0cL8\xbfj\xfc1B\xe3\x8b\x93\xbd\
+\xe1hG\x93\xfc\x92R\xb2n\xdd:\x86\x86\x86X\xbd\
+z\xb5\x1fKyR\xe8yJ\xb6m\x93N\xa79\xeb\
+\xac\xb3\x88\xc5b$\x93I2\x99\xcc\xf8S\xd80M\
+\x93\xbd{\xf7r\xdbm\xb7122\xc2\x8e\x1d;p\
+]\x97\xed\xdb\xb7\xe3\xba.\xfb\xf6\xed\xf3\x9f\xbdP(\
+088xD,\xf2a\x01\x92L&\x7f]WW\
+\xf7\xcf\xcb\x97/g\xf5\xea\xd5tww\xb3y\xf3f\
+\xba\xba\xba\x08\x04\x02~\xe2~\xea\xd4\xa9\xf4\xf5\xf5\x91\
+N\xa7\x994i\x92\xcf~\xfa%=\xe3b\x10\xcb\xb2\
+\xc8\xe7\xf3>M>\xfe@\xb1\xf1\xb3s\xc7^\x5cj\
+``\xe0\xe1\xb1\xff7r4eE\x86a\xf8R\x9b\
+\xcdf\xfd\xef\x1f?t\xdfSK\xa6i\xfa\x07\xd5x\
+\xff\xe6\xfd\xbd\xe38\x8c\x8c\x8c\xb0j\xd5*_\x9dC\
+\xa5\x9b\xca\x1f\xeb1n\x83\xbe\xf1\xc6\x1bG\xd4Bw\
+$\xe7\x87\x88\x8f\x7f\xfc\xe3\x0c\x0e\x0er\xed\xb5\xd7b\
+\xdb6\xb3g\xcf\xa6\xaf\xaf\x0f\xdb\xb6\xa9\xab\xabC\x88\
+J2\xa6\xbd\xbd\x9db\xb1H0\x18\xf4\x87${\xb6\
+\xc0\x03\xc4/\xf3\x19\x03a\xbc$\xa9\xaaJ \x10\xa0\
+\xa5\xa5\xc5\x9b;5\xd2\xd9\xd9\xf9\x89\xf11\xce\xf8\xa0\
+\xf0pT\xee\xc5\x17_\xccE\x17]\xc4\xf0\xf0\xb0\xaf\
+\xb2B\xa1\x90\x9f\x8a\xf6\xd4\xd7x\x06`\xfc\xe1g\xde\
+\xdc\xc9\xb1\x0d:\x81L\x1c_r\xfbv\xd7\x96Rv\
+I)\xfb\x8e7 |\xfa\xd3\x9f\xe6\xa1\x87\x1e\xe2g\
+?\xfb\x19/\xbe\xf8\xe2\x84\xf38\x0c\xc3 \x1a\x8d\xfa\
+e\xf7\xde\x91\x0e\x9ek\xec\xa9\xaf\xf1\xa7\xd5\x8c?\xe9\
+\xcd{!\xc5b\xd1\xaf2\x9c:u*\xe9t\xfa\x0f\
+(\x87#\x01\xc3SYMMM\xec\xde\xbd\xdbW\xb7\
+\x9eZ\x1c\x7f\x14\x85\xf7gOZ\xc7\xd7T\x99\xa6\x89\
+\xae\xeb\xdcq\xc7\x1d\x5cp\xc1\x05\xfc\xfb\xbf\xff\xbb\x97\
+_\xf7YkO\xda\xab\xaa\xaa\xfcA=RJv\xed\
+\xda5\xeb\xb8K\x88\xe7>~\xf0\x83\x1f\x9c\xd0S8\
+\xdevx\x93\x9d=\xfdYUU\xe5\x9f\xc4\xe3\xedJ\
+\x8f#\xf2\xa4\xc5\xf3F<\x8a\xc4\xa3\xab\xa5\x94\x13\x06\
+\x80\x1d\xcbJ\xa7\xd3\xb36o\xde\x8ceY\xf9\xe9\xd3\
+\xa7w\xacZ\xb5\xaa\xf6S\x9f\xfa\x147\xdf|3\xf9\
+|\xde\xef\xb5\xf7\xdcZo\x1c\xdfx\x9a?\x93\xc90\
+{\xf6l\xce=\xf7\x5c\xa2\xd1(\xe7\x9cs\x0e\x1b6\
+l\xe0\x92K.a\xcd\x9a5\x5cy\xe5\x95<\xf9\xe4\
+\x93,\x5c\xb8\x90\xda\xdaZTU\xe5\xb9\xe7\x9e\x9b0\
+\xed\xfax\x03\xf2\x8b\xee\xee\xee\xed\x8a\xa2\xac~\xef{\
+\xdf\x8b\xa2(\xb4\xb7\xb7c\x18\x86?\xef\xdc\xd3\xb75\
+558\x8e\xe3\x0f\x94\x14B\x90J\xa5\xfc\x01\xf5\xe3\
+U\x96W\xd1\xe7}n\xacZ]:\x8e#l\xdb\xa6\
+\xa6\xa6\x86L&\xa3\x1e# ~N\xa3X,\xbaw\
+\xddu\x17\xeb\xd7\xaf\xa7\xba\xba\x9a\x91\x91\x11\x7f\xf7\x8f\
+\xb7g\x1e\xd52>\xd1\x96\xcb\xe5\xd8\xbd{7\x0d\x0d\
+\x0dx\xe7\xffzn\xef\xd6\xad[\xb1m\x9b\x9e\x9e\x1e\
+\x7f\x10\x8d7\x92\xe9\x88\xec\xdd\xe1|\xc8;\xab\x0f\xd0\
+\x96,Ybm\xdd\xba\x95\x9d;w\xd2\xd3\xd3\xc3\x96\
+-[X\xb1b\x05?\xf8\xc1\x0f\xb8\xf0\xc2\x0b\xe9\xec\
+\xec$\x18\x0c2\x7f\xfe|:;;y\xf5\xd5W\xc9\
+f\xb3\x0c\x0f\x0f\x13\x8b\xc5\xfcrS\xef\x04\x01)\xa5\
+\xdf\x9f\x18\x8dF\xfd\x03Q\x06\x07\x07\x13\xe5r\xf9\xe5\
+1\xbb\xb4gdd\xe4\x8b\x1c\x87u\xe2\x89'&n\
+\xbc\xf1\xc6\xfaK/\xbd\x94\xcf~\xf6\xb3\x0c\x0c\x0cP\
+*\x95\xfc9\xed\x85B\x81)S\xa6\xf8\x07\x9cy\xe3\
+oUUe\xe6\xcc\x99d2\x19\xff\xb4\x87\xb7s\x1e\
+\xde\x9a\xe6\xb5m\x9b7\xdf|S\x1cW\x09\x19\xa7\xc3\
+\x15\xcb\xb2x\xf8\xe1\x87\xb9\xec\xb2\xcbx\xf4\xd1GI\
+&\x93\xbc\xf0\xc2\x0bH)\x19\x1c\x1cd\xdf\xbe}\x95\
+\xb3\xa5\xba\xbb'd\x10\xbd\xc1/\xe9t\x9a`0\xe8\
+\x0fO\x8eF\xa3\xbe\xd4\x18\x86\xc1\xec\xd9\xb3\xc9d2\
+(\x8a\xb2+\x93\xc9\x5c\xc3q^\xba\xae\xf3\xe4\x93O\
+\xf2\xd4SO\x91\xcf\xe7\x99<y2\x9f\xfd\xecg\xf9\
+\xf4\xa7?\xed\x0fK\xf3F\x8d\xc7\xe3q\x9f6\xff\xfc\
+\xe7?\xcf}\xf7\xdd\xe7\x8f\x05\xf4\xc8NO\x9d\xd7\xd5\
+\xd5\x91\xcf\xe7I\xa5R4662<<\x8ceY\
+}\x8a\xa2\xe4\xff,*\xcb[\xa1P\x88{\xee\xb9\x87\
+\xfb\xee\xbb\xcf\x8f\x13<u\xd3\xdd\xdd\x8d\x10\xc2\x1fv\
+\xe6\xddlUU\x95O\xc5{'-{\xb6\xc6;\xef\
+\xd0\x8b?\xf6\xec\xd9s\x5c\xfb\x00\xdf\xbaFGG_\
+\x09\x87\xc3\xd5c\xf7\xb6\xf2\x1b\xdf\xf8F\xe4\xb5\xd7^\
+\xf3\xef\xcd\xb3a\xe3\x8f\xdep]\x97U\xabV1u\
+\xeaT\x96-[\xc6\xd3O?Muu5[\xb6l\
+\xa1\xb9\xb9\x99\xad[\xb7\xb2r\xe5J\x0a\x85\x02\xed\xed\
+\xed\x1c<x\x90h4Joo\xef\xe5\xdd\xdd\xdd\xdb\
+\x8f\xa4\x0b\xe0H\xad\xa56s\xe6\xcc'\xa3\xd1h@\
+\xd7\xf5\x0bO<\xf1DB\xa1\x10\xaa\xaa\xb2o\xdf>\
+\xbf\x059\x1c\x0e\xfb\xd3\x0dB\xa1\x90\x7f\x1cP&\x93\
+!\x97\xcbM\xe0\xb9\x82\xc1 \x17^x!/\xbf\xfc\
+2\xde\xbcu!\x04\xed\xed\xed\xaf\x0f\x0c\x0c\x9cy<\
+\xc1\x18\xb3G\xfe\xcfs\xe7\xce\xdd{\xed\xb5\xd7\xce\xbb\
+\xf9\xe6\x9b\xb9\xfc\xf2\xcbY\xb6l\x19---<\xf9\
+\xe4\x93\xbej\xfd\x87\x7f\xf8\x07\x1ey\xe4\x11\x0c\xc3\xe0\
+\x86\x1bn`\xd3\xa6M\x8c\x8e\x8e\xfa\xae\xb0\xd7\x93\xa2\
+\xeb\xba\x7f\x0cG0\x18D\xd7u\xba\xbb\xbb\x97\x1d<\
+xp\xcb\x91\xdc\xe3\x91\xf6\x9f\xd9]]]\x97\xb7\xb6\
+\xb6^\x17\x0a\x858\xf3\xcc3\xf9\xc2\x17\xbe@4\x1a\
+\xa5\xb9\xb9\x99\xa9S\xa7RUU\xc5\x8c\x193\xa8\xa9\
+\xa9\xa1\xae\xae\x8eH$\x82\xeb\xba~\xa0\xb5r\xe5J\
+\x02\x81\x00\x0d\x0d\x0d\xc4\xe3q\x82\xc1 \xd1h\x94\xb1\
+\x81\xcdon\xdf\xbe\xfd\x9f\xb6o\xdf\xfe\x19\xe0+\xc7\
+[:\xc6\x831&\xa1\xca\x0b/\xbc\xc0%\x97\x5c\x82\
+\x10\x82{\xee\xb9\xc7?\x9fp\xc3\x86\x0d\x18\x86\xc1\x15\
+W\x5cA\x22\x91@\xd7u~\xf9\xcb_\xd2\xdd\xddM\
+\xa1P\xa0X,N89\xc7s\xedC\xa1\x90\xf4\xcb\
+\x91\x5c\xf7\x88\xdd\xc3\xa3:-Z\xd3\xb4\x80\x10\x82\x07\
+\x1f|\x90\x87\x1ez\xe8\x0f\xfe\xfd\xe0\xc1\x83\x7f\xd49\
+x\xab\x1b\xeb8\x0e\xbf\xfd\xedo\xbdIo\xbbr\xb9\
+\xdc\x7f\x02\xefX\xb6\x7f<V6\x9b\x95\x9e\x8a\x12B\
+\xf0\xfc\xf3\xcfs\xfa\xe9\xa7\xb3c\xc7\x0e6l\xd8@\
+}}=\x0f>\xf8 \x0f>\xf8 w\xdf}\xb7\xef\
+\xba{A\xafw\xc2\x90\x97\xbe\x1eSo\xa2\xad\xad\xed\
+\x5c\xc7q\xf6\xd4\xd5\xd5%\x8e\xf4\x9e\x8e\xca\xc1\x0f\x85\
+B\xb1\xba\xba\xba\xcf\x85B!\x17\xb8*\x1c\x0e/>\
+\x1c\xbd\xefMz\xf0\xa6<{\x996\xcf\xdfO\xa7\xd3\
+kzzz\xde\xcf_~E\x16/^\x5c\xf0\xfaE\
+t]g\xe9\xd2\xa5\xec\xdb\xb7\xcfw\xc9\x0f\xc7}\xf5\
+\xf8\xb1\xed\xdb\xb7\xcf-\x14\x0a\xedGs#\xc7<8\
+\xaa\xb9\xb9\xf9\xe7MMM\xd7\x1e\xce\x5cs\x0f\x14\x8f\
+\xce\xae\xa9\xa9\xa1P(\x14[[[\xa3\xe3\xbe\x8f\xfe\
+\xfe\xfe\xbf4 \xc1\x96\x96\x96m\xf1x\x5c\xe4\xf3\xf9\
+Hcc\xe3\x09RJ\x0a\x85\xc2a\x8f\x90-\x14\x0a\
+\x98\xa6y\x9f\xeb\xbaV\xb9\x5c\xfe\x8f\xa1\xa1\xa1\xd1\xff\
++\x80\x00\x81\xb1\xef\x09\x86B\xa1\xa5\x87\x1b\xd7xQ\
+{8\x1cNd2\x99]\xfc?\xb2\x82\xc1`m8\
+\x1c\xfeG\xd7u\x9d#`\x08d \x10H\x9e|\xf2\
+\xc9\xff\xf3\xc2\x0b/H\xde]\xef\xaew\xd7\xbb\xeb\xdd\
+\xf5\xeezw\xbd\xbb\xde]\xff\x8f\xad\xff\x03!\xf6p\
+\xa0\xc1\x03\x97\x85\x00\x00\x00\x00IEND\xaeB`\
+\x82\
\x00\x00~\xd7\
\xff\
\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x00\x00\x01\x00\
@@ -6040,6 +5556,490 @@ R\x22\xd4\xca\xc6\x0aMn\x1a\x04\x81G\xd6\xdb@\xd5\
\xbd\xcdH7\xday\xe13\x95\xf7\xf8\x1f\xcb\xb6\x8e\xf6\
\x8f\xf1\xef\x16\x00\x00\x00\x00IEND\xaeB`\x82\
\
+\x00\x00\x1ax\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00d\x00\x00\x00i\x08\x06\x00\x00\x00\xcc|\x86\x8a\
+\x00\x00\x00\x01sRGB\x00\xae\xce\x1c\xe9\x00\x00\x00\
+\x06bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\
+\x00\x00\x09pHYs\x00\x00\x88&\x00\x00\x88&\x01\
+\xac\x91\x9d\x06\x00\x00\x00\x07tIME\x07\xd9\x03\x03\
+\x0e\x04:\x04\x0e\x03\xc5\x00\x00\x19\xf8IDATx\
+\xda\xed\x9d{tT\xf5\xbd\xe8?\xbf\xbdg\xcfd\x92\
+\x0cy\x12\xc2#\x01J(\x8fJ\x90\xa2\x16k\xc3\xa9\
+\xa0\x02\xf5\xd4.\xbd\xda.[\xee\xa5\x85z\xb4u\xf5\
+\xae\x16\xef\x83\xf6\xf6\x9cs[\xd0z{\xafK\xaf\xbd\
+\xb4\x97\xd5z=*\xb7\xd6\x1e=\xe7\xd4Z\xa1*x\
+\x05\x0fJ\x00Q\x08\xa4\x09\xaf\xc8#\x04\xf2\x9a$3\
+\x99\xcc\xec\xc7\xef\xfe1\xccf\x1e{\x87\x09L\x12p\
+\xe5;k\xafd\xf6\xfe\xfd~\xfb\xf7\xfb\xbe\xbf\xdf\xdf\
+c\x04@eee\x9d\x10b\x07c0\xea\xa0\x00\xaa\
+eY\xda\x18*\xae\x0e\xf0\x00\x85\xa6i\x16\xaa\xaa\x0a\
+\x80\x94\x12\xcb\xb2\xc603B \x84@Q\x94\x14\x82\
+\x94\x1b\x86Q\xe6\xf5z\x01\xc8\xcf\xcfg\xe5\xca\x95c\
+\x98\x1a!\xd8\xbf\x7f?{\xf7\xeeM!\xc8D\xc30\
+*\xd3\x0b\x9a\xa6\x89\xae\xebc\x18\x1bF\xc9\xf0\xf9|\
+\x08!2T\xd6\xf8\x0b\x97\x0dRJ\xfa\xfb\xfbik\
+k\x1b\xc3\xdc0A^^\x1eS\xa6LAJ\x99A\
+\x90\x80eY\x81\xf4\x0a\xc3eK\x84\x10((\x08@\
+ \x88\x19&1\xcb@\xf5\x9b\xf1;1\x0f\xaa\xa5\x82\
+\x00\xa1H\x10 \x91\x9f8\x82\xa4\x13\x22\x99 ^!\
+\x84\xe6T0]\x9cr\x01A\xa3\x8f\x93\xfa9\xba\x8d\
+\x10\x032\xc6gn\xc8gvm\x01Iv\x8d\xfe\x1e\
+\x89l\xcf'v\xce\x87\xd5\xee\xc73\x90\x17'\x90\xdd\
+\xb1O6A\x14\xcb\xb2\xd4d\x22X\x96\x95S\x09\x11\
+@\x8f\x19\xa6a\xe0\x04\x1df\x0fB*L\x9d\x9e\xc7\
+\x8a\xa5e\xe4\xe5)\x98&H\x09\xe2\x824\x14\x94\x0a\
+(\xebG\xcc\x09\x83\x02\xb1\x01\x89\xec\xd30z5d\
+\x9f\x86\x19\xf2`\x854\xac\xb0\x07+\xa4\xa2\xe8\x9a-\
+M\xf1K^\x13\x04I\xe09\x9d \xc2I\x12\xdc(\
+x9\x10\xb2\x22\xfck\x7f\x03RJT\xa9R1\xc9\
+\xcb\x17\xbfT\x8a\xb4\xc00$B\x08\x12]\x10q\x1d\
+\x05R \x11`H4U\x81b\x13o\xb1\x09\x0c\x10\
+\xef\xda\x85r\xc0@Hb\x9c\xcf\xc3h\xf7\xa1\xb7\xf9\
+\xf0\x84\xf3mN\x10W\xa9D\x0d&!\xae\x94\xcb\x85\
+\x84\x18\xd2dW\xff\xa1\x0b\x12 \xf0\xe5\x09n\xbb\xab\
+\x0cie\xa9\x16\xed\xe7\xc2\xf1\x96\x04\xfcE\x02\x8a\x07\
+\x10\xb3\x07@\x01=fa\xf6z\xb0z\xbd\x18\xbd*\
+\xb2\xcf\x8b\x19V\x91!\x0fFHA\x89z\x11B\xc6\
+\xc3\xe2Q\x92\xa8\xc1$\xc4\xb5B.\xa4\xe4\xa4~\x0e\
+C\x9a(\x17\xb0X3\xb7\x00E\x11\xc8\x1c1\xae\xdd\
+\x86\x14H\x13\xa4\x09\x1e\xa1\xe0)\x92P\x14\xbd0\x96\
+\xfe\x14\x89\xd2\xa3\x92\x816\x0d\xeb\x9c\x9fH\x9b\x07O\
+w\xbe\xad\xeeFJ\xa2\xb2\x96\x90db\xe4\x82 \xed\
+FO\x8a\x14TN\xf6\x0e\xab]\x16N\xff%K\x94\
+\x94x\xfd\x02\xef\x0c\x1dQ\xa3S\xa2HL\xab\x83X\
+\x8f\x02=^b=*\xf4z1\xc2\x0a\x845b!\
+\x81\x12\xd1\x10jn%\xc9\x0d\xbf\xc3N\x90\x90\x8c\xa4\
+|/,RG= \x03\xc0\x8aK\xa94@\x11\x0a\
+y\x85\x12\x0ac\xe4M\x06I\x04d\xc2\x96\x81e@\
+\xd7\x9fK\x90]y9'HV*+\x97\x0410\
+\xe3\x86\xfa\x02\xf8|\xa3K\x10W\x02\xa5\xcbV\xc2c\
+\x93\xa0\xfa@\xd1\xc0\x90r\xe4\x09\x92K\xef\x8a\xf8x\
+l\xfb\x01\xa0\x88k,\x8c\x10I\x03\x19\x01\x18TB\
+\xc6\xb2\xbe\xc3\x97\xb9\x18\x92\x0d\xc9\xb5\xa4d\xb6%\x87\
+P\xf7\x82Z\x11\xf1zq\xc4H[\xdd\x08.\xc60\
+\xc3J\x90\x1c\x8b\xc8\x90\xbc\xac\x04'\xe4\x82#\x84\x88\
+\x1b\xcdTP\xb2\xaa\xab\xa8\xd0\xd5\xaes\xead\x1f5\
+\x15s\xb8a\xc6MT\x96N`z\xe5\xa7P\x15\xe8\
+\xeco\xe3d\xf0/\xb4\x85>\xe6xw\x03\x8aP\x1d\
+\xde\x953\x0c\xe6\x5cB\x86\x1c\x87\x0c\xb7cz)\xc9\
+x\xfbO\xdd\xf4\xb4\xc3\xab?\xfb\xbf\xcc\x9f>\x1f\x8f\
+\xeaq\xec\xa7)\x0d\xce\xf4\x1e\xe5\xd7{\xff\x96\xf3\xa1\
+\x93\xa8\x8as\xb9DF\xc0\x92V\x5c\xf2\x10Y\xe7\xeb\
+\xe40\xa8@'<+\xd9x\x01Wr]\x0e\xc4\x06\
+,^}\xb1\x0d-V\xc6G\xcf\xec`a\xcdBT\
+Eu\xf5\x92<\x8a\xc6\xd4\xe29l\xb8\xeden\xfd\
+\xd4}\x18\x96\xeeX.\xd4k\xb0\xedO\xedL\xb6\xea\
+\xb8\xbfv-K>\xf5U\xe6\x8c\xff\x5c\xd6\x0c\x92+\
+\x9c\x0c\x86\x97aw{\x11\x82\xf4f\x06k\xd7\xb2\xe0\
+\xf5\x7f\xec$\xe0/\xe5\xfd_\xbe\x89\xdf\xeb\xcf*\xc5\
+\x92\x90\x80\xfbk\xff#\xc5y\x15\xfcc\xc3\xff\xc4\xab\
+\xfa\xec\xe7\xaaG\xd0rd\x80\xe6\xc3=\xdc\xff\xf7\x7f\
+C\xcd\xc4\x99\x00\xb4t\x1f\xe6\xf0\xf9\xf7\xb3\xa0\x88\x95\
+S\xad\xe1\xa4\xae\x06UY\xb9\xf3\xf3\xe3\xaen2\xa7\
+*\x8a;r\x0f\x7f\xd0G\xa4\xdf\xe4\xe7\x0f>b\x13\
+#\x1d\xa2F\x84\xf7\xff\xb2\x1bM\xf8\xb9a\xd6\x02\xbc\
+\x1eo\x0aaV|z\x15M\x1d{i\xee\xfc\xe0\x22\
+AT\xc1\xc9c\x03TV\x94P3q\xa6M@\x04\
+)s\xdaW\xaajs\xee\xf6\xe6B\xe5\x5c\xb6\x1f#\
+\x05\x87?\x0cQ^\x12\xe0\xdf\xdev\xbfc\xa9s\xa1\
+S\xfc\xb7\x9d\xab\xe9\xe9\x0b\xb3\xf5\xe5N\xaa'T\xf1\
+\xde/\xde\xca\x08\xf4\xfe\xcdg\xfe=\x8f\xbd\xb3\xca\xfe\
+\x1e\x09[\xf4\xf5\x98\xdc<oavI\xcda\xca\xed\
+]J\x0b)\x83\x89\x93eYW|%\x5c\xc6\xc4'\
+\xfd{\xe2\xa3\xa8\x82\x86}}t\xf7\x84\xf9\xdf\x8f<\
+\xe1j\x04_\xf8\xf0Q\x22F\x98\xbc|\xc1\xedw\x97\
+p\xf0H\x13w\xfe\xf8\xde\x0c\x04W\x15\xcd\xa4\xa6t\
+>\xa6e \x91tw\xe8H$\xd7\xd7\x5c\xe7\xe8\xd2\
+^\xf2\x93#|$.7/Kq2~\xb9\xe4\x06\
+\x91\xf6q\xba'\x10(B\xa1\xf9`?\x15\xe5E,\
+\xb9~\x89\xa3Q\xee\x8e\x9c\xa3\xb1\xbd\x1e\x81@ZP\
+P\xa82s\xf68\xde\xfbp?\xef7\xd6g\xd4Y\
+\xb3\xf0\xa7X\xc4\xd0T\x85sma\xf4\x98\xc1\xbcO\
+\xcd\xc9p\x9f\x84\x14\x5c\xea\x93k7+\xeb\xc00\xd9\
+\x1d\xcb\xdd\x8c\xa1\xc8 Q:t\xb4\xc5\xd0c\xb0\xe2\
+\xe6\xbfr\x8d%\xde9\xf1O\xa8\xc2\x13\xaf\x7f\xa1\x89\
+\x09\x93}\x9c<\x16\xe5\x9d\x8f\xfe\x95EsnJ\x19\
+G\xb1\x7f<M;Kh:v\x8a\xed\xbfx\x99\xfe\
+\xaf\xc7\x983%\x95 \x01_\x09\x9f\xabZ\xce\x80\x11\
+A7#\xb4\x87[\xe9\xe8?\xe3(E\xb9\x8eCF\
+\xc7\xcb\xca\x12\xba\xdau\x84\x80\x053\xe7\xb9\x96i\xee\
+\xfc\x00U\xa4\xba\xbf%e\xf1\xe5\x00\x07\x8e58&\
+\x0d\xe7U\xcd\xa7\xe1/\x1f3\xa9d2%S\xca3\
+\xda,\xcb\x9f\xc8\xaa\x05\x7f\x1bO\xecJ\x8b\xffw\xe2\
+e^9\xf4\xf4\xd5eC\x86#\x0f\x94\xfar\x99q\
+\x85zM\xa4\x94TULtm\xe7tO3B(\
+)\xf5\x0a\x02*RJ\xcev\xb6;\xd6\x99;\xf53\
+Y\x05v\x82xFAIk\xff\xe2u\x15$\x17s\
+\xc1\x11\x8aHUQ\xc2\xc5}\x0c\xf7Y\x08!\xa8\x99\
+<\xd3\xb5-\xc323\x8c\xb7?_A\x08Ak\xc7\
+\x19\xc7:\xd3&M\xc62\xa1\xc0\xe7O\x89W\x06W\
+\xaf\xc2\xd9\xf0\xcbQ\x9a\xa0J\xcfi]y,\x22.\
+\xe9\xd3\x87CqdW\x96\x959G\xeff\xd4\x11\x91\
+\xaa'\x9e\xfe\x08G#\xce\x122\xb3\x9a\xaf\xfdM%\
+\x13\xef\x9bEYQ\x11G\xfe\xe1P\xaa\x1b\xddw\x8a\
+\x7f>\xf8\x0c\x9a\xe2\xa3\xc0WHG\xf4cg\x82X\
+W\x81\x0d\x19I\xd0c\xf1\xc1\x96\x14\x16;?7\x07\
+\x5c\x93L\x9aO\x10\x899?/\xce\x1b\x8f\xc7\xa3\x90\
+\xe7\xc9\xc7225t\xc4\xe8\xe3@\xc7\x9b\xa92\xe2\
+\xb4\x0ag\xd8\xd5\xf8 ^Vn\xd7ee\x17\x80\x99\
+F\xbcc\xf9\xde\x80\xab\x84\xb8\x81\xd7\xab\x10\xeew^\
+\x87\xecU\xf3.\xa6\x0c\x84s\xf7D6\x19\xe2\xd1\xcc\
+\xf6&b\x91\x5c\xac\x5c\x8c\xe3A\xa4}w \x889\
+x\xf4\xac\x9bQW\xd2\xfa|\x0a\xbaa:>\xd3T\
+\xef\xc5\xf5s\x0e\xed\x0bW\xab\x96\x8d\xea\xcd\xb5*\x1f\
+d>d\xa4g\x0c\x0dC\x0e:\xdf\x1e\x1bTe)\
+\x18\xba\x85i\x99\x19YaM\xf1]\x94\x84+\xc8G\
+\xe5\x1a\x1f\xc9\x11\xfb\x88g{\xb3Q\xc0\x8a\x10\xf6L\
+\xe0P\xb8SB\xea\xaa\xc7a\xe2\xea8>\x86?R\
+WFB4\xb3\x01U\x15\xe8\x86;\x07\xda\xb6\xc0\x81\
+\xdez\xccBU\xe3;\x91\xd2\x07iZ\xc6\x05\x0c\x08\
+W\x09\x1b-\xc8Ze\xb9\xcdf]I.+\xcd\x8a\
+:\xbb\xaf\x03\xee\x8c\xa0\xa9>\xc7z\x08\x81\x11\x13h\
+\x9a\xc7q\x90\xba\x15\x03q1\x8b\xe6J\xd5Q\xca\xf6\
+fmC\x92\xb3\xb5#%!\x08\x88\x9a\x11|j\xe6\
+<\x88m\x0b\x5c\x5cf\xaf\xe6qq\x06b\xb9A \
+\x16\xb9DG\xd6\xd9\xde\x5cJ\x87\x9bMrJo\xfb\
+\xfcqus\xae\xfb\xbc\x8b\xca\xf29\xd6\x13\x02b1\
+I\x9e\xe6u\xce\x00\xc4\x82\x17\xd3\xfe\xd2\x0d\xd9\x97\xfe\
+\x0cG\xb6wH\x81a\xee\x88\x929C\xa88\x98\xae\
+\xfc\x02\x15EQ\xe8\xea\x09R]>\xd5Qe\x09\xe9\
+\x10\xb4I\xe2\xa9\x91|g\x1b\xd3\x1b\xed\x8e\xef\xd8\x12\
+\x02\xb7\x89A%\x8b\x94\x9e\xcc\xf1\x14\xee\x90\x92\x8b9\
+\x9d\x0f\x11\xd99\x0c\xfe\xfc\xb8\xbb\xda\xda\xd96\x88\x1d\
+\xf1f\x1am#\xfe\x8e\xc2\xbc\x80\x0bA:\x93\xe2S\
+qEJ+\xd70j\xb9\xacl\xa0p\x5c\x9c \xc7\
+[[\x5c\xcbT\x17\xcf\xe2H\xc7G))\xf8p(\
+\x1e\x10V\x8f\x9f\xe2X\xa7-\xd4\x92#\xe41\xba\xb9\
+,\xb7U\x11\x97=\x9a4\x9d\x9d\x0e%\xe5\x1aH\xc9\
+\xfe\xa3\x07\x5c\x9b\x99Q2\x9f\xa6\xf6\x0fRTL\x7f\
+\xc8\x02)\x19_R\xeaX\xe7l\xdf\x09\xdb\x068\x8e\
+'\xcbM\xa5r\x98V\x9ddm\xd4s\x16\x8b\x08\x01\
+\x8ab_\x82\xf8.\xdc\xf4Oi\xb9\x06\x8a\xc2\xa1\x13\
+\xcd\xae\x1c\xf4\xb9\xaa\xe5X\xd2L\xa9\x17\xec4@Q\
+X8k\x81\xe38N\x06\x9b\xe2\x04T\x04\xc2a\xb5\
+\x8b\xa6\xe6\xa1\xc8\xe4\x16\x9d\xfb7\x12i\x93AmH\
+2\x05Gb\xa1\x9c\xd7'\x982\xcd\xc7\xc1\xa3\xcd\x1c\
+=\xdb\x9c\xd1a)%\x13\x0a\xab\xa9,\x9c\x9a\x82\xf0\
+\xf3\xad1,\xcb\xa2\xae\xf6s\x19\x03n\x09\x1e\xe6|\
+\xe8T\xdc\xadV\x04\xb1hf\x02rBA\x15\xba\x15\
+E7tN\x9f\xee\xa37\xe8\x9c\x13\x93\x96\xcc\xe9B\
+\xb9\xac%\xc4-\x1e\xb9\xa2U'\xe9\x04r\x98\x903\
+\x0dX\xb0(\x80G\xd5\xf8\xbb\xff\xf3\xb8+G\xdd2\
+\xf5.L\xcbDQ\x05\xbdA\x83\xa3\xcd\xbd,\xbdq\
+\x11\xb5\xd3k3\xea\xbc\xd6\xf8\x1b<\x8a\x06\x12\xbc>\
+\x85H4\x13\xd9\xaa\xe2\xe1?\xd7=\xcb\xd4\xe8\xdd\xac\
+\xb9\xfeg\xac\xff\xebg\x1d\xfb7\x1c\xabN\xb2\xb6!\
+\x09$\xe6&\xdb\xeb\xb0:]8\xc7\x02\xf9\x85*S\
+\xa7\x17\xb0m\xdf{\x1cm=J\xcd\xa4\x9a\x8crw\
+\xd4\xac\xa4\xab\xff,\xbf\xdd\xf9\x02;\xdf\xe8\xe3\xcbu\
+\xb7\xf3\xcc\x7f\xf8_\x19\xe5Nt\x1f\xa2\xa9s\x9f\xbd\
+\xce\xb7\xb8\xd4CO\xb7A\xd3\xe9&fM\x99\x952\
+\xcei\xa5\xb3Y\xf7\xb5\xd9\x00\x9c\xeai\x1a$\xa0\x1f\
+\xfe\x94\x922\x98w\x95+\x09\x89\x13E\x5c\xdcV\xe0\
+p\xd9\x8b\x12n(\x04\x09?\xfb\xedS\xae\xb6\xe4\xfe\
+\xf9\xff\x89\x8d_{\x9d\xc3\xcf\xedd\xf3\x0f\x7f\x8dO\
+\xf3e8\x0co\x1c}!\xe5}Sk\xf2@\xc2?\
+\xed|mP[)P\x1c\xfb\x97Xu2\xe2\xeb\xb2\
+F\xc3\xe5M\x86\xf2J\x8d\x1bn\x19\xc7+\xdb\xff\xcc\
+\xaf\xfe\xb4)\x13a\x17\xbeW\x8f\xafbRIU\xc6\
+\x80\x04\x82W\x0e\xfd\x82\x03m\xef\xa6\xdc\x9fT\xed\xe3\
+\xc6\xc5\xe3x\xea\xa5g\xf8\xf5\x96\xe7\x1cm\xd4\xbb-\
+\x7f\xe0\xf9\x0f\x1f\xcd\xc6Q\xcc\x99\xdb\x9bU\xfa=\x97\
+\xfbC\x86\xec\x0e\x9a\x92\x9a\xb9~\x06\x06\x8a\xf9/\x9b\
+\xfe;\x05\xbe\x00\xff\xee\xb6\xfb]\x83\xbad\xc4\x1a\x96\
+\xce\x96\xe6\x7f`\xdb\xf1\xdf\xc5mG\xca\x98$3f\
+\xfb\x99>\xd3\xcf\x96\x8f\x7f\xc1\x9f6n\xe4\xf3so\
+\xa4\xbc\xa8\x9c\x96\xee\xc3\x9c\xedk\xc1\xa3x\xf0(^\
+g\xd54L3\x86#\x1e\x87\x88\xcb\xb09R\xc2\xdc\
+\xeb\xf3\x99\x5c\xed\xe3\xd1\x17\x1f\xe7\xb7o\xfc\x0b\xcf\xae\
+{\x8a\x89\xa5\x93\x5c\xeb\xedo}\x9b\xd7\x9b\x9f\xe5l\
+\xa8%\x83\x18\xc9\xed\x0a\x05\xa6T\x15\x02\x92\x93\xe1\x83\
+\x9c\x0cK\x04\xf19\xf7\xc1l\x845B\xabN\x94l\
+\xf3-#\xb9?$\x81\xc0\xe22\x0f\x7f\xfd\xb52*\
+\xae;\xc3\xc2\x87?\xcf\xb2uw\xd3\xdau\xd6\xb1\xfc\
+\xef\x0e>\xc1\xb9\xf0\xc9!\xec\xa0\x12\x17\xd6a\xa9\x17\
+\xed\xdb\x10\x82\xdb+\xc5\x99[\xc4~\xc9\x19C\xd34\
+\x87\x1c\xfe\xa7\xa4\xbf\x0d#e\xbf\xbdi\x19\x08K\xb8\
+\xe7\x8bdj\xe6\xc80\xa1\xb0\x04f\xce.f\xf7\x9e\
+\x8fxc\xef6\xbeyG\xe6\x89w\x9f\xa9X\xc4\xfb\
+\xa7^\xbfD\xe6If\x9d\xaa\x92i7#\xfd\x11\xfa\
+\xfb\x8d\xdcyS\x8a\x92\xbd\xca\xb2,\x0b]\xd7\x09\x87\
+\xc3W,\xa6Q\xdd@X\xa9\xf3\x13\xf22\xdc\xc7\x92\
+\xf1`\x18\x06\xef5\xec\xe5\x9bw\xac\x8c\xa7\xde\x93\x14\
+\xe2\x8aO\x7f\x93\xe6\x8e\x0f\xe8\x8b\x061\xa4\x8e1\xc8\
+*\x95ltk\xfa\x84V\xb4\xdf\xc00rG\x10\xc3\
+0\x18\x18\x18\xc88\xb5\xcfQ\xbec\xb1\x18\xb1X,\
+g6$\xd9\xedM\xec\xeb\x1b\xea5\xb1\xca\x87\xd7\xab\
+\xf0\xcf\x17\xdc\xd6t\x8e\x1e_0\x85\xbf\xbb\xf5\xb7\xfc\
+\xd7%\xbf\xe3\xceO\xaf\xc6\xb0bC{G\xc6*}\
+q1\x1eS\xa0\xaf-w\xc4\x18r\x1cb\x9afN\
+\xf7\x87\xe4*?y\xcb\xed\xc5\xb4w\xf5\xf1\xf7/l\
+p\xd4\xf9^O\x1e%\xf9\x15\x14\xfa\x8as\xb6\x8dY\
+Q\x05g\x0fE1BfN\xe3\x10\xb7\x88]\x19.\
+cn\x1b\xaf\x1c\x05\xb7\x96%\x99T\xed\xa3\xf6\xb3%\
+\xfc\x8f\xcd\x9bxk\xff\xf6\xac\xed\xd8\x151\x82\x80\xc3\
+/\xf6\xa2xs\x8b\x97\xcb\xf2\xb2\xae&HH\xc4\xe7\
+\x97\x141wA\x80o<\xb6\x9a\x97w\xbdD{\xef\
+yB\x03\xbd\xe8f\x94\xa8\x11!\xa2\x87\xe9\x8f\xf5r\
+\xa5\x9c\x90`\xa6\x13o\xf7\x13\x0b\x9a#6N\x8f{\
+\xfeI\xe4&w\x93c\x0e\xb6,XxK\x80y\x0b\
+\x0b\xf8}\xf3c\xfc\xf9\xf4FJ\x03%\xf8}~L\
+\xcb$fF\x08\xc7z\xd1\x14\xef\x15\xbdG\xf3+\x9c\
+\xd8\xd5\xcf\x91\x7f\x09\x0dK\x0e\xcb\x0d\xbf\x1e\xaeA\x90\
+\x16h^\x85\x12o\x1e\x10%\x18k#\x18\xbb\xccD\
+\xe0\x85UIR\x82\x11\x95\x981\x0b#\x229\xb6\xbd\
+\x9f3;\x22\xa8\x9a\x18V\x89w:\xb7wx%\xe4\
+jR{\x0a\x085n\xa8\x0dC\xd2sF\xa7\xb7\xc5\
+\xa0\xe7\xb4N\xff\x19\x13\xbd_\xa2\xf7[\xc4\xfa,\xa4\
+\x89M\x8c\xe1\xc2Cb\x0d\xf55/!\xd9\xc6\x13f\
+L\xdaW4d\x11<e\xd0sL\xa7\xfbc\x9d\xc8\
+\x19#\xcetJ\x9cP\xe9\xd6T\x0c\xb3u\x1d5\x09\
+\x91b\xf8\xce\x98\xb49^\x11\x98R\xd2{\xd6\xa0\xaf\
+\xc5\xa0\xe7\x8cA\xf8\xb4A,,1\xc2\x16\xb1~\x89\
+\x19\x89\xaf\xe1J\xa8(O\xde\xe8\xfb3Y\xdb\x90\x5c\
+\x8ah~\x97B\xa4\xd8\xe2\xb2\xd7\x9e's\xbc.\xb1\
+b\x12S\x97\xc4\xfa%\xc1\xd3:\xbd\xc7\x0c\xba>\xd6\
+\xe9?i\xc6\xc39\x9b\xe3EJ\xf4\xa8\x5ce\xba\xc0\
+\x8d\xe9=C\xa5\xe0Pa\xdcy\x15\x8f.\xe8\xad0\
+\x11Rd\xc5\xf1B\x11H$\xbd\xe7MB\x1f'8\
+\xde$\xd6g\xd9\x1co\xf4K{\xa9\x95\x10\xe0\xf1\x89\
+\x1c\xe4\x9aG\x1f\x5c\x93\x8b\xb9[u\x02\x05\xdd\xf1\xb3\
+\xdcCe\x16\xc9{*-#\xae\xdf-]\xa2\x0fH\
+zZ\x8d8\xc7\x9f\xd4\x09\xb7\x98`\xe2\xaa\xe3\x15\x95\
+k\x1e\xb2^(\xe7fp\xae\x84(\x85\xdd*\xaa.\
+h\xffK\x8cp\x9bI\xf8\x94I\xb4\xcfB\x0fI\xf4\
+\xb0\x85\x1e\x96q[\xa3\xc49^\xf5\x88O\xa2\xcb\x91\
+\xa1\xb2\xb2\xf6\xb2r\xed\xeaI\x01\xfe\x90\xca\xa1_\x87\
+>\xb1\x1c\x9f\x0b\xc3>\xb2q\x88\x00E\x13\x8c\x81{\
+\xa4\xae\x8c\xa1\xe6\x1a0\xea9\xb7!cpen\xaf\
+\xc8r\x8b\x17\x80\xaa\xaah\x9a\x86eY\xf6to.\
+7Z^m^P.\xeb\x0d)\xb9\xe8\xa6\xe3,\xcb\
+b``\x80;\xef\xbc\x93;\xef\xbc\x93\xf1\xe3\xc7\x13\
+\x08\x04\x88\xc5b\x04\x83Av\xef\xde\xcd\xee\xdd\xbb\xd1\
+4-\xc5\x8bp\xfa\x9b\xed\xb3\xa1\x96K\xf43\x19A\
+n\xe5\xae\xf4]N\x7f\x13S\xe0\xb1X\xcc\x959\xdd\
+\xee{\xb2Ix%\xc3g?\xfbY~\xf9\xcb_R\
+\x96v&I\x22v\xb9\xf5\xd6[\xe9\xed\xed\xe5\xe9\xa7\
+\x9f\xe6\xe8\xd1\xa3\x19\x03O\xb4\x9d>[\x96>\xd8\xc1\
+\xbeg[n\xb0\xff\xdd\xbe[\x96\x95r\x88\xdb`\xfd\
+u\xeb\x97\xc7\xe3\xc1\xeb\xf5\xe2\xf7\xfb\xe9\xef\xef\xb7g\
+`\xb3\x91$\xe5R\xfa-q\x19\x86\xc1\x8f~\xf4#\
+^z\xe9%\x9b\x18\xe9\xcbE\x13\x10\x08\x04X\xb7n\
+\x1d_\xff\xfa\xd7]\x17\x06\xe4\xe7\xe7SWWG\xe2\
+\x07-\xaf\xc6 -]3\xdcz\xeb\xad\x8c\x1f?>\
++5$\xa5DQ\x14\x0a\x0a\x0a\xc8\xcb\xcbs\x9d\xcb\
+\x1f\xb2\x97\x95\xa8\xf4\xfd\xef\x7f\x9fU\xabV\xd9\x1d\xaf\
+\xaf\xafg\xf5\xea\xd5l\xdd\xba\xd5.k\x18\x06?\xff\
+\xf9\xcfY\xb3f\x0d\x07\x0e\x1c\xe0\x8e;\xee\xe0\x9e{\
+\xeeq\x1c\xec\x8a\x15+\xf8\xcew\xbe\xc3M7\xdd4\
+\xea\x84P\x14\x85i\xd3\xa6\x0dZn\xee\xdc\xb9l\xd8\
+\xb0\x81\x87\x1ezh\xc8\xf6\xc1\xe7\xf3\xe1\xf3\xf9.\xcf\
+\xcb\xbax\x02\xb4\xb0\x7f l\xce\x9c9|\xef{\xdf\
+Ky\xd1\xb9s\xe7\xf0\xf9|L\x992\xc5\xae\xf7\xf4\
+\xd3O\xd3\xd8\xd8\xc8\xda\xb5k\x997/~2\xdc=\
+\xf7\xdc\xc3\xfe\xfd\xfbiiiI\xe9\xe4\xce\x9d;\x89\
+F\xa3\x1c<xpT\x09\x12\x8dFy\xe8\xa1\x87\xb8\
+\xf9\xe6\x9by\xe0\x81\x07\x5c\xcb\x1d?~\x9c'\x9f|\
+\x92\x03\x07\x0e\x5cV\xe0\xe7\xf3\xf90\x0c\xc3y\x01\xfa\
+P$\xc40\x0c6m\xda\x94q\xff\xdc\xb9sH)\
+\xa9\xac\xacDJ\xc9\x0b/\xbc@SS\x13\xabW\xaf\
+f\xde\xbcy)R\xb1v\xed\xda\x94\x05w~\xbf\x9f\
+P(\xc4[o\xbdE8\x1cv|\xaf\xa6ih\x9a\
+\x86\x94\x92\xbc\xbc<\x02\x81\x00\xf9\xf9\xf9Y\x9e\xb1\x1b\
+\x7fG \x10\xa0\xa0\xa0\xc0\x9d\x1b=\x1e\xaa\xab\xabY\
+\xb9r%\xcd\xcd\xcd\xe4\xe7\xe7\xe3\xf7g\xee\x91\xf7\xf9\
+|x\xbd^\xb6l\xd9\xc2\xf1\xe3\xc7\x07\x956UU\
+),,d\xdc\xb8q\x14\x16\x16\xda*Y\x08\xe1\xd8\
+vVF=\xf9Z\xb4h\x11\x13&L\xc8H8\xb6\
+\xb5\xb5!\x84\xa0\xa2\xa2\x82\x17_|\x917\xdf|\x93\
+\x07\x1ex\x80\xba\xba\xba\x0c]ZRR\xc2\xdc\xb9s\
+inn\xa6\xa4\xa4\x84\xa7\x9ez\xca&\xc4\xb7\xbf\xfd\
+mG;r\xef\xbd\xf7\xe2\xf1x\xe8\xea\xea\xe2\xab_\
+\xfd*~\xbf\x9fH$\xc2\x9bo\xbe\xc9\xb3\xcf>;\
+(\x92\x1f~\xf8an\xb9\xe5\x16,\xcb\xc2\xe3\xf1\xb0\
+g\xcf\x1e\x1e}4uU{,\x16\xe3\xc1\x07\x1f\xe4\
+\xde{\xef\xb5U\xe8\xb2e\xcb\xa8\xaf\xaf\xe7\x87?\xfc\
+\xa1].\x12\x89\xb0q\xe3Fjjj\x88F\xa3\xfc\
+\xf8\xc7?f\xff\xfe\xfd\x19\xef\xd5u\x9d\xeb\xae\xbb\x8e\
+G\x1ey\x84\xda\xdaZ,\xcbBUU6l\xd8\xc0\
+\x1f\xff\xf8G\x9bX\xaa\xaa\xda\x8e\xc3eIHB\xc7\
+'W\x94R\xd2\xda\xdaJuu5;v\xec`\xfb\
+\xf6\xed\xdcw\xdf},^\xbc8s{\xc0\x85z\xb3\
+g\xc77\xc4tww\xb3j\xd5*\xf2\xf3\xf3\xe9\xec\
+\xect\xfd\xbd\xdd\xea\xeaj\x96,Y\xc2\xf2\xe5\xcby\
+\xf0\xc1\x07Y\xbe|9g\xce\x9c\xe1\xae\xbb\xee\xc2\xe3\
+\xf1\xb8z-k\xd7\xae\xe5\xb6\xdbnc\xe3\xc6\x8d|\
+\xe5+_a\xf3\xe6\xcd\xd4\xd5\xd5\xb1dI\xea\xd1\xb3\
+^\xaf\x97M\x9b6\xb1y\xf3f\x00\xd6\xad[\xc7\xd2\
+\xa5KY\xb7n]\x86\xa4=\xfc\xf0\xc3\xd4\xd7\xd7S\
+\x5c\x5c\xcc\xd9\xb3\xcek\x8bg\xcf\x9e\xcd\xf3\xcf?O\
+QQ\x11+V\xac\xa0\xb6\xb6\x96e\xcb\x96\xd9*.\
+\x81\x87K91\x97\xf4\xb2&L\x98\x90\xf1<\x18\x0c\
+\xd2\xd7\xd7\xc7\xc0\xc0\x00\x9b7of\xd9\xb2e\xdcu\
+\xd7]\x83\xfa\xd7%%%6\xd2JKKQU\x95\
+\x8f>\xfa\xc8\xb5\x83\x93&M\xa2\xa0\xa0\x80\xf5\xeb\xd7\
+\x13\x0e\x87\xf1z\xbd\xec\xde\xbd\x1b\x80\xb2\xb2\xb2\x0c\x82\
+\x18\x86\xc1\x82\x05\x0bX\xbcx1\x7f\xf8\xc3\x1f\xd8\xb2\
+e\x0b>\x9f\xcfV1EEE\x8e\x04\xac\xae\xae\x06\
+\xe0\xe4\xc9\x93\x83\xaa\xa2\xa9S\xa7b\x9a\xa6c9)\
+%?\xf8\xc1\x0fl\xf5\xdc\xd9\xd9Iaa!]]\
+]\x9c8q\x22\x15\xe1\x8a2t/+\xb9\xe0\xb8q\
+\xe32\x9e\x1f:t(\xbe\xd1\xb2\xae\x8eh4:\xe8\
+\x82\xec\x04$t\xb9i\x9a\xd4\xd6\xc6\xf7\x03\x1e<x\
+0\x83 \x09DO\x9c8\x91\x96\x96\x16N\x9c8a\
+;\x17UUU\x00\xb4\xb7\xb7g\x1e2\xa3\xeb\xb6\xe3\
+\xf1\xcc3\xcfPXXH^^\x1e\xb7\xdf~;\x96\
+e\xd1\xd8\xd8\xe88\xce\xaa\xaa*,\xcb\xe2\xd4\xa9S\
+\x83\x06q\xd3\xa6M\xe3\xd0\xa1C\x19c\x95RRT\
+T\xc4\x8d7\xde\xc8\x87\x1f~Hss\xb3m\xe7\x14\
+E\xc9\xb0y\xc9\xef\xb8\xac\x19\xc3`0\x98q\xbf\xb1\
+\xb1\x11UUY\xbat)\x07\x0e\x1c`\xdb\xb6m,\
+]\xba\x94\xf2\xf2r\xd7\xb6B\xa1\x90M\x90\x84\x07\x96\
+\xdc\xf9tn\x04\xd8\xb1c\x07\x9a\xa6\xd9\xf5\xae\xbf\xfe\
+z\x82\xc1`J\xf0\x96\x80\xc9\x93'SQQA$\
+\x12\xe1'?\xf9\x09\x81@\x80\xea\xeaj\xda\xda\xda\xd8\
+\xb0a\x03\x0d\x0d\x0dx<\x9e\x8c\xd8b\xfa\xf4\xe94\
+66\xa2\xeb\xba\xfd\xae\xf42\x09)\xaa\xaf\xaf\xcf`\
+ \xc30X\xbe|9\x00/\xbd\xf4\x12\x89\xdf\xa5\x1f\
+L\xda\x06K-y.\x15$9\xe9\xcc\xc3\x87\x0fS\
+YY\x89\xaa\xaa,^\xbc\x98\xe6\xe6f\xde~\xfbm\
+\xee\xbb\xef>\xd7\x17vtt\xd8\x03\xbc\xee\xba\xeb\xe8\
+\xea\xea\xc24\xcd\x0c\xc4&\x10\x0f\xa4\xa8\xb4\xd2\xd2R\
+\xc6\x8d\x1bGCC\x83c6!\xc1\x0cg\xce\x9ca\
+\xd7\xae]ttt\xd0\xd0\xd0@0\x18\xc4\xe3\xf1d\
+\x10CJ\xc9\xc4\x89\xf13\x82\xf7\xec\xd9\x93\xf1<\xb9\
+?\x8b\x16-\x02`\xf7\xee\xdd\x19\x041M\x93\x193\
+f\x00p\xe2\xc4\x89Kz\x81\xc9{\x1b/+R\xaf\
+\xaf\xafOi(\x12\x89\x10\x0e\x87\xed\xc1\xdct\xd3M\
+\x04\x02\x01\xdey\xe7\x1d\x0c\xc3p\xdc\xbb\x97 bB\
+\xff\xe7\xe7\xe7\xd3\xda\xda\xea\x8a\x80\xf9\xf3\xe7\x03\xa4\xa8\
+\x91\xc9\x93'\xdb\x08\x1fl\xa0G\x8e\x1c\xe1\xb5\xd7^\
+\xe3\xbd\xf7\xde#\x1c\x0e;r}\xfa{\xf6\xec\xd9\xe3\
+j\xcb\x0c\xc3\xb0\x1d\x9b\xa6\xa6\xa6\x8crB\x08\xa2\xd1\
+\xa8\xad6]O\xbeKK\xcd\xb8\xd9[\xe5R\xe9\xf7\
+}\xfb\xf6q\xe4\xc8\x11\xfb^\xc2\xddM6\xf6\xabV\
+\xad\x22\x18\x0c\xf2\xfb\xdf\xff\xde\xb1\xad\xd3\xa7O\xd3\xd4\
+\xd4d\x1bk7\xc9K\xc0\x9c9sl\x82%\xde\x9b\
+\x08@\xdd\x08r\xfe\xfcy[\x05y\xbd^T5~\
+\xbaPyy9\x85\x85\x85\x99\x87\xd6\x98&s\xe7\xce\
+MA\xb4\xdb\x8f4/X\xb0\x80\xd6\xd6V\xc7\xd5\xfc\
+\xaa\xaa\xda\xc1\xed\x97\xbe\xf4%;o\xa5i\x1a\xaa\xaa\
+\xa6HD\xe2\xd9`F\xfd\x923\x86~\xbf\x9f\xef~\
+\xf7\xbbl\xdd\xba\x15UU9u\xea\x14\x91H\x84\x8a\
+\x8a\x0a\xbb\xc3\xb5\xb5\xb5L\x9f>\x9d\xad[\xb7\xb2d\
+\xc9\x12*++St\xf0\x13O<a\xeb\xd6\x04b\
+\xdd\x082i\xd2$TU\xa5\xad-\xf5T\xa0\x84A\
+w#H{{;\xcf=\xf7\x1c\xdf\xfa\xd6\xb7x\xfc\
+\xf1\xc79s\xe6\x0c\xe5\xe5\xe5\xcc\x9e=\x9b5k\xd6\
+dr\xa2\xa2\xd8\x1e\xd8O\x7f\xfaS\x0c\xc3\xe0\xf5\xd7\
+_g\xe7\xce\x9d)\xeak\xca\x94)\xf8|>N\x9f\
+>\xed\x1a\xf7\xbc\xf1\xc6\x1b|\xe3\x1b\xdf`\xcd\x9a5\
+\xcc\x981\x83H$\xc2\xc2\x85\x0bY\xbf~=\xbbv\
+\xed\xb2\xddt]\xd7m\x95\xe6F\x10\x15\xb8A\xd3\xb4\
+\xea\xbc\xbc\xbc\xdaDG\xa7M\x9b\xc6\xc0\xc0\x00==\
+\xf1\xdf\xb1\x0d\x87\xc3tvvRWWGii)\
+_\xf8\xc2\x17\x985k\x96\x9db\x07X\xb8p!u\
+uu\x04\x02\x01;o#\xa5\xe4\xf9\xe7\x9f\xa7\xb1\xb1\
+\xd1.WTTD__\x1f\xf5\xf5\xf5\xf4\xf6\xf6f\
+t(\x10\x08 \xa5\xa4\xbe\xbe>\x05\xf9\xa5\xa5\xa5t\
+tt\xf0\xee\xbb\xef\xda*\x22\x9dS\x0f\x1d:\xc4\xbe\
+}\xfb(++#\x10\x08\xd0\xd0\xd0\xc0c\x8f=F\
+___f\x00\xa6(466\xd2\xd7\xd7GUU\
+\x15g\xcf\x9ee\xfb\xf6\xed\x0c\x0c\x0c\xa4\x94M\xb8\xcb\
+;v\xec\xa0\xa5\xa5\xc5\xd5\xf9y\xe5\x95W\x08\x87\xc3\
+L\x980\x81h4\xca\xaf~\xf5+\xf6\xee\xddkK\
+\x89\xae\xeb)R\xaai\x1a\xa5\xa5\xa5\x04\x83A\xba\xbb\
+\xbb/\xb6\x05<\xe8\xf7\xfb\xbfP\x5c\x5c\xbc2A\xf1\
+/~\xf1\x8b\x04\x83\xc1\x14\x9f\xdb0\x0c\xee\xbe\xfbn\
+\xd6\xaf_\x9fu\xd2\xee7\xbf\xf9\x0d;v\xec\xb0;\
+%\xa5\xc40\x0cL\xd3LQ\x11\xc9il\xd34m\
+NJ\xae\xa7\xeb\xba\x1dy;\xa5\xc7\x93\xf7D&r\
+FB\x08\x9b\xdb\xdd\xd2\xed\xb1X\xcc\xb6}\x89TM\
+r\xfb\x96e\x11\x8b\xc5R\xfa\xe3\x96~\x8f\xc5b)\
+\xefM\xd8\x1b]\xd7m\x07&9\xdb]SS\xc3\xf1\
+\xe3\xc7S\xd21\x9elS\xd2\x1e\x8f\x87W_}\x95\
+\xfa\xfaz6n\xdc\xc8\xf4\xe9\xd3\x1d\x0d\xa1eY\xb4\
+\xb6\xb6\xf2\xe4\x93O\xd2\xd9\xd9\x99Q&\x91>p\xdd\
+\xb0\xa2(x\xbd\x99\x07\x95\xa5#\xd65\xd2M\xaa\x9f\
+\xcd\xc9x\x9a\xa6\xa5D\xfeN\x99\x06\x9f\xcf\x97\xd5\xae\
+\xe2d\x977y\xa2j('\xf4\x0di\xc6P\x08\xc1\
+\xd9\xb3g\xf9\xf2\x97\xbfLmm-\xb5\xb5\xb5L\x9a\
+4\x89\x8a\x8a\x0aB\xa1\x10\xed\xed\xed\x1c;v\x8cc\
+\xc7\x8e9\xba\x99\x83\xcd\xd49\xfd\xbd\xd4\x0c\xa3[\xbb\
+C\xbd\x7f\xb9\xe5.5\xbb\xe84Wt\xd9\x04qk\
+(\xc1\xe1\xcd\xcd\xcd\xb6\xe7\x94\xf33\xb6>\x01\x0b\x18\
+.\x85\x8f!M\xe1f\xbb.k\x8c\x00WN\xb8!\
+g{\xc7`x\xa5h\xc8q\xc8\x18\x8c,Q\xc6$\
+dLB\xc6`LB\xae!O\xccUB\xc6\x8d\x1b\
+\xc7\xacY\xb3\xc607L\x90\x989tTY\xe9\x01\
+\x8fS\xaeh\x0cr\x0b\x96e\x11\x8dF3\x16\x12z\
+\x00K\x88\x8b\xfbd\x0d\xc3`\xdb\xb6mc\x18\x1b\xa5\
+X\xc4\x03\xe8@,]\x9c\xc6`\x94T\x19\x10\x16B\
+\x0c\x8cyT\xa3\x0fR\xc6w\x16/\x05&j\x9aV\
+!\xa5\xf4p-\xee%\xbev\xc0\x14B\xc4\x80^E\
+Q:TU=\xa7iZP\xd3\xb4\x88\xc7\xe31\x00\
+\xf9\xff\x01\xfa\x90K\xa0\xc0O~5\x00\x00\x00\x00I\
+END\xaeB`\x82\
+\x00\x00\x03|\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00d\x00\x00\x00d\x08\x06\x00\x00\x00p\xe2\x95T\
+\x00\x00\x00\x01sRGB\x00\xae\xce\x1c\xe9\x00\x00\x00\
+\x06bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\
+\x00\x00\x09pHYs\x00\x00\x0e\xc4\x00\x00\x0e\xc4\x01\
+\x95+\x0e\x1b\x00\x00\x00\x07tIME\x07\xd9\x03\x03\
+\x0e\x1c\x0e\xa7\xa1o)\x00\x00\x02\xfcIDATx\
+\xda\xed\xd6\xbfo\x1cE\x18\xc6\xf1\xef\xcc\xed\xda\xb1\x0f\
+\x9b\x93\x85\x90-\xb08\x12\x09wn\xac\x14n\x10\xe0\
+\x8b\x90K7\x14\xc8\x7f\x03\xfc\x01T'QB\x81(\
+\xdd\xd0\x906m0\x8ep*DD\x94 \x17\xc8\x0e\
+\x06d\x90\xec\xe4\x02\xde\xf3\xde\x9e\xf7\xd7\xecP\x1c9\
+\x892R\xaeX\xf1|\xa4\xedv\xa4\x9d}\xe7y\xdf\
+\x01\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\
+\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\
+\x11y1L\x9d>vqq\xf1\x13cL\xf8\x9c\xcb\
+\xa6\x80\xcfNOO\xffVA^\xb0\xf5\xf5u\xdfn\
+\xb7\xf1\xdeSQQ\xbe\xf9\x94\x97\xaeLS>\x99\xc6\
+\x9d\xcd\x8c^\xb2`\xac\x1f\xef,\x8ec\xf6\xf6\xf6V\
+\xb2,;\xaa\xc3\x1e\x83\xbaE:MS\x0cp?\xff\
+\x85\xce\xf5\x19\x1a\xe1\x05\x99\xbb\xa4\x19^\x81$\xa0<\
+\x9f\x22\xfbu\x86\xe1\xe1,\x00eYb\x8c\xf1u\xd9\
+\x9f\xadS1\xaa\xaa\x22\xcfs\xf2\xbc\xc0Sa\x8d\xe1\
+\xaay\x9f\xcf;wx\xe7\xf5\x0f\x98\xe7\x1a\x8bW[\
+\xd8W2\x8a\xa2\xa0(\x0a\x9cs\xb5:p\xb5J\x88\
+s\x8e<\xcf\xc1\x8f&\xc3`\x90\xf2\xe1{\x1f\xf3\xd1\
+\xad\x1b|\xbd\xfd\x90w_;\xe3$}\xc0\x17\xf7?\
+%\xcfs\xbc\xf7\xcf\x12\xa2\x82L\x82\xf7\x9e,\xcb0\
+\x18\x98\x82\xe1\xc01\xd7l\x92W)\x00\x87\x7f\x1e\xf2\
+cr\x0b\xe3-Y\x96\x8dS\xa5\x82L\xb8e\x19\x00\
+\x0fs\xf3S\x0c\x86C\xa6\x1b\xa3yQ\xe1)]\x81\
+\xf7\x8c\x92\xf4\xec\xe6R\xa3\x82\xd8:&$\xcbr*\
+</\xcf7\xb9\xfd\xf3M\xba7n\xf2\xe0\xf4.\xf7\
+\xfe\xf8\x96\xb7\xdf\xd8\xa2(\xf3\x7f\xdf\xcb\xd4\xb2&\xa9\
+(\x0a\xe28\xc6\x1aK2Wq\x995\xf9\xc1}E\
+uo\x8eW\xafe\x1c\x97\xdf\xf0\xfbO{D\x8f\x13\
+\xce\xcf\x13\xbc\xf7\xcc\xce\xceb\xadUA&\x16ik\
+1\x18L\x05\x8diC\xc3\x86|\xf7\xdb\x97\x5c\xdc1\
+<y\x94\x90\xfe\xe5H\x1e;\x8c1\xb5JFm\x0b\
+\xe2\x9ccaa\x81\xf0l\xc8\xf7\xdd\x0b.\x9fV\x18\
+\x03\xc6\x8e\x1eo\x0cA\x10\x8cgN\x9d\xd2Q\xcb[\
+V\xb7\xdbecc\x83\xfd\xfd}\x0e\x0e\x0e\xe8\xf5z\
+\x94eIUUDQD\xab\xd5\x22I\x12z\xbd\x1e\
+\x8dF\x83~\xbf\x8f\xf7\xbe>\x1d\xa0n3\xa4\xddn\
+srr\xc2\xe6\xe6&Q\x14\xb1\xb4\xb4\xc4\xda\xda\x1a\
+\xdb\xdb\xdbx\xefi\xb5Z\xac\xac\xac\xd0\xe9t(\xcb\
+\x920\x0ck\x95\x90Z5\xd9\xd5\xd5U\xbf\xbc\xbc\xcc\
+\xd6\xd6\x16\xbb\xbb\xbb\xa3\x01o\xed\xf8\xc7GQD\x18\
+\x86x\xefI\xd3\x14\xe7\x1c\xce9\x8e\x8e\x8e\xde\x1a\x0c\
+\x06\x8f\xd4\xb2&\xa0\xdf\xef\xb3\xb3\xb33\x9e\x13\xff9\
+]\xc6P\x14\xc5hcA@\x10\x04\x14E\xa1k\xef\
+\xa4\x1c\x1f\x1f?\x04\xca\xe7Y\x13\x86\xe1L\xb3\xd9L\
+\xe38FDDDDDDDDDDDDD\
+DDDDDDDDDDDDDDDD\
+DDD\xfeO\xfe\x01\xd1\xc0Q%\xbd%\x7f`\x00\
+\x00\x00\x00IEND\xaeB`\x82\
"
qt_resource_name = b"\
@@ -6047,22 +6047,14 @@ qt_resource_name = b"\
\x07\x03}\xc3\
\x00i\
\x00m\x00a\x00g\x00e\x00s\
-\x00\x0b\
-\x08R\xaa\xc7\
-\x00f\
-\x00i\x00g\x00u\x00r\x00e\x008\x00.\x00p\x00n\x00g\
\x00\x0a\
\x0bSG\xc7\
\x00r\
\x00a\x00n\x00d\x00o\x00m\x00.\x00p\x00n\x00g\
\x00\x0b\
-\x0a\x12^\xc7\
-\x00k\
-\x00i\x00n\x00e\x00t\x00i\x00c\x00.\x00p\x00n\x00g\
-\x00\x0c\
-\x05\x8f\xe2\xc7\
-\x00c\
-\x00e\x00n\x00t\x00e\x00r\x00e\x00d\x00.\x00p\x00n\x00g\
+\x08R\xaa\xc7\
+\x00f\
+\x00i\x00g\x00u\x00r\x00e\x008\x00.\x00p\x00n\x00g\
\x00\x14\
\x00\x22\x00G\
\x00T\
@@ -6076,6 +6068,14 @@ qt_resource_name = b"\
\x00(X'\
\x00t\
\x00i\x00l\x00e\x00.\x00p\x00n\x00g\
+\x00\x0b\
+\x0a\x12^\xc7\
+\x00k\
+\x00i\x00n\x00e\x00t\x00i\x00c\x00.\x00p\x00n\x00g\
+\x00\x0c\
+\x05\x8f\xe2\xc7\
+\x00c\
+\x00e\x00n\x00t\x00e\x00r\x00e\x00d\x00.\x00p\x00n\x00g\
"
qt_resource_struct = b"\
@@ -6083,20 +6083,20 @@ qt_resource_struct = b"\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x02\
\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x82\x00\x00\x00\x00\x00\x01\x00\x00\x8f_\
-\x00\x00\x01e\xaf\x16\xd2\x99\
-\x00\x00\x00\xcc\x00\x00\x00\x00\x00\x01\x00\x018M\
-\x00\x00\x01e\xaf\x16\xd2\x99\
-\x00\x00\x00d\x00\x00\x00\x00\x00\x01\x00\x00\x8b\xdf\
-\x00\x00\x01e\xaf\x16\xd2\x99\
-\x00\x00\x00\xb0\x00\x00\x00\x00\x00\x01\x00\x01\x0e:\
-\x00\x00\x01e\xaf\x16\xd2\x99\
-\x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x01e\xaf\x16\xd2\x99\
\x00\x00\x00H\x00\x00\x00\x00\x00\x01\x00\x00qc\
-\x00\x00\x01e\xaf\x16\xd2\x99\
-\x00\x00\x00.\x00\x00\x00\x00\x00\x01\x00\x006\xe6\
-\x00\x00\x01e\xaf\x16\xd2\x99\
+\x00\x00\x01z\xe7\xee'\x01\
+\x00\x00\x00\x92\x00\x00\x00\x00\x00\x01\x00\x01\x1aQ\
+\x00\x00\x01z\xe7\xee'\x01\
+\x00\x00\x00\xc4\x00\x00\x00\x00\x00\x01\x00\x01t\xa2\
+\x00\x00\x01z\xe7\xee'\x01\
+\x00\x00\x00v\x00\x00\x00\x00\x00\x01\x00\x00\xf0>\
+\x00\x00\x01z\xe7\xee'\x01\
+\x00\x00\x00,\x00\x00\x00\x00\x00\x01\x00\x00:}\
+\x00\x00\x01z\xe7\xee'\x01\
+\x00\x00\x00\xa8\x00\x00\x00\x00\x00\x01\x00\x01Z&\
+\x00\x00\x01z\xe7\xee'\x01\
+\x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
+\x00\x00\x01z\xe7\xee'\x01\
"
def qInitResources():
diff --git a/examples/widgets/animation/appchooser/appchooser.py b/examples/widgets/animation/appchooser/appchooser.py
index 0782211d2..610050210 100644
--- a/examples/widgets/animation/appchooser/appchooser.py
+++ b/examples/widgets/animation/appchooser/appchooser.py
@@ -1,44 +1,6 @@
-
-#############################################################################
-##
-## Copyright (C) 2010 Riverbank Computing Limited.
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2010 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
@@ -46,10 +8,10 @@ from PySide6.QtCore import (QPointF, QPropertyAnimation, QRect, QRectF, Qt,
Signal)
from PySide6.QtGui import QPixmap
from PySide6.QtWidgets import (QApplication, QGraphicsScene, QGraphicsView,
- QGraphicsWidget, QWidget)
+ QGraphicsWidget)
from PySide6.QtStateMachine import QState, QStateMachine
-import appchooser_rc
+import appchooser_rc # noqa: F401
class Pixmap(QGraphicsWidget):
diff --git a/examples/widgets/animation/appchooser/appchooser.pyproject b/examples/widgets/animation/appchooser/appchooser.pyproject
index 14bc351a1..f4c122bef 100644
--- a/examples/widgets/animation/appchooser/appchooser.pyproject
+++ b/examples/widgets/animation/appchooser/appchooser.pyproject
@@ -1,3 +1,3 @@
{
- "files": ["appchooser_rc.py", "appchooser.py", "appchooser.qrc"]
+ "files": ["appchooser.py", "appchooser.qrc"]
}
diff --git a/examples/widgets/animation/appchooser/appchooser_rc.py b/examples/widgets/animation/appchooser/appchooser_rc.py
index 6f2a5ff36..acc8c8594 100644
--- a/examples/widgets/animation/appchooser/appchooser_rc.py
+++ b/examples/widgets/animation/appchooser/appchooser_rc.py
@@ -1,529 +1,11 @@
# Resource object code (Python 3)
# Created by: object code
-# Created by: The Resource Compiler for Qt version 5.14.0
+# Created by: The Resource Compiler for Qt version 6.2.2
# WARNING! All changes made in this file will be lost!
from PySide6 import QtCore
qt_resource_data = b"\
-\x00\x00\x13\x09\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00@\x00\x00\x00@\x08\x06\x00\x00\x00\xaaiq\xde\
-\x00\x00\x00\x06bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\
-\xa7\x93\x00\x00\x00\x09pHYs\x00\x00\x1b\xaf\x00\x00\
-\x1b\xaf\x01^\x1a\x91\x1c\x00\x00\x00\x07tIME\x07\
-\xd7\x09\x17\x17\x15\x19I\x86pA\x00\x00\x12\x96ID\
-ATx\xda\xed[\x09t\x5c\xd5y\xfe\xee{\xb3k\
-\xb4Z\xb2%\xd9\x96dcl\x8316\xb6\x81\x00\xe1\
-\xb04\x14\xc2\xda\x94\x86\x04\xd2\x90Br ] \x14\
-h\x08KH\x09\x87\xda\xadsRR\x02$\xad{ \
-\xe4\xb0\x95\xcd@\xb0\x1bV/\x80\xb1-\xdb\xd8\xb2l\
-l\xd9\xb2,\xc9\x1aK\x1ai\xf6\xe5m\xf7\xf6\x7f3\
-\xef\xf0\xf4:\x9a\x19\x1b&=\xc9i~\x9dO\xf7\xbd\
-\xfb\xee\x9by\xdfw\xff\xe5\xbe+\x1b\x7f\xb4?\xda\xff\
-oc8\x0e\x1b\xbb\x05uR\xed\xf4\x8b]3\x97\x5c\
-\x06\xb7\xef<\xa1\xa4<\xd0\xb3\xc3B\xcd\x0cq5\x15\
-\x12J\x22\xc4S\xe3!\x91\x8d\x85\x84\xc0\x10\x80\x10\xe1\
-\xe8\xd4\x9fC\xf9\x83\x16@\xfc\xd8\x7f\x95h]v7\
-\xe7X\xc6\xd3Q\x99\x08Bp\x01\xe1\x0e\x12\xaa\xc0e\
-?\x84\xec\x81`n\x82\x0b\x90\x5c\x10\x82\x03\xdc\x00\xd7\
-\xd2\x02\xba2.\x0cmH\xe8jHhJH\xe8\xd9\
-\x10W\xd3$T|Hh\xd9\x900\x85\x12\x08M\x7f\
-\x0c\x99\xdf;\x01\xc4\x03\x9e?\xc7\xf9\xf7\xbf\x88\xe6E\
-\xcc$\x04\xae\x03&9C\x052\x11\x80\xc4\x80\x9a\xcc\
-C\xcf@h\x19\xf0l\x82\x90\x02W\x92\xe0\xa6P\xb2\
-\x0f\x5cH\x04S\x13N\xd0\xc1u-'\x14@\xd7\x0d\
-\x03$\x0aA\x8d\x0a\xae\x87\x08C\xc2\xa06\x07\x95\x04\
-3\xa1\x0c\x09n\x84\x00\x84:\x1eG\xf2\xffN\x80\xa7\
-.\xee\xc4\x99\xb7,\x85\xb0\xc8s#\x07\xc7\xb9(\xd6\
-\xa7\xe7\xa1\x98\xe2d\xed>\xd3\x84\x00W3\xa4\xa3B\
-\xc8\x82s\x0e\x03np\x12\xd6P29\x01\x0d\x12R\
-\xcf\xc4\x01\xba&\xcc\x1fn\x80<\x89\xa0'h`N\
-\x90\x1c\x04\x0f\x01<\xc4d\x98\xd8\xd9q)\xba\xd9\xc5\
-\x10\x95\x11\xe0\x85kSXxm ?\xf3F\x09\x01\
-\x9cb8\xc6\x8b\xdc5\x1b\xa2\xc8X\xf2\x1e@\x00\x14\
-N\x90\xdc\x80\xcbG\xf0\xe7<F\xd7u\x18\x9a\x96\xf3\
- \x9d3\x12'\x09=5\x06u\xa4\x07z\xa2\x0f\xae\
-\x00\x03\xf3\xe4o7\x14\xf1:5\xdf\xe8X\x81\x04\xca\
-\x98\x0be\x8d\xb9r\x0f\x97\x8bi\x82c\xc6\xb9\x89\x82\
-c\xc7xaX-\xb7\xfa\x8b\x8c5!\xc9\xf9>\xcd\
-\xf4\x96\xd4\xa7\xe2H4\xc6c\x0b\x95\x0f?\xd9\x0b\xd4\
-\xd7\x00\xb3.\x85\xde4\x97\x9c\xec\x03\xe8C\xab\xc1\xb3\
-\x06\xd48\xae\xc8\x8c\x88U\xa2\x1b_c\x0bP\xd2$\
-\x945\x0e\x88\x89\x04x\x01\x81\xa2\xd7E1\x91\x8a|\
-\xd6\xb1~\xb6iZ\x1aH\x1c\x01\x0e\xbf\x0f\xd7\xbe5\
-\xa8Z\xba\x02\x9e\xe9\xcb\x00\x96\x1f\x0a\xce\xbe\xda\xf38\
-N\x00>\xaf\x00BLp\xdd\x223iyD\xd9\x87\
-\xe7\xe5\xbd\x80P\xfe\xb3\xedky\x11\x0e\xbc\x09\xac\xbd\
-\x13zf\x16RC\x02\xe9a\x015)\x98\xa1bI\
-%\x04(|8\xce\x8b\xccl1a\x8e\x918/\x15\
-Z\x93\x08\x13'\xf2\xe91\xe4\xec\x93\xd50\x12^\xa4\
-\x8f\x9a\xe4\xf3\xb7B\xc0_\x81\x1c \x0a\xc9\xd8\x84J\
-\x92q\x1e\x97\x0a%^F\x9cB\xf1l\xf2\xf6D1\
-\xdd,\xaf\xd6#\xc3\xb2\xcf-@\xa1\xdb\x15xA\xb1\
-\xd8u\x1e\x17\x0f\x95\xc2DY\xc6\xc3\xe2\x83D>\x8c\
-\x02\xe3\x1a\x84\xc5\xbcr\x02@\x14\xcd\xe86\x81\xe3M\
-\x88E\xae\x17\x92-\x1c\x1f\x1bp\x90w\x98\xa1C\xa0\
-\xd2\x02\x08A0\x8e=\xa3\x17\x86J\xf9$\xc8\x8f1\
-)\xc6K\x90'\x13\xa6\x07L\x9c\xb7\x0a\x09\xe0$[\
-\xbe\xd4\x95_\x03\x94\xff\xacB\x0f\x8b\xf5\x03\xa9Q\x94\
-4C\xb7\x89W8\x04,\x18\x05\x0fW\x9eL\x91k\
-(\xa8&\xc5E\x8d\x1d.O\x1e\xc8/\x93\xe1\x14\xa0\
-\x12e\xd0A\xb6\x10E26l\xa2\xb9~\x10\x98u\
-\x0en\x9d\x13`\xf7M\x9a\x10\xcb\xcf\xbc3\x09\x026\
-D%\x04@\xc9D5\xb9\x10\xb0\x88\xb1c$n\xc2\
->\xb6\xbf'j\xce\xfc\x08\x8e\xd5\x04\xd7-\xe2\x16*\
-\xe4\x01eVz\x0e\x22\xc5\x88\x95\x12\xc3\xeas\x0a\x87\
-X_\x01\xf9\xb2f8\xca`%\x05(\x1f\xdbN!\
-\x9cd\x0a=\xc2&n\x0bdX\xe0@\x9c\xc8g\x88\
-\xbcT\xe4}\xb5t\x15p\xa0\xd2+\xc1\x828\xb7`\
-\x93\x13\xff\xdb\x0b,b\xc2\xe1\xe66Y\x82\xe38~\
-\x88\xc8\x0f\x03\xb25TX\xe0(g\xf6:\xc0\xf6\x82\
-\x0a\xaf\x04=U@\xfd\x09\xf9\xa7\xd1\xd3@&\x0c$\
-\x8f\x02Z\xd2\x99\xe8\xecX.\x14\x889\x12\xa3S\xa8\
-xo\x9e\xbcd==\xb3E\xb0\xfd\xbat\x15\xb0\xcb\
-`\xe5\xd6\x01\xb6\x08\xfe)\xc0\xdcK\xe14\x91\x17a\
-l/\x10\xfa(\xe7\xbe\x85\xeeO\x10\x13\xfa\x84\xc3\xe5\
-\xf3m\xe2\x90\x93\xbcM\xd6\xd9\xf2\x12\xcc\xac$X\xe9\
-u\x80#\xbb\x17\x1a\x03\x82-y\xb4_\x98\x17\xe0\xe0\
-k\xc0H\xa73\x1c\x18\x016y\xb3\xb5\xc9\x9b3\x7f\
-\xd4r\xfb2\x02\xc0\x1eSr\x1d \x08\x15M\x82\xb0\
-P\xcej:\x80\xd3n\x05\xce\xb8\x17\xa8\x9e>!\xce\
-\xed|`\x9f[\xe4\xb3\x16y\x09\xd4Z\x90\xca\x80\xa1\
-\xf8\xcb\x90\xa8d\x15\xc0$\x19\xdfP\xca\xaf2\xea\xe7\
-\x01\xe7,\x07:.s\x84\x84\x0d\x93\xfcA\x22\x1f\xb2\
-I\x95\x03+-\x820\xf4\xcaW\x01\x22j'\xaaH\
-\x0f\xb0\xeen@\xe8\xf9so5\x10l&\xb2'\x02\
-\xd3\x96\xd1y}\xc1v\x22N\xba\x01\xa8\x9b\x03\xec\x5c\
-\x09\x18\x9a\x95\x00\x09\x89\x03\x80b\x91\x17\x93\x00\x8eD\
-h\x1b\xb7\xa7\xad \x1c\xb8\xe6\x8c\x16Q\xe92\x88\x89\
-\xe5O\x07\xb2a\xc200\xba\x1d\xe8y\x16h\x5c\x04\
-\xcc\xfe3\xa0\xba\x1d\x0ek9\x17\xf0\x90X\x9d\x14\x16\
-\x9a\x0a${\xec\x99\x17%\x92\x9cp\x10v\x92f\x13\
- \x9c\x1e\x90\xfbU\xb1\x10`\x02\xce\x9a?Y\x19\xb3\
-\xb6\xbaG\xb6\x00\x9b\x7f\x00|\xb2\x8a\xba\xb2p\xd8\x94\
-\xc5\xc0\x92\xfb\x81t\x9fI\xbex\xcc\xdb\xfd\xc7\x17\x1a\
-\xa6\xd9e\x90P\xa9$\x08QX\xd7m\xf2\x85\xab>\
-S\x88\x815$\xc4\x1d@j\x10\x0ek:\x138\xf5\
-\xfb\x05d\xcb\x82M\x1a\xff\xce~\xf6;]\x09Z\x04\
-\xfd\x8d@\xfb\x05\x80\xbb*\x17oH\x0f\x01\xf1\x83\xc0\
-x\x17`\xa8\x13D\xa06u\x18\xd8J\x22,y\x10\
-\xa8\x99\x8bOm\xfe\xdf\x00\xa3\x1f\x00\x87\x9e\x01P&\
-\xfeQ\xc2\xf5%G\x9e\xc8\x83\xeb\xf6\xed\xa22\xeb\x00\
-\xe7\xcc\xfb\xea\x80\xd6\xb3`\xdbR\x02\xf2+\xc1\xa1w\
-\x80\xbe\xd5t\x1c\xb1\x17;Z\x14\xd8~\x17\x89\xf0\xcf\
-N\x11\xce|\x04\x18y\xd7\xac\xfd\xc5\xe3\x9f\x17\xf5O\
-'i\xc9>\x17\x10\x16\xf1\x8a\x87\x80\xed\xee\x93\x9a;\
-\x08\xb4_\x05\x9c\xf5S\xa0q\xa9\xf3\xe5f|+\xb0\
-\xfer@\x8b\xd9\xe3=\x0d\xa4\xddO\xca\xd7|f\xb7\
-6\x8a\x84\x06\x9b\xc4\xa1*#\x80s%X\xd2<\xf5\
-\xc0\xe2\xfb\x80\xb6+\xf2^\x90\xd8\x07(G\x80T\x0f\
-\xb0\xfdV8\xac\xfdZ\xa0\xe1\xb4\xcfP\xfbK\xc2\xb1\
-\x12\x14\xa2b\x02p\x0b\x02Pb@x\x170\xb2\x0d\
-H\x0eN\xf2-\x0c\x98\xfb]\xa0\xf1L ;h?\
-x\xffSt\xcf;\x13\x86Q\xe7)\xf7\x1dg\x22,\
-q\xcc\x9c\xc4\x05*\x97\x03\xec\xfa?\xbe\x17\xd8p\x1b\
-\x00\xdd\x0a\x09\xeb\x05\xa9\xe3J`\xc6\xc5\xce\xa5\xd9\xc2\
-\x1f\x11\xe1\xdf\x02\x91N\xfbAw\xdf\x05\x5c\xb8\xd5\x1e\
-\xd7Ja\x13l\x03\x92\xfd\xce\xd8g6\x0ac\xbd\x04\
-\x80\xcf\xb6'\xf8\xe0}7-\xdc\xf2\xf6O\xa5\xd2U\
-\x80\xc0U\xe7\x92\x18\x84L\x08\xd8\xfb\x18\xb0\xfd\x87\x80\
-\x91\x99\xf0\xc9n\xe0\x0b\xbf\x06\x5c.{\x16\xe3\xdb\x80\
-\xd1\x89^ \x03\xed\xdf,;\xf3N\x14\xef\x17\xec3\
-\xe6\x80\xb77\xf7\xae~k\xc3\xbe_\x90\x08\xach\x0e\
-(\xdc\xf3s.\x90\xc6:\x81\x0fo\xb4\xfa,\xab\x9e\
-\x0f\xb4]\xe7\x8c\xe3\xfe_\xc2a\xd3\xaf.A\xbaL\
-\xdc\xa3\xe0\xdc\x0e\x83\xe3\xc9\x01\xe3\x8a\x9e\xed\xdc58\
-\x7f\xc7\xee\xc1\x7f%\x11Jo\x89\x81;\x84\xb0wo\
-\xf7\x00\x87\x9f\x03\xf6\xac\x84\xc3\xe6\xdd\xe5$7\xba\x06\
-0\xd2\xf6\xf5\xda\xc5\x80\x7fj\x01\xe9\xe3$n\x0b \
->\x83\x07$3\x19C\x81\xfb\xce\xd7\xdf\xec\xba\xe6P\
-\xff\xd8C\xc5\xdf\x06\x09\x81\x16\xe0\x8c\x1f\x03\x17=O\
-\xed\x0a 83O>=\x80\x9c\xed\xa5\x9a\xaf\xc5'\
-x\xc1\xc9@\xcd|\x9b\x94 \xf2\xd1\x0f\x9dIs\xca\
-\xd9\x85\xa4Q6\xde\x0b\xc93'q!\xb9\xe5c\x12\
- \x95\xc9\x1a)\xdd\xc8\x8eE\x92\xb7<\xbbz\xeb=\
-k_x\xf0\x9e\xc2?\x8d\xf1|\xe6^r'Po\
-\x12r\x01u\xd4\x9e\xbe\xc2v{\x86\xfc\xe2\xe7\xc8\xab\
-p\xd8\xd4\x8b\x9d3\x1b\xdb\x0c\x87\xd5.:\x0e\xa2e\
-D\x80\x05\xfa\xb5\xcbw\xfa/\x96?p\xeb\xeb\x8f=\
-\xfc\xc3\xef\xfc\xec'\xf7N/Z\x052\x8a\xa2'\xd2\
-\x19\xff\xf6M\x9b^Z\xbat\xe9k\xcf\xbc\xbc\xf9\xa1\
-\x0f\xff{\xe5\xc8\xd9\x97\xfc\xc3*G\x12\xac\x99\x0dT\
-\xb5\xc0a\xee\x1a\xe0\xe4\xef\x01\xdb\xbfo\xf7\x8dn\x00\
-:\xbe9\xc1\x0bNq\xbawf\x1f\x1cVu\xc2\xf1\
-\x91G\x89\xbe\x09%p\xe3\xa6.\xcf\x86\xa1\xfd\x977\
-\xd4\xd7^>sf\x8b\xf8\xea\xd5W\xec\x9a6m\xda\
-{UU5\xeb3Y\xf5\x83\x7f{\xe4\xe7\xa39\x01\
-\x14M\xe3\x14\x06~\x90q\xce\xffvgw\xff\xb9/\
-\xbd\xb1\xedq\xca\x07\xc38\xfc\xa4-\x80\x96)\xb2\xf9\
-q\x0a\x1c\x96\x19\x80\xc3|\xcd\xce\x87V\x87\xe00o\
-KY\x82\xe5\xc9;c\x9f\x83aj\x9d\xf7\xad\xdaT\
-\xed\x02&\xb9Z\x87G\xa2ll<\xb9\xa8\xb7oh\
-\x91,\xcb\xb7\xa9\xaa\xca\xe7\xcc\x99s{N\x00]\xd7\
-Y:\x9b\x0d\x80l\xc7\x8e\x1d\x83\x0b\x16,\xf8\xbb5\
-o\xef|\xbaeZ\xeds'\x9d0S\x0er\xc3\xda\
-\xc1\xe9\x07\xd2G\x81@3\x1c\x96<\x0c\xe7\x02\x5c\x86\
-\xc3\x5c\xb5\xce5\xbf\x91\x82\xc3\xe4*\x1c\x97\xb1\xc9\xfb\
-F\xb2>\xbc\x1f\xa9\xc3\xc1L-\x0egk0\x1eK\
-_\xa4\xebI\xc4b1(\xe4\xe5\x84}\xc4\xb5\x95s\
-^o\xf9\xe2,\xf3\x17\xb8\x10\x8c\xf2@\x10\x96uw\
-w?c\x18\xc6\xd3\xff\xf9\xf4\xba\xc0k\x91\xb9rZ\
-x\x00n\xfd\xe3\xc8\xf5\xb7\xe5W\x83\xb0,;\x0a\xec\
-|\xc8I\xb0\xaa\x03\x0e\xd3\xe3p\xee\xef{P`\xf6\
-\xfd\xc7e\xe3Y7~\xb5\xb7\x19\xd7\xbf\xbd\x00\xcb\xfb\
-\xcf\xc5{\xb1\x99\xd8\xdc\xaf\xe0\xc0\xde.\xd4%\xbaQ\
-\xa7\xf4?ZSSs\xe1\xca\x95+g\x90\x00Kg\
-\xcf\x9e\xdd#I\x12\xacoz\xcb\x05\xb2\x80\xcf\xd3\x94\
-U\x95FL0\x12\xe0&U5N^\xfe\xd8\xda\xd3\
-<\xb7\x5c\x86\xcb\x9b\xfa\xe03_{\x93}$\xf5&\
-`\xee\xd7\xf3\x1a\xf6<\x01\xa8$\x82<\xe1\xe1[.\
-\x83\xc3R\xbd6yF\x90\xeb\xe10m\x1c\x10\xc7!\
-\x82\x99\xe0F\xaa\xf0\xec\xee\xa9\xd8\x12\x9e\x06M\xd7\x10\
-\x8f\x8fCD\xdf\xc3\xe5s\x0d\xccY\xe4\xc3\x89\xb3\xda\
-\xe0\xadm\xa6<}A_\xfb\x95\xf7\x0c\x03\x10\x0f?\
-\xfc0#[,D.k_Mx\xc3u\xcf\xdf_\
-\x83\xc7\xd6\xeelJ\xa6\xd5\x16\xcb-8\x01\x07\x0f\x1e\
-L\xb7\xb5\xb5}%\x1aIl]\xf1\xcb\xdf6\xc97\
-~\x11\x97d\x87\xe0\x96\x00\x16\xeb\x07\xdb\xfe/\x80y\
-,\xe3\xd3\xedl\xc6\xac\x87\xdf\xf9\x03\xe0\xc0\xa3f\xc9\
-\xcc#\xfc.\xc0'\xb8\xafo\x0e\x1c\xa6Z\x028E\
-\x98\xb4o\xf3`\x10\xab\xb65c\xd3a/\xa2\xd1\x08\
-b\x91\x8f\xf1\xa59\x0a~t\x9e\x84\xf3\x17\xce\x04\xab\
-\x9b\x87=\x83@d\xe8\x10\xa2\x07;\x11\xee\xddy\xf0\
-\x9dp\xf3\x01\x00|\xc5\x8a\x15\xcb\xc8\x1b<$\xc0\xeb\
-\x00r\xa5\xca\xd5\xd8X#e\x15\xad\xdf\xd05\x0e\xa0\
-\x86\x90&h\x041\xbb\xbf\xffp\xf4\x84\xa6\xeb\x87\x8e\
-\x8c\xacY\xf1\xe4&\x96\xb9\xfaj\x9co\xbc\x08\x8f\xac\
-A\x96\xcdJH\xa0V\xa6\x96Y\xe7\x8c\x13\xc2]`\
-\x11\x82\x9c\xaf\x9c)]\xc6\xa1\xb1\x00\x8e\xc4<\x18\x8a\
-z\x10z\xf5\xbf\x10\xd3\xd7!\xcd\xa6#e\xd4\x01$\
-l-\xef@\x8d\xcf\xc0\xd4j\x0ds\x9b2X6#\
-\x85)~\x1d\xa6\x0d'\xdc\xd8p\xb0\x1a/uM\xc1\
-\xc7\x83\x12\xc2\xe10\x22\xe3\xe3\xf8\x8b\xa5\xc0\x037\x07\
-p\xe2\xbc/\xe4\x12\xb1\x88\x1d\x811\xb4\x1d\x91}1\
-\xa4\x14\x91O7n\xb75E`---\x17\x9b\xf9\
-\x80\xecyX\xe6\xba\xfd\xdeU\x1c^\xff\x12\xa8Y\x93\
-\xfc\x14B\x15!F\xc8\x10\xf8\x99\xd3G\xd7m<\x5c\
-\xf7`o\xdf\x91\xfb\x1f~IB\xf4O\xaf\xc22u\
-5<.\x1d.W\x9e\xbc\xcb\x12\x81\x13\xdbP\xda\x8b\
-\xc1\xb8\x17\xfdQ\x1f\x8e$\x83\xd8?\xecBoHC\
-:\x93E6\x9b\x85\xaaf D\x1a>_\x06\x81\xc0\
-(\x82\xf2\x18<H#o\x12\x09\xe4BF\xf7\xc0\xef\
-\xaf\xc7\xecf/=Z5\x14\xe1C\x86\xee\x1f\x0a\x8d\
- <6\x86\xa0\x17x\xed\x8ez\x5c\xf2'\xe7\x03\xb5\
-'C()\x18\x07\xd7\xe6\x04\x10\x06\xc0Iy\xc1\x04\
-\x84\xe0t\xec\xca\x15_\xf3\xbb\xeb\xeb\xeb\xaf\xef\xeb\xeb\
-\xcb\x80nw\xbe\x0d*\xf4\xe9\x00\xb7PG\xf0\x13\xa2\
-\x9b\x81D\xbb\x0eva{\xf4\xb9\xf7\x0e\xd7\xce>\xd4\
-7\xf0\x97O\xbc\xc9\xb0\xff\xa4\xf35ytK\xca`\
-\xae\xa0\xaf\xaa\xc6\xe5\xae\x9e\x82\x81\xa8\x84\x811\x8eh\
-<\x8dT*\x83D2\x8d\x804\x88\x93Zu\x5c\xbb\
-T\xc2\xbc\x19@[\xb3\x84\xf6\xd6 \x9a\xbf\xf4\x22$\
-3Q\xbaH\xf3\x9d7\x83\x99\x9b&\xba\x02(I0\
-5\x85\xa7\xd6\xeb\xb8\xf1?R\x18\x19\xe1\x85\xc9\x9e\x01\
-\xabo\x0b\xe0\xbc+\xbe\x05\xe1i\x82H\x0eC\xdb\xf7\
-\x12\x90I\x12a\x19\x0c\xc8\x91\xe7\xd6\x96\x92\x90h\xa6\
-\x00\xf6\xca+\xaf\xdc\x10\x08\x04fG\xa3\xd1U ^\
-\xc5\x0a\x8a\x8b\x10$4\x10\xbc\x84ds\x10\x89\xf3\xe7\
-\x815\x04Q\xfb\x9b\xfd\x0dw)\xdc\xfd\xdd\xd6\xd6V\
-\xf4\xf7\xf7\xa1*\xe0\x0574\x84\x86#0\x0c\x8ei\
-\xb5\x14\x87\xf3%\x9c;\x8f\xe1\x82\xa5Mh\x9f=\x8b\
-*\x5c\x13\x98\xbf\x01\xcc[\x0b\xe6\x0e\x82A\x03\xb8\x92\
-\x033\xb2\x10j\x14,=\x08\xa4\x87s\xdb\xecL\xcb\
-\xe2\xd0Q\x81\xb3\x97\xd7b$\x1c\x01Yn\xc6;\x1a\
-%\xec\x09\x01\xa7\xb5\x09|\xf0\xb3\x0b \xd1\xeb7O\
-G\xa0\xedy\x06\x22\x9b\xb47\xaau\x81M\x078\x14\
-\x8d\x83\x09\xae'\x1b\x16/|\xba\xa7N'\xf2[>\
-\xfa\xe8#\xcf\xc0\xc0\xc0\xa9\x00z\x8b\xed\x07\xe8\x848\
-A\xb5D\xa8\x1dN\x22\xf0z\x17\xa2'5#|\xde\
-\xac\xc8\x9d\xef\xf65\xb3\xde\xde\xde\x9b\xcdX\x22o\xb4\
-f\x85\xe1\x9c9\xae\xc8\xbd_\x9f\xe5\x9f\xb5\xe8Bo\
-\xb0u!s\xfb\x82H\x0b\x05\xc4\x90\xa0\x101\x82\xaa\
-\xd0a\x14<\xd9\x9f\xdb,\x91\x94\x10$=\x01\x99\x09\
-\xc8B@\x12f\xcb\xd0=\x5c\x0d\x0e97\xdb7\x9e\
-\x03|\xeblPh\x00\x7f\xfdB-f4$\x10\x97\
-\xdb\xe0J+H\xedZ\x0d\x91\xce\xd0}f\xfc\x09\x08\
-\x9d#\x95\x11T\x1a\x01\xb3'e\xf8\x1eyd}\xba\
-\xbauz\xfd\xbf\xf7\xf4\xf4\xd4\x11\xf9\x1bL\xf2\xe56\
-D\xb8\x15\xff#\x04E\x00\x8d)\x15S;\xfb\x11\xdb\
-\xd6/\xc6[\x1b\x95\xefi\x9a6\x04\xe0\xdb\x846\x02\
-\xbcn\xb9w\xd9\x895\xf7\xb6_\xf9\xe8u5SZ\
-\xdaT%-\xa53\x09\xb7\xa6\xa6]Jr\x14\xa3\xfd\
-\xbd\x99p\xff\xc7n#\xbe\xbfZ6\xe2\xbe\x80WT\
-y=\xc2\x13\xf0\x08)\xe0a\xb9\xca\xe2\x22\xb8\x19\xc0\
-\x0d\xe0\xdd\x819H$\xba0\xb3\x1e[\x82n\xecy\
-m\x07j=.Q'\x04?\xefp\x18\xfa\xc7=\x11\
-\xc9\x88\xbf*\xf3x\x04\x01\xb7\xcc<L\x80q\x01E\
-\x15b\xdf0\xd4\xa3\x096z(\xea\xde\xf8\xe1\xa0\xdf\
-5\xeb\xc4\xa6\xd5T\xd1\x9a\xf7\xee\xdd{7\x80_\x1d\
-\xeb\x8e\x90\xb0\xbc`\xdcj\x1b\x09\x0d\x02\x08\x1c\x09\x8f\
-\x87\x01\xac\x90e\xf9\x9f|>\xdf\xf6T*\xb5\xd0\xe3\
-\xf5\xbe\xdcq\xfa\xd5\xef\xcf>\xe5\xec\xaf\x09.\x06\x0c\
-CS\xe2\x91p\xf7\xde\x1d\x1bwo\xfc\xcd\x93\xa3\xaa\
-\x9a\xf6AW}\x86\x11\x0c\x08\xdd[%\xb8VE\xa1\
-\x13dB\xaf\x97\x99\xde\xe0\x96\x8c\xdaj\x9fA-\x0f\
-\xc6\xa4\x99\xf3;\xfb\xa4*UQ\xe2\x0b\xe6\xe0\x0e\x83\
-#\xab\xab\xf0eT\xe1\xf3\xbb\xb8\xa7\xfb\x88\xb1d\xcd\
-;\x9d\xcf\xca.\xd6\x00x\x83\x0c\xc2\xc7`\xb8\x05\x87\
-\x94H\xc3\x08\xa7\xb8r$*\xbc\x9ag\xda\x17;\xe6\
-\xcc\x98\xd1\xd5\xd5\x95\x08\x85B\xf7\x00x\xf4\xb3l\x89\
-\x19\x84\x84%\xc2\x14\x0b3\x08\x11\xc30\xc6\x1a\x1a\x1a\
-\xb6d2\x99\x85\xfe@p\xd7Wn\xbcw\x9a\xcb\xed\
-5\xb3\xed\xfb]\xbb\xf7\xbc\xb1\xa3sk\x94C\x97\x1a\
-O\xfa2\xe3\x5ce\xa4\x89\xc4\xf5,3\xd4\xb4\xa4+\
-)IW\x932eoY\xa3\x96gS\xee1-\xed\
-\x19\x1cc\x0b\xdd\xcd\xcb\x1e\xdd\xd9\xf5:$\x86\x07;\
-\xa6b\x9b\x00\x1dj\x90\xb8L\xe9\xc4\xa5\xde>,\xd8\
-[O\xae\x1f\x9bu\xe1\xb2Y\xcf\xb74\xf8\xd3\xe3\xb1\
-\xd4\xb4\xd1h\xfa\x84pL\x9foH\xfe\x99\x9e@]\
-\xa3\xab\xc6\x1f\x8c\x86\xc3\xea\xce\xee\xf7^\xd6u}9\
-\x80]\x04\xed\xf3\xfc\xaf1f\x89UK\x98j\x95\xca\
-$\xd5\xd5\x9b\xa8&\xdf\xd6\xdc\xdc\xfc\x0dz\x87P\xd2\
-\xe9t\xe2\x8d7\xde\xd8=\xc9\x96\x86\x80\x05\xd3\x98\x10\
-\x9c\xc3\xe0B7\xe8H\xe5\x86\x9a\x11\xdb\xb6\xed\xa8\x86\
-\xb7z\xed\xde\xbd\x9f\xcc\xeb\xec\xec\xdc\x0e\xe0L\x82\xfe\
-\x8f\x00\xd6-\x06K\x8d\x83Ec\x90{\x13\xec,\xba\
-\xf3y\xb7\xdb\xdd\xec\xf5zUj\x99\xcb\xe5r\x93\x81\
-\xc8\x1a\xf1x|\xbf\xa2(k\x01\xfcZ\x08\xd1]@\
-\xbc\x9c\x07\x94\x08\x09\x8d\x10!(\x84&\xc2\x14UU\
-\xe3\xe6\xba\x9a\xda\xa6\x97\xc9\xc8+8\x00\x97S\x00\xe7\
-\x9f=\x18c\x1c\x8cA\xa2\x1fx\xdc\x02\xf0\xf1w7\
-|\xd4\xee\xf7W=\x91\x88\xc6\xe6m\xdb\xb6m\x14\xc0\
-5\xd6x\x99\x04\x90\xf01d\xab*\xd5\xe4wTp\
-\x0b\xe5\xa1\xb3\x08\xb5\xd6s\x85\x09\xfb\x09\xa6p}\xd6\
-bNTfW\xb80$\x92\xd6\x97fi\xc67\x92\
-\x00J\x22\x918\xe3\xc0\x81\x03\xafQy\xe4t.\x13\
-I\x13\x92U!r\xe4\xf3\x13/\x0c\xab\x95H,\xb1\
-n\xdd\xba6\xba~=-O\xbfs\xe8\xd0!\xff\xa6\
-M\x9b\xc6\xe9\xda_\x01\xc8\x12\xda&|\xa76\xc1\x0b\
-\x93\x84\xdd\x84NB\x8a\x90\xb1&E/G\xbat\x08\
-\x1c\xff}2!\xe0\xf1x\xbeM\x1e\xb0\x9c\xc2`\xe5\
-\xa9\xa7\x9e\xba\x9e\x92\xa3\x9b\x5c\x93Q\x82\xe4\xe4\x9a:\
-\x09\xa2r\xce\x0d\x1a#(_\xc8\xe3\xe3\xe33\xfc~\
-\xff)4\xe6\x22j\x97Q\x82b\x94\xa1\x0d\xea\xff\x10\
-\xc0*\xc2Q\x8bP\xc2*\xc9\xb1\x1cQ'AnA\
-\xe0s\x1a\xab\xc0\xfd&\xaec\x8c=L\xa4j\xab\xaa\
-\xaa\x86\x89X\x8a\xda\x0c\x09 <y\xf3\xd1\xf5\x06B\
-\x8d9\xfb\xe49\x88D\x22\xc6\xd0\xd0P/y\xc2\x06\
-ki:`\x11M\x12\xd2\x96\x08\x9aM\xf6wc\x0c\
-\x95\xb3*\xc2\x97\x09\xa7\x13\xda,\xc2u\x047\xe7\x5c\
-\xb2^A#\x84\x83\x84n\xc2\xfb\x84~k\xa6\x8dr\
-\x7f\xd6\xfb\x03\x10\xa0\xf0\xf3\x1c\xff\x0a\xc0\xf9\x17V\x81\
-\xdf\x13\xfb\x1f\x84\xaf\xe2\x02\x22\xe6\xe9\x93\x00\x00\x00\x00\
-IEND\xaeB`\x82\
-\x00\x00\x0d\x06\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00@\x00\x00\x00@\x08\x06\x00\x00\x00\xaaiq\xde\
-\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\
-\x00\x00\x00\x09pHYs\x00\x00\x06\xec\x00\x00\x06\xec\
-\x01\x1eu85\x00\x00\x00\x19tEXtSof\
-tware\x00www.inksca\
-pe.org\x9b\xee<\x1a\x00\x00\x0c\x83ID\
-ATx\xda\xed\x9b[hU\xd9\x19\xc7\xd7IN\xa2\
-&&\x1a\xe351^\xc6T\xad\x97J\x95)8\x14\
-\xc4\x22\xb6\xccs\x9f*\xf4a^|\x10\xc4\xc2\x0c\x08\
-}(\xf8TJ\x1f\x15\xa4O\xf6Q\x0aR\x90N\x07\
-A\x94\xfa\xe0\xfd\xd6\xaa\x03^\xc6\xfb5Qc.F\
-\xcd\xc5~\xbf\x0d\xbfa\xcf1\x92\x8c\x1c\x83\xc1,X\
-\xec\xbd\xd7Y{\xad\xef\xfb\x7f\xf7\xb5\x93\xc2\xeb\xd7\xaf\
-\xd3\xc7\xdc*\xa2\x8f\x030\x0e\xc08\x00\xe3\x00\x8c\x03\
-0\x0e\xc0G\xda\x8a\x1f\x1aA\xc7\x8e\x1d\xdbS]]\
-\xfd\xb3i\xd3\xa6}\xe1\x98\xad\xad\xad\xed\x8f\x95\x95\x95\
-\xf3W\xaf^\xfd\x8br\xed\xf7A$B\xdb\xb6m[\
-P,\x16\xff\x10\xb7\x9f\xcd\x9e=\xbbe\xf2\xe4\xc9\x93\
-\x18\x876\xaf\xb6\x81\x81\x81\xc1K\x97.\xdd\x1a\x1c\x1c\
-\xbc\xd4\xd1\xd1\xf1\xb7\xbd{\xf7\x1e\x1a\xd3\x00l\xd9\xb2\
-\xe5\xb3\xfa\xfa\xfa\xc3!\xf5\xaa!\x09,\x14\xd2\xdb\xc6\
-\x03\x84t\xfd\xfa\xf5C\x15\x15\x15\xbf\xd9\xb3g\xcf\xab\
-\xb1d\x022\xff\xcb\x9a\x9a\x9aC!\x84\xe2\xcb\x97/\
-\x87cx\xc8\xb1\x96\x96\x96\xf5\xd7\xae]\xfb&\x1e\x7f\
-5\x96\x9c\xa0\x0c\xfc\xb3\xbf\xbf?\x13B\x00\x91\xaa\xaa\
-\xaaR\x98\x02=\xbb\xb7;n\x9f8qb\xc6<\xa0\
-\xd1\x9b\x9a\x9a\xd6o\xd8\xb0a\xdd\x98\xd2\x80\xcd\x9b7\
-\xff9\x98i\xec\xeb\xebK\xcf\x9e=K\x0f\x1e<@\
-\xa5G\x0a\x5c\x0a'\x99\x1a\x1b\x1b\x93\xad\xae\xae\xee\xaf\
-q\xf9t\xac\x00\x00\xb3_\x04\xf3H\x10\xef\x9e\x16-\
-Z\x94\xc2\xf9\xa5\xe7\xcf\x9f#e\xe7\xa4\xce\xce\xce\xd4\
-\xd0\xd0\x901\xfc\xf4\xe9\xd34i\xd2\xa4t\xfa\xf4\xe9\
-\xf4\xe4\xc9\x93D\x0b\xff\x91hS\xa6L\xf9\xf9\xc6\x8d\
-\x1b\x8b\x07\x0e\x1c\xe8\xff\xe0\x01\xd8\xb4iSu\xb4\xe9\
-q\x0b\xc3x\xf6\xb4j\xd5\xaa4a\xc2\x84t\xe3\xc6\
-\x8d4k\xd6\xact\xea\xd4\xa9\xd4\xda\xda\x9a\xe6\xcf\x9f\
-\x8f\x9d\xc3`\xbaz\xf5jZ\xb8pa:{\xf6l\
-\xf6Nww\xb7\xe6\x00h\x95/^\xbc\xd8\x14K\xfe\
-\xfd\x83\x88\x02\xdb\xb7oo|\xf4\xe8\xd1\xba \xbc?\
-\x88\x9d\x17\xd2[1s\xe6\xcc\xdf\xde\xb9s\xa7+\x88\
-\x9e\x1cc\xd3\x83\xe0\x84\x16\x00B\xc4\xf7w\xd1\xa2L\
-3\x02\xcc\x0c\x84[\xb7n\xed\x0b\x8d\xd9O8\x8d~\
-4\xd6\xfc\xf7\x89\x13'\x1e\xbc\x17\x00~\x1dm\xc5\x8a\
-\x15\x95\xc1Tm0\xd3z\xe6\xcc\x99\xdf\xafY\xb3\xa6\
-9\x18}\x10\xd2h\xbap\xe1B\xed\xb2e\xcb\xd2\xdd\
-\xbbw\xd3\xd4\xa9SSWWWz\xfc\xf8qFl\
-\x84\xad\xc4\xbe\xd8>\x12\x0c\xa0\x90\xa8\x9e~\xc4\x0dM\
-a\x1d\x1c(f\xc3\xfd\xe5\xcb\x97\xf1\x07\x98\x13\xfb\xbc\
-\x0e\xad\xba\x1cN\xf4\x1f===\xff\xda\xbf\x7f\xff\x89\
-\x9838b\x00v\xec\xd8\xb1\xf4\xe6\xcd\x9b_\xc5m\
-\xcb\xe2\xc5\x8bo\xd6\xd6\xd6\xd6\x04\xa1\x8bz{{[\
-\xcf\x9f?\xdf\xc8&\xa8$\x92\x84Q\x18\xc0c\xf3\x8c\
-m\xbfz\xf5\xca\xae'wi\xa4\xce8D\xd2\x99\xcf\
-\x18L\x0c\x1b\x0e\x01-hQ\x0bx?c\xd8\xe7\x90\
-z\x8a\xe8\x82\xf9\x00>~\x22\xdb;\xe8\xeeloo\
-\xff&\xf6\xfd2\xe6\xdc\x1e\x12\x80\xdd\xbbw\xa3\x8b\xbf\
-{\xf8\xf0\xe1_\x8e\x1f?>;\xd4\x88\x97\x0d7\x10\
-\x08\xe1y\x06\x91\x1e\x1b\xdb\xdfxFBt\x1bk\xe0\
-\xd0d\x9e=`\x8c{\xae\xf9n\xf3=\xaf\xac\xeb\x95\
-\x0e\x00y\xe7\x19\x1a\x09\x08\x00\xc5\xfa8O\xfcH\xe6\
-gB\x1b\xae\x1f=z\xf4\x937\x00\xd8\xb5kWM\
-\xd8\xd0\xd7\xa1\xaa\xebb\x92L\xb2\x10\x1d\xc6\xd8\x14\xbb\
-\x858\x09\x18\x16\x006\x869\x1b\xce\x0b-\x810\xc6\
-\xed#\x01\x80.\x93y\x10X\xcb\x88\xe0\xef\x87\x0f\x1f\
-f\x1f\x98V\x08\xdc\xd3\xfb\xc3$\xebo\xdf\xbe\xdd[\
-\xf4\x85\x9d;w\xb6D8\xfa6T\xb9\x96\xd0\x93'\
-\x02d\x91\x18\xe3a\xf3i\xee\xdc\xb9)^\x06\x086\
-\x960\x89\xcb\xe6\x00`\xe4\xea? \xd6\xe6\xfa\x00%\
-\x08j\x80\xfb9\xce\x9a9@\x87\xd4\x00;\xcc\xf1\x1e\
-\xfe\x06\x8d z`V\x08\x12 B\xab\x11$\xeb\x17\
-\xc3\x17\xfd\x09_\x9d\x01\xb0o\xdf\xbe\xc6\x90\xca\xb5(\
-2\xaad:\xcf<I\xca\xca\x95+\x13\xed\xc8\x91#\
- \x9d\x81\x10~\x00\xe9\xe6\x01\xc8\x88\x8e\x82\x86\x8d\x01\
-\x8d5\xb2Mmj\x14\x8d\xb90\xc7\x1e\xd3\xa7O\xc7\
-y\xf1\x9b\x1a\x02\xe1C\x81$ \xa5 \xc88\xe0+\
-y\xd6\xc0\x0c\xe8\xd6\x0f\xfc\x86\xe3\xfd*\x9e\xf7d\x00\
-\xdc\xbbw\xef?\x11w\xabTS\x99\xd7\xfe\xc9\xb8\x02\
-1\x9cHF\xa4\xf3$\x16\xfb\x82\x10\xcd#\x22\x00\x8c\
-\xf2,\x00\xae\x9b\xadA\x13\x00\x12 \xd6F\xa3\xc8\x01\
-\xf2NP\xa65=\x9b)q\xe9o\xac\x8d\x83\xc4\xe1\
-B\x07\xeb\xd2\xb6n\xdd\x9a\xdd\x9f;w\x0egM\xa4\
-@\x0b+\x02\x88O\x8b!\xfd\xdaP\x8d\x9f\xe6\xbd\xac\
-\xc4\xa9\x8a\x84)PC\xa2\x80\x81\x84O\x9e<\xc94\
-\xc6\xd9T\x00@\x18\x86\x95\x8e%\xec\x0f4\x806o\
-\xde<\x9c*Z\x041\xec\x07\xb8\x864\x9e]\x03\x1a\
-t\xb6\xec\x87vq\xcd\xfb\x09\xe6\xb0\xaf\xeb\x93\x1f\x08\
-6\x91 \xfb}\xce\x9c9\x198W\xae\x5c1ZM\
-+\xc6K\xad\x11\x8f\x0b\xbc\xa8csA\x91\x9e1c\
-F\xb6\xb0\xa9\xea\xc1\x83\x07\x9d\x87\x8a\xb1\xd1\x1bj\xc9\
-\x06\xda\xbfD\x0a\xc4\xf2\xe5\xcbIe1'\x18\x05T\
-\xcc\x0a\xa2\x19\xd7\x9e\x95$\xb4 A4\x0d:\x98\x03\
-\xb3\xa8<W#\x13\x82P \x8c\xabE\xf87\xae\xbc\
-W\xea\x5c\x0b\xc5\xd8\xa0\x10\x8d|\x9b\x8d\xf3^\x7fH\
-\xc6h\x10\xc6o<\x03\x00\x0bC0D\xd25\x0dC\
-\x9f\xef1\x8e/!\xa5%\x09\x82i\xf6\x05`\xd6@\
-\xc3\xb8\xc2\xb4\x0e\xcf}\xd5J\xf61\x17\xc0\xff\xb0&\
-k\x01\x12{\xd2\xa0\x01>\xbc\xd7\x17\xd9\xf3\x0d\x0d\xe0\
-e\x88\xd0\x86\xe9\x82\x90\x0f\x7f\x02a\x1e\xfe\x86]j\
-\x7f\x02\xa0Y\xd8\xc8\xed/^\xbc\x08hH\x1d\x89\x03\
-\x00>\x08i\xb2/\x84\xeb\x00\xe92\x8b\xf4U[\xe6\
-@\x07k\xe0\xf0X\x83\x88\xc3<\x0b&S\xebaS\
-\xec\xa2*\xf4\xaeM/\x9dk\x10\x85\xa4J\xd3V\x9c\
-\x1c\x0c\x10&\x91\x0cs\xd0\x06\x00\x83\x01\x1c\x14k\xe1\
-\xb1\xd1\x1e\xf3\x07\x01a]hEs\xb8G\x0b\x99\x03\
-\xe3\x80\x00\xf3\xbc\x8bC%\x04\x1a\xc5\xb8\xda\x87\x01\xa0\
-L\x0d\xc2`\xc0\x06QH\x18U\x85P}G\x14F\
-\x5ca\x1c\x8d\xc11\xf2\x1e\x0c\xb3\x06\x0cA\x1b\x0c\xd2\
-\x01M\xed\x831\xd6\xa5\x94\xc6yZ\x1a\xb3G6~\
-\xff\xfe}\x9c\xec\xb0\xf5\x05> \x95\xbbi2F\x15\
-\x98\x8ac+31M\x0bF\xa8\xe02\x82\x97,Y\
-B\xb1\xc4\x19_iF\x88\xb4a\x1e\xa6Y\x03\x86\x01\
-\x8e\xe8\x01\xd3\x5cq\xd0\xac\xc9\x95u\x19\xc3TL\xb3\
-\x05\xe2\xfdk\x80\x9b\xda\xb0G\xc2(\x04@\xac!\x92\
-+\xb6\x8f9\x00\x00\xe6\x01\xe1\xe6\x0d\xe6!&/\xfa\
-\x03}\x92v\x0e8\x80\x82\xc6\xa8%\x8c\x13\xfaX\x1f\
-\xad\x1a\xd6\x07\x94\xb3\x11&!\x02P\xb5A\xd4\xbf\x94\
-yT\x17\x82\x91&~@M\xe4\x1d#\x8ay\x88\xe9\
-0s`\xd4\xb9\xccC[\xe4\x819\x00\x05 y\xc7\
-m\x1b\x15\x0d0\x03cc%D\x83Y\x01\x80\x09\xa4\
-M\xb9\x8a\xad2fJ\x8cd5\x15\xcf\x0ed\xce\x08\
-\x01\xc8\x98\x0b\x8e\xd5\x04\x88\xf7\xd4\x06C&\x9a\x85\x1f\
-a\x9d\xd1\xd2\x00\xe36\x1d\x86pJ\x84\xaf|\xa6\x08\
-\xf1\x84]=9\x0c\xe8\xd4\xb0a\xa3\x00\xa01nx\
-\x86y\xde\xb1\xe0\xa1\x13\x05\x04>\x9f\x00\xc1\xb4{Q\
-gp\xffV'XV\x0d\x90Q\x9a\xea\x8e\x9a\xe7U\
-\xd2:\x9d(\xc0\xb8g\x06\x8c1\x17\xa6\xb8\x1a\xfb\xcd\
-\xf4\x90<\xcf\xfa\x05\x8b\x1f\x9a\xd9\xa2i5`\xd0\x0c\
-\x9bh\x1c\xfb\x8e\xaa\x06h\xabJ\xd11\x98p\x1e\xfb\
-C8\x04\xeb\xe1q`\xf3f,IM\xd3>I\x03\
-\x13B\xdd\xbbo\xa3)0l\x8d`\xdeo\xea\xab\x84\
-\x87\xca\x1e\xc91\x00\xd5|\xe2\xfd\xfa\x80<!\x82\x9b\
-\xaf\xdaTU\x88\xb7\xb4\x05\x00AP\x0b\xe6\xcf\x5c\x9a\
-\xfak\x1f\xa7\xe6\xa6\x96T\xdd\x96\x85L\xed\x1dFt\
-\xb6\xac\xc7;\xaeo\x04\x92'\xfd\x0a\xa6\x88)\x00@\
-Y5`\xd8#+\x01\xb0\xa9\x01\xee+\xd1\x8c\xe55\
-\xa1P\xf72-X\xb44\x15\xeb\xfaR\xb1\xba9u\
-\x90*\xc7;f\x99\x9e1\xa2\x19\xac\xaf)[\xd0\xe5\
-\xa3\x10\xe1\xd0\xcc\xb3\xb4U\x94\xd3\x07\xc8\xa8\x04 \x95\
-R`\xf2g\x0e\xf9{\x9f=#|\xde\xdf\x1e\xcc>\
-J\xb5U\xf5\xa9>\xca\xd8\x89u\x93S\xfd\xec\xc8\x19\
-\x1a\xa68\xcf\xf7\x5c\xc3\xee\xfev5\x0d\xb0\xde\x04\xa0\
-\xdc> O@\xbe\xa2\xf3\xdeL\xd0\xef\x7f0\xeb\x5c\
-\xfb\xf71\xbf\xa77u\x84\xeaw\xb5\xb7\xa5\xee\xb6\xf6\
-\xd4\x1bj<!\xbe\x9c\x0f\xe64\x8c\xf5,\x99\x05T\
-\xe9k\x86f\x93\xac[\xda\x8a\x12Sn\x00\x8c\xdd:\
--\x9a\xa1\xd13\x02U\x9fy:5\xed\x1bo^\xc5\
-\x07\x8f\xfa\xba\xd4\xf7\xbc'=\x8d2\xb9\xb3\xa7;\xf5\
-\x15\x99\xfb}\xc5\x0a\x00\xbc\x83\xa7W\xd2\xa5%8{\
-P\x83p\x1d\x1d\x00$@\x00,\xb9uJ\x82\xc2\xbd\
-\x85\x92\xcck\xe3\xcc\xc9\xca\xe3\xcaBzE2U]\
-\x91\xba\xba;#\xb7N\xa9\xab\xb3\xcb\x13k\x22\x06`\
-\x19\xf7e\xdc\xc6\x98\xc5\xd2\x90\xad\xa8W.W\xf3$\
-WB\xcc\xe3!B\x7f\x03\xb1f~H\x0e\xdb\xa4\x9b\
-\xfe\xe6m\x96\x10V7\xb3!M\xa8\x9c\x98\xbaz\xbb\
-\xd2\xa3+\x0f\x01\x0c-aM\xee\xcd\x1a=\x87T\xab\
-\xbc\x1f\xddT\x18\x06\xf2\x84\xc0\x84\xa0\xd0Lz\x90\x9a\
-\x80Q\x10\x91\x12#\xfd|\xf1\x83`<\x95\xceg\x82\
-\xda3\x8cs\x82\xb4`\xc1\x02\xcf'\x05\xd8\xc4\x89D\
-it\x8b!\x9d\x9a\xcd\xb3:\x80\x80`m\x14\xd5g\
-\x0cf\x01\x8a\xda=>[e\xc0\x18\xeb\xad\x05\xb4e\
-A\xf0\x9c2>\xdbq@+\xd0\xcc\xc9;B\xb5\x84\
-=GO\x03LG\x05\x82g\x08\xf1h\x8b1\x99\xf6\
-\xd0\xd3\x12\x1a\x10Pyk\x04\xabA\xdf\xf1\xec\x12\x9a\
-\xa9 9\x12\xf3\x5c\xd03J\x80\xf5\xd3\x1d\xe6\x05\xf3\
-\xa3u b\xfd\xaf\xf3\xd3\x0c`\xcajM\x02!\x1a\
-@\xf2\x1fG\x19\x83!\x8b\x17\xa4\xed<\xc3'_w\
-\x00\x94J\x12\x06\xd9\x03\xe65\x09\xfd\x0fB\xe0X\x8c\
-\xdfF\xd7\x07X\xcf\xeb\x84Tw+@\x982\x13\xb4\
-t6\x1c\xf2\x9bE\x8b\x15\x9d\x1fRaD\x8f\x1e_\
-\xaa\xd1\x0eO\x95\x00\x8f\xf73\xa0<)jnn6\
-\xed\x1dU\x1f \xc3\x1eE\xeb\x18\x01\x85|\xdc\x83N\
-\xf3z\x011\xf4\xe1 aT\xd3\x00\x00\xde\xa1\xf6g\
-\x1d\xd7\xd4!ZL\xb1'ct\xd6\xc0\xf9\x01\xfa\x88\
-\x00\xe0\x0bq\xb9\x01\xc0\xa1i\xbfflH\x0b\xf5\xd5\
-W\xc0\xb8\xde\xdeR\xd7DJ\xa6Js\x0bU\xde\x22\
-'\x9f\x0cyb\x84\xf41\xbb\x11)l1P\xaea\
-\xd1rT\x7f6\x88\xb3\x04.\x05\x06\x10 T\xe7\x05\
-\x13\xac\x81\xdd#q\xa5jm`FI\xb7\xb6'\xf9\
-\xf1T)\xffu\x8aw\xf9\xd6\xc0\xbc\xb5k\xd7r\xec\
-\xa6\x06\xe9$\xf9.!\xdd\x00\xde\x87\x064\xf0\xf0\x0e\
-\xcd\x8c\xeemZ\x80-*9\xbb\xc7\xde\x10\xe7\x87\x0d\
-\x08\xf1K\x8e\xa7\xba\x1e\x8cp\xc6\x0fS\x00\xc5\xf19\
-k\xc8\x98\xef m\x00c=+N*@\xd6\xf6=\
-@\xf5\xbc\x01\xba\xa0\x01 o\x15\xf9\xdb[\xff\x14\xed\
-\xc7\xb6|\xf5\xa5\xbd\xea\xfd\xd9\xc0\xdfJ\x9bN\x12\x8f\
-\x0eQH\x15\xa2\xf3i34\xd1y\x9fd\xc7F\xe6\
-gh3)\xe2}K]\x01\xf8\xee\xbb\xef\x86\x22Y\
-\x00\xd1\xd0\xb3\x11I\xfe[\x8c\x81\x9bdZl\xca\x22\
-\xf9\xd8\x9b\xaf\xeb\xed,nM\x0fa~\xa8\x90(\x8f\
-\xb8\xecn\xea\xb5\xa4y\x86\xef\x91\xd8pi\xb9f\x82\
-\xcf\xf0\x0b\xb6\xe7\x83#1W\xfd\xc7\x85\xf8\xfb\x86/\
-c\xa8\xad\x18R\xea\x08oy(\x08_\xef_X\x04\
-\x832\xe2U\xe2e\x12/?\x10D|\x1b\x8f\xcf\xf2\
-i\xae\xcd\xf8>\x82&8\x95\x01\xe8\xd4Xcz\xd0\
-P\x13\x9d\xbfW\x80>\xf6\x1b\x88\xf1\xbe\xb8\xbc\x88\xa9\
-\x8f\xc3A>\x09\xa0~l\x02\x83\xd0:\xc2\x9c.E\
-8\xfe:\xd6\xbb\xc0)~!\xfe\xf6~R,\xbc:\
-T\xf6\xf3@wY\xfc\xf0\x13\xfe\xcc\x8d\xf9y\xc9K\
-g4\xa0\xbe\x1d\xb6t$\x88\xf8_\xbc\xdb\x99\xdeO\
-s\xc3B\xb4\xd7e\xc8O\x90\x0e\xb4\x12\x1b\xefE\x7f\
-\x12\x7fq\xfa:\x0b\x81\xf1\xf7}\xd3\x02\xed\x96`f\
-n<\x83~}\x00A\xfd\xca\xefH\xb2\x10\x9d{\xfa\
-`\xdc\xb3P{\xcc\xb9\x16\xd7\xa7il4@\xec#\
-h\x04\xe3}\x0e\x9a\x03\x00B\x15\x99l\xf4\x9a\xe8\x18\
-\xa2\xfa\xeb\xb5@g!T\x07\x7fD\x07\xc54\x86\xdb\
-\xf8\xbf\xce\xa64\xfe_c\xe3\x00\x8c\x03\xf0\x11\xb7\xff\
-\x03\x7f\x19\x0a\xe4\xd7bc\xda\x00\x00\x00\x00IEN\
-D\xaeB`\x82\
\x00\x00\x15\x14\
\x89\
PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
@@ -864,6 +346,313 @@ h\xac\xe8y\x0b\x8b8f?\x89\xcd\xd5\x82\xeb\x964\
\xe8,&\xde\x84\xa1k\x84_.b\xfd\xb7\xff\x05\xc7\
\xfd\xe7\xdb#]\x138\x00\x00\x00\x00IEND\xae\
B`\x82\
+\x00\x00\x13\x09\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00@\x00\x00\x00@\x08\x06\x00\x00\x00\xaaiq\xde\
+\x00\x00\x00\x06bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\
+\xa7\x93\x00\x00\x00\x09pHYs\x00\x00\x1b\xaf\x00\x00\
+\x1b\xaf\x01^\x1a\x91\x1c\x00\x00\x00\x07tIME\x07\
+\xd7\x09\x17\x17\x15\x19I\x86pA\x00\x00\x12\x96ID\
+ATx\xda\xed[\x09t\x5c\xd5y\xfe\xee{\xb3k\
+\xb4Z\xb2%\xd9\x96dcl\x8316\xb6\x81\x00\xe1\
+\xb04\x14\xc2\xda\x94\x86\x04\xd2\x90Br ] \x14\
+h\x08KH\x09\x87\xda\xadsRR\x02$\xad{ \
+\xe4\xb0\x95\xcd@\xb0\x1bV/\x80\xb1-\xdb\xd8\xb2l\
+l\xd9\xb2,\xc9\x1aK\x1ai\xf6\xe5m\xf7\xf6\x7f3\
+\xef\xf0\xf4:\x9a\x19\x1b&=\xc9i~\x9dO\xf7\xbd\
+\xfb\xee\x9by\xdfw\xff\xe5\xbe+\x1b\x7f\xb4?\xda\xff\
+oc8\x0e\x1b\xbb\x05uR\xed\xf4\x8b]3\x97\x5c\
+\x06\xb7\xef<\xa1\xa4<\xd0\xb3\xc3B\xcd\x0cq5\x15\
+\x12J\x22\xc4S\xe3!\x91\x8d\x85\x84\xc0\x10\x80\x10\xe1\
+\xe8\xd4\x9fC\xf9\x83\x16@\xfc\xd8\x7f\x95h]v7\
+\xe7X\xc6\xd3Q\x99\x08Bp\x01\xe1\x0e\x12\xaa\xc0e\
+?\x84\xec\x81`n\x82\x0b\x90\x5c\x10\x82\x03\xdc\x00\xd7\
+\xd2\x02\xba2.\x0cmH\xe8jHhJH\xe8\xd9\
+\x10W\xd3$T|Hh\xd9\x900\x85\x12\x08M\x7f\
+\x0c\x99\xdf;\x01\xc4\x03\x9e?\xc7\xf9\xf7\xbf\x88\xe6E\
+\xcc$\x04\xae\x03&9C\x052\x11\x80\xc4\x80\x9a\xcc\
+C\xcf@h\x19\xf0l\x82\x90\x02W\x92\xe0\xa6P\xb2\
+\x0f\x5cH\x04S\x13N\xd0\xc1u-'\x14@\xd7\x0d\
+\x03$\x0aA\x8d\x0a\xae\x87\x08C\xc2\xa06\x07\x95\x04\
+3\xa1\x0c\x09n\x84\x00\x84:\x1eG\xf2\xffN\x80\xa7\
+.\xee\xc4\x99\xb7,\x85\xb0\xc8s#\x07\xc7\xb9(\xd6\
+\xa7\xe7\xa1\x98\xe2d\xed>\xd3\x84\x00W3\xa4\xa3B\
+\xc8\x82s\x0e\x03np\x12\xd6P29\x01\x0d\x12R\
+\xcf\xc4\x01\xba&\xcc\x1fn\x80<\x89\xa0'h`N\
+\x90\x1c\x04\x0f\x01<\xc4d\x98\xd8\xd9q)\xba\xd9\xc5\
+\x10\x95\x11\xe0\x85kSXxm ?\xf3F\x09\x01\
+\x9cb8\xc6\x8b\xdc5\x1b\xa2\xc8X\xf2\x1e@\x00\x14\
+N\x90\xdc\x80\xcbG\xf0\xe7<F\xd7u\x18\x9a\x96\xf3\
+ \x9d3\x12'\x09=5\x06u\xa4\x07z\xa2\x0f\xae\
+\x00\x03\xf3\xe4o7\x14\xf1:5\xdf\xe8X\x81\x04\xca\
+\x98\x0be\x8d\xb9r\x0f\x97\x8bi\x82c\xc6\xb9\x89\x82\
+c\xc7xaX-\xb7\xfa\x8b\x8c5!\xc9\xf9>\xcd\
+\xf4\x96\xd4\xa7\xe2H4\xc6c\x0b\x95\x0f?\xd9\x0b\xd4\
+\xd7\x00\xb3.\x85\xde4\x97\x9c\xec\x03\xe8C\xab\xc1\xb3\
+\x06\xd48\xae\xc8\x8c\x88U\xa2\x1b_c\x0bP\xd2$\
+\x945\x0e\x88\x89\x04x\x01\x81\xa2\xd7E1\x91\x8a|\
+\xd6\xb1~\xb6iZ\x1aH\x1c\x01\x0e\xbf\x0f\xd7\xbe5\
+\xa8Z\xba\x02\x9e\xe9\xcb\x00\x96\x1f\x0a\xce\xbe\xda\xf38\
+N\x00>\xaf\x00BLp\xdd\x223iyD\xd9\x87\
+\xe7\xe5\xbd\x80P\xfe\xb3\xedky\x11\x0e\xbc\x09\xac\xbd\
+\x13zf\x16RC\x02\xe9a\x015)\x98\xa1bI\
+%\x04(|8\xce\x8b\xccl1a\x8e\x918/\x15\
+Z\x93\x08\x13'\xf2\xe91\xe4\xec\x93\xd50\x12^\xa4\
+\x8f\x9a\xe4\xf3\xb7B\xc0_\x81\x1c \x0a\xc9\xd8\x84J\
+\x92q\x1e\x97\x0a%^F\x9cB\xf1l\xf2\xf6D1\
+\xdd,\xaf\xd6#\xc3\xb2\xcf-@\xa1\xdb\x15xA\xb1\
+\xd8u\x1e\x17\x0f\x95\xc2DY\xc6\xc3\xe2\x83D>\x8c\
+\x02\xe3\x1a\x84\xc5\xbcr\x02@\x14\xcd\xe86\x81\xe3M\
+\x88E\xae\x17\x92-\x1c\x1f\x1bp\x90w\x98\xa1C\xa0\
+\xd2\x02\x08A0\x8e=\xa3\x17\x86J\xf9$\xc8\x8f1\
+)\xc6K\x90'\x13\xa6\x07L\x9c\xb7\x0a\x09\xe0$[\
+\xbe\xd4\x95_\x03\x94\xff\xacB\x0f\x8b\xf5\x03\xa9Q\x94\
+4C\xb7\x89W8\x04,\x18\x05\x0fW\x9eL\x91k\
+(\xa8&\xc5E\x8d\x1d.O\x1e\xc8/\x93\xe1\x14\xa0\
+\x12e\xd0A\xb6\x10E26l\xa2\xb9~\x10\x98u\
+\x0en\x9d\x13`\xf7M\x9a\x10\xcb\xcf\xbc3\x09\x026\
+D%\x04@\xc9D5\xb9\x10\xb0\x88\xb1c$n\xc2\
+>\xb6\xbf'j\xce\xfc\x08\x8e\xd5\x04\xd7-\xe2\x16*\
+\xe4\x01eVz\x0e\x22\xc5\x88\x95\x12\xc3\xeas\x0a\x87\
+X_\x01\xf9\xb2f8\xca`%\x05(\x1f\xdbN!\
+\x9cd\x0a=\xc2&n\x0bdX\xe0@\x9c\xc8g\x88\
+\xbcT\xe4}\xb5t\x15p\xa0\xd2+\xc1\x828\xb7`\
+\x93\x13\xff\xdb\x0b,b\xc2\xe1\xe66Y\x82\xe38~\
+\x88\xc8\x0f\x03\xb25TX\xe0(g\xf6:\xc0\xf6\x82\
+\x0a\xaf\x04=U@\xfd\x09\xf9\xa7\xd1\xd3@&\x0c$\
+\x8f\x02Z\xd2\x99\xe8\xecX.\x14\x889\x12\xa3S\xa8\
+xo\x9e\xbcd==\xb3E\xb0\xfd\xbat\x15\xb0\xcb\
+`\xe5\xd6\x01\xb6\x08\xfe)\xc0\xdcK\xe14\x91\x17a\
+l/\x10\xfa(\xe7\xbe\x85\xeeO\x10\x13\xfa\x84\xc3\xe5\
+\xf3m\xe2\x90\x93\xbcM\xd6\xd9\xf2\x12\xcc\xac$X\xe9\
+u\x80#\xbb\x17\x1a\x03\x82-y\xb4_\x98\x17\xe0\xe0\
+k\xc0H\xa73\x1c\x18\x016y\xb3\xb5\xc9\x9b3\x7f\
+\xd4r\xfb2\x02\xc0\x1eSr\x1d \x08\x15M\x82\xb0\
+P\xcej:\x80\xd3n\x05\xce\xb8\x17\xa8\x9e>!\xce\
+\xed|`\x9f[\xe4\xb3\x16y\x09\xd4Z\x90\xca\x80\xa1\
+\xf8\xcb\x90\xa8d\x15\xc0$\x19\xdfP\xca\xaf2\xea\xe7\
+\x01\xe7,\x07:.s\x84\x84\x0d\x93\xfcA\x22\x1f\xb2\
+I\x95\x03+-\x820\xf4\xcaW\x01\x22j'\xaaH\
+\x0f\xb0\xeen@\xe8\xf9so5\x10l&\xb2'\x02\
+\xd3\x96\xd1y}\xc1v\x22N\xba\x01\xa8\x9b\x03\xec\x5c\
+\x09\x18\x9a\x95\x00\x09\x89\x03\x80b\x91\x17\x93\x00\x8eD\
+h\x1b\xb7\xa7\xad \x1c\xb8\xe6\x8c\x16Q\xe92\x88\x89\
+\xe5O\x07\xb2a\xc200\xba\x1d\xe8y\x16h\x5c\x04\
+\xcc\xfe3\xa0\xba\x1d\x0ek9\x17\xf0\x90X\x9d\x14\x16\
+\x9a\x0a${\xec\x99\x17%\x92\x9cp\x10v\x92f\x13\
+ \x9c\x1e\x90\xfbU\xb1\x10`\x02\xce\x9a?Y\x19\xb3\
+\xb6\xbaG\xb6\x00\x9b\x7f\x00|\xb2\x8a\xba\xb2p\xd8\x94\
+\xc5\xc0\x92\xfb\x81t\x9fI\xbex\xcc\xdb\xfd\xc7\x17\x1a\
+\xa6\xd9e\x90P\xa9$\x08QX\xd7m\xf2\x85\xab>\
+S\x88\x815$\xc4\x1d@j\x10\x0ek:\x138\xf5\
+\xfb\x05d\xcb\x82M\x1a\xff\xce~\xf6;]\x09Z\x04\
+\xfd\x8d@\xfb\x05\x80\xbb*\x17oH\x0f\x01\xf1\x83\xc0\
+x\x17`\xa8\x13D\xa06u\x18\xd8J\x22,y\x10\
+\xa8\x99\x8bOm\xfe\xdf\x00\xa3\x1f\x00\x87\x9e\x01P&\
+\xfeQ\xc2\xf5%G\x9e\xc8\x83\xeb\xf6\xed\xa22\xeb\x00\
+\xe7\xcc\xfb\xea\x80\xd6\xb3`\xdbR\x02\xf2+\xc1\xa1w\
+\x80\xbe\xd5t\x1c\xb1\x17;Z\x14\xd8~\x17\x89\xf0\xcf\
+N\x11\xce|\x04\x18y\xd7\xac\xfd\xc5\xe3\x9f\x17\xf5O\
+'i\xc9>\x17\x10\x16\xf1\x8a\x87\x80\xed\xee\x93\x9a;\
+\x08\xb4_\x05\x9c\xf5S\xa0q\xa9\xf3\xe5f|+\xb0\
+\xfer@\x8b\xd9\xe3=\x0d\xa4\xddO\xca\xd7|f\xb7\
+6\x8a\x84\x06\x9b\xc4\xa1*#\x80s%X\xd2<\xf5\
+\xc0\xe2\xfb\x80\xb6+\xf2^\x90\xd8\x07(G\x80T\x0f\
+\xb0\xfdV8\xac\xfdZ\xa0\xe1\xb4\xcfP\xfbK\xc2\xb1\
+\x12\x14\xa2b\x02p\x0b\x02Pb@x\x170\xb2\x0d\
+H\x0eN\xf2-\x0c\x98\xfb]\xa0\xf1L ;h?\
+x\xffSt\xcf;\x13\x86Q\xe7)\xf7\x1dg\x22,\
+q\xcc\x9c\xc4\x05*\x97\x03\xec\xfa?\xbe\x17\xd8p\x1b\
+\x00\xdd\x0a\x09\xeb\x05\xa9\xe3J`\xc6\xc5\xce\xa5\xd9\xc2\
+\x1f\x11\xe1\xdf\x02\x91N\xfbAw\xdf\x05\x5c\xb8\xd5\x1e\
+\xd7Ja\x13l\x03\x92\xfd\xce\xd8g6\x0ac\xbd\x04\
+\x80\xcf\xb6'\xf8\xe0}7-\xdc\xf2\xf6O\xa5\xd2U\
+\x80\xc0U\xe7\x92\x18\x84L\x08\xd8\xfb\x18\xb0\xfd\x87\x80\
+\x91\x99\xf0\xc9n\xe0\x0b\xbf\x06\x5c.{\x16\xe3\xdb\x80\
+\xd1\x89^ \x03\xed\xdf,;\xf3N\x14\xef\x17\xec3\
+\xe6\x80\xb77\xf7\xae~k\xc3\xbe_\x90\x08\xach\x0e\
+(\xdc\xf3s.\x90\xc6:\x81\x0fo\xb4\xfa,\xab\x9e\
+\x0f\xb4]\xe7\x8c\xe3\xfe_\xc2a\xd3\xaf.A\xbaL\
+\xdc\xa3\xe0\xdc\x0e\x83\xe3\xc9\x01\xe3\x8a\x9e\xed\xdc58\
+\x7f\xc7\xee\xc1\x7f%\x11Jo\x89\x81;\x84\xb0wo\
+\xf7\x00\x87\x9f\x03\xf6\xac\x84\xc3\xe6\xdd\xe5$7\xba\x06\
+0\xd2\xf6\xf5\xda\xc5\x80\x7fj\x01\xe9\xe3$n\x0b \
+>\x83\x07$3\x19C\x81\xfb\xce\xd7\xdf\xec\xba\xe6P\
+\xff\xd8C\xc5\xdf\x06\x09\x81\x16\xe0\x8c\x1f\x03\x17=O\
+\xed\x0a 83O>=\x80\x9c\xed\xa5\x9a\xaf\xc5'\
+x\xc1\xc9@\xcd|\x9b\x94 \xf2\xd1\x0f\x9dIs\xca\
+\xd9\x85\xa4Q6\xde\x0b\xc93'q!\xb9\xe5c\x12\
+ \x95\xc9\x1a)\xdd\xc8\x8eE\x92\xb7<\xbbz\xeb=\
+k_x\xf0\x9e\xc2?\x8d\xf1|\xe6^r'Po\
+\x12r\x01u\xd4\x9e\xbe\xc2v{\x86\xfc\xe2\xe7\xc8\xab\
+p\xd8\xd4\x8b\x9d3\x1b\xdb\x0c\x87\xd5.:\x0e\xa2e\
+D\x80\x05\xfa\xb5\xcbw\xfa/\x96?p\xeb\xeb\x8f=\
+\xfc\xc3\xef\xfc\xec'\xf7N/Z\x052\x8a\xa2'\xd2\
+\x19\xff\xf6M\x9b^Z\xbat\xe9k\xcf\xbc\xbc\xf9\xa1\
+\x0f\xff{\xe5\xc8\xd9\x97\xfc\xc3*G\x12\xac\x99\x0dT\
+\xb5\xc0a\xee\x1a\xe0\xe4\xef\x01\xdb\xbfo\xf7\x8dn\x00\
+:\xbe9\xc1\x0bNq\xbawf\x1f\x1cVu\xc2\xf1\
+\x91G\x89\xbe\x09%p\xe3\xa6.\xcf\x86\xa1\xfd\x977\
+\xd4\xd7^>sf\x8b\xf8\xea\xd5W\xec\x9a6m\xda\
+{UU5\xeb3Y\xf5\x83\x7f{\xe4\xe7\xa39\x01\
+\x14M\xe3\x14\x06~\x90q\xce\xffvgw\xff\xb9/\
+\xbd\xb1\xedq\xca\x07\xc38\xfc\xa4-\x80\x96)\xb2\xf9\
+q\x0a\x1c\x96\x19\x80\xc3|\xcd\xce\x87V\x87\xe00o\
+KY\x82\xe5\xc9;c\x9f\x83aj\x9d\xf7\xad\xdaT\
+\xed\x02&\xb9Z\x87G\xa2ll<\xb9\xa8\xb7oh\
+\x91,\xcb\xb7\xa9\xaa\xca\xe7\xcc\x99s{N\x00]\xd7\
+Y:\x9b\x0d\x80l\xc7\x8e\x1d\x83\x0b\x16,\xf8\xbb5\
+o\xef|\xbaeZ\xeds'\x9d0S\x0er\xc3\xda\
+\xc1\xe9\x07\xd2G\x81@3\x1c\x96<\x0c\xe7\x02\x5c\x86\
+\xc3\x5c\xb5\xce5\xbf\x91\x82\xc3\xe4*\x1c\x97\xb1\xc9\xfb\
+F\xb2>\xbc\x1f\xa9\xc3\xc1L-\x0egk0\x1eK\
+_\xa4\xebI\xc4b1(\xe4\xe5\x84}\xc4\xb5\x95s\
+^o\xf9\xe2,\xf3\x17\xb8\x10\x8c\xf2@\x10\x96uw\
+w?c\x18\xc6\xd3\xff\xf9\xf4\xba\xc0k\x91\xb9rZ\
+x\x00n\xfd\xe3\xc8\xf5\xb7\xe5W\x83\xb0,;\x0a\xec\
+|\xc8I\xb0\xaa\x03\x0e\xd3\xe3p\xee\xef{P`\xf6\
+\xfd\xc7e\xe3Y7~\xb5\xb7\x19\xd7\xbf\xbd\x00\xcb\xfb\
+\xcf\xc5{\xb1\x99\xd8\xdc\xaf\xe0\xc0\xde.\xd4%\xbaQ\
+\xa7\xf4?ZSSs\xe1\xca\x95+g\x90\x00Kg\
+\xcf\x9e\xdd#I\x12\xacoz\xcb\x05\xb2\x80\xcf\xd3\x94\
+U\x95FL0\x12\xe0&U5N^\xfe\xd8\xda\xd3\
+<\xb7\x5c\x86\xcb\x9b\xfa\xe03_{\x93}$\xf5&\
+`\xee\xd7\xf3\x1a\xf6<\x01\xa8$\x82<\xe1\xe1[.\
+\x83\xc3R\xbd6yF\x90\xeb\xe10m\x1c\x10\xc7!\
+\x82\x99\xe0F\xaa\xf0\xec\xee\xa9\xd8\x12\x9e\x06M\xd7\x10\
+\x8f\x8fCD\xdf\xc3\xe5s\x0d\xccY\xe4\xc3\x89\xb3\xda\
+\xe0\xadm\xa6<}A_\xfb\x95\xf7\x0c\x03\x10\x0f?\
+\xfc0#[,D.k_Mx\xc3u\xcf\xdf_\
+\x83\xc7\xd6\xeelJ\xa6\xd5\x16\xcb-8\x01\x07\x0f\x1e\
+L\xb7\xb5\xb5}%\x1aIl]\xf1\xcb\xdf6\xc97\
+~\x11\x97d\x87\xe0\x96\x00\x16\xeb\x07\xdb\xfe/\x80y\
+,\xe3\xd3\xedl\xc6\xac\x87\xdf\xf9\x03\xe0\xc0\xa3f\xc9\
+\xcc#\xfc.\xc0'\xb8\xafo\x0e\x1c\xa6Z\x028E\
+\x98\xb4o\xf3`\x10\xab\xb65c\xd3a/\xa2\xd1\x08\
+b\x91\x8f\xf1\xa59\x0a~t\x9e\x84\xf3\x17\xce\x04\xab\
+\x9b\x87=\x83@d\xe8\x10\xa2\x07;\x11\xee\xddy\xf0\
+\x9dp\xf3\x01\x00|\xc5\x8a\x15\xcb\xc8\x1b<$\xc0\xeb\
+\x00r\xa5\xca\xd5\xd8X#e\x15\xad\xdf\xd05\x0e\xa0\
+\x86\x90&h\x041\xbb\xbf\xffp\xf4\x84\xa6\xeb\x87\x8e\
+\x8c\xacY\xf1\xe4&\x96\xb9\xfaj\x9co\xbc\x08\x8f\xac\
+A\x96\xcdJH\xa0V\xa6\x96Y\xe7\x8c\x13\xc2]`\
+\x11\x82\x9c\xaf\x9c)]\xc6\xa1\xb1\x00\x8e\xc4<\x18\x8a\
+z\x10z\xf5\xbf\x10\xd3\xd7!\xcd\xa6#e\xd4\x01$\
+l-\xef@\x8d\xcf\xc0\xd4j\x0ds\x9b2X6#\
+\x85)~\x1d\xa6\x0d'\xdc\xd8p\xb0\x1a/uM\xc1\
+\xc7\x83\x12\xc2\xe10\x22\xe3\xe3\xf8\x8b\xa5\xc0\x037\x07\
+p\xe2\xbc/\xe4\x12\xb1\x88\x1d\x811\xb4\x1d\x91}1\
+\xa4\x14\x91O7n\xb75E`---\x17\x9b\xf9\
+\x80\xecyX\xe6\xba\xfd\xdeU\x1c^\xff\x12\xa8Y\x93\
+\xfc\x14B\x15!F\xc8\x10\xf8\x99\xd3G\xd7m<\x5c\
+\xf7`o\xdf\x91\xfb\x1f~IB\xf4O\xaf\xc22u\
+5<.\x1d.W\x9e\xbc\xcb\x12\x81\x13\xdbP\xda\x8b\
+\xc1\xb8\x17\xfdQ\x1f\x8e$\x83\xd8?\xecBoHC\
+:\x93E6\x9b\x85\xaaf D\x1a>_\x06\x81\xc0\
+(\x82\xf2\x18<H#o\x12\x09\xe4BF\xf7\xc0\xef\
+\xaf\xc7\xecf/=Z5\x14\xe1C\x86\xee\x1f\x0a\x8d\
+ <6\x86\xa0\x17x\xed\x8ez\x5c\xf2'\xe7\x03\xb5\
+'C()\x18\x07\xd7\xe6\x04\x10\x06\xc0Iy\xc1\x04\
+\x84\xe0t\xec\xca\x15_\xf3\xbb\xeb\xeb\xeb\xaf\xef\xeb\xeb\
+\xcb\x80nw\xbe\x0d*\xf4\xe9\x00\xb7PG\xf0\x13\xa2\
+\x9b\x81D\xbb\x0eva{\xf4\xb9\xf7\x0e\xd7\xce>\xd4\
+7\xf0\x97O\xbc\xc9\xb0\xff\xa4\xf35ytK\xca`\
+\xae\xa0\xaf\xaa\xc6\xe5\xae\x9e\x82\x81\xa8\x84\x811\x8eh\
+<\x8dT*\x83D2\x8d\x804\x88\x93Zu\x5c\xbb\
+T\xc2\xbc\x19@[\xb3\x84\xf6\xd6 \x9a\xbf\xf4\x22$\
+3Q\xbaH\xf3\x9d7\x83\x99\x9b&\xba\x02(I0\
+5\x85\xa7\xd6\xeb\xb8\xf1?R\x18\x19\xe1\x85\xc9\x9e\x01\
+\xabo\x0b\xe0\xbc+\xbe\x05\xe1i\x82H\x0eC\xdb\xf7\
+\x12\x90I\x12a\x19\x0c\xc8\x91\xe7\xd6\x96\x92\x90h\xa6\
+\x00\xf6\xca+\xaf\xdc\x10\x08\x04fG\xa3\xd1U ^\
+\xc5\x0a\x8a\x8b\x10$4\x10\xbc\x84ds\x10\x89\xf3\xe7\
+\x815\x04Q\xfb\x9b\xfd\x0dw)\xdc\xfd\xdd\xd6\xd6V\
+\xf4\xf7\xf7\xa1*\xe0\x0574\x84\x86#0\x0c\x8ei\
+\xb5\x14\x87\xf3%\x9c;\x8f\xe1\x82\xa5Mh\x9f=\x8b\
+*\x5c\x13\x98\xbf\x01\xcc[\x0b\xe6\x0e\x82A\x03\xb8\x92\
+\x033\xb2\x10j\x14,=\x08\xa4\x87s\xdb\xecL\xcb\
+\xe2\xd0Q\x81\xb3\x97\xd7b$\x1c\x01Yn\xc6;\x1a\
+%\xec\x09\x01\xa7\xb5\x09|\xf0\xb3\x0b \xd1\xeb7O\
+G\xa0\xedy\x06\x22\x9b\xb47\xaau\x81M\x078\x14\
+\x8d\x83\x09\xae'\x1b\x16/|\xba\xa7N'\xf2[>\
+\xfa\xe8#\xcf\xc0\xc0\xc0\xa9\x00z\x8b\xed\x07\xe8\x848\
+A\xb5D\xa8\x1dN\x22\xf0z\x17\xa2'5#|\xde\
+\xac\xc8\x9d\xef\xf65\xb3\xde\xde\xde\x9b\xcdX\x22o\xb4\
+f\x85\xe1\x9c9\xae\xc8\xbd_\x9f\xe5\x9f\xb5\xe8Bo\
+\xb0u!s\xfb\x82H\x0b\x05\xc4\x90\xa0\x101\x82\xaa\
+\xd0a\x14<\xd9\x9f\xdb,\x91\x94\x10$=\x01\x99\x09\
+\xc8B@\x12f\xcb\xd0=\x5c\x0d\x0e97\xdb7\x9e\
+\x03|\xeblPh\x00\x7f\xfdB-f4$\x10\x97\
+\xdb\xe0J+H\xedZ\x0d\x91\xce\xd0}f\xfc\x09\x08\
+\x9d#\x95\x11T\x1a\x01\xb3'e\xf8\x1eyd}\xba\
+\xbauz\xfd\xbf\xf7\xf4\xf4\xd4\x11\xf9\x1bL\xf2\xe56\
+D\xb8\x15\xff#\x04E\x00\x8d)\x15S;\xfb\x11\xdb\
+\xd6/\xc6[\x1b\x95\xefi\x9a6\x04\xe0\xdb\x846\x02\
+\xbcn\xb9w\xd9\x895\xf7\xb6_\xf9\xe8u5SZ\
+\xdaT%-\xa53\x09\xb7\xa6\xa6]Jr\x14\xa3\xfd\
+\xbd\x99p\xff\xc7n#\xbe\xbfZ6\xe2\xbe\x80WT\
+y=\xc2\x13\xf0\x08)\xe0a\xb9\xca\xe2\x22\xb8\x19\xc0\
+\x0d\xe0\xdd\x819H$\xba0\xb3\x1e[\x82n\xecy\
+m\x07j=.Q'\x04?\xefp\x18\xfa\xc7=\x11\
+\xc9\x88\xbf*\xf3x\x04\x01\xb7\xcc<L\x80q\x01E\
+\x15b\xdf0\xd4\xa3\x096z(\xea\xde\xf8\xe1\xa0\xdf\
+5\xeb\xc4\xa6\xd5T\xd1\x9a\xf7\xee\xdd{7\x80_\x1d\
+\xeb\x8e\x90\xb0\xbc`\xdcj\x1b\x09\x0d\x02\x08\x1c\x09\x8f\
+\x87\x01\xac\x90e\xf9\x9f|>\xdf\xf6T*\xb5\xd0\xe3\
+\xf5\xbe\xdcq\xfa\xd5\xef\xcf>\xe5\xec\xaf\x09.\x06\x0c\
+CS\xe2\x91p\xf7\xde\x1d\x1bwo\xfc\xcd\x93\xa3\xaa\
+\x9a\xf6AW}\x86\x11\x0c\x08\xdd[%\xb8VE\xa1\
+\x13dB\xaf\x97\x99\xde\xe0\x96\x8c\xdaj\x9fA-\x0f\
+\xc6\xa4\x99\xf3;\xfb\xa4*UQ\xe2\x0b\xe6\xe0\x0e\x83\
+#\xab\xab\xf0eT\xe1\xf3\xbb\xb8\xa7\xfb\x88\xb1d\xcd\
+;\x9d\xcf\xca.\xd6\x00x\x83\x0c\xc2\xc7`\xb8\x05\x87\
+\x94H\xc3\x08\xa7\xb8r$*\xbc\x9ag\xda\x17;\xe6\
+\xcc\x98\xd1\xd5\xd5\x95\x08\x85B\xf7\x00x\xf4\xb3l\x89\
+\x19\x84\x84%\xc2\x14\x0b3\x08\x11\xc30\xc6\x1a\x1a\x1a\
+\xb6d2\x99\x85\xfe@p\xd7Wn\xbcw\x9a\xcb\xed\
+5\xb3\xed\xfb]\xbb\xf7\xbc\xb1\xa3sk\x94C\x97\x1a\
+O\xfa2\xe3\x5ce\xa4\x89\xc4\xf5,3\xd4\xb4\xa4+\
+)IW\x932eoY\xa3\x96gS\xee1-\xed\
+\x19\x1cc\x0b\xdd\xcd\xcb\x1e\xdd\xd9\xf5:$\x86\x07;\
+\xa6b\x9b\x00\x1dj\x90\xb8L\xe9\xc4\xa5\xde>,\xd8\
+[O\xae\x1f\x9bu\xe1\xb2Y\xcf\xb74\xf8\xd3\xe3\xb1\
+\xd4\xb4\xd1h\xfa\x84pL\x9foH\xfe\x99\x9e@]\
+\xa3\xab\xc6\x1f\x8c\x86\xc3\xea\xce\xee\xf7^\xd6u}9\
+\x80]\x04\xed\xf3\xfc\xaf1f\x89UK\x98j\x95\xca\
+$\xd5\xd5\x9b\xa8&\xdf\xd6\xdc\xdc\xfc\x0dz\x87P\xd2\
+\xe9t\xe2\x8d7\xde\xd8=\xc9\x96\x86\x80\x05\xd3\x98\x10\
+\x9c\xc3\xe0B7\xe8H\xe5\x86\x9a\x11\xdb\xb6\xed\xa8\x86\
+\xb7z\xed\xde\xbd\x9f\xcc\xeb\xec\xec\xdc\x0e\xe0L\x82\xfe\
+\x8f\x00\xd6-\x06K\x8d\x83Ec\x90{\x13\xec,\xba\
+\xf3y\xb7\xdb\xdd\xec\xf5zUj\x99\xcb\xe5r\x93\x81\
+\xc8\x1a\xf1x|\xbf\xa2(k\x01\xfcZ\x08\xd1]@\
+\xbc\x9c\x07\x94\x08\x09\x8d\x10!(\x84&\xc2\x14UU\
+\xe3\xe6\xba\x9a\xda\xa6\x97\xc9\xc8+8\x00\x97S\x00\xe7\
+\x9f=\x18c\x1c\x8cA\xa2\x1fx\xdc\x02\xf0\xf1w7\
+|\xd4\xee\xf7W=\x91\x88\xc6\xe6m\xdb\xb6m\x14\xc0\
+5\xd6x\x99\x04\x90\xf01d\xab*\xd5\xe4wTp\
+\x0b\xe5\xa1\xb3\x08\xb5\xd6s\x85\x09\xfb\x09\xa6p}\xd6\
+bNTfW\xb80$\x92\xd6\x97fi\xc67\x92\
+\x00J\x22\x918\xe3\xc0\x81\x03\xafQy\xe4t.\x13\
+I\x13\x92U!r\xe4\xf3\x13/\x0c\xab\x95H,\xb1\
+n\xdd\xba6\xba~=-O\xbfs\xe8\xd0!\xff\xa6\
+M\x9b\xc6\xe9\xda_\x01\xc8\x12\xda&|\xa76\xc1\x0b\
+\x93\x84\xdd\x84NB\x8a\x90\xb1&E/G\xbat\x08\
+\x1c\xff}2!\xe0\xf1x\xbeM\x1e\xb0\x9c\xc2`\xe5\
+\xa9\xa7\x9e\xba\x9e\x92\xa3\x9b\x5c\x93Q\x82\xe4\xe4\x9a:\
+\x09\xa2r\xce\x0d\x1a#(_\xc8\xe3\xe3\xe33\xfc~\
+\xff)4\xe6\x22j\x97Q\x82b\x94\xa1\x0d\xea\xff\x10\
+\xc0*\xc2Q\x8bP\xc2*\xc9\xb1\x1cQ'AnA\
+\xe0s\x1a\xab\xc0\xfd&\xaec\x8c=L\xa4j\xab\xaa\
+\xaa\x86\x89X\x8a\xda\x0c\x09 <y\xf3\xd1\xf5\x06B\
+\x8d9\xfb\xe49\x88D\x22\xc6\xd0\xd0P/y\xc2\x06\
+ki:`\x11M\x12\xd2\x96\x08\x9aM\xf6wc\x0c\
+\x95\xb3*\xc2\x97\x09\xa7\x13\xda,\xc2u\x047\xe7\x5c\
+\xb2^A#\x84\x83\x84n\xc2\xfb\x84~k\xa6\x8dr\
+\x7f\xd6\xfb\x03\x10\xa0\xf0\xf3\x1c\xff\x0a\xc0\xf9\x17V\x81\
+\xdf\x13\xfb\x1f\x84\xaf\xe2\x02\x22\xe6\xe9\x93\x00\x00\x00\x00\
+IEND\xaeB`\x82\
\x00\x00 \x1c\
\x89\
PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
@@ -1380,39 +1169,250 @@ O\x9c?\xff\xdc\xe1\xfd\x07\xbez\xe1\xd4\xf8\xd3Q\xcf\
T\xcb\xa0\x80\xcd\x08\x0c\xd7\xaf\xf5\x8f\xa8\x9d\xdf\xb0_\
\xad7\xf5:\x7f\xfe\x1f_\xbc\xdd\xe6\x1aS\x0c\xc2\x00\
\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x0d\x06\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00@\x00\x00\x00@\x08\x06\x00\x00\x00\xaaiq\xde\
+\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\
+\x00\x00\x00\x09pHYs\x00\x00\x06\xec\x00\x00\x06\xec\
+\x01\x1eu85\x00\x00\x00\x19tEXtSof\
+tware\x00www.inksca\
+pe.org\x9b\xee<\x1a\x00\x00\x0c\x83ID\
+ATx\xda\xed\x9b[hU\xd9\x19\xc7\xd7IN\xa2\
+&&\x1a\xe351^\xc6T\xad\x97J\x95)8\x14\
+\xc4\x22\xb6\xccs\x9f*\xf4a^|\x10\xc4\xc2\x0c\x08\
+}(\xf8TJ\x1f\x15\xa4O\xf6Q\x0aR\x90N\x07\
+A\x94\xfa\xe0\xfd\xd6\xaa\x03^\xc6\xfb5Qc.F\
+\xcd\xc5~\xbf\x0d\xbfa\xcf1\x92\x8c\x1c\x83\xc1,X\
+\xec\xbd\xd7Y{\xad\xef\xfb\x7f\xf7\xb5\x93\xc2\xeb\xd7\xaf\
+\xd3\xc7\xdc*\xa2\x8f\x030\x0e\xc08\x00\xe3\x00\x8c\x03\
+0\x0e\xc0G\xda\x8a\x1f\x1aA\xc7\x8e\x1d\xdbS]]\
+\xfd\xb3i\xd3\xa6}\xe1\x98\xad\xad\xad\xed\x8f\x95\x95\x95\
+\xf3W\xaf^\xfd\x8br\xed\xf7A$B\xdb\xb6m[\
+P,\x16\xff\x10\xb7\x9f\xcd\x9e=\xbbe\xf2\xe4\xc9\x93\
+\x18\x876\xaf\xb6\x81\x81\x81\xc1K\x97.\xdd\x1a\x1c\x1c\
+\xbc\xd4\xd1\xd1\xf1\xb7\xbd{\xf7\x1e\x1a\xd3\x00l\xd9\xb2\
+\xe5\xb3\xfa\xfa\xfa\xc3!\xf5\xaa!\x09,\x14\xd2\xdb\xc6\
+\x03\x84t\xfd\xfa\xf5C\x15\x15\x15\xbf\xd9\xb3g\xcf\xab\
+\xb1d\x022\xff\xcb\x9a\x9a\x9aC!\x84\xe2\xcb\x97/\
+\x87cx\xc8\xb1\x96\x96\x96\xf5\xd7\xae]\xfb&\x1e\x7f\
+5\x96\x9c\xa0\x0c\xfc\xb3\xbf\xbf?\x13B\x00\x91\xaa\xaa\
+\xaaR\x98\x02=\xbb\xb7;n\x9f8qb\xc6<\xa0\
+\xd1\x9b\x9a\x9a\xd6o\xd8\xb0a\xdd\x98\xd2\x80\xcd\x9b7\
+\xff9\x98i\xec\xeb\xebK\xcf\x9e=K\x0f\x1e<@\
+\xa5G\x0a\x5c\x0a'\x99\x1a\x1b\x1b\x93\xad\xae\xae\xee\xaf\
+q\xf9t\xac\x00\x00\xb3_\x04\xf3H\x10\xef\x9e\x16-\
+Z\x94\xc2\xf9\xa5\xe7\xcf\x9f#e\xe7\xa4\xce\xce\xce\xd4\
+\xd0\xd0\x901\xfc\xf4\xe9\xd34i\xd2\xa4t\xfa\xf4\xe9\
+\xf4\xe4\xc9\x93D\x0b\xff\x91hS\xa6L\xf9\xf9\xc6\x8d\
+\x1b\x8b\x07\x0e\x1c\xe8\xff\xe0\x01\xd8\xb4iSu\xb4\xe9\
+q\x0b\xc3x\xf6\xb4j\xd5\xaa4a\xc2\x84t\xe3\xc6\
+\x8d4k\xd6\xact\xea\xd4\xa9\xd4\xda\xda\x9a\xe6\xcf\x9f\
+\x8f\x9d\xc3`\xbaz\xf5jZ\xb8pa:{\xf6l\
+\xf6Nww\xb7\xe6\x00h\x95/^\xbc\xd8\x14K\xfe\
+\xfd\x83\x88\x02\xdb\xb7oo|\xf4\xe8\xd1\xba \xbc?\
+\x88\x9d\x17\xd2[1s\xe6\xcc\xdf\xde\xb9s\xa7+\x88\
+\x9e\x1cc\xd3\x83\xe0\x84\x16\x00B\xc4\xf7w\xd1\xa2L\
+3\x02\xcc\x0c\x84[\xb7n\xed\x0b\x8d\xd9O8\x8d~\
+4\xd6\xfc\xf7\x89\x13'\x1e\xbc\x17\x00~\x1dm\xc5\x8a\
+\x15\x95\xc1Tm0\xd3z\xe6\xcc\x99\xdf\xafY\xb3\xa6\
+9\x18}\x10\xd2h\xbap\xe1B\xed\xb2e\xcb\xd2\xdd\
+\xbbw\xd3\xd4\xa9SSWWWz\xfc\xf8qFl\
+\x84\xad\xc4\xbe\xd8>\x12\x0c\xa0\x90\xa8\x9e~\xc4\x0dM\
+a\x1d\x1c(f\xc3\xfd\xe5\xcb\x97\xf1\x07\x98\x13\xfb\xbc\
+\x0e\xad\xba\x1cN\xf4\x1f===\xff\xda\xbf\x7f\xff\x89\
+\x9838b\x00v\xec\xd8\xb1\xf4\xe6\xcd\x9b_\xc5m\
+\xcb\xe2\xc5\x8bo\xd6\xd6\xd6\xd6\x04\xa1\x8bz{{[\
+\xcf\x9f?\xdf\xc8&\xa8$\x92\x84Q\x18\xc0c\xf3\x8c\
+m\xbfz\xf5\xca\xae'wi\xa4\xce8D\xd2\x99\xcf\
+\x18L\x0c\x1b\x0e\x01-hQ\x0bx?c\xd8\xe7\x90\
+z\x8a\xe8\x82\xf9\x00>~\x22\xdb;\xe8\xeeloo\
+\xff&\xf6\xfd2\xe6\xdc\x1e\x12\x80\xdd\xbbw\xa3\x8b\xbf\
+{\xf8\xf0\xe1_\x8e\x1f?>;\xd4\x88\x97\x0d7\x10\
+\x08\xe1y\x06\x91\x1e\x1b\xdb\xdfxFBt\x1bk\xe0\
+\xd0d\x9e=`\x8c{\xae\xf9n\xf3=\xaf\xac\xeb\x95\
+\x0e\x00y\xe7\x19\x1a\x09\x08\x00\xc5\xfa8O\xfcH\xe6\
+gB\x1b\xae\x1f=z\xf4\x937\x00\xd8\xb5kWM\
+\xd8\xd0\xd7\xa1\xaa\xebb\x92L\xb2\x10\x1d\xc6\xd8\x14\xbb\
+\x858\x09\x18\x16\x006\x869\x1b\xce\x0b-\x810\xc6\
+\xed#\x01\x80.\x93y\x10X\xcb\x88\xe0\xef\x87\x0f\x1f\
+f\x1f\x98V\x08\xdc\xd3\xfb\xc3$\xebo\xdf\xbe\xdd[\
+\xf4\x85\x9d;w\xb6D8\xfa6T\xb9\x96\xd0\x93'\
+\x02d\x91\x18\xe3a\xf3i\xee\xdc\xb9)^\x06\x086\
+\x960\x89\xcb\xe6\x00`\xe4\xea? \xd6\xe6\xfa\x00%\
+\x08j\x80\xfb9\xce\x9a9@\x87\xd4\x00;\xcc\xf1\x1e\
+\xfe\x06\x8d z`V\x08\x12 B\xab\x11$\xeb\x17\
+\xc3\x17\xfd\x09_\x9d\x01\xb0o\xdf\xbe\xc6\x90\xca\xb5(\
+2\xaad:\xcf<I\xca\xca\x95+\x13\xed\xc8\x91#\
+ \x9d\x81\x10~\x00\xe9\xe6\x01\xc8\x88\x8e\x82\x86\x8d\x01\
+\x8d5\xb2Mmj\x14\x8d\xb90\xc7\x1e\xd3\xa7O\xc7\
+y\xf1\x9b\x1a\x02\xe1C\x81$ \xa5 \xc88\xe0+\
+y\xd6\xc0\x0c\xe8\xd6\x0f\xfc\x86\xe3\xfd*\x9e\xf7d\x00\
+\xdc\xbbw\xef?\x11w\xabTS\x99\xd7\xfe\xc9\xb8\x02\
+1\x9cHF\xa4\xf3$\x16\xfb\x82\x10\xcd#\x22\x00\x8c\
+\xf2,\x00\xae\x9b\xadA\x13\x00\x12 \xd6F\xa3\xc8\x01\
+\xf2NP\xa65=\x9b)q\xe9o\xac\x8d\x83\xc4\xe1\
+B\x07\xeb\xd2\xb6n\xdd\x9a\xdd\x9f;w\x0egM\xa4\
+@\x0b+\x02\x88O\x8b!\xfd\xdaP\x8d\x9f\xe6\xbd\xac\
+\xc4\xa9\x8a\x84)PC\xa2\x80\x81\x84O\x9e<\xc94\
+\xc6\xd9T\x00@\x18\x86\x95\x8e%\xec\x0f4\x806o\
+\xde<\x9c*Z\x041\xec\x07\xb8\x864\x9e]\x03\x1a\
+t\xb6\xec\x87vq\xcd\xfb\x09\xe6\xb0\xaf\xeb\x93\x1f\x08\
+6\x91 \xfb}\xce\x9c9\x198W\xae\x5c1ZM\
++\xc6K\xad\x11\x8f\x0b\xbc\xa8csA\x91\x9e1c\
+F\xb6\xb0\xa9\xea\xc1\x83\x07\x9d\x87\x8a\xb1\xd1\x1bj\xc9\
+\x06\xda\xbfD\x0a\xc4\xf2\xe5\xcbIe1'\x18\x05T\
+\xcc\x0a\xa2\x19\xd7\x9e\x95$\xb4 A4\x0d:\x98\x03\
+\xb3\xa8<W#\x13\x82P \x8c\xabE\xf87\xae\xbc\
+W\xea\x5c\x0b\xc5\xd8\xa0\x10\x8d|\x9b\x8d\xf3^\x7fH\
+\xc6h\x10\xc6o<\x03\x00\x0bC0D\xd25\x0dC\
+\x9f\xef1\x8e/!\xa5%\x09\x82i\xf6\x05`\xd6@\
+\xc3\xb8\xc2\xb4\x0e\xcf}\xd5J\xf61\x17\xc0\xff\xb0&\
+k\x01\x12{\xd2\xa0\x01>\xbc\xd7\x17\xd9\xf3\x0d\x0d\xe0\
+e\x88\xd0\x86\xe9\x82\x90\x0f\x7f\x02a\x1e\xfe\x86]j\
+\x7f\x02\xa0Y\xd8\xc8\xed/^\xbc\x08hH\x1d\x89\x03\
+\x00>\x08i\xb2/\x84\xeb\x00\xe92\x8b\xf4U[\xe6\
+@\x07k\xe0\xf0X\x83\x88\xc3<\x0b&S\xebaS\
+\xec\xa2*\xf4\xaeM/\x9dk\x10\x85\xa4J\xd3V\x9c\
+\x1c\x0c\x10&\x91\x0cs\xd0\x06\x00\x83\x01\x1c\x14k\xe1\
+\xb1\xd1\x1e\xf3\x07\x01a]hEs\xb8G\x0b\x99\x03\
+\xe3\x80\x00\xf3\xbc\x8bC%\x04\x1a\xc5\xb8\xda\x87\x01\xa0\
+L\x0d\xc2`\xc0\x06QH\x18U\x85P}G\x14F\
+\x5ca\x1c\x8d\xc11\xf2\x1e\x0c\xb3\x06\x0cA\x1b\x0c\xd2\
+\x01M\xed\x831\xd6\xa5\x94\xc6yZ\x1a\xb3G6~\
+\xff\xfe}\x9c\xec\xb0\xf5\x05> \x95\xbbi2F\x15\
+\x98\x8ac+31M\x0bF\xa8\xe02\x82\x97,Y\
+B\xb1\xc4\x19_iF\x88\xb4a\x1e\xa6Y\x03\x86\x01\
+\x8e\xe8\x01\xd3\x5cq\xd0\xac\xc9\x95u\x19\xc3TL\xb3\
+\x05\xe2\xfdk\x80\x9b\xda\xb0G\xc2(\x04@\xac!\x92\
++\xb6\x8f9\x00\x00\xe6\x01\xe1\xe6\x0d\xe6!&/\xfa\
+\x03}\x92v\x0e8\x80\x82\xc6\xa8%\x8c\x13\xfaX\x1f\
+\xad\x1a\xd6\x07\x94\xb3\x11&!\x02P\xb5A\xd4\xbf\x94\
+yT\x17\x82\x91&~@M\xe4\x1d#\x8ay\x88\xe9\
+0s`\xd4\xb9\xccC[\xe4\x819\x00\x05 y\xc7\
+m\x1b\x15\x0d0\x03cc%D\x83Y\x01\x80\x09\xa4\
+M\xb9\x8a\xad2fJ\x8cd5\x15\xcf\x0ed\xce\x08\
+\x01\xc8\x98\x0b\x8e\xd5\x04\x88\xf7\xd4\x06C&\x9a\x85\x1f\
+a\x9d\xd1\xd2\x00\xe36\x1d\x86pJ\x84\xaf|\xa6\x08\
+\xf1\x84]=9\x0c\xe8\xd4\xb0a\xa3\x00\xa01nx\
+\x86y\xde\xb1\xe0\xa1\x13\x05\x04>\x9f\x00\xc1\xb4{Q\
+gp\xffV'XV\x0d\x90Q\x9a\xea\x8e\x9a\xe7U\
+\xd2:\x9d(\xc0\xb8g\x06\x8c1\x17\xa6\xb8\x1a\xfb\xcd\
+\xf4\x90<\xcf\xfa\x05\x8b\x1f\x9a\xd9\xa2i5`\xd0\x0c\
+\x9bh\x1c\xfb\x8e\xaa\x06h\xabJ\xd11\x98p\x1e\xfb\
+C8\x04\xeb\xe1q`\xf3f,IM\xd3>I\x03\
+\x13B\xdd\xbbo\xa3)0l\x8d`\xdeo\xea\xab\x84\
+\x87\xca\x1e\xc91\x00\xd5|\xe2\xfd\xfa\x80<!\x82\x9b\
+\xaf\xdaTU\x88\xb7\xb4\x05\x00AP\x0b\xe6\xcf\x5c\x9a\
+\xfak\x1f\xa7\xe6\xa6\x96T\xdd\x96\x85L\xed\x1dFt\
+\xb6\xac\xc7;\xaeo\x04\x92'\xfd\x0a\xa6\x88)\x00@\
+Y5`\xd8#+\x01\xb0\xa9\x01\xee+\xd1\x8c\xe55\
+\xa1P\xf72-X\xb44\x15\xeb\xfaR\xb1\xba9u\
+\x90*\xc7;f\x99\x9e1\xa2\x19\xac\xaf)[\xd0\xe5\
+\xa3\x10\xe1\xd0\xcc\xb3\xb4U\x94\xd3\x07\xc8\xa8\x04 \x95\
+R`\xf2g\x0e\xf9{\x9f=#|\xde\xdf\x1e\xcc>\
+J\xb5U\xf5\xa9>\xca\xd8\x89u\x93S\xfd\xec\xc8\x19\
+\x1a\xa68\xcf\xf7\x5c\xc3\xee\xfev5\x0d\xb0\xde\x04\xa0\
+\xdc> O@\xbe\xa2\xf3\xdeL\xd0\xef\x7f0\xeb\x5c\
+\xfb\xf71\xbf\xa77u\x84\xeaw\xb5\xb7\xa5\xee\xb6\xf6\
+\xd4\x1bj<!\xbe\x9c\x0f\xe64\x8c\xf5,\x99\x05T\
+\xe9k\x86f\x93\xac[\xda\x8a\x12Sn\x00\x8c\xdd:\
+-\x9a\xa1\xd13\x02U\x9fy:5\xed\x1bo^\xc5\
+\x07\x8f\xfa\xba\xd4\xf7\xbc'=\x8d2\xb9\xb3\xa7;\xf5\
+\x15\x99\xfb}\xc5\x0a\x00\xbc\x83\xa7W\xd2\xa5%8{\
+P\x83p\x1d\x1d\x00$@\x00,\xb9uJ\x82\xc2\xbd\
+\x85\x92\xcck\xe3\xcc\xc9\xca\xe3\xcaBzE2U]\
+\x91\xba\xba;#\xb7N\xa9\xab\xb3\xcb\x13k\x22\x06`\
+\x19\xf7e\xdc\xc6\x98\xc5\xd2\x90\xad\xa8W.W\xf3$\
+WB\xcc\xe3!B\x7f\x03\xb1f~H\x0e\xdb\xa4\x9b\
+\xfe\xe6m\x96\x10V7\xb3!M\xa8\x9c\x98\xbaz\xbb\
+\xd2\xa3+\x0f\x01\x0c-aM\xee\xcd\x1a=\x87T\xab\
+\xbc\x1f\xddT\x18\x06\xf2\x84\xc0\x84\xa0\xd0Lz\x90\x9a\
+\x80Q\x10\x91\x12#\xfd|\xf1\x83`<\x95\xceg\x82\
+\xda3\x8cs\x82\xb4`\xc1\x02\xcf'\x05\xd8\xc4\x89D\
+it\x8b!\x9d\x9a\xcd\xb3:\x80\x80`m\x14\xd5g\
+\x0cf\x01\x8a\xda=>[e\xc0\x18\xeb\xad\x05\xb4e\
+A\xf0\x9c2>\xdbq@+\xd0\xcc\xc9;B\xb5\x84\
+=GO\x03LG\x05\x82g\x08\xf1h\x8b1\x99\xf6\
+\xd0\xd3\x12\x1a\x10Pyk\x04\xabA\xdf\xf1\xec\x12\x9a\
+\xa9 9\x12\xf3\x5c\xd03J\x80\xf5\xd3\x1d\xe6\x05\xf3\
+\xa3u b\xfd\xaf\xf3\xd3\x0c`\xcajM\x02!\x1a\
+@\xf2\x1fG\x19\x83!\x8b\x17\xa4\xed<\xc3'_w\
+\x00\x94J\x12\x06\xd9\x03\xe65\x09\xfd\x0fB\xe0X\x8c\
+\xdfF\xd7\x07X\xcf\xeb\x84Tw+@\x982\x13\xb4\
+t6\x1c\xf2\x9bE\x8b\x15\x9d\x1fRaD\x8f\x1e_\
+\xaa\xd1\x0eO\x95\x00\x8f\xf73\xa0<)jnn6\
+\xed\x1dU\x1f \xc3\x1eE\xeb\x18\x01\x85|\xdc\x83N\
+\xf3z\x011\xf4\xe1 aT\xd3\x00\x00\xde\xa1\xf6g\
+\x1d\xd7\xd4!ZL\xb1'ct\xd6\xc0\xf9\x01\xfa\x88\
+\x00\xe0\x0bq\xb9\x01\xc0\xa1i\xbfflH\x0b\xf5\xd5\
+W\xc0\xb8\xde\xdeR\xd7DJ\xa6Js\x0bU\xde\x22\
+'\x9f\x0cyb\x84\xf41\xbb\x11)l1P\xaea\
+\xd1rT\x7f6\x88\xb3\x04.\x05\x06\x10 T\xe7\x05\
+\x13\xac\x81\xdd#q\xa5jm`FI\xb7\xb6'\xf9\
+\xf1T)\xffu\x8aw\xf9\xd6\xc0\xbc\xb5k\xd7r\xec\
+\xa6\x06\xe9$\xf9.!\xdd\x00\xde\x87\x064\xf0\xf0\x0e\
+\xcd\x8c\xeemZ\x80-*9\xbb\xc7\xde\x10\xe7\x87\x0d\
+\x08\xf1K\x8e\xa7\xba\x1e\x8cp\xc6\x0fS\x00\xc5\xf19\
+k\xc8\x98\xef m\x00c=+N*@\xd6\xf6=\
+@\xf5\xbc\x01\xba\xa0\x01 o\x15\xf9\xdb[\xff\x14\xed\
+\xc7\xb6|\xf5\xa5\xbd\xea\xfd\xd9\xc0\xdfJ\x9bN\x12\x8f\
+\x0eQH\x15\xa2\xf3i34\xd1y\x9fd\xc7F\xe6\
+gh3)\xe2}K]\x01\xf8\xee\xbb\xef\x86\x22Y\
+\x00\xd1\xd0\xb3\x11I\xfe[\x8c\x81\x9bdZl\xca\x22\
+\xf9\xd8\x9b\xaf\xeb\xed,nM\x0fa~\xa8\x90(\x8f\
+\xb8\xecn\xea\xb5\xa4y\x86\xef\x91\xd8pi\xb9f\x82\
+\xcf\xf0\x0b\xb6\xe7\x83#1W\xfd\xc7\x85\xf8\xfb\x86/\
+c\xa8\xad\x18R\xea\x08oy(\x08_\xef_X\x04\
+\x832\xe2U\xe2e\x12/?\x10D|\x1b\x8f\xcf\xf2\
+i\xae\xcd\xf8>\x82&8\x95\x01\xe8\xd4Xcz\xd0\
+P\x13\x9d\xbfW\x80>\xf6\x1b\x88\xf1\xbe\xb8\xbc\x88\xa9\
+\x8f\xc3A>\x09\xa0~l\x02\x83\xd0:\xc2\x9c.E\
+8\xfe:\xd6\xbb\xc0)~!\xfe\xf6~R,\xbc:\
+T\xf6\xf3@wY\xfc\xf0\x13\xfe\xcc\x8d\xf9y\xc9K\
+g4\xa0\xbe\x1d\xb6t$\x88\xf8_\xbc\xdb\x99\xdeO\
+s\xc3B\xb4\xd7e\xc8O\x90\x0e\xb4\x12\x1b\xefE\x7f\
+\x12\x7fq\xfa:\x0b\x81\xf1\xf7}\xd3\x02\xed\x96`f\
+n<\x83~}\x00A\xfd\xca\xefH\xb2\x10\x9d{\xfa\
+`\xdc\xb3P{\xcc\xb9\x16\xd7\xa7il4@\xec#\
+h\x04\xe3}\x0e\x9a\x03\x00B\x15\x99l\xf4\x9a\xe8\x18\
+\xa2\xfa\xeb\xb5@g!T\x07\x7fD\x07\xc54\x86\xdb\
+\xf8\xbf\xce\xa64\xfe_c\xe3\x00\x8c\x03\xf0\x11\xb7\xff\
+\x03\x7f\x19\x0a\xe4\xd7bc\xda\x00\x00\x00\x00IEN\
+D\xaeB`\x82\
"
qt_resource_name = b"\
-\x00\x0d\
-\x0b4-\xe7\
-\x00a\
-\x00k\x00r\x00e\x00g\x00a\x00t\x00o\x00r\x00.\x00p\x00n\x00g\
-\x00\x0b\
-\x01\xad\xabG\
-\x00d\
-\x00i\x00g\x00i\x00k\x00a\x00m\x00.\x00p\x00n\x00g\
\x00\x1a\
\x08\xdd\xe1\xa7\
\x00a\
\x00c\x00c\x00e\x00s\x00s\x00o\x00r\x00i\x00e\x00s\x00-\x00d\x00i\x00c\x00t\x00i\
\x00o\x00n\x00a\x00r\x00y\x00.\x00p\x00n\x00g\
+\x00\x0d\
+\x0b4-\xe7\
+\x00a\
+\x00k\x00r\x00e\x00g\x00a\x00t\x00o\x00r\x00.\x00p\x00n\x00g\
\x00\x07\
\x0e\x95W\x87\
\x00k\
\x003\x00b\x00.\x00p\x00n\x00g\
+\x00\x0b\
+\x01\xad\xabG\
+\x00d\
+\x00i\x00g\x00i\x00k\x00a\x00m\x00.\x00p\x00n\x00g\
"
qt_resource_struct = b"\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x01\
\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00 \x00\x00\x00\x00\x00\x01\x00\x00\x13\x0d\
-\x00\x00\x01e\xaf\x16\xd2\x99\
-\x00\x00\x00<\x00\x00\x00\x00\x00\x01\x00\x00 \x17\
-\x00\x00\x01e\xaf\x16\xd2\x99\
+\x00\x00\x00n\x00\x00\x00\x00\x00\x01\x00\x00HE\
+\x00\x00\x01z\xe7\xee'\x05\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x01e\xaf\x16\xd2\x99\
-\x00\x00\x00v\x00\x00\x00\x00\x00\x01\x00\x005/\
-\x00\x00\x01e\xaf\x16\xd2\x99\
+\x00\x00\x01z\xe7\xee'\x01\
+\x00\x00\x00:\x00\x00\x00\x00\x00\x01\x00\x00\x15\x18\
+\x00\x00\x01z\xe7\xee'\x01\
+\x00\x00\x00Z\x00\x00\x00\x00\x00\x01\x00\x00(%\
+\x00\x00\x01z\xe7\xee'\x05\
"
def qInitResources():
diff --git a/examples/widgets/animation/easing/easing.py b/examples/widgets/animation/easing/easing.py
index ba7f2d363..ba5032458 100644
--- a/examples/widgets/animation/easing/easing.py
+++ b/examples/widgets/animation/easing/easing.py
@@ -1,44 +1,6 @@
-
-#############################################################################
-##
-## Copyright (C) 2010 Riverbank Computing Limited.
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2010 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from enum import IntEnum
import sys
@@ -46,10 +8,10 @@ import sys
from PySide6.QtCore import (Property, QEasingCurve, QObject, QPropertyAnimation,
QPoint, QPointF, QRect, QRectF, QSize, Qt)
from PySide6.QtGui import (QBrush, QColor, QIcon, QLinearGradient, QPainter,
- QPainterPath, QPen, QPixmap)
+ QPainterPath, QPixmap)
from PySide6.QtWidgets import (QApplication, QGraphicsPixmapItem,
- QGraphicsItem, QGraphicsScene, QGraphicsView,
- QListWidget, QListWidgetItem, QWidget)
+ QGraphicsItem, QGraphicsScene,
+ QListWidgetItem, QWidget)
from ui_form import Ui_Form
@@ -148,13 +110,12 @@ class Window(QWidget):
self._anim = Animation(self._item, b'pos')
self._anim.setEasingCurve(QEasingCurve.OutBounce)
- self._ui.easingCurvePicker.setCurrentRow(int(QEasingCurve.OutBounce))
+ self._ui.easingCurvePicker.setCurrentRow(0)
self.start_animation()
def create_curve_icons(self):
pix = QPixmap(self._iconSize)
- painter = QPainter()
gradient = QLinearGradient(0, 0, 0, self._iconSize.height())
gradient.setColorAt(0.0, QColor(240, 240, 240))
@@ -162,63 +123,52 @@ class Window(QWidget):
brush = QBrush(gradient)
- # The original C++ code uses undocumented calls to get the names of the
- # different curve types. We do the Python equivalant (but without
- # cheating)
- curve_types = [(n, c) for n, c in QEasingCurve.__dict__.items()
- if (isinstance(c, QEasingCurve.Type)
- and c != QEasingCurve.Custom
- and c != QEasingCurve.NCurveTypes
- and c != QEasingCurve.TCBSpline)]
- curve_types.sort(key=lambda ct: ct[1])
-
- painter.begin(pix)
-
- for curve_name, curve_type in curve_types:
- painter.fillRect(QRect(QPoint(0, 0), self._iconSize), brush)
- curve = QEasingCurve(curve_type)
-
- painter.setPen(QColor(0, 0, 255, 64))
- x_axis = self._iconSize.height() / 1.5
- y_axis = self._iconSize.width() / 3.0
- painter.drawLine(0, x_axis, self._iconSize.width(), x_axis)
- painter.drawLine(y_axis, 0, y_axis, self._iconSize.height())
-
- curve_scale = self._iconSize.height() / 2.0
-
- painter.setPen(Qt.NoPen)
-
- # Start point.
- painter.setBrush(Qt.red)
- start = QPoint(y_axis,
- x_axis - curve_scale * curve.valueForProgress(0))
- painter.drawRect(start.x() - 1, start.y() - 1, 3, 3)
-
- # End point.
- painter.setBrush(Qt.blue)
- end = QPoint(y_axis + curve_scale,
- x_axis - curve_scale * curve.valueForProgress(1))
- painter.drawRect(end.x() - 1, end.y() - 1, 3, 3)
-
- curve_path = QPainterPath()
- curve_path.moveTo(QPointF(start))
- t = 0.0
- while t <= 1.0:
- to = QPointF(y_axis + curve_scale * t,
- x_axis - curve_scale * curve.valueForProgress(t))
- curve_path.lineTo(to)
- t += 1.0 / curve_scale
-
- painter.setRenderHint(QPainter.Antialiasing, True)
- painter.strokePath(curve_path, QColor(32, 32, 32))
- painter.setRenderHint(QPainter.Antialiasing, False)
-
- item = QListWidgetItem()
- item.setIcon(QIcon(pix))
- item.setText(curve_name)
- self._ui.easingCurvePicker.addItem(item)
-
- painter.end()
+ curve_types = [(f"QEasingCurve.{e.name}", e) for e in QEasingCurve.Type if e.value <= 40]
+
+ with QPainter(pix) as painter:
+
+ for curve_name, curve_type in curve_types:
+ painter.fillRect(QRect(QPoint(0, 0), self._iconSize), brush)
+ curve = QEasingCurve(curve_type)
+
+ painter.setPen(QColor(0, 0, 255, 64))
+ x_axis = self._iconSize.height() / 1.5
+ y_axis = self._iconSize.width() / 3.0
+ painter.drawLine(0, x_axis, self._iconSize.width(), x_axis)
+ painter.drawLine(y_axis, 0, y_axis, self._iconSize.height())
+
+ curve_scale = self._iconSize.height() / 2.0
+
+ painter.setPen(Qt.NoPen)
+
+ # Start point.
+ painter.setBrush(Qt.red)
+ start = QPoint(y_axis, x_axis - curve_scale * curve.valueForProgress(0))
+ painter.drawRect(start.x() - 1, start.y() - 1, 3, 3)
+
+ # End point.
+ painter.setBrush(Qt.blue)
+ end = QPoint(y_axis + curve_scale,
+ x_axis - curve_scale * curve.valueForProgress(1))
+ painter.drawRect(end.x() - 1, end.y() - 1, 3, 3)
+
+ curve_path = QPainterPath()
+ curve_path.moveTo(QPointF(start))
+ t = 0.0
+ while t <= 1.0:
+ to = QPointF(y_axis + curve_scale * t,
+ x_axis - curve_scale * curve.valueForProgress(t))
+ curve_path.lineTo(to)
+ t += 1.0 / curve_scale
+
+ painter.setRenderHint(QPainter.Antialiasing, True)
+ painter.strokePath(curve_path, QColor(32, 32, 32))
+ painter.setRenderHint(QPainter.Antialiasing, False)
+
+ item = QListWidgetItem()
+ item.setIcon(QIcon(pix))
+ item.setText(curve_name)
+ self._ui.easingCurvePicker.addItem(item)
def start_animation(self):
self._anim.setStartValue(QPointF(0, 0))
@@ -232,15 +182,15 @@ class Window(QWidget):
self._anim.setEasingCurve(curve_type)
self._anim.setCurrentTime(0)
- is_elastic = (curve_type >= QEasingCurve.InElastic
- and curve_type <= QEasingCurve.OutInElastic)
- is_bounce = (curve_type >= QEasingCurve.InBounce
- and curve_type <= QEasingCurve.OutInBounce)
+ is_elastic = (curve_type.value >= QEasingCurve.InElastic.value
+ and curve_type.value <= QEasingCurve.OutInElastic.value)
+ is_bounce = (curve_type.value >= QEasingCurve.InBounce.value
+ and curve_type.value <= QEasingCurve.OutInBounce.value)
self._ui.periodSpinBox.setEnabled(is_elastic)
self._ui.amplitudeSpinBox.setEnabled(is_elastic or is_bounce)
- self._ui.overshootSpinBox.setEnabled(curve_type >= QEasingCurve.InBack
- and curve_type <= QEasingCurve.OutInBack)
+ self._ui.overshootSpinBox.setEnabled(curve_type.value >= QEasingCurve.InBack.value
+ and curve_type.value <= QEasingCurve.OutInBack.value)
def path_changed(self, index):
self._anim.set_path_type(index)
diff --git a/examples/widgets/animation/easing/form.ui b/examples/widgets/animation/easing/form.ui
index 2397b1787..364aebeda 100644
--- a/examples/widgets/animation/easing/form.ui
+++ b/examples/widgets/animation/easing/form.ui
@@ -49,12 +49,27 @@
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QGroupBox" name="groupBox_2">
+ <property name="maximumSize">
+ <size>
+ <width>16777215</width>
+ <height>16777215</height>
+ </size>
+ </property>
<property name="title">
<string>Path type</string>
</property>
- <layout class="QVBoxLayout" name="verticalLayout_2">
- <item>
+ <layout class="QGridLayout" name="gridLayout_2">
+ <item row="0" column="0">
<widget class="QRadioButton" name="lineRadio">
+ <property name="maximumSize">
+ <size>
+ <width>16777215</width>
+ <height>40</height>
+ </size>
+ </property>
+ <property name="layoutDirection">
+ <enum>Qt::LeftToRight</enum>
+ </property>
<property name="text">
<string>Line</string>
</property>
@@ -62,17 +77,23 @@
<bool>true</bool>
</property>
<attribute name="buttonGroup">
- <string notr="true">buttonGroup</string>
+ <string>buttonGroup</string>
</attribute>
</widget>
</item>
- <item>
+ <item row="1" column="0">
<widget class="QRadioButton" name="circleRadio">
+ <property name="maximumSize">
+ <size>
+ <width>16777215</width>
+ <height>40</height>
+ </size>
+ </property>
<property name="text">
<string>Circle</string>
</property>
<attribute name="buttonGroup">
- <string notr="true">buttonGroup</string>
+ <string>buttonGroup</string>
</attribute>
</widget>
</item>
@@ -96,6 +117,18 @@
</property>
<item row="0" column="0">
<widget class="QLabel" name="label">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>30</height>
+ </size>
+ </property>
<property name="text">
<string>Period</string>
</property>
@@ -106,6 +139,18 @@
<property name="enabled">
<bool>false</bool>
</property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>30</height>
+ </size>
+ </property>
<property name="minimum">
<double>-1.000000000000000</double>
</property>
@@ -117,18 +162,17 @@
</property>
</widget>
</item>
- <item row="1" column="0">
- <widget class="QLabel" name="label_2">
- <property name="text">
- <string>Amplitude</string>
- </property>
- </widget>
- </item>
- <item row="1" column="1">
+ <item row="2" column="1">
<widget class="QDoubleSpinBox" name="amplitudeSpinBox">
<property name="enabled">
<bool>false</bool>
</property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>30</height>
+ </size>
+ </property>
<property name="minimum">
<double>-1.000000000000000</double>
</property>
@@ -140,18 +184,30 @@
</property>
</widget>
</item>
- <item row="2" column="0">
+ <item row="4" column="0">
<widget class="QLabel" name="label_3">
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>30</height>
+ </size>
+ </property>
<property name="text">
<string>Overshoot</string>
</property>
</widget>
</item>
- <item row="2" column="1">
+ <item row="4" column="1">
<widget class="QDoubleSpinBox" name="overshootSpinBox">
<property name="enabled">
<bool>false</bool>
</property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>30</height>
+ </size>
+ </property>
<property name="minimum">
<double>-1.000000000000000</double>
</property>
@@ -163,6 +219,19 @@
</property>
</widget>
</item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="label_2">
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>30</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>Amplitude</string>
+ </property>
+ </widget>
+ </item>
</layout>
</widget>
</item>
@@ -196,10 +265,6 @@
<resources/>
<connections/>
<buttongroups>
- <buttongroup name="buttonGroup">
- <property name="exclusive">
- <bool>true</bool>
- </property>
- </buttongroup>
+ <buttongroup name="buttonGroup"/>
</buttongroups>
</ui>
diff --git a/examples/widgets/animation/easing/images/qt-logo.png b/examples/widgets/animation/easing/images/qt-logo.png
deleted file mode 100644
index 14ddf2a02..000000000
--- a/examples/widgets/animation/easing/images/qt-logo.png
+++ /dev/null
Binary files differ
diff --git a/examples/widgets/animation/easing/ui_form.py b/examples/widgets/animation/easing/ui_form.py
index d7e79ebd2..2925cbae7 100644
--- a/examples/widgets/animation/easing/ui_form.py
+++ b/examples/widgets/animation/easing/ui_form.py
@@ -3,15 +3,22 @@
################################################################################
## Form generated from reading UI file 'form.ui'
##
-## Created by: Qt User Interface Compiler version 6.2.0
+## Created by: Qt User Interface Compiler version 6.7.0
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
-from PySide6.QtCore import *
-from PySide6.QtGui import *
-from PySide6.QtWidgets import *
-
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
+ QFont, QFontDatabase, QGradient, QIcon,
+ QImage, QKeySequence, QLinearGradient, QPainter,
+ QPalette, QPixmap, QRadialGradient, QTransform)
+from PySide6.QtWidgets import (QApplication, QButtonGroup, QDoubleSpinBox, QFormLayout,
+ QGraphicsView, QGridLayout, QGroupBox, QLabel,
+ QListView, QListWidget, QListWidgetItem, QRadioButton,
+ QSizePolicy, QSpacerItem, QVBoxLayout, QWidget)
class Ui_Form(object):
def setupUi(self, Form):
@@ -22,7 +29,7 @@ class Ui_Form(object):
self.gridLayout.setObjectName(u"gridLayout")
self.easingCurvePicker = QListWidget(Form)
self.easingCurvePicker.setObjectName(u"easingCurvePicker")
- sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred)
+ sizePolicy = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.easingCurvePicker.sizePolicy().hasHeightForWidth())
@@ -40,30 +47,33 @@ class Ui_Form(object):
self.verticalLayout.setObjectName(u"verticalLayout")
self.groupBox_2 = QGroupBox(Form)
self.groupBox_2.setObjectName(u"groupBox_2")
- self.verticalLayout_2 = QVBoxLayout(self.groupBox_2)
- self.verticalLayout_2.setObjectName(u"verticalLayout_2")
+ self.groupBox_2.setMaximumSize(QSize(16777215, 16777215))
+ self.gridLayout_2 = QGridLayout(self.groupBox_2)
+ self.gridLayout_2.setObjectName(u"gridLayout_2")
self.lineRadio = QRadioButton(self.groupBox_2)
self.buttonGroup = QButtonGroup(Form)
self.buttonGroup.setObjectName(u"buttonGroup")
- self.buttonGroup.setExclusive(True)
self.buttonGroup.addButton(self.lineRadio)
self.lineRadio.setObjectName(u"lineRadio")
+ self.lineRadio.setMaximumSize(QSize(16777215, 40))
+ self.lineRadio.setLayoutDirection(Qt.LeftToRight)
self.lineRadio.setChecked(True)
- self.verticalLayout_2.addWidget(self.lineRadio)
+ self.gridLayout_2.addWidget(self.lineRadio, 0, 0, 1, 1)
self.circleRadio = QRadioButton(self.groupBox_2)
self.buttonGroup.addButton(self.circleRadio)
self.circleRadio.setObjectName(u"circleRadio")
+ self.circleRadio.setMaximumSize(QSize(16777215, 40))
- self.verticalLayout_2.addWidget(self.circleRadio)
+ self.gridLayout_2.addWidget(self.circleRadio, 1, 0, 1, 1)
self.verticalLayout.addWidget(self.groupBox_2)
self.groupBox = QGroupBox(Form)
self.groupBox.setObjectName(u"groupBox")
- sizePolicy1 = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Preferred)
+ sizePolicy1 = QSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Preferred)
sizePolicy1.setHorizontalStretch(0)
sizePolicy1.setVerticalStretch(0)
sizePolicy1.setHeightForWidth(self.groupBox.sizePolicy().hasHeightForWidth())
@@ -73,50 +83,66 @@ class Ui_Form(object):
self.formLayout.setFieldGrowthPolicy(QFormLayout.AllNonFixedFieldsGrow)
self.label = QLabel(self.groupBox)
self.label.setObjectName(u"label")
+ sizePolicy2 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Preferred)
+ sizePolicy2.setHorizontalStretch(0)
+ sizePolicy2.setVerticalStretch(0)
+ sizePolicy2.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth())
+ self.label.setSizePolicy(sizePolicy2)
+ self.label.setMinimumSize(QSize(0, 30))
self.formLayout.setWidget(0, QFormLayout.LabelRole, self.label)
self.periodSpinBox = QDoubleSpinBox(self.groupBox)
self.periodSpinBox.setObjectName(u"periodSpinBox")
self.periodSpinBox.setEnabled(False)
+ sizePolicy3 = QSizePolicy(QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Fixed)
+ sizePolicy3.setHorizontalStretch(0)
+ sizePolicy3.setVerticalStretch(0)
+ sizePolicy3.setHeightForWidth(self.periodSpinBox.sizePolicy().hasHeightForWidth())
+ self.periodSpinBox.setSizePolicy(sizePolicy3)
+ self.periodSpinBox.setMinimumSize(QSize(0, 30))
self.periodSpinBox.setMinimum(-1.000000000000000)
self.periodSpinBox.setSingleStep(0.100000000000000)
self.periodSpinBox.setValue(-1.000000000000000)
self.formLayout.setWidget(0, QFormLayout.FieldRole, self.periodSpinBox)
- self.label_2 = QLabel(self.groupBox)
- self.label_2.setObjectName(u"label_2")
-
- self.formLayout.setWidget(1, QFormLayout.LabelRole, self.label_2)
-
self.amplitudeSpinBox = QDoubleSpinBox(self.groupBox)
self.amplitudeSpinBox.setObjectName(u"amplitudeSpinBox")
self.amplitudeSpinBox.setEnabled(False)
+ self.amplitudeSpinBox.setMinimumSize(QSize(0, 30))
self.amplitudeSpinBox.setMinimum(-1.000000000000000)
self.amplitudeSpinBox.setSingleStep(0.100000000000000)
self.amplitudeSpinBox.setValue(-1.000000000000000)
- self.formLayout.setWidget(1, QFormLayout.FieldRole, self.amplitudeSpinBox)
+ self.formLayout.setWidget(2, QFormLayout.FieldRole, self.amplitudeSpinBox)
self.label_3 = QLabel(self.groupBox)
self.label_3.setObjectName(u"label_3")
+ self.label_3.setMinimumSize(QSize(0, 30))
- self.formLayout.setWidget(2, QFormLayout.LabelRole, self.label_3)
+ self.formLayout.setWidget(4, QFormLayout.LabelRole, self.label_3)
self.overshootSpinBox = QDoubleSpinBox(self.groupBox)
self.overshootSpinBox.setObjectName(u"overshootSpinBox")
self.overshootSpinBox.setEnabled(False)
+ self.overshootSpinBox.setMinimumSize(QSize(0, 30))
self.overshootSpinBox.setMinimum(-1.000000000000000)
self.overshootSpinBox.setSingleStep(0.100000000000000)
self.overshootSpinBox.setValue(-1.000000000000000)
- self.formLayout.setWidget(2, QFormLayout.FieldRole, self.overshootSpinBox)
+ self.formLayout.setWidget(4, QFormLayout.FieldRole, self.overshootSpinBox)
+
+ self.label_2 = QLabel(self.groupBox)
+ self.label_2.setObjectName(u"label_2")
+ self.label_2.setMinimumSize(QSize(0, 30))
+
+ self.formLayout.setWidget(2, QFormLayout.LabelRole, self.label_2)
self.verticalLayout.addWidget(self.groupBox)
- self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding)
+ self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
self.verticalLayout.addItem(self.verticalSpacer)
@@ -125,11 +151,11 @@ class Ui_Form(object):
self.graphicsView = QGraphicsView(Form)
self.graphicsView.setObjectName(u"graphicsView")
- sizePolicy2 = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
- sizePolicy2.setHorizontalStretch(0)
- sizePolicy2.setVerticalStretch(0)
- sizePolicy2.setHeightForWidth(self.graphicsView.sizePolicy().hasHeightForWidth())
- self.graphicsView.setSizePolicy(sizePolicy2)
+ sizePolicy4 = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
+ sizePolicy4.setHorizontalStretch(0)
+ sizePolicy4.setVerticalStretch(0)
+ sizePolicy4.setHeightForWidth(self.graphicsView.sizePolicy().hasHeightForWidth())
+ self.graphicsView.setSizePolicy(sizePolicy4)
self.gridLayout.addWidget(self.graphicsView, 1, 1, 1, 1)
@@ -146,7 +172,7 @@ class Ui_Form(object):
self.circleRadio.setText(QCoreApplication.translate("Form", u"Circle", None))
self.groupBox.setTitle(QCoreApplication.translate("Form", u"Properties", None))
self.label.setText(QCoreApplication.translate("Form", u"Period", None))
- self.label_2.setText(QCoreApplication.translate("Form", u"Amplitude", None))
self.label_3.setText(QCoreApplication.translate("Form", u"Overshoot", None))
+ self.label_2.setText(QCoreApplication.translate("Form", u"Amplitude", None))
# retranslateUi
diff --git a/examples/widgets/animation/states/states.py b/examples/widgets/animation/states/states.py
index d134f29b6..509c3a7aa 100644
--- a/examples/widgets/animation/states/states.py
+++ b/examples/widgets/animation/states/states.py
@@ -1,44 +1,6 @@
-
-#############################################################################
-##
-## Copyright (C) 2010 Riverbank Computing Limited.
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2010 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
@@ -50,11 +12,11 @@ from PySide6.QtWidgets import (QApplication, QGraphicsLinearLayout,
QGraphicsObject, QGraphicsProxyWidget,
QGraphicsWidget, QGraphicsScene, QGraphicsView,
QGroupBox, QPushButton, QRadioButton,
- QTextEdit, QVBoxLayout, QWidget)
+ QTextEdit, QVBoxLayout)
from PySide6.QtStateMachine import QState, QStateMachine
-import states_rc
+import states_rc # noqa: F401
class Pixmap(QGraphicsObject):
diff --git a/examples/widgets/animation/states/states.pyproject b/examples/widgets/animation/states/states.pyproject
index d94cf2e65..45ad44e97 100644
--- a/examples/widgets/animation/states/states.pyproject
+++ b/examples/widgets/animation/states/states.pyproject
@@ -1,3 +1,3 @@
{
- "files": ["states.py", "states_rc.py"]
+ "files": ["states.py"]
}
diff --git a/examples/widgets/animation/states/states_rc.py b/examples/widgets/animation/states/states_rc.py
index 9f8241f60..8b87b5e5e 100644
--- a/examples/widgets/animation/states/states_rc.py
+++ b/examples/widgets/animation/states/states_rc.py
@@ -1,45 +1,6 @@
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
# Resource object code
#
diff --git a/examples/widgets/codeeditor/codeeditor.py b/examples/widgets/codeeditor/codeeditor.py
deleted file mode 100644
index f5f119000..000000000
--- a/examples/widgets/codeeditor/codeeditor.py
+++ /dev/null
@@ -1,141 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-from PySide6.QtCore import Slot, Qt, QRect, QSize
-from PySide6.QtGui import QColor, QPainter, QTextFormat
-from PySide6.QtWidgets import QPlainTextEdit, QWidget, QTextEdit
-
-
-class LineNumberArea(QWidget):
- def __init__(self, editor):
- QWidget.__init__(self, editor)
- self._code_editor = editor
-
- def sizeHint(self):
- return QSize(self._code_editor.line_number_area_width(), 0)
-
- def paintEvent(self, event):
- self._code_editor.lineNumberAreaPaintEvent(event)
-
-
-class CodeEditor(QPlainTextEdit):
- def __init__(self):
- super().__init__()
- self.line_number_area = LineNumberArea(self)
-
- self.blockCountChanged[int].connect(self.update_line_number_area_width)
- self.updateRequest[QRect, int].connect(self.update_line_number_area)
- self.cursorPositionChanged.connect(self.highlight_current_line)
-
- self.update_line_number_area_width(0)
- self.highlight_current_line()
-
- def line_number_area_width(self):
- digits = 1
- max_num = max(1, self.blockCount())
- while max_num >= 10:
- max_num *= 0.1
- digits += 1
-
- space = 3 + self.fontMetrics().horizontalAdvance('9') * digits
- return space
-
- def resizeEvent(self, e):
- super().resizeEvent(e)
- cr = self.contentsRect()
- width = self.line_number_area_width()
- rect = QRect(cr.left(), cr.top(), width, cr.height())
- self.line_number_area.setGeometry(rect)
-
- def lineNumberAreaPaintEvent(self, event):
- painter = QPainter(self.line_number_area)
- painter.fillRect(event.rect(), Qt.lightGray)
- block = self.firstVisibleBlock()
- block_number = block.blockNumber()
- offset = self.contentOffset()
- top = self.blockBoundingGeometry(block).translated(offset).top()
- bottom = top + self.blockBoundingRect(block).height()
-
- while block.isValid() and top <= event.rect().bottom():
- if block.isVisible() and bottom >= event.rect().top():
- number = str(block_number + 1)
- painter.setPen(Qt.black)
- width = self.line_number_area.width()
- height = self.fontMetrics().height()
- painter.drawText(0, top, width, height, Qt.AlignRight, number)
-
- block = block.next()
- top = bottom
- bottom = top + self.blockBoundingRect(block).height()
- block_number += 1
-
- @Slot()
- def update_line_number_area_width(self, newBlockCount):
- self.setViewportMargins(self.line_number_area_width(), 0, 0, 0)
-
- @Slot()
- def update_line_number_area(self, rect, dy):
- if dy:
- self.line_number_area.scroll(0, dy)
- else:
- width = self.line_number_area.width()
- self.line_number_area.update(0, rect.y(), width, rect.height())
-
- if rect.contains(self.viewport().rect()):
- self.update_line_number_area_width(0)
-
- @Slot()
- def highlight_current_line(self):
- extra_selections = []
-
- if not self.isReadOnly():
- selection = QTextEdit.ExtraSelection()
-
- line_color = QColor(Qt.yellow).lighter(160)
- selection.format.setBackground(line_color)
-
- selection.format.setProperty(QTextFormat.FullWidthSelection, True)
-
- selection.cursor = self.textCursor()
- selection.cursor.clearSelection()
-
- extra_selections.append(selection)
-
- self.setExtraSelections(extra_selections)
diff --git a/examples/widgets/codeeditor/codeeditor.pyproject b/examples/widgets/codeeditor/codeeditor.pyproject
deleted file mode 100644
index f51cfc6d2..000000000
--- a/examples/widgets/codeeditor/codeeditor.pyproject
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "files": ["codeeditor.py", "main.py"]
-}
diff --git a/examples/widgets/codeeditor/doc/codeeditor.png b/examples/widgets/codeeditor/doc/codeeditor.png
deleted file mode 100644
index e3def6b04..000000000
--- a/examples/widgets/codeeditor/doc/codeeditor.png
+++ /dev/null
Binary files differ
diff --git a/examples/widgets/codeeditor/doc/codeeditor.rst b/examples/widgets/codeeditor/doc/codeeditor.rst
deleted file mode 100644
index 16345eaa3..000000000
--- a/examples/widgets/codeeditor/doc/codeeditor.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-Code Editor Example
-===================
-
-The Code Editor example shows how to create a simple editor that has line
-numbers and that highlights the current line.
-
-.. image:: painter.png
- :width: 400
- :alt: Code Editor Screenshot
diff --git a/examples/widgets/codeeditor/main.py b/examples/widgets/codeeditor/main.py
deleted file mode 100644
index 0a89160bf..000000000
--- a/examples/widgets/codeeditor/main.py
+++ /dev/null
@@ -1,52 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-import sys
-from PySide6.QtWidgets import QApplication
-from codeeditor import CodeEditor
-
-"""PySide6 port of the widgets/codeeditor example from Qt5"""
-
-if __name__ == "__main__":
- app = QApplication([])
- editor = CodeEditor()
- editor.setWindowTitle("Code Editor Example")
- editor.show()
- sys.exit(app.exec())
diff --git a/examples/widgets/desktop/screenshot/doc/screenshot.png b/examples/widgets/desktop/screenshot/doc/screenshot.png
new file mode 100644
index 000000000..4e2b78083
--- /dev/null
+++ b/examples/widgets/desktop/screenshot/doc/screenshot.png
Binary files differ
diff --git a/examples/widgets/desktop/screenshot/doc/screenshot.rst b/examples/widgets/desktop/screenshot/doc/screenshot.rst
new file mode 100644
index 000000000..48f00b67b
--- /dev/null
+++ b/examples/widgets/desktop/screenshot/doc/screenshot.rst
@@ -0,0 +1,8 @@
+Screenshot Example
+==================
+
+The Screenshot example shows how to take a screenshot of the desktop.
+
+.. image:: screenshot.png
+ :width: 373
+ :alt: Screenshot program screenshot
diff --git a/examples/widgets/desktop/screenshot/screenshot.py b/examples/widgets/desktop/screenshot/screenshot.py
new file mode 100644
index 000000000..a5688da7a
--- /dev/null
+++ b/examples/widgets/desktop/screenshot/screenshot.py
@@ -0,0 +1,156 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the widgets/desktop/screenshot example from Qt v6.x"""
+
+import sys
+
+from PySide6.QtCore import (QDir, QPoint, QRect, QStandardPaths, Qt, QTimer,
+ Slot)
+from PySide6.QtGui import QGuiApplication, QImageWriter
+from PySide6.QtWidgets import (QApplication, QCheckBox, QDialog, QFileDialog,
+ QGridLayout, QGroupBox, QHBoxLayout, QLabel,
+ QMessageBox, QPushButton, QSizePolicy, QSpinBox,
+ QVBoxLayout, QWidget)
+
+
+class Screenshot(QWidget):
+ def __init__(self):
+ super().__init__()
+
+ self.screenshot_label = QLabel(self)
+
+ self.screenshot_label.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
+ self.screenshot_label.setAlignment(Qt.AlignCenter)
+
+ screen_geometry: QRect = self.screen().geometry()
+ self.screenshot_label.setMinimumSize(
+ screen_geometry.width() / 8, screen_geometry.height() / 8
+ )
+
+ main_layout = QVBoxLayout(self)
+ main_layout.addWidget(self.screenshot_label)
+
+ options_group_box = QGroupBox("Options", self)
+ self.delay_spinbox = QSpinBox(options_group_box)
+ self.delay_spinbox.setSuffix(" s")
+ self.delay_spinbox.setMaximum(60)
+
+ self.delay_spinbox.valueChanged.connect(self.update_checkbox)
+
+ self.hide_this_window_checkbox = QCheckBox("Hide This Window", options_group_box)
+
+ options_group_box_layout = QGridLayout(options_group_box)
+ options_group_box_layout.addWidget(QLabel("Screenshot Delay:", self), 0, 0)
+ options_group_box_layout.addWidget(self.delay_spinbox, 0, 1)
+ options_group_box_layout.addWidget(self.hide_this_window_checkbox, 1, 0, 1, 2)
+
+ main_layout.addWidget(options_group_box)
+
+ buttons_layout = QHBoxLayout()
+ self.new_screenshot_button = QPushButton("New Screenshot", self)
+ self.new_screenshot_button.clicked.connect(self.new_screenshot)
+ buttons_layout.addWidget(self.new_screenshot_button)
+ save_screenshot_button = QPushButton("Save Screenshot", self)
+ save_screenshot_button.clicked.connect(self.save_screenshot)
+ buttons_layout.addWidget(save_screenshot_button)
+ quit_screenshot_button = QPushButton("Quit", self)
+ quit_screenshot_button.setShortcut(Qt.CTRL | Qt.Key_Q)
+ quit_screenshot_button.clicked.connect(self.close)
+ buttons_layout.addWidget(quit_screenshot_button)
+ buttons_layout.addStretch()
+ main_layout.addLayout(buttons_layout)
+
+ self.shoot_screen()
+ self.delay_spinbox.setValue(5)
+
+ self.setWindowTitle("Screenshot")
+ self.resize(300, 200)
+
+ def resizeEvent(self, event):
+ scaled_size = self.original_pixmap.size()
+ scaled_size.scale(self.screenshot_label.size(), Qt.KeepAspectRatio)
+ if scaled_size != self.screenshot_label.pixmap().size():
+ self.update_screenshot_label()
+
+ @Slot()
+ def new_screenshot(self):
+ if self.hide_this_window_checkbox.isChecked():
+ self.hide()
+ self.new_screenshot_button.setDisabled(True)
+
+ QTimer.singleShot(self.delay_spinbox.value() * 1000, self.shoot_screen)
+
+ @Slot()
+ def save_screenshot(self):
+ fmt = "png" # In order to avoid shadowing built-in format
+ initial_path = QStandardPaths.writableLocation(QStandardPaths.PicturesLocation)
+ if not initial_path:
+ initial_path = QDir.currentPath()
+ initial_path += f"/untitled.{fmt}"
+
+ fileDialog = QFileDialog(self, "Save As", initial_path)
+ fileDialog.setAcceptMode(QFileDialog.AcceptSave)
+ fileDialog.setFileMode(QFileDialog.AnyFile)
+ fileDialog.setDirectory(initial_path)
+ mime_types = []
+
+ for bf in QImageWriter.supportedMimeTypes():
+ mime_types.append(bf.data().decode("utf8"))
+ fileDialog.setMimeTypeFilters(mime_types)
+ fileDialog.selectMimeTypeFilter("image/" + fmt)
+ fileDialog.setDefaultSuffix(fmt)
+ if fileDialog.exec() != QDialog.Accepted:
+ return
+
+ file_name = fileDialog.selectedFiles()[0]
+ if not self.original_pixmap.save(file_name):
+ path = QDir.toNativeSeparators(file_name)
+ QMessageBox.warning(
+ self,
+ "Save Error",
+ f"The image could not be saved to {path}.",
+ )
+
+ def shoot_screen(self):
+ screen = QGuiApplication.primaryScreen()
+ window = self.windowHandle()
+ if window:
+ screen = window.screen()
+ if not screen:
+ return
+
+ if self.delay_spinbox.value() != 0:
+ QApplication.beep()
+
+ self.original_pixmap = screen.grabWindow(0)
+ self.update_screenshot_label()
+
+ self.new_screenshot_button.setDisabled(False)
+ if self.hide_this_window_checkbox.isChecked():
+ self.show()
+
+ @Slot()
+ def update_checkbox(self):
+ if self.delay_spinbox.value() == 0:
+ self.hide_this_window_checkbox.setDisabled(True)
+ self.hide_this_window_checkbox.setChecked(False)
+ else:
+ self.hide_this_window_checkbox.setDisabled(False)
+
+ def update_screenshot_label(self):
+ self.screenshot_label.setPixmap(
+ self.original_pixmap.scaled(
+ self.screenshot_label.size(),
+ Qt.KeepAspectRatio,
+ Qt.SmoothTransformation,
+ )
+ )
+
+
+if __name__ == "__main__":
+ app = QApplication(sys.argv)
+ screenshot = Screenshot()
+ screenshot.move(screenshot.screen().availableGeometry().topLeft() + QPoint(20, 20))
+ screenshot.show()
+ sys.exit(app.exec())
diff --git a/examples/widgets/desktop/screenshot/screenshot.pyproject b/examples/widgets/desktop/screenshot/screenshot.pyproject
new file mode 100644
index 000000000..d4bdb4d76
--- /dev/null
+++ b/examples/widgets/desktop/screenshot/screenshot.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["screenshot.py"]
+}
diff --git a/examples/widgets/systray/images/bad.png b/examples/widgets/desktop/systray/images/bad.png
index c8701a241..c8701a241 100644
--- a/examples/widgets/systray/images/bad.png
+++ b/examples/widgets/desktop/systray/images/bad.png
Binary files differ
diff --git a/examples/widgets/systray/images/heart.png b/examples/widgets/desktop/systray/images/heart.png
index cee1302b7..cee1302b7 100644
--- a/examples/widgets/systray/images/heart.png
+++ b/examples/widgets/desktop/systray/images/heart.png
Binary files differ
diff --git a/examples/widgets/systray/images/trash.png b/examples/widgets/desktop/systray/images/trash.png
index 4c24db926..4c24db926 100644
--- a/examples/widgets/systray/images/trash.png
+++ b/examples/widgets/desktop/systray/images/trash.png
Binary files differ
diff --git a/examples/widgets/desktop/systray/main.py b/examples/widgets/desktop/systray/main.py
new file mode 100644
index 000000000..c52c51387
--- /dev/null
+++ b/examples/widgets/desktop/systray/main.py
@@ -0,0 +1,21 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from PySide6.QtWidgets import QApplication, QMessageBox, QSystemTrayIcon
+
+from window import Window
+
+if __name__ == "__main__":
+ app = QApplication()
+
+ if not QSystemTrayIcon.isSystemTrayAvailable():
+ QMessageBox.critical(None, "Systray", "I couldn't detect any system tray on this system.")
+ sys.exit(1)
+
+ QApplication.setQuitOnLastWindowClosed(False)
+
+ window = Window()
+ window.show()
+ sys.exit(app.exec())
diff --git a/examples/widgets/desktop/systray/rc_systray.py b/examples/widgets/desktop/systray/rc_systray.py
new file mode 100644
index 000000000..9a6dec317
--- /dev/null
+++ b/examples/widgets/desktop/systray/rc_systray.py
@@ -0,0 +1,2581 @@
+# Resource object code (Python 3)
+# Created by: object code
+# Created by: The Resource Compiler for Qt version 6.2.2
+# WARNING! All changes made in this file will be lost!
+
+from PySide6 import QtCore
+
+qt_resource_data = b"\
+\x00\x00d\xb4\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x02\xe8\x00\x00\x02\xe8\x08\x06\x00\x00\x00*Z\x00\x90\
+\x00\x00\x00\x01sRGB\x00\xae\xce\x1c\xe9\x00\x00\x00\
+\x09pHYs\x00\x00\x0d\xd7\x00\x00\x0d\xd7\x01B(\
+\x9bx\x00\x00\x00\x07tIME\x07\xdc\x03\x09\x08\x1e\
+4hf\xd9|\x00\x00\x00\x06bKGD\x00\xff\x00\
+\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00d4IDATx\
+\xda\xec\x9d\x07\xb8U\xc5\xb9\xbf\xf7i\x1c\x0e\xe7\xd0\xcb\
+\x01Tz\x95\xa6 \xbd\x8b\x14E@\x10Q\x14\xa4\x05\
+\x14\x14\x14AAD\xaaT\xe9\xe7h\xd4\xab&\xc6$\
+\xb6\xc4DM\xa2&\x1a{\x895\xb1w\x05\xd9k\xa7\
+\xdc\x14M\x8c\xc66\xf7\x1b\xf6J\x82W\x84\xb5\xf6\xd9\
+k\xd6\xac\xb5\xdf\xf7y\xde\xe7\xb9\xf7\x7f\xff\xf7F\xcf\
+\x9e\xf9\xe6\xb7g\xcf|\x93H\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00@.Q(\xd6um\x22\xb6\x12;\x8a=\xc4\
+>\xe2q\xe2(\xf1x\xf7\xbf\xd6\xf6u\xff\xe7\xda\xa3\
+\xdc\xff\x9dz\xee\xff-\x00\x80\xaaRM\xac\xef\xd6\x96\
+\xee\xfb\xd5\x9b~\xfb\xd5\xa1\xd1\xe2\x08\xf7\xbf\xee\xed\xfe\
+\xcf\xdb\xbb\xff;\x8d\xf7\xabk\xf9\xfc9\x01\x00\xc0\x06\
+j\x8a\xdd\xc4\x93\xc4\x05\xe2*\xb1B\xfc\x81x\x8f\xf8\
+\x94\xf8\x8e\xf8\x81\xa8\xb2\xec?\xc5\xdf\x8bo\x8a\x0f\x8a\
+7\x89;\xc5\xe5\xe2,q\x8c\xbb\x90\xd6\xe3c\x02\xc8\
+)\x1a\x89\xbd\xc4\xb1\xe2\x1cq\x85[\x97n\x13\x1f\x16\
+\xdf\x12\xff(~\x1c@]\xfa\x8b[\x93~#\xfeB\
+\xfc\xbe[\x97V\x8a\xe7\xbau\xa9\x93X\x83\x8f\x09\x00\
+\x00\xaaB\xb3Dz\xf7h\xb6\xb8^\xbc\xd9]|\xfe\
+\x14\xc0\xe2\x16\x94\x1f\x8a/\x88w\x8a\xbb\xc4\x0b\xc4\x13\
+\xc4\xe6|\xbc\x00\x91C\xefT\xb7\x16\xc7\x89\x17\x8aW\
+\x88?\x17_\x16?\x8aP]J\x89\x8f\xbb\x1b\x1ak\
+\xc5\x99\xe2\xb1\x89\xf4/\x8c\x00\x00\x00\xfb\xa8\x9eH\xef\
+8\xebEB\xef\xf8<\x90H\xef\x06\xa9\x98\xfb\x81\xbb\
+H^\x93H\xff\x0a\xa0\x7f\xc6\xae\xc3p\x00\xb0\x82\x86\
+\x89\xf4\xd1\xb7E\xe2\xf5\x89\xf4\xafr\xff\xc8\x81\xba\xa4\
+w\xf8\x7f%^.N\x15\xbb\x8aE\x0c\x07\x00\x80x\
+\x93\x97H\xff\xcc\xaaw\xc5\xbf#\xbe$~\x96\x03\x8b\
+\x9eW\xbf\x14_\x17otC\xbb>\x0b_\xca\xb0\x01\
+\x08\x94Z\xe2 q\xb1x\x8b\xf8.\xb5\xe8+\xfeK\
+|\xde\xddL\x98&\xb6e\xc8\x00\x00D\x1b}\x09J\
+\x9f}\xdc(>\x9a#;PA\xf8\xb6x\xb5x\xa6\
+x\x04\xc3\x0a\xa0J\xb4H\xa4\xcf\x88\x7f\xcf\x9d[\xd4\
+\x18\xff\xfe\xdd\xad\xe9\x1b\xdd\x1a\xcf\xaf\x7f\x00\x00\x16\xa3\
+;\x13\xe8\xb3\x8c\x9b\xc5\xa7\x13\xec\x8e\x07\xe1\xe7\xe2\xb3\
+\x89\xf4O\xd0\xfaXLu\x86\x1d\xc0A)sC\xa4\
+\xbe\xb0\xa9\x7f\xb5\xfb\x92:\x92u?\x11\x1fK\xa4\xcf\
+\xb4\xeb_\xfe\x0a\x18v\x00\x00\xe1\xa2\xcf\x8f/I\xa4\
+\xcf-\x06\xd1\x9d\x00\x0f\x1d\xd8\x9fqw\xb2t`\xa7\
+\x15$\xb0Q\x90\x9e\x0b\x1b\xdd\xb9\xf1\x05u\xc2\xb8\x1f\
+\xb9k\xc2y\x09.\xc5\x03\x00\x18A\x9f#\xd7\xad\xc4\
+6\x89/\xb2\x10Y\xe7\x1eq\x878 A\x7fd\xc8\
+\x1d\x0a\xddP~U\x22\xdd\x06\x95Z`\x8f_\xb8_\
+\x94V\x8b]\x18\xaa\x00\x00\xd9\xe5\x98D\xfa\xe8\x0a\x17\
+\xa8\xa2\xa3#V\x8aC\x13\xfc\xe4\x0c\xf1C\xef\x94\xeb\
+\x07\xc6\xae\x15\xff\x97\xf9\x1e\x19_u\xc3z'\x860\
+\x00@f\xe8\x17\xee\xf4\xcf\xc4\x5c\xa4\x8aG\xfb4\x1d\
+\xd6\xf5\xf9\xd0<\x866D\x14\xfd\xab\xd0\xb0D\xba\xf5\
+\xe1\xdf\x98\xd7\x91W\xf7\x90\xd7\x8f)udh\x03\x00\
+\x1c\x9c\x96\x89\xf4E\x9f7Y<b\xab~\xd1pM\
+\x22\xfdl8@\x148J\xdc\x22\xeee\xfe\xc6V}\
+d\xf2\xe2\x04\x0f&\x01\x00\xfc\x07\xfd\x10\xc5\xc9\xe2=\
+\x09.T\xe5\x9a\x0f\x89\x93\xc5b\xa6\x01X\x86~\x03\
+@?`\xf64\xf34\xa7\xd4\xdd\xbfnO\xa4\x8f/\
+q\x8f\x06\x00r\x12\xfdl\xf5\x86D\xfa\xe9g\x16\x86\
+\xdc\xf6O\x89t\xeb\xc6vL\x0b\x08\x99n\xe2\x15\x09\
+\x8e\xb0`\x22\xf1\x9ex\xa9x\x18\xd3\x02\x00\xe2\x8e>\
+\x7f<R\xfce\x82\xddr<\xf0k\xa6\xf7\x8b'\xb2\
+{\x05\x06\xd1]XN\x13\x9fd\x0eb\xe2\xc0\xbb\xea\
+?\x15\x072U\x00 n\xe8\x07m\xbe\x95H?\xd4\
+A\xc1G/\xea{\x08\x0b\xc4\x9aL\x1f\x08\x88\xda\xe2\
+bq7\xf3\x0d=\xaa\x8f<\xe9cyEL\x1f\x00\
+\x882\x8d\xc4U\xe2\x1f(\xec\x98\xa1\x1f$\xd2\xbd\xd5\
+[3\x9d K\xe8\xcb\xe8\xdb\xc5\x0f\x99_\x98\xa1\xfa\
+\xcd\x87\x0b\xc5:L'\x00\x88\x12\xba\xc7\xec\xff$x\
+\xdd\x13\xb3\xfb3\xf3\xf7\x12\x9cS\x87\xcc\xd1\xddX\xf4\
+\x05\xc0/\x99O\x98%\xf5\x97\xbc\x9db+\xa6\x17\x00\
+\xd8\x1e\xccoc\x01\xc4\x00\xfd\x5c\xfc~\x82\xde\xc5\xe0\
+\x9d\x1e\xe2\x1d\xd4%\x0cx\x03A\xf7\xc7o\xc1t\x03\
+\x00\x9bh\xeb\x86&.~\xa2\xc9'\xbco\x22\xa8\xc3\
+A\xe8%\xfe\x8c\xb9\x82\x06\xfd\x97\xf8m\xf1p\xa6\x1f\
+\x00\x84\x89\xde-\xb8\xce\xdd=\xa08cX;\xea\xdf\
+\x11\x9b1\x1d\xc1E\x7fi\xe3(\x0b\x86\xa9>\xde\xa9\
+\xef\xce\x943\x1d\x01\xc0$\xba\xe8\x5c\xe1\xee\x16P\x8c\
+\xd1\x06?I\xa4/\xfe5dz\xe6,\xfaK\xda\xf5\
+\xee\x976\xe6\x04\xda\xe0?\xc4\x8d\x89t\xc7 \x00\x80\
+\xc0\xa8\x96H\xb7%\xe3\x11\x0f\xb4\xf9\xd2\xd6j\xb1\x8c\
+\xe9\x9a3\xd4w\xbf\x9c}\xc2\xf8GK\xfd\xbd8[\
+,`\xba\x02@\xb6\x19\x9fH\xf7\xa6\xa6\xd8b\x14\xdc\
++NI\xa4\x1f\xc7\x82x\xa2\x1f\x18:G\xfc3\xe3\
+\x1d#\xe2\xef\xc4c\x99\xba\x00\x90\x0dtk\xb2_S\
+X1\xa2>&\x1e\xc34\x8e\x1dC\xc5\x17\x18\xdf\x18\
+Q\xf5\xcb\xa4m\x99\xc6\x00\x90\x09\xfa\x9c\xb9\xeeeN\
+g\x16\x8cC\xc7\x17}\x99\xb91\xd3:\xf2\xe8~\xd3\
+\xb71\xa61\x06\xea;\x5c[\x13<v\x04\x00\x1e\xd1\
+G\x02\xe6\x88\x7f\xa5\x80\x1e\xda\xeab;\xb1\xaf8F\
+\x9c.^ ^&^)\xde*\xde\xe3\xfa+\xf1\x09\
+\xd7\xe7\xc4W\x0f\xe2\xf3\xe2\xc3\xe2\xcf\xc5[\xc4k\xc4\
+m\xe2\x12q\x968\xce\xfd\xcf\xd4\xff\xd9\xf5\xf8\x1c\xbc\
+\xfa\x17qV\x82c/QD\x1fg\xd1/7~\xc4\
+8>\xb82\xb8U\x03\xb1\xbd8@\x9c \xce\x16\x97\
+\x89\xdb\xc5k\xdd\x9ar\xb7\xf8\xa8[k\x0eV\x8b\x9e\
+\xd9\xafn\xdd\xbb_=\xbbI\xbcB\x5c+.\x14\xcf\
+\x14O\x10\xfb\x88\xad\xc5b>\x0b\xaf:\xe2D\xa68\
+\x00\x1c\x0c\xa9\xe9\x89\x87(\x98_\xb5\x898D\x9c!\
+\xaep\xc3\xf2/\xc4\x17D\xc7\x12\xdf\x16\xef\x17\xaf\x17\
+W\xba_\x14\x06\x89\x87\xf1\xf9\x1d\xc8\x07\x12\xfc\xbc\x1c\
+%\xba\x8b\xcf1n\xffk\xbe\xd8L<V\x9c)\xae\
+\x11o\x10\xa5x\xabw-\xaaK:\xfc\xdf%~[\
+\xbcD\x9c&\x0e\x14\x1b\xf2\x19\x1eH\xfd\x98\x16\xfd\xd3\
+\x01\xe0+\x14\x89\xcb\x13\xe9\xde\xad9[ k\x89=\
+\xc5\xa9\xe2z\xf1vw\x07\xc9\x89\xb8o\xb8_(v\
+\x8as\xc5\xfe\xee\xbfk\x8e/\x86z\xac/\x13\x8b\x99\
+\xfe\xd6R*^\x9e\xc8\xf1w\x16\xf4/d\x83\xc5s\
+\xdd_\xe5~\xe9~!\x8fz]z\xd1\xfd\x85Q\x7f\
+\xb98]<Z,\xa5.}\x90H_|\xceg\xfa\
+\x03@\x1f\xf1\xc5\x5c,\x86\xfag\xd8\xc9\xe2\x0e\xf1\xf1\
+\x18,x~L\xba\xff\xceW\x89g\x89\xdd\xc4\x82\xdc\
+\x5c\x10_Np\x89\xd4F$\x93&\xde\xc9\xb5\xf1X\
+\xe4n\x12\xcc\x17\xaf\x13\x9f\xca\xc1\xba\xa4\x7f\x05\x90o\
+ej\xa2xDn_n\xefD\x19\x00\xc8MJ\xc4\
+\x9d\x89\x1c\xb9\x04\xaa\xc3\xe7Q\xeeY\xcck-;\x9e\
+b\x8b\xaf\x8b\xdf\x13\xe7\x89\xdd\xc5\xc2\xdcY\x0c\xf5\x0e\
+\xed*\xf7\x97$\x08\xbf.m\xcb\x95\xbaTM\xec\xed\
+\x9e\xe1\xbe%&;\xe3\xd9\xf6Y\xf7\x97\x83\xe9bG\
+\xf7\x8c}\x8e\xd4\xa5\x7fQ\x97\x00r\x8f\xfe\xe2\xbbq\
+/p\x87\xbb\x17*Y\xf82\xf3\x1d\xf7ow\x8e\xd8\
+57\x16\xc6\x97\xc4\x1e\x94\x87\xd0\x18\x12\xf7\xba\x94\xef\
+\xee\x90_\xe2^\xb4|\x9f:\xe3\xdb7\xdd\xf3\xf6S\
+\xdc\xfbA\x89\xdc\xa8K])\x0f\x00\xf1F\x9fk\xd3\
+/\x81\xc6\xf2\xc5=\xbd\xf8\x1d\xe3v:\xb9\xd7\xfd\xb9\
+\x94\x05-{\xea.\x0e\x17\xbb\xbfD\xc48\xac\xeb\xb3\
+\xe9\x92\x9fx\xf1\xcf \xfao\xbd2\x11\xd3\xb3\xe6\x05\
+ng\x93\x95n\xf7&jI\xf6\xd4_p\xee\x14\xcf\
+\x17\xbb\xc4;\xa4\xff=\x91\xee@\x05\x001\xe40\xf1\
+Wq,^G\xb9\x8b\xdf\xb3,XF\x7fv^\xe7\
+\xb6q\x8b\xe9Q\x98\x07\x13tT0\xc1\x11\xe2\xc3q\
+\x1b?\xfa\xe8\xcapq\xab{\x19\x92\x9aa\xc6\xc7\xdd\
+\x0d\x9a\x0e\xf1\x0d\xea\xfa\x0d\x80z\x94\x0d\x80\xf80A\
+\xfc\xdf8\x15\xaa\x0en!~\x9cE)t\x7f\xe7\xf6\
+B>:~\x8b\xa1\x9e3\xe3(\x1f\x811^\xfcs\
+\x9c~\xc1\xeb\xeb^p|\x95\xba\x10\xba\xbf\x16\xcf\x13\
+[\xc4\xaf.\xbd\x9fH\xbf\xa4\x0b\x00\x11\xa6\x9axe\
+\x5c\x0aSC\xf7<\xf4\x83,>\xd6\xfa\x98\xb8(^\
+gC\xbf\x14+\x13\x5c\xd4\xca&\xa5q\xaaK-\xdd\
+3\xe5O3\xff\xad\xf5\x1e\xb7_|\xedx\xbd\x8e\xbc\
+:A;F\x80H\xa2\x7f\x9e\x7f\x22\x0e\xbbR\x83\xdc\
+\xc7\x81v\xb3\xd0D\xeal\xa8\xbe\xc8u\x5c|\xda7\
+\xea\xc7\x8d\xca)+U\xa6\x83\xf8j\xd4\xc7\x83n\x87\
+8\xd6\xed\xe3\xcd]\x97h]|\xd7\xefA\xf4\x8aO\
+P\xff\x99X\x97\xb2\x02\x10\x1d\x86\x88\x7f\x88r\xe1)\
+w{\x01?\xc1\xa2\x12y\xf5\xce\xe2\x05\xf1\xd8U\xdf\
++\xf6\xa3\xbcd\x8c>\xd2\xf2a\xd4w\xcb\x97\xd3\xa6\
+5\x16>\xe8\xb6\xdd\xad\x1b\xfd\xba\xf4\x96\xd8\x8d\xf2\x02\
+`7\xfa\xe7\xae\x8d\x89\xf4\xcf\xf2\x91,6\xc7\xb8;\
+\xaf{\xa3\xfc\xd8Fa\xa1J\xd5\xae\xadRM\x9b*\
+\xa7m[\xe5t\xeb\xa6\x92\xfd\xfa)g\xc4\x08\xe5\x8c\
+\x1b\x97v\xd2$\xe5L\x9e\xac\x9c)S\x943k\xd6\
+\xd7L\x9dqF\xfa\x7f\xae=\xe9$\xe5\x8c\x1c\xa9\x9c\
+\xc1\x83\x95\xd3\xab\x97r\xbavM\xff\xdfm\xdcX9\
+\xc5\xc5\x91\xf9\xbb\xecu?\xdb\x81\xd1^\x0c?O\xa4\
+{\x13\xf3\xd3\xb2w\xf4\xf1\xa0\xab\xa3\xfa\x99\xe7\xb9\x17\
+>\x7fJ\xa8\x8d\xa5\xbb\xdd]\xf5\x88_,\xd5\x9d\xd9\
+\xce\xa3\xd4\x00\xd8IM\xf1\xd6\xa8\x16\x18}\x8c\xe5\xe6\
+\x08\x05p\xa7\xbc\x5c9G\x1e\xa9\x9cA\x83\x943~\
+\xbcrf\xcfV\xce\xd2\xa5\xca\xd9\xb2E9W\x5ca\
+\xd4\xe4\xd6\xad\xcaY\xbe\x5c9\xf3\xe7+g\xeaT\xe5\
+\x8c\x1a\xa5\x9c\x1e=\x94\xd3\xac\x99rJJ\xac\xfc\x1b\
+\xea\xb0s\xbc{\x84)\xa2c\xf6\x87b\x0d\xca\xce!\
+\xd1\x1d'\xee\x8e\xe2g\xac\x8f\xb1\x9c,\xfe\x92\x10\x9b\
+\x13\xea\x0d\x84\xeb\xdcM\xa2\x08\x07\xf5+\x12\xe9\xbbg\
+\x00`\x09m\xc4W\xa2VLt{>\xfd\x9c\xf3}\
+6\x17\xee:u\x94\xd3\xa9\xd3\xbe\xdd\xef\xd4\xcc\x99\xfb\
+\x82p\xaa\xa2\xc2x\x08\xaf\x92\x1b7*\xe7\xfc\xf3\xd3\
+\xbb\xf6\xfd\xfb+\xa7E\x0b\x95\xaaV\xcd\x8a\xbf\xef\xc3\
+n\x08\x8a\xe89\xf5g\x13\xb4b<\x18\xfa\xbc\xf9\x9b\
+Q\xfb\x5c\xab\xb9\xafVr\xe93w\xd5\xbd\xd5GE\
+\xf7\xbd\x87\xc7\xc5\xc6\x94\x1f\x80\xf0\xd1\xaf\x82\xfe)J\
+\x05D\xef\x9a\x8e\x17\x1f\xb5\xad0\x97\x95)\xa7sg\
+\xe5\x8c\x19\xa3\x9c\x05\x0b\x94\xb3ys\xb4\x82\xb8\x1f+\
++\x95\xb3b\xc5\xbe\x1d\xf7}\xc7o\xf4q\x99\xbc\xbc\
+P\xbb\xbfL\x8afOu\xf9\xc7O\xf4\xa2\x0c}\x8d\
+\x91\xe2_\xa3\xf4Y\x16\xbb\x9d>xL\x08\xff\xed/\
+\xdd\xe3M\x11\x0c\xe9\xef\x89\x9d)C\x00\xe1qZ\x22\
+\xfd\xf2ad\xcer\x9e\xe0\xf6\xa7\xb5\xa1\xf8\xa6\x9a4\
+Q\xa9\x81\x03URBjj\xe5\xca\xf8\x86q\xaf\xea\
+/$g\x9f\xad\x9ca\xc3\x94s\xc4\x11\xa1\x04v\xdd\
+\xd7\xfe\xa4\xe8\x1d}\xd1s\xf0t\xca\xd1\x7f\xd0ga\
+?\x8f\xd2Q\x96\xa9\xe2\xf3\x04R\xfc\x06\x7f\xe6\x1e\xc3\
+\x8cXH\xff\x9b8\x9cr\x04`\x1e\xfd\x1cyd.\
+\x83\xeav{\xf7\x86]h\xf5\xb1\x8e\xae]UJ_\
+\xbc\x5c\xbb\x96@\xee%\xb0\x7f\xeb[\xca\x91/1N\
+\xc3\x86F?+}\xeciX\xf4\xfa\xa5_\x9a\xe35\
+I_\x9c\xad\x88\xd2\x86\xc18\xf7\xd7\x1bB(z\xf1\
+v\xb1w\xb4\xea\xd2\xa7\xe2l\xe2\x12\x80\x19tG\x84\
+\xeb\xa3R \x8et{\x05\x87VT\x1b4H\xef\x08\
+\xcf\x9f\xafR;w\x12\xba\xab\xa2\xbe\x88:f\x8cJ\
+\xea\xcb\xa7\x86v\xd7\x7f\x12\xbd\x17J\xf5\xa3F\x059\
+X\x97\x8a\xc5\x9b\xa3\xf29\x0d\xe0\xf2'V\xc1\xeb\xa2\
+\xf7B\xa9\xee\xee\x96G|\x02\x08\x8e:\xe2\xfdQ(\
+\x08\xfa\xd5\xcf\xcb\xdd\x07kB\xb9\xd8y\xec\xb1\xca\xb9\
+\xf0BBuP^v\x99rN9E9-[\x06\
+\x1e\xd6\xf5C0\x15\xd1\xea\xa3~\xbbX\x92cu\xe9\
+\x81(|6\xba\x8f\xf9w\x09\x98\x98\xa5\xf6\x8c\x97\x8a\
+\xb5\xa2S\x97n\xcd\xb1\xba\x04`\x8c\xfa\x89t\xd7\x08\
+\xeb; \x9c#\xben\xba\xf5\xa1\xbe\xe0\xa9[\x1e.\
+\x5c\x98\xbe\x00I\x886fj\xf5j\xe5\x8c\x1e\xad\x9c\
+F\x8d\x02\xfd\x8c\xdf\x16\x17\x89%\xd1X\x0c\x1fM\xa4\
+[\x0c\xc6\x1d\xdd\xc5\xe6\x05\xdb?\x0f\x1d\xa2V\xf1\x1a\
+1\x06\xe0\x8b\xe2\x99\xd1\xe9D\xa5\xebRm\xe2\x14@\
+\xf6h\x22\xbeh\xfb\xe4\x1f->i\xb28\xe6\xe7\xa7\
+[ \xce\x99\xa3\x9c]\xbb\x08\xcb6\x84\xf5\x0b/\xdc\
+w\xf16\xc8\xfe\xebOG\xa7\xb3\xc2+\xee\xdc\x8d+\
+\xed\xc5\xf7m\xff\x1c\xc6\xf3\xf2'\x1a\xf0~\xf7\xe8T\
+\x04\xea\xd23b\x03b\x15@\xd5i+\xee\xb6\xfdg\
+\xe3\x1f\x9b\xec\xbe\xa2_\xe8<\xe5\x14\x95\xd2\xfd\xbd\x09\
+\xc5v\xaa\xcf\xfb\xebWQ\xbbtI\x7f\x91\x0a`\x1c\
+\xdc&\xb6\x8aF\xbb\xb3\xd61\xacK=\xc5\xbf\xd8\xfc\
+\xb7o\xcf\xeb\x9f\x18\x82\xfa\xb5\xe4\xc6\xf6\xd7\xa5\xd7\xc4\
+#\x88W\x00U\xdb\xa1\xdac\xeb$\xd7]\x10\xce\x10\
+_3Q\xf8\xf49\xe7\xce\x9dU\xea\x9cs8\xc2\x12\
+\xb5]\xf5K/U\xa9\xc1\x83\xd3]t\xb2<.\xde\
+\x10g\xd9\xdf\x96\xf1\x1d\xb1e\x8c\xea\xd2Q\xe2\x1fm\
+\xfd{\xeb\xb6\x89\xe7\x89\xef\x10\x161$\x7f'\x8e\xb5\
+?\xa4\xbfAH\x07\xc8\x8cn\xe2\x1fl\x9d\xdc-\xdc\
+\x1dL#\xad\x11\x87\x0eU\xce\x9a5\x84\xdd\x88\x9b\xdc\
+\xba5\xfd\xcbG\xbdzY\x1f'\xfa\x17\x9c\xe6v/\
+\x86\xfa\x8bv;v\xce\x83\xef\x1aEw\x16\xb4\xc5\xef\
+\x88\xe5\xfc\xc2\x07\x10+\xfa\xd8\xba\x08\xea\x9d\xca\xb3\xdc\
+\x0b{\x81\x16\xb7\x1a5Tj\xe4H\x95\xda\xb0\x81p\
+\x1b\xb7\x1d\xf5\x9d;U\xea\x8c3T2\xcb\x97J\xdf\
+\x12g\xd8\xfd<\xb7~u4\xca\xaf\xfb\x0d\x10?\xb0\
+u\xd7\xfc\x02.\x81\xa2\x85\xea_\x98O\xb5;\xa4'\
+\xc5\x0e\xc4.\x80C\xd3[\xfc\xd0\xc6\x89\xdc\xd8DO\
+\xf3\x9a5\x953a\x82r\xb6m#\xcc\xc6\xdd\x8a\x0a\
+\x95\x9c>]9M\x9adu\x0c\xfd\xc8\xee\xdd\xf4?\
+\x89]\x22X\x97\x06\x89\x1f\xb1k\x8e\x98\x99\xd7\x88u\
+\xec\xadK\xef\xc7\xec\x18\x1e@ \xc7Z\xac\xdc9\xd7\
+\x1dZ^\x09\xb2\x80\xd5\xae\xad\x1c\xfd\xc2'\x8f\x09\xe5\
+\xa6\xfa!)\xddS=K\xe3\xe9M\xbbw\xad~\x9f\
+H\xdf/a\xd3\xa0\x8aw`\xcef\xd7\x1c#\xe4\xb3\
+b\x7f\xbb\xef\xca\x1cN\x0c\x03\xf8:G\x8b\x7f\xb5m\
+\xd2\xd6\x16\xaf\x0e\xb2h\xe9v|'\x9e\x98>\x9fL\
+P\xcdm++UJw~i\xd80\xabg@\xeb\
+\xda\xb9\x18\xea\xfb%GF\xe4X\xcb?l\xfc5\xef\
+G\x04>\x8c\xa0\xfa\xe1\xb5\xcd\xf6\xbe\xe7\xa0;\xc65\
+'\x8e\x01\xfc\x97\x16\x09\x0b\xfb\x09\xeb'\xd6\x1f\x0b\xaa\
+P\x15\x15)g\xe4H\xe5l\xd9B0\xc5\xaf\xaa{\
+\xdaO\x9a\x94>\xee\x94\x85\xb1\xa6{\xf3w\xb7\xf7\x82\
+V3\x8b\xebRg\xf7H\x8eU\x7f\xb7\xc1\xe2o\x09\
+z\x18q\xef\x16[\xdbY\x97\xf4\xc3c\xf5\x89e\x00\
+\x89DS\xf1-\xdb&\xe9\xb7\x82\xfa\xe9X\xb7K\xec\
+\xd1C9k\xd7\x12D\xf1\xd0]_\x8e?>\xfde\
+.\x0b\xcfr\xcf\xb0\xb7\x1f\xb1\x8d\x8f\x86\xb4J\xa4/\
+\xb5ZuA}\xb1\xbb\x03I\xc0\xc38\xa8\x9b-L\
+\xb0\xb3.=\x9d\xe0\xc5Q\xc8q\xf4\xc2\xfc\xb2M\x13\
+\xb3\x86xeP\x05\xa9M\x1b\xe5,]J\xf8D\x7f\
+]_\xd6\xafWN\xef\xde\xe9/wU\x1c\x83;\xc5\
+b\xfb\x16\xc3\xdf\x88\xa5\x16\xd5\xa5\x86\x89t\x8fdk\
+\xfeF\xb5\xc4\xef\x11\xe80\xa6^\xe6v\x22\xb2\xac.\
+=jY]\x020F\x89\xf8\x84M\x13\xb2\xa5\xfb\x5c\
+q\x10\x17@\x93S\xa7\xf2\xc0\x10V\xcdy\xf3\xb2r\
+>\xfd^\xf1p\xfb\x16\xc3_\x88E\x16\xd4\xa52\xf1\
+)\x9b\xfe6\x1d\xc4\xc7\x09q\x18s\xef\xb0\xb3g\xfa\
+\x9db\x01q\x0dr\x89|\xf1v\x9b&\xe2\x88 ^\
+\x04\xd5;\x9e\x83\x06)\x87\x0b\xa0\x98\xc5\x1e\xea\xce\xe8\
+\xd1*YXX\xa5\xb1\xf9\x92x\xac}\x8b\xe1\x0db\
+^\x88uI\x7fA\xb8\xc7\xa6\xbf\xc9x\xb7#\x0f\x01\
+\x0esA}\xb7\xa2\x8f}u\xa9\x92\xc8\x06\xb9\xc4v\
+\x9b&\xe0\x1cqo\xb6\x8bM\xf3\xe6\xcaY\xb6\x8cP\
+\x89\xc1\xb8f\x8dJv\xe8P\xa51\xfa\xbe8\xcb\xbe\
+\xc5pc\x88u\xe9\x06[\xfe\x0e\xba\x85\xe2E\x9c7\
+\xc7\x1c\xf4=\xf1d\xfb\xea\xd2\x22b\x1b\xe4\x02\x17\xda\
+2\xe9\xf4\x99\xb7\xed\xd9.0\xc5\xc5\xe9\xe7\xdc+*\
+\x08\x91\x18\xbc\xba-cYY\x95\xc6\xecv\xfb\xce\x7f\
+\x9e\x13B]Ze\xcb\xbf\x7fM\xf1\xfb\x045\xccq\
+\xd7\xb8\x17\xa3-\x99\x97_\x8aS\x89o\x10g\xc6\x89\
+\x9f\xdb0\xe1\xca\xc4\x1b\xb3\x5cP\xf4C3\xa9K/\
+%4\xa2Y/\xbb\xac\xca\xbb\xe9?\x10K\xedY\x0c\
+\xff%\x0e1X\x97&\x88_\xd8\xf0\xef^_\xbc\x8b\
+p\x86\xb8\xcf]vm\x1e\xfcS\xecG\x8c\x838\xd2\
+_\xfc\xd8\x86\x89v\x84\xf8`6\x0b\x89>\x0f|\xca\
+)\x5c\x02\xc5p\x9d6-\xfd\x0bN\x86\xe3\xf8\x01\xb1\
+\xa9=\x8b\xe1\x07\x89t\x1f\xf2\xa0\xe9kK]\xd2=\
+\xa1\x7fC(C\xfc\x8a?\x13\x1b\xdaS\x97\xfe&v\
+!\xceA\x9c\xd0\xcf\xe7\xa6l\x98`\x9d\xc4\xe7\xb2Y\
+@\x1a5R\xceE\x17\x11\x0e\xd1\x9a\xb3\xe9N\xabV\
+\x19\x8f\xe7'\xdcnF\x96,\x86\xaf\x8au\x02\xacK\
+\xfa\x0d\x86\xbd6\xfc\xbbv\x14\x9f'\x8c!\x1e\xd0G\
+\xc4\x16\xf6\xd4\xa5\xd7\x03\xaeK\x00\xc6(NX\xd2N\
+\xf1\x98lwj\xe9\xde]9\x97_N(\xc4\xc0^\
+\x14Mm\xd8\xa0\x9c\xe5\xcbUr\xe1B\xe5\xcc\x99\xa3\
+\x9c3\xceP\xa9\xf1\xe3\x953n\xdc\xben.\xa9\x11\
+#\x943|\xb8r\x06\x0c\xf8\xaf\x03\x07\xaaT\xf5\xea\
+\x19\x8f\xeb\x17\xedzy\xf4\xdeD0m\xcet\x9b\xd7\
+gl\xf8w\xec\x1bD\x07)\xc4\x98\xa9\xbf\xc0\xb6\xb3\
+\xa7.\xdd\x95Hw\xa3\x03\x884\xdf\xb6aB\xf5\xcf\
+f\xbb2\xfd\xb2\xe3\x94)\x04H\xac\x9a[\xb6\xec{\
+\xb8*5{\xb6rt\xe8\x96`\xed\x1cy\xa4J6\
+jT\xa5\x80\x9d\x0d\xdf\xb0\xab\xdd\xd9\xfa\x00\xea\x92\x15\
+\x1d[F\x89\xef\x12\xbe\x10=\xb7\x87\xedlO]Z\
+A\xbc\x83(s\xb6\x0d\x13\xe9\x04\xf7\xa9\xf3\xac\x14\x89\
+\x06\x0d\x94s\xf1\xc5\x84K\xf4\xd7\xbb\x5c\xbf \xab\x1f\
+\xab\x1a6L9\xed\xdbW\xb9\xf3\x8a\xa9vg#\xed\
+Y\x0c'e\xb1.\x9do\xc3\xbf\xd3\xa9n\xabK\x82\
+\x17\xa2w\xdf\x12\x07\xd8\xd3\xd9\xe5db\x1eD\x11\x99\
+C\x89O\xc3\x9eD\xa7ds\x11\xec\xd4\x89#-x\
+\xf00\xae\xdbk\xea0~\xea\xa9\xca\xe9\xd5K9M\
+\x9a\xa8d~~d\x17\xc3\xdd\xee\x17\x5c\x0b\x16\xc3\xbf\
+\x8b\x9d\xb2P\x97\x06\x89\x9f\x85\xfd\xef3\x83\x1e\xe7\x88\
+\x19\xfb\xb68\xc4\x8e\xba\xf4\xa1\xd8\x91\xb8\x07Q\xa2\xbe\
+\xf8^\xd8\x93G\xbf\xc2\xb7'[/\x82\x8e\x1eM\x97\
+\x16\xfc\xba\xfa\x0b\xdb\xd9g+g\xe4H\xe5\xb4m[\
+\xa5.*6\x87\xf4\xe3\xedX\x0c_\x14K\xabP\x97\
+\x1a\x89\xef\x87\xfd\xef1%\x88\x87\xd1\x10s\xccw\xec\
+y\x0d\xf9y\xb1\x06\xb1\x0f\xa2\x80\xbe\xd0uo\xd8\x93\
+fL\xb6v\xcek\xd4P\xce\xbcy\x04QL\xab\xbf\
+\xa4\xe9\x1d\xf2\xb1c\x95\xd3\xba\xb5r\x22\xbc;\xee7\
+\xa4\x8f\xb2c1\xfca\x86uI_\xe8\xba/\xec\x7f\
+\xfe\xa9\xec\x9c#f\xb5.\x1dgG]\xfa\x1e\xd1\x0f\
+\xa2\xc0\xea\xb0'\xcb\xf0l\x9d9\xaf_\x9f\x87\x87P\
+9\xdb\xb6)\xe7[\xdfRN\xdf\xbe*U\xbbvN\
+/\x86\x96\xecX\xcd\xcc\xa0.-\x0f\xfb\x9f{\x12;\
+\xe7\x88\x81\xec\xa4\xf7\xb7\xa3.\xcd&\xfe\x81\xcd\xf4\x0b\
+\xfb|\xe7`\xf7r[\x95'~\x9b6\xca\xd9\xbc\x99\
+p\x9a\xa3&\xb7nM?\xfc\xa3_\xe8\xcc\x91]r\
+\xaf\x8b\xa1\x05\x17\xb4\xfe!\xb6\xf7Q\x97\x06\x86]\x97\
+\xc6r!\x141\xd0\xaeS\xdd\xed\xa8K\xed\x88\x81`\
+#\xb5\xc4\xb7\xc3\x9c }\xdc\xcb#U\x9e\xf0={\
+\xa6;o\x10Ts\xcb\xed\xdb\xd3\xa1\xbcK\x97t+\
+M\x16\xbeo\xec\xa2\xd0+\xfc\xc5\xf0\xb9D\xfa\x8d\x05\
+/\xf7a\xf6\x84\xf9\xcf:\x22\x9b]\xa4\x10\xf1\x80\xbe\
+*\x1e\x19~]zZ,\x22\x0e\x82m|7\xcc\x89\
+\xd1\xc3\xfd\x16]\xe5\x89>t(\x97As\xad\xf3\xca\
+\x8a\x15\xfb\xda\x1f&#\xd0\xfa\xd0\xa6\xc5\xb0C\xf8\x8b\
+\xe1\xb6C\xd4\xa4<\xf1\xce0\xff\x19{\xb9\xbf:0\
+f\x10\x83\xf7\x05\xb1u\xf8ui\x1dq\x10l\xe2\x94\
+0'D[70T\xb9S\xcb\x84\x09\x04\xd6\x5c\x09\
+\xe5;v(\xe7\xcc3UJ\x1feba\xcb\xc8\xe7\
+\xc4\xc3\xc2\xefC<\xea uiv\x98u\xa9}6\
+\xea\x12\x22\xfa\xf2\x19\xb1<\xdc\xba\xf4\xb9{\xac\x0e \
+tZ\x88\x7f\x0bk24I\xa4\x9f\x00\xaej8O\
+\x9dv\x1a\xc15\x17\x82\xb9\xbe\xf4;h\x90rJJ\
+X\xcc\xb2\xe0\xe3b\xa3p\x17\xc3?\x8a\xe5\x07\xa8K\
+m\xc4\x8f\xc2\xfa\xe7j)\xbe\xc8\xf8@\x0c\xc5\x07\xc5\
+Z\xe1\xd6\xa5\xbd\xee\xf1:\x80\xd0\xd0\xad\xcb\xee\x0fk\
+\x12T\x17\xef\xaa\xead.(P\xce\xcc\x99\x84\xd78\
+\xab\x1f\x0f\x9a5+\xdd\x16\x91\xc5+\xeb\xea9Xl\
+W\xebE}\xb4%\xb4\x96\x8ae\xe2\xfd\x8c\x0b\xc4P\
+\xbdA,\x08\xb7.\xddHD\x840Y\x10\xd6\xe0\x97\
+o\x06\xea\xea\xaaNb}\x11p\xee\x5c\x02l\x9c/\
+}\x9er\x8aJ6h\xc0\x82\x15\xb0W\x8ay\xe1.\
+\x86\xa7\xecW\x97\xe6\x86\xf5\xcf\xa1\x03\xc1\xf7\x18\x0f\x88\
+V\xb8.\xfc\xf3\xe8'\x12\x13!\x0c\x9a%\xd2\xcfo\
+\x872\xf0/\xa9\xe2\xc4M\x16\x16*\xe7\xac\xb3\x08\xb1\
+q\x0d\xe6'\x9d\xa4\x9cZ\xb5X\xa4\x0c\xba0\xdc\x85\
+\xf0Obc\xb1e\x98u\xe92\xc6\x01\xa2U~+\
+\xdc\xba\xa4;H\xd5\x22.\x82i~\x1e\xd6\xa0\x9f\x9c\
+\x8d\x9d\xf3\xf9\xf3\x09\xb2q\xbc\xf89n\x9crJK\
+Y\x98BP\xbf\x909&\xdc\xc5\xf0\x16\xf1\xd7a\xfd\
+\xe7\xcf`\x0c Z\xa7~\x7f`x\xb8u\xe9\x0a\xe2\
+\x22\x98\xe4\xf4\xb0\x06{\xf7\xaa>D\xa4\xcf\x9c\xb3s\
+\x1e\xaf`\xae{\xd6\xeb`^\xb3&\x0b\x92\x05\x0f\x19\
+u\x0e\xffge\xe3\x0e\xe4!\x22Dk}Ml\x11\
+^}\xf8\x22AW\x170\x84\xbe\x99\xfc\x870\x06z\
+\x03\xb7\x85R\x95Z)N\x99B\xa8\x8d\x93s\xe6(\
+\xa7qc\x16!\x8b|R\xac\x93C\xe1\x5c\xb7\x9a|\
+\x89\xcf\x1d\xd1j\xf5\xc5\xed\x1a\xe1\xd5\x09\xf9\x8e\x90\xa8\
+N|\x84\xa0\xf9a\x18\x03\xbc\xa8\xaa\x1d[t8\x9f\
+:\x95@\x1b\x17\x17-R\xc9f\xcdXx,\xf56\
+\xb10\x07\xc2y\x09\x1d[\x10#\xe3w\xc2\xbd\xcc~\
+9\xf1\x11\x82dxX\x0b\xe1\xa5U\x9d\x9c\xfa\x08\x04\
+\xc16\xfa\xc7Y6nTN\xff\xfe\xca\xc9\xcfg\xc1\
+\xb1\xdc\xc59\x10\xd07\xf39#ri\xd4\x9b\x9f\x8a\
+\xdd\x88\x91\x10\x04\xd5\xc4\xd7\xc3\x18\xd8c\xdc\x0bh\x19\
+O\xca\xa1C\x09\xb7q8g\xae;\xb3T\xaf\xce\x22\
+\x13\x11\xf7\x8aCb\x1c\xce'\xf1\x19#F\xce\xddb\
+\xef\xf0\xea\xc6#\x89\xf4;\x0d\x00YeQ\x18\x03\xba\
+\x8d\xf8fU&d\xaf^\xca\xa9\xac$\xe4F9\x9c\
+\x9f{\xaer\xea\xd7gq\x89\xa0\xbfK\x84\xfe\xd2h\
+`u\xe9->_\xc4H\xfa[\xb1<\xbc\xfaq\x1a\
+q\x12\xb2\x89\xac\xb1\x89\xbf\x85q\xee\xfc\xde\xaaL\xc4\
+v\xed\x94\xa3w^\x09\xb9\xd1\x0c\xe6\x9b6)\xa7{\
+w\x16\x94\x88{K\x22\xfd\xb0X\x5c\xc2y1\xe7\xce\
+\x11#\xef\x0f\xc3;\x8f\xbe[,!VB\xb6\xb8>\
+\x8c\x85peU&`y\xb9r6o&\xe8FQ\
+\xfd\x8b\xc7\xe4\xc9\xca\xa9Q\x83\x85$&.\x8aQ@\
+\xdf\xca\xe7\x89\x18\x0b\xe7\x86WG\xd6\x12+!\x1b\xe8\
+K\x0d\x9f\x9b\x1e\xc0}\xdd3\xac\x19M<\xfdP\xcd\
+\x8a\x15\x04\xdd(\xba~\xbdr\xbave\xf1\x88\x99{\
+\xc4\x1e1\x08\xe7#\xf8,\x11c\xe3\xbbb\x87pj\
+\xc9G\xe2\xe1\xc4K\xa8*\x0f\x98\x1e\xbc\xb5\xc4\xa73\
+\x9dt\xba\xbb\xc7\x82\x05\x04\xdd(:w\xaeJ\x96\x95\
+\xb1p\xc4\xd4G\xdd\xb6\x84Q\x0d\xe7\xf5\xdc\xb3\xab|\
+\x96\x88\xf1\xea\x8f^-\x9c\x9a\xf2\x03\xe2%T\x85\x93\
+\xc3X\x08\xaf\xac\xca\x84\x9b8\x91\xa0\x1b5\xb7mS\
+N\xef\xde,\x169\xe0\xba\x08\x07\xf4\xab\xf8\xfc\x10c\
+\xe9\xaapj\xca\x97b?b&dB\x91\xf8\x96\xe9\
+A{RU&Z\x9f>\x84\xdd\xa8]\x04]\xbc\x98\
+\x0e-9\xa4n\x97: \x82\xe1|\x1c\x9f\x1db\xac\
+\xebR\xffpj\xcb\x13DM\xc8\x849a\xfc\x84\xfc\
+b\xa6\x93\xacI\x93\xf4N,\xa17:N\x9a\xa4\x9c\
+\xa2\x22\x16\x88\x1cS\x1f_\xab\x19\xa1p\xae\xdb\xb1\xbd\
+\xcc\xe7\x86\x18k\x1f\x13\xab\x87Sc\xc6\x107\xc1\x0f\
+\xc5\xe2\x1e\xd3\x03uW\xa6\x93K\x9f[^\xbb\x96\xc0\
+\x1b\x15\xb7lQN\x97.,\x0a\x1cu\x89\x84\xd7\xf0\
+y!\xe6\x84\xcb\xc2\xa91\xcf%x\xbc\x08|0\xdf\
+\xf4 \x1dR\x95\x895g\x0e\xa17*\xae\x5c\xa9\x9c\
+\xa6MY\x0cr\x5c\xdd\xa1\xa9{\x04\xc2\xf9p>+\
+\xc4\x9c\xea6\xd5)\x9cZs2\xb1\x13\xbc\xa0\x1b\xe8\
+;&\x07g\x0d\xf17\x99N\xaa\xc1\x83\x09\xbdQq\
+\xe6L\xe5\x14\x17\xb3\x10\xe0\x7f\xba'\x14Y\x1c\xceK\
+\xab\xd2M\x0a\x11#\xe9\xddb\x81\xf9z\xf3\xa2\x98O\
+\xfc\x84C\xb1\xc8\xf4B\xb8*\xd3\xc9\xa4\x1f#\xda\xbe\
+\x9d\xe0\x1b\x85\x87\x87F\x8dRN^\x1e\x0b\x00~\xc5\
+s,\x0e\xe8\xab\xf9|\x10s\xd2\xb3\xc2\xa99\x93\x89\
+\x9fp0\xca\xc4?\x9a\x1c\x94G\x8a\xefg2\x89\x8a\
+\x8aT\xf2\x92K\x08\xbf\xb6\xbbu\xabr:v\xa4\xe8\
+\xe3\x01}Glna8\xef\x9ai]B\xc4\xc8\xfb\
+\x96\xd8\xc4|\xddyM, \x86\xc27\xb1\xd4\xf4B\
+\xf8\xa3L'\xd1\xf8\xf1\x84_\xdb\xbd\xec2\xce\x9b\xe3\
+!\xbd\xde\xb2p\x9e'\xde\xc5\xe7\x82\x98\xd3V\x86S\
+\x7f\xa6\x11C\xe1\x9b:\xb7\x18={>:\xc3\x89\x93\
+j\xd3F9\x15\x15\x04`\x9b\xfb\x9b\xafX\xa1\x9c\x06\
+\x0d(\xf4\xe8\xc9\x81\x16\x05\xf4\x09|\x1e\x88\xf4F\x17\
+{\x84\xb3\x8b\xceYt\xf8\x1a\xb3L\x0eD\xf96\xa0\
+\x9e\xcc$\x9cW\xaf\xae\x92\xb4T\xb4\xdb\xb9s\xb9\x0c\
+\x8a\xbe|@,\xb4 \x9c\xeb\x0b\xeb\xcf\xf1y \xa2\
+\xf8s1\xdf|\x1d\x1aK\x1c\x85\xfd\xd1=8_6\
+9\x08\xe7g:i&L \x00\xdb\xec\xacY*Y\
+XHqG\xdf\xce\xb0 \xa0/\xe1s@\xc4\xfd\x9c\
+d\xbe\x0e=L$\x85\xfd9\xd1\xe4\x00\xd4/\xf3\xbd\
+\x91\xc9di\xdd:\xdd\x11\x84 l\xef\xcb\xa0tj\
+\xc1\x0c\xd5\xafu\xd6\x0a1\x9c\xebKa\xef\xf29 \
+\xe2~>\xef\xb6\x5c5\x5c\x8fz\x11K\xe1\xdf<h\
+r\xf0m\xc9\xb0k\x8b\xa3\xcf5\x13\x84\xed\xf4\xe4\x93\
+\x09\xe7Xe/\x0a1\xa0o\xe1\xef\x8f\x88\x07\xf0B\
+\xf3\xf5\xe8Vb)hz\x9a\x1cx-\x12\xe9\xd7\xba\
+|O\x92\xd1\xa3\x09\xc1\xb6\xaa?\x1b\x8a8f\xc17\
+\xc5\x86!\x84\xf3\xd6\x99\xd6%D\x8c\xbd\xfa\x17\xffz\
+fk\xd2\xe7bK\xe2)\xdcjr!\xac\xc8d\x82\
+\x94\x97\xab\xd4\xce\x9d\x04a\x1b\x1d;\x96\x02\x8eYu\
+]\x08\x01\xfd\x1a\xfe\xee\x88x\x10\x97\x9b\xafK;\x89\
+\xa7\xb9M3\xf7\x9b\x9a\x91\x01\xd76\x91\xe1\xe3\x1f\xf3\
+\xe6\x11\x84\x09\xe7\x98#\xee\x16\x9b%\xcc>J\x94\xe4\
+\xef\x8e\x88\x89\x83?^d\xf8\xd7\xbd\xbf\x8b\xb5\x89\xa9\
+\xb9\xcbZ\x93\xdf\x08\xaf\xcd\xa4\xadb\xd7\xae\x04a\x1b\
+\xfb\x9c\x8f\x1bG\xd1\xc6\xc0\xdcn\xb0.}\x8f\xbf7\
+\x22\xda\xf9\xeb\xde\xb9\xc4\xd4\xdc\xa4HL\x99\x1ahG\
+e\xb0K\xa5\xdb\xf5\xa5V\xaf&\x10\xdb\xa6nuI\
+\xb1\xc6\x00\xd5\xbf\xb4\xb54P\x97\xba\xf1\xb7FDK\
+\x7f\xdd\x13_ \xaa\xe6&F[+^\x97\xc9\x848\
+\xf6X\xc2\xb0m\x9e~:\xddZ\xd0\x88\x1b\x0d\xd4\xa5\
+\xab\xf9;#\xa2\x0f\xd7\x9b\xdfE?\x86\xb8\x9a{\xdc\
+a\xb2C\xc2^\xbf\x13\xa1F\x0d\xe5l\xdeL \xb6\
+\xc99sT2?\x9f\x22\x8dF|\xcf\xedM\x1eT\
+]j\x97I]B\xc4\x9c\xf6\x1d\xb1\xbe\xd9\x80~5\
+q5\xb78L\xfc\xcc\xd4\x00\xdb\x94\xc9D\x988\x91\
+@l\x91\xc9\x85\x0b\xd3\xbd\xe8)\xd0h\xd0\xcb\x02\xac\
+KW\xf0\xf7E\xc4\x0c\x5cd6\xa0\x7f(\x96\x11[\
+s\x87U\xa6\x06W\xb9\xbb\x13\xe6k\x024h\xa0\x9c\
+]\xbb\x08\xc6\xb6\xb8l\x99r\xaaW\xa70c(\xbb\
+\xe8\xe5\x01\xd4\xa5V\xec\x9e#b\x86\xbe\x920\xfe\xba\
+\xe8\xd9\xc4\xd6\xdc\xa0@|\xdf\xd4\xc0\xba(\x93\x090\
+e\x0a\xa1\xd8\x16\xd7\xadS\xa9:u(\xca\x18\x9a\x17\
+'x5\x14\x11\xedr\x86\xd9\x80\xfe,\xd157\x18\
+ajPU\x17_\xf4;\xf0\xcb\xcb\x95SQA0\
+\xb6\xc1m\xdb\x94s\xc4\x11\x14c\x0c}\xb7\xaa,\x8b\
+u\xa9\x91\xf8.\x7fWD\xac\x82\x8f\x8a\xf9fCz\
+g\xe2k\xfc\xb9\xd1\xd4\x80\x9a\x91\xc9\xc0\x9f6\x8d`\
+lC\x9fs\xf9\x92\x94\xea\xd4\x89B\x8cVxN\x16\
+\xeb\xd2\xa5\xfc=\x111\x0b\x9eh6\xa0o$\xbe\xc6\
+\x9bb\xf1\xaf&\x06S\x9e\xf8\x88\xcf\xc1\x9el\xd4h\
+_0$ [\x10\xd0G\x8e\xa4\x00\xa35>'\x16\
+e\xa1.\xd5\x12_\xe3\xef\x89\x88Y\xf0'f\x03\xfa\
+\x9bD\xd8xs\x92\xa9\xc14$\x83\xc1\x9e\x9c>\x9d\
+plI;Ez\x9d\xa3mN\xcdB]:\x9f\xbf\
+#\x22f\xd1NfCzObl|\xf9\xbe\xa9\x81\
+tU&g\xcf++\x09\xc7a\xbbt)\xed\x14\xd1\
+J\x1f\xa9\xe2\x99\xcfb\xf1\xb7\xfc\x1d\x111\x8b\xae6\
+\x1b\xd07\x11c\xe3I\xa9\xf8\x91\x89A\xd4 \x91~\
+\x12\xd7\xcf O\x9dv\x1a\xe18l\xf5\xc3P\xf5\xeb\
+St\xd1Z\xc7\x9a\xbe\x13\x83\x88x\x10\xf5\x91\xb9\x12\
+s\x01}\x8f\x98G\x9c\x8d\x1f\x13M}\xcb\x9b\xe7\xf7\
+hKY\x99J\xed\xd8A@\x0e\xd3\x8a\x0a\x95\xec\xd0\
+\x81\x82\x8bV{\x9f{\xbf\xc5oM\xd2\xe7\xd7\x9f\xe1\
+\xef\x87\x88\x018\xc1\xec.z?\xe2l\xfc\xb8\xcd\xd4\
+\xe5\xd0G\xfd\x0ep}!\x91\x90\x1c\xae\xe3\xc6Qh\
+1\x12\x0e\xcd\xa0.M\xe4\xef\x86\x88\x01\xf9#\xb3\x01\
+}'q6^\x94\x88\xff01xz\xf9\x1d\xdcE\
+E*\xb5i\x13\x019\xcc\x8e-\x8b\x17\xabd~>\
+\x85\x16#\xe1-\x19l\x1a\xdc\xc7\xdf\x0d\x11\x032)\
+6\xe7\x98\x0bd\xc8\xf1\xa6\xbe\xddm\xf5;\xb8\x07\x0c\
+ $\x87\xe9\xd6\xad\xcai\xd0\x80\x22\x8b\x91\xb2\x9b\x8f\
+\x9at,\x7f/D\x0c\xd8\x0b\xcd\xee\xa2\x1fE\xac\x8d\
+\x0f\x15&\x06M\xb5Lz\x0c/[FH\x0eS\xfd\
+\x05\x89\xe2\x8a\x11\xf3z\x1fu\xe9g\xfc\xbd\x101`\
+\x9f\xc8\xf0~L\x86^B\xac\x8d\x0f\xef\x98\x184\xc3\
+\xfd\x0e\xea\x96-\x09\xc8a:s&\x85\x15#\xfb\x93\
+r{\x0f5\xa97\x7f+D\xb4\xf0\x97\xbd*\xfa\x08\
+\xb16\x1e\xb46\xf5\xb3\xcb\x0e\xbf\x03z\xca\x14Br\
+H&\xd7\xaeUNI\x09E\x15#\xeb\x16\x0f5\xe9\
+;\xfc\x9d\x10\xd1\x90\x97\x98\x0b\xe8\x9f\x8a\xb5\x88\xb7\xd1\
+g\x81\x89\x01S]|\xc3\xcf`..VI}\xfe\
+\x99\xb0\x1c\x8e]\xbbRP1\xd2\xea\xb7\x16\x0e?H\
+M\xea\xcc\xdf\x08\x11\x0d\xfa\x8c\xd9c.\x13\x89\xb7\xd1\
+\xe7\x17&\x06\xcb\xf1>\x07rj\xe0@BrXN\
+\x9fN1\xc5X\xb8\xe6 5\xe9\x0a\xfe>\x88h\xd8\
+\x1e\xe6\x02\xfa\xb5\xc4\xdbhSl\xaa\xbdb\xa5\xdf\x81\
+\xac\x9f\x94',\x9bw\xe3F\xe5\x94\x96RH1\x16\
+\xea_\xed\xea\x1c\xa0\x1e\x1d\x9e\xf0\xff\x9a1\x22bU\
+]a.\xa0\xef&\xe2F\x9b\xe1&\x06\x8a~\xa5\xef\
+u?\x83\xb8iS\x82rX\xf6\xe9C\x11\xc5X\xb9\
+\xf0\x005i-\x7f\x17D\x0c\xc1'\xcd\xb6[\xecD\
+\xcc\x8d.\x1bL\x0c\x92~~\x07\xf1I'\x11\x94\xc3\
+\xb8\x18z\xd6Y\x14P\x8c\x9d/\x8a%\xfb\xd5\xa3z\
+\xe2\xdb\xfc]\x101$[\x9b\x0b\xe8\xf3\x89\xb9\xd1\xe5\
+1\x13\x83\xe4R\xbf\xe7\xcfW\xaf&0\x9bv\xfbv\
+\xe5\xd4\xafO\xf1\xc4X:g\xbfz\xb4\x94\xbf\x07\x22\
+\x86\xe8Y\xe6\x02\xfa\xad\xc4\xdchR]\xfc\xc4\xc4 \
+\xf9\xb5\x9f\xc1\xdb\xa2\x05a9\x0cG\x8e\xa4pbl\
+}\xd6=jW\xcb\xefq;D\xc4,{\xb3\xb9\x80\
+\x9e$\xeaF\x93\xbe&\x06H\xe3D\xfa\xd1\x10\xcf\x83\
+w\xc2\x04\xc2\xb2i\xd7\xacQNQ\x11\x85\x13c\xed\
+Dw\xe7\x8a\xbf\x05\x22\x86\xe9;\x89t\xebiC!\
+\xbd9q7z,218N\xf33p\xf3\xf2\x94\
+\xb3n\x1d\x81\xd9\xf4\xd9\xf3\xee\xdd)\x9a\x18{\x1fp\
+w\xd2\xf9[ b\xd8\x1ek.\xa0O&\xeeF\x8f\
+\xdbM\x0c\x8ek\xfc\x0c\xdaV\xad\x08\xcc\xa6]\xb8\x90\
+b\x89\x88\x88h\xd0\xb5\xe6\x02z%q7z\xfc>\
+\xe8\x81Q \xbeF\xf7\x16{\xad\xacT\xa9\x96-)\
+\x96\x88\x88\x88\x06}\xc4\x5c@\x7f\x9e\xb8\x1b-\xda\x99\
+\x18\x18\x9d\xfc\x0e\xdaK.!4\x9b<\xda\xc2\x8b\xa1\
+\x88\x88\x88\xa1Xn&\xa0\x7f!\xd6!\xf6F\x87\xa9\
+&\x02\xfa4?\x83\xb5^=B\xb3AS;w\xaa\
+\x94\xfe\x9bS$\x11\x11\x11\x8d{\xbc\xb9]\xf4\xe1\xc4\
+\xde\xe8\xb0\xcd\xc4\xa0\xb8\xd2\xcf`\x1d0\x80\xe0lr\
+\xf7|\xd2$\x0a$\x22\x22bH\xae2\x17\xd0/\x22\
+\xf6F\x87_\x99\x18\x14O\xfb\x19\xacs\xe6\x10\x9c\x0d\
+>J\x94\xaa]\x9b\x02\x89\x88\x88\x18\x92?7\x17\xd0\
+o$\xf6rA\xf4?\x96\xfb\x19\xa8\x85\x85*\xb9u\
++\xc1\xd9\x94\xe3\xc7S\x1c\x11\x11\x11Ctw\xc2X\
+?t.\x8aF\x84\xc6&\xbe\xb1\x8d\xf53P\xdb\xb6\
+%4\x1b\xdc=O\xd6\xacIqDDD\x0c\xd9\xbe\
+f\x02\xfa\xa7b5\xe2\xaf\xfd\x1cg\x22\xa0\xaf\xf23\
+HO8\x81\xe0l\xca\xb1c)\x8a\x88\x88\x88\x168\
+\xcf\xdc1\x97N\xc4_\xfb1\xf2\x82\xe8m~\x06\xe9\
+\x82\x05\x04gC\xbb\xe7Ni)E\x11\x11\x11\xd1\x02\
+\xaf4\x17\xd0O'\xfe\xda\xcfwM\x0c\x86W<\x0e\
+\xced~~:8\x12\xa0\x83\xf7\xb4\xd3(\x88\x88\x88\
+\x88\x96\xf8\x80\xb9\x80\xbe\x81\xf8k?\xcfXuA\xf4\
+\x88#\x08\xce\x86^\x0du\x1a5\xa2 \x22\x22\x22Z\
+tQ\xb4\xc8L@\xbf\x8b\xf8k?\x7f\x0fz \x0c\
+\xf63@\x87\x0c!<\x9b\xe8{~\xd6Y\x14CD\
+DD\xcb\xech&\xa0\xbfE\xfc\xb5\x9b\x86&~J\
+\x99\xebgp\xce\x9cI\x806\xa1\xee\x94C!DD\
+D\xb4\xca\x93\xcdur) \x06\xdbKo\x13\x01\xbd\
+\xc2\xc7\xc0L\xae]Kx\x0e\xda\x8b/\xa6\x08\x22\x22\
+\x22Z\xe8rs\xe7\xd0\x9b\x13\x83\xed\xe5T\x13\x83\xe0\
+W^\x07\xa6\xee(B\x80\x0e\xde\xbe})\x82\x88\x88\
+\x88\x16\xfa}s\x01}\x101\xd8^\x96\x04=\x00\xf2\
+\xc4\xb7\xbd\x0e\xcc\xf6\xed\x09\xcfA{\xf9\xe5\xca)*\
+\xa2\x08\x22\x22\x22Z\xe8\x93\xe6\x02\xfa4b\xb0\xbd\x5c\
+\x1d\xf4\x00h\xe4g`\x0e\x1dJ\x80\x0e\xfar\xe8\xa4\
+I\x14@DDDK\xddc\xae\x93\xcb*b\xb0\xbd\
+\xdc\x1b\xf4\x00\xe8\xe1g`N\x99B\x88\x0e\xda\xc3\x0e\
+\xa3\x00\x22\x22\x22Zl33\x01\xfd\x06b\xb0\xbd\xbc\
+\x11\xf4\x008\xc9\xc7\x80L-YB\x80\x0e\xd2\x8b.\
+\xa2\xf0!\x22\x22Zn\x7f3\x01\xfd!b\xb0\x9d\xe4\
+\x89\x1f\x07=\x00\xce\xf5: \xf3\xf3Uj\xc7\x0eB\
+t\x90\xf6\xefO\xe1CDD\xb4\xdcS\xcd\x04\xf4\xf7\
+\x88\xc2vR\xd7\xc4%\x84M^\x07\xa4~\xd5\x92\x10\
+\x1d\x9c\xdb\xb7+\xa7\xa4\x84\xc2\x87\x88\x88h\xb9\x8b\xcd\
+\x04\xf4O\x88\xc2v\xd2\xc6D@\xbf\xc9\xeb\x80\xec\xd4\
+\x89\x10\x1d\xa4\xfa\x01(\x8a\x1e\x22\x22\xa2\xf5\xee2\xd7\
+\xc9\xa5\x8c8l\x1f}L|\xf8\x0f{=\x7f>x\
+0!:H\x8f:\x8a\xa2\x87\x88\x88\x18\x01\x7fd.\
+\xa0\xb7 \x0e\xdb\xc7\x89&>\xfc\x97\xbd\x0e\xc8\xf1\xe3\
+\x09\xd1A\xb9u+\xbd\xcf\x11\x11\x11#\xe2\x03\xe6\x02\
+\xfa1\xc4a\xfb\x98\x16\xf4\x07_ \xee\xf5\xba\x83>\
+{6A:(\xa7O\xa7\xe0!\x22\x22F\xc4\xdf\x9a\
+\x0b\xe8#\x89\xc3\xf6\xb1(\xe8\x0f\xbe\x9e\x9f\x01\xb9t\
+)A: S]\xbbR\xf0\x10\x11\x11#\xe2\xeeD\
+\xfa%v\x03\x01\xfd\x0c\xe2\xb0}\xac\x0f\xfa\x83o\xed\
+g@n\xdeL\x98\x0e\xc2-[T\xb2\xb0\x90\x82\x87\
+\x88\x88\x18!k\x99\x09\xe8\x0b\x88\xc3\xf6qu\xd0\x1f\
+|O\xaf\xc7[\xaaW'H\x07\xb5{N\xf7\x16D\
+D\xc4\xc8\xd9\xc2L@_M\x1c\xb6\x8f\xdb\x82\xfe\xe0\
+Gx\x1c\x84Iz\xa0\x07g\xcf\x9e\x14:DD\xc4\
+\x88y\xb4\x99\x80^A\x1c\xb6\x8f_\x04\xfd\xc1\x9f\xea\
+u \xb6lI\x90\x0e\xc2\xcaJ\xe5\x94\x95Q\xe8\x10\
+\x11\x11#\xe603\x01\xfdz\xe2\xb0}\xdc\x17\xf4\x07\
+?\xcb\xeb@\xec\xd2\x850\x1d\x84\x17^H\x91CD\
+D\x8c\xa0c\xcd\x04\xf4\x1f\x10\x87\xed\xe3\xe1\xa0?\xf8\
+y^\x07b\x9f>\x84\xe9 \x1c=\x9a\x22\x87\x88\x88\
+\x18A'\x9a\x09\xe8\xb7\x11\x87\xed\xe37A\x7f\xf0\xe7\
+y\x1d\x88\xc3\x86\x11\xa6\x83\xb8 \xaa\x8f\x0eQ\xe4\x10\
+\x11\x11#\xe7\xe9f\x02\xfa\x9d\xc4a\xfbx>\xe8\x0f\
+~\xb1\xd7\x818v,\x81:\xdb\xea\xb6\x95\xf9\xf9\x14\
+9DD\xc4\x08:\xc3L@\xbf\x978l\x1f/\x07\
+\xfd\xc1/\xf3:\x10O?\x9d@\x9dm\xe7\xcc\xa1\xc0\
+!\x22\x22F\xd49f\x02\xfa\x03\xc4a\xfbx+\xe8\
+\x0f~\x95\xc7A\xb8\xafW7\xa1:\xab&\x8f;\x8e\
+\x02\x87\x88\x88\x18Q\xcf5\x13\xd0\x1f'\x0e\xdb\xc7\x9e\
+\xa0?\xf8u^\x07\xa2\xde\xed%Ts\xfe\x1c\x11\x11\
+\x11\xf7y\x81\x99\x80\xfe\x0cq\xd8>RA\x7f\xf0\x97\
+{\x1d\x88s\xe7\x12\xaa\xb3\xe9\xf6\xed\xca)(\xa0\xc0\
+!\x22\x22F\xd4%f\x02\xfa\x0b\xc4a\xfbp\x82\xfe\
+\xe07{=\xe22\x7f>\xa1:\x9b\xc7[\x16.\xa4\
+\xb8!\x22\x22F\xd8\x0b\xcd\x04\xf4\xdf\x12\x87s\xf0\x88\
+\xcbz\xaf\x03Q\x07J\x82u\xf6\x8e\xb7\x8c\x1bGq\
+CDD\xe4\x88\x0bG\x5c\x22\xc8;A\x7f\xf0k\xbd\
+\x0e\xc4\xc5\x8b\x09\xd6\xd9\x0c\xe8]\xbbR\xdc\x10\x11\x11\
+#\xec\x023\x01\xfd\x09\xe2\xb0}\xbc\x11\xf4\x07\xbf\xd2\
+\xeb@\x5c\xba\x94`\x9dMk\xd7\xa6\xb8!\x22\x22F\
+\xd8yf\x02\xfa#\xc4a\xfbx%\xe8\x0f~\xb9\xd7\
+\x81\xb8l\x19\xa1:\x9b\x0f\x14Q\xd8\x10\x11\x11\xe9\x83\
+\x9e\xa0\x0fz\x14y1\xe8\x0f~);\xe8\xe6=\xef\
+<\x0a\x1b\x22\x22b\xc4\x9di&\xa0\xff\x928l\x1f\
+\xcf\x07\xfd\xc1/\xf6:\x10/\xba\x88`\x9d-O9\
+\x85\xc2\x86\x88\x88\x18q\xcf4\x13\xd0\x7fA\x1c\xb6\x8f\
+\xa7\x83\xfe\xe0/\xf0\xdaf\x91K\xa2\xd9k\xb1\xd8\xaf\
+\x1f\x85\x0d\x11\x111\xe2N6\x13\xd0\xef \x0e\xdb\xc7\
+\xe3A\x7f\xf0s=\x0e\xc2$m\x16\xb3g\x8b\x16\x14\
+6DD\xc4\x88;\xd6L@\xbf\x8d8l\x1f\xbf\x0a\
+\xfa\x83\x9f\xeau \x9e\x7f>\xc1:\x1bVV*\xa7\
+\xb8\x98\xc2\x86\x88\x88\x18q\x8f5\x13\xd0\xaf'\x0e\xdb\
+\xc7O\x82\xfe\xe0'x=\xe2\xc2K\xa2\xd9q\xdd:\
+\x8a\x1a\x22\x22b\x0c\xeci&\xa0\xef$\x0e\xdb\xc7\x8d\
+A\x7f\xf0#\xbc\x06\xf4s\xce!\x5cg\xc3\x0b.\xa0\
+\xa8!\x22\x22\xc6\xc0\x8ef\x02\xfae\xc4a\xfb\xb82\
+\xe8\x0f~\x80\xd7\x80>{6\xe1:\x1bN\x9bFQ\
+CDD\x8c\x81\xcd\xcc\x04\xf4%\xc4a\xfb\xd8\x1c\xf4\
+\x07\x7f\xb4\xd7K\xa2S\xa7\x12\xae\xb3\xe1\xe8\xd1\x145\
+DD\xc4\x18X\xcfL@\x9fK\x1c\xb6\x8f\x15A\x7f\
+\xf0\xed\xbc\x0e\xc4I\x93\x08\xd7\xd9\xb0o_\x8a\x1a\x22\
+\x22b\x0c\xacf&\xa0O%\x0e\xdb\xc7\x05A\x7f\xf0\
+M\xbd\x1eq\x197\x8ep\x9d\x0d\xdb\xb6\xa5\xa8!\x22\
+\x22F\xdcw\xcc\x84s\xed8\xe2\xb0}\xcc\x09\xfa\x83\
+/\xf1:\x18G\x8d\x22\x5cg\xc3\xfa\xf5)l\x88\x88\
+\x88\x11\xf77\xe6\x02\xfa\xb1\xc4a\xfb\x98d\xe2\xc3\x7f\
+\xdb\xcb`\x1c:\x94p\x9d\x8dWD\x0b\x0b)l\x88\
+\x88\x88\x11\xf7\xe7\xe6\x02z7\xe2\xb0}\x0c5\xf1\xe1\
+?\xe5e0\xea\xe7\xe9\x09\xd8Us\xdb6\x8a\x1a\x22\
+\x22b\x0c\xbc\xc1\x5c@oL\x1c\xb6\x8f.&>\xfc\
+\xbb\xbd\x0c\xc6n\xdd\x08\xd8Uu\xcd\x1a\x8a\x1a\x22\x22\
+b\x0c\xdcb&\x9c\x7f!\x16\x10\x87\xed\xa3\xb1\x89\x80\
+\xfe}/\x97D\xdb\xb4!`W\xd5%K(j\x88\
+\x88\x881p\xa9\x99\x80\xfeG\xa2\xb0\x9d\x14\x89_\x06\
+=\x00vy\x19\x8c\xe5\xe5\x04\xec*\x9a:\xf7\x5c\x8a\
+\x1a\x22\x22b\x0c\xfc\x96\x99\x80\xfe\x12Q\xd8^\xfe\x1a\
+\xf4\x00X\xe5e0\x96\x96\x12\xb2\xab\xea\xf4\xe9\x145\
+DD\xc4\x188\xceL@\xff51\xd8^\xde\x08z\
+\x00\xcc\xf32\x18\xf3\xf2\x94SQA\xc8\xae\x8a\xa7\x9c\
+BQCDD\x8c\x81=\xcd\x04\xf4\x9b\x89\xc1\xf6\xf2\
+X\xd0\x03\xe0$\x8f\x831\xb5i\x13!\xbb*\x8e\x19\
+CQCDD\x8c\x81\x8d\xcd\x04\xf4\x9d\xc4`{\xf9\
+i\xd0\x03\xa0\x97\xd7\x01\xb9|9!\xbb*\x1e\x7f<\
+E\x0d\x11\x111\xe2\xee\x16\xf3\xcd\x04\xf4\xa5\xc4`{\
+\xb9\x22\xe8\x01\xd0\xd4\xeb\xa0\x5c\xb0\x80\x90]\x95K\xa2\
+#FP\xd8\x10\x11\x11#\xee\xe3\x09c=\xd0O#\
+\x06\xdb\xcb\xd2\xa0\x07@\x81\xb8\xc7\xcb\xa0\x9c:\x95\xa0\
+]\x15\x8f=\x96\xc2\x86\x88\x88\x18qo5\x17\xd0\xfb\
+\x10\x83\xed\xe5t\x13\x83\xe0\x19/\x83r\xf4hBv\
+Uv\xd0\x07\x0f\xa6\xb0!\x22\x22F\xdcm\xe6\x02z\
+\x13b\xb0\xbd\x0c21\x08\xee\xf20 \x93\xfd\xfa\x11\
+\xb4\xab\xe0\xbe\xbf\x1f\x85\x0d\x11\x111\xd2^`&\x9c\
+\x7f\x22\xe6\x13\x83\xed\xa5\x85\x89\x80~\x95\x97A\xd9\xb1\
+#A\xbb*\xf6\xeeMaCDD\x8c\xb8c\xcd\x04\
+\xf47\x89\xc0v\xa3_\x13\xfd\x22\xe8\x81p\x91\x97A\
+\xd9\xa4\x09!\xbb*G\x5cz\xf6\xa4\xb0!\x22\x22F\
+\xdc\x8ef\x02\xfa}D`\xfb\xd9\x1b\xf4@\x98\xe8a\
+@\xa6\xaaW'h\xb3\x83\x8e\x88\x88\x98\xb3\xbe/\x16\
+\x9b\x09\xe8\xd7\x11\x7f\xed\xe7\xf1\xa0\x07Bw\xaf\x83s\
+\xe3F\x826g\xd0\x11\x11\x11i\xb1\x18\xac\x97\x10\x7f\
+\xed\xe7\x07A\x0f\x84\xda^\x07\xe7\x05\x17\x10\xb63u\
+\xd0 \x8a\x1b\x22\x22b\x84\xbd\xc1\x5c@?\x99\xf8k\
+?+L\x0c\x86\x17\xbc\x0c\xce3\xce hg\xea\xd0\
+\xa1\x147DD\xc4\x08\xbb\xdc\x5c@\xefH\xfc\xb5\x9f\
+\xc9&\x06\xc3\x1d^\xce\xa1\xeb\xd70\x09\xdb\x99\x1dq\
+9\xee8\x8a\x1b\x22\x22b\x84=\xcdL8\xffL\xac\
+F\xfc\xb5\x9f\x1e&\x02\xfav/\x83\xb3[7\xc2v\
+\xa6\x8e\x1cIqCDD\x8c\xb0\x9d\xcd\x04\xf4\xd7\x88\
+\xbe\xd1\xa0\xa6\xf8e\xd0\x03\xe2,/;\xe8\xb4Z\xcc\
+\xdcq\xe3(n\x88\x88\x88\x11u\xb7Xd&\xa0\xff\
+\x84\xe8K\xab\xc5\xff8\xc0\xcb\x00-*RNE\x05\
+a;\x93>\xe8\x93'S\xe0\x10\x11\x11#\xea\xdd\xe6\
+\xce\x9f\xaf#\xf6F\x87\x07\x83\x1e\x10\xf5\xbc\x0e\xd2\xe5\
+\xcb\x09\xdc\x998k\x16\x05\x0e\x11\x111\xa2n1\x17\
+\xd0\xcf$\xf6F\x87kL\x0c\x8a\xe7\xbc\x0c\xd2\x193\
+\x08\xdb\x998\x7f>\x05\x0e\x11\x111\xa2N3\x17\xd0\
+\x8f&\xf6F\x87\x85&\x06\xc5\x8dtr\x09\xce%K\
+(p\x88\x88\x88\x11\xb5\xbb\x99p\xfe\x09\x1d\x5c\xa2\xc5\
+\xb1&\x02\xfa\xc5^\x06i\xc7\x8e\x84\xedL\x5c\xbd\x9a\
+\x02\x87\x88\x88\x18\xd1\x0b\xa2\xd5\xcd\x04\xf4g\x88\xbc\xd1\
+\xa2\xbe\x89\x80>\xd6\xcb@\xad]\x9b\xb0\x9d\x89[\xb6\
+P\xe4\x10\x11\x11#\xe8\xcf\xcd\x1do\xb9\x86\xc8\x1b=\
+\xf6\x04=0Zy\x1c\xa8\xa9\x8d\x1b\x09\xdc\x99tr\
+\xa9^\x9dB\x87\x88\x88\x181W\x99\x0b\xe8s\x89\xbb\
+\xd1\xe3\xae\xa0\x07F\x9e\xf8\xb2\x97\x80~\xee\xb9\x04\xee\
+L,/\xa7\xd0!\x22\x22F\xcc\xd1\xe6\x02zo\xe2\
+n\xf4\xb8\xcc\xc4\xe0\xf8\x9e\x97\xc1z\xc2\x09\x84\xedL\
+l\xdf\x9eB\x87\x88\x88\x181\x1b\x99\x09\xe7\x9f\x89%\
+\xc4\xdd\xe81\xd1D@?\x8f\x8b\xa2\xc1\xd9\xbb7\x85\
+\x0e\x11\x111B>nn\xf7\xfc\x05\xa2n4ik\
+b\x80xzQ\xb4\xa4D9\x95\x95\x04n\xbfg\xd0\
+G\x8e\xa4\xd8!\x22\x22F\xc8\x1d\xe6\x02\xfauD\xdd\
+h\x92'\xfe%\xe8\x01R&\xbe\xefe\xd0\xaeXA\
+\xe8\xf6\xeb\xa4I\x14;DD\xc4\x08y\x9a\xb9\x80>\
+\x93\xa8\x1b]\xee11H\xee\xf32h\xa7L!p\
+\xfb\xddA?\xe7\x1c\x8a\x1d\x22\x22b\x84<\xcc\x5c@\
+oG\xcc\x8d.\xabL\x0c\x92\xf5^\x06\xed\xc0\x81\x84\
+n\xbf\xaeZE\xb1CDD\x8c\x88\x8f\x98\x0b\xe7\x7f\
+pOJ@D\x19eb\xa0\x9c\xe8e\xe0\xea\x96\x81\
+\x84n\x7fVT\xa8da!E\x0f\x11\x111\x02\xae\
+3\x17\xd0\x7fL\xc4\x8d6u\xc5/\x83\x1e(\xf2\x1f\
+\xa2\xf6z\x19\xbc\xeb\xd6\x11\xba\xe9\x85\x8e\x88\x88\x18K\
+G\x9a\x0b\xe8\x17\x10q\xa3\xcf\xcb&\x06\xcb=^\x06\
+\xef\xb4i\x04n\xbf\xe7\xd0\xbbv\xa5\xe8!\x22\x22Z\
+\xeen\xb7q\x86\xa1\x80~\x0c\xf16\xfa\x5cob\xb0\
+\xac\xf02\x80\xfb\xf6%t\xfbu\xd80\x0a\x1f\x22\x22\
+\xa2\xe5\xdea.\x9c\xffC,\x22\xdeF\x9f9&\x06\
+\xcc0/\x03\xb8A\x03\x02\xb7_O?\x9d\xc2\x87\x88\
+\x88h\xb9\xe7\x99\x0b\xe8w\x13m\xe3\xc1\x91&\x06L\
+\xa9\xfb\xf3\xce\xa1\x06pj\xf5jB\xb7\x1f/\xba\x88\
+\xc2\x87\x88\x88h\xb9\x1d8\x7f\x0e>\xd1mxR&\
+\x06\xcd\x8f\xbd\x0c\xe2\xc9\x93\x09\xdd~\xdc\xbe]9y\
+y\x14?DDDK}\xdc\x5c8\xd7v&\xda\xc6\
+\x87\x1f\x98\x184\xf3\xbc\x0c\xe4\xce\x9d\x09\xddtrA\
+DD\x8c\x8d\xab\xcc\x85\xf3$\xfd\xcf\xe3\xc5\x0c\x13\x03\
+\xa7\x8d\x97\x81\x5cT\x94\xde\x15&x{6\xd9\xbd;\
+\x05\x10\x11\x11\xd1R{\x99\x0b\xe8\xd7\x13i\xe3EK\
+S?\xbd\xfc\xc6\xcb`\x9e7\x8f\xe0\xed\xc7\xb1c)\
+\x80\x88\x88\x88\x16\xfa\xb2X`.\xa0\x9fA\xa4\x8d\x1f\
+o\x9b\x18<\xeb\xbc\x0c\xe8!C\x08\xdd~<\xfbl\
+\x8a \x22\x22\xa2\x85n7\x17\xce\xf5\xc3\x93\xe5\xc4\xd9\
+\xf8\xf1?\xb6\xb4[L\xd5\xabG\xe8\xf6\xe3\xc6\x8d\x14\
+ADDD\x0b\x1dd.\xa0?G\x94\x8d'\x93M\
+\x0c\xa0\xea\xe2\x9b^\x06\xf5\xf2\xe5\x04o?\xd6\xafO\
+!DDD\xb4\xc8\xdf\x89\x85\xe6\x02\xfaJ\xa2l<\
+\xa9'~nb\x10Uz\x19\xd8\xc7\x1fO\xe8\xf6a\
+\xaagO\x8a!\x22\x22\xa2E\xae5\xdb^\xb1\x0bQ\
+6\xbe<ab\x10\x8d\xf60\xa8\x93\x8d\x1a\x11\xbc\xfd\
+8i\x12\xc5\x10\x11\x11\xd1\x22{\x9a\x0b\xe7\xef\x12a\
+\xe3\xcd\xc5&\x06R\xb1\xf8\xba\x97\xc1}\xc9%\x04o\
+\xaf;\xe8K\x96P\x0c\x11\x11\x11-\xf1I1\xcf\x5c\
+@\xdfJ\x84\x8d7G\x99\xfa)\xe6j\x8e\xb9d\xd7\
+]\xbbT\xaaZ5\x8a\x22\x22\x22\xa2\x05.7{\xbc\
+e\x08\x116\xde\xe8\xd7\xa7\xde71\x98\xc6z\x19\xe0\
+M\x9a\x10\xbc\xfd\xd8\xba5E\x11\x11\x11\xd1\x02;\x9a\
+\x0b\xe7\xff+\x16\x12a\xe3\xcf\xd5&\x06T\x0d\xf1m\
+/g\xd19\xe6\xe2\xddQ\xa3(\x8a\x88\x88\x88!\xfb\
+\x0b\xb3\xbb\xe7\xdf!\xba\xe6\x06cM\x0d\xaa\xab\xbc\x0c\
+\xf4a\xc3\x08\xde^]\xb0\x80\xc2\x88\x88\x88\x18\xb2g\
+\x9a\x0d\xe8#\x89\xae\xb9A\x89\xf8w\x13\x83\xea8/\
+\x03\xbdf\xcd}\xe7\xab\x09\xe0\x1e\xdc\xb1C9EE\
+\x14GDD\xc4\x90\xd4\xa7\x03j\x99\x0b\xe7\x7f\xe4x\
+Knq\xb3\x89\x81\xa5\x9b\xf7\xff\xd6\xcb\x80\x9f;\x97\
+\xf0\xed\xd56m(\x90\x88\x88\x88!\xb9\xcb\xec\xee\xf9\
+\x15D\xd6\xdc\xe2$S\x83k\xb9\x97\x01\xdf\xbd;\xc1\
+\xdb\xab'\x9c@\x81DDD\x0c\xc9^f\x03z_\
+\x22knQC\xfc\x87\x89\xc1\xd5\xd1\xcb\x80\xd7\xc76\
+.\xbf\x9c\xf0\xed\xc5\xf3\xce\xa3@\x22\x22\x22\x86\xe0#\
+\x09\xa3\xbd\xcf\xf7\x88\xf9D\xd6\xdc\xe3\x87\xa6\xbe\x01\xde\
+\xe3e\xe0O\x9eL\xf8\xf6\xf2`\x11\xe7\xd0\x11\x11\x11\
+Cq\x9a\xd9\xdd\xf3\x8dD\xd5\xdcd\xa2\xa9A\xf6-\
+/\x03\xff\xb0\xc3\x08\xe0^\xed\xd4\x89B\x89\x88\x88h\
+\xd07\xc4\x9af\x03zw\xa2*\xc7\x5c\x02\xb5\xb6\xf8\
+\x8e\x97\x09\xb0h\x11\xe1\xdb\x8b\x93&Q,\x11\x11\x11\
+\x0d\xba\xcel8\xff\x1d15\xb7\xb9\xc9\xd4`\xdb\xee\
+e\x02\xf4\xeaE\xf8\xf6\xe2\x9a5\x14KDDDC\
+&\xc5\xd6f\x03\xfa\x02\x22jns\x82\xa9\xc1v\xb4\
+\x97\x09PX\xa8R\x9b6\x11\xc0\xbd\xd8\xa8\x11E\x13\
+\x11\x11\xd1\x80?4\x1b\xce?\x11\xeb\x13Qs\x1b\xdd\
+\xfc>e\xd5e\xd1\xf1\xe3\x09\xdf^\x1c2\x84\xa2\x89\
+\x88\x88h\xc0af\x03\xfa\xcd\xc4S\xd0l15\xe8\
+N\xf72\x11\xf4\xcepe%\x01\xfcP\xce\x9bG\xd1\
+DDD\x0c\xd8\xfb\xcd\xb6V\xd4\x0e'\x9a\x82\xa6\xab\
+\xa9AWC|\xcd\xcb\x84\x98=\x9b\x00~\xa8v\x8b\
+;w*\xa7zu\x8a'\x22\x22b\x80\x9el6\x9c\
+\xbf\x97\xa0\xf79\xec\xc7s\xa6\x06\xdfj/\x13\xa2U\
++B\xb8\x07\x93\xfa\x05V\x8a'\x22\x22b \xfeF\
+,4\x1b\xd0W\x12Ia\x7f\xce75\xf8\x8e\x10\xf7\
+x\x99\x18\x8b\x17\x13\xc2\x0f\xe5\x8c\x19\x14PDD\xc4\
+\x80\x9ci6\x9c\xffKlL$\x85\xfdi$~f\
+j\x10^\xe5\xa5\xa3\x8b\xde\x1d&\x84\x1f\xdc-[\x94\
+SXH\x11EDD\xcc\xb2/\x8a%f\x03\xfa\xf7\
+\x89\xa3p ~jj\x10v\xf729\x0a\x0a\x94s\
+\xd9e\x84\xf0C\x1ds\xe9\xd0\x81B\x8a\x88\x88\x98e\
+\x17\x9a\x0d\xe7\xda>DQ8\x10\xa3L\x0e\xc4;\xbc\
+L\x90\xc1\x83\x09\xe1\x87r\xf2d\x0a)\x22\x22b\x16\
+\xd5\x0d-j\x99\x0d\xe7O\x11C\xe1\x9b\xd0\xb7\x86\xdf\
+25\x18\x8f\xf70AR\xd5\xaa\xf1p\xd1\xa1\xba\xb9\
+\xac_\xaf\x9c\xbc<\x0a*\x22\x22btw\xcf\xa7\x12\
+C\xe1`\x5cdj0\x16\x88\x8fy9\x8b~\xdcq\
+\x04\xf1C\xd9\xae\x1d\x05\x15\x11\x111\x0b\xbe,\xd64\
+\x1b\xce\xff \x16\x13A\xe1`4H\xa4\x9f\x9852\
+(O\xf52Y\xd8E?\xf4.:\xc7\x5c\x10\x11\x11\
+\xb3\xe2|\xf3\xbb\xe7k\x89\x9f\xe0\x85\x1bM\x0d\xca\x22\
+\xf1I/\x13\xe6\xf8\xe3\x09\xe2\x07S\x7f\x81\xd1\x97j\
+)\xac\x88\x88\x88U\xea\xdcRj6\x9c\xebM\xd1&\
+DO\xf0B?\x93\xdf\x1c\xa7z\x994\xa5\xa5*\xb9\
+u+A\xfc`v\xecHqEDD\xac\x82s\xcd\
+\xef\x9e_M\xec\x04?<j\xdd.\xfa\xa8Q\x84\xf0\
+\x83\xb5[\x9c:\x95\xe2\x8a\x88\x88\x98\xa1O\xb8\x99\xc4\
+`8\xd7\xef\xcf\xb4$r\x82\x1fN5\xf9\x0dr\x86\
+\xd7\xb3\xe8\x1b7\x12\xc6\xbfI\xfd\x0bCQ\x11E\x16\
+\x11\x111\x03O5\xbf{~+q\x13\xfcR(\xee\
+65H\x8b\xc5\xe7\xbcL :\xba\x1c\xdc\xae])\
+\xb2\x88\x88\x88>\xbd\xdf\xed.g8\xa0\xf7 nB\
+&\x9cor\xa0N\xf62\x89\xf4\xb3\xf6k\xd6\x10\xc4\
+\xbf\xc9\xb3\xce\xa2\xd0\x22\x22\x22\xfa\xb4\xbf\xf9p\xfe\x0b\
+b&dJm\xf1C\x93g\xd1\x1f\xf72\x91\xfa\xf6\
+%\x88\x7fS\xbb\xc5\x8a\x0a\x95\xacY\x93b\x8b\x88\x88\
+\xe8\xd1[\xcd\x87s\xedq\xc4L\xa8\x0a;L\x0e\xd8\
+\x09^&\x93n'\xb8b\x05\x81\xfc\x9b\x1c<\x98\x82\
+\x8b\x88\x88\xe8\xc1\xa4\xd8\xd5|8\x7f\x8ax\x09U\xa5\
+\x95{\xcb\xd8\xc8\xa0\xcdw\xcf\x81\x1djB\xa5:u\
+\x22\x88\x7f\x93\x17_L\xd1EDD\xf4\xe0\x15\xe1\xec\
+\x9e\x9f@\xbc\x84lp\x83\xc9\x81;\xd2\xe3\xa4J\x9d\
+{.a\xfc\x9b<\xec0\x0a/\x22\x22\xe2A|K\
+lb>\x9c?I\xac\x84l\xd1A\xfc\xc2\xe4\x00\xbe\
+\xc3\xcb\xe4j\xdcx\xdf\x99k\x02\xf9\x01<\xf9d\x8a\
+/\x22\x22\xe2A<?\x9c\xdd\xf3Q\xc4J\xc8&\xdf\
+79\x80;\x89{\xbdL\xb0)S\x08\xe3\x07\xba,\
+\xbaaC\xfa\xac>\x05\x18\x11\x11\xf1k>\x9a0\xfe\
+(\x91\xf6A\xe2$d\x9b\x8e\xa6w\xd1\xb7{9\xe6\
+R\xbb\xb6r\xb6m#\x94\x1f\xe8e\xd1\xa3\x8e\xa2\x08\
+#\x22\x22\x1e\xc0\x11\xe1\xec\x9e\x0f%NB\x10\xdca\
+r \xebsao{\x99hC\x87\x12\xc8\x0f\xe4\x82\
+\x05\x14aDDD;\xda*>L\x8c\x84\xa08J\
+\xfc\xd2\xe4\x80>\xdf\xcbd\xcb\xcfOw.!\x94\x7f\
+\xd5\xcaJ\x95l\xd4\x88b\x8c\x88\x88\xb8\xdf\xc5\xd0\xc3\
+\xcd\x87\xf3/\xdc\x0c\x05\x10\x18w\x9b\x1c\xd45\xc4\xe7\
+\xbcL\xbaV\xad\xf6\x05R\x82\xf9\xff;\x8b>~<\
+\x05\x19\x11\x11\xd1\xf5\x82pv\xcfo#>B\xd0\xf4\
+0\xbd\x8b>\xc9\xeb\xc4\x9b:\x95P\xfe\xff\xdd\xb4I\
+%\x0b\x0b)\xca\x88\x88\x98\xf3>,V3\x1f\xce?\
+\x15\xdb\x12\x1f\xc1\x047\x99\xfe\xf6y\x9b\x97\xc9W\xab\
+\x96r\xb6l!\x94\xff\x7f\xbbw\xa70#\x22bN\
+\xab;\xc3u\x0fg\xf7|;\xb1\x11L\xd1\xd6\xfdF\
+hl\x80\xb7\x13w{\x99\x84\x83\x06\x11\xc8\xff\xbf\xe7\
+\x9dGqFD\xc4\x9cvc8\xe1\xfc\xcfb]b\
+#\x98\xe4;\xa6\x07\xfae^&a^\x9er\xe6\xcf\
+'\x94\xf3\xb2(\x22\x22\xe2>_\x10\xeb\x86\x13\xd0\x97\
+\x13\x17\xc14-\xc4\x7f\x99\x1c\xe8\xb5\xc4\xdfy\x99\x8c\
+\x8d\x1a\xa9\xd4\x8e\x1d\x84\xf2\xfd=\xe3\x0c\x8a4\x22\x22\
+\xe6\xa4'\x86\x13\xce\xf7\x8a\xa5\xc4E\x08\x83]\xa6\x07\
+\xfc)^'\xe4\x88\x11\x84\xf2\xfd\xbb\xb9\xe8/,\xa5\
+\xa5\x14jDD\xcc)\xaf\x0e'\x9ckO'&B\
+X4\x12?0=\xe8o\xf60!\x93\xba7\xfa\x92\
+%\x84\xf3\xfdC\xba\xfe\xd2B\xb1FD\xc4\x1c\xf1%\
+\xb1A8\xe1\xfc\x111\x8f\x98\x08a\xb2\xd8\xf4\xc0?\
+L|\xc3\xcb\xe4l\xde\x5c\xa5**\x08\xe7\xffv\xf5\
+\xea\xf4\x19}\x8a6\x22\x22\xe6\x80#\xc2\x09\xe7\xba\x89\
+\xc6\x91\xc4C\x08\x9b\xea\xe2{\xa6'\xc0\x5c\xaf\x13t\
+\xcc\x18\x82\xf9\xfe\xbb\xe8]\xbbR\xb4\x11\x111\xf6^\
+\x1f\xde\xd1\x96+\x89\x86`\x0b\x93MO\x80B\xf1^\
+\xafG].\xba\x88p\xee\x9a\x5c\xb8\x90\xc2\x8d\x88\x88\
+\xb1\xf6E\xb1Qxm\x15\xeb\x13\x0b\xc1\x16\xf49\xab\
+'MO\x84.\xe2\x1e/\x93\xb5qc\xe5\xd0\xd5\xe5\
+\xbf\xb6hA\x01GD\xc4\xd8:*\xbc\xdd\xf3yD\
+B\xb0\x8d\xfe\xe2\x97\xa6'\xc3R\xaf\x13v\xf8p\x82\
+\xf9\xbf\x8f\xb9\xcc\x9cI\x01GD\xc4X\xba-\xbcp\
+\xfe\x94X@\x1c\x04\x1b\xb9\xd9\xf4\x84(\x12\x7f\xe5\xf1\
+\xa8K\xea\xc2\x0b\x09\xe8\xda]\xbb\x94S\xa7\x0e\x85\x1c\
+\x11\x11c\xe5\x13bY8\xe1\xfcs\xb1;1\x10l\
+\xa5\x5c\xfc\xab\xe9\x89\xd1F|\xc7\xcb\xe4\xad[W9\
+\x9b7\x13\xd0\xb5\x13&P\xcc\x11\x1116\xee\x16\xbb\
+\x86\xb7{\xbe\x99\x08\x08\xb6\xb38\x8c\xc91\xdf\xeb$\
+>\xfah\xc2\xb9\xbe,\xbau\xabrJJ(\xea\x88\
+\x88\x18\x0b/\x0e/\x9c\xeb\x17Ck\x12\xff\xc0v\xf4\
+\xf9\xab\xdf\x9a\x9e \xf9\xe2\x8f=N\xe2}g\xb0\x09\
+\xe9\xca\x19:\x94\xa2\x8e\x88\x88\x91\xf7.\xb7\xbb[H\
+\x01\xfdx\xa2\x1fD\x85\xa1aL\x92\xd6\xe2\xdb^&\
+sq\xb1J\xad\x5c\xc9e\xd1\x0d\x1b\x94STDq\
+GD\xc4\xc8\xaa\x1f.l\x19^8\xff\x19\x91\x0f\xa2\
+\xc6\x0f\xc3\x98,g{\x9d\xd4\xadZ\xf1\xca\xa8>\xea\
+\xd2\xaf\x1f\x05\x1e\x11\x11#\xeb\xc4\xf0\xc2\xf9\x07b3\
+\xe2\x1eD\x8d\xa6\xe2\x87a\x1cu\xb9\xcd\xeb\xc4\x1e2\
+\x84\x80\xbev\xadr\x0a\x0b)\xf2\x88\x88\x189w\x86\
+\x17\xce\xb5g\x11\xf5 \xaa,\x0ac\xd24\x11_\xf1\
+:\xc1\xa7M\xe3,z\xdf\xbe\x14zDD\x8c\x94\x8f\
+\x8a\xa5\xe1\x85\xf3\xfb\x12\xe9G\x1a\x01\x22I\xa1\xf8L\
+\x18\x93g\xb4\xd7I^\x5c\xac\x9c\xe5\xcbs\xfb,\xfa\
+\xea\xd5\xfb\xfa\xc4S\xf0\x11\x111\x0a\xea\xfbfG\x86\
+\x17\xce\xff.\xb6$\xe2A\xd4\xe9 ~\x12\xc6$Z\
+\xefu\xb2\x97\x97+G\xb7\x1d\xcc\xe5]\xf4c\x8e\xa1\
+\xe8#\x22b$\x1c\x1b\xee\xd1\x96\xd9D;\x88\x0b\xeb\
+\xc2\x98D5\xc4\x87\xbdN\xf8\x1e=r;\xa0\xeb_\
+\x11\xf2\xf2(\xfc\x88\x88h\xb5\x97\x87\x1b\xce\x1f\x14\xf3\
+\x89u\x10\x17\xaa\x8b\xaf\x851\x99:xm\xbd\xa8\x9d\
+4)\xb7Cz\xb7n\x14\x7fDD\xb4\xd6{\xc5\xe2\
+p\x8f\xb6\xb4&\xd2A\xdc\x18(~\x11\xc6\xa4:\xd5\
+\xeb\xe4/(P\xce\xa2E\xb9\x1b\xd0\x97.e\x17\x1d\
+\x11\x11\xad\xf4U\xb1Y\xb8\xbb\xe7\xb3\x88r\x10W\xae\
+\x08kb\xed\xf4Z\x04\xea\xd6U\xa9M\x9br\xf7\xc2\
+h\xa7N,\x04\x88\x88h\x95Iqx\xb8\xe1\xfc\xa7\
+D8\x883e\xe2\xdba\x9dG\x7f\xd0k1h\xdf\
+^9\xb9\xfa\x88\xd1\xe2\xc5,\x06\x88\x88h\x95\x8b\xc3\
+\x0d\xe7\xbf\x17\x1b\x12\xe1 \xee\x0c\x0e\xeb\xa8K{?\
+\xe7\xd1\xc7\x8c\xc9\xdd]\xf46mX\x10\x10\x11\xd1\x0a\
+\xbf\x9bH?B\x18b@?\x91\xe8\x06\xb9\xc2\xce\xb0\
+&\xda\x04\xafE!/O%\xa7O\xcf\xcd\x90\xbe`\
+\x01\x8b\x02\x22\x22\x86\xeeCb\xcdp\xc3\xf9\xd5D6\
+\xc8%j\x88o\x845\xe1\xd6x-\x0e\xd5\xaa)\xe7\
+\xe2\x8bss\x17\xbdeK\x16\x07DD\x0c\xcd\xd7\xc4\
+\xd6\xe1\x86\xf3\xb7\xc4R\x22\x1b\xe4\x1a\xfd\xc3:\xeaR\
+$\xfe\xc4k\x91\xa8UK9\x97]\x96{!\xfd\x82\
+\x0bX \x10\x111\x14\xf7\x8a\xc7\x85\x1b\xce\xff%\xf6\
+$\xaaA\xae\xb2)\xac\xc9\xd7H|\xdek\xb18\xfc\
+p\xe5l\xdfNG\x17DDD\x03.\x087\x9ck\
+\x17\x13\xd1 \x97\xd1\xafq=\x10\xd6\x04\xec$\xbe\xe3\
+\xb5`\xe8G|*+s+\xa4/[F_tD\
+D4\xea\xc6\xf0\xc3\xf9O\xc4<\x22\x1a\xe4:\xfaU\
+\xae\x0f\xc3\x9a\x883|\x14\x8d\xd4\xc8\x91\xb9w\xd4\xa5\
+G\x0f\x16\x0cDD4\xa2>~Z-\xdcp.\xff\
+\x18\x89FD3\x804g\x86\xf9my\x87\x9f\x90~\
+\xc6\x19\xb9\x15\xd0W\xaeL\xbf\xb0\xca\xc2\x81\x88\x88\x01\
+\xfa\xb8X/\xdcp\xae\xef\xc5\x0d#\x92\x01|\x95\x9b\
+\xc2\x9a\x94\xfa\xdb\xfaO\xbd\x16\x11\x1dV\xcf??\xb7\
+B\xfa\x80\x01,\x1e\x88\x88\x18\x98\xaf\x84\xdf\xb1E\xbb\
+\x9e(\x06\xf0u\xea\x88\xef\x8551\xeb\x8bOz-\
+&\xa5\xa5*\xb5zu\xee\x5c\x16]\xbf^\xa5t\xcb\
+I\x16\x11DD\xcc\xb2\xbb\xc5\xfe\xe1\x87\xf3\x87\xc4B\
+\xa2\x18\xc0\x81\x19 ~\x1e\xd6\x04\xd5/\x8d\xbe\xee\xa3\
+\xb3Kr\xeb\xd6\xdc\xd9E\x1f:\x94\x85\x04\x11\x11\xb3\
+\xee\xa9\xe1\x87\xf3\x94\xd8\x84\x08\x06pp\x96\x879Q\
+\xfb\xb8\xdf\xe6=\x15\x966m\x94\xb3cGn\x04\xf4\
+\xcb/WN\x8d\x1a,&\x88\x88\x985\x17\x85\x1f\xce\
+u\xbf\xf3\xdeD/\x80CS \xfe:\xcc\x09;\xcb\
+\xcf\xa5\xd1\xae]U\xaa\xa2\x227B\xfa\x981,(\
+\x88\x88\x98\x15\xaf\x11\xf3\xc3\x0f\xe8\x17\x11\xbb\x00\xbc\xd3\
+P\xdc\x1b\xe6\xa4]\xe3\xa7\xd0\xe8K\x94\xb9\x10\xd0\xb7\
+oW\xc9\x9a5YX\x10\x11\xb1J\xde\x96H\xbf\xea\
+\x1dr8\xbf\x91\xb8\x05\xe0\x9f\xe3\x12\xe9\x96G\xa1L\
+\x5c]8n\xf1SpN8!7B\xfa)\xa7\xb0\
+\xb8 \x22b\xc6>\x95H\xbf\xe6\x1dr8\x7fS\xac\
+M\xd4\x02\xc8\x8c\xd5aN`\x99\xb9\xea\x11?\x85G\
+\x87\xd7\xb8\x07\xf4\x9d;\x95\xd3\xa0\x01\x8b\x0c\x22\x22\xfa\
+\xf65\xb1C\xf8\xe1\x5c?\x8e\xd8\x89\x88\x05P\xb5\xf3\
+\xe8\xf7\x879\x91[\xba\xfdY\xbd\x14\x9ed~\xber\
+\xe6\xce\x8d\x7fH\x9f:\x95\x85\x06\x11\x11}\xf9\x8e\xd8\
+;\xfcp\xfe\xa58\x9ex\x05Pu\x1a$B\xec\x8f\
+\xae\xed'\xbe\xeb\xb5\x08\x15\x16*g\xfe\xfcx\x07\xf4\
+\xcaJ\xe5\xb4j\xc5\x82\x83\x88\x88\x9e\xdc#\x0e\x0f?\
+\x9c+\xf7\x97y\x00\xc8\x12=\xc4\x8f\xc3\x9c\xd4'\x88\
+\xef{-F\xd5\xab+\xe7\xe2\x8b\xe3\x1d\xd2\x17/V\
+N^\x1e\x0b\x0f\x22\x22\x1e\xfc\xd7eq\x92\x1d\xe1\xfc\
+\x0e1\x9fH\x05\x90]&\x87=\xb9Ov\x0b\x8d\xa7\
+\xa2T\xbb\xb6r\xd6\xac\x89uHOv\xef\xce\xe2\x83\
+\x88\x88\x07u\x9a\x1d\xe1\xfc\x05\xb1\x8c(\x05\x10\x0cW\
+\x85=\xc9\x17\xf9\xe9\x91\xde\xa4\x89Jm\xda\x14\xdf\x90\
+\xbejU\xfaH\x0f\x0b\x10\x22\x22\x1e\xc0\xe5v\x84\xf3\
+\xbf\x88\xed\x89P\x00\xc1Q(>\x14\xf6d_\xe5\xa7\
+@\x95\x97\xab\xd4\xc6\x8d\xf1\x0d\xe9#F\xb0\x08!\x22\
+\xe2\xd7\x5ccG8\xd7\xc7c\xfb\x13\x9f\x00\x82\xe7p\
+\xf1\x0faN\xf8\x02\xf1:?\x85\xea\xb0\xc3\x94\xb3y\
+s<\x8f\xb9l\xdd\xaa\x9cZ\xb5X\x8c\x10\x11\xf1?\
+^/\x16\xda\x11\xd0g\x10\x9b\x00\xcc1D\xfcW\x98\
+\x93\xbeX\xfc\x89\x9f\x82u\xc4\x11\xca\xb9\xfc\xf2x\xee\
+\xa2O\x9e\xcc\x82\x84\x88\x88\xfb\xfc\xb1\xbbFZ\x10\xce\
+7\x10\x97\x00\xcc3)\x91\xeeg\x1a\xda\xe4/\x13\xef\
+\xf5S\xb8Z\xb6T\xce\xb6m\xf1\x0b\xe8\x15\x15\xcai\
+\xda\x94\x85\x09\x111\xc7\xbdS,\xb1#\x9c\x7fO\xcc\
+#*\x01\x84\xc3\xba\xb0\x8b@}\xf1Q?\x05\xac}\
+{\x95\xda\xb1#~!}\xc1\x02\x16'D\xc4\x1c\xf6\
+!\xb1\xae\x1d\xe1\xfc\xd7b5\x22\x12@x\xe8\x97F\
+\xef\x0c\xbb\x18\xb4\x11_\xf6S\xc8:vT\xa9\x9d;\
+\xe3\x17\xd2;wf\x91BD\xccA\x9f\x15\x9b\xd9\x11\
+\xce\xdf\x13\x1b\x13\x8f\x00\xc2\xa7D\xfcM\xd8E\xa1\xab\
+\xf8\x86\x9f\x82\xd6\xad\x9brv\xed\x8aU@O\xadX\
+\xa1\x9c\x82\x02\x16+D\xc4\x1cR\x16`u\x18\xed\x14\
+\x01\xe0\x004\x17\x7f\x1fvq8.\x91~\xce\xd8s\
+a;\xfah\x95\xd2\xe7\xb7\xe3\xb4\x8b>x0\x0b\x16\
+\x22b\x8e\xf8\x82\xd8\xd6\x8ep\xfe\x998\x8a8\x04`\
+\x1fG\x8b\xff\x08\xbbH\x8c\xf2\x19\xd2S\x03\x07*\xa7\
+\xb22>\x01]\xf7|/)a\xe1BD\x8c\xb9\xcf\
+\x8b\xad\xec\x08\xe7\xb4S\x04\xb0\x9c\x09\xe2\x17a\x17\x8a\
+\x13\xc5\xf7\xfd\x14\xbac\x8eIwB\x89\xcbQ\x97\xd3\
+Nc\xf1BD\x8c\xb1/\x89\x1d\xed\x09\xe7\xb4S\x04\
+\x88\x00\xcbm(\x18\xa7\x8a{\xfd\x14\xbc\x1e=\xe2s\
+\xdcE\xff\x22\xd0\xa2\x05\x8b\x18\x22b\x0c}E<\xd2\
+\x9ep\xfe\xc3\x04\xed\x14\x01\x22\x81\x9e\xa8\xb7\xdaP8\
+\xe6\xf9-|q\x0a\xe9K\x96('/\x8f\xc5\x0c\x11\
+1F\xbe)\xf6\xb4'\x9c?%\x96\x11{\x00\xa2C\
+u\xf1q\x1b\x0a\xc8\x1c\x9f\xc5/\xd9\xbd{|B\xfa\
+\x80\x01,h\x88\x881Qw*\xebaO8\x7f^\
+\xacM\xdc\x01\x88\x1eM\xc5wm($\xcb\xfd\x16\xc2\
+\xa3\x8f\x8eG\x0b\xc6\xcd\x9bU\xb2\xac\x8c\x85\x0d\x111\
+\xe2\xcab\xaa\x06\xd9\x13\xce\xdf\x17\x9b\x11s\x00\xa2K\
++1eCA\xb9\xc4\xefN\xfaQG\xc5#\xa4\x9f\
+q\x06\x8b\x1b\x22b\x84}G\x1chO8\xd7kz\
+k\xe2\x0d@\xf4\xe9\x22\xfe5\xec\xa2\x92'\xae\xf7[\
+\x18;w\x8e\xfe\x8b\xa3\xfa\xc2h\xcb\x96,r\x88\x88\
+\x11\xdd9\x1flO8\xd7kyWb\x0d@|8\
+^\xfc4\xec\xe2R ^\xe1\xb7@v\xea\xa4\x9c\x1d\
+;\xa2\x1d\xd2\x97.UN~>\x8b\x1d\x22b\x84\xd4\
+oz\x8c\xb5'\x9c\xffK\x1cA\x9c\x01\x88\x1f\xa7&\
+,\xe8\x91\x9e\x9fAHO\xc5!\xa4\xf3\xc2(\x22b\
+\xa4v\xce\x8f\xb5'\x9c\xebWB\xc7\x12c\x00\xe2\xcb\
+E6\x14\x9b\x22\xf1\x1a\xbf!\xbdk\xd7h\x1fw\xd9\
+\xbcY9\x5c\x18ED\xb4\xde\xdd\x89\xf4\xab\xd8\x09{\
+<\x87\xf8\x02\x10\x7f6\xd8Pp\xf4q\x97\xed~C\
+z\x9b6\xca\xd9\xb2%\xba!\xfd\xcc3Y\xfc\x10\x11\
+-\xefs\xde\xd7\xaep\xbe\x94\xd8\x02\x90\x1b\xe8\x87\x8c\
+\xae\xb5\xa1\xf0\xe8\x8b\xa3\x1b\xfc\x16\xd0#\x8eP\xa9M\
+\x9b\xa2{a\xb4m[\x16ADDK\xc3y\x1f\xbb\
+\xc2\xf9\x16\x22\x0b@nQ \xdenKH\xf7\xdd\xdd\
+\xa5qc\xe5\xac[\x17\xcd\x90\xbe|\xb9r\x0a\x0aX\
+\x0c\x11\x11-{\x84\xa8\x97]\xe1\xfc:wC\x0d\x00\
+r\x8c\x9a\xe236\x14\xa2\xfc\x0c\x8e\xbb8\xe5\xe5\xd1\
+\x0d\xe9C\x87\xb2 \x22\x22Z\xe2[b\x7f\xbb\xc2\xf9\
+\xbdb5b\x0a@\xeeR_|\xc5\x96\x9d\xf4\xb5~\
+\xcf\xa4\xd7\xae\xad\x92\x97\x5c\x12\xb9\x80\x9e\xd2\x1di\x1a\
+6daDD\x0cYY\x00UW\xbb\xc2\xf9\xcf\x09\
+\xe7\x00\xa0\xd1\xaf\x8d:\xb6\x84\xf4M~\x0bli\xa9\
+r.\xbc0z\xbb\xe8\xe7\x9f\xaf\x9c\xbc<\x16HD\
+\xc4\x90|]\xeciW8\x7fL,#\x96\x00\xc0\xbf\
+i#&m)RK\xfd\x16\xda\x92\x12\xe5,Z\x14\
+\xbd\x9d\xf4>}X$\x11\x11C\xf0%\xb1\x93]\xe1\
+\xfc!\xb1\x06q\x04\x00\xfe?G\x89\x7f\x89\xecq\x97\
+j\xd5\x94s\xee\xb9\xd1\xeb\x8d^\xb3&\x8b%\x22\xa2\
+A_\x15\xbb\xd9\x15\xce\x9f\x17\xeb\x12C\x00\xe0\x9b\xe8\
+%~`KH_\x95IH\x9f7/R!=9\
+u*\x0b&\x22\xa2\xc1\x9ds\xcb\xce\x9c\xbf(6 \
+~\x00\xc0\xa1\x18(~dK\xf1Z\xee\xb7\x00\xe7\xe7\
++\xe7\xf4\xd3\xa3\xb5\x93\xde\xa5\x0b\x0b'\x22b\xc0>\
+/\xb6\xb3+\x9c\xbf*\x96\x13;\x00\xc0+\xfd\xc4\xbf\
+\xdbR\xc4f\x88I?\x85X_\xbe\x1c=::\xbb\
+\xe8k\xd7*\xa7\xb8\x98\x05\x14\x111 \x1f\x11\x0f\xb3\
++\x9c\xbf$6$n\x00\x80_\x8e\x13?\xb6\xa5\x98\
+M\x11\xf7\xfa-\xcaC\x86\xa4_\xef\x8cBP?\xf9\
+d\x16QD\xc4\x00\xfc\x95\xd8\xc0\xaep\xfe\x0a;\xe7\
+\x00P\x15F\x89\x9f\xd8R\xd4N\x12w\xfb-\xce\xbd\
+z)g\xd7.\xfb\x03\xba\xfe\x22\xd1\xb2%\x8b)\x22\
+b\x16\xbdS\xaceW8\x7f[<\x9cx\x01\x00U\
+e\x82\xf8\x99-\xc5m\xb8\xf8\xae\xdf\x22\xdd\xb9\xb3r\
+\xb6o\xb7?\xa4\xebG\x97\x0a\x0aXT\x11\x11\xb3\xe0\
+Mb\x0d\xbb\xc2\xb9,_\x89f\xc4\x0a\x00\xc8\x16s\
+\xc4/m)r#\xc4\xf7\xfc\x16\xeb\x16-\xd2m\x0d\
+m\x0f\xe9#F\xb0\xb0\x22\x22V\xd1\x1f\x88%v\x85\
+\xf3?\x88\x1d\x89\x13\x00\x90m\xce\xb3\xa8\xd0\xa9\x81\xe2\
+[~\x8bv\x93&\xcaY\xb7\xce\xee\xc7\x8bv\xeeT\
+Ny9\x0b,\x22b\x86^#\x16\xd9\x15\xce\xffW\
+\xecN\x8c\x00\x80\xa0\xb8\xd8\xa6\x90\xae\x9fh~\xcdg\
+\xe1N6j\xa4\x9c5k\xec\xdeE\xd7\x0f.\xe9N\
+4,\xb4\x88\x88\xbe\xdc.\x16\xd8\x15\xce\xff(v#\
+>\x00@\xd0\x5chSH\xef\xe2><\xe1\xebA\xa3\
+:uTR\x9f\xf7\xb6\xb9\xf5b\xbf~,\xb6\x88\x88\
+>\xd4/P\xe7\xd9\x15\xce\x7f/v&6\x00\x80)\
+\x16&,:\x93\xde\xce}\x80\xc2W1/.V\xa9\
+s\xce\xb17\xa4o\xdf\xae\x92\x0d\x1a\xb0\xe8\x22\x22z\
+\xf0B\xbb\x82\xb9V\xfe\xb18s\x0e\x00\xe6\x99%~\
+aK1\xd4\x0fP<\xe6\xb7\xa8\x17\x16\xaa\xe4\xf4\xe9\
+\xf6\x86\xf4\xf3\xce\xe3\xa8\x0b\x22\xe2A\xdc#\x9ej_\
+8\xd7\xad\x14\x9b\x13\x13\x00 ,\xe6\xd9\xb4\x93\xdeD\
+|\xd8o\x81\xd7\x01\xf8\xa4\x93\xec\xbd4:p \x8b\
+0\x22\xe2\x01\xd4\xefb\x9cl_8\x97\xef\x0c\x896\
+\xc4\x03\x00\x08\x9b\xc9\x09\x8b\xfa\xa4\xeb\x07)~\x92I\
+\xb1\x1f:\xd4\xceWGu\xffv\x8e\xba \x22~\xc5\
+\xd7\xc5\xfe\xf6\x85\xf37\xc5#\x88\x05\x00`\x0b\xa7\xda\
+\x14\xd2\xab\x89\xd7fR\xf4{\xf6T\x8ensh[\
+H_\xb0\x80\xa3.\x88\x88\xae/\x8a\xdd\xec\x0b\xe7/\
+\x8b\x8d\x89\x03\x00`\x1b\x93l\x0a\xe9\xba\xcd\xd6\xd6L\
+\x8a\x7f\xfb\xf6\xca\xd9\xba\xd5\xbe\x90\xde\xbf?\x0b3\x22\
+\xe6\xbcO\x8bm\xec\x0b\xe7\xf2\x9d!QN\x0c\x00\x00\
+[\x99(~jK\xd1\xd4\xed\xb6\x96g\xb2\x084m\
+j\xdf\x83F\xf2\xa5!U\xaf\x1e\x0b4\x22\xe6\xac\xf7\
+\x8b\xe5\xf6\x85\xf3\x17\xc4F,\xff\x00`;'\xdb\x14\
+\xd2\xb5\xb3\xf4\x03E~\x17\x83\xfa\xf5\x95\xb3b\x05G\
+]\x10\x11-\xf0.\xb1\x8e}\xe1\xfc\xb7bC\x96}\
+\x00\x88\x0aV\x9dI\xd7N\x17\xf7\xfa]\x14JK\x95\
+\xb3h\x91]!\x9d\x07\x8c\x101\xc7\xbc\xddm\x00`\
+Y8\x7fZl\xc0r\x0f\x00\x1cw\xa9\xa2c\xdd\xb6\
+\x5c\xbe\x16\x87\x92\x92\xf4\xce\xb5-\x01}\xf3f\x95\xaa\
+]\x9bE\x1b\x11s\xc2\x1b\xc4\xea\xf6\x85\xf3\x87\xc5Z\
+,\xf3\x00\x10UN\x12?\xb1\xa9\xb0\x0e\x12\xdf\xf4\xbb\
+H\xe4\xe7\xab\xd4i\xa7\xd9\x13\xd2\xe7\xcf\xe7\xa8\x0b\x22\
+\xc6\xde\x1db\xa1}\xe1\xfc\x1e\xb1\x06\xcb;\x00D\x9d\
+\xe1\xe2?l*\xb0G\x89/e\xf2\xa0\xd1\x981\xf6\
+\x84\xf4^\xbdX\xc0\x111\xb6\xaer/\xfa[\x16\xce\
+o\x17\x8bY\xd6\x01 .\xf4\x17\xffjS\xa1m\xe3\
+\xb6\xeb\xf2\xbdp\xe8`lC\xaft\xfd\x80Q\xc3\x86\
+,\xe4\x88\x18+\xf5\x85\xfey\xf6\x05s\xed\x8db!\
+\xcb9\x00\xc4\x8d\xa3\xc5?\xdaTp\x1b\x8a\xf7f\xda\
++}\xcb\x96\xf0C\xba\xbe\xc0\x9a\x9f\xcf\xa2\x8e\x88\xb1\
+P\xdf\x11\x9ahg8\xff\xb6\x98\xcf2\x0e\x00q\xa5\
+\xa5\xf8\x96M\x85\xb7\xc4\xbd\x84\xe4{1i\xd2D%\
+\xd7\xae\x0d?\xa4\x8f\x18\xc1\xc2\x8e\x88\x91\xf75\xb1\x9f\
+\x9d\xe1|\x09K7\x00\xe4\x02M\x12\xe9W\xd7\xac)\
+\xc0\xfa\xd5\xd1M\x19,(\xfb\xba\xa9,]\x1an@\
+\xdf\xb5K9\xcd\x9b\xb3\xc0#bd}Flo_\
+0\xffR<\x97%\x1b\x00r\x09\xfd\xea\xda\xf3\xb6\xed\
+\x94\x9c\x93\xc9\xe2R\x5c\xac\x9cy\xf3B\x0d\xe9\xa9K\
+/UNQ\x11\x0b=\x22F\xce\x87\xc5\xc3\xed\x0b\xe7\
+_\x88sX\xaa\x01 \x17\xa9#>j[H?U\
+\xdc\xe3\xf7R\x93>\x07>yr\xb8;\xe9\x13'\xb2\
+\xd8#b\xa4\xfc\xa9X\xdb\xbep\xae\xdf\xef\x98\xcc\x12\
+\x0d\x00\xb9\x8c\xee%{\xafm!}\x84\xf8v&m\
+\x18G\x8fVNee8\x01]\xff\xe7\x1ey$\x8b\
+>\x22F\xc2k\xc4j\xf6\x85\xf3\x8f\xc5\x13Y\x9a\x01\
+\x00\xd2!\xfdn\xdbBz\x7f\xf7\xd2\x92\xef\x85\xa7O\
+\x9f\xf4\xb9\xf00B\xfa\xbau\xca)-e\xf1GD\
+\xab\xdd%\x16\xd9\x17\xce?\x12G\xb3$\x03\x00\xfc\x97\
+j\xe2\x8fl\x0b\xe9\x1d\xc5\xe73Y\x80:tP\xce\
+\xd6\xad\xe1\x84\xf4\x193\x08\x00\x88h\xad\xcb\xed|\x80\
+\xe8/b?\x96b\x00\x80\x03\x87\xf4\x9bm\x0b\xe9\xfa\
+\xf2\xd2C\x99,DM\x9b\xa6w\xb4\xc3\x08\xe9\xc7\x1c\
+C\x10@D\xab\xdc+~\xcb\xce6\x8a\xf2\x8f\x96\xe8\
+\xcc\x12\x0c\x00\xf0\xcd\xe8\x87 \xae\xb0\xad\x80\xd7\x15\xef\
+\xcc\xa4\x0dc\x9d:\xcaY\xb6\xcc|@\xdf\xb2E\xa5\
+\xea\xd5#\x14 \xa2\x15\xbe+\x8e\xb13\x9c\xbf&6\
+g\xe9\x05\x00\xf0\xc6J\xdb\x0ayu\xf1\xbb\x99,N\
+%%\xca9\xff|\xf3!}\xc1\x82\xf4\xc5U\xc2\x01\
+\x22\x86\xe8\xabbo;\xc3\xf9\xd3bC\x96[\x00\x00\
+\x7fL\x15?\xb3\xa9\xa0\xebs\x93\x8b2Y\xa4t\x8f\
+\xf2\xd9\xb3\xcd\xf7G\x1f<\x98\x80\x80\x88\xa1\xf9\xa8\xd8\
+\xdc\xcep\xfe\xb3D\xbaA\x01\x00\x00d\xc0\x18\xf1\x9f\
+\xb6\x15\xf7Y\xeey\xca\x8c\xda0\x9a\x0c\xe8;w*\
+\xe7\x88#\x08\x0a\x88h\xdc;\xdd\xe3\x81\x16\x86\xf3k\
+\xc5\x02\x96W\x00\x80\xaa1H\xfc\x9bmE~T&\
+\xbd\xd2\xb5}\xfb\xaaTE\x85\xd1WFS\xd5\xaa\x11\
+\x18\x10\xd1\x987\x885\xec\x0c\xe7\x9b\xc4<\x96U\x00\
+\x80\xec\xd0)\x91\xbeioU\xb1\xef.\xbe\x90\xc9\x02\
+\xd6\xb1\xa3J\x1al\xc3\x98\xd2\xaf\x9c\x12\x1a\x10\xd1\x80\
+\x92\x80U\x81}\xc1\xfcK\xf1<\x96R\x00\x80\xec\xd3\
+R|\xc3\xb6\x90\xde\xdc=g\xe9{!k\xd5J9\
+\x9b7\x9b{e\xb4S'\xc2\x03\x22\x06\xea9v\xee\
+\x9a\xeb\xbbLg\xb2\x84\x02\x00\x04G\xb9\xf8\x9cm\x0b\
+\x80>gyG&\x0bZ\xfd\xfa\xcaY\xb1\xc2LH\
+\xbf\xfcrZ/\x22b \xee\x16O\xb53\x9c\xeb;\
+LcX:\x01\x00\x82\xa7\x9e\xf8\x84m\x0bA\x99\xf8\
+\x83L\x16\xb7\xd2R\xe5\x5cp\x81\x99\x90\xae\xdb=\xe6\
+\xe7\x13(\x101\xab=\xceO\xb07\x9c\x9f\xc8\x92\x09\
+\x00`\x8e\xd2D\xbaM\x96U\x0bB\xa1\xb85\x83\x05\
+.YX\xa8\x9cY\xb3\xcc\x84\xf4\xe1\xc3\x09\x15\x88\x98\
+\x15_\x11{\xd9\x19\xce\xff,\xf6c\xa9\x04\x000\x8f\
+n\x93u\xb5\x85\x0b\x83Z\xa8C\xb7\xdf\xc5.?_\
+%'M\x0a>\xa0\xef\xda\xa5\x9c\x16-\x08\x17\x88X\
+%\x9f\x12\xdb\xda\x19\xcew\x8b\x1dY\x22\x01\x00\xc2\xc5\
+\xbaWG\xb5\x93\xdcs\x99\xbe\x17\xbe\xa1C\xd3\x97:\
+\x83\xec\xea\xb2z\xb5JU\xafN\xc8@\xc4\x8c\xfc\x95\
+Xng8\x7fA<\x8ce\x11\x00\xc0\x0e\xa6\x88\x9f\
+\xda\xb6X\xf4\x10_\xcad\x01<\xfah\xe5\xec\xd8\x11\
+\xecN\xfa\x94)\x04\x0dD\x8cS\x8f\xf3_$\xd2\xc7\
+\x1f\x01\x00\xc0\x22\x86\x89\x1f\xd8\xb6h\xb4\x10\x1f\xcfd\
+!l\xdf^9[\xb6\x04\x1b\xd2{\xf4 p \xa2\
+g7\xda\xd9\xe3\xfc\xdf\xaf\x83\x16\xb2\x0c\x02\x00\xd8I\
+\x97\x84\x85\x0f\x1a5\x12\xef\xc9\xe4\xf2h\xb3f*\xb5\
+qcp\x01}\xd3&\xe5\xd4\xaeM\xf0@\xc4\x83\xd7\
+\x22{{\x9ckW%x\x1d\x14\x00\xc0z\xf4\x83F\
+\xaf\xd9\xb6\x88\xd4p\x7f\x1a\xf6\xbd8\xea\x00\xbdlY\
+p\xe7\xd1/\xbcP9\x05\x05\x84\x10D\x8cZ\x8f\xf3\
+/\xc4\x05,y\x00\x00\xd1A\xf7J\x7f\xcc\xb6\x05E\
+\xff4\xbc!\x93E\xb2\xa4$\xdd\xc3<\xa8\x9d\xf4\xb1\
+c\x09\x22\x88\xf85\xdf\x10\x07\xd9\x19\xce?\x16'\xb0\
+\xd4\x01\x00D\x0f+{\xa5kg\x89{\xfd.\x96\x85\
+\x85*9}z0\x01]w\x8d\xe9\xd8\x91@\x82\x88\
+\xff\xf1wb7;\xc3\xf9\xdf\xc4\xa1,q\x00\x00\xd1\
+E\xf7J\xbf\xc6\xc6\x90>\xc6}\x81\xcf\xd7\xa2\x99\x97\
+\xa7\x9c\xd1\xa3\x83\x09\xe9\xfa\xac;\xe7\xd1\x11Q|D\
+lfg8\x7f_\xec\xcc\xd2\x06\x00\x10}\xf2\xc5m\
+6\x86\xf4c\xc573Y@\x87\x0c\x09\xa6W\xba>\
+F\x93\x9fO@A\xcca\x7fio\x8f\xf3w\xc4\xf6\
+,i\x00\x00\xf1bQ\x22}\xa9\xc8\xaaE\xa7\x8b\xf8\
+|&\x0bi\xb7n*\x15D\xaf\xf4\xe3\x8f'\xa4 \
+\xe6\xa87\x8bev\x86\xf3g\xc5\xc6,c\x00\x00\xf1\
+d\xac\xf8\x91m\x8bO\xb9\xbbk\xe5w1M\xb5l\
+\x99n\x95\x98\xed\xf3\xe8\xba\x07;a\x05\x91\x1e\xe7v\
+x\xa7X\x83\xe5\x0b\x00 \xde\x0c\x14\xffl\xdb\x22T\
+[\xbc=\x93\x85\xb5aC\xe5\xacZ\x95\xdd\x90\xben\
+\x9dr\xca\xca\x08-\x889\xe2r1\xcf\xcep\xfe]\
+\xb1\x88e\x0b\x00 7\xe8\x90H\x9fg\xb4j1\xaa\
+&^\x9b\xc9\x02[\xab\x96r\x96.\xcdnH\x9f7\
+/})\x95\xf0\x82\x18\xeb\x07\x88\xe6\xda\xfb\x00\xd1\xba\
+\x04\x0f\x10\x01\x00\xe4\x1c\xbaW\xfa\xc3\xb6-Jz\x17\
+\xeb\x92L\x16\xdb\xe2\xe2t\xa8\xcefH\x1f6\x8c\x10\
+\x83\x18S\xdf\x11G\xd9\x19\xcc?\x15\xcfd\x89\x02\x00\
+\xc8]\x8a\xc5\x9bl\xdc=\xca\xa4WzRw`9\
+\xfd\xf4\xec\x05\xf4]\xbb\x94\xa3\xcf\xb9\x13f\x10c\xe5\
+Kb\x0f;\xc3\xf9\x07\xe2q,M\x00\x00\xa0\x7fB\
+\xddhcH?\xde\xdd\xe5\xf2\xdd+}\xc2\x84\xec\x85\
+\xf4\x95+U\xaazuB\x0dbL|Zlgg\
+8\xdf+veI\x02\x00\x80\xfd9/aa\x1bF\
+\xbd\xcb\xf5b&\x0b\xf1q\xc7e\xafW\xfa\xcc\x99\x04\
+\x1b\xc4\x18x\x9f\xbd=\xce_\x15[\xb2\x0c\x01\x00\xc0\
+\x81\x18/\xfe\xd3\xb6\xc5\xab\x85\xf8X\x86\xbd\xd2\x9dl\
+\xf5J\xe7<:b\xa4\xd5]\xa2j\xd9\x19\xce\x1fI\
+\xa4\xef\x04\x01\x00\x00|#}\xc4?\xda\xb6\x885\x14\
+\xef\xcedan\xdbV9[\xb6T9\xa0\xa7**\
+\x94\xd3\xba5A\x071\x82^\xe5v\x89\xb20\x9c\xdf\
+\x9aH\xdf\x05\x02\x00\x008$\xad\xc5\xd7m[\xccj\
+\x887d\xf2\xa0Q\xd3\xa6\xe9\xde\xe6Y\xe8\x8f\x9e\xa4\
+?:b\xa4\x5cg\xef\x03DW\x88\x05,7\x00\x00\
+\xe0\x87\xfa\xe2\xa3\xb6-jz\xa1\xdd\x90\xc9B]\xbf\
+\xberV\xac\xa8zH_\xb0@9\xba[\x0c\xc1\x07\
+\xd1\xfa\x1e\xe7\xb3\xec\x0c\xe6_&\xd2w~\x00\x00\x00\
+2\xa2\xa6x\xafm\x0b\x9c\xee\x95\xbe$\x93E\xbb\xb4\
+T9\x8b\x16U=\xa4\x9fp\x02\x01\x08\xd1b\xdf\x17\
+\xcf\xb43\x9c\x7f.\x9e\xc5\xd2\x02\x00\x00UE?3\
+}\xbd\x85\x0b\x9d\x9a\x22\xee\xf1\xbbxW\xabV\xf5\x07\
+\x8dtw\x98\x8e\x1d\x09B\x88<@\xe4\xc7\x8f\xc4\xb1\
+,)\x00\x00\x90M\xacl\xc38@|-\x93\x07\x8d\
+\xce8\xa3j\x97F7mRN\x9d:\x04\x22D\x8b\
+|A\xecfo\x8f\xf3.,#\x00\x00\x10\x04'\x8b\
+\x1f\xdb\xb6\xf8u\x10\x9f\xc9\xe4A\xa3\xd1\xa3\xab\xb6\x93\
+\xbex\xb1r\x0a\x0b\x09F\x88\x16\xa8[\xb16\xb7\xb7\
+\xc7y\x0b\x96\x0f\x00\x00\x08\x92~\xe2\x9fl[\x04\xf5\
+\xe3#\xbf\xcada\x1f5\xaaj\x0f\x1a\x8d\x1dK8\
+B\x0c\xd9{\xdcV\xac\x16\x86sz\x9c\x03\x00\x801\
+\x8e\x14\xdf\xb3m1,\x13\x7f\x98\xc9\x02\xdf\xb3\xa7r\
+v\xed\xca\xfc<\xfaQG\x11\x92\x10C\xf2\xfbn\x0b\
+V\x0b\xc39=\xce\x01\x00\xc08\x8d\xc5gl[\x14\
+\x8b\xc4\x8aL\x16\xfa\xa3\x8fV\xa9\x9d;3\x0b\xe9\x9b\
+7+\xa7^=\xc2\x12\xa2a\xb7\x8a\x85v\x86\xf3\xca\
+\x04=\xce\x01\x00 $J\xc5\x9f\xd9\xb68\xea6\x8c\
+\x8b2y\xd0\xa8M\x9b\xcc_\x1d]\xb6L\xa5t\x87\
+\x18B\x13\xa2\x11\x17\xb9s\xdd\xb2\xfa\xa3/\xd2\xd3\xe3\
+\x1c\x00\x00BG\xef\x12}\xdb\xc2\x1d,59\x836\
+\x8c\xfa\xd5\xd1\xd4\xfa\xf5\x99\x85\xf4\xe9\xd3\x09N\x88\x01\
+\xbbW\x9ci\xe7\xae\xf9\xa7\xe2T\x96\x04\x00\x00\xb0\x85\
+<q\x9d\x8d!}\x8c\xf8n&\xaf\x8e\xaeZ\x95Y\
+H\x1f0\x80\x10\x85\x18\x90\xbb\xc5\x89v\x86\xf3\x0f\xc5\
+\x13X\x0a\x00\x00\xc0F\xceN\xa4_\xca\xb3j\xf1\xec\
+%\xbe\xe27\x0c\xd4\xaa\xb5\xef\xd8\x8a\xef\xfe\xe8\xfa\x1c\
+{\xf3\xe6\x84)\xc4,\xfb\xa68\xd8\xcep\xfe{\xb1\
+\x07\xe5\x1f\x00\x00l\xe68\xf1\x03\xdb\x16\xd1f\xe2#\
+~CAI\x89r.\xb8\xc0wHO\xae]\xab\x9c\
+\xb22B\x15b\x96\xd4\xef\x1c\xb4\xb73\x9c\xffNl\
+J\xd9\x07\x00\x80(\xa0_\xcc\xdbk\xdbbZG\xfc\
+\xa9\xdf3\xe9\xfa\xe2\xe7\xbcy\xfe\x8f\xba,X\xa0\x1c\
+\xfdb)\xe1\x0a\xb1J\xde\xef\xbes`a8\xd7=\
+\xce\xebR\xee\x01\x00 J\xb4\x15\xdf\xb2mQ-u\
+\xfb&\xfb\x09\x08I\x1d\xb4\xa7N\xf5\x1f\xd2\xf5K\xa5\
+\x04,\xc4\x8c\xbdWl`g8\xbfG,\xa3\xcc\x03\
+\x00@\x14i$>e\xdb\xe2\xaa\xfb&_\xe17,\
+\xe4\xe5)g\xc2\x04\xff\x8f\x18u\xeaD\xd0B\xcc\xc0\
+\x1f\x8b\xb5\xec\x0c\xe7\xdf\x13\x8b(\xef\x00\x00\x10e\xf4\
+Kz7\xd9\xb6\xc8f\xd4+]\x87\xf4\xf1\xe3\xfd]\
+\x1a\xdd\xb4I9u\xeb\x12\xb8\x10}\xf8m\xf7\xd11\
+\x0b\xc3\xf9\x12J:\x00\x00\xc4\x05\xdd\x86q\x93\x85\x8b\
+\xad\x9a\xe1\xf6U\xf6\x15 \x86\x0f\xe7\x11#\xc4\x80\x5c\
+i\xe7\x03D\x9f\x893(\xe5\x00\x00\x10G\xf4\x0b{\
+_\xd8\x16\xd2\x8f\xcf\xa0Wzj\xe0\xc0\xf4\x11\x16\xaf\
+!}\xda4\xc2\x17\xe2!<\xc7\xce]\xf3\x7f\x8ac\
+)\xdf\x00\x00\x10g&\xb8\x0b\x9eU\x8bp?\xf15\
+\xbf\x81b\xd0 \x7f!\xbdwoB\x18\xe27\xbc\x0e\
+:\xcd\xcep\xfe'\xb17e\x1b\x00\x00r\x81\xbe\xee\
+\xc2g\xd5b\xdcA|\xceo\xb8\xe8\xd1C9\xbbv\
+y\x0b\xe8\xf2\xff/\xd5\xa6\x0d\x81\x0cq?\xf5\xafW\
+\xa3\xec\x0c\xe7\xbb\xc5\x8e\x94k\x00\x00\xc8%\x8e\x14\xdf\
+\xb3mQ>B|\xd4o\xc8\xe8\xdcY9;vx\
+\xbb4\xbaa\x83J\xd5\xa9C0C\x14_\x17\xfb\xdb\
+\x19\xce\x9f\x17\x9bP\xa6\x01\x00 \x17\xd1\x0b\xe0\xb3\xb6\
+-\xceu\xc5\xbb\xfc\x86\x8dv\xed\x94\xb3m\x9b\xb7\x9d\
+\xf4\xc5\x8bU\xb2\xb0\x90\x80\x869\xed\x8bb7;\xc3\
+\xf9Cb\x1d\xca3\x00\x00\xe42\xfa\xb1\x8f_\xd8\xb6\
+H\xd7\xc8\xe0A\xa3}\xc7W\xb6n\xf5\x16\xd2'O\
+&\xa4a\xce\xfa\xb4\xd8\xc6\xcep~K\x22\xdd\x1a\x16\
+\x00\x00 \xe7\xd1\x0b\xe2\xcd\xb6-\xd6\xd5\xc4\xff\xf1\x1b\
+>\x9a5S\xce\xe6\xcd\xdeB\xfa\x80\x01\x845\xcc9\
+\x1f\x13\x9b\xd9\x19\xce\xaf\x13\x0b)\xc7\x00\x00\x00\xffE\
+\xf7J_e\xdb\xa2\xad\xfb1_\xe27\x844i\xa2\
+\x9c\xf5\xeb=]\x1au\xb84\x8a9\xe4\x1dbm\xfb\
+\x82\xf9\x97\x09\x1e \x02\x00\x008(V\xf6J_(\
+&\xfd\x84\x91\xf2r\xe5\xac[w\xe8K\xa3\x1b7*\
+\x87K\xa3\x98\x03\xfeX\xaci_8\xff\x5c\x9cG\xd9\
+\x05\x00\x0084'\x8b\x1f\xdb\x16\xd2'\x89{|\x86\
+\xf4\x94\x87\x9d\xf4\xe4\xc2\x85\xca)( \xc4al\xd5\
+\xf79J\xec\x0b\xe7\x1f\xbb\xb5\x06\x00\x00\x00<\xd2S\
+\xfc\xbdm!}\x80\xf8\x86\x9fpR\xaf\x9erV\xaf\
+>\xf4q\x973\xcf$\xc8a,\xdd.\x16\xd8\x17\xce\
+\xff\xe8\xd6\x18\x00\x00\x00\xf0IK\xf15\xdbB\xfaQ\
+\xe2K~\xba\xbbHHOy\x09\xe9\x03\x07\x12\xe80\
+V\xaev\xefqX6\x87\xdf\x14[S^\x01\x00\x00\
+2\xa7\x9e\xf8\x88m!\xbd\xad\xf8\xac\x9f\xb0R\xb7\xae\
+rV\xad:\xf4\xa5\xd1\xb6m\x09v\x18\x0b\xcf\xb1\xb3\
+S\xcbsbc\xca*\x00\x00@\xd5\xd1m\x18o\xb1\
+m\xb1?\xdc\xef\xab\xa3\xfa2\xe8!B:\x97F1\
+\xea&\xed\x0d\xe7\xf7&\xd2\xef.\x00\x00\x00@\x96(\
+\x10+m[\xf4\x1b\x8a\xbf\xf4\x13`j\xd5R\xce\xf2\
+\xe5\x07\xdfI_\xbaT9EE\x84=\x8c\x9c{\xc5\
+3\xed\x0c\xe77\x89\xd5(\xa3\x00\x00\x00\xc1\xb0\xca\xb6\
+\xc5\xbf\x8e\xf83?;\x8c5k\x1e:\xa4O\x9bF\
+\xe0\xc3H\xf9\xbe8\xd9\xcep~\xa5\xfb\x05\x1f\x00\x00\
+\x00\x02d\xaa\xf8/\x9bB@\xa9x\x93\x9f@#!\
+=y\xc9%\x07?\xee2x0\xc1\x0f#\xe1nq\
+\xac\x9d\xe1|%\xe5\x12\x00\x00\xc0\x1c#\xc4\xbf\xdb\x14\
+\x06\x8a\xc4\xab|\x86t\xe7`!\x9dK\xa3\x18\x01\xdf\
+\x11\x87\xd9\x17\xcc\xf5cg\xe7P&\x01\x00\x00\xccs\
+\x8c\xf8\x07\x9b\x82\x81\xee\xf7\xbc\xc9\xcfq\x97\xb22\xe5\
+,[v\xf0K\xa3\xba\x03\x0cA\x10-\xf4u\xb1\xaf\
+}\xe1\x5c\xff\xba6\x99\xf2\x08\x00\x00\x10\x1e\xcd\xc5W\
+-\x0b\x08\xfb\xbaXx\x0e:5j\xa8\xd4\x92%\x07\
+\xbd4\x9a\xaaV\x8d@\x88V\xf9\xbc\xd8\xce\xbep\xfe\
+\x818\x98\xb2\x08\x00\x00\x10>\xba\xaf\xf1s\xb6\x85\xf4\
+9n\xcb9\xcf\xc7]\x0evqt\xf2dB!Z\
+\x15\xce\xdb\xdb\x17\xce\xff,\xf6\xa5\x1c\x02\x00\x00\xd8C\
+-\xf1>\xdbB\xfa\xa9nw\x0bO\xc1\xa7\xac\xec\xe0\
+\x17G\x87\x0c!\x1cb\xe8>-\xb6\xb0/\x9c\xcbw\
+\xe1Dg\xca \x00\x00\x80}\xe8Vj\xffc[H\
+\x1f.\xbe\x9b\x85\x9d\xf4TE\x85r\xda\xb5#$b\
+h>(6\xb2/\x9c\xffNlB\xf9\x03\x00\x00\xb0\
+\x97\xbc\x84\x85\xbd\xd2\xfb\x89oz\x0dB\xf5\xea)g\
+\xed\xda\x03\xef\xa2\xaf_\xcfK\xa3\x18\x8a\xbfv\x1f\xe6\
+\xb2ln=&\xd6\xa5\xec\x01\x00\x00D\x83\xf9\x89t\
+\xab5k\xc2D/\xb7\xeb\x85\xa7@\xa4;\xb7\xacY\
+s\xe0\x90\xae\xbb\xbepi\x14\x0dz\xbf\xd8\xc0\xbep\
+~\xb7XJ\xa9\x03\x00\x00\x88\x16\x13\xc4\x8fm\x0a\x15\
+]\xc5\x97<\x86\xa2\xd4\xc1v\xd2\xe7\xccQN^\x1e\
+\xe1\x11\x03\xf7\xe7bm\xfb\xc2\xf9\xcdb5J\x1c\x00\
+\x00@4\x19\x9aH\xb7^\xb3&\x5c\xb4s\xbb`x\
+\x0aH\x8d\x1a\xa9\x94>\xd6r\xa0\x90>z4\x01\x12\
+\x03\xf5.\xb1\x96}\xe1\xfc\xdb\x89\xf4}\x13\x00\x00\x00\
+\x880}\xc4\xbf\xd8\x142:\x88\xbf\xf5\x1a\x94\xca\xcb\
+Uj\xc3\x86\xaf\x07\xf4\xcaJ\xe5\xf4\xe8A\x90\xc4@\
+\xbc\xdb\xce\x9d\xf3\xcb\x13\xe9{&\x00\x00\x00\x10\x03:\
+\x8a{l\x0a\x1b\x87\x8b\x8f{\x0dLM\x9b*g\xf3\
+\xe6\xafwv\xd9\xb1C9\xcd\x9a\x11(1\xab\xde*\
+\xd6\xb0+\x98\x7f)\x9eK\x19\x03\x00\x00\x88\x1f\xcd\xc4\
+\xd7l\x0a\xe9\x8d\xdc\xee\x18\x9e\x82\xd3\xe1\x87\x1f0\xa4\
+\xef;\xa7\xae\xdb3\x12,1\x0b\xde,\x96\xd8\x15\xce\
+?\x13\xa7R\xbe\x00\x00\x00\xe2KS\xf1\x05\x9bBz\
+\xb9\xdb_\xdaS\x80j\xd1B9[\xb7~=\xa4/\
+Z\xa4\x92\x85\x85\x04L\x8c\xdb\xce\xb9\x0e\xe7gR\xb6\
+\x00\x00\x00\xe2O\x99\xf8K\x9bBz-\xf7B\x9e\xa7\
+ \xd5\xaa\x95r\xb6m\xfbzH\x9f:\x95\x90\x89\x19\
+{\x9dXdW8\xff\xa7x\x02\xe5\x0a\x00\x00 w\
+(\x16\x7fdSH\xd7;\x97\xb7x\x0dT\x9d;+\
+g\xd7\xae\xaf\x87\xf4\xfe\xfd\x09\x9b\xe8\xdb\xff\xb1/\x9c\
+\xeb\xceK\x83(S\x00\x00\x00\xb9\x87\xee\xa3|\x93M\
+!\xbd\xd4=f\xe0)Xu\xeb\xa6R\x15\x15_\xbd\
+4\xaa\xff\xfb\xf6\xed\x09\x9d\xe8\xd9\xeb\xed\x0b\xe7\x7f\x15\
+\xfbS\x9e\x00\x00\x00r\x17\xdd\xb2m\xb3M!]\x87\
+\xa5k\xbd\x06\xac\x01\x03\xbe\xbe\x8b\xae/\x926lH\
+\xf8\xc4C\xfam\xb1\xc0\xaep\xbe7\x91\xee\xb8\x04\x00\
+\x00\x00\x90X\x92H\xb7r\xb3\x22\xa8\xe8\xd0t\xa5\xd7\
+\xa05j\xd4\xd7\xdb/\xaeX\xa1\x9c\x92\x12B(F\
+i\xe7\xfc-\xb1\x05\xa5\x08\x00\x00\x00\xf6gZ\x22\xdd\
+5\xc2\x9a\x90~\x85\xd7\xc05a\xc2\xd7w\xd2\xcf:\
+K9yy\x84Q\xfc\x9a\xdf\xb1/\x9c\xeb\xceJM\
+(A\x00\x00\x00p N\x12?\xb6)\xa4Wz\x09\
+]:\x88O\x99\xf2\xf5\x90>f\x0c\x81\x14\xbf\xe2w\
+\xed\x0b\xe7O\x8a\xf5(=\x00\x00\x00p0\x86\x8a\x1f\
+\xda\x14\xd2+\xbc\x84\xaf\xfc|\xe5\xcc\x9e\xfd\xd5\x80^\
+Y\xa9\x9cc\x8e!\x98\xe2>o\xb0/\x9c?\x22\xd6\
+\xa6\xe4\x00\x00\x00\x80\x17\x06\x8a\x7f\xb3%\xc8\x14\xb9\xad\
+\xf0\x0e\x19\xc2\x8a\x8a\x94\xb3p\xe1WC\xfa\x8e\x1d\xca\
+i\xde\x9c\x80\x9a\xe3\xfe\xc8\xbe\x17B\x1f\x12kRj\
+\x00\x00\x00\xc0\x0f\xba\x9bD2a\xd1N\xfaN/a\
+\xaczu\xe5,]\xfa\xd5K\xa3\xeb\xd7\xabT\x9d:\
+\x04\xd5\x1c\xf5F\xb1\x9a]\xe1\xfc\x8eD\xfa-\x02\x00\
+\x00\x00\x00\xdf\xb4\x13\xf7\xd8\x14\xd2wx\x08d\xc9\xb2\
+2\xe5\xe8N.\xfb\x87\xf4\xc5\x8bU\xb2\xb0\x90\xc0\x9a\
+c\xea\xbe\xfa\xd5\xed\x0a\xe7\xb7'\xd2o\x10\x00\x00\x00\
+\x00dL[q\xb7-\x01\xa7\xd0\xed_}\xc8pV\
+\xb7\xaer.\xbb\xec\xab\xc7]\xce<\x93\xd0\x9aC\xde\
+)\x96\xd9\x15\xce\xe5\x1f\x89\x9ds\x00\x00\x00\xc8\x0e\xcd\
+\xc47\x12\x89\x88\xb5`l\xd2$\xfdp\xd1\xfe!\xfd\
+\xd8c\x09\xaf9\xe0]bM\xbb\xc2\xf9\x8f\x13\xec\x9c\
+\x03\x00\x00@\x96\xd1\xad\xe0~cK\xe0\xc9\x13\xd7{\
+\x09k\xed\xda\xa9\xd4\xce\x9d\xff\x0d\xe8\xbbv\xed\xfb\x7f\
+#\xc4r!\xd4\xa0\xd7\x8b\x05\x94\x10\x00\x00\x00\x08\x82\
+:\xe2c\x91\x0b\xe9]\xba(\xa7\xa2\xe2\xbf!\xfd\xf2\
+\xcbU\xb2Q#\xc2l\x0c\xbd]\xacaW8\xaf\x14\
+\xf3(\x1d\x00\x00\x00\x10$\xb5m\x0a\xe9\xf9\x1e/\x8e\
+:\xc3\x86}\xf5\xa8\x8b\xbeDZRB\xa8\x8d\x91\xf7\
+\x8a\xb5\xed\x0a\xe7\xd7\x8a\xf9\x94\x0c\x00\x00\x000A\xa9\
+x\x9fM!\xdd\xd3\x8b\xa3\x13'~5\xa4\x9f{n\
+\xfa\x81#\xc2m\xe4}@\xackW8\xbf2\xc1\xce\
+9\x00\x00\x00\x18F_x\xbb\xcd\xa6\x90\xbe\xebPA\
+./\xef\xeb\xaf\x8d\x9et\x12\x017\xe2>(\xd6\xb7\
++\x9c\xaf\xa1<\x00\x00\x00@X\xe8\x8bo\xdf\xb1%\
+\x18\xe9\xee.Wzymt\xd1\xa2\xaf\x86\xf4\xbe}\
+\x09\xba\x11\xf5I\xb1\xb1]\xe1|\x09e\x01\x00\x00\x00\
+\xc2F\xff\x8c\xbf\xcb\xa6\x90~\xd5\xa1\x82]i\xa9J\
+\xad\x5c\xf9\xdf\x80\xbec\x87rZ\xb4 \xf0F\xcc\xe7\
+\xc5\x16\x84s\x00\x00\x00\x80\x03\xa2/\xc2]aKP\
+*\x16o9T\xc0k\xd0@9\x1b7\xfe\xf7\xa5\xd1\
+\x0d\x1b\x94S\xa7\x0e\xc17\x22\xbe&v\xb6+\x9c\xaf\
+\xa6\x0c\x00\x00\x00\x80m\xe8\x9d\xf4u\xb6\x04&\xdd\x07\
+\xfb\xc7\x87\x0az\xcd\x9b\xab\xffk\xef\xfec\xed\xae\xeb\
+;\x8e\x7fo\x7f\xd1\xd6\xda\x9f\x16\x1a\x1bhK\xaf\xa6\
+\x19\xb8D\xaa-m\x88s\xcd\xbaF\x94\x15\x9dT\xc6\
+\xa6\x80\xa3\xb9\x13\x7f\xc4\x94\x8b\xd8\xc9\xc0\x16*k\xb5\
++\xed\xed6\xdc2\xe6\xb6f,\xe0d\xd9\x961A\
+\x13\xc1X\x7f!n\xc8HQA\x84\xdes\x8d\x1a\xa3\
+\x9bf*\xb4_\xdf\xdf\x9d\xe3N[\xee\xbd\xed\xed\xfd\
+\xf1\xf9\x9cs\x1e\x8f\xe4\xf5o\xd3\x9c\xf3=\xc9\xb3\xa7\
+\xdf\xf3\xf9\xd6\xf6\xeci~\x93\xfe\xfe\xf7\x97\x03\xd3\xa6\
+\x09\xe0\xcc\xf7\xcd\xd8\xab\xf3\x8a\xf3\x9d>\xfe\x00@\xce\
+\xae\xcf%\x9c\xa6\xc7\xee\x19\xe9\x19\xe9W^)\x823\
+\x8f\xf3W\xf9A(\x00\xc0\x88\xf5\x16\xad\xf4M\xfa\xba\
+u\xc7\xffht\xfdz1\x9c\xe1\x9e\x8e\xbd&\xaf8\
+\xbf\xd5G\x1d\x00h%7\xe5\x12R\xd5\xc3k\xee\x1f\
+\xc9\x19\xe9\xfb\xf7\x97\xb5\xf3\xcf\x17\xc5\x19\xedp\xec\xcd\
+y\xc5y\xf5\xc3h\xe7\x9c\x03\x00-gK.A5\
+;v\xdf0\x01\xd8_=\xb0\xe8\x1d\xefhF\xfa\xae\
+]em\xe1Bq\x9cI\x9co\xca+\xceo\xf3\xd1\
+\x06\x00Z\xd9{cGs\x89\xf4O\x9e\xec\x8c\xf4\xf7\
+\xbd\xaf\x19\xe9\xdb\xb7\x97\xb5Y\xb3Dr\xe2]\x9dW\
+\x9c\xff\xb1\x8f4\x00\xd0\x0e\xfe \x97H_\xd0x,\
+\xfc\x90A8gNY\xdb\xb1\xa3\x19\xe9\xef~w\xfd\
+\xdbu\xa1\x9cd[\xdc\xd6\x02\x000nzr\x89\xf4\
+\x85\xb1\x07\x87\x89\xc2\x81\xee\xee\xb2\xb6wo3\xd27\
+n\x14\xcb\x09vc^q\xde'\xce\x01\x80vt]\
+.\xc1uN\xec\xcb\xc3\x05\xe2\xaaU\xc7\x9f\xec\xb2f\
+\x8dh\x9e\xc0\xed\x8fM\xca'\xce?V\xd4\x1f\xc6\x05\
+\x00\xd0\x966\xc7\x8e\xe4\x10^K\x1a\x8f\x8b\x1f2\x14\
+/\xbd\xb4\x19\xe8\xb7\xdf^\xd6\x96.\x15\xcf\x13\xb0;\
+c\x93\xf3\x89\xf3?+|s\x0e\x00t\x80kr\x89\
+\xf4\x15\xb1\xc7\x87\x8a\xc5\xae\xae\xb2\xbf\xa7\xa7\x19\xe9\x1f\
+\xfaP\xfd\x1eu\x11=n\xfb\xe7\xc6\x03\xa62\x89\xf3\
+;\xc49\x00\xd0I~?\x97H_\xd9xB\xe5\xa0\
+\xf7\xa3O\x9f^\xd6>\xf0\x81f\xa4_w]Y\x9b\
+2EL\x8f\xc3\x1e\x8a\xcds[\x0b\x00@R\xef,\
+2\xf9\xe1\xe8\xebb\xcf\x0e\x15\x8f\x0b\x16\x94\x03;w\
+6#}\xd3&A=\xc6{4\xb64\x9f8\xbf'\
+6\xc5\xc7\x13\x00\xe8To/2\xf9&\xfd\x8d\x8d\x87\
+\xe2\x0c\x1a\x91\xcb\x97\x1fw\xb2K\xff\xda\xb5\xc2z\x8c\
+v\xa8q\xabQ&q~wl\xb2\x8f%\x00\xd0\xe9\
+\xdeUd\xf2M\xfaU\xc3\xc5du\x92K#\xd0\x07\
+\xaaX\xf7\xa3\xd1Q\xef\xe9\xd8\xda|\xe2\xfc\xbe\xd84\
+\x1fG\x00\x80\xba\xf7f\x12ie\xef0A\xd9_\xdd\
+\xde\xe2G\xa3c\xb2\xea\x7f+~+\x9f8\x7f(6\
+\xd3\xc7\x10\x00\xe0x\xd9\x9c\x93\xbem\xa8@\xaf\x9e*\
+\xfa\x9e\xf74\xbfI\xef\xed\xf5\xa3\xd1\xd3\xdc\x95\xf9\xc4\
+\xf9\xc3\xb19>~\x00\x00\x83\xdb\x99C\xb4U\xe7p\
+\xff\xd5Pq9sfY\xbb\xf9\xe6f\xa4_~\xb9\
+\xe0\x1e\xe1\xb6\xe7\x13\xe7\xdf\x8c\xbd\xd4\xc7\x0e\x00`x\
+;r\x88\xb7\xa9\xb1\x03CE\xe6\xe2\xc5\xe5@\xf5\xf0\
+\xa2_\xde\xeeR=yTx\x9f\xd2\xf6\xc4\xba\xf2\x88\
+\xf3\xa7b\x8b}\xdc\x00\x00NM\x16\xdf\xa4\xcf\x88\xfd\
+\xd3P\xb1\xb9re3\xd0\xf7\xed+\x07\xba\xbb\x05\xf8\
+Iv\xa0\xf1\x0f\x9f\x0c\xde\xdb\xf8\xeb\x14\xcb}\xcc\x00\
+\x00N]\xf5\x04\xc7?\xcd!\xd2g\xc7\x1e\x18*:\
+/\xbb\xacy\xab\xcbm\xb7\x95\x03s\xe7\x0a\xf1!\xf6\
+/\x8d\x7f\xf0d\xf0\x9e~?v\xbe\x8f\x18\x00\xc0\xe9\
+E\xfa\x1d9D\xfaY\xb1/\x0c\x16\x9e\x93'\x97\xb5\
+-[\x9a\xdf\xa4\xf7\xf6\x96\xfd~4\xfa\x82}66\
+?\x8f8\xff\xef\xd8\xab}\xb4\x00\x00N_\xf5\xd0\x98\
+\xbbs\x88\xf4\x97\xc5\x1e\x1f,@\xe7\xcf/k\xbbv\
+5#\xbd\xfaV]\x94\xff\xff\x1e\x8b-\xcf#\xce\x7f\
+\x1a\xfbM\x1f)\x00\x80\xd1\x9b\x1a\xbb7\x87H_\x1d\
+\xfb\xd6`!\xfa\xf2\x97\x97\xb5\xbe\xbef\xa4_x\xa1\
+8o<\x88hU\x1eq\xfe\x5c\xec\x8d>J\x00\x00\
+c\xa7\xfa&\xfd\x1fr\x88\xf4\xf5\xb1g\x07\x0b\xd2\x0d\
+\x1b\x9a\x81^\x9d\xf0r\xf6\xd9\x1d\xff \xa27\xe4\x13\
+\xe7o\xf2\x11\x02\x00\x18{\xd3c\x0f\xe4\x10\xe9\xd7\x0e\
+\x16\xa5]]em\xf3\xe6f\xa4Wg\xa5\xcf\x98\xd1\
+\xb1\x81~C\x1eq~4v\xad\x8f\x0e\x00\xc0\xf8\x99\
+Q\xd4\x1f\xcb\x9e<\xfen\x1e,L#\xc8\x07\xb6m\
+kFzOO=\xdc;,\xce\xf7\xe5s\xd6\xf9u\
+>2\x00\x00\xe3\xafz,\xfb#\xa9\xe3oR\xec/\
+\x86x\x88Qm\xcf\x9ef\xa4\xaf[\xd7Qq\xfe\xf1\
+|\xce:\xdf\xed\xa3\x02\x000q\xce\x8c=\x91:\x02\
+\xcf\x18\xeaAF\x17]\xd4<\x1f}\xef\xde\xb2\xb6d\
+IG\xc4\xf9\xc1\xd8\xbc<\xe2\xfco\x8b\xfa1\x9d\x00\
+\x00L\xa0s\x8b\xfa\x13!\x93\xc6\xe0\xbc\xc69\xdf/\
+\x08\xd6+\xaeh~\x8b~\xeb\xade\xedE/j\xeb\
+8?\x14\xeb\xce#\xce\xef/\xea'\xff\x00\x00\x90\xc0\
++b?H\x1d\x85\xe7\xc4\xfe\xf3\x84`\xad\x1eX4\
+p\xc3\x0d\xcdo\xd2\xab\x1f\x90\xb6i\x9c?\x13{M\
+\x1eq\xfe\xd5\xd8l\x1f\x0b\x00\x80\xb4\xd6\x15\xf5\x87\xd0\
+$\x8d\xc3U\x83\x9d\x91\xbepaY\xfb\xc8G\x9a\xdf\
+\xa4\xaf^\xdd\x96\x81\xbe9\x8f8?\x1c;\xc7\xc7\x01\
+\x00 \x0f\xaf\x8f\xfd<u$\xfeF\xe3\xdb\xe4\xe3\x02\
+\xf6\xbc\xf3\xca\xda\xfe\xfd\xf5@\xaf~<\xbahQ[\
+\xc5\xf9\xf6<\xe2\xfc\xbb\xb1n\x1f\x03\x00\x80\xbc\x5c\x11\
+;\x92:\x16\x7f\xefd\xf7\xa3W\xb7\xbdL\x99\xd2\x16\
+q\xfe\xb1\xc6i6\x89_\xf3\x1f\xc7V\xb9\xfc\x01\x00\
+\xf2tm\x91\xc17\xba\x7f4\xc8\xfd\xe8\xb5\xad[\x9b\
+\x91\xbeqc\xcb\xc7\xf9\xa7b\xb3\xf2xJ\xe8\x1b\x5c\
+\xf6\x00\x00y\xdb\x9e:\xd0\xab\x87\xf4\xec?1j\xcf\
+<\xb3\xec\xdf\xbd\xbb\x1e\xe8}}em\xe9\xd2\x96\x8d\
+\xf3Gb\x8b\xf2\xb8\xb5e\xb3\xcb\x1d\x00\xa05\xdc^\
+dxFz\xff\xda\xb5\xcdS]n\xba\xa9\xacM\x9d\
+\xdarq\xfed\xecW\xf3\x88\xf3\xed.s\x00\x80\xd6\
+19\xf6\x89\xd4\x11\xb9 \xf6\xf9\x13#\xfd\xaa\xab\x9a\
+\xb7\xba\x5crI\xcb\x05\xfa[\xf2\x88\xf3\xbf+<\x88\
+\x08\x00\xa0\xe5T\x0f\xab\xf9\xb7\xd41\xb9$\xf6\xd8\xb1\
+\x91[=\xb0\xa8zpQ\x15\xe8\xd5SF\xcf:\xab\
+e\xe2\xfc\xe6<\xe2\xfc\xde\xc6?\xc0\x00\x00hA\xd5\
+Ck\x1eN\x1d\x95\xbf\x1e{\xf6\xd8\xd8\xed\xee\xae\xdf\
+\x87^EzOOK\xc4\xf9?\xc6\xa6\xa6\x8f\xf3G\
+b/vY\x03\x00\xb4\xb6\x05\xb1C\xa9#\xfd\xf2\x13\
+\xa3\xf7\xe2\x8b\x9b\xb7\xba\xacX\x91u\x9c\x1f\x8c\xcdI\
+\x1f\xe7O\xc7\x16\xb9\x9c\x01\x00\xda\xc3\xb2\xd8wRG\
+\xfa\xf6c\xc3w\xf2\xe4\xb2v\xfd\xf5\xf5@\xef\xed-\
+k]]Y\xc6\xf9\x13\xb1\x97\xa5\x8f\xf3\x1f\xc6~\xc5\
+e\x0c\x00\xd0^^U\xd4\x1fj\x93,4\xab\x87\xfa\
+\xfc\xcd\xb1\x01<o^Y\xfb\xf0\x87\xb3\xfd\x16\xfdp\
+lC\x1eg\x9dop\xf9\x02\x00\xb4\xa7\xd7\xc7\x9eO\
+\x19\x9c\xd5\xc3}>}l\x08\xafYS\x0f\xf4\xb7\xbd\
+-\xbb@\xef\xcd\xe3G\xa1\xefr\xd9\x02\x00\xb4\xb7\xde\
+\xd4\xd1\xb9,\xf6\xf8\xb11|\xcd5e\xff-\xb7d\
+\x15\xe7\x07b\x93\xd3\xc7\xf9G]\xae\x00\x00\x9d\xa1/\
+u\xa4_\x14{\xe6\x97A<sfY\xbb\xf1\xc6l\
+\xe2\xfc\xa1\xd8\xec\xf4q\xfe@Q?*\x13\x00\x80\x0e\
+P=\xe4\xe6@\xeaH\x7f\xeb\xb1a<gN\x16q\
+~(\xb64}\x9c\xffG\xe18E\x00\x80\x8e3=\
+\xf6\xd9\xd4\x91\xbe3\xa3\xdbZ\xfac\xeb\xd3\xc7\xf9\xe1\
+\xd8b\x97'\x00@g\x9a_$>#}j\xe3!\
+@9\x04\xfa\x1f\xa6\x8f\xf3\xea\x94\x9d\x95.K\x00\x80\
+\xce\x96\xfc\x8c\xf4\x85\xb1\x87\x13\xc7\xf9]\x8dc \x13\
+\xbe\x0eGb\xbf\xedr\x04\x00\xa0\x92\xfc\x8c\xf4\xf3b\
+O&\x8a\xf3\xaf\xc4^\x92\xfe\xdb\xf3\xad.C\x00\x00\
+\x8eU\x9d\x91\xfe\x5c\xcaH}S\x828\x7f:v\x81\
+\xe3\x14\x01\x00\xc8\xd4\x96\xc4\xa1Z\xde2\xc1\x81\xde\x93\
+>\xce?W\xd4\x7f\xb0\x0b\x00\x00\x83\xda\x972X\xa7\
+\xc4>>Aq~G\xac+m\x9c\x7f+\xb6\xd0%\
+\x07\x00\xc0p&\xc5\xeeM\x19\xe9sc_\x18\xe78\
+\xffLlf\xda8\xffQl\x85\xcb\x0d\x00\x80S1\
+#\xf6\xa5\x22\xf1\x8fF\x9f\x1a\xa78\xffzly\xfa\
+\x13[6\xba\xcc\x00\x00\x18\x89\x97\x16\xf5\x87\xe6$\x0b\
+\xd9\xdf\x1d\xa7@\xbf4\xfd}\xe7\xdb\x5c^\x00\x00\x9c\
+\x8e\xea\xa19?I\x19\xb3\xbb\xc78\xce\xff$}\x9c\
+\xdf\x13\xebri\x01\x00p\xba\xde\x1c;\x9a*h\xcf\
+\x88\xdd7Fq~\x7f\xe3\xcfK\x18\xe7_\x8b\xcdr\
+I\x01\x000Z\x1fL\x18\xb5\xe5\xe2\xd8c\xa3\x8c\xf3\
+'b\xcb\xd2\xc6\xf9\xf7\x8a\xfaS[\x01\x00`\xd4\xaa\
+\x93]>\x912\xd2\xd7\xc7\x0e\x8f\x22\xd07\xa5\xffQ\
+\xe8%.#\x00\x00\xc6Ruk\xc6\xa3)#\xbd\xf7\
+4\xe3\xbc/\xfd}\xe7;\x5c>\x00\x00\x8c\x87\xead\
+\x97\xfeT\xa1;)v`\x84q\xfe`\xfa\xf3\xce\xff\
+\xb5\xa8\xff\x0f\x04\x00\x00\x8c\x8b\xb5\xb1\x9f\x16\x09\x1fb\
+\xf4\xc5S\x8c\xf3\xea\x1c\xf5\x15i\xe3\xfc\x1b\xb1\xb9.\
+\x19\x00\x00\xc6\xdb\x95\x09\xa3\xb7|e\xec\xdb\xa7\x10\xe8\
+W\xa7\x8d\xf3\x1f\xc7^\xe1R\x01\x00`\xa2\xf4\xa5\x8c\
+\xf4\x9e\x93\xc4\xf9\x9d\xe9\xef;\xff\x1d\x97\x08\x00\x00\x13\
+iJ\xec\xd3\xa9\x02\xb8+\xf6\x97C\xc4\xf9\x97bs\
+\xd2\xc6\xf9>\x97\x07\x00\x00)\xcc/\xea\xf7Y'\x09\
+\xe1\xd9\xb1\x83'\xc4\xf9\xb3\xb1\xd5i\xe3\xfc\xc1\xd8T\
+\x97\x06\x00\x00\xa9\x5c\x10\xfb\xdfTA|\xc1\x09\xf7\xa3\
+oM\x1b\xe7\xdf\x8f\x9d\xed\x92\x00\x00 \xb5\xab\x13F\
+\xf1\xff\xfd\x18\xb4\x8a\xf3\x7f\x8fMI\xf7\xf78\x1a\xbb\
+\xd8\xa5\x00\x00@.nO\x19\xe9\xbbbK\xd2~{\
+\xbe\xcd%\x00\x00@N\xa6\xc5>_$\xfc\xd1h\xc2\
+8\x7f\xa8\xa8\xffh\x16\x00\x00\xb2rV\xecp\x91\xfe\
+\x88\xc3\x89\x5c\xf5d\xd53\xbd\xf5\x00\x00\xe4\xea\xc2\xd8\
+\xcf:$\xce\x9f\x8f\xfd\x9a\xb7\x1c\x00\x80\xdc\xbd\xb3C\
+\x02\xfdFo5\x00\x00\xad\xe2\xce6\x8f\xf3\xfbb\x93\
+\xbc\xcd\x00\x00\xb4\x8aY\xb1Cm\x1a\xe7\xdf\x89-\xf2\
+\x16\x03\x00\xd0j\xce\x8f\xfd\xa4\xcd\xe2\xbc:\xef|\x83\
+\xb7\x16\x00\x80V\xb5\xa9\xcd\x02}\x87\xb7\x14\x00\x80V\
+\xd7\xd7&q~\xb0p\xde9\x00\x00m`j\xecs\
+-\x1e\xe7?\x8c-\xf3V\x02\x00\xd0.\xce\x8e}\xaf\
+\x85\x03\xfd2o!\x00\x00\xed\xe6u\xb1#-\x18\xe7\
+\x7f\xed\xad\x03\x00\xa0]\xedj\xb18\x7f26\xc7\xdb\
+\x06\x00@\xbb\xaa\xeeG\xffb\x8b\xc4\xf9s\xb1U\xde\
+2\x00\x00\xda\xdd\xb9E\xfdG\x97\xb9\x07\xfaM\xde*\
+\x00\x00:E\xee\xe7\xa3;R\x11\x00\x80\x8e\xf3\xd1L\
+\xe3\xfc\x7fb\xcb\xbd=\x00\x00t\x9a3b_\xc90\
+\xd0\xdf\xea\xad\x01\x00\xa0Su\xc7~\x94Q\x9c\xdf\xe5\
+-\x01\x00\xa0\xd3\xbd%\x938\xffvl\xae\xb7\x03\x00\
+\x00\x8a\xe2\xef\x13\xc7\xf9\xd1\xa2\xfe %\x00\x00 \xcc\
+\x8b=\x930\xd0\xef\xf0\x16\x00\x00\xc0\xf1^\x1b;\x92\
+ \xce\x9f\x8a\xbd\xd8\xcb\x0f\x00\x00/\xb4m\x82\xe3\xfc\
+\xf9\xd8\x1a/;\x00\x00\x0c\xaez8\xd0\xc1\x09\x0c\xf4\
+]^r\x00\x00\x18\xde\xb9\xc5\xc4\x1c\xbd\xf8\xb5\xa2~\
+\x16;\x00\x00p\x12W\x8ds\x9c\xff<\xf6J/3\
+\x00\x00\x9c\xba\xbb\xc61\xd0\xb7{y\x01\x00`d^\
+\x12\xeb\x1f\x878\x7f\xacpk\x0b\x00\x00\x9c\x96\xea\xe1\
+AG\x8b\xb1=\xb5e\x95\x97\x15\x00\x00N\xdf\xde1\
+\x0c\xf4[\xbc\x9c\x00\x000:\xd5\xed(\x8f\x8eA\x9c\
+W\x7f\xc64/'\x00\x00\x8c^u\xe2\xca\xcf\x0a\xa7\
+\xb6\x00\x00@6\xb6\x8e\x22\xd0o\xf3\xf2\x01\x00\xc0\xd8\
+\x9a\x14\xfbL\xe1\xd4\x16\x00\x00\xc8\xc6\xb2bdO\x19\
+\xadNmY\xede\x03\x00\x80\xf1\xf3\xf6\x11\x04\xfa.\
+/\x17\x00\x00\x8c\xbf\xbbO!\xce\xff\xabpk\x0b\x00\
+\x00L\x88\xea)\xa3\x03\xc5\xf0\xb7\xb6\x5c\xe8e\x02\x00\
+\x80\x89\xb3\xa1\x18\xfa)\xa3\xbb\xbd<\x00\x000\xf1\xfe\
+|\x908\xffzl\x86\x97\x06\x00\x00&\xde\xcc\xd8\xa1\
+\xe2\xf8[[\xd6xY\x00\x00 \x9d\x95E\xfdI\xa1\
+U\xa0\xef\xf5r\x00\x00@z\x1f\x8c}\xa3\xa8\x7f\xa3\
+\x0e\x00\x00$6-v\x81\x97\x01\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x0e\xf2\x0b@\
+;\x84\xc7\x9dY\x0c\xd3\x00\x00\x00\x00IEND\xae\
+B`\x82\
+\x00\x00/`\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x01[\x00\x00\x01\x5c\x08\x06\x00\x00\x00f\xca\x1dU\
+\x00\x00\x00\x01sRGB\x00\xae\xce\x1c\xe9\x00\x00\x00\
+\x09pHYs\x00\x00\x0d\xd7\x00\x00\x0d\xd7\x01B(\
+\x9bx\x00\x00\x00\x07tIME\x07\xdc\x03\x09\x08\x1f\
+%\x1b\xcd\xc8\xcf\x00\x00\x00\x06bKGD\x00\xff\x00\
+\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00.\xe0IDATx\
+\xda\xed\x9d\x09t\x15U\xb6\xfe\xaf\xb6C\xdb-\xdc\x9b\
+\x00b\xdb\xb4\xa2\xb6\xf6\xa0\xdd\xb6\xa2>q\xa0\xaa\x92\
+0*\x8a \xa2\x88\x8a8\xb7-\x88\xa08a\xa7E\
+Q[[\x14'\x22!u+\x84\x00\x81\x10H \x10\
+\xa6@\x98\xc7\x80!\xcc\x90\x90\x89\x84\x04\x12\x12\x12\x12\
+\x02\xa9W\xbb\x82\x1aHn\x86\x9b[u\xeb\xd4\xf9~\
+\xff\xf5\xad\xf7_\xbd^?\xaa\xce>\xe7\xcb\xb9\xa7\xf6\
+\xd9\xdb\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x18@\x07Y\xbc2P\x11\xba\x06\xc8B_\x97,\
+\x0eu\xb9\xc5QNE\xfcX\xfb\x9f\xe1\x9a\xe24\xa5\
+\xb8\xdcB\xba\xa6\x03\xb5\x12\x0b5\x1d\xd3\xfe\xff\xc7\xb5\
+\xff\xa9\xd6\x97\xfe\x9f\x1f\xab\xfd\xdf\xfb\xe9\xbf\xa3\xff\xf7\
+Wj\xff\xd9\x1cM\x93\x9dni<\xfd;\xf4\xef\xd1\
+\xbf\x1b(\x8bw\xd1s \x1a\x00\x00v\x09\xebrq\
+\x80\x12\xfcw\xcd\xe0\x06\xe8\x06\xe7\x16\xbfq*\xc2\x82\
+Z\x03\x14+\x1a6L\xbf\xa9\xe2\xecs\xcd\xd7\xf4\xb5\
+K\x91^w\xc9R\xff\x00\xb9\xdb\xdf\xe8=\x10L\x00\
+\x80\xffQ\x1d\x17\x04\xba\xa5\x9b\x9c\xb20P\xdb1\x86\
+jf\x95\xa0)\xcfbf\xdaZ\xe5\xe9\xef\xa5\xbd\x1f\
+\xbd'\xbd/\xbd7\x82\x0f\x000\x8e\x89\xbd/\x0d\x8c\
+\x08\xba\xdb\xe9\x16Gk\xe63W\xdb\x11\xe6\xda\xccX\
+\x9b)\xfd\xbd\xe9\xb8c\x14\x1d\x878b\x06^\x82\xc9\
+\x01\x00\xf0\x9a6Jp;\x97[z0\xc0-|\xaa\
+\x19\xcb*\xcddO\xf2i\xae\x8d\xeb\xec\xb8\xa4\xd0\xb9\
+3\x9d\x07\xb7\x0d\xef\x19\x88\xd9\x03\x00ht\xe7Jf\
+\xa1\x99k\xd8\xd9\x0fS0S\xefw\xbf\xf4\x91\xee+\
+\xcd\x80Ch\x5c1\xb9\x00\xe0\x9c\xc0(\xb1\x93\xb63\
+{V3\x88Yg\xbf\xe8\xc3(}o\xbcG\xb5?\
+`3]\xb24\xac\x9d\x12\xf4{\xcc:\x00\xf89\x1e\
+\xb8\xb1\xf6\x83\x96\xfe\x15\x1efh\xbe\xf9\xa6\xd3\xf8\xb7\
+\x95\xbb\xdd\x80\xd9\x08\x80\xcdp\xba\x83\xae\x87\xc1Z\xd7\
+x\x9d\x11!\xd7a\x96\x02\xc0(\x9db\xba^\xe6r\
+KOi\x8bz\xa9\xa6\xd306K\x8b\xe2\xb38@\
+\x11\x87t\x96\xc5_c\xf6\x02\xc0\xc2.V\x11C\x02\
+\x14)\x06\xd9\x03\xcc\xaa\xd4\xa5H\x91\xfa\xc75\x00\x80\
+\xe5\xcea\xdbi\x8bs\x8cf\xb0;aV\xf6:f\
+\xa0\xb8\x22\x9d\x0c\x00?\xe3\x92\xc5\xce\x94b\xe4\xb9n\
+\x00d\x13\x95h\x9a\xe0\x0a\x0f\xba\x06\xb3\x1e\x00\x93\x8f\
+\x0aj\xaf\xc7\x0ag`D\x5c\xedt)\xde\x09\x01\x91\
+\xe2\xbdX\x05\x00\x18E\xb2xQ\xed\x07/a\x0bL\
+\x07\xd2\xb4\x99\xe6\x83#f\xe0\xaf\xb08\x00\xf0\x05\xa1\
+\xa1\x17\x06\xc8\xd2`\xa4mA\x1e\x94\xa6\xfd\xd2\x19D\
+\xf3\x04\x8b\x05\x00o\xd0v,N\xb7\xf4\x82\xb6\x982\
+`(P3j4\xec\xc2N\x17\x80\x96\xa0:.\xd0\
+\xcb\x16b'\x0by\xa7\x1d4\x7fP\x0a\x12\x80Fp\
+EJ\x82\xb6XV\xc30 \x1f|L[\x89\x0fi\
+\x00\x9c\x07u\x068{\xd3\x0b&\x01\xf9ZK4\xd3\
+\xbd\x19\xab\x0cp\xcd\xe5\x11\xf7u\xa8-i(V\xc3\
+\x14 \x03u\x8a\xe6Y\x9bh\xb1=V\x1d\xe0\xed\xe3\
+\xd7%t3\x08e\x0d!\xb3\xcb=\xba\x14q\x04\xa5\
+\x11b\x11\x02\xfb\x1f\x19\xb8\xa5{\xb4\x89\x9f\x8a\x85\x0f\
+\xf93G\x97:\x0cc5\x02[B\xf5\x0b\xa8@\x0c\
+\x16:d\x11\xd5P\xc1\x1b\xd4]\x00\xb6\xe2l\xa9\xc3\
+|,p\xc8\x82\xf9\xb9\x87\x9d\x8a\xf8\x08V)`\x1a\
+j;s\xb6\xc57\x166\xc3\xfaG\xec\xe3\xeaK\xab\
+\xc6\xab\x13\xd2\xa2\xd5y\x99+\xd5-\x85\xbb\xd4\xbd%\
+\x87\xd4\x8c\xd2<u\xdf\xf1l5\xb5h\x8f\x9a\x98\xb5\
+F\xfd&=F\x1d\xb1\xf6s\xf5\xff\xe6>\xad\x06\xb8\
+%\xd6\xde3\x01m{\x00\xa3g\xb3\xc2\xe3\xda\x04.\
+\x84Y\xb1\xa9\xee\x0b^Q\xbf\xdf9[\xcd9Q\xa0\
+zCQe\x89\xaa\xec\x9d\xaf>\xbcx\xb4\x1a\xa8\xb0\
+b\xbcB\x81\xd3-=\x8a\xd5\x0b\x989\x9b\xd5&\xee\
+\x1c\x18\x16{\x22S|v\xe58}\xa7\xeaKh\xf7\
+;r\xdd\x17\xea\x15\x91!l\x8c\x85\x22\xc4\xd2<\xc6\
+j\x06\xd6\xdd\xcd\xcaR\x1f\x9c\xcd\xb2\xa9\x9e\x89\xff\xf2\
+\xb9\xc9\x9e\xcf~\xcdt\x07-}\x9b\x99\xb3\xdc@Y\
+\xec\x85U\x0d\xac\xc5\xc4\xde\x97\xd6\x16\xf1\x16k`\x5c\
+l\xa9\xe3\xd4\xee\xea\xa4\x9d\xb1j\x8d\xf6\xff\xcc\x82\xce\
+};G\xf7e#cA\x9b\xd7\x94\x17\x8eE\x0e\xfc\
+\x0e\xb5\xa4\xd6&\xe4\x06\x18\x17{\xbaqf\x7fuC\
+\xc1\x0e\xd5\x1f\xd0\x07\xb6\xdb\xe7\x0cae\x97\xbb\x16\x1d\
+\x80\x81_q)\xe2\xd3h\xac\xc8\xa6\xba\xce}F\xcd\
+\xf6\xf2\xe3\x97\xaf(\xae*U\xfb.\x1a\xc9\xca\x98\x95\
+\xe9\xd5\xc4\x000\x95\xb0.\x17\x9f\xadi\x00\xe3bP\
+\xdd\xe2\x9fWK\xaa\xcaT+Pu\xa6Z\x1d\xb0\xe4\
+Mv.B\xd0\xb1\x02\xae\xfb\x023\xf8\xed\xe4\xe0\x8e\
+T\xbe\x0e\xa6\xc5\xea\xd1\xc1\xc3^\xa7s\x19E\xe9\xa9\
+r\xf5\xce\xb8\xa7Y\x1a\xc7\xe4\xcb#{\x5c\x017\x00\
+\xc6\x9d\xcf*Awj\x13-\x1b\xa6\xc5\xa6\xda+\xc1\
+\xea\xea\xfcm\xaa\x15\xa13\xdc?L\xeb\xc3\xd2xf\
+\xb5\x95\x85;\xe0\x0a\xc0\xe7P\xb2\xb76\xc1N\xc0\xb4\
+\xd8\xd5'\xdb\xdc\xaa\x95\x99\xb6o!kcZ\xe6\x92\
+\xa5\xfep\x07\xe0\x1bBC/<\x9b\xd6\x05\xc3bX\
+\xf4\xe5\xbf\xf2t\x95\xa5\xcd\x96\xd2\xcf\xee_8\x82\xbd\
+\x826\xb2\x18\x8a6<\xa0Ut\x8a\xe9z\x19*u\
+\xd9C\x0b\xb2V\xab,\x90~\xec\x00C\xd7{\xebH\
+\x16\xdd\xc8\xc7\x05^A]\x14(\xbf\x10F\xc5\xbe\xee\
+\x8b\x7f\xce\xd4K\x0b\xade\xc8\xf2\xb1\xac\x8e\xf5jt\
+\x83\x00-\xa2\xcd\x14\xe9O\xda\xc4\xd9\x0f\xa3\xb2\x87\xe8\
+,\x94%\xd6\xe4ogy\xbc\xf7\xd1E\x1f\xb8\x08h\
+\x12\x97\xd2\xedV\xba\x17\x0e\x93\xb2\x87~\x1f\xd5[-\
+;U\xce\x94\xd9\xd2.\xfc\x96\xd9\x8f\xb3\xdc~'7\
+@\x09\xfe;\xdc\x04x\xce8\x88\x08\x0aB\xc6\x81\xbd\
+D?\xc9Y\xe4\xbdM\xdf\xb1>\xf6%\x81\x11Aw\
+\xc3U@}\xa3\x95\x85\xee\xda_\xe4r\x18\x94\xbd4\
+yW\x1c\x93f\xbb$g\xbd\x1d\xc6\xff\x84S\x11C\
+\xe0.\xa0\xce\xd1\x81\xf4\x9061*aN\xf6\x93\xd1\
+e\x13\x8d\x82\xae\x13\xdb$\x06\xda\xba\x92\x1e\x84\xcb\x00\
+\xba\xac0@\xdb\xd1V\xc1\x98\xec'jMS^}\
+Re\x15\xbaZl\x93\x16\xeaU\xb8\xfc\xc0\xfd\x8eV\
+x\x18Fk_\xfdqF?\x95eB\xe6\xbfl\xa3\
+xh\xebL\xfb\x05\x09\xd7\xe1sGK\xd7oO\xc3\
+\x94\xec\xab[c\x073m\xb6\x03\x16\xbfa\xb7\x98\x9c\
+F\x99F\xce\xd0~^\xde\x8f\x1d\xad\xfdu\xf7\xbca\
+L\x9b-\xc3\x97\x1b\x1a\xdd\xe1R\xfb(\xb8\x10\x0fG\
+\x07\xb2(jA\xaf\x80\x19\xf1\xd1\x82\x9ce\xfa/\x1e\
+m\xd7\xd8T\xb8\x22%\x01nd\xe7\x1dm\xa4x/\
+\xf2hqf\x8b3[K\xecp\x8f\xa3D\xa3}\xcf\
+h\xbbP\xa25L\x88\xafl\x84R\xc6n\x8f\xd5\x85\
+\xfeX\xd8<F\xc5tc\x13\xeed#\x02\xa3\xc4N\
+Z`s`@\xfcis\xe1.&\x8d\xb6\xa8\xb2\x84\
+\x97\x18e\xb5\x9f\xd2\xfd*\xb8\x94\x1dv\xb4\xd3\xee\x0d\
+p\xba\xc5\x9d0\x1e\xdc \xc3\x0d2\xcb\x1e)\xa4\xbb\
+d\xd1\x05\xb7b\x99\x89\xbd/\xd5\x82\xb8\x02\xa6\xc3\xaf\
+\x1e[\xf6\x0e\x93f;f\xc3D\xdeb\x95\x8cz\xb8\
+,g\x1e\xb8E\x19\x86\x83\xaa_\xa8\xfa\xc5\x88\x14a\
+\x0a\x5c\x8bM\xa3}\x0ff\x03\x91\x22\xf6\xc43e\xb6\
+\xcbs7\xf1\xfbQS\x16\xdf\x82{\xb1\x95y@\xf5\
+\x0e\xce\xc0h tj`\xee\xfc\xf6\x0c\xae\xf52\x94\
+\xe2\xe5t\x8b'a2P]\xc5\x1e\x5c\xc6\x84\xd1n\
+<\xb2\x03\xf1r\x8b\x15\xce\x88\xa0\xdb\xe0f\x16\x86\xfa\
+\x1f\xb9\x141\x13\x93\x15Bw]\xe6\x95\xd1F\x09n\
+\x07W\xb3\x221\x03\x7f\xa5\x05h\x09&)\xe4I\xef\
+o\x9edi\xb3\x0d\xdf=\x17q:\xe7R\x8a\x90D\
+\xeb\x1a\xe6f\xbd\x0fb\xe30A\xa1\xc6\xd4^\x09V\
+W\xe7o\xb3\xa4\xd1\xee-9\xa4\xfeaZ\x1f\xc4\xa9\
+^\x86\x82\xf8o\xb8\x9b\xe5>\x88\x895\x98\x9cPS\
+\xa2\x82\xdc9'\x0a,e\xb4t\xa5\xf8\xce\xb8\xa7\x11\
+\x1f\x0f\x1f\xcc\xa8J\x1f\x5c\xce\x0aF\x1b\xd9\xedZ-\
+(\xc70)\xa1\x96\xd4\xb9=\x5c^d\x09\xa3\xa5\x1c\
+\xe0\xe0\xf9/!.\x8d\xab0 2\xe4j\xb8\x9d?\
+\x09\xebr\xb1\x16\x88\xcd\x98\x8cPK\xd5u\xee3j\
+\xb6\x9fw\xb8\xc5U\xa5j\xdfE#\x11\x8f\xe6]x\
+X\xe3H\x16/\x82\xe9\xe1\x9c\x16b\xf2H\xa1\xbf\xba\
+\xa1`\x87\xdf\xceh)C\x02qh\x89\xa4\xf7\xe1z\
+\xfe0\xdaHI\xc0\xc5\x05\xa8\xb5j\xa7\x04\xa9\xa1\x9b\
+\xc3\xd4Sg\xaaMK\xef\x9a\xb43V\xed8\xb5\x07\
+\xc6\xbf\xe5\xaa\x0eT\x84\xaep?\x13\x09\x8c\xea\xddV\
+\x1b\xf8\x83\x98|\x90\xaf\xd43\xf1_\x86\xb7=\xdf\x7f\
+<[\x1d\xb4\xf4m\x8cw\xeb>\x98\x1d\xa0\xf5\x0f\x17\
+4kW\xabH\x91\x98t\x90\xaf\x15\xa8H\xea\xb3+\
+\xc7\xf9\xdct\xf7i&;r\xdd\x17\xea\x15\x91!\x18\
+g\xdf\x1c'D\xc0\x05\xcd0ZY\xec\x87\xc9\x06\x19\
+\xad\xee\x0b^Q\xbf\xdf9\xdb\xeb41*\xfe\xad\xec\
+\x9d\xaf>\xbcx\xb4n\xe2\x18S_\x17\xac\x11\xfa\xc2\
+\x0d\x0d\xe4\xf2\xc8\x1eWh\x03]\x84\xc9\x06\x99)j\
+\x1c\xf9\xd2\xaa\xf1\xea7\xe91\xea\xb2\xdcM\xea\x81\xd2\
+\x1c5\xa34\xef\x1c\xa5\x1c\xde\xaa\x17*\x1f\xb1\xf6s\
+\xf5\xff\xe6>\xad\xb7\xe4\xc1\xd8\x19\xaa\xfc\xb6\xe1=\x03\
+\xe1\x8a8>\x80 \x08\xf5o\xd9\xa4m\xa4\xd4\x13\x13\
+\x0c\x82\xa0:\xaaq*b\x08\xdc\xd1\x87t\x88\x11/\
+G5/\xa8\xb5\xea\x1c\xdd\xb7IQ\xee-\x1d\x1b4\
+%\xaa\x91+&\xbc\xd0\xa8\xa8\x15y\xbf\xa4QMj\
+\xf0\xb2w\xd5\xa1+B\x1b\xd5\x93\xc9c\x11\xc3\x86\xb5\
+\xafSL\xd7\xcb\xe0\x92>\xfb(&\xfc\x0f\x93\xea\x5c\
+\xfd%\xe6\x11u\xd4\xba\x09\xea\x84\xb4h\x8f\xfa*m\
+\xba*\xefIhR3\xf6'\xa9q\x19\xc9M\x8a:\
+\x08$\xe7mnTk\xf2\xb7\xeb_\xf3\x9b\x12}\xa1\
+?\xff\xdc\xf3|e\x95\xe5\xeb\xb7\xac\x9aR\xe5\xe9S\
+*\x0f\xfcm\xf6 \xcc\xfd\x06\xa4\xedn?\x86K\xfa\
+\x22\xa7V\x11\xba\xe2\xf2B\xe3\x1fo\xde\xda\xf0\xb5\xba\
+\xbe \x8d\xa9n\x04\xa0\xe5|\xf1c\x14\xe6\xbc\x87\xcb\
+\x0e(6\xdeZT\xc7\x05N\xb7\xb8\x0e\x93\xa9y\xa2\
+\xcaQ\x1fl\x99lxr>\xf0\x0f\x85'\x8b\xd5\xdf\
+E\xf5\xc4\x5co\xf8\xb2\xc3J\x18f\xebrj\x87b\
+\x12y\xa7\xeb\xa6?\xa8\xa7+-\xca^\xabV\x99t\
+\x15\x15\x18O\xe8\x96\x1f0\xbf=\xe6\xdeJ\x83\xe1\x9a\
+\xde_\xc9\xcd\xc7$j\xbd\xae\x8a\xea\xa5>\xb6\xec\x1d\
+\xfdl\x96\xb5\xb6\xde\xe0\x5cJ\xaa\xca\xd4k\xa2\x1f\xc0\
+\xbcnX9\x1d#{\xfc\x16\xee\xd9B\x9c\xb2\xf0\x11\
+&\x8f\xefE\x05P\xc8x\xe9\xc3\xd8\x11\xedg)`\
+\x8fO\xb6\xb91\x97=I\x16C\xe1\x9e-1\xda\xc8\
+n\xd7\xa2C\xae9\x15\xafz%\xbe\xaaW\xa1\xca+\
+/\x84\x8b1\x02uv\xb8vz_\xcc\xe1\x86U\xe1\
+\x0a\x0f\xba\x06.\xda\xdc\xb3Z\xb78\x0b\x93\xc6|\xdd\
+5w\xa8\xbek\xa2Z\xab\x00\x99\x09\xec\xa6\x82\x09\xd3\
+\xe0\xa2\xcdN\xf5B?1+\x18/\xd5yEJ\x99\
+5)\xaf>\xa9\xf7S\xc3\x5cm\xb8o\x993R\xbc\
+\x1dn\xda\xf4\xaev5&\x8b\xf5\x8c\xf7\xc3\xadS\xd4\
+mE{\xe1r\x16\xe2\xeb\x1d31?=k)\xdc\
+\xb4\xb1\xb3ZE\x0c\xc1$\xb1\xb6\xae\x9f\xfe\x10R\xca\
+,\x02\x8d?5\xaf\xc4\xbc\xf4\xf8\xb1L\x84\xabz\xb8\
+\xc0\xa0\x0d\xd0FL\x12\xb6j\x0d\xd0\xbd}\xa4\x94\xf9\
+\x8f\x99\x07\x16c.z\xd6j\x18k\x03\x04\xc8R\x1f\
+L\x0evu\xe5\xd4\x9eH)\xf3\x03gjj\xd4n\
+\xf1\xcfc\x0ez\xae\x9b\x80\xaa`\xf5w\xb5\xc2\x16L\
+\x0e\xfb\xa5\x94\x1d./\x82#\x1a\xcc\xe2\xec\xf5\x98w\
+\x9e\xcc\xd6-\xae\x85\xc1\xd6\xfd(\xa6H\x0fab\xd8\
+\xb7\xaf\x17\x95\x1b\xacM)\xcb\x823\x1a\xc4\x83I#\
+1\xdf<]\xe3U\x84\xdep\xd9_2\x10pV\xcb\
+aJ\x19\xf0\x1d\x9b\x0bw\xa1\x15\x0f\xcen\x9b\xc8@\
+\x88\x08\x0a\xc2d\xe0S\x7f\x9f\xfd\xd8\xcf\xe5!\xe9\xec\
+\x11\xb4\x8e!\xcbQ`\xbc\x91\x06\x91\xf7\xc1l\x15a\
+\x01&\x03\xf4\xc7\x19\xfd\x90R\xd6J\xe8\x98\xa6\xbd\x12\
+\x8c\xf9\xd4p\x1a\xd8\x5c\xbeo\x8bE\x04\xff\x15\xb7\xc5\
+\xa0\xc6R\xcaNTW\xc0E[\xc0\xf05\x9fa\x0e\
+y\xe8W\xd6N\x16\xff\xcco\xba\x97\x22\xfd\x80I\x00\
+5'\xa5\x8c\x8c\x97\xca\x0b\x82\xc6\xa1\xec\x0f\x14\x18\xf7\
+\x94\x99 }\xc7\xa5\xd1v\x90\xc5+\xb5\x01\xa8\xc4$\
+\x80\xbcI)\xcb\xaf@J\x99'\xe8\x03$\xe6K\x83\
+5\x13\xca\xdbD\x8b\xed\xf9\xcb@\x90\xc5P\x04\x1f\xf2\
+EJ\x195\x8f\x04\xbf@\xbf\x00P\x82\xd1\xd3\xd9\xad\
+0\x96/\xa7\x0d\xebr\xb1\xf6\xe2y\x08>\xe4\xeb\xf2\
+\x90\xe8\xbfV\xcb\x97i\xd31/<tsp$\x8b\
+\x17\xf1\x93\x81 \x0b\x03\x11t\xc8(\xdd2\x1b\x1d\x87\
++OW\xa97\xcdz\x14\xf3\xa1!)\xc2\xc3<]\
+bX\x8c\xa0Cf\xa7\x94\x9d\xe2,\xa5L\xd9;\x1f\
+s\xa0\xe1+\xbc\x89|\xecj\xddA\xd7#\xdd\xcbG\
+\x89\xdanI\xbd/\xfe9\x8cE3\xf5\xe7\x98\x01\xea\
+\xeb\xeb&\xa89'\x0a\xb80[\xfa\xe3\xd2e\xce\x10\
+\xc4\xbe\x81\xe2\xe2\x5c\xb4\xce\xd1\xfe\xaa|\x88`\xfbF\
+\x03\x16\xbf\xf1s2;}\x81\xa6\xf6\xe5\x18\x97\xa6\xf5\
+T\xf2\xfb\xdc\xecn\x13\x0e\xa5 \xe6\x5c6\x86\x0c\xeb\
+r\xb1f\xb6\x87\x11l\xdf(6c\xf99\x0b\x8bj\
+\xcaF\xec\x9e\xa7\x06\xcd\x7f\x09\xe3\xd3\xc4/\x02^>\
+\xa4\xd1\x99\xb5\x94\xf0\x22\xe2^_\xd9\x8e\x98\x81\xbf\xb2\
+\xf1Y\xad\xf4 \x82\xec\x1b\xdd0\xa3_\xa3\xd7Z3\
+\xcb\xf2\xd4\xaf\xd2\xa6\xab\xc1\x9a\xf1\xa2@I}\xf5^\
+8\x9c\x9b\xdd\xed\xb2\xdcM\x889o\xd5\xc0\xb4\x17\x9c\
+\x8d \xfbF\xe3\xb6\x867{\xb1e\x9f(P\xbfM\
+\x8f\xd1/\x04\xe0\xee\xfc/J\xca^\xc7\x8d\xe1\xd2\x1f\
+\x17\xc4\xbc\xde\x87\xb2\xe9\xf6\xbc\x9a\x1b\x16\xe2\xc4\x8d1\
+\xdf\xe8\x8a\xc8\x10\xafoPU\xd7\x9c\xd6\x7fBOH\
+\x8bV\xfb%\x8d\xd2\xffo\xf1:\x8eB\xc2\xf3\xdc\xa4\
+\x86-\xc9A\x81\xf1\x86n\x94u\x88\x11/\xb7\xe1\x8d\
+1\xe1I\x04\xd77\x1a\xb6\xe2?>[\x84\x85'\x8b\
+\xf5\xb3\xdf77L\xd4w\xbe\x9d\xa6\xf5\xe1j,\xe3\
+3S\xb8\xd9\xdd\xf6\xc1\xee\xb6\x81\xd2\x8b\xe2cv<\
+B\x88Gp}\xf3qgk\xd1nC?\xa8\x1c(\
+\xcdQ\xe32\x92\xd5\xffl\x99\xac>\xb2d\x8cz\xf3\
+\xacG\xf5\xba\x04f\x5c\xc1\xbd-\xf6\x09S\xc7\xf3\xde\
+\xf8g\xb9\xd9\xdd\xae\xc8\xdb\x825T_sle\xb4\
+m\xc3{\x06j[\xf6*\x04\xb6\xf5\xa2\x0aX\xfe\x80\
+>\xc6\x91\x09/\xcf\xdd\xa47u\x0c\xdd\xf2\x83\xbe\xc3\
+\x0eY\xf0O\xf5\xf69C\x9a\x9dvvu\xf4\xfd\xfa\
+\xcd\xa6\xbb\xe7\x0d\xd3\x8b]\x8f\xdd\xf4\xbd\x1a\xb1'^\
+\xddP\xb0\xe3\xe7\x0e\xbdf\xa7\xb0-\xc8Z\xcd\xcd\xee\
+\xf6\xfe\x85#\xb0\x8e\xce=\xb7=\x19\x18\xd5\xbb\xad\x9d\
+\x8a\xce\x0cE`\xed\x9f\xb2D\xdd\x16\x8a\xabJ=\xaa\
+\xb9\x98}Q\x83\xba\xd3\xf2\xb2\xbb]\x99\xb7\x15k\xa9\
+\xde\xba\x12\x9f@7\x06\xe8\x1c\x0d^\xf6.\x17\x86\xd0\
+}\xc1+\xa6\x8f\xed\xd2\xdc\x8d\xdc\xecn{&\xfe\x0b\
+\xeb\xe9\xdc\x0fe\xf3\x90\x85\x00\x9d\x93\x81\xb0\xbb8\x93\
+\x0b3\xb8g\xde0\xd3\xc7\xb7\xef\xa2\x91\xdc\x98\xed\xaa\
+\xc3\xa9XS\xe7\x1d%\xd8\x22+\xc1\xe9\x96\x1eE@\
+[\xaf\x0f\xb6L\xe6\xe6\xc6\xd35\xd1\x0f\xf8\xe5\x88&\
+\xfd\xd8\x01n\x0c\x972O\xb0\xaelV\x09\xcc\xe5\x96\
+\x22\x10\xcc\xd6\xe9\x1f\xb1\x8f\xab'OWra\x02{\
+K\x0e\xf9m\x9c\xa9:\x18n\x95\xf1zn+\x84\xb1\
+\xed\xb4\xaa\xe3\x02\xd4Bh\xfd\x8eku\xfe6nL\
+\x80\xb2\x1c\xfc5\xd6\x1d\x22C\xd4\xdc\xf2#\xdc\x8c5\
+u\xba\xc0\x1a\xabS+\x81\xe9]\xed\x14\xe9\x16\x04\xb1\
+uz\x91\xa3\xdd\x16\xddn\xfbK\xcc#\xcc\x5c\x83f\
+\x9d9\x19\xc9Xcu\xf3\xbc\xdd\xd2M\xec~\x1c\x93\
+\xc5\xb7\x10D\xefug\xdc\xd3jy\xf5In\x16\xbf\
+\x15Z\xb9P\xb1q\xear\xc0\xcb\x1f7\xeaj\x81\xb5\
+\xf6\xb3F\xb1\x9c_\xbb\x02\x01\xf4N\xd4\x8ez[\xd1\
+^n\x8c\xf6`i\xaeeZp\xcf:\xb0\x94\x9bq\
+\xffa\xd7\x1c\xac\xb7_\xb4\x84\xe5\x94\xafj\x04\xd0\xbb\
+sZ\xfa\x89\xc7\x0b\xd4\x0d\x96.\x16Xe\xfc\x1fX\
+\xf4\x1a7c_Q]\x89N\xbc\xbf\xe4\xdbV1\x99\
+\x02F\xb5\x22\x11<\xefD\x15\xb9x\x81\x8eIz$\
+\xbeb\xb9?vt5\x99\x17\xde\xd9\xf8-\xd6\xddO\
+9\xb7\x8a\x18\xc2^~\xad,|\x84\xe0\xb5\x5cTw\
+\x96\x17\xe8\xcb\xff\xdd~\xb8\xc0\x80\x0fe\xf5\x8fp\xa8\
+\x08\x10\xd6\x9f\xbe\xbb\xfd\x0f\xcek98:\xe0iG\
+K;G+7#\xa4\xac\x88\xd35g\xb8\x89\xc7\xc0\
+\xa5c\xb0\x0ek\xb5\x94-\xa7\x8d\x19x\x89\xf6\xd0\x15\
+\x08\x5c\xf3\xf3;\xa7\xefO\xe2faG\xef_\xc4D\
+\xdd\x5c\x9e\xea%\xcc\xcb\x5c\x89\xb5X\xab\x13\x8ed\xf1\
+\x22vJ**Aw\x22h\xcd\xbf\x1d\xc6K\xd6A\
+A\xc5Q\xbd#0+\xb1y!\xe5#n\xcc\x96\xd2\
+\xdd\xfcqM\xda\x9a\xb5\x12\xa4.\x0c]\xd1\x15F\x22\
+hM\xeb\xd1\xa5o\xe9\x9d\x12x\x80n\xc1Q\x1d[\
+\x96\xe2C\xb5w\x1bk\xaai7^[\xfb9\xd6\xa5\
+.i8\x1a;\xdaD\x94H\xceK\xb3AJ-\xa2\
+E\xccj\x87\xdf\xe4\xbc\xcd\xdc\x98\xed\x9a\xfc\xedX\x9f\
+\xb5u\x12f\xb2d\xb69\x08Z\xc3\xb7\x93\xe8#\xd8\
+\x89\xea\x0a.\x16\xef\x9e\x92LK\xe5\xcfz#J\x8b\
+\xe2\x05*\xfe~\x836G\xb1V\x85CL\x18\xed\xe5\
+\x91=\xae@\xb0\xce\x15u\x1e\xa0\x9b:\xbc\x5c\xbd\xa5\
+2\x89\x93w\xc5\xa9WN\xed\xc9|\xec(5\x8d'\
+\xa8\x16\x07\xd6\xac\xa8\xb6Q\x82\xdb\xb1P\xbf6\x18\xc1\
+\xfa%\xcb`S\xe1N\xae\x16+\x1d\x1b<\x95\xfc\xbe\
+\xadR\xf2\x8a*K\xb8\x89\xdf\x8c\xfdIX\xbb$Y\
+\x14\xf1q\x8c1Q3C^\xa0l\x03)\xe1E\xdb\
+\xc5\x90\xa7\x86\x90y\xe5\x85X\xb7\xba\xd9\x0a\xaf\xa2X\
+8c\xa26\xe0\xb4\xdb\xb3;\xb4\xfb\xbbk\xeeP[\
+\xc6\xf0\xb3\xed\x91\x5c\xfd:\xa1,\x0c\xee?\x92)\xd2\
+\x0f,|\x1c\xdb\x0c\x93=W\xd4\xae\xdb\xde9\x9a\xa7\
+l]\x88\xfa\xb9\x94q\x5c\x99\xadU\xafP\x9bj\xb6\
+\xb2\xb8\xde\xdaN\x9b,^D\xcd\xd3`\xb0\xe7\xaa\xbd\
+\x12\xac\xae\xcd\xdfn\xdb\xc59>5\xc2\xd6\xf1\x0b\x99\
+\xff2Wf\xdb\x7f\xf1h\xac[\xbaI\x16\x1az\xa1\
+e\xbd\xb6\x9d,\xfe\x19A\xf2\x9c\xf6\x95Y\x96g\xbb\
+\x85I5\x0e\xa8\xf3\xaf\x9dcwG\xdcS\x5c\x99\xad\
+?Z\xc9[\xf3&Y\xd0\xf5V.>\xd3\x0fAj\
+\xfc2CF\xa9\xbd\x0c\xf7\xed\x8d\xdf\xd8>nt\xf3\
+\xcd\xee\x19$9'\x0a\xd4\x1f\x8f\xee\xd3\xebAt\x9c\
+\xda\x1d\xebU?\xb7\x15\x1f\xb0\xae\xd9*\xd2\xeb\x08R\
+\xe3\xfas\xcc\x00u\xd3\x91t\xdb,\xd4[c\x07\xdb\
+>f\xb7\xc5>\xc1L<(\x97;[3N\xaa\xb7\
+A\xc6I]'\xc2v\xc6\xaa\x1f\xa7\xca\xea\xe8\xf5_\
+\xaa\xc3V~\xa0\xf6K\x1a\xa5\xe7~\xd3\x1f\x11;\xe4\
+BsymW3\xdb\x89\x08P\xf3\xf2o\xbfJ\x9b\
+\xce|\x09?\xba\x09\xc7\xea5\xdc\x96\x88\x8a\xe7\x98\xcd\
+\xa93\xd5j~E\x91\x9aZ\xb4G]\x94\xbdV\xcf\
+\x7f\x9d\xa4\x99\xe6'\xdb\xdc\xea[\x1b\xbe\xd6\xdb\xae\x93\
+iR\x06\x08\xfd\x01\x87i\x1ab\xb6_X9\x13!\
+\x1e\x01j\xbe\x84\x84\xe7\xd5U\x87S\x995[\xdaA\
+\xf1\x10\xa7w[ye\xf7\xe4\xe9J=\x7f5\xfd\xd8\
+\x01=\xde\xf1\x99)\xaa\xb2w\xbe~u\xfb\xfd\xcd\x93\
+\xd4W\xd7\xfcW}b\xf9{j\x9f\x85\xc3\xd5\xaes\
+\x9f\xd1\xcd\xd3\xee\xe7\xe0\x8ch\x8e\x95\xcd6\x0d\x01\xf2\
+\xcet#\xf7.P\xcbN\x95\xfb\xd5<i\xa7}\xb8\
+\xbcH\xddR\xb8K/\xc0\xf2\x93V\xe4mQwh\
+FA\x97\x16\xea\xee\xc6\x8f\x9c,\xe6\xa2\xa8{\xda\xd1\
+\xfd\xfa\xfbV\x9d\xddm\xee*\xce\xd0\xb3K\xe6\x1fZ\
+\xa5N\xdd\x9b\xa8N\xdc1C\xfd\xcf\x96\xc9\xea\x88\xb5\
+\x9f\xeb\xb7\xe7\xa8\x87\xd9=\xf3\x86\xa9\x7f\x8d\x19h\x99\
+&\x96\x90WJ\xb5\xb2\xd9\x96!@\xde\xeb\xf7Q\xbd\
+\xd5!\xcb\xc7\xaa\xe1\xbb\xe7\xea\x1f+N\xf9\xa8\xbc\x1f\
+\xed\xac\xb2\xca\xf2\xd5\x8dGv\xa8\x89YkTyO\
+\x82\xfes\x94\xaaq=\xb6\xec\x1d=G\xf6O3\x07\
+4\xab5\x0a\xd5<%C!\xa3!\xe3\xbd*\xaa\x97\
+\xadcB\x85thG\xba\xbe M?\x03\x8d\xcbH\
+V\xa3\xf6%\xea1\xa2\x9d)\xb5\xcf\xa1\x9d/\x8d%\
+\x9d\x87\xd2\x0e\x95~\xde\x07\xcf\x7fI\xcfW\xa5z\xc5\
+\xd7M\x7f\x10\xa6\xcb\xa6\x8a-i\xb4m\xa2\xc5\xf6\x08\
+\x8eoE_\x85\xef\x8c{Z_\xbc/\xaf\xfaX\xfd\
+(5B_\xe4d\x96uE\xff\xd9\x17?F\xa9\xa1\
+\x9b\xc3\xf4E\xfft\xf2\xbf\xd5\xde\xdaO\xd2;\xe2\x9e\
+4\xb4#\x02\xfd\xec\xbd\xc7\xe6\x09\xf0\xaf\xac\xfe\xd4\x80\
+K UjqU\xa9\xbeK\xde]\x9c\xa9\x1b9\xfd\
+\x82\xf8\xe9l\x96b\xfa\xd3\xf9,\xc5\xf4\xa73\xda\xa1\
++B\xf5?\x8e\xbd\x12_\xd5\xff@\xfet^\xdb9\
+\xba/z\x88\x19W#\xc1e\xbd\x024\x91\xe2\xed\x08\
+\x0ed7}\x996\x9d\x99\x8f\x95T\x88\x9eR\x0b\xe9\
+\xd8\x832^\xc8\xc0\xe9|8\xe6\xc0\x12\xdd\xc0\xe9\xb8\
+\xe3\xbf\xdb\x14\xdd\xc0G\xae\xfbB\xff\x03N\x06\xfe\xf0\
+\xe2\xd1?\x1b8\x0f\x1f<[$\xa5\xdb\xad\xd6k]\
+.\x0b}\x11\x1c\xc8nZ\x9c\xbd\x9e\x9b\xcb\x0ct\xdc\
+\x84\x98\x9f\x7fmW\xeac\xc5j_\xcf 8\x90\xdd\
+t\xa8\xec07f\x9b\xc3IvI\x0b\xd3\xbf\x9e\xb2\
+\xde1\x82,\xbc\x81\xc0@v\xfb`I\x85\xd0y\x81\
+.B \xee\xe7\x1f#H\xaf[\xf0\x18A\xfc\x04\xc1\
+\x81\xec$\xaa\xcd\xcb\x13Ks6 \xee\xe7\xd7G\x90\
+\x85\x8f\xac\x98\xf65\x19\xc1\x81\xec$\xca\x00\xe0\x09t\
+ih\xb0\xd4\xe2$+\x9am\x1c\x0f\x83\xffP\xd2\xeb\
+\xfa\x97\xdde\xb9\x9b\xf4\xab\x94\x901\xa2vB\x0b\xb3\
+\xd6\xa8\x13~\x9c\xa6\xdf\xe3\xf7G\xac\xe9\xdf\xe6\x89o\
+\xd2c`\xb0\xf55\xdb\x8af\x9bb\xe7A\xa7\xa4t\
+\xca\x83\x04\xe6C\xe7\xa6TL\xa5\x9d\x12dj\xcc\xe9\
+\x02\x08O\x84n\xf9\x01\xe6Z_\xc9V\xccFH\xb7\
+\xf3\xa0G\xef_\x04\xd7\xf33\x9fnSL\x8d\xf9\xc1\
+\xd2\x5c\xae\xc6\x97j4\xc0\x5c\xeb\xe9G+\x9a\xed!\
+\xbb\x0ex\x979C\xb8\xfa*mU\xa8\xfd\x0e\xd5\x1b\
+0#\xe6TE\xebL\x0d_1\xa7\xdbi0\xd7z\
+\xca\xb0\xe21B\xbe]\x07|\xcc\x86\x89p:\x8b\xf0\
+\xce\xc6oM\xab\x89\xc0\x1b!\x0b\xfe\x09s\xad'!\
+\xd7\x8af{\xcc\xae\x03N\x1f\x0e\x805\xa0\xe3\x1c3\
+b\xfe|\xca\x87\xdc\x8d-\x0f\x85\xe0\xbdP\x91\x15\xcd\
+\xf6\x84]\x07\x9c\xce\x0a\x815\x98\x93\x91lJ\xcc?\
+\xdf>\x95\xbb\xb1\xfd\x83\x81E\x8b\x18V\xa9\x15\xcd\xb6\
+\x1a\x95\x9f\x80\xd1|\xbfs\xb6)1O8\x94\xc2\xd9\
+yx\x15\x8c\xb5\xe1c\x84*k9mh\xe8\x85v\
+\x1ep\xaaI\xca\xdb\xc7\x12\xabB\xb5t\xcd\x88\xf9\xbe\
+\xe3\xd9\x5c\x8dkn\xf9\x11\x18k\xc3\xaaq\xa8\x8e\x0b\
+,\xe3\xb5\x9de\xf1\xd7v\x1f\xf4%9\xeb\xe1t~\
+\x86\x8a\xc2\x98\xd1.\x86\xea\x08\xb3\xde\x1f\xae\xa5l?\
+\x8a\xba\x08\x9e\xe4\x88\x19x\x89e\xcc60\xaaw[\
+\xbb\x0f\xf8\x1dqO\xa9%Uep<?A\xed\xb6\
+\xa9 \xba\x19\xb1\xa6\x82\xe8\xbcA](`\xac\x0d\xab\
+\xfd\x94{\xda\xc0lM\x16U\xc6\xa7k\xba\xd55\xa7\
+\xe1~&A\x1d\x0d\xe6e\xae\xd4\x1b!\x9a\x15gj\
+o\xc3\x1b3\x0f,\x86\xb1\xb2`\xb6<\x1c#\xd4\xd5\
+\xd6\xa2\xddpA\x93\x18\x9f\x1a\x81\xec\x13\x13\xf8\x16u\
+\x11\xd88F\xb0\xfb\x07\xb2\xf3EmF\x809P&\
+\x88\xd9\xf1\x9d\x9b\xb9\x82\xbbq\xa6\xee\xc00V\x06>\
+\x90\x9dM\xfd:\xc5K\x00\xa8\xf1\x220\x07\xea\x8fe\
+v|\xf7\x94dr7\xce\xc3\xd7|\x06ce\x22\xf5\
+\xcb\xe6\x97\x1a\xce\xd73+B\xe1\x82&A\x1f&\xcd\
+\x8c-e;\xf8\xaa\x85<K<\x8e\xba\x08L]j\
+8\xc6K\x00\xee\x8d\x7f\x16.h\x12WE\xf52\xfd\
+#(\x8ft_\xf0\x0a\x8c\xb5a\x15Z\xaf\x07\x99[\
+<\xccK\x00x\xac\x08\xe5\xafL\x04\xb3c;\x94\xd3\
+_-\xb7\xc5>\x01ce\xa7\x10\x8d}K,6\xa4\
+\xac\xb2|\xb8\xa1\xc1\xec8v\xc0\xf4\xb8~\x9c*s\
+9\xd6WG\xdf\x0fcmX\x07Q<\xdc\xcf\xa2|\
+[`,\x8b\xb3\xd7\x9b\x1e\xd7\xd8\x8c\xe5\xdc\x8d3\xd5\
+\x09\x86\xa9\xb2U<|%OA\xa06-\xc0X\x22\
+\xf6\xc4\x9b\x1e\xd7\x9d\xc5\x07\xb9\x1b\xe7\xbc\xf2B\x98\xaa\
+g-\xb7\x9e\xd9*B,OA\x18\xbd\xfeK\xb8\xa1\
+\xc1|\xb8u\x8a\xb97\x85\x94`\xb5\x8a\xc3L\x84\x1f\
+\x8f\xee\x83\xa9z\xea\xae\xabH1\x963[\xed\xa1~\
+\xe0)\x08\xfd\x92F\xc1\x0d\x0d\xe6\xe5U\x1f\x9b^\xff\
+\x82G\xe8H\x0c\xc6\xda\xb0\x9cn\xf1{\x0bf#H\
+\xe3y\x0a\xc2M\xb3\x1e\x85\x1b\x1a\xcc\x83I#M\x8d\
+\xe9\x93\xc9c\xb9\x1cg\xba\x11\x09c\xf5\xa8qV\xcc\
+\xb3\x1d\xc5\xd5\xcf\x0b\xb7\xa4\x9e\xa8\xae\x80#\x1a\x085\
+\xda43\xa6tl\xc1#\xdf\xa5\xcf\x82\xa9z\x92,\
+\xbef=\xb3\x95\xc5\xa1\xbc\x05\x82j\x80\x02\xe3\xa0|\
+f3\xe39\xeb\xc0R.\xc7\xf9\x03\xd4Eh\xc4l\
+\x85'\xadwf+\x0b}y\x0bD\xec\xc1epD\
+\x838Zy\xdc\xf4x\xa6\x1d\xdd\xcf\xe5X\x8fX\xfb\
+9L\xd5\xd3/XY\xeac\xbd3\xdb\x88\xa0\xdbx\
+\x0b\xc4'\xdb\xdcpE\x9b|!o\xa7\x04\xe9}\xb8\
+xd\xf0\xb2wa\xac\x9e4E\xba\xc5rf\xdb6\
+\xbcg o\x81xv\xe58\xb8\xa2A,\xccZc\
+j,\xe9|\x98Wz$\xa2.\x82'Qc\x04\x87\
+\x15\xd1\x1e\xae\x84\xa7@\x08\x09\xcf\xc3\x15\x0db\xca\xee\
+\xb9\xa6\xc6\x92vw\xf8\x10\x09\x9dW\x17\xe1\xa8\xc3\xaa\
+\xb8\x14q\x1bO\xc1\xa0\x8aT5*\x0a\xd2\x18\x81\xd9\
+\xc5\xac\xe9\xdf\xe3\x95k\xa2\x1f\x80\xb16l\xb6[\xac\
+k\xb6\xb28\x97\xb7\x80P\x0bh\xe0{^\x5c5\xde\
+\xd48\xce\xd8\x9f\xc4\xe58\xd3\x8d9\x98\xaaG\xcd\xb6\
+\xb2\xd9~\xc9[@V\xe4m\x813\x1a\xc0\x03\x8b^\
+35\x8e\xa9E{\xb8\x1c\xe7\xc3\xe5E0U\xcf\xfa\
+\xdc\xcaf\xfb\x1ao\x01\x09\xdf=\x17\xceh\x00\xb7\xc6\
+\x0e6\xef#\x88\x22\xe9\xad\xd2y\x84\xd2\xdd`\xaa\x9e\
+..\x89\xafX\xd9l\xfb\xf1\x16\x901\x1b&\xc2\x19\
+}\x0c\x9d\x83w\x9c\xda\xdd\xb4\x18\xfe#\xf6qn\xc7\
+z9\xea\x224R\x84F|\xc0\xb2f\xdbV\xeev\
+\x03o\x01\x19\xb0\xf8\x0d\xb8\xa3\x8f9r\xb2\xd8\xd4\x18\
+\x0eZ\xfa6\xb7cM\xb7\xe6`\xac\x1e\xaf\xeav\xb6\
+\xac\xd9\x9emi~\x82\xa7\x80\xfcm\xf6 \xb8\xa3\x8f\
+\xd9V\xb4\xd7\xd4\x18\xfe{\xf3$n\xc7\xfa\xfb\x9d\xb3\
+a\xaa\x0dg\x22\x1c\xb7\x5c\x0b\xf3\x06\x8a\x88o\xe0*\
+\xe9\x99\xe3\xf3>\xa3X\x90\xb5\xda\xd4\x18N\xdb\xb7\x90\
+\xdb\xb1\x1e\xb75\x1c\xc6\xda\x90\x14a\x8d\xc3\xeah\x0f\
+:\x99\xb7\xc0P\xaf,\xe0;~\xd85\xc7\xd4\xf8m\
+.\xdc\xc5\xedX\xbf\x86\xba\x08\xec\xd4\xb1\xado\xb6\xd2\
+p\xde\x02\x13\x97\x91\x0c\x87\xf4!\xa1\x9b\xc3P*\xd3\
+$\x9eX\xfe\x1e\xcc\xb5\xe1\x0e\x0d\xff\xb4\xbe\xd9\xca\xa2\
+\xc8[`>\xdb\x1e\x09\x87\xf4!\xcf\xa5\x8c\xc3\x99\xbb\
+I\xf4L\xfc\x17\xcc\xb5\xc1j_\xc2}\x967[\x1e\
+\x0b\xd2\xbc\x90\xf2\x11\x1c\xd2\x87\xf4^8\xdc\xb4\xd8=\
+\xb2d\x0c\xd7c};\xea\x224\xa4\x9a\x80\xb0\x10\xa7\
+\x83\x05\xb4\x87\xcd\xe1)8A\xf3_\x82C\xfa\x90[\
+f?nZ\xec\xde\xdb\xf4\x1d\xd7c\xdd9\xba/\xcc\
+\xb5~&\xc2!\x07+\x04\xc8\xe2\x0c\x9e\x82\xd3iZ\
+\x1f\x14\xa4\xf1\x11gjj\xd4+\x22CL\x8b]\xe4\
+\xde\x05\xdc\x8e\xf5\xa93\xd5\xfa\x995\xcc\xf5\xbc\x8fc\
+\x8a0\x8d\x19\xb3u\xc9\xc2\xab\xbc\x05(\xbf\xa2\x08N\
+\xe9\x03\x0a*\x8e\x9a\x1a\xb7\x8dGvp;\xd64g\
+a\xae\x8c~\x1c\xe3\xb9k\xc3\xaa\xc3\xa9pJ\x1f\xb0\
+\xa5p\x97\xa9\x99\x08\xa5\xa7\xca\xb9\x1dkJY\x84\xb9\
+2\xd2\x9d\xc1#1\x03\x7f\xa5=t)O\x01\x8a\xd8\
+\x13\x0f\xa7\xf4\x01\x09\x87RL\x8b\xd9_c\x06r=\
+\xd6T\xb1\x0e\xe6ZO%t\x13\xd6\xc1\x12\xdaC/\
+\xe5)H\xefl\xfc\x16N\xe9\x03&\xed\x8c5-f\
+\xfd\x17\x8f\xe6z\xacg\x1fD]\x84\xfa)_\xe2\x22\
+\x07k\xb8\xdc\xc2\x7fx\x0a\xd2\xc0\xa5c\xe0\x94>\xe0\
+\xfd\xcd\x93L\x8b\xd9\xdb\x1b\xbf\xc1\x1f6\x18\xec\xf9\xad\
+\xcb\xc72g\xb6\x01\x8a\xd0\x9b\xa7 \xf1\x5c\xa6\xcf\x97\
+\x0c[\xf9\x01\xb7G?\x85'\x8bM\xfd\xf7>J\x8d\
+\x80\xb9\xd6\xcbD\x10C\x983\xdb\x8e\x91=~\xab=\
+|%O\x05ixm\x85\xedK\xcc\xbc\xd1\xb4\xae\xe0\
+G\xcb\xbcw\xe5\xe9S\xea}\xf1\xcf\xe9mj\xccb\
+\xe4\xda\xff\xc1`\xcf\xcd\xaf-\xef,\x8b\xbfv\xb0\x88\
+\xf6\x02Kx\x0a\xd6\xae\xe2\x0c\xb8e+\xb9y\xd6\xa3\
+\xa6\xc5\xab\xb8\xaa\xd42\xef\xfd\xbf\x1f\xa3LOE{\
+2y,\x0c\xf6\xdc\xe23\x89\x0eV\xd1^`\x14O\
+\xc1\x8a\xcfL\x81[\xb6\x82\xd35g\xd4\xf6J\xb0)\
+\xb1\xfa\xd3\xcc\x01\x96y\xef\x83\xa5\xb9\xea\x95S{\xea\
+\xcf5\xe1\xc7i\xa6\xfd\xbb\xbd\x12_\x85\xc9\x9e#i\
+8\xb3f\x1b\x18\x11\xfcW\x9e\x82\xf5\x85\xb6;\x01\xde\
+cf\xf3\xc1\x87\x92^\xb7\xcc{SV\x84?>\xb4\
+\xde\x11\xf7$\x0c\xb6\x8e\xda(\xc17:X\xc6\xa5\x88\
+\x99\xbc\x04\xeb\xe5U\x1f\xc31[\xc1\xa6\xc2\x9d\xa6\xc5\
+\xeaM\x8b\xf4\x8e\x8b\xcdX~\xces\xfdaZ\x1f}\
+\x87o\x06\xd7NG]\x84:\xda\xef`\x9d\x00\xb7\x10\
+\xc6K\xc0B\xe6\xbf\x0c\xc7l\x05s3W\x98\x16\xab\
+)\x16\xe8\x8a\x5cRU\xa6\xde8\xb3\xbf_\xda\xaa\xa3\
+.\xc2y\xe7\xb5\xb2\xf0-\xf3f\xebR\x84\x87y\x09\
+\xd85\xd1\x0f\xc01[\xc1w\xe9\xb3\xb8\xba^My\
+\xbe\x0d=\x1b\xf5\x053\x1a\xb3kP0P\xbf\xb6/\
+\xfb;\xdb\xb0\x10'O)`GL\xce\x95\xb4\x13\xef\
+n\xfc\xd6\xb48\x1d\xad<\xee\xd7w\xa5\xac\x03J\x17\
+l\xe8\xd9\xa8{\x82\xd1\xa4\xa3.B\xdd,\x84\x93\x1d\
+b\xc4\xcb\x1dv@{\xa18^\x02\xb76\x7f;\x5c\
+\xd3K\x86\xae\x085%F\x7f\x9c\xd1\xcf\xefY\x17T\
+\x03\xb9\xb1\xe73\xbad\xe7\xca\xbc\xad0\xda_4\xcb\
+a\x17\x02di0/\x81S\xf6\xce\x87kzI\xf7\
+\x05\xaf\x98\x12\xa3\xbe\x8bF\xfa\xf5=\xbfM\x8fi\xf2\
+\x19\xd3\x0dn\x22\x1a{p\x19L\xf6\x97\xf3\xda\x81\xb6\
+1[\xda\xa2k/U\xc1C\xe0\xc6n\xfa\x1e\xae\xe9\
+%T\x85\xcb\x8c\x18\x8d^\xff\xa5\xdf\xde\xf1P\xd9a\
+\xf5wQ=\x9b|\xc6\xc9\xbb\xe2\x0c}\x0e\xd4E\xf8\
+YeW\x85\xf5\xfd\x8d\xc3N\xb8\x14!\x96\x87\xe0\x0d\
+Z\xfa6\x5c\xd3\x0b\xaakN\xab\xed\x94 Sb\x14\
+\xee\xc7L\x84\xe6v\xb3}fE\xa8\xa1\xcf\xf1\xe1\xd6\
+)0\xda\xda*_3\x1cv\xc3\xa9\x88\x83x\x08^\
+\x979C\xe0\x9c^\x90s\xa2\xc0\xb4\x18\xad\xce\xdf\xe6\
+\x97w\x5c\x90\xb5\xba\xd9\xcfH)aF\xf2\xda\xda\xcf\
+a\xb6\xfa\xc71i\x80\xed\xcc\x96\xb6\xea\xda\xcb\x9d\xb0\
+{\xf0\xe8\xba\xa9\x99\xc5D\xec\x02}\x9d7+FE\
+\x95%\xa6\xbf\xdf\x89\xea\x0a\xf5\xa6\x16\xd6}\xd8w<\
+\xdb\xb0\xe7\x19\xb2\x1cu\x11\x5cn\xe18\xb3\x85g\x9a\
+\x91\x950\x9b\x87 \xee-9\x04\xf7l!s2\x92\
+M\x89\xcd\x0d~\xcaD\xa0.\xbe-}V\xf7\x9e\x04\
+\xc3\x9e\xc7\xcc\xeaj\x16N\xf9\x9a\xee\xb0+m#\xa5\
+\x9e<\x04\x91~.\x82\x96\xf1\xf5\x8e\x99\xa6\xc4\xe6\x81\
+E\xaf\x99\xfen\xdb\x8f\xee\xf5\xaa\xc0\xce\x0b)\x1f\x19\
+\xf6Lt\xdc\xc5\xbd\xd9F\x04\x05\xd9\xd6l\xa9\xb7\x8f\
+\xf6\x92\x19v\x0f\xe2\x97i\xd3\xe1\x9e-\xc4\xd3m*\
+\xd63\x11\x9a\xca\xa9\xf5W\x8f\xb4\xab\xa3\xef\xe7\xddl\
+\xf79T\xc7\x05\x0e;Cm'\xec\x1e\xc8\x7f\xad\xf9\
+\x14\xee\xd9B\x9eJ~\xdf\x96\x99\x08T\x83\xa15\xcf\
+K\xa9b\xbe\x86\x0a\x95s\x9f\x85\xe0\x16\xdev\xd8\x9d\
+vJ\xd0\xef\xb5\x97=m\xe7@\xf6H|\x05\xee\xd9\
+B\x82\xbd\xdc\xfdY9\x13\x81JFR\x15\xaf\xd6<\
+\xef\xf4\xfdI>\x7f\xae\xdc\xf2#\xbc\x9b\xed\xa9\x0e\xb2\
+x\xa5\x83\x07\xb4\x97M\xb0s0\xfd}\x1d\x94E\xfe\
+\x12\xf3\x88)\xb11\xb3\xcf\x97/\xfa\xa9\xbd\xba\xe6\xbf\
+\x86\x9c!sn\xb6q\x0e^p\xb9\xa5\x07\xed\x1eP\
+\x7f\x17:a\x09*\xf7\xe7\xa9(\x0b\xab\x7f\x04\x93\xb2\
+\xd7\xf9\xe4\x99o\x8b}\xc2\xe7\xcf\xb64w#\xe7G\
+\x08\xd2\xfd\xdc\x98\xad#\xac\xcb\xc5\xdaK\xe7\xd99\xa0\
+\x1b\x0av\xc0E\x9b\x09\x9dK\xda)\x13\xe1\xe4\xe9J\
+\xf5\xd6\xd8\xc1>{n:\x8e\xf0%3\xf6'\xf1l\
+\xb69\x8ed\xf1\x22\x07O\x04\xc8\xe2[v\x0ej\xd4\
+\xbeD\xb8h3Y\x93\xbf\xdd\x94\x98\x8cZ7\xc1\x94\
+\xf7\x19\xb75\xdc\xa7\xcfMEcXL\xb3\xb3h\xd1\
+\x997\x1c\xbc\xe1\x9cvo\x00\x15\x81\xb0kPC7\
+\x87\xc1E\x9bI\xcc\x81%\xb6\xc9D\xd8]\x9c\xa9^\
+\x11\x19\xe2\xd3\xe7~\xdd\xc7\x7f$hnrj\xb6%\
+\x81Q\xbd\xdb:xD{\xf9\xaf\xed\x1a\xd8\xc1\xcb\xde\
+\x85\x8b6\x13\xea(k\x87\xee\x0cT\x83\xb6\xf7\xc2\xe1\
+>\x7f\xee\xbb\xe6\x0e\xf5\xe9sRj\x22\xa7\xdds\xbf\
+p\xf0\x8a3\xb2\xdb\xb5vM\x03\xbb#\xee)\xb8h\
+3\xa1\x9f\xf7v\xc8D\xa0\xa3#\x83>\xe8\xf8\xb4\x03\
+\x08U\xa6\xe3\xd0l\xab]\xe1A\xd78x\xc6\xae\xa5\
+\x17\xe9\xa7$\x95\x0d\x04\xd6X\xfcFg\x22\x90\x91\x1b\
+\xd9\xad6>3\x85\xb9\x9cf\x94R\xb4\x18\x81\x11A\
+w\xdb5\xc0\xfb\x0d\xac\xdad'\xee\x8d\x7f\xd6\xf0X\
+\xdc\xbfp\x84\xa1\xef\xf0\xcf\xd5\x9f\x18\xfa\xfcom\xf8\
+\xdag\xcfz\xcb\xec\xc7\xf9\xfb0\x16)\xde\xee\x00\xfa\
+\xd9\xedF;\x06xQ\xf6Z8i30rGh\
+F&\x02\xf5\xf32\xba-x\xb7\xf8\xe7}\xf6\xbcW\
+E\xf5\xe2\xcdlW\xc3em^\x0dl\xe2\x8e\x19p\
+\xd2&\xa0:\xaff\xc4\xc2\xa863Tg\xe0v\x13\
+*h\xd1\xa5\x8f\x92\xaa\xb2V?oy\xf5I\xfe\xce\
+k\x15A\x82\xcb\x9e\xb3\xbb\x15V\xda-\xc8\xc3\xd7|\
+\x067m\x02\xaa\xfd\xcbr&\xc2g\xdb#\x99\xfa\xa5\
+d\xd6\x05\x12\x0bi9\xdc\xb5\xfe\x872\xc9n\x81\xa6\
+4 \xd08\xcbr7\x99\x12\x8b#\x06d\x22\xec-\
+\xc9R;N\xedn\xda|z\x7f\xf3\xa4V?\xf3\xe6\
+\xc2]\x5c\x99-}\x13\x82\xbb6|v\xbb\xdcN\x81\
+\xbe\x01\x05i\x9a$r\xef\x02f3\x11\x1e^<\xda\
+\xd4\xf9\x142\xff\xe5V?3\xed\x8e9*\xa3\x98\x04\
+W\xe5(3\xa1\xb8\xaa\x14\x8e\xda\x08\x1f\xa7\xcaLf\
+\x22\xcc>\xb8\xd4/\xfd\xed\xcaN\x95[2\x17\xd8\x82\
+\xaaA\x06BS5\x13\xb4\xbfFv\x0a\xfa\xa6\xc2\x9d\
+p\xd4Fxe\xb5\xf1\xb7\x99|}\xdd\x95\xfe\x80\xde\
+8\xf3a\xbf\xcc\xa7\xe5\xb9\x9bZ\xf5\xec\x13\xd2\xa2y\
+1\xdb\xf9p\xd3\xa6v\xb7\x8a\xd0\x95\xfe*\xd9%\xe8\
+F\x14\x7f\xb6\x13\xfd\x92F\x19\x1e\x83\xb0\x9d\xb1>}\
+\xe677L\xf4\xdb|\x1a\x9f\x1a\xd1\xaag\xf7\xa6\xf1\
+$\x83]s\xcf`W\xdb\xfc\xcc\x04\xc5.\x81\xff`\
+\xcbd8j#\xdc\x11\xf7\xa4\xe11H9\xbc\xd5g\
+\xcfK\xa53\xcd\xa8\xbdk\xd4G\xd7\x17W\x8d\xe7a\
+W\x1b\x0e\x17m&\xbf\x9d\x1c\xdc\x91z\xba\xdb!\xf0\
+O&\x8f\x85\xa36\xc2\xef\xa2z2\x93\x89@E\xce\
+\xef\x9e7\xcc\xaf\xf3\x89\xb2\x1f*OWy\xfd\x0e\x03\
+\x16\xbfa\xfb\xca^\x97G\xf6\xb8\x02.\xda\xb2\xcc\x84\
+\xf7\xec\x10|_Wl\xb2\x13\xd4\xcd\xc2\xe8\xf1\xbf~\
+\xfaC>{\xde\xaf\xd2\xa6[bN\xb5\xa6\x8f\x9a\x90\
+\xf0\xbc\xbd\xaf\xe5\xba\xa57\xe1\x9e-\xa4\xb3,\xfe\xda\
+\x0em\xcfi'B\xed\xacA}\xcc\xe8\x85\xd5\xc7G\
+\xb9\xce\x19\xa5y\xa6\xec\xc2\x9b\xa3O\xb7)^\xbf\x07\
+\xb5G\xb7\xb1\xd9\xeeu\xc4\x0c\xbc\x04\xee\xe9\x05NE\
+\x1cd\x87I@\x0b\x15\xd4'1k\x0d3\x99\x08\x03\
+\x96\xbci\x99\xf9D\x1f\x15\xbd\xc5\xccK\x18\xa6K\x16\
+\xfb\xc15\xbdEu\x5c\xe0t\x8b\xebX\x9f\x04Kr\
+\xd6\xc3Y\x1b\x80\xea\x15\x18=\xf6?\xec\x9a\xd3\xea\xe7\
+\x9c\x97\xb9\xd2R\xf3\x89v\xd8Ug\xaa[\xfc\x1e\xc7\
+\xabN\xd89\x03a%\x0c\xb3\xb5y\xb7\x91\xe2\xcd\xda\
+@V\xb1<\x11\xbeM\x8f\x81\xb36\x80\x19\xedYZ\
+\x9b\x89@\xc5_\xfe4s\x80\xe5\xe6\xd4\xc6#-o\
+(J%?\xedyN+\x9el\xa3\x04\xdf\x08\xb7\xf4\
+I\xdd\x04\xe9\x03\x96'\xc3\xc8\xb5\xff\x83\xb36\xc0\xb3\
++\xc7\x19>\xf6\x05\x15\xc7\x98\xcd\xa9mLt9\xc1\
+\x9b\xb45\x9b\xeel\xdf\x83K\xfa\x8a\x89\xbd/\xd5v\
+\xb7\xe9\xacN\x06\xb3Zh\xb3F\xaf\xc4W-\x9d\x89\
+\xb0\xe9H\xba_sj\x1b\xd3\xc0\xa5cZ\xfc>\xf3\
+\x0f\xad\xb2\xa3\xd1\xa6r\xd7\x9a\xdc\xf0\x9be\xb2x\x17\
+\xdd\x0caqB\xd0\xcfPP\x9f\x9bg=j\xd9L\
+\x04jit\x8f\x9fsj\x1b\xd3\x1f\xa6\xf5iq\x96\
+\x8b\xbc'\xc1nF{\xba\xad\x12t'\xdc\xd1\x88\xec\
+\x04\xb7\xf8=\xab\x13\xa3\xb4\x95\x05D\xec\x06\x19\x05\x15\
+V\xb1j&\xc2w\xe9\xb3,?\xa7R\x8b\xf6\xb4\xe8\
+\x9d\xcc\xac\xbdkNQpi\x22\x5c\xd1\xa8\xddmT\
+\xef\xb6\xda g\xb381\xb6\x16\xed\x86\xc3\xd6!\xb7\
+\xfc\x88e3\x11rN\x14\xa8\x9d\xb4\x9d\xa3\xdd>\xbc\
+\x8e\xb1\xe8\xf9\xb3\x97:\xd81\xb2\xc7o\xe1\x8aF~\
+,\x93\xc5~,N\x8e\x99\x07\x16\xc3a\xeb@_\xd3\
+\x8d\x1es\xea\x0d\xe6\x0dO,\x7f\x8f\x899E\xcfi\
+\xb5\x0f\x92\xe6u\xcb\x15\xfa\xc2\x0dM9N\x90\xbec\
+mr|\xb8u\x0a\x1c\xb6\x0es2\x92-\x99\x89\xb0\
+ k53s\x8a\x1ae\x9e\xa9\xa9i\xf6\xbb=\x94\
+\xf4\xba]rj\xbf\x82\x0b\x9a{\x957\x8d\xa5\x092\
+tE(\x1c\xb6\x0e\xd4\x0c\xd3j\x99\x08\xd4|\xf2&\
+\x83?\xda\xf9Z;\x8b\x0f6\xfb\xfd\xee\xb6\xf0\x07\xbf\
+\x16\x18\xedv\xcaN\x82\x0b\x9a\x9a{\xdb\xedV\x96.\
+;\xd0\x97m`\xde\xf9\xa17\xa5\x08\xdf\xdd\xf8-s\
+\xe6\xd3\x92\xae\xc17\xce\xec\xcf\xfc\xe5\x85@\xb7t\x13\
+\xdc\xcf?\xb5\x13\xc6\xb02Q\xae\x9c\xda\xb3E?\xf9\
+\xec\xce\x90\xe5c\x8d\xbdH\xb2\xee\x8b\x16=\xcf\xb6\xa2\
+\xbdj;%\x889\x03z\xa6\x99\xbf\x98h\xee\xb1\xf8\
+~\xe7e\x1f\xbc\x0e\xd7\xf3\x17\xa1\xa1\x17\xba\x14a\x19\
++\x93%\xab,\x1f.{\x161\xe1\x05\xcbtg\xa0\
+44)\xe1E&\x0d\x88v\xab\xcd\xa1\xa8\xb2\x84\xf5\
+]m\x22\xd5J\x81\xe9\xf9sw\x1b\xd9\xedZ-\x18\
+\xc7X\x980\xcbZ\xd9?\xcaNP\xe7a\xabd\x22\
+P\x8a\x18\xcbF\xb4\xefxv\x93\xef\xb8\xa7$\x93\xe5\
+w,\x0c\x88\x0c\xb9\x1ang\x05\xc3\x8d\x08\x0a\xd2\x02\
+Rm\xf5I3\xc9\xc7\xbd\xb0X\x85:\x0d\x04\xb8%\
+\x833\x11\x8e6\xebY\xf2\xca\x0b\xf5\xdbX,\x9b\xad\
+{OB\x93\xefI\x05\xc7\x19}\xbfS\xd4u\x1b.\
+g\xadt\xb07\xad>qF\xf9\xb8\xcb+\xab\x1c(\
+\xcd1t\x9c\xaf\x9b\xfe`\xb3\x9f\x85\xb2DX\xffB\
+O}\xc5\x9a\x22\xce\x84T;\x9c\xd3\xf2\x82\xea\xb8 \
+\xc0-\xcc\xb4\xf2\xc4\xa1<G\xa0\xeae\x0f\xad\x90\x89\
+\xb0\xd0\x84\xe2\xe5f\x88\xd2\xd5\x9a\x22|\xf7\x5c\x16\xd3\
+\xbc\x14\x18\x9bE\xe9\x10#^\xae\x05i\x87U'\x0f\
+\xb5$\x01\xaa\x1a\xbd\x7f\x91\xdf3\x11\xca\xabO\x1a^\
+\x08\xc7L\x1d*;\xdc\xe8\xfb~\xb2\xcd\xcd\xda;\xa5\
+\xe1:\xae\xc5\xa1\x22\xc2\xd4a\xd3\x92W\x0c\xdd\x92\x9e\
+8\xcf;F\x17DiN&\x82\x19\x85\xcb\xcd\xd4\xf4\
+\xfdI\x8d\xbe/\x1da1\xf4>\xc5m\xa7\x8a\x7f\x84\
+\x9b\xb1q~;\xc0\xaa\xe5\x18\xa9\xc9!\xef\xbc\xb6\xf6\
+sC\xc7xE\xde\x96F\xff\xfd\x1f\x8f\xee3\xbc\xe2\
+\x98\xd9zu\xcd\x7f\x1b}\xe7\xa7\x93\xff\xcd\xca\xd1\xc1\
+\x19\x97\x22=\x04\x17c\xcbp_\xb0\xe2d\x9a}p\
+)\xf7f\xfb\xc8\x921~\xcbD\xa0\xe4\xfe\xe0\xf9/\
+\xd9\xae\x88\xf6m\xb1O4:\xe6T\xdb\x97\x89|Z\
+E|\x0e\xee\xc5 .Y\xfc\xd2j\x93\xe9\xe3T\x99\
+{\xb3\xbdk\xeeP\xbfe\x22D\xec\x89\xb7m\xd3\xc3\
+\xc3\xe5E\x1e\xdf\xfb\xce\xb8\xa7Yx\x87\xcf\xe1Z\xac\
+B7\xcc\xdcb\x9c\x95&\xd4\xb0\x95\x1fpo\xb6F\
+\xd6\x8am,\x13\x81\xcc\xe8\xea\xe8\xfbmk\xb6\xb1\x07\
+\x97y|w\xfa#d\xed\x14/!\x96\xd6+L\x8b\
+a:\xc5t\xbd,@\x16\xd7[eRu\x8b\x7f\x9e\
+k\xa35\xba\x9dvc\xcd5\x9fK\x19g[\xa3m\
+\xac3\x05\xb5\xf81\xfa\x12I+\xaf\xe2\xae\xa5u\x0a\
+\xb7\xb2\x01\x81Qb'-\xa89V\x98XWE\xf5\
+RkT~\x0b\xd2PI@\x7f\xdc\xd2[\x9c\xbd\xde\
+\xd6FK\xa2\xe3\x99\x86\xa03l\x0b?wV\xfb)\
+\xdd\xaf\x82K\xd9\x08J%\xd1\x02\x9bg\x85\x09F-\
+ax\xc5h\xd3k(\x13\xe1\xe4\xe9J\xfd\x03\x92\xdd\
+\xcd\x96v\xafGN\x16\xd7{\xff\x1d\xc7\x0eX5\xf3\
+ \xd7\xe9\x0e\xba\x1e\xeedC\x02\x22\xc5\x9b\xb5 \x17\
+\xf9{\x92%\xe7m\xe6\xd6l\x8d\xfe@\x95_Q\xff\
+#\x11u\xc9\xb0\xbb\xd1\xfe\xa4\xf8\xcc\x94z\xefO\xf3\
+\xcd\x82\xcf\x9aO9\xf1p%{g(\xfc\xc3\xdfU\
+\xc2ZR\xf0\xd9n\x8c\xdb\x1anh\x9b\x98\xf3\xd9]\
+\x9c\xa9^\x11\x19\xc2\x8d\xd9\xbe\xb5\xe1\xebzc@\xe9\
+\x86\x16\xdb\xd1\x1euM\x91n\x81\x1b\xf1p\x86\xab\x08\
+]\xb5\xa0\x97\xf9k\xb2\xbd\xb9a\x22\xb7f\xfb\xd2\xaa\
+\xf1\x86\x8dk\xaf\xc4W\xcf\xf9\xb7\xe8l\xbc7#\xf9\
+\xa5F~\x80\xfd~\xe7l+=ci\xa0,\xde\x05\
+\x17\xe2\x08\xa7[\x0a\xa66\x1b\xfe\x98p\xfd\x17\x8f\xe6\
+\xd6l\x1fX\xf4\x9ai\x99\x08S\xf7&re\xb4\xa4\
+@ERK\xaa\xcaL\xfb5\xd1\xd2\xb66T\x0e\x15\
+\xee\xc3\xe3\x91\x82\x22<\xec\x8f>f\x7f\x9b=\x88[\
+\xb3\xbd5v\xb0)\x99\x08\xf4\xa1\x88\x8e\x15x3[\
+RR\xf6\xbas\xc6|\x84\xc1\xd7\xa3\x9bytP\x85\
+k\xb8\xbc\x1bn\xa4$\x98}\xa4@\xbb\x8f\x8a\xeaJ\
+\xee\x8c\x96~\xd6w\x9c\xda\xdd\xb0qM8\xf4\xcb\xc7\
+\xa1\xe1k>\xe3\xd2hITd\xa7.O,\x7f\xcf\
+\xefG\x07.wP7\xb8\x0d\xa0,\x85{\xb5\xbf\xbc\
+\xc7\xcd\x9c\x80iG\xf7sg\xb6\x05\x15\xc7\x0c\x1d\xd3\
+\xbe\x8bF\xea\xad\x87\xc6\xa7FX:\x89\xdf\x8cR\x9e\
+Ks6\xe8\xedr\x16d\xad\xd6\xdb\xba\xfb\xf1yJ\
+\xb4X\xdc\x03\x97\x01u\xcfp\xbb\x98\x99\x166'#\
+\x99;\xb3\xddR\xb8\x8b[\x03\xe4T\x85\xce\x88\xa0\xdb\
+\xe0.\xc0SZ\xd8\x11\xb3\xaa\xebS\x87Y\x9e\xd4e\
+\xce\x10\x18\x10?\xca\x0b\x8c\x08\xfe+\x5c\x054\xf2\xd1\
+\xac\xdb\xadN\xb7x\x18\x8b\x05\x82\xbc\xbf\x19\x16\xa0\x04\
+\xff\x1dn\x02\x9a\xa4\xfd\xd4\xfb~\xa7M\x9a\xcdX4\
+\x10\xd4bm\xec \x8bW\xc2E@\xb3\xa1\xfeG\xda\
+\xc4\x89\xc7\xe2\x81\xa0fJ\x16\xe7\xa2o\x18\xf0\x8e\x98\
+\x81\xbfr)\xd2D,$\x08j\xd2hC\xa9\xc35\
+L\x03\xb4\xf2\x1cW\x1c\xa1M\xa8\xd3XT\x10TO\
+\xd5NYx\x1e.\x01|\x99\x1a\xf6\xa86\xb1N`\
+qA\xd0\xcf*s\xc9R\x7f\xb8\x03\xf09m\xe5n\
+7h\x13l\x07\x16\x19\x04\x89ih7\x0e\x0c\xa5C\
+\x8cx\xb96\xd1fc\xb1A\xbc*@\x91bh\x1d\
+\xc0\x0d\x80\xf1\xa8\x8e\x0b\x9c\x8a8\x06\xe7\xb8\x10o\xe7\
+\xb3\xf4\xfd\x02\x1f\xc2\x80\xe9\x04\xcab/\x7f\x17\x22\x87\
+ \x93.*\x14P\xd1&\xacz\xe0\xe7s\x5ca\x03\
+\x16#dWQ\xf7[gD\xc8uX\xed\xc0\xff\x84\
+\x86^X\x9b\x1ef~m\x5c\x082\xb6\x06-\x8e\x0d\
+\x80%w\xb9\xc2\x1d\xda\x04\xdd\x83E\x0a\xb1\xff\x11L\
+\xdcM\x95\xf0\xb0\xaa\x81e\xe9\x14\xd3\xf52\xcdp\xbf\
+\xc2\x82\x85\x18\xde\xd1~E\xf3\x18\xab\x190A\x80[\
+x\x9c\xeayb\xe1B,}\x04\xa3\xcb;X\xbd\x80\
+=\xc3\x0d\x0bqj\xa6\x1b\xa6M\xe4\x1a,d\xc8\xc2\
+&{\x86v\xb34_\xb1j\x01\xdb\xa6+\x0b\xf7\xd1\
+\x19\x18\x165d\xc1L\x83]\xd4\x16\x0a\xab\x14\xd8\xea\
+,7@\x16?\xc1E\x08\xc82\x99\x06\xb2\x18\xdaY\
+\x16\x7f\x8d\xd5\x09lz\x96+\xdd\xa3M\xf6T,v\
+\xc8\x8f\xda\x1c(\x8bwa5\x02\xfbC\xd7}ea\
+\xa0K\x113\xb1\xf0!\x13\x95\x11 \x0b}\xb1\x00\x01\
+w\x5c\x15\xd6\xf77gk,\x94\xc1\x08 \x03UJ\
+\xf3\x0c\xe9\x5c\x80{\xda)A\xbfw)R$\xb2\x16\
+ _g\x19P6L\xfb)\xdd\xaf\xc2*\x03\xa0\x0e\
+T\xe8C[$\xaba\x12\x90\x0f\x8cv%\xb2\x0c\x00\
+h\xdeG\xb4\xe50\x0c\xa8\xc5R\x84e\x81\x8a\xd0\x15\
+\xab\x08\x80\x16\xe0T\xc4\x10j\x0d\x0d\x13\x81\xb0\x93\x05\
+\xc0hBC/\x0c\x90\xa5\xc1\xdabJ\x87\xa1@\x0d\
+\xb5\xa7\xd1\xfe(\x0f\xa2y\x82\xc5\x02\x80\xaf\x8e\x17\xb4\
+\x9d\x8b\xb6\xb8\x12\xf0!\x8d{Q\xfc\x13\xb0\x93\x05\xc0\
+`\xce\x16,\xff\xca\xe9\x16O\xc2x\xb8R\x05\xc5\x1d\
+\x8d\x16\x010\x19\x97,v\xae-\xe7(\x1c\x87\x11\xd9\
+Z%\x9a&\xb8\xc2\x83\xae\xc1\xac\x07\xc0\x9fL\xec}\
+\xa9~#\xcd-.\xc1\x11\x83\xad\x8e\x0a\x96P\x5c\x1d\
+1\x03/\xc1$\x07\xc0\x82G\x0c\xb5\x05o\x84\x02\x18\
+\x16\x93\xca\xa2\x0218*\x00\x80\x11j;FHO\
+\x9d\xdd\xedV\xc3\xc4\xac\xdd\x22<\xc0-$\x05(\xe2\
+\x10T\xe1\x02\x80a\xa8\x06\x03\x15 9{%\xf8\x04\
+\xcc\xcd\x12:A\xf1\xa0\xb8P|0K\x01\xb0\x19m\
+\x94\xe0vNE|\x8evR\xd8\xf1\x9a\xaeSN\xb7\
+\xb8\xd0%K\xc3\xda\x86\xf7\x0c\xc4l\x04\x80\xa3\xa3\x86\
+\xda[j\xc2W(\xf7h`'\x04Y\xfc\x84\xc6\x19\
+U\xb7\x00\x00:\xce\x88\x90\xeb4\xd3\x1dQ{\xce+\
+T\xc1,\xbdR%]8p\xba\xa5\x17h<1\xab\
+\x00\x00M\x1e7\xb8\xdc\xd2\x83\x01n\xe1S\xcd<V\
+\xe1\x02\x85\xc7\x9d+\x8dK\x8a\xb6s\xfd\x98\xce_q\
+<\x00\x00h\x1d\x13{_\x1a\x18\x11t\xb7f.\xa3\
+]\xb28W\xdb\xf9\xe6rZ\xf0\x85\xde;N\xd3(\
+\xbd\xba\x16r`\x01\x00F\xd3~\xca=m\xb4\x9f\xcb\
+]jS\xcc\xe8&\x9b^\x8b\xd7.]'\xcaj\xdf\
+\x87\xdeKz\x8a\xde\x93\xde\x17Q\x07\x00X\x83\xb0.\
+\x17\x07(\xc1\x7f\xd7\xcci\x00\xed\xfe4}\xe3T\x84\
+\x05g\xab\x96UX\xb0\xd6\x00=\xd7|M_\xbb\x14\
+\xe9u\x97,\xf5\x0f\x90\xbb\xfd\x8d\xde\x03\xc1\x04\x000\
+K\x07Y\xbc\x92~~\xeby\xbf\xb28\x94\x0c\x99\xce\
+;\xb5\xff\x19~\xf6\xe7yJ\xad\x01\x0a\x07j%\x16\
+j:\xe6\xb9\xfe\x83\xfe\x9f\x1f\xab\xfd\xdf\xfb\xe9\xbf\xa3\
+\xff\xf7Wj\xff\xd9\x1cM\x935\xe3\x1f\xaf\x1b\xbf\xf6\
+\xef\xd1\xbfK\x9de\xe99\x10\x0d\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x8c\xe0\xff\x01/\x9b\xa0\xe9\xec\
+0\x8e\x92\x00\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x09\xc0\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x9c\x00\x00\x00\xb2\x08\x03\x00\x00\x00\x80\xc0V9\
+\x00\x00\x00\x01sRGB\x00\xae\xce\x1c\xe9\x00\x00\x00\
+\x09pHYs\x00\x00\x0d\xd7\x00\x00\x0d\xd7\x01B(\
+\x9bx\x00\x00\x00\x07tIME\x07\xdc\x03\x09\x08\x1d\
+0D&N\xa6\x00\x00\x02\xd3PLTE\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x00\x02\x01\x00\x03\x02\
+\x00\x04\x02\x00\x05\x03\x00\x06\x03\x00\x06\x04\x00\x07\x04\x00\
+\x08\x05\x00\x09\x05\x00\x0a\x06\x00\x0b\x07\x00\x0c\x07\x00\x0d\
+\x08\x00\x0e\x08\x00\x0f\x09\x00\x10\x0a\x00\x11\x0a\x00\x12\x0b\
+\x00\x13\x0b\x00\x14\x0c\x00\x15\x0d\x00\x16\x0d\x00\x17\x0e\x00\
+\x18\x0e\x00\x19\x0f\x00\x1a\x10\x00\x1b\x10\x00\x1c\x11\x00\x1d\
+\x11\x00\x1e\x12\x00\x1f\x13\x00 \x13\x00!\x14\x00\x22\x14\
+\x00#\x15\x00$\x16\x00%\x16\x00&\x17\x00'\x17\x00\
+(\x18\x00)\x19\x00*\x19\x00+\x1a\x00,\x1a\x00-\
+\x1b\x00.\x1c\x00/\x1c\x000\x1d\x001\x1d\x002\x1e\
+\x003\x1f\x004\x1f\x005 \x006 \x007!\x00\
+8\x22\x009\x22\x00:#\x00;#\x00<$\x00=\
+%\x00>%\x00?&\x00@&\x00A'\x00B(\
+\x00C(\x00D)\x00E)\x00F*\x00G+\x00\
+I,\x00J,\x00K-\x00L.\x00M.\x00N\
+/\x00O/\x00P0\x00Q1\x00R1\x00S2\
+\x00U3\x00W4\x00X5\x00Y5\x00Z6\x00\
+[7\x00\x5c7\x00]8\x00^8\x00_9\x00`\
+:\x00a:\x00c;\x00e=\x00g>\x00h>\
+\x00i?\x00j@\x00k@\x00lA\x00mA\x00\
+nB\x00oC\x00pC\x00qD\x00sE\x00t\
+F\x00uF\x00vG\x00wG\x00yI\x00zI\
+\x00{J\x00|J\x00|K\x00}K\x00~L\x00\
+\x7fL\x00\x80M\x00\x81M\x00\x82N\x00\x83O\x00\x84\
+O\x00\x86P\x00\x87Q\x00\x88R\x00\x8aS\x00\x8bS\
+\x00\x8eU\x00\x8fV\x00\x91W\x00\x93X\x00\x94Y\x00\
+\x95Y\x00\x96Z\x00\x98[\x00\x99\x5c\x00\x9c^\x00\x9d\
+^\x00\x9e_\x00\x9f_\x00\xa0`\x00\xa1a\x00\xa2a\
+\x00\xa3b\x00\xa4b\x00\xa5c\x00\xa6d\x00\xa7d\x00\
+\xaaf\x00\xacg\x00\xadh\x00\xafi\x00\xb0j\x00\xb1\
+j\x00\xb2k\x00\xb3k\x00\xb4l\x00\xb5m\x00\xb6m\
+\x00\xb8n\x00\xbap\x00\xbbp\x00\xbcq\x00\xbdq\x00\
+\xber\x00\xbfs\x00\xc0s\x00\xc1t\x00\xc2t\x00\xc3\
+u\x00\xc5v\x00\xc7w\x00\xc8x\x00\xc9y\x00\xcay\
+\x00\xcbz\x00\xccz\x00\xce|\x00\xcf|\x00\xd0}\x00\
+\xd1}\x00\xd2~\x00\xd3\x7f\x00\xd4\x7f\x00\xd5\x80\x00\xd6\
+\x80\x00\xd7\x81\x00\xd8\x82\x00\xd9\x82\x00\xda\x83\x00\xdb\x83\
+\x00\xdc\x84\x00\xdd\x85\x00\xde\x85\x00\xdf\x86\x00\xe0\x86\x00\
+\xe1\x87\x00\xe2\x88\x00\xe3\x88\x00\xe4\x89\x00\xe5\x89\x00\xe6\
+\x8a\x00\xe7\x8b\x00\xe8\x8b\x00\xe9\x8c\x00\xea\x8c\x00\xeb\x8d\
+\x00\xec\x8e\x00\xed\x8e\x00\xee\x8f\x00\xef\x8f\x00\xf0\x90\x00\
+\xf1\x91\x00\xf2\x91\x00\xf3\x92\x00\xf4\x92\x00\xf5\x93\x00\xf6\
+\x94\x00\xf7\x94\x00\xf8\x95\x00\xf9\x95\x00\xfa\x96\x00\xfb\x97\
+\x00\xfc\x97\x00\xfd\x98\x00\xfe\x98\x00\xff\x99\x00\xff\xff\xff\
+s\xb6\xc7\xfa\x00\x00\x00\x08tRNS\x00\x09\x0e\x1b\
+(=\x5cr\xeeu#\xcb\x00\x00\x00\x01bKGD\
+\xf05\xb8\xefT\x00\x00\x06RIDATx\xda\xed\
+\x9c\xf9_\x94U\x14\xc6\xad\xacf\x18mTP\xc0\x04\
+\xc4\x85E\x05\xc1\x0d\xc9P\xd1\xc8\x5cZ\x15\xb5\xc5$\
+\xca4\xcb4\xcbJ\xcd\xca\xd2\xd4RJ\xcd\xca4\xb2\
+\x12\xcd\xcaL\xb1 \x90\x08DS@\xf6M\xf6\x01F\
+\x99a\xe6\x9d\x7f!\xd6\x98\xe5]\xeer\xee0\x9f\xbc\
+\xcf\xcf\x9c\xf7~\x99y\xdf\xf7\x9e\xf3\x9cs\xa7_?\
+...........W\xd5\x1dw\xbb\
+\x88\xfa\x8b\xc0\xdd\xa9r\x11\xdd\xc5\xe1n)\xb8dc\
+\x9f\xaa@\x16.\xc5\xd2\xa7*\xe3p\x1c\x8e\xc3\xc1\xc1\
+\x99]\x18\xae0\xe4G\xe2\xa5u\x8c\xe1\xcaBT\xda\
+S\x84lY\xbe;\x98\xc2U\x84\xb6\xff\xcd\x903D\
+l\x17\x86\xabT\x9b\x19\xc2U\x85un~\xee\xbf\x11\
+\xb0\xa5{w\x84\xbe\xcd\x0c\xae6\xa2{kv?\x8b\
+\xcd\x96\xe6\xdd\x15\xbaI`\x03W\x17\xf9_\xe2\xe0~\
+\x0e\x93\xedO\xaf\x9e\xd0\x97\x05\x16pM\xd1Vi\x8d\
+\xc7y,\xb6T\xaf\xde\xd0\x97\xcc\xf0p\xcdsm\x92\
+.\xcfT\x0c\xb6d\x0f\xeb\xd0\xb86h\xb8\x96\x18\xbb\
+\x94\xd0+\x0d\x99\xed\x9c\x87m\xe8\xb3m\xb0p7\x1f\
+qHX\xbd\xd2\x11\xd9\xcez\xd8\x87>c\x84\x84k\
+}L$\x9d\xf6\xbe\x80\xc4v\xc6\xdd1tI+\x1c\
+\x9cq\xb9h\xb2\xef\x9d\x81\xc0\xf6\xab\xbbX\xe8\xe37\
+\xa1\xe0\xda\x9e\x96(E|\xb2\x15\xd9N\x0f\x11\x0f}\
+\xf4\x06\x0c\x9c\xf9y\xc9B\xc9\xf7\xa2\x02\xdb\xc9AR\
+\xa1\xf3\x9a \xe0\xcc/\xca\x94q~9\xb2l'\xb4\
+\xd2\xa11:z8a\x8dl\x91\xe9wI\x86-I\
++\x17\x1aUG\x0d\xf7\x9aB\x09<\xf2\xb2$\xdbq\
+\xad|\xe8\x8cZJ\xb87\x14\x0bt\xff\x7f$\xd8~\
+\x18\xa8\x14\x1aYM\x05\xf7\x1e\x82}06_\x94-\
+Q\xa3\x1c:\xa9\x9c\x02n'\x92\xb9\x11pM\x84\xed\
+\x1b\x0dJhX\x191\xdc.D\xeb%\xb0\xc0\x81\xed\
+\x88\x06-4\xb8\x80\x10\xeecdc(\xb0\xd0\x8e\xed\
+k\x0djhP>\x11\xdc~5\xbam\x15Td\xc3\
+vX\x83\x1e\x1a\x90G\x00w\x10\x83M\xa5\x0a\xb5\xbe\
+y\xbet\xc3\x09\xf5\xcf\xc1\x86;\x8a\xb5@;]9\
+\xd1G\xde\xf9\x22\xcf\xc6\x84K\xd4\xa805\xb1\xa2;\
+\xf435n\xa8\xef\xdfxp\xcb\xf0\xed\xd2\xc8:\x82\
+\xef\xb4{\x9f\xc5\x833.\xc5_\x22\xbc\xb2=0A\
+\x8d\x1f\x18Q\x8dy\xcf\x19b\x09\x16\xa9\xb1\xec#`\
+\x8b\xaa\xc7~Z\x0dK\xf0\x97\x99\xfe.\x81{>\xb3\
+\x9e\xe0=gX\xec\x14g\x7fV\x03\xd1\x0eqc\x91\
+\x13\xd8f7\x12\xee\xad\xfa\x85\xcc\xd9\xa2\x1b\x89\xb3\x12\
+\xfd\x02\xc6l\x0f\xb5P\xe4s\xfa\xf9L\xd9\xe6\xb7P\
+e\xc2-\xf3\x18\xb2-l\xa1\xac!t\xd1\xcc\xd8\x16\
+\xe9\xa9K\xc3\xc6Y\x8c\xd8\x1e\xd6\x03\x14\xd5\x8d3\x99\
+\xb0\x89\xf9%\x04vDC\x14\x03\xb6\xd8V #\xa7\
+\xe1~p\xb6\xa5\x060\x0b\xacf\x1a0\xdbr\x03\xa0\
+yX=\x15\x94\xedI\x03\xa8\xedz}\x0a \xdbS\
+\xa0\xcef\x07\xddd0\xb6\xe7L\xe0V\x7f\xd5$ \
+\xb6x\x13\x83&Ie8\x08\xdb\x0b&&\xed\xa5\xd2\
+\x09\x00l\xabL\x8c\x1as%\xe3\xa9\xd9V\x9b\x99\xb5\
+4\x8b\xc7Q\xb2\xad\x13\x186\x83\x8b\x83\xa9\xd8^\x15\
+\x98\xb6\xd1\xf3\xc6P\xb0m\x10\x18\x0f \xe4\x92\xd3m\
+Tb\xa3\x1f\xdd\xc8\x1dM\xc8\xf6\xba\x22\x1b\xc0\x5c\xc9\
+\xd5QDl[\x9d3\xf4\xf2\xd7=\x04l\xdb\x9c3\
+\x91\xd3\xfc \xc9\x07\xb7\xc9)pM1d\xb7\xdc\x9b\
+N\x80kz\x80\xf4a\xdd\xce\x1cN7\x97\xfc5\xf7\
+!c\xb8z\xaaZg'S\xb8:\xcaJ\xe7#\x86\
+p\xb53h\x93\x92]\xec\xc6\x85\xee\xa3O\xe7\xf60\
+\x82\xab\x89\x04\xc85\xd5\x09L\xe0\xaa\xa7\x83d\xe9\xea\
+O\x19\xc0U@\xd57\xea\xfd\xe0p\x15\xe1*(\xa9\
+\x0f\x00\xc3\x95\x87\x01\xd6\xd4\xea\x83\xa0pe\x13A\xdd\
+\x08\xb7\xc3\x80p\xa5\xa1\xc0>\x8e\xdb\x110\xb8\xc2`\
+\x15\xb44G\x81\xe0\x0a\x82\x18x\x87\x9aD\x10\xb8k\
+\x81L\x5cW\xcd\xb7\x00p\xf9l\xd8\xda\xe9\x8eQ\xc3\
+\xe5\x050s\xfa\x07&Q\xc2\xe5\x8ee\xd8#\xd1\x9e\
+\xa0\x82\xbb\xe4\xcf\xb4\xbb\xa4=I\x01\x973\x92q_\
+\xce~\x08\x1f\x03\xee\xa2\x1f\xf3\x8e\xe6\xa0\x9f\x08\xe1\xb2\
+\xd9\xb3\xd9\x1f\x11@\x86\xcb\xf2\xc5_j0\xfe\xf8\x81\
+\xcd\x10>*\x5c\xc7\xf1\x05\x5cy\xa6\x10\x0cnX\x0f\
+\xe1#\xc2\xa5{\xe3\xb3\x0d\xcf\xb0X\xf6\xe1\x87y$\
+c\xc2\xa5\x11\xb0\xdd\xdb9\xd3\xbc\x97\x80\xee<\x1e\xdc\
+\x1a\x92\xef\xb4+t;~\xe8\x846,8\xd3j\xdc\
+\x05Fd\xf6\xfc\xfb\x9f`\x87fa\xdes\xc2z\xbc\
+\x05|2{o\xeb\x0f0o\x87L\xec\xa7U\xd8\x88\
+\xb3\x80\xbf\xcd\xb4\xf0\xfb8\xa1\xc3RI^\xc2\xef\xa0\
+/0\xcanVx\x1bz\xe8\xd0\x14\xb2\xed\x0b\xf9\xd6\
+\x1e}\xc5>\xbd\xd8\x8a\xfc\xa4\xfeA\xba\xf1\xef!e\
+\xb3X\xb6 n)\xa7\xc9S&\xa4a\xdc1W\xc5\
+\xca\x81\xcdH\xfb\xfe/4\xc9\xe6\x01\xe5\xed(\xb8P\
+\xb4\x90\x126 \xe4\xc2\xc7\xe9\xd2\xf4\xcf\x95&0\xc7\
+\x15I\x14\xc8\xca/\xa3\x01\xdf\xd3\x168_\xc8\xd3\x8d\
+/\x964>\x84u\xd8\x955vixl\x80\xdc\xc6\
+S,ch\x09\xaf\xc8\xb2}\x05QT\x7f'}\xae\
+!\xa4D\xd6\xa8\x14\xd6\xca\xb89\x87`\xec\x88S\x83\
+%\x16\x08-U0\xa0\xcd\xab$\xe1\x12\xa0\x8c\x9c\x9f\
+\xc5\xcfGM\xaeTl,H\x9e|\xda\x0bg\x81%\
+\x0f\x15\xb9\xfe\x94*\x84\x86\x91)^\x94m\x07\xa4y\
+\xf8\xfb0\x87\xebO\xbd\x8et\x9a\xcf\x14\x87\xd1B$\
+\xb4]S<\xed\xae?\x0d\x8d\xad\x9dn\xa5\x03\xdb\x16\
+h\xc3:c\x84\xcd\xf5#\xaa\x91O\x90\x9aV\xd8\xb1\
+\xbd\x05o\xf5g\xfaX]\xdfjd[Y\xc6e\xa8\
+\xe3\x1b\xe4M\x92\xcb\xbd\xeds\xeb\x91m\x04\x19\xac\x8f\
+\x08\xac\x15\x98\xb4\x97\xae\xf4\x0cF\xcc\xc6c\xb39\x22\
+\x10of\xd4\x98+\xec\x1a\xc8\xb1\x1d\xd9F\xa3\xeb\x19\
+\xc2\x8f31ki\x16u\x8cZ\xcd\xd1Y\xf0\xd5\xfa\
+D'\xdb\x0a\x13\xc3fpI\xa8\xc3\xc86\xa2:\x8f\
+\x08\xc4\x1a\x99\xb6\xd1\x8bW6Z\xc8\xa4_\xa0Zl\
+`?WB(\xdd\xfaf\x8b\xcb\xc29g\x22\x87\xc3\
+q8\x0e\xe7\x02p\xbb\x93\xfaT\x87d\xe1\x5cA\x1c\
+\xee\x96\x81\xbb\xad\xbf\x8b\xe8v\xfe\x83\xac\x5c\x5c\x5c\x5c\
+\x5c\x5c\x5c\x5c\x5c\x5c\x5c\xffC\xfd\x0b\x99\xa5\x5c~G\
+q`B\x00\x00\x00\x00IEND\xaeB`\x82\
+"
+
+qt_resource_name = b"\
+\x00\x06\
+\x07\x03}\xc3\
+\x00i\
+\x00m\x00a\x00g\x00e\x00s\
+\x00\x09\
+\x08\x97\x8a'\
+\x00h\
+\x00e\x00a\x00r\x00t\x00.\x00p\x00n\x00g\
+\x00\x09\
+\x08\x9b\xa0G\
+\x00t\
+\x00r\x00a\x00s\x00h\x00.\x00p\x00n\x00g\
+\x00\x07\
+\x08wW\x87\
+\x00b\
+\x00a\x00d\x00.\x00p\x00n\x00g\
+"
+
+qt_resource_struct = b"\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x02\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00B\x00\x00\x00\x00\x00\x01\x00\x00\x94\x1c\
+\x00\x00\x01z\xe7\xee'\x0d\
+\x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
+\x00\x00\x01z\xe7\xee'\x0d\
+\x00\x00\x00*\x00\x00\x00\x00\x00\x01\x00\x00d\xb8\
+\x00\x00\x01z\xe7\xee'\x0d\
+"
+
+def qInitResources():
+ QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+def qCleanupResources():
+ QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+qInitResources()
diff --git a/examples/widgets/systray/systray.pyproject b/examples/widgets/desktop/systray/systray.pyproject
index eadfb0d7a..eadfb0d7a 100644
--- a/examples/widgets/systray/systray.pyproject
+++ b/examples/widgets/desktop/systray/systray.pyproject
diff --git a/examples/widgets/systray/systray.qrc b/examples/widgets/desktop/systray/systray.qrc
index a8b653584..a8b653584 100644
--- a/examples/widgets/systray/systray.qrc
+++ b/examples/widgets/desktop/systray/systray.qrc
diff --git a/examples/widgets/desktop/systray/window.py b/examples/widgets/desktop/systray/window.py
new file mode 100644
index 000000000..0b5bc39dc
--- /dev/null
+++ b/examples/widgets/desktop/systray/window.py
@@ -0,0 +1,236 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import Slot
+from PySide6.QtGui import QAction, QIcon
+from PySide6.QtWidgets import (QCheckBox, QComboBox, QDialog,
+ QGridLayout, QGroupBox, QHBoxLayout, QLabel,
+ QLineEdit, QMenu, QMessageBox, QPushButton,
+ QSpinBox, QStyle, QSystemTrayIcon, QTextEdit,
+ QVBoxLayout)
+
+import rc_systray # noqa: F401
+
+
+class Window(QDialog):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+ self._icon_group_box = QGroupBox()
+ self._icon_label = QLabel()
+ self._icon_combo_box = QComboBox()
+ self._show_icon_check_box = QCheckBox()
+
+ self._message_group_box = QGroupBox()
+ self._type_label = QLabel()
+ self._duration_label = QLabel()
+ self._duration_warning_label = QLabel()
+ self._title_label = QLabel()
+ self._body_label = QLabel()
+
+ self._type_combo_box = QComboBox()
+ self._duration_spin_box = QSpinBox()
+ self._title_edit = QLineEdit()
+ self._body_edit = QTextEdit()
+ self._show_message_button = QPushButton()
+
+ self._minimize_action = QAction()
+ self._maximize_action = QAction()
+ self._restore_action = QAction()
+ self._quit_action = QAction()
+
+ self._tray_icon = QSystemTrayIcon()
+ self._tray_icon_menu = QMenu()
+
+ self.create_icon_group_box()
+ self.create_message_group_box()
+
+ self._icon_label.setMinimumWidth(self._duration_label.sizeHint().width())
+
+ self.create_actions()
+ self.create_tray_icon()
+
+ self._show_message_button.clicked.connect(self.show_message)
+ self._show_icon_check_box.toggled.connect(self._tray_icon.setVisible)
+ self._icon_combo_box.currentIndexChanged.connect(self.set_icon)
+ self._tray_icon.messageClicked.connect(self.message_clicked)
+ self._tray_icon.activated.connect(self.icon_activated)
+
+ self._main_layout = QVBoxLayout()
+ self._main_layout.addWidget(self._icon_group_box)
+ self._main_layout.addWidget(self._message_group_box)
+ self.setLayout(self._main_layout)
+
+ self._icon_combo_box.setCurrentIndex(1)
+ self._tray_icon.show()
+
+ self.setWindowTitle("Systray")
+ self.resize(400, 300)
+
+ def setVisible(self, visible):
+ self._minimize_action.setEnabled(visible)
+ self._maximize_action.setEnabled(not self.isMaximized())
+ self._restore_action.setEnabled(self.isMaximized() or not visible)
+ super().setVisible(visible)
+
+ def closeEvent(self, event):
+ if not event.spontaneous() or not self.isVisible():
+ return
+ if self._tray_icon.isVisible():
+ QMessageBox.information(self, "Systray",
+ "The program will keep running in the system tray. "
+ "To terminate the program, choose <b>Quit</b> in the context "
+ "menu of the system tray entry.")
+ self.hide()
+ event.ignore()
+
+ @Slot(int)
+ def set_icon(self, index):
+ icon = self._icon_combo_box.itemIcon(index)
+ self._tray_icon.setIcon(icon)
+ self.setWindowIcon(icon)
+ self._tray_icon.setToolTip(self._icon_combo_box.itemText(index))
+
+ @Slot(str)
+ def icon_activated(self, reason):
+ if reason == QSystemTrayIcon.Trigger:
+ pass
+ if reason == QSystemTrayIcon.DoubleClick:
+ self._icon_combo_box.setCurrentIndex(
+ (self._icon_combo_box.currentIndex() + 1) % self._icon_combo_box.count()
+ )
+ if reason == QSystemTrayIcon.MiddleClick:
+ self.show_message()
+
+ @Slot()
+ def show_message(self):
+ self._show_icon_check_box.setChecked(True)
+ selected_icon = self._type_combo_box.itemData(self._type_combo_box.currentIndex())
+ msg_icon = QSystemTrayIcon.MessageIcon(selected_icon)
+
+ if selected_icon == -1: # custom icon
+ icon = QIcon(self._icon_combo_box.itemIcon(self._icon_combo_box.currentIndex()))
+ self._tray_icon.showMessage(
+ self._title_edit.text(),
+ self._body_edit.toPlainText(),
+ icon,
+ self._duration_spin_box.value() * 1000,
+ )
+ else:
+ self._tray_icon.showMessage(
+ self._title_edit.text(),
+ self._body_edit.toPlainText(),
+ msg_icon,
+ self._duration_spin_box.value() * 1000,
+ )
+
+ @Slot()
+ def message_clicked(self):
+ QMessageBox.information(None, "Systray",
+ "Sorry, I already gave what help I could.\n"
+ "Maybe you should try asking a human?")
+
+ def create_icon_group_box(self):
+ self._icon_group_box = QGroupBox("Tray Icon")
+
+ self._icon_label = QLabel("Icon:")
+
+ self._icon_combo_box = QComboBox()
+ self._icon_combo_box.addItem(QIcon(":/images/bad.png"), "Bad")
+ self._icon_combo_box.addItem(QIcon(":/images/heart.png"), "Heart")
+ self._icon_combo_box.addItem(QIcon(":/images/trash.png"), "Trash")
+
+ self._show_icon_check_box = QCheckBox("Show icon")
+ self._show_icon_check_box.setChecked(True)
+
+ icon_layout = QHBoxLayout()
+ icon_layout.addWidget(self._icon_label)
+ icon_layout.addWidget(self._icon_combo_box)
+ icon_layout.addStretch()
+ icon_layout.addWidget(self._show_icon_check_box)
+ self._icon_group_box.setLayout(icon_layout)
+
+ def create_message_group_box(self):
+ self._message_group_box = QGroupBox("Balloon Message")
+
+ self._type_label = QLabel("Type:")
+
+ self._type_combo_box = QComboBox()
+ self._type_combo_box.addItem("None", QSystemTrayIcon.NoIcon)
+ self._type_combo_box.addItem(
+ self.style().standardIcon(QStyle.SP_MessageBoxInformation),
+ "Information",
+ QSystemTrayIcon.Information,
+ )
+ self._type_combo_box.addItem(
+ self.style().standardIcon(QStyle.SP_MessageBoxWarning),
+ "Warning",
+ QSystemTrayIcon.Warning,
+ )
+ self._type_combo_box.addItem(
+ self.style().standardIcon(QStyle.SP_MessageBoxCritical),
+ "Critical",
+ QSystemTrayIcon.Critical,
+ )
+ self._type_combo_box.addItem(QIcon(), "Custom icon", -1)
+ self._type_combo_box.setCurrentIndex(1)
+
+ self._duration_label = QLabel("Duration:")
+
+ self._duration_spin_box = QSpinBox()
+ self._duration_spin_box.setRange(5, 60)
+ self._duration_spin_box.setSuffix(" s")
+ self._duration_spin_box.setValue(15)
+
+ self._duration_warning_label = QLabel("(some systems might ignore this hint)")
+ self._duration_warning_label.setIndent(10)
+
+ self._title_label = QLabel("Title:")
+ self._title_edit = QLineEdit("Cannot connect to network")
+ self._body_label = QLabel("Body:")
+
+ self._body_edit = QTextEdit()
+ self._body_edit.setPlainText("Don't believe me. Honestly, I don't have a clue.\n"
+ "Click this balloon for details.")
+
+ self._show_message_button = QPushButton("Show Message")
+ self._show_message_button.setDefault(True)
+
+ message_layout = QGridLayout()
+ message_layout.addWidget(self._type_label, 0, 0)
+ message_layout.addWidget(self._type_combo_box, 0, 1, 1, 2)
+ message_layout.addWidget(self._duration_label, 1, 0)
+ message_layout.addWidget(self._duration_spin_box, 1, 1)
+ message_layout.addWidget(self._duration_warning_label, 1, 2, 1, 3)
+ message_layout.addWidget(self._title_label, 2, 0)
+ message_layout.addWidget(self._title_edit, 2, 1, 1, 4)
+ message_layout.addWidget(self._body_label, 3, 0)
+ message_layout.addWidget(self._body_edit, 3, 1, 2, 4)
+ message_layout.addWidget(self._show_message_button, 5, 4)
+ message_layout.setColumnStretch(3, 1)
+ message_layout.setRowStretch(4, 1)
+ self._message_group_box.setLayout(message_layout)
+
+ def create_actions(self):
+ self._minimize_action = QAction("Minimize", self)
+ self._minimize_action.triggered.connect(self.hide)
+
+ self._maximize_action = QAction("Maximize", self)
+ self._maximize_action.triggered.connect(self.showMaximized)
+
+ self._restore_action = QAction("Restore", self)
+ self._restore_action.triggered.connect(self.showNormal)
+
+ self._quit_action = QAction("Quit", self)
+ self._quit_action.triggered.connect(qApp.quit) # noqa: F821
+
+ def create_tray_icon(self):
+ self._tray_icon_menu = QMenu(self)
+ self._tray_icon_menu.addAction(self._minimize_action)
+ self._tray_icon_menu.addAction(self._maximize_action)
+ self._tray_icon_menu.addAction(self._restore_action)
+ self._tray_icon_menu.addSeparator()
+ self._tray_icon_menu.addAction(self._quit_action)
+
+ self._tray_icon = QSystemTrayIcon(self)
+ self._tray_icon.setContextMenu(self._tray_icon_menu)
diff --git a/examples/widgets/dialogs/classwizard/classwizard.py b/examples/widgets/dialogs/classwizard/classwizard.py
index a7c7e2c58..0efbde69f 100644
--- a/examples/widgets/dialogs/classwizard/classwizard.py
+++ b/examples/widgets/dialogs/classwizard/classwizard.py
@@ -1,60 +1,21 @@
-#############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import os
from pathlib import Path
import sys
-from PySide6.QtCore import (QByteArray, QDir, QFile, QFileInfo,
- QRegularExpression, Qt, QUrl, Slot)
+from PySide6.QtCore import QDir, QFileInfo, QUrl, Slot
from PySide6.QtGui import QDesktopServices, QPixmap
from PySide6.QtWidgets import (QApplication, QComboBox, QCheckBox, QFormLayout,
- QFileDialog, QGroupBox, QGridLayout,
- QHBoxLayout, QLabel, QLineEdit, QMessageBox,
- QPushButton, QRadioButton, QToolButton,
- QVBoxLayout, QWizard, QWizardPage)
+ QFileDialog, QHBoxLayout, QLabel, QLineEdit,
+ QMessageBox, QToolButton, QVBoxLayout, QWizard,
+ QWizardPage)
-from listchooser import ListChooser, PropertyChooser, SignalChooser
+from listchooser import PropertyChooser, SignalChooser
-import classwizard_rc
+import classwizard_rc # noqa: F401
BASE_CLASSES = ['<None>', 'PySide6.QtCore.QObject',
@@ -114,7 +75,7 @@ class ClassWizard(QWizard):
"""Overrides QWizard.nextId() to insert the property/signal
page in case the class is a QObject."""
idx = self.currentId()
- if self.currentId() == self._class_info_index:
+ if idx == self._class_info_index:
qobject = self.field('qobject')
return self._qobject_index if qobject else self._output_index
return super(ClassWizard, self).nextId()
@@ -214,7 +175,7 @@ class ClassWizard(QWizard):
block += '):\n'
if base_class:
- block += f' super().__init__('
+ block += ' super().__init__('
if qobject:
block += 'parent'
block += ')\n'
@@ -317,7 +278,7 @@ class QObjectPage(QWizardPage):
self.setTitle("QObject parameters")
self.setSubTitle("Specify the signals, slots and properties.")
self.setPixmap(QWizard.LogoPixmap,
- ':/qt-project.org/logos/pysidelogo.png')
+ QPixmap(':/qt-project.org/logos/pysidelogo.png'))
layout = QVBoxLayout(self)
self._properties_chooser = PropertyChooser()
self.registerField('properties', self._properties_chooser, 'items')
@@ -372,7 +333,7 @@ class OutputFilesPage(QWizardPage):
def _choose_output_dir(self):
directory = QFileDialog.getExistingDirectory(self, "Output Directory",
- self.output_dir())
+ self.output_dir())
if directory:
self.set_output_dir(directory)
diff --git a/examples/widgets/dialogs/classwizard/classwizard.pyproject b/examples/widgets/dialogs/classwizard/classwizard.pyproject
index 6086099b8..fcc96ef28 100644
--- a/examples/widgets/dialogs/classwizard/classwizard.pyproject
+++ b/examples/widgets/dialogs/classwizard/classwizard.pyproject
@@ -1,4 +1,3 @@
{
- "files": ["classwizard.qrc", "classwizard.py", "classwizard_rc.py",
- "listchooser.py", "classwizard_rc.pyc"]
+ "files": ["classwizard.qrc", "classwizard.py", "listchooser.py"]
}
diff --git a/examples/widgets/dialogs/classwizard/classwizard_rc.py b/examples/widgets/dialogs/classwizard/classwizard_rc.py
index 6dfc0f99e..e9feae425 100644
--- a/examples/widgets/dialogs/classwizard/classwizard_rc.py
+++ b/examples/widgets/dialogs/classwizard/classwizard_rc.py
@@ -1,6 +1,6 @@
# Resource object code (Python 3)
# Created by: object code
-# Created by: The Resource Compiler for Qt version 6.1.0
+# Created by: The Resource Compiler for Qt version 6.2.2
# WARNING! All changes made in this file will be lost!
from PySide6 import QtCore
@@ -2300,11 +2300,11 @@ qt_resource_struct = b"\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x02\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x01tY\xa4\xff\x02\
+\x00\x00\x01z\xe7\xee'\x05\
\x00\x00\x00,\x00\x00\x00\x00\x00\x01\x00\x00\x0fo\
-\x00\x00\x01x\xb6\x0e\xbc\x99\
+\x00\x00\x01z\xe7\xee'\x05\
\x00\x00\x00N\x00\x00\x00\x00\x00\x01\x00\x00]\xa5\
-\x00\x00\x01x\xb6\x0e\xdc\x09\
+\x00\x00\x01z\xe7\xee'\x05\
"
def qInitResources():
diff --git a/examples/widgets/dialogs/classwizard/listchooser.py b/examples/widgets/dialogs/classwizard/listchooser.py
index fbc29b40b..6bf47c6d1 100644
--- a/examples/widgets/dialogs/classwizard/listchooser.py
+++ b/examples/widgets/dialogs/classwizard/listchooser.py
@@ -1,51 +1,13 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-from PySide6.QtCore import (QCoreApplication, QDir, QRegularExpression, Qt,
- Property, Slot)
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QRegularExpression, Property, Slot
from PySide6.QtGui import QRegularExpressionValidator
from PySide6.QtWidgets import (QComboBox, QDialog, QDialogButtonBox,
QFormLayout, QGroupBox, QHBoxLayout,
- QInputDialog, QLineEdit, QListWidget,
+ QLineEdit, QListWidget,
QListWidgetItem, QPushButton, QVBoxLayout,
- QWidget)
+ )
DEFAULT_TYPES = ['int', 'str', 'PySide6.QtCore.QPoint', 'PySide6.QtCore.QRect',
@@ -65,7 +27,7 @@ class ValidatingInputDialog(QDialog):
self._lineedit = QLineEdit()
self._lineedit.setClearButtonEnabled(True)
re = QRegularExpression(pattern)
- assert(re.isValid())
+ assert re.isValid()
self._validator = QRegularExpressionValidator(re, self)
self._lineedit.setValidator(self._validator)
self._form_layout.addRow(label, self._lineedit)
diff --git a/examples/widgets/dialogs/extension/extension.py b/examples/widgets/dialogs/extension/extension.py
index 1ad4e08a7..b8919f38e 100644
--- a/examples/widgets/dialogs/extension/extension.py
+++ b/examples/widgets/dialogs/extension/extension.py
@@ -1,44 +1,6 @@
-
-#############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the widgets/dialogs/extension example from Qt v5.x"""
diff --git a/examples/widgets/dialogs/findfiles/findfiles.py b/examples/widgets/dialogs/findfiles/findfiles.py
deleted file mode 100644
index d61fe2a4d..000000000
--- a/examples/widgets/dialogs/findfiles/findfiles.py
+++ /dev/null
@@ -1,222 +0,0 @@
-
-#############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-"""PySide6 port of the widgets/dialogs/findfiles example from Qt v5.x"""
-
-import sys
-
-from PySide6.QtCore import (QCoreApplication, QDir, QFile, QFileInfo,
- QIODevice, QTextStream, QUrl, Qt)
-from PySide6.QtGui import QDesktopServices
-from PySide6.QtWidgets import (QAbstractItemView, QApplication, QComboBox,
- QDialog, QFileDialog, QGridLayout, QHBoxLayout,
- QHeaderView, QLabel, QLineEdit, QProgressDialog,
- QPushButton, QSizePolicy, QTableWidget,
- QTableWidgetItem, QVBoxLayout, QWidget)
-
-
-class Window(QDialog):
- def __init__(self, parent=None):
- super().__init__(parent)
-
- self._browse_button = self.create_button("&Browse...", self.browse)
- self._find_button = self.create_button("&Find", self.find)
-
- self._file_combo_box = self.create_combo_box("*")
- self._text_combo_box = self.create_combo_box()
- self._directory_combo_box = self.create_combo_box(QDir.currentPath())
-
- file_label = QLabel("Named:")
- text_label = QLabel("Containing text:")
- directory_label = QLabel("In directory:")
- self._files_found_label = QLabel()
-
- self.create_files_table()
-
- buttons_layout = QHBoxLayout()
- buttons_layout.addStretch()
- buttons_layout.addWidget(self._find_button)
-
- main_layout = QGridLayout()
- main_layout.addWidget(file_label, 0, 0)
- main_layout.addWidget(self._file_combo_box, 0, 1, 1, 2)
- main_layout.addWidget(text_label, 1, 0)
- main_layout.addWidget(self._text_combo_box, 1, 1, 1, 2)
- main_layout.addWidget(directory_label, 2, 0)
- main_layout.addWidget(self._directory_combo_box, 2, 1)
- main_layout.addWidget(self._browse_button, 2, 2)
- main_layout.addWidget(self._files_table, 3, 0, 1, 3)
- main_layout.addWidget(self._files_found_label, 4, 0)
- main_layout.addLayout(buttons_layout, 5, 0, 1, 3)
- self.setLayout(main_layout)
-
- self.setWindowTitle("Find Files")
- self.resize(500, 300)
-
- def browse(self):
- directory = QFileDialog.getExistingDirectory(self, "Find Files",
- QDir.currentPath())
-
- if directory:
- if self._directory_combo_box.findText(directory) == -1:
- self._directory_combo_box.addItem(directory)
-
- self._directory_combo_box.setCurrentIndex(self._directory_combo_box.findText(directory))
-
- @staticmethod
- def update_combo_box(comboBox):
- if comboBox.findText(comboBox.currentText()) == -1:
- comboBox.addItem(comboBox.currentText())
-
- def find(self):
- self._files_table.setRowCount(0)
-
- file_name = self._file_combo_box.currentText()
- text = self._text_combo_box.currentText()
- path = self._directory_combo_box.currentText()
-
- self.update_combo_box(self._file_combo_box)
- self.update_combo_box(self._text_combo_box)
- self.update_combo_box(self._directory_combo_box)
-
- self._current_dir = QDir(path)
- if not file_name:
- file_name = "*"
- files = self._current_dir.entryList([file_name],
- QDir.Files | QDir.NoSymLinks)
-
- if text:
- files = self.find_files(files, text)
- self.show_files(files)
-
- def find_files(self, files, text):
- progress_dialog = QProgressDialog(self)
-
- progress_dialog.setCancelButtonText("&Cancel")
- progress_dialog.setRange(0, len(files))
- progress_dialog.setWindowTitle("Find Files")
-
- found_files = []
-
- for i in range(len(files)):
- progress_dialog.setValue(i)
- n = len(files)
- progress_dialog.setLabelText(f"Searching file number {i} of {n}...")
- QCoreApplication.processEvents()
-
- if progress_dialog.wasCanceled():
- break
-
- in_file = QFile(self._current_dir.absoluteFilePath(files[i]))
-
- if in_file.open(QIODevice.ReadOnly):
- stream = QTextStream(in_file)
- while not stream.atEnd():
- if progress_dialog.wasCanceled():
- break
- line = stream.readLine()
- if text in line:
- found_files.append(files[i])
- break
-
- progress_dialog.close()
-
- return found_files
-
- def show_files(self, files):
- for fn in files:
- file = QFile(self._current_dir.absoluteFilePath(fn))
- size = QFileInfo(file).size()
-
- file_name_item = QTableWidgetItem(fn)
- file_name_item.setFlags(file_name_item.flags() ^ Qt.ItemIsEditable)
- size_kb = int((size + 1023) / 1024)
- size_item = QTableWidgetItem(f"{size_kb} KB")
- size_item.setTextAlignment(Qt.AlignVCenter | Qt.AlignRight)
- size_item.setFlags(size_item.flags() ^ Qt.ItemIsEditable)
-
- row = self._files_table.rowCount()
- self._files_table.insertRow(row)
- self._files_table.setItem(row, 0, file_name_item)
- self._files_table.setItem(row, 1, size_item)
-
- n = len(files)
- self._files_found_label.setText(f"{n} file(s) found (Double click on a file to open it)")
-
- def create_button(self, text, member):
- button = QPushButton(text)
- button.clicked.connect(member)
- return button
-
- def create_combo_box(self, text=""):
- combo_box = QComboBox()
- combo_box.setEditable(True)
- combo_box.addItem(text)
- combo_box.setSizePolicy(QSizePolicy.Expanding,
- QSizePolicy.Preferred)
- return combo_box
-
- def create_files_table(self):
- self._files_table = QTableWidget(0, 2)
- self._files_table.setSelectionBehavior(QAbstractItemView.SelectRows)
-
- self._files_table.setHorizontalHeaderLabels(("File Name", "Size"))
- self._files_table.horizontalHeader().setSectionResizeMode(0, QHeaderView.Stretch)
- self._files_table.verticalHeader().hide()
- self._files_table.setShowGrid(False)
-
- self._files_table.cellActivated.connect(self.open_file_of_item)
-
- def open_file_of_item(self, row, column):
- item = self._files_table.item(row, 0)
-
- QDesktopServices.openUrl(QUrl(self._current_dir.absoluteFilePath(item.text())))
-
-
-if __name__ == '__main__':
-
- import sys
-
- app = QApplication(sys.argv)
- window = Window()
- window.show()
- sys.exit(app.exec())
diff --git a/examples/widgets/dialogs/findfiles/findfiles.pyproject b/examples/widgets/dialogs/findfiles/findfiles.pyproject
deleted file mode 100644
index c2fae6dff..000000000
--- a/examples/widgets/dialogs/findfiles/findfiles.pyproject
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "files": ["findfiles.py"]
-}
diff --git a/examples/widgets/dialogs/licensewizard/doc/licensewizard.png b/examples/widgets/dialogs/licensewizard/doc/licensewizard.png
new file mode 100644
index 000000000..cdba877ca
--- /dev/null
+++ b/examples/widgets/dialogs/licensewizard/doc/licensewizard.png
Binary files differ
diff --git a/examples/widgets/dialogs/licensewizard/doc/licensewizard.rst b/examples/widgets/dialogs/licensewizard/doc/licensewizard.rst
new file mode 100644
index 000000000..a0569006f
--- /dev/null
+++ b/examples/widgets/dialogs/licensewizard/doc/licensewizard.rst
@@ -0,0 +1,9 @@
+License Wizard Example
+======================
+
+The License Wizard example shows how to implement complex wizards in Qt.
+`Original example <https://doc.qt.io/qt-6/qtwidgets-dialogs-licensewizard-example.html>`_.
+
+.. image:: licensewizard.png
+ :width: 623
+ :alt: licensewizard screenshot
diff --git a/examples/widgets/dialogs/licensewizard/images/logo.png b/examples/widgets/dialogs/licensewizard/images/logo.png
new file mode 100644
index 000000000..56f17a3e5
--- /dev/null
+++ b/examples/widgets/dialogs/licensewizard/images/logo.png
Binary files differ
diff --git a/examples/widgets/dialogs/licensewizard/images/watermark.png b/examples/widgets/dialogs/licensewizard/images/watermark.png
new file mode 100644
index 000000000..124a05068
--- /dev/null
+++ b/examples/widgets/dialogs/licensewizard/images/watermark.png
Binary files differ
diff --git a/examples/widgets/dialogs/licensewizard/licensewizard.py b/examples/widgets/dialogs/licensewizard/licensewizard.py
new file mode 100644
index 000000000..28667d173
--- /dev/null
+++ b/examples/widgets/dialogs/licensewizard/licensewizard.py
@@ -0,0 +1,298 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+from enum import IntEnum
+from pathlib import Path
+
+from PySide6.QtCore import QRegularExpression
+from PySide6.QtGui import QPixmap, QRegularExpressionValidator
+from PySide6.QtPrintSupport import QPrintDialog, QPrinter
+from PySide6.QtWidgets import (QCheckBox, QGridLayout, QLabel, QLineEdit,
+ QMessageBox, QRadioButton, QVBoxLayout, QWizard,
+ QWizardPage)
+
+EMAIL_REGEXP = ".+@.+"
+
+
+class Pages(IntEnum):
+ Page_Intro = 0
+ Page_Evaluate = 1
+ Page_Register = 2
+ Page_Details = 3
+ Page_Conclusion = 4
+
+
+class IntroPage(QWizardPage):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+ self.setTitle("Introduction")
+
+ path = Path(__file__).resolve().parent
+
+ self.setPixmap(QWizard.WatermarkPixmap, QPixmap(path / "images" / "watermark.png"))
+ self.top_label = QLabel(
+ "This wizard will help you register your copy of "
+ "<i>Super Product One</i>&trade; or start "
+ "evaluating the product"
+ )
+ self.top_label.setWordWrap(True)
+
+ self.register_radio_button = QRadioButton("&Register your copy")
+ self.register_radio_button.setChecked(True)
+
+ self.evaluate_radio_button = QRadioButton("&Evaluate the product for 30 days")
+ layout = QVBoxLayout(self)
+ layout.addWidget(self.top_label)
+ layout.addWidget(self.register_radio_button)
+ layout.addWidget(self.evaluate_radio_button)
+
+ def nextId(self):
+ if self.evaluate_radio_button.isChecked():
+ return Pages.Page_Evaluate
+ else:
+ return Pages.Page_Register
+
+
+class EvaluatePage(QWizardPage):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.setTitle("Evaluate <i>Super Product One</i>&trade")
+ self.setSubTitle(
+ "Please fill both fields. Make sure to provide a valid "
+ "email address (e.g., john.smith@example.com)."
+ )
+
+ self.name_label = QLabel("N&ame:")
+ self.name_line_edit = QLineEdit()
+
+ self.name_label.setBuddy(self.name_line_edit)
+
+ self.email_label = QLabel("&Email address:")
+ self.email_line_edit = QLineEdit()
+ self.email_line_edit.setValidator(
+ QRegularExpressionValidator(QRegularExpression(EMAIL_REGEXP), self)
+ )
+ self.email_label.setBuddy(self.email_line_edit)
+
+ self.registerField("evaluate.name*", self.name_line_edit)
+ self.registerField("evaluate.email*", self.email_line_edit)
+
+ layout = QGridLayout(self)
+ layout.addWidget(self.name_label, 0, 0)
+ layout.addWidget(self.name_line_edit, 0, 1)
+ layout.addWidget(self.email_label, 1, 0)
+ layout.addWidget(self.email_line_edit, 1, 1)
+
+ def nextId(self):
+ return Pages.Page_Conclusion
+
+
+class RegisterPage(QWizardPage):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.setTitle("Register Your Copy of <i>Super Product One</i>&trade")
+ self.setSubTitle("If you have an upgrade key, please fill in " "the appropriate field.")
+
+ self.name_label = QLabel("N&ame:")
+ self.name_line_edit = QLineEdit()
+ self.name_label.setBuddy(self.name_line_edit)
+
+ self.upgrade_key_label = QLabel("&Upgrade key:")
+ self.upgrade_key_line_edit = QLineEdit()
+ self.upgrade_key_label.setBuddy(self.upgrade_key_line_edit)
+
+ self.registerField("register.name*", self.name_line_edit)
+ self.registerField("register.upgradeKey", self.upgrade_key_line_edit)
+
+ layout = QGridLayout(self)
+ layout.addWidget(self.name_label, 0, 0)
+ layout.addWidget(self.name_line_edit, 0, 1)
+ layout.addWidget(self.upgrade_key_label, 1, 0)
+ layout.addWidget(self.upgrade_key_line_edit, 1, 1)
+
+ def nextId(self):
+ if self.upgrade_key_line_edit.text():
+ return Pages.Page_Details
+ else:
+ return Pages.Page_Conclusion
+
+
+class DetailsPage(QWizardPage):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.setTitle("Fill In Your Details")
+ self.setSubTitle(
+ "Please fill all three fields. Make sure to provide a valid "
+ "email address (e.g., tanaka.aya@example.co.jp)."
+ )
+
+ self.company_label = QLabel("&Company name:")
+ self.company_line_edit = QLineEdit()
+ self.company_label.setBuddy(self.company_line_edit)
+
+ self.email_label = QLabel("&Email address:")
+ self.email_line_edit = QLineEdit()
+ self.email_line_edit.setValidator(
+ QRegularExpressionValidator(QRegularExpression(EMAIL_REGEXP), self)
+ )
+ self.email_label.setBuddy(self.email_line_edit)
+
+ self.postal_label = QLabel("&Postal address:")
+ self.postal_line_edit = QLineEdit()
+ self.postal_label.setBuddy(self.postal_line_edit)
+
+ self.registerField("details.company*", self.company_line_edit)
+ self.registerField("details.email*", self.email_line_edit)
+ self.registerField("details.postal*", self.postal_line_edit)
+
+ layout = QGridLayout(self)
+ layout.addWidget(self.company_label, 0, 0)
+ layout.addWidget(self.company_line_edit, 0, 1)
+ layout.addWidget(self.email_label, 1, 0)
+ layout.addWidget(self.email_line_edit, 1, 1)
+ layout.addWidget(self.postal_label, 2, 0)
+ layout.addWidget(self.postal_line_edit, 2, 1)
+
+ def nextId(self):
+ return Pages.Page_Conclusion
+
+
+class ConclusionPage(QWizardPage):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.setTitle("Complete Your Registration")
+
+ path = Path(__file__).resolve().parent
+ self.setPixmap(QWizard.WatermarkPixmap, QPixmap(path / "images" / "watermark.png"))
+
+ self.bottom_label = QLabel()
+ self.bottom_label.setWordWrap(True)
+
+ agreeCheckBox = QCheckBox("I agree to the terms of the license")
+
+ self.registerField("conclusion.agree*", agreeCheckBox)
+
+ layout = QVBoxLayout(self)
+ layout.addWidget(self.bottom_label)
+ layout.addWidget(agreeCheckBox)
+
+ self.custom_button_clicked_signal_connected = False
+
+ def nextId(self):
+ return -1
+
+ def initializePage(self):
+ if self.wizard().hasVisitedPage(Pages.Page_Evaluate):
+ license_text = "<u>Evaluation License Agreement:</u> "
+ "You can use self software for 30 days and make one "
+ "backup, but you are not allowed to distribute it."
+ elif self.wizard().hasVisitedPage(Pages.Page_Details):
+ license_text = (
+ "<u>First-Time License Agreement:</u> "
+ "You can use self software subject to the license "
+ "you will receive by email."
+ )
+
+ else:
+ license_text = (
+ "<u>Upgrade License Agreement:</u> "
+ "This software is licensed under the terms of your "
+ "current license."
+ )
+ self.bottom_label.setText(license_text)
+
+ def setVisible(self, visible: bool):
+ super().setVisible(visible)
+ if visible:
+ self.wizard().setButtonText(QWizard.CustomButton1, "&Print")
+ self.wizard().setOption(QWizard.HaveCustomButton1, True)
+
+ if not self.custom_button_clicked_signal_connected:
+ self.custom_button_clicked_signal_connected = True
+ self.wizard().customButtonClicked.connect(self.print_button_clicked)
+ else:
+ self.wizard().setOption(QWizard.HaveCustomButton1, False)
+
+ if self.custom_button_clicked_signal_connected:
+ self.custom_button_clicked_signal_connected = False
+ self.wizard().customButtonClicked.disconnect(self.print_button_clicked)
+
+ def print_button_clicked(self):
+ printer = QPrinter()
+
+ dialog = QPrintDialog(printer, self)
+ if dialog.exec():
+ QMessageBox.warning(
+ self,
+ "Print License",
+ "As an environmentally friendly measure, the "
+ "license text will not actually be printed.",
+ )
+
+
+class LicenseWizard(QWizard):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+ self._pages = [
+ IntroPage(),
+ EvaluatePage(),
+ RegisterPage(),
+ DetailsPage(),
+ ConclusionPage()
+ ]
+
+ for page in self._pages:
+ self.addPage(page)
+
+ self.setStartId(Pages.Page_Intro)
+
+ if sys.platform == 'darwin':
+ self.setWizardStyle(QWizard.ModernStyle)
+
+ self.setOption(QWizard.HaveHelpButton, True)
+
+ path = Path(__file__).resolve().parent
+ self.setPixmap(QWizard.LogoPixmap, QPixmap(path / "images" / "logo.png"))
+
+ self.helpRequested.connect(self.show_help)
+ self.setWindowTitle("License Wizard")
+
+ self.last_help_message: str = None
+
+ def show_help(self):
+ if self.currentId() == Pages.Page_Intro:
+ message = "The decision you make here will affect which page you get to see next."
+
+ elif self.currentId() == Pages.Page_Evaluate:
+ message = (
+ "Make sure to provide a valid email address, such as "
+ "toni.buddenbrook@example.de."
+ )
+
+ elif self.currentId() == Pages.Page_Register:
+ message = (
+ "If you don't provide an upgrade key, you will be asked to fill in your details."
+ )
+
+ elif self.currentId() == Pages.Page_Details:
+ message = (
+ "Make sure to provide a valid email address, such as "
+ "thomas.gradgrind@example.co.uk."
+ )
+
+ elif self.currentId() == Pages.Page_Conclusion:
+ message = "You must accept the terms and conditions of the license to proceed."
+ else:
+ message = "This help is likely not to be of any help."
+
+ if self.last_help_message == message:
+ message = (
+ "Sorry, I already gave what help I could. Maybe you should try asking a human?"
+ )
+
+ QMessageBox.information(self, "License Wizard Help", message)
+
+ self.last_help_message = message
diff --git a/examples/widgets/dialogs/licensewizard/licensewizard.pyproject b/examples/widgets/dialogs/licensewizard/licensewizard.pyproject
new file mode 100644
index 000000000..ef8b80173
--- /dev/null
+++ b/examples/widgets/dialogs/licensewizard/licensewizard.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["main.py", "licensewizard.py"]
+}
diff --git a/examples/widgets/dialogs/licensewizard/main.py b/examples/widgets/dialogs/licensewizard/main.py
new file mode 100644
index 000000000..26537ddf9
--- /dev/null
+++ b/examples/widgets/dialogs/licensewizard/main.py
@@ -0,0 +1,15 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from PySide6.QtWidgets import QApplication
+
+from licensewizard import LicenseWizard
+
+if __name__ == "__main__":
+ app = QApplication(sys.argv)
+
+ wizard = LicenseWizard()
+ wizard.show()
+ sys.exit(app.exec())
diff --git a/examples/widgets/dialogs/standarddialogs/standarddialogs.py b/examples/widgets/dialogs/standarddialogs/standarddialogs.py
index fb2dbc184..ef677d5a8 100644
--- a/examples/widgets/dialogs/standarddialogs/standarddialogs.py
+++ b/examples/widgets/dialogs/standarddialogs/standarddialogs.py
@@ -1,50 +1,14 @@
-
-#############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the widgets/dialogs/standarddialogs example from Qt v5.x"""
import sys
-from PySide6.QtCore import QDir, QRect, Qt
-from PySide6.QtGui import QFont, QPalette, QScreen
+from textwrap import dedent
+
+from PySide6.QtCore import QDir, Qt, Slot
+from PySide6.QtGui import QFont, QPalette
from PySide6.QtWidgets import (QApplication, QColorDialog, QCheckBox, QDialog,
QErrorMessage, QFontDialog, QFileDialog, QFrame,
QGridLayout, QGroupBox, QInputDialog, QLabel,
@@ -75,10 +39,6 @@ class DialogOptionsWidget(QGroupBox):
class Dialog(QDialog):
- MESSAGE = ("<p>Message boxes have a caption, a text, and up to three "
- "buttons, each with standard or custom texts.</p>"
- "<p>Click a button to close the message box. Pressing the Esc "
- "button will activate the detected escape button (if any).</p>")
def __init__(self, parent=None):
super().__init__(parent)
@@ -181,8 +141,6 @@ class Dialog(QDialog):
self._warning_label.setFrameStyle(frame_style)
self._warning_button = QPushButton("QMessageBox.&warning()")
- self._error_label = QLabel()
- self._error_label.setFrameStyle(frame_style)
self._error_button = QPushButton("QErrorMessage.showM&essage()")
self._integer_button.clicked.connect(self.set_integer)
@@ -268,46 +226,49 @@ class Dialog(QDialog):
layout.addWidget(self._warning_button, 3, 0)
layout.addWidget(self._warning_label, 3, 1)
layout.addWidget(self._error_button, 4, 0)
- layout.addWidget(self._error_label, 4, 1)
spacer = QSpacerItem(0, 0, QSizePolicy.Ignored, QSizePolicy.MinimumExpanding)
layout.addItem(spacer, 5, 0)
toolbox.addItem(page, "Message Boxes")
self.setWindowTitle("Standard Dialogs")
+ @Slot()
def set_integer(self):
i, ok = QInputDialog.getInt(self,
- "QInputDialog.getInteger()", "Percentage:", 25, 0, 100, 1)
+ "QInputDialog.getInteger()", "Percentage:", 25, 0, 100, 1)
if ok:
self._integer_label.setText(f"{i}%")
+ @Slot()
def set_double(self):
d, ok = QInputDialog.getDouble(self, "QInputDialog.getDouble()",
- "Amount:", 37.56, -10000, 10000, 2)
+ "Amount:", 37.56, -10000, 10000, 2)
if ok:
self._double_label.setText(f"${d:g}")
+ @Slot()
def set_item(self):
items = ("Spring", "Summer", "Fall", "Winter")
- item, ok = QInputDialog.getItem(self, "QInputDialog.getItem()",
- "Season:", items, 0, False)
+ item, ok = QInputDialog.getItem(self, "QInputDialog.getItem()", "Season:", items, 0, False)
if ok and item:
self._item_label.setText(item)
+ @Slot()
def set_text(self):
text, ok = QInputDialog.getText(self, "QInputDialog.getText()",
- "User name:", QLineEdit.Normal,
- QDir.home().dirName())
+ "User name:", QLineEdit.Normal, QDir.home().dirName())
if ok and text != '':
self._text_label.setText(text)
+ @Slot()
def set_multiline_text(self):
text, ok = QInputDialog.getMultiLineText(self, "QInputDialog::getMultiLineText()",
- "Address:", "John Doe\nFreedom Street")
+ "Address:", "John Doe\nFreedom Street")
if ok and text != '':
self._multiline_text_label.setText(text)
+ @Slot()
def set_color(self):
options_value = self._color_options.value()
options = QColorDialog.ColorDialogOptions(options_value)
@@ -318,6 +279,7 @@ class Dialog(QDialog):
self._color_label.setPalette(QPalette(color))
self._color_label.setAutoFillBackground(True)
+ @Slot()
def set_font(self):
options_value = self._font_options.value()
options = QFontDialog.FontDialogOptions(options_value)
@@ -332,54 +294,63 @@ class Dialog(QDialog):
self._font_label.setText(font.key())
self._font_label.setFont(font)
+ @Slot()
def set_existing_directory(self):
options_value = self._file_options.value()
options = QFileDialog.Options(options_value) | QFileDialog.ShowDirsOnly
- directory = QFileDialog.getExistingDirectory(self,
- "QFileDialog.getExistingDirectory()",
- self._directory_label.text(), options)
+ directory = QFileDialog.getExistingDirectory(self, "QFileDialog.getExistingDirectory()",
+ self._directory_label.text(), options)
if directory:
self._directory_label.setText(directory)
+ @Slot()
def set_open_file_name(self):
options_value = self._file_options.value()
options = QFileDialog.Options(options_value)
- fileName, filtr = QFileDialog.getOpenFileName(self,
- "QFileDialog.getOpenFileName()",
- self._open_file_name_label.text(),
- "All Files (*);;Text Files (*.txt)", "", options)
+ fileName, _ = QFileDialog.getOpenFileName(self, "QFileDialog.getOpenFileName()",
+ self._open_file_name_label.text(),
+ "All Files (*);;Text Files (*.txt)", "", options)
if fileName:
self._open_file_name_label.setText(fileName)
+ @Slot()
def set_open_file_names(self):
options_value = self._file_options.value()
options = QFileDialog.Options(options_value)
- files, filtr = QFileDialog.getOpenFileNames(self,
- "QFileDialog.getOpenFileNames()", self._open_files_path,
- "All Files (*);;Text Files (*.txt)", "", options)
+ files, _ = QFileDialog.getOpenFileNames(self, "QFileDialog.getOpenFileNames()",
+ self._open_files_path,
+ "All Files (*);;Text Files (*.txt)", "", options)
if files:
self._open_files_path = files[0]
file_list = ', '.join(files)
self._open_file_names_label.setText(f"[{file_list}]")
+ @Slot()
def set_save_file_name(self):
options_value = self._file_options.value()
options = QFileDialog.Options(options_value)
- fileName, filtr = QFileDialog.getSaveFileName(self,
- "QFileDialog.getSaveFileName()",
- self._save_file_name_label.text(),
- "All Files (*);;Text Files (*.txt)", "", options)
+ fileName, _ = QFileDialog.getSaveFileName(self, "QFileDialog.getSaveFileName()",
+ self._save_file_name_label.text(),
+ "All Files (*);;Text Files (*.txt)", "", options)
if fileName:
self._save_file_name_label.setText(fileName)
+ @Slot()
def critical_message(self):
- reply = QMessageBox.critical(self, "QMessageBox.critical()",
- Dialog.MESSAGE,
- QMessageBox.Abort | QMessageBox.Retry | QMessageBox.Ignore)
+ m = dedent("""\
+ Activating the liquid oxygen stirring fans caused an
+ explosion in one of the tanks. Liquid oxygen levels
+ are getting low. This may jeopardize the moon landing mission.""")
+ msg_box = QMessageBox(QMessageBox.Critical, "QMessageBox.critical()",
+ "Houston, we have a problem",
+ QMessageBox.Abort | QMessageBox.Retry | QMessageBox.Ignore,
+ self)
+ msg_box.setInformativeText(m)
+ reply = msg_box.exec()
if reply == QMessageBox.Abort:
self._critical_label.setText("Abort")
elif reply == QMessageBox.Retry:
@@ -387,18 +358,36 @@ class Dialog(QDialog):
else:
self._critical_label.setText("Ignore")
+ @Slot()
def information_message(self):
- reply = QMessageBox.information(self,
- "QMessageBox.information()", Dialog.MESSAGE)
+ m = dedent("""\
+ This phrase was often used by public address announcers at
+ the conclusion of Elvis Presley concerts in order to
+ disperse audiences who lingered in hopes of an encore.
+ It has since become a catchphrase and punchline.""")
+ msg_box = QMessageBox(QMessageBox.Information, "QMessageBox.information()",
+ "Elvis has left the building.",
+ QMessageBox.Ok, self)
+ msg_box.setInformativeText(m)
+ reply = msg_box.exec()
if reply == QMessageBox.Ok:
self._information_label.setText("OK")
else:
self._information_label.setText("Escape")
+ @Slot()
def question_message(self):
- reply = QMessageBox.question(self, "QMessageBox.question()",
- Dialog.MESSAGE,
- QMessageBox.Yes | QMessageBox.No | QMessageBox.Cancel)
+ m = dedent("""\
+ A cheeseburger is a hamburger topped with cheese.
+ Traditionally, the slice of cheese is placed on top of the
+ meat patty. The cheese is usually added to the cooking
+ hamburger patty shortly before serving, which allows the
+ cheese to melt.""")
+ msg_box = QMessageBox(QMessageBox.Question, "QMessageBox.question()",
+ "Would you like cheese with that?",
+ QMessageBox.Yes | QMessageBox.No | QMessageBox.Cancel)
+ msg_box.setInformativeText(m)
+ reply = msg_box.exec()
if reply == QMessageBox.Yes:
self._question_label.setText("Yes")
elif reply == QMessageBox.No:
@@ -406,25 +395,36 @@ class Dialog(QDialog):
else:
self._question_label.setText("Cancel")
+ @Slot()
def warning_message(self):
- msg_box = QMessageBox(QMessageBox.Warning,
- "QMessageBox.warning()", Dialog.MESSAGE,
- QMessageBox.NoButton, self)
- msg_box.addButton("Save &Again", QMessageBox.AcceptRole)
- msg_box.addButton("&Continue", QMessageBox.RejectRole)
+ msg_box = QMessageBox(QMessageBox.Warning, "QMessageBox.warning()",
+ "Delete the only copy of your movie manuscript?",
+ QMessageBox.NoButton, self)
+ m = "You've been working on this manuscript for 738 days now. Hang in there!"
+ msg_box.setInformativeText(m)
+ msg_box.setDetailedText('"A long time ago in a galaxy far, far away...."')
+ msg_box.addButton("&Keep", QMessageBox.AcceptRole)
+ msg_box.addButton("Delete", QMessageBox.RejectRole)
if msg_box.exec() == QMessageBox.AcceptRole:
- self._warning_label.setText("Save Again")
+ self._warning_label.setText("Keep")
else:
- self._warning_label.setText("Continue")
+ self._warning_label.setText("Delete")
+ @Slot()
def error_message(self):
- self._error_message_dialog.showMessage("This dialog shows and remembers "
- "error messages. If the checkbox is checked (as it is by "
- "default), the shown message will be shown again, but if the "
- "user unchecks the box the message will not appear again if "
- "QErrorMessage.showMessage() is called with the same message.")
- self._error_label.setText("If the box is unchecked, the message won't "
- "appear again.")
+ m = dedent("""\
+ This dialog shows and remembers error messages. If the
+ user chooses to not show the dialog again, the dialog
+ will not appear again if QErrorMessage.showMessage()
+ is called with the same message.""")
+ self._error_message_dialog.showMessage(m)
+ m = dedent("""\
+ You can queue up error messages, and they will be
+ shown one after each other. Each message maintains
+ its own state for whether it will be shown again
+ the next time QErrorMessage::showMessage() is called
+ with the same message.""")
+ self._error_message_dialog.showMessage(m)
if __name__ == '__main__':
diff --git a/examples/widgets/dialogs/tabdialog/doc/tabdialog.png b/examples/widgets/dialogs/tabdialog/doc/tabdialog.png
new file mode 100644
index 000000000..a92af5f9c
--- /dev/null
+++ b/examples/widgets/dialogs/tabdialog/doc/tabdialog.png
Binary files differ
diff --git a/examples/widgets/dialogs/tabdialog/doc/tabdialog.rst b/examples/widgets/dialogs/tabdialog/doc/tabdialog.rst
new file mode 100644
index 000000000..162316f54
--- /dev/null
+++ b/examples/widgets/dialogs/tabdialog/doc/tabdialog.rst
@@ -0,0 +1,13 @@
+Tab Dialog Example
+===================
+
+Shows how to construct a tab dialog using the QTabWidget class.
+
+The Tab Dialog example consists of a single TabDialog class
+that provides three tabs, each containing information about
+a particular file, and two standard push buttons that are
+used to accept or reject the contents of the dialog.
+
+.. image:: tabdialog.png
+ :width: 753
+ :alt: tabdialog screenshot
diff --git a/examples/widgets/dialogs/tabdialog/tabdialog.py b/examples/widgets/dialogs/tabdialog/tabdialog.py
new file mode 100644
index 000000000..6be3d020b
--- /dev/null
+++ b/examples/widgets/dialogs/tabdialog/tabdialog.py
@@ -0,0 +1,178 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the widgets/dialogs/tabdialog example from Qt v6.x"""
+
+import sys
+
+from PySide6.QtCore import QFileInfo
+from PySide6.QtWidgets import (
+ QWidget,
+ QVBoxLayout,
+ QLabel,
+ QCheckBox,
+ QApplication,
+ QDialog,
+ QTabWidget,
+ QLineEdit,
+ QDialogButtonBox,
+ QFrame,
+ QListWidget,
+ QGroupBox,
+)
+
+
+class TabDialog(QDialog):
+ def __init__(self, file_name: str, parent: QWidget = None):
+ super().__init__(parent)
+
+ file_info = QFileInfo(file_name)
+
+ tab_widget = QTabWidget()
+ tab_widget.addTab(GeneralTab(file_info, self), "General")
+ tab_widget.addTab(PermissionsTab(file_info, self), "Permissions")
+ tab_widget.addTab(ApplicationsTab(file_info, self), "Applications")
+
+ button_box = QDialogButtonBox(
+ QDialogButtonBox.Ok | QDialogButtonBox.Cancel
+ )
+
+ button_box.accepted.connect(self.accept)
+ button_box.rejected.connect(self.reject)
+
+ main_layout = QVBoxLayout()
+ main_layout.addWidget(tab_widget)
+ main_layout.addWidget(button_box)
+ self.setLayout(main_layout)
+ self.setWindowTitle("Tab Dialog")
+
+
+class GeneralTab(QWidget):
+ def __init__(self, file_info: QFileInfo, parent: QWidget):
+ super().__init__(parent)
+
+ file_name_label = QLabel("File Name:")
+ file_name_edit = QLineEdit(file_info.fileName())
+
+ path_label = QLabel("Path:")
+ path_value_label = QLabel(file_info.absoluteFilePath())
+ path_value_label.setFrameStyle(QFrame.Panel | QFrame.Sunken)
+
+ size_label = QLabel("Size:")
+ size = file_info.size() / 1024
+ size_value_label = QLabel(f"{size} K")
+ size_value_label.setFrameStyle(QFrame.Panel | QFrame.Sunken)
+
+ last_read_label = QLabel("Last Read:")
+ last_read_value_label = QLabel(file_info.lastRead().toString())
+ last_read_value_label.setFrameStyle(QFrame.Panel | QFrame.Sunken)
+
+ last_mod_label = QLabel("Last Modified:")
+ last_mod_value_label = QLabel(file_info.lastModified().toString())
+ last_mod_value_label.setFrameStyle(QFrame.Panel | QFrame.Sunken)
+
+ main_layout = QVBoxLayout()
+ main_layout.addWidget(file_name_label)
+ main_layout.addWidget(file_name_edit)
+ main_layout.addWidget(path_label)
+ main_layout.addWidget(path_value_label)
+ main_layout.addWidget(size_label)
+ main_layout.addWidget(size_value_label)
+ main_layout.addWidget(last_read_label)
+ main_layout.addWidget(last_read_value_label)
+ main_layout.addWidget(last_mod_label)
+ main_layout.addWidget(last_mod_value_label)
+ main_layout.addStretch(1)
+ self.setLayout(main_layout)
+
+
+class PermissionsTab(QWidget):
+ def __init__(self, file_info: QFileInfo, parent: QWidget):
+ super().__init__(parent)
+
+ permissions_group = QGroupBox("Permissions")
+
+ readable = QCheckBox("Readable")
+ if file_info.isReadable():
+ readable.setChecked(True)
+
+ writable = QCheckBox("Writable")
+ if file_info.isWritable():
+ writable.setChecked(True)
+
+ executable = QCheckBox("Executable")
+ if file_info.isExecutable():
+ executable.setChecked(True)
+
+ owner_group = QGroupBox("Ownership")
+
+ owner_label = QLabel("Owner")
+ owner_value_label = QLabel(file_info.owner())
+ owner_value_label.setFrameStyle(QFrame.Panel | QFrame.Sunken)
+
+ group_label = QLabel("Group")
+ group_value_label = QLabel(file_info.group())
+ group_value_label.setFrameStyle(QFrame.Panel | QFrame.Sunken)
+
+ permissions_layout = QVBoxLayout()
+ permissions_layout.addWidget(readable)
+ permissions_layout.addWidget(writable)
+ permissions_layout.addWidget(executable)
+ permissions_group.setLayout(permissions_layout)
+
+ owner_layout = QVBoxLayout()
+ owner_layout.addWidget(owner_label)
+ owner_layout.addWidget(owner_value_label)
+ owner_layout.addWidget(group_label)
+ owner_layout.addWidget(group_value_label)
+ owner_group.setLayout(owner_layout)
+
+ main_layout = QVBoxLayout()
+ main_layout.addWidget(permissions_group)
+ main_layout.addWidget(owner_group)
+ main_layout.addStretch(1)
+ self.setLayout(main_layout)
+
+
+class ApplicationsTab(QWidget):
+ def __init__(self, file_info: QFileInfo, parent: QWidget):
+ super().__init__(parent)
+
+ top_label = QLabel("Open with:")
+
+ applications_list_box = QListWidget()
+ applications = []
+
+ for i in range(1, 31):
+ applications.append(f"Application {i}")
+ applications_list_box.insertItems(0, applications)
+
+ if not file_info.suffix():
+ always_check_box = QCheckBox(
+ "Always use this application to open this type of file"
+ )
+ else:
+ always_check_box = QCheckBox(
+ f"Always use this application to open files "
+ f"with the extension {file_info.suffix()}"
+ )
+
+ layout = QVBoxLayout()
+ layout.addWidget(top_label)
+ layout.addWidget(applications_list_box)
+ layout.addWidget(always_check_box)
+ self.setLayout(layout)
+
+
+if __name__ == "__main__":
+ app = QApplication(sys.argv)
+
+ if len(sys.argv) >= 2:
+ file_name = sys.argv[1]
+ else:
+ file_name = "."
+
+ tab_dialog = TabDialog(file_name)
+ tab_dialog.show()
+
+ sys.exit(app.exec())
diff --git a/examples/widgets/dialogs/tabdialog/tabdialog.pyproject b/examples/widgets/dialogs/tabdialog/tabdialog.pyproject
new file mode 100644
index 000000000..f121cd804
--- /dev/null
+++ b/examples/widgets/dialogs/tabdialog/tabdialog.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["tabdialog.py"]
+}
diff --git a/examples/widgets/dialogs/trivialwizard/trivialwizard.py b/examples/widgets/dialogs/trivialwizard/trivialwizard.py
index 9b5c07255..2e551ae19 100644
--- a/examples/widgets/dialogs/trivialwizard/trivialwizard.py
+++ b/examples/widgets/dialogs/trivialwizard/trivialwizard.py
@@ -1,51 +1,13 @@
-
-#############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the widgets/dialogs/trivialwizard example from Qt v5.x"""
import sys
from PySide6.QtWidgets import (QApplication, QFormLayout, QLabel, QLineEdit,
- QVBoxLayout, QWidget, QWizardPage, QWizard)
+ QVBoxLayout, QWizardPage, QWizard)
def create_intro_page():
@@ -53,7 +15,7 @@ def create_intro_page():
page.setTitle("Introduction")
label = QLabel("This wizard will help you register your copy of "
- "Super Product Two.")
+ "Super Product Two.")
label.setWordWrap(True)
layout = QVBoxLayout(page)
diff --git a/examples/widgets/draganddrop/draggableicons/doc/draggableicons.png b/examples/widgets/draganddrop/draggableicons/doc/draggableicons.png
new file mode 100644
index 000000000..640a99e44
--- /dev/null
+++ b/examples/widgets/draganddrop/draggableicons/doc/draggableicons.png
Binary files differ
diff --git a/examples/widgets/draganddrop/draggableicons/doc/draggableicons.rst b/examples/widgets/draganddrop/draggableicons/doc/draggableicons.rst
new file mode 100644
index 000000000..3f67e5809
--- /dev/null
+++ b/examples/widgets/draganddrop/draggableicons/doc/draggableicons.rst
@@ -0,0 +1,9 @@
+Draggable Icons Example
+=======================
+
+The Draggable Icons example shows how to drag and drop image data between
+widgets in the same application,and between different applications.
+
+.. image:: draggableicons.png
+ :width: 536
+ :alt: draggable icons screenshot
diff --git a/examples/widgets/draganddrop/draggableicons/draggableicons.py b/examples/widgets/draganddrop/draggableicons/draggableicons.py
new file mode 100644
index 000000000..b929bd5e3
--- /dev/null
+++ b/examples/widgets/draganddrop/draggableicons/draggableicons.py
@@ -0,0 +1,128 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from pathlib import Path
+import sys
+
+from PySide6.QtCore import QByteArray, QDataStream, QIODevice, QMimeData, QPoint, Qt
+from PySide6.QtGui import QColor, QDrag, QPainter, QPixmap
+from PySide6.QtWidgets import QApplication, QFrame, QHBoxLayout, QLabel, QWidget
+
+
+class DragWidget(QFrame):
+ def __init__(self, parent: QWidget):
+ super().__init__(parent)
+ self.setMinimumSize(200, 200)
+ self.setFrameStyle(QFrame.Sunken | QFrame.StyledPanel)
+ self.setAcceptDrops(True)
+
+ path = Path(__file__).resolve().parent
+
+ boat_icon = QLabel(self)
+ boat_icon.setPixmap(QPixmap(path / "images" / "boat.png"))
+ boat_icon.move(10, 10)
+ boat_icon.show()
+ boat_icon.setAttribute(Qt.WA_DeleteOnClose)
+
+ car_icon = QLabel(self)
+ car_icon.setPixmap(QPixmap(path / "images" / "car.png"))
+ car_icon.move(100, 10)
+ car_icon.show()
+ car_icon.setAttribute(Qt.WA_DeleteOnClose)
+
+ house_icon = QLabel(self)
+ house_icon.setPixmap(QPixmap(path / "images" / "house.png"))
+ house_icon.move(10, 80)
+ house_icon.show()
+ house_icon.setAttribute(Qt.WA_DeleteOnClose)
+
+ def dragEnterEvent(self, event):
+ if event.mimeData().hasFormat("application/x-dnditem_data"):
+ if event.source() == self:
+ event.setDropAction(Qt.MoveAction)
+ event.accept()
+ else:
+ event.acceptProposedAction()
+ else:
+ event.ignore()
+
+ def dragMoveEvent(self, event):
+ if event.mimeData().hasFormat("application/x-dnditem_data"):
+ if event.source() == self:
+ event.setDropAction(Qt.MoveAction)
+ event.accept()
+ else:
+ event.acceptProposedAction()
+ else:
+ event.ignore()
+
+ def dropEvent(self, event):
+ if event.mimeData().hasFormat("application/x-dnditem_data"):
+ item_data: QByteArray = event.mimeData().data("application/x-dnditem_data")
+ data_stream = QDataStream(item_data, QIODevice.ReadOnly)
+
+ pixmap = QPixmap()
+ offset = QPoint()
+
+ data_stream >> pixmap >> offset
+
+ new_icon = QLabel(self)
+ new_icon.setPixmap(pixmap)
+ new_icon.move(event.position().toPoint() - offset)
+ new_icon.show()
+ new_icon.setAttribute(Qt.WA_DeleteOnClose)
+
+ if event.source() == self:
+ event.setDropAction(Qt.MoveAction)
+ event.accept()
+ else:
+ event.acceptProposedAction()
+ else:
+ event.ignore()
+
+ def mousePressEvent(self, event):
+ child: QLabel = self.childAt(event.position().toPoint())
+ if not child:
+ return
+
+ pixmap = child.pixmap()
+
+ item_data = QByteArray()
+ data_stream = QDataStream(item_data, QIODevice.WriteOnly)
+
+ data_stream << pixmap << QPoint(event.position().toPoint() - child.pos())
+
+ mime_data = QMimeData()
+ mime_data.setData("application/x-dnditem_data", item_data)
+
+ drag = QDrag(self)
+ drag.setMimeData(mime_data)
+ drag.setPixmap(pixmap)
+ drag.setHotSpot(event.position().toPoint() - child.pos())
+
+ # .copy() is important: python is different than c++ in this case
+ temp_pixmap = pixmap.copy()
+ with QPainter(temp_pixmap) as painter:
+ painter.fillRect(pixmap.rect(), QColor(127, 127, 127, 127))
+
+ child.setPixmap(temp_pixmap)
+
+ if drag.exec(Qt.CopyAction | Qt.MoveAction, Qt.CopyAction) == Qt.MoveAction:
+ child.close()
+ else:
+ child.show()
+ child.setPixmap(pixmap)
+
+
+if __name__ == "__main__":
+ app = QApplication(sys.argv)
+
+ main_widget = QWidget()
+ horizontal_layout = QHBoxLayout(main_widget)
+ horizontal_layout.addWidget(DragWidget(main_widget))
+ horizontal_layout.addWidget(DragWidget(main_widget))
+
+ main_widget.setWindowTitle("Draggable Icons")
+ main_widget.show()
+
+ sys.exit(app.exec())
diff --git a/examples/widgets/draganddrop/draggableicons/draggableicons.qrc b/examples/widgets/draganddrop/draggableicons/draggableicons.qrc
new file mode 100644
index 000000000..63f84ac06
--- /dev/null
+++ b/examples/widgets/draganddrop/draggableicons/draggableicons.qrc
@@ -0,0 +1,7 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource prefix="">
+ <file>images/boat.png</file>
+ <file>images/car.png</file>
+ <file>images/house.png</file>
+</qresource>
+</RCC>
diff --git a/examples/widgets/draganddrop/draggableicons/images/boat.png b/examples/widgets/draganddrop/draggableicons/images/boat.png
new file mode 100644
index 000000000..46c894f06
--- /dev/null
+++ b/examples/widgets/draganddrop/draggableicons/images/boat.png
Binary files differ
diff --git a/examples/widgets/draganddrop/draggableicons/images/car.png b/examples/widgets/draganddrop/draggableicons/images/car.png
new file mode 100644
index 000000000..3cb35e56c
--- /dev/null
+++ b/examples/widgets/draganddrop/draggableicons/images/car.png
Binary files differ
diff --git a/examples/widgets/draganddrop/draggableicons/images/house.png b/examples/widgets/draganddrop/draggableicons/images/house.png
new file mode 100644
index 000000000..ee9d5b115
--- /dev/null
+++ b/examples/widgets/draganddrop/draggableicons/images/house.png
Binary files differ
diff --git a/examples/widgets/draganddrop/draggabletext/draggabletext.py b/examples/widgets/draganddrop/draggabletext/draggabletext.py
index 9595b0d2c..6ffdbd70e 100644
--- a/examples/widgets/draganddrop/draggabletext/draggabletext.py
+++ b/examples/widgets/draganddrop/draggabletext/draggabletext.py
@@ -1,52 +1,15 @@
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-#############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-"""PySide6 port of the widgets/draganddrop/draggabletext example from Qt v5.x, originating from PyQt"""
+"""PySide6 port of the widgets/draganddrop/draggabletext example from Qt v5.x,
+ originating from PyQt"""
from PySide6.QtCore import QFile, QIODevice, QMimeData, QPoint, Qt, QTextStream
from PySide6.QtGui import QDrag, QPalette, QPixmap
from PySide6.QtWidgets import QApplication, QFrame, QLabel, QWidget
-import draggabletext_rc
+import draggabletext_rc # noqa: F401
class DragLabel(QLabel):
diff --git a/examples/widgets/draganddrop/draggabletext/draggabletext.pyproject b/examples/widgets/draganddrop/draggabletext/draggabletext.pyproject
index 0d422076e..fd97c9096 100644
--- a/examples/widgets/draganddrop/draggabletext/draggabletext.pyproject
+++ b/examples/widgets/draganddrop/draggabletext/draggabletext.pyproject
@@ -1,4 +1,3 @@
{
- "files": ["draggabletext_rc.py", "words.txt", "draggabletext.qrc",
- "draggabletext.py"]
+ "files": ["words.txt", "draggabletext.qrc", "draggabletext.py"]
}
diff --git a/examples/widgets/draganddrop/draggabletext/draggabletext_rc.py b/examples/widgets/draganddrop/draggabletext/draggabletext_rc.py
index e1d19bd91..30c01ce64 100644
--- a/examples/widgets/draganddrop/draggabletext/draggabletext_rc.py
+++ b/examples/widgets/draganddrop/draggabletext/draggabletext_rc.py
@@ -1,6 +1,6 @@
# Resource object code (Python 3)
# Created by: object code
-# Created by: The Resource Compiler for Qt version 5.14.0
+# Created by: The Resource Compiler for Qt version 6.2.2
# WARNING! All changes made in this file will be lost!
from PySide6 import QtCore
@@ -43,7 +43,7 @@ qt_resource_struct = b"\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x01e\xaf\x16\xd2\x9d\
+\x00\x00\x01z\xe7\xee'\x05\
"
def qInitResources():
diff --git a/examples/widgets/draganddrop/dropsite/doc/dropsite.rst b/examples/widgets/draganddrop/dropsite/doc/dropsite.rst
new file mode 100644
index 000000000..8d6c42bc8
--- /dev/null
+++ b/examples/widgets/draganddrop/dropsite/doc/dropsite.rst
@@ -0,0 +1,8 @@
+Drop Site Example
+=================
+
+The Drop Site example shows how to distinguish the various MIME formats
+available in a drag and drop operation.
+
+It accepts drops from other applications and displays the MIME formats
+provided by the drag object.
diff --git a/examples/widgets/draganddrop/dropsite/droparea.py b/examples/widgets/draganddrop/dropsite/droparea.py
new file mode 100644
index 000000000..efc4614f0
--- /dev/null
+++ b/examples/widgets/draganddrop/dropsite/droparea.py
@@ -0,0 +1,67 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QMimeData, Qt, Slot, Signal
+from PySide6.QtGui import QPalette, QPixmap
+from PySide6.QtWidgets import QFrame, QLabel
+
+
+class DropArea(QLabel):
+
+ changed = Signal(QMimeData)
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.setMinimumSize(200, 200)
+ self.setFrameStyle(QFrame.Sunken | QFrame.StyledPanel)
+ self.setAlignment(Qt.AlignCenter)
+ self.setAcceptDrops(True)
+ self.setAutoFillBackground(True)
+ self.clear()
+
+ def dragEnterEvent(self, event):
+ self.setText("<drop content>")
+ self.setBackgroundRole(QPalette.Highlight)
+
+ event.acceptProposedAction()
+ self.changed.emit(event.mimeData())
+
+ def dragMoveEvent(self, event):
+ event.acceptProposedAction()
+
+ def dropEvent(self, event):
+ mime_data = event.mimeData()
+
+ if mime_data.hasImage():
+ self.setPixmap(QPixmap(mime_data.imageData()))
+ elif mime_data.hasFormat("text/markdown"):
+ self.setText(mime_data.data("text/markdown"))
+ self.setTextFormat(Qt.MarkdownText)
+ elif mime_data.hasHtml():
+ self.setText(mime_data.html())
+ self.setTextFormat(Qt.RichText)
+ elif mime_data.hasText():
+ self.setText(mime_data.text())
+ self.setTextFormat(Qt.PlainText)
+ elif mime_data.hasUrls():
+ url_list = mime_data.urls()
+ text = ""
+ for i in range(0, min(len(url_list), 32)):
+ text += url_list[i].path() + "\n"
+ self.setText(text)
+ else:
+ self.setText("Cannot display data")
+
+ self.setBackgroundRole(QPalette.Dark)
+ event.acceptProposedAction()
+
+ def dragLeaveEvent(self, event):
+ self.clear()
+ event.accept()
+
+ @Slot()
+ def clear(self):
+ self.setText("<drop content>")
+ self.setBackgroundRole(QPalette.Dark)
+
+ self.changed.emit(None)
diff --git a/examples/widgets/draganddrop/dropsite/dropsite.pyproject b/examples/widgets/draganddrop/dropsite/dropsite.pyproject
new file mode 100644
index 000000000..0173d5cb9
--- /dev/null
+++ b/examples/widgets/draganddrop/dropsite/dropsite.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["main.py", "droparea.py", "dropsitewindow.py"]
+}
diff --git a/examples/widgets/draganddrop/dropsite/dropsitewindow.py b/examples/widgets/draganddrop/dropsite/dropsitewindow.py
new file mode 100644
index 000000000..5427d520d
--- /dev/null
+++ b/examples/widgets/draganddrop/dropsite/dropsitewindow.py
@@ -0,0 +1,115 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import re
+from PySide6.QtCore import QMimeData, Qt, Slot
+from PySide6.QtGui import QGuiApplication
+from PySide6.QtWidgets import (QAbstractItemView, QPushButton,
+ QDialogButtonBox, QLabel,
+ QTableWidget, QTableWidgetItem,
+ QVBoxLayout, QWidget)
+
+from droparea import DropArea
+
+DESCRIPTION = """This example accepts drags from other applications and
+displays the MIME types provided by the drag object."""
+
+
+_WHITESPACE_PATTERN = re.compile(r"\s+")
+
+
+def simplify_whitespace(s):
+ return _WHITESPACE_PATTERN.sub(" ", s).strip()
+
+
+class DropSiteWindow(QWidget):
+
+ def __init__(self):
+ super().__init__()
+ drop_area = DropArea()
+ abstract_label = QLabel()
+ self._formats_table = QTableWidget()
+
+ button_box = QDialogButtonBox()
+ abstract_label = QLabel(DESCRIPTION)
+ abstract_label.setWordWrap(True)
+ abstract_label.adjustSize()
+
+ drop_area = DropArea()
+ drop_area.changed.connect(self.update_formats_table)
+
+ self._formats_table = QTableWidget()
+ self._formats_table.setColumnCount(2)
+ self._formats_table.setEditTriggers(QAbstractItemView.NoEditTriggers)
+ self._formats_table.setHorizontalHeaderLabels(["Format", "Content"])
+ self._formats_table.horizontalHeader().setStretchLastSection(True)
+
+ clear_button = QPushButton("Clear")
+ self._copy_button = QPushButton("Copy")
+ quit_button = QPushButton("Quit")
+
+ button_box = QDialogButtonBox()
+ button_box.addButton(clear_button, QDialogButtonBox.ActionRole)
+ button_box.addButton(self._copy_button, QDialogButtonBox.ActionRole)
+ self._copy_button.setVisible(False)
+
+ button_box.addButton(quit_button, QDialogButtonBox.RejectRole)
+
+ quit_button.clicked.connect(self.close)
+ clear_button.clicked.connect(drop_area.clear)
+ self._copy_button.clicked.connect(self.copy)
+
+ main_layout = QVBoxLayout(self)
+ main_layout.addWidget(abstract_label)
+ main_layout.addWidget(drop_area)
+ main_layout.addWidget(self._formats_table)
+ main_layout.addWidget(button_box)
+
+ self.setWindowTitle("Drop Site")
+ self.resize(700, 500)
+
+ @Slot(QMimeData)
+ def update_formats_table(self, mime_data):
+ self._formats_table.setRowCount(0)
+ self._copy_button.setEnabled(False)
+ if not mime_data:
+ return
+
+ for format in mime_data.formats():
+ format_item = QTableWidgetItem(format)
+ format_item.setFlags(Qt.ItemIsEnabled)
+ format_item.setTextAlignment(Qt.AlignTop | Qt.AlignLeft)
+
+ if format == "text/plain":
+ text = simplify_whitespace(mime_data.text())
+ elif format == "text/markdown":
+ text = mime_data.data("text/markdown").data().decode("utf8")
+ elif format == "text/html":
+ text = simplify_whitespace(mime_data.html())
+ elif format == "text/uri-list":
+ url_list = mime_data.urls()
+ text = ""
+ for i in range(0, min(len(url_list), 32)):
+ text += url_list[i].toString() + " "
+ else:
+ data = mime_data.data(format)
+ if data.size() > 32:
+ data.truncate(32)
+ text = data.toHex(" ").data().decode("utf8").upper()
+
+ row = self._formats_table.rowCount()
+ self._formats_table.insertRow(row)
+ self._formats_table.setItem(row, 0, QTableWidgetItem(format))
+ self._formats_table.setItem(row, 1, QTableWidgetItem(text))
+
+ self._formats_table.resizeColumnToContents(0)
+ self._copy_button.setEnabled(self._formats_table.rowCount() > 0)
+
+ @Slot()
+ def copy(self):
+ text = ""
+ for row in range(0, self._formats_table.rowCount()):
+ c1 = self._formats_table.item(row, 0).text()
+ c2 = self._formats_table.item(row, 1).text()
+ text += f"{c1}: {c2}\n"
+ QGuiApplication.clipboard().setText(text)
diff --git a/examples/widgets/draganddrop/dropsite/main.py b/examples/widgets/draganddrop/dropsite/main.py
new file mode 100644
index 000000000..bce476a61
--- /dev/null
+++ b/examples/widgets/draganddrop/dropsite/main.py
@@ -0,0 +1,15 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from PySide6.QtWidgets import QApplication
+
+from dropsitewindow import DropSiteWindow
+
+
+if __name__ == "__main__":
+ app = QApplication(sys.argv)
+ window = DropSiteWindow()
+ window.show()
+ sys.exit(app.exec())
diff --git a/examples/widgets/effects/blurpicker/blureffect.py b/examples/widgets/effects/blurpicker/blureffect.py
new file mode 100644
index 000000000..16c14a758
--- /dev/null
+++ b/examples/widgets/effects/blurpicker/blureffect.py
@@ -0,0 +1,33 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+
+from PySide6.QtCore import QRect
+from PySide6.QtGui import QPainter
+from PySide6.QtWidgets import QGraphicsBlurEffect
+
+
+class BlurEffect(QGraphicsBlurEffect):
+ def __init__(self, item):
+ super().__init__()
+ self._base_line = 200
+ self._item = item
+
+ def adjust_for_item(self):
+ y = self._base_line - self._item.pos().y()
+
+ # radius = qBound(qreal(0.0), y / 32, qreal(16.0)); which is equivalent to
+ radius = max(0, min(y / 32, 16))
+
+ self.setBlurRadius(radius)
+
+ def set_base_line(self, base_line):
+ self._base_line = base_line
+
+ def boundingRect(self) -> QRect:
+ self.adjust_for_item()
+ return super().boundingRect()
+
+ def draw(self, painter: QPainter):
+ self.adjust_for_item()
+ super().draw(painter)
diff --git a/examples/widgets/effects/blurpicker/blurpicker.py b/examples/widgets/effects/blurpicker/blurpicker.py
new file mode 100644
index 000000000..6ff11f217
--- /dev/null
+++ b/examples/widgets/effects/blurpicker/blurpicker.py
@@ -0,0 +1,105 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+
+from pathlib import Path
+from PySide6.QtCore import (
+ QEasingCurve,
+ QPointF,
+ Qt,
+ QAbstractAnimation,
+ QPropertyAnimation,
+ Property,
+)
+from PySide6.QtGui import QPainter, QTransform, QPixmap
+from PySide6.QtWidgets import QGraphicsView, QFrame, QGraphicsScene, QGraphicsPixmapItem
+from math import pi, sin, cos
+from blureffect import BlurEffect
+
+
+class BlurPicker(QGraphicsView):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._index = 0
+ self._animation = QPropertyAnimation(self, b"index")
+ self._path = Path(__file__).resolve().parent
+
+ self._background = QPixmap(self._path / "images" / "background.jpg")
+ self.setBackgroundBrush(self._background)
+ self.setScene(QGraphicsScene(self))
+
+ self._icons = []
+
+ self.setup_scene()
+ self.index = 0
+
+ self._animation.setDuration(400)
+ self._animation.setEasingCurve(QEasingCurve.InOutSine)
+
+ self.setRenderHint(QPainter.Antialiasing, True)
+ self.setFrameStyle(QFrame.NoFrame)
+
+ @Property(float)
+ def index(self) -> float:
+ return self._index
+
+ @index.setter
+ def index(self, index: float):
+ self._index = index
+
+ base_line = 0.0
+ iconAngle = 2 * pi / len(self._icons)
+
+ for i, icon in enumerate(self._icons):
+ a = (i + self._index) * iconAngle
+ xs = 170 * sin(a)
+ ys = 100 * cos(a)
+ pos = QPointF(xs, ys)
+ pos = QTransform().rotate(-20).map(pos)
+ pos -= QPointF(40, 40)
+ icon.setPos(pos)
+ base_line = max(base_line, ys)
+
+ icon.graphicsEffect().set_base_line(base_line)
+
+ self.scene().update()
+
+ def setup_scene(self):
+ self.scene().setSceneRect(-200, -120, 400, 240)
+
+ names = ["accessories-calculator.png", "accessories-text-editor.png",
+ "help-browser.png", "internet-group-chat.png",
+ "internet-mail.png", "internet-web-browser.png", "office-calendar.png",
+ "system-users.png"]
+
+ for name in names:
+ pixmap = QPixmap(self._path / "images" / name)
+ icon: QGraphicsPixmapItem = self.scene().addPixmap(pixmap)
+ icon.setZValue(1)
+ icon.setGraphicsEffect(BlurEffect(icon))
+ self._icons.append(icon)
+
+ bg: QGraphicsPixmapItem = self.scene().addPixmap(self._background)
+ bg.setZValue(0)
+ bg.setPos(-200, -150)
+
+ def keyPressEvent(self, event):
+ delta = 0
+ if event.key() == Qt.Key_Left:
+ delta = -1
+ elif event.key() == Qt.Key_Right:
+ delta = 1
+
+ if self._animation.state() == QAbstractAnimation.Stopped and delta:
+ self._animation.setEndValue(self._index + delta)
+ self._animation.start()
+ event.accept()
+
+ def mousePressEvent(self, event):
+ right = event.position().x() > (self.width() / 2)
+ delta = 1 if right else -1
+
+ if self._animation.state() == QAbstractAnimation.Stopped:
+ self._animation.setEndValue(self._index + delta)
+ self._animation.start()
+ event.accept()
diff --git a/examples/widgets/effects/blurpicker/blurpicker.pyproject b/examples/widgets/effects/blurpicker/blurpicker.pyproject
new file mode 100644
index 000000000..6ae303265
--- /dev/null
+++ b/examples/widgets/effects/blurpicker/blurpicker.pyproject
@@ -0,0 +1,17 @@
+{
+ "files": [
+ "main.py",
+ "blurpicker.py",
+ "blureffect.py",
+ "images/accessories-calculator.png",
+ "images/accessories-text-editor.png",
+ "images/background.jpg",
+ "images/help-browser.png",
+ "images/internet-group-chat.png",
+ "images/internet-mail.png",
+ "images/internet-web-browser.png",
+ "images/office-calendar.png",
+ "images/README.txt",
+ "images/system-users.png"
+ ]
+}
diff --git a/examples/widgets/effects/blurpicker/doc/blurpicker.png b/examples/widgets/effects/blurpicker/doc/blurpicker.png
new file mode 100644
index 000000000..826eef201
--- /dev/null
+++ b/examples/widgets/effects/blurpicker/doc/blurpicker.png
Binary files differ
diff --git a/examples/widgets/effects/blurpicker/doc/blurpicker.rst b/examples/widgets/effects/blurpicker/doc/blurpicker.rst
new file mode 100644
index 000000000..70ce04c8d
--- /dev/null
+++ b/examples/widgets/effects/blurpicker/doc/blurpicker.rst
@@ -0,0 +1,9 @@
+Blur Picker Effect Example
+==========================
+
+The blur picker effect example demonstrates how to apply
+graphical effects on items in the view.
+
+.. image:: blurpicker.png
+ :width: 400
+ :alt: Blur Picker Screenshot
diff --git a/examples/widgets/effects/blurpicker/images/README.txt b/examples/widgets/effects/blurpicker/images/README.txt
new file mode 100644
index 000000000..0927e177d
--- /dev/null
+++ b/examples/widgets/effects/blurpicker/images/README.txt
@@ -0,0 +1,5 @@
+The background is taken from a public domain photo at:
+http://www.photos8.com/view/computer_board2-800x600.html
+
+All other icons are from the Tango Desktop project:
+http://tango.freedesktop.org/Tango_Desktop_Project
diff --git a/examples/widgets/effects/blurpicker/images/accessories-calculator.png b/examples/widgets/effects/blurpicker/images/accessories-calculator.png
new file mode 100644
index 000000000..4e7661f65
--- /dev/null
+++ b/examples/widgets/effects/blurpicker/images/accessories-calculator.png
Binary files differ
diff --git a/examples/widgets/effects/blurpicker/images/accessories-text-editor.png b/examples/widgets/effects/blurpicker/images/accessories-text-editor.png
new file mode 100644
index 000000000..33bef0bc1
--- /dev/null
+++ b/examples/widgets/effects/blurpicker/images/accessories-text-editor.png
Binary files differ
diff --git a/examples/widgets/effects/blurpicker/images/background.jpg b/examples/widgets/effects/blurpicker/images/background.jpg
new file mode 100644
index 000000000..e75b38899
--- /dev/null
+++ b/examples/widgets/effects/blurpicker/images/background.jpg
Binary files differ
diff --git a/examples/widgets/effects/blurpicker/images/help-browser.png b/examples/widgets/effects/blurpicker/images/help-browser.png
new file mode 100644
index 000000000..8ef4fae91
--- /dev/null
+++ b/examples/widgets/effects/blurpicker/images/help-browser.png
Binary files differ
diff --git a/examples/widgets/effects/blurpicker/images/internet-group-chat.png b/examples/widgets/effects/blurpicker/images/internet-group-chat.png
new file mode 100644
index 000000000..dd92d9394
--- /dev/null
+++ b/examples/widgets/effects/blurpicker/images/internet-group-chat.png
Binary files differ
diff --git a/examples/widgets/effects/blurpicker/images/internet-mail.png b/examples/widgets/effects/blurpicker/images/internet-mail.png
new file mode 100644
index 000000000..7e6b93be8
--- /dev/null
+++ b/examples/widgets/effects/blurpicker/images/internet-mail.png
Binary files differ
diff --git a/examples/widgets/effects/blurpicker/images/internet-web-browser.png b/examples/widgets/effects/blurpicker/images/internet-web-browser.png
new file mode 100644
index 000000000..a979a92b4
--- /dev/null
+++ b/examples/widgets/effects/blurpicker/images/internet-web-browser.png
Binary files differ
diff --git a/examples/widgets/effects/blurpicker/images/office-calendar.png b/examples/widgets/effects/blurpicker/images/office-calendar.png
new file mode 100644
index 000000000..e09590682
--- /dev/null
+++ b/examples/widgets/effects/blurpicker/images/office-calendar.png
Binary files differ
diff --git a/examples/widgets/effects/blurpicker/images/system-users.png b/examples/widgets/effects/blurpicker/images/system-users.png
new file mode 100644
index 000000000..a7f630a5b
--- /dev/null
+++ b/examples/widgets/effects/blurpicker/images/system-users.png
Binary files differ
diff --git a/examples/widgets/effects/blurpicker/main.py b/examples/widgets/effects/blurpicker/main.py
new file mode 100644
index 000000000..053ac60ec
--- /dev/null
+++ b/examples/widgets/effects/blurpicker/main.py
@@ -0,0 +1,20 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the widgets/effects/blurpicker example from Qt v6.x"""
+
+import sys
+from PySide6.QtWidgets import QApplication
+from blurpicker import BlurPicker
+
+
+if __name__ == "__main__":
+ app = QApplication(sys.argv)
+
+ blur_picker = BlurPicker()
+ blur_picker.setWindowTitle("Application Picker")
+
+ blur_picker.setFixedSize(400, 300)
+ blur_picker.show()
+
+ sys.exit(app.exec())
diff --git a/examples/widgets/effects/lighting.py b/examples/widgets/effects/lighting.py
deleted file mode 100644
index ec8f945e1..000000000
--- a/examples/widgets/effects/lighting.py
+++ /dev/null
@@ -1,147 +0,0 @@
-
-#############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-import math
-import sys
-
-from PySide6.QtCore import QPointF, QTimer, Qt
-from PySide6.QtGui import (QBrush, QColor, QLinearGradient, QPainter, QPen,
- QPixmap, QRadialGradient)
-from PySide6.QtWidgets import (QApplication, QFrame, QGraphicsDropShadowEffect,
- QGraphicsEllipseItem, QGraphicsRectItem,
- QGraphicsScene, QGraphicsView, QWidget)
-
-
-class Lighting(QGraphicsView):
- def __init__(self, parent=None):
- super().__init__(parent)
-
- self.angle = 0.0
- self.m_scene = QGraphicsScene()
- self.m_lightSource = None
- self.m_items = []
-
- self.setScene(self.m_scene)
-
- self.setup_scene()
-
- timer = QTimer(self)
- timer.timeout.connect(self.animate)
- timer.setInterval(30)
- timer.start()
-
- self.setRenderHint(QPainter.Antialiasing)
- self.setFrameStyle(QFrame.NoFrame)
-
- def setup_scene(self):
- self.m_scene.setSceneRect(-300, -200, 600, 460)
-
- linear_grad = QLinearGradient(QPointF(-100, -100),
- QPointF(100, 100))
- linear_grad.setColorAt(0, QColor(255, 255, 255))
- linear_grad.setColorAt(1, QColor(192, 192, 255))
- self.setBackgroundBrush(linear_grad)
-
- radial_grad = QRadialGradient(30, 30, 30)
- radial_grad.setColorAt(0, Qt.yellow)
- radial_grad.setColorAt(0.2, Qt.yellow)
- radial_grad.setColorAt(1, Qt.transparent)
-
- pixmap = QPixmap(60, 60)
- pixmap.fill(Qt.transparent)
-
- painter = QPainter(pixmap)
- painter.setPen(Qt.NoPen)
- painter.setBrush(radial_grad)
- painter.drawEllipse(0, 0, 60, 60)
- painter.end()
-
- self.m_lightSource = self.m_scene.addPixmap(pixmap)
- self.m_lightSource.setZValue(2)
-
- for i in range(-2, 3):
- for j in range(-2, 3):
- if (i + j) & 1:
- item = QGraphicsEllipseItem(0, 0, 50, 50)
- else:
- item = QGraphicsRectItem(0, 0, 50, 50)
-
- item.setPen(QPen(Qt.black, 1))
- item.setBrush(QBrush(Qt.white))
-
- effect = QGraphicsDropShadowEffect(self)
- effect.setBlurRadius(8)
- item.setGraphicsEffect(effect)
- item.setZValue(1)
- item.setPos(i * 80, j * 80)
- self.m_scene.addItem(item)
- self.m_items.append(item)
-
- def animate(self):
- self.angle += (math.pi / 30)
- xs = 200 * math.sin(self.angle) - 40 + 25
- ys = 200 * math.cos(self.angle) - 40 + 25
- self.m_lightSource.setPos(xs, ys)
-
- for item in self.m_items:
- effect = item.graphicsEffect()
-
- delta = QPointF(item.x() - xs, item.y() - ys)
- effect.setOffset(QPointF(delta.toPoint() / 30))
-
- dd = math.hypot(delta.x(), delta.y())
- color = effect.color()
- color.setAlphaF(max(0.4, min(1 - dd / 200.0, 0.7)))
- effect.setColor(color)
-
- self.m_scene.update()
-
-
-if __name__ == '__main__':
- app = QApplication(sys.argv)
-
- lighting = Lighting()
- lighting.setWindowTitle("Lighting and Shadows")
- lighting.resize(640, 480)
- lighting.show()
-
- sys.exit(app.exec())
diff --git a/examples/widgets/effects/lighting/lighting.py b/examples/widgets/effects/lighting/lighting.py
new file mode 100644
index 000000000..f074813c3
--- /dev/null
+++ b/examples/widgets/effects/lighting/lighting.py
@@ -0,0 +1,107 @@
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import math
+import sys
+
+from PySide6.QtCore import QPointF, QTimer, Qt
+from PySide6.QtGui import (QBrush, QColor, QLinearGradient, QPainter, QPen,
+ QPixmap, QRadialGradient)
+from PySide6.QtWidgets import (QApplication, QFrame, QGraphicsDropShadowEffect,
+ QGraphicsEllipseItem, QGraphicsRectItem,
+ QGraphicsScene, QGraphicsView)
+
+
+class Lighting(QGraphicsView):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+ self.angle = 0.0
+ self.m_scene = QGraphicsScene()
+ self.m_lightSource = None
+ self.m_items = []
+
+ self.setScene(self.m_scene)
+
+ self.setup_scene()
+
+ timer = QTimer(self)
+ timer.timeout.connect(self.animate)
+ timer.setInterval(30)
+ timer.start()
+
+ self.setRenderHint(QPainter.Antialiasing)
+ self.setFrameStyle(QFrame.NoFrame)
+
+ def setup_scene(self):
+ self.m_scene.setSceneRect(-300, -200, 600, 460)
+
+ linear_grad = QLinearGradient(QPointF(-100, -100), QPointF(100, 100))
+ linear_grad.setColorAt(0, QColor(255, 255, 255))
+ linear_grad.setColorAt(1, QColor(192, 192, 255))
+ self.setBackgroundBrush(linear_grad)
+
+ radial_grad = QRadialGradient(30, 30, 30)
+ radial_grad.setColorAt(0, Qt.yellow)
+ radial_grad.setColorAt(0.2, Qt.yellow)
+ radial_grad.setColorAt(1, Qt.transparent)
+
+ pixmap = QPixmap(60, 60)
+ pixmap.fill(Qt.transparent)
+
+ with QPainter(pixmap) as painter:
+ painter.setPen(Qt.NoPen)
+ painter.setBrush(radial_grad)
+ painter.drawEllipse(0, 0, 60, 60)
+
+ self.m_lightSource = self.m_scene.addPixmap(pixmap)
+ self.m_lightSource.setZValue(2)
+
+ for i in range(-2, 3):
+ for j in range(-2, 3):
+ if (i + j) & 1:
+ item = QGraphicsEllipseItem(0, 0, 50, 50)
+ else:
+ item = QGraphicsRectItem(0, 0, 50, 50)
+
+ item.setPen(QPen(Qt.black, 1))
+ item.setBrush(QBrush(Qt.white))
+
+ effect = QGraphicsDropShadowEffect(self)
+ effect.setBlurRadius(8)
+ item.setGraphicsEffect(effect)
+ item.setZValue(1)
+ item.setPos(i * 80, j * 80)
+ self.m_scene.addItem(item)
+ self.m_items.append(item)
+
+ def animate(self):
+ self.angle += (math.pi / 30)
+ xs = 200 * math.sin(self.angle) - 40 + 25
+ ys = 200 * math.cos(self.angle) - 40 + 25
+ self.m_lightSource.setPos(xs, ys)
+
+ for item in self.m_items:
+ effect = item.graphicsEffect()
+
+ delta = QPointF(item.x() - xs, item.y() - ys)
+ effect.setOffset(QPointF(delta.toPoint() / 30))
+
+ dd = math.hypot(delta.x(), delta.y())
+ color = effect.color()
+ color.setAlphaF(max(0.4, min(1 - dd / 200.0, 0.7)))
+ effect.setColor(color)
+
+ self.m_scene.update()
+
+
+if __name__ == '__main__':
+ app = QApplication(sys.argv)
+
+ lighting = Lighting()
+ lighting.setWindowTitle("Lighting and Shadows")
+ lighting.resize(640, 480)
+ lighting.show()
+
+ sys.exit(app.exec())
diff --git a/examples/widgets/effects/effects.pyproject b/examples/widgets/effects/lighting/lighting.pyproject
index c64fe46d4..c64fe46d4 100644
--- a/examples/widgets/effects/effects.pyproject
+++ b/examples/widgets/effects/lighting/lighting.pyproject
diff --git a/examples/widgets/gettext/doc/gettext.rst b/examples/widgets/gettext/doc/gettext.rst
new file mode 100644
index 000000000..ea1127fe7
--- /dev/null
+++ b/examples/widgets/gettext/doc/gettext.rst
@@ -0,0 +1,7 @@
+.. _gettext-example:
+
+GNU gettext Example
+===================
+
+This example demonstrates the use of GNU gettext for translating
+applications as described in :ref:`translations`.
diff --git a/examples/widgets/gettext/locales/de_DE/LC_MESSAGES/example.pot b/examples/widgets/gettext/locales/de_DE/LC_MESSAGES/example.pot
index 07b0e09c9..80da2134c 100644
--- a/examples/widgets/gettext/locales/de_DE/LC_MESSAGES/example.pot
+++ b/examples/widgets/gettext/locales/de_DE/LC_MESSAGES/example.pot
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
#
#, fuzzy
msgid ""
diff --git a/examples/widgets/gettext/locales/example.pot b/examples/widgets/gettext/locales/example.pot
index e2c16e407..a2fdfbbe8 100644
--- a/examples/widgets/gettext/locales/example.pot
+++ b/examples/widgets/gettext/locales/example.pot
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
#
#, fuzzy
msgid ""
diff --git a/examples/widgets/gettext/main.py b/examples/widgets/gettext/main.py
index be0579263..85695728d 100644
--- a/examples/widgets/gettext/main.py
+++ b/examples/widgets/gettext/main.py
@@ -1,50 +1,13 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from pathlib import Path
import gettext
import sys
-from PySide6.QtCore import QItemSelection, QLocale, Qt, Slot
+from PySide6.QtCore import QItemSelection, Slot
from PySide6.QtWidgets import (QAbstractItemView, QApplication, QListWidget,
- QMainWindow, QWidget)
+ QMainWindow)
_ = None
diff --git a/examples/widgets/graphicsview/anchorlayout/anchorlayout.py b/examples/widgets/graphicsview/anchorlayout/anchorlayout.py
index 2c5e16347..9d9be041f 100644
--- a/examples/widgets/graphicsview/anchorlayout/anchorlayout.py
+++ b/examples/widgets/graphicsview/anchorlayout/anchorlayout.py
@@ -1,44 +1,6 @@
-
-#############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
@@ -46,7 +8,7 @@ from PySide6.QtCore import QSizeF, Qt
from PySide6.QtWidgets import (QApplication, QGraphicsAnchorLayout,
QGraphicsProxyWidget, QGraphicsScene,
QGraphicsView, QGraphicsWidget,
- QPushButton, QSizePolicy, QWidget)
+ QPushButton, QSizePolicy)
def create_item(minimum, preferred, maximum, name):
@@ -79,7 +41,7 @@ if __name__ == '__main__':
f = create_item(QSizeF(30, 50), QSizeF(150, 50), max_size, "F")
g = create_item(QSizeF(30, 50), QSizeF(30, 100), max_size, "G")
- l = QGraphicsAnchorLayout()
+ l = QGraphicsAnchorLayout() # noqa: E741
l.setSpacing(0)
w = QGraphicsWidget(None, Qt.Window)
diff --git a/examples/widgets/graphicsview/collidingmice/collidingmice.py b/examples/widgets/graphicsview/collidingmice/collidingmice.py
index 78fbe8041..fb24db3ab 100644
--- a/examples/widgets/graphicsview/collidingmice/collidingmice.py
+++ b/examples/widgets/graphicsview/collidingmice/collidingmice.py
@@ -1,56 +1,15 @@
-
-#############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import math
import sys
-from PySide6.QtCore import (QLineF, QPointF, QRandomGenerator, QRectF, QTimer,
- Qt)
-from PySide6.QtGui import (QBrush, QColor, QPainter, QPainterPath, QPixmap,
- QPolygonF, QTransform)
-from PySide6.QtWidgets import (QApplication, QGraphicsItem, QGraphicsScene,
- QGraphicsView)
+from PySide6.QtCore import (QLineF, QPointF, QRandomGenerator, QRectF, QTimer, Qt)
+from PySide6.QtGui import (QBrush, QColor, QPainter, QPainterPath, QPixmap, QPolygonF, QTransform)
+from PySide6.QtWidgets import (QApplication, QGraphicsItem, QGraphicsScene, QGraphicsView)
-import mice_rc
+import mice_rc # noqa: F401
def random(boundary):
@@ -64,7 +23,7 @@ class Mouse(QGraphicsItem):
# Create the bounding rectangle once.
adjust = 0.5
BOUNDING_RECT = QRectF(-20 - adjust, -22 - adjust, 40 + adjust,
- 83 + adjust)
+ 83 + adjust)
def __init__(self):
super().__init__()
@@ -141,7 +100,8 @@ class Mouse(QGraphicsItem):
if angle_to_center < Mouse.PI and angle_to_center > Mouse.PI / 4:
# Rotate left.
self.angle += [-0.25, 0.25][self.angle < -Mouse.PI / 2]
- elif angle_to_center >= Mouse.PI and angle_to_center < (Mouse.PI + Mouse.PI / 2 + Mouse.PI / 4):
+ elif (angle_to_center >= Mouse.PI
+ and angle_to_center < (Mouse.PI + Mouse.PI / 2 + Mouse.PI / 4)):
# Rotate right.
self.angle += [-0.25, 0.25][self.angle < Mouse.PI / 2]
elif math.sin(self.angle) < 0:
diff --git a/examples/widgets/graphicsview/collidingmice/collidingmice.pyproject b/examples/widgets/graphicsview/collidingmice/collidingmice.pyproject
index ea5821866..621bfd642 100644
--- a/examples/widgets/graphicsview/collidingmice/collidingmice.pyproject
+++ b/examples/widgets/graphicsview/collidingmice/collidingmice.pyproject
@@ -1,3 +1,3 @@
{
- "files": ["collidingmice.py", "mice_rc.py"]
+ "files": ["collidingmice.py"]
}
diff --git a/examples/widgets/graphicsview/collidingmice/mice_rc.py b/examples/widgets/graphicsview/collidingmice/mice_rc.py
index d442a36b0..e2a22b2e4 100644
--- a/examples/widgets/graphicsview/collidingmice/mice_rc.py
+++ b/examples/widgets/graphicsview/collidingmice/mice_rc.py
@@ -1,45 +1,6 @@
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
# Resource object code
#
diff --git a/examples/widgets/graphicsview/diagramscene/diagramscene.py b/examples/widgets/graphicsview/diagramscene/diagramscene.py
index b068a8253..60e05613c 100644
--- a/examples/widgets/graphicsview/diagramscene/diagramscene.py
+++ b/examples/widgets/graphicsview/diagramscene/diagramscene.py
@@ -1,62 +1,23 @@
-
-#############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import math
import sys
from PySide6.QtCore import (QLineF, QPointF, QRect, QRectF, QSize, QSizeF, Qt,
- Signal)
-from PySide6.QtGui import (QAction, QColor, QFont, QIcon, QIntValidator,
+ Signal, Slot)
+from PySide6.QtGui import (QAction, QBrush, QColor, QFont, QIcon, QIntValidator,
QPainter, QPainterPath, QPen, QPixmap, QPolygonF)
-from PySide6.QtWidgets import (QApplication, QButtonGroup, QComboBox,
- QFontComboBox, QGraphicsAnchorLayout,
- QGraphicsItem, QGraphicsLineItem,
+from PySide6.QtWidgets import (QAbstractButton, QApplication, QButtonGroup,
+ QComboBox, QFontComboBox, QGraphicsItem, QGraphicsLineItem,
QGraphicsPolygonItem, QGraphicsTextItem,
QGraphicsScene, QGraphicsView, QGridLayout,
QHBoxLayout, QLabel, QMainWindow, QMenu,
QMessageBox, QSizePolicy, QToolBox, QToolButton,
QWidget)
-import diagramscene_rc
+import diagramscene_rc # noqa: F401
class Arrow(QGraphicsLineItem):
@@ -69,8 +30,7 @@ class Arrow(QGraphicsLineItem):
self._my_end_item = endItem
self.setFlag(QGraphicsItem.ItemIsSelectable, True)
self._my_color = Qt.black
- self.setPen(QPen(self._my_color, 2, Qt.SolidLine,
- Qt.RoundCap, Qt.RoundJoin))
+ self.setPen(QPen(self._my_color, 2, Qt.SolidLine, Qt.RoundCap, Qt.RoundJoin))
def set_color(self, color):
self._my_color = color
@@ -202,19 +162,19 @@ class DiagramItem(QGraphicsPolygonItem):
self._my_polygon = path.toFillPolygon()
elif self.diagram_type == self.Conditional:
self._my_polygon = QPolygonF([
- QPointF(-100, 0), QPointF(0, 100),
- QPointF(100, 0), QPointF(0, -100),
- QPointF(-100, 0)])
+ QPointF(-100, 0), QPointF(0, 100),
+ QPointF(100, 0), QPointF(0, -100),
+ QPointF(-100, 0)])
elif self.diagram_type == self.Step:
self._my_polygon = QPolygonF([
- QPointF(-100, -100), QPointF(100, -100),
- QPointF(100, 100), QPointF(-100, 100),
- QPointF(-100, -100)])
+ QPointF(-100, -100), QPointF(100, -100),
+ QPointF(100, 100), QPointF(-100, 100),
+ QPointF(-100, -100)])
else:
self._my_polygon = QPolygonF([
- QPointF(-120, -80), QPointF(-70, 80),
- QPointF(120, 80), QPointF(70, -80),
- QPointF(-120, -80)])
+ QPointF(-120, -80), QPointF(-70, 80),
+ QPointF(120, 80), QPointF(70, -80),
+ QPointF(-120, -80)])
self.setPolygon(self._my_polygon)
self.setFlag(QGraphicsItem.ItemIsMovable, True)
@@ -238,10 +198,10 @@ class DiagramItem(QGraphicsPolygonItem):
def image(self):
pixmap = QPixmap(250, 250)
pixmap.fill(Qt.transparent)
- painter = QPainter(pixmap)
- painter.setPen(QPen(Qt.black, 8))
- painter.translate(125, 125)
- painter.drawPolyline(self._my_polygon)
+ with QPainter(pixmap) as painter:
+ painter.setPen(QPen(Qt.black, 8))
+ painter.translate(125, 125)
+ painter.drawPolyline(self._my_polygon)
return pixmap
def contextMenuEvent(self, event):
@@ -330,8 +290,7 @@ class DiagramScene(QGraphicsScene):
item.setPos(mouseEvent.scenePos())
self.item_inserted.emit(item)
elif self._my_mode == self.InsertLine:
- self.line = QGraphicsLineItem(QLineF(mouseEvent.scenePos(),
- mouseEvent.scenePos()))
+ self.line = QGraphicsLineItem(QLineF(mouseEvent.scenePos(), mouseEvent.scenePos()))
self.line.setPen(QPen(self._my_line_color, 2))
self.addItem(self.line)
elif self._my_mode == self.InsertText:
@@ -367,10 +326,10 @@ class DiagramScene(QGraphicsScene):
self.removeItem(self.line)
self.line = None
- if (len(start_items) and len(end_items) and
- isinstance(start_items[0], DiagramItem) and
- isinstance(end_items[0], DiagramItem) and
- start_items[0] != end_items[0]):
+ if (len(start_items) and len(end_items)
+ and isinstance(start_items[0], DiagramItem)
+ and isinstance(end_items[0], DiagramItem)
+ and start_items[0] != end_items[0]):
start_item = start_items[0]
end_item = end_items[0]
arrow = Arrow(start_item, end_item)
@@ -420,6 +379,7 @@ class MainWindow(QMainWindow):
self.setCentralWidget(self.widget)
self.setWindowTitle("Diagramscene")
+ @Slot(QAbstractButton)
def background_button_group_clicked(self, button):
buttons = self._background_button_group.buttons()
for myButton in buttons:
@@ -439,6 +399,7 @@ class MainWindow(QMainWindow):
self.scene.update()
self.view.update()
+ @Slot(int)
def button_group_clicked(self, idx):
buttons = self._button_group.buttons()
for button in buttons:
@@ -451,15 +412,18 @@ class MainWindow(QMainWindow):
self.scene.set_item_type(idx)
self.scene.set_mode(DiagramScene.InsertItem)
+ @Slot()
def delete_item(self):
for item in self.scene.selectedItems():
if isinstance(item, DiagramItem):
item.remove_arrows()
self.scene.removeItem(item)
+ @Slot(int)
def pointer_group_clicked(self, i):
self.scene.set_mode(self._pointer_type_group.checkedId())
+ @Slot()
def bring_to_front(self):
if not self.scene.selectedItems():
return
@@ -473,6 +437,7 @@ class MainWindow(QMainWindow):
z_value = item.zValue() + 0.1
selected_item.setZValue(z_value)
+ @Slot()
def send_to_back(self):
if not self.scene.selectedItems():
return
@@ -486,21 +451,26 @@ class MainWindow(QMainWindow):
z_value = item.zValue() - 0.1
selected_item.setZValue(z_value)
+ @Slot(QGraphicsPolygonItem)
def item_inserted(self, item):
self._pointer_type_group.button(DiagramScene.MoveItem).setChecked(True)
self.scene.set_mode(self._pointer_type_group.checkedId())
self._button_group.button(item.diagram_type).setChecked(False)
+ @Slot(QGraphicsTextItem)
def text_inserted(self, item):
self._button_group.button(self.insert_text_button).setChecked(False)
self.scene.set_mode(self._pointer_type_group.checkedId())
+ @Slot(QFont)
def current_font_changed(self, font):
self.handle_font_change()
+ @Slot(int)
def font_size_changed(self, font):
self.handle_font_change()
+ @Slot(str)
def scene_scale_changed(self, scale):
new_scale = int(scale[:-1]) / 100.0
old_matrix = self.view.transform()
@@ -508,36 +478,40 @@ class MainWindow(QMainWindow):
self.view.translate(old_matrix.dx(), old_matrix.dy())
self.view.scale(new_scale, new_scale)
+ @Slot()
def text_color_changed(self):
self._text_action = self.sender()
self._font_color_tool_button.setIcon(self.create_color_tool_button_icon(
- ':/images/textpointer.png',
- QColor(self._text_action.data())))
+ ':/images/textpointer.png', QColor(self._text_action.data())))
self.text_button_triggered()
+ @Slot()
def item_color_changed(self):
self._fill_action = self.sender()
self._fill_color_tool_button.setIcon(self.create_color_tool_button_icon(
- ':/images/floodfill.png',
- QColor(self._fill_action.data())))
+ ':/images/floodfill.png', QColor(self._fill_action.data())))
self.fill_button_triggered()
+ @Slot()
def line_color_changed(self):
self._line_action = self.sender()
self._line_color_tool_button.setIcon(self.create_color_tool_button_icon(
- ':/images/linecolor.png',
- QColor(self._line_action.data())))
+ ':/images/linecolor.png', QColor(self._line_action.data())))
self.line_button_triggered()
+ @Slot()
def text_button_triggered(self):
self.scene.set_text_color(QColor(self._text_action.data()))
+ @Slot()
def fill_button_triggered(self):
self.scene.set_item_color(QColor(self._fill_action.data()))
+ @Slot()
def line_button_triggered(self):
self.scene.set_line_color(QColor(self._line_action.data()))
+ @Slot()
def handle_font_change(self):
font = self._font_combo.currentFont()
font.setPointSize(int(self._font_size_combo.currentText()))
@@ -550,18 +524,19 @@ class MainWindow(QMainWindow):
self.scene.set_font(font)
+ @Slot(QGraphicsItem)
def item_selected(self, item):
font = item.font()
- color = item.defaultTextColor()
self._font_combo.setCurrentFont(font)
self._font_size_combo.setEditText(str(font.pointSize()))
self._bold_action.setChecked(font.weight() == QFont.Bold)
self._italic_action.setChecked(font.italic())
self._underline_action.setChecked(font.underline())
+ @Slot()
def about(self):
QMessageBox.about(self, "About Diagram Scene",
- "The <b>Diagram Scene</b> example shows use of the graphics framework.")
+ "The <b>Diagram Scene</b> example shows use of the graphics framework.")
def create_tool_box(self):
self._button_group = QButtonGroup()
@@ -569,12 +544,9 @@ class MainWindow(QMainWindow):
self._button_group.idClicked.connect(self.button_group_clicked)
layout = QGridLayout()
- layout.addWidget(self.create_cell_widget("Conditional", DiagramItem.Conditional),
- 0, 0)
- layout.addWidget(self.create_cell_widget("Process", DiagramItem.Step), 0,
- 1)
- layout.addWidget(self.create_cell_widget("Input/Output", DiagramItem.Io),
- 1, 0)
+ layout.addWidget(self.create_cell_widget("Conditional", DiagramItem.Conditional), 0, 0)
+ layout.addWidget(self.create_cell_widget("Process", DiagramItem.Step), 0, 1)
+ layout.addWidget(self.create_cell_widget("Input/Output", DiagramItem.Io), 1, 0)
text_button = QToolButton()
text_button.setCheckable(True)
@@ -600,14 +572,14 @@ class MainWindow(QMainWindow):
self._background_button_group.buttonClicked.connect(self.background_button_group_clicked)
background_layout = QGridLayout()
- background_layout.addWidget(self.create_background_cell_widget("Blue Grid",
- ':/images/background1.png'), 0, 0)
- background_layout.addWidget(self.create_background_cell_widget("White Grid",
- ':/images/background2.png'), 0, 1)
- background_layout.addWidget(self.create_background_cell_widget("Gray Grid",
- ':/images/background3.png'), 1, 0)
- background_layout.addWidget(self.create_background_cell_widget("No Grid",
- ':/images/background4.png'), 1, 1)
+ background_layout.addWidget(
+ self.create_background_cell_widget("Blue Grid", ':/images/background1.png'), 0, 0)
+ background_layout.addWidget(
+ self.create_background_cell_widget("White Grid", ':/images/background2.png'), 0, 1)
+ background_layout.addWidget(
+ self.create_background_cell_widget("Gray Grid", ':/images/background3.png'), 1, 0)
+ background_layout.addWidget(
+ self.create_background_cell_widget("No Grid", ':/images/background4.png'), 1, 1)
background_layout.setRowStretch(2, 10)
background_layout.setColumnStretch(2, 10)
@@ -623,38 +595,37 @@ class MainWindow(QMainWindow):
def create_actions(self):
self._to_front_action = QAction(
- QIcon(':/images/bringtofront.png'), "Bring to &Front",
- self, shortcut="Ctrl+F", statusTip="Bring item to front",
- triggered=self.bring_to_front)
+ QIcon(':/images/bringtofront.png'), "Bring to &Front",
+ self, shortcut="Ctrl+F", statusTip="Bring item to front",
+ triggered=self.bring_to_front)
self._send_back_action = QAction(
- QIcon(':/images/sendtoback.png'), "Send to &Back", self,
- shortcut="Ctrl+B", statusTip="Send item to back",
- triggered=self.send_to_back)
+ QIcon(':/images/sendtoback.png'), "Send to &Back", self,
+ shortcut="Ctrl+B", statusTip="Send item to back",
+ triggered=self.send_to_back)
self._delete_action = QAction(QIcon(':/images/delete.png'),
- "&Delete", self, shortcut="Delete",
- statusTip="Delete item from diagram",
- triggered=self.delete_item)
+ "&Delete", self, shortcut="Delete",
+ statusTip="Delete item from diagram",
+ triggered=self.delete_item)
self._exit_action = QAction("E&xit", self, shortcut="Ctrl+X",
- statusTip="Quit Scenediagram example", triggered=self.close)
+ statusTip="Quit Scenediagram example", triggered=self.close)
self._bold_action = QAction(QIcon(':/images/bold.png'),
- "Bold", self, checkable=True, shortcut="Ctrl+B",
- triggered=self.handle_font_change)
+ "Bold", self, checkable=True, shortcut="Ctrl+B",
+ triggered=self.handle_font_change)
self._italic_action = QAction(QIcon(':/images/italic.png'),
- "Italic", self, checkable=True, shortcut="Ctrl+I",
- triggered=self.handle_font_change)
+ "Italic", self, checkable=True, shortcut="Ctrl+I",
+ triggered=self.handle_font_change)
self._underline_action = QAction(
- QIcon(':/images/underline.png'), "Underline", self,
- checkable=True, shortcut="Ctrl+U",
- triggered=self.handle_font_change)
+ QIcon(':/images/underline.png'), "Underline", self,
+ checkable=True, shortcut="Ctrl+U",
+ triggered=self.handle_font_change)
- self._about_action = QAction("A&bout", self, shortcut="Ctrl+B",
- triggered=self.about)
+ self._about_action = QAction("A&bout", self, shortcut="Ctrl+B", triggered=self.about)
def create_menus(self):
self._file_menu = self.menuBar().addMenu("&File")
@@ -689,32 +660,29 @@ class MainWindow(QMainWindow):
self._font_color_tool_button = QToolButton()
self._font_color_tool_button.setPopupMode(QToolButton.MenuButtonPopup)
self._font_color_tool_button.setMenu(
- self.create_color_menu(self.text_color_changed, Qt.black))
+ self.create_color_menu(self.text_color_changed, Qt.black))
self._text_action = self._font_color_tool_button.menu().defaultAction()
self._font_color_tool_button.setIcon(
- self.create_color_tool_button_icon(':/images/textpointer.png',
- Qt.black))
+ self.create_color_tool_button_icon(':/images/textpointer.png', Qt.black))
self._font_color_tool_button.setAutoFillBackground(True)
self._font_color_tool_button.clicked.connect(self.text_button_triggered)
self._fill_color_tool_button = QToolButton()
self._fill_color_tool_button.setPopupMode(QToolButton.MenuButtonPopup)
self._fill_color_tool_button.setMenu(
- self.create_color_menu(self.item_color_changed, Qt.white))
+ self.create_color_menu(self.item_color_changed, Qt.white))
self._fill_action = self._fill_color_tool_button.menu().defaultAction()
self._fill_color_tool_button.setIcon(
- self.create_color_tool_button_icon(':/images/floodfill.png',
- Qt.white))
+ self.create_color_tool_button_icon(':/images/floodfill.png', Qt.white))
self._fill_color_tool_button.clicked.connect(self.fill_button_triggered)
self._line_color_tool_button = QToolButton()
self._line_color_tool_button.setPopupMode(QToolButton.MenuButtonPopup)
self._line_color_tool_button.setMenu(
- self.create_color_menu(self.line_color_changed, Qt.black))
+ self.create_color_menu(self.line_color_changed, Qt.black))
self._line_action = self._line_color_tool_button.menu().defaultAction()
self._line_color_tool_button.setIcon(
- self.create_color_tool_button_icon(':/images/linecolor.png',
- Qt.black))
+ self.create_color_tool_button_icon(':/images/linecolor.png', Qt.black))
self._line_color_tool_button.clicked.connect(self.line_button_triggered)
self._text_tool_bar = self.addToolBar("Font")
@@ -739,8 +707,7 @@ class MainWindow(QMainWindow):
self._pointer_type_group = QButtonGroup()
self._pointer_type_group.addButton(pointer_button, DiagramScene.MoveItem)
- self._pointer_type_group.addButton(line_pointer_button,
- DiagramScene.InsertLine)
+ self._pointer_type_group.addButton(line_pointer_button, DiagramScene.InsertLine)
self._pointer_type_group.idClicked.connect(self.pointer_group_clicked)
self._scene_scale_combo = QComboBox()
@@ -795,8 +762,7 @@ class MainWindow(QMainWindow):
color_menu = QMenu(self)
for color, name in zip(colors, names):
- action = QAction(self.create_color_icon(color), name, self,
- triggered=slot)
+ action = QAction(self.create_color_icon(color), name, self, triggered=slot)
action.setData(QColor(color))
color_menu.addAction(action)
if color == defaultColor:
@@ -806,22 +772,22 @@ class MainWindow(QMainWindow):
def create_color_tool_button_icon(self, imageFile, color):
pixmap = QPixmap(50, 80)
pixmap.fill(Qt.transparent)
- painter = QPainter(pixmap)
- image = QPixmap(imageFile)
- target = QRect(0, 0, 50, 60)
- source = QRect(0, 0, 42, 42)
- painter.fillRect(QRect(0, 60, 50, 80), color)
- painter.drawPixmap(target, image, source)
- painter.end()
+
+ with QPainter(pixmap) as painter:
+ image = QPixmap(imageFile)
+ target = QRect(0, 0, 50, 60)
+ source = QRect(0, 0, 42, 42)
+ painter.fillRect(QRect(0, 60, 50, 80), color)
+ painter.drawPixmap(target, image, source)
return QIcon(pixmap)
def create_color_icon(self, color):
pixmap = QPixmap(20, 20)
- painter = QPainter(pixmap)
- painter.setPen(Qt.NoPen)
- painter.fillRect(QRect(0, 0, 20, 20), color)
- painter.end()
+
+ with QPainter(pixmap) as painter:
+ painter.setPen(Qt.NoPen)
+ painter.fillRect(QRect(0, 0, 20, 20), color)
return QIcon(pixmap)
diff --git a/examples/widgets/graphicsview/diagramscene/diagramscene.pyproject b/examples/widgets/graphicsview/diagramscene/diagramscene.pyproject
index 0acabdd78..79b8c8658 100644
--- a/examples/widgets/graphicsview/diagramscene/diagramscene.pyproject
+++ b/examples/widgets/graphicsview/diagramscene/diagramscene.pyproject
@@ -1,3 +1,3 @@
{
- "files": ["diagramscene.qrc", "diagramscene.py", "diagramscene_rc.py"]
+ "files": ["diagramscene.qrc", "diagramscene.py"]
}
diff --git a/examples/widgets/graphicsview/diagramscene/diagramscene_rc.py b/examples/widgets/graphicsview/diagramscene/diagramscene_rc.py
index da5f0217e..144d9200f 100644
--- a/examples/widgets/graphicsview/diagramscene/diagramscene_rc.py
+++ b/examples/widgets/graphicsview/diagramscene/diagramscene_rc.py
@@ -1,149 +1,11 @@
# Resource object code (Python 3)
# Created by: object code
-# Created by: The Resource Compiler for Qt version 5.14.0
+# Created by: The Resource Compiler for Qt version 6.2.2
# WARNING! All changes made in this file will be lost!
from PySide6 import QtCore
qt_resource_data = b"\
-\x00\x00\x00\xf7\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00\x0b\x00\x00\x00\x0c\x08\x06\x00\x00\x00\xb4\xa9G\x9e\
-\x00\x00\x00\xbeIDAT(S\x85\x911\x0e@@\
-\x10EWM$J7\xa1\xa4\x918\x85^t\xaa=\
-\x8aNT{\x80\xadun\xa0\xd1l\xe7\x12\xc4\x97\x19\
-\xb1!YQ\xfcb\xfe\xbc\xfc\x99\xcc\x08\x00\x82t\x1c\
-\x07\xa6i\x82\x10\xc2)\xcf\xf3.\xf0\xd68\x8e\xa8\xaa\
-\x8aU\x14\x05\x03I\x92X\xef\x05?\xd5u\x1d\xc3Z\
-k\xd0T\xf2\x9c 5\xeb\xbafx]W\xdc\xfeg\
-r\x9a\xa6\x88\xe3\x18O\xcf\x09n\xdb\x06\xdf\xf7Q\x96\
-\xa5]\xc1\x09Ss\x9eg^AJ\xf9\x9f<\x0c\x03\
-\xc3J\xa9\xff\xe4\xb6m\x19^\x96\xe5?9\xcfs\x84\
-a\x88}\xdf\xdf\xc9T\x18c\xec\xe1IA\x10 \x8a\
-\x22[7M\x03\x9b\xdc\xf7\xfd\xf5\xce\x8fWgY\xc6\
-\x13N\xfaWVX\xe8@\xda\xc6\x00\x00\x00\x00IE\
-ND\xaeB`\x82\
-\x00\x00\x01\x1a\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00*\x00\x00\x00+\x02\x03\x00\x00\x00s\xf1\xf2m\
-\x00\x00\x00\x0cPLTE\xff\xff\xff\x80\x80\x80\x00\x00\
-\x00\xff\xff\xffEJK8\x00\x00\x00\x01tRNS\
-\x00@\xe6\xd8f\x00\x00\x00\xbcIDATx^M\
-\xcb\xbd\x89\x041\x0c\x86a\xa1\xd0U8\x1c\xdc\x8f&\
-\xd8\x12\xa6\x0a\xb3\xe1\xe6N.2\x07\x02\xdb\x07[\xc0\
-\x96\xb4U\x9cG?3V\xf4!\xde\x07B\xcd\xe0\x17\
-F\xbd\xf6\xb6\xec\x1a\xef\xa6A\x024\xb2A\x80`$\
-\xcf\x9d\x9a\xee8\x8b~x\x83O~d\xb30hW\
-\x102t\x22\x05\x98\x91\x89\x0c\xe4P\x88\x0c\xd4D\xe4\
- \xce\xdc\xc1\x98\x89\x833q \x89\x02\xe4\x9d\x1d`\
-\xa1.@\xff\xe9\x02\xfd\xf1*\x0e\xd2\xfe{\x81P\xda\
-\x02\x8e\xef\x02>\x0bx\xb3l\x01\x7f]\x1a\x03f\x1d\
-4\x00\x03B\x15\xb0\xe4\x0a$7P$W\xc0\x92+\
-\xe8\x92\x1b\x90\xdc\x80\xe4\x0a$7\xf0so\x1cp_\
-[v<\xc7?\xd6Qh R\x85\xdb_\x00\x00\x00\
-\x00IEND\xaeB`\x82\
-\x00\x00\x00\xfa\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00\x0b\x00\x00\x00\x0c\x08\x06\x00\x00\x00\xb4\xa9G\x9e\
-\x00\x00\x00\xc1IDAT(S\xcd\x901\x0a\x840\
-\x10E\xc7\xceV\xb0\xd3F\x10o`\xe5\x01\xbcB@\
-\x0b\x9bt\x22\x11\xbc\x94\x9d'\xd2\x03x\x03\x03\x19\xf7\
-\x0f\xb8\xd9,l\xbf\x81Of\xde\xfc|\xc8P\x1c\xc7\
-LD\xa2(\x8a8\xcfs~\x1d\xc2\xfd\xc9\xd34e\
-\xd2ZsQ\x14\x02\x86a\xe0y\x9e\xc5\x8c\x1b=8\
-\xe6\xe382a\xa0\x94\x12\x88\xfa[\xe0\x98;\xe7B\
-3\xc0/3\xea\x7fJ\xee\xbaN\xcc\xd7u\x05\x0f\xd0\
-\x83\xf7}\xef\x93\xb1&\xc0}\xdf\x03\xf3q\x1c\xc2\x97\
-e\xf1\xc9\xeb\xba\x0a\x9c\xa6)0?!\xdb\xb6\xf9d\
-\xa8\xaek\x19\x94e\xc9m\xdbrUU\xd27M\xc3\
-\xd6Z\x9f\xfc\xc8\x18\xc3Y\x96\x89)I\x12\xc6_\xce\
-\xf3|o\xe9\x063 8\xcd\x08\x1exv\x00\x00\x00\
-\x00IEND\xaeB`\x82\
-\x00\x00\x00r\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00\x7f\x00\x00\x00\x7f\x01\x03\x00\x00\x00\xfcs\x8fP\
-\x00\x00\x00\x06PLTE\xff\xff\xff\x00\x00\x00U\xc2\
-\xd3~\x00\x00\x00'IDATH\xc7c`\x80\x82\
-\x06\x0640*0*0*0*\x80*\xf0\x1f\x15\
-\xfc\x1b\x0d\xa0Q\x81Q\x81Q\x01\x22\x05\x00\xd5;N\
-\xf0s\xe3o\xe9\x00\x00\x00\x00IEND\xaeB`\
-\x82\
-\x00\x00\x02\xf1\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00*\x00\x00\x00,\x08\x03\x00\x00\x00$D\xdat\
-\x00\x00\x012PLTE\xff\xff\xff\xfe\xfe\xfe\x01\x01\
-\x01\xbe\xbe\xbe\xfd\xfd\xfd\x00\x00\x00ddd\xd2\xd2\xd2\
-|||\xfb\xfb\xfb\xe7\xe7\xe7\x84\x84\x84\xd7\xd7\xd7\xe0\
-\xe0\xe0\xe1\xe1\xe1\x0c\x0c\x0c(((\xf5\xf5\xf5\xb3\xb3\
-\xb3\x02\x02\x02\x95\x95\x95...\x11\x11\x11kkk\
-\x03\x03\x03rrrIII\xfc\xfc\xfc\x13\x13\x13\x04\
-\x04\x04\x9f\x9f\x9f\xc4\xc4\xc4\xa9\xa9\xa9\x05\x05\x05WW\
-W\x17\x17\x17\xf6\xf6\xf6\x16\x16\x16\xa6\xa6\xa6\xa0\xa0\xa0\
-```$$$>>>###\xb7\xb7\xb7M\
-MM\xf8\xf8\xf8\xc0\xc0\xc0000\x09\x09\x09\xec\xec\
-\xec \x8a\x8a\x8a\xda\xda\xda\xf1\xf1\xf1\x0d\x0d\x0d\
-\x99\x99\x99\x19\x19\x19\xf9\xf9\xf9\xcd\xcd\xcd\xf4\xf4\xf49\
-99---;;;\x12\x12\x12CCC\xc2\xc2\
-\xc2\xa4\xa4\xa4\xdc\xdc\xdcUUUhhhZZZ\
-PPP\xf0\xf0\xf0\x06\x06\x06\x1f\x1f\x1fttt\xb1\
-\xb1\xb1]]]!!!666\x08\x08\x08\xea\xea\
-\xea\xdb\xdb\xdb\x81\x81\x81\x9c\x9c\x9c\x8b\x8b\x8buuu\
-\xf2\xf2\xf2%%%\xce\xce\xceHHHccc\xba\
-\xba\xbaSSS888\xf7\xf7\xf7\xe4\xe4\xe4\xa2\xa2\
-\xa2JJJ\xf3\xf3\xf3___\xf1i\x00\xec\x00\x00\
-\x00\x01tRNS\x00@\xe6\xd8f\x00\x00\x01mI\
-DATx^\xd5\x92\xc5v\xc30\x10E=\x92\x1d\
-f\xe6\x94\x99\x99\x99\x99\x99\xe1\xff\x7f\xa1\x9e\x89\x93S\
-\xa9\xb2Nvm\xdf\xf2\xea\xfa\xbdY\xd8\xf8+\xf10\
-\xeb[X\xcc\x047\x13<\x96\x10\xc6\xb5\xadB\xda\x9a\
-om\x0d@\xb3\xad,\xe8\xda\x1a\xe2\xb5\xf4\xd4\xddq\
-\xbf\xa1\x0d\x14{\x1b\xed\x09\xd0\xbb\x03\x0d\x93\x0d\xeaM\
-\xd8A+3\x82n.\xac5\xc39\xbb\x95\xe5\xbb\xa9\
-\xdb\xa7\xbd\xc0G\xcedG'~1;\xa7q\x87\xda\
-\xd1,\x00\xf8\xe8\xda\x16\xcd~\x17\x19\x09\xc3\x88\x94\xd1\
-]\xd5\xb4\xf6\xe1n\xbf\xdf66\xe9\x92\x90\xab\xeb\xa5\
-\xf7\x09\xdb\x84a\xea\xcf\xbb\xeeg\xd1\x1c\x1dC`\xa6\
-\xd1]\x89\xbb\x98S\xd3\xb8\xef\xa9\x81\x19Z\xa8\x80\xda\
-M\xd1\xeb<\xbd\xc2B\x06\xbf[T\x9b\xe6\x12\x9a\xcb\
-N\x0f\x1c\xd0\xb5w\xca\xfd5z[\xaf\x83\x8d$\xba\
-[\xca\x0b\xb6q_\x0a\x8b\xee*\xdc\xc0\x9e\xa5\x08K\
-)\xf6\x83\x962i\xf3\x87\xe9\xdfgj\xb7\x0a\xb2{\
-\xe8b\xb2#\xd9\x84\x02\xf2c.\xe4\x04\xd9\xe9\x99d\
-\x9eS\xc3\x85H/i\xe9\x0aDzmS\x96\x8c\x08\
-\x14n\xa2Ho\x8b\x02\x8d\x97\xb0\xf5\x1e\xa4\xad\x07\xda\
-z\x14XE\xfd\xd7W\xe9\x82'\xa1\xe1\x19\x97J/\
-r\xab\x19C^~\xads\xce\xf9\x1b}\xfd\xce1\x1f\
-\xe0`\xcc'\xademL\xcc\x12\xc2\xbcN#\x139\
-A\x89y\xc1P5\xfc~\xeb\xff\xca\x17Uq \xbb\
-\xd7\xbb.\xca\x00\x00\x00\x00IEND\xaeB`\x82\
-\
-\x00\x00\x01>\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00\x16\x00\x00\x00\x16\x08\x06\x00\x00\x00\xc4\xb4l;\
-\x00\x00\x00\x06bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\
-\xa7\x93\x00\x00\x00\xf3IDAT8\xcb\xed\x94An\
-\x830\x10E\x9f%\xe0\x0c\xbdC/\xd0\x13\xe5\xfaU\
-b\x9b\xd83\x01w\x81\x0d$\x85\xaa1\xca\xaa\x1d\x89\
-\x8d\x0dO\xef{\x067m\xdb&\x0e\x94\xaa\x9a\xad\xf5\
-\x06@D\xaa\xa0]\xd7\xed\xee5\xbc\xa8\xfe\xc1\x7f\x01\
-l\x8c\xd9\xdbJ\x87\x8dS\xda`\x8c\x03\x0c\x01\xf4\x0a\
-\xd2Ct\x98\xb7\xf7\x83G1*h\x81z\x10\x07\xd1\
-\x1d<\xe3A&\xa0\xf6\x0b48\x88\x97Jp\x1aa\
-\x88Kt\xf5\x93e\xb4\xd3#5\xc6i\x80[\x00)\
-\xd1=\xa8\x83`W`_\x01\x96\x1c}\xb6|0\x95\
-jp\xfep\x06\xba\x15\xd4\xe5\x14v\x01\xfft\xfd\xdd\
-U\xb8\xe4\xce\xdb\x05\x5c&A\xfd\xb2\x064{\x17\xf5\
-\xe6\x8f\x10\xce\xdf\xa1\xc54\xe6\x89\xa8j^\xf8\x9cF\
-j\xb6t\x10\xb3\xa9\xac\x1a\xf84\xf8z\xce\xa6\x16b\
-\x0fj\xef\x1bXRT\x81\xa5\x98nLE\xf4p\xeb\
-\x9f\x07\x9b\x8f\xd3\xaf\xdf\xfd\x02\xd6\xbd\xde\xdfp\xdb\x04\
-\x83\x00\x00\x00\x00IEND\xaeB`\x82\
\x00\x00\x00\xad\
\x89\
PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
@@ -157,56 +19,47 @@ r\x1f\x17a\x1aW\x9e\x80A\xb9\xf3\x82@\xeb\xc8B\
\xfed\xcc\x8f\xdc\x17\xd9\x83\xf6\x1e\xe4\xd8\xdd\xe3\xd8\x1d\
sa.\xb4\x8e'\xf0\x07\xd5\x18\x11\x1b\xedM#\xf4\
\x00\x00\x00\x00IEND\xaeB`\x82\
-\x00\x00\x00p\
+\x00\x00\x01\x12\
\x89\
PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00\x7f\x00\x00\x00\x7f\x01\x03\x00\x00\x00\xfcs\x8fP\
-\x00\x00\x00\x06PLTE\x00\xff\xff\xff\xff\xff\xb1\xb8\
-^\xa0\x00\x00\x00%IDATx^\xed\xcc!\x12\
-\x00\x00\x04\x00A\xff\x7f4\x82\x11du/n\xb8\xd8\
-j\xca\x0b\x00\x00\xf0\x9d\x01\x00@\x03\x94\x98\xeb\xc0\x19\
-8\xa1\x84\x00\x00\x00\x00IEND\xaeB`\x82\
-\x00\x00\x00\x91\
+\x00\x00\x0b\x00\x00\x00\x0d\x08\x06\x00\x00\x00\x7f\xf5\x94;\
+\x00\x00\x00\xd9IDAT(S}\x901\x0eE@\
+\x10\x86G$$\x1a\x0d\x0d\xd1\x22Qp\x80m\x5c@\
+\xe7<\x0e!\x0aGq\x19\xb5N\xa9\xc1x3\xb2\x8b\
+\xf7\xec\xdb\xe4\xcbfv\xfe\xf9gv\xc00\x0c\x04\x80\
+\x07\xf4fY\x16&I\x82\x9f\x03\xc4\xbe\xef\x94;\x05\
+i\x9a2$\x08\xc3\xf0QX\xd75\x17\x01\x05\x04U\
+\xde]\xe8v\x1c\x87s\xb6m\xe3\xc3Y\x0a\xefDQ\
+\xc4\xe2 \x08\xf4\xce\xeb\xbab\xdb\xb6j\x94\xbe\xefO\
+\xb1|(\x8a\x82\xc9\xf3\x1c}\xdfg\x03!\x04\x0e\xc3\
+\xa0L@\xb7\x0d\xd34Y\xdcu\xdd%\xfe\x9ey\xdb\
+6\x9c\xa6\x89c\xd9!\x8ec\x1c\xc7\x11\xd5\xcco\x1f\
+$d\xbe\xaa\xaa\xff\xdbX\x96E\x8dF]^\xb7A\
+\xcc\xf3\x8cM\xd3\xa0\xccgYv9{\x9e\xa7p]\
+\xf7\xe7\xd3\xdamH\xa8\xa8,K\xd5\xf1\x00\xd0\xc0\x13\
+\xc8\x06\xaf\x16(\x00\x00\x00\x00IEND\xaeB`\
+\x82\
+\x00\x00\x00r\
\x89\
PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00*\x00\x00\x00+\x01\x03\x00\x00\x004Q\x88\xbd\
+\x00\x00\x7f\x00\x00\x00\x7f\x01\x03\x00\x00\x00\xfcs\x8fP\
\x00\x00\x00\x06PLTE\xff\xff\xff\x00\x00\x00U\xc2\
-\xd3~\x00\x00\x00\x01tRNS\x00@\xe6\xd8f\x00\
-\x00\x009IDAT\x18Wc`\xc0\x05\x14 T\
-\x01\x84\xfa\x01&\x19\xff\x80)f\x08\x8f\xfd\x03\x98\xe2\
-\x7f\x00\xa6\xe4\x0f\x80)\xfb\x060U\x0f\xd1\xf6oP\
-k\xe3\x87hc\x83P,\x0c\x84\x00\x00\x91\xca\x1c\x09\
-\xf6#*\xfe\x00\x00\x00\x00IEND\xaeB`\x82\
-\
-\x00\x00\x01%\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00\x16\x00\x00\x00\x16\x08\x06\x00\x00\x00\xc4\xb4l;\
-\x00\x00\x00\x06bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\
-\xa7\x93\x00\x00\x00\xdaIDATH\xc7\xed\x94A\x0e\
-\x820\x10E\x1fF8\x83w\xf0\xfe\x87\xf0\x1a^@\
-\xb1\xa5t\xa6\x1a\x5c\xb4\x04\x8c\xa2\x11\xca\xc2\xc4I\xd8\
-\xd0\xe4\xe5\xf5\xf7g\x8a\xb2,;\x16L\x08\xa1x\xf5\
-\x7f\x0b\xa0\xaa\xb3\xa0UUM\x9emXi\xfe\xe0\x1f\
-\x06o30\xbaU\xc0\xdd\xed\x0a7\x0f\xa1\x05u \
-\x96b\xb7\xcf`\x1c\x5c\x826\xa0\x16\xc4f\x8aB\xed\
-\x00\xf5\x16\xe4\x92\x09,\x97h)&~\x9a\xcb\xd8\xd7\
-\xe0\xcd\x08\xdcd\x02\xbb\xf3`\xaa9\xc1\xed9A\xfb\
-\xac\xcd\x00~\xb7\xfe>g\x5c\xc7\x8cC\x93\xe2H\x19\
-O-\xeaW\x95\xed\x8e\x87!KI\x96\xbe\x8e\xa6\x92\
-\x1a1\xeb\xf1\xfc)V\xaa\xefk\xb0 \xc9TG\x0f\
-\xf85\xb8M\xd7V\x03\xe2 \x98\xc7\xaa\xf5\xb7\x98\x05\
-\xd6\xde\xd4>\xf7W\x1a\xb8:\x00\x8a\xa5\xcbfj\xee\
-\x91a\xa9f\xc0\x0f\xb5]\x00\x00\x00\x00IEND\
-\xaeB`\x82\
-\x00\x00\x00`\
+\xd3~\x00\x00\x00'IDATH\xc7c`\x80\x82\
+\x06\x0640*0*0*0*\x80*\xf0\x1f\x15\
+\xfc\x1b\x0d\xa0Q\x81Q\x81Q\x01\x22\x05\x00\xd5;N\
+\xf0s\xe3o\xe9\x00\x00\x00\x00IEND\xaeB`\
+\x82\
+\x00\x00\x00\x8d\
\x89\
PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00\x7f\x00\x00\x00\x7f\x01\x03\x00\x00\x00\xfcs\x8fP\
-\x00\x00\x00\x03PLTE\xff\xff\xff\xa7\xc4\x1b\xc8\x00\
-\x00\x00\x18IDATx^\xed\xc01\x01\x00\x00\x00\
-\xc2 \xfb\xa76\xc5>X\x0b\x00\xe0\x08o\x00\x01\x01\
->\xc31\x00\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x1b\x00\x00\x00\x1b\x01\x03\x00\x00\x00\xb7\x1af\x16\
+\x00\x00\x00\x06PLTE\xff\xff\xff\x00\x00\x00U\xc2\
+\xd3~\x00\x00\x00\x01tRNS\x00@\xe6\xd8f\x00\
+\x00\x005IDAT\x08\x99c`\xc0\x02\xd8\x1b\x80\
+\x04\xff\x01L\x82\xfd\x01H\xba\x00DX\x80\x08\x19\x10\
+\xc1\x07\xd6\x02\x22\x98A\xfa\x18A\x0a\x19\xc0\x0a\xeb@\
+\x84=\x16B\x0e\xddF\x00\xb5\x00\x09@\xa31\xbf^\
+\x00\x00\x00\x00IEND\xaeB`\x82\
\x00\x00\x03?\
\x89\
PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
@@ -261,37 +114,6 @@ I\x22\x8f\x8f\xc15\xf7\xdd\x12\xae\xb4\xf4\x04n\xa9\x0c\
\x8a\x88\xa6Y\xd6\xa8Syku\x9eO>\x8e\x1b\xec\
\x0f\xe4\x1a\xda\xa0h\xebM\xed\x7f=\xa9\x97\x96\x02\xf1\
+\x1c\x00\x00\x00\x00IEND\xaeB`\x82\
-\x00\x00\x00\x8d\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00\x1b\x00\x00\x00\x1b\x01\x03\x00\x00\x00\xb7\x1af\x16\
-\x00\x00\x00\x06PLTE\xff\xff\xff\x00\x00\x00U\xc2\
-\xd3~\x00\x00\x00\x01tRNS\x00@\xe6\xd8f\x00\
-\x00\x005IDAT\x08\x99c`\xc0\x02\xd8\x1b\x80\
-\x04\xff\x01L\x82\xfd\x01H\xba\x00DX\x80\x08\x19\x10\
-\xc1\x07\xd6\x02\x22\x98A\xfa\x18A\x0a\x19\xc0\x0a\xeb@\
-\x84=\x16B\x0e\xddF\x00\xb5\x00\x09@\xa31\xbf^\
-\x00\x00\x00\x00IEND\xaeB`\x82\
-\x00\x00\x01\x12\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00\x0b\x00\x00\x00\x0d\x08\x06\x00\x00\x00\x7f\xf5\x94;\
-\x00\x00\x00\xd9IDAT(S}\x901\x0eE@\
-\x10\x86G$$\x1a\x0d\x0d\xd1\x22Qp\x80m\x5c@\
-\xe7<\x0e!\x0aGq\x19\xb5N\xa9\xc1x3\xb2\x8b\
-\xf7\xec\xdb\xe4\xcbfv\xfe\xf9gv\xc00\x0c\x04\x80\
-\x07\xf4fY\x16&I\x82\x9f\x03\xc4\xbe\xef\x94;\x05\
-i\x9a2$\x08\xc3\xf0QX\xd75\x17\x01\x05\x04U\
-\xde]\xe8v\x1c\x87s\xb6m\xe3\xc3Y\x0a\xefDQ\
-\xc4\xe2 \x08\xf4\xce\xeb\xbab\xdb\xb6j\x94\xbe\xefO\
-\xb1|(\x8a\x82\xc9\xf3\x1c}\xdfg\x03!\x04\x0e\xc3\
-\xa0L@\xb7\x0d\xd34Y\xdcu\xdd%\xfe\x9ey\xdb\
-6\x9c\xa6\x89c\xd9!\x8ec\x1c\xc7\x11\xd5\xcco\x1f\
-$d\xbe\xaa\xaa\xff\xdbX\x96E\x8dF]^\xb7A\
-\xcc\xf3\x8cM\xd3\xa0\xccgYv9{\x9e\xa7p]\
-\xf7\xe7\xd3\xdamH\xa8\xa8,K\xd5\xf1\x00\xd0\xc0\x13\
-\xc8\x06\xaf\x16(\x00\x00\x00\x00IEND\xaeB`\
-\x82\
\x00\x00\x00t\
\x89\
PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
@@ -302,6 +124,184 @@ PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
C\xc4\xff\x8d\x0a\x8c\x0a\x8c\x0a\x8c\x0a`\x17\x00\x00?\
x\xe4\xb7\xe3\x900_\x00\x00\x00\x00IEND\xae\
B`\x82\
+\x00\x00\x00`\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x7f\x00\x00\x00\x7f\x01\x03\x00\x00\x00\xfcs\x8fP\
+\x00\x00\x00\x03PLTE\xff\xff\xff\xa7\xc4\x1b\xc8\x00\
+\x00\x00\x18IDATx^\xed\xc01\x01\x00\x00\x00\
+\xc2 \xfb\xa76\xc5>X\x0b\x00\xe0\x08o\x00\x01\x01\
+>\xc31\x00\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x00p\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x7f\x00\x00\x00\x7f\x01\x03\x00\x00\x00\xfcs\x8fP\
+\x00\x00\x00\x06PLTE\x00\xff\xff\xff\xff\xff\xb1\xb8\
+^\xa0\x00\x00\x00%IDATx^\xed\xcc!\x12\
+\x00\x00\x04\x00A\xff\x7f4\x82\x11du/n\xb8\xd8\
+j\xca\x0b\x00\x00\xf0\x9d\x01\x00@\x03\x94\x98\xeb\xc0\x19\
+8\xa1\x84\x00\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x01>\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x16\x00\x00\x00\x16\x08\x06\x00\x00\x00\xc4\xb4l;\
+\x00\x00\x00\x06bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\
+\xa7\x93\x00\x00\x00\xf3IDAT8\xcb\xed\x94An\
+\x830\x10E\x9f%\xe0\x0c\xbdC/\xd0\x13\xe5\xfaU\
+b\x9b\xd83\x01w\x81\x0d$\x85\xaa1\xca\xaa\x1d\x89\
+\x8d\x0dO\xef{\x067m\xdb&\x0e\x94\xaa\x9a\xad\xf5\
+\x06@D\xaa\xa0]\xd7\xed\xee5\xbc\xa8\xfe\xc1\x7f\x01\
+l\x8c\xd9\xdbJ\x87\x8dS\xda`\x8c\x03\x0c\x01\xf4\x0a\
+\xd2Ct\x98\xb7\xf7\x83G1*h\x81z\x10\x07\xd1\
+\x1d<\xe3A&\xa0\xf6\x0b48\x88\x97Jp\x1aa\
+\x88Kt\xf5\x93e\xb4\xd3#5\xc6i\x80[\x00)\
+\xd1=\xa8\x83`W`_\x01\x96\x1c}\xb6|0\x95\
+jp\xfep\x06\xba\x15\xd4\xe5\x14v\x01\xfft\xfd\xdd\
+U\xb8\xe4\xce\xdb\x05\x5c&A\xfd\xb2\x064{\x17\xf5\
+\xe6\x8f\x10\xce\xdf\xa1\xc54\xe6\x89\xa8j^\xf8\x9cF\
+j\xb6t\x10\xb3\xa9\xac\x1a\xf84\xf8z\xce\xa6\x16b\
+\x0fj\xef\x1bXRT\x81\xa5\x98nLE\xf4p\xeb\
+\x9f\x07\x9b\x8f\xd3\xaf\xdf\xfd\x02\xd6\xbd\xde\xdfp\xdb\x04\
+\x83\x00\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x00\xfa\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x0b\x00\x00\x00\x0c\x08\x06\x00\x00\x00\xb4\xa9G\x9e\
+\x00\x00\x00\xc1IDAT(S\xcd\x901\x0a\x840\
+\x10E\xc7\xceV\xb0\xd3F\x10o`\xe5\x01\xbcB@\
+\x0b\x9bt\x22\x11\xbc\x94\x9d'\xd2\x03x\x03\x03\x19\xf7\
+\x0f\xb8\xd9,l\xbf\x81Of\xde\xfc|\xc8P\x1c\xc7\
+LD\xa2(\x8a8\xcfs~\x1d\xc2\xfd\xc9\xd34e\
+\xd2ZsQ\x14\x02\x86a\xe0y\x9e\xc5\x8c\x1b=8\
+\xe6\xe382a\xa0\x94\x12\x88\xfa[\xe0\x98;\xe7B\
+3\xc0/3\xea\x7fJ\xee\xbaN\xcc\xd7u\x05\x0f\xd0\
+\x83\xf7}\xef\x93\xb1&\xc0}\xdf\x03\xf3q\x1c\xc2\x97\
+e\xf1\xc9\xeb\xba\x0a\x9c\xa6)0?!\xdb\xb6\xf9d\
+\xa8\xaek\x19\x94e\xc9m\xdbrUU\xd27M\xc3\
+\xd6Z\x9f\xfc\xc8\x18\xc3Y\x96\x89)I\x12\xc6_\xce\
+\xf3|o\xe9\x063 8\xcd\x08\x1exv\x00\x00\x00\
+\x00IEND\xaeB`\x82\
+\x00\x00\x01%\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x16\x00\x00\x00\x16\x08\x06\x00\x00\x00\xc4\xb4l;\
+\x00\x00\x00\x06bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\
+\xa7\x93\x00\x00\x00\xdaIDATH\xc7\xed\x94A\x0e\
+\x820\x10E\x1fF8\x83w\xf0\xfe\x87\xf0\x1a^@\
+\xb1\xa5t\xa6\x1a\x5c\xb4\x04\x8c\xa2\x11\xca\xc2\xc4I\xd8\
+\xd0\xe4\xe5\xf5\xf7g\x8a\xb2,;\x16L\x08\xa1x\xf5\
+\x7f\x0b\xa0\xaa\xb3\xa0UUM\x9emXi\xfe\xe0\x1f\
+\x06o30\xbaU\xc0\xdd\xed\x0a7\x0f\xa1\x05u \
+\x96b\xb7\xcf`\x1c\x5c\x826\xa0\x16\xc4f\x8aB\xed\
+\x00\xf5\x16\xe4\x92\x09,\x97h)&~\x9a\xcb\xd8\xd7\
+\xe0\xcd\x08\xdcd\x02\xbb\xf3`\xaa9\xc1\xed9A\xfb\
+\xac\xcd\x00~\xb7\xfe>g\x5c\xc7\x8cC\x93\xe2H\x19\
+O-\xeaW\x95\xed\x8e\x87!KI\x96\xbe\x8e\xa6\x92\
+\x1a1\xeb\xf1\xfc)V\xaa\xefk\xb0 \xc9TG\x0f\
+\xf85\xb8M\xd7V\x03\xe2 \x98\xc7\xaa\xf5\xb7\x98\x05\
+\xd6\xde\xd4>\xf7W\x1a\xb8:\x00\x8a\xa5\xcbfj\xee\
+\x91a\xa9f\xc0\x0f\xb5]\x00\x00\x00\x00IEND\
+\xaeB`\x82\
+\x00\x00\x00\x91\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00*\x00\x00\x00+\x01\x03\x00\x00\x004Q\x88\xbd\
+\x00\x00\x00\x06PLTE\xff\xff\xff\x00\x00\x00U\xc2\
+\xd3~\x00\x00\x00\x01tRNS\x00@\xe6\xd8f\x00\
+\x00\x009IDAT\x18Wc`\xc0\x05\x14 T\
+\x01\x84\xfa\x01&\x19\xff\x80)f\x08\x8f\xfd\x03\x98\xe2\
+\x7f\x00\xa6\xe4\x0f\x80)\xfb\x060U\x0f\xd1\xf6oP\
+k\xe3\x87hc\x83P,\x0c\x84\x00\x00\x91\xca\x1c\x09\
+\xf6#*\xfe\x00\x00\x00\x00IEND\xaeB`\x82\
+\
+\x00\x00\x02\xf1\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00*\x00\x00\x00,\x08\x03\x00\x00\x00$D\xdat\
+\x00\x00\x012PLTE\xff\xff\xff\xfe\xfe\xfe\x01\x01\
+\x01\xbe\xbe\xbe\xfd\xfd\xfd\x00\x00\x00ddd\xd2\xd2\xd2\
+|||\xfb\xfb\xfb\xe7\xe7\xe7\x84\x84\x84\xd7\xd7\xd7\xe0\
+\xe0\xe0\xe1\xe1\xe1\x0c\x0c\x0c(((\xf5\xf5\xf5\xb3\xb3\
+\xb3\x02\x02\x02\x95\x95\x95...\x11\x11\x11kkk\
+\x03\x03\x03rrrIII\xfc\xfc\xfc\x13\x13\x13\x04\
+\x04\x04\x9f\x9f\x9f\xc4\xc4\xc4\xa9\xa9\xa9\x05\x05\x05WW\
+W\x17\x17\x17\xf6\xf6\xf6\x16\x16\x16\xa6\xa6\xa6\xa0\xa0\xa0\
+```$$$>>>###\xb7\xb7\xb7M\
+MM\xf8\xf8\xf8\xc0\xc0\xc0000\x09\x09\x09\xec\xec\
+\xec \x8a\x8a\x8a\xda\xda\xda\xf1\xf1\xf1\x0d\x0d\x0d\
+\x99\x99\x99\x19\x19\x19\xf9\xf9\xf9\xcd\xcd\xcd\xf4\xf4\xf49\
+99---;;;\x12\x12\x12CCC\xc2\xc2\
+\xc2\xa4\xa4\xa4\xdc\xdc\xdcUUUhhhZZZ\
+PPP\xf0\xf0\xf0\x06\x06\x06\x1f\x1f\x1fttt\xb1\
+\xb1\xb1]]]!!!666\x08\x08\x08\xea\xea\
+\xea\xdb\xdb\xdb\x81\x81\x81\x9c\x9c\x9c\x8b\x8b\x8buuu\
+\xf2\xf2\xf2%%%\xce\xce\xceHHHccc\xba\
+\xba\xbaSSS888\xf7\xf7\xf7\xe4\xe4\xe4\xa2\xa2\
+\xa2JJJ\xf3\xf3\xf3___\xf1i\x00\xec\x00\x00\
+\x00\x01tRNS\x00@\xe6\xd8f\x00\x00\x01mI\
+DATx^\xd5\x92\xc5v\xc30\x10E=\x92\x1d\
+f\xe6\x94\x99\x99\x99\x99\x99\xe1\xff\x7f\xa1\x9e\x89\x93S\
+\xa9\xb2Nvm\xdf\xf2\xea\xfa\xbdY\xd8\xf8+\xf10\
+\xeb[X\xcc\x047\x13<\x96\x10\xc6\xb5\xadB\xda\x9a\
+om\x0d@\xb3\xad,\xe8\xda\x1a\xe2\xb5\xf4\xd4\xddq\
+\xbf\xa1\x0d\x14{\x1b\xed\x09\xd0\xbb\x03\x0d\x93\x0d\xeaM\
+\xd8A+3\x82n.\xac5\xc39\xbb\x95\xe5\xbb\xa9\
+\xdb\xa7\xbd\xc0G\xcedG'~1;\xa7q\x87\xda\
+\xd1,\x00\xf8\xe8\xda\x16\xcd~\x17\x19\x09\xc3\x88\x94\xd1\
+]\xd5\xb4\xf6\xe1n\xbf\xdf66\xe9\x92\x90\xab\xeb\xa5\
+\xf7\x09\xdb\x84a\xea\xcf\xbb\xeeg\xd1\x1c\x1dC`\xa6\
+\xd1]\x89\xbb\x98S\xd3\xb8\xef\xa9\x81\x19Z\xa8\x80\xda\
+M\xd1\xeb<\xbd\xc2B\x06\xbf[T\x9b\xe6\x12\x9a\xcb\
+N\x0f\x1c\xd0\xb5w\xca\xfd5z[\xaf\x83\x8d$\xba\
+[\xca\x0b\xb6q_\x0a\x8b\xee*\xdc\xc0\x9e\xa5\x08K\
+)\xf6\x83\x962i\xf3\x87\xe9\xdfgj\xb7\x0a\xb2{\
+\xe8b\xb2#\xd9\x84\x02\xf2c.\xe4\x04\xd9\xe9\x99d\
+\x9eS\xc3\x85H/i\xe9\x0aDzmS\x96\x8c\x08\
+\x14n\xa2Ho\x8b\x02\x8d\x97\xb0\xf5\x1e\xa4\xad\x07\xda\
+z\x14XE\xfd\xd7W\xe9\x82'\xa1\xe1\x19\x97J/\
+r\xab\x19C^~\xads\xce\xf9\x1b}\xfd\xce1\x1f\
+\xe0`\xcc'\xademL\xcc\x12\xc2\xbcN#\x139\
+A\x89y\xc1P5\xfc~\xeb\xff\xca\x17Uq \xbb\
+\xd7\xbb.\xca\x00\x00\x00\x00IEND\xaeB`\x82\
+\
+\x00\x00\x01\x1a\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00*\x00\x00\x00+\x02\x03\x00\x00\x00s\xf1\xf2m\
+\x00\x00\x00\x0cPLTE\xff\xff\xff\x80\x80\x80\x00\x00\
+\x00\xff\xff\xffEJK8\x00\x00\x00\x01tRNS\
+\x00@\xe6\xd8f\x00\x00\x00\xbcIDATx^M\
+\xcb\xbd\x89\x041\x0c\x86a\xa1\xd0U8\x1c\xdc\x8f&\
+\xd8\x12\xa6\x0a\xb3\xe1\xe6N.2\x07\x02\xdb\x07[\xc0\
+\x96\xb4U\x9cG?3V\xf4!\xde\x07B\xcd\xe0\x17\
+F\xbd\xf6\xb6\xec\x1a\xef\xa6A\x024\xb2A\x80`$\
+\xcf\x9d\x9a\xee8\x8b~x\x83O~d\xb30hW\
+\x102t\x22\x05\x98\x91\x89\x0c\xe4P\x88\x0c\xd4D\xe4\
+ \xce\xdc\xc1\x98\x89\x833q \x89\x02\xe4\x9d\x1d`\
+\xa1.@\xff\xe9\x02\xfd\xf1*\x0e\xd2\xfe{\x81P\xda\
+\x02\x8e\xef\x02>\x0bx\xb3l\x01\x7f]\x1a\x03f\x1d\
+4\x00\x03B\x15\xb0\xe4\x0a$7P$W\xc0\x92+\
+\xe8\x92\x1b\x90\xdc\x80\xe4\x0a$7\xf0so\x1cp_\
+[v<\xc7?\xd6Qh R\x85\xdb_\x00\x00\x00\
+\x00IEND\xaeB`\x82\
+\x00\x00\x00\xf7\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x0b\x00\x00\x00\x0c\x08\x06\x00\x00\x00\xb4\xa9G\x9e\
+\x00\x00\x00\xbeIDAT(S\x85\x911\x0e@@\
+\x10EWM$J7\xa1\xa4\x918\x85^t\xaa=\
+\x8aNT{\x80\xadun\xa0\xd1l\xe7\x12\xc4\x97\x19\
+\xb1!YQ\xfcb\xfe\xbc\xfc\x99\xcc\x08\x00\x82t\x1c\
+\x07\xa6i\x82\x10\xc2)\xcf\xf3.\xf0\xd68\x8e\xa8\xaa\
+\x8aU\x14\x05\x03I\x92X\xef\x05?\xd5u\x1d\xc3Z\
+k\xd0T\xf2\x9c 5\xeb\xbafx]W\xdc\xfeg\
+r\x9a\xa6\x88\xe3\x18O\xcf\x09n\xdb\x06\xdf\xf7Q\x96\
+\xa5]\xc1\x09Ss\x9eg^AJ\xf9\x9f<\x0c\x03\
+\xc3J\xa9\xff\xe4\xb6m\x19^\x96\xe5?9\xcfs\x84\
+a\x88}\xdf\xdf\xc9T\x18c\xec\xe1IA\x10 \x8a\
+\x22[7M\x03\x9b\xdc\xf7\xfd\xf5\xce\x8fWgY\xc6\
+\x13N\xfaWVX\xe8@\xda\xc6\x00\x00\x00\x00IE\
+ND\xaeB`\x82\
"
qt_resource_name = b"\
@@ -309,66 +309,66 @@ qt_resource_name = b"\
\x07\x03}\xc3\
\x00i\
\x00m\x00a\x00g\x00e\x00s\
-\x00\x0a\
-\x02\xfcBG\
-\x00i\
-\x00t\x00a\x00l\x00i\x00c\x00.\x00p\x00n\x00g\
-\x00\x0d\
-\x06C\xe3g\
-\x00f\
-\x00l\x00o\x00o\x00d\x00f\x00i\x00l\x00l\x00.\x00p\x00n\x00g\
-\x00\x0d\
-\x08\xd5\xc4\xe7\
-\x00u\
-\x00n\x00d\x00e\x00r\x00l\x00i\x00n\x00e\x00.\x00p\x00n\x00g\
+\x00\x0b\
+\x0a+\x97\xe7\
+\x00p\
+\x00o\x00i\x00n\x00t\x00e\x00r\x00.\x00p\x00n\x00g\
+\x00\x08\
+\x06'Zg\
+\x00b\
+\x00o\x00l\x00d\x00.\x00p\x00n\x00g\
\x00\x0f\
\x00I\xdb\xa7\
\x00b\
\x00a\x00c\x00k\x00g\x00r\x00o\x00u\x00n\x00d\x002\x00.\x00p\x00n\x00g\
\x00\x0f\
-\x05\xaa\x0c\xc7\
-\x00t\
-\x00e\x00x\x00t\x00p\x00o\x00i\x00n\x00t\x00e\x00r\x00.\x00p\x00n\x00g\
-\x00\x0e\
-\x0f\x0d\x22'\
-\x00s\
-\x00e\x00n\x00d\x00t\x00o\x00b\x00a\x00c\x00k\x00.\x00p\x00n\x00g\
-\x00\x0b\
-\x0a+\x97\xe7\
-\x00p\
-\x00o\x00i\x00n\x00t\x00e\x00r\x00.\x00p\x00n\x00g\
+\x03J#\xe7\
+\x00l\
+\x00i\x00n\x00e\x00p\x00o\x00i\x00n\x00t\x00e\x00r\x00.\x00p\x00n\x00g\
+\x00\x0a\
+\x0c\xad\x0f\x07\
+\x00d\
+\x00e\x00l\x00e\x00t\x00e\x00.\x00p\x00n\x00g\
+\x00\x0f\
+\x00J\xdb\xa7\
+\x00b\
+\x00a\x00c\x00k\x00g\x00r\x00o\x00u\x00n\x00d\x003\x00.\x00p\x00n\x00g\
+\x00\x0f\
+\x00K\xdb\xa7\
+\x00b\
+\x00a\x00c\x00k\x00g\x00r\x00o\x00u\x00n\x00d\x004\x00.\x00p\x00n\x00g\
\x00\x0f\
\x00P\xdb\xa7\
\x00b\
\x00a\x00c\x00k\x00g\x00r\x00o\x00u\x00n\x00d\x001\x00.\x00p\x00n\x00g\
+\x00\x0e\
+\x0f\x0d\x22'\
+\x00s\
+\x00e\x00n\x00d\x00t\x00o\x00b\x00a\x00c\x00k\x00.\x00p\x00n\x00g\
\x00\x0d\
-\x05l\x22\xc7\
-\x00l\
-\x00i\x00n\x00e\x00c\x00o\x00l\x00o\x00r\x00.\x00p\x00n\x00g\
+\x08\xd5\xc4\xe7\
+\x00u\
+\x00n\x00d\x00e\x00r\x00l\x00i\x00n\x00e\x00.\x00p\x00n\x00g\
\x00\x10\
\x0f\x9b\x88g\
\x00b\
\x00r\x00i\x00n\x00g\x00t\x00o\x00f\x00r\x00o\x00n\x00t\x00.\x00p\x00n\x00g\
-\x00\x0f\
-\x00K\xdb\xa7\
-\x00b\
-\x00a\x00c\x00k\x00g\x00r\x00o\x00u\x00n\x00d\x004\x00.\x00p\x00n\x00g\
-\x00\x0a\
-\x0c\xad\x0f\x07\
-\x00d\
-\x00e\x00l\x00e\x00t\x00e\x00.\x00p\x00n\x00g\
-\x00\x0f\
-\x03J#\xe7\
+\x00\x0d\
+\x05l\x22\xc7\
\x00l\
-\x00i\x00n\x00e\x00p\x00o\x00i\x00n\x00t\x00e\x00r\x00.\x00p\x00n\x00g\
-\x00\x08\
-\x06'Zg\
-\x00b\
-\x00o\x00l\x00d\x00.\x00p\x00n\x00g\
+\x00i\x00n\x00e\x00c\x00o\x00l\x00o\x00r\x00.\x00p\x00n\x00g\
\x00\x0f\
-\x00J\xdb\xa7\
-\x00b\
-\x00a\x00c\x00k\x00g\x00r\x00o\x00u\x00n\x00d\x003\x00.\x00p\x00n\x00g\
+\x05\xaa\x0c\xc7\
+\x00t\
+\x00e\x00x\x00t\x00p\x00o\x00i\x00n\x00t\x00e\x00r\x00.\x00p\x00n\x00g\
+\x00\x0d\
+\x06C\xe3g\
+\x00f\
+\x00l\x00o\x00o\x00d\x00f\x00i\x00l\x00l\x00.\x00p\x00n\x00g\
+\x00\x0a\
+\x02\xfcBG\
+\x00i\
+\x00t\x00a\x00l\x00i\x00c\x00.\x00p\x00n\x00g\
"
qt_resource_struct = b"\
@@ -376,36 +376,36 @@ qt_resource_struct = b"\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x0f\x00\x00\x00\x02\
\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00l\x00\x00\x00\x00\x00\x01\x00\x00\x03\x17\
-\x00\x00\x01e\xaf\x16\xd2\x9d\
-\x00\x00\x01\xd4\x00\x00\x00\x00\x00\x01\x00\x00\x0f\xf5\
-\x00\x00\x01e\xaf\x16\xd2\x9d\
-\x00\x00\x01\x5c\x00\x00\x00\x00\x00\x01\x00\x00\x0a\xa7\
-\x00\x00\x01e\xaf\x16\xd2\x9d\
-\x00\x00\x00\xf2\x00\x00\x00\x00\x00\x01\x00\x00\x08u\
-\x00\x00\x01e\xaf\x16\xd2\x9d\
+\x00\x00\x00D\x00\x00\x00\x00\x00\x01\x00\x00\x01\xc7\
+\x00\x00\x01z\xe7\xee'\x09\
+\x00\x00\x00\xa6\x00\x00\x00\x00\x00\x01\x00\x00\x06\x11\
+\x00\x00\x01z\xe7\xee'\x09\
+\x00\x00\x00\xca\x00\x00\x00\x00\x00\x01\x00\x00\x06\x89\
+\x00\x00\x01z\xe7\xee'\x09\
+\x00\x00\x00\xee\x00\x00\x00\x00\x00\x01\x00\x00\x06\xed\
+\x00\x00\x01z\xe7\xee'\x09\
+\x00\x00\x01\xde\x00\x00\x00\x00\x00\x01\x00\x00\x0fr\
+\x00\x00\x01z\xe7\xee'\x09\
+\x00\x00\x00h\x00\x00\x00\x00\x00\x01\x00\x00\x02=\
+\x00\x00\x01z\xe7\xee'\x09\
+\x00\x00\x01z\x00\x00\x00\x00\x00\x01\x00\x00\x0a\xca\
+\x00\x00\x01z\xe7\xee'\x09\
+\x00\x00\x01\x9a\x00\x00\x00\x00\x00\x01\x00\x00\x0b_\
+\x00\x00\x01z\xe7\xee'\x09\
+\x00\x00\x00.\x00\x00\x00\x00\x00\x01\x00\x00\x00\xb1\
+\x00\x00\x01z\xe7\xee'\x09\
+\x00\x00\x01\xbe\x00\x00\x00\x00\x00\x01\x00\x00\x0eT\
+\x00\x00\x01z\xe7\xee'\x09\
+\x00\x00\x014\x00\x00\x00\x00\x00\x01\x00\x00\x08\xa3\
+\x00\x00\x01z\xe7\xee'\x09\
\x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x01e\xaf\x16\xd2\x9d\
-\x00\x00\x01\x9a\x00\x00\x00\x00\x00\x01\x00\x00\x0eN\
-\x00\x00\x01e\xaf\x16\xd2\x9d\
-\x00\x00\x01\x16\x00\x00\x00\x00\x00\x01\x00\x00\x08\xe9\
-\x00\x00\x01e\xaf\x16\xd2\x9d\
-\x00\x00\x00\x90\x00\x00\x00\x00\x00\x01\x00\x00\x03\x8d\
-\x00\x00\x01e\xaf\x16\xd2\x9d\
-\x00\x00\x01\xbe\x00\x00\x00\x00\x00\x01\x00\x00\x0e\xdf\
-\x00\x00\x01e\xaf\x16\xd2\x9d\
-\x00\x00\x00,\x00\x00\x00\x00\x00\x01\x00\x00\x00\xfb\
-\x00\x00\x01e\xaf\x16\xd2\x9d\
-\x00\x00\x00L\x00\x00\x00\x00\x00\x01\x00\x00\x02\x19\
-\x00\x00\x01e\xaf\x16\xd2\x9d\
-\x00\x00\x00\xd6\x00\x00\x00\x00\x00\x01\x00\x00\x07\xc4\
-\x00\x00\x01e\xaf\x16\xd2\x9d\
-\x00\x00\x01\x80\x00\x00\x00\x00\x00\x01\x00\x00\x0b\x0b\
-\x00\x00\x01e\xaf\x16\xd2\x9d\
-\x00\x00\x00\xb4\x00\x00\x00\x00\x00\x01\x00\x00\x06\x82\
-\x00\x00\x01e\xaf\x16\xd2\x9d\
-\x00\x00\x016\x00\x00\x00\x00\x00\x01\x00\x00\x09~\
-\x00\x00\x01e\xaf\x16\xd2\x9d\
+\x00\x00\x01z\xe7\xee'\x09\
+\x00\x00\x00\x8c\x00\x00\x00\x00\x00\x01\x00\x00\x02\xce\
+\x00\x00\x01z\xe7\xee'\x09\
+\x00\x00\x01\x12\x00\x00\x00\x00\x00\x01\x00\x00\x07a\
+\x00\x00\x01z\xe7\xee'\x09\
+\x00\x00\x01T\x00\x00\x00\x00\x00\x01\x00\x00\x09\xa1\
+\x00\x00\x01z\xe7\xee'\x09\
"
def qInitResources():
diff --git a/examples/widgets/graphicsview/dragdroprobot/dragdroprobot.py b/examples/widgets/graphicsview/dragdroprobot/dragdroprobot.py
index 4f074aa19..9ed92b26e 100644
--- a/examples/widgets/graphicsview/dragdroprobot/dragdroprobot.py
+++ b/examples/widgets/graphicsview/dragdroprobot/dragdroprobot.py
@@ -1,44 +1,6 @@
-
-#############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
import math
@@ -49,9 +11,9 @@ from PySide6.QtGui import (QBrush, QColor, QDrag, QImage, QPainter, QPixmap,
QPen, QTransform)
from PySide6.QtWidgets import (QApplication, QGraphicsItem,
QGraphicsItemAnimation, QGraphicsScene,
- QGraphicsView, QWidget)
+ QGraphicsView)
-import dragdroprobot_rc
+import dragdroprobot_rc # noqa: F401
def random(boundary):
@@ -113,11 +75,10 @@ class ColorItem(QGraphicsItem):
pixmap = QPixmap(34, 34)
pixmap.fill(Qt.white)
- painter = QPainter(pixmap)
- painter.translate(15, 15)
- painter.setRenderHint(QPainter.Antialiasing)
- self.paint(painter, None, None)
- painter.end()
+ with QPainter(pixmap) as painter:
+ painter.translate(15, 15)
+ painter.setRenderHint(QPainter.Antialiasing)
+ self.paint(painter, None, None)
pixmap.setMask(pixmap.createHeuristicMask())
@@ -142,8 +103,8 @@ class RobotPart(QGraphicsItem):
self.setAcceptDrops(True)
def dragEnterEvent(self, event):
- if (event.mimeData().hasColor() or
- (isinstance(self, RobotHead) and event.mimeData().hasImage())):
+ if (event.mimeData().hasColor()
+ or (isinstance(self, RobotHead) and event.mimeData().hasImage())):
event.setAccepted(True)
self._drag_over = True
self.update()
@@ -170,8 +131,7 @@ class RobotHead(RobotPart):
def paint(self, painter, option, widget=None):
if not self.pixmap:
- painter.setBrush(self._drag_over and self.color.lighter(130)
- or self.color)
+ painter.setBrush(self._drag_over and self.color.lighter(130) or self.color)
painter.drawRoundedRect(-10, -30, 20, 30, 25, 25, Qt.RelativeSize)
painter.setBrush(Qt.white)
painter.drawEllipse(-7, -3 - 20, 7, 7)
@@ -193,7 +153,7 @@ class RobotTorso(RobotPart):
def paint(self, painter, option, widget=None):
painter.setBrush(self._drag_over and self.color.lighter(130)
- or self.color)
+ or self.color)
painter.drawRoundedRect(-20, -20, 40, 60, 25, 25, Qt.RelativeSize)
painter.drawEllipse(-25, -20, 20, 20)
painter.drawEllipse(5, -20, 20, 20)
@@ -208,7 +168,7 @@ class RobotLimb(RobotPart):
def paint(self, painter, option, widget=None):
painter.setBrush(self._drag_over and self.color.lighter(130) or self.color)
painter.drawRoundedRect(self.boundingRect(), 50, 50,
- Qt.RelativeSize)
+ Qt.RelativeSize)
painter.drawEllipse(-5, -5, 10, 10)
@@ -216,35 +176,35 @@ class Robot(RobotPart):
def __init__(self):
super().__init__()
- self.torsoItem = RobotTorso(self)
- self.headItem = RobotHead(self.torsoItem)
- self.upperLeftArmItem = RobotLimb(self.torsoItem)
- self.lowerLeftArmItem = RobotLimb(self.upperLeftArmItem)
+ self.torsoItem = RobotTorso(self)
+ self.headItem = RobotHead(self.torsoItem)
+ self.upperLeftArmItem = RobotLimb(self.torsoItem)
+ self.lowerLeftArmItem = RobotLimb(self.upperLeftArmItem)
self._upper_right_arm_item = RobotLimb(self.torsoItem)
self._lower_right_arm_item = RobotLimb(self._upper_right_arm_item)
self._upper_right_leg_item = RobotLimb(self.torsoItem)
self._lower_right_leg_item = RobotLimb(self._upper_right_leg_item)
- self.upperLeftLegItem = RobotLimb(self.torsoItem)
- self.lowerLeftLegItem = RobotLimb(self.upperLeftLegItem)
+ self.upperLeftLegItem = RobotLimb(self.torsoItem)
+ self.lowerLeftLegItem = RobotLimb(self.upperLeftLegItem)
self.timeline = QTimeLine()
settings = [
- # item position rotation at
- # x y time 0 / 1
- ( self.headItem, 0, -18, 20, -20 ),
- ( self.upperLeftArmItem, -15, -10, 190, 180 ),
- ( self.lowerLeftArmItem, 30, 0, 50, 10 ),
- ( self._upper_right_arm_item, 15, -10, 300, 310 ),
- ( self._lower_right_arm_item, 30, 0, 0, -70 ),
- ( self._upper_right_leg_item, 10, 32, 40, 120 ),
- ( self._lower_right_leg_item, 30, 0, 10, 50 ),
- ( self.upperLeftLegItem, -10, 32, 150, 80 ),
- ( self.lowerLeftLegItem, 30, 0, 70, 10 ),
- ( self.torsoItem, 0, 0, 5, -20 )
+ # item position rotation at
+ # x y time 0 / 1
+ (self.headItem, 0, -18, 20, -20), # noqa: E241
+ (self.upperLeftArmItem, -15, -10, 190, 180), # noqa: E241
+ (self.lowerLeftArmItem, 30, 0, 50, 10), # noqa: E241
+ (self._upper_right_arm_item, 15, -10, 300, 310), # noqa: E241
+ (self._lower_right_arm_item, 30, 0, 0, -70), # noqa: E241
+ (self._upper_right_leg_item, 10, 32, 40, 120), # noqa: E241
+ (self._lower_right_leg_item, 30, 0, 10, 50), # noqa: E241
+ (self.upperLeftLegItem, -10, 32, 150, 80), # noqa: E241
+ (self.lowerLeftLegItem, 30, 0, 70, 10), # noqa: E241
+ (self.torsoItem, 0, 0, 5, -20) # noqa: E241
]
self.animations = []
for item, pos_x, pos_y, rotation1, rotation2 in settings:
- item.setPos(pos_x,pos_y)
+ item.setPos(pos_x, pos_y)
animation = QGraphicsItemAnimation()
animation.setItem(item)
animation.setTimeLine(self.timeline)
@@ -267,7 +227,7 @@ class Robot(RobotPart):
pass
-if __name__== '__main__':
+if __name__ == '__main__':
app = QApplication(sys.argv)
scene = QGraphicsScene(-200, -200, 400, 400)
diff --git a/examples/widgets/graphicsview/dragdroprobot/dragdroprobot.pyproject b/examples/widgets/graphicsview/dragdroprobot/dragdroprobot.pyproject
index 587484a97..f31851b91 100644
--- a/examples/widgets/graphicsview/dragdroprobot/dragdroprobot.pyproject
+++ b/examples/widgets/graphicsview/dragdroprobot/dragdroprobot.pyproject
@@ -1,3 +1,3 @@
{
- "files": ["dragdroprobot.qrc", "dragdroprobot_rc.py", "dragdroprobot.py"]
+ "files": ["dragdroprobot.qrc", "dragdroprobot.py"]
}
diff --git a/examples/widgets/graphicsview/dragdroprobot/dragdroprobot_rc.py b/examples/widgets/graphicsview/dragdroprobot/dragdroprobot_rc.py
index 5b992ffca..b0e29d413 100644
--- a/examples/widgets/graphicsview/dragdroprobot/dragdroprobot_rc.py
+++ b/examples/widgets/graphicsview/dragdroprobot/dragdroprobot_rc.py
@@ -1,6 +1,6 @@
# Resource object code (Python 3)
# Created by: object code
-# Created by: The Resource Compiler for Qt version 5.14.0
+# Created by: The Resource Compiler for Qt version 6.2.2
# WARNING! All changes made in this file will be lost!
from PySide6 import QtCore
@@ -963,7 +963,7 @@ qt_resource_struct = b"\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x01e\xaf\x16\xd2\x9d\
+\x00\x00\x01z\xe7\xee'\x09\
"
def qInitResources():
diff --git a/examples/widgets/graphicsview/elasticnodes/elasticnodes.py b/examples/widgets/graphicsview/elasticnodes/elasticnodes.py
index 78f006285..90cb49626 100644
--- a/examples/widgets/graphicsview/elasticnodes/elasticnodes.py
+++ b/examples/widgets/graphicsview/elasticnodes/elasticnodes.py
@@ -1,44 +1,6 @@
-
-#############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
import weakref
@@ -46,10 +8,10 @@ import math
from PySide6.QtCore import (QLineF, QPointF, QRandomGenerator, QRectF, QSizeF,
Qt, qAbs)
-from PySide6.QtGui import (QColor, QBrush, QPainter, QPainterPath, QPen,
+from PySide6.QtGui import (QColor, QBrush, QLinearGradient, QPainter, QPainterPath, QPen,
QPolygonF, QRadialGradient)
from PySide6.QtWidgets import (QApplication, QGraphicsItem, QGraphicsScene,
- QGraphicsView, QStyle, QWidget)
+ QGraphicsView, QStyle)
def random(boundary):
@@ -58,8 +20,6 @@ def random(boundary):
class Edge(QGraphicsItem):
- item_type = QGraphicsItem.UserType + 2
-
def __init__(self, sourceNode, destNode):
super().__init__()
@@ -74,7 +34,7 @@ class Edge(QGraphicsItem):
self.adjust()
def item_type(self):
- return Edge.item_type
+ return QGraphicsItem.UserType + 2
def source_node(self):
return self.source()
@@ -157,7 +117,6 @@ class Edge(QGraphicsItem):
class Node(QGraphicsItem):
- item_type = QGraphicsItem.UserType + 1
def __init__(self, graphWidget):
super().__init__()
@@ -167,11 +126,11 @@ class Node(QGraphicsItem):
self._new_pos = QPointF()
self.setFlag(QGraphicsItem.ItemIsMovable)
self.setFlag(QGraphicsItem.ItemSendsGeometryChanges)
- self.setCacheMode(self.DeviceCoordinateCache)
+ self.setCacheMode(QGraphicsItem.DeviceCoordinateCache)
self.setZValue(-1)
def item_type(self):
- return Node.item_type
+ return QGraphicsItem.UserType + 1
def add_edge(self, edge):
self._edge_list.append(weakref.ref(edge))
@@ -195,7 +154,7 @@ class Node(QGraphicsItem):
line = QLineF(self.mapFromItem(item, 0, 0), QPointF(0, 0))
dx = line.dx()
dy = line.dy()
- l = 2.0 * (dx * dx + dy * dy)
+ l = 2.0 * (dx * dx + dy * dy) # noqa: E741
if l > 0:
xvel += (dx * 150.0) / l
yvel += (dy * 150.0) / l
@@ -230,7 +189,7 @@ class Node(QGraphicsItem):
def boundingRect(self):
adjust = 2.0
return QRectF(-10 - adjust, -10 - adjust,
- 23 + adjust, 23 + adjust)
+ 23 + adjust, 23 + adjust)
def shape(self):
path = QPainterPath()
@@ -386,9 +345,9 @@ class GraphWidget(QGraphicsView):
bottom_shadow = QRectF(scene_rect.left() + 5, scene_rect.bottom(),
scene_rect.width(), 5)
if right_shadow.intersects(rect) or right_shadow.contains(rect):
- painter.fillRect(right_shadow, Qt.darkGray)
+ painter.fillRect(right_shadow, Qt.darkGray)
if bottom_shadow.intersects(rect) or bottom_shadow.contains(rect):
- painter.fillRect(bottom_shadow, Qt.darkGray)
+ painter.fillRect(bottom_shadow, Qt.darkGray)
# Fill.
gradient = QLinearGradient(scene_rect.topLeft(), scene_rect.bottomRight())
@@ -400,7 +359,7 @@ class GraphWidget(QGraphicsView):
# Text.
text_rect = QRectF(scene_rect.left() + 4, scene_rect.top() + 4,
- scene_rect.width() - 4, scene_rect.height() - 4)
+ scene_rect.width() - 4, scene_rect.height() - 4)
message = self.tr("Click and drag the nodes around, and zoom with the "
"mouse wheel or the '+' and '-' keys")
@@ -414,7 +373,8 @@ class GraphWidget(QGraphicsView):
painter.drawText(text_rect, message)
def scale_view(self, scaleFactor):
- factor = self.transform().scale(scaleFactor, scaleFactor).mapRect(QRectF(0, 0, 1, 1)).width()
+ factor = self.transform().scale(scaleFactor, scaleFactor).mapRect(
+ QRectF(0, 0, 1, 1)).width()
if factor < 0.07 or factor > 100:
return
diff --git a/examples/widgets/imageviewer/imageviewer.py b/examples/widgets/imageviewer/imageviewer.py
index ebcae5fa4..93b1e87ba 100644
--- a/examples/widgets/imageviewer/imageviewer.py
+++ b/examples/widgets/imageviewer/imageviewer.py
@@ -1,51 +1,14 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from PySide6.QtPrintSupport import QPrintDialog, QPrinter
from PySide6.QtWidgets import (QApplication, QDialog, QFileDialog, QLabel,
- QMainWindow, QMenuBar, QMessageBox, QScrollArea,
- QScrollBar, QSizePolicy, QStatusBar)
-from PySide6.QtGui import (QAction, QClipboard, QColorSpace, QGuiApplication,
- QImage, QImageReader, QImageWriter, QKeySequence,
- QPalette, QPainter, QPixmap, QScreen)
-from PySide6.QtCore import QDir, QMimeData, QStandardPaths, Qt, Slot
+ QMainWindow, QMessageBox, QScrollArea,
+ QSizePolicy)
+from PySide6.QtGui import (QColorSpace, QGuiApplication,
+ QImageReader, QImageWriter, QKeySequence,
+ QPalette, QPainter, QPixmap)
+from PySide6.QtCore import QDir, QStandardPaths, Qt, Slot
ABOUT = """<p>The <b>Image Viewer</b> example shows how to combine QLabel
@@ -71,7 +34,7 @@ class ImageViewer(QMainWindow):
self._image_label = QLabel()
self._image_label.setBackgroundRole(QPalette.Base)
self._image_label.setSizePolicy(QSizePolicy.Ignored,
- QSizePolicy.Ignored)
+ QSizePolicy.Ignored)
self._image_label.setScaledContents(True)
self._scroll_area = QScrollArea()
@@ -155,15 +118,14 @@ class ImageViewer(QMainWindow):
printer = QPrinter()
dialog = QPrintDialog(printer, self)
if dialog.exec() == QDialog.Accepted:
- painter = QPainter(printer)
- pixmap = self._image_label.pixmap()
- rect = painter.viewport()
- size = pixmap.size()
- size.scale(rect.size(), Qt.KeepAspectRatio)
- painter.setViewport(rect.x(), rect.y(), size.width(), size.height())
- painter.setWindow(pixmap.rect())
- painter.drawPixmap(0, 0, pixmap)
- painter.end()
+ with QPainter(printer) as painter:
+ pixmap = self._image_label.pixmap()
+ rect = painter.viewport()
+ size = pixmap.size()
+ size.scale(rect.size(), Qt.KeepAspectRatio)
+ painter.setViewport(rect.x(), rect.y(), size.width(), size.height())
+ painter.setWindow(pixmap.rect())
+ painter.drawPixmap(0, 0, pixmap)
@Slot()
def _copy(self):
diff --git a/examples/widgets/imageviewer/main.py b/examples/widgets/imageviewer/main.py
index 39db14e69..949def62e 100644
--- a/examples/widgets/imageviewer/main.py
+++ b/examples/widgets/imageviewer/main.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the widgets/imageviewer example from Qt v6.0"""
diff --git a/examples/widgets/itemviews/address_book/adddialogwidget.py b/examples/widgets/itemviews/address_book/adddialogwidget.py
index 1462711a8..ecb853e80 100644
--- a/examples/widgets/itemviews/address_book/adddialogwidget.py
+++ b/examples/widgets/itemviews/address_book/adddialogwidget.py
@@ -1,44 +1,6 @@
-
-#############################################################################
-##
-## Copyright (C) 2011 Arun Srinivasan <rulfzid@gmail.com>
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2011 Arun Srinivasan <rulfzid@gmail.com>
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from PySide6.QtCore import Qt
from PySide6.QtWidgets import (QDialog, QLabel, QTextEdit, QLineEdit,
@@ -53,8 +15,8 @@ class AddDialogWidget(QDialog):
name_label = QLabel("Name")
address_label = QLabel("Address")
- button_box = QDialogButtonBox(QDialogButtonBox.Ok |
- QDialogButtonBox.Cancel)
+ button_box = QDialogButtonBox(QDialogButtonBox.Ok
+ | QDialogButtonBox.Cancel)
self._name_text = QLineEdit()
self._address_text = QTextEdit()
diff --git a/examples/widgets/itemviews/address_book/address_book.py b/examples/widgets/itemviews/address_book/address_book.py
index 89518f63e..af0cf3dee 100644
--- a/examples/widgets/itemviews/address_book/address_book.py
+++ b/examples/widgets/itemviews/address_book/address_book.py
@@ -1,45 +1,8 @@
+# Copyright (C) 2011 Arun Srinivasan <rulfzid@gmail.com>
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-#############################################################################
-##
-## Copyright (C) 2011 Arun Srinivasan <rulfzid@gmail.com>
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
+from PySide6.QtCore import Slot
from PySide6.QtGui import QAction
from PySide6.QtWidgets import (QMainWindow, QFileDialog, QApplication)
@@ -62,16 +25,19 @@ class MainWindow(QMainWindow):
tool_menu = self.menuBar().addMenu("&Tools")
# Populate the File menu
- open_action = self.create_action("&Open...", file_menu, self.open_file)
- save_action = self.create_action("&Save As...", file_menu, self.save_file)
+ self.open_action = self.create_action("&Open...", file_menu, self.open_file)
+ self.save_action = self.create_action("&Save As...", file_menu, self.save_file)
file_menu.addSeparator()
- exit_action = self.create_action("E&xit", file_menu, self.close)
+ self.exit_action = self.create_action("E&xit", file_menu, self.close)
# Populate the Tools menu
- add_action = self.create_action("&Add Entry...", tool_menu, self._address_widget.add_entry)
- self._edit_action = self.create_action("&Edit Entry...", tool_menu, self._address_widget.edit_entry)
+ self.add_action = self.create_action(
+ "&Add Entry...", tool_menu, self._address_widget.add_entry)
+ self._edit_action = self.create_action(
+ "&Edit Entry...", tool_menu, self._address_widget.edit_entry)
tool_menu.addSeparator()
- self._remove_action = self.create_action("&Remove Entry", tool_menu, self._address_widget.remove_entry)
+ self._remove_action = self.create_action(
+ "&Remove Entry", tool_menu, self._address_widget.remove_entry)
# Disable the edit and remove menu items initially, as there are
# no items yet.
@@ -98,11 +64,13 @@ class MainWindow(QMainWindow):
#
# In PySide6, these functions return a tuple: (filename, filter)
+ @Slot()
def open_file(self):
filename, _ = QFileDialog.getOpenFileName(self)
if filename:
self._address_widget.read_from_file(filename)
+ @Slot()
def save_file(self):
filename, _ = QFileDialog.getSaveFileName(self)
if filename:
diff --git a/examples/widgets/itemviews/address_book/addresswidget.py b/examples/widgets/itemviews/address_book/addresswidget.py
index f0778d19f..cb2f46ea1 100644
--- a/examples/widgets/itemviews/address_book/addresswidget.py
+++ b/examples/widgets/itemviews/address_book/addresswidget.py
@@ -1,51 +1,13 @@
-
-#############################################################################
-##
-## Copyright (C) 2011 Arun Srinivasan <rulfzid@gmail.com>
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2011 Arun Srinivasan <rulfzid@gmail.com>
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
try:
import cpickle as pickle
except ImportError:
import pickle
-from PySide6.QtCore import (Qt, Signal, QRegularExpression, QModelIndex,
+from PySide6.QtCore import (Qt, Signal, Slot, QRegularExpression, QModelIndex,
QItemSelection, QSortFilterProxyModel)
from PySide6.QtWidgets import QTabWidget, QMessageBox, QTableView, QAbstractItemView
@@ -73,6 +35,7 @@ class AddressWidget(QTabWidget):
self.setup_tabs()
+ @Slot()
def add_entry(self, name=None, address=None):
""" Add an entry to the addressbook. """
if name is None and address is None:
@@ -121,6 +84,7 @@ class AddressWidget(QTabWidget):
table_view = self.currentWidget()
table_view.resizeRowToContents(ix.row())
+ @Slot()
def edit_entry(self):
""" Edit an entry in the addressbook. """
table_view = self.currentWidget()
@@ -153,6 +117,7 @@ class AddressWidget(QTabWidget):
ix = self._table_model.index(row, 1, QModelIndex())
self._table_model.setData(ix, new_address, Qt.EditRole)
+ @Slot()
def remove_entry(self):
""" Remove an entry from the addressbook. """
table_view = self.currentWidget()
@@ -201,8 +166,9 @@ class AddressWidget(QTabWidget):
proxy_model.setFilterKeyColumn(0) # Filter on the "name" column
proxy_model.sort(0, Qt.AscendingOrder)
- # This prevents an application crash (see: http://www.qtcentre.org/threads/58874-QListView-SelectionModel-selectionChanged-Crash)
- viewselectionmodel = table_view.selectionModel()
+ # This prevents an application crash (see:
+ # https://www.qtcentre.org/threads/58874-QListView-SelectionModel-selectionChanged-Crash) # noqa: E501
+ self.viewselectionmodel = table_view.selectionModel()
table_view.selectionModel().selectionChanged.connect(self.selection_changed)
self.addTab(table_view, group)
diff --git a/examples/widgets/itemviews/address_book/newaddresstab.py b/examples/widgets/itemviews/address_book/newaddresstab.py
index 407c48aec..d3d037ad4 100644
--- a/examples/widgets/itemviews/address_book/newaddresstab.py
+++ b/examples/widgets/itemviews/address_book/newaddresstab.py
@@ -1,44 +1,6 @@
-
-#############################################################################
-##
-## Copyright (C) 2011 Arun Srinivasan <rulfzid@gmail.com>
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2011 Arun Srinivasan <rulfzid@gmail.com>
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from PySide6.QtCore import (Qt, Signal)
from PySide6.QtWidgets import (QWidget, QLabel, QPushButton, QVBoxLayout)
diff --git a/examples/widgets/itemviews/address_book/tablemodel.py b/examples/widgets/itemviews/address_book/tablemodel.py
index fc1a65e1c..3c1dbd4cc 100644
--- a/examples/widgets/itemviews/address_book/tablemodel.py
+++ b/examples/widgets/itemviews/address_book/tablemodel.py
@@ -1,44 +1,6 @@
-
-#############################################################################
-##
-## Copyright (C) 2011 Arun Srinivasan <rulfzid@gmail.com>
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2011 Arun Srinivasan <rulfzid@gmail.com>
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from PySide6.QtCore import (Qt, QAbstractTableModel, QModelIndex)
@@ -143,5 +105,5 @@ class TableModel(QAbstractTableModel):
"""
if not index.isValid():
return Qt.ItemIsEnabled
- return Qt.ItemFlags(QAbstractTableModel.flags(self, index) |
- Qt.ItemIsEditable)
+ return Qt.ItemFlags(QAbstractTableModel.flags(self, index)
+ | Qt.ItemIsEditable)
diff --git a/examples/widgets/itemviews/basicfiltermodel/basicsortfiltermodel.py b/examples/widgets/itemviews/basicfiltermodel/basicsortfiltermodel.py
index 93f2fe8ce..a30b0abdf 100644
--- a/examples/widgets/itemviews/basicfiltermodel/basicsortfiltermodel.py
+++ b/examples/widgets/itemviews/basicfiltermodel/basicsortfiltermodel.py
@@ -1,48 +1,10 @@
-
-#############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
from PySide6.QtCore import (QDate, QDateTime, QRegularExpression,
- QSortFilterProxyModel, QTime, Qt)
+ QSortFilterProxyModel, QTime, Qt, Slot)
from PySide6.QtGui import QStandardItemModel
from PySide6.QtWidgets import (QApplication, QCheckBox, QComboBox, QGridLayout,
QGroupBox, QHBoxLayout, QLabel, QLineEdit,
@@ -84,11 +46,11 @@ class Window(QWidget):
self._filter_syntax_combo_box = QComboBox()
self._filter_syntax_combo_box.addItem("Regular expression",
- REGULAR_EXPRESSION)
+ REGULAR_EXPRESSION)
self._filter_syntax_combo_box.addItem("Wildcard",
- WILDCARD)
+ WILDCARD)
self._filter_syntax_combo_box.addItem("Fixed string",
- FIXED_STRING)
+ FIXED_STRING)
self._filter_syntax_label = QLabel("Filter &syntax:")
self._filter_syntax_label.setBuddy(self._filter_syntax_combo_box)
@@ -140,6 +102,7 @@ class Window(QWidget):
self._proxy_model.setSourceModel(model)
self._source_view.setModel(model)
+ @Slot()
def filter_reg_exp_changed(self):
syntax_nr = self._filter_syntax_combo_box.currentData()
pattern = self._filter_pattern_line_edit.text()
@@ -155,9 +118,11 @@ class Window(QWidget):
reg_exp.setPatternOptions(options)
self._proxy_model.setFilterRegularExpression(reg_exp)
+ @Slot()
def filter_column_changed(self):
self._proxy_model.setFilterKeyColumn(self._filter_column_combo_box.currentIndex())
+ @Slot()
def sort_changed(self):
if self._sort_case_sensitivity_check_box.isChecked():
case_sensitivity = Qt.CaseSensitive
@@ -182,25 +147,25 @@ def create_mail_model(parent):
model.setHeaderData(2, Qt.Horizontal, "Date")
add_mail(model, "Happy New Year!", "Grace K. <grace@software-inc.com>",
- QDateTime(QDate(2006, 12, 31), QTime(17, 3)))
+ QDateTime(QDate(2006, 12, 31), QTime(17, 3)))
add_mail(model, "Radically new concept", "Grace K. <grace@software-inc.com>",
- QDateTime(QDate(2006, 12, 22), QTime(9, 44)))
+ QDateTime(QDate(2006, 12, 22), QTime(9, 44)))
add_mail(model, "Accounts", "pascale@nospam.com",
- QDateTime(QDate(2006, 12, 31), QTime(12, 50)))
+ QDateTime(QDate(2006, 12, 31), QTime(12, 50)))
add_mail(model, "Expenses", "Joe Bloggs <joe@bloggs.com>",
- QDateTime(QDate(2006, 12, 25), QTime(11, 39)))
+ QDateTime(QDate(2006, 12, 25), QTime(11, 39)))
add_mail(model, "Re: Expenses", "Andy <andy@nospam.com>",
- QDateTime(QDate(2007, 1, 2), QTime(16, 5)))
+ QDateTime(QDate(2007, 1, 2), QTime(16, 5)))
add_mail(model, "Re: Accounts", "Joe Bloggs <joe@bloggs.com>",
- QDateTime(QDate(2007, 1, 3), QTime(14, 18)))
+ QDateTime(QDate(2007, 1, 3), QTime(14, 18)))
add_mail(model, "Re: Accounts", "Andy <andy@nospam.com>",
- QDateTime(QDate(2007, 1, 3), QTime(14, 26)))
+ QDateTime(QDate(2007, 1, 3), QTime(14, 26)))
add_mail(model, "Sports", "Linda Smith <linda.smith@nospam.com>",
- QDateTime(QDate(2007, 1, 5), QTime(11, 33)))
+ QDateTime(QDate(2007, 1, 5), QTime(11, 33)))
add_mail(model, "AW: Sports", "Rolf Newschweinstein <rolfn@nospam.com>",
- QDateTime(QDate(2007, 1, 5), QTime(12, 0)))
+ QDateTime(QDate(2007, 1, 5), QTime(12, 0)))
add_mail(model, "RE: Sports", "Petra Schmidt <petras@nospam.com>",
- QDateTime(QDate(2007, 1, 5), QTime(12, 1)))
+ QDateTime(QDate(2007, 1, 5), QTime(12, 1)))
return model
diff --git a/examples/widgets/itemviews/dirview/dirview.py b/examples/widgets/itemviews/dirview/dirview.py
new file mode 100644
index 000000000..d1be6958e
--- /dev/null
+++ b/examples/widgets/itemviews/dirview/dirview.py
@@ -0,0 +1,59 @@
+# Copyright (C) 2020 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+from argparse import ArgumentParser, RawTextHelpFormatter
+
+from PySide6.QtWidgets import (QApplication, QFileSystemModel,
+ QFileIconProvider, QScroller, QTreeView)
+from PySide6.QtCore import QDir
+
+"""PySide6 port of the widgets/itemviews/dirview example from Qt v6.x"""
+
+
+if __name__ == "__main__":
+ app = QApplication(sys.argv)
+
+ name = "Dir View"
+ argument_parser = ArgumentParser(description=name,
+ formatter_class=RawTextHelpFormatter)
+ argument_parser.add_argument("--no-custom", "-c", action="store_true",
+ help="Set QFileSystemModel.DontUseCustomDirectoryIcons")
+ argument_parser.add_argument("--no-watch", "-w", action="store_true",
+ help="Set QFileSystemModel.DontWatch")
+ argument_parser.add_argument("directory",
+ help="The directory to start in.",
+ nargs='?', type=str)
+ options = argument_parser.parse_args()
+ root_path = options.directory
+
+ model = QFileSystemModel()
+ icon_provider = QFileIconProvider()
+ model.setIconProvider(icon_provider)
+ model.setRootPath("")
+ if options.no_custom:
+ model.setOption(QFileSystemModel.DontUseCustomDirectoryIcons)
+ if options.no_watch:
+ model.setOption(QFileSystemModel.DontWatchForChanges)
+ tree = QTreeView()
+ tree.setModel(model)
+ if root_path:
+ root_index = model.index(QDir.cleanPath(root_path))
+ if root_index.isValid():
+ tree.setRootIndex(root_index)
+
+ # Demonstrating look and feel features
+ tree.setAnimated(False)
+ tree.setIndentation(20)
+ tree.setSortingEnabled(True)
+ availableSize = tree.screen().availableGeometry().size()
+ tree.resize(availableSize / 2)
+ tree.setColumnWidth(0, tree.width() / 3)
+
+ # Make it flickable on touchscreens
+ QScroller.grabGesture(tree, QScroller.ScrollerGestureType.TouchGesture)
+
+ tree.setWindowTitle(name)
+ tree.show()
+
+ sys.exit(app.exec())
diff --git a/examples/widgets/itemviews/dirview/dirview.pyproject b/examples/widgets/itemviews/dirview/dirview.pyproject
new file mode 100644
index 000000000..9470083c9
--- /dev/null
+++ b/examples/widgets/itemviews/dirview/dirview.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["dirview.py"]
+}
diff --git a/examples/widgets/itemviews/dirview/doc/dirview.rst b/examples/widgets/itemviews/dirview/doc/dirview.rst
new file mode 100644
index 000000000..7044fdf58
--- /dev/null
+++ b/examples/widgets/itemviews/dirview/doc/dirview.rst
@@ -0,0 +1,5 @@
+Dir View Example
+================
+
+The Dir View example shows a tree view of the local file system. It uses the
+QFileSystemModel class to provide file and directory information.
diff --git a/examples/widgets/itemviews/editabletreemodel/default.txt b/examples/widgets/itemviews/editabletreemodel/default.txt
new file mode 100644
index 000000000..98746548b
--- /dev/null
+++ b/examples/widgets/itemviews/editabletreemodel/default.txt
@@ -0,0 +1,40 @@
+Getting Started How to familiarize yourself with Qt Designer
+ Launching Designer Running the Qt Designer application
+ The User Interface How to interact with Qt Designer
+
+Designing a Component Creating a GUI for your application
+ Creating a Dialog How to create a dialog
+ Composing the Dialog Putting widgets into the dialog example
+ Creating a Layout Arranging widgets on a form
+ Signal and Slot Connections Making widget communicate with each other
+
+Using a Component in Your Application Generating code from forms
+ The Direct Approach Using a form without any adjustments
+ The Single Inheritance Approach Subclassing a form's base class
+ The Multiple Inheritance Approach Subclassing the form itself
+ Automatic Connections Connecting widgets using a naming scheme
+ A Dialog Without Auto-Connect How to connect widgets without a naming scheme
+ A Dialog With Auto-Connect Using automatic connections
+
+Form Editing Mode How to edit a form in Qt Designer
+ Managing Forms Loading and saving forms
+ Editing a Form Basic editing techniques
+ The Property Editor Changing widget properties
+ The Object Inspector Examining the hierarchy of objects on a form
+ Layouts Objects that arrange widgets on a form
+ Applying and Breaking Layouts Managing widgets in layouts
+ Horizontal and Vertical Layouts Standard row and column layouts
+ The Grid Layout Arranging widgets in a matrix
+ Previewing Forms Checking that the design works
+
+Using Containers How to group widgets together
+ General Features Common container features
+ Frames QFrame
+ Group Boxes QGroupBox
+ Stacked Widgets QStackedWidget
+ Tab Widgets QTabWidget
+ Toolbox Widgets QToolBox
+
+Connection Editing Mode Connecting widgets together with signals and slots
+ Connecting Objects Making connections in Qt Designer
+ Editing Connections Changing existing connections
diff --git a/examples/widgets/itemviews/editabletreemodel/doc/editabletreemodel.png b/examples/widgets/itemviews/editabletreemodel/doc/editabletreemodel.png
new file mode 100644
index 000000000..b50c792aa
--- /dev/null
+++ b/examples/widgets/itemviews/editabletreemodel/doc/editabletreemodel.png
Binary files differ
diff --git a/examples/widgets/itemviews/editabletreemodel/doc/editabletreemodel.rst b/examples/widgets/itemviews/editabletreemodel/doc/editabletreemodel.rst
new file mode 100644
index 000000000..c936972a0
--- /dev/null
+++ b/examples/widgets/itemviews/editabletreemodel/doc/editabletreemodel.rst
@@ -0,0 +1,10 @@
+Editable Tree Model Example
+===========================
+
+A Python application that demonstrates the analogous example in C++
+`Editable Tree Model Example <https://doc.qt.io/qt-6/qtwidgets-itemviews-editabletreemodel-example.html>`_
+
+.. image:: editabletreemodel.png
+ :width: 611
+ :alt: editabletreemodel screenshot
+
diff --git a/examples/widgets/itemviews/editabletreemodel/editabletreemodel.pyproject b/examples/widgets/itemviews/editabletreemodel/editabletreemodel.pyproject
new file mode 100644
index 000000000..1e67c727b
--- /dev/null
+++ b/examples/widgets/itemviews/editabletreemodel/editabletreemodel.pyproject
@@ -0,0 +1,7 @@
+{
+ "files": ["main.py",
+ "mainwindow.py",
+ "treeitem.py",
+ "treemodel.py",
+ "default.txt"]
+}
diff --git a/examples/widgets/itemviews/editabletreemodel/main.py b/examples/widgets/itemviews/editabletreemodel/main.py
new file mode 100644
index 000000000..491baa68d
--- /dev/null
+++ b/examples/widgets/itemviews/editabletreemodel/main.py
@@ -0,0 +1,14 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+
+import sys
+from PySide6.QtWidgets import QApplication
+from mainwindow import MainWindow
+
+
+if __name__ == '__main__':
+ app = QApplication(sys.argv)
+ window = MainWindow()
+ window.show()
+ sys.exit(app.exec())
diff --git a/examples/widgets/itemviews/editabletreemodel/mainwindow.py b/examples/widgets/itemviews/editabletreemodel/mainwindow.py
new file mode 100644
index 000000000..1489bf28b
--- /dev/null
+++ b/examples/widgets/itemviews/editabletreemodel/mainwindow.py
@@ -0,0 +1,163 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+from pathlib import Path
+
+from PySide6.QtCore import (QAbstractItemModel, QItemSelectionModel,
+ QModelIndex, Qt, Slot)
+from PySide6.QtWidgets import (QAbstractItemView, QMainWindow, QTreeView,
+ QWidget)
+from PySide6.QtTest import QAbstractItemModelTester
+
+from treemodel import TreeModel
+
+
+class MainWindow(QMainWindow):
+ def __init__(self, parent: QWidget = None):
+ super().__init__(parent)
+ self.resize(573, 468)
+
+ self.view = QTreeView()
+ self.view.setAlternatingRowColors(True)
+ self.view.setSelectionBehavior(QAbstractItemView.SelectItems)
+ self.view.setHorizontalScrollMode(QAbstractItemView.ScrollPerPixel)
+ self.view.setAnimated(False)
+ self.view.setAllColumnsShowFocus(True)
+ self.setCentralWidget(self.view)
+
+ menubar = self.menuBar()
+ file_menu = menubar.addMenu("&File")
+ self.exit_action = file_menu.addAction("E&xit")
+ self.exit_action.setShortcut("Ctrl+Q")
+ self.exit_action.triggered.connect(self.close)
+
+ actions_menu = menubar.addMenu("&Actions")
+ actions_menu.triggered.connect(self.update_actions)
+ self.insert_row_action = actions_menu.addAction("Insert Row")
+ self.insert_row_action.setShortcut("Ctrl+I, R")
+ self.insert_row_action.triggered.connect(self.insert_row)
+ self.insert_column_action = actions_menu.addAction("Insert Column")
+ self.insert_column_action.setShortcut("Ctrl+I, C")
+ self.insert_column_action.triggered.connect(self.insert_column)
+ actions_menu.addSeparator()
+ self.remove_row_action = actions_menu.addAction("Remove Row")
+ self.remove_row_action.setShortcut("Ctrl+R, R")
+ self.remove_row_action.triggered.connect(self.remove_row)
+ self.remove_column_action = actions_menu.addAction("Remove Column")
+ self.remove_column_action.setShortcut("Ctrl+R, C")
+ self.remove_column_action.triggered.connect(self.remove_column)
+ actions_menu.addSeparator()
+ self.insert_child_action = actions_menu.addAction("Insert Child")
+ self.insert_child_action.setShortcut("Ctrl+N")
+ self.insert_child_action.triggered.connect(self.insert_child)
+ help_menu = menubar.addMenu("&Help")
+ about_qt_action = help_menu.addAction("About Qt", qApp.aboutQt) # noqa: F821
+ about_qt_action.setShortcut("F1")
+
+ self.setWindowTitle("Editable Tree Model")
+
+ headers = ["Title", "Description"]
+
+ file = Path(__file__).parent / "default.txt"
+ self.model = TreeModel(headers, file.read_text(), self)
+
+ if "-t" in sys.argv:
+ QAbstractItemModelTester(self.model, self)
+ self.view.setModel(self.model)
+ self.view.expandAll()
+
+ for column in range(self.model.columnCount()):
+ self.view.resizeColumnToContents(column)
+
+ selection_model = self.view.selectionModel()
+ selection_model.selectionChanged.connect(self.update_actions)
+
+ self.update_actions()
+
+ @Slot()
+ def insert_child(self) -> None:
+ selection_model = self.view.selectionModel()
+ index: QModelIndex = selection_model.currentIndex()
+ model: QAbstractItemModel = self.view.model()
+
+ if model.columnCount(index) == 0:
+ if not model.insertColumn(0, index):
+ return
+
+ if not model.insertRow(0, index):
+ return
+
+ for column in range(model.columnCount(index)):
+ child: QModelIndex = model.index(0, column, index)
+ model.setData(child, "[No data]", Qt.EditRole)
+ if not model.headerData(column, Qt.Horizontal):
+ model.setHeaderData(column, Qt.Horizontal, "[No header]",
+ Qt.EditRole)
+
+ selection_model.setCurrentIndex(
+ model.index(0, 0, index), QItemSelectionModel.ClearAndSelect
+ )
+ self.update_actions()
+
+ @Slot()
+ def insert_column(self) -> None:
+ model: QAbstractItemModel = self.view.model()
+ column: int = self.view.selectionModel().currentIndex().column()
+
+ changed: bool = model.insertColumn(column + 1)
+ if changed:
+ model.setHeaderData(column + 1, Qt.Horizontal, "[No header]",
+ Qt.EditRole)
+
+ self.update_actions()
+
+ @Slot()
+ def insert_row(self) -> None:
+ index: QModelIndex = self.view.selectionModel().currentIndex()
+ model: QAbstractItemModel = self.view.model()
+ parent: QModelIndex = index.parent()
+
+ if not model.insertRow(index.row() + 1, parent):
+ return
+
+ self.update_actions()
+
+ for column in range(model.columnCount(parent)):
+ child: QModelIndex = model.index(index.row() + 1, column, parent)
+ model.setData(child, "[No data]", Qt.EditRole)
+
+ @Slot()
+ def remove_column(self) -> None:
+ model: QAbstractItemModel = self.view.model()
+ column: int = self.view.selectionModel().currentIndex().column()
+
+ if model.removeColumn(column):
+ self.update_actions()
+
+ @Slot()
+ def remove_row(self) -> None:
+ index: QModelIndex = self.view.selectionModel().currentIndex()
+ model: QAbstractItemModel = self.view.model()
+
+ if model.removeRow(index.row(), index.parent()):
+ self.update_actions()
+
+ @Slot()
+ def update_actions(self) -> None:
+ selection_model = self.view.selectionModel()
+ has_selection: bool = not selection_model.selection().isEmpty()
+ self.remove_row_action.setEnabled(has_selection)
+ self.remove_column_action.setEnabled(has_selection)
+
+ current_index = selection_model.currentIndex()
+ has_current: bool = current_index.isValid()
+ self.insert_row_action.setEnabled(has_current)
+ self.insert_column_action.setEnabled(has_current)
+
+ if has_current:
+ self.view.closePersistentEditor(current_index)
+ msg = f"Position: ({current_index.row()},{current_index.column()})"
+ if not current_index.parent().isValid():
+ msg += " in top level"
+ self.statusBar().showMessage(msg)
diff --git a/examples/widgets/itemviews/editabletreemodel/treeitem.py b/examples/widgets/itemviews/editabletreemodel/treeitem.py
new file mode 100644
index 000000000..1a25b0774
--- /dev/null
+++ b/examples/widgets/itemviews/editabletreemodel/treeitem.py
@@ -0,0 +1,94 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+
+class TreeItem:
+ def __init__(self, data: list, parent: 'TreeItem' = None):
+ self.item_data = data
+ self.parent_item = parent
+ self.child_items = []
+
+ def child(self, number: int) -> 'TreeItem':
+ if number < 0 or number >= len(self.child_items):
+ return None
+ return self.child_items[number]
+
+ def last_child(self):
+ return self.child_items[-1] if self.child_items else None
+
+ def child_count(self) -> int:
+ return len(self.child_items)
+
+ def child_number(self) -> int:
+ if self.parent_item:
+ return self.parent_item.child_items.index(self)
+ return 0
+
+ def column_count(self) -> int:
+ return len(self.item_data)
+
+ def data(self, column: int):
+ if column < 0 or column >= len(self.item_data):
+ return None
+ return self.item_data[column]
+
+ def insert_children(self, position: int, count: int, columns: int) -> bool:
+ if position < 0 or position > len(self.child_items):
+ return False
+
+ for row in range(count):
+ data = [None] * columns
+ item = TreeItem(data.copy(), self)
+ self.child_items.insert(position, item)
+
+ return True
+
+ def insert_columns(self, position: int, columns: int) -> bool:
+ if position < 0 or position > len(self.item_data):
+ return False
+
+ for column in range(columns):
+ self.item_data.insert(position, None)
+
+ for child in self.child_items:
+ child.insert_columns(position, columns)
+
+ return True
+
+ def parent(self):
+ return self.parent_item
+
+ def remove_children(self, position: int, count: int) -> bool:
+ if position < 0 or position + count > len(self.child_items):
+ return False
+
+ for row in range(count):
+ self.child_items.pop(position)
+
+ return True
+
+ def remove_columns(self, position: int, columns: int) -> bool:
+ if position < 0 or position + columns > len(self.item_data):
+ return False
+
+ for column in range(columns):
+ self.item_data.pop(position)
+
+ for child in self.child_items:
+ child.remove_columns(position, columns)
+
+ return True
+
+ def set_data(self, column: int, value):
+ if column < 0 or column >= len(self.item_data):
+ return False
+
+ self.item_data[column] = value
+ return True
+
+ def __repr__(self) -> str:
+ result = f"<treeitem.TreeItem at 0x{id(self):x}"
+ for d in self.item_data:
+ result += f' "{d}"' if d else " <None>"
+ result += f", {len(self.child_items)} children>"
+ return result
diff --git a/examples/widgets/itemviews/editabletreemodel/treemodel.py b/examples/widgets/itemviews/editabletreemodel/treemodel.py
new file mode 100644
index 000000000..a58572fca
--- /dev/null
+++ b/examples/widgets/itemviews/editabletreemodel/treemodel.py
@@ -0,0 +1,199 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+
+from PySide6.QtCore import QModelIndex, Qt, QAbstractItemModel
+from treeitem import TreeItem
+
+
+class TreeModel(QAbstractItemModel):
+
+ def __init__(self, headers: list, data: str, parent=None):
+ super().__init__(parent)
+
+ self.root_data = headers
+ self.root_item = TreeItem(self.root_data.copy())
+ self.setup_model_data(data.split("\n"), self.root_item)
+
+ def columnCount(self, parent: QModelIndex = None) -> int:
+ return self.root_item.column_count()
+
+ def data(self, index: QModelIndex, role: int = None):
+ if not index.isValid():
+ return None
+
+ if role != Qt.DisplayRole and role != Qt.EditRole:
+ return None
+
+ item: TreeItem = self.get_item(index)
+
+ return item.data(index.column())
+
+ def flags(self, index: QModelIndex) -> Qt.ItemFlags:
+ if not index.isValid():
+ return Qt.NoItemFlags
+
+ return Qt.ItemIsEditable | QAbstractItemModel.flags(self, index)
+
+ def get_item(self, index: QModelIndex = QModelIndex()) -> TreeItem:
+ if index.isValid():
+ item: TreeItem = index.internalPointer()
+ if item:
+ return item
+
+ return self.root_item
+
+ def headerData(self, section: int, orientation: Qt.Orientation,
+ role: int = Qt.DisplayRole):
+ if orientation == Qt.Horizontal and role == Qt.DisplayRole:
+ return self.root_item.data(section)
+
+ return None
+
+ def index(self, row: int, column: int, parent: QModelIndex = QModelIndex()) -> QModelIndex:
+ if parent.isValid() and parent.column() != 0:
+ return QModelIndex()
+
+ parent_item: TreeItem = self.get_item(parent)
+ if not parent_item:
+ return QModelIndex()
+
+ child_item: TreeItem = parent_item.child(row)
+ if child_item:
+ return self.createIndex(row, column, child_item)
+ return QModelIndex()
+
+ def insertColumns(self, position: int, columns: int,
+ parent: QModelIndex = QModelIndex()) -> bool:
+ self.beginInsertColumns(parent, position, position + columns - 1)
+ success: bool = self.root_item.insert_columns(position, columns)
+ self.endInsertColumns()
+
+ return success
+
+ def insertRows(self, position: int, rows: int,
+ parent: QModelIndex = QModelIndex()) -> bool:
+ parent_item: TreeItem = self.get_item(parent)
+ if not parent_item:
+ return False
+
+ self.beginInsertRows(parent, position, position + rows - 1)
+ column_count = self.root_item.column_count()
+ success: bool = parent_item.insert_children(position, rows, column_count)
+ self.endInsertRows()
+
+ return success
+
+ def parent(self, index: QModelIndex = QModelIndex()) -> QModelIndex:
+ if not index.isValid():
+ return QModelIndex()
+
+ child_item: TreeItem = self.get_item(index)
+ if child_item:
+ parent_item: TreeItem = child_item.parent()
+ else:
+ parent_item = None
+
+ if parent_item == self.root_item or not parent_item:
+ return QModelIndex()
+
+ return self.createIndex(parent_item.child_number(), 0, parent_item)
+
+ def removeColumns(self, position: int, columns: int,
+ parent: QModelIndex = QModelIndex()) -> bool:
+ self.beginRemoveColumns(parent, position, position + columns - 1)
+ success: bool = self.root_item.remove_columns(position, columns)
+ self.endRemoveColumns()
+
+ if self.root_item.column_count() == 0:
+ self.removeRows(0, self.rowCount())
+
+ return success
+
+ def removeRows(self, position: int, rows: int,
+ parent: QModelIndex = QModelIndex()) -> bool:
+ parent_item: TreeItem = self.get_item(parent)
+ if not parent_item:
+ return False
+
+ self.beginRemoveRows(parent, position, position + rows - 1)
+ success: bool = parent_item.remove_children(position, rows)
+ self.endRemoveRows()
+
+ return success
+
+ def rowCount(self, parent: QModelIndex = QModelIndex()) -> int:
+ if parent.isValid() and parent.column() > 0:
+ return 0
+
+ parent_item: TreeItem = self.get_item(parent)
+ if not parent_item:
+ return 0
+ return parent_item.child_count()
+
+ def setData(self, index: QModelIndex, value, role: int) -> bool:
+ if role != Qt.EditRole:
+ return False
+
+ item: TreeItem = self.get_item(index)
+ result: bool = item.set_data(index.column(), value)
+
+ if result:
+ self.dataChanged.emit(index, index, [Qt.DisplayRole, Qt.EditRole])
+
+ return result
+
+ def setHeaderData(self, section: int, orientation: Qt.Orientation, value,
+ role: int = None) -> bool:
+ if role != Qt.EditRole or orientation != Qt.Horizontal:
+ return False
+
+ result: bool = self.root_item.set_data(section, value)
+
+ if result:
+ self.headerDataChanged.emit(orientation, section, section)
+
+ return result
+
+ def setup_model_data(self, lines: list, parent: TreeItem):
+ parents = [parent]
+ indentations = [0]
+
+ for line in lines:
+ line = line.rstrip()
+ if line and "\t" in line:
+
+ position = 0
+ while position < len(line):
+ if line[position] != " ":
+ break
+ position += 1
+
+ column_data = line[position:].split("\t")
+ column_data = [string for string in column_data if string]
+
+ if position > indentations[-1]:
+ if parents[-1].child_count() > 0:
+ parents.append(parents[-1].last_child())
+ indentations.append(position)
+ else:
+ while position < indentations[-1] and parents:
+ parents.pop()
+ indentations.pop()
+
+ parent: TreeItem = parents[-1]
+ col_count = self.root_item.column_count()
+ parent.insert_children(parent.child_count(), 1, col_count)
+
+ for column in range(len(column_data)):
+ child = parent.last_child()
+ child.set_data(column, column_data[column])
+
+ def _repr_recursion(self, item: TreeItem, indent: int = 0) -> str:
+ result = " " * indent + repr(item) + "\n"
+ for child in item.child_items:
+ result += self._repr_recursion(child, indent + 2)
+ return result
+
+ def __repr__(self) -> str:
+ return self._repr_recursion(self.root_item)
diff --git a/examples/widgets/itemviews/fetchmore/fetchmore.py b/examples/widgets/itemviews/fetchmore/fetchmore.py
index 92a2b97d4..5150250e0 100644
--- a/examples/widgets/itemviews/fetchmore/fetchmore.py
+++ b/examples/widgets/itemviews/fetchmore/fetchmore.py
@@ -1,45 +1,7 @@
-
-#############################################################################
-##
-## Copyright (C) 2009 Darryl Wallace, 2009 <wallacdj@gmail.com>
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2009 Darryl Wallace, 2009 <wallacdj@gmail.com>
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the itemviews/fetchmore/fetchmore example from Qt v6.x
@@ -49,9 +11,8 @@ down the list to see the model being populated on demand.
import sys
-from PySide6.QtCore import (QAbstractListModel, QDir, QFileInfo, QLibraryInfo,
+from PySide6.QtCore import (QAbstractListModel, QDir,
QModelIndex, Qt, Signal, Slot)
-from PySide6.QtGui import QPalette
from PySide6.QtWidgets import (QApplication, QFileIconProvider, QListView,
QPlainTextEdit, QSizePolicy, QVBoxLayout,
QWidget)
@@ -88,7 +49,7 @@ class FileListModel(QAbstractListModel):
if role == Qt.BackgroundRole:
batch = row // BATCH_SIZE
- palette = qApp.palette()
+ palette = qApp.palette() # noqa: F821
return palette.base() if batch % 2 == 0 else palette.alternateBase()
if role == Qt.DecorationRole:
@@ -151,7 +112,7 @@ class Window(QWidget):
self.setWindowTitle("Fetch More Example")
- @Slot(str, int, int)
+ @Slot(str, int, int, int)
def update_log(self, path, start, number, total):
native_path = QDir.toNativeSeparators(path)
last = start + number - 1
diff --git a/examples/widgets/itemviews/jsonmodel/jsonmodel.py b/examples/widgets/itemviews/jsonmodel/jsonmodel.py
index 432bc4b33..6e614c77f 100644
--- a/examples/widgets/itemviews/jsonmodel/jsonmodel.py
+++ b/examples/widgets/itemviews/jsonmodel/jsonmodel.py
@@ -1,46 +1,9 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import json
import sys
-from typing import Any, Iterable, List, Dict, Union
+from typing import Any, List, Dict, Union
from PySide6.QtWidgets import QTreeView, QApplication, QHeaderView
from PySide6.QtCore import QAbstractItemModel, QModelIndex, QObject, Qt, QFileInfo
@@ -219,10 +182,7 @@ class JsonModel(QAbstractItemModel):
item = index.internalPointer()
item.value = str(value)
- if __binding__ in ("PySide", "PyQt4"):
- self.dataChanged.emit(index, index)
- else:
- self.dataChanged.emit(index, index, [Qt.EditRole])
+ self.dataChanged.emit(index, index, [Qt.EditRole])
return True
diff --git a/examples/widgets/itemviews/spinboxdelegate/doc/spinboxdelegate.rst b/examples/widgets/itemviews/spinboxdelegate/doc/spinboxdelegate.rst
new file mode 100644
index 000000000..12e505207
--- /dev/null
+++ b/examples/widgets/itemviews/spinboxdelegate/doc/spinboxdelegate.rst
@@ -0,0 +1,5 @@
+SpinBox Delegate Example
+=========================
+
+A simple example that shows how a view can use a custom delegate to edit
+data obtained from a model.
diff --git a/examples/widgets/itemviews/spinboxdelegate/spinboxdelegate.py b/examples/widgets/itemviews/spinboxdelegate/spinboxdelegate.py
new file mode 100644
index 000000000..577f0faa5
--- /dev/null
+++ b/examples/widgets/itemviews/spinboxdelegate/spinboxdelegate.py
@@ -0,0 +1,79 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from PySide6.QtWidgets import (QApplication, QStyledItemDelegate, QSpinBox,
+ QTableView)
+from PySide6.QtGui import QStandardItemModel, Qt
+from PySide6.QtCore import QModelIndex
+
+"""PySide6 port of the widgets/itemviews/spinboxdelegate from Qt v6.x"""
+
+
+#! [0]
+class SpinBoxDelegate(QStyledItemDelegate):
+ """A delegate that allows the user to change integer values from the model
+ using a spin box widget. """
+
+#! [0]
+ def __init__(self, parent=None):
+ super().__init__(parent)
+#! [0]
+
+#! [1]
+ def createEditor(self, parent, option, index):
+ editor = QSpinBox(parent)
+ editor.setFrame(False)
+ editor.setMinimum(0)
+ editor.setMaximum(100)
+ return editor
+#! [1]
+
+#! [2]
+ def setEditorData(self, editor, index):
+ value = index.model().data(index, Qt.EditRole)
+ editor.setValue(value)
+#! [2]
+
+#! [3]
+ def setModelData(self, editor, model, index):
+ editor.interpretText()
+ value = editor.value()
+ model.setData(index, value, Qt.EditRole)
+#! [3]
+
+#! [4]
+ def updateEditorGeometry(self, editor, option, index):
+ editor.setGeometry(option.rect)
+#! [4]
+
+
+#! [main0]
+if __name__ == '__main__':
+ app = QApplication(sys.argv)
+
+ model = QStandardItemModel(4, 2)
+ tableView = QTableView()
+ tableView.setModel(model)
+
+ delegate = SpinBoxDelegate()
+ tableView.setItemDelegate(delegate)
+#! [main0]
+
+ tableView.horizontalHeader().setStretchLastSection(True)
+
+#! [main1]
+ for row in range(4):
+ for column in range(2):
+ index = model.index(row, column, QModelIndex())
+ value = (row + 1) * (column + 1)
+ model.setData(index, value)
+#! [main1] //# [main2]
+#! [main2]
+
+#! [main3]
+ tableView.setWindowTitle("Spin Box Delegate")
+ tableView.show()
+ sys.exit(app.exec())
+#! [main3]
diff --git a/examples/widgets/itemviews/spinboxdelegate/spinboxdelegate.pyproject b/examples/widgets/itemviews/spinboxdelegate/spinboxdelegate.pyproject
new file mode 100644
index 000000000..70616905c
--- /dev/null
+++ b/examples/widgets/itemviews/spinboxdelegate/spinboxdelegate.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["spinboxdelegate.py"]
+}
diff --git a/examples/widgets/itemviews/spreadsheet/doc/spreadsheet.png b/examples/widgets/itemviews/spreadsheet/doc/spreadsheet.png
new file mode 100644
index 000000000..ae7dde24b
--- /dev/null
+++ b/examples/widgets/itemviews/spreadsheet/doc/spreadsheet.png
Binary files differ
diff --git a/examples/widgets/itemviews/spreadsheet/doc/spreadsheet.rst b/examples/widgets/itemviews/spreadsheet/doc/spreadsheet.rst
new file mode 100644
index 000000000..c0839b232
--- /dev/null
+++ b/examples/widgets/itemviews/spreadsheet/doc/spreadsheet.rst
@@ -0,0 +1,10 @@
+Spreadsheet example
+===================
+
+The Spreadsheet example shows how a table view can be used to create a simple
+spreadsheet application. Custom delegates are used to render different types of
+data in distinctive colors.
+
+.. image:: spreadsheet.png
+ :width: 400
+ :alt: Spreadsheet screenshot
diff --git a/examples/widgets/itemviews/spreadsheet/main.py b/examples/widgets/itemviews/spreadsheet/main.py
new file mode 100644
index 000000000..0ecc5ec23
--- /dev/null
+++ b/examples/widgets/itemviews/spreadsheet/main.py
@@ -0,0 +1,19 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from PySide6.QtGui import QPixmap
+from PySide6.QtWidgets import QApplication, QLayout
+
+from spreadsheet import SpreadSheet
+
+if __name__ == "__main__":
+ app = QApplication()
+
+ sheet = SpreadSheet(10, 6)
+ sheet.setWindowIcon(QPixmap(":/images/interview.png"))
+ sheet.show()
+ sheet.layout().setSizeConstraint(QLayout.SetFixedSize)
+
+ sys.exit(app.exec())
diff --git a/examples/widgets/itemviews/spreadsheet/spreadsheet.py b/examples/widgets/itemviews/spreadsheet/spreadsheet.py
new file mode 100644
index 000000000..82ebe5ebb
--- /dev/null
+++ b/examples/widgets/itemviews/spreadsheet/spreadsheet.py
@@ -0,0 +1,544 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QPoint, Qt, QCoreApplication, Slot
+from PySide6.QtGui import QAction, QBrush, QPixmap, QColor, QPainter
+from PySide6.QtWidgets import (QColorDialog, QComboBox, QDialog, QFontDialog,
+ QGroupBox, QHBoxLayout, QMainWindow, QLabel,
+ QLineEdit, QMessageBox, QPushButton, QToolBar,
+ QTableWidgetItem, QTableWidget, QVBoxLayout, QWidget)
+
+from spreadsheetdelegate import SpreadSheetDelegate
+from spreadsheetitem import SpreadSheetItem
+
+from typing import Optional
+from numbers import Number
+
+
+class SpreadSheet(QMainWindow):
+ def __init__(self, rows: Number, cols: Number, parent: Optional[QWidget] = None) -> None:
+ super().__init__(parent)
+
+ self._tool_bar = QToolBar(self)
+ self._color_action = QAction()
+ self._font_action = QAction()
+ self._first_separator = QAction()
+ self._cell_sum_action = QAction()
+ self._cell_add_action = QAction()
+ self._cell_sub_action = QAction()
+ self._cell_mul_action = QAction()
+ self._cell_div_action = QAction()
+ self._second_separator = QAction()
+ self._clear_action = QAction()
+ self._about_spreadsheet = QAction()
+ self._exit_action = QAction()
+
+ # self._print_action = QAction()
+
+ self._cell_label = QLabel(self._tool_bar)
+ self._table = QTableWidget(rows, cols, self)
+ self._formula_input = QLineEdit(self)
+
+ self.addToolBar(self._tool_bar)
+
+ self._cell_label.setMinimumSize(80, 0)
+
+ self._tool_bar.addWidget(self._cell_label)
+ self._tool_bar.addWidget(self._formula_input)
+
+ self._table.setSizeAdjustPolicy(QTableWidget.SizeAdjustPolicy.AdjustToContents)
+ for c in range(cols):
+ character = chr(ord('A') + c)
+ self._table.setHorizontalHeaderItem(c, QTableWidgetItem(character))
+
+ self._table.setItemPrototype(self._table.item(rows - 1, cols - 1))
+ self._table.setItemDelegate(SpreadSheetDelegate())
+
+ self.create_actions()
+ self.update_color(None)
+ self.setup_menu_bar()
+ self.setup_contents()
+ self.setup_context_menu()
+ self.setCentralWidget(self._table)
+
+ self.statusBar()
+ self._table.currentItemChanged.connect(self.update_status)
+ self._table.currentItemChanged.connect(self.update_color)
+ self._table.currentItemChanged.connect(self.update_line_edit)
+ self._table.itemChanged.connect(self.update_status)
+ self._formula_input.returnPressed.connect(self.return_pressed)
+ self._table.itemChanged.connect(self.update_line_edit)
+
+ self.setWindowTitle("Spreadsheet")
+
+ def create_actions(self) -> None:
+ self._cell_sum_action = QAction("Sum", self)
+ self._cell_sum_action.triggered.connect(self.action_sum)
+
+ self._cell_add_action = QAction("&Add", self)
+ self._cell_add_action.setShortcut(Qt.CTRL | Qt.Key_Plus)
+ self._cell_add_action.triggered.connect(self.action_add)
+
+ self._cell_sub_action = QAction("&Subtract", self)
+ self._cell_sub_action.setShortcut(Qt.CTRL | Qt.Key_Minus)
+ self._cell_sub_action.triggered.connect(self.action_subtract)
+
+ self._cell_mul_action = QAction("&Multiply", self)
+ self._cell_mul_action.setShortcut(Qt.CTRL | Qt.Key_multiply)
+ self._cell_mul_action.triggered.connect(self.action_multiply)
+
+ self._cell_div_action = QAction("&Divide", self)
+ self._cell_div_action.setShortcut(Qt.CTRL | Qt.Key_division)
+ self._cell_div_action.triggered.connect(self.action_divide)
+
+ self._font_action = QAction("Font...", self)
+ self._font_action.setShortcut(Qt.CTRL | Qt.Key_F)
+ self._font_action.triggered.connect(self.select_font)
+
+ self._color_action = QAction(QPixmap(16, 16), "Background &Color...", self)
+ self._color_action.triggered.connect(self.select_color)
+
+ self._clear_action = QAction("Clear", self)
+ self._clear_action.setShortcut(Qt.Key_Delete)
+ self._clear_action.triggered.connect(self.clear)
+
+ self._about_spreadsheet = QAction("About Spreadsheet", self)
+ self._about_spreadsheet.triggered.connect(self.show_about)
+
+ self._exit_action = QAction("E&xit", self)
+ self._exit_action.triggered.connect(QCoreApplication.quit)
+
+ self._first_separator = QAction(self)
+ self._first_separator.setSeparator(True)
+
+ self._second_separator = QAction(self)
+ self._second_separator.setSeparator(True)
+
+ def setup_menu_bar(self) -> None:
+ file_menu = self.menuBar().addMenu("&File")
+ # file_menu.addAction(self._print_action)
+ file_menu.addAction(self._exit_action)
+
+ cell_menu = self.menuBar().addMenu("&Cell")
+ cell_menu.addAction(self._cell_add_action)
+ cell_menu.addAction(self._cell_sub_action)
+ cell_menu.addAction(self._cell_mul_action)
+ cell_menu.addAction(self._cell_div_action)
+ cell_menu.addAction(self._cell_sum_action)
+ cell_menu.addSeparator()
+ cell_menu.addAction(self._color_action)
+ cell_menu.addAction(self._font_action)
+
+ self.menuBar().addSeparator()
+
+ about_menu = self.menuBar().addMenu("&Help")
+ about_menu.addAction(self._about_spreadsheet)
+
+ @Slot(QTableWidgetItem)
+ def update_status(self, item: QTableWidgetItem) -> None:
+ if item and item == self._table.currentItem():
+ self.statusBar().showMessage(str(item.data(Qt.StatusTipRole)), 1000)
+ self._cell_label.setText(
+ "Cell: ({})".format(
+ SpreadSheetItem.encode_pos(self._table.row(item), self._table.column(item))
+ )
+ )
+
+ @Slot(QTableWidgetItem)
+ def update_color(self, item: QTableWidgetItem) -> None:
+ pix = QPixmap(16, 16)
+ col = QColor()
+ if item:
+ col = item.background().color()
+ if not col.isValid():
+ col = self.palette().base().color()
+
+ pt = QPainter(pix)
+ pt.fillRect(0, 0, 16, 16, col)
+
+ lighter = col.lighter()
+ pt.setPen(lighter)
+ light_frame = [QPoint(0, 15), QPoint(0, 0), QPoint(15, 0)]
+ pt.drawPolyline(light_frame)
+
+ pt.setPen(col.darker())
+ darkFrame = [QPoint(1, 15), QPoint(15, 15), QPoint(15, 1)]
+ pt.drawPolyline(darkFrame)
+
+ pt.end()
+
+ self._color_action.setIcon(pix)
+
+ @Slot(QTableWidgetItem)
+ def update_line_edit(self, item: QTableWidgetItem) -> None:
+ if item != self._table.currentItem():
+ return
+ if item:
+ self._formula_input.setText(str(item.data(Qt.EditRole)))
+ else:
+ self._formula_input.clear()
+
+ @Slot()
+ def return_pressed(self) -> None:
+ text = self._formula_input.text()
+ row = self._table.currentRow()
+ col = self._table.currentColumn()
+ item = self._table.item(row, col)
+ if not item:
+ self._table.setItem(row, col, SpreadSheetItem(text))
+ else:
+ item.setData(Qt.EditRole, text)
+ self._table.viewport().update()
+
+ @Slot()
+ def select_color(self) -> None:
+ item = self._table.currentItem()
+ col = item.background().color() if item else self._table.palette().base().color()
+ col = QColorDialog.getColor(col, self)
+ if not col.isValid():
+ return
+
+ selected = self._table.selectedItems()
+ if not selected:
+ return
+
+ for i in selected:
+ if i:
+ i.setBackground(col)
+
+ self.update_color(self._table.currentItem())
+
+ @Slot()
+ def select_font(self) -> None:
+ selected = self._table.selectedItems()
+ if not selected:
+ return
+
+ ok = False
+ fnt = QFontDialog.getFont(ok, self.font(), self)
+
+ if not ok:
+ return
+ for i in selected:
+ if i:
+ i.setFont(fnt)
+
+ def run_input_dialog(self, title: str, c1Text: str, c2Text: str, opText: str,
+ outText: str, cell1: str, cell2: str, outCell: str) -> bool:
+ rows, cols = [], []
+ for c in range(self._table.columnCount()):
+ cols.append(chr(ord('A') + c))
+ for r in range(self._table.rowCount()):
+ rows.append(str(1 + r))
+
+ add_dialog = QDialog(self)
+ add_dialog.setWindowTitle(title)
+
+ group = QGroupBox(title, add_dialog)
+ group.setMinimumSize(250, 100)
+
+ cell1_label = QLabel(c1Text, group)
+ cell1_row_input = QComboBox(group)
+ c1_row, c1_col = SpreadSheetItem.decode_pos(cell1)
+ cell1_row_input.addItems(rows)
+ cell1_row_input.setCurrentIndex(c1_row)
+
+ cell1_col_input = QComboBox(group)
+ cell1_col_input.addItems(cols)
+ cell1_col_input.setCurrentIndex(c1_col)
+
+ operator_label = QLabel(opText, group)
+ operator_label.setAlignment(Qt.AlignHCenter)
+
+ cell2_label = QLabel(c2Text, group)
+ cell2_row_input = QComboBox(group)
+ c2_row, c2_col = SpreadSheetItem.decode_pos(cell2)
+ cell2_row_input.addItems(rows)
+ cell2_row_input.setCurrentIndex(c2_row)
+ cell2_col_input = QComboBox(group)
+ cell2_col_input.addItems(cols)
+ cell2_col_input.setCurrentIndex(c2_col)
+
+ equals_label = QLabel("=", group)
+ equals_label.setAlignment(Qt.AlignHCenter)
+
+ out_label = QLabel(outText, group)
+ out_row_input = QComboBox(group)
+ out_row, out_col = SpreadSheetItem.decode_pos(outCell)
+ out_row_input.addItems(rows)
+ out_row_input.setCurrentIndex(out_row)
+ out_col_input = QComboBox(group)
+ out_col_input.addItems(cols)
+ out_col_input.setCurrentIndex(out_col)
+
+ cancel_button = QPushButton("Cancel", add_dialog)
+ cancel_button.clicked.connect(add_dialog.reject)
+
+ ok_button = QPushButton("OK", add_dialog)
+ ok_button.setDefault(True)
+ ok_button.clicked.connect(add_dialog.accept)
+
+ buttons_layout = QHBoxLayout()
+ buttons_layout.addStretch(1)
+ buttons_layout.addWidget(ok_button)
+ buttons_layout.addSpacing(10)
+ buttons_layout.addWidget(cancel_button)
+
+ dialog_layout = QVBoxLayout(add_dialog)
+ dialog_layout.addWidget(group)
+ dialog_layout.addStretch(1)
+ dialog_layout.addItem(buttons_layout)
+
+ cell1_layout = QHBoxLayout()
+ cell1_layout.addWidget(cell1_label)
+ cell1_layout.addSpacing(10)
+ cell1_layout.addWidget(cell1_col_input)
+ cell1_layout.addSpacing(10)
+ cell1_layout.addWidget(cell1_row_input)
+
+ cell2_layout = QHBoxLayout()
+ cell2_layout.addWidget(cell2_label)
+ cell2_layout.addSpacing(10)
+ cell2_layout.addWidget(cell2_col_input)
+ cell2_layout.addSpacing(10)
+ cell2_layout.addWidget(cell2_row_input)
+
+ out_layout = QHBoxLayout()
+ out_layout.addWidget(out_label)
+ out_layout.addSpacing(10)
+ out_layout.addWidget(out_col_input)
+ out_layout.addSpacing(10)
+ out_layout.addWidget(out_row_input)
+
+ v_layout = QVBoxLayout(group)
+ v_layout.addItem(cell1_layout)
+ v_layout.addWidget(operator_label)
+ v_layout.addItem(cell2_layout)
+ v_layout.addWidget(equals_label)
+ v_layout.addStretch(1)
+ v_layout.addItem(out_layout)
+
+ if add_dialog.exec():
+ cell1 = cell1_col_input.currentText() + cell1_row_input.currentText()
+ cell2 = cell2_col_input.currentText() + cell2_row_input.currentText()
+ outCell = out_col_input.currentText() + out_row_input.currentText()
+ return True
+
+ return False
+
+ @Slot()
+ def action_sum(self) -> None:
+ row_first = row_last = row_cur = 0
+ col_first = col_last = col_cur = 0
+
+ selected = self._table.selectedItems()
+
+ if selected is not None:
+ first = selected[0]
+ last = selected[-1]
+ row_first = self._table.row(first)
+ row_last = self._table.row(last)
+ col_first = self._table.column(first)
+ col_last = self._table.column(last)
+
+ current = self._table.currentItem()
+
+ if current:
+ row_cur = self._table.row(current)
+ col_cur = self._table.column(current)
+
+ cell1 = SpreadSheetItem.encode_pos(row_first, col_first)
+ cell2 = SpreadSheetItem.encode_pos(row_last, col_last)
+ out = SpreadSheetItem.encode_pos(row_cur, col_cur)
+
+ if self.run_input_dialog(
+ "Sum cells", "First cell:", "Last cell:",
+ f"{(chr(0x03a3))}", "Output to:",
+ cell1, cell2, out
+ ):
+ row, col = SpreadSheetItem.decode_pos(out)
+ self._table.item(row, col).setText(f"sum {cell1} {cell2}")
+
+ def action_math_helper(self, title: str, op: str) -> None:
+ cell1 = "C1"
+ cell2 = "C2"
+ out = "C3"
+
+ current = self._table.currentItem()
+ if current:
+ out = SpreadSheetItem.encode_pos(self._table.currentRow(), self._table.currentColumn())
+
+ if self.run_input_dialog(title, "Cell 1", "Cell 2", op, "Output to:", cell1, cell2, out):
+ row, col = SpreadSheetItem.decode_pos(out)
+ self._table.item(row, col).setText(f"{op} {cell1} {cell2}")
+
+ @Slot()
+ def action_add(self) -> None:
+ self.action_math_helper("Addition", "+")
+
+ @Slot()
+ def action_subtract(self) -> None:
+ self.action_math_helper("Subtraction", "-")
+
+ @Slot()
+ def action_multiply(self) -> None:
+ self.action_math_helper("Multiplication", "*")
+
+ @Slot()
+ def action_divide(self) -> None:
+ self.action_math_helper("Division", "/")
+
+ @Slot()
+ def clear(self) -> None:
+ selected_items = self._table.selectedItems()
+ for item in selected_items:
+ item.setText("")
+
+ def setup_context_menu(self) -> None:
+ self.addAction(self._cell_add_action)
+ self.addAction(self._cell_sub_action)
+ self.addAction(self._cell_mul_action)
+ self.addAction(self._cell_div_action)
+ self.addAction(self._cell_sum_action)
+ self.addAction(self._first_separator)
+ self.addAction(self._color_action)
+ self.addAction(self._font_action)
+ self.addAction(self._second_separator)
+ self.addAction(self._clear_action)
+ self.setContextMenuPolicy(Qt.ActionsContextMenu)
+
+ def setup_contents(self) -> None:
+ title_background = QBrush(Qt.lightGray)
+ title_font = self._table.font()
+ title_font.setBold(True)
+
+ # column 0
+ self._table.setItem(0, 0, SpreadSheetItem("Item"))
+ self._table.item(0, 0).setBackground(title_background)
+ self._table.item(0, 0).setToolTip(
+ "This column shows the purchased item/service"
+ )
+ self._table.item(0, 0).setFont(title_font)
+
+ self._table.setItem(1, 0, SpreadSheetItem("AirportBus"))
+ self._table.setItem(2, 0, SpreadSheetItem("Flight (Munich)"))
+ self._table.setItem(3, 0, SpreadSheetItem("Lunch"))
+ self._table.setItem(4, 0, SpreadSheetItem("Flight (LA)"))
+ self._table.setItem(5, 0, SpreadSheetItem("Taxi"))
+ self._table.setItem(6, 0, SpreadSheetItem("Dinner"))
+ self._table.setItem(7, 0, SpreadSheetItem("Hotel"))
+ self._table.setItem(8, 0, SpreadSheetItem("Flight (Oslo)"))
+ self._table.setItem(9, 0, SpreadSheetItem("Total:"))
+
+ self._table.item(9, 0).setFont(title_font)
+ self._table.item(9, 0).setBackground(title_background)
+
+ # column 1
+ self._table.setItem(0, 1, SpreadSheetItem("Date"))
+ self._table.item(0, 1).setBackground(title_background)
+ self._table.item(0, 1).setToolTip(
+ "This column shows the purchase date, double click to change"
+ )
+ self._table.item(0, 1).setFont(title_font)
+
+ self._table.setItem(1, 1, SpreadSheetItem("15/6/2006"))
+ self._table.setItem(2, 1, SpreadSheetItem("15/6/2006"))
+ self._table.setItem(3, 1, SpreadSheetItem("15/6/2006"))
+ self._table.setItem(4, 1, SpreadSheetItem("21/5/2006"))
+ self._table.setItem(5, 1, SpreadSheetItem("16/6/2006"))
+ self._table.setItem(6, 1, SpreadSheetItem("16/6/2006"))
+ self._table.setItem(7, 1, SpreadSheetItem("16/6/2006"))
+ self._table.setItem(8, 1, SpreadSheetItem("18/6/2006"))
+
+ self._table.setItem(9, 1, SpreadSheetItem())
+ self._table.item(9, 1).setBackground(title_background)
+
+ # column 2
+ self._table.setItem(0, 2, SpreadSheetItem("Price"))
+ self._table.item(0, 2).setBackground(title_background)
+ self._table.item(0, 2).setToolTip("This column shows the price of the purchase")
+ self._table.item(0, 2).setFont(title_font)
+
+ self._table.setItem(1, 2, SpreadSheetItem("150"))
+ self._table.setItem(2, 2, SpreadSheetItem("2350"))
+ self._table.setItem(3, 2, SpreadSheetItem("-14"))
+ self._table.setItem(4, 2, SpreadSheetItem("980"))
+ self._table.setItem(5, 2, SpreadSheetItem("5"))
+ self._table.setItem(6, 2, SpreadSheetItem("120"))
+ self._table.setItem(7, 2, SpreadSheetItem("300"))
+ self._table.setItem(8, 2, SpreadSheetItem("1240"))
+
+ self._table.setItem(9, 2, SpreadSheetItem())
+ self._table.item(9, 2).setBackground(Qt.lightGray)
+
+ # column 3
+ self._table.setItem(0, 3, SpreadSheetItem("Currency"))
+ self._table.item(0, 3).setBackground(title_background)
+ self._table.item(0, 3).setToolTip("This column shows the currency")
+ self._table.item(0, 3).setFont(title_font)
+
+ self._table.setItem(1, 3, SpreadSheetItem("NOK"))
+ self._table.setItem(2, 3, SpreadSheetItem("NOK"))
+ self._table.setItem(3, 3, SpreadSheetItem("EUR"))
+ self._table.setItem(4, 3, SpreadSheetItem("EUR"))
+ self._table.setItem(5, 3, SpreadSheetItem("USD"))
+ self._table.setItem(6, 3, SpreadSheetItem("USD"))
+ self._table.setItem(7, 3, SpreadSheetItem("USD"))
+ self._table.setItem(8, 3, SpreadSheetItem("USD"))
+
+ self._table.setItem(9, 3, SpreadSheetItem())
+ self._table.item(9, 3).setBackground(Qt.lightGray)
+
+ # column 4
+ self._table.setItem(0, 4, SpreadSheetItem("Ex. Rate"))
+ self._table.item(0, 4).setBackground(title_background)
+ self._table.item(0, 4).setToolTip("This column shows the exchange rate to NOK")
+ self._table.item(0, 4).setFont(title_font)
+
+ self._table.setItem(1, 4, SpreadSheetItem("1"))
+ self._table.setItem(2, 4, SpreadSheetItem("1"))
+ self._table.setItem(3, 4, SpreadSheetItem("8"))
+ self._table.setItem(4, 4, SpreadSheetItem("8"))
+ self._table.setItem(5, 4, SpreadSheetItem("7"))
+ self._table.setItem(6, 4, SpreadSheetItem("7"))
+ self._table.setItem(7, 4, SpreadSheetItem("7"))
+ self._table.setItem(8, 4, SpreadSheetItem("7"))
+
+ self._table.setItem(9, 4, SpreadSheetItem())
+ self._table.item(9, 4).setBackground(title_background)
+
+ # column 5
+ self._table.setItem(0, 5, SpreadSheetItem("NOK"))
+ self._table.item(0, 5).setBackground(title_background)
+ self._table.item(0, 5).setToolTip("This column shows the expenses in NOK")
+ self._table.item(0, 5).setFont(title_font)
+
+ self._table.setItem(1, 5, SpreadSheetItem("* C2 E2"))
+ self._table.setItem(2, 5, SpreadSheetItem("* C3 E3"))
+ self._table.setItem(3, 5, SpreadSheetItem("* C4 E4"))
+ self._table.setItem(4, 5, SpreadSheetItem("* C5 E5"))
+ self._table.setItem(5, 5, SpreadSheetItem("* C6 E6"))
+ self._table.setItem(6, 5, SpreadSheetItem("* C7 E7"))
+ self._table.setItem(7, 5, SpreadSheetItem("* C8 E8"))
+ self._table.setItem(8, 5, SpreadSheetItem("* C9 E9"))
+
+ self._table.setItem(9, 5, SpreadSheetItem("sum F2 F9"))
+ self._table.item(9, 5).setBackground(title_background)
+
+ @Slot()
+ def show_about(self) -> None:
+ html_text = (
+ "<HTML>"
+ "<p><b>This demo shows use of <c>QTableWidget</c> with custom handling for"
+ " individual cells.</b></p>"
+ "<p>Using a customized table item we make it possible to have dynamic"
+ " output in different cells. The content that is implemented for this"
+ " particular demo is:"
+ "<ul>"
+ "<li>Adding two cells.</li>"
+ "<li>Subtracting one cell from another.</li>"
+ "<li>Multiplying two cells.</li>"
+ "<li>Dividing one cell with another.</li>"
+ "<li>Summing the contents of an arbitrary number of cells.</li>"
+ "</HTML>")
+ QMessageBox.about(self, "About Spreadsheet", html_text)
diff --git a/examples/widgets/itemviews/spreadsheet/spreadsheetdelegate.py b/examples/widgets/itemviews/spreadsheet/spreadsheetdelegate.py
new file mode 100644
index 000000000..57aba6f47
--- /dev/null
+++ b/examples/widgets/itemviews/spreadsheet/spreadsheetdelegate.py
@@ -0,0 +1,67 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import (QAbstractItemModel, QDate, QModelIndex, QObject,
+ QStringListModel, Qt, Slot)
+from PySide6.QtWidgets import (QCompleter, QDateTimeEdit, QLineEdit,
+ QStyleOptionViewItem, QStyledItemDelegate, QWidget)
+
+from typing import Optional
+
+
+class SpreadSheetDelegate(QStyledItemDelegate):
+ def __init__(self, parent: Optional[QObject] = None) -> None:
+ super().__init__(parent)
+
+ def create_editor(self, parent: QWidget,
+ option: QStyleOptionViewItem,
+ index: QModelIndex) -> QWidget:
+ if index.column() == 1:
+ editor = QDateTimeEdit(parent)
+ editor.setDisplayFormat("dd/M/yyyy")
+ editor.setCalendarPopup(True)
+ return editor
+
+ editor = QLineEdit(parent)
+
+ # create a completer with the strings in the column as model
+ allStrings = QStringListModel()
+ for i in range(1, index.model().rowCount()):
+ strItem = str(index.model().data(index.sibling(i, index.column()), Qt.EditRole))
+
+ if not allStrings.contains(strItem):
+ allStrings.append(strItem)
+
+ autoComplete = QCompleter(allStrings)
+ editor.setCompleter(autoComplete)
+ editor.editingFinished.connect(SpreadSheetDelegate.commit_and_close_editor)
+ return editor
+
+ @Slot()
+ def commit_and_close_editor(self) -> None:
+ editor = self.sender()
+ self.commitData.emit(editor)
+ self.closeEditor.emit(editor)
+
+ def set_editor_data(self, editor: QWidget, index: QModelIndex) -> None:
+ edit = QLineEdit(editor)
+ if edit:
+ edit.setText(str(index.model().data(index, Qt.EditRole)))
+ return
+
+ dateEditor = QDateTimeEdit(editor)
+ if dateEditor:
+ dateEditor.setDate(
+ QDate.fromString(
+ str(index.model().data(index, Qt.EditRole)), "d/M/yyyy"))
+
+ def set_model_data(self, editor: QWidget,
+ model: QAbstractItemModel, index: QModelIndex) -> None:
+ edit = QLineEdit(editor)
+ if edit:
+ model.setData(index, edit.text())
+ return
+
+ dateEditor = QDateTimeEdit(editor)
+ if dateEditor:
+ model.setData(index, dateEditor.date().toString("dd/M/yyyy"))
diff --git a/examples/widgets/itemviews/spreadsheet/spreadsheetitem.py b/examples/widgets/itemviews/spreadsheet/spreadsheetitem.py
new file mode 100644
index 000000000..dc70da883
--- /dev/null
+++ b/examples/widgets/itemviews/spreadsheet/spreadsheetitem.py
@@ -0,0 +1,122 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from typing import Any, Tuple
+from PySide6.QtCore import QMetaType, Qt
+from PySide6.QtWidgets import QTableWidget, QTableWidgetItem
+
+
+class SpreadSheetItem(QTableWidgetItem):
+ is_resolving = False
+
+ def __init_subclass__(cls) -> None:
+ return super().__init_subclass__()
+
+ def data(self, role: int) -> Any:
+ if role == Qt.EditRole or role == Qt.StatusTipRole:
+ return self.formula()
+
+ if role == Qt.DisplayRole:
+ return self.display()
+
+ t = str(self.display())
+
+ if role == Qt.ForegroundRole:
+ try:
+ number = int(t)
+ color = Qt.red if number < 0 else Qt.blue
+ except ValueError:
+ color = Qt.black
+ return color
+
+ if role == Qt.TextAlignmentRole:
+ if t and (t[0].isdigit() or t[0] == '-'):
+ return int(Qt.AlignRight | Qt.AlignVCenter)
+
+ return super().data(role)
+
+ def setData(self, role: int, value: Any) -> None:
+ super().setData(role, value)
+ if self.tableWidget():
+ self.tableWidget().viewport().update()
+
+ def display(self) -> QMetaType.Type.QVariant:
+ # avoid circular dependencies
+ if self.is_resolving:
+ return QMetaType.Type.QVariant
+
+ self.is_resolving = True
+ result = self.compute_formula(self.formula(), self.tableWidget(), self)
+ self.is_resolving = False
+ return result
+
+ def formula(self) -> None:
+ return str(super().data(Qt.DisplayRole))
+
+ def compute_formula(self, formula: str, widget: QTableWidget, this) -> QMetaType.Type.QVariant:
+ # check if the string is actually a formula or not
+ list_ = formula.split(' ')
+ if not list_ or not widget:
+ return formula # it is a normal string
+
+ op = list_[0].lower() if list_[0] else ""
+
+ first_row = -1
+ first_col = -1
+ second_row = -1
+ second_col = -1
+
+ if len(list_) > 1:
+ SpreadSheetItem.decode_pos(list_[1])
+
+ if len(list_) > 2:
+ SpreadSheetItem.decode_pos(list_[2])
+
+ start = widget.item(first_row, first_col)
+ end = widget.item(second_row, second_col)
+
+ first_val = int(start.text()) if start else 0
+ second_val = int(end.text()) if start else 0
+
+ if op == "sum":
+ sum = 0
+ for r in range(first_row, second_row + 1):
+ for c in range(first_col, second_col + 1):
+ table_item = widget.item(r, c)
+ if table_item and table_item != this:
+ sum += int(table_item.text())
+
+ result = sum
+ elif op == "+":
+ result = first_val + second_val
+ elif op == "-":
+ result = first_val - second_val
+ elif op == "*":
+ result = first_val * second_val
+ elif op == "/":
+ if second_val == 0:
+ result = "nan"
+ else:
+ result = first_val / second_val
+ elif op == "=":
+ if start:
+ result = start.text()
+ else:
+ result = formula
+
+ return result
+
+ def decode_pos(pos: str) -> Tuple[int, int]:
+ if (not pos):
+ col = -1
+ row = -1
+ else:
+ col = ord(pos[0].encode("latin1")) - ord('A')
+ try:
+ row = int(pos[1:]) - 1
+ except ValueError:
+ row = -1
+ return row, col
+
+ def encode_pos(row: int, col: int) -> str:
+ return str(chr(col + ord('A'))) + str(row + 1)
diff --git a/examples/widgets/itemviews/stardelegate/stardelegate.py b/examples/widgets/itemviews/stardelegate/stardelegate.py
index d283bc955..973eb14f6 100644
--- a/examples/widgets/itemviews/stardelegate/stardelegate.py
+++ b/examples/widgets/itemviews/stardelegate/stardelegate.py
@@ -1,45 +1,7 @@
-
-#############################################################################
-##
-## Copyright (C) 2010 Hans-Peter Jansen <hpj@urpla.net>
-## Copyright (C) 2011 Arun Srinivasan <rulfzid@gmail.com>
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2010 Hans-Peter Jansen <hpj@urpla.net>
+# Copyright (C) 2011 Arun Srinivasan <rulfzid@gmail.com>
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from PySide6.QtWidgets import QStyledItemDelegate, QStyle
@@ -149,15 +111,15 @@ if __name__ == "__main__":
# Create and populate the tableWidget
table_widget = QTableWidget(4, 4)
table_widget.setItemDelegate(StarDelegate())
- table_widget.setEditTriggers(QAbstractItemView.DoubleClicked |
- QAbstractItemView.SelectedClicked)
+ table_widget.setEditTriggers(QAbstractItemView.DoubleClicked
+ | QAbstractItemView.SelectedClicked)
table_widget.setSelectionBehavior(QAbstractItemView.SelectRows)
table_widget.setHorizontalHeaderLabels(["Title", "Genre", "Artist", "Rating"])
- data = [ ["Mass in B-Minor", "Baroque", "J.S. Bach", 5],
- ["Three More Foxes", "Jazz", "Maynard Ferguson", 4],
- ["Sex Bomb", "Pop", "Tom Jones", 3],
- ["Barbie Girl", "Pop", "Aqua", 5] ]
+ data = [["Mass in B-Minor", "Baroque", "J.S. Bach", 5],
+ ["Three More Foxes", "Jazz", "Maynard Ferguson", 4],
+ ["Sex Bomb", "Pop", "Tom Jones", 3],
+ ["Barbie Girl", "Pop", "Aqua", 5]]
for r in range(len(data)):
table_widget.setItem(r, 0, QTableWidgetItem(data[r][0]))
diff --git a/examples/widgets/itemviews/stardelegate/stareditor.py b/examples/widgets/itemviews/stardelegate/stareditor.py
index 8431f4a38..296afa950 100644
--- a/examples/widgets/itemviews/stardelegate/stareditor.py
+++ b/examples/widgets/itemviews/stardelegate/stareditor.py
@@ -1,45 +1,7 @@
-
-#############################################################################
-##
-## Copyright (C) 2010 Hans-Peter Jansen <hpj@urpla.net>
-## Copyright (C) 2011 Arun Srinivasan <rulfzid@gmail.com>
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2010 Hans-Peter Jansen <hpj@urpla.net>
+# Copyright (C) 2011 Arun Srinivasan <rulfzid@gmail.com>
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from PySide6.QtWidgets import (QWidget)
from PySide6.QtGui import (QPainter)
@@ -70,8 +32,8 @@ class StarEditor(QWidget):
def paintEvent(self, event):
""" Paint the editor, offloading the work to the StarRating class. """
- painter = QPainter(self)
- self.star_rating.paint(painter, self.rect(), self.palette(), isEditable=True)
+ with QPainter(self) as painter:
+ self.star_rating.paint(painter, self.rect(), self.palette(), isEditable=True)
def mouseMoveEvent(self, event):
""" As the mouse moves inside the editor, track the position and
@@ -93,8 +55,7 @@ class StarEditor(QWidget):
""" Calculate which star the user's mouse cursor is currently
hovering over.
"""
- star = (x / (self.star_rating.sizeHint().width() /
- self.star_rating.MAX_STAR_COUNT)) + 1
+ star = (x / (self.star_rating.sizeHint().width() / self.star_rating.MAX_STAR_COUNT)) + 1
if (star <= 0) or (star > self.star_rating.MAX_STAR_COUNT):
return -1
diff --git a/examples/widgets/itemviews/stardelegate/starrating.py b/examples/widgets/itemviews/stardelegate/starrating.py
index 7865e1686..28dbacd6f 100644
--- a/examples/widgets/itemviews/stardelegate/starrating.py
+++ b/examples/widgets/itemviews/stardelegate/starrating.py
@@ -1,45 +1,7 @@
-
-#############################################################################
-##
-## Copyright (C) 2010 Hans-Peter Jansen <hpj@urpla.net>
-## Copyright (C) 2011 Arun Srinivasan <rulfzid@gmail.com>
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2010 Hans-Peter Jansen <hpj@urpla.net>
+# Copyright (C) 2011 Arun Srinivasan <rulfzid@gmail.com>
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from math import (cos, sin, pi)
@@ -61,13 +23,13 @@ class StarRating(object):
self._star_polygon.append(QPointF(1.0, 0.5))
for i in range(1, 5):
self._star_polygon.append(QPointF(0.5 + 0.5 * cos(0.8 * i * pi),
- 0.5 + 0.5 * sin(0.8 * i * pi)))
+ 0.5 + 0.5 * sin(0.8 * i * pi)))
# Create the diamond shape we'll show in the editor
self._diamond_polygon = QPolygonF()
diamond_points = [QPointF(0.4, 0.5), QPointF(0.5, 0.4),
- QPointF(0.6, 0.5), QPointF(0.5, 0.6),
- QPointF(0.4, 0.5)]
+ QPointF(0.6, 0.5), QPointF(0.5, 0.6),
+ QPointF(0.4, 0.5)]
self._diamond_polygon.append(diamond_points)
def sizeHint(self):
diff --git a/examples/widgets/layouts/basiclayouts/basiclayouts.py b/examples/widgets/layouts/basiclayouts/basiclayouts.py
index a115518f2..827cb7850 100644
--- a/examples/widgets/layouts/basiclayouts/basiclayouts.py
+++ b/examples/widgets/layouts/basiclayouts/basiclayouts.py
@@ -1,55 +1,16 @@
-
-############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the widgets/layouts/basiclayout example from Qt v5.x"""
import sys
-from PySide6.QtCore import Qt
from PySide6.QtWidgets import (QApplication, QComboBox, QDialog,
QDialogButtonBox, QGridLayout, QGroupBox,
QFormLayout, QHBoxLayout, QLabel, QLineEdit,
QMenu, QMenuBar, QPushButton, QSpinBox,
- QTextEdit, QVBoxLayout, QWidget)
+ QTextEdit, QVBoxLayout)
class Dialog(QDialog):
@@ -66,7 +27,7 @@ class Dialog(QDialog):
big_editor = QTextEdit()
big_editor.setPlainText("This widget takes up all the remaining space "
- "in the top-level layout.")
+ "in the top-level layout.")
button_box = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel)
@@ -114,8 +75,7 @@ class Dialog(QDialog):
layout.addWidget(line_edit, i + 1, 1)
self._small_editor = QTextEdit()
- self._small_editor.setPlainText("This widget takes up about two thirds "
- "of the grid layout.")
+ self._small_editor.setPlainText("This widget takes up about two thirds of the grid layout.")
layout.addWidget(self._small_editor, 0, 2, 4, 1)
diff --git a/examples/widgets/layouts/borderlayout/borderlayout.py b/examples/widgets/layouts/borderlayout/borderlayout.py
new file mode 100644
index 000000000..3268d7034
--- /dev/null
+++ b/examples/widgets/layouts/borderlayout/borderlayout.py
@@ -0,0 +1,248 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the widgets/layouts/borderlayout example from Qt v5.x"""
+
+from dataclasses import dataclass
+from enum import IntEnum, auto
+
+from PySide6.QtCore import QRect, QSize, Qt
+from PySide6.QtWidgets import (
+ QApplication,
+ QFrame,
+ QLabel,
+ QLayout,
+ QLayoutItem,
+ QTextBrowser,
+ QWidget,
+ QWidgetItem,
+)
+import sys
+
+
+class Position(IntEnum):
+ West = auto()
+ North = auto()
+ South = auto()
+ East = auto()
+ Center = auto()
+
+
+class SizeType(IntEnum):
+ MinimumSize = auto()
+ SizeHint = auto()
+
+
+@dataclass
+class ItemWrapper:
+ item: QLayoutItem
+ position: Position
+
+
+class BorderLayout(QLayout):
+ def __init__(self, parent=None, spacing: int = -1):
+ super().__init__(parent)
+
+ self._list: list[ItemWrapper] = []
+
+ self.setSpacing(spacing)
+
+ if parent is not None:
+ self.setParent(parent)
+
+ def __del__(self):
+ item = self.takeAt(0)
+ while item:
+ item = self.takeAt(0)
+
+ def addItem(self, item: QLayoutItem):
+ self.add(item, Position.West)
+
+ def addWidget(self, widget: QWidget, position: Position):
+ self.add(QWidgetItem(widget), position)
+
+ def expandingDirections(self) -> Qt.Orientations:
+ return Qt.Horizontal | Qt.Vertical
+
+ def hasHeightForWidth(self) -> bool:
+ return False
+
+ def count(self) -> int:
+ return len(self._list)
+
+ def itemAt(self, index: int) -> QLayoutItem:
+ if index < len(self._list):
+ wrapper: ItemWrapper = self._list[index]
+ return wrapper.item
+ return None
+
+ def minimumSize(self) -> QSize:
+ return self.calculate_size(SizeType.MinimumSize)
+
+ def setGeometry(self, rect: QRect):
+ center: ItemWrapper = None
+ east_width = 0
+ west_width = 0
+ north_height = 0
+ south_height = 0
+
+ super().setGeometry(rect)
+
+ for wrapper in self._list:
+ item: QLayoutItem = wrapper.item
+ position: Position = wrapper.position
+
+ if position == Position.North:
+ item.setGeometry(
+ QRect(
+ rect.x(), north_height, rect.width(), item.sizeHint().height()
+ )
+ )
+
+ north_height += item.geometry().height() + self.spacing()
+
+ elif position == Position.South:
+ item.setGeometry(
+ QRect(
+ item.geometry().x(),
+ item.geometry().y(),
+ rect.width(),
+ item.sizeHint().height(),
+ )
+ )
+
+ south_height += item.geometry().height() + self.spacing()
+
+ item.setGeometry(
+ QRect(
+ rect.x(),
+ rect.y() + rect.height() - south_height + self.spacing(),
+ item.geometry().width(),
+ item.geometry().height(),
+ )
+ )
+ elif position == Position.Center:
+ center = wrapper
+
+ center_height = rect.height() - north_height - south_height
+
+ for wrapper in self._list:
+ item: QLayoutItem = wrapper.item
+ position: Position = wrapper.position
+
+ if position == Position.West:
+ item.setGeometry(
+ QRect(
+ rect.x() + west_width,
+ north_height,
+ item.sizeHint().width(),
+ center_height,
+ )
+ )
+
+ west_width += item.geometry().width() + self.spacing()
+
+ elif position == Position.East:
+ item.setGeometry(
+ QRect(
+ item.geometry().x(),
+ item.geometry().y(),
+ item.sizeHint().width(),
+ center_height,
+ )
+ )
+
+ east_width += item.geometry().width() + self.spacing()
+
+ item.setGeometry(
+ QRect(
+ rect.x() + rect.width() - east_width + self.spacing(),
+ north_height,
+ item.geometry().width(),
+ item.geometry().height(),
+ )
+ )
+
+ if center:
+ center.item.setGeometry(
+ QRect(
+ west_width,
+ north_height,
+ rect.width() - east_width - west_width,
+ center_height,
+ )
+ )
+
+ def sizeHint(self) -> QSize:
+ return self.calculate_size(SizeType.SizeHint)
+
+ def takeAt(self, index: int):
+ if 0 <= index < len(self._list):
+ layout_struct: ItemWrapper = self._list.pop(index)
+ return layout_struct.item
+ return None
+
+ def add(self, item: QLayoutItem, position: Position):
+ self._list.append(ItemWrapper(item, position))
+
+ def calculate_size(self, size_type: SizeType):
+ total_size = QSize()
+
+ for wrapper in self._list:
+ position = wrapper.position
+
+ item_size: QSize
+ if size_type == SizeType.MinimumSize:
+ item_size = wrapper.item.minimumSize()
+ else:
+ item_size = wrapper.item.sizeHint()
+
+ if position in (Position.North, Position.South, Position.Center):
+ total_size.setHeight(total_size.height() + item_size.height())
+
+ if position in (Position.West, Position.East, Position.Center):
+ total_size.setWidth(total_size.width() + item_size.width())
+
+ return total_size
+
+
+class Window(QWidget):
+ def __init__(self):
+ super().__init__()
+ self.central_widget = QTextBrowser()
+ self.central_widget.setPlainText("Central widget")
+
+ border_layout = BorderLayout()
+ border_layout.addWidget(self.central_widget, Position.Center)
+
+ label_north = self.create_label("North")
+ border_layout.addWidget(label_north, Position.North)
+
+ label_west = self.create_label("West")
+ border_layout.addWidget(label_west, Position.West)
+
+ label_east1 = self.create_label("East 1")
+ border_layout.addWidget(label_east1, Position.East)
+
+ label_east2 = self.create_label("East 2")
+ border_layout.addWidget(label_east2, Position.East)
+
+ label_south = self.create_label("South")
+ border_layout.addWidget(label_south, Position.South)
+
+ self.setLayout(border_layout)
+
+ self.setWindowTitle("Border Layout")
+
+ @staticmethod
+ def create_label(text: str):
+ label = QLabel(text)
+ label.setFrameStyle(QFrame.Box | QFrame.Raised)
+ return label
+
+
+if __name__ == "__main__":
+ app = QApplication(sys.argv)
+ window = Window()
+ window.show()
+ sys.exit(app.exec())
diff --git a/examples/widgets/layouts/borderlayout/borderlayout.pyproject b/examples/widgets/layouts/borderlayout/borderlayout.pyproject
new file mode 100644
index 000000000..fc0280348
--- /dev/null
+++ b/examples/widgets/layouts/borderlayout/borderlayout.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["borderlayout.py"]
+}
diff --git a/examples/widgets/layouts/borderlayout/doc/borderlayout.png b/examples/widgets/layouts/borderlayout/doc/borderlayout.png
new file mode 100644
index 000000000..8599b9d1c
--- /dev/null
+++ b/examples/widgets/layouts/borderlayout/doc/borderlayout.png
Binary files differ
diff --git a/examples/widgets/layouts/borderlayout/doc/borderlayout.rst b/examples/widgets/layouts/borderlayout/doc/borderlayout.rst
new file mode 100644
index 000000000..652f84daa
--- /dev/null
+++ b/examples/widgets/layouts/borderlayout/doc/borderlayout.rst
@@ -0,0 +1,10 @@
+Border Layout Example
+=======================
+
+Shows how to arrange child widgets along a border.
+
+Border Layout implements a layout that arranges child widgets to surround the main area.
+
+.. image:: borderlayout.png
+ :width: 473
+ :alt: border layout Screenshot
diff --git a/examples/widgets/layouts/dynamiclayouts/dynamiclayouts.py b/examples/widgets/layouts/dynamiclayouts/dynamiclayouts.py
index c0e3266ce..c9dfcc730 100644
--- a/examples/widgets/layouts/dynamiclayouts/dynamiclayouts.py
+++ b/examples/widgets/layouts/dynamiclayouts/dynamiclayouts.py
@@ -1,44 +1,6 @@
-
-############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the widgets/layouts/dynamiclayouts example from Qt v5.x"""
@@ -88,7 +50,7 @@ class Dialog(QDialog):
self._main_layout.setSizeConstraint(QLayout.SetNoConstraint)
self.setMinimumSize(0, 0)
- orientation = Qt.Orientation(int(self._buttons_orientation_combo_box.itemData(index)))
+ orientation = Qt.Orientation(self._buttons_orientation_combo_box.itemData(index))
if orientation == self._button_box.orientation():
return
@@ -112,8 +74,8 @@ class Dialog(QDialog):
def show_help(self):
QMessageBox.information(self, "Dynamic Layouts Help",
- "This example shows how to change layouts "
- "dynamically.")
+ "This example shows how to change layouts "
+ "dynamically.")
def create_rotable_group_box(self):
self._rotable_group_box = QGroupBox("Rotable Widgets")
@@ -140,7 +102,8 @@ class Dialog(QDialog):
buttons_orientation_combo_box = QComboBox()
buttons_orientation_combo_box.addItem("Horizontal", Qt.Horizontal)
buttons_orientation_combo_box.addItem("Vertical", Qt.Vertical)
- buttons_orientation_combo_box.currentIndexChanged[int].connect(self.buttons_orientation_changed)
+ buttons_orientation_combo_box.currentIndexChanged[int].connect(
+ self.buttons_orientation_changed)
self._buttons_orientation_combo_box = buttons_orientation_combo_box
@@ -155,7 +118,8 @@ class Dialog(QDialog):
close_button = self._button_box.addButton(QDialogButtonBox.Close)
help_button = self._button_box.addButton(QDialogButtonBox.Help)
- rotate_widgets_button = self._button_box.addButton("Rotate &Widgets", QDialogButtonBox.ActionRole)
+ rotate_widgets_button = self._button_box.addButton(
+ "Rotate &Widgets", QDialogButtonBox.ActionRole)
rotate_widgets_button.clicked.connect(self.rotate_widgets)
close_button.clicked.connect(self.close)
diff --git a/examples/widgets/layouts/flowlayout/flowlayout.py b/examples/widgets/layouts/flowlayout/flowlayout.py
index 431515687..3ab4318fa 100644
--- a/examples/widgets/layouts/flowlayout/flowlayout.py
+++ b/examples/widgets/layouts/flowlayout/flowlayout.py
@@ -1,51 +1,12 @@
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-"""PySide6 port of the widgets/layouts/flowlayout example from Qt v5.x"""
+"""PySide6 port of the widgets/layouts/flowlayout example from Qt v6.x"""
import sys
from PySide6.QtCore import Qt, QMargins, QPoint, QRect, QSize
-from PySide6.QtWidgets import (QApplication, QLayout, QPushButton,
- QSizePolicy, QWidget)
+from PySide6.QtWidgets import QApplication, QLayout, QPushButton, QSizePolicy, QWidget
class Window(QWidget):
@@ -72,9 +33,9 @@ class FlowLayout(QLayout):
self._item_list = []
def __del__(self):
- item = self.take_at(0)
+ item = self.takeAt(0)
while item:
- item = self.take_at(0)
+ item = self.takeAt(0)
def addItem(self, item):
self._item_list.append(item)
@@ -83,19 +44,19 @@ class FlowLayout(QLayout):
return len(self._item_list)
def itemAt(self, index):
- if index >= 0 and index < len(self._item_list):
+ if 0 <= index < len(self._item_list):
return self._item_list[index]
return None
def takeAt(self, index):
- if index >= 0 and index < len(self._item_list):
+ if 0 <= index < len(self._item_list):
return self._item_list.pop(index)
return None
def expandingDirections(self):
- return Qt.Orientations(Qt.Orientation(0))
+ return Qt.Orientation(0)
def hasHeightForWidth(self):
return True
@@ -117,8 +78,7 @@ class FlowLayout(QLayout):
for item in self._item_list:
size = size.expandedTo(item.minimumSize())
- size += QSize(2 * self.contentsMargins().top(),
- 2 * self.contentsMargins().top())
+ size += QSize(2 * self.contentsMargins().top(), 2 * self.contentsMargins().top())
return size
def _do_layout(self, rect, test_only):
@@ -129,12 +89,12 @@ class FlowLayout(QLayout):
for item in self._item_list:
style = item.widget().style()
- layout_spacing_x = style.layoutSpacing(QSizePolicy.PushButton,
- QSizePolicy.PushButton,
- Qt.Horizontal)
- layout_spacing_y = style.layoutSpacing(QSizePolicy.PushButton,
- QSizePolicy.PushButton,
- Qt.Vertical)
+ layout_spacing_x = style.layoutSpacing(
+ QSizePolicy.PushButton, QSizePolicy.PushButton, Qt.Horizontal
+ )
+ layout_spacing_y = style.layoutSpacing(
+ QSizePolicy.PushButton, QSizePolicy.PushButton, Qt.Vertical
+ )
space_x = spacing + layout_spacing_x
space_y = spacing + layout_spacing_y
next_x = x + item.sizeHint().width() + space_x
@@ -153,7 +113,7 @@ class FlowLayout(QLayout):
return y + line_height - rect.y()
-if __name__ == '__main__':
+if __name__ == "__main__":
app = QApplication(sys.argv)
main_win = Window()
main_win.show()
diff --git a/examples/widgets/linguist/doc/linguist.rst b/examples/widgets/linguist/doc/linguist.rst
new file mode 100644
index 000000000..24a49a617
--- /dev/null
+++ b/examples/widgets/linguist/doc/linguist.rst
@@ -0,0 +1,7 @@
+.. _qt-linguist-example:
+
+Qt Linguist Example
+===================
+
+This example demonstrates the use of Qt Linguist and related tools for translating
+applications as described in :ref:`translations`.
diff --git a/examples/widgets/linguist/linguist.qrc b/examples/widgets/linguist/linguist.qrc
index 2b08ae577..6ca287c20 100644
--- a/examples/widgets/linguist/linguist.qrc
+++ b/examples/widgets/linguist/linguist.qrc
@@ -1,5 +1,5 @@
<!DOCTYPE RCC><RCC version="1.0">
-<qresource>
- <file>translations/example_de.qm</file>
+<qresource prefix="translations">
+ <file>example_de.qm</file>
</qresource>
</RCC>
diff --git a/examples/widgets/linguist/linguist_rc.py b/examples/widgets/linguist/linguist_rc.py
index 72575e549..233952779 100644
--- a/examples/widgets/linguist/linguist_rc.py
+++ b/examples/widgets/linguist/linguist_rc.py
@@ -1,6 +1,6 @@
# Resource object code (Python 3)
# Created by: object code
-# Created by: The Resource Compiler for Qt version 6.2.0
+# Created by: The Resource Compiler for Qt version 6.2.2
# WARNING! All changes made in this file will be lost!
from PySide6 import QtCore
@@ -56,7 +56,7 @@ qt_resource_struct = b"\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x01z\x80\x03\xea\xc1\
+\x00\x00\x01}\xbdR\x0f\xc5\
"
def qInitResources():
diff --git a/examples/widgets/linguist/main.py b/examples/widgets/linguist/main.py
index 03783d046..e4212e801 100644
--- a/examples/widgets/linguist/main.py
+++ b/examples/widgets/linguist/main.py
@@ -1,53 +1,15 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-from pathlib import Path
import sys
from PySide6.QtCore import (QItemSelection, QLibraryInfo, QLocale, QTranslator,
- Qt, Slot)
+ Slot)
from PySide6.QtWidgets import (QAbstractItemView, QApplication, QListWidget,
- QMainWindow, QWidget)
+ QMainWindow)
-import linguist_rc
+import linguist_rc # noqa: F401
class Window(QMainWindow):
@@ -59,7 +21,7 @@ class Window(QMainWindow):
quit_action.triggered.connect(self.close)
help_menu = self.menuBar().addMenu(self.tr("&Help"))
about_qt_action = help_menu.addAction(self.tr("About Qt"))
- about_qt_action.triggered.connect(qApp.aboutQt)
+ about_qt_action.triggered.connect(qApp.aboutQt) # noqa: F821
self._list_widget = QListWidget()
self._list_widget.setSelectionMode(QAbstractItemView.MultiSelection)
@@ -79,7 +41,7 @@ class Window(QMainWindow):
if __name__ == '__main__':
app = QApplication(sys.argv)
- path = QLibraryInfo.location(QLibraryInfo.TranslationsPath)
+ path = QLibraryInfo.path(QLibraryInfo.TranslationsPath)
translator = QTranslator(app)
if translator.load(QLocale.system(), 'qtbase', '_', path):
app.installTranslator(translator)
diff --git a/examples/widgets/mainwindows/application/application.py b/examples/widgets/mainwindows/application/application.py
index 3ec9344cb..f69eade2e 100644
--- a/examples/widgets/mainwindows/application/application.py
+++ b/examples/widgets/mainwindows/application/application.py
@@ -1,55 +1,17 @@
-
-#############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from argparse import ArgumentParser, RawTextHelpFormatter
import sys
from PySide6.QtCore import (QByteArray, QFile, QFileInfo, QSaveFile, QSettings,
- QTextStream, Qt)
+ QTextStream, Qt, Slot)
from PySide6.QtGui import QAction, QIcon, QKeySequence
from PySide6.QtWidgets import (QApplication, QFileDialog, QMainWindow,
- QMessageBox, QTextEdit, QWidget)
+ QMessageBox, QTextEdit)
-import application_rc
+import application_rc # noqa: F401
class MainWindow(QMainWindow):
@@ -80,23 +42,27 @@ class MainWindow(QMainWindow):
else:
event.ignore()
+ @Slot()
def new_file(self):
if self.maybe_save():
self._text_edit.clear()
self.set_current_file('')
+ @Slot()
def open(self):
if self.maybe_save():
fileName, filtr = QFileDialog.getOpenFileName(self)
if fileName:
self.load_file(fileName)
+ @Slot()
def save(self):
if self._cur_file:
return self.save_file(self._cur_file)
return self.save_as()
+ @Slot()
def save_as(self):
fileName, filtr = QFileDialog.getSaveFileName(self)
if fileName:
@@ -104,62 +70,67 @@ class MainWindow(QMainWindow):
return False
+ @Slot()
def about(self):
QMessageBox.about(self, "About Application",
- "The <b>Application</b> example demonstrates how to write "
- "modern GUI applications using Qt, with a menu bar, "
- "toolbars, and a status bar.")
+ "The <b>Application</b> example demonstrates how to write "
+ "modern GUI applications using Qt, with a menu bar, "
+ "toolbars, and a status bar.")
+ @Slot()
def document_was_modified(self):
self.setWindowModified(self._text_edit.document().isModified())
def create_actions(self):
- icon = QIcon.fromTheme("document-new", QIcon(':/images/new.png'))
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.DocumentNew, QIcon(':/images/new.png'))
self._new_act = QAction(icon, "&New", self, shortcut=QKeySequence.New,
- statusTip="Create a new file", triggered=self.new_file)
+ statusTip="Create a new file", triggered=self.new_file)
- icon = QIcon.fromTheme("document-open", QIcon(':/images/open.png'))
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.DocumentOpen, QIcon(':/images/open.png'))
self._open_act = QAction(icon, "&Open...", self,
- shortcut=QKeySequence.Open, statusTip="Open an existing file",
- triggered=self.open)
+ shortcut=QKeySequence.Open, statusTip="Open an existing file",
+ triggered=self.open)
- icon = QIcon.fromTheme("document-save", QIcon(':/images/save.png'))
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.DocumentSave, QIcon(':/images/save.png'))
self._save_act = QAction(icon, "&Save", self,
- shortcut=QKeySequence.Save,
- statusTip="Save the document to disk", triggered=self.save)
+ shortcut=QKeySequence.Save,
+ statusTip="Save the document to disk", triggered=self.save)
self._save_as_act = QAction("Save &As...", self,
- shortcut=QKeySequence.SaveAs,
- statusTip="Save the document under a new name",
- triggered=self.save_as)
+ shortcut=QKeySequence.SaveAs,
+ statusTip="Save the document under a new name",
+ triggered=self.save_as)
- self._exit_act = QAction("E&xit", self, shortcut="Ctrl+Q",
- statusTip="Exit the application", triggered=self.close)
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.ApplicationExit)
+ self._exit_act = QAction(icon, "E&xit", self, shortcut="Ctrl+Q",
+ statusTip="Exit the application", triggered=self.close)
- icon = QIcon.fromTheme("edit-cut", QIcon(':/images/cut.png'))
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.EditCut, QIcon(':/images/cut.png'))
self._cut_act = QAction(icon, "Cu&t", self, shortcut=QKeySequence.Cut,
- statusTip="Cut the current selection's contents to the clipboard",
- triggered=self._text_edit.cut)
+ statusTip="Cut the current selection's contents to the clipboard",
+ triggered=self._text_edit.cut)
- icon = QIcon.fromTheme("edit-copy", QIcon(':/images/copy.png'))
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.EditCopy, QIcon(':/images/copy.png'))
self._copy_act = QAction(icon, "&Copy",
- self, shortcut=QKeySequence.Copy,
- statusTip="Copy the current selection's contents to the clipboard",
- triggered=self._text_edit.copy)
+ self, shortcut=QKeySequence.Copy,
+ statusTip="Copy the current selection's contents to the clipboard",
+ triggered=self._text_edit.copy)
- icon = QIcon.fromTheme("edit-paste", QIcon(':/images/paste.png'))
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.EditPaste, QIcon(':/images/paste.png'))
self._paste_act = QAction(icon, "&Paste",
- self, shortcut=QKeySequence.Paste,
- statusTip="Paste the clipboard's contents into the current selection",
- triggered=self._text_edit.paste)
+ self, shortcut=QKeySequence.Paste,
+ statusTip="Paste the clipboard's contents into the current "
+ "selection",
+ triggered=self._text_edit.paste)
- self._about_act = QAction("&About", self,
- statusTip="Show the application's About box",
- triggered=self.about)
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.HelpAbout)
+ self._about_act = QAction(icon, "&About", self,
+ statusTip="Show the application's About box",
+ triggered=self.about)
self._about_qt_act = QAction("About &Qt", self,
- statusTip="Show the Qt library's About box",
- triggered=qApp.aboutQt)
+ statusTip="Show the Qt library's About box",
+ triggered=qApp.aboutQt) # noqa: F821
self._cut_act.setEnabled(False)
self._copy_act.setEnabled(False)
@@ -213,10 +184,9 @@ class MainWindow(QMainWindow):
def maybe_save(self):
if self._text_edit.document().isModified():
ret = QMessageBox.warning(self, "Application",
- "The document has been modified.\nDo you want to save "
- "your changes?",
- QMessageBox.Save | QMessageBox.Discard |
- QMessageBox.Cancel)
+ "The document has been modified.\nDo you want to save "
+ "your changes?",
+ QMessageBox.Save | QMessageBox.Discard | QMessageBox.Cancel)
if ret == QMessageBox.Save:
return self.save()
elif ret == QMessageBox.Cancel:
@@ -227,32 +197,29 @@ class MainWindow(QMainWindow):
file = QFile(fileName)
if not file.open(QFile.ReadOnly | QFile.Text):
reason = file.errorString()
- QMessageBox.warning(self, "Application",
- f"Cannot read file {fileName}:\n{reason}.")
+ QMessageBox.warning(self, "Application", f"Cannot read file {fileName}:\n{reason}.")
return
inf = QTextStream(file)
- QApplication.setOverrideCursor(Qt.WaitCursor)
- self._text_edit.setPlainText(inf.readAll())
- QApplication.restoreOverrideCursor()
+ with QApplication.setOverrideCursor(Qt.WaitCursor):
+ self._text_edit.setPlainText(inf.readAll())
self.set_current_file(fileName)
self.statusBar().showMessage("File loaded", 2000)
def save_file(self, fileName):
error = None
- QApplication.setOverrideCursor(Qt.WaitCursor)
- file = QSaveFile(fileName)
- if file.open(QFile.WriteOnly | QFile.Text):
- outf = QTextStream(file)
- outf << self._text_edit.toPlainText()
- if not file.commit():
+ with QApplication.setOverrideCursor(Qt.WaitCursor):
+ file = QSaveFile(fileName)
+ if file.open(QFile.WriteOnly | QFile.Text):
+ outf = QTextStream(file)
+ outf << self._text_edit.toPlainText()
+ if not file.commit():
+ reason = file.errorString()
+ error = f"Cannot write file {fileName}:\n{reason}."
+ else:
reason = file.errorString()
- error = f"Cannot write file {fileName}:\n{reason}."
- else:
- reason = file.errorString()
- error = f"Cannot open file {fileName}:\n{reason}."
- QApplication.restoreOverrideCursor()
+ error = f"Cannot open file {fileName}:\n{reason}."
if error:
QMessageBox.warning(self, "Application", error)
diff --git a/examples/widgets/mainwindows/application/application.pyproject b/examples/widgets/mainwindows/application/application.pyproject
index 0e0413982..a9365ed1a 100644
--- a/examples/widgets/mainwindows/application/application.pyproject
+++ b/examples/widgets/mainwindows/application/application.pyproject
@@ -1,3 +1,3 @@
{
- "files": ["application.qrc", "application.py", "application_rc.py"]
+ "files": ["application.qrc", "application.py"]
}
diff --git a/examples/widgets/mainwindows/application/application_rc.py b/examples/widgets/mainwindows/application/application_rc.py
index ad79e2ead..bc8336765 100644
--- a/examples/widgets/mainwindows/application/application_rc.py
+++ b/examples/widgets/mainwindows/application/application_rc.py
@@ -1,88 +1,11 @@
# Resource object code (Python 3)
# Created by: object code
-# Created by: The Resource Compiler for Qt version 5.14.0
+# Created by: The Resource Compiler for Qt version 6.2.2
# WARNING! All changes made in this file will be lost!
from PySide6 import QtCore
qt_resource_data = b"\
-\x00\x00\x04\xa3\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
-\x00\x00\x00\x04gAMA\x00\x00\xd6\xd8\xd4OX2\
-\x00\x00\x00\x19tEXtSoftware\
-\x00Adobe ImageRead\
-yq\xc9e<\x00\x00\x045IDATX\xc3\xe5\
-\x97\xcd\x8fTE\x14\xc5\x7f\xb7\xea\xd6{\xaf\xdbn\xc7\
-\xf9@\x9d\x89FM4\x99D\x8d\x1aH\x98\xc4\x8c\x1f\
-\x1b\xfe\x02L\x5c\xf1\x07\x18\x16.M\x5ckX\xc3\x8e\
-\xc4\x8d\x1b\x17\xce\x82htA\x5c\x18\x0d\xe2\xc4\xc6\x00\
-=`PQ\x19`\x02\xa2\x0e\x0c\x83\xd3\xfd^\xf7\x94\
-\x8b\xaa\xee\xf9`\xe6\x0d\x84Q\x16VR\xa9\xce{\xb7\
-\xeb\x9e:\xf7\xd4\xa9z\xea\xbd\xe7~6\xe5>\xb7>\
-\x80]\xbbv\xbd\x03\xec\xfd\x8f\xf2N5\x1a\x8d\x03\xeb\
-\x19\xd8\xbb\xef\xbd\xa3;\x1f\x1fv\x00\x9c<:\xcf\xcc\
-\x977X\x9c\xef\xdcS\xa6\xda\xa0\xf2\xdck\x03\xbc\xb8\
-g\x10\x80\x8b\x7f\x16|\xf8\xee\x1e\x80\xdb\x00p\xfc\xec\
-\x1c\xdf?0\x04x.\xfd\xb8\xc0\xfe\xb7\xceo\xcbr\
-\x0f\x1dy\x9a\x0b#\x96\xd3\x9f\x1fd\xfc\xd5}\x9bk\
-@E\xb0\x16@xp,#\xcb\xb2m\x0100\x96\
-a\x8dP\x1b|\x14#%\x22\x14+\xd8\x18\x91\xd5\x95\
-s\xe7\xce\x83*\xb8\x04\xd2\x14\xb2\x0c\xd2,\x8cI\x0a\
-I\x12\xdew:\x90\xe7\x90\xb7\xa1\xd5\x82v+\x8em\
-(r\xb2\xfa8\xd6\x0a\xe3\xaf\xbcIk\xf1\xfa\xe6\x00\
-\xac\x15\xac\x15\x04\xb0F\xd8\xbd{\xe7\x16k\xeb\x86\xae\
-\x80Z\xa8V\x81\xeamQ\x8d\xaf\x04\xb5\x82\xf7\xa0\xa6\
-\x84\x01g\x055\x82\x08\xa8\x0a\x95,\xc3# \x1e\x08\
-\xc0\xf0\x1e/\x02\xde#\x12&\x15|\x88#\xc4!\x1e\
-<!^@MX\x18@\xd7J\x89\x06\xac\xa0\xdac\
-\x00\x9a3\xbf\x05\x8aS\x07i\x02\x95\x04\xb24\xf6\x04\
-\x12\x07N\xa1\xe8@^@+\x8f\xbd\x05K9\xb4s\
-\xc8\x0bT\x87q=\x00*\xe5%p1@\xd509\
-\xf9\xd2\xd6\x0a\xf3>\xd0\xaf\x16\xaa\x1b\x8b\xf6\xd8'a\
-a\xbd\x1c%% \x00\xf0\x81\x8d4M\xa3:\xc3\xb3\
-\x98\x11\x89l\x07\xdac\x09V\x98_)F\xfca\xcd\
-r\x7fa\x1d-\xd1\x80:\x09TI\x18O4/\xe0\
-\x9d\x85\xc4!\x89\xc3g\x09\x92i\xd8\x11\x89\xe2\x13\x87\
-X\x8b\xefv\x91\xbc\x80\xbc\x03\xed\x02\xdfj#\xed\x02\
-\xf2\x02\x9fwP\x1dE\xd5 x:\xebTx\x9b\x06\
-\x9c3x\x0f\x03\x8f$\xbc\xfe\xf2\xf3wh\xe86h\
-\xa4\xbe\xf1\xeb\xc6\xfc\xdf\xb1\x04R^\x82DM_\x84\
-\x8f\x0d\xa58\xe7\xb6\xc5\x88\x9e\x18K\xb9v\xb3\x03\x08\
-\x9dR\x11\xaa\x90\xb8P\xefZ\xc50}\xb1\xcb@\xc5\
-\xb0\x0e\xf4&\xadW\xf9U.\xe1\xe1\xc6\xd22\xf5\xcc\
-p}\xc9\x84-\xe9J\x19\x10\x9c\x1a\xc0s\xe5f\x97\
-+7\xbb\xacQW?\xd7\xaad~\xc5'\xa2)\xac\
-\x05\x15\xc3\x9c\x0b\xb5w\xa6l\x17\xa8\xc1\xa9 \xc8\x1a\
-5\xaf\x9b5\x1a\x8fY1\x9e\xfe{\xe9\xef\x14\x00\xf1\
-\x82\xef\x9bX0+WV\x02U!\xd1\x90\xfc\xe7S\
-\xdf\xf2\xeb\x99\x13,-\xde\xb8\xa7\xfaWj\x03<\xf5\
-\xecN\x9eya\x02\x0f\xa83[1\x10\x03|\x87\xf7\
-\xf7\xbf\xc1\xc2\xc2\x02\xb7n\xdd\xa2(\x0aD\x04k-\
-\xd6ZT\x15U\xc59\x87\xaab\xad\xc5\x98\xf0\xdf\xe5\
-\xe5e\xf2<\xef\xf7#\xcd\xf9\xb8\xf2-\x18pVP\
-\x17\x18\xdc1:\xb6rO8~\x9c\xe9\xe9i\x8c1\
-x\xef\x99\x98\x98`rr\xf2\x8eY\xd81:\xd6\xdf\
-\x86\xae\xd4\x09Up6\xac\xa2V\xaf\xf7k933\
-\xc3\xd0\xd0\x10\xd6Z\xbc\xf74\x9b\xcd\xbb\x02P\xab\xd7\
-p\xd1\x88\xb4\xd4\x88\x14\x9c\x0b'\x5c\xa0*\x00\xa8V\
-\xabdY\xd6\xa7\xb87\xdeis\x1a\xa9\x17AK\xad\
-8\x1e\xc7\xbd#\xb4\xd7\x8c1\x88D\xdf\x8f:\xb8\xab\
-\x9b\xaf5\xa8\x0d\xf3\xf6\x18.=\x8e\x83)m\xe3\xd5\
-\xdb\x12\xa9\xf7\xe5Vl\xad\xf4\x91\x0e\x8e\x0c\xc3\xf2\xef\
-\xdb\x02\xe0\xa1\x91a\xd4\xc2\xb5+\x97Y\x9c\xbf\xbe\x05\
-\x036\xf8\xc0`\xad\x02\x0b\xdb\xc3\xc0P\xad\xc2\xec\xc5\
-K\x9c\xfd\xee\x1b\xce\x9f\x9c\x9e\x03\xa66\x04`$^\
-J\x05\x12\x0b\xed\x91'\xa9=\x0co\x1f8\xc8f\xc7\
-\x81':\xf1*\xe75\x1e2\x81\x14(\xbap\xf9\xea\
-U\xce4\x8e\xd1\xfc\xfa\x8b\xb9\xd9\x1fN\x1d\x02\x0eo\
-\x08\xe0\xb3\x8f>\xe0\xa7\xd3'W\x99\xe9\xda\xa3\x86U\
-\xe6\xbb\x1e\x04\x1b<_\x1do|w\xee\x8f\xd9_\x0e\
-\x01\x87\x1b\x8d\xc6_\x1b\x01\x98\x9a\xfe\xf4\xe3\x7f\xf5s\
-l}\xf25\x00\xe2\xb7\xda\x81\xff\xdd\xd7\xf1?M\xf0\
-K\xb9\xe8F\x89\xaf\x00\x00\x00\x00IEND\xaeB\
-`\x82\
\x00\x00\x08\x19\
\x89\
PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
@@ -215,91 +138,62 @@ H\x8f\xaa\x1e/\x9a5\xe6\xc7\x7fz\xf3-Wx\xac\
\xff\xdam\x8a\xdda\x99\xd5\x1b\xb6\xd8k\xbb^2\xbe\
/\x89\xff\x01f\xb9_\xfc\x11\x80=\xcf\x00\x00\x00\x00\
IEND\xaeB`\x82\
-\x00\x00\x05+\
+\x00\x00\x03T\
\x89\
PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
\x00\x00\x00\x04gAMA\x00\x00\xd6\xd8\xd4OX2\
\x00\x00\x00\x19tEXtSoftware\
\x00Adobe ImageRead\
-yq\xc9e<\x00\x00\x04\xbdIDATX\xc3\xed\
-WkL\x93W\x18>#q\xc92\xe9\x16\x97\xa8T\
-e8\x9d\x02\x15\xf6\x03\x872\x93\x01f,[p\xc4\
-0\xff`\xa2.\x1a:\x1dN\x03\xba1\x89[\xb3\x80\
-\xd9\x0c\x84\x02\x19X\x1c\x14\x8b\x85\xb2\x82\x95^\xe4f\
-\x0b\x8e1\xf8\xc3F\xcb-\x81\x15\xdc\xa8\xc2\x1c\x1b\xb7\
-ji\x91\xf2\xee\xbc\x87\xaf\x0c\xdc\xb8\x0da\xd9\xb2\x93\
-<\xed\x97\xf3}\xfd\xde\xe7\xbc\xef\xf3^J\x00\x80\xfc\
-\x93 \xff\x0a\x02t\x09(D\x14\xd9\x14q\x14\x01+\
-F\x80\xae\xddd\xdd\xc6f\x22L\xf8\x95\xc4\x8bG\xc8\
-\xa1\xd3\xf7\xc8\x8e\x97;82a+A \x85\x9c\xbe\
-0H.\xdd\x80\x19@2\xabyM\xf4\xbe\xfbr\x13\
-hd\x06\x91\x04^\xa3Q\xf4\x06\xee\x85G\xf5\xd0\xbd\
-\x83\xcbM \x9b\x9d\xf6@t/\xbd\x162= \x89\
-?H\xa5,\x1b\x01\x8c1y\xc1\xbb\x9d\x88K\xc6\xd7\
-\xc6&\x0e\xa0\x10\xb9\xfdB\xfe\xc5+6F\x8c\x12\x5c\
-N\x02\x93\xa7\xa7\xa7\x0d\xcc\xd39\xb9\x98c6\x14\x0a\
-\xd2\xe4\xa3+A \x8c)\x9e*\xdf7G\xeb\xdc{\
-\xb5\xcc\x89\x9e@D\x96T\x83+,\x0b6FH\x08\
-\x13\xf5d*{.T\x03\x01\xf8\x037\xbf\xc0\x0e4\
-*T\xdfb\x88R\xd5,X\x03t\x1d\x16\x08\x04z\
-EU\xf5\xc8\xa0mt\xc2\xd4s\xf7!\xbesQ\x95\
-\x90\xae\x8f\xd0\x13\xcf\xe5\x94\x83\x87\xb4\x02\x9e\xcc.\x03\
-\xd4\x06\xdd\xaf\x99\xcb\xb0\xaf\xaf\xaf>\xbf\xd2`\xb5\xdb\
-\xed\x80\xf8y\xe4>\xc4^\xab\xb4\xb9\x88/\x86\x80'\
-\xd3\xc0g\xf9\x8e\x19\xf5`\xd7^3\xbav\xdas\xee\
-h\xd8\xc7\xc7G\x9f\xab\xab\xb0\x0e\x0f\x0d\xc1\x10\x87\xb2\
-\xf6.\xe7\x967\xf7wsa\xd8\xbd\xe8^\x80/f\
-\x9a\xa0\x86\xdf\xa96B\xf7\xf0\x03\xd8\x19\x9f\xd4\xcf\xa5\
-\xe7\x1a\x8a\x98-~\xfem\x97T\x1ak__\x1f\xb8\
-\xd0\xd1s\x07br\x15VN\xc4\x87\x97\xd4\x8c0\x14\
-\xe9\x15\xb7\x1e8\x1c\x0e@\xa4\xd6\x191\x9e\x85\x9b\x05\
-~m\xa9%\x1a[\x97\xd9\x0c\xe6.\x0a\xf3$\x14\xdf\
-6\x8e{\xbd\x1e\xd1\xcdB\xc8\x09o\xa9\x04<\xd1\xbd\
-V\xab\x15\x10w\x7f\x1b\x84\xf3\x92\x5c\xbbR\xa9\x84\xfa\
-\xfaz0\x99L\x0cu\xdf5\xc1Q\xb1d\x18\xc9Q\
-D>\xb6v\xcc\xb4@O\x93_~\xd3\xd6\xdf\xdf\x0f\
-2\x99\x0cD\x22\x11\xa8T*\x90J\xa5\xa0\xd1h \
-K[9\xbe\xe9\x95\xe0\x1f\xb8S\xafy,\xf3\x00\x97\
-\x8e\x22\x9e\xc7\x86\xe6S)\x19\xf6\x82\x82\x02\xe6\xe2\xa0\
-\xa0 \xe0\xf1x`\xb1X@[^\x01\xfb\xcf&\x0c\
--\xa6S\xceg\x94\xcf\x09L\x83\xe2[{\xe6\xc2`\
-\x9a\xb2\x14\x14\x0a\x05\x88\xc5b\xc8\xcc\xcc\x84\xa2\xa2\x22\
-P\xab\xd5\xd0\xd9\xd9\xc9`\xec\xfe\xc9\xb9\xc9\xdb\xa7u\
-.\xb7\xcfK\x80\xae\xb7\xd8)p\x0e\xc0j\x97\xacx\
-\x88\xca\x7f\x82\xe2)\x89\x0e>\x97+![\x96\x0f\x07\
-c\xe3G\x84\x1f&\xd8\x92rd\x8eo\x1a\xbf\x07\xa3\
-\xd1\x08-\xad-\xf0\xcb\xc0 \x1c8\xf1\xbe\x05\xb3b\
-\xc1\x04\x5ci\x84\x85\x85\x84F\xdc&\xe72\xac,\xcf\
-3\xb5\x13\xec;\xe3\xba\xd33\xaf\x82\xe5\xfez\x89\x06\
-\x9e\xde\xfcb\x1b\xf7<\x92\x8d{f\xabO[\xca5\
-\xedXCC=444\x80\xa5\xb7\x172\x14\xc5\xc3\
-\xf3\xe9\xc0e<\x92\xe5(\x9e6]\xe5\x9c*2x\
-}\xf4\x83.Zl\x121\x0c\x1b%\xeaq\xf7/\xcb\
-'\xef\x05\x87_\xfe\xd3\xe4D\x0bLh\xf4\xc9>u\
-\x95\x1e\x0c\x06\x03\xb4\xb7\xb7\xc3\xd7\xc6\x961\xae\x81\x09\
-f\xf16m8h<I::e\xf8b\x81\x83D\
-\xbdWC\xb6\x0a^\x9b*\xc3\x94\x5c\xb0B\x0f\xab$\
-\xb4\x04\x9fJ\xaa\x9bC71(\xd4O\xf2\x0a\xc7t\
-:\x1d\xd4\xd6\xd6\x82\xc9|\xdb\xb9a\x9b\xf7_\xeab\
-\xb2\xe5~\x9cu\x1f\x0d\xf3\xb2\xd4N\xf2\xf6\xb1\xeb.\
-\xb6\xae\x94\xc3\x90l\x97U\xc1KW\xab\x80\x9cMn\
-Z\xd0\x1cI\xbd\xb1\xe7\x88\xb0\xef\xcaW\xc5PZZ\
-\x0a\x1d?\xf6L\x04\x06\x87t<\xaa\x0b\xc2\x84F\x8d\
-\x07\xc8o\x02\xd9\xf9\xaa~\x9a\xf10F\x8e6 \xaf\
-\xbcJxCi\x00\x92(\x1d\x98\xcd\x95\xb3y\xc3}\
-=\xbf\xf9Dj\xa6].\x97CSK+D\x1c{\
-\xf7\xce\xf4\x14%\xae\xf1\x8a\xf5w\x9c\xf5p\x02\xc2\xd9\
-\x0f\x89\xd1\x81\x03O\x8e\xf7\xdc\xd2i\xe7\xf3\xdfu\xfc\
-o\x14.6\xd2\xef\xd8\x17iI\xbe,\x9d\xc8\xd3\x96\
-;\xa7\x0f1\x8c%\xc6\xdf\x9f\xbaw_q5\xa0A\
-l\xb5\x08\x8c\xf9\x94\xf1\xe0\xf03K\x9a|h\x13Z\
-\xbd\xce\xa3\xd9kOH\xf7\x0c\x0f\xb0\x0f\xfe\xf3\x87\xc8\
-\xf9/\xee\xb9In\x00\xf6{>\xed\xf7\x08\x1e*>\
-]\xe5X\xaa\xf1GZ\xf5\xb6Y\x0b\x11\x1d\xb3C\xc9\
-\x918\x099\xf9\xa9\x96!\xfa\x5c\x1a\x0d\xcf\xb3\xff\xff\
-7\xfcO\x13\xf8\x1d\xe7\x87\x19\xb9D\xc3\x01\xcf\x00\x00\
-\x00\x00IEND\xaeB`\x82\
+yq\xc9e<\x00\x00\x02\xe6IDATX\xc3\xd5\
+\x97\xcdN\x13a\x14\x86\xeb5\x94\x95{q\xe1\xd2\xc4\
+\xe0\x05\xb8\xe2\x0e\x5c\xb8\xf4\x02\x5c\xb10\xea\x05\x18\x96\
+&bX\xb8\xb0\x91X \xd1\x9d\xbf\x89\xa4\x14\xb1R\
+\xa4HE\x94\xfe\xd0\x02C\xff\xa6\x9d\x19\xa6e\x80\xe3\
+y{\xfa\x85QJ\x82\xc9!\x86I\xde\x9c3\xa7\xf3\
+\xcd\xfb\x9c\xf3M\x9bN\x84\x88\x22\xffS\x91s\x01\xc0\
+\xc7\xd5\x90n\xff\xa5\xfb\xac\xc7==d\x0d\xa9\x02\xf0\
+12<<\xbcj4::\xba\x19V<\x1e\xaf&\
+\x93\xc9V:\x9dv\x13\x89Dk`` \xcdkn\
+h\x02\xa48\xd2\xe1\xe1q\x99\xba\xef\xb7\xc9\xb2,\xda\
+\xdf\xdf'\x86\xf1x\xcd\x18\xeb\x8a\x1a@?\xf3\xb0\x1c\
+\xc7\xa5Lf\xb9\x0b\x14\x04\x01\xc5b\xb1:\xaf{p\
+\x1a\x88S\x01\x1c\x1c\x10ww\xb2l\xdb\xa1\xf9\xf9\xcf\
+d\x0e\xd7u\xe9\xf9\xc4D\x17B\x05\x00&{\xc1\xc9\
+\xaa7\x1cJ\xce\xcdS\xf8p]\x0f\x8b\x17T\x00\x82\
+\x10@gO\x14\xce\xed\xa6G\x1fgf\xe9\xf5\x9b\xb7\
+\x14\x9f\x9c\xa4\xa9\xa9iz\xf7\xfe\x03E\xa3\xd1e^\
+\x7fA\x05\xc0\xef\x10\xed\xb6%\x86\x85\x9a\xe3\x05\x94]\
+\xcd\xd1\xe4\xf4+z2\xfe\x94\x9e\xc5^\xd0Lb\x0e\
+\x8b\x17U\x00\xda\x81\x18\xf5\x13 <\xff\x90j\xcd6\
+\x157\xab\x94/nS\x89c\x8d\xb7\x85\xd7~Q\x01\
+\xf0y\xcc\xcd]\x1e\xb5\xc7{\xdb\xee\x9f;\xbe\xe4\x88\
+]\xb8\xbd\xee\xe2\x94\xca3\xe0u\xe4\xc6uWb\xd8\
+\x109\xea\xe63D\xd4\x01\xa7\x06\xe0\xf4:\xad9\x22\
+\x98\x98hr\x80\x98kPS\x9d\x00\x00*-\xb91\
+\xe2NS\x8c\x10\x0d\x04\xf2m\xfb(\xb6|E\x00\x9b\
+;\xdbj\xfci\x8e<l\x88\x1a\xae9\x13\x80:\x8f\
+\xb7T#*\xd7\xc5\x04\x06\x06\x005(\x9c\x17\xab\xbc\
+%\xbb\xca\x13\xc0Ma\x0e\x15*rn\xcc~Z\x02\
+hj\xdd\xad\xf1\x94'\x00S\xdc\x1cqm[@`\
+\x9a\xab\x1cu\x9e\xeb\x81A\x15G\x11\xc0j\x891\x0c\
+\xd6w\x04 \x0cd&b\xb6iu\x8b\xa8\xaa\x09P\
+\xb6\xc5\xbc\xd0\x03\xf8\xbe)c\x87)`\x0c\x18\x84\x1c\
+\x00[ME\x00t\x03S\x98\xad\x94\xc5\x1c\xe7F\xe6\
+\x1c\x00\xc8q]\xa9\xa1\x08\x80\xfd\xfcV\x12s3\x01\
+\x085\x18B\xe8\xda|\x8e)\xa8N\x00[\x00\x03\xc8\
+\x98g6\x04\x002\xe6\x85\xde\xf8\x17\x0b\xfc,\xd8\x8a\
+\x00\x18g:O\xb4T\x14#\x98\x02\x00\x02\x0c>\xfb\
+\xc5S(\xf0C\xb8fI\xf7k\xf9R\x87\xd7\xbeT\
+\x01\xc8U\x8f\xbaN\xadK\x0e\x90\xaf\x85\xde\xb7\xc2\x92\
+=O\xa6\xb3\xde\xa3\xb1q\xeb\xda\xd0\xf5\x15\x98\xb3n\
+\xa9\x00l4\xa4k\x18\xff\xe0\x11\x7fZ\x17S\xd4\x13\
+\x0bYo\xe4\xee\xbd\xe2\xa5\xc1\xcbK|m\x8cu\x87\
+5\xa8\xfa\xb7\x1c\xdde\xd9<\x8f\x1f\x19\xfe\x9e\xcf\x1e\
+7\xbd\xc9\xbax&oF\x00h\xf2\xff\x81\x99\x94\x9e\
+\xe9?\xbf\x19\x01B\xd3\xf4\xfc\xbd\x9c\x9e\xa5~\x03Q\
+l%\xa1\x92\x95\x0aw\x00\x00\x00\x00IEND\xae\
+B`\x82\
\x00\x00\x05:\
\x89\
PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
@@ -386,62 +280,91 @@ gSuV\x00\x8d\x8d\x8dn\x8b\xc5\x82\x81\x81\x81H\
mm\xad377WV\xd3\xdd\x00\xf8\x7fFL\xc2\
A\x99n\xd7\xdfC9V\x18\x85p\xc8\x04\x00\x00\x00\
\x00IEND\xaeB`\x82\
-\x00\x00\x03T\
+\x00\x00\x05+\
\x89\
PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
\x00\x00\x00\x04gAMA\x00\x00\xd6\xd8\xd4OX2\
\x00\x00\x00\x19tEXtSoftware\
\x00Adobe ImageRead\
-yq\xc9e<\x00\x00\x02\xe6IDATX\xc3\xd5\
-\x97\xcdN\x13a\x14\x86\xeb5\x94\x95{q\xe1\xd2\xc4\
-\xe0\x05\xb8\xe2\x0e\x5c\xb8\xf4\x02\x5c\xb10\xea\x05\x18\x96\
-&bX\xb8\xb0\x91X \xd1\x9d\xbf\x89\xa4\x14\xb1R\
-\xa4HE\x94\xfe\xd0\x02C\xff\xa6\x9d\x19\xa6e\x80\xe3\
-y{\xfa\x85QJ\x82\xc9!\x86I\xde\x9c3\xa7\xf3\
-\xcd\xfb\x9c\xf3M\x9bN\x84\x88\x22\xffS\x91s\x01\xc0\
-\xc7\xd5\x90n\xff\xa5\xfb\xac\xc7==d\x0d\xa9\x02\xf0\
-12<<\xbcj4::\xba\x19V<\x1e\xaf&\
-\x93\xc9V:\x9dv\x13\x89Dk`` \xcdkn\
-h\x02\xa48\xd2\xe1\xe1q\x99\xba\xef\xb7\xc9\xb2,\xda\
-\xdf\xdf'\x86\xf1x\xcd\x18\xeb\x8a\x1a@?\xf3\xb0\x1c\
-\xc7\xa5Lf\xb9\x0b\x14\x04\x01\xc5b\xb1:\xaf{p\
-\x1a\x88S\x01\x1c\x1c\x10ww\xb2l\xdb\xa1\xf9\xf9\xcf\
-d\x0e\xd7u\xe9\xf9\xc4D\x17B\x05\x00&{\xc1\xc9\
-\xaa7\x1cJ\xce\xcdS\xf8p]\x0f\x8b\x17T\x00\x82\
-\x10@gO\x14\xce\xed\xa6G\x1fgf\xe9\xf5\x9b\xb7\
-\x14\x9f\x9c\xa4\xa9\xa9iz\xf7\xfe\x03E\xa3\xd1e^\
-\x7fA\x05\xc0\xef\x10\xed\xb6%\x86\x85\x9a\xe3\x05\x94]\
-\xcd\xd1\xe4\xf4+z2\xfe\x94\x9e\xc5^\xd0Lb\x0e\
-\x8b\x17U\x00\xda\x81\x18\xf5\x13 <\xff\x90j\xcd6\
-\x157\xab\x94/nS\x89c\x8d\xb7\x85\xd7~Q\x01\
-\xf0y\xcc\xcd]\x1e\xb5\xc7{\xdb\xee\x9f;\xbe\xe4\x88\
-]\xb8\xbd\xee\xe2\x94\xca3\xe0u\xe4\xc6uWb\xd8\
-\x109\xea\xe63D\xd4\x01\xa7\x06\xe0\xf4:\xad9\x22\
-\x98\x98hr\x80\x98kPS\x9d\x00\x00*-\xb91\
-\xe2NS\x8c\x10\x0d\x04\xf2m\xfb(\xb6|E\x00\x9b\
-;\xdbj\xfci\x8e<l\x88\x1a\xae9\x13\x80:\x8f\
-\xb7T#*\xd7\xc5\x04\x06\x06\x005(\x9c\x17\xab\xbc\
-%\xbb\xca\x13\xc0Ma\x0e\x15*rn\xcc~Z\x02\
-hj\xdd\xad\xf1\x94'\x00S\xdc\x1cqm[@`\
-\x9a\xab\x1cu\x9e\xeb\x81A\x15G\x11\xc0j\x891\x0c\
-\xd6w\x04 \x0cd&b\xb6iu\x8b\xa8\xaa\x09P\
-\xb6\xc5\xbc\xd0\x03\xf8\xbe)c\x87)`\x0c\x18\x84\x1c\
-\x00[ME\x00t\x03S\x98\xad\x94\xc5\x1c\xe7F\xe6\
-\x1c\x00\xc8q]\xa9\xa1\x08\x80\xfd\xfcV\x12s3\x01\
-\x085\x18B\xe8\xda|\x8e)\xa8N\x00[\x00\x03\xc8\
-\x98g6\x04\x002\xe6\x85\xde\xf8\x17\x0b\xfc,\xd8\x8a\
-\x00\x18g:O\xb4T\x14#\x98\x02\x00\x02\x0c>\xfb\
-\xc5S(\xf0C\xb8fI\xf7k\xf9R\x87\xd7\xbeT\
-\x01\xc8U\x8f\xbaN\xadK\x0e\x90\xaf\x85\xde\xb7\xc2\x92\
-=O\xa6\xb3\xde\xa3\xb1q\xeb\xda\xd0\xf5\x15\x98\xb3n\
-\xa9\x00l4\xa4k\x18\xff\xe0\x11\x7fZ\x17S\xd4\x13\
-\x0bYo\xe4\xee\xbd\xe2\xa5\xc1\xcbK|m\x8cu\x87\
-5\xa8\xfa\xb7\x1c\xdde\xd9<\x8f\x1f\x19\xfe\x9e\xcf\x1e\
-7\xbd\xc9\xbax&oF\x00h\xf2\xff\x81\x99\x94\x9e\
-\xe9?\xbf\x19\x01B\xd3\xf4\xfc\xbd\x9c\x9e\xa5~\x03Q\
-l%\xa1\x92\x95\x0aw\x00\x00\x00\x00IEND\xae\
-B`\x82\
+yq\xc9e<\x00\x00\x04\xbdIDATX\xc3\xed\
+WkL\x93W\x18>#q\xc92\xe9\x16\x97\xa8T\
+e8\x9d\x02\x15\xf6\x03\x872\x93\x01f,[p\xc4\
+0\xff`\xa2.\x1a:\x1dN\x03\xba1\x89[\xb3\x80\
+\xd9\x0c\x84\x02\x19X\x1c\x14\x8b\x85\xb2\x82\x95^\xe4f\
+\x0b\x8e1\xf8\xc3F\xcb-\x81\x15\xdc\xa8\xc2\x1c\x1b\xb7\
+ji\x91\xf2\xee\xbc\x87\xaf\x0c\xdc\xb8\x0da\xd9\xb2\x93\
+<\xed\x97\xf3}\xfd\xde\xe7\xbc\xef\xf3^J\x00\x80\xfc\
+\x93 \xff\x0a\x02t\x09(D\x14\xd9\x14q\x14\x01+\
+F\x80\xae\xddd\xdd\xc6f\x22L\xf8\x95\xc4\x8bG\xc8\
+\xa1\xd3\xf7\xc8\x8e\x97;82a+A \x85\x9c\xbe\
+0H.\xdd\x80\x19@2\xabyM\xf4\xbe\xfbr\x13\
+hd\x06\x91\x04^\xa3Q\xf4\x06\xee\x85G\xf5\xd0\xbd\
+\x83\xcbM \x9b\x9d\xf6@t/\xbd\x162= \x89\
+?H\xa5,\x1b\x01\x8c1y\xc1\xbb\x9d\x88K\xc6\xd7\
+\xc6&\x0e\xa0\x10\xb9\xfdB\xfe\xc5+6F\x8c\x12\x5c\
+N\x02\x93\xa7\xa7\xa7\x0d\xcc\xd39\xb9\x98c6\x14\x0a\
+\xd2\xe4\xa3+A \x8c)\x9e*\xdf7G\xeb\xdc{\
+\xb5\xcc\x89\x9e@D\x96T\x83+,\x0b6FH\x08\
+\x13\xf5d*{.T\x03\x01\xf8\x037\xbf\xc0\x0e4\
+*T\xdfb\x88R\xd5,X\x03t\x1d\x16\x08\x04z\
+EU\xf5\xc8\xa0mt\xc2\xd4s\xf7!\xbesQ\x95\
+\x90\xae\x8f\xd0\x13\xcf\xe5\x94\x83\x87\xb4\x02\x9e\xcc.\x03\
+\xd4\x06\xdd\xaf\x99\xcb\xb0\xaf\xaf\xaf>\xbf\xd2`\xb5\xdb\
+\xed\x80\xf8y\xe4>\xc4^\xab\xb4\xb9\x88/\x86\x80'\
+\xd3\xc0g\xf9\x8e\x19\xf5`\xd7^3\xbav\xdas\xee\
+h\xd8\xc7\xc7G\x9f\xab\xab\xb0\x0e\x0f\x0d\xc1\x10\x87\xb2\
+\xf6.\xe7\x967\xf7wsa\xd8\xbd\xe8^\x80/f\
+\x9a\xa0\x86\xdf\xa96B\xf7\xf0\x03\xd8\x19\x9f\xd4\xcf\xa5\
+\xe7\x1a\x8a\x98-~\xfem\x97T\x1ak__\x1f\xb8\
+\xd0\xd1s\x07br\x15VN\xc4\x87\x97\xd4\x8c0\x14\
+\xe9\x15\xb7\x1e8\x1c\x0e@\xa4\xd6\x191\x9e\x85\x9b\x05\
+~m\xa9%\x1a[\x97\xd9\x0c\xe6.\x0a\xf3$\x14\xdf\
+6\x8e{\xbd\x1e\xd1\xcdB\xc8\x09o\xa9\x04<\xd1\xbd\
+V\xab\x15\x10w\x7f\x1b\x84\xf3\x92\x5c\xbbR\xa9\x84\xfa\
+\xfaz0\x99L\x0cu\xdf5\xc1Q\xb1d\x18\xc9Q\
+D>\xb6v\xcc\xb4@O\x93_~\xd3\xd6\xdf\xdf\x0f\
+2\x99\x0cD\x22\x11\xa8T*\x90J\xa5\xa0\xd1h \
+K[9\xbe\xe9\x95\xe0\x1f\xb8S\xafy,\xf3\x00\x97\
+\x8e\x22\x9e\xc7\x86\xe6S)\x19\xf6\x82\x82\x02\xe6\xe2\xa0\
+\xa0 \xe0\xf1x`\xb1X@[^\x01\xfb\xcf&\x0c\
+-\xa6S\xceg\x94\xcf\x09L\x83\xe2[{\xe6\xc2`\
+\x9a\xb2\x14\x14\x0a\x05\x88\xc5b\xc8\xcc\xcc\x84\xa2\xa2\x22\
+P\xab\xd5\xd0\xd9\xd9\xc9`\xec\xfe\xc9\xb9\xc9\xdb\xa7u\
+.\xb7\xcfK\x80\xae\xb7\xd8)p\x0e\xc0j\x97\xacx\
+\x88\xca\x7f\x82\xe2)\x89\x0e>\x97+![\x96\x0f\x07\
+c\xe3G\x84\x1f&\xd8\x92rd\x8eo\x1a\xbf\x07\xa3\
+\xd1\x08-\xad-\xf0\xcb\xc0 \x1c8\xf1\xbe\x05\xb3b\
+\xc1\x04\x5ci\x84\x85\x85\x84F\xdc&\xe72\xac,\xcf\
+3\xb5\x13\xec;\xe3\xba\xd33\xaf\x82\xe5\xfez\x89\x06\
+\x9e\xde\xfcb\x1b\xf7<\x92\x8d{f\xabO[\xca5\
+\xedXCC=444\x80\xa5\xb7\x172\x14\xc5\xc3\
+\xf3\xe9\xc0e<\x92\xe5(\x9e6]\xe5\x9c*2x\
+}\xf4\x83.Zl\x121\x0c\x1b%\xeaq\xf7/\xcb\
+'\xef\x05\x87_\xfe\xd3\xe4D\x0bLh\xf4\xc9>u\
+\x95\x1e\x0c\x06\x03\xb4\xb7\xb7\xc3\xd7\xc6\x961\xae\x81\x09\
+f\xf16m8h<I::e\xf8b\x81\x83D\
+\xbdWC\xb6\x0a^\x9b*\xc3\x94\x5c\xb0B\x0f\xab$\
+\xb4\x04\x9fJ\xaa\x9bC71(\xd4O\xf2\x0a\xc7t\
+:\x1d\xd4\xd6\xd6\x82\xc9|\xdb\xb9a\x9b\xf7_\xeab\
+\xb2\xe5~\x9cu\x1f\x0d\xf3\xb2\xd4N\xf2\xf6\xb1\xeb.\
+\xb6\xae\x94\xc3\x90l\x97U\xc1KW\xab\x80\x9cMn\
+Z\xd0\x1cI\xbd\xb1\xe7\x88\xb0\xef\xcaW\xc5PZZ\
+\x0a\x1d?\xf6L\x04\x06\x87t<\xaa\x0b\xc2\x84F\x8d\
+\x07\xc8o\x02\xd9\xf9\xaa~\x9a\xf10F\x8e6 \xaf\
+\xbcJxCi\x00\x92(\x1d\x98\xcd\x95\xb3y\xc3}\
+=\xbf\xf9Dj\xa6].\x97CSK+D\x1c{\
+\xf7\xce\xf4\x14%\xae\xf1\x8a\xf5w\x9c\xf5p\x02\xc2\xd9\
+\x0f\x89\xd1\x81\x03O\x8e\xf7\xdc\xd2i\xe7\xf3\xdfu\xfc\
+o\x14.6\xd2\xef\xd8\x17iI\xbe,\x9d\xc8\xd3\x96\
+;\xa7\x0f1\x8c%\xc6\xdf\x9f\xbaw_q5\xa0A\
+l\xb5\x08\x8c\xf9\x94\xf1\xe0\xf03K\x9a|h\x13Z\
+\xbd\xce\xa3\xd9kOH\xf7\x0c\x0f\xb0\x0f\xfe\xf3\x87\xc8\
+\xf9/\xee\xb9In\x00\xf6{>\xed\xf7\x08\x1e*>\
+]\xe5X\xaa\xf1GZ\xf5\xb6Y\x0b\x11\x1d\xb3C\xc9\
+\x918\x099\xf9\xa9\x96!\xfa\x5c\x1a\x0d\xcf\xb3\xff\xff\
+7\xfcO\x13\xf8\x1d\xe7\x87\x19\xb9D\xc3\x01\xcf\x00\x00\
+\x00\x00IEND\xaeB`\x82\
\x00\x00\x06m\
\x89\
PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
@@ -547,6 +470,83 @@ n\x11`p\xf0\xfdt___\xfa\xcc\x993\xa6\xc5\
\xa5\xd0\x8fx\x02\x89\xb5\x9ec!D\x18x\x13\xd8O\
is\x06\xb4\xf8\xb1\xfa\x1f\xbd\xfa*_\xf2\xd8\x15\x9d\
\x00\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\x04\xa3\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
+\x00\x00\x00\x04gAMA\x00\x00\xd6\xd8\xd4OX2\
+\x00\x00\x00\x19tEXtSoftware\
+\x00Adobe ImageRead\
+yq\xc9e<\x00\x00\x045IDATX\xc3\xe5\
+\x97\xcd\x8fTE\x14\xc5\x7f\xb7\xea\xd6{\xaf\xdbn\xc7\
+\xf9@\x9d\x89FM4\x99D\x8d\x1aH\x98\xc4\x8c\x1f\
+\x1b\xfe\x02L\x5c\xf1\x07\x18\x16.M\x5ckX\xc3\x8e\
+\xc4\x8d\x1b\x17\xce\x82htA\x5c\x18\x0d\xe2\xc4\xc6\x00\
+=`PQ\x19`\x02\xa2\x0e\x0c\x83\xd3\xfd^\xf7\x94\
+\x8b\xaa\xee\xf9`\xe6\x0d\x84Q\x16VR\xa9\xce{\xb7\
+\xeb\x9e:\xf7\xd4\xa9z\xea\xbd\xe7~6\xe5>\xb7>\
+\x80]\xbbv\xbd\x03\xec\xfd\x8f\xf2N5\x1a\x8d\x03\xeb\
+\x19\xd8\xbb\xef\xbd\xa3;\x1f\x1fv\x00\x9c<:\xcf\xcc\
+\x977X\x9c\xef\xdcS\xa6\xda\xa0\xf2\xdck\x03\xbc\xb8\
+g\x10\x80\x8b\x7f\x16|\xf8\xee\x1e\x80\xdb\x00p\xfc\xec\
+\x1c\xdf?0\x04x.\xfd\xb8\xc0\xfe\xb7\xceo\xcbr\
+\x0f\x1dy\x9a\x0b#\x96\xd3\x9f\x1fd\xfc\xd5}\x9bk\
+@E\xb0\x16@xp,#\xcb\xb2m\x0100\x96\
+a\x8dP\x1b|\x14#%\x22\x14+\xd8\x18\x91\xd5\x95\
+s\xe7\xce\x83*\xb8\x04\xd2\x14\xb2\x0c\xd2,\x8cI\x0a\
+I\x12\xdew:\x90\xe7\x90\xb7\xa1\xd5\x82v+\x8em\
+(r\xb2\xfa8\xd6\x0a\xe3\xaf\xbcIk\xf1\xfa\xe6\x00\
+\xac\x15\xac\x15\x04\xb0F\xd8\xbd{\xe7\x16k\xeb\x86\xae\
+\x80Z\xa8V\x81\xeamQ\x8d\xaf\x04\xb5\x82\xf7\xa0\xa6\
+\x84\x01g\x055\x82\x08\xa8\x0a\x95,\xc3# \x1e\x08\
+\xc0\xf0\x1e/\x02\xde#\x12&\x15|\x88#\xc4!\x1e\
+<!^@MX\x18@\xd7J\x89\x06\xac\xa0\xdac\
+\x00\x9a3\xbf\x05\x8aS\x07i\x02\x95\x04\xb24\xf6\x04\
+\x12\x07N\xa1\xe8@^@+\x8f\xbd\x05K9\xb4s\
+\xc8\x0bT\x87q=\x00*\xe5%p1@\xd509\
+\xf9\xd2\xd6\x0a\xf3>\xd0\xaf\x16\xaa\x1b\x8b\xf6\xd8'a\
+a\xbd\x1c%% \x00\xf0\x81\x8d4M\xa3:\xc3\xb3\
+\x98\x11\x89l\x07\xdac\x09V\x98_)F\xfca\xcd\
+r\x7fa\x1d-\xd1\x80:\x09TI\x18O4/\xe0\
+\x9d\x85\xc4!\x89\xc3g\x09\x92i\xd8\x11\x89\xe2\x13\x87\
+X\x8b\xefv\x91\xbc\x80\xbc\x03\xed\x02\xdfj#\xed\x02\
+\xf2\x02\x9fwP\x1dE\xd5 x:\xebTx\x9b\x06\
+\x9c3x\x0f\x03\x8f$\xbc\xfe\xf2\xf3wh\xe86h\
+\xa4\xbe\xf1\xeb\xc6\xfc\xdf\xb1\x04R^\x82DM_\x84\
+\x8f\x0d\xa58\xe7\xb6\xc5\x88\x9e\x18K\xb9v\xb3\x03\x08\
+\x9dR\x11\xaa\x90\xb8P\xefZ\xc50}\xb1\xcb@\xc5\
+\xb0\x0e\xf4&\xadW\xf9U.\xe1\xe1\xc6\xd22\xf5\xcc\
+p}\xc9\x84-\xe9J\x19\x10\x9c\x1a\xc0s\xe5f\x97\
++7\xbb\xacQW?\xd7\xaad~\xc5'\xa2)\xac\
+\x05\x15\xc3\x9c\x0b\xb5w\xa6l\x17\xa8\xc1\xa9 \xc8\x1a\
+5\xaf\x9b5\x1a\x8fY1\x9e\xfe{\xe9\xef\x14\x00\xf1\
+\x82\xef\x9bX0+WV\x02U!\xd1\x90\xfc\xe7S\
+\xdf\xf2\xeb\x99\x13,-\xde\xb8\xa7\xfaWj\x03<\xf5\
+\xecN\x9eya\x02\x0f\xa83[1\x10\x03|\x87\xf7\
+\xf7\xbf\xc1\xc2\xc2\x02\xb7n\xdd\xa2(\x0aD\x04k-\
+\xd6ZT\x15U\xc59\x87\xaab\xad\xc5\x98\xf0\xdf\xe5\
+\xe5e\xf2<\xef\xf7#\xcd\xf9\xb8\xf2-\x18pVP\
+\x17\x18\xdc1:\xb6rO8~\x9c\xe9\xe9i\x8c1\
+x\xef\x99\x98\x98`rr\xf2\x8eY\xd81:\xd6\xdf\
+\x86\xae\xd4\x09Up6\xac\xa2V\xaf\xf7k933\
+\xc3\xd0\xd0\x10\xd6Z\xbc\xf74\x9b\xcd\xbb\x02P\xab\xd7\
+p\xd1\x88\xb4\xd4\x88\x14\x9c\x0b'\x5c\xa0*\x00\xa8V\
+\xabdY\xd6\xa7\xb87\xdeis\x1a\xa9\x17AK\xad\
+8\x1e\xc7\xbd#\xb4\xd7\x8c1\x88D\xdf\x8f:\xb8\xab\
+\x9b\xaf5\xa8\x0d\xf3\xf6\x18.=\x8e\x83)m\xe3\xd5\
+\xdb\x12\xa9\xf7\xe5Vl\xad\xf4\x91\x0e\x8e\x0c\xc3\xf2\xef\
+\xdb\x02\xe0\xa1\x91a\xd4\xc2\xb5+\x97Y\x9c\xbf\xbe\x05\
+\x036\xf8\xc0`\xad\x02\x0b\xdb\xc3\xc0P\xad\xc2\xec\xc5\
+K\x9c\xfd\xee\x1b\xce\x9f\x9c\x9e\x03\xa66\x04`$^\
+J\x05\x12\x0b\xed\x91'\xa9=\x0co\x1f8\xc8f\xc7\
+\x81':\xf1*\xe75\x1e2\x81\x14(\xbap\xf9\xea\
+U\xce4\x8e\xd1\xfc\xfa\x8b\xb9\xd9\x1fN\x1d\x02\x0eo\
+\x08\xe0\xb3\x8f>\xe0\xa7\xd3'W\x99\xe9\xda\xa3\x86U\
+\xe6\xbb\x1e\x04\x1b<_\x1do|w\xee\x8f\xd9_\x0e\
+\x01\x87\x1b\x8d\xc6_\x1b\x01\x98\x9a\xfe\xf4\xe3\x7f\xf5s\
+l}\xf25\x00\xe2\xb7\xda\x81\xff\xdd\xd7\xf1?M\xf0\
+K\xb9\xe8F\x89\xaf\x00\x00\x00\x00IEND\xaeB\
+`\x82\
"
qt_resource_name = b"\
@@ -555,29 +555,29 @@ qt_resource_name = b"\
\x00i\
\x00m\x00a\x00g\x00e\x00s\
\x00\x08\
-\x08\xc8Xg\
-\x00s\
-\x00a\x00v\x00e\x00.\x00p\x00n\x00g\
-\x00\x08\
\x06\xc1Y\x87\
\x00o\
\x00p\x00e\x00n\x00.\x00p\x00n\x00g\
\x00\x07\
-\x0a\xc7W\x87\
-\x00c\
-\x00u\x00t\x00.\x00p\x00n\x00g\
+\x04\xcaW\xa7\
+\x00n\
+\x00e\x00w\x00.\x00p\x00n\x00g\
\x00\x08\
\x06|Z\x07\
\x00c\
\x00o\x00p\x00y\x00.\x00p\x00n\x00g\
\x00\x07\
-\x04\xcaW\xa7\
-\x00n\
-\x00e\x00w\x00.\x00p\x00n\x00g\
+\x0a\xc7W\x87\
+\x00c\
+\x00u\x00t\x00.\x00p\x00n\x00g\
\x00\x09\
\x0a\xa8\xbaG\
\x00p\
\x00a\x00s\x00t\x00e\x00.\x00p\x00n\x00g\
+\x00\x08\
+\x08\xc8Xg\
+\x00s\
+\x00a\x00v\x00e\x00.\x00p\x00n\x00g\
"
qt_resource_struct = b"\
@@ -585,18 +585,18 @@ qt_resource_struct = b"\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x02\
\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00h\x00\x00\x00\x00\x00\x01\x00\x00\x171\
-\x00\x00\x01e\xaf\x16\xd2\x9d\
-\x00\x00\x00R\x00\x00\x00\x00\x00\x01\x00\x00\x11\xf3\
-\x00\x00\x01e\xaf\x16\xd2\x9d\
-\x00\x00\x00(\x00\x00\x00\x00\x00\x01\x00\x00\x04\xa7\
-\x00\x00\x01e\xaf\x16\xd2\x9d\
+\x00\x00\x00(\x00\x00\x00\x00\x00\x01\x00\x00\x08\x1d\
+\x00\x00\x01z\xe7\xee'\x09\
+\x00\x00\x00<\x00\x00\x00\x00\x00\x01\x00\x00\x0bu\
+\x00\x00\x01z\xe7\xee'\x09\
\x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x01e\xaf\x16\xd2\x9d\
-\x00\x00\x00|\x00\x00\x00\x00\x00\x01\x00\x00\x1a\x89\
-\x00\x00\x01e\xaf\x16\xd2\x9d\
-\x00\x00\x00>\x00\x00\x00\x00\x00\x01\x00\x00\x0c\xc4\
-\x00\x00\x01e\xaf\x16\xd2\x9d\
+\x00\x00\x01z\xe7\xee'\x09\
+\x00\x00\x00~\x00\x00\x00\x00\x00\x01\x00\x00\x1cS\
+\x00\x00\x01z\xe7\xee'\x09\
+\x00\x00\x00f\x00\x00\x00\x00\x00\x01\x00\x00\x15\xe2\
+\x00\x00\x01z\xe7\xee'\x09\
+\x00\x00\x00R\x00\x00\x00\x00\x00\x01\x00\x00\x10\xb3\
+\x00\x00\x01z\xe7\xee'\x09\
"
def qInitResources():
diff --git a/examples/widgets/mainwindows/dockwidgets/dockwidgets.py b/examples/widgets/mainwindows/dockwidgets/dockwidgets.py
index 61b1dd781..83487ee58 100644
--- a/examples/widgets/mainwindows/dockwidgets/dockwidgets.py
+++ b/examples/widgets/mainwindows/dockwidgets/dockwidgets.py
@@ -1,57 +1,21 @@
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-#############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-"""PySide6 port of the widgets/mainwindows/dockwidgets example from Qt v5.x, originating from PyQt"""
+"""PySide6 port of the widgets/mainwindows/dockwidgets example from Qt v5.x,
+ originating from PyQt"""
import sys
from PySide6.QtCore import QDate, QFile, Qt, QTextStream
from PySide6.QtGui import (QAction, QFont, QIcon, QKeySequence,
- QTextCharFormat, QTextCursor, QTextTableFormat)
+ QTextCharFormat, QTextCursor, QTextTableFormat)
from PySide6.QtPrintSupport import QPrintDialog, QPrinter
from PySide6.QtWidgets import (QApplication, QDialog, QDockWidget,
- QFileDialog, QListWidget, QMainWindow, QMessageBox, QTextEdit)
+ QFileDialog, QListWidget, QMainWindow,
+ QMessageBox, QTextEdit)
-import dockwidgets_rc
+import dockwidgets_rc # noqa: F401
class MainWindow(QMainWindow):
@@ -100,8 +64,7 @@ class MainWindow(QMainWindow):
cursor.insertBlock()
cursor.insertText("Some Country")
cursor.setPosition(top_frame.lastPosition())
- cursor.insertText(QDate.currentDate().toString("d MMMM yyyy"),
- text_format)
+ cursor.insertText(QDate.currentDate().toString("d MMMM yyyy"), text_format)
cursor.insertBlock()
cursor.insertBlock()
cursor.insertText("Dear ", text_format)
@@ -141,13 +104,12 @@ class MainWindow(QMainWindow):
if not file.open(QFile.WriteOnly | QFile.Text):
reason = file.errorString()
QMessageBox.warning(self, "Dock Widgets",
- "Cannot write file {filename}:\n{reason}.")
+ f"Cannot write file {filename}:\n{reason}.")
return
out = QTextStream(file)
- QApplication.setOverrideCursor(Qt.WaitCursor)
- out << self._text_edit.toHtml()
- QApplication.restoreOverrideCursor()
+ with QApplication.setOverrideCursor(Qt.WaitCursor):
+ out << self._text_edit.toHtml()
self.statusBar().showMessage(f"Saved '{filename}'", 2000)
@@ -182,8 +144,8 @@ class MainWindow(QMainWindow):
if cursor.isNull():
return
cursor.beginEditBlock()
- cursor.movePosition(QTextCursor.PreviousBlock, QTextCursor.MoveAnchor,
- 2)
+ cursor.movePosition(QTextCursor.PreviousBlock,
+ QTextCursor.MoveAnchor, 2)
cursor.insertBlock()
cursor.insertText(paragraph)
cursor.insertBlock()
@@ -191,43 +153,44 @@ class MainWindow(QMainWindow):
def about(self):
QMessageBox.about(self, "About Dock Widgets",
- "The <b>Dock Widgets</b> example demonstrates how to use "
- "Qt's dock widgets. You can enter your own text, click a "
- "customer to add a customer name and address, and click "
- "standard paragraphs to add them.")
+ "The <b>Dock Widgets</b> example demonstrates how to use "
+ "Qt's dock widgets. You can enter your own text, click a "
+ "customer to add a customer name and address, and click "
+ "standard paragraphs to add them.")
def create_actions(self):
icon = QIcon.fromTheme('document-new', QIcon(':/images/new.png'))
self._new_letter_act = QAction(icon, "&New Letter",
- self, shortcut=QKeySequence.New,
- statusTip="Create a new form letter", triggered=self.new_letter)
+ self, shortcut=QKeySequence.New,
+ statusTip="Create a new form letter",
+ triggered=self.new_letter)
icon = QIcon.fromTheme('document-save', QIcon(':/images/save.png'))
self._save_act = QAction(icon, "&Save...", self,
- shortcut=QKeySequence.Save,
- statusTip="Save the current form letter", triggered=self.save)
+ shortcut=QKeySequence.Save,
+ statusTip="Save the current form letter", triggered=self.save)
icon = QIcon.fromTheme('document-print', QIcon(':/images/print.png'))
self._print_act = QAction(icon, "&Print...", self,
- shortcut=QKeySequence.Print,
- statusTip="Print the current form letter",
- triggered=self.print_)
+ shortcut=QKeySequence.Print,
+ statusTip="Print the current form letter",
+ triggered=self.print_)
icon = QIcon.fromTheme('edit-undo', QIcon(':/images/undo.png'))
self._undo_act = QAction(icon, "&Undo", self,
- shortcut=QKeySequence.Undo,
- statusTip="Undo the last editing action", triggered=self.undo)
+ shortcut=QKeySequence.Undo,
+ statusTip="Undo the last editing action", triggered=self.undo)
self._quit_act = QAction("&Quit", self, shortcut="Ctrl+Q",
- statusTip="Quit the application", triggered=self.close)
+ statusTip="Quit the application", triggered=self.close)
self._about_act = QAction("&About", self,
- statusTip="Show the application's About box",
- triggered=self.about)
+ statusTip="Show the application's About box",
+ triggered=self.about)
self._about_qt_act = QAction("About &Qt", self,
- statusTip="Show the Qt library's About box",
- triggered=QApplication.instance().aboutQt)
+ statusTip="Show the Qt library's About box",
+ triggered=QApplication.instance().aboutQt)
def create_menus(self):
self._file_menu = self.menuBar().addMenu("&File")
@@ -280,21 +243,21 @@ class MainWindow(QMainWindow):
self._paragraphs_list.addItems((
"Thank you for your payment which we have received today.",
"Your order has been dispatched and should be with you within "
- "28 days.",
+ "28 days.",
"We have dispatched those items that were in stock. The rest of "
- "your order will be dispatched once all the remaining items "
- "have arrived at our warehouse. No additional shipping "
- "charges will be made.",
+ "your order will be dispatched once all the remaining items "
+ "have arrived at our warehouse. No additional shipping "
+ "charges will be made.",
"You made a small overpayment (less than $5) which we will keep "
- "on account for you, or return at your request.",
+ "on account for you, or return at your request.",
"You made a small underpayment (less than $1), but we have sent "
- "your order anyway. We'll add this underpayment to your next "
- "bill.",
+ "your order anyway. We'll add this underpayment to your next "
+ "bill.",
"Unfortunately you did not send enough money. Please remit an "
- "additional $. Your order will be dispatched as soon as the "
- "complete amount has been received.",
+ "additional $. Your order will be dispatched as soon as the "
+ "complete amount has been received.",
"You made an overpayment (more than $5). Do you wish to buy more "
- "items, or should we return the excess to you?"))
+ "items, or should we return the excess to you?"))
dock.setWidget(self._paragraphs_list)
self.addDockWidget(Qt.RightDockWidgetArea, dock)
self._view_menu.addAction(dock.toggleViewAction())
diff --git a/examples/widgets/mainwindows/dockwidgets/dockwidgets.pyproject b/examples/widgets/mainwindows/dockwidgets/dockwidgets.pyproject
index 2df11468e..9abbf7485 100644
--- a/examples/widgets/mainwindows/dockwidgets/dockwidgets.pyproject
+++ b/examples/widgets/mainwindows/dockwidgets/dockwidgets.pyproject
@@ -1,3 +1,3 @@
{
- "files": ["dockwidgets.qrc", "dockwidgets.py", "dockwidgets_rc.py"]
+ "files": ["dockwidgets.qrc", "dockwidgets.py"]
}
diff --git a/examples/widgets/mainwindows/dockwidgets/dockwidgets_rc.py b/examples/widgets/mainwindows/dockwidgets/dockwidgets_rc.py
index a6052b3b2..5d30d0927 100644
--- a/examples/widgets/mainwindows/dockwidgets/dockwidgets_rc.py
+++ b/examples/widgets/mainwindows/dockwidgets/dockwidgets_rc.py
@@ -1,6 +1,6 @@
# Resource object code (Python 3)
# Created by: object code
-# Created by: The Resource Compiler for Qt version 5.14.0
+# Created by: The Resource Compiler for Qt version 6.2.2
# WARNING! All changes made in this file will be lost!
from PySide6 import QtCore
@@ -117,127 +117,6 @@ V\xaf^\xdd@\xf7Y\x84p\xc57\x82\xa1\x22\xa5\x0b\
\x14\x9fe\xdf\x12~T\x1cJ\x97\xa8\xf3\xc5\xfc\x0f\xd1\
\xc2G\xb4c\xf2\xc9\xfc\x00\x00\x00\x00IEND\xae\
B`\x82\
-\x00\x00\x07f\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
-\x00\x00\x07-IDATx^\xb5V]o\x1cW\
-\x19~\xce\xc7|\xec\x97\xd7n\x9c8\xc6\x89\x03I\x9a\
-&M!\xaa\x08\x95\xb8@\xca%\x08\x89\xfb\x8a+\xee\
-\xb8AHH !!\x047\x5c\xf1\x03\xb8\x00\xa9p\
-\x83\xa2\x0aQ\x22\x017 \x15\xd1\xa0\xe6\xb3\xadS+\
-I\x9b\xa4\xb1\xe3\x8f\xb5\xbd;\x9bY\xef\xcc\xce\xce\xcc\
-9\x87\xf3\x1e-+\xd3:\xf5\x02\xe2X\x8f\xde9\xc7\
-\x1a?\xcf\xfb\xbc\xefy\xc7\xcc\x18\x83\xffu]\xbc\xf8\
-m\x0e T\xaa\xa8h]\xd6\x19\xe3\x14\xa7t\xa9\xea\
-Z\x95\x15\xad\xf4\x941hz\x15\xb9\xba\xbc|\xf9M\
-\x00\x99\xe5\xd5\x00 \xf7\x12\x5c\xf8\xc2\xb7\xbe\x94\xa5\x83\
-S@Yc\xe0u?\x0ckBzU\x18V\x07P\
-c\x8c\xd5\x00\xd4\xc1\x10Z\xd0Y\x08\x98\x0a\x98\x0e\xb5\
-1\x81\x86\xf64+=K*\x99'\xc5\xdc\xe9\xe7\xd9\
-\xd9\x17\xcf\xf2\xc6\xcc\x0c\x13\xcd\x19\xf1\x97_\xbd\xf6\x00\
-\xc0\xab\x16\x14\xe3O\x088<\x7f\xf8\x97_\xfc\xca\xcb\
-/e\xdaSyQ\xb0;7\xdfb\x1f\xdc}\x17^\
-\xe0\x81\x0b0\xce\x01!\xb8\x83\xe7\x09\x16\x04\x92\x85\xa1\
-\x8f\x8aE\xb5\x1a\xda\x18\xa2^\xab\xa2V\xab`\xee\xe8\
-\x02N_\xf82\xael\x7f\x16\xed\xf6\x03\xf0\xd62\x94\
-*\xe7\x01\xbcb\xd1\xd9W\xc0\xc9s\xa7\xce\x7f\xe3{\
-\xaf\xf2\xdf\xfdc\xc8?\xba\xf9\x16\xe6\x16$~\xf8\xdd\
-\x1f\xa1T@\x18\x04\xf0=\x89j\xa5\x820\x0c\x10\xf8\
-\x9e\xdd\xfb\x90R@\x08\x01\xce\x18\x98\x05\x18 \xa5\xe7\
-\xce\xb3\x5c\xe1'W;xx{\x09\xcf\x9bw\xe1\xab\
-\x5c\x00 \x11\xa1\x05>!`7\xc9\xb37o\x0fk\
-\xbf\xf9\xeb\x0a:\xd7\x96\xf0\xcdS\x06_\xff\xea\xd7\xb0\
-\xb1\xbe\x8e~\xd2G\x96\x0d\xa1\x94BY\x14\xc8\x87C\
-h\xada\x8cq\xb1,\xcb1\xe8\xcc\x89\x11>N\x1e\
-:\x89\xf5\x13\xaf\xa0\x9a\xe7(W\xaf\x01\x00#\xec+\
-\x80^T\xf4\xc7\x94q/GOc\xdcx\xfb*\xd6\
-6\xb7Q\x14\x85#\xe3\x9c\xec\xa7\x0c%\xc1eO\x8b\
-D\xd0\xa2\xdf\xfb\xbeo\xcbPC\xb5\xd1\x84\xfc@!\
-\xacV!\x94@\xb9\x87k_\x01$Z\x0a\x8e\xc0\x13\
-\x80d\x08\xc3\x0a\x16\x17\x17\xc1\xbd\x902'\x01DH\
-\xd9\x8dA\xcb\xed9\x07\xed8\xf5\x87\xf4\x5c?\x88\xa0\
-\x0a\xc9\x13\x04\x82\xc1\xe3@~\x90\x00\x80Ap\x06_\
-p\x80\x19\xd4m\x16s\x9f9\x8a$+\x9c\xfdE1\
-\x1cYn\xe0~\x94\x866\xe4\x9cv\x0e9\x94\x05T\
-\xa9\xe0\x16\xb7B*/\xc2\xf72'\x1c\x07:`A\
-\xdc\xbe\xc7 }\x89\xa8\x1b\xe1\xf6\xf5\x9b\xd8\xdc\x89\xc8\
-\xe2\xb1\xbdA\x10P\x19\xe8\x99\x1a\x93\x1c\xb0D\x15\xb2\
-\x9f\x88\xdcy\xd5\xda\xeeY\x07~\xfdF\x8c@\x0a\x97\
-\x18\xd8\x81\x0e\x18H\xce\xe0Ia#P\xaf\xd7\xf1\xc2\
-\xf9\xcfc\xb6\x13\x8d\xad\xfe\xb7\x12\xb87\x00\xce\xc8\xb1\
-q\x1c\x97\x85\x1a2\x94\x02\xa1\xa7!\x05;\xd8\x01\x22\
-\x90\x92#\xb0\x90\x8cQ#Y\xd4Q\x14\xa5C\xa9J\
-\xa8Q\x97\x13@\x11\xb0gd}\x89\xe10GY\x94\
-P\xda\xf5\x0b\x0c\x97\xa8\x86\xc7\x10\xf8\x8a\x12\x9b\xac\x04\
-\x94y\xe8\xb9FD\xa7\xbd\x83{\xcbKhw{.\
-s\xcf\xf7\xdd<\xa8\x84\x15\x04\x81\x0f?\x08!=9\
-\xb6\x9e@7\xc3se\xe1\xa0\xf5\xfb\xf5mW\x02\x8f\
-\xcc9H\x00)\xf0\x84s\xc0\x92y\x98=d\xa7\xd9\
-\x99s89\xba~\xd25\xe7~\x99\x18\x17\xb42\xc8\
-J N4\xb2B!\xb7\xfbj@%0\x936!\
-\x83\xeb\x01\x01Tg\xe60\x7f\xa6\x09\xe9yn6d\
-\x85Aw\xa0\x90\xe4\x06i\xae\xd1\xb7\xb1?\xd4\xd8\xcd\
-4zC\xe3blAgin\xa0\x0c\x5c\x89:\x03\
-\x8df5\x04\x04\x0e\x16\xc0\x19)\x05|\xa1\xec\xf5;\
-\x81;\x9a\xe1\xfbWv0[\x15\x18\x94\x06\x89%\x1c\
-\x14\x06y9\x82\x02JcP\x8e\x9e\x15\x18\xc08\x04\
-\x97`\xe4\x96.\x1dosJ\xa0\xa0\xfd$s\x80j\
-\x15p\x86\xe9\xa9\x06J\x0e\xdco\x15\xb8\x8b\x02\xca\xd0\
-\xb0\x11`BB\xba\x9asp\xc9\xc0\x8d\x86`9\xbc\
-\xb2\x0f=\xe8#\xdd\x8d0\xe8E(\x8b\x1cSGO\
-b\xfe\xd8\x09T|\x01#0\xc95\x84\xb3?\xf4\x05\
-\x187\x90\x9e\xef\xb2(\xb3\x14&\xddE\x96\xc6\xc8z\
-\x16I\x17\xc3$\x86\xca\xfa\x10j\x80\x9a\xd4\x98\xaeI\
-\x1cnVq\xee\xb9\x06\xe6N7p\xe4\xd04\x9a3\
-\x1aot|\xd7W\x1eM\xca\xc9F1\x09\x90\x964\
-\xc6\xfa;\x7fB\xda\xfa\x10S\x15\x89C\x8d\x10\x0b\xd3\
-5\xcc\x1fmbv\xba\x8e\x99\xc6\x09\x1c\x9d\x9d\xc6\x9c\
-\xc5sSuT+\x81k\xd4R)\xa4\x83\x0c\xbb\xfd\
-\x04\xbd\xfe\x10\x8b&\xc0@\x0b\xe4\x93\xcc\x01\x0e'\xc0\
-Z\xe6c;j\xe1\xe2\x91\x1c?\xfd\xf1w\xb0\xb1\xb9\
-\x85\xcd\x8du\xb4Z-D\xdd6\x9a\xd08s\xfc8\
-\x820t\x9f\xe1$\xcb\xa9\xeb\xdd\x1c1\xc6\x8cF\xb2\
-\x86a@=\x14\xd0\x05G:\x89\x00\x8c\x1c\xf0\x03\x09\
-fJW\x0e\xc6\x04\xee}\xf8\x08\x97/_\xc6`0\
-p#vjj\x0a\xc7N|\xce\xcd\x81O[D\x19\
-\xd0\xb5\x06\x0d\xb6\xfd\x9b\xf0c\xa7\xcc\x91\x06\xa3A\xc4\
-\x19w\x83e}}\x9d\xc8\xdd\x97\xf1\xb8\xcd\x9c\xbe\x03\
-\x93.\x9f&\xab\xcf\xe0\xfb\xf2`\x01\x9c\x8d&\xa1\xe4\
-\xeeE\xce\x01\x03C\x84\xf4\xb1q\x1f\x19!\x04\xed\xc9\
-\xee\xc9\x04\xf8\x1c\x013(\xd2\x0e\x98\x19\xdb\xc0\x9e\xe1\
-\x80\x13\xe0\xc8}\xc1]}a\xc6\xdf\x89q\x8d\xff\x93\
-\x15H\xa0\xfb\xf0\x06V\x97\xdeG\xb7\xbb\xb2\x0e`h\
-Q>S\x80\x10\x80'\xb9\x05\x95\xc0i\xfd\xaf\x17\xe9\
-g\xfd\x16\xee\xfe\xed\x0f\xb8\x7f\xeb\xc1\xf6\xda\xda\x8d\xeb\
-\x00V,z\xfb\xdf\x02>jB\xc9 \xe5\xbf2\x06\
-\x14]\xad4\xa5> \xfbi\xff\xa9%\x10\x82\xbb\x9a\
-kSb\xe5\xfa\x9fq\xef\xdarou\xe5\xd6\xad\xa2\
-HH\xc0{\x16\xdd}\x05\xc00g\x89 !\x16\x9c\
-3h\xad1;;\x8bK\x97.aaa\x01\xd3\xd3\
-\xd3h4\x1a\xee?c)\x85\x8d\x9e{\xe6\x5c \xcf\
-K<}\x9a\x98v\xbb\xc7\xda\xed\x18\xbd\xdd\x0cw\xaf\
-=\x1a>y|\xe7N\x92l\xbd\x0d\xe0\x9a\xc5G\x16\
-\xf93\x07Q\xa3\x0a\xcc\x1f\x06\xe2\xc3M\x84\xba\x81\xbc\
-\xc8q\xe1\xc2K8\x7f\xfe\x05K\x90C)\xedf\x7f\
-\xb7\x9b\x22Ib\xc4q\x86(J\xcc\xf6vWmm\
-\xed\x0c\xdb\xed\xad~\xaf\x17\xc5i\xda\xe9\xc6\xf1V{\
-u\xf5\xe1\xd6`\xb0\xfb\x00\x00e\x7f\xdf\xa2o\xec\xda\
-W\x80\xe7K\x7f\xd0Oq\xf5\xb7\xafac\xed\x09\xce\
-\xce\x1f1\x0f\x1fm\xe3\xf1J\x8bEQ\xdf\x92&&\
-\x8av\xcbN'\xca\xba\xdd\x9d~\x1c\xb7\xe38\xde\x89\
-\xba\xdd\xcdv\xbb\xbd\xd1N\xd3^D\x04\x16\xb1Eo\
-\x14\x9fZ\xb4,6i?&\xdfO\xc0\xe3Gk\x1b\
-?\xff\xc1/\x16\xef\xbe\xf7~\x91&Y\xb1\x94\xdf\xcb\
-\xae\xbc\xfe\xf7~\xad\x86\xdd~?\xeaF\xd1F{g\
-gm{8\x1c\x10\xc1\xee\x98d\x0c\xb7O,2\x8b\
-\xe1\x9e\x98[\xde\xf2\xc0Ixo\xe9\xf6\xcfz\xbd'\
-/\xa7\x83V}0\x88\x22\xadKR\xdf'\xec!|\
-:zN\x1d\xc1\x98dL\xa4p\xf0\xda_\xc0\xc3G\
-\x7f|\x1d\xc0;\x16\xcdQ&\xbd\xbdY|\x8cHO\
-\xc81\xb9\x80\x11\xe1\xf2h>\x14#\x22\x83\xff\xe3\xfa\
-'\x0a\xd7w\xe2\xf8Nm\x80\x00\x00\x00\x00IEN\
-D\xaeB`\x82\
\x00\x00\x06\xe8\
\x89\
PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
@@ -415,6 +294,127 @@ D\x83b\xd7\xfd\xfb.\x0c\xa2\xac\xf3\xfd\x94h\x0f\xec\
\xa6\xfd\xd1\xdazi\x87\x02\xcd^\xff\x01\xf9h\x10\x8e\
\x11Wv$\x00\x00\x00\x00IEND\xaeB`\x82\
\
+\x00\x00\x07f\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
+\x00\x00\x07-IDATx^\xb5V]o\x1cW\
+\x19~\xce\xc7|\xec\x97\xd7n\x9c8\xc6\x89\x03I\x9a\
+&M!\xaa\x08\x95\xb8@\xca%\x08\x89\xfb\x8a+\xee\
+\xb8AHH !!\x047\x5c\xf1\x03\xb8\x00\xa9p\
+\x83\xa2\x0aQ\x22\x017 \x15\xd1\xa0\xe6\xb3\xadS+\
+I\x9b\xa4\xb1\xe3\x8f\xb5\xbd;\x9bY\xef\xcc\xce\xce\xcc\
+9\x87\xf3\x1e-+\xd3:\xf5\x02\xe2X\x8f\xde9\xc7\
+\x1a?\xcf\xfb\xbc\xefy\xc7\xcc\x18\x83\xffu]\xbc\xf8\
+m\x0e T\xaa\xa8h]\xd6\x19\xe3\x14\xa7t\xa9\xea\
+Z\x95\x15\xad\xf4\x941hz\x15\xb9\xba\xbc|\xf9M\
+\x00\x99\xe5\xd5\x00 \xf7\x12\x5c\xf8\xc2\xb7\xbe\x94\xa5\x83\
+S@Yc\xe0u?\x0ckBzU\x18V\x07P\
+c\x8c\xd5\x00\xd4\xc1\x10Z\xd0Y\x08\x98\x0a\x98\x0e\xb5\
+1\x81\x86\xf64+=K*\x99'\xc5\xdc\xe9\xe7\xd9\
+\xd9\x17\xcf\xf2\xc6\xcc\x0c\x13\xcd\x19\xf1\x97_\xbd\xf6\x00\
+\xc0\xab\x16\x14\xe3O\x088<\x7f\xf8\x97_\xfc\xca\xcb\
+/e\xdaSyQ\xb0;7\xdfb\x1f\xdc}\x17^\
+\xe0\x81\x0b0\xce\x01!\xb8\x83\xe7\x09\x16\x04\x92\x85\xa1\
+\x8f\x8aE\xb5\x1a\xda\x18\xa2^\xab\xa2V\xab`\xee\xe8\
+\x02N_\xf82\xael\x7f\x16\xed\xf6\x03\xf0\xd62\x94\
+*\xe7\x01\xbcb\xd1\xd9W\xc0\xc9s\xa7\xce\x7f\xe3{\
+\xaf\xf2\xdf\xfdc\xc8?\xba\xf9\x16\xe6\x16$~\xf8\xdd\
+\x1f\xa1T@\x18\x04\xf0=\x89j\xa5\x820\x0c\x10\xf8\
+\x9e\xdd\xfb\x90R@\x08\x01\xce\x18\x98\x05\x18 \xa5\xe7\
+\xce\xb3\x5c\xe1'W;xx{\x09\xcf\x9bw\xe1\xab\
+\x5c\x00 \x11\xa1\x05>!`7\xc9\xb37o\x0fk\
+\xbf\xf9\xeb\x0a:\xd7\x96\xf0\xcdS\x06_\xff\xea\xd7\xb0\
+\xb1\xbe\x8e~\xd2G\x96\x0d\xa1\x94BY\x14\xc8\x87C\
+h\xada\x8cq\xb1,\xcb1\xe8\xcc\x89\x11>N\x1e\
+:\x89\xf5\x13\xaf\xa0\x9a\xe7(W\xaf\x01\x00#\xec+\
+\x80^T\xf4\xc7\x94q/GOc\xdcx\xfb*\xd6\
+6\xb7Q\x14\x85#\xe3\x9c\xec\xa7\x0c%\xc1eO\x8b\
+D\xd0\xa2\xdf\xfb\xbeo\xcbPC\xb5\xd1\x84\xfc@!\
+\xacV!\x94@\xb9\x87k_\x01$Z\x0a\x8e\xc0\x13\
+\x80d\x08\xc3\x0a\x16\x17\x17\xc1\xbd\x902'\x01DH\
+\xd9\x8dA\xcb\xed9\x07\xed8\xf5\x87\xf4\x5c?\x88\xa0\
+\x0a\xc9\x13\x04\x82\xc1\xe3@~\x90\x00\x80Ap\x06_\
+p\x80\x19\xd4m\x16s\x9f9\x8a$+\x9c\xfdE1\
+\x1cYn\xe0~\x94\x866\xe4\x9cv\x0e9\x94\x05T\
+\xa9\xe0\x16\xb7B*/\xc2\xf72'\x1c\x07:`A\
+\xdc\xbe\xc7 }\x89\xa8\x1b\xe1\xf6\xf5\x9b\xd8\xdc\x89\xc8\
+\xe2\xb1\xbdA\x10P\x19\xe8\x99\x1a\x93\x1c\xb0D\x15\xb2\
+\x9f\x88\xdcy\xd5\xda\xeeY\x07~\xfdF\x8c@\x0a\x97\
+\x18\xd8\x81\x0e\x18H\xce\xe0Ia#P\xaf\xd7\xf1\xc2\
+\xf9\xcfc\xb6\x13\x8d\xad\xfe\xb7\x12\xb87\x00\xce\xc8\xb1\
+q\x1c\x97\x85\x1a2\x94\x02\xa1\xa7!\x05;\xd8\x01\x22\
+\x90\x92#\xb0\x90\x8cQ#Y\xd4Q\x14\xa5C\xa9J\
+\xa8Q\x97\x13@\x11\xb0gd}\x89\xe10GY\x94\
+P\xda\xf5\x0b\x0c\x97\xa8\x86\xc7\x10\xf8\x8a\x12\x9b\xac\x04\
+\x94y\xe8\xb9FD\xa7\xbd\x83{\xcbKhw{.\
+s\xcf\xf7\xdd<\xa8\x84\x15\x04\x81\x0f?\x08!=9\
+\xb6\x9e@7\xc3se\xe1\xa0\xf5\xfb\xf5mW\x02\x8f\
+\xcc9H\x00)\xf0\x84s\xc0\x92y\x98=d\xa7\xd9\
+\x99s89\xba~\xd25\xe7~\x99\x18\x17\xb42\xc8\
+J N4\xb2B!\xb7\xfbj@%0\x936!\
+\x83\xeb\x01\x01Tg\xe60\x7f\xa6\x09\xe9yn6d\
+\x85Aw\xa0\x90\xe4\x06i\xae\xd1\xb7\xb1?\xd4\xd8\xcd\
+4zC\xe3blAgin\xa0\x0c\x5c\x89:\x03\
+\x8df5\x04\x04\x0e\x16\xc0\x19)\x05|\xa1\xec\xf5;\
+\x81;\x9a\xe1\xfbWv0[\x15\x18\x94\x06\x89%\x1c\
+\x14\x06y9\x82\x02JcP\x8e\x9e\x15\x18\xc08\x04\
+\x97`\xe4\x96.\x1dosJ\xa0\xa0\xfd$s\x80j\
+\x15p\x86\xe9\xa9\x06J\x0e\xdco\x15\xb8\x8b\x02\xca\xd0\
+\xb0\x11`BB\xba\x9asp\xc9\xc0\x8d\x86`9\xbc\
+\xb2\x0f=\xe8#\xdd\x8d0\xe8E(\x8b\x1cSGO\
+b\xfe\xd8\x09T|\x01#0\xc95\x84\xb3?\xf4\x05\
+\x187\x90\x9e\xef\xb2(\xb3\x14&\xddE\x96\xc6\xc8z\
+\x16I\x17\xc3$\x86\xca\xfa\x10j\x80\x9a\xd4\x98\xaeI\
+\x1cnVq\xee\xb9\x06\xe6N7p\xe4\xd04\x9a3\
+\x1aot|\xd7W\x1eM\xca\xc9F1\x09\x90\x964\
+\xc6\xfa;\x7fB\xda\xfa\x10S\x15\x89C\x8d\x10\x0b\xd3\
+5\xcc\x1fmbv\xba\x8e\x99\xc6\x09\x1c\x9d\x9d\xc6\x9c\
+\xc5sSuT+\x81k\xd4R)\xa4\x83\x0c\xbb\xfd\
+\x04\xbd\xfe\x10\x8b&\xc0@\x0b\xe4\x93\xcc\x01\x0e'\xc0\
+Z\xe6c;j\xe1\xe2\x91\x1c?\xfd\xf1w\xb0\xb1\xb9\
+\x85\xcd\x8du\xb4Z-D\xdd6\x9a\xd08s\xfc8\
+\x820t\x9f\xe1$\xcb\xa9\xeb\xdd\x1c1\xc6\x8cF\xb2\
+\x86a@=\x14\xd0\x05G:\x89\x00\x8c\x1c\xf0\x03\x09\
+fJW\x0e\xc6\x04\xee}\xf8\x08\x97/_\xc6`0\
+p#vjj\x0a\xc7N|\xce\xcd\x81O[D\x19\
+\xd0\xb5\x06\x0d\xb6\xfd\x9b\xf0c\xa7\xcc\x91\x06\xa3A\xc4\
+\x19w\x83e}}\x9d\xc8\xdd\x97\xf1\xb8\xcd\x9c\xbe\x03\
+\x93.\x9f&\xab\xcf\xe0\xfb\xf2`\x01\x9c\x8d&\xa1\xe4\
+\xeeE\xce\x01\x03C\x84\xf4\xb1q\x1f\x19!\x04\xed\xc9\
+\xee\xc9\x04\xf8\x1c\x013(\xd2\x0e\x98\x19\xdb\xc0\x9e\xe1\
+\x80\x13\xe0\xc8}\xc1]}a\xc6\xdf\x89q\x8d\xff\x93\
+\x15H\xa0\xfb\xf0\x06V\x97\xdeG\xb7\xbb\xb2\x0e`h\
+Q>S\x80\x10\x80'\xb9\x05\x95\xc0i\xfd\xaf\x17\xe9\
+g\xfd\x16\xee\xfe\xed\x0f\xb8\x7f\xeb\xc1\xf6\xda\xda\x8d\xeb\
+\x00V,z\xfb\xdf\x02>jB\xc9 \xe5\xbf2\x06\
+\x14]\xad4\xa5> \xfbi\xff\xa9%\x10\x82\xbb\x9a\
+kSb\xe5\xfa\x9fq\xef\xdarou\xe5\xd6\xad\xa2\
+HH\xc0{\x16\xdd}\x05\xc00g\x89 !\x16\x9c\
+3h\xad1;;\x8bK\x97.aaa\x01\xd3\xd3\
+\xd3h4\x1a\xee?c)\x85\x8d\x9e{\xe6\x5c \xcf\
+K<}\x9a\x98v\xbb\xc7\xda\xed\x18\xbd\xdd\x0cw\xaf\
+=\x1a>y|\xe7N\x92l\xbd\x0d\xe0\x9a\xc5G\x16\
+\xf93\x07Q\xa3\x0a\xcc\x1f\x06\xe2\xc3M\x84\xba\x81\xbc\
+\xc8q\xe1\xc2K8\x7f\xfe\x05K\x90C)\xedf\x7f\
+\xb7\x9b\x22Ib\xc4q\x86(J\xcc\xf6vWmm\
+\xed\x0c\xdb\xed\xad~\xaf\x17\xc5i\xda\xe9\xc6\xf1V{\
+u\xf5\xe1\xd6`\xb0\xfb\x00\x00e\x7f\xdf\xa2o\xec\xda\
+W\x80\xe7K\x7f\xd0Oq\xf5\xb7\xafac\xed\x09\xce\
+\xce\x1f1\x0f\x1fm\xe3\xf1J\x8bEQ\xdf\x92&&\
+\x8av\xcbN'\xca\xba\xdd\x9d~\x1c\xb7\xe38\xde\x89\
+\xba\xdd\xcdv\xbb\xbd\xd1N\xd3^D\x04\x16\xb1Eo\
+\x14\x9fZ\xb4,6i?&\xdfO\xc0\xe3Gk\x1b\
+?\xff\xc1/\x16\xef\xbe\xf7~\x91&Y\xb1\x94\xdf\xcb\
+\xae\xbc\xfe\xf7~\xad\x86\xdd~?\xeaF\xd1F{g\
+gm{8\x1c\x10\xc1\xee\x98d\x0c\xb7O,2\x8b\
+\xe1\x9e\x98[\xde\xf2\xc0Ixo\xe9\xf6\xcfz\xbd'\
+/\xa7\x83V}0\x88\x22\xadKR\xdf'\xec!|\
+:zN\x1d\xc1\x98dL\xa4p\xf0\xda_\xc0\xc3G\
+\x7f|\x1d\xc0;\x16\xcdQ&\xbd\xbdY|\x8cHO\
+\xc81\xb9\x80\x11\xe1\xf2h>\x14#\x22\x83\xff\xe3\xfa\
+'\x0a\xd7w\xe2\xf8Nm\x80\x00\x00\x00\x00IEN\
+D\xaeB`\x82\
"
qt_resource_name = b"\
@@ -427,10 +427,6 @@ qt_resource_name = b"\
\x00p\
\x00r\x00i\x00n\x00t\x00.\x00p\x00n\x00g\
\x00\x08\
-\x08\xc8Xg\
-\x00s\
-\x00a\x00v\x00e\x00.\x00p\x00n\x00g\
-\x00\x08\
\x04\xb2X\xc7\
\x00u\
\x00n\x00d\x00o\x00.\x00p\x00n\x00g\
@@ -438,6 +434,10 @@ qt_resource_name = b"\
\x04\xcaW\xa7\
\x00n\
\x00e\x00w\x00.\x00p\x00n\x00g\
+\x00\x08\
+\x08\xc8Xg\
+\x00s\
+\x00a\x00v\x00e\x00.\x00p\x00n\x00g\
"
qt_resource_struct = b"\
@@ -446,13 +446,13 @@ qt_resource_struct = b"\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x02\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x01e\xaf\x16\xd2\x9d\
-\x00\x00\x00@\x00\x00\x00\x00\x00\x01\x00\x00\x0e2\
-\x00\x00\x01e\xaf\x16\xd2\x9d\
-\x00\x00\x00V\x00\x00\x00\x00\x00\x01\x00\x00\x15\x1e\
-\x00\x00\x01e\xaf\x16\xd2\x9d\
+\x00\x00\x01z\xe7\xee'\x09\
\x00\x00\x00*\x00\x00\x00\x00\x00\x01\x00\x00\x06\xc8\
-\x00\x00\x01e\xaf\x16\xd2\x9d\
+\x00\x00\x01z\xe7\xee'\x09\
+\x00\x00\x00@\x00\x00\x00\x00\x00\x01\x00\x00\x0d\xb4\
+\x00\x00\x01z\xe7\xee'\x09\
+\x00\x00\x00T\x00\x00\x00\x00\x00\x01\x00\x00\x11\x89\
+\x00\x00\x01z\xe7\xee'\x09\
"
def qInitResources():
diff --git a/examples/widgets/mainwindows/mdi/images/new.png b/examples/widgets/mainwindows/mdi/images/new.png
deleted file mode 100644
index 12131b010..000000000
--- a/examples/widgets/mainwindows/mdi/images/new.png
+++ /dev/null
Binary files differ
diff --git a/examples/widgets/mainwindows/mdi/images/save.png b/examples/widgets/mainwindows/mdi/images/save.png
deleted file mode 100644
index daba865fa..000000000
--- a/examples/widgets/mainwindows/mdi/images/save.png
+++ /dev/null
Binary files differ
diff --git a/examples/widgets/mainwindows/mdi/mdi.py b/examples/widgets/mainwindows/mdi/mdi.py
index a6ea6284d..c1fa01b8c 100644
--- a/examples/widgets/mainwindows/mdi/mdi.py
+++ b/examples/widgets/mainwindows/mdi/mdi.py
@@ -1,44 +1,6 @@
-
-#############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the widgets/mainwindows/mdi example from Qt v5.x, originating from PyQt"""
@@ -46,13 +8,13 @@ from argparse import ArgumentParser, RawTextHelpFormatter
from functools import partial
import sys
-from PySide6.QtCore import (QByteArray, QFile, QFileInfo, QPoint, QSettings,
- QSaveFile, QSize, QTextStream, Qt)
+from PySide6.QtCore import (QByteArray, QFile, QFileInfo, QSettings,
+ QSaveFile, QTextStream, Qt, Slot)
from PySide6.QtGui import QAction, QIcon, QKeySequence
from PySide6.QtWidgets import (QApplication, QFileDialog, QMainWindow,
- QMdiArea, QMessageBox, QTextEdit, QWidget)
+ QMdiArea, QMessageBox, QTextEdit)
-import mdi_rc
+import PySide6.QtExampleIcons # noqa: F401
class MdiChild(QTextEdit):
@@ -81,9 +43,8 @@ class MdiChild(QTextEdit):
return False
instr = QTextStream(file)
- QApplication.setOverrideCursor(Qt.WaitCursor)
- self.setPlainText(instr.readAll())
- QApplication.restoreOverrideCursor()
+ with QApplication.setOverrideCursor(Qt.WaitCursor):
+ self.setPlainText(instr.readAll())
self.set_current_file(fileName)
@@ -106,18 +67,17 @@ class MdiChild(QTextEdit):
def save_file(self, fileName):
error = None
- QApplication.setOverrideCursor(Qt.WaitCursor)
- file = QSaveFile(fileName)
- if file.open(QFile.WriteOnly | QFile.Text):
- outstr = QTextStream(file)
- outstr << self.toPlainText()
- if not file.commit():
+ with QApplication.setOverrideCursor(Qt.WaitCursor):
+ file = QSaveFile(fileName)
+ if file.open(QFile.WriteOnly | QFile.Text):
+ outstr = QTextStream(file)
+ outstr << self.toPlainText()
+ if not file.commit():
+ reason = file.errorString()
+ error = f"Cannot write file {fileName}:\n{reason}."
+ else:
reason = file.errorString()
- error = f"Cannot write file {fileName}:\n{reason}."
- else:
- reason = file.errorString()
- error = f"Cannot open file {fileName}:\n{reason}."
- QApplication.restoreOverrideCursor()
+ error = f"Cannot open file {fileName}:\n{reason}."
if error:
QMessageBox.warning(self, "MDI", error)
@@ -146,7 +106,7 @@ class MdiChild(QTextEdit):
f = self.user_friendly_current_file()
message = f"'{f}' has been modified.\nDo you want to save your changes?"
ret = QMessageBox.warning(self, "MDI", message,
- QMessageBox.Save | QMessageBox.Discard | QMessageBox.Cancel)
+ QMessageBox.Save | QMessageBox.Discard | QMessageBox.Cancel)
if ret == QMessageBox.Save:
return self.save()
@@ -196,11 +156,13 @@ class MainWindow(QMainWindow):
self.write_settings()
event.accept()
+ @Slot()
def new_file(self):
child = self.create_mdi_child()
child.new_file()
child.show()
+ @Slot()
def open(self):
file_name, _ = QFileDialog.getOpenFileName(self)
if file_name:
@@ -218,31 +180,38 @@ class MainWindow(QMainWindow):
else:
child.close()
+ @Slot()
def save(self):
if self.active_mdi_child() and self.active_mdi_child().save():
self.statusBar().showMessage("File saved", 2000)
+ @Slot()
def save_as(self):
if self.active_mdi_child() and self.active_mdi_child().save_as():
self.statusBar().showMessage("File saved", 2000)
+ @Slot()
def cut(self):
if self.active_mdi_child():
self.active_mdi_child().cut()
+ @Slot()
def copy(self):
if self.active_mdi_child():
self.active_mdi_child().copy()
+ @Slot()
def paste(self):
if self.active_mdi_child():
self.active_mdi_child().paste()
+ @Slot()
def about(self):
QMessageBox.about(self, "About MDI",
- "The <b>MDI</b> example demonstrates how to write multiple "
- "document interface applications using Qt.")
+ "The <b>MDI</b> example demonstrates how to write multiple "
+ "document interface applications using Qt.")
+ @Slot()
def update_menus(self):
has_mdi_child = (self.active_mdi_child() is not None)
self._save_act.setEnabled(has_mdi_child)
@@ -256,11 +225,12 @@ class MainWindow(QMainWindow):
self._previous_act.setEnabled(has_mdi_child)
self._separator_act.setVisible(has_mdi_child)
- has_selection = (self.active_mdi_child() is not None and
- self.active_mdi_child().textCursor().hasSelection())
+ has_selection = (self.active_mdi_child() is not None
+ and self.active_mdi_child().textCursor().hasSelection())
self._cut_act.setEnabled(has_selection)
self._copy_act.setEnabled(has_selection)
+ @Slot()
def update_window_menu(self):
self._window_menu.clear()
self._window_menu.addAction(self._close_act)
@@ -301,82 +271,85 @@ class MainWindow(QMainWindow):
def create_actions(self):
- icon = QIcon.fromTheme("document-new", QIcon(':/images/new.png'))
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.DocumentNew)
self._new_act = QAction(icon, "&New", self,
- shortcut=QKeySequence.New, statusTip="Create a new file",
- triggered=self.new_file)
+ shortcut=QKeySequence.New, statusTip="Create a new file",
+ triggered=self.new_file)
- icon = QIcon.fromTheme("document-open", QIcon(':/images/open.png'))
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.DocumentOpen)
self._open_act = QAction(icon, "&Open...", self,
- shortcut=QKeySequence.Open, statusTip="Open an existing file",
- triggered=self.open)
+ shortcut=QKeySequence.Open, statusTip="Open an existing file",
+ triggered=self.open)
- icon = QIcon.fromTheme("document-save", QIcon(':/images/save.png'))
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.DocumentSave)
self._save_act = QAction(icon, "&Save", self,
- shortcut=QKeySequence.Save,
- statusTip="Save the document to disk", triggered=self.save)
+ shortcut=QKeySequence.Save,
+ statusTip="Save the document to disk", triggered=self.save)
self._save_as_act = QAction("Save &As...", self,
- shortcut=QKeySequence.SaveAs,
- statusTip="Save the document under a new name",
- triggered=self.save_as)
+ shortcut=QKeySequence.SaveAs,
+ statusTip="Save the document under a new name",
+ triggered=self.save_as)
- self._exit_act = QAction("E&xit", self, shortcut=QKeySequence.Quit,
- statusTip="Exit the application",
- triggered=QApplication.instance().closeAllWindows)
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.ApplicationExit)
+ self._exit_act = QAction(icon, "E&xit", self, shortcut=QKeySequence.Quit,
+ statusTip="Exit the application",
+ triggered=QApplication.instance().closeAllWindows)
- icon = QIcon.fromTheme("edit-cut", QIcon(':/images/cut.png'))
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.EditCut)
self._cut_act = QAction(icon, "Cu&t", self,
- shortcut=QKeySequence.Cut,
- statusTip="Cut the current selection's contents to the clipboard",
- triggered=self.cut)
+ shortcut=QKeySequence.Cut,
+ statusTip="Cut the current selection's contents to the clipboard",
+ triggered=self.cut)
- icon = QIcon.fromTheme("edit-copy", QIcon(':/images/copy.png'))
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.EditCopy)
self._copy_act = QAction(icon, "&Copy", self,
- shortcut=QKeySequence.Copy,
- statusTip="Copy the current selection's contents to the clipboard",
- triggered=self.copy)
+ shortcut=QKeySequence.Copy,
+ statusTip="Copy the current selection's contents to the clipboard",
+ triggered=self.copy)
- icon = QIcon.fromTheme("edit-paste", QIcon(':/images/paste.png'))
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.EditPaste)
self._paste_act = QAction(icon, "&Paste", self,
- shortcut=QKeySequence.Paste,
- statusTip="Paste the clipboard's contents into the current selection",
- triggered=self.paste)
+ shortcut=QKeySequence.Paste,
+ statusTip="Paste the clipboard's contents into the current "
+ "selection",
+ triggered=self.paste)
self._close_act = QAction("Cl&ose", self,
- statusTip="Close the active window",
- triggered=self._mdi_area.closeActiveSubWindow)
+ statusTip="Close the active window",
+ triggered=self._mdi_area.closeActiveSubWindow)
self._close_all_act = QAction("Close &All", self,
- statusTip="Close all the windows",
- triggered=self._mdi_area.closeAllSubWindows)
+ statusTip="Close all the windows",
+ triggered=self._mdi_area.closeAllSubWindows)
self._tile_act = QAction("&Tile", self, statusTip="Tile the windows",
- triggered=self._mdi_area.tileSubWindows)
+ triggered=self._mdi_area.tileSubWindows)
self._cascade_act = QAction("&Cascade", self,
- statusTip="Cascade the windows",
- triggered=self._mdi_area.cascadeSubWindows)
+ statusTip="Cascade the windows",
+ triggered=self._mdi_area.cascadeSubWindows)
self._next_act = QAction("Ne&xt", self, shortcut=QKeySequence.NextChild,
- statusTip="Move the focus to the next window",
- triggered=self._mdi_area.activateNextSubWindow)
+ statusTip="Move the focus to the next window",
+ triggered=self._mdi_area.activateNextSubWindow)
self._previous_act = QAction("Pre&vious", self,
- shortcut=QKeySequence.PreviousChild,
- statusTip="Move the focus to the previous window",
- triggered=self._mdi_area.activatePreviousSubWindow)
+ shortcut=QKeySequence.PreviousChild,
+ statusTip="Move the focus to the previous window",
+ triggered=self._mdi_area.activatePreviousSubWindow)
self._separator_act = QAction(self)
self._separator_act.setSeparator(True)
- self._about_act = QAction("&About", self,
- statusTip="Show the application's About box",
- triggered=self.about)
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.HelpAbout)
+ self._about_act = QAction(icon, "&About", self,
+ statusTip="Show the application's About box",
+ triggered=self.about)
self._about_qt_act = QAction("About &Qt", self,
- statusTip="Show the Qt library's About box",
- triggered=QApplication.instance().aboutQt)
+ statusTip="Show the Qt library's About box",
+ triggered=QApplication.instance().aboutQt)
def create_menus(self):
self._file_menu = self.menuBar().addMenu("&File")
@@ -442,6 +415,7 @@ class MainWindow(QMainWindow):
return window
return None
+ @Slot()
def switch_layout_direction(self):
if self.layoutDirection() == Qt.LeftToRight:
QApplication.setLayoutDirection(Qt.RightToLeft)
@@ -461,6 +435,11 @@ if __name__ == '__main__':
options = argument_parser.parse_args()
app = QApplication(sys.argv)
+
+ icon_paths = QIcon.themeSearchPaths()
+ QIcon.setThemeSearchPaths(icon_paths + [":/qt-project.org/icons"])
+ QIcon.setFallbackThemeName("example_icons")
+
main_win = MainWindow()
for f in options.files:
main_win.load(f)
diff --git a/examples/widgets/mainwindows/mdi/mdi.pyproject b/examples/widgets/mainwindows/mdi/mdi.pyproject
index 7df26fd77..0272873a7 100644
--- a/examples/widgets/mainwindows/mdi/mdi.pyproject
+++ b/examples/widgets/mainwindows/mdi/mdi.pyproject
@@ -1,3 +1,3 @@
{
- "files": ["mdi_rc.py", "mdi.py", "mdi.qrc"]
+ "files": ["mdi.py"]
}
diff --git a/examples/widgets/mainwindows/mdi/mdi.qrc b/examples/widgets/mainwindows/mdi/mdi.qrc
deleted file mode 100644
index 0a776fab4..000000000
--- a/examples/widgets/mainwindows/mdi/mdi.qrc
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE RCC><RCC version="1.0">
-<qresource>
- <file>images/copy.png</file>
- <file>images/cut.png</file>
- <file>images/new.png</file>
- <file>images/open.png</file>
- <file>images/paste.png</file>
- <file>images/save.png</file>
-</qresource>
-</RCC>
diff --git a/examples/widgets/mainwindows/mdi/mdi_rc.py b/examples/widgets/mainwindows/mdi/mdi_rc.py
deleted file mode 100644
index ad79e2ead..000000000
--- a/examples/widgets/mainwindows/mdi/mdi_rc.py
+++ /dev/null
@@ -1,608 +0,0 @@
-# Resource object code (Python 3)
-# Created by: object code
-# Created by: The Resource Compiler for Qt version 5.14.0
-# WARNING! All changes made in this file will be lost!
-
-from PySide6 import QtCore
-
-qt_resource_data = b"\
-\x00\x00\x04\xa3\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
-\x00\x00\x00\x04gAMA\x00\x00\xd6\xd8\xd4OX2\
-\x00\x00\x00\x19tEXtSoftware\
-\x00Adobe ImageRead\
-yq\xc9e<\x00\x00\x045IDATX\xc3\xe5\
-\x97\xcd\x8fTE\x14\xc5\x7f\xb7\xea\xd6{\xaf\xdbn\xc7\
-\xf9@\x9d\x89FM4\x99D\x8d\x1aH\x98\xc4\x8c\x1f\
-\x1b\xfe\x02L\x5c\xf1\x07\x18\x16.M\x5ckX\xc3\x8e\
-\xc4\x8d\x1b\x17\xce\x82htA\x5c\x18\x0d\xe2\xc4\xc6\x00\
-=`PQ\x19`\x02\xa2\x0e\x0c\x83\xd3\xfd^\xf7\x94\
-\x8b\xaa\xee\xf9`\xe6\x0d\x84Q\x16VR\xa9\xce{\xb7\
-\xeb\x9e:\xf7\xd4\xa9z\xea\xbd\xe7~6\xe5>\xb7>\
-\x80]\xbbv\xbd\x03\xec\xfd\x8f\xf2N5\x1a\x8d\x03\xeb\
-\x19\xd8\xbb\xef\xbd\xa3;\x1f\x1fv\x00\x9c<:\xcf\xcc\
-\x977X\x9c\xef\xdcS\xa6\xda\xa0\xf2\xdck\x03\xbc\xb8\
-g\x10\x80\x8b\x7f\x16|\xf8\xee\x1e\x80\xdb\x00p\xfc\xec\
-\x1c\xdf?0\x04x.\xfd\xb8\xc0\xfe\xb7\xceo\xcbr\
-\x0f\x1dy\x9a\x0b#\x96\xd3\x9f\x1fd\xfc\xd5}\x9bk\
-@E\xb0\x16@xp,#\xcb\xb2m\x0100\x96\
-a\x8dP\x1b|\x14#%\x22\x14+\xd8\x18\x91\xd5\x95\
-s\xe7\xce\x83*\xb8\x04\xd2\x14\xb2\x0c\xd2,\x8cI\x0a\
-I\x12\xdew:\x90\xe7\x90\xb7\xa1\xd5\x82v+\x8em\
-(r\xb2\xfa8\xd6\x0a\xe3\xaf\xbcIk\xf1\xfa\xe6\x00\
-\xac\x15\xac\x15\x04\xb0F\xd8\xbd{\xe7\x16k\xeb\x86\xae\
-\x80Z\xa8V\x81\xeamQ\x8d\xaf\x04\xb5\x82\xf7\xa0\xa6\
-\x84\x01g\x055\x82\x08\xa8\x0a\x95,\xc3# \x1e\x08\
-\xc0\xf0\x1e/\x02\xde#\x12&\x15|\x88#\xc4!\x1e\
-<!^@MX\x18@\xd7J\x89\x06\xac\xa0\xdac\
-\x00\x9a3\xbf\x05\x8aS\x07i\x02\x95\x04\xb24\xf6\x04\
-\x12\x07N\xa1\xe8@^@+\x8f\xbd\x05K9\xb4s\
-\xc8\x0bT\x87q=\x00*\xe5%p1@\xd509\
-\xf9\xd2\xd6\x0a\xf3>\xd0\xaf\x16\xaa\x1b\x8b\xf6\xd8'a\
-a\xbd\x1c%% \x00\xf0\x81\x8d4M\xa3:\xc3\xb3\
-\x98\x11\x89l\x07\xdac\x09V\x98_)F\xfca\xcd\
-r\x7fa\x1d-\xd1\x80:\x09TI\x18O4/\xe0\
-\x9d\x85\xc4!\x89\xc3g\x09\x92i\xd8\x11\x89\xe2\x13\x87\
-X\x8b\xefv\x91\xbc\x80\xbc\x03\xed\x02\xdfj#\xed\x02\
-\xf2\x02\x9fwP\x1dE\xd5 x:\xebTx\x9b\x06\
-\x9c3x\x0f\x03\x8f$\xbc\xfe\xf2\xf3wh\xe86h\
-\xa4\xbe\xf1\xeb\xc6\xfc\xdf\xb1\x04R^\x82DM_\x84\
-\x8f\x0d\xa58\xe7\xb6\xc5\x88\x9e\x18K\xb9v\xb3\x03\x08\
-\x9dR\x11\xaa\x90\xb8P\xefZ\xc50}\xb1\xcb@\xc5\
-\xb0\x0e\xf4&\xadW\xf9U.\xe1\xe1\xc6\xd22\xf5\xcc\
-p}\xc9\x84-\xe9J\x19\x10\x9c\x1a\xc0s\xe5f\x97\
-+7\xbb\xacQW?\xd7\xaad~\xc5'\xa2)\xac\
-\x05\x15\xc3\x9c\x0b\xb5w\xa6l\x17\xa8\xc1\xa9 \xc8\x1a\
-5\xaf\x9b5\x1a\x8fY1\x9e\xfe{\xe9\xef\x14\x00\xf1\
-\x82\xef\x9bX0+WV\x02U!\xd1\x90\xfc\xe7S\
-\xdf\xf2\xeb\x99\x13,-\xde\xb8\xa7\xfaWj\x03<\xf5\
-\xecN\x9eya\x02\x0f\xa83[1\x10\x03|\x87\xf7\
-\xf7\xbf\xc1\xc2\xc2\x02\xb7n\xdd\xa2(\x0aD\x04k-\
-\xd6ZT\x15U\xc59\x87\xaab\xad\xc5\x98\xf0\xdf\xe5\
-\xe5e\xf2<\xef\xf7#\xcd\xf9\xb8\xf2-\x18pVP\
-\x17\x18\xdc1:\xb6rO8~\x9c\xe9\xe9i\x8c1\
-x\xef\x99\x98\x98`rr\xf2\x8eY\xd81:\xd6\xdf\
-\x86\xae\xd4\x09Up6\xac\xa2V\xaf\xf7k933\
-\xc3\xd0\xd0\x10\xd6Z\xbc\xf74\x9b\xcd\xbb\x02P\xab\xd7\
-p\xd1\x88\xb4\xd4\x88\x14\x9c\x0b'\x5c\xa0*\x00\xa8V\
-\xabdY\xd6\xa7\xb87\xdeis\x1a\xa9\x17AK\xad\
-8\x1e\xc7\xbd#\xb4\xd7\x8c1\x88D\xdf\x8f:\xb8\xab\
-\x9b\xaf5\xa8\x0d\xf3\xf6\x18.=\x8e\x83)m\xe3\xd5\
-\xdb\x12\xa9\xf7\xe5Vl\xad\xf4\x91\x0e\x8e\x0c\xc3\xf2\xef\
-\xdb\x02\xe0\xa1\x91a\xd4\xc2\xb5+\x97Y\x9c\xbf\xbe\x05\
-\x036\xf8\xc0`\xad\x02\x0b\xdb\xc3\xc0P\xad\xc2\xec\xc5\
-K\x9c\xfd\xee\x1b\xce\x9f\x9c\x9e\x03\xa66\x04`$^\
-J\x05\x12\x0b\xed\x91'\xa9=\x0co\x1f8\xc8f\xc7\
-\x81':\xf1*\xe75\x1e2\x81\x14(\xbap\xf9\xea\
-U\xce4\x8e\xd1\xfc\xfa\x8b\xb9\xd9\x1fN\x1d\x02\x0eo\
-\x08\xe0\xb3\x8f>\xe0\xa7\xd3'W\x99\xe9\xda\xa3\x86U\
-\xe6\xbb\x1e\x04\x1b<_\x1do|w\xee\x8f\xd9_\x0e\
-\x01\x87\x1b\x8d\xc6_\x1b\x01\x98\x9a\xfe\xf4\xe3\x7f\xf5s\
-l}\xf25\x00\xe2\xb7\xda\x81\xff\xdd\xd7\xf1?M\xf0\
-K\xb9\xe8F\x89\xaf\x00\x00\x00\x00IEND\xaeB\
-`\x82\
-\x00\x00\x08\x19\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
-\x00\x00\x00\x04gAMA\x00\x00\xd6\xd8\xd4OX2\
-\x00\x00\x00\x19tEXtSoftware\
-\x00Adobe ImageRead\
-yq\xc9e<\x00\x00\x07\xabIDATX\xc3\xad\
-W[P\x93g\x1a\xf6\xca\xce\xec\xcc\xf6b/\xbc\xd9\
-\xe9\xce\xecn\xbd\xda\xd9\x9b\xb5\xce\xba;{\xb0\xad\xcc\
-z\xb1\xce\xce:\xb3vTpu\xdb\xe2\x81\xd6\xb6T\
-\x04\xbb\xa5 m\xc1\x82\x06\x08\x07QB\x80\x80\x80\x02\
-!\x81\x10\x92@H\x10s$!gr\x80\x04B \
-\x9c\x09G\xb5Tx\xf6\xfb~\x13\x160X\x8b}g\
-\x9e\xf9/\x92\xfc\xcf\xfb>\xcf\xfb\xbe\xdf\x97]\x00v\
-\xfd\x98 \xf1\x0b\x82\x14\x02\x03\xc1u\x82\x03\xcf\xfd\xfe\
-\x8fH\xbc\x9b \xe1W\xaf\xef\xb5*\x8c\xd6e\xdb\x02\
-`\x19\x1e[\x09'\xf13\xfa\x19\x81\x22\xfc\xdc>v\
-H~\x8a\xa0\xb9\xb6Y\x1c2\xcf\xadB9\xfe\x1dD\
-\xf6Q\xd8\xc7\xe6\xe8\x87\x86={\xf6XSR\xae,\
-\xca::\x10N\xe2\xe5I\xc3\xc41\x04\xb7>I\xf9\
-,`\x9b]YSM\x03M\xb6\x114\xeb\xfb 1\
-y`\x19\x9d\xc5\xbb\xef\xbe?\xc5\xab\xbe\x83\xf1\x89)\
-LO\xcf\xae\x92\xef\xd7\xbct\x02\x11\x9f\x0f\xbe\x1d\xe3\
-\xb2\x04CO\xb43@\x8b{\x06\xcd=.4\xeb\xec\
-\xa8W\xf6 \x87S\x852^5C\xbc\xb0\xf4\x90\x81\
-\xc1`\x5c&\xbfK|\xe1\x04H\x1c$8A\xfd\xdd\
-\xeas'\xf1\xb9'\x04H\x87\x97\xc1\xd7\xbb \x22U\
-7\xdc7\xa2\xb8N\x88,V>\xccV\xdb:q\x04\
-,\x16k,\xfc\xce\xe7'\x10\x916\x93\x95?F}\
-\xa5\xfe\x12\xc4o\xf4Y1\xb6\x02~\xef Z{\x9c\
-\xe0?0\xa1L(CF\x0e\x1b\xb2\x0e\xf9&\xd2\xf9\
-\xc5e\xcc-,!4\xbf\x88\xbd{\xf7Z\xc9;~\
-\xbam\x02$~C\x90F=5\x13iu\xb3\x80\xd2\
-?\x0f\xcb\xc4\xe2\x9aP\xa1Z\xb4l\xf1Y\xa0\xb6\xa0\
-\xa6]\x8d/\xb2sq\xb7\x9e\xff\x0c1%\x9d\x09\xcd\
-cbj\x06\x83C\x81'\xe4\xdd\xbc-\xd3\xb0;\x92\
-\x033&\xd4S\xb5\xd3\xfbXO\x88\xc5\x03!\x88,\
-CP\xbaF\xd0\xed\x09B\xe5\x9bB\x9bs\xfc\xa9\xcf\
-Z\x1b\xee*t\xc8\xbc\xc9E\x09\xa7l\x93\xcf\x9b\x88\
-'\xa7\x11\x18\x1d\xc3\x80o\x08\xa2\xd6\xd6%\xc2Q\xdb\
-(\x12\x87\xc6\x1f\xaf\x82/b\x94M\x89$\x90\x22\xea\
-R-\x9aB\xab\xe8\x18y\x04\xa1\xc5\xcf\x10St\xf6\
-\x0d\xa3\xd3\xe1\x87\xd4<\x80\x16\xbd\x03\x0d]\x06\x14\xd5\
-\x0a\x90\x91\x95\x0d/y\xf1\xc6\xaa\xa9\xd4\xb3s\x0bL\
-\xc5\x94\xd8\xdd\xef\x85\xc9b\x05\xb7\xbc\x12\xa5\xe5\x95K\
-\x13\xf3\xcb\xab#\x0f\x017\xd9\x11\xe6\xd9\x15\x84\x97\x15\
-\x13\x06\xcb<\xd0h\xf2\xa3\xdd\xee_'\x96;\x86 \
-\xb3x\xd7}\xe6\x08\xa4\xf8<3\x1b*\x8d6\xaa\xdc\
-S3!\x8c\x8e\x8d3\x15\xd3&\xe47\x09\xf1\xc1\xc5\
-\x8fQs\xaf\x01\xbee`\xfc\x11\xa0#\x13#\xf2\xce\
-\xa1\xbe]\xb9\xb8Q\x01\x83\x81ttM\xa7\x1e\x0ag\
-\x80\xa9\xb8\xdd\xea\x83\xd8\xe8B\x93\xca\xcc\xf8|\xe5\xcb\
-,\x88\xda$Q\x89\xa7g\xe7\x18\x1b\x86\x86G`w\
-8I\x82:$|\xf8!\xae\xb3\x0b\xe1\x99\x5c\x80o\
-\x09\xd0\x90\xde\xe1\x0f,\x81\xab\x1f\xc4}\xef\x04\xdd\x07\
-\x1da\xeb\xff\x9f\xc0\x1d\xb9\x16\x1d\xf6!H\xcc\xfdO\
-}\xee\xd4\x22\x9dU\x84\xaa\x9a\xbaM>G\xe4\x8e\xf8\
-<<\x12\x84\xd3\xdd\x0f\xbd\xc1\x88\xc2\xe2b\x9c~/\
-\x1e=\x03\x01\xf4/\x02\x83\x84\xbc\xc5\xff-\xee:C\
-(Q\x91\xf7\xf6\x05\xf1N\xdc\xbf}\x843i\xe3 \
-\x18\xf43\xab\xe0\xc9Th58\xd1\xd8\xdd\x0b\x9eX\
-\x89\xac\x5c\xf63>G\xaa\x9e\x9c\x9ee\xe4\xee\xf7\x0e\
-\xa2\xd7lAC\x03\x1f'b\xe3 \xe9\xd6\xc0E\xcf\
-\x01R\x90$\xb8\x86\xb2\x9e\x00n\xb4\xdbP\xd1\x1bD\
-\x85\xce\x8bJ~\x0bm\xbe\x9b['\xd1\xa0\x99\xf8\x16\
-e\x22\x05\xee)\xf4(\x13\xc8\x90x5\x0b\x1a\xad>\
-\xaa\xdcc\x13\x93\xf0\x0d\x0d\xc3f\xef\x83\xb4]\x8e\xc4\
-K\x97\x90\xc3\xca\xc3\xd4c\xc0NzI1N\xfa\x89\
-\x94\x7f[;\x84|\x85\x13%j\x1fJ\xd5\x03\xe8\xf2\
-0\xa3(\x22\xf8\xf93\x09t\x8f.\xa1\xa8\xbe\x15\xa5\
-|\x09\xb2J*\xf0\xcf\xe3qQ\xe5\xf6\x07F\xd1\xe7\
-\xf2@\xab7 \xfdj\x06\x92\xbfH\x83\xcd7\x02'\
-\xa9\xda@\x1aL\xe0{\x88R\x9d\x1fE\xdd\xfd\x0cq\
-A\x97\x1b\xc5\xdd\x1e\x88\x9cA\xfc\xf9\xcd\xb7]\x84\xeb\
-l\xb4C\xd0(\xf7N#\xa7\xfc\x1e\xb2K\xab\xf1Q\
-\xeaWH\xfeo\xea\xfaXQ\xb9G\x82\xe3\xf0\x0c\xf8\
-`4\x99Q\xc9\xab\xc2\xfbg\xcfA\xfe@\x03?\xe9\
-n\xb2\x8d\x19\xb9oi\x06\x19\xd2\x9b*/r\xe5\x0e\
-\xe4u\xf6\xa1\xf0\xbe\x1b\x1c\x95\x1b\xf9\x9c\xca)\xc2S\
-\xb8\xdd)\xdc+v\x04\x90Q\xc8\xc5\x95ky8\x11\
-\x9f\x80\x9b\xb7n3c\x15\x91\xdbjs@\x22m\xc7\
-\x85\x84\x0fPt\xbb\x0c\xf3+\x80\x9f4X\xf7$ \
-\x1c|\x84J\xd3\x188\xfaa\x86\x9cV\xfdU\xb3\x1e\
-\xac\x0e;\xb8:\x1f\xd9!\x1ez/\xe0\x13\xbc\xba]\
-\x02&\xbe\xc1\x83\x94o\xd88\x9f\x9c\x8a\x03\x7f=\x04\
-c\xaf\x99\xe9n*\xb7F\xd7\x83\xa4\xcb\xc9H\xff:\
-\x8b\x8c\xd5<S\xb5q\xf6\xa9\xdc5\xf6i\x5c\x97Y\
-\x19\xd9\xbfn!\xa7\xa0\xd4\x82t\xbe\x1aW\x9b4`\
-\xc9\xcc\x10\xbb\x82\xf8\xe5\xaf_\xa7g\xc0;\xe1u\x1f\
-5\xcc5\xddf|\x94\x96\x85\xb8s\x17\xf1\x97C1\
-L\xd5t\x99\xf0\xaa\xaaq\xfa\xf4\x19h\xcc\x0e\x8c\x92\
--6\x14\x1e\xabZ\xc7\x0cx\xe6qp\x0d#L\xa3\
-e\x8a\x0c\x8c\xec\xb4\xfa\x9c\xb6^\x94t9\xd0f\xf7\
-\xaf\x1e=\x11KG.o\xc3y\x135,\x5c\x99\x1a\
-\xf1\x97>\xc7\xd1\xd83\xf881\x09\x86^\x13\x1a\x9b\
-\x04\xf8\xdd\x1b\xfbQO\xd4\xf1\x90\x99\xee\x9a\x00\xaa\xad\
-\x93`+]\x0c9\xf5\xbc\xf0\xbeg\xbd\xea\xcc\x16=\
-JU\x1e\x08m\x01\x94\xd4\xf1C\xe1eS@\xf0\xca\
-\xf7%`+nj\xc7\xa9\x84D\xc4\x1c9\x8a\xdc|\
-6ZZ\xc58\x14\x13\x83/95\xc8\x14j\x98\xe6\
-\xa2\xd5\xd2'\xf5\x9azL\x13\xa1Id\xb7\x99\x90\xdb\
-nF\xb9\xda\x8d\x06\xa5v9,9=\xf9N\x13\xec\
-\xd9r\xd4G\x0d;\xabF\x88c\xff9\x8f\xdf\xee\xfb\
-=\x1a\xf9\x02\x9c\xbf\x90\x80\x93\xf1\x17p\xa3\xad\x07\x19\
-\xc4OJ\x14\xe9n\xbaX\xa8\xef,\xfa\x94\x98P(\
-\xb7@\xe9\x0e<\xf9W\xec)*w-\xc1g\x04\xfb\
-\xb6\xb9\xe4D\x8d\xbe\xcc\xb2Z\xfc\xe3\xe4\x19\x1c<\xf4\
-7\xb0r\xf3\xb0\xef\xc0\x1fP \xd1!\x89'e*\
-\xa6K\x85>\xbf!\xd5F\xe4.\x90[!\xb0\x0c\xae\
-\xe5\xdc\xe2\xd2\x11\x13\x13\xe4\x87o<\xaf<\xe7\x96\x15\
-5\x9ciE\xe5\xf8\xfb\xb1X\x1c?\x19\x877\xf6\xef\
-\xc7\x8d:\x11\x92\xab\xa4\x0c!\xedp\xea5U!\x8b\
-4[\xc9\x037*4n\xd4I:\x17\xc3rs\x08\
-\x8em\x95\xfb\x87$\xe0Jesp\xe4\xf8)\x1c>\
-|\x98\x8cc.2\x05*\x5c\x22\xd5\xd3]~M\xdc\
-\x0b6\xe9tv\xa7\x1dw\x8c\xe4\x88\xb6\xf9\x9e\x84\xb7\
-\x1a\x95\xfb\x22\xbdI\xfd\x80\x0bm\xf4\x042JxL\
-\x0f\x9cKI\xc3\xb5\xa6.|\xc2me6Y\xf1\x83\
-\x01\x5c\x97\x9a\xc1Q{ \xf3\x04\xd7\xce%&\x056\
-\xc8\xfd\xc7\x9d\xc8\x1d\xd5\x82\xdc\x1a\x01\xce^NE\x81\
-X\x85x\xf6]\x5c\xa9U\x90\xaa\xfb\xc0\x96\xdbP\xad\
-u\xe3\xaeTA/\x10\xca\x0dr\xbf\xba\xd3j\xa3\x05\
-\xb7\xa2Q\xf8\x1d\xafC\x8dO\xb9-\x88\xcb\xe6\xe1\x9a\
-H\x8f\xaa\x1e/\x9a5\xe6\xc7\x7fz\xf3-Wx\xac\
-\xa8\xdc\xaf\xbd\xac\xdc\xd1\xe2\x08\xdd\x05\x5cu\x1f\xde\xcb\
-\xafE\xb9v\x002g`\xf5\xc2\xa7\x97\xa9\xdc\xf7\x08\
-\xd2\xa9\xdc;\xf8\x03\xf3\xc2\xf1\x13\x82\xca\x1c\xee\x9dP\
-\x0b9\x94\xb8\x0d\xc2\xc8\x16\xa3\x17\x87\xc3/\x22\xf7\x0e\
-\xff\xdam\x8a\xdda\x99\xd5\x1b\xb6\xd8k\xbb^2\xbe\
-/\x89\xff\x01f\xb9_\xfc\x11\x80=\xcf\x00\x00\x00\x00\
-IEND\xaeB`\x82\
-\x00\x00\x05+\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
-\x00\x00\x00\x04gAMA\x00\x00\xd6\xd8\xd4OX2\
-\x00\x00\x00\x19tEXtSoftware\
-\x00Adobe ImageRead\
-yq\xc9e<\x00\x00\x04\xbdIDATX\xc3\xed\
-WkL\x93W\x18>#q\xc92\xe9\x16\x97\xa8T\
-e8\x9d\x02\x15\xf6\x03\x872\x93\x01f,[p\xc4\
-0\xff`\xa2.\x1a:\x1dN\x03\xba1\x89[\xb3\x80\
-\xd9\x0c\x84\x02\x19X\x1c\x14\x8b\x85\xb2\x82\x95^\xe4f\
-\x0b\x8e1\xf8\xc3F\xcb-\x81\x15\xdc\xa8\xc2\x1c\x1b\xb7\
-ji\x91\xf2\xee\xbc\x87\xaf\x0c\xdc\xb8\x0da\xd9\xb2\x93\
-<\xed\x97\xf3}\xfd\xde\xe7\xbc\xef\xf3^J\x00\x80\xfc\
-\x93 \xff\x0a\x02t\x09(D\x14\xd9\x14q\x14\x01+\
-F\x80\xae\xddd\xdd\xc6f\x22L\xf8\x95\xc4\x8bG\xc8\
-\xa1\xd3\xf7\xc8\x8e\x97;82a+A \x85\x9c\xbe\
-0H.\xdd\x80\x19@2\xabyM\xf4\xbe\xfbr\x13\
-hd\x06\x91\x04^\xa3Q\xf4\x06\xee\x85G\xf5\xd0\xbd\
-\x83\xcbM \x9b\x9d\xf6@t/\xbd\x162= \x89\
-?H\xa5,\x1b\x01\x8c1y\xc1\xbb\x9d\x88K\xc6\xd7\
-\xc6&\x0e\xa0\x10\xb9\xfdB\xfe\xc5+6F\x8c\x12\x5c\
-N\x02\x93\xa7\xa7\xa7\x0d\xcc\xd39\xb9\x98c6\x14\x0a\
-\xd2\xe4\xa3+A \x8c)\x9e*\xdf7G\xeb\xdc{\
-\xb5\xcc\x89\x9e@D\x96T\x83+,\x0b6FH\x08\
-\x13\xf5d*{.T\x03\x01\xf8\x037\xbf\xc0\x0e4\
-*T\xdfb\x88R\xd5,X\x03t\x1d\x16\x08\x04z\
-EU\xf5\xc8\xa0mt\xc2\xd4s\xf7!\xbesQ\x95\
-\x90\xae\x8f\xd0\x13\xcf\xe5\x94\x83\x87\xb4\x02\x9e\xcc.\x03\
-\xd4\x06\xdd\xaf\x99\xcb\xb0\xaf\xaf\xaf>\xbf\xd2`\xb5\xdb\
-\xed\x80\xf8y\xe4>\xc4^\xab\xb4\xb9\x88/\x86\x80'\
-\xd3\xc0g\xf9\x8e\x19\xf5`\xd7^3\xbav\xdas\xee\
-h\xd8\xc7\xc7G\x9f\xab\xab\xb0\x0e\x0f\x0d\xc1\x10\x87\xb2\
-\xf6.\xe7\x967\xf7wsa\xd8\xbd\xe8^\x80/f\
-\x9a\xa0\x86\xdf\xa96B\xf7\xf0\x03\xd8\x19\x9f\xd4\xcf\xa5\
-\xe7\x1a\x8a\x98-~\xfem\x97T\x1ak__\x1f\xb8\
-\xd0\xd1s\x07br\x15VN\xc4\x87\x97\xd4\x8c0\x14\
-\xe9\x15\xb7\x1e8\x1c\x0e@\xa4\xd6\x191\x9e\x85\x9b\x05\
-~m\xa9%\x1a[\x97\xd9\x0c\xe6.\x0a\xf3$\x14\xdf\
-6\x8e{\xbd\x1e\xd1\xcdB\xc8\x09o\xa9\x04<\xd1\xbd\
-V\xab\x15\x10w\x7f\x1b\x84\xf3\x92\x5c\xbbR\xa9\x84\xfa\
-\xfaz0\x99L\x0cu\xdf5\xc1Q\xb1d\x18\xc9Q\
-D>\xb6v\xcc\xb4@O\x93_~\xd3\xd6\xdf\xdf\x0f\
-2\x99\x0cD\x22\x11\xa8T*\x90J\xa5\xa0\xd1h \
-K[9\xbe\xe9\x95\xe0\x1f\xb8S\xafy,\xf3\x00\x97\
-\x8e\x22\x9e\xc7\x86\xe6S)\x19\xf6\x82\x82\x02\xe6\xe2\xa0\
-\xa0 \xe0\xf1x`\xb1X@[^\x01\xfb\xcf&\x0c\
--\xa6S\xceg\x94\xcf\x09L\x83\xe2[{\xe6\xc2`\
-\x9a\xb2\x14\x14\x0a\x05\x88\xc5b\xc8\xcc\xcc\x84\xa2\xa2\x22\
-P\xab\xd5\xd0\xd9\xd9\xc9`\xec\xfe\xc9\xb9\xc9\xdb\xa7u\
-.\xb7\xcfK\x80\xae\xb7\xd8)p\x0e\xc0j\x97\xacx\
-\x88\xca\x7f\x82\xe2)\x89\x0e>\x97+![\x96\x0f\x07\
-c\xe3G\x84\x1f&\xd8\x92rd\x8eo\x1a\xbf\x07\xa3\
-\xd1\x08-\xad-\xf0\xcb\xc0 \x1c8\xf1\xbe\x05\xb3b\
-\xc1\x04\x5ci\x84\x85\x85\x84F\xdc&\xe72\xac,\xcf\
-3\xb5\x13\xec;\xe3\xba\xd33\xaf\x82\xe5\xfez\x89\x06\
-\x9e\xde\xfcb\x1b\xf7<\x92\x8d{f\xabO[\xca5\
-\xedXCC=444\x80\xa5\xb7\x172\x14\xc5\xc3\
-\xf3\xe9\xc0e<\x92\xe5(\x9e6]\xe5\x9c*2x\
-}\xf4\x83.Zl\x121\x0c\x1b%\xeaq\xf7/\xcb\
-'\xef\x05\x87_\xfe\xd3\xe4D\x0bLh\xf4\xc9>u\
-\x95\x1e\x0c\x06\x03\xb4\xb7\xb7\xc3\xd7\xc6\x961\xae\x81\x09\
-f\xf16m8h<I::e\xf8b\x81\x83D\
-\xbdWC\xb6\x0a^\x9b*\xc3\x94\x5c\xb0B\x0f\xab$\
-\xb4\x04\x9fJ\xaa\x9bC71(\xd4O\xf2\x0a\xc7t\
-:\x1d\xd4\xd6\xd6\x82\xc9|\xdb\xb9a\x9b\xf7_\xeab\
-\xb2\xe5~\x9cu\x1f\x0d\xf3\xb2\xd4N\xf2\xf6\xb1\xeb.\
-\xb6\xae\x94\xc3\x90l\x97U\xc1KW\xab\x80\x9cMn\
-Z\xd0\x1cI\xbd\xb1\xe7\x88\xb0\xef\xcaW\xc5PZZ\
-\x0a\x1d?\xf6L\x04\x06\x87t<\xaa\x0b\xc2\x84F\x8d\
-\x07\xc8o\x02\xd9\xf9\xaa~\x9a\xf10F\x8e6 \xaf\
-\xbcJxCi\x00\x92(\x1d\x98\xcd\x95\xb3y\xc3}\
-=\xbf\xf9Dj\xa6].\x97CSK+D\x1c{\
-\xf7\xce\xf4\x14%\xae\xf1\x8a\xf5w\x9c\xf5p\x02\xc2\xd9\
-\x0f\x89\xd1\x81\x03O\x8e\xf7\xdc\xd2i\xe7\xf3\xdfu\xfc\
-o\x14.6\xd2\xef\xd8\x17iI\xbe,\x9d\xc8\xd3\x96\
-;\xa7\x0f1\x8c%\xc6\xdf\x9f\xbaw_q5\xa0A\
-l\xb5\x08\x8c\xf9\x94\xf1\xe0\xf03K\x9a|h\x13Z\
-\xbd\xce\xa3\xd9kOH\xf7\x0c\x0f\xb0\x0f\xfe\xf3\x87\xc8\
-\xf9/\xee\xb9In\x00\xf6{>\xed\xf7\x08\x1e*>\
-]\xe5X\xaa\xf1GZ\xf5\xb6Y\x0b\x11\x1d\xb3C\xc9\
-\x918\x099\xf9\xa9\x96!\xfa\x5c\x1a\x0d\xcf\xb3\xff\xff\
-7\xfcO\x13\xf8\x1d\xe7\x87\x19\xb9D\xc3\x01\xcf\x00\x00\
-\x00\x00IEND\xaeB`\x82\
-\x00\x00\x05:\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
-\x00\x00\x00\x04gAMA\x00\x00\xd6\xd8\xd4OX2\
-\x00\x00\x00\x19tEXtSoftware\
-\x00Adobe ImageRead\
-yq\xc9e<\x00\x00\x04\xccIDATX\xc3\xb5\
-\x97]L[e\x1c\xc6wo\xbc\xd9\xe5\x12I q\
-\xd7&\xe3N\x13\xb8p\xd1\x85D\xbdP\xe3\x10\x18\xe5\
-+.&J\x04'\x86\xaa\x8b\x99\xe0\xd0\xa2l\x19\x86\
-9\x17\xdc\x1a\x16\x98\x80@l\xa6C\xca +\x83\x1e\
-(\xcc\xda\xd1\x96\xd2\xd2J{\xfa\x01\xa5\xd0\xef\x16\x1e\
-\xdf\xff\xdb\x1d\xc7\xcc\x04*\x87\x93<9o!\x9c\xe7\
-\xf7<\xefG\x0f\x87\x00\x1c\xcaF\xcf\xbd\xfa\xe9\xbbL\
-Z&a\x0fj`\xca\xd9\xe9y\xd9\x9a?]P\xf2\
-\xa5\xc1\xe9\x8f\xa7W\xc3@0\x02\x84\xa2\x19\xad\xc72\
-\x8a'\x81X\x22s\xbfyk\xdaK\x10r\x02\x1c{\
-\xe7\xac\xda\x1c\xd8\xc8\x98\x12@\x84\x99\x85\xe3\x19\x911\
-)\x1aKa%\x94D8\x9aBs\x87\xc6\xbe\x13\xc4\
-\xff\x02\x90\x12\x93y$\xf1\xc8X\x92\xcf\x1f\x84]\x8c\
-\xc2\xe5\x09\x22\x12K\xa3\xf4\xc3\xefM4uY\x01\xb0\
-\xeb\xd86\xd5\x90\x9e:\xfc\xcc\xb9\xe7_.\x11?V\
-\x9eEEU\x0d*\x99\xde\xaf\xad\xc3\x9d\xb1\x89\xc7\x00\
-\xac\xb6%\xfc\xb9\xe8\x87k\x15X\xf6\x04\x10\x08\xc6\xd2\
-\xaf\x9c\xbep\x9fA\x1c\xd9\x15\x80]\x87\x99\x1a\x8a\x8a\
-\x8a\xcc\x92Z[[\xdd\xa4\xafU\xad\xfe\xafT\xdf\xa6\
-\x06\x06\x06195\x85\xd9\xb99\xe8&&PPP\
-\x80!\xcdo|\xdeI\xa6\xf9\x05\xcc\x98\x5c\x1c\xc0\xe1\
-OA\xf4\x85\xf0C\xaf\xce\xcd\x00j\xf6\x02PCf\
-\xd8\xe5\x8a\xc7\xe3\xf0z\xbdH\xa7\xd3\x98\x9c\x9cDe\
-e5fg\x8d\xbc\x81\x07f\x1bt\xd3\x16\x0e@2\
--x\xf0\xdd\x8dQ\x8f\xac\x00\xe1p\x18F\xa3\x91\x8f\
-S\xa9\x14~\xea\xedE\xe3'\x9fa\x86A8\x96\xdc\
-Pwu\xe3LC#\xce5\x9d\xc7\xed\x91q\x5c\xbc\
->,/\xc0\xc6\xc6\x06\xf4z\xfdc@}}\xfdP\
-2\x88\xd0F\x1cf\x9b\x0b\x82\xc1\x88\xa9\x19\x13\xac\x0e\
-\x11\x97\xbadn\x80\x00\xa6\xd8:\xd8~E\x22\x11\x94\
-+*0\xae\x13@\xe7\x04mW\xda\xaa4\xbe|S\
-\xe65@f:\x9d\x0e\xc3\xc3\xc3\xe8e\xf5\xf7\xf7\xf7\
-C\xab\xd5\xa2\xaa\xba\x06cw\xf5\x90\x0e*w\x90\xed\
-\x04\xb6\x0e\xda\xbbe\x06\xa0y\xb7\xdb\xed\x18\x1a\x1aB\
-gg'zzz8PIi\x19ni\xf5\x10\xd7\
-\x00o\x08\xb0\xf9\x00g\x00\xb8\xd0%3\xc0\xd6\xd6\x16\
-\xdf\x09\x81@\x00\xa2(\xc2\xef\xf7cmm\x0d\xa7\x14\
-\x95\xd0\xfc\xae\xe7\xa9\xc9|\xc1\x0b\x98=@\x9b\xdc\x00\
-\xdbA677\xf9v\xa4V\x14\x15\xd5\xe8\xfbU\xe0\
-\xa9\x1d\x81G\x00\xe7;\x0f\x00\x80\xcc%\x80$3O\
-$\x12(+\xaf\xe2\x00\x7f\xb8\x00\x8b\x98\x01\xa06Z\
-\xd5\x070\x05\xff\x98'\x93<=MI\xc9\xa9J\x0e\
-\xa0\xb7\xb3\x03\x89=\xc5\xf8\x170\xb1\x00|q\xf5\x00\
-\x00\xa4\xea\xc9\x98\x14\x8b\xc5P\xa6\xa8\x82zH\xc0\x98\
-\x19\xb8k\x05\xe6\x9c\x99\xfb\xe7Wd\x04\x90\xd2Sj\
-\x02\x88F\xa3\xdc<\x14\x0a\xa1\xb8\xb4\x02\xd7\x06\x05\xdc\
-f\x87\xe4\xa0\x01\x1cd\xc4\x04(;d\x06H=\x9c\
-s\x12\x99\xd3\xb9@ \xc5eU\xb8\xd8-\xa0\x7f:\
-c\xae}\x90i\xe0\xa3v\x99\x00\xfe]=\xa5&\xad\
-\xae\xaer\x88\xb7J*p\xb9W\xc0=\x1b\xb8~\x9e\
-\x01\xee\xcc\x03g.\xed\x13@\xaa\x9dD\x8b\x8e\x92\xd3\
-qL\xdf\x01+++X__\xe7\x10'Y\x03\xdf\
-t\x09PO\x00\xbf\xcce\x1a\xb82\x064\xec\xa7\x01\
-\xc9X\xda\xebdNi)9\x1dD\x04@\xf5\xd3\xcf\
-\xde|[\x81\x96\xeb\x02O~u\x1c\xb8q\x0f\xf8q\
-,\x9e~\xbdNm\xa67\xaa\xac\x00\x9ed,m7\
-2%\x00\xd1#\xf2\xe4\x12\xcc\x1b'\x15h\xef\x11\xa0\
-\xbcf[\x7fO5\xe2<q\x9a\xbf\x8ei\xf7\xfcJ\
-&\x01\x90\xa9$i\xb5SB2\x0f\x06\x83p\xb9\x5c\
-\xdc\x90^J\xe8\xb3\xc7\xe3\x81\xdb\xed\xc6\xf1\x13\xaf%\
-\x9f}\xa1\x9cL;\x98\x8a\x99\x8e>\xc9xG\x00\x95\
-J\xc5\x01\xa4\x15.\xcd7\x19RR:\xf7)\xb5\xc3\
-\xe1\xe0\x22\xe3\xc5\xc5E\x0e\xf5\xe2\xf1\x97\x5c\xf4\x1e\xb9\
-\x93\xe9\xae\x00---n\xe9`\xa1\xd4\xd2\x97\x0d\x8d\
-\x97\x97\x97\xe1\xf3\xf9`\xb3\xd9\xf8}ii\x89C\x10\
-\x00\x8d\x0b\x0b\x0b\xcd\xb2\x00\xd0\xa2\x92R\x93\x11\x8d\xe9\
-N\xdfxT;5`\xb5Zy\xf5\xd4\x0a\xfd\xce`\
-0$\xf2\xf2\xf2\xee\xb3g\x1c\xd9\x17@SS\x93[\
-\x9agJO\x22\x13\xaa\x9a\xc6\x16\x8b\x997@\x9fG\
-GG#mmm\xde\xfc\xfc|\x13\xfb\xdbA\xa6\xb2\
-\xbd\x9a\xff'@ss3\x9f\x02JG\x10T?U\
-???\xcf\xeb\xd6h4\x91\xba\xba:\xe7\xc3\xb4]\
-L\x1f0\x1d\xcd\xc6xG\x00\xa5R\xe9v:\x9d\xbc\
-bJJo>\x94\xb4\xbe\xbe\xde\x99\x93\x93#\x99\x16\
-gSuV\x00\x8d\x8d\x8dn\x8b\xc5\x82\x81\x81\x81H\
-mm\xad377WV\xd3\xdd\x00\xf8\x7fFL\xc2\
-A\x99n\xd7\xdfC9V\x18\x85p\xc8\x04\x00\x00\x00\
-\x00IEND\xaeB`\x82\
-\x00\x00\x03T\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
-\x00\x00\x00\x04gAMA\x00\x00\xd6\xd8\xd4OX2\
-\x00\x00\x00\x19tEXtSoftware\
-\x00Adobe ImageRead\
-yq\xc9e<\x00\x00\x02\xe6IDATX\xc3\xd5\
-\x97\xcdN\x13a\x14\x86\xeb5\x94\x95{q\xe1\xd2\xc4\
-\xe0\x05\xb8\xe2\x0e\x5c\xb8\xf4\x02\x5c\xb10\xea\x05\x18\x96\
-&bX\xb8\xb0\x91X \xd1\x9d\xbf\x89\xa4\x14\xb1R\
-\xa4HE\x94\xfe\xd0\x02C\xff\xa6\x9d\x19\xa6e\x80\xe3\
-y{\xfa\x85QJ\x82\xc9!\x86I\xde\x9c3\xa7\xf3\
-\xcd\xfb\x9c\xf3M\x9bN\x84\x88\x22\xffS\x91s\x01\xc0\
-\xc7\xd5\x90n\xff\xa5\xfb\xac\xc7==d\x0d\xa9\x02\xf0\
-12<<\xbcj4::\xba\x19V<\x1e\xaf&\
-\x93\xc9V:\x9dv\x13\x89Dk`` \xcdkn\
-h\x02\xa48\xd2\xe1\xe1q\x99\xba\xef\xb7\xc9\xb2,\xda\
-\xdf\xdf'\x86\xf1x\xcd\x18\xeb\x8a\x1a@?\xf3\xb0\x1c\
-\xc7\xa5Lf\xb9\x0b\x14\x04\x01\xc5b\xb1:\xaf{p\
-\x1a\x88S\x01\x1c\x1c\x10ww\xb2l\xdb\xa1\xf9\xf9\xcf\
-d\x0e\xd7u\xe9\xf9\xc4D\x17B\x05\x00&{\xc1\xc9\
-\xaa7\x1cJ\xce\xcdS\xf8p]\x0f\x8b\x17T\x00\x82\
-\x10@gO\x14\xce\xed\xa6G\x1fgf\xe9\xf5\x9b\xb7\
-\x14\x9f\x9c\xa4\xa9\xa9iz\xf7\xfe\x03E\xa3\xd1e^\
-\x7fA\x05\xc0\xef\x10\xed\xb6%\x86\x85\x9a\xe3\x05\x94]\
-\xcd\xd1\xe4\xf4+z2\xfe\x94\x9e\xc5^\xd0Lb\x0e\
-\x8b\x17U\x00\xda\x81\x18\xf5\x13 <\xff\x90j\xcd6\
-\x157\xab\x94/nS\x89c\x8d\xb7\x85\xd7~Q\x01\
-\xf0y\xcc\xcd]\x1e\xb5\xc7{\xdb\xee\x9f;\xbe\xe4\x88\
-]\xb8\xbd\xee\xe2\x94\xca3\xe0u\xe4\xc6uWb\xd8\
-\x109\xea\xe63D\xd4\x01\xa7\x06\xe0\xf4:\xad9\x22\
-\x98\x98hr\x80\x98kPS\x9d\x00\x00*-\xb91\
-\xe2NS\x8c\x10\x0d\x04\xf2m\xfb(\xb6|E\x00\x9b\
-;\xdbj\xfci\x8e<l\x88\x1a\xae9\x13\x80:\x8f\
-\xb7T#*\xd7\xc5\x04\x06\x06\x005(\x9c\x17\xab\xbc\
-%\xbb\xca\x13\xc0Ma\x0e\x15*rn\xcc~Z\x02\
-hj\xdd\xad\xf1\x94'\x00S\xdc\x1cqm[@`\
-\x9a\xab\x1cu\x9e\xeb\x81A\x15G\x11\xc0j\x891\x0c\
-\xd6w\x04 \x0cd&b\xb6iu\x8b\xa8\xaa\x09P\
-\xb6\xc5\xbc\xd0\x03\xf8\xbe)c\x87)`\x0c\x18\x84\x1c\
-\x00[ME\x00t\x03S\x98\xad\x94\xc5\x1c\xe7F\xe6\
-\x1c\x00\xc8q]\xa9\xa1\x08\x80\xfd\xfcV\x12s3\x01\
-\x085\x18B\xe8\xda|\x8e)\xa8N\x00[\x00\x03\xc8\
-\x98g6\x04\x002\xe6\x85\xde\xf8\x17\x0b\xfc,\xd8\x8a\
-\x00\x18g:O\xb4T\x14#\x98\x02\x00\x02\x0c>\xfb\
-\xc5S(\xf0C\xb8fI\xf7k\xf9R\x87\xd7\xbeT\
-\x01\xc8U\x8f\xbaN\xadK\x0e\x90\xaf\x85\xde\xb7\xc2\x92\
-=O\xa6\xb3\xde\xa3\xb1q\xeb\xda\xd0\xf5\x15\x98\xb3n\
-\xa9\x00l4\xa4k\x18\xff\xe0\x11\x7fZ\x17S\xd4\x13\
-\x0bYo\xe4\xee\xbd\xe2\xa5\xc1\xcbK|m\x8cu\x87\
-5\xa8\xfa\xb7\x1c\xdde\xd9<\x8f\x1f\x19\xfe\x9e\xcf\x1e\
-7\xbd\xc9\xbax&oF\x00h\xf2\xff\x81\x99\x94\x9e\
-\xe9?\xbf\x19\x01B\xd3\xf4\xfc\xbd\x9c\x9e\xa5~\x03Q\
-l%\xa1\x92\x95\x0aw\x00\x00\x00\x00IEND\xae\
-B`\x82\
-\x00\x00\x06m\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00 \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\
-\x00\x00\x064IDATx^\xad\x97[lT\xc7\
-\x1d\xc6\x7fs\xce\xd9\x8b\xbd\xf6\xfa\x16\xa0\xbe\x00\x0e\xb2\
-ic$BJ!\x22\xa1-\x95b\xa5/\xeeKh\
-+\x95\xa6U\xa5\xc6`U\xaa\xda\xb4\xaa\xfaV\x09U\
-\xca\x03\x94'\xda\x07\x84\x14)\xad\xc4\x8b\xa5R\x83y\
-\x08\xc5\x189\x0ei\xd3\x84\x9a\x9bcj\xec\xb2\x04\x1b\
-;\xbb\xf6z\x8f\xbd\xbb\xde\xb3g\xa6\xc3h\x85\xe5r\
-l\x88\xc9'}\xfa\x9f\x9d\x87\xfd~\xf3\x9f\x99s\x11\
-J)\x82$\x84x\x05x\x9e\xc7kH)\xf5w\xd6\
-(' \xb8C\xbb\x01h\x97R\xbe\xc6cdY\xd6\
-\x07\x1a\xf6\xbb@\xb7\x069\xff\x14\x00&\xfc\xb7\xed\xf5\
-\xe2`]DDn\xce\x89\x8a+W\xaeP]S\x8d\
-@\x00\xa0P\x08e(A)f\xd3i^\xa9\x17/\
-\xbc\xb4Nl;\xf1\x1f\xb9G\x83|[CL<M\
-\x07\xf6\xff`\x8b\xdd,%\xf8J2<<Lee\
-%+\xc9u]\x1e\xc0n\xa9\xb0\x22\x1b\xa2*r?\
-\xa7\xea\x81\xb5\x03\x08-\x05H\xa1\x0d\xf4]\xbcH.\
-\x97\xc3/\x16QJ\x91\xcf\xe7Y\x5c\x5c\xa4P(P\
-\xd4c\xb5\xb5\xb5\x94\x01X\x80\xf8\x82\xf6\x80\x01\x006\
-D\x05\x1f\x0f\xbcK>;\x8f\x85D\x952\xe2\xb6\xc4\
-\xb6\x04!!p>Sl\x8c;\x80D*\x04\xf0\x9c\
-\x10\x02\xe0\xcb@\x05P\x0f4`\xc4Hi\x9f$\x02\
-\x01N\x9c8!\x00\x81\x05\xd2\x87\x96\x96g\x09em\
-\x14\xe5(\xa5\xb4A\x08XW\x19%\xe2\xd8DB\x16\
-\xc3\x13s\x5c\xbc=A\xf7X\x8e\x5c$\xbe\xa9\xbd}\
-\xf7\xef-\xcbZ\xdc\xb1cGYUU\x95\xd3\xd8\xd8\
-\x18~\xe0\x86\x86\x86\xd0\xa5K\x97\xdc\xae\xae\xae\x08\xf0\
-\xd6\xaa\x1d\x00\x13DU,\xc2s\xd51\xf2\x9eO\xa1\
-(\x91Ja\x09A\xd8\xb1\x88\x86l\xe6r\x05\x12\xa2\
-\x8e?\x9f\xff+\x0dM\x1b\x01\x22\xc0f\x96\x84\xef\xfb\
-x\x9eGuu\xb5\x9ePK\xf4\xea\xd5\xab\x87\x84\x10\
-(\xa5\xdeZ\x11\xc0\xb2A\x00\xb6-\x90\xda\xb6\x148\
-\x08\xa4\x12X\xc2\x8c\x1b\x8fL\xb9\xec{\xf5;\xd47\
-6\x11|/\xc1\x84g2\x19\xca\xcb\xcb\xcdf>v\
-\xec\xd8&\xbd\x7f\x0e.A,\x01\xd0\xd9\xd9\xa9\x0e\x1d\
-:\xa4l!\x08Y\x10\xb6-\x1c\xc7\xc6BP\xb4\xcd\
-\x1a\x1b\x00\xc7\xb2\x888\x96\xae\x02`Yx\x10\xc0\xdc\
-\xdc\x1c555\x06 \x1a\x8dr\xe4\xc8\x91\xcd\xc0\x03\
-\x88\x1b\x1a\xa2\xc7b\xb9\xb0mt0f\x8d\xcb#6\
-\xb1\xa8\xa3\xc7,2\x8b\x1e\x93\x99\x1cc\xa9y\xee\xcc\
-.\xe8\xdfEr\xf9<\xab\xc8,A6\x9b5\xa7f\
-\xe9\xffm\x0e\x1c8\xb0\x1e\xe8\x00X\x06\xa0\xb4t\x16\
-\x8e\x0d\xe1\x90\xc0S\x8a\xb1\xa4\xcb\x8d\x8c\x83\xd3\xb2\x97\
-\xa6}\xaf\xb3\xb5\xe3\x17\xac\xdb\xfb:\x0d/\xb4s\xfb\
-\xce$\xfd\xfd\xfd$\x93I\x94R\xe6\xfa\xf8\xf1\xe3\xe8\
-\xba\xac3\xe7\xce\x9d\xe3\xe8\xd1\xa3\x1c>|\x98\xde\xde\
-^\x12\x89\x84\x04,\xa1\x15\xdc\x01\xed\xff\xce\xe6\xf8\xe7\
-\x94Ok\xc7\xcf\xf8\xe6/\xdf&\xf6\xf57\x99|\xa6\
-\x83k\xfe.\xae\xf1-dk\x17\xad{\x7fN^V\
-s\xfaog\xd1wM\xee\xdc\x9d\xe2\x1b\xafvr\xfd\
-\xfau\x03\xa0gk\xd6?\x16\x8b\x99\xebx<\x8e\xe3\
-8%8\x04\xc0#\x00\x96%\x98\xcaA:\xde\xca\xfe\
-\xdf\xbdM\xd5\xae\xd7(\x84b\x08\xdbBY\x82lA\
-r\x7ff\x91O\xeef\x18\xb8\xear\xfa\x1fad\xd5\
-^\xae\x8f\xdcg2\xd7\xc6\x85\x0f\xee\x9b\x00\xed\x87\xa1\
-\xcd\xcd\xcd\xb4\xb5\xb5\x19755\xa1\xa1\x14 \x83\x1f\
-F\x16\xdcq\x15\xdf\xff\xe9o\xa8l\xd8H\xe2\xec;\
-L\x8f^\xc3\x89\x94\xb1\xb5y\x07\x9b[\xb6\xf3Iy\
-%c\x09\x97\xcff\xf2\xdc\x9d\xce2\xa1\xed\x88\x0dL\
-'\xe7\xd8\xb7+\xca\xfa%\x003{=k\xea\xea\xea\
-\x00\xccu*\x952\x00J+\x10\xa0\xb9Zp\xe1\x9d\
-c(,\xca\xe6\xc6\xd9\x10\x8fR\x94\x92{\xc3}$\
-e\x05\xdb\xda\x7fLM\xdb\xcb|<\x9cf\xd2_\xc0\
-\xcdx,\xcck/x \x00\xb5t:B\xa1\x90\x09\
--\xdd\xea\x1f\x8e\x01*\xf8>`\xc1\xc6\xb8\xa0P\x1c\
-#\x1c\x8bS\xb7\xa5\x96\x92xv}\x05\xe9\xac\xc7h\
-\xff\x9f\x98\xae\xbcL\xcb\xf6\x83\xb8\x0ba\xbc\x82\xa4X\
-\x94x\xda!\xc7B-\xaa\x80\xe3i\xa0\x96\xd5\x15\x01\
-\x00\xd6\xc7C\x84\xca#\xfc\xbfjc!\x9e\xa9\x0cs\
-\xe1\xdf\x83\xec\xd9\xf9\x13\xca\xa3\x0e\xb92G\x03(\x03\
-ak\x00\x16K!\xa5\x1c%0*\x15\xa4\x5c\x05@\
-X\xa5*\xcc\xf5#\xfapl\x86\xf1Y\x8f\xef\xfd\xfa\
-\x8f\xdc\xca\xd4\xe0D\x5c\xa2\x11\x1b\xcf\x93\x14=\x07\xd3\
-\x01\xa5\x90R\xf2PjY\x01V\x05\x10\x08L\x0d\x04\
-\x18\x9dv\xf9\xd5_\x86\x18\xbd\xb7\x80=\x93g\xd3\xba\
-2\xf2y_\xbbh\xea\xce\xaf\xd4p\xf9\xdd\xe0%\x00\
-\x9ex\x09L\xb8\x10<\xa2\xd6/U\xf2\x87\x1f>\xcf\
-\xf5O3D\x1b\xb7\xb1\xf3\xc5\x97Y\x12\x5cN`\x8e\
-\xdbS\x01(\xc0\x12%\x00m\xd4R}\xb1\xb5\x96\xdd\
-[\xe2t\xbf\x97\xa5j\xf7W\xf9\xd1\x1bo\x10\xa0\xb5\
-\x03\x98\xb57\xd5\xd8\x08\x01\xd2\xcbSpSx\xf33\
-\x14\xb3i\x0a\x19\x1f%\xfd\xd5\x82\xd6\x08\xf0\xf0)\xe7\
-\xe3\xe73\x14\xe6u\xa8\x0e\xd6\x00\xcb\xf7\x89\x10\xc13\
-}\xfa\xd7r\x8c\xb2\x137\x03\xc7\x01\xb2\x1e\xfe\xad\x94\
-\xcco\xf7DT\x03\xd8_p\x07\x08\x92\x09\xfd\xd7=\
-?\xfd~B\xa6\xcf\xdf\xf6\xef\x02\xeev;\xfc\x92\x06\
-\xa8\xe3s\xcau]\x1fpW\xed\x00@2\xab\x0a\x1f\
-~*\xd3\xbd\xb7\xfc\xd4\xcdi9\x05\xf4\x03\x97th\
-\xbf\x10\xa2\xd3\xb6\xed\xaf}\x9e%XXX\xf0\x07\x06\
-\x06\xd2'O\x9e\x9c\x06\xba\x83\x00>\x1aI\xca\xad\xe3\
-\xb3*\xd7;\xe2\xa7nL\xcb\xd1R\xe8Y\x1dt\x8b\
-\x00=\x09\xc0\xd0\xd0\x90\xdb\xd3\xd3\x93\xd2N\xcf\xce\xce\
-\x9e.\xbd\x1d\xdf\x08\x02\xe8\xee\xea)\x00\x8c\x04\x84\x06\
-\x85\xaf\x08055U\xd0/\x22\xa9S\xa7N%\xc7\
-\xc7\xc7/\x03g\x81~\x1d\xec\xae\xb8\x09K\xdfv\xda\
-O&\x85\x01@\x08@aZ\xfc\xde\xe0`\xba\xbb\xbb\
-;\xa5\xdf\x8a\xcc$\xd0^\xeds\xcda\xed\x9aw3\
-n\x11`p\xf0\xfdt___\xfa\xcc\x993\xa6\xc5\
-\xa5\xd0\x8fx\x02\x89\xb5\x9ec!D\x18x\x13\xd8O\
-is\x06\xb4\xf8\xb1\xfa\x1f\xbd\xfa*_\xf2\xd8\x15\x9d\
-\x00\x00\x00\x00IEND\xaeB`\x82\
-"
-
-qt_resource_name = b"\
-\x00\x06\
-\x07\x03}\xc3\
-\x00i\
-\x00m\x00a\x00g\x00e\x00s\
-\x00\x08\
-\x08\xc8Xg\
-\x00s\
-\x00a\x00v\x00e\x00.\x00p\x00n\x00g\
-\x00\x08\
-\x06\xc1Y\x87\
-\x00o\
-\x00p\x00e\x00n\x00.\x00p\x00n\x00g\
-\x00\x07\
-\x0a\xc7W\x87\
-\x00c\
-\x00u\x00t\x00.\x00p\x00n\x00g\
-\x00\x08\
-\x06|Z\x07\
-\x00c\
-\x00o\x00p\x00y\x00.\x00p\x00n\x00g\
-\x00\x07\
-\x04\xcaW\xa7\
-\x00n\
-\x00e\x00w\x00.\x00p\x00n\x00g\
-\x00\x09\
-\x0a\xa8\xbaG\
-\x00p\
-\x00a\x00s\x00t\x00e\x00.\x00p\x00n\x00g\
-"
-
-qt_resource_struct = b"\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
-\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x02\
-\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00h\x00\x00\x00\x00\x00\x01\x00\x00\x171\
-\x00\x00\x01e\xaf\x16\xd2\x9d\
-\x00\x00\x00R\x00\x00\x00\x00\x00\x01\x00\x00\x11\xf3\
-\x00\x00\x01e\xaf\x16\xd2\x9d\
-\x00\x00\x00(\x00\x00\x00\x00\x00\x01\x00\x00\x04\xa7\
-\x00\x00\x01e\xaf\x16\xd2\x9d\
-\x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x01e\xaf\x16\xd2\x9d\
-\x00\x00\x00|\x00\x00\x00\x00\x00\x01\x00\x00\x1a\x89\
-\x00\x00\x01e\xaf\x16\xd2\x9d\
-\x00\x00\x00>\x00\x00\x00\x00\x00\x01\x00\x00\x0c\xc4\
-\x00\x00\x01e\xaf\x16\xd2\x9d\
-"
-
-def qInitResources():
- QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
-
-def qCleanupResources():
- QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
-
-qInitResources()
diff --git a/examples/widgets/painting/basicdrawing/basicdrawing.py b/examples/widgets/painting/basicdrawing/basicdrawing.py
index d7849b0cc..858a8cd9f 100644
--- a/examples/widgets/painting/basicdrawing/basicdrawing.py
+++ b/examples/widgets/painting/basicdrawing/basicdrawing.py
@@ -1,54 +1,17 @@
-
-#############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the widgets/painting/basicdrawing example from Qt v5.x, originating from PyQt"""
from PySide6.QtCore import QPoint, QRect, QSize, Qt, qVersion
from PySide6.QtGui import (QBrush, QConicalGradient, QLinearGradient, QPainter,
- QPainterPath, QPalette, QPen, QPixmap, QPolygon, QRadialGradient)
+ QPainterPath, QPalette, QPen, QPixmap, QPolygon,
+ QRadialGradient)
from PySide6.QtWidgets import (QApplication, QCheckBox, QComboBox, QGridLayout,
- QLabel, QSpinBox, QWidget)
+ QLabel, QSpinBox, QWidget)
-import basicdrawing_rc
+import basicdrawing_rc # noqa: F401
class RenderArea(QWidget):
@@ -114,56 +77,56 @@ class RenderArea(QWidget):
start_angle = 30 * 16
arc_length = 120 * 16
- painter = QPainter(self)
- painter.setPen(self.pen)
- painter.setBrush(self.brush)
- if self.antialiased:
- painter.setRenderHint(QPainter.Antialiasing)
-
- for x in range(0, self.width(), 100):
- for y in range(0, self.height(), 100):
- painter.save()
- painter.translate(x, y)
- if self.transformed:
- painter.translate(50, 50)
- painter.rotate(60.0)
- painter.scale(0.6, 0.9)
- painter.translate(-50, -50)
-
- if self.shape == RenderArea.Line:
- painter.drawLine(rect.bottomLeft(), rect.topRight())
- elif self.shape == RenderArea.Points:
- painter.drawPoints(RenderArea.points)
- elif self.shape == RenderArea.Polyline:
- painter.drawPolyline(RenderArea.points)
- elif self.shape == RenderArea.Polygon:
- painter.drawPolygon(RenderArea.points)
- elif self.shape == RenderArea.Rect:
- painter.drawRect(rect)
- elif self.shape == RenderArea.RoundedRect:
- painter.drawRoundedRect(rect, 25, 25, Qt.RelativeSize)
- elif self.shape == RenderArea.Ellipse:
- painter.drawEllipse(rect)
- elif self.shape == RenderArea.Arc:
- painter.drawArc(rect, start_angle, arc_length)
- elif self.shape == RenderArea.Chord:
- painter.drawChord(rect, start_angle, arc_length)
- elif self.shape == RenderArea.Pie:
- painter.drawPie(rect, start_angle, arc_length)
- elif self.shape == RenderArea.Path:
- painter.drawPath(path)
- elif self.shape == RenderArea.Text:
- qv = qVersion()
- painter.drawText(rect, Qt.AlignCenter,
- f"PySide 6\nQt {qv}")
- elif self.shape == RenderArea.Pixmap:
- painter.drawPixmap(10, 10, self.pixmap)
-
- painter.restore()
-
- painter.setPen(self.palette().dark().color())
- painter.setBrush(Qt.NoBrush)
- painter.drawRect(QRect(0, 0, self.width() - 1, self.height() - 1))
+ with QPainter(self) as painter:
+ painter.setPen(self.pen)
+ painter.setBrush(self.brush)
+ if self.antialiased:
+ painter.setRenderHint(QPainter.Antialiasing)
+
+ for x in range(0, self.width(), 100):
+ for y in range(0, self.height(), 100):
+ painter.save()
+ painter.translate(x, y)
+ if self.transformed:
+ painter.translate(50, 50)
+ painter.rotate(60.0)
+ painter.scale(0.6, 0.9)
+ painter.translate(-50, -50)
+
+ if self.shape == RenderArea.Line:
+ painter.drawLine(rect.bottomLeft(), rect.topRight())
+ elif self.shape == RenderArea.Points:
+ painter.drawPoints(RenderArea.points)
+ elif self.shape == RenderArea.Polyline:
+ painter.drawPolyline(RenderArea.points)
+ elif self.shape == RenderArea.Polygon:
+ painter.drawPolygon(RenderArea.points)
+ elif self.shape == RenderArea.Rect:
+ painter.drawRect(rect)
+ elif self.shape == RenderArea.RoundedRect:
+ painter.drawRoundedRect(rect, 25, 25, Qt.RelativeSize)
+ elif self.shape == RenderArea.Ellipse:
+ painter.drawEllipse(rect)
+ elif self.shape == RenderArea.Arc:
+ painter.drawArc(rect, start_angle, arc_length)
+ elif self.shape == RenderArea.Chord:
+ painter.drawChord(rect, start_angle, arc_length)
+ elif self.shape == RenderArea.Pie:
+ painter.drawPie(rect, start_angle, arc_length)
+ elif self.shape == RenderArea.Path:
+ painter.drawPath(path)
+ elif self.shape == RenderArea.Text:
+ qv = qVersion()
+ painter.drawText(rect, Qt.AlignCenter,
+ f"PySide 6\nQt {qv}")
+ elif self.shape == RenderArea.Pixmap:
+ painter.drawPixmap(10, 10, self.pixmap)
+
+ painter.restore()
+
+ painter.setPen(self.palette().dark().color())
+ painter.setBrush(Qt.NoBrush)
+ painter.drawRect(QRect(0, 0, self.width() - 1, self.height() - 1))
id_role = Qt.UserRole
@@ -228,12 +191,9 @@ class Window(QWidget):
pen_join_label.setBuddy(self._pen_join_combo_box)
self._brush_style_combo_box = QComboBox()
- self._brush_style_combo_box.addItem("Linear Gradient",
- Qt.LinearGradientPattern)
- self._brush_style_combo_box.addItem("Radial Gradient",
- Qt.RadialGradientPattern)
- self._brush_style_combo_box.addItem("Conical Gradient",
- Qt.ConicalGradientPattern)
+ self._brush_style_combo_box.addItem("Linear Gradient", Qt.LinearGradientPattern)
+ self._brush_style_combo_box.addItem("Radial Gradient", Qt.RadialGradientPattern)
+ self._brush_style_combo_box.addItem("Conical Gradient", Qt.ConicalGradientPattern)
self._brush_style_combo_box.addItem("Texture", Qt.TexturePattern)
self._brush_style_combo_box.addItem("Solid", Qt.SolidPattern)
self._brush_style_combo_box.addItem("Horizontal", Qt.HorPattern)
@@ -298,24 +258,23 @@ class Window(QWidget):
self.setWindowTitle("Basic Drawing")
def shape_changed(self):
- shape = self._shape_combo_box.itemData(self._shape_combo_box.currentIndex(),
- id_role)
+ shape = self._shape_combo_box.itemData(self._shape_combo_box.currentIndex(), id_role)
self._render_area.set_shape(shape)
def pen_changed(self):
width = self._pen_width_spin_box.value()
style = Qt.PenStyle(self._pen_style_combo_box.itemData(
- self._pen_style_combo_box.currentIndex(), id_role))
+ self._pen_style_combo_box.currentIndex(), id_role))
cap = Qt.PenCapStyle(self._pen_cap_combo_box.itemData(
- self._pen_cap_combo_box.currentIndex(), id_role))
+ self._pen_cap_combo_box.currentIndex(), id_role))
join = Qt.PenJoinStyle(self._pen_join_combo_box.itemData(
- self._pen_join_combo_box.currentIndex(), id_role))
+ self._pen_join_combo_box.currentIndex(), id_role))
self._render_area.set_pen(QPen(Qt.blue, width, style, cap, join))
def brush_changed(self):
style = Qt.BrushStyle(self._brush_style_combo_box.itemData(
- self._brush_style_combo_box.currentIndex(), id_role))
+ self._brush_style_combo_box.currentIndex(), id_role))
if style == Qt.LinearGradientPattern:
linear_gradient = QLinearGradient(0, 0, 100, 100)
diff --git a/examples/widgets/painting/basicdrawing/basicdrawing.pyproject b/examples/widgets/painting/basicdrawing/basicdrawing.pyproject
index 9ecbfadcf..976bb9e35 100644
--- a/examples/widgets/painting/basicdrawing/basicdrawing.pyproject
+++ b/examples/widgets/painting/basicdrawing/basicdrawing.pyproject
@@ -1,3 +1,3 @@
{
- "files": ["basicdrawing_rc.py", "basicdrawing.qrc", "basicdrawing.py"]
+ "files": ["basicdrawing.qrc", "basicdrawing.py"]
}
diff --git a/examples/widgets/painting/basicdrawing/basicdrawing_rc.py b/examples/widgets/painting/basicdrawing/basicdrawing_rc.py
index e7f9584de..701f1610b 100644
--- a/examples/widgets/painting/basicdrawing/basicdrawing_rc.py
+++ b/examples/widgets/painting/basicdrawing/basicdrawing_rc.py
@@ -1,11 +1,47 @@
# Resource object code (Python 3)
# Created by: object code
-# Created by: The Resource Compiler for Qt version 5.14.0
+# Created by: The Resource Compiler for Qt version 6.2.2
# WARNING! All changes made in this file will be lost!
from PySide6 import QtCore
qt_resource_data = b"\
+\x00\x00\x02\x15\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00P\x00\x00\x00P\x04\x03\x00\x00\x00|?\xef\x9e\
+\x00\x00\x00\x15PLTE\xa3\xc2\x00\xf4\xf8\xe1\x8a\xa1\
+\x09\x14\x14\x18?G\x16\xd3\xe2\x86p\x82\x0e\xfd\x17\x22\
+9\x00\x00\x00\x09pHYs\x00\x00\x00H\x00\x00\x00\
+H\x00F\xc9k>\x00\x00\x01\xa6IDATH\xc7\
+\xedVKn\x840\x0cEf\xc49\xa2I\xd55\x22\
+\x11k\xd4Hs\x0eT\x10\xf7?B\x0b\xc4L\xfc\x83\
+\xd9u\xd1\xf1\x0a\xa2\x97\x17\xdb\xb1\x9fSUo\xfbk\
+\xbb/\xcb\xfd\x1a\x05s\x0a\xbf\x16\x1f\xee\x1c\xd7l\xb0\
+\x0d:\x9e\xe2Ba\xe3\x8b\xb8\x13$$\x0a\x8c\x96\x9f\
+S`\xd6\xeb\xb8[\x106\xa8\xc0$\x81\xf1EB\x9d\
+\x12\x09\xe3cY\xe6dSbj\xf6+\x81\xd9\xa4\xf4\
+\x19\x87\xff\x1fV\xe0\x89\xaf\xe7d9=\x14'\xd2?\
+\xa8'\x7f\xc9\xbd\x9dz\xf2\x93n\xc45\x167\xb0\xdd\
+~u\xb6VJ\xe3F\xd7`\xfb\x06\xc5\xc9\x9a\x9e\xe2\
+\xf7\xf8\x93tr\x22K\x90\xe9k\x99\xc9D\x0e\xf1\x19\
+\xd0\xc8hR\x99D\xc0\x02\x07\x91r [\xf3m\xb6\
+l\xffQ\x11=%\x5c\x9d\x9cx~\x080\x13v\xf8\
+9\xf04v\x94\xd0a\xd6\x04\xb0\x15\x84\xfb\xba\x01\x84\
+\xb2\xa9u\xe0P\x12\xf6\xd5\x05#\x84k\xc6\xb6 \xcc\
+\x9473j\xa0\xca#\xa2>\xf2\xe8\xa9\x9ex\x15\x18\
+\x09\xa1~3x\xd75\x93(q\xd7\xb8\x02T\x1f\x81\
+6RY\x8f\x9bS\x1d\xe6R\xa9G\xacp(\x98B\
+\x98d\x85\x1f=\xb3wK\x11<\xeb\x99\xa3\x0bas\
+\x1eL\xe5{\xf6\xb5\xef*\x9aO\xa7)\x85\xcb\x1aQ\
+PFU{:\xae\x82R{\x1av\x0e\x98\xe2\xcc\xf5\
+\x11)-\xc5=\x90\xb35\xbeP\xc3{\xaa\xe1\xa66\
+\xb3\xa9\xa0Q\xaas\xe6\x94\x92\xdbx1\x84O\xa6\xd7\
+\xa4\xe2\xe2\x0b\xf3z\xb2\xc6a\x93d\x85\xc7\x8b\xb7\xc7\
+\x1e\x84\xb7F6\x7f\xa5\x80A\xb8\xda\x92\xdf=\xf9b\
+\x87\xb3\x97\xd4\xe7\xf7\xf1\x92\x02\xf7~Y\xfe?\xfb\x01\
+\xbd\xf6\xdd\x91\xa2\xf3\xda\xd4\x00\x00\x00\x00IEND\
+\xaeB`\x82\
\x00\x00\x03X\
\x89\
PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
@@ -62,42 +98,6 @@ m\x84\xd3O\x00\xdb\xe6\xee\xebD+\x94p|\xf0\xc7\
W]\x06\xe4\xfcAY\xbf\xb5\x08Wn\x8a\xce9\x97\
\xe4\xfe\x07\xb6\x84\x15$\x5c\xbcO\xce\x00\x00\x00\x00I\
END\xaeB`\x82\
-\x00\x00\x02\x15\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00P\x00\x00\x00P\x04\x03\x00\x00\x00|?\xef\x9e\
-\x00\x00\x00\x15PLTE\xa3\xc2\x00\xf4\xf8\xe1\x8a\xa1\
-\x09\x14\x14\x18?G\x16\xd3\xe2\x86p\x82\x0e\xfd\x17\x22\
-9\x00\x00\x00\x09pHYs\x00\x00\x00H\x00\x00\x00\
-H\x00F\xc9k>\x00\x00\x01\xa6IDATH\xc7\
-\xedVKn\x840\x0cEf\xc49\xa2I\xd55\x22\
-\x11k\xd4Hs\x0eT\x10\xf7?B\x0b\xc4L\xfc\x83\
-\xd9u\xd1\xf1\x0a\xa2\x97\x17\xdb\xb1\x9fSUo\xfbk\
-\xbb/\xcb\xfd\x1a\x05s\x0a\xbf\x16\x1f\xee\x1c\xd7l\xb0\
-\x0d:\x9e\xe2Ba\xe3\x8b\xb8\x13$$\x0a\x8c\x96\x9f\
-S`\xd6\xeb\xb8[\x106\xa8\xc0$\x81\xf1EB\x9d\
-\x12\x09\xe3cY\xe6dSbj\xf6+\x81\xd9\xa4\xf4\
-\x19\x87\xff\x1fV\xe0\x89\xaf\xe7d9=\x14'\xd2?\
-\xa8'\x7f\xc9\xbd\x9dz\xf2\x93n\xc45\x167\xb0\xdd\
-~u\xb6VJ\xe3F\xd7`\xfb\x06\xc5\xc9\x9a\x9e\xe2\
-\xf7\xf8\x93tr\x22K\x90\xe9k\x99\xc9D\x0e\xf1\x19\
-\xd0\xc8hR\x99D\xc0\x02\x07\x91r [\xf3m\xb6\
-l\xffQ\x11=%\x5c\x9d\x9cx~\x080\x13v\xf8\
-9\xf04v\x94\xd0a\xd6\x04\xb0\x15\x84\xfb\xba\x01\x84\
-\xb2\xa9u\xe0P\x12\xf6\xd5\x05#\x84k\xc6\xb6 \xcc\
-\x9473j\xa0\xca#\xa2>\xf2\xe8\xa9\x9ex\x15\x18\
-\x09\xa1~3x\xd75\x93(q\xd7\xb8\x02T\x1f\x81\
-6RY\x8f\x9bS\x1d\xe6R\xa9G\xacp(\x98B\
-\x98d\x85\x1f=\xb3wK\x11<\xeb\x99\xa3\x0bas\
-\x1eL\xe5{\xf6\xb5\xef*\x9aO\xa7)\x85\xcb\x1aQ\
-PFU{:\xae\x82R{\x1av\x0e\x98\xe2\xcc\xf5\
-\x11)-\xc5=\x90\xb35\xbeP\xc3{\xaa\xe1\xa66\
-\xb3\xa9\xa0Q\xaas\xe6\x94\x92\xdbx1\x84O\xa6\xd7\
-\xa4\xe2\xe2\x0b\xf3z\xb2\xc6a\x93d\x85\xc7\x8b\xb7\xc7\
-\x1e\x84\xb7F6\x7f\xa5\x80A\xb8\xda\x92\xdf=\xf9b\
-\x87\xb3\x97\xd4\xe7\xf7\xf1\x92\x02\xf7~Y\xfe?\xfb\x01\
-\xbd\xf6\xdd\x91\xa2\xf3\xda\xd4\x00\x00\x00\x00IEND\
-\xaeB`\x82\
"
qt_resource_name = b"\
@@ -105,14 +105,14 @@ qt_resource_name = b"\
\x07\x03}\xc3\
\x00i\
\x00m\x00a\x00g\x00e\x00s\
-\x00\x09\
-\x0f\x9e\x84G\
-\x00b\
-\x00r\x00i\x00c\x00k\x00.\x00p\x00n\x00g\
\x00\x0b\
\x05R\xbf'\
\x00q\
\x00t\x00-\x00l\x00o\x00g\x00o\x00.\x00p\x00n\x00g\
+\x00\x09\
+\x0f\x9e\x84G\
+\x00b\
+\x00r\x00i\x00c\x00k\x00.\x00p\x00n\x00g\
"
qt_resource_struct = b"\
@@ -120,10 +120,10 @@ qt_resource_struct = b"\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\
\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00*\x00\x00\x00\x00\x00\x01\x00\x00\x03\x5c\
-\x00\x00\x01e\xaf\x16\xd2\xa1\
\x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x01e\xaf\x16\xd2\xa1\
+\x00\x00\x01z\xe7\xee'\x09\
+\x00\x00\x00.\x00\x00\x00\x00\x00\x01\x00\x00\x02\x19\
+\x00\x00\x01z\xe7\xee'\x09\
"
def qInitResources():
@@ -132,5 +132,4 @@ def qInitResources():
def qCleanupResources():
QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
-
qInitResources()
diff --git a/examples/widgets/painting/concentriccircles/concentriccircles.py b/examples/widgets/painting/concentriccircles/concentriccircles.py
index d3df51099..d2c60178f 100644
--- a/examples/widgets/painting/concentriccircles/concentriccircles.py
+++ b/examples/widgets/painting/concentriccircles/concentriccircles.py
@@ -1,51 +1,14 @@
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-#############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-"""PySide6 port of the widgets/painting/concentriccircles example from Qt v5.x, originating from PyQt"""
+"""PySide6 port of the widgets/painting/concentriccircles example from Qt v5.x, originating
+ from PyQt"""
from PySide6.QtCore import QRect, QRectF, QSize, Qt, QTimer
from PySide6.QtGui import QColor, QPainter, QPalette, QPen
from PySide6.QtWidgets import (QApplication, QFrame, QGridLayout, QLabel,
- QSizePolicy, QWidget)
+ QSizePolicy, QWidget)
class CircleWidget(QWidget):
@@ -78,22 +41,22 @@ class CircleWidget(QWidget):
self.update()
def paintEvent(self, event):
- painter = QPainter(self)
- painter.setRenderHint(QPainter.Antialiasing, self.antialiased)
- painter.translate(self.width() / 2, self.height() / 2)
-
- for diameter in range(0, 256, 9):
- delta = abs((self._frame_no % 128) - diameter / 2)
- alpha = 255 - (delta * delta) / 4 - diameter
- if alpha > 0:
- painter.setPen(QPen(QColor(0, diameter / 2, 127, alpha), 3))
-
- if self._float_based:
- painter.drawEllipse(QRectF(-diameter / 2.0,
- -diameter / 2.0, diameter, diameter))
- else:
- painter.drawEllipse(QRect(-diameter / 2,
- -diameter / 2, diameter, diameter))
+ with QPainter(self) as painter:
+ painter.setRenderHint(QPainter.Antialiasing, self.antialiased)
+ painter.translate(self.width() / 2, self.height() / 2)
+
+ for diameter in range(0, 256, 9):
+ delta = abs((self._frame_no % 128) - diameter / 2)
+ alpha = 255 - (delta * delta) / 4 - diameter
+ if alpha > 0:
+ painter.setPen(QPen(QColor(0, diameter / 2, 127, alpha), 3))
+
+ if self._float_based:
+ painter.drawEllipse(QRectF(-diameter / 2.0,
+ -diameter / 2.0, diameter, diameter))
+ else:
+ painter.drawEllipse(QRect(-diameter / 2,
+ -diameter / 2, diameter, diameter))
class Window(QWidget):
diff --git a/examples/widgets/painting/painter/painter.py b/examples/widgets/painting/painter/painter.py
index 3d5d95f10..2ca078ad9 100644
--- a/examples/widgets/painting/painter/painter.py
+++ b/examples/widgets/painting/painter/painter.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from PySide6.QtWidgets import (
QWidget,
@@ -46,7 +9,7 @@ from PySide6.QtWidgets import (
QStyle,
QColorDialog,
)
-from PySide6.QtCore import QPoint, Qt, QDir, Slot, QStandardPaths
+from PySide6.QtCore import Qt, Slot, QStandardPaths
from PySide6.QtGui import (
QMouseEvent,
QPaintEvent,
@@ -88,10 +51,8 @@ class PainterWidget(QWidget):
Paint the Pixmap into the widget
"""
- painter = QPainter()
- painter.begin(self)
- painter.drawPixmap(0, 0, self.pixmap)
- painter.end()
+ with QPainter(self) as painter:
+ painter.drawPixmap(0, 0, self.pixmap)
def mousePressEvent(self, event: QMouseEvent):
"""Override from QWidget
@@ -155,15 +116,17 @@ class MainWindow(QMainWindow):
self.bar = self.addToolBar("Menu")
self.bar.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
self._save_action = self.bar.addAction(
- qApp.style().standardIcon(QStyle.SP_DialogSaveButton), "Save", self.on_save
+ qApp.style().standardIcon(QStyle.SP_DialogSaveButton), # noqa: F821
+ "Save", self.on_save
)
self._save_action.setShortcut(QKeySequence.Save)
self._open_action = self.bar.addAction(
- qApp.style().standardIcon(QStyle.SP_DialogOpenButton), "Open", self.on_open
+ qApp.style().standardIcon(QStyle.SP_DialogOpenButton), # noqa: F821
+ "Open", self.on_open
)
self._open_action.setShortcut(QKeySequence.Open)
self.bar.addAction(
- qApp.style().standardIcon(QStyle.SP_DialogResetButton),
+ qApp.style().standardIcon(QStyle.SP_DialogResetButton), # noqa: F821
"Clear",
self.painter_widget.clear,
)
@@ -175,7 +138,8 @@ class MainWindow(QMainWindow):
self.setCentralWidget(self.painter_widget)
- self.set_color(Qt.black)
+ self.color = Qt.black
+ self.set_color(self.color)
self.mime_type_filters = ["image/png", "image/jpeg"]
@@ -214,19 +178,21 @@ class MainWindow(QMainWindow):
@Slot()
def on_color_clicked(self):
- color = QColorDialog.getColor(Qt.black, self)
+ color = QColorDialog.getColor(self.color, self)
+
if color:
self.set_color(color)
def set_color(self, color: QColor = Qt.black):
+ self.color = color
# Create color icon
pix_icon = QPixmap(32, 32)
- pix_icon.fill(color)
+ pix_icon.fill(self.color)
self.color_action.setIcon(QIcon(pix_icon))
- self.painter_widget.pen.setColor(color)
- self.color_action.setText(QColor(color).name())
+ self.painter_widget.pen.setColor(self.color)
+ self.color_action.setText(QColor(self.color).name())
if __name__ == "__main__":
diff --git a/examples/widgets/painting/plot/doc/plot.png b/examples/widgets/painting/plot/doc/plot.png
new file mode 100644
index 000000000..e5031e351
--- /dev/null
+++ b/examples/widgets/painting/plot/doc/plot.png
Binary files differ
diff --git a/examples/widgets/painting/plot/doc/plot.rst b/examples/widgets/painting/plot/doc/plot.rst
new file mode 100644
index 000000000..a63eaed87
--- /dev/null
+++ b/examples/widgets/painting/plot/doc/plot.rst
@@ -0,0 +1,36 @@
+Plot Example
+============
+
+The Plot example shows how to display a graph from data using an
+`opaque container <https://doc.qt.io/qtforpython-6/shiboken6/typesystem_containers.html>`_.
+
+It draws an sine graph using ``QPainter.drawPolyline()`` from a list of points.
+The list of points is continuously updated, as is the case for a example for a
+graph of an oscilloscope or medical patient monitor.
+In this case, it makes sense from a performance point of view to avoid the
+conversion of a Python list of data to a C++ list (``QList<QPoint>``)
+for each call to the plot function ``QPainter.drawPolyline()``.
+This is where opaque containers come into play.
+
+Instead of Python list of points, a ``QPointList`` is instantiated to store
+the data. ``QPointList`` is an opaque container wrapping a ``QList<QPoint>``.
+It can be passed to ``QPainter.drawPolyline()`` instead of a Python list of
+points.
+
+The type is declared in the entry for the ``QList`` container type in the
+type system file of the ``QtCore`` library:
+
+.. code-block:: xml
+
+ <container-type name="QList" type="list"
+ opaque-containers="int:QIntList;QPoint:QPointList;QPointF:QPointFList">
+ ...
+ </container-type>
+
+In the ``shift()`` member function, new data are appended to the list while
+old data moving out of the visible window are removed from the front of the
+list.
+
+.. image:: plot.png
+ :width: 400
+ :alt: Plot Screenshot
diff --git a/examples/widgets/painting/plot/plot.py b/examples/widgets/painting/plot/plot.py
new file mode 100644
index 000000000..fd7ff9937
--- /dev/null
+++ b/examples/widgets/painting/plot/plot.py
@@ -0,0 +1,66 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import math
+import sys
+
+from PySide6.QtWidgets import QWidget, QApplication
+from PySide6.QtCore import QPoint, QRect, QTimer, Qt
+from PySide6.QtGui import QPainter, QPointList
+
+
+WIDTH = 680
+HEIGHT = 480
+
+
+class PlotWidget(QWidget):
+ """Illustrates the use of opaque containers. QPointList
+ wraps a C++ QList<QPoint> directly, removing the need to convert
+ a Python list in each call to QPainter.drawPolyline()."""
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._timer = QTimer(self)
+ self._timer.setInterval(20)
+ self._timer.timeout.connect(self.shift)
+
+ self._points = QPointList()
+ self._points.reserve(WIDTH)
+ self._x = 0
+ self._delta_x = 0.05
+ self._half_height = HEIGHT / 2
+ self._factor = 0.8 * self._half_height
+
+ for i in range(WIDTH):
+ self._points.append(QPoint(i, self.next_point()))
+
+ self.setFixedSize(WIDTH, HEIGHT)
+
+ self._timer.start()
+
+ def next_point(self):
+ result = self._half_height - self._factor * math.sin(self._x)
+ self._x += self._delta_x
+ return result
+
+ def shift(self):
+ last_x = self._points[WIDTH - 1].x()
+ self._points.pop_front()
+ self._points.append(QPoint(last_x + 1, self.next_point()))
+ self.update()
+
+ def paintEvent(self, event):
+ with QPainter(self) as painter:
+ rect = QRect(QPoint(0, 0), self.size())
+ painter.fillRect(rect, Qt.white)
+ painter.translate(-self._points[0].x(), 0)
+ painter.drawPolyline(self._points)
+
+
+if __name__ == "__main__":
+
+ app = QApplication(sys.argv)
+
+ w = PlotWidget()
+ w.show()
+ sys.exit(app.exec())
diff --git a/examples/widgets/painting/plot/plot.pyproject b/examples/widgets/painting/plot/plot.pyproject
new file mode 100644
index 000000000..0ac776c83
--- /dev/null
+++ b/examples/widgets/painting/plot/plot.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["plot.py"]
+}
diff --git a/examples/widgets/rhi/simplerhiwidget/doc/simplerhiwidget.rst b/examples/widgets/rhi/simplerhiwidget/doc/simplerhiwidget.rst
new file mode 100644
index 000000000..c33c6660a
--- /dev/null
+++ b/examples/widgets/rhi/simplerhiwidget/doc/simplerhiwidget.rst
@@ -0,0 +1,34 @@
+.. _rhi-widget-example:
+
+Simple RHI Widget Example
+=========================
+
+Shows how to render a triangle using ``QRhi``, Qt's 3D API and shading
+language abstraction layer.
+
+This example is, in many ways, the counterpart of the :ref:`rhi-window-example`
+in the QWidget world. The ``QRhiWidget`` subclass in this applications renders
+a single triangle, using a simple graphics pipeline with basic vertex and
+fragment shaders. Unlike the plain ``QWindow``-based application, this example
+does not need to worry about lower level details, such as setting up the window
+and the ``QRhi``, or dealing with swapchain and window events, as that is taken
+care of by the ``QWidget`` framework here. The instance of the ``QRhiWidget``
+subclass is added to a ``QVBoxLayout``. To keep the example minimal and
+compact, there are no further widgets or 3D content introduced.
+
+Once an instance of ``ExampleRhiWidget``, a ``QRhiWidget`` subclass, is added
+to a top-level widget's child hierarchy, the corresponding window automatically
+becomes a Direct 3D, Vulkan, Metal, or OpenGL-rendered window. The
+``QPainter``-rendered widget content, i.e. everything that is not a
+``QRhiWidget``, ``QOpenGLWidget``, or ``QQuickWidget``, is then uploaded to a
+texture, whereas the mentioned special widgets each render to a texture. The
+resulting set textures is composited together by the top-level widget's
+backingstore.
+
+As opposed to the C++ example, the cleanup is done by reimplementing
+``QRhiWidget.releaseResources()``, which is called from QWidget.closeEvent() of
+the top level widget to ensure a deterministic cleanup sequence.
+
+.. image:: simplerhiwidget.webp
+ :width: 400
+ :alt: Screenshot of the Simple RHI Widget example
diff --git a/examples/widgets/rhi/simplerhiwidget/doc/simplerhiwidget.webp b/examples/widgets/rhi/simplerhiwidget/doc/simplerhiwidget.webp
new file mode 100644
index 000000000..fdb8d20ec
--- /dev/null
+++ b/examples/widgets/rhi/simplerhiwidget/doc/simplerhiwidget.webp
Binary files differ
diff --git a/examples/widgets/rhi/simplerhiwidget/examplewidget.py b/examples/widgets/rhi/simplerhiwidget/examplewidget.py
new file mode 100644
index 000000000..5b3e40f50
--- /dev/null
+++ b/examples/widgets/rhi/simplerhiwidget/examplewidget.py
@@ -0,0 +1,135 @@
+# Copyright (C) 2024 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import numpy
+
+from PySide6.QtCore import (QFile, QIODevice)
+from PySide6.QtGui import (QColor, QMatrix4x4)
+from PySide6.QtGui import (QRhiBuffer,
+ QRhiDepthStencilClearValue,
+ QRhiShaderResourceBinding,
+ QRhiShaderStage,
+ QRhiVertexInputAttribute, QRhiVertexInputBinding,
+ QRhiVertexInputLayout, QRhiViewport,
+ QShader)
+from PySide6.QtWidgets import QRhiWidget
+from PySide6.support import VoidPtr
+
+VERTEX_DATA = numpy.array([ 0.0, 0.5, 1.0, 0.0, 0.0, # noqa E:201
+ -0.5, -0.5, 0.0, 1.0, 0.0, # noqa E:241
+ 0.5, -0.5, 0.0, 0.0, 1.0],
+ dtype=numpy.float32)
+
+
+def getShader(name):
+ f = QFile(name)
+ if f.open(QIODevice.ReadOnly):
+ return QShader.fromSerialized(f.readAll())
+ return QShader()
+
+
+class ExampleRhiWidget(QRhiWidget):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.m_rhi = None
+ self.m_vbuf = None
+ self.m_ubuf = None
+ self.m_srb = None
+ self.m_pipeline = None
+ self.m_viewProjection = QMatrix4x4()
+ self.m_rotation = 0.0
+
+ def releaseResources(self):
+ self.m_pipeline.destroy()
+ del self.m_pipeline
+ self.m_pipeline = None
+ self.m_srb.destroy()
+ del self.m_srb
+ self.m_srb = None
+ self.m_ubuf.destroy()
+ del self.m_ubuf
+ self.m_ubuf = None
+ self.m_vbuf.destroy()
+ del self.m_vbuf
+ self.m_buf = None
+
+ def initialize(self, cb):
+ if self.m_rhi != self.rhi():
+ self.m_pipeline = None
+ self.m_rhi = self.rhi()
+
+ if not self.m_pipeline:
+ vertex_size = 4 * VERTEX_DATA.size
+ self.m_vbuf = self.m_rhi.newBuffer(QRhiBuffer.Immutable,
+ QRhiBuffer.VertexBuffer, vertex_size)
+ self.m_vbuf.create()
+
+ self.m_ubuf = self.m_rhi.newBuffer(QRhiBuffer.Dynamic,
+ QRhiBuffer.UniformBuffer, 64)
+ self.m_ubuf.create()
+
+ self.m_srb = self.m_rhi.newShaderResourceBindings()
+ bindings = [
+ QRhiShaderResourceBinding.uniformBuffer(0, QRhiShaderResourceBinding.VertexStage,
+ self.m_ubuf)
+ ]
+ self.m_srb.setBindings(bindings)
+ self.m_srb.create()
+
+ self.m_pipeline = self.m_rhi.newGraphicsPipeline()
+ stages = [
+ QRhiShaderStage(QRhiShaderStage.Vertex,
+ getShader(":/shader_assets/color.vert.qsb")),
+ QRhiShaderStage(QRhiShaderStage.Fragment,
+ getShader(":/shader_assets/color.frag.qsb"))
+ ]
+ self.m_pipeline.setShaderStages(stages)
+ inputLayout = QRhiVertexInputLayout()
+ input_bindings = [QRhiVertexInputBinding(5 * 4)] # sizeof(float)
+ inputLayout.setBindings(input_bindings)
+ attributes = [ # 4: sizeof(float)
+ QRhiVertexInputAttribute(0, 0, QRhiVertexInputAttribute.Float2, 0),
+ QRhiVertexInputAttribute(0, 1, QRhiVertexInputAttribute.Float3, 2 * 4)
+ ]
+ inputLayout.setAttributes(attributes)
+ self.m_pipeline.setVertexInputLayout(inputLayout)
+ self.m_pipeline.setShaderResourceBindings(self.m_srb)
+ self.m_pipeline.setRenderPassDescriptor(self.renderTarget().renderPassDescriptor())
+ self.m_pipeline.create()
+
+ resourceUpdates = self.m_rhi.nextResourceUpdateBatch()
+ resourceUpdates.uploadStaticBuffer(self.m_vbuf, VoidPtr(VERTEX_DATA.tobytes(),
+ vertex_size))
+ cb.resourceUpdate(resourceUpdates)
+
+ outputSize = self.renderTarget().pixelSize()
+ self.m_viewProjection = self.m_rhi.clipSpaceCorrMatrix()
+ r = float(outputSize.width()) / float(outputSize.height())
+ self.m_viewProjection.perspective(45.0, r, 0.01, 1000.0)
+ self.m_viewProjection.translate(0, 0, -4)
+
+ def render(self, cb):
+ resourceUpdates = self.m_rhi.nextResourceUpdateBatch()
+ self.m_rotation += 1.0
+ modelViewProjection = self.m_viewProjection
+ modelViewProjection.rotate(self.m_rotation, 0, 1, 0)
+ projection = numpy.array(modelViewProjection.data(),
+ dtype=numpy.float32)
+ resourceUpdates.updateDynamicBuffer(self.m_ubuf, 0, 64,
+ projection.tobytes())
+ clearColor = QColor.fromRgbF(0.4, 0.7, 0.0, 1.0)
+ cv = QRhiDepthStencilClearValue(1.0, 0)
+ cb.beginPass(self.renderTarget(), clearColor, cv, resourceUpdates)
+
+ cb.setGraphicsPipeline(self.m_pipeline)
+ outputSize = self.renderTarget().pixelSize()
+ cb.setViewport(QRhiViewport(0, 0, outputSize.width(),
+ outputSize.height()))
+ cb.setShaderResources()
+ vbufBinding = (self.m_vbuf, 0)
+ cb.setVertexInput(0, [vbufBinding])
+ cb.draw(3)
+ cb.endPass()
+
+ self.update()
diff --git a/examples/widgets/rhi/simplerhiwidget/main.py b/examples/widgets/rhi/simplerhiwidget/main.py
new file mode 100644
index 000000000..59be81ddc
--- /dev/null
+++ b/examples/widgets/rhi/simplerhiwidget/main.py
@@ -0,0 +1,35 @@
+# Copyright (C) 2024 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the Qt Simple RHI Widget Example example from Qt v6.x"""
+
+import sys
+
+from PySide6.QtWidgets import QApplication, QVBoxLayout, QWidget
+
+from examplewidget import ExampleRhiWidget
+import rc_simplerhiwidget # noqa F:401
+
+
+class Widget(QWidget):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ layout = QVBoxLayout(self)
+ self._rhi_widget = ExampleRhiWidget(self)
+ layout.addWidget(self._rhi_widget)
+
+ def closeEvent(self, e):
+ self._rhi_widget.releaseResources()
+ e.accept()
+
+
+if __name__ == "__main__":
+ app = QApplication(sys.argv)
+
+ w = Widget()
+ w.resize(1280, 720)
+ w.show()
+ exit_code = app.exec()
+ del w
+ sys.exit(exit_code)
diff --git a/examples/widgets/rhi/simplerhiwidget/rc_simplerhiwidget.py b/examples/widgets/rhi/simplerhiwidget/rc_simplerhiwidget.py
new file mode 100644
index 000000000..ee8b41242
--- /dev/null
+++ b/examples/widgets/rhi/simplerhiwidget/rc_simplerhiwidget.py
@@ -0,0 +1,163 @@
+# Resource object code (Python 3)
+# Created by: object code
+# Created by: The Resource Compiler for Qt version 6.7.0
+# WARNING! All changes made in this file will be lost!
+
+from PySide6 import QtCore
+
+qt_resource_data = b"\
+\x00\x00\x02\xe2\
+\x00\
+\x00\x07\xc4x\x9c\xb5T]k\xd4@\x14\x9d\xed\xa6]\
+\x9b\xd6\xda\x0f\xd07\x19\xe9\xcb\x16%\xa6\xb5\x15q\xdd\
+\xfa\xb0U)\x14Z\xdbR\x84e\x091\x9bM\x07\xb2\
+\xc9\x92\x8fE)\x05\xdf}\xf7w\xf8'\xfcO\xbe\x88\
+\xde;s\xd3\xcc\xa6[*\x88\x03\xb3\x999s\xef=\
+g\xceM\x9616\xcf\x183`\xd6`.\xb11s\
+\x98\xc7b\x16\xc2L\x00\xa9\xc3d\xbfi\xb0)\x03\xd3\
+V\xd9\x00\x82]\x16\xb0\x8e\x96j\xdc\x96\xfa\xafc\x8e\
+\x9e}M\xcd\xf7\xfa\xccz\x03U\x99\xec\x0e[#t\
+\x85\xcdH\x9d\x0b\x90\x82\xcfw\x07'\x07V\x9a\xf5\xad\
+\xed\x1d\x1b\xcf\x97\xd45\xe5\xd9=\xd6\x90\xcaq\x0e]\
+\x11!\x8e\x16-\xc2\x5c\x868\xc4\x1bX\x03V\x88?\
+$\x0e\xdc/j\xfb5\xe0\x9c\x81\xe7#\xc8\xc1\xea\xb8\
+\xbe\x0f+\x14\xcda>\x80\xf8\x06]\xc2\x90\x98\x01\x8a\
+\x95\xe1\x88\xb7h?O\x18\xc6\x9b\x14_\xa7\xf8\x05\xd2\
+lR\xfc\x02\xe9D\xec1\xec\xe7\xe4\xddp|y\xfd\
+\x9c\xcdJ\x0d\x06\xe9\xc3\x1a?\x01\x99\x85g\x9bj\xdf\
+\xa5\xfc\xf7\x80\xceI/\x14\xc64l\x99\xb0\x9a\x86\xad\
+\x10\x86\xf5\x8f@=\xea_\xa5\xfce:G\x1d\xbb\xc0\
+:Og\xbf\xa0\xc2\x0bY\x85\x19\xe4s\x8dzY#\
+\xca\xaf\xebc?IE\x1c\xf1M\xdb6G\x89\xef\x09\
+\xb9;\x17\xc1\xf9\x88\x0f\xc2\xd8\xcdZ\xd7`\x11\x01h\
+\x8e\xdd\xe4\xb3\x88\x02>\xf6\xbdg|\xecxq\x18'\
+\x08\xc7\xa2\xcf\x91\xad\xb9a^\x98\x1cF\x10:o\x13\
+7\xd8s3\xb7k\xf7x\x1b3\xb6\x9b\x94\xf1\x84o\
+Z\xf6F\xcb\xbc4\xcd\x8a\xccO\xe5+\xc7\x9cR\xe6\
+\x96\xfd\xff\xa9\xbfi\xd4\xa2\xa4\xde\x01\xea8\xcfd\x11\
+>\x80\xba\x1dE,\xa2\xdb\x95\x5c\x85\xff\x95\x08\xec\xf2\
+V\xa9\xa1\xf6#\xcd\xdcLx\xaa!\x13\xdc\xfa\x81\xae\
+ \xcd\x92\xdc\xcb\xf8\xc9\xd1\xfe\xf1\x99\xd3I\xe24u\
+\xf6\xa3Q\x9e\x15r&\xe2\xf9K~\xfa\xe6C\xe7\xf0\
+\xf0x\xcf\x06)\xd3\xd3\x0f\xf3\xac\x92\xaf\x09\x81\x0a'\
+g\xce\xa9\x9b\x04~F%\xa4\x07\x18\xe0\xdch\x84\xaa\
+2a\xc5@yq\x9dX\xd9y\xed>\x1c\x0c\x08|\
+G\xe0\xba\xa0(n\xd5\xd6\x0f\xad+o\x0a\x15\xa4K\
+\x01S\x08Ur,7*HG\xac\x89\x8b\x94\x0d\xc1\
+\xb8\xc4\xcf\xf2$\xaa\x14\xb8\xd4\x1bl\xd0\xdf@\xd1\xe0\
+\xfdu\x11ya\xde\xf7\xf9\xab\xa1\x9f\xb9\xa1\x03\x7f\x9d\
+\xa1\xf8\xb8k\x96x*\x86\xfd\xa7\xf8c\x9d\xef\x9af\
+\x9e\xe2\x07\x10\xb9C?\x1d\xb9\x9e\xcfeV\xd98\xa4\
+\xb1\x91\xfa\xa6~u\xbb\xd2\x8d\xa6\xbd\xd1\xebM\xb4\x5c\
+e\x8ah\xfa\x8b\xd2\xed\xe6\xa9\x9f4\xc3\xd8\x8b\xcaL\
+\xac:\xf4#\x8dU\xad\x9aE-\xf8\xc7\x80\xcc\xa2\x19\
+\xbd^\xd1\xa82\x1eg\x9b_\x5c*\xff\xe2\xaa\xbd\xea\
+=\x11\x91U\xf9j4\xb3c\xe51\x9a<+\xeb\xd2\
+gT\xf9\x94\xe4\xa8\xb8_\xb6\xe1\xa6\xb3?Y\xbd\xa1\
+\xc8\
+\x00\x00\x04C\
+\x00\
+\x00\x0c\xf4x\x9c\xddW[o\x1bE\x14\x1e_\x92\x92\
+-\xb9\xb4i\x93\x16\xda2\xa9%dCe\x9c4A\
+\xa8&\x11\xa8 Z\xa9R\xaa\x06UHV\xb4Z\xaf\
+\xd7\xe9\xc2^\xac\xddY7\xa8\xf2\x8f\xe0\x85\xbf\xc3o\
+\xe0o\xf0\xc8\x13/U9g\xe6\xcc\xee\xec\xda\xa1*\
+\x0f<0\xd2d\xe7\x5c\xe6|\xe7|sf\x920\xc6\
+V\x98\x1au\x98\x16sY\xcc\x02\x98\x09H\x0d\x98\xb5\
+74\xd8\x82\xb1\xc1&\xe0\x9a2\x9f\x09\x981\x8b@\
+\xd7D\xc3?m\xaa\xc1\x5ccSf\xcfa\xbdu\xdb\
+2\x1b\xb2\x8c\x8d\xe5\xcaf{\xec\x00V_\xcd\xf9\x84\
+\x10|\x02\xab\xcb\xa45=6\x16\x85~\x97Q\xa3o\
+\x93\xbe\xcb\xf4\x1d\x15.\x8d\x17\x8dz\xeb\x12\xbaZ\xec\
+=\xd6\x22\xed\x15 \xb8&\xb3Z\x96\xdf\xef\x9e\x9c<\
+\xe9\xa6b\xd4\xdd?\xe8\xa1}MQ m\xebt(\
+\x08\x12:>\xd2*5X\xd1&\xcc;\xb8\x1f\xac+\
+\xb4f$_&\x19c<bK\x80\xa9\x86fB\xeb\
+j\xa43\xfd\xea\xa4k\xc8X\x8d\x5c\xf7\x08\xe2n\xd3\
+\xfe%\xf2\xd7r\xcb\x88\xabuP\xb8d\x19clS\
+\x0c\xcc\xed&|\xef\x1a\xb9\xa2\xbcc\xc8w\x8cZ6\
+aW]\xda\x1b2\x1f\x5co\xc1\x0a\xc9\xe60\xb7\xc1\
+\xff\x12\x91\xdf\x90\xba&0\xad\xd6\xa8\xef\x93\xbcb\xd8\
+-\xaaW\xdb-\x83\x03\x8c\xb7J\xf1\x90\xf3\xeb\xf0s\
+\x8d\xb0p|J\xf2:\xf9\xdf\x02y\x83\xfc\xd7e\xde\
+\x8aC\x1dc\x830\xaf\x12\xfe\x15\xc2\xbcJ\xe7\xd7 \
+\x8ck\x84Q#\x8ckR\xaf\xc6\x0d\x90\xb7(fS\
+b(>\xb7(\xf6\x0d\xe2e\x9bb\xa3|\x93th\
+\xff \xe7M\xc9\xb7\x09g\x95\xfco\xb3\xa2W\xd0\xbe\
+Cy\xa1\xfds\xa8\xa7\xce\x8a&G\xfd_\xa0\xc1\xf3\
+?$\xee\xdf'\xfe\x8e\xc0\xbaB\xf2\xd7\xe0\x81\xb8\x1f\
+R.\xd7\xc9\x7fKr\xa6\xf4\x87\xc4\xf5G\x84\xff\x0b\
+\xecY%\x1en\x91\x1e\xe3\xecP\xbflR\x1c\xc4\xb9\
+K~\xaf!\xeb/\xd4Ul\xd2\xfd@a\xc4\x8a\xfb\
+\xf9{k\xea%\xa9\x1fG|\xb7\xd7\xb3\xacT$\x99\
++\xf80\x1b[\xaf,\x0e#t\xc4>\x0f\xa7\x93\xbe\
+5\xeb[V\x16\xf9\xe38\x09\xd1\xce\xed\xbd\x03\xd0L\
+\x9d\xe4g?:\xe3S\xcf\xbd\xcf\xa7\xb6\x1b\x07q\xd2\
+\xb7\x1c!\x12\x7f\x98\x09O\xe9\x17i\xf7\xf9$N}\
+\x01\xc8\x18%\xf6G\x1c3lw\x08\x97B\xf1C\xbd\
+\x19\x95g\x81\xfd\x946\x81\x01\x12\xe8Bf\xfc\x13#\
+\xd2\xcc\xb2*\xc5\x9e\xb3b\x18\xc5\xee\xfd/\x8b\xfd\xd5\
+(\xf6\xb7\xa2\xd8\x83\x7fSl\x9c\x89J\xa1~T\xaa\
+P\x89\xffEix\xc7\xf6\x8a\xca\xea\x7f\xb8\x90\xe6\xd8\
+Kd\xb6\x0fx\xe2\x9d\xf9\xa9\xf0\x92\xf6\xb0\xa7a\x93\
+\xf8\xa5\x1d:?\x02\xf08\x88\xa1\xd0\xf3}\x84\xb1\x11\
+\xe6\x01\x9f8\xeeO\xf1x\x9cz\xa2\xed\xf6:\xaa~\
+\xe0\xc7\x11\xbeK\xeef\x86\xfd\x92\xc9\xa0\xa3\xac^\xa0\
+,QC\xfc\x9f<}\xfc\xec\xb9\xfd0\x89\xd3\xd4~\
+\x1cM2A\x09W6@\x96\xdf\x7f\xfb\xc3\xc3\xe3\xe3\
+g\xdf\xf4\xfa\x85\x03\xc1\x18\xd6]\x95\xfe\x82\xe8\xc7\x99\
+\xa8\x84\xcfs\xbf z\xa9l\xf09yn\x900\xd3\
+\xc7\x0b]%\xecw=\xe30\x0b\xda\xba\xb6{\xfa(\
+:\xf2\x9c\xe7sV\x1d4\xc7\x14\x07n\xcf<\xdb\xc7\
+\xb5\x86\xd6\xc0\x86\xa9k$1)20=\x8ac\x91\
+\xe9\x17\x05)\xc5\x82\x8c\xd4\xeeX\x0a\xca\xc9\xd4t\xcb\
+\xc5\x96\x9ag\xce\xb7`+\xef$\xd9\xb1\x9e\xc8\x92\xa8\
+\x0243oA\x93~{\xd0\xa8\xfd\xd9\xf2#7\xc8\
+F\x1e\xff2\xf4\x84\x13\xd8\xf0WR\xe0\x0f\x8f\xacB\
+\x9f\xfa\xe1\xe83\xfc\xd1}q\x04w<\xc5\xc7+r\
+B/\x85+\xe0q\xb9\xab\xbf\xe0i\xc8\xefL\xfe<\
+\x90\x0bf\xd2\xc3\xec\x16\xb7\xd5`\x90\xa5p\x0d\x83\xd8\
+\x8dz\x9d\xd3\xd3\x0b[k0\xd0'\x80Ns\xf1\xfd\
+\xe8\x82K1\x18\xe4\xafj\xbb\x02\xa0o\x86\xe9\xb2\xdb\
+\xd1\xe1\xf1\x88\xbd\xf3\x22}\xb5jk8\xeecl\xdd\
+!\xa7\xa7\xf7 X\x04b$I\xf9\x18\xfb\x15\xec\xea\
+\xcd\x91\xc0\x9d\xfc\x0d\xd5\x01q\x1e\xf2W3\x95R\x5c\
+:g?2{2\x9e\xeb\x97\xe2\x01\x04\xcfroR\
+W\xc4\xaa\x19\xb0\x1b\x96$&=\x8a\x95\x871\xff\xad\
+\xce\xe8\xbf\x83J\xcb\xcc\xd9\xb5\xae\xea'\xc7\xdf%\xe1\
+\xb4\xa2\
+"
+
+qt_resource_name = b"\
+\x00\x0d\
+\x06E\xc5\xd3\
+\x00s\
+\x00h\x00a\x00d\x00e\x00r\x00_\x00a\x00s\x00s\x00e\x00t\x00s\
+\x00\x0e\
+\x04\x16\xeb\xb2\
+\x00c\
+\x00o\x00l\x00o\x00r\x00.\x00f\x00r\x00a\x00g\x00.\x00q\x00s\x00b\
+\x00\x0e\
+\x00\xfb\xe9\x92\
+\x00c\
+\x00o\x00l\x00o\x00r\x00.\x00v\x00e\x00r\x00t\x00.\x00q\x00s\x00b\
+"
+
+qt_resource_struct = b"\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00B\x00\x00\x00\x00\x00\x01\x00\x00\x02\xe6\
+\x00\x00\x01\x8a!\x0c\xa5\xeb\
+\x00\x00\x00 \x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
+\x00\x00\x01\x8a!\x0c\xa5\xeb\
+"
+
+def qInitResources():
+ QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+def qCleanupResources():
+ QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+qInitResources()
diff --git a/examples/widgets/rhi/simplerhiwidget/shader_assets/color.frag.qsb b/examples/widgets/rhi/simplerhiwidget/shader_assets/color.frag.qsb
new file mode 100644
index 000000000..32bd2d595
--- /dev/null
+++ b/examples/widgets/rhi/simplerhiwidget/shader_assets/color.frag.qsb
Binary files differ
diff --git a/examples/widgets/rhi/simplerhiwidget/shader_assets/color.vert.qsb b/examples/widgets/rhi/simplerhiwidget/shader_assets/color.vert.qsb
new file mode 100644
index 000000000..bf97035d7
--- /dev/null
+++ b/examples/widgets/rhi/simplerhiwidget/shader_assets/color.vert.qsb
Binary files differ
diff --git a/examples/widgets/rhi/simplerhiwidget/shaders/color.frag b/examples/widgets/rhi/simplerhiwidget/shaders/color.frag
new file mode 100644
index 000000000..375587662
--- /dev/null
+++ b/examples/widgets/rhi/simplerhiwidget/shaders/color.frag
@@ -0,0 +1,10 @@
+#version 440
+
+layout(location = 0) in vec3 v_color;
+
+layout(location = 0) out vec4 fragColor;
+
+void main()
+{
+ fragColor = vec4(v_color, 1.0);
+}
diff --git a/examples/widgets/rhi/simplerhiwidget/shaders/color.vert b/examples/widgets/rhi/simplerhiwidget/shaders/color.vert
new file mode 100644
index 000000000..e876f290e
--- /dev/null
+++ b/examples/widgets/rhi/simplerhiwidget/shaders/color.vert
@@ -0,0 +1,16 @@
+#version 440
+
+layout(location = 0) in vec4 position;
+layout(location = 1) in vec3 color;
+
+layout(location = 0) out vec3 v_color;
+
+layout(std140, binding = 0) uniform buf {
+ mat4 mvp;
+};
+
+void main()
+{
+ v_color = color;
+ gl_Position = mvp * position;
+}
diff --git a/examples/widgets/rhi/simplerhiwidget/simplerhiwidget.pyproject b/examples/widgets/rhi/simplerhiwidget/simplerhiwidget.pyproject
new file mode 100644
index 000000000..ff0d62755
--- /dev/null
+++ b/examples/widgets/rhi/simplerhiwidget/simplerhiwidget.pyproject
@@ -0,0 +1,4 @@
+{
+ "files": ["main.py","examplewidget.py", "simplerhiwidget.qrc",
+ "shaders/color.frag", "shaders/color.vert"]
+}
diff --git a/examples/widgets/rhi/simplerhiwidget/simplerhiwidget.qrc b/examples/widgets/rhi/simplerhiwidget/simplerhiwidget.qrc
new file mode 100644
index 000000000..ddc6dfbe5
--- /dev/null
+++ b/examples/widgets/rhi/simplerhiwidget/simplerhiwidget.qrc
@@ -0,0 +1,6 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource prefix="/">
+ <file>shader_assets/color.vert.qsb</file>
+ <file>shader_assets/color.frag.qsb</file>
+</qresource>
+</RCC>
diff --git a/examples/widgets/richtext/orderform/orderform.py b/examples/widgets/richtext/orderform/orderform.py
index ce0569c47..9725624c3 100644
--- a/examples/widgets/richtext/orderform/orderform.py
+++ b/examples/widgets/richtext/orderform/orderform.py
@@ -1,57 +1,19 @@
-
-#############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the widgets/richtext/orderform example from Qt v5.x"""
import sys
-from PySide6.QtCore import QDate, Qt, Signal, Slot
+from PySide6.QtCore import QDate, Qt, Slot
from PySide6.QtGui import (QFont, QTextCharFormat, QTextCursor,
QTextFrameFormat, QTextLength, QTextTableFormat)
from PySide6.QtWidgets import (QApplication, QCheckBox, QDialog,
QDialogButtonBox, QGridLayout, QLabel,
QLineEdit, QMainWindow, QMenu, QMessageBox,
QTableWidget, QTableWidgetItem, QTabWidget,
- QTextEdit, QWidget)
+ QTextEdit)
from PySide6.QtPrintSupport import QAbstractPrintDialog, QPrintDialog, QPrinter
@@ -127,8 +89,7 @@ class MainWindow(QMainWindow):
body_frame_format.setWidth(QTextLength(QTextLength.PercentageLength, 100))
cursor.insertFrame(body_frame_format)
- cursor.insertText("I would like to place an order for the following "
- "items:", text_format)
+ cursor.insertText("I would like to place an order for the following items:", text_format)
cursor.insertBlock()
cursor.insertBlock()
@@ -159,17 +120,17 @@ class MainWindow(QMainWindow):
cursor.insertBlock()
cursor.insertText("Please update my records to take account of the "
- "following privacy information:")
+ "following privacy information:")
cursor.insertBlock()
offers_table = cursor.insertTable(2, 2)
cursor = offers_table.cellAt(0, 1).firstCursorPosition()
cursor.insertText("I want to receive more information about your "
- "company's products and special offers.", text_format)
+ "company's products and special offers.", text_format)
cursor = offers_table.cellAt(1, 1).firstCursorPosition()
cursor.insertText("I do not want to receive any promotional "
- "information from your company.", text_format)
+ "information from your company.", text_format)
if sendOffers:
cursor = offers_table.cellAt(0, 0).firstCursorPosition()
@@ -191,16 +152,18 @@ class MainWindow(QMainWindow):
def create_sample(self):
dialog = DetailsDialog('Dialog with default values', self)
self.create_letter('Mr Smith',
- '12 High Street\nSmall Town\nThis country',
- dialog.order_items(), True)
+ '12 High Street\nSmall Town\nThis country',
+ dialog.order_items(), True)
+ @Slot()
def open_dialog(self):
dialog = DetailsDialog("Enter Customer Details", self)
if dialog.exec() == QDialog.Accepted:
self.create_letter(dialog.sender_name(), dialog.sender_address(),
- dialog.order_items(), dialog.send_offers())
+ dialog.order_items(), dialog.send_offers())
+ @Slot()
def print_file(self):
editor = self.letters.currentWidget()
printer = QPrinter()
@@ -229,8 +192,7 @@ class DetailsDialog(QDialog):
self._name_edit = QLineEdit()
self._address_edit = QTextEdit()
- self._offers_check_box = QCheckBox("Send information about "
- "products and special offers:")
+ self._offers_check_box = QCheckBox("Send information about products and special offers:")
self.setup_items_table()
@@ -279,15 +241,16 @@ class DetailsDialog(QDialog):
def send_offers(self):
return self._offers_check_box.isChecked()
+ @Slot()
def verify(self):
if self._name_edit.text() and self._address_edit.toPlainText():
self.accept()
return
answer = QMessageBox.warning(self, "Incomplete Form",
- "The form does not contain all the necessary information.\n"
- "Do you want to discard it?",
- QMessageBox.Yes, QMessageBox.No)
+ "The form does not contain all the necessary information.\n"
+ "Do you want to discard it?",
+ QMessageBox.Yes, QMessageBox.No)
if answer == QMessageBox.Yes:
self.reject()
diff --git a/examples/widgets/richtext/syntaxhighlighter/syntaxhighlighter.py b/examples/widgets/richtext/syntaxhighlighter/syntaxhighlighter.py
index de86e02f8..021328977 100644
--- a/examples/widgets/richtext/syntaxhighlighter/syntaxhighlighter.py
+++ b/examples/widgets/richtext/syntaxhighlighter/syntaxhighlighter.py
@@ -1,44 +1,6 @@
-
-############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the widgets/richtext/syntaxhighlighter example from Qt v5.x"""
@@ -50,7 +12,7 @@ from PySide6.QtCore import (QFile, Qt, QTextStream)
from PySide6.QtGui import (QColor, QFont, QFontDatabase, QKeySequence,
QSyntaxHighlighter, QTextCharFormat)
from PySide6.QtWidgets import (QApplication, QFileDialog, QMainWindow,
- QPlainTextEdit)
+ QPlainTextEdit)
class MainWindow(QMainWindow):
@@ -119,7 +81,7 @@ class MainWindow(QMainWindow):
quit_act.triggered.connect(self.close)
help_menu = self.menuBar().addMenu("&Help")
- help_menu.addAction("About &Qt", qApp.aboutQt)
+ help_menu.addAction("About &Qt", qApp.aboutQt) # noqa: F821
class Highlighter(QSyntaxHighlighter):
diff --git a/examples/widgets/richtext/textedit/main.py b/examples/widgets/richtext/textedit/main.py
index b8d582bb0..330ea5fc5 100644
--- a/examples/widgets/richtext/textedit/main.py
+++ b/examples/widgets/richtext/textedit/main.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the widgets/richtext/textedit example from Qt v6.x"""
@@ -44,12 +7,11 @@ import sys
from argparse import ArgumentParser, RawTextHelpFormatter
from PySide6.QtCore import QCoreApplication, qVersion
-from PySide6.QtGui import QScreen
from PySide6.QtWidgets import QApplication
from textedit import TextEdit
-import textedit_rc
+import textedit_rc # noqa: F401
if __name__ == '__main__':
diff --git a/examples/widgets/richtext/textedit/textedit.py b/examples/widgets/richtext/textedit/textedit.py
index 1bcec7ed4..8019446f0 100644
--- a/examples/widgets/richtext/textedit/textedit.py
+++ b/examples/widgets/richtext/textedit/textedit.py
@@ -1,54 +1,17 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
-from PySide6.QtCore import (QCoreApplication, QDir, QFile, QFileInfo, QMimeData,
+from PySide6.QtCore import (QCoreApplication, QDir, QFile, QFileInfo,
QMimeDatabase, QUrl, Qt, Slot)
-from PySide6.QtGui import (QAction, QActionGroup, QGuiApplication, QClipboard,
- QCloseEvent, QFont, QFontDatabase, QFontInfo, QIcon,
- QKeySequence, QPixmap, QTextBlockFormat,
+from PySide6.QtGui import (QAction, QActionGroup, QColor, QGuiApplication,
+ QFont, QFontDatabase, QFontInfo, QIcon,
+ QKeySequence, QPalette, QPixmap, QTextBlockFormat,
QTextCharFormat, QTextCursor, QTextDocumentWriter,
- QTextList, QTextListFormat)
+ QTextFormat, QTextListFormat)
from PySide6.QtWidgets import (QApplication, QMainWindow, QColorDialog, QComboBox,
- QDialog, QFileDialog, QFontComboBox, QStatusBar,
- QTextEdit, QToolBar, QMenu, QMenuBar, QMessageBox)
+ QDialog, QFileDialog, QFontComboBox,
+ QTextEdit, QMessageBox)
from PySide6.QtPrintSupport import (QAbstractPrintDialog, QPrinter,
QPrintDialog, QPrintPreviewDialog)
@@ -77,7 +40,7 @@ class TextEdit(QMainWindow):
def __init__(self, parent=None):
super().__init__(parent)
if sys.platform == 'darwin':
- setUnifiedTitleAndToolBarOnMac(True)
+ self.setUnifiedTitleAndToolBarOnMac(True)
self.setWindowTitle(QCoreApplication.applicationName())
self._text_edit = QTextEdit(self)
@@ -92,7 +55,7 @@ class TextEdit(QMainWindow):
help_menu = self.menuBar().addMenu("Help")
help_menu.addAction("About", self.about)
- help_menu.addAction("About &Qt", qApp.aboutQt)
+ help_menu.addAction("About &Qt", qApp.aboutQt) # noqa: F821
text_font = QFont("Helvetica")
text_font.setStyleHint(QFont.SansSerif)
@@ -138,13 +101,14 @@ class TextEdit(QMainWindow):
tb = self.addToolBar("File self.actions")
menu = self.menuBar().addMenu("&File")
- icon = QIcon.fromTheme("document-new", QIcon(RSRC_PATH + "/filenew.png"))
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.DocumentNew,
+ QIcon(RSRC_PATH + "/filenew.png"))
a = menu.addAction(icon, "&New", self.file_new)
tb.addAction(a)
a.setPriority(QAction.LowPriority)
a.setShortcut(QKeySequence.New)
- icon = QIcon.fromTheme("document-open",
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.DocumentOpen,
QIcon(RSRC_PATH + "/fileopen.png"))
a = menu.addAction(icon, "&Open...", self.file_open)
a.setShortcut(QKeySequence.Open)
@@ -152,7 +116,7 @@ class TextEdit(QMainWindow):
menu.addSeparator()
- icon = QIcon.fromTheme("document-save",
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.DocumentSave,
QIcon(RSRC_PATH + "/filesave.png"))
self._action_save = menu.addAction(icon, "&Save", self.file_save)
self._action_save.setShortcut(QKeySequence.Save)
@@ -163,7 +127,7 @@ class TextEdit(QMainWindow):
a.setPriority(QAction.LowPriority)
menu.addSeparator()
- icon = QIcon.fromTheme("document-print",
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.DocumentPrint,
QIcon(RSRC_PATH + "/fileprint.png"))
a = menu.addAction(icon, "&Print...", self.file_print)
a.setPriority(QAction.LowPriority)
@@ -188,32 +152,36 @@ class TextEdit(QMainWindow):
tb = self.addToolBar("Edit self.actions")
menu = self.menuBar().addMenu("&Edit")
- icon = QIcon.fromTheme("edit-undo",
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.EditUndo,
QIcon(RSRC_PATH + "/editundo.png"))
self._action_undo = menu.addAction(icon, "&Undo", self._text_edit.undo)
self._action_undo.setShortcut(QKeySequence.Undo)
tb.addAction(self._action_undo)
- icon = QIcon.fromTheme("edit-redo", QIcon(RSRC_PATH + "/editredo.png"))
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.EditRedo,
+ QIcon(RSRC_PATH + "/editredo.png"))
self._action_redo = menu.addAction(icon, "&Redo", self._text_edit.redo)
self._action_redo.setPriority(QAction.LowPriority)
self._action_redo.setShortcut(QKeySequence.Redo)
tb.addAction(self._action_redo)
menu.addSeparator()
- icon = QIcon.fromTheme("edit-cut", QIcon(RSRC_PATH + "/editcut.png"))
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.EditCut,
+ QIcon(RSRC_PATH + "/editcut.png"))
self._action_cut = menu.addAction(icon, "Cu&t", self._text_edit.cut)
self._action_cut.setPriority(QAction.LowPriority)
self._action_cut.setShortcut(QKeySequence.Cut)
tb.addAction(self._action_cut)
- icon = QIcon.fromTheme("edit-copy", QIcon(RSRC_PATH + "/editcopy.png"))
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.EditCopy,
+ QIcon(RSRC_PATH + "/editcopy.png"))
self._action_copy = menu.addAction(icon, "&Copy", self._text_edit.copy)
self._action_copy.setPriority(QAction.LowPriority)
self._action_copy.setShortcut(QKeySequence.Copy)
tb.addAction(self._action_copy)
- icon = QIcon.fromTheme("edit-paste", QIcon(RSRC_PATH + "/editpaste.png"))
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.EditPaste,
+ QIcon(RSRC_PATH + "/editpaste.png"))
self._action_paste = menu.addAction(icon, "&Paste", self._text_edit.paste)
self._action_paste.setPriority(QAction.LowPriority)
self._action_paste.setShortcut(QKeySequence.Paste)
@@ -227,7 +195,7 @@ class TextEdit(QMainWindow):
tb = self.addToolBar("Format self.actions")
menu = self.menuBar().addMenu("F&ormat")
- icon = QIcon.fromTheme("format-text-bold",
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.FormatTextBold,
QIcon(RSRC_PATH + "/textbold.png"))
self._action_text_bold = menu.addAction(icon, "&Bold", self.text_bold)
self._action_text_bold.setShortcut(Qt.CTRL | Qt.Key_B)
@@ -238,7 +206,7 @@ class TextEdit(QMainWindow):
tb.addAction(self._action_text_bold)
self._action_text_bold.setCheckable(True)
- icon = QIcon.fromTheme("format-text-italic",
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.FormatTextItalic,
QIcon(RSRC_PATH + "/textitalic.png"))
self._action_text_italic = menu.addAction(icon, "&Italic", self.text_italic)
self._action_text_italic.setPriority(QAction.LowPriority)
@@ -249,7 +217,7 @@ class TextEdit(QMainWindow):
tb.addAction(self._action_text_italic)
self._action_text_italic.setCheckable(True)
- icon = QIcon.fromTheme("format-text-underline",
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.FormatTextUnderline,
QIcon(RSRC_PATH + "/textunder.png"))
self._action_text_underline = menu.addAction(icon, "&Underline",
self.text_underline)
@@ -263,36 +231,36 @@ class TextEdit(QMainWindow):
menu.addSeparator()
- icon = QIcon.fromTheme("format-justify-left",
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.FormatJustifyLeft,
QIcon(RSRC_PATH + "/textleft.png"))
self._action_align_left = QAction(icon, "&Left", self)
self._action_align_left.setShortcut(Qt.CTRL | Qt.Key_L)
self._action_align_left.setCheckable(True)
self._action_align_left.setPriority(QAction.LowPriority)
- icon = QIcon.fromTheme("format-justify-center",
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.FormatJustifyCenter,
QIcon(RSRC_PATH + "/textcenter.png"))
self._action_align_center = QAction(icon, "C&enter", self)
self._action_align_center.setShortcut(Qt.CTRL | Qt.Key_E)
self._action_align_center.setCheckable(True)
self._action_align_center.setPriority(QAction.LowPriority)
- icon = QIcon.fromTheme("format-justify-right",
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.FormatJustifyRight,
QIcon(RSRC_PATH + "/textright.png"))
self._action_align_right = QAction(icon, "&Right", self)
self._action_align_right.setShortcut(Qt.CTRL | Qt.Key_R)
self._action_align_right.setCheckable(True)
self._action_align_right.setPriority(QAction.LowPriority)
- icon = QIcon.fromTheme("format-justify-fill",
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.FormatJustifyFill,
QIcon(RSRC_PATH + "/textjustify.png"))
self._action_align_justify = QAction(icon, "&Justify", self)
self._action_align_justify.setShortcut(Qt.CTRL | Qt.Key_J)
self._action_align_justify.setCheckable(True)
self._action_align_justify.setPriority(QAction.LowPriority)
- icon = QIcon.fromTheme("format-indent-more",
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.FormatIndentMore,
QIcon(RSRC_PATH + "/format-indent-more.png"))
self._action_indent_more = menu.addAction(icon, "&Indent", self.indent)
self._action_indent_more.setShortcut(Qt.CTRL | Qt.Key_BracketRight)
self._action_indent_more.setPriority(QAction.LowPriority)
- icon = QIcon.fromTheme("format-indent-less",
+ icon = QIcon.fromTheme(QIcon.ThemeIcon.FormatIndentLess,
QIcon(RSRC_PATH + "/format-indent-less.png"))
self._action_indent_less = menu.addAction(icon, "&Unindent",
self.unindent)
@@ -443,7 +411,7 @@ class TextEdit(QMainWindow):
@Slot()
def file_save(self):
if not self._file_name or self._file_name.startswith(":/"):
- return fileSaveAs()
+ return self.file_save_as()
writer = QTextDocumentWriter(self._file_name)
document = self._text_edit.document()
@@ -658,7 +626,7 @@ class TextEdit(QMainWindow):
above = QTextCursor(cursor)
above.movePosition(QTextCursor.Up)
if (above.currentList()
- and list_fmt.indent() + amount == above.currentList().format().indent()):
+ and list_fmt.indent() + amount == above.currentList().format().indent()):
above.currentList().add(cursor.block())
else:
list_fmt.setIndent(list_fmt.indent() + amount)
diff --git a/examples/widgets/richtext/textedit/textedit_rc.py b/examples/widgets/richtext/textedit/textedit_rc.py
index 6d4ab531b..49c024529 100644
--- a/examples/widgets/richtext/textedit/textedit_rc.py
+++ b/examples/widgets/richtext/textedit/textedit_rc.py
@@ -1,6 +1,6 @@
# Resource object code (Python 3)
# Created by: object code
-# Created by: The Resource Compiler for Qt version 6.2.0
+# Created by: The Resource Compiler for Qt version 6.2.2
# WARNING! All changes made in this file will be lost!
from PySide6 import QtCore
@@ -5913,7 +5913,7 @@ qt_resource_struct = b"\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x01\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x12\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x03\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00V\x00\x02\x00\x00\x00\x18\x00\x00\x00\x1e\
@@ -5921,103 +5921,103 @@ qt_resource_struct = b"\
\x00\x00\x000\x00\x02\x00\x00\x00\x18\x00\x00\x00\x06\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00<\x00\x00\x00\x00\x00\x01\x00\x00\x0a2\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x01\xde\x00\x00\x00\x00\x00\x01\x00\x01*\xfa\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x01\x16\x00\x00\x00\x00\x00\x01\x00\x00\xf9\xea\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x00\x9e\x00\x00\x00\x00\x00\x01\x00\x00\xe5\xe4\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x02z\x00\x00\x00\x00\x00\x01\x00\x01B:\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x01\xa0\x00\x00\x00\x00\x00\x01\x00\x01$\x1c\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x01v\x00\x00\x00\x00\x00\x01\x00\x01\x09\x14\
-\x00\x00\x01yH\x0a\x8c\xbe\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x02 \x00\x00\x00\x00\x00\x01\x00\x0147\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x00\xd8\x00\x00\x00\x00\x00\x01\x00\x00\xf0n\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x018\x00\x00\x00\x00\x00\x01\x00\x00\xfca\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x01X\x00\x00\x00\x00\x00\x01\x00\x01\x02\x15\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x03\x14\x00\x00\x00\x00\x00\x01\x00\x01R\xe7\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x00b\x00\x00\x00\x00\x00\x01\x00\x00\xdem\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x00~\x00\x00\x00\x00\x00\x01\x00\x00\xe3;\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x02>\x00\x00\x00\x00\x00\x01\x00\x016\xdc\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x03h\x00\x00\x00\x00\x00\x01\x00\x01Z\xdd\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x03F\x00\x00\x00\x00\x00\x01\x00\x01W\x9c\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x02\xf6\x00\x00\x00\x00\x00\x01\x00\x01M\xb6\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x02\x02\x00\x00\x00\x00\x00\x01\x00\x01-\xb5\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x02\xc4\x00\x00\x00\x00\x00\x01\x00\x01I\xd1\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x02\x96\x00\x00\x00\x00\x00\x01\x00\x01E>\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x02\x5c\x00\x00\x00\x00\x00\x01\x00\x01=\xc8\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x00\xb8\x00\x00\x00\x00\x00\x01\x00\x00\xea\xa0\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x00\xf6\x00\x00\x00\x00\x00\x01\x00\x00\xf5'\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x01\xbe\x00\x00\x00\x00\x00\x01\x00\x01'+\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x01\xde\x00\x00\x00\x00\x00\x01\x00\x00\x9d\x07\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x01\x16\x00\x00\x00\x00\x00\x01\x00\x00e\xc6\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x00\x9e\x00\x00\x00\x00\x00\x01\x00\x00\x1b\xbc\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x02z\x00\x00\x00\x00\x00\x01\x00\x00\xbcl\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x01\xa0\x00\x00\x00\x00\x00\x01\x00\x00\x95U\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x01v\x00\x00\x00\x00\x00\x01\x00\x00zM\
-\x00\x00\x01yH\x0a\x8c\xbe\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x02 \x00\x00\x00\x00\x00\x01\x00\x00\xaap\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x00\xd8\x00\x00\x00\x00\x00\x01\x00\x00)\xd6\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x018\x00\x00\x00\x00\x00\x01\x00\x00kF\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x01X\x00\x00\x00\x00\x00\x01\x00\x00sq\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x03\x14\x00\x00\x00\x00\x00\x01\x00\x00\xcf<\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x00b\x00\x00\x00\x00\x00\x01\x00\x00\x0f\xb8\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x00~\x00\x00\x00\x00\x00\x01\x00\x00\x16:\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x02>\x00\x00\x00\x00\x00\x01\x00\x00\xafG\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x03h\x00\x00\x00\x00\x00\x01\x00\x00\xd8\x81\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x03F\x00\x00\x00\x00\x00\x01\x00\x00\xd3\xf1\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x02\xf6\x00\x00\x00\x00\x00\x01\x00\x00\xc9|\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x02\x02\x00\x00\x00\x00\x00\x01\x00\x00\xa1\xf4\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x02\xc4\x00\x00\x00\x00\x00\x01\x00\x00\xc5\x97\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x02\x96\x00\x00\x00\x00\x00\x01\x00\x00\xc1\x04\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x02\x5c\x00\x00\x00\x00\x00\x01\x00\x00\xb6\x1d\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x00\xb8\x00\x00\x00\x00\x00\x01\x00\x00\x22`\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x00\xf6\x00\x00\x00\x00\x00\x01\x00\x004e\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
\x00\x00\x01\xbe\x00\x00\x00\x00\x00\x01\x00\x00\x98d\
-\x00\x00\x01u\xf9\xcc\xb0+\
+\x00\x00\x01z\xe7\xee'\x0d\
"
def qInitResources():
diff --git a/examples/widgets/richtext/textobject/textobject.py b/examples/widgets/richtext/textobject/textobject.py
index bb0c0b168..9ab7bf8ae 100644
--- a/examples/widgets/richtext/textobject/textobject.py
+++ b/examples/widgets/richtext/textobject/textobject.py
@@ -1,44 +1,6 @@
-
-#############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the widgets/richtext/textobject example from Qt v5.x"""
@@ -46,9 +8,8 @@ import os
from pathlib import Path
import sys
-from PySide6.QtCore import QFile, QIODevice, QObject, QSizeF, Qt
-from PySide6.QtGui import (QTextCharFormat, QTextFormat, QTextObjectInterface,
- QPyTextObject)
+from PySide6.QtCore import QFile, QIODevice, QSizeF, Slot
+from PySide6.QtGui import (QTextCharFormat, QTextFormat, QPyTextObject)
from PySide6.QtWidgets import (QApplication, QHBoxLayout, QLabel, QLineEdit,
QMessageBox, QPushButton, QTextEdit,
QVBoxLayout, QWidget)
@@ -89,6 +50,7 @@ class Window(QWidget):
self.setWindowTitle(self.tr("Text Object Example"))
+ @Slot()
def insert_text_object(self):
file_name = self._file_name_line_edit.text()
file = QFile(file_name)
diff --git a/examples/widgets/state-machine/eventtrans/eventtrans.py b/examples/widgets/state-machine/eventtrans/eventtrans.py
deleted file mode 100644
index 44aca37f8..000000000
--- a/examples/widgets/state-machine/eventtrans/eventtrans.py
+++ /dev/null
@@ -1,95 +0,0 @@
-
-#############################################################################
-##
-## Copyright (C) 2010 velociraptor Genjix <aphidia@hotmail.com>
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-from PySide6.QtWidgets import *
-from PySide6.QtCore import *
-from PySide6.QtStateMachine import QEventTransition, QState, QStateMachine
-
-
-class MainWindow(QMainWindow):
- def __init__(self):
- super().__init__()
- button = QPushButton(self)
- button.setGeometry(QRect(100, 100, 100, 100))
-
- machine = QStateMachine(self)
- s1 = QState()
- s1.assignProperty(button, 'text', 'Outside')
- s2 = QState()
- s2.assignProperty(button, 'text', 'Inside')
-
- enter_transition = QEventTransition(button, QEvent.Enter)
- enter_transition.setTargetState(s2)
- s1.addTransition(enter_transition)
-
- leave_transition = QEventTransition(button, QEvent.Leave)
- leave_transition.setTargetState(s1)
- s2.addTransition(leave_transition)
-
- s3 = QState()
- s3.assignProperty(button, 'text', 'Pressing...')
-
- press_transition = QEventTransition(button, QEvent.MouseButtonPress)
- press_transition.setTargetState(s3)
- s2.addTransition(press_transition)
-
- release_transition = QEventTransition(button, QEvent.MouseButtonRelease)
- release_transition.setTargetState(s2)
- s3.addTransition(release_transition)
-
- machine.addState(s1)
- machine.addState(s2)
- machine.addState(s3)
-
- machine.setInitialState(s1)
- machine.start()
-
- self.setCentralWidget(button)
- self.show()
-
-
-if __name__ == '__main__':
- import sys
-
- app = QApplication(sys.argv)
- main_win = MainWindow()
- sys.exit(app.exec())
diff --git a/examples/widgets/state-machine/eventtrans/eventtrans.pyproject b/examples/widgets/state-machine/eventtrans/eventtrans.pyproject
deleted file mode 100644
index b2f660a8f..000000000
--- a/examples/widgets/state-machine/eventtrans/eventtrans.pyproject
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "files": ["eventtrans.py"]
-}
diff --git a/examples/widgets/state-machine/factstates/factstates.py b/examples/widgets/state-machine/factstates/factstates.py
deleted file mode 100644
index e8ca0ef43..000000000
--- a/examples/widgets/state-machine/factstates/factstates.py
+++ /dev/null
@@ -1,127 +0,0 @@
-
-#############################################################################
-##
-## Copyright (C) 2010 velociraptor Genjix <aphidia@hotmail.com>
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-from PySide6.QtWidgets import *
-from PySide6.QtCore import *
-from PySide6.QtStateMachine import (QFinalState, QSignalTransition, QState,
- QStateMachine)
-
-
-class Factorial(QObject):
- x_changed = Signal(int)
-
- def __init__(self):
- super().__init__()
- self.xval = -1
- self.facval = 1
-
- def get_x(self):
- return self.xval
-
- def set_x(self, x):
- if self.xval == x:
- return
- self.xval = x
- self.x_changed.emit(x)
- x = Property(int, get_x, set_x)
-
- def get_fact(self):
- return self.facval
-
- def set_fact(self, fac):
- self.facval = fac
-
- fac = Property(int, get_fact, set_fact)
-
-
-class FactorialLoopTransition(QSignalTransition):
- def __init__(self, fact):
- super().__init__(fact, SIGNAL('x_changed(int)'))
- self.fact = fact
-
- def eventTest(self, e):
- if not super(FactorialLoopTransition, self).eventTest(e):
- return False
- return e.arguments()[0] > 1
-
- def onTransition(self, e):
- x = e.arguments()[0]
- fac = self.fact.fac
- self.fact.fac = x * fac
- self.fact.x = x - 1
-
-
-class FactorialDoneTransition(QSignalTransition):
- def __init__(self, fact):
- super().__init__(fact, SIGNAL('x_changed(int)'))
- self.fact = fact
-
- def eventTest(self, e):
- if not super(FactorialDoneTransition, self).eventTest(e):
- return False
- return e.arguments()[0] <= 1
-
- def onTransition(self, e):
- print(self.fact.fac)
-
-
-if __name__ == '__main__':
- import sys
- app = QCoreApplication(sys.argv)
- factorial = Factorial()
- machine = QStateMachine()
-
- compute = QState(machine)
- compute.assignProperty(factorial, 'fac', 1)
- compute.assignProperty(factorial, 'x', 6)
- compute.addTransition(FactorialLoopTransition(factorial))
-
- done = QFinalState(machine)
- done_transition = FactorialDoneTransition(factorial)
- done_transition.setTargetState(done)
- compute.addTransition(done_transition)
-
- machine.setInitialState(compute)
- machine.finished.connect(app.quit)
- machine.start()
-
- sys.exit(app.exec())
diff --git a/examples/widgets/state-machine/factstates/factstates.pyproject b/examples/widgets/state-machine/factstates/factstates.pyproject
deleted file mode 100644
index 751a5005b..000000000
--- a/examples/widgets/state-machine/factstates/factstates.pyproject
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "files": ["factstates.py"]
-}
diff --git a/examples/widgets/state-machine/pingpong/pingpong.py b/examples/widgets/state-machine/pingpong/pingpong.py
deleted file mode 100644
index cd047a29d..000000000
--- a/examples/widgets/state-machine/pingpong/pingpong.py
+++ /dev/null
@@ -1,108 +0,0 @@
-
-#############################################################################
-##
-## Copyright (C) 2010 velociraptor Genjix <aphidia@hotmail.com>
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-from PySide6.QtWidgets import *
-from PySide6.QtCore import *
-from PySide6.QtStateMachine import QAbstractTransition, QState, QStateMachine
-
-
-class PingEvent(QEvent):
- def __init__(self):
- super().__init__(QEvent.Type(QEvent.User + 2))
-
-
-class PongEvent(QEvent):
- def __init__(self):
- super().__init__(QEvent.Type(QEvent.User + 3))
-
-
-class Pinger(QState):
- def __init__(self, parent):
- super().__init__(parent)
-
- def onEntry(self, e):
- self.p = PingEvent()
- self.machine().postEvent(self.p)
- print('ping?')
-
-
-class PongTransition(QAbstractTransition):
- def eventTest(self, e):
- return e.type() == QEvent.User + 3
-
- def onTransition(self, e):
- self.p = PingEvent()
- machine.postDelayedEvent(self.p, 500)
- print('ping?')
-
-
-class PingTransition(QAbstractTransition):
- def eventTest(self, e):
- return e.type() == QEvent.User + 2
-
- def onTransition(self, e):
- self.p = PongEvent()
- machine.postDelayedEvent(self.p, 500)
- print('pong!')
-
-
-if __name__ == '__main__':
- import sys
- app = QCoreApplication(sys.argv)
-
- machine = QStateMachine()
- group = QState(QState.ParallelStates)
- group.setObjectName('group')
-
- pinger = Pinger(group)
- pinger.setObjectName('pinger')
- pinger.addTransition(PongTransition())
-
- ponger = QState(group)
- ponger.setObjectName('ponger')
- ponger.addTransition(PingTransition())
-
- machine.addState(group)
- machine.setInitialState(group)
- machine.start()
-
- sys.exit(app.exec())
diff --git a/examples/widgets/state-machine/pingpong/pingpong.pyproject b/examples/widgets/state-machine/pingpong/pingpong.pyproject
deleted file mode 100644
index 67b48e5ab..000000000
--- a/examples/widgets/state-machine/pingpong/pingpong.pyproject
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "files": ["pingpong.py"]
-}
diff --git a/examples/widgets/state-machine/rogue/rogue.py b/examples/widgets/state-machine/rogue/rogue.py
deleted file mode 100644
index 1234bea0b..000000000
--- a/examples/widgets/state-machine/rogue/rogue.py
+++ /dev/null
@@ -1,215 +0,0 @@
-
-#############################################################################
-##
-## Copyright (C) 2010 velociraptor Genjix <aphidia@hotmail.com>
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-from PySide6.QtWidgets import *
-from PySide6.QtGui import *
-from PySide6.QtCore import *
-from PySide6.QtStateMachine import (QEventTransition, QFinalState,
- QKeyEventTransition, QState, QStateMachine)
-
-
-class MovementTransition(QEventTransition):
- def __init__(self, window):
- super().__init__(window, QEvent.KeyPress)
- self.window = window
-
- def eventTest(self, event):
- if (event.type() == QEvent.StateMachineWrapped and
- event.event().type() == QEvent.KeyPress):
- key = event.event().key()
- return (key == Qt.Key_2 or key == Qt.Key_8 or
- key == Qt.Key_6 or key == Qt.Key_4)
- return False
-
- def onTransition(self, event):
- key = event.event().key()
- if key == Qt.Key_4:
- self.window.move_player(self.window.left)
- if key == Qt.Key_8:
- self.window.move_player(self.window.Up)
- if key == Qt.Key_6:
- self.window.move_player(self.window.right)
- if key == Qt.Key_2:
- self.window.move_player(self.window.down)
-
-
-class Custom(QState):
- def __init__(self, parent, mw):
- super().__init__(parent)
- self.mw = mw
-
- def onEntry(self, e):
- print(self.mw.status)
-
-
-class MainWindow(QMainWindow):
- def __init__(self):
- super().__init__()
- self.pX = 5
- self.pY = 5
- self.width = 35
- self.height = 20
- self._status_str = ''
-
- font = QFont()
- if 'Monospace' in QFontDatabase.families():
- font = QFont('Monospace', 12)
- else:
- for family in QFontDatabase.families():
- if database.isFixedPitch(family):
- font = QFont(family, 12)
- self.setFont(font)
-
- self.setup_map()
- self.build_machine()
- self.show()
-
- def setup_map(self):
- self.map = []
- generator = QRandomGenerator().global_()
- for x in range(self.width):
- column = []
- for y in range(self.height):
- if (x == 0 or x == self.width - 1 or y == 0 or
- y == self.height - 1 or generator.bounded(0, 40) == 0):
- column.append('#')
- else:
- column.append('.')
- self.map.append(column)
-
- def build_machine(self):
- machine = QStateMachine(self)
-
- input_state = Custom(machine, self)
- # this line sets the status
- self.status = 'hello!'
- # however this line does not
- input_state.assignProperty(self, 'status', 'Move the rogue with 2, 4, 6, and 8')
-
- machine.setInitialState(input_state)
- machine.start()
-
- transition = MovementTransition(self)
- input_state.addTransition(transition)
-
- quit_state = QState(machine)
- quit_state.assignProperty(self, 'status', 'Really quit(y/n)?')
-
- yes_transition = QKeyEventTransition(self, QEvent.KeyPress, Qt.Key_Y)
- self._final_state = QFinalState(machine)
- yes_transition.setTargetState(self._final_state)
- quit_state.addTransition(yes_transition)
-
- no_transition = QKeyEventTransition(self, QEvent.KeyPress, Qt.Key_N)
- no_transition.setTargetState(input_state)
- quit_state.addTransition(no_transition)
-
- quit_transition = QKeyEventTransition(self, QEvent.KeyPress, Qt.Key_Q)
- quit_transition.setTargetState(quit_state)
- input_state.addTransition(quit_transition)
-
- machine.setInitialState(input_state)
- machine.finished.connect(qApp.quit)
- machine.start()
-
- def sizeHint(self):
- metrics = QFontMetrics(self.font())
- return QSize(metrics.horizontalAdvance('X') * self.width,
- metrics.height() * (self.height + 1))
-
- def paintEvent(self, event):
- metrics = QFontMetrics(self.font())
- painter = QPainter(self)
- font_height = metrics.height()
- font_width = metrics.horizontalAdvance('X')
-
- painter.fillRect(self.rect(), Qt.black)
- painter.setPen(Qt.white)
-
- y_pos = font_height
- painter.drawText(QPoint(0, y_pos), self.status)
- for y in range(self.height):
- y_pos += font_height
- x_pos = 0
- for x in range(self.width):
- if y == self.pY and x == self.pX:
- x_pos += font_width
- continue
- painter.drawText(QPoint(x_pos, y_pos), self.map[x][y])
- x_pos += font_width
- painter.drawText(QPoint(self.pX * font_width, (self.pY + 2) * font_height), '@')
-
- def move_player(self, direction):
- if direction == self.left:
- if self.map[self.pX - 1][self.pY] != '#':
- self.pX -= 1
- elif direction == self.right:
- if self.map[self.pX + 1][self.pY] != '#':
- self.pX += 1
- elif direction == self.Up:
- if self.map[self.pX][self.pY - 1] != '#':
- self.pY -= 1
- elif direction == self.down:
- if self.map[self.pX][self.pY + 1] != '#':
- self.pY += 1
- self.repaint()
-
- def get_status(self):
- return self._status_str
-
- def set_status(self, status):
- self._status_str = status
- self.repaint()
- status = Property(str, get_status, set_status)
- Up = 0
- down = 1
- left = 2
- right = 3
- width = 35
- height = 20
-
-
-if __name__ == '__main__':
- import sys
- app = QApplication(sys.argv)
- main_win = MainWindow()
- sys.exit(app.exec())
diff --git a/examples/widgets/state-machine/trafficlight/doc/trafficlight.png b/examples/widgets/state-machine/trafficlight/doc/trafficlight.png
deleted file mode 100644
index ec88a8e8b..000000000
--- a/examples/widgets/state-machine/trafficlight/doc/trafficlight.png
+++ /dev/null
Binary files differ
diff --git a/examples/widgets/state-machine/trafficlight/trafficlight.py b/examples/widgets/state-machine/trafficlight/trafficlight.py
deleted file mode 100644
index 4bfced01f..000000000
--- a/examples/widgets/state-machine/trafficlight/trafficlight.py
+++ /dev/null
@@ -1,150 +0,0 @@
-
-#############################################################################
-##
-## Copyright (C) 2010 velociraptor Genjix <aphidia@hotmail.com>
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-from PySide6.QtWidgets import *
-from PySide6.QtGui import *
-from PySide6.QtCore import *
-from PySide6.QtStateMachine import QFinalState, QState, QStateMachine
-
-
-class LightWidget(QWidget):
- def __init__(self, color):
- super().__init__()
- self.color = color
- self._on_val = False
-
- def is_on(self):
- return self._on_val
-
- def set_on(self, on):
- if self._on_val == on:
- return
- self._on_val = on
- self.update()
-
- @Slot()
- def turn_off(self):
- self.set_on(False)
-
- @Slot()
- def turn_on(self):
- self.set_on(True)
-
- def paintEvent(self, e):
- if not self._on_val:
- return
- painter = QPainter(self)
- painter.setRenderHint(QPainter.Antialiasing)
- painter.setBrush(self.color)
- painter.drawEllipse(0, 0, self.width(), self.height())
-
- on = Property(bool, is_on, set_on)
-
-
-class TrafficLightWidget(QWidget):
- def __init__(self):
- super().__init__()
- vbox = QVBoxLayout(self)
- self._red_light = LightWidget(Qt.red)
- vbox.addWidget(self._red_light)
- self._yellow_light = LightWidget(Qt.yellow)
- vbox.addWidget(self._yellow_light)
- self._green_light = LightWidget(Qt.green)
- vbox.addWidget(self._green_light)
- pal = QPalette()
- pal.setColor(QPalette.Window, Qt.black)
- self.setPalette(pal)
- self.setAutoFillBackground(True)
-
-
-def create_light_state(light, duration, parent=None):
- light_state = QState(parent)
- timer = QTimer(light_state)
- timer.setInterval(duration)
- timer.setSingleShot(True)
- timing = QState(light_state)
- timing.entered.connect(light.turn_on)
- timing.entered.connect(timer.start)
- timing.exited.connect(light.turn_off)
- done = QFinalState(light_state)
- timing.addTransition(timer, SIGNAL('timeout()'), done)
- light_state.setInitialState(timing)
- return light_state
-
-
-class TrafficLight(QWidget):
- def __init__(self):
- super().__init__()
- vbox = QVBoxLayout(self)
- widget = TrafficLightWidget()
- vbox.addWidget(widget)
- vbox.setContentsMargins(0, 0, 0, 0)
-
- machine = QStateMachine(self)
- red_going_yellow = create_light_state(widget._red_light, 1000)
- red_going_yellow.setObjectName('redGoingYellow')
- yellow_going_green = create_light_state(widget._red_light, 1000)
- yellow_going_green.setObjectName('redGoingYellow')
- red_going_yellow.addTransition(red_going_yellow, SIGNAL('finished()'), yellow_going_green)
- green_going_yellow = create_light_state(widget._yellow_light, 3000)
- green_going_yellow.setObjectName('redGoingYellow')
- yellow_going_green.addTransition(yellow_going_green, SIGNAL('finished()'), green_going_yellow)
- yellow_going_red = create_light_state(widget._green_light, 1000)
- yellow_going_red.setObjectName('redGoingYellow')
- green_going_yellow.addTransition(green_going_yellow, SIGNAL('finished()'), yellow_going_red)
- yellow_going_red.addTransition(yellow_going_red, SIGNAL('finished()'), red_going_yellow)
-
- machine.addState(red_going_yellow)
- machine.addState(yellow_going_green)
- machine.addState(green_going_yellow)
- machine.addState(yellow_going_red)
- machine.setInitialState(red_going_yellow)
- machine.start()
-
-
-if __name__ == '__main__':
- import sys
- app = QApplication(sys.argv)
- widget = TrafficLight()
- widget.resize(110, 300)
- widget.show()
- sys.exit(app.exec())
diff --git a/examples/widgets/state-machine/twowaybutton/twowaybutton.py b/examples/widgets/state-machine/twowaybutton/twowaybutton.py
deleted file mode 100644
index d519c4f2a..000000000
--- a/examples/widgets/state-machine/twowaybutton/twowaybutton.py
+++ /dev/null
@@ -1,72 +0,0 @@
-
-#############################################################################
-##
-## Copyright (C) 2010 velociraptor Genjix <aphidia@hotmail.com>
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-from PySide6.QtWidgets import *
-from PySide6.QtCore import *
-from PySide6.QtStateMachine import QState, QStateMachine
-
-
-if __name__ == '__main__':
- import sys
- app = QApplication(sys.argv)
- button = QPushButton()
- machine = QStateMachine()
-
- off = QState()
- off.assignProperty(button, 'text', 'Off')
- off.setObjectName('off')
-
- on = QState()
- on.setObjectName('on')
- on.assignProperty(button, 'text', 'On')
-
- off.addTransition(button, SIGNAL('clicked()'), on)
- # Let's use the new style signals just for the kicks.
- on.addTransition(button.clicked, off)
-
- machine.addState(off)
- machine.addState(on)
- machine.setInitialState(off)
- machine.start()
- button.resize(100, 50)
- button.show()
- sys.exit(app.exec())
diff --git a/examples/widgets/state-machine/twowaybutton/twowaybutton.pyproject b/examples/widgets/state-machine/twowaybutton/twowaybutton.pyproject
deleted file mode 100644
index 223a51e32..000000000
--- a/examples/widgets/state-machine/twowaybutton/twowaybutton.pyproject
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "files": ["twowaybutton.py"]
-}
diff --git a/examples/widgets/systray/main.py b/examples/widgets/systray/main.py
deleted file mode 100644
index 7c9b3eee4..000000000
--- a/examples/widgets/systray/main.py
+++ /dev/null
@@ -1,58 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-import sys
-
-from PySide6.QtWidgets import QApplication, QMessageBox, QSystemTrayIcon
-
-from window import Window
-
-if __name__ == "__main__":
- app = QApplication()
-
- if not QSystemTrayIcon.isSystemTrayAvailable():
- QMessageBox.critical(None, "Systray", "I couldn't detect any system tray on this system.")
- sys.exit(1)
-
- QApplication.setQuitOnLastWindowClosed(False)
-
- window = Window()
- window.show()
- sys.exit(app.exec())
diff --git a/examples/widgets/systray/rc_systray.py b/examples/widgets/systray/rc_systray.py
deleted file mode 100644
index bc4779646..000000000
--- a/examples/widgets/systray/rc_systray.py
+++ /dev/null
@@ -1,2581 +0,0 @@
-# Resource object code (Python 3)
-# Created by: object code
-# Created by: The Resource Compiler for Qt version 5.15.0
-# WARNING! All changes made in this file will be lost!
-
-from PySide6 import QtCore
-
-qt_resource_data = b"\
-\x00\x00d\xb4\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x02\xe8\x00\x00\x02\xe8\x08\x06\x00\x00\x00*Z\x00\x90\
-\x00\x00\x00\x01sRGB\x00\xae\xce\x1c\xe9\x00\x00\x00\
-\x09pHYs\x00\x00\x0d\xd7\x00\x00\x0d\xd7\x01B(\
-\x9bx\x00\x00\x00\x07tIME\x07\xdc\x03\x09\x08\x1e\
-4hf\xd9|\x00\x00\x00\x06bKGD\x00\xff\x00\
-\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00d4IDATx\
-\xda\xec\x9d\x07\xb8U\xc5\xb9\xbf\xf7i\x1c\x0e\xe7\xd0\xcb\
-\x01Tz\x95\xa6 \xbd\x8b\x14E@\x10Q\x14\xa4\x05\
-\x14\x14\x14AAD\xaaT\xe9\xe7h\xd4\xab&\xc6$\
-\xb6\xc4DM\xa2&\x1a{\x895\xb1w\x05\xd9k\xa7\
-\xdc\x14M\x8c\xc66\xf7\x1b\xf6J\x82W\x84\xb5\xf6\xd9\
-k\xd6\xac\xb5\xdf\xf7y\xde\xe7\xb9\xf7\x7f\xff\xf7F\xcf\
-\x9e\xf9\xe6\xb7g\xcf|\x93H\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00@.Q(\xd6um\x22\xb6\x12;\x8a=\xc4\
->\xe2q\xe2(\xf1x\xf7\xbf\xd6\xf6u\xff\xe7\xda\xa3\
-\xdc\xff\x9dz\xee\xff-\x00\x80\xaaRM\xac\xef\xd6\x96\
-\xee\xfb\xd5\x9b~\xfb\xd5\xa1\xd1\xe2\x08\xf7\xbf\xee\xed\xfe\
-\xcf\xdb\xbb\xff;\x8d\xf7\xabk\xf9\xfc9\x01\x00\xc0\x06\
-j\x8a\xdd\xc4\x93\xc4\x05\xe2*\xb1B\xfc\x81x\x8f\xf8\
-\x94\xf8\x8e\xf8\x81\xa8\xb2\xec?\xc5\xdf\x8bo\x8a\x0f\x8a\
-7\x89;\xc5\xe5\xe2,q\x8c\xbb\x90\xd6\xe3c\x02\xc8\
-)\x1a\x89\xbd\xc4\xb1\xe2\x1cq\x85[\x97n\x13\x1f\x16\
-\xdf\x12\xff(~\x1c@]\xfa\x8b[\x93~#\xfeB\
-\xfc\xbe[\x97V\x8a\xe7\xbau\xa9\x93X\x83\x8f\x09\x00\
-\x00\xaaB\xb3Dz\xf7h\xb6\xb8^\xbc\xd9]|\xfe\
-\x14\xc0\xe2\x16\x94\x1f\x8a/\x88w\x8a\xbb\xc4\x0b\xc4\x13\
-\xc4\xe6|\xbc\x00\x91C\xefT\xb7\x16\xc7\x89\x17\x8aW\
-\x88?\x17_\x16?\x8aP]J\x89\x8f\xbb\x1b\x1ak\
-\xc5\x99\xe2\xb1\x89\xf4/\x8c\x00\x00\x00\xfb\xa8\x9eH\xef\
-8\xebEB\xef\xf8<\x90H\xef\x06\xa9\x98\xfb\x81\xbb\
-H^\x93H\xff\x0a\xa0\x7f\xc6\xae\xc3p\x00\xb0\x82\x86\
-\x89\xf4\xd1\xb7E\xe2\xf5\x89\xf4\xafr\xff\xc8\x81\xba\xa4\
-w\xf8\x7f%^.N\x15\xbb\x8aE\x0c\x07\x00\x80x\
-\x93\x97H\xff\xcc\xaaw\xc5\xbf#\xbe$~\x96\x03\x8b\
-\x9eW\xbf\x14_\x17otC\xbb>\x0b_\xca\xb0\x01\
-\x08\x94Z\xe2 q\xb1x\x8b\xf8.\xb5\xe8+\xfeK\
-|\xde\xddL\x98&\xb6e\xc8\x00\x00D\x1b}\x09J\
-\x9f}\xdc(>\x9a#;PA\xf8\xb6x\xb5x\xa6\
-x\x04\xc3\x0a\xa0J\xb4H\xa4\xcf\x88\x7f\xcf\x9d[\xd4\
-\x18\xff\xfe\xdd\xad\xe9\x1b\xdd\x1a\xcf\xaf\x7f\x00\x00\x16\xa3\
-;\x13\xe8\xb3\x8c\x9b\xc5\xa7\x13\xec\x8e\x07\xe1\xe7\xe2\xb3\
-\x89\xf4O\xd0\xfaXLu\x86\x1d\xc0A)sC\xa4\
-\xbe\xb0\xa9\x7f\xb5\xfb\x92:\x92u?\x11\x1fK\xa4\xcf\
-\xb4\xeb_\xfe\x0a\x18v\x00\x00\xe1\xa2\xcf\x8f/I\xa4\
-\xcf-\x06\xd1\x9d\x00\x0f\x1d\xd8\x9fqw\xb2t`\xa7\
-\x15$\xb0Q\x90\x9e\x0b\x1b\xdd\xb9\xf1\x05u\xc2\xb8\x1f\
-\xb9k\xc2y\x09.\xc5\x03\x00\x18A\x9f#\xd7\xad\xc4\
-6\x89/\xb2\x10Y\xe7\x1eq\x878 A\x7fd\xc8\
-\x1d\x0a\xddP~U\x22\xdd\x06\x95Z`\x8f_\xb8_\
-\x94V\x8b]\x18\xaa\x00\x00\xd9\xe5\x98D\xfa\xe8\x0a\x17\
-\xa8\xa2\xa3#V\x8aC\x13\xfc\xe4\x0c\xf1C\xef\x94\xeb\
-\x07\xc6\xae\x15\xff\x97\xf9\x1e\x19_u\xc3z'\x860\
-\x00@f\xe8\x17\xee\xf4\xcf\xc4\x5c\xa4\x8aG\xfb4\x1d\
-\xd6\xf5\xf9\xd0<\x866D\x14\xfd\xab\xd0\xb0D\xba\xf5\
-\xe1\xdf\x98\xd7\x91W\xf7\x90\xd7\x8f)udh\x03\x00\
-\x1c\x9c\x96\x89\xf4E\x9f7Y<b\xab~\xd1pM\
-\x22\xfdl8@\x148J\xdc\x22\xeee\xfe\xc6V}\
-d\xf2\xe2\x04\x0f&\x01\x00\xfc\x07\xfd\x10\xc5\xc9\xe2=\
-\x09.T\xe5\x9a\x0f\x89\x93\xc5b\xa6\x01X\x86~\x03\
-@?`\xf64\xf34\xa7\xd4\xdd\xbfnO\xa4\x8f/\
-q\x8f\x06\x00r\x12\xfdl\xf5\x86D\xfa\xe9g\x16\x86\
-\xdc\xf6O\x89t\xeb\xc6vL\x0b\x08\x99n\xe2\x15\x09\
-\x8e\xb0`\x22\xf1\x9ex\xa9x\x18\xd3\x02\x00\xe2\x8e>\
-\x7f<R\xfce\x82\xddr<\xf0k\xa6\xf7\x8b'\xb2\
-{\x05\x06\xd1]XN\x13\x9fd\x0eb\xe2\xc0\xbb\xea\
-?\x15\x072U\x00 n\xe8\x07m\xbe\x95H?\xd4\
-A\xc1G/\xea{\x08\x0b\xc4\x9aL\x1f\x08\x88\xda\xe2\
-bq7\xf3\x0d=\xaa\x8f<\xe9cyEL\x1f\x00\
-\x882\x8d\xc4U\xe2\x1f(\xec\x98\xa1\x1f$\xd2\xbd\xd5\
-[3\x9d K\xe8\xcb\xe8\xdb\xc5\x0f\x99_\x98\xa1\xfa\
-\xcd\x87\x0b\xc5:L'\x00\x88\x12\xba\xc7\xec\xff$x\
-\xdd\x13\xb3\xfb3\xf3\xf7\x12\x9cS\x87\xcc\xd1\xddX\xf4\
-\x05\xc0/\x99O\x98%\xf5\x97\xbc\x9db+\xa6\x17\x00\
-\xd8\x1e\xccoc\x01\xc4\x00\xfd\x5c\xfc~\x82\xde\xc5\xe0\
-\x9d\x1e\xe2\x1d\xd4%\x0cx\x03A\xf7\xc7o\xc1t\x03\
-\x00\x9bh\xeb\x86&.~\xa2\xc9'\xbco\x22\xa8\xc3\
-A\xe8%\xfe\x8c\xb9\x82\x06\xfd\x97\xf8m\xf1p\xa6\x1f\
-\x00\x84\x89\xde-\xb8\xce\xdd=\xa08cX;\xea\xdf\
-\x11\x9b1\x1d\xc1E\x7fi\xe3(\x0b\x86\xa9>\xde\xa9\
-\xef\xce\x943\x1d\x01\xc0$\xba\xe8\x5c\xe1\xee\x16P\x8c\
-\xd1\x06?I\xa4/\xfe5dz\xe6,\xfaK\xda\xf5\
-\xee\x976\xe6\x04\xda\xe0?\xc4\x8d\x89t\xc7 \x00\x80\
-\xc0\xa8\x96H\xb7%\xe3\x11\x0f\xb4\xf9\xd2\xd6j\xb1\x8c\
-\xe9\x9a3\xd4w\xbf\x9c}\xc2\xf8GK\xfd\xbd8[\
-,`\xba\x02@\xb6\x19\x9fH\xf7\xa6\xa6\xd8b\x14\xdc\
-+NI\xa4\x1f\xc7\x82x\xa2\x1f\x18:G\xfc3\xe3\
-\x1d#\xe2\xef\xc4c\x99\xba\x00\x90\x0dtk\xb2_S\
-X1\xa2>&\x1e\xc34\x8e\x1dC\xc5\x17\x18\xdf\x18\
-Q\xf5\xcb\xa4m\x99\xc6\x00\x90\x09\xfa\x9c\xb9\xeeeN\
-g\x16\x8cC\xc7\x17}\x99\xb91\xd3:\xf2\xe8~\xd3\
-\xb71\xa61\x06\xea;\x5c[\x13<v\x04\x00\x1e\xd1\
-G\x02\xe6\x88\x7f\xa5\x80\x1e\xda\xeab;\xb1\xaf8F\
-\x9c.^ ^&^)\xde*\xde\xe3\xfa+\xf1\x09\
-\xd7\xe7\xc4W\x0f\xe2\xf3\xe2\xc3\xe2\xcf\xc5[\xc4k\xc4\
-m\xe2\x12q\x968\xce\xfd\xcf\xd4\xff\xd9\xf5\xf8\x1c\xbc\
-\xfa\x17qV\x82c/QD\x1fg\xd1/7~\xc4\
-8>\xb82\xb8U\x03\xb1\xbd8@\x9c \xce\x16\x97\
-\x89\xdb\xc5k\xdd\x9ar\xb7\xf8\xa8[k\x0eV\x8b\x9e\
-\xd9\xafn\xdd\xbb_=\xbbI\xbcB\x5c+.\x14\xcf\
-\x14O\x10\xfb\x88\xad\xc5b>\x0b\xaf:\xe2D\xa68\
-\x00\x1c\x0c\xa9\xe9\x89\x87(\x98_\xb5\x898D\x9c!\
-\xaep\xc3\xf2/\xc4\x17D\xc7\x12\xdf\x16\xef\x17\xaf\x17\
-W\xba_\x14\x06\x89\x87\xf1\xf9\x1d\xc8\x07\x12\xfc\xbc\x1c\
-%\xba\x8b\xcf1n\xffk\xbe\xd8L<V\x9c)\xae\
-\x11o\x10\xa5x\xabw-\xaaK:\xfc\xdf%~[\
-\xbcD\x9c&\x0e\x14\x1b\xf2\x19\x1eH\xfd\x98\x16\xfd\xd3\
-\x01\xe0+\x14\x89\xcb\x13\xe9\xde\xad9[ k\x89=\
-\xc5\xa9\xe2z\xf1vw\x07\xc9\x89\xb8o\xb8_(v\
-\x8as\xc5\xfe\xee\xbfk\x8e/\x86z\xac/\x13\x8b\x99\
-\xfe\xd6R*^\x9e\xc8\xf1w\x16\xf4/d\x83\xc5s\
-\xdd_\xe5~\xe9~!\x8fz]z\xd1\xfd\x85Q\x7f\
-\xb98]<Z,\xa5.}\x90H_|\xceg\xfa\
-\x03@\x1f\xf1\xc5\x5c,\x86\xfag\xd8\xc9\xe2\x0e\xf1\xf1\
-\x18,x~L\xba\xff\xceW\x89g\x89\xdd\xc4\x82\xdc\
-\x5c\x10_Np\x89\xd4F$\x93&\xde\xc9\xb5\xf1X\
-\xe4n\x12\xcc\x17\xaf\x13\x9f\xca\xc1\xba\xa4\x7f\x05\x90o\
-ej\xa2xDn_n\xefD\x19\x00\xc8MJ\xc4\
-\x9d\x89\x1c\xb9\x04\xaa\xc3\xe7Q\xeeY\xcck-;\x9e\
-b\x8b\xaf\x8b\xdf\x13\xe7\x89\xdd\xc5\xc2\xdcY\x0c\xf5\x0e\
-\xed*\xf7\x97$\x08\xbf.m\xcb\x95\xbaTM\xec\xed\
-\x9e\xe1\xbe%&;\xe3\xd9\xf6Y\xf7\x97\x83\xe9bG\
-\xf7\x8c}\x8e\xd4\xa5\x7fQ\x97\x00r\x8f\xfe\xe2\xbbq\
-/p\x87\xbb\x17*Y\xf82\xf3\x1d\xf7ow\x8e\xd8\
-57\x16\xc6\x97\xc4\x1e\x94\x87\xd0\x18\x12\xf7\xba\x94\xef\
-\xee\x90_\xe2^\xb4|\x9f:\xe3\xdb7\xdd\xf3\xf6S\
-\xdc\xfbA\x89\xdc\xa8K])\x0f\x00\xf1F\x9fk\xd3\
-/\x81\xc6\xf2\xc5=\xbd\xf8\x1d\xe3v:\xb9\xd7\xfd\xb9\
-\x94\x05-{\xea.\x0e\x17\xbb\xbfD\xc48\xac\xeb\xb3\
-\xe9\x92\x9fx\xf1\xcf \xfao\xbd2\x11\xd3\xb3\xe6\x05\
-ng\x93\x95n\xf7&jI\xf6\xd4_p\xee\x14\xcf\
-\x17\xbb\xc4;\xa4\xff=\x91\xee@\x05\x001\xe40\xf1\
-Wq,^G\xb9\x8b\xdf\xb3,XF\x7fv^\xe7\
-\xb6q\x8b\xe9Q\x98\x07\x13tT0\xc1\x11\xe2\xc3q\
-\x1b?\xfa\xe8\xcapq\xab{\x19\x92\x9aa\xc6\xc7\xdd\
-\x0d\x9a\x0e\xf1\x0d\xea\xfa\x0d\x80z\x94\x0d\x80\xf80A\
-\xfc\xdf8\x15\xaa\x0en!~\x9cE)t\x7f\xe7\xf6\
-B>:~\x8b\xa1\x9e3\xe3(\x1f\x811^\xfcs\
-\x9c~\xc1\xeb\xeb^p|\x95\xba\x10\xba\xbf\x16\xcf\x13\
-[\xc4\xaf.\xbd\x9fH\xbf\xa4\x0b\x00\x11\xa6\x9axe\
-\x5c\x0aSC\xf7<\xf4\x83,>\xd6\xfa\x98\xb8(^\
-gC\xbf\x14+\x13\x5c\xd4\xca&\xa5q\xaaK-\xdd\
-3\xe5O3\xff\xad\xf5\x1e\xb7_|\xedx\xbd\x8e\xbc\
-:A;F\x80H\xa2\x7f\x9e\x7f\x22\x0e\xbbR\x83\xdc\
-\xc7\x81v\xb3\xd0D\xeal\xa8\xbe\xc8u\x5c|\xda7\
-\xea\xc7\x8d\xca)+U\xa6\x83\xf8j\xd4\xc7\x83n\x87\
-8\xd6\xed\xe3\xcd]\x97h]|\xd7\xefA\xf4\x8aO\
-P\xff\x99X\x97\xb2\x02\x10\x1d\x86\x88\x7f\x88r\xe1)\
-w{\x01?\xc1\xa2\x12y\xf5\xce\xe2\x05\xf1\xd8U\xdf\
-+\xf6\xa3\xbcd\x8c>\xd2\xf2a\xd4w\xcb\x97\xd3\xa6\
-5\x16>\xe8\xb6\xdd\xad\x1b\xfd\xba\xf4\x96\xd8\x8d\xf2\x02\
-`7\xfa\xe7\xae\x8d\x89\xf4\xcf\xf2\x91,6\xc7\xb8;\
-\xaf{\xa3\xfc\xd8Fa\xa1J\xd5\xae\xadRM\x9b*\
-\xa7m[\xe5t\xeb\xa6\x92\xfd\xfa)g\xc4\x08\xe5\x8c\
-\x1b\x97v\xd2$\xe5L\x9e\xac\x9c)S\x943k\xd6\
-\xd7L\x9dqF\xfa\x7f\xae=\xe9$\xe5\x8c\x1c\xa9\x9c\
-\xc1\x83\x95\xd3\xab\x97r\xbavM\xff\xdfm\xdcX9\
-\xc5\xc5\x91\xf9\xbb\xecu?\xdb\x81\xd1^\x0c?O\xa4\
-{\x13\xf3\xd3\xb2w\xf4\xf1\xa0\xab\xa3\xfa\x99\xe7\xb9\x17\
->\x7fJ\xa8\x8d\xa5\xbb\xdd]\xf5\x88_,\xd5\x9d\xd9\
-\xce\xa3\xd4\x00\xd8IM\xf1\xd6\xa8\x16\x18}\x8c\xe5\xe6\
-\x08\x05p\xa7\xbc\x5c9G\x1e\xa9\x9cA\x83\x943~\
-\xbcrf\xcfV\xce\xd2\xa5\xca\xd9\xb2E9W\x5ca\
-\xd4\xe4\xd6\xad\xcaY\xbe\x5c9\xf3\xe7+g\xeaT\xe5\
-\x8c\x1a\xa5\x9c\x1e=\x94\xd3\xac\x99rJJ\xac\xfc\x1b\
-\xea\xb0s\xbc{\x84)\xa2c\xf6\x87b\x0d\xca\xce!\
-\xd1\x1d'\xee\x8e\xe2g\xac\x8f\xb1\x9c,\xfe\x92\x10\x9b\
-\x13\xea\x0d\x84\xeb\xdcM\xa2\x08\x07\xf5+\x12\xe9\xbbg\
-\x00`\x09m\xc4W\xa2VLt{>\xfd\x9c\xf3}\
-6\x17\xee:u\x94\xd3\xa9\xd3\xbe\xdd\xef\xd4\xcc\x99\xfb\
-\x82p\xaa\xa2\xc2x\x08\xaf\x92\x1b7*\xe7\xfc\xf3\xd3\
-\xbb\xf6\xfd\xfb+\xa7E\x0b\x95\xaaV\xcd\x8a\xbf\xef\xc3\
-n\x08\x8a\xe89\xf5g\x13\xb4b<\x18\xfa\xbc\xf9\x9b\
-Q\xfb\x5c\xab\xb9\xafVr\xe93w\xd5\xbd\xd5GE\
-\xf7\xbd\x87\xc7\xc5\xc6\x94\x1f\x80\xf0\xd1\xaf\x82\xfe)J\
-\x05D\xef\x9a\x8e\x17\x1f\xb5\xad0\x97\x95)\xa7sg\
-\xe5\x8c\x19\xa3\x9c\x05\x0b\x94\xb3ys\xb4\x82\xb8\x1f+\
-+\x95\xb3b\xc5\xbe\x1d\xf7}\xc7o\xf4q\x99\xbc\xbc\
-P\xbb\xbfL\x8afOu\xf9\xc7O\xf4\xa2\x0c}\x8d\
-\x91\xe2_\xa3\xf4Y\x16\xbb\x9d>xL\x08\xff\xed/\
-\xdd\xe3M\x11\x0c\xe9\xef\x89\x9d)C\x00\xe1qZ\x22\
-\xfd\xf2ad\xcer\x9e\xe0\xf6\xa7\xb5\xa1\xf8\xa6\x9a4\
-Q\xa9\x81\x03URBjj\xe5\xca\xf8\x86q\xaf\xea\
-/$g\x9f\xad\x9ca\xc3\x94s\xc4\x11\xa1\x04v\xdd\
-\xd7\xfe\xa4\xe8\x1d}\xd1s\xf0t\xca\xd1\x7f\xd0ga\
-?\x8f\xd2Q\x96\xa9\xe2\xf3\x04R\xfc\x06\x7f\xe6\x1e\xc3\
-\x8cXH\xff\x9b8\x9cr\x04`\x1e\xfd\x1cyd.\
-\x83\xeav{\xf7\x86]h\xf5\xb1\x8e\xae]UJ_\
-\xbc\x5c\xbb\x96@\xee%\xb0\x7f\xeb[\xca\x91/1N\
-\xc3\x86F?+}\xeciX\xf4\xfa\xa5_\x9a\xe35\
-I_\x9c\xad\x88\xd2\x86\xc18\xf7\xd7\x1bB(z\xf1\
-v\xb1w\xb4\xea\xd2\xa7\xe2l\xe2\x12\x80\x19tG\x84\
-\xeb\xa3R \x8et{\x05\x87VT\x1b4H\xef\x08\
-\xcf\x9f\xafR;w\x12\xba\xab\xa2\xbe\x88:f\x8cJ\
-\xea\xcb\xa7\x86v\xd7\x7f\x12\xbd\x17J\xf5\xa3F\x059\
-X\x97\x8a\xc5\x9b\xa3\xf29\x0d\xe0\xf2'V\xc1\xeb\xa2\
-\xf7B\xa9\xee\xee\x96G|\x02\x08\x8e:\xe2\xfdQ(\
-\x08\xfa\xd5\xcf\xcb\xdd\x07kB\xb9\xd8y\xec\xb1\xca\xb9\
-\xf0BBuP^v\x99rN9E9-[\x06\
-\x1e\xd6\xf5C0\x15\xd1\xea\xa3~\xbbX\x92cu\xe9\
-\x81(|6\xba\x8f\xf9w\x09\x98\x98\xa5\xf6\x8c\x97\x8a\
-\xb5\xa2S\x97n\xcd\xb1\xba\x04`\x8c\xfa\x89t\xd7\x08\
-\xeb; \x9c#\xben\xba\xf5\xa1\xbe\xe0\xa9[\x1e.\
-\x5c\x98\xbe\x00I\x886fj\xf5j\xe5\x8c\x1e\xad\x9c\
-F\x8d\x02\xfd\x8c\xdf\x16\x17\x89%\xd1X\x0c\x1fM\xa4\
-[\x0c\xc6\x1d\xdd\xc5\xe6\x05\xdb?\x0f\x1d\xa2V\xf1\x1a\
-1\x06\xe0\x8b\xe2\x99\xd1\xe9D\xa5\xebRm\xe2\x14@\
-\xf6h\x22\xbeh\xfb\xe4\x1f->i\xb28\xe6\xe7\xa7\
-[ \xce\x99\xa3\x9c]\xbb\x08\xcb6\x84\xf5\x0b/\xdc\
-w\xf16\xc8\xfe\xebOG\xa7\xb3\xc2+\xee\xdc\x8d+\
-\xed\xc5\xf7m\xff\x1c\xc6\xf3\xf2'\x1a\xf0~\xf7\xe8T\
-\x04\xea\xd23b\x03b\x15@\xd5i+\xee\xb6\xfdg\
-\xe3\x1f\x9b\xec\xbe\xa2_\xe8<\xe5\x14\x95\xd2\xfd\xbd\x09\
-\xc5v\xaa\xcf\xfb\xebWQ\xbbtI\x7f\x91\x0a`\x1c\
-\xdc&\xb6\x8aF\xbb\xb3\xd61\xacK=\xc5\xbf\xd8\xfc\
-\xb7o\xcf\xeb\x9f\x18\x82\xfa\xb5\xe4\xc6\xf6\xd7\xa5\xd7\xc4\
-#\x88W\x00U\xdb\xa1\xdac\xeb$\xd7]\x10\xce\x10\
-_3Q\xf8\xf49\xe7\xce\x9dU\xea\x9cs8\xc2\x12\
-\xb5]\xf5K/U\xa9\xc1\x83\xd3]t\xb2<.\xde\
-\x10g\xd9\xdf\x96\xf1\x1d\xb1e\x8c\xea\xd2Q\xe2\x1fm\
-\xfd{\xeb\xb6\x89\xe7\x89\xef\x10\x161$\x7f'\x8e\xb5\
-?\xa4\xbfAH\x07\xc8\x8cn\xe2\x1fl\x9d\xdc-\xdc\
-\x1dL#\xad\x11\x87\x0eU\xce\x9a5\x84\xdd\x88\x9b\xdc\
-\xba5\xfd\xcbG\xbdzY\x1f'\xfa\x17\x9c\xe6v/\
-\x86\xfa\x8bv;v\xce\x83\xef\x1aEw\x16\xb4\xc5\xef\
-\x88\xe5\xfc\xc2\x07\x10+\xfa\xd8\xba\x08\xea\x9d\xca\xb3\xdc\
-\x0b{\x81\x16\xb7\x1a5Tj\xe4H\x95\xda\xb0\x81p\
-\x1b\xb7\x1d\xf5\x9d;U\xea\x8c3T2\xcb\x97J\xdf\
-\x12g\xd8\xfd<\xb7~u4\xca\xaf\xfb\x0d\x10?\xb0\
-u\xd7\xfc\x02.\x81\xa2\x85\xea_\x98O\xb5;\xa4'\
-\xc5\x0e\xc4.\x80C\xd3[\xfc\xd0\xc6\x89\xdc\xd8DO\
-\xf3\x9a5\x953a\x82r\xb6m#\xcc\xc6\xdd\x8a\x0a\
-\x95\x9c>]9M\x9adu\x0c\xfd\xc8\xee\xdd\xf4?\
-\x89]\x22X\x97\x06\x89\x1f\xb1k\x8e\x98\x99\xd7\x88u\
-\xec\xadK\xef\xc7\xec\x18\x1e@ \xc7Z\xac\xdc9\xd7\
-\x1dZ^\x09\xb2\x80\xd5\xae\xad\x1c\xfd\xc2'\x8f\x09\xe5\
-\xa6\xfa!)\xddS=K\xe3\xe9M\xbbw\xad~\x9f\
-H\xdf/a\xd3\xa0\x8aw`\xcef\xd7\x1c#\xe4\xb3\
-b\x7f\xbb\xef\xca\x1cN\x0c\x03\xf8:G\x8b\x7f\xb5m\
-\xd2\xd6\x16\xaf\x0e\xb2h\xe9v|'\x9e\x98>\x9fL\
-P\xcdm++UJw~i\xd80\xabg@\xeb\
-\xda\xb9\x18\xea\xfb%GF\xe4X\xcb?l\xfc5\xef\
-G\x04>\x8c\xa0\xfa\xe1\xb5\xcd\xf6\xbe\xe7\xa0;\xc65\
-'\x8e\x01\xfc\x97\x16\x09\x0b\xfb\x09\xeb'\xd6\x1f\x0b\xaa\
-P\x15\x15)g\xe4H\xe5l\xd9B0\xc5\xaf\xaa{\
-\xdaO\x9a\x94>\xee\x94\x85\xb1\xa6{\xf3w\xb7\xf7\x82\
-V3\x8b\xebRg\xf7H\x8eU\x7f\xb7\xc1\xe2o\x09\
-z\x18q\xef\x16[\xdbY\x97\xf4\xc3c\xf5\x89e\x00\
-\x89DS\xf1-\xdb&\xe9\xb7\x82\xfa\xe9X\xb7K\xec\
-\xd1C9k\xd7\x12D\xf1\xd0]_\x8e?>\xfde\
-.\x0b\xcfr\xcf\xb0\xb7\x1f\xb1\x8d\x8f\x86\xb4J\xa4/\
-\xb5ZuA}\xb1\xbb\x03I\xc0\xc38\xa8\x9b-L\
-\xb0\xb3.=\x9d\xe0\xc5Q\xc8q\xf4\xc2\xfc\xb2M\x13\
-\xb3\x86xeP\x05\xa9M\x1b\xe5,]J\xf8D\x7f\
-]_\xd6\xafWN\xef\xde\xe9/wU\x1c\x83;\xc5\
-b\xfb\x16\xc3\xdf\x88\xa5\x16\xd5\xa5\x86\x89t\x8fdk\
-\xfeF\xb5\xc4\xef\x11\xe80\xa6^\xe6v\x22\xb2\xac.\
-=jY]\x020F\x89\xf8\x84M\x13\xb2\xa5\xfb\x5c\
-q\x10\x17@\x93S\xa7\xf2\xc0\x10V\xcdy\xf3\xb2r\
->\xfd^\xf1p\xfb\x16\xc3_\x88E\x16\xd4\xa52\xf1\
-)\x9b\xfe6\x1d\xc4\xc7\x09q\x18s\xef\xb0\xb3g\xfa\
-\x9db\x01q\x0dr\x89|\xf1v\x9b&\xe2\x88 ^\
-\x04\xd5;\x9e\x83\x06)\x87\x0b\xa0\x98\xc5\x1e\xea\xce\xe8\
-\xd1*YXX\xa5\xb1\xf9\x92x\xac}\x8b\xe1\x0db\
-^\x88uI\x7fA\xb8\xc7\xa6\xbf\xc9x\xb7#\x0f\x01\
-\x0esA}\xb7\xa2\x8f}u\xa9\x92\xc8\x06\xb9\xc4v\
-\x9b&\xe0\x1cqo\xb6\x8bM\xf3\xe6\xcaY\xb6\x8cP\
-\x89\xc1\xb8f\x8dJv\xe8P\xa51\xfa\xbe8\xcb\xbe\
-\xc5pc\x88u\xe9\x06[\xfe\x0e\xba\x85\xe2E\x9c7\
-\xc7\x1c\xf4=\xf1d\xfb\xea\xd2\x22b\x1b\xe4\x02\x17\xda\
-2\xe9\xf4\x99\xb7\xed\xd9.0\xc5\xc5\xe9\xe7\xdc+*\
-\x08\x91\x18\xbc\xba-cYY\x95\xc6\xecv\xfb\xce\x7f\
-\x9e\x13B]Ze\xcb\xbf\x7fM\xf1\xfb\x045\xccq\
-\xd7\xb8\x17\xa3-\x99\x97_\x8aS\x89o\x10g\xc6\x89\
-\x9f\xdb0\xe1\xca\xc4\x1b\xb3\x5cP\xf4C3\xa9K/\
-%4\xa2Y/\xbb\xac\xca\xbb\xe9?\x10K\xedY\x0c\
-\xff%\x0e1X\x97&\x88_\xd8\xf0\xef^_\xbc\x8b\
-p\x86\xb8\xcf]vm\x1e\xfcS\xecG\x8c\x838\xd2\
-_\xfc\xd8\x86\x89v\x84\xf8`6\x0b\x89>\x0f|\xca\
-)\x5c\x02\xc5p\x9d6-\xfd\x0bN\x86\xe3\xf8\x01\xb1\
-\xa9=\x8b\xe1\x07\x89t\x1f\xf2\xa0\xe9kK]\xd2=\
-\xa1\x7fC(C\xfc\x8a?\x13\x1b\xdaS\x97\xfe&v\
-!\xceA\x9c\xd0\xcf\xe7\xa6l\x98`\x9d\xc4\xe7\xb2Y\
-@\x1a5R\xceE\x17\x11\x0e\xd1\x9a\xb3\xe9N\xabV\
-\x19\x8f\xe7'\xdcnF\x96,\x86\xaf\x8au\x02\xacK\
-\xfa\x0d\x86\xbd6\xfc\xbbv\x14\x9f'\x8c!\x1e\xd0G\
-\xc4\x16\xf6\xd4\xa5\xd7\x03\xaeK\x00\xc6(NX\xd2N\
-\xf1\x98lwj\xe9\xde]9\x97_N(\xc4\xc0^\
-\x14Mm\xd8\xa0\x9c\xe5\xcbUr\xe1B\xe5\xcc\x99\xa3\
-\x9c3\xceP\xa9\xf1\xe3\x953n\xdc\xben.\xa9\x11\
-#\x943|\xb8r\x06\x0c\xf8\xaf\x03\x07\xaaT\xf5\xea\
-\x19\x8f\xeb\x17\xedzy\xf4\xdeD0m\xcet\x9b\xd7\
-gl\xf8w\xec\x1bD\x07)\xc4\x98\xa9\xbf\xc0\xb6\xb3\
-\xa7.\xdd\x95Hw\xa3\x03\x884\xdf\xb6aB\xf5\xcf\
-f\xbb2\xfd\xb2\xe3\x94)\x04H\xac\x9a[\xb6\xec{\
-\xb8*5{\xb6rt\xe8\x96`\xed\x1cy\xa4J6\
-jT\xa5\x80\x9d\x0d\xdf\xb0\xab\xdd\xd9\xfa\x00\xea\x92\x15\
-\x1d[F\x89\xef\x12\xbe\x10=\xb7\x87\xedlO]Z\
-A\xbc\x83(s\xb6\x0d\x13\xe9\x04\xf7\xa9\xf3\xac\x14\x89\
-\x06\x0d\x94s\xf1\xc5\x84K\xf4\xd7\xbb\x5c\xbf \xab\x1f\
-\xab\x1a6L9\xed\xdbW\xb9\xf3\x8a\xa9vg#\xed\
-Y\x0c'e\xb1.\x9do\xc3\xbf\xd3\xa9n\xabK\x82\
-\x17\xa2w\xdf\x12\x07\xd8\xd3\xd9\xe5db\x1eD\x11\x99\
-C\x89O\xc3\x9eD\xa7ds\x11\xec\xd4\x89#-x\
-\xf00\xae\xdbk\xea0~\xea\xa9\xca\xe9\xd5K9M\
-\x9a\xa8d~~d\x17\xc3\xdd\xee\x17\x5c\x0b\x16\xc3\xbf\
-\x8b\x9d\xb2P\x97\x06\x89\x9f\x85\xfd\xef3\x83\x1e\xe7\x88\
-\x19\xfb\xb68\xc4\x8e\xba\xf4\xa1\xd8\x91\xb8\x07Q\xa2\xbe\
-\xf8^\xd8\x93G\xbf\xc2\xb7'[/\x82\x8e\x1eM\x97\
-\x16\xfc\xba\xfa\x0b\xdb\xd9g+g\xe4H\xe5\xb4m[\
-\xa5.*6\x87\xf4\xe3\xedX\x0c_\x14K\xabP\x97\
-\x1a\x89\xef\x87\xfd\xef1%\x88\x87\xd1\x10s\xccw\xec\
-y\x0d\xf9y\xb1\x06\xb1\x0f\xa2\x80\xbe\xd0uo\xd8\x93\
-fL\xb6v\xcek\xd4P\xce\xbcy\x04QL\xab\xbf\
-\xa4\xe9\x1d\xf2\xb1c\x95\xd3\xba\xb5r\x22\xbc;\xee7\
-\xa4\x8f\xb2c1\xfca\x86uI_\xe8\xba/\xec\x7f\
-\xfe\xa9\xec\x9c#f\xb5.\x1dgG]\xfa\x1e\xd1\x0f\
-\xa2\xc0\xea\xb0'\xcb\xf0l\x9d9\xaf_\x9f\x87\x87P\
-9\xdb\xb6)\xe7[\xdfRN\xdf\xbe*U\xbbvN\
-/\x86\x96\xecX\xcd\xcc\xa0.-\x0f\xfb\x9f{\x12;\
-\xe7\x88\x81\xec\xa4\xf7\xb7\xa3.\xcd&\xfe\x81\xcd\xf4\x0b\
-\xfb|\xe7`\xf7r[\x95'~\x9b6\xca\xd9\xbc\x99\
-p\x9a\xa3&\xb7nM?\xfc\xa3_\xe8\xcc\x91]r\
-\xaf\x8b\xa1\x05\x17\xb4\xfe!\xb6\xf7Q\x97\x06\x86]\x97\
-\xc6r!\x141\xd0\xaeS\xdd\xed\xa8K\xed\x88\x81`\
-#\xb5\xc4\xb7\xc3\x9c }\xdc\xcb#U\x9e\xf0={\
-\xa6;o\x10Ts\xcb\xed\xdb\xd3\xa1\xbcK\x97t+\
-M\x16\xbeo\xec\xa2\xd0+\xfc\xc5\xf0\xb9D\xfa\x8d\x05\
-/\xf7a\xf6\x84\xf9\xcf:\x22\x9b]\xa4\x10\xf1\x80\xbe\
-*\x1e\x19~]zZ,\x22\x0e\x82m|7\xcc\x89\
-\xd1\xc3\xfd\x16]\xe5\x89>t(\x97As\xad\xf3\xca\
-\x8a\x15\xfb\xda\x1f&#\xd0\xfa\xd0\xa6\xc5\xb0C\xf8\x8b\
-\xe1\xb6C\xd4\xa4<\xf1\xce0\xff\x19{\xb9\xbf:0\
-f\x10\x83\xf7\x05\xb1u\xf8ui\x1dq\x10l\xe2\x94\
-0'D[70T\xb9S\xcb\x84\x09\x04\xd6\x5c\x09\
-\xe5;v(\xe7\xcc3UJ\x1feba\xcb\xc8\xe7\
-\xc4\xc3\xc2\xefC<\xea uiv\x98u\xa9}6\
-\xea\x12\x22\xfa\xf2\x19\xb1<\xdc\xba\xf4\xb9{\xac\x0e \
-tZ\x88\x7f\x0bk24I\xa4\x9f\x00\xaej8O\
-\x9dv\x1a\xc15\x17\x82\xb9\xbe\xf4;h\x90rJJ\
-X\xcc\xb2\xe0\xe3b\xa3p\x17\xc3?\x8a\xe5\x07\xa8K\
-m\xc4\x8f\xc2\xfa\xe7j)\xbe\xc8\xf8@\x0c\xc5\x07\xc5\
-Z\xe1\xd6\xa5\xbd\xee\xf1:\x80\xd0\xd0\xad\xcb\xee\x0fk\
-\x12T\x17\xef\xaa\xead.(P\xce\xcc\x99\x84\xd78\
-\xab\x1f\x0f\x9a5+\xdd\x16\x91\xc5+\xeb\xea9Xl\
-W\xebE}\xb4%\xb4\x96\x8ae\xe2\xfd\x8c\x0b\xc4P\
-\xbdA,\x08\xb7.\xddHD\x840Y\x10\xd6\xe0\x97\
-o\x06\xea\xea\xaaNb}\x11p\xee\x5c\x02l\x9c/\
-}\x9er\x8aJ6h\xc0\x82\x15\xb0W\x8ay\xe1.\
-\x86\xa7\xecW\x97\xe6\x86\xf5\xcf\xa1\x03\xc1\xf7\x18\x0f\x88\
-V\xb8.\xfc\xf3\xe8'\x12\x13!\x0c\x9a%\xd2\xcfo\
-\x872\xf0/\xa9\xe2\xc4M\x16\x16*\xe7\xac\xb3\x08\xb1\
-q\x0d\xe6'\x9d\xa4\x9cZ\xb5X\xa4\x0c\xba0\xdc\x85\
-\xf0Obc\xb1e\x98u\xe92\xc6\x01\xa2U~+\
-\xdc\xba\xa4;H\xd5\x22.\x82i~\x1e\xd6\xa0\x9f\x9c\
-\x8d\x9d\xf3\xf9\xf3\x09\xb2q\xbc\xf89n\x9crJK\
-Y\x98BP\xbf\x909&\xdc\xc5\xf0\x16\xf1\xd7a\xfd\
-\xe7\xcf`\x0c Z\xa7~\x7f`x\xb8u\xe9\x0a\xe2\
-\x22\x98\xe4\xf4\xb0\x06{\xf7\xaa>D\xa4\xcf\x9c\xb3s\
-\x1e\xaf`\xae{\xd6\xeb`^\xb3&\x0b\x92\x05\x0f\x19\
-u\x0e\xffge\xe3\x0e\xe4!\x22Dk}Ml\x11\
-^}\xf8\x22AW\x170\x84\xbe\x99\xfc\x870\x06z\
-\x03\xb7\x85R\x95Z)N\x99B\xa8\x8d\x93s\xe6(\
-\xa7qc\x16!\x8b|R\xac\x93C\xe1\x5c\xb7\x9a|\
-\x89\xcf\x1d\xd1j\xf5\xc5\xed\x1a\xe1\xd5\x09\xf9\x8e\x90\xa8\
-N|\x84\xa0\xf9a\x18\x03\xbc\xa8\xaa\x1d[t8\x9f\
-:\x95@\x1b\x17\x17-R\xc9f\xcdXx,\xf56\
-\xb10\x07\xc2y\x09\x1d[\x10#\xe3w\xc2\xbd\xcc~\
-9\xf1\x11\x82dxX\x0b\xe1\xa5U\x9d\x9c\xfa\x08\x04\
-\xc16\xfa\xc7Y6nTN\xff\xfe\xca\xc9\xcfg\xc1\
-\xb1\xdc\xc59\x10\xd07\xf39#ri\xd4\x9b\x9f\x8a\
-\xdd\x88\x91\x10\x04\xd5\xc4\xd7\xc3\x18\xd8c\xdc\x0bh\x19\
-O\xca\xa1C\x09\xb7q8g\xae;\xb3T\xaf\xce\x22\
-\x13\x11\xf7\x8aCb\x1c\xce'\xf1\x19#F\xce\xddb\
-\xef\xf0\xea\xc6#\x89\xf4;\x0d\x00YeQ\x18\x03\xba\
-\x8d\xf8fU&d\xaf^\xca\xa9\xac$\xe4F9\x9c\
-\x9f{\xaer\xea\xd7gq\x89\xa0\xbfK\x84\xfe\xd2h\
-`u\xe9->_\xc4H\xfa[\xb1<\xbc\xfaq\x1a\
-q\x12\xb2\x89\xac\xb1\x89\xbf\x85q\xee\xfc\xde\xaaL\xc4\
-v\xed\x94\xa3w^\x09\xb9\xd1\x0c\xe6\x9b6)\xa7{\
-w\x16\x94\x88{K\x22\xfd\xb0X\x5c\xc2y1\xe7\xce\
-\x11#\xef\x0f\xc3;\x8f\xbe[,!VB\xb6\xb8>\
-\x8c\x85peU&`y\xb9r6o&\xe8FQ\
-\xfd\x8b\xc7\xe4\xc9\xca\xa9Q\x83\x85$&.\x8aQ@\
-\xdf\xca\xe7\x89\x18\x0b\xe7\x86WG\xd6\x12+!\x1b\xe8\
-K\x0d\x9f\x9b\x1e\xc0}\xdd3\xac\x19M<\xfdP\xcd\
-\x8a\x15\x04\xdd(\xba~\xbdr\xbave\xf1\x88\x99{\
-\xc4\x1e1\x08\xe7#\xf8,\x11c\xe3\xbbb\x87pj\
-\xc9G\xe2\xe1\xc4K\xa8*\x0f\x98\x1e\xbc\xb5\xc4\xa73\
-\x9dt\xba\xbb\xc7\x82\x05\x04\xdd(:w\xaeJ\x96\x95\
-\xb1p\xc4\xd4G\xdd\xb6\x84Q\x0d\xe7\xf5\xdc\xb3\xab|\
-\x96\x88\xf1\xea\x8f^-\x9c\x9a\xf2\x03\xe2%T\x85\x93\
-\xc3X\x08\xaf\xac\xca\x84\x9b8\x91\xa0\x1b5\xb7mS\
-N\xef\xde,\x169\xe0\xba\x08\x07\xf4\xab\xf8\xfc\x10c\
-\xe9\xaapj\xca\x97b?b&dB\x91\xf8\x96\xe9\
-A{RU&Z\x9f>\x84\xdd\xa8]\x04]\xbc\x98\
-\x0e-9\xa4n\x97: \x82\xe1|\x1c\x9f\x1db\xac\
-\xebR\xffpj\xcb\x13DM\xc8\x849a\xfc\x84\xfc\
-b\xa6\x93\xacI\x93\xf4N,\xa17:N\x9a\xa4\x9c\
-\xa2\x22\x16\x88\x1cS\x1f_\xab\x19\xa1p\xae\xdb\xb1\xbd\
-\xcc\xe7\x86\x18k\x1f\x13\xab\x87Sc\xc6\x107\xc1\x0f\
-\xc5\xe2\x1e\xd3\x03uW\xa6\x93K\x9f[^\xbb\x96\xc0\
-\x1b\x15\xb7lQN\x97.,\x0a\x1cu\x89\x84\xd7\xf0\
-y!\xe6\x84\xcb\xc2\xa91\xcf%x\xbc\x08|0\xdf\
-\xf4 \x1dR\x95\x895g\x0e\xa17*\xae\x5c\xa9\x9c\
-\xa6MY\x0cr\x5c\xdd\xa1\xa9{\x04\xc2\xf9p>+\
-\xc4\x9c\xea6\xd5)\x9cZs2\xb1\x13\xbc\xa0\x1b\xe8\
-;&\x07g\x0d\xf17\x99N\xaa\xc1\x83\x09\xbdQq\
-\xe6L\xe5\x14\x17\xb3\x10\xe0\x7f\xba'\x14Y\x1c\xceK\
-\xab\xd2M\x0a\x11#\xe9\xddb\x81\xf9z\xf3\xa2\x98O\
-\xfc\x84C\xb1\xc8\xf4B\xb8*\xd3\xc9\xa4\x1f#\xda\xbe\
-\x9d\xe0\x1b\x85\x87\x87F\x8dRN^\x1e\x0b\x00~\xc5\
-s,\x0e\xe8\xab\xf9|\x10s\xd2\xb3\xc2\xa99\x93\x89\
-\x9fp0\xca\xc4?\x9a\x1c\x94G\x8a\xefg2\x89\x8a\
-\x8aT\xf2\x92K\x08\xbf\xb6\xbbu\xabr:v\xa4\xe8\
-\xe3\x01}Glna8\xef\x9ai]B\xc4\xc8\xfb\
-\x96\xd8\xc4|\xddyM, \x86\xc27\xb1\xd4\xf4B\
-\xf8\xa3L'\xd1\xf8\xf1\x84_\xdb\xbd\xec2\xce\x9b\xe3\
-!\xbd\xde\xb2p\x9e'\xde\xc5\xe7\x82\x98\xd3V\x86S\
-\x7f\xa6\x11C\xe1\x9b:\xb7\x18={>:\xc3\x89\x93\
-j\xd3F9\x15\x15\x04`\x9b\xfb\x9b\xafX\xa1\x9c\x06\
-\x0d(\xf4\xe8\xc9\x81\x16\x05\xf4\x09|\x1e\x88\xf4F\x17\
-{\x84\xb3\x8b\xceYt\xf8\x1a\xb3L\x0eD\xf96\xa0\
-\x9e\xcc$\x9cW\xaf\xae\x92\xb4T\xb4\xdb\xb9s\xb9\x0c\
-\x8a\xbe|@,\xb4 \x9c\xeb\x0b\xeb\xcf\xf1y \xa2\
-\xf8s1\xdf|\x1d\x1aK\x1c\x85\xfd\xd1=8_6\
-9\x08\xe7g:i&L \x00\xdb\xec\xacY*Y\
-XHqG\xdf\xce\xb0 \xa0/\xe1s@\xc4\xfd\x9c\
-d\xbe\x0e=L$\x85\xfd9\xd1\xe4\x00\xd4/\xf3\xbd\
-\x91\xc9di\xdd:\xdd\x11\x84 l\xef\xcb\xa0tj\
-\xc1\x0c\xd5\xafu\xd6\x0a1\x9c\xebKa\xef\xf29 \
-\xe2~>\xef\xb6\x5c5\x5c\x8fz\x11K\xe1\xdf<h\
-r\xf0m\xc9\xb0k\x8b\xa3\xcf5\x13\x84\xed\xf4\xe4\x93\
-\x09\xe7Xe/\x0a1\xa0o\xe1\xef\x8f\x88\x07\xf0B\
-\xf3\xf5\xe8Vb)hz\x9a\x1cx-\x12\xe9\xd7\xba\
-|O\x92\xd1\xa3\x09\xc1\xb6\xaa?\x1b\x8a8f\xc17\
-\xc5\x86!\x84\xf3\xd6\x99\xd6%D\x8c\xbd\xfa\x17\xffz\
-fk\xd2\xe7bK\xe2)\xdcjr!\xac\xc8d\x82\
-\x94\x97\xab\xd4\xce\x9d\x04a\x1b\x1d;\x96\x02\x8eYu\
-]\x08\x01\xfd\x1a\xfe\xee\x88x\x10\x97\x9b\xafK;\x89\
-\xa7\xb9M3\xf7\x9b\x9a\x91\x01\xd76\x91\xe1\xe3\x1f\xf3\
-\xe6\x11\x84\x09\xe7\x98#\xee\x16\x9b%\xcc>J\x94\xe4\
-\xef\x8e\x88\x89\x83?^d\xf8\xd7\xbd\xbf\x8b\xb5\x89\xa9\
-\xb9\xcbZ\x93\xdf\x08\xaf\xcd\xa4\xadb\xd7\xae\x04a\x1b\
-\xfb\x9c\x8f\x1bG\xd1\xc6\xc0\xdcn\xb0.}\x8f\xbf7\
-\x22\xda\xf9\xeb\xde\xb9\xc4\xd4\xdc\xa4HL\x99\x1ahG\
-e\xb0K\xa5\xdb\xf5\xa5V\xaf&\x10\xdb\xa6nuI\
-\xb1\xc6\x00\xd5\xbf\xb4\xb54P\x97\xba\xf1\xb7FDK\
-\x7f\xdd\x13_ \xaa\xe6&F[+^\x97\xc9\x848\
-\xf6X\xc2\xb0m\x9e~:\xddZ\xd0\x88\x1b\x0d\xd4\xa5\
-\xab\xf9;#\xa2\x0f\xd7\x9b\xdfE?\x86\xb8\x9a{\xdc\
-a\xb2C\xc2^\xbf\x13\xa1F\x0d\xe5l\xdeL \xb6\
-\xc99sT2?\x9f\x22\x8dF|\xcf\xedM\x1eT\
-]j\x97I]B\xc4\x9c\xf6\x1d\xb1\xbe\xd9\x80~5\
-q5\xb78L\xfc\xcc\xd4\x00\xdb\x94\xc9D\x988\x91\
-@l\x91\xc9\x85\x0b\xd3\xbd\xe8)\xd0h\xd0\xcb\x02\xac\
-KW\xf0\xf7E\xc4\x0c\x5cd6\xa0\x7f(\x96\x11[\
-s\x87U\xa6\x06W\xb9\xbb\x13\xe6k\x024h\xa0\x9c\
-]\xbb\x08\xc6\xb6\xb8l\x99r\xaaW\xa70c(\xbb\
-\xe8\xe5\x01\xd4\xa5V\xec\x9e#b\x86\xbe\x920\xfe\xba\
-\xe8\xd9\xc4\xd6\xdc\xa0@|\xdf\xd4\xc0\xba(\x93\x090\
-e\x0a\xa1\xd8\x16\xd7\xadS\xa9:u(\xca\x18\x9a\x17\
-'x5\x14\x11\xedr\x86\xd9\x80\xfe,\xd157\x18\
-ajPU\x17_\xf4;\xf0\xcb\xcb\x95SQA0\
-\xb6\xc1m\xdb\x94s\xc4\x11\x14c\x0c}\xb7\xaa,\x8b\
-u\xa9\x91\xf8.\x7fWD\xac\x82\x8f\x8a\xf9fCz\
-g\xe2k\xfc\xb9\xd1\xd4\x80\x9a\x91\xc9\xc0\x9f6\x8d`\
-lC\x9fs\xf9\x92\x94\xea\xd4\x89B\x8cVxN\x16\
-\xeb\xd2\xa5\xfc=\x111\x0b\x9eh6\xa0o$\xbe\xc6\
-\x9bb\xf1\xaf&\x06S\x9e\xf8\x88\xcf\xc1\x9el\xd4h\
-_0$ [\x10\xd0G\x8e\xa4\x00\xa35>'\x16\
-e\xa1.\xd5\x12_\xe3\xef\x89\x88Y\xf0'f\x03\xfa\
-\x9bD\xd8xs\x92\xa9\xc14$\x83\xc1\x9e\x9c>\x9d\
-plI;Ez\x9d\xa3mN\xcdB]:\x9f\xbf\
-#\x22f\xd1NfCzObl|\xf9\xbe\xa9\x81\
-tU&g\xcf++\x09\xc7a\xbbt)\xed\x14\xd1\
-J\x1f\xa9\xe2\x99\xcfb\xf1\xb7\xfc\x1d\x111\x8b\xae6\
-\x1b\xd07\x11c\xe3I\xa9\xf8\x91\x89A\xd4 \x91~\
-\x12\xd7\xcf O\x9dv\x1a\xe18l\xf5\xc3P\xf5\xeb\
-St\xd1Z\xc7\x9a\xbe\x13\x83\x88x\x10\xf5\x91\xb9\x12\
-s\x01}\x8f\x98G\x9c\x8d\x1f\x13M}\xcb\x9b\xe7\xf7\
-hKY\x99J\xed\xd8A@\x0e\xd3\x8a\x0a\x95\xec\xd0\
-\x81\x82\x8bV{\x9f{\xbf\xc5oM\xd2\xe7\xd7\x9f\xe1\
-\xef\x87\x88\x018\xc1\xec.z?\xe2l\xfc\xb8\xcd\xd4\
-\xe5\xd0G\xfd\x0ep}!\x91\x90\x1c\xae\xe3\xc6Qh\
-1\x12\x0e\xcd\xa0.M\xe4\xef\x86\x88\x01\xf9#\xb3\x01\
-}'q6^\x94\x88\xff01xz\xf9\x1d\xdcE\
-E*\xb5i\x13\x019\xcc\x8e-\x8b\x17\xabd~>\
-\x85\x16#\xe1-\x19l\x1a\xdc\xc7\xdf\x0d\x11\x032)\
-6\xe7\x98\x0bd\xc8\xf1\xa6\xbe\xddm\xf5;\xb8\x07\x0c\
- $\x87\xe9\xd6\xad\xcai\xd0\x80\x22\x8b\x91\xb2\x9b\x8f\
-\x9at,\x7f/D\x0c\xd8\x0b\xcd\xee\xa2\x1fE\xac\x8d\
-\x0f\x15&\x06M\xb5Lz\x0c/[FH\x0eS\xfd\
-\x05\x89\xe2\x8a\x11\xf3z\x1fu\xe9g\xfc\xbd\x101`\
-\x9f\xc8\xf0~L\x86^B\xac\x8d\x0f\xef\x98\x184\xc3\
-\xfd\x0e\xea\x96-\x09\xc8a:s&\x85\x15#\xfb\x93\
-r{\x0f5\xa97\x7f+D\xb4\xf0\x97\xbd*\xfa\x08\
-\xb16\x1e\xb46\xf5\xb3\xcb\x0e\xbf\x03z\xca\x14Br\
-H&\xd7\xaeUNI\x09E\x15#\xeb\x16\x0f5\xe9\
-;\xfc\x9d\x10\xd1\x90\x97\x98\x0b\xe8\x9f\x8a\xb5\x88\xb7\xd1\
-g\x81\x89\x01S]|\xc3\xcf`..VI}\xfe\
-\x99\xb0\x1c\x8e]\xbbRP1\xd2\xea\xb7\x16\x0e?H\
-M\xea\xcc\xdf\x08\x11\x0d\xfa\x8c\xd9c.\x13\x89\xb7\xd1\
-\xe7\x17&\x06\xcb\xf1>\x07rj\xe0@BrXN\
-\x9fN1\xc5X\xb8\xe6 5\xe9\x0a\xfe>\x88h\xd8\
-\x1e\xe6\x02\xfa\xb5\xc4\xdbhSl\xaa\xbdb\xa5\xdf\x81\
-\xac\x9f\x94',\x9bw\xe3F\xe5\x94\x96RH1\x16\
-\xea_\xed\xea\x1c\xa0\x1e\x1d\x9e\xf0\xff\x9a1\x22bU\
-]a.\xa0\xef&\xe2F\x9b\xe1&\x06\x8a~\xa5\xef\
-u?\x83\xb8iS\x82rX\xf6\xe9C\x11\xc5X\xb9\
-\xf0\x005i-\x7f\x17D\x0c\xc1'\xcd\xb6[\xecD\
-\xcc\x8d.\x1bL\x0c\x92~~\x07\xf1I'\x11\x94\xc3\
-\xb8\x18z\xd6Y\x14P\x8c\x9d/\x8a%\xfb\xd5\xa3z\
-\xe2\xdb\xfc]\x101$[\x9b\x0b\xe8\xf3\x89\xb9\xd1\xe5\
-1\x13\x83\xe4R\xbf\xe7\xcfW\xaf&0\x9bv\xfbv\
-\xe5\xd4\xafO\xf1\xc4X:g\xbfz\xb4\x94\xbf\x07\x22\
-\x86\xe8Y\xe6\x02\xfa\xad\xc4\xdchR]\xfc\xc4\xc4 \
-\xf9\xb5\x9f\xc1\xdb\xa2\x05a9\x0cG\x8e\xa4pbl\
-}\xd6=jW\xcb\xefq;D\xc4,{\xb3\xb9\x80\
-\x9e$\xeaF\x93\xbe&\x06H\xe3D\xfa\xd1\x10\xcf\x83\
-w\xc2\x04\xc2\xb2i\xd7\xacQNQ\x11\x85\x13c\xed\
-Dw\xe7\x8a\xbf\x05\x22\x86\xe9;\x89t\xebiC!\
-\xbd9q7z,218N\xf33p\xf3\xf2\x94\
-\xb3n\x1d\x81\xd9\xf4\xd9\xf3\xee\xdd)\x9a\x18{\x1fp\
-w\xd2\xf9[ b\xd8\x1ek.\xa0O&\xeeF\x8f\
-\xdbM\x0c\x8ek\xfc\x0c\xdaV\xad\x08\xcc\xa6]\xb8\x90\
-b\x89\x88\x88h\xd0\xb5\xe6\x02z%q7z\xfc>\
-\xe8\x81Q \xbeF\xf7\x16{\xad\xacT\xa9\x96-)\
-\x96\x88\x88\x88\x06}\xc4\x5c@\x7f\x9e\xb8\x1b-\xda\x99\
-\x18\x18\x9d\xfc\x0e\xdaK.!4\x9b<\xda\xc2\x8b\xa1\
-\x88\x88\x88\xa1Xn&\xa0\x7f!\xd6!\xf6F\x87\xa9\
-&\x02\xfa4?\x83\xb5^=B\xb3AS;w\xaa\
-\x94\xfe\x9bS$\x11\x11\x11\x8d{\xbc\xb9]\xf4\xe1\xc4\
-\xde\xe8\xb0\xcd\xc4\xa0\xb8\xd2\xcf`\x1d0\x80\xe0lr\
-\xf7|\xd2$\x0a$\x22\x22bH\xae2\x17\xd0/\x22\
-\xf6F\x87_\x99\x18\x14O\xfb\x19\xacs\xe6\x10\x9c\x0d\
->J\x94\xaa]\x9b\x02\x89\x88\x88\x18\x92?7\x17\xd0\
-o$\xf6rA\xf4?\x96\xfb\x19\xa8\x85\x85*\xb9u\
-+\xc1\xd9\x94\xe3\xc7S\x1c\x11\x11\x11Ctw\xc2X\
-?t.\x8aF\x84\xc6&\xbe\xb1\x8d\xf53P\xdb\xb6\
-%4\x1b\xdc=O\xd6\xacIqDDD\x0c\xd9\xbe\
-f\x02\xfa\xa7b5\xe2\xaf\xfd\x1cg\x22\xa0\xaf\xf23\
-HO8\x81\xe0l\xca\xb1c)\x8a\x88\x88\x88\x168\
-\xcf\xdc1\x97N\xc4_\xfb1\xf2\x82\xe8m~\x06\xe9\
-\x82\x05\x04gC\xbb\xe7Ni)E\x11\x11\x11\xd1\x02\
-\xaf4\x17\xd0O'\xfe\xda\xcfwM\x0c\x86W<\x0e\
-\xced~~:8\x12\xa0\x83\xf7\xb4\xd3(\x88\x88\x88\
-\x88\x96\xf8\x80\xb9\x80\xbe\x81\xf8k?\xcfXuA\xf4\
-\x88#\x08\xce\x86^\x0du\x1a5\xa2 \x22\x22\x22Z\
-tQ\xb4\xc8L@\xbf\x8b\xf8k?\x7f\x0fz \x0c\
-\xf63@\x87\x0c!<\x9b\xe8{~\xd6Y\x14CD\
-DD\xcb\xech&\xa0\xbfE\xfc\xb5\x9b\x86&~J\
-\x99\xebgp\xce\x9cI\x806\xa1\xee\x94C!DD\
-D\xb4\xca\x93\xcdur) \x06\xdbKo\x13\x01\xbd\
-\xc2\xc7\xc0L\xae]Kx\x0e\xda\x8b/\xa6\x08\x22\x22\
-\x22Z\xe8rs\xe7\xd0\x9b\x13\x83\xed\xe5T\x13\x83\xe0\
-W^\x07\xa6\xee(B\x80\x0e\xde\xbe})\x82\x88\x88\
-\x88\x16\xfa}s\x01}\x101\xd8^\x96\x04=\x00\xf2\
-\xc4\xb7\xbd\x0e\xcc\xf6\xed\x09\xcfA{\xf9\xe5\xca)*\
-\xa2\x08\x22\x22\x22Z\xe8\x93\xe6\x02\xfa4b\xb0\xbd\x5c\
-\x1d\xf4\x00h\xe4g`\x0e\x1dJ\x80\x0e\xfar\xe8\xa4\
-I\x14@DDDK\xddc\xae\x93\xcb*b\xb0\xbd\
-\xdc\x1b\xf4\x00\xe8\xe1g`N\x99B\x88\x0e\xda\xc3\x0e\
-\xa3\x00\x22\x22\x22Zl33\x01\xfd\x06b\xb0\xbd\xbc\
-\x11\xf4\x008\xc9\xc7\x80L-YB\x80\x0e\xd2\x8b.\
-\xa2\xf0!\x22\x22Zn\x7f3\x01\xfd!b\xb0\x9d\xe4\
-\x89\x1f\x07=\x00\xce\xf5: \xf3\xf3Uj\xc7\x0eB\
-t\x90\xf6\xefO\xe1CDD\xb4\xdcS\xcd\x04\xf4\xf7\
-\x88\xc2vR\xd7\xc4%\x84M^\x07\xa4~\xd5\x92\x10\
-\x1d\x9c\xdb\xb7+\xa7\xa4\x84\xc2\x87\x88\x88h\xb9\x8b\xcd\
-\x04\xf4O\x88\xc2v\xd2\xc6D@\xbf\xc9\xeb\x80\xec\xd4\
-\x89\x10\x1d\xa4\xfa\x01(\x8a\x1e\x22\x22\xa2\xf5\xee2\xd7\
-\xc9\xa5\x8c8l\x1f}L|\xf8\x0f{=\x7f>x\
-0!:H\x8f:\x8a\xa2\x87\x88\x88\x18\x01\x7fd.\
-\xa0\xb7 \x0e\xdb\xc7\x89&>\xfc\x97\xbd\x0e\xc8\xf1\xe3\
-\x09\xd1A\xb9u+\xbd\xcf\x11\x11\x11#\xe2\x03\xe6\x02\
-\xfa1\xc4a\xfb\x98\x16\xf4\x07_ \xee\xf5\xba\x83>\
-{6A:(\xa7O\xa7\xe0!\x22\x22F\xc4\xdf\x9a\
-\x0b\xe8#\x89\xc3\xf6\xb1(\xe8\x0f\xbe\x9e\x9f\x01\xb9t\
-)A: S]\xbbR\xf0\x10\x11\x11#\xe2\xeeD\
-\xfa%v\x03\x01\xfd\x0c\xe2\xb0}\xac\x0f\xfa\x83o\xed\
-g@n\xdeL\x98\x0e\xc2-[T\xb2\xb0\x90\x82\x87\
-\x88\x88\x18!k\x99\x09\xe8\x0b\x88\xc3\xf6qu\xd0\x1f\
-|O\xaf\xc7[\xaaW'H\x07\xb5{N\xf7\x16D\
-D\xc4\xc8\xd9\xc2L@_M\x1c\xb6\x8f\xdb\x82\xfe\xe0\
-Gx\x1c\x84Iz\xa0\x07g\xcf\x9e\x14:DD\xc4\
-\x88y\xb4\x99\x80^A\x1c\xb6\x8f_\x04\xfd\xc1\x9f\xea\
-u \xb6lI\x90\x0e\xc2\xcaJ\xe5\x94\x95Q\xe8\x10\
-\x11\x11#\xe603\x01\xfdz\xe2\xb0}\xdc\x17\xf4\x07\
-?\xcb\xeb@\xec\xd2\x850\x1d\x84\x17^H\x91CD\
-D\x8c\xa0c\xcd\x04\xf4\x1f\x10\x87\xed\xe3\xe1\xa0?\xf8\
-y^\x07b\x9f>\x84\xe9 \x1c=\x9a\x22\x87\x88\x88\
-\x18A'\x9a\x09\xe8\xb7\x11\x87\xed\xe37A\x7f\xf0\xe7\
-y\x1d\x88\xc3\x86\x11\xa6\x83\xb8 \xaa\x8f\x0eQ\xe4\x10\
-\x11\x11#\xe7\xe9f\x02\xfa\x9d\xc4a\xfbx>\xe8\x0f\
-~\xb1\xd7\x818v,\x81:\xdb\xea\xb6\x95\xf9\xf9\x14\
-9DD\xc4\x08:\xc3L@\xbf\x978l\x1f/\x07\
-\xfd\xc1/\xf3:\x10O?\x9d@\x9dm\xe7\xcc\xa1\xc0\
-!\x22\x22F\xd49f\x02\xfa\x03\xc4a\xfbx+\xe8\
-\x0f~\x95\xc7A\xb8\xafW7\xa1:\xab&\x8f;\x8e\
-\x02\x87\x88\x88\x18Q\xcf5\x13\xd0\x1f'\x0e\xdb\xc7\x9e\
-\xa0?\xf8u^\x07\xa2\xde\xed%Ts\xfe\x1c\x11\x11\
-\x11\xf7y\x81\x99\x80\xfe\x0cq\xd8>RA\x7f\xf0\x97\
-{\x1d\x88s\xe7\x12\xaa\xb3\xe9\xf6\xed\xca)(\xa0\xc0\
-!\x22\x22F\xd4%f\x02\xfa\x0b\xc4a\xfbp\x82\xfe\
-\xe07{=\xe22\x7f>\xa1:\x9b\xc7[\x16.\xa4\
-\xb8!\x22\x22F\xd8\x0b\xcd\x04\xf4\xdf\x12\x87s\xf0\x88\
-\xcbz\xaf\x03Q\x07J\x82u\xf6\x8e\xb7\x8c\x1bGq\
-CDD\xe4\x88\x0bG\x5c\x22\xc8;A\x7f\xf0k\xbd\
-\x0e\xc4\xc5\x8b\x09\xd6\xd9\x0c\xe8]\xbbR\xdc\x10\x11\x11\
-#\xec\x023\x01\xfd\x09\xe2\xb0}\xbc\x11\xf4\x07\xbf\xd2\
-\xeb@\x5c\xba\x94`\x9dMk\xd7\xa6\xb8!\x22\x22F\
-\xd8yf\x02\xfa#\xc4a\xfbx%\xe8\x0f~\xb9\xd7\
-\x81\xb8l\x19\xa1:\x9b\x0f\x14Q\xd8\x10\x11\x11\xe9\x83\
-\x9e\xa0\x0fz\x14y1\xe8\x0f~);\xe8\xe6=\xef\
-<\x0a\x1b\x22\x22b\xc4\x9di&\xa0\xff\x928l\x1f\
-\xcf\x07\xfd\xc1/\xf6:\x10/\xba\x88`\x9d-O9\
-\x85\xc2\x86\x88\x88\x18q\xcf4\x13\xd0\x7fA\x1c\xb6\x8f\
-\xa7\x83\xfe\xe0/\xf0\xdaf\x91K\xa2\xd9k\xb1\xd8\xaf\
-\x1f\x85\x0d\x11\x111\xe2N6\x13\xd0\xef \x0e\xdb\xc7\
-\xe3A\x7f\xf0s=\x0e\xc2$m\x16\xb3g\x8b\x16\x14\
-6DD\xc4\x88;\xd6L@\xbf\x8d8l\x1f\xbf\x0a\
-\xfa\x83\x9f\xeau \x9e\x7f>\xc1:\x1bVV*\xa7\
-\xb8\x98\xc2\x86\x88\x88\x18q\x8f5\x13\xd0\xaf'\x0e\xdb\
-\xc7O\x82\xfe\xe0'x=\xe2\xc2K\xa2\xd9q\xdd:\
-\x8a\x1a\x22\x22b\x0c\xeci&\xa0\xef$\x0e\xdb\xc7\x8d\
-A\x7f\xf0#\xbc\x06\xf4s\xce!\x5cg\xc3\x0b.\xa0\
-\xa8!\x22\x22\xc6\xc0\x8ef\x02\xfae\xc4a\xfb\xb82\
-\xe8\x0f~\x80\xd7\x80>{6\xe1:\x1bN\x9bFQ\
-CDD\x8c\x81\xcd\xcc\x04\xf4%\xc4a\xfb\xd8\x1c\xf4\
-\x07\x7f\xb4\xd7K\xa2S\xa7\x12\xae\xb3\xe1\xe8\xd1\x145\
-DD\xc4\x18X\xcfL@\x9fK\x1c\xb6\x8f\x15A\x7f\
-\xf0\xed\xbc\x0e\xc4I\x93\x08\xd7\xd9\xb0o_\x8a\x1a\x22\
-\x22b\x0c\xacf&\xa0O%\x0e\xdb\xc7\x05A\x7f\xf0\
-M\xbd\x1eq\x197\x8ep\x9d\x0d\xdb\xb6\xa5\xa8!\x22\
-\x22F\xdcw\xcc\x84s\xed8\xe2\xb0}\xcc\x09\xfa\x83\
-/\xf1:\x18G\x8d\x22\x5cg\xc3\xfa\xf5)l\x88\x88\
-\x88\x11\xf77\xe6\x02\xfa\xb1\xc4a\xfb\x98d\xe2\xc3\x7f\
-\xdb\xcb`\x1c:\x94p\x9d\x8dWD\x0b\x0b)l\x88\
-\x88\x88\x11\xf7\xe7\xe6\x02z7\xe2\xb0}\x0c5\xf1\xe1\
-?\xe5e0\xea\xe7\xe9\x09\xd8Us\xdb6\x8a\x1a\x22\
-\x22b\x0c\xbc\xc1\x5c@oL\x1c\xb6\x8f.&>\xfc\
-\xbb\xbd\x0c\xc6n\xdd\x08\xd8Uu\xcd\x1a\x8a\x1a\x22\x22\
-b\x0c\xdcb&\x9c\x7f!\x16\x10\x87\xed\xa3\xb1\x89\x80\
-\xfe}/\x97D\xdb\xb4!`W\xd5%K(j\x88\
-\x88\x881p\xa9\x99\x80\xfeG\xa2\xb0\x9d\x14\x89_\x06\
-=\x00vy\x19\x8c\xe5\xe5\x04\xec*\x9a:\xf7\x5c\x8a\
-\x1a\x22\x22b\x0c\xfc\x96\x99\x80\xfe\x12Q\xd8^\xfe\x1a\
-\xf4\x00X\xe5e0\x96\x96\x12\xb2\xab\xea\xf4\xe9\x145\
-DD\xc4\x188\xceL@\xff51\xd8^\xde\x08z\
-\x00\xcc\xf32\x18\xf3\xf2\x94SQA\xc8\xae\x8a\xa7\x9c\
-BQCDD\x8c\x81=\xcd\x04\xf4\x9b\x89\xc1\xf6\xf2\
-X\xd0\x03\xe0$\x8f\x831\xb5i\x13!\xbb*\x8e\x19\
-CQCDD\x8c\x81\x8d\xcd\x04\xf4\x9d\xc4`{\xf9\
-i\xd0\x03\xa0\x97\xd7\x01\xb9|9!\xbb*\x1e\x7f<\
-E\x0d\x11\x111\xe2\xee\x16\xf3\xcd\x04\xf4\xa5\xc4`{\
-\xb9\x22\xe8\x01\xd0\xd4\xeb\xa0\x5c\xb0\x80\x90]\x95K\xa2\
-#FP\xd8\x10\x11\x11#\xee\xe3\x09c=\xd0O#\
-\x06\xdb\xcb\xd2\xa0\x07@\x81\xb8\xc7\xcb\xa0\x9c:\x95\xa0\
-]\x15\x8f=\x96\xc2\x86\x88\x88\x18qo5\x17\xd0\xfb\
-\x10\x83\xed\xe5t\x13\x83\xe0\x19/\x83r\xf4hBv\
-Uv\xd0\x07\x0f\xa6\xb0!\x22\x22F\xdcm\xe6\x02z\
-\x13b\xb0\xbd\x0c21\x08\xee\xf20 \x93\xfd\xfa\x11\
-\xb4\xab\xe0\xbe\xbf\x1f\x85\x0d\x11\x111\xd2^`&\x9c\
-\x7f\x22\xe6\x13\x83\xed\xa5\x85\x89\x80~\x95\x97A\xd9\xb1\
-#A\xbb*\xf6\xeeMaCDD\x8c\xb8c\xcd\x04\
-\xf47\x89\xc0v\xa3_\x13\xfd\x22\xe8\x81p\x91\x97A\
-\xd9\xa4\x09!\xbb*G\x5cz\xf6\xa4\xb0!\x22\x22F\
-\xdc\x8ef\x02\xfa}D`\xfb\xd9\x1b\xf4@\x98\xe8a\
-@\xa6\xaaW'h\xb3\x83\x8e\x88\x88\x98\xb3\xbe/\x16\
-\x9b\x09\xe8\xd7\x11\x7f\xed\xe7\xf1\xa0\x07Bw\xaf\x83s\
-\xe3F\x826g\xd0\x11\x11\x11i\xb1\x18\xac\x97\x10\x7f\
-\xed\xe7\x07A\x0f\x84\xda^\x07\xe7\x05\x17\x10\xb63u\
-\xd0 \x8a\x1b\x22\x22b\x84\xbd\xc1\x5c@?\x99\xf8k\
-?+L\x0c\x86\x17\xbc\x0c\xce3\xce hg\xea\xd0\
-\xa1\x147DD\xc4\x08\xbb\xdc\x5c@\xefH\xfc\xb5\x9f\
-\xc9&\x06\xc3\x1d^\xce\xa1\xeb\xd70\x09\xdb\x99\x1dq\
-9\xee8\x8a\x1b\x22\x22b\x84=\xcdL8\xffL\xac\
-F\xfc\xb5\x9f\x1e&\x02\xfav/\x83\xb3[7\xc2v\
-\xa6\x8e\x1cIqCDD\x8c\xb0\x9d\xcd\x04\xf4\xd7\x88\
-\xbe\xd1\xa0\xa6\xf8e\xd0\x03\xe2,/;\xe8\xb4Z\xcc\
-\xdcq\xe3(n\x88\x88\x88\x11u\xb7Xd&\xa0\xff\
-\x84\xe8K\xab\xc5\xff8\xc0\xcb\x00-*RNE\x05\
-a;\x93>\xe8\x93'S\xe0\x10\x11\x11#\xea\xdd\xe6\
-\xce\x9f\xaf#\xf6F\x87\x07\x83\x1e\x10\xf5\xbc\x0e\xd2\xe5\
-\xcb\x09\xdc\x998k\x16\x05\x0e\x11\x111\xa2n1\x17\
-\xd0\xcf$\xf6F\x87kL\x0c\x8a\xe7\xbc\x0c\xd2\x193\
-\x08\xdb\x998\x7f>\x05\x0e\x11\x111\xa2N3\x17\xd0\
-\x8f&\xf6F\x87\x85&\x06\xc5\x8dtr\x09\xce%K\
-(p\x88\x88\x88\x11\xb5\xbb\x99p\xfe\x09\x1d\x5c\xa2\xc5\
-\xb1&\x02\xfa\xc5^\x06i\xc7\x8e\x84\xedL\x5c\xbd\x9a\
-\x02\x87\x88\x88\x18\xd1\x0b\xa2\xd5\xcd\x04\xf4g\x88\xbc\xd1\
-\xa2\xbe\x89\x80>\xd6\xcb@\xad]\x9b\xb0\x9d\x89[\xb6\
-P\xe4\x10\x11\x11#\xe8\xcf\xcd\x1do\xb9\x86\xc8\x1b=\
-\xf6\x04=0Zy\x1c\xa8\xa9\x8d\x1b\x09\xdc\x99tr\
-\xa9^\x9dB\x87\x88\x88\x181W\x99\x0b\xe8s\x89\xbb\
-\xd1\xe3\xae\xa0\x07F\x9e\xf8\xb2\x97\x80~\xee\xb9\x04\xee\
-L,/\xa7\xd0!\x22\x22F\xcc\xd1\xe6\x02zo\xe2\
-n\xf4\xb8\xcc\xc4\xe0\xf8\x9e\x97\xc1z\xc2\x09\x84\xedL\
-l\xdf\x9eB\x87\x88\x88\x181\x1b\x99\x09\xe7\x9f\x89%\
-\xc4\xdd\xe81\xd1D@?\x8f\x8b\xa2\xc1\xd9\xbb7\x85\
-\x0e\x11\x111B>nn\xf7\xfc\x05\xa2n4ik\
-b\x80xzQ\xb4\xa4D9\x95\x95\x04n\xbfg\xd0\
-G\x8e\xa4\xd8!\x22\x22F\xc8\x1d\xe6\x02\xfauD\xdd\
-h\x92'\xfe%\xe8\x01R&\xbe\xefe\xd0\xaeXA\
-\xe8\xf6\xeb\xa4I\x14;DD\xc4\x08y\x9a\xb9\x80>\
-\x93\xa8\x1b]\xee11H\xee\xf32h\xa7L!p\
-\xfb\xddA?\xe7\x1c\x8a\x1d\x22\x22b\x84<\xcc\x5c@\
-oG\xcc\x8d.\xabL\x0c\x92\xf5^\x06\xed\xc0\x81\x84\
-n\xbf\xaeZE\xb1CDD\x8c\x88\x8f\x98\x0b\xe7\x7f\
-pOJ@D\x19eb\xa0\x9c\xe8e\xe0\xea\x96\x81\
-\x84n\x7fVT\xa8da!E\x0f\x11\x111\x02\xae\
-3\x17\xd0\x7fL\xc4\x8d6u\xc5/\x83\x1e(\xf2\x1f\
-\xa2\xf6z\x19\xbc\xeb\xd6\x11\xba\xe9\x85\x8e\x88\x88\x18K\
-G\x9a\x0b\xe8\x17\x10q\xa3\xcf\xcb&\x06\xcb=^\x06\
-\xef\xb4i\x04n\xbf\xe7\xd0\xbbv\xa5\xe8!\x22\x22Z\
-\xeen\xb7q\x86\xa1\x80~\x0c\xf16\xfa\x5cob\xb0\
-\xac\xf02\x80\xfb\xf6%t\xfbu\xd80\x0a\x1f\x22\x22\
-\xa2\xe5\xdea.\x9c\xffC,\x22\xdeF\x9f9&\x06\
-\xcc0/\x03\xb8A\x03\x02\xb7_O?\x9d\xc2\x87\x88\
-\x88h\xb9\xe7\x99\x0b\xe8w\x13m\xe3\xc1\x91&\x06L\
-\xa9\xfb\xf3\xce\xa1\x06pj\xf5jB\xb7\x1f/\xba\x88\
-\xc2\x87\x88\x88h\xb9\x1d8\x7f\x0e>\xd1mxR&\
-\x06\xcd\x8f\xbd\x0c\xe2\xc9\x93\x09\xdd~\xdc\xbe]9y\
-y\x14?DDDK}\xdc\x5c8\xd7v&\xda\xc6\
-\x87\x1f\x98\x184\xf3\xbc\x0c\xe4\xce\x9d\x09\xddtrA\
-DD\x8c\x8d\xab\xcc\x85\xf3$\xfd\xcf\xe3\xc5\x0c\x13\x03\
-\xa7\x8d\x97\x81\x5cT\x94\xde\x15&x{6\xd9\xbd;\
-\x05\x10\x11\x11\xd1R{\x99\x0b\xe8\xd7\x13i\xe3EK\
-S?\xbd\xfc\xc6\xcb`\x9e7\x8f\xe0\xed\xc7\xb1c)\
-\x80\x88\x88\x88\x16\xfa\xb2X`.\xa0\x9fA\xa4\x8d\x1f\
-o\x9b\x18<\xeb\xbc\x0c\xe8!C\x08\xdd~<\xfbl\
-\x8a \x22\x22\xa2\x85n7\x17\xce\xf5\xc3\x93\xe5\xc4\xd9\
-\xf8\xf1?\xb6\xb4[L\xd5\xabG\xe8\xf6\xe3\xc6\x8d\x14\
-ADDD\x0b\x1dd.\xa0?G\x94\x8d'\x93M\
-\x0c\xa0\xea\xe2\x9b^\x06\xf5\xf2\xe5\x04o?\xd6\xafO\
-!DDD\xb4\xc8\xdf\x89\x85\xe6\x02\xfaJ\xa2l<\
-\xa9'~nb\x10Uz\x19\xd8\xc7\x1fO\xe8\xf6a\
-\xaagO\x8a!\x22\x22\xa2E\xae5\xdb^\xb1\x0bQ\
-6\xbe<ab\x10\x8d\xf60\xa8\x93\x8d\x1a\x11\xbc\xfd\
-8i\x12\xc5\x10\x11\x11\xd1\x22{\x9a\x0b\xe7\xef\x12a\
-\xe3\xcd\xc5&\x06R\xb1\xf8\xba\x97\xc1}\xc9%\x04o\
-\xaf;\xe8K\x96P\x0c\x11\x11\x11-\xf1I1\xcf\x5c\
-@\xdfJ\x84\x8d7G\x99\xfa)\xe6j\x8e\xb9d\xd7\
-]\xbbT\xaaZ5\x8a\x22\x22\x22\xa2\x05.7{\xbc\
-e\x08\x116\xde\xe8\xd7\xa7\xde71\x98\xc6z\x19\xe0\
-M\x9a\x10\xbc\xfd\xd8\xba5E\x11\x11\x11\xd1\x02;\x9a\
-\x0b\xe7\xff+\x16\x12a\xe3\xcf\xd5&\x06T\x0d\xf1m\
-/g\xd19\xe6\xe2\xddQ\xa3(\x8a\x88\x88\x88!\xfb\
-\x0b\xb3\xbb\xe7\xdf!\xba\xe6\x06cM\x0d\xaa\xab\xbc\x0c\
-\xf4a\xc3\x08\xde^]\xb0\x80\xc2\x88\x88\x88\x18\xb2g\
-\x9a\x0d\xe8#\x89\xae\xb9A\x89\xf8w\x13\x83\xea8/\
-\x03\xbdf\xcd}\xe7\xab\x09\xe0\x1e\xdc\xb1C9EE\
-\x14GDD\xc4\x90\xd4\xa7\x03j\x99\x0b\xe7\x7f\xe4x\
-Knq\xb3\x89\x81\xa5\x9b\xf7\xff\xd6\xcb\x80\x9f;\x97\
-\xf0\xed\xd56m(\x90\x88\x88\x88!\xb9\xcb\xec\xee\xf9\
-\x15D\xd6\xdc\xe2$S\x83k\xb9\x97\x01\xdf\xbd;\xc1\
-\xdb\xab'\x9c@\x81DDD\x0c\xc9^f\x03z_\
-\x22knQC\xfc\x87\x89\xc1\xd5\xd1\xcb\x80\xd7\xc76\
-.\xbf\x9c\xf0\xed\xc5\xf3\xce\xa3@\x22\x22\x22\x86\xe0#\
-\x09\xa3\xbd\xcf\xf7\x88\xf9D\xd6\xdc\xe3\x87\xa6\xbe\x01\xde\
-\xe3e\xe0O\x9eL\xf8\xf6\xf2`\x11\xe7\xd0\x11\x11\x11\
-Cq\x9a\xd9\xdd\xf3\x8dD\xd5\xdcd\xa2\xa9A\xf6-\
-/\x03\xff\xb0\xc3\x08\xe0^\xed\xd4\x89B\x89\x88\x88h\
-\xd07\xc4\x9af\x03zw\xa2*\xc7\x5c\x02\xb5\xb6\xf8\
-\x8e\x97\x09\xb0h\x11\xe1\xdb\x8b\x93&Q,\x11\x11\x11\
-\x0d\xba\xcel8\xff\x1d15\xb7\xb9\xc9\xd4`\xdb\xee\
-e\x02\xf4\xeaE\xf8\xf6\xe2\x9a5\x14KDDDC\
-&\xc5\xd6f\x03\xfa\x02\x22jns\x82\xa9\xc1v\xb4\
-\x97\x09PX\xa8R\x9b6\x11\xc0\xbd\xd8\xa8\x11E\x13\
-\x11\x11\xd1\x80?4\x1b\xce?\x11\xeb\x13Qs\x1b\xdd\
-\xfc>e\xd5e\xd1\xf1\xe3\x09\xdf^\x1c2\x84\xa2\x89\
-\x88\x88h\xc0af\x03\xfa\xcd\xc4S\xd0l15\xe8\
-N\xf72\x11\xf4\xcepe%\x01\xfcP\xce\x9bG\xd1\
-DDD\x0c\xd8\xfb\xcd\xb6V\xd4\x0e'\x9a\x82\xa6\xab\
-\xa9AWC|\xcd\xcb\x84\x98=\x9b\x00~\xa8v\x8b\
-;w*\xa7zu\x8a'\x22\x22b\x80\x9el6\x9c\
-\xbf\x97\xa0\xf79\xec\xc7s\xa6\x06\xdfj/\x13\xa2U\
-+B\xb8\x07\x93\xfa\x05V\x8a'\x22\x22b \xfeF\
-,4\x1b\xd0W\x12Ia\x7f\xce75\xf8\x8e\x10\xf7\
-x\x99\x18\x8b\x17\x13\xc2\x0f\xe5\x8c\x19\x14PDD\xc4\
-\x80\x9ci6\x9c\xffKlL$\x85\xfdi$~f\
-j\x10^\xe5\xa5\xa3\x8b\xde\x1d&\x84\x1f\xdc-[\x94\
-SXH\x11EDD\xcc\xb2/\x8a%f\x03\xfa\xf7\
-\x89\xa3p ~jj\x10v\xf729\x0a\x0a\x94s\
-\xd9e\x84\xf0C\x1ds\xe9\xd0\x81B\x8a\x88\x88\x98e\
-\x17\x9a\x0d\xe7\xda>DQ8\x10\xa3L\x0e\xc4;\xbc\
-L\x90\xc1\x83\x09\xe1\x87r\xf2d\x0a)\x22\x22b\x16\
-\xd5\x0d-j\x99\x0d\xe7O\x11C\xe1\x9b\xd0\xb7\x86\xdf\
-25\x18\x8f\xf70AR\xd5\xaa\xf1p\xd1\xa1\xba\xb9\
-\xac_\xaf\x9c\xbc<\x0a*\x22\x22btw\xcf\xa7\x12\
-C\xe1`\x5cdj0\x16\x88\x8fy9\x8b~\xdcq\
-\x04\xf1C\xd9\xae\x1d\x05\x15\x11\x111\x0b\xbe,\xd64\
-\x1b\xce\xff \x16\x13A\xe1`4H\xa4\x9f\x9852\
-(O\xf52Y\xd8E?\xf4.:\xc7\x5c\x10\x11\x11\
-\xb3\xe2|\xf3\xbb\xe7k\x89\x9f\xe0\x85\x1bM\x0d\xca\x22\
-\xf1I/\x13\xe6\xf8\xe3\x09\xe2\x07S\x7f\x81\xd1\x97j\
-)\xac\x88\x88\x88U\xea\xdcRj6\x9c\xebM\xd1&\
-DO\xf0B?\x93\xdf\x1c\xa7z\x994\xa5\xa5*\xb9\
-u+A\xfc`v\xecHqEDD\xac\x82s\xcd\
-\xef\x9e_M\xec\x04?<j\xdd.\xfa\xa8Q\x84\xf0\
-\x83\xb5[\x9c:\x95\xe2\x8a\x88\x88\x98\xa1O\xb8\x99\xc4\
-`8\xd7\xef\xcf\xb4$r\x82\x1fN5\xf9\x0dr\x86\
-\xd7\xb3\xe8\x1b7\x12\xc6\xbfI\xfd\x0bCQ\x11E\x16\
-\x11\x111\x03O5\xbf{~+q\x13\xfcR(\xee\
-65H\x8b\xc5\xe7\xbcL :\xba\x1c\xdc\xae])\
-\xb2\x88\x88\x88>\xbd\xdf\xed.g8\xa0\xf7 nB\
-&\x9cor\xa0N\xf62\x89\xf4\xb3\xf6k\xd6\x10\xc4\
-\xbf\xc9\xb3\xce\xa2\xd0\x22\x22\x22\xfa\xb4\xbf\xf9p\xfe\x0b\
-b&dJm\xf1C\x93g\xd1\x1f\xf72\x91\xfa\xf6\
-%\x88\x7fS\xbb\xc5\x8a\x0a\x95\xacY\x93b\x8b\x88\x88\
-\xe8\xd1[\xcd\x87s\xedq\xc4L\xa8\x0a;L\x0e\xd8\
-\x09^&\x93n'\xb8b\x05\x81\xfc\x9b\x1c<\x98\x82\
-\x8b\x88\x88\xe8\xc1\xa4\xd8\xd5|8\x7f\x8ax\x09U\xa5\
-\x95{\xcb\xd8\xc8\xa0\xcdw\xcf\x81\x1djB\xa5:u\
-\x22\x88\x7f\x93\x17_L\xd1EDD\xf4\xe0\x15\xe1\xec\
-\x9e\x9f@\xbc\x84lp\x83\xc9\x81;\xd2\xe3\xa4J\x9d\
-{.a\xfc\x9b<\xec0\x0a/\x22\x22\xe2A|K\
-lb>\x9c?I\xac\x84l\xd1A\xfc\xc2\xe4\x00\xbe\
-\xc3\xcb\xe4j\xdcx\xdf\x99k\x02\xf9\x01<\xf9d\x8a\
-/\x22\x22\xe2A<?\x9c\xdd\xf3Q\xc4J\xc8&\xdf\
-79\x80;\x89{\xbdL\xb0)S\x08\xe3\x07\xba,\
-\xbaaC\xfa\xac>\x05\x18\x11\x11\xf1k>\x9a0\xfe\
-(\x91\xf6A\xe2$d\x9b\x8e\xa6w\xd1\xb7{9\xe6\
-R\xbb\xb6r\xb6m#\x94\x1f\xe8e\xd1\xa3\x8e\xa2\x08\
-#\x22\x22\x1e\xc0\x11\xe1\xec\x9e\x0f%NB\x10\xdca\
-r \xebsao{\x99hC\x87\x12\xc8\x0f\xe4\x82\
-\x05\x14aDDD;\xda*>L\x8c\x84\xa08J\
-\xfc\xd2\xe4\x80>\xdf\xcbd\xcb\xcfOw.!\x94\x7f\
-\xd5\xcaJ\x95l\xd4\x88b\x8c\x88\x88\xb8\xdf\xc5\xd0\xc3\
-\xcd\x87\xf3/\xdc\x0c\x05\x10\x18w\x9b\x1c\xd45\xc4\xe7\
-\xbcL\xbaV\xad\xf6\x05R\x82\xf9\xff;\x8b>~<\
-\x05\x19\x11\x11\xd1\xf5\x82pv\xcfo#>B\xd0\xf4\
-0\xbd\x8b>\xc9\xeb\xc4\x9b:\x95P\xfe\xff\xdd\xb4I\
-%\x0b\x0b)\xca\x88\x88\x98\xf3>,V3\x1f\xce?\
-\x15\xdb\x12\x1f\xc1\x047\x99\xfe\xf6y\x9b\x97\xc9W\xab\
-\x96r\xb6l!\x94\xff\x7f\xbbw\xa70#\x22bN\
-\xab;\xc3u\x0fg\xf7|;\xb1\x11L\xd1\xd6\xfdF\
-hl\x80\xb7\x13w{\x99\x84\x83\x06\x11\xc8\xff\xbf\xe7\
-\x9dGqFD\xc4\x9cvc8\xe1\xfc\xcfb]b\
-#\x98\xe4;\xa6\x07\xfae^&a^\x9er\xe6\xcf\
-'\x94\xf3\xb2(\x22\x22\xe2>_\x10\xeb\x86\x13\xd0\x97\
-\x13\x17\xc14-\xc4\x7f\x99\x1c\xe8\xb5\xc4\xdfy\x99\x8c\
-\x8d\x1a\xa9\xd4\x8e\x1d\x84\xf2\xfd=\xe3\x0c\x8a4\x22\x22\
-\xe6\xa4'\x86\x13\xce\xf7\x8a\xa5\xc4E\x08\x83]\xa6\x07\
-\xfc)^'\xe4\x88\x11\x84\xf2\xfd\xbb\xb9\xe8/,\xa5\
-\xa5\x14jDD\xcc)\xaf\x0e'\x9ckO'&B\
-X4\x12?0=\xe8o\xf60!\x93\xba7\xfa\x92\
-%\x84\xf3\xfdC\xba\xfe\xd2B\xb1FD\xc4\x1c\xf1%\
-\xb1A8\xe1\xfc\x111\x8f\x98\x08a\xb2\xd8\xf4\xc0?\
-L|\xc3\xcb\xe4l\xde\x5c\xa5**\x08\xe7\xffv\xf5\
-\xea\xf4\x19}\x8a6\x22\x22\xe6\x80#\xc2\x09\xe7\xba\x89\
-\xc6\x91\xc4C\x08\x9b\xea\xe2{\xa6'\xc0\x5c\xaf\x13t\
-\xcc\x18\x82\xf9\xfe\xbb\xe8]\xbbR\xb4\x11\x111\xf6^\
-\x1f\xde\xd1\x96+\x89\x86`\x0b\x93MO\x80B\xf1^\
-\xafG].\xba\x88p\xee\x9a\x5c\xb8\x90\xc2\x8d\x88\x88\
-\xb1\xf6E\xb1Qxm\x15\xeb\x13\x0b\xc1\x16\xf49\xab\
-'MO\x84.\xe2\x1e/\x93\xb5qc\xe5\xd0\xd5\xe5\
-\xbf\xb6hA\x01GD\xc4\xd8:*\xbc\xdd\xf3yD\
-B\xb0\x8d\xfe\xe2\x97\xa6'\xc3R\xaf\x13v\xf8p\x82\
-\xf9\xbf\x8f\xb9\xcc\x9cI\x01GD\xc4X\xba-\xbcp\
-\xfe\x94X@\x1c\x04\x1b\xb9\xd9\xf4\x84(\x12\x7f\xe5\xf1\
-\xa8K\xea\xc2\x0b\x09\xe8\xda]\xbb\x94S\xa7\x0e\x85\x1c\
-\x11\x11c\xe5\x13bY8\xe1\xfcs\xb1;1\x10l\
-\xa5\x5c\xfc\xab\xe9\x89\xd1F|\xc7\xcb\xe4\xad[W9\
-\x9b7\x13\xd0\xb5\x13&P\xcc\x11\x1116\xee\x16\xbb\
-\x86\xb7{\xbe\x99\x08\x08\xb6\xb38\x8c\xc91\xdf\xeb$\
->\xfah\xc2\xb9\xbe,\xbau\xabrJJ(\xea\x88\
-\x88\x18\x0b/\x0e/\x9c\xeb\x17Ck\x12\xff\xc0v\xf4\
-\xf9\xab\xdf\x9a\x9e \xf9\xe2\x8f=N\xe2}g\xb0\x09\
-\xe9\xca\x19:\x94\xa2\x8e\x88\x88\x91\xf7.\xb7\xbb[H\
-\x01\xfdx\xa2\x1fD\x85\xa1aL\x92\xd6\xe2\xdb^&\
-sq\xb1J\xad\x5c\xc9e\xd1\x0d\x1b\x94STDq\
-GD\xc4\xc8\xaa\x1f.l\x19^8\xff\x19\x91\x0f\xa2\
-\xc6\x0f\xc3\x98,g{\x9d\xd4\xadZ\xf1\xca\xa8>\xea\
-\xd2\xaf\x1f\x05\x1e\x11\x11#\xeb\xc4\xf0\xc2\xf9\x07b3\
-\xe2\x1eD\x8d\xa6\xe2\x87a\x1cu\xb9\xcd\xeb\xc4\x1e2\
-\x84\x80\xbev\xadr\x0a\x0b)\xf2\x88\x88\x189w\x86\
-\x17\xce\xb5g\x11\xf5 \xaa,\x0ac\xd24\x11_\xf1\
-:\xc1\xa7M\xe3,z\xdf\xbe\x14zDD\x8c\x94\x8f\
-\x8a\xa5\xe1\x85\xf3\xfb\x12\xe9G\x1a\x01\x22I\xa1\xf8L\
-\x18\x93g\xb4\xd7I^\x5c\xac\x9c\xe5\xcbs\xfb,\xfa\
-\xea\xd5\xfb\xfa\xc4S\xf0\x11\x111\x0a\xea\xfbfG\x86\
-\x17\xce\xff.\xb6$\xe2A\xd4\xe9 ~\x12\xc6$Z\
-\xefu\xb2\x97\x97+G\xb7\x1d\xcc\xe5]\xf4c\x8e\xa1\
-\xe8#\x22b$\x1c\x1b\xee\xd1\x96\xd9D;\x88\x0b\xeb\
-\xc2\x98D5\xc4\x87\xbdN\xf8\x1e=r;\xa0\xeb_\
-\x11\xf2\xf2(\xfc\x88\x88h\xb5\x97\x87\x1b\xce\x1f\x14\xf3\
-\x89u\x10\x17\xaa\x8b\xaf\x851\x99:xm\xbd\xa8\x9d\
-4)\xb7Cz\xb7n\x14\x7fDD\xb4\xd6{\xc5\xe2\
-p\x8f\xb6\xb4&\xd2A\xdc\x18(~\x11\xc6\xa4:\xd5\
-\xeb\xe4/(P\xce\xa2E\xb9\x1b\xd0\x97.e\x17\x1d\
-\x11\x11\xad\xf4U\xb1Y\xb8\xbb\xe7\xb3\x88r\x10W\xae\
-\x08kb\xed\xf4Z\x04\xea\xd6U\xa9M\x9br\xf7\xc2\
-h\xa7N,\x04\x88\x88h\x95Iqx\xb8\xe1\xfc\xa7\
-D8\x883e\xe2\xdba\x9dG\x7f\xd0k1h\xdf\
-^9\xb9\xfa\x88\xd1\xe2\xc5,\x06\x88\x88h\x95\x8b\xc3\
-\x0d\xe7\xbf\x17\x1b\x12\xe1 \xee\x0c\x0e\xeb\xa8K{?\
-\xe7\xd1\xc7\x8c\xc9\xdd]\xf46mX\x10\x10\x11\xd1\x0a\
-\xbf\x9bH?B\x18b@?\x91\xe8\x06\xb9\xc2\xce\xb0\
-&\xda\x04\xafE!/O%\xa7O\xcf\xcd\x90\xbe`\
-\x01\x8b\x02\x22\x22\x86\xeeCb\xcdp\xc3\xf9\xd5D6\
-\xc8%j\x88o\x845\xe1\xd6x-\x0e\xd5\xaa)\xe7\
-\xe2\x8bss\x17\xbdeK\x16\x07DD\x0c\xcd\xd7\xc4\
-\xd6\xe1\x86\xf3\xb7\xc4R\x22\x1b\xe4\x1a\xfd\xc3:\xeaR\
-$\xfe\xc4k\x91\xa8UK9\x97]\x96{!\xfd\x82\
-\x0bX \x10\x111\x14\xf7\x8a\xc7\x85\x1b\xce\xff%\xf6\
-$\xaaA\xae\xb2)\xac\xc9\xd7H|\xdek\xb18\xfc\
-p\xe5l\xdfNG\x17DDD\x03.\x087\x9ck\
-\x17\x13\xd1 \x97\xd1\xafq=\x10\xd6\x04\xec$\xbe\xe3\
-\xb5`\xe8G|*+s+\xa4/[F_tD\
-D4\xea\xc6\xf0\xc3\xf9O\xc4<\x22\x1a\xe4:\xfaU\
-\xae\x0f\xc3\x9a\x883|\x14\x8d\xd4\xc8\x91\xb9w\xd4\xa5\
-G\x0f\x16\x0cDD4\xa2>~Z-\xdcp.\xff\
-\x18\x89FD3\x804g\x86\xf9my\x87\x9f\x90~\
-\xc6\x19\xb9\x15\xd0W\xaeL\xbf\xb0\xca\xc2\x81\x88\x88\x01\
-\xfa\xb8X/\xdcp\xae\xef\xc5\x0d#\x92\x01|\x95\x9b\
-\xc2\x9a\x94\xfa\xdb\xfaO\xbd\x16\x11\x1dV\xcf??\xb7\
-B\xfa\x80\x01,\x1e\x88\x88\x18\x98\xaf\x84\xdf\xb1E\xbb\
-\x9e(\x06\xf0u\xea\x88\xef\x8551\xeb\x8bOz-\
-&\xa5\xa5*\xb5zu\xee\x5c\x16]\xbf^\xa5t\xcb\
-I\x16\x11DD\xcc\xb2\xbb\xc5\xfe\xe1\x87\xf3\x87\xc4B\
-\xa2\x18\xc0\x81\x19 ~\x1e\xd6\x04\xd5/\x8d\xbe\xee\xa3\
-\xb3Kr\xeb\xd6\xdc\xd9E\x1f:\x94\x85\x04\x11\x11\xb3\
-\xee\xa9\xe1\x87\xf3\x94\xd8\x84\x08\x06pp\x96\x879Q\
-\xfb\xb8\xdf\xe6=\x15\x966m\x94\xb3cGn\x04\xf4\
-\xcb/WN\x8d\x1a,&\x88\x88\x985\x17\x85\x1f\xce\
-u\xbf\xf3\xdeD/\x80CS \xfe:\xcc\x09;\xcb\
-\xcf\xa5\xd1\xae]U\xaa\xa2\x227B\xfa\x981,(\
-\x88\x88\x98\x15\xaf\x11\xf3\xc3\x0f\xe8\x17\x11\xbb\x00\xbc\xd3\
-P\xdc\x1b\xe6\xa4]\xe3\xa7\xd0\xe8K\x94\xb9\x10\xd0\xb7\
-oW\xc9\x9a5YX\x10\x11\xb1J\xde\x96H\xbf\xea\
-\x1dr8\xbf\x91\xb8\x05\xe0\x9f\xe3\x12\xe9\x96G\xa1L\
-\x5c]8n\xf1SpN8!7B\xfa)\xa7\xb0\
-\xb8 \x22b\xc6>\x95H\xbf\xe6\x1dr8\x7fS\xac\
-M\xd4\x02\xc8\x8c\xd5aN`\x99\xb9\xea\x11?\x85G\
-\x87\xd7\xb8\x07\xf4\x9d;\x95\xd3\xa0\x01\x8b\x0c\x22\x22\xfa\
-\xf65\xb1C\xf8\xe1\x5c?\x8e\xd8\x89\x88\x05P\xb5\xf3\
-\xe8\xf7\x879\x91[\xba\xfdY\xbd\x14\x9ed~\xber\
-\xe6\xce\x8d\x7fH\x9f:\x95\x85\x06\x11\x11}\xf9\x8e\xd8\
-;\xfcp\xfe\xa58\x9ex\x05Pu\x1a$B\xec\x8f\
-\xae\xed'\xbe\xeb\xb5\x08\x15\x16*g\xfe\xfcx\x07\xf4\
-\xcaJ\xe5\xb4j\xc5\x82\x83\x88\x88\x9e\xdc#\x0e\x0f?\
-\x9c+\xf7\x97y\x00\xc8\x12=\xc4\x8f\xc3\x9c\xd4'\x88\
-\xef{-F\xd5\xab+\xe7\xe2\x8b\xe3\x1d\xd2\x17/V\
-N^\x1e\x0b\x0f\x22\x22\x1e\xfc\xd7eq\x92\x1d\xe1\xfc\
-\x0e1\x9fH\x05\x90]&\x87=\xb9Ov\x0b\x8d\xa7\
-\xa2T\xbb\xb6r\xd6\xac\x89uHOv\xef\xce\xe2\x83\
-\x88\x88\x07u\x9a\x1d\xe1\xfc\x05\xb1\x8c(\x05\x10\x0cW\
-\x85=\xc9\x17\xf9\xe9\x91\xde\xa4\x89Jm\xda\x14\xdf\x90\
-\xbejU\xfaH\x0f\x0b\x10\x22\x22\x1e\xc0\xe5v\x84\xf3\
-\xbf\x88\xed\x89P\x00\xc1Q(>\x14\xf6d_\xe5\xa7\
-@\x95\x97\xab\xd4\xc6\x8d\xf1\x0d\xe9#F\xb0\x08!\x22\
-\xe2\xd7\x5ccG8\xd7\xc7c\xfb\x13\x9f\x00\x82\xe7p\
-\xf1\x0faN\xf8\x02\xf1:?\x85\xea\xb0\xc3\x94\xb3y\
-s<\x8f\xb9l\xdd\xaa\x9cZ\xb5X\x8c\x10\x11\xf1?\
-^/\x16\xda\x11\xd0g\x10\x9b\x00\xcc1D\xfcW\x98\
-\x93\xbeX\xfc\x89\x9f\x82u\xc4\x11\xca\xb9\xfc\xf2x\xee\
-\xa2O\x9e\xcc\x82\x84\x88\x88\xfb\xfc\xb1\xbbFZ\x10\xce\
-7\x10\x97\x00\xcc3)\x91\xeeg\x1a\xda\xe4/\x13\xef\
-\xf5S\xb8Z\xb6T\xce\xb6m\xf1\x0b\xe8\x15\x15\xcai\
-\xda\x94\x85\x09\x111\xc7\xbdS,\xb1#\x9c\x7fO\xcc\
-#*\x01\x84\xc3\xba\xb0\x8b@}\xf1Q?\x05\xac}\
-{\x95\xda\xb1#~!}\xc1\x02\x16'D\xc4\x1c\xf6\
-!\xb1\xae\x1d\xe1\xfc\xd7b5\x22\x12@x\xe8\x97F\
-\xef\x0c\xbb\x18\xb4\x11_\xf6S\xc8:vT\xa9\x9d;\
-\xe3\x17\xd2;wf\x91BD\xccA\x9f\x15\x9b\xd9\x11\
-\xce\xdf\x13\x1b\x13\x8f\x00\xc2\xa7D\xfcM\xd8E\xa1\xab\
-\xf8\x86\x9f\x82\xd6\xad\x9brv\xed\x8aU@O\xadX\
-\xa1\x9c\x82\x02\x16+D\xc4\x1cR\x16`u\x18\xed\x14\
-\x01\xe0\x004\x17\x7f\x1fvq8.\x91~\xce\xd8s\
-a;\xfah\x95\xd2\xe7\xb7\xe3\xb4\x8b>x0\x0b\x16\
-\x22b\x8e\xf8\x82\xd8\xd6\x8ep\xfe\x998\x8a8\x04`\
-\x1fG\x8b\xff\x08\xbbH\x8c\xf2\x19\xd2S\x03\x07*\xa7\
-\xb22>\x01]\xf7|/)a\xe1BD\x8c\xb9\xcf\
-\x8b\xad\xec\x08\xe7\xb4S\x04\xb0\x9c\x09\xe2\x17a\x17\x8a\
-\x13\xc5\xf7\xfd\x14\xbac\x8eIwB\x89\xcbQ\x97\xd3\
-Nc\xf1BD\x8c\xb1/\x89\x1d\xed\x09\xe7\xb4S\x04\
-\x88\x00\xcbm(\x18\xa7\x8a{\xfd\x14\xbc\x1e=\xe2s\
-\xdcE\xff\x22\xd0\xa2\x05\x8b\x18\x22b\x0c}E<\xd2\
-\x9ep\xfe\xc3\x04\xed\x14\x01\x22\x81\x9e\xa8\xb7\xdaP8\
-\xe6\xf9-|q\x0a\xe9K\x96('/\x8f\xc5\x0c\x11\
-1F\xbe)\xf6\xb4'\x9c?%\x96\x11{\x00\xa2C\
-u\xf1q\x1b\x0a\xc8\x1c\x9f\xc5/\xd9\xbd{|B\xfa\
-\x80\x01,h\x88\x881Qw*\xebaO8\x7f^\
-\xacM\xdc\x01\x88\x1eM\xc5wm($\xcb\xfd\x16\xc2\
-\xa3\x8f\x8eG\x0b\xc6\xcd\x9bU\xb2\xac\x8c\x85\x0d\x111\
-\xe2\xcab\xaa\x06\xd9\x13\xce\xdf\x17\x9b\x11s\x00\xa2K\
-+1eCA\xb9\xc4\xefN\xfaQG\xc5#\xa4\x9f\
-q\x06\x8b\x1b\x22b\x84}G\x1chO8\xd7kz\
-k\xe2\x0d@\xf4\xe9\x22\xfe5\xec\xa2\x92'\xae\xf7[\
-\x18;w\x8e\xfe\x8b\xa3\xfa\xc2h\xcb\x96,r\x88\x88\
-\x11\xdd9\x1flO8\xd7kyWb\x0d@|8\
-^\xfc4\xec\xe2R ^\xe1\xb7@v\xea\xa4\x9c\x1d\
-;\xa2\x1d\xd2\x97.UN~>\x8b\x1d\x22b\x84\xd4\
-oz\x8c\xb5'\x9c\xffK\x1cA\x9c\x01\x88\x1f\xa7&\
-,\xe8\x91\x9e\x9fAHO\xc5!\xa4\xf3\xc2(\x22b\
-\xa4v\xce\x8f\xb5'\x9c\xebWB\xc7\x12c\x00\xe2\xcb\
-E6\x14\x9b\x22\xf1\x1a\xbf!\xbdk\xd7h\x1fw\xd9\
-\xbcY9\x5c\x18ED\xb4\xde\xdd\x89\xf4\xab\xd8\x09{\
-<\x87\xf8\x02\x10\x7f6\xd8Pp\xf4q\x97\xed~C\
-z\x9b6\xca\xd9\xb2%\xba!\xfd\xcc3Y\xfc\x10\x11\
--\xefs\xde\xd7\xaep\xbe\x94\xd8\x02\x90\x1b\xe8\x87\x8c\
-\xae\xb5\xa1\xf0\xe8\x8b\xa3\x1b\xfc\x16\xd0#\x8eP\xa9M\
-\x9b\xa2{a\xb4m[\x16ADDK\xc3y\x1f\xbb\
-\xc2\xf9\x16\x22\x0b@nQ \xdenKH\xf7\xdd\xdd\
-\xa5qc\xe5\xac[\x17\xcd\x90\xbe|\xb9r\x0a\x0aX\
-\x0c\x11\x11-{\x84\xa8\x97]\xe1\xfc:wC\x0d\x00\
-r\x8c\x9a\xe236\x14\xa2\xfc\x0c\x8e\xbb8\xe5\xe5\xd1\
-\x0d\xe9C\x87\xb2 \x22\x22Z\xe2[b\x7f\xbb\xc2\xf9\
-\xbdb5b\x0a@\xeeR_|\xc5\x96\x9d\xf4\xb5~\
-\xcf\xa4\xd7\xae\xad\x92\x97\x5c\x12\xb9\x80\x9e\xd2\x1di\x1a\
-6daDD\x0cYY\x00UW\xbb\xc2\xf9\xcf\x09\
-\xe7\x00\xa0\xd1\xaf\x8d:\xb6\x84\xf4M~\x0bli\xa9\
-r.\xbc0z\xbb\xe8\xe7\x9f\xaf\x9c\xbc<\x16HD\
-\xc4\x90|]\xeciW8\x7fL,#\x96\x00\xc0\xbf\
-i#&m)RK\xfd\x16\xda\x92\x12\xe5,Z\x14\
-\xbd\x9d\xf4>}X$\x11\x11C\xf0%\xb1\x93]\xe1\
-\xfc!\xb1\x06q\x04\x00\xfe?G\x89\x7f\x89\xecq\x97\
-j\xd5\x94s\xee\xb9\xd1\xeb\x8d^\xb3&\x8b%\x22\xa2\
-A_\x15\xbb\xd9\x15\xce\x9f\x17\xeb\x12C\x00\xe0\x9b\xe8\
-%~`KH_\x95IH\x9f7/R!=9\
-u*\x0b&\x22\xa2\xc1\x9ds\xcb\xce\x9c\xbf(6 \
-~\x00\xc0\xa1\x18(~dK\xf1Z\xee\xb7\x00\xe7\xe7\
-+\xe7\xf4\xd3\xa3\xb5\x93\xde\xa5\x0b\x0b'\x22b\xc0>\
-/\xb6\xb3+\x9c\xbf*\x96\x13;\x00\xc0+\xfd\xc4\xbf\
-\xdbR\xc4f\x88I?\x85X_\xbe\x1c=::\xbb\
-\xe8k\xd7*\xa7\xb8\x98\x05\x14\x111 \x1f\x11\x0f\xb3\
-+\x9c\xbf$6$n\x00\x80_\x8e\x13?\xb6\xa5\x98\
-M\x11\xf7\xfa-\xcaC\x86\xa4_\xef\x8cBP?\xf9\
-d\x16QD\xc4\x00\xfc\x95\xd8\xc0\xaep\xfe\x0a;\xe7\
-\x00P\x15F\x89\x9f\xd8R\xd4N\x12w\xfb-\xce\xbd\
-z)g\xd7.\xfb\x03\xba\xfe\x22\xd1\xb2%\x8b)\x22\
-b\x16\xbdS\xaceW8\x7f[<\x9cx\x01\x00U\
-e\x82\xf8\x99-\xc5m\xb8\xf8\xae\xdf\x22\xdd\xb9\xb3r\
-\xb6o\xb7?\xa4\xebG\x97\x0a\x0aXT\x11\x11\xb3\xe0\
-Mb\x0d\xbb\xc2\xb9,_\x89f\xc4\x0a\x00\xc8\x16s\
-\xc4/m)r#\xc4\xf7\xfc\x16\xeb\x16-\xd2m\x0d\
-m\x0f\xe9#F\xb0\xb0\x22\x22V\xd1\x1f\x88%v\x85\
-\xf3?\x88\x1d\x89\x13\x00\x90m\xce\xb3\xa8\xd0\xa9\x81\xe2\
-[~\x8bv\x93&\xcaY\xb7\xce\xee\xc7\x8bv\xeeT\
-Ny9\x0b,\x22b\x86^#\x16\xd9\x15\xce\xffW\
-\xecN\x8c\x00\x80\xa0\xb8\xd8\xa6\x90\xae\x9fh~\xcdg\
-\xe1N6j\xa4\x9c5k\xec\xdeE\xd7\x0f.\xe9N\
-4,\xb4\x88\x88\xbe\xdc.\x16\xd8\x15\xce\xff(v#\
->\x00@\xd0\x5chSH\xef\xe2><\xe1\xebA\xa3\
-:uTR\x9f\xf7\xb6\xb9\xf5b\xbf~,\xb6\x88\x88\
->\xd4/P\xe7\xd9\x15\xce\x7f/v&6\x00\x80)\
-\x16&,:\x93\xde\xce}\x80\xc2W1/.V\xa9\
-s\xce\xb17\xa4o\xdf\xae\x92\x0d\x1a\xb0\xe8\x22\x22z\
-\xf0B\xbb\x82\xb9V\xfe\xb18s\x0e\x00\xe6\x99%~\
-aK1\xd4\x0fP<\xe6\xb7\xa8\x17\x16\xaa\xe4\xf4\xe9\
-\xf6\x86\xf4\xf3\xce\xe3\xa8\x0b\x22\xe2A\xdc#\x9ej_\
-8\xd7\xad\x14\x9b\x13\x13\x00 ,\xe6\xd9\xb4\x93\xdeD\
-|\xd8o\x81\xd7\x01\xf8\xa4\x93\xec\xbd4:p \x8b\
-0\x22\xe2\x01\xd4\xefb\x9cl_8\x97\xef\x0c\x896\
-\xc4\x03\x00\x08\x9b\xc9\x09\x8b\xfa\xa4\xeb\x07)~\x92I\
-\xb1\x1f:\xd4\xceWGu\xffv\x8e\xba \x22~\xc5\
-\xd7\xc5\xfe\xf6\x85\xf37\xc5#\x88\x05\x00`\x0b\xa7\xda\
-\x14\xd2\xab\x89\xd7fR\xf4{\xf6T\x8ensh[\
-H_\xb0\x80\xa3.\x88\x88\xae/\x8a\xdd\xec\x0b\xe7/\
-\x8b\x8d\x89\x03\x00`\x1b\x93l\x0a\xe9\xba\xcd\xd6\xd6L\
-\x8a\x7f\xfb\xf6\xca\xd9\xba\xd5\xbe\x90\xde\xbf?\x0b3\x22\
-\xe6\xbcO\x8bm\xec\x0b\xe7\xf2\x9d!QN\x0c\x00\x00\
-[\x99(~jK\xd1\xd4\xed\xb6\x96g\xb2\x084m\
-j\xdf\x83F\xf2\xa5!U\xaf\x1e\x0b4\x22\xe6\xac\xf7\
-\x8b\xe5\xf6\x85\xf3\x17\xc4F,\xff\x00`;'\xdb\x14\
-\xd2\xb5\xb3\xf4\x03E~\x17\x83\xfa\xf5\x95\xb3b\x05G\
-]\x10\x11-\xf0.\xb1\x8e}\xe1\xfc\xb7bC\x96}\
-\x00\x88\x0aV\x9dI\xd7N\x17\xf7\xfa]\x14JK\x95\
-\xb3h\x91]!\x9d\x07\x8c\x101\xc7\xbc\xddm\x00`\
-Y8\x7fZl\xc0r\x0f\x00\x1cw\xa9\xa2c\xdd\xb6\
-\x5c\xbe\x16\x87\x92\x92\xf4\xce\xb5-\x01}\xf3f\x95\xaa\
-]\x9bE\x1b\x11s\xc2\x1b\xc4\xea\xf6\x85\xf3\x87\xc5Z\
-,\xf3\x00\x10UN\x12?\xb1\xa9\xb0\x0e\x12\xdf\xf4\xbb\
-H\xe4\xe7\xab\xd4i\xa7\xd9\x13\xd2\xe7\xcf\xe7\xa8\x0b\x22\
-\xc6\xde\x1db\xa1}\xe1\xfc\x1e\xb1\x06\xcb;\x00D\x9d\
-\xe1\xe2?l*\xb0G\x89/e\xf2\xa0\xd1\x981\xf6\
-\x84\xf4^\xbdX\xc0\x111\xb6\xaer/\xfa[\x16\xce\
-o\x17\x8bY\xd6\x01 .\xf4\x17\xffjS\xa1m\xe3\
-\xb6\xeb\xf2\xbdp\xe8`lC\xaft\xfd\x80Q\xc3\x86\
-,\xe4\x88\x18+\xf5\x85\xfey\xf6\x05s\xed\x8db!\
-\xcb9\x00\xc4\x8d\xa3\xc5?\xdaTp\x1b\x8a\xf7f\xda\
-+}\xcb\x96\xf0C\xba\xbe\xc0\x9a\x9f\xcf\xa2\x8e\x88\xb1\
-P\xdf\x11\x9ahg8\xff\xb6\x98\xcf2\x0e\x00q\xa5\
-\xa5\xf8\x96M\x85\xb7\xc4\xbd\x84\xe4{1i\xd2D%\
-\xd7\xae\x0d?\xa4\x8f\x18\xc1\xc2\x8e\x88\x91\xf75\xb1\x9f\
-\x9d\xe1|\x09K7\x00\xe4\x02M\x12\xe9W\xd7\xac)\
-\xc0\xfa\xd5\xd1M\x19,(\xfb\xba\xa9,]\x1an@\
-\xdf\xb5K9\xcd\x9b\xb3\xc0#bd}Flo_\
-0\xffR<\x97%\x1b\x00r\x09\xfd\xea\xda\xf3\xb6\xed\
-\x94\x9c\x93\xc9\xe2R\x5c\xac\x9cy\xf3B\x0d\xe9\xa9K\
-/UNQ\x11\x0b=\x22F\xce\x87\xc5\xc3\xed\x0b\xe7\
-_\x88sX\xaa\x01 \x17\xa9#>j[H?U\
-\xdc\xe3\xf7R\x93>\x07>yr\xb8;\xe9\x13'\xb2\
-\xd8#b\xa4\xfc\xa9X\xdb\xbep\xae\xdf\xef\x98\xcc\x12\
-\x0d\x00\xb9\x8c\xee%{\xafm!}\x84\xf8v&m\
-\x18G\x8fVNee8\x01]\xff\xe7\x1ey$\x8b\
->\x22F\xc2k\xc4j\xf6\x85\xf3\x8f\xc5\x13Y\x9a\x01\
-\x00\xd2!\xfdn\xdbBz\x7f\xf7\xd2\x92\xef\x85\xa7O\
-\x9f\xf4\xb9\xf00B\xfa\xbau\xca)-e\xf1GD\
-\xab\xdd%\x16\xd9\x17\xce?\x12G\xb3$\x03\x00\xfc\x97\
-j\xe2\x8fl\x0b\xe9\x1d\xc5\xe73Y\x80:tP\xce\
-\xd6\xad\xe1\x84\xf4\x193\x08\x00\x88h\xad\xcb\xed|\x80\
-\xe8/b?\x96b\x00\x80\x03\x87\xf4\x9bm\x0b\xe9\xfa\
-\xf2\xd2C\x99,DM\x9b\xa6w\xb4\xc3\x08\xe9\xc7\x1c\
-C\x10@D\xab\xdc+~\xcb\xce6\x8a\xf2\x8f\x96\xe8\
-\xcc\x12\x0c\x00\xf0\xcd\xe8\x87 \xae\xb0\xad\x80\xd7\x15\xef\
-\xcc\xa4\x0dc\x9d:\xcaY\xb6\xcc|@\xdf\xb2E\xa5\
-\xea\xd5#\x14 \xa2\x15\xbe+\x8e\xb13\x9c\xbf&6\
-g\xe9\x05\x00\xf0\xc6J\xdb\x0ayu\xf1\xbb\x99,N\
-%%\xca9\xff|\xf3!}\xc1\x82\xf4\xc5U\xc2\x01\
-\x22\x86\xe8\xabbo;\xc3\xf9\xd3bC\x96[\x00\x00\
-\x7fL\x15?\xb3\xa9\xa0\xebs\x93\x8b2Y\xa4t\x8f\
-\xf2\xd9\xb3\xcd\xf7G\x1f<\x98\x80\x80\x88\xa1\xf9\xa8\xd8\
-\xdc\xcep\xfe\xb3D\xbaA\x01\x00\x00d\xc0\x18\xf1\x9f\
-\xb6\x15\xf7Y\xeey\xca\x8c\xda0\x9a\x0c\xe8;w*\
-\xe7\x88#\x08\x0a\x88h\xdc;\xdd\xe3\x81\x16\x86\xf3k\
-\xc5\x02\x96W\x00\x80\xaa1H\xfc\x9bmE~T&\
-\xbd\xd2\xb5}\xfb\xaaTE\x85\xd1WFS\xd5\xaa\x11\
-\x18\x10\xd1\x987\x885\xec\x0c\xe7\x9b\xc4<\x96U\x00\
-\x80\xec\xd0)\x91\xbeioU\xb1\xef.\xbe\x90\xc9\x02\
-\xd6\xb1\xa3J\x1al\xc3\x98\xd2\xaf\x9c\x12\x1a\x10\xd1\x80\
-\x92\x80U\x81}\xc1\xfcK\xf1<\x96R\x00\x80\xec\xd3\
-R|\xc3\xb6\x90\xde\xdc=g\xe9{!k\xd5J9\
-\x9b7\x9b{e\xb4S'\xc2\x03\x22\x06\xea9v\xee\
-\x9a\xeb\xbbLg\xb2\x84\x02\x00\x04G\xb9\xf8\x9cm\x0b\
-\x80>gyG&\x0bZ\xfd\xfa\xcaY\xb1\xc2LH\
-\xbf\xfcrZ/\x22b \xee\x16O\xb53\x9c\xeb;\
-LcX:\x01\x00\x82\xa7\x9e\xf8\x84m\x0bA\x99\xf8\
-\x83L\x16\xb7\xd2R\xe5\x5cp\x81\x99\x90\xae\xdb=\xe6\
-\xe7\x13(\x101\xab=\xceO\xb07\x9c\x9f\xc8\x92\x09\
-\x00`\x8e\xd2D\xbaM\x96U\x0bB\xa1\xb85\x83\x05\
-.YX\xa8\x9cY\xb3\xcc\x84\xf4\xe1\xc3\x09\x15\x88\x98\
-\x15_\x11{\xd9\x19\xce\xff,\xf6c\xa9\x04\x000\x8f\
-n\x93u\xb5\x85\x0b\x83Z\xa8C\xb7\xdf\xc5.?_\
-%'M\x0a>\xa0\xef\xda\xa5\x9c\x16-\x08\x17\x88X\
-%\x9f\x12\xdb\xda\x19\xcew\x8b\x1dY\x22\x01\x00\xc2\xc5\
-\xbaWG\xb5\x93\xdcs\x99\xbe\x17\xbe\xa1C\xd3\x97:\
-\x83\xec\xea\xb2z\xb5JU\xafN\xc8@\xc4\x8c\xfc\x95\
-Xng8\x7fA<\x8ce\x11\x00\xc0\x0e\xa6\x88\x9f\
-\xda\xb6X\xf4\x10_\xcad\x01<\xfah\xe5\xec\xd8\x11\
-\xecN\xfa\x94)\x04\x0dD\x8cS\x8f\xf3_$\xd2\xc7\
-\x1f\x01\x00\xc0\x22\x86\x89\x1f\xd8\xb6h\xb4\x10\x1f\xcfd\
-!l\xdf^9[\xb6\x04\x1b\xd2{\xf4 p \xa2\
-g7\xda\xd9\xe3\xfc\xdf\xaf\x83\x16\xb2\x0c\x02\x00\xd8I\
-\x97\x84\x85\x0f\x1a5\x12\xef\xc9\xe4\xf2h\xb3f*\xb5\
-qcp\x01}\xd3&\xe5\xd4\xaeM\xf0@\xc4\x83\xd7\
-\x22{{\x9ckW%x\x1d\x14\x00\xc0z\xf4\x83F\
-\xaf\xd9\xb6\x88\xd4p\x7f\x1a\xf6\xbd8\xea\x00\xbdlY\
-p\xe7\xd1/\xbcP9\x05\x05\x84\x10D\x8cZ\x8f\xf3\
-/\xc4\x05,y\x00\x00\xd1A\xf7J\x7f\xcc\xb6\x05E\
-\xff4\xbc!\x93E\xb2\xa4$\xdd\xc3<\xa8\x9d\xf4\xb1\
-c\x09\x22\x88\xf85\xdf\x10\x07\xd9\x19\xce?\x16'\xb0\
-\xd4\x01\x00D\x0f+{\xa5kg\x89{\xfd.\x96\x85\
-\x85*9}z0\x01]w\x8d\xe9\xd8\x91@\x82\x88\
-\xff\xf1wb7;\xc3\xf9\xdf\xc4\xa1,q\x00\x00\xd1\
-E\xf7J\xbf\xc6\xc6\x90>\xc6}\x81\xcf\xd7\xa2\x99\x97\
-\xa7\x9c\xd1\xa3\x83\x09\xe9\xfa\xac;\xe7\xd1\x11Q|D\
-lfg8\x7f_\xec\xcc\xd2\x06\x00\x10}\xf2\xc5m\
-6\x86\xf4c\xc573Y@\x87\x0c\x09\xa6W\xba>\
-F\x93\x9fO@A\xcca\x7fio\x8f\xf3w\xc4\xf6\
-,i\x00\x00\xf1bQ\x22}\xa9\xc8\xaaE\xa7\x8b\xf8\
-|&\x0bi\xb7n*\x15D\xaf\xf4\xe3\x8f'\xa4 \
-\xe6\xa87\x8bev\x86\xf3g\xc5\xc6,c\x00\x00\xf1\
-d\xac\xf8\x91m\x8bO\xb9\xbbk\xe5w1M\xb5l\
-\x99n\x95\x98\xed\xf3\xe8\xba\x07;a\x05\x91\x1e\xe7v\
-x\xa7X\x83\xe5\x0b\x00 \xde\x0c\x14\xffl\xdb\x22T\
-[\xbc=\x93\x85\xb5aC\xe5\xacZ\x95\xdd\x90\xben\
-\x9dr\xca\xca\x08-\x889\xe2r1\xcf\xcep\xfe]\
-\xb1\x88e\x0b\x00 7\xe8\x90H\x9fg\xb4j1\xaa\
-&^\x9b\xc9\x02[\xab\x96r\x96.\xcdnH\x9f7\
-/})\x95\xf0\x82\x18\xeb\x07\x88\xe6\xda\xfb\x00\xd1\xba\
-\x04\x0f\x10\x01\x00\xe4\x1c\xbaW\xfa\xc3\xb6-Jz\x17\
-\xeb\x92L\x16\xdb\xe2\xe2t\xa8\xcefH\x1f6\x8c\x10\
-\x83\x18S\xdf\x11G\xd9\x19\xcc?\x15\xcfd\x89\x02\x00\
-\xc8]\x8a\xc5\x9bl\xdc=\xca\xa4WzRw`9\
-\xfd\xf4\xec\x05\xf4]\xbb\x94\xa3\xcf\xb9\x13f\x10c\xe5\
-Kb\x0f;\xc3\xf9\x07\xe2q,M\x00\x00\xa0\x7fB\
-\xddhcH?\xde\xdd\xe5\xf2\xdd+}\xc2\x84\xec\x85\
-\xf4\x95+U\xaazuB\x0dbL|Zlgg\
-8\xdf+veI\x02\x00\x80\xfd9/aa\x1bF\
-\xbd\xcb\xf5b&\x0b\xf1q\xc7e\xafW\xfa\xcc\x99\x04\
-\x1b\xc4\x18x\x9f\xbd=\xce_\x15[\xb2\x0c\x01\x00\xc0\
-\x81\x18/\xfe\xd3\xb6\xc5\xab\x85\xf8X\x86\xbd\xd2\x9dl\
-\xf5J\xe7<:b\xa4\xd5]\xa2j\xd9\x19\xce\x1fI\
-\xa4\xef\x04\x01\x00\x00|#}\xc4?\xda\xb6\x885\x14\
-\xef\xcedan\xdbV9[\xb6T9\xa0\xa7**\
-\x94\xd3\xba5A\x071\x82^\xe5v\x89\xb20\x9c\xdf\
-\x9aH\xdf\x05\x02\x00\x008$\xad\xc5\xd7m[\xccj\
-\x887d\xf2\xa0Q\xd3\xa6\xe9\xde\xe6Y\xe8\x8f\x9e\xa4\
-?:b\xa4\x5cg\xef\x03DW\x88\x05,7\x00\x00\
-\xe0\x87\xfa\xe2\xa3\xb6-jz\xa1\xdd\x90\xc9B]\xbf\
-\xberV\xac\xa8zH_\xb0@9\xba[\x0c\xc1\x07\
-\xd1\xfa\x1e\xe7\xb3\xec\x0c\xe6_&\xd2w~\x00\x00\x00\
-2\xa2\xa6x\xafm\x0b\x9c\xee\x95\xbe$\x93E\xbb\xb4\
-T9\x8b\x16U=\xa4\x9fp\x02\x01\x08\xd1b\xdf\x17\
-\xcf\xb43\x9c\x7f.\x9e\xc5\xd2\x02\x00\x00UE?3\
-}\xbd\x85\x0b\x9d\x9a\x22\xee\xf1\xbbxW\xabV\xf5\x07\
-\x8dtw\x98\x8e\x1d\x09B\x88<@\xe4\xc7\x8f\xc4\xb1\
-,)\x00\x00\x90M\xacl\xc38@|-\x93\x07\x8d\
-\xce8\xa3j\x97F7mRN\x9d:\x04\x22D\x8b\
-|A\xecfo\x8f\xf3.,#\x00\x00\x10\x04'\x8b\
-\x1f\xdb\xb6\xf8u\x10\x9f\xc9\xe4A\xa3\xd1\xa3\xab\xb6\x93\
-\xbex\xb1r\x0a\x0b\x09F\x88\x16\xa8[\xb16\xb7\xb7\
-\xc7y\x0b\x96\x0f\x00\x00\x08\x92~\xe2\x9fl[\x04\xf5\
-\xe3#\xbf\xcada\x1f5\xaaj\x0f\x1a\x8d\x1dK8\
-B\x0c\xd9{\xdcV\xac\x16\x86sz\x9c\x03\x00\x801\
-\x8e\x14\xdf\xb3m1,\x13\x7f\x98\xc9\x02\xdf\xb3\xa7r\
-v\xed\xca\xfc<\xfaQG\x11\x92\x10C\xf2\xfbn\x0b\
-V\x0b\xc39=\xce\x01\x00\xc08\x8d\xc5gl[\x14\
-\x8b\xc4\x8aL\x16\xfa\xa3\x8fV\xa9\x9d;3\x0b\xe9\x9b\
-7+\xa7^=\xc2\x12\xa2a\xb7\x8a\x85v\x86\xf3\xca\
-\x04=\xce\x01\x00 $J\xc5\x9f\xd9\xb68\xea6\x8c\
-\x8b2y\xd0\xa8M\x9b\xcc_\x1d]\xb6L\xa5t\x87\
-\x18B\x13\xa2\x11\x17\xb9s\xdd\xb2\xfa\xa3/\xd2\xd3\xe3\
-\x1c\x00\x00BG\xef\x12}\xdb\xc2\x1d,59\x836\
-\x8c\xfa\xd5\xd1\xd4\xfa\xf5\x99\x85\xf4\xe9\xd3\x09N\x88\x01\
-\xbbW\x9ci\xe7\xae\xf9\xa7\xe2T\x96\x04\x00\x00\xb0\x85\
-<q\x9d\x8d!}\x8c\xf8n&\xaf\x8e\xaeZ\x95Y\
-H\x1f0\x80\x10\x85\x18\x90\xbb\xc5\x89v\x86\xf3\x0f\xc5\
-\x13X\x0a\x00\x00\xc0F\xceN\xa4_\xca\xb3j\xf1\xec\
-%\xbe\xe27\x0c\xd4\xaa\xb5\xef\xd8\x8a\xef\xfe\xe8\xfa\x1c\
-{\xf3\xe6\x84)\xc4,\xfb\xa68\xd8\xcep\xfe{\xb1\
-\x07\xe5\x1f\x00\x00l\xe68\xf1\x03\xdb\x16\xd1f\xe2#\
-~CAI\x89r.\xb8\xc0wHO\xae]\xab\x9c\
-\xb22B\x15b\x96\xd4\xef\x1c\xb4\xb73\x9c\xffNl\
-J\xd9\x07\x00\x80(\xa0_\xcc\xdbk\xdbbZG\xfc\
-\xa9\xdf3\xe9\xfa\xe2\xe7\xbcy\xfe\x8f\xba,X\xa0\x1c\
-\xfdb)\xe1\x0a\xb1J\xde\xef\xbes`a8\xd7=\
-\xce\xebR\xee\x01\x00 J\xb4\x15\xdf\xb2mQ-u\
-\xfb&\xfb\x09\x08I\x1d\xb4\xa7N\xf5\x1f\xd2\xf5K\xa5\
-\x04,\xc4\x8c\xbdWl`g8\xbfG,\xa3\xcc\x03\
-\x00@\x14i$>e\xdb\xe2\xaa\xfb&_\xe17,\
-\xe4\xe5)g\xc2\x04\xff\x8f\x18u\xeaD\xd0B\xcc\xc0\
-\x1f\x8b\xb5\xec\x0c\xe7\xdf\x13\x8b(\xef\x00\x00\x10e\xf4\
-Kz7\xd9\xb6\xc8f\xd4+]\x87\xf4\xf1\xe3\xfd]\
-\x1a\xdd\xb4I9u\xeb\x12\xb8\x10}\xf8m\xf7\xd11\
-\x0b\xc3\xf9\x12J:\x00\x00\xc4\x05\xdd\x86q\x93\x85\x8b\
-\xad\x9a\xe1\xf6U\xf6\x15 \x86\x0f\xe7\x11#\xc4\x80\x5c\
-i\xe7\x03D\x9f\x893(\xe5\x00\x00\x10G\xf4\x0b{\
-_\xd8\x16\xd2\x8f\xcf\xa0Wzj\xe0\xc0\xf4\x11\x16\xaf\
-!}\xda4\xc2\x17\xe2!<\xc7\xce]\xf3\x7f\x8ac\
-)\xdf\x00\x00\x10g&\xb8\x0b\x9eU\x8bp?\xf15\
-\xbf\x81b\xd0 \x7f!\xbdwoB\x18\xe27\xbc\x0e\
-:\xcd\xcep\xfe'\xb17e\x1b\x00\x00r\x81\xbe\xee\
-\xc2g\xd5b\xdcA|\xceo\xb8\xe8\xd1C9\xbbv\
-y\x0b\xe8\xf2\xff/\xd5\xa6\x0d\x81\x0cq?\xf5\xafW\
-\xa3\xec\x0c\xe7\xbb\xc5\x8e\x94k\x00\x00\xc8%\x8e\x14\xdf\
-\xb3mQ>B|\xd4o\xc8\xe8\xdcY9;vx\
-\xbb4\xbaa\x83J\xd5\xa9C0C\x14_\x17\xfb\xdb\
-\x19\xce\x9f\x17\x9bP\xa6\x01\x00 \x17\xd1\x0b\xe0\xb3\xb6\
--\xceu\xc5\xbb\xfc\x86\x8dv\xed\x94\xb3m\x9b\xb7\x9d\
-\xf4\xc5\x8bU\xb2\xb0\x90\x80\x869\xed\x8bb7;\xc3\
-\xf9Cb\x1d\xca3\x00\x00\xe42\xfa\xb1\x8f_\xd8\xb6\
-H\xd7\xc8\xe0A\xa3}\xc7W\xb6n\xf5\x16\xd2'O\
-&\xa4a\xce\xfa\xb4\xd8\xc6\xcep~K\x22\xdd\x1a\x16\
-\x00\x00 \xe7\xd1\x0b\xe2\xcd\xb6-\xd6\xd5\xc4\xff\xf1\x1b\
->\x9a5S\xce\xe6\xcd\xdeB\xfa\x80\x01\x845\xcc9\
-\x1f\x13\x9b\xd9\x19\xce\xaf\x13\x0b)\xc7\x00\x00\x00\xffE\
-\xf7J_e\xdb\xa2\xad\xfb1_\xe27\x844i\xa2\
-\x9c\xf5\xeb=]\x1au\xb84\x8a9\xe4\x1dbm\xfb\
-\x82\xf9\x97\x09\x1e \x02\x00\x008(V\xf6J_(\
-&\xfd\x84\x91\xf2r\xe5\xac[w\xe8K\xa3\x1b7*\
-\x87K\xa3\x98\x03\xfeX\xaci_8\xff\x5c\x9cG\xd9\
-\x05\x00\x0084'\x8b\x1f\xdb\x16\xd2'\x89{|\x86\
-\xf4\x94\x87\x9d\xf4\xe4\xc2\x85\xca)( \xc4al\xd5\
-\xf79J\xec\x0b\xe7\x1f\xbb\xb5\x06\x00\x00\x00<\xd2S\
-\xfc\xbdm!}\x80\xf8\x86\x9fpR\xaf\x9erV\xaf\
->\xf4q\x973\xcf$\xc8a,\xdd.\x16\xd8\x17\xce\
-\xff\xe8\xd6\x18\x00\x00\x00\xf0IK\xf15\xdbB\xfaQ\
-\xe2K~\xba\xbbHHOy\x09\xe9\x03\x07\x12\xe80\
-V\xaev\xefqX6\x87\xdf\x14[S^\x01\x00\x00\
-2\xa7\x9e\xf8\x88m!\xbd\xad\xf8\xac\x9f\xb0R\xb7\xae\
-rV\xad:\xf4\xa5\xd1\xb6m\x09v\x18\x0b\xcf\xb1\xb3\
-S\xcbsbc\xca*\x00\x00@\xd5\xd1m\x18o\xb1\
-m\xb1?\xdc\xef\xab\xa3\xfa2\xe8!B:\x97F1\
-\xea&\xed\x0d\xe7\xf7&\xd2\xef.\x00\x00\x00@\x96(\
-\x10+m[\xf4\x1b\x8a\xbf\xf4\x13`j\xd5R\xce\xf2\
-\xe5\x07\xdfI_\xbaT9EE\x84=\x8c\x9c{\xc5\
-3\xed\x0c\xe77\x89\xd5(\xa3\x00\x00\x00\xc1\xb0\xca\xb6\
-\xc5\xbf\x8e\xf83?;\x8c5k\x1e:\xa4O\x9bF\
-\xe0\xc3H\xf9\xbe8\xd9\xcep~\xa5\xfb\x05\x1f\x00\x00\
-\x00\x02d\xaa\xf8/\x9bB@\xa9x\x93\x9f@#!\
-=y\xc9%\x07?\xee2x0\xc1\x0f#\xe1nq\
-\xac\x9d\xe1|%\xe5\x12\x00\x00\xc0\x1c#\xc4\xbf\xdb\x14\
-\x06\x8a\xc4\xab|\x86t\xe7`!\x9dK\xa3\x18\x01\xdf\
-\x11\x87\xd9\x17\xcc\xf5cg\xe7P&\x01\x00\x00\xccs\
-\x8c\xf8\x07\x9b\x82\x81\xee\xf7\xbc\xc9\xcfq\x97\xb22\xe5\
-,[v\xf0K\xa3\xba\x03\x0cA\x10-\xf4u\xb1\xaf\
-}\xe1\x5c\xff\xba6\x99\xf2\x08\x00\x00\x10\x1e\xcd\xc5W\
--\x0b\x08\xfb\xbaXx\x0e:5j\xa8\xd4\x92%\x07\
-\xbd4\x9a\xaaV\x8d@\x88V\xf9\xbc\xd8\xce\xbep\xfe\
-\x818\x98\xb2\x08\x00\x00\x10>\xba\xaf\xf1s\xb6\x85\xf4\
-9n\xcb9\xcf\xc7]\x0evqt\xf2dB!Z\
-\x15\xce\xdb\xdb\x17\xce\xff,\xf6\xa5\x1c\x02\x00\x00\xd8C\
--\xf1>\xdbB\xfa\xa9nw\x0bO\xc1\xa7\xac\xec\xe0\
-\x17G\x87\x0c!\x1cb\xe8>-\xb6\xb0/\x9c\xcbw\
-\xe1Dg\xca \x00\x00\x80}\xe8Vj\xffc[H\
-\x1f.\xbe\x9b\x85\x9d\xf4TE\x85r\xda\xb5#$b\
-h>(6\xb2/\x9c\xffNlB\xf9\x03\x00\x00\xb0\
-\x97\xbc\x84\x85\xbd\xd2\xfb\x89oz\x0dB\xf5\xea)g\
-\xed\xda\x03\xef\xa2\xaf_\xcfK\xa3\x18\x8a\xbfv\x1f\xe6\
-\xb2ln=&\xd6\xa5\xec\x01\x00\x00D\x83\xf9\x89t\
-\xab5k\xc2D/\xb7\xeb\x85\xa7@\xa4;\xb7\xacY\
-s\xe0\x90\xae\xbb\xbepi\x14\x0dz\xbf\xd8\xc0\xbep\
-~\xb7XJ\xa9\x03\x00\x00\x88\x16\x13\xc4\x8fm\x0a\x15\
-]\xc5\x97<\x86\xa2\xd4\xc1v\xd2\xe7\xccQN^\x1e\
-\xe1\x11\x03\xf7\xe7bm\xfb\xc2\xf9\xcdb5J\x1c\x00\
-\x00@4\x19\x9aH\xb7^\xb3&\x5c\xb4s\xbb`x\
-\x0aH\x8d\x1a\xa9\x94>\xd6r\xa0\x90>z4\x01\x12\
-\x03\xf5.\xb1\x96}\xe1\xfc\xdb\x89\xf4}\x13\x00\x00\x00\
-\x880}\xc4\xbf\xd8\x142:\x88\xbf\xf5\x1a\x94\xca\xcb\
-Uj\xc3\x86\xaf\x07\xf4\xcaJ\xe5\xf4\xe8A\x90\xc4@\
-\xbc\xdb\xce\x9d\xf3\xcb\x13\xe9{&\x00\x00\x00\x10\x03:\
-\x8a{l\x0a\x1b\x87\x8b\x8f{\x0dLM\x9b*g\xf3\
-\xe6\xafwv\xd9\xb1C9\xcd\x9a\x11(1\xab\xde*\
-\xd6\xb0+\x98\x7f)\x9eK\x19\x03\x00\x00\x88\x1f\xcd\xc4\
-\xd7l\x0a\xe9\x8d\xdc\xee\x18\x9e\x82\xd3\xe1\x87\x1f0\xa4\
-\xef;\xa7\xae\xdb3\x12,1\x0b\xde,\x96\xd8\x15\xce\
-?\x13\xa7R\xbe\x00\x00\x00\xe2KS\xf1\x05\x9bBz\
-\xb9\xdb_\xdaS\x80j\xd1B9[\xb7~=\xa4/\
-Z\xa4\x92\x85\x85\x04L\x8c\xdb\xce\xb9\x0e\xe7gR\xb6\
-\x00\x00\x00\xe2O\x99\xf8K\x9bBz-\xf7B\x9e\xa7\
- \xd5\xaa\x95r\xb6m\xfbzH\x9f:\x95\x90\x89\x19\
-{\x9dXdW8\xff\xa7x\x02\xe5\x0a\x00\x00 w\
-(\x16\x7fdSH\xd7;\x97\xb7x\x0dT\x9d;+\
-g\xd7\xae\xaf\x87\xf4\xfe\xfd\x09\x9b\xe8\xdb\xff\xb1/\x9c\
-\xeb\xceK\x83(S\x00\x00\x00\xb9\x87\xee\xa3|\x93M\
-!\xbd\xd4=f\xe0)Xu\xeb\xa6R\x15\x15_\xbd\
-4\xaa\xff\xfb\xf6\xed\x09\x9d\xe8\xd9\xeb\xed\x0b\xe7\x7f\x15\
-\xfbS\x9e\x00\x00\x00r\x17\xdd\xb2m\xb3M!]\x87\
-\xa5k\xbd\x06\xac\x01\x03\xbe\xbe\x8b\xae/\x926lH\
-\xf8\xc4C\xfam\xb1\xc0\xaep\xbe7\x91\xee\xb8\x04\x00\
-\x00\x00\x90X\x92H\xb7r\xb3\x22\xa8\xe8\xd0t\xa5\xd7\
-\xa05j\xd4\xd7\xdb/\xaeX\xa1\x9c\x92\x12B(F\
-i\xe7\xfc-\xb1\x05\xa5\x08\x00\x00\x00\xf6gZ\x22\xdd\
-5\xc2\x9a\x90~\x85\xd7\xc05a\xc2\xd7w\xd2\xcf:\
-K9yy\x84Q\xfc\x9a\xdf\xb1/\x9c\xeb\xceJM\
-(A\x00\x00\x00p N\x12?\xb6)\xa4Wz\x09\
-]:\x88O\x99\xf2\xf5\x90>f\x0c\x81\x14\xbf\xe2w\
-\xed\x0b\xe7O\x8a\xf5(=\x00\x00\x00p0\x86\x8a\x1f\
-\xda\x14\xd2+\xbc\x84\xaf\xfc|\xe5\xcc\x9e\xfd\xd5\x80^\
-Y\xa9\x9cc\x8e!\x98\xe2>o\xb0/\x9c?\x22\xd6\
-\xa6\xe4\x00\x00\x00\x80\x17\x06\x8a\x7f\xb3%\xc8\x14\xb9\xad\
-\xf0\x0e\x19\xc2\x8a\x8a\x94\xb3p\xe1WC\xfa\x8e\x1d\xca\
-i\xde\x9c\x80\x9a\xe3\xfe\xc8\xbe\x17B\x1f\x12kRj\
-\x00\x00\x00\xc0\x0f\xba\x9bD2a\xd1N\xfaN/a\
-\xaczu\xe5,]\xfa\xd5K\xa3\xeb\xd7\xabT\x9d:\
-\x04\xd5\x1c\xf5F\xb1\x9a]\xe1\xfc\x8eD\xfa-\x02\x00\
-\x00\x00\x00\xdf\xb4\x13\xf7\xd8\x14\xd2wx\x08d\xc9\xb2\
-2\xe5\xe8N.\xfb\x87\xf4\xc5\x8bU\xb2\xb0\x90\xc0\x9a\
-c\xea\xbe\xfa\xd5\xed\x0a\xe7\xb7'\xd2o\x10\x00\x00\x00\
-\x00dL[q\xb7-\x01\xa7\xd0\xed_}\xc8pV\
-\xb7\xaer.\xbb\xec\xab\xc7]\xce<\x93\xd0\x9aC\xde\
-)\x96\xd9\x15\xce\xe5\x1f\x89\x9ds\x00\x00\x00\xc8\x0e\xcd\
-\xc47\x12\x89\x88\xb5`l\xd2$\xfdp\xd1\xfe!\xfd\
-\xd8c\x09\xaf9\xe0]bM\xbb\xc2\xf9\x8f\x13\xec\x9c\
-\x03\x00\x00@\x96\xd1\xad\xe0~cK\xe0\xc9\x13\xd7{\
-\x09k\xed\xda\xa9\xd4\xce\x9d\xff\x0d\xe8\xbbv\xed\xfb\x7f\
-#\xc4r!\xd4\xa0\xd7\x8b\x05\x94\x10\x00\x00\x00\x08\x82\
-:\xe2c\x91\x0b\xe9]\xba(\xa7\xa2\xe2\xbf!\xfd\xf2\
-\xcbU\xb2Q#\xc2l\x0c\xbd]\xacaW8\xaf\x14\
-\xf3(\x1d\x00\x00\x00\x10$\xb5m\x0a\xe9\xf9\x1e/\x8e\
-:\xc3\x86}\xf5\xa8\x8b\xbeDZRB\xa8\x8d\x91\xf7\
-\x8a\xb5\xed\x0a\xe7\xd7\x8a\xf9\x94\x0c\x00\x00\x000A\xa9\
-x\x9fM!\xdd\xd3\x8b\xa3\x13'~5\xa4\x9f{n\
-\xfa\x81#\xc2m\xe4}@\xackW8\xbf2\xc1\xce\
-9\x00\x00\x00\x18F_x\xbb\xcd\xa6\x90\xbe\xebPA\
-./\xef\xeb\xaf\x8d\x9et\x12\x017\xe2>(\xd6\xb7\
-+\x9c\xaf\xa1<\x00\x00\x00@X\xe8\x8bo\xdf\xb1%\
-\x18\xe9\xee.Wzymt\xd1\xa2\xaf\x86\xf4\xbe}\
-\x09\xba\x11\xf5I\xb1\xb1]\xe1|\x09e\x01\x00\x00\x00\
-\xc2F\xff\x8c\xbf\xcb\xa6\x90~\xd5\xa1\x82]i\xa9J\
-\xad\x5c\xf9\xdf\x80\xbec\x87rZ\xb4 \xf0F\xcc\xe7\
-\xc5\x16\x84s\x00\x00\x00\x80\x03\xa2/\xc2]aKP\
-*\x16o9T\xc0k\xd0@9\x1b7\xfe\xf7\xa5\xd1\
-\x0d\x1b\x94S\xa7\x0e\xc17\x22\xbe&v\xb6+\x9c\xaf\
-\xa6\x0c\x00\x00\x00\x80m\xe8\x9d\xf4u\xb6\x04&\xdd\x07\
-\xfb\xc7\x87\x0az\xcd\x9b\xab\xffk\xef\xfec\xed\xae\xeb\
-;\x8e\x7fo\x7f\xd1\xd6\xda\x9f\x16\x1a\x1bhK\xaf\xa6\
-\x19\xb8D\xaa-m\x88s\xcd\xbaF\x94\x15\x9dT\xc6\
-\xa6\x80\xa3\xb9\x13\x7f\xc4\x94\x8b\xd8\xc9\xc0\x16*k\xb5\
-+\xed\xed6\xdc2\xe6\xb6f,\xe0d\xd9\x961A\
-\x13\xc1X\x7f!n\xc8HQA\x84\xdes\x8d\x1a\xa3\
-\x9bf*\xb4_\xdf\xdf\x9d\xe3N[\xee\xbd\xed\xed\xfd\
-\xf1\xf9\x9cs\x1e\x8f\xe4\xf5o\xd3\x9c\xf3=\xc9\xb3\xa7\
-\xdf\xf3\xf9\xd6\xf6\xeci~\x93\xfe\xfe\xf7\x97\x03\xd3\xa6\
-\x09\xe0\xcc\xf7\xcd\xd8\xab\xf3\x8a\xf3\x9d>\xfe\x00@\xce\
-\xae\xcf%\x9c\xa6\xc7\xee\x19\xe9\x19\xe9W^)\x823\
-\x8f\xf3W\xf9A(\x00\xc0\x88\xf5\x16\xad\xf4M\xfa\xba\
-u\xc7\xffht\xfdz1\x9c\xe1\x9e\x8e\xbd&\xaf8\
-\xbf\xd5G\x1d\x00h%7\xe5\x12R\xd5\xc3k\xee\x1f\
-\xc9\x19\xe9\xfb\xf7\x97\xb5\xf3\xcf\x17\xc5\x19\xedp\xec\xcd\
-y\xc5y\xf5\xc3h\xe7\x9c\x03\x00-gK.A5\
-;v\xdf0\x01\xd8_=\xb0\xe8\x1d\xefhF\xfa\xae\
-]em\xe1Bq\x9cI\x9co\xca+\xceo\xf3\xd1\
-\x06\x00Z\xd9{cGs\x89\xf4O\x9e\xec\x8c\xf4\xf7\
-\xbd\xaf\x19\xe9\xdb\xb7\x97\xb5Y\xb3Dr\xe2]\x9dW\
-\x9c\xff\xb1\x8f4\x00\xd0\x0e\xfe \x97H_\xd0x,\
-\xfc\x90A8gNY\xdb\xb1\xa3\x19\xe9\xef~w\xfd\
-\xdbu\xa1\x9cd[\xdc\xd6\x02\x000nzr\x89\xf4\
-\x85\xb1\x07\x87\x89\xc2\x81\xee\xee\xb2\xb6wo3\xd27\
-n\x14\xcb\x09vc^q\xde'\xce\x01\x80vt]\
-.\xc1uN\xec\xcb\xc3\x05\xe2\xaaU\xc7\x9f\xec\xb2f\
-\x8dh\x9e\xc0\xed\x8fM\xca'\xce?V\xd4\x1f\xc6\x05\
-\x00\xd0\x966\xc7\x8e\xe4\x10^K\x1a\x8f\x8b\x1f2\x14\
-/\xbd\xb4\x19\xe8\xb7\xdf^\xd6\x96.\x15\xcf\x13\xb0;\
-c\x93\xf3\x89\xf3?+|s\x0e\x00t\x80kr\x89\
-\xf4\x15\xb1\xc7\x87\x8a\xc5\xae\xae\xb2\xbf\xa7\xa7\x19\xe9\x1f\
-\xfaP\xfd\x1eu\x11=n\xfb\xe7\xc6\x03\xa62\x89\xf3\
-;\xc49\x00\xd0I~?\x97H_\xd9xB\xe5\xa0\
-\xf7\xa3O\x9f^\xd6>\xf0\x81f\xa4_w]Y\x9b\
-2EL\x8f\xc3\x1e\x8a\xcds[\x0b\x00@R\xef,\
-2\xf9\xe1\xe8\xebb\xcf\x0e\x15\x8f\x0b\x16\x94\x03;w\
-6#}\xd3&A=\xc6{4\xb64\x9f8\xbf'\
-6\xc5\xc7\x13\x00\xe8To/2\xf9&\xfd\x8d\x8d\x87\
-\xe2\x0c\x1a\x91\xcb\x97\x1fw\xb2K\xff\xda\xb5\xc2z\x8c\
-v\xa8q\xabQ&q~wl\xb2\x8f%\x00\xd0\xe9\
-\xdeUd\xf2M\xfaU\xc3\xc5du\x92K#\xd0\x07\
-\xaaX\xf7\xa3\xd1Q\xef\xe9\xd8\xda|\xe2\xfc\xbe\xd84\
-\x1fG\x00\x80\xba\xf7f\x12ie\xef0A\xd9_\xdd\
-\xde\xe2G\xa3c\xb2\xea\x7f+~+\x9f8\x7f(6\
-\xd3\xc7\x10\x00\xe0x\xd9\x9c\x93\xbem\xa8@\xaf\x9e*\
-\xfa\x9e\xf74\xbfI\xef\xed\xf5\xa3\xd1\xd3\xdc\x95\xf9\xc4\
-\xf9\xc3\xb19>~\x00\x00\x83\xdb\x99C\xb4U\xe7p\
-\xff\xd5Pq9sfY\xbb\xf9\xe6f\xa4_~\xb9\
-\xe0\x1e\xe1\xb6\xe7\x13\xe7\xdf\x8c\xbd\xd4\xc7\x0e\x00`x\
-;r\x88\xb7\xa9\xb1\x03CE\xe6\xe2\xc5\xe5@\xf5\xf0\
-\xa2_\xde\xeeR=yTx\x9f\xd2\xf6\xc4\xba\xf2\x88\
-\xf3\xa7b\x8b}\xdc\x00\x00NM\x16\xdf\xa4\xcf\x88\xfd\
-\xd3P\xb1\xb9re3\xd0\xf7\xed+\x07\xba\xbb\x05\xf8\
-Iv\xa0\xf1\x0f\x9f\x0c\xde\xdb\xf8\xeb\x14\xcb}\xcc\x00\
-\x00N]\xf5\x04\xc7?\xcd!\xd2g\xc7\x1e\x18*:\
-/\xbb\xacy\xab\xcbm\xb7\x95\x03s\xe7\x0a\xf1!\xf6\
-/\x8d\x7f\xf0d\xf0\x9e~?v\xbe\x8f\x18\x00\xc0\xe9\
-E\xfa\x1d9D\xfaY\xb1/\x0c\x16\x9e\x93'\x97\xb5\
--[\x9a\xdf\xa4\xf7\xf6\x96\xfd~4\xfa\x82}66\
-?\x8f8\xff\xef\xd8\xab}\xb4\x00\x00N_\xf5\xd0\x98\
-\xbbs\x88\xf4\x97\xc5\x1e\x1f,@\xe7\xcf/k\xbbv\
-5#\xbd\xfaV]\x94\xff\xff\x1e\x8b-\xcf#\xce\x7f\
-\x1a\xfbM\x1f)\x00\x80\xd1\x9b\x1a\xbb7\x87H_\x1d\
-\xfb\xd6`!\xfa\xf2\x97\x97\xb5\xbe\xbef\xa4_x\xa1\
-8o<\x88hU\x1eq\xfe\x5c\xec\x8d>J\x00\x00\
-c\xa7\xfa&\xfd\x1fr\x88\xf4\xf5\xb1g\x07\x0b\xd2\x0d\
-\x1b\x9a\x81^\x9d\xf0r\xf6\xd9\x1d\xff \xa27\xe4\x13\
-\xe7o\xf2\x11\x02\x00\x18{\xd3c\x0f\xe4\x10\xe9\xd7\x0e\
-\x16\xa5]]em\xf3\xe6f\xa4Wg\xa5\xcf\x98\xd1\
-\xb1\x81~C\x1eq~4v\xad\x8f\x0e\x00\xc0\xf8\x99\
-Q\xd4\x1f\xcb\x9e<\xfen\x1e,L#\xc8\x07\xb6m\
-kFzOO=\xdc;,\xce\xf7\xe5s\xd6\xf9u\
->2\x00\x00\xe3\xafz,\xfb#\xa9\xe3oR\xec/\
-\x86x\x88Qm\xcf\x9ef\xa4\xaf[\xd7Qq\xfe\xf1\
-|\xce:\xdf\xed\xa3\x02\x000q\xce\x8c=\x91:\x02\
-\xcf\x18\xeaAF\x17]\xd4<\x1f}\xef\xde\xb2\xb6d\
-IG\xc4\xf9\xc1\xd8\xbc<\xe2\xfco\x8b\xfa1\x9d\x00\
-\x00L\xa0s\x8b\xfa\x13!\x93\xc6\xe0\xbc\xc69\xdf/\
-\x08\xd6+\xaeh~\x8b~\xeb\xade\xedE/j\xeb\
-8?\x14\xeb\xce#\xce\xef/\xea'\xff\x00\x00\x90\xc0\
-+b?H\x1d\x85\xe7\xc4\xfe\xf3\x84`\xad\x1eX4\
-p\xc3\x0d\xcdo\xd2\xab\x1f\x90\xb6i\x9c?\x13{M\
-\x1eq\xfe\xd5\xd8l\x1f\x0b\x00\x80\xb4\xd6\x15\xf5\x87\xd0\
-$\x8d\xc3U\x83\x9d\x91\xbepaY\xfb\xc8G\x9a\xdf\
-\xa4\xaf^\xdd\x96\x81\xbe9\x8f8?\x1c;\xc7\xc7\x01\
-\x00 \x0f\xaf\x8f\xfd<u$\xfeF\xe3\xdb\xe4\xe3\x02\
-\xf6\xbc\xf3\xca\xda\xfe\xfd\xf5@\xaf~<\xbahQ[\
-\xc5\xf9\xf6<\xe2\xfc\xbb\xb1n\x1f\x03\x00\x80\xbc\x5c\x11\
-;\x92:\x16\x7f\xefd\xf7\xa3W\xb7\xbdL\x99\xd2\x16\
-q\xfe\xb1\xc6i6\x89_\xf3\x1f\xc7V\xb9\xfc\x01\x00\
-\xf2tm\x91\xc17\xba\x7f4\xc8\xfd\xe8\xb5\xad[\x9b\
-\x91\xbeqc\xcb\xc7\xf9\xa7b\xb3\xf2xJ\xe8\x1b\x5c\
-\xf6\x00\x00y\xdb\x9e:\xd0\xab\x87\xf4\xec?1j\xcf\
-<\xb3\xec\xdf\xbd\xbb\x1e\xe8}}em\xe9\xd2\x96\x8d\
-\xf3Gb\x8b\xf2\xb8\xb5e\xb3\xcb\x1d\x00\xa05\xdc^\
-dxFz\xff\xda\xb5\xcdS]n\xba\xa9\xacM\x9d\
-\xdarq\xfed\xecW\xf3\x88\xf3\xed.s\x00\x80\xd6\
-19\xf6\x89\xd4\x11\xb9 \xf6\xf9\x13#\xfd\xaa\xab\x9a\
-\xb7\xba\x5crI\xcb\x05\xfa[\xf2\x88\xf3\xbf+<\x88\
-\x08\x00\xa0\xe5T\x0f\xab\xf9\xb7\xd41\xb9$\xf6\xd8\xb1\
-\x91[=\xb0\xa8zpQ\x15\xe8\xd5SF\xcf:\xab\
-e\xe2\xfc\xe6<\xe2\xfc\xde\xc6?\xc0\x00\x00hA\xd5\
-Ck\x1eN\x1d\x95\xbf\x1e{\xf6\xd8\xd8\xed\xee\xae\xdf\
-\x87^EzOOK\xc4\xf9?\xc6\xa6\xa6\x8f\xf3G\
-b/vY\x03\x00\xb4\xb6\x05\xb1C\xa9#\xfd\xf2\x13\
-\xa3\xf7\xe2\x8b\x9b\xb7\xba\xacX\x91u\x9c\x1f\x8c\xcdI\
-\x1f\xe7O\xc7\x16\xb9\x9c\x01\x00\xda\xc3\xb2\xd8wRG\
-\xfa\xf6c\xc3w\xf2\xe4\xb2v\xfd\xf5\xf5@\xef\xed-\
-k]]Y\xc6\xf9\x13\xb1\x97\xa5\x8f\xf3\x1f\xc6~\xc5\
-e\x0c\x00\xd0^^U\xd4\x1fj\x93,4\xab\x87\xfa\
-\xfc\xcd\xb1\x01<o^Y\xfb\xf0\x87\xb3\xfd\x16\xfdp\
-lC\x1eg\x9dop\xf9\x02\x00\xb4\xa7\xd7\xc7\x9eO\
-\x19\x9c\xd5\xc3}>}l\x08\xafYS\x0f\xf4\xb7\xbd\
--\xbb@\xef\xcd\xe3G\xa1\xefr\xd9\x02\x00\xb4\xb7\xde\
-\xd4\xd1\xb9,\xf6\xf8\xb11|\xcd5e\xff-\xb7d\
-\x15\xe7\x07b\x93\xd3\xc7\xf9G]\xae\x00\x00\x9d\xa1/\
-u\xa4_\x14{\xe6\x97A<sfY\xbb\xf1\xc6l\
-\xe2\xfc\xa1\xd8\xec\xf4q\xfe@Q?*\x13\x00\x80\x0e\
-P=\xe4\xe6@\xeaH\x7f\xeb\xb1a<gN\x16q\
-~(\xb64}\x9c\xffG\xe18E\x00\x80\x8e3=\
-\xf6\xd9\xd4\x91\xbe3\xa3\xdbZ\xfac\xeb\xd3\xc7\xf9\xe1\
-\xd8b\x97'\x00@g\x9a_$>#}j\xe3!\
-@9\x04\xfa\x1f\xa6\x8f\xf3\xea\x94\x9d\x95.K\x00\x80\
-\xce\x96\xfc\x8c\xf4\x85\xb1\x87\x13\xc7\xf9]\x8dc \x13\
-\xbe\x0eGb\xbf\xedr\x04\x00\xa0\x92\xfc\x8c\xf4\xf3b\
-O&\x8a\xf3\xaf\xc4^\x92\xfe\xdb\xf3\xad.C\x00\x00\
-\x8eU\x9d\x91\xfe\x5c\xcaH}S\x828\x7f:v\x81\
-\xe3\x14\x01\x00\xc8\xd4\x96\xc4\xa1Z\xde2\xc1\x81\xde\x93\
->\xce?W\xd4\x7f\xb0\x0b\x00\x00\x83\xda\x972X\xa7\
-\xc4>>Aq~G\xac+m\x9c\x7f+\xb6\xd0%\
-\x07\x00\xc0p&\xc5\xeeM\x19\xe9sc_\x18\xe78\
-\xffLlf\xda8\xffQl\x85\xcb\x0d\x00\x80S1\
-#\xf6\xa5\x22\xf1\x8fF\x9f\x1a\xa78\xffzly\xfa\
-\x13[6\xba\xcc\x00\x00\x18\x89\x97\x16\xf5\x87\xe6$\x0b\
-\xd9\xdf\x1d\xa7@\xbf4\xfd}\xe7\xdb\x5c^\x00\x00\x9c\
-\x8e\xea\xa19?I\x19\xb3\xbb\xc78\xce\xff$}\x9c\
-\xdf\x13\xebri\x01\x00p\xba\xde\x1c;\x9a*h\xcf\
-\x88\xdd7Fq~\x7f\xe3\xcfK\x18\xe7_\x8b\xcdr\
-I\x01\x000Z\x1fL\x18\xb5\xe5\xe2\xd8c\xa3\x8c\xf3\
-'b\xcb\xd2\xc6\xf9\xf7\x8a\xfaS[\x01\x00`\xd4\xaa\
-\x93]>\x912\xd2\xd7\xc7\x0e\x8f\x22\xd07\xa5\xffQ\
-\xe8%.#\x00\x00\xc6Ruk\xc6\xa3)#\xbd\xf7\
-4\xe3\xbc/\xfd}\xe7;\x5c>\x00\x00\x8c\x87\xead\
-\x97\xfeT\xa1;)v`\x84q\xfe`\xfa\xf3\xce\xff\
-\xb5\xa8\xff\x0f\x04\x00\x00\x8c\x8b\xb5\xb1\x9f\x16\x09\x1fb\
-\xf4\xc5S\x8c\xf3\xea\x1c\xf5\x15i\xe3\xfc\x1b\xb1\xb9.\
-\x19\x00\x00\xc6\xdb\x95\x09\xa3\xb7|e\xec\xdb\xa7\x10\xe8\
-W\xa7\x8d\xf3\x1f\xc7^\xe1R\x01\x00`\xa2\xf4\xa5\x8c\
-\xf4\x9e\x93\xc4\xf9\x9d\xe9\xef;\xff\x1d\x97\x08\x00\x00\x13\
-iJ\xec\xd3\xa9\x02\xb8+\xf6\x97C\xc4\xf9\x97bs\
-\xd2\xc6\xf9>\x97\x07\x00\x00)\xcc/\xea\xf7Y'\x09\
-\xe1\xd9\xb1\x83'\xc4\xf9\xb3\xb1\xd5i\xe3\xfc\xc1\xd8T\
-\x97\x06\x00\x00\xa9\x5c\x10\xfb\xdfTA|\xc1\x09\xf7\xa3\
-oM\x1b\xe7\xdf\x8f\x9d\xed\x92\x00\x00 \xb5\xab\x13F\
-\xf1\xff\xfd\x18\xb4\x8a\xf3\x7f\x8fMI\xf7\xf78\x1a\xbb\
-\xd8\xa5\x00\x00@.nO\x19\xe9\xbbbK\xd2~{\
-\xbe\xcd%\x00\x00@N\xa6\xc5>_$\xfc\xd1h\xc2\
-8\x7f\xa8\xa8\xffh\x16\x00\x00\xb2rV\xecp\x91\xfe\
-\x88\xc3\x89\x5c\xf5d\xd53\xbd\xf5\x00\x00\xe4\xea\xc2\xd8\
-\xcf:$\xce\x9f\x8f\xfd\x9a\xb7\x1c\x00\x80\xdc\xbd\xb3C\
-\x02\xfdFo5\x00\x00\xad\xe2\xce6\x8f\xf3\xfbb\x93\
-\xbc\xcd\x00\x00\xb4\x8aY\xb1Cm\x1a\xe7\xdf\x89-\xf2\
-\x16\x03\x00\xd0j\xce\x8f\xfd\xa4\xcd\xe2\xbc:\xef|\x83\
-\xb7\x16\x00\x80V\xb5\xa9\xcd\x02}\x87\xb7\x14\x00\x80V\
-\xd7\xd7&q~\xb0p\xde9\x00\x00m`j\xecs\
--\x1e\xe7?\x8c-\xf3V\x02\x00\xd0.\xce\x8e}\xaf\
-\x85\x03\xfd2o!\x00\x00\xed\xe6u\xb1#-\x18\xe7\
-\x7f\xed\xad\x03\x00\xa0]\xedj\xb18\x7f26\xc7\xdb\
-\x06\x00@\xbb\xaa\xeeG\xffb\x8b\xc4\xf9s\xb1U\xde\
-2\x00\x00\xda\xdd\xb9E\xfdG\x97\xb9\x07\xfaM\xde*\
-\x00\x00:E\xee\xe7\xa3;R\x11\x00\x80\x8e\xf3\xd1L\
-\xe3\xfc\x7fb\xcb\xbd=\x00\x00t\x9a3b_\xc90\
-\xd0\xdf\xea\xad\x01\x00\xa0Su\xc7~\x94Q\x9c\xdf\xe5\
--\x01\x00\xa0\xd3\xbd%\x938\xffvl\xae\xb7\x03\x00\
-\x00\x8a\xe2\xef\x13\xc7\xf9\xd1\xa2\xfe %\x00\x00 \xcc\
-\x8b=\x930\xd0\xef\xf0\x16\x00\x00\xc0\xf1^\x1b;\x92\
- \xce\x9f\x8a\xbd\xd8\xcb\x0f\x00\x00/\xb4m\x82\xe3\xfc\
-\xf9\xd8\x1a/;\x00\x00\x0c\xaez8\xd0\xc1\x09\x0c\xf4\
-]^r\x00\x00\x18\xde\xb9\xc5\xc4\x1c\xbd\xf8\xb5\xa2~\
-\x16;\x00\x00p\x12W\x8ds\x9c\xff<\xf6J/3\
-\x00\x00\x9c\xba\xbb\xc61\xd0\xb7{y\x01\x00`d^\
-\x12\xeb\x1f\x878\x7f\xacpk\x0b\x00\x00\x9c\x96\xea\xe1\
-AG\x8b\xb1=\xb5e\x95\x97\x15\x00\x00N\xdf\xde1\
-\x0c\xf4[\xbc\x9c\x00\x000:\xd5\xed(\x8f\x8eA\x9c\
-W\x7f\xc64/'\x00\x00\x8c^u\xe2\xca\xcf\x0a\xa7\
-\xb6\x00\x00@6\xb6\x8e\x22\xd0o\xf3\xf2\x01\x00\xc0\xd8\
-\x9a\x14\xfbL\xe1\xd4\x16\x00\x00\xc8\xc6\xb2bdO\x19\
-\xadNmY\xede\x03\x00\x80\xf1\xf3\xf6\x11\x04\xfa.\
-/\x17\x00\x00\x8c\xbf\xbbO!\xce\xff\xabpk\x0b\x00\
-\x00L\x88\xea)\xa3\x03\xc5\xf0\xb7\xb6\x5c\xe8e\x02\x00\
-\x80\x89\xb3\xa1\x18\xfa)\xa3\xbb\xbd<\x00\x000\xf1\xfe\
-|\x908\xffzl\x86\x97\x06\x00\x00&\xde\xcc\xd8\xa1\
-\xe2\xf8[[\xd6xY\x00\x00 \x9d\x95E\xfdI\xa1\
-U\xa0\xef\xf5r\x00\x00@z\x1f\x8c}\xa3\xa8\x7f\xa3\
-\x0e\x00\x00$6-v\x81\x97\x01\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x0e\xf2\x0b@\
-;\x84\xc7\x9dY\x0c\xd3\x00\x00\x00\x00IEND\xae\
-B`\x82\
-\x00\x00\x09\xc0\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x00\x9c\x00\x00\x00\xb2\x08\x03\x00\x00\x00\x80\xc0V9\
-\x00\x00\x00\x01sRGB\x00\xae\xce\x1c\xe9\x00\x00\x00\
-\x09pHYs\x00\x00\x0d\xd7\x00\x00\x0d\xd7\x01B(\
-\x9bx\x00\x00\x00\x07tIME\x07\xdc\x03\x09\x08\x1d\
-0D&N\xa6\x00\x00\x02\xd3PLTE\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x00\x02\x01\x00\x03\x02\
-\x00\x04\x02\x00\x05\x03\x00\x06\x03\x00\x06\x04\x00\x07\x04\x00\
-\x08\x05\x00\x09\x05\x00\x0a\x06\x00\x0b\x07\x00\x0c\x07\x00\x0d\
-\x08\x00\x0e\x08\x00\x0f\x09\x00\x10\x0a\x00\x11\x0a\x00\x12\x0b\
-\x00\x13\x0b\x00\x14\x0c\x00\x15\x0d\x00\x16\x0d\x00\x17\x0e\x00\
-\x18\x0e\x00\x19\x0f\x00\x1a\x10\x00\x1b\x10\x00\x1c\x11\x00\x1d\
-\x11\x00\x1e\x12\x00\x1f\x13\x00 \x13\x00!\x14\x00\x22\x14\
-\x00#\x15\x00$\x16\x00%\x16\x00&\x17\x00'\x17\x00\
-(\x18\x00)\x19\x00*\x19\x00+\x1a\x00,\x1a\x00-\
-\x1b\x00.\x1c\x00/\x1c\x000\x1d\x001\x1d\x002\x1e\
-\x003\x1f\x004\x1f\x005 \x006 \x007!\x00\
-8\x22\x009\x22\x00:#\x00;#\x00<$\x00=\
-%\x00>%\x00?&\x00@&\x00A'\x00B(\
-\x00C(\x00D)\x00E)\x00F*\x00G+\x00\
-I,\x00J,\x00K-\x00L.\x00M.\x00N\
-/\x00O/\x00P0\x00Q1\x00R1\x00S2\
-\x00U3\x00W4\x00X5\x00Y5\x00Z6\x00\
-[7\x00\x5c7\x00]8\x00^8\x00_9\x00`\
-:\x00a:\x00c;\x00e=\x00g>\x00h>\
-\x00i?\x00j@\x00k@\x00lA\x00mA\x00\
-nB\x00oC\x00pC\x00qD\x00sE\x00t\
-F\x00uF\x00vG\x00wG\x00yI\x00zI\
-\x00{J\x00|J\x00|K\x00}K\x00~L\x00\
-\x7fL\x00\x80M\x00\x81M\x00\x82N\x00\x83O\x00\x84\
-O\x00\x86P\x00\x87Q\x00\x88R\x00\x8aS\x00\x8bS\
-\x00\x8eU\x00\x8fV\x00\x91W\x00\x93X\x00\x94Y\x00\
-\x95Y\x00\x96Z\x00\x98[\x00\x99\x5c\x00\x9c^\x00\x9d\
-^\x00\x9e_\x00\x9f_\x00\xa0`\x00\xa1a\x00\xa2a\
-\x00\xa3b\x00\xa4b\x00\xa5c\x00\xa6d\x00\xa7d\x00\
-\xaaf\x00\xacg\x00\xadh\x00\xafi\x00\xb0j\x00\xb1\
-j\x00\xb2k\x00\xb3k\x00\xb4l\x00\xb5m\x00\xb6m\
-\x00\xb8n\x00\xbap\x00\xbbp\x00\xbcq\x00\xbdq\x00\
-\xber\x00\xbfs\x00\xc0s\x00\xc1t\x00\xc2t\x00\xc3\
-u\x00\xc5v\x00\xc7w\x00\xc8x\x00\xc9y\x00\xcay\
-\x00\xcbz\x00\xccz\x00\xce|\x00\xcf|\x00\xd0}\x00\
-\xd1}\x00\xd2~\x00\xd3\x7f\x00\xd4\x7f\x00\xd5\x80\x00\xd6\
-\x80\x00\xd7\x81\x00\xd8\x82\x00\xd9\x82\x00\xda\x83\x00\xdb\x83\
-\x00\xdc\x84\x00\xdd\x85\x00\xde\x85\x00\xdf\x86\x00\xe0\x86\x00\
-\xe1\x87\x00\xe2\x88\x00\xe3\x88\x00\xe4\x89\x00\xe5\x89\x00\xe6\
-\x8a\x00\xe7\x8b\x00\xe8\x8b\x00\xe9\x8c\x00\xea\x8c\x00\xeb\x8d\
-\x00\xec\x8e\x00\xed\x8e\x00\xee\x8f\x00\xef\x8f\x00\xf0\x90\x00\
-\xf1\x91\x00\xf2\x91\x00\xf3\x92\x00\xf4\x92\x00\xf5\x93\x00\xf6\
-\x94\x00\xf7\x94\x00\xf8\x95\x00\xf9\x95\x00\xfa\x96\x00\xfb\x97\
-\x00\xfc\x97\x00\xfd\x98\x00\xfe\x98\x00\xff\x99\x00\xff\xff\xff\
-s\xb6\xc7\xfa\x00\x00\x00\x08tRNS\x00\x09\x0e\x1b\
-(=\x5cr\xeeu#\xcb\x00\x00\x00\x01bKGD\
-\xf05\xb8\xefT\x00\x00\x06RIDATx\xda\xed\
-\x9c\xf9_\x94U\x14\xc6\xad\xacf\x18mTP\xc0\x04\
-\xc4\x85E\x05\xc1\x0d\xc9P\xd1\xc8\x5cZ\x15\xb5\xc5$\
-\xca4\xcb4\xcbJ\xcd\xca\xd2\xd4RJ\xcd\xca4\xb2\
-\x12\xcd\xcaL\xb1 \x90\x08DS@\xf6M\xf6\x01F\
-\x99a\xe6\x9d\x7f!\xd6\x98\xe5]\xeer\xee0\x9f\xbc\
-\xcf\xcf\x9c\xf7~\x99y\xdf\xf7\x9e\xf3\x9cs\xa7_?\
-...........W\xd5\x1dw\xbb\
-\x88\xfa\x8b\xc0\xdd\xa9r\x11\xdd\xc5\xe1n)\xb8dc\
-\x9f\xaa@\x16.\xc5\xd2\xa7*\xe3p\x1c\x8e\xc3\xc1\xc1\
-\x99]\x18\xae0\xe4G\xe2\xa5u\x8c\xe1\xcaBT\xda\
-S\x84lY\xbe;\x98\xc2U\x84\xb6\xff\xcd\x903D\
-l\x17\x86\xabT\x9b\x19\xc2U\x85un~\xee\xbf\x11\
-\xb0\xa5{w\x84\xbe\xcd\x0c\xae6\xa2{kv?\x8b\
-\xcd\x96\xe6\xdd\x15\xbaI`\x03W\x17\xf9_\xe2\xe0~\
-\x0e\x93\xedO\xaf\x9e\xd0\x97\x05\x16pM\xd1Vi\x8d\
-\xc7y,\xb6T\xaf\xde\xd0\x97\xcc\xf0p\xcdsm\x92\
-.\xcfT\x0c\xb6d\x0f\xeb\xd0\xb86h\xb8\x96\x18\xbb\
-\x94\xd0+\x0d\x99\xed\x9c\x87m\xe8\xb3m\xb0p7\x1f\
-qHX\xbd\xd2\x11\xd9\xcez\xd8\x87>c\x84\x84k\
-}L$\x9d\xf6\xbe\x80\xc4v\xc6\xdd1tI+\x1c\
-\x9cq\xb9h\xb2\xef\x9d\x81\xc0\xf6\xab\xbbX\xe8\xe37\
-\xa1\xe0\xda\x9e\x96(E|\xb2\x15\xd9N\x0f\x11\x0f}\
-\xf4\x06\x0c\x9c\xf9y\xc9B\xc9\xf7\xa2\x02\xdb\xc9AR\
-\xa1\xf3\x9a \xe0\xcc/\xca\x94q~9\xb2l'\xb4\
-\xd2\xa11:z8a\x8dl\x91\xe9wI\x86-I\
-+\x17\x1aUG\x0d\xf7\x9aB\x09<\xf2\xb2$\xdbq\
-\xad|\xe8\x8cZJ\xb87\x14\x0bt\xff\x7f$\xd8~\
-\x18\xa8\x14\x1aYM\x05\xf7\x1e\x82}06_\x94-\
-Q\xa3\x1c:\xa9\x9c\x02n'\x92\xb9\x11pM\x84\xed\
-\x1b\x0dJhX\x191\xdc.D\xeb%\xb0\xc0\x81\xed\
-\x88\x06-4\xb8\x80\x10\xeecdc(\xb0\xd0\x8e\xed\
-k\x0djhP>\x11\xdc~5\xbam\x15Td\xc3\
-vX\x83\x1e\x1a\x90G\x00w\x10\x83M\xa5\x0a\xb5\xbe\
-y\xbet\xc3\x09\xf5\xcf\xc1\x86;\x8a\xb5@;]9\
-\xd1G\xde\xf9\x22\xcf\xc6\x84K\xd4\xa805\xb1\xa2;\
-\xf435n\xa8\xef\xdfxp\xcb\xf0\xed\xd2\xc8:\x82\
-\xef\xb4{\x9f\xc5\x833.\xc5_\x22\xbc\xb2=0A\
-\x8d\x1f\x18Q\x8dy\xcf\x19b\x09\x16\xa9\xb1\xec#`\
-\x8b\xaa\xc7~Z\x0dK\xf0\x97\x99\xfe.\x81{>\xb3\
-\x9e\xe0=gX\xec\x14g\x7fV\x03\xd1\x0eqc\x91\
-\x13\xd8f7\x12\xee\xad\xfa\x85\xcc\xd9\xa2\x1b\x89\xb3\x12\
-\xfd\x02\xc6l\x0f\xb5P\xe4s\xfa\xf9L\xd9\xe6\xb7P\
-e\xc2-\xf3\x18\xb2-l\xa1\xac!t\xd1\xcc\xd8\x16\
-\xe9\xa9K\xc3\xc6Y\x8c\xd8\x1e\xd6\x03\x14\xd5\x8d3\x99\
-\xb0\x89\xf9%\x04vDC\x14\x03\xb6\xd8V #\xa7\
-\xe1~p\xb6\xa5\x060\x0b\xacf\x1a0\xdbr\x03\xa0\
-yX=\x15\x94\xedI\x03\xa8\xedz}\x0a \xdbS\
-\xa0\xcef\x07\xddd0\xb6\xe7L\xe0V\x7f\xd5$ \
-\xb6x\x13\x83&Ie8\x08\xdb\x0b&&\xed\xa5\xd2\
-\x09\x00l\xabL\x8c\x1as%\xe3\xa9\xd9V\x9b\x99\xb5\
-4\x8b\xc7Q\xb2\xad\x13\x186\x83\x8b\x83\xa9\xd8^\x15\
-\x98\xb6\xd1\xf3\xc6P\xb0m\x10\x18\x0f \xe4\x92\xd3m\
-Tb\xa3\x1f\xdd\xc8\x1dM\xc8\xf6\xba\x22\x1b\xc0\x5c\xc9\
-\xd5QDl[\x9d3\xf4\xf2\xd7=\x04l\xdb\x9c3\
-\x91\xd3\xfc \xc9\x07\xb7\xc9)pM1d\xb7\xdc\x9b\
-N\x80kz\x80\xf4a\xdd\xce\x1cN7\x97\xfc5\xf7\
-!c\xb8z\xaaZg'S\xb8:\xcaJ\xe7#\x86\
-p\xb53h\x93\x92]\xec\xc6\x85\xee\xa3O\xe7\xf60\
-\x82\xab\x89\x04\xc85\xd5\x09L\xe0\xaa\xa7\x83d\xe9\xea\
-O\x19\xc0U@\xd57\xea\xfd\xe0p\x15\xe1*(\xa9\
-\x0f\x00\xc3\x95\x87\x01\xd6\xd4\xea\x83\xa0pe\x13A\xdd\
-\x08\xb7\xc3\x80p\xa5\xa1\xc0>\x8e\xdb\x110\xb8\xc2`\
-\x15\xb44G\x81\xe0\x0a\x82\x18x\x87\x9aD\x10\xb8k\
-\x81L\x5cW\xcd\xb7\x00p\xf9l\xd8\xda\xe9\x8eQ\xc3\
-\xe5\x050s\xfa\x07&Q\xc2\xe5\x8ee\xd8#\xd1\x9e\
-\xa0\x82\xbb\xe4\xcf\xb4\xbb\xa4=I\x01\x973\x92q_\
-\xce~\x08\x1f\x03\xee\xa2\x1f\xf3\x8e\xe6\xa0\x9f\x08\xe1\xb2\
-\xd9\xb3\xd9\x1f\x11@\x86\xcb\xf2\xc5_j0\xfe\xf8\x81\
-\xcd\x10>*\x5c\xc7\xf1\x05\x5cy\xa6\x10\x0cnX\x0f\
-\xe1#\xc2\xa5{\xe3\xb3\x0d\xcf\xb0X\xf6\xe1\x87y$\
-c\xc2\xa5\x11\xb0\xdd\xdb9\xd3\xbc\x97\x80\xee<\x1e\xdc\
-\x1a\x92\xef\xb4+t;~\xe8\x846,8\xd3j\xdc\
-\x05Fd\xf6\xfc\xfb\x9f`\x87fa\xdes\xc2z\xbc\
-\x05|2{o\xeb\x0f0o\x87L\xec\xa7U\xd8\x88\
-\xb3\x80\xbf\xcd\xb4\xf0\xfb8\xa1\xc3RI^\xc2\xef\xa0\
-/0\xcanVx\x1bz\xe8\xd0\x14\xb2\xed\x0b\xf9\xd6\
-\x1e}\xc5>\xbd\xd8\x8a\xfc\xa4\xfeA\xba\xf1\xef!e\
-\xb3X\xb6 n)\xa7\xc9S&\xa4a\xdc1W\xc5\
-\xca\x81\xcdH\xfb\xfe/4\xc9\xe6\x01\xe5\xed(\xb8P\
-\xb4\x90\x126 \xe4\xc2\xc7\xe9\xd2\xf4\xcf\x95&0\xc7\
-\x15I\x14\xc8\xca/\xa3\x01\xdf\xd3\x168_\xc8\xd3\x8d\
-/\x964>\x84u\xd8\x955vixl\x80\xdc\xc6\
-S,ch\x09\xaf\xc8\xb2}\x05QT\x7f'}\xae\
-!\xa4D\xd6\xa8\x14\xd6\xca\xb89\x87`\xec\x88S\x83\
-%\x16\x08-U0\xa0\xcd\xab$\xe1\x12\xa0\x8c\x9c\x9f\
-\xc5\xcfGM\xaeTl,H\x9e|\xda\x0bg\x81%\
-\x0f\x15\xb9\xfe\x94*\x84\x86\x91)^\x94m\x07\xa4y\
-\xf8\xfb0\x87\xebO\xbd\x8et\x9a\xcf\x14\x87\xd1B$\
-\xb4]S<\xed\xae?\x0d\x8d\xad\x9dn\xa5\x03\xdb\x16\
-h\xc3:c\x84\xcd\xf5#\xaa\x91O\x90\x9aV\xd8\xb1\
-\xbd\x05o\xf5g\xfaX]\xdfjd[Y\xc6e\xa8\
-\xe3\x1b\xe4M\x92\xcb\xbd\xeds\xeb\x91m\x04\x19\xac\x8f\
-\x08\xac\x15\x98\xb4\x97\xae\xf4\x0cF\xcc\xc6c\xb39\x22\
-\x10of\xd4\x98+\xec\x1a\xc8\xb1\x1d\xd9F\xa3\xeb\x19\
-\xc2\x8f31ki\x16u\x8cZ\xcd\xd1Y\xf0\xd5\xfa\
-D'\xdb\x0a\x13\xc3fpI\xa8\xc3\xc86\xa2:\x8f\
-\x08\xc4\x1a\x99\xb6\xd1\x8bW6Z\xc8\xa4_\xa0Zl\
-`?WB(\xdd\xfaf\x8b\xcb\xc29g\x22\x87\xc3\
-q8\x0e\xe7\x02p\xbb\x93\xfaT\x87d\xe1\x5cA\x1c\
-\xee\x96\x81\xbb\xad\xbf\x8b\xe8v\xfe\x83\xac\x5c\x5c\x5c\x5c\
-\x5c\x5c\x5c\x5c\x5c\x5c\x5c\xffC\xfd\x0b\x99\xa5\x5c~G\
-q`B\x00\x00\x00\x00IEND\xaeB`\x82\
-\x00\x00/`\
-\x89\
-PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
-\x00\x01[\x00\x00\x01\x5c\x08\x06\x00\x00\x00f\xca\x1dU\
-\x00\x00\x00\x01sRGB\x00\xae\xce\x1c\xe9\x00\x00\x00\
-\x09pHYs\x00\x00\x0d\xd7\x00\x00\x0d\xd7\x01B(\
-\x9bx\x00\x00\x00\x07tIME\x07\xdc\x03\x09\x08\x1f\
-%\x1b\xcd\xc8\xcf\x00\x00\x00\x06bKGD\x00\xff\x00\
-\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00.\xe0IDATx\
-\xda\xed\x9d\x09t\x15U\xb6\xfe\xaf\xb6C\xdb-\xdc\x9b\
-\x00b\xdb\xb4\xa2\xb6\xf6\xa0\xdd\xb6\xa2>q\xa0\xaa\x92\
-0*\x8a \xa2\x88\x8a8\xb7-\x88\xa08a\xa7E\
-Q[[\x14'\x22!u+\x84\x00\x81\x10H \x10\
-\xa6@\x98\xc7\x80!\xcc\x90\x90\x89\x84\x04\x12\x12\x12\x12\
-\x02\xa9W\xbb\x82\x1aHn\x86\x9b[u\xeb\xd4\xf9~\
-\xff\xf5\xad\xf7_\xbd^?\xaa\xce>\xe7\xcb\xb9\xa7\xf6\
-\xd9\xdb\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x18@\x07Y\xbc2P\x11\xba\x06\xc8B_\x97,\
-\x0eu\xb9\xc5QNE\xfcX\xfb\x9f\xe1\x9a\xe24\xa5\
-\xb8\xdcB\xba\xa6\x03\xb5\x12\x0b5\x1d\xd3\xfe\xff\xc7\xb5\
-\xff\xa9\xd6\x97\xfe\x9f\x1f\xab\xfd\xdf\xfb\xe9\xbf\xa3\xff\xf7\
-Wj\xff\xd9\x1cM\x93\x9dni<\xfd;\xf4\xef\xd1\
-\xbf\x1b(\x8bw\xd1s \x1a\x00\x00v\x09\xebrq\
-\x80\x12\xfcw\xcd\xe0\x06\xe8\x06\xe7\x16\xbfq*\xc2\x82\
-Z\x03\x14+\x1a6L\xbf\xa9\xe2\xecs\xcd\xd7\xf4\xb5\
-K\x91^w\xc9R\xff\x00\xb9\xdb\xdf\xe8=\x10L\x00\
-\x80\xffQ\x1d\x17\x04\xba\xa5\x9b\x9c\xb20P\xdb1\x86\
-jf\x95\xa0)\xcfbf\xdaZ\xe5\xe9\xef\xa5\xbd\x1f\
-\xbd'\xbd/\xbd7\x82\x0f\x000\x8e\x89\xbd/\x0d\x8c\
-\x08\xba\xdb\xe9\x16Gk\xe63W\xdb\x11\xe6\xda\xccX\
-\x9b)\xfd\xbd\xe9\xb8c\x14\x1d\x878b\x06^\x82\xc9\
-\x01\x00\xf0\x9a6Jp;\x97[z0\xc0-|\xaa\
-\x19\xcb*\xcddO\xf2i\xae\x8d\xeb\xec\xb8\xa4\xd0\xb9\
-3\x9d\x07\xb7\x0d\xef\x19\x88\xd9\x03\x00ht\xe7Jf\
-\xa1\x99k\xd8\xd9\x0fS0S\xefw\xbf\xf4\x91\xee+\
-\xcd\x80Ch\x5c1\xb9\x00\xe0\x9c\xc0(\xb1\x93\xb63\
-{V3\x88Yg\xbf\xe8\xc3(}o\xbcG\xb5?\
-`3]\xb24\xac\x9d\x12\xf4{\xcc:\x00\xf89\x1e\
-\xb8\xb1\xf6\x83\x96\xfe\x15\x1efh\xbe\xf9\xa6\xd3\xf8\xb7\
-\x95\xbb\xdd\x80\xd9\x08\x80\xcdp\xba\x83\xae\x87\xc1Z\xd7\
-x\x9d\x11!\xd7a\x96\x02\xc0(\x9db\xba^\xe6r\
-KOi\x8bz\xa9\xa6\xd306K\x8b\xe2\xb38@\
-\x11\x87t\x96\xc5_c\xf6\x02\xc0\xc2.V\x11C\x02\
-\x14)\x06\xd9\x03\xcc\xaa\xd4\xa5H\x91\xfa\xc75\x00\x80\
-\xe5\xcea\xdbi\x8bs\x8cf\xb0;aV\xf6:f\
-\xa0\xb8\x22\x9d\x0c\x00?\xe3\x92\xc5\xce\x94b\xe4\xb9n\
-\x00d\x13\x95h\x9a\xe0\x0a\x0f\xba\x06\xb3\x1e\x00\x93\x8f\
-\x0aj\xaf\xc7\x0ag`D\x5c\xedt)\xde\x09\x01\x91\
-\xe2\xbdX\x05\x00\x18E\xb2xQ\xed\x07/a\x0bL\
-\x07\xd2\xb4\x99\xe6\x83#f\xe0\xaf\xb08\x00\xf0\x05\xa1\
-\xa1\x17\x06\xc8\xd2`\xa4mA\x1e\x94\xa6\xfd\xd2\x19D\
-\xf3\x04\x8b\x05\x00o\xd0v,N\xb7\xf4\x82\xb6\x982\
-`(P3j4\xec\xc2N\x17\x80\x96\xa0:.\xd0\
-\xcb\x16b'\x0by\xa7\x1d4\x7fP\x0a\x12\x80Fp\
-EJ\x82\xb6XV\xc30 \x1f|L[\x89\x0fi\
-\x00\x9c\x07u\x068{\xd3\x0b&\x01\xf9ZK4\xd3\
-\xbd\x19\xab\x0cp\xcd\xe5\x11\xf7u\xa8-i(V\xc3\
-\x14 \x03u\x8a\xe6Y\x9bh\xb1=V\x1d\xe0\xed\xe3\
-\xd7%t3\x08e\x0d!\xb3\xcb=\xba\x14q\x04\xa5\
-\x11b\x11\x02\xfb\x1f\x19\xb8\xa5{\xb4\x89\x9f\x8a\x85\x0f\
-\xf93G\x97:\x0cc5\x02[B\xf5\x0b\xa8@\x0c\
-\x16:d\x11\xd5P\xc1\x1b\xd4]\x00\xb6\xe2l\xa9\xc3\
-|,p\xc8\x82\xf9\xb9\x87\x9d\x8a\xf8\x08V)`\x1a\
-j;s\xb6\xc57\x166\xc3\xfaG\xec\xe3\xeaK\xab\
-\xc6\xab\x13\xd2\xa2\xd5y\x99+\xd5-\x85\xbb\xd4\xbd%\
-\x87\xd4\x8c\xd2<u\xdf\xf1l5\xb5h\x8f\x9a\x98\xb5\
-F\xfd&=F\x1d\xb1\xf6s\xf5\xff\xe6>\xad\x06\xb8\
-%\xd6\xde3\x01m{\x00\xa3g\xb3\xc2\xe3\xda\x04.\
-\x84Y\xb1\xa9\xee\x0b^Q\xbf\xdf9[\xcd9Q\xa0\
-zCQe\x89\xaa\xec\x9d\xaf>\xbcx\xb4\x1a\xa8\xb0\
-b\xbcB\x81\xd3-=\x8a\xd5\x0b\x989\x9b\xd5&\xee\
-\x1c\x18\x16{\x22S|v\xe58}\xa7\xeaKh\xf7\
-;r\xdd\x17\xea\x15\x91!l\x8c\x85\x22\xc4\xd2<\xc6\
-j\x06\xd6\xdd\xcd\xcaR\x1f\x9c\xcd\xb2\xa9\x9e\x89\xff\xf2\
-\xb9\xc9\x9e\xcf~\xcdt\x07-}\x9b\x99\xb3\xdc@Y\
-\xec\x85U\x0d\xac\xc5\xc4\xde\x97\xd6\x16\xf1\x16k`\x5c\
-l\xa9\xe3\xd4\xee\xea\xa4\x9d\xb1j\x8d\xf6\xff\xcc\x82\xce\
-};G\xf7e#cA\x9b\xd7\x94\x17\x8eE\x0e\xfc\
-\x0e\xb5\xa4\xd6&\xe4\x06\x18\x17{\xbaqf\x7fuC\
-\xc1\x0e\xd5\x1f\xd0\x07\xb6\xdb\xe7\x0cae\x97\xbb\x16\x1d\
-\x80\x81_q)\xe2\xd3h\xac\xc8\xa6\xba\xce}F\xcd\
-\xf6\xf2\xe3\x97\xaf(\xae*U\xfb.\x1a\xc9\xca\x98\x95\
-\xe9\xd5\xc4\x000\x95\xb0.\x17\x9f\xadi\x00\xe3bP\
-\xdd\xe2\x9fWK\xaa\xcaT+Pu\xa6Z\x1d\xb0\xe4\
-Mv.B\xd0\xb1\x02\xae\xfb\x023\xf8\xed\xe4\xe0\x8e\
-T\xbe\x0e\xa6\xc5\xea\xd1\xc1\xc3^\xa7s\x19E\xe9\xa9\
-r\xf5\xce\xb8\xa7Y\x1a\xc7\xe4\xcb#{\x5c\x017\x00\
-\xc6\x9d\xcf*Awj\x13-\x1b\xa6\xc5\xa6\xda+\xc1\
-\xea\xea\xfcm\xaa\x15\xa13\xdc?L\xeb\xc3\xd2xf\
-\xb5\x95\x85;\xe0\x0a\xc0\xe7P\xb2\xb76\xc1N\xc0\xb4\
-\xd8\xd5'\xdb\xdc\xaa\x95\x99\xb6o!kcZ\xe6\x92\
-\xa5\xfep\x07\xe0\x1bBC/<\x9b\xd6\x05\xc3bX\
-\xf4\xe5\xbf\xf2t\x95\xa5\xcd\x96\xd2\xcf\xee_8\x82\xbd\
-\x826\xb2\x18\x8a6<\xa0Ut\x8a\xe9z\x19*u\
-\xd9C\x0b\xb2V\xab,\x90~\xec\x00C\xd7{\xebH\
-\x16\xdd\xc8\xc7\x05^A]\x14(\xbf\x10F\xc5\xbe\xee\
-\x8b\x7f\xce\xd4K\x0b\xade\xc8\xf2\xb1\xac\x8e\xf5jt\
-\x83\x00-\xa2\xcd\x14\xe9O\xda\xc4\xd9\x0f\xa3\xb2\x87\xe8\
-,\x94%\xd6\xe4ogy\xbc\xf7\xd1E\x1f\xb8\x08h\
-\x12\x97\xd2\xedV\xba\x17\x0e\x93\xb2\x87~\x1f\xd5[-\
-;U\xce\x94\xd9\xd2.\xfc\x96\xd9\x8f\xb3\xdc~'7\
-@\x09\xfe;\xdc\x04x\xce8\x88\x08\x0aB\xc6\x81\xbd\
-D?\xc9Y\xe4\xbdM\xdf\xb1>\xf6%\x81\x11Aw\
-\xc3U@}\xa3\x95\x85\xee\xda_\xe4r\x18\x94\xbd4\
-yW\x1c\x93f\xbb$g\xbd\x1d\xc6\xff\x84S\x11C\
-\xe0.\xa0\xce\xd1\x81\xf4\x9061*aN\xf6\x93\xd1\
-e\x13\x8d\x82\xae\x13\xdb$\x06\xda\xba\x92\x1e\x84\xcb\x00\
-\xba\xac0@\xdb\xd1V\xc1\x98\xec'jMS^}\
-Re\x15\xbaZl\x93\x16\xeaU\xb8\xfc\xc0\xfd\x8eV\
-x\x18Fk_\xfdqF?\x95eB\xe6\xbfl\xa3\
-xh\xebL\xfb\x05\x09\xd7\xe1sGK\xd7oO\xc3\
-\x94\xec\xab[c\x073m\xb6\x03\x16\xbfa\xb7\x98\x9c\
-F\x99F\xce\xd0~^\xde\x8f\x1d\xad\xfdu\xf7\xbca\
-L\x9b-\xc3\x97\x1b\x1a\xdd\xe1R\xfb(\xb8\x10\x0fG\
-\x07\xb2(jA\xaf\x80\x19\xf1\xd1\x82\x9ce\xfa/\x1e\
-m\xd7\xd8T\xb8\x22%\x01nd\xe7\x1dm\xa4x/\
-\xf2hqf\x8b3[K\xecp\x8f\xa3D\xa3}\xcf\
-h\xbbP\xa25L\x88\xafl\x84R\xc6n\x8f\xd5\x85\
-\xfeX\xd8<F\xc5tc\x13\xeed#\x02\xa3\xc4N\
-Z`s`@\xfcis\xe1.&\x8d\xb6\xa8\xb2\x84\
-\x97\x18e\xb5\x9f\xd2\xfd*\xb8\x94\x1dv\xb4\xd3\xee\x0d\
-p\xba\xc5\x9d0\x1e\xdc \xc3\x0d2\xcb\x1e)\xa4\xbb\
-d\xd1\x05\xb7b\x99\x89\xbd/\xd5\x82\xb8\x02\xa6\xc3\xaf\
-\x1e[\xf6\x0e\x93f;f\xc3D\xdeb\x95\x8cz\xb8\
-,g\x1e\xb8E\x19\x86\x83\xaa_\xa8\xfa\xc5\x88\x14a\
-\x0a\x5c\x8bM\xa3}\x0ff\x03\x91\x22\xf6\xc43e\xb6\
-\xcbs7\xf1\xfbQS\x16\xdf\x82{\xb1\x95y@\xf5\
-\x0e\xce\xc0h tj`\xee\xfc\xf6\x0c\xae\xf52\x94\
-\xe2\xe5t\x8b'a2P]\xc5\x1e\x5c\xc6\x84\xd1n\
-<\xb2\x03\xf1r\x8b\x15\xce\x88\xa0\xdb\xe0f\x16\x86\xfa\
-\x1f\xb9\x141\x13\x93\x15Bw]\xe6\x95\xd1F\x09n\
-\x07W\xb3\x221\x03\x7f\xa5\x05h\x09&)\xe4I\xef\
-o\x9edi\xb3\x0d\xdf=\x17q:\xe7R\x8a\x90D\
-\xeb\x1a\xe6f\xbd\x0fb\xe30A\xa1\xc6\xd4^\x09V\
-W\xe7o\xb3\xa4\xd1\xee-9\xa4\xfeaZ\x1f\xc4\xa9\
-^\x86\x82\xf8o\xb8\x9b\xe5>\x88\x895\x98\x9cPS\
-\xa2\x82\xdc9'\x0a,e\xb4t\xa5\xf8\xce\xb8\xa7\x11\
-\x1f\x0f\x1f\xcc\xa8J\x1f\x5c\xce\x0aF\x1b\xd9\xedZ-\
-(\xc70)\xa1\x96\xd4\xb9=\x5c^d\x09\xa3\xa5\x1c\
-\xe0\xe0\xf9/!.\x8d\xab0 2\xe4j\xb8\x9d?\
-\x09\xebr\xb1\x16\x88\xcd\x98\x8cPK\xd5u\xee3j\
-\xb6\x9fw\xb8\xc5U\xa5j\xdfE#\x11\x8f\xe6]x\
-X\xe3H\x16/\x82\xe9\xe1\x9c\x16b\xf2H\xa1\xbf\xba\
-\xa1`\x87\xdf\xceh)C\x02qh\x89\xa4\xf7\xe1z\
-\xfe0\xdaHI\xc0\xc5\x05\xa8\xb5j\xa7\x04\xa9\xa1\x9b\
-\xc3\xd4Sg\xaaMK\xef\x9a\xb43V\xed8\xb5\x07\
-\xc6\xbf\xe5\xaa\x0eT\x84\xaep?\x13\x09\x8c\xea\xddV\
-\x1b\xf8\x83\x98|\x90\xaf\xd43\xf1_\x86\xb7=\xdf\x7f\
-<[\x1d\xb4\xf4m\x8cw\xeb>\x98\x1d\xa0\xf5\x0f\x17\
-4kW\xabH\x91\x98t\x90\xaf\x15\xa8H\xea\xb3+\
-\xc7\xf9\xdct\xf7i&;r\xdd\x17\xea\x15\x91!\x18\
-g\xdf\x1c'D\xc0\x05\xcd0ZY\xec\x87\xc9\x06\x19\
-\xad\xee\x0b^Q\xbf\xdf9\xdb\xeb41*\xfe\xad\xec\
-\x9d\xaf>\xbcx\xb4n\xe2\x18S_\x17\xac\x11\xfa\xc2\
-\x0d\x0d\xe4\xf2\xc8\x1eWh\x03]\x84\xc9\x06\x99)j\
-\x1c\xf9\xd2\xaa\xf1\xea7\xe91\xea\xb2\xdcM\xea\x81\xd2\
-\x1c5\xa34\xef\x1c\xa5\x1c\xde\xaa\x17*\x1f\xb1\xf6s\
-\xf5\xff\xe6>\xad\xb7\xe4\xc1\xd8\x19\xaa\xfc\xb6\xe1=\x03\
-\xe1\x8a8>\x80 \x08\xf5o\xd9\xa4m\xa4\xd4\x13\x13\
-\x0c\x82\xa0:\xaaq*b\x08\xdc\xd1\x87t\x88\x11/\
-G5/\xa8\xb5\xea\x1c\xdd\xb7IQ\xee-\x1d\x1b4\
-%\xaa\x91+&\xbc\xd0\xa8\xa8\x15y\xbf\xa4QMj\
-\xf0\xb2w\xd5\xa1+B\x1b\xd5\x93\xc9c\x11\xc3\x86\xb5\
-\xafSL\xd7\xcb\xe0\x92>\xfb(&\xfc\x0f\x93\xea\x5c\
-\xfd%\xe6\x11u\xd4\xba\x09\xea\x84\xb4h\x8f\xfa*m\
-\xba*\xefIhR3\xf6'\xa9q\x19\xc9M\x8a:\
-\x08$\xe7mnTk\xf2\xb7\xeb_\xf3\x9b\x12}\xa1\
-?\xff\xdc\xf3|e\x95\xe5\xeb\xb7\xac\x9aR\xe5\xe9S\
-*\x0f\xfcm\xf6 \xcc\xfd\x06\xa4\xedn?\x86K\xfa\
-\x22\xa7V\x11\xba\xe2\xf2B\xe3\x1fo\xde\xda\xf0\xb5\xba\
-\xbe \x8d\xa9n\x04\xa0\xe5|\xf1c\x14\xe6\xbc\x87\xcb\
-\x0e(6\xdeZT\xc7\x05N\xb7\xb8\x0e\x93\xa9y\xa2\
-\xcaQ\x1fl\x99lxr>\xf0\x0f\x85'\x8b\xd5\xdf\
-E\xf5\xc4\x5co\xf8\xb2\xc3J\x18f\xebrj\x87b\
-\x12y\xa7\xeb\xa6?\xa8\xa7+-\xca^\xabV\x99t\
-\x15\x15\x18O\xe8\x96\x1f0\xbf=\xe6\xdeJ\x83\xe1\x9a\
-\xde_\xc9\xcd\xc7$j\xbd\xae\x8a\xea\xa5>\xb6\xec\x1d\
-\xfdl\x96\xb5\xb6\xde\xe0\x5cJ\xaa\xca\xd4k\xa2\x1f\xc0\
-\xbcnX9\x1d#{\xfc\x16\xee\xd9B\x9c\xb2\xf0\x11\
-&\x8f\xefE\x05P\xc8x\xe9\xc3\xd8\x11\xedg)`\
-\x8fO\xb6\xb91\x97=I\x16C\xe1\x9e-1\xda\xc8\
-n\xd7\xa2C\xae9\x15\xafz%\xbe\xaaW\xa1\xca+\
-/\x84\x8b1\x02uv\xb8vz_\xcc\xe1\x86U\xe1\
-\x0a\x0f\xba\x06.\xda\xdc\xb3Z\xb78\x0b\x93\xc6|\xdd\
-5w\xa8\xbek\xa2Z\xab\x00\x99\x09\xec\xa6\x82\x09\xd3\
-\xe0\xa2\xcdN\xf5B?1+\x18/\xd5yEJ\x99\
-5)\xaf>\xa9\xf7S\xc3\x5cm\xb8o\x993R\xbc\
-\x1dn\xda\xf4\xaev5&\x8b\xf5\x8c\xf7\xc3\xadS\xd4\
-mE{\xe1r\x16\xe2\xeb\x1d31?=k)\xdc\
-\xb4\xb1\xb3ZE\x0c\xc1$\xb1\xb6\xae\x9f\xfe\x10R\xca\
-,\x02\x8d?5\xaf\xc4\xbc\xf4\xf8\xb1L\x84\xabz\xb8\
-\xc0\xa0\x0d\xd0FL\x12\xb6j\x0d\xd0\xbd}\xa4\x94\xf9\
-\x8f\x99\x07\x16c.z\xd6j\x18k\x03\x04\xc8R\x1f\
-L\x0evu\xe5\xd4\x9eH)\xf3\x03gjj\xd4n\
-\xf1\xcfc\x0ez\xae\x9b\x80\xaa`\xf5w\xb5\xc2\x16L\
-\x0e\xfb\xa5\x94\x1d./\x82#\x1a\xcc\xe2\xec\xf5\x98w\
-\x9e\xcc\xd6-\xae\x85\xc1\xd6\xfd(\xa6H\x0fab\xd8\
-\xb7\xaf\x17\x95\x1b\xacM)\xcb\x823\x1a\xc4\x83I#\
-1\xdf<]\xe3U\x84\xdep\xd9_2\x10pV\xcb\
-aJ\x19\xf0\x1d\x9b\x0bw\xa1\x15\x0f\xcen\x9b\xc8@\
-\x88\x08\x0a\xc2d\xe0S\x7f\x9f\xfd\xd8\xcf\xe5!\xe9\xec\
-\x11\xb4\x8e!\xcbQ`\xbc\x91\x06\x91\xf7\xc1l\x15a\
-\x01&\x03\xf4\xc7\x19\xfd\x90R\xd6J\xe8\x98\xa6\xbd\x12\
-\x8c\xf9\xd4p\x1a\xd8\x5c\xbeo\x8bE\x04\xff\x15\xb7\xc5\
-\xa0\xc6R\xcaNTW\xc0E[\xc0\xf05\x9fa\x0e\
-y\xe8W\xd6N\x16\xff\xcco\xba\x97\x22\xfd\x80I\x00\
-5'\xa5\x8c\x8c\x97\xca\x0b\x82\xc6\xa1\xec\x0f\x14\x18\xf7\
-\x94\x99 }\xc7\xa5\xd1v\x90\xc5+\xb5\x01\xa8\xc4$\
-\x80\xbcI)\xcb\xaf@J\x99'\xe8\x03$\xe6K\x83\
-5\x13\xca\xdbD\x8b\xed\xf9\xcb@\x90\xc5P\x04\x1f\xf2\
-EJ\x195\x8f\x04\xbf@\xbf\x00P\x82\xd1\xd3\xd9\xad\
-0\x96/\xa7\x0d\xebr\xb1\xf6\xe2y\x08>\xe4\xeb\xf2\
-\x90\xe8\xbfV\xcb\x97i\xd31/<tsp$\x8b\
-\x17\xf1\x93\x81 \x0b\x03\x11t\xc8(\xdd2\x1b\x1d\x87\
-+OW\xa97\xcdz\x14\xf3\xa1!)\xc2\xc3<]\
-bX\x8c\xa0Cf\xa7\x94\x9d\xe2,\xa5L\xd9;\x1f\
-s\xa0\xe1+\xbc\x89|\xecj\xddA\xd7#\xdd\xcbG\
-\x89\xdanI\xbd/\xfe9\x8cE3\xf5\xe7\x98\x01\xea\
-\xeb\xeb&\xa89'\x0a\xb80[\xfa\xe3\xd2e\xce\x10\
-\xc4\xbe\x81\xe2\xe2\x5c\xb4\xce\xd1\xfe\xaa|\x88`\xfbF\
-\x03\x16\xbf\xf1s2;}\x81\xa6\xf6\xe5\x18\x97\xa6\xf5\
-T\xf2\xfb\xdc\xecn\x13\x0e\xa5 \xe6\x5c6\x86\x0c\xeb\
-r\xb1f\xb6\x87\x11l\xdf(6c\xf99\x0b\x8bj\
-\xcaF\xec\x9e\xa7\x06\xcd\x7f\x09\xe3\xd3\xc4/\x02^>\
-\xa4\xd1\x99\xb5\x94\xf0\x22\xe2^_\xd9\x8e\x98\x81\xbf\xb2\
-\xf1Y\xad\xf4 \x82\xec\x1b\xdd0\xa3_\xa3\xd7Z3\
-\xcb\xf2\xd4\xaf\xd2\xa6\xab\xc1\x9a\xf1\xa2@I}\xf5^\
-8\x9c\x9b\xdd\xed\xb2\xdcM\x889o\xd5\xc0\xb4\x17\x9c\
-\x8d \xfbF\xe3\xb6\x867{\xb1e\x9f(P\xbfM\
-\x8f\xd1/\x04\xe0\xee\xfc/J\xca^\xc7\x8d\xe1\xd2\x1f\
-\x17\xc4\xbc\xde\x87\xb2\xe9\xf6\xbc\x9a\x1b\x16\xe2\xc4\x8d1\
-\xdf\xe8\x8a\xc8\x10\xafoPU\xd7\x9c\xd6\x7fBOH\
-\x8bV\xfb%\x8d\xd2\xffo\xf1:\x8eB\xc2\xf3\xdc\xa4\
-\x86-\xc9A\x81\xf1\x86n\x94u\x88\x11/\xb7\xe1\x8d\
-1\xe1I\x04\xd77\x1a\xb6\xe2?>[\x84\x85'\x8b\
-\xf5\xb3\xdf77L\xd4w\xbe\x9d\xa6\xf5\xe1j,\xe3\
-3S\xb8\xd9\xdd\xf6\xc1\xee\xb6\x81\xd2\x8b\xe2cv<\
-B\x88Gp}\xf3qgk\xd1nC?\xa8\x1c(\
-\xcdQ\xe32\x92\xd5\xffl\x99\xac>\xb2d\x8cz\xf3\
-\xacG\xf5\xba\x04f\x5c\xc1\xbd-\xf6\x09S\xc7\xf3\xde\
-\xf8g\xb9\xd9\xdd\xae\xc8\xdb\x825T_sle\xb4\
-m\xc3{\x06j[\xf6*\x04\xb6\xf5\xa2\x0aX\xfe\x80\
->\xc6\x91\x09/\xcf\xdd\xa47u\x0c\xdd\xf2\x83\xbe\xc3\
-\x0eY\xf0O\xf5\xf69C\x9a\x9dvvu\xf4\xfd\xfa\
-\xcd\xa6\xbb\xe7\x0d\xd3\x8b]\x8f\xdd\xf4\xbd\x1a\xb1'^\
-\xddP\xb0\xe3\xe7\x0e\xbdf\xa7\xb0-\xc8Z\xcd\xcd\xee\
-\xf6\xfe\x85#\xb0\x8e\xce=\xb7=\x19\x18\xd5\xbb\xad\x9d\
-\x8a\xce\x0cE`\xed\x9f\xb2D\xdd\x16\x8a\xabJ=\xaa\
-\xb9\x98}Q\x83\xba\xd3\xf2\xb2\xbb]\x99\xb7\x15k\xa9\
-\xde\xba\x12\x9f@7\x06\xe8\x1c\x0d^\xf6.\x17\x86\xd0\
-}\xc1+\xa6\x8f\xed\xd2\xdc\x8d\xdc\xecn{&\xfe\x0b\
-\xeb\xe9\xdc\x0fe\xf3\x90\x85\x00\x9d\x93\x81\xb0\xbb8\x93\
-\x0b3\xb8g\xde0\xd3\xc7\xb7\xef\xa2\x91\xdc\x98\xed\xaa\
-\xc3\xa9XS\xe7\x1d%\xd8\x22+\xc1\xe9\x96\x1eE@\
-[\xaf\x0f\xb6L\xe6\xe6\xc6\xd35\xd1\x0f\xf8\xe5\x88&\
-\xfd\xd8\x01n\x0c\x972O\xb0\xaelV\x09\xcc\xe5\x96\
-\x22\x10\xcc\xd6\xe9\x1f\xb1\x8f\xab'OWra\x02{\
-K\x0e\xf9m\x9c\xa9:\x18n\x95\xf1zn+\x84\xb1\
-\xed\xb4\xaa\xe3\x02\xd4Bh\xfd\x8eku\xfe6nL\
-\x80\xb2\x1c\xfc5\xd6\x1d\x22C\xd4\xdc\xf2#\xdc\x8c5\
-u\xba\xc0\x1a\xabS+\x81\xe9]\xed\x14\xe9\x16\x04\xb1\
-uz\x91\xa3\xdd\x16\xddn\xfbK\xcc#\xcc\x5c\x83f\
-\x9d9\x19\xc9Xcu\xf3\xbc\xdd\xd2M\xec~\x1c\x93\
-\xc5\xb7\x10D\xefug\xdc\xd3jy\xf5In\x16\xbf\
-\x15Z\xb9P\xb1q\xear\xc0\xcb\x1f7\xeaj\x81\xb5\
-\xf6\xb3F\xb1\x9c_\xbb\x02\x01\xf4N\xd4\x8ez[\xd1\
-^n\x8c\xf6`i\xaeeZp\xcf:\xb0\x94\x9bq\
-\xffa\xd7\x1c\xac\xb7_\xb4\x84\xe5\x94\xafj\x04\xd0\xbb\
-sZ\xfa\x89\xc7\x0b\xd4\x0d\x96.\x16Xe\xfc\x1fX\
-\xf4\x1a7c_Q]\x89N\xbc\xbf\xe4\xdbV1\x99\
-\x02F\xb5\x22\x11<\xefD\x15\xb9x\x81\x8eIz$\
-\xbeb\xb9?vt5\x99\x17\xde\xd9\xf8-\xd6\xddO\
-9\xb7\x8a\x18\xc2^~\xad,|\x84\xe0\xb5\x5cTw\
-\x96\x17\xe8\xcb\xff\xdd~\xb8\xc0\x80\x0fe\xf5\x8fp\xa8\
-\x08\x10\xd6\x9f\xbe\xbb\xfd\x0f\xcek98:\xe0iG\
-K;G+7#\xa4\xac\x88\xd35g\xb8\x89\xc7\xc0\
-\xa5c\xb0\x0ek\xb5\x94-\xa7\x8d\x19x\x89\xf6\xd0\x15\
-\x08\x5c\xf3\xf3;\xa7\xefO\xe2faG\xef_\xc4D\
-\xdd\x5c\x9e\xea%\xcc\xcb\x5c\x89\xb5X\xab\x13\x8ed\xf1\
-\x22vJ**Aw\x22h\xcd\xbf\x1d\xc6K\xd6A\
-A\xc5Q\xbd#0+\xb1y!\xe5#n\xcc\x96\xd2\
-\xdd\xfcqM\xda\x9a\xb5\x12\xa4.\x0c]\xd1\x15F\x22\
-hM\xeb\xd1\xa5o\xe9\x9d\x12x\x80n\xc1Q\x1d[\
-\x96\xe2C\xb5w\x1bk\xaai7^[\xfb9\xd6\xa5\
-.i8\x1a;\xdaD\x94H\xceK\xb3AJ-\xa2\
-E\xccj\x87\xdf\xe4\xbc\xcd\xdc\x98\xed\x9a\xfc\xedX\x9f\
-\xb5u\x12f\xb2d\xb69\x08Z\xc3\xb7\x93\xe8#\xd8\
-\x89\xea\x0a.\x16\xef\x9e\x92LK\xe5\xcfz#J\x8b\
-\xe2\x05*\xfe~\x836G\xb1V\x85CL\x18\xed\xe5\
-\x91=\xae@\xb0\xce\x15u\x1e\xa0\x9b:\xbc\x5c\xbd\xa5\
-2\x89\x93w\xc5\xa9WN\xed\xc9|\xec(5\x8d'\
-\xa8\x16\x07\xd6\xac\xa8\xb6Q\x82\xdb\xb1P\xbf6\x18\xc1\
-\xfa%\xcb`S\xe1N\xae\x16+\x1d\x1b<\x95\xfc\xbe\
-\xadR\xf2\x8a*K\xb8\x89\xdf\x8c\xfdIX\xbb$Y\
-\x14\xf1q\x8c1Q3C^\xa0l\x03)\xe1E\xdb\
-\xc5\x90\xa7\x86\x90y\xe5\x85X\xb7\xba\xd9\x0a\xaf\xa2X\
-8c\xa26\xe0\xb4\xdb\xb3;\xb4\xfb\xbbk\xeeP[\
-\xc6\xf0\xb3\xed\x91\x5c\xfd:\xa1,\x0c\xee?\x92)\xd2\
-\x0f,|\x1c\xdb\x0c\x93=W\xd4\xae\xdb\xde9\x9a\xa7\
-l]\x88\xfa\xb9\x94q\x5c\x99\xadU\xafP\x9bj\xb6\
-\xb2\xb8\xde\xdaN\x9b,^D\xcd\xd3`\xb0\xe7\xaa\xbd\
-\x12\xac\xae\xcd\xdfn\xdb\xc59>5\xc2\xd6\xf1\x0b\x99\
-\xff2Wf\xdb\x7f\xf1h\xac[\xbaI\x16\x1az\xa1\
-e\xbd\xb6\x9d,\xfe\x19A\xf2\x9c\xf6\x95Y\x96g\xbb\
-\x85I5\x0e\xa8\xf3\xaf\x9dcwG\xdcS\x5c\x99\xad\
-?Z\xc9[\xf3&Y\xd0\xf5V.>\xd3\x0fAj\
-\xfc2CF\xa9\xbd\x0c\xf7\xed\x8d\xdf\xd8>nt\xf3\
-\xcd\xee\x19$9'\x0a\xd4\x1f\x8f\xee\xd3\xebAt\x9c\
-\xda\x1d\xebU?\xb7\x15\x1f\xb0\xae\xd9*\xd2\xeb\x08R\
-\xe3\xfas\xcc\x00u\xd3\x91t\xdb,\xd4[c\x07\xdb\
->f\xb7\xc5>\xc1L<(\x97;[3N\xaa\xb7\
-A\xc6I]'\xc2v\xc6\xaa\x1f\xa7\xca\xea\xe8\xf5_\
-\xaa\xc3V~\xa0\xf6K\x1a\xa5\xe7~\xd3\x1f\x11;\xe4\
-BsymW3\xdb\x89\x08P\xf3\xf2o\xbfJ\x9b\
-\xce|\x09?\xba\x09\xc7\xea5\xdc\x96\x88\x8a\xe7\x98\xcd\
-\xa93\xd5j~E\x91\x9aZ\xb4G]\x94\xbdV\xcf\
-\x7f\x9d\xa4\x99\xe6'\xdb\xdc\xea[\x1b\xbe\xd6\xdb\xae\x93\
-iR\x06\x08\xfd\x01\x87i\x1ab\xb6_X9\x13!\
-\x1e\x01j\xbe\x84\x84\xe7\xd5U\x87S\x995[\xdaA\
-\xf1\x10\xa7w[ye\xf7\xe4\xe9J=\x7f5\xfd\xd8\
-\x01=\xde\xf1\x99)\xaa\xb2w\xbe~u\xfb\xfd\xcd\x93\
-\xd4W\xd7\xfcW}b\xf9{j\x9f\x85\xc3\xd5\xaes\
-\x9f\xd1\xcd\xd3\xee\xe7\xe0\x8ch\x8e\x95\xcd6\x0d\x01\xf2\
-\xcet#\xf7.P\xcbN\x95\xfb\xd5<i\xa7}\xb8\
-\xbcH\xddR\xb8K/\xc0\xf2\x93V\xe4mQwh\
-FA\x97\x16\xea\xee\xc6\x8f\x9c,\xe6\xa2\xa8{\xda\xd1\
-\xfd\xfa\xfbV\x9d\xddm\xee*\xce\xd0\xb3K\xe6\x1fZ\
-\xa5N\xdd\x9b\xa8N\xdc1C\xfd\xcf\x96\xc9\xea\x88\xb5\
-\x9f\xeb\xb7\xe7\xa8\x87\xd9=\xf3\x86\xa9\x7f\x8d\x19h\x99\
-&\x96\x90WJ\xb5\xb2\xd9\x96!@\xde\xeb\xf7Q\xbd\
-\xd5!\xcb\xc7\xaa\xe1\xbb\xe7\xea\x1f+N\xf9\xa8\xbc\x1f\
-\xed\xac\xb2\xca\xf2\xd5\x8dGv\xa8\x89YkTyO\
-\x82\xfes\x94\xaaq=\xb6\xec\x1d=G\xf6O3\x07\
-4\xab5\x0a\xd5<%C!\xa3!\xe3\xbd*\xaa\x97\
-\xadcB\x85thG\xba\xbe M?\x03\x8d\xcbH\
-V\xa3\xf6%\xea1\xa2\x9d)\xb5\xcf\xa1\x9d/\x8d%\
-\x9d\x87\xd2\x0e\x95~\xde\x07\xcf\x7fI\xcfW\xa5z\xc5\
-\xd7M\x7f\x10\xa6\xcb\xa6\x8a-i\xb4m\xa2\xc5\xf6\x08\
-\x8eoE_\x85\xef\x8c{Z_\xbc/\xaf\xfaX\xfd\
-(5B_\xe4d\x96uE\xff\xd9\x17?F\xa9\xa1\
-\x9b\xc3\xf4E\xfft\xf2\xbf\xd5\xde\xdaO\xd2;\xe2\x9e\
-4\xb4#\x02\xfd\xec\xbd\xc7\xe6\x09\xf0\xaf\xac\xfe\xd4\x80\
-K UjqU\xa9\xbeK\xde]\x9c\xa9\x1b9\xfd\
-\x82\xf8\xe9l\x96b\xfa\xd3\xf9,\xc5\xf4\xa73\xda\xa1\
-+B\xf5?\x8e\xbd\x12_\xd5\xff@\xfet^\xdb9\
-\xba/z\x88\x19W#\xc1e\xbd\x024\x91\xe2\xed\x08\
-\x0ed7}\x996\x9d\x99\x8f\x95T\x88\x9eR\x0b\xe9\
-\xd8\x832^\xc8\xc0\xe9|8\xe6\xc0\x12\xdd\xc0\xe9\xb8\
-\xe3\xbf\xdb\x14\xdd\xc0G\xae\xfbB\xff\x03N\x06\xfe\xf0\
-\xe2\xd1?\x1b8\x0f\x1f<[$\xa5\xdb\xad\xd6k]\
-.\x0b}\x11\x1c\xc8nZ\x9c\xbd\x9e\x9b\xcb\x0ct\xdc\
-\x84\x98\x9f\x7fmW\xeac\xc5j_\xcf 8\x90\xdd\
-t\xa8\xec07f\x9b\xc3IvI\x0b\xd3\xbf\x9e\xb2\
-\xde1\x82,\xbc\x81\xc0@v\xfb`I\x85\xd0y\x81\
-.B \xee\xe7\x1f#H\xaf[\xf0\x18A\xfc\x04\xc1\
-\x81\xec$\xaa\xcd\xcb\x13Ks6 \xee\xe7\xd7G\x90\
-\x85\x8f\xac\x98\xf65\x19\xc1\x81\xec$\xca\x00\xe0\x09t\
-ih\xb0\xd4\xe2$+\x9am\x1c\x0f\x83\xffP\xd2\xeb\
-\xfa\x97\xdde\xb9\x9b\xf4\xab\x94\x901\xa2vB\x0b\xb3\
-\xd6\xa8\x13~\x9c\xa6\xdf\xe3\xf7G\xac\xe9\xdf\xe6\x89o\
-\xd2c`\xb0\xf55\xdb\x8af\x9bb\xe7A\xa7\xa4t\
-\xca\x83\x04\xe6C\xe7\xa6TL\xa5\x9d\x12dj\xcc\xe9\
-\x02\x08O\x84n\xf9\x01\xe6Z_\xc9V\xccFH\xb7\
-\xf3\xa0G\xef_\x04\xd7\xf33\x9fnSL\x8d\xf9\xc1\
-\xd2\x5c\xae\xc6\x97j4\xc0\x5c\xeb\xe9G+\x9a\xed!\
-\xbb\x0ex\x979C\xb8\xfa*mU\xa8\xfd\x0e\xd5\x1b\
-0#\xe6TE\xebL\x0d_1\xa7\xdbi0\xd7z\
-\xca\xb0\xe21B\xbe]\x07|\xcc\x86\x89p:\x8b\xf0\
-\xce\xc6oM\xab\x89\xc0\x1b!\x0b\xfe\x09s\xad'!\
-\xd7\x8af{\xcc\xae\x03N\x1f\x0e\x805\xa0\xe3\x1c3\
-b\xfe|\xca\x87\xdc\x8d-\x0f\x85\xe0\xbdP\x91\x15\xcd\
-\xf6\x84]\x07\x9c\xce\x0a\x815\x98\x93\x91lJ\xcc?\
-\xdf>\x95\xbb\xb1\xfd\x83\x81E\x8b\x18V\xa9\x15\xcd\xb6\
-\x1a\x95\x9f\x80\xd1|\xbfs\xb6)1O8\x94\xc2\xd9\
-yx\x15\x8c\xb5\xe1c\x84*k9mh\xe8\x85v\
-\x1ep\xaaI\xca\xdb\xc7\x12\xabB\xb5t\xcd\x88\xf9\xbe\
-\xe3\xd9\x5c\x8dkn\xf9\x11\x18k\xc3\xaaq\xa8\x8e\x0b\
-,\xe3\xb5\x9de\xf1\xd7v\x1f\xf4%9\xeb\xe1t~\
-\x86\x8a\xc2\x98\xd1.\x86\xea\x08\xb3\xde\x1f\xae\xa5l?\
-\x8a\xba\x08\x9e\xe4\x88\x19x\x89e\xcc60\xaaw[\
-\xbb\x0f\xf8\x1dqO\xa9%Uep<?A\xed\xb6\
-\xa9 \xba\x19\xb1\xa6\x82\xe8\xbcA](`\xac\x0d\xab\
-\xfd\x94{\xda\xc0lM\x16U\xc6\xa7k\xba\xd55\xa7\
-\xe1~&A\x1d\x0d\xe6e\xae\xd4\x1b!\x9a\x15gj\
-o\xc3\x1b3\x0f,\x86\xb1\xb2`\xb6<\x1c#\xd4\xd5\
-\xd6\xa2\xddpA\x93\x18\x9f\x1a\x81\xec\x13\x13\xf8\x16u\
-\x11\xd88F\xb0\xfb\x07\xb2\xf3EmF\x809P&\
-\x88\xd9\xf1\x9d\x9b\xb9\x82\xbbq\xa6\xee\xc00V\x06>\
-\x90\x9dM\xfd:\xc5K\x00\xa8\xf1\x220\x07\xea\x8fe\
-v|\xf7\x94dr7\xce\xc3\xd7|\x06ce\x22\xf5\
-\xcb\xe6\x97\x1a\xce\xd73+B\xe1\x82&A\x1f&\xcd\
-\x8c-e;\xf8\xaa\x85<K<\x8e\xba\x08L]j\
-8\xc6K\x00\xee\x8d\x7f\x16.h\x12WE\xf52\xfd\
-#(\x8ft_\xf0\x0a\x8c\xb5a\x15Z\xaf\x07\x99[\
-<\xccK\x00x\xac\x08\xe5\xafL\x04\xb3c;\x94\xd3\
-_-\xb7\xc5>\x01ce\xa7\x10\x8d}K,6\xa4\
-\xac\xb2|\xb8\xa1\xc1\xec8v\xc0\xf4\xb8~\x9c*s\
-9\xd6WG\xdf\x0fcmX\x07Q<\xdc\xcf\xa2|\
-[`,\x8b\xb3\xd7\x9b\x1e\xd7\xd8\x8c\xe5\xdc\x8d3\xd5\
-\x09\x86\xa9\xb2U<|%OA\xa06-\xc0X\x22\
-\xf6\xc4\x9b\x1e\xd7\x9d\xc5\x07\xb9\x1b\xe7\xbc\xf2B\x98\xaa\
-g-\xb7\x9e\xd9*B,OA\x18\xbd\xfeK\xb8\xa1\
-\xc1|\xb8u\x8a\xb97\x85\x94`\xb5\x8a\xc3L\x84\x1f\
-\x8f\xee\x83\xa9z\xea\xae\xabH1\x963[\xed\xa1~\
-\xe0)\x08\xfd\x92F\xc1\x0d\x0d\xe6\xe5U\x1f\x9b^\xff\
-\x82G\xe8H\x0c\xc6\xda\xb0\x9cn\xf1{\x0bf#H\
-\xe3y\x0a\xc2M\xb3\x1e\x85\x1b\x1a\xcc\x83I#M\x8d\
-\xe9\x93\xc9c\xb9\x1cg\xba\x11\x09c\xf5\xa8qV\xcc\
-\xb3\x1d\xc5\xd5\xcf\x0b\xb7\xa4\x9e\xa8\xae\x80#\x1a\x085\
-\xda43\xa6tl\xc1#\xdf\xa5\xcf\x82\xa9z\x92,\
-\xbef=\xb3\x95\xc5\xa1\xbc\x05\x82j\x80\x02\xe3\xa0|\
-f3\xe39\xeb\xc0R.\xc7\xf9\x03\xd4Eh\xc4l\
-\x85'\xadwf+\x0b}y\x0bD\xec\xc1epD\
-\x838Zy\xdc\xf4x\xa6\x1d\xdd\xcf\xe5X\x8fX\xfb\
-9L\xd5\xd3/XY\xeac\xbd3\xdb\x88\xa0\xdbx\
-\x0b\xc4'\xdb\xdcpE\x9b|!o\xa7\x04\xe9}\xb8\
-xd\xf0\xb2wa\xac\x9e4E\xba\xc5rf\xdb6\
-\xbcg o\x81xv\xe58\xb8\xa2A,\xccZc\
-j,\xe9|\x98Wz$\xa2.\x82'Qc\x04\x87\
-\x15\xd1\x1e\xae\x84\xa7@\x08\x09\xcf\xc3\x15\x0db\xca\xee\
-\xb9\xa6\xc6\x92vw\xf8\x10\x09\x9dW\x17\xe1\xa8\xc3\xaa\
-\xb8\x14q\x1bO\xc1\xa0\x8aT5*\x0a\xd2\x18\x81\xd9\
-\xc5\xac\xe9\xdf\xe3\x95k\xa2\x1f\x80\xb16l\xb6[\xac\
-k\xb6\xb28\x97\xb7\x80P\x0bh\xe0{^\x5c5\xde\
-\xd48\xce\xd8\x9f\xc4\xe58\xd3\x8d9\x98\xaaG\xcd\xb6\
-\xb2\xd9~\xc9[@V\xe4m\x813\x1a\xc0\x03\x8b^\
-35\x8e\xa9E{\xb8\x1c\xe7\xc3\xe5E0U\xcf\xfa\
-\xdc\xcaf\xfb\x1ao\x01\x09\xdf=\x17\xceh\x00\xb7\xc6\
-\x0e6\xef#\x88\x22\xe9\xad\xd2y\x84\xd2\xdd`\xaa\x9e\
-..\x89\xafX\xd9l\xfb\xf1\x16\x901\x1b&\xc2\x19\
-}\x0c\x9d\x83w\x9c\xda\xdd\xb4\x18\xfe#\xf6qn\xc7\
-z9\xea\x224R\x84F|\xc0\xb2f\xdbV\xeev\
-\x03o\x01\x19\xb0\xf8\x0d\xb8\xa3\x8f9r\xb2\xd8\xd4\x18\
-\x0eZ\xfa6\xb7cM\xb7\xe6`\xac\x1e\xaf\xeav\xb6\
-\xac\xd9\x9emi~\x82\xa7\x80\xfcm\xf6 \xb8\xa3\x8f\
-\xd9V\xb4\xd7\xd4\x18\xfe{\xf3$n\xc7\xfa\xfb\x9d\xb3\
-a\xaa\x0dg\x22\x1c\xb7\x5c\x0b\xf3\x06\x8a\x88o\xe0*\
-\xe9\x99\xe3\xf3>\xa3X\x90\xb5\xda\xd4\x18N\xdb\xb7\x90\
-\xdb\xb1\x1e\xb75\x1c\xc6\xda\x90\x14a\x8d\xc3\xeah\x0f\
-:\x99\xb7\xc0P\xaf,\xe0;~\xd85\xc7\xd4\xf8m\
-.\xdc\xc5\xedX\xbf\x86\xba\x08\xec\xd4\xb1\xado\xb6\xd2\
-p\xde\x02\x13\x97\x91\x0c\x87\xf4!\xa1\x9b\xc3P*\xd3\
-$\x9eX\xfe\x1e\xcc\xb5\xe1\x0e\x0d\xff\xb4\xbe\xd9\xca\xa2\
-\xc8[`>\xdb\x1e\x09\x87\xf4!\xcf\xa5\x8c\xc3\x99\xbb\
-I\xf4L\xfc\x17\xcc\xb5\xc1j_\xc2}\x967[\x1e\
-\x0b\xd2\xbc\x90\xf2\x11\x1c\xd2\x87\xf4^8\xdc\xb4\xd8=\
-\xb2d\x0c\xd7c};\xea\x224\xa4\x9a\x80\xb0\x10\xa7\
-\x83\x05\xb4\x87\xcd\xe1)8A\xf3_\x82C\xfa\x90[\
-f?nZ\xec\xde\xdb\xf4\x1d\xd7c\xdd9\xba/\xcc\
-\xb5~&\xc2!\x07+\x04\xc8\xe2\x0c\x9e\x82\xd3iZ\
-\x1f\x14\xa4\xf1\x11gjj\xd4+\x22CL\x8b]\xe4\
-\xde\x05\xdc\x8e\xf5\xa93\xd5\xfa\x995\xcc\xf5\xbc\x8fc\
-\x8a0\x8d\x19\xb3u\xc9\xc2\xab\xbc\x05(\xbf\xa2\x08N\
-\xe9\x03\x0a*\x8e\x9a\x1a\xb7\x8dGvp;\xd64g\
-a\xae\x8c~\x1c\xe3\xb9k\xc3\xaa\xc3\xa9pJ\x1f\xb0\
-\xa5p\x97\xa9\x99\x08\xa5\xa7\xca\xb9\x1dkJY\x84\xb9\
-2\xd2\x9d\xc1#1\x03\x7f\xa5=t)O\x01\x8a\xd8\
-\x13\x0f\xa7\xf4\x01\x09\x87RL\x8b\xd9_c\x06r=\
-\xd6T\xb1\x0e\xe6ZO%t\x13\xd6\xc1\x12\xdaC/\
-\xe5)H\xefl\xfc\x16N\xe9\x03&\xed\x8c5-f\
-\xfd\x17\x8f\xe6z\xacg\x1fD]\x84\xfa)_\xe2\x22\
-\x07k\xb8\xdc\xc2\x7fx\x0a\xd2\xc0\xa5c\xe0\x94>\xe0\
-\xfd\xcd\x93L\x8b\xd9\xdb\x1b\xbf\xc1\x1f6\x18\xec\xf9\xad\
-\xcb\xc72g\xb6\x01\x8a\xd0\x9b\xa7 \xf1\x5c\xa6\xcf\x97\
-\x0c[\xf9\x01\xb7G?\x85'\x8bM\xfd\xf7>J\x8d\
-\x80\xb9\xd6\xcbD\x10C\x983\xdb\x8e\x91=~\xab=\
-|%O\x05ixm\x85\xedK\xcc\xbc\xd1\xb4\xae\xe0\
-G\xcb\xbcw\xe5\xe9S\xea}\xf1\xcf\xe9mj\xccb\
-\xe4\xda\xff\xc1`\xcf\xcd\xaf-\xef,\x8b\xbfv\xb0\x88\
-\xf6\x02Kx\x0a\xd6\xae\xe2\x0c\xb8e+\xb9y\xd6\xa3\
-\xa6\xc5\xab\xb8\xaa\xd42\xef\xfd\xbf\x1f\xa3LOE{\
-2y,\x0c\xf6\xdc\xe23\x89\x0eV\xd1^`\x14O\
-\xc1\x8a\xcfL\x81[\xb6\x82\xd35g\xd4\xf6J\xb0)\
-\xb1\xfa\xd3\xcc\x01\x96y\xef\x83\xa5\xb9\xea\x95S{\xea\
-\xcf5\xe1\xc7i\xa6\xfd\xbb\xbd\x12_\x85\xc9\x9e#i\
-8\xb3f\x1b\x18\x11\xfcW\x9e\x82\xf5\x85\xb6;\x01\xde\
-cf\xf3\xc1\x87\x92^\xb7\xcc{SV\x84?>\xb4\
-\xde\x11\xf7$\x0c\xb6\x8e\xda(\xc17:X\xc6\xa5\x88\
-\x99\xbc\x04\xeb\xe5U\x1f\xc31[\xc1\xa6\xc2\x9d\xa6\xc5\
-\xeaM\x8b\xf4\x8e\x8b\xcdX~\xces\xfdaZ\x1f}\
-\x87o\x06\xd7NG]\x84:\xda\xef`\x9d\x00\xb7\x10\
-\xc6K\xc0B\xe6\xbf\x0c\xc7l\x05s3W\x98\x16\xab\
-)\x16\xe8\x8a\x5cRU\xa6\xde8\xb3\xbf_\xda\xaa\xa3\
-.\xc2y\xe7\xb5\xb2\xf0-\xf3f\xebR\x84\x87y\x09\
-\xd85\xd1\x0f\xc01[\xc1w\xe9\xb3\xb8\xba^My\
-\xbe\x0d=\x1b\xf5\x053\x1a\xb3kP0P\xbf\xb6/\
-\xfb;\xdb\xb0\x10'O)`GL\xce\x95\xb4\x13\xef\
-n\xfc\xd6\xb48\x1d\xad<\xee\xd7w\xa5\xac\x03J\x17\
-l\xe8\xd9\xa8{\x82\xd1\xa4\xa3.B\xdd,\x84\x93\x1d\
-b\xc4\xcb\x1dv@{\xa18^\x02\xb76\x7f;\x5c\
-\xd3K\x86\xae\x085%F\x7f\x9c\xd1\xcf\xefY\x17T\
-\x03\xb9\xb1\xe73\xbad\xe7\xca\xbc\xad0\xda_4\xcb\
-a\x17\x02di0/\x81S\xf6\xce\x87kzI\xf7\
-\x05\xaf\x98\x12\xa3\xbe\x8bF\xfa\xf5=\xbfM\x8fi\xf2\
-\x19\xd3\x0dn\x22\x1a{p\x19L\xf6\x97\xf3\xda\x81\xb6\
-1[\xda\xa2k/U\xc1C\xe0\xc6n\xfa\x1e\xae\xe9\
-%T\x85\xcb\x8c\x18\x8d^\xff\xa5\xdf\xde\xf1P\xd9a\
-\xf5wQ=\x9b|\xc6\xc9\xbb\xe2\x0c}\x0e\xd4E\xf8\
-YeW\x85\xf5\xfd\x8d\xc3N\xb8\x14!\x96\x87\xe0\x0d\
-Z\xfa6\x5c\xd3\x0b\xaakN\xab\xed\x94 Sb\x14\
-\xee\xc7L\x84\xe6v\xb3}fE\xa8\xa1\xcf\xf1\xe1\xd6\
-)0\xda\xda*_3\x1cv\xc3\xa9\x88\x83x\x08^\
-\x979C\xe0\x9c^\x90s\xa2\xc0\xb4\x18\xad\xce\xdf\xe6\
-\x97w\x5c\x90\xb5\xba\xd9\xcfH)aF\xf2\xda\xda\xcf\
-a\xb6\xfa\xc71i\x80\xed\xcc\x96\xb6\xea\xda\xcb\x9d\xb0\
-{\xf0\xe8\xba\xa9\x99\xc5D\xec\x02}\x9d7+FE\
-\x95%\xa6\xbf\xdf\x89\xea\x0a\xf5\xa6\x16\xd6}\xd8w<\
-\xdb\xb0\xe7\x19\xb2\x1cu\x11\x5cn\xe18\xb3\x85g\x9a\
-\x91\x950\x9b\x87 \xee-9\x04\xf7l!s2\x92\
-M\x89\xcd\x0d~\xcaD\xa0.\xbe-}V\xf7\x9e\x04\
-\xc3\x9e\xc7\xcc\xeaj\x16N\xf9\x9a\xee\xb0+m#\xa5\
-\x9e<\x04\x91~.\x82\x96\xf1\xf5\x8e\x99\xa6\xc4\xe6\x81\
-E\xaf\x99\xfen\xdb\x8f\xee\xf5\xaa\xc0\xce\x0b)\x1f\x19\
-\xf6Lt\xdc\xc5\xbd\xd9F\x04\x05\xd9\xd6l\xa9\xb7\x8f\
-\xf6\x92\x19v\x0f\xe2\x97i\xd3\xe1\x9e-\xc4\xd3m*\
-\xd63\x11\x9a\xca\xa9\xf5W\x8f\xb4\xab\xa3\xef\xe7\xddl\
-\xf79T\xc7\x05\x0e;Cm'\xec\x1e\xc8\x7f\xad\xf9\
-\x14\xee\xd9B\x9eJ~\xdf\x96\x99\x08T\x83\xa15\xcf\
-K\xa9b\xbe\x86\x0a\x95s\x9f\x85\xe0\x16\xdev\xd8\x9d\
-vJ\xd0\xef\xb5\x97=m\xe7@\xf6H|\x05\xee\xd9\
-B\x82\xbd\xdc\xfdY9\x13\x81JFR\x15\xaf\xd6<\
-\xef\xf4\xfdI>\x7f\xae\xdc\xf2#\xbc\x9b\xed\xa9\x0e\xb2\
-x\xa5\x83\x07\xb4\x97M\xb0s0\xfd}\x1d\x94E\xfe\
-\x12\xf3\x88)\xb11\xb3\xcf\x97/\xfa\xa9\xbd\xba\xe6\xbf\
-\x86\x9c!sn\xb6q\x0e^p\xb9\xa5\x07\xed\x1eP\
-\x7f\x17:a\x09*\xf7\xe7\xa9(\x0b\xab\x7f\x04\x93\xb2\
-\xd7\xf9\xe4\x99o\x8b}\xc2\xe7\xcf\xb64w#\xe7G\
-\x08\xd2\xfd\xdc\x98\xad#\xac\xcb\xc5\xdaK\xe7\xd99\xa0\
-\x1b\x0av\xc0E\x9b\x09\x9dK\xda)\x13\xe1\xe4\xe9J\
-\xf5\xd6\xd8\xc1>{n:\x8e\xf0%3\xf6'\xf1l\
-\xb69\x8ed\xf1\x22\x07O\x04\xc8\xe2[v\x0ej\xd4\
-\xbeD\xb8h3Y\x93\xbf\xdd\x94\x98\x8cZ7\xc1\x94\
-\xf7\x19\xb75\xdc\xa7\xcfMEcXL\xb3\xb3h\xd1\
-\x997\x1c\xbc\xe1\x9cvo\x00\x15\x81\xb0kPC7\
-\x87\xc1E\x9bI\xcc\x81%\xb6\xc9D\xd8]\x9c\xa9^\
-\x11\x19\xe2\xd3\xe7~\xdd\xc7\x7f$hnrj\xb6%\
-\x81Q\xbd\xdb:xD{\xf9\xaf\xed\x1a\xd8\xc1\xcb\xde\
-\x85\x8b6\x13\xea(k\x87\xee\x0cT\x83\xb6\xf7\xc2\xe1\
->\x7f\xee\xbb\xe6\x0e\xf5\xe9sRj\x22\xa7\xdds\xbf\
-p\xf0\x8a3\xb2\xdb\xb5vM\x03\xbb#\xee)\xb8h\
-3\xa1\x9f\xf7v\xc8D\xa0\xa3#\x83>\xe8\xf8\xb4\x03\
-\x08U\xa6\xe3\xd0l\xab]\xe1A\xd78x\xc6\xae\xa5\
-\x17\xe9\xa7$\x95\x0d\x04\xd6X\xfcFg\x22\x90\x91\x1b\
-\xd9\xad6>3\x85\xb9\x9cf\x94R\xb4\x18\x81\x11A\
-w\xdb5\xc0\xfb\x0d\xac\xdad'\xee\x8d\x7f\xd6\xf0X\
-\xdc\xbfp\x84\xa1\xef\xf0\xcf\xd5\x9f\x18\xfa\xfcom\xf8\
-\xdag\xcfz\xcb\xec\xc7\xf9\xfb0\x16)\xde\xee\x00\xfa\
-\xd9\xedF;\x06xQ\xf6Z8i30rGh\
-F&\x02\xf5\xf32\xba-x\xb7\xf8\xe7}\xf6\xbcW\
-E\xf5\xe2\xcdlW\xc3em^\x0dl\xe2\x8e\x19p\
-\xd2&\xa0:\xaff\xc4\xc2\xa863Tg\xe0v\x13\
-*h\xd1\xa5\x8f\x92\xaa\xb2V?oy\xf5I\xfe\xce\
-k\x15A\x82\xcb\x9e\xb3\xbb\x15V\xda-\xc8\xc3\xd7|\
-\x067m\x02\xaa\xfd\xcbr&\xc2g\xdb#\x99\xfa\xa5\
-d\xd6\x05\x12\x0bi9\xdc\xb5\xfe\x872\xc9n\x81\xa6\
-4 \xd08\xcbr7\x99\x12\x8b#\x06d\x22\xec-\
-\xc9R;N\xedn\xda|z\x7f\xf3\xa4V?\xf3\xe6\
-\xc2]\x5c\x99-}\x13\x82\xbb6|v\xbb\xdcN\x81\
-\xbe\x01\x05i\x9a$r\xef\x02f3\x11\x1e^<\xda\
-\xd4\xf9\x142\xff\xe5V?3\xed\x8e9*\xa3\x98\x04\
-W\xe5(3\xa1\xb8\xaa\x14\x8e\xda\x08\x1f\xa7\xcaLf\
-\x22\xcc>\xb8\xd4/\xfd\xed\xcaN\x95[2\x17\xd8\x82\
-\xaaA\x06BS5\x13\xb4\xbfFv\x0a\xfa\xa6\xc2\x9d\
-p\xd4Fxe\xb5\xf1\xb7\x99|}\xdd\x95\xfe\x80\xde\
-8\xf3a\xbf\xcc\xa7\xe5\xb9\x9bZ\xf5\xec\x13\xd2\xa2y\
-1\xdb\xf9p\xd3\xa6v\xb7\x8a\xd0\x95\xfe*\xd9%\xe8\
-F\x14\x7f\xb6\x13\xfd\x92F\x19\x1e\x83\xb0\x9d\xb1>}\
-\xe677L\xf4\xdb|\x1a\x9f\x1a\xd1\xaag\xf7\xa6\xf1\
-$\x83]s\xcf`W\xdb\xfc\xcc\x04\xc5.\x81\xff`\
-\xcbd8j#\xdc\x11\xf7\xa4\xe11H9\xbc\xd5g\
-\xcfK\xa53\xcd\xa8\xbdk\xd4G\xd7\x17W\x8d\xe7a\
-W\x1b\x0e\x17m&\xbf\x9d\x1c\xdc\x91z\xba\xdb!\xf0\
-O&\x8f\x85\xa36\xc2\xef\xa2z2\x93\x89@E\xce\
-\xef\x9e7\xcc\xaf\xf3\x89\xb2\x1f*OWy\xfd\x0e\x03\
-\x16\xbfa\xfb\xca^\x97G\xf6\xb8\x02.\xda\xb2\xcc\x84\
-\xf7\xec\x10|_Wl\xb2\x13\xd4\xcd\xc2\xe8\xf1\xbf~\
-\xfaC>{\xde\xaf\xd2\xa6[bN\xb5\xa6\x8f\x9a\x90\
-\xf0\xbc\xbd\xaf\xe5\xba\xa57\xe1\x9e-\xa4\xb3,\xfe\xda\
-\x0em\xcfi'B\xed\xacA}\xcc\xe8\x85\xd5\xc7G\
-\xb9\xce\x19\xa5y\xa6\xec\xc2\x9b\xa3O\xb7)^\xbf\x07\
-\xb5G\xb7\xb1\xd9\xeeu\xc4\x0c\xbc\x04\xee\xe9\x05NE\
-\x1cd\x87I@\x0b\x15\xd4'1k\x0d3\x99\x08\x03\
-\x96\xbci\x99\xf9D\x1f\x15\xbd\xc5\xccK\x18\xa6K\x16\
-\xfb\xc15\xbdEu\x5c\xe0t\x8b\xebX\x9f\x04Kr\
-\xd6\xc3Y\x1b\x80\xea\x15\x18=\xf6?\xec\x9a\xd3\xea\xe7\
-\x9c\x97\xb9\xd2R\xf3\x89v\xd8Ug\xaa[\xfc\x1e\xc7\
-\xabN\xd89\x03a%\x0c\xb3\xb5y\xb7\x91\xe2\xcd\xda\
-@V\xb1<\x11\xbeM\x8f\x81\xb36\x80\x19\xedYZ\
-\x9b\x89@\xc5_\xfe4s\x80\xe5\xe6\xd4\xc6#-o\
-(J%?\xedyN+\x9el\xa3\x04\xdf\x08\xb7\xf4\
-I\xdd\x04\xe9\x03\x96'\xc3\xc8\xb5\xff\x83\xb36\xc0\xb3\
-+\xc7\x19>\xf6\x05\x15\xc7\x98\xcd\xa9mLt9\xc1\
-\x9b\xb45\x9b\xeel\xdf\x83K\xfa\x8a\x89\xbd/\xd5v\
-\xb7\xe9\xacN\x06\xb3Zh\xb3F\xaf\xc4W-\x9d\x89\
-\xb0\xe9H\xba_sj\x1b\xd3\xc0\xa5cZ\xfc>\xf3\
-\x0f\xad\xb2\xa3\xd1\xa6r\xd7\x9a\xdc\xf0\x9be\xb2x\x17\
-\xdd\x0caqB\xd0\xcfPP\x9f\x9bg=j\xd9L\
-\x04jit\x8f\x9fsj\x1b\xd3\x1f\xa6\xf5iq\x96\
-\x8b\xbc'\xc1nF{\xba\xad\x12t'\xdc\xd1\x88\xec\
-\x04\xb7\xf8=\xab\x13\xa3\xb4\x95\x05D\xec\x06\x19\x05\x15\
-V\xb1j&\xc2w\xe9\xb3,?\xa7R\x8b\xf6\xb4\xe8\
-\x9d\xcc\xac\xbdkNQpi\x22\x5c\xd1\xa8\xddmT\
-\xef\xb6\xda g\xb381\xb6\x16\xed\x86\xc3\xd6!\xb7\
-\xfc\x88e3\x11rN\x14\xa8\x9d\xb4\x9d\xa3\xdd>\xbc\
-\x8e\xb1\xe8\xf9\xb3\x97:\xd81\xb2\xc7o\xe1\x8aF~\
-,\x93\xc5~,N\x8e\x99\x07\x16\xc3a\xeb@_\xd3\
-\x8d\x1es\xea\x0d\xe6\x0dO,\x7f\x8f\x899E\xcfi\
-\xb5\x0f\x92\xe6u\xcb\x15\xfa\xc2\x0dM9N\x90\xbec\
-mr|\xb8u\x0a\x1c\xb6\x0es2\x92-\x99\x89\xb0\
- k53s\x8a\x1ae\x9e\xa9\xa9i\xf6\xbb=\x94\
-\xf4\xba]rj\xbf\x82\x0b\x9a{\x957\x8d\xa5\x092\
-tE(\x1c\xb6\x0e\xd4\x0c\xd3j\x99\x08\xd4|\xf2&\
-\x83?\xda\xf9Z;\x8b\x0f6\xfb\xfd\xee\xb6\xf0\x07\xbf\
-\x16\x18\xedv\xcaN\x82\x0b\x9a\x9a{\xdb\xedV\x96.\
-;\xd0\x97m`\xde\xf9\xa17\xa5\x08\xdf\xdd\xf8-s\
-\xe6\xd3\x92\xae\xc17\xce\xec\xcf\xfc\xe5\x85@\xb7t\x13\
-\xdc\xcf?\xb5\x13\xc6\xb02Q\xae\x9c\xda\xb3E?\xf9\
-\xec\xce\x90\xe5c\x8d\xbdH\xb2\xee\x8b\x16=\xcf\xb6\xa2\
-\xbdj;%\x889\x03z\xa6\x99\xbf\x98h\xee\xb1\xf8\
-~\xe7e\x1f\xbc\x0e\xd7\xf3\x17\xa1\xa1\x17\xba\x14a\x19\
-+\x93%\xab,\x1f.{\x161\xe1\x05\xcbtg\xa0\
-44)\xe1E&\x0d\x88v\xab\xcd\xa1\xa8\xb2\x84\xf5\
-]m\x22\xd5J\x81\xe9\xf9sw\x1b\xd9\xedZ-\x18\
-\xc7X\x980\xcbZ\xd9?\xcaNP\xe7a\xabd\x22\
-P\x8a\x18\xcbF\xb4\xefxv\x93\xef\xb8\xa7$\x93\xe5\
-w,\x0c\x88\x0c\xb9\x1ang\x05\xc3\x8d\x08\x0a\xd2\x02\
-Rm\xf5I3\xc9\xc7\xbd\xb0X\x85:\x0d\x04\xb8%\
-\x833\x11\x8e6\xebY\xf2\xca\x0b\xf5\xdbX,\x9b\xad\
-{OB\x93\xefI\x05\xc7\x19}\xbfS\xd4u\x1b.\
-g\xadt\xb07\xad>qF\xf9\xb8\xcb+\xab\x1c(\
-\xcd1t\x9c\xaf\x9b\xfe`\xb3\x9f\x85\xb2DX\xffB\
-O}\xc5\x9a\x22\xce\x84T;\x9c\xd3\xf2\x82\xea\xb8 \
-\xc0-\xcc\xb4\xf2\xc4\xa1<G\xa0\xeae\x0f\xad\x90\x89\
-\xb0\xd0\x84\xe2\xe5f\x88\xd2\xd5\x9a\x22|\xf7\x5c\x16\xd3\
-\xbc\x14\x18\x9bE\xe9\x10#^\xae\x05i\x87U'\x0f\
-\xb5$\x01\xaa\x1a\xbd\x7f\x91\xdf3\x11\xca\xabO\x1a^\
-\x08\xc7L\x1d*;\xdc\xe8\xfb~\xb2\xcd\xcd\xda;\xa5\
-\xe1:\xae\xc5\xa1\x22\xc2\xd4a\xd3\x92W\x0c\xdd\x92\x9e\
-8\xcf;F\x17DiN&\x82\x19\x85\xcb\xcd\xd4\xf4\
-\xfdI\x8d\xbe/\x1da1\xf4>\xc5m\xa7\x8a\x7f\x84\
-\x9b\xb1q~;\xc0\xaa\xe5\x18\xa9\xc9!\xef\xbc\xb6\xf6\
-sC\xc7xE\xde\x96F\xff\xfd\x1f\x8f\xee3\xbc\xe2\
-\x98\xd9zu\xcd\x7f\x1b}\xe7\xa7\x93\xff\xcd\xca\xd1\xc1\
-\x19\x97\x22=\x04\x17c\xcbp_\xb0\xe2d\x9a}p\
-)\xf7f\xfb\xc8\x921~\xcbD\xa0\xe4\xfe\xe0\xf9/\
-\xd9\xae\x88\xf6m\xb1O4:\xe6T\xdb\x97\x89|Z\
-E|\x0e\xee\xc5 .Y\xfc\xd2j\x93\xe9\xe3T\x99\
-{\xb3\xbdk\xeeP\xbfe\x22D\xec\x89\xb7m\xd3\xc3\
-\xc3\xe5E\x1e\xdf\xfb\xce\xb8\xa7Yx\x87\xcf\xe1Z\xac\
-B7\xcc\xdcb\x9c\x95&\xd4\xb0\x95\x1fpo\xb6F\
-\xd6\x8am,\x13\x81\xcc\xe8\xea\xe8\xfbmk\xb6\xb1\x07\
-\x97y|w\xfa#d\xed\x14/!\x96\xd6+L\x8b\
-a:\xc5t\xbd,@\x16\xd7[eRu\x8b\x7f\x9e\
-k\xa35\xba\x9dvc\xcd5\x9fK\x19g[\xa3m\
-\xac3\x05\xb5\xf81\xfa\x12I+\xaf\xe2\xae\xa5u\x0a\
-\xb7\xb2\x01\x81Qb'-\xa89V\x98XWE\xf5\
-RkT~\x0b\xd2PI@\x7f\xdc\xd2[\x9c\xbd\xde\
-\xd6FK\xa2\xe3\x99\x86\xa03l\x0b?wV\xfb)\
-\xdd\xaf\x82K\xd9\x08J%\xd1\x02\x9bg\x85\x09F-\
-ax\xc5h\xd3k(\x13\xe1\xe4\xe9J\xfd\x03\x92\xdd\
-\xcd\x96v\xafGN\x16\xd7{\xff\x1d\xc7\x0eX5\xf3\
- \xd7\xe9\x0e\xba\x1e\xeedC\x02\x22\xc5\x9b\xb5 \x17\
-\xf9{\x92%\xe7m\xe6\xd6l\x8d\xfe@\x95_Q\xff\
-#\x11u\xc9\xb0\xbb\xd1\xfe\xa4\xf8\xcc\x94z\xefO\xf3\
-\xcd\x82\xcf\x9aO9\xf1p%{g(\xfc\xc3\xdfU\
-\xc2ZR\xf0\xd9n\x8c\xdb\x1anh\x9b\x98\xf3\xd9]\
-\x9c\xa9^\x11\x19\xc2\x8d\xd9\xbe\xb5\xe1\xebzc@\xe9\
-\x86\x16\xdb\xd1\x1euM\x91n\x81\x1b\xf1p\x86\xab\x08\
-]\xb5\xa0\x97\xf9k\xb2\xbd\xb9a\x22\xb7f\xfb\xd2\xaa\
-\xf1\x86\x8dk\xaf\xc4W\xcf\xf9\xb7\xe8l\xbc7#\xf9\
-\xa5F~\x80\xfd~\xe7l+=ci\xa0,\xde\x05\
-\x17\xe2\x08\xa7[\x0a\xa66\x1b\xfe\x98p\xfd\x17\x8f\xe6\
-\xd6l\x1fX\xf4\x9ai\x99\x08S\xf7&re\xb4\xa4\
-@ERK\xaa\xcaL\xfb5\xd1\xd2\xb66T\x0e\x15\
-\xee\xc3\xe3\x91\x82\x22<\xec\x8f>f\x7f\x9b=\x88[\
-\xb3\xbd5v\xb0)\x99\x08\xf4\xa1\x88\x8e\x15x3[\
-RR\xf6\xbas\xc6|\x84\xc1\xd7\xa3\x9bytP\x85\
-k\xb8\xbc\x1bn\xa4$\x98}\xa4@\xbb\x8f\x8a\xeaJ\
-\xee\x8c\x96~\xd6w\x9c\xda\xdd\xb0qM8\xf4\xcb\xc7\
-\xa1\xe1k>\xe3\xd2hITd\xa7.O,\x7f\xcf\
-\xefG\x07.wP7\xb8\x0d\xa0,\x85{\xb5\xbf\xbc\
-\xc7\xcd\x9c\x80iG\xf7sg\xb6\x05\x15\xc7\x0c\x1d\xd3\
-\xbe\x8bF\xea\xad\x87\xc6\xa7FX:\x89\xdf\x8cR\x9e\
-Ks6\xe8\xedr\x16d\xad\xd6\xdb\xba\xfb\xf1yJ\
-\xb4X\xdc\x03\x97\x01u\xcfp\xbb\x98\x99\x166'#\
-\x99;\xb3\xddR\xb8\x8b[\x03\xe4T\x85\xce\x88\xa0\xdb\
-\xe0.\xc0SZ\xd8\x11\xb3\xaa\xebS\x87Y\x9e\xd4e\
-\xce\x10\x18\x10?\xca\x0b\x8c\x08\xfe+\x5c\x054\xf2\xd1\
-\xac\xdb\xadN\xb7x\x18\x8b\x05\x82\xbc\xbf\x19\x16\xa0\x04\
-\xff\x1dn\x02\x9a\xa4\xfd\xd4\xfb~\xa7M\x9a\xcdX4\
-\x10\xd4bm\xec \x8bW\xc2E@\xb3\xa1\xfeG\xda\
-\xc4\x89\xc7\xe2\x81\xa0fJ\x16\xe7\xa2o\x18\xf0\x8e\x98\
-\x81\xbfr)\xd2D,$\x08j\xd2hC\xa9\xc35\
-L\x03\xb4\xf2\x1cW\x1c\xa1M\xa8\xd3XT\x10TO\
-\xd5NYx\x1e.\x01|\x99\x1a\xf6\xa86\xb1N`\
-qA\xd0\xcf*s\xc9R\x7f\xb8\x03\xf09m\xe5n\
-7h\x13l\x07\x16\x19\x04\x89ih7\x0e\x0c\xa5C\
-\x8cx\xb96\xd1fc\xb1A\xbc*@\x91bh\x1d\
-\xc0\x0d\x80\xf1\xa8\x8e\x0b\x9c\x8a8\x06\xe7\xb8\x10o\xe7\
-\xb3\xf4\xfd\x02\x1f\xc2\x80\xe9\x04\xcab/\x7f\x17\x22\x87\
- \x93.*\x14P\xd1&\xacz\xe0\xe7s\x5ca\x03\
-\x16#dWQ\xf7[gD\xc8uX\xed\xc0\xff\x84\
-\x86^X\x9b\x1ef~m\x5c\x082\xb6\x06-\x8e\x0d\
-\x80%w\xb9\xc2\x1d\xda\x04\xdd\x83E\x0a\xb1\xff\x11L\
-\xdcM\x95\xf0\xb0\xaa\x81e\xe9\x14\xd3\xf52\xcdp\xbf\
-\xc2\x82\x85\x18\xde\xd1~E\xf3\x18\xab\x190A\x80[\
-x\x9c\xeayb\xe1B,}\x04\xa3\xcb;X\xbd\x80\
-=\xc3\x0d\x0bqj\xa6\x1b\xa6M\xe4\x1a,d\xc8\xc2\
-&{\x86v\xb34_\xb1j\x01\xdb\xa6+\x0b\xf7\xd1\
-\x19\x18\x165d\xc1L\x83]\xd4\x16\x0a\xab\x14\xd8\xea\
-,7@\x16?\xc1E\x08\xc82\x99\x06\xb2\x18\xdaY\
-\x16\x7f\x8d\xd5\x09lz\x96+\xdd\xa3M\xf6T,v\
-\xc8\x8f\xda\x1c(\x8bwa5\x02\xfbC\xd7}ea\
-\xa0K\x113\xb1\xf0!\x13\x95\x11 \x0b}\xb1\x00\x01\
-w\x5c\x15\xd6\xf77gk,\x94\xc1\x08 \x03UJ\
-\xf3\x0c\xe9\x5c\x80{\xda)A\xbfw)R$\xb2\x16\
- _g\x19P6L\xfb)\xdd\xaf\xc2*\x03\xa0\x0e\
-T\xe8C[$\xaba\x12\x90\x0f\x8cv%\xb2\x0c\x00\
-h\xdeG\xb4\xe50\x0c\xa8\xc5R\x84e\x81\x8a\xd0\x15\
-\xab\x08\x80\x16\xe0T\xc4\x10j\x0d\x0d\x13\x81\xb0\x93\x05\
-\xc0hBC/\x0c\x90\xa5\xc1\xdabJ\x87\xa1@\x0d\
-\xb5\xa7\xd1\xfe(\x0f\xa2y\x82\xc5\x02\x80\xaf\x8e\x17\xb4\
-\x9d\x8b\xb6\xb8\x12\xf0!\x8d{Q\xfc\x13\xb0\x93\x05\xc0\
-`\xce\x16,\xff\xca\xe9\x16O\xc2x\xb8R\x05\xc5\x1d\
-\x8d\x16\x010\x19\x97,v\xae-\xe7(\x1c\x87\x11\xd9\
-Z%\x9a&\xb8\xc2\x83\xae\xc1\xac\x07\xc0\x9fL\xec}\
-\xa9~#\xcd-.\xc1\x11\x83\xad\x8e\x0a\x96P\x5c\x1d\
-1\x03/\xc1$\x07\xc0\x82G\x0c\xb5\x05o\x84\x02\x18\
-\x16\x93\xca\xa2\x0218*\x00\x80\x11j;FHO\
-\x9d\xdd\xedV\xc3\xc4\xac\xdd\x22<\xc0-$\x05(\xe2\
-\x10T\xe1\x02\x80a\xa8\x06\x03\x15 9{%\xf8\x04\
-\xcc\xcd\x12:A\xf1\xa0\xb8P|0K\x01\xb0\x19m\
-\x94\xe0vNE|\x8evR\xd8\xf1\x9a\xaeSN\xb7\
-\xb8\xd0%K\xc3\xda\x86\xf7\x0c\xc4l\x04\x80\xa3\xa3\x86\
-\xda[j\xc2W(\xf7h`'\x04Y\xfc\x84\xc6\x19\
-U\xb7\x00\x00:\xce\x88\x90\xeb4\xd3\x1dQ{\xce+\
-T\xc1,\xbdR%]8p\xba\xa5\x17h<1\xab\
-\x00\x00M\x1e7\xb8\xdc\xd2\x83\x01n\xe1S\xcd<V\
-\xe1\x02\x85\xc7\x9d+\x8dK\x8a\xb6s\xfd\x98\xce_q\
-<\x00\x00h\x1d\x13{_\x1a\x18\x11t\xb7f.\xa3\
-]\xb28W\xdb\xf9\xe6rZ\xf0\x85\xde;N\xd3(\
-\xbd\xba\x16r`\x01\x00F\xd3~\xca=m\xb4\x9f\xcb\
-]jS\xcc\xe8&\x9b^\x8b\xd7.]'\xcaj\xdf\
-\x87\xdeKz\x8a\xde\x93\xde\x17Q\x07\x00X\x83\xb0.\
-\x17\x07(\xc1\x7f\xd7\xcci\x00\xed\xfe4}\xe3T\x84\
-\x05g\xab\x96UX\xb0\xd6\x00=\xd7|M_\xbb\x14\
-\xe9u\x97,\xf5\x0f\x90\xbb\xfd\x8d\xde\x03\xc1\x04\x000\
-K\x07Y\xbc\x92~~\xeby\xbf\xb28\x94\x0c\x99\xce\
-;\xb5\xff\x19~\xf6\xe7yJ\xad\x01\x0a\x07j%\x16\
-j:\xe6\xb9\xfe\x83\xfe\x9f\x1f\xab\xfd\xdf\xfb\xe9\xbf\xa3\
-\xff\xf7Wj\xff\xd9\x1cM\x935\xe3\x1f\xaf\x1b\xbf\xf6\
-\xef\xd1\xbfK\x9de\xe99\x10\x0d\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x8c\xe0\xff\x01/\x9b\xa0\xe9\xec\
-0\x8e\x92\x00\x00\x00\x00IEND\xaeB`\x82\
-"
-
-qt_resource_name = b"\
-\x00\x06\
-\x07\x03}\xc3\
-\x00i\
-\x00m\x00a\x00g\x00e\x00s\
-\x00\x09\
-\x08\x97\x8a'\
-\x00h\
-\x00e\x00a\x00r\x00t\x00.\x00p\x00n\x00g\
-\x00\x07\
-\x08wW\x87\
-\x00b\
-\x00a\x00d\x00.\x00p\x00n\x00g\
-\x00\x09\
-\x08\x9b\xa0G\
-\x00t\
-\x00r\x00a\x00s\x00h\x00.\x00p\x00n\x00g\
-"
-
-qt_resource_struct = b"\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
-\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x02\
-\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00*\x00\x00\x00\x00\x00\x01\x00\x00d\xb8\
-\x00\x00\x01r\x0e\xc2\x8cT\
-\x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x01r\x0e\xc2\x8cW\
-\x00\x00\x00>\x00\x00\x00\x00\x00\x01\x00\x00n|\
-\x00\x00\x01r\x0e\xc2\x8cW\
-"
-
-def qInitResources():
- QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
-
-def qCleanupResources():
- QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
-
-qInitResources()
diff --git a/examples/widgets/systray/window.py b/examples/widgets/systray/window.py
deleted file mode 100644
index 828aebecd..000000000
--- a/examples/widgets/systray/window.py
+++ /dev/null
@@ -1,273 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-from PySide6.QtCore import Slot
-from PySide6.QtGui import QAction, QIcon
-from PySide6.QtWidgets import (QCheckBox, QComboBox, QDialog,
- QGridLayout, QGroupBox, QHBoxLayout, QLabel,
- QLineEdit, QMenu, QMessageBox, QPushButton,
- QSpinBox, QStyle, QSystemTrayIcon, QTextEdit,
- QVBoxLayout)
-
-import rc_systray
-
-
-class Window(QDialog):
- def __init__(self, parent=None):
- super().__init__(parent)
-
- self._icon_group_box = QGroupBox()
- self._icon_label = QLabel()
- self._icon_combo_box = QComboBox()
- self._show_icon_check_box = QCheckBox()
-
- self._message_group_box = QGroupBox()
- self._type_label = QLabel()
- self._duration_label = QLabel()
- self._duration_warning_label = QLabel()
- self._title_label = QLabel()
- self._body_label = QLabel()
-
- self._type_combo_box = QComboBox()
- self._duration_spin_box = QSpinBox()
- self._title_edit = QLineEdit()
- self._body_edit = QTextEdit()
- self._show_message_button = QPushButton()
-
- self._minimize_action = QAction()
- self._maximize_action = QAction()
- self._restore_action = QAction()
- self._quit_action = QAction()
-
- self._tray_icon = QSystemTrayIcon()
- self._tray_icon_menu = QMenu()
-
- self.create_icon_group_box()
- self.create_message_group_box()
-
- self._icon_label.setMinimumWidth(self._duration_label.sizeHint().width())
-
- self.create_actions()
- self.create_tray_icon()
-
- self._show_message_button.clicked.connect(self.show_message)
- self._show_icon_check_box.toggled.connect(self._tray_icon.setVisible)
- self._icon_combo_box.currentIndexChanged.connect(self.set_icon)
- self._tray_icon.messageClicked.connect(self.message_clicked)
- self._tray_icon.activated.connect(self.icon_activated)
-
- self._main_layout = QVBoxLayout()
- self._main_layout.addWidget(self._icon_group_box)
- self._main_layout.addWidget(self._message_group_box)
- self.setLayout(self._main_layout)
-
- self._icon_combo_box.setCurrentIndex(1)
- self._tray_icon.show()
-
- self.setWindowTitle("Systray")
- self.resize(400, 300)
-
- def setVisible(self, visible):
- self._minimize_action.setEnabled(visible)
- self._maximize_action.setEnabled(not self.isMaximized())
- self._restore_action.setEnabled(self.isMaximized() or not visible)
- super().setVisible(visible)
-
- def closeEvent(self, event):
- if not event.spontaneous() or not self.isVisible():
- return
- if self._tray_icon.isVisible():
- QMessageBox.information(self, "Systray",
- "The program will keep running in the system tray. "
- "To terminate the program, choose <b>Quit</b> in the context "
- "menu of the system tray entry.")
- self.hide()
- event.ignore()
-
- @Slot(int)
- def set_icon(self, index):
- icon = self._icon_combo_box.itemIcon(index)
- self._tray_icon.setIcon(icon)
- self.setWindowIcon(icon)
- self._tray_icon.setToolTip(self._icon_combo_box.itemText(index))
-
- @Slot(str)
- def icon_activated(self, reason):
- if reason == QSystemTrayIcon.Trigger:
- pass
- if reason == QSystemTrayIcon.DoubleClick:
- self._icon_combo_box.setCurrentIndex(
- (self._icon_combo_box.currentIndex() + 1) % self._icon_combo_box.count()
- )
- if reason == QSystemTrayIcon.MiddleClick:
- self.show_message()
-
- @Slot()
- def show_message(self):
- self._show_icon_check_box.setChecked(True)
- selected_icon = self._type_combo_box.itemData(self._type_combo_box.currentIndex())
- msg_icon = QSystemTrayIcon.MessageIcon(selected_icon)
-
- if selected_icon == -1: # custom icon
- icon = QIcon(self._icon_combo_box.itemIcon(self._icon_combo_box.currentIndex()))
- self._tray_icon.showMessage(
- self._title_edit.text(),
- self._body_edit.toPlainText(),
- icon,
- self._duration_spin_box.value() * 1000,
- )
- else:
- self._tray_icon.showMessage(
- self._title_edit.text(),
- self._body_edit.toPlainText(),
- msg_icon,
- self._duration_spin_box.value() * 1000,
- )
-
- @Slot()
- def message_clicked(self):
- QMessageBox.information(None, "Systray",
- "Sorry, I already gave what help I could.\n"
- "Maybe you should try asking a human?")
-
- def create_icon_group_box(self):
- self._icon_group_box = QGroupBox("Tray Icon")
-
- self._icon_label = QLabel("Icon:")
-
- self._icon_combo_box = QComboBox()
- self._icon_combo_box.addItem(QIcon(":/images/bad.png"), "Bad")
- self._icon_combo_box.addItem(QIcon(":/images/heart.png"), "Heart")
- self._icon_combo_box.addItem(QIcon(":/images/trash.png"), "Trash")
-
- self._show_icon_check_box = QCheckBox("Show icon")
- self._show_icon_check_box.setChecked(True)
-
- icon_layout = QHBoxLayout()
- icon_layout.addWidget(self._icon_label)
- icon_layout.addWidget(self._icon_combo_box)
- icon_layout.addStretch()
- icon_layout.addWidget(self._show_icon_check_box)
- self._icon_group_box.setLayout(icon_layout)
-
- def create_message_group_box(self):
- self._message_group_box = QGroupBox("Balloon Message")
-
- self._type_label = QLabel("Type:")
-
- self._type_combo_box = QComboBox()
- self._type_combo_box.addItem("None", QSystemTrayIcon.NoIcon)
- self._type_combo_box.addItem(
- self.style().standardIcon(QStyle.SP_MessageBoxInformation),
- "Information",
- QSystemTrayIcon.Information,
- )
- self._type_combo_box.addItem(
- self.style().standardIcon(QStyle.SP_MessageBoxWarning),
- "Warning",
- QSystemTrayIcon.Warning,
- )
- self._type_combo_box.addItem(
- self.style().standardIcon(QStyle.SP_MessageBoxCritical),
- "Critical",
- QSystemTrayIcon.Critical,
- )
- self._type_combo_box.addItem(QIcon(), "Custom icon", -1)
- self._type_combo_box.setCurrentIndex(1)
-
- self._duration_label = QLabel("Duration:")
-
- self._duration_spin_box = QSpinBox()
- self._duration_spin_box.setRange(5, 60)
- self._duration_spin_box.setSuffix(" s")
- self._duration_spin_box.setValue(15)
-
- self._duration_warning_label = QLabel("(some systems might ignore this hint)")
- self._duration_warning_label.setIndent(10)
-
- self._title_label = QLabel("Title:")
- self._title_edit = QLineEdit("Cannot connect to network")
- self._body_label = QLabel("Body:")
-
- self._body_edit = QTextEdit()
- self._body_edit.setPlainText("Don't believe me. Honestly, I don't have a clue."
- "\nClick this balloon for details.")
-
- self._show_message_button = QPushButton("Show Message")
- self._show_message_button.setDefault(True)
-
- message_layout = QGridLayout()
- message_layout.addWidget(self._type_label, 0, 0)
- message_layout.addWidget(self._type_combo_box, 0, 1, 1, 2)
- message_layout.addWidget(self._duration_label, 1, 0)
- message_layout.addWidget(self._duration_spin_box, 1, 1)
- message_layout.addWidget(self._duration_warning_label, 1, 2, 1, 3)
- message_layout.addWidget(self._title_label, 2, 0)
- message_layout.addWidget(self._title_edit, 2, 1, 1, 4)
- message_layout.addWidget(self._body_label, 3, 0)
- message_layout.addWidget(self._body_edit, 3, 1, 2, 4)
- message_layout.addWidget(self._show_message_button, 5, 4)
- message_layout.setColumnStretch(3, 1)
- message_layout.setRowStretch(4, 1)
- self._message_group_box.setLayout(message_layout)
-
- def create_actions(self):
- self._minimize_action = QAction("Minimize", self)
- self._minimize_action.triggered.connect(self.hide)
-
- self._maximize_action = QAction("Maximize", self)
- self._maximize_action.triggered.connect(self.showMaximized)
-
- self._restore_action = QAction("Restore", self)
- self._restore_action.triggered.connect(self.showNormal)
-
- self._quit_action = QAction("Quit", self)
- self._quit_action.triggered.connect(qApp.quit)
-
- def create_tray_icon(self):
- self._tray_icon_menu = QMenu(self)
- self._tray_icon_menu.addAction(self._minimize_action)
- self._tray_icon_menu.addAction(self._maximize_action)
- self._tray_icon_menu.addAction(self._restore_action)
- self._tray_icon_menu.addSeparator()
- self._tray_icon_menu.addAction(self._quit_action)
-
- self._tray_icon = QSystemTrayIcon(self)
- self._tray_icon.setContextMenu(self._tray_icon_menu)
diff --git a/examples/widgets/tetrix/tetrix.py b/examples/widgets/tetrix/tetrix.py
deleted file mode 100644
index 1427c9770..000000000
--- a/examples/widgets/tetrix/tetrix.py
+++ /dev/null
@@ -1,507 +0,0 @@
-
-#############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-"""PySide6 port of the widgets/widgets/tetrix example from Qt v5.x"""
-
-from enum import IntEnum
-import random
-import sys
-
-from PySide6.QtCore import QBasicTimer, QSize, Qt, Signal, Slot
-from PySide6.QtGui import QColor, QPainter
-from PySide6.QtWidgets import (QApplication, QFrame, QGridLayout, QLabel,
- QLCDNumber, QPushButton, QWidget)
-
-
-class Piece(IntEnum):
- NoShape = 0
- ZShape = 1
- SShape = 2
- LineShape = 3
- TShape = 4
- SquareShape = 5
- LShape = 6
- MirroredLShape = 7
-
-
-class TetrixWindow(QWidget):
- def __init__(self):
- super().__init__()
-
- self.board = TetrixBoard()
-
- next_piece_label = QLabel()
- next_piece_label.setFrameStyle(QFrame.Box | QFrame.Raised)
- next_piece_label.setAlignment(Qt.AlignCenter)
- self.board.set_next_piece_label(next_piece_label)
-
- score_lcd = QLCDNumber(5)
- score_lcd.setSegmentStyle(QLCDNumber.Filled)
- level_lcd = QLCDNumber(2)
- level_lcd.setSegmentStyle(QLCDNumber.Filled)
- lines_lcd = QLCDNumber(5)
- lines_lcd.setSegmentStyle(QLCDNumber.Filled)
-
- start_button = QPushButton("&Start")
- start_button.setFocusPolicy(Qt.NoFocus)
- quit_button = QPushButton("&Quit")
- quit_button.setFocusPolicy(Qt.NoFocus)
- pause_button = QPushButton("&Pause")
- pause_button.setFocusPolicy(Qt.NoFocus)
-
- start_button.clicked.connect(self.board.start)
- pause_button.clicked.connect(self.board.pause)
- quit_button.clicked.connect(qApp.quit)
- self.board.score_changed.connect(score_lcd.display)
- self.board.level_changed.connect(level_lcd.display)
- self.board.lines_removed_changed.connect(lines_lcd.display)
-
- layout = QGridLayout(self)
- layout.addWidget(self.create_label("NEXT"), 0, 0)
- layout.addWidget(next_piece_label, 1, 0)
- layout.addWidget(self.create_label("LEVEL"), 2, 0)
- layout.addWidget(level_lcd, 3, 0)
- layout.addWidget(start_button, 4, 0)
- layout.addWidget(self.board, 0, 1, 6, 1)
- layout.addWidget(self.create_label("SCORE"), 0, 2)
- layout.addWidget(score_lcd, 1, 2)
- layout.addWidget(self.create_label("LINES REMOVED"), 2, 2)
- layout.addWidget(lines_lcd, 3, 2)
- layout.addWidget(quit_button, 4, 2)
- layout.addWidget(pause_button, 5, 2)
-
- self.setWindowTitle("Tetrix")
- self.resize(550, 370)
-
- def create_label(self, text):
- lbl = QLabel(text)
- lbl.setAlignment(Qt.AlignHCenter | Qt.AlignBottom)
- return lbl
-
-
-class TetrixBoard(QFrame):
- board_width = 10
- board_height = 22
-
- score_changed = Signal(int)
-
- level_changed = Signal(int)
-
- lines_removed_changed = Signal(int)
-
- def __init__(self, parent=None):
- super().__init__(parent)
-
- self.timer = QBasicTimer()
- self.nextPieceLabel = None
- self._is_waiting_after_line = False
- self._cur_piece = TetrixPiece()
- self._next_piece = TetrixPiece()
- self._cur_x = 0
- self._cur_y = 0
- self._num_lines_removed = 0
- self._num_pieces_dropped = 0
- self.score = 0
- self.level = 0
- self.board = None
-
- self.setFrameStyle(QFrame.Panel | QFrame.Sunken)
- self.setFocusPolicy(Qt.StrongFocus)
- self._is_started = False
- self._is_paused = False
- self.clear_board()
-
- self._next_piece.set_random_shape()
-
- def shape_at(self, x, y):
- return self.board[(y * TetrixBoard.board_width) + x]
-
- def set_shape_at(self, x, y, shape):
- self.board[(y * TetrixBoard.board_width) + x] = shape
-
- def timeout_time(self):
- return 1000 / (1 + self.level)
-
- def square_width(self):
- return self.contentsRect().width() / TetrixBoard.board_width
-
- def square_height(self):
- return self.contentsRect().height() / TetrixBoard.board_height
-
- def set_next_piece_label(self, label):
- self.nextPieceLabel = label
-
- def sizeHint(self):
- return QSize(TetrixBoard.board_width * 15 + self.frameWidth() * 2,
- TetrixBoard.board_height * 15 + self.frameWidth() * 2)
-
- def minimum_size_hint(self):
- return QSize(TetrixBoard.board_width * 5 + self.frameWidth() * 2,
- TetrixBoard.board_height * 5 + self.frameWidth() * 2)
-
- def start(self):
- if self._is_paused:
- return
-
- self._is_started = True
- self._is_waiting_after_line = False
- self._num_lines_removed = 0
- self._num_pieces_dropped = 0
- self.score = 0
- self.level = 1
- self.clear_board()
-
- self.lines_removed_changed.emit(self._num_lines_removed)
- self.score_changed.emit(self.score)
- self.level_changed.emit(self.level)
-
- self.new_piece()
- self.timer.start(self.timeout_time(), self)
-
- def pause(self):
- if not self._is_started:
- return
-
- self._is_paused = not self._is_paused
- if self._is_paused:
- self.timer.stop()
- else:
- self.timer.start(self.timeout_time(), self)
-
- self.update()
-
- def paintEvent(self, event):
- super(TetrixBoard, self).paintEvent(event)
-
- painter = QPainter(self)
- rect = self.contentsRect()
-
- if self._is_paused:
- painter.drawText(rect, Qt.AlignCenter, "Pause")
- return
-
- board_top = rect.bottom() - TetrixBoard.board_height * self.square_height()
-
- for i in range(TetrixBoard.board_height):
- for j in range(TetrixBoard.board_width):
- shape = self.shape_at(j, TetrixBoard.board_height - i - 1)
- if shape != Piece.NoShape:
- self.draw_square(painter,
- rect.left() + j * self.square_width(),
- board_top + i * self.square_height(), shape)
-
- if self._cur_piece.shape() != Piece.NoShape:
- for i in range(4):
- x = self._cur_x + self._cur_piece.x(i)
- y = self._cur_y - self._cur_piece.y(i)
- self.draw_square(painter, rect.left() + x * self.square_width(),
- board_top + (TetrixBoard.board_height - y - 1) * self.square_height(),
- self._cur_piece.shape())
-
- def keyPressEvent(self, event):
- if not self._is_started or self._is_paused or self._cur_piece.shape() == Piece.NoShape:
- super(TetrixBoard, self).keyPressEvent(event)
- return
-
- key = event.key()
- if key == Qt.Key_Left:
- self.try_move(self._cur_piece, self._cur_x - 1, self._cur_y)
- elif key == Qt.Key_Right:
- self.try_move(self._cur_piece, self._cur_x + 1, self._cur_y)
- elif key == Qt.Key_Down:
- self.try_move(self._cur_piece.rotated_right(), self._cur_x, self._cur_y)
- elif key == Qt.Key_Up:
- self.try_move(self._cur_piece.rotated_left(), self._cur_x, self._cur_y)
- elif key == Qt.Key_Space:
- self.drop_down()
- elif key == Qt.Key_D:
- self.one_line_down()
- else:
- super(TetrixBoard, self).keyPressEvent(event)
-
- def timerEvent(self, event):
- if event.timerId() == self.timer.timerId():
- if self._is_waiting_after_line:
- self._is_waiting_after_line = False
- self.new_piece()
- self.timer.start(self.timeout_time(), self)
- else:
- self.one_line_down()
- else:
- super(TetrixBoard, self).timerEvent(event)
-
- def clear_board(self):
- self.board = [Piece.NoShape for i in range(TetrixBoard.board_height * TetrixBoard.board_width)]
-
- def drop_down(self):
- drop_height = 0
- new_y = self._cur_y
- while new_y > 0:
- if not self.try_move(self._cur_piece, self._cur_x, new_y - 1):
- break
- new_y -= 1
- drop_height += 1
-
- self.piece_dropped(drop_height)
-
- def one_line_down(self):
- if not self.try_move(self._cur_piece, self._cur_x, self._cur_y - 1):
- self.piece_dropped(0)
-
- def piece_dropped(self, dropHeight):
- for i in range(4):
- x = self._cur_x + self._cur_piece.x(i)
- y = self._cur_y - self._cur_piece.y(i)
- self.set_shape_at(x, y, self._cur_piece.shape())
-
- self._num_pieces_dropped += 1
- if self._num_pieces_dropped % 25 == 0:
- self.level += 1
- self.timer.start(self.timeout_time(), self)
- self.level_changed.emit(self.level)
-
- self.score += dropHeight + 7
- self.score_changed.emit(self.score)
- self.remove_full_lines()
-
- if not self._is_waiting_after_line:
- self.new_piece()
-
- def remove_full_lines(self):
- num_full_lines = 0
-
- for i in range(TetrixBoard.board_height - 1, -1, -1):
- line_is_full = True
-
- for j in range(TetrixBoard.board_width):
- if self.shape_at(j, i) == Piece.NoShape:
- line_is_full = False
- break
-
- if line_is_full:
- num_full_lines += 1
- for k in range(TetrixBoard.board_height - 1):
- for j in range(TetrixBoard.board_width):
- self.set_shape_at(j, k, self.shape_at(j, k + 1))
-
- for j in range(TetrixBoard.board_width):
- self.set_shape_at(j, TetrixBoard.board_height - 1, Piece.NoShape)
-
- if num_full_lines > 0:
- self._num_lines_removed += num_full_lines
- self.score += 10 * num_full_lines
- self.lines_removed_changed.emit(self._num_lines_removed)
- self.score_changed.emit(self.score)
-
- self.timer.start(500, self)
- self._is_waiting_after_line = True
- self._cur_piece.setShape(Piece.NoShape)
- self.update()
-
- def new_piece(self):
- self._cur_piece = self._next_piece
- self._next_piece.set_random_shape()
- self.show_next_piece()
- self._cur_x = TetrixBoard.board_width // 2 + 1
- self._cur_y = TetrixBoard.board_height - 1 + self._cur_piece.min_y()
-
- if not self.try_move(self._cur_piece, self._cur_x, self._cur_y):
- self._cur_piece.setShape(Piece.NoShape)
- self.timer.stop()
- self._is_started = False
-
- def show_next_piece(self):
- if self.nextPieceLabel is not None:
- return
-
- dx = self._next_piece.max_x() - self._next_piece.min_x() + 1
- dy = self._next_piece.max_y() - self._next_piece.min_y() + 1
-
- pixmap = QPixmap(dx * self.square_width(), dy * self.square_height())
- painter = QPainter(pixmap)
- painter.fillRect(pixmap.rect(), self.nextPieceLabel.palette().background())
-
- for int in range(4):
- x = self._next_piece.x(i) - self._next_piece.min_x()
- y = self._next_piece.y(i) - self._next_piece.min_y()
- self.draw_square(painter, x * self.square_width(),
- y * self.square_height(), self._next_piece.shape())
-
- self.nextPieceLabel.setPixmap(pixmap)
-
- def try_move(self, newPiece, newX, newY):
- for i in range(4):
- x = newX + newPiece.x(i)
- y = newY - newPiece.y(i)
- if x < 0 or x >= TetrixBoard.board_width or y < 0 or y >= TetrixBoard.board_height:
- return False
- if self.shape_at(x, y) != Piece.NoShape:
- return False
-
- self._cur_piece = newPiece
- self._cur_x = newX
- self._cur_y = newY
- self.update()
- return True
-
- def draw_square(self, painter, x, y, shape):
- color_table = [0x000000, 0xCC6666, 0x66CC66, 0x6666CC,
- 0xCCCC66, 0xCC66CC, 0x66CCCC, 0xDAAA00]
-
- color = QColor(color_table[shape])
- painter.fillRect(x + 1, y + 1, self.square_width() - 2,
- self.square_height() - 2, color)
-
- painter.setPen(color.lighter())
- painter.drawLine(x, y + self.square_height() - 1, x, y)
- painter.drawLine(x, y, x + self.square_width() - 1, y)
-
- painter.setPen(color.darker())
- painter.drawLine(x + 1, y + self.square_height() - 1,
- x + self.square_width() - 1, y + self.square_height() - 1)
- painter.drawLine(x + self.square_width() - 1,
- y + self.square_height() - 1, x + self.square_width() - 1, y + 1)
-
-
-class TetrixPiece(object):
- coords_table = (
- ((0, 0), (0, 0), (0, 0), (0, 0)),
- ((0, -1), (0, 0), (-1, 0), (-1, 1)),
- ((0, -1), (0, 0), (1, 0), (1, 1)),
- ((0, -1), (0, 0), (0, 1), (0, 2)),
- ((-1, 0), (0, 0), (1, 0), (0, 1)),
- ((0, 0), (1, 0), (0, 1), (1, 1)),
- ((-1, -1), (0, -1), (0, 0), (0, 1)),
- ((1, -1), (0, -1), (0, 0), (0, 1))
- )
-
- def __init__(self):
- self.coords = [[0,0] for _ in range(4)]
- self._piece_shape = Piece.NoShape
-
- self.set_shape(Piece.NoShape)
-
- def shape(self):
- return self._piece_shape
-
- def set_shape(self, shape):
- table = TetrixPiece.coords_table[shape]
- for i in range(4):
- for j in range(2):
- self.coords[i][j] = table[i][j]
-
- self._piece_shape = shape
-
- def set_random_shape(self):
- self.set_shape(random.randint(1, 7))
-
- def x(self, index):
- return self.coords[index][0]
-
- def y(self, index):
- return self.coords[index][1]
-
- def set_x(self, index, x):
- self.coords[index][0] = x
-
- def set_y(self, index, y):
- self.coords[index][1] = y
-
- def min_x(self):
- m = self.coords[0][0]
- for i in range(4):
- m = min(m, self.coords[i][0])
-
- return m
-
- def max_x(self):
- m = self.coords[0][0]
- for i in range(4):
- m = max(m, self.coords[i][0])
-
- return m
-
- def min_y(self):
- m = self.coords[0][1]
- for i in range(4):
- m = min(m, self.coords[i][1])
-
- return m
-
- def max_y(self):
- m = self.coords[0][1]
- for i in range(4):
- m = max(m, self.coords[i][1])
-
- return m
-
- def rotated_left(self):
- if self._piece_shape == Piece.SquareShape:
- return self
-
- result = TetrixPiece()
- result._piece_shape = self._piece_shape
- for i in range(4):
- result.set_x(i, self.y(i))
- result.set_y(i, -self.x(i))
-
- return result
-
- def rotated_right(self):
- if self._piece_shape == Piece.SquareShape:
- return self
-
- result = TetrixPiece()
- result._piece_shape = self._piece_shape
- for i in range(4):
- result.set_x(i, -self.y(i))
- result.set_y(i, self.x(i))
-
- return result
-
-
-if __name__ == '__main__':
- app = QApplication(sys.argv)
- window = TetrixWindow()
- window.show()
- random.seed(None)
- sys.exit(app.exec())
diff --git a/examples/widgets/thread_signals/thread_signals.py b/examples/widgets/thread_signals/thread_signals.py
new file mode 100644
index 000000000..ae8e1ba72
--- /dev/null
+++ b/examples/widgets/thread_signals/thread_signals.py
@@ -0,0 +1,62 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+from PySide6.QtCore import QObject, QThread, Signal, Slot
+from PySide6.QtWidgets import QApplication, QPushButton, QVBoxLayout, QWidget
+
+
+# Create a basic window with a layout and a button
+class MainForm(QWidget):
+ def __init__(self):
+ super().__init__()
+ self.setWindowTitle("My Form")
+ self.layout = QVBoxLayout()
+ self.button = QPushButton("Click me!")
+ self.button.clicked.connect(self.start_thread)
+ self.layout.addWidget(self.button)
+ self.setLayout(self.layout)
+
+ # Instantiate and start a new thread
+ def start_thread(self):
+ instanced_thread = WorkerThread(self)
+ instanced_thread.start()
+
+ # Create the Slots that will receive signals
+ @Slot(str)
+ def update_str_field(self, message):
+ print(message)
+
+ @Slot(int)
+ def update_int_field(self, value):
+ print(value)
+
+
+# Signals must inherit QObject
+class MySignals(QObject):
+ signal_str = Signal(str)
+ signal_int = Signal(int)
+
+
+# Create the Worker Thread
+class WorkerThread(QThread):
+ def __init__(self, parent=None):
+ QThread.__init__(self, parent)
+ # Instantiate signals and connect signals to the slots
+ self.signals = MySignals()
+ self.signals.signal_str.connect(parent.update_str_field)
+ self.signals.signal_int.connect(parent.update_int_field)
+
+ def run(self):
+ # Do something on the worker thread
+ a = 1 + 1
+ # Emit signals whenever you want
+ self.signals.signal_int.emit(a)
+ self.signals.signal_str.emit("This text comes to Main thread from our Worker thread.")
+
+
+if __name__ == "__main__":
+ app = QApplication(sys.argv)
+ window = MainForm()
+ window.show()
+ sys.exit(app.exec())
diff --git a/examples/widgets/threads/thread_signals.pyproject b/examples/widgets/thread_signals/thread_signals.pyproject
index e36f7633c..e36f7633c 100644
--- a/examples/widgets/threads/thread_signals.pyproject
+++ b/examples/widgets/thread_signals/thread_signals.pyproject
diff --git a/examples/widgets/threads/thread_signals.py b/examples/widgets/threads/thread_signals.py
deleted file mode 100644
index 43c79f4b7..000000000
--- a/examples/widgets/threads/thread_signals.py
+++ /dev/null
@@ -1,100 +0,0 @@
-
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-import sys
-from PySide6.QtCore import QObject, QThread, Signal, Slot
-from PySide6.QtWidgets import QApplication, QPushButton, QVBoxLayout, QWidget
-
-
-# Create a basic window with a layout and a button
-class MainForm(QWidget):
- def __init__(self):
- super().__init__()
- self.setWindowTitle("My Form")
- self.layout = QVBoxLayout()
- self.button = QPushButton("Click me!")
- self.button.clicked.connect(self.start_thread)
- self.layout.addWidget(self.button)
- self.setLayout(self.layout)
-
- # Instantiate and start a new thread
- def start_thread(self):
- instanced_thread = WorkerThread(self)
- instanced_thread.start()
-
- # Create the Slots that will receive signals
- @Slot(str)
- def update_str_field(self, message):
- print(message)
-
- @Slot(int)
- def update_int_field(self, value):
- print(value)
-
-
-# Signals must inherit QObject
-class MySignals(QObject):
- signal_str = Signal(str)
- signal_int = Signal(int)
-
-
-# Create the Worker Thread
-class WorkerThread(QThread):
- def __init__(self, parent=None):
- QThread.__init__(self, parent)
- # Instantiate signals and connect signals to the slots
- self.signals = MySignals()
- self.signals.signal_str.connect(parent.update_str_field)
- self.signals.signal_int.connect(parent.update_int_field)
-
- def run(self):
- # Do something on the worker thread
- a = 1 + 1
- # Emit signals whenever you want
- self.signals.signal_int.emit(a)
- self.signals.signal_str.emit("This text comes to Main thread from our Worker thread.")
-
-
-if __name__ == "__main__":
- app = QApplication(sys.argv)
- window = MainForm()
- window.show()
- sys.exit(app.exec())
diff --git a/examples/widgets/tools/regularexpression/doc/regularexpression.png b/examples/widgets/tools/regularexpression/doc/regularexpression.png
new file mode 100644
index 000000000..11e70f4a8
--- /dev/null
+++ b/examples/widgets/tools/regularexpression/doc/regularexpression.png
Binary files differ
diff --git a/examples/widgets/tools/regularexpression/doc/regularexpression.rst b/examples/widgets/tools/regularexpression/doc/regularexpression.rst
new file mode 100644
index 000000000..59a66acba
--- /dev/null
+++ b/examples/widgets/tools/regularexpression/doc/regularexpression.rst
@@ -0,0 +1,10 @@
+QRegularExpression Example
+==========================
+
+A Python application that demonstrates the analogous example in C++
+`QRegularExpression Example <https://doc.qt.io/qt-6/qtwidgets-tools-regularexpression-example.html>`_
+
+
+.. image:: regularexpression.png
+ :width: 400
+ :alt: regularexpression example
diff --git a/examples/widgets/tools/regularexpression/regularexpression.py b/examples/widgets/tools/regularexpression/regularexpression.py
new file mode 100644
index 000000000..261e26196
--- /dev/null
+++ b/examples/widgets/tools/regularexpression/regularexpression.py
@@ -0,0 +1,21 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""
+PySide6 port of Qt6 example qtbase/examples/widgets/tools/regularexpression
+
+More Information: https://doc.qt.io/qt-6/qtwidgets-tools-regularexpression-example.html
+"""
+import sys
+
+from regularexpressiondialog import RegularExpressionDialog
+
+from PySide6.QtWidgets import QApplication
+
+if __name__ == "__main__":
+ app = QApplication(sys.argv)
+
+ dialog = RegularExpressionDialog()
+ dialog.show()
+
+ sys.exit(app.exec())
diff --git a/examples/widgets/tools/regularexpression/regularexpression.pyproject b/examples/widgets/tools/regularexpression/regularexpression.pyproject
new file mode 100644
index 000000000..0896bfb7e
--- /dev/null
+++ b/examples/widgets/tools/regularexpression/regularexpression.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["regularexpression.py", "regularexpressiondialog.py"]
+}
diff --git a/examples/widgets/tools/regularexpression/regularexpressiondialog.py b/examples/widgets/tools/regularexpression/regularexpressiondialog.py
new file mode 100644
index 000000000..2d2bb2bb7
--- /dev/null
+++ b/examples/widgets/tools/regularexpression/regularexpressiondialog.py
@@ -0,0 +1,456 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import re
+import logging
+
+from PySide6.QtCore import (QMargins, QRegularExpression, QRegularExpressionMatch,
+ QRegularExpressionMatchIterator, Qt, Slot,)
+from PySide6.QtGui import (QAction, QColor, QContextMenuEvent, QFontDatabase,
+ QGuiApplication, QIcon, QPalette,)
+from PySide6.QtWidgets import (QCheckBox, QComboBox, QDialog, QFormLayout,
+ QFrame, QGridLayout, QHBoxLayout, QLabel,
+ QLineEdit, QPlainTextEdit, QSpinBox,
+ QTreeWidget, QTreeWidgetItem, QVBoxLayout,
+ QWidget)
+
+
+def rawStringLiteral(pattern: str) -> str:
+ pattern = 'r"' + pattern
+ pattern = pattern + '"'
+ return pattern
+
+
+def patternToCode(pattern: str) -> str:
+ pattern = pattern.replace("\\", "\\\\")
+ pattern = pattern.replace('"', '\\"')
+ pattern = '"' + pattern
+ pattern = pattern + '"'
+ return pattern
+
+
+def codeToPattern(code: str) -> str:
+
+ try:
+ _ = code[0]
+ except IndexError:
+ logging.warning("code is empty")
+ return code
+
+ code_characters = [c for c in code]
+ index = 0
+ code_characters_size = len(code_characters)
+ while index < code_characters_size:
+ if code_characters[index] == '\\':
+ del code_characters[index]
+ code_characters_size -= 1
+ index += 1
+ code = "".join(code_characters)
+
+ if code.startswith('"') and code.endswith('"'):
+ code = code[1:-1] # remove quotes
+
+ return code
+
+
+def createHorizontalSeparator() -> QFrame:
+ result = QFrame()
+ result.setFrameStyle(QFrame.HLine | QFrame.Sunken)
+ return result
+
+
+def createVerticalSeparator() -> QFrame:
+ result = QFrame()
+ result.setFrameStyle(QFrame.VLine | QFrame.Sunken)
+ return result
+
+
+class PatternLineEdit(QLineEdit):
+ def __init__(self, parent: QWidget = None):
+ super().__init__(parent)
+ self.escapeSelectionAction = QAction("Escape Selection", self)
+ self.copyToCodeAction = QAction("Copy to Code", self)
+ self.pasteFromCodeAction = QAction("Paste from Code", self)
+
+ self.setClearButtonEnabled(True)
+ self.escapeSelectionAction.triggered.connect(self.escapeSelection)
+ self.copyToCodeAction.triggered.connect(self.copyToCode)
+ self.pasteFromCodeAction.triggered.connect(self.pasteFromCode)
+
+ @Slot()
+ def escapeSelection(self):
+ selection = self.selectedText()
+ selection_start = self.selectionStart()
+ escapedSelection = QRegularExpression.escape(selection)
+ if escapedSelection != selection:
+ t = self.text()
+ t = (
+ t[: selection_start]
+ + escapedSelection
+ + t[selection_start + len(selection):]
+ )
+ self.setText(t)
+
+ @Slot()
+ def copyToCode(self):
+ QGuiApplication.clipboard().setText(patternToCode(self.text()))
+
+ @Slot()
+ def pasteFromCode(self):
+ self.setText(codeToPattern(QGuiApplication.clipboard().text()))
+
+ def contextMenuEvent(self, event: QContextMenuEvent) -> None:
+ menu = self.createStandardContextMenu()
+ menu.setAttribute(Qt.WA_DeleteOnClose)
+ menu.addSeparator()
+ self.escapeSelectionAction.setEnabled(self.hasSelectedText())
+ menu.addAction(self.escapeSelectionAction)
+ menu.addSeparator()
+ menu.addAction(self.copyToCodeAction)
+ menu.addAction(self.pasteFromCodeAction)
+ menu.popup(event.globalPos())
+
+
+class DisplayLineEdit(QLineEdit):
+ def __init__(self, parent: QWidget = None):
+ super().__init__(parent)
+ self.setReadOnly(True)
+ self.disablePalette: QPalette = self.palette()
+ self.disablePalette.setBrush(
+ QPalette.Base,
+ self.disablePalette.brush(QPalette.Disabled, QPalette.Base),
+ )
+ self.setPalette(self.disablePalette)
+
+ self.copyAction = QAction(self)
+ self.copyAction.setText("Copy to clipboard")
+ self.copyAction.setIcon(QIcon(":/images/copy.png"))
+ self.copyAction.triggered.connect(
+ lambda: QGuiApplication.clipboard().setText(self.text())
+ )
+ self.addAction(self.copyAction, QLineEdit.TrailingPosition)
+
+
+class RegularExpressionDialog(QDialog):
+ def __init__(self, parent: QWidget = None) -> None:
+ super().__init__(parent)
+ self.setupUi()
+ self.setWindowTitle("QRegularExpression Example")
+ self.regularExpression = QRegularExpression()
+ self.patternLineEdit.textChanged.connect(self.refresh)
+ self.subjectTextEdit.textChanged.connect(self.refresh)
+ self.caseInsensitiveOptionCheckBox.toggled.connect(self.refresh)
+ self.dotMatchesEverythingOptionCheckBox.toggled.connect(self.refresh)
+ self.multilineOptionCheckBox.toggled.connect(self.refresh)
+ self.extendedPatternSyntaxOptionCheckBox.toggled.connect(self.refresh)
+ self.invertedGreedinessOptionCheckBox.toggled.connect(self.refresh)
+ self.dontCaptureOptionCheckBox.toggled.connect(self.refresh)
+ self.useUnicodePropertiesOptionCheckBox.toggled.connect(self.refresh)
+ self.offsetSpinBox.valueChanged.connect(self.refresh)
+ self.matchTypeComboBox.currentIndexChanged.connect(self.refresh)
+ self.anchoredMatchOptionCheckBox.toggled.connect(self.refresh)
+ self.dontCheckSubjectStringMatchOptionCheckBox.toggled.connect(self.refresh)
+
+ self.patternLineEdit.setText("(\\+?\\d+)-(?P<prefix>\\d+)-(?P<number>\\w+)")
+ self.subjectTextEdit.setPlainText(
+ "My office number is +43-152-0123456, my mobile is 001-41-255512"
+ " instead."
+ )
+
+ self.refresh()
+
+ def setResultUiEnabled(self, enabled: bool):
+ self.matchDetailsTreeWidget.setEnabled(enabled)
+ self.namedGroupsTreeWidget.setEnabled(enabled)
+ self.replacementTextEdit.setEnabled(enabled)
+
+ def setTextColor(self, widget: QWidget, color: QColor):
+ self.palette: QPalette = widget.palette()
+ self.palette.setColor(QPalette.Text, color)
+ widget.setPalette(self.palette)
+
+ @Slot()
+ def refresh(self):
+ self.setUpdatesEnabled(False)
+ self.pattern = self.patternLineEdit.text()
+ self.text = self.subjectTextEdit.toPlainText()
+
+ self.offsetSpinBox.setMaximum(max(0, len(self.text) - 1))
+
+ self.escapedPatternLineEdit.setText(patternToCode(self.pattern))
+ self.rawStringLiteralLineEdit.setText(rawStringLiteral(self.pattern))
+
+ self.setTextColor(
+ self.patternLineEdit,
+ self.subjectTextEdit.palette().color(QPalette.Text),
+ )
+ self.matchDetailsTreeWidget.clear()
+ self.namedGroupsTreeWidget.clear()
+ self.regexpStatusLabel.setText("")
+ self.replacementTextEdit.clear()
+
+ if not self.pattern:
+ self.setResultUiEnabled(False)
+ self.setUpdatesEnabled(True)
+ return
+
+ self.regularExpression.setPattern(self.pattern)
+
+ if not self.regularExpression.isValid():
+ self.setTextColor(self.patternLineEdit, Qt.red)
+ pattern_error_offset = self.regularExpression.patternErrorOffset()
+ error_string = self.regularExpression.errorString()
+ self.regexpStatusLabel.setText(
+ "Invalid: syntax error at position"
+ f" {pattern_error_offset}"
+ f" ({error_string})"
+ )
+ self.setResultUiEnabled(False)
+ self.setUpdatesEnabled(True)
+ return
+
+ self.setResultUiEnabled(True)
+ matchType: QRegularExpression.MatchType = QRegularExpression.MatchType(
+ self.matchTypeComboBox.currentData()
+ )
+ patternOptions = QRegularExpression.NoPatternOption
+ matchOptions = QRegularExpression.NoMatchOption
+
+ if self.anchoredMatchOptionCheckBox.isChecked():
+ matchOptions |= QRegularExpression.AnchorAtOffsetMatchOption
+ if self.dontCheckSubjectStringMatchOptionCheckBox.isChecked():
+ matchOptions |= QRegularExpression.DontCheckSubjectStringMatchOption
+
+ if self.caseInsensitiveOptionCheckBox.isChecked():
+ patternOptions |= QRegularExpression.CaseInsensitiveOption
+ if self.dotMatchesEverythingOptionCheckBox.isChecked():
+ patternOptions |= QRegularExpression.DotMatchesEverythingOption
+ if self.multilineOptionCheckBox.isChecked():
+ patternOptions |= QRegularExpression.MultilineOption
+ if self.extendedPatternSyntaxOptionCheckBox.isChecked():
+ patternOptions |= QRegularExpression.ExtendedPatternSyntaxOption
+ if self.invertedGreedinessOptionCheckBox.isChecked():
+ patternOptions |= QRegularExpression.InvertedGreedinessOption
+ if self.dontCaptureOptionCheckBox.isChecked():
+ patternOptions |= QRegularExpression.DontCaptureOption
+ if self.useUnicodePropertiesOptionCheckBox.isChecked():
+ patternOptions |= QRegularExpression.UseUnicodePropertiesOption
+
+ self.regularExpression.setPatternOptions(patternOptions)
+
+ capturingGroupsCount = self.regularExpression.captureCount() + 1
+
+ offset = self.offsetSpinBox.value()
+ iterator: QRegularExpressionMatchIterator = self.regularExpression.globalMatch(
+ self.text, offset, matchType, matchOptions
+ )
+ i = 0
+
+ while iterator.hasNext():
+ match: QRegularExpressionMatch = iterator.next()
+ matchDetailTopItem = QTreeWidgetItem(self.matchDetailsTreeWidget)
+ matchDetailTopItem.setText(0, str(i))
+
+ for captureGroupIndex in range(capturingGroupsCount):
+ matchDetailItem = QTreeWidgetItem(matchDetailTopItem)
+ matchDetailItem.setText(1, str(captureGroupIndex))
+ matchDetailItem.setText(2, match.captured(captureGroupIndex))
+
+ i = i + 1
+
+ self.matchDetailsTreeWidget.expandAll()
+
+ self.regexpStatusLabel.setText("Valid")
+
+ namedCaptureGroups = self.regularExpression.namedCaptureGroups()
+ for i in range(len(namedCaptureGroups)):
+ currentNamedCaptureGroup = namedCaptureGroups[i]
+ namedGroupItem = QTreeWidgetItem(self.namedGroupsTreeWidget)
+ namedGroupItem.setText(0, str(i))
+ namedGroupItem.setText(
+ 1,
+ "<no name>"
+ if not currentNamedCaptureGroup
+ else currentNamedCaptureGroup,
+ )
+
+ self.updateReplacement()
+ self.setUpdatesEnabled(True)
+
+ @Slot()
+ def updateReplacement(self):
+ self.replacementTextEdit.clear()
+ replacement = self.replacementLineEdit.text()
+ if not self.regularExpression.isValid() or not replacement:
+ return
+
+ current_text = self.subjectTextEdit.toPlainText()
+ regular_expression_pattern = self.regularExpression.pattern()
+
+ new_text = re.sub(regular_expression_pattern, replacement, current_text)
+ self.replacementTextEdit.setPlainText(new_text)
+
+ def setupUi(self):
+ self.mainLayout = QVBoxLayout(self)
+ self.mainLayout.addWidget(self.setupTextUi())
+ self.mainLayout.addWidget(createHorizontalSeparator())
+
+ self.horizontalLayout = QHBoxLayout()
+ self.mainLayout.addLayout(self.horizontalLayout)
+ self.horizontalLayout.addWidget(self.setupOptionsUi())
+ self.horizontalLayout.addWidget(createVerticalSeparator())
+ self.horizontalLayout.addWidget(self.setupInfoUi())
+
+ self._font = QFontDatabase.systemFont(QFontDatabase.FixedFont)
+ self.patternLineEdit.setFont(self._font)
+ self.rawStringLiteralLineEdit.setFont(self._font)
+ self.escapedPatternLineEdit.setFont(self._font)
+ self.replacementLineEdit.setFont(self._font)
+ self.subjectTextEdit.setFont(self._font)
+ self.replacementTextEdit.setFont(self._font)
+
+ def setupOptionsUi(self):
+ container = QWidget()
+
+ form_layout = QFormLayout(container)
+ form_layout.setFieldGrowthPolicy(QFormLayout.AllNonFixedFieldsGrow)
+ form_layout.setContentsMargins(QMargins())
+
+ form_layout.addRow(QLabel("<h3>Options</h3>"))
+
+ self.caseInsensitiveOptionCheckBox = QCheckBox("Case insensitive (/i)")
+ self.dotMatchesEverythingOptionCheckBox = QCheckBox("Dot matches everything (/s)")
+ self.multilineOptionCheckBox = QCheckBox("Multiline (/m)")
+ self.extendedPatternSyntaxOptionCheckBox = QCheckBox("Extended pattern (/x)")
+ self.invertedGreedinessOptionCheckBox = QCheckBox("Inverted greediness")
+ self.dontCaptureOptionCheckBox = QCheckBox("Don't capture")
+ self.useUnicodePropertiesOptionCheckBox = QCheckBox("Use unicode properties (/u)")
+
+ self.patternOptionsCheckBoxLayout = QGridLayout()
+ gridRow = 0
+
+ self.patternOptionsCheckBoxLayout.addWidget(self.caseInsensitiveOptionCheckBox, gridRow, 1)
+ self.patternOptionsCheckBoxLayout.addWidget(
+ self.dotMatchesEverythingOptionCheckBox, gridRow, 2)
+ gridRow = gridRow + 1
+ self.patternOptionsCheckBoxLayout.addWidget(self.multilineOptionCheckBox, gridRow, 1)
+ self.patternOptionsCheckBoxLayout.addWidget(
+ self.extendedPatternSyntaxOptionCheckBox, gridRow, 2)
+ gridRow = gridRow + 1
+ self.patternOptionsCheckBoxLayout.addWidget(
+ self.invertedGreedinessOptionCheckBox, gridRow, 1)
+ self.patternOptionsCheckBoxLayout.addWidget(self.dontCaptureOptionCheckBox, gridRow, 2)
+ gridRow = gridRow + 1
+ self.patternOptionsCheckBoxLayout.addWidget(
+ self.useUnicodePropertiesOptionCheckBox, gridRow, 1)
+
+ form_layout.addRow("Pattern options:", self.patternOptionsCheckBoxLayout)
+
+ self.offsetSpinBox = QSpinBox()
+ form_layout.addRow("Match &offset:", self.offsetSpinBox)
+
+ self.matchTypeComboBox = QComboBox()
+ self.matchTypeComboBox.addItem("Normal", QRegularExpression.NormalMatch)
+ self.matchTypeComboBox.addItem(
+ "Partial prefer complete",
+ QRegularExpression.PartialPreferCompleteMatch,
+ )
+ self.matchTypeComboBox.addItem(
+ "Partial prefer first", QRegularExpression.PartialPreferFirstMatch
+ )
+ self.matchTypeComboBox.addItem("No match", QRegularExpression.NoMatch)
+ form_layout.addRow("Match &type:", self.matchTypeComboBox)
+
+ self.dontCheckSubjectStringMatchOptionCheckBox = QCheckBox(
+ "Don't check subject string"
+ )
+ self.anchoredMatchOptionCheckBox = QCheckBox("Anchored match")
+
+ self.matchOptionsCheckBoxLayout = QGridLayout()
+ self.matchOptionsCheckBoxLayout.addWidget(
+ self.dontCheckSubjectStringMatchOptionCheckBox, 0, 0
+ )
+ self.matchOptionsCheckBoxLayout.addWidget(
+ self.anchoredMatchOptionCheckBox, 0, 1
+ )
+ form_layout.addRow("Match options:", self.matchOptionsCheckBoxLayout)
+
+ return container
+
+ def setupInfoUi(self):
+ container = QWidget()
+
+ form_layout = QFormLayout(container)
+ form_layout.setFieldGrowthPolicy(QFormLayout.AllNonFixedFieldsGrow)
+ form_layout.setContentsMargins(QMargins())
+
+ self.matchInfoLabel = QLabel("<h3>Match information</h3>")
+ form_layout.addRow(self.matchInfoLabel)
+
+ self.matchDetailsTreeWidget = QTreeWidget()
+
+ self.matchDetailsTreeWidget.setHeaderLabels(
+ ["Match index", "Group index", "Captured string"]
+ )
+ self.matchDetailsTreeWidget.setSizeAdjustPolicy(QTreeWidget.AdjustToContents)
+ form_layout.addRow("Match details:", self.matchDetailsTreeWidget)
+
+ form_layout.addRow(createHorizontalSeparator())
+
+ self.regexpInfoLabel = QLabel("<h3>Regular expression information</h3>")
+ form_layout.addRow(self.regexpInfoLabel)
+
+ self.regexpStatusLabel = QLabel("Valid")
+ self.regexpStatusLabel.setWordWrap(True)
+ form_layout.addRow("Pattern status:", self.regexpStatusLabel)
+
+ self.namedGroupsTreeWidget = QTreeWidget()
+ self.namedGroupsTreeWidget.setHeaderLabels(["Index", "Named group"])
+ self.namedGroupsTreeWidget.setSizeAdjustPolicy(QTreeWidget.AdjustToContents)
+ self.namedGroupsTreeWidget.setRootIsDecorated(False)
+ form_layout.addRow("Named groups:", self.namedGroupsTreeWidget)
+
+ return container
+
+ def setupTextUi(self):
+ container = QWidget()
+ form_layout = QFormLayout(container)
+ form_layout.setFieldGrowthPolicy(QFormLayout.AllNonFixedFieldsGrow)
+ form_layout.setContentsMargins(QMargins())
+
+ self.regexpAndSubjectLabel = QLabel(
+ "<h3>Regular expression and text input</h3>"
+ )
+ form_layout.addRow(self.regexpAndSubjectLabel)
+
+ self.patternLineEdit = PatternLineEdit()
+ self.patternLineEdit.setClearButtonEnabled(True)
+ form_layout.addRow("&Pattern:", self.patternLineEdit)
+
+ self.rawStringLiteralLineEdit = DisplayLineEdit()
+ form_layout.addRow("&Raw string literal:", self.rawStringLiteralLineEdit)
+
+ self.escapedPatternLineEdit = DisplayLineEdit()
+ form_layout.addRow("&Escaped pattern:", self.escapedPatternLineEdit)
+
+ self.subjectTextEdit = QPlainTextEdit()
+ form_layout.addRow("&Subject text:", self.subjectTextEdit)
+
+ form_layout.addRow(createHorizontalSeparator())
+
+ self.replaceLabel = QLabel("<h3>Replacement")
+ form_layout.addRow(self.replaceLabel)
+
+ self.replacementLineEdit = QLineEdit()
+ self.replacementLineEdit.setClearButtonEnabled(True)
+ self.replacementLineEdit.textChanged.connect(self.updateReplacement)
+ form_layout.addRow("&Replace by:", self.replacementLineEdit)
+ self.replacementLineEdit.setToolTip(
+ "Use \\1, \\2... as placeholders for the captured groups."
+ )
+
+ self.replacementTextEdit = QPlainTextEdit()
+ self.replacementTextEdit.setReadOnly(True)
+ form_layout.addRow("Result:", self.replacementTextEdit)
+
+ return container
diff --git a/examples/widgets/tutorials/addressbook/part1.py b/examples/widgets/tutorials/addressbook/part1.py
index 23d438416..648ddea46 100644
--- a/examples/widgets/tutorials/addressbook/part1.py
+++ b/examples/widgets/tutorials/addressbook/part1.py
@@ -1,51 +1,12 @@
-
-#############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
from PySide6.QtCore import Qt
-from PySide6.QtWidgets import (QApplication, QGridLayout,
- QLabel, QGridLayout, QLineEdit, QTextEdit,
- QWidget)
+from PySide6.QtWidgets import (QApplication, QGridLayout, QLabel, QLineEdit,
+ QTextEdit, QWidget)
class AddressBook(QWidget):
diff --git a/examples/widgets/tutorials/addressbook/part2.py b/examples/widgets/tutorials/addressbook/part2.py
index a5f91a5e7..3c0eb451d 100644
--- a/examples/widgets/tutorials/addressbook/part2.py
+++ b/examples/widgets/tutorials/addressbook/part2.py
@@ -1,50 +1,12 @@
-
-#############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
-from PySide6.QtCore import Qt, Signal, Slot
-from PySide6.QtWidgets import (QApplication, QDialog, QGridLayout,
- QHBoxLayout, QLabel, QLineEdit,
+from PySide6.QtCore import Qt
+from PySide6.QtWidgets import (QApplication, QGridLayout,
+ QLabel, QLineEdit,
QMessageBox, QPushButton, QTextEdit,
QVBoxLayout, QWidget)
@@ -140,17 +102,16 @@ class AddressBook(QWidget):
address = self._address_text.toPlainText()
if name == "" or address == "":
- QMessageBox.information(self, "Empty Field",
- "Please enter a name and address.")
+ QMessageBox.information(self, "Empty Field", "Please enter a name and address.")
return
if name not in self.contacts:
self.contacts[name] = address
QMessageBox.information(self, "Add Successful",
- f'"{name}" has been added to your address book.')
+ f'"{name}" has been added to your address book.')
else:
QMessageBox.information(self, "Add Unsuccessful",
- f'Sorry, "{name}" is already in your address book.')
+ f'Sorry, "{name}" is already in your address book.')
return
if not self.contacts:
diff --git a/examples/widgets/tutorials/addressbook/part3.py b/examples/widgets/tutorials/addressbook/part3.py
index 3053dd468..611796f5e 100644
--- a/examples/widgets/tutorials/addressbook/part3.py
+++ b/examples/widgets/tutorials/addressbook/part3.py
@@ -1,49 +1,11 @@
-
-#############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
-from PySide6.QtCore import Qt, Signal, Slot
-from PySide6.QtWidgets import (QApplication, QDialog, QGridLayout,
+from PySide6.QtCore import Qt, Slot
+from PySide6.QtWidgets import (QApplication, QGridLayout,
QHBoxLayout, QLabel, QLineEdit,
QMessageBox, QPushButton, QTextEdit,
QVBoxLayout, QWidget)
@@ -148,22 +110,22 @@ class AddressBook(QWidget):
self._submit_button.show()
self._cancel_button.show()
+ @Slot()
def submit_contact(self):
name = self._name_line.text()
address = self._address_text.toPlainText()
if name == "" or address == "":
- QMessageBox.information(self, "Empty Field",
- "Please enter a name and address.")
+ QMessageBox.information(self, "Empty Field", "Please enter a name and address.")
return
if name not in self.contacts:
self.contacts[name] = address
QMessageBox.information(self, "Add Successful",
- f'"{name}" has been added to your address book.')
+ f'"{name}" has been added to your address book.')
else:
QMessageBox.information(self, "Add Unsuccessful",
- f'Sorry, "{name}" is already in your address book.')
+ f'Sorry, "{name}" is already in your address book.')
return
if not self.contacts:
@@ -181,6 +143,7 @@ class AddressBook(QWidget):
self._submit_button.hide()
self._cancel_button.hide()
+ @Slot()
def cancel(self):
self._name_line.setText(self._old_name)
self._address_text.setText(self._old_address)
@@ -200,6 +163,7 @@ class AddressBook(QWidget):
self._submit_button.hide()
self._cancel_button.hide()
+ @Slot()
def next(self):
name = self._name_line.text()
it = iter(self.contacts)
@@ -217,6 +181,7 @@ class AddressBook(QWidget):
self._name_line.setText(next_name)
self._address_text.setText(next_address)
+ @Slot()
def previous(self):
name = self._name_line.text()
diff --git a/examples/widgets/tutorials/addressbook/part4.py b/examples/widgets/tutorials/addressbook/part4.py
index 87f196436..95f31d46c 100644
--- a/examples/widgets/tutorials/addressbook/part4.py
+++ b/examples/widgets/tutorials/addressbook/part4.py
@@ -1,49 +1,11 @@
-
-#############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
-from PySide6.QtCore import Qt, Signal, Slot
-from PySide6.QtWidgets import (QApplication, QDialog, QGridLayout,
+from PySide6.QtCore import Qt, Slot
+from PySide6.QtWidgets import (QApplication, QGridLayout,
QHBoxLayout, QLabel, QLineEdit,
QMessageBox, QPushButton, QTextEdit,
QVBoxLayout, QWidget)
@@ -143,6 +105,7 @@ class AddressBook(QWidget):
self.setLayout(main_layout)
self.setWindowTitle("Simple Address Book")
+ @Slot()
def add_contact(self):
self._old_name = self._name_line.text()
self._old_address = self._address_text.toPlainText()
@@ -152,72 +115,76 @@ class AddressBook(QWidget):
self.update_interface(self.AddingMode)
+ @Slot()
def edit_contact(self):
self._old_name = self._name_line.text()
self._old_address = self._address_text.toPlainText()
self.update_interface(self.EditingMode)
+ @Slot()
def submit_contact(self):
name = self._name_line.text()
address = self._address_text.toPlainText()
if name == "" or address == "":
- QMessageBox.information(self, "Empty Field",
- "Please enter a name and address.")
+ QMessageBox.information(self, "Empty Field", "Please enter a name and address.")
return
if self._current_mode == self.AddingMode:
if name not in self.contacts:
self.contacts[name] = address
QMessageBox.information(self, "Add Successful",
- f'"{name}" has been added to your address book.')
+ f'"{name}" has been added to your address book.')
else:
QMessageBox.information(self, "Add Unsuccessful",
- f'Sorry, "{name}" is already in your address book.')
+ f'Sorry, "{name}" is already in your address book.')
return
elif self._current_mode == self.EditingMode:
if self._old_name != name:
if name not in self.contacts:
QMessageBox.information(self, "Edit Successful",
- f'"{self.oldName}" has been edited in your address book.')
+ f'"{self.oldName}" has been edited in your '
+ 'address book.')
del self.contacts[self._old_name]
self.contacts[name] = address
else:
QMessageBox.information(self, "Edit Unsuccessful",
- f'Sorry, "{name}" is already in your address book.')
+ f'Sorry, "{name}" is already in your address book.')
return
elif self._old_address != address:
QMessageBox.information(self, "Edit Successful",
- f'"{name}" has been edited in your address book.')
+ f'"{name}" has been edited in your address book.')
self.contacts[name] = address
self.update_interface(self.NavigationMode)
+ @Slot()
def cancel(self):
self._name_line.setText(self._old_name)
self._address_text.setText(self._old_address)
self.update_interface(self.NavigationMode)
+ @Slot()
def remove_contact(self):
name = self._name_line.text()
- address = self._address_text.toPlainText()
if name in self.contacts:
button = QMessageBox.question(self, "Confirm Remove",
- f'Are you sure you want to remove "{name}"?',
- QMessageBox.Yes | QMessageBox.No)
+ f'Are you sure you want to remove "{name}"?',
+ QMessageBox.Yes | QMessageBox.No)
if button == QMessageBox.Yes:
self.previous()
del self.contacts[name]
QMessageBox.information(self, "Remove Successful",
- f'"{name}" has been removed from your address book.')
+ f'"{name}" has been removed from your address book.')
self.update_interface(self.NavigationMode)
+ @Slot()
def next(self):
name = self._name_line.text()
it = iter(self.contacts)
@@ -235,6 +202,7 @@ class AddressBook(QWidget):
self._name_line.setText(next_name)
self._address_text.setText(next_address)
+ @Slot()
def previous(self):
name = self._name_line.text()
diff --git a/examples/widgets/tutorials/addressbook/part5.py b/examples/widgets/tutorials/addressbook/part5.py
index c8081ddab..1e9c05862 100644
--- a/examples/widgets/tutorials/addressbook/part5.py
+++ b/examples/widgets/tutorials/addressbook/part5.py
@@ -1,49 +1,10 @@
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-#############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-import pickle
import sys
-from PySide6.QtCore import Qt, Signal, Slot
+from PySide6.QtCore import Qt, Slot
from PySide6.QtWidgets import (QApplication, QDialog, QGridLayout,
QHBoxLayout, QLabel, QLineEdit,
QMessageBox, QPushButton, QTextEdit,
@@ -150,6 +111,7 @@ class AddressBook(QWidget):
self.setLayout(main_layout)
self.setWindowTitle("Simple Address Book")
+ @Slot()
def add_contact(self):
self._old_name = self._name_line.text()
self._old_address = self._address_text.toPlainText()
@@ -159,72 +121,76 @@ class AddressBook(QWidget):
self.update_interface(self.AddingMode)
+ @Slot()
def edit_contact(self):
self._old_name = self._name_line.text()
self._old_address = self._address_text.toPlainText()
self.update_interface(self.EditingMode)
+ @Slot()
def submit_contact(self):
name = self._name_line.text()
address = self._address_text.toPlainText()
if name == "" or address == "":
- QMessageBox.information(self, "Empty Field",
- "Please enter a name and address.")
+ QMessageBox.information(self, "Empty Field", "Please enter a name and address.")
return
if self._current_mode == self.AddingMode:
if name not in self.contacts:
self.contacts[name] = address
QMessageBox.information(self, "Add Successful",
- f'"{name}" has been added to your address book.')
+ f'"{name}" has been added to your address book.')
else:
QMessageBox.information(self, "Add Unsuccessful",
- f'Sorry, "{name}" is already in your address book.')
+ f'Sorry, "{name}" is already in your address book.')
return
elif self._current_mode == self.EditingMode:
if self._old_name != name:
if name not in self.contacts:
QMessageBox.information(self, "Edit Successful",
- f'"{self.oldName}" has been edited in your address book.')
+ f'"{self.oldName}" has been edited in your '
+ 'address book.')
del self.contacts[self._old_name]
self.contacts[name] = address
else:
QMessageBox.information(self, "Edit Unsuccessful",
- f'Sorry, "{name}" is already in your address book.')
+ f'Sorry, "{name}" is already in your address book.')
return
elif self._old_address != address:
QMessageBox.information(self, "Edit Successful",
- f'"{name}" has been edited in your address book.')
+ f'"{name}" has been edited in your address book.')
self.contacts[name] = address
self.update_interface(self.NavigationMode)
+ @Slot()
def cancel(self):
self._name_line.setText(self._old_name)
self._address_text.setText(self._old_address)
self.update_interface(self.NavigationMode)
+ @Slot()
def remove_contact(self):
name = self._name_line.text()
- address = self._address_text.toPlainText()
if name in self.contacts:
button = QMessageBox.question(self, "Confirm Remove",
- f'Are you sure you want to remove "{name}"?',
- QMessageBox.Yes | QMessageBox.No)
+ f'Are you sure you want to remove "{name}"?',
+ QMessageBox.Yes | QMessageBox.No)
if button == QMessageBox.Yes:
self.previous()
del self.contacts[name]
QMessageBox.information(self, "Remove Successful",
- f'"{name}" has been removed from your address book.')
+ f'"{name}" has been removed from your address book.')
self.update_interface(self.NavigationMode)
+ @Slot()
def next(self):
name = self._name_line.text()
it = iter(self.contacts)
@@ -242,6 +208,7 @@ class AddressBook(QWidget):
self._name_line.setText(next_name)
self._address_text.setText(next_address)
+ @Slot()
def previous(self):
name = self._name_line.text()
@@ -275,7 +242,7 @@ class AddressBook(QWidget):
self._address_text.setText(self.contacts[contact_name])
else:
QMessageBox.information(self, "Contact Not Found",
- f'Sorry, "{contact_name}" is not in your address book.')
+ f'Sorry, "{contact_name}" is not in your address book.')
return
self.update_interface(self.NavigationMode)
@@ -343,8 +310,7 @@ class FindDialog(QDialog):
text = self._line_edit.text()
if not text:
- QMessageBox.information(self, "Empty Field",
- "Please enter a name.")
+ QMessageBox.information(self, "Empty Field", "Please enter a name.")
return
else:
self._find_text = text
diff --git a/examples/widgets/tutorials/addressbook/part6.py b/examples/widgets/tutorials/addressbook/part6.py
index 1d43805e7..d11298fb9 100644
--- a/examples/widgets/tutorials/addressbook/part6.py
+++ b/examples/widgets/tutorials/addressbook/part6.py
@@ -1,49 +1,11 @@
-
-#############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import pickle
import sys
-from PySide6.QtCore import QFile, QIODevice, QTextStream, Qt, Signal, Slot
+from PySide6.QtCore import Qt, Slot
from PySide6.QtWidgets import (QApplication, QDialog, QFileDialog,
QGridLayout, QHBoxLayout, QLabel, QLineEdit,
QMessageBox, QPushButton, QTextEdit,
@@ -160,6 +122,7 @@ class AddressBook(QWidget):
self.setLayout(main_layout)
self.setWindowTitle("Simple Address Book")
+ @Slot()
def add_contact(self):
self._old_name = self._name_line.text()
self._old_address = self._address_text.toPlainText()
@@ -169,72 +132,76 @@ class AddressBook(QWidget):
self.update_interface(self.AddingMode)
+ @Slot()
def edit_contact(self):
self._old_name = self._name_line.text()
self._old_address = self._address_text.toPlainText()
self.update_interface(self.EditingMode)
+ @Slot()
def submit_contact(self):
name = self._name_line.text()
address = self._address_text.toPlainText()
if name == "" or address == "":
- QMessageBox.information(self, "Empty Field",
- "Please enter a name and address.")
+ QMessageBox.information(self, "Empty Field", "Please enter a name and address.")
return
if self._current_mode == self.AddingMode:
if name not in self.contacts:
self.contacts[name] = address
QMessageBox.information(self, "Add Successful",
- f'"{name}" has been added to your address book.')
+ f'"{name}" has been added to your address book.')
else:
QMessageBox.information(self, "Add Unsuccessful",
- f'Sorry, "{name}" is already in your address book.')
+ f'Sorry, "{name}" is already in your address book.')
return
elif self._current_mode == self.EditingMode:
if self._old_name != name:
if name not in self.contacts:
QMessageBox.information(self, "Edit Successful",
- f'"{self.oldName}" has been edited in your address book.')
+ f'"{self.oldName}" has been edited in your '
+ 'address book.')
del self.contacts[self._old_name]
self.contacts[name] = address
else:
QMessageBox.information(self, "Edit Unsuccessful",
- f'Sorry, "{name}" is already in your address book.')
+ f'Sorry, "{name}" is already in your address book.')
return
elif self._old_address != address:
QMessageBox.information(self, "Edit Successful",
- f'"{name}" has been edited in your address book.')
+ f'"{name}" has been edited in your address book.')
self.contacts[name] = address
self.update_interface(self.NavigationMode)
+ @Slot()
def cancel(self):
self._name_line.setText(self._old_name)
self._address_text.setText(self._old_address)
self.update_interface(self.NavigationMode)
+ @Slot()
def remove_contact(self):
name = self._name_line.text()
- address = self._address_text.toPlainText()
if name in self.contacts:
button = QMessageBox.question(self, "Confirm Remove",
- f'Are you sure you want to remove "{name}"?',
- QMessageBox.Yes | QMessageBox.No)
+ f'Are you sure you want to remove "{name}"?',
+ QMessageBox.Yes | QMessageBox.No)
if button == QMessageBox.Yes:
self.previous()
del self.contacts[name]
QMessageBox.information(self, "Remove Successful",
- f'"{name}" has been removed from your address book.')
+ f'"{name}" has been removed from your address book.')
self.update_interface(self.NavigationMode)
+ @Slot()
def next(self):
name = self._name_line.text()
it = iter(self.contacts)
@@ -252,6 +219,7 @@ class AddressBook(QWidget):
self._name_line.setText(next_name)
self._address_text.setText(next_address)
+ @Slot()
def previous(self):
name = self._name_line.text()
@@ -285,7 +253,7 @@ class AddressBook(QWidget):
self._address_text.setText(self.contacts[contact_name])
else:
QMessageBox.information(self, "Contact Not Found",
- f'Sorry, "{contact_name}" is not in your address book.')
+ f'Sorry, "{contact_name}" is not in your address book.')
return
self.update_interface(self.NavigationMode)
@@ -335,8 +303,8 @@ class AddressBook(QWidget):
def save_to_file(self):
fileName, _ = QFileDialog.getSaveFileName(self,
- "Save Address Book", '',
- "Address Book (*.abk);;All Files (*)")
+ "Save Address Book", '',
+ "Address Book (*.abk);;All Files (*)")
if not fileName:
return
@@ -345,7 +313,7 @@ class AddressBook(QWidget):
out_file = open(str(fileName), 'wb')
except IOError:
QMessageBox.information(self, "Unable to open file",
- f'There was an error opening "{fileName}"')
+ f'There was an error opening "{fileName}"')
return
pickle.dump(self.contacts, out_file)
@@ -353,8 +321,8 @@ class AddressBook(QWidget):
def load_from_file(self):
fileName, _ = QFileDialog.getOpenFileName(self,
- "Open Address Book", '',
- "Address Book (*.abk);;All Files (*)")
+ "Open Address Book", '',
+ "Address Book (*.abk);;All Files (*)")
if not fileName:
return
@@ -363,7 +331,7 @@ class AddressBook(QWidget):
in_file = open(str(fileName), 'rb')
except IOError:
QMessageBox.information(self, "Unable to open file",
- f'There was an error opening "{fileName}"')
+ f'There was an error opening "{fileName}"')
return
self.contacts = pickle.load(in_file)
@@ -371,8 +339,7 @@ class AddressBook(QWidget):
if len(self.contacts) == 0:
QMessageBox.information(self, "No contacts in file",
- "The file you are attempting to open contains no "
- "contacts.")
+ "The file you are attempting to open contains no contacts.")
else:
for name, address in self.contacts:
self._name_line.setText(name)
@@ -406,8 +373,7 @@ class FindDialog(QDialog):
text = self._line_edit.text()
if not text:
- QMessageBox.information(self, "Empty Field",
- "Please enter a name.")
+ QMessageBox.information(self, "Empty Field", "Please enter a name.")
return
self._find_text = text
diff --git a/examples/widgets/tutorials/addressbook/part7.py b/examples/widgets/tutorials/addressbook/part7.py
index 26688c428..3829c003d 100644
--- a/examples/widgets/tutorials/addressbook/part7.py
+++ b/examples/widgets/tutorials/addressbook/part7.py
@@ -1,49 +1,11 @@
-
-#############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import pickle
import sys
-from PySide6.QtCore import QFile, QIODevice, QTextStream, Qt, Signal, Slot
+from PySide6.QtCore import QFile, QIODevice, QTextStream, Qt, Slot
from PySide6.QtWidgets import (QApplication, QDialog, QFileDialog,
QGridLayout, QHBoxLayout, QLabel, QLineEdit,
QMessageBox, QPushButton, QTextEdit,
@@ -166,6 +128,7 @@ class AddressBook(QWidget):
self.setLayout(main_layout)
self.setWindowTitle("Simple Address Book")
+ @Slot()
def add_contact(self):
self._old_name = self._name_line.text()
self._old_address = self._address_text.toPlainText()
@@ -175,72 +138,76 @@ class AddressBook(QWidget):
self.update_interface(self.AddingMode)
+ @Slot()
def edit_contact(self):
self._old_name = self._name_line.text()
self._old_address = self._address_text.toPlainText()
self.update_interface(self.EditingMode)
+ @Slot()
def submit_contact(self):
name = self._name_line.text()
address = self._address_text.toPlainText()
if name == "" or address == "":
- QMessageBox.information(self, "Empty Field",
- "Please enter a name and address.")
+ QMessageBox.information(self, "Empty Field", "Please enter a name and address.")
return
if self._current_mode == self.AddingMode:
if name not in self.contacts:
self.contacts[name] = address
QMessageBox.information(self, "Add Successful",
- f'"{name}" has been added to your address book.')
+ f'"{name}" has been added to your address book.')
else:
QMessageBox.information(self, "Add Unsuccessful",
- f'Sorry, "{name}" is already in your address book.')
+ f'Sorry, "{name}" is already in your address book.')
return
elif self._current_mode == self.EditingMode:
if self._old_name != name:
if name not in self.contacts:
QMessageBox.information(self, "Edit Successful",
- f'"{self.oldName}" has been edited in your address book.')
+ f'"{self.oldName}" has been edited in your '
+ 'address book.')
del self.contacts[self._old_name]
self.contacts[name] = address
else:
QMessageBox.information(self, "Edit Unsuccessful",
- f'Sorry, "{name}" is already in your address book.')
+ f'Sorry, "{name}" is already in your address book.')
return
elif self._old_address != address:
QMessageBox.information(self, "Edit Successful",
- f'"{name}" has been edited in your address book.')
+ f'"{name}" has been edited in your address book.')
self.contacts[name] = address
self.update_interface(self.NavigationMode)
+ @Slot()
def cancel(self):
self._name_line.setText(self._old_name)
self._address_text.setText(self._old_address)
self.update_interface(self.NavigationMode)
+ @Slot()
def remove_contact(self):
name = self._name_line.text()
- address = self._address_text.toPlainText()
if name in self.contacts:
button = QMessageBox.question(self, "Confirm Remove",
- f'Are you sure you want to remove "{name}"?',
- QMessageBox.Yes | QMessageBox.No)
+ f'Are you sure you want to remove "{name}"?',
+ QMessageBox.Yes | QMessageBox.No)
if button == QMessageBox.Yes:
self.previous()
del self.contacts[name]
QMessageBox.information(self, "Remove Successful",
- f'"{name}" has been removed from your address book.')
+ f'"{name}" has been removed from your address book.')
self.update_interface(self.NavigationMode)
+ @Slot()
def next(self):
name = self._name_line.text()
it = iter(self.contacts)
@@ -258,6 +225,7 @@ class AddressBook(QWidget):
self._name_line.setText(next_name)
self._address_text.setText(next_address)
+ @Slot()
def previous(self):
name = self._name_line.text()
@@ -291,7 +259,7 @@ class AddressBook(QWidget):
self._address_text.setText(self.contacts[contact_name])
else:
QMessageBox.information(self, "Contact Not Found",
- f'Sorry, "{contact_name}" is not in your address book.')
+ f'Sorry, "{contact_name}" is not in your address book.')
return
self.update_interface(self.NavigationMode)
@@ -344,8 +312,8 @@ class AddressBook(QWidget):
def save_to_file(self):
fileName, _ = QFileDialog.getSaveFileName(self,
- "Save Address Book", '',
- "Address Book (*.abk);;All Files (*)")
+ "Save Address Book", '',
+ "Address Book (*.abk);;All Files (*)")
if not fileName:
return
@@ -354,7 +322,7 @@ class AddressBook(QWidget):
out_file = open(str(fileName), 'wb')
except IOError:
QMessageBox.information(self, "Unable to open file",
- f'There was an error opening "{fileName}"')
+ f'There was an error opening "{fileName}"')
return
pickle.dump(self.contacts, out_file)
@@ -362,8 +330,8 @@ class AddressBook(QWidget):
def load_from_file(self):
fileName, _ = QFileDialog.getOpenFileName(self,
- "Open Address Book", '',
- "Address Book (*.abk);;All Files (*)")
+ "Open Address Book", '',
+ "Address Book (*.abk);;All Files (*)")
if not fileName:
return
@@ -372,7 +340,7 @@ class AddressBook(QWidget):
in_file = open(str(fileName), 'rb')
except IOError:
QMessageBox.information(self, "Unable to open file",
- f'There was an error opening "{fileName}"')
+ f'There was an error opening "{fileName}"')
return
self.contacts = pickle.load(in_file)
@@ -380,8 +348,7 @@ class AddressBook(QWidget):
if len(self.contacts) == 0:
QMessageBox.information(self, "No contacts in file",
- "The file you are attempting to open contains no "
- "contacts.")
+ "The file you are attempting to open contains no contacts.")
else:
for name, address in self.contacts:
self._name_line.setText(name)
@@ -403,7 +370,7 @@ class AddressBook(QWidget):
last_name = ''
file_name = QFileDialog.getSaveFileName(self, "Export Contact",
- '', "vCard Files (*.vcf);;All Files (*)")[0]
+ '', "vCard Files (*.vcf);;All Files (*)")[0]
if not file_name:
return
@@ -411,8 +378,7 @@ class AddressBook(QWidget):
out_file = QFile(file_name)
if not out_file.open(QIODevice.WriteOnly):
- QMessageBox.information(self, "Unable to open file",
- out_file.errorString())
+ QMessageBox.information(self, "Unable to open file", out_file.errorString())
return
out_s = QTextStream(out_file)
@@ -430,7 +396,7 @@ class AddressBook(QWidget):
out_s << 'END:VCARD' << '\n'
QMessageBox.information(self, "Export Successful",
- f'"{name}" has been exported as a vCard.')
+ f'"{name}" has been exported as a vCard.')
class FindDialog(QDialog):
@@ -458,8 +424,7 @@ class FindDialog(QDialog):
text = self._line_edit.text()
if not text:
- QMessageBox.information(self, "Empty Field",
- "Please enter a name.")
+ QMessageBox.information(self, "Empty Field", "Please enter a name.")
return
self._find_text = text
diff --git a/examples/widgets/tutorials/cannon/t1.py b/examples/widgets/tutorials/cannon/t1.py
index 2da78ccf1..62411ace2 100644
--- a/examples/widgets/tutorials/cannon/t1.py
+++ b/examples/widgets/tutorials/cannon/t1.py
@@ -1,43 +1,5 @@
-
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
# PySide6 tutorial 1
diff --git a/examples/widgets/tutorials/cannon/t10.py b/examples/widgets/tutorials/cannon/t10.py
index ed3d9fce3..8649bb562 100644
--- a/examples/widgets/tutorials/cannon/t10.py
+++ b/examples/widgets/tutorials/cannon/t10.py
@@ -1,50 +1,12 @@
-
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
# PySide6 tutorial 10
import sys
-from PySide6.QtCore import QRect, Qt, Signal, Slot
+from PySide6.QtCore import QRect, Qt, Signal, Slot, qWarning
from PySide6.QtGui import QColor, QFont, QPainter, QPalette
from PySide6.QtWidgets import (QApplication, QGridLayout, QLCDNumber,
QPushButton, QSlider, QVBoxLayout, QWidget)
@@ -81,8 +43,8 @@ class LCDRange(QWidget):
def set_range(self, minValue, maxValue):
if minValue < 0 or maxValue > 99 or minValue > maxValue:
qWarning(f"LCDRange::setRange({minValue}, {maxValue})\n"
- "\tRange must be 0..99\n"
- "\tand minValue must not be greater than maxValue")
+ "\tRange must be 0..99\n"
+ "\tand minValue must not be greater than maxValue")
return
self.slider.setRange(minValue, maxValue)
@@ -129,15 +91,14 @@ class CannonField(QWidget):
self.force_changed.emit(self._current_force)
def paintEvent(self, event):
- painter = QPainter(self)
-
- painter.setPen(Qt.NoPen)
- painter.setBrush(Qt.blue)
+ with QPainter(self) as painter:
+ painter.setPen(Qt.NoPen)
+ painter.setBrush(Qt.blue)
- painter.translate(0, self.height())
- painter.drawPie(QRect(-35, -35, 70, 70), 0, 90 * 16)
- painter.rotate(-self._current_angle)
- painter.drawRect(QRect(33, -4, 15, 8))
+ painter.translate(0, self.height())
+ painter.drawPie(QRect(-35, -35, 70, 70), 0, 90 * 16)
+ painter.rotate(-self._current_angle)
+ painter.drawRect(QRect(33, -4, 15, 8))
def cannon_rect(self):
result = QRect(0, 0, 50, 50)
@@ -152,7 +113,7 @@ class MyWidget(QWidget):
quit = QPushButton("&Quit")
quit.setFont(QFont("Times", 18, QFont.Bold))
- quit.clicked.connect(qApp.quit)
+ quit.clicked.connect(qApp.quit) # noqa: F821
angle = LCDRange()
angle.set_range(5, 70)
diff --git a/examples/widgets/tutorials/cannon/t11.py b/examples/widgets/tutorials/cannon/t11.py
index f297a14b4..fbfd2481d 100644
--- a/examples/widgets/tutorials/cannon/t11.py
+++ b/examples/widgets/tutorials/cannon/t11.py
@@ -1,43 +1,5 @@
-
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
# PySide6 tutorial 11
@@ -45,7 +7,7 @@
import sys
import math
-from PySide6.QtCore import QPoint, QRect, QTimer, Qt, Signal, Slot
+from PySide6.QtCore import QPoint, QRect, QTimer, Qt, Signal, Slot, qWarning
from PySide6.QtGui import QColor, QFont, QPainter, QPalette, QRegion
from PySide6.QtWidgets import (QApplication, QGridLayout, QHBoxLayout,
QLCDNumber, QPushButton, QSlider,
@@ -83,8 +45,8 @@ class LCDRange(QWidget):
def set_range(self, minValue, maxValue):
if minValue < 0 or maxValue > 99 or minValue > maxValue:
qWarning(f"LCDRange::setRange({minValue}, {maxValue})\n"
- "\tRange must be 0..99\n"
- "\tand minValue must not be greater than maxValue")
+ "\tRange must be 0..99\n"
+ "\tand minValue must not be greater than maxValue")
return
self.slider.setRange(minValue, maxValue)
@@ -159,11 +121,10 @@ class CannonField(QWidget):
self.update(region)
def paintEvent(self, event):
- painter = QPainter(self)
-
- self.paint_cannon(painter)
- if self._auto_shoot_timer.isActive():
- self.paint_shot(painter)
+ with QPainter(self) as painter:
+ self.paint_cannon(painter)
+ if self._auto_shoot_timer.isActive():
+ self.paint_shot(painter)
def paint_shot(self, painter):
painter.setPen(Qt.NoPen)
@@ -214,7 +175,7 @@ class MyWidget(QWidget):
quit = QPushButton("&Quit")
quit.setFont(QFont("Times", 18, QFont.Bold))
- quit.clicked.connect(qApp.quit)
+ quit.clicked.connect(qApp.quit) # noqa: F821
angle = LCDRange()
angle.set_range(5, 70)
diff --git a/examples/widgets/tutorials/cannon/t12.py b/examples/widgets/tutorials/cannon/t12.py
index f2c6ea08c..749c24684 100644
--- a/examples/widgets/tutorials/cannon/t12.py
+++ b/examples/widgets/tutorials/cannon/t12.py
@@ -1,43 +1,5 @@
-
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
# PySide6 tutorial 12
@@ -46,7 +8,7 @@ import sys
import math
import random
-from PySide6.QtCore import QPoint, QRect, QTime, QTimer, Qt, Signal, Slot
+from PySide6.QtCore import QPoint, QRect, QTime, QTimer, Qt, Signal, Slot, qWarning
from PySide6.QtGui import QColor, QFont, QPainter, QPalette, QRegion
from PySide6.QtWidgets import (QApplication, QGridLayout, QHBoxLayout,
QLabel, QLCDNumber, QPushButton, QSlider,
@@ -100,8 +62,8 @@ class LCDRange(QWidget):
def set_range(self, minValue, maxValue):
if minValue < 0 or maxValue > 99 or minValue > maxValue:
qWarning(f"LCDRange::setRange({minValue}, {maxValue})\n"
- "\tRange must be 0..99\n"
- "\tand minValue must not be greater than maxValue")
+ "\tRange must be 0..99\n"
+ "\tand minValue must not be greater than maxValue")
return
self.slider.setRange(minValue, maxValue)
@@ -198,13 +160,12 @@ class CannonField(QWidget):
self.update(region)
def paintEvent(self, event):
- painter = QPainter(self)
-
- self.paint_cannon(painter)
- if self._auto_shoot_timer.isActive():
- self.paint_shot(painter)
+ with QPainter(self) as painter:
+ self.paint_cannon(painter)
+ if self._auto_shoot_timer.isActive():
+ self.paint_shot(painter)
- self.paint_target(painter)
+ self.paint_target(painter)
def paint_shot(self, painter):
painter.setPen(Qt.NoPen)
@@ -265,7 +226,7 @@ class MyWidget(QWidget):
quit = QPushButton("&Quit")
quit.setFont(QFont("Times", 18, QFont.Bold))
- quit.clicked.connect(qApp.quit)
+ quit.clicked.connect(qApp.quit) # noqa: F821
angle = LCDRange("ANGLE")
angle.set_range(5, 70)
diff --git a/examples/widgets/tutorials/cannon/t13.py b/examples/widgets/tutorials/cannon/t13.py
index aa00825aa..f9a771d15 100644
--- a/examples/widgets/tutorials/cannon/t13.py
+++ b/examples/widgets/tutorials/cannon/t13.py
@@ -1,43 +1,5 @@
-
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
# PySide6 tutorial 13
@@ -46,8 +8,8 @@ import sys
import math
import random
-from PySide6.QtCore import (QPoint, QRect, QTime, QTimer, Qt, SIGNAL, SLOT,
- Signal, Slot)
+from PySide6.QtCore import (QPoint, QRect, QTime, QTimer, Qt,
+ Signal, Slot, qWarning)
from PySide6.QtGui import QColor, QFont, QPainter, QPalette, QRegion
from PySide6.QtWidgets import (QApplication, QGridLayout, QHBoxLayout, QLabel,
QLCDNumber, QPushButton, QSizePolicy, QSlider,
@@ -102,8 +64,8 @@ class LCDRange(QWidget):
def set_range(self, minValue, maxValue):
if minValue < 0 or maxValue > 99 or minValue > maxValue:
qWarning(f"LCDRange::setRange({minValue}, {maxValue})\n"
- "\tRange must be 0..99\n"
- "\tand minValue must not be greater than maxValue")
+ "\tRange must be 0..99\n"
+ "\tand minValue must not be greater than maxValue")
return
self.slider.setRange(minValue, maxValue)
@@ -220,18 +182,17 @@ class CannonField(QWidget):
self.update(region)
def paintEvent(self, event):
- painter = QPainter(self)
-
- if self._game_ended:
- painter.setPen(Qt.black)
- painter.setFont(QFont("Courier", 48, QFont.Bold))
- painter.drawText(self.rect(), Qt.AlignCenter, "Game Over")
-
- self.paint_cannon(painter)
- if self.is_shooting():
- self.paint_shot(painter)
- if not self._game_ended:
- self.paint_target(painter)
+ with QPainter(self) as painter:
+ if self._game_ended:
+ painter.setPen(Qt.black)
+ painter.setFont(QFont("Courier", 48, QFont.Bold))
+ painter.drawText(self.rect(), Qt.AlignCenter, "Game Over")
+
+ self.paint_cannon(painter)
+ if self.is_shooting():
+ self.paint_shot(painter)
+ if not self._game_ended:
+ self.paint_target(painter)
def paint_shot(self, painter):
painter.setPen(Qt.NoPen)
@@ -298,7 +259,7 @@ class GameBoard(QWidget):
quit = QPushButton("&Quit")
quit.setFont(QFont("Times", 18, QFont.Bold))
- quit.clicked.connect(qApp.quit)
+ quit.clicked.connect(qApp.quit) # noqa: F821
angle = LCDRange("ANGLE")
angle.set_range(5, 70)
diff --git a/examples/widgets/tutorials/cannon/t14.py b/examples/widgets/tutorials/cannon/t14.py
index 0e8318ebe..3c94408f3 100644
--- a/examples/widgets/tutorials/cannon/t14.py
+++ b/examples/widgets/tutorials/cannon/t14.py
@@ -1,43 +1,5 @@
-
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
# PySide6 tutorial 14
@@ -46,10 +8,10 @@ import sys
import math
import random
-from PySide6.QtCore import (QPoint, QRect, QTime, QTimer, QSize, Qt, SIGNAL,
- SLOT, Signal, Slot)
+from PySide6.QtCore import (QPoint, QRect, QTime, QTimer, QSize, Qt,
+ Signal, Slot, qWarning)
from PySide6.QtGui import (QColor, QFont, QKeySequence, QPainter, QPalette,
- QShortcut, QRegion)
+ QShortcut, QRegion, QTransform)
from PySide6.QtWidgets import (QApplication, QFrame, QGridLayout, QHBoxLayout,
QLabel, QLCDNumber, QPushButton, QSizePolicy,
QSlider, QVBoxLayout, QWidget)
@@ -103,8 +65,8 @@ class LCDRange(QWidget):
def set_range(self, minValue, maxValue):
if minValue < 0 or maxValue > 99 or minValue > maxValue:
qWarning(f"LCDRange::setRange({minValue}, {maxValue})\n"
- "\tRange must be 0..99\n"
- "\tand minValue must not be greater than maxValue")
+ "\tRange must be 0..99\n"
+ "\tand minValue must not be greater than maxValue")
return
self.slider.setRange(minValue, maxValue)
@@ -212,7 +174,8 @@ class CannonField(QWidget):
self._auto_shoot_timer.stop()
self.hit.emit()
self.can_shoot.emit(True)
- elif shot_r.x() > self.width() or shot_r.y() > self.height() or shot_r.intersects(self.barrier_rect()):
+ elif (shot_r.x() > self.width() or shot_r.y() > self.height()
+ or shot_r.intersects(self.barrier_rect())):
self._auto_shoot_timer.stop()
self.missed.emit()
self.can_shoot.emit(True)
@@ -243,19 +206,18 @@ class CannonField(QWidget):
self._barrel_pressed = False
def paintEvent(self, event):
- painter = QPainter(self)
-
- if self._game_ended:
- painter.setPen(Qt.black)
- painter.setFont(QFont("Courier", 48, QFont.Bold))
- painter.drawText(self.rect(), Qt.AlignCenter, "Game Over")
-
- self.paint_cannon(painter)
- self.paint_barrier(painter)
- if self.is_shooting():
- self.paint_shot(painter)
- if not self._game_ended:
- self.paint_target(painter)
+ with QPainter(self) as painter:
+ if self._game_ended:
+ painter.setPen(Qt.black)
+ painter.setFont(QFont("Courier", 48, QFont.Bold))
+ painter.drawText(self.rect(), Qt.AlignCenter, "Game Over")
+
+ self.paint_cannon(painter)
+ self.paint_barrier(painter)
+ if self.is_shooting():
+ self.paint_shot(painter)
+ if not self._game_ended:
+ self.paint_target(painter)
def paint_shot(self, painter):
painter.setPen(Qt.NoPen)
@@ -340,7 +302,7 @@ class GameBoard(QWidget):
quit = QPushButton("&Quit")
quit.setFont(QFont("Times", 18, QFont.Bold))
- quit.clicked.connect(qApp.quit)
+ quit.clicked.connect(qApp.quit) # noqa: F821
angle = LCDRange("ANGLE")
angle.set_range(5, 70)
@@ -380,7 +342,7 @@ class GameBoard(QWidget):
QShortcut(QKeySequence(Qt.Key_Enter), self, self.fire)
QShortcut(QKeySequence(Qt.Key_Return), self, self.fire)
- QShortcut(QKeySequence(Qt.CTRL + Qt.Key_Q), self, self.close)
+ QShortcut(QKeySequence(Qt.CTRL | Qt.Key_Q), self, self.close)
top_layout = QHBoxLayout()
top_layout.addWidget(shoot)
diff --git a/examples/widgets/tutorials/cannon/t2.py b/examples/widgets/tutorials/cannon/t2.py
index 1205a1328..d3adba396 100644
--- a/examples/widgets/tutorials/cannon/t2.py
+++ b/examples/widgets/tutorials/cannon/t2.py
@@ -1,52 +1,13 @@
-
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
# PySide6 tutorial 2
import sys
-from PySide6.QtCore import (QPoint, QRect, QTime, QTimer, Qt)
from PySide6.QtGui import QFont
-from PySide6.QtWidgets import (QApplication, QPushButton)
+from PySide6.QtWidgets import QApplication, QPushButton
if __name__ == '__main__':
diff --git a/examples/widgets/tutorials/cannon/t3.py b/examples/widgets/tutorials/cannon/t3.py
index fbbb9b71e..13bd8f736 100644
--- a/examples/widgets/tutorials/cannon/t3.py
+++ b/examples/widgets/tutorials/cannon/t3.py
@@ -1,43 +1,5 @@
-
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
# PySide6 tutorial 3
diff --git a/examples/widgets/tutorials/cannon/t4.py b/examples/widgets/tutorials/cannon/t4.py
index b309c7bff..37a2dc9dd 100644
--- a/examples/widgets/tutorials/cannon/t4.py
+++ b/examples/widgets/tutorials/cannon/t4.py
@@ -1,43 +1,5 @@
-
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
# PySide6 tutorial 4
@@ -58,7 +20,7 @@ class MyWidget(QWidget):
self.quit.setGeometry(62, 40, 75, 30)
self.quit.setFont(QFont("Times", 18, QFont.Bold))
- self.quit.clicked.connect(qApp.quit)
+ self.quit.clicked.connect(qApp.quit) # noqa: F821
if __name__ == '__main__':
diff --git a/examples/widgets/tutorials/cannon/t5.py b/examples/widgets/tutorials/cannon/t5.py
index a4324a633..ed5d085f8 100644
--- a/examples/widgets/tutorials/cannon/t5.py
+++ b/examples/widgets/tutorials/cannon/t5.py
@@ -1,43 +1,5 @@
-
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
# PySide6 tutorial 5
@@ -63,7 +25,7 @@ class MyWidget(QWidget):
slider.setRange(0, 99)
slider.setValue(0)
- quit.clicked.connect(qApp.quit)
+ quit.clicked.connect(qApp.quit) # noqa: F821
slider.valueChanged.connect(lcd.display)
layout = QVBoxLayout(self)
diff --git a/examples/widgets/tutorials/cannon/t6.py b/examples/widgets/tutorials/cannon/t6.py
index c30fbfc6d..ea2e044e6 100644
--- a/examples/widgets/tutorials/cannon/t6.py
+++ b/examples/widgets/tutorials/cannon/t6.py
@@ -1,43 +1,5 @@
-
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
# PySide6 tutorial 6
@@ -71,7 +33,7 @@ class MyWidget(QWidget):
quit = QPushButton("Quit")
quit.setFont(QFont("Times", 18, QFont.Bold))
- quit.clicked.connect(qApp.quit)
+ quit.clicked.connect(qApp.quit) # noqa: F821
layout = QVBoxLayout(self)
layout.addWidget(quit)
diff --git a/examples/widgets/tutorials/cannon/t7.py b/examples/widgets/tutorials/cannon/t7.py
index f1c6798bb..1175107b8 100644
--- a/examples/widgets/tutorials/cannon/t7.py
+++ b/examples/widgets/tutorials/cannon/t7.py
@@ -1,43 +1,5 @@
-
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
# PySide6 tutorial 7
@@ -84,7 +46,7 @@ class MyWidget(QWidget):
quit = QPushButton("Quit")
quit.setFont(QFont("Times", 18, QFont.Bold))
- quit.clicked.connect(qApp.quit)
+ quit.clicked.connect(qApp.quit) # noqa: F821
previous_range = None
diff --git a/examples/widgets/tutorials/cannon/t8.py b/examples/widgets/tutorials/cannon/t8.py
index cc54194cf..9bb5516b8 100644
--- a/examples/widgets/tutorials/cannon/t8.py
+++ b/examples/widgets/tutorials/cannon/t8.py
@@ -1,50 +1,12 @@
-
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
# PySide6 tutorial 8
import sys
-from PySide6.QtCore import Signal, Slot, Qt
+from PySide6.QtCore import Signal, Slot, Qt, qWarning
from PySide6.QtGui import QColor, QFont, QPainter, QPalette
from PySide6.QtWidgets import (QApplication, QGridLayout, QLCDNumber,
QPushButton, QSlider, QVBoxLayout, QWidget)
@@ -81,8 +43,8 @@ class LCDRange(QWidget):
def set_range(self, minValue, maxValue):
if minValue < 0 or maxValue > 99 or minValue > maxValue:
qWarning("LCDRange.setRange({minValue}, {maxValue})\n"
- "\tRange must be 0..99\n"
- "\tand minValue must not be greater than maxValue")
+ "\tRange must be 0..99\n"
+ "\tand minValue must not be greater than maxValue")
return
self.slider.setRange(minValue, maxValue)
@@ -115,8 +77,8 @@ class CannonField(QWidget):
self.angle_changed.emit(self._current_angle)
def paintEvent(self, event):
- painter = QPainter(self)
- painter.drawText(200, 200, f"Angle = {self._current_angle}")
+ with QPainter(self) as painter:
+ painter.drawText(200, 200, f"Angle = {self._current_angle}")
class MyWidget(QWidget):
@@ -126,7 +88,7 @@ class MyWidget(QWidget):
quit = QPushButton("Quit")
quit.setFont(QFont("Times", 18, QFont.Bold))
- quit.clicked.connect(qApp.quit)
+ quit.clicked.connect(qApp.quit) # noqa: F821
angle = LCDRange()
angle.set_range(5, 70)
diff --git a/examples/widgets/tutorials/cannon/t9.py b/examples/widgets/tutorials/cannon/t9.py
index 36dcf8fb1..7cdda4e7b 100644
--- a/examples/widgets/tutorials/cannon/t9.py
+++ b/examples/widgets/tutorials/cannon/t9.py
@@ -1,50 +1,12 @@
-
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
# PySide6 tutorial 9
import sys
-from PySide6.QtCore import QRect, Qt, Signal, Slot
+from PySide6.QtCore import QRect, Qt, Signal, Slot, qWarning
from PySide6.QtGui import QColor, QFont, QPainter, QPalette
from PySide6.QtWidgets import (QApplication, QGridLayout, QLCDNumber,
QPushButton, QSlider, QVBoxLayout, QWidget)
@@ -81,8 +43,8 @@ class LCDRange(QWidget):
def set_range(self, minValue, maxValue):
if minValue < 0 or maxValue > 99 or minValue > maxValue:
qWarning(f"LCDRange::setRange({minValue}, {maxValue})\n"
- "\tRange must be 0..99\n"
- "\tand minValue must not be greater than maxValue")
+ "\tRange must be 0..99\n"
+ "\tand minValue must not be greater than maxValue")
return
self.slider.setRange(minValue, maxValue)
@@ -115,15 +77,14 @@ class CannonField(QWidget):
self.angle_changed.emit(self._current_angle)
def paintEvent(self, event):
- painter = QPainter(self)
-
- painter.setPen(Qt.NoPen)
- painter.setBrush(Qt.blue)
+ with QPainter(self) as painter:
+ painter.setPen(Qt.NoPen)
+ painter.setBrush(Qt.blue)
- painter.translate(0, self.rect().height())
- painter.drawPie(QRect(-35, -35, 70, 70), 0, 90 * 16)
- painter.rotate(-self._current_angle)
- painter.drawRect(QRect(33, -4, 15, 8))
+ painter.translate(0, self.rect().height())
+ painter.drawPie(QRect(-35, -35, 70, 70), 0, 90 * 16)
+ painter.rotate(-self._current_angle)
+ painter.drawRect(QRect(33, -4, 15, 8))
class MyWidget(QWidget):
@@ -133,7 +94,7 @@ class MyWidget(QWidget):
quit = QPushButton("Quit")
quit.setFont(QFont("Times", 18, QFont.Bold))
- quit.clicked.connect(qApp.quit)
+ quit.clicked.connect(qApp.quit) # noqa: F821
angle = LCDRange()
angle.set_range(5, 70)
diff --git a/examples/widgets/tutorials/modelview/1_readonly.py b/examples/widgets/tutorials/modelview/1_readonly.py
new file mode 100644
index 000000000..9dc923260
--- /dev/null
+++ b/examples/widgets/tutorials/modelview/1_readonly.py
@@ -0,0 +1,38 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from PySide6.QtCore import QAbstractTableModel, Qt
+from PySide6.QtWidgets import QApplication, QTableView
+
+"""PySide6 port of the widgets/tutorials/modelview/1_readonly example from Qt v6.x"""
+
+
+#! [1]
+class MyModel(QAbstractTableModel):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+ def rowCount(self, parent=None):
+ return 2
+
+ def columnCount(self, parent=None):
+ return 3
+
+ def data(self, index, role=Qt.DisplayRole):
+ if role == Qt.DisplayRole:
+ row = index.row() + 1
+ column = index.column() + 1
+ return f"Row{row}, Column{column}"
+ return None
+#! [1]
+
+
+if __name__ == '__main__':
+ app = QApplication(sys.argv)
+ table_view = QTableView()
+ my_model = MyModel()
+ table_view.setModel(my_model)
+ table_view.show()
+ sys.exit(app.exec())
diff --git a/examples/widgets/tutorials/modelview/2_formatting.py b/examples/widgets/tutorials/modelview/2_formatting.py
new file mode 100644
index 000000000..f39ec462c
--- /dev/null
+++ b/examples/widgets/tutorials/modelview/2_formatting.py
@@ -0,0 +1,65 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from PySide6.QtCore import QAbstractTableModel, Qt
+from PySide6.QtGui import QBrush, QFont
+from PySide6.QtWidgets import QApplication, QTableView
+
+"""PySide6 port of the widgets/tutorials/modelview/2_formatting example from Qt v6.x"""
+
+
+class MyModel(QAbstractTableModel):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+ def rowCount(self, parent=None):
+ return 2
+
+ def columnCount(self, parent=None):
+ return 3
+
+#! [1]
+ def data(self, index, role=Qt.DisplayRole):
+ row = index.row()
+ col = index.column()
+ # generate a log message when this method gets called
+ print(f"row {row}, col{col}, role {role}")
+
+ if role == Qt.DisplayRole:
+ if row == 0 and col == 1:
+ return "<--left"
+ if row == 1 and col == 1:
+ return "right-->"
+ return f"Row{row}, Column{col + 1}"
+
+ elif role == Qt.FontRole:
+ if row == 0 and col == 0: # change font only for cell(0,0)
+ bold_font = QFont()
+ bold_font.setBold(True)
+ return bold_font
+
+ elif role == Qt.BackgroundRole:
+ if row == 1 and col == 2: # change background only for cell(1,2)
+ return QBrush(Qt.red)
+
+ elif role == Qt.TextAlignmentRole:
+ if row == 1 and col == 1: # change text alignment only for cell(1,1)
+ return Qt.AlignRight | Qt.AlignVCenter
+
+ elif role == Qt.CheckStateRole:
+ if row == 1 and col == 0: # add a checkbox to cell(1,0)
+ return Qt.Checked
+
+ return None
+#! [1]
+
+
+if __name__ == '__main__':
+ app = QApplication(sys.argv)
+ table_view = QTableView()
+ my_model = MyModel()
+ table_view.setModel(my_model)
+ table_view.show()
+ sys.exit(app.exec())
diff --git a/examples/widgets/tutorials/modelview/3_changingmodel.py b/examples/widgets/tutorials/modelview/3_changingmodel.py
new file mode 100644
index 000000000..2148ec5d3
--- /dev/null
+++ b/examples/widgets/tutorials/modelview/3_changingmodel.py
@@ -0,0 +1,53 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from PySide6.QtCore import QAbstractTableModel, QTime, QTimer, Qt, Slot
+from PySide6.QtWidgets import QApplication, QTableView
+
+"""PySide6 port of the widgets/tutorials/modelview/3_changingmodel example from Qt v6.x"""
+
+
+class MyModel(QAbstractTableModel):
+#! [1]
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._timer = QTimer(self)
+ self._timer.setInterval(1000)
+ self._timer.timeout.connect(self.timer_hit)
+ self._timer.start()
+#! [1]
+
+ def rowCount(self, parent=None):
+ return 2
+
+ def columnCount(self, parent=None):
+ return 3
+
+#! [2]
+ def data(self, index, role=Qt.DisplayRole):
+ row = index.row()
+ col = index.column()
+ if role == Qt.DisplayRole and row == 0 and col == 0:
+ return QTime.currentTime().toString()
+ return None
+#! [2]
+
+#! [3]
+ @Slot()
+ def timer_hit(self):
+ # we identify the top left cell
+ top_left = self.createIndex(0, 0)
+ # emit a signal to make the view reread identified data
+ self.dataChanged.emit(top_left, top_left, [Qt.DisplayRole])
+#! [3]
+
+
+if __name__ == '__main__':
+ app = QApplication(sys.argv)
+ table_view = QTableView()
+ my_model = MyModel()
+ table_view.setModel(my_model)
+ table_view.show()
+ sys.exit(app.exec())
diff --git a/examples/widgets/tutorials/modelview/4_headers.py b/examples/widgets/tutorials/modelview/4_headers.py
new file mode 100644
index 000000000..3feef17bf
--- /dev/null
+++ b/examples/widgets/tutorials/modelview/4_headers.py
@@ -0,0 +1,43 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from PySide6.QtCore import QAbstractTableModel, Qt
+from PySide6.QtWidgets import QApplication, QTableView
+
+"""PySide6 port of the widgets/tutorials/modelview/4_headers example from Qt v6.x"""
+
+
+class MyModel(QAbstractTableModel):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+ def rowCount(self, parent=None):
+ return 2
+
+ def columnCount(self, parent=None):
+ return 3
+
+ def data(self, index, role=Qt.DisplayRole):
+ if role == Qt.DisplayRole:
+ row = index.row() + 1
+ column = index.column() + 1
+ return f"Row{row}, Column{column}"
+ return None
+
+#! [1]
+ def headerData(self, section, orientation, role):
+ if role == Qt.DisplayRole and orientation == Qt.Horizontal:
+ return ["first", "second", "third"][section]
+ return None
+#! [1]
+
+
+if __name__ == '__main__':
+ app = QApplication(sys.argv)
+ table_view = QTableView()
+ my_model = MyModel()
+ table_view.setModel(my_model)
+ table_view.show()
+ sys.exit(app.exec())
diff --git a/examples/widgets/tutorials/modelview/5_edit.py b/examples/widgets/tutorials/modelview/5_edit.py
new file mode 100644
index 000000000..1a4481fc9
--- /dev/null
+++ b/examples/widgets/tutorials/modelview/5_edit.py
@@ -0,0 +1,73 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+from itertools import chain
+
+from PySide6.QtCore import QAbstractTableModel, Qt, Signal, Slot
+from PySide6.QtWidgets import QApplication, QMainWindow, QTableView
+
+"""PySide6 port of the widgets/tutorials/modelview/5_edit example from Qt v6.x"""
+
+
+COLS = 3
+ROWS = 2
+
+
+class MyModel(QAbstractTableModel):
+
+ editCompleted = Signal(str)
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._grid_data = [["" for y in range(COLS)] for x in range(ROWS)]
+
+ def rowCount(self, parent=None):
+ return ROWS
+
+ def columnCount(self, parent=None):
+ return COLS
+
+ def data(self, index, role=Qt.DisplayRole):
+ if role == Qt.DisplayRole and self.checkIndex(index):
+ return self._grid_data[index.row()][index.column()]
+ return None
+
+#! [1]
+ def setData(self, index, value, role):
+ if role != Qt.EditRole or not self.checkIndex(index):
+ return False
+ # save value from editor to member m_gridData
+ self._grid_data[index.row()][index.column()] = value
+ # for presentation purposes only: build and emit a joined string
+ result = " ".join(chain(*self._grid_data))
+ self.editCompleted.emit(result)
+ return True
+#! [1]
+
+#! [2]
+ def flags(self, index):
+ return Qt.ItemIsEditable | super().flags(index)
+#! [2]
+
+
+class MainWindow(QMainWindow):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._table_view = QTableView(self)
+ self.setCentralWidget(self._table_view)
+ my_model = MyModel(self)
+ self._table_view.setModel(my_model)
+ # transfer changes to the model to the window title
+ my_model.editCompleted.connect(self.show_window_title)
+
+ @Slot(str)
+ def show_window_title(self, title):
+ self.setWindowTitle(title)
+
+
+if __name__ == '__main__':
+ app = QApplication(sys.argv)
+ w = MainWindow()
+ w.show()
+ sys.exit(app.exec())
diff --git a/examples/widgets/tutorials/modelview/6_treeview.py b/examples/widgets/tutorials/modelview/6_treeview.py
new file mode 100644
index 000000000..cac3c6d53
--- /dev/null
+++ b/examples/widgets/tutorials/modelview/6_treeview.py
@@ -0,0 +1,42 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from PySide6.QtGui import QStandardItem, QStandardItemModel
+from PySide6.QtWidgets import QApplication, QMainWindow, QTreeView
+
+"""PySide6 port of the widgets/tutorials/modelview/6_treeview example from Qt v6.x"""
+
+
+#! [1]
+class MainWindow(QMainWindow):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._standard_model = QStandardItemModel(self)
+ self._tree_view = QTreeView(self)
+ self.setCentralWidget(self._tree_view)
+
+ prepared_row = self.prepare_row("first", "second", "third")
+ item = self._standard_model.invisibleRootItem()
+ # adding a row to the invisible root item produces a root element
+ item.appendRow(prepared_row)
+
+ second_row = self.prepare_row("111", "222", "333")
+ # adding a row to an item starts a subtree
+ prepared_row[0].appendRow(second_row)
+
+ self._tree_view.setModel(self._standard_model)
+ self._tree_view.expandAll()
+
+ def prepare_row(self, first, second, third):
+ return [QStandardItem(first), QStandardItem(second),
+ QStandardItem(third)]
+#! [1]
+
+
+if __name__ == '__main__':
+ app = QApplication(sys.argv)
+ w = MainWindow()
+ w.show()
+ sys.exit(app.exec())
diff --git a/examples/widgets/tutorials/modelview/7_selections.py b/examples/widgets/tutorials/modelview/7_selections.py
new file mode 100644
index 000000000..c879d8f67
--- /dev/null
+++ b/examples/widgets/tutorials/modelview/7_selections.py
@@ -0,0 +1,71 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from PySide6.QtCore import QItemSelection, Qt, Slot
+from PySide6.QtGui import QStandardItem, QStandardItemModel
+from PySide6.QtWidgets import QApplication, QMainWindow, QTreeView
+
+"""PySide6 port of the widgets/tutorials/modelview/7_selections example from Qt v6.x"""
+
+
+#! [1]
+class MainWindow(QMainWindow):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._standard_model = QStandardItemModel(self)
+ self._tree_view = QTreeView(self)
+ self.setCentralWidget(self._tree_view)
+
+ # defining a couple of items
+ root_node = self._standard_model.invisibleRootItem()
+
+ america_item = QStandardItem("America")
+ mexico_item = QStandardItem("Canada")
+ usa_item = QStandardItem("USA")
+ boston_item = QStandardItem("Boston")
+ europe_item = QStandardItem("Europe")
+ italy_item = QStandardItem("Italy")
+ rome_item = QStandardItem("Rome")
+ verona_item = QStandardItem("Verona")
+
+ # building up the hierarchy
+ root_node.appendRow(america_item)
+ root_node.appendRow(europe_item)
+ america_item.appendRow(mexico_item)
+ america_item.appendRow(usa_item)
+ usa_item.appendRow(boston_item)
+ europe_item.appendRow(italy_item)
+ italy_item.appendRow(rome_item)
+ italy_item.appendRow(verona_item)
+
+ self._tree_view.setModel(self._standard_model)
+ self._tree_view.expandAll()
+
+ # selection changes shall trigger a slot
+ selection_model = self._tree_view.selectionModel()
+ selection_model.selectionChanged.connect(self.selection_changed_slot)
+#! [1]
+
+#! [2]
+ @Slot(QItemSelection, QItemSelection)
+ def selection_changed_slot(self, new_selection, old_selection):
+ # get the text of the selected item
+ index = self._tree_view.selectionModel().currentIndex()
+ selected_text = index.data(Qt.DisplayRole)
+ # find out the hierarchy level of the selected item
+ hierarchy_level = 1
+ seek_root = index
+ while seek_root.parent().isValid():
+ seek_root = seek_root.parent()
+ hierarchy_level += 1
+ self.setWindowTitle(f"{selected_text}, Level {hierarchy_level}")
+#! [2]
+
+
+if __name__ == '__main__':
+ app = QApplication(sys.argv)
+ w = MainWindow()
+ w.show()
+ sys.exit(app.exec())
diff --git a/examples/widgets/tutorials/modelview/doc/modelview.rst b/examples/widgets/tutorials/modelview/doc/modelview.rst
new file mode 100644
index 000000000..017f78de1
--- /dev/null
+++ b/examples/widgets/tutorials/modelview/doc/modelview.rst
@@ -0,0 +1,4 @@
+Model View Tutorial Examples
+============================
+
+Example code for the Model View Tutorial.
diff --git a/examples/widgets/tutorials/modelview/modelview.pyproject b/examples/widgets/tutorials/modelview/modelview.pyproject
new file mode 100644
index 000000000..3bbe9d47a
--- /dev/null
+++ b/examples/widgets/tutorials/modelview/modelview.pyproject
@@ -0,0 +1,9 @@
+{
+ "files": ["1_readonly.py",
+ "2_formatting.py",
+ "3_changingmodel.py",
+ "4_headers.py",
+ "5_edit.py",
+ "6_treeview.py",
+ "7_selections.py"]
+}
diff --git a/examples/widgets/widgets/charactermap/charactermap.pyproject b/examples/widgets/widgets/charactermap/charactermap.pyproject
new file mode 100644
index 000000000..c2b2c2068
--- /dev/null
+++ b/examples/widgets/widgets/charactermap/charactermap.pyproject
@@ -0,0 +1,4 @@
+{
+ "files": ["main.py", "characterwidget.py", "fontinfodialog.py",
+ "mainwindow.py"]
+}
diff --git a/examples/widgets/widgets/charactermap/characterwidget.py b/examples/widgets/widgets/charactermap/characterwidget.py
new file mode 100644
index 000000000..0f01f9684
--- /dev/null
+++ b/examples/widgets/widgets/charactermap/characterwidget.py
@@ -0,0 +1,133 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from textwrap import dedent
+
+from PySide6.QtCore import QSize, Qt, Slot, Signal
+from PySide6.QtGui import (QBrush, QFont, QFontDatabase, QFontMetrics,
+ QPainter, QPen)
+from PySide6.QtWidgets import QToolTip, QWidget
+
+COLUMNS = 16
+
+
+class CharacterWidget(QWidget):
+
+ character_selected = Signal(str)
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+ self._display_font = QFont()
+ self._last_key = -1
+ self._square_size = int(0)
+
+ self.calculate_square_size()
+ self.setMouseTracking(True)
+
+ @Slot(QFont)
+ def update_font(self, font):
+ self._display_font.setFamily(font.family())
+ self.calculate_square_size()
+ self.adjustSize()
+ self.update()
+
+ @Slot(str)
+ def update_size(self, fontSize):
+ self._display_font.setPointSize(int(fontSize))
+ self.calculate_square_size()
+ self.adjustSize()
+ self.update()
+
+ @Slot(str)
+ def update_style(self, fontStyle):
+ old_strategy = self._display_font.styleStrategy()
+ self._display_font = QFontDatabase.font(self._display_font.family(),
+ fontStyle,
+ self._display_font.pointSize())
+ self._display_font.setStyleStrategy(old_strategy)
+ self.calculate_square_size()
+ self.adjustSize()
+ self.update()
+
+ @Slot(bool)
+ def update_font_merging(self, enable):
+ if enable:
+ self._display_font.setStyleStrategy(QFont.PreferDefault)
+ else:
+ self._display_font.setStyleStrategy(QFont.NoFontMerging)
+ self.adjustSize()
+ self.update()
+
+ def calculate_square_size(self):
+ h = QFontMetrics(self._display_font, self).height()
+ self._square_size = max(16, 4 + h)
+
+ def sizeHint(self):
+ return QSize(COLUMNS * self._square_size,
+ (65536 / COLUMNS) * self._square_size)
+
+ def _unicode_from_pos(self, point):
+ row = int(point.y() / self._square_size)
+ return row * COLUMNS + int(point.x() / self._square_size)
+
+ def mouseMoveEvent(self, event):
+ widget_position = self.mapFromGlobal(event.globalPosition().toPoint())
+ key = self._unicode_from_pos(widget_position)
+ c = chr(key)
+ family = self._display_font.family()
+ text = dedent(f'''
+ <p>Character: <span style="font-size: 24pt; font-family: {family}">
+ {c}</span><p>Value: 0x{key:x}
+ ''')
+ QToolTip.showText(event.globalPosition().toPoint(), text, self)
+
+ def mousePressEvent(self, event):
+ if event.button() == Qt.LeftButton:
+ self._last_key = self._unicode_from_pos(event.position().toPoint())
+ if self._last_key != -1:
+ c = chr(self._last_key)
+ self.character_selected.emit(f"{c}")
+ self.update()
+ else:
+ super().mousePressEvent(event)
+
+ def paintEvent(self, event):
+ with QPainter(self) as painter:
+ self.render(event, painter)
+
+ def render(self, event, painter):
+ painter = QPainter(self)
+ painter.fillRect(event.rect(), QBrush(Qt.white))
+ painter.setFont(self._display_font)
+ redraw_rect = event.rect()
+ begin_row = int(redraw_rect.top() / self._square_size)
+ end_row = int(redraw_rect.bottom() / self._square_size)
+ begin_column = int(redraw_rect.left() / self._square_size)
+ end_column = int(redraw_rect.right() / self._square_size)
+ painter.setPen(QPen(Qt.gray))
+ for row in range(begin_row, end_row + 1):
+ for column in range(begin_column, end_column + 1):
+ x = int(column * self._square_size)
+ y = int(row * self._square_size)
+ painter.drawRect(x, y, self._square_size, self._square_size)
+
+ font_metrics = QFontMetrics(self._display_font)
+ painter.setPen(QPen(Qt.black))
+ for row in range(begin_row, end_row + 1):
+ for column in range(begin_column, end_column + 1):
+ key = int(row * COLUMNS + column)
+ painter.setClipRect(column * self._square_size,
+ row * self._square_size,
+ self._square_size, self._square_size)
+
+ if key == self._last_key:
+ painter.fillRect(column * self._square_size + 1,
+ row * self._square_size + 1,
+ self._square_size, self._square_size, QBrush(Qt.red))
+
+ text = chr(key)
+ painter.drawText(column * self._square_size + (self._square_size / 2)
+ - font_metrics.horizontalAdvance(text) / 2,
+ row * self._square_size + 4 + font_metrics.ascent(),
+ text)
diff --git a/examples/widgets/widgets/charactermap/doc/charactermap.rst b/examples/widgets/widgets/charactermap/doc/charactermap.rst
new file mode 100644
index 000000000..1a38615c4
--- /dev/null
+++ b/examples/widgets/widgets/charactermap/doc/charactermap.rst
@@ -0,0 +1,8 @@
+Character Map Example
+=====================
+
+The example displays an array of characters which the user can click on
+to enter text in a line edit. The contents of the line edit can then be
+copied into the clipboard, and pasted into other applications. The
+purpose behind this sort of tool is to allow users to enter characters
+that may be unavailable or difficult to locate on their keyboards.
diff --git a/examples/widgets/widgets/charactermap/fontinfodialog.py b/examples/widgets/widgets/charactermap/fontinfodialog.py
new file mode 100644
index 000000000..aa874884f
--- /dev/null
+++ b/examples/widgets/widgets/charactermap/fontinfodialog.py
@@ -0,0 +1,47 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import Qt, qVersion, qFuzzyCompare
+from PySide6.QtGui import QGuiApplication, QFontDatabase
+from PySide6.QtWidgets import (QDialog, QDialogButtonBox,
+ QPlainTextEdit, QVBoxLayout)
+
+
+def _format_font(font):
+ family = font.family()
+ size = font.pointSizeF()
+ return f"{family}, {size}pt"
+
+
+class FontInfoDialog(QDialog):
+
+ def __init__(self, parent):
+ super().__init__(parent)
+ self.setWindowFlags(self.windowFlags() & ~Qt.WindowContextHelpButtonHint)
+ main_layout = QVBoxLayout(self)
+ text_edit = QPlainTextEdit(self.text(), self)
+ text_edit.setReadOnly(True)
+ text_edit.setFont(QFontDatabase.systemFont(QFontDatabase.FixedFont))
+ main_layout.addWidget(text_edit)
+ button_box = QDialogButtonBox(QDialogButtonBox.Close, self)
+ button_box.rejected.connect(self.reject)
+ main_layout.addWidget(button_box)
+
+ def text(self):
+ default_font = QFontDatabase.systemFont(QFontDatabase.GeneralFont)
+ fixed_font = QFontDatabase.systemFont(QFontDatabase.FixedFont)
+ title_font = QFontDatabase.systemFont(QFontDatabase.TitleFont)
+ smallest_readable_font = QFontDatabase.systemFont(QFontDatabase.SmallestReadableFont)
+
+ v = qVersion()
+ platform = QGuiApplication.platformName()
+ dpi = self.logicalDpiX()
+ dpr = self.devicePixelRatio()
+ text = f"Qt {v} on {platform}, {dpi}DPI"
+ if not qFuzzyCompare(dpr, float(1)):
+ text += f", device pixel ratio: {dpr}"
+ text += ("\n\nDefault font : " + _format_font(default_font)
+ + "\nFixed font : " + _format_font(fixed_font)
+ + "\nTitle font : " + _format_font(title_font)
+ + "\nSmallest font: " + _format_font(smallest_readable_font))
+ return text
diff --git a/examples/widgets/widgets/charactermap/main.py b/examples/widgets/widgets/charactermap/main.py
new file mode 100644
index 000000000..e84a1d8af
--- /dev/null
+++ b/examples/widgets/widgets/charactermap/main.py
@@ -0,0 +1,17 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from PySide6.QtWidgets import QApplication
+
+from mainwindow import MainWindow
+
+"""PySide6 port of the widgets/widgets/ charactermap example from Qt6"""
+
+
+if __name__ == "__main__":
+ app = QApplication(sys.argv)
+ window = MainWindow()
+ window.show()
+ sys.exit(app.exec())
diff --git a/examples/widgets/widgets/charactermap/mainwindow.py b/examples/widgets/widgets/charactermap/mainwindow.py
new file mode 100644
index 000000000..d79285def
--- /dev/null
+++ b/examples/widgets/widgets/charactermap/mainwindow.py
@@ -0,0 +1,167 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import Qt, QSignalBlocker, Slot
+from PySide6.QtGui import QGuiApplication, QClipboard, QFont, QFontDatabase
+from PySide6.QtWidgets import (QCheckBox, QComboBox, QFontComboBox,
+ QHBoxLayout, QLabel, QLineEdit, QMainWindow,
+ QPushButton, QScrollArea,
+ QVBoxLayout, QWidget)
+
+from characterwidget import CharacterWidget
+from fontinfodialog import FontInfoDialog
+
+
+class MainWindow(QMainWindow):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+ self._character_widget = CharacterWidget()
+ self._filter_combo = QComboBox()
+ self._style_combo = QComboBox()
+ self._size_combo = QComboBox()
+ self._font_combo = QFontComboBox()
+ self._line_edit = QLineEdit()
+ self._scroll_area = QScrollArea()
+ self._font_merging = QCheckBox()
+
+ file_menu = self.menuBar().addMenu("File")
+ file_menu.addAction("Quit", self.close)
+ help_menu = self.menuBar().addMenu("Help")
+ help_menu.addAction("Show Font Info", self.show_info)
+ help_menu.addAction("About &Qt", qApp.aboutQt) # noqa: F821
+
+ central_widget = QWidget()
+
+ self._filter_label = QLabel("Filter:")
+ self._filter_combo = QComboBox()
+ self._filter_combo.addItem("All", int(QFontComboBox.AllFonts.value))
+ self._filter_combo.addItem("Scalable", int(QFontComboBox.ScalableFonts.value))
+ self._filter_combo.addItem("Monospaced", int(QFontComboBox.MonospacedFonts.value))
+ self._filter_combo.addItem("Proportional", int(QFontComboBox.ProportionalFonts.value))
+ self._filter_combo.setCurrentIndex(0)
+ self._filter_combo.currentIndexChanged.connect(self.filter_changed)
+
+ self._font_label = QLabel("Font:")
+ self._font_combo = QFontComboBox()
+ self._size_label = QLabel("Size:")
+ self._size_combo = QComboBox()
+ self._style_label = QLabel("Style:")
+ self._style_combo = QComboBox()
+ self._font_merging_label = QLabel("Automatic Font Merging:")
+ self._font_merging = QCheckBox()
+ self._font_merging.setChecked(True)
+
+ self._scroll_area = QScrollArea()
+ self._character_widget = CharacterWidget()
+ self._scroll_area.setWidget(self._character_widget)
+ self.find_styles(self._font_combo.currentFont())
+ self.find_sizes(self._font_combo.currentFont())
+
+ self._line_edit = QLineEdit()
+ self._line_edit.setClearButtonEnabled(True)
+ self._clipboard_button = QPushButton("To clipboard")
+ self._font_combo.currentFontChanged.connect(self.find_styles)
+ self._font_combo.currentFontChanged.connect(self.find_sizes)
+ self._font_combo.currentFontChanged.connect(self._character_widget.update_font)
+ self._size_combo.currentTextChanged.connect(self._character_widget.update_size)
+ self._style_combo.currentTextChanged.connect(self._character_widget.update_style)
+ self._character_widget.character_selected.connect(self.insert_character)
+
+ self._clipboard_button.clicked.connect(self.update_clipboard)
+ self._font_merging.toggled.connect(self._character_widget.update_font_merging)
+
+ controls_layout = QHBoxLayout()
+ controls_layout.addWidget(self._filter_label)
+ controls_layout.addWidget(self._filter_combo, 1)
+ controls_layout.addWidget(self._font_label)
+ controls_layout.addWidget(self._font_combo, 1)
+ controls_layout.addWidget(self._size_label)
+ controls_layout.addWidget(self._size_combo, 1)
+ controls_layout.addWidget(self._style_label)
+ controls_layout.addWidget(self._style_combo, 1)
+ controls_layout.addWidget(self._font_merging_label)
+ controls_layout.addWidget(self._font_merging, 1)
+ controls_layout.addStretch(1)
+
+ line_layout = QHBoxLayout()
+ line_layout.addWidget(self._line_edit, 1)
+ line_layout.addSpacing(12)
+ line_layout.addWidget(self._clipboard_button)
+
+ central_layout = QVBoxLayout(central_widget)
+ central_layout.addLayout(controls_layout)
+ central_layout.addWidget(self._scroll_area, 1)
+ central_layout.addSpacing(4)
+ central_layout.addLayout(line_layout)
+
+ self.setCentralWidget(central_widget)
+ self.setWindowTitle("Character Map")
+
+ @Slot(QFont)
+ def find_styles(self, font):
+ current_item = self._style_combo.currentText()
+ self._style_combo.clear()
+ styles = QFontDatabase.styles(font.family())
+ for style in styles:
+ self._style_combo.addItem(style)
+
+ style_index = self._style_combo.findText(current_item)
+
+ if style_index == -1:
+ self._style_combo.setCurrentIndex(0)
+ else:
+ self._style_combo.setCurrentIndex(style_index)
+
+ @Slot(int)
+ def filter_changed(self, f):
+ filter = QFontComboBox.FontFilter(self._filter_combo.itemData(f))
+ self._font_combo.setFontFilters(filter)
+ count = self._font_combo.count()
+ self.statusBar().showMessage(f"{count} font(s) found")
+
+ @Slot(QFont)
+ def find_sizes(self, font):
+ current_size = self._size_combo.currentText()
+ with QSignalBlocker(self._size_combo):
+ # sizeCombo signals are now blocked until end of scope
+ self._size_combo.clear()
+
+ style = QFontDatabase.styleString(font)
+ if QFontDatabase.isSmoothlyScalable(font.family(), style):
+ sizes = QFontDatabase.standardSizes()
+ for size in sizes:
+ self._size_combo.addItem(f"{size}")
+ self._size_combo.setEditable(True)
+ else:
+ sizes = QFontDatabase.smoothSizes(font.family(), style)
+ for size in sizes:
+ self._size_combo.addItem(f"{size}")
+ self._size_combo.setEditable(False)
+
+ size_index = self._size_combo.findText(current_size)
+
+ if size_index == -1:
+ self._size_combo.setCurrentIndex(max(0, self._size_combo.count() / 3))
+ else:
+ self._size_combo.setCurrentIndex(size_index)
+
+ @Slot(str)
+ def insert_character(self, character):
+ self._line_edit.insert(character)
+
+ @Slot()
+ def update_clipboard(self):
+ clipboard = QGuiApplication.clipboard()
+ clipboard.setText(self._line_edit.text(), QClipboard.Clipboard)
+ clipboard.setText(self._line_edit.text(), QClipboard.Selection)
+
+ @Slot()
+ def show_info(self):
+ screen_geometry = self.screen().geometry()
+ dialog = FontInfoDialog(self)
+ dialog.setWindowTitle("Fonts")
+ dialog.setAttribute(Qt.WA_DeleteOnClose)
+ dialog.resize(screen_geometry.width() / 4, screen_geometry.height() / 4)
+ dialog.show()
diff --git a/examples/widgets/widgets/digitalclock/digitalclock.py b/examples/widgets/widgets/digitalclock/digitalclock.py
new file mode 100644
index 000000000..f0030b356
--- /dev/null
+++ b/examples/widgets/widgets/digitalclock/digitalclock.py
@@ -0,0 +1,41 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+import sys
+
+from PySide6.QtCore import QTime, QTimer, Slot
+from PySide6.QtWidgets import QApplication, QLCDNumber
+
+
+class DigitalClock(QLCDNumber):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.setSegmentStyle(QLCDNumber.Filled)
+ self.setDigitCount(8)
+
+ self.timer = QTimer(self)
+ self.timer.timeout.connect(self.show_time)
+ self.timer.start(1000)
+
+ self.show_time()
+
+ self.setWindowTitle("Digital Clock")
+ self.resize(250, 60)
+
+ @Slot()
+ def show_time(self):
+ time = QTime.currentTime()
+ text = time.toString("hh:mm:ss")
+
+ # Blinking effect
+ if (time.second() % 2) == 0:
+ text = text.replace(":", " ")
+
+ self.display(text)
+
+
+if __name__ == "__main__":
+
+ app = QApplication(sys.argv)
+ clock = DigitalClock()
+ clock.show()
+ sys.exit(app.exec())
diff --git a/examples/widgets/widgets/digitalclock/digitalclock.pyproject b/examples/widgets/widgets/digitalclock/digitalclock.pyproject
new file mode 100644
index 000000000..03c3b6bb7
--- /dev/null
+++ b/examples/widgets/widgets/digitalclock/digitalclock.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["digitalclock.py"]
+}
diff --git a/examples/widgets/widgets/digitalclock/doc/digitalclock-screenshot.png b/examples/widgets/widgets/digitalclock/doc/digitalclock-screenshot.png
new file mode 100644
index 000000000..2234d7665
--- /dev/null
+++ b/examples/widgets/widgets/digitalclock/doc/digitalclock-screenshot.png
Binary files differ
diff --git a/examples/widgets/widgets/digitalclock/doc/digitalclock.rst b/examples/widgets/widgets/digitalclock/doc/digitalclock.rst
new file mode 100644
index 000000000..d13275d24
--- /dev/null
+++ b/examples/widgets/widgets/digitalclock/doc/digitalclock.rst
@@ -0,0 +1,14 @@
+Digital Clock Example
+=====================
+
+.. tags:: Android
+
+The Digital Clock example shows how to use QLCDNumber to display a number with
+LCD-like digits.
+
+.. image:: digitalclock-screenshot.png
+ :width: 400
+ :alt: Digital Clock Screenshot
+
+This example also demonstrates how QTimer can be used to update a widget at
+regular intervals.
diff --git a/examples/widgets/tetrix/doc/tetrix-screenshot.png b/examples/widgets/widgets/tetrix/doc/tetrix-screenshot.png
index 2c3dade39..2c3dade39 100644
--- a/examples/widgets/tetrix/doc/tetrix-screenshot.png
+++ b/examples/widgets/widgets/tetrix/doc/tetrix-screenshot.png
Binary files differ
diff --git a/examples/widgets/tetrix/doc/tetrix.rst b/examples/widgets/widgets/tetrix/doc/tetrix.rst
index 0749de9de..0749de9de 100644
--- a/examples/widgets/tetrix/doc/tetrix.rst
+++ b/examples/widgets/widgets/tetrix/doc/tetrix.rst
diff --git a/examples/widgets/widgets/tetrix/tetrix.py b/examples/widgets/widgets/tetrix/tetrix.py
new file mode 100644
index 000000000..b5df2aa35
--- /dev/null
+++ b/examples/widgets/widgets/tetrix/tetrix.py
@@ -0,0 +1,472 @@
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the widgets/widgets/tetrix example from Qt v5.x"""
+
+from enum import IntEnum
+import random
+import sys
+
+from PySide6.QtCore import QBasicTimer, QSize, Qt, Signal, Slot
+from PySide6.QtGui import QColor, QPainter, QPixmap
+from PySide6.QtWidgets import (QApplication, QFrame, QGridLayout, QLabel,
+ QLCDNumber, QPushButton, QWidget)
+
+
+class Piece(IntEnum):
+ NoShape = 0
+ ZShape = 1
+ SShape = 2
+ LineShape = 3
+ TShape = 4
+ SquareShape = 5
+ LShape = 6
+ MirroredLShape = 7
+
+
+class TetrixWindow(QWidget):
+ def __init__(self):
+ super().__init__()
+
+ self.board = TetrixBoard()
+
+ next_piece_label = QLabel()
+ next_piece_label.setFrameStyle(QFrame.Box | QFrame.Raised)
+ next_piece_label.setAlignment(Qt.AlignCenter)
+ self.board.set_next_piece_label(next_piece_label)
+
+ score_lcd = QLCDNumber(5)
+ score_lcd.setSegmentStyle(QLCDNumber.Filled)
+ level_lcd = QLCDNumber(2)
+ level_lcd.setSegmentStyle(QLCDNumber.Filled)
+ lines_lcd = QLCDNumber(5)
+ lines_lcd.setSegmentStyle(QLCDNumber.Filled)
+
+ start_button = QPushButton("&Start")
+ start_button.setFocusPolicy(Qt.NoFocus)
+ quit_button = QPushButton("&Quit")
+ quit_button.setFocusPolicy(Qt.NoFocus)
+ pause_button = QPushButton("&Pause")
+ pause_button.setFocusPolicy(Qt.NoFocus)
+
+ start_button.clicked.connect(self.board.start)
+ pause_button.clicked.connect(self.board.pause)
+ quit_button.clicked.connect(qApp.quit) # noqa: F821
+ self.board.score_changed.connect(score_lcd.display)
+ self.board.level_changed.connect(level_lcd.display)
+ self.board.lines_removed_changed.connect(lines_lcd.display)
+
+ layout = QGridLayout(self)
+ layout.addWidget(self.create_label("NEXT"), 0, 0)
+ layout.addWidget(next_piece_label, 1, 0)
+ layout.addWidget(self.create_label("LEVEL"), 2, 0)
+ layout.addWidget(level_lcd, 3, 0)
+ layout.addWidget(start_button, 4, 0)
+ layout.addWidget(self.board, 0, 1, 6, 1)
+ layout.addWidget(self.create_label("SCORE"), 0, 2)
+ layout.addWidget(score_lcd, 1, 2)
+ layout.addWidget(self.create_label("LINES REMOVED"), 2, 2)
+ layout.addWidget(lines_lcd, 3, 2)
+ layout.addWidget(quit_button, 4, 2)
+ layout.addWidget(pause_button, 5, 2)
+
+ self.setWindowTitle("Tetrix")
+ self.resize(550, 370)
+
+ def create_label(self, text):
+ lbl = QLabel(text)
+ lbl.setAlignment(Qt.AlignHCenter | Qt.AlignBottom)
+ return lbl
+
+
+class TetrixBoard(QFrame):
+ board_width = 10
+ board_height = 22
+
+ score_changed = Signal(int)
+
+ level_changed = Signal(int)
+
+ lines_removed_changed = Signal(int)
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+ self.timer = QBasicTimer()
+ self.nextPieceLabel = None
+ self._is_waiting_after_line = False
+ self._cur_piece = TetrixPiece()
+ self._next_piece = TetrixPiece()
+ self._cur_x = 0
+ self._cur_y = 0
+ self._num_lines_removed = 0
+ self._num_pieces_dropped = 0
+ self.score = 0
+ self.level = 0
+ self.board = None
+
+ self.setFrameStyle(QFrame.Panel | QFrame.Sunken)
+ self.setFocusPolicy(Qt.StrongFocus)
+ self._is_started = False
+ self._is_paused = False
+ self.clear_board()
+
+ self._next_piece.set_random_shape()
+
+ def shape_at(self, x, y):
+ return self.board[(y * TetrixBoard.board_width) + x]
+
+ def set_shape_at(self, x, y, shape):
+ self.board[(y * TetrixBoard.board_width) + x] = shape
+
+ def timeout_time(self):
+ return 1000 / (1 + self.level)
+
+ def square_width(self):
+ return self.contentsRect().width() / TetrixBoard.board_width
+
+ def square_height(self):
+ return self.contentsRect().height() / TetrixBoard.board_height
+
+ def set_next_piece_label(self, label):
+ self.nextPieceLabel = label
+
+ def sizeHint(self):
+ return QSize(TetrixBoard.board_width * 15 + self.frameWidth() * 2,
+ TetrixBoard.board_height * 15 + self.frameWidth() * 2)
+
+ def minimum_size_hint(self):
+ return QSize(TetrixBoard.board_width * 5 + self.frameWidth() * 2,
+ TetrixBoard.board_height * 5 + self.frameWidth() * 2)
+
+ @Slot()
+ def start(self):
+ if self._is_paused:
+ return
+
+ self._is_started = True
+ self._is_waiting_after_line = False
+ self._num_lines_removed = 0
+ self._num_pieces_dropped = 0
+ self.score = 0
+ self.level = 1
+ self.clear_board()
+
+ self.lines_removed_changed.emit(self._num_lines_removed)
+ self.score_changed.emit(self.score)
+ self.level_changed.emit(self.level)
+
+ self.new_piece()
+ self.timer.start(self.timeout_time(), self)
+
+ @Slot()
+ def pause(self):
+ if not self._is_started:
+ return
+
+ self._is_paused = not self._is_paused
+ if self._is_paused:
+ self.timer.stop()
+ else:
+ self.timer.start(self.timeout_time(), self)
+
+ self.update()
+
+ def paintEvent(self, event):
+ super(TetrixBoard, self).paintEvent(event)
+
+ with QPainter(self) as painter:
+ rect = self.contentsRect()
+
+ if self._is_paused:
+ painter.drawText(rect, Qt.AlignCenter, "Pause")
+ return
+
+ board_top = rect.bottom() - TetrixBoard.board_height * self.square_height()
+
+ for i in range(TetrixBoard.board_height):
+ for j in range(TetrixBoard.board_width):
+ shape = self.shape_at(j, TetrixBoard.board_height - i - 1)
+ if shape != Piece.NoShape:
+ self.draw_square(painter,
+ rect.left() + j * self.square_width(),
+ board_top + i * self.square_height(), shape)
+
+ if self._cur_piece.shape() != Piece.NoShape:
+ for i in range(4):
+ x = self._cur_x + self._cur_piece.x(i)
+ y = self._cur_y - self._cur_piece.y(i)
+ self.draw_square(painter, rect.left() + x * self.square_width(),
+ board_top
+ + (TetrixBoard.board_height - y - 1) * self.square_height(),
+ self._cur_piece.shape())
+
+ def keyPressEvent(self, event):
+ if not self._is_started or self._is_paused or self._cur_piece.shape() == Piece.NoShape:
+ super(TetrixBoard, self).keyPressEvent(event)
+ return
+
+ key = event.key()
+ if key == Qt.Key_Left:
+ self.try_move(self._cur_piece, self._cur_x - 1, self._cur_y)
+ elif key == Qt.Key_Right:
+ self.try_move(self._cur_piece, self._cur_x + 1, self._cur_y)
+ elif key == Qt.Key_Down:
+ self.try_move(self._cur_piece.rotated_right(), self._cur_x, self._cur_y)
+ elif key == Qt.Key_Up:
+ self.try_move(self._cur_piece.rotated_left(), self._cur_x, self._cur_y)
+ elif key == Qt.Key_Space:
+ self.drop_down()
+ elif key == Qt.Key_D:
+ self.one_line_down()
+ else:
+ super(TetrixBoard, self).keyPressEvent(event)
+
+ def timerEvent(self, event):
+ if event.timerId() == self.timer.timerId():
+ if self._is_waiting_after_line:
+ self._is_waiting_after_line = False
+ self.new_piece()
+ self.timer.start(self.timeout_time(), self)
+ else:
+ self.one_line_down()
+ else:
+ super(TetrixBoard, self).timerEvent(event)
+
+ def clear_board(self):
+ self.board = [
+ Piece.NoShape for _ in range(TetrixBoard.board_height * TetrixBoard.board_width)]
+
+ def drop_down(self):
+ drop_height = 0
+ new_y = self._cur_y
+ while new_y > 0:
+ if not self.try_move(self._cur_piece, self._cur_x, new_y - 1):
+ break
+ new_y -= 1
+ drop_height += 1
+
+ self.piece_dropped(drop_height)
+
+ def one_line_down(self):
+ if not self.try_move(self._cur_piece, self._cur_x, self._cur_y - 1):
+ self.piece_dropped(0)
+
+ def piece_dropped(self, dropHeight):
+ for i in range(4):
+ x = self._cur_x + self._cur_piece.x(i)
+ y = self._cur_y - self._cur_piece.y(i)
+ self.set_shape_at(x, y, self._cur_piece.shape())
+
+ self._num_pieces_dropped += 1
+ if self._num_pieces_dropped % 25 == 0:
+ self.level += 1
+ self.timer.start(self.timeout_time(), self)
+ self.level_changed.emit(self.level)
+
+ self.score += dropHeight + 7
+ self.score_changed.emit(self.score)
+ self.remove_full_lines()
+
+ if not self._is_waiting_after_line:
+ self.new_piece()
+
+ def remove_full_lines(self):
+ num_full_lines = 0
+
+ for i in range(TetrixBoard.board_height - 1, -1, -1):
+ line_is_full = True
+
+ for j in range(TetrixBoard.board_width):
+ if self.shape_at(j, i) == Piece.NoShape:
+ line_is_full = False
+ break
+
+ if line_is_full:
+ num_full_lines += 1
+ for k in range(i, TetrixBoard.board_height - 1):
+ for j in range(TetrixBoard.board_width):
+ self.set_shape_at(j, k, self.shape_at(j, k + 1))
+
+ for j in range(TetrixBoard.board_width):
+ self.set_shape_at(j, TetrixBoard.board_height - 1, Piece.NoShape)
+
+ if num_full_lines > 0:
+ self._num_lines_removed += num_full_lines
+ self.score += 10 * num_full_lines
+ self.lines_removed_changed.emit(self._num_lines_removed)
+ self.score_changed.emit(self.score)
+
+ self.timer.start(500, self)
+ self._is_waiting_after_line = True
+ self._cur_piece.set_shape(Piece.NoShape)
+ self.update()
+
+ def new_piece(self):
+ self._cur_piece = self._next_piece
+ self._next_piece.set_random_shape()
+ self.show_next_piece()
+ self._cur_x = TetrixBoard.board_width // 2 + 1
+ self._cur_y = TetrixBoard.board_height - 1 + self._cur_piece.min_y()
+
+ if not self.try_move(self._cur_piece, self._cur_x, self._cur_y):
+ self._cur_piece.set_shape(Piece.NoShape)
+ self.timer.stop()
+ self._is_started = False
+
+ def show_next_piece(self):
+ if self.nextPieceLabel is not None:
+ return
+
+ dx = self._next_piece.max_x() - self._next_piece.min_x() + 1
+ dy = self._next_piece.max_y() - self._next_piece.min_y() + 1
+
+ pixmap = QPixmap(dx * self.square_width(), dy * self.square_height())
+ with QPainter(pixmap) as painter:
+ painter.fillRect(pixmap.rect(), self.nextPieceLabel.palette().background())
+
+ for i in range(4):
+ x = self._next_piece.x(i) - self._next_piece.min_x()
+ y = self._next_piece.y(i) - self._next_piece.min_y()
+ self.draw_square(painter, x * self.square_width(),
+ y * self.square_height(), self._next_piece.shape())
+
+ self.nextPieceLabel.setPixmap(pixmap)
+
+ def try_move(self, newPiece, newX, newY):
+ for i in range(4):
+ x = newX + newPiece.x(i)
+ y = newY - newPiece.y(i)
+ if x < 0 or x >= TetrixBoard.board_width or y < 0 or y >= TetrixBoard.board_height:
+ return False
+ if self.shape_at(x, y) != Piece.NoShape:
+ return False
+
+ self._cur_piece = newPiece
+ self._cur_x = newX
+ self._cur_y = newY
+ self.update()
+ return True
+
+ def draw_square(self, painter, x, y, shape):
+ color_table = [0x000000, 0xCC6666, 0x66CC66, 0x6666CC,
+ 0xCCCC66, 0xCC66CC, 0x66CCCC, 0xDAAA00]
+
+ color = QColor(color_table[shape])
+ painter.fillRect(x + 1, y + 1, self.square_width() - 2, self.square_height() - 2, color)
+
+ painter.setPen(color.lighter())
+ painter.drawLine(x, y + self.square_height() - 1, x, y)
+ painter.drawLine(x, y, x + self.square_width() - 1, y)
+
+ painter.setPen(color.darker())
+ painter.drawLine(x + 1, y + self.square_height() - 1,
+ x + self.square_width() - 1, y + self.square_height() - 1)
+ painter.drawLine(x + self.square_width() - 1,
+ y + self.square_height() - 1, x + self.square_width() - 1, y + 1)
+
+
+class TetrixPiece(object):
+ coords_table = (
+ ((0, 0), (0, 0), (0, 0), (0, 0)),
+ ((0, -1), (0, 0), (-1, 0), (-1, 1)),
+ ((0, -1), (0, 0), (1, 0), (1, 1)),
+ ((0, -1), (0, 0), (0, 1), (0, 2)),
+ ((-1, 0), (0, 0), (1, 0), (0, 1)),
+ ((0, 0), (1, 0), (0, 1), (1, 1)),
+ ((-1, -1), (0, -1), (0, 0), (0, 1)),
+ ((1, -1), (0, -1), (0, 0), (0, 1))
+ )
+
+ def __init__(self):
+ self.coords = [[0, 0] for _ in range(4)]
+ self._piece_shape = Piece.NoShape
+
+ self.set_shape(Piece.NoShape)
+
+ def shape(self):
+ return self._piece_shape
+
+ def set_shape(self, shape):
+ table = TetrixPiece.coords_table[shape]
+ for i in range(4):
+ for j in range(2):
+ self.coords[i][j] = table[i][j]
+
+ self._piece_shape = shape
+
+ def set_random_shape(self):
+ self.set_shape(random.randint(1, 7))
+
+ def x(self, index):
+ return self.coords[index][0]
+
+ def y(self, index):
+ return self.coords[index][1]
+
+ def set_x(self, index, x):
+ self.coords[index][0] = x
+
+ def set_y(self, index, y):
+ self.coords[index][1] = y
+
+ def min_x(self):
+ m = self.coords[0][0]
+ for i in range(4):
+ m = min(m, self.coords[i][0])
+
+ return m
+
+ def max_x(self):
+ m = self.coords[0][0]
+ for i in range(4):
+ m = max(m, self.coords[i][0])
+
+ return m
+
+ def min_y(self):
+ m = self.coords[0][1]
+ for i in range(4):
+ m = min(m, self.coords[i][1])
+
+ return m
+
+ def max_y(self):
+ m = self.coords[0][1]
+ for i in range(4):
+ m = max(m, self.coords[i][1])
+
+ return m
+
+ def rotated_left(self):
+ if self._piece_shape == Piece.SquareShape:
+ return self
+
+ result = TetrixPiece()
+ result._piece_shape = self._piece_shape
+ for i in range(4):
+ result.set_x(i, self.y(i))
+ result.set_y(i, -self.x(i))
+
+ return result
+
+ def rotated_right(self):
+ if self._piece_shape == Piece.SquareShape:
+ return self
+
+ result = TetrixPiece()
+ result._piece_shape = self._piece_shape
+ for i in range(4):
+ result.set_x(i, -self.y(i))
+ result.set_y(i, self.x(i))
+
+ return result
+
+
+if __name__ == '__main__':
+ app = QApplication(sys.argv)
+ window = TetrixWindow()
+ window.show()
+ random.seed(None)
+ sys.exit(app.exec())
diff --git a/examples/widgets/tetrix/tetrix.pyproject b/examples/widgets/widgets/tetrix/tetrix.pyproject
index 75121ea64..75121ea64 100644
--- a/examples/widgets/tetrix/tetrix.pyproject
+++ b/examples/widgets/widgets/tetrix/tetrix.pyproject
diff --git a/examples/widgets/widgetsgallery/main.py b/examples/widgets/widgetsgallery/main.py
index c3602321b..e40077a38 100644
--- a/examples/widgets/widgetsgallery/main.py
+++ b/examples/widgets/widgetsgallery/main.py
@@ -1,55 +1,15 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the widgets/gallery example from Qt v5.15"""
import sys
-from PySide6.QtCore import QCoreApplication, Qt
from PySide6.QtWidgets import QApplication
from widgetgallery import WidgetGallery
if __name__ == '__main__':
- QCoreApplication.setAttribute(Qt.AA_EnableHighDpiScaling)
- QCoreApplication.setAttribute(Qt.AA_UseHighDpiPixmaps)
app = QApplication()
gallery = WidgetGallery()
gallery.show()
diff --git a/examples/widgets/widgetsgallery/widgetgallery.py b/examples/widgets/widgetsgallery/widgetgallery.py
index f57e23992..d43ab26a5 100644
--- a/examples/widgets/widgetsgallery/widgetgallery.py
+++ b/examples/widgets/widgetsgallery/widgetgallery.py
@@ -1,52 +1,23 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
-from PySide6.QtWidgets import *
+from PySide6.QtCore import (QDateTime, QDir, QLibraryInfo, QSysInfo, Qt,
+ QTimer, Slot, qVersion)
from PySide6.QtGui import (QCursor, QDesktopServices, QGuiApplication, QIcon,
QKeySequence, QShortcut, QStandardItem,
- QStandardItemModel, QScreen, QWindow)
-from PySide6.QtCore import (QDateTime, QDir, QLibraryInfo, QMetaObject,
- QSysInfo, QTextStream, QTimer, Qt, qVersion)
-
+ QStandardItemModel)
+from PySide6.QtWidgets import (QApplication, QCheckBox, QComboBox,
+ QCommandLinkButton, QDateTimeEdit, QDial,
+ QDialog, QDialogButtonBox, QFileSystemModel,
+ QGridLayout, QGroupBox, QHBoxLayout, QLabel,
+ QLineEdit, QListView, QMenu, QPlainTextEdit,
+ QProgressBar, QPushButton, QRadioButton,
+ QScrollBar, QSizePolicy, QSlider, QSpinBox,
+ QStyleFactory, QTableWidget, QTabWidget,
+ QTextBrowser, QTextEdit, QToolBox, QToolButton,
+ QTreeView, QVBoxLayout, QWidget)
POEM = """Twinkle, twinkle, little star,
How I wonder what you are.
@@ -193,8 +164,8 @@ class WidgetGallery(QDialog):
top_layout.addStretch(1)
top_layout.addWidget(disable_widgets_checkbox)
- dialog_buttonbox = QDialogButtonBox(QDialogButtonBox.Help |
- QDialogButtonBox.Close)
+ dialog_buttonbox = QDialogButtonBox(QDialogButtonBox.Help
+ | QDialogButtonBox.Close)
init_widget(dialog_buttonbox, "dialogButtonBox")
dialog_buttonbox.helpRequested.connect(launch_module_help)
dialog_buttonbox.rejected.connect(self.reject)
@@ -217,9 +188,11 @@ class WidgetGallery(QDialog):
self.windowHandle().screenChanged.connect(self.update_systeminfo)
self.update_systeminfo()
+ @Slot(str)
def change_style(self, style_name):
QApplication.setStyle(QStyleFactory.create(style_name))
+ @Slot()
def advance_progressbar(self):
cur_val = self._progress_bar.value()
max_val = self._progress_bar.maximum()
@@ -416,6 +389,7 @@ class WidgetGallery(QDialog):
timer.start(1000)
return result
+ @Slot()
def update_systeminfo(self):
"""Display system information"""
system_info = SYSTEMINFO.format(sys.version,
@@ -424,6 +398,7 @@ class WidgetGallery(QDialog):
screen_info(self))
self._systeminfo_textbrowser.setHtml(system_info)
+ @Slot()
def help_on_current_widget(self):
"""Display help on widget under mouse"""
w = QApplication.widgetAt(QCursor.pos(self.screen()))
diff --git a/examples/xml/dombookmarks/dombookmarks.py b/examples/xml/dombookmarks/dombookmarks.py
index 6a97c8cc6..a35aeb0f2 100644
--- a/examples/xml/dombookmarks/dombookmarks.py
+++ b/examples/xml/dombookmarks/dombookmarks.py
@@ -1,52 +1,16 @@
-
-#############################################################################
-##
-## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2013 Riverbank Computing Limited.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""PySide6 port of the xml/dombookmarks example from Qt v5.x"""
import sys
-from PySide6.QtCore import QDir, QFile, Qt
-from PySide6.QtGui import QAction, QIcon
-from PySide6.QtWidgets import (QApplication, QFileDialog, QHeaderView, QMainWindow, QMessageBox, QStyle, QTreeWidget, QTreeWidgetItem, QWidget)
+from PySide6.QtCore import QDir, QFile, Qt, QTextStream
+from PySide6.QtGui import QAction, QIcon, QKeySequence
+from PySide6.QtWidgets import (QApplication, QFileDialog, QHeaderView,
+ QMainWindow, QMessageBox, QStyle, QTreeWidget,
+ QTreeWidgetItem)
from PySide6.QtXml import QDomDocument
@@ -57,7 +21,6 @@ class MainWindow(QMainWindow):
self._xbel_tree = XbelTree()
self.setCentralWidget(self._xbel_tree)
- self.create_actions()
self.create_menus()
self.statusBar().showMessage("Ready")
@@ -67,8 +30,8 @@ class MainWindow(QMainWindow):
def open(self):
file_name = QFileDialog.getOpenFileName(self,
- "Open Bookmark File", QDir.currentPath(),
- "XBEL Files (*.xbel *.xml)")[0]
+ "Open Bookmark File", QDir.currentPath(),
+ "XBEL Files (*.xbel *.xml)")[0]
if not file_name:
return
@@ -77,7 +40,7 @@ class MainWindow(QMainWindow):
if not in_file.open(QFile.ReadOnly | QFile.Text):
reason = in_file.errorString()
QMessageBox.warning(self, "DOM Bookmarks",
- f"Cannot read file {file_name}:\n{reason}.")
+ f"Cannot read file {file_name}:\n{reason}.")
return
if self._xbel_tree.read(in_file):
@@ -85,8 +48,8 @@ class MainWindow(QMainWindow):
def save_as(self):
file_name = QFileDialog.getSaveFileName(self,
- "Save Bookmark File", QDir.currentPath(),
- "XBEL Files (*.xbel *.xml)")[0]
+ "Save Bookmark File", QDir.currentPath(),
+ "XBEL Files (*.xbel *.xml)")[0]
if not file_name:
return
@@ -95,7 +58,7 @@ class MainWindow(QMainWindow):
if not out_file.open(QFile.WriteOnly | QFile.Text):
reason = out_file.errorString()
QMessageBox.warning(self, "DOM Bookmarks",
- "Cannot write file {fileName}:\n{reason}.")
+ f"Cannot write file {file_name}:\n{reason}.")
return
if self._xbel_tree.write(out_file):
@@ -103,35 +66,26 @@ class MainWindow(QMainWindow):
def about(self):
QMessageBox.about(self, "About DOM Bookmarks",
- "The <b>DOM Bookmarks</b> example demonstrates how to use Qt's "
- "DOM classes to read and write XML documents.")
-
- def create_actions(self):
- self._open_act = QAction("&Open...", self, shortcut="Ctrl+O",
- triggered=self.open)
-
- self._save_as_act = QAction("&Save As...", self, shortcut="Ctrl+S",
- triggered=self.save_as)
-
- self._exit_act = QAction("E&xit", self, shortcut="Ctrl+Q",
- triggered=self.close)
-
- self._about_act = QAction("&About", self, triggered=self.about)
-
- self._about_qt_act = QAction("About &Qt", self,
- triggered=qApp.aboutQt)
+ "The <b>DOM Bookmarks</b> example demonstrates how to use Qt's "
+ "DOM classes to read and write XML documents.")
def create_menus(self):
self._file_menu = self.menuBar().addMenu("&File")
- self._file_menu.addAction(self._open_act)
- self._file_menu.addAction(self._save_as_act)
- self._file_menu.addAction(self._exit_act)
+ self._file_menu.addAction(QAction("&Open...", self,
+ shortcut=QKeySequence(
+ Qt.CTRL | Qt.Key_O), triggered=self.open))
+ self._file_menu.addAction(QAction("&Save As...", self,
+ shortcut=QKeySequence(
+ Qt.CTRL | Qt.Key_S), triggered=self.save_as))
+ self._file_menu.addAction(QAction("E&xit", self,
+ shortcut=QKeySequence(
+ Qt.CTRL | Qt.Key_Q), triggered=self.close))
self.menuBar().addSeparator()
self._help_menu = self.menuBar().addMenu("&Help")
- self._help_menu.addAction(self._about_act)
- self._help_menu.addAction(self._about_qt_act)
+ self._help_menu.addAction(QAction("&About", self, triggered=self.about))
+ self._help_menu.addAction(QAction("About &Qt", self, triggered=qApp.aboutQt)) # noqa: F821
class XbelTree(QTreeWidget):
@@ -149,26 +103,27 @@ class XbelTree(QTreeWidget):
self._bookmark_icon = QIcon()
self._folder_icon.addPixmap(self.style().standardPixmap(QStyle.SP_DirClosedIcon),
- QIcon.Normal, QIcon.Off)
+ QIcon.Normal, QIcon.Off)
self._folder_icon.addPixmap(self.style().standardPixmap(QStyle.SP_DirOpenIcon),
- QIcon.Normal, QIcon.On)
+ QIcon.Normal, QIcon.On)
self._bookmark_icon.addPixmap(self.style().standardPixmap(QStyle.SP_FileIcon))
def read(self, device):
ok, errorStr, errorLine, errorColumn = self._dom_document.setContent(device, True)
if not ok:
QMessageBox.information(self.window(), "DOM Bookmarks",
- f"Parse error at line {errorLine}, column {errorColumn}:\n{errorStr}")
+ f"Parse error at line {errorLine}, "
+ f"column {errorColumn}:\n{errorStr}")
return False
root = self._dom_document.documentElement()
if root.tagName() != 'xbel':
QMessageBox.information(self.window(), "DOM Bookmarks",
- "The file is not an XBEL file.")
+ "The file is not an XBEL file.")
return False
elif root.hasAttribute('version') and root.attribute('version') != '1.0':
QMessageBox.information(self.window(), "DOM Bookmarks",
- "The file is not an XBEL version 1.0 file.")
+ "The file is not an XBEL version 1.0 file.")
return False
self.clear()
@@ -176,7 +131,7 @@ class XbelTree(QTreeWidget):
# It might not be connected.
try:
self.itemChanged.disconnect(self.update_dom_element)
- except:
+ except RuntimeError:
pass
child = root.firstChildElement('folder')
diff --git a/examples/xml/dombookmarks/dombookmarks.pyproject b/examples/xml/dombookmarks/dombookmarks.pyproject
index 9a688558d..0a0b203a6 100644
--- a/examples/xml/dombookmarks/dombookmarks.pyproject
+++ b/examples/xml/dombookmarks/dombookmarks.pyproject
@@ -1,3 +1,3 @@
{
- "files": ["jennifer.xbel", "frank.xbel", "dombookmarks.py"]
+ "files": ["jennifer.xbel", "dombookmarks.py"]
}
diff --git a/examples/xml/dombookmarks/frank.xbel b/examples/xml/dombookmarks/frank.xbel
deleted file mode 100644
index f498a5e04..000000000
--- a/examples/xml/dombookmarks/frank.xbel
+++ /dev/null
@@ -1,230 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE xbel>
-<xbel version="1.0">
- <folder folded="yes">
- <title>Literate Programming</title>
- <bookmark href="http://www.vivtek.com/litprog.html">
- <title>Synopsis of Literate Programming</title>
- </bookmark>
- <bookmark href="http://vasc.ri.cmu.edu/old_help/Programming/Literate/literate.html">
- <title>Literate Programming: Propaganda and Tools</title>
- </bookmark>
- <bookmark href="http://www.isy.liu.se/%7Eturbell/litprog/">
- <title>Literate Programming by Henrik Turbell</title>
- </bookmark>
- <bookmark href="http://www.desy.de/user/projects/LitProg.html">
- <title>Literate Programming Library</title>
- </bookmark>
- <bookmark href="http://www.loria.fr/services/tex/english/litte.html">
- <title>Literate Programming Basics</title>
- </bookmark>
- <bookmark href="http://ei.cs.vt.edu/%7Ecs5014/courseNotes/4.LiterateProgramming/literate_prog.html">
- <title>Literate Programming Overview</title>
- </bookmark>
- <bookmark href="http://www.perl.com/pub/a/tchrist/litprog.html">
- <title>POD is not Literate Programming</title>
- </bookmark>
- <bookmark href="http://www.cornellcollege.edu/%7Eltabak/publications/articles/swsafety.html">
- <title>Computers That We Can Count On</title>
- </bookmark>
- <bookmark href="http://www.cs.auc.dk/%7Enormark/litpro/issues-and-problems.html">
- <title>Literate Programming - Issues and Problems</title>
- </bookmark>
- <bookmark href="http://c2.com/cgi/wiki?LiterateProgramming">
- <title>Literate Programming - Wiki Pages</title>
- </bookmark>
- <bookmark href="http://developers.slashdot.org/developers/02/05/19/2216233.shtml">
- <title>What is well-commented code?</title>
- </bookmark>
- <bookmark href="http://liinwww.ira.uka.de/bibliography/SE/litprog.html">
- <title>Bibliography on literate programming - A searchable bibliography</title>
- </bookmark>
- <bookmark href="http://www2.umassd.edu/SWPI/ProcessBibliography/bib-codereading.html">
- <title>Program comprehension and code reading bibliography</title>
- </bookmark>
- <bookmark href="http://www.cs.auc.dk/%7Enormark/elucidative-programming/">
- <title>Elucidative Programming</title>
- </bookmark>
- <bookmark href="http://www.msu.edu/%7Epfaffben/avl/index.html">
- <title>AVL Trees (TexiWeb)</title>
- </bookmark>
- <bookmark href="http://literate-programming.wikiverse.org/">
- <title>Literate Programming on Wikiverse</title>
- </bookmark>
- <bookmark href="http://www.pbrt.org/">
- <title>Physically Based Rendering: From Theory to Implementation</title>
- </bookmark>
- </folder>
- <folder folded="no">
- <title>Useful C++ Links</title>
- <folder folded="no">
- <title>STL</title>
- <bookmark href="http://www.sgi.com/tech/stl/table_of_contents.html">
- <title>STL Reference Documentation</title>
- </bookmark>
- <bookmark href="http://www.yrl.co.uk/~phil/stl/stl.htmlx">
- <title>STL Tutorial</title>
- </bookmark>
- <bookmark href="http://www.cppreference.com/cpp_stl.html">
- <title>STL Reference</title>
- </bookmark>
- </folder>
- <folder folded="no">
- <title>Qt</title>
- <bookmark href="http://doc.trolltech.com/2.3/">
- <title>Qt 2.3 Reference</title>
- </bookmark>
- <bookmark href="http://doc.trolltech.com/3.3/">
- <title>Qt 3.3 Reference</title>
- </bookmark>
- <bookmark href="http://doc.trolltech.com/4.0/">
- <title>Qt 4.0 Reference</title>
- </bookmark>
- <bookmark href="http://www.trolltech.com/">
- <title>Trolltech Home Page</title>
- </bookmark>
- </folder>
- <folder folded="yes">
- <title>IOStreams</title>
- <bookmark href="http://www.cplusplus.com/ref/iostream/index.html">
- <title>IO Stream Library</title>
- </bookmark>
- <bookmark href="http://courses.cs.vt.edu/~cs2604/fall01/binio.html">
- <title>Binary I/O</title>
- </bookmark>
- <bookmark href="http://www.parashift.com/c++-faq-lite/input-output.html">
- <title>I/O Stream FAQ</title>
- </bookmark>
- </folder>
- <folder folded="yes">
- <title>gdb</title>
- <bookmark href="http://www.cs.princeton.edu/~benjasik/gdb/gdbtut.html">
- <title>GDB Tutorial</title>
- </bookmark>
- <bookmark href="http://www.gnu.org/manual/gdb-4.17/html_mono/gdb.html">
- <title>Debugging with GDB</title>
- </bookmark>
- <bookmark href="http://www.cs.washington.edu/orgs/acm/tutorials/dev-in-unix/gdb-refcard.pdf">
- <title>GDB Quick Reference Page (PDF) (Handy)</title>
- </bookmark>
- </folder>
- <folder folded="yes">
- <title>Classes and Constructors</title>
- <bookmark href="http://www.parashift.com/c++-faq-lite/ctors.html">
- <title>Constructor FAQ</title>
- </bookmark>
- <bookmark href="http://www.juicystudio.com/tutorial/cpp/index.html">
- <title>Organizing Classes</title>
- </bookmark>
- </folder>
- </folder>
- <folder folded="yes">
- <title>Software Documentation or System Documentation</title>
- <bookmark href="http://www.martinfowler.com/distributedComputing/thud.html">
- <title>The Almighty Thud</title>
- </bookmark>
- <bookmark href="http://msdn.microsoft.com/library/techart/cfr.htm">
- <title>Microsoft Coding Techniques and Programming Practices</title>
- </bookmark>
- <bookmark href="http://www.bearcave.com/software/prog_docs.html">
- <title>Software and Documentation</title>
- </bookmark>
- <bookmark href="http://c2.com/cgi/wiki?TheSourceCodeIsTheDesign">
- <title>The Source Code is the Design</title>
- </bookmark>
- <bookmark href="http://www.bleading-edge.com/Publications/C++Journal/Cpjour2.htm">
- <title>What is Software Design?</title>
- </bookmark>
- <bookmark href="http://www.mindprod.com/unmain.html">
- <title>How To Write Unmaintainable Code</title>
- </bookmark>
- <bookmark href="http://www.idinews.com/selfDoc.html">
- <title>Self Documenting Program Code Remains a Distant Goal</title>
- </bookmark>
- <bookmark href="http://www.sdmagazine.com/documents/s=730/sdm0106m/0106m.htm">
- <title>Place Tab A in Slot B</title>
- </bookmark>
- <bookmark href="http://www.holub.com/class/uml/uml.html">
- <title>UML Reference Card</title>
- </bookmark>
- </folder>
- <folder folded="yes">
- <title>TeX Resources</title>
- <bookmark href="http://www.tug.org/">
- <title>The TeX User's Group</title>
- </bookmark>
- <bookmark href="http://www.miktex.org/">
- <title>MikTeX website</title>
- </bookmark>
- <bookmark href="http://cm.bell-labs.com/who/hobby/MetaPost.html">
- <title>MetaPost website</title>
- </bookmark>
- <bookmark href="http://pauillac.inria.fr/%7Emaranget/hevea/">
- <title>HEVEA is a quite complete and fast LATEX to HTML translator</title>
- </bookmark>
- </folder>
- <folder folded="no">
- <title>Portable Document Format (PDF)</title>
- <bookmark href="http://www.adobe.com/">
- <title>Adobe - The postscript and PDF standards</title>
- </bookmark>
- <bookmark href="http://partners.adobe.com/asn/developer/technotes/acrobatpdf.html">
- <title>Reference Manual Portable Document Format</title>
- </bookmark>
- <bookmark href="http://partners.adobe.com/asn/developer/acrosdk/main.html">
- <title>Adobe Acrobat Software Development Kit</title>
- </bookmark>
- </folder>
- <folder folded="yes">
- <title>Literature Sites</title>
- <bookmark href="http://www.cc.columbia.edu/cu/libraries/subjects/speccol.html">
- <title>Guide to Special Collections (Columbia University)</title>
- </bookmark>
- <bookmark href="http://www.ipl.org/ref/litcrit/">
- <title>Literary Criticism on the Web from the Internet Public Library</title>
- </bookmark>
- <bookmark href="http://www.victorianweb.org/">
- <title>Victorian Web.</title>
- </bookmark>
- <bookmark href="http://vos.ucsb.edu/">
- <title>Voice of the Shuttle.</title>
- </bookmark>
- <bookmark href="http://www.modjourn.brown.edu/">
- <title>Modernist Journals Project</title>
- </bookmark>
- <bookmark href="http://www.poetspath.com">
- <title>Museum of American Poetics</title>
- </bookmark>
- <bookmark href="http://www.english.uiuc.edu/maps/">
- <title>Modern American Poetry</title>
- </bookmark>
- <bookmark href="http://www.findarticles.com/">
- <title>FindArticles.com</title>
- </bookmark>
- <bookmark href="http://www.literaryhistory.com">
- <title>Literary History</title>
- </bookmark>
- <bookmark href="http://www.litencyc.com/LitEncycFrame.htm">
- <title>Literary Encyclopedia</title>
- </bookmark>
- <separator/>
- <bookmark href="http://texts.cdlib.org/ucpress/">
- <title>The University of California Press</title>
- </bookmark>
- <bookmark href="http://www.letrs.indiana.edu/web/w/wright2/">
- <title>Wright American Fiction, 1851-1875</title>
- </bookmark>
- <bookmark href="http://docsouth.unc.edu/">
- <title>Documenting the American South: Beginnings to 1920</title>
- </bookmark>
- <bookmark href="http://etext.lib.virginia.edu/eng-on.html">
- <title>Electronic Text Center at the University of Virginia</title>
- </bookmark>
- <bookmark href="http://digital.nypl.org/schomburg/writers_aa19/">
- <title>The Schomburg Center for Research in Black Culture</title>
- </bookmark>
- <bookmark href="http://www.infomotions.com/alex2/">
- <title>Alex Catalog of Electronic Texts.</title>
- </bookmark>
- </folder>
-</xbel>
diff --git a/examples/xml/dombookmarks/jennifer.xbel b/examples/xml/dombookmarks/jennifer.xbel
index 1f7810b94..d50423683 100644
--- a/examples/xml/dombookmarks/jennifer.xbel
+++ b/examples/xml/dombookmarks/jennifer.xbel
@@ -3,91 +3,67 @@
<xbel version="1.0">
<folder folded="no">
<title>Qt Resources</title>
+ <bookmark href="https://www.qt.io/">
+ <title>Qt home page</title>
+ </bookmark>
+ <bookmark href="https://www.qt.io/contact-us/partners">
+ <title>Qt Partners</title>
+ </bookmark>
+ <bookmark href="https://www.qt.io/qt-professional-services">
+ <title>Professional Services</title>
+ </bookmark>
+ <bookmark href="https://doc.qt.io/">
+ <title>Qt Documentation</title>
+ </bookmark>
<folder folded="yes">
- <title>Trolltech Partners</title>
- <bookmark href="http://partners.trolltech.com/partners/training.html">
- <title>Training Partners</title>
- </bookmark>
- <bookmark href="http://partners.trolltech.com/partners/service.html">
- <title>Consultants and System Integrators</title>
- </bookmark>
- <bookmark href="http://partners.trolltech.com/partners/tech.html">
- <title>Technology Partners</title>
+ <title>Community Resources</title>
+ <bookmark href="https://contribute.qt-project.org">
+ <title>The Qt Project</title>
</bookmark>
- <bookmark href="http://partners.trolltech.com/partners/resellers.html">
- <title>Value Added Resellers (VARs)</title>
+ <bookmark href="https://www.qtcentre.org/content/">
+ <title>Qt Centre</title>
</bookmark>
- </folder>
- <folder folded="yes">
- <title>Community Resources</title>
- <bookmark href="http://www.qtforum.org/">
- <title>QtForum.org</title>
+ <bookmark href="https://forum.qt.io/">
+ <title>Forum.Qt.org</title>
</bookmark>
- <bookmark href="http://www.digitalfanatics.org/projects/qt_tutorial/">
+ <bookmark href="https://digitalfanatics.org/projects/qt_tutorial/">
<title>The Independent Qt Tutorial</title>
</bookmark>
- <bookmark href="http://prog.qt.free.fr/">
- <title>French PROG.Qt</title>
- </bookmark>
- <bookmark href="http://www.qtforum.de/">
+ <bookmark href="https://www.qtforum.de/">
<title>German Qt Forum</title>
</bookmark>
- <bookmark href="http://www.korone.net/">
+ <bookmark href="https://www.qt-dev.com/">
<title>Korean Qt Community Site</title>
</bookmark>
- <bookmark href="http://prog.org.ru/forum/forum_14.html">
+ <bookmark href="http://www.prog.org.ru/">
<title>Russian Qt Forum</title>
</bookmark>
- <bookmark href="http://qt4.digitalfanatics.org/">
- <title>Digitalfanatics: The QT 4 Resource Center</title>
- </bookmark>
- <bookmark href="http://www.qtquestions.org/">
- <title>QtQuestions</title>
- </bookmark>
</folder>
- <bookmark href="http://doc.trolltech.com/qq/">
- <title>Qt Quarterly</title>
- </bookmark>
- <bookmark href="http://www.trolltech.com/">
- <title>Trolltech's home page</title>
- </bookmark>
- <bookmark href="http://doc.trolltech.com/4.0/">
- <title>Qt 4.0 documentation</title>
- </bookmark>
- <bookmark href="http://www.trolltech.com/developer/faqs/">
- <title>Frequently Asked Questions</title>
- </bookmark>
</folder>
<folder folded="no">
<title>Online Dictionaries</title>
- <bookmark href="http://www.dictionary.com/">
+ <bookmark href="https://www.dictionary.com/">
<title>Dictionary.com</title>
</bookmark>
- <bookmark href="http://www.m-w.com/">
+ <bookmark href="https://www.merriam-webster.com/">
<title>Merriam-Webster Online</title>
</bookmark>
- <bookmark href="http://dictionary.cambridge.org/">
+ <bookmark href="https://dictionary.cambridge.org/">
<title>Cambridge Dictionaries Online</title>
</bookmark>
- <bookmark href="http://www.onelook.com/">
+ <bookmark href="https://www.onelook.com/">
<title>OneLook Dictionary Search</title>
</bookmark>
<separator/>
- <bookmark href="www.iee.et.tu-dresden.de/">
- <title>The New English-German Dictionary</title>
- </bookmark>
- <bookmark href="http://dict.tu-chemnitz.de/">
- <title>TU Chemnitz German-English Dictionary</title>
+ <bookmark href="https://dict.tu-chemnitz.de/">
+ <title>BEOLINGUS, a service of TU Chemnitz</title>
</bookmark>
<separator/>
<bookmark href="http://atilf.atilf.fr/tlf.htm">
<title>Trésor de la Langue Française informatisé</title>
</bookmark>
- <bookmark href="http://dictionnaires.atilf.fr/dictionnaires/ACADEMIE/">
+ <bookmark href="https://www.dictionnaire-academie.fr/">
<title>Dictionnaire de l'Académie Française</title>
</bookmark>
- <bookmark href="http://elsap1.unicaen.fr/cgi-bin/cherches.cgi">
- <title>Dictionnaire des synonymes</title>
- </bookmark>
</folder>
</xbel>
diff --git a/header.BSD-OLD b/header.BSD-OLD
deleted file mode 100644
index 687705fee..000000000
--- a/header.BSD-OLD
+++ /dev/null
@@ -1,39 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2015 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the FOO module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD-OLD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
diff --git a/requirements-doc.txt b/requirements-doc.txt
new file mode 100644
index 000000000..7205ef57f
--- /dev/null
+++ b/requirements-doc.txt
@@ -0,0 +1,12 @@
+sphinx==7.2.6
+sphinx-design==0.5.0
+sphinx-copybutton==0.5.2
+sphinx-tags==0.3.1
+sphinx-toolbox
+myst-parser==2.0.0
+# FIXME: Using fork in order to enable the 'collapse_navbar=True'
+# option for the sphinx-theme. Upstream proposal:
+# https://github.com/pradyunsg/furo/pull/748#issuecomment-1895448722
+# furo==2023.9.10
+furo @ git+https://github.com/cmaureir/furo@add_collapse
+graphviz==0.20
diff --git a/requirements.txt b/requirements.txt
index 7141c9df7..65380e93b 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,8 +1,13 @@
-setuptools
-sphinx
-sphinx-panels
-six
-wheel>=0.35
+# Build dependencies
+setuptools==69.1.1
+packaging==23.2
+build==1.0.3
+wheel==0.42.0
+distro==1.9.0; sys_platform == 'linux'
+patchelf==0.17.2; sys_platform == 'linux'
+# 1.24.4 is the last version that supports Python 3.8
+numpy<1.25; python_version < '3.9'
+numpy==1.26.3; python_version >= '3.9'
+
+# For examples
PyOpenGL
-pyinstaller==3.6
-nuitka
diff --git a/setup.py b/setup.py
index aa770d402..f63b59051 100644
--- a/setup.py
+++ b/setup.py
@@ -1,44 +1,8 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python project.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
"""
-This is a distutils setup-script for the Qt for Python project.
+This is a setuptools setup-script for the Qt for Python project.
For more information see README.md
"""
diff --git a/sources/cmake_helpers/helpers.cmake b/sources/cmake_helpers/helpers.cmake
deleted file mode 100644
index 3bc26f17d..000000000
--- a/sources/cmake_helpers/helpers.cmake
+++ /dev/null
@@ -1,265 +0,0 @@
-macro(collect_essential_modules)
-# Collect all essential modules.
-# note: the order of this list is relevant for dependencies.
-# For instance: Qt5Printsupport must come before Qt5WebKitWidgets.
-set(ALL_ESSENTIAL_MODULES
- Core
- Gui
- Widgets
- PrintSupport
- Sql
- Network
- Test
- Concurrent)
-endmacro()
-
-macro(collect_optional_modules)
-# Collect all optional modules.
-set(ALL_OPTIONAL_MODULES
- Designer
- Xml
- Help Multimedia
- MultimediaWidgets
- OpenGL
- OpenGLWidgets
- Positioning
- Location
- NetworkAuth
- Qml
- Quick
- QuickControls2
- QuickWidgets
- RemoteObjects
- Scxml
- Sensors
- SerialPort
- StateMachine
- TextToSpeech
- Charts
- Svg
- SvgWidgets
- DataVisualization
- Bluetooth)
-find_package(Qt${QT_MAJOR_VERSION}UiTools)
-if(Qt${QT_MAJOR_VERSION}UiTools_FOUND)
- list(APPEND ALL_OPTIONAL_MODULES UiTools)
-else()
- set(DISABLE_QtUiTools 1)
-endif()
-if(WIN32)
- list(APPEND ALL_OPTIONAL_MODULES AxContainer)
-endif()
-list(APPEND ALL_OPTIONAL_MODULES WebChannel WebEngineCore WebEngineWidgets
- WebEngineQuick WebSockets)
-if(NOT WIN32 AND NOT APPLE)
- list(APPEND ALL_OPTIONAL_MODULES DBus)
-endif()
-if (Qt${QT_MAJOR_VERSION}Core_VERSION VERSION_GREATER 6.0.2)
- list(APPEND ALL_OPTIONAL_MODULES 3DCore 3DRender 3DInput 3DLogic 3DAnimation 3DExtras)
-endif()
-if(WIN32)
- list(APPEND ALL_OPTIONAL_MODULES WinExtras)
-endif()
-endmacro()
-
-macro(check_os)
-set(ENABLE_UNIX "1")
-set(ENABLE_MAC "0")
-set(ENABLE_WIN "0")
-
-if(CMAKE_HOST_APPLE)
- set(ENABLE_MAC "1")
-elseif(CMAKE_HOST_WIN32)
- set(ENABLE_WIN "1")
- set(ENABLE_UNIX "0")
-elseif(NOT CMAKE_HOST_UNIX)
- message(FATAL_ERROR "OS not supported")
-endif()
-endmacro()
-
-macro(use_protected_as_public_hack)
-# 2017-04-24 The protected hack can unfortunately not be disabled, because
-# Clang does produce linker errors when we disable the hack.
-# But the ugly workaround in Python is replaced by a shiboken change.
-if(WIN32 OR DEFINED AVOID_PROTECTED_HACK)
- message(STATUS "PySide6 will be generated avoiding the protected hack!")
- set(GENERATOR_EXTRA_FLAGS ${GENERATOR_EXTRA_FLAGS} --avoid-protected-hack)
- add_definitions(-DAVOID_PROTECTED_HACK)
-else()
- message(STATUS "PySide will be generated using the protected hack!")
-endif()
-endmacro()
-
-macro(remove_skipped_modules)
-# Removing from the MODULES list the items that were defined with
-# -DSKIP_MODULES on command line
-if (SKIP_MODULES)
- foreach(s ${SKIP_MODULES})
- list(REMOVE_ITEM MODULES ${s})
- endforeach()
-endif()
-
-foreach(m ${MODULES})
- COLLECT_MODULE_IF_FOUND(${m})
- list(FIND all_module_shortnames ${m} is_module_collected)
- # If the module was collected, remove it from disabled modules list.
- if (NOT is_module_collected EQUAL -1)
- list(REMOVE_ITEM DISABLED_MODULES ${m})
- endif()
-endforeach()
-endmacro()
-
-macro(COLLECT_MODULE_IF_FOUND shortname)
- set(name "Qt${QT_MAJOR_VERSION}${shortname}")
- set(_qt_module_name "${name}")
- if ("${shortname}" STREQUAL "OpenGLFunctions")
- set(_qt_module_name "Qt${QT_MAJOR_VERSION}Gui")
- endif()
- # Determine essential/optional/missing
- set(module_state "missing")
- list(FIND ALL_ESSENTIAL_MODULES "${shortname}" essentialIndex)
- if(${essentialIndex} EQUAL -1)
- list(FIND ALL_OPTIONAL_MODULES "${shortname}" optionalIndex)
- if(NOT ${optionalIndex} EQUAL -1)
- set(module_state "optional")
- endif()
- else()
- set(module_state "essential")
- endif()
-
- # Silence warnings when optional packages are not found when doing a quiet build.
- set(quiet_argument "")
- if (QUIET_BUILD AND "${module_state}" STREQUAL "optional")
- set(quiet_argument "QUIET")
- endif()
-
- find_package(${_qt_module_name} ${quiet_argument})
- # If package is found, _name_found will be equal to 1
- set(_name_found "${_qt_module_name}_FOUND")
- # _name_dir will keep the path to the directory where the CMake rules were found
- # e.g: ~/qt5.9-install/qtbase/lib/cmake/Qt5Core or /usr/lib64/cmake/Qt5Core
- set(_name_dir "${_qt_module_name}_DIR")
- # Qt5Core will set the base path to check if all the modules are on the same
- # directory, to avoid CMake looking in another path.
- # This will be saved in a global variable at the beginning of the modules
- # collection process.
- string(FIND "${name}" "Qt${QT_MAJOR_VERSION}Core" qtcore_found)
- if(("${qtcore_found}" GREATER "0") OR ("${qtcore_found}" EQUAL "0"))
- get_filename_component(_core_abs_dir "${${_name_dir}}/../" ABSOLUTE)
- # Setting the absolute path where the Qt5Core was found
- # e.g: ~/qt5.9-install/qtbase/lib/cmake or /usr/lib64/cmake
- message(STATUS "CORE_ABS_DIR:" ${_core_abs_dir})
- endif()
-
- # Getting the absolute path for each module where the CMake was found, to
- # compare it with CORE_ABS_DIR and check if they are in the same source directory
- # e.g: ~/qt5.9-install/qtbase/lib/cmake/Qt5Script or /usr/lib64/cmake/Qt5Script
- get_filename_component(_module_dir "${${_name_dir}}" ABSOLUTE)
- string(FIND "${_module_dir}" "${_core_abs_dir}" found_basepath)
-
- # If the module was found, and also the module path is the same as the
- # Qt5Core base path, we will generate the list with the modules to be installed
- set(looked_in_message ". Looked in: ${${_name_dir}}")
- if("${${_name_found}}" AND (("${found_basepath}" GREATER "0") OR ("${found_basepath}" EQUAL "0")))
- message(STATUS "${module_state} module ${name} found (${ARGN})${looked_in_message}")
- # record the shortnames for the tests
- list(APPEND all_module_shortnames ${shortname})
- # Build Qt 5 compatibility variables
- if(${QT_MAJOR_VERSION} GREATER_EQUAL 6 AND NOT "${shortname}" STREQUAL "OpenGLFunctions")
- get_target_property(Qt6${shortname}_INCLUDE_DIRS Qt6::${shortname}
- INTERFACE_INCLUDE_DIRECTORIES)
- get_target_property(Qt6${shortname}_PRIVATE_INCLUDE_DIRS
- Qt6::${shortname}Private
- INTERFACE_INCLUDE_DIRECTORIES)
- set(Qt6${shortname}_LIBRARIES Qt::${shortname})
- endif()
- else()
- if("${module_state}" STREQUAL "optional")
- message(STATUS "optional module ${name} skipped${looked_in_message}")
- elseif("${module_state}" STREQUAL "essential")
- message(STATUS "skipped module ${name} is essential!\n"
- " We do not guarantee that all tests are working.${looked_in_message}")
- else()
- message(FATAL_ERROR "module ${name} MISSING${looked_in_message}")
- endif()
- endif()
-endmacro()
-
-macro(compute_config_py_values
- full_version_var_name
- )
- string(TIMESTAMP PACKAGE_BUILD_DATE "%Y-%m-%dT%H:%M:%S+00:00" UTC)
- if (PACKAGE_BUILD_DATE)
- set(PACKAGE_BUILD_DATE "__build_date__ = '${PACKAGE_BUILD_DATE}'")
- endif()
-
- if (PACKAGE_SETUP_PY_PACKAGE_VERSION)
- set(PACKAGE_SETUP_PY_PACKAGE_VERSION_ASSIGNMENT "__setup_py_package_version__ = '${PACKAGE_SETUP_PY_PACKAGE_VERSION}'")
- set(FINAL_PACKAGE_VERSION ${PACKAGE_SETUP_PY_PACKAGE_VERSION})
- else()
- set(FINAL_PACKAGE_VERSION ${${full_version_var_name}})
- endif()
-
- if (PACKAGE_SETUP_PY_PACKAGE_TIMESTAMP)
- set(PACKAGE_SETUP_PY_PACKAGE_TIMESTAMP_ASSIGNMENT "__setup_py_package_timestamp__ = '${PACKAGE_SETUP_PY_PACKAGE_TIMESTAMP}'")
- else()
- set(PACKAGE_SETUP_PY_PACKAGE_TIMESTAMP_ASSIGNMENT "")
- endif()
-
- find_package(Git)
- if(GIT_FOUND)
- # Check if current source folder is inside a git repo, so that commit information can be
- # queried.
- execute_process(
- COMMAND ${GIT_EXECUTABLE} rev-parse --git-dir
- OUTPUT_VARIABLE PACKAGE_SOURCE_IS_INSIDE_REPO
- ERROR_QUIET
- OUTPUT_STRIP_TRAILING_WHITESPACE)
-
- if(PACKAGE_SOURCE_IS_INSIDE_REPO)
- # Force git dates to be UTC-based.
- set(ENV{TZ} UTC)
- execute_process(
- COMMAND ${GIT_EXECUTABLE} --no-pager show --date=format-local:%Y-%m-%dT%H:%M:%S+00:00 -s --format=%cd HEAD
- OUTPUT_VARIABLE PACKAGE_BUILD_COMMIT_DATE
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- if(PACKAGE_BUILD_COMMIT_DATE)
- set(PACKAGE_BUILD_COMMIT_DATE "__build_commit_date__ = '${PACKAGE_BUILD_COMMIT_DATE}'")
- endif()
- unset(ENV{TZ})
-
- execute_process(
- COMMAND ${GIT_EXECUTABLE} rev-parse HEAD
- OUTPUT_VARIABLE PACKAGE_BUILD_COMMIT_HASH
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- if(PACKAGE_BUILD_COMMIT_HASH)
- set(PACKAGE_BUILD_COMMIT_HASH "__build_commit_hash__ = '${PACKAGE_BUILD_COMMIT_HASH}'")
- endif()
-
- execute_process(
- COMMAND ${GIT_EXECUTABLE} describe HEAD
- OUTPUT_VARIABLE PACKAGE_BUILD_COMMIT_HASH_DESCRIBED
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- if(PACKAGE_BUILD_COMMIT_HASH_DESCRIBED)
- set(PACKAGE_BUILD_COMMIT_HASH_DESCRIBED "__build_commit_hash_described__ = '${PACKAGE_BUILD_COMMIT_HASH_DESCRIBED}'")
- endif()
-
- endif()
- endif()
-
-endmacro()
-
-# Creates a new target called "${library_name}_generator" which
-# depends on the mjb_rejected_classes.log file generated by shiboken.
-# This target is added as a dependency to ${library_name} target.
-# This file's timestamp informs cmake when the last generation was
-# done, without force-updating the timestamps of the generated class
-# cpp files.
-# In practical terms this means that changing some injection code in
-# an xml file that modifies only one specific class cpp file, will
-# not force rebuilding all the cpp files, and thus allow for better
-# incremental builds.
-macro(create_generator_target library_name)
- add_custom_target(${library_name}_generator DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/mjb_rejected_classes.log")
- add_dependencies(${library_name} ${library_name}_generator)
-endmacro()
diff --git a/sources/patchelf/README b/sources/patchelf/README
deleted file mode 100644
index 1db25bc46..000000000
--- a/sources/patchelf/README
+++ /dev/null
@@ -1,107 +0,0 @@
-PatchELF is a simple utility for modifing existing ELF executables and
-libraries. In particular, it can do the following:
-
-* Change the dynamic loader ("ELF interpreter") of executables:
-
- $ patchelf --set-interpreter /lib/my-ld-linux.so.2 my-program
-
-* Change the RPATH of executables and libraries:
-
- $ patchelf --set-rpath /opt/my-libs/lib:/other-libs my-program
-
-* Shrink the RPATH of executables and libraries:
-
- $ patchelf --shrink-rpath my-program
-
- This removes from the RPATH all directories that do not contain a
- library referenced by DT_NEEDED fields of the executable or library.
- For instance, if an executable references one library libfoo.so, has
- an RPATH "/lib:/usr/lib:/foo/lib", and libfoo.so can only be found
- in /foo/lib, then the new RPATH will be "/foo/lib".
-
-
-AUTHOR
-
-Copyright 2004-2009 Eelco Dolstra <e.dolstra@tudelft.nl>.
-
-
-LICENSE
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or (at
-your option) any later version.
-
-This program is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-
-HOMEPAGE
-
-http://nixos.org/patchelf.html
-
-
-BUGS
-
-The `strip' command from binutils generated broken executables when
-applied to the output of patchelf (if `--set-rpath' or
-`--set-interpreter' with a larger path than the original is used).
-This appears to be a bug in binutils
-(http://bugs.strategoxt.org/browse/NIXPKGS-85).
-
-
-RELEASE HISTORY
-
-0.6 (November 7, 2011):
-
-* Hacky support for executables created by the Gold linker.
-
-* Support segments with an alignment of 0 (contributed by Zack
- Weinberg).
-
-* Added a manual page (contributed by Jeremy Sanders
- <jeremy@jeremysanders.net>).
-
-0.5 (November 4, 2009):
-
-* Various bugfixes.
-
-* `--force-rpath' now deletes the DT_RUNPATH if it is present.
-
-0.4 (June 4, 2008):
-
-* Support for growing the RPATH on dynamic libraries.
-
-* IA-64 support (not tested) and related 64-bit fixes.
-
-* FreeBSD support.
-
-* `--set-rpath', `--shrink-rpath' and `--print-rpath' now prefer
- DT_RUNPATH over DT_RPATH, which is obsolete. When updating, if both
- are present, both are updated. If only DT_RPATH is present, it is
- converted to DT_RUNPATH unless `--force-rpath' is specified. If
- neither is present, a DT_RUNPATH is added unless `--force-rpath' is
- specified, in which case a DT_RPATH is added.
-
-0.3 (May 24, 2007):
-
-* Support for 64-bit ELF binaries (such as on x86_64-linux).
-
-* Support for big-endian ELF binaries (such as on powerpc-linux).
-
-* Various bugfixes.
-
-0.2 (January 15, 2007):
-
-* Provides a hack to get certain programs (such as the
- Belastingaangifte 2005) to work.
-
-0.1 (October 11, 2005):
-
-* Initial release.
-
diff --git a/sources/patchelf/elf.h b/sources/patchelf/elf.h
deleted file mode 100644
index b897f5bd5..000000000
--- a/sources/patchelf/elf.h
+++ /dev/null
@@ -1,2674 +0,0 @@
-/* This file defines standard ELF types, structures, and macros.
- Copyright (C) 1995-2003,2004,2005,2006,2007,2008
- Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#ifndef _ELF_H
-#define _ELF_H 1
-
-/* Standard ELF types. */
-
-#include <stdint.h>
-
-/* Type for a 16-bit quantity. */
-typedef uint16_t Elf32_Half;
-typedef uint16_t Elf64_Half;
-
-/* Types for signed and unsigned 32-bit quantities. */
-typedef uint32_t Elf32_Word;
-typedef int32_t Elf32_Sword;
-typedef uint32_t Elf64_Word;
-typedef int32_t Elf64_Sword;
-
-/* Types for signed and unsigned 64-bit quantities. */
-typedef uint64_t Elf32_Xword;
-typedef int64_t Elf32_Sxword;
-typedef uint64_t Elf64_Xword;
-typedef int64_t Elf64_Sxword;
-
-/* Type of addresses. */
-typedef uint32_t Elf32_Addr;
-typedef uint64_t Elf64_Addr;
-
-/* Type of file offsets. */
-typedef uint32_t Elf32_Off;
-typedef uint64_t Elf64_Off;
-
-/* Type for section indices, which are 16-bit quantities. */
-typedef uint16_t Elf32_Section;
-typedef uint16_t Elf64_Section;
-
-/* Type for version symbol information. */
-typedef Elf32_Half Elf32_Versym;
-typedef Elf64_Half Elf64_Versym;
-
-
-/* The ELF file header. This appears at the start of every ELF file. */
-
-#define EI_NIDENT (16)
-
-typedef struct
-{
- unsigned char e_ident[EI_NIDENT]; /* Magic number and other info */
- Elf32_Half e_type; /* Object file type */
- Elf32_Half e_machine; /* Architecture */
- Elf32_Word e_version; /* Object file version */
- Elf32_Addr e_entry; /* Entry point virtual address */
- Elf32_Off e_phoff; /* Program header table file offset */
- Elf32_Off e_shoff; /* Section header table file offset */
- Elf32_Word e_flags; /* Processor-specific flags */
- Elf32_Half e_ehsize; /* ELF header size in bytes */
- Elf32_Half e_phentsize; /* Program header table entry size */
- Elf32_Half e_phnum; /* Program header table entry count */
- Elf32_Half e_shentsize; /* Section header table entry size */
- Elf32_Half e_shnum; /* Section header table entry count */
- Elf32_Half e_shstrndx; /* Section header string table index */
-} Elf32_Ehdr;
-
-typedef struct
-{
- unsigned char e_ident[EI_NIDENT]; /* Magic number and other info */
- Elf64_Half e_type; /* Object file type */
- Elf64_Half e_machine; /* Architecture */
- Elf64_Word e_version; /* Object file version */
- Elf64_Addr e_entry; /* Entry point virtual address */
- Elf64_Off e_phoff; /* Program header table file offset */
- Elf64_Off e_shoff; /* Section header table file offset */
- Elf64_Word e_flags; /* Processor-specific flags */
- Elf64_Half e_ehsize; /* ELF header size in bytes */
- Elf64_Half e_phentsize; /* Program header table entry size */
- Elf64_Half e_phnum; /* Program header table entry count */
- Elf64_Half e_shentsize; /* Section header table entry size */
- Elf64_Half e_shnum; /* Section header table entry count */
- Elf64_Half e_shstrndx; /* Section header string table index */
-} Elf64_Ehdr;
-
-/* Fields in the e_ident array. The EI_* macros are indices into the
- array. The macros under each EI_* macro are the values the byte
- may have. */
-
-#define EI_MAG0 0 /* File identification byte 0 index */
-#define ELFMAG0 0x7f /* Magic number byte 0 */
-
-#define EI_MAG1 1 /* File identification byte 1 index */
-#define ELFMAG1 'E' /* Magic number byte 1 */
-
-#define EI_MAG2 2 /* File identification byte 2 index */
-#define ELFMAG2 'L' /* Magic number byte 2 */
-
-#define EI_MAG3 3 /* File identification byte 3 index */
-#define ELFMAG3 'F' /* Magic number byte 3 */
-
-/* Conglomeration of the identification bytes, for easy testing as a word. */
-#define ELFMAG "\177ELF"
-#define SELFMAG 4
-
-#define EI_CLASS 4 /* File class byte index */
-#define ELFCLASSNONE 0 /* Invalid class */
-#define ELFCLASS32 1 /* 32-bit objects */
-#define ELFCLASS64 2 /* 64-bit objects */
-#define ELFCLASSNUM 3
-
-#define EI_DATA 5 /* Data encoding byte index */
-#define ELFDATANONE 0 /* Invalid data encoding */
-#define ELFDATA2LSB 1 /* 2's complement, little endian */
-#define ELFDATA2MSB 2 /* 2's complement, big endian */
-#define ELFDATANUM 3
-
-#define EI_VERSION 6 /* File version byte index */
- /* Value must be EV_CURRENT */
-
-#define EI_OSABI 7 /* OS ABI identification */
-#define ELFOSABI_NONE 0 /* UNIX System V ABI */
-#define ELFOSABI_SYSV 0 /* Alias. */
-#define ELFOSABI_HPUX 1 /* HP-UX */
-#define ELFOSABI_NETBSD 2 /* NetBSD. */
-#define ELFOSABI_LINUX 3 /* Linux. */
-#define ELFOSABI_SOLARIS 6 /* Sun Solaris. */
-#define ELFOSABI_AIX 7 /* IBM AIX. */
-#define ELFOSABI_IRIX 8 /* SGI Irix. */
-#define ELFOSABI_FREEBSD 9 /* FreeBSD. */
-#define ELFOSABI_TRU64 10 /* Compaq TRU64 UNIX. */
-#define ELFOSABI_MODESTO 11 /* Novell Modesto. */
-#define ELFOSABI_OPENBSD 12 /* OpenBSD. */
-#define ELFOSABI_ARM 97 /* ARM */
-#define ELFOSABI_STANDALONE 255 /* Standalone (embedded) application */
-
-#define EI_ABIVERSION 8 /* ABI version */
-
-#define EI_PAD 9 /* Byte index of padding bytes */
-
-/* Legal values for e_type (object file type). */
-
-#define ET_NONE 0 /* No file type */
-#define ET_REL 1 /* Relocatable file */
-#define ET_EXEC 2 /* Executable file */
-#define ET_DYN 3 /* Shared object file */
-#define ET_CORE 4 /* Core file */
-#define ET_NUM 5 /* Number of defined types */
-#define ET_LOOS 0xfe00 /* OS-specific range start */
-#define ET_HIOS 0xfeff /* OS-specific range end */
-#define ET_LOPROC 0xff00 /* Processor-specific range start */
-#define ET_HIPROC 0xffff /* Processor-specific range end */
-
-/* Legal values for e_machine (architecture). */
-
-#define EM_NONE 0 /* No machine */
-#define EM_M32 1 /* AT&T WE 32100 */
-#define EM_SPARC 2 /* SUN SPARC */
-#define EM_386 3 /* Intel 80386 */
-#define EM_68K 4 /* Motorola m68k family */
-#define EM_88K 5 /* Motorola m88k family */
-#define EM_860 7 /* Intel 80860 */
-#define EM_MIPS 8 /* MIPS R3000 big-endian */
-#define EM_S370 9 /* IBM System/370 */
-#define EM_MIPS_RS3_LE 10 /* MIPS R3000 little-endian */
-
-#define EM_PARISC 15 /* HPPA */
-#define EM_VPP500 17 /* Fujitsu VPP500 */
-#define EM_SPARC32PLUS 18 /* Sun's "v8plus" */
-#define EM_960 19 /* Intel 80960 */
-#define EM_PPC 20 /* PowerPC */
-#define EM_PPC64 21 /* PowerPC 64-bit */
-#define EM_S390 22 /* IBM S390 */
-
-#define EM_V800 36 /* NEC V800 series */
-#define EM_FR20 37 /* Fujitsu FR20 */
-#define EM_RH32 38 /* TRW RH-32 */
-#define EM_RCE 39 /* Motorola RCE */
-#define EM_ARM 40 /* ARM */
-#define EM_FAKE_ALPHA 41 /* Digital Alpha */
-#define EM_SH 42 /* Hitachi SH */
-#define EM_SPARCV9 43 /* SPARC v9 64-bit */
-#define EM_TRICORE 44 /* Siemens Tricore */
-#define EM_ARC 45 /* Argonaut RISC Core */
-#define EM_H8_300 46 /* Hitachi H8/300 */
-#define EM_H8_300H 47 /* Hitachi H8/300H */
-#define EM_H8S 48 /* Hitachi H8S */
-#define EM_H8_500 49 /* Hitachi H8/500 */
-#define EM_IA_64 50 /* Intel Merced */
-#define EM_MIPS_X 51 /* Stanford MIPS-X */
-#define EM_COLDFIRE 52 /* Motorola Coldfire */
-#define EM_68HC12 53 /* Motorola M68HC12 */
-#define EM_MMA 54 /* Fujitsu MMA Multimedia Accelerator*/
-#define EM_PCP 55 /* Siemens PCP */
-#define EM_NCPU 56 /* Sony nCPU embeeded RISC */
-#define EM_NDR1 57 /* Denso NDR1 microprocessor */
-#define EM_STARCORE 58 /* Motorola Start*Core processor */
-#define EM_ME16 59 /* Toyota ME16 processor */
-#define EM_ST100 60 /* STMicroelectronic ST100 processor */
-#define EM_TINYJ 61 /* Advanced Logic Corp. Tinyj emb.fam*/
-#define EM_X86_64 62 /* AMD x86-64 architecture */
-#define EM_PDSP 63 /* Sony DSP Processor */
-
-#define EM_FX66 66 /* Siemens FX66 microcontroller */
-#define EM_ST9PLUS 67 /* STMicroelectronics ST9+ 8/16 mc */
-#define EM_ST7 68 /* STmicroelectronics ST7 8 bit mc */
-#define EM_68HC16 69 /* Motorola MC68HC16 microcontroller */
-#define EM_68HC11 70 /* Motorola MC68HC11 microcontroller */
-#define EM_68HC08 71 /* Motorola MC68HC08 microcontroller */
-#define EM_68HC05 72 /* Motorola MC68HC05 microcontroller */
-#define EM_SVX 73 /* Silicon Graphics SVx */
-#define EM_ST19 74 /* STMicroelectronics ST19 8 bit mc */
-#define EM_VAX 75 /* Digital VAX */
-#define EM_CRIS 76 /* Axis Communications 32-bit embedded processor */
-#define EM_JAVELIN 77 /* Infineon Technologies 32-bit embedded processor */
-#define EM_FIREPATH 78 /* Element 14 64-bit DSP Processor */
-#define EM_ZSP 79 /* LSI Logic 16-bit DSP Processor */
-#define EM_MMIX 80 /* Donald Knuth's educational 64-bit processor */
-#define EM_HUANY 81 /* Harvard University machine-independent object files */
-#define EM_PRISM 82 /* SiTera Prism */
-#define EM_AVR 83 /* Atmel AVR 8-bit microcontroller */
-#define EM_FR30 84 /* Fujitsu FR30 */
-#define EM_D10V 85 /* Mitsubishi D10V */
-#define EM_D30V 86 /* Mitsubishi D30V */
-#define EM_V850 87 /* NEC v850 */
-#define EM_M32R 88 /* Mitsubishi M32R */
-#define EM_MN10300 89 /* Matsushita MN10300 */
-#define EM_MN10200 90 /* Matsushita MN10200 */
-#define EM_PJ 91 /* picoJava */
-#define EM_OPENRISC 92 /* OpenRISC 32-bit embedded processor */
-#define EM_ARC_A5 93 /* ARC Cores Tangent-A5 */
-#define EM_XTENSA 94 /* Tensilica Xtensa Architecture */
-#define EM_NUM 95
-
-/* If it is necessary to assign new unofficial EM_* values, please
- pick large random numbers (0x8523, 0xa7f2, etc.) to minimize the
- chances of collision with official or non-GNU unofficial values. */
-
-#define EM_ALPHA 0x9026
-
-/* Legal values for e_version (version). */
-
-#define EV_NONE 0 /* Invalid ELF version */
-#define EV_CURRENT 1 /* Current version */
-#define EV_NUM 2
-
-/* Section header. */
-
-typedef struct
-{
- Elf32_Word sh_name; /* Section name (string tbl index) */
- Elf32_Word sh_type; /* Section type */
- Elf32_Word sh_flags; /* Section flags */
- Elf32_Addr sh_addr; /* Section virtual addr at execution */
- Elf32_Off sh_offset; /* Section file offset */
- Elf32_Word sh_size; /* Section size in bytes */
- Elf32_Word sh_link; /* Link to another section */
- Elf32_Word sh_info; /* Additional section information */
- Elf32_Word sh_addralign; /* Section alignment */
- Elf32_Word sh_entsize; /* Entry size if section holds table */
-} Elf32_Shdr;
-
-typedef struct
-{
- Elf64_Word sh_name; /* Section name (string tbl index) */
- Elf64_Word sh_type; /* Section type */
- Elf64_Xword sh_flags; /* Section flags */
- Elf64_Addr sh_addr; /* Section virtual addr at execution */
- Elf64_Off sh_offset; /* Section file offset */
- Elf64_Xword sh_size; /* Section size in bytes */
- Elf64_Word sh_link; /* Link to another section */
- Elf64_Word sh_info; /* Additional section information */
- Elf64_Xword sh_addralign; /* Section alignment */
- Elf64_Xword sh_entsize; /* Entry size if section holds table */
-} Elf64_Shdr;
-
-/* Special section indices. */
-
-#define SHN_UNDEF 0 /* Undefined section */
-#define SHN_LORESERVE 0xff00 /* Start of reserved indices */
-#define SHN_LOPROC 0xff00 /* Start of processor-specific */
-#define SHN_BEFORE 0xff00 /* Order section before all others
- (Solaris). */
-#define SHN_AFTER 0xff01 /* Order section after all others
- (Solaris). */
-#define SHN_HIPROC 0xff1f /* End of processor-specific */
-#define SHN_LOOS 0xff20 /* Start of OS-specific */
-#define SHN_HIOS 0xff3f /* End of OS-specific */
-#define SHN_ABS 0xfff1 /* Associated symbol is absolute */
-#define SHN_COMMON 0xfff2 /* Associated symbol is common */
-#define SHN_XINDEX 0xffff /* Index is in extra table. */
-#define SHN_HIRESERVE 0xffff /* End of reserved indices */
-
-/* Legal values for sh_type (section type). */
-
-#define SHT_NULL 0 /* Section header table entry unused */
-#define SHT_PROGBITS 1 /* Program data */
-#define SHT_SYMTAB 2 /* Symbol table */
-#define SHT_STRTAB 3 /* String table */
-#define SHT_RELA 4 /* Relocation entries with addends */
-#define SHT_HASH 5 /* Symbol hash table */
-#define SHT_DYNAMIC 6 /* Dynamic linking information */
-#define SHT_NOTE 7 /* Notes */
-#define SHT_NOBITS 8 /* Program space with no data (bss) */
-#define SHT_REL 9 /* Relocation entries, no addends */
-#define SHT_SHLIB 10 /* Reserved */
-#define SHT_DYNSYM 11 /* Dynamic linker symbol table */
-#define SHT_INIT_ARRAY 14 /* Array of constructors */
-#define SHT_FINI_ARRAY 15 /* Array of destructors */
-#define SHT_PREINIT_ARRAY 16 /* Array of pre-constructors */
-#define SHT_GROUP 17 /* Section group */
-#define SHT_SYMTAB_SHNDX 18 /* Extended section indeces */
-#define SHT_NUM 19 /* Number of defined types. */
-#define SHT_LOOS 0x60000000 /* Start OS-specific. */
-#define SHT_GNU_ATTRIBUTES 0x6ffffff5 /* Object attributes. */
-#define SHT_GNU_HASH 0x6ffffff6 /* GNU-style hash table. */
-#define SHT_GNU_LIBLIST 0x6ffffff7 /* Prelink library list */
-#define SHT_CHECKSUM 0x6ffffff8 /* Checksum for DSO content. */
-#define SHT_LOSUNW 0x6ffffffa /* Sun-specific low bound. */
-#define SHT_SUNW_move 0x6ffffffa
-#define SHT_SUNW_COMDAT 0x6ffffffb
-#define SHT_SUNW_syminfo 0x6ffffffc
-#define SHT_GNU_verdef 0x6ffffffd /* Version definition section. */
-#define SHT_GNU_verneed 0x6ffffffe /* Version needs section. */
-#define SHT_GNU_versym 0x6fffffff /* Version symbol table. */
-#define SHT_HISUNW 0x6fffffff /* Sun-specific high bound. */
-#define SHT_HIOS 0x6fffffff /* End OS-specific type */
-#define SHT_LOPROC 0x70000000 /* Start of processor-specific */
-#define SHT_HIPROC 0x7fffffff /* End of processor-specific */
-#define SHT_LOUSER 0x80000000 /* Start of application-specific */
-#define SHT_HIUSER 0x8fffffff /* End of application-specific */
-
-/* Legal values for sh_flags (section flags). */
-
-#define SHF_WRITE (1 << 0) /* Writable */
-#define SHF_ALLOC (1 << 1) /* Occupies memory during execution */
-#define SHF_EXECINSTR (1 << 2) /* Executable */
-#define SHF_MERGE (1 << 4) /* Might be merged */
-#define SHF_STRINGS (1 << 5) /* Contains nul-terminated strings */
-#define SHF_INFO_LINK (1 << 6) /* `sh_info' contains SHT index */
-#define SHF_LINK_ORDER (1 << 7) /* Preserve order after combining */
-#define SHF_OS_NONCONFORMING (1 << 8) /* Non-standard OS specific handling
- required */
-#define SHF_GROUP (1 << 9) /* Section is member of a group. */
-#define SHF_TLS (1 << 10) /* Section hold thread-local data. */
-#define SHF_MASKOS 0x0ff00000 /* OS-specific. */
-#define SHF_MASKPROC 0xf0000000 /* Processor-specific */
-#define SHF_ORDERED (1 << 30) /* Special ordering requirement
- (Solaris). */
-#define SHF_EXCLUDE (1 << 31) /* Section is excluded unless
- referenced or allocated (Solaris).*/
-
-/* Section group handling. */
-#define GRP_COMDAT 0x1 /* Mark group as COMDAT. */
-
-/* Symbol table entry. */
-
-typedef struct
-{
- Elf32_Word st_name; /* Symbol name (string tbl index) */
- Elf32_Addr st_value; /* Symbol value */
- Elf32_Word st_size; /* Symbol size */
- unsigned char st_info; /* Symbol type and binding */
- unsigned char st_other; /* Symbol visibility */
- Elf32_Section st_shndx; /* Section index */
-} Elf32_Sym;
-
-typedef struct
-{
- Elf64_Word st_name; /* Symbol name (string tbl index) */
- unsigned char st_info; /* Symbol type and binding */
- unsigned char st_other; /* Symbol visibility */
- Elf64_Section st_shndx; /* Section index */
- Elf64_Addr st_value; /* Symbol value */
- Elf64_Xword st_size; /* Symbol size */
-} Elf64_Sym;
-
-/* The syminfo section if available contains additional information about
- every dynamic symbol. */
-
-typedef struct
-{
- Elf32_Half si_boundto; /* Direct bindings, symbol bound to */
- Elf32_Half si_flags; /* Per symbol flags */
-} Elf32_Syminfo;
-
-typedef struct
-{
- Elf64_Half si_boundto; /* Direct bindings, symbol bound to */
- Elf64_Half si_flags; /* Per symbol flags */
-} Elf64_Syminfo;
-
-/* Possible values for si_boundto. */
-#define SYMINFO_BT_SELF 0xffff /* Symbol bound to self */
-#define SYMINFO_BT_PARENT 0xfffe /* Symbol bound to parent */
-#define SYMINFO_BT_LOWRESERVE 0xff00 /* Beginning of reserved entries */
-
-/* Possible bitmasks for si_flags. */
-#define SYMINFO_FLG_DIRECT 0x0001 /* Direct bound symbol */
-#define SYMINFO_FLG_PASSTHRU 0x0002 /* Pass-thru symbol for translator */
-#define SYMINFO_FLG_COPY 0x0004 /* Symbol is a copy-reloc */
-#define SYMINFO_FLG_LAZYLOAD 0x0008 /* Symbol bound to object to be lazy
- loaded */
-/* Syminfo version values. */
-#define SYMINFO_NONE 0
-#define SYMINFO_CURRENT 1
-#define SYMINFO_NUM 2
-
-
-/* How to extract and insert information held in the st_info field. */
-
-#define ELF32_ST_BIND(val) (((unsigned char) (val)) >> 4)
-#define ELF32_ST_TYPE(val) ((val) & 0xf)
-#define ELF32_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf))
-
-/* Both Elf32_Sym and Elf64_Sym use the same one-byte st_info field. */
-#define ELF64_ST_BIND(val) ELF32_ST_BIND (val)
-#define ELF64_ST_TYPE(val) ELF32_ST_TYPE (val)
-#define ELF64_ST_INFO(bind, type) ELF32_ST_INFO ((bind), (type))
-
-/* Legal values for ST_BIND subfield of st_info (symbol binding). */
-
-#define STB_LOCAL 0 /* Local symbol */
-#define STB_GLOBAL 1 /* Global symbol */
-#define STB_WEAK 2 /* Weak symbol */
-#define STB_NUM 3 /* Number of defined types. */
-#define STB_LOOS 10 /* Start of OS-specific */
-#define STB_HIOS 12 /* End of OS-specific */
-#define STB_LOPROC 13 /* Start of processor-specific */
-#define STB_HIPROC 15 /* End of processor-specific */
-
-/* Legal values for ST_TYPE subfield of st_info (symbol type). */
-
-#define STT_NOTYPE 0 /* Symbol type is unspecified */
-#define STT_OBJECT 1 /* Symbol is a data object */
-#define STT_FUNC 2 /* Symbol is a code object */
-#define STT_SECTION 3 /* Symbol associated with a section */
-#define STT_FILE 4 /* Symbol's name is file name */
-#define STT_COMMON 5 /* Symbol is a common data object */
-#define STT_TLS 6 /* Symbol is thread-local data object*/
-#define STT_NUM 7 /* Number of defined types. */
-#define STT_LOOS 10 /* Start of OS-specific */
-#define STT_HIOS 12 /* End of OS-specific */
-#define STT_LOPROC 13 /* Start of processor-specific */
-#define STT_HIPROC 15 /* End of processor-specific */
-
-
-/* Symbol table indices are found in the hash buckets and chain table
- of a symbol hash table section. This special index value indicates
- the end of a chain, meaning no further symbols are found in that bucket. */
-
-#define STN_UNDEF 0 /* End of a chain. */
-
-
-/* How to extract and insert information held in the st_other field. */
-
-#define ELF32_ST_VISIBILITY(o) ((o) & 0x03)
-
-/* For ELF64 the definitions are the same. */
-#define ELF64_ST_VISIBILITY(o) ELF32_ST_VISIBILITY (o)
-
-/* Symbol visibility specification encoded in the st_other field. */
-#define STV_DEFAULT 0 /* Default symbol visibility rules */
-#define STV_INTERNAL 1 /* Processor specific hidden class */
-#define STV_HIDDEN 2 /* Sym unavailable in other modules */
-#define STV_PROTECTED 3 /* Not preemptible, not exported */
-
-
-/* Relocation table entry without addend (in section of type SHT_REL). */
-
-typedef struct
-{
- Elf32_Addr r_offset; /* Address */
- Elf32_Word r_info; /* Relocation type and symbol index */
-} Elf32_Rel;
-
-/* I have seen two different definitions of the Elf64_Rel and
- Elf64_Rela structures, so we'll leave them out until Novell (or
- whoever) gets their act together. */
-/* The following, at least, is used on Sparc v9, MIPS, and Alpha. */
-
-typedef struct
-{
- Elf64_Addr r_offset; /* Address */
- Elf64_Xword r_info; /* Relocation type and symbol index */
-} Elf64_Rel;
-
-/* Relocation table entry with addend (in section of type SHT_RELA). */
-
-typedef struct
-{
- Elf32_Addr r_offset; /* Address */
- Elf32_Word r_info; /* Relocation type and symbol index */
- Elf32_Sword r_addend; /* Addend */
-} Elf32_Rela;
-
-typedef struct
-{
- Elf64_Addr r_offset; /* Address */
- Elf64_Xword r_info; /* Relocation type and symbol index */
- Elf64_Sxword r_addend; /* Addend */
-} Elf64_Rela;
-
-/* How to extract and insert information held in the r_info field. */
-
-#define ELF32_R_SYM(val) ((val) >> 8)
-#define ELF32_R_TYPE(val) ((val) & 0xff)
-#define ELF32_R_INFO(sym, type) (((sym) << 8) + ((type) & 0xff))
-
-#define ELF64_R_SYM(i) ((i) >> 32)
-#define ELF64_R_TYPE(i) ((i) & 0xffffffff)
-#define ELF64_R_INFO(sym,type) ((((Elf64_Xword) (sym)) << 32) + (type))
-
-/* Program segment header. */
-
-typedef struct
-{
- Elf32_Word p_type; /* Segment type */
- Elf32_Off p_offset; /* Segment file offset */
- Elf32_Addr p_vaddr; /* Segment virtual address */
- Elf32_Addr p_paddr; /* Segment physical address */
- Elf32_Word p_filesz; /* Segment size in file */
- Elf32_Word p_memsz; /* Segment size in memory */
- Elf32_Word p_flags; /* Segment flags */
- Elf32_Word p_align; /* Segment alignment */
-} Elf32_Phdr;
-
-typedef struct
-{
- Elf64_Word p_type; /* Segment type */
- Elf64_Word p_flags; /* Segment flags */
- Elf64_Off p_offset; /* Segment file offset */
- Elf64_Addr p_vaddr; /* Segment virtual address */
- Elf64_Addr p_paddr; /* Segment physical address */
- Elf64_Xword p_filesz; /* Segment size in file */
- Elf64_Xword p_memsz; /* Segment size in memory */
- Elf64_Xword p_align; /* Segment alignment */
-} Elf64_Phdr;
-
-/* Legal values for p_type (segment type). */
-
-#define PT_NULL 0 /* Program header table entry unused */
-#define PT_LOAD 1 /* Loadable program segment */
-#define PT_DYNAMIC 2 /* Dynamic linking information */
-#define PT_INTERP 3 /* Program interpreter */
-#define PT_NOTE 4 /* Auxiliary information */
-#define PT_SHLIB 5 /* Reserved */
-#define PT_PHDR 6 /* Entry for header table itself */
-#define PT_TLS 7 /* Thread-local storage segment */
-#define PT_NUM 8 /* Number of defined types */
-#define PT_LOOS 0x60000000 /* Start of OS-specific */
-#define PT_GNU_EH_FRAME 0x6474e550 /* GCC .eh_frame_hdr segment */
-#define PT_GNU_STACK 0x6474e551 /* Indicates stack executability */
-#define PT_GNU_RELRO 0x6474e552 /* Read-only after relocation */
-#define PT_LOSUNW 0x6ffffffa
-#define PT_SUNWBSS 0x6ffffffa /* Sun Specific segment */
-#define PT_SUNWSTACK 0x6ffffffb /* Stack segment */
-#define PT_HISUNW 0x6fffffff
-#define PT_HIOS 0x6fffffff /* End of OS-specific */
-#define PT_LOPROC 0x70000000 /* Start of processor-specific */
-#define PT_HIPROC 0x7fffffff /* End of processor-specific */
-
-/* Legal values for p_flags (segment flags). */
-
-#define PF_X (1 << 0) /* Segment is executable */
-#define PF_W (1 << 1) /* Segment is writable */
-#define PF_R (1 << 2) /* Segment is readable */
-#define PF_MASKOS 0x0ff00000 /* OS-specific */
-#define PF_MASKPROC 0xf0000000 /* Processor-specific */
-
-/* Legal values for note segment descriptor types for core files. */
-
-#define NT_PRSTATUS 1 /* Contains copy of prstatus struct */
-#define NT_FPREGSET 2 /* Contains copy of fpregset struct */
-#define NT_PRPSINFO 3 /* Contains copy of prpsinfo struct */
-#define NT_PRXREG 4 /* Contains copy of prxregset struct */
-#define NT_TASKSTRUCT 4 /* Contains copy of task structure */
-#define NT_PLATFORM 5 /* String from sysinfo(SI_PLATFORM) */
-#define NT_AUXV 6 /* Contains copy of auxv array */
-#define NT_GWINDOWS 7 /* Contains copy of gwindows struct */
-#define NT_ASRS 8 /* Contains copy of asrset struct */
-#define NT_PSTATUS 10 /* Contains copy of pstatus struct */
-#define NT_PSINFO 13 /* Contains copy of psinfo struct */
-#define NT_PRCRED 14 /* Contains copy of prcred struct */
-#define NT_UTSNAME 15 /* Contains copy of utsname struct */
-#define NT_LWPSTATUS 16 /* Contains copy of lwpstatus struct */
-#define NT_LWPSINFO 17 /* Contains copy of lwpinfo struct */
-#define NT_PRFPXREG 20 /* Contains copy of fprxregset struct */
-#define NT_PRXFPREG 0x46e62b7f /* Contains copy of user_fxsr_struct */
-#define NT_PPC_VMX 0x100 /* PowerPC Altivec/VMX registers */
-#define NT_PPC_SPE 0x101 /* PowerPC SPE/EVR registers */
-#define NT_386_TLS 0x200 /* i386 TLS slots (struct user_desc) */
-
-/* Legal values for the note segment descriptor types for object files. */
-
-#define NT_VERSION 1 /* Contains a version string. */
-
-
-/* Dynamic section entry. */
-
-typedef struct
-{
- Elf32_Sword d_tag; /* Dynamic entry type */
- union
- {
- Elf32_Word d_val; /* Integer value */
- Elf32_Addr d_ptr; /* Address value */
- } d_un;
-} Elf32_Dyn;
-
-typedef struct
-{
- Elf64_Sxword d_tag; /* Dynamic entry type */
- union
- {
- Elf64_Xword d_val; /* Integer value */
- Elf64_Addr d_ptr; /* Address value */
- } d_un;
-} Elf64_Dyn;
-
-/* Legal values for d_tag (dynamic entry type). */
-
-#define DT_NULL 0 /* Marks end of dynamic section */
-#define DT_NEEDED 1 /* Name of needed library */
-#define DT_PLTRELSZ 2 /* Size in bytes of PLT relocs */
-#define DT_PLTGOT 3 /* Processor defined value */
-#define DT_HASH 4 /* Address of symbol hash table */
-#define DT_STRTAB 5 /* Address of string table */
-#define DT_SYMTAB 6 /* Address of symbol table */
-#define DT_RELA 7 /* Address of Rela relocs */
-#define DT_RELASZ 8 /* Total size of Rela relocs */
-#define DT_RELAENT 9 /* Size of one Rela reloc */
-#define DT_STRSZ 10 /* Size of string table */
-#define DT_SYMENT 11 /* Size of one symbol table entry */
-#define DT_INIT 12 /* Address of init function */
-#define DT_FINI 13 /* Address of termination function */
-#define DT_SONAME 14 /* Name of shared object */
-#define DT_RPATH 15 /* Library search path (deprecated) */
-#define DT_SYMBOLIC 16 /* Start symbol search here */
-#define DT_REL 17 /* Address of Rel relocs */
-#define DT_RELSZ 18 /* Total size of Rel relocs */
-#define DT_RELENT 19 /* Size of one Rel reloc */
-#define DT_PLTREL 20 /* Type of reloc in PLT */
-#define DT_DEBUG 21 /* For debugging; unspecified */
-#define DT_TEXTREL 22 /* Reloc might modify .text */
-#define DT_JMPREL 23 /* Address of PLT relocs */
-#define DT_BIND_NOW 24 /* Process relocations of object */
-#define DT_INIT_ARRAY 25 /* Array with addresses of init fct */
-#define DT_FINI_ARRAY 26 /* Array with addresses of fini fct */
-#define DT_INIT_ARRAYSZ 27 /* Size in bytes of DT_INIT_ARRAY */
-#define DT_FINI_ARRAYSZ 28 /* Size in bytes of DT_FINI_ARRAY */
-#define DT_RUNPATH 29 /* Library search path */
-#define DT_FLAGS 30 /* Flags for the object being loaded */
-#define DT_ENCODING 32 /* Start of encoded range */
-#define DT_PREINIT_ARRAY 32 /* Array with addresses of preinit fct*/
-#define DT_PREINIT_ARRAYSZ 33 /* size in bytes of DT_PREINIT_ARRAY */
-#define DT_NUM 34 /* Number used */
-#define DT_LOOS 0x6000000d /* Start of OS-specific */
-#define DT_HIOS 0x6ffff000 /* End of OS-specific */
-#define DT_LOPROC 0x70000000 /* Start of processor-specific */
-#define DT_HIPROC 0x7fffffff /* End of processor-specific */
-#define DT_PROCNUM DT_MIPS_NUM /* Most used by any processor */
-
-/* DT_* entries which fall between DT_VALRNGHI & DT_VALRNGLO use the
- Dyn.d_un.d_val field of the Elf*_Dyn structure. This follows Sun's
- approach. */
-#define DT_VALRNGLO 0x6ffffd00
-#define DT_GNU_PRELINKED 0x6ffffdf5 /* Prelinking timestamp */
-#define DT_GNU_CONFLICTSZ 0x6ffffdf6 /* Size of conflict section */
-#define DT_GNU_LIBLISTSZ 0x6ffffdf7 /* Size of library list */
-#define DT_CHECKSUM 0x6ffffdf8
-#define DT_PLTPADSZ 0x6ffffdf9
-#define DT_MOVEENT 0x6ffffdfa
-#define DT_MOVESZ 0x6ffffdfb
-#define DT_FEATURE_1 0x6ffffdfc /* Feature selection (DTF_*). */
-#define DT_POSFLAG_1 0x6ffffdfd /* Flags for DT_* entries, effecting
- the following DT_* entry. */
-#define DT_SYMINSZ 0x6ffffdfe /* Size of syminfo table (in bytes) */
-#define DT_SYMINENT 0x6ffffdff /* Entry size of syminfo */
-#define DT_VALRNGHI 0x6ffffdff
-#define DT_VALTAGIDX(tag) (DT_VALRNGHI - (tag)) /* Reverse order! */
-#define DT_VALNUM 12
-
-/* DT_* entries which fall between DT_ADDRRNGHI & DT_ADDRRNGLO use the
- Dyn.d_un.d_ptr field of the Elf*_Dyn structure.
-
- If any adjustment is made to the ELF object after it has been
- built these entries will need to be adjusted. */
-#define DT_ADDRRNGLO 0x6ffffe00
-#define DT_GNU_HASH 0x6ffffef5 /* GNU-style hash table. */
-#define DT_TLSDESC_PLT 0x6ffffef6
-#define DT_TLSDESC_GOT 0x6ffffef7
-#define DT_GNU_CONFLICT 0x6ffffef8 /* Start of conflict section */
-#define DT_GNU_LIBLIST 0x6ffffef9 /* Library list */
-#define DT_CONFIG 0x6ffffefa /* Configuration information. */
-#define DT_DEPAUDIT 0x6ffffefb /* Dependency auditing. */
-#define DT_AUDIT 0x6ffffefc /* Object auditing. */
-#define DT_PLTPAD 0x6ffffefd /* PLT padding. */
-#define DT_MOVETAB 0x6ffffefe /* Move table. */
-#define DT_SYMINFO 0x6ffffeff /* Syminfo table. */
-#define DT_ADDRRNGHI 0x6ffffeff
-#define DT_ADDRTAGIDX(tag) (DT_ADDRRNGHI - (tag)) /* Reverse order! */
-#define DT_ADDRNUM 11
-
-/* The versioning entry types. The next are defined as part of the
- GNU extension. */
-#define DT_VERSYM 0x6ffffff0
-
-#define DT_RELACOUNT 0x6ffffff9
-#define DT_RELCOUNT 0x6ffffffa
-
-/* These were chosen by Sun. */
-#define DT_FLAGS_1 0x6ffffffb /* State flags, see DF_1_* below. */
-#define DT_VERDEF 0x6ffffffc /* Address of version definition
- table */
-#define DT_VERDEFNUM 0x6ffffffd /* Number of version definitions */
-#define DT_VERNEED 0x6ffffffe /* Address of table with needed
- versions */
-#define DT_VERNEEDNUM 0x6fffffff /* Number of needed versions */
-#define DT_VERSIONTAGIDX(tag) (DT_VERNEEDNUM - (tag)) /* Reverse order! */
-#define DT_VERSIONTAGNUM 16
-
-/* Sun added these machine-independent extensions in the "processor-specific"
- range. Be compatible. */
-#define DT_AUXILIARY 0x7ffffffd /* Shared object to load before self */
-#define DT_FILTER 0x7fffffff /* Shared object to get values from */
-#define DT_EXTRATAGIDX(tag) ((Elf32_Word)-((Elf32_Sword) (tag) <<1>>1)-1)
-#define DT_EXTRANUM 3
-
-/* Values of `d_un.d_val' in the DT_FLAGS entry. */
-#define DF_ORIGIN 0x00000001 /* Object may use DF_ORIGIN */
-#define DF_SYMBOLIC 0x00000002 /* Symbol resolutions starts here */
-#define DF_TEXTREL 0x00000004 /* Object contains text relocations */
-#define DF_BIND_NOW 0x00000008 /* No lazy binding for this object */
-#define DF_STATIC_TLS 0x00000010 /* Module uses the static TLS model */
-
-/* State flags selectable in the `d_un.d_val' element of the DT_FLAGS_1
- entry in the dynamic section. */
-#define DF_1_NOW 0x00000001 /* Set RTLD_NOW for this object. */
-#define DF_1_GLOBAL 0x00000002 /* Set RTLD_GLOBAL for this object. */
-#define DF_1_GROUP 0x00000004 /* Set RTLD_GROUP for this object. */
-#define DF_1_NODELETE 0x00000008 /* Set RTLD_NODELETE for this object.*/
-#define DF_1_LOADFLTR 0x00000010 /* Trigger filtee loading at runtime.*/
-#define DF_1_INITFIRST 0x00000020 /* Set RTLD_INITFIRST for this object*/
-#define DF_1_NOOPEN 0x00000040 /* Set RTLD_NOOPEN for this object. */
-#define DF_1_ORIGIN 0x00000080 /* $ORIGIN must be handled. */
-#define DF_1_DIRECT 0x00000100 /* Direct binding enabled. */
-#define DF_1_TRANS 0x00000200
-#define DF_1_INTERPOSE 0x00000400 /* Object is used to interpose. */
-#define DF_1_NODEFLIB 0x00000800 /* Ignore default lib search path. */
-#define DF_1_NODUMP 0x00001000 /* Object can't be dldump'ed. */
-#define DF_1_CONFALT 0x00002000 /* Configuration alternative created.*/
-#define DF_1_ENDFILTEE 0x00004000 /* Filtee terminates filters search. */
-#define DF_1_DISPRELDNE 0x00008000 /* Disp reloc applied at build time. */
-#define DF_1_DISPRELPND 0x00010000 /* Disp reloc applied at run-time. */
-
-/* Flags for the feature selection in DT_FEATURE_1. */
-#define DTF_1_PARINIT 0x00000001
-#define DTF_1_CONFEXP 0x00000002
-
-/* Flags in the DT_POSFLAG_1 entry effecting only the next DT_* entry. */
-#define DF_P1_LAZYLOAD 0x00000001 /* Lazyload following object. */
-#define DF_P1_GROUPPERM 0x00000002 /* Symbols from next object are not
- generally available. */
-
-/* Version definition sections. */
-
-typedef struct
-{
- Elf32_Half vd_version; /* Version revision */
- Elf32_Half vd_flags; /* Version information */
- Elf32_Half vd_ndx; /* Version Index */
- Elf32_Half vd_cnt; /* Number of associated aux entries */
- Elf32_Word vd_hash; /* Version name hash value */
- Elf32_Word vd_aux; /* Offset in bytes to verdaux array */
- Elf32_Word vd_next; /* Offset in bytes to next verdef
- entry */
-} Elf32_Verdef;
-
-typedef struct
-{
- Elf64_Half vd_version; /* Version revision */
- Elf64_Half vd_flags; /* Version information */
- Elf64_Half vd_ndx; /* Version Index */
- Elf64_Half vd_cnt; /* Number of associated aux entries */
- Elf64_Word vd_hash; /* Version name hash value */
- Elf64_Word vd_aux; /* Offset in bytes to verdaux array */
- Elf64_Word vd_next; /* Offset in bytes to next verdef
- entry */
-} Elf64_Verdef;
-
-
-/* Legal values for vd_version (version revision). */
-#define VER_DEF_NONE 0 /* No version */
-#define VER_DEF_CURRENT 1 /* Current version */
-#define VER_DEF_NUM 2 /* Given version number */
-
-/* Legal values for vd_flags (version information flags). */
-#define VER_FLG_BASE 0x1 /* Version definition of file itself */
-#define VER_FLG_WEAK 0x2 /* Weak version identifier */
-
-/* Versym symbol index values. */
-#define VER_NDX_LOCAL 0 /* Symbol is local. */
-#define VER_NDX_GLOBAL 1 /* Symbol is global. */
-#define VER_NDX_LORESERVE 0xff00 /* Beginning of reserved entries. */
-#define VER_NDX_ELIMINATE 0xff01 /* Symbol is to be eliminated. */
-
-/* Auxialiary version information. */
-
-typedef struct
-{
- Elf32_Word vda_name; /* Version or dependency names */
- Elf32_Word vda_next; /* Offset in bytes to next verdaux
- entry */
-} Elf32_Verdaux;
-
-typedef struct
-{
- Elf64_Word vda_name; /* Version or dependency names */
- Elf64_Word vda_next; /* Offset in bytes to next verdaux
- entry */
-} Elf64_Verdaux;
-
-
-/* Version dependency section. */
-
-typedef struct
-{
- Elf32_Half vn_version; /* Version of structure */
- Elf32_Half vn_cnt; /* Number of associated aux entries */
- Elf32_Word vn_file; /* Offset of filename for this
- dependency */
- Elf32_Word vn_aux; /* Offset in bytes to vernaux array */
- Elf32_Word vn_next; /* Offset in bytes to next verneed
- entry */
-} Elf32_Verneed;
-
-typedef struct
-{
- Elf64_Half vn_version; /* Version of structure */
- Elf64_Half vn_cnt; /* Number of associated aux entries */
- Elf64_Word vn_file; /* Offset of filename for this
- dependency */
- Elf64_Word vn_aux; /* Offset in bytes to vernaux array */
- Elf64_Word vn_next; /* Offset in bytes to next verneed
- entry */
-} Elf64_Verneed;
-
-
-/* Legal values for vn_version (version revision). */
-#define VER_NEED_NONE 0 /* No version */
-#define VER_NEED_CURRENT 1 /* Current version */
-#define VER_NEED_NUM 2 /* Given version number */
-
-/* Auxiliary needed version information. */
-
-typedef struct
-{
- Elf32_Word vna_hash; /* Hash value of dependency name */
- Elf32_Half vna_flags; /* Dependency specific information */
- Elf32_Half vna_other; /* Unused */
- Elf32_Word vna_name; /* Dependency name string offset */
- Elf32_Word vna_next; /* Offset in bytes to next vernaux
- entry */
-} Elf32_Vernaux;
-
-typedef struct
-{
- Elf64_Word vna_hash; /* Hash value of dependency name */
- Elf64_Half vna_flags; /* Dependency specific information */
- Elf64_Half vna_other; /* Unused */
- Elf64_Word vna_name; /* Dependency name string offset */
- Elf64_Word vna_next; /* Offset in bytes to next vernaux
- entry */
-} Elf64_Vernaux;
-
-
-/* Legal values for vna_flags. */
-#define VER_FLG_WEAK 0x2 /* Weak version identifier */
-
-
-/* Auxiliary vector. */
-
-/* This vector is normally only used by the program interpreter. The
- usual definition in an ABI supplement uses the name auxv_t. The
- vector is not usually defined in a standard <elf.h> file, but it
- can't hurt. We rename it to avoid conflicts. The sizes of these
- types are an arrangement between the exec server and the program
- interpreter, so we don't fully specify them here. */
-
-typedef struct
-{
- uint32_t a_type; /* Entry type */
- union
- {
- uint32_t a_val; /* Integer value */
- /* We use to have pointer elements added here. We cannot do that,
- though, since it does not work when using 32-bit definitions
- on 64-bit platforms and vice versa. */
- } a_un;
-} Elf32_auxv_t;
-
-typedef struct
-{
- uint64_t a_type; /* Entry type */
- union
- {
- uint64_t a_val; /* Integer value */
- /* We use to have pointer elements added here. We cannot do that,
- though, since it does not work when using 32-bit definitions
- on 64-bit platforms and vice versa. */
- } a_un;
-} Elf64_auxv_t;
-
-/* Legal values for a_type (entry type). */
-
-#define AT_NULL 0 /* End of vector */
-#define AT_IGNORE 1 /* Entry should be ignored */
-#define AT_EXECFD 2 /* File descriptor of program */
-#define AT_PHDR 3 /* Program headers for program */
-#define AT_PHENT 4 /* Size of program header entry */
-#define AT_PHNUM 5 /* Number of program headers */
-#define AT_PAGESZ 6 /* System page size */
-#define AT_BASE 7 /* Base address of interpreter */
-#define AT_FLAGS 8 /* Flags */
-#define AT_ENTRY 9 /* Entry point of program */
-#define AT_NOTELF 10 /* Program is not ELF */
-#define AT_UID 11 /* Real uid */
-#define AT_EUID 12 /* Effective uid */
-#define AT_GID 13 /* Real gid */
-#define AT_EGID 14 /* Effective gid */
-#define AT_CLKTCK 17 /* Frequency of times() */
-
-/* Some more special a_type values describing the hardware. */
-#define AT_PLATFORM 15 /* String identifying platform. */
-#define AT_HWCAP 16 /* Machine dependent hints about
- processor capabilities. */
-
-/* This entry gives some information about the FPU initialization
- performed by the kernel. */
-#define AT_FPUCW 18 /* Used FPU control word. */
-
-/* Cache block sizes. */
-#define AT_DCACHEBSIZE 19 /* Data cache block size. */
-#define AT_ICACHEBSIZE 20 /* Instruction cache block size. */
-#define AT_UCACHEBSIZE 21 /* Unified cache block size. */
-
-/* A special ignored value for PPC, used by the kernel to control the
- interpretation of the AUXV. Must be > 16. */
-#define AT_IGNOREPPC 22 /* Entry should be ignored. */
-
-#define AT_SECURE 23 /* Boolean, was exec setuid-like? */
-
-#define AT_EXECFN 31 /* Filename of executable. */
-
-/* Pointer to the global system page used for system calls and other
- nice things. */
-#define AT_SYSINFO 32
-#define AT_SYSINFO_EHDR 33
-
-/* Shapes of the caches. Bits 0-3 contains associativity; bits 4-7 contains
- log2 of line size; mask those to get cache size. */
-#define AT_L1I_CACHESHAPE 34
-#define AT_L1D_CACHESHAPE 35
-#define AT_L2_CACHESHAPE 36
-#define AT_L3_CACHESHAPE 37
-
-/* Note section contents. Each entry in the note section begins with
- a header of a fixed form. */
-
-typedef struct
-{
- Elf32_Word n_namesz; /* Length of the note's name. */
- Elf32_Word n_descsz; /* Length of the note's descriptor. */
- Elf32_Word n_type; /* Type of the note. */
-} Elf32_Nhdr;
-
-typedef struct
-{
- Elf64_Word n_namesz; /* Length of the note's name. */
- Elf64_Word n_descsz; /* Length of the note's descriptor. */
- Elf64_Word n_type; /* Type of the note. */
-} Elf64_Nhdr;
-
-/* Known names of notes. */
-
-/* Solaris entries in the note section have this name. */
-#define ELF_NOTE_SOLARIS "SUNW Solaris"
-
-/* Note entries for GNU systems have this name. */
-#define ELF_NOTE_GNU "GNU"
-
-
-/* Defined types of notes for Solaris. */
-
-/* Value of descriptor (one word) is desired pagesize for the binary. */
-#define ELF_NOTE_PAGESIZE_HINT 1
-
-
-/* Defined note types for GNU systems. */
-
-/* ABI information. The descriptor consists of words:
- word 0: OS descriptor
- word 1: major version of the ABI
- word 2: minor version of the ABI
- word 3: subminor version of the ABI
-*/
-#define NT_GNU_ABI_TAG 1
-#define ELF_NOTE_ABI NT_GNU_ABI_TAG /* Old name. */
-
-/* Known OSes. These values can appear in word 0 of an
- NT_GNU_ABI_TAG note section entry. */
-#define ELF_NOTE_OS_LINUX 0
-#define ELF_NOTE_OS_GNU 1
-#define ELF_NOTE_OS_SOLARIS2 2
-#define ELF_NOTE_OS_FREEBSD 3
-
-/* Synthetic hwcap information. The descriptor begins with two words:
- word 0: number of entries
- word 1: bitmask of enabled entries
- Then follow variable-length entries, one byte followed by a
- '\0'-terminated hwcap name string. The byte gives the bit
- number to test if enabled, (1U << bit) & bitmask. */
-#define NT_GNU_HWCAP 2
-
-/* Build ID bits as generated by ld --build-id.
- The descriptor consists of any nonzero number of bytes. */
-#define NT_GNU_BUILD_ID 3
-
-
-/* Move records. */
-typedef struct
-{
- Elf32_Xword m_value; /* Symbol value. */
- Elf32_Word m_info; /* Size and index. */
- Elf32_Word m_poffset; /* Symbol offset. */
- Elf32_Half m_repeat; /* Repeat count. */
- Elf32_Half m_stride; /* Stride info. */
-} Elf32_Move;
-
-typedef struct
-{
- Elf64_Xword m_value; /* Symbol value. */
- Elf64_Xword m_info; /* Size and index. */
- Elf64_Xword m_poffset; /* Symbol offset. */
- Elf64_Half m_repeat; /* Repeat count. */
- Elf64_Half m_stride; /* Stride info. */
-} Elf64_Move;
-
-/* Macro to construct move records. */
-#define ELF32_M_SYM(info) ((info) >> 8)
-#define ELF32_M_SIZE(info) ((unsigned char) (info))
-#define ELF32_M_INFO(sym, size) (((sym) << 8) + (unsigned char) (size))
-
-#define ELF64_M_SYM(info) ELF32_M_SYM (info)
-#define ELF64_M_SIZE(info) ELF32_M_SIZE (info)
-#define ELF64_M_INFO(sym, size) ELF32_M_INFO (sym, size)
-
-
-/* Motorola 68k specific definitions. */
-
-/* Values for Elf32_Ehdr.e_flags. */
-#define EF_CPU32 0x00810000
-
-/* m68k relocs. */
-
-#define R_68K_NONE 0 /* No reloc */
-#define R_68K_32 1 /* Direct 32 bit */
-#define R_68K_16 2 /* Direct 16 bit */
-#define R_68K_8 3 /* Direct 8 bit */
-#define R_68K_PC32 4 /* PC relative 32 bit */
-#define R_68K_PC16 5 /* PC relative 16 bit */
-#define R_68K_PC8 6 /* PC relative 8 bit */
-#define R_68K_GOT32 7 /* 32 bit PC relative GOT entry */
-#define R_68K_GOT16 8 /* 16 bit PC relative GOT entry */
-#define R_68K_GOT8 9 /* 8 bit PC relative GOT entry */
-#define R_68K_GOT32O 10 /* 32 bit GOT offset */
-#define R_68K_GOT16O 11 /* 16 bit GOT offset */
-#define R_68K_GOT8O 12 /* 8 bit GOT offset */
-#define R_68K_PLT32 13 /* 32 bit PC relative PLT address */
-#define R_68K_PLT16 14 /* 16 bit PC relative PLT address */
-#define R_68K_PLT8 15 /* 8 bit PC relative PLT address */
-#define R_68K_PLT32O 16 /* 32 bit PLT offset */
-#define R_68K_PLT16O 17 /* 16 bit PLT offset */
-#define R_68K_PLT8O 18 /* 8 bit PLT offset */
-#define R_68K_COPY 19 /* Copy symbol at runtime */
-#define R_68K_GLOB_DAT 20 /* Create GOT entry */
-#define R_68K_JMP_SLOT 21 /* Create PLT entry */
-#define R_68K_RELATIVE 22 /* Adjust by program base */
-/* Keep this the last entry. */
-#define R_68K_NUM 23
-
-/* Intel 80386 specific definitions. */
-
-/* i386 relocs. */
-
-#define R_386_NONE 0 /* No reloc */
-#define R_386_32 1 /* Direct 32 bit */
-#define R_386_PC32 2 /* PC relative 32 bit */
-#define R_386_GOT32 3 /* 32 bit GOT entry */
-#define R_386_PLT32 4 /* 32 bit PLT address */
-#define R_386_COPY 5 /* Copy symbol at runtime */
-#define R_386_GLOB_DAT 6 /* Create GOT entry */
-#define R_386_JMP_SLOT 7 /* Create PLT entry */
-#define R_386_RELATIVE 8 /* Adjust by program base */
-#define R_386_GOTOFF 9 /* 32 bit offset to GOT */
-#define R_386_GOTPC 10 /* 32 bit PC relative offset to GOT */
-#define R_386_32PLT 11
-#define R_386_TLS_TPOFF 14 /* Offset in static TLS block */
-#define R_386_TLS_IE 15 /* Address of GOT entry for static TLS
- block offset */
-#define R_386_TLS_GOTIE 16 /* GOT entry for static TLS block
- offset */
-#define R_386_TLS_LE 17 /* Offset relative to static TLS
- block */
-#define R_386_TLS_GD 18 /* Direct 32 bit for GNU version of
- general dynamic thread local data */
-#define R_386_TLS_LDM 19 /* Direct 32 bit for GNU version of
- local dynamic thread local data
- in LE code */
-#define R_386_16 20
-#define R_386_PC16 21
-#define R_386_8 22
-#define R_386_PC8 23
-#define R_386_TLS_GD_32 24 /* Direct 32 bit for general dynamic
- thread local data */
-#define R_386_TLS_GD_PUSH 25 /* Tag for pushl in GD TLS code */
-#define R_386_TLS_GD_CALL 26 /* Relocation for call to
- __tls_get_addr() */
-#define R_386_TLS_GD_POP 27 /* Tag for popl in GD TLS code */
-#define R_386_TLS_LDM_32 28 /* Direct 32 bit for local dynamic
- thread local data in LE code */
-#define R_386_TLS_LDM_PUSH 29 /* Tag for pushl in LDM TLS code */
-#define R_386_TLS_LDM_CALL 30 /* Relocation for call to
- __tls_get_addr() in LDM code */
-#define R_386_TLS_LDM_POP 31 /* Tag for popl in LDM TLS code */
-#define R_386_TLS_LDO_32 32 /* Offset relative to TLS block */
-#define R_386_TLS_IE_32 33 /* GOT entry for negated static TLS
- block offset */
-#define R_386_TLS_LE_32 34 /* Negated offset relative to static
- TLS block */
-#define R_386_TLS_DTPMOD32 35 /* ID of module containing symbol */
-#define R_386_TLS_DTPOFF32 36 /* Offset in TLS block */
-#define R_386_TLS_TPOFF32 37 /* Negated offset in static TLS block */
-/* 38? */
-#define R_386_TLS_GOTDESC 39 /* GOT offset for TLS descriptor. */
-#define R_386_TLS_DESC_CALL 40 /* Marker of call through TLS
- descriptor for
- relaxation. */
-#define R_386_TLS_DESC 41 /* TLS descriptor containing
- pointer to code and to
- argument, returning the TLS
- offset for the symbol. */
-/* Keep this the last entry. */
-#define R_386_NUM 42
-
-/* SUN SPARC specific definitions. */
-
-/* Legal values for ST_TYPE subfield of st_info (symbol type). */
-
-#define STT_SPARC_REGISTER 13 /* Global register reserved to app. */
-
-/* Values for Elf64_Ehdr.e_flags. */
-
-#define EF_SPARCV9_MM 3
-#define EF_SPARCV9_TSO 0
-#define EF_SPARCV9_PSO 1
-#define EF_SPARCV9_RMO 2
-#define EF_SPARC_LEDATA 0x800000 /* little endian data */
-#define EF_SPARC_EXT_MASK 0xFFFF00
-#define EF_SPARC_32PLUS 0x000100 /* generic V8+ features */
-#define EF_SPARC_SUN_US1 0x000200 /* Sun UltraSPARC1 extensions */
-#define EF_SPARC_HAL_R1 0x000400 /* HAL R1 extensions */
-#define EF_SPARC_SUN_US3 0x000800 /* Sun UltraSPARCIII extensions */
-
-/* SPARC relocs. */
-
-#define R_SPARC_NONE 0 /* No reloc */
-#define R_SPARC_8 1 /* Direct 8 bit */
-#define R_SPARC_16 2 /* Direct 16 bit */
-#define R_SPARC_32 3 /* Direct 32 bit */
-#define R_SPARC_DISP8 4 /* PC relative 8 bit */
-#define R_SPARC_DISP16 5 /* PC relative 16 bit */
-#define R_SPARC_DISP32 6 /* PC relative 32 bit */
-#define R_SPARC_WDISP30 7 /* PC relative 30 bit shifted */
-#define R_SPARC_WDISP22 8 /* PC relative 22 bit shifted */
-#define R_SPARC_HI22 9 /* High 22 bit */
-#define R_SPARC_22 10 /* Direct 22 bit */
-#define R_SPARC_13 11 /* Direct 13 bit */
-#define R_SPARC_LO10 12 /* Truncated 10 bit */
-#define R_SPARC_GOT10 13 /* Truncated 10 bit GOT entry */
-#define R_SPARC_GOT13 14 /* 13 bit GOT entry */
-#define R_SPARC_GOT22 15 /* 22 bit GOT entry shifted */
-#define R_SPARC_PC10 16 /* PC relative 10 bit truncated */
-#define R_SPARC_PC22 17 /* PC relative 22 bit shifted */
-#define R_SPARC_WPLT30 18 /* 30 bit PC relative PLT address */
-#define R_SPARC_COPY 19 /* Copy symbol at runtime */
-#define R_SPARC_GLOB_DAT 20 /* Create GOT entry */
-#define R_SPARC_JMP_SLOT 21 /* Create PLT entry */
-#define R_SPARC_RELATIVE 22 /* Adjust by program base */
-#define R_SPARC_UA32 23 /* Direct 32 bit unaligned */
-
-/* Additional Sparc64 relocs. */
-
-#define R_SPARC_PLT32 24 /* Direct 32 bit ref to PLT entry */
-#define R_SPARC_HIPLT22 25 /* High 22 bit PLT entry */
-#define R_SPARC_LOPLT10 26 /* Truncated 10 bit PLT entry */
-#define R_SPARC_PCPLT32 27 /* PC rel 32 bit ref to PLT entry */
-#define R_SPARC_PCPLT22 28 /* PC rel high 22 bit PLT entry */
-#define R_SPARC_PCPLT10 29 /* PC rel trunc 10 bit PLT entry */
-#define R_SPARC_10 30 /* Direct 10 bit */
-#define R_SPARC_11 31 /* Direct 11 bit */
-#define R_SPARC_64 32 /* Direct 64 bit */
-#define R_SPARC_OLO10 33 /* 10bit with secondary 13bit addend */
-#define R_SPARC_HH22 34 /* Top 22 bits of direct 64 bit */
-#define R_SPARC_HM10 35 /* High middle 10 bits of ... */
-#define R_SPARC_LM22 36 /* Low middle 22 bits of ... */
-#define R_SPARC_PC_HH22 37 /* Top 22 bits of pc rel 64 bit */
-#define R_SPARC_PC_HM10 38 /* High middle 10 bit of ... */
-#define R_SPARC_PC_LM22 39 /* Low miggle 22 bits of ... */
-#define R_SPARC_WDISP16 40 /* PC relative 16 bit shifted */
-#define R_SPARC_WDISP19 41 /* PC relative 19 bit shifted */
-#define R_SPARC_7 43 /* Direct 7 bit */
-#define R_SPARC_5 44 /* Direct 5 bit */
-#define R_SPARC_6 45 /* Direct 6 bit */
-#define R_SPARC_DISP64 46 /* PC relative 64 bit */
-#define R_SPARC_PLT64 47 /* Direct 64 bit ref to PLT entry */
-#define R_SPARC_HIX22 48 /* High 22 bit complemented */
-#define R_SPARC_LOX10 49 /* Truncated 11 bit complemented */
-#define R_SPARC_H44 50 /* Direct high 12 of 44 bit */
-#define R_SPARC_M44 51 /* Direct mid 22 of 44 bit */
-#define R_SPARC_L44 52 /* Direct low 10 of 44 bit */
-#define R_SPARC_REGISTER 53 /* Global register usage */
-#define R_SPARC_UA64 54 /* Direct 64 bit unaligned */
-#define R_SPARC_UA16 55 /* Direct 16 bit unaligned */
-#define R_SPARC_TLS_GD_HI22 56
-#define R_SPARC_TLS_GD_LO10 57
-#define R_SPARC_TLS_GD_ADD 58
-#define R_SPARC_TLS_GD_CALL 59
-#define R_SPARC_TLS_LDM_HI22 60
-#define R_SPARC_TLS_LDM_LO10 61
-#define R_SPARC_TLS_LDM_ADD 62
-#define R_SPARC_TLS_LDM_CALL 63
-#define R_SPARC_TLS_LDO_HIX22 64
-#define R_SPARC_TLS_LDO_LOX10 65
-#define R_SPARC_TLS_LDO_ADD 66
-#define R_SPARC_TLS_IE_HI22 67
-#define R_SPARC_TLS_IE_LO10 68
-#define R_SPARC_TLS_IE_LD 69
-#define R_SPARC_TLS_IE_LDX 70
-#define R_SPARC_TLS_IE_ADD 71
-#define R_SPARC_TLS_LE_HIX22 72
-#define R_SPARC_TLS_LE_LOX10 73
-#define R_SPARC_TLS_DTPMOD32 74
-#define R_SPARC_TLS_DTPMOD64 75
-#define R_SPARC_TLS_DTPOFF32 76
-#define R_SPARC_TLS_DTPOFF64 77
-#define R_SPARC_TLS_TPOFF32 78
-#define R_SPARC_TLS_TPOFF64 79
-/* Keep this the last entry. */
-#define R_SPARC_NUM 80
-
-/* For Sparc64, legal values for d_tag of Elf64_Dyn. */
-
-#define DT_SPARC_REGISTER 0x70000001
-#define DT_SPARC_NUM 2
-
-/* Bits present in AT_HWCAP on SPARC. */
-
-#define HWCAP_SPARC_FLUSH 1 /* The CPU supports flush insn. */
-#define HWCAP_SPARC_STBAR 2
-#define HWCAP_SPARC_SWAP 4
-#define HWCAP_SPARC_MULDIV 8
-#define HWCAP_SPARC_V9 16 /* The CPU is v9, so v8plus is ok. */
-#define HWCAP_SPARC_ULTRA3 32
-#define HWCAP_SPARC_BLKINIT 64 /* Sun4v with block-init/load-twin. */
-#define HWCAP_SPARC_N2 128
-
-/* MIPS R3000 specific definitions. */
-
-/* Legal values for e_flags field of Elf32_Ehdr. */
-
-#define EF_MIPS_NOREORDER 1 /* A .noreorder directive was used */
-#define EF_MIPS_PIC 2 /* Contains PIC code */
-#define EF_MIPS_CPIC 4 /* Uses PIC calling sequence */
-#define EF_MIPS_XGOT 8
-#define EF_MIPS_64BIT_WHIRL 16
-#define EF_MIPS_ABI2 32
-#define EF_MIPS_ABI_ON32 64
-#define EF_MIPS_ARCH 0xf0000000 /* MIPS architecture level */
-
-/* Legal values for MIPS architecture level. */
-
-#define EF_MIPS_ARCH_1 0x00000000 /* -mips1 code. */
-#define EF_MIPS_ARCH_2 0x10000000 /* -mips2 code. */
-#define EF_MIPS_ARCH_3 0x20000000 /* -mips3 code. */
-#define EF_MIPS_ARCH_4 0x30000000 /* -mips4 code. */
-#define EF_MIPS_ARCH_5 0x40000000 /* -mips5 code. */
-#define EF_MIPS_ARCH_32 0x60000000 /* MIPS32 code. */
-#define EF_MIPS_ARCH_64 0x70000000 /* MIPS64 code. */
-
-/* The following are non-official names and should not be used. */
-
-#define E_MIPS_ARCH_1 0x00000000 /* -mips1 code. */
-#define E_MIPS_ARCH_2 0x10000000 /* -mips2 code. */
-#define E_MIPS_ARCH_3 0x20000000 /* -mips3 code. */
-#define E_MIPS_ARCH_4 0x30000000 /* -mips4 code. */
-#define E_MIPS_ARCH_5 0x40000000 /* -mips5 code. */
-#define E_MIPS_ARCH_32 0x60000000 /* MIPS32 code. */
-#define E_MIPS_ARCH_64 0x70000000 /* MIPS64 code. */
-
-/* Special section indices. */
-
-#define SHN_MIPS_ACOMMON 0xff00 /* Allocated common symbols */
-#define SHN_MIPS_TEXT 0xff01 /* Allocated test symbols. */
-#define SHN_MIPS_DATA 0xff02 /* Allocated data symbols. */
-#define SHN_MIPS_SCOMMON 0xff03 /* Small common symbols */
-#define SHN_MIPS_SUNDEFINED 0xff04 /* Small undefined symbols */
-
-/* Legal values for sh_type field of Elf32_Shdr. */
-
-#define SHT_MIPS_LIBLIST 0x70000000 /* Shared objects used in link */
-#define SHT_MIPS_MSYM 0x70000001
-#define SHT_MIPS_CONFLICT 0x70000002 /* Conflicting symbols */
-#define SHT_MIPS_GPTAB 0x70000003 /* Global data area sizes */
-#define SHT_MIPS_UCODE 0x70000004 /* Reserved for SGI/MIPS compilers */
-#define SHT_MIPS_DEBUG 0x70000005 /* MIPS ECOFF debugging information*/
-#define SHT_MIPS_REGINFO 0x70000006 /* Register usage information */
-#define SHT_MIPS_PACKAGE 0x70000007
-#define SHT_MIPS_PACKSYM 0x70000008
-#define SHT_MIPS_RELD 0x70000009
-#define SHT_MIPS_IFACE 0x7000000b
-#define SHT_MIPS_CONTENT 0x7000000c
-#define SHT_MIPS_OPTIONS 0x7000000d /* Miscellaneous options. */
-#define SHT_MIPS_SHDR 0x70000010
-#define SHT_MIPS_FDESC 0x70000011
-#define SHT_MIPS_EXTSYM 0x70000012
-#define SHT_MIPS_DENSE 0x70000013
-#define SHT_MIPS_PDESC 0x70000014
-#define SHT_MIPS_LOCSYM 0x70000015
-#define SHT_MIPS_AUXSYM 0x70000016
-#define SHT_MIPS_OPTSYM 0x70000017
-#define SHT_MIPS_LOCSTR 0x70000018
-#define SHT_MIPS_LINE 0x70000019
-#define SHT_MIPS_RFDESC 0x7000001a
-#define SHT_MIPS_DELTASYM 0x7000001b
-#define SHT_MIPS_DELTAINST 0x7000001c
-#define SHT_MIPS_DELTACLASS 0x7000001d
-#define SHT_MIPS_DWARF 0x7000001e /* DWARF debugging information. */
-#define SHT_MIPS_DELTADECL 0x7000001f
-#define SHT_MIPS_SYMBOL_LIB 0x70000020
-#define SHT_MIPS_EVENTS 0x70000021 /* Event section. */
-#define SHT_MIPS_TRANSLATE 0x70000022
-#define SHT_MIPS_PIXIE 0x70000023
-#define SHT_MIPS_XLATE 0x70000024
-#define SHT_MIPS_XLATE_DEBUG 0x70000025
-#define SHT_MIPS_WHIRL 0x70000026
-#define SHT_MIPS_EH_REGION 0x70000027
-#define SHT_MIPS_XLATE_OLD 0x70000028
-#define SHT_MIPS_PDR_EXCEPTION 0x70000029
-
-/* Legal values for sh_flags field of Elf32_Shdr. */
-
-#define SHF_MIPS_GPREL 0x10000000 /* Must be part of global data area */
-#define SHF_MIPS_MERGE 0x20000000
-#define SHF_MIPS_ADDR 0x40000000
-#define SHF_MIPS_STRINGS 0x80000000
-#define SHF_MIPS_NOSTRIP 0x08000000
-#define SHF_MIPS_LOCAL 0x04000000
-#define SHF_MIPS_NAMES 0x02000000
-#define SHF_MIPS_NODUPE 0x01000000
-
-
-/* Symbol tables. */
-
-/* MIPS specific values for `st_other'. */
-#define STO_MIPS_DEFAULT 0x0
-#define STO_MIPS_INTERNAL 0x1
-#define STO_MIPS_HIDDEN 0x2
-#define STO_MIPS_PROTECTED 0x3
-#define STO_MIPS_PLT 0x8
-#define STO_MIPS_SC_ALIGN_UNUSED 0xff
-
-/* MIPS specific values for `st_info'. */
-#define STB_MIPS_SPLIT_COMMON 13
-
-/* Entries found in sections of type SHT_MIPS_GPTAB. */
-
-typedef union
-{
- struct
- {
- Elf32_Word gt_current_g_value; /* -G value used for compilation */
- Elf32_Word gt_unused; /* Not used */
- } gt_header; /* First entry in section */
- struct
- {
- Elf32_Word gt_g_value; /* If this value were used for -G */
- Elf32_Word gt_bytes; /* This many bytes would be used */
- } gt_entry; /* Subsequent entries in section */
-} Elf32_gptab;
-
-/* Entry found in sections of type SHT_MIPS_REGINFO. */
-
-typedef struct
-{
- Elf32_Word ri_gprmask; /* General registers used */
- Elf32_Word ri_cprmask[4]; /* Coprocessor registers used */
- Elf32_Sword ri_gp_value; /* $gp register value */
-} Elf32_RegInfo;
-
-/* Entries found in sections of type SHT_MIPS_OPTIONS. */
-
-typedef struct
-{
- unsigned char kind; /* Determines interpretation of the
- variable part of descriptor. */
- unsigned char size; /* Size of descriptor, including header. */
- Elf32_Section section; /* Section header index of section affected,
- 0 for global options. */
- Elf32_Word info; /* Kind-specific information. */
-} Elf_Options;
-
-/* Values for `kind' field in Elf_Options. */
-
-#define ODK_NULL 0 /* Undefined. */
-#define ODK_REGINFO 1 /* Register usage information. */
-#define ODK_EXCEPTIONS 2 /* Exception processing options. */
-#define ODK_PAD 3 /* Section padding options. */
-#define ODK_HWPATCH 4 /* Hardware workarounds performed */
-#define ODK_FILL 5 /* record the fill value used by the linker. */
-#define ODK_TAGS 6 /* reserve space for desktop tools to write. */
-#define ODK_HWAND 7 /* HW workarounds. 'AND' bits when merging. */
-#define ODK_HWOR 8 /* HW workarounds. 'OR' bits when merging. */
-
-/* Values for `info' in Elf_Options for ODK_EXCEPTIONS entries. */
-
-#define OEX_FPU_MIN 0x1f /* FPE's which MUST be enabled. */
-#define OEX_FPU_MAX 0x1f00 /* FPE's which MAY be enabled. */
-#define OEX_PAGE0 0x10000 /* page zero must be mapped. */
-#define OEX_SMM 0x20000 /* Force sequential memory mode? */
-#define OEX_FPDBUG 0x40000 /* Force floating point debug mode? */
-#define OEX_PRECISEFP OEX_FPDBUG
-#define OEX_DISMISS 0x80000 /* Dismiss invalid address faults? */
-
-#define OEX_FPU_INVAL 0x10
-#define OEX_FPU_DIV0 0x08
-#define OEX_FPU_OFLO 0x04
-#define OEX_FPU_UFLO 0x02
-#define OEX_FPU_INEX 0x01
-
-/* Masks for `info' in Elf_Options for an ODK_HWPATCH entry. */
-
-#define OHW_R4KEOP 0x1 /* R4000 end-of-page patch. */
-#define OHW_R8KPFETCH 0x2 /* may need R8000 prefetch patch. */
-#define OHW_R5KEOP 0x4 /* R5000 end-of-page patch. */
-#define OHW_R5KCVTL 0x8 /* R5000 cvt.[ds].l bug. clean=1. */
-
-#define OPAD_PREFIX 0x1
-#define OPAD_POSTFIX 0x2
-#define OPAD_SYMBOL 0x4
-
-/* Entry found in `.options' section. */
-
-typedef struct
-{
- Elf32_Word hwp_flags1; /* Extra flags. */
- Elf32_Word hwp_flags2; /* Extra flags. */
-} Elf_Options_Hw;
-
-/* Masks for `info' in ElfOptions for ODK_HWAND and ODK_HWOR entries. */
-
-#define OHWA0_R4KEOP_CHECKED 0x00000001
-#define OHWA1_R4KEOP_CLEAN 0x00000002
-
-/* MIPS relocs. */
-
-#define R_MIPS_NONE 0 /* No reloc */
-#define R_MIPS_16 1 /* Direct 16 bit */
-#define R_MIPS_32 2 /* Direct 32 bit */
-#define R_MIPS_REL32 3 /* PC relative 32 bit */
-#define R_MIPS_26 4 /* Direct 26 bit shifted */
-#define R_MIPS_HI16 5 /* High 16 bit */
-#define R_MIPS_LO16 6 /* Low 16 bit */
-#define R_MIPS_GPREL16 7 /* GP relative 16 bit */
-#define R_MIPS_LITERAL 8 /* 16 bit literal entry */
-#define R_MIPS_GOT16 9 /* 16 bit GOT entry */
-#define R_MIPS_PC16 10 /* PC relative 16 bit */
-#define R_MIPS_CALL16 11 /* 16 bit GOT entry for function */
-#define R_MIPS_GPREL32 12 /* GP relative 32 bit */
-
-#define R_MIPS_SHIFT5 16
-#define R_MIPS_SHIFT6 17
-#define R_MIPS_64 18
-#define R_MIPS_GOT_DISP 19
-#define R_MIPS_GOT_PAGE 20
-#define R_MIPS_GOT_OFST 21
-#define R_MIPS_GOT_HI16 22
-#define R_MIPS_GOT_LO16 23
-#define R_MIPS_SUB 24
-#define R_MIPS_INSERT_A 25
-#define R_MIPS_INSERT_B 26
-#define R_MIPS_DELETE 27
-#define R_MIPS_HIGHER 28
-#define R_MIPS_HIGHEST 29
-#define R_MIPS_CALL_HI16 30
-#define R_MIPS_CALL_LO16 31
-#define R_MIPS_SCN_DISP 32
-#define R_MIPS_REL16 33
-#define R_MIPS_ADD_IMMEDIATE 34
-#define R_MIPS_PJUMP 35
-#define R_MIPS_RELGOT 36
-#define R_MIPS_JALR 37
-#define R_MIPS_TLS_DTPMOD32 38 /* Module number 32 bit */
-#define R_MIPS_TLS_DTPREL32 39 /* Module-relative offset 32 bit */
-#define R_MIPS_TLS_DTPMOD64 40 /* Module number 64 bit */
-#define R_MIPS_TLS_DTPREL64 41 /* Module-relative offset 64 bit */
-#define R_MIPS_TLS_GD 42 /* 16 bit GOT offset for GD */
-#define R_MIPS_TLS_LDM 43 /* 16 bit GOT offset for LDM */
-#define R_MIPS_TLS_DTPREL_HI16 44 /* Module-relative offset, high 16 bits */
-#define R_MIPS_TLS_DTPREL_LO16 45 /* Module-relative offset, low 16 bits */
-#define R_MIPS_TLS_GOTTPREL 46 /* 16 bit GOT offset for IE */
-#define R_MIPS_TLS_TPREL32 47 /* TP-relative offset, 32 bit */
-#define R_MIPS_TLS_TPREL64 48 /* TP-relative offset, 64 bit */
-#define R_MIPS_TLS_TPREL_HI16 49 /* TP-relative offset, high 16 bits */
-#define R_MIPS_TLS_TPREL_LO16 50 /* TP-relative offset, low 16 bits */
-#define R_MIPS_GLOB_DAT 51
-#define R_MIPS_COPY 126
-#define R_MIPS_JUMP_SLOT 127
-/* Keep this the last entry. */
-#define R_MIPS_NUM 128
-
-/* Legal values for p_type field of Elf32_Phdr. */
-
-#define PT_MIPS_REGINFO 0x70000000 /* Register usage information */
-#define PT_MIPS_RTPROC 0x70000001 /* Runtime procedure table. */
-#define PT_MIPS_OPTIONS 0x70000002
-
-/* Special program header types. */
-
-#define PF_MIPS_LOCAL 0x10000000
-
-/* Legal values for d_tag field of Elf32_Dyn. */
-
-#define DT_MIPS_RLD_VERSION 0x70000001 /* Runtime linker interface version */
-#define DT_MIPS_TIME_STAMP 0x70000002 /* Timestamp */
-#define DT_MIPS_ICHECKSUM 0x70000003 /* Checksum */
-#define DT_MIPS_IVERSION 0x70000004 /* Version string (string tbl index) */
-#define DT_MIPS_FLAGS 0x70000005 /* Flags */
-#define DT_MIPS_BASE_ADDRESS 0x70000006 /* Base address */
-#define DT_MIPS_MSYM 0x70000007
-#define DT_MIPS_CONFLICT 0x70000008 /* Address of CONFLICT section */
-#define DT_MIPS_LIBLIST 0x70000009 /* Address of LIBLIST section */
-#define DT_MIPS_LOCAL_GOTNO 0x7000000a /* Number of local GOT entries */
-#define DT_MIPS_CONFLICTNO 0x7000000b /* Number of CONFLICT entries */
-#define DT_MIPS_LIBLISTNO 0x70000010 /* Number of LIBLIST entries */
-#define DT_MIPS_SYMTABNO 0x70000011 /* Number of DYNSYM entries */
-#define DT_MIPS_UNREFEXTNO 0x70000012 /* First external DYNSYM */
-#define DT_MIPS_GOTSYM 0x70000013 /* First GOT entry in DYNSYM */
-#define DT_MIPS_HIPAGENO 0x70000014 /* Number of GOT page table entries */
-#define DT_MIPS_RLD_MAP 0x70000016 /* Address of run time loader map. */
-#define DT_MIPS_DELTA_CLASS 0x70000017 /* Delta C++ class definition. */
-#define DT_MIPS_DELTA_CLASS_NO 0x70000018 /* Number of entries in
- DT_MIPS_DELTA_CLASS. */
-#define DT_MIPS_DELTA_INSTANCE 0x70000019 /* Delta C++ class instances. */
-#define DT_MIPS_DELTA_INSTANCE_NO 0x7000001a /* Number of entries in
- DT_MIPS_DELTA_INSTANCE. */
-#define DT_MIPS_DELTA_RELOC 0x7000001b /* Delta relocations. */
-#define DT_MIPS_DELTA_RELOC_NO 0x7000001c /* Number of entries in
- DT_MIPS_DELTA_RELOC. */
-#define DT_MIPS_DELTA_SYM 0x7000001d /* Delta symbols that Delta
- relocations refer to. */
-#define DT_MIPS_DELTA_SYM_NO 0x7000001e /* Number of entries in
- DT_MIPS_DELTA_SYM. */
-#define DT_MIPS_DELTA_CLASSSYM 0x70000020 /* Delta symbols that hold the
- class declaration. */
-#define DT_MIPS_DELTA_CLASSSYM_NO 0x70000021 /* Number of entries in
- DT_MIPS_DELTA_CLASSSYM. */
-#define DT_MIPS_CXX_FLAGS 0x70000022 /* Flags indicating for C++ flavor. */
-#define DT_MIPS_PIXIE_INIT 0x70000023
-#define DT_MIPS_SYMBOL_LIB 0x70000024
-#define DT_MIPS_LOCALPAGE_GOTIDX 0x70000025
-#define DT_MIPS_LOCAL_GOTIDX 0x70000026
-#define DT_MIPS_HIDDEN_GOTIDX 0x70000027
-#define DT_MIPS_PROTECTED_GOTIDX 0x70000028
-#define DT_MIPS_OPTIONS 0x70000029 /* Address of .options. */
-#define DT_MIPS_INTERFACE 0x7000002a /* Address of .interface. */
-#define DT_MIPS_DYNSTR_ALIGN 0x7000002b
-#define DT_MIPS_INTERFACE_SIZE 0x7000002c /* Size of the .interface section. */
-#define DT_MIPS_RLD_TEXT_RESOLVE_ADDR 0x7000002d /* Address of rld_text_rsolve
- function stored in GOT. */
-#define DT_MIPS_PERF_SUFFIX 0x7000002e /* Default suffix of dso to be added
- by rld on dlopen() calls. */
-#define DT_MIPS_COMPACT_SIZE 0x7000002f /* (O32)Size of compact rel section. */
-#define DT_MIPS_GP_VALUE 0x70000030 /* GP value for aux GOTs. */
-#define DT_MIPS_AUX_DYNAMIC 0x70000031 /* Address of aux .dynamic. */
-/* The address of .got.plt in an executable using the new non-PIC ABI. */
-#define DT_MIPS_PLTGOT 0x70000032
-/* The base of the PLT in an executable using the new non-PIC ABI if that
- PLT is writable. For a non-writable PLT, this is omitted or has a zero
- value. */
-#define DT_MIPS_RWPLT 0x70000034
-#define DT_MIPS_NUM 0x35
-
-/* Legal values for DT_MIPS_FLAGS Elf32_Dyn entry. */
-
-#define RHF_NONE 0 /* No flags */
-#define RHF_QUICKSTART (1 << 0) /* Use quickstart */
-#define RHF_NOTPOT (1 << 1) /* Hash size not power of 2 */
-#define RHF_NO_LIBRARY_REPLACEMENT (1 << 2) /* Ignore LD_LIBRARY_PATH */
-#define RHF_NO_MOVE (1 << 3)
-#define RHF_SGI_ONLY (1 << 4)
-#define RHF_GUARANTEE_INIT (1 << 5)
-#define RHF_DELTA_C_PLUS_PLUS (1 << 6)
-#define RHF_GUARANTEE_START_INIT (1 << 7)
-#define RHF_PIXIE (1 << 8)
-#define RHF_DEFAULT_DELAY_LOAD (1 << 9)
-#define RHF_REQUICKSTART (1 << 10)
-#define RHF_REQUICKSTARTED (1 << 11)
-#define RHF_CORD (1 << 12)
-#define RHF_NO_UNRES_UNDEF (1 << 13)
-#define RHF_RLD_ORDER_SAFE (1 << 14)
-
-/* Entries found in sections of type SHT_MIPS_LIBLIST. */
-
-typedef struct
-{
- Elf32_Word l_name; /* Name (string table index) */
- Elf32_Word l_time_stamp; /* Timestamp */
- Elf32_Word l_checksum; /* Checksum */
- Elf32_Word l_version; /* Interface version */
- Elf32_Word l_flags; /* Flags */
-} Elf32_Lib;
-
-typedef struct
-{
- Elf64_Word l_name; /* Name (string table index) */
- Elf64_Word l_time_stamp; /* Timestamp */
- Elf64_Word l_checksum; /* Checksum */
- Elf64_Word l_version; /* Interface version */
- Elf64_Word l_flags; /* Flags */
-} Elf64_Lib;
-
-
-/* Legal values for l_flags. */
-
-#define LL_NONE 0
-#define LL_EXACT_MATCH (1 << 0) /* Require exact match */
-#define LL_IGNORE_INT_VER (1 << 1) /* Ignore interface version */
-#define LL_REQUIRE_MINOR (1 << 2)
-#define LL_EXPORTS (1 << 3)
-#define LL_DELAY_LOAD (1 << 4)
-#define LL_DELTA (1 << 5)
-
-/* Entries found in sections of type SHT_MIPS_CONFLICT. */
-
-typedef Elf32_Addr Elf32_Conflict;
-
-
-/* HPPA specific definitions. */
-
-/* Legal values for e_flags field of Elf32_Ehdr. */
-
-#define EF_PARISC_TRAPNIL 0x00010000 /* Trap nil pointer dereference. */
-#define EF_PARISC_EXT 0x00020000 /* Program uses arch. extensions. */
-#define EF_PARISC_LSB 0x00040000 /* Program expects little endian. */
-#define EF_PARISC_WIDE 0x00080000 /* Program expects wide mode. */
-#define EF_PARISC_NO_KABP 0x00100000 /* No kernel assisted branch
- prediction. */
-#define EF_PARISC_LAZYSWAP 0x00400000 /* Allow lazy swapping. */
-#define EF_PARISC_ARCH 0x0000ffff /* Architecture version. */
-
-/* Defined values for `e_flags & EF_PARISC_ARCH' are: */
-
-#define EFA_PARISC_1_0 0x020b /* PA-RISC 1.0 big-endian. */
-#define EFA_PARISC_1_1 0x0210 /* PA-RISC 1.1 big-endian. */
-#define EFA_PARISC_2_0 0x0214 /* PA-RISC 2.0 big-endian. */
-
-/* Additional section indeces. */
-
-#define SHN_PARISC_ANSI_COMMON 0xff00 /* Section for tenatively declared
- symbols in ANSI C. */
-#define SHN_PARISC_HUGE_COMMON 0xff01 /* Common blocks in huge model. */
-
-/* Legal values for sh_type field of Elf32_Shdr. */
-
-#define SHT_PARISC_EXT 0x70000000 /* Contains product specific ext. */
-#define SHT_PARISC_UNWIND 0x70000001 /* Unwind information. */
-#define SHT_PARISC_DOC 0x70000002 /* Debug info for optimized code. */
-
-/* Legal values for sh_flags field of Elf32_Shdr. */
-
-#define SHF_PARISC_SHORT 0x20000000 /* Section with short addressing. */
-#define SHF_PARISC_HUGE 0x40000000 /* Section far from gp. */
-#define SHF_PARISC_SBP 0x80000000 /* Static branch prediction code. */
-
-/* Legal values for ST_TYPE subfield of st_info (symbol type). */
-
-#define STT_PARISC_MILLICODE 13 /* Millicode function entry point. */
-
-#define STT_HP_OPAQUE (STT_LOOS + 0x1)
-#define STT_HP_STUB (STT_LOOS + 0x2)
-
-/* HPPA relocs. */
-
-#define R_PARISC_NONE 0 /* No reloc. */
-#define R_PARISC_DIR32 1 /* Direct 32-bit reference. */
-#define R_PARISC_DIR21L 2 /* Left 21 bits of eff. address. */
-#define R_PARISC_DIR17R 3 /* Right 17 bits of eff. address. */
-#define R_PARISC_DIR17F 4 /* 17 bits of eff. address. */
-#define R_PARISC_DIR14R 6 /* Right 14 bits of eff. address. */
-#define R_PARISC_PCREL32 9 /* 32-bit rel. address. */
-#define R_PARISC_PCREL21L 10 /* Left 21 bits of rel. address. */
-#define R_PARISC_PCREL17R 11 /* Right 17 bits of rel. address. */
-#define R_PARISC_PCREL17F 12 /* 17 bits of rel. address. */
-#define R_PARISC_PCREL14R 14 /* Right 14 bits of rel. address. */
-#define R_PARISC_DPREL21L 18 /* Left 21 bits of rel. address. */
-#define R_PARISC_DPREL14R 22 /* Right 14 bits of rel. address. */
-#define R_PARISC_GPREL21L 26 /* GP-relative, left 21 bits. */
-#define R_PARISC_GPREL14R 30 /* GP-relative, right 14 bits. */
-#define R_PARISC_LTOFF21L 34 /* LT-relative, left 21 bits. */
-#define R_PARISC_LTOFF14R 38 /* LT-relative, right 14 bits. */
-#define R_PARISC_SECREL32 41 /* 32 bits section rel. address. */
-#define R_PARISC_SEGBASE 48 /* No relocation, set segment base. */
-#define R_PARISC_SEGREL32 49 /* 32 bits segment rel. address. */
-#define R_PARISC_PLTOFF21L 50 /* PLT rel. address, left 21 bits. */
-#define R_PARISC_PLTOFF14R 54 /* PLT rel. address, right 14 bits. */
-#define R_PARISC_LTOFF_FPTR32 57 /* 32 bits LT-rel. function pointer. */
-#define R_PARISC_LTOFF_FPTR21L 58 /* LT-rel. fct ptr, left 21 bits. */
-#define R_PARISC_LTOFF_FPTR14R 62 /* LT-rel. fct ptr, right 14 bits. */
-#define R_PARISC_FPTR64 64 /* 64 bits function address. */
-#define R_PARISC_PLABEL32 65 /* 32 bits function address. */
-#define R_PARISC_PLABEL21L 66 /* Left 21 bits of fdesc address. */
-#define R_PARISC_PLABEL14R 70 /* Right 14 bits of fdesc address. */
-#define R_PARISC_PCREL64 72 /* 64 bits PC-rel. address. */
-#define R_PARISC_PCREL22F 74 /* 22 bits PC-rel. address. */
-#define R_PARISC_PCREL14WR 75 /* PC-rel. address, right 14 bits. */
-#define R_PARISC_PCREL14DR 76 /* PC rel. address, right 14 bits. */
-#define R_PARISC_PCREL16F 77 /* 16 bits PC-rel. address. */
-#define R_PARISC_PCREL16WF 78 /* 16 bits PC-rel. address. */
-#define R_PARISC_PCREL16DF 79 /* 16 bits PC-rel. address. */
-#define R_PARISC_DIR64 80 /* 64 bits of eff. address. */
-#define R_PARISC_DIR14WR 83 /* 14 bits of eff. address. */
-#define R_PARISC_DIR14DR 84 /* 14 bits of eff. address. */
-#define R_PARISC_DIR16F 85 /* 16 bits of eff. address. */
-#define R_PARISC_DIR16WF 86 /* 16 bits of eff. address. */
-#define R_PARISC_DIR16DF 87 /* 16 bits of eff. address. */
-#define R_PARISC_GPREL64 88 /* 64 bits of GP-rel. address. */
-#define R_PARISC_GPREL14WR 91 /* GP-rel. address, right 14 bits. */
-#define R_PARISC_GPREL14DR 92 /* GP-rel. address, right 14 bits. */
-#define R_PARISC_GPREL16F 93 /* 16 bits GP-rel. address. */
-#define R_PARISC_GPREL16WF 94 /* 16 bits GP-rel. address. */
-#define R_PARISC_GPREL16DF 95 /* 16 bits GP-rel. address. */
-#define R_PARISC_LTOFF64 96 /* 64 bits LT-rel. address. */
-#define R_PARISC_LTOFF14WR 99 /* LT-rel. address, right 14 bits. */
-#define R_PARISC_LTOFF14DR 100 /* LT-rel. address, right 14 bits. */
-#define R_PARISC_LTOFF16F 101 /* 16 bits LT-rel. address. */
-#define R_PARISC_LTOFF16WF 102 /* 16 bits LT-rel. address. */
-#define R_PARISC_LTOFF16DF 103 /* 16 bits LT-rel. address. */
-#define R_PARISC_SECREL64 104 /* 64 bits section rel. address. */
-#define R_PARISC_SEGREL64 112 /* 64 bits segment rel. address. */
-#define R_PARISC_PLTOFF14WR 115 /* PLT-rel. address, right 14 bits. */
-#define R_PARISC_PLTOFF14DR 116 /* PLT-rel. address, right 14 bits. */
-#define R_PARISC_PLTOFF16F 117 /* 16 bits LT-rel. address. */
-#define R_PARISC_PLTOFF16WF 118 /* 16 bits PLT-rel. address. */
-#define R_PARISC_PLTOFF16DF 119 /* 16 bits PLT-rel. address. */
-#define R_PARISC_LTOFF_FPTR64 120 /* 64 bits LT-rel. function ptr. */
-#define R_PARISC_LTOFF_FPTR14WR 123 /* LT-rel. fct. ptr., right 14 bits. */
-#define R_PARISC_LTOFF_FPTR14DR 124 /* LT-rel. fct. ptr., right 14 bits. */
-#define R_PARISC_LTOFF_FPTR16F 125 /* 16 bits LT-rel. function ptr. */
-#define R_PARISC_LTOFF_FPTR16WF 126 /* 16 bits LT-rel. function ptr. */
-#define R_PARISC_LTOFF_FPTR16DF 127 /* 16 bits LT-rel. function ptr. */
-#define R_PARISC_LORESERVE 128
-#define R_PARISC_COPY 128 /* Copy relocation. */
-#define R_PARISC_IPLT 129 /* Dynamic reloc, imported PLT */
-#define R_PARISC_EPLT 130 /* Dynamic reloc, exported PLT */
-#define R_PARISC_TPREL32 153 /* 32 bits TP-rel. address. */
-#define R_PARISC_TPREL21L 154 /* TP-rel. address, left 21 bits. */
-#define R_PARISC_TPREL14R 158 /* TP-rel. address, right 14 bits. */
-#define R_PARISC_LTOFF_TP21L 162 /* LT-TP-rel. address, left 21 bits. */
-#define R_PARISC_LTOFF_TP14R 166 /* LT-TP-rel. address, right 14 bits.*/
-#define R_PARISC_LTOFF_TP14F 167 /* 14 bits LT-TP-rel. address. */
-#define R_PARISC_TPREL64 216 /* 64 bits TP-rel. address. */
-#define R_PARISC_TPREL14WR 219 /* TP-rel. address, right 14 bits. */
-#define R_PARISC_TPREL14DR 220 /* TP-rel. address, right 14 bits. */
-#define R_PARISC_TPREL16F 221 /* 16 bits TP-rel. address. */
-#define R_PARISC_TPREL16WF 222 /* 16 bits TP-rel. address. */
-#define R_PARISC_TPREL16DF 223 /* 16 bits TP-rel. address. */
-#define R_PARISC_LTOFF_TP64 224 /* 64 bits LT-TP-rel. address. */
-#define R_PARISC_LTOFF_TP14WR 227 /* LT-TP-rel. address, right 14 bits.*/
-#define R_PARISC_LTOFF_TP14DR 228 /* LT-TP-rel. address, right 14 bits.*/
-#define R_PARISC_LTOFF_TP16F 229 /* 16 bits LT-TP-rel. address. */
-#define R_PARISC_LTOFF_TP16WF 230 /* 16 bits LT-TP-rel. address. */
-#define R_PARISC_LTOFF_TP16DF 231 /* 16 bits LT-TP-rel. address. */
-#define R_PARISC_GNU_VTENTRY 232
-#define R_PARISC_GNU_VTINHERIT 233
-#define R_PARISC_TLS_GD21L 234 /* GD 21-bit left. */
-#define R_PARISC_TLS_GD14R 235 /* GD 14-bit right. */
-#define R_PARISC_TLS_GDCALL 236 /* GD call to __t_g_a. */
-#define R_PARISC_TLS_LDM21L 237 /* LD module 21-bit left. */
-#define R_PARISC_TLS_LDM14R 238 /* LD module 14-bit right. */
-#define R_PARISC_TLS_LDMCALL 239 /* LD module call to __t_g_a. */
-#define R_PARISC_TLS_LDO21L 240 /* LD offset 21-bit left. */
-#define R_PARISC_TLS_LDO14R 241 /* LD offset 14-bit right. */
-#define R_PARISC_TLS_DTPMOD32 242 /* DTP module 32-bit. */
-#define R_PARISC_TLS_DTPMOD64 243 /* DTP module 64-bit. */
-#define R_PARISC_TLS_DTPOFF32 244 /* DTP offset 32-bit. */
-#define R_PARISC_TLS_DTPOFF64 245 /* DTP offset 32-bit. */
-#define R_PARISC_TLS_LE21L R_PARISC_TPREL21L
-#define R_PARISC_TLS_LE14R R_PARISC_TPREL14R
-#define R_PARISC_TLS_IE21L R_PARISC_LTOFF_TP21L
-#define R_PARISC_TLS_IE14R R_PARISC_LTOFF_TP14R
-#define R_PARISC_TLS_TPREL32 R_PARISC_TPREL32
-#define R_PARISC_TLS_TPREL64 R_PARISC_TPREL64
-#define R_PARISC_HIRESERVE 255
-
-/* Legal values for p_type field of Elf32_Phdr/Elf64_Phdr. */
-
-#define PT_HP_TLS (PT_LOOS + 0x0)
-#define PT_HP_CORE_NONE (PT_LOOS + 0x1)
-#define PT_HP_CORE_VERSION (PT_LOOS + 0x2)
-#define PT_HP_CORE_KERNEL (PT_LOOS + 0x3)
-#define PT_HP_CORE_COMM (PT_LOOS + 0x4)
-#define PT_HP_CORE_PROC (PT_LOOS + 0x5)
-#define PT_HP_CORE_LOADABLE (PT_LOOS + 0x6)
-#define PT_HP_CORE_STACK (PT_LOOS + 0x7)
-#define PT_HP_CORE_SHM (PT_LOOS + 0x8)
-#define PT_HP_CORE_MMF (PT_LOOS + 0x9)
-#define PT_HP_PARALLEL (PT_LOOS + 0x10)
-#define PT_HP_FASTBIND (PT_LOOS + 0x11)
-#define PT_HP_OPT_ANNOT (PT_LOOS + 0x12)
-#define PT_HP_HSL_ANNOT (PT_LOOS + 0x13)
-#define PT_HP_STACK (PT_LOOS + 0x14)
-
-#define PT_PARISC_ARCHEXT 0x70000000
-#define PT_PARISC_UNWIND 0x70000001
-
-/* Legal values for p_flags field of Elf32_Phdr/Elf64_Phdr. */
-
-#define PF_PARISC_SBP 0x08000000
-
-#define PF_HP_PAGE_SIZE 0x00100000
-#define PF_HP_FAR_SHARED 0x00200000
-#define PF_HP_NEAR_SHARED 0x00400000
-#define PF_HP_CODE 0x01000000
-#define PF_HP_MODIFY 0x02000000
-#define PF_HP_LAZYSWAP 0x04000000
-#define PF_HP_SBP 0x08000000
-
-
-/* Alpha specific definitions. */
-
-/* Legal values for e_flags field of Elf64_Ehdr. */
-
-#define EF_ALPHA_32BIT 1 /* All addresses must be < 2GB. */
-#define EF_ALPHA_CANRELAX 2 /* Relocations for relaxing exist. */
-
-/* Legal values for sh_type field of Elf64_Shdr. */
-
-/* These two are primerily concerned with ECOFF debugging info. */
-#define SHT_ALPHA_DEBUG 0x70000001
-#define SHT_ALPHA_REGINFO 0x70000002
-
-/* Legal values for sh_flags field of Elf64_Shdr. */
-
-#define SHF_ALPHA_GPREL 0x10000000
-
-/* Legal values for st_other field of Elf64_Sym. */
-#define STO_ALPHA_NOPV 0x80 /* No PV required. */
-#define STO_ALPHA_STD_GPLOAD 0x88 /* PV only used for initial ldgp. */
-
-/* Alpha relocs. */
-
-#define R_ALPHA_NONE 0 /* No reloc */
-#define R_ALPHA_REFLONG 1 /* Direct 32 bit */
-#define R_ALPHA_REFQUAD 2 /* Direct 64 bit */
-#define R_ALPHA_GPREL32 3 /* GP relative 32 bit */
-#define R_ALPHA_LITERAL 4 /* GP relative 16 bit w/optimization */
-#define R_ALPHA_LITUSE 5 /* Optimization hint for LITERAL */
-#define R_ALPHA_GPDISP 6 /* Add displacement to GP */
-#define R_ALPHA_BRADDR 7 /* PC+4 relative 23 bit shifted */
-#define R_ALPHA_HINT 8 /* PC+4 relative 16 bit shifted */
-#define R_ALPHA_SREL16 9 /* PC relative 16 bit */
-#define R_ALPHA_SREL32 10 /* PC relative 32 bit */
-#define R_ALPHA_SREL64 11 /* PC relative 64 bit */
-#define R_ALPHA_GPRELHIGH 17 /* GP relative 32 bit, high 16 bits */
-#define R_ALPHA_GPRELLOW 18 /* GP relative 32 bit, low 16 bits */
-#define R_ALPHA_GPREL16 19 /* GP relative 16 bit */
-#define R_ALPHA_COPY 24 /* Copy symbol at runtime */
-#define R_ALPHA_GLOB_DAT 25 /* Create GOT entry */
-#define R_ALPHA_JMP_SLOT 26 /* Create PLT entry */
-#define R_ALPHA_RELATIVE 27 /* Adjust by program base */
-#define R_ALPHA_TLS_GD_HI 28
-#define R_ALPHA_TLSGD 29
-#define R_ALPHA_TLS_LDM 30
-#define R_ALPHA_DTPMOD64 31
-#define R_ALPHA_GOTDTPREL 32
-#define R_ALPHA_DTPREL64 33
-#define R_ALPHA_DTPRELHI 34
-#define R_ALPHA_DTPRELLO 35
-#define R_ALPHA_DTPREL16 36
-#define R_ALPHA_GOTTPREL 37
-#define R_ALPHA_TPREL64 38
-#define R_ALPHA_TPRELHI 39
-#define R_ALPHA_TPRELLO 40
-#define R_ALPHA_TPREL16 41
-/* Keep this the last entry. */
-#define R_ALPHA_NUM 46
-
-/* Magic values of the LITUSE relocation addend. */
-#define LITUSE_ALPHA_ADDR 0
-#define LITUSE_ALPHA_BASE 1
-#define LITUSE_ALPHA_BYTOFF 2
-#define LITUSE_ALPHA_JSR 3
-#define LITUSE_ALPHA_TLS_GD 4
-#define LITUSE_ALPHA_TLS_LDM 5
-
-/* Legal values for d_tag of Elf64_Dyn. */
-#define DT_ALPHA_PLTRO (DT_LOPROC + 0)
-#define DT_ALPHA_NUM 1
-
-/* PowerPC specific declarations */
-
-/* Values for Elf32/64_Ehdr.e_flags. */
-#define EF_PPC_EMB 0x80000000 /* PowerPC embedded flag */
-
-/* Cygnus local bits below */
-#define EF_PPC_RELOCATABLE 0x00010000 /* PowerPC -mrelocatable flag*/
-#define EF_PPC_RELOCATABLE_LIB 0x00008000 /* PowerPC -mrelocatable-lib
- flag */
-
-/* PowerPC relocations defined by the ABIs */
-#define R_PPC_NONE 0
-#define R_PPC_ADDR32 1 /* 32bit absolute address */
-#define R_PPC_ADDR24 2 /* 26bit address, 2 bits ignored. */
-#define R_PPC_ADDR16 3 /* 16bit absolute address */
-#define R_PPC_ADDR16_LO 4 /* lower 16bit of absolute address */
-#define R_PPC_ADDR16_HI 5 /* high 16bit of absolute address */
-#define R_PPC_ADDR16_HA 6 /* adjusted high 16bit */
-#define R_PPC_ADDR14 7 /* 16bit address, 2 bits ignored */
-#define R_PPC_ADDR14_BRTAKEN 8
-#define R_PPC_ADDR14_BRNTAKEN 9
-#define R_PPC_REL24 10 /* PC relative 26 bit */
-#define R_PPC_REL14 11 /* PC relative 16 bit */
-#define R_PPC_REL14_BRTAKEN 12
-#define R_PPC_REL14_BRNTAKEN 13
-#define R_PPC_GOT16 14
-#define R_PPC_GOT16_LO 15
-#define R_PPC_GOT16_HI 16
-#define R_PPC_GOT16_HA 17
-#define R_PPC_PLTREL24 18
-#define R_PPC_COPY 19
-#define R_PPC_GLOB_DAT 20
-#define R_PPC_JMP_SLOT 21
-#define R_PPC_RELATIVE 22
-#define R_PPC_LOCAL24PC 23
-#define R_PPC_UADDR32 24
-#define R_PPC_UADDR16 25
-#define R_PPC_REL32 26
-#define R_PPC_PLT32 27
-#define R_PPC_PLTREL32 28
-#define R_PPC_PLT16_LO 29
-#define R_PPC_PLT16_HI 30
-#define R_PPC_PLT16_HA 31
-#define R_PPC_SDAREL16 32
-#define R_PPC_SECTOFF 33
-#define R_PPC_SECTOFF_LO 34
-#define R_PPC_SECTOFF_HI 35
-#define R_PPC_SECTOFF_HA 36
-
-/* PowerPC relocations defined for the TLS access ABI. */
-#define R_PPC_TLS 67 /* none (sym+add)@tls */
-#define R_PPC_DTPMOD32 68 /* word32 (sym+add)@dtpmod */
-#define R_PPC_TPREL16 69 /* half16* (sym+add)@tprel */
-#define R_PPC_TPREL16_LO 70 /* half16 (sym+add)@tprel@l */
-#define R_PPC_TPREL16_HI 71 /* half16 (sym+add)@tprel@h */
-#define R_PPC_TPREL16_HA 72 /* half16 (sym+add)@tprel@ha */
-#define R_PPC_TPREL32 73 /* word32 (sym+add)@tprel */
-#define R_PPC_DTPREL16 74 /* half16* (sym+add)@dtprel */
-#define R_PPC_DTPREL16_LO 75 /* half16 (sym+add)@dtprel@l */
-#define R_PPC_DTPREL16_HI 76 /* half16 (sym+add)@dtprel@h */
-#define R_PPC_DTPREL16_HA 77 /* half16 (sym+add)@dtprel@ha */
-#define R_PPC_DTPREL32 78 /* word32 (sym+add)@dtprel */
-#define R_PPC_GOT_TLSGD16 79 /* half16* (sym+add)@got@tlsgd */
-#define R_PPC_GOT_TLSGD16_LO 80 /* half16 (sym+add)@got@tlsgd@l */
-#define R_PPC_GOT_TLSGD16_HI 81 /* half16 (sym+add)@got@tlsgd@h */
-#define R_PPC_GOT_TLSGD16_HA 82 /* half16 (sym+add)@got@tlsgd@ha */
-#define R_PPC_GOT_TLSLD16 83 /* half16* (sym+add)@got@tlsld */
-#define R_PPC_GOT_TLSLD16_LO 84 /* half16 (sym+add)@got@tlsld@l */
-#define R_PPC_GOT_TLSLD16_HI 85 /* half16 (sym+add)@got@tlsld@h */
-#define R_PPC_GOT_TLSLD16_HA 86 /* half16 (sym+add)@got@tlsld@ha */
-#define R_PPC_GOT_TPREL16 87 /* half16* (sym+add)@got@tprel */
-#define R_PPC_GOT_TPREL16_LO 88 /* half16 (sym+add)@got@tprel@l */
-#define R_PPC_GOT_TPREL16_HI 89 /* half16 (sym+add)@got@tprel@h */
-#define R_PPC_GOT_TPREL16_HA 90 /* half16 (sym+add)@got@tprel@ha */
-#define R_PPC_GOT_DTPREL16 91 /* half16* (sym+add)@got@dtprel */
-#define R_PPC_GOT_DTPREL16_LO 92 /* half16* (sym+add)@got@dtprel@l */
-#define R_PPC_GOT_DTPREL16_HI 93 /* half16* (sym+add)@got@dtprel@h */
-#define R_PPC_GOT_DTPREL16_HA 94 /* half16* (sym+add)@got@dtprel@ha */
-
-/* Keep this the last entry. */
-#define R_PPC_NUM 95
-
-/* The remaining relocs are from the Embedded ELF ABI, and are not
- in the SVR4 ELF ABI. */
-#define R_PPC_EMB_NADDR32 101
-#define R_PPC_EMB_NADDR16 102
-#define R_PPC_EMB_NADDR16_LO 103
-#define R_PPC_EMB_NADDR16_HI 104
-#define R_PPC_EMB_NADDR16_HA 105
-#define R_PPC_EMB_SDAI16 106
-#define R_PPC_EMB_SDA2I16 107
-#define R_PPC_EMB_SDA2REL 108
-#define R_PPC_EMB_SDA21 109 /* 16 bit offset in SDA */
-#define R_PPC_EMB_MRKREF 110
-#define R_PPC_EMB_RELSEC16 111
-#define R_PPC_EMB_RELST_LO 112
-#define R_PPC_EMB_RELST_HI 113
-#define R_PPC_EMB_RELST_HA 114
-#define R_PPC_EMB_BIT_FLD 115
-#define R_PPC_EMB_RELSDA 116 /* 16 bit relative offset in SDA */
-
-/* Diab tool relocations. */
-#define R_PPC_DIAB_SDA21_LO 180 /* like EMB_SDA21, but lower 16 bit */
-#define R_PPC_DIAB_SDA21_HI 181 /* like EMB_SDA21, but high 16 bit */
-#define R_PPC_DIAB_SDA21_HA 182 /* like EMB_SDA21, adjusted high 16 */
-#define R_PPC_DIAB_RELSDA_LO 183 /* like EMB_RELSDA, but lower 16 bit */
-#define R_PPC_DIAB_RELSDA_HI 184 /* like EMB_RELSDA, but high 16 bit */
-#define R_PPC_DIAB_RELSDA_HA 185 /* like EMB_RELSDA, adjusted high 16 */
-
-/* GNU relocs used in PIC code sequences. */
-#define R_PPC_REL16 249 /* word32 (sym-.) */
-#define R_PPC_REL16_LO 250 /* half16 (sym-.)@l */
-#define R_PPC_REL16_HI 251 /* half16 (sym-.)@h */
-#define R_PPC_REL16_HA 252 /* half16 (sym-.)@ha */
-
-/* This is a phony reloc to handle any old fashioned TOC16 references
- that may still be in object files. */
-#define R_PPC_TOC16 255
-
-/* PowerPC specific values for the Dyn d_tag field. */
-#define DT_PPC_GOT (DT_LOPROC + 0)
-#define DT_PPC_NUM 1
-
-/* PowerPC64 relocations defined by the ABIs */
-#define R_PPC64_NONE R_PPC_NONE
-#define R_PPC64_ADDR32 R_PPC_ADDR32 /* 32bit absolute address */
-#define R_PPC64_ADDR24 R_PPC_ADDR24 /* 26bit address, word aligned */
-#define R_PPC64_ADDR16 R_PPC_ADDR16 /* 16bit absolute address */
-#define R_PPC64_ADDR16_LO R_PPC_ADDR16_LO /* lower 16bits of address */
-#define R_PPC64_ADDR16_HI R_PPC_ADDR16_HI /* high 16bits of address. */
-#define R_PPC64_ADDR16_HA R_PPC_ADDR16_HA /* adjusted high 16bits. */
-#define R_PPC64_ADDR14 R_PPC_ADDR14 /* 16bit address, word aligned */
-#define R_PPC64_ADDR14_BRTAKEN R_PPC_ADDR14_BRTAKEN
-#define R_PPC64_ADDR14_BRNTAKEN R_PPC_ADDR14_BRNTAKEN
-#define R_PPC64_REL24 R_PPC_REL24 /* PC-rel. 26 bit, word aligned */
-#define R_PPC64_REL14 R_PPC_REL14 /* PC relative 16 bit */
-#define R_PPC64_REL14_BRTAKEN R_PPC_REL14_BRTAKEN
-#define R_PPC64_REL14_BRNTAKEN R_PPC_REL14_BRNTAKEN
-#define R_PPC64_GOT16 R_PPC_GOT16
-#define R_PPC64_GOT16_LO R_PPC_GOT16_LO
-#define R_PPC64_GOT16_HI R_PPC_GOT16_HI
-#define R_PPC64_GOT16_HA R_PPC_GOT16_HA
-
-#define R_PPC64_COPY R_PPC_COPY
-#define R_PPC64_GLOB_DAT R_PPC_GLOB_DAT
-#define R_PPC64_JMP_SLOT R_PPC_JMP_SLOT
-#define R_PPC64_RELATIVE R_PPC_RELATIVE
-
-#define R_PPC64_UADDR32 R_PPC_UADDR32
-#define R_PPC64_UADDR16 R_PPC_UADDR16
-#define R_PPC64_REL32 R_PPC_REL32
-#define R_PPC64_PLT32 R_PPC_PLT32
-#define R_PPC64_PLTREL32 R_PPC_PLTREL32
-#define R_PPC64_PLT16_LO R_PPC_PLT16_LO
-#define R_PPC64_PLT16_HI R_PPC_PLT16_HI
-#define R_PPC64_PLT16_HA R_PPC_PLT16_HA
-
-#define R_PPC64_SECTOFF R_PPC_SECTOFF
-#define R_PPC64_SECTOFF_LO R_PPC_SECTOFF_LO
-#define R_PPC64_SECTOFF_HI R_PPC_SECTOFF_HI
-#define R_PPC64_SECTOFF_HA R_PPC_SECTOFF_HA
-#define R_PPC64_ADDR30 37 /* word30 (S + A - P) >> 2 */
-#define R_PPC64_ADDR64 38 /* doubleword64 S + A */
-#define R_PPC64_ADDR16_HIGHER 39 /* half16 #higher(S + A) */
-#define R_PPC64_ADDR16_HIGHERA 40 /* half16 #highera(S + A) */
-#define R_PPC64_ADDR16_HIGHEST 41 /* half16 #highest(S + A) */
-#define R_PPC64_ADDR16_HIGHESTA 42 /* half16 #highesta(S + A) */
-#define R_PPC64_UADDR64 43 /* doubleword64 S + A */
-#define R_PPC64_REL64 44 /* doubleword64 S + A - P */
-#define R_PPC64_PLT64 45 /* doubleword64 L + A */
-#define R_PPC64_PLTREL64 46 /* doubleword64 L + A - P */
-#define R_PPC64_TOC16 47 /* half16* S + A - .TOC */
-#define R_PPC64_TOC16_LO 48 /* half16 #lo(S + A - .TOC.) */
-#define R_PPC64_TOC16_HI 49 /* half16 #hi(S + A - .TOC.) */
-#define R_PPC64_TOC16_HA 50 /* half16 #ha(S + A - .TOC.) */
-#define R_PPC64_TOC 51 /* doubleword64 .TOC */
-#define R_PPC64_PLTGOT16 52 /* half16* M + A */
-#define R_PPC64_PLTGOT16_LO 53 /* half16 #lo(M + A) */
-#define R_PPC64_PLTGOT16_HI 54 /* half16 #hi(M + A) */
-#define R_PPC64_PLTGOT16_HA 55 /* half16 #ha(M + A) */
-
-#define R_PPC64_ADDR16_DS 56 /* half16ds* (S + A) >> 2 */
-#define R_PPC64_ADDR16_LO_DS 57 /* half16ds #lo(S + A) >> 2 */
-#define R_PPC64_GOT16_DS 58 /* half16ds* (G + A) >> 2 */
-#define R_PPC64_GOT16_LO_DS 59 /* half16ds #lo(G + A) >> 2 */
-#define R_PPC64_PLT16_LO_DS 60 /* half16ds #lo(L + A) >> 2 */
-#define R_PPC64_SECTOFF_DS 61 /* half16ds* (R + A) >> 2 */
-#define R_PPC64_SECTOFF_LO_DS 62 /* half16ds #lo(R + A) >> 2 */
-#define R_PPC64_TOC16_DS 63 /* half16ds* (S + A - .TOC.) >> 2 */
-#define R_PPC64_TOC16_LO_DS 64 /* half16ds #lo(S + A - .TOC.) >> 2 */
-#define R_PPC64_PLTGOT16_DS 65 /* half16ds* (M + A) >> 2 */
-#define R_PPC64_PLTGOT16_LO_DS 66 /* half16ds #lo(M + A) >> 2 */
-
-/* PowerPC64 relocations defined for the TLS access ABI. */
-#define R_PPC64_TLS 67 /* none (sym+add)@tls */
-#define R_PPC64_DTPMOD64 68 /* doubleword64 (sym+add)@dtpmod */
-#define R_PPC64_TPREL16 69 /* half16* (sym+add)@tprel */
-#define R_PPC64_TPREL16_LO 70 /* half16 (sym+add)@tprel@l */
-#define R_PPC64_TPREL16_HI 71 /* half16 (sym+add)@tprel@h */
-#define R_PPC64_TPREL16_HA 72 /* half16 (sym+add)@tprel@ha */
-#define R_PPC64_TPREL64 73 /* doubleword64 (sym+add)@tprel */
-#define R_PPC64_DTPREL16 74 /* half16* (sym+add)@dtprel */
-#define R_PPC64_DTPREL16_LO 75 /* half16 (sym+add)@dtprel@l */
-#define R_PPC64_DTPREL16_HI 76 /* half16 (sym+add)@dtprel@h */
-#define R_PPC64_DTPREL16_HA 77 /* half16 (sym+add)@dtprel@ha */
-#define R_PPC64_DTPREL64 78 /* doubleword64 (sym+add)@dtprel */
-#define R_PPC64_GOT_TLSGD16 79 /* half16* (sym+add)@got@tlsgd */
-#define R_PPC64_GOT_TLSGD16_LO 80 /* half16 (sym+add)@got@tlsgd@l */
-#define R_PPC64_GOT_TLSGD16_HI 81 /* half16 (sym+add)@got@tlsgd@h */
-#define R_PPC64_GOT_TLSGD16_HA 82 /* half16 (sym+add)@got@tlsgd@ha */
-#define R_PPC64_GOT_TLSLD16 83 /* half16* (sym+add)@got@tlsld */
-#define R_PPC64_GOT_TLSLD16_LO 84 /* half16 (sym+add)@got@tlsld@l */
-#define R_PPC64_GOT_TLSLD16_HI 85 /* half16 (sym+add)@got@tlsld@h */
-#define R_PPC64_GOT_TLSLD16_HA 86 /* half16 (sym+add)@got@tlsld@ha */
-#define R_PPC64_GOT_TPREL16_DS 87 /* half16ds* (sym+add)@got@tprel */
-#define R_PPC64_GOT_TPREL16_LO_DS 88 /* half16ds (sym+add)@got@tprel@l */
-#define R_PPC64_GOT_TPREL16_HI 89 /* half16 (sym+add)@got@tprel@h */
-#define R_PPC64_GOT_TPREL16_HA 90 /* half16 (sym+add)@got@tprel@ha */
-#define R_PPC64_GOT_DTPREL16_DS 91 /* half16ds* (sym+add)@got@dtprel */
-#define R_PPC64_GOT_DTPREL16_LO_DS 92 /* half16ds (sym+add)@got@dtprel@l */
-#define R_PPC64_GOT_DTPREL16_HI 93 /* half16 (sym+add)@got@dtprel@h */
-#define R_PPC64_GOT_DTPREL16_HA 94 /* half16 (sym+add)@got@dtprel@ha */
-#define R_PPC64_TPREL16_DS 95 /* half16ds* (sym+add)@tprel */
-#define R_PPC64_TPREL16_LO_DS 96 /* half16ds (sym+add)@tprel@l */
-#define R_PPC64_TPREL16_HIGHER 97 /* half16 (sym+add)@tprel@higher */
-#define R_PPC64_TPREL16_HIGHERA 98 /* half16 (sym+add)@tprel@highera */
-#define R_PPC64_TPREL16_HIGHEST 99 /* half16 (sym+add)@tprel@highest */
-#define R_PPC64_TPREL16_HIGHESTA 100 /* half16 (sym+add)@tprel@highesta */
-#define R_PPC64_DTPREL16_DS 101 /* half16ds* (sym+add)@dtprel */
-#define R_PPC64_DTPREL16_LO_DS 102 /* half16ds (sym+add)@dtprel@l */
-#define R_PPC64_DTPREL16_HIGHER 103 /* half16 (sym+add)@dtprel@higher */
-#define R_PPC64_DTPREL16_HIGHERA 104 /* half16 (sym+add)@dtprel@highera */
-#define R_PPC64_DTPREL16_HIGHEST 105 /* half16 (sym+add)@dtprel@highest */
-#define R_PPC64_DTPREL16_HIGHESTA 106 /* half16 (sym+add)@dtprel@highesta */
-
-/* Keep this the last entry. */
-#define R_PPC64_NUM 107
-
-/* PowerPC64 specific values for the Dyn d_tag field. */
-#define DT_PPC64_GLINK (DT_LOPROC + 0)
-#define DT_PPC64_OPD (DT_LOPROC + 1)
-#define DT_PPC64_OPDSZ (DT_LOPROC + 2)
-#define DT_PPC64_NUM 3
-
-
-/* ARM specific declarations */
-
-/* Processor specific flags for the ELF header e_flags field. */
-#define EF_ARM_RELEXEC 0x01
-#define EF_ARM_HASENTRY 0x02
-#define EF_ARM_INTERWORK 0x04
-#define EF_ARM_APCS_26 0x08
-#define EF_ARM_APCS_FLOAT 0x10
-#define EF_ARM_PIC 0x20
-#define EF_ARM_ALIGN8 0x40 /* 8-bit structure alignment is in use */
-#define EF_ARM_NEW_ABI 0x80
-#define EF_ARM_OLD_ABI 0x100
-
-/* Other constants defined in the ARM ELF spec. version B-01. */
-/* NB. These conflict with values defined above. */
-#define EF_ARM_SYMSARESORTED 0x04
-#define EF_ARM_DYNSYMSUSESEGIDX 0x08
-#define EF_ARM_MAPSYMSFIRST 0x10
-#define EF_ARM_EABIMASK 0XFF000000
-
-#define EF_ARM_EABI_VERSION(flags) ((flags) & EF_ARM_EABIMASK)
-#define EF_ARM_EABI_UNKNOWN 0x00000000
-#define EF_ARM_EABI_VER1 0x01000000
-#define EF_ARM_EABI_VER2 0x02000000
-
-/* Additional symbol types for Thumb */
-#define STT_ARM_TFUNC 0xd
-
-/* ARM-specific values for sh_flags */
-#define SHF_ARM_ENTRYSECT 0x10000000 /* Section contains an entry point */
-#define SHF_ARM_COMDEF 0x80000000 /* Section may be multiply defined
- in the input to a link step */
-
-/* ARM-specific program header flags */
-#define PF_ARM_SB 0x10000000 /* Segment contains the location
- addressed by the static base */
-
-/* Processor specific values for the Phdr p_type field. */
-#define PT_ARM_EXIDX 0x70000001 /* .ARM.exidx segment */
-
-/* ARM relocs. */
-
-#define R_ARM_NONE 0 /* No reloc */
-#define R_ARM_PC24 1 /* PC relative 26 bit branch */
-#define R_ARM_ABS32 2 /* Direct 32 bit */
-#define R_ARM_REL32 3 /* PC relative 32 bit */
-#define R_ARM_PC13 4
-#define R_ARM_ABS16 5 /* Direct 16 bit */
-#define R_ARM_ABS12 6 /* Direct 12 bit */
-#define R_ARM_THM_ABS5 7
-#define R_ARM_ABS8 8 /* Direct 8 bit */
-#define R_ARM_SBREL32 9
-#define R_ARM_THM_PC22 10
-#define R_ARM_THM_PC8 11
-#define R_ARM_AMP_VCALL9 12
-#define R_ARM_SWI24 13
-#define R_ARM_THM_SWI8 14
-#define R_ARM_XPC25 15
-#define R_ARM_THM_XPC22 16
-#define R_ARM_TLS_DTPMOD32 17 /* ID of module containing symbol */
-#define R_ARM_TLS_DTPOFF32 18 /* Offset in TLS block */
-#define R_ARM_TLS_TPOFF32 19 /* Offset in static TLS block */
-#define R_ARM_COPY 20 /* Copy symbol at runtime */
-#define R_ARM_GLOB_DAT 21 /* Create GOT entry */
-#define R_ARM_JUMP_SLOT 22 /* Create PLT entry */
-#define R_ARM_RELATIVE 23 /* Adjust by program base */
-#define R_ARM_GOTOFF 24 /* 32 bit offset to GOT */
-#define R_ARM_GOTPC 25 /* 32 bit PC relative offset to GOT */
-#define R_ARM_GOT32 26 /* 32 bit GOT entry */
-#define R_ARM_PLT32 27 /* 32 bit PLT address */
-#define R_ARM_ALU_PCREL_7_0 32
-#define R_ARM_ALU_PCREL_15_8 33
-#define R_ARM_ALU_PCREL_23_15 34
-#define R_ARM_LDR_SBREL_11_0 35
-#define R_ARM_ALU_SBREL_19_12 36
-#define R_ARM_ALU_SBREL_27_20 37
-#define R_ARM_GNU_VTENTRY 100
-#define R_ARM_GNU_VTINHERIT 101
-#define R_ARM_THM_PC11 102 /* thumb unconditional branch */
-#define R_ARM_THM_PC9 103 /* thumb conditional branch */
-#define R_ARM_TLS_GD32 104 /* PC-rel 32 bit for global dynamic
- thread local data */
-#define R_ARM_TLS_LDM32 105 /* PC-rel 32 bit for local dynamic
- thread local data */
-#define R_ARM_TLS_LDO32 106 /* 32 bit offset relative to TLS
- block */
-#define R_ARM_TLS_IE32 107 /* PC-rel 32 bit for GOT entry of
- static TLS block offset */
-#define R_ARM_TLS_LE32 108 /* 32 bit offset relative to static
- TLS block */
-#define R_ARM_RXPC25 249
-#define R_ARM_RSBREL32 250
-#define R_ARM_THM_RPC22 251
-#define R_ARM_RREL32 252
-#define R_ARM_RABS22 253
-#define R_ARM_RPC24 254
-#define R_ARM_RBASE 255
-/* Keep this the last entry. */
-#define R_ARM_NUM 256
-
-/* IA-64 specific declarations. */
-
-/* Processor specific flags for the Ehdr e_flags field. */
-#define EF_IA_64_MASKOS 0x0000000f /* os-specific flags */
-#define EF_IA_64_ABI64 0x00000010 /* 64-bit ABI */
-#define EF_IA_64_ARCH 0xff000000 /* arch. version mask */
-
-/* Processor specific values for the Phdr p_type field. */
-#define PT_IA_64_ARCHEXT (PT_LOPROC + 0) /* arch extension bits */
-#define PT_IA_64_UNWIND (PT_LOPROC + 1) /* ia64 unwind bits */
-#define PT_IA_64_HP_OPT_ANOT (PT_LOOS + 0x12)
-#define PT_IA_64_HP_HSL_ANOT (PT_LOOS + 0x13)
-#define PT_IA_64_HP_STACK (PT_LOOS + 0x14)
-
-/* Processor specific flags for the Phdr p_flags field. */
-#define PF_IA_64_NORECOV 0x80000000 /* spec insns w/o recovery */
-
-/* Processor specific values for the Shdr sh_type field. */
-#define SHT_IA_64_EXT (SHT_LOPROC + 0) /* extension bits */
-#define SHT_IA_64_UNWIND (SHT_LOPROC + 1) /* unwind bits */
-
-/* Processor specific flags for the Shdr sh_flags field. */
-#define SHF_IA_64_SHORT 0x10000000 /* section near gp */
-#define SHF_IA_64_NORECOV 0x20000000 /* spec insns w/o recovery */
-
-/* Processor specific values for the Dyn d_tag field. */
-#define DT_IA_64_PLT_RESERVE (DT_LOPROC + 0)
-#define DT_IA_64_NUM 1
-
-/* IA-64 relocations. */
-#define R_IA64_NONE 0x00 /* none */
-#define R_IA64_IMM14 0x21 /* symbol + addend, add imm14 */
-#define R_IA64_IMM22 0x22 /* symbol + addend, add imm22 */
-#define R_IA64_IMM64 0x23 /* symbol + addend, mov imm64 */
-#define R_IA64_DIR32MSB 0x24 /* symbol + addend, data4 MSB */
-#define R_IA64_DIR32LSB 0x25 /* symbol + addend, data4 LSB */
-#define R_IA64_DIR64MSB 0x26 /* symbol + addend, data8 MSB */
-#define R_IA64_DIR64LSB 0x27 /* symbol + addend, data8 LSB */
-#define R_IA64_GPREL22 0x2a /* @gprel(sym + add), add imm22 */
-#define R_IA64_GPREL64I 0x2b /* @gprel(sym + add), mov imm64 */
-#define R_IA64_GPREL32MSB 0x2c /* @gprel(sym + add), data4 MSB */
-#define R_IA64_GPREL32LSB 0x2d /* @gprel(sym + add), data4 LSB */
-#define R_IA64_GPREL64MSB 0x2e /* @gprel(sym + add), data8 MSB */
-#define R_IA64_GPREL64LSB 0x2f /* @gprel(sym + add), data8 LSB */
-#define R_IA64_LTOFF22 0x32 /* @ltoff(sym + add), add imm22 */
-#define R_IA64_LTOFF64I 0x33 /* @ltoff(sym + add), mov imm64 */
-#define R_IA64_PLTOFF22 0x3a /* @pltoff(sym + add), add imm22 */
-#define R_IA64_PLTOFF64I 0x3b /* @pltoff(sym + add), mov imm64 */
-#define R_IA64_PLTOFF64MSB 0x3e /* @pltoff(sym + add), data8 MSB */
-#define R_IA64_PLTOFF64LSB 0x3f /* @pltoff(sym + add), data8 LSB */
-#define R_IA64_FPTR64I 0x43 /* @fptr(sym + add), mov imm64 */
-#define R_IA64_FPTR32MSB 0x44 /* @fptr(sym + add), data4 MSB */
-#define R_IA64_FPTR32LSB 0x45 /* @fptr(sym + add), data4 LSB */
-#define R_IA64_FPTR64MSB 0x46 /* @fptr(sym + add), data8 MSB */
-#define R_IA64_FPTR64LSB 0x47 /* @fptr(sym + add), data8 LSB */
-#define R_IA64_PCREL60B 0x48 /* @pcrel(sym + add), brl */
-#define R_IA64_PCREL21B 0x49 /* @pcrel(sym + add), ptb, call */
-#define R_IA64_PCREL21M 0x4a /* @pcrel(sym + add), chk.s */
-#define R_IA64_PCREL21F 0x4b /* @pcrel(sym + add), fchkf */
-#define R_IA64_PCREL32MSB 0x4c /* @pcrel(sym + add), data4 MSB */
-#define R_IA64_PCREL32LSB 0x4d /* @pcrel(sym + add), data4 LSB */
-#define R_IA64_PCREL64MSB 0x4e /* @pcrel(sym + add), data8 MSB */
-#define R_IA64_PCREL64LSB 0x4f /* @pcrel(sym + add), data8 LSB */
-#define R_IA64_LTOFF_FPTR22 0x52 /* @ltoff(@fptr(s+a)), imm22 */
-#define R_IA64_LTOFF_FPTR64I 0x53 /* @ltoff(@fptr(s+a)), imm64 */
-#define R_IA64_LTOFF_FPTR32MSB 0x54 /* @ltoff(@fptr(s+a)), data4 MSB */
-#define R_IA64_LTOFF_FPTR32LSB 0x55 /* @ltoff(@fptr(s+a)), data4 LSB */
-#define R_IA64_LTOFF_FPTR64MSB 0x56 /* @ltoff(@fptr(s+a)), data8 MSB */
-#define R_IA64_LTOFF_FPTR64LSB 0x57 /* @ltoff(@fptr(s+a)), data8 LSB */
-#define R_IA64_SEGREL32MSB 0x5c /* @segrel(sym + add), data4 MSB */
-#define R_IA64_SEGREL32LSB 0x5d /* @segrel(sym + add), data4 LSB */
-#define R_IA64_SEGREL64MSB 0x5e /* @segrel(sym + add), data8 MSB */
-#define R_IA64_SEGREL64LSB 0x5f /* @segrel(sym + add), data8 LSB */
-#define R_IA64_SECREL32MSB 0x64 /* @secrel(sym + add), data4 MSB */
-#define R_IA64_SECREL32LSB 0x65 /* @secrel(sym + add), data4 LSB */
-#define R_IA64_SECREL64MSB 0x66 /* @secrel(sym + add), data8 MSB */
-#define R_IA64_SECREL64LSB 0x67 /* @secrel(sym + add), data8 LSB */
-#define R_IA64_REL32MSB 0x6c /* data 4 + REL */
-#define R_IA64_REL32LSB 0x6d /* data 4 + REL */
-#define R_IA64_REL64MSB 0x6e /* data 8 + REL */
-#define R_IA64_REL64LSB 0x6f /* data 8 + REL */
-#define R_IA64_LTV32MSB 0x74 /* symbol + addend, data4 MSB */
-#define R_IA64_LTV32LSB 0x75 /* symbol + addend, data4 LSB */
-#define R_IA64_LTV64MSB 0x76 /* symbol + addend, data8 MSB */
-#define R_IA64_LTV64LSB 0x77 /* symbol + addend, data8 LSB */
-#define R_IA64_PCREL21BI 0x79 /* @pcrel(sym + add), 21bit inst */
-#define R_IA64_PCREL22 0x7a /* @pcrel(sym + add), 22bit inst */
-#define R_IA64_PCREL64I 0x7b /* @pcrel(sym + add), 64bit inst */
-#define R_IA64_IPLTMSB 0x80 /* dynamic reloc, imported PLT, MSB */
-#define R_IA64_IPLTLSB 0x81 /* dynamic reloc, imported PLT, LSB */
-#define R_IA64_COPY 0x84 /* copy relocation */
-#define R_IA64_SUB 0x85 /* Addend and symbol difference */
-#define R_IA64_LTOFF22X 0x86 /* LTOFF22, relaxable. */
-#define R_IA64_LDXMOV 0x87 /* Use of LTOFF22X. */
-#define R_IA64_TPREL14 0x91 /* @tprel(sym + add), imm14 */
-#define R_IA64_TPREL22 0x92 /* @tprel(sym + add), imm22 */
-#define R_IA64_TPREL64I 0x93 /* @tprel(sym + add), imm64 */
-#define R_IA64_TPREL64MSB 0x96 /* @tprel(sym + add), data8 MSB */
-#define R_IA64_TPREL64LSB 0x97 /* @tprel(sym + add), data8 LSB */
-#define R_IA64_LTOFF_TPREL22 0x9a /* @ltoff(@tprel(s+a)), imm2 */
-#define R_IA64_DTPMOD64MSB 0xa6 /* @dtpmod(sym + add), data8 MSB */
-#define R_IA64_DTPMOD64LSB 0xa7 /* @dtpmod(sym + add), data8 LSB */
-#define R_IA64_LTOFF_DTPMOD22 0xaa /* @ltoff(@dtpmod(sym + add)), imm22 */
-#define R_IA64_DTPREL14 0xb1 /* @dtprel(sym + add), imm14 */
-#define R_IA64_DTPREL22 0xb2 /* @dtprel(sym + add), imm22 */
-#define R_IA64_DTPREL64I 0xb3 /* @dtprel(sym + add), imm64 */
-#define R_IA64_DTPREL32MSB 0xb4 /* @dtprel(sym + add), data4 MSB */
-#define R_IA64_DTPREL32LSB 0xb5 /* @dtprel(sym + add), data4 LSB */
-#define R_IA64_DTPREL64MSB 0xb6 /* @dtprel(sym + add), data8 MSB */
-#define R_IA64_DTPREL64LSB 0xb7 /* @dtprel(sym + add), data8 LSB */
-#define R_IA64_LTOFF_DTPREL22 0xba /* @ltoff(@dtprel(s+a)), imm22 */
-
-/* SH specific declarations */
-
-/* SH relocs. */
-#define R_SH_NONE 0
-#define R_SH_DIR32 1
-#define R_SH_REL32 2
-#define R_SH_DIR8WPN 3
-#define R_SH_IND12W 4
-#define R_SH_DIR8WPL 5
-#define R_SH_DIR8WPZ 6
-#define R_SH_DIR8BP 7
-#define R_SH_DIR8W 8
-#define R_SH_DIR8L 9
-#define R_SH_SWITCH16 25
-#define R_SH_SWITCH32 26
-#define R_SH_USES 27
-#define R_SH_COUNT 28
-#define R_SH_ALIGN 29
-#define R_SH_CODE 30
-#define R_SH_DATA 31
-#define R_SH_LABEL 32
-#define R_SH_SWITCH8 33
-#define R_SH_GNU_VTINHERIT 34
-#define R_SH_GNU_VTENTRY 35
-#define R_SH_TLS_GD_32 144
-#define R_SH_TLS_LD_32 145
-#define R_SH_TLS_LDO_32 146
-#define R_SH_TLS_IE_32 147
-#define R_SH_TLS_LE_32 148
-#define R_SH_TLS_DTPMOD32 149
-#define R_SH_TLS_DTPOFF32 150
-#define R_SH_TLS_TPOFF32 151
-#define R_SH_GOT32 160
-#define R_SH_PLT32 161
-#define R_SH_COPY 162
-#define R_SH_GLOB_DAT 163
-#define R_SH_JMP_SLOT 164
-#define R_SH_RELATIVE 165
-#define R_SH_GOTOFF 166
-#define R_SH_GOTPC 167
-/* Keep this the last entry. */
-#define R_SH_NUM 256
-
-/* Additional s390 relocs */
-
-#define R_390_NONE 0 /* No reloc. */
-#define R_390_8 1 /* Direct 8 bit. */
-#define R_390_12 2 /* Direct 12 bit. */
-#define R_390_16 3 /* Direct 16 bit. */
-#define R_390_32 4 /* Direct 32 bit. */
-#define R_390_PC32 5 /* PC relative 32 bit. */
-#define R_390_GOT12 6 /* 12 bit GOT offset. */
-#define R_390_GOT32 7 /* 32 bit GOT offset. */
-#define R_390_PLT32 8 /* 32 bit PC relative PLT address. */
-#define R_390_COPY 9 /* Copy symbol at runtime. */
-#define R_390_GLOB_DAT 10 /* Create GOT entry. */
-#define R_390_JMP_SLOT 11 /* Create PLT entry. */
-#define R_390_RELATIVE 12 /* Adjust by program base. */
-#define R_390_GOTOFF32 13 /* 32 bit offset to GOT. */
-#define R_390_GOTPC 14 /* 32 bit PC relative offset to GOT. */
-#define R_390_GOT16 15 /* 16 bit GOT offset. */
-#define R_390_PC16 16 /* PC relative 16 bit. */
-#define R_390_PC16DBL 17 /* PC relative 16 bit shifted by 1. */
-#define R_390_PLT16DBL 18 /* 16 bit PC rel. PLT shifted by 1. */
-#define R_390_PC32DBL 19 /* PC relative 32 bit shifted by 1. */
-#define R_390_PLT32DBL 20 /* 32 bit PC rel. PLT shifted by 1. */
-#define R_390_GOTPCDBL 21 /* 32 bit PC rel. GOT shifted by 1. */
-#define R_390_64 22 /* Direct 64 bit. */
-#define R_390_PC64 23 /* PC relative 64 bit. */
-#define R_390_GOT64 24 /* 64 bit GOT offset. */
-#define R_390_PLT64 25 /* 64 bit PC relative PLT address. */
-#define R_390_GOTENT 26 /* 32 bit PC rel. to GOT entry >> 1. */
-#define R_390_GOTOFF16 27 /* 16 bit offset to GOT. */
-#define R_390_GOTOFF64 28 /* 64 bit offset to GOT. */
-#define R_390_GOTPLT12 29 /* 12 bit offset to jump slot. */
-#define R_390_GOTPLT16 30 /* 16 bit offset to jump slot. */
-#define R_390_GOTPLT32 31 /* 32 bit offset to jump slot. */
-#define R_390_GOTPLT64 32 /* 64 bit offset to jump slot. */
-#define R_390_GOTPLTENT 33 /* 32 bit rel. offset to jump slot. */
-#define R_390_PLTOFF16 34 /* 16 bit offset from GOT to PLT. */
-#define R_390_PLTOFF32 35 /* 32 bit offset from GOT to PLT. */
-#define R_390_PLTOFF64 36 /* 16 bit offset from GOT to PLT. */
-#define R_390_TLS_LOAD 37 /* Tag for load insn in TLS code. */
-#define R_390_TLS_GDCALL 38 /* Tag for function call in general
- dynamic TLS code. */
-#define R_390_TLS_LDCALL 39 /* Tag for function call in local
- dynamic TLS code. */
-#define R_390_TLS_GD32 40 /* Direct 32 bit for general dynamic
- thread local data. */
-#define R_390_TLS_GD64 41 /* Direct 64 bit for general dynamic
- thread local data. */
-#define R_390_TLS_GOTIE12 42 /* 12 bit GOT offset for static TLS
- block offset. */
-#define R_390_TLS_GOTIE32 43 /* 32 bit GOT offset for static TLS
- block offset. */
-#define R_390_TLS_GOTIE64 44 /* 64 bit GOT offset for static TLS
- block offset. */
-#define R_390_TLS_LDM32 45 /* Direct 32 bit for local dynamic
- thread local data in LE code. */
-#define R_390_TLS_LDM64 46 /* Direct 64 bit for local dynamic
- thread local data in LE code. */
-#define R_390_TLS_IE32 47 /* 32 bit address of GOT entry for
- negated static TLS block offset. */
-#define R_390_TLS_IE64 48 /* 64 bit address of GOT entry for
- negated static TLS block offset. */
-#define R_390_TLS_IEENT 49 /* 32 bit rel. offset to GOT entry for
- negated static TLS block offset. */
-#define R_390_TLS_LE32 50 /* 32 bit negated offset relative to
- static TLS block. */
-#define R_390_TLS_LE64 51 /* 64 bit negated offset relative to
- static TLS block. */
-#define R_390_TLS_LDO32 52 /* 32 bit offset relative to TLS
- block. */
-#define R_390_TLS_LDO64 53 /* 64 bit offset relative to TLS
- block. */
-#define R_390_TLS_DTPMOD 54 /* ID of module containing symbol. */
-#define R_390_TLS_DTPOFF 55 /* Offset in TLS block. */
-#define R_390_TLS_TPOFF 56 /* Negated offset in static TLS
- block. */
-#define R_390_20 57 /* Direct 20 bit. */
-#define R_390_GOT20 58 /* 20 bit GOT offset. */
-#define R_390_GOTPLT20 59 /* 20 bit offset to jump slot. */
-#define R_390_TLS_GOTIE20 60 /* 20 bit GOT offset for static TLS
- block offset. */
-/* Keep this the last entry. */
-#define R_390_NUM 61
-
-
-/* CRIS relocations. */
-#define R_CRIS_NONE 0
-#define R_CRIS_8 1
-#define R_CRIS_16 2
-#define R_CRIS_32 3
-#define R_CRIS_8_PCREL 4
-#define R_CRIS_16_PCREL 5
-#define R_CRIS_32_PCREL 6
-#define R_CRIS_GNU_VTINHERIT 7
-#define R_CRIS_GNU_VTENTRY 8
-#define R_CRIS_COPY 9
-#define R_CRIS_GLOB_DAT 10
-#define R_CRIS_JUMP_SLOT 11
-#define R_CRIS_RELATIVE 12
-#define R_CRIS_16_GOT 13
-#define R_CRIS_32_GOT 14
-#define R_CRIS_16_GOTPLT 15
-#define R_CRIS_32_GOTPLT 16
-#define R_CRIS_32_GOTREL 17
-#define R_CRIS_32_PLT_GOTREL 18
-#define R_CRIS_32_PLT_PCREL 19
-
-#define R_CRIS_NUM 20
-
-
-/* AMD x86-64 relocations. */
-#define R_X86_64_NONE 0 /* No reloc */
-#define R_X86_64_64 1 /* Direct 64 bit */
-#define R_X86_64_PC32 2 /* PC relative 32 bit signed */
-#define R_X86_64_GOT32 3 /* 32 bit GOT entry */
-#define R_X86_64_PLT32 4 /* 32 bit PLT address */
-#define R_X86_64_COPY 5 /* Copy symbol at runtime */
-#define R_X86_64_GLOB_DAT 6 /* Create GOT entry */
-#define R_X86_64_JUMP_SLOT 7 /* Create PLT entry */
-#define R_X86_64_RELATIVE 8 /* Adjust by program base */
-#define R_X86_64_GOTPCREL 9 /* 32 bit signed PC relative
- offset to GOT */
-#define R_X86_64_32 10 /* Direct 32 bit zero extended */
-#define R_X86_64_32S 11 /* Direct 32 bit sign extended */
-#define R_X86_64_16 12 /* Direct 16 bit zero extended */
-#define R_X86_64_PC16 13 /* 16 bit sign extended pc relative */
-#define R_X86_64_8 14 /* Direct 8 bit sign extended */
-#define R_X86_64_PC8 15 /* 8 bit sign extended pc relative */
-#define R_X86_64_DTPMOD64 16 /* ID of module containing symbol */
-#define R_X86_64_DTPOFF64 17 /* Offset in module's TLS block */
-#define R_X86_64_TPOFF64 18 /* Offset in initial TLS block */
-#define R_X86_64_TLSGD 19 /* 32 bit signed PC relative offset
- to two GOT entries for GD symbol */
-#define R_X86_64_TLSLD 20 /* 32 bit signed PC relative offset
- to two GOT entries for LD symbol */
-#define R_X86_64_DTPOFF32 21 /* Offset in TLS block */
-#define R_X86_64_GOTTPOFF 22 /* 32 bit signed PC relative offset
- to GOT entry for IE symbol */
-#define R_X86_64_TPOFF32 23 /* Offset in initial TLS block */
-#define R_X86_64_PC64 24 /* PC relative 64 bit */
-#define R_X86_64_GOTOFF64 25 /* 64 bit offset to GOT */
-#define R_X86_64_GOTPC32 26 /* 32 bit signed pc relative
- offset to GOT */
-/* 27 .. 33 */
-#define R_X86_64_GOTPC32_TLSDESC 34 /* GOT offset for TLS descriptor. */
-#define R_X86_64_TLSDESC_CALL 35 /* Marker for call through TLS
- descriptor. */
-#define R_X86_64_TLSDESC 36 /* TLS descriptor. */
-
-#define R_X86_64_NUM 37
-
-
-/* AM33 relocations. */
-#define R_MN10300_NONE 0 /* No reloc. */
-#define R_MN10300_32 1 /* Direct 32 bit. */
-#define R_MN10300_16 2 /* Direct 16 bit. */
-#define R_MN10300_8 3 /* Direct 8 bit. */
-#define R_MN10300_PCREL32 4 /* PC-relative 32-bit. */
-#define R_MN10300_PCREL16 5 /* PC-relative 16-bit signed. */
-#define R_MN10300_PCREL8 6 /* PC-relative 8-bit signed. */
-#define R_MN10300_GNU_VTINHERIT 7 /* Ancient C++ vtable garbage... */
-#define R_MN10300_GNU_VTENTRY 8 /* ... collection annotation. */
-#define R_MN10300_24 9 /* Direct 24 bit. */
-#define R_MN10300_GOTPC32 10 /* 32-bit PCrel offset to GOT. */
-#define R_MN10300_GOTPC16 11 /* 16-bit PCrel offset to GOT. */
-#define R_MN10300_GOTOFF32 12 /* 32-bit offset from GOT. */
-#define R_MN10300_GOTOFF24 13 /* 24-bit offset from GOT. */
-#define R_MN10300_GOTOFF16 14 /* 16-bit offset from GOT. */
-#define R_MN10300_PLT32 15 /* 32-bit PCrel to PLT entry. */
-#define R_MN10300_PLT16 16 /* 16-bit PCrel to PLT entry. */
-#define R_MN10300_GOT32 17 /* 32-bit offset to GOT entry. */
-#define R_MN10300_GOT24 18 /* 24-bit offset to GOT entry. */
-#define R_MN10300_GOT16 19 /* 16-bit offset to GOT entry. */
-#define R_MN10300_COPY 20 /* Copy symbol at runtime. */
-#define R_MN10300_GLOB_DAT 21 /* Create GOT entry. */
-#define R_MN10300_JMP_SLOT 22 /* Create PLT entry. */
-#define R_MN10300_RELATIVE 23 /* Adjust by program base. */
-
-#define R_MN10300_NUM 24
-
-
-/* M32R relocs. */
-#define R_M32R_NONE 0 /* No reloc. */
-#define R_M32R_16 1 /* Direct 16 bit. */
-#define R_M32R_32 2 /* Direct 32 bit. */
-#define R_M32R_24 3 /* Direct 24 bit. */
-#define R_M32R_10_PCREL 4 /* PC relative 10 bit shifted. */
-#define R_M32R_18_PCREL 5 /* PC relative 18 bit shifted. */
-#define R_M32R_26_PCREL 6 /* PC relative 26 bit shifted. */
-#define R_M32R_HI16_ULO 7 /* High 16 bit with unsigned low. */
-#define R_M32R_HI16_SLO 8 /* High 16 bit with signed low. */
-#define R_M32R_LO16 9 /* Low 16 bit. */
-#define R_M32R_SDA16 10 /* 16 bit offset in SDA. */
-#define R_M32R_GNU_VTINHERIT 11
-#define R_M32R_GNU_VTENTRY 12
-/* M32R relocs use SHT_RELA. */
-#define R_M32R_16_RELA 33 /* Direct 16 bit. */
-#define R_M32R_32_RELA 34 /* Direct 32 bit. */
-#define R_M32R_24_RELA 35 /* Direct 24 bit. */
-#define R_M32R_10_PCREL_RELA 36 /* PC relative 10 bit shifted. */
-#define R_M32R_18_PCREL_RELA 37 /* PC relative 18 bit shifted. */
-#define R_M32R_26_PCREL_RELA 38 /* PC relative 26 bit shifted. */
-#define R_M32R_HI16_ULO_RELA 39 /* High 16 bit with unsigned low */
-#define R_M32R_HI16_SLO_RELA 40 /* High 16 bit with signed low */
-#define R_M32R_LO16_RELA 41 /* Low 16 bit */
-#define R_M32R_SDA16_RELA 42 /* 16 bit offset in SDA */
-#define R_M32R_RELA_GNU_VTINHERIT 43
-#define R_M32R_RELA_GNU_VTENTRY 44
-#define R_M32R_REL32 45 /* PC relative 32 bit. */
-
-#define R_M32R_GOT24 48 /* 24 bit GOT entry */
-#define R_M32R_26_PLTREL 49 /* 26 bit PC relative to PLT shifted */
-#define R_M32R_COPY 50 /* Copy symbol at runtime */
-#define R_M32R_GLOB_DAT 51 /* Create GOT entry */
-#define R_M32R_JMP_SLOT 52 /* Create PLT entry */
-#define R_M32R_RELATIVE 53 /* Adjust by program base */
-#define R_M32R_GOTOFF 54 /* 24 bit offset to GOT */
-#define R_M32R_GOTPC24 55 /* 24 bit PC relative offset to GOT */
-#define R_M32R_GOT16_HI_ULO 56 /* High 16 bit GOT entry with unsigned
- low */
-#define R_M32R_GOT16_HI_SLO 57 /* High 16 bit GOT entry with signed
- low */
-#define R_M32R_GOT16_LO 58 /* Low 16 bit GOT entry */
-#define R_M32R_GOTPC_HI_ULO 59 /* High 16 bit PC relative offset to
- GOT with unsigned low */
-#define R_M32R_GOTPC_HI_SLO 60 /* High 16 bit PC relative offset to
- GOT with signed low */
-#define R_M32R_GOTPC_LO 61 /* Low 16 bit PC relative offset to
- GOT */
-#define R_M32R_GOTOFF_HI_ULO 62 /* High 16 bit offset to GOT
- with unsigned low */
-#define R_M32R_GOTOFF_HI_SLO 63 /* High 16 bit offset to GOT
- with signed low */
-#define R_M32R_GOTOFF_LO 64 /* Low 16 bit offset to GOT */
-#define R_M32R_NUM 256 /* Keep this the last entry. */
-
-
-#endif /* elf.h */
diff --git a/sources/patchelf/patchelf.cc b/sources/patchelf/patchelf.cc
deleted file mode 100644
index c6f495e1c..000000000
--- a/sources/patchelf/patchelf.cc
+++ /dev/null
@@ -1,1239 +0,0 @@
-#include <string>
-#include <vector>
-#include <set>
-#include <map>
-#include <algorithm>
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <stdarg.h>
-#include <assert.h>
-#include <string.h>
-#include <errno.h>
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <limits.h>
-
-#include "elf.h"
-
-using namespace std;
-
-
-#ifdef MIPSEL
-/* The lemote fuloong 2f kernel defconfig sets a page size of 16KB */
-const unsigned int pageSize = 4096*4;
-#else
-const unsigned int pageSize = 4096;
-#endif
-
-
-static bool debugMode = false;
-
-static bool forceRPath = false;
-
-static string fileName;
-
-
-off_t fileSize, maxSize;
-unsigned char * contents = 0;
-
-
-#define ElfFileParams class Elf_Ehdr, class Elf_Phdr, class Elf_Shdr, class Elf_Addr, class Elf_Off, class Elf_Dyn, class Elf_Sym
-#define ElfFileParamNames Elf_Ehdr, Elf_Phdr, Elf_Shdr, Elf_Addr, Elf_Off, Elf_Dyn, Elf_Sym
-
-
-template<ElfFileParams>
-class ElfFile
-{
- Elf_Ehdr * hdr;
- vector<Elf_Phdr> phdrs;
- vector<Elf_Shdr> shdrs;
-
- bool littleEndian;
-
- bool changed;
-
- bool isExecutable;
-
- typedef string SectionName;
- typedef map<SectionName, string> ReplacedSections;
-
- ReplacedSections replacedSections;
-
- string sectionNames; /* content of the .shstrtab section */
-
- /* Align on 4 or 8 bytes boundaries on 32- or 64-bit platforms
- respectively. */
- unsigned int sectionAlignment;
-
- vector<SectionName> sectionsByOldIndex;
-
-public:
-
- ElfFile()
- {
- changed = false;
- sectionAlignment = sizeof(Elf_Off);
- }
-
- bool isChanged()
- {
- return changed;
- }
-
- void parse();
-
-private:
-
- struct CompPhdr
- {
- ElfFile * elfFile;
- bool operator ()(const Elf_Phdr & x, const Elf_Phdr & y)
- {
- if (x.p_type == PT_PHDR) return true;
- if (y.p_type == PT_PHDR) return false;
- return elfFile->rdi(x.p_paddr) < elfFile->rdi(y.p_paddr);
- }
- };
-
- friend struct CompPhdr;
-
- void sortPhdrs();
-
- struct CompShdr
- {
- ElfFile * elfFile;
- bool operator ()(const Elf_Shdr & x, const Elf_Shdr & y)
- {
- return elfFile->rdi(x.sh_offset) < elfFile->rdi(y.sh_offset);
- }
- };
-
- friend struct CompShdr;
-
- void sortShdrs();
-
- void shiftFile(unsigned int extraPages, Elf_Addr startPage);
-
- string getSectionName(const Elf_Shdr & shdr);
-
- Elf_Shdr & findSection(const SectionName & sectionName);
-
- Elf_Shdr * findSection2(const SectionName & sectionName);
-
- unsigned int findSection3(const SectionName & sectionName);
-
- string & replaceSection(const SectionName & sectionName,
- unsigned int size);
-
- void writeReplacedSections(Elf_Off & curOff,
- Elf_Addr startAddr, Elf_Off startOffset);
-
- void rewriteHeaders(Elf_Addr phdrAddress);
-
- void rewriteSectionsLibrary();
-
- void rewriteSectionsExecutable();
-
-public:
-
- void rewriteSections();
-
- string getInterpreter();
-
- void setInterpreter(const string & newInterpreter);
-
- typedef enum { rpPrint, rpShrink, rpSet } RPathOp;
-
- void modifyRPath(RPathOp op, string newRPath);
-
- void removeNeeded(set<string> libs);
-
-private:
-
- /* Convert an integer in big or little endian representation (as
- specified by the ELF header) to this platform's integer
- representation. */
- template<class I>
- I rdi(I i);
-
- /* Convert back to the ELF representation. */
- template<class I>
- I wri(I & t, unsigned long long i)
- {
- t = rdi((I) i);
- return i;
- }
-};
-
-
-/* !!! G++ creates broken code if this function is inlined, don't know
- why... */
-template<ElfFileParams>
-template<class I>
-I ElfFile<ElfFileParamNames>::rdi(I i)
-{
- I r = 0;
- if (littleEndian) {
- for (unsigned int n = 0; n < sizeof(I); ++n) {
- r |= ((I) *(((unsigned char *) &i) + n)) << (n * 8);
- }
- } else {
- for (unsigned int n = 0; n < sizeof(I); ++n) {
- r |= ((I) *(((unsigned char *) &i) + n)) << ((sizeof(I) - n - 1) * 8);
- }
- }
- return r;
-}
-
-
-/* Ugly: used to erase DT_RUNPATH when using --force-rpath. */
-#define DT_IGNORE 0x00726e67
-
-
-static void debug(const char * format, ...)
-{
- if (debugMode) {
- va_list ap;
- va_start(ap, format);
- vfprintf(stderr, format, ap);
- va_end(ap);
- }
-}
-
-
-static void error(string msg)
-{
- if (errno) perror(msg.c_str()); else fprintf(stderr, "%s\n", msg.c_str());
- exit(1);
-}
-
-
-static void growFile(off_t newSize)
-{
- if (newSize > maxSize) error("maximum file size exceeded");
- if (newSize <= fileSize) return;
- if (newSize > fileSize)
- memset(contents + fileSize, 0, newSize - fileSize);
- fileSize = newSize;
-}
-
-
-static void readFile(string fileName, mode_t * fileMode)
-{
- struct stat st;
- if (stat(fileName.c_str(), &st) != 0) error("stat");
- fileSize = st.st_size;
- *fileMode = st.st_mode;
- maxSize = fileSize + 8 * 1024 * 1024;
-
- contents = (unsigned char *) malloc(fileSize + maxSize);
- if (!contents) abort();
-
- int fd = open(fileName.c_str(), O_RDONLY);
- if (fd == -1) error("open");
-
- if (read(fd, contents, fileSize) != fileSize) error("read");
-
- close(fd);
-}
-
-
-static void checkPointer(void * p, unsigned int size)
-{
- unsigned char * q = (unsigned char *) p;
- assert(q >= contents && q + size <= contents + fileSize);
-}
-
-
-template<ElfFileParams>
-void ElfFile<ElfFileParamNames>::parse()
-{
- isExecutable = false;
-
- /* Check the ELF header for basic validity. */
- if (fileSize < (off_t) sizeof(Elf_Ehdr)) error("missing ELF header");
-
- hdr = (Elf_Ehdr *) contents;
-
- if (memcmp(hdr->e_ident, ELFMAG, SELFMAG) != 0)
- error("not an ELF executable");
-
- littleEndian = contents[EI_DATA] == ELFDATA2LSB;
-
- if (rdi(hdr->e_type) != ET_EXEC && rdi(hdr->e_type) != ET_DYN)
- error("wrong ELF type");
-
- if ((off_t) (rdi(hdr->e_phoff) + rdi(hdr->e_phnum) * rdi(hdr->e_phentsize)) > fileSize)
- error("missing program headers");
-
- if ((off_t) (rdi(hdr->e_shoff) + rdi(hdr->e_shnum) * rdi(hdr->e_shentsize)) > fileSize)
- error("missing section headers");
-
- if (rdi(hdr->e_phentsize) != sizeof(Elf_Phdr))
- error("program headers have wrong size");
-
- /* Copy the program and section headers. */
- for (int i = 0; i < rdi(hdr->e_phnum); ++i) {
- phdrs.push_back(* ((Elf_Phdr *) (contents + rdi(hdr->e_phoff)) + i));
- if (rdi(phdrs[i].p_type) == PT_INTERP) isExecutable = true;
- }
-
- for (int i = 0; i < rdi(hdr->e_shnum); ++i)
- shdrs.push_back(* ((Elf_Shdr *) (contents + rdi(hdr->e_shoff)) + i));
-
- /* Get the section header string table section (".shstrtab"). Its
- index in the section header table is given by e_shstrndx field
- of the ELF header. */
- unsigned int shstrtabIndex = rdi(hdr->e_shstrndx);
- assert(shstrtabIndex < shdrs.size());
- unsigned int shstrtabSize = rdi(shdrs[shstrtabIndex].sh_size);
- char * shstrtab = (char * ) contents + rdi(shdrs[shstrtabIndex].sh_offset);
- checkPointer(shstrtab, shstrtabSize);
-
- assert(shstrtabSize > 0);
- assert(shstrtab[shstrtabSize - 1] == 0);
-
- sectionNames = string(shstrtab, shstrtabSize);
-
- sectionsByOldIndex.resize(hdr->e_shnum);
- for (unsigned int i = 1; i < rdi(hdr->e_shnum); ++i)
- sectionsByOldIndex[i] = getSectionName(shdrs[i]);
-}
-
-
-template<ElfFileParams>
-void ElfFile<ElfFileParamNames>::sortPhdrs()
-{
- /* Sort the segments by offset. */
- CompPhdr comp;
- comp.elfFile = this;
- sort(phdrs.begin(), phdrs.end(), comp);
-}
-
-
-template<ElfFileParams>
-void ElfFile<ElfFileParamNames>::sortShdrs()
-{
- /* Translate sh_link mappings to section names, since sorting the
- sections will invalidate the sh_link fields. */
- map<SectionName, SectionName> linkage;
- for (unsigned int i = 1; i < rdi(hdr->e_shnum); ++i)
- if (rdi(shdrs[i].sh_link) != 0)
- linkage[getSectionName(shdrs[i])] = getSectionName(shdrs[rdi(shdrs[i].sh_link)]);
-
- /* Idem for sh_info on certain sections. */
- map<SectionName, SectionName> info;
- for (unsigned int i = 1; i < rdi(hdr->e_shnum); ++i)
- if (rdi(shdrs[i].sh_info) != 0 &&
- (rdi(shdrs[i].sh_type) == SHT_REL || rdi(shdrs[i].sh_type) == SHT_RELA))
- info[getSectionName(shdrs[i])] = getSectionName(shdrs[rdi(shdrs[i].sh_info)]);
-
- /* Idem for the index of the .shstrtab section in the ELF header. */
- SectionName shstrtabName = getSectionName(shdrs[rdi(hdr->e_shstrndx)]);
-
- /* Sort the sections by offset. */
- CompShdr comp;
- comp.elfFile = this;
- sort(shdrs.begin(), shdrs.end(), comp);
-
- /* Restore the sh_link mappings. */
- for (unsigned int i = 1; i < rdi(hdr->e_shnum); ++i)
- if (rdi(shdrs[i].sh_link) != 0)
- wri(shdrs[i].sh_link,
- findSection3(linkage[getSectionName(shdrs[i])]));
-
- /* And the st_info mappings. */
- for (unsigned int i = 1; i < rdi(hdr->e_shnum); ++i)
- if (rdi(shdrs[i].sh_info) != 0 &&
- (rdi(shdrs[i].sh_type) == SHT_REL || rdi(shdrs[i].sh_type) == SHT_RELA))
- wri(shdrs[i].sh_info,
- findSection3(info[getSectionName(shdrs[i])]));
-
- /* And the .shstrtab index. */
- wri(hdr->e_shstrndx, findSection3(shstrtabName));
-}
-
-
-static void writeFile(string fileName, mode_t fileMode)
-{
- string fileName2 = fileName + "_patchelf_tmp";
-
- int fd = open(fileName2.c_str(),
- O_CREAT | O_TRUNC | O_WRONLY, 0700);
- if (fd == -1) error("open");
-
- if (write(fd, contents, fileSize) != fileSize) error("write");
-
- if (close(fd) != 0) error("close");
-
- if (chmod(fileName2.c_str(), fileMode) != 0) error("chmod");
-
- if (rename(fileName2.c_str(), fileName.c_str()) != 0) error("rename");
-}
-
-
-static unsigned int roundUp(unsigned int n, unsigned int m)
-{
- return ((n - 1) / m + 1) * m;
-}
-
-
-template<ElfFileParams>
-void ElfFile<ElfFileParamNames>::shiftFile(unsigned int extraPages, Elf_Addr startPage)
-{
- /* Move the entire contents of the file `extraPages' pages
- further. */
- unsigned int oldSize = fileSize;
- unsigned int shift = extraPages * pageSize;
- growFile(fileSize + extraPages * pageSize);
- memmove(contents + extraPages * pageSize, contents, oldSize);
- memset(contents + sizeof(Elf_Ehdr), 0, shift - sizeof(Elf_Ehdr));
-
- /* Adjust the ELF header. */
- wri(hdr->e_phoff, sizeof(Elf_Ehdr));
- wri(hdr->e_shoff, rdi(hdr->e_shoff) + shift);
-
- /* Update the offsets in the section headers. */
- for (int i = 1; i < rdi(hdr->e_shnum); ++i)
- wri(shdrs[i].sh_offset, rdi(shdrs[i].sh_offset) + shift);
-
- /* Update the offsets in the program headers. */
- for (int i = 0; i < rdi(hdr->e_phnum); ++i) {
- wri(phdrs[i].p_offset, rdi(phdrs[i].p_offset) + shift);
- if (rdi(phdrs[i].p_align) != 0 &&
- (rdi(phdrs[i].p_vaddr) - rdi(phdrs[i].p_offset)) % rdi(phdrs[i].p_align) != 0) {
- debug("changing alignment of program header %d from %d to %d\n", i,
- rdi(phdrs[i].p_align), pageSize);
- wri(phdrs[i].p_align, pageSize);
- }
- }
-
- /* Add a segment that maps the new program/section headers and
- PT_INTERP segment into memory. Otherwise glibc will choke. */
- phdrs.resize(rdi(hdr->e_phnum) + 1);
- wri(hdr->e_phnum, rdi(hdr->e_phnum) + 1);
- Elf_Phdr & phdr = phdrs[rdi(hdr->e_phnum) - 1];
- wri(phdr.p_type, PT_LOAD);
- wri(phdr.p_offset, 0);
- wri(phdr.p_vaddr, wri(phdr.p_paddr, startPage));
- wri(phdr.p_filesz, wri(phdr.p_memsz, shift));
- wri(phdr.p_flags, PF_R | PF_W);
- wri(phdr.p_align, pageSize);
-}
-
-
-template<ElfFileParams>
-string ElfFile<ElfFileParamNames>::getSectionName(const Elf_Shdr & shdr)
-{
- return string(sectionNames.c_str() + rdi(shdr.sh_name));
-}
-
-
-template<ElfFileParams>
-Elf_Shdr & ElfFile<ElfFileParamNames>::findSection(const SectionName & sectionName)
-{
- Elf_Shdr * shdr = findSection2(sectionName);
- if (!shdr)
- error("cannot find section " + sectionName);
- return *shdr;
-}
-
-
-template<ElfFileParams>
-Elf_Shdr * ElfFile<ElfFileParamNames>::findSection2(const SectionName & sectionName)
-{
- unsigned int i = findSection3(sectionName);
- return i ? &shdrs[i] : 0;
-}
-
-
-template<ElfFileParams>
-unsigned int ElfFile<ElfFileParamNames>::findSection3(const SectionName & sectionName)
-{
- for (unsigned int i = 1; i < rdi(hdr->e_shnum); ++i)
- if (getSectionName(shdrs[i]) == sectionName) return i;
- return 0;
-}
-
-
-template<ElfFileParams>
-string & ElfFile<ElfFileParamNames>::replaceSection(const SectionName & sectionName,
- unsigned int size)
-{
- ReplacedSections::iterator i = replacedSections.find(sectionName);
- string s;
-
- if (i != replacedSections.end()) {
- s = string(i->second);
- } else {
- Elf_Shdr & shdr = findSection(sectionName);
- s = string((char *) contents + rdi(shdr.sh_offset), rdi(shdr.sh_size));
- }
-
- s.resize(size);
- replacedSections[sectionName] = s;
-
- return replacedSections[sectionName];
-}
-
-
-template<ElfFileParams>
-void ElfFile<ElfFileParamNames>::writeReplacedSections(Elf_Off & curOff,
- Elf_Addr startAddr, Elf_Off startOffset)
-{
- /* Overwrite the old section contents with 'X's. Do this
- *before* writing the new section contents (below) to prevent
- clobbering previously written new section contents. */
- for (ReplacedSections::iterator i = replacedSections.begin();
- i != replacedSections.end(); ++i)
- {
- string sectionName = i->first;
- Elf_Shdr & shdr = findSection(sectionName);
- memset(contents + rdi(shdr.sh_offset), 'X', rdi(shdr.sh_size));
- }
-
- for (ReplacedSections::iterator i = replacedSections.begin();
- i != replacedSections.end(); ++i)
- {
- string sectionName = i->first;
- Elf_Shdr & shdr = findSection(sectionName);
- debug("rewriting section `%s' from offset 0x%x (size %d) to offset 0x%x (size %d)\n",
- sectionName.c_str(), rdi(shdr.sh_offset), rdi(shdr.sh_size), curOff, i->second.size());
-
- memcpy(contents + curOff, (unsigned char *) i->second.c_str(),
- i->second.size());
-
- /* Update the section header for this section. */
- wri(shdr.sh_offset, curOff);
- wri(shdr.sh_addr, startAddr + (curOff - startOffset));
- wri(shdr.sh_size, i->second.size());
- wri(shdr.sh_addralign, sectionAlignment);
-
- /* If this is the .interp section, then the PT_INTERP segment
- must be sync'ed with it. */
- if (sectionName == ".interp") {
- for (unsigned int j = 0; j < phdrs.size(); ++j)
- if (rdi(phdrs[j].p_type) == PT_INTERP) {
- phdrs[j].p_offset = shdr.sh_offset;
- phdrs[j].p_vaddr = phdrs[j].p_paddr = shdr.sh_addr;
- phdrs[j].p_filesz = phdrs[j].p_memsz = shdr.sh_size;
- }
- }
-
- /* If this is the .dynamic section, then the PT_DYNAMIC segment
- must be sync'ed with it. */
- if (sectionName == ".dynamic") {
- for (unsigned int j = 0; j < phdrs.size(); ++j)
- if (rdi(phdrs[j].p_type) == PT_DYNAMIC) {
- phdrs[j].p_offset = shdr.sh_offset;
- phdrs[j].p_vaddr = phdrs[j].p_paddr = shdr.sh_addr;
- phdrs[j].p_filesz = phdrs[j].p_memsz = shdr.sh_size;
- }
- }
-
- curOff += roundUp(i->second.size(), sectionAlignment);
- }
-
- replacedSections.clear();
-}
-
-
-template<ElfFileParams>
-void ElfFile<ElfFileParamNames>::rewriteSectionsLibrary()
-{
- /* For dynamic libraries, we just place the replacement sections
- at the end of the file. They're mapped into memory by a
- PT_LOAD segment located directly after the last virtual address
- page of other segments. */
- Elf_Addr startPage = 0;
- for (unsigned int i = 0; i < phdrs.size(); ++i) {
- Elf_Addr thisPage = roundUp(rdi(phdrs[i].p_vaddr) + rdi(phdrs[i].p_memsz), pageSize);
- if (thisPage > startPage) startPage = thisPage;
- }
-
- debug("last page is 0x%llx\n", (unsigned long long) startPage);
-
-
- /* Compute the total space needed for the replaced sections and
- the program headers. */
- off_t neededSpace = (phdrs.size() + 1) * sizeof(Elf_Phdr);
- for (ReplacedSections::iterator i = replacedSections.begin();
- i != replacedSections.end(); ++i)
- neededSpace += roundUp(i->second.size(), sectionAlignment);
- debug("needed space is %d\n", neededSpace);
-
-
- size_t startOffset = roundUp(fileSize, pageSize);
-
- growFile(startOffset + neededSpace);
-
-
- /* Even though this file is of type ET_DYN, it could actually be
- an executable. For instance, Gold produces executables marked
- ET_DYN. In that case we can still hit the kernel bug that
- necessitated rewriteSectionsExecutable(). However, such
- executables also tend to start at virtual address 0, so
- rewriteSectionsExecutable() won't work because it doesn't have
- any virtual address space to grow downwards into. As a
- workaround, make sure that the virtual address of our new
- PT_LOAD segment relative to the first PT_LOAD segment is equal
- to its offset; otherwise we hit the kernel bug. This may
- require creating a hole in the executable. The bigger the size
- of the uninitialised data segment, the bigger the hole. */
- if (isExecutable) {
- if (startOffset >= startPage) {
- debug("shifting new PT_LOAD segment by %d bytes to work around a Linux kernel bug\n", startOffset - startPage);
- } else {
- size_t hole = startPage - startOffset;
- /* Print a warning, because the hole could be very big. */
- fprintf(stderr, "warning: working around a Linux kernel bug by creating a hole of %zu bytes in ‘%s’\n", hole, fileName.c_str());
- assert(hole % pageSize == 0);
- /* !!! We could create an actual hole in the file here,
- but it's probably not worth the effort. */
- growFile(fileSize + hole);
- startOffset += hole;
- }
- startPage = startOffset;
- }
-
-
- /* Add a segment that maps the replaced sections and program
- headers into memory. */
- phdrs.resize(rdi(hdr->e_phnum) + 1);
- wri(hdr->e_phnum, rdi(hdr->e_phnum) + 1);
- Elf_Phdr & phdr = phdrs[rdi(hdr->e_phnum) - 1];
- wri(phdr.p_type, PT_LOAD);
- wri(phdr.p_offset, startOffset);
- wri(phdr.p_vaddr, wri(phdr.p_paddr, startPage));
- wri(phdr.p_filesz, wri(phdr.p_memsz, neededSpace));
- wri(phdr.p_flags, PF_R | PF_W);
- wri(phdr.p_align, pageSize);
-
-
- /* Write out the replaced sections. */
- Elf_Off curOff = startOffset + phdrs.size() * sizeof(Elf_Phdr);
- writeReplacedSections(curOff, startPage, startOffset);
- assert((off_t) curOff == startOffset + neededSpace);
-
-
- /* Move the program header to the start of the new area. */
- wri(hdr->e_phoff, startOffset);
-
- rewriteHeaders(startPage);
-}
-
-
-template<ElfFileParams>
-void ElfFile<ElfFileParamNames>::rewriteSectionsExecutable()
-{
- /* Sort the sections by offset, otherwise we won't correctly find
- all the sections before the last replaced section. */
- sortShdrs();
-
-
- /* What is the index of the last replaced section? */
- unsigned int lastReplaced = 0;
- for (unsigned int i = 1; i < rdi(hdr->e_shnum); ++i) {
- string sectionName = getSectionName(shdrs[i]);
- if (replacedSections.find(sectionName) != replacedSections.end()) {
- debug("using replaced section `%s'\n", sectionName.c_str());
- lastReplaced = i;
- }
- }
-
- assert(lastReplaced != 0);
-
- debug("last replaced is %d\n", lastReplaced);
-
- /* Try to replace all sections before that, as far as possible.
- Stop when we reach an irreplacable section (such as one of type
- SHT_PROGBITS). These cannot be moved in virtual address space
- since that would invalidate absolute references to them. */
- assert(lastReplaced + 1 < shdrs.size()); /* !!! I'm lazy. */
- size_t startOffset = rdi(shdrs[lastReplaced + 1].sh_offset);
- Elf_Addr startAddr = rdi(shdrs[lastReplaced + 1].sh_addr);
- string prevSection;
- for (unsigned int i = 1; i <= lastReplaced; ++i) {
- Elf_Shdr & shdr(shdrs[i]);
- string sectionName = getSectionName(shdr);
- debug("looking at section `%s'\n", sectionName.c_str());
- /* !!! Why do we stop after a .dynstr section? I can't
- remember! */
- if ((rdi(shdr.sh_type) == SHT_PROGBITS && sectionName != ".interp")
- || prevSection == ".dynstr")
- {
- startOffset = rdi(shdr.sh_offset);
- startAddr = rdi(shdr.sh_addr);
- lastReplaced = i - 1;
- break;
- } else {
- if (replacedSections.find(sectionName) == replacedSections.end()) {
- debug("replacing section `%s' which is in the way\n", sectionName.c_str());
- replaceSection(sectionName, rdi(shdr.sh_size));
- }
- }
- prevSection = sectionName;
- }
-
- debug("first reserved offset/addr is 0x%x/0x%llx\n",
- startOffset, (unsigned long long) startAddr);
-
- assert(startAddr % pageSize == startOffset % pageSize);
- Elf_Addr firstPage = startAddr - startOffset;
- debug("first page is 0x%llx\n", (unsigned long long) firstPage);
-
- /* Right now we assume that the section headers are somewhere near
- the end, which appears to be the case most of the time.
- Therefore they're not accidentally overwritten by the replaced
- sections. !!! Fix this. */
- assert((off_t) rdi(hdr->e_shoff) >= startOffset);
-
-
- /* Compute the total space needed for the replaced sections, the
- ELF header, and the program headers. */
- size_t neededSpace = sizeof(Elf_Ehdr) + phdrs.size() * sizeof(Elf_Phdr);
- for (ReplacedSections::iterator i = replacedSections.begin();
- i != replacedSections.end(); ++i)
- neededSpace += roundUp(i->second.size(), sectionAlignment);
-
- debug("needed space is %d\n", neededSpace);
-
- /* If we need more space at the start of the file, then grow the
- file by the minimum number of pages and adjust internal
- offsets. */
- if (neededSpace > startOffset) {
-
- /* We also need an additional program header, so adjust for that. */
- neededSpace += sizeof(Elf_Phdr);
- debug("needed space is %d\n", neededSpace);
-
- unsigned int neededPages = roundUp(neededSpace - startOffset, pageSize) / pageSize;
- debug("needed pages is %d\n", neededPages);
- if (neededPages * pageSize > firstPage)
- error("virtual address space underrun!");
-
- firstPage -= neededPages * pageSize;
- startOffset += neededPages * pageSize;
-
- shiftFile(neededPages, firstPage);
- }
-
-
- /* Clear out the free space. */
- Elf_Off curOff = sizeof(Elf_Ehdr) + phdrs.size() * sizeof(Elf_Phdr);
- debug("clearing first %d bytes\n", startOffset - curOff);
- memset(contents + curOff, 0, startOffset - curOff);
-
-
- /* Write out the replaced sections. */
- writeReplacedSections(curOff, firstPage, 0);
- assert((off_t) curOff == neededSpace);
-
-
- rewriteHeaders(firstPage + rdi(hdr->e_phoff));
-}
-
-
-template<ElfFileParams>
-void ElfFile<ElfFileParamNames>::rewriteSections()
-{
- if (replacedSections.empty()) return;
-
- for (ReplacedSections::iterator i = replacedSections.begin();
- i != replacedSections.end(); ++i)
- debug("replacing section `%s' with size %d\n",
- i->first.c_str(), i->second.size());
-
- if (rdi(hdr->e_type) == ET_DYN) {
- debug("this is a dynamic library\n");
- rewriteSectionsLibrary();
- } else if (rdi(hdr->e_type) == ET_EXEC) {
- debug("this is an executable\n");
- rewriteSectionsExecutable();
- } else error("unknown ELF type");
-}
-
-
-template<ElfFileParams>
-void ElfFile<ElfFileParamNames>::rewriteHeaders(Elf_Addr phdrAddress)
-{
- /* Rewrite the program header table. */
-
- /* If there is a segment for the program header table, update it.
- (According to the ELF spec, it must be the first entry.) */
- if (rdi(phdrs[0].p_type) == PT_PHDR) {
- phdrs[0].p_offset = hdr->e_phoff;
- wri(phdrs[0].p_vaddr, wri(phdrs[0].p_paddr, phdrAddress));
- wri(phdrs[0].p_filesz, wri(phdrs[0].p_memsz, phdrs.size() * sizeof(Elf_Phdr)));
- }
-
- sortPhdrs();
-
- for (unsigned int i = 0; i < phdrs.size(); ++i)
- * ((Elf_Phdr *) (contents + rdi(hdr->e_phoff)) + i) = phdrs[i];
-
-
- /* Rewrite the section header table. For neatness, keep the
- sections sorted. */
- assert(rdi(hdr->e_shnum) == shdrs.size());
- sortShdrs();
- for (unsigned int i = 1; i < rdi(hdr->e_shnum); ++i)
- * ((Elf_Shdr *) (contents + rdi(hdr->e_shoff)) + i) = shdrs[i];
-
-
- /* Update all those nasty virtual addresses in the .dynamic
- section. Note that not all executables have .dynamic sections
- (e.g., those produced by klibc's klcc). */
- Elf_Shdr * shdrDynamic = findSection2(".dynamic");
- if (shdrDynamic) {
- Elf_Dyn * dyn = (Elf_Dyn *) (contents + rdi(shdrDynamic->sh_offset));
- unsigned int d_tag;
- for ( ; (d_tag = rdi(dyn->d_tag)) != DT_NULL; dyn++)
- if (d_tag == DT_STRTAB)
- dyn->d_un.d_ptr = findSection(".dynstr").sh_addr;
- else if (d_tag == DT_STRSZ)
- dyn->d_un.d_val = findSection(".dynstr").sh_size;
- else if (d_tag == DT_SYMTAB)
- dyn->d_un.d_ptr = findSection(".dynsym").sh_addr;
- else if (d_tag == DT_HASH)
- dyn->d_un.d_ptr = findSection(".hash").sh_addr;
- else if (d_tag == DT_GNU_HASH)
- dyn->d_un.d_ptr = findSection(".gnu.hash").sh_addr;
- else if (d_tag == DT_JMPREL) {
- Elf_Shdr * shdr = findSection2(".rel.plt");
- if (!shdr) shdr = findSection2(".rela.plt"); /* 64-bit Linux, x86-64 */
- if (!shdr) shdr = findSection2(".rela.IA_64.pltoff"); /* 64-bit Linux, IA-64 */
- if (!shdr) error("cannot find section corresponding to DT_JMPREL");
- dyn->d_un.d_ptr = shdr->sh_addr;
- }
- else if (d_tag == DT_REL) { /* !!! hack! */
- Elf_Shdr * shdr = findSection2(".rel.dyn");
- /* no idea if this makes sense, but it was needed for some
- program */
- if (!shdr) shdr = findSection2(".rel.got");
- if (!shdr) error("cannot find .rel.dyn or .rel.got");
- dyn->d_un.d_ptr = shdr->sh_addr;
- }
- else if (d_tag == DT_RELA)
- dyn->d_un.d_ptr = findSection(".rela.dyn").sh_addr; /* PPC Linux */
- else if (d_tag == DT_VERNEED)
- dyn->d_un.d_ptr = findSection(".gnu.version_r").sh_addr;
- else if (d_tag == DT_VERSYM)
- dyn->d_un.d_ptr = findSection(".gnu.version").sh_addr;
- }
-
-
- /* Rewrite the .dynsym section. It contains the indices of the
- sections in which symbols appear, so these need to be
- remapped. */
- for (unsigned int i = 1; i < rdi(hdr->e_shnum); ++i) {
- if (rdi(shdrs[i].sh_type) != SHT_SYMTAB && rdi(shdrs[i].sh_type) != SHT_DYNSYM) continue;
- debug("rewriting symbol table section %d\n", i);
- for (size_t entry = 0; (entry + 1) * sizeof(Elf_Sym) <= rdi(shdrs[i].sh_size); entry++) {
- Elf_Sym * sym = (Elf_Sym *) (contents + rdi(shdrs[i].sh_offset) + entry * sizeof(Elf_Sym));
- if (sym->st_shndx != SHN_UNDEF && sym->st_shndx < SHN_LORESERVE) {
- string section = sectionsByOldIndex[rdi(sym->st_shndx)];
- assert(!section.empty());
- unsigned int newIndex = findSection3(section); // inefficient
- //debug("rewriting symbol %d: index = %d (%s) -> %d\n", entry, rdi(sym->st_shndx), section.c_str(), newIndex);
- wri(sym->st_shndx, newIndex);
- }
- }
- }
-}
-
-
-
-static void setSubstr(string & s, unsigned int pos, const string & t)
-{
- assert(pos + t.size() <= s.size());
- copy(t.begin(), t.end(), s.begin() + pos);
-}
-
-
-template<ElfFileParams>
-string ElfFile<ElfFileParamNames>::getInterpreter()
-{
- Elf_Shdr & shdr = findSection(".interp");
- return string((char *) contents + rdi(shdr.sh_offset), rdi(shdr.sh_size));
-}
-
-
-template<ElfFileParams>
-void ElfFile<ElfFileParamNames>::setInterpreter(const string & newInterpreter)
-{
- string & section = replaceSection(".interp", newInterpreter.size() + 1);
- setSubstr(section, 0, newInterpreter + '\0');
- changed = true;
-}
-
-
-static void concatToRPath(string & rpath, const string & path)
-{
- if (!rpath.empty()) rpath += ":";
- rpath += path;
-}
-
-
-template<ElfFileParams>
-void ElfFile<ElfFileParamNames>::modifyRPath(RPathOp op, string newRPath)
-{
- Elf_Shdr & shdrDynamic = findSection(".dynamic");
-
- /* !!! We assume that the virtual address in the DT_STRTAB entry
- of the dynamic section corresponds to the .dynstr section. */
- Elf_Shdr & shdrDynStr = findSection(".dynstr");
- char * strTab = (char *) contents + rdi(shdrDynStr.sh_offset);
-
- /* Find the DT_STRTAB entry in the dynamic section. */
- Elf_Dyn * dyn = (Elf_Dyn *) (contents + rdi(shdrDynamic.sh_offset));
- Elf_Addr strTabAddr = 0;
- for ( ; rdi(dyn->d_tag) != DT_NULL; dyn++)
- if (rdi(dyn->d_tag) == DT_STRTAB) strTabAddr = rdi(dyn->d_un.d_ptr);
- if (!strTabAddr) error("strange: no string table");
-
- assert(strTabAddr == rdi(shdrDynStr.sh_addr));
-
-
- /* Walk through the dynamic section, look for the RPATH/RUNPATH
- entry.
-
- According to the ld.so docs, DT_RPATH is obsolete, we should
- use DT_RUNPATH. DT_RUNPATH has two advantages: it can be
- overriden by LD_LIBRARY_PATH, and it's scoped (the DT_RUNPATH
- for an executable or library doesn't affect the search path for
- libraries used by it). DT_RPATH is ignored if DT_RUNPATH is
- present. The binutils `ld' still generates only DT_RPATH,
- unless you use its `--enable-new-dtag' option, in which case it
- generates a DT_RPATH and DT_RUNPATH pointing at the same
- string. */
- static vector<string> neededLibs;
- dyn = (Elf_Dyn *) (contents + rdi(shdrDynamic.sh_offset));
- Elf_Dyn * dynRPath = 0, * dynRunPath = 0;
- char * rpath = 0;
- for ( ; rdi(dyn->d_tag) != DT_NULL; dyn++) {
- if (rdi(dyn->d_tag) == DT_RPATH) {
- dynRPath = dyn;
- /* Only use DT_RPATH if there is no DT_RUNPATH. */
- if (!dynRunPath)
- rpath = strTab + rdi(dyn->d_un.d_val);
- }
- else if (rdi(dyn->d_tag) == DT_RUNPATH) {
- dynRunPath = dyn;
- rpath = strTab + rdi(dyn->d_un.d_val);
- }
- else if (rdi(dyn->d_tag) == DT_NEEDED)
- neededLibs.push_back(string(strTab + rdi(dyn->d_un.d_val)));
- }
-
- if (op == rpPrint) {
- printf("%s\n", rpath ? rpath : "");
- return;
- }
-
- if (op == rpShrink && !rpath) {
- debug("no RPATH to shrink\n");
- return;
- }
-
-
- /* For each directory in the RPATH, check if it contains any
- needed library. */
- if (op == rpShrink) {
- static vector<bool> neededLibFound(neededLibs.size(), false);
-
- newRPath = "";
-
- char * pos = rpath;
- while (*pos) {
- char * end = strchr(pos, ':');
- if (!end) end = strchr(pos, 0);
-
- /* Get the name of the directory. */
- string dirName(pos, end - pos);
- if (*end == ':') ++end;
- pos = end;
-
- /* Non-absolute entries are allowed (e.g., the special
- "$ORIGIN" hack). */
- if (dirName[0] != '/') {
- concatToRPath(newRPath, dirName);
- continue;
- }
-
- /* For each library that we haven't found yet, see if it
- exists in this directory. */
- bool libFound = false;
- for (unsigned int j = 0; j < neededLibs.size(); ++j)
- if (!neededLibFound[j]) {
- string libName = dirName + "/" + neededLibs[j];
- struct stat st;
- if (stat(libName.c_str(), &st) == 0) {
- neededLibFound[j] = true;
- libFound = true;
- }
- }
-
- if (!libFound)
- debug("removing directory `%s' from RPATH\n", dirName.c_str());
- else
- concatToRPath(newRPath, dirName);
- }
- }
-
-
- if (string(rpath ? rpath : "") == newRPath) return;
-
- changed = true;
-
- /* Zero out the previous rpath to prevent retained dependencies in
- Nix. */
- unsigned int rpathSize = 0;
- if (rpath) {
- rpathSize = strlen(rpath);
- memset(rpath, 'X', rpathSize);
- }
-
- debug("new rpath is `%s'\n", newRPath.c_str());
-
- if (!forceRPath && dynRPath && !dynRunPath) { /* convert DT_RPATH to DT_RUNPATH */
- dynRPath->d_tag = DT_RUNPATH;
- dynRunPath = dynRPath;
- dynRPath = 0;
- }
-
- if (forceRPath && dynRPath && dynRunPath) { /* convert DT_RUNPATH to DT_RPATH */
- dynRunPath->d_tag = DT_IGNORE;
- }
-
- if (newRPath.size() <= rpathSize) {
- strcpy(rpath, newRPath.c_str());
- return;
- }
-
- /* Grow the .dynstr section to make room for the new RPATH. */
- debug("rpath is too long, resizing...\n");
-
- string & newDynStr = replaceSection(".dynstr",
- rdi(shdrDynStr.sh_size) + newRPath.size() + 1);
- setSubstr(newDynStr, rdi(shdrDynStr.sh_size), newRPath + '\0');
-
- /* Update the DT_RUNPATH and DT_RPATH entries. */
- if (dynRunPath || dynRPath) {
- if (dynRunPath) dynRunPath->d_un.d_val = shdrDynStr.sh_size;
- if (dynRPath) dynRPath->d_un.d_val = shdrDynStr.sh_size;
- }
-
- else {
- /* There is no DT_RUNPATH entry in the .dynamic section, so we
- have to grow the .dynamic section. */
- string & newDynamic = replaceSection(".dynamic",
- rdi(shdrDynamic.sh_size) + sizeof(Elf_Dyn));
-
- unsigned int idx = 0;
- for ( ; rdi(((Elf_Dyn *) newDynamic.c_str())[idx].d_tag) != DT_NULL; idx++) ;
- debug("DT_NULL index is %d\n", idx);
-
- /* Shift all entries down by one. */
- setSubstr(newDynamic, sizeof(Elf_Dyn),
- string(newDynamic, 0, sizeof(Elf_Dyn) * (idx + 1)));
-
- /* Add the DT_RUNPATH entry at the top. */
- Elf_Dyn newDyn;
- wri(newDyn.d_tag, forceRPath ? DT_RPATH : DT_RUNPATH);
- newDyn.d_un.d_val = shdrDynStr.sh_size;
- setSubstr(newDynamic, 0, string((char *) &newDyn, sizeof(Elf_Dyn)));
- }
-}
-
-
-template<ElfFileParams>
-void ElfFile<ElfFileParamNames>::removeNeeded(set<string> libs)
-{
- if (libs.empty()) return;
-
- Elf_Shdr & shdrDynamic = findSection(".dynamic");
- Elf_Shdr & shdrDynStr = findSection(".dynstr");
- char * strTab = (char *) contents + rdi(shdrDynStr.sh_offset);
-
- Elf_Dyn * dyn = (Elf_Dyn *) (contents + rdi(shdrDynamic.sh_offset));
- Elf_Dyn * last = dyn;
- for ( ; rdi(dyn->d_tag) != DT_NULL; dyn++) {
- if (rdi(dyn->d_tag) == DT_NEEDED) {
- char * name = strTab + rdi(dyn->d_un.d_val);
- if (libs.find(name) != libs.end()) {
- debug("removing DT_NEEDED entry `%s'\n", name);
- changed = true;
- } else {
- debug("keeping DT_NEEDED entry `%s'\n", name);
- *last++ = *dyn;
- }
- } else
- *last++ = *dyn;
- }
-
- memset(last, 0, sizeof(Elf_Dyn) * (dyn - last));
-}
-
-
-static bool printInterpreter = false;
-static string newInterpreter;
-
-static bool shrinkRPath = false;
-static bool setRPath = false;
-static bool printRPath = false;
-static string newRPath;
-static set<string> neededLibsToRemove;
-
-
-template<class ElfFile>
-static void patchElf2(ElfFile & elfFile, mode_t fileMode)
-{
- elfFile.parse();
-
- if (printInterpreter)
- printf("%s\n", elfFile.getInterpreter().c_str());
-
- if (newInterpreter != "")
- elfFile.setInterpreter(newInterpreter);
-
- if (printRPath)
- elfFile.modifyRPath(elfFile.rpPrint, "");
-
- if (shrinkRPath)
- elfFile.modifyRPath(elfFile.rpShrink, "");
- else if (setRPath)
- elfFile.modifyRPath(elfFile.rpSet, newRPath);
-
- elfFile.removeNeeded(neededLibsToRemove);
-
- if (elfFile.isChanged()){
- elfFile.rewriteSections();
- writeFile(fileName, fileMode);
- }
-}
-
-
-static void patchElf()
-{
- if (!printInterpreter && !printRPath)
- debug("patching ELF file `%s'\n", fileName.c_str());
-
- mode_t fileMode;
-
- readFile(fileName, &fileMode);
-
-
- /* Check the ELF header for basic validity. */
- if (fileSize < (off_t) sizeof(Elf32_Ehdr)) error("missing ELF header");
-
- if (memcmp(contents, ELFMAG, SELFMAG) != 0)
- error("not an ELF executable");
-
- if (contents[EI_CLASS] == ELFCLASS32 &&
- contents[EI_VERSION] == EV_CURRENT)
- {
- ElfFile<Elf32_Ehdr, Elf32_Phdr, Elf32_Shdr, Elf32_Addr, Elf32_Off, Elf32_Dyn, Elf32_Sym> elfFile;
- patchElf2(elfFile, fileMode);
- }
- else if (contents[EI_CLASS] == ELFCLASS64 &&
- contents[EI_VERSION] == EV_CURRENT)
- {
- ElfFile<Elf64_Ehdr, Elf64_Phdr, Elf64_Shdr, Elf64_Addr, Elf64_Off, Elf64_Dyn, Elf64_Sym> elfFile;
- patchElf2(elfFile, fileMode);
- }
- else {
- error("ELF executable is not 32/64-bit, little/big-endian, version 1");
- }
-}
-
-
-void showHelp(const string & progName)
-{
- fprintf(stderr, "syntax: %s\n\
- [--set-interpreter FILENAME]\n\
- [--print-interpreter]\n\
- [--set-rpath RPATH]\n\
- [--shrink-rpath]\n\
- [--print-rpath]\n\
- [--force-rpath]\n\
- [--remove-needed LIBRARY]\n\
- [--debug]\n\
- [--version]\n\
- FILENAME\n", progName.c_str());
-}
-
-
-int main(int argc, char * * argv)
-{
- if (argc <= 1) {
- showHelp(argv[0]);
- return 1;
- }
-
- if (getenv("PATCHELF_DEBUG") != 0) debugMode = true;
-
- int i;
- for (i = 1; i < argc; ++i) {
- string arg(argv[i]);
- if (arg == "--set-interpreter" || arg == "--interpreter") {
- if (++i == argc) error("missing argument");
- newInterpreter = argv[i];
- }
- else if (arg == "--print-interpreter") {
- printInterpreter = true;
- }
- else if (arg == "--shrink-rpath") {
- shrinkRPath = true;
- }
- else if (arg == "--set-rpath") {
- if (++i == argc) error("missing argument");
- setRPath = true;
- newRPath = argv[i];
- }
- else if (arg == "--print-rpath") {
- printRPath = true;
- }
- else if (arg == "--force-rpath") {
- /* Generally we prefer to emit DT_RUNPATH instead of
- DT_RPATH, as the latter is obsolete. However, there is
- a slight semantic difference: DT_RUNPATH is "scoped",
- it only affects the executable or library in question,
- not its recursive imports. So maybe you really want to
- force the use of DT_RPATH. That's what this option
- does. Without it, DT_RPATH (if encountered) is
- converted to DT_RUNPATH, and if neither is present, a
- DT_RUNPATH is added. With it, DT_RPATH isn't converted
- to DT_RUNPATH, and if neither is present, a DT_RPATH is
- added. */
- forceRPath = true;
- }
- else if (arg == "--remove-needed") {
- if (++i == argc) error("missing argument");
- neededLibsToRemove.insert(argv[i]);
- }
- else if (arg == "--debug") {
- debugMode = true;
- }
- else if (arg == "--help") {
- showHelp(argv[0]);
- return 0;
- }
- else if (arg == "--version") {
- printf("1.0\n");
- return 0;
- }
- else break;
- }
-
- if (i == argc) error("missing filename");
- fileName = argv[i];
-
- patchElf();
-
- return 0;
-}
diff --git a/sources/pyside-tools/CMakeLists.txt b/sources/pyside-tools/CMakeLists.txt
index 75f5f8e77..e629ec570 100644
--- a/sources/pyside-tools/CMakeLists.txt
+++ b/sources/pyside-tools/CMakeLists.txt
@@ -1,52 +1,87 @@
-cmake_minimum_required(VERSION 3.16)
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+cmake_minimum_required(VERSION 3.18)
project(pyside-tools)
-# Don't display "up-to-date / install" messages when installing, to reduce visual clutter.
-if (QUIET_BUILD)
- set(CMAKE_INSTALL_MESSAGE NEVER)
-endif()
+include(cmake/PySideToolsSetup.cmake)
-find_package(Qt6 COMPONENTS Core HostInfo)
+if(${CMAKE_SYSTEM_NAME} STREQUAL "Android")
+ # create Qt6AndroidBindings.jar
+ if (NOT DEFINED ANDROID_SDK_ROOT)
+ message(FATAL_ERROR "Please provide the location of the Android SDK directory via "
+ "your toolchain file")
+ endif()
+ if (NOT DEFINED ANDROID_PLATFORM)
+ message(FATAL_ERROR "Please provide the location of the Android Platform API level via "
+ "your toolchain file eg: android-31")
+ endif()
+ include(cmake/PySideAndroid.cmake)
+ create_and_install_qt_javabindings()
+else()
+ set(files ${CMAKE_CURRENT_SOURCE_DIR}/pyside_tool.py
+ ${CMAKE_CURRENT_SOURCE_DIR}/metaobjectdump.py
+ ${CMAKE_CURRENT_SOURCE_DIR}/project.py
+ ${CMAKE_CURRENT_SOURCE_DIR}/qml.py
+ ${CMAKE_CURRENT_SOURCE_DIR}/qtpy2cpp.py
+ ${CMAKE_CURRENT_SOURCE_DIR}/deploy.py
+ ${CMAKE_CURRENT_SOURCE_DIR}/android_deploy.py
+ ${CMAKE_CURRENT_SOURCE_DIR}/requirements-android.txt)
-set(files ${CMAKE_CURRENT_SOURCE_DIR}/pyside_tool.py)
-set(directories)
+ set(directories ${CMAKE_CURRENT_SOURCE_DIR}/deploy_lib
+ ${CMAKE_CURRENT_SOURCE_DIR}/project)
-if(NOT NO_QT_TOOLS STREQUAL "yes")
- set(TOOLS_PATH "${QT6_INSTALL_PREFIX}/${QT6_HOST_INFO_BINDIR}")
- set(LIBEXEC_PATH "${QT6_INSTALL_PREFIX}/${QT6_HOST_INFO_LIBEXECDIR}")
+ if(NOT NO_QT_TOOLS STREQUAL "yes")
+ set(TOOLS_PATH "${QT6_INSTALL_PREFIX}/${QT6_HOST_INFO_BINDIR}")
+ set(LIBEXEC_PATH "${QT6_INSTALL_PREFIX}/${QT6_HOST_INFO_LIBEXECDIR}")
- list(APPEND files "${LIBEXEC_PATH}/uic${CMAKE_EXECUTABLE_SUFFIX}"
- "${LIBEXEC_PATH}/rcc${CMAKE_EXECUTABLE_SUFFIX}"
- "${TOOLS_PATH}/lrelease${CMAKE_EXECUTABLE_SUFFIX}"
- "${TOOLS_PATH}/lupdate${CMAKE_EXECUTABLE_SUFFIX}")
+ list(APPEND files "${LIBEXEC_PATH}/uic${CMAKE_EXECUTABLE_SUFFIX}"
+ "${LIBEXEC_PATH}/rcc${CMAKE_EXECUTABLE_SUFFIX}"
+ "${LIBEXEC_PATH}/qmltyperegistrar${CMAKE_EXECUTABLE_SUFFIX}"
+ "${LIBEXEC_PATH}/qmlimportscanner${CMAKE_EXECUTABLE_SUFFIX}"
+ "${LIBEXEC_PATH}/qmlcachegen${CMAKE_EXECUTABLE_SUFFIX}"
+ "${TOOLS_PATH}/lrelease${CMAKE_EXECUTABLE_SUFFIX}"
+ "${TOOLS_PATH}/lupdate${CMAKE_EXECUTABLE_SUFFIX}"
+ "${TOOLS_PATH}/qmllint${CMAKE_EXECUTABLE_SUFFIX}"
+ "${TOOLS_PATH}/qmlformat${CMAKE_EXECUTABLE_SUFFIX}"
+ "${TOOLS_PATH}/qmlls${CMAKE_EXECUTABLE_SUFFIX}"
+ "${TOOLS_PATH}/qsb${CMAKE_EXECUTABLE_SUFFIX}"
+ "${TOOLS_PATH}/balsam${CMAKE_EXECUTABLE_SUFFIX}"
+ "${TOOLS_PATH}/balsamui${CMAKE_EXECUTABLE_SUFFIX}")
- if (APPLE)
- list(APPEND directories "${TOOLS_PATH}/Assistant.app"
- "${TOOLS_PATH}/Designer.app"
- "${TOOLS_PATH}/Linguist.app")
- else()
- list(APPEND files "${TOOLS_PATH}/assistant${CMAKE_EXECUTABLE_SUFFIX}"
- "${TOOLS_PATH}/designer${CMAKE_EXECUTABLE_SUFFIX}"
- "${TOOLS_PATH}/linguist${CMAKE_EXECUTABLE_SUFFIX}")
+ if (APPLE)
+ list(APPEND directories "${TOOLS_PATH}/Assistant.app"
+ "${TOOLS_PATH}/Designer.app"
+ "${TOOLS_PATH}/Linguist.app")
+ else()
+ list(APPEND files "${TOOLS_PATH}/assistant${CMAKE_EXECUTABLE_SUFFIX}"
+ "${TOOLS_PATH}/designer${CMAKE_EXECUTABLE_SUFFIX}"
+ "${TOOLS_PATH}/linguist${CMAKE_EXECUTABLE_SUFFIX}")
+ endif()
endif()
-endif()
-# pyside6-rcc, pyside6-uic, pyside6-designer, shiboken and pyside6-lupdate entrypoints
-
-foreach(file ${files})
- install(FILES "${file}"
- DESTINATION bin
- PERMISSIONS
- OWNER_EXECUTE OWNER_WRITE OWNER_READ
- GROUP_EXECUTE GROUP_READ
- WORLD_EXECUTE WORLD_READ)
-endforeach()
-
-foreach(directory ${directories})
- install(DIRECTORY "${directory}"
- DESTINATION bin
- FILE_PERMISSIONS
- OWNER_EXECUTE OWNER_WRITE OWNER_READ
- GROUP_EXECUTE GROUP_READ
- WORLD_EXECUTE WORLD_READ)
-endforeach()
+ list(APPEND directories ${CMAKE_CURRENT_SOURCE_DIR}/qtpy2cpp_lib)
+
+ # pyside6-rcc, pyside6-uic, pyside6-designer, shiboken and pyside6-lupdate entrypoints
+ foreach(file ${files})
+ if(EXISTS ${file})
+ install(FILES "${file}"
+ DESTINATION bin
+ PERMISSIONS
+ OWNER_EXECUTE OWNER_WRITE OWNER_READ
+ GROUP_EXECUTE GROUP_READ
+ WORLD_EXECUTE WORLD_READ)
+ else()
+ message(WARNING "${file} does not exist. Hence, pyside6-${file} will not work")
+ endif()
+ endforeach()
+
+ foreach(directory ${directories})
+ install(DIRECTORY "${directory}"
+ DESTINATION bin
+ FILE_PERMISSIONS
+ OWNER_EXECUTE OWNER_WRITE OWNER_READ
+ GROUP_EXECUTE GROUP_READ
+ WORLD_EXECUTE WORLD_READ)
+ endforeach()
+endif()
diff --git a/sources/pyside-tools/__init__.py b/sources/pyside-tools/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/sources/pyside-tools/__init__.py
diff --git a/sources/pyside-tools/android_deploy.py b/sources/pyside-tools/android_deploy.py
new file mode 100644
index 000000000..75269d622
--- /dev/null
+++ b/sources/pyside-tools/android_deploy.py
@@ -0,0 +1,212 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+import argparse
+import logging
+import shutil
+import traceback
+from pathlib import Path
+from textwrap import dedent
+
+from deploy_lib import (create_config_file, cleanup, config_option_exists, PythonExecutable,
+ MAJOR_VERSION, HELP_EXTRA_IGNORE_DIRS, HELP_EXTRA_MODULES)
+from deploy_lib.android import AndroidData, AndroidConfig
+from deploy_lib.android.buildozer import Buildozer
+
+
+""" pyside6-android-deploy deployment tool
+
+ Deployment tool that uses buildozer (https://buildozer.readthedocs.io/en/latest/) and
+ python-for-android (https://python-for-android.readthedocs.io/en/latest/) to deploy PySide6
+ applications to Android
+
+ How does it work?
+
+ Command: pyside6-android-deploy --wheel-pyside=<pyside_wheel_path>
+ --wheel-shiboken=<shiboken_wheel_path>
+ --ndk-path=<optional_ndk_path>
+ --sdk-path=<optional_sdk_path>
+ pyside6-android-deploy android -c /path/to/pysidedeploy.spec
+
+
+ Note: If --ndk-path and --sdk-path are not specified, the cache of the tool
+ `.pyside6_android_deploy` is checked in the user's HOME directory. If it is not found, the user
+ will have to manually download them.
+
+ Prerequisities: Python main entrypoint file should be named "main.py"
+
+ Platforms Supported: aarch64, armv7a, i686, x86_64
+
+ Config file:
+ On the first run of the tool, it creates a config file called pysidedeploy.spec which
+ controls the various characteristic of the deployment. Users can simply change the value
+ in this config file to achieve different properties ie. change the application name,
+ deployment platform etc.
+
+ Note: This file is used by both pyside6-deploy and pyside6-android-deploy
+"""
+
+
+def main(name: str = None, pyside_wheel: Path = None, shiboken_wheel: Path = None,
+ ndk_path: Path = None, sdk_path: Path = None, config_file: Path = None, init: bool = False,
+ loglevel=logging.WARNING, dry_run: bool = False, keep_deployment_files: bool = False,
+ force: bool = False, extra_ignore_dirs: str = None, extra_modules_grouped: str = None):
+
+ logging.basicConfig(level=loglevel)
+
+ if extra_ignore_dirs:
+ extra_ignore_dirs = extra_ignore_dirs.split(",")
+
+ extra_modules = []
+ if extra_modules_grouped:
+ tmp_extra_modules = extra_modules_grouped.split(",")
+ for extra_module in tmp_extra_modules:
+ if extra_module.startswith("Qt"):
+ extra_modules.append(extra_module[2:])
+ else:
+ extra_modules.append(extra_module)
+
+ main_file = Path.cwd() / "main.py"
+ if not main_file.exists():
+ raise RuntimeError(("[DEPLOY] For Android deployment to work, the main"
+ " entrypoint Python file should be named 'main.py'"
+ " and it should be run from the application"
+ " directory"))
+
+ android_data = AndroidData(wheel_pyside=pyside_wheel, wheel_shiboken=shiboken_wheel,
+ ndk_path=ndk_path, sdk_path=sdk_path)
+
+ python = PythonExecutable(dry_run=dry_run, init=init, force=force)
+
+ config_file_exists = config_file and Path(config_file).exists()
+
+ if config_file_exists:
+ logging.info(f"[DEPLOY] Using existing config file {config_file}")
+ else:
+ config_file = create_config_file(dry_run=dry_run, config_file=config_file,
+ main_file=main_file)
+
+ config = AndroidConfig(config_file=config_file, source_file=main_file,
+ python_exe=python.exe, dry_run=dry_run, android_data=android_data,
+ existing_config_file=config_file_exists,
+ extra_ignore_dirs=extra_ignore_dirs)
+
+ if not config.wheel_pyside and not config.wheel_shiboken:
+ raise RuntimeError(f"[DEPLOY] No PySide{MAJOR_VERSION} and Shiboken{MAJOR_VERSION} wheels"
+ "found")
+
+ cleanup(config=config, is_android=True)
+
+ python.install_dependencies(config=config, packages="android_packages", is_android=True)
+
+ # set application name
+ if name:
+ config.title = name
+
+ try:
+ config.modules += list(set(extra_modules).difference(set(config.modules)))
+
+ # this cannot be done when config file is initialized because cleanup() removes it
+ # so this can only be done after the cleanup()
+ config.find_and_set_jars_dir()
+ config.verify_and_set_recipe_dir()
+
+ # TODO: include qml files from pysidedeploy.spec rather than from extensions
+ # buildozer currently includes all the files with .qml extension
+
+ # init buildozer
+ Buildozer.dry_run = dry_run
+ logging.info("[DEPLOY] Creating buildozer.spec file")
+ Buildozer.initialize(pysidedeploy_config=config)
+
+ # writing config file
+ if not dry_run:
+ config.update_config()
+
+ if init:
+ # config file created above. Exiting.
+ logging.info(f"[DEPLOY]: Config file {config.config_file} created")
+ return
+
+ # run buildozer
+ logging.info("[DEPLOY] Running buildozer deployment")
+ Buildozer.create_executable(config.mode)
+
+ # move buildozer build files to {generated_files_path}
+ if not dry_run:
+ buildozer_build_dir = config.project_dir / ".buildozer"
+ if not buildozer_build_dir.exists():
+ logging.info(f"[DEPLOY] Unable to copy {buildozer_build_dir} to "
+ f"{config.generated_files_path}. {buildozer_build_dir} does not exist")
+ logging.info(f"[DEPLOY] copy {buildozer_build_dir} to {config.generated_files_path}")
+ shutil.move(buildozer_build_dir, config.generated_files_path)
+
+ logging.info(f"[DEPLOY] apk created in {config.exe_dir}")
+ except Exception:
+ print(f"Exception occurred: {traceback.format_exc()}")
+ finally:
+ if config.generated_files_path and config and not keep_deployment_files:
+ cleanup(config=config, is_android=True)
+
+ logging.info("[DEPLOY] End")
+
+
+if __name__ == "__main__":
+ parser = argparse.ArgumentParser(
+ description=dedent(f"""
+ This tool deploys PySide{MAJOR_VERSION} to Android platforms.
+
+ Note: The main python entrypoint should be named main.py
+ """),
+ formatter_class=argparse.RawTextHelpFormatter,
+ )
+
+ parser.add_argument("-c", "--config-file", type=lambda p: Path(p).absolute(),
+ default=(Path.cwd() / "pysidedeploy.spec"),
+ help="Path to the .spec config file")
+
+ parser.add_argument(
+ "--init", action="store_true",
+ help="Create pysidedeploy.spec file, if it doesn't already exists")
+
+ parser.add_argument(
+ "-v", "--verbose", help="run in verbose mode", action="store_const",
+ dest="loglevel", const=logging.INFO)
+
+ parser.add_argument("--dry-run", action="store_true", help="show the commands to be run")
+
+ parser.add_argument("--keep-deployment-files", action="store_true",
+ help="keep the generated deployment files generated")
+
+ parser.add_argument("-f", "--force", action="store_true", help="force all input prompts")
+
+ parser.add_argument("--name", type=str, help="Application name")
+
+ parser.add_argument("--wheel-pyside", type=lambda p: Path(p).resolve(),
+ help=f"Path to PySide{MAJOR_VERSION} Android Wheel",
+ required=not config_option_exists())
+
+ parser.add_argument("--wheel-shiboken", type=lambda p: Path(p).resolve(),
+ help=f"Path to shiboken{MAJOR_VERSION} Android Wheel",
+ required=not config_option_exists())
+
+ parser.add_argument("--ndk-path", type=lambda p: Path(p).resolve(),
+ help=("Path to Android NDK. If omitted, the tool's cache at "
+ ".pyside6_android_deploy is checked to find the NDK")
+ )
+
+ parser.add_argument("--sdk-path", type=lambda p: Path(p).resolve(),
+ help=("Path to Android SDK. If omitted, the tool's cache at "
+ ".pyside6_android_deploy is checked to find the SDK. Otherwise "
+ "the default from buildozer is used.")
+ )
+
+ parser.add_argument("--extra-ignore-dirs", type=str, help=HELP_EXTRA_IGNORE_DIRS)
+
+ parser.add_argument("--extra-modules", type=str, help=HELP_EXTRA_MODULES)
+
+ args = parser.parse_args()
+
+ main(args.name, args.wheel_pyside, args.wheel_shiboken, args.ndk_path, args.sdk_path,
+ args.config_file, args.init, args.loglevel, args.dry_run, args.keep_deployment_files,
+ args.force, args.extra_ignore_dirs, args.extra_modules)
diff --git a/sources/pyside-tools/android_deploy.pyproject b/sources/pyside-tools/android_deploy.pyproject
new file mode 100644
index 000000000..bc6347243
--- /dev/null
+++ b/sources/pyside-tools/android_deploy.pyproject
@@ -0,0 +1,9 @@
+{
+ "files": ["deploy.py", "deploy_lib/__init__.py", "deploy_lib/commands.py", "deploy_lib/config.py",
+ "deploy_lib/default.spec", "deploy_lib/python_helper.py", "deploy_lib/deploy_util.py",
+ "deploy_lib/android/recipes/PySide6/__init__.tmpl.py",
+ "deploy_lib/android/recipes/shiboken6/__init__.tmpl.py",
+ "deploy_lib/android/__init__.py", "deploy_lib/android/android_helper.py",
+ "deploy_lib/android/buildozer.py", "deploy_lib/dependency_util.py"
+ ]
+}
diff --git a/sources/pyside-tools/cmake/PySideAndroid.cmake b/sources/pyside-tools/cmake/PySideAndroid.cmake
new file mode 100644
index 000000000..4b6260cce
--- /dev/null
+++ b/sources/pyside-tools/cmake/PySideAndroid.cmake
@@ -0,0 +1,52 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+set(QT_MAJOR_VERSION 6)
+
+# Locate Java
+include(UseJava)
+# Find JDK 8.0
+find_package(Java 1.8 COMPONENTS Development REQUIRED)
+# Find QtJavaHelpers.java
+include("${QT6_INSTALL_PREFIX}/${QT6_INSTALL_LIBS}/cmake/Qt6/QtJavaHelpers.cmake")
+
+macro(create_and_install_qt_javabindings)
+
+ # create Qt6AndroidBindings.jar from the following {java_sources}
+ set(android_main_srcs "${QT6_INSTALL_PREFIX}/src/android/java/src/org/qtproject/qt/android/bindings")
+ set(java_sources
+ ${android_main_srcs}/QtActivity.java
+ ${android_main_srcs}/QtApplication.java
+ ${android_main_srcs}/QtService.java
+ )
+ # set android.jar from the sdk, for compiling the java files into .jar
+ set(sdk_jar_location "${ANDROID_SDK_ROOT}/platforms/${ANDROID_PLATFORM}/android.jar")
+ if (NOT EXISTS "${sdk_jar_location}")
+ message(FATAL_ERROR "Could not locate Android SDK jar for api '${api}'")
+ endif()
+
+ # this variable is accessed by qt_internal_add_jar
+ set(QT_ANDROID_JAR ${sdk_jar_location})
+
+ set(qt_jar_location "${QT6_INSTALL_PREFIX}/jar/Qt6Android.jar")
+ if (NOT EXISTS "${qt_jar_location}")
+ message(FATAL_ERROR "${qt_jar_location} does not exist. Qt6 installation maybe corrupted.")
+ endif()
+
+ # to be done
+ list(APPEND included_jars ${sdk_jar_location} ${qt_jar_location})
+
+ qt_internal_add_jar(Qt${QT_MAJOR_VERSION}AndroidBindings
+ INCLUDE_JARS ${included_jars}
+ SOURCES ${java_sources}
+ )
+
+ install_jar(Qt${QT_MAJOR_VERSION}AndroidBindings
+ DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/jar"
+ COMPONENT Devel
+ )
+
+ # install other relevant Android jars from the Qt installation.
+ # All the jars would be later packaged together with the Android wheels
+ install(DIRECTORY ${QT6_INSTALL_PREFIX}/jar/ DESTINATION lib/jar)
+endmacro()
diff --git a/sources/pyside-tools/cmake/PySideToolsHelpers.cmake b/sources/pyside-tools/cmake/PySideToolsHelpers.cmake
new file mode 100644
index 000000000..9fb2ec3d0
--- /dev/null
+++ b/sources/pyside-tools/cmake/PySideToolsHelpers.cmake
@@ -0,0 +1,37 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+function(pyside_tools_internal_detect_if_cross_building)
+ if(CMAKE_CROSSCOMPILING OR QFP_SHIBOKEN_HOST_PATH)
+ set(is_cross_build TRUE)
+ else()
+ set(is_cross_build FALSE)
+ endif()
+ set(PYSIDE_TOOLS_IS_CROSS_BUILD "${is_cross_build}" PARENT_SCOPE)
+ message(STATUS "PYSIDE_TOOLS_IS_CROSS_BUILD: ${PYSIDE_TOOLS_IS_CROSS_BUILD}")
+endfunction()
+
+function(pyside_tools_internal_set_up_extra_dependency_paths)
+ set(extra_root_path_vars
+ QFP_QT_TARGET_PATH
+ )
+ foreach(root_path IN LISTS extra_root_path_vars)
+ set(new_root_path_value "${${root_path}}")
+ if(new_root_path_value)
+ set(new_prefix_path "${CMAKE_PREFIX_PATH}")
+ list(PREPEND new_prefix_path "${new_root_path_value}/lib/cmake")
+ set(CMAKE_PREFIX_PATH "${new_prefix_path}")
+ set(CMAKE_PREFIX_PATH "${new_prefix_path}" PARENT_SCOPE)
+
+ # Need to adjust the prefix and root paths so that find_package(Qt) and other 3rd
+ # party packages are found successfully when they are located outside of the
+ # default sysroot (whatever that maybe for the target platform).
+ if(PYSIDE_TOOLS_IS_CROSS_BUILD)
+ set(new_root_path "${CMAKE_FIND_ROOT_PATH}")
+ list(PREPEND new_root_path "${new_root_path_value}")
+ set(CMAKE_FIND_ROOT_PATH "${new_root_path}")
+ set(CMAKE_FIND_ROOT_PATH "${new_root_path}" PARENT_SCOPE)
+ endif()
+ endif()
+ endforeach()
+endfunction()
diff --git a/sources/pyside-tools/cmake/PySideToolsSetup.cmake b/sources/pyside-tools/cmake/PySideToolsSetup.cmake
new file mode 100644
index 000000000..93b39460d
--- /dev/null
+++ b/sources/pyside-tools/cmake/PySideToolsSetup.cmake
@@ -0,0 +1,16 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}")
+
+include(PySideToolsHelpers)
+
+pyside_tools_internal_detect_if_cross_building()
+pyside_tools_internal_set_up_extra_dependency_paths()
+
+find_package(Qt6 REQUIRED COMPONENTS Core HostInfo)
+
+# Don't display "up-to-date / install" messages when installing, to reduce visual clutter.
+if (QUIET_BUILD)
+ set(CMAKE_INSTALL_MESSAGE NEVER)
+endif()
diff --git a/sources/pyside-tools/deploy.py b/sources/pyside-tools/deploy.py
new file mode 100644
index 000000000..aa03d13d0
--- /dev/null
+++ b/sources/pyside-tools/deploy.py
@@ -0,0 +1,188 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+""" pyside6-deploy deployment tool
+
+ Deployment tool that uses Nuitka to deploy PySide6 applications to various desktop (Windows,
+ Linux, macOS) platforms.
+
+ How does it work?
+
+ Command: pyside6-deploy path/to/main_file
+ pyside6-deploy (incase main file is called main.py)
+ pyside6-deploy -c /path/to/config_file
+
+ Platforms supported: Linux, Windows, macOS
+ Module binary inclusion:
+ 1. for non-QML cases, only required modules are included
+ 2. for QML cases, all modules are included because of all QML plugins getting included
+ with nuitka
+
+ Config file:
+ On the first run of the tool, it creates a config file called pysidedeploy.spec which
+ controls the various characteristic of the deployment. Users can simply change the value
+ in this config file to achieve different properties ie. change the application name,
+ deployment platform etc.
+
+ Note: This file is used by both pyside6-deploy and pyside6-android-deploy
+
+"""
+
+import argparse
+import logging
+import traceback
+from pathlib import Path
+from textwrap import dedent
+
+from deploy_lib import (MAJOR_VERSION, DesktopConfig, cleanup, config_option_exists,
+ finalize, create_config_file, PythonExecutable, Nuitka,
+ HELP_EXTRA_MODULES, HELP_EXTRA_IGNORE_DIRS)
+
+
+TOOL_DESCRIPTION = dedent(f"""
+ This tool deploys PySide{MAJOR_VERSION} to desktop (Windows, Linux,
+ macOS) platforms. The following types of executables are produced as per
+ the platform:
+
+ Windows = .exe
+ macOS = .app
+ Linux = .bin
+ """)
+
+
+def main(main_file: Path = None, name: str = None, config_file: Path = None, init: bool = False,
+ loglevel=logging.WARNING, dry_run: bool = False, keep_deployment_files: bool = False,
+ force: bool = False, extra_ignore_dirs: str = None, extra_modules_grouped: str = None):
+
+ logging.basicConfig(level=loglevel)
+ if config_file and not config_file.exists() and not main_file.exists():
+ raise RuntimeError(dedent("""
+ Directory does not contain main.py file.
+ Please specify the main python entrypoint file or the config file.
+ Run "pyside6-deploy desktop --help" to see info about cli options.
+
+ pyside6-deploy exiting..."""))
+
+ # Nuitka command to run
+ command_str = None
+ config = None
+ logging.info("[DEPLOY] Start")
+
+ if extra_ignore_dirs:
+ extra_ignore_dirs = extra_ignore_dirs.split(",")
+
+ extra_modules = []
+ if extra_modules_grouped:
+ tmp_extra_modules = extra_modules_grouped.split(",")
+ for extra_module in tmp_extra_modules:
+ if extra_module.startswith("Qt"):
+ extra_modules.append(extra_module[2:])
+ else:
+ extra_modules.append(extra_module)
+
+ python = PythonExecutable(dry_run=dry_run, init=init, force=force)
+ config_file_exists = config_file and Path(config_file).exists()
+
+ if config_file_exists:
+ logging.info(f"[DEPLOY] Using existing config file {config_file}")
+ else:
+ config_file = create_config_file(dry_run=dry_run, config_file=config_file,
+ main_file=main_file)
+
+ config = DesktopConfig(config_file=config_file, source_file=main_file, python_exe=python.exe,
+ dry_run=dry_run, existing_config_file=config_file_exists,
+ extra_ignore_dirs=extra_ignore_dirs)
+
+ # set application name
+ if name:
+ config.title = name
+
+ cleanup(config=config)
+
+ python.install_dependencies(config=config, packages="packages")
+
+ # required by Nuitka for pyenv Python
+ add_arg = " --static-libpython=no"
+ if python.is_pyenv_python() and add_arg not in config.extra_args:
+ config.extra_args += add_arg
+
+ config.modules += list(set(extra_modules).difference(set(config.modules)))
+
+ # writing config file
+ # in the case of --dry-run, we use default.spec as reference. Do not save the changes
+ # for --dry-run
+ if not dry_run:
+ config.update_config()
+
+ if config.qml_files:
+ logging.info(f"[DEPLOY] Included QML files: {config.qml_files}")
+
+ if init:
+ # config file created above. Exiting.
+ logging.info(f"[DEPLOY]: Config file {config.config_file} created")
+ return
+
+ try:
+ # create executable
+ if not dry_run:
+ logging.info("[DEPLOY] Deploying application")
+
+ nuitka = Nuitka(nuitka=[python.exe, "-m", "nuitka"])
+ command_str = nuitka.create_executable(source_file=config.source_file,
+ extra_args=config.extra_args,
+ qml_files=config.qml_files,
+ qt_plugins=config.qt_plugins,
+ excluded_qml_plugins=config.excluded_qml_plugins,
+ icon=config.icon,
+ dry_run=dry_run,
+ permissions=config.permissions)
+ except Exception:
+ print(f"[DEPLOY] Exception occurred: {traceback.format_exc()}")
+ finally:
+ if config.generated_files_path and config:
+ finalize(config=config)
+ if not keep_deployment_files:
+ cleanup(config=config)
+
+ logging.info("[DEPLOY] End")
+ return command_str
+
+
+if __name__ == "__main__":
+ parser = argparse.ArgumentParser(description=TOOL_DESCRIPTION)
+
+ parser.add_argument("-c", "--config-file", type=lambda p: Path(p).absolute(),
+ default=(Path.cwd() / "pysidedeploy.spec"),
+ help="Path to the .spec config file")
+
+ parser.add_argument(
+ type=lambda p: Path(p).absolute(),
+ help="Path to main python file", nargs="?", dest="main_file",
+ default=None if config_option_exists() else Path.cwd() / "main.py")
+
+ parser.add_argument(
+ "--init", action="store_true",
+ help="Create pysidedeploy.spec file, if it doesn't already exists")
+
+ parser.add_argument(
+ "-v", "--verbose", help="Run in verbose mode", action="store_const",
+ dest="loglevel", const=logging.INFO)
+
+ parser.add_argument("--dry-run", action="store_true", help="Show the commands to be run")
+
+ parser.add_argument(
+ "--keep-deployment-files", action="store_true",
+ help="Keep the generated deployment files generated")
+
+ parser.add_argument("-f", "--force", action="store_true", help="Force all input prompts")
+
+ parser.add_argument("--name", type=str, help="Application name")
+
+ parser.add_argument("--extra-ignore-dirs", type=str, help=HELP_EXTRA_IGNORE_DIRS)
+
+ parser.add_argument("--extra-modules", type=str, help=HELP_EXTRA_MODULES)
+
+ args = parser.parse_args()
+
+ main(args.main_file, args.name, args.config_file, args.init, args.loglevel, args.dry_run,
+ args.keep_deployment_files, args.force, args.extra_ignore_dirs, args.extra_modules)
diff --git a/sources/pyside-tools/deploy.pyproject b/sources/pyside-tools/deploy.pyproject
new file mode 100644
index 000000000..0e6ca8251
--- /dev/null
+++ b/sources/pyside-tools/deploy.pyproject
@@ -0,0 +1,8 @@
+{
+ "files": ["deploy.py", "deploy_lib/__init__.py", "deploy_lib/commands.py", "deploy_lib/config.py",
+ "deploy_lib/default.spec", "deploy_lib/nuitka_helper.py", "deploy_lib/pyside_icon.ico",
+ "deploy_lib/pyside_icon.icns","deploy_lib/pyside_icon.jpg",
+ "deploy_lib/python_helper.py", "deploy_lib/deploy_util.py",
+ "deploy_lib/dependency_util.py"
+ ]
+}
diff --git a/sources/pyside-tools/deploy_lib/__init__.py b/sources/pyside-tools/deploy_lib/__init__.py
new file mode 100644
index 000000000..a40d0838b
--- /dev/null
+++ b/sources/pyside-tools/deploy_lib/__init__.py
@@ -0,0 +1,59 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+import sys
+from pathlib import Path
+from textwrap import dedent
+
+MAJOR_VERSION = 6
+
+if sys.platform == "win32":
+ IMAGE_FORMAT = ".ico"
+ EXE_FORMAT = ".exe"
+elif sys.platform == "darwin":
+ IMAGE_FORMAT = ".icns"
+ EXE_FORMAT = ".app"
+else:
+ IMAGE_FORMAT = ".jpg"
+ EXE_FORMAT = ".bin"
+
+DEFAULT_APP_ICON = str((Path(__file__).parent / f"pyside_icon{IMAGE_FORMAT}").resolve())
+IMPORT_WARNING_PYSIDE = (f"[DEPLOY] Found 'import PySide6' in file {0}"
+ ". Use 'from PySide6 import <module>' or pass the module"
+ " needed using --extra-modules command line argument")
+HELP_EXTRA_IGNORE_DIRS = dedent("""
+ Comma-separated directory names inside the project dir. These
+ directories will be skipped when searching for Python files
+ relevant to the project.
+
+ Example usage: --extra-ignore-dirs=doc,translations
+ """)
+
+HELP_EXTRA_MODULES = dedent("""
+ Comma-separated list of Qt modules to be added to the application,
+ in case they are not found automatically.
+
+ This occurs when you have 'import PySide6' in your code instead
+ 'from PySide6 import <module>'. The module name is specified
+ by either omitting the prefix of Qt or including it.
+
+ Example usage 1: --extra-modules=Network,Svg
+ Example usage 2: --extra-modules=QtNetwork,QtSvg
+ """)
+
+
+def get_all_pyside_modules():
+ """
+ Returns all the modules installed with PySide6
+ """
+ import PySide6
+ # They all start with `Qt` as the prefix. Removing this prefix and getting the actual
+ # module name
+ return [module[2:] for module in PySide6.__all__]
+
+
+from .commands import run_command, run_qmlimportscanner
+from .dependency_util import find_pyside_modules, find_permission_categories, QtDependencyReader
+from .nuitka_helper import Nuitka
+from .config import BaseConfig, Config, DesktopConfig
+from .python_helper import PythonExecutable
+from .deploy_util import cleanup, finalize, create_config_file, config_option_exists
diff --git a/sources/pyside-tools/deploy_lib/android/__init__.py b/sources/pyside-tools/deploy_lib/android/__init__.py
new file mode 100644
index 000000000..c3027762c
--- /dev/null
+++ b/sources/pyside-tools/deploy_lib/android/__init__.py
@@ -0,0 +1,16 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+# maps instruction set to Android platform names
+platform_map = {"aarch64": "arm64-v8a",
+ "armv7a": "armeabi-v7a",
+ "i686": "x86",
+ "x86_64": "x86_64",
+ "arm64-v8a": "arm64-v8a",
+ "armeabi-v7a": "armeabi-v7a",
+ "x86": "x86"}
+
+from .android_helper import (create_recipe, extract_and_copy_jar, get_wheel_android_arch,
+ AndroidData, get_llvm_readobj, find_lib_dependencies,
+ find_qtlibs_in_wheel)
+from .android_config import AndroidConfig
diff --git a/sources/pyside-tools/deploy_lib/android/android_config.py b/sources/pyside-tools/deploy_lib/android/android_config.py
new file mode 100644
index 000000000..ad818c2ff
--- /dev/null
+++ b/sources/pyside-tools/deploy_lib/android/android_config.py
@@ -0,0 +1,446 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+import re
+import tempfile
+import logging
+import zipfile
+import xml.etree.ElementTree as ET
+
+from typing import List
+from pathlib import Path
+from pkginfo import Wheel
+
+from . import (extract_and_copy_jar, get_wheel_android_arch, find_lib_dependencies,
+ get_llvm_readobj, find_qtlibs_in_wheel, platform_map, create_recipe)
+from .. import (Config, find_pyside_modules, get_all_pyside_modules, MAJOR_VERSION)
+
+ANDROID_NDK_VERSION = "26b"
+ANDROID_DEPLOY_CACHE = Path.home() / ".pyside6_android_deploy"
+
+
+class AndroidConfig(Config):
+ """
+ Wrapper class around pysidedeploy.spec file for pyside6-android-deploy
+ """
+ def __init__(self, config_file: Path, source_file: Path, python_exe: Path, dry_run: bool,
+ android_data, existing_config_file: bool = False,
+ extra_ignore_dirs: List[str] = None):
+ super().__init__(config_file=config_file, source_file=source_file, python_exe=python_exe,
+ dry_run=dry_run, existing_config_file=existing_config_file)
+
+ self.extra_ignore_dirs = extra_ignore_dirs
+
+ if android_data.wheel_pyside:
+ self.wheel_pyside = android_data.wheel_pyside
+ else:
+ wheel_pyside_temp = self.get_value("android", "wheel_pyside")
+ if not wheel_pyside_temp:
+ raise RuntimeError("[DEPLOY] Unable to find PySide6 Android wheel")
+ self.wheel_pyside = Path(wheel_pyside_temp).resolve()
+
+ if android_data.wheel_shiboken:
+ self.wheel_shiboken = android_data.wheel_shiboken
+ else:
+ wheel_shiboken_temp = self.get_value("android", "wheel_shiboken")
+ if not wheel_shiboken_temp:
+ raise RuntimeError("[DEPLOY] Unable to find shiboken6 Android wheel")
+ self.wheel_shiboken = Path(wheel_shiboken_temp).resolve()
+
+ self.ndk_path = None
+ if android_data.ndk_path:
+ # from cli
+ self.ndk_path = android_data.ndk_path
+ else:
+ # from config
+ ndk_path_temp = self.get_value("buildozer", "ndk_path")
+ if ndk_path_temp:
+ self.ndk_path = Path(ndk_path_temp)
+ else:
+ ndk_path_temp = (ANDROID_DEPLOY_CACHE / "android-ndk"
+ / f"android-ndk-r{ANDROID_NDK_VERSION}")
+ if ndk_path_temp.exists():
+ self.ndk_path = ndk_path_temp
+
+ if self.ndk_path:
+ print(f"Using Android NDK: {str(self.ndk_path)}")
+ else:
+ raise FileNotFoundError("[DEPLOY] Unable to find Android NDK. Please pass the NDK "
+ "path either from the CLI or from pysidedeploy.spec")
+
+ self.sdk_path = None
+ if android_data.sdk_path:
+ self.sdk_path = android_data.sdk_path
+ else:
+ sdk_path_temp = self.get_value("buildozer", "sdk_path")
+ if sdk_path_temp:
+ self.sdk_path = Path(sdk_path_temp)
+ else:
+ sdk_path_temp = ANDROID_DEPLOY_CACHE / "android-sdk"
+ if sdk_path_temp.exists():
+ self.sdk_path = sdk_path_temp
+ else:
+ logging.info("[DEPLOY] Use default SDK from buildozer")
+
+ if self.sdk_path:
+ print(f"Using Android SDK: {str(self.sdk_path)}")
+
+ recipe_dir_temp = self.get_value("buildozer", "recipe_dir")
+ self.recipe_dir = Path(recipe_dir_temp) if recipe_dir_temp else None
+
+ self._jars_dir = []
+ jars_dir_temp = self.get_value("buildozer", "jars_dir")
+ if jars_dir_temp and Path(jars_dir_temp).resolve().exists():
+ self.jars_dir = Path(jars_dir_temp).resolve()
+
+ self._arch = None
+ if self.get_value("buildozer", "arch"):
+ self.arch = self.get_value("buildozer", "arch")
+ else:
+ self._find_and_set_arch()
+
+ # maps to correct platform name incase the instruction set was specified
+ self._arch = platform_map[self.arch]
+
+ self._mode = self.get_value("buildozer", "mode")
+
+ self.qt_libs_path: zipfile.Path = find_qtlibs_in_wheel(wheel_pyside=self.wheel_pyside)
+ logging.info(f"[DEPLOY] Qt libs path inside wheel: {str(self.qt_libs_path)}")
+
+ if self.get_value("qt", "modules"):
+ self.modules = self.get_value("qt", "modules").split(",")
+ else:
+ self._find_and_set_pysidemodules()
+ self._find_and_set_qtquick_modules()
+ self.modules += self._find_dependent_qt_modules()
+ # remove duplicates
+ self.modules = list(set(self.modules))
+
+ # gets the xml dependency files from Qt installation path
+ self._dependency_files = []
+ self._find_and_set_dependency_files()
+
+ dependent_plugins = []
+ self._local_libs = []
+ if self.get_value("buildozer", "local_libs"):
+ self._local_libs = self.get_value("buildozer", "local_libs").split(",")
+ else:
+ # the local_libs can also store dependent plugins
+ local_libs, dependent_plugins = self._find_local_libs()
+ self.local_libs = list(set(local_libs))
+
+ self._qt_plugins = []
+ if self.get_value("android", "plugins"):
+ self._qt_plugins = self.get_value("android", "plugins").split(",")
+ elif dependent_plugins:
+ self._find_plugin_dependencies(dependent_plugins)
+ self.qt_plugins = list(set(dependent_plugins))
+
+ recipe_dir_temp = self.get_value("buildozer", "recipe_dir")
+ if recipe_dir_temp:
+ self.recipe_dir = Path(recipe_dir_temp)
+
+ @property
+ def qt_plugins(self):
+ return self._qt_plugins
+
+ @qt_plugins.setter
+ def qt_plugins(self, qt_plugins):
+ self._qt_plugins = qt_plugins
+ self.set_value("android", "plugins", ",".join(qt_plugins))
+
+ @property
+ def ndk_path(self):
+ return self._ndk_path
+
+ @ndk_path.setter
+ def ndk_path(self, ndk_path: Path):
+ self._ndk_path = ndk_path.resolve() if ndk_path else None
+ if self._ndk_path:
+ self.set_value("buildozer", "ndk_path", str(self._ndk_path))
+
+ @property
+ def sdk_path(self) -> Path:
+ return self._sdk_path
+
+ @sdk_path.setter
+ def sdk_path(self, sdk_path: Path):
+ self._sdk_path = sdk_path.resolve() if sdk_path else None
+ if self._sdk_path:
+ self.set_value("buildozer", "sdk_path", str(self._sdk_path))
+
+ @property
+ def arch(self):
+ return self._arch
+
+ @arch.setter
+ def arch(self, arch):
+ self._arch = arch
+ self.set_value("buildozer", "arch", arch)
+
+ @property
+ def mode(self):
+ return self._mode
+
+ @property
+ def modules(self):
+ return self._modules
+
+ @modules.setter
+ def modules(self, modules):
+ self._modules = modules
+ self.set_value("qt", "modules", ",".join(modules))
+
+ @property
+ def local_libs(self):
+ return self._local_libs
+
+ @local_libs.setter
+ def local_libs(self, local_libs):
+ self._local_libs = local_libs
+ self.set_value("buildozer", "local_libs", ",".join(local_libs))
+
+ @property
+ def recipe_dir(self):
+ return self._recipe_dir
+
+ @recipe_dir.setter
+ def recipe_dir(self, recipe_dir: Path):
+ self._recipe_dir = recipe_dir.resolve() if recipe_dir else None
+ if self._recipe_dir:
+ self.set_value("buildozer", "recipe_dir", str(self._recipe_dir))
+
+ def recipes_exist(self):
+ if not self._recipe_dir:
+ return False
+
+ pyside_recipe_dir = Path(self.recipe_dir) / "PySide6"
+ shiboken_recipe_dir = Path(self.recipe_dir) / "shiboken6"
+
+ return pyside_recipe_dir.is_dir() and shiboken_recipe_dir.is_dir()
+
+ @property
+ def jars_dir(self) -> Path:
+ return self._jars_dir
+
+ @jars_dir.setter
+ def jars_dir(self, jars_dir: Path):
+ self._jars_dir = jars_dir.resolve() if jars_dir else None
+ if self._jars_dir:
+ self.set_value("buildozer", "jars_dir", str(self._jars_dir))
+
+ @property
+ def wheel_pyside(self) -> Path:
+ return self._wheel_pyside
+
+ @wheel_pyside.setter
+ def wheel_pyside(self, wheel_pyside: Path):
+ self._wheel_pyside = wheel_pyside.resolve() if wheel_pyside else None
+ if self._wheel_pyside:
+ self.set_value("android", "wheel_pyside", str(self._wheel_pyside))
+
+ @property
+ def wheel_shiboken(self) -> Path:
+ return self._wheel_shiboken
+
+ @wheel_shiboken.setter
+ def wheel_shiboken(self, wheel_shiboken: Path):
+ self._wheel_shiboken = wheel_shiboken.resolve() if wheel_shiboken else None
+ if self._wheel_shiboken:
+ self.set_value("android", "wheel_shiboken", str(self._wheel_shiboken))
+
+ @property
+ def dependency_files(self):
+ return self._dependency_files
+
+ @dependency_files.setter
+ def dependency_files(self, dependency_files):
+ self._dependency_files = dependency_files
+
+ def _find_and_set_pysidemodules(self):
+ self.modules = find_pyside_modules(project_dir=self.project_dir,
+ extra_ignore_dirs=self.extra_ignore_dirs,
+ project_data=self.project_data)
+ logging.info("The following PySide modules were found from the python files of "
+ f"the project {self.modules}")
+
+ def find_and_set_jars_dir(self):
+ """Extract out and copy .jar files to {generated_files_path}
+ """
+ if not self.dry_run:
+ logging.info("[DEPLOY] Extract and copy jar files from PySide6 wheel to "
+ f"{self.generated_files_path}")
+ self.jars_dir = extract_and_copy_jar(wheel_path=self.wheel_pyside,
+ generated_files_path=self.generated_files_path)
+
+ def _find_and_set_arch(self):
+ """Find architecture from wheel name
+ """
+ self.arch = get_wheel_android_arch(wheel=self.wheel_pyside)
+ if not self.arch:
+ raise RuntimeError("[DEPLOY] PySide wheel corrupted. Wheel name should end with"
+ "platform name")
+
+ def _find_dependent_qt_modules(self):
+ """
+ Given pysidedeploy_config.modules, find all the other dependent Qt modules. This is
+ done by using llvm-readobj (readelf) to find the dependent libraries from the module
+ library.
+ """
+ dependent_modules = set()
+ all_dependencies = set()
+ lib_pattern = re.compile(f"libQt6(?P<mod_name>.*)_{self.arch}")
+
+ llvm_readobj = get_llvm_readobj(self.ndk_path)
+ if not llvm_readobj.exists():
+ raise FileNotFoundError(f"[DEPLOY] {llvm_readobj} does not exist."
+ "Finding Qt dependencies failed")
+
+ archive = zipfile.ZipFile(self.wheel_pyside)
+ lib_path_suffix = Path(str(self.qt_libs_path)).relative_to(self.wheel_pyside)
+
+ with tempfile.TemporaryDirectory() as tmpdir:
+ archive.extractall(tmpdir)
+ qt_libs_tmpdir = Path(tmpdir) / lib_path_suffix
+ # find the lib folder where Qt libraries are stored
+ for module_name in sorted(self.modules):
+ qt_module_path = qt_libs_tmpdir / f"libQt6{module_name}_{self.arch}.so"
+ if not qt_module_path.exists():
+ raise FileNotFoundError(f"[DEPLOY] libQt6{module_name}_{self.arch}.so not found"
+ " inside the wheel")
+ find_lib_dependencies(llvm_readobj=llvm_readobj, lib_path=qt_module_path,
+ dry_run=self.dry_run,
+ used_dependencies=all_dependencies)
+
+ for dependency in all_dependencies:
+ match = lib_pattern.search(dependency)
+ if match:
+ module = match.group("mod_name")
+ if module not in self.modules:
+ dependent_modules.add(module)
+
+ # check if the PySide6 binary for the Qt module actually exists
+ # eg: libQt6QmlModels.so exists and it includes QML types. Hence, it makes no
+ dependent_modules = [module for module in dependent_modules if module in
+ get_all_pyside_modules()]
+ dependent_modules_str = ",".join(dependent_modules)
+ logging.info("[DEPLOY] The following extra dependencies were found:"
+ f" {dependent_modules_str}")
+
+ return dependent_modules
+
+ def _find_and_set_dependency_files(self) -> List[zipfile.Path]:
+ """
+ Based on `modules`, returns the Qt6{module}_{arch}-android-dependencies.xml file, which
+ contains the various dependencies of the module, like permissions, plugins etc
+ """
+ needed_dependency_files = [(f"Qt{MAJOR_VERSION}{module}_{self.arch}"
+ "-android-dependencies.xml") for module in self.modules]
+
+ for dependency_file_name in needed_dependency_files:
+ dependency_file = self.qt_libs_path / dependency_file_name
+ if dependency_file.exists():
+ self._dependency_files.append(dependency_file)
+
+ logging.info("[DEPLOY] The following dependency files were found: "
+ f"{*self._dependency_files,}")
+
+ def _find_local_libs(self):
+ local_libs = set()
+ plugins = set()
+ lib_pattern = re.compile(f"lib(?P<lib_name>.*)_{self.arch}")
+ for dependency_file in self._dependency_files:
+ xml_content = dependency_file.read_text()
+ root = ET.fromstring(xml_content)
+ for local_lib in root.iter("lib"):
+
+ if 'file' not in local_lib.attrib:
+ if 'name' not in local_lib.attrib:
+ logging.warning("[DEPLOY] Invalid android dependency file"
+ f" {str(dependency_file)}")
+ continue
+
+ file = local_lib.attrib['file']
+ if file.endswith(".so"):
+ # file_name starts with lib and ends with the platform name
+ # eg: lib<lib_name>_x86_64.so
+ file_name = Path(file).stem
+
+ # we only need lib_name, because lib and arch gets re-added by
+ # python-for-android
+ match = lib_pattern.search(file_name)
+ if match:
+ lib_name = match.group("lib_name")
+ local_libs.add(lib_name)
+ if lib_name.startswith("plugins"):
+ plugin_name = lib_name.split('plugins_', 1)[1]
+ plugins.add(plugin_name)
+
+ return list(local_libs), list(plugins)
+
+ def _find_plugin_dependencies(self, dependent_plugins: List[str]):
+ # The `bundled` element in the dependency xml files points to the folder where
+ # additional dependencies for the application exists. Inspecting the depenency files
+ # in android, this always points to the specific Qt plugin dependency folder.
+ # eg: for application using Qt Multimedia, this looks like:
+ # <bundled file="./plugins/multimedia" />
+ # The code recusively checks all these dependent folders and adds the necessary plugins
+ # as dependencies
+ lib_pattern = re.compile(f"libplugins_(?P<plugin_name>.*)_{self.arch}.so")
+ for dependency_file in self._dependency_files:
+ xml_content = dependency_file.read_text()
+ root = ET.fromstring(xml_content)
+ for bundled_element in root.iter("bundled"):
+ # the attribute 'file' can be misleading, but it always points to the plugin
+ # folder on inspecting the dependency files
+ if 'file' not in bundled_element.attrib:
+ logging.warning("[DEPLOY] Invalid Android dependency file"
+ f" {str(dependency_file)}")
+ continue
+
+ # from "./plugins/multimedia" to absolute path in wheel
+ plugin_module_folder = bundled_element.attrib['file']
+ # they all should start with `./plugins`
+ if plugin_module_folder.startswith("./plugins"):
+ plugin_module_folder = plugin_module_folder.partition("./plugins/")[2]
+ else:
+ continue
+
+ absolute_plugin_module_folder = (self.qt_libs_path.parent / "plugins"
+ / plugin_module_folder)
+
+ if not absolute_plugin_module_folder.is_dir():
+ logging.warning(f"[DEPLOY] Qt plugin folder '{plugin_module_folder}' does not"
+ " exist or is not a directory for this Android platform")
+ continue
+
+ for plugin in absolute_plugin_module_folder.iterdir():
+ plugin_name = plugin.name
+ if plugin_name.endswith(".so") and plugin_name.startswith("libplugins"):
+ # we only need part of plugin_name, because `lib` prefix and `arch` suffix
+ # gets re-added by python-for-android
+ match = lib_pattern.search(plugin_name)
+ if match:
+ plugin_infix_name = match.group("plugin_name")
+ if plugin_infix_name not in dependent_plugins:
+ dependent_plugins.append(plugin_infix_name)
+
+ def verify_and_set_recipe_dir(self):
+ # create recipes
+ # https://python-for-android.readthedocs.io/en/latest/recipes/
+ # These recipes are manually added through buildozer.spec file to be used by
+ # python_for_android while building the distribution
+
+ if not self.recipes_exist() and not self.dry_run:
+ logging.info("[DEPLOY] Creating p4a recipes for PySide6 and shiboken6")
+ version = Wheel(self.wheel_pyside).version
+ create_recipe(version=version, component=f"PySide{MAJOR_VERSION}",
+ wheel_path=self.wheel_pyside,
+ generated_files_path=self.generated_files_path,
+ qt_modules=self.modules,
+ local_libs=self.local_libs,
+ plugins=self.qt_plugins)
+ create_recipe(version=version, component=f"shiboken{MAJOR_VERSION}",
+ wheel_path=self.wheel_shiboken,
+ generated_files_path=self.generated_files_path)
+ self.recipe_dir = ((self.generated_files_path
+ / "recipes").resolve())
diff --git a/sources/pyside-tools/deploy_lib/android/android_helper.py b/sources/pyside-tools/deploy_lib/android/android_helper.py
new file mode 100644
index 000000000..7d2f5d575
--- /dev/null
+++ b/sources/pyside-tools/deploy_lib/android/android_helper.py
@@ -0,0 +1,151 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+import logging
+import zipfile
+from dataclasses import dataclass
+from pathlib import Path
+from typing import List, Set
+from zipfile import ZipFile
+
+from jinja2 import Environment, FileSystemLoader
+
+from .. import run_command
+
+
+@dataclass
+class AndroidData:
+ """
+ Dataclass to store all the Android data obtained through cli
+ """
+ wheel_pyside: Path
+ wheel_shiboken: Path
+ ndk_path: Path
+ sdk_path: Path
+
+
+def create_recipe(version: str, component: str, wheel_path: str, generated_files_path: Path,
+ qt_modules: List[str] = None, local_libs: List[str] = None,
+ plugins: List[str] = None):
+ '''
+ Create python_for_android recipe for PySide6 and shiboken6
+ '''
+ qt_plugins = []
+ if plugins:
+ # split plugins based on category
+ for plugin in plugins:
+ plugin_category, plugin_name = plugin.split('_', 1)
+ qt_plugins.append((plugin_category, plugin_name))
+
+ qt_local_libs = []
+ if local_libs:
+ qt_local_libs = [local_lib for local_lib in local_libs if local_lib.startswith("Qt6")]
+
+ rcp_tmpl_path = Path(__file__).parent / "recipes" / f"{component}"
+ environment = Environment(loader=FileSystemLoader(rcp_tmpl_path))
+ template = environment.get_template("__init__.tmpl.py")
+ content = template.render(
+ version=version,
+ wheel_path=wheel_path,
+ qt_modules=qt_modules,
+ qt_local_libs=qt_local_libs,
+ qt_plugins=qt_plugins
+ )
+
+ recipe_path = generated_files_path / "recipes" / f"{component}"
+ recipe_path.mkdir(parents=True, exist_ok=True)
+ logging.info(f"[DEPLOY] Writing {component} recipe into {str(recipe_path)}")
+ with open(recipe_path / "__init__.py", mode="w", encoding="utf-8") as recipe:
+ recipe.write(content)
+
+
+def extract_and_copy_jar(wheel_path: Path, generated_files_path: Path) -> str:
+ '''
+ extracts the PySide6 wheel and copies the 'jar' folder to 'generated_files_path'.
+ These .jar files are added to the buildozer.spec file to be used later by buildozer
+ '''
+ jar_path = generated_files_path / "jar"
+ jar_path.mkdir(parents=True, exist_ok=True)
+ archive = ZipFile(wheel_path)
+ jar_files = [file for file in archive.namelist() if file.startswith("PySide6/jar")]
+ for file in jar_files:
+ archive.extract(file, jar_path)
+ return (jar_path / "PySide6" / "jar").resolve() if jar_files else None
+
+
+def get_wheel_android_arch(wheel: Path):
+ '''
+ Get android architecture from wheel
+ '''
+ supported_archs = ["aarch64", "armv7a", "i686", "x86_64"]
+ for arch in supported_archs:
+ if arch in wheel.stem:
+ return arch
+
+ return None
+
+
+def get_llvm_readobj(ndk_path: Path) -> Path:
+ '''
+ Return the path to llvm_readobj from the Android Ndk
+ '''
+ # TODO: Requires change if Windows platform supports Android Deployment or if we
+ # support host other than linux-x86_64
+ return (ndk_path / "toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-readobj")
+
+
+def find_lib_dependencies(llvm_readobj: Path, lib_path: Path, used_dependencies: Set[str] = None,
+ dry_run: bool = False):
+ """
+ Find all the Qt dependencies of a library using llvm_readobj
+ """
+ if lib_path.name in used_dependencies:
+ return
+
+ used_dependencies.add(lib_path.name)
+
+ command = [str(llvm_readobj), "--needed-libs", str(lib_path)]
+
+ # even if dry_run is given, we need to run the actual command to see all the dependencies
+ # for which llvm-readelf is run.
+ if dry_run:
+ _, output = run_command(command=command, dry_run=dry_run, fetch_output=True)
+ _, output = run_command(command=command, dry_run=False, fetch_output=True)
+
+ dependencies = set()
+ neededlibraries_found = False
+ for line in output.splitlines():
+ line = line.decode("utf-8").lstrip()
+ if line.startswith("NeededLibraries") and not neededlibraries_found:
+ neededlibraries_found = True
+ if neededlibraries_found and line.startswith("libQt"):
+ dependencies.add(line)
+ used_dependencies.add(line)
+ dependent_lib_path = lib_path.parent / line
+ find_lib_dependencies(llvm_readobj, dependent_lib_path, used_dependencies, dry_run)
+
+ if dependencies:
+ logging.info(f"[DEPLOY] Following dependencies found for {lib_path.stem}: {dependencies}")
+ else:
+ logging.info(f"[DEPLOY] No Qt dependencies found for {lib_path.stem}")
+
+
+def find_qtlibs_in_wheel(wheel_pyside: Path):
+ """
+ Find the path to Qt/lib folder inside the wheel.
+ """
+ archive = ZipFile(wheel_pyside)
+ qt_libs_path = wheel_pyside / "PySide6/Qt/lib"
+ qt_libs_path = zipfile.Path(archive, at=qt_libs_path)
+ if not qt_libs_path.exists():
+ for file in archive.namelist():
+ # the dependency files are inside the libs folder
+ if file.endswith("android-dependencies.xml"):
+ qt_libs_path = zipfile.Path(archive, at=file).parent
+ # all dependency files are in the same path
+ break
+
+ if not qt_libs_path:
+ raise FileNotFoundError("[DEPLOY] Unable to find Qt libs folder inside the wheel")
+
+ return qt_libs_path
diff --git a/sources/pyside-tools/deploy_lib/android/buildozer.py b/sources/pyside-tools/deploy_lib/android/buildozer.py
new file mode 100644
index 000000000..828982b5b
--- /dev/null
+++ b/sources/pyside-tools/deploy_lib/android/buildozer.py
@@ -0,0 +1,140 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+import sys
+import logging
+import xml.etree.ElementTree as ET
+import zipfile
+from pathlib import Path
+from typing import List
+
+from . import AndroidConfig
+from .. import BaseConfig, run_command
+
+
+class BuildozerConfig(BaseConfig):
+ def __init__(self, buildozer_spec_file: Path, pysidedeploy_config: AndroidConfig):
+ super().__init__(buildozer_spec_file, comment_prefixes="#")
+ self.set_value("app", "title", pysidedeploy_config.title)
+ self.set_value("app", "package.name", pysidedeploy_config.title)
+ self.set_value("app", "package.domain",
+ f"org.{pysidedeploy_config.title}")
+
+ include_exts = self.get_value("app", "source.include_exts")
+ include_exts = f"{include_exts},qml,js"
+ self.set_value("app", "source.include_exts", include_exts, raise_warning=False)
+
+ self.set_value("app", "requirements", "python3,shiboken6,PySide6")
+
+ # android platform specific
+ if pysidedeploy_config.ndk_path:
+ self.set_value("app", "android.ndk_path", str(pysidedeploy_config.ndk_path))
+
+ if pysidedeploy_config.sdk_path:
+ self.set_value("app", "android.sdk_path", str(pysidedeploy_config.sdk_path))
+
+ self.set_value("app", "android.archs", pysidedeploy_config.arch)
+
+ # p4a changes
+ self.set_value("app", "p4a.bootstrap", "qt")
+ self.set_value('app', "p4a.local_recipes", str(pysidedeploy_config.recipe_dir))
+
+ # add permissions
+ permissions = self.__find_permissions(pysidedeploy_config.dependency_files)
+ permissions = ", ".join(permissions)
+ self.set_value("app", "android.permissions", permissions)
+
+ # add jars and initClasses for the jars
+ jars, init_classes = self.__find_jars(pysidedeploy_config.dependency_files,
+ pysidedeploy_config.jars_dir)
+ self.set_value("app", "android.add_jars", ",".join(jars))
+
+ # extra arguments specific to Qt
+ modules = ",".join(pysidedeploy_config.modules)
+ local_libs = ",".join(pysidedeploy_config.local_libs)
+ init_classes = ",".join(init_classes)
+ extra_args = (f"--qt-libs={modules} --load-local-libs={local_libs}"
+ f" --init-classes={init_classes}")
+ self.set_value("app", "p4a.extra_args", extra_args)
+
+ # TODO: does not work atm. Seems like a bug with buildozer
+ # change buildozer build_dir
+ # self.set_value("buildozer", "build_dir", str(build_dir.relative_to(Path.cwd())))
+
+ # change final apk/aab path
+ self.set_value("buildozer", "bin_dir", str(pysidedeploy_config.exe_dir.resolve()))
+
+ # set application icon
+ self.set_value("app", "icon.filename", pysidedeploy_config.icon)
+
+ self.update_config()
+
+ def __find_permissions(self, dependency_files: List[zipfile.Path]):
+ permissions = set()
+ for dependency_file in dependency_files:
+ xml_content = dependency_file.read_text()
+ root = ET.fromstring(xml_content)
+ for permission in root.iter("permission"):
+ permissions.add(permission.attrib['name'])
+ return permissions
+
+ def __find_jars(self, dependency_files: List[zipfile.Path], jars_dir: Path):
+ jars, init_classes = set(), set()
+ for dependency_file in dependency_files:
+ xml_content = dependency_file.read_text()
+ root = ET.fromstring(xml_content)
+ for jar in root.iter("jar"):
+ jar_file = jar.attrib['file']
+ if jar_file.startswith("jar/"):
+ jar_file_name = jar_file[4:]
+ if (jars_dir / jar_file_name).exists():
+ jars.add(str(jars_dir / jar_file_name))
+ else:
+ logging.warning(f"[DEPLOY] Unable to include {jar_file}. "
+ f"{jar_file} does not exist in {jars_dir}")
+ continue
+ else:
+ logging.warning(f"[DEPLOY] Unable to include {jar_file}. "
+ "All jar file paths should begin with 'jar/'")
+ continue
+
+ jar_init_class = jar.attrib.get('initClass')
+ if jar_init_class:
+ init_classes.add(jar_init_class)
+
+ # add the jar with all the activity and service java files
+ # this is created from Qt for Python instead of Qt
+ # The initClasses for this are already taken care of by python-for-android
+ android_bindings_jar = jars_dir / "Qt6AndroidBindings.jar"
+ if android_bindings_jar.exists():
+ jars.add(str(android_bindings_jar))
+ else:
+ raise FileNotFoundError(f"{android_bindings_jar} not found in wheel")
+
+ return jars, init_classes
+
+
+class Buildozer:
+ dry_run = False
+
+ @staticmethod
+ def initialize(pysidedeploy_config: AndroidConfig):
+ project_dir = Path(pysidedeploy_config.project_dir)
+ buildozer_spec = project_dir / "buildozer.spec"
+ if buildozer_spec.exists():
+ logging.warning(f"[DEPLOY] buildozer.spec already present in {str(project_dir)}."
+ "Using it")
+ return
+
+ # creates buildozer.spec config file
+ command = [sys.executable, "-m", "buildozer", "init"]
+ run_command(command=command, dry_run=Buildozer.dry_run)
+ if not Buildozer.dry_run:
+ if not buildozer_spec.exists():
+ raise RuntimeError(f"buildozer.spec not found in {Path.cwd()}")
+ BuildozerConfig(buildozer_spec, pysidedeploy_config)
+
+ @staticmethod
+ def create_executable(mode: str):
+ command = [sys.executable, "-m", "buildozer", "android", mode]
+ run_command(command=command, dry_run=Buildozer.dry_run)
diff --git a/sources/pyside-tools/deploy_lib/android/recipes/PySide6/__init__.tmpl.py b/sources/pyside-tools/deploy_lib/android/recipes/PySide6/__init__.tmpl.py
new file mode 100644
index 000000000..8a8615798
--- /dev/null
+++ b/sources/pyside-tools/deploy_lib/android/recipes/PySide6/__init__.tmpl.py
@@ -0,0 +1,64 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+import shutil
+import zipfile
+from pathlib import Path
+
+from pythonforandroid.logger import info
+from pythonforandroid.recipe import PythonRecipe
+
+
+class PySideRecipe(PythonRecipe):
+ version = '{{ version }}'
+ wheel_path = '{{ wheel_path }}'
+ depends = ["shiboken6"]
+ call_hostpython_via_targetpython = False
+ install_in_hostpython = False
+
+ def build_arch(self, arch):
+ """Unzip the wheel and copy into site-packages of target"""
+
+ info("Copying libc++_shared.so from SDK to be loaded on startup")
+ libcpp_path = f"{self.ctx.ndk.sysroot_lib_dir}/{arch.command_prefix}/libc++_shared.so"
+ shutil.copyfile(libcpp_path, Path(self.ctx.get_libs_dir(arch.arch)) / "libc++_shared.so")
+
+ info(f"Installing {self.name} into site-packages")
+ with zipfile.ZipFile(self.wheel_path, "r") as zip_ref:
+ info("Unzip wheels and copy into {}".format(self.ctx.get_python_install_dir(arch.arch)))
+ zip_ref.extractall(self.ctx.get_python_install_dir(arch.arch))
+
+ lib_dir = Path(f"{self.ctx.get_python_install_dir(arch.arch)}/PySide6/Qt/lib")
+
+ info("Copying Qt libraries to be loaded on startup")
+ shutil.copytree(lib_dir, self.ctx.get_libs_dir(arch.arch), dirs_exist_ok=True)
+ shutil.copyfile(lib_dir.parent.parent / "libpyside6.abi3.so",
+ Path(self.ctx.get_libs_dir(arch.arch)) / "libpyside6.abi3.so")
+
+ {% for module in qt_modules %} # noqa: E999
+ shutil.copyfile(lib_dir.parent.parent / f"Qt{{ module }}.abi3.so",
+ Path(self.ctx.get_libs_dir(arch.arch)) / "Qt{{ module }}.abi3.so")
+ {% if module == "Qml" -%} # noqa: E999
+ shutil.copyfile(lib_dir.parent.parent / "libpyside6qml.abi3.so",
+ Path(self.ctx.get_libs_dir(arch.arch)) / "libpyside6qml.abi3.so")
+ {% endif %} # noqa: E999
+ {% endfor %} # noqa: E999
+
+ {% for lib in qt_local_libs %} # noqa: E999
+ lib_path = lib_dir / f"lib{{ lib }}_{arch.arch}.so"
+ if lib_path.exists():
+ shutil.copyfile(lib_path,
+ Path(self.ctx.get_libs_dir(arch.arch)) / f"lib{{ lib }}_{arch.arch}.so")
+ {% endfor %} # noqa: E999
+
+ {% for plugin_category,plugin_name in qt_plugins %} # noqa: E999
+ plugin_path = (lib_dir.parent / "plugins" / "{{ plugin_category }}" /
+ f"libplugins_{{ plugin_category }}_{{ plugin_name }}_{arch.arch}.so")
+ if plugin_path.exists():
+ shutil.copyfile(plugin_path,
+ (Path(self.ctx.get_libs_dir(arch.arch)) /
+ f"libplugins_{{ plugin_category }}_{{ plugin_name }}_{arch.arch}.so"))
+ {% endfor %} # noqa: E999
+
+
+recipe = PySideRecipe()
diff --git a/sources/pyside-tools/deploy_lib/android/recipes/shiboken6/__init__.tmpl.py b/sources/pyside-tools/deploy_lib/android/recipes/shiboken6/__init__.tmpl.py
new file mode 100644
index 000000000..d6ab037bf
--- /dev/null
+++ b/sources/pyside-tools/deploy_lib/android/recipes/shiboken6/__init__.tmpl.py
@@ -0,0 +1,31 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+import shutil
+import zipfile
+from pathlib import Path
+
+from pythonforandroid.logger import info
+from pythonforandroid.recipe import PythonRecipe
+
+
+class ShibokenRecipe(PythonRecipe):
+ version = '{{ version }}'
+ wheel_path = '{{ wheel_path }}'
+
+ call_hostpython_via_targetpython = False
+ install_in_hostpython = False
+
+ def build_arch(self, arch):
+ ''' Unzip the wheel and copy into site-packages of target'''
+ info('Installing {} into site-packages'.format(self.name))
+ with zipfile.ZipFile(self.wheel_path, 'r') as zip_ref:
+ info('Unzip wheels and copy into {}'.format(self.ctx.get_python_install_dir(arch.arch)))
+ zip_ref.extractall(self.ctx.get_python_install_dir(arch.arch))
+
+ lib_dir = Path(f"{self.ctx.get_python_install_dir(arch.arch)}/shiboken6")
+ shutil.copyfile(lib_dir / "libshiboken6.abi3.so",
+ Path(self.ctx.get_libs_dir(arch.arch)) / "libshiboken6.abi3.so")
+
+
+recipe = ShibokenRecipe()
diff --git a/sources/pyside-tools/deploy_lib/commands.py b/sources/pyside-tools/deploy_lib/commands.py
new file mode 100644
index 000000000..3a7e2a2e2
--- /dev/null
+++ b/sources/pyside-tools/deploy_lib/commands.py
@@ -0,0 +1,60 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+import json
+import subprocess
+import sys
+from pathlib import Path
+from typing import List
+
+"""
+All utility functions for deployment
+"""
+
+
+def run_command(command, dry_run: bool, fetch_output: bool = False):
+ command_str = " ".join([str(cmd) for cmd in command])
+ output = None
+ is_windows = (sys.platform == "win32")
+ try:
+ if not dry_run:
+ if fetch_output:
+ output = subprocess.check_output(command, shell=is_windows)
+ else:
+ subprocess.check_call(command, shell=is_windows)
+ else:
+ print(command_str + "\n")
+ except FileNotFoundError as error:
+ raise FileNotFoundError(f"[DEPLOY] {error.filename} not found")
+ except subprocess.CalledProcessError as error:
+ raise RuntimeError(
+ f"[DEPLOY] Command {command_str} failed with error {error} and return_code"
+ f"{error.returncode}"
+ )
+ except Exception as error:
+ raise RuntimeError(f"[DEPLOY] Command {command_str} failed with error {error}")
+
+ return command_str, output
+
+
+def run_qmlimportscanner(qml_files: List[Path], dry_run: bool):
+ """
+ Runs pyside6-qmlimportscanner to find all the imported qml modules
+ """
+ if not qml_files:
+ return []
+
+ qml_modules = []
+ cmd = ["pyside6-qmlimportscanner", "-qmlFiles"]
+ cmd.extend([str(qml_file) for qml_file in qml_files])
+
+ if dry_run:
+ run_command(command=cmd, dry_run=True)
+
+ # we need to run qmlimportscanner during dry_run as well to complete the
+ # command being run by nuitka
+ _, json_string = run_command(command=cmd, dry_run=False, fetch_output=True)
+ json_string = json_string.decode("utf-8")
+ json_array = json.loads(json_string)
+ qml_modules = [item['name'] for item in json_array if item['type'] == "module"]
+ return qml_modules
diff --git a/sources/pyside-tools/deploy_lib/config.py b/sources/pyside-tools/deploy_lib/config.py
new file mode 100644
index 000000000..d59dd92ad
--- /dev/null
+++ b/sources/pyside-tools/deploy_lib/config.py
@@ -0,0 +1,459 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+import sys
+import configparser
+import logging
+import warnings
+from configparser import ConfigParser
+from typing import List
+from pathlib import Path
+
+from project import ProjectData
+from . import (DEFAULT_APP_ICON, find_pyside_modules, find_permission_categories,
+ QtDependencyReader, run_qmlimportscanner)
+
+# Some QML plugins like QtCore are excluded from this list as they don't contribute much to
+# executable size. Excluding them saves the extra processing of checking for them in files
+EXCLUDED_QML_PLUGINS = {"QtQuick", "QtQuick3D", "QtCharts", "QtWebEngine", "QtTest", "QtSensors"}
+
+PERMISSION_MAP = {"Bluetooth": "NSBluetoothAlwaysUsageDescription:BluetoothAccess",
+ "Camera": "NSCameraUsageDescription:CameraAccess",
+ "Microphone": "NSMicrophoneUsageDescription:MicrophoneAccess",
+ "Contacts": "NSContactsUsageDescription:ContactsAccess",
+ "Calendar": "NSCalendarsUsageDescription:CalendarAccess",
+ # for iOS NSLocationWhenInUseUsageDescription and
+ # NSLocationAlwaysAndWhenInUseUsageDescription are also required.
+ "Location": "NSLocationUsageDescription:LocationAccess",
+ }
+
+
+class BaseConfig:
+ """Wrapper class around any .spec file with function to read and set values for the .spec file
+ """
+ def __init__(self, config_file: Path, comment_prefixes: str = "/",
+ existing_config_file: bool = False) -> None:
+ self.config_file = config_file
+ self.existing_config_file = existing_config_file
+ self.parser = ConfigParser(comment_prefixes=comment_prefixes, strict=False,
+ allow_no_value=True)
+ self.parser.read(self.config_file)
+
+ def update_config(self):
+ logging.info(f"[DEPLOY] Creating {self.config_file}")
+ with open(self.config_file, "w+") as config_file:
+ self.parser.write(config_file, space_around_delimiters=True)
+
+ def set_value(self, section: str, key: str, new_value: str, raise_warning: bool = True):
+ try:
+ current_value = self.get_value(section, key, ignore_fail=True)
+ if current_value != new_value:
+ self.parser.set(section, key, new_value)
+ except configparser.NoOptionError:
+ if raise_warning:
+ logging.warning(f"[DEPLOY] Key {key} does not exist")
+ except configparser.NoSectionError:
+ if raise_warning:
+ logging.warning(f"[DEPLOY] Section {section} does not exist")
+
+ def get_value(self, section: str, key: str, ignore_fail: bool = False):
+ try:
+ return self.parser.get(section, key)
+ except configparser.NoOptionError:
+ if not ignore_fail:
+ logging.warning(f"[DEPLOY] Key {key} does not exist")
+ except configparser.NoSectionError:
+ if not ignore_fail:
+ logging.warning(f"[DEPLOY] Section {section} does not exist")
+
+
+class Config(BaseConfig):
+ """
+ Wrapper class around pysidedeploy.spec file, whose options are used to control the executable
+ creation
+ """
+
+ def __init__(self, config_file: Path, source_file: Path, python_exe: Path, dry_run: bool,
+ existing_config_file: bool = False, extra_ignore_dirs: List[str] = None):
+ super().__init__(config_file=config_file, existing_config_file=existing_config_file)
+
+ self.extra_ignore_dirs = extra_ignore_dirs
+ self._dry_run = dry_run
+ self.qml_modules = set()
+ # set source_file
+ self.source_file = Path(
+ self.set_or_fetch(config_property_val=source_file, config_property_key="input_file")
+ ).resolve()
+
+ # set python path
+ self.python_path = Path(
+ self.set_or_fetch(
+ config_property_val=python_exe,
+ config_property_key="python_path",
+ config_property_group="python",
+ )
+ )
+
+ self.title = self.get_value("app", "title")
+
+ # set application icon
+ config_icon = self.get_value("app", "icon")
+ if config_icon:
+ self.icon = str(Path(config_icon).resolve())
+ else:
+ self.icon = DEFAULT_APP_ICON
+
+ self.project_dir = None
+ if self.get_value("app", "project_dir"):
+ self.project_dir = Path(self.get_value("app", "project_dir")).absolute()
+ else:
+ self._find_and_set_project_dir()
+
+ self.exe_dir = None
+ if self.get_value("app", "exec_directory"):
+ self.exe_dir = Path(self.get_value("app", "exec_directory")).absolute()
+ else:
+ self._find_and_set_exe_dir()
+
+ self.project_data: ProjectData = None
+ if self.get_value("app", "project_file"):
+ project_file = Path(self.get_value("app", "project_file")).absolute()
+ self.project_data = ProjectData(project_file=project_file)
+ else:
+ self._find_and_set_project_file()
+
+ self.qml_files = []
+ config_qml_files = self.get_value("qt", "qml_files")
+ if config_qml_files and self.project_dir and self.existing_config_file:
+ self.qml_files = [Path(self.project_dir) / file for file in config_qml_files.split(",")]
+ else:
+ self._find_and_set_qml_files()
+
+ self.excluded_qml_plugins = []
+ if self.get_value("qt", "excluded_qml_plugins") and self.existing_config_file:
+ self.excluded_qml_plugins = self.get_value("qt", "excluded_qml_plugins").split(",")
+ else:
+ self._find_and_set_excluded_qml_plugins()
+
+ self._generated_files_path = self.project_dir / "deployment"
+
+ self.modules = []
+
+ def set_or_fetch(self, config_property_val, config_property_key, config_property_group="app"):
+ """
+ Write to config_file if 'config_property_key' is known without config_file
+ Fetch and return from config_file if 'config_property_key' is unknown, but
+ config_file exists
+ Otherwise, raise an exception
+ """
+ if config_property_val:
+ self.set_value(config_property_group, config_property_key, str(config_property_val))
+ return config_property_val
+ elif self.get_value(config_property_group, config_property_key):
+ return self.get_value(config_property_group, config_property_key)
+ else:
+ raise RuntimeError(
+ f"[DEPLOY] No {config_property_key} specified in config file or as cli option"
+ )
+
+ @property
+ def dry_run(self):
+ return self._dry_run
+
+ @property
+ def generated_files_path(self):
+ return self._generated_files_path
+
+ @property
+ def qml_files(self):
+ return self._qml_files
+
+ @qml_files.setter
+ def qml_files(self, qml_files):
+ self._qml_files = qml_files
+
+ @property
+ def project_dir(self):
+ return self._project_dir
+
+ @project_dir.setter
+ def project_dir(self, project_dir):
+ self._project_dir = project_dir
+
+ @property
+ def title(self):
+ return self._title
+
+ @title.setter
+ def title(self, title):
+ self._title = title
+ self.set_value("app", "title", title)
+
+ @property
+ def icon(self):
+ return self._icon
+
+ @icon.setter
+ def icon(self, icon):
+ self._icon = icon
+ self.set_value("app", "icon", icon)
+
+ @property
+ def source_file(self):
+ return self._source_file
+
+ @source_file.setter
+ def source_file(self, source_file: Path):
+ self._source_file = source_file
+
+ @property
+ def python_path(self):
+ return self._python_path
+
+ @python_path.setter
+ def python_path(self, python_path: Path):
+ self._python_path = python_path
+
+ @property
+ def extra_args(self):
+ return self.get_value("nuitka", "extra_args")
+
+ @extra_args.setter
+ def extra_args(self, extra_args):
+ self.set_value("nuitka", "extra_args", extra_args)
+
+ @property
+ def excluded_qml_plugins(self):
+ return self._excluded_qml_plugins
+
+ @excluded_qml_plugins.setter
+ def excluded_qml_plugins(self, excluded_qml_plugins):
+ self._excluded_qml_plugins = excluded_qml_plugins
+
+ @property
+ def exe_dir(self):
+ return self._exe_dir
+
+ @exe_dir.setter
+ def exe_dir(self, exe_dir: Path):
+ self._exe_dir = exe_dir
+
+ @property
+ def modules(self):
+ return self._modules
+
+ @modules.setter
+ def modules(self, modules):
+ self._modules = modules
+ self.set_value("qt", "modules", ",".join(modules))
+
+ def _find_and_set_qml_files(self):
+ """Fetches all the qml_files in the folder and sets them if the
+ field qml_files is empty in the config_dir"""
+
+ if self.project_data:
+ qml_files = self.project_data.qml_files
+ for sub_project_file in self.project_data.sub_projects_files:
+ qml_files.extend(ProjectData(project_file=sub_project_file).qml_files)
+ self.qml_files = qml_files
+ else:
+ qml_files_temp = None
+ if self.source_file and self.python_path:
+ if not self.qml_files:
+ qml_files_temp = list(self.source_file.parent.glob("**/*.qml"))
+
+ # add all QML files, excluding the ones shipped with installed PySide6
+ # The QML files shipped with PySide6 gets added if venv is used,
+ # because of recursive glob
+ if self.python_path.parent.parent == self.source_file.parent:
+ # python venv path is inside the main source dir
+ qml_files_temp = list(
+ set(qml_files_temp) - set(self.python_path.parent.parent.rglob("*.qml"))
+ )
+
+ if len(qml_files_temp) > 500:
+ if "site-packages" in str(qml_files_temp[-1]):
+ raise RuntimeError(
+ "You are including a lot of QML files from a local virtual env."
+ " This can lead to errors in deployment."
+ )
+ else:
+ warnings.warn(
+ "You seem to include a lot of QML files. This can lead to errors in "
+ "deployment."
+ )
+
+ if qml_files_temp:
+ extra_qml_files = [Path(file) for file in qml_files_temp]
+ self.qml_files.extend(extra_qml_files)
+ if self.qml_files:
+ self.set_value(
+ "qt",
+ "qml_files",
+ ",".join([str(file.absolute().relative_to(self.project_dir))
+ for file in self.qml_files]),
+ )
+ logging.info("[DEPLOY] QML files identified and set in config_file")
+
+ def _find_and_set_project_dir(self):
+ # there is no other way to find the project_dir than assume it is the parent directory
+ # of source_file
+ self.project_dir = self.source_file.parent
+
+ # update input_file path
+ self.set_value("app", "input_file", str(self.source_file.relative_to(self.project_dir)))
+
+ if self.project_dir != Path.cwd():
+ self.set_value("app", "project_dir", str(self.project_dir))
+ else:
+ self.set_value("app", "project_dir", str(self.project_dir.relative_to(Path.cwd())))
+
+ def _find_and_set_project_file(self):
+ if self.project_dir:
+ files = list(self.project_dir.glob("*.pyproject"))
+ else:
+ logging.exception("[DEPLOY] Project directory not set in config file")
+ raise
+
+ if not files:
+ logging.info("[DEPLOY] No .pyproject file found. Project file not set")
+ elif len(files) > 1:
+ logging.warning("DEPLOY: More that one .pyproject files found. Project file not set")
+ raise
+ else:
+ self.project_data = ProjectData(files[0])
+ self.set_value("app", "project_file", str(files[0].relative_to(self.project_dir)))
+ logging.info(f"[DEPLOY] Project file {files[0]} found and set in config file")
+
+ def _find_and_set_excluded_qml_plugins(self):
+ if self.qml_files:
+ self.qml_modules = set(run_qmlimportscanner(qml_files=self.qml_files,
+ dry_run=self.dry_run))
+ self.excluded_qml_plugins = EXCLUDED_QML_PLUGINS.difference(self.qml_modules)
+
+ # needed for dry_run testing
+ self.excluded_qml_plugins = sorted(self.excluded_qml_plugins)
+
+ if self.excluded_qml_plugins:
+ self.set_value("qt", "excluded_qml_plugins", ",".join(self.excluded_qml_plugins))
+
+ def _find_and_set_exe_dir(self):
+ if self.project_dir == Path.cwd():
+ self.exe_dir = self.project_dir.relative_to(Path.cwd())
+ else:
+ self.exe_dir = self.project_dir
+ self.exe_dir = Path(
+ self.set_or_fetch(
+ config_property_val=self.exe_dir, config_property_key="exec_directory"
+ )
+ ).absolute()
+
+ def _find_and_set_pysidemodules(self):
+ self.modules = find_pyside_modules(project_dir=self.project_dir,
+ extra_ignore_dirs=self.extra_ignore_dirs,
+ project_data=self.project_data)
+ logging.info("The following PySide modules were found from the Python files of "
+ f"the project {self.modules}")
+
+ def _find_and_set_qtquick_modules(self):
+ """Identify if QtQuick is used in QML files and add them as dependency
+ """
+ extra_modules = []
+ if not self.qml_modules:
+ self.qml_modules = set(run_qmlimportscanner(qml_files=self.qml_files,
+ dry_run=self.dry_run))
+
+ if "QtQuick" in self.qml_modules:
+ extra_modules.append("Quick")
+
+ if "QtQuick.Controls" in self.qml_modules:
+ extra_modules.append("QuickControls2")
+
+ self.modules += extra_modules
+
+
+class DesktopConfig(Config):
+ """Wrapper class around pysidedeploy.spec, but specific to Desktop deployment
+ """
+ def __init__(self, config_file: Path, source_file: Path, python_exe: Path, dry_run: bool,
+ existing_config_file: bool = False, extra_ignore_dirs: List[str] = None):
+ super().__init__(config_file, source_file, python_exe, dry_run, existing_config_file,
+ extra_ignore_dirs)
+ self.dependency_reader = QtDependencyReader(dry_run=self.dry_run)
+ if self.get_value("qt", "modules"):
+ self.modules = self.get_value("qt", "modules").split(",")
+ else:
+ self._find_and_set_pysidemodules()
+ self._find_and_set_qtquick_modules()
+ self._find_dependent_qt_modules()
+
+ self._qt_plugins = []
+ if self.get_value("qt", "plugins"):
+ self._qt_plugins = self.get_value("qt", "plugins").split(",")
+ else:
+ self.qt_plugins = self.dependency_reader.find_plugin_dependencies(self.modules,
+ python_exe)
+
+ self._permissions = []
+ if sys.platform == "darwin":
+ nuitka_macos_permissions = self.get_value("nuitka", "macos.permissions")
+ if nuitka_macos_permissions:
+ self._permissions = nuitka_macos_permissions.split(",")
+ else:
+ self._find_and_set_permissions()
+
+ @property
+ def qt_plugins(self):
+ return self._qt_plugins
+
+ @qt_plugins.setter
+ def qt_plugins(self, qt_plugins):
+ self._qt_plugins = qt_plugins
+ self.set_value("qt", "plugins", ",".join(qt_plugins))
+
+ @property
+ def permissions(self):
+ return self._permissions
+
+ @permissions.setter
+ def permissions(self, permissions):
+ self._permissions = permissions
+ self.set_value("nuitka", "macos.permissions", ",".join(permissions))
+
+ def _find_dependent_qt_modules(self):
+ """
+ Given pysidedeploy_config.modules, find all the other dependent Qt modules.
+ """
+ all_modules = set(self.modules)
+
+ if not self.dependency_reader.lib_reader:
+ warnings.warn(f"[DEPLOY] Unable to find {self.dependency_reader.lib_reader_name}. This "
+ "tool helps to find the Qt module dependencies of the application. "
+ "Skipping checking for dependencies.", category=RuntimeWarning)
+ return
+
+ for module_name in self.modules:
+ self.dependency_reader.find_dependencies(module=module_name, used_modules=all_modules)
+
+ self.modules = list(all_modules)
+
+ def _find_and_set_permissions(self):
+ """
+ Finds and sets the usage description string required for each permission requested by the
+ macOS application.
+ """
+ permissions = []
+ perm_categories = find_permission_categories(project_dir=self.project_dir,
+ extra_ignore_dirs=self.extra_ignore_dirs,
+ project_data=self.project_data)
+
+ perm_categories_str = ",".join(perm_categories)
+ logging.info(f"[DEPLOY] Usage descriptions for the {perm_categories_str} will be added to "
+ "the Info.plist file of the macOS application bundle")
+
+ # handling permissions
+ for perm_category in perm_categories:
+ if perm_category in PERMISSION_MAP:
+ permissions.append(PERMISSION_MAP[perm_category])
+
+ self.permissions = permissions
diff --git a/sources/pyside-tools/deploy_lib/default.spec b/sources/pyside-tools/deploy_lib/default.spec
new file mode 100644
index 000000000..0a729d585
--- /dev/null
+++ b/sources/pyside-tools/deploy_lib/default.spec
@@ -0,0 +1,97 @@
+[app]
+
+# Title of your application
+title = pyside_app_demo
+
+# Project Directory. The general assumption is that project_dir is the parent directory
+# of input_file
+project_dir =
+
+# Source file path
+input_file =
+
+# Directory where exec is stored
+exec_directory =
+
+# Path to .pyproject project file
+project_file =
+
+# Application icon
+icon =
+
+[python]
+
+# Python path
+python_path =
+
+# python packages to install
+# ordered-set: increase compile time performance of nuitka packaging
+# zstandard: provides final executable size optimization
+packages = Nuitka==2.1
+
+# buildozer: for deploying Android application
+android_packages = buildozer==1.5.0,cython==0.29.33
+
+[qt]
+
+# Comma separated path to QML files required
+# normally all the QML files required by the project are added automatically
+qml_files =
+
+# excluded qml plugin binaries
+excluded_qml_plugins =
+
+# Qt modules used. Comma separated
+modules =
+
+# Qt plugins used by the application
+plugins =
+
+[android]
+
+# path to PySide wheel
+wheel_pyside =
+
+# path to Shiboken wheel
+wheel_shiboken =
+
+# plugins to be copied to libs folder of the packaged application. Comma separated
+plugins =
+
+[nuitka]
+
+# usage description for permissions requested by the app as found in the Info.plist file
+# of the app bundle
+# eg: NSCameraUsageDescription:CameraAccess
+macos.permissions =
+
+# (str) specify any extra nuitka arguments
+# eg: extra_args = --show-modules --follow-stdlib
+extra_args = --quiet --noinclude-qt-translations
+
+[buildozer]
+
+# build mode
+# possible options: [release, debug]
+# release creates an aab, while debug creates an apk
+mode = debug
+
+# contrains path to PySide6 and shiboken6 recipe dir
+recipe_dir =
+
+# path to extra Qt Android jars to be loaded by the application
+jars_dir =
+
+# if empty uses default ndk path downloaded by buildozer
+ndk_path =
+
+# if empty uses default sdk path downloaded by buildozer
+sdk_path =
+
+# other libraries to be loaded. Comma separated.
+# loaded at app startup
+local_libs =
+
+# architecture of deployed platform
+# possible values: ["aarch64", "armv7a", "i686", "x86_64"]
+arch =
diff --git a/sources/pyside-tools/deploy_lib/dependency_util.py b/sources/pyside-tools/deploy_lib/dependency_util.py
new file mode 100644
index 000000000..2d5b188d3
--- /dev/null
+++ b/sources/pyside-tools/deploy_lib/dependency_util.py
@@ -0,0 +1,319 @@
+# Copyright (C) 2024 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+import ast
+import re
+import os
+import site
+import json
+import warnings
+import logging
+import shutil
+import sys
+from pathlib import Path
+from typing import List, Set
+from functools import lru_cache
+
+from . import IMPORT_WARNING_PYSIDE, run_command
+
+
+@lru_cache(maxsize=None)
+def get_py_files(project_dir: Path, extra_ignore_dirs: List[Path] = None, project_data=None):
+ """Finds and returns all the Python files in the project
+ """
+ py_candidates = []
+ ignore_dirs = ["__pycache__", "env", "venv", "deployment"]
+
+ if project_data:
+ py_candidates = project_data.python_files
+ ui_candidates = project_data.ui_files
+ qrc_candidates = project_data.qrc_files
+
+ def add_uic_qrc_candidates(candidates, candidate_type):
+ possible_py_candidates = [(file.parent / f"{candidate_type}_{file.stem}.py")
+ for file in candidates
+ if (file.parent / f"{candidate_type}_{file.stem}.py").exists()
+ ]
+
+ if len(possible_py_candidates) != len(candidates):
+ warnings.warn(f"[DEPLOY] The number of {candidate_type} files and their "
+ "corresponding Python files don't match.",
+ category=RuntimeWarning)
+
+ py_candidates.extend(possible_py_candidates)
+
+ if ui_candidates:
+ add_uic_qrc_candidates(ui_candidates, "ui")
+
+ if qrc_candidates:
+ add_uic_qrc_candidates(qrc_candidates, "qrc")
+
+ return py_candidates
+
+ # incase there is not .pyproject file, search all python files in project_dir, except
+ # ignore_dirs
+ if extra_ignore_dirs:
+ ignore_dirs.extend(extra_ignore_dirs)
+
+ # find relevant .py files
+ _walk = os.walk(project_dir)
+ for root, dirs, files in _walk:
+ dirs[:] = [d for d in dirs if d not in ignore_dirs and not d.startswith(".")]
+ for py_file in files:
+ if py_file.endswith(".py"):
+ py_candidates.append(Path(root) / py_file)
+
+ return py_candidates
+
+
+@lru_cache(maxsize=None)
+def get_ast(py_file: Path):
+ """Given a Python file returns the abstract syntax tree
+ """
+ contents = py_file.read_text(encoding="utf-8")
+ try:
+ tree = ast.parse(contents)
+ except SyntaxError:
+ print(f"[DEPLOY] Unable to parse {py_file}")
+ return tree
+
+
+def find_permission_categories(project_dir: Path, extra_ignore_dirs: List[Path] = None,
+ project_data=None):
+ """Given the project directory, finds all the permission categories required by the
+ project. eg: Camera, Bluetooth, Contacts etc.
+
+ Note: This function is only relevant for mac0S deployment.
+ """
+ all_perm_categories = set()
+ mod_pattern = re.compile("Q(?P<mod_name>.*)Permission")
+
+ def pyside_permission_imports(py_file: Path):
+ perm_categories = []
+ try:
+ tree = get_ast(py_file)
+ for node in ast.walk(tree):
+ if isinstance(node, ast.ImportFrom):
+ main_mod_name = node.module
+ if main_mod_name == "PySide6.QtCore":
+ # considers 'from PySide6.QtCore import QtMicrophonePermission'
+ for imported_module in node.names:
+ full_mod_name = imported_module.name
+ match = mod_pattern.search(full_mod_name)
+ if match:
+ mod_name = match.group("mod_name")
+ perm_categories.append(mod_name)
+ continue
+
+ if isinstance(node, ast.Import):
+ for imported_module in node.names:
+ full_mod_name = imported_module.name
+ if full_mod_name == "PySide6":
+ logging.warning(IMPORT_WARNING_PYSIDE.format(str(py_file)))
+ except Exception as e:
+ raise RuntimeError(f"[DEPLOY] Finding permission categories failed on file "
+ f"{str(py_file)} with error {e}")
+
+ return set(perm_categories)
+
+ py_candidates = get_py_files(project_dir, extra_ignore_dirs, project_data)
+ for py_candidate in py_candidates:
+ all_perm_categories = all_perm_categories.union(pyside_permission_imports(py_candidate))
+
+ if not all_perm_categories:
+ ValueError("[DEPLOY] No permission categories were found for macOS app bundle creation.")
+
+ return all_perm_categories
+
+
+def find_pyside_modules(project_dir: Path, extra_ignore_dirs: List[Path] = None,
+ project_data=None):
+ """
+ Searches all the python files in the project to find all the PySide modules used by
+ the application.
+ """
+ all_modules = set()
+ mod_pattern = re.compile("PySide6.Qt(?P<mod_name>.*)")
+
+ def pyside_module_imports(py_file: Path):
+ modules = []
+ try:
+ tree = get_ast(py_file)
+ for node in ast.walk(tree):
+ if isinstance(node, ast.ImportFrom):
+ main_mod_name = node.module
+ if main_mod_name.startswith("PySide6"):
+ if main_mod_name == "PySide6":
+ # considers 'from PySide6 import QtCore'
+ for imported_module in node.names:
+ full_mod_name = imported_module.name
+ if full_mod_name.startswith("Qt"):
+ modules.append(full_mod_name[2:])
+ continue
+
+ # considers 'from PySide6.QtCore import Qt'
+ match = mod_pattern.search(main_mod_name)
+ if match:
+ mod_name = match.group("mod_name")
+ modules.append(mod_name)
+ else:
+ logging.warning((
+ f"[DEPLOY] Unable to find module name from {ast.dump(node)}"))
+
+ if isinstance(node, ast.Import):
+ for imported_module in node.names:
+ full_mod_name = imported_module.name
+ if full_mod_name == "PySide6":
+ logging.warning(IMPORT_WARNING_PYSIDE.format(str(py_file)))
+ except Exception as e:
+ raise RuntimeError(f"[DEPLOY] Finding module import failed on file {str(py_file)} with "
+ f"error {e}")
+
+ return set(modules)
+
+ py_candidates = get_py_files(project_dir, extra_ignore_dirs, project_data)
+ for py_candidate in py_candidates:
+ all_modules = all_modules.union(pyside_module_imports(py_candidate))
+
+ if not all_modules:
+ ValueError("[DEPLOY] No PySide6 modules were found")
+
+ return list(all_modules)
+
+
+class QtDependencyReader:
+ def __init__(self, dry_run: bool = False) -> None:
+ self.dry_run = dry_run
+ self.lib_reader_name = None
+ self.qt_module_path_pattern = None
+ self.lib_pattern = None
+ self.command = None
+ self.qt_libs_dir = None
+
+ if sys.platform == "linux":
+ self.lib_reader_name = "readelf"
+ self.qt_module_path_pattern = "libQt6{module}.so.6"
+ self.lib_pattern = re.compile("libQt6(?P<mod_name>.*).so.6")
+ self.command_args = "-d"
+ elif sys.platform == "darwin":
+ self.lib_reader_name = "dyld_info"
+ self.qt_module_path_pattern = "Qt{module}.framework/Versions/A/Qt{module}"
+ self.lib_pattern = re.compile("@rpath/Qt(?P<mod_name>.*).framework/Versions/A/")
+ self.command_args = "-dependents"
+ elif sys.platform == "win32":
+ self.lib_reader_name = "dumpbin"
+ self.qt_module_path_pattern = "Qt6{module}.dll"
+ self.lib_pattern = re.compile("Qt6(?P<mod_name>.*).dll")
+ self.command_args = "/dependents"
+ else:
+ print(f"[DEPLOY] Deployment on unsupported platfrom {sys.platform}")
+ sys.exit(1)
+
+ self.pyside_install_dir = None
+ self.qt_libs_dir = self.get_qt_libs_dir()
+ self._lib_reader = shutil.which(self.lib_reader_name)
+
+ def get_qt_libs_dir(self):
+ """
+ Finds the path to the Qt libs directory inside PySide6 package installation
+ """
+ for possible_site_package in site.getsitepackages():
+ if possible_site_package.endswith("site-packages"):
+ self.pyside_install_dir = Path(possible_site_package) / "PySide6"
+
+ if not self.pyside_install_dir:
+ print("Unable to find site-packages. Exiting ...")
+ sys.exit(-1)
+
+ if sys.platform == "win32":
+ return self.pyside_install_dir
+
+ return self.pyside_install_dir / "Qt" / "lib" # for linux and macOS
+
+ @property
+ def lib_reader(self):
+ return self._lib_reader
+
+ def find_dependencies(self, module: str, used_modules: Set[str] = None):
+ """
+ Given a Qt module, find all the other Qt modules it is dependent on and add it to the
+ 'used_modules' set
+ """
+ qt_module_path = self.qt_libs_dir / self.qt_module_path_pattern.format(module=module)
+ if not qt_module_path.exists():
+ warnings.warn(f"[DEPLOY] {qt_module_path.name} not found in {str(qt_module_path)}."
+ "Skipping finding its dependencies.", category=RuntimeWarning)
+ return
+
+ lib_pattern = re.compile(self.lib_pattern)
+ command = [self.lib_reader, self.command_args, str(qt_module_path)]
+ # print the command if dry_run is True.
+ # Normally run_command is going to print the command in dry_run mode. But, this is a
+ # special case where we need to print the command as well as to run it.
+ if self.dry_run:
+ command_str = " ".join(command)
+ print(command_str + "\n")
+
+ # We need to run this even for dry run, to see the full Nuitka command being executed
+ _, output = run_command(command=command, dry_run=False, fetch_output=True)
+
+ dependent_modules = set()
+ for line in output.splitlines():
+ line = line.decode("utf-8").lstrip()
+ if sys.platform == "darwin":
+ if line.endswith(f"Qt{module} [arm64]:"):
+ # macOS Qt frameworks bundles have both x86_64 and arm64 architectures
+ # We only need to consider one as the dependencies are redundant
+ break
+ elif line.endswith(f"Qt{module} [X86_64]:"):
+ # this line needs to be skipped because it matches with the pattern
+ # and is related to the module itself, not the dependencies of the module
+ continue
+ elif sys.platform == "win32" and line.startswith("Summary"):
+ # the dependencies would be found before the `Summary` line
+ break
+ match = lib_pattern.search(line)
+ if match:
+ dep_module = match.group("mod_name")
+ dependent_modules.add(dep_module)
+ if dep_module not in used_modules:
+ used_modules.add(dep_module)
+ self.find_dependencies(module=dep_module, used_modules=used_modules)
+
+ if dependent_modules:
+ logging.info(f"[DEPLOY] Following dependencies found for {module}: {dependent_modules}")
+ else:
+ logging.info(f"[DEPLOY] No Qt dependencies found for {module}")
+
+ def find_plugin_dependencies(self, used_modules: List[str], python_exe: Path) -> List[str]:
+ """
+ Given the modules used by the application, returns all the required plugins
+ """
+ plugins = set()
+ pyside_wheels = ["PySide6_Essentials", "PySide6_Addons"]
+ # TODO from 3.12 use list(dist.name for dist in importlib.metadata.distributions())
+ _, installed_packages = run_command(command=[str(python_exe), "-m", "pip", "freeze"],
+ dry_run=False, fetch_output=True)
+ installed_packages = [p.decode().split('==')[0] for p in installed_packages.split()]
+ for pyside_wheel in pyside_wheels:
+ if pyside_wheel not in installed_packages:
+ # the wheel is not installed and hence no plugins are checked for its modules
+ logging.warning((f"[DEPLOY] The package {pyside_wheel} is not installed. "))
+ continue
+ pyside_mod_plugin_json_name = f"{pyside_wheel}.json"
+ pyside_mod_plugin_json_file = self.pyside_install_dir / pyside_mod_plugin_json_name
+ if not pyside_mod_plugin_json_file.exists():
+ warnings.warn(f"[DEPLOY] Unable to find {pyside_mod_plugin_json_file}.",
+ category=RuntimeWarning)
+ continue
+
+ # convert the json to dict
+ pyside_mod_dict = {}
+ with open(pyside_mod_plugin_json_file) as pyside_json:
+ pyside_mod_dict = json.load(pyside_json)
+
+ # find all the plugins in the modules
+ for module in used_modules:
+ plugins.update(pyside_mod_dict.get(module, []))
+
+ return list(plugins)
diff --git a/sources/pyside-tools/deploy_lib/deploy_util.py b/sources/pyside-tools/deploy_lib/deploy_util.py
new file mode 100644
index 000000000..e8b05e990
--- /dev/null
+++ b/sources/pyside-tools/deploy_lib/deploy_util.py
@@ -0,0 +1,77 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+import logging
+import shutil
+import sys
+from pathlib import Path
+
+from . import EXE_FORMAT
+from .config import Config
+
+
+def config_option_exists():
+ for argument in sys.argv:
+ if any(item in argument for item in ["--config-file", "-c"]):
+ return True
+
+ return False
+
+
+def cleanup(config: Config, is_android: bool = False):
+ """
+ Cleanup the generated build folders/files
+ """
+ if config.generated_files_path.exists():
+ shutil.rmtree(config.generated_files_path)
+ logging.info("[DEPLOY] Deployment directory purged")
+
+ if is_android:
+ buildozer_spec: Path = config.project_dir / "buildozer.spec"
+ if buildozer_spec.exists():
+ buildozer_spec.unlink()
+ logging.info(f"[DEPLOY] {str(buildozer_spec)} removed")
+
+ buildozer_build: Path = config.project_dir / ".buildozer"
+ if buildozer_build.exists():
+ shutil.rmtree(buildozer_build)
+ logging.info(f"[DEPLOY] {str(buildozer_build)} removed")
+
+
+def create_config_file(dry_run: bool = False, config_file: Path = None, main_file: Path = None):
+ """
+ Sets up a new pysidedeploy.spec or use an existing config file
+ """
+
+ if main_file:
+ if main_file.parent != Path.cwd():
+ config_file = main_file.parent / "pysidedeploy.spec"
+ else:
+ config_file = Path.cwd() / "pysidedeploy.spec"
+
+ logging.info(f"[DEPLOY] Creating config file {config_file}")
+ if not dry_run:
+ shutil.copy(Path(__file__).parent / "default.spec", config_file)
+
+ # the config parser needs a reference to parse. So, in the case of --dry-run
+ # use the default.spec file.
+ if dry_run:
+ config_file = Path(__file__).parent / "default.spec"
+
+ return config_file
+
+
+def finalize(config: Config):
+ """
+ Copy the executable into the final location
+ For Android deployment, this is done through buildozer
+ """
+ generated_exec_path = config.generated_files_path / (config.source_file.stem + EXE_FORMAT)
+ if generated_exec_path.exists() and config.exe_dir:
+ if sys.platform == "darwin":
+ shutil.copytree(generated_exec_path, config.exe_dir / (config.title + EXE_FORMAT),
+ dirs_exist_ok=True)
+ else:
+ shutil.copy(generated_exec_path, config.exe_dir)
+ print("[DEPLOY] Executed file created in "
+ f"{str(config.exe_dir / (config.source_file.stem + EXE_FORMAT))}")
diff --git a/sources/pyside-tools/deploy_lib/nuitka_helper.py b/sources/pyside-tools/deploy_lib/nuitka_helper.py
new file mode 100644
index 000000000..d202db25e
--- /dev/null
+++ b/sources/pyside-tools/deploy_lib/nuitka_helper.py
@@ -0,0 +1,104 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+import logging
+import os
+import sys
+from pathlib import Path
+from typing import List
+
+from . import MAJOR_VERSION, run_command
+
+
+class Nuitka:
+ """
+ Wrapper class around the nuitka executable, enabling its usage through python code
+ """
+
+ def __init__(self, nuitka):
+ self.nuitka = nuitka
+ # plugins to ignore. The sensible plugins are include by default by Nuitka for PySide6
+ # application deployment
+ self.qt_plugins_to_ignore = ["imageformats", # being Nuitka `sensible`` plugins
+ "iconengines",
+ "mediaservice",
+ "printsupport",
+ "platforms",
+ "platformthemes",
+ "styles",
+ "wayland-shell-integration",
+ "wayland-decoration-client",
+ "wayland-graphics-integration-client",
+ "egldeviceintegrations",
+ "xcbglintegrations",
+ "tls", # end Nuitka `sensible` plugins
+ "generic" # plugins that error with Nuitka
+ ]
+
+ @staticmethod
+ def icon_option():
+ if sys.platform == "linux":
+ return "--linux-icon"
+ elif sys.platform == "win32":
+ return "--windows-icon-from-ico"
+ else:
+ return "--macos-app-icon"
+
+ def create_executable(self, source_file: Path, extra_args: str, qml_files: List[Path],
+ qt_plugins: List[str], excluded_qml_plugins: List[str], icon: str,
+ dry_run: bool, permissions: List[str]):
+ qt_plugins = [plugin for plugin in qt_plugins if plugin not in self.qt_plugins_to_ignore]
+ extra_args = extra_args.split()
+
+ if sys.platform == "darwin":
+ # create an app bundle
+ extra_args.extend(["--standalone", "--macos-create-app-bundle"])
+ permission_pattern = "--macos-app-protected-resource={permission}"
+ for permission in permissions:
+ extra_args.append(permission_pattern.format(permission=permission))
+ else:
+ extra_args.append("--onefile")
+
+ qml_args = []
+ if qml_files:
+ # This will generate options for each file using:
+ # --include-data-files=ABSOLUTE_PATH_TO_FILE=RELATIVE_PATH_TO ROOT
+ # for each file. This will preserve the directory structure of QML resources.
+ qml_args.extend(
+ [f"--include-data-files={qml_file.resolve()}="
+ f"./{qml_file.resolve().relative_to(source_file.parent)}"
+ for qml_file in qml_files]
+ )
+ # add qml plugin. The `qml`` plugin name is not present in the module json files shipped
+ # with Qt and hence not in `qt_plugins``. However, Nuitka uses the 'qml' plugin name to
+ # include the necessary qml plugins. There we have to add it explicitly for a qml
+ # application
+ qt_plugins.append("qml")
+
+ if excluded_qml_plugins:
+ prefix = "lib" if sys.platform != "win32" else ""
+ for plugin in excluded_qml_plugins:
+ dll_name = plugin.replace("Qt", f"Qt{MAJOR_VERSION}")
+ qml_args.append(f"--noinclude-dlls={prefix}{dll_name}*")
+
+ output_dir = source_file.parent / "deployment"
+ if not dry_run:
+ output_dir.mkdir(parents=True, exist_ok=True)
+ logging.info("[DEPLOY] Running Nuitka")
+ command = self.nuitka + [
+ os.fspath(source_file),
+ "--follow-imports",
+ "--enable-plugin=pyside6",
+ f"--output-dir={output_dir}",
+ ]
+
+ command.extend(extra_args + qml_args)
+ command.append(f"{self.__class__.icon_option()}={icon}")
+ if qt_plugins:
+ # sort qt_plugins so that the result is definitive when testing
+ qt_plugins.sort()
+ qt_plugins_str = ",".join(qt_plugins)
+ command.append(f"--include-qt-plugins={qt_plugins_str}")
+
+ command_str, _ = run_command(command=command, dry_run=dry_run)
+ return command_str
diff --git a/sources/pyside-tools/deploy_lib/pyside_icon.icns b/sources/pyside-tools/deploy_lib/pyside_icon.icns
new file mode 100644
index 000000000..a6eb02bb0
--- /dev/null
+++ b/sources/pyside-tools/deploy_lib/pyside_icon.icns
Binary files differ
diff --git a/sources/pyside-tools/deploy_lib/pyside_icon.ico b/sources/pyside-tools/deploy_lib/pyside_icon.ico
new file mode 100644
index 000000000..332a3a568
--- /dev/null
+++ b/sources/pyside-tools/deploy_lib/pyside_icon.ico
Binary files differ
diff --git a/sources/pyside-tools/deploy_lib/pyside_icon.jpg b/sources/pyside-tools/deploy_lib/pyside_icon.jpg
new file mode 100644
index 000000000..647c42c71
--- /dev/null
+++ b/sources/pyside-tools/deploy_lib/pyside_icon.jpg
Binary files differ
diff --git a/sources/pyside-tools/deploy_lib/python_helper.py b/sources/pyside-tools/deploy_lib/python_helper.py
new file mode 100644
index 000000000..7cbf323ed
--- /dev/null
+++ b/sources/pyside-tools/deploy_lib/python_helper.py
@@ -0,0 +1,122 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+import logging
+import os
+import sys
+
+from importlib import util
+from importlib.metadata import version
+from pathlib import Path
+
+from . import Config, run_command
+
+
+class PythonExecutable:
+ """
+ Wrapper class around Python executable
+ """
+
+ def __init__(self, python_path: Path = None, dry_run: bool = False, init: bool = False,
+ force: bool = False):
+
+ self.dry_run = dry_run
+ self.init = init
+ if not python_path:
+ response = "yes"
+ # checking if inside virtual environment
+ if not self.is_venv() and not force and not self.dry_run and not self.init:
+ response = input(("You are not using a virtual environment. pyside6-deploy needs "
+ "to install a few Python packages for deployment to work "
+ "seamlessly. \n Proceed? [Y/n]"))
+
+ if response.lower() in ["no", "n"]:
+ print("[DEPLOY] Exiting ...")
+ sys.exit(0)
+
+ self.exe = Path(sys.executable)
+ else:
+ self.exe = python_path
+
+ logging.info(f"[DEPLOY] Using Python at {str(self.exe)}")
+
+ @property
+ def exe(self):
+ return Path(self._exe)
+
+ @exe.setter
+ def exe(self, exe):
+ self._exe = exe
+
+ @staticmethod
+ def is_venv():
+ venv = os.environ.get("VIRTUAL_ENV")
+ return True if venv else False
+
+ def is_pyenv_python(self):
+ pyenv_root = os.environ.get("PYENV_ROOT")
+
+ if pyenv_root:
+ resolved_exe = self.exe.resolve()
+ if str(resolved_exe).startswith(pyenv_root):
+ return True
+
+ return False
+
+ def install(self, packages: list = None):
+ _, installed_packages = run_command(command=[str(self.exe), "-m", "pip", "freeze"],
+ dry_run=False, fetch_output=True)
+ installed_packages = [p.decode().split('==')[0] for p in installed_packages.split()]
+ for package in packages:
+ package_info = package.split('==')
+ package_components_len = len(package_info)
+ package_name, package_version = None, None
+ if package_components_len == 1:
+ package_name = package_info[0]
+ elif package_components_len == 2:
+ package_name = package_info[0]
+ package_version = package_info[1]
+ else:
+ raise ValueError(f"{package} should be of the format 'package_name'=='version'")
+ if (package_name not in installed_packages) and (not self.is_installed(package_name)):
+ logging.info(f"[DEPLOY] Installing package: {package}")
+ run_command(
+ command=[self.exe, "-m", "pip", "install", package],
+ dry_run=self.dry_run,
+ )
+ elif package_version:
+ installed_version = version(package_name)
+ if package_version != installed_version:
+ logging.info(f"[DEPLOY] Installing package: {package_name}"
+ f"version: {package_version}")
+ run_command(
+ command=[self.exe, "-m", "pip", "install", "--force", package],
+ dry_run=self.dry_run,
+ )
+ else:
+ logging.info(f"[DEPLOY] package: {package_name}=={package_version}"
+ " already installed")
+ else:
+ logging.info(f"[DEPLOY] package: {package_name} already installed")
+
+ def is_installed(self, package):
+ return bool(util.find_spec(package))
+
+ def install_dependencies(self, config: Config, packages: str, is_android: bool = False):
+ """
+ Installs the python package dependencies for the target deployment platform
+ """
+ packages = config.get_value("python", packages).split(",")
+ if not self.init:
+ # install packages needed for deployment
+ logging.info("[DEPLOY] Installing dependencies")
+ self.install(packages=packages)
+ # nuitka requires patchelf to make patchelf rpath changes for some Qt files
+ if sys.platform.startswith("linux") and not is_android:
+ self.install(packages=["patchelf"])
+ elif is_android:
+ # install only buildozer
+ logging.info("[DEPLOY] Installing buildozer")
+ buildozer_package_with_version = ([package for package in packages
+ if package.startswith("buildozer")])
+ self.install(packages=list(buildozer_package_with_version))
diff --git a/sources/pyside-tools/metaobjectdump.py b/sources/pyside-tools/metaobjectdump.py
new file mode 100644
index 000000000..0970f9974
--- /dev/null
+++ b/sources/pyside-tools/metaobjectdump.py
@@ -0,0 +1,452 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+import ast
+import json
+import os
+import sys
+import tokenize
+from argparse import ArgumentParser, RawTextHelpFormatter
+from pathlib import Path
+from typing import Dict, List, Optional, Set, Tuple, Union
+
+
+DESCRIPTION = """Parses Python source code to create QObject metatype
+information in JSON format for qmltyperegistrar."""
+
+
+REVISION = 68
+
+
+CPP_TYPE_MAPPING = {"str": "QString"}
+
+
+QML_IMPORT_NAME = "QML_IMPORT_NAME"
+QML_IMPORT_MAJOR_VERSION = "QML_IMPORT_MAJOR_VERSION"
+QML_IMPORT_MINOR_VERSION = "QML_IMPORT_MINOR_VERSION"
+QT_MODULES = "QT_MODULES"
+
+
+ITEM_MODELS = ["QAbstractListModel", "QAbstractProxyModel",
+ "QAbstractTableModel", "QConcatenateTablesProxyModel",
+ "QFileSystemModel", "QIdentityProxyModel", "QPdfBookmarkModel",
+ "QPdfSearchModel", "QSortFilterProxyModel", "QSqlQueryModel",
+ "QStandardItemModel", "QStringListModel", "QTransposeProxyModel",
+ "QWebEngineHistoryModel"]
+
+
+QOBJECT_DERIVED = ["QObject", "QQuickItem", "QQuickPaintedItem"] + ITEM_MODELS
+
+
+AstDecorator = Union[ast.Name, ast.Call]
+AstPySideTypeSpec = Union[ast.Name, ast.Constant]
+
+
+ClassList = List[dict]
+
+
+PropertyEntry = Dict[str, Union[str, int, bool]]
+
+Argument = Dict[str, str]
+Arguments = List[Argument]
+Signal = Dict[str, Union[str, Arguments]]
+Slot = Dict[str, Union[str, Arguments]]
+
+
+def _decorator(name: str, value: str) -> Dict[str, str]:
+ """Create a QML decorator JSON entry"""
+ return {"name": name, "value": value}
+
+
+def _attribute(node: ast.Attribute) -> Tuple[str, str]:
+ """Split an attribute."""
+ return node.value.id, node.attr
+
+
+def _name(node: Union[ast.Name, ast.Attribute]) -> str:
+ """Return the name of something that is either an attribute or a name,
+ such as base classes or call.func"""
+ if isinstance(node, ast.Attribute):
+ qualifier, name = _attribute(node)
+ return f"{qualifier}.{node.attr}"
+ return node.id
+
+
+def _func_name(node: ast.Call) -> str:
+ return _name(node.func)
+
+
+def _python_to_cpp_type(type: str) -> str:
+ """Python to C++ type"""
+ c = CPP_TYPE_MAPPING.get(type)
+ return c if c else type
+
+
+def _parse_property_kwargs(keywords: List[ast.keyword], prop: PropertyEntry):
+ """Parse keyword arguments of @Property"""
+ for k in keywords:
+ if k.arg == "notify":
+ prop["notify"] = _name(k.value)
+
+
+def _parse_assignment(node: ast.Assign) -> Tuple[Optional[str], Optional[ast.AST]]:
+ """Parse an assignment and return a tuple of name, value."""
+ if len(node.targets) == 1 and isinstance(node.targets[0], ast.Name):
+ var_name = node.targets[0].id
+ return (var_name, node.value)
+ return (None, None)
+
+
+def _parse_pyside_type(type_spec: AstPySideTypeSpec) -> str:
+ """Parse type specification of a Slot/Property decorator. Usually a type,
+ but can also be a string constant with a C++ type name."""
+ if isinstance(type_spec, ast.Constant):
+ return type_spec.value
+ return _python_to_cpp_type(_name(type_spec))
+
+
+def _parse_call_args(call: ast.Call):
+ """Parse arguments of a Signal call/Slot decorator (type list)."""
+ result: Arguments = []
+ for n, arg in enumerate(call.args):
+ par_name = f"a{n+1}"
+ par_type = _parse_pyside_type(arg)
+ result.append({"name": par_name, "type": par_type})
+ return result
+
+
+def _parse_slot(func_name: str, call: ast.Call) -> Slot:
+ """Parse a 'Slot' decorator."""
+ return_type = "void"
+ for kwarg in call.keywords:
+ if kwarg.arg == "result":
+ return_type = _python_to_cpp_type(_name(kwarg.value))
+ break
+ return {"access": "public", "name": func_name,
+ "arguments": _parse_call_args(call),
+ "returnType": return_type}
+
+
+class VisitorContext:
+ """Stores a list of QObject-derived classes encountered in order to find
+ out which classes inherit QObject."""
+
+ def __init__(self):
+ self.qobject_derived = QOBJECT_DERIVED
+
+
+class MetaObjectDumpVisitor(ast.NodeVisitor):
+ """AST visitor for parsing sources and creating the data structure for
+ JSON."""
+
+ def __init__(self, context: VisitorContext):
+ super().__init__()
+ self._context = context
+ self._json_class_list: ClassList = []
+ # Property by name, which will be turned into the JSON List later
+ self._properties: List[PropertyEntry] = []
+ self._signals: List[Signal] = []
+ self._within_class: bool = False
+ self._qt_modules: Set[str] = set()
+ self._qml_import_name = ""
+ self._qml_import_major_version = 0
+ self._qml_import_minor_version = 0
+
+ def json_class_list(self) -> ClassList:
+ return self._json_class_list
+
+ def qml_import_name(self) -> str:
+ return self._qml_import_name
+
+ def qml_import_version(self) -> Tuple[int, int]:
+ return (self._qml_import_major_version, self._qml_import_minor_version)
+
+ def qt_modules(self):
+ return sorted(self._qt_modules)
+
+ @staticmethod
+ def create_ast(filename: Path) -> ast.Module:
+ """Create an Abstract Syntax Tree on which a visitor can be run"""
+ node = None
+ with tokenize.open(filename) as file:
+ node = ast.parse(file.read(), mode="exec")
+ return node
+
+ def visit_Assign(self, node: ast.Assign):
+ """Parse the global constants for QML-relevant values"""
+ var_name, value_node = _parse_assignment(node)
+ if not var_name or not isinstance(value_node, ast.Constant):
+ return
+ value = value_node.value
+ if var_name == QML_IMPORT_NAME:
+ self._qml_import_name = value
+ elif var_name == QML_IMPORT_MAJOR_VERSION:
+ self._qml_import_major_version = value
+ elif var_name == QML_IMPORT_MINOR_VERSION:
+ self._qml_import_minor_version = value
+
+ def visit_ClassDef(self, node: ast.Module):
+ """Visit a class definition"""
+ self._properties = []
+ self._signals = []
+ self._slots = []
+ self._within_class = True
+ qualified_name = node.name
+ last_dot = qualified_name.rfind('.')
+ name = (qualified_name[last_dot + 1:] if last_dot != -1
+ else qualified_name)
+
+ data = {"className": name,
+ "qualifiedClassName": qualified_name}
+
+ q_object = False
+ bases = []
+ for b in node.bases:
+ # PYSIDE-2202: catch weird constructs like "class C(type(Base)):"
+ if isinstance(b, ast.Name):
+ base_name = _name(b)
+ if base_name in self._context.qobject_derived:
+ q_object = True
+ self._context.qobject_derived.append(name)
+ base_dict = {"access": "public", "name": base_name}
+ bases.append(base_dict)
+
+ data["object"] = q_object
+ if bases:
+ data["superClasses"] = bases
+
+ class_decorators: List[dict] = []
+ for d in node.decorator_list:
+ self._parse_class_decorator(d, class_decorators)
+
+ if class_decorators:
+ data["classInfos"] = class_decorators
+
+ for b in node.body:
+ if isinstance(b, ast.Assign):
+ self._parse_class_variable(b)
+ else:
+ self.visit(b)
+
+ if self._properties:
+ data["properties"] = self._properties
+
+ if self._signals:
+ data["signals"] = self._signals
+
+ if self._slots:
+ data["slots"] = self._slots
+
+ self._json_class_list.append(data)
+
+ self._within_class = False
+
+ def visit_FunctionDef(self, node):
+ if self._within_class:
+ for d in node.decorator_list:
+ self._parse_function_decorator(node.name, d)
+
+ def _parse_class_decorator(self, node: AstDecorator,
+ class_decorators: List[dict]):
+ """Parse ClassInfo decorators."""
+ if isinstance(node, ast.Call):
+ name = _func_name(node)
+ if name == "QmlUncreatable":
+ class_decorators.append(_decorator("QML.Creatable", "false"))
+ if node.args:
+ reason = node.args[0].value
+ if isinstance(reason, str):
+ d = _decorator("QML.UncreatableReason", reason)
+ class_decorators.append(d)
+ elif name == "QmlAttached" and len(node.args) == 1:
+ d = _decorator("QML.Attached", node.args[0].id)
+ class_decorators.append(d)
+ elif name == "QmlExtended" and len(node.args) == 1:
+ d = _decorator("QML.Extended", node.args[0].id)
+ class_decorators.append(d)
+ elif name == "ClassInfo" and node.keywords:
+ kw = node.keywords[0]
+ class_decorators.append(_decorator(kw.arg, kw.value.value))
+ elif name == "QmlForeign" and len(node.args) == 1:
+ d = _decorator("QML.Foreign", node.args[0].id)
+ class_decorators.append(d)
+ elif name == "QmlNamedElement" and node.args:
+ name = node.args[0].value
+ class_decorators.append(_decorator("QML.Element", name))
+ elif name.startswith('Q'):
+ print('Unknown decorator with parameters:', name,
+ file=sys.stderr)
+ return
+
+ if isinstance(node, ast.Name):
+ name = node.id
+ if name == "QmlElement":
+ class_decorators.append(_decorator("QML.Element", "auto"))
+ elif name == "QmlSingleton":
+ class_decorators.append(_decorator("QML.Singleton", "true"))
+ elif name == "QmlAnonymous":
+ class_decorators.append(_decorator("QML.Element", "anonymous"))
+ elif name.startswith('Q'):
+ print('Unknown decorator:', name, file=sys.stderr)
+ return
+
+ def _index_of_property(self, name: str) -> int:
+ """Search a property by name"""
+ for i in range(len(self._properties)):
+ if self._properties[i]["name"] == name:
+ return i
+ return -1
+
+ def _create_property_entry(self, name: str, type: str,
+ getter: Optional[str] = None) -> PropertyEntry:
+ """Create a property JSON entry."""
+ result: PropertyEntry = {"name": name, "type": type,
+ "index": len(self._properties)}
+ if getter:
+ result["read"] = getter
+ return result
+
+ def _parse_function_decorator(self, func_name: str, node: AstDecorator):
+ """Parse function decorators."""
+ if isinstance(node, ast.Attribute):
+ name = node.value.id
+ value = node.attr
+ if value == "setter": # Property setter
+ idx = self._index_of_property(name)
+ if idx != -1:
+ self._properties[idx]["write"] = func_name
+ return
+
+ if isinstance(node, ast.Call):
+ name = _name(node.func)
+ if name == "Property": # Property getter
+ if node.args: # 1st is type/type string
+ type = _parse_pyside_type(node.args[0])
+ prop = self._create_property_entry(func_name, type,
+ func_name)
+ _parse_property_kwargs(node.keywords, prop)
+ self._properties.append(prop)
+ elif name == "Slot":
+ self._slots.append(_parse_slot(func_name, node))
+ else:
+ print('Unknown decorator with parameters:', name,
+ file=sys.stderr)
+
+ def _parse_class_variable(self, node: ast.Assign):
+ """Parse a class variable assignment (Property, Signal, etc.)"""
+ (var_name, call) = _parse_assignment(node)
+ if not var_name or not isinstance(node.value, ast.Call):
+ return
+ func_name = _func_name(call)
+ if func_name == "Signal" or func_name == "QtCore.Signal":
+ signal: Signal = {"access": "public", "name": var_name,
+ "arguments": _parse_call_args(call),
+ "returnType": "void"}
+ self._signals.append(signal)
+ elif func_name == "Property" or func_name == "QtCore.Property":
+ type = _python_to_cpp_type(call.args[0].id)
+ prop = self._create_property_entry(var_name, type, call.args[1].id)
+ if len(call.args) > 2:
+ prop["write"] = call.args[2].id
+ _parse_property_kwargs(call.keywords, prop)
+ self._properties.append(prop)
+ elif func_name == "ListProperty" or func_name == "QtCore.ListProperty":
+ type = _python_to_cpp_type(call.args[0].id)
+ type = f"QQmlListProperty<{type}>"
+ prop = self._create_property_entry(var_name, type)
+ self._properties.append(prop)
+
+ def visit_Import(self, node):
+ for n in node.names: # "import PySide6.QtWidgets"
+ self._handle_import(n.name)
+
+ def visit_ImportFrom(self, node):
+ if "." in node.module: # "from PySide6.QtWidgets import QWidget"
+ self._handle_import(node.module)
+ elif node.module == "PySide6": # "from PySide6 import QtWidgets"
+ for n in node.names:
+ if n.name.startswith("Qt"):
+ self._qt_modules.add(n.name)
+
+ def _handle_import(self, mod: str):
+ if mod.startswith("PySide6."):
+ self._qt_modules.add(mod[8:])
+
+
+def create_arg_parser(desc: str) -> ArgumentParser:
+ parser = ArgumentParser(description=desc,
+ formatter_class=RawTextHelpFormatter)
+ parser.add_argument('--compact', '-c', action='store_true',
+ help='Use compact format')
+ parser.add_argument('--suppress-file', '-s', action='store_true',
+ help='Suppress inputFile entry (for testing)')
+ parser.add_argument('--quiet', '-q', action='store_true',
+ help='Suppress warnings')
+ parser.add_argument('files', type=str, nargs="+",
+ help='Python source file')
+ parser.add_argument('--out-file', '-o', type=str,
+ help='Write output to file rather than stdout')
+ return parser
+
+
+def parse_file(file: Path, context: VisitorContext,
+ suppress_file: bool = False) -> Optional[Dict]:
+ """Parse a file and return its json data"""
+ ast_tree = MetaObjectDumpVisitor.create_ast(file)
+ visitor = MetaObjectDumpVisitor(context)
+ visitor.visit(ast_tree)
+
+ class_list = visitor.json_class_list()
+ if not class_list:
+ return None
+ result = {"classes": class_list,
+ "outputRevision": REVISION}
+
+ # Non-standard QML-related values for pyside6-build usage
+ if visitor.qml_import_name():
+ result[QML_IMPORT_NAME] = visitor.qml_import_name()
+ qml_import_version = visitor.qml_import_version()
+ if qml_import_version[0]:
+ result[QML_IMPORT_MAJOR_VERSION] = qml_import_version[0]
+ result[QML_IMPORT_MINOR_VERSION] = qml_import_version[1]
+
+ qt_modules = visitor.qt_modules()
+ if qt_modules:
+ result[QT_MODULES] = qt_modules
+
+ if not suppress_file:
+ result["inputFile"] = os.fspath(file).replace("\\", "/")
+ return result
+
+
+if __name__ == '__main__':
+ arg_parser = create_arg_parser(DESCRIPTION)
+ args = arg_parser.parse_args()
+
+ context = VisitorContext()
+ json_list = []
+
+ for file_name in args.files:
+ file = Path(file_name).resolve()
+ if not file.is_file():
+ print(f'{file_name} does not exist or is not a file.',
+ file=sys.stderr)
+ sys.exit(-1)
+
+ try:
+ json_data = parse_file(file, context, args.suppress_file)
+ if json_data:
+ json_list.append(json_data)
+ elif not args.quiet:
+ print(f"No classes found in {file_name}", file=sys.stderr)
+ except (AttributeError, SyntaxError) as e:
+ reason = str(e)
+ print(f"Error parsing {file_name}: {reason}", file=sys.stderr)
+ raise
+
+ indent = None if args.compact else 4
+ if args.out_file:
+ with open(args.out_file, 'w') as f:
+ json.dump(json_list, f, indent=indent)
+ else:
+ json.dump(json_list, sys.stdout, indent=indent)
diff --git a/sources/pyside-tools/project.py b/sources/pyside-tools/project.py
new file mode 100644
index 000000000..3706a2985
--- /dev/null
+++ b/sources/pyside-tools/project.py
@@ -0,0 +1,300 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+
+"""
+Builds a '.pyproject' file
+
+Builds Qt Designer forms, resource files and QML type files
+
+Deploys the application by creating an executable for the corresponding platform
+
+For each entry in a '.pyproject' file:
+- <name>.pyproject: Recurse to handle subproject
+- <name>.qrc : Runs the resource compiler to create a file rc_<name>.py
+- <name>.ui : Runs the user interface compiler to create a file ui_<name>.py
+
+For a Python file declaring a QML module, a directory matching the URI is
+created and populated with .qmltypes and qmldir files for use by code analysis
+tools. Currently, only one QML module consisting of several classes can be
+handled per project file.
+"""
+import sys
+import os
+from typing import List, Tuple, Optional
+from pathlib import Path
+from argparse import ArgumentParser, RawTextHelpFormatter
+
+from project import (QmlProjectData, check_qml_decorators, is_python_file,
+ QMLDIR_FILE, MOD_CMD, METATYPES_JSON_SUFFIX,
+ SHADER_SUFFIXES, TRANSLATION_SUFFIX,
+ requires_rebuild, run_command, remove_path,
+ ProjectData, resolve_project_file, new_project,
+ ProjectType, ClOptions)
+
+MODE_HELP = """build Builds the project
+run Builds the project and runs the first file")
+clean Cleans the build artifacts")
+qmllint Runs the qmllint tool
+deploy Deploys the application
+lupdate Updates translation (.ts) files
+new-ui Creates a new QtWidgets project with a Qt Designer-based main window
+new-widget Creates a new QtWidgets project with a main window
+new-quick Creates a new QtQuick project
+"""
+
+UIC_CMD = "pyside6-uic"
+RCC_CMD = "pyside6-rcc"
+LRELEASE_CMD = "pyside6-lrelease"
+LUPDATE_CMD = "pyside6-lupdate"
+QMLTYPEREGISTRAR_CMD = "pyside6-qmltyperegistrar"
+QMLLINT_CMD = "pyside6-qmllint"
+QSB_CMD = "pyside6-qsb"
+DEPLOY_CMD = "pyside6-deploy"
+
+NEW_PROJECT_TYPES = {"new-quick": ProjectType.QUICK,
+ "new-ui": ProjectType.WIDGET_FORM,
+ "new-widget": ProjectType.WIDGET}
+
+
+def _sort_sources(files: List[Path]) -> List[Path]:
+ """Sort the sources for building, ensure .qrc is last since it might depend
+ on generated files."""
+
+ def key_func(p: Path):
+ return p.suffix if p.suffix != ".qrc" else ".zzzz"
+
+ return sorted(files, key=key_func)
+
+
+class Project:
+ """
+ Class to wrap the various operations on Project
+ """
+ def __init__(self, project_file: Path):
+ self.project = ProjectData(project_file=project_file)
+ self.cl_options = ClOptions()
+
+ # Files for QML modules using the QmlElement decorators
+ self._qml_module_sources: List[Path] = []
+ self._qml_module_dir: Optional[Path] = None
+ self._qml_dir_file: Optional[Path] = None
+ self._qml_project_data = QmlProjectData()
+ self._qml_module_check()
+
+ def _qml_module_check(self):
+ """Run a pre-check on Python source files and find the ones with QML
+ decorators (representing a QML module)."""
+ # Quick check for any QML files (to avoid running moc for no reason).
+ if not self.cl_options.qml_module and not self.project.qml_files:
+ return
+ for file in self.project.files:
+ if is_python_file(file):
+ has_class, data = check_qml_decorators(file)
+ if has_class:
+ self._qml_module_sources.append(file)
+ if data:
+ self._qml_project_data = data
+
+ if not self._qml_module_sources:
+ return
+ if not self._qml_project_data:
+ print("Detected QML-decorated files, " "but was unable to detect QML_IMPORT_NAME")
+ sys.exit(1)
+
+ self._qml_module_dir = self.project.project_file.parent
+ for uri_dir in self._qml_project_data.import_name.split("."):
+ self._qml_module_dir /= uri_dir
+ print(self._qml_module_dir)
+ self._qml_dir_file = self._qml_module_dir / QMLDIR_FILE
+
+ if not self.cl_options.quiet:
+ count = len(self._qml_module_sources)
+ print(f"{self.project.project_file.name}, {count} QML file(s),"
+ f" {self._qml_project_data}")
+
+ def _get_artifacts(self, file: Path) -> Tuple[List[Path], Optional[List[str]]]:
+ """Return path and command for a file's artifact"""
+ if file.suffix == ".ui": # Qt form files
+ py_file = f"{file.parent}/ui_{file.stem}.py"
+ return ([Path(py_file)], [UIC_CMD, os.fspath(file), "--rc-prefix", "-o", py_file])
+ if file.suffix == ".qrc": # Qt resources
+ py_file = f"{file.parent}/rc_{file.stem}.py"
+ return ([Path(py_file)], [RCC_CMD, os.fspath(file), "-o", py_file])
+ # generate .qmltypes from sources with Qml decorators
+ if file.suffix == ".py" and file in self._qml_module_sources:
+ assert self._qml_module_dir
+ qml_module_dir = os.fspath(self._qml_module_dir)
+ json_file = f"{qml_module_dir}/{file.stem}{METATYPES_JSON_SUFFIX}"
+ return ([Path(json_file)], [MOD_CMD, "-o", json_file, os.fspath(file)])
+ # Run qmltyperegistrar
+ if file.name.endswith(METATYPES_JSON_SUFFIX):
+ assert self._qml_module_dir
+ stem = file.name[: len(file.name) - len(METATYPES_JSON_SUFFIX)]
+ qmltypes_file = self._qml_module_dir / f"{stem}.qmltypes"
+ cpp_file = self._qml_module_dir / f"{stem}_qmltyperegistrations.cpp"
+ cmd = [QMLTYPEREGISTRAR_CMD, "--generate-qmltypes",
+ os.fspath(qmltypes_file), "-o", os.fspath(cpp_file),
+ os.fspath(file)]
+ cmd.extend(self._qml_project_data.registrar_options())
+ return ([qmltypes_file, cpp_file], cmd)
+
+ if file.name.endswith(TRANSLATION_SUFFIX):
+ qm_file = f"{file.parent}/{file.stem}.qm"
+ cmd = [LRELEASE_CMD, os.fspath(file), "-qm", qm_file]
+ return ([Path(qm_file)], cmd)
+
+ if file.suffix in SHADER_SUFFIXES:
+ qsb_file = f"{file.parent}/{file.stem}.qsb"
+ cmd = [QSB_CMD, "-o", qsb_file, os.fspath(file)]
+ return ([Path(qsb_file)], cmd)
+
+ return ([], None)
+
+ def _regenerate_qmldir(self):
+ """Regenerate the 'qmldir' file."""
+ if self.cl_options.dry_run or not self._qml_dir_file:
+ return
+ if self.cl_options.force or requires_rebuild(self._qml_module_sources, self._qml_dir_file):
+ with self._qml_dir_file.open("w") as qf:
+ qf.write(f"module {self._qml_project_data.import_name}\n")
+ for f in self._qml_module_dir.glob("*.qmltypes"):
+ qf.write(f"typeinfo {f.name}\n")
+
+ def _build_file(self, source: Path):
+ """Build an artifact."""
+ artifacts, command = self._get_artifacts(source)
+ for artifact in artifacts:
+ if self.cl_options.force or requires_rebuild([source], artifact):
+ run_command(command, cwd=self.project.project_file.parent)
+ self._build_file(artifact) # Recurse for QML (json->qmltypes)
+
+ def build(self):
+ """Build."""
+ for sub_project_file in self.project.sub_projects_files:
+ Project(project_file=sub_project_file).build()
+ if self._qml_module_dir:
+ self._qml_module_dir.mkdir(exist_ok=True, parents=True)
+ for file in _sort_sources(self.project.files):
+ self._build_file(file)
+ self._regenerate_qmldir()
+
+ def run(self):
+ """Runs the project"""
+ self.build()
+ cmd = [sys.executable, str(self.project.main_file)]
+ run_command(cmd, cwd=self.project.project_file.parent)
+
+ def _clean_file(self, source: Path):
+ """Clean an artifact."""
+ artifacts, command = self._get_artifacts(source)
+ for artifact in artifacts:
+ remove_path(artifact)
+ self._clean_file(artifact) # Recurse for QML (json->qmltypes)
+
+ def clean(self):
+ """Clean build artifacts."""
+ for sub_project_file in self.project.sub_projects_files:
+ Project(project_file=sub_project_file).clean()
+ for file in self.project.files:
+ self._clean_file(file)
+ if self._qml_module_dir and self._qml_module_dir.is_dir():
+ remove_path(self._qml_module_dir)
+ # In case of a dir hierarchy ("a.b" -> a/b), determine and delete
+ # the root directory
+ if self._qml_module_dir.parent != self.project.project_file.parent:
+ project_dir_parts = len(self.project.project_file.parent.parts)
+ first_module_dir = self._qml_module_dir.parts[project_dir_parts]
+ remove_path(self.project.project_file.parent / first_module_dir)
+
+ def _qmllint(self):
+ """Helper for running qmllint on .qml files (non-recursive)."""
+ if not self.project.qml_files:
+ print(f"{self.project.project_file.name}: No QML files found", file=sys.stderr)
+ return
+
+ cmd = [QMLLINT_CMD]
+ if self._qml_dir_file:
+ cmd.extend(["-i", os.fspath(self._qml_dir_file)])
+ for f in self.project.qml_files:
+ cmd.append(os.fspath(f))
+ run_command(cmd, cwd=self.project.project_file.parent, ignore_fail=True)
+
+ def qmllint(self):
+ """Run qmllint on .qml files."""
+ self.build()
+ for sub_project_file in self.project.sub_projects_files:
+ Project(project_file=sub_project_file)._qmllint()
+ self._qmllint()
+
+ def deploy(self):
+ """Deploys the application"""
+ cmd = [DEPLOY_CMD]
+ cmd.extend([str(self.project.main_file), "-f"])
+ run_command(cmd, cwd=self.project.project_file.parent)
+
+ def lupdate(self):
+ for sub_project_file in self.project.sub_projects_files:
+ Project(project_file=sub_project_file).lupdate()
+
+ if not self.project.ts_files:
+ print(f"{self.project.project_file.name}: No .ts file found.",
+ file=sys.stderr)
+ return
+
+ source_files = self.project.python_files + self.project.ui_files
+ cmd_prefix = [LUPDATE_CMD] + [p.name for p in source_files]
+ cmd_prefix.append("-ts")
+ for ts_file in self.project.ts_files:
+ if requires_rebuild(source_files, ts_file):
+ cmd = cmd_prefix
+ cmd.append(ts_file.name)
+ run_command(cmd, cwd=self.project.project_file.parent)
+
+
+if __name__ == "__main__":
+ parser = ArgumentParser(description=__doc__, formatter_class=RawTextHelpFormatter)
+ parser.add_argument("--quiet", "-q", action="store_true", help="Quiet")
+ parser.add_argument("--dry-run", "-n", action="store_true", help="Only print commands")
+ parser.add_argument("--force", "-f", action="store_true", help="Force rebuild")
+ parser.add_argument("--qml-module", "-Q", action="store_true",
+ help="Perform check for QML module")
+ mode_choices = ["build", "run", "clean", "qmllint", "deploy", "lupdate"]
+ mode_choices.extend(NEW_PROJECT_TYPES.keys())
+ parser.add_argument("mode", choices=mode_choices, default="build",
+ type=str, help=MODE_HELP)
+ parser.add_argument("file", help="Project file", nargs="?", type=str)
+
+ options = parser.parse_args()
+ cl_options = ClOptions(dry_run=options.dry_run, quiet=options.quiet, force=options.force,
+ qml_module=options.qml_module)
+
+ mode = options.mode
+
+ new_project_type = NEW_PROJECT_TYPES.get(mode)
+ if new_project_type:
+ if not options.file:
+ print(f"{mode} requires a directory name.", file=sys.stderr)
+ sys.exit(1)
+ sys.exit(new_project(options.file, new_project_type))
+
+ project_file = resolve_project_file(options.file)
+ if not project_file:
+ print(f"Cannot determine project_file {options.file}", file=sys.stderr)
+ sys.exit(1)
+ project = Project(project_file)
+ if mode == "build":
+ project.build()
+ elif mode == "run":
+ project.run()
+ elif mode == "clean":
+ project.clean()
+ elif mode == "qmllint":
+ project.qmllint()
+ elif mode == "deploy":
+ project.deploy()
+ elif mode == "lupdate":
+ project.lupdate()
+ else:
+ print(f"Invalid mode {mode}", file=sys.stderr)
+ sys.exit(1)
diff --git a/sources/pyside-tools/project.pyproject b/sources/pyside-tools/project.pyproject
new file mode 100644
index 000000000..346ef0465
--- /dev/null
+++ b/sources/pyside-tools/project.pyproject
@@ -0,0 +1,4 @@
+{
+ "files": ["project.py", "project/__init__.py", "project/newproject.py",
+ "project/project_data.py", "project/utils.py"]
+}
diff --git a/sources/pyside-tools/project/__init__.py b/sources/pyside-tools/project/__init__.py
new file mode 100644
index 000000000..e57a9ff88
--- /dev/null
+++ b/sources/pyside-tools/project/__init__.py
@@ -0,0 +1,46 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+from dataclasses import dataclass
+
+QTPATHS_CMD = "qtpaths6"
+MOD_CMD = "pyside6-metaobjectdump"
+
+PROJECT_FILE_SUFFIX = ".pyproject"
+QMLDIR_FILE = "qmldir"
+
+QML_IMPORT_NAME = "QML_IMPORT_NAME"
+QML_IMPORT_MAJOR_VERSION = "QML_IMPORT_MAJOR_VERSION"
+QML_IMPORT_MINOR_VERSION = "QML_IMPORT_MINOR_VERSION"
+QT_MODULES = "QT_MODULES"
+
+METATYPES_JSON_SUFFIX = "metatypes.json"
+TRANSLATION_SUFFIX = ".ts"
+SHADER_SUFFIXES = ".vert", ".frag"
+
+
+class Singleton(type):
+ _instances = {}
+
+ def __call__(cls, *args, **kwargs):
+ if cls not in cls._instances:
+ cls._instances[cls] = super().__call__(*args, **kwargs)
+ return cls._instances[cls]
+
+
+@dataclass(frozen=True)
+class ClOptions(metaclass=Singleton):
+ """
+ Dataclass to store the cl options that needs to be passed as arguments.
+ """
+ dry_run: bool
+ quiet: bool
+ force: bool
+ qml_module: bool
+
+
+from .utils import (run_command, requires_rebuild, remove_path, package_dir, qtpaths,
+ qt_metatype_json_dir, resolve_project_file)
+from .project_data import (is_python_file, ProjectData, QmlProjectData,
+ check_qml_decorators)
+from .newproject import new_project, ProjectType
diff --git a/sources/pyside-tools/project/newproject.py b/sources/pyside-tools/project/newproject.py
new file mode 100644
index 000000000..c363a9fc0
--- /dev/null
+++ b/sources/pyside-tools/project/newproject.py
@@ -0,0 +1,165 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+import json
+import os
+import sys
+from enum import Enum
+from pathlib import Path
+from typing import List, Tuple
+
+"""New project generation code."""
+
+
+Project = List[Tuple[str, str]] # tuple of (filename, contents).
+
+
+class ProjectType(Enum):
+ WIDGET_FORM = 1
+ WIDGET = 2
+ QUICK = 3
+
+
+_WIDGET_MAIN = """if __name__ == '__main__':
+ app = QApplication(sys.argv)
+ window = MainWindow()
+ window.show()
+ sys.exit(app.exec())
+"""
+
+
+_WIDGET_IMPORTS = """import sys
+from PySide6.QtWidgets import QApplication, QMainWindow
+"""
+
+
+_WIDGET_CLASS_DEFINITION = """class MainWindow(QMainWindow):
+ def __init__(self):
+ super().__init__()
+"""
+
+
+_WIDGET_SETUP_UI_CODE = """ self._ui = Ui_MainWindow()
+ self._ui.setupUi(self)
+"""
+
+
+_MAINWINDOW_FORM = """<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>MainWindow</class>
+ <widget class="QMainWindow" name="MainWindow">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>800</width>
+ <height>600</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>MainWindow</string>
+ </property>
+ <widget class="QWidget" name="centralwidget"/>
+ <widget class="QMenuBar" name="menubar">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>800</width>
+ <height>22</height>
+ </rect>
+ </property>
+ </widget>
+ <widget class="QStatusBar" name="statusbar"/>
+ </widget>
+</ui>
+"""
+
+
+_QUICK_FORM = """import QtQuick
+import QtQuick.Controls
+
+ApplicationWindow {
+ id: window
+ width: 1024
+ height: 600
+ visible: true
+}
+"""
+
+_QUICK_MAIN = """import sys
+from pathlib import Path
+
+from PySide6.QtGui import QGuiApplication
+from PySide6.QtCore import QUrl
+from PySide6.QtQml import QQmlApplicationEngine
+
+
+if __name__ == "__main__":
+ app = QGuiApplication()
+ engine = QQmlApplicationEngine()
+ qml_file = Path(__file__).parent / 'main.qml'
+ engine.load(QUrl.fromLocalFile(qml_file))
+ if not engine.rootObjects():
+ sys.exit(-1)
+ exit_code = app.exec()
+ del engine
+ sys.exit(exit_code)
+"""
+
+
+def _write_project(directory: Path, files: Project):
+ """Write out the project."""
+ file_list = []
+ for file, contents in files:
+ (directory / file).write_text(contents)
+ print(f"Wrote {directory.name}{os.sep}{file}.")
+ file_list.append(file)
+ pyproject = {"files": file_list}
+ pyproject_file = f"{directory}.pyproject"
+ (directory / pyproject_file).write_text(json.dumps(pyproject))
+ print(f"Wrote {directory.name}{os.sep}{pyproject_file}.")
+
+
+def _widget_project() -> Project:
+ """Create a (form-less) widgets project."""
+ main_py = (_WIDGET_IMPORTS + "\n\n" + _WIDGET_CLASS_DEFINITION + "\n\n"
+ + _WIDGET_MAIN)
+ return [("main.py", main_py)]
+
+
+def _ui_form_project() -> Project:
+ """Create a Qt Designer .ui form based widgets project."""
+ main_py = (_WIDGET_IMPORTS
+ + "\nfrom ui_mainwindow import Ui_MainWindow\n\n\n"
+ + _WIDGET_CLASS_DEFINITION + _WIDGET_SETUP_UI_CODE
+ + "\n\n" + _WIDGET_MAIN)
+ return [("main.py", main_py),
+ ("mainwindow.ui", _MAINWINDOW_FORM)]
+
+
+def _qml_project() -> Project:
+ """Create a QML project."""
+ return [("main.py", _QUICK_MAIN),
+ ("main.qml", _QUICK_FORM)]
+
+
+def new_project(directory_s: str,
+ project_type: ProjectType = ProjectType.WIDGET_FORM) -> int:
+ directory = Path(directory_s)
+ if directory.exists():
+ print(f"{directory_s} already exists.", file=sys.stderr)
+ return -1
+ directory.mkdir(parents=True)
+
+ if project_type == ProjectType.WIDGET_FORM:
+ project = _ui_form_project()
+ elif project_type == ProjectType.QUICK:
+ project = _qml_project()
+ else:
+ project = _widget_project()
+ _write_project(directory, project)
+ if project_type == ProjectType.WIDGET_FORM:
+ print(f'Run "pyside6-project build {directory_s}" to build the project')
+ print(f'Run "python {directory.name}{os.sep}main.py" to run the project')
+ return 0
diff --git a/sources/pyside-tools/project/project_data.py b/sources/pyside-tools/project/project_data.py
new file mode 100644
index 000000000..52e20be3f
--- /dev/null
+++ b/sources/pyside-tools/project/project_data.py
@@ -0,0 +1,244 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+import json
+import os
+import subprocess
+import sys
+from typing import List, Tuple
+from pathlib import Path
+from . import (METATYPES_JSON_SUFFIX, PROJECT_FILE_SUFFIX, TRANSLATION_SUFFIX,
+ qt_metatype_json_dir, MOD_CMD, QML_IMPORT_MAJOR_VERSION,
+ QML_IMPORT_MINOR_VERSION, QML_IMPORT_NAME, QT_MODULES)
+
+
+def is_python_file(file: Path) -> bool:
+ return (file.suffix == ".py"
+ or sys.platform == "win32" and file.suffix == ".pyw")
+
+
+class ProjectData:
+ def __init__(self, project_file: Path) -> None:
+ """Parse the project."""
+ self._project_file = project_file
+ self._sub_projects_files: List[Path] = []
+
+ # All sources except subprojects
+ self._files: List[Path] = []
+ # QML files
+ self._qml_files: List[Path] = []
+ # Python files
+ self.main_file: Path = None
+ self._python_files: List[Path] = []
+ # ui files
+ self._ui_files: List[Path] = []
+ # qrc files
+ self._qrc_files: List[Path] = []
+ # ts files
+ self._ts_files: List[Path] = []
+
+ with project_file.open("r") as pyf:
+ pyproject = json.load(pyf)
+ for f in pyproject["files"]:
+ file = Path(project_file.parent / f)
+ if file.suffix == PROJECT_FILE_SUFFIX:
+ self._sub_projects_files.append(file)
+ else:
+ self._files.append(file)
+ if file.suffix == ".qml":
+ self._qml_files.append(file)
+ elif is_python_file(file):
+ if file.stem == "main":
+ self.main_file = file
+ self._python_files.append(file)
+ elif file.suffix == ".ui":
+ self._ui_files.append(file)
+ elif file.suffix == ".qrc":
+ self._qrc_files.append(file)
+ elif file.suffix == TRANSLATION_SUFFIX:
+ self._ts_files.append(file)
+
+ if not self.main_file:
+ self._find_main_file()
+
+ @property
+ def project_file(self):
+ return self._project_file
+
+ @property
+ def files(self):
+ return self._files
+
+ @property
+ def main_file(self):
+ return self._main_file
+
+ @main_file.setter
+ def main_file(self, main_file):
+ self._main_file = main_file
+
+ @property
+ def python_files(self):
+ return self._python_files
+
+ @property
+ def ui_files(self):
+ return self._ui_files
+
+ @property
+ def qrc_files(self):
+ return self._qrc_files
+
+ @property
+ def qml_files(self):
+ return self._qml_files
+
+ @property
+ def ts_files(self):
+ return self._ts_files
+
+ @property
+ def sub_projects_files(self):
+ return self._sub_projects_files
+
+ def _find_main_file(self) -> str:
+ """Find the entry point file containing the main function"""
+
+ def is_main(file):
+ return "__main__" in file.read_text(encoding="utf-8")
+
+ if not self.main_file:
+ for python_file in self.python_files:
+ if is_main(python_file):
+ self.main_file = python_file
+ return str(python_file)
+
+ # __main__ not found
+ print(
+ "Python file with main function not found. Add the file to" f" {self.project_file}",
+ file=sys.stderr,
+ )
+ sys.exit(1)
+
+
+class QmlProjectData:
+ """QML relevant project data."""
+
+ def __init__(self):
+ self._import_name: str = ""
+ self._import_major_version: int = 0
+ self._import_minor_version: int = 0
+ self._qt_modules: List[str] = []
+
+ def registrar_options(self):
+ result = [
+ "--import-name",
+ self._import_name,
+ "--major-version",
+ str(self._import_major_version),
+ "--minor-version",
+ str(self._import_minor_version),
+ ]
+ if self._qt_modules:
+ # Add Qt modules as foreign types
+ foreign_files: List[str] = []
+ meta_dir = qt_metatype_json_dir()
+ for mod in self._qt_modules:
+ mod_id = mod[2:].lower()
+ pattern = f"qt6{mod_id}_*"
+ if sys.platform != "win32":
+ pattern += "_" # qt6core_debug_metatypes.json (Linux)
+ pattern += METATYPES_JSON_SUFFIX
+ for f in meta_dir.glob(pattern):
+ foreign_files.append(os.fspath(f))
+ break
+ if foreign_files:
+ foreign_files_str = ",".join(foreign_files)
+ result.append(f"--foreign-types={foreign_files_str}")
+ return result
+
+ @property
+ def import_name(self):
+ return self._import_name
+
+ @import_name.setter
+ def import_name(self, n):
+ self._import_name = n
+
+ @property
+ def import_major_version(self):
+ return self._import_major_version
+
+ @import_major_version.setter
+ def import_major_version(self, v):
+ self._import_major_version = v
+
+ @property
+ def import_minor_version(self):
+ return self._import_minor_version
+
+ @import_minor_version.setter
+ def import_minor_version(self, v):
+ self._import_minor_version = v
+
+ @property
+ def qt_modules(self):
+ return self._qt_modules
+
+ @qt_modules.setter
+ def qt_modules(self, v):
+ self._qt_modules = v
+
+ def __str__(self) -> str:
+ vmaj = self._import_major_version
+ vmin = self._import_minor_version
+ return f'"{self._import_name}" v{vmaj}.{vmin}'
+
+ def __bool__(self) -> bool:
+ return len(self._import_name) > 0 and self._import_major_version > 0
+
+
+def _has_qml_decorated_class(class_list: List) -> bool:
+ """Check for QML-decorated classes in the moc json output."""
+ for d in class_list:
+ class_infos = d.get("classInfos")
+ if class_infos:
+ for e in class_infos:
+ if "QML" in e["name"]:
+ return True
+ return False
+
+
+def check_qml_decorators(py_file: Path) -> Tuple[bool, QmlProjectData]:
+ """Check if a Python file has QML-decorated classes by running a moc check
+ and return whether a class was found and the QML data."""
+ data = None
+ try:
+ cmd = [MOD_CMD, "--quiet", os.fspath(py_file)]
+ with subprocess.Popen(cmd, stdout=subprocess.PIPE) as proc:
+ data = json.load(proc.stdout)
+ proc.wait()
+ except Exception as e:
+ t = type(e).__name__
+ print(f"{t}: running {MOD_CMD} on {py_file}: {e}", file=sys.stderr)
+ sys.exit(1)
+
+ qml_project_data = QmlProjectData()
+ if not data:
+ return (False, qml_project_data) # No classes in file
+
+ first = data[0]
+ class_list = first["classes"]
+ has_class = _has_qml_decorated_class(class_list)
+ if has_class:
+ v = first.get(QML_IMPORT_NAME)
+ if v:
+ qml_project_data.import_name = v
+ v = first.get(QML_IMPORT_MAJOR_VERSION)
+ if v:
+ qml_project_data.import_major_version = v
+ qml_project_data.import_minor_version = first.get(QML_IMPORT_MINOR_VERSION)
+ v = first.get(QT_MODULES)
+ if v:
+ qml_project_data.qt_modules = v
+ return (has_class, qml_project_data)
diff --git a/sources/pyside-tools/project/utils.py b/sources/pyside-tools/project/utils.py
new file mode 100644
index 000000000..d2bff65af
--- /dev/null
+++ b/sources/pyside-tools/project/utils.py
@@ -0,0 +1,107 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+import sys
+import subprocess
+from pathlib import Path
+from typing import List, Dict, Optional
+
+from . import QTPATHS_CMD, PROJECT_FILE_SUFFIX, ClOptions
+
+
+def run_command(command: List[str], cwd: str = None, ignore_fail: bool = False):
+ """Run a command observing quiet/dry run"""
+ cloptions = ClOptions()
+ if not cloptions.quiet or cloptions.dry_run:
+ print(" ".join(command))
+ if not cloptions.dry_run:
+ ex = subprocess.call(command, cwd=cwd)
+ if ex != 0 and not ignore_fail:
+ sys.exit(ex)
+
+
+def requires_rebuild(sources: List[Path], artifact: Path) -> bool:
+ """Returns whether artifact needs to be rebuilt depending on sources"""
+ if not artifact.is_file():
+ return True
+ artifact_mod_time = artifact.stat().st_mtime
+ for source in sources:
+ if source.stat().st_mtime > artifact_mod_time:
+ return True
+ return False
+
+
+def _remove_path_recursion(path: Path):
+ """Recursion to remove a file or directory."""
+ if path.is_file():
+ path.unlink()
+ elif path.is_dir():
+ for item in path.iterdir():
+ _remove_path_recursion(item)
+ path.rmdir()
+
+
+def remove_path(path: Path):
+ """Remove path (file or directory) observing opt_dry_run."""
+ cloptions = ClOptions()
+ if not path.exists():
+ return
+ if not cloptions.quiet:
+ print(f"Removing {path.name}...")
+ if cloptions.dry_run:
+ return
+ _remove_path_recursion(path)
+
+
+def package_dir() -> Path:
+ """Return the PySide6 root."""
+ return Path(__file__).resolve().parents[2]
+
+
+_qtpaths_info: Dict[str, str] = {}
+
+
+def qtpaths() -> Dict[str, str]:
+ """Run qtpaths and return a dict of values."""
+ global _qtpaths_info
+ if not _qtpaths_info:
+ output = subprocess.check_output([QTPATHS_CMD, "--query"])
+ for line in output.decode("utf-8").split("\n"):
+ tokens = line.strip().split(":", maxsplit=1) # "Path=C:\..."
+ if len(tokens) == 2:
+ _qtpaths_info[tokens[0]] = tokens[1]
+ return _qtpaths_info
+
+
+_qt_metatype_json_dir: Optional[Path] = None
+
+
+def qt_metatype_json_dir() -> Path:
+ """Return the location of the Qt QML metatype files."""
+ global _qt_metatype_json_dir
+ if not _qt_metatype_json_dir:
+ qt_dir = package_dir()
+ if sys.platform != "win32":
+ qt_dir /= "Qt"
+ metatypes_dir = qt_dir / "metatypes"
+ if metatypes_dir.is_dir(): # Fully installed case
+ _qt_metatype_json_dir = metatypes_dir
+ else:
+ # Fallback for distro builds/development.
+ print(
+ f"Falling back to {QTPATHS_CMD} to determine metatypes directory.", file=sys.stderr
+ )
+ _qt_metatype_json_dir = Path(qtpaths()["QT_INSTALL_ARCHDATA"]) / "metatypes"
+ return _qt_metatype_json_dir
+
+
+def resolve_project_file(cmdline: str) -> Optional[Path]:
+ """Return the project file from the command line value, either
+ from the file argument or directory"""
+ project_file = Path(cmdline).resolve() if cmdline else Path.cwd()
+ if project_file.is_file():
+ return project_file
+ if project_file.is_dir():
+ for m in project_file.glob(f"*{PROJECT_FILE_SUFFIX}"):
+ return m
+ return None
diff --git a/sources/pyside-tools/pyside_tool.py b/sources/pyside-tools/pyside_tool.py
index 5045c40c7..b369be8a2 100644
--- a/sources/pyside-tools/pyside_tool.py
+++ b/sources/pyside-tools/pyside_tool.py
@@ -1,52 +1,41 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-import sys
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+import importlib
import os
-from pathlib import Path
import subprocess
+import sys
import sysconfig
+from pathlib import Path
-from subprocess import Popen, PIPE
import PySide6 as ref_mod
+VIRTUAL_ENV = "VIRTUAL_ENV"
+
+
+def is_pyenv_python():
+ pyenv_root = os.environ.get("PYENV_ROOT")
+
+ if pyenv_root:
+ resolved_exe = Path(sys.executable).resolve()
+ if str(resolved_exe).startswith(pyenv_root):
+ return True
+
+ return False
+
+
+def is_virtual_env():
+ return sys.prefix != sys.base_prefix
+
+
+def init_virtual_env():
+ """PYSIDE-2251: Enable running from a non-activated virtual environment
+ as is the case for Visual Studio Code by setting the VIRTUAL_ENV
+ variable which is used by the Qt Designer plugin."""
+ if is_virtual_env() and not os.environ.get(VIRTUAL_ENV):
+ os.environ[VIRTUAL_ENV] = sys.prefix
+
def main():
# This will take care of "pyside6-lupdate" listed as an entrypoint
@@ -65,14 +54,28 @@ def qt_tool_wrapper(qt_tool, args, libexec=False):
exe = pyside_dir / 'Qt' / 'libexec' / qt_tool
else:
exe = pyside_dir / qt_tool
+
cmd = [os.fspath(exe)] + args
- proc = Popen(cmd, stderr=PIPE)
- out, err = proc.communicate()
- if err:
- msg = err.decode("utf-8")
+ returncode = subprocess.call(cmd)
+ if returncode != 0:
command = ' '.join(cmd)
- print(f"Error: {msg}\nwhile executing '{command}'")
- sys.exit(proc.returncode)
+ print(f"'{command}' returned {returncode}", file=sys.stderr)
+ sys.exit(returncode)
+
+
+def pyside_script_wrapper(script_name):
+ """Launch a script shipped with PySide."""
+ script = Path(__file__).resolve().parent / script_name
+ command = [sys.executable, os.fspath(script)] + sys.argv[1:]
+ sys.exit(subprocess.call(command))
+
+
+def ui_tool_binary(binary):
+ """Return the binary of a UI tool (App bundle on macOS)."""
+ if sys.platform != "darwin":
+ return binary
+ name = binary[0:1].upper() + binary[1:]
+ return f"{name}.app/Contents/MacOS/{name}"
def lrelease():
@@ -88,26 +91,54 @@ def uic():
def rcc():
- qt_tool_wrapper("rcc", ['-g', 'python'] + sys.argv[1:], True)
+ args = []
+ user_args = sys.argv[1:]
+ if "--binary" not in user_args:
+ args.extend(['-g', 'python'])
+ args.extend(user_args)
+ qt_tool_wrapper("rcc", args, True)
+
+
+def qmltyperegistrar():
+ qt_tool_wrapper("qmltyperegistrar", sys.argv[1:], True)
+
+
+def qmlimportscanner():
+ qt_tool_wrapper("qmlimportscanner", sys.argv[1:], True)
+
+
+def qmlcachegen():
+ qt_tool_wrapper("qmlcachegen", sys.argv[1:], True)
+
+
+def qmllint():
+ qt_tool_wrapper("qmllint", sys.argv[1:])
+
+
+def qmlformat():
+ qt_tool_wrapper("qmlformat", sys.argv[1:])
+
+
+def qmlls():
+ qt_tool_wrapper("qmlls", sys.argv[1:])
def assistant():
- qt_tool_wrapper("assistant", sys.argv[1:])
+ qt_tool_wrapper(ui_tool_binary("assistant"), sys.argv[1:])
-def _append_to_path_var(var, value):
+def _extend_path_var(var, value, prepend=False):
env_value = os.environ.get(var)
if env_value:
- env_value = f'{env_value}{os.pathsep}{value}'
+ env_value = (f'{value}{os.pathsep}{env_value}'
+ if prepend else f'{env_value}{os.pathsep}{value}')
else:
env_value = value
os.environ[var] = env_value
def designer():
- # Add the examples to PYSIDE_DESIGNER_PLUGINS, as determined by starting from
- # PySide6/scripts.
- pyside_dir = Path(__file__).resolve().parents[1]
+ init_virtual_env()
# https://www.python.org/dev/peps/pep-0384/#linkage :
# "On Unix systems, the ABI is typically provided by the python executable
@@ -124,26 +155,34 @@ def designer():
# Determine library name (examples/utils/pyside_config.py)
version = f'{major_version}.{minor_version}'
library_name = f'libpython{version}{sys.abiflags}.so'
+ if is_pyenv_python():
+ library_name = str(Path(sysconfig.get_config_var('LIBDIR')) / library_name)
os.environ['LD_PRELOAD'] = library_name
elif sys.platform == 'darwin':
library_name = sysconfig.get_config_var("LDLIBRARY")
framework_prefix = sysconfig.get_config_var("PYTHONFRAMEWORKPREFIX")
- lib_path = os.fspath(Path(framework_prefix) / library_name)
+ lib_path = None
+ if framework_prefix:
+ lib_path = os.fspath(Path(framework_prefix) / library_name)
+ elif is_pyenv_python():
+ lib_path = str(Path(sysconfig.get_config_var('LIBDIR')) / library_name)
+ else:
+ # ideally this should never be reached because the system Python and Python installed
+ # from python.org are all framework builds
+ print("Unable to find Python library directory. Use a framework build of Python.",
+ file=sys.stderr)
+ sys.exit(0)
os.environ['DYLD_INSERT_LIBRARIES'] = lib_path
- # Add the Wiggly Widget example
- wiggly_dir = os.fspath(pyside_dir / 'examples' / 'widgetbinding')
- _append_to_path_var('PYSIDE_DESIGNER_PLUGINS', wiggly_dir)
- taskmenu_dir = os.fspath(pyside_dir / 'examples' / 'designer' / 'taskmenuextension')
- _append_to_path_var('PYSIDE_DESIGNER_PLUGINS', taskmenu_dir)
-
- if sys.platform == "darwin":
- qt_tool_wrapper("Designer.app/Contents/MacOS/Designer", sys.argv[1:])
- else:
- qt_tool_wrapper("designer", sys.argv[1:])
+ elif sys.platform == 'win32':
+ # Find Python DLLs from the base installation
+ if is_virtual_env():
+ _extend_path_var("PATH", os.fspath(Path(sys._base_executable).parent), True)
+
+ qt_tool_wrapper(ui_tool_binary("designer"), sys.argv[1:])
def linguist():
- qt_tool_wrapper("linguist", sys.argv[1:])
+ qt_tool_wrapper(ui_tool_binary("linguist"), sys.argv[1:])
def genpyi():
@@ -154,5 +193,51 @@ def genpyi():
sys.exit(subprocess.call(command))
+def metaobjectdump():
+ pyside_script_wrapper("metaobjectdump.py")
+
+
+def project():
+ pyside_script_wrapper("project.py")
+
+
+def qml():
+ pyside_script_wrapper("qml.py")
+
+
+def qtpy2cpp():
+ pyside_script_wrapper("qtpy2cpp.py")
+
+
+def deploy():
+ pyside_script_wrapper("deploy.py")
+
+
+def android_deploy():
+ if not sys.platform == "linux":
+ print("pyside6-android-deploy only works from a Linux host")
+ else:
+ android_requirements_file = Path(__file__).parent / "requirements-android.txt"
+ with open(android_requirements_file, 'r', encoding='UTF-8') as file:
+ while line := file.readline():
+ dependent_package = line.rstrip()
+ if not bool(importlib.util.find_spec(dependent_package)):
+ command = [sys.executable, "-m", "pip", "install", dependent_package]
+ subprocess.run(command)
+ pyside_script_wrapper("android_deploy.py")
+
+
+def qsb():
+ qt_tool_wrapper("qsb", sys.argv[1:])
+
+
+def balsam():
+ qt_tool_wrapper("balsam", sys.argv[1:])
+
+
+def balsamui():
+ qt_tool_wrapper("balsamui", sys.argv[1:])
+
+
if __name__ == "__main__":
main()
diff --git a/sources/pyside-tools/qml.py b/sources/pyside-tools/qml.py
new file mode 100644
index 000000000..5d029f93d
--- /dev/null
+++ b/sources/pyside-tools/qml.py
@@ -0,0 +1,246 @@
+# Copyright (C) 2018 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+"""pyside6-qml tool implementation. This tool mimics the capabilities of qml runtime utility
+for python and enables quick protyping with python modules"""
+
+import argparse
+import importlib.util
+import logging
+import sys
+import os
+from pathlib import Path
+from pprint import pprint
+from typing import List, Set
+
+from PySide6.QtCore import QCoreApplication, Qt, QLibraryInfo, QUrl, SignalInstance
+from PySide6.QtGui import QGuiApplication, QSurfaceFormat
+from PySide6.QtQml import QQmlApplicationEngine, QQmlComponent
+from PySide6.QtQuick import QQuickView, QQuickItem
+from PySide6.QtWidgets import QApplication
+
+
+def import_qml_modules(qml_parent_path: Path, module_paths: List[Path] = []):
+ '''
+ Import all the python modules in the qml_parent_path. This way all the classes
+ containing the @QmlElement/@QmlNamedElement are also imported
+
+ Parameters:
+ qml_parent_path (Path): Parent directory of the qml file
+ module_paths (int): user give import paths obtained through cli
+ '''
+
+ search_dir_paths = []
+ search_file_paths = []
+
+ if not module_paths:
+ search_dir_paths.append(qml_parent_path)
+ else:
+ for module_path in module_paths:
+ if module_path.is_dir():
+ search_dir_paths.append(module_path)
+ elif module_path.exists() and module_path.suffix == ".py":
+ search_file_paths.append(module_path)
+
+ def import_module(import_module_paths: Set[Path]):
+ """Import the modules in 'import_module_paths'"""
+ for module_path in import_module_paths:
+ module_name = module_path.name[:-3]
+ _spec = importlib.util.spec_from_file_location(f"{module_name}", module_path)
+ _module = importlib.util.module_from_spec(_spec)
+ _spec.loader.exec_module(module=_module)
+
+ modules_to_import = set()
+ for search_path in search_dir_paths:
+ possible_modules = list(search_path.glob("**/*.py"))
+ for possible_module in possible_modules:
+ if possible_module.is_file() and possible_module.name != "__init__.py":
+ module_parent = str(possible_module.parent)
+ if module_parent not in sys.path:
+ sys.path.append(module_parent)
+ modules_to_import.add(possible_module)
+
+ for search_path in search_file_paths:
+ sys.path.append(str(search_path.parent))
+ modules_to_import.add(search_path)
+
+ import_module(import_module_paths=modules_to_import)
+
+
+def print_configurations():
+ return "Built-in configurations \n\t default \n\t resizeToItem"
+
+
+if __name__ == "__main__":
+ parser = argparse.ArgumentParser(
+ description="This tools mimics the capabilities of qml runtime utility by directly"
+ " invoking QQmlEngine/QQuickView. It enables quick prototyping with qml files.",
+ formatter_class=argparse.RawTextHelpFormatter
+ )
+ parser.add_argument(
+ "file",
+ type=lambda p: Path(p).absolute(),
+ help="Path to qml file to display",
+ )
+ parser.add_argument(
+ "--module-paths", "-I",
+ type=lambda p: Path(p).absolute(),
+ nargs="+",
+ help="Specify space separated folder/file paths where the Qml classes are defined. By"
+ " default,the parent directory of the qml_path is searched recursively for all .py"
+ " files and they are imported. Otherwise only the paths give in module paths are"
+ " searched",
+ )
+ parser.add_argument(
+ "--list-conf",
+ action="version",
+ help="List the built-in configurations.",
+ version=print_configurations()
+ )
+ parser.add_argument(
+ "--apptype", "-a",
+ choices=["core", "gui", "widget"],
+ default="gui",
+ help="Select which application class to use. Default is gui",
+ )
+ parser.add_argument(
+ "--config", "-c",
+ choices=["default", "resizeToItem"],
+ default="default",
+ help="Select the built-in configurations.",
+ )
+ parser.add_argument(
+ "--rhi", "-r",
+ choices=["vulkan", "metal", "d3dll", "gl"],
+ help="Set the backend for the Qt graphics abstraction (RHI).",
+ )
+ parser.add_argument(
+ "--core-profile",
+ action="store_true",
+ help="Force use of OpenGL Core Profile.",
+ )
+ parser.add_argument(
+ '-v', '--verbose',
+ help="Print information about what qml is doing, like specific file URLs being loaded.",
+ action="store_const", dest="loglevel", const=logging.INFO,
+ )
+
+ gl_group = parser.add_mutually_exclusive_group(required=False)
+ gl_group.add_argument(
+ "--gles",
+ action="store_true",
+ help="Force use of GLES (AA_UseOpenGLES)",
+ )
+ gl_group.add_argument(
+ "--desktop",
+ action="store_true",
+ help="Force use of desktop OpenGL (AA_UseDesktopOpenGL)",
+ )
+ gl_group.add_argument(
+ "--software",
+ action="store_true",
+ help="Force use of software rendering(AA_UseSoftwareOpenGL)",
+ )
+ gl_group.add_argument(
+ "--disable-context-sharing",
+ action="store_true",
+ help=" Disable the use of a shared GL context for QtQuick Windows",
+ )
+
+ args = parser.parse_args()
+ apptype = args.apptype
+
+ qquick_present = False
+
+ with open(args.file) as myfile:
+ if 'import QtQuick' in myfile.read():
+ qquick_present = True
+
+ # no import QtQuick => QQCoreApplication
+ if not qquick_present:
+ apptype = "core"
+
+ import_qml_modules(args.file.parent, args.module_paths)
+
+ logging.basicConfig(level=args.loglevel)
+ logging.info(f"qml: {QLibraryInfo.build()}")
+ logging.info(f"qml: Using built-in configuration: {args.config}")
+
+ if args.rhi:
+ os.environ['QSG_RHI_BACKEND'] = args.rhi
+
+ logging.info(f"qml: loading {args.file}")
+ qml_file = QUrl.fromLocalFile(str(args.file))
+
+ if apptype == "gui":
+ if args.gles:
+ logging.info("qml: Using attribute AA_UseOpenGLES")
+ QCoreApplication.setAttribute(Qt.AA_UseOpenGLES)
+ elif args.desktop:
+ logging.info("qml: Using attribute AA_UseDesktopOpenGL")
+ QCoreApplication.setAttribute(Qt.AA_UseDesktopOpenGL)
+ elif args.software:
+ logging.info("qml: Using attribute AA_UseSoftwareOpenGL")
+ QCoreApplication.setAttribute(Qt.AA_UseSoftwareOpenGL)
+
+ # context-sharing is enabled by default
+ if not args.disable_context_sharing:
+ logging.info("qml: Using attribute AA_ShareOpenGLContexts")
+ QCoreApplication.setAttribute(Qt.AA_ShareOpenGLContexts)
+
+ if apptype == "core":
+ logging.info("qml: Core application")
+ app = QCoreApplication(sys.argv)
+ elif apptype == "widgets":
+ logging.info("qml: Widget application")
+ app = QApplication(sys.argv)
+ else:
+ logging.info("qml: Gui application")
+ app = QGuiApplication(sys.argv)
+
+ engine = QQmlApplicationEngine()
+
+ # set OpenGLContextProfile
+ if apptype == "gui" and args.core_profile:
+ logging.info("qml: Set profile for QSurfaceFormat as CoreProfile")
+ surfaceFormat = QSurfaceFormat()
+ surfaceFormat.setStencilBufferSize(8)
+ surfaceFormat.setDepthBufferSize(24)
+ surfaceFormat.setVersion(4, 1)
+ surfaceFormat.setProfile(QSurfaceFormat.CoreProfile)
+ QSurfaceFormat.setDefaultFormat(surfaceFormat)
+
+ # in the case of QCoreApplication we print the attributes of the object created via
+ # QQmlComponent and exit
+ if apptype == "core":
+ component = QQmlComponent(engine, qml_file)
+ obj = component.create()
+ filtered_attributes = {k: v for k, v in vars(obj).items() if type(v) is not SignalInstance}
+ logging.info("qml: component object attributes are")
+ pprint(filtered_attributes)
+ del engine
+ sys.exit(0)
+
+ engine.load(qml_file)
+ rootObjects = engine.rootObjects()
+ if not rootObjects:
+ sys.exit(-1)
+
+ qquick_view = False
+ if isinstance(rootObjects[0], QQuickItem) and qquick_present:
+ logging.info("qml: loading with QQuickView")
+ viewer = QQuickView()
+ viewer.setSource(qml_file)
+ if args.config != "resizeToItem":
+ viewer.setResizeMode(QQuickView.SizeRootObjectToView)
+ else:
+ viewer.setResizeMode(QQuickView.SizeViewToRootObject)
+ viewer.show()
+ qquick_view = True
+
+ if not qquick_view:
+ logging.info("qml: loading with QQmlApplicationEngine")
+ if args.config == "resizeToItem":
+ logging.info("qml: Not a QQuickview item. resizeToItem is done by default")
+
+ sys.exit(app.exec())
diff --git a/sources/pyside-tools/qtpy2cpp.py b/sources/pyside-tools/qtpy2cpp.py
new file mode 100644
index 000000000..857b12b67
--- /dev/null
+++ b/sources/pyside-tools/qtpy2cpp.py
@@ -0,0 +1,62 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+import logging
+import os
+import sys
+from argparse import ArgumentParser, RawTextHelpFormatter
+from pathlib import Path
+
+from qtpy2cpp_lib.visitor import ConvertVisitor
+
+DESCRIPTION = "Tool to convert Python to C++"
+
+
+def create_arg_parser(desc):
+ parser = ArgumentParser(description=desc,
+ formatter_class=RawTextHelpFormatter)
+ parser.add_argument("--debug", "-d", action="store_true",
+ help="Debug")
+ parser.add_argument("--stdout", "-s", action="store_true",
+ help="Write to stdout")
+ parser.add_argument("--force", "-f", action="store_true",
+ help="Force overwrite of existing files")
+ parser.add_argument("files", type=str, nargs="+", help="Python source file(s)")
+ return parser
+
+
+if __name__ == "__main__":
+ logging.basicConfig(level=logging.INFO)
+ logger = logging.getLogger(__name__)
+ arg_parser = create_arg_parser(DESCRIPTION)
+ args = arg_parser.parse_args()
+ ConvertVisitor.debug = args.debug
+
+ for input_file_str in args.files:
+ input_file = Path(input_file_str)
+ if not input_file.is_file():
+ logger.error(f"{input_file_str} does not exist or is not a file.")
+ sys.exit(-1)
+ file_root, ext = os.path.splitext(input_file)
+ if input_file.suffix != ".py":
+ logger.error(f"{input_file_str} does not appear to be a Python file.")
+ sys.exit(-1)
+
+ ast_tree = ConvertVisitor.create_ast(input_file_str)
+ if args.stdout:
+ sys.stdout.write(f"// Converted from {input_file.name}\n")
+ ConvertVisitor(input_file, sys.stdout).visit(ast_tree)
+ else:
+ target_file = input_file.parent / (input_file.stem + ".cpp")
+ if target_file.exists():
+ if not target_file.is_file():
+ logger.error(f"{target_file} exists and is not a file.")
+ sys.exit(-1)
+ if not args.force:
+ logger.error(f"{target_file} exists. Use -f to overwrite.")
+ sys.exit(-1)
+
+ with target_file.open("w") as file:
+ file.write(f"// Converted from {input_file.name}\n")
+ ConvertVisitor(input_file, file).visit(ast_tree)
+ logger.info(f"Wrote {target_file}.")
diff --git a/sources/pyside-tools/qtpy2cpp.pyproject b/sources/pyside-tools/qtpy2cpp.pyproject
new file mode 100644
index 000000000..a059aebca
--- /dev/null
+++ b/sources/pyside-tools/qtpy2cpp.pyproject
@@ -0,0 +1,7 @@
+{
+ "files": ["qtpy2cpp.py",
+ "qtpy2cpp_lib/formatter.py", "qtpy2cpp_lib/visitor.py", "qtpy2cpp_lib/nodedump.py",
+ "qtpy2cpp_lib/astdump.py", "qtpy2cpp_lib/tokenizer.py", "qtpy2cpp_lib/qt.py",
+ "qtpy2cpp_lib/tests/test_qtpy2cpp.py",
+ "qtpy2cpp_lib/tests/baseline/basic_test.py", "qtpy2cpp_lib/tests/baseline/uic.py"]
+}
diff --git a/sources/pyside-tools/qtpy2cpp_lib/astdump.py b/sources/pyside-tools/qtpy2cpp_lib/astdump.py
new file mode 100644
index 000000000..d92fb7589
--- /dev/null
+++ b/sources/pyside-tools/qtpy2cpp_lib/astdump.py
@@ -0,0 +1,111 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+"""Tool to dump a Python AST"""
+
+
+import ast
+import tokenize
+from argparse import ArgumentParser, RawTextHelpFormatter
+from enum import Enum
+
+from nodedump import debug_format_node
+
+DESCRIPTION = "Tool to dump a Python AST"
+
+
+_source_lines = []
+_opt_verbose = False
+
+
+def first_non_space(s):
+ for i, c in enumerate(s):
+ if c != ' ':
+ return i
+ return 0
+
+
+class NodeType(Enum):
+ IGNORE = 1
+ PRINT_ONE_LINE = 2 # Print as a one liner, do not visit children
+ PRINT = 3 # Print with opening closing tag, visit children
+ PRINT_WITH_SOURCE = 4 # Like PRINT, but print source line above
+
+
+def get_node_type(node):
+ if isinstance(node, (ast.Load, ast.Store, ast.Delete)):
+ return NodeType.IGNORE
+ if isinstance(node, (ast.Add, ast.alias, ast.arg, ast.Eq, ast.Gt, ast.Lt,
+ ast.Mult, ast.Name, ast.NotEq, ast.NameConstant, ast.Not,
+ ast.Num, ast.Str)):
+ return NodeType.PRINT_ONE_LINE
+ if not hasattr(node, 'lineno'):
+ return NodeType.PRINT
+ if isinstance(node, (ast.Attribute)):
+ return NodeType.PRINT_ONE_LINE if isinstance(node.value, ast.Name) else NodeType.PRINT
+ return NodeType.PRINT_WITH_SOURCE
+
+
+class DumpVisitor(ast.NodeVisitor):
+ def __init__(self):
+ ast.NodeVisitor.__init__(self)
+ self._indent = 0
+ self._printed_source_lines = {-1}
+
+ def generic_visit(self, node):
+ node_type = get_node_type(node)
+ if _opt_verbose and node_type in (NodeType.IGNORE, NodeType.PRINT_ONE_LINE):
+ node_type = NodeType.PRINT
+ if node_type == NodeType.IGNORE:
+ return
+ self._indent = self._indent + 1
+ indent = ' ' * self._indent
+
+ if node_type == NodeType.PRINT_WITH_SOURCE:
+ line_number = node.lineno - 1
+ if line_number not in self._printed_source_lines:
+ self._printed_source_lines.add(line_number)
+ line = _source_lines[line_number]
+ non_space = first_non_space(line)
+ print('{:04d} {}{}'.format(line_number, '_' * non_space,
+ line[non_space:]))
+
+ if node_type == NodeType.PRINT_ONE_LINE:
+ print(indent, debug_format_node(node))
+ else:
+ print(indent, '>', debug_format_node(node))
+ ast.NodeVisitor.generic_visit(self, node)
+ print(indent, '<', type(node).__name__)
+
+ self._indent = self._indent - 1
+
+
+def parse_ast(filename):
+ node = None
+ with tokenize.open(filename) as f:
+ global _source_lines
+ source = f.read()
+ _source_lines = source.split('\n')
+ node = ast.parse(source, mode="exec")
+ return node
+
+
+def create_arg_parser(desc):
+ parser = ArgumentParser(description=desc,
+ formatter_class=RawTextHelpFormatter)
+ parser.add_argument('--verbose', '-v', action='store_true',
+ help='Verbose')
+ parser.add_argument('source', type=str, help='Python source')
+ return parser
+
+
+if __name__ == '__main__':
+ arg_parser = create_arg_parser(DESCRIPTION)
+ options = arg_parser.parse_args()
+ _opt_verbose = options.verbose
+ title = f'AST tree for {options.source}'
+ print('=' * len(title))
+ print(title)
+ print('=' * len(title))
+ tree = parse_ast(options.source)
+ DumpVisitor().visit(tree)
diff --git a/sources/pyside-tools/qtpy2cpp_lib/formatter.py b/sources/pyside-tools/qtpy2cpp_lib/formatter.py
new file mode 100644
index 000000000..9a38e803d
--- /dev/null
+++ b/sources/pyside-tools/qtpy2cpp_lib/formatter.py
@@ -0,0 +1,265 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+"""C++ formatting helper functions and formatter class"""
+
+
+import ast
+
+from .qt import ClassFlag, qt_class_flags
+
+CLOSING = {"{": "}", "(": ")", "[": "]"} # Closing parenthesis for C++
+
+
+def _fix_function_argument_type(type, for_return):
+ """Fix function argument/return qualifiers using some heuristics for Qt."""
+ if type == "float":
+ return "double"
+ if type == "str":
+ type = "QString"
+ if not type.startswith("Q"):
+ return type
+ flags = qt_class_flags(type)
+ if flags & ClassFlag.PASS_BY_VALUE:
+ return type
+ if flags & ClassFlag.PASS_BY_CONSTREF:
+ return type if for_return else f"const {type} &"
+ if flags & ClassFlag.PASS_BY_REF:
+ return type if for_return else f"{type} &"
+ return type + " *" # Assume pointer by default
+
+
+def to_string(node):
+ """Helper to retrieve a string from the (Lists of)Name/Attribute
+ aggregated into some nodes"""
+ if isinstance(node, ast.Name):
+ return node.id
+ if isinstance(node, ast.Attribute):
+ return node.attr
+ return ''
+
+
+def format_inheritance(class_def_node):
+ """Returns inheritance specification of a class"""
+ result = ''
+ for base in class_def_node.bases:
+ name = to_string(base)
+ if name != 'object':
+ result += ', public ' if result else ' : public '
+ result += name
+ return result
+
+
+def format_for_target(target_node):
+ if isinstance(target_node, ast.Tuple): # for i,e in enumerate()
+ result = ''
+ for i, el in enumerate(target_node.elts):
+ if i > 0:
+ result += ', '
+ result += format_reference(el)
+ return result
+ return format_reference(target_node)
+
+
+def format_for_loop(f_node):
+ """Format a for loop
+ This applies some heuristics to detect:
+ 1) "for a in [1,2])" -> "for (f: {1, 2}) {"
+ 2) "for i in range(5)" -> "for (i = 0; i < 5; ++i) {"
+ 3) "for i in range(2,5)" -> "for (i = 2; i < 5; ++i) {"
+
+ TODO: Detect other cases, maybe including enumerate().
+ """
+ loop_vars = format_for_target(f_node.target)
+ result = 'for (' + loop_vars
+ if isinstance(f_node.iter, ast.Call):
+ f = format_reference(f_node.iter.func)
+ if f == 'range':
+ start = 0
+ end = -1
+ if len(f_node.iter.args) == 2:
+ start = format_literal(f_node.iter.args[0])
+ end = format_literal(f_node.iter.args[1])
+ elif len(f_node.iter.args) == 1:
+ end = format_literal(f_node.iter.args[0])
+ result += f' = {start}; {loop_vars} < {end}; ++{loop_vars}'
+ elif isinstance(f_node.iter, ast.List):
+ # Range based for over list
+ result += ': ' + format_literal_list(f_node.iter)
+ elif isinstance(f_node.iter, ast.Name):
+ # Range based for over variable
+ result += ': ' + f_node.iter.id
+ result += ') {'
+ return result
+
+
+def format_name_constant(node):
+ """Format a ast.NameConstant."""
+ if node.value is None:
+ return "nullptr"
+ return "true" if node.value else "false"
+
+
+def format_literal(node):
+ """Returns the value of number/string literals"""
+ if isinstance(node, ast.NameConstant):
+ return format_name_constant(node)
+ if isinstance(node, ast.Num):
+ return str(node.n)
+ if isinstance(node, ast.Str):
+ # Fixme: escaping
+ return f'"{node.s}"'
+ return ''
+
+
+def format_literal_list(l_node, enclosing='{'):
+ """Formats a list/tuple of number/string literals as C++ initializer list"""
+ result = enclosing
+ for i, el in enumerate(l_node.elts):
+ if i > 0:
+ result += ', '
+ result += format_literal(el)
+ result += CLOSING[enclosing]
+ return result
+
+
+def format_member(attrib_node, qualifier_in='auto'):
+ """Member access foo->member() is expressed as an attribute with
+ further nested Attributes/Names as value"""
+ n = attrib_node
+ result = ''
+ # Black magic: Guess '::' if name appears to be a class name
+ qualifier = qualifier_in
+ if qualifier_in == 'auto':
+ qualifier = '::' if n.attr[0:1].isupper() else '->'
+ while isinstance(n, ast.Attribute):
+ result = n.attr if not result else n.attr + qualifier + result
+ n = n.value
+ if isinstance(n, ast.Name) and n.id != 'self':
+ if qualifier_in == 'auto' and n.id == "Qt": # Qt namespace
+ qualifier = "::"
+ result = n.id + qualifier + result
+ return result
+
+
+def format_reference(node, qualifier='auto'):
+ """Format member reference or free item"""
+ return node.id if isinstance(node, ast.Name) else format_member(node, qualifier)
+
+
+def format_function_def_arguments(function_def_node):
+ """Formats arguments of a function definition"""
+ # Default values is a list of the last default values, expand
+ # so that indexes match
+ argument_count = len(function_def_node.args.args)
+ default_values = function_def_node.args.defaults
+ while len(default_values) < argument_count:
+ default_values.insert(0, None)
+ result = ''
+ for i, a in enumerate(function_def_node.args.args):
+ if result:
+ result += ', '
+ if a.arg != 'self':
+ if a.annotation and isinstance(a.annotation, ast.Name):
+ result += _fix_function_argument_type(a.annotation.id, False) + ' '
+ result += a.arg
+ if default_values[i]:
+ result += ' = '
+ default_value = default_values[i]
+ if isinstance(default_value, ast.Attribute):
+ result += format_reference(default_value)
+ else:
+ result += format_literal(default_value)
+ return result
+
+
+def format_start_function_call(call_node):
+ """Format a call of a free or member function"""
+ return format_reference(call_node.func) + '('
+
+
+def write_import(file, i_node):
+ """Print an import of a Qt class as #include"""
+ for alias in i_node.names:
+ if alias.name.startswith('Q'):
+ file.write(f'#include <{alias.name}>\n')
+
+
+def write_import_from(file, i_node):
+ """Print an import from Qt classes as #include sequence"""
+ # "from PySide6.QtGui import QGuiApplication" or
+ # "from PySide6 import QtGui"
+ mod = i_node.module
+ if not mod.startswith('PySide') and not mod.startswith('PyQt'):
+ return
+ dot = mod.find('.')
+ qt_module = mod[dot + 1:] + '/' if dot >= 0 else ''
+ for i in i_node.names:
+ if i.name.startswith('Q'):
+ file.write(f'#include <{qt_module}{i.name}>\n')
+
+
+class Indenter:
+ """Helper for Indentation"""
+
+ def __init__(self, output_file):
+ self._indent_level = 0
+ self._indentation = ''
+ self._output_file = output_file
+
+ def indent_string(self, string):
+ """Start a new line by a string"""
+ self._output_file.write(self._indentation)
+ self._output_file.write(string)
+
+ def indent_line(self, line):
+ """Write an indented line"""
+ self._output_file.write(self._indentation)
+ self._output_file.write(line)
+ self._output_file.write('\n')
+
+ def INDENT(self):
+ """Write indentation"""
+ self._output_file.write(self._indentation)
+
+ def indent(self):
+ """Increase indentation level"""
+ self._indent_level = self._indent_level + 1
+ self._indentation = ' ' * self._indent_level
+
+ def dedent(self):
+ """Decrease indentation level"""
+ self._indent_level = self._indent_level - 1
+ self._indentation = ' ' * self._indent_level
+
+
+class CppFormatter(Indenter):
+ """Provides helpers for formatting multi-line C++ constructs"""
+
+ def __init__(self, output_file):
+ Indenter.__init__(self, output_file)
+
+ def write_class_def(self, class_node):
+ """Print a class definition with inheritance"""
+ self._output_file.write('\n')
+ inherits = format_inheritance(class_node)
+ self.indent_line(f'class {class_node.name}{inherits}')
+ self.indent_line('{')
+ self.indent_line('public:')
+
+ def write_function_def(self, f_node, class_context):
+ """Print a function definition with arguments"""
+ self._output_file.write('\n')
+ arguments = format_function_def_arguments(f_node)
+ if f_node.name == '__init__' and class_context: # Constructor
+ name = class_context
+ elif f_node.name == '__del__' and class_context: # Destructor
+ name = '~' + class_context
+ else:
+ return_type = "void"
+ if f_node.returns and isinstance(f_node.returns, ast.Name):
+ return_type = _fix_function_argument_type(f_node.returns.id, True)
+ name = return_type + " " + f_node.name
+ self.indent_string(f'{name}({arguments})')
+ self._output_file.write('\n')
+ self.indent_line('{')
diff --git a/sources/pyside-tools/qtpy2cpp_lib/nodedump.py b/sources/pyside-tools/qtpy2cpp_lib/nodedump.py
new file mode 100644
index 000000000..de62e9700
--- /dev/null
+++ b/sources/pyside-tools/qtpy2cpp_lib/nodedump.py
@@ -0,0 +1,50 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+"""Helper to dump AST nodes for debugging"""
+
+
+import ast
+
+
+def to_string(node):
+ """Helper to retrieve a string from the (Lists of )Name/Attribute
+ aggregated into some nodes"""
+ if isinstance(node, ast.Name):
+ return node.id
+ if isinstance(node, ast.Attribute):
+ return node.attr
+ return ''
+
+
+def debug_format_node(node):
+ """Format AST node for debugging"""
+ if isinstance(node, ast.alias):
+ return f'alias("{node.name}")'
+ if isinstance(node, ast.arg):
+ return f'arg({node.arg})'
+ if isinstance(node, ast.Attribute):
+ if isinstance(node.value, ast.Name):
+ nested_name = debug_format_node(node.value)
+ return f'Attribute("{node.attr}", {nested_name})'
+ return f'Attribute("{node.attr}")'
+ if isinstance(node, ast.Call):
+ return 'Call({}({}))'.format(to_string(node.func), len(node.args))
+ if isinstance(node, ast.ClassDef):
+ base_names = [to_string(base) for base in node.bases]
+ bases = ': ' + ','.join(base_names) if base_names else ''
+ return f'ClassDef({node.name}{bases})'
+ if isinstance(node, ast.ImportFrom):
+ return f'ImportFrom("{node.module}")'
+ if isinstance(node, ast.FunctionDef):
+ arg_names = [a.arg for a in node.args.args]
+ return 'FunctionDef({}({}))'.format(node.name, ', '.join(arg_names))
+ if isinstance(node, ast.Name):
+ return 'Name("{}", Ctx={})'.format(node.id, type(node.ctx).__name__)
+ if isinstance(node, ast.NameConstant):
+ return f'NameConstant({node.value})'
+ if isinstance(node, ast.Num):
+ return f'Num({node.n})'
+ if isinstance(node, ast.Str):
+ return f'Str("{node.s}")'
+ return type(node).__name__
diff --git a/sources/pyside-tools/qtpy2cpp_lib/qt.py b/sources/pyside-tools/qtpy2cpp_lib/qt.py
new file mode 100644
index 000000000..69bd54aeb
--- /dev/null
+++ b/sources/pyside-tools/qtpy2cpp_lib/qt.py
@@ -0,0 +1,56 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+"""Provides some type information on Qt classes"""
+
+
+from enum import Flag
+
+
+class ClassFlag(Flag):
+ PASS_BY_CONSTREF = 1
+ PASS_BY_REF = 2
+ PASS_BY_VALUE = 4
+ PASS_ON_STACK_MASK = PASS_BY_CONSTREF | PASS_BY_REF | PASS_BY_VALUE
+ INSTANTIATE_ON_STACK = 8
+
+
+_QT_CLASS_FLAGS = {
+ "QBrush": ClassFlag.PASS_BY_CONSTREF | ClassFlag.INSTANTIATE_ON_STACK,
+ "QGradient": ClassFlag.PASS_BY_CONSTREF | ClassFlag.INSTANTIATE_ON_STACK,
+ "QIcon": ClassFlag.PASS_BY_CONSTREF | ClassFlag.INSTANTIATE_ON_STACK,
+ "QLine": ClassFlag.PASS_BY_CONSTREF | ClassFlag.INSTANTIATE_ON_STACK,
+ "QLineF": ClassFlag.PASS_BY_CONSTREF | ClassFlag.INSTANTIATE_ON_STACK,
+ "QPixmap": ClassFlag.PASS_BY_CONSTREF | ClassFlag.INSTANTIATE_ON_STACK,
+ "QPointF": ClassFlag.PASS_BY_CONSTREF | ClassFlag.INSTANTIATE_ON_STACK,
+ "QRect": ClassFlag.PASS_BY_CONSTREF | ClassFlag.INSTANTIATE_ON_STACK,
+ "QRectF": ClassFlag.PASS_BY_CONSTREF | ClassFlag.INSTANTIATE_ON_STACK,
+ "QSizeF": ClassFlag.PASS_BY_CONSTREF | ClassFlag.INSTANTIATE_ON_STACK,
+ "QString": ClassFlag.PASS_BY_CONSTREF | ClassFlag.INSTANTIATE_ON_STACK,
+ "QFile": ClassFlag.PASS_BY_REF | ClassFlag.INSTANTIATE_ON_STACK,
+ "QSettings": ClassFlag.PASS_BY_REF | ClassFlag.INSTANTIATE_ON_STACK,
+ "QTextStream": ClassFlag.PASS_BY_REF | ClassFlag.INSTANTIATE_ON_STACK,
+ "QColor": ClassFlag.PASS_BY_VALUE | ClassFlag.INSTANTIATE_ON_STACK,
+ "QPoint": ClassFlag.PASS_BY_VALUE | ClassFlag.INSTANTIATE_ON_STACK,
+ "QSize": ClassFlag.PASS_BY_VALUE | ClassFlag.INSTANTIATE_ON_STACK,
+ "QApplication": ClassFlag.INSTANTIATE_ON_STACK,
+ "QColorDialog": ClassFlag.INSTANTIATE_ON_STACK,
+ "QCoreApplication": ClassFlag.INSTANTIATE_ON_STACK,
+ "QFileDialog": ClassFlag.INSTANTIATE_ON_STACK,
+ "QFileInfo": ClassFlag.INSTANTIATE_ON_STACK,
+ "QFontDialog": ClassFlag.INSTANTIATE_ON_STACK,
+ "QGuiApplication": ClassFlag.INSTANTIATE_ON_STACK,
+ "QMessageBox": ClassFlag.INSTANTIATE_ON_STACK,
+ "QPainter": ClassFlag.INSTANTIATE_ON_STACK,
+ "QPen": ClassFlag.INSTANTIATE_ON_STACK,
+ "QQmlApplicationEngine": ClassFlag.INSTANTIATE_ON_STACK,
+ "QQmlComponent": ClassFlag.INSTANTIATE_ON_STACK,
+ "QQmlEngine": ClassFlag.INSTANTIATE_ON_STACK,
+ "QQuickView": ClassFlag.INSTANTIATE_ON_STACK,
+ "QSaveFile": ClassFlag.INSTANTIATE_ON_STACK
+}
+
+
+def qt_class_flags(type):
+ f = _QT_CLASS_FLAGS.get(type)
+ return f if f else ClassFlag(0)
diff --git a/sources/pyside-tools/qtpy2cpp_lib/tests/baseline/basic_test.cpp b/sources/pyside-tools/qtpy2cpp_lib/tests/baseline/basic_test.cpp
new file mode 100644
index 000000000..8ee7be31e
--- /dev/null
+++ b/sources/pyside-tools/qtpy2cpp_lib/tests/baseline/basic_test.cpp
@@ -0,0 +1,62 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+// Converted from basic_test.py
+#include <QtCore/Qt>
+#include <QtGui/QColor>
+#include <QtGui/QPainter>
+#include <QtGui/QPaintEvent>
+#include <QtGui/QShortcut>
+#include <QtWidgets/QApplication>
+#include <QtWidgets/QWidget>
+
+class Window : public QWidget
+{
+public:
+
+ Window(QWidget * parent = nullptr)
+ {
+ super()->__init__(parent);
+ }
+
+ void paintEvent(QPaintEvent * e)
+ {
+ paint("bla");
+ }
+
+ void paint(const QString & what, color = Qt::blue)
+ {
+ { // Converted from context manager
+ p = QPainter();
+ p->setPen(QColor(color));
+ rect = rect();
+ w = rect->width();
+ h = rect->height();
+ p->drawLine(0, 0, w, h);
+ p->drawLine(0, h, w, 0);
+ p->drawText(rect->center(), what);
+ }
+ }
+
+ void sum()
+ {
+ values = {1, 2, 3};
+ result = 0;
+ for (v: values) {
+ result += v
+ }
+ return result;
+ }
+};
+
+int main(int argc, char *argv[])
+{
+ QApplication app(sys->argv);
+ window = Window();
+ auto *sc = new QShortcut((Qt::CTRL | Qt::Key_Q), window);
+ sc->activated->connect(window->close);
+ window->setWindowTitle("Test");
+ window->show();
+ sys->exit(app.exec());
+ return 0;
+}
diff --git a/sources/pyside-tools/qtpy2cpp_lib/tests/baseline/basic_test.py b/sources/pyside-tools/qtpy2cpp_lib/tests/baseline/basic_test.py
new file mode 100644
index 000000000..1466ac6b1
--- /dev/null
+++ b/sources/pyside-tools/qtpy2cpp_lib/tests/baseline/basic_test.py
@@ -0,0 +1,44 @@
+#!/usr/bin/env python
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import sys
+
+from PySide6.QtCore import Qt
+from PySide6.QtGui import QColor, QPainter, QPaintEvent, QShortcut
+from PySide6.QtWidgets import QApplication, QWidget
+
+
+class Window(QWidget):
+ def __init__(self, parent: QWidget = None):
+ super().__init__(parent)
+
+ def paintEvent(self, e: QPaintEvent):
+ self.paint("bla")
+
+ def paint(self, what: str, color: Qt.GlobalColor = Qt.blue):
+ with QPainter(self) as p:
+ p.setPen(QColor(color))
+ rect = self.rect()
+ w = rect.width()
+ h = rect.height()
+ p.drawLine(0, 0, w, h)
+ p.drawLine(0, h, w, 0)
+ p.drawText(rect.center(), what)
+
+ def sum(self):
+ values = [1, 2, 3]
+ result = 0
+ for v in values:
+ result += v
+ return result
+
+
+if __name__ == '__main__':
+ app = QApplication(sys.argv)
+ window = Window()
+ sc = QShortcut(Qt.CTRL | Qt.Key_Q, window)
+ sc.activated.connect(window.close)
+ window.setWindowTitle("Test")
+ window.show()
+ sys.exit(app.exec())
diff --git a/sources/pyside-tools/qtpy2cpp_lib/tests/test_qtpy2cpp.py b/sources/pyside-tools/qtpy2cpp_lib/tests/test_qtpy2cpp.py
new file mode 100644
index 000000000..894b2a958
--- /dev/null
+++ b/sources/pyside-tools/qtpy2cpp_lib/tests/test_qtpy2cpp.py
@@ -0,0 +1,54 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+import subprocess
+import tempfile
+import sys
+from pathlib import Path
+
+# run pytest-3
+
+
+def diff_code(actual_code, expected_file):
+ """Helper to run diff if something fails (Linux only)."""
+ with tempfile.NamedTemporaryFile(suffix=".cpp") as tf:
+ tf.write(actual_code.encode('utf-8'))
+ tf.flush()
+ diff_cmd = ["diff", "-u", expected_file, tf.name]
+ subprocess.run(diff_cmd)
+
+
+def run_converter(tool, file):
+ """Run the converter and return C++ code generated from file."""
+ cmd = [sys.executable, tool, "--stdout", file]
+ output = ""
+ with subprocess.Popen(cmd, stdout=subprocess.PIPE) as proc:
+ output_b, errors_b = proc.communicate()
+ output = output_b.decode('utf-8')
+ if errors_b:
+ print(errors_b.decode('utf-8'), file=sys.stderr)
+ return output
+
+
+def test_examples():
+ dir = Path(__file__).resolve().parent
+ tool = dir.parents[1] / "qtpy2cpp.py"
+ assert tool.is_file
+ for test_file in (dir / "baseline").glob("*.py"):
+ assert test_file.is_file
+ expected_file = test_file.parent / (test_file.stem + ".cpp")
+ if expected_file.is_file():
+ actual_code = run_converter(tool, test_file)
+ assert actual_code
+ expected_code = expected_file.read_text()
+ # Strip the license
+ code_start = expected_code.find("// Converted from")
+ assert code_start != -1
+ expected_code = expected_code[code_start:]
+
+ if actual_code != expected_code:
+ diff_code(actual_code, expected_file)
+ assert actual_code == expected_code
+ else:
+ print(f"Warning, {test_file} is missing a .cpp file.",
+ file=sys.stderr)
diff --git a/sources/pyside-tools/qtpy2cpp_lib/tokenizer.py b/sources/pyside-tools/qtpy2cpp_lib/tokenizer.py
new file mode 100644
index 000000000..d5e26c2a8
--- /dev/null
+++ b/sources/pyside-tools/qtpy2cpp_lib/tokenizer.py
@@ -0,0 +1,55 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+"""Tool to dump Python Tokens"""
+
+
+import sys
+import tokenize
+
+
+def format_token(t):
+ r = repr(t)
+ if r.startswith('TokenInfo('):
+ r = r[10:]
+ pos = r.find("), line='")
+ if pos < 0:
+ pos = r.find('), line="')
+ if pos > 0:
+ r = r[:pos + 1]
+ return r
+
+
+def first_non_space(s):
+ for i, c in enumerate(s):
+ if c != ' ':
+ return i
+ return 0
+
+
+if __name__ == '__main__':
+ if len(sys.argv) < 2:
+ print("Specify file Name")
+ sys.exit(1)
+ filename = sys.argv[1]
+ indent_level = 0
+ indent = ''
+ last_line_number = -1
+ with tokenize.open(filename) as f:
+ generator = tokenize.generate_tokens(f.readline)
+ for t in generator:
+ line_number = t.start[0]
+ if line_number != last_line_number:
+ code_line = t.line.rstrip()
+ non_space = first_non_space(code_line)
+ print('{:04d} {}{}'.format(line_number, '_' * non_space,
+ code_line[non_space:]))
+ last_line_number = line_number
+ if t.type == tokenize.INDENT:
+ indent_level = indent_level + 1
+ indent = ' ' * indent_level
+ elif t.type == tokenize.DEDENT:
+ indent_level = indent_level - 1
+ indent = ' ' * indent_level
+ else:
+ print(' ', indent, format_token(t))
diff --git a/sources/pyside-tools/qtpy2cpp_lib/visitor.py b/sources/pyside-tools/qtpy2cpp_lib/visitor.py
new file mode 100644
index 000000000..2056951ae
--- /dev/null
+++ b/sources/pyside-tools/qtpy2cpp_lib/visitor.py
@@ -0,0 +1,442 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+"""AST visitor printing out C++"""
+
+import ast
+import sys
+import tokenize
+import warnings
+
+from .formatter import (CppFormatter, format_for_loop, format_literal,
+ format_name_constant,
+ format_reference, write_import, write_import_from)
+from .nodedump import debug_format_node
+from .qt import ClassFlag, qt_class_flags
+
+
+def _is_qt_constructor(assign_node):
+ """Is this assignment node a plain construction of a Qt class?
+ 'f = QFile(name)'. Returns the class_name."""
+ call = assign_node.value
+ if (isinstance(call, ast.Call) and isinstance(call.func, ast.Name)):
+ func = call.func.id
+ if func.startswith("Q"):
+ return func
+ return None
+
+
+def _is_if_main(if_node):
+ """Return whether an if statement is: if __name__ == '__main__' """
+ test = if_node.test
+ return (isinstance(test, ast.Compare)
+ and len(test.ops) == 1
+ and isinstance(test.ops[0], ast.Eq)
+ and isinstance(test.left, ast.Name)
+ and test.left.id == "__name__"
+ and len(test.comparators) == 1
+ and isinstance(test.comparators[0], ast.Constant)
+ and test.comparators[0].value == "__main__")
+
+
+class ConvertVisitor(ast.NodeVisitor, CppFormatter):
+ """AST visitor printing out C++
+ Note on implementation:
+ - Any visit_XXX() overridden function should call self.generic_visit(node)
+ to continue visiting
+ - When controlling the visiting manually (cf visit_Call()),
+ self.visit(child) needs to be called since that dispatches to
+ visit_XXX(). This is usually done to prevent undesired output
+ for example from references of calls, etc.
+ """
+
+ debug = False
+
+ def __init__(self, file_name, output_file):
+ ast.NodeVisitor.__init__(self)
+ CppFormatter.__init__(self, output_file)
+ self._file_name = file_name
+ self._class_scope = [] # List of class names
+ self._stack = [] # nodes
+ self._stack_variables = [] # variables instantiated on stack
+ self._debug_indent = 0
+
+ @staticmethod
+ def create_ast(filename):
+ """Create an Abstract Syntax Tree on which a visitor can be run"""
+ node = None
+ with tokenize.open(filename) as file:
+ node = ast.parse(file.read(), mode="exec")
+ return node
+
+ def generic_visit(self, node):
+ parent = self._stack[-1] if self._stack else None
+ if self.debug:
+ self._debug_enter(node, parent)
+ self._stack.append(node)
+ try:
+ super().generic_visit(node)
+ except Exception as e:
+ line_no = node.lineno if hasattr(node, 'lineno') else -1
+ error_message = str(e)
+ message = f'{self._file_name}:{line_no}: Error "{error_message}"'
+ warnings.warn(message)
+ self._output_file.write(f'\n// {error_message}\n')
+ del self._stack[-1]
+ if self.debug:
+ self._debug_leave(node)
+
+ def visit_Add(self, node):
+ self._handle_bin_op(node, "+")
+
+ def _is_augmented_assign(self):
+ """Is it 'Augmented_assign' (operators +=/-=, etc)?"""
+ return self._stack and isinstance(self._stack[-1], ast.AugAssign)
+
+ def visit_AugAssign(self, node):
+ """'Augmented_assign', Operators +=/-=, etc."""
+ self.INDENT()
+ self.generic_visit(node)
+ self._output_file.write("\n")
+
+ def visit_Assign(self, node):
+ self.INDENT()
+
+ qt_class = _is_qt_constructor(node)
+ on_stack = qt_class and qt_class_flags(qt_class) & ClassFlag.INSTANTIATE_ON_STACK
+
+ # Is this a free variable and not a member assignment? Instantiate
+ # on stack or give a type
+ if len(node.targets) == 1 and isinstance(node.targets[0], ast.Name):
+ if qt_class:
+ if on_stack:
+ # "QFile f(args)"
+ var = node.targets[0].id
+ self._stack_variables.append(var)
+ self._output_file.write(f"{qt_class} {var}(")
+ self._write_function_args(node.value.args)
+ self._output_file.write(");\n")
+ return
+ self._output_file.write("auto *")
+
+ line_no = node.lineno if hasattr(node, 'lineno') else -1
+ for target in node.targets:
+ if isinstance(target, ast.Tuple):
+ w = f"{self._file_name}:{line_no}: List assignment not handled."
+ warnings.warn(w)
+ elif isinstance(target, ast.Subscript):
+ w = f"{self._file_name}:{line_no}: Subscript assignment not handled."
+ warnings.warn(w)
+ else:
+ self._output_file.write(format_reference(target))
+ self._output_file.write(' = ')
+ if qt_class and not on_stack:
+ self._output_file.write("new ")
+ self.visit(node.value)
+ self._output_file.write(';\n')
+
+ def visit_Attribute(self, node):
+ """Format a variable reference (cf visit_Name)"""
+ # Default parameter (like Qt::black)?
+ if self._ignore_function_def_node(node):
+ return
+ self._output_file.write(format_reference(node))
+
+ def visit_BinOp(self, node):
+ # Parentheses are not exposed, so, every binary operation needs to
+ # be enclosed by ().
+ self._output_file.write('(')
+ self.generic_visit(node)
+ self._output_file.write(')')
+
+ def _handle_bin_op(self, node, op):
+ """Handle a binary operator which can appear as 'Augmented Assign'."""
+ self.generic_visit(node)
+ full_op = f" {op}= " if self._is_augmented_assign() else f" {op} "
+ self._output_file.write(full_op)
+
+ def visit_BitAnd(self, node):
+ self._handle_bin_op(node, "&")
+
+ def visit_BitOr(self, node):
+ self._handle_bin_op(node, "|")
+
+ def _format_call(self, node):
+ # Decorator list?
+ if self._ignore_function_def_node(node):
+ return
+ f = node.func
+ if isinstance(f, ast.Name):
+ self._output_file.write(f.id)
+ else:
+ # Attributes denoting chained calls "a->b()->c()". Walk along in
+ # reverse order, recursing for other calls.
+ names = []
+ n = f
+ while isinstance(n, ast.Attribute):
+ names.insert(0, n.attr)
+ n = n.value
+
+ if isinstance(n, ast.Name): # Member or variable reference
+ if n.id != "self":
+ sep = "->"
+ if n.id in self._stack_variables:
+ sep = "."
+ elif n.id[0:1].isupper(): # Heuristics for static
+ sep = "::"
+ self._output_file.write(n.id)
+ self._output_file.write(sep)
+ elif isinstance(n, ast.Call): # A preceding call
+ self._format_call(n)
+ self._output_file.write("->")
+
+ self._output_file.write("->".join(names))
+
+ self._output_file.write('(')
+ self._write_function_args(node.args)
+ self._output_file.write(')')
+
+ def visit_Call(self, node):
+ self._format_call(node)
+ # Context manager expression?
+ if self._within_context_manager():
+ self._output_file.write(";\n")
+
+ def _write_function_args(self, args_node):
+ # Manually do visit(), skip the children of func
+ for i, arg in enumerate(args_node):
+ if i > 0:
+ self._output_file.write(', ')
+ self.visit(arg)
+
+ def visit_ClassDef(self, node):
+ # Manually do visit() to skip over base classes
+ # and annotations
+ self._class_scope.append(node.name)
+ self.write_class_def(node)
+ self.indent()
+ for b in node.body:
+ self.visit(b)
+ self.dedent()
+ self.indent_line('};')
+ del self._class_scope[-1]
+
+ def visit_Div(self, node):
+ self._handle_bin_op(node, "/")
+
+ def visit_Eq(self, node):
+ self.generic_visit(node)
+ self._output_file.write(" == ")
+
+ def visit_Expr(self, node):
+ self.INDENT()
+ self.generic_visit(node)
+ self._output_file.write(';\n')
+
+ def visit_Gt(self, node):
+ self.generic_visit(node)
+ self._output_file.write(" > ")
+
+ def visit_GtE(self, node):
+ self.generic_visit(node)
+ self._output_file.write(" >= ")
+
+ def visit_For(self, node):
+ # Manually do visit() to get the indentation right.
+ # TODO: what about orelse?
+ self.indent_line(format_for_loop(node))
+ self.indent()
+ for b in node.body:
+ self.visit(b)
+ self.dedent()
+ self.indent_line('}')
+
+ def visit_FunctionDef(self, node):
+ class_context = self._class_scope[-1] if self._class_scope else None
+ for decorator in node.decorator_list:
+ func = decorator.func # (Call)
+ if isinstance(func, ast.Name) and func.id == "Slot":
+ self._output_file.write("\npublic slots:")
+ self.write_function_def(node, class_context)
+ # Find stack variables
+ for arg in node.args.args:
+ if arg.annotation and isinstance(arg.annotation, ast.Name):
+ type_name = arg.annotation.id
+ flags = qt_class_flags(type_name)
+ if flags & ClassFlag.PASS_ON_STACK_MASK:
+ self._stack_variables.append(arg.arg)
+ self.indent()
+ self.generic_visit(node)
+ self.dedent()
+ self.indent_line('}')
+ self._stack_variables.clear()
+
+ def visit_If(self, node):
+ # Manually do visit() to get the indentation right. Note:
+ # elsif() is modelled as nested if.
+
+ # Check for the main function
+ if _is_if_main(node):
+ self._output_file.write("\nint main(int argc, char *argv[])\n{\n")
+ self.indent()
+ for b in node.body:
+ self.visit(b)
+ self.indent_string("return 0;\n")
+ self.dedent()
+ self._output_file.write("}\n")
+ return
+
+ self.indent_string('if (')
+ self.visit(node.test)
+ self._output_file.write(') {\n')
+ self.indent()
+ for b in node.body:
+ self.visit(b)
+ self.dedent()
+ self.indent_string('}')
+ if node.orelse:
+ self._output_file.write(' else {\n')
+ self.indent()
+ for b in node.orelse:
+ self.visit(b)
+ self.dedent()
+ self.indent_string('}')
+ self._output_file.write('\n')
+
+ def visit_Import(self, node):
+ write_import(self._output_file, node)
+
+ def visit_ImportFrom(self, node):
+ write_import_from(self._output_file, node)
+
+ def visit_List(self, node):
+ # Manually do visit() to get separators right
+ self._output_file.write('{')
+ for i, el in enumerate(node.elts):
+ if i > 0:
+ self._output_file.write(', ')
+ self.visit(el)
+ self._output_file.write('}')
+
+ def visit_LShift(self, node):
+ self.generic_visit(node)
+ self._output_file.write(" << ")
+
+ def visit_Lt(self, node):
+ self.generic_visit(node)
+ self._output_file.write(" < ")
+
+ def visit_LtE(self, node):
+ self.generic_visit(node)
+ self._output_file.write(" <= ")
+
+ def visit_Mult(self, node):
+ self._handle_bin_op(node, "*")
+
+ def _within_context_manager(self):
+ """Return whether we are within a context manager (with)."""
+ parent = self._stack[-1] if self._stack else None
+ return parent and isinstance(parent, ast.withitem)
+
+ def _ignore_function_def_node(self, node):
+ """Should this node be ignored within a FunctionDef."""
+ if not self._stack:
+ return False
+ parent = self._stack[-1]
+ # A type annotation or default value of an argument?
+ if isinstance(parent, (ast.arguments, ast.arg)):
+ return True
+ if not isinstance(parent, ast.FunctionDef):
+ return False
+ # Return type annotation or decorator call
+ return node == parent.returns or node in parent.decorator_list
+
+ def visit_Index(self, node):
+ self._output_file.write("[")
+ self.generic_visit(node)
+ self._output_file.write("]")
+
+ def visit_Name(self, node):
+ """Format a variable reference (cf visit_Attribute)"""
+ # Skip Context manager variables, return or argument type annotation
+ if self._within_context_manager() or self._ignore_function_def_node(node):
+ return
+ self._output_file.write(format_reference(node))
+
+ def visit_NameConstant(self, node):
+ # Default parameter?
+ if self._ignore_function_def_node(node):
+ return
+ self.generic_visit(node)
+ self._output_file.write(format_name_constant(node))
+
+ def visit_Not(self, node):
+ self.generic_visit(node)
+ self._output_file.write("!")
+
+ def visit_NotEq(self, node):
+ self.generic_visit(node)
+ self._output_file.write(" != ")
+
+ def visit_Num(self, node):
+ self.generic_visit(node)
+ self._output_file.write(format_literal(node))
+
+ def visit_RShift(self, node):
+ self.generic_visit(node)
+ self._output_file.write(" >> ")
+
+ def visit_Return(self, node):
+ self.indent_string("return")
+ if node.value:
+ self._output_file.write(" ")
+ self.generic_visit(node)
+ self._output_file.write(";\n")
+
+ def visit_Slice(self, node):
+ self._output_file.write("[")
+ if node.lower:
+ self.visit(node.lower)
+ self._output_file.write(":")
+ if node.upper:
+ self.visit(node.upper)
+ self._output_file.write("]")
+
+ def visit_Str(self, node):
+ self.generic_visit(node)
+ self._output_file.write(format_literal(node))
+
+ def visit_Sub(self, node):
+ self._handle_bin_op(node, "-")
+
+ def visit_UnOp(self, node):
+ self.generic_visit(node)
+
+ def visit_With(self, node):
+ self.INDENT()
+ self._output_file.write("{ // Converted from context manager\n")
+ self.indent()
+ for item in node.items:
+ self.INDENT()
+ if item.optional_vars:
+ self._output_file.write(format_reference(item.optional_vars))
+ self._output_file.write(" = ")
+ self.generic_visit(node)
+ self.dedent()
+ self.INDENT()
+ self._output_file.write("}\n")
+
+ def _debug_enter(self, node, parent=None):
+ message = '{}>generic_visit({})'.format(' ' * self ._debug_indent,
+ debug_format_node(node))
+ if parent:
+ message += ', parent={}'.format(debug_format_node(parent))
+ message += '\n'
+ sys.stderr.write(message)
+ self._debug_indent += 1
+
+ def _debug_leave(self, node):
+ self._debug_indent -= 1
+ message = '{}<generic_visit({})\n'.format(' ' * self ._debug_indent,
+ type(node).__name__)
+ sys.stderr.write(message)
diff --git a/sources/pyside-tools/requirements-android.txt b/sources/pyside-tools/requirements-android.txt
new file mode 100644
index 000000000..1169fd663
--- /dev/null
+++ b/sources/pyside-tools/requirements-android.txt
@@ -0,0 +1,2 @@
+jinja2
+pkginfo
diff --git a/sources/pyside6/.cmake.conf b/sources/pyside6/.cmake.conf
new file mode 100644
index 000000000..201688f47
--- /dev/null
+++ b/sources/pyside6/.cmake.conf
@@ -0,0 +1,5 @@
+set(pyside_MAJOR_VERSION "6")
+set(pyside_MINOR_VERSION "7")
+set(pyside_MICRO_VERSION "0")
+set(pyside_PRE_RELEASE_VERSION_TYPE "a")
+set(pyside_PRE_RELEASE_VERSION "1")
diff --git a/sources/pyside6/CMakeLists.txt b/sources/pyside6/CMakeLists.txt
index 1fd652e6a..f45c07114 100644
--- a/sources/pyside6/CMakeLists.txt
+++ b/sources/pyside6/CMakeLists.txt
@@ -1,262 +1,45 @@
-include(cmake/Macros/icecc.cmake) # this must be the first line!
-
-cmake_minimum_required(VERSION 3.16)
-cmake_policy(VERSION 3.16)
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
-# Don't ignore targets that do not exist, inside add_dependencies calls.
-cmake_policy(SET CMP0046 NEW)
+include(cmake/Macros/icecc.cmake) # this must be the first line!
-set (QT_MAJOR_VERSION 6)
+cmake_minimum_required(VERSION 3.18)
+cmake_policy(VERSION 3.18)
+include(".cmake.conf")
project(pysidebindings)
-set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../cmake_helpers/
- ${CMAKE_CURRENT_SOURCE_DIR}/../shiboken6/data/
- ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Macros/
- ${CMAKE_MODULE_PATH})
-include(shiboken_helpers)
-include(helpers)
-
-# Don't display "up-to-date / install" messages when installing, to reduce visual clutter.
-if (QUIET_BUILD)
- set(CMAKE_INSTALL_MESSAGE NEVER)
-endif()
-
-# Override message not to display info messages when doing a quiet build.
-if (QUIET_BUILD AND is_pyside6_superproject_build)
- function(message)
- list(GET ARGV 0 MessageType)
- if (MessageType STREQUAL FATAL_ERROR OR
- MessageType STREQUAL SEND_ERROR OR
- MessageType STREQUAL WARNING OR
- MessageType STREQUAL AUTHOR_WARNING)
- list(REMOVE_AT ARGV 0)
- _message(${MessageType} "${ARGV}")
- endif()
- endfunction()
-endif()
-
-set(PYSIDE_VERSION_FILE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/pyside_version.py")
-set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS
- ${PYSIDE_VERSION_FILE_PATH}
-)
-execute_process(
- COMMAND ${PYTHON_EXECUTABLE} "${PYSIDE_VERSION_FILE_PATH}"
- OUTPUT_VARIABLE PYSIDE_VERSION_OUTPUT
- ERROR_VARIABLE PYSIDE_VERSION_OUTPUT_ERROR
- OUTPUT_STRIP_TRAILING_WHITESPACE)
-if (NOT PYSIDE_VERSION_OUTPUT)
- message(FATAL_ERROR "Could not identify PySide6 version. Error: ${PYSIDE_VERSION_OUTPUT_ERROR}")
-endif()
-
-list(GET PYSIDE_VERSION_OUTPUT 0 BINDING_API_MAJOR_VERSION)
-list(GET PYSIDE_VERSION_OUTPUT 1 BINDING_API_MINOR_VERSION)
-list(GET PYSIDE_VERSION_OUTPUT 2 BINDING_API_MICRO_VERSION)
-# a - alpha, b - beta, rc - rc
-list(GET PYSIDE_VERSION_OUTPUT 3 BINDING_API_PRE_RELEASE_VERSION_TYPE)
-# the number of the pre release (alpha1, beta3, rc7, etc.)
-list(GET PYSIDE_VERSION_OUTPUT 4 BINDING_API_PRE_RELEASE_VERSION)
-
-if (WIN32)
- set(PATH_SEP "\;")
-else()
- set(PATH_SEP ":")
-endif()
-
-find_package(Shiboken6 2.0.0 REQUIRED)
-
-if(NOT CMAKE_BUILD_TYPE)
- set(CMAKE_BUILD_TYPE "${SHIBOKEN_BUILD_TYPE}" CACHE STRING "Build Type")
-endif()
-
-if (CMAKE_BUILD_TYPE STREQUAL "Release")
- add_definitions("-DNDEBUG")
-endif()
-
-if (SHIBOKEN_PYTHON_LIMITED_API)
- message(STATUS "******************************************************")
- message(STATUS "** PySide6 Limited API enabled.")
- message(STATUS "******************************************************")
-endif()
-
-find_package(Qt${QT_MAJOR_VERSION} 6.0 REQUIRED COMPONENTS Core)
-add_definitions(${Qt${QT_MAJOR_VERSION}Core_DEFINITIONS})
-
-option(BUILD_TESTS "Build tests." TRUE)
-option(ENABLE_VERSION_SUFFIX "Used to use current version in suffix to generated files. This is used to allow multiples versions installed simultaneous." FALSE)
-set(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)" )
-set(LIB_INSTALL_DIR "lib${LIB_SUFFIX}" CACHE PATH "The subdirectory relative to the install prefix where libraries will be installed (default is /lib${LIB_SUFFIX})" FORCE)
-if(CMAKE_HOST_APPLE)
- set(ALTERNATIVE_QT_INCLUDE_DIR "" CACHE PATH "Deprecated. CMake now finds the proper include dir itself.")
- set(OSX_USE_LIBCPP "OFF" CACHE BOOL "Explicitly link the libc++ standard library (useful for osx deployment targets lower than 10.9.")
- if(OSX_USE_LIBCPP)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
- endif()
-endif()
-
-# Force usage of the C++17 standard
-set(CMAKE_CXX_STANDARD 17)
-set(CMAKE_CXX_STANDARD_REQUIRED ON)
-
-# Obtain QT_INCLUDE_DIR from INTERFACE_INCLUDE_DIRECTORIES which returns a list
-# ../install-qt-6/include/QtCore;../install-qt-6/include
-set(QT_INCLUDE_DIR "")
-get_target_property(QT_INCLUDE_DIR_LIST Qt6::Core INTERFACE_INCLUDE_DIRECTORIES)
-foreach(_Q ${QT_INCLUDE_DIR_LIST})
- if(NOT "${_Q}" MATCHES "QtCore$")
- set(QT_INCLUDE_DIR "${_Q}")
- endif()
-endforeach()
-if (QT_INCLUDE_DIR STREQUAL "")
- message(FATAL_ERROR "Unable to obtain the Qt include directory")
-endif()
-
-# On macOS, check if Qt is a framework build. This affects how include paths should be handled.
-get_target_property(QtCore_is_framework Qt${QT_MAJOR_VERSION}::Core FRAMEWORK)
-
-if (QtCore_is_framework)
- # Get the path to the framework dir.
- set(QT_FRAMEWORK_INCLUDE_DIR "${QT6_INSTALL_PREFIX}/${QT6_INSTALL_LIBS}")
- message(STATUS "*** QT_FRAMEWORK_INCLUDE_DIR is ${QT_FRAMEWORK_INCLUDE_DIR}")
- set(QT_INCLUDE_DIR "${QT6_INSTALL_PREFIX}/${QT6_INSTALL_HEADERS}")
-endif()
-
-set_cmake_cxx_flags()
+include(cmake/PySideSetup.cmake)
-message(STATUS "*** computed QT_INCLUDE_DIR as ${QT_INCLUDE_DIR}")
+get_rpath_base_token(base)
-set(BINDING_NAME PySide6)
-
-set(BINDING_API_VERSION "${BINDING_API_MAJOR_VERSION}.${BINDING_API_MINOR_VERSION}.${BINDING_API_MICRO_VERSION}" CACHE STRING "PySide6 version" FORCE)
-set(PYSIDE_SO_VERSION ${BINDING_API_MAJOR_VERSION}.${BINDING_API_MINOR_VERSION})
-if (BINDING_API_PRE_RELEASE_VERSION_TYPE STREQUAL "")
- set(BINDING_API_VERSION_FULL "${BINDING_API_MAJOR_VERSION}.${BINDING_API_MINOR_VERSION}.${BINDING_API_MICRO_VERSION}"
- CACHE STRING "PySide6 version [full]" FORCE)
+if (${STANDALONE})
+ set(CMAKE_INSTALL_RPATH ${base}/ ${base}/Qt/lib ${base}/../shiboken6/)
else()
- set(BINDING_API_VERSION_FULL "${BINDING_API_MAJOR_VERSION}.${BINDING_API_MINOR_VERSION}.${BINDING_API_MICRO_VERSION}~${BINDING_API_PRE_RELEASE_VERSION_TYPE}${BINDING_API_PRE_RELEASE_VERSION}"
- CACHE STRING "PySide6 version [full]" FORCE)
-endif()
-
-compute_config_py_values(BINDING_API_VERSION)
-
-include(PySideModules)
-
-# Set default values for pyside6_global.h
-set (Qt${QT_MAJOR_VERSION}Test_FOUND "0")
-set (Qt${QT_MAJOR_VERSION}Widgets_FOUND "0")
-
-collect_essential_modules()
-collect_optional_modules()
-
-# Modules to be built unless specified by -DMODULES on command line
-if (NOT MODULES)
- set(MODULES "${ALL_ESSENTIAL_MODULES};${ALL_OPTIONAL_MODULES}")
-endif()
-
-# This will contain the set of modules for which bindings are not built.
-set(DISABLED_MODULES "${ALL_ESSENTIAL_MODULES};${ALL_OPTIONAL_MODULES}")
-
-remove_skipped_modules()
-
-# Mark all non-collected modules as disabled. This is used for disabling tests
-# that depend on the disabled modules.
-foreach(m ${DISABLED_MODULES})
- set(DISABLE_Qt${m} 1)
-endforeach()
-
-
-string(REGEX MATCHALL "[0-9]+" qt_version_helper "${Qt${QT_MAJOR_VERSION}Core_VERSION}")
-
-list(GET qt_version_helper 0 QT_VERSION_MAJOR)
-list(GET qt_version_helper 1 QT_VERSION_MINOR)
-list(GET qt_version_helper 2 QT_VERSION_PATCH)
-unset(qt_version_helper)
-
-set(PYSIDE_QT_VERSION "${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}" CACHE STRING "Qt version used to compile PySide" FORCE)
-if(ENABLE_VERSION_SUFFIX)
- set(pyside_SUFFIX "-${BINDING_API_MAJOR_VERSION}.${BINDING_API_MINOR_VERSION}")
-endif()
-
-# no more supported: include(${QT_USE_FILE})
-
-# Configure OS support
-check_os()
-
-# Define supported Qt Version
-set(SUPPORTED_QT_VERSION "${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}")
-
-
-# uninstall target
-configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake"
- "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
- IMMEDIATE @ONLY)
-
-# When opening super project, prevent redefinition of uninstall target.
-if (NOT TARGET uninstall)
- add_custom_target(uninstall "${CMAKE_COMMAND}"
- -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
-endif()
-
-if (NOT PYTHON_SITE_PACKAGES)
- execute_process(
- COMMAND ${SHIBOKEN_PYTHON_INTERPRETER} -c "if True:
- from distutils import sysconfig
- from os import sep
- print(sysconfig.get_python_lib(1, 0, prefix='${CMAKE_INSTALL_PREFIX}').replace(sep, '/'))
- "
- OUTPUT_VARIABLE PYTHON_SITE_PACKAGES
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- if (NOT PYTHON_SITE_PACKAGES)
- message(FATAL_ERROR "Could not detect Python module installation directory.")
- elseif (APPLE)
- message(STATUS "!!! The generated bindings will be installed on ${PYTHON_SITE_PACKAGES}, is it right!?")
- endif()
+ set(CMAKE_INSTALL_RPATH ${base}/ ${QT6_INSTALL_PREFIX}/${QT6_INSTALL_LIBS} ${base}/../shiboken6/)
endif()
-set(GENERATOR_EXTRA_FLAGS --generator-set=shiboken
- --enable-parent-ctor-heuristic
- --enable-pyside-extensions
- --enable-return-value-heuristic
- --use-isnull-as-nb_nonzero)
-use_protected_as_public_hack()
+add_subdirectory(libpyside)
-# Build with Address sanitizer enabled if requested. This may break things, so use at your own risk.
-if (SANITIZE_ADDRESS AND NOT MSVC)
- setup_sanitize_address()
+if(Qt${QT_MAJOR_VERSION}Qml_FOUND)
+ add_subdirectory(libpysideqml)
endif()
-#####################################################################
-# Adding sub-directories to build
-#####################################################################
-
-add_subdirectory(libpyside)
-find_package(Qt${QT_MAJOR_VERSION}Designer)
-if(Qt${QT_MAJOR_VERSION}UiTools_FOUND AND Qt${QT_MAJOR_VERSION}Designer_FOUND)
+if(Qt${QT_MAJOR_VERSION}UiTools_FOUND)
add_subdirectory(plugins/uitools)
- add_subdirectory(plugins/designer)
+ find_package(Qt6 COMPONENTS Designer)
+ # PYSIDE-535: Enable when PyPy supports embedding
+ if (Qt${QT_MAJOR_VERSION}Designer_FOUND AND NOT PYPY_VERSION)
+ add_subdirectory(plugins/designer)
+ endif()
endif()
-# project directories
add_subdirectory(PySide6)
-if (BUILD_TESTS)
+if(BUILD_TESTS)
enable_testing()
add_subdirectory(tests)
-endif ()
+endif()
-find_program(SPHINX_BUILD sphinx-build)
-find_program(DOT_EXEC dot)
+add_subdirectory(doc)
-if (QT_SRC_DIR AND SPHINX_BUILD AND DOT_EXEC AND NOT SKIP_DOCS)
- add_subdirectory(doc)
-else ()
- set(DOCS_TARGET_DISABLED_MESSAGE "apidoc generation targets disabled.")
- if (NOT QT_SRC_DIR)
- message(STATUS "QT_SRC_DIR variable not set, ${DOCS_TARGET_DISABLED_MESSAGE}")
- elseif (NOT SPHINX_BUILD)
- message(STATUS "sphinx-build command not found, ${DOCS_TARGET_DISABLED_MESSAGE}")
- elseif (NOT DOT_EXEC)
- message(STATUS "graphviz not found, ${DOCS_TARGET_DISABLED_MESSAGE}")
- else()
- message(STATUS "Unknown issue occurred, ${DOCS_TARGET_DISABLED_MESSAGE}")
- endif()
-endif()
+add_subdirectory(qtexampleicons)
diff --git a/sources/pyside6/PySide6/CMakeLists.txt b/sources/pyside6/PySide6/CMakeLists.txt
index 68ce0d2b8..37b7a6c9c 100644
--- a/sources/pyside6/PySide6/CMakeLists.txt
+++ b/sources/pyside6/PySide6/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(pyside6)
# Configure include based on platform
@@ -8,6 +11,8 @@ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/__init__.py.in"
"${CMAKE_CURRENT_BINARY_DIR}/__init__.py" @ONLY)
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/_config.py.in"
"${CMAKE_CURRENT_BINARY_DIR}/_config.py" @ONLY)
+configure_file("${CMAKE_CURRENT_SOURCE_DIR}/__feature__.pyi.in"
+ "${CMAKE_CURRENT_BINARY_DIR}/__feature__.pyi" @ONLY)
# typing support for mypy
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/py.typed.in"
"${CMAKE_CURRENT_BINARY_DIR}/py.typed" @ONLY)
@@ -88,6 +93,10 @@ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/_config.py"
DESTINATION "${PYTHON_SITE_PACKAGES}/${BINDING_NAME}${pyside6_SUFFIX}")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/_git_pyside_version.py"
DESTINATION "${PYTHON_SITE_PACKAGES}/${BINDING_NAME}${pyside6_SUFFIX}")
+install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/support"
+ DESTINATION "${PYTHON_SITE_PACKAGES}/${BINDING_NAME}${pyside6_SUFFIX}")
+install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/templates/common.xml
+ DESTINATION share/PySide6${pyside_SUFFIX}/typesystems)
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/templates/core_common.xml
DESTINATION share/PySide6${pyside_SUFFIX}/typesystems)
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/templates/gui_common.xml
@@ -100,3 +109,6 @@ install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/templates/opengl_common.xml
DESTINATION share/PySide6${pyside_SUFFIX}/typesystems)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pyside6_global.h
DESTINATION include/${BINDING_NAME}${pyside6_SUFFIX})
+
+install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/QtAsyncio"
+ DESTINATION "${PYTHON_SITE_PACKAGES}/${BINDING_NAME}${pyside6_SUFFIX}")
diff --git a/sources/pyside6/PySide6/Qt3DAnimation/CMakeLists.txt b/sources/pyside6/PySide6/Qt3DAnimation/CMakeLists.txt
index e81882e79..d9169924e 100644
--- a/sources/pyside6/PySide6/Qt3DAnimation/CMakeLists.txt
+++ b/sources/pyside6/PySide6/Qt3DAnimation/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(Qt3DAnimation)
set(Qt3DAnimation_SRC
@@ -16,6 +19,7 @@ ${Qt3DAnimation_GEN_DIR}/qt3danimation_qanimationcliploader_wrapper.cpp
${Qt3DAnimation_GEN_DIR}/qt3danimation_qanimationcontroller_wrapper.cpp
${Qt3DAnimation_GEN_DIR}/qt3danimation_qanimationgroup_wrapper.cpp
${Qt3DAnimation_GEN_DIR}/qt3danimation_qblendedclipanimator_wrapper.cpp
+${Qt3DAnimation_GEN_DIR}/qt3danimation_qcallbackmapping_wrapper.cpp
${Qt3DAnimation_GEN_DIR}/qt3danimation_qchannel_wrapper.cpp
${Qt3DAnimation_GEN_DIR}/qt3danimation_qchannelcomponent_wrapper.cpp
${Qt3DAnimation_GEN_DIR}/qt3danimation_qchannelmapper_wrapper.cpp
@@ -39,12 +43,14 @@ set(Qt3DAnimation_include_dirs
${pyside6_SOURCE_DIR}
${Qt${QT_MAJOR_VERSION}Core_INCLUDE_DIRS}
${Qt${QT_MAJOR_VERSION}Gui_INCLUDE_DIR}
+ ${Qt${QT_MAJOR_VERSION}OpenGL_INCLUDE_DIRS}
${Qt${QT_MAJOR_VERSION}3DCore_INCLUDE_DIRS}
${Qt${QT_MAJOR_VERSION}3DRender_INCLUDE_DIRS}
${Qt${QT_MAJOR_VERSION}3DAnimation_INCLUDE_DIRS}
${libpyside_SOURCE_DIR}
${QtCore_GEN_DIR}
${QtGui_GEN_DIR}
+ ${QtOpenGL_GEN_DIR}
${Qt3DCore_GEN_DIR}
${Qt3DRender_GEN_DIR}
${Qt3DAnimation_GEN_DIR})
diff --git a/sources/pyside6/PySide6/Qt3DAnimation/typesystem_3danimation.xml b/sources/pyside6/PySide6/Qt3DAnimation/typesystem_3danimation.xml
index 6916dcd25..61af82d6d 100644
--- a/sources/pyside6/PySide6/Qt3DAnimation/typesystem_3danimation.xml
+++ b/sources/pyside6/PySide6/Qt3DAnimation/typesystem_3danimation.xml
@@ -1,50 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.Qt3DAnimation">
+<typesystem package="PySide6.Qt3DAnimation"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="Qt3DRender/typesystem_3drender.xml" generate="no"/>
<namespace-type name="Qt3DAnimation">
<object-type name="QAbstractAnimation">
<enum-type name="AnimationType"/>
+ <!-- Disambiguate from QtCore/qabstractanimation.h -->
+ <include file-name="Qt3DAnimation/qabstractanimation.h" location="global"/>
</object-type>
<object-type name="QAbstractAnimationClip"/>
<value-type name="QAnimationClipData" since="6.1"/>
@@ -63,10 +30,14 @@
<enum-type name="Status"/>
</object-type>
<object-type name="QAnimationController"/>
- <object-type name="QAnimationGroup"/>
+ <object-type name="QAnimationGroup">
+ <!-- Disambiguate from QtCore/qanimationgroup.h -->
+ <include file-name="Qt3DAnimation/qanimationgroup.h" location="global"/>
+ </object-type>
<object-type name="QBlendedClipAnimator"/>
<value-type name="QChannel"/>
<value-type name="QChannelComponent"/>
+ <object-type name="QCallbackMapping"/>
<object-type name="QChannelMapper" since="6.1"/>
<object-type name="QChannelMapping"/>
<object-type name="QClipAnimator"/>
diff --git a/sources/pyside6/PySide6/Qt3DCore/CMakeLists.txt b/sources/pyside6/PySide6/Qt3DCore/CMakeLists.txt
index 10c4477fa..cd2699f11 100644
--- a/sources/pyside6/PySide6/Qt3DCore/CMakeLists.txt
+++ b/sources/pyside6/PySide6/Qt3DCore/CMakeLists.txt
@@ -1,6 +1,12 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(Qt3DCore)
set(Qt3DCore_SRC
+${Qt3DCore_GEN_DIR}/qsharedpointer_qaspectjob_wrapper.cpp
+${Qt3DCore_GEN_DIR}/qsharedpointer_qbackendnodemapper_wrapper.cpp
+${Qt3DCore_GEN_DIR}/qsharedpointer_qentity_wrapper.cpp
${Qt3DCore_GEN_DIR}/qt3dcore_qabstractaspect_wrapper.cpp
${Qt3DCore_GEN_DIR}/qt3dcore_qabstractfunctor_wrapper.cpp
${Qt3DCore_GEN_DIR}/qt3dcore_qabstractskeleton_wrapper.cpp
@@ -13,6 +19,7 @@ ${Qt3DCore_GEN_DIR}/qt3dcore_qbackendnodemapper_wrapper.cpp
${Qt3DCore_GEN_DIR}/qt3dcore_qboundingvolume_wrapper.cpp
${Qt3DCore_GEN_DIR}/qt3dcore_qbuffer_wrapper.cpp
${Qt3DCore_GEN_DIR}/qt3dcore_qcomponent_wrapper.cpp
+${Qt3DCore_GEN_DIR}/qt3dcore_qcoreaspect_wrapper.cpp
${Qt3DCore_GEN_DIR}/qt3dcore_qcoresettings_wrapper.cpp
${Qt3DCore_GEN_DIR}/qt3dcore_qentity_wrapper.cpp
${Qt3DCore_GEN_DIR}/qt3dcore_qgeometry_wrapper.cpp
diff --git a/sources/pyside6/PySide6/Qt3DCore/typesystem_3dcore.xml b/sources/pyside6/PySide6/Qt3DCore/typesystem_3dcore.xml
index ffe3fd958..985c459b6 100644
--- a/sources/pyside6/PySide6/Qt3DCore/typesystem_3dcore.xml
+++ b/sources/pyside6/PySide6/Qt3DCore/typesystem_3dcore.xml
@@ -1,54 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.Qt3DCore">
+<typesystem package="PySide6.Qt3DCore"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="QtGui/typesystem_gui.xml" generate="no"/>
+ <smart-pointer-type name="QSharedPointer" type="shared" getter="data"
+ reset-method="reset"
+ instantiations="Qt3DCore::QAspectJob=Qt3DCore::QAspectJobPtr,Qt3DCore::QBackendNodeMapper=Qt3DCore::QBackendNodeMapperPtr,Qt3DCore::QEntity=Qt3DCore::QEntityPtr"/>
<namespace-type name="Qt3DCore" generate-using="no">
<object-type name="QAbstractAspect"/>
- <object-type name="QAbstractFunctor" since="6.0"/>
- <object-type name="QAbstractSkeleton" since="5.10"/>
- <object-type name="QArmature" since="5.10"/>
+ <object-type name="QAbstractFunctor"/>
+ <object-type name="QAbstractSkeleton"/>
+ <object-type name="QArmature"/>
<object-type name="QAspectEngine">
- <enum-type name="RunMode" since="5.14"/>
+ <enum-type name="RunMode"/>
<modify-function signature="registerAspect(Qt3DCore::QAbstractAspect*)">
<modify-argument index="this">
<parent index="1" action="add"/>
@@ -67,10 +35,12 @@
<!-- TODO: Solve issues related to windows and a unresolved
external symbol
<object-type name="QBackendNodeMapper"/>-->
- <object-type name="QBoundingVolume" since="6.0"/>
- <object-type name="QBuffer" since="6.0">
+ <object-type name="QBoundingVolume"/>
+ <object-type name="QBuffer">
<enum-type name="AccessType"/>
<enum-type name="UsageType"/>
+ <!-- Disambiguate from QtCore/qbuffer.h -->
+ <include file-name="Qt3DCore/qbuffer.h" location="global"/>
</object-type>
<object-type name="QComponent"/>
<object-type name="QEntity">
@@ -80,12 +50,13 @@
</modify-argument>
</modify-function>
</object-type>
+ <object-type name="QCoreAspect"/>
<object-type name="QCoreSettings"/>
- <object-type name="QGeometry" since="6.0"/>
- <object-type name="QGeometryView" since="6.0">
+ <object-type name="QGeometry"/>
+ <object-type name="QGeometryView">
<enum-type name="PrimitiveType"/>
</object-type>
- <object-type name="QJoint" since="5.10">
+ <object-type name="QJoint">
<modify-function signature="addChildJoint(Qt3DCore::QJoint*)">
<modify-argument index="this">
<parent index="1" action="add"/>
@@ -95,8 +66,8 @@
<object-type name="QNode"/>
<value-type name="QNodeId"/>
<value-type name="QNodeIdTypePair"/>
- <object-type name="QSkeleton" since="5.10"/>
- <object-type name="QSkeletonLoader" since="5.10">
+ <object-type name="QSkeleton"/>
+ <object-type name="QSkeletonLoader">
<enum-type name="Status"/>
</object-type>
<object-type name="QTransform">
@@ -105,6 +76,7 @@
</object-type>
</namespace-type>
- <!-- reject Qt enum helper functions in Qt3D namespaces -->
- <rejection class="^Qt3D.*$" function-name="^qt_getEnum.*$"/>
+ <!-- QtNetwork is pulled in via QtBluetoothDepends. -->
+ <suppress-warning text="^Scoped enum 'Q(Ocsp)|(Dtls).*' does not have a type entry.*$"/>
+
</typesystem>
diff --git a/sources/pyside6/PySide6/Qt3DExtras/CMakeLists.txt b/sources/pyside6/PySide6/Qt3DExtras/CMakeLists.txt
index 181672c34..6f6f637fe 100644
--- a/sources/pyside6/PySide6/Qt3DExtras/CMakeLists.txt
+++ b/sources/pyside6/PySide6/Qt3DExtras/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(Qt3DExtras)
set(Qt3DExtras_SRC
@@ -57,12 +60,14 @@ set(Qt3DExtras_include_dirs
${pyside6_SOURCE_DIR}
${Qt${QT_MAJOR_VERSION}Core_INCLUDE_DIRS}
${Qt${QT_MAJOR_VERSION}Gui_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}OpenGL_INCLUDE_DIRS}
${Qt${QT_MAJOR_VERSION}3DCore_INCLUDE_DIRS}
${Qt${QT_MAJOR_VERSION}3DRender_INCLUDE_DIRS}
${Qt${QT_MAJOR_VERSION}3DExtras_INCLUDE_DIRS}
${libpyside_SOURCE_DIR}
${QtCore_GEN_DIR}
${QtGui_GEN_DIR}
+ ${QtOpenGL_GEN_DIR}
${Qt3DCore_GEN_DIR}
${Qt3DRender_GEN_DIR})
diff --git a/sources/pyside6/PySide6/Qt3DExtras/typesystem_3dextras.xml b/sources/pyside6/PySide6/Qt3DExtras/typesystem_3dextras.xml
index 3f0523d1a..d281ae15f 100644
--- a/sources/pyside6/PySide6/Qt3DExtras/typesystem_3dextras.xml
+++ b/sources/pyside6/PySide6/Qt3DExtras/typesystem_3dextras.xml
@@ -1,52 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.Qt3DExtras">
+<typesystem package="PySide6.Qt3DExtras"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="Qt3DRender/typesystem_3drender.xml" generate="no"/>
<namespace-type name="Qt3DExtras">
- <object-type name="QAbstractCameraController" since="5.10">
+ <object-type name="QAbstractCameraController">
<value-type name="InputState"/>
</object-type>
- <object-type name="QAbstractSpriteSheet" since="5.10"/>
+ <object-type name="QAbstractSpriteSheet"/>
<object-type name="QConeGeometry"/>
<object-type name="QConeMesh"/>
<object-type name="QConeGeometryView"/>
@@ -57,7 +22,7 @@
<object-type name="QCylinderGeometryView"/>
<object-type name="QCylinderMesh"/>
<object-type name="QDiffuseMapMaterial"/>
- <object-type name="QDiffuseSpecularMaterial" since="5.10"/>
+ <object-type name="QDiffuseSpecularMaterial"/>
<object-type name="QDiffuseSpecularMapMaterial"/>
<object-type name="QExtrudedTextGeometry"/>
<object-type name="QExtrudedTextMesh"/>
@@ -80,9 +45,9 @@
<object-type name="QSphereGeometry"/>
<object-type name="QSphereGeometryView"/>
<object-type name="QSphereMesh"/>
- <object-type name="QSpriteGrid" since="5.10"/>
- <object-type name="QSpriteSheet" since="5.10"/>
- <object-type name="QSpriteSheetItem" since="5.10"/>
+ <object-type name="QSpriteGrid"/>
+ <object-type name="QSpriteSheet"/>
+ <object-type name="QSpriteSheetItem"/>
<object-type name="QText2DEntity"/>
<object-type name="QTextureMaterial"/>
<object-type name="QTorusGeometry"/>
diff --git a/sources/pyside6/PySide6/Qt3DInput/CMakeLists.txt b/sources/pyside6/PySide6/Qt3DInput/CMakeLists.txt
index 6a58dc881..c27c27718 100644
--- a/sources/pyside6/PySide6/Qt3DInput/CMakeLists.txt
+++ b/sources/pyside6/PySide6/Qt3DInput/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(Qt3DInput)
set(Qt3DInput_SRC
diff --git a/sources/pyside6/PySide6/Qt3DInput/typesystem_3dinput.xml b/sources/pyside6/PySide6/Qt3DInput/typesystem_3dinput.xml
index 0df357d19..fbdfc5961 100644
--- a/sources/pyside6/PySide6/Qt3DInput/typesystem_3dinput.xml
+++ b/sources/pyside6/PySide6/Qt3DInput/typesystem_3dinput.xml
@@ -1,52 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.Qt3DInput">
+<typesystem package="PySide6.Qt3DInput"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="Qt3DCore/typesystem_3dcore.xml" generate="no"/>
<namespace-type name="Qt3DInput">
<object-type name="QAbstractActionInput"/>
<object-type name="QAbstractAxisInput"/>
<object-type name="QAbstractPhysicalDevice"/>
- <object-type name="QAction"/>
+ <object-type name="QAction">
+ <!-- Disambiguate from QtGui/qaction.h -->
+ <include file-name="Qt3DInput/qaction.h" location="global"/>
+ </object-type>
<object-type name="QActionInput"/>
<object-type name="QAnalogAxisInput"/>
<object-type name="QAxis"/>
diff --git a/sources/pyside6/PySide6/Qt3DLogic/CMakeLists.txt b/sources/pyside6/PySide6/Qt3DLogic/CMakeLists.txt
index 2f4105dfa..b9da0cceb 100644
--- a/sources/pyside6/PySide6/Qt3DLogic/CMakeLists.txt
+++ b/sources/pyside6/PySide6/Qt3DLogic/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(Qt3DLogic)
set(Qt3DLogic_SRC
diff --git a/sources/pyside6/PySide6/Qt3DLogic/typesystem_3dlogic.xml b/sources/pyside6/PySide6/Qt3DLogic/typesystem_3dlogic.xml
index ae14b2200..60f362534 100644
--- a/sources/pyside6/PySide6/Qt3DLogic/typesystem_3dlogic.xml
+++ b/sources/pyside6/PySide6/Qt3DLogic/typesystem_3dlogic.xml
@@ -1,46 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.Qt3DLogic">
+<typesystem package="PySide6.Qt3DLogic"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="Qt3DCore/typesystem_3dcore.xml" generate="no"/>
<namespace-type name="Qt3DLogic">
<object-type name="QFrameAction"/>
diff --git a/sources/pyside6/PySide6/Qt3DRender/CMakeLists.txt b/sources/pyside6/PySide6/Qt3DRender/CMakeLists.txt
index a58a3ab87..72f859305 100644
--- a/sources/pyside6/PySide6/Qt3DRender/CMakeLists.txt
+++ b/sources/pyside6/PySide6/Qt3DRender/CMakeLists.txt
@@ -1,6 +1,14 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(Qt3DRender)
+set(Qt3DRender_DROPPED_ENTRIES)
+
set(Qt3DRender_SRC
+${Qt3DRender_GEN_DIR}/qsharedpointer_propertyreaderinterface_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qsharedpointer_qtextureimagedata_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qsharedpointer_qtextureimagedatagenerator_wrapper.cpp
${Qt3DRender_GEN_DIR}/qt3drender_propertyreaderinterface_wrapper.cpp
${Qt3DRender_GEN_DIR}/qt3drender_qabstractlight_wrapper.cpp
${Qt3DRender_GEN_DIR}/qt3drender_qabstractraycaster_wrapper.cpp
@@ -20,6 +28,7 @@ ${Qt3DRender_GEN_DIR}/qt3drender_qclipplane_wrapper.cpp
${Qt3DRender_GEN_DIR}/qt3drender_qcolormask_wrapper.cpp
${Qt3DRender_GEN_DIR}/qt3drender_qcomputecommand_wrapper.cpp
${Qt3DRender_GEN_DIR}/qt3drender_qcullface_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qdebugoverlay_wrapper.cpp
${Qt3DRender_GEN_DIR}/qt3drender_qdepthrange_wrapper.cpp
${Qt3DRender_GEN_DIR}/qt3drender_qdepthtest_wrapper.cpp
${Qt3DRender_GEN_DIR}/qt3drender_qdirectionallight_wrapper.cpp
@@ -128,13 +137,16 @@ set(Qt3DRender_include_dirs
${libpyside_SOURCE_DIR}
${QtCore_GEN_DIR}
${QtGui_GEN_DIR}
- ${QtOpenGL_GEN_DIR}
+
${Qt3DCore_GEN_DIR})
set(Qt3DRender_libraries pyside6
${Qt${QT_MAJOR_VERSION}3DRender_LIBRARIES})
-set(Qt3DRender_deps Qt3DCore QtOpenGL)
+set(Qt3DRender_deps Qt3DCore)
+
+check_qt_opengl("3DRender" Qt3DRender_include_dirs Qt3DRender_deps
+ Qt3DRender_DROPPED_ENTRIES)
create_pyside_module(NAME Qt3DRender
INCLUDE_DIRS Qt3DRender_include_dirs
@@ -142,4 +154,5 @@ create_pyside_module(NAME Qt3DRender
DEPS Qt3DRender_deps
TYPESYSTEM_PATH Qt3DRender_SOURCE_DIR
SOURCES Qt3DRender_SRC
- TYPESYSTEM_NAME ${Qt3DRender_BINARY_DIR}/typesystem_3drender.xml)
+ TYPESYSTEM_NAME ${Qt3DRender_BINARY_DIR}/typesystem_3drender.xml
+ DROPPED_ENTRIES Qt3DRender_DROPPED_ENTRIES)
diff --git a/sources/pyside6/PySide6/Qt3DRender/typesystem_3drender.xml b/sources/pyside6/PySide6/Qt3DRender/typesystem_3drender.xml
index b7eb7b9c8..66fd70927 100644
--- a/sources/pyside6/PySide6/Qt3DRender/typesystem_3drender.xml
+++ b/sources/pyside6/PySide6/Qt3DRender/typesystem_3drender.xml
@@ -1,54 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.Qt3DRender">
+<typesystem package="PySide6.Qt3DRender"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="Qt3DCore/typesystem_3dcore.xml" generate="no"/>
+ <load-typesystem name="QtGui/typesystem_gui.xml" generate="no"/>
+ <!-- PYSIDE-2610: QOpenGLTexture's enums are used -->
+ <?if !no_QtOpenGL?>
+ <load-typesystem name="QtOpenGL/typesystem_opengl.xml" generate="no"/>
+ <?endif?>
+ <smart-pointer-type name="QSharedPointer" type="shared" getter="data"
+ reset-method="reset"
+ instantiations="Qt3DRender::PropertyReaderInterface=Qt3DRender::PropertyReaderInterfacePtr,Qt3DRender::QTextureImageData=Qt3DRender::QTextureImageDataPtr,Qt3DRender::QTextureImageDataGenerator=Qt3DRender::QTextureImageDataGeneratorPtr"/>
<namespace-type name="Qt3DRender">
<enum-type name="API"/>
<object-type name="PropertyReaderInterface"/>
<object-type name="QAbstractLight">
<enum-type name="Type"/>
</object-type>
- <object-type name="QAbstractRayCaster" since="5.11">
+ <object-type name="QAbstractRayCaster">
<enum-type name="RunMode"/>
<enum-type name="FilterMode"/>
</object-type>
@@ -56,15 +29,13 @@
<enum-type name="CubeMapFace"/>
<enum-type name="ComparisonFunction"/>
<enum-type name="ComparisonMode"/>
- <enum-type name="HandleType" since="5.13"/>
+ <enum-type name="HandleType"/>
<enum-type name="Filter"/>
<enum-type name="Status"/>
<enum-type name="Target"/>
<enum-type name="TextureFormat"/>
</object-type>
- <object-type name="QAbstractTextureImage">
- <modify-function signature="QAbstractTextureImage(Qt3DCore::QNode*)" remove="all"/>
- </object-type>
+ <object-type name="QAbstractTextureImage"/>
<object-type name="QAlphaCoverage"/>
<object-type name="QAlphaTest">
<enum-type name="AlphaFunction"/>
@@ -75,7 +46,7 @@
<object-type name="QBlendEquationArguments">
<enum-type name="Blending"/>
</object-type>
- <object-type name="QBlitFramebuffer" since="5.10">
+ <object-type name="QBlitFramebuffer">
<enum-type name="InterpolationMethod"/>
</object-type>
<object-type name="QBufferCapture"/>
@@ -92,11 +63,12 @@
<object-type name="QClipPlane"/>
<object-type name="QColorMask"/>
<object-type name="QComputeCommand">
- <enum-type name="RunType" since="5.13"/>
+ <enum-type name="RunType"/>
</object-type>
<object-type name="QCullFace">
<enum-type name="CullingMode"/>
</object-type>
+ <object-type name="QDebugOverlay"/>
<object-type name="QDepthRange"/>
<object-type name="QDepthTest">
<enum-type name="DepthFunction"/>
@@ -118,6 +90,11 @@
<object-type name="QGraphicsApiFilter">
<enum-type name="Api"/>
<enum-type name="OpenGLProfile"/>
+ <!-- only Q_AUTOTEST_EXPORT -->
+ <modify-function signature="operator==(Qt3DRender::QGraphicsApiFilter,Qt3DRender::QGraphicsApiFilter)"
+ remove="all"/>
+ <modify-function signature="operator!=(Qt3DRender::QGraphicsApiFilter,Qt3DRender::QGraphicsApiFilter)"
+ remove="all"/>
</object-type>
<object-type name="QLayer"/>
<object-type name="QLayerFilter">
@@ -128,7 +105,7 @@
</object-type>
<object-type name="QLevelOfDetailBoundingSphere"/>
<object-type name="QLevelOfDetailSwitch"/>
- <object-type name="QLineWidth" since="5.10"/>
+ <object-type name="QLineWidth"/>
<object-type name="QMaterial"/>
<object-type name="QMemoryBarrier">
<enum-type name="Operation" flags="Operations"/>
@@ -139,7 +116,7 @@
<object-type name="QMultiSampleAntiAliasing"/>
<object-type name="QNoDepthMask"/>
<object-type name="QNoDraw"/>
- <object-type name="QNoPicking" since="5.14"/>
+ <object-type name="QNoPicking"/>
<object-type name="QObjectPicker"/>
<object-type name="QPaintedTextureImage"/>
<object-type name="QParameter"/>
@@ -148,8 +125,8 @@
<enum-type name="Modifiers"/>
</object-type>
<object-type name="QPickingProxy"/>
- <object-type name="QPickLineEvent" since="5.10"/>
- <object-type name="QPickPointEvent" since="5.10"/>
+ <object-type name="QPickLineEvent"/>
+ <object-type name="QPickPointEvent"/>
<object-type name="QPickTriangleEvent"/>
<object-type name="QPickingSettings">
<enum-type name="FaceOrientationPickingMode"/>
@@ -161,19 +138,19 @@
<enum-type name="SizeMode"/>
</object-type>
<object-type name="QPolygonOffset"/>
- <object-type name="QProximityFilter" since="5.10"/>
+ <object-type name="QProximityFilter"/>
<object-type name="QRasterMode">
<enum-type name="RasterMode"/>
<enum-type name="FaceMode"/>
</object-type>
- <object-type name="QRayCaster" since="5.11"/>
- <value-type name="QRayCasterHit" since="5.11">
+ <object-type name="QRayCaster"/>
+ <value-type name="QRayCasterHit">
<enum-type name="HitType"/>
</value-type>
<object-type name="QRenderAspect">
<enum-type name="SubmissionType"/>
</object-type>
- <object-type name="QRenderCapabilities" since="5.15">
+ <object-type name="QRenderCapabilities">
<enum-type name="API"/>
<enum-type name="Profile"/>
</object-type>
@@ -197,9 +174,9 @@
<enum-type name="ComponentType"/>
</object-type>
<object-type name="QScissorTest"/>
- <object-type name="QScreenRayCaster" since="5.11"/>
+ <object-type name="QScreenRayCaster"/>
<object-type name="QSeamlessCubemap"/>
- <object-type name="QSetFence" since="5.13">
+ <object-type name="QSetFence">
<enum-type name="HandleType"/>
</object-type>
<object-type name="QShaderData"/>
@@ -208,12 +185,12 @@
<enum-type name="ShaderType"/>
<enum-type name="Status"/>
</object-type>
- <object-type name="QShaderImage" since="5.14">
+ <object-type name="QShaderImage">
<enum-type name="Access"/>
<enum-type name="ImageFormat"/>
</object-type>
- <object-type name="QShaderProgramBuilder" since="5.10"/>
- <object-type name="QSharedGLTexture" since="5.13"/>
+ <object-type name="QShaderProgramBuilder"/>
+ <object-type name="QSharedGLTexture"/>
<object-type name="QSortPolicy">
<enum-type name="SortType"/>
</object-type>
@@ -250,16 +227,14 @@
<enum-type name="Status"/>
</object-type>
<object-type name="QTextureImageData"/>
- <object-type name="QTextureImageDataGenerator">
- <modify-function signature="QTextureImageDataGenerator()" remove="all"/>
- </object-type>
+ <object-type name="QTextureImageDataGenerator"/>
<object-type name="QTextureLoader"/>
<object-type name="QTextureRectangle"/>
<object-type name="QTextureWrapMode">
<enum-type name="WrapMode"/>
</object-type>
<object-type name="QViewport"/>
- <object-type name="QWaitFence" since="5.13">
+ <object-type name="QWaitFence">
<enum-type name="HandleType"/>
</object-type>
</namespace-type>
diff --git a/sources/pyside6/PySide6/QtAsyncio/__init__.py b/sources/pyside6/PySide6/QtAsyncio/__init__.py
new file mode 100644
index 000000000..4baa8134e
--- /dev/null
+++ b/sources/pyside6/PySide6/QtAsyncio/__init__.py
@@ -0,0 +1,60 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+from .events import (
+ QAsyncioEventLoopPolicy, QAsyncioEventLoop, QAsyncioHandle, QAsyncioTimerHandle
+)
+from .futures import QAsyncioFuture
+from .tasks import QAsyncioTask
+
+import asyncio
+import typing
+
+__all__ = [
+ "QAsyncioEventLoopPolicy", "QAsyncioEventLoop",
+ "QAsyncioHandle", "QAsyncioTimerHandle",
+ "QAsyncioFuture", "QAsyncioTask"
+]
+
+
+def run(coro: typing.Optional[typing.Coroutine] = None,
+ keep_running: bool = True,
+ quit_qapp: bool = True, *,
+ handle_sigint: bool = False,
+ debug: typing.Optional[bool] = None) -> typing.Any:
+ """Run the QtAsyncio event loop."""
+
+ # Event loop policies are expected to be deprecated with Python 3.13, with
+ # subsequent removal in Python 3.15. At that point, part of the current
+ # logic of the QAsyncioEventLoopPolicy constructor will have to be moved
+ # here and/or to a loop factory class (to be provided as an argument to
+ # asyncio.run()), namely setting up the QCoreApplication and the SIGINT
+ # handler.
+ #
+ # More details:
+ # https://discuss.python.org/t/removing-the-asyncio-policy-system-asyncio-set-event-loop-policy-in-python-3-15/37553 # noqa: E501
+ default_policy = asyncio.get_event_loop_policy()
+ asyncio.set_event_loop_policy(
+ QAsyncioEventLoopPolicy(quit_qapp=quit_qapp, handle_sigint=handle_sigint))
+
+ ret = None
+ exc = None
+
+ if keep_running:
+ if coro:
+ asyncio.ensure_future(coro)
+ asyncio.get_event_loop().run_forever()
+ else:
+ if coro:
+ ret = asyncio.run(coro, debug=debug)
+ else:
+ exc = RuntimeError(
+ "QtAsyncio was set to keep running after the coroutine "
+ "finished, but no coroutine was provided.")
+
+ asyncio.set_event_loop_policy(default_policy)
+
+ if ret:
+ return ret
+ if exc:
+ raise exc
diff --git a/sources/pyside6/PySide6/QtAsyncio/events.py b/sources/pyside6/PySide6/QtAsyncio/events.py
new file mode 100644
index 000000000..a29e480b7
--- /dev/null
+++ b/sources/pyside6/PySide6/QtAsyncio/events.py
@@ -0,0 +1,609 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+from PySide6.QtCore import (QCoreApplication, QDateTime, QDeadlineTimer,
+ QEventLoop, QObject, QTimer, QThread, Slot)
+
+from . import futures
+from . import tasks
+
+import asyncio
+import collections.abc
+import concurrent.futures
+import contextvars
+import enum
+import os
+import signal
+import socket
+import subprocess
+import typing
+import warnings
+
+__all__ = [
+ "QAsyncioEventLoopPolicy", "QAsyncioEventLoop",
+ "QAsyncioHandle", "QAsyncioTimerHandle",
+]
+
+
+class QAsyncioExecutorWrapper(QObject):
+
+ def __init__(self, func: typing.Callable, *args: typing.Tuple) -> None:
+ super().__init__()
+ self._loop: QEventLoop
+ self._func = func
+ self._args = args
+ self._result = None
+ self._exception = None
+
+ def _cb(self):
+ try:
+ self._result = self._func(*self._args)
+ except BaseException as e:
+ self._exception = e
+ self._loop.exit()
+
+ def do(self):
+ # This creates a new event loop and dispatcher for the thread, if not already created.
+ self._loop = QEventLoop()
+ asyncio.events._set_running_loop(self._loop)
+ QTimer.singleShot(0, self._loop, lambda: self._cb())
+ self._loop.exec()
+ if self._exception is not None:
+ raise self._exception
+ return self._result
+
+ def exit(self):
+ self._loop.exit()
+
+
+class QAsyncioEventLoopPolicy(asyncio.AbstractEventLoopPolicy):
+ def __init__(self,
+ application: typing.Optional[QCoreApplication] = None,
+ quit_qapp: bool = True,
+ handle_sigint: bool = False) -> None:
+ super().__init__()
+ if application is None:
+ if QCoreApplication.instance() is None:
+ application = QCoreApplication()
+ else:
+ application = QCoreApplication.instance()
+ self._application: QCoreApplication = application # type: ignore[assignment]
+ self._quit_qapp = quit_qapp
+ self._event_loop: typing.Optional[asyncio.AbstractEventLoop] = None
+
+ if handle_sigint:
+ signal.signal(signal.SIGINT, signal.SIG_DFL)
+
+ def get_event_loop(self) -> asyncio.AbstractEventLoop:
+ if self._event_loop is None:
+ self._event_loop = QAsyncioEventLoop(self._application, quit_qapp=self._quit_qapp)
+ return self._event_loop
+
+ def set_event_loop(self, loop: typing.Optional[asyncio.AbstractEventLoop]) -> None:
+ self._event_loop = loop
+
+ def new_event_loop(self) -> asyncio.AbstractEventLoop:
+ return QAsyncioEventLoop(self._application, quit_qapp=self._quit_qapp)
+
+ def get_child_watcher(self) -> "asyncio.AbstractChildWatcher":
+ raise DeprecationWarning("Child watchers are deprecated since Python 3.12")
+
+ def set_child_watcher(self, watcher: "asyncio.AbstractChildWatcher") -> None:
+ raise DeprecationWarning("Child watchers are deprecated since Python 3.12")
+
+
+class QAsyncioEventLoop(asyncio.BaseEventLoop, QObject):
+ """
+ Implements the asyncio API:
+ https://docs.python.org/3/library/asyncio-eventloop.html
+ """
+
+ class ShutDownThread(QThread):
+ def __init__(self, future: futures.QAsyncioFuture, loop: "QAsyncioEventLoop") -> None:
+ super().__init__()
+ self._future = future
+ self._loop = loop
+ self.started.connect(self.shutdown)
+
+ def run(self) -> None:
+ pass
+
+ def shutdown(self) -> None:
+ try:
+ self._loop._default_executor.shutdown(wait=True)
+ if not self._loop.is_closed():
+ self._loop.call_soon_threadsafe(self._future.set_result, None)
+ except Exception as e:
+ if not self._loop.is_closed():
+ self._loop.call_soon_threadsafe(self._future.set_exception, e)
+
+ def __init__(self,
+ application: QCoreApplication, quit_qapp: bool = True) -> None:
+ asyncio.BaseEventLoop.__init__(self)
+ QObject.__init__(self)
+
+ self._application: QCoreApplication = application
+ self._quit_qapp = quit_qapp
+ self._thread = QThread.currentThread()
+
+ self._closed = False
+
+ self._quit_from_inside = False
+ self._quit_from_outside = False
+
+ self._asyncgens: typing.Set[collections.abc.AsyncGenerator] = set()
+
+ # Starting with Python 3.11, this must be an instance of
+ # ThreadPoolExecutor.
+ self._default_executor = concurrent.futures.ThreadPoolExecutor()
+
+ self._exception_handler: typing.Optional[typing.Callable] = self.default_exception_handler
+ self._task_factory: typing.Optional[typing.Callable] = None
+ self._future_to_complete: typing.Optional[futures.QAsyncioFuture] = None
+
+ self._debug = bool(os.getenv("PYTHONASYNCIODEBUG", False))
+
+ self._application.aboutToQuit.connect(self._about_to_quit_cb)
+
+ # Running and stopping the loop
+
+ def _run_until_complete_cb(self, future: futures.QAsyncioFuture) -> None:
+ if not future.cancelled():
+ if isinstance(future.exception(), (SystemExit, KeyboardInterrupt)):
+ return
+ future.get_loop().stop()
+
+ def run_until_complete(self,
+ future: futures.QAsyncioFuture) -> typing.Any: # type: ignore[override]
+ if self.is_closed():
+ raise RuntimeError("Event loop is closed")
+ if self.is_running():
+ raise RuntimeError("Event loop is already running")
+
+ arg_was_coro = not asyncio.futures.isfuture(future)
+ future = asyncio.tasks.ensure_future(future, loop=self) # type: ignore[assignment]
+ future.add_done_callback(self._run_until_complete_cb)
+ self._future_to_complete = future
+
+ try:
+ self.run_forever()
+ except Exception as e:
+ if arg_was_coro and future.done() and not future.cancelled():
+ future.exception()
+ raise e
+ finally:
+ future.remove_done_callback(self._run_until_complete_cb)
+ if not future.done():
+ raise RuntimeError("Event loop stopped before Future completed")
+
+ return future.result()
+
+ def run_forever(self) -> None:
+ if self.is_closed():
+ raise RuntimeError("Event loop is closed")
+ if self.is_running():
+ raise RuntimeError("Event loop is already running")
+ asyncio.events._set_running_loop(self)
+ self._application.exec()
+ asyncio.events._set_running_loop(None)
+
+ def _about_to_quit_cb(self):
+ if not self._quit_from_inside:
+ self._quit_from_outside = True
+ self.close()
+
+ def stop(self) -> None:
+ if self._future_to_complete is not None:
+ if self._future_to_complete.done():
+ self._future_to_complete = None
+ else:
+ return
+ self._quit_from_inside = True
+ if self._quit_qapp:
+ self._application.quit()
+
+ def is_running(self) -> bool:
+ return self._thread.loopLevel() > 0
+
+ def is_closed(self) -> bool:
+ return self._closed
+
+ def close(self) -> None:
+ if self.is_running() and not self._quit_from_outside:
+ raise RuntimeError("Cannot close a running event loop")
+ if self.is_closed():
+ return
+ if self._default_executor is not None:
+ self._default_executor.shutdown(wait=False)
+ self._closed = True
+
+ async def shutdown_asyncgens(self) -> None:
+ if not len(self._asyncgens):
+ return
+
+ results = await asyncio.tasks.gather(
+ *[asyncgen.aclose() for asyncgen in self._asyncgens],
+ return_exceptions=True)
+
+ for result, asyncgen in zip(results, self._asyncgens):
+ if isinstance(result, Exception):
+ self.call_exception_handler({
+ "message": f"Closing asynchronous generator {asyncgen}"
+ f"raised an exception",
+ "exception": result,
+ "asyncgen": asyncgen})
+
+ self._asyncgens.clear()
+
+ async def shutdown_default_executor(self, # type: ignore[override]
+ timeout: typing.Union[int, float, None] = None) -> None:
+ shutdown_successful = False
+ if timeout is not None:
+ deadline_timer = QDeadlineTimer(int(timeout * 1000))
+ else:
+ deadline_timer = QDeadlineTimer(QDeadlineTimer.Forever)
+
+ if self._default_executor is None:
+ return
+ future = self.create_future()
+ thread = QAsyncioEventLoop.ShutDownThread(future, self)
+ thread.start()
+ try:
+ await future
+ finally:
+ shutdown_successful = thread.wait(deadline_timer)
+
+ if timeout is not None and not shutdown_successful:
+ warnings.warn(
+ f"Could not shutdown the default executor within {timeout} seconds",
+ RuntimeWarning, stacklevel=2)
+ self._default_executor.shutdown(wait=False)
+
+ # Scheduling callbacks
+
+ def _call_soon_impl(self, callback: typing.Callable, *args: typing.Any,
+ context: typing.Optional[contextvars.Context] = None,
+ is_threadsafe: typing.Optional[bool] = False) -> asyncio.Handle:
+ return self._call_later_impl(0, callback, *args, context=context,
+ is_threadsafe=is_threadsafe)
+
+ def call_soon(self, callback: typing.Callable, *args: typing.Any,
+ context: typing.Optional[contextvars.Context] = None) -> asyncio.Handle:
+ return self._call_soon_impl(callback, *args, context=context, is_threadsafe=False)
+
+ def call_soon_threadsafe(self, callback: typing.Callable, *args: typing.Any,
+ context:
+ typing.Optional[contextvars.Context] = None) -> asyncio.Handle:
+ if self.is_closed():
+ raise RuntimeError("Event loop is closed")
+ if context is None:
+ context = contextvars.copy_context()
+ return self._call_soon_impl(callback, *args, context=context, is_threadsafe=True)
+
+ def _call_later_impl(self, delay: typing.Union[int, float],
+ callback: typing.Callable, *args: typing.Any,
+ context: typing.Optional[contextvars.Context] = None,
+ is_threadsafe: typing.Optional[bool] = False) -> asyncio.TimerHandle:
+ if not isinstance(delay, (int, float)):
+ raise TypeError("delay must be an int or float")
+ return self._call_at_impl(self.time() + delay, callback, *args, context=context,
+ is_threadsafe=is_threadsafe)
+
+ def call_later(self, delay: typing.Union[int, float],
+ callback: typing.Callable, *args: typing.Any,
+ context: typing.Optional[contextvars.Context] = None) -> asyncio.TimerHandle:
+ return self._call_later_impl(delay, callback, *args, context=context, is_threadsafe=False)
+
+ def _call_at_impl(self, when: typing.Union[int, float],
+ callback: typing.Callable, *args: typing.Any,
+ context: typing.Optional[contextvars.Context] = None,
+ is_threadsafe: typing.Optional[bool] = False) -> asyncio.TimerHandle:
+ if not isinstance(when, (int, float)):
+ raise TypeError("when must be an int or float")
+ return QAsyncioTimerHandle(when, callback, args, self, context, is_threadsafe=is_threadsafe)
+
+ def call_at(self, when: typing.Union[int, float],
+ callback: typing.Callable, *args: typing.Any,
+ context: typing.Optional[contextvars.Context] = None) -> asyncio.TimerHandle:
+ return self._call_at_impl(when, callback, *args, context=context, is_threadsafe=False)
+
+ def time(self) -> float:
+ return QDateTime.currentMSecsSinceEpoch() / 1000
+
+ # Creating Futures and Tasks
+
+ def create_future(self) -> futures.QAsyncioFuture: # type: ignore[override]
+ return futures.QAsyncioFuture(loop=self)
+
+ def create_task(self, # type: ignore[override]
+ coro: typing.Union[collections.abc.Generator, collections.abc.Coroutine],
+ *, name: typing.Optional[str] = None,
+ context: typing.Optional[contextvars.Context] = None) -> tasks.QAsyncioTask:
+ if self._task_factory is None:
+ task = tasks.QAsyncioTask(coro, loop=self, name=name, context=context)
+ else:
+ task = self._task_factory(self, coro, context=context)
+ task.set_name(name)
+
+ return task
+
+ def set_task_factory(self, factory: typing.Optional[typing.Callable]) -> None:
+ if factory is not None and not callable(factory):
+ raise TypeError("The task factory must be a callable or None")
+ self._task_factory = factory
+
+ def get_task_factory(self) -> typing.Optional[typing.Callable]:
+ return self._task_factory
+
+ # Opening network connections
+
+ async def create_connection(
+ self, protocol_factory, host=None, port=None,
+ *, ssl=None, family=0, proto=0,
+ flags=0, sock=None, local_addr=None,
+ server_hostname=None,
+ ssl_handshake_timeout=None,
+ ssl_shutdown_timeout=None,
+ happy_eyeballs_delay=None, interleave=None):
+ raise NotImplementedError
+
+ async def create_datagram_endpoint(self, protocol_factory,
+ local_addr=None, remote_addr=None, *,
+ family=0, proto=0, flags=0,
+ reuse_address=None, reuse_port=None,
+ allow_broadcast=None, sock=None):
+ raise NotImplementedError
+
+ async def create_unix_connection(
+ self, protocol_factory, path=None, *,
+ ssl=None, sock=None,
+ server_hostname=None,
+ ssl_handshake_timeout=None,
+ ssl_shutdown_timeout=None):
+ raise NotImplementedError
+
+ # Creating network servers
+
+ async def create_server(
+ self, protocol_factory, host=None, port=None,
+ *, family=socket.AF_UNSPEC,
+ flags=socket.AI_PASSIVE, sock=None, backlog=100,
+ ssl=None, reuse_address=None, reuse_port=None,
+ ssl_handshake_timeout=None,
+ ssl_shutdown_timeout=None,
+ start_serving=True):
+ raise NotImplementedError
+
+ async def create_unix_server(
+ self, protocol_factory, path=None, *,
+ sock=None, backlog=100, ssl=None,
+ ssl_handshake_timeout=None,
+ ssl_shutdown_timeout=None,
+ start_serving=True):
+ raise NotImplementedError
+
+ async def connect_accepted_socket(
+ self, protocol_factory, sock,
+ *, ssl=None,
+ ssl_handshake_timeout=None,
+ ssl_shutdown_timeout=None):
+ raise NotImplementedError
+
+ # Transferring files
+
+ async def sendfile(self, transport, file, offset=0, count=None,
+ *, fallback=True):
+ raise NotImplementedError
+
+ # TLS Upgrade
+
+ async def start_tls(self, transport, protocol, sslcontext, *,
+ server_side=False,
+ server_hostname=None,
+ ssl_handshake_timeout=None,
+ ssl_shutdown_timeout=None):
+ raise NotImplementedError
+
+ # Watching file descriptors
+
+ def add_reader(self, fd, callback, *args):
+ raise NotImplementedError
+
+ def remove_reader(self, fd):
+ raise NotImplementedError
+
+ def add_writer(self, fd, callback, *args):
+ raise NotImplementedError
+
+ def remove_writer(self, fd):
+ raise NotImplementedError
+
+ # Working with socket objects directly
+
+ async def sock_recv(self, sock, nbytes):
+ raise NotImplementedError
+
+ async def sock_recv_into(self, sock, buf):
+ raise NotImplementedError
+
+ async def sock_recvfrom(self, sock, bufsize):
+ raise NotImplementedError
+
+ async def sock_recvfrom_into(self, sock, buf, nbytes=0):
+ raise NotImplementedError
+
+ async def sock_sendall(self, sock, data):
+ raise NotImplementedError
+
+ async def sock_sendto(self, sock, data, address):
+ raise NotImplementedError
+
+ async def sock_connect(self, sock, address):
+ raise NotImplementedError
+
+ async def sock_accept(self, sock):
+ raise NotImplementedError
+
+ async def sock_sendfile(self, sock, file, offset=0, count=None, *,
+ fallback=None):
+ raise NotImplementedError
+
+ # DNS
+
+ async def getaddrinfo(self, host, port, *,
+ family=0, type=0, proto=0, flags=0):
+ raise NotImplementedError
+
+ async def getnameinfo(self, sockaddr, flags=0):
+ raise NotImplementedError
+
+ # Working with pipes
+
+ async def connect_read_pipe(self, protocol_factory, pipe):
+ raise NotImplementedError
+
+ async def connect_write_pipe(self, protocol_factory, pipe):
+ raise NotImplementedError
+
+ # Unix signals
+
+ def add_signal_handler(self, sig, callback, *args):
+ raise NotImplementedError
+
+ def remove_signal_handler(self, sig):
+ raise NotImplementedError
+
+ # Executing code in thread or process pools
+
+ def run_in_executor(self,
+ executor: typing.Optional[concurrent.futures.ThreadPoolExecutor],
+ func: typing.Callable, *args: typing.Tuple) -> asyncio.futures.Future:
+ if self.is_closed():
+ raise RuntimeError("Event loop is closed")
+ if executor is None:
+ executor = self._default_executor
+ wrapper = QAsyncioExecutorWrapper(func, *args)
+ return asyncio.futures.wrap_future(
+ executor.submit(wrapper.do), loop=self
+ )
+
+ def set_default_executor(self,
+ executor: typing.Optional[
+ concurrent.futures.ThreadPoolExecutor]) -> None:
+ if not isinstance(executor, concurrent.futures.ThreadPoolExecutor):
+ raise TypeError("The executor must be a ThreadPoolExecutor")
+ self._default_executor = executor
+
+ # Error Handling API
+
+ def set_exception_handler(self, handler: typing.Optional[typing.Callable]) -> None:
+ if handler is not None and not callable(handler):
+ raise TypeError("The handler must be a callable or None")
+ self._exception_handler = handler
+
+ def get_exception_handler(self) -> typing.Optional[typing.Callable]:
+ return self._exception_handler
+
+ def default_exception_handler(self, context: typing.Dict[str, typing.Any]) -> None:
+ # TODO
+ if context["message"]:
+ print(context["message"])
+
+ def call_exception_handler(self, context: typing.Dict[str, typing.Any]) -> None:
+ if self._exception_handler is not None:
+ self._exception_handler(context)
+
+ # Enabling debug mode
+
+ def get_debug(self) -> bool:
+ # TODO: Part of the asyncio API but currently unused. More details:
+ # https://docs.python.org/3/library/asyncio-dev.html#asyncio-debug-mode
+ return self._debug
+
+ def set_debug(self, enabled: bool) -> None:
+ self._debug = enabled
+
+ # Running subprocesses
+
+ async def subprocess_exec(self, protocol_factory, *args,
+ stdin=subprocess.PIPE,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE,
+ **kwargs):
+ raise NotImplementedError
+
+ async def subprocess_shell(self, protocol_factory, cmd, *,
+ stdin=subprocess.PIPE,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE,
+ **kwargs):
+ raise NotImplementedError
+
+
+class QAsyncioHandle():
+ class HandleState(enum.Enum):
+ PENDING = enum.auto()
+ CANCELLED = enum.auto()
+ DONE = enum.auto()
+
+ def __init__(self, callback: typing.Callable, args: typing.Tuple,
+ loop: QAsyncioEventLoop, context: typing.Optional[contextvars.Context],
+ is_threadsafe: typing.Optional[bool] = False) -> None:
+ self._callback = callback
+ self._args = args
+ self._loop = loop
+ self._context = context
+ self._is_threadsafe = is_threadsafe
+
+ self._timeout = 0
+
+ self._state = QAsyncioHandle.HandleState.PENDING
+ self._start()
+
+ def _schedule_event(self, timeout: int, func: typing.Callable) -> None:
+ if not self._loop.is_closed() and not self._loop._quit_from_outside:
+ if self._is_threadsafe:
+ QTimer.singleShot(timeout, self._loop, func)
+ else:
+ QTimer.singleShot(timeout, func)
+
+ def _start(self) -> None:
+ self._schedule_event(self._timeout, lambda: self._cb())
+
+ @Slot()
+ def _cb(self) -> None:
+ if self._state == QAsyncioHandle.HandleState.PENDING:
+ if self._context is not None:
+ self._context.run(self._callback, *self._args)
+ else:
+ self._callback(*self._args)
+ self._state = QAsyncioHandle.HandleState.DONE
+
+ def cancel(self) -> None:
+ if self._state == QAsyncioHandle.HandleState.PENDING:
+ # The old timer that was created in _start will still trigger but _cb won't do anything.
+ self._state = QAsyncioHandle.HandleState.CANCELLED
+
+ def cancelled(self) -> bool:
+ return self._state == QAsyncioHandle.HandleState.CANCELLED
+
+
+class QAsyncioTimerHandle(QAsyncioHandle, asyncio.TimerHandle):
+ def __init__(self, when: float, callback: typing.Callable, args: typing.Tuple,
+ loop: QAsyncioEventLoop, context: typing.Optional[contextvars.Context],
+ is_threadsafe: typing.Optional[bool] = False) -> None:
+ QAsyncioHandle.__init__(self, callback, args, loop, context, is_threadsafe)
+
+ self._when = when
+ time = self._loop.time()
+ self._timeout = round(max(self._when - time, 0) * 1000)
+
+ QAsyncioHandle._start(self)
+
+ # Override this so that timer.start() is only called once at the end
+ # of the constructor for both QtHandle and QtTimerHandle.
+ def _start(self) -> None:
+ pass
+
+ def when(self) -> float:
+ return self._when
diff --git a/sources/pyside6/PySide6/QtAsyncio/futures.py b/sources/pyside6/PySide6/QtAsyncio/futures.py
new file mode 100644
index 000000000..611bd5634
--- /dev/null
+++ b/sources/pyside6/PySide6/QtAsyncio/futures.py
@@ -0,0 +1,115 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+from . import events
+
+import asyncio
+import contextvars
+import enum
+import typing
+
+
+class QAsyncioFuture():
+ """ https://docs.python.org/3/library/asyncio-future.html """
+
+ # Declare that this class implements the Future protocol. The field must
+ # exist and be boolean - True indicates 'await' or 'yield from', False
+ # indicates 'yield'.
+ _asyncio_future_blocking = False
+
+ class FutureState(enum.Enum):
+ PENDING = enum.auto()
+ CANCELLED = enum.auto()
+ DONE_WITH_RESULT = enum.auto()
+ DONE_WITH_EXCEPTION = enum.auto()
+
+ def __init__(self, *, loop: typing.Optional["events.QAsyncioEventLoop"] = None,
+ context: typing.Optional[contextvars.Context] = None) -> None:
+ self._loop: "events.QAsyncioEventLoop"
+ if loop is None:
+ self._loop = asyncio.events.get_event_loop() # type: ignore[assignment]
+ else:
+ self._loop = loop
+ self._context = context
+
+ self._state = QAsyncioFuture.FutureState.PENDING
+ self._result: typing.Any = None
+ self._exception: typing.Optional[BaseException] = None
+
+ self._callbacks: typing.List[typing.Callable] = list()
+
+ self._cancel_message: typing.Optional[str] = None
+
+ def __await__(self):
+ if not self.done():
+ self._asyncio_future_blocking = True
+ yield self
+ if not self.done():
+ raise RuntimeError("await was not used with a Future or Future-like object")
+ return self.result()
+
+ __iter__ = __await__
+
+ def _schedule_callbacks(self, context: typing.Optional[contextvars.Context] = None):
+ for cb in self._callbacks:
+ self._loop.call_soon(
+ cb, self, context=context if context else self._context)
+
+ def result(self) -> typing.Union[typing.Any, Exception]:
+ if self._state == QAsyncioFuture.FutureState.DONE_WITH_RESULT:
+ return self._result
+ if self._state == QAsyncioFuture.FutureState.DONE_WITH_EXCEPTION and self._exception:
+ raise self._exception
+ if self._state == QAsyncioFuture.FutureState.CANCELLED:
+ if self._cancel_message:
+ raise asyncio.CancelledError(self._cancel_message)
+ else:
+ raise asyncio.CancelledError
+ raise asyncio.InvalidStateError
+
+ def set_result(self, result: typing.Any) -> None:
+ self._result = result
+ self._state = QAsyncioFuture.FutureState.DONE_WITH_RESULT
+ self._schedule_callbacks()
+
+ def set_exception(self, exception: Exception) -> None:
+ self._exception = exception
+ self._state = QAsyncioFuture.FutureState.DONE_WITH_EXCEPTION
+ self._schedule_callbacks()
+
+ def done(self) -> bool:
+ return self._state != QAsyncioFuture.FutureState.PENDING
+
+ def cancelled(self) -> bool:
+ return self._state == QAsyncioFuture.FutureState.CANCELLED
+
+ def add_done_callback(self, cb: typing.Callable, *,
+ context: typing.Optional[contextvars.Context] = None) -> None:
+ if self.done():
+ self._loop.call_soon(
+ cb, self, context=context if context else self._context)
+ else:
+ self._callbacks.append(cb)
+
+ def remove_done_callback(self, cb: typing.Callable) -> int:
+ original_len = len(self._callbacks)
+ self._callbacks = [_cb for _cb in self._callbacks if _cb != cb]
+ return original_len - len(self._callbacks)
+
+ def cancel(self, msg: typing.Optional[str] = None) -> bool:
+ if self.done():
+ return False
+ self._state = QAsyncioFuture.FutureState.CANCELLED
+ self._cancel_message = msg
+ self._schedule_callbacks()
+ return True
+
+ def exception(self) -> typing.Optional[BaseException]:
+ if self._state == QAsyncioFuture.FutureState.CANCELLED:
+ raise asyncio.CancelledError
+ if self.done():
+ return self._exception
+ raise asyncio.InvalidStateError
+
+ def get_loop(self) -> asyncio.AbstractEventLoop:
+ return self._loop
diff --git a/sources/pyside6/PySide6/QtAsyncio/tasks.py b/sources/pyside6/PySide6/QtAsyncio/tasks.py
new file mode 100644
index 000000000..c04006686
--- /dev/null
+++ b/sources/pyside6/PySide6/QtAsyncio/tasks.py
@@ -0,0 +1,157 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+from . import events
+from . import futures
+
+import asyncio
+import collections.abc
+import concurrent.futures
+import contextvars
+import typing
+
+
+class QAsyncioTask(futures.QAsyncioFuture):
+ """ https://docs.python.org/3/library/asyncio-task.html """
+
+ def __init__(self, coro: typing.Union[collections.abc.Generator, collections.abc.Coroutine], *,
+ loop: typing.Optional["events.QAsyncioEventLoop"] = None,
+ name: typing.Optional[str] = None,
+ context: typing.Optional[contextvars.Context] = None) -> None:
+ super().__init__(loop=loop, context=context)
+
+ self._coro = coro
+ self._name = name if name else "QtTask"
+
+ self._handle = self._loop.call_soon(self._step, context=self._context)
+
+ self._cancellation_requests = 0
+
+ self._future_to_await: typing.Optional[asyncio.Future] = None
+ self._cancel_message: typing.Optional[str] = None
+ self._cancelled = False
+
+ asyncio._register_task(self) # type: ignore[arg-type]
+
+ def __repr__(self) -> str:
+ if self._state == futures.QAsyncioFuture.FutureState.PENDING:
+ state = "Pending"
+ elif self._state == futures.QAsyncioFuture.FutureState.DONE_WITH_RESULT:
+ state = "Done"
+ elif self._state == futures.QAsyncioFuture.FutureState.DONE_WITH_EXCEPTION:
+ state = f"Done with exception ({repr(self._exception)})"
+ elif self._state == futures.QAsyncioFuture.FutureState.CANCELLED:
+ state = "Cancelled"
+
+ return f"Task '{self.get_name()}' with state: {state}"
+
+ class QtTaskApiMisuseError(Exception):
+ pass
+
+ def set_result(self, result: typing.Any) -> None: # type: ignore[override]
+ # This function is not inherited from the Future APIs.
+ raise QAsyncioTask.QtTaskApiMisuseError("Tasks cannot set results")
+
+ def set_exception(self, exception: typing.Any) -> None: # type: ignore[override]
+ # This function is not inherited from the Future APIs.
+ raise QAsyncioTask.QtTaskApiMisuseError("Tasks cannot set exceptions")
+
+ def _step(self,
+ exception_or_future: typing.Union[
+ BaseException, futures.QAsyncioFuture, None] = None) -> None:
+ if self.done():
+ return
+ result = None
+ self._future_to_await = None
+
+ if asyncio.futures.isfuture(exception_or_future):
+ try:
+ exception_or_future.result()
+ except BaseException as e:
+ exception_or_future = e
+
+ try:
+ asyncio._enter_task(self._loop, self) # type: ignore[arg-type]
+ if isinstance(exception_or_future, BaseException):
+ result = self._coro.throw(exception_or_future)
+ else:
+ result = self._coro.send(None)
+ except StopIteration as e:
+ self._state = futures.QAsyncioFuture.FutureState.DONE_WITH_RESULT
+ self._result = e.value
+ except (concurrent.futures.CancelledError, asyncio.exceptions.CancelledError) as e:
+ self._state = futures.QAsyncioFuture.FutureState.CANCELLED
+ self._exception = e
+ except BaseException as e:
+ self._state = futures.QAsyncioFuture.FutureState.DONE_WITH_EXCEPTION
+ self._exception = e
+ else:
+ if asyncio.futures.isfuture(result):
+ result.add_done_callback(
+ self._step, context=self._context) # type: ignore[arg-type]
+ self._future_to_await = result
+ if self._cancelled:
+ # If the task was cancelled, then a new future should be
+ # cancelled as well. Otherwise, in some scenarios like
+ # a loop inside the task and with bad timing, if the new
+ # future is not cancelled, the task would continue running
+ # in this loop despite having been cancelled. This bad
+ # timing can occur especially if the first future finishes
+ # very quickly.
+ self._future_to_await.cancel(self._cancel_message)
+ elif result is None:
+ self._loop.call_soon(self._step, context=self._context)
+ else:
+ exception = RuntimeError(f"Bad task result: {result}")
+ self._loop.call_soon(self._step, exception, context=self._context)
+ finally:
+ asyncio._leave_task(self._loop, self) # type: ignore[arg-type]
+ if self._exception:
+ self._loop.call_exception_handler({
+ "message": (str(self._exception) if self._exception
+ else "An exception occurred during task "
+ "execution"),
+ "exception": self._exception,
+ "task": self,
+ "future": (exception_or_future
+ if asyncio.futures.isfuture(exception_or_future)
+ else None)
+ })
+ if self.done():
+ self._schedule_callbacks()
+ asyncio._unregister_task(self) # type: ignore[arg-type]
+
+ def get_stack(self, *, limit=None) -> typing.List[typing.Any]:
+ # TODO
+ raise NotImplementedError("QtTask.get_stack is not implemented")
+
+ def print_stack(self, *, limit=None, file=None) -> None:
+ # TODO
+ raise NotImplementedError("QtTask.print_stack is not implemented")
+
+ def get_coro(self) -> typing.Union[collections.abc.Generator, collections.abc.Coroutine]:
+ return self._coro
+
+ def get_name(self) -> str:
+ return self._name
+
+ def set_name(self, value) -> None:
+ self._name = str(value)
+
+ def cancel(self, msg: typing.Optional[str] = None) -> bool:
+ if self.done():
+ return False
+ self._cancel_message = msg
+ self._handle.cancel()
+ if self._future_to_await is not None:
+ self._future_to_await.cancel(msg)
+ self._cancelled = True
+ return True
+
+ def uncancel(self) -> None:
+ # TODO
+ raise NotImplementedError("QtTask.uncancel is not implemented")
+
+ def cancelling(self) -> bool:
+ # TODO
+ raise NotImplementedError("QtTask.cancelling is not implemented")
diff --git a/sources/pyside6/PySide6/QtAxContainer/CMakeLists.txt b/sources/pyside6/PySide6/QtAxContainer/CMakeLists.txt
index 7b804385c..3857d8ddb 100644
--- a/sources/pyside6/PySide6/QtAxContainer/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtAxContainer/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtAxContainer)
set(QtAxContainer_SRC
diff --git a/sources/pyside6/PySide6/QtAxContainer/typesystem_axcontainer.xml b/sources/pyside6/PySide6/QtAxContainer/typesystem_axcontainer.xml
index 13aaab76a..4d1cbe91c 100644
--- a/sources/pyside6/PySide6/QtAxContainer/typesystem_axcontainer.xml
+++ b/sources/pyside6/PySide6/QtAxContainer/typesystem_axcontainer.xml
@@ -1,46 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtAxContainer">
+<typesystem package="PySide6.QtAxContainer"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="QtWidgets/typesystem_widgets.xml" generate="no"/>
<rejection class="*" function-name="connectNotify"/>
<rejection class="*" function-name="queryInterface"/>
diff --git a/sources/pyside6/PySide6/QtBluetooth/CMakeLists.txt b/sources/pyside6/PySide6/QtBluetooth/CMakeLists.txt
index 495ec16a5..e063a4546 100644
--- a/sources/pyside6/PySide6/QtBluetooth/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtBluetooth/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtBluetooth)
set(QtBluetooth_OPTIONAL_SRC )
diff --git a/sources/pyside6/PySide6/QtBluetooth/typesystem_bluetooth.xml b/sources/pyside6/PySide6/QtBluetooth/typesystem_bluetooth.xml
index 2a1dded13..a3687b6b0 100644
--- a/sources/pyside6/PySide6/QtBluetooth/typesystem_bluetooth.xml
+++ b/sources/pyside6/PySide6/QtBluetooth/typesystem_bluetooth.xml
@@ -1,45 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtBluetooth">
+<typesystem package="PySide6.QtBluetooth"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="QtCore/typesystem_core.xml" generate="no"/>
<namespace-type name="QBluetooth">
<enum-type name="AttAccessConstraint" flags="AttAccessConstraints"/>
@@ -53,7 +18,7 @@
<enum-type name="Pairing"/>
</object-type>
<object-type name="QBluetoothDeviceDiscoveryAgent">
- <enum-type name="DiscoveryMethod"/>
+ <enum-type name="DiscoveryMethod" flags="DiscoveryMethods"/>
<enum-type name="Error"/>
</object-type>
<value-type name="QBluetoothDeviceInfo">
@@ -94,6 +59,28 @@
<enum-type name="DescriptorType"/>
<enum-type name="ProtocolUuid"/>
<enum-type name="ServiceClassUuid"/>
+ <modify-function signature="toUInt16(bool*)const">
+ <modify-argument index="1">
+ <remove-argument/>
+ </modify-argument>
+ <modify-argument index="return" pyi-type="Tuple[int, bool]">
+ <replace-type modified-type="PyTuple"/>
+ </modify-argument>
+ <inject-code class="target" position="beginning">
+ <insert-template name="fix_bool*"/>
+ </inject-code>
+ </modify-function>
+ <modify-function signature="toUInt32(bool*)const">
+ <modify-argument index="1">
+ <remove-argument/>
+ </modify-argument>
+ <modify-argument index="return" pyi-type="Tuple[int, bool]">
+ <replace-type modified-type="PyTuple"/>
+ </modify-argument>
+ <inject-code class="target" position="beginning">
+ <insert-template name="fix_bool*"/>
+ </inject-code>
+ </modify-function>
</value-type>
<value-type name="QLowEnergyAdvertisingData">
<enum-type name="Discoverability"/>
@@ -103,10 +90,10 @@
<enum-type name="FilterPolicy"/>
<enum-type name="Mode"/>
</value-type>
- <object-type name="QLowEnergyCharacteristic">
+ <value-type name="QLowEnergyCharacteristic">
<enum-type name="PropertyType" flags="PropertyTypes"/>
- </object-type>
- <object-type name="QLowEnergyCharacteristicData"/>
+ </value-type>
+ <value-type name="QLowEnergyCharacteristicData"/>
<value-type name="QLowEnergyConnectionParameters"/>
<object-type name="QLowEnergyController">
<enum-type name="ControllerState"/>
@@ -114,10 +101,8 @@
<enum-type name="RemoteAddressType"/>
<enum-type name="Role"/>
</object-type>
- <object-type name="QLowEnergyDescriptor">
- </object-type>
- <object-type name="QLowEnergyDescriptorData">
- </object-type>
+ <value-type name="QLowEnergyDescriptor"/>
+ <value-type name="QLowEnergyDescriptorData"/>
<object-type name="QLowEnergyService">
<enum-type name="DiscoveryMode"/>
<enum-type name="ServiceError"/>
@@ -128,4 +113,8 @@
<value-type name="QLowEnergyServiceData">
<enum-type name="ServiceType"/>
</value-type>
+
+ <!-- QtNetwork is pulled in via QtBluetoothDepends. -->
+ <suppress-warning text="^Scoped enum 'Q(Ocsp)|(Dtls).*' does not have a type entry.*$"/>
+
</typesystem>
diff --git a/sources/pyside6/PySide6/QtCharts/CMakeLists.txt b/sources/pyside6/PySide6/QtCharts/CMakeLists.txt
index 94c39f656..20126fdee 100644
--- a/sources/pyside6/PySide6/QtCharts/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtCharts/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtCharts)
set(QtCharts_SRC
@@ -22,6 +25,7 @@ ${QtCharts_GEN_DIR}/qcandlestickset_wrapper.cpp
${QtCharts_GEN_DIR}/qcategoryaxis_wrapper.cpp
${QtCharts_GEN_DIR}/qchart_wrapper.cpp
${QtCharts_GEN_DIR}/qchartview_wrapper.cpp
+${QtCharts_GEN_DIR}/qcoloraxis_wrapper.cpp
${QtCharts_GEN_DIR}/qdatetimeaxis_wrapper.cpp
${QtCharts_GEN_DIR}/qhbarmodelmapper_wrapper.cpp
${QtCharts_GEN_DIR}/qhboxplotmodelmapper_wrapper.cpp
@@ -69,10 +73,7 @@ set(QtCharts_include_dirs ${QtCharts_SOURCE_DIR}
${QtWidgets_GEN_DIR})
set(QtCharts_libraries pyside6
- ${Qt${QT_MAJOR_VERSION}Charts_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Core_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Gui_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Widgets_LIBRARIES})
+ ${Qt${QT_MAJOR_VERSION}Charts_LIBRARIES})
set(QtCharts_deps QtCore QtGui QtWidgets)
diff --git a/sources/pyside6/PySide6/QtCharts/typesystem_charts.xml b/sources/pyside6/PySide6/QtCharts/typesystem_charts.xml
index eaeb78e61..d4337df8e 100644
--- a/sources/pyside6/PySide6/QtCharts/typesystem_charts.xml
+++ b/sources/pyside6/PySide6/QtCharts/typesystem_charts.xml
@@ -1,45 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtCharts">
+<typesystem package="PySide6.QtCharts"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="QtWidgets/typesystem_widgets.xml" generate="no"/>
<!-- PYSIDE-1101 Removing inherited method to avoid argument conflict
on the QChart::scroll overload -->
@@ -116,7 +81,7 @@
</modify-function>
</object-type>
<object-type name="QBoxSet">
- <enum-type name="ValuePositions"/>
+ <enum-type name="ValuePositions" python-type="IntEnum"/>
</object-type>
<object-type name="QCandlestickLegendMarker"/>
<object-type name="QCandlestickModelMapper"/>
@@ -196,6 +161,7 @@
</modify-argument>
</modify-function>
</object-type>
+ <object-type name="QColorAxis"/>
<object-type name="QDateTimeAxis"/>
<object-type name="QHBarModelMapper"/>
<object-type name="QHBoxPlotModelMapper"/>
@@ -270,6 +236,7 @@
typecheck macros causes:
FIXME Subscripted generics cannot be used with class and instance checks -->
<object-type name="QXYSeries">
+ <enum-type name="PointConfiguration"/>
<include file-name="pyside_numpy.h" location="global"/>
<add-function signature="appendNp(PyArrayObject *@x@, PyArrayObject *@y@)">
<inject-code file="../glue/qtcharts.cpp" snippet="qxyseries-appendnp-numpy-x-y"/>
diff --git a/sources/pyside6/PySide6/QtConcurrent/CMakeLists.txt b/sources/pyside6/PySide6/QtConcurrent/CMakeLists.txt
index b38849a75..134e44ed9 100644
--- a/sources/pyside6/PySide6/QtConcurrent/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtConcurrent/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtConcurrent)
set(QtConcurrent_SRC
@@ -15,12 +18,11 @@ set(QtConcurrent_include_dirs ${QtConcurrent_SOURCE_DIR}
${Qt${QT_MAJOR_VERSION}Core_INCLUDE_DIRS}
${Qt${QT_MAJOR_VERSION}Concurrent_INCLUDE_DIRS}
${libpyside_SOURCE_DIR}
- ${QtCore_GEN_DIR}
- )
-set(QtConcurrent_libraries pyside6
- ${QtConcurrent_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Core_LIBRARIES}
- )
+ ${QtCore_GEN_DIR})
+
+set(QtConcurrent_libraries pyside6
+ ${Qt${QT_MAJOR_VERSION}Concurrent_LIBRARIES})
+
set(QtConcurrent_deps QtCore)
create_pyside_module(NAME QtConcurrent
diff --git a/sources/pyside6/PySide6/QtConcurrent/typesystem_concurrent.xml b/sources/pyside6/PySide6/QtConcurrent/typesystem_concurrent.xml
index 062482b9a..1892793b9 100644
--- a/sources/pyside6/PySide6/QtConcurrent/typesystem_concurrent.xml
+++ b/sources/pyside6/PySide6/QtConcurrent/typesystem_concurrent.xml
@@ -1,51 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtConcurrent">
+<typesystem package="PySide6.QtConcurrent"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="QtCore/typesystem_core.xml" generate="no"/>
<!-- Qt5: this is currently the minimum possible QtConcurrent support, by just extracting
the name space from QtCore -->
<namespace-type name="QtConcurrent" target-type="class">
- <rejection class="QtConcurrent" enum-name="enum_1"/>
+ <enum-type name="FutureResult"/>
<enum-type name="ReduceOption" flags="ReduceOptions"/>
<enum-type name="ThreadFunctionResult"/>
<extra-includes>
@@ -56,7 +21,6 @@
<typedef-type name="QFutureVoid" source="QFuture&lt;void&gt;" disable-wrapper="yes">
<include file-name="QtCore/qfuture.h" location="global"/>
- <modify-function signature="isResultReadyAt(int) const" remove="all"/>
</typedef-type>
<typedef-type name="QFutureQString" source="QFuture&lt;QString&gt;" disable-wrapper="yes">
<include file-name="QtCore/qfuture.h" location="global"/>
diff --git a/sources/pyside6/PySide6/QtCore/CMakeLists.txt b/sources/pyside6/PySide6/QtCore/CMakeLists.txt
index 00ed9a62c..f3e4be0f9 100644
--- a/sources/pyside6/PySide6/QtCore/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtCore/CMakeLists.txt
@@ -1,13 +1,27 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtCore)
-set(QtCore_gluecode "${QtCore_SOURCE_DIR}/glue/qeasingcurve_glue.cpp")
+set(CMAKE_AUTOMOC ON)
+
+set(QtCore_DROPPED_ENTRIES )
+
+set(QtCore_static_sources
+ "${QtCore_SOURCE_DIR}/glue/qeasingcurve_glue.cpp"
+ "${QtCore_SOURCE_DIR}/glue/core_snippets.cpp"
+ "${QtCore_SOURCE_DIR}/glue/qtcorehelper.cpp"
+ "${QtCore_SOURCE_DIR}/glue/qiopipe.cpp"
+ "${pyside6_SOURCE_DIR}/qiopipe.h"
+)
if(ENABLE_WIN)
set(SPECIFIC_OS_FILES
${QtCore_GEN_DIR}/qwineventnotifier_wrapper.cpp
)
else()
- set(SPECIFIC_OS_FILES "")
+ set(SPECIFIC_OS_FILES
+ ${QtCore_GEN_DIR}/qprocess_unixprocessparameters_wrapper.cpp)
endif()
set(QtCore_SRC
@@ -27,8 +41,8 @@ ${QtCore_GEN_DIR}/qbuffer_wrapper.cpp
${QtCore_GEN_DIR}/qbytearray_frombase64result_wrapper.cpp
${QtCore_GEN_DIR}/qbytearray_wrapper.cpp
${QtCore_GEN_DIR}/qbytearraymatcher_wrapper.cpp
-${QtCore_GEN_DIR}/qcalendar_wrapper.cpp
${QtCore_GEN_DIR}/qcalendar_systemid_wrapper.cpp
+${QtCore_GEN_DIR}/qcalendar_wrapper.cpp
${QtCore_GEN_DIR}/qcalendar_yearmonthday_wrapper.cpp
${QtCore_GEN_DIR}/qcborarray_wrapper.cpp
${QtCore_GEN_DIR}/qcborerror_wrapper.cpp
@@ -67,6 +81,7 @@ ${QtCore_GEN_DIR}/qfilesystemwatcher_wrapper.cpp
${QtCore_GEN_DIR}/qfutureinterfacebase_wrapper.cpp
${QtCore_GEN_DIR}/qgenericargument_wrapper.cpp
${QtCore_GEN_DIR}/qgenericreturnargument_wrapper.cpp
+${QtCore_GEN_DIR}/qhashseed_wrapper.cpp
${QtCore_GEN_DIR}/qidentityproxymodel_wrapper.cpp
${QtCore_GEN_DIR}/qiodevice_wrapper.cpp
${QtCore_GEN_DIR}/qiodevicebase_wrapper.cpp
@@ -84,6 +99,7 @@ ${QtCore_GEN_DIR}/qline_wrapper.cpp
${QtCore_GEN_DIR}/qlinef_wrapper.cpp
${QtCore_GEN_DIR}/qlocale_wrapper.cpp
${QtCore_GEN_DIR}/qlockfile_wrapper.cpp
+${QtCore_GEN_DIR}/qloggingcategory_wrapper.cpp
${QtCore_GEN_DIR}/qmargins_wrapper.cpp
${QtCore_GEN_DIR}/qmarginsf_wrapper.cpp
${QtCore_GEN_DIR}/qmessageauthenticationcode_wrapper.cpp
@@ -101,8 +117,10 @@ ${QtCore_GEN_DIR}/qmimetype_wrapper.cpp
${QtCore_GEN_DIR}/qmodelindex_wrapper.cpp
${QtCore_GEN_DIR}/qmodelroledata_wrapper.cpp
${QtCore_GEN_DIR}/qmutex_wrapper.cpp
+${QtCore_GEN_DIR}/qnativeipckey_wrapper.cpp
${QtCore_GEN_DIR}/qobject_wrapper.cpp
${QtCore_GEN_DIR}/qoperatingsystemversion_wrapper.cpp
+${QtCore_GEN_DIR}/qoperatingsystemversionbase_wrapper.cpp
${QtCore_GEN_DIR}/qparallelanimationgroup_wrapper.cpp
${QtCore_GEN_DIR}/qpauseanimation_wrapper.cpp
${QtCore_GEN_DIR}/qpersistentmodelindex_wrapper.cpp
@@ -129,7 +147,6 @@ ${QtCore_GEN_DIR}/qsemaphore_wrapper.cpp
${QtCore_GEN_DIR}/qsemaphorereleaser_wrapper.cpp
${QtCore_GEN_DIR}/qsequentialanimationgroup_wrapper.cpp
${QtCore_GEN_DIR}/qsettings_wrapper.cpp
-${QtCore_GEN_DIR}/qsharedmemory_wrapper.cpp
${QtCore_GEN_DIR}/qsignalblocker_wrapper.cpp
${QtCore_GEN_DIR}/qsignalmapper_wrapper.cpp
${QtCore_GEN_DIR}/qsize_wrapper.cpp
@@ -139,15 +156,18 @@ ${QtCore_GEN_DIR}/qsocketnotifier_wrapper.cpp
${QtCore_GEN_DIR}/qsortfilterproxymodel_wrapper.cpp
${QtCore_GEN_DIR}/qstandardpaths_wrapper.cpp
${QtCore_GEN_DIR}/qstorageinfo_wrapper.cpp
-${QtCore_GEN_DIR}/qstringconverterbase_wrapper.cpp
-${QtCore_GEN_DIR}/qstringconverterbase_state_wrapper.cpp
${QtCore_GEN_DIR}/qstringconverter_wrapper.cpp
-${QtCore_GEN_DIR}/qstringencoder_wrapper.cpp
+${QtCore_GEN_DIR}/qstringconverterbase_state_wrapper.cpp
+${QtCore_GEN_DIR}/qstringconverterbase_wrapper.cpp
${QtCore_GEN_DIR}/qstringdecoder_wrapper.cpp
+${QtCore_GEN_DIR}/qstringencoder_wrapper.cpp
${QtCore_GEN_DIR}/qstringlistmodel_wrapper.cpp
${QtCore_GEN_DIR}/qsysinfo_wrapper.cpp
${QtCore_GEN_DIR}/qsystemsemaphore_wrapper.cpp
${QtCore_GEN_DIR}/qt_wrapper.cpp
+${QtCore_GEN_DIR}/qtcorehelper_qgenericargumentholder_wrapper.cpp
+${QtCore_GEN_DIR}/qtcorehelper_qgenericreturnargumentholder_wrapper.cpp
+${QtCore_GEN_DIR}/qtcorehelper_qiopipe_wrapper.cpp
${QtCore_GEN_DIR}/qtcorehelper_qmutexlocker_wrapper.cpp
${QtCore_GEN_DIR}/qtemporarydir_wrapper.cpp
${QtCore_GEN_DIR}/qtemporaryfile_wrapper.cpp
@@ -185,6 +205,32 @@ ${SPECIFIC_OS_FILES}
${QtCore_GEN_DIR}/qtcore_module_wrapper.cpp
)
+get_property(QtCore_disabled_features TARGET Qt${QT_MAJOR_VERSION}::Core
+ PROPERTY QT_DISABLED_PUBLIC_FEATURES)
+
+if("permissions" IN_LIST QtCore_disabled_features)
+ list(APPEND QtCore_DROPPED_ENTRIES QPermission
+ QBluetoothPermission QCalendarPermission QCameraPermission
+ QContactsPermission QLocationPermission QMicrophonePermission)
+ message(STATUS "Qt${QT_MAJOR_VERSION}Core: Dropping Permissions classes")
+else()
+ list(APPEND QtCore_SRC
+ ${QtCore_GEN_DIR}/qbluetoothpermission_wrapper.cpp
+ ${QtCore_GEN_DIR}/qcalendarpermission_wrapper.cpp
+ ${QtCore_GEN_DIR}/qcamerapermission_wrapper.cpp
+ ${QtCore_GEN_DIR}/qcontactspermission_wrapper.cpp
+ ${QtCore_GEN_DIR}/qlocationpermission_wrapper.cpp
+ ${QtCore_GEN_DIR}/qmicrophonepermission_wrapper.cpp
+ ${QtCore_GEN_DIR}/qpermission_wrapper.cpp)
+endif()
+
+if("sharedmemory" IN_LIST QtCore_disabled_features)
+ list(APPEND QtCore_DROPPED_ENTRIES QSharedMemory)
+ message(STATUS "Qt${QT_MAJOR_VERSION}Core: Dropping QSharedMemory")
+else()
+ list(APPEND QtCore_SRC ${QtCore_GEN_DIR}/qsharedmemory_wrapper.cpp)
+endif()
+
configure_file("${QtCore_SOURCE_DIR}/QtCore_global.post.h.in"
"${QtCore_BINARY_DIR}/QtCore_global.post.h" @ONLY)
@@ -201,6 +247,7 @@ set(QtCore_include_dirs ${QtCore_SOURCE_DIR}
)
set(QtCore_libraries pyside6
${Qt${QT_MAJOR_VERSION}Core_LIBRARIES}
+ Qt::CorePrivate
)
create_pyside_module(NAME QtCore
@@ -208,9 +255,37 @@ create_pyside_module(NAME QtCore
LIBRARIES QtCore_libraries
TYPESYSTEM_PATH QtCore_SOURCE_DIR
SOURCES QtCore_SRC
- STATIC_SOURCES QtCore_gluecode
+ STATIC_SOURCES QtCore_static_sources
TYPESYSTEM_NAME ${QtCore_BINARY_DIR}/typesystem_core.xml
GLUE_SOURCES QtCore_glue_sources
+ DROPPED_ENTRIES QtCore_DROPPED_ENTRIES
)
-install(FILES ${pyside6_SOURCE_DIR}/qtcorehelper.h DESTINATION include/PySide6/QtCore/)
+# Note: The permission API for Apple platforms only works if the Python application is packaged
+# with pyside6-deploy (uses Nuitka). Read "Notes for Developers" in Qt for Python documentation
+# for more information
+#
+# For Apple platforms, the Qt permission API implementations are in small static libraries.
+# In Qt C++, the application is linked directly to these static libraries during the build when
+# linking to the QtCore module as a post processing CMake step.
+# Being static plugins makes it difficult to add these plugins during Nuitka packaging step.
+# Thus, we link the static plugins to QtCore.abi3.so. However, to request the permissions
+# it is still required to have the necessary Information Property keys eg: NSCameraUsageDescription
+# in the Info.plist of the application bundle which Nuitka creates.
+if (APPLE)
+ set(permissions Camera Microphone Bluetooth Contacts Calendar)
+ foreach(permission IN LISTS permissions)
+ set(permission_plugin_name "QDarwin${permission}PermissionPlugin")
+ set(permission_plugin "${QT_CMAKE_EXPORT_NAMESPACE}::${permission_plugin_name}")
+ # Setting this property is necessary for Camera and Microphone. Otherwise it won't append
+ # the linker flags like -Wl,-u,_QDarwinMicrophonePermissionRequest which are required to
+ # link to qdarwinpermissionplugin_microphone_request.mm.o and find symbols like
+ # QDarwinMicrosphonePermissionHandler which handles requesting the actual permission
+ set_target_properties(QtCore PROPERTIES "_qt_has_${permission_plugin_name}_usage_description" TRUE)
+ # importing the plugin
+ qt6_import_plugins(QtCore INCLUDE ${permission_plugin})
+ endforeach()
+endif()
+
+install(FILES ${pyside6_SOURCE_DIR}/qtcorehelper.h ${pyside6_SOURCE_DIR}/qiopipe.h
+ DESTINATION include/PySide6/QtCore/)
diff --git a/sources/pyside6/PySide6/QtCore/QtCore_global.post.h.in b/sources/pyside6/PySide6/QtCore/QtCore_global.post.h.in
index 55a49bb88..8383b9ae4 100644
--- a/sources/pyside6/PySide6/QtCore/QtCore_global.post.h.in
+++ b/sources/pyside6/PySide6/QtCore/QtCore_global.post.h.in
@@ -1 +1,2 @@
#include <qtcorehelper.h>
+#include <qiopipe.h>
diff --git a/sources/pyside6/PySide6/QtCore/glue/core_snippets.cpp b/sources/pyside6/PySide6/QtCore/glue/core_snippets.cpp
new file mode 100644
index 000000000..4266e868c
--- /dev/null
+++ b/sources/pyside6/PySide6/QtCore/glue/core_snippets.cpp
@@ -0,0 +1,348 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#include "core_snippets_p.h"
+#include "qtcorehelper.h"
+#include "pysideqobject.h"
+
+#include "shiboken.h"
+#ifndef Py_LIMITED_API
+# include <datetime.h>
+#endif
+#include "basewrapper.h"
+#include "autodecref.h"
+#include "pysideutils.h"
+
+#include <QtCore/QCoreApplication>
+#include <QtCore/QDebug>
+#include <QtCore/QMetaType>
+#include <QtCore/QObject>
+#include <QtCore/QRegularExpression>
+#include <QtCore/QStack>
+#include <QtCore/QVariant>
+
+// Helpers for QVariant conversion
+
+QMetaType QVariant_resolveMetaType(PyTypeObject *type)
+{
+ if (!PyObject_TypeCheck(type, SbkObjectType_TypeF()))
+ return {};
+ const char *typeName = Shiboken::ObjectType::getOriginalName(type);
+ if (!typeName)
+ return {};
+ const bool valueType = '*' != typeName[qstrlen(typeName) - 1];
+ // Do not convert user type of value
+ if (valueType && Shiboken::ObjectType::isUserType(type))
+ return {};
+ QMetaType metaType = QMetaType::fromName(typeName);
+ if (metaType.isValid())
+ return metaType;
+ // Do not resolve types to value type
+ if (valueType)
+ return {};
+ // Find in base types. First check tp_bases, and only after check tp_base, because
+ // tp_base does not always point to the first base class, but rather to the first
+ // that has added any python fields or slots to its object layout.
+ // See https://mail.python.org/pipermail/python-list/2009-January/520733.html
+ if (type->tp_bases) {
+ for (Py_ssize_t i = 0, size = PyTuple_GET_SIZE(type->tp_bases); i < size; ++i) {
+ auto baseType = reinterpret_cast<PyTypeObject *>(PyTuple_GET_ITEM(type->tp_bases, i));
+ const QMetaType derived = QVariant_resolveMetaType(baseType);
+ if (derived.isValid())
+ return derived;
+ }
+ } else if (type->tp_base) {
+ return QVariant_resolveMetaType(type->tp_base);
+ }
+ return {};
+}
+
+QVariant QVariant_convertToValueList(PyObject *list)
+{
+ if (PySequence_Size(list) < 0) {
+ // clear the error if < 0 which means no length at all
+ PyErr_Clear();
+ return {};
+ }
+
+ Shiboken::AutoDecRef element(PySequence_GetItem(list, 0));
+
+ auto *type = reinterpret_cast<PyTypeObject *>(element.object());
+ QMetaType metaType = QVariant_resolveMetaType(type);
+ if (!metaType.isValid())
+ return {};
+
+ const QByteArray listTypeName = QByteArrayLiteral("QList<") + metaType.name() + '>';
+ metaType = QMetaType::fromName(listTypeName);
+ if (!metaType.isValid())
+ return {};
+
+ Shiboken::Conversions::SpecificConverter converter(listTypeName);
+ if (!converter) {
+ qWarning("Type converter for: %s not registered.", listTypeName.constData());
+ return {};
+ }
+
+ QVariant var(metaType);
+ converter.toCpp(list, &var);
+ return var;
+}
+
+bool QVariant_isStringList(PyObject *list)
+{
+ if (!PySequence_Check(list)) {
+ // If it is not a list or a derived list class
+ // we assume that will not be a String list neither.
+ return false;
+ }
+
+ if (PySequence_Size(list) < 0) {
+ // clear the error if < 0 which means no length at all
+ PyErr_Clear();
+ return false;
+ }
+
+ Shiboken::AutoDecRef fast(PySequence_Fast(list, "Failed to convert QVariantList"));
+ const Py_ssize_t size = PySequence_Fast_GET_SIZE(fast.object());
+ for (Py_ssize_t i = 0; i < size; ++i) {
+ PyObject *item = PySequence_Fast_GET_ITEM(fast.object(), i);
+ if (PyUnicode_Check(item) == 0)
+ return false;
+ }
+ return true;
+}
+
+// Helpers for qAddPostRoutine
+
+namespace PySide {
+
+static QStack<PyObject *> globalPostRoutineFunctions;
+
+void globalPostRoutineCallback()
+{
+ Shiboken::GilState state;
+ for (auto *callback : globalPostRoutineFunctions) {
+ Shiboken::AutoDecRef result(PyObject_CallObject(callback, nullptr));
+ Py_DECREF(callback);
+ }
+ globalPostRoutineFunctions.clear();
+}
+
+void addPostRoutine(PyObject *callback)
+{
+ if (PyCallable_Check(callback)) {
+ globalPostRoutineFunctions << callback;
+ Py_INCREF(callback);
+ } else {
+ PyErr_SetString(PyExc_TypeError, "qAddPostRoutine: The argument must be a callable object.");
+ }
+}
+} // namespace PySide
+
+// Helpers for QObject::findChild(ren)()
+
+static bool _findChildTypeMatch(const QObject *child, PyTypeObject *desiredType)
+{
+ auto *pyChildType = PySide::getTypeForQObject(child);
+ return pyChildType != nullptr && PyType_IsSubtype(pyChildType, desiredType);
+}
+
+static inline bool _findChildrenComparator(const QObject *child,
+ const QRegularExpression &name)
+{
+ return name.match(child->objectName()).hasMatch();
+}
+
+static inline bool _findChildrenComparator(const QObject *child,
+ const QString &name)
+{
+ return name.isNull() || name == child->objectName();
+}
+
+QObject *qObjectFindChild(const QObject *parent, const QString &name,
+ PyTypeObject *desiredType, Qt::FindChildOptions options)
+{
+ for (auto *child : parent->children()) {
+ if (_findChildrenComparator(child, name)
+ && _findChildTypeMatch(child, desiredType)) {
+ return child;
+ }
+ }
+
+ if (options.testFlag(Qt::FindChildrenRecursively)) {
+ for (auto *child : parent->children()) {
+ if (auto *obj = qObjectFindChild(child, name, desiredType, options))
+ return obj;
+ }
+ }
+ return nullptr;
+}
+
+template<typename T> // QString/QRegularExpression
+static void _findChildrenHelper(const QObject *parent, const T& name, PyTypeObject *desiredType,
+ Qt::FindChildOptions options, FindChildHandler handler)
+{
+ for (auto *child : parent->children()) {
+ if (_findChildrenComparator(child, name) && _findChildTypeMatch(child, desiredType))
+ handler(child);
+ if (options.testFlag(Qt::FindChildrenRecursively))
+ _findChildrenHelper(child, name, desiredType, options, handler);
+ }
+}
+
+void qObjectFindChildren(const QObject *parent, const QString &name,
+ PyTypeObject *desiredType, Qt::FindChildOptions options,
+ FindChildHandler handler)
+{
+ _findChildrenHelper(parent, name, desiredType, options, handler);
+}
+
+void qObjectFindChildren(const QObject *parent, const QRegularExpression &pattern,
+ PyTypeObject *desiredType, Qt::FindChildOptions options,
+ FindChildHandler handler)
+{
+ _findChildrenHelper(parent, pattern, desiredType, options, handler);
+}
+
+//////////////////////////////////////////////////////////////////////////////
+// Helpers for translation:
+// PYSIDE-131: Use the class name as context where the calling function is
+// living. Derived Python classes have the wrong context.
+//
+// The original patch uses Python introspection to look up the current
+// function (from the frame stack) in the class __dict__ along the mro.
+//
+// The problem is that looking into the frame stack works for Python
+// functions, only. For including builtin function callers, the following
+// approach turned out to be much simpler:
+//
+// Walk the __mro__
+// - translate the string
+// - if the translated string is changed:
+// - return the translation.
+
+QString qObjectTr(PyTypeObject *type, const char *sourceText, const char *disambiguation, int n)
+{
+ PyObject *mro = type->tp_mro;
+ auto len = PyTuple_GET_SIZE(mro);
+ QString result = QString::fromUtf8(sourceText);
+ QString oldResult = result;
+ static auto *sbkObjectType = reinterpret_cast<PyTypeObject *>(SbkObject_TypeF());
+ for (Py_ssize_t idx = 0; idx < len - 1; ++idx) {
+ // Skip the last class which is `object`.
+ auto *type = reinterpret_cast<PyTypeObject *>(PyTuple_GET_ITEM(mro, idx));
+ if (type == sbkObjectType)
+ continue;
+ const char *context = type->tp_name;
+ const char *dotpos = strrchr(context, '.');
+ if (dotpos != nullptr)
+ context = dotpos + 1;
+ result = QCoreApplication::translate(context, sourceText, disambiguation, n);
+ if (result != oldResult)
+ break;
+ }
+ return result;
+}
+
+bool PyDate_ImportAndCheck(PyObject *pyIn)
+{
+ if (!PyDateTimeAPI)
+ PyDateTime_IMPORT;
+ return PyDate_Check(pyIn);
+}
+
+bool PyDateTime_ImportAndCheck(PyObject *pyIn)
+{
+ if (!PyDateTimeAPI)
+ PyDateTime_IMPORT;
+ return PyDateTime_Check(pyIn);
+}
+
+bool PyTime_ImportAndCheck(PyObject *pyIn)
+{
+ if (!PyDateTimeAPI)
+ PyDateTime_IMPORT;
+ return PyTime_Check(pyIn);
+}
+
+PyObject *invokeMetaMethod(const InvokeMetaMethodFunc &f,
+ const QtCoreHelper::QGenericArgumentHolder &a0,
+ const QtCoreHelper::QGenericArgumentHolder &a1,
+ const QtCoreHelper::QGenericArgumentHolder &a2,
+ const QtCoreHelper::QGenericArgumentHolder &a3,
+ const QtCoreHelper::QGenericArgumentHolder &a4,
+ const QtCoreHelper::QGenericArgumentHolder &a5,
+ const QtCoreHelper::QGenericArgumentHolder &a6,
+ const QtCoreHelper::QGenericArgumentHolder &a7,
+ const QtCoreHelper::QGenericArgumentHolder &a8,
+ const QtCoreHelper::QGenericArgumentHolder &a9)
+{
+ PyThreadState *_save = PyEval_SaveThread(); // Py_BEGIN_ALLOW_THREADS
+ const bool resultB = f(a0.toGenericArgument(), a1.toGenericArgument(), a2.toGenericArgument(),
+ a3.toGenericArgument(), a4.toGenericArgument(), a5.toGenericArgument(),
+ a6.toGenericArgument(), a7.toGenericArgument(), a8.toGenericArgument(),
+ a9.toGenericArgument());
+ PyEval_RestoreThread(_save); // Py_END_ALLOW_THREADS
+ PyObject *result = resultB ? Py_True : Py_False;
+ Py_INCREF(result);
+ return result;
+}
+
+// Convert a QGenericReturnArgument to Python for QMetaObject::invokeMethod
+static PyObject *convertGenericReturnArgument(const void *retData, QMetaType metaType)
+{
+ PyObject *result = nullptr;
+ switch (metaType.id()) {
+ case QMetaType::Bool:
+ result = *reinterpret_cast<const bool *>(retData) ? Py_True : Py_False;
+ Py_INCREF(result);
+ break;
+ case QMetaType::Int:
+ result = PyLong_FromLong(*reinterpret_cast<const int *>(retData));
+ break;
+ case QMetaType::Double:
+ result = PyFloat_FromDouble(*reinterpret_cast<const double *>(retData));
+ break;
+ case QMetaType::QString:
+ result = PySide::qStringToPyUnicode(*reinterpret_cast<const QString *>(retData));
+ break;
+ default: {
+ Shiboken::Conversions::SpecificConverter converter(metaType.name());
+ const auto type = converter.conversionType();
+ if (type == Shiboken::Conversions::SpecificConverter::InvalidConversion) {
+ PyErr_Format(PyExc_RuntimeError, "%s: Unable to find converter for \"%s\".",
+ __FUNCTION__, metaType.name());
+ return nullptr;
+ }
+ result = converter.toPython(retData);
+ }
+ }
+ return result;
+}
+
+PyObject *invokeMetaMethodWithReturn(const InvokeMetaMethodFuncWithReturn &f,
+ const QtCoreHelper::QGenericReturnArgumentHolder &r,
+ const QtCoreHelper::QGenericArgumentHolder &a0,
+ const QtCoreHelper::QGenericArgumentHolder &a1,
+ const QtCoreHelper::QGenericArgumentHolder &a2,
+ const QtCoreHelper::QGenericArgumentHolder &a3,
+ const QtCoreHelper::QGenericArgumentHolder &a4,
+ const QtCoreHelper::QGenericArgumentHolder &a5,
+ const QtCoreHelper::QGenericArgumentHolder &a6,
+ const QtCoreHelper::QGenericArgumentHolder &a7,
+ const QtCoreHelper::QGenericArgumentHolder &a8,
+ const QtCoreHelper::QGenericArgumentHolder &a9)
+{
+ PyThreadState *_save = PyEval_SaveThread(); // Py_BEGIN_ALLOW_THREADS
+ const bool callResult = f(r.toGenericReturnArgument(),
+ a0.toGenericArgument(), a1.toGenericArgument(), a2.toGenericArgument(),
+ a3.toGenericArgument(), a4.toGenericArgument(), a5.toGenericArgument(),
+ a6.toGenericArgument(), a7.toGenericArgument(), a8.toGenericArgument(),
+ a9.toGenericArgument());
+ PyEval_RestoreThread(_save); // Py_END_ALLOW_THREADS
+ if (!callResult) {
+ PyErr_SetString(PyExc_RuntimeError, "QMetaMethod invocation failed.");
+ return nullptr;
+ }
+ return convertGenericReturnArgument(r.data(), r.metaType());
+}
diff --git a/sources/pyside6/PySide6/QtCore/glue/core_snippets_p.h b/sources/pyside6/PySide6/QtCore/glue/core_snippets_p.h
new file mode 100644
index 000000000..11e84b291
--- /dev/null
+++ b/sources/pyside6/PySide6/QtCore/glue/core_snippets_p.h
@@ -0,0 +1,105 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef CORE_SNIPPETS_P_H
+#define CORE_SNIPPETS_P_H
+
+#include "pysidemacros.h"
+
+#include <sbkpython.h>
+
+#include <QtCore/qnamespace.h>
+
+#include <functional>
+
+QT_FORWARD_DECLARE_CLASS(QGenericArgument)
+QT_FORWARD_DECLARE_CLASS(QGenericReturnArgument)
+QT_FORWARD_DECLARE_CLASS(QMetaType)
+QT_FORWARD_DECLARE_CLASS(QObject)
+QT_FORWARD_DECLARE_CLASS(QRegularExpression)
+QT_FORWARD_DECLARE_CLASS(QVariant);
+
+QT_BEGIN_NAMESPACE
+namespace QtCoreHelper {
+class QGenericArgumentHolder;
+class QGenericReturnArgumentHolder;
+}
+QT_END_NAMESPACE
+
+// Helpers for QVariant conversion
+
+QMetaType QVariant_resolveMetaType(PyTypeObject *type);
+
+QVariant QVariant_convertToValueList(PyObject *list);
+
+bool QVariant_isStringList(PyObject *list);
+
+// Helpers for qAddPostRoutine
+namespace PySide {
+void globalPostRoutineCallback();
+void addPostRoutine(PyObject *callback);
+}
+
+// Helpers for QObject::findChild(ren)()
+QObject *qObjectFindChild(const QObject *parent, const QString &name,
+ PyTypeObject *desiredType, Qt::FindChildOptions options);
+
+using FindChildHandler = std::function<void(QObject *)>;
+
+void qObjectFindChildren(const QObject *parent, const QString &name,
+ PyTypeObject *desiredType, Qt::FindChildOptions options,
+ FindChildHandler handler);
+
+void qObjectFindChildren(const QObject *parent, const QRegularExpression &pattern,
+ PyTypeObject *desiredType, Qt::FindChildOptions options,
+ FindChildHandler handler);
+
+// Helpers for translation
+QString qObjectTr(PyTypeObject *type, const char *sourceText, const char *disambiguation, int n);
+
+bool PyDate_ImportAndCheck(PyObject *pyIn);
+bool PyDateTime_ImportAndCheck(PyObject *pyIn);
+bool PyTime_ImportAndCheck(PyObject *pyIn);
+
+// Helpers for QMetaObject::invokeMethod(), QMetaMethod::invoke(). The std::function
+// serves to abstract from QMetaObject/QMetaMethod invocation parameters.
+using InvokeMetaMethodFunc =
+ std::function<bool(QGenericArgument,QGenericArgument,QGenericArgument,QGenericArgument,
+ QGenericArgument,QGenericArgument,QGenericArgument,QGenericArgument,
+ QGenericArgument,QGenericArgument)>;
+
+using InvokeMetaMethodFuncWithReturn =
+ std::function<bool(QGenericReturnArgument,
+ QGenericArgument,QGenericArgument,QGenericArgument,QGenericArgument,
+ QGenericArgument,QGenericArgument,QGenericArgument,QGenericArgument,
+ QGenericArgument,QGenericArgument)>;
+
+// Call a void meta method from Python passing the argument holder helpers.
+PyObject *invokeMetaMethod(const InvokeMetaMethodFunc &f,
+ const QtCoreHelper::QGenericArgumentHolder &,
+ const QtCoreHelper::QGenericArgumentHolder &,
+ const QtCoreHelper::QGenericArgumentHolder &,
+ const QtCoreHelper::QGenericArgumentHolder &,
+ const QtCoreHelper::QGenericArgumentHolder &,
+ const QtCoreHelper::QGenericArgumentHolder &,
+ const QtCoreHelper::QGenericArgumentHolder &,
+ const QtCoreHelper::QGenericArgumentHolder &,
+ const QtCoreHelper::QGenericArgumentHolder &,
+ const QtCoreHelper::QGenericArgumentHolder &);
+
+// Call a meta method with a return value from Python passing the argument holder
+// helpers.
+PyObject *invokeMetaMethodWithReturn(const InvokeMetaMethodFuncWithReturn &f,
+ const QtCoreHelper::QGenericReturnArgumentHolder &,
+ const QtCoreHelper::QGenericArgumentHolder &,
+ const QtCoreHelper::QGenericArgumentHolder &,
+ const QtCoreHelper::QGenericArgumentHolder &,
+ const QtCoreHelper::QGenericArgumentHolder &,
+ const QtCoreHelper::QGenericArgumentHolder &,
+ const QtCoreHelper::QGenericArgumentHolder &,
+ const QtCoreHelper::QGenericArgumentHolder &,
+ const QtCoreHelper::QGenericArgumentHolder &,
+ const QtCoreHelper::QGenericArgumentHolder &,
+ const QtCoreHelper::QGenericArgumentHolder &);
+
+#endif // CORE_SNIPPETS_P_H
diff --git a/sources/pyside6/PySide6/QtCore/glue/qeasingcurve_glue.cpp b/sources/pyside6/PySide6/QtCore/glue/qeasingcurve_glue.cpp
index 552191955..e154b932a 100644
--- a/sources/pyside6/PySide6/QtCore/glue/qeasingcurve_glue.cpp
+++ b/sources/pyside6/PySide6/QtCore/glue/qeasingcurve_glue.cpp
@@ -1,46 +1,11 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include <sbkpython.h>
#include <shiboken.h>
#include <pysideweakref.h>
-#include <QEasingCurve>
+
+#include <QtCore/QEasingCurve>
#include "glue/qeasingcurve_glue.h"
diff --git a/sources/pyside6/PySide6/QtCore/glue/qeasingcurve_glue.h b/sources/pyside6/PySide6/QtCore/glue/qeasingcurve_glue.h
index f6c80fa99..78adaae2e 100644
--- a/sources/pyside6/PySide6/QtCore/glue/qeasingcurve_glue.h
+++ b/sources/pyside6/PySide6/QtCore/glue/qeasingcurve_glue.h
@@ -1,47 +1,11 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef __QEASINGCURVE_GLUE__
#define __QEASINGCURVE_GLUE__
#include <sbkpython.h>
-#include <QEasingCurve>
+#include <QtCore/QEasingCurve>
class PySideEasingCurveFunctor
{
diff --git a/sources/pyside6/PySide6/QtCore/glue/qiopipe.cpp b/sources/pyside6/PySide6/QtCore/glue/qiopipe.cpp
new file mode 100644
index 000000000..6799c0f32
--- /dev/null
+++ b/sources/pyside6/PySide6/QtCore/glue/qiopipe.cpp
@@ -0,0 +1,142 @@
+// Copyright (C) 2024 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#include "qiopipe.h"
+
+#include <QtCore/private/qobject_p.h>
+#include <QtCore/qdebug.h>
+#include <QtCore/qiodevice.h>
+#include <QtCore/qpointer.h>
+
+#include <memory>
+
+QT_BEGIN_NAMESPACE
+
+namespace QtCoreHelper
+{
+
+class QPipeEndPoint : public QIODevice
+{
+ Q_OBJECT
+
+public:
+ bool isSequential() const override;
+ qint64 bytesAvailable() const override;
+
+ void setRemoteEndPoint(QPipeEndPoint *other);
+
+protected:
+ qint64 readData(char *data, qint64 maxlen) override;
+ qint64 writeData(const char *data, qint64 len) override;
+
+private:
+ QByteArray m_buffer;
+ QPointer<QPipeEndPoint> m_remoteEndPoint;
+};
+
+class QIOPipePrivate final : public QObjectPrivate
+{
+ Q_DECLARE_PUBLIC(QIOPipe)
+public:
+ QIOPipePrivate();
+ ~QIOPipePrivate() {};
+
+ std::unique_ptr<QPipeEndPoint> end1;
+ std::unique_ptr<QPipeEndPoint> end2;
+};
+
+QIOPipe::QIOPipe(QObject *parent) : QObject(*(new QIOPipePrivate()), parent) { }
+
+bool QIOPipe::open(QIODevice::OpenMode mode)
+{
+ Q_D(QIOPipe);
+
+ if (!d->end1->open(mode))
+ return false;
+ switch (mode & QIODevice::ReadWrite) {
+ case QIODevice::WriteOnly:
+ case QIODevice::ReadOnly:
+ return d->end2->open(mode ^ QIODevice::ReadWrite);
+ default:
+ return d->end2->open(mode);
+ }
+}
+
+QIODevice *QIOPipe::end1() const
+{
+ Q_D(const QIOPipe);
+ return d->end1.get();
+}
+
+QIODevice *QIOPipe::end2() const
+{
+ Q_D(const QIOPipe);
+ return d->end2.get();
+}
+
+QIOPipePrivate::QIOPipePrivate() : end1(std::make_unique<QPipeEndPoint>()),
+ end2(std::make_unique<QPipeEndPoint>())
+{
+ end1->setRemoteEndPoint(end2.get());
+ end2->setRemoteEndPoint(end1.get());
+}
+
+bool QPipeEndPoint::isSequential() const
+{
+ return true;
+}
+
+qint64 QPipeEndPoint::bytesAvailable() const
+{
+ return m_buffer.size() + QIODevice::bytesAvailable();
+}
+
+void QPipeEndPoint::setRemoteEndPoint(QPipeEndPoint *other)
+{
+ m_remoteEndPoint = other;
+}
+
+qint64 QPipeEndPoint::readData(char *data, qint64 maxlen)
+{
+ maxlen = qMin(maxlen, static_cast<qint64>(m_buffer.size()));
+ if (maxlen <= 0)
+ return 0;
+
+ Q_ASSERT(maxlen > 0);
+ memcpy(data, m_buffer.data(), static_cast<size_t>(maxlen));
+ m_buffer = m_buffer.mid(maxlen);
+ return maxlen;
+}
+
+qint64 QPipeEndPoint::writeData(const char *data, qint64 len)
+{
+ if (!m_remoteEndPoint)
+ return -1;
+
+ if (len <= 0)
+ return 0;
+
+ QByteArray &buffer = m_remoteEndPoint->m_buffer;
+ const qint64 prevLen = buffer.size();
+ Q_ASSERT(prevLen >= 0);
+ len = qMin(len, std::numeric_limits<int>::max() - prevLen);
+
+ if (len == 0)
+ return 0;
+
+ Q_ASSERT(len > 0);
+ Q_ASSERT(prevLen + len > 0);
+ Q_ASSERT(prevLen + len <= std::numeric_limits<int>::max());
+
+ buffer.resize(prevLen + len);
+ memcpy(buffer.data() + prevLen, data, static_cast<size_t>(len));
+ Q_EMIT bytesWritten(len);
+ Q_EMIT m_remoteEndPoint->readyRead();
+ return len;
+}
+
+} // namespace QtCoreHelper
+
+QT_END_NAMESPACE
+
+#include "qiopipe.moc"
diff --git a/sources/pyside6/PySide6/QtCore/glue/qtcorehelper.cpp b/sources/pyside6/PySide6/QtCore/glue/qtcorehelper.cpp
new file mode 100644
index 000000000..948c0ce5c
--- /dev/null
+++ b/sources/pyside6/PySide6/QtCore/glue/qtcorehelper.cpp
@@ -0,0 +1,108 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#include <qtcorehelper.h>
+
+#include <QtCore/qdebug.h>
+
+QT_BEGIN_NAMESPACE
+
+namespace QtCoreHelper {
+
+// Data classes for the generic argument data classes. The argument is freed
+// via QMetaType
+class QGenericArgumentData
+{
+public:
+ explicit QGenericArgumentData(const QMetaType &type, const void *aData) :
+ m_type(type), m_argument(m_type.name(), aData)
+ {
+ }
+
+ ~QGenericArgumentData()
+ {
+ if (m_type.isValid())
+ m_type.destroy(m_argument.data());
+ }
+
+ const QMetaType m_type;
+ const QGenericArgument m_argument;
+};
+
+class QGenericReturnArgumentData
+{
+public:
+ explicit QGenericReturnArgumentData(const QMetaType &type, void *aData) :
+ m_type(type), m_argument(m_type.name(), aData)
+ {
+ }
+
+ ~QGenericReturnArgumentData()
+ {
+ if (m_type.isValid())
+ m_type.destroy(m_argument.data());
+ }
+
+ const QMetaType m_type;
+ const QGenericReturnArgument m_argument;
+};
+
+QGenericArgumentHolder::QGenericArgumentHolder()
+{
+}
+
+QGenericArgumentHolder::QGenericArgumentHolder(const QMetaType &type, const void *aData) :
+ d(std::make_shared<QGenericArgumentData>(type, aData))
+{
+}
+
+QGenericArgumentHolder::QGenericArgumentHolder(const QGenericArgumentHolder &) = default;
+QGenericArgumentHolder::QGenericArgumentHolder(QGenericArgumentHolder &&) = default;
+QGenericArgumentHolder &QGenericArgumentHolder::operator=(const QGenericArgumentHolder &) = default;
+QGenericArgumentHolder &QGenericArgumentHolder::operator=(QGenericArgumentHolder &&) = default;
+QGenericArgumentHolder::~QGenericArgumentHolder() = default;
+
+QGenericArgument QGenericArgumentHolder::toGenericArgument() const
+{
+ return d ? d->m_argument : QGenericArgument{};
+}
+
+QMetaType QGenericArgumentHolder::metaType() const
+{
+ return d ? d->m_type : QMetaType{};
+}
+
+const void *QGenericArgumentHolder::data() const
+{
+ return d ? d->m_argument.data() : nullptr;
+}
+
+QGenericReturnArgumentHolder::QGenericReturnArgumentHolder(const QMetaType &type, void *aData) :
+ d(std::make_shared<QGenericReturnArgumentData>(type, aData))
+{
+}
+
+QGenericReturnArgumentHolder::QGenericReturnArgumentHolder(const QGenericReturnArgumentHolder &) = default;
+QGenericReturnArgumentHolder::QGenericReturnArgumentHolder(QGenericReturnArgumentHolder &&) = default;
+QGenericReturnArgumentHolder &QGenericReturnArgumentHolder::operator=(const QGenericReturnArgumentHolder &) = default;
+QGenericReturnArgumentHolder &QGenericReturnArgumentHolder::operator=(QGenericReturnArgumentHolder &&) = default;
+QGenericReturnArgumentHolder::~QGenericReturnArgumentHolder() = default;
+
+QGenericReturnArgument QGenericReturnArgumentHolder::toGenericReturnArgument() const
+{
+ return d->m_argument;
+}
+
+QMetaType QGenericReturnArgumentHolder::metaType() const
+{
+ return d->m_type;
+}
+
+const void *QGenericReturnArgumentHolder::data() const
+{
+ return d->m_argument.data();
+}
+
+} // namespace QtCoreHelper
+
+QT_END_NAMESPACE
diff --git a/sources/pyside6/PySide6/QtCore/typesystem_core.xml b/sources/pyside6/PySide6/QtCore/typesystem_core.xml
index cfceaae80..885b53874 100644
--- a/sources/pyside6/PySide6/QtCore/typesystem_core.xml
+++ b/sources/pyside6/PySide6/QtCore/typesystem_core.xml
@@ -1,45 +1,10 @@
<?xml version="1.0"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtCore">
+<typesystem package="PySide6.QtCore"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<?if windows?>
<load-typesystem name="QtCore/typesystem_core_win.xml" generate="yes"/>
<?endif?>
diff --git a/sources/pyside6/PySide6/QtCore/typesystem_core_common.xml b/sources/pyside6/PySide6/QtCore/typesystem_core_common.xml
index fad2ee16c..0a08928f5 100644
--- a/sources/pyside6/PySide6/QtCore/typesystem_core_common.xml
+++ b/sources/pyside6/PySide6/QtCore/typesystem_core_common.xml
@@ -1,62 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
<typesystem package="PySide6.QtCore">
+ <load-typesystem name="templates/common.xml" generate="no"/>
<load-typesystem name="templates/core_common.xml" generate="no"/>
- <custom-type name="str"/>
- <custom-type name="PyBytes"/>
- <custom-type name="PyByteArray"/>
- <custom-type name="PyCallable"/>
- <custom-type name="PyObject"/>
- <custom-type name="PyPathLike"/>
- <custom-type name="PySequence"/>
- <custom-type name="PyTypeObject"/>
- <custom-type name="PyUnicode"/>
<custom-type name="list of QAbstractAnimation"/>
<custom-type name="PySideSignalInstance"
check-function="PySide::Signal::checkInstanceType"/>
<!--
<function signature="qChecksum(QByteArrayView data, Qt::ChecksumType)"/>
-->
+ <extra-includes>
+ <include file-name="pysidemetatype.h" location="global"/>
+ <include file-name="pysideutils.h" location="global"/> <!-- QString conversion -->
+ <include file-name="signalmanager.h" location="global"/>
+ <!-- QtCoreHelper::QGenericReturnArgumentHolder -->
+ <include file-name="qtcorehelper.h" location="local"/>
+ </extra-includes>
+
<function signature="qFastCos(qreal)" since="4.6"/>
<function signature="qFastSin(qreal)" since="4.6"/>
<function signature="qFuzzyCompare(double,double)"/>
@@ -67,28 +31,74 @@
<function signature="qIsNull(double)"/>
<!-- Qt5: gone <function signature="qRound(qreal)"/> -->
<function signature="qtTrId(const char*,int)" since="4.6"/>
- <function signature="qVersion()"/>
- <function signature="qCompress(const uchar*,qsizetype,int)"/>
- <function signature="qCompress(const QByteArray&amp;,int)"/>
- <function signature="qUncompress(const uchar*,qsizetype)"/>
- <function signature="qUncompress(const QByteArray&amp;)"/>
- <function signature="qFormatLogMessage(QtMsgType,const QMessageLogContext&amp;,const QString&amp;)"/>
- <function signature="qSetMessagePattern(const QString&amp;)"/>
+ <function signature="qVersion()">
+ <modify-function>
+ <modify-argument index="return" pyi-type="str"/>
+ </modify-function>
+ </function>
+ <!-- Move PyBuffer overload to front to avoid conversion PyBuffer->QByteArray -->
+ <function signature="qCompress(const uchar*,qsizetype,int)" overload-number="0">
+ <modify-function>
+ <modify-argument index="1">
+ <replace-type modified-type="PyBuffer"/>
+ </modify-argument>
+ <inject-code file="../glue/qtcore.cpp" snippet="qcompress-buffer"/>
+ </modify-function>
+ </function>
+ <function signature="qCompress(const QByteArray&amp;,int)" overload-number="1"/>
+ <!-- Move PyBuffer overload to front to avoid conversion PyBuffer->QByteArray -->
+ <function signature="qUncompress(const uchar*,qsizetype)" overload-number="0">
+ <modify-function>
+ <modify-argument index="1">
+ <replace-type modified-type="PyBuffer"/>
+ </modify-argument>
+ <inject-code file="../glue/qtcore.cpp" snippet="quncompress-buffer"/>
+ </modify-function>
+ </function>
+ <function signature="qUncompress(const QByteArray&amp;)" overload-number="1"/>
+ <function signature="qFormatLogMessage(QtMsgType,const QMessageLogContext&amp;,const QString&amp;)"
+ doc-file="qtlogging"/>
+ <function signature="qSetMessagePattern(const QString&amp;)" doc-file="qtlogging"/>
<inject-code class="native" position="beginning" file="../glue/qtcore.cpp" snippet="include-pyside"/>
-
+ <inject-code class="native" position="beginning" file="../glue/qtcore.cpp"
+ snippet="qarg_helper"/>
+ <inject-code class="native" position="beginning" file="../glue/qtcore.cpp"
+ snippet="darwin_permission_plugin"/>
<add-function signature="qDebug(const char*)">
<inject-code file="../glue/qtcore.cpp" snippet="use-stream-for-format-security"/>
+ <modify-argument index="1" pyi-type="str"/>
</add-function>
<add-function signature="qCritical(const char*)">
<inject-code file="../glue/qtcore.cpp" snippet="use-stream-for-format-security"/>
+ <modify-argument index="1" pyi-type="str"/>
</add-function>
<add-function signature="qFatal(const char*)">
<inject-code file="../glue/qtcore.cpp" snippet="qfatal"/>
+ <modify-argument index="1" pyi-type="str"/>
</add-function>
<add-function signature="qWarning(const char*)">
<inject-code file="../glue/qtcore.cpp" snippet="use-stream-for-format-security"/>
+ <modify-argument index="1" pyi-type="str"/>
+ </add-function>
+
+ <add-function signature="Q_ARG(PyObject *@type@, PyObject *@value@)"
+ return-type="QtCoreHelper::QGenericArgumentHolder">
+ <inject-code file="../glue/qtcore.cpp" snippet="q_arg"/>
+ <inject-documentation format="target" mode="append">
+ This function takes a type (or a type string) and a value of that type
+ and returns an internal object that can be passed to
+ QMetaObject.invokeMethod(). See also Q_RETURN_ARG().
+ </inject-documentation>
+ </add-function>
+ <add-function signature="Q_RETURN_ARG(PyObject *@type@)"
+ return-type="QtCoreHelper::QGenericReturnArgumentHolder">
+ <inject-code file="../glue/qtcore.cpp" snippet="q_return_arg"/>
+ <inject-documentation format="target" mode="append">
+ This macro takes a type (or a type string) a value of which is then
+ returned by QMetaObject::invokeMethod(). See also Q_ARG().
+ </inject-documentation>
</add-function>
<!-- TODO: We do not support void* or const void* as arg -->
@@ -104,52 +114,53 @@
<rejection class="QtSharedPointer"/>
<rejection class="QtStringBuilder"/>
+ <rejection class="q20"/>
+ <rejection class="q23"/>
+ <rejection class="q_has_char8_t"/>
+ <rejection class="QContainerInfo"/>
+ <rejection class="QHashPrivate"/>
+ <rejection class="q_no_char8_t"/>
+ <rejection class="Qt::Literals"/>
+ <rejection class="QtLiterals"/>
+ <rejection class="QtMetaContainerPrivate"/>
+ <rejection class="QtTsan"/>
+ <rejection class="QTypeTraits"/>
+ <rejection class="qxp"/>
+
<rejection class="QChildEvent" field-name="c"/>
<rejection class="QTimerEvent" field-name="id"/>
<rejection class="QEvent" field-name="t"/>
<rejection class="*" function-name="tr"/>
- <rejection class="*" function-name="qt_metacast"/>
<!-- From Qt4.6 -->
<rejection class="*" field-name="d_ptr"/>
- <rejection class="*" field-name="staticQtMetaObject"/>
- <rejection class="*" function-name="qobject_interface_iid"/>
- <rejection class="*" function-name="qGetPtrHelper"/>
- <rejection class="*" function-name="q_check_ptr"/>
- <rejection class="*" function-name="qobject_interface_iid&lt;QTextCodecFactoryInterface*&gt;"/>
- <rejection class="*" function-name="qobject_interface_iid&lt;QFactoryInterface*&gt;"/>
- <rejection class="*" function-name="qRegisterAnimationInterpolator"/>
- <rejection class="*" function-name="qvariant_cast&lt;QVariant&gt;"/>
- <rejection class="*" function-name="qVariantSetValue&lt;QVariant&gt;"/>
- <rejection class="*" function-name="qReallocAligned"/>
- <rejection class="*" function-name="qMallocAligned"/>
- <rejection class="*" function-name="qFreeAligned"/>
<rejection class="QMetaMethod" enum-name="Attributes"/>
+ <rejection class="QMetaMethod" field-name="data"/>
+ <!-- Note: Default parameter values of Disambiguated_t as defined by
+ QT6_DECL_NEW_OVERLOAD_TAIL are not seen by the clang parser since it
+ is relying on code snippets for the values. -->
+ <rejection class="Qt" field-name="Disambiguated"/>
+ <rejection class="" enum-name="QCborNegativeInteger"/>
<rejection class="*" argument-type="^qfloat16&amp;?$"/>
- <rejection class="*" argument-type="QLatin1String"/>
<rejection class="*" argument-type="QTSMFI"/>
<rejection class="*" argument-type="QTSMFC"/>
<rejection class="*" argument-type="QtPrivate::QSlotObjectBase*"/>
<rejection class="*" argument-type="^Q\w+Private( const)?\&amp;$"/>
<!-- Note: "QHelpModel(QHelpEnginePrivate*)" is needed -->
<rejection class="*" argument-type="^Q[^H]\w+Private( const)?\*$"/>
- <rejection class="*" argument-type="^.*::QPrivateSignal$"/>
<rejection class="*" argument-type="Qt::Initialization"/>
<rejection class="*" argument-type="FILE*"/>
<rejection class="*" argument-type="std::chrono::milliseconds"/>
<rejection class="*" argument-type="^std::nullptr_t&amp;?$"/>
<rejection class="*" argument-type="^std::initializer_list&lt;.*$"/>
- <rejection class="*" argument-type="^std::list&lt;[^&gt;]&gt; const&amp;$"/>
- <rejection class="*" argument-type="std::string const&amp;"/>
- <rejection class="*" argument-type="^std::vector&lt;[^&gt;]&gt; const&amp;$"/>
<!-- From Qt4.6 ^^^ -->
-
- <enum-type name="QtMsgType"/>
- <enum-type name="QCborSimpleType" since="5.12"/>
- <enum-type name="QCborKnownTags" since="5.12"/>
+ <enum-type name="QtMsgType" doc-file="qtlogging"/>
+ <enum-type name="QCborSimpleType" doc-file="qtcborcommon"/>
+ <enum-type name="QCborKnownTags" doc-file="qtcborcommon"/>
+ <enum-type name="QCborTag" doc-file="qtcborcommon"/>
<primitive-type name="qint8"/>
<primitive-type name="qint16"/>
@@ -158,39 +169,16 @@
<primitive-type name="quint16"/>
<primitive-type name="quint32"/>
<primitive-type name="quint64"/>
- <primitive-type name="double"/>
<primitive-type name="qreal"/>
- <primitive-type name="float"/>
<primitive-type name="qint64"/>
- <primitive-type name="unsigned long long"/>
- <primitive-type name="long long"/>
<primitive-type name="qlonglong" target-lang-api-name="PyLong"/>
<primitive-type name="qulonglong" target-lang-api-name="PyLong"/>
<primitive-type name="qsizetype" target-lang-api-name="PyLong"/>
<primitive-type name="size_t" target-lang-api-name="PyLong"/>
- <primitive-type name="short"/>
- <primitive-type name="signed short"/>
- <primitive-type name="signed short int"/>
<primitive-type name="ushort" target-lang-api-name="PyLong"/>
- <primitive-type name="unsigned short int"/>
- <primitive-type name="unsigned short"/>
- <primitive-type name="char"/>
- <primitive-type name="signed char"/>
<primitive-type name="uchar"/>
- <primitive-type name="unsigned char"/>
- <primitive-type name="int"/>
- <primitive-type name="signed int"/>
<primitive-type name="uint"/>
<primitive-type name="ulong"/>
- <primitive-type name="unsigned int"/>
- <primitive-type name="signed long"/>
- <primitive-type name="signed long int"/>
- <primitive-type name="long"/>
- <primitive-type name="unsigned long int"/>
- <primitive-type name="unsigned long">
- <!-- FIXME APIExtractor or shiboken do not support multiple includes by primitive type -->
- <include file-name="signalmanager.h" location="global"/>
- </primitive-type>
<primitive-type name="int8_t"/>
<primitive-type name="uint8_t"/>
<primitive-type name="int16_t"/>
@@ -209,21 +197,14 @@
<primitive-type name="Qt::HANDLE" target-lang-api-name="PyLong"/>
<?endif?>
- <primitive-type name="bool" target-lang-api-name="PyBool">
- <conversion-rule>
- <native-to-target file="../glue/qtcore.cpp" snippet="return-pybool"/>
- <target-to-native>
- <add-conversion type="PyBool" file="../glue/qtcore.cpp" snippet="conversion-pybool"/>
- </target-to-native>
- </conversion-rule>
- </primitive-type>
-
<!-- Qt5: add the new pointer-ish types -->
<primitive-type name="qintptr" target-lang-api-name="PyLong">
<conversion-rule>
<native-to-target file="../glue/qtcore.cpp" snippet="return-pylong"/>
<target-to-native>
- <add-conversion type="PyLong" file="../glue/qtcore.cpp" snippet="conversion-pylong"/>
+ <add-conversion type="PyLong">
+ <insert-template name="shiboken_conversion_pylong_to_cpp"/>
+ </add-conversion>
</target-to-native>
</conversion-rule>
</primitive-type>
@@ -239,11 +220,20 @@
<conversion-rule>
<native-to-target file="../glue/qtcore.cpp" snippet="return-pylong"/>
<target-to-native>
- <add-conversion type="PyLong" file="../glue/qtcore.cpp" snippet="conversion-pylong"/>
+ <add-conversion type="PyLong">
+ <insert-template name="shiboken_conversion_pylong_to_cpp"/>
+ </add-conversion>
+ </target-to-native>
+ </conversion-rule>
+ </primitive-type>
+ <primitive-type name="QFunctionPointer" target-lang-api-name="PyLong">
+ <conversion-rule>
+ <native-to-target file="../glue/qtcore.cpp" snippet="return-qfunctionpointer-pylong"/>
+ <target-to-native>
+ <add-conversion type="PyLong" file="../glue/qtcore.cpp" snippet="conversion-pylong-qfunctionpointer"/>
</target-to-native>
</conversion-rule>
</primitive-type>
-
<primitive-type name="QString" target-lang-api-name="PyUnicode">
<include file-name="QString" location="global"/>
<conversion-rule>
@@ -262,6 +252,17 @@
</conversion-rule>
</primitive-type>
+ <primitive-type name="QLatin1String" target-lang-api-name="PyUnicode">
+ <include file-name="QtCore/qlatin1stringview.h" location="global"/>
+ <conversion-rule>
+ <native-to-target file="../glue/qtcore.cpp" snippet="return-pyunicode-from-qlatin1string"/>
+ <target-to-native>
+ <add-conversion type="PyString" check="qLatin1StringCheck(%in)"
+ file="../glue/qtcore.cpp" snippet="conversion-pystring-qlatin1string"/>
+ </target-to-native>
+ </conversion-rule>
+ </primitive-type>
+
<primitive-type name="QAnyStringView" target-lang-api-name="PyUnicode" view-on="QString">
<include file-name="QAnyStringView" location="global"/>
<conversion-rule>
@@ -281,6 +282,9 @@
</primitive-type>
<primitive-type name="QVariant" target-lang-api-name="PyObject">
+ <extra-includes>
+ <include file-name="optional" location="global"/>
+ </extra-includes>
<conversion-rule>
<native-to-target file="../glue/qtcore.cpp" snippet="return-qvariant"/>
<target-to-native>
@@ -290,7 +294,6 @@
<add-conversion type="QByteArray" file="../glue/qtcore.cpp" snippet="conversion-qbytearray"/>
<add-conversion type="PyFloat" check="PyFloat_CheckExact(%in)" file="../glue/qtcore.cpp" snippet="conversion-pyfloat"/>
<add-conversion type="PyLong" check="PyLong_CheckExact(%in)" file="../glue/qtcore.cpp" snippet="conversion-qlonglong"/>
- <add-conversion type="SbkEnumType" file="../glue/qtcore.cpp" snippet="conversion-pyint"/>
<add-conversion type="SbkObject" file="../glue/qtcore.cpp" snippet="conversion-sbkobject"/>
<add-conversion type="PyDict" check="PyDict_CheckExact(%in)" file="../glue/qtcore.cpp" snippet="conversion-pydict"/>
<add-conversion type="PyList" check="PyList_Check(%in)" file="../glue/qtcore.cpp" snippet="conversion-pylist"/>
@@ -303,13 +306,13 @@
<include file-name="QStringList" location="global"/>
<conversion-rule>
<native-to-target>
- <insert-template name="cpplist_to_pylist_conversion">
+ <insert-template name="shiboken_conversion_cppsequence_to_pylist">
<replace from="%INTYPE_0" to="QString"/>
</insert-template>
</native-to-target>
<target-to-native>
<add-conversion type="PySequence">
- <insert-template name="pyseq_to_cpplist_conversion">
+ <insert-template name="shiboken_conversion_pyiterable_to_cppsequentialcontainer_reserve">
<replace from="%OUTTYPE_0" to="QString"/>
</insert-template>
</add-conversion>
@@ -317,24 +320,24 @@
</conversion-rule>
</primitive-type>
- <value-type name="QCborError" since="5.12">
+ <value-type name="QCborError">
<enum-type name="Code"/>
<include file-name="qcborcommon.h" location="global"/>
</value-type>
- <value-type name="QCborParserError" since="5.12">
+ <value-type name="QCborParserError">
<include file-name="qcborvalue.h" location="global"/>
</value-type>
- <value-type name="QCborValue" since="5.12">
+ <value-type name="QCborValue">
<enum-type name="EncodingOption" flags="EncodingOptions"/>
<enum-type name="DiagnosticNotationOption" flags="DiagnosticNotationOptions"/>
<enum-type name="Type"/>
</value-type>
- <value-type name="QCborArray" since="5.12"/>
- <value-type name="QCborMap" since="5.12"/>
+ <value-type name="QCborArray"/>
+ <value-type name="QCborMap"/>
- <object-type name="QCborStreamReader" since="5.12">
+ <object-type name="QCborStreamReader">
<enum-type name="StringResultCode"/>
<enum-type name="Type"/>
<include file-name="qcborstream.h" location="global"/>
@@ -344,9 +347,9 @@
<!-- 32bit (qsizetype = int) -->
<modify-function signature="readStringChunk(char*,int)" remove="all"/>
</object-type>
- <typedef-type name="QCborStringResultString" source="QCborStreamReader::StringResult&lt;QString&gt;" since="5.12"/>
- <typedef-type name="QCborStringResultByteArray" source="QCborStreamReader::StringResult&lt;QByteArray&gt;" since="5.12"/>
- <object-type name="QCborStreamWriter" since="5.12">
+ <typedef-type name="QCborStringResultString" source="QCborStreamReader::StringResult&lt;QString&gt;"/>
+ <typedef-type name="QCborStringResultByteArray" source="QCborStreamReader::StringResult&lt;QByteArray&gt;"/>
+ <object-type name="QCborStreamWriter">
<include file-name="qcborstream.h" location="global"/>
</object-type>
@@ -359,11 +362,36 @@
</conversion-rule>
</primitive-type>
- <value-type name="QKeyCombination"/>
+ <value-type name="QKeyCombination">
+ <!-- The following do-nothing function is needed for coercion of constructs like
+ QKeyCombination(Qt.CTRL | Qt.Key_B)
+ -->
+ <add-function signature="QKeyCombination(QKeyCombination)">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp"
+ snippet="keycombination-from-keycombination"/>
+ </add-function>
+ <!-- This is just a copy of KeyModifier to handle Modifier the same -->
+ <add-function signature="QKeyCombination(Qt::Modifier @modifiers@, Qt::Key @key@)">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp"
+ snippet="keycombination-from-modifier"/>
+ </add-function>
+ </value-type>
<value-type name="QMetaType">
- <enum-type name="Type"/>
+ <extra-includes>
+ <include file-name="pysidemetatype.h" location="global"/>
+ </extra-includes>
+ <enum-type name="Type" python-type="IntEnum"/>
<enum-type name="TypeFlag" flags="TypeFlags"/>
+ <add-function signature="QMetaType(PyTypeObject*)">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp"
+ snippet="metatype-from-type"/>
+ </add-function>
+ <!-- PYSIDE-1735: The class QMetaType.Type must be allowed because int is gone -->
+ <add-function signature="QMetaType(QMetaType::Type)">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp"
+ snippet="metatype-from-metatype-type"/>
+ </add-function>
<conversion-rule>
<native-to-target file="../glue/qtcore.cpp" snippet="conversion-qmetatype-pytypeobject"/>
<target-to-native>
@@ -372,40 +400,27 @@
</conversion-rule>
</value-type>
- <primitive-type name="QModelIndexList">
- <include file-name="qabstractitemmodel.h" location="global"/>
- <conversion-rule>
- <native-to-target>
- <insert-template name="cpplist_to_pylist_conversion">
- <replace from="%INTYPE_0" to="QModelIndex"/>
- </insert-template>
- </native-to-target>
- <target-to-native>
- <add-conversion type="PySequence">
- <insert-template name="pyseq_to_cpplist_conversion">
- <replace from="%OUTTYPE_0" to="QModelIndex"/>
- </insert-template>
- </add-conversion>
- </target-to-native>
- </conversion-rule>
- </primitive-type>
+ <value-type name="QNativeIpcKey" since="6.6">
+ <enum-type name="Type"/>
+ </value-type>
<container-type name="QSet" type="set">
<include file-name="QSet" location="global"/>
<conversion-rule>
<native-to-target>
- <insert-template name="cpplist_to_pylist_conversion"/>
+ <insert-template name="shiboken_conversion_cppsequence_to_pyset"/>
</native-to-target>
<target-to-native>
<add-conversion type="PySequence">
- <insert-template name="pyseq_to_cpplist_conversion"/>
+ <insert-template name="shiboken_conversion_pyiterable_to_cppsetcontainer"/>
</add-conversion>
</target-to-native>
</conversion-rule>
</container-type>
<!-- FIXME: Which one is it going to be? -->
- <container-type name="QList" type="list">
+ <container-type name="QList" type="list"
+ opaque-containers="int:QIntList;QPoint:QPointList;QPointF:QPointFList">
<include file-name="QList" location="global"/>
<declare-function signature="append(T)" return-type="void"/>
<declare-function signature="insert(qsizetype,T)" return-type="void"/>
@@ -417,11 +432,11 @@
<!-- operator << needs to be declared in inheriting class -->
<conversion-rule>
<native-to-target>
- <insert-template name="cpplist_to_pylist_conversion"/>
+ <insert-template name="shiboken_conversion_cppsequence_to_pylist"/>
</native-to-target>
<target-to-native>
<add-conversion type="PySequence">
- <insert-template name="pyseq_to_cpplist_conversion"/>
+ <insert-template name="shiboken_conversion_pyiterable_to_cppsequentialcontainer_reserve"/>
</add-conversion>
</target-to-native>
</conversion-rule>
@@ -431,11 +446,11 @@
<include file-name="QStack" location="global"/>
<conversion-rule>
<native-to-target>
- <insert-template name="cpplist_to_pylist_conversion"/>
+ <insert-template name="shiboken_conversion_cppsequence_to_pylist"/>
</native-to-target>
<target-to-native>
<add-conversion type="PySequence">
- <insert-template name="pyseq_to_cpplist_conversion"/>
+ <insert-template name="shiboken_conversion_pyiterable_to_cppsequentialcontainer_reserve"/>
</add-conversion>
</target-to-native>
</conversion-rule>
@@ -445,11 +460,11 @@
<include file-name="QQueue" location="global"/>
<conversion-rule>
<native-to-target>
- <insert-template name="cpplist_to_pylist_conversion"/>
+ <insert-template name="shiboken_conversion_cppsequence_to_pylist"/>
</native-to-target>
<target-to-native>
<add-conversion type="PySequence">
- <insert-template name="pyseq_to_cpplist_conversion"/>
+ <insert-template name="shiboken_conversion_pyiterable_to_cppsequentialcontainer_reserve"/>
</add-conversion>
</target-to-native>
</conversion-rule>
@@ -458,14 +473,13 @@
<container-type name="QHash" type="hash">
<include file-name="QHash" location="global"/>
<!-- Include to make enum flags work. -->
- <include file-name="pysideqflags.h" location="global"/>
<conversion-rule>
<native-to-target>
- <insert-template name="cppmap_to_pymap_conversion"/>
+ <insert-template name="shiboken_conversion_qmap_to_pydict"/>
</native-to-target>
<target-to-native>
<add-conversion type="PyDict">
- <insert-template name="pydict_to_cppmap_conversion"/>
+ <insert-template name="shiboken_conversion_pydict_to_qmap"/>
</add-conversion>
</target-to-native>
</conversion-rule>
@@ -474,28 +488,29 @@
<container-type name="QMultiHash" type="multi-hash">
<include file-name="QMultiHash" location="global"/>
<!-- Include to make enum flags work. -->
- <include file-name="pysideqflags.h" location="global"/>
<conversion-rule>
<native-to-target>
- <insert-template name="cppmultihash_to_pymap_conversion"/>
+ <insert-template name="shiboken_conversion_qmultihash_to_pydict"/>
</native-to-target>
<target-to-native>
<add-conversion type="PyDict">
- <insert-template name="pydict_to_cppmultimap_conversion"/>
+ <insert-template name="shiboken_conversion_pydict_to_qmultihash"/>
</add-conversion>
</target-to-native>
</conversion-rule>
</container-type>
+ <value-type name="QHashSeed" since="6.2"/>
+
<container-type name="QMap" type="map">
<include file-name="QMap" location="global"/>
<conversion-rule>
<native-to-target>
- <insert-template name="cppmap_to_pymap_conversion"/>
+ <insert-template name="shiboken_conversion_qmap_to_pydict"/>
</native-to-target>
<target-to-native>
<add-conversion type="PyDict">
- <insert-template name="pydict_to_cppmap_conversion"/>
+ <insert-template name="shiboken_conversion_pydict_to_qmap"/>
</add-conversion>
</target-to-native>
</conversion-rule>
@@ -504,11 +519,11 @@
<include file-name="QMultiMap" location="global"/>
<conversion-rule>
<native-to-target>
- <insert-template name="cppmultimap_to_pymap_conversion"/>
+ <insert-template name="shiboken_conversion_qmultimap_to_pydict"/>
</native-to-target>
<target-to-native>
<add-conversion type="PyDict">
- <insert-template name="pydict_to_cppmultimap_conversion"/>
+ <insert-template name="shiboken_conversion_pydict_to_qmultihash"/>
</add-conversion>
</target-to-native>
</conversion-rule>
@@ -517,19 +532,13 @@
<container-type name="QPair" type="pair">
<include file-name="QPair" location="global"/>
<conversion-rule>
- <native-to-target file="../glue/qtcore.cpp" snippet="return-qpair"/>
- <target-to-native>
- <add-conversion type="PySequence" file="../glue/qtcore.cpp" snippet="conversion-qpair-pysequence"/>
- </target-to-native>
- </conversion-rule>
- </container-type>
-
- <!-- QPair is implemented with std::pair since Qt 6 -->
- <container-type name="std::pair" type="pair">
- <conversion-rule>
- <native-to-target file="../glue/qtcore.cpp" snippet="return-qpair"/>
+ <native-to-target>
+ <insert-template name="shiboken_conversion_cpppair_to_pytuple"/>
+ </native-to-target>
<target-to-native>
- <add-conversion type="PySequence" file="../glue/qtcore.cpp" snippet="conversion-qpair-pysequence"/>
+ <add-conversion type="PySequence">
+ <insert-template name="shiboken_conversion_pysequence_to_cpppair"/>
+ </add-conversion>
</target-to-native>
</conversion-rule>
</container-type>
@@ -542,53 +551,29 @@
<rejection class="*" field-name="d"/>
<rejection class="*" field-name="staticMetaObject"/>
<!-- not support array in property -->
- <rejection class="QTextCodec::ConverterState" field-name="state_data"/>
<rejection class="QUuid" field-name="data1"/>
<rejection class="QUuid" field-name="data2"/>
<rejection class="QUuid" field-name="data3"/>
<rejection class="QUuid" field-name="data4"/>
- <rejection class="" enum-name="QtValidLicenseForTestModule"/>
- <rejection class="" enum-name="QtValidLicenseForDBusModule"/>
- <rejection class="" enum-name="QtValidLicenseForSqlModule"/>
- <rejection class="" enum-name="QtValidLicenseForOpenGLModule"/>
- <rejection class="" enum-name="QtValidLicenseForScriptToolsModule"/>
- <rejection class="" enum-name="__codecvt_result"/>
- <rejection class="" enum-name="enum_1"/>
- <rejection class="" enum-name="enum_2"/>
- <rejection class="" enum-name="QtValidLicenseForXmlModule"/>
- <rejection class="" enum-name="QtValidLicenseForActiveQtModule"/>
- <rejection class="" enum-name="QtValidLicenseForCoreModule"/>
- <rejection class="" enum-name="QtValidLicenseForNetworkModule"/>
- <rejection class="" enum-name="QtValidLicenseForSvgModule"/>
- <rejection class="" enum-name="QtValidLicenseForGuiModule"/>
- <rejection class="" enum-name="QtValidLicenseForHelpModule"/>
<!-- Internal -->
- <rejection class="QAbstractFileEngine"/> <!--
- <rejection class="QAbstractFileEngine" function-name="endEntryList"/>
- <rejection class="QAbstractFileEngine" function-name="extension"/> XXX -->
<rejection class="QCoreApplication" function-name="compressEvent"/>
- <rejection class="QCoreApplication" function-name="eventFilter"/>
- <rejection class="QCoreApplication" function-name="filterEvent"/>
- <rejection class="QCoreApplication" function-name="setEventFilter"/>
- <rejection class="QFile" function-name="setDecodingFunction"/>
- <rejection class="QFile" function-name="setEncodingFunction"/>
- <rejection class="QRegion" function-name="cleanUp"/>
- <rejection class="QSettings" function-name="registerFormat"/>
- <rejection class="Qt" function-name="qt_getEnumMetaObject"/>
- <rejection class="Qt" function-name="qt_getEnumName"/>
<namespace-type name="Qt">
- <enum-type name="AlignmentFlag" flags="Alignment"/>
+ <extra-includes>
+ <include file-name="QtCore/QProperty" location="global"/>
+ </extra-includes>
+ <enum-type name="AlignmentFlag" python-type="IntFlag" flags="Alignment"/>
<enum-type name="AnchorPoint" since="4.6"/>
+ <enum-type name="ColorScheme" since="6.5"/>
<enum-type name="ApplicationAttribute"/>
- <enum-type name="ApplicationState" flags="ApplicationStates" since="5.1"/>
+ <enum-type name="ApplicationState" flags="ApplicationStates"/>
<enum-type name="ArrowType"/>
<enum-type name="AspectRatioMode"/>
<enum-type name="Axis"/>
<enum-type name="BGMode"/>
<enum-type name="BrushStyle"/>
<enum-type name="CaseSensitivity"/>
- <enum-type name="ChecksumType" since="5.9"/>
+ <enum-type name="ChecksumType"/>
<enum-type name="CheckState"/>
<enum-type name="ClipOperation"/>
<enum-type name="ConnectionType"/>
@@ -601,57 +586,58 @@
<enum-type name="DockWidgetArea" flags="DockWidgetAreas"/>
<enum-type name="DockWidgetAreaSizes"/>
<enum-type name="DropAction" flags="DropActions"/>
- <enum-type name="Edge" flags="Edges" since="5.1"/>
+ <enum-type name="Edge" flags="Edges"/>
<enum-type name="EventPriority"/>
<enum-type name="FillRule"/>
- <enum-type name="FindChildOption" flags="FindChildOptions" since="5.0"/>
- <enum-type name="FocusPolicy"/>
+ <enum-type name="FindChildOption" flags="FindChildOptions"/>
+ <enum-type name="FocusPolicy" python-type="IntFlag"/>
<enum-type name="FocusReason"/>
<enum-type name="GestureFlag" flags="GestureFlags" since="4.6"/>
<enum-type name="GestureState" since="4.6"/>
- <enum-type name="GestureType" since="4.6"/>
+ <enum-type name="GestureType" python-type="IntEnum" since="4.6"/>
<enum-type name="GlobalColor"/>
- <enum-type name="HighDpiScaleFactorRoundingPolicy" since="5.14"/>
+ <enum-type name="HighDpiScaleFactorRoundingPolicy"/>
<enum-type name="HitTestAccuracy"/>
<enum-type name="ImageConversionFlag" flags="ImageConversionFlags"/>
<enum-type name="InputMethodHint" flags="InputMethodHints" since="4.6"/>
<enum-type name="InputMethodQuery" flags="InputMethodQueries"/>
- <enum-type name="EnterKeyType" since="5.6"/>
- <enum-type name="ItemDataRole"/>
+ <enum-type name="EnterKeyType"/>
+ <enum-type name="ItemDataRole" python-type="IntEnum"/>
<enum-type name="ItemFlag" flags="ItemFlags"/>
<enum-type name="ItemSelectionMode"/>
- <enum-type name="ItemSelectionOperation" since="5.5"/>
- <enum-type name="Key"/>
+ <enum-type name="ItemSelectionOperation"/>
+ <enum-type name="Key" python-type="IntEnum"/>
<enum-type name="KeyboardModifier" flags="KeyboardModifiers"/>
<enum-type name="LayoutDirection"/>
<enum-type name="MaskMode"/>
<enum-type name="MatchFlag" flags="MatchFlags"/>
- <enum-type name="Modifier"/>
+ <enum-type name="Modifier" python-type="Flag"/>
<enum-type name="MouseButton" flags="MouseButtons"/>
- <enum-type name="MouseEventFlag" flags="MouseEventFlags" since="5.3"/>
- <enum-type name="MouseEventSource" since="5.3"/>
- <enum-type name="NativeGestureType" since="5.0"/>
+ <enum-type name="MouseEventFlag" flags="MouseEventFlags"/>
+ <enum-type name="MouseEventSource"/>
+ <enum-type name="NativeGestureType"/>
<enum-type name="NavigationMode" since="4.6"/>
<enum-type name="Orientation" flags="Orientations"/>
<enum-type name="PenCapStyle"/>
<enum-type name="PenJoinStyle"/>
<enum-type name="PenStyle"/>
- <enum-type name="ReturnByValueConstant" since="6.0"/>
- <enum-type name="ScreenOrientation" flags="ScreenOrientations" since="5.0"/>
+ <enum-type name="PermissionStatus" since="6.5"/>
+ <enum-type name="ReturnByValueConstant"/>
+ <enum-type name="ScreenOrientation" flags="ScreenOrientations"/>
<enum-type name="ScrollBarPolicy"/>
- <enum-type name="ScrollPhase" since="5.2"/>
+ <enum-type name="ScrollPhase"/>
<enum-type name="ShortcutContext"/>
<enum-type name="SizeHint"/>
<enum-type name="SizeMode"/>
<enum-type name="SortOrder"/>
- <enum-type name="SplitBehaviorFlags" flags="SplitBehavior" since="5.14"/>
- <enum-type name="TabFocusBehavior" since="5.5"/>
+ <enum-type name="SplitBehaviorFlags" flags="SplitBehavior"/>
+ <enum-type name="TabFocusBehavior"/>
<enum-type name="TextElideMode"/>
- <enum-type name="TextFlag"/>
+ <enum-type name="TextFlag" python-type="IntFlag"/>
<enum-type name="TextFormat"/>
<enum-type name="TextInteractionFlag" flags="TextInteractionFlags"/>
<enum-type name="TileRule" since="4.6"/>
- <enum-type name="TimerType" since="5.0"/>
+ <enum-type name="TimerType"/>
<enum-type name="TimeSpec"/>
<enum-type name="ToolBarArea" flags="ToolBarAreas"/>
<enum-type name="ToolBarAreaSizes"/>
@@ -664,9 +650,11 @@
<enum-type name="WindowFrameSection"/>
<enum-type name="WindowModality"/>
<enum-type name="WindowState" flags="WindowStates"/>
- <enum-type name="WindowType" flags="WindowFlags"/>
+ <enum-type name="WindowType" python-type="IntFlag" flags="WindowFlags"/>
<enum-type name="CursorMoveStyle" since="4.8" revision="4800"/>
+ <inject-code class="target" position="end" file="../glue/qtcore.cpp"
+ snippet="qt-modifier"/>
</namespace-type>
<add-function signature="QEnum(PyObject*)" return-type="PyObject*">
@@ -684,7 +672,6 @@
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qt-qabs"/>
</add-function>
- <inject-code class="native" position="beginning" file="../glue/qtcore.cpp" snippet="qt-postroutine"/>
<add-function signature="qAddPostRoutine(PyObject*)">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qt-addpostroutine"/>
</add-function>
@@ -702,11 +689,13 @@
<inject-code class="target" position="end" file="../glue/qtcore.cpp" snippet="qt-pysideinit"/>
<inject-code class="native" position="beginning" file="../glue/qtcore.cpp" snippet="qt-messagehandler"/>
+ <inject-code class="native" position="beginning" file="../glue/qtcore.cpp"
+ snippet="qlatin1string-check"/>
<add-function signature="qInstallMessageHandler(PyObject)" return-type="PyObject">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qt-installmessagehandler"/>
</add-function>
- <value-type name="QDeadlineTimer" since="5.8">
+ <value-type name="QDeadlineTimer">
<enum-type name="ForeverConstant"/>
</value-type>
@@ -714,13 +703,17 @@
<enum-type name="ClockType" since="4.7"/>
</value-type>
- <object-type name="QAbstractTableModel" polymorphic-id-expression="qobject_cast&lt;QAbstractTableModel*&gt;(%1)">
+ <object-type name="QAbstractTableModel"
+ polymorphic-id-expression="qobject_cast&lt;QAbstractTableModel*&gt;(%B)">
<extra-includes>
<include file-name="QStringList" location="global"/>
<include file-name="QSize" location="global"/>
</extra-includes>
</object-type>
<value-type name="QLine" hash-function="PySide::hash">
+ <extra-includes>
+ <include file-name="pysideqhash.h" location="global"/>
+ </extra-includes>
<add-function signature="__repr__" return-type="PyObject*">
<inject-code class="target" position="beginning">
<insert-template name="repr_code">
@@ -781,14 +774,14 @@
<modify-argument index="2">
<remove-argument />
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[PySide6.QtCore.QLineF.IntersectionType, PySide6.QtCore.QPointF]">
<replace-type modified-type="(intersectType, intersectionPoint)"/>
</modify-argument>
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qlinef-intersect"/>
</modify-function>
</value-type>
<object-type name="QResource">
- <enum-type name="Compression" since="5.13"/>
+ <enum-type name="Compression"/>
<modify-function signature="data()const">
<inject-documentation format="target">
Returns a read only buffer object pointing to the segment of data that this resource represents. If the resource is compressed the data returns is compressed and qUncompress() must be used to access the data. If the resource is a directory None is returned.
@@ -815,21 +808,20 @@
<object-type name="QBasicTimer"/>
<value-type name="QByteArrayMatcher"/>
- <value-type name="QCalendar" since="5.14">
+ <value-type name="QCalendar">
<object-type name="SystemId"/> <!-- not default-constructible -->
<value-type name="YearMonthDay"/>
<enum-type name="System"/>
+ <enum-type identified-by-value="Unspecified"/>
</value-type>
- <value-type name="QDate" hash-function="PySide::hash" >
- <inject-code class="native" position="beginning">
- <insert-template name="pydatetime_importandcheck_function">
- <replace from="$DATETIMETYPE" to="PyDate"/>
- </insert-template>
- </inject-code>
+ <value-type name="QDate">
+ <inject-code class="native" position="beginning" file="../glue/qtcore.cpp"
+ snippet="core-snippets-p-h"/>
<conversion-rule>
<target-to-native>
<add-conversion type="Py_None" file="../glue/qtcore.cpp" snippet="conversion-pynone"/>
- <add-conversion type="PyDate" check="PyDateTime_ImportAndCheck(%in)" file="../glue/qtcore.cpp" snippet="conversion-qdate-pydate"/>
+ <add-conversion type="PyDate" check="PyDate_ImportAndCheck(%in)"
+ file="../glue/qtcore.cpp" snippet="conversion-qdate-pydate"/>
</target-to-native>
</conversion-rule>
<extra-includes>
@@ -865,7 +857,7 @@
<modify-argument index="3">
<remove-argument/>
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[int, int, int]">
<replace-type modified-type="(year, month, day)"/>
</modify-argument>
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qdate-getdate"/>
@@ -874,38 +866,38 @@
<modify-argument index="1">
<remove-argument/>
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[int, int]">
<replace-type modified-type="(week, yearNumber)"/>
</modify-argument>
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qdate-weeknumber"/>
</modify-function>
</value-type>
- <value-type name="QDateTime" hash-function="PySide::hash">
- <enum-type name="YearRange" since="5.14"/>
- <inject-code class="native" position="beginning">
- <insert-template name="pydatetime_importandcheck_function">
- <replace from="$DATETIMETYPE" to="PyDateTime"/>
- </insert-template>
- </inject-code>
+ <value-type name="QDateTime">
+ <inject-code class="native" position="beginning" file="../glue/qtcore.cpp"
+ snippet="core-snippets-p-h"/>
+ <enum-type name="YearRange"/>
+ <enum-type name="TransitionResolution" since="6.7"/>
<conversion-rule>
<target-to-native>
<add-conversion type="Py_None" file="../glue/qtcore.cpp" snippet="conversion-pynone"/>
- <add-conversion type="PyDateTime" check="PyDateTime_ImportAndCheck(%in)" file="../glue/qtcore.cpp" snippet="conversion-qdatetime-pydatetime"/>
+ <add-conversion type="PyDateTime" check="PyDateTime_ImportAndCheck(%in)"
+ file="../glue/qtcore.cpp" snippet="conversion-qdatetime-pydatetime"/>
</target-to-native>
</conversion-rule>
<extra-includes>
<include file-name="datetime.h" location="global"/>
</extra-includes>
<!-- Somewhat internal constructor used to pickle QDateTime -->
- <add-function signature="QDateTime(int,int,int,int,int,int,int,int)">
- <modify-argument index="8">
- <replace-default-expression with="Qt::LocalTime"/>
- </modify-argument>
+ <add-function signature="QDateTime(int,int,int,int,int,int,int,int=Qt::LocalTime)">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qdatetime-1"/>
</add-function>
<add-function signature="QDateTime(int,int,int,int,int,int)">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qdatetime-2"/>
</add-function>
+ <!-- PYSIDE-1735: Qt::TimeSpec is no more compatible with int -->
+ <add-function signature="QDateTime(int,int,int,int,int,int,int,Qt::TimeSpec=Qt::LocalTime)">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qdatetime-3"/>
+ </add-function>
<add-function signature="__repr__" return-type="PyObject*">
<inject-code class="target" position="beginning">
<insert-template name="repr_code">
@@ -963,7 +955,34 @@
</add-function>
</value-type>
- <value-type name="QPoint" hash-function="PySide::hash">
+ <value-type name="QPermission" since="6.5">
+ <configuration condition="QT_CONFIG(permissions)"/>
+ </value-type>
+ <value-type name="QBluetoothPermission" since="6.5">
+ <configuration condition="QT_CONFIG(permissions)"/>
+ <enum-type name="CommunicationMode" flags="CommunicationModes" since="6.6"/>
+ </value-type>
+ <value-type name="QCalendarPermission" since="6.5">
+ <configuration condition="QT_CONFIG(permissions)"/>
+ <enum-type name="AccessMode"/>
+ </value-type>
+ <value-type name="QCameraPermission" since="6.5">
+ <configuration condition="QT_CONFIG(permissions)"/>
+ </value-type>
+ <value-type name="QContactsPermission" since="6.5">
+ <configuration condition="QT_CONFIG(permissions)"/>
+ <enum-type name="AccessMode"/>
+ </value-type>
+ <value-type name="QLocationPermission" since="6.5">
+ <configuration condition="QT_CONFIG(permissions)"/>
+ <enum-type name="Accuracy"/>
+ <enum-type name="Availability"/>
+ </value-type>
+ <value-type name="QMicrophonePermission" since="6.5">
+ <configuration condition="QT_CONFIG(permissions)"/>
+ </value-type>
+
+ <value-type name="QPoint">
<add-function signature="__repr__" return-type="PyObject*">
<inject-code class="target" position="beginning">
<insert-template name="repr_code">
@@ -981,7 +1000,6 @@
</insert-template>
</inject-code>
</add-function>
- <inject-code class="native" position="beginning" file="../glue/qtcore.cpp" snippet="qpoint"/>
<add-function signature="toTuple" return-type="PyObject*">
<inject-code class="target" position="beginning">
@@ -1030,7 +1048,7 @@
<modify-function signature="ry()" remove="all"/>
<!--### -->
</value-type>
- <value-type name="QRect" hash-function="PySide::hash">
+ <value-type name="QRect">
<add-function signature="__repr__" return-type="PyObject*">
<inject-code class="target" position="beginning">
<insert-template name="repr_code">
@@ -1047,7 +1065,6 @@
</insert-template>
</inject-code>
</add-function>
- <inject-code class="native" position="beginning" file="../glue/qtcore.cpp" snippet="qrect"/>
<modify-function signature="getCoords(int*,int*,int*,int*)const">
<modify-argument index="return">
@@ -1161,7 +1178,7 @@
</inject-code>
</modify-function>
</value-type>
- <value-type name="QSize" hash-function="PySide::hash">
+ <value-type name="QSize">
<add-function signature="__repr__" return-type="PyObject*">
<inject-code class="target" position="beginning">
<insert-template name="repr_code">
@@ -1179,7 +1196,6 @@
</insert-template>
</inject-code>
</add-function>
- <inject-code class="native" position="beginning" file="../glue/qtcore.cpp" snippet="qsize"/>
<add-function signature="toTuple" return-type="PyObject*">
<inject-code class="target" position="beginning">
@@ -1229,16 +1245,14 @@
<!--### -->
</value-type>
- <value-type name="QTime" hash-function="PySide::hash">
- <inject-code class="native" position="beginning">
- <insert-template name="pydatetime_importandcheck_function">
- <replace from="$DATETIMETYPE" to="PyTime"/>
- </insert-template>
- </inject-code>
+ <value-type name="QTime">
+ <inject-code class="native" position="beginning" file="../glue/qtcore.cpp"
+ snippet="core-snippets-p-h"/>
<conversion-rule>
<target-to-native>
<add-conversion type="Py_None" file="../glue/qtcore.cpp" snippet="conversion-pynone"/>
- <add-conversion type="PyTime" check="PyDateTime_ImportAndCheck(%in)" file="../glue/qtcore.cpp" snippet="conversion-qtime-pytime"/>
+ <add-conversion type="PyTime" check="PyTime_ImportAndCheck(%in)"
+ file="../glue/qtcore.cpp" snippet="conversion-qtime-pytime"/>
</target-to-native>
</conversion-rule>
@@ -1266,7 +1280,14 @@
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qtime-topython"/>
</add-function>
</value-type>
- <value-type name="QPersistentModelIndex" hash-function="qHash">
+ <value-type name="QPersistentModelIndex">
+ <extra-includes>
+ <include file-name="QtCore/QList" location="global"/>
+ </extra-includes>
+ <!-- For signal QAbstractItemModel::layoutAboutToBeChanged(QList<QPersistentModelIndex>) -->
+ <inject-code class="target" position="end">
+ qRegisterMetaType&lt;QList&lt;QPersistentModelIndex&gt; &gt;("QList_QPersistentModelIndex");
+ </inject-code>
<modify-function signature="internalPointer()const">
<inject-code class="target" position="beginning">
<insert-template name="return_internal_pointer" />
@@ -1280,13 +1301,17 @@
</value-type>
<value-type name="QTimeZone">
+ <configuration condition="QT_CONFIG(timezone)"/>
+ <enum-type name="Initialization" since="6.5"/>
<enum-type name="TimeType"/>
<enum-type name="NameType"/>
- <value-type name="OffsetData"/>
+ <value-type name="OffsetData">
+ <configuration condition="QT_CONFIG(timezone)"/>
+ </value-type>
</value-type>
<value-type name="QUuid">
- <enum-type name="StringFormat" since="5.11"/>
+ <enum-type name="StringFormat"/>
<enum-type name="Variant"/>
<enum-type name="Version"/>
<add-function signature="__repr__" return-type="PyObject*">
@@ -1307,17 +1332,19 @@
</add-function>
</value-type>
- <value-type name="QMimeType" since="5.0"/>
- <object-type name="QMimeDatabase" since="5.0">
+ <value-type name="QMimeType"/>
+ <object-type name="QMimeDatabase">
<enum-type name="MatchMode"/>
</object-type>
<value-type name="QLocale">
+ <enum-type name="TagSeparator" since="6.7"/>
<enum-type name="Country"/>
- <enum-type name="DataSizeFormat" flags="DataSizeFormats" since="5.10"/>
- <enum-type name="FloatingPointPrecisionOption" since="5.7"/>
+ <enum-type name="DataSizeFormat" flags="DataSizeFormats"/>
+ <enum-type name="FloatingPointPrecisionOption" python-type="IntEnum"/>
<enum-type name="FormatType"/>
<enum-type name="Language"/>
+ <enum-type name="LanguageCodeType" python-type="IntFlag" flags="LanguageCodeTypes" since="6.3"/>
<enum-type name="MeasurementSystem"/>
<enum-type name="NumberOption" flags="NumberOptions"/>
<enum-type name="Script" since="4.8" revision="4800"/>
@@ -1327,26 +1354,60 @@
<modify-function signature="toString(qulonglong)const" remove="all"/>
<modify-function signature="toString(ushort)const" remove="all"/>
<modify-function signature="toString(unsigned int)const" remove="all"/>
+ <modify-function signature="system()" remove="all"/>
<!--### -->
<extra-includes>
<include file-name="QDate" location="global"/>
</extra-includes>
+ <add-function signature="system()" return-type="QLocale" static="yes">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp"
+ snippet="qlocale_system"/>
+ <inject-documentation mode="append" format="target">
+ Returns a QLocale object initialized to the system locale.
+
+ The system locale may use system-specific sources for locale data, where available,
+ otherwise falling back on QLocale's built-in database entry for the language, script and
+ territory the system reports.
+
+ For example, on Windows, this locale will use the decimal/grouping characters and
+ date/time formats specified in the system configuration panel.
+
+ .. note:: Qt for Python on macOS will not reflect the user's region and language
+ preferences though QLocale::system(), but will instead reflect the environment
+ variables POSIX uses to specify locale, similar to Python's locale module. If the
+ system locale cannot be determined, which can be due to none of the variables 'LC_ALL',
+ 'LC_CTYPE', 'LANG' or 'LANGUAGE' being set by your environment, then the default POSIX
+ locale or 'C' locale is returned.
+
+ See also c().
+ </inject-documentation>
+ </add-function>
<modify-function signature="toTime(QString,QLocale::FormatType)const">
<modify-argument index="2">
<rename to="format"/>
</modify-argument>
</modify-function>
- <modify-function signature="toDate(QString,QLocale::FormatType)const">
+ <modify-function signature="toDate(QString,QLocale::FormatType,int)const">
<modify-argument index="2">
<rename to="format"/>
</modify-argument>
</modify-function>
+ <modify-function signature="^toDate(Time)?\(QString,[^,]+,int\)const$">
+ <modify-argument index="3">
+ <replace-default-expression with="1900"/> <!-- private FirstTwoDigitYear -->
+ </modify-argument>
+ </modify-function>
+ <modify-function signature="^toDate(Time)?\(QString,[^,]+,QCalendar,int\)const$">
+ <modify-argument index="4">
+ <replace-default-expression with="1900"/> <!-- private FirstTwoDigitYear -->
+ </modify-argument>
+ </modify-function>
<modify-function signature="toUInt(QString,bool*)const">
<modify-argument index="2">
<remove-argument />
<remove-default-expression />
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[int, bool]">
<replace-type modified-type="(int, bool ok)"/>
</modify-argument>
<inject-code class="target" position="beginning">
@@ -1358,7 +1419,7 @@
<remove-argument />
<remove-default-expression />
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[int, bool]">
<replace-type modified-type="(int, bool ok)"/>
</modify-argument>
<inject-code class="target" position="beginning">
@@ -1370,7 +1431,7 @@
<remove-argument />
<remove-default-expression />
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[float, bool]">
<replace-type modified-type="(float, bool ok)"/>
</modify-argument>
<inject-code class="target" position="beginning">
@@ -1382,7 +1443,7 @@
<remove-argument />
<remove-default-expression />
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[float, bool]">
<replace-type modified-type="(float, bool ok)"/>
</modify-argument>
<inject-code class="target" position="beginning">
@@ -1393,7 +1454,7 @@
<modify-argument index="2">
<remove-argument />
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[int, bool]">
<replace-type modified-type="(int, bool ok)"/>
</modify-argument>
<inject-code class="target" position="beginning">
@@ -1404,7 +1465,18 @@
<modify-argument index="2">
<remove-argument />
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[int, bool]">
+ <replace-type modified-type="(int, bool ok)"/>
+ </modify-argument>
+ <inject-code class="target" position="beginning">
+ <insert-template name="fix_args,bool*"/>
+ </inject-code>
+ </modify-function>
+ <modify-function signature="toLong(QString,bool*)const">
+ <modify-argument index="2">
+ <remove-argument />
+ </modify-argument>
+ <modify-argument index="return" pyi-type="Tuple[int, bool]">
<replace-type modified-type="(int, bool ok)"/>
</modify-argument>
<inject-code class="target" position="beginning">
@@ -1415,7 +1487,7 @@
<modify-argument index="2">
<remove-argument />
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[int, bool]">
<replace-type modified-type="(int, bool ok)"/>
</modify-argument>
<inject-code class="target" position="beginning">
@@ -1426,15 +1498,20 @@
<modify-argument index="2">
<remove-argument />
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[int, bool]">
<replace-type modified-type="(int, bool ok)"/>
</modify-argument>
<inject-code class="target" position="beginning">
<insert-template name="fix_args,bool*"/>
</inject-code>
</modify-function>
+ <!-- PYSIDE-2133, 2168 remove unsigned overloads of to(Currency)?String() to
+ ensure float overloads are used -->
+ <modify-function signature="^to(Currency)?String\(q?u.*$" remove="all"/>
+ <modify-function signature="^to(Currency)?String\(.*short.*$" remove="all"/>
+ <modify-function signature="^to.*\(.*QStringView.*$" remove="all"/>
</value-type>
- <value-type name="QBitArray" hash-function="qHash" >
+ <value-type name="QBitArray">
<add-function signature="__len__">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qbitarray-len"/>
</add-function>
@@ -1452,10 +1529,22 @@
<modify-function signature="removeStaleLockFile()" allow-thread="yes"/>
<modify-function signature="tryLock(int)" allow-thread="yes"/>
<modify-function signature="unlock()" allow-thread="yes"/>
+ <modify-function signature="getLockInfo(qint64*,QString*,QString*)const">
+ <modify-argument index="return" pyi-type="Tuple[int, str, str]">
+ <replace-type modified-type="(int, str, str)"/>
+ </modify-argument>
+ <modify-argument index="1"><remove-argument/></modify-argument>
+ <modify-argument index="2"><remove-argument/></modify-argument>
+ <modify-argument index="3"><remove-argument/></modify-argument>
+ <inject-code class="target" position="beginning"
+ file="../glue/qtcore.cpp" snippet="qlockfile-getlockinfo"/>
+ </modify-function>
</object-type>
<object-type name="QMessageAuthenticationCode"/>
<object-type name="QSignalBlocker">
- <add-function signature="__enter__()"/>
+ <add-function signature="__enter__()" return-type="QSignalBlocker">
+ <inject-code file="../glue/qtcore.cpp" snippet="default-enter"/>
+ </add-function>
<add-function signature="__exit__(PyObject*,PyObject*,PyObject*)">
<inject-code file="../glue/qtcore.cpp" snippet="qsignalblocker-unblock"/>
</add-function>
@@ -1470,25 +1559,31 @@
<modify-function signature="tryLockForWrite(int)" allow-thread="yes"/>
</object-type>
<object-type name="QReadLocker">
+ <configuration condition="QT_CONFIG(thread)"/>
<modify-function signature="QReadLocker(QReadWriteLock*)">
<modify-argument index="1">
<reference-count action="set"/>
</modify-argument>
</modify-function>
<modify-function signature="relock()" allow-thread="yes"/>
- <add-function signature="__enter__()"/>
+ <add-function signature="__enter__()" return-type="QReadLocker">
+ <inject-code file="../glue/qtcore.cpp" snippet="default-enter"/>
+ </add-function>
<add-function signature="__exit__(PyObject*,PyObject*,PyObject*)">
<inject-code file="../glue/qtcore.cpp" snippet="unlock"/>
</add-function>
</object-type>
<object-type name="QWriteLocker">
+ <configuration condition="QT_CONFIG(thread)"/>
<modify-function signature="QWriteLocker(QReadWriteLock*)">
<modify-argument index="1">
<reference-count action="set"/>
</modify-argument>
</modify-function>
<modify-function signature="relock()" allow-thread="yes"/>
- <add-function signature="__enter__()"/>
+ <add-function signature="__enter__()" return-type="QWriteLocker">
+ <inject-code file="../glue/qtcore.cpp" snippet="default-enter"/>
+ </add-function>
<add-function signature="__exit__(PyObject*,PyObject*,PyObject*)">
<inject-code file="../glue/qtcore.cpp" snippet="unlock"/>
</add-function>
@@ -1497,6 +1592,7 @@
<enum-type name="IteratorFlag" flags="IteratorFlags"/>
</object-type>
<object-type name="QThread">
+ <configuration condition="QT_CONFIG(thread)"/>
<inject-code file="../glue/qtcore.cpp" class="native" position="beginning" snippet="qthread_pthread_cleanup"/>
<enum-type name="Priority"/>
<modify-function signature="currentThreadId()" remove="all"/>
@@ -1520,6 +1616,9 @@
<modify-argument index="1">
<rename to="priority"/>
</modify-argument>
+ <!-- PYSIDE-535: PyPy 7.3.8 needs this call, which is actually a no-op in Python 3.10 -->
+ <inject-code file="../glue/qtcore.cpp" class="target" position="beginning"
+ snippet="qthread_init_pypy"/>
</modify-function>
<modify-function signature="exit(int)" allow-thread="yes"/>
</object-type>
@@ -1527,7 +1626,7 @@
<value-type name="QModelRoleData"/>
<object-type name="QAbstractItemModel">
- <enum-type name="CheckIndexOption" flags="CheckIndexOptions" since="5.11"/>
+ <enum-type name="CheckIndexOption" flags="CheckIndexOptions"/>
<enum-type name="LayoutChangeHint"/>
<!-- This function was replaced by a added function -->
<modify-function signature="createIndex(int,int,const void*)const" remove="all"/>
@@ -1537,16 +1636,7 @@
<replace-default-expression with="0"/>
</modify-argument>
</modify-function>
- <add-function signature="createIndex(int,int,PyObject*)const" return-type="QModelIndex">
- <modify-argument index="1">
- <rename to="row"/>
- </modify-argument>
- <modify-argument index="2">
- <rename to="column"/>
- </modify-argument>
- <modify-argument index="3">
- <rename to="ptr"/>
- </modify-argument>
+ <add-function signature="createIndex(int@row@,int@column@,PyObject*@ptr@)const" return-type="QModelIndex">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qabstractitemmodel-createindex"/>
<inject-documentation mode="append" format="target">
Creates a model index for the given row and column with the internal pointer ptr.
@@ -1562,7 +1652,7 @@
</inject-documentation>
</add-function>
<inject-code class="target" position="end" file="../glue/qtcore.cpp" snippet="qabstractitemmodel"/>
- <modify-function signature="mimeData(QModelIndexList)const">
+ <modify-function signature="mimeData(QList&lt;QModelIndex&gt;)const">
<modify-argument index="return">
<define-ownership class="native" owner="c++"/>
<define-ownership class="target" owner="default"/>
@@ -1605,14 +1695,15 @@
<value-type name="QItemSelectionRange">
</value-type>
- <object-type name="QAbstractProxyModel" polymorphic-id-expression="qobject_cast&lt;QAbstractProxyModel*&gt;(%1)">
+ <object-type name="QAbstractProxyModel"
+ polymorphic-id-expression="qobject_cast&lt;QAbstractProxyModel*&gt;(%B)">
<extra-includes>
<include file-name="QItemSelection" location="global"/>
<include file-name="QStringList" location="global"/>
<include file-name="QSize" location="global"/>
</extra-includes>
</object-type>
- <object-type name="QConcatenateTablesProxyModel" since="5.13"/>
+ <object-type name="QConcatenateTablesProxyModel"/>
<object-type name="QSortFilterProxyModel">
<extra-includes>
<include file-name="QItemSelection" location="global"/>
@@ -1626,21 +1717,25 @@
</modify-function>
</object-type>
<object-type name="QIdentityProxyModel"/>
- <object-type name="QTransposeProxyModel" since="5.13"/>
+ <object-type name="QTransposeProxyModel"/>
<!-- QObject is created manually -->
- <object-type name="QObject">
+ <object-type name="QObject" parent-management="true">
<extra-includes>
<include file-name="QThread" location="global"/>
<include file-name="QCoreApplication" location="global"/>
<include file-name="signalmanager.h" location="local"/>
</extra-includes>
+ <inject-code class="native" position="beginning" file="../glue/qtcore.cpp"
+ snippet="core-snippets-p-h"/>
<modify-function signature="metaObject()const">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qobject-metaobject"/>
<modify-argument index="return">
<reference-count action="set"/>
</modify-argument>
</modify-function>
-
+ <!-- FIXME PYSIDE 7: Remove this (QT6_DECL_NEW_OVERLOAD_TAIL) -->
+ <modify-function signature="^moveToThread\(.*\)" remove="all"/>
+ <declare-function signature="moveToThread(QThread*)" return-type="bool"/>
<modify-function signature="deleteLater()">
<modify-argument index="this">
<define-ownership owner="c++"/>
@@ -1675,66 +1770,66 @@
<modify-argument index="this">
<parent index="1" action="add"/>
</modify-argument>
+ <modify-argument index="1" pyi-type="Optional[PySide6.QtCore.QObject]"/>
</modify-function>
- <modify-function signature="connect(const QObject*,const char*,const char*,Qt::ConnectionType)const">
- <modify-argument index="4">
- <rename to="type"/>
- </modify-argument>
+ <!-- Manual overload order fixes PYSIDE-2627
+
+ The addition of the qobject-connect-4-context overload resulted in an
+ automatic overload ordering that prevented the right overload from
+ ever being called if the callable was a QObject. Set a manual order to
+ fix this. -->
+ <modify-function signature="connect(const QObject*,const char*,const char*,Qt::ConnectionType)const"
+ overload-number="0">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qobject-connect-1"/>
</modify-function>
<!-- static version -->
- <modify-function signature="connect(const QObject*,QMetaMethod,const QObject*,QMetaMethod,Qt::ConnectionType)">
- <modify-argument index="5">
- <rename to="type"/>
- </modify-argument>
+ <modify-function signature="connect(const QObject*,QMetaMethod,const QObject*,QMetaMethod,Qt::ConnectionType)"
+ overload-number="1">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qobject-connect-2"/>
</modify-function>
- <modify-function signature="connect(const QObject*,const char*,const QObject*,const char*,Qt::ConnectionType)">
+ <modify-function signature="connect(const QObject*,const char*,const QObject*,const char*,Qt::ConnectionType)"
+ overload-number="2">
<modify-argument index="5">
<rename to="type"/>
</modify-argument>
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qobject-connect-3"/>
</modify-function>
<inject-code class="native" position="beginning" file="../glue/qtcore.cpp" snippet="qobject-connect"/>
- <add-function signature="connect(const QObject*,const char*,PyCallable*,Qt::ConnectionType)"
- return-type="QMetaObject::Connection" static="yes">
- <modify-argument index="4">
- <rename to="type"/>
- <replace-default-expression with="Qt::AutoConnection"/>
- </modify-argument>
+ <add-function signature="connect(const QObject*@sender@,const char*@signal@,PyCallable*@functor@,Qt::ConnectionType@type@=Qt::AutoConnection)"
+ return-type="QMetaObject::Connection" static="yes" overload-number="3">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qobject-connect-4"/>
</add-function>
+ <add-function signature="connect(const QObject*@sender@,const char*@signal@,const QObject*@context@,PyCallable*@functor@,Qt::ConnectionType@type@=Qt::AutoConnection)"
+ return-type="QMetaObject::Connection" static="yes" overload-number="4">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qobject-connect-4-context"/>
+ </add-function>
<!-- static version -->
- <add-function signature="connect(const char*,PyCallable*,Qt::ConnectionType)"
- return-type="QMetaObject::Connection">
- <modify-argument index="3">
- <rename to="type"/>
- <replace-default-expression with="Qt::AutoConnection"/>
- </modify-argument>
+ <add-function signature="connect(const char*@signal@,PyCallable*@functor@,Qt::ConnectionType@type@=Qt::AutoConnection)"
+ return-type="QMetaObject::Connection" overload-number="5">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qobject-connect-5"/>
</add-function>
- <add-function signature="connect(const char*,const QObject*,const char*,Qt::ConnectionType)"
- return-type="QMetaObject::Connection">
- <modify-argument index="4">
- <rename to="type"/>
- <replace-default-expression with="Qt::AutoConnection"/>
- </modify-argument>
+ <add-function signature="connect(const char*@signal@,const QObject*@receiver@,const char*@method@,Qt::ConnectionType@type@=Qt::AutoConnection)"
+ return-type="QMetaObject::Connection" overload-number="6">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qobject-connect-6"/>
</add-function>
<add-function signature="emit(const char*,...)" return-type="bool">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qobject-emit"/>
</add-function>
- <add-function signature="disconnect(const char*,PyCallable*)" return-type="bool">
+ <add-function signature="disconnect(const char*@signal@,PyCallable*@functor@)" return-type="bool">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qobject-disconnect-1"/>
</add-function>
- <add-function signature="disconnect(const QObject*,const char*,PyCallable*)" return-type="bool" static="yes">
+ <add-function signature="disconnect(const QObject*@sender@,const char*@signal@,PyCallable*@functor@)" return-type="bool" static="yes">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qobject-disconnect-2"/>
</add-function>
+ <modify-function signature="disconnect(QMetaObject::Connection)">
+ <modify-argument index="1">
+ <rename to="connection"/>
+ </modify-argument>
+ </modify-function>
- <inject-code class="native" file="../glue/qtcore.cpp" snippet="qobject-findchild-1"/>
- <add-function signature="findChild(PyTypeObject*@type@,const QString&amp;@name@,Qt::FindChildOptions@options@=Qt::FindChildrenRecursively)"
+ <add-function signature="findChild(PyTypeObject*@type@,const QString&amp;@name@={},Qt::FindChildOptions@options@=Qt::FindChildrenRecursively)"
return-type="PyObject*">
<inject-documentation format="target" mode="append">
To find the child of a certain QObject, the first argument of this function should be the child's type, and the second the name of the child:
@@ -1753,11 +1848,8 @@
<modify-argument index="return">
<parent index="this" action="add"/>
</modify-argument>
- <modify-argument index="2">
- <replace-default-expression with="QString()"/>
- </modify-argument>
</add-function>
- <add-function signature="findChildren(PyTypeObject*@type@,const QString&amp;@name@,Qt::FindChildOptions@options@=Qt::FindChildrenRecursively)"
+ <add-function signature="findChildren(PyTypeObject*@type@,const QString&amp;@name@={},Qt::FindChildOptions@options@=Qt::FindChildrenRecursively)"
return-type="PySequence*" >
<inject-documentation format="target" mode="append">
Like the method *findChild*, the first parameter should be the child's type.
@@ -1766,9 +1858,6 @@
<modify-argument index="return">
<parent index="this" action="add"/>
</modify-argument>
- <modify-argument index="2">
- <replace-default-expression with="QString()"/>
- </modify-argument>
</add-function>
<add-function signature="findChildren(PyTypeObject*@type@,const QRegularExpression&amp;@pattern@,Qt::FindChildOptions@options@=Qt::FindChildrenRecursively)"
return-type="PySequence*" >
@@ -1785,10 +1874,6 @@
</modify-argument>
</add-function>
- <modify-function signature="receivers(const char*)const">
- <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qobject-receivers"/>
- </modify-function>
-
<modify-function signature="destroyed(QObject*)" allow-thread="yes">
<modify-argument index="1">
<rename to="object"/>
@@ -1799,6 +1884,7 @@
<modify-argument index="return">
<define-ownership owner="default"/>
</modify-argument>
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qobject-sender"/>
</modify-function>
<!-- This is not supported due the lack of information durring the call with no arguments, this can cause a memory leak -->
@@ -1814,21 +1900,23 @@
</modify-argument>
</modify-function>
</object-type>
- <object-type name="QAbstractListModel" polymorphic-id-expression="qobject_cast&lt;QAbstractListModel*&gt;(%1)">
+ <object-type name="QAbstractListModel"
+ polymorphic-id-expression="qobject_cast&lt;QAbstractListModel*&gt;(%B)">
<extra-includes>
<include file-name="QStringList" location="global"/>
<include file-name="QSize" location="global"/>
</extra-includes>
</object-type>
- <value-type name="QUrlQuery" since="5.0"/>
+ <value-type name="QUrlQuery"/>
- <value-type name="QUrl" hash-function="PySide::hash">
+ <value-type name="QUrl">
<!-- Qt5: lots of changes -->
- <enum-type name="ComponentFormattingOption" flags="ComponentFormattingOptions,FormattingOptions"/>
+ <enum-type name="ComponentFormattingOption" python-type="IntFlag" flags="ComponentFormattingOptions,FormattingOptions"/>
<!-- note: above duplication of attribute is not by default XML compliant! -->
- <enum-type name="UrlFormattingOption"/>
+ <enum-type name="UrlFormattingOption" python-type="IntFlag"/>
<enum-type name="UserInputResolutionOption" flags="UserInputResolutionOptions"/>
<enum-type name="ParsingMode"/>
+ <enum-type name="AceProcessingOption" flags="AceProcessingOptions" since="6.3"/>
<extra-includes>
<include file-name="QStringList" location="global"/>
</extra-includes>
@@ -1856,7 +1944,7 @@
</value-type>
<value-type name="QRegularExpression">
- <enum-type name="WildcardConversionOption" flags="WildcardConversionOptions" since="6.0"/>
+ <enum-type name="WildcardConversionOption" flags="WildcardConversionOptions"/>
<enum-type name="MatchOption" flags="MatchOptions"/>
<enum-type name="MatchType"/>
<enum-type name="PatternOption" flags="PatternOptions"/>
@@ -1895,10 +1983,12 @@
</add-function>
</value-type>
- <value-type name="QByteArray" hash-function="qHash">
- <enum-type name="Base64Option" flags="Base64Options" since="5.2"/>
- <enum-type name="Base64DecodingStatus" since="5.15"/>
- <value-type name="FromBase64Result" since="5.15"/>
+ <!-- PYSIDE-1913: Disable isNull() for bool cast; __len__ should be used
+ instead so that b"" yields False. -->
+ <value-type name="QByteArray" isNull="false">
+ <enum-type name="Base64Option" flags="Base64Options"/>
+ <enum-type name="Base64DecodingStatus"/>
+ <value-type name="FromBase64Result"/>
<conversion-rule>
<target-to-native>
<add-conversion type="Py_None" file="../glue/qtcore.cpp" snippet="conversion-pynone"/>
@@ -2138,7 +2228,7 @@
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qbytearray-msetitem"/>
</add-function>
</value-type>
- <primitive-type name="QByteArrayView" view-on="QByteArray" since="6.0">
+ <primitive-type name="QByteArrayView" view-on="QByteArray">
<conversion-rule>
<native-to-target file="../glue/qtcore.cpp" snippet="return-pybytes"/>
</conversion-rule>
@@ -2188,9 +2278,9 @@
<modify-function signature="processEvents(QFlags&lt;QEventLoop::ProcessEventsFlag>)" allow-thread="yes"/>
<modify-function signature="processEvents(QFlags&lt;QEventLoop::ProcessEventsFlag>,int)" allow-thread="yes"/>
</object-type>
- <object-type name="QFileDevice" since="5.0">
+ <object-type name="QFileDevice">
<enum-type name="FileError"/>
- <enum-type name="FileTime" since="5.10"/>
+ <enum-type name="FileTime"/>
<enum-type name="MemoryMapFlag" flags="MemoryMapFlags"/>
<enum-type name="Permission" flags="Permissions"/>
<enum-type name="FileHandleFlag" flags="FileHandleFlags"/>
@@ -2271,12 +2361,21 @@
<modify-function signature="write(const QByteArray&amp;)" allow-thread="yes"/>
<modify-function signature="waitForReadyRead(int)" allow-thread="yes"/>
<modify-function signature="waitForBytesWritten(int)" allow-thread="yes"/>
- <!-- ### peek(qint64) do the job -->
<modify-function signature="peek(char*,qint64)" remove="all"/>
- <!-- ### read(qint64) do the job -->
+ <add-function signature="peek(PyBuffer@buffer@,qint64@maxlen@)" return-type="qint64">
+ <modify-argument index="1" pyi-type="bytearray"/>
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qiodevice-bufferedread"/>
+ </add-function>
<modify-function signature="read(char*,qint64)" remove="all"/>
- <!-- ### readLine(qint64) do the job -->
+ <add-function signature="read(PyBuffer@buffer@,qint64@maxlen@)" return-type="qint64">
+ <modify-argument index="1" pyi-type="bytearray"/>
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qiodevice-bufferedread"/>
+ </add-function>
<modify-function signature="readLine(char*,qint64)" remove="all"/>
+ <add-function signature="readLine(PyBuffer@buffer@,qint64@maxlen@)" return-type="qint64">
+ <modify-argument index="1" pyi-type="bytearray"/>
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qiodevice-bufferedread"/>
+ </add-function>
<!-- ### write(str) do the job -->
<modify-function signature="write(const char*,qint64)" remove="all"/>
<modify-function signature="write(const char*)" remove="all"/>
@@ -2310,9 +2409,9 @@
<inject-code class="native" position="end" file="../glue/qtcore.cpp" snippet="return-readData"/>
</modify-function>
</object-type>
- <value-type name="QIODeviceBase" since="6.0">
+ <object-type name="QIODeviceBase">
<enum-type name="OpenModeFlag" flags="OpenMode"/>
- </value-type>
+ </object-type>
<object-type name="QCryptographicHash">
<enum-type name="Algorithm"/>
<modify-function signature="addData(const char*,qsizetype)">
@@ -2322,9 +2421,13 @@
<inject-code file="../glue/qtcore.cpp" snippet="qcryptographichash-adddata"/>
</modify-function>
</object-type>
- <value-type name="QOperatingSystemVersion" since="5.9">
+ <value-type name="QOperatingSystemVersionBase" since="6.3">
<enum-type name="OSType"/>
</value-type>
+ <value-type name="QOperatingSystemVersionUnexported" since="6.3" generate="false"/>
+ <value-type name="QOperatingSystemVersion">
+ <modify-function signature="QOperatingSystemVersion(const QOperatingSystemVersionBase&amp;)" remove="all"/>
+ </value-type>
<object-type name="QLibrary">
<enum-type name="LoadHint" flags="LoadHints"/>
</object-type>
@@ -2336,6 +2439,7 @@
</object-type>
<namespace-type name="QtCoreHelper" visible="no">
<object-type name="QMutexLocker" copyable="no">
+ <configuration condition="QT_CONFIG(thread)"/>
<!-- PYSIDE-1271: Creating locking capable objects inside sections that
contain allow-thread, require the classes to also allow having threads.
The lack of the option here, was generating a deadlock when running a
@@ -2363,51 +2467,58 @@
<reference-count action="set"/>
</modify-argument>
</modify-function>
- <add-function signature="__enter__()"/>
+ <add-function signature="__enter__()" return-type="QtCoreHelper::QMutexLocker">
+ <inject-code file="../glue/qtcore.cpp" snippet="default-enter"/>
+ </add-function>
<add-function signature="__exit__(PyObject*,PyObject*,PyObject*)">
<inject-code file="../glue/qtcore.cpp" snippet="unlock"/>
</add-function>
</object-type>
+ <object-type name="QIOPipe"/>
+ <value-type name="QGenericArgumentHolder"/>
+ <value-type name="QGenericReturnArgumentHolder"/>
</namespace-type>
<!-- Qt5 addition -->
<object-type name="QBasicMutex">
+ <configuration condition="QT_CONFIG(thread)"/>
<modify-function signature="lock()" allow-thread="yes"/>
<modify-function signature="tryLock()" allow-thread="yes"/>
</object-type>
<object-type name="QMutex">
+ <configuration condition="QT_CONFIG(thread)"/>
<modify-function signature="tryLock(int)" allow-thread="yes"/>
</object-type>
- <object-type name="QRecursiveMutex" since="5.14">
+ <object-type name="QRecursiveMutex">
+ <configuration condition="QT_CONFIG(thread)"/>
<modify-function signature="lock()" allow-thread="yes"/>
<modify-function signature="tryLock(int)" allow-thread="yes"/>
</object-type>
- <object-type name="QRandomGenerator" since="5.10">
+ <object-type name="QRandomGenerator">
<modify-function signature="global()" rename="global_"/>
<modify-function signature="operator()()" remove="all"/>
<modify-function signature="generate(quint32*,quint32*)" remove="all"/>
</object-type>
- <object-type name="QRandomGenerator64" since="5.10">
+ <object-type name="QRandomGenerator64">
<modify-function signature="global()" rename="global_"/>
<modify-function signature="operator()()" remove="all"/>
</object-type>
<object-type name="QSemaphore">
+ <configuration condition="QT_CONFIG(thread)"/>
<modify-function signature="acquire(int)" allow-thread="yes"/>
<modify-function signature="tryAcquire(int,int)" allow-thread="yes"/>
</object-type>
- <object-type name="QSemaphoreReleaser" since="5.10"/>
+ <object-type name="QSemaphoreReleaser">
+ <configuration condition="QT_CONFIG(thread)"/>
+ </object-type>
- <value-type name="QSocketDescriptor" since="5.15">
+ <value-type name="QSocketDescriptor">
<inject-code class="native" position="beginning" file="../glue/qtcore.cpp" snippet="qsocketdescriptor"/>
</value-type>
<object-type name="QSocketNotifier">
<enum-type name="Type"/>
- <add-function signature="QSocketNotifier(PyObject*, QSocketNotifier::Type, QObject*)">
- <modify-argument index="3">
- <replace-default-expression with="0"/>
- <rename to="parent"/>
- </modify-argument>
+ <add-function signature="QSocketNotifier(PyObject*, QSocketNotifier::Type, QObject*@parent@=nullptr)">
<inject-code file="../glue/qtcore.cpp" snippet="qsocketnotifier"/>
</add-function>
</object-type>
@@ -2443,6 +2554,7 @@
</modify-function>
</object-type>
<object-type name="QWaitCondition">
+ <configuration condition="QT_CONFIG(thread)"/>
<modify-function signature="wait(QMutex*,QDeadlineTimer)" allow-thread="yes"/>
<modify-function signature="wait(QMutex*,unsigned long)" allow-thread="yes"/>
<modify-function signature="wait(QReadWriteLock*,QDeadlineTimer)" allow-thread="yes"/>
@@ -2455,19 +2567,28 @@
</object-type>
<object-type name="QBuffer">
<!-- ### setData(QByteArray) do the job -->
- <modify-function signature="setData(const char*,int)" remove="all"/>
+ <modify-function signature="setData(const char*,qsizetype)" remove="all"/>
<!-- Disambiguate from Qt3DRender/qbuffer.h -->
<include file-name="QtCore/qbuffer.h" location="global"/>
</object-type>
<object-type name="QTimer">
+ <extra-includes>
+ <include file-name="pysidestaticstrings.h" location="global"/>
+ </extra-includes>
+ <inject-code class="native" position="beginning" file="../glue/qtcore.cpp"
+ snippet="qtimer-singleshot-functorclass"/>
<modify-function signature="singleShot(int,const QObject*,const char*)">
- <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qtimer-singleshot-1"/>
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qtimer-singleshot-direct-mapping"/>
</modify-function>
- <add-function signature="singleShot(int,PyCallable*)" static="yes">
- <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qtimer-singleshot-2"/>
+ <add-function signature="singleShot(int@msec@,PyCallable*@functor@)" static="yes">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qtimer-singleshot-functor"/>
+ </add-function>
+ <add-function signature="singleShot(int@msec@,const QObject*@context@,PyCallable*@functor@)" static="yes">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qtimer-singleshot-functor-context"/>
</add-function>
</object-type>
<object-type name="QProcess">
+ <configuration condition="QT_CONFIG(process)"/>
<enum-type name="ExitStatus"/>
<enum-type name="InputChannelMode"/>
<enum-type name="ProcessChannel"/>
@@ -2475,6 +2596,11 @@
<enum-type name="ProcessError"/>
<enum-type name="ProcessState"/>
+ <?if !windows?>
+ <enum-type name="UnixProcessFlag" flags="UnixProcessFlags" since="6.6"/>
+ <value-type name="UnixProcessParameters" since="6.6"/>
+ <?endif?>
+
<modify-function signature="waitForStarted(int)" allow-thread="yes"/>
<modify-function signature="waitForBytesWritten(int)" allow-thread="yes"/>
<modify-function signature="waitForFinished(int)" allow-thread="yes"/>
@@ -2485,7 +2611,7 @@
<modify-argument index="4">
<remove-argument />
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[bool, int]">
<replace-type modified-type="(retval, pid)"/>
</modify-argument>
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qprocess-startdetached"/>
@@ -2493,14 +2619,14 @@
</object-type>
<object-type name="QSignalMapper"/>
- <object-type name="QCollatorSortKey" since="5.2"/>
- <object-type name="QCollator" since="5.2"/>
+ <object-type name="QCollatorSortKey"/>
+ <object-type name="QCollator"/>
- <object-type name="QCommandLineOption" since="5.2">
- <enum-type name="Flag" flags="Flags" since="5.8"/>
+ <object-type name="QCommandLineOption">
+ <enum-type name="Flag" flags="Flags"/>
</object-type>
- <object-type name="QCommandLineParser" since="5.2">
- <enum-type name="OptionsAfterPositionalArgumentsMode" since="5.6"/>
+ <object-type name="QCommandLineParser">
+ <enum-type name="OptionsAfterPositionalArgumentsMode"/>
<enum-type name="SingleDashWordOptionMode"/>
</object-type>
@@ -2510,21 +2636,20 @@
<extra-includes>
<include file-name="QStringList" location="global"/>
<include file-name="QTranslator" location="global"/>
+ <include file-name="pysidecleanup.h" location="global"/>
+ <include file-name="pysideqapp.h" location="global"/>
</extra-includes>
- <!-- constructor documentation -->
- <inject-documentation format="target" mode="append">
-.. class:: QCoreApplication(args)
-
- Constructs a Qt kernel application. Kernel applications are applications
- without a graphical user interface. These type of applications are used
- at the console or as server processes.
-
- The *args* argument is processed by the application, and made available
- in a more convenient form by the :meth:`~QCoreApplication.arguments()`
- method.
- </inject-documentation>
- <add-function signature="QCoreApplication(QStringList)">
+ <add-function signature="QCoreApplication(QStringList@args@)">
<inject-code file="../glue/qtcore.cpp" snippet="qcoreapplication-1"/>
+ <inject-documentation format="target" mode="append">
+ Constructs a Qt kernel application. Kernel applications are applications
+ without a graphical user interface. These type of applications are used
+ at the console or as server processes.
+
+ The *args* argument is processed by the application, and made available
+ in a more convenient form by the :meth:`~PySide6.QtCore.QCoreApplication.arguments()`
+ method.
+ </inject-documentation>
</add-function>
<add-function signature="QCoreApplication()">
<inject-code file="../glue/qtcore.cpp" snippet="qcoreapplication-2"/>
@@ -2560,6 +2685,43 @@
<define-ownership owner="c++"/>
</modify-argument>
</modify-function>
+ <modify-function signature="translate(const char*,const char*,const char *,int)">
+ <modify-argument index="1" pyi-type="str"/>
+ <modify-argument index="2" pyi-type="str"/>
+ <modify-argument index="3" pyi-type="Optional[str]"/>
+ </modify-function>
+ <?if !no_QPermission?>
+ <declare-function signature="checkPermission(const QBluetoothPermission &amp; @permission@)" return-type="Qt::PermissionStatus" since="6.5" />
+ <declare-function signature="checkPermission(const QCalendarPermission &amp; @permission@)" return-type="Qt::PermissionStatus" since="6.5" />
+ <declare-function signature="checkPermission(const QCameraPermission &amp; @permission@)" return-type="Qt::PermissionStatus" since="6.5" />
+ <declare-function signature="checkPermission(const QContactsPermission &amp; @permission@)" return-type="Qt::PermissionStatus" since="6.5" />
+ <declare-function signature="checkPermission(const QLocationPermission &amp; @permission@)" return-type="Qt::PermissionStatus" since="6.5" />
+ <declare-function signature="checkPermission(const QMicrophonePermission &amp; @permission@)" return-type="Qt::PermissionStatus" since="6.5" />
+ <add-function signature="requestPermission(const QBluetoothPermission &amp; @permission@, const QObject* @context@, PyCallable* @functor@)" since="6.5">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp"
+ snippet="qcoreapplication-requestpermission"/>
+ </add-function>
+ <add-function signature="requestPermission(const QCalendarPermission &amp; @permission@, const QObject* @context@, PyCallable* @functor@)" since="6.5">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp"
+ snippet="qcoreapplication-requestpermission"/>
+ </add-function>
+ <add-function signature="requestPermission(const QCameraPermission &amp; @permission@, const QObject* @context@, PyCallable* @functor@)" since="6.5">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp"
+ snippet="qcoreapplication-requestpermission"/>
+ </add-function>
+ <add-function signature="requestPermission(const QContactsPermission &amp; @permission@, const QObject* @context@, PyCallable* @functor@)" since="6.5">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp"
+ snippet="qcoreapplication-requestpermission"/>
+ </add-function>
+ <add-function signature="requestPermission(const QLocationPermission &amp; @permission@, const QObject* @context@, PyCallable* @functor@)" since="6.5">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp"
+ snippet="qcoreapplication-requestpermission"/>
+ </add-function>
+ <add-function signature="requestPermission(const QMicrophonePermission &amp; @permission@, const QObject* @context@, PyCallable* @functor@)" since="6.5">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp"
+ snippet="qcoreapplication-requestpermission"/>
+ </add-function>
+ <?endif?>
</object-type>
<object-type name="QSettings">
<enum-type name="Format"/>
@@ -2568,10 +2730,12 @@
<extra-includes>
<include file-name="QStringList" location="global"/>
</extra-includes>
+ <inject-code class="native" position="beginning" file="../glue/qtcore.cpp"
+ snippet="settings-value-helpers"/>
<!-- PYSIDE-1010:
We remove the original implementation of value() to include the optional parameter -->
- <modify-function signature="value(const QString&amp;,const QVariant&amp;)const" remove="all"/>
- <add-function signature="value(const QString&amp;, const QVariant&amp; @defaultValue@ = 0, PyObject* @type@ = 0)" return-type="PyObject*">
+ <modify-function signature="value(QAnyStringView,const QVariant&amp;)const" remove="all"/>
+ <add-function signature="value(const QString&amp;, const QVariant&amp; @defaultValue@ = {}, PyObject* @type@ = nullptr)" return-type="PyObject*">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qsettings-value"/>
<inject-documentation mode="append" format="target">
Custom overload that adds an optional named parameter to the function ``value()``
@@ -2596,24 +2760,32 @@
</inject-documentation>
</add-function>
</object-type>
- <object-type name="QEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::None">
- <enum-type name="Type"/>
+ <object-type name="QEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::None"
+ qt-register-metatype="base">
+ <enum-type name="Type" python-type="IntEnum"/>
+ <add-function signature="__repr__" return-type="PyObject">
+ <inject-code class="target" position="beginning"
+ file="../glue/qtcore.cpp" snippet="repr-qevent"/>
+ </add-function>
</object-type>
- <object-type name="QChildEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::ChildAdded || %1-&gt;type() == QEvent::ChildPolished || %1-&gt;type() == QEvent::ChildRemoved">
+ <object-type name="QChildEvent"
+ polymorphic-id-expression="%B-&gt;type() == QEvent::ChildAdded || %B-&gt;type() == QEvent::ChildPolished || %B-&gt;type() == QEvent::ChildRemoved">
<modify-function signature="child()const">
<modify-argument index="return">
<define-ownership class="target" owner="default"/>
</modify-argument>
</modify-function>
</object-type>
- <object-type name="QTimerEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::Timer"/>
- <object-type name="QDynamicPropertyChangeEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::DynamicPropertyChange"/>
+ <object-type name="QTimerEvent"
+ polymorphic-id-expression="%B-&gt;type() == QEvent::Timer"/>
+ <object-type name="QDynamicPropertyChangeEvent"
+ polymorphic-id-expression="%B-&gt;type() == QEvent::DynamicPropertyChange"/>
<object-type name="QDataStream" stream="yes">
<enum-type name="FloatingPointPrecision" since="4.6"/>
<enum-type name="Status"/>
- <enum-type name="Version"/>
+ <enum-type name="Version" python-type="IntEnum"/>
<enum-type name="ByteOrder"/>
<extra-includes>
<include file-name="QtCore/QtCore" location="global"/>
@@ -2675,13 +2847,19 @@
<add-function signature="readQVariant()" return-type="QVariant">
<inject-code class="target" position="end" file="../glue/qtcore.cpp" snippet="stream-read-method"/>
</add-function>
- <modify-function signature="readRawData(char*,int)">
+ <modify-function signature="readRawData(char*,qint64)">
+ <modify-argument index="return" pyi-type="bytes"/>
<modify-argument index="1">
<remove-argument />
</modify-argument>
<inject-code class="target" file="../glue/qtcore.cpp" snippet="qdatastream-readrawdata"/>
</modify-function>
- <modify-function signature="writeRawData(const char*,int)">
+ <add-function signature="writeRawData(PyBuffer)">
+ <inject-code class="target" position="beginning"
+ file="../glue/qtcore.cpp" snippet="qdatastream-writerawdata-pybuffer"/>
+ </add-function>
+ <modify-function signature="writeRawData(const char*,qint64)">
+ <modify-argument index="1" pyi-type="str"/>
<modify-argument index="2">
<remove-argument />
</modify-argument>
@@ -2762,10 +2940,31 @@
<add-function signature="writeString(QString)">
<inject-code class="target" position="end" file="../glue/qtcore.cpp" snippet="stream-write-method"/>
</add-function>
-
- <!-- ### deprecated method -->
+ <modify-function signature="readBytes(char*&amp;,qint64&amp;)">
+ <modify-argument index="return">
+ <replace-type modified-type="PyTuple"/>
+ </modify-argument>
+ <modify-argument index="1">
+ <remove-argument />
+ </modify-argument>
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qdatastream-read-bytes"/>
+ </modify-function>
<modify-function signature="readBytes(char*&amp;,uint&amp;)" remove="all"/>
- <modify-function signature="writeBytes(const char*,uint)" remove="all"/>
+
+ <modify-function signature="writeBytes(const char*,qint64)">
+ <modify-argument index="1">
+ <replace-type modified-type="PyBuffer"/>
+ <conversion-rule class="native">
+ <insert-template name="pybuffer_const_char"/>
+ </conversion-rule>
+ </modify-argument>
+ <modify-argument index="2">
+ <remove-argument/>
+ <conversion-rule class="native">
+ <insert-template name="uint_remove"/>
+ </conversion-rule>
+ </modify-argument>
+ </modify-function>
</object-type>
<value-type name="QTextStreamManipulator" default-constructor="QTextStreamManipulator(0, 0)">
@@ -2782,7 +2981,7 @@
<!-- Removed because it expect QString to be mutable -->
<modify-function signature="QTextStream(QString*,QFlags&lt;QIODeviceBase::OpenModeFlag&gt;)" remove="all"/>
<!-- Qt5.5: Removed because it expect QString to be mutable -->
- <modify-function signature="readLineInto(QString*,qint64)" since="5.5" remove="all"/>
+ <modify-function signature="readLineInto(QString*,qint64)"/>
<!-- Removed because we use the non-const version -->
<modify-function signature="QTextStream(const QByteArray&amp;,QFlags&lt;QIODeviceBase::OpenModeFlag&gt;)" remove="all"/>
@@ -2825,16 +3024,18 @@
<modify-function signature="readLine(qint64)" allow-thread="yes"/>
<modify-function signature="readAll()" allow-thread="yes"/>
</object-type>
- <object-type name="QStandardPaths" since="5.0">
+ <object-type name="QStandardPaths">
<enum-type name="StandardLocation"/>
<enum-type name="LocateOption" flags="LocateOptions"/>
</object-type>
<object-type name="QSystemSemaphore">
+ <configuration condition="#ifndef QT_NO_SYSTEMSEMAPHORE"/>
<enum-type name="AccessMode"/>
<enum-type name="SystemSemaphoreError"/>
</object-type>
<object-type name="QThreadPool">
+ <configuration condition="QT_CONFIG(thread)"/>
<modify-function signature="clear()" allow-thread="yes"/>
<modify-function signature="activeThreadCount()const" allow-thread="yes"/>
<modify-function signature="releaseThread()" allow-thread="yes"/>
@@ -2900,7 +3101,7 @@
<!-- Removed because it expect QString to be mutable -->
<modify-function signature="QXmlStreamWriter(QString*)" remove="all"/>
</object-type>
- <value-type name="QModelIndex" hash-function="qHash">
+ <value-type name="QModelIndex">
<modify-function signature="internalPointer()const">
<inject-code class="target" position="beginning">
<insert-template name="return_internal_pointer" />
@@ -2914,20 +3115,28 @@
</value-type>
<object-type name="QFutureInterfaceBase">
+ <configuration condition="QT_CONFIG(future)"/>
<enum-type name="State"/>
+ <enum-type name="CancelMode" since="6.3"/>
</object-type>
<value-type name="QFuture" generate="no">
<include file-name="QtCore/qfuture.h" location="global"/>
+ <configuration condition="QT_CONFIG(future)"/>
<modify-function signature="waitForFinished()" allow-thread="yes"/>
</value-type>
<object-type name="QFutureWatcherBase" generate="no">
+ <configuration condition="QT_CONFIG(future)"/>
<modify-function signature="futureInterface()" remove="all"/>
<modify-function signature="futureInterface() const" remove="all"/>
</object-type>
<object-type name="QFutureWatcher" generate="no">
<include file-name="QtCore/qfuturewatcher.h" location="global"/>
+ <configuration condition="QT_CONFIG(future)"/>
</object-type>
+ <!--// FIXME PYSIDE 7: Remove in favor of QtCoreHelper::QGenericArgumentHolder for
+ QMetaObject.invokeMethod? It was left as is in case someone has some hack
+ with a void pointer for this, but it does not really make sense (PYSIDE-1898). -->
<value-type name="QGenericArgument">
<include file-name="qobjectdefs.h" location="global"/>
</value-type>
@@ -2936,22 +3145,104 @@
<include file-name="qobjectdefs.h" location="global"/>
</value-type>
- <object-type name="QMessageLogContext" since="5.14"/>
-
- <object-type name="QMessageLogContext" since="5.9" until="5.13.2">
- <modify-function signature="copy(const QMessageLogContext &amp;)" remove="all"/>
- </object-type>
+ <object-type name="QMessageLogContext"/>
<value-type name="QMetaMethod">
+ <extra-includes>
+ <include file-name="pysidesignal.h" location="global"/>
+ <include file-name="glue/core_snippets_p.h" location="local"/>
+ </extra-includes>
+ <inject-code class="native" position="beginning" file="../glue/qtcore.cpp"
+ snippet="qmetamethod-invoke-helpers"/>
<enum-type name="Access"/>
<enum-type name="MethodType"/>
+ <add-function signature="fromSignal(PySideSignalInstance@signal@)"
+ return-type="QMetaMethod" static="true">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp"
+ snippet="qmetamethod-from-signal"/>
+ <inject-documentation format="target" mode="append">
+ Returns the meta-method that corresponds to the given signal, or an invalid QMetaMethod
+ if signal is not a signal of the class.
+ </inject-documentation>
+ </add-function>
+ <add-function signature="invoke(QObject*@object@,Qt::ConnectionType@type@,
+ QtCoreHelper::QGenericReturnArgumentHolder@ret@,
+ QtCoreHelper::QGenericArgumentHolder@val0@={},
+ QtCoreHelper::QGenericArgumentHolder@val1@={},
+ QtCoreHelper::QGenericArgumentHolder@val2@={},
+ QtCoreHelper::QGenericArgumentHolder@val3@={},
+ QtCoreHelper::QGenericArgumentHolder@val4@={},
+ QtCoreHelper::QGenericArgumentHolder@val5@={},
+ QtCoreHelper::QGenericArgumentHolder@val6@={},
+ QtCoreHelper::QGenericArgumentHolder@val7@={},
+ QtCoreHelper::QGenericArgumentHolder@val8@={},
+ QtCoreHelper::QGenericArgumentHolder@val9@={})"
+ return-type="PyObject*">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp"
+ snippet="qmetamethod-invoke-conn-type-return-arg"/>
+ </add-function>
+ <add-function signature="invoke(QObject*@object@,
+ QtCoreHelper::QGenericReturnArgumentHolder@ret@,
+ QtCoreHelper::QGenericArgumentHolder@val0@={},
+ QtCoreHelper::QGenericArgumentHolder@val1@={},
+ QtCoreHelper::QGenericArgumentHolder@val2@={},
+ QtCoreHelper::QGenericArgumentHolder@val3@={},
+ QtCoreHelper::QGenericArgumentHolder@val4@={},
+ QtCoreHelper::QGenericArgumentHolder@val5@={},
+ QtCoreHelper::QGenericArgumentHolder@val6@={},
+ QtCoreHelper::QGenericArgumentHolder@val7@={},
+ QtCoreHelper::QGenericArgumentHolder@val8@={},
+ QtCoreHelper::QGenericArgumentHolder@val9@={})"
+ return-type="PyObject*">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp"
+ snippet="qmetamethod-invoke-return-arg"/>
+ </add-function>
+ <add-function signature="invoke(QObject*@object@,Qt::ConnectionType@type@,
+ QtCoreHelper::QGenericArgumentHolder@val0@={},
+ QtCoreHelper::QGenericArgumentHolder@val1@={},
+ QtCoreHelper::QGenericArgumentHolder@val2@={},
+ QtCoreHelper::QGenericArgumentHolder@val3@={},
+ QtCoreHelper::QGenericArgumentHolder@val4@={},
+ QtCoreHelper::QGenericArgumentHolder@val5@={},
+ QtCoreHelper::QGenericArgumentHolder@val6@={},
+ QtCoreHelper::QGenericArgumentHolder@val7@={},
+ QtCoreHelper::QGenericArgumentHolder@val8@={},
+ QtCoreHelper::QGenericArgumentHolder@val9@={})"
+ return-type="PyObject*">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp"
+ snippet="qmetamethod-invoke-conn-type"/>
+ </add-function>
+ <add-function signature="invoke(QObject*@object@,
+ QtCoreHelper::QGenericArgumentHolder@val0@={},
+ QtCoreHelper::QGenericArgumentHolder@val1@={},
+ QtCoreHelper::QGenericArgumentHolder@val2@={},
+ QtCoreHelper::QGenericArgumentHolder@val3@={},
+ QtCoreHelper::QGenericArgumentHolder@val4@={},
+ QtCoreHelper::QGenericArgumentHolder@val5@={},
+ QtCoreHelper::QGenericArgumentHolder@val6@={},
+ QtCoreHelper::QGenericArgumentHolder@val7@={},
+ QtCoreHelper::QGenericArgumentHolder@val8@={},
+ QtCoreHelper::QGenericArgumentHolder@val9@={})"
+ return-type="PyObject*">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp"
+ snippet="qmetamethod-invoke"/>
+ </add-function>
<!-- This isn't part of Qt public API -->
<modify-function signature="attributes()const" remove="all"/>
<modify-function signature="getParameterTypes(int*)const" remove="all"/>
+ <modify-field name="mobj" remove="yes"/>
</value-type>
<object-type name="QMetaObject">
<enum-type name="Call"/>
<include file-name="qobjectdefs.h" location="global"/>
+ <extra-includes>
+ <include file-name="dynamicqmetaobject.h" location="global"/>
+ <include file-name="pysidemetatype.h" location="global"/>
+ <include file-name="glue/core_snippets_p.h" location="local"/>
+ <include file-name="pysideutils.h" location="global"/> <!-- QString conversion -->
+ </extra-includes>
+ <inject-code class="native" position="beginning" file="../glue/qtcore.cpp"
+ snippet="qmetaobject-invokemethod-helpers"/>
<!-- This isn't part of Qt public API -->
<modify-function signature="connect(const QObject*,int,const QObject*,int,int,int*)" remove="all"/>
<value-type name="Connection" operator-bool="true">
@@ -2960,10 +3251,99 @@
<declare-function signature="operator bool() const" return-type="bool"/>
</value-type>
<modify-function signature="^invokeMethod\(" allow-thread="yes"/>
+ <add-function signature="invokeMethod(QObject*@object@,const char *@member@,Qt::ConnectionType@type@,
+ QtCoreHelper::QGenericArgumentHolder@val0@={},
+ QtCoreHelper::QGenericArgumentHolder@val1@={},
+ QtCoreHelper::QGenericArgumentHolder@val2@={},
+ QtCoreHelper::QGenericArgumentHolder@val3@={},
+ QtCoreHelper::QGenericArgumentHolder@val4@={},
+ QtCoreHelper::QGenericArgumentHolder@val5@={},
+ QtCoreHelper::QGenericArgumentHolder@val6@={},
+ QtCoreHelper::QGenericArgumentHolder@val7@={},
+ QtCoreHelper::QGenericArgumentHolder@val8@={},
+ QtCoreHelper::QGenericArgumentHolder@val9@={})"
+ static="yes" return-type="bool">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp"
+ snippet="qmetaobject-invokemethod-conn-type-arg"/>
+ </add-function>
+ <add-function signature="invokeMethod(QObject*@object@,const char *@member@,
+ QtCoreHelper::QGenericArgumentHolder@val0@={},
+ QtCoreHelper::QGenericArgumentHolder@val1@={},
+ QtCoreHelper::QGenericArgumentHolder@val2@={},
+ QtCoreHelper::QGenericArgumentHolder@val3@={},
+ QtCoreHelper::QGenericArgumentHolder@val4@={},
+ QtCoreHelper::QGenericArgumentHolder@val5@={},
+ QtCoreHelper::QGenericArgumentHolder@val6@={},
+ QtCoreHelper::QGenericArgumentHolder@val7@={},
+ QtCoreHelper::QGenericArgumentHolder@val8@={},
+ QtCoreHelper::QGenericArgumentHolder@val9@={})"
+ static="yes" return-type="bool">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp"
+ snippet="qmetaobject-invokemethod-arg"/>
+ </add-function>
+ <add-function signature="invokeMethod(QObject*@object@,const char *@member@,Qt::ConnectionType@type@,
+ QtCoreHelper::QGenericReturnArgumentHolder@ret@,
+ QtCoreHelper::QGenericArgumentHolder@val0@={},
+ QtCoreHelper::QGenericArgumentHolder@val1@={},
+ QtCoreHelper::QGenericArgumentHolder@val2@={},
+ QtCoreHelper::QGenericArgumentHolder@val3@={},
+ QtCoreHelper::QGenericArgumentHolder@val4@={},
+ QtCoreHelper::QGenericArgumentHolder@val5@={},
+ QtCoreHelper::QGenericArgumentHolder@val6@={},
+ QtCoreHelper::QGenericArgumentHolder@val7@={},
+ QtCoreHelper::QGenericArgumentHolder@val8@={},
+ QtCoreHelper::QGenericArgumentHolder@val9@={})"
+ static="yes" return-type="PyObject*">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp"
+ snippet="qmetaobject-invokemethod-conn-type-return-arg"/>
+ </add-function>
+ <add-function signature="invokeMethod(QObject*@object@,const char *@member@,
+ QtCoreHelper::QGenericReturnArgumentHolder@ret@,
+ QtCoreHelper::QGenericArgumentHolder@val0@={},
+ QtCoreHelper::QGenericArgumentHolder@val1@={},
+ QtCoreHelper::QGenericArgumentHolder@val2@={},
+ QtCoreHelper::QGenericArgumentHolder@val3@={},
+ QtCoreHelper::QGenericArgumentHolder@val4@={},
+ QtCoreHelper::QGenericArgumentHolder@val5@={},
+ QtCoreHelper::QGenericArgumentHolder@val6@={},
+ QtCoreHelper::QGenericArgumentHolder@val7@={},
+ QtCoreHelper::QGenericArgumentHolder@val8@={},
+ QtCoreHelper::QGenericArgumentHolder@val9@={})"
+ static="yes" return-type="PyObject*">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp"
+ snippet="qmetaobject-invokemethod-return-arg"/>
+ </add-function>
+ <add-function signature="__repr__" return-type="PyObject*">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qmetaobject-repr"/>
+ </add-function>
+ <modify-function signature="indexOfClassInfo(const char *)">
+ <modify-argument index="1" pyi-type="str"/>
+ </modify-function>
+ <modify-function signature="indexOfConstructor(const char *)">
+ <modify-argument index="1" pyi-type="str"/>
+ </modify-function>
+ <modify-function signature="indexOfEnumerator(const char *)">
+ <modify-argument index="1" pyi-type="str"/>
+ </modify-function>
+ <modify-function signature="indexOfMethod(const char *)">
+ <modify-argument index="1" pyi-type="str"/>
+ </modify-function>
+ <modify-function signature="indexOfProperty(const char *)">
+ <modify-argument index="1" pyi-type="str"/>
+ </modify-function>
+ <modify-function signature="indexOfSignal(const char *)">
+ <modify-argument index="1" pyi-type="str"/>
+ </modify-function>
+ <modify-function signature="indexOfSlot(const char *)">
+ <modify-argument index="1" pyi-type="str"/>
+ </modify-function>
</object-type>
<value-type name="QMetaProperty" >
<!-- This isn't part of Qt public API -->
<modify-function signature="enclosingMetaObject()const" remove="all"/>
+ <modify-function signature="write(QObject*,const QVariant &amp;)const">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qmetaproperty_write_enum"/>
+ </modify-function>
</value-type>
<value-type name="QMetaClassInfo">
<!-- This isn't part of Qt public API -->
@@ -3078,13 +3458,16 @@
</value-type>
<value-type name="QMargins" since="4.6"/>
- <value-type name="QMarginsF" since="5.3"/>
+ <value-type name="QMarginsF"/>
<object-type name="QParallelAnimationGroup" since="4.6"/>
<object-type name="QPauseAnimation" since="4.6"/>
- <value-type name="QProcessEnvironment" since="4.6"/>
+ <value-type name="QProcessEnvironment" since="4.6">
+ <configuration condition="QT_CONFIG(processenvironment)"/>
+ <enum-type name="Initialization" since="6.3"/>
+ </value-type>
<object-type name="QPropertyAnimation" since="4.6"/>
@@ -3092,8 +3475,8 @@
<object-type name="QVariantAnimation" since="4.6"/>
- <value-type name="QVersionNumber" since="5.6">
- <modify-function signature="fromString(const QString &amp;,int*)">
+ <value-type name="QVersionNumber">
+ <modify-function signature="fromString(QAnyStringView,qsizetype*)">
<modify-argument index="2">
<remove-argument/>
</modify-argument>
@@ -3104,10 +3487,12 @@
<add-function signature="SIGNAL(const char*)" return-type="str">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qt-signal"/>
+ <modify-argument index="1" pyi-type="str"/>
</add-function>
<add-function signature="SLOT(const char*)" return-type="str">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qt-slot"/>
+ <modify-argument index="1" pyi-type="str"/>
</add-function>
<add-function signature="QT_TR_NOOP(PyObject)" return-type="PyObject*">
@@ -3145,12 +3530,18 @@
</add-function>
<object-type name="QFactoryInterface"/>
- <object-type name="QRunnable"/>
+ <object-type name="QRunnable">
+ <configuration condition="QT_CONFIG(thread)"/>
+ <add-function signature="create(PyObject* @functionToRun@)" static="yes" return-type="QRunnable*">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qrunnable_create"/>
+ </add-function>
+ </object-type>
<object-type name="QPluginLoader"/>
<object-type name="QStringListModel"/>
<object-type name="QSharedMemory">
+ <configuration condition="#ifndef QT_NO_SHAREDMEMORY"/>
<enum-type name="AccessMode"/>
<enum-type name="SharedMemoryError"/>
<modify-function signature="data()">
@@ -3181,22 +3572,54 @@
<enum-type name="Sizes"/>
</object-type>
+ <object-type name="QLoggingCategory"/>
+
+ <add-function signature="qCDebug(PyObject *, const char *)">
+ <extra-includes>
+ <include file-name="qloggingcategory.h" location="global" />
+ </extra-includes>
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qloggingcategory_to_cpp">
+ qCDebug((*category), "%s", %2);
+ </inject-code>
+ </add-function>
+
+ <add-function signature="qCCritical(PyObject *, const char *)">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qloggingcategory_to_cpp">
+ qCCritical((*category), "%s", %2);
+ </inject-code>
+ </add-function>
+
+ <add-function signature="qCInfo(PyObject *, const char *)">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qloggingcategory_to_cpp">
+ qCInfo((*category), "%s", %2);
+ </inject-code>
+ </add-function>
+
+ <add-function signature="qCWarning(PyObject *, const char *)">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qloggingcategory_to_cpp">
+ qCWarning((*category), "%s", %2);
+ </inject-code>
+ </add-function>
+
<suppress-warning text="^.*enum 'Qt::Initialization' does not have a type entry.*$"/>
+ <suppress-warning text="^.*Enum 'QRandomGenerator::System'.*does not have a type entry.*$"/>
+
<suppress-warning text="^Anonymous enum.*does not have a type entry.*$"/>
<suppress-warning text="Visibility of function '*' modified in class '*'"/>
- <suppress-warning text="hiding of function '*' in class '*'"/>
<suppress-warning text="Shadowing: *"/>
- <suppress-warning text="namespace '*' does not have a type entry"/>
+ <suppress-warning text="^namespace '.*' does not have a type entry.*$"/>
<!-- QCborStreamReader: Suppress warnings about 32/64bit signatures not found depending on qsizetype -->
<suppress-warning text="^signature 'readStringChunk\(char.*in 'QCborStreamReader' not found.*$"/>
<!-- TODO: this need be removed -->
- <suppress-warning text="^skipping function '.*', unmatched return type '.*$"/>
- <suppress-warning text="^skipping function '.*', unmatched type '.*$"/>
- <suppress-warning text="skipping field 'QStringConverter::iface' with unmatched type 'QStringConverter::Interface'"/>
- <suppress-warning text="skipping field 'Qt::Uninitialized' with unmatched type 'Qt::Initialization'"/>
- <suppress-warning text="skipping field 'State::clearFn' with unmatched type 'void'"/>
+ <suppress-warning text="^skipping.*function '.*', unmatched return type '.*$"/>
+ <suppress-warning text="^skipping.*function '.*', unmatched type '.*$"/>
+ <suppress-warning text="skipping protected field 'QStringConverter::iface' with unmatched type 'QStringConverter::Interface'"/>
+ <suppress-warning text="^skipping public field 'Qt::.*' with unmatched type 'Qt::.*ordering'$"/>
+ <suppress-warning text="skipping public field 'Qt::Uninitialized' with unmatched type 'Qt::Initialization'"/>
+ <suppress-warning text="skipping public field 'State::clearFn' with unmatched type 'void'"/>
<suppress-warning text="template baseclass 'QListSpecialMethods&lt;T&gt;' of 'QList' is not known"/>
<suppress-warning text="^.*inherits from a non polymorphic type.*QIODeviceBase.*type discovery based on RTTI is impossible.*$"/>
+ <suppress-warning text="Base class 'QOperatingSystemVersionUnexported' of class 'QOperatingSystemVersion' not found in the type system for setting up inheritance."/>
</typesystem>
diff --git a/sources/pyside6/PySide6/QtCore/typesystem_core_win.xml b/sources/pyside6/PySide6/QtCore/typesystem_core_win.xml
index f76dc4864..e2984afd9 100644
--- a/sources/pyside6/PySide6/QtCore/typesystem_core_win.xml
+++ b/sources/pyside6/PySide6/QtCore/typesystem_core_win.xml
@@ -1,43 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
<typesystem package="PySide6.QtCore">
<extra-includes>
diff --git a/sources/pyside6/PySide6/QtDBus/CMakeLists.txt b/sources/pyside6/PySide6/QtDBus/CMakeLists.txt
index 1686df84f..5ee8dc67c 100644
--- a/sources/pyside6/PySide6/QtDBus/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtDBus/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtDBus)
set(QtDBus_SRC
diff --git a/sources/pyside6/PySide6/QtDBus/typesystem_dbus.xml b/sources/pyside6/PySide6/QtDBus/typesystem_dbus.xml
index fc0126acb..ebed22257 100644
--- a/sources/pyside6/PySide6/QtDBus/typesystem_dbus.xml
+++ b/sources/pyside6/PySide6/QtDBus/typesystem_dbus.xml
@@ -1,45 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtDBus">
+<typesystem package="PySide6.QtDBus"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="QtCore/typesystem_core.xml" generate="no"/>
<namespace-type name="QDBus">
@@ -66,6 +31,14 @@
return-type="QDBusMessage"/>
<declare-function signature="call(QDBus::CallMode,const QString&amp;,const QVariant&amp;,const QVariant&amp;,const QVariant&amp;,const QVariant&amp;)"
return-type="QDBusMessage"/>
+ <declare-function signature="call(QDBus::CallMode,const QString&amp;,const QVariant&amp;,const QVariant&amp;,const QVariant&amp;,const QVariant&amp;,const QVariant&amp;)"
+ return-type="QDBusMessage"/>
+ <declare-function signature="call(QDBus::CallMode,const QString&amp;,const QVariant&amp;,const QVariant&amp;,const QVariant&amp;,const QVariant&amp;,const QVariant&amp;,const QVariant&amp;)"
+ return-type="QDBusMessage"/>
+ <declare-function signature="call(QDBus::CallMode,const QString&amp;,const QVariant&amp;,const QVariant&amp;,const QVariant&amp;,const QVariant&amp;,const QVariant&amp;,const QVariant&amp;,const QVariant&amp;)"
+ return-type="QDBusMessage"/>
+ <declare-function signature="call(QDBus::CallMode,const QString&amp;,const QVariant&amp;,const QVariant&amp;,const QVariant&amp;,const QVariant&amp;,const QVariant&amp;,const QVariant&amp;,const QVariant&amp;,const QVariant&amp;)"
+ return-type="QDBusMessage"/>
</object-type>
<value-type name="QDBusArgument">
<enum-type name="ElementType"/>
@@ -81,6 +54,8 @@
<define-ownership class="target" owner="default"/>
</modify-argument>
</modify-function>
+ <!-- PYSIDE-2547, hangs -->
+ <modify-function signature="^connect\(.*\)$" allow-thread="yes"/>
</value-type>
<object-type name="QDBusConnectionInterface">
<enum-type name="RegisterServiceReply"/>
@@ -110,11 +85,16 @@
<value-type name="QDBusError">
<enum-type name="ErrorType"/>
</value-type>
- <object-type name="QDBusInterface"/>
- <object-type name="QDBusMessage">
- <enum-type name="MessageType"/>
+ <object-type name="QDBusInterface" qt-metaobject="no">
+ <inject-documentation format="target" mode="append">
+ DBus signals can be captured with string-based connections
+ (see :ref:`signals-and-slots-strings`).
+ </inject-documentation>
</object-type>
- <object-type name="QDBusObjectPath"/>
+ <value-type name="QDBusMessage">
+ <enum-type name="MessageType"/>
+ </value-type>
+ <value-type name="QDBusObjectPath"/>
<object-type name="QDBusPendingCall"/>
<object-type name="QDBusPendingCallWatcher"/>
@@ -128,7 +108,7 @@
</object-type>
<object-type name="QDBusSignature"/>
<object-type name="QDBusUnixFileDescriptor"/>
- <object-type name="QDBusVariant"/>
+ <value-type name="QDBusVariant"/>
<object-type name="QDBusVirtualObject"/>
<suppress-warning text='^.*Unable to translate type "QDBusReply&lt;.*$'/>
<suppress-warning text='^.*QDBusPendingCallWatcher inherits from a non polymorphic type.*$'/>
diff --git a/sources/pyside6/PySide6/QtDataVisualization/CMakeLists.txt b/sources/pyside6/PySide6/QtDataVisualization/CMakeLists.txt
index d50ab1f6c..1276b424f 100644
--- a/sources/pyside6/PySide6/QtDataVisualization/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtDataVisualization/CMakeLists.txt
@@ -1,5 +1,10 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtDataVisualization)
+list(APPEND QtDataVisualization_src "${QtDataVisualization_SOURCE_DIR}/qtdatavisualization_helper.cpp")
+
set(QtDataVisualization_SRC
${QtDataVisualization_GEN_DIR}/qabstract3daxis_wrapper.cpp
${QtDataVisualization_GEN_DIR}/qcategory3daxis_wrapper.cpp
@@ -49,10 +54,8 @@ set(QtDataVisualization_include_dirs ${QtDataVisualization_SOURCE_DIR}
${QtCore_GEN_DIR}
${QtGui_GEN_DIR})
-set(QtDataVisualization_libraries pyside6
- ${Qt${QT_MAJOR_VERSION}DataVisualization_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Core_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Gui_LIBRARIES})
+set(QtDataVisualization_libraries pyside6
+ ${Qt${QT_MAJOR_VERSION}DataVisualization_LIBRARIES})
set(QtDataVisualization_deps QtCore QtGui)
@@ -61,4 +64,8 @@ create_pyside_module(NAME QtDataVisualization
LIBRARIES QtDataVisualization_libraries
DEPS QtDataVisualization_deps
TYPESYSTEM_PATH QtDataVisualization_SOURCE_DIR
- SOURCES QtDataVisualization_SRC)
+ SOURCES QtDataVisualization_SRC
+ STATIC_SOURCES QtDataVisualization_src)
+
+install(FILES ${pyside6_SOURCE_DIR}/qtdatavisualization_helper.h
+ DESTINATION include/PySide6/QtDataVisualization)
diff --git a/sources/pyside6/PySide6/QtDataVisualization/qtdatavisualization_helper.cpp b/sources/pyside6/PySide6/QtDataVisualization/qtdatavisualization_helper.cpp
new file mode 100644
index 000000000..8ad31a77a
--- /dev/null
+++ b/sources/pyside6/PySide6/QtDataVisualization/qtdatavisualization_helper.cpp
@@ -0,0 +1,97 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#include "qtdatavisualization_helper.h"
+
+#include <sbknumpyview.h>
+
+#include <QtCore/QDebug>
+
+namespace QtDataVisualizationHelper {
+
+template <class T>
+static void populateArray(double xStart, double deltaX, double zStart, double deltaZ,
+ qsizetype xSize, qsizetype zSize, qsizetype zStrideBytes,
+ const T *data, QSurfaceDataArray *result)
+{
+ result->reserve(zSize);
+ const qsizetype zStride = zStrideBytes / sizeof(T);
+ double z = zStart;
+ for (qsizetype zi = 0; zi < zSize; ++zi) {
+ auto *row = new QSurfaceDataRow;
+ row->reserve(xSize);
+ result->append(row);
+
+ double x = xStart;
+ auto *rowDataEnd = data + xSize;
+ for (auto *d = data; d < rowDataEnd; ++d) {
+ row->append(QSurfaceDataItem(QVector3D(x, *d, z)));
+ x += deltaX;
+ }
+
+ data += zStride;
+ z += deltaZ;
+ }
+}
+
+QSurfaceDataArray *surfaceDataFromNp(double xStart, double deltaX, double zStart, double deltaZ,
+ PyObject *pyData)
+{
+ static const char funcName[] = "QSurfaceDataProxy.resetArrayNp";
+
+ auto *result = new QSurfaceDataArray;
+
+ auto view = Shiboken::Numpy::View::fromPyObject(pyData);
+ if (!view) {
+ PyErr_Format(PyExc_TypeError, "Invalid array passed to %s", funcName);
+ return result;
+ }
+ if (view.ndim != 2) {
+ PyErr_Format(PyExc_TypeError, "%s expects a 2 dimensional array (%d)", view.ndim);
+ return result;
+ }
+
+ const qsizetype zSize = view.dimensions[0];
+ const qsizetype xSize = view.dimensions[1];
+ if (zSize == 0 || xSize == 0)
+ return result;
+
+ switch (view.type) {
+ case Shiboken::Numpy::View::Int16:
+ populateArray(xStart, deltaX, zStart, deltaZ, xSize, zSize, view.stride[0],
+ reinterpret_cast<const int16_t *>(view.data), result);
+ break;
+ case Shiboken::Numpy::View::Unsigned16:
+ populateArray(xStart, deltaX, zStart, deltaZ, xSize, zSize, view.stride[0],
+ reinterpret_cast<const uint16_t *>(view.data), result);
+ break;
+ case Shiboken::Numpy::View::Int:
+ populateArray(xStart, deltaX, zStart, deltaZ, xSize, zSize, view.stride[0],
+ reinterpret_cast<const int *>(view.data), result);
+ break;
+ case Shiboken::Numpy::View::Unsigned:
+ populateArray(xStart, deltaX, zStart, deltaZ, xSize, zSize, view.stride[0],
+ reinterpret_cast<const unsigned *>(view.data), result);
+ break;
+ case Shiboken::Numpy::View::Int64:
+ populateArray(xStart, deltaX, zStart, deltaZ, xSize, zSize, view.stride[0],
+ reinterpret_cast<const int64_t *>(view.data), result);
+ break;
+ case Shiboken::Numpy::View::Unsigned64:
+ populateArray(xStart, deltaX, zStart, deltaZ, xSize, zSize, view.stride[0],
+ reinterpret_cast<const uint64_t *>(view.data), result);
+ break;
+ case Shiboken::Numpy::View::Float:
+ populateArray(xStart, deltaX, zStart, deltaZ, xSize, zSize, view.stride[0],
+ reinterpret_cast<const float *>(view.data), result);
+ break;
+ case Shiboken::Numpy::View::Double:
+ populateArray(xStart, deltaX, zStart, deltaZ, xSize, zSize, view.stride[0],
+ reinterpret_cast<const double *>(view.data), result);
+
+ break;
+ }
+ return result;
+}
+
+} // namespace QtDataVisualizationHelper
diff --git a/sources/pyside6/PySide6/QtDataVisualization/typesystem_datavisualization.xml b/sources/pyside6/PySide6/QtDataVisualization/typesystem_datavisualization.xml
index 11f89cf8a..70014e3dc 100644
--- a/sources/pyside6/PySide6/QtDataVisualization/typesystem_datavisualization.xml
+++ b/sources/pyside6/PySide6/QtDataVisualization/typesystem_datavisualization.xml
@@ -1,45 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtDataVisualization">
+<typesystem package="PySide6.QtDataVisualization"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
+
+ <extra-includes>
+ <include file-name="qtdatavisualization_helper.h" location="global"/>
+ </extra-includes>
<load-typesystem name="templates/datavisualization_common.xml" generate="no" />
<load-typesystem name="QtGui/typesystem_gui.xml" generate="no" />
@@ -87,13 +56,50 @@
</object-type>
<object-type name="QCategory3DAxis"/>
<object-type name="QLogValue3DAxisFormatter"/>
- <object-type name="QValue3DAxis"/>
+ <object-type name="QValue3DAxis">
+ <modify-function signature="setFormatter(QValue3DAxisFormatter *)">
+ <modify-argument index="1">
+ <parent index="this" action="add"/>
+ </modify-argument>
+ </modify-function>
+ </object-type>
<object-type name="QValue3DAxisFormatter">
+ <inject-code class="native" position="beginning" file="../glue/qtdatavisualization.cpp"
+ snippet="qvalue3daxisformatter-friend"/>
+ <modify-function signature="createNewInstance() const">
+ <modify-argument index="return">
+ <define-ownership class="native" owner="c++"/>
+ <define-ownership class="target" owner="default"/>
+ </modify-argument>
+ </modify-function>
<modify-function signature="populateCopy(QValue3DAxisFormatter&amp;)const">
<modify-argument index="1">
<parent index="this" action="add"/>
</modify-argument>
</modify-function>
+ <!-- PYSIDE-2025: gridPositions(), labelPositions(), labelStrings() return
+ non-const-references to lists for modifications. Add setters for them. -->
+ <add-function signature="setGridPositions(const QList&lt;float&gt;&amp;@grid_positions@)">
+ <inject-documentation format="target" mode="append">
+ Sets the normalized grid line positions to ``grid_positions``.
+ </inject-documentation>
+ <inject-code class="target" position="beginning" file="../glue/qtdatavisualization.cpp"
+ snippet="qvalue3daxisformatter-setgridpositions"/>
+ </add-function>
+ <add-function signature="setLabelPositions(const QList&lt;float&gt;&amp;@label_positions@)">
+ <inject-documentation format="target" mode="append">
+ Sets the normalized label positions to ``label_positions``.
+ </inject-documentation>
+ <inject-code class="target" position="beginning" file="../glue/qtdatavisualization.cpp"
+ snippet="qvalue3daxisformatter-setlabelpositions"/>
+ </add-function>
+ <add-function signature="setLabelStrings(const QStringList&amp;@label_strings@)">
+ <inject-documentation format="target" mode="append">
+ Sets the label strings to ``label_strings``.
+ </inject-documentation>
+ <inject-code class="target" position="beginning" file="../glue/qtdatavisualization.cpp"
+ snippet="qvalue3daxisformatter-setlabelstrings"/>
+ </add-function>
</object-type>
<object-type name="QAbstract3DSeries">
<enum-type name="Mesh"/>
@@ -111,11 +117,17 @@
</object-type>
<value-type name="QBarDataItem"/>
<object-type name="QBarDataProxy">
- <modify-function signature="resetArray(QBarDataArray*)">
- <modify-argument index="1">
- <parent index="this" action="add"/>
- </modify-argument>
- </modify-function>
+ <modify-function signature="resetArray(QBarDataArray*)" remove="all"/>
+ <add-function signature="resetArray(const QBarDataArray&amp;)">
+ <inject-code class="target" position="beginning" file="../glue/qtdatavisualization.cpp"
+ snippet="dataproxy-resetarray"/>
+ </add-function>
+ <modify-function signature="resetArray(QBarDataArray*,const QStringList&amp;,const QStringList&amp;)"
+ remove="all"/>
+ <add-function signature="resetArray(const QBarDataArray&amp;,const QStringList&amp;,const QStringList&amp;)">
+ <inject-code class="target" position="beginning" file="../glue/qtdatavisualization.cpp"
+ snippet="dataproxy-resetarray2"/>
+ </add-function>
<modify-function signature="resetArray(QBarDataArray*,const QStringList&amp;,const QStringList&amp;)">
<modify-argument index="1">
<parent index="this" action="add"/>
@@ -215,11 +227,12 @@
</object-type>
<value-type name="QScatterDataItem"/>
<object-type name="QScatterDataProxy">
- <modify-function signature="resetArray(QList&lt;QScatterDataItem&gt;*)">
- <modify-argument index="1">
- <parent index="this" action="add"/>
- </modify-argument>
- </modify-function>
+ <modify-function signature="resetArray(QList&lt;QScatterDataItem&gt;*)"
+ remove="all"/>
+ <add-function signature="resetArray(QList&lt;QScatterDataItem&gt;*)">
+ <inject-code class="target" position="beginning" file="../glue/qtdatavisualization.cpp"
+ snippet="scatterdataproxy-resetarray"/>
+ </add-function>
<modify-function signature="addItem(const QScatterDataItem&amp;)">
<modify-argument index="1">
<parent index="this" action="add"/>
@@ -266,7 +279,10 @@
</object-type>
<value-type name="QSurfaceDataItem"/>
<object-type name="QSurfaceDataProxy">
-
+ <inject-code class="native" position="beginning">
+ #include &lt;sbknumpycheck.h&gt;
+ #include &lt;qtdatavisualization_helper.h&gt;
+ </inject-code>
<!-- PYSIDE-1438: Replace all add/set/insertRow() taking a 'QList*' by overloads
taking 'const QList &' since an allocated list needs to be passed. -->
<modify-function signature="addRow(QList&lt;QSurfaceDataItem&gt;*)" remove="all"/>
@@ -295,6 +311,17 @@
<parent index="this" action="add"/>
</modify-argument>
</add-function>
+
+ <add-function signature="resetArrayNp(double@x@,double@deltaX@,double@z@,double@deltaZ@,PyArrayObject*@data@)">
+ <inject-code file="../glue/qtdatavisualization.cpp"
+ snippet="qsurfacedataproxy-resetarraynp"/>
+ <inject-documentation format="target" mode="append">
+ Populates the data from a 2 dimensional numpy array containing the y
+ values for a range starting a ``x``, ``z`` with steps of ``deltaX``,
+ ``deltaZ``, respectively.
+ </inject-documentation>
+ </add-function>
+
</object-type>
<object-type name="Q3DBars">
<modify-function signature="addAxis(QAbstract3DAxis*)">
@@ -442,4 +469,8 @@
<extra-includes>
<include file-name="qutils.h" location="global"/>
</extra-includes>
+
+ <!-- QtQml/QtNetwork are pulled in via QtDataVisualizationDepends. -->
+ <suppress-warning text="^Scoped enum 'Q(Ocsp)|(Dtls)|(Qml).*' does not have a type entry.*$"/>
+
</typesystem>
diff --git a/sources/pyside6/PySide6/QtDesigner/CMakeLists.txt b/sources/pyside6/PySide6/QtDesigner/CMakeLists.txt
index f8a57834b..e91532b87 100644
--- a/sources/pyside6/PySide6/QtDesigner/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtDesigner/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtDesigner)
qt_wrap_cpp(QtDesigner_static_src "${pyside6_SOURCE_DIR}/qpydesignerextensions.h")
@@ -48,14 +51,11 @@ set(QtDesigner_include_dirs ${QtDesigner_SOURCE_DIR}
${QtDesigner_BINARY_DIR}
${QtCore_GEN_DIR}
${QtGui_GEN_DIR}
- ${QtWidgets_GEN_DIR}
- )
+ ${QtWidgets_GEN_DIR})
+
set(QtDesigner_libraries pyside6
- ${Qt${QT_MAJOR_VERSION}Core_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Gui_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Widgets_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Designer_LIBRARIES}
- )
+ ${Qt${QT_MAJOR_VERSION}Designer_LIBRARIES})
+
set(QtDesigner_deps QtWidgets)
create_pyside_module(NAME QtDesigner
diff --git a/sources/pyside6/PySide6/QtDesigner/qpydesignercustomwidgetcollection.cpp b/sources/pyside6/PySide6/QtDesigner/qpydesignercustomwidgetcollection.cpp
index ee99396e1..31f8ec152 100644
--- a/sources/pyside6/PySide6/QtDesigner/qpydesignercustomwidgetcollection.cpp
+++ b/sources/pyside6/PySide6/QtDesigner/qpydesignercustomwidgetcollection.cpp
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include <qpydesignerextensions.h>
@@ -45,6 +9,8 @@
#include <shiboken.h>
#include <bindingmanager.h>
+QT_BEGIN_NAMESPACE
+
static QString pyStringToQString(PyObject *s)
{
const char *utf8 = _PepUnicode_AsString(s);
@@ -253,3 +219,5 @@ void QPyDesignerCustomWidgetCollection::addCustomWidget(QDesignerCustomWidgetInt
{
instance()->m_customWidgets.append(c);
}
+
+QT_END_NAMESPACE
diff --git a/sources/pyside6/PySide6/QtDesigner/typesystem_designer.xml b/sources/pyside6/PySide6/QtDesigner/typesystem_designer.xml
index 9bdc63d18..7d37cbddf 100644
--- a/sources/pyside6/PySide6/QtDesigner/typesystem_designer.xml
+++ b/sources/pyside6/PySide6/QtDesigner/typesystem_designer.xml
@@ -1,46 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtDesigner">
+<typesystem package="PySide6.QtDesigner"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="QtWidgets/typesystem_widgets.xml" generate="no"/>
+
+ <rejection class="qdesigner_internal"/>
+
<object-type name="QAbstractExtensionFactory"/>
<object-type name="QAbstractExtensionManager"/>
<object-type name="QAbstractFormBuilder"/>
@@ -102,11 +70,8 @@
</modify-argument>
</modify-function>
<!-- Force VARARGS/keyword arguments by giving a default parameters -->
- <add-function signature='registerCustomWidget(PyObject*,const QString&amp; @xml@ = {}, const QString&amp; @tool_tip@ = {}, const QString&amp; @group@ = {}, const QString&amp; @module@ = {}, bool @container@ = false, const QString&amp; @icon@ = {})'
+ <add-function signature='registerCustomWidget(PyObject*@customWidgetType@,const QString&amp; @xml@ = {}, const QString&amp; @tool_tip@ = {}, const QString&amp; @group@ = {}, const QString&amp; @module@ = {}, bool @container@ = false, const QString&amp; @icon@ = {})'
return-type='void' static='true'>
- <modify-argument index="1">
- <rename to="customWidgetType"/>
- </modify-argument>
<inject-code class="target" position="beginning" file="../glue/qtdesigner.cpp" snippet="qtdesigner-registercustomwidget"/>
</add-function>
</object-type>
diff --git a/sources/pyside6/PySide6/QtGraphs/CMakeLists.txt b/sources/pyside6/PySide6/QtGraphs/CMakeLists.txt
new file mode 100644
index 000000000..59cef220b
--- /dev/null
+++ b/sources/pyside6/PySide6/QtGraphs/CMakeLists.txt
@@ -0,0 +1,100 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+project(QtGraphs)
+
+set(QtGraphs_DROPPED_ENTRIES)
+
+list(APPEND QtGraphs_src "${QtGraphs_SOURCE_DIR}/qtgraphs_helper.cpp")
+
+set(QtGraphs_SRC
+# 3D
+${QtGraphs_GEN_DIR}/qabstract3daxis_wrapper.cpp
+${QtGraphs_GEN_DIR}/qcategory3daxis_wrapper.cpp
+${QtGraphs_GEN_DIR}/qlogvalue3daxisformatter_wrapper.cpp
+${QtGraphs_GEN_DIR}/qvalue3daxis_wrapper.cpp
+${QtGraphs_GEN_DIR}/qvalue3daxisformatter_wrapper.cpp
+${QtGraphs_GEN_DIR}/qabstract3dseries_wrapper.cpp
+${QtGraphs_GEN_DIR}/qabstractdataproxy_wrapper.cpp
+${QtGraphs_GEN_DIR}/qbar3dseries_wrapper.cpp
+${QtGraphs_GEN_DIR}/qbardataitem_wrapper.cpp
+${QtGraphs_GEN_DIR}/qbardataproxy_wrapper.cpp
+${QtGraphs_GEN_DIR}/qcustom3ditem_wrapper.cpp
+${QtGraphs_GEN_DIR}/qcustom3dlabel_wrapper.cpp
+${QtGraphs_GEN_DIR}/qcustom3dvolume_wrapper.cpp
+${QtGraphs_GEN_DIR}/qheightmapsurfacedataproxy_wrapper.cpp
+${QtGraphs_GEN_DIR}/qitemmodelbardataproxy_wrapper.cpp
+${QtGraphs_GEN_DIR}/qitemmodelscatterdataproxy_wrapper.cpp
+${QtGraphs_GEN_DIR}/qitemmodelsurfacedataproxy_wrapper.cpp
+${QtGraphs_GEN_DIR}/qscatter3dseries_wrapper.cpp
+${QtGraphs_GEN_DIR}/qscatterdataitem_wrapper.cpp
+${QtGraphs_GEN_DIR}/qscatterdataproxy_wrapper.cpp
+${QtGraphs_GEN_DIR}/qsurface3dseries_wrapper.cpp
+${QtGraphs_GEN_DIR}/qsurfacedataitem_wrapper.cpp
+${QtGraphs_GEN_DIR}/qsurfacedataproxy_wrapper.cpp
+${QtGraphs_GEN_DIR}/q3dbars_wrapper.cpp
+${QtGraphs_GEN_DIR}/q3dscatter_wrapper.cpp
+${QtGraphs_GEN_DIR}/q3dscene_wrapper.cpp
+${QtGraphs_GEN_DIR}/q3dsurface_wrapper.cpp
+${QtGraphs_GEN_DIR}/qabstract3dgraph_wrapper.cpp
+${QtGraphs_GEN_DIR}/q3dinputhandler_wrapper.cpp
+${QtGraphs_GEN_DIR}/qabstract3dinputhandler_wrapper.cpp
+${QtGraphs_GEN_DIR}/qtouch3dinputhandler_wrapper.cpp
+${QtGraphs_GEN_DIR}/q3dtheme_wrapper.cpp
+# 2D
+${QtGraphs_GEN_DIR}/qbarcategoryaxis_wrapper.cpp
+${QtGraphs_GEN_DIR}/qabstractaxis_wrapper.cpp
+${QtGraphs_GEN_DIR}/qvalueaxis_wrapper.cpp
+${QtGraphs_GEN_DIR}/qabstractbarseries_wrapper.cpp
+${QtGraphs_GEN_DIR}/qbarseries_wrapper.cpp
+${QtGraphs_GEN_DIR}/qbarset_wrapper.cpp
+${QtGraphs_GEN_DIR}/qlineseries_wrapper.cpp
+${QtGraphs_GEN_DIR}/qabstractseries_wrapper.cpp
+${QtGraphs_GEN_DIR}/qscatterseries_wrapper.cpp
+${QtGraphs_GEN_DIR}/qgraphtheme_wrapper.cpp
+${QtGraphs_GEN_DIR}/qseriestheme_wrapper.cpp
+${QtGraphs_GEN_DIR}/qxyseries_wrapper.cpp
+# module is always needed
+${QtGraphs_GEN_DIR}/qtgraphs_module_wrapper.cpp
+)
+
+set(QtGraphs_include_dirs ${QtGraphs_SOURCE_DIR}
+ ${QtGraphs_BINARY_DIR}
+ ${Qt${QT_MAJOR_VERSION}Core_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}QtNetwork_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}Gui_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}Widgets_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}Qml_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}Quick_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}QuickWidgets_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}Graphs_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}Quick3D_INCLUDE_DIRS}
+ ${libpyside_SOURCE_DIR}
+ ${QtCore_GEN_DIR}
+ ${QtNetwork_GEN_DIR}
+ ${QtGui_GEN_DIR}
+ ${QtWidgets_GEN_DIR}
+ ${QtQml_GEN_DIR}
+ ${QtQuick_GEN_DIR}
+ ${QtQuickWidgets_GEN_DIR}
+ ${QtQuick3D_GEN_DIR})
+
+set(QtGraphs_libraries pyside6
+ ${Qt${QT_MAJOR_VERSION}Graphs_LIBRARIES})
+
+set(QtGraphs_deps QtCore QtNetwork QtGui QtWidgets QtQml QtQuick QtQuickWidgets QtQuick3D)
+
+check_qt_opengl("Graphs" QtGraphs_include_dirs QtGraphs_deps
+ QtGraphs_DROPPED_ENTRIES)
+
+create_pyside_module(NAME QtGraphs
+ INCLUDE_DIRS QtGraphs_include_dirs
+ LIBRARIES QtGraphs_libraries
+ DEPS QtGraphs_deps
+ TYPESYSTEM_PATH QtGraphs_SOURCE_DIR
+ SOURCES QtGraphs_SRC
+ STATIC_SOURCES QtGraphs_src
+ DROPPED_ENTRIES QtGraphs_DROPPED_ENTRIES)
+
+install(FILES ${pyside6_SOURCE_DIR}/qtgraphs_helper.h
+ DESTINATION include/PySide6/QtGraphs)
diff --git a/sources/pyside6/PySide6/QtGraphs/qtgraphs_helper.cpp b/sources/pyside6/PySide6/QtGraphs/qtgraphs_helper.cpp
new file mode 100644
index 000000000..19fe4f818
--- /dev/null
+++ b/sources/pyside6/PySide6/QtGraphs/qtgraphs_helper.cpp
@@ -0,0 +1,97 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#include "qtgraphs_helper.h"
+
+#include <sbknumpyview.h>
+
+#include <QtCore/QDebug>
+
+namespace QtGraphsHelper {
+
+template <class T>
+static void populateArray(double xStart, double deltaX, double zStart, double deltaZ,
+ qsizetype xSize, qsizetype zSize, qsizetype zStrideBytes,
+ const T *data, QSurfaceDataArray *result)
+{
+ result->reserve(zSize);
+ const qsizetype zStride = zStrideBytes / sizeof(T);
+ double z = zStart;
+ for (qsizetype zi = 0; zi < zSize; ++zi) {
+ QSurfaceDataRow row;
+ row.reserve(xSize);
+
+ double x = xStart;
+ auto *rowDataEnd = data + xSize;
+ for (auto *d = data; d < rowDataEnd; ++d) {
+ row.append(QSurfaceDataItem(QVector3D(x, *d, z)));
+ x += deltaX;
+ }
+ result->append(row);
+
+ data += zStride;
+ z += deltaZ;
+ }
+}
+
+QSurfaceDataArray surfaceDataFromNp(double xStart, double deltaX, double zStart, double deltaZ,
+ PyObject *pyData)
+{
+ static const char funcName[] = "QSurfaceDataProxy.resetArrayNp";
+
+ QSurfaceDataArray result;
+
+ auto view = Shiboken::Numpy::View::fromPyObject(pyData);
+ if (!view) {
+ PyErr_Format(PyExc_TypeError, "Invalid array passed to %s", funcName);
+ return result;
+ }
+ if (view.ndim != 2) {
+ PyErr_Format(PyExc_TypeError, "%s expects a 2 dimensional array (%d)", view.ndim);
+ return result;
+ }
+
+ const qsizetype zSize = view.dimensions[0];
+ const qsizetype xSize = view.dimensions[1];
+ if (zSize == 0 || xSize == 0)
+ return result;
+
+ switch (view.type) {
+ case Shiboken::Numpy::View::Int16:
+ populateArray(xStart, deltaX, zStart, deltaZ, xSize, zSize, view.stride[0],
+ reinterpret_cast<const int16_t *>(view.data), &result);
+ break;
+ case Shiboken::Numpy::View::Unsigned16:
+ populateArray(xStart, deltaX, zStart, deltaZ, xSize, zSize, view.stride[0],
+ reinterpret_cast<const uint16_t *>(view.data), &result);
+ break;
+ case Shiboken::Numpy::View::Int:
+ populateArray(xStart, deltaX, zStart, deltaZ, xSize, zSize, view.stride[0],
+ reinterpret_cast<const int *>(view.data), &result);
+ break;
+ case Shiboken::Numpy::View::Unsigned:
+ populateArray(xStart, deltaX, zStart, deltaZ, xSize, zSize, view.stride[0],
+ reinterpret_cast<const unsigned *>(view.data), &result);
+ break;
+ case Shiboken::Numpy::View::Int64:
+ populateArray(xStart, deltaX, zStart, deltaZ, xSize, zSize, view.stride[0],
+ reinterpret_cast<const int64_t *>(view.data), &result);
+ break;
+ case Shiboken::Numpy::View::Unsigned64:
+ populateArray(xStart, deltaX, zStart, deltaZ, xSize, zSize, view.stride[0],
+ reinterpret_cast<const uint64_t *>(view.data), &result);
+ break;
+ case Shiboken::Numpy::View::Float:
+ populateArray(xStart, deltaX, zStart, deltaZ, xSize, zSize, view.stride[0],
+ reinterpret_cast<const float *>(view.data), &result);
+ break;
+ case Shiboken::Numpy::View::Double:
+ populateArray(xStart, deltaX, zStart, deltaZ, xSize, zSize, view.stride[0],
+ reinterpret_cast<const double *>(view.data), &result);
+
+ break;
+ }
+ return result;
+}
+
+} // namespace QtGraphsHelper
diff --git a/sources/pyside6/PySide6/QtGraphs/typesystem_graphs.xml b/sources/pyside6/PySide6/QtGraphs/typesystem_graphs.xml
new file mode 100644
index 000000000..43e4458be
--- /dev/null
+++ b/sources/pyside6/PySide6/QtGraphs/typesystem_graphs.xml
@@ -0,0 +1,303 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+-->
+<typesystem package="PySide6.QtGraphs"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
+
+ <extra-includes>
+ <include file-name="qtgraphs_helper.h" location="global"/>
+ </extra-includes>
+
+ <load-typesystem name="templates/datavisualization_common.xml" generate="no" />
+ <load-typesystem name="QtQuickWidgets/typesystem_quickwidgets.xml" generate="no" />
+
+ <function signature="qDefaultSurfaceFormat(bool)"/>
+
+
+ <object-type name="QAbstract3DAxis">
+ <enum-type name="AxisOrientation"/>
+ <enum-type name="AxisType"/>
+ </object-type>
+ <object-type name="QCategory3DAxis"/>
+ <object-type name="QLogValue3DAxisFormatter"/>
+ <object-type name="QValue3DAxis">
+ <modify-function signature="setFormatter(QValue3DAxisFormatter *)">
+ <modify-argument index="1">
+ <parent index="this" action="add"/>
+ </modify-argument>
+ </modify-function>
+ </object-type>
+ <object-type name="QValue3DAxisFormatter">
+ <modify-function signature="createNewInstance() const">
+ <modify-argument index="return">
+ <define-ownership class="native" owner="c++"/>
+ <define-ownership class="target" owner="default"/>
+ </modify-argument>
+ </modify-function>
+ </object-type>
+ <object-type name="QAbstract3DSeries">
+ <enum-type name="Mesh"/>
+ <enum-type name="SeriesType"/>
+ </object-type>
+ <object-type name="QAbstractDataProxy">
+ <enum-type name="DataType"/>
+ </object-type>
+ <object-type name="QBar3DSeries">
+ <modify-function signature="setDataProxy(QBarDataProxy*)">
+ <modify-argument index="1">
+ <parent index="this" action="add"/>
+ </modify-argument>
+ </modify-function>
+ </object-type>
+ <value-type name="QBarDataItem"/>
+ <object-type name="QBarDataProxy">
+ </object-type>
+ <object-type name="QCustom3DItem"/>
+ <object-type name="QCustom3DLabel"/>
+ <object-type name="QCustom3DVolume">
+ <modify-function signature="setTextureData(QList&lt;uchar&gt;*)" remove="all"/>
+ <add-function signature="setTextureData(const QList&lt;uchar&gt;&amp;)">
+ <inject-code class="target" position="beginning" file="../glue/qtdatavisualization.cpp"
+ snippet="qcustom3dvolume-settexturedata"/>
+ </add-function>
+ </object-type>
+ <object-type name="QHeightMapSurfaceDataProxy"/>
+ <object-type name="QItemModelBarDataProxy">
+ <enum-type name="MultiMatchBehavior"/>
+ </object-type>
+ <object-type name="QItemModelScatterDataProxy"/>
+ <object-type name="QItemModelSurfaceDataProxy">
+ <enum-type name="MultiMatchBehavior"/>
+ </object-type>
+ <object-type name="QScatter3DSeries">
+ <modify-function signature="setDataProxy(QScatterDataProxy*)">
+ <modify-argument index="1">
+ <parent index="this" action="add"/>
+ </modify-argument>
+ </modify-function>
+ </object-type>
+ <value-type name="QScatterDataItem"/>
+ <object-type name="QScatterDataProxy">
+ </object-type>
+ <object-type name="QSurface3DSeries">
+ <enum-type name="DrawFlag" flags="DrawFlags"/>
+ <modify-function signature="QSurface3DSeries(QSurfaceDataProxy*,QObject*)">
+ <modify-argument index="1">
+ <parent index="this" action="add"/>
+ </modify-argument>
+ </modify-function>
+ <modify-function signature="setDataProxy(QSurfaceDataProxy*)">
+ <modify-argument index="1">
+ <parent index="this" action="add"/>
+ </modify-argument>
+ </modify-function>
+ </object-type>
+ <value-type name="QSurfaceDataItem"/>
+ <object-type name="QSurfaceDataProxy">
+ <inject-code class="native" position="beginning">
+ #include &lt;sbknumpycheck.h&gt;
+ #include &lt;qtgraphs_helper.h&gt;
+ </inject-code>
+ <add-function signature="resetArrayNp(double@x@,double@deltaX@,double@z@,double@deltaZ@,PyArrayObject*@data@)">
+ <inject-code file="../glue/qtgraphs.cpp"
+ snippet="graphs-qsurfacedataproxy-resetarraynp"/>
+ <inject-documentation format="target" mode="append">
+ Populates the data from a 2 dimensional numpy array containing the y
+ values for a range starting a ``x``, ``z`` with steps of ``deltaX``,
+ ``deltaZ``, respectively.
+ </inject-documentation>
+ </add-function>
+
+ </object-type>
+ <object-type name="Q3DBars">
+ <modify-function signature="addAxis(QAbstract3DAxis*)">
+ <modify-argument index="1">
+ <parent index="this" action="add"/>
+ </modify-argument>
+ </modify-function>
+ <modify-function signature="releaseAxis(QAbstract3DAxis*)">
+ <modify-argument index="1">
+ <reference-count action="set"/>
+ </modify-argument>
+ <inject-code file="../glue/qtdatavisualization.cpp" snippet="releaseownership"/>
+ </modify-function>
+ <modify-function signature="setColumnAxis(QCategory3DAxis*)">
+ <modify-argument index="1">
+ <parent index="this" action="add"/>
+ </modify-argument>
+ </modify-function>
+ <modify-function signature="setRowAxis(QCategory3DAxis*)">
+ <modify-argument index="1">
+ <parent index="this" action="add"/>
+ </modify-argument>
+ </modify-function>
+ </object-type>
+ <object-type name="Q3DScatter">
+ <modify-function signature="addAxis(QValue3DAxis*)">
+ <modify-argument index="1">
+ <parent index="this" action="add"/>
+ </modify-argument>
+ </modify-function>
+ <modify-function signature="releaseAxis(QValue3DAxis*)">
+ <modify-argument index="1">
+ <reference-count action="set"/>
+ </modify-argument>
+ <inject-code file="../glue/qtdatavisualization.cpp" snippet="releaseownership"/>
+ </modify-function>
+ <modify-function signature="setAxisX(QValue3DAxis*)">
+ <modify-argument index="1">
+ <parent index="this" action="add"/>
+ </modify-argument>
+ </modify-function>
+ <modify-function signature="setAxisY(QValue3DAxis*)">
+ <modify-argument index="1">
+ <parent index="this" action="add"/>
+ </modify-argument>
+ </modify-function>
+ <modify-function signature="setAxisZ(QValue3DAxis*)">
+ <modify-argument index="1">
+ <parent index="this" action="add"/>
+ </modify-argument>
+ </modify-function>
+ </object-type>
+ <object-type name="Q3DScene"/>
+ <object-type name="Q3DSurface">
+ <modify-function signature="addAxis(QValue3DAxis*)">
+ <modify-argument index="1">
+ <parent index="this" action="add"/>
+ </modify-argument>
+ </modify-function>
+ <modify-function signature="releaseAxis(QValue3DAxis*)">
+ <modify-argument index="1">
+ <reference-count action="set"/>
+ </modify-argument>
+ <inject-code file="../glue/qtdatavisualization.cpp" snippet="releaseownership"/>
+ </modify-function>
+ <modify-function signature="setAxisX(QValue3DAxis*)">
+ <modify-argument index="1">
+ <parent index="this" action="add"/>
+ </modify-argument>
+ </modify-function>
+ <modify-function signature="setAxisY(QValue3DAxis*)">
+ <modify-argument index="1">
+ <parent index="this" action="add"/>
+ </modify-argument>
+ </modify-function>
+ <modify-function signature="setAxisZ(QValue3DAxis*)">
+ <modify-argument index="1">
+ <parent index="this" action="add"/>
+ </modify-argument>
+ </modify-function>
+ </object-type>
+ <object-type name="QAbstract3DGraph">
+ <enum-type name="ElementType"/>
+ <enum-type name="OptimizationHint" flags="OptimizationHints"/>
+ <enum-type name="RenderingMode"/>
+ <enum-type name="SelectionFlag" flags="SelectionFlags"/>
+ <enum-type name="ShadowQuality"/>
+ <enum-type name="CameraPreset" since="6.7"/>
+ <modify-function signature="addCustomItem(QCustom3DItem*)">
+ <modify-argument index="1">
+ <parent index="this" action="add"/>
+ </modify-argument>
+ </modify-function>
+ <modify-function signature="addInputHandler(QAbstract3DInputHandler*)">
+ <modify-argument index="1">
+ <parent index="this" action="add"/>
+ </modify-argument>
+ </modify-function>
+ <modify-function signature="addTheme(Q3DTheme*)">
+ <modify-argument index="1">
+ <parent index="this" action="add"/>
+ </modify-argument>
+ </modify-function>
+ <modify-function signature="releaseCustomItem(QCustom3DItem*)">
+ <modify-argument index="1">
+ <reference-count action="set"/>
+ </modify-argument>
+ <inject-code file="../glue/qtdatavisualization.cpp" snippet="releaseownership"/>
+ </modify-function>
+ <modify-function signature="releaseInputHandler(QAbstract3DInputHandler*)">
+ <modify-argument index="1">
+ <reference-count action="set"/>
+ </modify-argument>
+ <inject-code file="../glue/qtdatavisualization.cpp" snippet="releaseownership"/>
+ </modify-function>
+ <modify-function signature="releaseTheme(Q3DTheme*)">
+ <modify-argument index="1">
+ <reference-count action="set"/>
+ </modify-argument>
+ <inject-code file="../glue/qtdatavisualization.cpp" snippet="releaseownership"/>
+ </modify-function>
+ <modify-function signature="setActiveInputHandler(QAbstract3DInputHandler*)">
+ <modify-argument index="1">
+ <parent index="this" action="add"/>
+ </modify-argument>
+ </modify-function>
+ <modify-function signature="setActiveTheme(Q3DTheme*)">
+ <modify-argument index="1">
+ <parent index="this" action="add"/>
+ </modify-argument>
+ </modify-function>
+ </object-type>
+ <object-type name="Q3DInputHandler"/>
+ <object-type name="QAbstract3DInputHandler">
+ <enum-type name="InputView"/>
+ </object-type>
+ <object-type name="QTouch3DInputHandler"/>
+ <object-type name="Q3DTheme">
+ <enum-type name="ColorStyle"/>
+ <enum-type name="Theme"/>
+ </object-type>
+
+ <!-- 2D -->
+ <object-type name="QBarCategoryAxis"/>
+ <object-type name="QAbstractAxis">
+ <enum-type name="AxisType"/>
+ </object-type>
+ <object-type name="QValueAxis"/>
+ <object-type name="QAbstractBarSeries">
+ <enum-type name="LabelsPosition"/>
+ <modify-function signature="append(QBarSet*)">
+ <modify-argument index="1">
+ <parent index="this" action="add"/>
+ </modify-argument>
+ </modify-function>
+ <modify-function signature="append(QList&lt;QBarSet*&gt;)">
+ <modify-argument index="1">
+ <parent index="this" action="add"/>
+ </modify-argument>
+ </modify-function>
+ <modify-function signature="insert(int,QBarSet*)">
+ <modify-argument index="2">
+ <parent index="this" action="add"/>
+ </modify-argument>
+ </modify-function>
+ <modify-function signature="take(QBarSet*)">
+ <modify-argument index="1">
+ <parent index="this" action="add"/>
+ </modify-argument>
+ </modify-function>
+ </object-type>
+ <object-type name="QBarSeries"/>
+ <object-type name="QBarSet"/>
+ <object-type name="QLineSeries"/>
+ <object-type name="QAbstractSeries">
+ <enum-type name="SeriesType"/>
+ </object-type>
+ <object-type name="QScatterSeries"/>
+ <object-type name="QGraphTheme">
+ <enum-type name="ColorTheme"/>
+ </object-type>
+ <object-type name="QSeriesTheme">
+ <enum-type name="SeriesColorTheme"/>
+ </object-type>
+ <object-type name="QXYSeries">
+ </object-type>
+
+ <extra-includes>
+ <include file-name="qutils.h" location="global"/>
+ </extra-includes>
+</typesystem>
diff --git a/sources/pyside6/PySide6/QtGui/CMakeLists.txt b/sources/pyside6/PySide6/QtGui/CMakeLists.txt
index 5bdb38253..7cd7871f3 100644
--- a/sources/pyside6/PySide6/QtGui/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtGui/CMakeLists.txt
@@ -1,10 +1,84 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtGui)
qt_wrap_cpp(QPYTEXTOBJECT_MOC "${pyside6_SOURCE_DIR}/qpytextobject.h")
set(QtGui_DROPPED_ENTRIES)
+# Exclude sources that have clashing static helper functions named "iterator_..."
+set(QtGui_SRC_UNITY_EXCLUDED_SRC
+ ${QtGui_GEN_DIR}/qtextframe_iterator_wrapper.cpp
+ ${QtGui_GEN_DIR}/qtextblock_iterator_wrapper.cpp
+ ${QtGui_GEN_DIR}/qshaderversion_wrapper.cpp
+)
+
+set_property(SOURCE ${QtGui_SRC_UNITY_EXCLUDED_SRC}
+ PROPERTY SKIP_UNITY_BUILD_INCLUSION ON)
+
+set(QtGui_SRC_RHI
+${QtGui_GEN_DIR}/qrhi_wrapper.cpp
+${QtGui_GEN_DIR}/qrhibuffer_wrapper.cpp
+${QtGui_GEN_DIR}/qrhicolorattachment_wrapper.cpp
+${QtGui_GEN_DIR}/qrhicommandbuffer_wrapper.cpp
+${QtGui_GEN_DIR}/qrhicomputepipeline_wrapper.cpp
+${QtGui_GEN_DIR}/qrhidepthstencilclearvalue_wrapper.cpp
+${QtGui_GEN_DIR}/qrhidriverinfo_wrapper.cpp
+${QtGui_GEN_DIR}/qrhigraphicspipeline_targetblend_wrapper.cpp
+${QtGui_GEN_DIR}/qrhigraphicspipeline_wrapper.cpp
+${QtGui_GEN_DIR}/qrhigraphicspipeline_stencilopstate_wrapper.cpp
+${QtGui_GEN_DIR}/qrhiinitparams_wrapper.cpp
+${QtGui_GEN_DIR}/qrhinativehandles_wrapper.cpp
+${QtGui_GEN_DIR}/qrhinullinitparams_wrapper.cpp
+${QtGui_GEN_DIR}/qrhireadbackdescription_wrapper.cpp
+${QtGui_GEN_DIR}/qrhireadbackresult_wrapper.cpp
+${QtGui_GEN_DIR}/qrhirenderbuffer_wrapper.cpp
+${QtGui_GEN_DIR}/qrhirenderpassdescriptor_wrapper.cpp
+${QtGui_GEN_DIR}/qrhirendertarget_wrapper.cpp
+${QtGui_GEN_DIR}/qrhiresource_wrapper.cpp
+${QtGui_GEN_DIR}/qrhiresourceupdatebatch_wrapper.cpp
+${QtGui_GEN_DIR}/qrhisampler_wrapper.cpp
+${QtGui_GEN_DIR}/qrhiscissor_wrapper.cpp
+${QtGui_GEN_DIR}/qrhishaderresourcebinding_textureandsampler_wrapper.cpp
+${QtGui_GEN_DIR}/qrhishaderresourcebinding_data_storagebufferdata_wrapper.cpp
+${QtGui_GEN_DIR}/qrhishaderresourcebinding_data_storageimagedata_wrapper.cpp
+${QtGui_GEN_DIR}/qrhishaderresourcebinding_data_wrapper.cpp
+${QtGui_GEN_DIR}/qrhishaderresourcebinding_wrapper.cpp
+${QtGui_GEN_DIR}/qrhishaderresourcebindings_wrapper.cpp
+${QtGui_GEN_DIR}/qrhishaderstage_wrapper.cpp
+${QtGui_GEN_DIR}/qrhistats_wrapper.cpp
+${QtGui_GEN_DIR}/qrhiswapchain_wrapper.cpp
+${QtGui_GEN_DIR}/qrhiswapchainrendertarget_wrapper.cpp
+${QtGui_GEN_DIR}/qrhitexture_wrapper.cpp
+${QtGui_GEN_DIR}/qrhitexturecopydescription_wrapper.cpp
+${QtGui_GEN_DIR}/qrhitexturerendertarget_wrapper.cpp
+${QtGui_GEN_DIR}/qrhitexturerendertargetdescription_wrapper.cpp
+${QtGui_GEN_DIR}/qrhitexturesubresourceuploaddescription_wrapper.cpp
+${QtGui_GEN_DIR}/qrhitextureuploaddescription_wrapper.cpp
+${QtGui_GEN_DIR}/qrhitextureuploadentry_wrapper.cpp
+${QtGui_GEN_DIR}/qrhivertexinputattribute_wrapper.cpp
+${QtGui_GEN_DIR}/qrhivertexinputbinding_wrapper.cpp
+${QtGui_GEN_DIR}/qrhivertexinputlayout_wrapper.cpp
+${QtGui_GEN_DIR}/qrhiviewport_wrapper.cpp
+${QtGui_GEN_DIR}/qshader_wrapper.cpp
+${QtGui_GEN_DIR}/qshadercode_wrapper.cpp
+${QtGui_GEN_DIR}/qshaderkey_wrapper.cpp
+)
+
+if (ENABLE_WIN)
+ list(APPEND QtGui_SRC_RHI
+ ${QtGui_GEN_DIR}/qrhid3d11initparams_wrapper.cpp
+ ${QtGui_GEN_DIR}/qrhid3d11nativehandles_wrapper.cpp
+ ${QtGui_GEN_DIR}/qrhid3d12initparams_wrapper.cpp
+ ${QtGui_GEN_DIR}/qrhid3d12nativehandles_wrapper.cpp)
+elseif (ENABLE_MAC)
+ list(APPEND QtGui_SRC_RHI
+ ${QtGui_GEN_DIR}/qrhimetalinitparams_wrapper.cpp)
+endif()
+
set(QtGui_SRC
+${QtGui_SRC_UNITY_EXCLUDED_SRC}
${QtGui_GEN_DIR}/qabstractfileiconprovider_wrapper.cpp
${QtGui_GEN_DIR}/qabstracttextdocumentlayout_paintcontext_wrapper.cpp
${QtGui_GEN_DIR}/qabstracttextdocumentlayout_selection_wrapper.cpp
@@ -31,6 +105,7 @@ ${QtGui_GEN_DIR}/qactiongroup_wrapper.cpp
${QtGui_GEN_DIR}/qbackingstore_wrapper.cpp
${QtGui_GEN_DIR}/qbitmap_wrapper.cpp
${QtGui_GEN_DIR}/qbrush_wrapper.cpp
+${QtGui_GEN_DIR}/qchildwindowevent_wrapper.cpp
${QtGui_GEN_DIR}/qclipboard_wrapper.cpp
${QtGui_GEN_DIR}/qcloseevent_wrapper.cpp
${QtGui_GEN_DIR}/qcolor_wrapper.cpp
@@ -54,6 +129,7 @@ ${QtGui_GEN_DIR}/qexposeevent_wrapper.cpp
${QtGui_GEN_DIR}/qfileopenevent_wrapper.cpp
${QtGui_GEN_DIR}/qfocusevent_wrapper.cpp
${QtGui_GEN_DIR}/qfont_wrapper.cpp
+${QtGui_GEN_DIR}/qfont_tag_wrapper.cpp
${QtGui_GEN_DIR}/qfontdatabase_wrapper.cpp
${QtGui_GEN_DIR}/qfontinfo_wrapper.cpp
${QtGui_GEN_DIR}/qfontmetrics_wrapper.cpp
@@ -95,10 +171,8 @@ ${QtGui_GEN_DIR}/qmouseevent_wrapper.cpp
${QtGui_GEN_DIR}/qmoveevent_wrapper.cpp
${QtGui_GEN_DIR}/qmovie_wrapper.cpp
${QtGui_GEN_DIR}/qnativegestureevent_wrapper.cpp
+${QtGui_GEN_DIR}/qnativeinterface_wrapper.cpp
${QtGui_GEN_DIR}/qoffscreensurface_wrapper.cpp
-${QtGui_GEN_DIR}/qopenglcontextgroup_wrapper.cpp
-${QtGui_GEN_DIR}/qopenglextrafunctions_wrapper.cpp
-${QtGui_GEN_DIR}/qopenglfunctions_wrapper.cpp
${QtGui_GEN_DIR}/qpagedpaintdevice_wrapper.cpp
${QtGui_GEN_DIR}/qpagelayout_wrapper.cpp
${QtGui_GEN_DIR}/qpageranges_wrapper.cpp
@@ -142,13 +216,13 @@ ${QtGui_GEN_DIR}/qsinglepointevent_wrapper.cpp
${QtGui_GEN_DIR}/qstandarditem_wrapper.cpp
${QtGui_GEN_DIR}/qstandarditemmodel_wrapper.cpp
${QtGui_GEN_DIR}/qstatustipevent_wrapper.cpp
-${QtGui_GEN_DIR}/qopenglcontext_wrapper.cpp
${QtGui_GEN_DIR}/qaccessible_state_wrapper.cpp
${QtGui_GEN_DIR}/qaccessibleinterface_wrapper.cpp
${QtGui_GEN_DIR}/qscreen_wrapper.cpp
${QtGui_GEN_DIR}/qshortcut_wrapper.cpp
${QtGui_GEN_DIR}/qrasterwindow_wrapper.cpp
${QtGui_GEN_DIR}/qrawfont_wrapper.cpp
+${QtGui_SRC_RHI}
${QtGui_GEN_DIR}/qscrollevent_wrapper.cpp
${QtGui_GEN_DIR}/qscrollprepareevent_wrapper.cpp
${QtGui_GEN_DIR}/qstatictext_wrapper.cpp
@@ -157,7 +231,6 @@ ${QtGui_GEN_DIR}/qsurface_wrapper.cpp
${QtGui_GEN_DIR}/qsurfaceformat_wrapper.cpp
${QtGui_GEN_DIR}/qsyntaxhighlighter_wrapper.cpp
${QtGui_GEN_DIR}/qtabletevent_wrapper.cpp
-${QtGui_GEN_DIR}/qtextblock_iterator_wrapper.cpp
${QtGui_GEN_DIR}/qtextblock_wrapper.cpp
${QtGui_GEN_DIR}/qtextblockformat_wrapper.cpp
${QtGui_GEN_DIR}/qtextblockgroup_wrapper.cpp
@@ -169,7 +242,6 @@ ${QtGui_GEN_DIR}/qtextdocumentfragment_wrapper.cpp
${QtGui_GEN_DIR}/qtextdocumentwriter_wrapper.cpp
${QtGui_GEN_DIR}/qtextformat_wrapper.cpp
${QtGui_GEN_DIR}/qtextfragment_wrapper.cpp
-${QtGui_GEN_DIR}/qtextframe_iterator_wrapper.cpp
${QtGui_GEN_DIR}/qtextframe_wrapper.cpp
${QtGui_GEN_DIR}/qtextframeformat_wrapper.cpp
${QtGui_GEN_DIR}/qtextimageformat_wrapper.cpp
@@ -189,6 +261,7 @@ ${QtGui_GEN_DIR}/qtexttable_wrapper.cpp
${QtGui_GEN_DIR}/qtexttablecell_wrapper.cpp
${QtGui_GEN_DIR}/qtexttablecellformat_wrapper.cpp
${QtGui_GEN_DIR}/qtexttableformat_wrapper.cpp
+${QtGui_GEN_DIR}/qtguihelper_qoverridecursorguard_wrapper.cpp
${QtGui_GEN_DIR}/qtoolbarchangeevent_wrapper.cpp
${QtGui_GEN_DIR}/qtouchevent_wrapper.cpp
${QtGui_GEN_DIR}/qtransform_wrapper.cpp
@@ -208,6 +281,37 @@ ${QtGui_GEN_DIR}/qwindowstatechangeevent_wrapper.cpp
${QtGui_GEN_DIR}/qtgui_module_wrapper.cpp
)
+get_property(QtGui_enabled_features TARGET Qt${QT_MAJOR_VERSION}::Gui
+ PROPERTY QT_ENABLED_PUBLIC_FEATURES)
+
+if("xcb" IN_LIST QtGui_enabled_features)
+ list(APPEND QtGui_SRC
+ ${QtGui_GEN_DIR}/qnativeinterface_qx11application_wrapper.cpp)
+elseif(WIN32)
+ list(APPEND QtGui_SRC
+ ${QtGui_GEN_DIR}/qnativeinterface_qwindowsscreen_wrapper.cpp)
+endif()
+
+if("opengl" IN_LIST QtGui_enabled_features OR "opengles2" IN_LIST QtGui_enabled_features
+ OR "opengles3" IN_LIST QtGui_enabled_features)
+ list(APPEND QtGui_SRC
+ ${QtGui_GEN_DIR}/qopenglcontextgroup_wrapper.cpp
+ ${QtGui_GEN_DIR}/qopenglextrafunctions_wrapper.cpp
+ ${QtGui_GEN_DIR}/qopenglfunctions_wrapper.cpp
+ ${QtGui_GEN_DIR}/qopenglcontext_wrapper.cpp
+ ${QtGui_GEN_DIR}/qrhigles2initparams_wrapper.cpp
+ ${QtGui_GEN_DIR}/qrhigles2nativehandles_wrapper.cpp)
+else()
+ list(APPEND QtGui_DROPPED_ENTRIES
+ QOpenGLContext QOpenGLContextGroup QOpenGLPaintDevice
+ QOpenGLExtraFunctions QOpenGLFunctions
+ QRhiGles2InitParams QRhiGles2NativeHandles)
+endif()
+
+set(QtGui_private_include_dirs
+ ${Qt${QT_MAJOR_VERSION}Core_PRIVATE_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}Gui_PRIVATE_INCLUDE_DIRS})
+
configure_file("${QtGui_SOURCE_DIR}/QtGui_global.post.h.in"
"${QtGui_BINARY_DIR}/QtGui_global.post.h" @ONLY)
@@ -216,6 +320,7 @@ set(QtGui_include_dirs ${QtGui_SOURCE_DIR}
${pyside6_SOURCE_DIR}
${Qt${QT_MAJOR_VERSION}Core_INCLUDE_DIRS}
${Qt${QT_MAJOR_VERSION}Gui_INCLUDE_DIRS}
+ ${QtGui_private_include_dirs}
${libpyside_SOURCE_DIR}
${QtCore_GEN_DIR}
)
@@ -231,7 +336,10 @@ create_pyside_module(NAME QtGui
SOURCES QtGui_SRC
STATIC_SOURCES QPYTEXTOBJECT_MOC
TYPESYSTEM_NAME ${QtGui_BINARY_DIR}/typesystem_gui.xml
- DROPPED_ENTRIES QtGui_DROPPED_ENTRIES)
+ DROPPED_ENTRIES QtGui_DROPPED_ENTRIES
+ ADDITIONAL_INCLUDE_DIRS QtGui_private_include_dirs)
-install(FILES ${pyside6_SOURCE_DIR}/qpytextobject.h DESTINATION include/PySide6/QtGui/)
+install(FILES ${pyside6_SOURCE_DIR}/qpytextobject.h
+ ${pyside6_SOURCE_DIR}/qtguihelper.h
+ DESTINATION include/PySide6/QtGui/)
diff --git a/sources/pyside6/PySide6/QtGui/QtGui_global.post.h.in b/sources/pyside6/PySide6/QtGui/QtGui_global.post.h.in
index 6d3a3eeac..e5a0eeb90 100644
--- a/sources/pyside6/PySide6/QtGui/QtGui_global.post.h.in
+++ b/sources/pyside6/PySide6/QtGui/QtGui_global.post.h.in
@@ -1 +1,6 @@
#include "qpytextobject.h" // PySide class
+#include <rhi/qrhi.h>
+#include <rhi/qrhi_platform.h>
+#include <rhi/qshader.h>
+#include <qtguihelper.h>
+void qt_set_sequence_auto_mnemonic(bool b);
diff --git a/sources/pyside6/PySide6/QtGui/typesystem_gui.xml b/sources/pyside6/PySide6/QtGui/typesystem_gui.xml
index f611eb3f9..858989404 100644
--- a/sources/pyside6/PySide6/QtGui/typesystem_gui.xml
+++ b/sources/pyside6/PySide6/QtGui/typesystem_gui.xml
@@ -1,45 +1,10 @@
<?xml version="1.0"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtGui">
+<typesystem package="PySide6.QtGui"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="QtCore/typesystem_core.xml" generate="no"/>
<?if windows?>
<load-typesystem name="QtGui/typesystem_gui_win.xml" generate="yes"/>
@@ -51,4 +16,5 @@
<load-typesystem name="QtGui/typesystem_gui_x11.xml" generate="yes"/>
<?endif?>
<load-typesystem name="QtGui/typesystem_gui_common.xml" generate="yes"/>
+ <load-typesystem name="QtGui/typesystem_gui_rhi.xml" generate="yes"/>
</typesystem>
diff --git a/sources/pyside6/PySide6/QtGui/typesystem_gui_common.xml b/sources/pyside6/PySide6/QtGui/typesystem_gui_common.xml
index 96fc37c88..dd17952f0 100644
--- a/sources/pyside6/PySide6/QtGui/typesystem_gui_common.xml
+++ b/sources/pyside6/PySide6/QtGui/typesystem_gui_common.xml
@@ -1,72 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
<typesystem package="PySide6.QtGui">
<load-typesystem name="QtCore/typesystem_core.xml" generate="no"/>
+ <load-typesystem name="templates/common.xml" generate="no"/>
<load-typesystem name="templates/core_common.xml" generate="no"/>
<load-typesystem name="templates/gui_common.xml" generate="no"/>
<load-typesystem name="templates/opengl_common.xml" generate="no"/>
- <custom-type name="PyArrayObject"/>
-
- <?if !darwin?>
- <?entity GLint int?>
- <?entity GLuint unsigned int?>
- <?entity GLbyte unsigned char?>
- <?entity GLboolean unsigned char?>
- <?entity GLsizei int?>
- <?entity GLsizeiptr long?>
- <?entity GLintptr long?>
- <?endif?>
-
- <?if darwin?>
- <?entity GLint int32_t?>
- <?entity GLuint uint32_t?>
- <?entity GLbyte uint8_t?>
- <?entity GLboolean uint8_t?>
- <?entity GLsizei int32_t?>
- <?entity GLsizeiptr intptr_t?>
- <?entity GLintptr intptr_t?>
- <?endif?>
-
<rejection class="^Q.*$" argument-type="^QPlatform.*$"/>
<function signature="qAlpha(uint)"/>
<function signature="qBlue(uint)"/>
@@ -77,12 +20,18 @@
<function signature="qRed(uint)"/>
<function signature="qRgb(int,int,int)"/>
<function signature="qRgba(int,int,int,int)"/>
- <function signature="qFuzzyCompare(QMatrix,QMatrix)"/>
+ <!-- qFuzzyCompare() are declared as friend functions of the respective classes only. -->
+ <declare-function signature="qFuzzyCompare(QTransform,QTransform)" return-type="bool"/>
<function signature="qFuzzyCompare(QTransform,QTransform)"/>
+ <declare-function signature="qFuzzyCompare(QQuaternion,QQuaternion)" return-type="bool"/>
<function signature="qFuzzyCompare(QQuaternion,QQuaternion)"/>
+ <declare-function signature="qFuzzyCompare(QMatrix4x4,QMatrix4x4)" return-type="bool"/>
<function signature="qFuzzyCompare(QMatrix4x4,QMatrix4x4)"/>
+ <declare-function signature="qFuzzyCompare(QVector2D,QVector2D)" return-type="bool"/>
<function signature="qFuzzyCompare(QVector2D,QVector2D)"/>
+ <declare-function signature="qFuzzyCompare(QVector3D,QVector3D)" return-type="bool"/>
<function signature="qFuzzyCompare(QVector3D,QVector3D)"/>
+ <declare-function signature="qFuzzyCompare(QVector4D,QVector4D)" return-type="bool"/>
<function signature="qFuzzyCompare(QVector4D,QVector4D)"/>
<function signature="qPixelFormatRgba(uchar,uchar,uchar,uchar,QPixelFormat::AlphaUsage,QPixelFormat::AlphaPosition,QPixelFormat::AlphaPremultiplied,QPixelFormat::TypeInterpretation)"/>
<function signature="qPixelFormatGrayscale(uchar,QPixelFormat::TypeInterpretation)"/>
@@ -91,33 +40,9 @@
<function signature="qPixelFormatHsl(uchar,uchar,QPixelFormat::AlphaUsage,QPixelFormat::AlphaPosition,QPixelFormat::TypeInterpretation)"/>
<function signature="qPixelFormatHsv(uchar,uchar,QPixelFormat::AlphaUsage,QPixelFormat::AlphaPosition,QPixelFormat::TypeInterpretation)"/>
<function signature="qPixelFormatYuv(QPixelFormat::YUVLayout,uchar,QPixelFormat::AlphaUsage,QPixelFormat::AlphaPosition,QPixelFormat::AlphaPremultiplied,QPixelFormat::TypeInterpretation,QPixelFormat::ByteOrder)"/>
- <rejection class="*" function-name="qobject_interface_iid&lt;QStyleFactoryInterface*&gt;"/>
- <rejection class="*" function-name="qobject_interface_iid&lt;QAccessibleFactoryInterface*&gt;"/>
- <rejection class="*" function-name="qobject_interface_iid&lt;QInputContextFactoryInterface*&gt;"/>
- <rejection class="*" function-name="qobject_interface_iid&lt;QGraphicsItem*&gt;"/>
- <rejection class="*" function-name="qobject_interface_iid&lt;QGraphicsLayout*&gt;"/>
- <rejection class="*" function-name="qobject_interface_iid&lt;QAccessibleBridgeFactoryInterface*&gt;"/>
- <rejection class="*" function-name="qobject_interface_iid&lt;QImageIOHandlerFactoryInterface*&gt;"/>
- <rejection class="*" function-name="qobject_interface_iid&lt;QAccessibleInterface*&gt;"/>
- <rejection class="*" function-name="qobject_interface_iid&lt;QTextObjectInterface*&gt;"/>
- <rejection class="*" function-name="qobject_interface_iid&lt;QGraphicsLayoutItem*&gt;"/>
- <rejection class="*" function-name="qobject_interface_iid&lt;QIconEngineFactoryInterface*&gt;"/>
- <rejection class="*" function-name="qobject_interface_iid&lt;QPictureFormatInterface*&gt;"/>
-
- <rejection class="*" function-name="qobject_cast&lt;QGraphicsLayout*&gt;"/>
- <rejection class="*" function-name="qobject_cast&lt;QGraphicsItem*&gt;"/>
- <rejection class="*" function-name="qobject_cast&lt;QGraphicsLayoutItem*&gt;"/>
- <rejection class="*" function-name="qobject_cast&lt;QGraphicsLayoutItem*&gt;"/>
-
- <rejection class="*" function-name="qGenericMatrixFromMatrix4x4"/>
- <rejection class="*" function-name="qDrawBorderPixmap"/>
- <rejection class="*" function-name="qDrawPixmaps"/>
- <rejection class="*" function-name="qGenericMatrixToMatrix4x4"/>
-
- <rejection class="*" function-name="d_func"/>
- <rejection class="*" field-name="d_ptr"/>
- <rejection class="*" field-name="d"/>
- <rejection class="^QOpenGL.*$" argument-type="^(const )?GLboolean ?\*$"/>
+ <function signature="qt_set_sequence_auto_mnemonic(bool)"/>
+
+ <rejection class="^QOpenGL.*$" argument-type="^const GLboolean ?\*$"/>
<rejection class="^QOpenGL.*$" argument-type="^GLchar\*$"/>
<rejection class="^QOpenGL.*$" argument-type="^(const )?GLchar ?\*(const)?\*$"/>
<rejection class="^QOpenGL.*$" argument-type="^char\*$"/>
@@ -135,8 +60,6 @@
<rejection class="^QOpenGL.*$" argument-type="^(const )?QVector.D ?\*$"/>
<rejection class="^QOpenGL.*$" argument-type="^(const )?void ?\*\*$"/>
- <rejection class="QDrawBorderPixmap"/>
-
<!--
Event classes have a lot of non-documented protected fields, those fields
are removed from PySide because they are Qt implementation details,
@@ -144,21 +67,17 @@
-->
<rejection class="^Q.*Event$" field-name="^m_.*$"/>
- <rejection class="QEventPoint" field-name="^m_.*$"/>
- <rejection class="QAbstractTextDocumentLayout::PaintContext" field-name="selections"/>
- <rejection class="QBrush" function-name="cleanUp"/>
<rejection class="QFont" enum-name="ResolveProperties"/>
- <rejection class="QMotifStyle" field-name="focus"/>
- <rejection class="QPictureIO" function-name="defineIOHandler"/>
<rejection class="QPolygon" function-name="putPoints"/>
<rejection class="QPolygon" function-name="setPoints"/>
<rejection class="QPolygon" function-name="setPoint"/>
- <rejection class="QPolygon" function-name="points"/>
<rejection class="QPolygon" function-name="point"/>
- <rejection class="QActionGroup" function-name="selected"/>
<rejection class="QPaintEngine" function-name="fix_neg_rect"/>
+ <inject-code class="native" position="beginning" file="../glue/qtgui.cpp"
+ snippet="gui-declarations"/>
+
<!-- For Qt::mightBeRichText(QString), Qt::convertFromPlainText(QString,Qt::WhiteSpaceMode)
Match on files from '/QtGui/' (shadow build) or '/gui/' (developer build)
or '/QtGui.framework' (macOS) -->
@@ -173,7 +92,7 @@
</conversion-rule>
</primitive-type>
- <object-type name="QAbstractFileIconProvider" since="6.0">
+ <object-type name="QAbstractFileIconProvider">
<enum-type name="IconType"/>
<enum-type name="Option" flags="Options"/>
</object-type>
@@ -202,39 +121,52 @@
<object-type name="QAccessibleActionInterface"/>
<object-type name="QAccessibleEditableTextInterface"/>
<object-type name="QAccessibleInterface"/>
- <object-type name="QAccessibleObject"/>
+ <object-type name="QAccessibleObject" qt-register-metatype="base"/>
<object-type name="QAccessibleTableCellInterface"/>
<object-type name="QAccessibleTextInterface"/>
<object-type name="QAccessibleValueInterface"/>
- <object-type name="QAccessibleEvent" copyable="false" polymorphic-id-expression="%1-&gt;type() == QAccessible::InvalidEvent"/>
- <object-type name="QAccessibleStateChangeEvent" copyable="false" polymorphic-id-expression="%1-&gt;type() == QAccessible::StateChanged"/>
- <object-type name="QAccessibleTableModelChangeEvent" copyable="false" polymorphic-id-expression="%1-&gt;type() == QAccessible::TableModelChanged">
+ <object-type name="QAccessibleEvent"
+ polymorphic-id-expression="%B-&gt;type() == QAccessible::InvalidEvent"/>
+ <object-type name="QAccessibleStateChangeEvent"
+ polymorphic-id-expression="%B-&gt;type() == QAccessible::StateChanged"/>
+ <object-type name="QAccessibleTableModelChangeEvent"
+ polymorphic-id-expression="%B-&gt;type() == QAccessible::TableModelChanged">
<enum-type name="ModelChangeType"/>
</object-type>
- <object-type name="QAccessibleTextCursorEvent" copyable="false" polymorphic-id-expression="%1-&gt;type() == QAccessible::TextCaretMoved"/>
- <object-type name="QAccessibleTextInsertEvent" copyable="false" polymorphic-id-expression="%1-&gt;type() == QAccessible::TextInserted"/>
- <object-type name="QAccessibleTextRemoveEvent" copyable="false" polymorphic-id-expression="%1-&gt;type() == QAccessible::TextRemoved"/>
- <object-type name="QAccessibleTextSelectionEvent" copyable="false" polymorphic-id-expression="%1-&gt;type() == QAccessible::TextSelectionChanged"/>
- <object-type name="QAccessibleTextUpdateEvent" copyable="false" polymorphic-id-expression="%1-&gt;type() == QAccessible::TextUpdated"/>
- <object-type name="QAccessibleValueChangeEvent" copyable="false" polymorphic-id-expression="%1-&gt;type() == QAccessible::ValueChanged"/>
+ <object-type name="QAccessibleTextCursorEvent"
+ polymorphic-id-expression="%B-&gt;type() == QAccessible::TextCaretMoved"/>
+ <object-type name="QAccessibleTextInsertEvent"
+ polymorphic-id-expression="%B-&gt;type() == QAccessible::TextInserted"/>
+ <object-type name="QAccessibleTextRemoveEvent"
+ polymorphic-id-expression="%B-&gt;type() == QAccessible::TextRemoved"/>
+ <object-type name="QAccessibleTextSelectionEvent"
+ polymorphic-id-expression="%B-&gt;type() == QAccessible::TextSelectionChanged"/>
+ <object-type name="QAccessibleTextUpdateEvent"
+ polymorphic-id-expression="%B-&gt;type() == QAccessible::TextUpdated"/>
+ <object-type name="QAccessibleValueChangeEvent"
+ polymorphic-id-expression="%B-&gt;type() == QAccessible::ValueChanged"/>
<object-type name="QAction">
<enum-type name="ActionEvent"/>
<enum-type name="MenuRole"/>
<enum-type name="Priority" since="4.6"/>
- <modify-function signature="setMenu(QMenu*)">
+ <!-- PYSIDE-1627 QAction::menu()/setMenu() are templates -->
+ <add-function signature="menu()const" return-type="QObject*">
+ <inject-code file="../glue/qtgui.cpp" snippet="qaction-menu"/>
+ </add-function>
+ <declare-function signature="setMenu(QObject*)">
<modify-argument index="1">
<parent index="this" action="add"/>
</modify-argument>
- </modify-function>
+ </declare-function>
<modify-function signature="triggered(bool)" allow-thread="yes"/>
<add-function signature="setShortcut(Qt::Key)">
<inject-code file="../glue/qtgui.cpp" snippet="set-qtkey-shortcut"/>
</add-function>
</object-type>
<object-type name="QActionGroup">
- <enum-type name="ExclusionPolicy" since="5.14"/>
+ <enum-type name="ExclusionPolicy"/>
<modify-function signature="addAction(QAction*)">
<modify-argument index="1">
<parent index="this" action="add"/>
@@ -247,17 +179,11 @@
</modify-function>
</object-type>
<object-type name="QShortcut">
- <add-function signature="QShortcut(QKeySequence&amp;,QObject*,PyCallable*,Qt::ShortcutContext)">
- <modify-argument index="4">
- <replace-default-expression with="Qt::WindowShortcut"/>
- </modify-argument>
+ <add-function signature="QShortcut(QKeySequence&amp;,QObject*,PyCallable*,Qt::ShortcutContext=Qt::WindowShortcut)">
<inject-code class="target" position="beginning" file="../glue/qtgui.cpp" snippet="qshortcut-1"/>
<inject-code class="target" position="end" file="../glue/qtgui.cpp" snippet="qshortcut-2"/>
</add-function>
- <add-function signature="QShortcut(QKeySequence::StandardKey,QObject*,PyCallable*,Qt::ShortcutContext)">
- <modify-argument index="4">
- <replace-default-expression with="Qt::WindowShortcut"/>
- </modify-argument>
+ <add-function signature="QShortcut(QKeySequence::StandardKey,QObject*,PyCallable*,Qt::ShortcutContext=Qt::WindowShortcut)">
<inject-code class="target" position="beginning" file="../glue/qtgui.cpp" snippet="qshortcut-1"/>
<inject-code class="target" position="end" file="../glue/qtgui.cpp" snippet="qshortcut-2"/>
</add-function>
@@ -309,7 +235,7 @@
<modify-argument index="1">
<remove-argument/>
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[PySide6.QtGui.QTransform, bool]">
<replace-type modified-type="PyTuple"/>
</modify-argument>
<inject-code class="target" position="beginning">
@@ -349,7 +275,8 @@
<value-type name="QTextInlineObject"/>
<value-type name="QTextDocumentFragment"/>
<value-type name="QTextOption">
- <enum-type name="Flag" flags="Flags"/>
+ <!-- PYSIDE-2088, Avoid MSVC signedness issues -->
+ <enum-type name="Flag" flags="Flags" cpp-type="unsigned"/>
<enum-type name="TabType"/>
<enum-type name="WrapMode"/>
<value-type name="Tab"/>
@@ -398,9 +325,7 @@
<enum-type name="StandardKey"/>
<add-function signature="__repr__" return-type="PyObject*">
- <inject-code class="target" position="beginning">
- <insert-template name="qkeysequence_repr"/>
- </inject-code>
+ <inject-code class="target" position="beginning" file="../glue/qtgui.cpp" snippet="qkeysequence-repr"/>
</add-function>
<add-function signature="__reduce__" return-type="PyObject*">
@@ -452,6 +377,12 @@
</value-type>
<value-type name="QRegion" >
<enum-type name="RegionType"/>
+ <add-function signature="__len__">
+ <inject-code class="target" position="beginning" file="../glue/qtgui.cpp" snippet="qregion-len"/>
+ </add-function>
+ <add-function signature="__getitem__">
+ <inject-code class="target" position="beginning" file="../glue/qtgui.cpp" snippet="qregion-getitem"/>
+ </add-function>
<!-- ### This operator does not make sense in Python. -->
<modify-function signature="operator&amp;=(QRegion)" remove="all"/>
<modify-function signature="operator&amp;=(QRect)" remove="all"/>
@@ -498,7 +429,7 @@
</value-type>
<value-type name="QTextBlockFormat">
<enum-type name="LineHeightTypes" since="4.8" revision="4800"/>
- <enum-type name="MarkerType" since="5.14"/>
+ <enum-type name="MarkerType"/>
</value-type>
<value-type name="QTextTableCellFormat"/>
<value-type name="QTextCharFormat" >
@@ -507,10 +438,10 @@
<enum-type name="VerticalAlignment"/>
</value-type>
<value-type name="QTextFormat" >
- <enum-type name="FormatType"/>
- <enum-type name="ObjectTypes"/>
+ <enum-type name="FormatType" python-type="IntEnum"/>
+ <enum-type name="ObjectTypes" python-type="IntEnum"/>
<enum-type name="PageBreakFlag" flags="PageBreakFlags"/>
- <enum-type name="Property"/>
+ <enum-type name="Property" python-type="IntEnum"/>
</value-type>
<value-type name="QTextListFormat">
<enum-type name="Style"/>
@@ -558,19 +489,21 @@
<value-type name="QIcon" >
<enum-type name="Mode"/>
<enum-type name="State"/>
+ <enum-type name="ThemeIcon" since="6.7"/>
<modify-function signature="QIcon(QIconEngine*)">
<modify-argument index="1">
<no-null-pointer/>
<parent index="this" action="add"/>
</modify-argument>
</modify-function>
+ <!-- PYSIDE-1669: Replace implicit conversion by a better explicit version -->
+ <add-function signature="addPixmap(PyPathLike@path@)">
+ <inject-code file="../glue/qtgui.cpp" snippet="qicon-addpixmap"/>
+ </add-function>
</value-type>
<value-type name="QPixmap" >
- <add-function signature="QPixmap(const QImage&amp;)">
- <modify-argument index="1">
- <rename to="image"/>
- </modify-argument>
+ <add-function signature="QPixmap(const QImage&amp;@image@)">
<inject-code class="target" position="beginning" file="../glue/qtgui.cpp" snippet="qpixmap"/>
</add-function>
<modify-function signature="QPixmap(const char*const[])">
@@ -677,21 +610,25 @@
</modify-function>
</value-type>
- <value-type name="QConicalGradient" polymorphic-id-expression="%1-&gt;type() == QGradient::ConicalGradient"/>
+ <value-type name="QConicalGradient" polymorphic-id-expression="%B-&gt;type() == QGradient::ConicalGradient"/>
<value-type name="QFontInfo"/>
- <value-type name="QRadialGradient" polymorphic-id-expression="%1-&gt;type() == QGradient::RadialGradient"/>
+ <value-type name="QRadialGradient" polymorphic-id-expression="%B-&gt;type() == QGradient::RadialGradient"/>
<value-type name="QFont" >
<enum-type name="Capitalization"/>
<enum-type name="SpacingType"/>
- <enum-type name="Stretch"/>
+ <enum-type name="Stretch" python-type="IntEnum"/>
<enum-type name="Style"/>
<enum-type name="StyleHint"/>
- <enum-type name="StyleStrategy"/>
- <enum-type name="Weight"/>
+ <enum-type name="StyleStrategy" python-type="Flag"/>
+ <enum-type name="Weight" python-type="IntEnum"/>
<enum-type name="HintingPreference" since="4.8" revision="4800"/>
<extra-includes>
<include file-name="QStringList" location="global"/>
</extra-includes>
+ <value-type name="Tag" since="6.7"/>
+ <!-- PYSIDE-1685: QFont(QString) should be checked first, else it will be interpreted as sequence -->
+ <modify-function signature="QFont(const QString&amp;,int,int, bool)" overload-number="0"/>
+ <modify-function signature="QFont(const QStringList &amp;,int,int, bool)" overload-number="1"/>
<modify-function signature="setStyleHint(QFont::StyleHint,QFont::StyleStrategy)">
<modify-argument index="2">
<rename to="strategy"/>
@@ -744,7 +681,7 @@
</inject-code>
</modify-function>
- <modify-function signature="QImage(const QString&amp;, const char *)">
+ <modify-function signature="QImage(const QString&amp;, const char *)" allow-thread="yes">
<modify-argument index="1"><replace-type modified-type="PyPathLike"/></modify-argument>
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qfile-path-1"/>
</modify-function>
@@ -1067,18 +1004,18 @@
</modify-function>
</value-type>
- <namespace-type name="QColorConstants" since="5.14">
+ <namespace-type name="QColorConstants">
<extra-includes>
<include file-name="QColor" location="global"/>
</extra-includes>
- <namespace-type name="Svg" since="5.14">
+ <namespace-type name="Svg">
<extra-includes>
<include file-name="QColor" location="global"/>
</extra-includes>
</namespace-type>
</namespace-type>
- <value-type name="QColorSpace" since="5.14">
+ <value-type name="QColorSpace">
<enum-type name="NamedColorSpace"/>
<enum-type name="Primaries"/>
<enum-type name="TransferFunction"/>
@@ -1168,19 +1105,19 @@
<inject-code class="target" position="beginning" file="../glue/qtgui.cpp" snippet="qfontmetrics-size"/>
</modify-function>
</value-type>
- <value-type name="QGradient" polymorphic-id-expression="%1-&gt;type() == QGradient::NoGradient">
+ <value-type name="QGradient" polymorphic-id-expression="%B-&gt;type() == QGradient::NoGradient">
<enum-type name="CoordinateMode"/>
<enum-type name="InterpolationMode"/>
- <enum-type name="Preset" since="5.12"/>
+ <enum-type name="Preset"/>
<enum-type name="Spread"/>
<enum-type name="Type"/>
</value-type>
- <value-type name="QLinearGradient" polymorphic-id-expression="%1-&gt;type() == QGradient::LinearGradient"/>
+ <value-type name="QLinearGradient" polymorphic-id-expression="%B-&gt;type() == QGradient::LinearGradient"/>
<object-type name="QPaintDevice">
<enum-type name="PaintDeviceMetric"/>
</object-type>
<object-type name="QPagedPaintDevice">
- <enum-type name="PdfVersion" since="5.10"/>
+ <enum-type name="PdfVersion"/>
</object-type>
<object-type name="QAbstractTextDocumentLayout">
<value-type name="PaintContext" >
@@ -1321,9 +1258,6 @@
<define-ownership class="target" owner="target"/>
</modify-argument>
</modify-function>
-
- <!-- ??? -->
- <modify-function signature="operator&lt;(QStandardItem)const" remove="all"/>
</object-type>
<object-type name="QSyntaxHighlighter">
<modify-function signature="setCurrentBlockUserData(QTextBlockUserData*)">
@@ -1332,7 +1266,7 @@
</modify-argument>
</modify-function>
<modify-function signature="setDocument(QTextDocument*)">
- <modify-argument index="1">
+ <modify-argument index="1" pyi-type="Optional[PySide6.QtGui.QTextDocument]">
<parent index="this" action="add"/>
</modify-argument>
</modify-function>
@@ -1379,72 +1313,157 @@
</modify-function>
</object-type>
- <object-type name="QActionEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::ActionAdded || %1-&gt;type() == QEvent::ActionRemoved || %1-&gt;type() == QEvent::ActionChanged"/>
- <object-type name="QCloseEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::Close"/>
- <object-type name="QContextMenuEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::ContextMenu">
+ <object-type name="QActionEvent"
+ polymorphic-id-expression="%B-&gt;type() == QEvent::ActionAdded || %B-&gt;type() == QEvent::ActionRemoved || %B-&gt;type() == QEvent::ActionChanged"/>
+ <object-type name="QCloseEvent" polymorphic-id-expression="%B-&gt;type() == QEvent::Close"/>
+ <object-type name="QContextMenuEvent" polymorphic-id-expression="%B-&gt;type() == QEvent::ContextMenu">
<enum-type name="Reason"/>
</object-type>
- <value-type name="QEventPoint" since="6.0">
+ <value-type name="QEventPoint">
<enum-type name="State"/>
</value-type>
- <object-type name="QDragEnterEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::DragEnter"/>
- <object-type name="QDragLeaveEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::DragLeave"/>
- <object-type name="QDragMoveEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::DragMove"/>
- <object-type name="QDropEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::Drop">
+ <object-type name="QDragEnterEvent" polymorphic-id-expression="%B-&gt;type() == QEvent::DragEnter">
+ <add-function signature="__repr__" return-type="PyObject">
+ <inject-code class="target" position="beginning">
+ <insert-template name="repr_qdebug_gui"/>
+ </inject-code>
+ </add-function>
+ </object-type>
+ <object-type name="QDragLeaveEvent" polymorphic-id-expression="%B-&gt;type() == QEvent::DragLeave">
+ <add-function signature="__repr__" return-type="PyObject">
+ <inject-code class="target" position="beginning">
+ <insert-template name="repr_qdebug_gui"/>
+ </inject-code>
+ </add-function>
+ </object-type>
+ <object-type name="QDragMoveEvent" polymorphic-id-expression="%B-&gt;type() == QEvent::DragMove">
+ <add-function signature="__repr__" return-type="PyObject">
+ <inject-code class="target" position="beginning">
+ <insert-template name="repr_qdebug_gui"/>
+ </inject-code>
+ </add-function>
+ </object-type>
+ <object-type name="QDropEvent" polymorphic-id-expression="%B-&gt;type() == QEvent::Drop">
<modify-function signature="source()const">
<modify-argument index="return">
<define-ownership class="target" owner="default"/>
</modify-argument>
</modify-function>
+ <add-function signature="__repr__" return-type="PyObject">
+ <inject-code class="target" position="beginning">
+ <insert-template name="repr_qdebug_gui"/>
+ </inject-code>
+ </add-function>
</object-type>
- <object-type name="QEnterEvent" copyable="false" polymorphic-id-expression="%1-&gt;type() == QEvent::Enter"/>
- <object-type name="QExposeEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::Expose"/>
- <object-type name="QFileOpenEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::FileOpen"/>
- <object-type name="QFocusEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::FocusIn || %1-&gt;type() == QEvent::FocusOut"/>
- <object-type name="QHelpEvent" copyable="false" polymorphic-id-expression="%1-&gt;type() == QEvent::ToolTip || %1-&gt;type() == QEvent::WhatsThis"/>
- <object-type name="QHideEvent" copyable="false" polymorphic-id-expression="%1-&gt;type() == QEvent::Hide"/>
- <object-type name="QHoverEvent" copyable="false" polymorphic-id-expression="%1-&gt;type() == QEvent::HoverEnter || %1-&gt;type() == QEvent::HoverLeave || %1-&gt;type() == QEvent::HoverMove"/>
- <object-type name="QIconDragEvent" copyable="false" polymorphic-id-expression="%1-&gt;type() == QEvent::IconDrag"/>
-
- <object-type name="QInputMethodEvent" copyable="no" polymorphic-id-expression="%1-&gt;type() == QEvent::InputMethod">
+ <object-type name="QChildWindowEvent" since="6.7"
+ polymorphic-id-expression="%B-&gt;type() == QEvent::ChildWindowAdded || %B-&gt;type() == QEvent::ChildWindowRemoved"/>
+ <object-type name="QEnterEvent"
+ polymorphic-id-expression="%B-&gt;type() == QEvent::Enter"/>
+ <object-type name="QExposeEvent" polymorphic-id-expression="%B-&gt;type() == QEvent::Expose"/>
+ <object-type name="QFileOpenEvent" polymorphic-id-expression="%B-&gt;type() == QEvent::FileOpen"/>
+ <object-type name="QFocusEvent"
+ polymorphic-id-expression="%B-&gt;type() == QEvent::FocusIn || %B-&gt;type() == QEvent::FocusOut">
+ <add-function signature="__repr__" return-type="PyObject">
+ <inject-code class="target" position="beginning">
+ <insert-template name="repr_qdebug_gui"/>
+ </inject-code>
+ </add-function>
+ </object-type>
+ <object-type name="QHelpEvent"
+ polymorphic-id-expression="%B-&gt;type() == QEvent::ToolTip || %B-&gt;type() == QEvent::WhatsThis"/>
+ <object-type name="QHideEvent" polymorphic-id-expression="%B-&gt;type() == QEvent::Hide"/>
+ <object-type name="QHoverEvent"
+ polymorphic-id-expression="%B-&gt;type() == QEvent::HoverEnter || %B-&gt;type() == QEvent::HoverLeave || %B-&gt;type() == QEvent::HoverMove"/>
+ <object-type name="QIconDragEvent" polymorphic-id-expression="%B-&gt;type() == QEvent::IconDrag"/>
+
+ <object-type name="QInputMethodEvent"
+ polymorphic-id-expression="%B-&gt;type() == QEvent::InputMethod">
<!-- only declare this if ndef QT_NO_INPUTMETHOD -->
<enum-type name="AttributeType"/>
<value-type name="Attribute">
<include file-name="QInputMethodEvent" location="global"/>
</value-type>
+ <add-function signature="__repr__" return-type="PyObject">
+ <inject-code class="target" position="beginning">
+ <insert-template name="repr_qdebug_gui"/>
+ </inject-code>
+ </add-function>
<!-- endif ndef QT_NO_INPUTMETHOD -->
</object-type>
- <object-type name="QInputMethodQueryEvent" copyable="false" polymorphic-id-expression="%1-&gt;type() == QEvent::InputMethodQuery"/>
+ <object-type name="QInputMethodQueryEvent"
+ polymorphic-id-expression="%B-&gt;type() == QEvent::InputMethodQuery"/>
- <object-type name="QMoveEvent" copyable = "false" polymorphic-id-expression="%1-&gt;type() == QEvent::Move"/>
- <object-type name="QNativeGestureEvent" copyable="false" polymorphic-id-expression="%1-&gt;type() == QEvent::NativeGesture"/>
- <object-type name="QPlatformSurfaceEvent" copyable="false"
- polymorphic-id-expression="%1-&gt;type() == QEvent::PlatformSurface">
+ <object-type name="QMoveEvent" polymorphic-id-expression="%B-&gt;type() == QEvent::Move">
+ <add-function signature="__repr__" return-type="PyObject">
+ <inject-code class="target" position="beginning">
+ <insert-template name="repr_qdebug_gui"/>
+ </inject-code>
+ </add-function>
+ </object-type>
+ <object-type name="QNativeGestureEvent"
+ polymorphic-id-expression="%B-&gt;type() == QEvent::NativeGesture"/>
+ <object-type name="QPlatformSurfaceEvent"
+ polymorphic-id-expression="%B-&gt;type() == QEvent::PlatformSurface">
<enum-type name="SurfaceEventType"/>
</object-type>
- <object-type name="QResizeEvent" copyable = "false" polymorphic-id-expression="%1-&gt;type() == QEvent::Resize"/>
- <object-type name="QShortcutEvent" copyable = "false" polymorphic-id-expression="%1-&gt;type() == QEvent::Shortcut">
- </object-type>
- <object-type name="QShowEvent" copyable= "false" polymorphic-id-expression="%1-&gt;type() == QEvent::Show"/>
- <object-type name="QSinglePointEvent" copyable="false" since="6.0"/>
- <object-type name="QStatusTipEvent" copyable= "false" polymorphic-id-expression="%1-&gt;type() == QEvent::StatusTip"/>
- <object-type name="QTabletEvent" copyable= "false" polymorphic-id-expression="%1-&gt;type() == QEvent::TabletMove || %1-&gt;type() == QEvent::TabletPress || %1-&gt;type() == QEvent::TabletRelease"/>
- <object-type name="QToolBarChangeEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::ToolBarChange"/>
- <object-type name="QWhatsThisClickedEvent" copyable="false" polymorphic-id-expression="%1-&gt;type() == QEvent::WhatsThisClicked"/>
- <object-type name="QWheelEvent" copyable= "false" polymorphic-id-expression="%1-&gt;type() == QEvent::Wheel"/>
- <!-- Qt5.5: suppress this nameless enum -->
- <suppress-warning text="enum 'QWheelEvent::DefaultDeltasPerStep' does not have a type entry or is not an enum"/>
-
- <object-type name="QWindowStateChangeEvent" copyable="false" polymorphic-id-expression="%1-&gt;type() == QEvent::WindowStateChange"/>
- <object-type name="QInputEvent" copyable="false"/>
- <object-type name="QKeyEvent" copyable= "false" polymorphic-id-expression="%1-&gt;type() == QEvent::KeyPress || %1-&gt;type() == QEvent::KeyRelease || %1-&gt;type() == QEvent::ShortcutOverride">
+ <object-type name="QResizeEvent" polymorphic-id-expression="%B-&gt;type() == QEvent::Resize">
+ <add-function signature="__repr__" return-type="PyObject">
+ <inject-code class="target" position="beginning">
+ <insert-template name="repr_qdebug_gui"/>
+ </inject-code>
+ </add-function>
+ </object-type>
+ <object-type name="QShortcutEvent"
+ polymorphic-id-expression="%B-&gt;type() == QEvent::Shortcut">
+ </object-type>
+ <object-type name="QShowEvent"
+ polymorphic-id-expression="%B-&gt;type() == QEvent::Show"/>
+ <object-type name="QSinglePointEvent"/>
+ <object-type name="QStatusTipEvent"
+ polymorphic-id-expression="%B-&gt;type() == QEvent::StatusTip"/>
+ <object-type name="QTabletEvent"
+ polymorphic-id-expression="%B-&gt;type() == QEvent::TabletMove || %B-&gt;type() == QEvent::TabletPress || %B-&gt;type() == QEvent::TabletRelease">
+ <add-function signature="__repr__" return-type="PyObject">
+ <inject-code class="target" position="beginning">
+ <insert-template name="repr_qdebug_gui"/>
+ </inject-code>
+ </add-function>
+ </object-type>
+ <object-type name="QToolBarChangeEvent"
+ polymorphic-id-expression="%B-&gt;type() == QEvent::ToolBarChange"/>
+ <object-type name="QWhatsThisClickedEvent"
+ polymorphic-id-expression="%B-&gt;type() == QEvent::WhatsThisClicked"/>
+ <object-type name="QWheelEvent" polymorphic-id-expression="%B-&gt;type() == QEvent::Wheel">
+ <add-function signature="__repr__" return-type="PyObject">
+ <inject-code class="target" position="beginning">
+ <insert-template name="repr_qdebug_gui"/>
+ </inject-code>
+ </add-function>
+ </object-type>
+
+ <object-type name="QWindowStateChangeEvent"
+ polymorphic-id-expression="%B-&gt;type() == QEvent::WindowStateChange">
+ <add-function signature="__repr__" return-type="PyObject">
+ <inject-code class="target" position="beginning">
+ <insert-template name="repr_qdebug_gui"/>
+ </inject-code>
+ </add-function>
+ </object-type>
+ <object-type name="QInputEvent"/>
+ <object-type name="QKeyEvent"
+ polymorphic-id-expression="%B-&gt;type() == QEvent::KeyPress || %B-&gt;type() == QEvent::KeyRelease || %B-&gt;type() == QEvent::ShortcutOverride">
<add-function signature="operator!=(QKeySequence::StandardKey)">
<inject-code class="target" file="../glue/qtgui.cpp" snippet="qkeyevent-operatornotequal"/>
</add-function>
+ <add-function signature="__repr__" return-type="PyObject">
+ <inject-code class="target" position="beginning">
+ <insert-template name="repr_qdebug_gui"/>
+ </inject-code>
+ </add-function>
</object-type>
- <object-type name="QMouseEvent" copyable= "false"
- polymorphic-id-expression="%1-&gt;type() == QEvent::MouseButtonDblClick || %1-&gt;type() == QEvent::MouseButtonPress || %1-&gt;type() == QEvent::MouseButtonRelease || %1-&gt;type() == QEvent::MouseMove">
+ <object-type name="QMouseEvent"
+ polymorphic-id-expression="%B-&gt;type() == QEvent::MouseButtonDblClick || %B-&gt;type() == QEvent::MouseButtonPress || %B-&gt;type() == QEvent::MouseButtonRelease || %B-&gt;type() == QEvent::MouseMove">
<modify-function signature="globalPos() const" deprecated="yes"/>
<modify-function signature="localPos() const" deprecated="yes"/>
<modify-function signature="pos() const" deprecated="yes"/>
@@ -1454,13 +1473,25 @@
<modify-function signature="y() const" deprecated="yes"/>
<modify-function signature="globalX() const" deprecated="yes"/>
<modify-function signature="globalY() const" deprecated="yes"/>
+ <add-function signature="__repr__" return-type="PyObject">
+ <inject-code class="target" position="beginning">
+ <insert-template name="repr_qdebug_gui"/>
+ </inject-code>
+ </add-function>
</object-type>
- <object-type name="QPaintEvent" copyable= "false" polymorphic-id-expression="%1-&gt;type() == QEvent::Paint"/>
- <object-type name="QScrollEvent" copyable="false" polymorphic-id-expression="%1-&gt;type() == QEvent::Scroll">
+ <object-type name="QPaintEvent" polymorphic-id-expression="%B-&gt;type() == QEvent::Paint"/>
+ <object-type name="QScrollEvent" polymorphic-id-expression="%B-&gt;type() == QEvent::Scroll">
<enum-type name="ScrollState"/>
</object-type>
- <object-type name="QPointerEvent" copyable= "false" since="6.0"/>
- <object-type name="QScrollPrepareEvent" copyable="false" polymorphic-id-expression="%1-&gt;type() == QEvent::ScrollPrepare"/>
+ <object-type name="QPointerEvent" copyable= "false">
+ <add-function signature="__repr__" return-type="PyObject">
+ <inject-code class="target" position="beginning">
+ <insert-template name="repr_qdebug_gui"/>
+ </inject-code>
+ </add-function>
+ </object-type>
+ <object-type name="QScrollPrepareEvent"
+ polymorphic-id-expression="%B-&gt;type() == QEvent::ScrollPrepare"/>
<object-type name="QTextFrame" >
<extra-includes>
@@ -1494,7 +1525,7 @@
<include file-name="QRect" location="global"/>
</extra-includes>
<enum-type name="ImageOption"/>
- <enum-type name="Transformation" flags="Transformations" since="5.5"/>
+ <enum-type name="Transformation" flags="Transformations"/>
<modify-function signature="setDevice(QIODevice*)">
<modify-argument index="1">
<parent index="this" action="add"/>
@@ -1574,7 +1605,7 @@
</add-function>
</object-type>
- <object-type name="QStandardItemModel" polymorphic-id-expression="qobject_cast&lt;QStandardItemModel*&gt;(%1)">
+ <object-type name="QStandardItemModel" polymorphic-id-expression="qobject_cast&lt;QStandardItemModel*&gt;(%B)">
<extra-includes>
<include file-name="QStringList" location="global"/>
<include file-name="QSize" location="global"/>
@@ -1718,6 +1749,18 @@
<include file-name="QPixmap" location="global"/>
</extra-includes>
<enum-type name="Mode"/>
+ <modify-function signature="setPixmap(const QPixmap&amp;, QClipboard::Mode)">
+ <modify-argument index="1" pyi-type="PySide6.QtGui.QPixmap"/>
+ </modify-function>
+ <add-function signature="setPixmap(PyPathLike@path@)">
+ <inject-code file="../glue/qtgui.cpp" snippet="qclipboard-setpixmap"/>
+ </add-function>
+ <modify-function signature="setImage(const QImage&amp;, QClipboard::Mode)">
+ <modify-argument index="1" pyi-type="PySide6.QtGui.QImage"/>
+ </modify-function>
+ <add-function signature="setImage(PyPathLike@path@)">
+ <inject-code file="../glue/qtgui.cpp" snippet="qclipboard-setimage"/>
+ </add-function>
<modify-function signature="setMimeData(QMimeData*,QClipboard::Mode)" allow-thread="yes">
<modify-argument index="1">
<!-- TODO: maybe this is not the best solution -->
@@ -1725,10 +1768,7 @@
</modify-argument>
</modify-function>
<modify-function signature="text(QString&amp;,QClipboard::Mode)const">
- <modify-argument index="2">
- <replace-default-expression with="QClipboard::Clipboard"/>
- </modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[str, PySide6.QtGui.QClipboard.Mode]">
<replace-type modified-type="(retval, subtype)"/>
</modify-argument>
<inject-code class="target" position="end" file="../glue/qtgui.cpp" snippet="qclipboard-text"/>
@@ -1749,6 +1789,7 @@
<include file-name="QTextOption" location="global"/>
</extra-includes>
<enum-type name="CursorMode"/>
+ <enum-type name="GlyphRunRetrievalFlag" flags="GlyphRunRetrievalFlags" since="6.5"/>
<value-type name="FormatRange">
<include file-name="QTextLayout" location="global"/>
</value-type>
@@ -1760,9 +1801,9 @@
<include file-name="QTextCursor" location="global"/>
</extra-includes>
<enum-type name="FindFlag" flags="FindFlags"/>
- <enum-type name="MarkdownFeature" flags="MarkdownFeatures" since="5.14"/>
+ <enum-type name="MarkdownFeature" flags="MarkdownFeatures"/>
<enum-type name="MetaInformation"/>
- <enum-type name="ResourceType"/>
+ <enum-type name="ResourceType" python-type="IntEnum"/>
<enum-type name="Stacks" since="4.7"/>
<modify-function signature="setDocumentLayout(QAbstractTextDocumentLayout*)">
<modify-argument index="1">
@@ -1785,7 +1826,7 @@
<define-ownership class="target" owner="target"/>
</modify-argument>
</modify-function>
- <modify-function signature="print(QPagedPaintDevice*)const" rename="print_"/>
+ <modify-function signature="print(QPagedPaintDevice*)const" allow-thread="yes" rename="print_"/>
</object-type>
<object-type name="QTextDocumentWriter" since="4.5"/>
<object-type name="QTextTable">
@@ -1813,6 +1854,7 @@
<!-- ### "setPaintDevice(QPaintDevice*)" is an internal method. -->
<modify-function signature="setPaintDevice(QPaintDevice*)" remove="all"/>
</object-type>
+
<object-type name="QPainter">
<extra-includes>
<include file-name="QPainterPath" location="global"/>
@@ -1844,11 +1886,9 @@
</add-function>
<!-- ### Overloads using QList<T> does the job of these methods -->
<modify-function signature="drawLines(const QLine*,int)" remove="all"/>
- <modify-function signature="drawLines(const QLineF*,int)" remove="all"/>
<modify-function signature="drawLines(const QPoint*,int)" remove="all"/>
<modify-function signature="drawLines(const QPointF*,int)" remove="all"/>
<modify-function signature="drawRects(const QRect*,int)" remove="all"/>
- <modify-function signature="drawRects(const QRectF*,int)" remove="all"/>
<!-- ### -->
<!-- PYSIDE-1540: Preferably use the QPolygon overloads first to avoid
a costly sequence type check on QPolygon. -->
@@ -1858,7 +1898,6 @@
<insert-template name="qpainter_drawlist"/>
</inject-code>
</add-function>
- <modify-function signature="drawPoints(const QPointF*,int)" remove="all"/>
<add-function signature="drawPoints(QList&lt;QPointF>)" overload-number="3">
<inject-code>
<insert-template name="qpainter_drawlist"/>
@@ -1927,6 +1966,9 @@
<inject-code class="target" position="beginning">
<insert-template name="fix_args,QRectF*"/>
</inject-code>
+ <inject-documentation format="target" mode="prepend">
+ The function returns the bounding rectangle enclosing the whole text.
+ </inject-documentation>
</modify-function>
<modify-function signature="drawText(QRect,int,QString,QRect*)">
<modify-argument index="4">
@@ -1939,6 +1981,9 @@
<inject-code class="target" position="beginning">
<insert-template name="fix_args,QRect*"/>
</inject-code>
+ <inject-documentation format="target" mode="prepend">
+ The function returns the bounding rectangle enclosing the whole text.
+ </inject-documentation>
</modify-function>
<modify-function signature="drawText(int,int,int,int,int,QString,QRect*)">
<modify-argument index="7">
@@ -1948,7 +1993,16 @@
<inject-code class="target" position="beginning">
<insert-template name="fix_args,QRect*"/>
</inject-code>
+ <inject-documentation format="target" mode="prepend">
+ The function returns the bounding rectangle enclosing the whole text.
+ </inject-documentation>
</modify-function>
+ <add-function signature="__enter__()" return-type="QPainter">
+ <inject-code file="../glue/qtgui.cpp" snippet="qpainter-enter"/>
+ </add-function>
+ <add-function signature="__exit__(PyObject*,PyObject*,PyObject*)">
+ <inject-code file="../glue/qtgui.cpp" snippet="qpainter-exit"/>
+ </add-function>
</object-type>
<value-type name="QGenericMatrix" generate="no"/>
@@ -2249,7 +2303,7 @@
</value-type>
<value-type name="QMatrix4x4" since="4.6">
- <enum-type name="Flag" flags="Flags" since="6.0"/>
+ <enum-type name="Flag" flags="Flags"/>
<!-- Qt5: HAIRY TRICK ALERT ahead!
Qt5 partially replaced 'qreal' by float.
@@ -2312,7 +2366,7 @@
<remove-argument/>
</modify-argument>
<modify-argument index="return">
- <replace-type modified-type="PyTupleObject*"/>
+ <replace-type modified-type="Tuple"/>
</modify-argument>
<inject-code class="target" position="beginning" file="../glue/qtgui.cpp" snippet="qmatrix4x4-copydatato"/>
</modify-function>
@@ -2321,7 +2375,7 @@
<modify-argument index="1">
<remove-argument/>
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[PySide6.QtGui.QMatrix4x4, bool]">
<replace-type modified-type="PyTuple"/>
</modify-argument>
<inject-code class="target" position="beginning">
@@ -2361,13 +2415,36 @@
</inject-code>
</add-function>
- <!-- Qt5.5: XXX support the output variables! For now, I just suppressed the new methods. -->
- <modify-function signature="getAxisAndAngle(float*,float*,float*,float*)const" since="5.5" remove="all"/>
- <modify-function signature="getAxisAndAngle(QVector3D*,float*)const" since="5.5" remove="all"/>
- <modify-function signature="getEulerAngles(float*,float*,float*)const" since="5.5" remove="all"/>
+ <!-- There can be only one return type. -->
+ <modify-function signature="getAxisAndAngle(float*,float*,float*,float*)const" remove="all"/>
+ <modify-function signature="getAxisAndAngle(QVector3D*,float*)const">
+ <modify-argument index="return" pyi-type="Tuple[PySide6.QtGui.QVector3D, float]">
+ <replace-type modified-type="(QVector3D, float)"/>
+ </modify-argument>
+ <modify-argument index="1"><remove-argument/></modify-argument>
+ <modify-argument index="2"><remove-argument/></modify-argument>
+ <inject-code class="target" position="beginning"
+ file="../glue/qtgui.cpp" snippet="qquaternion-getaxisandangle-vector3d-float"/>
+ </modify-function>
+ <modify-function signature="getEulerAngles(float*,float*,float*)const">
+ <modify-argument index="return" pyi-type="Tuple[float, float, float]">
+ <replace-type modified-type="(float, float, float)"/>
+ </modify-argument>
+ <modify-argument index="1"><remove-argument/></modify-argument>
+ <modify-argument index="2"><remove-argument/></modify-argument>
+ <modify-argument index="3"><remove-argument/></modify-argument>
+ <inject-code class="target" position="beginning"
+ file="../glue/qtgui.cpp" snippet="qquaternion-geteulerangles"/>
+ </modify-function>
</value-type>
- <object-type name="QTouchEvent" since="4.6"/>
+ <object-type name="QTouchEvent" since="4.6">
+ <add-function signature="__repr__" return-type="PyObject">
+ <inject-code class="target" position="beginning">
+ <insert-template name="repr_qdebug_gui"/>
+ </inject-code>
+ </add-function>
+ </object-type>
<object-type name="QInputDevice">
<enum-type name="Capability" flags="Capabilities"/>
@@ -2467,18 +2544,6 @@
</add-function>
</value-type>
- <suppress-warning text="template baseclass 'QListSpecialMethods&lt;T&gt;' of 'QList' is not known"/>
- <suppress-warning text="template baseclass 'QGenericMatrix&lt;float&gt;' of '*' is not known"/>
-
- <!-- Qt5: note: the unnamed enum cannot be rejected by
- <rejection class="QMatrix4x4" enum-name="enum_1"/>
- Instead, we have to suppress the warning. Why that?
-
- Compare also the note at the beginning of typesystem_widgets_common.xml .
- This seems to be a related problem with unnamed structures in shiboken.
- -->
- <suppress-warning text="enum 'QMatrix4x4::enum_1' is specified in typesystem, but not declared"/>
-
<object-type name="QSessionManager">
<extra-includes>
</extra-includes>
@@ -2486,9 +2551,6 @@
<!-- ### -->
</object-type>
- <!-- This enum is present on QtCore -->
- <suppress-warning text="enum 'QCoreApplication::ApplicationFlags' is specified in typesystem, but not declared"/>
-
<!-- Qt5: here the new QWindow stuff and what it pulls in -->
<object-type name="QBackingStore"/>
<object-type name="QSurface">
@@ -2497,13 +2559,13 @@
</object-type>
<rejection class="QSurface" field-name="m_reserved"/>
<value-type name="QSurfaceFormat">
- <enum-type name="ColorSpace" since="5.10"/>
+ <enum-type name="ColorSpace"/>
<enum-type name="FormatOption" flags="FormatOptions"/>
<enum-type name="OpenGLContextProfile"/>
<enum-type name="RenderableType"/>
<enum-type name="SwapBehavior"/>
</value-type>
- <object-type name="QOffscreenSurface" since="5.1"/>
+ <object-type name="QOffscreenSurface"/>
<primitive-type name="QPlatformSurface">
<extra-includes>
<include file-name="QtGui/qpa/qplatformsurface.h" location="global"/>
@@ -2553,6 +2615,10 @@
<include file-name="QPalette" location="global"/>
<include file-name="QIcon" location="global"/>
<include file-name="QLocale" location="global"/>
+ <include file-name="pysideqapp.h" location="global"/>
+ <include file-name="pysidecleanup.h" location="global"/>
+ <!-- QOverrideCursorGuard -->
+ <include file-name="qtguihelper.h" location="local"/>
</extra-includes>
<modify-function signature="QGuiApplication(int&amp;,char**,int)" access="private"/>
<add-function signature="QGuiApplication(QStringList)">
@@ -2566,17 +2632,62 @@
<add-function signature="exec_()" return-type="int">
<inject-code file="../glue/qtgui.cpp" snippet="qguiapplication-exec"/>
</add-function>
-
+ <add-function signature="nativeInterface()const" return-type="PyObject">
+ <modify-argument index="return"> <!-- Suppress return value heuristics -->
+ <define-ownership class="target" owner="default"/>
+ </modify-argument>
+ <inject-code class="target" position="beginning" file="../glue/qtgui.cpp"
+ snippet="qguiapplication-nativeInterface"/>
+ </add-function>
+ <modify-function signature="setOverrideCursor(const QCursor&amp;)">
+ <modify-argument index="return" pyi-type="PyObject">
+ <replace-type modified-type="QtGuiHelper::QOverrideCursorGuard*"/>
+ </modify-argument>
+ <inject-code class="target" position="end" file="../glue/qtgui.cpp"
+ snippet="qguiapplication-setoverridecursor"/>
+ </modify-function>
</object-type>
+ <namespace-type name="QNativeInterface" private="yes" since="6.7">
+ <object-type name="QX11Application" private="yes" disable-wrapper="yes"
+ force-abstract="yes">
+ <configuration condition="QT_CONFIG(xcb)"/>
+ <modify-function signature="display()const">
+ <modify-argument index="return">
+ <replace-type modified-type="int"/>
+ </modify-argument>
+ <inject-code class="target" position="end" file="../glue/qtgui.cpp"
+ snippet="qx11application-resource-ptr"/>
+ </modify-function>
+ <modify-function signature="connection()const">
+ <modify-argument index="return">
+ <replace-type modified-type="int"/>
+ </modify-argument>
+ <inject-code class="target" position="end" file="../glue/qtgui.cpp"
+ snippet="qx11application-resource-ptr"/>
+ </modify-function>
+ </object-type>
+ <object-type name="QWindowsScreen" private="yes" disable-wrapper="yes"
+ force-abstract="yes">
+ <configuration condition="#ifdef Q_OS_WIN"/>
+ </object-type>
+ </namespace-type>
+
<object-type name="QOpenGLContext">
<enum-type name="OpenGLModuleType"/>
</object-type>
- <object-type name="QOpenGLContextGroup" since="5.0"/>
+ <object-type name="QOpenGLContextGroup"/>
<!-- Compile error on Windows: QOpenGLPaintDevice::QOpenGLPaintDevice(const QOpenGLPaintDevice &)': attempting to reference a deleted function
- <object-type name="QOpenGLPaintDevice" since="5.0"/>
+ <object-type name="QOpenGLPaintDevice"/>
-->
- <object-type name="QOpenGLExtraFunctions" since="5.6">
+ <object-type name="QOpenGLExtraFunctions">
+ <extra-includes>
+ <include file-name="QtCore/QVarLengthArray" location="global"/>
+ <include file-name="sbkcpptonumpy.h" location="global"/>
+ </extra-includes>
+ <inject-code class="native" position="beginning" file="../glue/qtgui.cpp"
+ snippet="qopenglextrafunctions-glgeti-v-return-size"/>
+
<!-- Exlusions due to compile errors -->
<modify-function signature="glEndTransformFeedback()" remove="all"/>
<modify-function signature="glPauseTransformFeedback()" remove="all"/>
@@ -2584,184 +2695,201 @@
<modify-function signature="^glClearBuffer.*\(.*\*.*$">
<modify-argument index="3"><array/></modify-argument>
</modify-function>
- <modify-function signature="glDebugMessageControl(&GLuint;,&GLuint;,&GLuint;,&GLint;,const &GLuint;*,&GLbyte;)">
+ <modify-function signature="glDebugMessageControl(GLenum,GLenum,GLenum,GLsizei,const GLuint*,GLboolean)">
<modify-argument index="5"><array/></modify-argument>
</modify-function>
- <modify-function signature="glDeleteProgramPipelines(&GLint;,const &GLuint;*)">
+ <modify-function signature="glDeleteProgramPipelines(GLsizei,const GLuint*)">
<modify-argument index="2"><array/></modify-argument>
</modify-function>
- <modify-function signature="glDeleteQueries(&GLint;,const &GLuint;*)">
+ <modify-function signature="glDeleteQueries(GLsizei,const GLuint*)">
<modify-argument index="2"><array/></modify-argument>
</modify-function>
- <modify-function signature="glDeleteSamplers(&GLint;,const &GLuint;*)">
+ <modify-function signature="glDeleteSamplers(GLsizei,const GLuint*)">
<modify-argument index="2"><array/></modify-argument>
</modify-function>
- <modify-function signature="glDeleteTransformFeedbacks(&GLint;,const &GLuint;*)">
+ <modify-function signature="glDeleteTransformFeedbacks(GLsizei,const GLuint*)">
<modify-argument index="2"><array/></modify-argument>
</modify-function>
- <modify-function signature="glDeleteVertexArrays(&GLint;,const &GLuint;*)">
+ <modify-function signature="glDeleteVertexArrays(GLsizei,const GLuint*)">
<modify-argument index="2"><array/></modify-argument>
</modify-function>
- <modify-function signature="glDrawBuffers(&GLint;,const &GLuint;*)">
+ <modify-function signature="glDrawBuffers(GLsizei,const GLenum*)">
<modify-argument index="2"><array/></modify-argument>
</modify-function>
- <modify-function signature="glGenProgramPipelines(&GLint;,&GLuint;*)">
+ <modify-function signature="glGenProgramPipelines(GLsizei,GLuint*)">
<modify-argument index="2"><array/></modify-argument>
</modify-function>
- <modify-function signature="glGenQueries(&GLint;,&GLuint;*)">
+ <modify-function signature="glGenQueries(GLsizei,GLuint*)">
<modify-argument index="2"><array/></modify-argument>
</modify-function>
- <modify-function signature="glGenSamplers(&GLint;,&GLuint;*)">
+ <modify-function signature="glGenSamplers(GLsizei,GLuint*)">
<modify-argument index="2"><array/></modify-argument>
</modify-function>
- <modify-function signature="glGenTransformFeedbacks(&GLint;,&GLuint;*)">
+ <modify-function signature="glGenTransformFeedbacks(GLsizei,GLuint*)">
<modify-argument index="2"><array/></modify-argument>
</modify-function>
- <modify-function signature="glGenVertexArrays(&GLint;,&GLuint;*)">
+ <modify-function signature="glGenVertexArrays(GLsizei,GLuint*)">
<modify-argument index="2"><array/></modify-argument>
</modify-function>
- <modify-function signature="glGetActiveUniformBlockiv(&GLuint;,&GLuint;,&GLuint;,&GLint;*)">
+ <modify-function signature="glGetActiveUniformBlockiv(GLuint,GLuint,GLenum,GLint*)">
<modify-argument index="4"><array/></modify-argument>
</modify-function>
- <modify-function signature="glGetActiveUniformsiv(&GLuint;,&GLint;,const &GLuint;*,&GLuint;,&GLint;*)">
+ <modify-function signature="glGetActiveUniformsiv(GLuint,GLsizei,const GLuint*,GLenum,GLint*)">
<modify-argument index="3"><array/></modify-argument>
<modify-argument index="5"><array/></modify-argument>
</modify-function>
- <modify-function signature="glGetFramebufferParameteriv(&GLuint;,&GLuint;,&GLint;*)">
+ <modify-function signature="glGetFramebufferParameteriv(GLenum,GLenum,GLint*)">
<modify-argument index="3"><array/></modify-argument>
</modify-function>
- <modify-function signature="glGetIntegeri_v(&GLuint;,&GLuint;,&GLint;*)">
+ <modify-function signature="glGetBooleani_v(GLenum,GLuint,GLboolean*)">
+ <modify-argument index="return" pyi-type="Union[bool,numpy.ndarray]">
+ <replace-type modified-type="PyObject"/>
+ </modify-argument>
+ <modify-argument index="3">
+ <remove-argument/>
+ </modify-argument>
+ <inject-code class="target" position="beginning" file="../glue/qtgui.cpp"
+ snippet="qopenglextrafunctions-glgetbooleani-v"/>
+ </modify-function>
+ <!-- FIXME PYSIDE 7: Use the remove array modification and use
+ the version with return value instead -->
+ <modify-function signature="glGetIntegeri_v(GLenum,GLuint,GLint*)">
<modify-argument index="3"><array/></modify-argument>
</modify-function>
- <modify-function signature="glGetInternalformativ(&GLuint;,&GLuint;,&GLuint;,&GLint;,&GLint;*)">
+ <add-function signature="glGetIntegeri_v(GLuint,GLuint)" return-type="PyObject">
+ <modify-argument index="return" pyi-type="Union[int,numpy.ndarray]"/>
+ <inject-code class="target" position="beginning" file="../glue/qtgui.cpp"
+ snippet="qopenglextrafunctions-glgetintegeri-v"/>
+ </add-function>
+ <modify-function signature="glGetInternalformativ(GLenum,GLenum,GLenum,GLsizei,GLint*)">
<modify-argument index="5"><array/></modify-argument>
</modify-function>
- <modify-function signature="glGetMultisamplefv(&GLuint;,&GLuint;,float*)">
+ <modify-function signature="glGetMultisamplefv(GLenum,GLuint,GLfloat*)">
<modify-argument index="3"><array/></modify-argument>
</modify-function>
- <modify-function signature="glGetProgramInterfaceiv(&GLuint;,&GLuint;,&GLuint;,&GLint;*)">
+ <modify-function signature="glGetProgramInterfaceiv(GLuint,GLenum,GLenum,GLint*)">
<modify-argument index="4"><array/></modify-argument>
</modify-function>
- <modify-function signature="glGetProgramPipelineiv(&GLuint;,&GLuint;,&GLint;*)">
+ <modify-function signature="glGetProgramPipelineiv(GLuint,GLenum,GLint*)">
<modify-argument index="3"><array/></modify-argument>
</modify-function>
- <modify-function signature="glGetProgramResourceiv(&GLuint;,&GLuint;,&GLuint;,&GLint;,const &GLuint;*,&GLint;,&GLint;*,&GLint;*)">
+ <modify-function signature="glGetProgramResourceiv(GLuint,GLenum,GLuint,GLsizei,const GLenum*,GLsizei,GLsizei*,GLint*)">
<modify-argument index="5"><array/></modify-argument>
<modify-argument index="7"><array/></modify-argument>
<modify-argument index="8"><array/></modify-argument>
</modify-function>
- <modify-function signature="glGetQueryObjectuiv(&GLuint;,&GLuint;,&GLuint;*)">
+ <modify-function signature="glGetQueryObjectuiv(GLuint,GLenum,GLuint*)">
<modify-argument index="3"><array/></modify-argument>
</modify-function>
- <modify-function signature="glGetQueryiv(&GLuint;,&GLuint;,&GLint;*)">
+ <modify-function signature="glGetQueryiv(GLenum,GLenum,GLint*)">
<modify-argument index="3"><array/></modify-argument>
</modify-function>
- <modify-function signature="glGetSamplerParameterfv(&GLuint;,&GLuint;,float*)">
+ <modify-function signature="glGetSamplerParameterfv(GLuint,GLenum,GLfloat*)">
<modify-argument index="3"><array/></modify-argument>
</modify-function>
- <modify-function signature="glGetSamplerParameteriv(&GLuint;,&GLuint;,&GLint;*)">
+ <modify-function signature="glGetSamplerParameteriv(GLuint,GLenum,GLint*)">
<modify-argument index="3"><array/></modify-argument>
</modify-function>
- <modify-function signature="glGetSamplerParameterIiv(&GLuint;,&GLuint;,&GLint;*)">
+ <modify-function signature="glGetSamplerParameterIiv(GLuint,GLenum,GLint*)">
<modify-argument index="3"><array/></modify-argument>
</modify-function>
- <modify-function signature="glGetSamplerParameterIuiv(&GLuint;,&GLuint;,&GLuint;*)">
+ <modify-function signature="glGetSamplerParameterIuiv(GLuint,GLenum,GLuint*)">
<modify-argument index="3"><array/></modify-argument>
</modify-function>
- <modify-function signature="glGetTexLevelParameteriv(&GLuint;,&GLint;,&GLuint;,&GLint;*)">
+ <modify-function signature="glGetTexLevelParameteriv(GLenum,GLint,GLenum,GLint*)">
<modify-argument index="4"><array/></modify-argument>
</modify-function>
- <modify-function signature="glGetTexLevelParameterfv(&GLuint;,&GLint;,&GLuint;,float*)">
+ <modify-function signature="glGetTexLevelParameterfv(GLenum,GLint,GLenum,GLfloat*)">
<modify-argument index="4"><array/></modify-argument>
</modify-function>
- <modify-function signature="glGetTexParameterIiv(&GLuint;,&GLuint;,&GLint;*)">
+ <modify-function signature="glGetTexParameterIiv(GLenum,GLenum,GLint*)">
<modify-argument index="3"><array/></modify-argument>
</modify-function>
- <modify-function signature="glGetTexParameterIuiv(&GLuint;,&GLuint;,&GLuint;*)">
+ <modify-function signature="glGetTexParameterIuiv(GLenum,GLenum,GLuint*)">
<modify-argument index="3"><array/></modify-argument>
</modify-function>
- <modify-function signature="glGetnUniformiv(&GLuint;,&GLint;,&GLint;,&GLint;*)">
+ <modify-function signature="glGetnUniformiv(GLuint,GLint,GLsizei,GLint*)">
<modify-argument index="4"><array/></modify-argument>
</modify-function>
- <modify-function signature="glGetnUniformuiv(&GLuint;,&GLint;,&GLint;,&GLuint;*)">
+ <modify-function signature="glGetnUniformuiv(GLuint,GLint,GLsizei,GLuint*)">
<modify-argument index="4"><array/></modify-argument>
</modify-function>
- <modify-function signature="glGetUniformuiv(&GLuint;,&GLint;,&GLuint;*)">
+ <modify-function signature="glGetUniformuiv(GLuint,GLint,GLuint*)">
<modify-argument index="3"><array/></modify-argument>
</modify-function>
- <modify-function signature="glGetVertexAttribIiv(&GLuint;,&GLuint;,&GLint;*)">
+ <modify-function signature="glGetVertexAttribIiv(GLuint,GLenum,GLint*)">
<modify-argument index="3"><array/></modify-argument>
</modify-function>
- <modify-function signature="glGetVertexAttribIuiv(&GLuint;,&GLuint;,&GLuint;*)">
+ <modify-function signature="glGetVertexAttribIuiv(GLuint,GLenum,GLuint*)">
<modify-argument index="3"><array/></modify-argument>
</modify-function>
- <modify-function signature="glInvalidateFramebuffer(&GLuint;,&GLint;,const &GLuint;*)">
+ <modify-function signature="glInvalidateFramebuffer(GLenum,GLsizei,const GLenum*)">
<modify-argument index="3"><array/></modify-argument>
</modify-function>
- <modify-function signature="glInvalidateSubFramebuffer(&GLuint;,&GLint;,const &GLuint;*,&GLint;,&GLint;,&GLint;,&GLint;)">
+ <modify-function signature="glInvalidateSubFramebuffer(GLenum,GLsizei,const GLenum*,GLint,GLint,GLsizei,GLsizei)">
<modify-argument index="3"><array/></modify-argument>
</modify-function>
- <modify-function signature="glProgramUniform1fv(&GLuint;,&GLint;,&GLint;,const float*)">
+ <modify-function signature="glProgramUniform1fv(GLuint,GLint,GLsizei,const GLfloat*)">
<modify-argument index="4"><array/></modify-argument>
</modify-function>
- <modify-function signature="glProgramUniform1iv(&GLuint;,&GLint;,&GLint;,const &GLint;*)">
+ <modify-function signature="glProgramUniform1iv(GLuint,GLint,GLsizei,const GLint*)">
<modify-argument index="4"><array/></modify-argument>
</modify-function>
- <modify-function signature="glProgramUniform1uiv(&GLuint;,&GLint;,&GLint;,const &GLuint;*)">
+ <modify-function signature="glProgramUniform1uiv(GLuint,GLint,GLsizei,const GLuint*)">
<modify-argument index="4"><array/></modify-argument>
</modify-function>
- <modify-function signature="glProgramUniform2fv(&GLuint;,&GLint;,&GLint;,const float*)">
+ <modify-function signature="glProgramUniform2fv(GLuint,GLint,GLsizei,const GLfloat*)">
<modify-argument index="4"><array/></modify-argument>
</modify-function>
- <modify-function signature="glProgramUniform2iv(&GLuint;,&GLint;,&GLint;,const &GLint;*)">
+ <modify-function signature="glProgramUniform2iv(GLuint,GLint,GLsizei,const GLint*)">
<modify-argument index="4"><array/></modify-argument>
</modify-function>
- <modify-function signature="glProgramUniform2uiv(&GLuint;,&GLint;,&GLint;,const &GLuint;*)">
+ <modify-function signature="glProgramUniform2uiv(GLuint,GLint,GLsizei,const GLuint*)">
<modify-argument index="4"><array/></modify-argument>
</modify-function>
- <modify-function signature="glProgramUniform3fv(&GLuint;,&GLint;,&GLint;,const float*)">
+ <modify-function signature="glProgramUniform3fv(GLuint,GLint,GLsizei,const GLfloat*)">
<modify-argument index="4"><array/></modify-argument>
</modify-function>
- <modify-function signature="glProgramUniform3iv(&GLuint;,&GLint;,&GLint;,const &GLint;*)">
+ <modify-function signature="glProgramUniform3iv(GLuint,GLint,GLsizei,const GLint*)">
<modify-argument index="4"><array/></modify-argument>
</modify-function>
- <modify-function signature="glProgramUniform3uiv(&GLuint;,&GLint;,&GLint;,const &GLuint;*)">
+ <modify-function signature="glProgramUniform3uiv(GLuint,GLint,GLsizei,const GLuint*)">
<modify-argument index="4"><array/></modify-argument>
</modify-function>
- <modify-function signature="glProgramUniform4fv(&GLuint;,&GLint;,&GLint;,const float*)">
+ <modify-function signature="glProgramUniform4fv(GLuint,GLint,GLsizei,const GLfloat*)">
<modify-argument index="4"><array/></modify-argument>
</modify-function>
- <modify-function signature="glProgramUniform4iv(&GLuint;,&GLint;,&GLint;,const &GLint;*)">
+ <modify-function signature="glProgramUniform4iv(GLuint,GLint,GLsizei,const GLint*)">
<modify-argument index="4"><array/></modify-argument>
</modify-function>
- <modify-function signature="glProgramUniform4uiv(&GLuint;,&GLint;,&GLint;,const &GLuint;*)">
+ <modify-function signature="glProgramUniform4uiv(GLuint,GLint,GLsizei,const GLuint*)">
<modify-argument index="4"><array/></modify-argument>
</modify-function>
- <modify-function signature="glProgramUniformMatrix2fv(&GLuint;,&GLint;,&GLint;,&GLbyte;,const float*)">
+ <modify-function signature="glProgramUniformMatrix2fv(GLuint,GLint,GLsizei,GLboolean,const GLfloat*)">
<modify-argument index="5"><array/></modify-argument>
</modify-function>
- <modify-function signature="glProgramUniformMatrix2x3fv(&GLuint;,&GLint;,&GLint;,&GLbyte;,const float*)">
+ <modify-function signature="glProgramUniformMatrix2x3fv(GLuint,GLint,GLsizei,GLboolean,const GLfloat*)">
<modify-argument index="5"><array/></modify-argument>
</modify-function>
- <modify-function signature="glProgramUniformMatrix2x4fv(&GLuint;,&GLint;,&GLint;,&GLbyte;,const float*)">
+ <modify-function signature="glProgramUniformMatrix2x4fv(GLuint,GLint,GLsizei,GLboolean,const GLfloat*)">
<modify-argument index="5"><array/></modify-argument>
</modify-function>
- <modify-function signature="glProgramUniformMatrix3fv(&GLuint;,&GLint;,&GLint;,&GLbyte;,const float*)">
+ <modify-function signature="glProgramUniformMatrix3fv(GLuint,GLint,GLsizei,GLboolean,const GLfloat*)">
<modify-argument index="5"><array/></modify-argument>
</modify-function>
- <modify-function signature="glProgramUniformMatrix3x2fv(&GLuint;,&GLint;,&GLint;,&GLbyte;,const float*)">
+ <modify-function signature="glProgramUniformMatrix3x2fv(GLuint,GLint,GLsizei,GLboolean,const GLfloat*)">
<modify-argument index="5"><array/></modify-argument>
</modify-function>
- <modify-function signature="glProgramUniformMatrix3x4fv(&GLuint;,&GLint;,&GLint;,&GLbyte;,const float*)">
+ <modify-function signature="glProgramUniformMatrix3x4fv(GLuint,GLint,GLsizei,GLboolean,const GLfloat*)">
<modify-argument index="5"><array/></modify-argument>
</modify-function>
- <modify-function signature="glProgramUniformMatrix4fv(&GLuint;,&GLint;,&GLint;,&GLbyte;,const float*)">
+ <modify-function signature="glProgramUniformMatrix4fv(GLuint,GLint,GLsizei,GLboolean,const GLfloat*)">
<modify-argument index="5"><array/></modify-argument>
</modify-function>
- <modify-function signature="glProgramUniformMatrix4x2fv(&GLuint;,&GLint;,&GLint;,&GLbyte;,const float*)">
+ <modify-function signature="glProgramUniformMatrix4x2fv(GLuint,GLint,GLsizei,GLboolean,const GLfloat*)">
<modify-argument index="5"><array/></modify-argument>
</modify-function>
- <modify-function signature="glProgramUniformMatrix4x3fv(&GLuint;,&GLint;,&GLint;,&GLbyte;,const float*)">
+ <modify-function signature="glProgramUniformMatrix4x3fv(GLuint,GLint,GLsizei,GLboolean,const GLfloat*)">
<modify-argument index="5"><array/></modify-argument>
</modify-function>
<modify-function signature="^glSamplerParameterI?u?[fi]v\(.*$">
@@ -2770,43 +2898,43 @@
<modify-function signature="^glTexParameterI?u?[fi]v\(.*$">
<modify-argument index="3"><array/></modify-argument>
</modify-function>
- <modify-function signature="glUniform1uiv(&GLint;,&GLint;,const &GLuint;*)">
+ <modify-function signature="glUniform1uiv(GLint,GLsizei,const GLuint*)">
<modify-argument index="3"><array/></modify-argument>
</modify-function>
- <modify-function signature="glUniform2uiv(&GLint;,&GLint;,const &GLuint;*)">
+ <modify-function signature="glUniform2uiv(GLint,GLsizei,const GLuint*)">
<modify-argument index="3"><array/></modify-argument>
</modify-function>
- <modify-function signature="glUniform3uiv(&GLint;,&GLint;,const &GLuint;*)">
+ <modify-function signature="glUniform3uiv(GLint,GLsizei,const GLuint*)">
<modify-argument index="3"><array/></modify-argument>
</modify-function>
- <modify-function signature="glUniform4uiv(&GLint;,&GLint;,const &GLuint;*)">
+ <modify-function signature="glUniform4uiv(GLint,GLsizei,const GLuint*)">
<modify-argument index="3"><array/></modify-argument>
</modify-function>
- <modify-function signature="glUniformMatrix2x3fv(&GLint;,&GLsizei;,&GLboolean;,const float*)">
+ <modify-function signature="glUniformMatrix2x3fv(GLint,GLsizei,GLboolean,const GLfloat*)">
<modify-argument index="4"><array/></modify-argument>
</modify-function>
- <modify-function signature="glUniformMatrix2x4fv(&GLint;,&GLsizei;,&GLboolean;,const float*)">
+ <modify-function signature="glUniformMatrix2x4fv(GLint,GLsizei,GLboolean,const GLfloat*)">
<modify-argument index="4"><array/></modify-argument>
</modify-function>
- <modify-function signature="glUniformMatrix3x2fv(&GLint;,&GLsizei;,&GLboolean;,const float*)">
+ <modify-function signature="glUniformMatrix3x2fv(GLint,GLsizei,GLboolean,const GLfloat*)">
<modify-argument index="4"><array/></modify-argument>
</modify-function>
- <modify-function signature="glUniformMatrix3x4fv(&GLint;,&GLsizei;,&GLboolean;,const float*)">
+ <modify-function signature="glUniformMatrix3x4fv(GLint,GLsizei,GLboolean,const GLfloat*)">
<modify-argument index="4"><array/></modify-argument>
</modify-function>
- <modify-function signature="glUniformMatrix4x2fv(&GLint;,&GLsizei;,&GLboolean;,const float*)">
+ <modify-function signature="glUniformMatrix4x2fv(GLint,GLsizei,GLboolean,const GLfloat*)">
<modify-argument index="4"><array/></modify-argument>
</modify-function>
- <modify-function signature="glUniformMatrix4x3fv(&GLint;,&GLsizei;,&GLboolean;,const float*)">
+ <modify-function signature="glUniformMatrix4x3fv(GLint,GLsizei,GLboolean,const GLfloat*)">
<modify-argument index="4"><array/></modify-argument>
</modify-function>
- <modify-function signature="glVertexAttribI4iv(&GLuint;,const &GLint;*)">
+ <modify-function signature="glVertexAttribI4iv(GLuint,const GLint*)">
<modify-argument index="2"><array/></modify-argument>
</modify-function>
- <modify-function signature="glVertexAttribI4uiv(&GLuint;,const &GLuint;*)">
+ <modify-function signature="glVertexAttribI4uiv(GLuint,const GLuint*)">
<modify-argument index="2"><array/></modify-argument>
</modify-function>
- <modify-function signature="glGetStringi(&GLuint;,&GLuint;)">
+ <modify-function signature="glGetStringi(GLenum,GLuint)">
<modify-argument index="return">
<replace-type modified-type="QString"/>
</modify-argument>
@@ -2814,42 +2942,73 @@
snippet="glgetstring-return"/>
</modify-function>
</object-type>
- <object-type name="QOpenGLFunctions" since="5.0">
+ <object-type name="QOpenGLFunctions">
+ <extra-includes>
+ <include file-name="QtCore/QVarLengthArray" location="global"/>
+ <include file-name="sbkcpptonumpy.h" location="global"/>
+ </extra-includes>
+ <inject-code class="native" position="beginning" file="../glue/qtgui.cpp"
+ snippet="qopenglfunctions-glgetv-return-size"/>
+
<enum-type name="OpenGLFeature" flags="OpenGLFeatures"/>
- <add-function signature="glGetShaderSource(&GLuint; @shader@)" return-type="const char *">
+ <add-function signature="glGetShaderSource(GLuint @shader@)" return-type="const char *">
<inject-code class="target" position="beginning" file="../glue/qtgui.cpp"
snippet="glgetshadersource"/>
</add-function>
- <add-function signature="glShaderSource(&GLuint; @shader@,const QString &amp; @source@)">
+ <add-function signature="glShaderSource(GLuint @shader@,const QString &amp; @source@)">
<inject-code class="target" position="beginning" file="../glue/qtgui.cpp"
snippet="glshadersource"/>
</add-function>
- <modify-function signature="glGetAttachedShaders(&GLuint;,&GLint;,&GLint;*,&GLuint;*)">
+ <modify-function signature="glGetAttachedShaders(GLuint,GLsizei,GLsizei*,GLuint*)">
<modify-argument index="3"><array/></modify-argument>
<modify-argument index="4"><array/></modify-argument>
</modify-function>
- <modify-function signature="glGetBufferParameteriv(&GLuint;,&GLuint;,&GLint;*)">
+ <modify-function signature="glGetBufferParameteriv(GLenum,GLenum,GLint*)">
<modify-argument index="3"><array/></modify-argument>
</modify-function>
- <modify-function signature="glGetFloatv(&GLuint;,float*)">
- <modify-argument index="2"><array/></modify-argument>
- </modify-function>
- <modify-function signature="glGetFramebufferAttachmentParameteriv(&GLuint;,&GLuint;,&GLuint;,&GLint;*)">
+ <modify-function signature="glGetFramebufferAttachmentParameteriv(GLenum,GLenum,GLenum,GLint*)">
<modify-argument index="4"><array/></modify-argument>
</modify-function>
- <modify-function signature="glGetIntegerv(&GLuint;,&GLint;*)">
+ <modify-function signature="glGetBooleanv(GLenum,GLboolean*)">
+ <modify-argument index="return" pyi-type="Union[bool,numpy.ndarray]">
+ <replace-type modified-type="PyObject"/>
+ </modify-argument>
+ <modify-argument index="2">
+ <remove-argument/>
+ </modify-argument>
+ <inject-code class="target" position="beginning" file="../glue/qtgui.cpp"
+ snippet="qopenglfunctions-glgetbooleanv"/>
+ </modify-function>
+ <!-- FIXME PYSIDE 7: Use the remove array modification and use
+ the version with return value instead -->
+ <modify-function signature="glGetFloatv(GLenum,GLfloat*)">
<modify-argument index="2"><array/></modify-argument>
</modify-function>
- <modify-function signature="glGetProgramiv(&GLuint;,&GLuint;,&GLint;*)">
+ <add-function signature="glGetFloatv(GLuint)" return-type="PyObject">
+ <modify-argument index="return" pyi-type="Union[float,numpy.ndarray]"/>
+ <inject-code class="target" position="beginning" file="../glue/qtgui.cpp"
+ snippet="qopenglfunctions-glgetfloatv"/>
+ </add-function>
+ <!-- FIXME PYSIDE 7: Use the remove array modification and use
+ the version with return value instead -->
+ <modify-function signature="glGetIntegerv(GLenum,GLint*)">
+ <modify-argument index="2"><array/></modify-argument>
+ </modify-function>
+ <add-function signature="glGetIntegerv(GLuint)" return-type="PyObject">
+ <modify-argument index="return" pyi-type="Union[int,numpy.ndarray]"/>
+ <inject-code class="target" position="beginning" file="../glue/qtgui.cpp"
+ snippet="qopenglfunctions-glgetintegerv"/>
+ </add-function>
+ <modify-function signature="glGetProgramiv(GLuint,GLenum,GLint*)">
<modify-argument index="3"><array/></modify-argument>
</modify-function>
- <modify-function signature="glGetRenderbufferParameteriv(&GLuint;,&GLuint;,&GLint;*)">
+ <modify-function signature="glGetRenderbufferParameteriv(GLenum,GLenum,GLint*)">
<modify-argument index="3"><array/></modify-argument>
</modify-function>
- <modify-function signature="glGetShaderiv(&GLuint;,&GLuint;,&GLint;*)">
+ <modify-function signature="glGetShaderiv(GLuint,GLenum,GLint*)">
<modify-argument index="3"><array/></modify-argument>
</modify-function>
- <modify-function signature="glGetShaderPrecisionFormat(&GLuint;,&GLuint;,&GLint;*,&GLint;*)">
+ <modify-function signature="glGetShaderPrecisionFormat(GLenum,GLenum,GLint*,GLint*)">
<modify-argument index="3"><array/></modify-argument>
<modify-argument index="4"><array/></modify-argument>
</modify-function>
@@ -2874,7 +3033,7 @@
<modify-function signature="^glGetVertexAttrib[fi]v\(.*$">
<modify-argument index="3"><array/></modify-argument>
</modify-function>
- <modify-function signature="glGetString(&GLuint;)">
+ <modify-function signature="glGetString(GLenum)">
<modify-argument index="return">
<replace-type modified-type="QString"/>
</modify-argument>
@@ -2882,38 +3041,38 @@
<insert-template name="glGetString_return_QString"/>
</inject-code>
</modify-function>
- <modify-function signature="glShaderBinary(&GLint;,const &GLuint;*,&GLuint;,const void *,&GLint;)">
+ <modify-function signature="glShaderBinary(GLint,const GLuint*,GLenum,const void*,GLint)">
<modify-argument index="2"><array/></modify-argument>
</modify-function>
</object-type>
<!-- Classes are result of a macro expansion in src/gui/opengl/qopenglversionfunctions.h
- <object-type name="QOpenGLFunctions_1_0" since="5.1"/>
- <object-type name="QOpenGLFunctions_1_1" since="5.1"/>
- <object-type name="QOpenGLFunctions_1_2" since="5.1"/>
- <object-type name="QOpenGLFunctions_1_3" since="5.1"/>
- <object-type name="QOpenGLFunctions_1_4" since="5.1"/>
- <object-type name="QOpenGLFunctions_1_5" since="5.1"/>
- <object-type name="QOpenGLFunctions_2_0" since="5.1">
- <object-type name="QOpenGLFunctions_2_1" since="5.1"/>
- <object-type name="QOpenGLFunctions_3_0" since="5.1"/>
- <object-type name="QOpenGLFunctions_3_1" since="5.1"/>
- <object-type name="QOpenGLFunctions_3_2_Compatibility" since="5.1"/>
- <object-type name="QOpenGLFunctions_3_2_Core" since="5.1"/>
- <object-type name="QOpenGLFunctions_3_3_Compatibility" since="5.1"/>
- <object-type name="QOpenGLFunctions_3_3_Core" since="5.1"/>
- <object-type name="QOpenGLFunctions_4_0_Compatibility" since="5.1"/>
- <object-type name="QOpenGLFunctions_4_0_Core" since="5.1"/>
- <object-type name="QOpenGLFunctions_4_1_Compatibility" since="5.1"/>
- <object-type name="QOpenGLFunctions_4_1_Core" since="5.1"/>
- <object-type name="QOpenGLFunctions_4_2_Compatibility" since="5.1"/>
- <object-type name="QOpenGLFunctions_4_2_Core" since="5.1"/>
- <object-type name="QOpenGLFunctions_4_3_Compatibility" since="5.1"/>
- <object-type name="QOpenGLFunctions_4_3_Core" since="5.1"/>
+ <object-type name="QOpenGLFunctions_1_0"/>
+ <object-type name="QOpenGLFunctions_1_1"/>
+ <object-type name="QOpenGLFunctions_1_2"/>
+ <object-type name="QOpenGLFunctions_1_3"/>
+ <object-type name="QOpenGLFunctions_1_4"/>
+ <object-type name="QOpenGLFunctions_1_5"/>
+ <object-type name="QOpenGLFunctions_2_0">
+ <object-type name="QOpenGLFunctions_2_1"/>
+ <object-type name="QOpenGLFunctions_3_0"/>
+ <object-type name="QOpenGLFunctions_3_1"/>
+ <object-type name="QOpenGLFunctions_3_2_Compatibility"/>
+ <object-type name="QOpenGLFunctions_3_2_Core"/>
+ <object-type name="QOpenGLFunctions_3_3_Compatibility"/>
+ <object-type name="QOpenGLFunctions_3_3_Core"/>
+ <object-type name="QOpenGLFunctions_4_0_Compatibility"/>
+ <object-type name="QOpenGLFunctions_4_0_Core"/>
+ <object-type name="QOpenGLFunctions_4_1_Compatibility"/>
+ <object-type name="QOpenGLFunctions_4_1_Core"/>
+ <object-type name="QOpenGLFunctions_4_2_Compatibility"/>
+ <object-type name="QOpenGLFunctions_4_2_Core"/>
+ <object-type name="QOpenGLFunctions_4_3_Compatibility"/>
+ <object-type name="QOpenGLFunctions_4_3_Core"/>
<object-type name="QOpenGLFunctions_4_4_Compatibility" since="5.5/>
- <object-type name="QOpenGLFunctions_4_4_Core" since="5.5"/>
- <object-type name="QOpenGLFunctions_4_5_Compatibility since="5.5""/>
- <object-type name="QOpenGLFunctions_4_5_Core" since="5.5"/>
- <object-type name="QOpenGLFunctions_ES2" since="5.1"/>
+ <object-type name="QOpenGLFunctions_4_4_Core"/>
+ <object-type name="QOpenGLFunctions_4_5_Compatibility/>
+ <object-type name="QOpenGLFunctions_4_5_Core"/>
+ <object-type name="QOpenGLFunctions_ES2"/>
-->
<value-type name="QPageLayout">
<enum-type name="Mode"/>
@@ -2939,7 +3098,7 @@
<enum-type name="YUVLayout"/>
</value-type>
<object-type name="QPdfWriter"/>
- <object-type name="QPointingDevice" since="6.0">
+ <object-type name="QPointingDevice">
<enum-type name="PointerType" flags="PointerTypes"/>
<enum-type name="GrabTransition"/>
</object-type>
@@ -2961,6 +3120,13 @@
</modify-argument>
<inject-code file="../glue/qtgui.cpp" snippet="qscreen-grabWindow"/>
</modify-function>
+ <add-function signature="nativeInterface()const" return-type="PyObject">
+ <modify-argument index="return"> <!-- Suppress return value heuristics -->
+ <define-ownership class="target" owner="default"/>
+ </modify-argument>
+ <inject-code class="target" position="beginning" file="../glue/qtgui.cpp"
+ snippet="qscreen-nativeInterface"/>
+ </add-function>
</object-type>
<object-type name="QStyleHints"/>
@@ -2998,4 +3164,18 @@
</modify-argument>
</modify-function>
</object-type>
+
+ <namespace-type name="QtGuiHelper" visible="no">
+ <object-type name="QOverrideCursorGuard" copyable="no">
+ <add-function signature="__enter__()" return-type="QtGuiHelper::QOverrideCursorGuard">
+ <inject-code file="../glue/qtcore.cpp" snippet="default-enter"/>
+ </add-function>
+ <add-function signature="__exit__(PyObject*,PyObject*,PyObject*)">
+ <inject-code>%CPPSELF.restoreOverrideCursor();</inject-code>
+ </add-function>
+ </object-type>
+ </namespace-type>
+
+ <opaque-container name="QList" opaque-containers="QVector2D:QVector2DList;QVector3D:QVector3DList;QVector4D:QVector4DList"/>
+
</typesystem>
diff --git a/sources/pyside6/PySide6/QtGui/typesystem_gui_mac.xml b/sources/pyside6/PySide6/QtGui/typesystem_gui_mac.xml
index 247bf8a51..c4f16911e 100644
--- a/sources/pyside6/PySide6/QtGui/typesystem_gui_mac.xml
+++ b/sources/pyside6/PySide6/QtGui/typesystem_gui_mac.xml
@@ -1,42 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
<typesystem package="PySide6.QtGui"/>
diff --git a/sources/pyside6/PySide6/QtGui/typesystem_gui_rhi.xml b/sources/pyside6/PySide6/QtGui/typesystem_gui_rhi.xml
new file mode 100644
index 000000000..22ab56e20
--- /dev/null
+++ b/sources/pyside6/PySide6/QtGui/typesystem_gui_rhi.xml
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+-->
+<typesystem package="PySide6.QtGui">
+ <value-type name="QRhiDepthStencilClearValue" since="6.6" private="yes"/>
+ <value-type name="QRhiViewport" since="6.6" private="yes"/>
+ <value-type name="QRhiScissor" since="6.6" private="yes"/>
+ <value-type name="QRhiVertexInputBinding" since="6.6" private="yes">
+ <enum-type name="Classification"/>
+ </value-type>
+ <value-type name="QRhiVertexInputAttribute" since="6.6" private="yes">
+ <enum-type name="Format"/>
+ </value-type>
+ <value-type name="QRhiVertexInputLayout" since="6.6" private="yes">
+ <add-function signature="setBindings(QList&lt;QRhiVertexInputBinding&gt;@bindings@)">
+ <inject-code class="target" position="beginning"
+ file="../glue/qtgui.cpp" snippet="qrhi-initializer-list"/>
+ </add-function>
+ <add-function signature="setAttributes(QList&lt;QRhiVertexInputAttribute&gt;@attributes@)">
+ <inject-code class="target" position="beginning"
+ file="../glue/qtgui.cpp" snippet="qrhi-initializer-list"/>
+ </add-function>
+ </value-type>
+ <value-type name="QRhiShaderStage" since="6.6" private="yes">
+ <enum-type name="Type"/>
+ </value-type>
+ <value-type name="QRhiShaderResourceBinding" since="6.6" private="yes">
+ <enum-type name="Type"/>
+ <enum-type name="StageFlag" flags="StageFlags"/>
+ <value-type name="TextureAndSampler" private="yes"/>
+ <value-type name="Data" private="yes">
+ <value-type name="StorageImageData" private="yes"/>
+ <value-type name="StorageBufferData" private="yes"/>
+ </value-type>
+ </value-type>
+ <value-type name="QRhiColorAttachment" since="6.6" private="yes"/>
+ <value-type name="QRhiTextureRenderTargetDescription" since="6.6" private="yes">
+ <add-function signature="setColorAttachments(QList&lt;QRhiColorAttachment&gt;@bcolor_attachments@)">
+ <inject-code class="target" position="beginning"
+ file="../glue/qtgui.cpp" snippet="qrhi-initializer-list"/>
+ </add-function>
+ </value-type>
+ <value-type name="QRhiTextureSubresourceUploadDescription" since="6.6" private="yes"/>
+ <value-type name="QRhiTextureUploadEntry" since="6.6" private="yes"/>
+ <value-type name="QRhiTextureUploadDescription" since="6.6" private="yes">
+ <add-function signature="setEntries(QList&lt;QRhiTextureUploadEntry&gt;@entries@)">
+ <inject-code class="target" position="beginning"
+ file="../glue/qtgui.cpp" snippet="qrhi-initializer-list"/>
+ </add-function>
+ </value-type>
+ <value-type name="QRhiTextureCopyDescription" since="6.6" private="yes"/>
+ <value-type name="QRhiReadbackDescription" since="6.6" private="yes"/>
+ <value-type name="QRhiNativeHandles" since="6.6" private="yes"/>
+ <object-type name="QRhiResource" since="6.6" private="yes">
+ <enum-type name="Type"/>
+ </object-type>
+ <object-type name="QRhiBuffer" since="6.6" private="yes">
+ <enum-type name="Type"/>
+ <enum-type name="UsageFlag" flags="UsageFlags"/>
+ <!-- const char * mixup -->
+ <modify-function signature="beginFullDynamicBufferUpdateForCurrentFrame()" remove="all"/>
+ </object-type>
+ <object-type name="QRhiTexture" since="6.6" private="yes">
+ <enum-type name="Format"/>
+ <enum-type name="Flag" flags="Flags"/>
+ </object-type>
+ <object-type name="QRhiSampler" since="6.6" private="yes">
+ <enum-type name="Filter"/>
+ <enum-type name="AddressMode"/>
+ <enum-type name="CompareOp"/>
+ </object-type>
+ <object-type name="QRhiRenderBuffer" since="6.6" private="yes">
+ <enum-type name="Type"/>
+ <enum-type name="Flag" flags="Flags"/>
+ </object-type>
+ <object-type name="QRhiRenderPassDescriptor" since="6.6" private="yes"/>
+ <object-type name="QRhiRenderTarget" since="6.6" private="yes"/>
+ <object-type name="QRhiSwapChainRenderTarget" since="6.6" private="yes"/>
+ <object-type name="QRhiTextureRenderTarget" since="6.6" private="yes">
+ <enum-type name="Flag" flags="Flags"/>
+ </object-type>
+ <object-type name="QRhiShaderResourceBindings" since="6.6" private="yes">
+ <enum-type name="UpdateFlag" flags="UpdateFlags"/>
+ <modify-field name="BINDING_PREALLOC" remove="true"/>
+ <add-function signature="setBindings(QList&lt;QRhiShaderResourceBinding&gt;@bindings@)">
+ <inject-code class="target" position="beginning"
+ file="../glue/qtgui.cpp" snippet="qrhi-initializer-list"/>
+ </add-function>
+ </object-type>
+ <object-type name="QRhiGraphicsPipeline" since="6.6" private="yes">
+ <enum-type name="Flag" flags="Flags"/>
+ <enum-type name="BlendOp"/>
+ <enum-type name="Topology"/>
+ <enum-type name="CullMode"/>
+ <enum-type name="FrontFace"/>
+ <enum-type name="ColorMaskComponent" flags="ColorMask"/>
+ <enum-type name="BlendFactor"/>
+ <enum-type name="CompareOp"/>
+ <enum-type name="StencilOp"/>
+ <enum-type name="PolygonMode"/>
+ <value-type name="StencilOpState" private="yes"/>
+ <value-type name="TargetBlend" private="yes"/>
+ <add-function signature="setShaderStages(QList&lt;QRhiShaderStage&gt;@stages@)">
+ <inject-code class="target" position="beginning"
+ file="../glue/qtgui.cpp"
+ snippet="qrhi-initializer-list"/>
+ </add-function>
+ <add-function signature="setTargetBlends(QList&lt;QRhiGraphicsPipeline::TargetBlend&gt;@blends@)">
+ <inject-code class="target" position="beginning"
+ file="../glue/qtgui.cpp"
+ snippet="qrhi-initializer-list"/>
+ </add-function>
+ </object-type>
+ <object-type name="QRhiSwapChain" since="6.6" private="yes">
+ <enum-type name="Flag" flags="Flags"/>
+ <enum-type name="Format"/>
+ <enum-type name="StereoTargetBuffer"/>
+ </object-type>
+ <object-type name="QRhiComputePipeline" since="6.6" private="yes">
+ <enum-type name="Flag" flags="Flags"/>
+ </object-type>
+ <object-type name="QRhiCommandBuffer" since="6.6" private="yes">
+ <enum-type name="BeginPassFlag" flags="BeginPassFlags"/>
+ <enum-type name="IndexFormat"/>
+ <modify-function signature="^setVertexInput\(.*\)$" remove="all"/>
+ <add-function signature="setVertexInput(int@startBinding@,QList&lt;std::pair&lt;QRhiBuffer*,quint32&gt;&gt;@bindings@,QRhiBuffer*@indexBuf@=nullptr,quint32@indexOffset@=0,QRhiCommandBuffer::IndexFormat @indexFormat@ = QRhiCommandBuffer::IndexUInt16)">
+ <inject-code class="target" position="beginning"
+ file="../glue/qtgui.cpp"
+ snippet="qrhi-commandbuffer-setvertexinput"/>
+ </add-function>
+ </object-type>
+ <value-type name="QRhiReadbackResult" since="6.6" private="yes"/>
+ <object-type name="QRhiResourceUpdateBatch" since="6.6" private="yes"/>
+ <value-type name="QRhiDriverInfo" since="6.6" private="yes">
+ <enum-type name="DeviceType"/>
+ </value-type>
+ <value-type name="QRhiStats" since="6.6" private="yes"/>
+ <value-type name="QRhiInitParams" since="6.6" private="yes"/>
+ <value-type name="QRhiNullInitParams" since="6.6" private="yes"/>
+ <value-type name="QRhiGles2InitParams" since="6.6" private="yes"/>
+ <value-type name="QRhiGles2NativeHandles" since="6.6" private="yes"/>
+ <?if windows?>
+ <value-type name="QRhiD3D11InitParams" since="6.6" private="yes"/>
+ <value-type name="QRhiD3D11NativeHandles" since="6.6" private="yes"/>
+ <value-type name="QRhiD3D12InitParams" since="6.6" private="yes"/>
+ <value-type name="QRhiD3D12NativeHandles" since="6.6" private="yes"/>
+ <?endif?>
+ <?if darwin?>
+ <value-type name="QRhiMetalInitParams" since="6.6" private="yes"/>
+ <?endif?>
+
+ <object-type name="QRhi" since="6.6" private="yes">
+ <enum-type name="Flag" flags="Flags"/>
+ <enum-type name="Implementation"/>
+ <enum-type name="FrameOpResult"/>
+ <enum-type name="Feature"/>
+ <enum-type name="BeginFrameFlag" flags="BeginFrameFlags"/>
+ <enum-type name="EndFrameFlag" flags="EndFrameFlags"/>
+ <enum-type name="ResourceLimit"/>
+ </object-type>
+
+ <value-type name="QShader" since="6.6" private="yes">
+ <enum-type name="Stage"/>
+ <enum-type name="Source"/>
+ <enum-type name="Variant"/>
+ <enum-type name="SerializedFormatVersion"/>
+ </value-type>
+ <value-type name="QShaderCode" since="6.6" private="yes"/>
+ <value-type name="QShaderKey" since="6.6" private="yes"/>
+ <value-type name="QShaderVersion" since="6.6" private="yes">
+ <enum-type name="Flag" flags="Flags"/>
+ </value-type>
+
+</typesystem>
diff --git a/sources/pyside6/PySide6/QtGui/typesystem_gui_win.xml b/sources/pyside6/PySide6/QtGui/typesystem_gui_win.xml
index 247bf8a51..b3b8a75b6 100644
--- a/sources/pyside6/PySide6/QtGui/typesystem_gui_win.xml
+++ b/sources/pyside6/PySide6/QtGui/typesystem_gui_win.xml
@@ -1,42 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtGui"/>
+<typesystem package="PySide6.QtGui">
+ <primitive-type name="HBITMAP" target-lang-api-name="PyLong">
+ <conversion-rule>
+ <native-to-target file="../glue/qtgui.cpp" snippet="return-pylong-voidptr"/>
+ <target-to-native>
+ <add-conversion type="PyLong" file="../glue/qtgui.cpp"
+ snippet="conversion-pylong"/>
+ </target-to-native>
+ </conversion-rule>
+ </primitive-type>
+ <primitive-type name="HICON" target-lang-api-name="PyLong">
+ <conversion-rule>
+ <native-to-target file="../glue/qtgui.cpp" snippet="return-pylong-voidptr"/>
+ <target-to-native>
+ <add-conversion type="PyLong" file="../glue/qtgui.cpp"
+ snippet="conversion-pylong"/>
+ </target-to-native>
+ </conversion-rule>
+ </primitive-type>
+ <primitive-type name="HMONITOR" target-lang-api-name="PyLong">
+ <conversion-rule>
+ <native-to-target file="../glue/qtgui.cpp" snippet="return-pylong-voidptr"/>
+ <target-to-native>
+ <add-conversion type="PyLong" file="../glue/qtgui.cpp"
+ snippet="conversion-pylong"/>
+ </target-to-native>
+ </conversion-rule>
+ </primitive-type>
+ <primitive-type name="HRGN" target-lang-api-name="PyLong">
+ <conversion-rule>
+ <native-to-target file="../glue/qtgui.cpp" snippet="return-pylong-voidptr"/>
+ <target-to-native>
+ <add-conversion type="PyLong" file="../glue/qtgui.cpp"
+ snippet="conversion-pylong"/>
+ </target-to-native>
+ </conversion-rule>
+ </primitive-type>
+</typesystem>
diff --git a/sources/pyside6/PySide6/QtGui/typesystem_gui_x11.xml b/sources/pyside6/PySide6/QtGui/typesystem_gui_x11.xml
index 247bf8a51..70331e29c 100644
--- a/sources/pyside6/PySide6/QtGui/typesystem_gui_x11.xml
+++ b/sources/pyside6/PySide6/QtGui/typesystem_gui_x11.xml
@@ -1,42 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtGui"/>
+<typesystem package="PySide6.QtGui">
+ <custom-type name="_XDisplay"/>
+ <custom-type name="xcb_connection_t"/>
+</typesystem>
diff --git a/sources/pyside6/PySide6/QtHelp/CMakeLists.txt b/sources/pyside6/PySide6/QtHelp/CMakeLists.txt
index 1b1f1ad74..7bf46dcef 100644
--- a/sources/pyside6/PySide6/QtHelp/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtHelp/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtHelp)
set(QtHelp_SRC
@@ -5,6 +8,7 @@ ${QtHelp_GEN_DIR}/qcompressedhelpinfo_wrapper.cpp
${QtHelp_GEN_DIR}/qhelpcontentitem_wrapper.cpp
${QtHelp_GEN_DIR}/qhelpcontentmodel_wrapper.cpp
${QtHelp_GEN_DIR}/qhelpcontentwidget_wrapper.cpp
+${QtHelp_GEN_DIR}/qhelpglobal_wrapper.cpp
${QtHelp_GEN_DIR}/qhelpengine_wrapper.cpp
${QtHelp_GEN_DIR}/qhelpenginecore_wrapper.cpp
${QtHelp_GEN_DIR}/qhelpfilterdata_wrapper.cpp
@@ -37,9 +41,6 @@ set(QtHelp_include_dirs ${QtHelp_SOURCE_DIR}
${QtCore_GEN_DIR}
)
set(QtHelp_libraries pyside6
- ${Qt${QT_MAJOR_VERSION}Core_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Gui_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Widgets_LIBRARIES}
${Qt${QT_MAJOR_VERSION}Help_LIBRARIES})
set(QtHelp_deps QtWidgets)
diff --git a/sources/pyside6/PySide6/QtHelp/typesystem_help.xml b/sources/pyside6/PySide6/QtHelp/typesystem_help.xml
index 42863eb96..5fa30e034 100644
--- a/sources/pyside6/PySide6/QtHelp/typesystem_help.xml
+++ b/sources/pyside6/PySide6/QtHelp/typesystem_help.xml
@@ -1,49 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtHelp">
+<typesystem package="PySide6.QtHelp"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="QtWidgets/typesystem_widgets.xml" generate="no"/>
- <value-type name="QCompressedHelpInfo" since="5.13"/>
+ <value-type name="QCompressedHelpInfo"/>
<value-type name="QHelpContentItem">
<modify-function signature="parent()const">
<modify-argument index="return">
@@ -51,16 +16,17 @@
</modify-argument>
</modify-function>
</value-type>
- <object-type name="QHelpContentModel" polymorphic-id-expression="qobject_cast&lt;QHelpContentModel*&gt;(%1)"/>
+ <object-type name="QHelpContentModel" polymorphic-id-expression="qobject_cast&lt;QHelpContentModel*&gt;(%B)"/>
<object-type name="QHelpContentWidget"/>
+ <value-type name="QHelpGlobal"/>
<object-type name="QHelpEngine"/>
<object-type name="QHelpEngineCore"/>
- <value-type name="QHelpFilterData" since="5.13"/>
- <object-type name="QHelpFilterEngine" since="5.13"/>
- <object-type name="QHelpFilterSettingsWidget" since="5.15"/>
+ <value-type name="QHelpFilterData"/>
+ <object-type name="QHelpFilterEngine"/>
+ <object-type name="QHelpFilterSettingsWidget"/>
<object-type name="QHelpIndexModel"/>
<object-type name="QHelpIndexWidget"/>
- <value-type name="QHelpLink" since="5.15"/>
+ <value-type name="QHelpLink"/>
<object-type name="QHelpSearchEngine"/>
<value-type name="QHelpSearchQuery">
<enum-type name="FieldName"/>
diff --git a/sources/pyside6/PySide6/QtHttpServer/CMakeLists.txt b/sources/pyside6/PySide6/QtHttpServer/CMakeLists.txt
new file mode 100644
index 000000000..c931f064f
--- /dev/null
+++ b/sources/pyside6/PySide6/QtHttpServer/CMakeLists.txt
@@ -0,0 +1,40 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+project(QtHttpServer)
+
+set(QtHttpServer_SRC
+ ${QtHttpServer_GEN_DIR}/qabstracthttpserver_wrapper.cpp
+ ${QtHttpServer_GEN_DIR}/qfuturehttpserverresponse_wrapper.cpp
+ ${QtHttpServer_GEN_DIR}/qhttpserver_wrapper.cpp
+ ${QtHttpServer_GEN_DIR}/qhttpserverresponder_wrapper.cpp
+ ${QtHttpServer_GEN_DIR}/qhttpserverrequest_wrapper.cpp
+ ${QtHttpServer_GEN_DIR}/qhttpserverresponse_wrapper.cpp
+ ${QtHttpServer_GEN_DIR}/qhttpserverrouter_wrapper.cpp
+ ${QtHttpServer_GEN_DIR}/qhttpserverrouterrule_wrapper.cpp
+# module is always needed
+ ${QtHttpServer_GEN_DIR}/qthttpserver_module_wrapper.cpp)
+
+set(QtHttpServer_include_dirs ${QtHttpServer_SOURCE_DIR}
+ ${QtHttpServer_BINARY_DIR}
+ ${Qt${QT_MAJOR_VERSION}Core_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}Concurrent_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}Network_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}WebSockets_INCLUDE_DIRS}
+ ${libpyside_SOURCE_DIR}
+ ${QtCore_GEN_DIR}
+ ${QtConcurrent_GEN_DIR}
+ ${QtNetwork_GEN_DIR}
+ ${QtWebSockets_GEN_DIR})
+
+set(QtHttpServer_libraries pyside6
+ ${Qt${QT_MAJOR_VERSION}HttpServer_LIBRARIES})
+
+set(QtHttpServer_deps QtCore QtConcurrent QtNetwork QtWebSockets)
+
+create_pyside_module(NAME QtHttpServer
+ INCLUDE_DIRS QtHttpServer_include_dirs
+ LIBRARIES QtHttpServer_libraries
+ DEPS QtHttpServer_deps
+ TYPESYSTEM_PATH QtHttpServer_SOURCE_DIR
+ SOURCES QtHttpServer_SRC)
diff --git a/sources/pyside6/PySide6/QtHttpServer/typesystem_httpserver.xml b/sources/pyside6/PySide6/QtHttpServer/typesystem_httpserver.xml
new file mode 100644
index 000000000..026a8758a
--- /dev/null
+++ b/sources/pyside6/PySide6/QtHttpServer/typesystem_httpserver.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+-->
+<typesystem package="PySide6.QtHttpServer"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
+ <load-typesystem name="QtConcurrent/typesystem_concurrent.xml" generate="no"/>
+ <load-typesystem name="QtWebSockets/typesystem_websockets.xml" generate="no"/>
+
+ <typedef-type name="QFutureHttpServerResponse" source="QFuture&lt;QHttpServerResponse&gt;"/>
+ <!-- virtual void missingHandler(const QHttpServerRequest &, QHttpServerResponder &&) = 0 -->
+ <object-type name="QAbstractHttpServer" disable-wrapper="yes"/>
+ <object-type name="QHttpServer">
+ <extra-includes>
+ <include file-name="QtHttpServer/QHttpServerRequest" location="global"/>
+ <include file-name="QtHttpServer/QHttpServerRouterRule" location="global"/>
+ </extra-includes>
+ <add-function signature="route(const QString &amp;@rule@, PyCallable @callback@)"
+ return-type="bool">
+ <inject-code class="target" position="beginning" file="../glue/qhttpserver.cpp"
+ snippet="qhttpserver-route"/>
+ </add-function>
+ <add-function signature="afterRequest(PyCallable @callback@)">
+ <inject-code class="target" position="beginning" file="../glue/qhttpserver.cpp"
+ snippet="qhttpserver-afterrequest"/>
+ </add-function>
+ </object-type>
+ <object-type name="QHttpServerResponder">
+ <enum-type name="StatusCode"/>
+ </object-type>
+ <object-type name="QHttpServerRequest">
+ <enum-type name="Method" flags="Methods"/>
+ </object-type>
+ <object-type name="QHttpServerResponse"/>
+ <object-type name="QHttpServerRouter"/>
+ <object-type name="QHttpServerRouterRule"/>
+</typesystem>
diff --git a/sources/pyside6/PySide6/QtLocation/CMakeLists.txt b/sources/pyside6/PySide6/QtLocation/CMakeLists.txt
index 9e58d94ac..db5777e04 100644
--- a/sources/pyside6/PySide6/QtLocation/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtLocation/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtLocation)
set(QtLocation_OPTIONAL_SRC )
@@ -10,7 +13,6 @@ ${QtLocation_GEN_DIR}/qgeoroute_wrapper.cpp
${QtLocation_GEN_DIR}/qgeoroutereply_wrapper.cpp
${QtLocation_GEN_DIR}/qgeoroutesegment_wrapper.cpp
${QtLocation_GEN_DIR}/qgeoserviceprovider_wrapper.cpp
-${QtLocation_GEN_DIR}/qgeoserviceproviderfactoryv2_wrapper.cpp
${QtLocation_GEN_DIR}/qplace_wrapper.cpp
${QtLocation_GEN_DIR}/qplacecontentreply_wrapper.cpp
${QtLocation_GEN_DIR}/qplacedetailsreply_wrapper.cpp
@@ -29,8 +31,6 @@ ${QtLocation_GEN_DIR}/qplacecategory_wrapper.cpp
${QtLocation_GEN_DIR}/qplacecontactdetail_wrapper.cpp
${QtLocation_GEN_DIR}/qplacecontent_wrapper.cpp
${QtLocation_GEN_DIR}/qplacecontentrequest_wrapper.cpp
-${QtLocation_GEN_DIR}/qplaceeditorial_wrapper.cpp
-${QtLocation_GEN_DIR}/qplaceimage_wrapper.cpp
${QtLocation_GEN_DIR}/qplacemanagerengine_wrapper.cpp
${QtLocation_GEN_DIR}/qplacematchreply_wrapper.cpp
${QtLocation_GEN_DIR}/qplacematchrequest_wrapper.cpp
@@ -38,7 +38,6 @@ ${QtLocation_GEN_DIR}/qplaceproposedsearchresult_wrapper.cpp
${QtLocation_GEN_DIR}/qplaceratings_wrapper.cpp
${QtLocation_GEN_DIR}/qplacereply_wrapper.cpp
${QtLocation_GEN_DIR}/qplaceresult_wrapper.cpp
-${QtLocation_GEN_DIR}/qplacereview_wrapper.cpp
${QtLocation_GEN_DIR}/qplacesearchreply_wrapper.cpp
${QtLocation_GEN_DIR}/qplacesearchrequest_wrapper.cpp
${QtLocation_GEN_DIR}/qplacesearchresult_wrapper.cpp
diff --git a/sources/pyside6/PySide6/QtLocation/typesystem_location.xml b/sources/pyside6/PySide6/QtLocation/typesystem_location.xml
index e0ff17d0e..e35b7bd11 100644
--- a/sources/pyside6/PySide6/QtLocation/typesystem_location.xml
+++ b/sources/pyside6/PySide6/QtLocation/typesystem_location.xml
@@ -1,45 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtLocation">
+<typesystem package="PySide6.QtLocation"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="QtCore/typesystem_core.xml" generate="no"/>
<load-typesystem name="QtPositioning/typesystem_positioning.xml" generate="no"/>
<object-type name="QGeoCodeReply">
@@ -83,16 +48,14 @@
<object-type name="QGeoRoutingManager"/>
<object-type name="QGeoRoutingManagerEngine"/>
<object-type name="QGeoServiceProviderFactory"/>
- <object-type name="QGeoServiceProviderFactoryV2" since="5.11"/>
<value-type name="QPlaceAttribute"/>
<value-type name="QPlaceCategory"/>
<value-type name="QPlaceContactDetail"/>
<value-type name="QPlaceContent">
<enum-type name="Type"/>
+ <enum-type name="DataTag" since="6.5"/>
</value-type>
<value-type name="QPlaceContentRequest"/>
- <object-type name="QPlaceEditorial"/>
- <object-type name="QPlaceImage"/>
<object-type name="QPlaceManagerEngine"/>
<object-type name="QPlaceMatchReply"/>
<value-type name="QPlaceMatchRequest"/>
@@ -103,7 +66,6 @@
<enum-type name="Type"/>
</object-type>
<object-type name="QPlaceResult"/>
- <object-type name="QPlaceReview"/>
<object-type name="QPlaceSearchReply"/>
<object-type name="QPlaceSearchRequest">
<enum-type name="RelevanceHint"/>
@@ -113,4 +75,8 @@
</object-type>
<object-type name="QPlaceSearchSuggestionReply"/>
<value-type name="QPlaceSupplier"/>
+
+ <!-- QtQml, QtNetwork are pulled in via QtLocationDepends. -->
+ <suppress-warning text="^Scoped enum 'Q(Ocsp)|(Dtls)|(Qml).*' does not have a type entry.*$"/>
+
</typesystem>
diff --git a/sources/pyside6/PySide6/QtMultimedia/CMakeLists.txt b/sources/pyside6/PySide6/QtMultimedia/CMakeLists.txt
index 5a6f3e38e..e40c5a2ed 100644
--- a/sources/pyside6/PySide6/QtMultimedia/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtMultimedia/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtMultimedia)
set(QtMultimedia_SRC
@@ -13,6 +16,7 @@ ${QtMultimedia_GEN_DIR}/qaudio_wrapper.cpp
${QtMultimedia_GEN_DIR}/qcameraformat_wrapper.cpp
${QtMultimedia_GEN_DIR}/qcameradevice_wrapper.cpp
${QtMultimedia_GEN_DIR}/qcamera_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qcapturablewindow_wrapper.cpp
${QtMultimedia_GEN_DIR}/qimagecapture_wrapper.cpp
${QtMultimedia_GEN_DIR}/qmediacapturesession_wrapper.cpp
${QtMultimedia_GEN_DIR}/qmediadevices_wrapper.cpp
@@ -23,10 +27,15 @@ ${QtMultimedia_GEN_DIR}/qmediaplayer_wrapper.cpp
${QtMultimedia_GEN_DIR}/qmediarecorder_wrapper.cpp
${QtMultimedia_GEN_DIR}/qmediatimerange_wrapper.cpp
${QtMultimedia_GEN_DIR}/qmediatimerange_interval_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qscreencapture_wrapper.cpp
${QtMultimedia_GEN_DIR}/qsoundeffect_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qtvideo_wrapper.cpp
${QtMultimedia_GEN_DIR}/qvideoframe_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qvideoframe_paintoptions_wrapper.cpp
${QtMultimedia_GEN_DIR}/qvideoframeformat_wrapper.cpp
${QtMultimedia_GEN_DIR}/qvideosink_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qwavedecoder_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qwindowcapture_wrapper.cpp
# module is always needed
${QtMultimedia_GEN_DIR}/qtmultimedia_module_wrapper.cpp
@@ -44,11 +53,8 @@ set(QtMultimedia_include_dirs ${QtMultimedia_SOURCE_DIR}
${QtNetwork_GEN_DIR})
set(QtMultimedia_libraries pyside6
- ${Qt${QT_MAJOR_VERSION}Multimedia_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Core_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Gui_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Network_LIBRARIES}
- )
+ ${Qt${QT_MAJOR_VERSION}Multimedia_LIBRARIES})
+
set(QtMultimedia_deps QtCore QtGui QtNetwork)
create_pyside_module(NAME QtMultimedia
diff --git a/sources/pyside6/PySide6/QtMultimedia/typesystem_multimedia.xml b/sources/pyside6/PySide6/QtMultimedia/typesystem_multimedia.xml
index b4b4271bd..2791f695a 100644
--- a/sources/pyside6/PySide6/QtMultimedia/typesystem_multimedia.xml
+++ b/sources/pyside6/PySide6/QtMultimedia/typesystem_multimedia.xml
@@ -1,63 +1,50 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtMultimedia">
+<typesystem package="PySide6.QtMultimedia"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="QtCore/typesystem_core.xml" generate="no"/>
<load-typesystem name="QtGui/typesystem_gui.xml" generate="no"/>
<load-typesystem name="QtNetwork/typesystem_network.xml" generate="no"/>
<namespace-type name="QAudio">
<enum-type name="Error"/>
- <enum-type name="Mode"/>
<enum-type name="State"/>
- <enum-type name="VolumeScale" since="5.8"/>
+ <enum-type name="VolumeScale"/>
+ <inject-code class="target" position="end"
+ file="../glue/qtmultimedia.cpp"
+ snippet="qtaudio-namespace-compatibility-alias"/>
+ </namespace-type>
+
+ <namespace-type name="QtVideo" since="6.7">
+ <enum-type name="Rotation"/>
</namespace-type>
- <value-type name="QAudioBuffer"/>
+ <value-type name="QAudioBuffer">
+ <add-function signature="data()" return-type="PyBuffer">
+ <inject-code file="../glue/qtmultimedia.cpp" snippet="qaudiobuffer-data"/>
+ </add-function>
+ <add-function signature="constData()" return-type="PyBuffer">
+ <inject-code file="../glue/qtmultimedia.cpp" snippet="qaudiobuffer-const-data"/>
+ </add-function>
+ </value-type>
<object-type name="QAudioDecoder">
<enum-type name="Error"/>
</object-type>
<value-type name="QAudioFormat">
<enum-type name="SampleFormat" since="6.1"/>
<enum-type name="ChannelConfig"/>
+ <enum-type name="AudioChannelPosition" since="6.2"/>
+ <modify-function signature="normalizedSampleValue(const void*)const">
+ <modify-argument index="1">
+ <replace-type modified-type="PyBuffer"/>
+ <conversion-rule class="native">
+ <insert-template name="pybuffer_const_char"/>
+ </conversion-rule>
+ </modify-argument>
+ </modify-function>
</value-type>
<value-type name="QAudioDevice">
<enum-type name="Mode"/>
@@ -67,29 +54,31 @@
<object-type name="QAudioOutput"/>
<object-type name="QAudioSource">
- <modify-function signature="start()">
+ <modify-function signature="start()" allow-thread="true">
<modify-argument index="return">
<define-ownership class="target" owner="c++"/>
</modify-argument>
</modify-function>
- <modify-function signature="start(QIODevice*)">
+ <modify-function signature="start(QIODevice*)" allow-thread="true">
<modify-argument index="1">
<define-ownership class="target" owner="c++"/>
</modify-argument>
</modify-function>
+ <modify-function signature="stop()" allow-thread="true"/>
</object-type>
<object-type name="QAudioSink">
- <modify-function signature="start()">
+ <modify-function signature="start()" allow-thread="true">
<modify-argument index="return">
<define-ownership class="target" owner="c++"/>
</modify-argument>
</modify-function>
- <modify-function signature="start(QIODevice*)">
+ <modify-function signature="start(QIODevice*)" allow-thread="true">
<modify-argument index="1">
<define-ownership class="target" owner="c++"/>
</modify-argument>
</modify-function>
+ <modify-function signature="stop()" allow-thread="true"/>
</object-type>
<object-type name="QCamera">
@@ -105,6 +94,9 @@
<value-type name="QCameraDevice">
<enum-type name="Position" since="6.1"/>
</value-type>
+
+ <value-type name="QCapturableWindow" since="6.6"/>
+
<object-type name="QImageCapture">
<enum-type name="Error"/>
<enum-type name="FileFormat"/>
@@ -130,6 +122,7 @@
<enum-type name="MediaStatus"/>
<enum-type name="PlaybackState" since="6.1"/>
<enum-type name="Error"/>
+ <enum-type name="Loops" python-type="IntEnum" since="6.2.3"/>
</object-type>
<!-- see qtmultimedia/5773f7214c7430a98dea3974c0597cb3ee0ea7f5 might reappear in 6.3
<object-type name="QMediaPlaylist"/>
@@ -144,6 +137,10 @@
<value-type name="Interval"/>
</value-type>
+ <object-type name="QScreenCapture" since="6.5">
+ <enum-type name="Error"/>
+ </object-type>
+
<object-type name="QSoundEffect">
<enum-type name="Loop"/>
<enum-type name="Status"/>
@@ -152,17 +149,32 @@
<value-type name="QVideoFrame">
<enum-type name="HandleType"/>
<enum-type name="MapMode" since="6.1"/>
- <modify-function signature="bits()">
+ <enum-type name="RotationAngle" since="6.2.3"/>
+ <modify-function signature="bits(int)">
<inject-code file="../glue/qtmultimedia.cpp" snippet="qvideoframe-bits"/>
</modify-function>
- <modify-function signature="bits(int)" remove="all"/>
<modify-function signature="bits(int)const" remove="all"/>
+ <value-type name="PaintOptions">
+ <enum-type name="PaintFlag" flags="PaintFlags"/>
+ </value-type>
</value-type>
<value-type name="QVideoFrameFormat" since="6.1">
+ <enum-type name="ColorSpace" since="6.4"/>
+ <enum-type name="ColorTransfer" since="6.4"/>
+ <enum-type name="ColorRange" since="6.4"/>
<enum-type name="Direction"/>
<enum-type name="PixelFormat"/>
<enum-type name="YCbCrColorSpace"/>
</value-type>
+ <object-type name="QWaveDecoder">
+ <!-- No implementation -->
+ <modify-function signature="setIODevice(QIODevice*)" remove="all"/>
+ </object-type>
+
+ <object-type name="QWindowCapture" since="6.6">
+ <enum-type name="Error"/>
+ </object-type>
+
<object-type name="QVideoSink" since="6.1"/>
</typesystem>
diff --git a/sources/pyside6/PySide6/QtMultimediaWidgets/CMakeLists.txt b/sources/pyside6/PySide6/QtMultimediaWidgets/CMakeLists.txt
index 94443b496..c3988551e 100644
--- a/sources/pyside6/PySide6/QtMultimediaWidgets/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtMultimediaWidgets/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtMultimediaWidgets)
set(QtMultimediaWidgets_SRC
@@ -23,12 +26,8 @@ set(QtMultimediaWidgets_include_dirs ${QtMultimediaWidgets_SOURCE_DIR}
${QtMultimedia_GEN_DIR})
set(QtMultimediaWidgets_libraries pyside6
- ${Qt${QT_MAJOR_VERSION}Multimedia_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}MultimediaWidgets_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Core_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Gui_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Network_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Widgets_LIBRARIES})
+ ${Qt${QT_MAJOR_VERSION}MultimediaWidgets_LIBRARIES})
+
set(QtMultimediaWidgets_deps QtCore QtGui QtNetwork QtWidgets QtMultimedia)
diff --git a/sources/pyside6/PySide6/QtMultimediaWidgets/typesystem_multimediawidgets.xml b/sources/pyside6/PySide6/QtMultimediaWidgets/typesystem_multimediawidgets.xml
index e8d20494e..05b4e2456 100644
--- a/sources/pyside6/PySide6/QtMultimediaWidgets/typesystem_multimediawidgets.xml
+++ b/sources/pyside6/PySide6/QtMultimediaWidgets/typesystem_multimediawidgets.xml
@@ -1,45 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtMultimediaWidgets">
+<typesystem package="PySide6.QtMultimediaWidgets"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="QtCore/typesystem_core.xml" generate="no"/>
<load-typesystem name="QtGui/typesystem_gui.xml" generate="no"/>
<load-typesystem name="QtMultimedia/typesystem_multimedia.xml" generate="no"/>
diff --git a/sources/pyside6/PySide6/QtNetwork/CMakeLists.txt b/sources/pyside6/PySide6/QtNetwork/CMakeLists.txt
index 2eb360b61..529e2e86b 100644
--- a/sources/pyside6/PySide6/QtNetwork/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtNetwork/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtNetwork)
set(QtNetwork_DROPPED_ENTRIES )
@@ -15,6 +18,8 @@ ${QtNetwork_GEN_DIR}/qdnstextrecord_wrapper.cpp
${QtNetwork_GEN_DIR}/qhostaddress_wrapper.cpp
${QtNetwork_GEN_DIR}/qhostinfo_wrapper.cpp
${QtNetwork_GEN_DIR}/qhstspolicy_wrapper.cpp
+${QtNetwork_GEN_DIR}/qhttp1configuration_wrapper.cpp
+${QtNetwork_GEN_DIR}/qhttpheaders_wrapper.cpp
${QtNetwork_GEN_DIR}/qhttpmultipart_wrapper.cpp
${QtNetwork_GEN_DIR}/qhttppart_wrapper.cpp
${QtNetwork_GEN_DIR}/qhttp2configuration_wrapper.cpp
@@ -35,7 +40,10 @@ ${QtNetwork_GEN_DIR}/qnetworkproxyfactory_wrapper.cpp
${QtNetwork_GEN_DIR}/qnetworkproxyquery_wrapper.cpp
${QtNetwork_GEN_DIR}/qnetworkreply_wrapper.cpp
${QtNetwork_GEN_DIR}/qnetworkrequest_wrapper.cpp
+${QtNetwork_GEN_DIR}/qnetworkrequestfactory_wrapper.cpp
${QtNetwork_GEN_DIR}/qpassworddigestor_wrapper.cpp
+${QtNetwork_GEN_DIR}/qrestaccessmanager_wrapper.cpp
+${QtNetwork_GEN_DIR}/qrestreply_wrapper.cpp
${QtNetwork_GEN_DIR}/qssl_wrapper.cpp
${QtNetwork_GEN_DIR}/qsslcertificate_wrapper.cpp
${QtNetwork_GEN_DIR}/qsslcertificateextension_wrapper.cpp
@@ -53,7 +61,7 @@ get_property(QtNetwork_disabled_features TARGET Qt${QT_MAJOR_VERSION}::Network
if("ssl" IN_LIST QtNetwork_disabled_features)
list(APPEND QtNetwork_DROPPED_ENTRIES QOcspResponse QSslCipher
QSslConfiguration QSslDiffieHellmanParameters QSslError
- QSslKey QSslPreSharedKeyAuthenticator QSslSocket)
+ QSslKey QSslPreSharedKeyAuthenticator QSslSocket QSslServer)
message(STATUS "Qt${QT_MAJOR_VERSION}Network: Dropping SSL classes")
else()
# Problems with operator==(QSslEllipticCurve,QSslEllipticCurve)
@@ -65,6 +73,7 @@ else()
${QtNetwork_GEN_DIR}/qsslerror_wrapper.cpp
${QtNetwork_GEN_DIR}/qsslkey_wrapper.cpp
${QtNetwork_GEN_DIR}/qsslpresharedkeyauthenticator_wrapper.cpp
+ ${QtNetwork_GEN_DIR}/qsslserver_wrapper.cpp
${QtNetwork_GEN_DIR}/qsslsocket_wrapper.cpp
${QtNetwork_GEN_DIR}/qocspresponse_wrapper.cpp)
message(STATUS "Qt${QT_MAJOR_VERSION}Network: Adding SSL classes")
@@ -76,7 +85,8 @@ if("dtls" IN_LIST QtNetwork_disabled_features)
else()
list(APPEND QtNetwork_SRC
${QtNetwork_GEN_DIR}/qdtls_wrapper.cpp
- ${QtNetwork_GEN_DIR}/qdtlsclientverifier_wrapper.cpp)
+ ${QtNetwork_GEN_DIR}/qdtlsclientverifier_wrapper.cpp
+ ${QtNetwork_GEN_DIR}/qdtlsclientverifier_generatorparameters_wrapper.cpp)
message(STATUS "Qt${QT_MAJOR_VERSION}Network: Adding DTLS classes")
endif()
diff --git a/sources/pyside6/PySide6/QtNetwork/typesystem_network.xml b/sources/pyside6/PySide6/QtNetwork/typesystem_network.xml
index 0a9e69521..508043626 100644
--- a/sources/pyside6/PySide6/QtNetwork/typesystem_network.xml
+++ b/sources/pyside6/PySide6/QtNetwork/typesystem_network.xml
@@ -1,62 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtNetwork">
+<typesystem package="PySide6.QtNetwork"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="QtCore/typesystem_core.xml" generate="no"/>
- <rejection class="dtlsopenssl"/>
+ <rejection class="QTlsPrivate"/>
- <enum-type name="QDtlsError" since="5.12"/>
- <enum-type name="QOcspCertificateStatus" since="5.13"/>
- <enum-type name="QOcspRevocationReason" since="5.13"/>
+ <enum-type name="QDtlsError">
+ <configuration condition="QT_CONFIG(ssl)"/>
+ </enum-type>
+ <enum-type name="QOcspCertificateStatus">
+ <configuration condition="QT_CONFIG(ssl)"/>
+ </enum-type>
+ <enum-type name="QOcspRevocationReason">
+ <configuration condition="QT_CONFIG(ssl)"/>
+ </enum-type>
- <namespace-type name="QPasswordDigestor" since="5.12">
+ <namespace-type name="QPasswordDigestor">
<extra-includes>
<include file-name="qpassworddigestor.h" location="global"/>
</extra-includes>
</namespace-type>
<namespace-type name="QSsl">
- <enum-type name="AlertLevel" since="6.0"/>
- <enum-type name="AlertType" since="6.0"/>
+ <enum-type name="AlertLevel"/>
+ <enum-type name="AlertType"/>
<enum-type name="AlternativeNameEntryType"/>
<enum-type name="EncodingFormat"/>
<enum-type name="ImplementedClass" since="6.1"/>
@@ -71,7 +42,6 @@
</namespace-type>
<rejection class="QIPv6Address" field-name="c"/>
- <rejection class="dtlsopenssl"/>
<object-type name="QAbstractSocket">
<enum-type name="BindFlag" flags="BindMode"/>
@@ -100,18 +70,28 @@
<value-type name="QDnsServiceRecord"/>
<value-type name="QDnsTextRecord"/>
- <object-type name="QDtls" since="5.12">
+ <object-type name="QDtls">
<enum-type name="HandshakeState"/>
+ <configuration condition="QT_CONFIG(dtls)"/>
+ </object-type>
+ <object-type name="QDtlsClientVerifier">
+ <configuration condition="QT_CONFIG(dtls)"/>
+ <value-type name="GeneratorParameters">
+ <configuration condition="QT_CONFIG(dtls)"/>
+ </value-type>
</object-type>
- <object-type name="QDtlsClientVerifier"/>
- <value-type name="QHstsPolicy" since="5.9">
+ <value-type name="QHstsPolicy">
<enum-type name="PolicyFlag" flags="PolicyFlags"/>
</value-type>
+ <value-type name="QHttp1Configuration"/>
+ <value-type name="QHttpHeaders" since="6.7">
+ <enum-type name="WellKnownHeader"/>
+ </value-type>
<object-type name="QHttpMultiPart">
<enum-type name="ContentType"/>
</object-type>
- <value-type name="QHttpPart" since="5.9"/>
+ <value-type name="QHttpPart"/>
<value-type name="QHttp2Configuration"/>
<object-type name="QTcpServer">
@@ -124,15 +104,17 @@
<remove-default-expression/>
<remove-argument/>
</modify-argument>
- <modify-argument index="return">
- <replace-type modified-type="(retval, timeOut)"/>
+ <modify-argument index="return" pyi-type="Tuple[bool, bool]">
+ <replace-type modified-type="(retval, timedOut)"/>
</modify-argument>
<inject-code class="target" position="beginning">
<insert-template name="fix_args,bool*"/>
</inject-code>
</modify-function>
</object-type>
- <value-type name="QOcspResponse" since="5.13"/>
+ <value-type name="QOcspResponse">
+ <configuration condition="QT_CONFIG(ssl)"/>
+ </value-type>
<object-type name="QTcpSocket"/>
<object-type name="QUdpSocket">
<modify-function signature="readDatagram(char*,qint64,QHostAddress*,quint16*)" allow-thread="yes">
@@ -147,7 +129,7 @@
<remove-default-expression/>
<remove-argument/>
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[PySide6.QtCore.QByteArray, PySide6.QtNetwork.QHostAddress, int]">
<replace-type modified-type="(data, address, port)"/>
</modify-argument>
<inject-code class="target" position="beginning" file="../glue/qtnetwork.cpp" snippet="qudpsocket-readdatagram"/>
@@ -172,8 +154,8 @@
<inject-code class="target" position="beginning">
<insert-template name="fix_args,bool*"/>
</inject-code>
- <modify-argument index="return">
- <replace-type modified-type="(retval, timeOut)"/>
+ <modify-argument index="return" pyi-type="Tuple[bool, bool]">
+ <replace-type modified-type="(retval, timedOut)"/>
</modify-argument>
</modify-function>
@@ -206,15 +188,16 @@
<object-type name="QNetworkInformation">
<enum-type name="Reachability"/>
<enum-type name="Feature" flags="Features"/>
+ <enum-type name="TransportMedium" since="6.3"/>
</object-type>
<object-type name="QNetworkCookieJar"/>
- <value-type name="QNetworkDatagram" since="5.8"/>
+ <value-type name="QNetworkDatagram"/>
<object-type name="QNetworkReply">
<enum-type name="NetworkError"/>
</object-type>
- <value-type name="QHostAddress" hash-function="qHash">
- <enum-type name="ConversionModeFlag" flags="ConversionMode" since="5.8"/>
+ <value-type name="QHostAddress">
+ <enum-type name="ConversionModeFlag" flags="ConversionMode"/>
<enum-type name="SpecialAddress"/>
<!-- ### QHostAddress(QIPv6Address) does this -->
<modify-function signature="QHostAddress(const quint8*)" remove="all"/>
@@ -223,6 +206,8 @@
</value-type>
<value-type name="QHostInfo">
+ <inject-code class="native" position="beginning" file="../glue/qtnetwork.cpp"
+ snippet="qhostinfo-lookuphost-functor"/>
<enum-type name="HostInfoError"/>
<add-function signature="lookupHost(const QString &amp;,PyCallable)">
<inject-code class="target" position="beginning"
@@ -232,12 +217,14 @@
</value-type>
<value-type name="QNetworkAddressEntry">
- <enum-type name="DnsEligibilityStatus" since="5.11"/>
+ <enum-type name="DnsEligibilityStatus"/>
+ <configuration condition="#ifndef QT_NO_NETWORKINTERFACE"/>
</value-type>
<value-type name="QNetworkInterface">
<enum-type name="InterfaceFlag" flags="InterfaceFlags"/>
- <enum-type name="InterfaceType" since="5.11"/>
+ <enum-type name="InterfaceType"/>
+ <configuration condition="#ifndef QT_NO_NETWORKINTERFACE"/>
</value-type>
<value-type name="QNetworkProxy">
@@ -272,43 +259,193 @@
</value-type>
<value-type name="QNetworkRequest">
<enum-type name="Attribute"/>
- <enum-type name="LoadControl" since="4.7"/>
- <enum-type name="Priority" since="4.7"/>
+ <enum-type name="LoadControl"/>
+ <enum-type name="Priority"/>
<enum-type name="CacheLoadControl"/>
<enum-type name="KnownHeaders"/>
- <enum-type name="RedirectPolicy" since="5.9"/>
- <enum-type name="TransferTimeoutConstant" since="5.15"/>
+ <enum-type name="RedirectPolicy"/>
+ <enum-type name="TransferTimeoutConstant"/>
</value-type>
-
+ <value-type name="QNetworkRequestFactory" since="6.7"/>
<object-type name="QAbstractNetworkCache"/>
<object-type name="QNetworkDiskCache"/>
<value-type name="QNetworkCacheMetaData"/>
- <object-type name="QSctpServer"/>
- <object-type name="QSctpSocket"/>
+ <object-type name="QRestAccessManager" since="6.7">
+ <inject-code class="native" position="beginning" file="../glue/qtnetwork.cpp"
+ snippet="qrestaccessmanager-functor"/>
+
+ <add-function signature="deleteResource(QNetworkRequest@request@,QObject*@context@,PyCallable*@slot@)"
+ return-type="QNetworkReply*">
+ <inject-code class="target" position="beginning" file="../glue/qtnetwork.cpp"
+ snippet="qrestaccessmanager-callback"/>
+ </add-function>
+
+ <add-function signature="get(QNetworkRequest@request@,QObject*@context@,PyCallable*@slot@)"
+ return-type="QNetworkReply*">
+ <inject-code class="target" position="beginning" file="../glue/qtnetwork.cpp"
+ snippet="qrestaccessmanager-callback"/>
+ </add-function>
+ <add-function signature="get(QNetworkRequest@request@,QByteArray@data@,QObject*@context@,PyCallable*@slot@)"
+ return-type="QNetworkReply*">
+ <inject-code class="target" position="beginning" file="../glue/qtnetwork.cpp"
+ snippet="qrestaccessmanager-data-callback"/>
+ </add-function>
+ <add-function signature="get(QNetworkRequest@request@,QIODevice*@data@,QObject*@context@,PyCallable*@slot@)"
+ return-type="QNetworkReply*">
+ <inject-code class="target" position="beginning" file="../glue/qtnetwork.cpp"
+ snippet="qrestaccessmanager-data-callback"/>
+ </add-function>
+ <add-function signature="get(QNetworkRequest@request@,QJsonDocument@data@,QObject*@context@,PyCallable*@slot@)"
+ return-type="QNetworkReply*">
+ <inject-code class="target" position="beginning" file="../glue/qtnetwork.cpp"
+ snippet="qrestaccessmanager-data-callback"/>
+ </add-function>
+
+ <add-function signature="head(QNetworkRequest@request@,QObject*@context@,PyCallable*@slot@)"
+ return-type="QNetworkReply*">
+ <inject-code class="target" position="beginning" file="../glue/qtnetwork.cpp"
+ snippet="qrestaccessmanager-callback"/>
+ </add-function>
+
+ <add-function signature="patch(QNetworkRequest@request@,QByteArray@data@,QObject*@context@,PyCallable*@slot@)"
+ return-type="QNetworkReply*">
+ <inject-code class="target" position="beginning" file="../glue/qtnetwork.cpp"
+ snippet="qrestaccessmanager-data-callback"/>
+ </add-function>
+ <add-function signature="patch(QNetworkRequest@request@,QIODevice*@data@,QObject*@context@,PyCallable*@slot@)"
+ return-type="QNetworkReply*">
+ <inject-code class="target" position="beginning" file="../glue/qtnetwork.cpp"
+ snippet="qrestaccessmanager-data-callback"/>
+ </add-function>
+ <add-function signature="patch(QNetworkRequest@request@,QJsonDocument@data@,QObject*@context@,PyCallable*@slot@)"
+ return-type="QNetworkReply*">
+ <inject-code class="target" position="beginning" file="../glue/qtnetwork.cpp"
+ snippet="qrestaccessmanager-data-callback"/>
+ </add-function>
+ <add-function signature="patch(QNetworkRequest@request@,QVariantMap@data@,QObject*@context@,PyCallable*@slot@)"
+ return-type="QNetworkReply*">
+ <inject-code class="target" position="beginning" file="../glue/qtnetwork.cpp"
+ snippet="qrestaccessmanager-data-callback"/>
+ </add-function>
+
+ <add-function signature="post(QNetworkRequest@request@,QByteArray@data@,QObject*@context@,PyCallable*@slot@)"
+ return-type="QNetworkReply*">
+ <inject-code class="target" position="beginning" file="../glue/qtnetwork.cpp"
+ snippet="qrestaccessmanager-data-callback"/>
+ </add-function>
+ <add-function signature="post(QNetworkRequest@request@,QHttpMultiPart*@data@,QObject*@context@,PyCallable*@slot@)"
+ return-type="QNetworkReply*">
+ <inject-code class="target" position="beginning" file="../glue/qtnetwork.cpp"
+ snippet="qrestaccessmanager-data-callback"/>
+ </add-function>
+ <add-function signature="post(QNetworkRequest@request@,QIODevice*@data@,QObject*@context@,PyCallable*@slot@)"
+ return-type="QNetworkReply*">
+ <inject-code class="target" position="beginning" file="../glue/qtnetwork.cpp"
+ snippet="qrestaccessmanager-data-callback"/>
+ </add-function>
+ <add-function signature="post(QNetworkRequest@request@,QJsonDocument@data@,QObject*@context@,PyCallable*@slot@)"
+ return-type="QNetworkReply*">
+ <inject-code class="target" position="beginning" file="../glue/qtnetwork.cpp"
+ snippet="qrestaccessmanager-data-callback"/>
+ </add-function>
+ <add-function signature="post(QNetworkRequest@request@,QVariantMap@data@,QObject*@context@,PyCallable*@slot@)"
+ return-type="QNetworkReply*">
+ <inject-code class="target" position="beginning" file="../glue/qtnetwork.cpp"
+ snippet="qrestaccessmanager-data-callback"/>
+ </add-function>
+
+ <add-function signature="put(QNetworkRequest@request@,QByteArray@data@,QObject*@context@,PyCallable*@slot@)"
+ return-type="QNetworkReply*">
+ <inject-code class="target" position="beginning" file="../glue/qtnetwork.cpp"
+ snippet="qrestaccessmanager-data-callback"/>
+ </add-function>
+ <add-function signature="put(QNetworkRequest@request@,QHttpMultiPart*@data@,QObject*@context@,PyCallable*@slot@)"
+ return-type="QNetworkReply*">
+ <inject-code class="target" position="beginning" file="../glue/qtnetwork.cpp"
+ snippet="qrestaccessmanager-data-callback"/>
+ </add-function>
+ <add-function signature="put(QNetworkRequest@request@,QIODevice*@data@,QObject*@context@,PyCallable*@slot@)"
+ return-type="QNetworkReply*">
+ <inject-code class="target" position="beginning" file="../glue/qtnetwork.cpp"
+ snippet="qrestaccessmanager-data-callback"/>
+ </add-function>
+ <add-function signature="put(QNetworkRequest@request@,QJsonDocument@data@,QObject*@context@,PyCallable*@slot@)"
+ return-type="QNetworkReply*">
+ <inject-code class="target" position="beginning" file="../glue/qtnetwork.cpp"
+ snippet="qrestaccessmanager-data-callback"/>
+ </add-function>
+ <add-function signature="put(QNetworkRequest@request@,QVariantMap@data@,QObject*@context@,PyCallable*@slot@)"
+ return-type="QNetworkReply*">
+ <inject-code class="target" position="beginning" file="../glue/qtnetwork.cpp"
+ snippet="qrestaccessmanager-data-callback"/>
+ </add-function>
+
+ <add-function signature="sendCustomRequest(QNetworkRequest@request@,QByteArray@method@,QByteArray@data@,QObject*@context@,PyCallable*@slot@)"
+ return-type="QNetworkReply*">
+ <inject-code class="target" position="beginning" file="../glue/qtnetwork.cpp"
+ snippet="qrestaccessmanager-method-data-callback"/>
+ </add-function>
+ <add-function signature="sendCustomRequest(QNetworkRequest@request@,QByteArray@method@,QHttpMultiPart*@data@,QObject*@context@,PyCallable*@slot@)"
+ return-type="QNetworkReply*">
+ <inject-code class="target" position="beginning" file="../glue/qtnetwork.cpp"
+ snippet="qrestaccessmanager-method-data-callback"/>
+ </add-function>
+ <add-function signature="sendCustomRequest(QNetworkRequest@request@,QByteArray@method@,QIODevice*@data@,QObject*@context@,PyCallable*@slot@)"
+ return-type="QNetworkReply*">
+ <inject-code class="target" position="beginning" file="../glue/qtnetwork.cpp"
+ snippet="qrestaccessmanager-method-data-callback"/>
+ </add-function>
+ </object-type>
+
+ <object-type name="QRestReply" since="6.7">
+ <add-function signature="readJson()" return-type="PyObject">
+ <modify-argument index="return"
+ pyi-type="Tuple[Optional[PySide6.QtCore.QJsonDocument],PySide6.QtCore.QJsonParseError]"/>
+ <inject-code class="target" position="beginning" file="../glue/qtnetwork.cpp"
+ snippet="qrestreply-readjson"/>
+ </add-function>
+ </object-type>
+
+ <object-type name="QSctpServer">
+ <configuration condition="QT_CONFIG(sctp)"/>
+ </object-type>
+ <object-type name="QSctpSocket">
+ <configuration condition="QT_CONFIG(sctp)"/>
+ </object-type>
<!-- The following entries may be present in the system or not. Keep this section organized. -->
<value-type name="QSslCertificate">
- <enum-type name="PatternSyntax" since="5.15"/>
+ <enum-type name="PatternSyntax"/>
<enum-type name="SubjectInfo"/>
+ <configuration condition="QT_CONFIG(ssl)"/>
</value-type>
- <value-type name="QSslCertificateExtension"/>
+ <value-type name="QSslCertificateExtension">
+ <configuration condition="QT_CONFIG(ssl)"/>
+ </value-type>
- <value-type name="QSslCipher"/>
+ <value-type name="QSslCipher">
+ <configuration condition="QT_CONFIG(ssl)"/>
+ </value-type>
<value-type name="QSslConfiguration">
<enum-type name="NextProtocolNegotiationStatus"/>
+ <configuration condition="QT_CONFIG(ssl)"/>
</value-type>
- <value-type name="QSslDiffieHellmanParameters" since="5.8">
+ <value-type name="QSslDiffieHellmanParameters">
<enum-type name="Error"/>
+ <configuration condition="QT_CONFIG(ssl)"/>
</value-type>
- <value-type name="QSslEllipticCurve"/>
+ <value-type name="QSslEllipticCurve">
+ <configuration condition="QT_CONFIG(ssl)"/>
+ </value-type>
<value-type name="QSslError">
<enum-type name="SslError"/>
+ <configuration condition="QT_CONFIG(ssl)"/>
</value-type>
<value-type name="QSslKey"/>
@@ -317,9 +454,16 @@
<enum-type name="PeerVerifyMode"/>
<modify-function signature="connectToHostEncrypted(const QString&amp;,quint16,QFlags&lt;QIODeviceBase::OpenModeFlag>,QAbstractSocket::NetworkLayerProtocol)" allow-thread="yes"/>
<modify-function signature="waitForEncrypted(int)" allow-thread="yes"/>
+ <configuration condition="QT_CONFIG(ssl)"/>
</object-type>
- <value-type name="QSslPreSharedKeyAuthenticator"/>
+ <value-type name="QSslPreSharedKeyAuthenticator">
+ <configuration condition="QT_CONFIG(ssl)"/>
+ </value-type>
+
+ <object-type name="QSslServer" since="6.4">
+ <configuration condition="QT_CONFIG(ssl)"/>
+ </object-type>
<!-- The above entries may be present in the system or not. Keep this section organized. -->
</typesystem>
diff --git a/sources/pyside6/PySide6/QtNetworkAuth/CMakeLists.txt b/sources/pyside6/PySide6/QtNetworkAuth/CMakeLists.txt
index 3313c9d3b..4d9498e4d 100644
--- a/sources/pyside6/PySide6/QtNetworkAuth/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtNetworkAuth/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtNetworkAuth)
set(QtNetworkAuth_SRC
@@ -23,8 +26,6 @@ set(QtNetworkAuth_include_dirs ${QtNetworkAuth_SOURCE_DIR}
${QtNetworkAuth_GEN_DIR})
set(QtNetworkAuth_libraries pyside6
- ${Qt${QT_MAJOR_VERSION}Core_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Network_LIBRARIES}
${Qt${QT_MAJOR_VERSION}NetworkAuth_LIBRARIES})
set(QtNetworkAuth_deps QtNetwork)
diff --git a/sources/pyside6/PySide6/QtNetworkAuth/typesystem_networkauth.xml b/sources/pyside6/PySide6/QtNetworkAuth/typesystem_networkauth.xml
index 37d0a6573..bedfc5a28 100644
--- a/sources/pyside6/PySide6/QtNetworkAuth/typesystem_networkauth.xml
+++ b/sources/pyside6/PySide6/QtNetworkAuth/typesystem_networkauth.xml
@@ -1,57 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtNetworkAuth">
+<typesystem package="PySide6.QtNetworkAuth"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="QtNetwork/typesystem_network.xml" generate="no"/>
<object-type name="QAbstractOAuth">
<enum-type name="ContentType"/>
<enum-type name="Error"/>
<enum-type name="Stage"/>
<enum-type name="Status"/>
+ <inject-code class="native" position="beginning" file="../glue/qtnetworkauth.cpp"
+ snippet="qabstractoauth-lookuphost-functor"/>
<modify-function signature="setReplyHandler(QAbstractOAuthReplyHandler*)">
<modify-argument index="1">
<define-ownership class="target" owner="c++"/>
</modify-argument>
</modify-function>
+ <add-function signature="setModifyParametersFunction(PyObject* @modifyParametersFunction@)">
+ <inject-code class="target" position="beginning" file="../glue/qtnetworkauth.cpp" snippet="qabstractoauth-setmodifyparametersfunction"/>
+ </add-function>
</object-type>
<object-type name="QAbstractOAuth2">
<modify-function signature="head(const QUrl&amp;,const QMap&lt;QString,QVariant&gt;&amp;)">
diff --git a/sources/pyside6/PySide6/QtNfc/CMakeLists.txt b/sources/pyside6/PySide6/QtNfc/CMakeLists.txt
new file mode 100644
index 000000000..b94249a55
--- /dev/null
+++ b/sources/pyside6/PySide6/QtNfc/CMakeLists.txt
@@ -0,0 +1,38 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+project(QtNfc)
+
+set(QtNfc_SRC
+ ${QtNfc_GEN_DIR}/qndeffilter_record_wrapper.cpp
+ ${QtNfc_GEN_DIR}/qndeffilter_wrapper.cpp
+ ${QtNfc_GEN_DIR}/qndefmessage_wrapper.cpp
+ ${QtNfc_GEN_DIR}/qndefnfciconrecord_wrapper.cpp
+ ${QtNfc_GEN_DIR}/qndefnfcsmartposterrecord_wrapper.cpp
+ ${QtNfc_GEN_DIR}/qndefrecord_wrapper.cpp
+ ${QtNfc_GEN_DIR}/qndefnfctextrecord_wrapper.cpp
+ ${QtNfc_GEN_DIR}/qndefnfcurirecord_wrapper.cpp
+ ${QtNfc_GEN_DIR}/qnearfieldmanager_wrapper.cpp
+ ${QtNfc_GEN_DIR}/qnearfieldtarget_wrapper.cpp
+ ${QtNfc_GEN_DIR}/qnearfieldtarget_requestid_wrapper.cpp
+# module is always needed
+ ${QtNfc_GEN_DIR}/qtnfc_module_wrapper.cpp)
+
+set(QtNfc_include_dirs ${QtNfc_SOURCE_DIR}
+ ${QtNfc_BINARY_DIR}
+ ${Qt${QT_MAJOR_VERSION}Core_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}Nfc_INCLUDE_DIRS}
+ ${libpyside_SOURCE_DIR}
+ ${QtCore_GEN_DIR})
+
+set(QtNfc_libraries pyside6
+ ${Qt${QT_MAJOR_VERSION}Nfc_LIBRARIES})
+
+set(QtNfc_deps QtCore)
+
+create_pyside_module(NAME QtNfc
+ INCLUDE_DIRS QtNfc_include_dirs
+ LIBRARIES QtNfc_libraries
+ DEPS QtNfc_deps
+ TYPESYSTEM_PATH QtNfc_SOURCE_DIR
+ SOURCES QtNfc_SRC)
diff --git a/sources/pyside6/PySide6/QtNfc/typesystem_nfc.xml b/sources/pyside6/PySide6/QtNfc/typesystem_nfc.xml
new file mode 100644
index 000000000..b548227f0
--- /dev/null
+++ b/sources/pyside6/PySide6/QtNfc/typesystem_nfc.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+-->
+<typesystem package="PySide6.QtNfc"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
+ <load-typesystem name="QtCore/typesystem_core.xml" generate="no"/>
+ <value-type name="QNdefFilter">
+ <value-type name="Record"/>
+ </value-type>
+ <value-type name="QNdefMessage"/>
+ <value-type name="QNdefNfcIconRecord"/>
+ <value-type name="QNdefNfcSmartPosterRecord">
+ <enum-type name="Action"/>
+ </value-type>
+ <value-type name="QNdefNfcTextRecord">
+ <enum-type name="Encoding"/>
+ </value-type>
+ <value-type name="QNdefNfcUriRecord"/>
+ <value-type name="QNdefRecord">
+ <enum-type name="TypeNameFormat"/>
+ </value-type>
+ <object-type name="QNearFieldManager">
+ <enum-type name="AdapterState"/>
+ </object-type>
+ <object-type name="QNearFieldTarget">
+ <enum-type name="AccessMethod" flags="AccessMethods"/>
+ <enum-type name="Error"/>
+ <enum-type name="Type"/>
+ <value-type name="RequestId"/>
+ </object-type>
+ <!-- QtNetwork is pulled in via QtNfcDepends. -->
+ <suppress-warning text="^Scoped enum 'Q(Ocsp)|(Dtls).*' does not have a type entry.*$"/>
+</typesystem>
diff --git a/sources/pyside6/PySide6/QtOpenGL/CMakeLists.txt b/sources/pyside6/PySide6/QtOpenGL/CMakeLists.txt
index 03c3fbdb0..5bf8b5f3b 100644
--- a/sources/pyside6/PySide6/QtOpenGL/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtOpenGL/CMakeLists.txt
@@ -1,7 +1,14 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtOpenGL)
set(QtOpenGL_DROPPED_ENTRIES)
+set(QtOpenGL_static_sources
+ "${QtOpenGL_SOURCE_DIR}/glue/utils.cpp"
+)
+
set(QtOpenGL_SRC
${QtOpenGL_GEN_DIR}/qabstractopenglfunctions_wrapper.cpp
${QtOpenGL_GEN_DIR}/qopengldebuglogger_wrapper.cpp
@@ -32,39 +39,41 @@ if("opengles2" IN_LIST QtGui_enabled_features)
list(APPEND QtOpenGL_SRC ${QtOpenGL_GEN_DIR}/qopenglfunctions_es2_wrapper.cpp)
message(STATUS "Qt${QT_MAJOR_VERSION}Gui: Dropping Desktop OpenGL classes (GLES2)")
else()
+ list(APPEND QtOpenGL_DROPPED_ENTRIES QOpenGLFunctions_ES2)
list(APPEND QtOpenGL_SRC
- ${QtOpenGL_GEN_DIR}/qopenglfunctions_1_0_wrapper.cpp
- ${QtOpenGL_GEN_DIR}/qopenglfunctions_1_1_wrapper.cpp
- ${QtOpenGL_GEN_DIR}/qopenglfunctions_1_2_wrapper.cpp
- ${QtOpenGL_GEN_DIR}/qopenglfunctions_1_3_wrapper.cpp
- ${QtOpenGL_GEN_DIR}/qopenglfunctions_1_4_wrapper.cpp
- ${QtOpenGL_GEN_DIR}/qopenglfunctions_1_5_wrapper.cpp
- ${QtOpenGL_GEN_DIR}/qopenglfunctions_2_0_wrapper.cpp
- ${QtOpenGL_GEN_DIR}/qopenglfunctions_2_1_wrapper.cpp
- ${QtOpenGL_GEN_DIR}/qopenglfunctions_3_0_wrapper.cpp
- ${QtOpenGL_GEN_DIR}/qopenglfunctions_3_1_wrapper.cpp
- ${QtOpenGL_GEN_DIR}/qopenglfunctions_3_2_compatibility_wrapper.cpp
- ${QtOpenGL_GEN_DIR}/qopenglfunctions_3_2_core_wrapper.cpp
- ${QtOpenGL_GEN_DIR}/qopenglfunctions_3_3_compatibility_wrapper.cpp
- ${QtOpenGL_GEN_DIR}/qopenglfunctions_3_3_core_wrapper.cpp
- ${QtOpenGL_GEN_DIR}/qopenglfunctions_4_0_compatibility_wrapper.cpp
- ${QtOpenGL_GEN_DIR}/qopenglfunctions_4_0_core_wrapper.cpp
- ${QtOpenGL_GEN_DIR}/qopenglfunctions_4_1_compatibility_wrapper.cpp
- ${QtOpenGL_GEN_DIR}/qopenglfunctions_4_1_core_wrapper.cpp
- ${QtOpenGL_GEN_DIR}/qopenglfunctions_4_2_compatibility_wrapper.cpp
- ${QtOpenGL_GEN_DIR}/qopenglfunctions_4_2_core_wrapper.cpp
- ${QtOpenGL_GEN_DIR}/qopenglfunctions_4_3_compatibility_wrapper.cpp
- ${QtOpenGL_GEN_DIR}/qopenglfunctions_4_3_core_wrapper.cpp
- ${QtOpenGL_GEN_DIR}/qopenglfunctions_4_4_compatibility_wrapper.cpp
- ${QtOpenGL_GEN_DIR}/qopenglfunctions_4_4_core_wrapper.cpp
- ${QtOpenGL_GEN_DIR}/qopenglfunctions_4_5_compatibility_wrapper.cpp
- ${QtOpenGL_GEN_DIR}/qopenglfunctions_4_5_core_wrapper.cpp
- ${QtOpenGL_GEN_DIR}/qopenglversionfunctionsfactory_wrapper.cpp
- ${QtOpenGL_GEN_DIR}/qopengltimemonitor_wrapper.cpp
- ${QtOpenGL_GEN_DIR}/qopengltimerquery_wrapper.cpp)
+ ${QtOpenGL_GEN_DIR}/qopenglfunctions_1_0_wrapper.cpp
+ ${QtOpenGL_GEN_DIR}/qopenglfunctions_1_1_wrapper.cpp
+ ${QtOpenGL_GEN_DIR}/qopenglfunctions_1_2_wrapper.cpp
+ ${QtOpenGL_GEN_DIR}/qopenglfunctions_1_3_wrapper.cpp
+ ${QtOpenGL_GEN_DIR}/qopenglfunctions_1_4_wrapper.cpp
+ ${QtOpenGL_GEN_DIR}/qopenglfunctions_1_5_wrapper.cpp
+ ${QtOpenGL_GEN_DIR}/qopenglfunctions_2_0_wrapper.cpp
+ ${QtOpenGL_GEN_DIR}/qopenglfunctions_2_1_wrapper.cpp
+ ${QtOpenGL_GEN_DIR}/qopenglfunctions_3_0_wrapper.cpp
+ ${QtOpenGL_GEN_DIR}/qopenglfunctions_3_1_wrapper.cpp
+ ${QtOpenGL_GEN_DIR}/qopenglfunctions_3_2_compatibility_wrapper.cpp
+ ${QtOpenGL_GEN_DIR}/qopenglfunctions_3_2_core_wrapper.cpp
+ ${QtOpenGL_GEN_DIR}/qopenglfunctions_3_3_compatibility_wrapper.cpp
+ ${QtOpenGL_GEN_DIR}/qopenglfunctions_3_3_core_wrapper.cpp
+ ${QtOpenGL_GEN_DIR}/qopenglfunctions_4_0_compatibility_wrapper.cpp
+ ${QtOpenGL_GEN_DIR}/qopenglfunctions_4_0_core_wrapper.cpp
+ ${QtOpenGL_GEN_DIR}/qopenglfunctions_4_1_compatibility_wrapper.cpp
+ ${QtOpenGL_GEN_DIR}/qopenglfunctions_4_1_core_wrapper.cpp
+ ${QtOpenGL_GEN_DIR}/qopenglfunctions_4_2_compatibility_wrapper.cpp
+ ${QtOpenGL_GEN_DIR}/qopenglfunctions_4_2_core_wrapper.cpp
+ ${QtOpenGL_GEN_DIR}/qopenglfunctions_4_3_compatibility_wrapper.cpp
+ ${QtOpenGL_GEN_DIR}/qopenglfunctions_4_3_core_wrapper.cpp
+ ${QtOpenGL_GEN_DIR}/qopenglfunctions_4_4_compatibility_wrapper.cpp
+ ${QtOpenGL_GEN_DIR}/qopenglfunctions_4_4_core_wrapper.cpp
+ ${QtOpenGL_GEN_DIR}/qopenglfunctions_4_5_compatibility_wrapper.cpp
+ ${QtOpenGL_GEN_DIR}/qopenglfunctions_4_5_core_wrapper.cpp
+ ${QtOpenGL_GEN_DIR}/qopenglversionfunctionsfactory_wrapper.cpp
+ ${QtOpenGL_GEN_DIR}/qopengltimemonitor_wrapper.cpp
+ ${QtOpenGL_GEN_DIR}/qopengltimerquery_wrapper.cpp)
message(STATUS "Qt${QT_MAJOR_VERSION}OpenGL: Adding Desktop OpenGL classes")
endif()
+
configure_file("${QtOpenGL_SOURCE_DIR}/QtOpenGL_global.post.h.in"
"${QtOpenGL_BINARY_DIR}/QtOpenGL_global.post.h" @ONLY)
@@ -78,8 +87,6 @@ set(QtOpenGL_include_dirs ${QtOpenGL_SOURCE_DIR}
${QtOpenGL_GEN_DIR}
)
set(QtOpenGL_libraries pyside6
- ${Qt${QT_MAJOR_VERSION}Core_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Gui_LIBRARIES}
${Qt${QT_MAJOR_VERSION}OpenGL_LIBRARIES})
set(QtOpenGL_deps QtGui)
@@ -89,4 +96,5 @@ create_pyside_module(NAME QtOpenGL
DEPS QtOpenGL_deps
TYPESYSTEM_PATH QtOpenGL_SOURCE_DIR
SOURCES QtOpenGL_SRC
+ STATIC_SOURCES QtOpenGL_static_sources
DROPPED_ENTRIES QtOpenGL_DROPPED_ENTRIES)
diff --git a/sources/pyside6/PySide6/QtOpenGL/QtOpenGL_global.post.h.in b/sources/pyside6/PySide6/QtOpenGL/QtOpenGL_global.post.h.in
index 5df8043c7..571b245a3 100644
--- a/sources/pyside6/PySide6/QtOpenGL/QtOpenGL_global.post.h.in
+++ b/sources/pyside6/PySide6/QtOpenGL/QtOpenGL_global.post.h.in
@@ -1,34 +1,10 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <QtGui/qtgui-config.h>
-// OpenGL functions are not in the QtGui module header
-#if QT_CONFIG(opengl)
+
+#if QT_CONFIG(opengles2)
+# include <QtOpenGL/qopenglfunctions_es2.h>
+#elif QT_CONFIG(opengl)
# include <QtOpenGL/qopenglfunctions_1_0.h>
# include <QtOpenGL/qopenglfunctions_1_1.h>
# include <QtOpenGL/qopenglfunctions_1_2.h>
@@ -57,6 +33,3 @@
# include <QtOpenGL/qopenglfunctions_4_5_core.h>
# include <QtOpenGL/qopenglversionfunctionsfactory.h>
#endif
-#if QT_CONFIG(opengles2)
-# include <QtOpenGL/qopenglfunctions_es2.h>
-#endif
diff --git a/sources/pyside6/PySide6/QtOpenGL/glue/utils.cpp b/sources/pyside6/PySide6/QtOpenGL/glue/utils.cpp
new file mode 100644
index 000000000..27a8a9fdf
--- /dev/null
+++ b/sources/pyside6/PySide6/QtOpenGL/glue/utils.cpp
@@ -0,0 +1,40 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#include <QtGui/QOpenGLFunctions>
+
+// Return the number of return values of the glGetBoolean/Double/Integerv functions
+// cf https://registry.khronos.org/OpenGL-Refpages/gl4/html/glGet.xhtml
+int glGetVReturnSize(GLenum pname)
+{
+ switch (pname) {
+ case GL_ALIASED_LINE_WIDTH_RANGE:
+ case GL_DEPTH_RANGE:
+ case GL_MAX_VIEWPORT_DIMS:
+#if !QT_CONFIG(opengles2)
+ case GL_POINT_SIZE_RANGE:
+ case GL_SMOOTH_LINE_WIDTH_RANGE:
+ case GL_VIEWPORT_BOUNDS_RANGE:
+#endif
+ return 2;
+ case GL_BLEND_COLOR:
+ case GL_COLOR_CLEAR_VALUE:
+ case GL_COLOR_WRITEMASK:
+ case GL_SCISSOR_BOX:
+ case GL_VIEWPORT:
+ return 4;
+ case GL_COMPRESSED_TEXTURE_FORMATS:
+ return GL_NUM_COMPRESSED_TEXTURE_FORMATS;
+ default:
+ break;
+ }
+ return 1;
+}
+
+// Return the number of return values of the indexed
+// glGetBoolean/Double/Integeri_v functions
+// cf https://registry.khronos.org/OpenGL-Refpages/gl4/html/glGet.xhtml
+int glGetI_VReturnSize(GLenum pname)
+{
+ return pname == GL_VIEWPORT ? 4 : 1;
+}
diff --git a/sources/pyside6/PySide6/QtOpenGL/typesystem_glgeti_v_includes.xml b/sources/pyside6/PySide6/QtOpenGL/typesystem_glgeti_v_includes.xml
new file mode 100644
index 000000000..56ff7bcda
--- /dev/null
+++ b/sources/pyside6/PySide6/QtOpenGL/typesystem_glgeti_v_includes.xml
@@ -0,0 +1 @@
+<inject-code class="native" position="beginning" file="../glue/qtopengl.cpp" snippet="glgeti-vreturnsize_declaration"/>
diff --git a/sources/pyside6/PySide6/QtOpenGL/typesystem_glgeti_v_modifications.xml b/sources/pyside6/PySide6/QtOpenGL/typesystem_glgeti_v_modifications.xml
new file mode 100644
index 000000000..f0e6084cf
--- /dev/null
+++ b/sources/pyside6/PySide6/QtOpenGL/typesystem_glgeti_v_modifications.xml
@@ -0,0 +1,18 @@
+<modify-function signature="glGetBooleani_v(GLenum,GLuint,GLboolean*)">
+ <modify-argument index="return" pyi-type="Union[bool,numpy.ndarray]">
+ <replace-type modified-type="PyObject"/>
+ </modify-argument>
+ <modify-argument index="3">
+ <remove-argument/>
+ </modify-argument>
+ <inject-code class="target" position="beginning" file="../glue/qtgui.cpp" snippet="qopenglextrafunctions-glgetbooleani-v"/>
+</modify-function>
+<modify-function signature="glGetIntegeri_v(GLenum,GLuint,GLint*)">
+ <modify-argument index="return" pyi-type="Union[int,numpy.ndarray]">
+ <replace-type modified-type="PyObject"/>
+ </modify-argument>
+ <modify-argument index="3">
+ <remove-argument/>
+ </modify-argument>
+ <inject-code class="target" position="beginning" file="../glue/qtgui.cpp" snippet="qopenglextrafunctions-glgetintegeri-v"/>
+</modify-function>
diff --git a/sources/pyside6/PySide6/QtOpenGL/typesystem_glgetv_includes.xml b/sources/pyside6/PySide6/QtOpenGL/typesystem_glgetv_includes.xml
new file mode 100644
index 000000000..3f48f19b8
--- /dev/null
+++ b/sources/pyside6/PySide6/QtOpenGL/typesystem_glgetv_includes.xml
@@ -0,0 +1,5 @@
+<extra-includes>
+ <include file-name="QtCore/QVarLengthArray" location="global"/>
+ <include file-name="sbkcpptonumpy.h" location="global"/>
+</extra-includes>
+<inject-code class="native" position="beginning" file="../glue/qtopengl.cpp" snippet="glgetvreturnsize_declaration"/>
diff --git a/sources/pyside6/PySide6/QtOpenGL/typesystem_glgetv_modifications.xml b/sources/pyside6/PySide6/QtOpenGL/typesystem_glgetv_modifications.xml
new file mode 100644
index 000000000..b5fab57ba
--- /dev/null
+++ b/sources/pyside6/PySide6/QtOpenGL/typesystem_glgetv_modifications.xml
@@ -0,0 +1,36 @@
+<modify-function signature="glGetBooleanv(GLenum,GLboolean*)">
+ <modify-argument index="return" pyi-type="Union[bool,numpy.ndarray]">
+ <replace-type modified-type="PyObject"/>
+ </modify-argument>
+ <modify-argument index="2">
+ <remove-argument/>
+ </modify-argument>
+ <inject-code class="target" position="beginning" file="../glue/qtgui.cpp" snippet="qopenglfunctions-glgetbooleanv"/>
+</modify-function>
+<modify-function signature="glGetDoublev(GLenum,GLdouble*)">
+ <modify-argument index="return" pyi-type="Union[float,numpy.ndarray]">
+ <replace-type modified-type="PyObject"/>
+ </modify-argument>
+ <modify-argument index="2">
+ <remove-argument/>
+ </modify-argument>
+ <inject-code class="target" position="beginning" file="../glue/qtgui.cpp" snippet="qopenglfunctions-glgetdoublev"/>
+</modify-function>
+<modify-function signature="glGetFloatv(GLenum,GLfloat*)">
+ <modify-argument index="return" pyi-type="Union[float,numpy.ndarray]">
+ <replace-type modified-type="PyObject"/>
+ </modify-argument>
+ <modify-argument index="2">
+ <remove-argument/>
+ </modify-argument>
+ <inject-code class="target" position="beginning" file="../glue/qtgui.cpp" snippet="qopenglfunctions-glgetfloatv"/>
+</modify-function>
+<modify-function signature="glGetIntegerv(GLenum,GLint*)">
+ <modify-argument index="return" pyi-type="Union[int,numpy.ndarray]">
+ <replace-type modified-type="PyObject"/>
+ </modify-argument>
+ <modify-argument index="2">
+ <remove-argument/>
+ </modify-argument>
+ <inject-code class="target" position="beginning" file="../glue/qtgui.cpp" snippet="qopenglfunctions-glgetintegerv"/>
+</modify-function>
diff --git a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl.xml b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl.xml
index 7b59a8c07..efbd16056 100644
--- a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl.xml
+++ b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl.xml
@@ -1,70 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtOpenGL">
+<typesystem package="PySide6.QtOpenGL"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="QtCore/typesystem_core.xml" generate="no" />
<load-typesystem name="QtGui/typesystem_gui.xml" generate="no" />
<load-typesystem name="templates/opengl_common.xml" generate="no" />
- <?if !darwin?>
- <?entity GLint int?>
- <?entity GLuint unsigned int?>
- <?entity GLbyte unsigned char?>
- <?entity GLboolean unsigned char?>
- <?entity GLsizei int?>
- <?entity GLsizeiptr long?>
- <?entity GLintptr long?>
- <?endif?>
-
- <?if darwin?>
- <?entity GLint int32_t?>
- <?entity GLuint uint32_t?>
- <?entity GLbyte uint8_t?>
- <?entity GLboolean uint8_t?>
- <?entity GLsizei int32_t?>
- <?entity GLsizeiptr intptr_t?>
- <?entity GLintptr intptr_t?>
- <?endif?>
-
- <rejection class="^QOpenGL.*$" argument-type="^(const )?GLboolean ?\*$"/>
+ <rejection class="^QOpenGL.*$" argument-type="^const GLboolean ?\*$"/>
<rejection class="^QOpenGL.*$" argument-type="^GLchar\*$"/>
<rejection class="^QOpenGL.*$" argument-type="^(const )?GLchar ?\*(const)?\*$"/>
<rejection class="^QOpenGL.*$" argument-type="^char\*$"/>
@@ -79,44 +24,167 @@
<rejection class="^QOpenGL.*$" argument-type="QOpenGLTextureHelper*"/>
<rejection class="^QOpenGL.*$" argument-type="^(const )?QVector.D ?\*$"/>
<rejection class="^QOpenGL.*$" argument-type="^(const )?void ?\*\*$"/>
+
+ <!-- Reject any non-const array of the version functions -->
<rejection class="^QOpenGLFunctions.*$" function-name="^glGet(Buffer|VertexAttrib)?Pointer.*$"/>
<rejection class="^QOpenGLFunctions.*$" function-name="^glMultiDrawElements.*$"/>
- <!-- Reject any non-const array of the version functions -->
- <rejection class="^QOpenGLFunctions_\d_\d.*$" argument-type="^GL\w+ ?\*$"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glAreTexturesResident"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glCreateBuffers"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glCreateFramebuffers"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glCreateProgramPipelines"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glCreateQueries"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glCreateRenderbuffers"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glCreateSamplers"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glCreateTextures"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glCreateTransformFeedbacks"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glCreateVertexArrays"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glFeedbackBuffer"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGenBuffers"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGenFramebuffers"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGenProgramPipelines"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGenQueries"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGenRenderbuffers"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGenSamplers"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGenTextures"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGenTransformFeedbacks"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGenVertexArrays"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetActiveAtomicCounterBufferiv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetActiveSubroutineUniformiv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetActiveUniformBlockiv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetActiveUniformsiv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetAttachedShaders"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetBufferParameteriv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetClipPlane"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetColorTableParameterfv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetColorTableParameteriv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetConvolutionParameterfv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetConvolutionParameteriv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetFramebufferAttachmentParameteriv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetFramebufferParameteriv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetHistogramParameterfv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetHistogramParameteriv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetInternalformativ"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetLightfv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetLightiv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetMapdv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetMapfv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetMapiv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetMaterialfv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetMaterialiv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetMinmaxParameterfv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetMinmaxParameteriv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetMultisamplefv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetNamedBufferParameteriv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetNamedFramebufferAttachmentParameteriv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetNamedFramebufferParameteriv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetNamedRenderbufferParameteriv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetnMapdv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetnMapfv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetnMapiv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetnPixelMapfv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetnPixelMapuiv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetnPixelMapusv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetnUniformdv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetnUniformfv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetnUniformiv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetnUniformuiv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetPixelMapfv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetPixelMapuiv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetPixelMapusv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetProgramInterfaceiv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetProgramiv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetProgramPipelineiv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetProgramResourceiv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetProgramStageiv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetQueryIndexediv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetQueryiv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetQueryObjectiv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetQueryObjectuiv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetRenderbufferParameteriv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetSamplerParameterfv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetSamplerParameterIiv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetSamplerParameterIuiv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetSamplerParameteriv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetShaderiv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetShaderPrecisionFormat"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetTexEnvfv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetTexEnviv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetTexGendv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetTexGenfv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetTexGeniv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetTexLevelParameterfv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetTexLevelParameteriv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetTexParameterfv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetTexParameterIiv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetTexParameterIuiv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetTexParameteriv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetTextureLevelParameterfv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetTextureLevelParameteriv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetTextureParameterfv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetTextureParameterIiv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetTextureParameterIuiv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetTextureParameteriv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetTransformFeedbacki_v"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetTransformFeedbackiv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetUniformdv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetUniformfv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetUniformiv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetUniformSubroutineuiv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetUniformuiv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetVertexArrayIndexediv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetVertexArrayiv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetVertexAttribdv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetVertexAttribfv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetVertexAttribIiv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetVertexAttribIuiv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetVertexAttribiv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glGetVertexAttribLdv"/>
+ <rejection class="^QOpenGLFunctions_\d_\d.*$" function-name="glSelectBuffer"/>
- <object-type name="QOpenGLBuffer" since="5.0">
+ <object-type name="QOpenGLBuffer">
<enum-type name="Access"/>
<enum-type name="RangeAccessFlag" flags="RangeAccessFlags"/>
<enum-type name="Type"/>
<enum-type name="UsagePattern"/>
+ <modify-function signature="allocate(const void*,int)">
+ <modify-argument index="1" pyi-type="bytes"/>
+ </modify-function>
</object-type>
- <object-type name="QOpenGLDebugLogger" since="5.1">
+ <object-type name="QOpenGLDebugLogger">
<enum-type name="LoggingMode"/>
</object-type>
- <value-type name="QOpenGLDebugMessage" since="5.1">
+ <value-type name="QOpenGLDebugMessage">
<enum-type name="Source" flags="Sources"/>
<enum-type name="Type" flags="Types"/>
<enum-type name="Severity" flags="Severities"/>
</value-type>
- <object-type name="QOpenGLFunctions_1_0" since="5.1">
+ <object-type name="QOpenGLFunctions_1_0">
+ &glgetv_includes;
+ &glgetv_modifications;
&opengl_modifications1_0;
&opengl_modifications1_0_compat;
</object-type>
- <object-type name="QOpenGLFunctions_1_1" since="5.1">
+ <object-type name="QOpenGLFunctions_1_1">
+ &glgetv_includes;
+ &glgetv_modifications;
&opengl_modifications1_0;
&opengl_modifications1_0_compat;
&opengl_modifications1_1;
&opengl_modifications1_1_compat;
</object-type>
- <object-type name="QOpenGLFunctions_1_2" since="5.1">
+ <object-type name="QOpenGLFunctions_1_2">
+ &glgetv_includes;
+ &glgetv_modifications;
&opengl_modifications1_0;
&opengl_modifications1_0_compat;
&opengl_modifications1_1;
&opengl_modifications1_1_compat;
&opengl_modifications1_2_compat;
</object-type>
- <object-type name="QOpenGLFunctions_1_3" since="5.1">
+ <object-type name="QOpenGLFunctions_1_3">
+ &glgetv_includes;
+ &glgetv_modifications;
&opengl_modifications1_0;
&opengl_modifications1_0_compat;
&opengl_modifications1_1;
@@ -124,7 +192,9 @@
&opengl_modifications1_2_compat;
&opengl_modifications1_3_compat;
</object-type>
- <object-type name="QOpenGLFunctions_1_4" since="5.1">
+ <object-type name="QOpenGLFunctions_1_4">
+ &glgetv_includes;
+ &glgetv_modifications;
&opengl_modifications1_0;
&opengl_modifications1_0_compat;
&opengl_modifications1_1;
@@ -134,7 +204,9 @@
&opengl_modifications1_4;
&opengl_modifications1_4_compat;
</object-type>
- <object-type name="QOpenGLFunctions_1_5" since="5.1">
+ <object-type name="QOpenGLFunctions_1_5">
+ &glgetv_includes;
+ &glgetv_modifications;
&opengl_modifications1_0;
&opengl_modifications1_0_compat;
&opengl_modifications1_1;
@@ -144,7 +216,9 @@
&opengl_modifications1_4;
&opengl_modifications1_4_compat;
</object-type>
- <object-type name="QOpenGLFunctions_2_0" since="5.1">
+ <object-type name="QOpenGLFunctions_2_0">
+ &glgetv_includes;
+ &glgetv_modifications;
&opengl_modifications1_0;
&opengl_modifications1_0_compat;
&opengl_modifications1_1;
@@ -156,7 +230,9 @@
&opengl_modifications2_0;
&opengl_modifications2_0_compat;
</object-type>
- <object-type name="QOpenGLFunctions_2_1" since="5.1">
+ <object-type name="QOpenGLFunctions_2_1">
+ &glgetv_includes;
+ &glgetv_modifications;
&opengl_modifications1_0;
&opengl_modifications1_0_compat;
&opengl_modifications1_1;
@@ -169,7 +245,11 @@
&opengl_modifications2_0_compat;
&opengl_modifications2_1;
</object-type>
- <object-type name="QOpenGLFunctions_3_0" since="5.1">
+ <object-type name="QOpenGLFunctions_3_0">
+ &glgetv_includes;
+ &glgeti_v_includes;
+ &glgetv_modifications;
+ &glgeti_v_modifications;
&opengl_modifications1_0;
&opengl_modifications1_0_compat;
&opengl_modifications1_1;
@@ -183,7 +263,11 @@
&opengl_modifications2_1;
&opengl_modifications3_0;
</object-type>
- <object-type name="QOpenGLFunctions_3_1" since="5.1">
+ <object-type name="QOpenGLFunctions_3_1">
+ &glgetv_includes;
+ &glgeti_v_includes;
+ &glgetv_modifications;
+ &glgeti_v_modifications;
&opengl_modifications1_0;
&opengl_modifications1_1;
&opengl_modifications1_4;
@@ -191,7 +275,11 @@
&opengl_modifications2_1;
&opengl_modifications3_0;
</object-type>
- <object-type name="QOpenGLFunctions_3_2_Compatibility" since="5.1">
+ <object-type name="QOpenGLFunctions_3_2_Compatibility">
+ &glgetv_includes;
+ &glgeti_v_includes;
+ &glgetv_modifications;
+ &glgeti_v_modifications;
&opengl_modifications1_0;
&opengl_modifications1_0_compat;
&opengl_modifications1_1;
@@ -205,7 +293,11 @@
&opengl_modifications2_1;
&opengl_modifications3_0;
</object-type>
- <object-type name="QOpenGLFunctions_3_2_Core" since="5.1">
+ <object-type name="QOpenGLFunctions_3_2_Core">
+ &glgetv_includes;
+ &glgeti_v_includes;
+ &glgetv_modifications;
+ &glgeti_v_modifications;
&opengl_modifications1_0;
&opengl_modifications1_1;
&opengl_modifications1_4;
@@ -213,7 +305,11 @@
&opengl_modifications2_1;
&opengl_modifications3_0;
</object-type>
- <object-type name="QOpenGLFunctions_3_3_Compatibility" since="5.1">
+ <object-type name="QOpenGLFunctions_3_3_Compatibility">
+ &glgetv_includes;
+ &glgeti_v_includes;
+ &glgetv_modifications;
+ &glgeti_v_modifications;
&opengl_modifications1_0;
&opengl_modifications1_0_compat;
&opengl_modifications1_1;
@@ -229,7 +325,11 @@
&opengl_modifications3_3;
&opengl_modifications3_3a;
</object-type>
- <object-type name="QOpenGLFunctions_3_3_Core" since="5.1">
+ <object-type name="QOpenGLFunctions_3_3_Core">
+ &glgetv_includes;
+ &glgeti_v_includes;
+ &glgetv_modifications;
+ &glgeti_v_modifications;
&opengl_modifications1_0;
&opengl_modifications1_1;
&opengl_modifications1_4;
@@ -238,7 +338,11 @@
&opengl_modifications3_0;
&opengl_modifications3_3;
</object-type>
- <object-type name="QOpenGLFunctions_4_0_Compatibility" since="5.1">
+ <object-type name="QOpenGLFunctions_4_0_Compatibility">
+ &glgetv_includes;
+ &glgeti_v_includes;
+ &glgetv_modifications;
+ &glgeti_v_modifications;
&opengl_modifications1_0;
&opengl_modifications1_0_compat;
&opengl_modifications1_1;
@@ -255,7 +359,11 @@
&opengl_modifications3_3a;
&opengl_modifications4_0;
</object-type>
- <object-type name="QOpenGLFunctions_4_0_Core" since="5.1">
+ <object-type name="QOpenGLFunctions_4_0_Core">
+ &glgetv_includes;
+ &glgeti_v_includes;
+ &glgetv_modifications;
+ &glgeti_v_modifications;
&opengl_modifications1_0;
&opengl_modifications1_1;
&opengl_modifications1_4;
@@ -265,7 +373,11 @@
&opengl_modifications3_3;
&opengl_modifications4_0;
</object-type>
- <object-type name="QOpenGLFunctions_4_1_Compatibility" since="5.1">
+ <object-type name="QOpenGLFunctions_4_1_Compatibility">
+ &glgetv_includes;
+ &glgeti_v_includes;
+ &glgetv_modifications;
+ &glgeti_v_modifications;
&opengl_modifications1_0;
&opengl_modifications1_0_compat;
&opengl_modifications1_1;
@@ -283,7 +395,11 @@
&opengl_modifications4_1;
&opengl_modifications4_0;
</object-type>
- <object-type name="QOpenGLFunctions_4_1_Core" since="5.1">
+ <object-type name="QOpenGLFunctions_4_1_Core">
+ &glgetv_includes;
+ &glgeti_v_includes;
+ &glgetv_modifications;
+ &glgeti_v_modifications;
&opengl_modifications1_0;
&opengl_modifications1_1;
&opengl_modifications1_4;
@@ -295,7 +411,11 @@
&opengl_modifications4_1;
&opengl_modifications_va;
</object-type>
- <object-type name="QOpenGLFunctions_4_2_Compatibility" since="5.1">
+ <object-type name="QOpenGLFunctions_4_2_Compatibility">
+ &glgetv_includes;
+ &glgeti_v_includes;
+ &glgetv_modifications;
+ &glgeti_v_modifications;
&opengl_modifications1_0;
&opengl_modifications1_0_compat;
&opengl_modifications1_1;
@@ -313,7 +433,11 @@
&opengl_modifications4_0;
&opengl_modifications4_1;
</object-type>
- <object-type name="QOpenGLFunctions_4_2_Core" since="5.1">
+ <object-type name="QOpenGLFunctions_4_2_Core">
+ &glgetv_includes;
+ &glgeti_v_includes;
+ &glgetv_modifications;
+ &glgeti_v_modifications;
&opengl_modifications1_0;
&opengl_modifications1_1;
&opengl_modifications1_4;
@@ -325,7 +449,11 @@
&opengl_modifications4_1;
&opengl_modifications_va;
</object-type>
- <object-type name="QOpenGLFunctions_4_3_Compatibility" since="5.1">
+ <object-type name="QOpenGLFunctions_4_3_Compatibility">
+ &glgetv_includes;
+ &glgeti_v_includes;
+ &glgetv_modifications;
+ &glgeti_v_modifications;
&opengl_modifications1_0;
&opengl_modifications1_0_compat;
&opengl_modifications1_1;
@@ -344,7 +472,11 @@
&opengl_modifications4_1;
&opengl_modifications4_3;
</object-type>
- <object-type name="QOpenGLFunctions_4_3_Core" since="5.1">
+ <object-type name="QOpenGLFunctions_4_3_Core">
+ &glgetv_includes;
+ &glgeti_v_includes;
+ &glgetv_modifications;
+ &glgeti_v_modifications;
&opengl_modifications1_0;
&opengl_modifications1_1;
&opengl_modifications1_4;
@@ -357,7 +489,11 @@
&opengl_modifications4_1;
&opengl_modifications_va;
</object-type>
- <object-type name="QOpenGLFunctions_4_4_Compatibility" since="5.5">
+ <object-type name="QOpenGLFunctions_4_4_Compatibility">
+ &glgetv_includes;
+ &glgeti_v_includes;
+ &glgetv_modifications;
+ &glgeti_v_modifications;
&opengl_modifications1_0;
&opengl_modifications1_0_compat;
&opengl_modifications1_1;
@@ -378,7 +514,11 @@
&opengl_modifications4_4;
&opengl_modifications4_4_core;
</object-type>
- <object-type name="QOpenGLFunctions_4_4_Core" since="5.5">
+ <object-type name="QOpenGLFunctions_4_4_Core">
+ &glgetv_includes;
+ &glgeti_v_includes;
+ &glgetv_modifications;
+ &glgeti_v_modifications;
&opengl_modifications1_0;
&opengl_modifications1_1;
&opengl_modifications1_4;
@@ -393,7 +533,11 @@
&opengl_modifications4_4;
&opengl_modifications4_4_core;
</object-type>
- <object-type name="QOpenGLFunctions_4_5_Compatibility" since="5.5">
+ <object-type name="QOpenGLFunctions_4_5_Compatibility">
+ &glgetv_includes;
+ &glgeti_v_includes;
+ &glgetv_modifications;
+ &glgeti_v_modifications;
&opengl_modifications1_0;
&opengl_modifications1_0_compat;
&opengl_modifications1_1;
@@ -415,7 +559,11 @@
&opengl_modifications4_4_core;
&opengl_modifications4_5;
</object-type>
- <object-type name="QOpenGLFunctions_4_5_Core" since="5.5">
+ <object-type name="QOpenGLFunctions_4_5_Core">
+ &glgetv_includes;
+ &glgeti_v_includes;
+ &glgetv_modifications;
+ &glgeti_v_modifications;
&opengl_modifications1_0;
&opengl_modifications1_1;
&opengl_modifications1_4;
@@ -431,30 +579,58 @@
&opengl_modifications4_5;
&opengl_modifications_va;
</object-type>
- <object-type name="QOpenGLFunctions_ES2" since="5.1">
+ <object-type name="QOpenGLFunctions_ES2">
&opengl_modifications1_0;
&opengl_modifications1_1;
</object-type>
<object-type name="QOpenGLVersionFunctionsFactory">
+ <extra-includes>
+ <include file-name="QtOpenGL/qopenglfunctions_1_0.h" location="global"/>
+ <include file-name="QtOpenGL/qopenglfunctions_1_1.h" location="global"/>
+ <include file-name="QtOpenGL/qopenglfunctions_1_2.h" location="global"/>
+ <include file-name="QtOpenGL/qopenglfunctions_1_3.h" location="global"/>
+ <include file-name="QtOpenGL/qopenglfunctions_1_4.h" location="global"/>
+ <include file-name="QtOpenGL/qopenglfunctions_1_5.h" location="global"/>
+ <include file-name="QtOpenGL/qopenglfunctions_2_0.h" location="global"/>
+ <include file-name="QtOpenGL/qopenglfunctions_2_1.h" location="global"/>
+ <include file-name="QtOpenGL/qopenglfunctions_3_0.h" location="global"/>
+ <include file-name="QtOpenGL/qopenglfunctions_3_1.h" location="global"/>
+ <include file-name="QtOpenGL/qopenglfunctions_3_2_compatibility.h" location="global"/>
+ <include file-name="QtOpenGL/qopenglfunctions_3_2_core.h" location="global"/>
+ <include file-name="QtOpenGL/qopenglfunctions_3_3_compatibility.h" location="global"/>
+ <include file-name="QtOpenGL/qopenglfunctions_3_3_core.h" location="global"/>
+ <include file-name="QtOpenGL/qopenglfunctions_4_0_compatibility.h" location="global"/>
+ <include file-name="QtOpenGL/qopenglfunctions_4_0_core.h" location="global"/>
+ <include file-name="QtOpenGL/qopenglfunctions_4_1_compatibility.h" location="global"/>
+ <include file-name="QtOpenGL/qopenglfunctions_4_1_core.h" location="global"/>
+ <include file-name="QtOpenGL/qopenglfunctions_4_2_compatibility.h" location="global"/>
+ <include file-name="QtOpenGL/qopenglfunctions_4_2_core.h" location="global"/>
+ <include file-name="QtOpenGL/qopenglfunctions_4_3_compatibility.h" location="global"/>
+ <include file-name="QtOpenGL/qopenglfunctions_4_3_core.h" location="global"/>
+ <include file-name="QtOpenGL/qopenglfunctions_4_4_compatibility.h" location="global"/>
+ <include file-name="QtOpenGL/qopenglfunctions_4_4_core.h" location="global"/>
+ <include file-name="QtOpenGL/qopenglfunctions_4_5_compatibility.h" location="global"/>
+ <include file-name="QtOpenGL/qopenglfunctions_4_5_core.h" location="global"/>
+ </extra-includes>
<modify-function signature="get(const QOpenGLVersionProfile &amp;,QOpenGLContext *)">
<inject-code class="target" position="beginning" file="../glue/qtopengl.cpp"
snippet="qopenglversionfunctionsfactory-get"/>
</modify-function>
</object-type>
- <object-type name="QOpenGLFramebufferObject" since="5.0">
+ <object-type name="QOpenGLFramebufferObject">
<enum-type name="Attachment"/>
- <enum-type name="FramebufferRestorePolicy" since="5.7"/>
+ <enum-type name="FramebufferRestorePolicy"/>
</object-type>
<value-type name="QOpenGLFramebufferObjectFormat"/>
- <object-type name="QAbstractOpenGLFunctions" since="5.1"/>
- <value-type name="QOpenGLPixelTransferOptions"/>
- <object-type name="QOpenGLShader" since="5.0">
+ <object-type name="QAbstractOpenGLFunctions"/>
+ <value-type name="QOpenGLPixelTransferOptions"/>
+ <object-type name="QOpenGLShader">
<enum-type name="ShaderTypeBit" flags="ShaderType"/>
</object-type>
<object-type name="QOpenGLPaintDevice"/>
- <object-type name="QOpenGLShaderProgram" since="5.0">
+ <object-type name="QOpenGLShaderProgram">
<modify-function signature="setAttributeArray(int,const float*,int,int)">
<modify-argument index="2"><array/></modify-argument>
</modify-function>
@@ -470,19 +646,19 @@
<modify-function signature="setUniformValueArray(int,const float*,int,int)">
<modify-argument index="2"><array/></modify-argument>
</modify-function>
- <modify-function signature="setUniformValueArray(int,const &GLint;*,int)">
+ <modify-function signature="setUniformValueArray(int,const GLint*,int)">
<modify-argument index="2"><array/></modify-argument>
</modify-function>
- <modify-function signature="setUniformValueArray(int,const &GLuint;*,int)">
+ <modify-function signature="setUniformValueArray(int,const GLuint*,int)">
<modify-argument index="2"><array/></modify-argument>
</modify-function>
<modify-function signature="setUniformValueArray(const char*,const float*,int,int)">
<modify-argument index="2"><array/></modify-argument>
</modify-function>
- <modify-function signature="setUniformValueArray(const char*,const &GLint;*,int)">
+ <modify-function signature="setUniformValueArray(const char*,const GLint*,int)">
<modify-argument index="2"><array/></modify-argument>
</modify-function>
- <modify-function signature="setUniformValueArray(const char*,const &GLuint;*,int)">
+ <modify-function signature="setUniformValueArray(const char*,const GLuint*,int)">
<modify-argument index="2"><array/></modify-argument>
</modify-function>
<!-- Add explicit signatures for the setUniformValue functions -->
@@ -491,17 +667,17 @@
<add-function signature="setUniformValue1f(const char*, float)" return-type="void">
<inject-code file="../glue/qtopengl.cpp" snippet="qopenglshaderprogram_setuniformvalue_float"/>
</add-function>
- <add-function signature="setUniformValue1i(const char*, &GLint;)" return-type="void">
+ <add-function signature="setUniformValue1i(const char*, GLint)" return-type="void">
<inject-code file="../glue/qtopengl.cpp" snippet="qopenglshaderprogram_setuniformvalue_int"/>
</add-function>
- <add-function signature="setUniformValue1f(&GLint;, float)" return-type="void">
+ <add-function signature="setUniformValue1f(GLint, float)" return-type="void">
<inject-code file="../glue/qtopengl.cpp" snippet="qopenglshaderprogram_setuniformvalue_float"/>
</add-function>
- <add-function signature="setUniformValue1i(&GLint;, &GLint;)" return-type="void">
+ <add-function signature="setUniformValue1i(GLint, GLint)" return-type="void">
<inject-code file="../glue/qtopengl.cpp" snippet="qopenglshaderprogram_setuniformvalue_int"/>
</add-function>
</object-type>
- <object-type name="QOpenGLTexture" since="5.2">
+ <object-type name="QOpenGLTexture">
<enum-type name="BindingTarget"/>
<enum-type name="CoordinateDirection"/>
<enum-type name="ComparisonFunction"/>
@@ -527,16 +703,21 @@
<object-type name="QOpenGLTextureBlitter">
<enum-type name="Origin"/>
</object-type>
- <object-type name="QOpenGLTimeMonitor" since="5.1"/>
- <object-type name="QOpenGLTimerQuery" since="5.1"/>
- <object-type name="QOpenGLWindow" since="5.4">
+ <object-type name="QOpenGLTimeMonitor"/>
+ <object-type name="QOpenGLTimerQuery"/>
+ <object-type name="QOpenGLWindow">
<enum-type name="UpdateBehavior"/>
</object-type>
- <value-type name="QOpenGLVersionProfile" since="5.1"/>
+ <value-type name="QOpenGLVersionProfile"/>
<object-type name="QOpenGLVertexArrayObject">
- <object-type name="Binder"/>
+ <object-type name="Binder">
+ <add-function signature="__enter__()" return-type="QOpenGLVertexArrayObject::Binder">
+ <inject-code file="../glue/qtopengl.cpp" snippet="vao-binder-enter"/>
+ </add-function>
+ <add-function signature="__exit__(PyObject*,PyObject*,PyObject*)">
+ <inject-code file="../glue/qtopengl.cpp" snippet="vao-binder-exit"/>
+ </add-function>
+ </object-type>
</object-type>
- <suppress-warning text="^There's no user provided way.*QOpenGLFunctions_\d_\d.*::glIndex.*$"/>
-
</typesystem>
diff --git a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications1_0.xml b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications1_0.xml
index 5652ad6b6..152efad9e 100644
--- a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications1_0.xml
+++ b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications1_0.xml
@@ -1,42 +1,6 @@
<!--
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
<modify-function signature="^glGetStringi?\(.*$">
<modify-argument index="return">
diff --git a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications1_0_compat.xml b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications1_0_compat.xml
index e5a81eff4..a5f8ee77a 100644
--- a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications1_0_compat.xml
+++ b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications1_0_compat.xml
@@ -1,48 +1,12 @@
<!--
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
<modify-function signature="^glBitmap\(.*$" remove="all"/>
<modify-function signature="^glColor[34][a-z]{1,2}v\(.*$">
<modify-argument index="1"><array/></modify-argument>
</modify-function>
-<modify-function signature="glClipPlane(&GLuint;,const double *)">
+<modify-function signature="glClipPlane(GLenum,const GLdouble*)">
<modify-argument index="2"><array/></modify-argument>
</modify-function>
<modify-function signature="^glEvalCoord\d[a-z]{1,2}v\(.*$">
diff --git a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications1_1.xml b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications1_1.xml
index 9383fb83f..1601a19c3 100644
--- a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications1_1.xml
+++ b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications1_1.xml
@@ -1,42 +1,6 @@
<!--
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
<!-- Except glGenLists/glDeleteLists -->
<modify-function signature="^glDelete[A-KM-Z].*s\(.*$">
diff --git a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications1_1_compat.xml b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications1_1_compat.xml
index c58cda87a..8e9293fd6 100644
--- a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications1_1_compat.xml
+++ b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications1_1_compat.xml
@@ -1,42 +1,6 @@
<!--
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
<modify-function signature="^glPrioritizeTextures\(.*$">
<modify-argument index="2"><array/></modify-argument>
diff --git a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications1_2_compat.xml b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications1_2_compat.xml
index c13b09b5b..58d395e3a 100644
--- a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications1_2_compat.xml
+++ b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications1_2_compat.xml
@@ -1,42 +1,6 @@
<!--
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
<modify-function signature="^glColorTableParameter[fi]v\(.*$">
<modify-argument index="3"><array/></modify-argument>
diff --git a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications1_3_compat.xml b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications1_3_compat.xml
index e35f3b334..90903b33b 100644
--- a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications1_3_compat.xml
+++ b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications1_3_compat.xml
@@ -1,42 +1,6 @@
<!--
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
<modify-function signature="^gl(Load|Mult)TransposeMatrix[df]\(.*$">
<modify-argument index="1"><array/></modify-argument>
diff --git a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications1_4.xml b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications1_4.xml
index 1102daea8..7cd5f74ea 100644
--- a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications1_4.xml
+++ b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications1_4.xml
@@ -1,42 +1,6 @@
<!--
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
<modify-function signature="^glMultiDrawArrays\(.*$">
<modify-argument index="2"><array/></modify-argument>
diff --git a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications1_4_compat.xml b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications1_4_compat.xml
index 4cb75d418..56da84116 100644
--- a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications1_4_compat.xml
+++ b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications1_4_compat.xml
@@ -1,42 +1,6 @@
<!--
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
<modify-function signature="^glFogCoord[df]v\(.*$">
<modify-argument index="1"><array/></modify-argument>
diff --git a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications2_0.xml b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications2_0.xml
index 28a424e1a..5b342087e 100644
--- a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications2_0.xml
+++ b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications2_0.xml
@@ -1,42 +1,6 @@
<!--
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
<modify-function signature="^glDrawBuffers\(.*$">
<modify-argument index="2"><array/></modify-argument>
diff --git a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications2_1.xml b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications2_1.xml
index af515ed8c..741fbf7d8 100644
--- a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications2_1.xml
+++ b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications2_1.xml
@@ -1,42 +1,6 @@
<!--
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
<modify-function signature="^glUniformMatrix\dx\d[a-z]v\(.*$">
<modify-argument index="4"><array/></modify-argument>
diff --git a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications3_0.xml b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications3_0.xml
index 8377e440b..782400768 100644
--- a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications3_0.xml
+++ b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications3_0.xml
@@ -1,42 +1,6 @@
<!--
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
<modify-function signature="^glClearBufferu?[fi]v\(.*$">
<modify-argument index="3"><array/></modify-argument>
diff --git a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications3_3.xml b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications3_3.xml
index 7f4717170..c7e883b87 100644
--- a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications3_3.xml
+++ b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications3_3.xml
@@ -1,42 +1,6 @@
<!--
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
<modify-function signature="^glSamplerParameterI?u?[dfi]v\(.*$">
<modify-argument index="3"><array/></modify-argument>
diff --git a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications3_3a.xml b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications3_3a.xml
index 4bf2bc8f5..95956d164 100644
--- a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications3_3a.xml
+++ b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications3_3a.xml
@@ -1,42 +1,6 @@
<!--
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
Present from 3.3..4.5 except 4.4 Core/4.5 Core
-->
diff --git a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications4_0.xml b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications4_0.xml
index cf2e47a5c..a66a74895 100644
--- a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications4_0.xml
+++ b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications4_0.xml
@@ -1,42 +1,6 @@
<!--
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
<modify-function signature="^glPatchParameterfv\(.*$">
<modify-argument index="2"><array/></modify-argument>
diff --git a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications4_1.xml b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications4_1.xml
index ec78f58e5..0fb6cd49a 100644
--- a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications4_1.xml
+++ b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications4_1.xml
@@ -1,46 +1,28 @@
<!--
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
<modify-function signature="^gl(DepthRange|Scissor|Viewport)Arrayv\(.*$">
<modify-argument index="3"><array/></modify-argument>
</modify-function>
+<modify-function signature="glGetDoublei_v(GLenum,GLuint,GLdouble*)">
+ <modify-argument index="return" pyi-type="Union[float,numpy.ndarray]">
+ <replace-type modified-type="PyObject"/>
+ </modify-argument>
+ <modify-argument index="3">
+ <remove-argument/>
+ </modify-argument>
+ <inject-code class="target" position="beginning" file="../glue/qtgui.cpp" snippet="qopenglextrafunctions-glgetdoublei-v"/>
+</modify-function>
+<modify-function signature="glGetFloati_v(GLenum,GLuint,GLfloat*)">
+ <modify-argument index="return" pyi-type="Union[float,numpy.ndarray]">
+ <replace-type modified-type="PyObject"/>
+ </modify-argument>
+ <modify-argument index="3">
+ <remove-argument/>
+ </modify-argument>
+ <inject-code class="target" position="beginning" file="../glue/qtgui.cpp" snippet="qopenglextrafunctions-glgetfloati-v"/>
+</modify-function>
<modify-function signature="^glProgramUniform\du?[dfi]v\(.*$">
<modify-argument index="4"><array/></modify-argument>
</modify-function>
@@ -53,6 +35,6 @@
<modify-function signature="^gl(Scissor|Viewport)Indexedf?v\(.*$">
<modify-argument index="2"><array/></modify-argument>
</modify-function>
-<modify-function signature="glShaderBinary(&GLint;,const &GLuint;*,&GLuint;,const void *,&GLint;)">
+<modify-function signature="^glShaderBinary\(GLsizei,const GLuint\*,.*$">
<modify-argument index="2"><array/></modify-argument>
</modify-function>
diff --git a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications4_3.xml b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications4_3.xml
index b3c2b618d..74298677d 100644
--- a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications4_3.xml
+++ b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications4_3.xml
@@ -1,42 +1,6 @@
<!--
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
<modify-function signature="^glInvalidate(Sub)?Framebuffer\(.*$">
<modify-argument index="3"><array/></modify-argument>
diff --git a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications4_4.xml b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications4_4.xml
index d4a2762d9..cf90e4e0b 100644
--- a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications4_4.xml
+++ b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications4_4.xml
@@ -1,52 +1,16 @@
<!--
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
<modify-function signature="^glBindBuffersBase\(.*$">
<modify-argument index="4"><array/></modify-argument>
</modify-function>
-<modify-function signature="glBindBuffersRange(&GLuint;, &GLuint;,&GLint;,const &GLuint; *,const &GLintptr;*,const &GLsizeiptr;*)">
+<modify-function signature="glBindBuffersRange(GLenum,GLuint,GLsizei,const GLuint*,const GLintptr*,const GLsizeiptr*)">
<modify-argument index="4"><array/></modify-argument>
<modify-argument index="5"><array/></modify-argument>
<modify-argument index="6"><array/></modify-argument>
</modify-function>
-<modify-function signature="glBindVertexBuffers(&GLuint;,&GLint;,const &GLuint; *,const &GLintptr;*,const &GLsizei;*)">
+<modify-function signature="glBindVertexBuffers(GLuint,GLsizei,const GLuint*,const GLintptr*,const GLsizei*)">
<modify-argument index="3"><array/></modify-argument>
<modify-argument index="4"><array/></modify-argument>
<modify-argument index="5"><array/></modify-argument>
diff --git a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications4_4_core.xml b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications4_4_core.xml
index c747997aa..3f1291db7 100644
--- a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications4_4_core.xml
+++ b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications4_4_core.xml
@@ -1,42 +1,6 @@
<!--
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
<modify-function signature="^glDebugMessageControl\(.*$">
<modify-argument index="5"><array/></modify-argument>
diff --git a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications4_5.xml b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications4_5.xml
index dbea4092f..826727736 100644
--- a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications4_5.xml
+++ b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications4_5.xml
@@ -1,42 +1,6 @@
<!--
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
<modify-function signature="^glClearNamedFramebufferu?[fi]v\(.*$">
<modify-argument index="4"><array/></modify-argument>
@@ -50,7 +14,7 @@
<modify-function signature="^glTextureParameterI?u?[fi]v\(.*$">
<modify-argument index="3"><array/></modify-argument>
</modify-function>
-<modify-function signature="glVertexArrayVertexBuffers(&GLuint;, &GLuint;,&GLsizei;,const &GLuint; *,const &GLintptr;*,const &GLsizei;*)">
+<modify-function signature="glVertexArrayVertexBuffers(GLuint, GLuint,GLsizei,const GLuint *,const GLintptr*,const GLsizei*)">
<modify-argument index="4"><array/></modify-argument>
<modify-argument index="5"><array/></modify-argument>
<modify-argument index="6"><array/></modify-argument>
diff --git a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications4_5_core.xml b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications4_5_core.xml
index 5cd5161f8..5b7c30fe5 100644
--- a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications4_5_core.xml
+++ b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications4_5_core.xml
@@ -1,41 +1,5 @@
<!--
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
Remove me!
-->
diff --git a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications_va.xml b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications_va.xml
index ae4d49ab1..624281645 100644
--- a/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications_va.xml
+++ b/sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications_va.xml
@@ -1,42 +1,6 @@
<!--
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
<modify-function signature="^glVertexAttrib[IL]?\dN?u?[bdfis]v\(.*$">
<modify-argument index="2"><array/></modify-argument>
diff --git a/sources/pyside6/PySide6/QtOpenGLWidgets/CMakeLists.txt b/sources/pyside6/PySide6/QtOpenGLWidgets/CMakeLists.txt
index b8b6664b5..8c7386130 100644
--- a/sources/pyside6/PySide6/QtOpenGLWidgets/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtOpenGLWidgets/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtOpenGLWidgets)
set(QtOpenGLWidgets_SRC
@@ -18,10 +21,6 @@ set(QtOpenGLWidgets_include_dirs ${QtOpenGLWidgets_SOURCE_DIR}
${QtOpenGLWidgets_GEN_DIR})
set(QtOpenGLWidgets_libraries pyside6
- ${Qt${QT_MAJOR_VERSION}Core_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Gui_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}OpenGL_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Widgets_LIBRARIES}
${Qt${QT_MAJOR_VERSION}OpenGLWidgets_LIBRARIES})
set(QtOpenGLWidgets_deps QtOpenGL QtWidgets)
diff --git a/sources/pyside6/PySide6/QtOpenGLWidgets/typesystem_openglwidgets.xml b/sources/pyside6/PySide6/QtOpenGLWidgets/typesystem_openglwidgets.xml
index d08f8833d..1e308a3f2 100644
--- a/sources/pyside6/PySide6/QtOpenGLWidgets/typesystem_openglwidgets.xml
+++ b/sources/pyside6/PySide6/QtOpenGLWidgets/typesystem_openglwidgets.xml
@@ -1,50 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtOpenGLWidgets">
+<typesystem package="PySide6.QtOpenGLWidgets"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="QtCore/typesystem_core.xml" generate="no" />
<load-typesystem name="QtGui/typesystem_gui.xml" generate="no" />
<load-typesystem name="QtWidgets/typesystem_widgets.xml" generate="no" />
<object-type name="QOpenGLWidget">
<enum-type name="UpdateBehavior"/>
+ <enum-type name="TargetBuffer" since="6.5"/>
</object-type>
</typesystem>
diff --git a/sources/pyside6/PySide6/QtPdf/CMakeLists.txt b/sources/pyside6/PySide6/QtPdf/CMakeLists.txt
new file mode 100644
index 000000000..5b9c1457d
--- /dev/null
+++ b/sources/pyside6/PySide6/QtPdf/CMakeLists.txt
@@ -0,0 +1,42 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+project(QtPdf)
+
+set(QtPdf_SRC
+${QtPdf_GEN_DIR}/qpdfbookmarkmodel_wrapper.cpp
+${QtPdf_GEN_DIR}/qpdfdocument_wrapper.cpp
+${QtPdf_GEN_DIR}/qpdfdocumentrenderoptions_wrapper.cpp
+${QtPdf_GEN_DIR}/qpdfpagerenderer_wrapper.cpp
+${QtPdf_GEN_DIR}/qpdflink_wrapper.cpp
+${QtPdf_GEN_DIR}/qpdflinkmodel_wrapper.cpp
+${QtPdf_GEN_DIR}/qpdfpagenavigator_wrapper.cpp
+${QtPdf_GEN_DIR}/qpdfsearchmodel_wrapper.cpp
+${QtPdf_GEN_DIR}/qpdfselection_wrapper.cpp
+# module is always needed
+${QtPdf_GEN_DIR}/qtpdf_module_wrapper.cpp
+)
+
+set(QtPdf_include_dirs ${QtPdf_SOURCE_DIR}
+ ${QtPdf_BINARY_DIR}
+ ${pyside6_SOURCE_DIR}
+ ${Qt${QT_MAJOR_VERSION}Core_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}Gui_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}Network_INCLUDE_DIRS}
+ ${libpyside_SOURCE_DIR}
+ ${QtCore_GEN_DIR}
+ ${QtGui_GEN_DIR}
+ ${QtNetwork_GEN_DIR})
+
+set(QtPdf_libraries pyside6
+ ${Qt${QT_MAJOR_VERSION}Pdf_LIBRARIES})
+
+set(QtPdf_deps QtCore QtGui QtNetwork)
+
+create_pyside_module(NAME QtPdf
+ INCLUDE_DIRS QtPdf_include_dirs
+ LIBRARIES QtPdf_libraries
+ DEPS QtPdf_deps
+ TYPESYSTEM_PATH QtPdf_SOURCE_DIR
+ SOURCES QtPdf_SRC
+ TYPESYSTEM_NAME ${QtPdf_BINARY_DIR}/typesystem_pdf.xml)
diff --git a/sources/pyside6/PySide6/QtPdf/typesystem_pdf.xml b/sources/pyside6/PySide6/QtPdf/typesystem_pdf.xml
new file mode 100644
index 000000000..e008e4880
--- /dev/null
+++ b/sources/pyside6/PySide6/QtPdf/typesystem_pdf.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+<!--
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+-->
+<typesystem package="PySide6.QtPdf"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
+ <load-typesystem name="QtCore/typesystem_core.xml" generate="no"/>
+ <load-typesystem name="QtGui/typesystem_gui.xml" generate="no"/>
+ <object-type name="QPdfBookmarkModel">
+ <enum-type name="Role" python-type="IntEnum"/>
+ </object-type>
+ <object-type name="QPdfDocument">
+ <enum-type name="Status"/>
+ <enum-type name="Error"/>
+ <enum-type name="MetaDataField"/>
+ <enum-type name="PageModelRole"/>
+ </object-type>
+ <value-type name="QPdfDocumentRenderOptions">
+ <enum-type name="RenderFlag" flags="RenderFlags" since="6.5"/>
+ <enum-type name="Rotation" since="6.5"/>
+ </value-type>
+ <object-type name="QPdfPageRenderer">
+ <enum-type name="RenderMode"/>
+ </object-type>
+ <value-type name="QPdfLink"/>
+ <object-type name="QPdfPageNavigator"/>
+ <object-type name="QPdfSearchModel">
+ <enum-type name="Role"/>
+ </object-type>
+ <object-type name="QPdfLinkModel" since="6.6">
+ <enum-type name="Role"/>
+ </object-type>
+ <object-type name="QPdfSelection"/>
+</typesystem>
diff --git a/sources/pyside6/PySide6/QtPdfWidgets/CMakeLists.txt b/sources/pyside6/PySide6/QtPdfWidgets/CMakeLists.txt
new file mode 100644
index 000000000..de1335f8a
--- /dev/null
+++ b/sources/pyside6/PySide6/QtPdfWidgets/CMakeLists.txt
@@ -0,0 +1,39 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+project(QtPdfWidgets)
+
+set(QtPdfWidgets_SRC
+${QtPdfWidgets_GEN_DIR}/qpdfpageselector_wrapper.cpp
+${QtPdfWidgets_GEN_DIR}/qpdfview_wrapper.cpp
+# module is always needed
+${QtPdfWidgets_GEN_DIR}/qtpdfwidgets_module_wrapper.cpp
+)
+
+set(QtPdfWidgets_include_dirs ${QtPdfWidgets_SOURCE_DIR}
+ ${QtPdfWidgets_BINARY_DIR}
+ ${pyside6_SOURCE_DIR}
+ ${Qt${QT_MAJOR_VERSION}Core_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}Gui_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}Network_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}Widgets_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}Pdf_INCLUDE_DIRS}
+ ${libpyside_SOURCE_DIR}
+ ${QtCore_GEN_DIR}
+ ${QtGui_GEN_DIR}
+ ${QtNetwork_GEN_DIR}
+ ${QtWidgets_GEN_DIR}
+ ${QtPdf_GEN_DIR})
+
+set(QtPdfWidgets_libraries pyside6
+ ${Qt${QT_MAJOR_VERSION}PdfWidgets_LIBRARIES})
+
+set(QtPdfWidgets_deps QtCore QtGui QtNetwork QtWidgets QtPdf)
+
+create_pyside_module(NAME QtPdfWidgets
+ INCLUDE_DIRS QtPdfWidgets_include_dirs
+ LIBRARIES QtPdfWidgets_libraries
+ DEPS QtPdfWidgets_deps
+ TYPESYSTEM_PATH QtPdfWidgets_SOURCE_DIR
+ SOURCES QtPdfWidgets_SRC
+ TYPESYSTEM_NAME ${QtPdfWidgets_BINARY_DIR}/typesystem_pdfwidgets.xml)
diff --git a/sources/pyside6/PySide6/QtPdfWidgets/typesystem_pdfwidgets.xml b/sources/pyside6/PySide6/QtPdfWidgets/typesystem_pdfwidgets.xml
new file mode 100644
index 000000000..5df72075c
--- /dev/null
+++ b/sources/pyside6/PySide6/QtPdfWidgets/typesystem_pdfwidgets.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<!--
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+-->
+<typesystem package="PySide6.QtPdfWidgets"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
+ <load-typesystem name="QtCore/typesystem_core.xml" generate="no"/>
+ <load-typesystem name="QtGui/typesystem_gui.xml" generate="no"/>
+ <load-typesystem name="QtWidgets/typesystem_widgets.xml" generate="no"/>
+ <load-typesystem name="QtPdf/typesystem_pdf.xml" generate="no"/>
+ <object-type name="QPdfPageSelector" since="6.6"/>
+ <object-type name="QPdfView">
+ <enum-type name="PageMode"/>
+ <enum-type name="ZoomMode"/>
+ </object-type>
+</typesystem>
diff --git a/sources/pyside6/PySide6/QtPositioning/CMakeLists.txt b/sources/pyside6/PySide6/QtPositioning/CMakeLists.txt
index 125c18ce5..cad6dcb74 100644
--- a/sources/pyside6/PySide6/QtPositioning/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtPositioning/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtPositioning)
set(QtPositioning_OPTIONAL_SRC )
@@ -20,6 +23,7 @@ ${QtPositioning_GEN_DIR}/qgeosatelliteinfo_wrapper.cpp
${QtPositioning_GEN_DIR}/qgeosatelliteinfosource_wrapper.cpp
${QtPositioning_GEN_DIR}/qgeoshape_wrapper.cpp
${QtPositioning_GEN_DIR}/qnmeapositioninfosource_wrapper.cpp
+${QtPositioning_GEN_DIR}/qnmeasatelliteinfosource_wrapper.cpp
# module is always needed
${QtPositioning_GEN_DIR}/qtpositioning_module_wrapper.cpp
)
@@ -43,3 +47,14 @@ create_pyside_module(NAME QtPositioning
TYPESYSTEM_PATH QtPositioning_SOURCE_DIR
SOURCES QtPositioning_SRC
DROPPED_ENTRIES QtPositioning_DROPPED_ENTRIES)
+
+if (APPLE)
+ # The QtLocation permission plugin cannot be linked to QtCore.abi3.so because for a framework
+ # build of Qt, the QtCore framework bundle must be loaded before calling
+ # Q_IMPORT_PLUGIN(QDarwinLocationPermissionPlugin)
+ set(permission_plugin_name "QDarwinLocationPermissionPlugin")
+ set(permission_plugin "${QT_CMAKE_EXPORT_NAMESPACE}::${permission_plugin_name}")
+ set_target_properties(QtPositioning PROPERTIES "_qt_has_${permission_plugin_name}_usage_description" TRUE)
+ # importing the plugin
+ qt6_import_plugins(QtPositioning INCLUDE ${permission_plugin})
+endif()
diff --git a/sources/pyside6/PySide6/QtPositioning/typesystem_positioning.xml b/sources/pyside6/PySide6/QtPositioning/typesystem_positioning.xml
index 145561d1f..8dac3f00d 100644
--- a/sources/pyside6/PySide6/QtPositioning/typesystem_positioning.xml
+++ b/sources/pyside6/PySide6/QtPositioning/typesystem_positioning.xml
@@ -1,46 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtPositioning">
+<typesystem package="PySide6.QtPositioning"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="QtCore/typesystem_core.xml" generate="no"/>
+ <inject-code class="native" position="beginning" file="../glue/qtpositioning.cpp"
+ snippet="darwin_location_permission_plugin"/>
<value-type name="QGeoAddress"/>
<value-type name="QGeoAreaMonitorInfo"/>
<object-type name="QGeoAreaMonitorSource">
@@ -54,7 +21,7 @@
<enum-type name="CoordinateFormat"/>
</value-type>
<value-type name="QGeoPath"/>
- <value-type name="QGeoPolygon" since="5.10"/>
+ <value-type name="QGeoPolygon"/>
<value-type name="QGeoPositionInfo">
<enum-type name="Attribute"/>
</value-type>
@@ -77,4 +44,8 @@
<object-type name="QNmeaPositionInfoSource">
<enum-type name="UpdateMode"/>
</object-type>
+ <object-type name="QNmeaSatelliteInfoSource">
+ <enum-type name="UpdateMode"/>
+ <enum-type name="SatelliteInfoParseStatus"/>
+ </object-type>
</typesystem>
diff --git a/sources/pyside6/PySide6/QtPrintSupport/CMakeLists.txt b/sources/pyside6/PySide6/QtPrintSupport/CMakeLists.txt
index 70a3d8f67..fb0db5f83 100644
--- a/sources/pyside6/PySide6/QtPrintSupport/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtPrintSupport/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtPrintSupport)
set(QtPrintSupport_SRC
@@ -22,14 +25,11 @@ set(QtPrintSupport_include_dirs ${QtPrintSupport_SOURCE_DIR}
${libpyside_SOURCE_DIR}
${QtCore_GEN_DIR}
${QtGui_GEN_DIR}
- ${QtWidgets_GEN_DIR}
- )
+ ${QtWidgets_GEN_DIR})
+
set(QtPrintSupport_libraries pyside6
- ${Qt${QT_MAJOR_VERSION}Core_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Gui_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Widgets_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}PrintSupport_LIBRARIES}
- )
+ ${Qt${QT_MAJOR_VERSION}PrintSupport_LIBRARIES})
+
set(QtPrintSupport_deps QtWidgets)
create_pyside_module(NAME QtPrintSupport
INCLUDE_DIRS QtPrintSupport_include_dirs
diff --git a/sources/pyside6/PySide6/QtPrintSupport/typesystem_printsupport.xml b/sources/pyside6/PySide6/QtPrintSupport/typesystem_printsupport.xml
index f8c739897..46973a5f9 100644
--- a/sources/pyside6/PySide6/QtPrintSupport/typesystem_printsupport.xml
+++ b/sources/pyside6/PySide6/QtPrintSupport/typesystem_printsupport.xml
@@ -1,45 +1,10 @@
<?xml version="1.0"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtPrintSupport">
+<typesystem package="PySide6.QtPrintSupport"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="QtWidgets/typesystem_widgets.xml" generate="no"/>
<load-typesystem name="QtPrintSupport/typesystem_printsupport_common.xml" generate="yes"/>
</typesystem>
diff --git a/sources/pyside6/PySide6/QtPrintSupport/typesystem_printsupport_common.xml b/sources/pyside6/PySide6/QtPrintSupport/typesystem_printsupport_common.xml
index 5b5c01276..126902b73 100644
--- a/sources/pyside6/PySide6/QtPrintSupport/typesystem_printsupport_common.xml
+++ b/sources/pyside6/PySide6/QtPrintSupport/typesystem_printsupport_common.xml
@@ -1,43 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
<typesystem package="PySide6.QtPrintSupport">
<load-typesystem name="QtWidgets/typesystem_widgets.xml" generate="no"/>
diff --git a/sources/pyside6/PySide6/QtQml/CMakeLists.txt b/sources/pyside6/PySide6/QtQml/CMakeLists.txt
index 2fd253b25..87de1d7dd 100644
--- a/sources/pyside6/PySide6/QtQml/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtQml/CMakeLists.txt
@@ -1,6 +1,14 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtQml)
-set(QtQml_registerType "${QtQml_SOURCE_DIR}/pysideqmlregistertype.cpp")
+qt_wrap_cpp(QPYQMLPARSERSTATUS_MOC "${pyside6_SOURCE_DIR}/qpyqmlparserstatus.h")
+qt_wrap_cpp(QPYQMLPROPERTYVALUESOURCE_MOC "${pyside6_SOURCE_DIR}/qpyqmlpropertyvaluesource.h")
+
+set(QtQml_static_sources "${QtQml_SOURCE_DIR}/pysideqmlvolatilebool.cpp"
+ "${QPYQMLPARSERSTATUS_MOC}"
+ "${QPYQMLPROPERTYVALUESOURCE_MOC}")
set(QtQml_SRC
${QtQml_GEN_DIR}/qjsengine_wrapper.cpp
@@ -8,10 +16,13 @@ ${QtQml_GEN_DIR}/qjsmanagedvalue_wrapper.cpp
${QtQml_GEN_DIR}/qjsprimitivevalue_wrapper.cpp
${QtQml_GEN_DIR}/qjsvalue_wrapper.cpp
${QtQml_GEN_DIR}/qjsvalueiterator_wrapper.cpp
+${QtQml_GEN_DIR}/qpyqmlparserstatus_wrapper.cpp
+${QtQml_GEN_DIR}/qpyqmlpropertyvaluesource_wrapper.cpp
${QtQml_GEN_DIR}/qqmlabstracturlinterceptor_wrapper.cpp
${QtQml_GEN_DIR}/qqmlapplicationengine_wrapper.cpp
${QtQml_GEN_DIR}/qqmlcomponent_wrapper.cpp
${QtQml_GEN_DIR}/qqmlcontext_wrapper.cpp
+${QtQml_GEN_DIR}/qqmlcontext_propertypair_wrapper.cpp
${QtQml_GEN_DIR}/qqmlerror_wrapper.cpp
${QtQml_GEN_DIR}/qqmldebuggingenabler_wrapper.cpp
${QtQml_GEN_DIR}/qqmlengine_wrapper.cpp
@@ -36,18 +47,22 @@ ${QtQml_GEN_DIR}/qqmlnetworkaccessmanagerfactory_wrapper.cpp
${QtQml_GEN_DIR}/qtqml_module_wrapper.cpp
)
+configure_file("${QtQml_SOURCE_DIR}/QtQml_global.post.h.in"
+ "${QtQml_BINARY_DIR}/QtQml_global.post.h" @ONLY)
+
set(QtQml_include_dirs ${QtQml_SOURCE_DIR}
${Qt${QT_MAJOR_VERSION}Core_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}Core_PRIVATE_INCLUDE_DIRS}
${Qt${QT_MAJOR_VERSION}Network_INCLUDE_DIRS}
${Qt${QT_MAJOR_VERSION}Qml_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}Qml_PRIVATE_INCLUDE_DIRS}
${libpyside_SOURCE_DIR}
+ ${libpysideqml_SOURCE_DIR}
${QtCore_GEN_DIR}
${QtNetwork_GEN_DIR}
${QtQml_GEN_DIR})
-set(QtQml_libraries pyside6
- ${Qt${QT_MAJOR_VERSION}Core_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Network_LIBRARIES}
+set(QtQml_libraries pyside6 pyside6qml
${Qt${QT_MAJOR_VERSION}Qml_LIBRARIES})
set(QtQml_deps QtNetwork)
@@ -58,4 +73,4 @@ create_pyside_module(NAME QtQml
DEPS QtQml_deps
TYPESYSTEM_PATH QtQml_SOURCE_DIR
SOURCES QtQml_SRC
- STATIC_SOURCES QtQml_registerType)
+ STATIC_SOURCES QtQml_static_sources)
diff --git a/sources/pyside6/PySide6/QtQml/QtQml_global.post.h.in b/sources/pyside6/PySide6/QtQml/QtQml_global.post.h.in
new file mode 100644
index 000000000..64c563753
--- /dev/null
+++ b/sources/pyside6/PySide6/QtQml/QtQml_global.post.h.in
@@ -0,0 +1,2 @@
+#include "qpyqmlparserstatus.h"
+#include "qpyqmlpropertyvaluesource.h"
diff --git a/sources/pyside6/PySide6/QtQml/pysideqmlregistertype.cpp b/sources/pyside6/PySide6/QtQml/pysideqmlregistertype.cpp
deleted file mode 100644
index aa89579be..000000000
--- a/sources/pyside6/PySide6/QtQml/pysideqmlregistertype.cpp
+++ /dev/null
@@ -1,791 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "pysideqmlregistertype.h"
-
-#include <limits>
-
-// shiboken
-#include <shiboken.h>
-#include <signature.h>
-
-// pyside
-#include <pyside.h>
-#include <pyside_p.h>
-#include <pysideproperty.h>
-
-// auto generated headers
-#include "pyside6_qtcore_python.h"
-#include "pyside6_qtqml_python.h"
-
-#include <QtQml/QJSValue>
-
-// Forward declarations.
-static void propListMetaCall(PySideProperty *pp, PyObject *self, QMetaObject::Call call,
- void **args);
-
-// Mutex used to avoid race condition on PySide::nextQObjectMemoryAddr.
-static QMutex nextQmlElementMutex;
-
-static void createInto(void *memory, void *type)
-{
- QMutexLocker locker(&nextQmlElementMutex);
- PySide::setNextQObjectMemoryAddr(memory);
- Shiboken::GilState state;
- PyObject *obj = PyObject_CallObject(reinterpret_cast<PyObject *>(type), 0);
- if (!obj || PyErr_Occurred())
- PyErr_Print();
- PySide::setNextQObjectMemoryAddr(0);
-}
-
-int PySide::qmlRegisterType(PyObject *pyObj, const char *uri, int versionMajor,
- int versionMinor, const char *qmlName, const char *noCreationReason,
- bool creatable)
-{
- using namespace Shiboken;
-
- static PyTypeObject *qobjectType = Shiboken::Conversions::getPythonTypeObject("QObject*");
- assert(qobjectType);
-
- PyTypeObject *pyObjType = reinterpret_cast<PyTypeObject *>(pyObj);
- if (!PySequence_Contains(pyObjType->tp_mro, reinterpret_cast<PyObject *>(qobjectType))) {
- PyErr_Format(PyExc_TypeError, "A type inherited from %s expected, got %s.",
- qobjectType->tp_name, pyObjType->tp_name);
- return -1;
- }
-
- const QMetaObject *metaObject = PySide::retrieveMetaObject(pyObjType);
- Q_ASSERT(metaObject);
-
- QQmlPrivate::RegisterType type;
-
- // Allow registering Qt Quick items.
- bool registered = false;
-#ifdef PYSIDE_QML_SUPPORT
- QuickRegisterItemFunction quickRegisterItemFunction = getQuickRegisterItemFunction();
- if (quickRegisterItemFunction) {
- registered =
- quickRegisterItemFunction(pyObj, uri, versionMajor, versionMinor,
- qmlName, creatable, noCreationReason, &type);
- }
-#endif
-
- // Register as simple QObject rather than Qt Quick item.
- if (!registered) {
- // Incref the type object, don't worry about decref'ing it because
- // there's no way to unregister a QML type.
- Py_INCREF(pyObj);
-
- type.structVersion = 0;
-
- // FIXME: Fix this to assign new type ids each time.
- type.typeId = QMetaType(QMetaType::QObjectStar);
- type.listId = QMetaType::fromType<QQmlListProperty<QObject> >();
- type.attachedPropertiesFunction = QQmlPrivate::attachedPropertiesFunc<QObject>();
- type.attachedPropertiesMetaObject = QQmlPrivate::attachedPropertiesMetaObject<QObject>();
-
- type.parserStatusCast =
- QQmlPrivate::StaticCastSelector<QObject, QQmlParserStatus>::cast();
- type.valueSourceCast =
- QQmlPrivate::StaticCastSelector<QObject, QQmlPropertyValueSource>::cast();
- type.valueInterceptorCast =
- QQmlPrivate::StaticCastSelector<QObject, QQmlPropertyValueInterceptor>::cast();
-
- int objectSize = static_cast<int>(PySide::getSizeOfQObject(
- reinterpret_cast<PyTypeObject *>(pyObj)));
- type.objectSize = objectSize;
- type.create = creatable ? createInto : nullptr;
- type.noCreationReason = noCreationReason;
- type.userdata = pyObj;
- type.uri = uri;
- type.version = QTypeRevision::fromVersion(versionMajor, versionMinor);
- type.elementName = qmlName;
-
- type.extensionObjectCreate = 0;
- type.extensionMetaObject = 0;
- type.customParser = 0;
- }
- type.metaObject = metaObject; // Snapshot may have changed.
-
- int qmlTypeId = QQmlPrivate::qmlregister(QQmlPrivate::TypeRegistration, &type);
- if (qmlTypeId == -1) {
- PyErr_Format(PyExc_TypeError, "QML meta type registration of \"%s\" failed.",
- qmlName);
- }
- return qmlTypeId;
-}
-
-int PySide::qmlRegisterSingletonType(PyObject *pyObj, const char *uri, int versionMajor,
- int versionMinor, const char *qmlName, PyObject *callback,
- bool isQObject, bool hasCallback)
-{
- using namespace Shiboken;
-
- if (hasCallback) {
- if (!PyCallable_Check(callback)) {
- PyErr_Format(PyExc_TypeError, "Invalid callback specified.");
- return -1;
- }
-
- AutoDecRef funcCode(PyObject_GetAttrString(callback, "__code__"));
- AutoDecRef argCount(PyObject_GetAttrString(funcCode, "co_argcount"));
-
- int count = PyLong_AsLong(argCount);
-
- if (count != 1) {
- PyErr_Format(PyExc_TypeError, "Callback has a bad parameter count.");
- return -1;
- }
-
- // Make sure the callback never gets deallocated
- Py_INCREF(callback);
- }
-
- const QMetaObject *metaObject = nullptr;
-
- if (isQObject) {
- PyTypeObject *pyObjType = reinterpret_cast<PyTypeObject *>(pyObj);
-
- if (!isQObjectDerived(pyObjType, true))
- return -1;
-
- // If we don't have a callback we'll need the pyObj to stay allocated indefinitely
- if (!hasCallback)
- Py_INCREF(pyObj);
-
- metaObject = PySide::retrieveMetaObject(pyObjType);
- Q_ASSERT(metaObject);
- }
-
- QQmlPrivate::RegisterSingletonType type;
- type.structVersion = 0;
-
- type.uri = uri;
- type.version = QTypeRevision::fromVersion(versionMajor, versionMinor);
- type.typeName = qmlName;
- type.instanceMetaObject = metaObject;
-
- if (isQObject) {
- // FIXME: Fix this to assign new type ids each time.
- type.typeId = QMetaType(QMetaType::QObjectStar);
-
- type.qObjectApi =
- [callback, pyObj, hasCallback](QQmlEngine *engine, QJSEngine *) -> QObject * {
- Shiboken::GilState gil;
- AutoDecRef args(PyTuple_New(hasCallback ? 1 : 0));
-
- if (hasCallback) {
- PyTuple_SET_ITEM(args, 0, Conversions::pointerToPython(
- SbkPySide6_QtQmlTypes[SBK_QQMLENGINE_IDX],
- engine));
- }
-
- AutoDecRef retVal(PyObject_CallObject(hasCallback ? callback : pyObj, args));
-
- PyTypeObject *qobjectType = SbkPySide6_QtCoreTypes[SBK_QOBJECT_IDX];
-
- // Make sure the callback returns something we can convert, else the entire application will crash.
- if (retVal.isNull() ||
- Conversions::isPythonToCppPointerConvertible(qobjectType, retVal) == nullptr) {
- PyErr_Format(PyExc_TypeError, "Callback returns invalid value.");
- return nullptr;
- }
-
- QObject *obj = nullptr;
- Conversions::pythonToCppPointer(qobjectType, retVal, &obj);
-
- if (obj != nullptr)
- Py_INCREF(retVal);
-
- return obj;
- };
- } else {
- type.scriptApi =
- [callback](QQmlEngine *engine, QJSEngine *) -> QJSValue {
- Shiboken::GilState gil;
- AutoDecRef args(PyTuple_New(1));
-
- PyTuple_SET_ITEM(args, 0, Conversions::pointerToPython(
- SbkPySide6_QtQmlTypes[SBK_QQMLENGINE_IDX],
- engine));
-
- AutoDecRef retVal(PyObject_CallObject(callback, args));
-
- PyTypeObject *qjsvalueType = SbkPySide6_QtQmlTypes[SBK_QJSVALUE_IDX];
-
- // Make sure the callback returns something we can convert, else the entire application will crash.
- if (retVal.isNull() ||
- Conversions::isPythonToCppPointerConvertible(qjsvalueType, retVal) == nullptr) {
- PyErr_Format(PyExc_TypeError, "Callback returns invalid value.");
- return QJSValue(QJSValue::UndefinedValue);
- }
-
- QJSValue *val = nullptr;
- Conversions::pythonToCppPointer(qjsvalueType, retVal, &val);
-
- Py_INCREF(retVal);
-
- return *val;
- };
- }
-
- return QQmlPrivate::qmlregister(QQmlPrivate::SingletonRegistration, &type);
-}
-
-int PySide::qmlRegisterSingletonInstance(PyObject *pyObj, const char *uri, int versionMajor,
- int versionMinor, const char *qmlName,
- PyObject *instanceObject)
-{
- using namespace Shiboken;
-
- static PyTypeObject *qobjectType = Conversions::getPythonTypeObject("QObject*");
- assert(qobjectType);
-
- // Check if the Python Type inherit from QObject
- PyTypeObject *pyObjType = reinterpret_cast<PyTypeObject *>(pyObj);
-
- if (!isQObjectDerived(pyObjType, true))
- return -1;
-
- // Check if the instance object derives from QObject
- PyTypeObject *typeInstanceObject = instanceObject->ob_type;
-
- if (!isQObjectDerived(typeInstanceObject, true))
- return -1;
-
- // Convert the instanceObject (PyObject) into a QObject
- QObject *instanceQObject = reinterpret_cast<QObject*>(
- Object::cppPointer(reinterpret_cast<SbkObject*>(instanceObject), qobjectType));
-
- // Create Singleton Functor to pass the QObject to the Type registration step
- // similarly to the case when we have a callback
- QQmlPrivate::SingletonFunctor registrationFunctor;
- registrationFunctor.m_object = instanceQObject;
-
- const QMetaObject *metaObject = PySide::retrieveMetaObject(pyObjType);
- Q_ASSERT(metaObject);
-
- QQmlPrivate::RegisterSingletonType type;
- type.structVersion = 0;
-
- type.uri = uri;
- type.version = QTypeRevision::fromVersion(versionMajor, versionMinor);
- type.typeName = qmlName;
- type.instanceMetaObject = metaObject;
-
- // FIXME: Fix this to assign new type ids each time.
- type.typeId = QMetaType(QMetaType::QObjectStar);
- type.qObjectApi = registrationFunctor;
-
-
- return QQmlPrivate::qmlregister(QQmlPrivate::SingletonRegistration, &type);
-}
-
-extern "C"
-{
-
-// This is the user data we store in the property.
-struct QmlListProperty
-{
- PyTypeObject *type;
- PyObject *append;
- PyObject *count;
- PyObject *at;
- PyObject *clear;
- PyObject *replace;
- PyObject *removeLast;
-};
-
-static int propListTpInit(PyObject *self, PyObject *args, PyObject *kwds)
-{
- static const char *kwlist[] = {"type", "append", "count", "at", "clear", "replace", "removeLast", 0};
- PySideProperty *pySelf = reinterpret_cast<PySideProperty *>(self);
- QmlListProperty *data = new QmlListProperty;
- memset(data, 0, sizeof(QmlListProperty));
-
- if (!PyArg_ParseTupleAndKeywords(args, kwds,
- "O|OOOOOO:QtQml.ListProperty", (char **) kwlist,
- &data->type,
- &data->append,
- &data->count,
- &data->at,
- &data->clear,
- &data->replace,
- &data->removeLast)) {
- delete data;
- return -1;
- }
-
- static PyTypeObject *qobjectType = Shiboken::Conversions::getPythonTypeObject("QObject*");
- assert(qobjectType);
-
- if (!PySequence_Contains(data->type->tp_mro, reinterpret_cast<PyObject *>(qobjectType))) {
- PyErr_Format(PyExc_TypeError, "A type inherited from %s expected, got %s.",
- qobjectType->tp_name, data->type->tp_name);
- delete data;
- return -1;
- }
-
- if ((data->append && data->append != Py_None && !PyCallable_Check(data->append)) ||
- (data->count && data->count != Py_None && !PyCallable_Check(data->count)) ||
- (data->at && data->at != Py_None && !PyCallable_Check(data->at)) ||
- (data->clear && data->clear != Py_None && !PyCallable_Check(data->clear)) ||
- (data->replace && data->replace != Py_None && !PyCallable_Check(data->replace)) ||
- (data->removeLast && data->removeLast != Py_None && !PyCallable_Check(data->removeLast))) {
- PyErr_Format(PyExc_TypeError, "Non-callable parameter given");
- delete data;
- return -1;
- }
-
- PySide::Property::setMetaCallHandler(pySelf, &propListMetaCall);
- PySide::Property::setTypeName(pySelf, "QQmlListProperty<QObject>");
- PySide::Property::setUserData(pySelf, data);
-
- return 0;
-}
-
-void propListTpFree(void *self)
-{
- auto pySelf = reinterpret_cast<PySideProperty *>(self);
- delete reinterpret_cast<QmlListProperty *>(PySide::Property::userData(pySelf));
- // calls base type constructor
- Py_TYPE(pySelf)->tp_base->tp_free(self);
-}
-
-static PyType_Slot PropertyListType_slots[] = {
- {Py_tp_init, reinterpret_cast<void *>(propListTpInit)},
- {Py_tp_free, reinterpret_cast<void *>(propListTpFree)},
- {Py_tp_dealloc, reinterpret_cast<void *>(Sbk_object_dealloc)},
- {0, nullptr}
-};
-static PyType_Spec PropertyListType_spec = {
- "2:PySide6.QtQml.ListProperty",
- sizeof(PySideProperty),
- 0,
- Py_TPFLAGS_DEFAULT,
- PropertyListType_slots,
-};
-
-
-PyTypeObject *PropertyListTypeF(void)
-{
- static Shiboken::AutoDecRef bases(Py_BuildValue("(O)", PySidePropertyTypeF()));
- static auto *type = SbkType_FromSpecWithBases(&PropertyListType_spec, bases);
- return type;
-}
-
-} // extern "C"
-
-// Implementation of QQmlListProperty<T>::AppendFunction callback
-void propListAppender(QQmlListProperty<QObject> *propList, QObject *item)
-{
- Shiboken::GilState state;
-
- Shiboken::AutoDecRef args(PyTuple_New(2));
- PyTypeObject *qobjectType = SbkPySide6_QtCoreTypes[SBK_QOBJECT_IDX];
- PyTuple_SET_ITEM(args, 0,
- Shiboken::Conversions::pointerToPython(qobjectType, propList->object));
- PyTuple_SET_ITEM(args, 1,
- Shiboken::Conversions::pointerToPython(qobjectType, item));
-
- auto data = reinterpret_cast<QmlListProperty *>(propList->data);
- Shiboken::AutoDecRef retVal(PyObject_CallObject(data->append, args));
-
- if (PyErr_Occurred())
- PyErr_Print();
-}
-
-// Implementation of QQmlListProperty<T>::CountFunction callback
-qsizetype propListCount(QQmlListProperty<QObject> *propList)
-{
- Shiboken::GilState state;
-
- Shiboken::AutoDecRef args(PyTuple_New(1));
- PyTypeObject *qobjectType = SbkPySide6_QtCoreTypes[SBK_QOBJECT_IDX];
- PyTuple_SET_ITEM(args, 0,
- Shiboken::Conversions::pointerToPython(qobjectType, propList->object));
-
- auto data = reinterpret_cast<QmlListProperty *>(propList->data);
- Shiboken::AutoDecRef retVal(PyObject_CallObject(data->count, args));
-
- // Check return type
- int cppResult = 0;
- PythonToCppFunc pythonToCpp = 0;
- if (PyErr_Occurred())
- PyErr_Print();
- else if ((pythonToCpp = Shiboken::Conversions::isPythonToCppConvertible(Shiboken::Conversions::PrimitiveTypeConverter<qsizetype>(), retVal)))
- pythonToCpp(retVal, &cppResult);
- return cppResult;
-}
-
-// Implementation of QQmlListProperty<T>::AtFunction callback
-QObject *propListAt(QQmlListProperty<QObject> *propList, qsizetype index)
-{
- Shiboken::GilState state;
-
- Shiboken::AutoDecRef args(PyTuple_New(2));
- PyTypeObject *qobjectType = SbkPySide6_QtCoreTypes[SBK_QOBJECT_IDX];
- PyTuple_SET_ITEM(args, 0,
- Shiboken::Conversions::pointerToPython(qobjectType, propList->object));
- PyTuple_SET_ITEM(args, 1, Shiboken::Conversions::copyToPython(Shiboken::Conversions::PrimitiveTypeConverter<qsizetype>(), &index));
-
- auto data = reinterpret_cast<QmlListProperty *>(propList->data);
- Shiboken::AutoDecRef retVal(PyObject_CallObject(data->at, args));
-
- QObject *result = 0;
- if (PyErr_Occurred())
- PyErr_Print();
- else if (PyType_IsSubtype(Py_TYPE(retVal), data->type))
- Shiboken::Conversions::pythonToCppPointer(qobjectType, retVal, &result);
- return result;
-}
-
-// Implementation of QQmlListProperty<T>::ClearFunction callback
-void propListClear(QQmlListProperty<QObject> * propList)
-{
- Shiboken::GilState state;
-
- Shiboken::AutoDecRef args(PyTuple_New(1));
- PyTypeObject *qobjectType = SbkPySide6_QtCoreTypes[SBK_QOBJECT_IDX];
- PyTuple_SET_ITEM(args, 0,
- Shiboken::Conversions::pointerToPython(qobjectType, propList->object));
-
- auto data = reinterpret_cast<QmlListProperty *>(propList->data);
- Shiboken::AutoDecRef retVal(PyObject_CallObject(data->clear, args));
-
- if (PyErr_Occurred())
- PyErr_Print();
-}
-
-// Implementation of QQmlListProperty<T>::ReplaceFunction callback
-void propListReplace(QQmlListProperty<QObject> *propList, qsizetype index, QObject *value)
-{
- Shiboken::GilState state;
-
- Shiboken::AutoDecRef args(PyTuple_New(3));
- PyTypeObject *qobjectType = SbkPySide6_QtCoreTypes[SBK_QOBJECT_IDX];
- PyTuple_SET_ITEM(args, 0,
- Shiboken::Conversions::pointerToPython(qobjectType, propList->object));
- PyTuple_SET_ITEM(args, 1, Shiboken::Conversions::copyToPython(Shiboken::Conversions::PrimitiveTypeConverter<qsizetype>(), &index));
- PyTuple_SET_ITEM(args, 2,
- Shiboken::Conversions::pointerToPython(qobjectType, value));
-
- auto data = reinterpret_cast<QmlListProperty *>(propList->data);
- Shiboken::AutoDecRef retVal(PyObject_CallObject(data->replace, args));
-
- if (PyErr_Occurred())
- PyErr_Print();
-}
-
-// Implementation of QQmlListProperty<T>::RemoveLastFunction callback
-void propListRemoveLast(QQmlListProperty<QObject> *propList)
-{
- Shiboken::GilState state;
-
- Shiboken::AutoDecRef args(PyTuple_New(1));
- PyTypeObject *qobjectType = SbkPySide6_QtCoreTypes[SBK_QOBJECT_IDX];
- PyTuple_SET_ITEM(args, 0,
- Shiboken::Conversions::pointerToPython(qobjectType, propList->object));
-
- auto data = reinterpret_cast<QmlListProperty *>(propList->data);
- Shiboken::AutoDecRef retVal(PyObject_CallObject(data->removeLast, args));
-
- if (PyErr_Occurred())
- PyErr_Print();
-}
-
-// qt_metacall specialization for ListProperties
-static void propListMetaCall(PySideProperty *pp, PyObject *self, QMetaObject::Call call, void **args)
-{
- if (call != QMetaObject::ReadProperty)
- return;
-
- auto data = reinterpret_cast<QmlListProperty *>(PySide::Property::userData(pp));
- QObject *qobj;
- PyTypeObject *qobjectType = SbkPySide6_QtCoreTypes[SBK_QOBJECT_IDX];
- Shiboken::Conversions::pythonToCppPointer(qobjectType, self, &qobj);
- QQmlListProperty<QObject> declProp(qobj, data,
- data->append && data->append != Py_None ? &propListAppender : nullptr,
- data->count && data->count != Py_None ? &propListCount : nullptr,
- data->at && data->at != Py_None ? &propListAt : nullptr,
- data->clear && data->clear != Py_None ? &propListClear : nullptr,
- data->replace && data->replace != Py_None ? &propListReplace : nullptr,
- data->removeLast && data->removeLast != Py_None ? &propListRemoveLast : nullptr);
-
- // Copy the data to the memory location requested by the meta call
- void *v = args[0];
- *reinterpret_cast<QQmlListProperty<QObject> *>(v) = declProp;
-}
-
-// VolatileBool (volatile bool) type definition.
-
-static PyObject *
-QtQml_VolatileBoolObject_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
-{
- static const char *kwlist[] = {"x", 0};
- PyObject *x = Py_False;
- long ok;
-
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "|O:bool", const_cast<char **>(kwlist), &x))
- return Q_NULLPTR;
- ok = PyObject_IsTrue(x);
- if (ok < 0)
- return Q_NULLPTR;
-
- QtQml_VolatileBoolObject *self
- = reinterpret_cast<QtQml_VolatileBoolObject *>(type->tp_alloc(type, 0));
-
- if (self != nullptr)
- self->flag = new AtomicBool(ok);
-
- return reinterpret_cast<PyObject *>(self);
-}
-
-static void QtQml_VolatileBoolObject_dealloc(PyObject *self)
-{
- auto volatileBool = reinterpret_cast<QtQml_VolatileBoolObject *>(self);
- delete volatileBool->flag;
- Sbk_object_dealloc(self);
-}
-
-static PyObject *
-QtQml_VolatileBoolObject_get(QtQml_VolatileBoolObject *self)
-{
- return *self->flag ? Py_True : Py_False;
-}
-
-static PyObject *
-QtQml_VolatileBoolObject_set(QtQml_VolatileBoolObject *self, PyObject *args)
-{
- PyObject *value = Py_False;
- long ok;
-
- if (!PyArg_ParseTuple(args, "O:bool", &value)) {
- return Q_NULLPTR;
- }
-
- ok = PyObject_IsTrue(value);
- if (ok < 0) {
- PyErr_SetString(PyExc_TypeError, "Not a boolean value.");
- return Q_NULLPTR;
- }
-
- *self->flag = ok > 0;
-
- Py_RETURN_NONE;
-}
-
-static PyMethodDef QtQml_VolatileBoolObject_methods[] = {
- {"get", reinterpret_cast<PyCFunction>(QtQml_VolatileBoolObject_get), METH_NOARGS,
- "B.get() -> Bool. Returns the value of the volatile boolean"
- },
- {"set", reinterpret_cast<PyCFunction>(QtQml_VolatileBoolObject_set), METH_VARARGS,
- "B.set(a) -> None. Sets the value of the volatile boolean"
- },
- {nullptr, nullptr, 0, nullptr} /* Sentinel */
-};
-
-static PyObject *
-QtQml_VolatileBoolObject_repr(QtQml_VolatileBoolObject *self)
-{
- PyObject *s;
-
- if (*self->flag)
- s = PyBytes_FromFormat("%s(True)",
- Py_TYPE(self)->tp_name);
- else
- s = PyBytes_FromFormat("%s(False)",
- Py_TYPE(self)->tp_name);
- Py_XINCREF(s);
- return s;
-}
-
-static PyObject *
-QtQml_VolatileBoolObject_str(QtQml_VolatileBoolObject *self)
-{
- PyObject *s;
-
- if (*self->flag)
- s = PyBytes_FromFormat("%s(True) -> %p",
- Py_TYPE(self)->tp_name, self->flag);
- else
- s = PyBytes_FromFormat("%s(False) -> %p",
- Py_TYPE(self)->tp_name, self->flag);
- Py_XINCREF(s);
- return s;
-}
-
-static PyType_Slot QtQml_VolatileBoolType_slots[] = {
- {Py_tp_repr, reinterpret_cast<void *>(QtQml_VolatileBoolObject_repr)},
- {Py_tp_str, reinterpret_cast<void *>(QtQml_VolatileBoolObject_str)},
- {Py_tp_methods, reinterpret_cast<void *>(QtQml_VolatileBoolObject_methods)},
- {Py_tp_new, reinterpret_cast<void *>(QtQml_VolatileBoolObject_new)},
- {Py_tp_dealloc, reinterpret_cast<void *>(QtQml_VolatileBoolObject_dealloc)},
- {0, 0}
-};
-static PyType_Spec QtQml_VolatileBoolType_spec = {
- "2:PySide6.QtQml.VolatileBool",
- sizeof(QtQml_VolatileBoolObject),
- 0,
- Py_TPFLAGS_DEFAULT,
- QtQml_VolatileBoolType_slots,
-};
-
-
-PyTypeObject *QtQml_VolatileBoolTypeF(void)
-{
- static auto *type = SbkType_FromSpec(&QtQml_VolatileBoolType_spec);
- return type;
-}
-
-static const char *PropertyList_SignatureStrings[] = {
- "PySide6.QtQml.ListProperty(self,type:type,append:typing.Callable,"
- "at:typing.Callable=None,clear:typing.Callable=None,count:typing.Callable=None)",
- nullptr}; // Sentinel
-
-static const char *VolatileBool_SignatureStrings[] = {
- "PySide6.QtQml.VolatileBool.get(self)->bool",
- "PySide6.QtQml.VolatileBool.set(self,a:object)",
- nullptr}; // Sentinel
-
-void PySide::initQmlSupport(PyObject *module)
-{
- // Export QmlListProperty type
- if (InitSignatureStrings(PropertyListTypeF(), PropertyList_SignatureStrings) < 0) {
- PyErr_Print();
- qWarning() << "Error initializing PropertyList type.";
- return;
- }
-
- // Register QQmlListProperty metatype for use in QML
- qRegisterMetaType<QQmlListProperty<QObject>>();
-
- Py_INCREF(reinterpret_cast<PyObject *>(PropertyListTypeF()));
- PyModule_AddObject(module, PepType_GetNameStr(PropertyListTypeF()),
- reinterpret_cast<PyObject *>(PropertyListTypeF()));
-
- if (InitSignatureStrings(QtQml_VolatileBoolTypeF(), VolatileBool_SignatureStrings) < 0) {
- PyErr_Print();
- qWarning() << "Error initializing VolatileBool type.";
- return;
- }
-
- Py_INCREF(QtQml_VolatileBoolTypeF());
- PyModule_AddObject(module, PepType_GetNameStr(QtQml_VolatileBoolTypeF()),
- reinterpret_cast<PyObject *>(QtQml_VolatileBoolTypeF()));
-}
-
-static std::string getGlobalString(const char *name)
-{
- using Shiboken::AutoDecRef;
-
- PyObject *globals = PyEval_GetGlobals();
-
- AutoDecRef pyName(Py_BuildValue("s", name));
-
- PyObject *globalVar = PyDict_GetItem(globals, pyName);
-
- if (globalVar == nullptr || !PyUnicode_Check(globalVar))
- return "";
-
- const char *stringValue = _PepUnicode_AsString(globalVar);
- return stringValue != nullptr ? stringValue : "";
-}
-
-static int getGlobalInt(const char *name)
-{
- using Shiboken::AutoDecRef;
-
- PyObject *globals = PyEval_GetGlobals();
-
- AutoDecRef pyName(Py_BuildValue("s", name));
-
- PyObject *globalVar = PyDict_GetItem(globals, pyName);
-
- if (globalVar == nullptr || !PyLong_Check(globalVar))
- return -1;
-
- long value = PyLong_AsLong(globalVar);
-
- if (value > std::numeric_limits<int>::max() || value < std::numeric_limits<int>::min())
- return -1;
-
- return value;
-}
-
-PyObject *PySide::qmlElementMacro(PyObject *pyObj)
-{
- if (!PyType_Check(pyObj)) {
- PyErr_Format(PyExc_TypeError, "This decorator can only be used on classes.");
- return nullptr;
- }
-
- static PyTypeObject *qobjectType = Shiboken::Conversions::getPythonTypeObject("QObject*");
- assert(qobjectType);
-
- PyTypeObject *pyObjType = reinterpret_cast<PyTypeObject *>(pyObj);
- if (!PySequence_Contains(pyObjType->tp_mro, reinterpret_cast<PyObject *>(qobjectType))) {
- PyErr_Format(PyExc_TypeError, "This decorator can only be used with classes inherited from QObject, got %s.", pyObjType->tp_name);
- return nullptr;
- }
-
- std::string importName = getGlobalString("QML_IMPORT_NAME");
- int majorVersion = getGlobalInt("QML_IMPORT_MAJOR_VERSION");
- int minorVersion = getGlobalInt("QML_IMPORT_MINOR_VERSION");
-
- if (importName.empty()) {
- PyErr_Format(PyExc_TypeError, "You need specify QML_IMPORT_NAME in order to use QmlElement.");
- return nullptr;
- }
-
- if (majorVersion == -1) {
- PyErr_Format(PyExc_TypeError, "You need specify QML_IMPORT_MAJOR_VERSION in order to use QmlElement.");
- return nullptr;
- }
-
- // Specifying a minor version is optional
- if (minorVersion == -1)
- minorVersion = 0;
-
- if (qmlRegisterType(pyObj, importName.c_str(), majorVersion, minorVersion, pyObjType->tp_name) == -1) {
- PyErr_Format(PyExc_TypeError, "Failed to register type %s.", pyObjType->tp_name);
- }
-
- return pyObj;
-}
diff --git a/sources/pyside6/PySide6/QtQml/pysideqmlregistertype.h b/sources/pyside6/PySide6/QtQml/pysideqmlregistertype.h
deleted file mode 100644
index 0dbfb6e5a..000000000
--- a/sources/pyside6/PySide6/QtQml/pysideqmlregistertype.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef PYSIDEQMLREGISTERTYPE_H
-#define PYSIDEQMLREGISTERTYPE_H
-
-#include <sbkpython.h>
-
-namespace PySide
-{
-
-extern void *nextQmlElementMemoryAddr;
-
-/**
- * Init the QML support doing things like registering QtQml.ListProperty and create the necessary stuff for
- * qmlRegisterType.
- *
- * \param module QtQml python module
- */
-void initQmlSupport(PyObject *module);
-
-/**
- * PySide implementation of qmlRegisterType<T> function.
- *
- * \param pyObj Python type to be registered.
- * \param uri QML element uri.
- * \param versionMajor QML component major version.
- * \param versionMinor QML component minor version.
- * \param qmlName QML element name
- * \return the metatype id of the registered type.
- */
-int qmlRegisterType(PyObject *pyObj, const char *uri, int versionMajor, int versionMinor,
- const char *qmlName, const char *noCreationReason = nullptr, bool creatable = true);
-
-/**
- * PySide implementation of qmlRegisterSingletonType<T> function.
- *
- * \param pyObj Python type to be registered.
- * \param uri QML element uri.
- * \param versionMajor QML component major version.
- * \param versionMinor QML component minor version.
- * \param qmlName QML element name
- * \param callback Registration callback
- * \return the metatype id of the registered type.
- */
-int qmlRegisterSingletonType(PyObject *pyObj,const char *uri, int versionMajor, int versionMinor, const char *qmlName,
- PyObject *callback, bool isQObject, bool hasCallback);
-
-/**
- * PySide implementation of qmlRegisterSingletonInstance<T> function.
- *
- * \param pyObj Python type to be registered.
- * \param uri QML element uri.
- * \param versionMajor QML component major version.
- * \param versionMinor QML component minor version.
- * \param qmlName QML element name
- * \param instanceObject singleton object to be registered.
- * \return the metatype id of the registered type.
- */
-int qmlRegisterSingletonInstance(PyObject *pyObj, const char *uri, int versionMajor,
- int versionMinor, const char *qmlName, PyObject *instanceObject);
-
-
-/**
- * PySide implementation of the QML_ELEMENT macro
- *
- * \param pyObj Python type to be registered
- */
-PyObject *qmlElementMacro(PyObject *pyObj);
-}
-
-PyTypeObject *QtQml_VolatileBoolTypeF(void);
-
-#define VolatileBool_Check(op) (Py_TYPE(op) == QtQml_VolatileBoolTypeF())
-
-#endif
diff --git a/sources/pyside6/PySide6/QtQml/pysideqmlvolatilebool.cpp b/sources/pyside6/PySide6/QtQml/pysideqmlvolatilebool.cpp
new file mode 100644
index 000000000..6e403ab72
--- /dev/null
+++ b/sources/pyside6/PySide6/QtQml/pysideqmlvolatilebool.cpp
@@ -0,0 +1,160 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#include "pysideqmlvolatilebool.h"
+
+#include <pep384ext.h>
+#include <signature.h>
+
+#include <QtCore/QDebug>
+
+// Volatile Bool used for QQmlIncubationController::incubateWhile(std::atomic<bool> *, int)
+
+// Generated headers containing the definition of struct
+// QtQml_VolatileBoolObject. It is injected to avoid "pyside6_qtqml_python.h"
+// depending on other headers.
+#include "pyside6_qtcore_python.h"
+#include "pyside6_qtqml_python.h"
+
+// VolatileBool (volatile bool) type definition.
+
+static PyObject *
+QtQml_VolatileBoolObject_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
+{
+ static const char *kwlist[] = {"x", 0};
+ PyObject *x = Py_False;
+ long ok;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwds, "|O:bool", const_cast<char **>(kwlist), &x))
+ return nullptr;
+ ok = PyObject_IsTrue(x);
+ if (ok < 0)
+ return nullptr;
+
+ auto *self = PepExt_TypeCallAlloc<QtQml_VolatileBoolObject>(type, 0);
+
+ if (self != nullptr)
+ self->flag = new AtomicBool(ok);
+
+ return reinterpret_cast<PyObject *>(self);
+}
+
+static void QtQml_VolatileBoolObject_dealloc(PyObject *self)
+{
+ auto volatileBool = reinterpret_cast<QtQml_VolatileBoolObject *>(self);
+ delete volatileBool->flag;
+ Sbk_object_dealloc(self);
+}
+
+static PyObject *
+QtQml_VolatileBoolObject_get(QtQml_VolatileBoolObject *self)
+{
+ return *self->flag ? Py_True : Py_False;
+}
+
+static PyObject *
+QtQml_VolatileBoolObject_set(QtQml_VolatileBoolObject *self, PyObject *args)
+{
+ PyObject *value = Py_False;
+ long ok;
+
+ if (!PyArg_ParseTuple(args, "O:bool", &value)) {
+ return nullptr;
+ }
+
+ ok = PyObject_IsTrue(value);
+ if (ok < 0) {
+ PyErr_SetString(PyExc_TypeError, "Not a boolean value.");
+ return nullptr;
+ }
+
+ *self->flag = ok > 0;
+
+ Py_RETURN_NONE;
+}
+
+static PyMethodDef QtQml_VolatileBoolObject_methods[] = {
+ {"get", reinterpret_cast<PyCFunction>(QtQml_VolatileBoolObject_get), METH_NOARGS,
+ "B.get() -> Bool. Returns the value of the volatile boolean"
+ },
+ {"set", reinterpret_cast<PyCFunction>(QtQml_VolatileBoolObject_set), METH_VARARGS,
+ "B.set(a) -> None. Sets the value of the volatile boolean"
+ },
+ {nullptr, nullptr, 0, nullptr} /* Sentinel */
+};
+
+static PyObject *
+QtQml_VolatileBoolObject_repr(QtQml_VolatileBoolObject *self)
+{
+ PyObject *s;
+
+ if (*self->flag)
+ s = PyBytes_FromFormat("%s(True)",
+ Py_TYPE(self)->tp_name);
+ else
+ s = PyBytes_FromFormat("%s(False)",
+ Py_TYPE(self)->tp_name);
+ Py_XINCREF(s);
+ return s;
+}
+
+static PyObject *
+QtQml_VolatileBoolObject_str(QtQml_VolatileBoolObject *self)
+{
+ PyObject *s;
+
+ if (*self->flag)
+ s = PyBytes_FromFormat("%s(True) -> %p",
+ Py_TYPE(self)->tp_name, self->flag);
+ else
+ s = PyBytes_FromFormat("%s(False) -> %p",
+ Py_TYPE(self)->tp_name, self->flag);
+ Py_XINCREF(s);
+ return s;
+}
+
+static PyTypeObject *createVolatileBoolType()
+{
+ PyType_Slot QtQml_VolatileBoolType_slots[] = {
+ {Py_tp_repr, reinterpret_cast<void *>(QtQml_VolatileBoolObject_repr)},
+ {Py_tp_str, reinterpret_cast<void *>(QtQml_VolatileBoolObject_str)},
+ {Py_tp_methods, reinterpret_cast<void *>(QtQml_VolatileBoolObject_methods)},
+ {Py_tp_new, reinterpret_cast<void *>(QtQml_VolatileBoolObject_new)},
+ {Py_tp_dealloc, reinterpret_cast<void *>(QtQml_VolatileBoolObject_dealloc)},
+ {0, 0}
+ };
+
+ PyType_Spec QtQml_VolatileBoolType_spec = {
+ "2:PySide6.QtQml.VolatileBool",
+ sizeof(QtQml_VolatileBoolObject),
+ 0,
+ Py_TPFLAGS_DEFAULT,
+ QtQml_VolatileBoolType_slots,
+ };
+
+ return SbkType_FromSpec(&QtQml_VolatileBoolType_spec);
+}
+
+PyTypeObject *QtQml_VolatileBool_TypeF(void)
+{
+ static auto *type = createVolatileBoolType();
+ return type;
+}
+
+static const char *VolatileBool_SignatureStrings[] = {
+ "PySide6.QtQml.VolatileBool.get(self)->bool",
+ "PySide6.QtQml.VolatileBool.set(self,a:object)",
+ nullptr}; // Sentinel
+
+void initQtQmlVolatileBool(PyObject *module)
+{
+ if (InitSignatureStrings(QtQml_VolatileBool_TypeF(), VolatileBool_SignatureStrings) < 0) {
+ PyErr_Print();
+ qWarning() << "Error initializing VolatileBool type.";
+ return;
+ }
+
+ Py_INCREF(QtQml_VolatileBool_TypeF());
+ PyModule_AddObject(module, PepType_GetNameStr(QtQml_VolatileBool_TypeF()),
+ reinterpret_cast<PyObject *>(QtQml_VolatileBool_TypeF()));
+}
diff --git a/sources/pyside6/PySide6/QtQml/pysideqmlvolatilebool.h b/sources/pyside6/PySide6/QtQml/pysideqmlvolatilebool.h
new file mode 100644
index 000000000..fd3707aba
--- /dev/null
+++ b/sources/pyside6/PySide6/QtQml/pysideqmlvolatilebool.h
@@ -0,0 +1,15 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef PYSIDEQMLVOLATILEBOOL_H
+#define PYSIDEQMLVOLATILEBOOL_H
+
+#include <sbkpython.h>
+
+PyTypeObject *QtQml_VolatileBool_TypeF(void);
+
+#define VolatileBool_Check(op) (Py_TYPE(op) == QtQml_VolatileBool_TypeF())
+
+void initQtQmlVolatileBool(PyObject *module);
+
+#endif // PYSIDEQMLVOLATILEBOOL_H
diff --git a/sources/pyside6/PySide6/QtQml/typesystem_qml.xml b/sources/pyside6/PySide6/QtQml/typesystem_qml.xml
index 9a60eb84b..6a739bbdf 100644
--- a/sources/pyside6/PySide6/QtQml/typesystem_qml.xml
+++ b/sources/pyside6/PySide6/QtQml/typesystem_qml.xml
@@ -1,66 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtQml">
+<typesystem package="PySide6.QtQml"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="QtCore/typesystem_core.xml" generate="no"/>
<load-typesystem name="QtNetwork/typesystem_network.xml" generate="no"/>
+ <rejection class="QQmlPrivate"/>
+
<inject-code class="target" position="declaration">
// Volatile Bool Ptr type definition for QQmlIncubationController::incubateWhile(std::atomic&lt;bool&gt; *, int)
#include &lt;atomic&gt;
using AtomicBool = std::atomic&lt;bool&gt;;
- typedef struct {
+ struct QtQml_VolatileBoolObject {
PyObject_HEAD
AtomicBool *flag;
- } QtQml_VolatileBoolObject;
+ };
</inject-code>
<inject-code class="native" position="beginning">
- #include "pysideqmlregistertype.h"
+ #include &lt;pysideqml.h&gt;
+ #include &lt;pysideqmlregistertype.h&gt;
+ #include &lt;pysideqmlattached.h&gt;
+ #include "pysideqmlvolatilebool.h"
</inject-code>
<!-- This is to inform the generator that the VolatileBool python type exists -->
- <custom-type name="VolatileBool"/>
+ <custom-type name="VolatileBool" check-function="VolatileBool_Check"/>
<primitive-type name="bool volatile" target-lang-api-name="VolatileBool">
<!-- No conversion rules are specified here, because the generator does not handle
pointer to primitive types without function adjustment.
@@ -68,48 +38,79 @@
in generator tests folder. -->
</primitive-type>
- <enum-type name="QQmlModuleImportSpecialVersions" since="6.0"/>
+ <enum-type name="QQmlModuleImportSpecialVersions" doc-file="qqmlengine"/>
<!-- expose QQmlIncubationController::incubateWhile() (see
- QtQml_VolatileBoolTypeF/pysideqmlregistertype.h) -->
+ QtQml_VolatileBoolTypeF/pysideqmlvolatilebool.h) -->
<namespace-type name="std" generate="no">
<value-type name="atomic" generate="no"/>
</namespace-type>
- <add-function signature="qmlRegisterType(PyTypeObject,const char*,int,int,const char*)" return-type="int">
+ <add-function signature="qmlAttachedPropertiesObject(PyTypeObject*@type_obj@,QObject*,bool=true)"
+ return-type="QObject*">
+ <inject-code class="target" file="../glue/qtqml.cpp" snippet="qmlattachedpropertiesobject"/>
+ </add-function>
+
+ <add-function signature="qmlRegisterType(PyTypeObject@type_obj@,const char*@uri@,int@version_major@,int@version_minor@,const char*@qml_name@)" return-type="int">
<inject-code class="target" file="../glue/qtqml.cpp" snippet="qmlregistertype"/>
+ <inject-documentation format="target" mode="append" file="../doc/qtqml_functions.rst"
+ snippet="qmlregistertype"/>
+ <modify-argument index="2" pyi-type="str"/>
</add-function>
- <add-function signature="qmlRegisterSingletonType(PyTypeObject,const char*,int,int,const char*,PyObject*)" return-type="int">
+ <add-function signature="qmlRegisterSingletonType(PyTypeObject@type_obj@,const char*@uri@,int@version_major@,int@version_minor@,const char*@qml_name@,PyObject*@callback@)" return-type="int">
<inject-code class="target" file="../glue/qtqml.cpp" snippet="qmlregistersingletontype_qobject_callback"/>
+ <inject-documentation format="target" mode="append" file="../doc/qtqml_functions.rst"
+ snippet="qmlregistersingletontype_qobject_callback"/>
+ <modify-argument index="2" pyi-type="str"/>
</add-function>
- <add-function signature="qmlRegisterSingletonType(PyTypeObject,const char*,int,int,const char*)" return-type="int">
+ <add-function signature="qmlRegisterSingletonType(PyTypeObject@type_obj@,const char*@uri@,int@version_major@,int@version_minor@,const char*@qml_name@)" return-type="int">
<inject-code class="target" file="../glue/qtqml.cpp" snippet="qmlregistersingletontype_qobject_nocallback"/>
+ <inject-documentation format="target" mode="append" file="../doc/qtqml_functions.rst"
+ snippet="qmlregistersingletontype_qobject_nocallback"/>
+ <modify-argument index="2" pyi-type="str"/>
</add-function>
- <add-function signature="qmlRegisterSingletonType(const char*,int,int,const char*,PyObject*)" return-type="int">
+ <add-function signature="qmlRegisterSingletonType(const char*@uri@,int@version_major@,int@version_minor@,const char*@qml_name@,PyObject*@callback@)" return-type="int">
<inject-code class="target" file="../glue/qtqml.cpp" snippet="qmlregistersingletontype_qjsvalue"/>
+ <inject-documentation format="target" mode="append" file="../doc/qtqml_functions.rst"
+ snippet="qmlregistersingletontype_qjsvalue"/>
+ <modify-argument index="1" pyi-type="str"/>
</add-function>
- <add-function signature="qmlRegisterSingletonInstance(PyTypeObject,const char*,int,int,const char*,PyObject*)" return-type="int">
+ <add-function signature="qmlRegisterSingletonInstance(PyTypeObject@type_obj@,const char*@uri@,int@version_major@,int@version_minor@,const char*@qml_name@,PyObject*@callback@)" return-type="int">
<inject-code class="target" file="../glue/qtqml.cpp" snippet="qmlregistersingletoninstance"/>
+ <inject-documentation format="target" mode="append" file="../doc/qtqml_functions.rst"
+ snippet="qmlregistersingletoninstance"/>
+ <modify-argument index="2" pyi-type="str"/>
</add-function>
- <add-function signature="qmlRegisterUncreatableType(PyTypeObject,const char*,int,int,const char*,const char*)" return-type="int">
+ <add-function signature="qmlRegisterUncreatableType(PyTypeObject@type_obj@,const char*@uri@,int@version_major@,int@version_minor@,const char*@qml_name@,const char*@message@)" return-type="int">
<inject-code class="target" file="../glue/qtqml.cpp" snippet="qmlregisteruncreatabletype"/>
+ <inject-documentation format="target" mode="append" file="../doc/qtqml_functions.rst"
+ snippet="qmlregisteruncreatabletype"/>
+ <modify-argument index="2" pyi-type="str"/>
</add-function>
<add-function signature="QmlElement(PyObject*)" return-type="PyObject*">
<inject-code class="target" file="../glue/qtqml.cpp" snippet="qmlelement"/>
</add-function>
+ <add-function signature="QmlAnonymous(PyObject*)" return-type="PyObject*">
+ <inject-code class="target" file="../glue/qtqml.cpp" snippet="qmlanonymous"/>
+ </add-function>
+
+ <add-function signature="QmlSingleton(PyObject*)" return-type="PyObject*">
+ <inject-code class="target" file="../glue/qtqml.cpp" snippet="qmlsingleton"/>
+ </add-function>
+
<function signature="qjsEngine(const QObject*)">
<modify-function>
<modify-argument index="return" pyi-type="Optional[PySide6.QtQml.QJSEngine]"/>
</modify-function>
</function>
- <function signature="qmlClearTypeRegistrations()"/>
+ <function signature="qmlClearTypeRegistrations()" doc-file="qqmlengine"/>
<function signature="qmlContext(const QObject*)">
<modify-function>
<modify-argument index="return" pyi-type="Optional[PySide6.QtQml.QQmlContext]"/>
@@ -120,9 +121,11 @@
<modify-argument index="return" pyi-type="Optional[PySide6.QtQml.QQmlEngine]"/>
</modify-function>
</function>
- <function signature="qmlProtectModule(const char*,int)"/>
- <function signature="qmlRegisterModule(const char*,int,int)"/>
- <function signature="qmlTypeId(const char*,int,int,const char*)"/>
+ <function signature="qmlProtectModule(const char*,int)" doc-file="qqmlengine"/>
+ <function signature="qmlRegisterModule(const char*,int,int)" doc-file="qqmlengine"/>
+ <function signature="qmlTypeId(const char*,int,int,const char*)" doc-file="qqmlengine"/>
+ <function signature="qmlRegisterType(const QUrl &amp;,const char *,int,int,const char *)"/>
+ <function signature="qmlRegisterSingletonType(const QUrl &amp;,const char *,int,int,const char *)"/>
<function signature="qmlRegisterUncreatableMetaObject(const QMetaObject&amp;,const char*,int,int, const char*,const QString&amp;)"/>
<enum-type identified-by-value="QML_HAS_ATTACHED_PROPERTIES">
@@ -134,8 +137,8 @@
<inject-code class="target" position="end" file="../glue/qtqml.cpp" snippet="init"/>
<object-type name="QJSEngine">
- <enum-type name="Extension" flags="Extensions" since="5.6"/>
- <enum-type name="ObjectOwnership" since="6.0"/>
+ <enum-type name="Extension" flags="Extensions"/>
+ <enum-type name="ObjectOwnership"/>
<add-function signature="toScriptValue(const QVariant&amp;)" return-type="QJSValue">
<inject-code class="target" position="end" file="../glue/qtqml.cpp" snippet="qjsengine-toscriptvalue"/>
</add-function>
@@ -147,7 +150,7 @@
<enum-type name="Type"/>
</value-type>
<value-type name="QJSValue">
- <enum-type name="ErrorType" since="5.12"/>
+ <enum-type name="ErrorType"/>
<enum-type name="SpecialValue"/>
<enum-type name="ObjectConversionBehavior" since="6.1"/>
</value-type>
@@ -156,10 +159,18 @@
<enum-type name="DataType"/>
</object-type>
<object-type name="QQmlApplicationEngine">
- <modify-function signature="load(const QString &amp;)">
+ <!-- PYSIDE-1681: QQmlApplicationEngine constructor, load() and similar need
+ allow-thread in case there is a message handler installed
+ (qInstallMessageHandler) -->
+ <modify-function signature="^QQmlApplicationEngine\(.*\)$" allow-thread="yes"/>
+ <!-- PYSIDE-1736 In the presence of load(QString)/load(QUrl), check for Path/string
+ first to avoid an implicit conversion from string to QUrl. -->
+ <modify-function signature="load(const QString &amp;)" allow-thread="yes" overload-number="1">
<modify-argument index="1"><replace-type modified-type="PyPathLike"/></modify-argument>
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qfile-path-1"/>
</modify-function>
+ <modify-function signature="load(const QUrl &amp;)" allow-thread="yes" overload-number="2"/>
+ <modify-function signature="loadFromModule(QAnyStringView,QAnyStringView)" allow-thread="yes"/>
</object-type>
<object-type name="QQmlComponent">
<enum-type name="CompilationMode"/>
@@ -170,9 +181,19 @@
<modify-function signature="QQmlComponent(QQmlEngine*,QString,QQmlComponent::CompilationMode,QObject*)" allow-thread="yes"/>
<modify-function signature="QQmlComponent(QQmlEngine*,QUrl,QObject*)" allow-thread="yes"/>
<modify-function signature="QQmlComponent(QQmlEngine*,QUrl,QQmlComponent::CompilationMode,QObject*)" allow-thread="yes"/>
+ <modify-function signature="loadFromModule(QAnyStringView,QAnyStringView,QQmlComponent::CompilationMode)" allow-thread="yes"/>
+ <modify-function signature="loadUrl(QUrl)" allow-thread="yes"/>
+ <modify-function signature="loadUrl(QUrl,QQmlComponent::CompilationMode)" allow-thread="yes"/>
+ <modify-function signature="setData(QByteArray,QUrl)" allow-thread="yes"/>
</object-type>
- <object-type name="QQmlContext"/>
- <value-type name="QQmlError"/>
+ <object-type name="QQmlContext">
+ <value-type name="PropertyPair"/>
+ </object-type>
+ <value-type name="QQmlError">
+ <add-function signature="__repr__" return-type="PyObject*">
+ <inject-code class="target" position="beginning" file="../glue/qtqml.cpp" snippet="qmlerrror-repr"/>
+ </add-function>
+ </value-type>
<object-type name="QQmlDebuggingEnabler">
<enum-type name="StartMode"/>
</object-type>
@@ -191,6 +212,30 @@
<modify-argument index="1"><replace-type modified-type="PyPathLike"/></modify-argument>
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qfile-path-1"/>
</modify-function>
+ <add-function signature="singletonInstance(int@qmlTypeId@)"
+ return-type="QObject*">
+ <!-- Suppress return value heuristics -->
+ <modify-argument index="return"
+ pyi-type="Union[PySide6.QtCore.QObject, PySide6.QtQml.QJSValue, None]">
+ <define-ownership class="target" owner="default"/>
+ </modify-argument>
+ <inject-code class="target" file="../glue/qtqml.cpp"
+ snippet="qqmlengine-singletoninstance-qmltypeid"/>
+ <inject-documentation format="target" mode="append" file="../doc/qtqml_functions.rst"
+ snippet="qqmlengine-singletoninstance-qmltypeid"/>
+ </add-function>
+ <add-function signature="singletonInstance(QString@uri@,QString@typeName@)"
+ return-type="QObject*">
+ <!-- Suppress return value heuristics -->
+ <modify-argument index="return"
+ pyi-type="Union[PySide6.QtCore.QObject, PySide6.QtQml.QJSValue, None]">
+ <define-ownership class="target" owner="default"/>
+ </modify-argument>
+ <inject-code class="target" file="../glue/qtqml.cpp"
+ snippet="qqmlengine-singletoninstance-typename"/>
+ <inject-documentation format="target" mode="append" file="../doc/qtqml_functions.rst"
+ snippet="qqmlengine-singletoninstance-typename"/>
+ </add-function>
</object-type>
<object-type name="QQmlExpression">
@@ -198,7 +243,7 @@
<modify-argument index="1">
<remove-argument />
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[Any, bool]">
<replace-type modified-type="PyTuple"/>
</modify-argument>
<inject-code class="target" position="beginning">
@@ -224,7 +269,7 @@
</object-type>
<object-type name="QQmlIncubationController">
<extra-includes>
- <include file-name="pysideqmlregistertype.h" location="local"/>
+ <include file-name="pysideqmlvolatilebool.h" location="local"/>
</extra-includes>
<modify-function signature="incubateWhile(std::atomic&lt;bool&gt;*,int)" allow-thread="yes">
<modify-argument index="1">
@@ -246,19 +291,21 @@
for the QML parts.
<value-type name="QQmlListProperty"/>-->
<value-type name="QQmlListReference"/>
- <interface-type name="QQmlParserStatus"/>
+ <object-type name="QQmlParserStatus"/>
+ <object-type name="QPyQmlParserStatus"/>
<value-type name="QQmlProperty">
<enum-type name="PropertyTypeCategory"/>
<enum-type name="Type"/>
</value-type>
<object-type name="QQmlPropertyMap"/>
<object-type name="QQmlPropertyValueSource"/>
+ <object-type name="QPyQmlPropertyValueSource"/>
<value-type name="QQmlScriptString">
<modify-function signature="numberLiteral(bool*)const" allow-thread="yes">
<modify-argument index="1">
<remove-argument />
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[float, bool]">
<replace-type modified-type="PyTuple"/>
</modify-argument>
<inject-code class="target" position="beginning">
@@ -269,7 +316,7 @@
<modify-argument index="1">
<remove-argument />
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[bool, bool]">
<replace-type modified-type="PyTuple"/>
</modify-argument>
<inject-code class="target" position="beginning">
diff --git a/sources/pyside6/PySide6/QtQuick/CMakeLists.txt b/sources/pyside6/PySide6/QtQuick/CMakeLists.txt
index 355513bd6..775230242 100644
--- a/sources/pyside6/PySide6/QtQuick/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtQuick/CMakeLists.txt
@@ -1,11 +1,24 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtQuick)
+set(QtQuick_DROPPED_ENTRIES)
+
set(QtQuick_registerType "${QtQuick_SOURCE_DIR}/pysidequickregistertype.cpp")
+# Exclude sources that have clashing static helper functions named "renderstate_..."
+set(QtQuick_SRC_UNITY_EXCLUDED_SRC
+ ${QtQuick_GEN_DIR}/qsgrendernode_renderstate_wrapper.cpp
+ ${QtQuick_GEN_DIR}/qsgmaterialshader_renderstate_wrapper.cpp
+)
+
+set_property(SOURCE ${QtQuick_SRC_UNITY_EXCLUDED_SRC}
+ PROPERTY SKIP_UNITY_BUILD_INCLUSION ON)
+
set(QtQuick_SRC
+${QtQuick_SRC_UNITY_EXCLUDED_SRC}
${QtQuick_GEN_DIR}/qquickasyncimageprovider_wrapper.cpp
-${QtQuick_GEN_DIR}/qquickframebufferobject_wrapper.cpp
-${QtQuick_GEN_DIR}/qquickframebufferobject_renderer_wrapper.cpp
${QtQuick_GEN_DIR}/qquickgraphicsconfiguration_wrapper.cpp
${QtQuick_GEN_DIR}/qquickgraphicsdevice_wrapper.cpp
${QtQuick_GEN_DIR}/qquicktexturefactory_wrapper.cpp
@@ -19,9 +32,12 @@ ${QtQuick_GEN_DIR}/qsharedpointer_qquickitemgrabresult_wrapper.cpp
${QtQuick_GEN_DIR}/qquickpainteditem_wrapper.cpp
${QtQuick_GEN_DIR}/qquickrendercontrol_wrapper.cpp
${QtQuick_GEN_DIR}/qquickrendertarget_wrapper.cpp
+${QtQuick_GEN_DIR}/qquickrhiitemrenderer_wrapper.cpp
+${QtQuick_GEN_DIR}/qquickrhiitem_wrapper.cpp
${QtQuick_GEN_DIR}/qquicktextdocument_wrapper.cpp
${QtQuick_GEN_DIR}/qquickview_wrapper.cpp
${QtQuick_GEN_DIR}/qquickwindow_wrapper.cpp
+${QtQuick_GEN_DIR}/qquickwindow_graphicsstateinfo_wrapper.cpp
${QtQuick_GEN_DIR}/qsgbasicgeometrynode_wrapper.cpp
${QtQuick_GEN_DIR}/qsgclipnode_wrapper.cpp
${QtQuick_GEN_DIR}/qsgdynamictexture_wrapper.cpp
@@ -33,21 +49,25 @@ ${QtQuick_GEN_DIR}/qsggeometry_point2d_wrapper.cpp
${QtQuick_GEN_DIR}/qsggeometry_texturedpoint2d_wrapper.cpp
${QtQuick_GEN_DIR}/qsggeometry_wrapper.cpp
${QtQuick_GEN_DIR}/qsggeometrynode_wrapper.cpp
+${QtQuick_GEN_DIR}/qsgimagenode_wrapper.cpp
${QtQuick_GEN_DIR}/qsgmaterial_wrapper.cpp
-${QtQuick_GEN_DIR}/qsgmaterialshader_renderstate_wrapper.cpp
${QtQuick_GEN_DIR}/qsgmaterialshader_wrapper.cpp
+${QtQuick_GEN_DIR}/qsgmaterialshader_graphicspipelinestate_wrapper.cpp
${QtQuick_GEN_DIR}/qsgmaterialtype_wrapper.cpp
+${QtQuick_GEN_DIR}/qsgninepatchnode_wrapper.cpp
${QtQuick_GEN_DIR}/qsgnode_wrapper.cpp
+${QtQuick_GEN_DIR}/qsgnodevisitor_wrapper.cpp
${QtQuick_GEN_DIR}/qsgopacitynode_wrapper.cpp
${QtQuick_GEN_DIR}/qsgopaquetexturematerial_wrapper.cpp
#${QtQuick_GEN_DIR}/qsgsimplematerial_wrapper.cpp
#${QtQuick_GEN_DIR}/qsgsimplematerialshader_wrapper.cpp
${QtQuick_GEN_DIR}/qsgrectanglenode_wrapper.cpp
-${QtQuick_GEN_DIR}/qsgrendernode_renderstate_wrapper.cpp
${QtQuick_GEN_DIR}/qsgrendernode_wrapper.cpp
+${QtQuick_GEN_DIR}/qsgrootnode_wrapper.cpp
${QtQuick_GEN_DIR}/qsgsimplerectnode_wrapper.cpp
${QtQuick_GEN_DIR}/qsgsimpletexturenode_wrapper.cpp
${QtQuick_GEN_DIR}/qsgrendererinterface_wrapper.cpp
+${QtQuick_GEN_DIR}/qsgtextnode_wrapper.cpp
${QtQuick_GEN_DIR}/qsgtexture_wrapper.cpp
${QtQuick_GEN_DIR}/qsgtexturematerial_wrapper.cpp
${QtQuick_GEN_DIR}/qsgtextureprovider_wrapper.cpp
@@ -62,28 +82,32 @@ set(QtQuick_include_dirs ${QtQuick_SOURCE_DIR}
${Qt${QT_MAJOR_VERSION}Core_INCLUDE_DIRS}
${Qt${QT_MAJOR_VERSION}Core_PRIVATE_INCLUDE_DIRS}
${Qt${QT_MAJOR_VERSION}Gui_INCLUDE_DIRS}
- ${Qt${QT_MAJOR_VERSION}OpenGL_INCLUDE_DIRS}
${Qt${QT_MAJOR_VERSION}Network_INCLUDE_DIRS}
${Qt${QT_MAJOR_VERSION}Qml_INCLUDE_DIRS}
${Qt${QT_MAJOR_VERSION}Qml_PRIVATE_INCLUDE_DIRS}
${Qt${QT_MAJOR_VERSION}Quick_INCLUDE_DIRS}
${libpyside_SOURCE_DIR}
${QtGui_GEN_DIR}
- ${QtOpenGL_GEN_DIR}
${QtCore_GEN_DIR}
${QtNetwork_GEN_DIR}
${QtQml_GEN_DIR}
${QtQuick_GEN_DIR})
-set(QtQuick_libraries pyside6
- ${Qt${QT_MAJOR_VERSION}Core_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Gui_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}OpenGL_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Network_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Qml_LIBRARIES}
+set(QtQuick_libraries pyside6 pyside6qml
${Qt${QT_MAJOR_VERSION}Quick_LIBRARIES})
-set(QtQuick_deps QtGui QtOpenGL QtNetwork QtQml)
+set(QtQuick_deps QtGui QtNetwork QtQml)
+
+check_qt_opengl("Quick" QtQuick_include_dirs QtQuick_deps
+ QtQuick_DROPPED_ENTRIES)
+
+if (Qt${QT_MAJOR_VERSION}OpenGL_FOUND)
+ list(APPEND QtQuick_SRC
+ ${QtQuick_GEN_DIR}/qquickframebufferobject_wrapper.cpp
+ ${QtQuick_GEN_DIR}/qquickframebufferobject_renderer_wrapper.cpp)
+else()
+ list(APPEND QtQuick_DROPPED_ENTRIES QQuickFramebufferObject)
+endif()
create_pyside_module(NAME QtQuick
INCLUDE_DIRS QtQuick_include_dirs
@@ -91,4 +115,5 @@ create_pyside_module(NAME QtQuick
DEPS QtQuick_deps
TYPESYSTEM_PATH QtQuick_SOURCE_DIR
SOURCES QtQuick_SRC
- STATIC_SOURCES QtQuick_registerType)
+ STATIC_SOURCES QtQuick_registerType
+ DROPPED_ENTRIES QtQuick_DROPPED_ENTRIES)
diff --git a/sources/pyside6/PySide6/QtQuick/pysidequickregistertype.cpp b/sources/pyside6/PySide6/QtQuick/pysidequickregistertype.cpp
index 542482d32..f7749b4e7 100644
--- a/sources/pyside6/PySide6/QtQuick/pysidequickregistertype.cpp
+++ b/sources/pyside6/PySide6/QtQuick/pysidequickregistertype.cpp
@@ -1,191 +1,44 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include "pysidequickregistertype.h"
#include <pyside.h>
+#include <pysideqmlregistertype.h>
#include <pyside_p.h>
#include <shiboken.h>
-// TODO: Remove this ifdef once 6.1.0 is released
-#if (QT_VERSION >= QT_VERSION_CHECK(6, 2, 0))
-#include <QtQml/private/qqmlmetatype_p.h>
-#endif
-
-// Auto generated headers.
-#include "qquickitem_wrapper.h"
-#include "qquickpainteditem_wrapper.h"
-#include "qquickframebufferobject_wrapper.h"
-#include "pyside6_qtcore_python.h"
-#include "pyside6_qtquick_python.h"
-#include "pyside6_qtqml_python.h"
-
-// Mutex used to avoid race condition on PySide::nextQObjectMemoryAddr.
-static QMutex nextQmlElementMutex;
+#include <QtQuick/QQuickPaintedItem>
-static void createQuickItem(void *memory, void *type)
-{
- QMutexLocker locker(&nextQmlElementMutex);
- PySide::setNextQObjectMemoryAddr(memory);
- Shiboken::GilState state;
- PyObject *obj = PyObject_CallObject(reinterpret_cast<PyObject *>(type), 0);
- if (!obj || PyErr_Occurred())
- PyErr_Print();
- PySide::setNextQObjectMemoryAddr(0);
-}
-
-#define PY_REGISTER_IF_INHERITS_FROM(className, typeToRegister,typePointerName, \
- typeListName, typeMetaObject, type, registered) \
- registerTypeIfInheritsFromClass<className##Wrapper>(#className, typeToRegister, \
- typePointerName, typeListName, \
- typeMetaObject, type, registered)
+#if QT_CONFIG(opengl) || QT_CONFIG(opengles2) || QT_CONFIG(opengles3)
+# include <QtQuick/QQuickFramebufferObject>
+#endif
-bool pyTypeObjectInheritsFromClass(PyTypeObject *pyObjType, QByteArray className)
+bool pyTypeObjectInheritsFromClass(PyTypeObject *pyObjType, const char *classPtrName)
{
- className.append('*');
- PyTypeObject *classPyType = Shiboken::Conversions::getPythonTypeObject(className.constData());
+ PyTypeObject *classPyType = Shiboken::Conversions::getPythonTypeObject(classPtrName);
bool isDerived = PySequence_Contains(pyObjType->tp_mro,
reinterpret_cast<PyObject *>(classPyType));
return isDerived;
}
-// TODO: Remove this ifdef once 6.1.0 is released
-#if (QT_VERSION >= QT_VERSION_CHECK(6, 2, 0))
-template <typename T>
-struct QPysideQmlMetaTypeInterface : public QQmlMetaTypeInterface
+template <class WrappedClass>
+bool registerTypeIfInheritsFromClass(const char *classPtrName,
+ PyTypeObject *typeToRegister,
+ QQmlPrivate::RegisterTypeAndRevisions *type)
{
- const QMetaObject *metaObject;
-
- static const QMetaObject *metaObjectFun(const QMetaTypeInterface *mti)
- {
- return static_cast<const QPysideQmlMetaTypeInterface *>(mti)->metaObject;
- }
-
- QPysideQmlMetaTypeInterface(const QByteArray &name, const QMetaObject *metaObjectIn = nullptr)
- : QQmlMetaTypeInterface(name, static_cast<T*>(nullptr)), metaObject(metaObjectIn) {
- metaObjectFn = metaObjectFun;
- }
-};
-#else
-// TODO: Remove this case once 6.1.0 is released!
-template <typename T>
-struct QPysideQmlMetaTypeInterface : QtPrivate::QMetaTypeInterface
-{
- const QByteArray name;
- const QMetaObject *metaObject;
-
- static const QMetaObject *metaObjectFn(const QMetaTypeInterface *mti)
- {
- return static_cast<const QPysideQmlMetaTypeInterface *>(mti)->metaObject;
- }
-
- QPysideQmlMetaTypeInterface(const QByteArray &name, const QMetaObject *metaObjectIn = nullptr)
- : QMetaTypeInterface {
- /*.revision=*/ 0,
- /*.alignment=*/ alignof(T),
- /*.size=*/ sizeof(T),
- /*.flags=*/ QtPrivate::QMetaTypeTypeFlags<T>::Flags,
- /*.typeId=*/ 0,
- /*.metaObjectFn=*/ metaObjectFn,
- /*.name=*/ name.constData(),
- /*.defaultCtr=*/ [](const QMetaTypeInterface *, void *addr) { new (addr) T(); },
- /*.copyCtr=*/ [](const QMetaTypeInterface *, void *addr, const void *other) {
- new (addr) T(*reinterpret_cast<const T *>(other));
- },
- /*.moveCtr=*/ [](const QMetaTypeInterface *, void *addr, void *other) {
- new (addr) T(std::move(*reinterpret_cast<T *>(other)));
- },
- /*.dtor=*/ [](const QMetaTypeInterface *, void *addr) {
- reinterpret_cast<T *>(addr)->~T();
- },
- /*.equals=*/ nullptr,
- /*.lessThan=*/ nullptr,
- /*.debugStream=*/ nullptr,
- /*.dataStreamOut=*/ nullptr,
- /*.dataStreamIn=*/ nullptr,
- /*.legacyRegisterOp=*/ nullptr
- }
- , name(name), metaObject(metaObjectIn) {}
-};
-
-#endif
-
-template <class WrapperClass>
-void registerTypeIfInheritsFromClass(
- QByteArray className,
- PyTypeObject *typeToRegister,
- const QByteArray &typePointerName,
- const QByteArray &typeListName,
- const QMetaObject *typeMetaObject,
- QQmlPrivate::RegisterType *type,
- bool &registered)
-{
- bool shouldRegister = !registered && pyTypeObjectInheritsFromClass(typeToRegister, className);
- if (shouldRegister) {
-
- QMetaType ptrType(new QPysideQmlMetaTypeInterface<WrapperClass *>(typePointerName, typeMetaObject));
-
- // TODO: Remove this ifdef once 6.1.0 is released
-#if (QT_VERSION >= QT_VERSION_CHECK(6, 2, 0))
- QMetaType lstType(new QQmlListMetaTypeInterface(typeListName, static_cast<QQmlListProperty<WrapperClass>*>(nullptr), ptrType.iface()));
-#else
- QMetaType lstType(new QPysideQmlMetaTypeInterface<QQmlListProperty<WrapperClass>>(typeListName));
-#endif
-
- type->typeId = std::move(ptrType);
- type->listId = std::move(lstType);
- type->attachedPropertiesFunction = QQmlPrivate::attachedPropertiesFunc<WrapperClass>();
- type->attachedPropertiesMetaObject =
- QQmlPrivate::attachedPropertiesMetaObject<WrapperClass>();
- type->parserStatusCast =
- QQmlPrivate::StaticCastSelector<WrapperClass, QQmlParserStatus>::cast();
- type->valueSourceCast =
- QQmlPrivate::StaticCastSelector<WrapperClass, QQmlPropertyValueSource>::cast();
- type->valueInterceptorCast =
- QQmlPrivate::StaticCastSelector<WrapperClass, QQmlPropertyValueInterceptor>::cast();
- type->objectSize = sizeof(WrapperClass);
- registered = true;
- }
+ if (!pyTypeObjectInheritsFromClass(typeToRegister, classPtrName))
+ return false;
+ type->parserStatusCast =
+ QQmlPrivate::StaticCastSelector<WrappedClass, QQmlParserStatus>::cast();
+ type->valueSourceCast =
+ QQmlPrivate::StaticCastSelector<WrappedClass, QQmlPropertyValueSource>::cast();
+ type->valueInterceptorCast =
+ QQmlPrivate::StaticCastSelector<WrappedClass, QQmlPropertyValueInterceptor>::cast();
+ return true;
}
-bool quickRegisterType(PyObject *pyObj, const char *uri, int versionMajor, int versionMinor,
- const char *qmlName, bool creatable, const char *noCreationReason, QQmlPrivate::RegisterType *type)
+bool quickRegisterType(PyObject *pyObj, QQmlPrivate::RegisterTypeAndRevisions *type)
{
using namespace Shiboken;
@@ -199,57 +52,25 @@ bool quickRegisterType(PyObject *pyObj, const char *uri, int versionMajor, int v
if (!isQuickItem)
return false;
- // Used inside macros to register the type.
- const QMetaObject *metaObject = PySide::retrieveMetaObject(pyObj);
- Q_ASSERT(metaObject);
-
-
- // Incref the type object, don't worry about decref'ing it because
- // there's no way to unregister a QML type.
- Py_INCREF(pyObj);
-
- // Used in macro registration.
- QByteArray pointerName(qmlName);
- pointerName.append('*');
- QByteArray listName(qmlName);
- listName.prepend("QQmlListProperty<");
- listName.append('>');
-
- bool registered = false;
- PY_REGISTER_IF_INHERITS_FROM(QQuickPaintedItem, pyObjType, pointerName, listName, metaObject,
- type, registered);
- PY_REGISTER_IF_INHERITS_FROM(QQuickFramebufferObject, pyObjType, pointerName, listName,
- metaObject, type, registered);
- PY_REGISTER_IF_INHERITS_FROM(QQuickItem, pyObjType, pointerName, listName, metaObject,
- type, registered);
- if (!registered)
- return false;
-
- type->structVersion = 0;
- type->create = creatable ? createQuickItem : nullptr;
- type->noCreationReason = noCreationReason;
- type->userdata = pyObj;
- type->uri = uri;
- type->version = QTypeRevision::fromVersion(versionMajor, versionMinor);
- type->elementName = qmlName;
- type->metaObject = metaObject;
-
- type->extensionObjectCreate = 0;
- type->extensionMetaObject = 0;
- type->customParser = 0;
-
- return true;
+ return registerTypeIfInheritsFromClass<QQuickPaintedItem>("QQuickPaintedItem*",
+ pyObjType, type)
+#if QT_CONFIG(opengl) || QT_CONFIG(opengles2) || QT_CONFIG(opengles3)
+ || registerTypeIfInheritsFromClass<QQuickFramebufferObject>("QQuickFramebufferObject*",
+ pyObjType, type)
+#endif
+ || registerTypeIfInheritsFromClass<QQuickItem>("QQuickItem*",
+ pyObjType, type);
}
void PySide::initQuickSupport(PyObject *module)
{
Q_UNUSED(module);
-#ifdef PYSIDE_QML_SUPPORT
// We need to manually register a pointer version of these types in order for them to be used as property types.
qRegisterMetaType<QQuickPaintedItem*>("QQuickPaintedItem*");
+#if QT_CONFIG(opengl) || QT_CONFIG(opengles2) || QT_CONFIG(opengles3)
qRegisterMetaType<QQuickFramebufferObject*>("QQuickFramebufferObject*");
+#endif
qRegisterMetaType<QQuickItem*>("QQuickItem*");
- setQuickRegisterItemFunction(quickRegisterType);
-#endif
+ Qml::setQuickRegisterItemFunction(quickRegisterType);
}
diff --git a/sources/pyside6/PySide6/QtQuick/pysidequickregistertype.h b/sources/pyside6/PySide6/QtQuick/pysidequickregistertype.h
index ee4b60866..89e0ced67 100644
--- a/sources/pyside6/PySide6/QtQuick/pysidequickregistertype.h
+++ b/sources/pyside6/PySide6/QtQuick/pysidequickregistertype.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef PYSIDE_QUICK_REGISTER_TYPE_H
#define PYSIDE_QUICK_REGISTER_TYPE_H
diff --git a/sources/pyside6/PySide6/QtQuick/typesystem_quick.xml b/sources/pyside6/PySide6/QtQuick/typesystem_quick.xml
index 04d3be885..0a24123f4 100644
--- a/sources/pyside6/PySide6/QtQuick/typesystem_quick.xml
+++ b/sources/pyside6/PySide6/QtQuick/typesystem_quick.xml
@@ -1,52 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtQuick">
+<typesystem package="PySide6.QtQuick"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="QtCore/typesystem_core.xml" generate="no"/>
<load-typesystem name="QtNetwork/typesystem_network.xml" generate="no"/>
+ <load-typesystem name="QtGui/typesystem_gui.xml" generate="no"/>
<!-- QQuickFramebufferObject::Renderer needs QOpenGLFramebufferObject -->
+ <?if !no_QtOpenGL?>
<load-typesystem name="QtOpenGL/typesystem_opengl.xml" generate="no"/>
+ <?endif?>
<load-typesystem name="QtQml/typesystem_qml.xml" generate="no"/>
- <smart-pointer-type name="QSharedPointer" type="shared" getter="data"/>
+ <smart-pointer-type name="QSharedPointer" type="shared" getter="data"
+ reset-method="reset"/>
<extra-includes>
<include file-name="pysidequickregistertype.h" location="local"/>
@@ -54,18 +23,34 @@
<inject-code class="target" position="end" file="../glue/qtquick.cpp" snippet="qtquick"/>
- <object-type name="QQuickAsyncImageProvider" since="5.6"/>
+ <object-type name="QQuickAsyncImageProvider">
+ <modify-function signature="requestImageResponse(const QString&amp;,const QSize&amp;)">
+ <modify-argument index="return">
+ <define-ownership class="native" owner="c++"/>
+ </modify-argument>
+ </modify-function>
+ </object-type>
<object-type name="QQuickFramebufferObject">
<object-type name="Renderer"/>
+ <modify-function signature="createRenderer()const">
+ <modify-argument index="return">
+ <define-ownership class="native" owner="c++"/>
+ </modify-argument>
+ </modify-function>
</object-type>
<value-type name="QQuickGraphicsConfiguration"/>
- <value-type name="QQuickGraphicsDevice"/>
+ <value-type name="QQuickGraphicsDevice">
+ <!-- PYSIDE-1726, after qtbase/696d94b132b2f352b5e6b889ad91c2437417fae8,
+ the functions are defined with dummy types when Vulkan is not present. -->
+ <modify-function signature="^fromPhysicalDevice\(.*$" remove="all"/>
+ <modify-function signature="^fromDeviceObjects\(.*$" remove="all"/>
+ </value-type>
<object-type name="QQuickTextureFactory"/>
<object-type name="QQuickImageProvider"/>
- <object-type name="QQuickImageResponse" since="5.6"/>
+ <object-type name="QQuickImageResponse"/>
<object-type name="QQuickTransform"/>
<object-type name="QQuickItem" delete-in-main-thread="true">
@@ -77,16 +62,28 @@
<modify-argument index="2">
<remove-argument />
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[bool, PySide6.QtGui.QTransform]">
<replace-type modified-type="PyTuple"/>
</modify-argument>
<inject-code class="target" position="beginning">
<insert-template name="fix_args,bool*"/>
</inject-code>
</modify-function>
+ <modify-function signature="updatePaintNode(QSGNode*,QQuickItem::UpdatePaintNodeData*)">
+ <modify-argument index="return">
+ <define-ownership class="native" owner="c++"/>
+ <define-ownership class="target" owner="default"/>
+ </modify-argument>
+ </modify-function>
+
<!-- TODO: Find a way to wrap `union ItemChangeData {}` -->
</object-type>
+ <object-type name="QQuickRhiItemRenderer" since="6.7"/>
+ <object-type name="QQuickRhiItem" since="6.7">
+ <enum-type name="TextureFormat"/>
+ </object-type>
+
<object-type name="QQuickItemGrabResult"/>
<object-type name="QQuickPaintedItem">
@@ -95,9 +92,15 @@
</object-type>
<object-type name="QQuickRenderControl"/>
- <value-type name="QQuickRenderTarget"/>
-
- <object-type name="QQuickTextDocument"/>
+ <value-type name="QQuickRenderTarget">
+ <!-- PYSIDE-1726, after qtbase/696d94b132b2f352b5e6b889ad91c2437417fae8,
+ the function is defined with dummy types when Vulkan is not present. -->
+ <modify-function signature="^fromVulkanImage\(.*$" remove="all"/>
+ </value-type>
+
+ <object-type name="QQuickTextDocument">
+ <enum-type name="Status" since="6.7"/>
+ </object-type>
<object-type name="QQuickView">
<enum-type name="ResizeMode"/>
@@ -108,25 +111,66 @@
<enum-type name="CreateTextureOption" flags="CreateTextureOptions"/>
<enum-type name="RenderStage"/>
<enum-type name="SceneGraphError"/>
- <enum-type name="TextRenderType" since="5.10"/>
+ <enum-type name="TextRenderType"/>
+ <value-type name="GraphicsStateInfo"/>
+ </object-type>
+
+ <object-type name="QSGBasicGeometryNode">
+ <modify-function signature="setGeometry(QSGGeometry*)">
+ <modify-argument index="1">
+ <define-ownership class="target" owner="c++"/>
+ </modify-argument>
+ </modify-function>
</object-type>
- <object-type name="QSGBasicGeometryNode"/>
<object-type name="QSGClipNode"/>
<object-type name="QSGDynamicTexture"/>
<object-type name="QSGFlatColorMaterial"/>
<object-type name="QSGGeometry">
+ <extra-includes>
+ <include file-name="algorithm" location="global"/>
+ </extra-includes>
<enum-type name="DataPattern"/>
- <enum-type name="AttributeType" since="5.8"/>
- <enum-type name="DrawingMode" since="5.8"/>
- <enum-type name="Type" since="5.8"/>
+ <enum-type name="AttributeType"/>
+ <enum-type name="DrawingMode" python-type="IntEnum"/>
+ <enum-type name="Type"/>
<value-type name="Attribute"/>
<value-type name="AttributeSet"/>
<value-type name="ColoredPoint2D"/>
<value-type name="Point2D"/>
<value-type name="TexturedPoint2D"/>
+ <modify-function signature="vertexDataAsPoint2D()">
+ <modify-argument index="return">
+ <replace-type modified-type="PyObject*"/>
+ </modify-argument>
+ <inject-code class="target" file="../glue/qtquick.cpp" snippet="qsgeometry-vertexdataaspoint2d"/>
+ </modify-function>
+ <add-function signature="setVertexDataAsPoint2D(const QList&lt;QSGGeometry::Point2D&gt;&amp;@points@)">
+ <inject-code class="target" file="../glue/qtquick.cpp" snippet="qsgeometry-setvertexdataaspoint2d"/>
+ <inject-documentation format="target" mode="append">
+ Sets the vertex data from a list of QSGGeometry.Point2D.
+ The list size must match the allocated number of vertexes
+ as returned by QSGGeometry.vertexCount().
+ </inject-documentation>
+ </add-function>
+
+ </object-type>
+ <object-type name="QSGGeometryNode">
+ <modify-function signature="setMaterial(QSGMaterial*)">
+ <modify-argument index="1">
+ <define-ownership class="target" owner="c++"/>
+ </modify-argument>
+ </modify-function>
+ <modify-function signature="setOpaqueMaterial(QSGMaterial*)">
+ <modify-argument index="1">
+ <define-ownership class="target" owner="c++"/>
+ </modify-argument>
+ </modify-function>
+ </object-type>
+
+ <object-type name="QSGImageNode">
+ <enum-type name="TextureCoordinatesTransformFlag" flags="TextureCoordinatesTransformMode"/>
</object-type>
- <object-type name="QSGGeometryNode"/>
<object-type name="QSGMaterial">
<enum-type name="Flag" flags="Flags"/>
@@ -137,20 +181,35 @@
<value-type name="RenderState">
<enum-type name="DirtyState" flags="DirtyStates"/>
</value-type>
+ <value-type name="GraphicsPipelineState">
+ <enum-type name="BlendFactor"/>
+ <enum-type name="ColorMaskComponent" flags="ColorMask"/>
+ <enum-type name="CullMode"/>
+ <enum-type name="PolygonMode"/>
+ </value-type>
<modify-function signature="updateSampledImage(QSGMaterialShader::RenderState&amp;,int,QSGTexture**,QSGMaterial*,QSGMaterial*)" remove="all"/>
+ <!-- Private QRhi class -->
+ <modify-function signature="setShader(QSGMaterialShader::Stage,QShader)" remove="all"/>
</object-type>
<object-type name="QSGMaterialType"/>
+ <object-type name="QSGNinePatchNode"/>
<object-type name="QSGNode">
<enum-type name="DirtyStateBit" flags="DirtyState"/>
<enum-type name="Flag" flags="Flags"/>
<enum-type name="NodeType"/>
</object-type>
+ <object-type name="QSGNodeVisitor"/>
+
<object-type name="QSGOpacityNode"/>
<object-type name="QSGOpaqueTextureMaterial"/>
<object-type name="QSGSimpleRectNode"/>
<object-type name="QSGSimpleTextureNode">
<enum-type name="TextureCoordinatesTransformFlag" flags="TextureCoordinatesTransformMode"/>
</object-type>
+ <object-type name="QSGTextNode" since="6.7">
+ <enum-type name="TextStyle"/>
+ <enum-type name="RenderType"/>
+ </object-type>
<object-type name="QSGRectangleNode"/>
<object-type name="QSGRendererInterface">
<enum-type name="GraphicsApi"/>
@@ -165,8 +224,9 @@
<enum-type name="RenderingFlag" flags="RenderingFlags"/>
<object-type name="RenderState"/>
</object-type>
+ <object-type name="QSGRootNode"/>
<object-type name="QSGTexture">
- <enum-type name="AnisotropyLevel" since="5.9"/>
+ <enum-type name="AnisotropyLevel"/>
<enum-type name="Filtering"/>
<enum-type name="WrapMode"/>
</object-type>
@@ -184,4 +244,8 @@
<object-type name="QSGSimpleMaterialShader"/>
-->
+ <suppress-warning text="^signature.*fromVulkanImage.*not found.*$"/>
+ <suppress-warning text="^signature.*fromPhysicalDevice.*not found.*$"/>
+ <suppress-warning text="^signature.*fromDeviceObjects.*not found.*$"/>
+
</typesystem>
diff --git a/sources/pyside6/PySide6/QtQuick3D/CMakeLists.txt b/sources/pyside6/PySide6/QtQuick3D/CMakeLists.txt
new file mode 100644
index 000000000..37f8ebfb1
--- /dev/null
+++ b/sources/pyside6/PySide6/QtQuick3D/CMakeLists.txt
@@ -0,0 +1,54 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+project(QtQuick3D)
+
+set (QtQuick3D_DROPPED_ENTRIES)
+
+set(QtQuick3D_SRC
+${QtQuick3D_GEN_DIR}/qquick3d_wrapper.cpp
+${QtQuick3D_GEN_DIR}/qquick3dobject_wrapper.cpp
+${QtQuick3D_GEN_DIR}/qquick3dgeometry_wrapper.cpp
+${QtQuick3D_GEN_DIR}/qquick3dgeometry_attribute_wrapper.cpp
+${QtQuick3D_GEN_DIR}/qquick3dgeometry_targetattribute_wrapper.cpp
+${QtQuick3D_GEN_DIR}/qquick3dinstancing_wrapper.cpp
+${QtQuick3D_GEN_DIR}/qquick3dinstancing_instancetableentry_wrapper.cpp
+${QtQuick3D_GEN_DIR}/qquick3drenderextension_wrapper.cpp
+${QtQuick3D_GEN_DIR}/qquick3dtexturedata_wrapper.cpp
+# module is always needed
+${QtQuick3D_GEN_DIR}/qtquick3d_module_wrapper.cpp
+)
+
+set(QtQuick3D_include_dirs ${QtQuick3D_SOURCE_DIR}
+ ${QtQml_SOURCE_DIR}
+ ${Qt${QT_MAJOR_VERSION}Core_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}Core_PRIVATE_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}Gui_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}Network_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}Qml_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}Qml_PRIVATE_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}Quick_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}Quick3D_INCLUDE_DIRS}
+ ${libpyside_SOURCE_DIR}
+ ${QtGui_GEN_DIR}
+ ${QtCore_GEN_DIR}
+ ${QtNetwork_GEN_DIR}
+ ${QtQml_GEN_DIR}
+ ${QtQuick_GEN_DIR}
+ ${QtQuick3D_GEN_DIR})
+
+set(QtQuick3D_libraries pyside6
+ ${Qt${QT_MAJOR_VERSION}Quick3D_LIBRARIES})
+
+set(QtQuick3D_deps QtGui QtNetwork QtQml QtQuick)
+
+check_qt_opengl("Quick3D" QtQuick3D_include_dirs QtQuick3D_deps
+ QtQuick3D_DROPPED_ENTRIES)
+
+create_pyside_module(NAME QtQuick3D
+ INCLUDE_DIRS QtQuick3D_include_dirs
+ LIBRARIES QtQuick3D_libraries
+ DEPS QtQuick3D_deps
+ TYPESYSTEM_PATH QtQuick3D_SOURCE_DIR
+ SOURCES QtQuick3D_SRC
+ DROPPED_ENTRIES QtQuick3D_DROPPED_ENTRIES)
diff --git a/sources/pyside6/PySide6/QtQuick3D/typesystem_quick3d.xml b/sources/pyside6/PySide6/QtQuick3D/typesystem_quick3d.xml
new file mode 100644
index 000000000..fe8f4e700
--- /dev/null
+++ b/sources/pyside6/PySide6/QtQuick3D/typesystem_quick3d.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+-->
+<typesystem package="PySide6.QtQuick3D"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
+ <load-typesystem name="QtQuick/typesystem_quick.xml" generate="no"/>
+
+ <object-type name="QQuick3D"/>
+ <object-type name="QQuick3DObject">
+ <enum-type name="ItemChange"/>
+ <modify-function signature="QQuick3DObject(QQuick3DObject*)" remove="all"/>
+ </object-type>
+ <object-type name="QQuick3DGeometry">
+ <value-type name="Attribute">
+ <enum-type name="Semantic"/>
+ <enum-type name="ComponentType"/>
+ </value-type>
+ <value-type name="TargetAttribute" since="6.6"/>
+ <enum-type name="PrimitiveType"/>
+ </object-type>
+ <object-type name="QQuick3DInstancing">
+ <value-type name="InstanceTableEntry"/>
+ </object-type>
+ <object-type name="QQuick3DTextureData">
+ <enum-type name="Format"/>
+ </object-type>
+ <object-type name="QQuick3DRenderExtension" since="6.7"/>
+</typesystem>
diff --git a/sources/pyside6/PySide6/QtQuickControls2/CMakeLists.txt b/sources/pyside6/PySide6/QtQuickControls2/CMakeLists.txt
index d5f35050d..9951d2e1e 100644
--- a/sources/pyside6/PySide6/QtQuickControls2/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtQuickControls2/CMakeLists.txt
@@ -1,7 +1,13 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtQuickControls2)
+set (QtQuickControls2_DROPPED_ENTRIES)
+
set(QtQuickControls2_SRC
${QtQuickControls2_GEN_DIR}/qquickstyle_wrapper.cpp
+${QtQuickControls2_GEN_DIR}/qquickattachedpropertypropagator_wrapper.cpp
# module is always needed
${QtQuickControls2_GEN_DIR}/qtquickcontrols2_module_wrapper.cpp
)
@@ -11,14 +17,12 @@ set(QtQuickControls2_include_dirs ${QtQuickControls2_SOURCE_DIR}
${QtQml_SOURCE_DIR}
${Qt${QT_MAJOR_VERSION}Core_INCLUDE_DIRS}
${Qt${QT_MAJOR_VERSION}Gui_INCLUDE_DIRS}
- ${Qt${QT_MAJOR_VERSION}OpenGL_INCLUDE_DIRS}
${Qt${QT_MAJOR_VERSION}Network_INCLUDE_DIRS}
${Qt${QT_MAJOR_VERSION}Qml_INCLUDE_DIRS}
${Qt${QT_MAJOR_VERSION}Quick_INCLUDE_DIRS}
${Qt${QT_MAJOR_VERSION}QuickControls2_INCLUDE_DIRS}
${libpyside_SOURCE_DIR}
${QtGui_GEN_DIR}
- ${QtOpenGL_GEN_DIR}
${QtCore_GEN_DIR}
${QtNetwork_GEN_DIR}
${QtQml_GEN_DIR}
@@ -26,19 +30,17 @@ set(QtQuickControls2_include_dirs ${QtQuickControls2_SOURCE_DIR}
${QtQuickControls2_GEN_DIR})
set(QtQuickControls2_libraries pyside6
- ${Qt${QT_MAJOR_VERSION}Core_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Gui_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}OpenGL_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Network_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Qml_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Quick_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}QuickControls2_LIBRARIES})
+ ${Qt${QT_MAJOR_VERSION}QuickControls2_LIBRARIES})
+
+set(QtQuickControls2_deps QtGui QtNetwork QtQml QtQuick)
-set(QtQuickControls2_deps QtGui QtOpenGL QtNetwork QtQml QtQuick)
+check_qt_opengl("QuickControls2" QtQuickControls2_include_dirs QtQuickControls2_deps
+ QtQuickControls2_DROPPED_ENTRIES)
create_pyside_module(NAME QtQuickControls2
INCLUDE_DIRS QtQuickControls2_include_dirs
LIBRARIES QtQuickControls2_libraries
DEPS QtQuickControls2_deps
TYPESYSTEM_PATH QtQuickControls2_SOURCE_DIR
- SOURCES QtQuickControls2_SRC)
+ SOURCES QtQuickControls2_SRC
+ DROPPED_ENTRIES QtQuickControls2_DROPPED_ENTRIES)
diff --git a/sources/pyside6/PySide6/QtQuickControls2/typesystem_quickcontrols2.xml b/sources/pyside6/PySide6/QtQuickControls2/typesystem_quickcontrols2.xml
index 35ac2e3f2..72fc05226 100644
--- a/sources/pyside6/PySide6/QtQuickControls2/typesystem_quickcontrols2.xml
+++ b/sources/pyside6/PySide6/QtQuickControls2/typesystem_quickcontrols2.xml
@@ -1,47 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtQuickControls2">
+<typesystem package="PySide6.QtQuickControls2"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="QtQuick/typesystem_quick.xml" generate="no"/>
- <object-type name="QQuickStyle" since="5.7"/>
+ <object-type name="QQuickStyle"/>
+ <object-type name="QQuickAttachedPropertyPropagator"/>
</typesystem>
diff --git a/sources/pyside6/PySide6/QtQuickTest/CMakeLists.txt b/sources/pyside6/PySide6/QtQuickTest/CMakeLists.txt
new file mode 100644
index 000000000..8e3fb4d57
--- /dev/null
+++ b/sources/pyside6/PySide6/QtQuickTest/CMakeLists.txt
@@ -0,0 +1,44 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+project(QtQuickTest)
+
+set (QtQuickTest_DROPPED_ENTRIES)
+
+set(QtQuickTest_SRC
+# module is always needed
+${QtQuickTest_GEN_DIR}/qtquicktest_module_wrapper.cpp
+)
+
+set(QtQuickTest_include_dirs ${QtQuickTest_SOURCE_DIR}
+ ${QtQml_SOURCE_DIR}
+ ${Qt${QT_MAJOR_VERSION}Core_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}Gui_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}OpenGL_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}Network_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}Qml_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}Quick_INCLUDE_DIRS}
+ ${libpyside_SOURCE_DIR}
+ ${QtGui_GEN_DIR}
+ ${QtOpenGL_GEN_DIR}
+ ${QtCore_GEN_DIR}
+ ${QtNetwork_GEN_DIR}
+ ${QtQml_GEN_DIR}
+ ${QtQuick_GEN_DIR}
+ ${QtQuickTest_GEN_DIR})
+
+set(QtQuickTest_libraries pyside6
+ ${Qt${QT_MAJOR_VERSION}QuickTest_LIBRARIES})
+
+set(QtQuickTest_deps QtGui QtNetwork QtQml QtQuick)
+
+check_qt_opengl("QuickTest" QtQuickTest_include_dirs QtQuickTest_deps
+ QtQuickTest_DROPPED_ENTRIES)
+
+create_pyside_module(NAME QtQuickTest
+ INCLUDE_DIRS QtQuickTest_include_dirs
+ LIBRARIES QtQuickTest_libraries
+ DEPS QtQuickTest_deps
+ TYPESYSTEM_PATH QtQuickTest_SOURCE_DIR
+ SOURCES QtQuickTest_SRC
+ DROPPED_ENTRIES QtQuickTest_DROPPED_ENTRIES)
diff --git a/sources/pyside6/PySide6/QtQuickTest/typesystem_quicktest.xml b/sources/pyside6/PySide6/QtQuickTest/typesystem_quicktest.xml
new file mode 100644
index 000000000..b6ef754e7
--- /dev/null
+++ b/sources/pyside6/PySide6/QtQuickTest/typesystem_quicktest.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+-->
+<typesystem package="PySide6.QtQuickTest"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
+ <load-typesystem name="QtCore/typesystem_core.xml" generate="no"/>
+
+ <extra-includes>
+ <include file-name="QtQuickTest/quicktest.h" location="global"/>
+ <include file-name="QtCore/QDir" location="global"/>
+ <include file-name="pysideqobject.h" location="global"/>
+ <include file-name="vector" location="global"/>
+ </extra-includes>
+ <inject-code class="native" position="beginning"
+ file="../glue/qtquicktest.cpp" snippet="call-quick-test-main"/>
+
+ <add-function signature="QUICK_TEST_MAIN(QString@name@,QStringList@argv@={},QString@dir@={})"
+ return-type="int">
+ <inject-code file="../glue/qtquicktest.cpp" snippet="quick-test-main"/>
+ <inject-documentation format="target" mode="append"
+ file="../doc/qtquicktest.rst"
+ snippet="quick_test_main_documentation"/>
+ </add-function>
+ <add-function signature="QUICK_TEST_MAIN_WITH_SETUP(QString@name@,PyTypeObject*@setup@,QStringList@argv@={},QString@dir@={})"
+ return-type="int">
+ <inject-code file="../glue/qtquicktest.cpp" snippet="quick-test-main_with_setup"/>
+ <inject-documentation format="target" mode="append"
+ file="../doc/qtquicktest.rst"
+ snippet="quick_test_main_with_setup_documentation"/>
+ </add-function>
+</typesystem>
diff --git a/sources/pyside6/PySide6/QtQuickWidgets/CMakeLists.txt b/sources/pyside6/PySide6/QtQuickWidgets/CMakeLists.txt
index 0c6f18bad..883010bee 100644
--- a/sources/pyside6/PySide6/QtQuickWidgets/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtQuickWidgets/CMakeLists.txt
@@ -1,5 +1,10 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtQuickWidgets)
+set (QtQuickWidgets_DROPPED_ENTRIES)
+
set(QtQuickWidgets_SRC
${QtQuickWidgets_GEN_DIR}/qquickwidget_wrapper.cpp
# module is always needed
@@ -27,20 +32,17 @@ set(QtQuickWidgets_include_dirs ${QtQuickWidgets_SOURCE_DIR}
${QtQuickWidgets_GEN_DIR})
set(QtQuickWidgets_libraries pyside6
- ${Qt${QT_MAJOR_VERSION}Core_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Gui_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}OpenGL_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Network_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Widgets_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Quick_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Qml_LIBRARIES}
${Qt${QT_MAJOR_VERSION}QuickWidgets_LIBRARIES})
-set(QtQuickWidgets_deps QtGui QtOpenGL QtQml QtQuick QtWidgets QtNetwork)
+set(QtQuickWidgets_deps QtGui QtQml QtQuick QtWidgets QtNetwork)
+
+check_qt_opengl("QuickWidgets" QtQuickWidgets_include_dirs QtQuickWidgets_deps
+ QtQuickWidgets_DROPPED_ENTRIES)
create_pyside_module(NAME QtQuickWidgets
INCLUDE_DIRS QtQuickWidgets_include_dirs
LIBRARIES QtQuickWidgets_libraries
DEPS QtQuickWidgets_deps
TYPESYSTEM_PATH QtQuickWidgets_SOURCE_DIR
- SOURCES QtQuickWidgets_SRC)
+ SOURCES QtQuickWidgets_SRC
+ DROPPED_ENTRIES QtQuickWidgets_DROPPED_ENTRIES)
diff --git a/sources/pyside6/PySide6/QtQuickWidgets/typesystem_quickwidgets.xml b/sources/pyside6/PySide6/QtQuickWidgets/typesystem_quickwidgets.xml
index 08f8a9dc8..4f4484cb0 100644
--- a/sources/pyside6/PySide6/QtQuickWidgets/typesystem_quickwidgets.xml
+++ b/sources/pyside6/PySide6/QtQuickWidgets/typesystem_quickwidgets.xml
@@ -1,45 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtQuickWidgets">
+<typesystem package="PySide6.QtQuickWidgets"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="QtCore/typesystem_core.xml" generate="no"/>
<load-typesystem name="QtGui/typesystem_gui.xml" generate="no"/>
<load-typesystem name="QtQuick/typesystem_quick.xml" generate="no"/>
diff --git a/sources/pyside6/PySide6/QtRemoteObjects/CMakeLists.txt b/sources/pyside6/PySide6/QtRemoteObjects/CMakeLists.txt
index 33e21a64c..07835b2f6 100644
--- a/sources/pyside6/PySide6/QtRemoteObjects/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtRemoteObjects/CMakeLists.txt
@@ -1,7 +1,11 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtRemoteObjects)
set(QtRemoteObjects_SRC
${QtRemoteObjects_GEN_DIR}/qabstractitemmodelreplica_wrapper.cpp
+${QtRemoteObjects_GEN_DIR}/qconnectionabstractserver_wrapper.cpp
${QtRemoteObjects_GEN_DIR}/qremoteobjectabstractpersistedstore_wrapper.cpp
${QtRemoteObjects_GEN_DIR}/qremoteobjectdynamicreplica_wrapper.cpp
${QtRemoteObjects_GEN_DIR}/qremoteobjecthost_wrapper.cpp
@@ -12,9 +16,14 @@ ${QtRemoteObjects_GEN_DIR}/qremoteobjectpendingcallwatcher_wrapper.cpp
${QtRemoteObjects_GEN_DIR}/qremoteobjectregistry_wrapper.cpp
${QtRemoteObjects_GEN_DIR}/qremoteobjectregistryhost_wrapper.cpp
${QtRemoteObjects_GEN_DIR}/qremoteobjectreplica_wrapper.cpp
-# ${QtRemoteObjects_GEN_DIR}/qtremoteobjects_wrapper.cpp
+${QtRemoteObjects_GEN_DIR}/qtremoteobjects_wrapper.cpp
${QtRemoteObjects_GEN_DIR}/qremoteobjectsettingsstore_wrapper.cpp
${QtRemoteObjects_GEN_DIR}/qremoteobjectsourcelocationinfo_wrapper.cpp
+${QtRemoteObjects_GEN_DIR}/qtroclientfactory_wrapper.cpp
+${QtRemoteObjects_GEN_DIR}/qtroclientiodevice_wrapper.cpp
+${QtRemoteObjects_GEN_DIR}/qtroiodevicebase_wrapper.cpp
+${QtRemoteObjects_GEN_DIR}/qtroserverfactory_wrapper.cpp
+${QtRemoteObjects_GEN_DIR}/qtroserveriodevice_wrapper.cpp
# module is always needed
${QtRemoteObjects_GEN_DIR}/qtremoteobjects_module_wrapper.cpp
@@ -26,11 +35,10 @@ set(QtRemoteObjects_include_dirs ${QtRemoteObjects_SOURCE_DIR}
${SHIBOKEN_INCLUDE_DIR}
${libpyside_SOURCE_DIR}
${SHIBOKEN_PYTHON_INCLUDE_DIR}
- ${QtCore_GEN_DIR})
+ ${QtCore_GEN_DIR}
+ ${QtNetwork_GEN_DIR})
set(QtRemoteObjects_libraries pyside6
- ${SHIBOKEN_PYTHON_LIBRARIES}
- ${SHIBOKEN_LIBRARY}
${Qt${QT_MAJOR_VERSION}RemoteObjects_LIBRARIES})
set(QtRemoteObjects_deps QtCore QtNetwork)
diff --git a/sources/pyside6/PySide6/QtRemoteObjects/typesystem_remoteobjects.xml b/sources/pyside6/PySide6/QtRemoteObjects/typesystem_remoteobjects.xml
index cadf7ec16..86e4d9093 100644
--- a/sources/pyside6/PySide6/QtRemoteObjects/typesystem_remoteobjects.xml
+++ b/sources/pyside6/PySide6/QtRemoteObjects/typesystem_remoteobjects.xml
@@ -1,56 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtRemoteObjects">
+<typesystem package="PySide6.QtRemoteObjects"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="templates/core_common.xml" generate="no"/>
<load-typesystem name="QtCore/typesystem_core.xml" generate="no"/>
+ <load-typesystem name="QtNetwork/typesystem_network.xml" generate="no"/>
+
+ <rejection class="QRemoteObjectStringLiterals"/>
<rejection class="*" function-name="getTypeNameAndMetaobjectFromClassInfo"/>
-<!-- Exclude namespace due to Q_NAMESPACE link errors on Windows (QTBUG-68014)
<rejection class="QtRemoteObjects" field-name="staticMetaObject"/>
<namespace-type name="QtRemoteObjects">
<enum-type name="InitialAction"/>
<enum-type name="QRemoteObjectPacketTypeEnum"/>
</namespace-type>
--->
<object-type name="QAbstractItemModelReplica"/>
+ <object-type name="QConnectionAbstractServer"/>
<object-type name="QRemoteObjectAbstractPersistedStore"/>
<object-type name="QRemoteObjectDynamicReplica"/>
<object-type name="QRemoteObjectHost"/>
@@ -72,9 +39,18 @@
</object-type>
<object-type name="QRemoteObjectSettingsStore"/>
<value-type name="QRemoteObjectSourceLocationInfo"/>
+ <object-type name="QtROClientFactory"/>
+ <object-type name="QtROClientIoDevice"/>
+ <object-type name="QtROIoDeviceBase"/>
+ <object-type name="QtROServerFactory"/>
+ <object-type name="QtROServerIoDevice"/>
<suppress-warning text="^.*Typedef used on signal QRemoteObject.*$"/>
<suppress-warning text="^QRemoteObjectPendingCallWatcher inherits from a non polymorphic type.*$"/>
- <suppress-warning text="Enum 'QRemoteObjectReplica::ConstructorType' (class: QRemoteObjectReplica) does not have a type entry"/>
- <suppress-warning text="skipping field 'QRemoteObjectReplica::d_impl' with unmatched type 'QSharedPointer'"/>
+ <suppress-warning text="^Enum 'QRemoteObjectReplica::ConstructorType'.*does not have a type entry.*$"/>
+ <suppress-warning text="Stripping argument #1 of void QRemoteObjectReplica::QRemoteObjectReplica(QRemoteObjectReplica::ConstructorType) due to unmatched type &quot;QRemoteObjectReplica::ConstructorType&quot; with default expression &quot;DefaultConstructor&quot;."/>
+ <suppress-warning text="skipping protected field 'QRemoteObjectReplica::d_impl' with unmatched type 'QSharedPointer'"/>
+ <!-- QtNetwork is pulled in via QtRemoteObjectsDepends. -->
+ <suppress-warning text="^Scoped enum 'Q(Ocsp)|(Dtls).*' does not have a type entry.*$"/>
+
</typesystem>
diff --git a/sources/pyside6/PySide6/QtScxml/CMakeLists.txt b/sources/pyside6/PySide6/QtScxml/CMakeLists.txt
index 5eaa40a43..1b0eab0ce 100644
--- a/sources/pyside6/PySide6/QtScxml/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtScxml/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtScxml)
set(QtScxml_OPTIONAL_SRC )
diff --git a/sources/pyside6/PySide6/QtScxml/typesystem_scxml.xml b/sources/pyside6/PySide6/QtScxml/typesystem_scxml.xml
index 46d30b1b6..ba8820570 100644
--- a/sources/pyside6/PySide6/QtScxml/typesystem_scxml.xml
+++ b/sources/pyside6/PySide6/QtScxml/typesystem_scxml.xml
@@ -1,53 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtScxml">
+<typesystem package="PySide6.QtScxml"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="QtCore/typesystem_core.xml" generate="no"/>
<object-type name="QScxmlCompiler">
<object-type name="Loader"/>
</object-type>
- <object-type name="QScxmlCppDataModel" since="5.12"/>
- <object-type name="QScxmlEvent">
+ <object-type name="QScxmlCppDataModel"/>
+ <!-- PYSIDE-2340: Force value conversion for QScxmlStateMachine::connectToEvent()
+ which expects "func(const QScxmlEvent &)" -->
+ <value-type name="QScxmlEvent">
<enum-type name="EventType"/>
- </object-type>
+ </value-type>
<object-type name="QScxmlDynamicScxmlServiceFactory"/>
<object-type name="QScxmlInvokableService"/>
<object-type name="QScxmlInvokableServiceFactory"/>
@@ -60,9 +27,9 @@
</modify-function>
</object-type>
<object-type name="QScxmlTableData"/>
- <object-type name="QScxmlDataModel" since="5.12">
+ <object-type name="QScxmlDataModel">
<!-- Needs to have exports fixed -->
- <interface-type name="ForeachLoopBody" since="5.12"/>
+ <interface-type name="ForeachLoopBody"/>
<modify-function signature="^evaluateTo(String|Bool|Variant)\(.*bool ?\*.*$">
<modify-argument index="2">
<remove-default-expression/>
@@ -81,5 +48,5 @@
<value-type name="InvokeInfo"/>
<value-type name="ParameterInfo"/>
</namespace-type>
- <object-type name="QScxmlNullDataModel" since="5.12"/>
+ <object-type name="QScxmlNullDataModel"/>
</typesystem>
diff --git a/sources/pyside6/PySide6/QtSensors/CMakeLists.txt b/sources/pyside6/PySide6/QtSensors/CMakeLists.txt
index 5970cbb05..0152d2884 100644
--- a/sources/pyside6/PySide6/QtSensors/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtSensors/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtSensors)
set(QtSensors_OPTIONAL_SRC )
diff --git a/sources/pyside6/PySide6/QtSensors/typesystem_sensors.xml b/sources/pyside6/PySide6/QtSensors/typesystem_sensors.xml
index 2449b3d08..4efd08277 100644
--- a/sources/pyside6/PySide6/QtSensors/typesystem_sensors.xml
+++ b/sources/pyside6/PySide6/QtSensors/typesystem_sensors.xml
@@ -1,45 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtSensors">
+<typesystem package="PySide6.QtSensors"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="QtCore/typesystem_core.xml" generate="no"/>
<!-- overrides QObject::metaObject() by private method
<object-type name="QSensorGesture"/>
diff --git a/sources/pyside6/PySide6/QtSerialBus/CMakeLists.txt b/sources/pyside6/PySide6/QtSerialBus/CMakeLists.txt
new file mode 100644
index 000000000..310a8b0f0
--- /dev/null
+++ b/sources/pyside6/PySide6/QtSerialBus/CMakeLists.txt
@@ -0,0 +1,66 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+project(QtSerialBus)
+
+set(QtSerialBus_OPTIONAL_SRC )
+set(QtSerialBus_DROPPED_ENTRIES )
+
+set(QtSerialBus_SRC
+ ${QtSerialBus_GEN_DIR}/qcanbus_wrapper.cpp
+ ${QtSerialBus_GEN_DIR}/qcanbusdevice_filter_wrapper.cpp
+ ${QtSerialBus_GEN_DIR}/qcanbusdevice_wrapper.cpp
+ ${QtSerialBus_GEN_DIR}/qcanbusdeviceinfo_wrapper.cpp
+ ${QtSerialBus_GEN_DIR}/qcanbusfactory_wrapper.cpp
+ ${QtSerialBus_GEN_DIR}/qcanbusframe_timestamp_wrapper.cpp
+ ${QtSerialBus_GEN_DIR}/qcanbusframe_wrapper.cpp
+ ${QtSerialBus_GEN_DIR}/qcandbcfileparser_wrapper.cpp
+ ${QtSerialBus_GEN_DIR}/qcanframeprocessor_parseresult_wrapper.cpp
+ ${QtSerialBus_GEN_DIR}/qcanframeprocessor_wrapper.cpp
+ ${QtSerialBus_GEN_DIR}/qcanmessagedescription_wrapper.cpp
+ ${QtSerialBus_GEN_DIR}/qcansignaldescription_multiplexvaluerange_wrapper.cpp
+ ${QtSerialBus_GEN_DIR}/qcansignaldescription_wrapper.cpp
+ ${QtSerialBus_GEN_DIR}/qcanuniqueiddescription_wrapper.cpp
+ ${QtSerialBus_GEN_DIR}/qmodbusclient_wrapper.cpp
+ ${QtSerialBus_GEN_DIR}/qmodbusdataunit_wrapper.cpp
+ ${QtSerialBus_GEN_DIR}/qmodbusdevice_wrapper.cpp
+ ${QtSerialBus_GEN_DIR}/qmodbusdeviceidentification_wrapper.cpp
+ ${QtSerialBus_GEN_DIR}/qmodbusexceptionresponse_wrapper.cpp
+ ${QtSerialBus_GEN_DIR}/qmodbuspdu_wrapper.cpp
+ ${QtSerialBus_GEN_DIR}/qmodbusreply_wrapper.cpp
+ ${QtSerialBus_GEN_DIR}/qmodbusrequest_wrapper.cpp
+ ${QtSerialBus_GEN_DIR}/qmodbusresponse_wrapper.cpp
+ ${QtSerialBus_GEN_DIR}/qmodbusrtuserialclient_wrapper.cpp
+ ${QtSerialBus_GEN_DIR}/qmodbusrtuserialserver_wrapper.cpp
+ ${QtSerialBus_GEN_DIR}/qmodbusserver_wrapper.cpp
+ ${QtSerialBus_GEN_DIR}/qmodbustcpclient_wrapper.cpp
+ ${QtSerialBus_GEN_DIR}/qmodbustcpconnectionobserver_wrapper.cpp
+ ${QtSerialBus_GEN_DIR}/qmodbustcpserver_wrapper.cpp
+ ${QtSerialBus_GEN_DIR}/qtcanbus_wrapper.cpp
+# module is always needed
+ ${QtSerialBus_GEN_DIR}/qtserialbus_module_wrapper.cpp
+)
+
+set(QtSerialBus_include_dirs ${QtSerialBus_SOURCE_DIR}
+ ${QtSerialBus_BINARY_DIR}
+ ${Qt${QT_MAJOR_VERSION}Core_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}Network_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}SerialPort_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}SerialBus_INCLUDE_DIRS}
+ ${libpyside_SOURCE_DIR}
+ ${QtCore_GEN_DIR}
+ ${QtNetwork_GEN_DIR}
+ ${QtSerialPort_GEN_DIR})
+
+set(QtSerialBus_libraries pyside6
+ ${Qt${QT_MAJOR_VERSION}SerialBus_LIBRARIES})
+
+set(QtSerialBus_deps QtCore QtNetwork QtSerialPort)
+
+create_pyside_module(NAME QtSerialBus
+ INCLUDE_DIRS QtSerialBus_include_dirs
+ LIBRARIES QtSerialBus_libraries
+ DEPS QtSerialBus_deps
+ TYPESYSTEM_PATH QtSerialBus_SOURCE_DIR
+ SOURCES QtSerialBus_SRC
+ DROPPED_ENTRIES QtSerialBus_DROPPED_ENTRIES)
diff --git a/sources/pyside6/PySide6/QtSerialBus/typesystem_serialbus.xml b/sources/pyside6/PySide6/QtSerialBus/typesystem_serialbus.xml
new file mode 100644
index 000000000..fdd2b1483
--- /dev/null
+++ b/sources/pyside6/PySide6/QtSerialBus/typesystem_serialbus.xml
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+-->
+
+<typesystem package="PySide6.QtSerialBus"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
+ <load-typesystem name="QtCore/typesystem_core.xml" generate="no"/>
+ <load-typesystem name="QtNetwork/typesystem_network.xml" generate="no"/>
+ <load-typesystem name="QtSerialPort/typesystem_serialport.xml" generate="no"/>
+
+ <namespace-type name="QtCanBus">
+ <enum-type name="DataSource"/>
+ <enum-type name="DataFormat"/>
+ <enum-type name="MultiplexState"/>
+ <enum-type name="UniqueId"/>
+ </namespace-type>
+
+ <object-type name="QCanBus">
+ <!-- Remove errorMessage argument, return tuple instead. -->
+ <modify-function signature="availableDevices(QString,QString*)const">
+ <modify-argument index="2">
+ <remove-default-expression/>
+ <remove-argument/>
+ </modify-argument>
+ <modify-argument index="return">
+ <replace-type modified-type="tuple"/>
+ </modify-argument>
+ <inject-code class="target" position="beginning"
+ file="../glue/qtserialbus.cpp" snippet="qcanbus-available-devices"/>
+ <inject-documentation format="target" mode="append">
+ The function returns a tuple of (device_list, error_string).
+ </inject-documentation>
+ </modify-function>
+ <modify-function signature="createDevice(QString,QString,QString*)const">
+ <modify-argument index="3">
+ <remove-default-expression/>
+ <remove-argument/>
+ </modify-argument>
+ <modify-argument index="return"> <!-- Suppress return value heuristics -->
+ <define-ownership class="target" owner="default"/>
+ <replace-type modified-type="tuple"/>
+ </modify-argument>
+ <inject-code class="target" position="beginning"
+ file="../glue/qtserialbus.cpp" snippet="qcanbus-createdevice"/>
+ <inject-documentation format="target" mode="append">
+ The function returns a tuple of (device, error_string).
+ </inject-documentation>
+ </modify-function>
+ </object-type>
+ <object-type name="QCanBusDevice">
+ <enum-type name="CanBusError"/>
+ <enum-type name="CanBusDeviceState"/>
+ <enum-type name="CanBusStatus"/>
+ <enum-type name="ConfigurationKey"/>
+ <enum-type name="Direction" flags="Directions"/>
+ <modify-function signature="deviceInfo()const" access="final"/>
+ <value-type name="Filter">
+ <enum-type name="FormatFilter" flags="FormatFilters"/>
+ </value-type>
+ </object-type>
+ <value-type name="QCanBusDeviceInfo"> <!-- deleted default constructor -->
+ <modify-function signature="swap(QCanBusDeviceInfo&amp;)" remove="all"/>
+ </value-type>
+ <object-type name="QCanBusFactory"/>
+ <value-type name="QCanBusFrame">
+ <enum-type name="FrameType"/>
+ <enum-type name="FrameError" flags="FrameErrors"/>
+ <value-type name="TimeStamp"/>
+ </value-type>
+ <object-type name="QCanDbcFileParser">
+ <enum-type name="Error"/>
+ </object-type>
+ <object-type name="QCanFrameProcessor">
+ <enum-type name="Error"/>
+ <value-type name="ParseResult"/>
+ </object-type>
+ <value-type name="QCanMessageDescription"/>
+ <value-type name="QCanSignalDescription">
+ <value-type name="MultiplexValueRange"/>
+ </value-type>
+ <value-type name="QCanUniqueIdDescription"/>
+ <object-type name="QModbusClient"/>
+ <value-type name="QModbusDataUnit">
+ <enum-type name="RegisterType"/>
+ </value-type>
+ <object-type name="QModbusDevice">
+ <enum-type name="Error"/>
+ <enum-type name="State"/>
+ <enum-type name="ConnectionParameter"/>
+ <enum-type name="IntermediateError"/>
+ </object-type>
+ <value-type name="QModbusDeviceIdentification">
+ <enum-type name="ObjectId"/>
+ <enum-type name="ReadDeviceIdCode"/>
+ <enum-type name="ConformityLevel"/>
+ </value-type>
+ <object-type name="QModbusPdu">
+ <enum-type name="ExceptionCode"/>
+ <enum-type name="FunctionCode"/>
+ <modify-field name="ExceptionByte" remove="true"/> <!-- Link error -->
+ </object-type>
+ <object-type name="QModbusExceptionResponse"/>
+ <object-type name="QModbusResponse"/>
+ <object-type name="QModbusReply">
+ <enum-type name="ReplyType"/>
+ </object-type>
+ <object-type name="QModbusRequest"/>
+ <object-type name="QModbusRtuSerialClient"/>
+ <object-type name="QModbusRtuSerialServer"/>
+ <object-type name="QModbusServer">
+ <enum-type name="Option"/>
+ </object-type>
+ <object-type name="QModbusTcpClient"/>
+ <object-type name="QModbusTcpConnectionObserver"/>
+ <object-type name="QModbusTcpServer"/>
+</typesystem>
diff --git a/sources/pyside6/PySide6/QtSerialPort/CMakeLists.txt b/sources/pyside6/PySide6/QtSerialPort/CMakeLists.txt
index c0abdf999..564fc9969 100644
--- a/sources/pyside6/PySide6/QtSerialPort/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtSerialPort/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtSerialPort)
set(QtSerialPort_OPTIONAL_SRC )
diff --git a/sources/pyside6/PySide6/QtSerialPort/typesystem_serialport.xml b/sources/pyside6/PySide6/QtSerialPort/typesystem_serialport.xml
index 06b04856b..0cbd3c7f7 100644
--- a/sources/pyside6/PySide6/QtSerialPort/typesystem_serialport.xml
+++ b/sources/pyside6/PySide6/QtSerialPort/typesystem_serialport.xml
@@ -1,48 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtSerialPort">
+<typesystem package="PySide6.QtSerialPort"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="QtCore/typesystem_core.xml" generate="no"/>
<object-type name="QSerialPort">
- <enum-type name="BaudRate"/>
+ <enum-type name="BaudRate" python-type="IntEnum"/>
<enum-type name="DataBits"/>
<enum-type name="Direction" flags="Directions"/>
<enum-type name="FlowControl"/>
diff --git a/sources/pyside6/PySide6/QtSpatialAudio/CMakeLists.txt b/sources/pyside6/PySide6/QtSpatialAudio/CMakeLists.txt
new file mode 100644
index 000000000..966c0ffe8
--- /dev/null
+++ b/sources/pyside6/PySide6/QtSpatialAudio/CMakeLists.txt
@@ -0,0 +1,40 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+project(QtSpatialAudio)
+
+set(QtSpatialAudio_SRC
+${QtSpatialAudio_GEN_DIR}/qambientsound_wrapper.cpp
+${QtSpatialAudio_GEN_DIR}/qaudioengine_wrapper.cpp
+${QtSpatialAudio_GEN_DIR}/qaudiolistener_wrapper.cpp
+${QtSpatialAudio_GEN_DIR}/qaudioroom_wrapper.cpp
+${QtSpatialAudio_GEN_DIR}/qspatialsound_wrapper.cpp
+
+# module is always needed
+${QtSpatialAudio_GEN_DIR}/qtspatialaudio_module_wrapper.cpp
+)
+
+set(QtSpatialAudio_include_dirs ${QtSpatialAudio_SOURCE_DIR}
+ ${QtSpatialAudio_BINARY_DIR}
+ ${Qt${QT_MAJOR_VERSION}Core_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}Gui_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}Network_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}Multimedia_INCLUDE_DIRS}
+ ${Qt${QT_MAJOR_VERSION}SpatialAudio_INCLUDE_DIRS}
+ ${libpyside_SOURCE_DIR}
+ ${QtCore_GEN_DIR}
+ ${QtGui_GEN_DIR}
+ ${QtNetwork_GEN_DIR}
+ ${QtMultimedia_GEN_DIR})
+
+set(QtSpatialAudio_libraries pyside6
+ ${Qt${QT_MAJOR_VERSION}SpatialAudio_LIBRARIES})
+
+set(QtSpatialAudio_deps QtCore QtGui QtNetwork QtMultimedia)
+
+create_pyside_module(NAME QtSpatialAudio
+ INCLUDE_DIRS QtSpatialAudio_include_dirs
+ LIBRARIES QtSpatialAudio_libraries
+ DEPS QtSpatialAudio_deps
+ TYPESYSTEM_PATH QtSpatialAudio_SOURCE_DIR
+ SOURCES QtSpatialAudio_SRC)
diff --git a/sources/pyside6/PySide6/QtSpatialAudio/typesystem_spatialaudio.xml b/sources/pyside6/PySide6/QtSpatialAudio/typesystem_spatialaudio.xml
new file mode 100644
index 000000000..b9c2557af
--- /dev/null
+++ b/sources/pyside6/PySide6/QtSpatialAudio/typesystem_spatialaudio.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+-->
+<typesystem package="PySide6.QtSpatialAudio"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
+ <load-typesystem name="QtCore/typesystem_core.xml" generate="no"/>
+ <load-typesystem name="QtGui/typesystem_gui.xml" generate="no"/>
+ <load-typesystem name="QtNetwork/typesystem_network.xml" generate="no"/>
+ <load-typesystem name="QtMultimedia/typesystem_multimedia.xml" generate="no"/>
+
+ <object-type name="QAmbientSound">
+ <enum-type name="Loops"/>
+ </object-type>
+
+ <object-type name="QAudioEngine">
+ <enum-type name="OutputMode"/>
+ </object-type>
+
+ <object-type name="QAudioListener"/>
+
+ <object-type name="QAudioRoom">
+ <enum-type name="Material"/>
+ <enum-type name="Wall"/>
+ </object-type>
+
+ <object-type name="QSpatialSound">
+ <enum-type name="Loops"/>
+ <enum-type name="DistanceModel"/>
+ </object-type>
+</typesystem>
diff --git a/sources/pyside6/PySide6/QtSql/CMakeLists.txt b/sources/pyside6/PySide6/QtSql/CMakeLists.txt
index ec6285926..fedebe642 100644
--- a/sources/pyside6/PySide6/QtSql/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtSql/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtSql)
set(QtSql_SRC
@@ -32,13 +35,13 @@ set(QtSql_include_dirs ${QtSql_SOURCE_DIR}
${libpyside_SOURCE_DIR}
${QtCore_GEN_DIR}
${QtGui_GEN_DIR}
- ${QtWidgets_GEN_DIR}
- )
+ ${QtWidgets_GEN_DIR})
+
+# Link to QtWidgets to enable QSqlRelationalDelegate
set(QtSql_libraries pyside6
- ${Qt${QT_MAJOR_VERSION}Core_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Gui_LIBRARIES}
${Qt${QT_MAJOR_VERSION}Widgets_LIBRARIES}
${Qt${QT_MAJOR_VERSION}Sql_LIBRARIES})
+
set(QtSql_deps QtWidgets)
create_pyside_module(NAME QtSql
diff --git a/sources/pyside6/PySide6/QtSql/typesystem_sql.xml b/sources/pyside6/PySide6/QtSql/typesystem_sql.xml
index 1698c0bf1..70c3e6f69 100644
--- a/sources/pyside6/PySide6/QtSql/typesystem_sql.xml
+++ b/sources/pyside6/PySide6/QtSql/typesystem_sql.xml
@@ -1,50 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtSql">
+<typesystem package="PySide6.QtSql"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="QtWidgets/typesystem_widgets.xml" generate="no"/>
<rejection class="QSqlDriverCreator"/>
<rejection class="QSqlDriverPlugin"/>
- <rejection class="QSqlDriverFactoryInterface"/>
<namespace-type name="QSql">
<enum-type name="Location"/>
@@ -159,6 +123,14 @@
<include file-name="QStringList" location="global"/>
<include file-name="QSize" location="global"/>
</extra-includes>
+ <!-- FIXME: PYSIDE7: Handle setQuery(QSqlQuery&&) in some way?
+ QTBUG-91766/PYSIDE-2394. allow-thread for PYSIDE-1931 -->
+ <modify-function signature="setQuery(QSqlQuery)" allow-thread="yes"
+ deprecated="false"/>
+ <modify-function signature="setQuery(QString,QSqlDatabase)" allow-thread="yes"/>
+ <!-- FIXME: PYSIDE7: Probably needs a fix, make QSqlQuery an object type?
+ QTBUG-105048/PYSIDE-2300 -->
+ <declare-function signature="query()" return-type="QSqlQuery"/>
</object-type>
<object-type name="QSqlRelationalTableModel">
<enum-type name="JoinMode"/>
@@ -166,6 +138,7 @@
<include file-name="QStringList" location="global"/>
<include file-name="QSize" location="global"/>
</extra-includes>
+ <modify-function signature="select()" allow-thread="yes"/> <!-- PYSIDE-1931 -->
</object-type>
<object-type name="QSqlResult">
<enum-type name="BindingSyntax"/>
@@ -198,6 +171,7 @@
<include file-name="QStringList" location="global"/>
<include file-name="QSize" location="global"/>
</extra-includes>
+ <modify-function signature="select()" allow-thread="yes"/> <!-- PYSIDE-1931 -->
</object-type>
<object-type name="QSqlDriverCreatorBase">
<extra-includes>
diff --git a/sources/pyside6/PySide6/QtStateMachine/CMakeLists.txt b/sources/pyside6/PySide6/QtStateMachine/CMakeLists.txt
index 204a126b6..2b4cc348d 100644
--- a/sources/pyside6/PySide6/QtStateMachine/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtStateMachine/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtStateMachine)
set(QtStateMachine_SRC
@@ -23,13 +26,11 @@ set(QtStateMachine_include_dirs ${QtStateMachine_SOURCE_DIR}
${Qt${QT_MAJOR_VERSION}Gui_INCLUDE_DIRS}
${libpyside_SOURCE_DIR}
${QtCore_GEN_DIR}
- ${QtGui_GEN_DIR}
- )
+ ${QtGui_GEN_DIR})
+
set(QtStateMachine_libraries pyside6
- ${Qt${QT_MAJOR_VERSION}Core_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Gui_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}StateMachine_LIBRARIES}
- )
+ ${Qt${QT_MAJOR_VERSION}StateMachine_LIBRARIES})
+
set(QtStateMachine_deps QtGui)
create_pyside_module(NAME QtStateMachine
diff --git a/sources/pyside6/PySide6/QtStateMachine/typesystem_statemachine.xml b/sources/pyside6/PySide6/QtStateMachine/typesystem_statemachine.xml
index fad8b1edf..0e29f240f 100644
--- a/sources/pyside6/PySide6/QtStateMachine/typesystem_statemachine.xml
+++ b/sources/pyside6/PySide6/QtStateMachine/typesystem_statemachine.xml
@@ -1,45 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtStateMachine">
+<typesystem package="PySide6.QtStateMachine"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="QtGui/typesystem_gui.xml" generate="no"/>
<object-type name="QAbstractState">
@@ -160,10 +125,15 @@ s1.addTransition(button.clicked, s1h)&lt;/code>
</modify-argument>
</modify-function>
+ <modify-function signature="assignProperty(QObject*,const char*,QVariant)">
+ <modify-argument index="2" pyi-type="str"/>
+ </modify-function>
+
<modify-function signature="addTransition(const QObject*,const char*,QAbstractState*)">
<modify-argument index="return">
<parent index="this" action="add"/>
</modify-argument>
+ <modify-argument index="2" pyi-type="str"/>
<inject-code class="target" position="beginning" file="../glue/qtstatemachine.cpp"
snippet="qstate-addtransition-1"/>
</modify-function>
diff --git a/sources/pyside6/PySide6/QtSvg/CMakeLists.txt b/sources/pyside6/PySide6/QtSvg/CMakeLists.txt
index 748c8355c..5451380cc 100644
--- a/sources/pyside6/PySide6/QtSvg/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtSvg/CMakeLists.txt
@@ -1,8 +1,12 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtSvg)
set(QtSvg_SRC
${QtSvg_GEN_DIR}/qsvggenerator_wrapper.cpp
${QtSvg_GEN_DIR}/qsvgrenderer_wrapper.cpp
+${QtSvg_GEN_DIR}/qtsvg_wrapper.cpp
# module is always needed
${QtSvg_GEN_DIR}/qtsvg_module_wrapper.cpp
)
@@ -14,13 +18,12 @@ set(QtSvg_include_dirs ${QtSvg_SOURCE_DIR}
${Qt${QT_MAJOR_VERSION}Svg_INCLUDE_DIRS}
${libpyside_SOURCE_DIR}
${QtCore_GEN_DIR}
- ${QtGui_GEN_DIR}
- )
+ ${QtGui_GEN_DIR})
+
set(QtSvg_libraries pyside6
- ${Qt${QT_MAJOR_VERSION}Core_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Gui_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Svg_LIBRARIES}
- )
+ ${Qt${QT_MAJOR_VERSION}Svg_LIBRARIES})
+
+
set(QtSvg_deps QtGui)
create_pyside_module(NAME QtSvg
diff --git a/sources/pyside6/PySide6/QtSvg/typesystem_svg.xml b/sources/pyside6/PySide6/QtSvg/typesystem_svg.xml
index 2fbfad4a1..4803f4d93 100644
--- a/sources/pyside6/PySide6/QtSvg/typesystem_svg.xml
+++ b/sources/pyside6/PySide6/QtSvg/typesystem_svg.xml
@@ -1,50 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtSvg">
+<typesystem package="PySide6.QtSvg"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="QtGui/typesystem_gui.xml" generate="no"/>
<object-type name="QSvgRenderer"/>
+ <namespace-type name="QtSvg" since="6.7">
+ <enum-type name="Option" flags="Options"/>
+ </namespace-type>
<object-type name="QSvgGenerator">
+ <enum-type name="SvgVersion" since="6.5"/>
<modify-function signature="setOutputDevice(QIODevice*)">
<modify-argument index="1">
<reference-count action="set"/>
diff --git a/sources/pyside6/PySide6/QtSvgWidgets/CMakeLists.txt b/sources/pyside6/PySide6/QtSvgWidgets/CMakeLists.txt
index 6922f877d..6bd3aedc1 100644
--- a/sources/pyside6/PySide6/QtSvgWidgets/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtSvgWidgets/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtSvgWidgets)
set(QtSvgWidgets_SRC
@@ -18,16 +21,10 @@ set(QtSvgWidgets_include_dirs ${QtSvgWidgets_SOURCE_DIR}
${QtCore_GEN_DIR}
${QtGui_GEN_DIR}
${QtWidgets_GEN_DIR}
- ${QtSvg_GEN_DIR}
- )
+ ${QtSvg_GEN_DIR})
set(QtSvgWidgets_libraries pyside6
- ${Qt${QT_MAJOR_VERSION}Core_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Gui_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Widgets_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Svg_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}SvgWidgets_LIBRARIES}
- )
+ ${Qt${QT_MAJOR_VERSION}SvgWidgets_LIBRARIES})
set(QtSvgWidgets_deps QtSvg QtWidgets)
diff --git a/sources/pyside6/PySide6/QtSvgWidgets/typesystem_svgwidgets.xml b/sources/pyside6/PySide6/QtSvgWidgets/typesystem_svgwidgets.xml
index 6def19d45..36bda1ea3 100644
--- a/sources/pyside6/PySide6/QtSvgWidgets/typesystem_svgwidgets.xml
+++ b/sources/pyside6/PySide6/QtSvgWidgets/typesystem_svgwidgets.xml
@@ -1,45 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtSvgWidgets">
+<typesystem package="PySide6.QtSvgWidgets"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="QtSvg/typesystem_svg.xml" generate="no"/>
<load-typesystem name="QtWidgets/typesystem_widgets.xml" generate="no"/>
diff --git a/sources/pyside6/PySide6/QtTest/CMakeLists.txt b/sources/pyside6/PySide6/QtTest/CMakeLists.txt
index 0e54461c1..86bb2a731 100644
--- a/sources/pyside6/PySide6/QtTest/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtTest/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtTest)
set(QtTest_SRC
@@ -24,14 +27,15 @@ set(QtTest_include_dirs ${QtTest_SOURCE_DIR}
${libpyside_SOURCE_DIR}
${QtCore_GEN_DIR}
${QtGui_GEN_DIR}
- ${QtWidgets_GEN_DIR}
- )
+ ${QtWidgets_GEN_DIR})
+
+# Link to QtGui/QtWidgets to enable gui/widget-specific inline functions
set(QtTest_libraries pyside6
${Qt${QT_MAJOR_VERSION}Test_LIBRARIES}
${Qt${QT_MAJOR_VERSION}Widgets_LIBRARIES}
${Qt${QT_MAJOR_VERSION}Gui_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Core_LIBRARIES}
- )
+ ${Qt${QT_MAJOR_VERSION}Core_LIBRARIES})
+
set(QtTest_deps QtWidgets)
create_pyside_module(NAME QtTest
diff --git a/sources/pyside6/PySide6/QtTest/typesystem_test.xml b/sources/pyside6/PySide6/QtTest/typesystem_test.xml
index ea480bbf2..2fc4f23cd 100644
--- a/sources/pyside6/PySide6/QtTest/typesystem_test.xml
+++ b/sources/pyside6/PySide6/QtTest/typesystem_test.xml
@@ -1,87 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtTest">
+<typesystem package="PySide6.QtTest"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="QtCore/typesystem_core.xml" generate="no"/>
<load-typesystem name="QtGui/typesystem_gui.xml" generate="no"/>
<load-typesystem name="QtWidgets/typesystem_widgets.xml" generate="no"/>
- <rejection class="QTest" function-name="qCompare&lt;char&gt;"/>
- <rejection class="QTest" function-name="qCompare&lt;char*&gt;"/>
- <rejection class="QTest" function-name="qCompare&lt;double&gt;"/>
- <rejection class="QTest" function-name="qCompare&lt;float&gt;"/>
- <rejection class="QTest" function-name="qCompare&lt;double,qreal&gt;"/>
- <rejection class="QTest" function-name="qCompare&lt;qreal,double&gt;"/>
+ <rejection class="QTest::Internal"/>
+ <rejection class="QTestPrivate"/>
+
<rejection class="QTest" function-name="qCompare"/>
- <rejection class="QTest" function-name="qInit"/>
<rejection class="QTest" function-name="qVerify"/>
- <rejection class="QTest" function-name="qSleep"/>
<rejection class="QTest" function-name="toHexRepresentation"/>
- <rejection class="QTest" function-name="qWait"/>
<rejection class="QTest" function-name="qFail"/>
<rejection class="QTest" function-name="qInit"/>
<rejection class="QTest" function-name="qExec"/>
<rejection class="QTest" function-name="qData"/>
<rejection class="QTest" function-name="qWarn"/>
<rejection class="QTest" function-name="toString"/>
- <rejection class="QTest" function-name="toString&lt;bool>"/>
- <rejection class="QTest" function-name="toString&lt;char>"/>
- <rejection class="QTest" function-name="toString&lt;unsigned char>"/>
- <rejection class="QTest" function-name="toString&lt;signed char>"/>
- <rejection class="QTest" function-name="toString&lt;double>"/>
- <rejection class="QTest" function-name="toString&lt;float>"/>
- <rejection class="QTest" function-name="toString&lt;int>"/>
- <rejection class="QTest" function-name="toString&lt;long>"/>
- <rejection class="QTest" function-name="toString&lt;qint64>"/>
- <rejection class="QTest" function-name="toString&lt;quint64>"/>
- <rejection class="QTest" function-name="toString&lt;short>"/>
- <rejection class="QTest" function-name="toString&lt;uint>"/>
- <rejection class="QTest" function-name="toString&lt;ulong>"/>
- <rejection class="QTest" function-name="toString&lt;ushort>"/>
- <rejection class="QTest" function-name="qt_snprintf"/>
+ <rejection class="QTest" function-name="useVerifyThrowsException"/>
<rejection class="QTest" function-name="compare_helper"/>
<rejection class="QTest" function-name="toPrettyUnicode"/>
- <rejection class="QTest" field-name="lastMouseButton"/>
<rejection class="QTest" field-name="lastMouseTimestamp"/>
<!-- Qt5: this new stuff below belongs to QtGui. I keep it here for now, after a long odyssey.
@@ -128,11 +72,11 @@
<enum-type name="MouseAction"/>
<enum-type name="QBenchmarkMetric" since="4.7"/>
<enum-type name="TestFailMode"/>
+ <enum-type name="ComparisonOperation" since="6.4"/>
<extra-includes>
<include file-name="QtTest" location="global"/>
</extra-includes>
- <rejection class="QTouchEventSequence"/>
<object-type name="PySideQTouchEventSequence" target-lang-name="QTouchEventSequence" since="4.6" >
<modify-function signature="press(int,const QPoint&amp;,QWidget*)">
<modify-argument index="return">
diff --git a/sources/pyside6/PySide6/QtTextToSpeech/CMakeLists.txt b/sources/pyside6/PySide6/QtTextToSpeech/CMakeLists.txt
index 9b6b5eb0a..9f0bd2fc3 100644
--- a/sources/pyside6/PySide6/QtTextToSpeech/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtTextToSpeech/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtTextToSpeech)
set(QtTextToSpeech_SRC
@@ -16,9 +19,7 @@ set(QtTextToSpeech_include_dirs ${QtTextToSpeech_SOURCE_DIR}
${QtCore_GEN_DIR})
set(QtTextToSpeech_libraries pyside6
- ${Qt${QT_MAJOR_VERSION}Multimedia_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}TextToSpeech_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Core_LIBRARIES})
+ ${Qt${QT_MAJOR_VERSION}TextToSpeech_LIBRARIES})
set(QtTextToSpeech_deps QtCore QtMultimedia)
diff --git a/sources/pyside6/PySide6/QtTextToSpeech/typesystem_texttospeech.xml b/sources/pyside6/PySide6/QtTextToSpeech/typesystem_texttospeech.xml
index 30aab1ae5..70751e9d9 100644
--- a/sources/pyside6/PySide6/QtTextToSpeech/typesystem_texttospeech.xml
+++ b/sources/pyside6/PySide6/QtTextToSpeech/typesystem_texttospeech.xml
@@ -1,49 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtTextToSpeech">
+<typesystem package="PySide6.QtTextToSpeech"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="QtCore/typesystem_core.xml" generate="no"/>
<object-type name="QTextToSpeech">
<enum-type name="State"/>
+ <enum-type name="BoundaryHint"/>
+ <enum-type name="ErrorReason"/>
+ <enum-type name="Capability" flags="Capabilities" since="6.6"/>
</object-type>
<object-type name="QTextToSpeechEngine"/>
<value-type name="QVoice">
diff --git a/sources/pyside6/PySide6/QtUiTools/CMakeLists.txt b/sources/pyside6/PySide6/QtUiTools/CMakeLists.txt
index 08cc38e98..e16d2d585 100644
--- a/sources/pyside6/PySide6/QtUiTools/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtUiTools/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtUiTools)
set(QtUiTools_SRC
@@ -22,16 +25,13 @@ set(QtUiTools_include_dirs ${QtUiTools_SOURCE_DIR}
${plugins_SOURCE_DIR}
${QtCore_GEN_DIR}
${QtGui_GEN_DIR}
- ${QtWidgets_GEN_DIR}
- )
+ ${QtWidgets_GEN_DIR})
+
set(QtUiTools_libraries pyside6
uiplugin
- ${Qt${QT_MAJOR_VERSION}UiTools_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Core_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Gui_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Widgets_LIBRARIES}
- )
-set(QtUiTools_deps QtWidgets QtXml)
+ ${Qt${QT_MAJOR_VERSION}UiTools_LIBRARIES})
+
+set(QtUiTools_deps QtWidgets)
configure_file("${QtUiTools_SOURCE_DIR}/QtUiTools_global.pre.h.in"
"${QtUiTools_BINARY_DIR}/QtUiTools_global.pre.h" @ONLY)
diff --git a/sources/pyside6/PySide6/QtUiTools/glue/plugins.h b/sources/pyside6/PySide6/QtUiTools/glue/plugins.h
index 402965a81..04ec149ff 100644
--- a/sources/pyside6/PySide6/QtUiTools/glue/plugins.h
+++ b/sources/pyside6/PySide6/QtUiTools/glue/plugins.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef _PLUGIN_H_
#define _PLUGIN_H_
diff --git a/sources/pyside6/PySide6/QtUiTools/typesystem_uitools.xml b/sources/pyside6/PySide6/QtUiTools/typesystem_uitools.xml
index a8bf52112..9cfa176c8 100644
--- a/sources/pyside6/PySide6/QtUiTools/typesystem_uitools.xml
+++ b/sources/pyside6/PySide6/QtUiTools/typesystem_uitools.xml
@@ -1,46 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtUiTools">
+<typesystem package="PySide6.QtUiTools"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="QtWidgets/typesystem_widgets.xml" generate="no"/>
<object-type name="QUiLoader">
@@ -49,42 +14,11 @@
</extra-includes>
<inject-code class="native" position="beginning" file="../glue/qtuitools.cpp" snippet="uitools-loadui"/>
<inject-code file="../glue/qtuitools.cpp" snippet="quiloader"/>
- <add-function signature="registerCustomWidget(PyObject*)" return-type="void">
- <modify-argument index="1">
- <rename to="customWidgetType"/>
- </modify-argument>
- <inject-documentation format="target" mode="append">
- Registers a Python created custom widget to QUiLoader, so it can be recognized when
- loading a `.ui` file. The custom widget type is passed via the ``customWidgetType`` argument.
- This is needed when you want to override a virtual method of some widget in the interface,
- since duck punching will not work with widgets created by QUiLoader based on the contents
- of the `.ui` file.
-
- (Remember that `duck punching virtual methods is an invitation for your own demise!
- &lt;https://doc.qt.io/qtforpython/shiboken6/wordsofadvice.html#duck-punching-and-virtual-methods>`_)
-
- Let's see an obvious example. If you want to create a new widget it's probable you'll end up
- overriding :class:`~PySide6.QtGui.QWidget`'s :meth:`~PySide6.QtGui.QWidget.paintEvent` method.
-
- .. code-block:: python
-
- class Circle(QWidget):
- def paintEvent(self, event):
- painter = QPainter(self)
- painter.setPen(self.pen)
- painter.setBrush(QBrush(self.color))
- painter.drawEllipse(event.rect().center(), 20, 20)
-
- # ...
-
- loader = QUiLoader()
- loader.registerCustomWidget(Circle)
- circle = loader.load('circle.ui')
- circle.show()
-
- # ...
- </inject-documentation>
- <inject-code class="target" position="beginning" file="../glue/qtuitools.cpp" snippet="quiloader-registercustomwidget"/>
+ <add-function signature="registerCustomWidget(PyObject*@customWidgetType@)" return-type="void">
+ <inject-documentation format="target" mode="append" file="../doc/qtuitools.rst"
+ snippet="quiloader-registercustomwidget"/>
+ <inject-code class="target" position="beginning" file="../glue/qtuitools.cpp"
+ snippet="quiloader-registercustomwidget"/>
</add-function>
<modify-function signature="createAction(QObject*,const QString&amp;)">
<modify-argument index="return">
@@ -130,11 +64,7 @@
</modify-function>
<!-- Syntax sugar -->
- <add-function signature="load(PyPathLike,QWidget*)" return-type="QWidget*">
- <modify-argument index="2">
- <replace-default-expression with="0"/>
- <rename to="parentWidget"/>
- </modify-argument>
+ <add-function signature="load(PyPathLike,QWidget*@parentWidget@=nullptr)" return-type="QWidget*">
<modify-argument index="return">
<define-ownership class="target" owner="target"/>
</modify-argument>
@@ -150,6 +80,8 @@
-->
<add-function signature="loadUiType(const QString&amp; @uifile@)" return-type="PyObject*">
<inject-code file="../glue/qtuitools.cpp" snippet="loaduitype"/>
+ <inject-documentation format="target" mode="append" file="../doc/qtuitools.rst"
+ snippet="loaduitype"/>
</add-function>
diff --git a/sources/pyside6/PySide6/QtWebChannel/CMakeLists.txt b/sources/pyside6/PySide6/QtWebChannel/CMakeLists.txt
index b6b8d3e5e..4c06edd2f 100644
--- a/sources/pyside6/PySide6/QtWebChannel/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtWebChannel/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtWebChannel)
set(QtWebChannel_SRC
@@ -12,12 +15,11 @@ set(QtWebChannel_include_dirs ${QtWebChannel_SOURCE_DIR}
${Qt${QT_MAJOR_VERSION}Core_INCLUDE_DIRS}
${Qt${QT_MAJOR_VERSION}WebChannel_INCLUDE_DIRS}
${libpyside_SOURCE_DIR}
- ${QtCore_GEN_DIR}
- )
-set(QtWebChannel_libraries pyside6
- ${Qt${QT_MAJOR_VERSION}WebChannel_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Core_LIBRARIES}
- )
+ ${QtCore_GEN_DIR})
+
+set(QtWebChannel_libraries pyside6
+ ${Qt${QT_MAJOR_VERSION}WebChannel_LIBRARIES})
+
set(QtWebChannel_deps QtCore)
create_pyside_module(NAME QtWebChannel
diff --git a/sources/pyside6/PySide6/QtWebChannel/typesystem_webchannel.xml b/sources/pyside6/PySide6/QtWebChannel/typesystem_webchannel.xml
index 591201fd8..c08a9b187 100644
--- a/sources/pyside6/PySide6/QtWebChannel/typesystem_webchannel.xml
+++ b/sources/pyside6/PySide6/QtWebChannel/typesystem_webchannel.xml
@@ -1,45 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtWebChannel">
+<typesystem package="PySide6.QtWebChannel"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="QtCore/typesystem_core.xml" generate="no"/>
<object-type name="QWebChannel"/>
@@ -52,4 +17,7 @@
the QML module is not yet wrapped.
<object-type name="QQmlWebChannel"/> -->
+ <!-- QtQml/QtNetwork are pulled in via QtQtWebChannelDepends. -->
+ <suppress-warning text="^Scoped enum 'Q(Ocsp)|(Dtls)|(Qml).*' does not have a type entry.*$"/>
+
</typesystem>
diff --git a/sources/pyside6/PySide6/QtWebEngineCore/CMakeLists.txt b/sources/pyside6/PySide6/QtWebEngineCore/CMakeLists.txt
index f6a3fb35c..0cdaf2f91 100644
--- a/sources/pyside6/PySide6/QtWebEngineCore/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtWebEngineCore/CMakeLists.txt
@@ -1,16 +1,29 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtWebEngineCore)
set(QtWebEngineCore_SRC
${QtWebEngineCore_GEN_DIR}/qwebenginecertificateerror_wrapper.cpp
+${QtWebEngineCore_GEN_DIR}/qwebengineclientcertificateselection_wrapper.cpp
+${QtWebEngineCore_GEN_DIR}/qwebengineclientcertificatestore_wrapper.cpp
${QtWebEngineCore_GEN_DIR}/qwebenginecontextmenurequest_wrapper.cpp
${QtWebEngineCore_GEN_DIR}/qwebenginecookiestore_wrapper.cpp
+${QtWebEngineCore_GEN_DIR}/qwebenginecookiestore_filterrequest_wrapper.cpp
+# FIXME ${QtWebEngineCore_GEN_DIR}/qwebenginedesktopmediarequest_wrapper.cpp
${QtWebEngineCore_GEN_DIR}/qwebenginedownloadrequest_wrapper.cpp
+${QtWebEngineCore_GEN_DIR}/qwebenginefilesystemaccessrequest_wrapper.cpp
+${QtWebEngineCore_GEN_DIR}/qwebenginefindtextresult_wrapper.cpp
${QtWebEngineCore_GEN_DIR}/qwebenginefullscreenrequest_wrapper.cpp
+${QtWebEngineCore_GEN_DIR}/qwebengineglobalsettings_wrapper.cpp
+${QtWebEngineCore_GEN_DIR}/qwebengineglobalsettings_dnsmode_wrapper.cpp
${QtWebEngineCore_GEN_DIR}/qwebenginehistory_wrapper.cpp
${QtWebEngineCore_GEN_DIR}/qwebenginehistoryitem_wrapper.cpp
${QtWebEngineCore_GEN_DIR}/qwebenginehistorymodel_wrapper.cpp
${QtWebEngineCore_GEN_DIR}/qwebenginehttprequest_wrapper.cpp
+${QtWebEngineCore_GEN_DIR}/qwebenginenavigationrequest_wrapper.cpp
${QtWebEngineCore_GEN_DIR}/qwebengineloadinginfo_wrapper.cpp
+# FIXME ${QtWebEngineCore_GEN_DIR}/qwebenginemediasourcemodel_wrapper.cpp
${QtWebEngineCore_GEN_DIR}/qwebenginenewwindowrequest_wrapper.cpp
${QtWebEngineCore_GEN_DIR}/qwebenginenotification_wrapper.cpp
${QtWebEngineCore_GEN_DIR}/qwebenginepage_wrapper.cpp
@@ -20,12 +33,13 @@ ${QtWebEngineCore_GEN_DIR}/qwebengineregisterprotocolhandlerrequest_wrapper.cpp
${QtWebEngineCore_GEN_DIR}/qwebenginescript_wrapper.cpp
${QtWebEngineCore_GEN_DIR}/qwebenginescriptcollection_wrapper.cpp
${QtWebEngineCore_GEN_DIR}/qwebenginesettings_wrapper.cpp
-${QtWebEngineCore_GEN_DIR}/qwebenginefindtextresult_wrapper.cpp
${QtWebEngineCore_GEN_DIR}/qwebengineurlrequestinfo_wrapper.cpp
${QtWebEngineCore_GEN_DIR}/qwebengineurlrequestinterceptor_wrapper.cpp
${QtWebEngineCore_GEN_DIR}/qwebengineurlrequestjob_wrapper.cpp
${QtWebEngineCore_GEN_DIR}/qwebengineurlscheme_wrapper.cpp
${QtWebEngineCore_GEN_DIR}/qwebengineurlschemehandler_wrapper.cpp
+${QtWebEngineCore_GEN_DIR}/qwebenginewebauthpinrequest_wrapper.cpp
+${QtWebEngineCore_GEN_DIR}/qwebenginewebauthuxrequest_wrapper.cpp
# module is always needed
${QtWebEngineCore_GEN_DIR}/qtwebenginecore_module_wrapper.cpp
)
@@ -45,17 +59,10 @@ set(QtWebEngineCore_include_dirs
${QtWidgets_GEN_DIR}
${QtNetwork_GEN_DIR}
${QtPrintSupport_GEN_DIR}
- ${QtWebChannel_GEN_DIR}
- )
+ ${QtWebChannel_GEN_DIR})
+
set(QtWebEngineCore_libraries pyside6
- ${Qt${QT_MAJOR_VERSION}WebEngineCore_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Core_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Gui_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Widgets_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Network_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}PrintSupport_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}WebChannel_LIBRARIES}
- )
+ ${Qt${QT_MAJOR_VERSION}WebEngineCore_LIBRARIES})
set(QtWebEngineCore_deps QtCore QtGui QtNetwork QtPrintSupport QtWebChannel)
diff --git a/sources/pyside6/PySide6/QtWebEngineCore/typesystem_webenginecore.xml b/sources/pyside6/PySide6/QtWebEngineCore/typesystem_webenginecore.xml
index 5072ddfb4..da9259ccc 100644
--- a/sources/pyside6/PySide6/QtWebEngineCore/typesystem_webenginecore.xml
+++ b/sources/pyside6/PySide6/QtWebEngineCore/typesystem_webenginecore.xml
@@ -1,57 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtWebEngineCore">
+<typesystem package="PySide6.QtWebEngineCore"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="QtCore/typesystem_core.xml" generate="no"/>
<load-typesystem name="QtGui/typesystem_gui.xml" generate="no"/>
<load-typesystem name="QtNetwork/typesystem_network.xml" generate="no"/>
<load-typesystem name="QtPrintSupport/typesystem_printsupport.xml" generate="no"/>
<load-typesystem name="QtWebChannel/typesystem_webchannel.xml" generate="no"/>
- <object-type name="QWebEngineCookieStore"/>
+ <rejection class="extensions"/>
- <object-type name="QWebEngineCertificateError">
- <enum-type name="Type"/>
+ <function signature="qWebEngineChromiumVersion()"/>
+ <function signature="qWebEngineChromiumSecurityPatchVersion()"/>
+ <function signature="qWebEngineVersion()"/>
+
+ <value-type name="QWebEngineClientCertificateSelection"/>
+ <object-type name="QWebEngineClientCertificateStore"/>
+
+ <object-type name="QWebEngineCookieStore">
+ <inject-code class="native" position="beginning" file="../glue/qtwebenginecore.cpp"
+ snippet="qwebenginecookiestore-functor"/>
+ <value-type name="FilterRequest" />
+ <add-function signature="setCookieFilter(PyCallable* @filterCallback@)">
+ <inject-code class="target" position="beginning" file="../glue/qtwebenginecore.cpp"
+ snippet="qwebenginecookiestore-setcookiefilter"/>
+ </add-function>
</object-type>
+ <value-type name="QWebEngineCertificateError">
+ <enum-type name="Type"/>
+ </value-type>
+
<object-type name="QWebEngineContextMenuRequest">
<enum-type name="EditFlag" flags="EditFlags"/>
<enum-type name="MediaFlag" flags="MediaFlags"/>
@@ -64,7 +46,14 @@
<enum-type name="SavePageFormat"/>
</object-type>
- <object-type name="QWebEngineFullScreenRequest"/>
+ <value-type name="QWebEngineFileSystemAccessRequest">
+ <enum-type name="AccessFlag" flags="AccessFlags"/>
+ <enum-type name="HandleType"/>
+ <!-- No default constructor -->
+ <modify-function signature="swap(QWebEngineFileSystemAccessRequest&amp;)" remove="all"/>
+ </value-type>
+
+ <value-type name="QWebEngineFullScreenRequest"/>
<object-type name="QWebEngineHistory"/>
<value-type name="QWebEngineHistoryItem">
@@ -75,6 +64,11 @@
<enum-type name="Roles"/>
</object-type>
+ <object-type name="QWebEngineNavigationRequest">
+ <enum-type name="NavigationType"/>
+ <enum-type name="NavigationRequestAction"/>
+ </object-type>
+
<object-type name="QWebEngineNotification"/>
<object-type name="QWebEnginePage">
@@ -88,6 +82,16 @@
<enum-type name="FileSelectionMode"/>
<enum-type name="JavaScriptConsoleMessageLevel"/>
<enum-type name="RenderProcessTerminationStatus"/>
+ <add-function signature="javaScriptPromptPyOverride(QUrl@securityOrigin@,QString@msg@,QString@defaultValue@)"
+ return-type="std::pair&lt;bool,QString&gt;" python-override="true"/>
+ <modify-function signature="javaScriptPrompt(QUrl,QString,QString,QString*)">
+ <inject-code class="shell" position="override" file="../glue/qtwebenginecore.cpp"
+ snippet="qwebenginepage-javascriptprompt-virtual-redirect"/>
+ <modify-argument index="return" pyi-type="Tuple[bool, str]"/>
+ <modify-argument index="4"><remove-default-expression/><remove-argument/></modify-argument>
+ <inject-code class="target" position="beginning" file="../glue/qtwebenginecore.cpp"
+ snippet="qwebenginepage-javascriptprompt-return"/>
+ </modify-function>
<add-function signature="findText(const QString &amp;,QWebEnginePage::FindFlags,PyObject*)">
<inject-code class="target" position="beginning" file="../glue/qtwebenginewidgets.cpp" snippet="qwebenginepage-findtext"/>
</add-function>
@@ -103,8 +107,16 @@
</object-type>
<object-type name="QWebEngineProfile">
+ <extra-includes>
+ <include file-name="QtWebEngineCore/QWebEngineNotification" location="global"/>
+ </extra-includes>
+ <inject-code class="native" position="beginning" file="../glue/qtwebenginecore.cpp"
+ snippet="qwebengineprofile-functor"/>
<enum-type name="HttpCacheType"/>
<enum-type name="PersistentCookiesPolicy"/>
+ <add-function signature="setNotificationPresenter(PyCallable* @notificationPresenter@)">
+ <inject-code class="target" position="beginning" file="../glue/qtwebenginecore.cpp" snippet="qwebengineprofile-setnotificationpresenter"/>
+ </add-function>
</object-type>
<object-type name="QWebEngineNewWindowRequest">
@@ -113,7 +125,7 @@
<value-type name="QWebEngineScript">
<enum-type name="InjectionPoint"/>
- <enum-type name="ScriptWorldId"/>
+ <enum-type name="ScriptWorldId" python-type="IntEnum"/>
</value-type>
<object-type name="QWebEngineScriptCollection"/>
@@ -121,7 +133,7 @@
<object-type name="QWebEngineSettings">
<enum-type name="FontFamily"/>
<enum-type name="FontSize"/>
- <enum-type name="UnknownUrlSchemePolicy" since="5.11"/>
+ <enum-type name="UnknownUrlSchemePolicy"/>
<enum-type name="WebAttribute"/>
</object-type>
@@ -134,7 +146,7 @@
<enum-type name="LoadStatus"/>
</value-type>
- <object-type name="QWebEngineRegisterProtocolHandlerRequest"/>
+ <value-type name="QWebEngineRegisterProtocolHandlerRequest"/>
<value-type name="QWebEngineFindTextResult"/>
@@ -150,7 +162,7 @@
<object-type name="QWebEngineUrlRequestJob">
<enum-type name="Error"/>
</object-type>
- <value-type name="QWebEngineUrlScheme" since="5.12">
+ <value-type name="QWebEngineUrlScheme">
<enum-type name="Syntax"/>
<enum-type name="SpecialPort"/>
<enum-type name="Flag" flags="Flags"/>
@@ -158,4 +170,23 @@
<object-type name="QWebEngineUrlSchemeHandler"/>
+ <!-- FIXME not in snapshot yet
+ <value-type name="QWebEngineDesktopMediaRequest" since="6.7"/>
+ <object-type name="QWebEngineMediaSourceModel" since="6.7"/>
+ -->
+ <value-type name="QWebEngineWebAuthPinRequest" since="6.7"/>
+ <object-type name="QWebEngineWebAuthUxRequest" since="6.7">
+ <enum-type name="WebAuthUxState"/>
+ <enum-type name="PinEntryReason"/>
+ <enum-type name="PinEntryError"/>
+ <enum-type name="RequestFailureReason"/>
+ </object-type>
+ <namespace-type name="QWebEngineGlobalSettings">
+ <enum-type name="SecureDnsMode"/>
+ <value-type name="DnsMode"/>
+ </namespace-type>
+
+ <!-- QtQml is pulled in via QtWebEngineCoreDepends. -->
+ <suppress-warning text="^Scoped enum 'QQml.*' does not have a type entry.*$"/>
+
</typesystem>
diff --git a/sources/pyside6/PySide6/QtWebEngineQuick/CMakeLists.txt b/sources/pyside6/PySide6/QtWebEngineQuick/CMakeLists.txt
index 1f3b7d9af..5aedc1147 100644
--- a/sources/pyside6/PySide6/QtWebEngineQuick/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtWebEngineQuick/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtWebEngineQuick)
set(QtWebEngineQuick_SRC
@@ -16,15 +19,10 @@ set(QtWebEngineQuick_include_dirs
${libpyside_SOURCE_DIR}
${QtCore_GEN_DIR}
${QtNetwork_GEN_DIR}
- ${QtQml_GEN_DIR}
- )
+ ${QtQml_GEN_DIR})
set(QtWebEngineQuick_libraries pyside6
- ${Qt${QT_MAJOR_VERSION}Core_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Network_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Qml_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}WebEngineQuick_LIBRARIES}
- )
+ ${Qt${QT_MAJOR_VERSION}WebEngineQuick_LIBRARIES})
set(QtWebEngineQuick_deps QtQml QtNetwork QtCore)
diff --git a/sources/pyside6/PySide6/QtWebEngineQuick/typesystem_webenginequick.xml b/sources/pyside6/PySide6/QtWebEngineQuick/typesystem_webenginequick.xml
index ca3ec21c7..108ba5fae 100644
--- a/sources/pyside6/PySide6/QtWebEngineQuick/typesystem_webenginequick.xml
+++ b/sources/pyside6/PySide6/QtWebEngineQuick/typesystem_webenginequick.xml
@@ -1,45 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtWebEngineQuick">
+<typesystem package="PySide6.QtWebEngineQuick"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="QtQml/typesystem_qml.xml" generate="no"/>
<namespace-type name="QtWebEngineQuick"/> <!-- initialize() -->
diff --git a/sources/pyside6/PySide6/QtWebEngineWidgets/CMakeLists.txt b/sources/pyside6/PySide6/QtWebEngineWidgets/CMakeLists.txt
index c43be68f1..9da97243c 100644
--- a/sources/pyside6/PySide6/QtWebEngineWidgets/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtWebEngineWidgets/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtWebEngineWidgets)
set(QtWebEngineWidgets_SRC
@@ -24,17 +27,10 @@ set(QtWebEngineWidgets_include_dirs
${QtNetwork_GEN_DIR}
${QtWebEngineCore_GEN_DIR}
${QtPrintSupport_GEN_DIR}
- ${QtWebChannel_GEN_DIR}
- )
-set(QtWebEngineWidgets_libraries pyside6
- ${Qt${QT_MAJOR_VERSION}WebEngineWidgets_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Network_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Widgets_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Gui_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Core_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}PrintSupport_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}WebChannel_LIBRARIES}
- )
+ ${QtWebChannel_GEN_DIR})
+
+set(QtWebEngineWidgets_libraries pyside6
+ ${Qt${QT_MAJOR_VERSION}WebEngineWidgets_LIBRARIES})
set(QtWebEngineWidgets_deps QtGui QtWidgets QtNetwork QtPrintSupport QtWebChannel QtWebEngineCore)
diff --git a/sources/pyside6/PySide6/QtWebEngineWidgets/typesystem_webenginewidgets.xml b/sources/pyside6/PySide6/QtWebEngineWidgets/typesystem_webenginewidgets.xml
index 8eb7e2f6f..61874856b 100644
--- a/sources/pyside6/PySide6/QtWebEngineWidgets/typesystem_webenginewidgets.xml
+++ b/sources/pyside6/PySide6/QtWebEngineWidgets/typesystem_webenginewidgets.xml
@@ -1,45 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtWebEngineWidgets">
+<typesystem package="PySide6.QtWebEngineWidgets"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="QtCore/typesystem_core.xml" generate="no"/>
<load-typesystem name="QtGui/typesystem_gui.xml" generate="no"/>
<load-typesystem name="QtWidgets/typesystem_widgets.xml" generate="no"/>
diff --git a/sources/pyside6/PySide6/QtWebSockets/CMakeLists.txt b/sources/pyside6/PySide6/QtWebSockets/CMakeLists.txt
index 0166f5767..5ff07555b 100644
--- a/sources/pyside6/PySide6/QtWebSockets/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtWebSockets/CMakeLists.txt
@@ -1,9 +1,13 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtWebSockets)
set(QtWebSockets_SRC
${QtWebSockets_GEN_DIR}/qmaskgenerator_wrapper.cpp
${QtWebSockets_GEN_DIR}/qwebsocket_wrapper.cpp
${QtWebSockets_GEN_DIR}/qwebsocketcorsauthenticator_wrapper.cpp
+${QtWebSockets_GEN_DIR}/qwebsockethandshakeoptions_wrapper.cpp
${QtWebSockets_GEN_DIR}/qwebsocketprotocol_wrapper.cpp
${QtWebSockets_GEN_DIR}/qwebsocketserver_wrapper.cpp
# module is always needed
@@ -18,13 +22,10 @@ set(QtWebSockets_include_dirs ${QtWebSockets_SOURCE_DIR}
${libpyside_SOURCE_DIR}
${QtCore_GEN_DIR}
${QtWebSockets_GEN_DIR}
- ${QtNetwork_GEN_DIR}
- )
-set(QtWebSockets_libraries pyside6
- ${Qt${QT_MAJOR_VERSION}WebSockets_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Network_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Core_LIBRARIES}
- )
+ ${QtNetwork_GEN_DIR})
+
+set(QtWebSockets_libraries pyside6
+ ${Qt${QT_MAJOR_VERSION}WebSockets_LIBRARIES})
set(QtWebSockets_deps QtNetwork)
diff --git a/sources/pyside6/PySide6/QtWebSockets/typesystem_websockets.xml b/sources/pyside6/PySide6/QtWebSockets/typesystem_websockets.xml
index da1b78159..2d8d95898 100644
--- a/sources/pyside6/PySide6/QtWebSockets/typesystem_websockets.xml
+++ b/sources/pyside6/PySide6/QtWebSockets/typesystem_websockets.xml
@@ -1,45 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtWebSockets">
+<typesystem package="PySide6.QtWebSockets"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="QtCore/typesystem_core.xml" generate="no"/>
<load-typesystem name="QtNetwork/typesystem_network.xml" generate="no"/>
@@ -53,6 +18,8 @@
<object-type name="QWebSocketCorsAuthenticator"/>
+ <value-type name="QWebSocketHandshakeOptions" since="6.4"/>
+
<namespace-type name="QWebSocketProtocol">
<enum-type name="Version"/>
<enum-type name="CloseCode"/>
@@ -64,15 +31,4 @@
<include file-name="QWebSocketCorsAuthenticator" location="global"/>
</extra-includes>
</object-type>
-
- <!-- TODO: Gracefully handle the lack of SSL support -->
- <rejection class="QWebSocket" function-name="ignoreSslErrors"/>
- <rejection class="QWebSocket" function-name="setSslConfiguration"/>
- <rejection class="QWebSocket" function-name="sslConfiguration"/>
- <rejection class="QWebSocket" function-name="ignoreSslErrors"/>
- <rejection class="QWebSocket" function-name="sslErrors"/>
- <rejection class="QWebSocketServer" function-name="setSslConfiguration"/>
- <rejection class="QWebSocketServer" function-name="sslConfiguration"/>
- <rejection class="QWebSocketServer" function-name="peerVerifyError"/>
- <rejection class="QWebSocketServer" function-name="sslErrors"/>
</typesystem>
diff --git a/sources/pyside6/PySide6/QtWidgets/CMakeLists.txt b/sources/pyside6/PySide6/QtWidgets/CMakeLists.txt
index 3f960bcff..1a77181f2 100644
--- a/sources/pyside6/PySide6/QtWidgets/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtWidgets/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtWidgets)
set(QtWidgets_SRC
@@ -37,6 +40,7 @@ ${QtWidgets_GEN_DIR}/qfocusframe_wrapper.cpp
${QtWidgets_GEN_DIR}/qfontcombobox_wrapper.cpp
${QtWidgets_GEN_DIR}/qfontdialog_wrapper.cpp
${QtWidgets_GEN_DIR}/qformlayout_wrapper.cpp
+${QtWidgets_GEN_DIR}/qformlayout_takerowresult_wrapper.cpp
${QtWidgets_GEN_DIR}/qframe_wrapper.cpp
${QtWidgets_GEN_DIR}/qgesture_wrapper.cpp
${QtWidgets_GEN_DIR}/qgestureevent_wrapper.cpp
@@ -112,6 +116,7 @@ ${QtWidgets_GEN_DIR}/qprogressdialog_wrapper.cpp
${QtWidgets_GEN_DIR}/qproxystyle_wrapper.cpp
${QtWidgets_GEN_DIR}/qpushbutton_wrapper.cpp
${QtWidgets_GEN_DIR}/qradiobutton_wrapper.cpp
+${QtWidgets_GEN_DIR}/qrhiwidget_wrapper.cpp
${QtWidgets_GEN_DIR}/qrubberband_wrapper.cpp
${QtWidgets_GEN_DIR}/qscrollarea_wrapper.cpp
${QtWidgets_GEN_DIR}/qscrollbar_wrapper.cpp
@@ -205,13 +210,11 @@ set(QtWidgets_include_dirs ${QtWidgets_SOURCE_DIR}
${Qt${QT_MAJOR_VERSION}Widgets_INCLUDE_DIRS}
${libpyside_SOURCE_DIR}
${QtCore_GEN_DIR}
- ${QtGui_GEN_DIR}
- )
+ ${QtGui_GEN_DIR})
+
set(QtWidgets_libraries pyside6
- ${Qt${QT_MAJOR_VERSION}Core_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Gui_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Widgets_LIBRARIES}
- )
+ ${Qt${QT_MAJOR_VERSION}Widgets_LIBRARIES})
+
set(QtWidgets_deps QtGui)
create_pyside_module(NAME QtWidgets
diff --git a/sources/pyside6/PySide6/QtWidgets/typesystem_widgets.xml b/sources/pyside6/PySide6/QtWidgets/typesystem_widgets.xml
index dcd84ee04..93a7151fc 100644
--- a/sources/pyside6/PySide6/QtWidgets/typesystem_widgets.xml
+++ b/sources/pyside6/PySide6/QtWidgets/typesystem_widgets.xml
@@ -1,45 +1,10 @@
<?xml version="1.0"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtWidgets">
+<typesystem package="PySide6.QtWidgets"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="QtGui/typesystem_gui.xml" generate="no"/>
<load-typesystem name="QtWidgets/typesystem_widgets_common.xml" generate="yes"/>
</typesystem>
diff --git a/sources/pyside6/PySide6/QtWidgets/typesystem_widgets_common.xml b/sources/pyside6/PySide6/QtWidgets/typesystem_widgets_common.xml
index bd35e1c39..0669c18f6 100644
--- a/sources/pyside6/PySide6/QtWidgets/typesystem_widgets_common.xml
+++ b/sources/pyside6/PySide6/QtWidgets/typesystem_widgets_common.xml
@@ -1,45 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtWidgets">
+<typesystem package="PySide6.QtWidgets"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="templates/core_common.xml" generate="no"/>
<load-typesystem name="templates/widgets_common.xml" generate="no"/>
@@ -65,16 +30,8 @@
enum 'QGraphicsPolygonItem::Type' does not have a type entry or is not an enum
"""
-->
- <rejection class="*" enum-name="enum_1"/>
-
<rejection class="QMdi"/>
- <!--
- Event classes have a lot of non-documented protected fields, those fields
- are removed from PySide because they are Qt implementation details,
- besides the fact they are accessible by ordinary event methods.
- -->
-
<function signature="qDrawShadeLine(QPainter*,int,int,int,int,const QPalette&amp;,bool,int,int)"/>
<function signature="qDrawShadeLine(QPainter*,const QPoint,const QPoint,const QPalette&amp;,bool,int,int)"/>
<function signature="qDrawShadeRect(QPainter*,int,int,int,int,const QPalette&amp;,bool,int,int,const QBrush*)"/>
@@ -87,51 +44,65 @@
<function signature="qDrawWinPanel(QPainter*,const QRect&amp;,const QPalette&amp;,bool,const QBrush*)"/>
<function signature="qDrawPlainRect(QPainter*,int,int,int,int,const QColor&amp;,int,const QBrush*)"/>
<function signature="qDrawPlainRect(QPainter*,const QRect&amp;,const QColor&amp;,int,const QBrush*)"/>
+ <function signature="qDrawPlainRoundedRect(QPainter*,int,int,int,int,qreal,qreal,const QColor&amp;,int,const QBrush*)" since="6.7"/>
+ <function signature="qDrawPlainRoundedRect(QPainter*,const QRect&amp;,qreal,qreal,const QColor&amp;,int,const QBrush *)" since="6.7"/>
- <object-type name="QStyleOption" polymorphic-id-expression="%1-&gt;type == QStyleOption::SO_Default">
+ <object-type name="QStyleOption" polymorphic-id-expression="%B-&gt;type == QStyleOption::SO_Default"
+ polymorphic-name-function="styleOptionType">
+ <inject-code class="native" position="beginning" file="../glue/qtwidgets.cpp"
+ snippet="qstyleoption-typename"/>
<enum-type name="OptionType"/>
<enum-type name="StyleOptionType"/>
<enum-type name="StyleOptionVersion"/>
</object-type>
- <object-type name="QStyleOptionGraphicsItem" polymorphic-id-expression="%1-&gt;type == QStyleOptionGraphicsItem::Type &amp;&amp; %1-&gt;version == QStyleOptionGraphicsItem::Version">
+ <object-type name="QStyleOptionGraphicsItem"
+ polymorphic-id-expression="qstyleoption_cast&lt;const QStyleOptionGraphicsItem *&gt;(%B) != nullptr">
<enum-type name="StyleOptionType"/>
<enum-type name="StyleOptionVersion"/>
</object-type>
- <object-type name="QStyleOptionSizeGrip" polymorphic-id-expression="%1-&gt;type == QStyleOptionSizeGrip::Type &amp;&amp; %1-&gt;version == QStyleOptionSizeGrip::Version">
+ <object-type name="QStyleOptionSizeGrip"
+ polymorphic-id-expression="qstyleoption_cast&lt;const QStyleOptionSizeGrip *&gt;(%B) != nullptr">
<enum-type name="StyleOptionType"/>
<enum-type name="StyleOptionVersion"/>
</object-type>
- <object-type name="QStyleOptionButton" polymorphic-id-expression="%1-&gt;type == QStyleOptionButton::Type &amp;&amp; %1-&gt;version == QStyleOptionButton::Version">
+ <object-type name="QStyleOptionButton"
+ polymorphic-id-expression="qstyleoption_cast&lt;const QStyleOptionButton *&gt;(%B) != nullptr">
<enum-type name="ButtonFeature" flags="ButtonFeatures"/>
<enum-type name="StyleOptionType"/>
<enum-type name="StyleOptionVersion"/>
</object-type>
- <object-type name="QStyleOptionComboBox" polymorphic-id-expression="%1-&gt;type == QStyleOptionComboBox::Type &amp;&amp; %1-&gt;version == QStyleOptionComboBox::Version">
+ <object-type name="QStyleOptionComboBox"
+ polymorphic-id-expression="qstyleoption_cast&lt;const QStyleOptionComboBox *&gt;(%B) != nullptr">
<enum-type name="StyleOptionType"/>
<enum-type name="StyleOptionVersion"/>
</object-type>
- <object-type name="QStyleOptionComplex" polymorphic-id-expression="%1-&gt;type == QStyleOptionComplex::Type &amp;&amp; %1-&gt;version == QStyleOptionComplex::Version">
+ <object-type name="QStyleOptionComplex"
+ polymorphic-id-expression="qstyleoption_cast&lt;const QStyleOptionComplex *&gt;(%B) != nullptr">
<enum-type name="StyleOptionType"/>
<enum-type name="StyleOptionVersion"/>
</object-type>
- <object-type name="QStyleOptionDockWidget" polymorphic-id-expression="%1-&gt;type == QStyleOptionDockWidget::Type &amp;&amp; %1-&gt;version == QStyleOptionDockWidget::Version">
+ <object-type name="QStyleOptionDockWidget"
+ polymorphic-id-expression="qstyleoption_cast&lt;const QStyleOptionDockWidget *&gt;(%B) != nullptr">
<enum-type name="StyleOptionType"/>
<enum-type name="StyleOptionVersion"/>
</object-type>
- <object-type name="QStyleOptionFocusRect" polymorphic-id-expression="%1-&gt;type == QStyleOptionFocusRect::Type &amp;&amp; %1-&gt;version == QStyleOptionFocusRect::Version">
+ <object-type name="QStyleOptionFocusRect" polymorphic-id-expression="qstyleoption_cast&lt;const QStyleOptionFocusRect *&gt;(%B) != nullptr">
<enum-type name="StyleOptionType"/>
<enum-type name="StyleOptionVersion"/>
</object-type>
- <object-type name="QStyleOptionFrame" polymorphic-id-expression="%1-&gt;type == QStyleOptionFrame::Type &amp;&amp; %1-&gt;version == QStyleOptionFrame::Version">
+ <object-type name="QStyleOptionFrame"
+ polymorphic-id-expression="qstyleoption_cast&lt;const QStyleOptionFrame *&gt;(%B) != nullptr">
<enum-type name="FrameFeature" flags="FrameFeatures"/>
<enum-type name="StyleOptionType"/>
<enum-type name="StyleOptionVersion"/>
</object-type>
- <object-type name="QStyleOptionGroupBox" polymorphic-id-expression="%1-&gt;type == QStyleOptionGroupBox::Type &amp;&amp; %1-&gt;version == QStyleOptionGroupBox::Version">
+ <object-type name="QStyleOptionGroupBox"
+ polymorphic-id-expression="qstyleoption_cast&lt;const QStyleOptionGroupBox *&gt;(%B) != nullptr">
<enum-type name="StyleOptionType"/>
<enum-type name="StyleOptionVersion"/>
</object-type>
- <object-type name="QStyleOptionHeader" polymorphic-id-expression="%1-&gt;type == QStyleOptionHeader::Type &amp;&amp; %1-&gt;version == QStyleOptionHeader::Version">
+ <object-type name="QStyleOptionHeader"
+ polymorphic-id-expression="qstyleoption_cast&lt;const QStyleOptionHeader *&gt;(%B) != nullptr">
<enum-type name="SectionPosition"/>
<enum-type name="SelectedPosition"/>
<enum-type name="SortIndicator"/>
@@ -142,29 +113,35 @@
<enum-type name="StyleOptionType"/>
<enum-type name="StyleOptionVersion"/>
</object-type>
- <object-type name="QStyleOptionMenuItem" polymorphic-id-expression="%1-&gt;type == QStyleOptionMenuItem::Type &amp;&amp; %1-&gt;version == QStyleOptionMenuItem::Version">
+ <object-type name="QStyleOptionMenuItem"
+ polymorphic-id-expression="qstyleoption_cast&lt;const QStyleOptionMenuItem *&gt;(%B) != nullptr">
<enum-type name="CheckType"/>
<enum-type name="MenuItemType"/>
<enum-type name="StyleOptionType"/>
<enum-type name="StyleOptionVersion"/>
</object-type>
- <object-type name="QStyleOptionProgressBar" polymorphic-id-expression="%1-&gt;type == QStyleOptionProgressBar::Type &amp;&amp; %1-&gt;version == QStyleOptionProgressBar::Version">
+ <object-type name="QStyleOptionProgressBar"
+ polymorphic-id-expression="qstyleoption_cast&lt;const QStyleOptionProgressBar *&gt;(%B) != nullptr">
<enum-type name="StyleOptionType"/>
<enum-type name="StyleOptionVersion"/>
</object-type>
- <object-type name="QStyleOptionRubberBand" polymorphic-id-expression="%1-&gt;type == QStyleOptionRubberBand::Type &amp;&amp; %1-&gt;version == QStyleOptionRubberBand::Version">
+ <object-type name="QStyleOptionRubberBand"
+ polymorphic-id-expression="qstyleoption_cast&lt;const QStyleOptionRubberBand *&gt;(%B) != nullptr">
<enum-type name="StyleOptionType"/>
<enum-type name="StyleOptionVersion"/>
</object-type>
- <object-type name="QStyleOptionSlider" polymorphic-id-expression="%1-&gt;type == QStyleOptionSlider::Type &amp;&amp; %1-&gt;version == QStyleOptionSlider::Version">
+ <object-type name="QStyleOptionSlider"
+ polymorphic-id-expression="qstyleoption_cast&lt;const QStyleOptionSlider *&gt;(%B) != nullptr">
<enum-type name="StyleOptionType"/>
<enum-type name="StyleOptionVersion"/>
</object-type>
- <object-type name="QStyleOptionSpinBox" polymorphic-id-expression="%1-&gt;type == QStyleOptionSpinBox::Type &amp;&amp; %1-&gt;version == QStyleOptionSpinBox::Version">
+ <object-type name="QStyleOptionSpinBox"
+ polymorphic-id-expression="qstyleoption_cast&lt;const QStyleOptionSpinBox *&gt;(%B) != nullptr">
<enum-type name="StyleOptionType"/>
<enum-type name="StyleOptionVersion"/>
</object-type>
- <object-type name="QStyleOptionTab" polymorphic-id-expression="%1-&gt;type == QStyleOptionTab::Type &amp;&amp; %1-&gt;version == QStyleOptionTab::Version">
+ <object-type name="QStyleOptionTab"
+ polymorphic-id-expression="qstyleoption_cast&lt;const QStyleOptionTab *&gt;(%B) != nullptr">
<enum-type name="CornerWidget" flags="CornerWidgets"/>
<enum-type name="SelectedPosition"/>
<enum-type name="StyleOptionType"/>
@@ -172,36 +149,41 @@
<enum-type name="TabFeature" flags="TabFeatures"/>
<enum-type name="TabPosition"/>
</object-type>
- <object-type name="QStyleOptionTabBarBase" polymorphic-id-expression="%1-&gt;type == QStyleOptionTabBarBase::Type &amp;&amp; %1-&gt;version == QStyleOptionTabBarBase::Version">
+ <object-type name="QStyleOptionTabBarBase"
+ polymorphic-id-expression="qstyleoption_cast&lt;const QStyleOptionTabBarBase *&gt;(%B) != nullptr">
<enum-type name="StyleOptionType"/>
<enum-type name="StyleOptionVersion"/>
</object-type>
- <object-type name="QStyleOptionTabWidgetFrame" polymorphic-id-expression="%1-&gt;type == QStyleOptionTabWidgetFrame::Type &amp;&amp; %1-&gt;version == QStyleOptionTabWidgetFrame::Version">
+ <object-type name="QStyleOptionTabWidgetFrame"
+ polymorphic-id-expression="qstyleoption_cast&lt;const QStyleOptionTabWidgetFrame *&gt;(%B) != nullptr">
<enum-type name="StyleOptionType"/>
<enum-type name="StyleOptionVersion"/>
</object-type>
- <object-type name="QStyleOptionTitleBar" polymorphic-id-expression="%1-&gt;type == QStyleOptionTitleBar::Type &amp;&amp; %1-&gt;version == QStyleOptionTitleBar::Version">
+ <object-type name="QStyleOptionTitleBar" polymorphic-id-expression="qstyleoption_cast&lt;const QStyleOptionTitleBar *&gt;(%B) != nullptr">
<enum-type name="StyleOptionType"/>
<enum-type name="StyleOptionVersion"/>
</object-type>
- <object-type name="QStyleOptionToolBar" polymorphic-id-expression="%1-&gt;type == QStyleOptionToolBar::Type &amp;&amp; %1-&gt;version == QStyleOptionToolBar::Version">
+ <object-type name="QStyleOptionToolBar"
+ polymorphic-id-expression="qstyleoption_cast&lt;const QStyleOptionToolBar *&gt;(%B) != nullptr">
<enum-type name="StyleOptionType"/>
<enum-type name="StyleOptionVersion"/>
<enum-type name="ToolBarFeature" flags="ToolBarFeatures"/>
<enum-type name="ToolBarPosition"/>
</object-type>
- <object-type name="QStyleOptionToolBox" polymorphic-id-expression="%1-&gt;type == QStyleOptionToolBox::Type &amp;&amp; %1-&gt;version == QStyleOptionToolBox::Version">
+ <object-type name="QStyleOptionToolBox"
+ polymorphic-id-expression="qstyleoption_cast&lt;const QStyleOptionToolBox *&gt;(%B) != nullptr">
<enum-type name="SelectedPosition"/>
<enum-type name="StyleOptionType"/>
<enum-type name="StyleOptionVersion"/>
<enum-type name="TabPosition"/>
</object-type>
- <object-type name="QStyleOptionToolButton" polymorphic-id-expression="%1-&gt;type == QStyleOptionToolButton::Type &amp;&amp; %1-&gt;version == QStyleOptionToolButton::Version">
+ <object-type name="QStyleOptionToolButton" polymorphic-id-expression="qstyleoption_cast&lt;const QStyleOptionToolButton *&gt;(%B) != nullptr">
<enum-type name="StyleOptionType"/>
<enum-type name="StyleOptionVersion"/>
<enum-type name="ToolButtonFeature" flags="ToolButtonFeatures"/>
</object-type>
- <value-type name="QStyleOptionViewItem" polymorphic-id-expression="%1-&gt;type == QStyleOptionViewItem::Type &amp;&amp; %1-&gt;version == QStyleOptionViewItem::Version">
+ <value-type name="QStyleOptionViewItem"
+ polymorphic-id-expression="%B-&gt;type == QStyleOptionViewItem::Type &amp;&amp; %B-&gt;version == QStyleOptionViewItem::Version">
<enum-type name="Position"/>
<enum-type name="StyleOptionType"/>
<enum-type name="StyleOptionVersion"/>
@@ -216,7 +198,7 @@
<value-type name="QSizePolicy">
<enum-type name="ControlType" flags="ControlTypes"/>
<enum-type name="Policy"/>
- <enum-type name="PolicyFlag"/>
+ <enum-type name="PolicyFlag" python-type="IntFlag"/>
</value-type>
<value-type name="QTableWidgetSelectionRange"/>
@@ -271,7 +253,9 @@
</modify-function>
</object-type>
- <object-type name="QGraphicsItem">
+ <!-- Register Qt meta type only for base class QGraphicsItem as registering
+ QGraphicsItemGroup* breaks QGraphicsItem::itemChange()), PYSIDE-1887 -->
+ <object-type name="QGraphicsItem" qt-register-metatype="base" parent-management="true">
<enum-type name="CacheMode"/>
<enum-type name="Extension"/>
<enum-type name="GraphicsItemChange"/>
@@ -349,7 +333,7 @@
<modify-argument index="1">
<remove-argument/>
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[bool, PySide6.QtWidgets.QGraphicsItem]">
<replace-type modified-type="(retval, blockingPanel)"/>
</modify-argument>
<inject-code class="target" position="beginning" file="../glue/qtwidgets.cpp" snippet="qgraphicsitem-isblockedbymodalpanel"/>
@@ -359,7 +343,7 @@
<remove-argument />
<remove-default-expression />
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[PySide6.QtGui.QTransform, bool]">
<replace-type modified-type="(QTransform, bool ok)"/>
</modify-argument>
<inject-code class="target" position="beginning">
@@ -419,7 +403,7 @@
<enum-type name="SelectionMode"/>
<enum-type name="State"/>
<modify-function signature="setModel(QAbstractItemModel*)">
- <modify-argument index="1">
+ <modify-argument index="1" pyi-type="Optional[PySide6.QtCore.QAbstractItemModel]">
<reference-count action="set"/>
</modify-argument>
</modify-function>
@@ -506,8 +490,10 @@
</object-type>
<object-type name="QDateEdit"/>
<object-type name="QDialog">
- <enum-type name="DialogCode"/>
- <modify-function signature="exec()" allow-thread="yes"/>
+ <enum-type name="DialogCode" python-type="IntEnum"/>
+ <modify-function signature="exec()" allow-thread="yes">
+ <inject-code file="../glue/qtwidgets.cpp" snippet="qdialog-exec-remove-parent-relation"/>
+ </modify-function>
<add-function signature="exec_()" return-type="int">
<inject-code file="../glue/qtwidgets.cpp" snippet="qapplication-exec"/>
</add-function>
@@ -539,6 +525,11 @@
<parent index="this" action="add"/>
</modify-argument>
</modify-function>
+ <modify-function signature="setPage(int,QWizardPage*)">
+ <modify-argument index="2">
+ <parent index="this" action="add"/>
+ </modify-argument>
+ </modify-function>
<modify-function signature="setButton(QWizard::WizardButton,QAbstractButton*)">
<modify-argument index="2">
<parent index="this" action="add"/>
@@ -546,12 +537,23 @@
</modify-function>
</object-type>
<object-type name="QWizardPage">
+ <extra-includes>
+ <include file-name="pysidesignal.h" location="global"/>
+ </extra-includes>
<modify-function signature="wizard()const">
<modify-argument index="this">
<parent index="return" action="add"/>
</modify-argument>
</modify-function>
- <modify-function signature="registerField(const QString&amp;,QWidget*,const char*,const char*)" allow-thread="yes"/>
+ <modify-function signature="registerField(const QString&amp;,QWidget*,const char*,const char*)" allow-thread="yes">
+ <modify-argument index="3" pyi-type="str" rename="property"/>
+ <modify-argument index="4" pyi-type="str" rename="changed_signal"/>
+ </modify-function>
+ <add-function signature="registerField(const QString&amp;@name@,QWidget*@widget@,const char*@property@,PySideSignalInstance@changedSignal@)">
+ <modify-argument index="3" pyi-type="str"/>
+ <inject-code class="target" position="beginning" file="../glue/qtwidgets.cpp"
+ snippet="qwizardpage-registerfield"/>
+ </add-function>
</object-type>
<object-type name="QFocusFrame">
<modify-function signature="setWidget(QWidget*)">
@@ -569,7 +571,7 @@
<modify-argument index="1">
<remove-argument />
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[bool, PySide6.QtGui.QFont]">
<replace-type modified-type="PyTuple"/>
</modify-argument>
<inject-code class="target" position="beginning">
@@ -580,7 +582,7 @@
<modify-argument index="1">
<remove-argument />
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[bool, PySide6.QtGui.QFont]">
<replace-type modified-type="PyTuple"/>
</modify-argument>
<inject-code class="target" position="beginning">
@@ -800,6 +802,7 @@
</object-type>
<object-type name="QMenu">
<inject-code class="native" position="beginning" file="../glue/qtwidgets.cpp" snippet="qmenu-glue"/>
+ <inject-code class="native" position="beginning" file="../glue/qtwidgets.cpp" snippet="qwidget-addaction-glue"/>
<!-- exec() -->
<modify-function signature="exec()" allow-thread="yes"/>
<add-function signature="exec_()" return-type="QAction*">
@@ -815,11 +818,6 @@
<add-function signature="exec_(QList&lt;QAction*>,const QPoint&amp;,QAction* @at@ = nullptr,QWidget* @parent@ = nullptr)" return-type="QAction*">
<inject-code file="../glue/qtwidgets.cpp" snippet="qmenu-exec-3"/>
</add-function>
- <modify-function signature="addAction(const QString&amp;)">
- <modify-argument index="return">
- <parent index="this" action="add"/>
- </modify-argument>
- </modify-function>
<modify-function signature="addMenu(QMenu*)">
<modify-argument index="return">
<parent index="1" action="add"/>
@@ -859,7 +857,14 @@
<!-- ### "setNoReplayFor(QWidget*)" is an internal method. -->
<modify-function signature="setNoReplayFor(QWidget*)" remove="all"/>
- <add-function signature="addAction(QString&amp;,PyObject*,QKeySequence&amp;)">
+ <!-- FIXME PYSIDE7: Remove in favor of widgets methods -->
+ <modify-function signature="addAction(const QString&amp;,const QObject*,const char*,const QKeySequence&amp;)">
+ <modify-argument index="return">
+ <parent index="this" action="add"/>
+ </modify-argument>
+ </modify-function>
+
+ <add-function signature="addAction(QString&amp;@text@,PyObject*,QKeySequence&amp;@shortcut@)">
<modify-argument index="3">
<replace-default-expression with="0"/>
</modify-argument>
@@ -870,7 +875,7 @@
<inject-code class="target" position="beginning" file="../glue/qtwidgets.cpp" snippet="qmenu-addaction-1"/>
</add-function>
- <add-function signature="addAction(QIcon&amp;,QString&amp;,PyObject*,QKeySequence&amp;)">
+ <add-function signature="addAction(QIcon&amp;,QString&amp;@text@,PyObject*,QKeySequence&amp;@shortcut@)">
<modify-argument index="4">
<replace-default-expression with="0"/>
</modify-argument>
@@ -880,10 +885,11 @@
<inject-code class="target" position="beginning" file="../glue/qtwidgets.cpp" snippet="qmenu-addaction-2"/>
</add-function>
-
- <add-function signature="addAction(QAction*)">
- <inject-code class="target" position="beginning" file="../glue/qtwidgets.cpp" snippet="qmenu-addaction-3"/>
- </add-function>
+ <modify-function signature="addAction(const QIcon&amp;,const QString&amp;,const QObject*,const char*,const QKeySequence&amp;)">
+ <modify-argument index="return">
+ <parent index="this" action="add"/>
+ </modify-argument>
+ </modify-function>
<modify-function signature="clear()">
<inject-code file="../glue/qtwidgets.cpp" snippet="qmenu-clear"/>
@@ -892,23 +898,6 @@
</object-type>
<object-type name="QMenuBar">
- <inject-code class="native" position="beginning" file="../glue/qtwidgets.cpp" snippet="qmenubar-glue"/>
- <modify-function signature="addAction(const QString&amp;)">
- <modify-argument index="return">
- <parent index="this" action="add"/>
- </modify-argument>
- </modify-function>
- <modify-function signature="addAction(QString,const QObject*,const char*)">
- <modify-argument index="return">
- <parent index="this" action="add"/>
- </modify-argument>
- </modify-function>
- <add-function signature="addAction(const QString&amp;,PyObject*)">
- <inject-code class="target" position="beginning" file="../glue/qtwidgets.cpp" snippet="qmenubar-addaction-1"/>
- <modify-argument index="return">
- <parent index="this" action="add"/>
- </modify-argument>
- </add-function>
<modify-function signature="addMenu(QMenu*)">
<modify-argument index="return">
<parent index="1" action="add"/>
@@ -939,10 +928,6 @@
<inject-code file="../glue/qtwidgets.cpp" snippet="qmenubar-clear"/>
</modify-function>
- <add-function signature="addAction(QAction*)">
- <inject-code class="target" position="beginning" file="../glue/qtwidgets.cpp" snippet="qmenubar-addaction-2"/>
- </add-function>
-
</object-type>
<object-type name="QProgressBar">
<enum-type name="Direction"/>
@@ -1106,30 +1091,39 @@
</modify-argument>
</modify-function>
</object-type>
- <object-type name="QWidgetItem" polymorphic-id-expression="%1-&gt;widget()"/>
+ <object-type name="QWidgetItem" polymorphic-id-expression="%B-&gt;widget()"/>
- <object-type name="QGraphicsSceneContextMenuEvent" copyable="false" polymorphic-id-expression="%1-&gt;type() == QEvent::GraphicsSceneContextMenu">
+ <object-type name="QGraphicsSceneContextMenuEvent"
+ polymorphic-id-expression="%B-&gt;type() == QEvent::GraphicsSceneContextMenu">
<enum-type name="Reason"/>
</object-type>
- <object-type name="QGraphicsSceneDragDropEvent" copyable="false" polymorphic-id-expression="%1-&gt;type() == QEvent::GraphicsSceneDragEnter || %1-&gt;type() == QEvent::GraphicsSceneDragLeave || %1-&gt;type() == QEvent::GraphicsSceneDragMove || %1-&gt;type() == QEvent::GraphicsSceneDrop" >
+ <object-type name="QGraphicsSceneDragDropEvent"
+ polymorphic-id-expression="%B-&gt;type() == QEvent::GraphicsSceneDragEnter || %B-&gt;type() == QEvent::GraphicsSceneDragLeave || %B-&gt;type() == QEvent::GraphicsSceneDragMove || %B-&gt;type() == QEvent::GraphicsSceneDrop" >
<!-- ### "setMimeData(const QMimeData*)" is an internal method. -->
<modify-function signature="setMimeData(const QMimeData*)" remove="all"/>
<!-- ### "setSource(QWidget*)" is an internal method. -->
<modify-function signature="setSource(QWidget*)" remove="all"/>
<!-- ### -->
</object-type>
- <object-type name="QGraphicsSceneEvent" copyable="false">
+ <object-type name="QGraphicsSceneEvent" copyable="false" qt-register-metatype="base">
<!-- ### "setWidget(QWidget*)" is an internal method. -->
<modify-function signature="setWidget(QWidget*)" remove="all"/>
</object-type>
- <object-type name="QGraphicsSceneMoveEvent" copyable="false" polymorphic-id-expression="%1-&gt;type() == QEvent::GraphicsSceneMove"/>
- <object-type name="QGraphicsSceneResizeEvent" copyable="false" polymorphic-id-expression="%1-&gt;type() == QEvent::GraphicsSceneResize"/>
- <object-type name="QGraphicsSceneHelpEvent" copyable="false" polymorphic-id-expression="%1-&gt;type() == QEvent::GraphicsSceneHelp"/>
- <object-type name="QGraphicsSceneHoverEvent" copyable="false" polymorphic-id-expression="%1-&gt;type() == QEvent::GraphicsSceneHoverEnter || %1-&gt;type() == QEvent::GraphicsSceneHoverLeave || %1-&gt;type() == QEvent::GraphicsSceneHoverMove"/>
- <object-type name="QGraphicsSceneMouseEvent" copyable="false" polymorphic-id-expression="%1-&gt;type() == QEvent::GraphicsSceneMouseDoubleClick || %1-&gt;type() == QEvent::GraphicsSceneMouseMove || %1-&gt;type() == QEvent::GraphicsSceneMousePress || %1-&gt;type() == QEvent::GraphicsSceneMouseRelease"/>
- <object-type name="QGraphicsSceneWheelEvent" copyable="false" polymorphic-id-expression="%1-&gt;type() == QEvent::GraphicsSceneWheel"/>
-
- <object-type name="QGestureEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::Gesture || %1-&gt;type() == QEvent::GestureOverride" since="4.6">
+ <object-type name="QGraphicsSceneMoveEvent"
+ polymorphic-id-expression="%B-&gt;type() == QEvent::GraphicsSceneMove"/>
+ <object-type name="QGraphicsSceneResizeEvent"
+ polymorphic-id-expression="%B-&gt;type() == QEvent::GraphicsSceneResize"/>
+ <object-type name="QGraphicsSceneHelpEvent"
+ polymorphic-id-expression="%B-&gt;type() == QEvent::GraphicsSceneHelp"/>
+ <object-type name="QGraphicsSceneHoverEvent"
+ polymorphic-id-expression="%B-&gt;type() == QEvent::GraphicsSceneHoverEnter || %B-&gt;type() == QEvent::GraphicsSceneHoverLeave || %B-&gt;type() == QEvent::GraphicsSceneHoverMove"/>
+ <object-type name="QGraphicsSceneMouseEvent"
+ polymorphic-id-expression="%B-&gt;type() == QEvent::GraphicsSceneMouseDoubleClick || %B-&gt;type() == QEvent::GraphicsSceneMouseMove || %B-&gt;type() == QEvent::GraphicsSceneMousePress || %B-&gt;type() == QEvent::GraphicsSceneMouseRelease"/>
+ <object-type name="QGraphicsSceneWheelEvent"
+ polymorphic-id-expression="%B-&gt;type() == QEvent::GraphicsSceneWheel"/>
+
+ <object-type name="QGestureEvent"
+ polymorphic-id-expression="%B-&gt;type() == QEvent::Gesture || %B-&gt;type() == QEvent::GestureOverride" since="4.6">
<modify-function signature="activeGestures()const">
<modify-argument index="return">
<define-ownership owner="default"/>
@@ -1162,41 +1156,37 @@
</add-function>
</object-type>
<object-type name="QStyle">
- <enum-type name="ComplexControl"/>
- <enum-type name="ContentsType"/>
- <enum-type name="ControlElement"/>
- <enum-type name="PixelMetric"/>
- <enum-type name="PrimitiveElement"/>
+ <enum-type name="ComplexControl" python-type="IntEnum"/>
+ <enum-type name="ContentsType" python-type="IntEnum"/>
+ <enum-type name="ControlElement" python-type="IntEnum"/>
+ <enum-type name="PixelMetric" python-type="IntEnum"/>
+ <enum-type name="PrimitiveElement" python-type="IntEnum"/>
<enum-type name="RequestSoftwareInputPanel" since="4.6"/>
- <enum-type name="StandardPixmap"/>
+ <enum-type name="StandardPixmap" python-type="IntEnum"/>
<enum-type name="StateFlag" flags="State"/>
- <enum-type name="StyleHint"/>
+ <enum-type name="StyleHint" python-type="IntEnum"/>
<enum-type name="SubControl" flags="SubControls"/>
- <enum-type name="SubElement"/>
+ <enum-type name="SubElement" python-type="IntEnum"/>
<modify-function signature="drawComplexControl(QStyle::ComplexControl,const QStyleOptionComplex*,QPainter*,const QWidget*)const">
<modify-argument index="3" invalidate-after-use="yes"/>
<modify-argument index="4">
- <replace-default-expression with="0"/>
<rename to="widget"/>
</modify-argument>
</modify-function>
<modify-function signature="drawControl(QStyle::ControlElement,const QStyleOption*,QPainter*,const QWidget*)const">
<modify-argument index="3" invalidate-after-use="yes"/>
<modify-argument index="4">
- <replace-default-expression with="0"/>
<rename to="widget"/>
</modify-argument>
</modify-function>
<modify-function signature="drawPrimitive(QStyle::PrimitiveElement,const QStyleOption*,QPainter*,const QWidget*)const">
<modify-argument index="3" invalidate-after-use="yes"/>
<modify-argument index="4">
- <replace-default-expression with="0"/>
<rename to="widget"/>
</modify-argument>
</modify-function>
<modify-function signature="hitTestComplexControl(QStyle::ComplexControl,const QStyleOptionComplex*,const QPoint&amp;,const QWidget*)const">
<modify-argument index="4">
- <replace-default-expression with="0"/>
<rename to="widget"/>
</modify-argument>
</modify-function>
@@ -1225,7 +1215,8 @@
<modify-argument index="return">
<define-ownership owner="default"/>
</modify-argument>
- <inject-code class="target" position="end" file="../glue/qtwidgets.cpp" snippet="addownership-0"/>
+ <inject-code class="target" position="end" file="../glue/qtwidgets.cpp"
+ snippet="addownership-item-at"/>
</modify-function>
<modify-function signature="removeWidget(QWidget*)">
@@ -1359,7 +1350,8 @@
<modify-argument index="return">
<define-ownership owner="default"/>
</modify-argument>
- <inject-code class="target" position="end" file="../glue/qtwidgets.cpp" snippet="addownership-0"/>
+ <inject-code class="target" position="end" file="../glue/qtwidgets.cpp"
+ snippet="addownership-item-at"/>
</modify-function>
<modify-function signature="addWidget(QWidget*,int,int,QFlags&lt;Qt::AlignmentFlag&gt;)">
<modify-argument index="4">
@@ -1429,7 +1421,7 @@
<enum-type name="ViewportAnchor"/>
<enum-type name="ViewportUpdateMode"/>
<modify-function signature="setScene(QGraphicsScene*)">
- <modify-argument index="1">
+ <modify-argument index="1" pyi-type="Optional[PySide6.QtWidgets.QGraphicsScene]">
<reference-count action="set"/>
</modify-argument>
</modify-function>
@@ -1494,6 +1486,7 @@
<enum-type name="InputMode"/>
<modify-function signature="getInt(QWidget*,const QString&amp;,const QString&amp;,int,int,int,int,bool*,QFlags&lt;Qt::WindowType&gt;)" allow-thread="yes">
+ <modify-argument index="return" pyi-type="Tuple[int, bool]"/>
<modify-argument index="8">
<remove-default-expression/>
<remove-argument/>
@@ -1504,6 +1497,7 @@
</modify-function>
<modify-function signature="getItem(QWidget*,const QString&amp;,const QString&amp;,const QStringList&amp;,int,bool,bool*,QFlags&lt;Qt::WindowType&gt;,QFlags&lt;Qt::InputMethodHint&gt;)" allow-thread="yes">
+ <modify-argument index="return" pyi-type="Tuple[str, bool]"/>
<modify-argument index="7">
<remove-default-expression/>
<remove-argument/>
@@ -1514,6 +1508,7 @@
</modify-function>
<modify-function signature="getMultiLineText(QWidget*,const QString&amp;,const QString&amp;,const QString&amp;,bool*,QFlags&lt;Qt::WindowType&gt;,QFlags&lt;Qt::InputMethodHint&gt;)" allow-thread="yes">
+ <modify-argument index="return" pyi-type="Tuple[str, bool]"/>
<modify-argument index="5">
<remove-default-expression/>
<remove-argument/>
@@ -1524,6 +1519,7 @@
</modify-function>
<modify-function signature="getText(QWidget*,const QString&amp;,const QString&amp;,QLineEdit::EchoMode,const QString&amp;,bool*,QFlags&lt;Qt::WindowType&gt;,QFlags&lt;Qt::InputMethodHint&gt;)" allow-thread="yes">
+ <modify-argument index="return" pyi-type="Tuple[str, bool]"/>
<modify-argument index="6">
<remove-default-expression/>
<remove-argument/>
@@ -1534,6 +1530,7 @@
</modify-function>
<modify-function signature="getDouble(QWidget*,const QString&amp;,const QString&amp;,double,double,double,int,bool*,QFlags&lt;Qt::WindowType&gt;,double)" allow-thread="yes">
+ <modify-argument index="return" pyi-type="Tuple[float, bool]"/>
<modify-argument index="8">
<remove-default-expression/>
<remove-argument/>
@@ -1794,7 +1791,7 @@
<modify-function signature="closeEditor(QWidget*,QAbstractItemDelegate::EndEditHint)" allow-thread="yes"/>
</object-type>
<object-type name="QTableWidgetItem" >
- <enum-type name="ItemType"/>
+ <enum-type name="ItemType" python-type="IntEnum"/>
<modify-function signature="read(QDataStream&amp;)" allow-thread="yes">
<modify-argument index="1" invalidate-after-use="yes"/>
</modify-function>
@@ -1803,7 +1800,7 @@
</modify-function>
</object-type>
<object-type name="QListWidgetItem" >
- <enum-type name="ItemType"/>
+ <enum-type name="ItemType" python-type="IntEnum"/>
<modify-function signature="QListWidgetItem(const QString&amp;,QListWidget*,int)">
<modify-argument index="this">
<parent index="2" action="add"/>
@@ -1861,9 +1858,9 @@
</modify-argument>
</modify-function>
</object-type>
- <object-type name="QTreeWidgetItem" hash-function="qHash">
+ <object-type name="QTreeWidgetItem" hash-function="qHash" parent-management="true">
<enum-type name="ChildIndicatorPolicy"/>
- <enum-type name="ItemType"/>
+ <enum-type name="ItemType" python-type="IntEnum"/>
<modify-function signature="read(QDataStream&amp;)" allow-thread="yes">
<modify-argument index="1" invalidate-after-use="yes"/>
</modify-function>
@@ -1985,6 +1982,10 @@
<object-type name="QWidget" delete-in-main-thread="true">
<!-- see QWindow::nativeEvent(), QAbstractNativeEventFilter::nativeEventFilter() -->
+ <inject-code class="native" position="beginning" file="../glue/qtwidgets.cpp" snippet="qwidget-addaction-glue"/>
+ <inject-code class="native" position="beginning">
+ #include &lt;QtWidgets/qapplication.h&gt;
+ </inject-code>
<modify-function signature="nativeEvent(const QByteArray &amp;,void*,qintptr*)">
<modify-argument index="3">
<remove-argument/>
@@ -2004,8 +2005,10 @@
</modify-function>
<extra-includes>
+ <include file-name="QApplication" location="global"/>
<include file-name="QIcon" location="global"/>
<include file-name="QMessageBox" location="global"/>
+ <include file-name="QStyle" location="global"/>
</extra-includes>
<inject-code class="native" position="beginning" file="../glue/qtwidgets.cpp"
@@ -2018,12 +2021,14 @@
<modify-argument index="this">
<parent index="1" action="add"/>
</modify-argument>
+ <modify-argument index="1" pyi-type="Optional[PySide6.QtWidgets.QWidget]"/>
</modify-function>
<modify-function signature="setParent(QWidget*,QFlags&lt;Qt::WindowType&gt;)">
<modify-argument index="this">
<parent index="1" action="add"/>
</modify-argument>
+ <modify-argument index="1" pyi-type="Optional[PySide6.QtWidgets.QWidget]"/>
</modify-function>
<modify-function signature="parentWidget()const">
@@ -2035,6 +2040,12 @@
</modify-argument>
</modify-function>
+ <modify-function signature="nativeParentWidget()const"> <!-- Suppress return value heuristics -->
+ <modify-argument index="return">
+ <define-ownership class="target" owner="default"/>
+ </modify-argument>
+ </modify-function>
+
<modify-function signature="actionEvent(QActionEvent*)">
<modify-argument index="1" invalidate-after-use="yes">
<rename to="event"/>
@@ -2188,6 +2199,82 @@
</modify-argument>
</modify-function>
+ <modify-function signature="addAction(const QString&amp;)">
+ <modify-argument index="return">
+ <parent index="this" action="add"/>
+ </modify-argument>
+ </modify-function>
+ <modify-function signature="addAction(const QIcon&amp;,const QString&amp;)">
+ <modify-argument index="return">
+ <parent index="this" action="add"/>
+ </modify-argument>
+ </modify-function>
+ <modify-function signature="addAction(const QString&amp;,const QKeySequence&amp;)">
+ <modify-argument index="return">
+ <parent index="this" action="add"/>
+ </modify-argument>
+ </modify-function>
+ <modify-function signature="addAction(const QIcon&amp;,const QString&amp;,const QKeySequence&amp;)">
+ <modify-argument index="return">
+ <parent index="this" action="add"/>
+ </modify-argument>
+ </modify-function>
+
+ <modify-function signature="addAction(const QString&amp;,const QObject*,const char*,Qt::ConnectionType)">
+ <modify-argument index="return">
+ <parent index="this" action="add"/>
+ </modify-argument>
+ </modify-function>
+ <add-function signature="addAction(QString&amp;@text@,PyObject*@callable@)"
+ return-type="QAction*">
+ <modify-argument index="return">
+ <parent index="this" action="add"/>
+ </modify-argument>
+
+ <inject-code class="target" position="beginning" file="../glue/qtwidgets.cpp" snippet="qwidget-addaction-2"/>
+ </add-function>
+
+ <modify-function signature="addAction(const QIcon&amp;,const QString&amp;,const QObject*,const char*,Qt::ConnectionType)">
+ <modify-argument index="return">
+ <parent index="this" action="add"/>
+ </modify-argument>
+ </modify-function>
+ <add-function signature="addAction(QIcon&amp;@icon@,QString&amp;@text@,PyObject*@callable@)"
+ return-type="QAction*">
+ <modify-argument index="return">
+ <parent index="this" action="add"/>
+ </modify-argument>
+
+ <inject-code class="target" position="beginning" file="../glue/qtwidgets.cpp" snippet="qwidget-addaction-3"/>
+ </add-function>
+
+ <modify-function signature="addAction(const QString&amp;,const QKeySequence&amp;,const QObject*,const char*,Qt::ConnectionType)">
+ <modify-argument index="return">
+ <parent index="this" action="add"/>
+ </modify-argument>
+ </modify-function>
+ <add-function signature="addAction(QString&amp;@text@,QKeySequence&amp;@shortcut@,PyObject*@callable@)"
+ return-type="QAction*">
+ <modify-argument index="return">
+ <parent index="this" action="add"/>
+ </modify-argument>
+
+ <inject-code class="target" position="beginning" file="../glue/qtwidgets.cpp" snippet="qwidget-addaction-3"/>
+ </add-function>
+
+ <modify-function signature="addAction(const QIcon&amp;,const QString&amp;,const QKeySequence&amp;,const QObject*,const char*,Qt::ConnectionType)">
+ <modify-argument index="return">
+ <parent index="this" action="add"/>
+ </modify-argument>
+ </modify-function>
+ <add-function signature="addAction(QIcon&amp;@icon@,QString&amp;@text@,QKeySequence&amp;@shortcut@,PyObject*@callable@)"
+ return-type="QAction*">
+ <modify-argument index="return">
+ <parent index="this" action="add"/>
+ </modify-argument>
+ <inject-code class="target" position="beginning" file="../glue/qtwidgets.cpp" snippet="qwidget-addaction-4"/>
+ </add-function>
+
<modify-function signature="insertAction(QAction*,QAction*)">
<modify-argument index="2">
<parent index="this" action="add"/>
@@ -2202,6 +2289,7 @@
<modify-argument index="this">
<parent index="1" action="add"/>
</modify-argument>
+ <modify-argument index="1" pyi-type="Optional[PySide6.QtWidgets.QWidget]"/>
</modify-function>
<modify-function signature="window()const">
@@ -2214,7 +2302,8 @@
<object-type name="QMessageBox">
<enum-type name="ButtonRole"/>
<enum-type name="Icon"/>
- <enum-type name="StandardButton" flags="StandardButtons"/>
+ <enum-type name="StandardButton" python-type="IntFlag" flags="StandardButtons"/>
+ <enum-type name="Option" flags="Options" since="6.6"/>
<modify-function signature="removeButton(QAbstractButton*)">
<modify-argument index="1">
<parent index="this" action="add"/>
@@ -2224,10 +2313,19 @@
<include file-name="QPixmap" location="global"/>
</extra-includes>
+ <!-- FIXME PYSIDE-7: Remove deprecated overloads -->
<modify-function signature="critical(QWidget*,const QString&amp;,const QString&amp;,QFlags&lt;QMessageBox::StandardButton&gt;,QMessageBox::StandardButton)" allow-thread="yes"/>
+ <modify-function signature="critical(QWidget*,const QString&amp;,const QString&amp;,QMessageBox::StandardButton,QMessageBox::StandardButton)"
+ allow-thread="yes"/>
<modify-function signature="information(QWidget*,const QString&amp;,const QString&amp;,QFlags&lt;QMessageBox::StandardButton&gt;,QMessageBox::StandardButton)" allow-thread="yes"/>
+ <modify-function signature="information(QWidget*,const QString&amp;,const QString&amp;,QMessageBox::StandardButton,QMessageBox::StandardButton)"
+ allow-thread="yes"/>
<modify-function signature="question(QWidget*,const QString&amp;,const QString&amp;,QFlags&lt;QMessageBox::StandardButton&gt;,QMessageBox::StandardButton)" allow-thread="yes"/>
+ <modify-function signature="question(QWidget*,const QString&amp;,const QString&amp;,QMessageBox::StandardButton,QMessageBox::StandardButton)"
+ allow-thread="yes"/>
<modify-function signature="warning(QWidget*,const QString&amp;,const QString&amp;,QFlags&lt;QMessageBox::StandardButton&gt;,QMessageBox::StandardButton)" allow-thread="yes"/>
+ <modify-function signature="warning(QWidget*,const QString&amp;,const QString&amp;,QMessageBox::StandardButton,QMessageBox::StandardButton)"
+ allow-thread="yes"/>
<modify-function signature="QMessageBox(const QString&amp;,const QString&amp;,QMessageBox::Icon,int,int,int,QWidget*,QFlags&lt;Qt::WindowType&gt;)" remove="all"/>
<modify-function signature="critical(QWidget*,const QString&amp;,const QString&amp;,int,int,int)" remove="all"/>
<modify-function signature="critical(QWidget*,const QString&amp;,const QString&amp;,const QString&amp;,const QString&amp;,const QString&amp;,int,int)" remove="all"/>
@@ -2244,7 +2342,7 @@
<enum-type name="ButtonSymbols"/>
<enum-type name="CorrectionMode"/>
<enum-type name="StepEnabledFlag" flags="StepEnabled"/>
- <enum-type name="StepType" since="5.12"/>
+ <enum-type name="StepType"/>
<modify-function signature="setLineEdit(QLineEdit*)">
<modify-argument index="1">
<parent index="this" action="add"/>
@@ -2379,7 +2477,7 @@
<modify-function signature="getExistingDirectory(QWidget*,const QString&amp;,const QString&amp;,QFlags&lt;QFileDialog::Option>)" allow-thread="yes"/>
<modify-function signature="getExistingDirectoryUrl(QWidget*,const QString&amp;,const QUrl&amp;,QFlags&lt;QFileDialog::Option>,const QStringList&amp;)" allow-thread="yes"/>
<modify-function signature="getOpenFileName(QWidget*,const QString&amp;,const QString&amp;,const QString&amp;,QString*,QFlags&lt;QFileDialog::Option&gt;)" allow-thread="yes">
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[str, str]">
<replace-type modified-type="(fileName, selectedFilter)"/>
</modify-argument>
<modify-argument index="5">
@@ -2389,7 +2487,7 @@
<inject-code class="target" position="end" file="../glue/qtwidgets.cpp" snippet="qfiledialog-return" />
</modify-function>
<modify-function signature="getOpenFileNames(QWidget*,const QString&amp;,const QString&amp;,const QString&amp;,QString*,QFlags&lt;QFileDialog::Option&gt;)" allow-thread="yes">
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[List[str], str]">
<replace-type modified-type="(fileNames, selectedFilter)"/>
</modify-argument>
<modify-argument index="5">
@@ -2400,7 +2498,7 @@
</modify-function>
<modify-function signature="getOpenFileUrl(QWidget*,const QString&amp;,const QUrl&amp;,const QString&amp;,QString*,QFlags&lt;QFileDialog::Option&gt;,const QStringList&amp;)" allow-thread="yes">
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[PySide6.QtCore.QUrl, str]">
<replace-type modified-type="(fileName, selectedFilter)"/>
</modify-argument>
<modify-argument index="5">
@@ -2411,7 +2509,7 @@
</modify-function>
<modify-function signature="getOpenFileUrls(QWidget*,const QString&amp;,const QUrl&amp;,const QString&amp;,QString*,QFlags&lt;QFileDialog::Option&gt;,const QStringList&amp;)" allow-thread="yes">
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[List[PySide6.QtCore.QUrl], str]">
<replace-type modified-type="(fileName, selectedFilter)"/>
</modify-argument>
<modify-argument index="5">
@@ -2422,7 +2520,7 @@
</modify-function>
<modify-function signature="getSaveFileName(QWidget*,const QString&amp;,const QString&amp;,const QString&amp;,QString*,QFlags&lt;QFileDialog::Option&gt;)" allow-thread="yes">
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[str, str]">
<replace-type modified-type="(fileName, selectedFilter)"/>
</modify-argument>
<modify-argument index="5">
@@ -2433,7 +2531,7 @@
</modify-function>
<modify-function signature="getSaveFileUrl(QWidget*,const QString&amp;,const QUrl&amp;,const QString&amp;,QString*,QFlags&lt;QFileDialog::Option&gt;,const QStringList&amp;)" allow-thread="yes">
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[PySide6.QtCore.QUrl, str]">
<replace-type modified-type="(fileName, selectedFilter)"/>
</modify-argument>
<modify-argument index="5">
@@ -2624,6 +2722,7 @@
<object-type name="QDial"/>
<object-type name="QKeySequenceEdit"/>
<object-type name="QLineEdit">
+ <inject-code class="native" position="beginning" file="../glue/qtwidgets.cpp" snippet="qwidget-addaction-glue"/>
<enum-type name="ActionPosition"/>
<enum-type name="EchoMode"/>
<modify-function signature="setCompleter(QCompleter*)">
@@ -2668,8 +2767,8 @@
</modify-function>
</object-type>
<object-type name="QFrame">
- <enum-type name="Shadow"/>
- <enum-type name="Shape"/>
+ <enum-type name="Shadow" python-type="IntEnum"/>
+ <enum-type name="Shape" python-type="IntEnum"/>
<enum-type name="StyleMask"/>
</object-type>
<object-type name="QSpinBox"/>
@@ -2695,43 +2794,6 @@
</modify-function>
</object-type>
<object-type name="QToolBar">
- <modify-function signature="addAction(QIcon,QString,const QObject*,const char*)">
- <modify-argument index="3">
- <replace-type modified-type="PyObject"/>
- </modify-argument>
- <modify-argument index="4">
- <remove-argument />
- </modify-argument>
- <modify-argument index="return">
- <parent index="this" action="add"/>
- </modify-argument>
- <inject-code file="../glue/qtwidgets.cpp" snippet="qtoolbar-addaction-1"/>
- </modify-function>
- <modify-function signature="addAction(QString,const QObject*,const char*)">
- <modify-argument index="2">
- <replace-type modified-type="PyObject"/>
- </modify-argument>
- <modify-argument index="3">
- <remove-argument />
- </modify-argument>
- <modify-argument index="return">
- <parent index="this" action="add"/>
- </modify-argument>
- <inject-code file="../glue/qtwidgets.cpp" snippet="qtoolbar-addaction-2"/>
- </modify-function>
- <modify-function signature="addAction(const QString&amp;)">
- <modify-argument index="return">
- <parent index="this" action="add"/>
- </modify-argument>
- </modify-function>
- <modify-function signature="addAction(const QIcon&amp;,const QString&amp;)">
- <modify-argument index="return">
- <parent index="this" action="add"/>
- </modify-argument>
- </modify-function>
- <add-function signature="addAction(QAction*)">
- <inject-code class="target" position="beginning" file="../glue/qtwidgets.cpp" snippet="qtoolbar-addaction-3"/>
- </add-function>
<modify-function signature="addSeparator()">
<modify-argument index="return">
<parent index="this" action="add"/>
@@ -2835,6 +2897,8 @@
<include file-name="QIcon" location="global"/>
<include file-name="QLocale" location="global"/>
<include file-name="QStyle" location="global"/>
+ <include file-name="pysideqapp.h" location="global"/>
+ <include file-name="pysidecleanup.h" location="global"/>
</extra-includes>
<modify-function signature="QApplication(int&amp;,char**,int)" access="private"/>
<add-function signature="QApplication(QStringList)">
@@ -2857,9 +2921,9 @@
<object-type name="QCommandLinkButton"/>
<!-- FIXME PYSIDE7: Move to QtGui -->
- <object-type name="QFileSystemModel" polymorphic-id-expression="qobject_cast&lt;QFileSystemModel*&gt;(%1)">
- <enum-type name="Roles"/>
- <enum-type name="Option" flags="Options" since="5.14"/>
+ <object-type name="QFileSystemModel" polymorphic-id-expression="qobject_cast&lt;QFileSystemModel*&gt;(%B)">
+ <enum-type name="Roles" python-type="IntEnum"/>
+ <enum-type name="Option" flags="Options"/>
<modify-function signature="setIconProvider(QAbstractFileIconProvider*)">
<modify-argument index="1">
<parent index="this" action="add"/>
@@ -2875,6 +2939,9 @@
<enum-type name="ItemRole"/>
<enum-type name="RowWrapPolicy"/>
+ <value-type name="TakeRowResult">
+ <include file-name="QFormLayout" location="global"/>
+ </value-type>
<modify-function signature="getLayoutPosition(QLayout*,int*,QFormLayout::ItemRole*)const">
<modify-argument index="0">
@@ -3050,7 +3117,8 @@
<modify-argument index="1" invalidate-after-use="yes"/>
</modify-function>
</object-type>
- <object-type name="QGraphicsLayoutItem" copyable="false">
+ <object-type name="QGraphicsLayoutItem" copyable="false" qt-register-metatype="base"
+ parent-management="true">
<modify-function signature="getContentsMargins(qreal*,qreal*,qreal*,qreal*)const">
<modify-argument index="0">
<replace-type modified-type="PyObject"/>
@@ -3278,6 +3346,16 @@
</object-type>
<object-type name="QGestureRecognizer" since="4.6">
<enum-type name="ResultFlag" flags="Result"/>
+ <modify-function signature="create(QObject*)">
+ <modify-argument index="return">
+ <define-ownership owner="c++"/>
+ </modify-argument>
+ </modify-function>
+ <modify-function signature="registerRecognizer(QGestureRecognizer*)">
+ <modify-argument index="1">
+ <define-ownership owner="c++"/>
+ </modify-argument>
+ </modify-function>
</object-type>
<object-type name="QTapAndHoldGesture" since="4.6"/>
<object-type name="QTapGesture" since="4.6"/>
@@ -3303,6 +3381,12 @@
<object-type name="QPinchGesture" since="4.6">
<enum-type name="ChangeFlag" flags="ChangeFlags"/>
</object-type>
+
+ <object-type name="QRhiWidget" since="6.7">
+ <enum-type name="Api"/>
+ <enum-type name="TextureFormat"/>
+ </object-type>
+
<object-type name="QSwipeGesture" since="4.6">
<enum-type name="SwipeDirection"/>
</object-type>
@@ -3334,21 +3418,6 @@
<!-- The above entries may be present in the system or not. Keep this section organized. -->
- <!-- This enum is present on QtCore -->
- <suppress-warning text="enum 'QCoreApplication::ApplicationFlags' is specified in typesystem, but not declared"/>
- <suppress-warning text="QGraphicsEllipseItem::Type' does not have a type entry or is not an enum"/>
- <suppress-warning text="QGraphicsItemGroup::Type' does not have a type entry or is not an enum"/>
- <suppress-warning text="QGraphicsItem::UserType' does not have a type entry or is not an enum"/>
- <suppress-warning text="QGraphicsLineItem::Type' does not have a type entry or is not an enum"/>
- <suppress-warning text="QGraphicsPathItem::Type' does not have a type entry or is not an enum"/>
- <suppress-warning text="QGraphicsPixmapItem::Type' does not have a type entry or is not an enum"/>
- <suppress-warning text="QGraphicsPolygonItem::Type' does not have a type entry or is not an enum"/>
- <suppress-warning text="QGraphicsProxyWidget::Type' does not have a type entry or is not an enum"/>
- <suppress-warning text="QGraphicsRectItem::Type' does not have a type entry or is not an enum"/>
- <suppress-warning text="QGraphicsSimpleTextItem::Type' does not have a type entry or is not an enum"/>
- <suppress-warning text="QGraphicsSvgItem::Type' does not have a type entry or is not an enum"/>
- <suppress-warning text="QGraphicsTextItem::Type' does not have a type entry or is not an enum"/>
- <suppress-warning text="QGraphicsWidget::Type' does not have a type entry or is not an enum"/>
<suppress-warning text="signal 'activated' in class 'QCompleter' is overloaded."/>
<suppress-warning text="signal 'highlighted' in class 'QCompleter' is overloaded."/>
</typesystem>
diff --git a/sources/pyside6/PySide6/QtWinExtras/CMakeLists.txt b/sources/pyside6/PySide6/QtWinExtras/CMakeLists.txt
deleted file mode 100644
index de86cc7c5..000000000
--- a/sources/pyside6/PySide6/QtWinExtras/CMakeLists.txt
+++ /dev/null
@@ -1,48 +0,0 @@
-project(QtWinExtras)
-
-set(QtWinExtras_SRC
-${QtWinExtras_GEN_DIR}/qtwin_wrapper.cpp
-${QtWinExtras_GEN_DIR}/qwincolorizationchangeevent_wrapper.cpp
-${QtWinExtras_GEN_DIR}/qwincompositionchangeevent_wrapper.cpp
-${QtWinExtras_GEN_DIR}/qwinevent_wrapper.cpp
-${QtWinExtras_GEN_DIR}/qwinjumplist_wrapper.cpp
-${QtWinExtras_GEN_DIR}/qwinjumplistcategory_wrapper.cpp
-${QtWinExtras_GEN_DIR}/qwinjumplistitem_wrapper.cpp
-#${QtWinExtras_GEN_DIR}/qwinmime_wrapper.cpp
-${QtWinExtras_GEN_DIR}/qwintaskbarbutton_wrapper.cpp
-${QtWinExtras_GEN_DIR}/qwintaskbarprogress_wrapper.cpp
-${QtWinExtras_GEN_DIR}/qwinthumbnailtoolbar_wrapper.cpp
-${QtWinExtras_GEN_DIR}/qwinthumbnailtoolbutton_wrapper.cpp
-
-# module is always needed
-${QtWinExtras_GEN_DIR}/qtwinextras_module_wrapper.cpp
-)
-
-configure_file("${QtWinExtras_SOURCE_DIR}/QtWinExtras_global.pre.h.in"
- "${QtWinExtras_BINARY_DIR}/QtWinExtras_global.pre.h" @ONLY)
-
-set(QtWinExtras_include_dirs ${QtWinExtras_SOURCE_DIR}
- ${QtWinExtras_BINARY_DIR}
- ${Qt${QT_MAJOR_VERSION}WinExtras_INCLUDE_DIRS}
- ${Qt${QT_MAJOR_VERSION}Core_INCLUDE_DIRS}
- ${Qt${QT_MAJOR_VERSION}Gui_INCLUDE_DIRS}
- ${Qt${QT_MAJOR_VERSION}Widgets_INCLUDE_DIRS}
- ${QtCore_GEN_DIR}
- ${QtGui_GEN_DIR}
- ${QtWidgets_GEN_DIR}
- ${libpyside_SOURCE_DIR})
-
-set(QtWinExtras_libraries pyside6
- ${Qt${QT_MAJOR_VERSION}WinExtras_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Core_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Gui_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Widgets_LIBRARIES})
-
-set(QtWinExtras_deps QtCore QtGui QtWidgets)
-
-create_pyside_module(NAME QtWinExtras
- INCLUDE_DIRS QtWinExtras_include_dirs
- LIBRARIES QtWinExtras_libraries
- DEPS QtWinExtras_deps
- TYPESYSTEM_PATH QtWinExtras_SOURCE_DIR
- SOURCES QtWinExtras_SRC)
diff --git a/sources/pyside6/PySide6/QtWinExtras/QtWinExtras_global.pre.h.in b/sources/pyside6/PySide6/QtWinExtras/QtWinExtras_global.pre.h.in
deleted file mode 100644
index 21285e301..000000000
--- a/sources/pyside6/PySide6/QtWinExtras/QtWinExtras_global.pre.h.in
+++ /dev/null
@@ -1,5 +0,0 @@
-// QT_WIDGETS_LIB must be defined for the widget functions to become visible.
-
-#if @Qt6Widgets_FOUND@
-# define QT_WIDGETS_LIB
-#endif
diff --git a/sources/pyside6/PySide6/QtWinExtras/typesystem_winextras.xml b/sources/pyside6/PySide6/QtWinExtras/typesystem_winextras.xml
deleted file mode 100644
index 2e0da666a..000000000
--- a/sources/pyside6/PySide6/QtWinExtras/typesystem_winextras.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
--->
-<typesystem package="PySide6.QtWinExtras">
- <load-typesystem name="QtCore/typesystem_core.xml" generate="no"/>
- <load-typesystem name="QtGui/typesystem_gui.xml" generate="no"/>
- <load-typesystem name="QtWidgets/typesystem_widgets.xml" generate="no"/>
-
- <namespace-type name="QtWin">
- <enum-type name="HBitmapFormat"/>
- <enum-type name="WindowFlip3DPolicy"/>
- </namespace-type>
- <object-type name="QWinEvent" since="5.2"/>
- <object-type name="QWinColorizationChangeEvent" since="5.2"/>
- <object-type name="QWinCompositionChangeEvent" since="5.2"/>
- <object-type name="QWinJumpList" since="5.2"/>
- <object-type name="QWinJumpListCategory" since="5.2">
- <enum-type name="Type"/>
- </object-type>
- <object-type name="QWinJumpListItem" since="5.2">
- <enum-type name="Type"/>
- </object-type>
- <!-- <object-type name="QWinMime" since="5.4"/> -->
- <object-type name="QWinTaskbarButton" since="5.2"/>
- <object-type name="QWinTaskbarProgress" since="5.2"/>
- <object-type name="QWinThumbnailToolBar" since="5.2"/>
- <object-type name="QWinThumbnailToolButton" since="5.2"/>
-</typesystem>
diff --git a/sources/pyside6/PySide6/QtXml/CMakeLists.txt b/sources/pyside6/PySide6/QtXml/CMakeLists.txt
index ffb073f69..b0e4630dd 100644
--- a/sources/pyside6/PySide6/QtXml/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtXml/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtXml)
set(QtXml_SRC
@@ -6,6 +9,7 @@ ${QtXml_GEN_DIR}/qdomcdatasection_wrapper.cpp
${QtXml_GEN_DIR}/qdomcharacterdata_wrapper.cpp
${QtXml_GEN_DIR}/qdomcomment_wrapper.cpp
${QtXml_GEN_DIR}/qdomdocument_wrapper.cpp
+${QtXml_GEN_DIR}/qdomdocument_parseresult_wrapper.cpp
${QtXml_GEN_DIR}/qdomdocumentfragment_wrapper.cpp
${QtXml_GEN_DIR}/qdomdocumenttype_wrapper.cpp
${QtXml_GEN_DIR}/qdomelement_wrapper.cpp
diff --git a/sources/pyside6/PySide6/QtXml/typesystem_xml.xml b/sources/pyside6/PySide6/QtXml/typesystem_xml.xml
index 1bc51d3f3..3661a67bf 100644
--- a/sources/pyside6/PySide6/QtXml/typesystem_xml.xml
+++ b/sources/pyside6/PySide6/QtXml/typesystem_xml.xml
@@ -1,52 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtXml">
+<typesystem package="PySide6.QtXml"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<load-typesystem name="QtCore/typesystem_core.xml" generate="no" />
<load-typesystem name="templates/core_common.xml" generate="no" />
- <rejection class="QXmlAttributes::Attribute"/>
<rejection class="QDomNode" field-name="impl"/>
- <rejection class="QXmlInputSource" field-name="EndOfData"/>
- <rejection class="QXmlInputSource" field-name="EndOfDocument"/>
<value-type name="QDomAttr"/>
<value-type name="QDomCDATASection"/>
@@ -55,7 +17,11 @@
<value-type name="QDomDocument">
+ <enum-type name="ParseOption" flags="ParseOptions" since="6.5"/>
<!-- will be replaced in inject code -->
+
+ <value-type name="ParseResult"/>
+
<modify-function signature="setContent(const QByteArray&amp;,bool,QString*,int*,int*)">
<modify-argument index="3">
<remove-argument/>
@@ -69,7 +35,7 @@
<remove-argument/>
<remove-default-expression/>
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[bool, str, int, int]">
<replace-type modified-type="(retval, errorMsg, errorLine, errorColumn)"/>
</modify-argument>
<inject-code class="target" position="beginning" file="../glue/qtxml.cpp" snippet="qdomdocument-setcontent" />
@@ -87,7 +53,7 @@
<remove-argument/>
<remove-default-expression/>
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[bool, str, int, int]">
<replace-type modified-type="(retval, errorMsg, errorLine, errorColumn)"/>
</modify-argument>
<inject-code class="target" position="beginning" file="../glue/qtxml.cpp" snippet="qdomdocument-setcontent" />
@@ -105,7 +71,7 @@
<remove-argument/>
<remove-default-expression/>
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[bool, str, int, int]">
<replace-type modified-type="(retval, errorMsg, errorLine, errorColumn)"/>
</modify-argument>
<inject-code class="target" position="beginning" file="../glue/qtxml.cpp" snippet="qdomdocument-setcontent" />
@@ -123,7 +89,7 @@
<remove-argument/>
<remove-default-expression/>
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[bool, str, int, int]">
<replace-type modified-type="(retval, errorMsg, errorLine, errorColumn)"/>
</modify-argument>
<inject-code class="target" position="beginning" file="../glue/qtxml.cpp" snippet="qdomdocument-setcontent" />
@@ -141,7 +107,7 @@
<remove-argument/>
<remove-default-expression/>
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[bool, str, int, int]">
<replace-type modified-type="(retval, errorMsg, errorLine, errorColumn)"/>
</modify-argument>
<inject-code class="target" position="beginning" file="../glue/qtxml.cpp" snippet="qdomdocument-setcontent" />
@@ -159,7 +125,7 @@
<remove-argument/>
<remove-default-expression/>
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[bool, str, int, int]">
<replace-type modified-type="(retval, errorMsg, errorLine, errorColumn)"/>
</modify-argument>
<inject-code class="target" position="beginning" file="../glue/qtxml.cpp" snippet="qdomdocument-setcontent" />
@@ -203,12 +169,5 @@
<modify-function signature="setAttribute(const QString&amp;, qulonglong)" remove="all"/>
</value-type>
- <object-type name="QXmlContentHandler">
- <modify-function signature="setDocumentLocator(QXmlLocator*)">
- <modify-argument index="1">
- <define-ownership owner="c++"/>
- </modify-argument>
- </modify-function>
- </object-type>
</typesystem>
diff --git a/sources/pyside6/PySide6/__feature__.pyi.in b/sources/pyside6/PySide6/__feature__.pyi.in
new file mode 100644
index 000000000..c9a8907d1
--- /dev/null
+++ b/sources/pyside6/PySide6/__feature__.pyi.in
@@ -0,0 +1,10 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+snake_case = 0x01
+true_property = 0x02
+
+all_feature_names = [
+ "snake_case",
+ "true_property",
+]
diff --git a/sources/pyside6/PySide6/__init__.py.in b/sources/pyside6/PySide6/__init__.py.in
index 631cfc1ce..d0a4ecc37 100644
--- a/sources/pyside6/PySide6/__init__.py.in
+++ b/sources/pyside6/PySide6/__init__.py.in
@@ -3,6 +3,7 @@ import sys
from pathlib import Path
from textwrap import dedent
+# __all__ is also corrected below.
__all__ = list("Qt" + body for body in
"@all_module_shortnames@"
.split(";"))
@@ -23,8 +24,11 @@ def _additional_dll_directories(package_dir):
# is executed in the build directory. We need libpyside and Qt in addition.
shiboken6 = Path(root).parent / 'shiboken6' / 'libshiboken'
if not shiboken6.is_dir():
- raise ImportError(shiboken6 + ' does not exist')
+ raise ImportError(str(shiboken6) + ' does not exist')
result = [shiboken6, root / 'libpyside']
+ libpysideqml = root / 'libpysideqml'
+ if libpysideqml.is_dir():
+ result.append(libpysideqml)
for path in os.environ.get('PATH').split(';'):
if path:
if (Path(path) / 'qmake.exe').exists():
@@ -52,7 +56,7 @@ def _setupQtDirectories():
if sys.platform == 'win32' and sys.version_info[0] == 3 and sys.version_info[1] >= 8:
for dir in _additional_dll_directories(pyside_package_dir):
- os.add_dll_directory(dir)
+ os.add_dll_directory(os.fspath(dir))
try:
# PYSIDE-1497: we use the build dir or install dir or site-packages, whatever the path
@@ -64,26 +68,6 @@ def _setupQtDirectories():
file=sys.stderr)
raise
- # Trigger signature initialization.
- try:
- # PYSIDE-829: Avoid non-existent attributes in compiled code (Nuitka).
- # We now use an explicit function instead of touching a signature.
- _init_pyside_extension()
- except (AttributeError, NameError):
- stars = 79 * "*"
- fname = Shiboken.__file__
- print(dedent(f'''\
- {stars}
- PySide6/__init__.py: The `signature` module was not initialized.
- This libshiboken module was loaded from
-
- "{fname}".
-
- Please make sure that this is the real Shiboken binary and not just a folder.
- {stars}
- '''), file=sys.stderr)
- raise
-
if sys.platform == 'win32':
# PATH has to contain the package directory, otherwise plugins
# won't be able to find their required Qt libraries (e.g. the
@@ -108,4 +92,33 @@ def _setupQtDirectories():
finally:
os.environ['PATH'] = path
+
+def _find_all_qt_modules():
+ # Since the wheel split, the __all__ variable cannot be computed statically,
+ # because we don't know all modules in advance.
+
+ # Instead, we look into the file system and quickly build a list of all
+ # existing .pyi files, because importing is not desired and also impossible during import.
+ # By using the initially created list, we can keep some order intact.
+ location = Path(__file__).resolve().parent
+
+ # Note: We should _not_ call this function while still building, but use the existing value!
+ in_build = Path("@CMAKE_BINARY_DIR@") in location.parents
+
+ if in_build:
+ return __all__
+
+ files = os.listdir(location)
+ unordered = set(name[:-4] for name in files if name.startswith("Qt") and name.endswith(".pyi"))
+ ordered_part = __all__
+ result = []
+ for name in ordered_part:
+ if name in unordered:
+ result.append(name)
+ unordered.remove(name)
+ result.extend(unordered)
+ return result
+
+
+__all__ = _find_all_qt_modules()
_setupQtDirectories()
diff --git a/sources/pyside6/PySide6/_config.py.in b/sources/pyside6/PySide6/_config.py.in
index 740e9a001..27ee0789b 100644
--- a/sources/pyside6/PySide6/_config.py.in
+++ b/sources/pyside6/PySide6/_config.py.in
@@ -14,3 +14,4 @@ version_info = (@BINDING_API_MAJOR_VERSION@, @BINDING_API_MINOR_VERSION@, @BINDI
@PACKAGE_BUILD_COMMIT_HASH_DESCRIBED@
@PACKAGE_SETUP_PY_PACKAGE_TIMESTAMP_ASSIGNMENT@
@PACKAGE_SETUP_PY_PACKAGE_VERSION_ASSIGNMENT@
+@QT_MACOS_DEPLOYMENT_TARGET@
diff --git a/sources/pyside6/PySide6/doc/qtqml_functions.rst b/sources/pyside6/PySide6/doc/qtqml_functions.rst
new file mode 100644
index 000000000..31801b245
--- /dev/null
+++ b/sources/pyside6/PySide6/doc/qtqml_functions.rst
@@ -0,0 +1,152 @@
+// @snippet qmlregistersingletoninstance
+.. py:function:: qmlRegisterSingletonInstance(pytype: type,\
+ uri: str,\
+ versionMajor: int,\
+ versionMinor: int,\
+ typeName: str,\
+ instanceObject: object) -> int
+
+ :param type pytype: Python class
+ :param str uri: uri to use while importing the component in QML
+ :param int versionMajor: major version
+ :param int versionMinor: minor version
+ :param str typeName: name exposed to QML
+ :param object instanceObject: singleton object to be registered
+ :return: int (the QML type id)
+
+This function registers a singleton Python object *instanceObject*, with a
+particular *uri* and *typeName*. Its version is a combination of *versionMajor*
+and *versionMinor*. Use this function to register an object of the given type
+*pytype* as a singleton type.
+// @snippet qmlregistersingletoninstance
+
+// @snippet qmlregistersingletontype_qobject_nocallback
+.. py:function:: qmlRegisterSingletonType(pytype: type, uri: str, versionMajor: int, versionMinor: int, typeName: str) -> int
+
+ :param type pytype: Python class
+ :param str uri: uri to use while importing the component in QML
+ :param int versionMajor: major version
+ :param int versionMinor: minor version
+ :param str typeName: name exposed to QML
+ :return: int (the QML type id)
+
+This function registers a Python type as a singleton in the QML system.
+
+Alternatively, the :ref:`QmlSingleton` decorator can be used.
+// @snippet qmlregistersingletontype_qobject_nocallback
+
+// @snippet qmlregistersingletontype_qobject_callback
+.. py:function:: qmlRegisterSingletonType(pytype: type, uri: str, versionMajor: int, versionMinor: int, typeName: str, callback: object) -> int
+
+ :param type pytype: Python class
+ :param str uri: uri to use while importing the component in QML
+ :param int versionMajor: major version
+ :param int versionMinor: minor version
+ :param str typeName: name exposed to QML
+ :param object callback: Python callable (to handle Python type)
+ :return: int (the QML type id)
+
+This function registers a Python type as a singleton in the QML system using
+the provided callback (which gets a QQmlEngine as a parameter) to generate the
+singleton.
+// @snippet qmlregistersingletontype_qobject_callback
+
+// @snippet qmlregistersingletontype_qjsvalue
+.. py:function:: qmlRegisterSingletonType(uri: str, versionMajor: int, versionMinor: int, typeName: str, callback: object) -> int
+
+ :param str uri: uri to use while importing the component in QML
+ :param int versionMajor: major version
+ :param int versionMinor: minor version
+ :param str typeName: name exposed to QML
+ :param object callback: Python callable (to handle QJSValue)
+ :return: int (the QML type id)
+
+This function registers a QJSValue as a singleton in the QML system using the
+provided callback (which gets a QQmlEngine as a parameter) to generate the
+singleton.
+// @snippet qmlregistersingletontype_qjsvalue
+
+// @snippet qmlregistertype
+.. py:function:: qmlRegisterType(pytype: type, uri: str, versionMajor: int, versionMinor: int, qmlName: str) -> int
+
+ :param type pytype: Python class
+ :param str uri: uri to use while importing the component in QML
+ :param int versionMajor: major version
+ :param int versionMinor: minor version
+ :param str qmlName: name exposed to QML
+ :return: int (the QML type id)
+
+This function registers the Python *type* in the QML system with the name
+*qmlName*, in the library imported from *uri* having the version number
+composed from *versionMajor* and *versionMinor*. For example, this registers a
+Python class 'MySliderItem' as a QML type named 'Slider' for version '1.0' of a
+module called 'com.mycompany.qmlcomponents':
+
+ ::
+
+ qmlRegisterType(MySliderItem, "com.mycompany.qmlcomponents", 1, 0, "Slider")
+
+Once this is registered, the type can be used in QML by importing the specified
+module name and version number:
+
+ ::
+
+ import com.mycompany.qmlcomponents 1.0
+
+ Slider { ... }
+
+Note that it's perfectly reasonable for a library to register types to older
+versions than the actual version of the library. Indeed, it is normal for the
+new library to allow QML written to previous versions to continue to work, even
+if more advanced versions of some of its types are available.
+// @snippet qmlregistertype
+
+// @snippet qmlregisteruncreatabletype
+.. py:function:: qmlRegisterUncreatableType(pytype: type, uri: str, versionMajor: int, versionMinor: int, qmlName: str, noCreationReason: str) -> int
+
+ :param type pytype: Python class
+ :param str uri: uri to use while importing the component in QML
+ :param int versionMajor: major version
+ :param int versionMinor: minor version
+ :param str qmlName: name exposed to QML
+ :param str noCreationReason: Error message shown when trying to create the QML type
+ :return: int (the QML type id)
+
+This function registers the Python *type* in the QML system as an uncreatable
+type with the name *qmlName*, in the library imported from *uri* having the
+version number composed from *versionMajor* and *versionMinor*, showing
+*noCreationReason* as an error message when creating the type is attempted. For
+example, this registers a Python class 'MySliderItem' as a QML type named
+'Slider' for version '1.0' of a module called 'com.mycompany.qmlcomponents':
+
+ ::
+ qmlRegisterUncreatableType(MySliderItem, "com.mycompany.qmlcomponents", 1, 0, "Slider", "Slider cannot be created.")
+
+Note that it's perfectly reasonable for a library to register types to older
+versions than the actual version of the library. Indeed, it is normal for the
+new library to allow QML written to previous versions to continue to work, even
+if more advanced versions of some of its types are available.
+
+Alternatively, the :ref:`QmlUncreatable` decorator can be used.
+// @snippet qmlregisteruncreatabletype
+
+// @snippet qqmlengine-singletoninstance-qmltypeid
+Returns the instance of a singleton type that was registered under qmlTypeId.
+For ``QObject``-derived singleton types, the ``QObject`` instance is returned,
+otherwise a ``QJSValue`` or ``None``.
+
+It is recommended to store the QML type id, e.g. as a static member in the
+singleton class. The lookup via qmlTypeId() is costly.
+// @snippet qqmlengine-singletoninstance-qmltypeid
+
+// @snippet qqmlengine-singletoninstance-typename Returns the instance of a
+singleton type named typeName from the module specified by uri.
+For ``QObject``-derived singleton types, the ``QObject`` instance is returned,
+otherwise a ``QJSValue`` or ``None``.
+
+This method can be used as an alternative to calling qmlTypeId followed by the
+id based overload of singletonInstance. This is convenient when one only needs
+to do a one time setup of a singleton; if repeated access to the singleton is
+required, caching its typeId will allow faster subsequent access via the
+type-id based overload.
+// @snippet qqmlengine-singletoninstance-typename
diff --git a/sources/pyside6/PySide6/doc/qtquicktest.rst b/sources/pyside6/PySide6/doc/qtquicktest.rst
new file mode 100644
index 000000000..9df2af071
--- /dev/null
+++ b/sources/pyside6/PySide6/doc/qtquicktest.rst
@@ -0,0 +1,62 @@
+// @snippet quick_test_main_documentation
+
+Sets up the entry point for a Qt Quick Test application.
+The ``name`` argument uniquely identifies this set of tests.
+
+``sys.argv`` should be passed to the ``argv`` argument to ensure
+propagation of the command line arguments.
+
+.. note:: The function assumes that your test sources are in the current
+ directory, unless the ``QUICK_TEST_SOURCE_DIR`` environment
+ variable is set or a directory is passed in ``dir``.
+
+The following snippet demonstrates the use of this function:
+
+.. code-block:: Python
+
+ import sys
+ from PySide6.QtQuickTest import QUICK_TEST_MAIN
+
+ ex = QUICK_TEST_MAIN("example", sys.argv)
+ sys.exit(ex)
+
+
+// @snippet quick_test_main_documentation
+
+// @snippet quick_test_main_with_setup_documentation
+
+Sets up the entry point for a Qt Quick Test application.
+The ``name`` argument uniquely identifies this set of tests.
+
+``sys.argv`` should be passed to the ``argv`` argument to ensure
+propagation of the command line arguments.
+
+This function is identical to ``QUICK_TEST_MAIN()``, except that it takes an
+additional argument ``setup``, the type of a ``QObject``-derived
+class which will be instantiated. With this class, it is possible to define
+additional setup code to execute before running the QML test.
+
+The following snippet demonstrates the use of this function:
+
+.. code-block:: Python
+
+ import sys
+ from PySide6.QtQuickTest import QUICK_TEST_MAIN_WITH_SETUP
+
+ class CustomTestSetup(QObject):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+ @Slot(QQmlEngine)
+ def qmlEngineAvailable(self, qmlEngine):
+ pass
+
+ ex = QUICK_TEST_MAIN_WITH_SETUP("qquicktestsetup", CustomTestSetup, sys.argv)
+ sys.exit(ex)
+
+
+.. note:: The function assumes that your test sources are in the current
+ directory, unless the ``QUICK_TEST_SOURCE_DIR`` environment
+ variable is set or a directory is passed in ``dir``.
+
+// @snippet quick_test_main_with_setup_documentation
diff --git a/sources/pyside6/PySide6/doc/qtuitools.rst b/sources/pyside6/PySide6/doc/qtuitools.rst
new file mode 100644
index 000000000..a8856f1af
--- /dev/null
+++ b/sources/pyside6/PySide6/doc/qtuitools.rst
@@ -0,0 +1,68 @@
+// @snippet quiloader-registercustomwidget
+Registers a Python created custom widget to QUiLoader, so it can be recognized
+when loading a `.ui` file. The custom widget type is passed via the
+``customWidgetType`` argument. This is needed when you want to override a
+virtual method of some widget in the interface, since duck punching will not
+work with widgets created by QUiLoader based on the contents of the `.ui` file.
+
+(Remember that
+`duck punching virtual methods is an invitation for your own demise! <https://doc.qt.io/qtforpython/shiboken6/wordsofadvice.html#duck-punching-and-virtual-methods>`_)
+
+Let's see an obvious example. If you want to create a new widget it's probable you'll end up
+overriding :class:`~PySide6.QtGui.QWidget`'s :meth:`~PySide6.QtGui.QWidget.paintEvent` method.
+
+.. code-block:: python
+
+ class Circle(QWidget):
+ def paintEvent(self, event):
+ with QPainter(self) as painter:
+ painter.setPen(self.pen)
+ painter.setBrush(QBrush(self.color))
+ painter.drawEllipse(event.rect().center(), 20, 20)
+
+ # ...
+
+ loader = QUiLoader()
+ loader.registerCustomWidget(Circle)
+ circle = loader.load('circle.ui')
+ circle.show()
+
+ # ...
+// @snippet quiloader-registercustomwidget
+
+// @snippet loaduitype
+.. currentmodule:: PySide6.QtUiTools
+
+loadUiType
+***********
+.. py:function:: loadUiType(uifile: str) -> tuple(object, object)
+
+ :param str uifile: The name of the `.ui` file
+ :return: tuple(object, object)
+
+This function generates and loads a `.ui` file at runtime, and it returns
+a `tuple` containing the reference to the Python class, and the base class.
+
+We recommend not to use this approach as the workflow should be to generate a Python file
+from the `.ui` file, and then import and load it to use it, but we do understand that
+there are some corner cases when such functionality is required.
+
+The internal process relies on `uic` being in the PATH.
+The `pyside6-uic` wrapper uses a shipped `uic` that is located in the
+`site-packages/PySide6/uic`, so PATH needs to be updated to use that if there
+is no `uic` in the system.
+
+A simple use case is::
+
+ from PySide6.QtUiTools import loadUiType
+
+ generated_class, base_class = loadUiType("themewidget.ui")
+ # the values will be:
+ # (<class '__main__.Ui_ThemeWidgetForm'>, <class 'PySide6.QtWidgets.QWidget'>)
+
+ widget = base_class()
+ form = generated_class()
+ form.setupUi(widget)
+ # form.a_widget_member.a_method_of_member()
+ widget.show()
+// @snippet loaduitype
diff --git a/sources/pyside6/PySide6/global.h.in b/sources/pyside6/PySide6/global.h.in
index 519585fd7..9a1e001fe 100644
--- a/sources/pyside6/PySide6/global.h.in
+++ b/sources/pyside6/PySide6/global.h.in
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include <QtCore/qnamespace.h>
diff --git a/sources/pyside6/PySide6/glue/qhttpserver.cpp b/sources/pyside6/PySide6/glue/qhttpserver.cpp
new file mode 100644
index 000000000..b6e485e2c
--- /dev/null
+++ b/sources/pyside6/PySide6/glue/qhttpserver.cpp
@@ -0,0 +1,50 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+/*********************************************************************
+ * INJECT CODE
+ ********************************************************************/
+
+// Note: Lambdas need to be inline, QTBUG-104481
+// @snippet qhttpserver-route
+QString rule = %CONVERTTOCPP[QString](%PYARG_1);
+auto *callable = %PYARG_2;
+
+bool cppResult = %CPPSELF.%FUNCTION_NAME(rule,
+ [callable](const QHttpServerRequest &request) -> QString {
+ Shiboken::GilState state;
+ auto *requestPtr = &request;
+ Shiboken::AutoDecRef arglist(PyTuple_New(1));
+ PyTuple_SET_ITEM(arglist, 0,
+ %CONVERTTOPYTHON[QHttpServerRequest *](requestPtr));
+ PyObject *ret = PyObject_CallObject(callable, arglist);
+ if (PyErr_Occurred())
+ PyErr_Print();
+ if (ret == nullptr)
+ return QString{};
+ QString cppResult = %CONVERTTOCPP[QString](ret);
+ return cppResult;
+});
+
+%PYARG_0 = %CONVERTTOPYTHON[bool](cppResult);
+// @snippet qhttpserver-route
+
+// @snippet qhttpserver-afterrequest
+auto *callable = %PYARG_1;
+
+%CPPSELF.%FUNCTION_NAME([callable](QHttpServerResponse &&response,
+ const QHttpServerRequest &request) {
+ Shiboken::GilState state;
+ Shiboken::AutoDecRef arglist(PyTuple_New(2));
+ auto *responsePtr = &response;
+ auto *requestPtr = &request;
+ PyTuple_SET_ITEM(arglist, 0,
+ %CONVERTTOPYTHON[QHttpServerResponse *](responsePtr));
+ PyTuple_SET_ITEM(arglist, 1,
+ %CONVERTTOPYTHON[QHttpServerRequest *](requestPtr));
+ PyObject_CallObject(callable, arglist);
+ if (PyErr_Occurred())
+ PyErr_Print();
+ return std::move(response);
+});
+// @snippet qhttpserver-afterrequest
diff --git a/sources/pyside6/PySide6/glue/qtcharts.cpp b/sources/pyside6/PySide6/glue/qtcharts.cpp
index 7171f19df..a99dbbb8a 100644
--- a/sources/pyside6/PySide6/glue/qtcharts.cpp
+++ b/sources/pyside6/PySide6/glue/qtcharts.cpp
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
// @snippet qchart-releaseownership
Shiboken::Object::releaseOwnership(%PYARG_1);
diff --git a/sources/pyside6/PySide6/glue/qtcore.cpp b/sources/pyside6/PySide6/glue/qtcore.cpp
index 2b5729a69..bc51d26d7 100644
--- a/sources/pyside6/PySide6/glue/qtcore.cpp
+++ b/sources/pyside6/PySide6/glue/qtcore.cpp
@@ -1,51 +1,176 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
/*********************************************************************
* INJECT CODE
********************************************************************/
// @snippet include-pyside
-#include <pyside.h>
+#include <pysideinit.h>
#include <limits>
+#include "glue/core_snippets_p.h"
// @snippet include-pyside
+// @snippet core-snippets-p-h
+#include "glue/core_snippets_p.h"
+// @snippet core-snippets-p-h
+
+// @snippet qarg_helper
+
+// Helper for the Q_ARG/Q_RETURN_ARG functions, creating a meta type
+// and instance.
+struct QArgData
+{
+ operator bool() const { return metaType.isValid() && data != nullptr; }
+
+ QMetaType metaType;
+ void *data = nullptr;
+};
+
+QArgData qArgDataFromPyType(PyObject *t)
+{
+ QArgData result;
+ const char *typeName{};
+ if (PyType_Check(t)) {
+ auto *pyType = reinterpret_cast<PyTypeObject *>(t);
+ typeName = pyType->tp_name;
+ result.metaType = PySide::qMetaTypeFromPyType(pyType);
+ } else if (PyUnicode_Check(t)) {
+ typeName = Shiboken::String::toCString(t);
+ result.metaType = QMetaType::fromName(typeName);
+ } else {
+ PyErr_Format(PyExc_RuntimeError, "%s: Parameter should be a type or type string.",
+ __FUNCTION__);
+ return result;
+ }
+
+ if (!result.metaType.isValid()) {
+ PyErr_Format(PyExc_RuntimeError, "%s: Unable to find a QMetaType for \"%s\".",
+ __FUNCTION__, typeName);
+ return result;
+ }
+
+ result.data = result.metaType.create();
+ if (result.data == nullptr) {
+ PyErr_Format(PyExc_RuntimeError, "%s: Unable to create an instance of \"%s\" (%s).",
+ __FUNCTION__, typeName, result.metaType.name());
+ return result;
+ }
+ return result;
+}
+// @snippet qarg_helper
+
+// @snippet settings-value-helpers
+// Convert a QVariant to a desired primitive type
+static PyObject *convertToPrimitiveType(const QVariant &out, int metaTypeId)
+{
+ switch (metaTypeId) {
+ case QMetaType::QByteArray:
+ return PyBytes_FromString(out.toByteArray().constData());
+ case QMetaType::QString:
+ return PyUnicode_FromString(out.toByteArray().constData());
+ case QMetaType::Short:
+ case QMetaType::Long:
+ case QMetaType::LongLong:
+ case QMetaType::UShort:
+ case QMetaType::ULong:
+ case QMetaType::ULongLong:
+ case QMetaType::Int:
+ case QMetaType::UInt:
+ return PyLong_FromDouble(out.toFloat());
+ case QMetaType::Double:
+ case QMetaType::Float:
+ case QMetaType::Float16:
+ return PyFloat_FromDouble(out.toFloat());
+ case QMetaType::Bool:
+ if (out.toBool()) {
+ Py_INCREF(Py_True);
+ return Py_True;
+ }
+ Py_INCREF(Py_False);
+ return Py_False;
+ default:
+ break;
+ }
+ return nullptr;
+}
+
+// Helper for QSettings::value() to convert a value to the desired type
+static PyObject *settingsTypeCoercion(const QVariant &out, PyTypeObject *typeObj)
+{
+ if (typeObj == &PyList_Type) {
+ // Convert any string, etc, to a list of 1 element
+ if (auto *primitiveValue = convertToPrimitiveType(out, out.typeId())) {
+ PyObject *list = PyList_New(1);
+ PyList_SET_ITEM(list, 0, primitiveValue);
+ return list;
+ }
+
+ const QByteArray out_ba = out.toByteArray();
+ if (out_ba.isEmpty())
+ return PyList_New(0);
+
+ const QByteArrayList valuesList = out_ba.split(',');
+ const Py_ssize_t valuesSize = valuesList.size();
+ PyObject *list = PyList_New(valuesSize);
+ for (Py_ssize_t i = 0; i < valuesSize; ++i) {
+ PyObject *item = PyUnicode_FromString(valuesList.at(i).constData());
+ PyList_SET_ITEM(list, i, item);
+ }
+ return list;
+ }
+
+ if (typeObj == &PyBytes_Type)
+ return convertToPrimitiveType(out, QMetaType::QByteArray);
+ if (typeObj == &PyUnicode_Type)
+ return convertToPrimitiveType(out, QMetaType::QString);
+ if (typeObj == &PyLong_Type)
+ return convertToPrimitiveType(out, QMetaType::Int);
+ if (typeObj == &PyFloat_Type)
+ return convertToPrimitiveType(out, QMetaType::Double);
+ if (typeObj == &PyBool_Type)
+ return convertToPrimitiveType(out, QMetaType::Bool);
+
+ // TODO: PyDict_Type and PyTuple_Type
+ PyErr_SetString(PyExc_TypeError,
+ "Invalid type parameter.\n"
+ "\tUse 'list', 'bytes', 'str', 'int', 'float', 'bool', "
+ "or a Qt-derived type");
+ return nullptr;
+}
+
+static bool isEquivalentSettingsType(PyTypeObject *typeObj, int metaTypeId)
+{
+ switch (metaTypeId) {
+ case QMetaType::QVariantList:
+ case QMetaType::QStringList:
+ return typeObj == &PyList_Type;
+ case QMetaType::QByteArray:
+ return typeObj == &PyBytes_Type;
+ case QMetaType::QString:
+ return typeObj == &PyUnicode_Type;
+ case QMetaType::Short:
+ case QMetaType::Long:
+ case QMetaType::LongLong:
+ case QMetaType::UShort:
+ case QMetaType::ULong:
+ case QMetaType::ULongLong:
+ case QMetaType::Int:
+ case QMetaType::UInt:
+ return typeObj == &PyLong_Type;
+ case QMetaType::Double:
+ case QMetaType::Float:
+ case QMetaType::Float16:
+ return typeObj == &PyFloat_Type;
+ case QMetaType::Bool:
+ return typeObj == &PyBool_Type;
+ default:
+ break;
+ }
+ return false;
+}
+// @snippet settings-value-helpers
+
// @snippet qsettings-value
// If we enter the kwds, means that we have a defaultValue or
// at least a type.
@@ -66,78 +191,32 @@ if ((kwds && PyDict_Size(kwds) > 0) || numArgs > 1) {
PyTypeObject *typeObj = reinterpret_cast<PyTypeObject*>(%PYARG_3);
-if (typeObj && !Shiboken::ObjectType::checkType(typeObj)) {
- if (typeObj == &PyList_Type) {
- QByteArray out_ba = out.toByteArray();
- if (!out_ba.isEmpty()) {
- QByteArrayList valuesList = out_ba.split(',');
- const Py_ssize_t valuesSize = valuesList.size();
- if (valuesSize > 0) {
- PyObject *list = PyList_New(valuesSize);
- for (Py_ssize_t i = 0; i < valuesSize; ++i) {
- PyObject *item = PyUnicode_FromString(valuesList.at(i).constData());
- PyList_SET_ITEM(list, i, item);
- }
- %PYARG_0 = list;
-
- } else {
- %PYARG_0 = %CONVERTTOPYTHON[QVariant](out);
- }
- } else {
- %PYARG_0 = PyList_New(0);
- }
- } else if (typeObj == &PyBytes_Type) {
- QByteArray asByteArray = out.toByteArray();
- %PYARG_0 = PyBytes_FromString(asByteArray.constData());
- } else if (typeObj == &PyUnicode_Type) {
- QByteArray asByteArray = out.toByteArray();
- %PYARG_0 = PyUnicode_FromString(asByteArray.constData());
- } else if (typeObj == &PyLong_Type) {
- float asFloat = out.toFloat();
- pyResult = PyLong_FromDouble(asFloat);
- } else if (typeObj == &PyFloat_Type) {
- float asFloat = out.toFloat();
- %PYARG_0 = PyFloat_FromDouble(asFloat);
- } else if (typeObj == &PyBool_Type) {
- if (out.toBool()) {
- Py_INCREF(Py_True);
- %PYARG_0 = Py_True;
- } else {
- Py_INCREF(Py_False);
- %PYARG_0 = Py_False;
- }
+if (typeObj && !Shiboken::ObjectType::checkType(typeObj)
+ && !isEquivalentSettingsType(typeObj, out.typeId())) {
+ %PYARG_0 = settingsTypeCoercion(out, typeObj);
+} else {
+ if (out.isValid()) {
+ %PYARG_0 = %CONVERTTOPYTHON[QVariant](out);
} else {
- // TODO: PyDict_Type and PyTuple_Type
- PyErr_SetString(PyExc_TypeError,
- "Invalid type parameter.\n"
- "\tUse 'list', 'bytes', 'str', 'int', 'float', 'bool', "
- "or a Qt-derived type");
- return nullptr;
- }
-}
-else {
- if (!out.isValid()) {
Py_INCREF(Py_None);
%PYARG_0 = Py_None;
- } else {
- %PYARG_0 = %CONVERTTOPYTHON[QVariant](out);
}
}
// @snippet qsettings-value
+// @snippet metatype-from-type
+%0 = new %TYPE(PySide::qMetaTypeFromPyType(reinterpret_cast<PyTypeObject *>(%1)));
+// @snippet metatype-from-type
+
+// @snippet metatype-from-metatype-type
+Shiboken::AutoDecRef intArg(PyObject_GetAttrString(%PYARG_1, "value"));
+%0 = new %TYPE(PyLong_AsLong(intArg));
+// @snippet metatype-from-metatype-type
+
// @snippet conversion-pytypeobject-qmetatype
-auto *pyType = reinterpret_cast<PyTypeObject *&>(%in);
-if (Shiboken::String::checkType(pyType))
- %out = QMetaType(QMetaType::QString);
-else if (%in == reinterpret_cast<PyObject *>(&PyFloat_Type))
- %out = QMetaType(QMetaType::Double);
-else if (%in == reinterpret_cast<PyObject *>(&PyLong_Type))
- %out = QMetaType(QMetaType::Int);
-else if (Py_TYPE(%in) == SbkObjectType_TypeF())
- %out = QMetaType::fromName(Shiboken::ObjectType::getOriginalName(pyType));
-else
- %out = QMetaType::fromName(pyType->tp_name);
+auto *pyType = reinterpret_cast<PyTypeObject *>(%in);
+%out = PySide::qMetaTypeFromPyType(pyType);
// @snippet conversion-pytypeobject-qmetatype
// @snippet conversion-qmetatype-pytypeobject
@@ -148,96 +227,12 @@ return %out;
// @snippet conversion-qmetatype-pytypeobject
// @snippet qvariant-conversion
-static QMetaType QVariant_resolveMetaType(PyTypeObject *type)
-{
- if (PyObject_TypeCheck(type, SbkObjectType_TypeF())) {
- const char *typeName = Shiboken::ObjectType::getOriginalName(type);
- if (!typeName)
- return {};
- const bool valueType = '*' != typeName[qstrlen(typeName) - 1];
- // Do not convert user type of value
- if (valueType && Shiboken::ObjectType::isUserType(type))
- return {};
- QMetaType metaType = QMetaType::fromName(typeName);
- if (metaType.isValid())
- return metaType;
- // Do not resolve types to value type
- if (valueType)
- return {};
- // Find in base types. First check tp_bases, and only after check tp_base, because
- // tp_base does not always point to the first base class, but rather to the first
- // that has added any python fields or slots to its object layout.
- // See https://mail.python.org/pipermail/python-list/2009-January/520733.html
- if (type->tp_bases) {
- for (int i = 0, size = PyTuple_GET_SIZE(type->tp_bases); i < size; ++i) {
- auto baseType = reinterpret_cast<PyTypeObject *>(PyTuple_GET_ITEM(type->tp_bases, i));
- const QMetaType derived = QVariant_resolveMetaType(baseType);
- if (derived.isValid())
- return derived;
- }
- } else if (type->tp_base) {
- return QVariant_resolveMetaType(type->tp_base);
- }
- }
- return {};
-}
-static QVariant QVariant_convertToValueList(PyObject *list)
-{
- if (PySequence_Size(list) < 0) {
- // clear the error if < 0 which means no length at all
- PyErr_Clear();
- return QVariant();
- }
-
- Shiboken::AutoDecRef element(PySequence_GetItem(list, 0));
-
- const QMetaType metaType = QVariant_resolveMetaType(element.cast<PyTypeObject *>());
- if (metaType.isValid()) {
- QByteArray listTypeName("QList<");
- listTypeName += metaType.name();
- listTypeName += '>';
- QMetaType metaType = QMetaType::fromName(listTypeName);
- if (metaType.isValid()) {
- Shiboken::Conversions::SpecificConverter converter(listTypeName);
- if (converter) {
- QVariant var(metaType);
- converter.toCpp(list, &var);
- return var;
- }
- qWarning() << "Type converter for :" << listTypeName << "not registered.";
- }
- }
- return QVariant();
-}
-static bool QVariant_isStringList(PyObject *list)
-{
- if (!PySequence_Check(list)) {
- // If it is not a list or a derived list class
- // we assume that will not be a String list neither.
- return false;
- }
-
- if (PySequence_Size(list) < 0) {
- // clear the error if < 0 which means no length at all
- PyErr_Clear();
- return false;
- }
-
- Shiboken::AutoDecRef fast(PySequence_Fast(list, "Failed to convert QVariantList"));
- const Py_ssize_t size = PySequence_Fast_GET_SIZE(fast.object());
- for (Py_ssize_t i = 0; i < size; ++i) {
- PyObject *item = PySequence_Fast_GET_ITEM(fast.object(), i);
- if (!%CHECKTYPE[QString](item))
- return false;
- }
- return true;
-}
static QVariant QVariant_convertToVariantMap(PyObject *map)
{
Py_ssize_t pos = 0;
Shiboken::AutoDecRef keys(PyDict_Keys(map));
if (!QVariant_isStringList(keys))
- return QVariant();
+ return {};
PyObject *key;
PyObject *value;
QMap<QString,QVariant> ret;
@@ -261,7 +256,7 @@ static QVariant QVariant_convertToVariantList(PyObject *list)
if (PySequence_Size(list) < 0) {
// clear the error if < 0 which means no length at all
PyErr_Clear();
- return QVariant();
+ return {};
}
QList<QVariant> lst;
@@ -274,6 +269,30 @@ static QVariant QVariant_convertToVariantList(PyObject *list)
}
return QVariant(lst);
}
+
+using SpecificConverter = Shiboken::Conversions::SpecificConverter;
+
+static std::optional<SpecificConverter> converterForQtType(const char *typeNameC)
+{
+ // Fix typedef "QGenericMatrix<3,3,float>" -> QMatrix3x3". The reverse
+ // conversion happens automatically in QMetaType::fromName() in
+ // QVariant_resolveMetaType().
+ QByteArrayView typeNameV(typeNameC);
+ if (typeNameV.startsWith("QGenericMatrix<") && typeNameV.endsWith(",float>")) {
+ QByteArray typeName = typeNameV.toByteArray();
+ typeName.remove(1, 7);
+ typeName.remove(7, 1); // '<'
+ typeName.chop(7);
+ typeName.replace(',', 'x');
+ SpecificConverter matrixConverter(typeName.constData());
+ if (matrixConverter)
+ return matrixConverter;
+ }
+ SpecificConverter converter(typeNameC);
+ if (converter)
+ return converter;
+ return std::nullopt;
+}
// @snippet qvariant-conversion
// @snippet qt-qabs
@@ -281,30 +300,6 @@ double _abs = qAbs(%1);
%PYARG_0 = %CONVERTTOPYTHON[double](_abs);
// @snippet qt-qabs
-// @snippet qt-postroutine
-namespace PySide {
-static QStack<PyObject *> globalPostRoutineFunctions;
-void globalPostRoutineCallback()
-{
- Shiboken::GilState state;
- for (auto *callback : globalPostRoutineFunctions) {
- Shiboken::AutoDecRef result(PyObject_CallObject(callback, nullptr));
- Py_DECREF(callback);
- }
- globalPostRoutineFunctions.clear();
-}
-void addPostRoutine(PyObject *callback)
-{
- if (PyCallable_Check(callback)) {
- globalPostRoutineFunctions << callback;
- Py_INCREF(callback);
- } else {
- PyErr_SetString(PyExc_TypeError, "qAddPostRoutine: The argument must be a callable object.");
- }
-}
-} // namespace
-// @snippet qt-postroutine
-
// @snippet qt-addpostroutine
PySide::addPostRoutine(%1);
// @snippet qt-addpostroutine
@@ -313,6 +308,18 @@ PySide::addPostRoutine(%1);
qAddPostRoutine(PySide::globalPostRoutineCallback);
// @snippet qt-qaddpostroutine
+// @snippet qcompress-buffer
+auto *ptr = reinterpret_cast<uchar*>(Shiboken::Buffer::getPointer(%PYARG_1));
+QByteArray compressed = %FUNCTION_NAME(ptr, %2, %3);
+%PYARG_0 = %CONVERTTOPYTHON[QByteArray](compressed);
+// @snippet qcompress-buffer
+
+// @snippet quncompress-buffer
+auto *ptr = reinterpret_cast<uchar*>(Shiboken::Buffer::getPointer(%PYARG_1));
+QByteArray uncompressed = %FUNCTION_NAME(ptr, %2);
+%PYARG_0 = %CONVERTTOPYTHON[QByteArray](uncompressed);
+// @snippet quncompress-buffer
+
// @snippet qt-version
QList<QByteArray> version = QByteArray(qVersion()).split('.');
PyObject *pyQtVersion = PyTuple_New(3);
@@ -323,265 +330,48 @@ PyModule_AddStringConstant(module, "__version__", qVersion());
// @snippet qt-version
// @snippet qobject-connect
-static bool isMethodDecorator(PyObject *method, bool is_pymethod, PyObject *self)
-{
- Shiboken::AutoDecRef methodName(PyObject_GetAttr(method, Shiboken::PyMagicName::name()));
- if (!PyObject_HasAttr(self, methodName))
- return true;
- Shiboken::AutoDecRef otherMethod(PyObject_GetAttr(self, methodName));
-
- PyObject *function1, *function2;
-
- // PYSIDE-1523: Each could be a compiled method or a normal method here, for the
- // compiled ones we can use the attributes.
- if (PyMethod_Check(otherMethod.object())) {
- function1 = PyMethod_GET_FUNCTION(otherMethod.object());
- } else {
- function1 = PyObject_GetAttr(otherMethod.object(), Shiboken::PyName::im_func());
- Py_DECREF(function1);
- // Not retaining a reference inline with what PyMethod_GET_FUNCTION does.
- }
-
- if (is_pymethod) {
- function2 = PyMethod_GET_FUNCTION(method);
- } else {
- function2 = PyObject_GetAttr(method, Shiboken::PyName::im_func());
- Py_DECREF(function2);
- // Not retaining a reference inline with what PyMethod_GET_FUNCTION does.
- }
-
- return function1 != function2;
-}
-
-static bool getReceiver(QObject *source,
- const char *signal,
- PyObject *callback,
- QObject **receiver,
- PyObject **self,
- QByteArray *callbackSig)
-{
- bool forceGlobalReceiver = false;
- if (PyMethod_Check(callback)) {
- *self = PyMethod_GET_SELF(callback);
- if (%CHECKTYPE[QObject *](*self))
- *receiver = %CONVERTTOCPP[QObject *](*self);
- forceGlobalReceiver = isMethodDecorator(callback, true, *self);
- } else if (PyCFunction_Check(callback)) {
- *self = PyCFunction_GET_SELF(callback);
- if (*self && %CHECKTYPE[QObject *](*self))
- *receiver = %CONVERTTOCPP[QObject *](*self);
- } else if (PyObject_HasAttr(callback, Shiboken::PyName::im_func())
- && PyObject_HasAttr(callback, Shiboken::PyName::im_self())) {
- *self = PyObject_GetAttr(callback, Shiboken::PyName::im_self());
- Py_DECREF(*self);
-
- if (%CHECKTYPE[QObject *](*self))
- *receiver = %CONVERTTOCPP[QObject *](*self);
- forceGlobalReceiver = isMethodDecorator(callback, false, *self);
- } else if (PyCallable_Check(callback)) {
- // Ok, just a callable object
- *receiver = nullptr;
- *self = nullptr;
- }
-
- bool usingGlobalReceiver = !*receiver || forceGlobalReceiver;
-
- // Check if this callback is a overwrite of a non-virtual Qt slot.
- if (!usingGlobalReceiver && receiver && self) {
- *callbackSig = PySide::Signal::getCallbackSignature(signal, *receiver, callback, usingGlobalReceiver).toLatin1();
- const QMetaObject *metaObject = (*receiver)->metaObject();
- int slotIndex = metaObject->indexOfSlot(callbackSig->constData());
- if (slotIndex != -1 && slotIndex < metaObject->methodOffset() && PyMethod_Check(callback))
- usingGlobalReceiver = true;
- }
-
- const auto receiverThread = *receiver ? (*receiver)->thread() : nullptr;
-
- if (usingGlobalReceiver) {
- PySide::SignalManager &signalManager = PySide::SignalManager::instance();
- *receiver = signalManager.globalReceiver(source, callback);
- // PYSIDE-1354: Move the global receiver to the original receivers's thread
- // so that autoconnections work correctly.
- if (receiverThread && receiverThread != (*receiver)->thread())
- (*receiver)->moveToThread(receiverThread);
- *callbackSig = PySide::Signal::getCallbackSignature(signal, *receiver, callback, usingGlobalReceiver).toLatin1();
- }
-
- return usingGlobalReceiver;
-}
-
-static QMetaObject::Connection qobjectConnect(QObject *source, const char *signal,
- QObject *receiver, const char *slot,
- Qt::ConnectionType type)
-{
- if (!signal || !slot)
- return {};
-
- if (!PySide::Signal::checkQtSignal(signal))
- return {};
- signal++;
-
- if (!PySide::SignalManager::registerMetaMethod(source, signal, QMetaMethod::Signal))
- return {};
-
- bool isSignal = PySide::Signal::isQtSignal(slot);
- slot++;
- PySide::SignalManager::registerMetaMethod(receiver, slot, isSignal ? QMetaMethod::Signal : QMetaMethod::Slot);
- return QObject::connect(source, signal - 1, receiver, slot - 1, type);
-}
-
-static QMetaObject::Connection qobjectConnect(QObject *source, QMetaMethod signal,
- QObject *receiver, QMetaMethod slot,
- Qt::ConnectionType type)
-{
- return qobjectConnect(source, signal.methodSignature(), receiver, slot.methodSignature(), type);
-}
-
-static QMetaObject::Connection qobjectConnectCallback(QObject *source, const char *signal,
- PyObject *callback, Qt::ConnectionType type)
-{
- if (!signal || !PySide::Signal::checkQtSignal(signal))
- return {};
- signal++;
-
- int signalIndex = PySide::SignalManager::registerMetaMethodGetIndex(source, signal, QMetaMethod::Signal);
- if (signalIndex == -1)
- return {};
-
- PySide::SignalManager &signalManager = PySide::SignalManager::instance();
-
- // Extract receiver from callback
- QObject *receiver = nullptr;
- PyObject *self = nullptr;
- QByteArray callbackSig;
- bool usingGlobalReceiver = getReceiver(source, signal, callback, &receiver, &self, &callbackSig);
- if (receiver == nullptr && self == nullptr)
- return {};
-
- const QMetaObject *metaObject = receiver->metaObject();
- const char *slot = callbackSig.constData();
- int slotIndex = metaObject->indexOfSlot(slot);
- QMetaMethod signalMethod = metaObject->method(signalIndex);
-
- if (slotIndex == -1) {
- if (!usingGlobalReceiver && self && !Shiboken::Object::hasCppWrapper(reinterpret_cast<SbkObject *>(self))) {
- qWarning("You can't add dynamic slots on an object originated from C++.");
- if (usingGlobalReceiver)
- signalManager.releaseGlobalReceiver(source, receiver);
-
- return {};
- }
-
- if (usingGlobalReceiver)
- slotIndex = signalManager.globalReceiverSlotIndex(receiver, slot);
- else
- slotIndex = PySide::SignalManager::registerMetaMethodGetIndex(receiver, slot, QMetaMethod::Slot);
-
- if (slotIndex == -1) {
- if (usingGlobalReceiver)
- signalManager.releaseGlobalReceiver(source, receiver);
-
- return {};
- }
- }
- auto connection = QMetaObject::connect(source, signalIndex, receiver, slotIndex, type);
- if (connection) {
- if (usingGlobalReceiver)
- signalManager.notifyGlobalReceiver(receiver);
- #ifndef AVOID_PROTECTED_HACK
- source->connectNotify(signalMethod); //Qt5: QMetaMethod instead of char *
- #else
- // Need to cast to QObjectWrapper * and call the public version of
- // connectNotify when avoiding the protected hack.
- reinterpret_cast<QObjectWrapper *>(source)->connectNotify(signalMethod); //Qt5: QMetaMethod instead of char *
- #endif
-
- return connection;
- }
-
- if (usingGlobalReceiver)
- signalManager.releaseGlobalReceiver(source, receiver);
-
- return {};
-}
-
-
-static bool qobjectDisconnectCallback(QObject *source, const char *signal, PyObject *callback)
-{
- if (!PySide::Signal::checkQtSignal(signal))
- return false;
-
- PySide::SignalManager &signalManager = PySide::SignalManager::instance();
-
- // Extract receiver from callback
- QObject *receiver = nullptr;
- PyObject *self = nullptr;
- QByteArray callbackSig;
- QMetaMethod slotMethod;
- bool usingGlobalReceiver = getReceiver(nullptr, signal, callback, &receiver, &self, &callbackSig);
- if (receiver == nullptr && self == nullptr)
- return false;
-
- const QMetaObject *metaObject = receiver->metaObject();
- int signalIndex = source->metaObject()->indexOfSignal(++signal);
- int slotIndex = -1;
-
- slotIndex = metaObject->indexOfSlot(callbackSig);
- slotMethod = metaObject->method(slotIndex);
-
- bool disconnected;
- disconnected = QMetaObject::disconnectOne(source, signalIndex, receiver, slotIndex);
-
- if (disconnected) {
- if (usingGlobalReceiver)
- signalManager.releaseGlobalReceiver(source, receiver);
-
- #ifndef AVOID_PROTECTED_HACK
- source->disconnectNotify(slotMethod); //Qt5: QMetaMethod instead of char *
- #else
- // Need to cast to QObjectWrapper * and call the public version of
- // connectNotify when avoiding the protected hack.
- reinterpret_cast<QObjectWrapper *>(source)->disconnectNotify(slotMethod); //Qt5: QMetaMethod instead of char *
- #endif
- return true;
- }
- return false;
-}
+#include <qobjectconnect.h>
// @snippet qobject-connect
// @snippet qobject-connect-1
// %FUNCTION_NAME() - disable generation of function call.
-%RETURN_TYPE %0 = qobjectConnect(%1, %2, %CPPSELF, %3, %4);
+%RETURN_TYPE %0 = PySide::qobjectConnect(%1, %2, %CPPSELF, %3, %4);
%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
// @snippet qobject-connect-1
// @snippet qobject-connect-2
// %FUNCTION_NAME() - disable generation of function call.
-%RETURN_TYPE %0 = qobjectConnect(%1, %2, %3, %4, %5);
+%RETURN_TYPE %0 = PySide::qobjectConnect(%1, %2, %3, %4, %5);
%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
// @snippet qobject-connect-2
// @snippet qobject-connect-3
// %FUNCTION_NAME() - disable generation of function call.
-%RETURN_TYPE %0 = qobjectConnect(%1, %2, %3, %4, %5);
+%RETURN_TYPE %0 = PySide::qobjectConnect(%1, %2, %3, %4, %5);
%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
// @snippet qobject-connect-3
// @snippet qobject-connect-4
// %FUNCTION_NAME() - disable generation of function call.
-%RETURN_TYPE %0 = qobjectConnectCallback(%1, %2, %PYARG_3, %4);
+%RETURN_TYPE %0 = PySide::qobjectConnectCallback(%1, %2, %PYARG_3, %4);
%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
// @snippet qobject-connect-4
+// @snippet qobject-connect-4-context
+// %FUNCTION_NAME() - disable generation of function call.
+%RETURN_TYPE %0 = PySide::qobjectConnectCallback(%1, %2, %3, %PYARG_4, %5);
+%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
+// @snippet qobject-connect-4-context
+
// @snippet qobject-connect-5
// %FUNCTION_NAME() - disable generation of function call.
-%RETURN_TYPE %0 = qobjectConnectCallback(%CPPSELF, %1, %PYARG_2, %3);
+%RETURN_TYPE %0 = PySide::qobjectConnectCallback(%CPPSELF, %1, %PYARG_2, %3);
%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
// @snippet qobject-connect-5
// @snippet qobject-connect-6
// %FUNCTION_NAME() - disable generation of function call.
-%RETURN_TYPE %0 = qobjectConnect(%CPPSELF, %1, %2, %3, %4);
+%RETURN_TYPE %0 = PySide::qobjectConnect(%CPPSELF, %1, %2, %3, %4);
%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
// @snippet qobject-connect-6
@@ -592,13 +382,13 @@ static bool qobjectDisconnectCallback(QObject *source, const char *signal, PyObj
// @snippet qobject-disconnect-1
// %FUNCTION_NAME() - disable generation of function call.
-%RETURN_TYPE %0 = qobjectDisconnectCallback(%CPPSELF, %1, %2);
+%RETURN_TYPE %0 = PySide::qobjectDisconnectCallback(%CPPSELF, %1, %2);
%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
// @snippet qobject-disconnect-1
// @snippet qobject-disconnect-2
// %FUNCTION_NAME() - disable generation of function call.
-%RETURN_TYPE %0 = qobjectDisconnectCallback(%1, %2, %3);
+%RETURN_TYPE %0 = PySide::qobjectDisconnectCallback(%1, %2, %3);
%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
// @snippet qobject-disconnect-2
@@ -629,10 +419,10 @@ PySide::Feature::init();
// @snippet qt-init-feature
// @snippet qt-pysideinit
-Shiboken::Conversions::registerConverterName(SbkPySide6_QtCoreTypeConverters[SBK_QSTRING_IDX], "unicode");
-Shiboken::Conversions::registerConverterName(SbkPySide6_QtCoreTypeConverters[SBK_QSTRING_IDX], "str");
-Shiboken::Conversions::registerConverterName(SbkPySide6_QtCoreTypeConverters[SBK_QTCORE_QLIST_QVARIANT_IDX], "QVariantList");
-Shiboken::Conversions::registerConverterName(SbkPySide6_QtCoreTypeConverters[SBK_QTCORE_QMAP_QSTRING_QVARIANT_IDX], "QVariantMap");
+Shiboken::Conversions::registerConverterName(SbkPySide6_QtCoreTypeConverters[SBK_QString_IDX], "unicode");
+Shiboken::Conversions::registerConverterName(SbkPySide6_QtCoreTypeConverters[SBK_QString_IDX], "str");
+Shiboken::Conversions::registerConverterName(SbkPySide6_QtCoreTypeConverters[SBK_QtCore_QList_QVariant_IDX], "QVariantList");
+Shiboken::Conversions::registerConverterName(SbkPySide6_QtCoreTypeConverters[SBK_QtCore_QMap_QString_QVariant_IDX], "QVariantMap");
PySide::registerInternalQtConf();
PySide::init(module);
@@ -682,8 +472,7 @@ if (%PYARG_0 == Py_None)
namespace PySide {
template<> inline Py_ssize_t hash(const QLine &l)
{
- const int v[4] = {l.x1(), l.y1(), l.x2(), l.y2()};
- return qHashRange(v, v + 4);
+ return qHashMulti(0, l.x1(), l.y1(), l.x2(), l.y2());
}
};
// @snippet qline-hash
@@ -741,6 +530,12 @@ QTime time(%4, %5, %6);
%0 = new %TYPE(date, time);
// @snippet qdatetime-2
+// @snippet qdatetime-3
+QDate date(%1, %2, %3);
+QTime time(%4, %5, %6, %7);
+%0 = new %TYPE(date, time, %8);
+// @snippet qdatetime-3
+
// @snippet qdatetime-topython
QDate date = %CPPSELF.date();
QTime time = %CPPSELF.time();
@@ -749,31 +544,6 @@ if (!PyDateTimeAPI)
%PYARG_0 = PyDateTime_FromDateAndTime(date.year(), date.month(), date.day(), time.hour(), time.minute(), time.second(), time.msec()*1000);
// @snippet qdatetime-topython
-// @snippet qpoint
-namespace PySide {
- template<> inline Py_ssize_t hash(const QPoint &v) {
- return qHash(qMakePair(v.x(), v.y()));
- }
-};
-// @snippet qpoint
-
-// @snippet qrect
-namespace PySide {
- template<> inline Py_ssize_t hash(const QRect &r) {
- const int v[4] = {r.x(), r.y(), r.width(), r.height()};
- return qHashRange(v, v + 4);
- }
-};
-// @snippet qrect
-
-// @snippet qsize
-namespace PySide {
- template<> inline Py_ssize_t hash(const QSize &v) {
- return qHash(qMakePair(v.width(), v.height()));
- }
-};
-// @snippet qsize
-
// @snippet qtime-topython
if (!PyDateTimeAPI)
PyDateTime_IMPORT;
@@ -801,6 +571,11 @@ Py_XDECREF(result);
return !result ? -1 : 0;
// @snippet qbitarray-setitem
+// @snippet default-enter
+Py_INCREF(%PYSELF);
+pyResult = %PYSELF;
+// @snippet default-enter
+
// @snippet qsignalblocker-unblock
%CPPSELF.unblock();
// @snippet qsignalblocker-unblock
@@ -823,174 +598,87 @@ qRegisterMetaType<QList<int> >("QList<int>");
%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
// @snippet qobject-metaobject
-// @snippet qobject-findchild-1
-static bool _findChildTypeMatch(const QObject *child, PyTypeObject *desiredType)
-{
- auto *pyChildType = PySide::getTypeForQObject(child);
- return pyChildType != nullptr && PyType_IsSubtype(pyChildType, desiredType);
-}
-
-static inline bool _findChildrenComparator(const QObject *child,
- const QRegularExpression &name)
-{
- return name.match(child->objectName()).hasMatch();
-}
-
-static inline bool _findChildrenComparator(const QObject *child,
- const QString &name)
-{
- return name.isNull() || name == child->objectName();
-}
-
-static QObject *_findChildHelper(const QObject *parent, const QString &name,
- PyTypeObject *desiredType,
- Qt::FindChildOptions options)
-{
- for (auto *child : parent->children()) {
- if (_findChildrenComparator(child, name)
- && _findChildTypeMatch(child, desiredType)) {
- return child;
- }
- }
-
- if (options.testFlag(Qt::FindChildrenRecursively)) {
- for (auto *child : parent->children()) {
- QObject *obj = _findChildHelper(child, name, desiredType, options);
- if (obj)
- return obj;
- }
- }
- return nullptr;
-}
-
-template<typename T> // QString/QRegularExpression
-static void _findChildrenHelper(const QObject *parent, const T& name, PyTypeObject *desiredType,
- Qt::FindChildOptions options,
- PyObject *result)
-{
- for (const auto *child : parent->children()) {
- if (_findChildrenComparator(child, name) &&
- _findChildTypeMatch(child, desiredType)) {
- Shiboken::AutoDecRef pyChild(%CONVERTTOPYTHON[QObject *](child));
- PyList_Append(result, pyChild.object());
- }
- if (options.testFlag(Qt::FindChildrenRecursively))
- _findChildrenHelper(child, name, desiredType, options, result);
- }
-}
-// @snippet qobject-findchild-1
-
// @snippet qobject-findchild-2
-QObject *child = _findChildHelper(%CPPSELF, %2, reinterpret_cast<PyTypeObject *>(%PYARG_1), %3);
+QObject *child = qObjectFindChild(%CPPSELF, %2, reinterpret_cast<PyTypeObject *>(%PYARG_1), %3);
%PYARG_0 = %CONVERTTOPYTHON[QObject *](child);
// @snippet qobject-findchild-2
// @snippet qobject-findchildren
%PYARG_0 = PyList_New(0);
-_findChildrenHelper(%CPPSELF, %2, reinterpret_cast<PyTypeObject *>(%PYARG_1), %3, %PYARG_0);
+qObjectFindChildren(%CPPSELF, %2, reinterpret_cast<PyTypeObject *>(%PYARG_1), %3,
+ [%PYARG_0](QObject *child) {
+ Shiboken::AutoDecRef pyChild(%CONVERTTOPYTHON[QObject *](child));
+ PyList_Append(%PYARG_0, pyChild.object());
+ });
// @snippet qobject-findchildren
-//////////////////////////////////////////////////////////////////////////////
-// PYSIDE-131: Use the class name as context where the calling function is
-// living. Derived Python classes have the wrong context.
-//
-// The original patch uses Python introspection to look up the current
-// function (from the frame stack) in the class __dict__ along the mro.
-//
-// The problem is that looking into the frame stack works for Python
-// functions, only. For including builtin function callers, the following
-// approach turned out to be much simpler:
-//
-// Walk the __mro__
-// - translate the string
-// - if the translated string is changed:
-// - return the translation.
-
// @snippet qobject-tr
-PyTypeObject *type = reinterpret_cast<PyTypeObject *>(%PYSELF);
-PyObject *mro = type->tp_mro;
-auto len = PyTuple_GET_SIZE(mro);
-QString result = QString::fromUtf8(%1);
-QString oldResult = result;
-static auto *sbkObjectType = reinterpret_cast<PyTypeObject *>(SbkObject_TypeF());
-for (Py_ssize_t idx = 0; idx < len - 1; ++idx) {
- // Skip the last class which is `object`.
- auto *type = reinterpret_cast<PyTypeObject *>(PyTuple_GET_ITEM(mro, idx));
- if (type == sbkObjectType)
- continue;
- const char *context = type->tp_name;
- const char *dotpos = strrchr(context, '.');
- if (dotpos != nullptr)
- context = dotpos + 1;
- result = QCoreApplication::translate(context, %1, %2, %3);
- if (result != oldResult)
- break;
-}
+const QString result = qObjectTr(reinterpret_cast<PyTypeObject *>(%PYSELF), %1, %2, %3);
%PYARG_0 = %CONVERTTOPYTHON[QString](result);
// @snippet qobject-tr
-// @snippet qobject-receivers
-// Avoid return +1 because SignalManager connect to "destroyed()" signal to control object timelife
-int ret = %CPPSELF.%FUNCTION_NAME(%1);
-if (ret > 0 && ((strcmp(%1, SIGNAL(destroyed())) == 0) || (strcmp(%1, SIGNAL(destroyed(QObject*))) == 0)))
- ret -= PySide::SignalManager::instance().countConnectionsWith(%CPPSELF);
-
-%PYARG_0 = %CONVERTTOPYTHON[int](ret);
-// @snippet qobject-receivers
+// @snippet qobject-sender
+// Retrieve the sender from a dynamic property set by GlobalReceiverV2 in case of a
+// non-C++ slot (Python callback).
+auto *ret = %CPPSELF.%FUNCTION_NAME();
+if (ret == nullptr) {
+ auto senderV = %CPPSELF.property("_q_pyside_sender");
+ if (senderV.typeId() == QMetaType::QObjectStar)
+ ret = senderV.value<QObject *>();
+}
+%PYARG_0 = %CONVERTTOPYTHON[QObject*](ret);
+// @snippet qobject-sender
// @snippet qbytearray-mgetitem
if (PyIndex_Check(_key)) {
- Py_ssize_t _i;
- _i = PyNumber_AsSsize_t(_key, PyExc_IndexError);
+ const Py_ssize_t _i = PyNumber_AsSsize_t(_key, PyExc_IndexError);
if (_i < 0 || _i >= %CPPSELF.size()) {
PyErr_SetString(PyExc_IndexError, "index out of bounds");
- return 0;
- } else {
- char res[2];
- res[0] = %CPPSELF.at(_i);
- res[1] = 0;
- return PyBytes_FromStringAndSize(res, 1);
- }
-} else if (PySlice_Check(_key)) {
- Py_ssize_t start, stop, step, slicelength, cur;
- if (PySlice_GetIndicesEx(_key, %CPPSELF.count(), &start, &stop, &step, &slicelength) < 0) {
return nullptr;
}
+ char res[2] = {%CPPSELF.at(_i), '\0'};
+ return PyBytes_FromStringAndSize(res, 1);
+}
- QByteArray ba;
- if (slicelength <= 0) {
- return %CONVERTTOPYTHON[QByteArray](ba);
- } else if (step == 1) {
- Py_ssize_t max = %CPPSELF.count();
- start = qBound(Py_ssize_t(0), start, max);
- stop = qBound(Py_ssize_t(0), stop, max);
- QByteArray ba;
- if (start < stop)
- ba = %CPPSELF.mid(start, stop - start);
- return %CONVERTTOPYTHON[QByteArray](ba);
- } else {
- QByteArray ba;
- for (cur = start; slicelength > 0; cur += static_cast<size_t>(step), slicelength--) {
- ba.append(%CPPSELF.at(cur));
- }
- return %CONVERTTOPYTHON[QByteArray](ba);
- }
-} else {
+if (PySlice_Check(_key) == 0) {
PyErr_Format(PyExc_TypeError,
"list indices must be integers or slices, not %.200s",
Py_TYPE(_key)->tp_name);
return nullptr;
}
+
+Py_ssize_t start, stop, step, slicelength;
+if (PySlice_GetIndicesEx(_key, %CPPSELF.size(), &start, &stop, &step, &slicelength) < 0)
+ return nullptr;
+
+QByteArray ba;
+if (slicelength <= 0)
+ return %CONVERTTOPYTHON[QByteArray](ba);
+
+if (step == 1) {
+ Py_ssize_t max = %CPPSELF.size();
+ start = qBound(Py_ssize_t(0), start, max);
+ stop = qBound(Py_ssize_t(0), stop, max);
+ if (start < stop)
+ ba = %CPPSELF.mid(start, stop - start);
+ return %CONVERTTOPYTHON[QByteArray](ba);
+}
+
+for (Py_ssize_t cur = start; slicelength > 0; cur += step, --slicelength)
+ ba.append(%CPPSELF.at(cur));
+
+return %CONVERTTOPYTHON[QByteArray](ba);
// @snippet qbytearray-mgetitem
// @snippet qbytearray-msetitem
+// PYSIDE-2404: Usage of the `get()` function not necessary, the type exists.
if (PyIndex_Check(_key)) {
Py_ssize_t _i = PyNumber_AsSsize_t(_key, PyExc_IndexError);
if (_i == -1 && PyErr_Occurred())
return -1;
if (_i < 0)
- _i += %CPPSELF.count();
+ _i += %CPPSELF.size();
if (_i < 0 || _i >= %CPPSELF.size()) {
PyErr_SetString(PyExc_IndexError, "QByteArray index out of range");
@@ -1008,7 +696,8 @@ if (PyIndex_Check(_key)) {
PyErr_SetString(PyExc_ValueError, "bytearray must be of size 1");
return -1;
}
- } else if (reinterpret_cast<PyTypeObject *>(Py_TYPE(_value)) == reinterpret_cast<PyTypeObject *>(SbkPySide6_QtCoreTypes[SBK_QBYTEARRAY_IDX])) {
+ } else if (Py_TYPE(_value) == reinterpret_cast<PyTypeObject *>(
+ SbkPySide6_QtCoreTypeStructs[SBK_QByteArray_IDX].type)) {
if (PyObject_Length(_value) != 1) {
PyErr_SetString(PyExc_ValueError, "QByteArray must be of size 1");
return -1;
@@ -1024,63 +713,64 @@ if (PyIndex_Check(_key)) {
PyObject *result = Sbk_QByteArrayFunc_insert(self, args);
Py_DECREF(args);
Py_XDECREF(result);
- return !result ? -1 : 0;
-} else if (PySlice_Check(_key)) {
- Py_ssize_t start, stop, step, slicelength, value_length;
- if (PySlice_GetIndicesEx(_key, %CPPSELF.count(), &start, &stop, &step, &slicelength) < 0) {
- return -1;
- }
- // The parameter candidates are: bytes/str, bytearray, QByteArray itself.
- // Not support iterable which contains ints between 0~255
-
- // case 1: value is nullpre, means delete the items within the range
- // case 2: step is 1, means shrink or expanse
- // case 3: step is not 1, then the number of slots have to equal the number of items in _value
- QByteArray ba;
- if (_value == nullptr || _value == Py_None) {
- ba = QByteArray();
- value_length = 0;
- } else if (!(PyBytes_Check(_value) || PyByteArray_Check(_value) || reinterpret_cast<PyTypeObject *>(Py_TYPE(_value)) == reinterpret_cast<PyTypeObject *>(SbkPySide6_QtCoreTypes[SBK_QBYTEARRAY_IDX]))) {
- PyErr_Format(PyExc_TypeError, "bytes, bytearray or QByteArray is required, not %.200s", Py_TYPE(_value)->tp_name);
- return -1;
- } else {
- value_length = PyObject_Length(_value);
- }
+ return result != nullptr ? 0: -1;
+}
- if (step != 1 && value_length != slicelength) {
- PyErr_Format(PyExc_ValueError, "attempt to assign %s of size %d to extended slice of size %d",
- Py_TYPE(_value)->tp_name, int(value_length), int(slicelength));
- return -1;
+if (PySlice_Check(_key) == 0) {
+ PyErr_Format(PyExc_TypeError, "QBytearray indices must be integers or slices, not %.200s",
+ Py_TYPE(_key)->tp_name);
+ return -1;
+}
+
+Py_ssize_t start, stop, step, slicelength;
+if (PySlice_GetIndicesEx(_key, %CPPSELF.size(), &start, &stop, &step, &slicelength) < 0)
+ return -1;
+
+// The parameter candidates are: bytes/str, bytearray, QByteArray itself.
+// Not supported are iterables containing ints between 0~255
+// case 1: value is nullpre, means delete the items within the range
+// case 2: step is 1, means shrink or expand
+// case 3: step is not 1, then the number of slots have to equal the number of items in _value
+Py_ssize_t value_length = 0;
+if (_value != nullptr && _value != Py_None) {
+ if (!(PyBytes_Check(_value) || PyByteArray_Check(_value)
+ || Py_TYPE(_value) == SbkPySide6_QtCoreTypeStructs[SBK_QByteArray_IDX].type)) {
+ PyErr_Format(PyExc_TypeError, "bytes, bytearray or QByteArray is required, not %.200s",
+ Py_TYPE(_value)->tp_name);
+ return -1;
}
+ value_length = PyObject_Length(_value);
+}
+
+if (step != 1 && value_length != slicelength) {
+ PyErr_Format(PyExc_ValueError, "attempt to assign %s of size %d to extended slice of size %d",
+ Py_TYPE(_value)->tp_name, int(value_length), int(slicelength));
+ return -1;
+}
- if (step != 1) {
- int i = start;
- for (int j = 0; j < slicelength; j++) {
- PyObject *item = PyObject_GetItem(_value, PyLong_FromLong(j));
- QByteArray temp;
- if (PyLong_Check(item)) {
- int overflow;
- long ival = PyLong_AsLongAndOverflow(item, &overflow);
- // Not suppose to bigger than 255 because only bytes, bytearray, QByteArray were accept
- temp = QByteArray(reinterpret_cast<const char *>(&ival));
- } else {
- temp = %CONVERTTOCPP[QByteArray](item);
- }
-
- %CPPSELF.replace(i, 1, temp);
- i += step;
+if (step != 1) {
+ Py_ssize_t i = start;
+ for (Py_ssize_t j = 0; j < slicelength; ++j) {
+ PyObject *item = PyObject_GetItem(_value, PyLong_FromSsize_t(j));
+ QByteArray temp;
+ if (PyLong_Check(item)) {
+ int overflow;
+ const long ival = PyLong_AsLongAndOverflow(item, &overflow);
+ // Not supposed to be bigger than 255 because only bytes,
+ // bytearray, QByteArray were accepted
+ temp.append(char(ival));
+ } else {
+ temp = %CONVERTTOCPP[QByteArray](item);
}
- return 0;
- } else {
- ba = %CONVERTTOCPP[QByteArray](_value);
- %CPPSELF.replace(start, slicelength, ba);
- return 0;
+ %CPPSELF.replace(i, 1, temp);
+ i += step;
}
-} else {
- PyErr_Format(PyExc_TypeError, "QBytearray indices must be integers or slices, not %.200s",
- Py_TYPE(_key)->tp_name);
- return -1;
+ return 0;
}
+
+QByteArray ba = %CONVERTTOCPP[QByteArray](_value);
+%CPPSELF.replace(start, slicelength, ba);
+return 0;
// @snippet qbytearray-msetitem
// @snippet qbytearray-bufferprotocol
@@ -1095,16 +785,16 @@ static int SbkQByteArray_getbufferproc(PyObject *obj, Py_buffer *view, int flags
QByteArray * cppSelf = %CONVERTTOCPP[QByteArray *](obj);
//XXX /|\ omitting this space crashes shiboken!
- #ifdef Py_LIMITED_API
+#ifdef Py_LIMITED_API
view->obj = obj;
view->buf = reinterpret_cast<void *>(cppSelf->data());
view->len = cppSelf->size();
view->readonly = 0;
view->itemsize = 1;
- view->format = const_cast<char *>("c");
+ view->format = (flags & PyBUF_FORMAT) == PyBUF_FORMAT ? const_cast<char *>("B") : nullptr;
view->ndim = 1;
view->shape = (flags & PyBUF_ND) == PyBUF_ND ? &(view->len) : nullptr;
- view->strides = &view->itemsize;
+ view->strides = (flags & PyBUF_STRIDES) == PyBUF_STRIDES ? &(view->itemsize) : nullptr;
view->suboffsets = nullptr;
view->internal = nullptr;
@@ -1236,7 +926,7 @@ Py_DECREF(aux);
// @snippet qbytearray-str
// @snippet qbytearray-len
-return %CPPSELF.count();
+return %CPPSELF.size();
// @snippet qbytearray-len
// @snippet qbytearray-getitem
@@ -1270,6 +960,13 @@ uchar *ptr = reinterpret_cast<uchar *>(Shiboken::Buffer::getPointer(%PYARG_1));
%PYARG_0 = Shiboken::Buffer::newObject(%CPPSELF.%FUNCTION_NAME(%1, %2, %3), %2, Shiboken::Buffer::ReadWrite);
// @snippet qfiledevice-map
+// @snippet qiodevice-bufferedread
+Py_ssize_t bufferLen;
+auto *data = reinterpret_cast<char*>(Shiboken::Buffer::getPointer(%PYARG_1, &bufferLen));
+%RETURN_TYPE %0 = %CPPSELF.%FUNCTION_NAME(data, PyLong_AsLongLong(%PYARG_2));
+return PyLong_FromLong(%0);
+// @snippet qiodevice-bufferedread
+
// @snippet qiodevice-readdata
QByteArray ba(1 + qsizetype(%2), char(0));
%CPPSELF.%FUNCTION_NAME(ba.data(), qint64(%2));
@@ -1280,6 +977,11 @@ QByteArray ba(1 + qsizetype(%2), char(0));
%CPPSELF.%FUNCTION_NAME(Shiboken::String::toCString(%PYARG_1), Shiboken::String::len(%PYARG_1));
// @snippet qcryptographichash-adddata
+// @snippet qmetaobject-repr
+const QByteArray repr = PySide::MetaObjectBuilder::formatMetaObject(%CPPSELF).toUtf8();
+%PYARG_0 = PyUnicode_FromString(repr.constData());
+// @snippet qmetaobject-repr
+
// @snippet qsocketdescriptor
#ifdef WIN32
using DescriptorType = Qt::HANDLE;
@@ -1312,63 +1014,124 @@ auto *ptr = reinterpret_cast<uchar *>(Shiboken::Buffer::getPointer(%PYARG_1, &si
%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
// @snippet qtranslator-load
-// @snippet qtimer-singleshot-1
-// %FUNCTION_NAME() - disable generation of c++ function call
-(void) %2; // remove warning about unused variable
-Shiboken::AutoDecRef emptyTuple(PyTuple_New(0));
-auto *timerType = Shiboken::SbkType<QTimer>();
-auto *pyTimer = timerType->tp_new(Shiboken::SbkType<QTimer>(), emptyTuple, nullptr);
-timerType->tp_init(pyTimer, emptyTuple, nullptr);
-
-auto timer = %CONVERTTOCPP[QTimer *](pyTimer);
-//XXX /|\ omitting this space crashes shiboken!
-Shiboken::AutoDecRef result(
- PyObject_CallMethod(pyTimer, "connect", "OsOs",
- pyTimer,
- SIGNAL(timeout()),
- %PYARG_2,
- %3)
-);
-Shiboken::Object::releaseOwnership(reinterpret_cast<SbkObject *>(pyTimer));
-Py_XDECREF(pyTimer);
-timer->setSingleShot(true);
-timer->connect(timer, &QTimer::timeout, timer, &QObject::deleteLater);
-timer->start(%1);
-// @snippet qtimer-singleshot-1
-
-// @snippet qtimer-singleshot-2
-// %FUNCTION_NAME() - disable generation of c++ function call
+// @snippet qtimer-singleshot-functorclass
+struct QSingleShotTimerFunctor : public Shiboken::PyObjectHolder
+{
+public:
+ using Shiboken::PyObjectHolder::PyObjectHolder;
+
+ void operator()();
+};
+
+void QSingleShotTimerFunctor::operator()()
+{
+ Shiboken::GilState state;
+ Shiboken::AutoDecRef arglist(PyTuple_New(0));
+ Shiboken::AutoDecRef ret(PyObject_CallObject(object(), arglist));
+ release(); // single shot
+}
+// @snippet qtimer-singleshot-functorclass
+
+// @snippet qtimer-singleshot-direct-mapping
Shiboken::AutoDecRef emptyTuple(PyTuple_New(0));
-auto *timerType = Shiboken::SbkType<QTimer>();
-auto *pyTimer = timerType->tp_new(Shiboken::SbkType<QTimer>(), emptyTuple, nullptr);
-timerType->tp_init(pyTimer, emptyTuple, nullptr);
-QTimer * timer = %CONVERTTOCPP[QTimer *](pyTimer);
-timer->setSingleShot(true);
-
-if (PyObject_TypeCheck(%2, PySideSignalInstanceTypeF())) {
- PySideSignalInstance *signalInstance = reinterpret_cast<PySideSignalInstance *>(%2);
- Shiboken::AutoDecRef signalSignature(Shiboken::String::fromFormat("2%s", PySide::Signal::getSignature(signalInstance)));
- Shiboken::AutoDecRef result(
- PyObject_CallMethod(pyTimer, "connect", "OsOO",
- pyTimer,
- SIGNAL(timeout()),
- PySide::Signal::getObject(signalInstance),
- signalSignature.object())
- );
+%CPPSELF.%FUNCTION_NAME(%1, %2, %3);
+// @snippet qtimer-singleshot-direct-mapping
+
+// @snippet qtimer-singleshot-functor
+auto msec = %1;
+if (msec == 0) {
+ if (PyObject_TypeCheck(%2, PySideSignalInstance_TypeF())) {
+ auto *signal = %PYARG_2;
+ auto cppCallback = [signal]()
+ {
+ Shiboken::GilState state;
+ Shiboken::AutoDecRef ret(PyObject_CallMethod(signal, "emit", "()"));
+ Py_DECREF(signal);
+ };
+
+ Py_INCREF(signal);
+ %CPPSELF.%FUNCTION_NAME(msec, cppCallback);
+ } else {
+ %CPPSELF.%FUNCTION_NAME(msec, QSingleShotTimerFunctor(%PYARG_2));
+ }
+} else {
+ // %FUNCTION_NAME() - disable generation of c++ function call
+ Shiboken::AutoDecRef emptyTuple(PyTuple_New(0));
+ auto *timerType = Shiboken::SbkType<QTimer>();
+ auto newFunc = reinterpret_cast<newfunc>(PepType_GetSlot(timerType, Py_tp_new));
+ auto initFunc = reinterpret_cast<initproc>(PepType_GetSlot(timerType, Py_tp_init));
+ auto *pyTimer = newFunc(Shiboken::SbkType<QTimer>(), emptyTuple, nullptr);
+ initFunc(pyTimer, emptyTuple, nullptr);
+
+ QTimer * timer = %CONVERTTOCPP[QTimer *](pyTimer);
+ timer->setSingleShot(true);
+
+ if (PyObject_TypeCheck(%2, PySideSignalInstance_TypeF())) {
+ PySideSignalInstance *signalInstance = reinterpret_cast<PySideSignalInstance *>(%2);
+ Shiboken::AutoDecRef signalSignature(Shiboken::String::fromFormat("2%s", PySide::Signal::getSignature(signalInstance)));
+ Shiboken::AutoDecRef result(
+ PyObject_CallMethod(pyTimer, "connect", "OsOO",
+ pyTimer,
+ SIGNAL(timeout()),
+ PySide::Signal::getObject(signalInstance),
+ signalSignature.object())
+ );
+ } else {
+ Shiboken::AutoDecRef result(
+ PyObject_CallMethod(pyTimer, "connect", "OsO",
+ pyTimer,
+ SIGNAL(timeout()),
+ %PYARG_2)
+ );
+ }
+
+ timer->connect(timer, &QTimer::timeout, timer, &QObject::deleteLater, Qt::DirectConnection);
+ Shiboken::Object::releaseOwnership(reinterpret_cast<SbkObject *>(pyTimer));
+ Py_XDECREF(pyTimer);
+ timer->start(msec);
+}
+// @snippet qtimer-singleshot-functor
+
+// @snippet qtimer-singleshot-functor-context
+auto msec = %1;
+if (msec == 0) {
+ Shiboken::AutoDecRef emptyTuple(PyTuple_New(0));
+ auto *callable = %PYARG_3;
+ auto cppCallback = [callable]()
+ {
+ Shiboken::GilState state;
+ Shiboken::AutoDecRef arglist(PyTuple_New(0));
+ Shiboken::AutoDecRef ret(PyObject_CallObject(callable, arglist));
+ Py_DECREF(callable);
+ };
+
+ Py_INCREF(callable);
+ %CPPSELF.%FUNCTION_NAME(msec, %2, cppCallback);
} else {
+ Shiboken::AutoDecRef emptyTuple(PyTuple_New(0));
+ auto *timerType = Shiboken::SbkType<QTimer>();
+ auto newFunc = reinterpret_cast<newfunc>(PepType_GetSlot(timerType, Py_tp_new));
+ auto initFunc = reinterpret_cast<initproc>(PepType_GetSlot(timerType, Py_tp_init));
+ auto *pyTimer = newFunc(Shiboken::SbkType<QTimer>(), emptyTuple, nullptr);
+ initFunc(pyTimer, emptyTuple, nullptr);
+
+ QTimer * timer = %CONVERTTOCPP[QTimer *](pyTimer);
+ timer->setSingleShot(true);
+
Shiboken::AutoDecRef result(
- PyObject_CallMethod(pyTimer, "connect", "OsO",
+ PyObject_CallMethod(pyTimer, "connect", "OsOO",
pyTimer,
SIGNAL(timeout()),
- %PYARG_2)
+ %PYARG_2,
+ %PYARG_3)
);
-}
-timer->connect(timer, &QTimer::timeout, timer, &QObject::deleteLater, Qt::DirectConnection);
-Shiboken::Object::releaseOwnership(reinterpret_cast<SbkObject *>(pyTimer));
-Py_XDECREF(pyTimer);
-timer->start(%1);
-// @snippet qtimer-singleshot-2
+ timer->connect(timer, &QTimer::timeout, timer, &QObject::deleteLater, Qt::DirectConnection);
+ Shiboken::Object::releaseOwnership(reinterpret_cast<SbkObject *>(pyTimer));
+ Py_XDECREF(pyTimer);
+ timer->start(msec);
+}
+// @snippet qtimer-singleshot-functor-context
// @snippet qprocess-startdetached
qint64 pid;
@@ -1434,6 +1197,16 @@ if (result == -1) {
}
// @snippet qdatastream-readrawdata
+// @snippet qdatastream-writerawdata-pybuffer
+int r = 0;
+Py_ssize_t bufferLen;
+auto *data = reinterpret_cast<const char*>(Shiboken::Buffer::getPointer(%PYARG_1, &bufferLen));
+Py_BEGIN_ALLOW_THREADS
+r = %CPPSELF.%FUNCTION_NAME(data, bufferLen);
+Py_END_ALLOW_THREADS
+%PYARG_0 = %CONVERTTOPYTHON[int](r);
+// @snippet qdatastream-writerawdata-pybuffer
+
// @snippet qdatastream-writerawdata
int r = 0;
Py_BEGIN_ALLOW_THREADS
@@ -1549,11 +1322,11 @@ QString &res = *%0;
// @snippet return-readData
%RETURN_TYPE %0 = 0;
if (PyBytes_Check(%PYARG_0)) {
- %0 = PyBytes_GET_SIZE(%PYARG_0);
- memcpy(%1, PyBytes_AS_STRING(%PYARG_0), %0);
-} else if (Shiboken::String::check(%PYARG_0)) {
- %0 = Shiboken::String::len(%PYARG_0);
- memcpy(%1, Shiboken::String::toCString(%PYARG_0), %0);
+ %0 = PyBytes_GET_SIZE(%PYARG_0.object());
+ memcpy(%1, PyBytes_AS_STRING(%PYARG_0.object()), %0);
+} else if (Shiboken::String::check(%PYARG_0.object())) {
+ %0 = Shiboken::String::len(%PYARG_0.object());
+ memcpy(%1, Shiboken::String::toCString(%PYARG_0.object()), %0);
}
// @snippet return-readData
@@ -1572,7 +1345,7 @@ Py_END_ALLOW_THREADS
if (atexit.isNull()) {
qWarning("Module atexit not found for registering __moduleShutdown");
PyErr_Clear();
- }else{
+ } else {
regFunc.reset(PyObject_GetAttrString(atexit, "register"));
if (regFunc.isNull()) {
qWarning("Function atexit.register not found for registering __moduleShutdown");
@@ -1588,7 +1361,16 @@ Py_END_ALLOW_THREADS
}
}
// @snippet qt-module-shutdown
-//
+
+// @snippet qthread_init_pypy
+#ifdef PYPY_VERSION
+// PYSIDE-535: PyPy 7.3.8 needs this call, which is actually a no-op in Python 3.9
+// This function should be replaced by a `Py_Initialize` call, but
+// that is still undefined. So we don't rely yet on any PyPy version.
+PyEval_InitThreads();
+#endif
+// @snippet qthread_init_pypy
+
// @snippet qthread_exec_
if (PyErr_WarnEx(PyExc_DeprecationWarning,
"'exec_' will be removed in the future. "
@@ -1669,10 +1451,6 @@ if (PyErr_WarnEx(PyExc_DeprecationWarning,
%out = %OUTTYPE(%in == Py_True);
// @snippet conversion-pybool
-// @snippet conversion-pylong
-%out = %OUTTYPE(PyLong_AsLong(%in));
-// @snippet conversion-pylong
-
// @snippet conversion-pylong-quintptr
#if QT_POINTER_SIZE == 8
%out = %OUTTYPE(PyLong_AsUnsignedLongLong(%in));
@@ -1682,28 +1460,11 @@ if (PyErr_WarnEx(PyExc_DeprecationWarning,
// @snippet conversion-pylong-quintptr
// @snippet conversion-pyunicode
-#ifndef Py_LIMITED_API
-void *data = PyUnicode_DATA(%in);
-Py_ssize_t len = PyUnicode_GetLength(%in);
-switch (PyUnicode_KIND(%in)) {
- case PyUnicode_1BYTE_KIND:
- %out = QString::fromLatin1(reinterpret_cast<const char *>(data));
- break;
- case PyUnicode_2BYTE_KIND:
- %out = QString::fromUtf16(reinterpret_cast<const char16_t *>(data), len);
- break;
- case PyUnicode_4BYTE_KIND:
- %out = QString::fromUcs4(reinterpret_cast<const char32_t *>(data), len);
- break;
-}
-#else
-wchar_t *temp = PyUnicode_AsWideCharString(%in, nullptr);
-%out = QString::fromWCharArray(temp);
-PyMem_Free(temp);
-#endif
+%out = PySide::pyUnicodeToQString(%in);
// @snippet conversion-pyunicode
// @snippet conversion-pynone
+SBK_UNUSED(%in)
%out = %OUTTYPE();
// @snippet conversion-pynone
@@ -1722,7 +1483,7 @@ auto res = (*%CPPSELF) + cppArg0;
// @snippet conversion-pystring-char
char c = %CONVERTTOCPP[char](%in);
-%out = %OUTTYPE(c);
+%out = %OUTTYPE(static_cast<unsigned short>(c));
// @snippet conversion-pystring-char
// @snippet conversion-pyint
@@ -1756,15 +1517,23 @@ double in = %CONVERTTOCPP[double](%in);
// @snippet conversion-sbkobject
// a class supported by QVariant?
const QMetaType metaType = QVariant_resolveMetaType(Py_TYPE(%in));
+bool ok = false;
if (metaType.isValid()) {
QVariant var(metaType);
- Shiboken::Conversions::SpecificConverter converter(metaType.name());
- converter.toCpp(pyIn, var.data());
- %out = var;
-} else {
- // If the type was not encountered, return a default PyObjectWrapper
- %out = QVariant::fromValue(PySide::PyObjectWrapper(%in));
+ auto converterO = converterForQtType(metaType.name());
+ ok = converterO.has_value();
+ if (ok) {
+ converterO.value().toCpp(pyIn, var.data());
+ %out = var;
+ } else {
+ qWarning("%s: Cannot find a converter for \"%s\".",
+ __FUNCTION__, metaType.name());
+ }
}
+
+// If the type was not encountered, return a default PyObjectWrapper
+if (!ok)
+ %out = QVariant::fromValue(PySide::PyObjectWrapper(%in));
// @snippet conversion-sbkobject
// @snippet conversion-pydict
@@ -1788,11 +1557,6 @@ QJsonValue val = QJsonValue::fromVariant(dict);
%out = val.toObject();
// @snippet conversion-qjsonobject-pydict
-// @snippet conversion-qpair-pysequence
-%out.first = %CONVERTTOCPP[%OUTTYPE_0](PySequence_Fast_GET_ITEM(%in, 0));
-%out.second = %CONVERTTOCPP[%OUTTYPE_1](PySequence_Fast_GET_ITEM(%in, 1));
-// @snippet conversion-qpair-pysequence
-
// @snippet conversion-qdate-pydate
int day = PyDateTime_GET_DAY(%in);
int month = PyDateTime_GET_MONTH(%in);
@@ -1855,14 +1619,42 @@ return PyLong_FromUnsignedLong(%in);
#endif
// @snippet return-pylong-quintptr
+// @snippet return-qfunctionpointer-pylong
+return PyLong_FromVoidPtr(reinterpret_cast<void *>(%in));
+// @snippet return-qfunctionpointer-pylong
+
+// @snippet conversion-pylong-qfunctionpointer
+%out = reinterpret_cast<QFunctionPointer>(PyLong_AsVoidPtr(%in));
+// @snippet conversion-pylong-qfunctionpointer
+
// @snippet return-pyunicode
-QByteArray ba = %in.toUtf8();
-return PyUnicode_FromStringAndSize(ba.constData(), ba.size());
+return PySide::qStringToPyUnicode(%in);
// @snippet return-pyunicode
+// @snippet return-pyunicode-from-qlatin1string
+#ifdef Py_LIMITED_API
+return PySide::qStringToPyUnicode(QString::fromLatin1(%in));
+#else
+return PyUnicode_FromKindAndData(PyUnicode_1BYTE_KIND, %in.constData(), %in.size());
+#endif
+// @snippet return-pyunicode-from-qlatin1string
+
+// @snippet qlatin1string-check
+static bool qLatin1StringCheck(PyObject *o)
+{
+ return PyUnicode_CheckExact(o) != 0
+ && _PepUnicode_KIND(o) == PepUnicode_1BYTE_KIND;
+}
+// @snippet qlatin1string-check
+
+// @snippet conversion-pystring-qlatin1string
+const char *data = reinterpret_cast<const char *>(_PepUnicode_DATA(%in));
+const Py_ssize_t len = PyUnicode_GetLength(%in);
+%out = QLatin1String(data, len);
+// @snippet conversion-pystring-qlatin1string
+
// @snippet return-pyunicode-from-qanystringview
-QByteArray ba = %in.toString().toUtf8();
-return PyUnicode_FromStringAndSize(ba.constData(), ba.size());
+return PySide::qStringToPyUnicode(%in.toString());
// @snippet return-pyunicode-from-qanystringview
// @snippet return-pyunicode-qchar
@@ -1899,11 +1691,10 @@ default:
break;
}
-Shiboken::Conversions::SpecificConverter converter(cppInRef.typeName());
-if (converter) {
- void *ptr = cppInRef.data();
- return converter.toPython(ptr);
-}
+auto converterO = converterForQtType(cppInRef.typeName());
+if (converterO.has_value())
+ return converterO.value().toPython(cppInRef.data());
+
PyErr_Format(PyExc_RuntimeError, "Can't find converter for '%s'.", %in.typeName());
return 0;
// @snippet return-qvariant
@@ -1918,16 +1709,8 @@ QVariant ret = val.toVariant();
return %CONVERTTOPYTHON[QVariant](ret);
// @snippet return-qjsonobject
-// @snippet return-qpair
-PyObject *%out = PyTuple_New(2);
-PyTuple_SET_ITEM(%out, 0, %CONVERTTOPYTHON[%INTYPE_0](%in.first));
-PyTuple_SET_ITEM(%out, 1, %CONVERTTOPYTHON[%INTYPE_1](%in.second));
-return %out;
-// @snippet return-qpair
-
// @snippet qthread_pthread_cleanup
#ifdef Q_OS_UNIX
-# include <stdio.h>
# include <pthread.h>
static void qthread_pthread_cleanup(void *arg)
{
@@ -1954,13 +1737,17 @@ pthread_cleanup_pop(0);
// @snippet qthread_pthread_cleanup_uninstall
// @snippet qlibraryinfo_build
-#if defined(Py_LIMITED_API)
-auto suffix = PyUnicode_FromString(" [limited API]");
auto oldResult = pyResult;
-pyResult = PyUnicode_Concat(pyResult, suffix);
-Py_DECREF(oldResult);
-Py_DECREF(suffix);
+const auto version = _PepRuntimeVersion();
+pyResult = PyUnicode_FromFormat(
+#ifdef Py_LIMITED_API
+ "%U [Python limited API %d.%d.%d]",
+#else
+ "%U [Python %d.%d.%d]",
#endif
+ oldResult, (version >> 16) & 0xFF,
+ (version >> 8) & 0xFF, version & 0xFF);
+Py_DECREF(oldResult);
// @snippet qlibraryinfo_build
// @snippet qsharedmemory_data_readonly
@@ -1994,3 +1781,374 @@ Py_INCREF(callable);
%RETURN_TYPE %0 = %CPPSELF.%FUNCTION_NAME(cppCallback);
%PYARG_0 = %CONVERTTOPYTHON[int](cppResult);
// @snippet qthreadpool-trystart
+
+// @snippet repr-qevent
+QString result;
+QDebug(&result).nospace() << "<PySide6.QtCore.QEvent(" << %CPPSELF->type() << ")>";
+%PYARG_0 = Shiboken::String::fromCString(qPrintable(result));
+// @snippet repr-qevent
+
+// @snippet qmetaproperty_write_enum
+if (Shiboken::Enum::check(%PYARG_2))
+ cppArg1 = QVariant(int(Shiboken::Enum::getValue(%PYARG_2)));
+// @snippet qmetaproperty_write_enum
+
+// @snippet qdatastream-read-bytes
+QByteArray data;
+data.resize(%2);
+auto dataChar = data.data();
+cppSelf->readBytes(dataChar, %2);
+const char *constDataChar = dataChar;
+if (dataChar == nullptr) {
+ Py_INCREF(Py_None);
+ %PYARG_0 = Py_None;
+} else {
+ %PYARG_0 = PyBytes_FromStringAndSize(constDataChar, %2);
+}
+// @snippet qdatastream-read-bytes
+
+// @snippet qloggingcategory_to_cpp
+// PYSIDE-2404: Usage of the `get()` function not necessary, the type exists.
+ QLoggingCategory *category{nullptr};
+ Shiboken::Conversions::pythonToCppPointer(SbkPySide6_QtCoreTypeStructs[SBK_QLoggingCategory_IDX].type,
+ pyArgs[0], &(category));
+// @snippet qloggingcategory_to_cpp
+
+// Q_ARG()-equivalent
+// @snippet q_arg
+const QArgData qArgData = qArgDataFromPyType(%1);
+if (!qArgData)
+ return nullptr;
+
+switch (qArgData.metaType.id()) {
+ case QMetaType::Bool:
+ *reinterpret_cast<bool *>(qArgData.data) = %2 == Py_True;
+ break;
+ case QMetaType::Int:
+ *reinterpret_cast<int *>(qArgData.data) = int(PyLong_AsLong(%2));
+ break;
+ case QMetaType::Double:
+ *reinterpret_cast<double *>(qArgData.data) = PyFloat_AsDouble(%2);
+ break;
+ case QMetaType::QString:
+ *reinterpret_cast<QString *>(qArgData.data) = PySide::pyUnicodeToQString(%2);
+ break;
+ default: {
+ Shiboken::Conversions::SpecificConverter converter(qArgData.metaType.name());
+ const auto type = converter.conversionType();
+ // Copy for values, Pointer for objects
+ if (type == Shiboken::Conversions::SpecificConverter::InvalidConversion) {
+ PyErr_Format(PyExc_RuntimeError, "%s: Unable to find converter for \"%s\".",
+ __FUNCTION__, qArgData.metaType.name());
+ return nullptr;
+ }
+ converter.toCpp(%2, qArgData.data);
+ }
+}
+
+QtCoreHelper::QGenericArgumentHolder result(qArgData.metaType, qArgData.data);
+%PYARG_0 = %CONVERTTOPYTHON[QtCoreHelper::QGenericArgumentHolder](result);
+// @snippet q_arg
+
+// Q_RETURN_ARG()-equivalent
+// @snippet q_return_arg
+const QArgData qArgData = qArgDataFromPyType(%1);
+if (!qArgData)
+ return nullptr;
+
+QtCoreHelper::QGenericReturnArgumentHolder result(qArgData.metaType, qArgData.data);
+%PYARG_0 = %CONVERTTOPYTHON[QtCoreHelper::QGenericReturnArgumentHolder](result);
+// @snippet q_return_arg
+
+// @snippet qmetamethod-invoke-helpers
+static InvokeMetaMethodFunc
+ createInvokeMetaMethodFunc(const QMetaMethod &method, QObject *object,
+ Qt::ConnectionType type = Qt::AutoConnection)
+{
+ return [&method, object, type](QGenericArgument a0, QGenericArgument a1,
+ QGenericArgument a2, QGenericArgument a3,
+ QGenericArgument a4, QGenericArgument a5,
+ QGenericArgument a6, QGenericArgument a7,
+ QGenericArgument a8, QGenericArgument a9) -> bool
+ {
+ return method.invoke(object, type, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);
+ };
+}
+
+static InvokeMetaMethodFuncWithReturn
+ createInvokeMetaMethodFuncWithReturn(const QMetaMethod &method, QObject *object,
+ Qt::ConnectionType type = Qt::AutoConnection)
+{
+ return [&method, object, type](QGenericReturnArgument r,
+ QGenericArgument a0, QGenericArgument a1,
+ QGenericArgument a2, QGenericArgument a3,
+ QGenericArgument a4, QGenericArgument a5,
+ QGenericArgument a6, QGenericArgument a7,
+ QGenericArgument a8, QGenericArgument a9) -> bool
+ {
+ return method.invoke(object, type, r, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);
+ };
+}
+// @snippet qmetamethod-invoke-helpers
+
+// @snippet qmetamethod-invoke-conn-type-return-arg
+%PYARG_0 = invokeMetaMethodWithReturn(createInvokeMetaMethodFuncWithReturn(*%CPPSELF, %1, %2),
+ %3, %4, %5, %6, %7, %8, %9, %10, %11, %12, %13);
+// @snippet qmetamethod-invoke-conn-type-return-arg
+
+// @snippet qmetamethod-invoke-return-arg
+%PYARG_0 = invokeMetaMethodWithReturn(createInvokeMetaMethodFuncWithReturn(*%CPPSELF, %1),
+ %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12);
+// @snippet qmetamethod-invoke-return-arg
+
+// @snippet qmetamethod-invoke-conn-type
+%PYARG_0 = invokeMetaMethod(createInvokeMetaMethodFunc(*%CPPSELF, %1, %2),
+ %3, %4, %5, %6, %7, %8, %9, %10, %11, %12);
+// @snippet qmetamethod-invoke-conn-type
+
+// @snippet qmetamethod-invoke
+%PYARG_0 = invokeMetaMethod(createInvokeMetaMethodFunc(*%CPPSELF, %1),
+ %2, %3, %4, %5, %6, %7, %8, %9, %10, %11);
+// @snippet qmetamethod-invoke
+
+// @snippet qmetaobject-invokemethod-helpers
+static InvokeMetaMethodFunc
+ createInvokeMetaMethodFunc(QObject *object, const char *methodName,
+ Qt::ConnectionType type = Qt::AutoConnection)
+{
+ return [object, methodName, type](QGenericArgument a0, QGenericArgument a1,
+ QGenericArgument a2, QGenericArgument a3,
+ QGenericArgument a4, QGenericArgument a5,
+ QGenericArgument a6, QGenericArgument a7,
+ QGenericArgument a8, QGenericArgument a9) -> bool
+ {
+ return QMetaObject::invokeMethod(object, methodName, type,
+ a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);
+ };
+}
+
+static InvokeMetaMethodFuncWithReturn
+ createInvokeMetaMethodFuncWithReturn(QObject *object, const char *methodName,
+ Qt::ConnectionType type = Qt::AutoConnection)
+{
+ return [object, methodName, type](QGenericReturnArgument r,
+ QGenericArgument a0, QGenericArgument a1,
+ QGenericArgument a2, QGenericArgument a3,
+ QGenericArgument a4, QGenericArgument a5,
+ QGenericArgument a6, QGenericArgument a7,
+ QGenericArgument a8, QGenericArgument a9) -> bool
+ {
+ return QMetaObject::invokeMethod(object, methodName, type,
+ r, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);
+ };
+}
+// @snippet qmetaobject-invokemethod-helpers
+
+// invokeMethod(QObject *,const char *, QGenericArgument a0, a1, a2 )
+// @snippet qmetaobject-invokemethod-arg
+%PYARG_0 = invokeMetaMethod(createInvokeMetaMethodFunc(%1, %2),
+ %3, %4, %5, %6, %7, %8, %9, %10, %11, %12);
+// @snippet qmetaobject-invokemethod-arg
+
+// invokeMethod(QObject *,const char *,Qt::ConnectionType, QGenericArgument a0, a1, a2 )
+// @snippet qmetaobject-invokemethod-conn-type-arg
+%PYARG_0 = invokeMetaMethod(createInvokeMetaMethodFunc(%1, %2, %3),
+ %4, %5, %6, %7, %8, %9, %10, %11, %12, %13);
+// @snippet qmetaobject-invokemethod-conn-type-arg
+
+// invokeMethod(QObject *,const char *, Qt::ConnectionType, QGenericReturnArgument,QGenericArgument a0, a1, a2 )
+// @snippet qmetaobject-invokemethod-conn-type-return-arg
+%PYARG_0 = invokeMetaMethodWithReturn(createInvokeMetaMethodFuncWithReturn(%1, %2, %3),
+ %4, %5, %6, %7, %8, %9, %10, %11, %12, %13, %14);
+// @snippet qmetaobject-invokemethod-conn-type-return-arg
+
+// invokeMethod(QObject *,const char *, QGenericReturnArgument,QGenericArgument a0, a1, a2 )
+// @snippet qmetaobject-invokemethod-return-arg
+%PYARG_0 = invokeMetaMethodWithReturn(createInvokeMetaMethodFuncWithReturn(%1, %2),
+ %3, %4, %5, %6, %7, %8, %9, %10, %11, %12, %13);
+// @snippet qmetaobject-invokemethod-return-arg
+
+// @snippet keycombination-from-keycombination
+cptr = new ::%TYPE(%1);
+// @snippet keycombination-from-keycombination
+
+// @snippet keycombination-from-modifier
+cptr = new ::%TYPE(%1, %2);
+// @snippet keycombination-from-modifier
+
+// @snippet qmetamethod-from-signal
+auto *signalInst = reinterpret_cast<PySideSignalInstance *>(%PYARG_1);
+const auto data = PySide::Signal::getEmitterData(signalInst);
+const auto result = data.methodIndex != -1
+ ? data.emitter->metaObject()->method(data.methodIndex)
+ : QMetaMethod{};
+%PYARG_0 = %CONVERTTOPYTHON[QMetaMethod](result);
+// @snippet qmetamethod-from-signal
+
+// @snippet qrunnable_create
+auto callable = %PYARG_1;
+auto callback = [callable]() -> void
+{
+ if (!PyCallable_Check(callable)) {
+ qWarning("Argument 1 of %FUNCTION_NAME must be a callable.");
+ return;
+ }
+ Shiboken::GilState state;
+ Shiboken::AutoDecRef ret(PyObject_CallObject(callable, nullptr));
+ Py_DECREF(callable);
+};
+Py_INCREF(callable);
+%RETURN_TYPE %0 = %CPPSELF.%FUNCTION_NAME(callback);
+%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
+// @snippet qrunnable_create
+
+// @snippet qlocale_system
+// For darwin systems, QLocale::system() involves looking at the Info.plist of the application
+// bundle to detect the system localization. In the case of Qt for Python, the application bundle
+// is the used Python framework. To enable retreival of localized string, the property list key
+// CFBunldeAllowMixedLocalizations should be set to True inside the Info.plist file. Otherwise,
+// CFBundleDevelopmentRegion will be used to find the language preference of the user, which in the
+// case of Python is always english.
+// This is a hack until CFBunldeAllowMixedLocalizations will be set in the Python framework
+// installation in darwin systems.
+// Upstream issue in CPython: https://github.com/python/cpython/issues/108269
+#ifdef Q_OS_DARWIN
+ Shiboken::AutoDecRef locale(PyImport_ImportModule("locale"));
+ Shiboken::AutoDecRef getLocale(PyObject_GetAttrString(locale, "getlocale"));
+ Shiboken::AutoDecRef systemLocale(PyObject_CallObject(getLocale, nullptr));
+ PyObject* localeCode = PyTuple_GetItem(systemLocale, 0);
+ %RETURN_TYPE %0;
+ if (localeCode != Py_None) {
+ QString localeCodeStr = PySide::pyStringToQString(localeCode);
+ %0 = QLocale(localeCodeStr);
+ } else {
+ // The default locale is 'C' locale as mentioned in
+ // https://docs.python.org/3/library/locale.html
+ %0 = ::QLocale::c();
+ }
+#else
+ %RETURN_TYPE %0 = %CPPSELF.%FUNCTION_NAME();
+#endif
+%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
+// @snippet qlocale_system
+
+// @snippet qcoreapplication-requestpermission
+auto permission = %1;
+auto callable = %PYARG_3;
+
+// check if callable
+if (!PyCallable_Check(callable)) {
+ qWarning("Functor of %FUNCTION_NAME is not a callable");
+ return {};
+}
+
+// find the number of arguments of callable. It should either be empy or accept a QPermission
+// object
+int count = 0;
+PyObject* fc = nullptr;
+bool classMethod = false;
+Shiboken::AutoDecRef func_ob(PyObject_GetAttr(callable, Shiboken::PyMagicName::func()));
+
+if (func_ob.isNull() && PyObject_HasAttr(callable, Shiboken::PyMagicName::code())) {
+ // variable `callable` is a function
+ fc = PyObject_GetAttr(callable, Shiboken::PyMagicName::code());
+} else {
+ // variable `callable` is a class method
+ fc = PyObject_GetAttr(func_ob, Shiboken::PyMagicName::code());
+ classMethod = true;
+}
+
+if (fc) {
+ PyObject* ac = PyObject_GetAttrString(fc, "co_argcount");
+ if (ac) {
+ count = PyLong_AsLong(ac);
+ Py_DECREF(ac);
+ }
+ Py_DECREF(fc);
+}
+
+if ((classMethod && (count > 2)) || (!classMethod && (count > 1))) {
+ qWarning("Functor of %FUNCTION_NAME must either have QPermission object as argument or none."
+ "The QPermission object store the result of requestPermission()");
+ return {};
+}
+
+bool arg_qpermission = (classMethod && (count == 2)) || (!classMethod && (count == 1));
+
+auto callback = [callable, count, arg_qpermission](const QPermission &permission) -> void
+{
+ Shiboken::GilState state;
+ if (arg_qpermission) {
+ Shiboken::AutoDecRef arglist(PyTuple_New(1));
+ PyTuple_SET_ITEM(arglist.object(), 0, %CONVERTTOPYTHON[QPermission](permission));
+ Shiboken::AutoDecRef ret(PyObject_CallObject(callable, arglist));
+ } else {
+ Shiboken::AutoDecRef ret(PyObject_CallObject(callable, nullptr));
+ }
+ Py_DECREF(callable);
+};
+Py_INCREF(callable);
+
+Py_BEGIN_ALLOW_THREADS
+%CPPSELF.%FUNCTION_NAME(permission, %2, callback);
+Py_END_ALLOW_THREADS
+// @snippet qcoreapplication-requestpermission
+
+// @snippet qlockfile-getlockinfo
+qint64 pid{};
+QString hostname, appname;
+%CPPSELF.%FUNCTION_NAME(&pid, &hostname, &appname);
+%PYARG_0 = PyTuple_New(3);
+PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[qint64](pid));
+PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[QString](hostname));
+PyTuple_SET_ITEM(%PYARG_0, 2, %CONVERTTOPYTHON[QString](appname));
+// @snippet qlockfile-getlockinfo
+
+// @snippet darwin_permission_plugin
+#ifdef Q_OS_DARWIN
+#include<QtCore/qplugin.h>
+// register the static plugin and setup its metadata
+Q_IMPORT_PLUGIN(QDarwinCameraPermissionPlugin)
+Q_IMPORT_PLUGIN(QDarwinMicrophonePermissionPlugin)
+Q_IMPORT_PLUGIN(QDarwinBluetoothPermissionPlugin)
+Q_IMPORT_PLUGIN(QDarwinContactsPermissionPlugin)
+Q_IMPORT_PLUGIN(QDarwinCalendarPermissionPlugin)
+#endif
+// @snippet darwin_permission_plugin
+
+// @snippet qt-modifier
+PyObject *_inputDict = PyDict_New();
+// Note: The builtins line is no longer needed since Python 3.10. Undocumented!
+PyDict_SetItemString(_inputDict, "__builtins__", PyEval_GetBuiltins());
+PyDict_SetItemString(_inputDict, "QtCore", module);
+PyDict_SetItemString(_inputDict, "Qt", reinterpret_cast<PyObject *>(pyType));
+// Explicitly not dereferencing the result.
+PyRun_String(R"PY(if True:
+ from enum import Flag
+ from textwrap import dedent
+ from warnings import warn
+ # QtCore and Qt come as globals.
+
+ def func_or(self, other):
+ if isinstance(self, Flag) and isinstance(other, Flag):
+ # this is normal or-ing flags together
+ return Qt.KeyboardModifier(self.value | other.value)
+ return QtCore.QKeyCombination(self, other)
+
+ def func_add(self, other):
+ warn(dedent(f"""
+ The "+" operator is deprecated in Qt For Python 6.0 .
+ Please use "|" instead."""), stacklevel=2)
+ return func_or(self, other)
+
+ Qt.KeyboardModifier.__or__ = func_or
+ Qt.KeyboardModifier.__ror__ = func_or
+ Qt.Modifier.__or__ = func_or
+ Qt.Modifier.__ror__ = func_or
+ Qt.KeyboardModifier.__add__ = func_add
+ Qt.KeyboardModifier.__radd__ = func_add
+ Qt.Modifier.__add__ = func_add
+ Qt.Modifier.__radd__ = func_add
+
+)PY", Py_file_input, _inputDict, _inputDict);
+// @snippet qt-modifier
diff --git a/sources/pyside6/PySide6/glue/qtdatavisualization.cpp b/sources/pyside6/PySide6/glue/qtdatavisualization.cpp
index 21c8eb23f..3a179cb17 100644
--- a/sources/pyside6/PySide6/glue/qtdatavisualization.cpp
+++ b/sources/pyside6/PySide6/glue/qtdatavisualization.cpp
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
// @snippet releaseownership
Shiboken::Object::releaseOwnership(%PYARG_1);
@@ -77,8 +41,50 @@ using ListType = decltype(%2);
using ListType = decltype(%2);
%CPPSELF.setRow(%1, new ListType(%2), %3);
// @snippet dataproxy-setrow-string
-//
+
// @snippet dataproxy-resetarray
using ListType = decltype(%1);
%CPPSELF.resetArray(new ListType(%1));
// @snippet dataproxy-resetarray
+
+// @snippet dataproxy-resetarray2
+using ListType = decltype(%1);
+%CPPSELF.resetArray(new ListType(%1), %2, %3);
+// @snippet dataproxy-resetarray2
+
+// @snippet scatterdataproxy-resetarray
+%CPPSELF.resetArray(new QScatterDataArray(*%1));
+// @snippet scatterdataproxy-resetarray
+
+// @snippet qsurfacedataproxy-resetarraynp
+auto *data = QtDataVisualizationHelper::surfaceDataFromNp(%1, %2, %3, %4, %5);
+// %CPPSELF.%FUNCTION_NAME
+%CPPSELF.resetArray(data);
+// @snippet qsurfacedataproxy-resetarraynp
+
+// @snippet qvalue3daxisformatter-friend
+class QFriendlyValue3DAxisFormatter : public QValue3DAxisFormatter
+{
+public:
+using QValue3DAxisFormatter::gridPositions;
+using QValue3DAxisFormatter::labelPositions;
+using QValue3DAxisFormatter::labelStrings;
+};
+
+static inline QFriendlyValue3DAxisFormatter *friendlyFormatter(QValue3DAxisFormatter *f)
+{
+ return static_cast<QFriendlyValue3DAxisFormatter *>(f);
+}
+// @snippet qvalue3daxisformatter-friend
+
+// @snippet qvalue3daxisformatter-setgridpositions
+friendlyFormatter(%CPPSELF)->gridPositions() = %1;
+// @snippet qvalue3daxisformatter-setgridpositions
+
+// @snippet qvalue3daxisformatter-setlabelpositions
+friendlyFormatter(%CPPSELF)->labelPositions() = %1;
+// @snippet qvalue3daxisformatter-setlabelpositions
+
+// @snippet qvalue3daxisformatter-setlabelstrings
+friendlyFormatter(%CPPSELF)->labelStrings() = %1;
+// @snippet qvalue3daxisformatter-setlabelstrings
diff --git a/sources/pyside6/PySide6/glue/qtdesigner.cpp b/sources/pyside6/PySide6/glue/qtdesigner.cpp
index d18b6f532..d26d9f857 100644
--- a/sources/pyside6/PySide6/glue/qtdesigner.cpp
+++ b/sources/pyside6/PySide6/glue/qtdesigner.cpp
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
// @snippet qtdesigner-registercustomwidget
if (!QPyDesignerCustomWidgetCollection::_registerCustomWidgetHelper(%PYARG_1, kwds))
diff --git a/sources/pyside6/PySide6/glue/qtgraphs.cpp b/sources/pyside6/PySide6/glue/qtgraphs.cpp
new file mode 100644
index 000000000..b5a5db799
--- /dev/null
+++ b/sources/pyside6/PySide6/glue/qtgraphs.cpp
@@ -0,0 +1,8 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+// @snippet graphs-qsurfacedataproxy-resetarraynp
+auto data = QtGraphsHelper::surfaceDataFromNp(%1, %2, %3, %4, %5);
+// %CPPSELF.%FUNCTION_NAME
+%CPPSELF.resetArray(data);
+// @snippet graphs-qsurfacedataproxy-resetarraynp
diff --git a/sources/pyside6/PySide6/glue/qtgui.cpp b/sources/pyside6/PySide6/glue/qtgui.cpp
index 81181dac4..130de11bb 100644
--- a/sources/pyside6/PySide6/glue/qtgui.cpp
+++ b/sources/pyside6/PySide6/glue/qtgui.cpp
@@ -1,46 +1,16 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
/*********************************************************************
* INJECT CODE
********************************************************************/
+// @snippet gui-declarations
+QT_BEGIN_NAMESPACE
+void qt_set_sequence_auto_mnemonic(bool);
+QT_END_NAMESPACE
+// @snippet gui-declarations
+
// @snippet qaccessible-pysidefactory
// Helper for QAccessible::installFactory() that forwards the calls to
// Python callables.
@@ -136,6 +106,140 @@ QAccessibleInterface *PySideAccessibleFactory::callFactories(const QString &key,
PySideAccessibleFactory::ensureInstance()->installFactory(%1);
// @snippet qaccessible-installfactory
+// @snippet qaction-menu
+// %CPPSELF->menu(); // pretend it was called.
+QObject *object = %CPPSELF->menu<QObject *>();
+%PYARG_0 = %CONVERTTOPYTHON[QObject*](object);
+// @snippet qaction-menu
+
+// @snippet qopenglfunctions-glgetv-return-size
+// Return the number of return values of the glGetBoolean/Double/Integerv functions
+// cf https://registry.khronos.org/OpenGL-Refpages/gl4/html/glGet.xhtml
+static int glGetVReturnSize(GLenum pname)
+{
+ switch (pname) {
+ case GL_ALIASED_LINE_WIDTH_RANGE:
+ case GL_DEPTH_RANGE:
+ case GL_MAX_VIEWPORT_DIMS:
+#if !QT_CONFIG(opengles2)
+ case GL_POINT_SIZE_RANGE:
+ case GL_SMOOTH_LINE_WIDTH_RANGE:
+ case GL_VIEWPORT_BOUNDS_RANGE:
+#endif
+ return 2;
+ case GL_BLEND_COLOR:
+ case GL_COLOR_CLEAR_VALUE:
+ case GL_COLOR_WRITEMASK:
+ case GL_SCISSOR_BOX:
+ case GL_VIEWPORT:
+ return 4;
+ case GL_COMPRESSED_TEXTURE_FORMATS:
+ return GL_NUM_COMPRESSED_TEXTURE_FORMATS;
+ default:
+ break;
+ }
+ return 1;
+}
+// @snippet qopenglfunctions-glgetv-return-size
+
+// @snippet qopenglextrafunctions-glgeti-v-return-size
+// Return the number of return values of the indexed
+// glGetBoolean/Double/Integeri_v functions
+// cf https://registry.khronos.org/OpenGL-Refpages/gl4/html/glGet.xhtml
+static int glGetI_VReturnSize(GLenum pname)
+{
+ return pname == GL_VIEWPORT ? 4 : 1;
+}
+// @snippet qopenglextrafunctions-glgeti-v-return-size
+
+// @snippet qopenglfunctions-glgetbooleanv
+const int size = glGetVReturnSize(%1);
+QVarLengthArray<GLboolean> result(size, GL_FALSE);
+%CPPSELF.%FUNCTION_NAME(%ARGUMENT_NAMES, result.data());
+if (size == 1) {
+ %PYARG_0 = %CONVERTTOPYTHON[bool](result[0]);
+} else {
+ %PYARG_0 = Shiboken::Numpy::createByteArray1(size, result.constData());
+}
+// @snippet qopenglfunctions-glgetbooleanv
+
+// @snippet qopenglfunctions-glgetdoublev
+const int size = glGetVReturnSize(%1);
+QVarLengthArray<GLdouble> result(size, 0);
+%CPPSELF.%FUNCTION_NAME(%ARGUMENT_NAMES, result.data());
+if (size == 1) {
+ %PYARG_0 = %CONVERTTOPYTHON[double](result[0]);
+} else {
+ %PYARG_0 = Shiboken::Numpy::createDoubleArray1(size, result.constData());
+}
+// @snippet qopenglfunctions-glgetdoublev
+
+// @snippet qopenglfunctions-glgetfloatv
+const int size = glGetVReturnSize(%1);
+QVarLengthArray<GLfloat> result(size, 0);
+%CPPSELF.%FUNCTION_NAME(%ARGUMENT_NAMES, result.data());
+if (size == 1) {
+ %PYARG_0 = %CONVERTTOPYTHON[float](result[0]);
+} else {
+ %PYARG_0 = Shiboken::Numpy::createFloatArray1(size, result.constData());
+}
+// @snippet qopenglfunctions-glgetfloatv
+
+// @snippet qopenglfunctions-glgetintegerv
+const int size = glGetVReturnSize(%1);
+QVarLengthArray<GLint> result(size, 0);
+%CPPSELF.%FUNCTION_NAME(%ARGUMENT_NAMES, result.data());
+if (size == 1) {
+ %PYARG_0 = %CONVERTTOPYTHON[int](result[0]);
+} else {
+ %PYARG_0 = Shiboken::Numpy::createIntArray1(size, result.constData());
+}
+// @snippet qopenglfunctions-glgetintegerv
+
+// @snippet qopenglextrafunctions-glgetbooleani-v
+const int size = glGetI_VReturnSize(%1);
+QVarLengthArray<GLboolean> result(size, GL_FALSE);
+%CPPSELF.%FUNCTION_NAME(%ARGUMENT_NAMES, result.data());
+if (size == 1) {
+ %PYARG_0 = %CONVERTTOPYTHON[bool](result[0]);
+} else {
+ %PYARG_0 = Shiboken::Numpy::createByteArray1(size, result.constData());
+}
+// @snippet qopenglextrafunctions-glgetbooleani-v
+
+// @snippet qopenglextrafunctions-glgetdoublei-v
+const int size = glGetI_VReturnSize(%1);
+QVarLengthArray<GLdouble> result(size, 0);
+%CPPSELF.%FUNCTION_NAME(%ARGUMENT_NAMES, result.data());
+if (size == 1) {
+ %PYARG_0 = %CONVERTTOPYTHON[double](result[0]);
+} else {
+ %PYARG_0 = Shiboken::Numpy::createDoubleArray1(size, result.constData());
+}
+// @snippet qopenglextrafunctions-glgetdoublei-v
+
+// @snippet qopenglextrafunctions-glgetfloati-v
+const int size = glGetI_VReturnSize(%1);
+QVarLengthArray<GLfloat> result(size, 0);
+%CPPSELF.%FUNCTION_NAME(%ARGUMENT_NAMES, result.data());
+if (size == 1) {
+ %PYARG_0 = %CONVERTTOPYTHON[float](result[0]);
+} else {
+ %PYARG_0 = Shiboken::Numpy::createFloatArray1(size, result.constData());
+}
+// @snippet qopenglextrafunctions-glgetfloati-v
+
+// @snippet qopenglextrafunctions-glgetintegeri-v
+const int size = glGetI_VReturnSize(%1);
+QVarLengthArray<GLint> result(size, 0);
+%CPPSELF.%FUNCTION_NAME(%ARGUMENT_NAMES, result.data());
+if (size == 1) {
+ %PYARG_0 = %CONVERTTOPYTHON[int](result[0]);
+} else {
+ %PYARG_0 = Shiboken::Numpy::createIntArray1(size, result.constData());
+}
+// @snippet qopenglextrafunctions-glgetintegeri-v
+
// @snippet glgetshadersource
GLsizei bufSize = 4096;
GLsizei length = bufSize - 1;
@@ -210,10 +314,19 @@ if (_i < 0 || _i >= %CPPSELF.count()) {
PyErr_SetString(PyExc_IndexError, "index out of bounds");
return 0;
}
-int item = (*%CPPSELF)[_i];
-return %CONVERTTOPYTHON[int](item);
+QKeyCombination item = (*%CPPSELF)[_i];
+return %CONVERTTOPYTHON[QKeyCombination](item);
// @snippet qkeysequence-getitem
+// @snippet qkeysequence-repr
+auto ObTuple_Type = reinterpret_cast<PyObject *>(&PyTuple_Type);
+auto ObSelf_Type = reinterpret_cast<PyObject *>(Py_TYPE(%PYSELF));
+Shiboken::AutoDecRef surrogate(PyObject_CallFunctionObjArgs(ObTuple_Type, %PYSELF, nullptr));
+Shiboken::AutoDecRef argstr(PyObject_Repr(surrogate));
+Shiboken::AutoDecRef name(PyObject_GetAttrString(ObSelf_Type, "__name__"));
+return PyUnicode_Concat(name, argstr);
+// @snippet qkeysequence-repr
+
// @snippet qpicture-data
%PYARG_0 = Shiboken::Buffer::newObject(%CPPSELF.data(), %CPPSELF.size());
// @snippet qpicture-data
@@ -235,7 +348,7 @@ if (doc) {
// @snippet qtextblock-userdata
// @snippet qpolygon-reduce
-const Py_ssize_t count = %CPPSELF.count();
+const Py_ssize_t count = %CPPSELF.size();
PyObject *points = PyList_New(count);
for (Py_ssize_t i = 0; i < count; ++i){
int x, y;
@@ -255,6 +368,21 @@ for (Py_ssize_t i = 0; i < count; ++i){
%0 = new %TYPE(QPixmap::fromImage(%1));
// @snippet qpixmap
+// @snippet qicon-addpixmap
+const auto path = PySide::pyPathToQString(%PYARG_1);
+%CPPSELF->addPixmap(path);
+// @snippet qicon-addpixmap
+
+// @snippet qclipboard-setpixmap
+const auto path = PySide::pyPathToQString(%PYARG_1);
+%CPPSELF->setPixmap(QPixmap(path));
+// @snippet qclipboard-setpixmap
+
+// @snippet qclipboard-setimage
+const auto path = PySide::pyPathToQString(%PYARG_1);
+%CPPSELF->setImage(QImage(path));
+// @snippet qclipboard-setimage
+
// @snippet qimage-decref-image-data
static void imageDecrefDataHandler(void *data)
{
@@ -572,6 +700,15 @@ const auto points = PySide::Numpy::xyDataToQPointFList(%PYARG_1, %PYARG_2);
%CPPSELF.%FUNCTION_NAME(%1.constData(), %1.size(), %2);
// @snippet qpainter-drawpolygon
+// @snippet qpainter-enter
+Py_INCREF(%PYSELF);
+pyResult = %PYSELF;
+// @snippet qpainter-enter
+
+// @snippet qpainter-exit
+%CPPSELF.end();
+// @snippet qpainter-exit
+
// @snippet qmatrix4x4
// PYSIDE-795: All PySequences can be made iterable with PySequence_Fast.
Shiboken::AutoDecRef seq(PySequence_Fast(%PYARG_1, "Can't turn into sequence"));
@@ -640,12 +777,51 @@ if (!PyTuple_SetItem(empty, 0, PyList_New(0))) {
}
// @snippet qguiapplication-2
+// @snippet qguiapplication-setoverridecursor
+auto *cppResult = new QtGuiHelper::QOverrideCursorGuard();
+%PYARG_0 = %CONVERTTOPYTHON[QtGuiHelper::QOverrideCursorGuard*](cppResult);
+Shiboken::Object::getOwnership(%PYARG_0); // Ensure the guard is removed
+// @snippet qguiapplication-setoverridecursor
+
+// @snippet qguiapplication-nativeInterface
+bool hasNativeApp = false;
+#if QT_CONFIG(xcb)
+if (auto *x11App = %CPPSELF.nativeInterface<QNativeInterface::QX11Application>()) {
+ hasNativeApp = true;
+ %PYARG_0 = %CONVERTTOPYTHON[QNativeInterface::QX11Application*](x11App);
+}
+#endif
+if (!hasNativeApp) {
+ Py_INCREF(Py_None);
+ %PYARG_0 = Py_None;
+}
+// @snippet qguiapplication-nativeInterface
+
// @snippet qscreen-grabWindow
WId id = %1;
%RETURN_TYPE retval = %CPPSELF.%FUNCTION_NAME(id, %2, %3, %4, %5);
%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](retval);
// @snippet qscreen-grabWindow
+// @snippet qscreen-nativeInterface
+bool hasNativeScreen = false;
+#ifdef Q_OS_WIN
+if (auto *winScreen = %CPPSELF.nativeInterface<QNativeInterface::QWindowsScreen>()) {
+ hasNativeScreen = true;
+ %PYARG_0 = %CONVERTTOPYTHON[QNativeInterface::QWindowsScreen*](winScreen);
+}
+#endif
+if (!hasNativeScreen) {
+ Py_INCREF(Py_None);
+ %PYARG_0 = Py_None;
+}
+// @snippet qscreen-nativeInterface
+
+// @snippet qx11application-resource-ptr
+ auto *resource = %CPPSELF.%FUNCTION_NAME();
+%PYARG_0 = PyLong_FromVoidPtr(resource);
+// @snippet qx11application-resource-ptr
+
// @snippet qwindow-fromWinId
WId id = %1;
%RETURN_TYPE retval = %CPPSELF.%FUNCTION_NAME(id);
@@ -713,6 +889,49 @@ else
%PYARG_0 = %CONVERTTOPYTHON[int](cppResult);
// @snippet qdrag-exec-arg2
+// @snippet qquaternion-getaxisandangle-vector3d-float
+QVector3D outVec{};
+float angle{};
+%CPPSELF.%FUNCTION_NAME(&outVec, &angle);
+%PYARG_0 = PyTuple_New(2);
+PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[QVector3D](outVec));
+PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[float](angle));
+// @snippet qquaternion-getaxisandangle-vector3d-float
+
+// @snippet qquaternion-geteulerangles
+float pitch{}, yaw{}, roll{};
+%CPPSELF.%FUNCTION_NAME(&pitch, &yaw, &roll);
+%PYARG_0 = PyTuple_New(3);
+PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[float](pitch));
+PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[float](yaw));
+PyTuple_SET_ITEM(%PYARG_0, 2, %CONVERTTOPYTHON[float](roll));
+// @snippet qquaternion-geteulerangles
+
+// @snippet qregion-len
+return %CPPSELF.rectCount();
+// @snippet qregion-len
+
+// @snippet qregion-getitem
+if (_i < 0 || _i >= %CPPSELF.rectCount()) {
+ PyErr_SetString(PyExc_IndexError, "index out of bounds");
+ return nullptr;
+}
+
+const QRect cppResult = *(%CPPSELF.cbegin() + _i);
+return %CONVERTTOPYTHON[QRect](cppResult);
+// @snippet qregion-getitem
+
+// Some RHI functions take a std::initializer_list<>. Add functions
+// to convert from list.
+
+// @snippet qrhi-initializer-list
+%CPPSELF.%FUNCTION_NAME(%1.cbegin(), %1.cend());
+// @snippet qrhi-initializer-list
+
+// @snippet qrhi-commandbuffer-setvertexinput
+%CPPSELF.%FUNCTION_NAME(%1, %2.size(), %2.constData(), %3, %4, %5);
+// @snippet qrhi-commandbuffer-setvertexinput
+
/*********************************************************************
* CONVERSIONS
********************************************************************/
diff --git a/sources/pyside6/PySide6/glue/qtmultimedia.cpp b/sources/pyside6/PySide6/glue/qtmultimedia.cpp
index ddb63740f..ac8434b97 100644
--- a/sources/pyside6/PySide6/glue/qtmultimedia.cpp
+++ b/sources/pyside6/PySide6/glue/qtmultimedia.cpp
@@ -1,45 +1,28 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
// @snippet qvideoframe-bits
+#include "object.h"
%BEGIN_ALLOW_THREADS
-%RETURN_TYPE %0 = %CPPSELF.%FUNCTION_NAME();
+%RETURN_TYPE %0 = %CPPSELF.%FUNCTION_NAME(%1);
%END_ALLOW_THREADS
-%PYARG_0 = Shiboken::Buffer::newObject(%0, %CPPSELF.bytesPerLine() * %CPPSELF.height(), Shiboken::Buffer::ReadWrite);
+const auto size = %CPPSELF.mappedBytes(%1);
+%PYARG_0 = Shiboken::Buffer::newObject(%0, size, Shiboken::Buffer::ReadWrite);
// @snippet qvideoframe-bits
+
+// @snippet qaudiobuffer-data
+unsigned char *data = %CPPSELF.%FUNCTION_NAME<unsigned char>();
+const auto size = %CPPSELF.byteCount();
+%PYARG_0 = Shiboken::Buffer::newObject(data, size, Shiboken::Buffer::ReadWrite);
+// @snippet qaudiobuffer-data
+
+// @snippet qaudiobuffer-const-data
+const unsigned char *data = %CPPSELF.%FUNCTION_NAME<unsigned char>();
+const auto size = %CPPSELF.byteCount();
+%PYARG_0 = Shiboken::Buffer::newObject(data, size);
+// @snippet qaudiobuffer-const-data
+
+// @snippet qtaudio-namespace-compatibility-alias
+Py_INCREF(pyType);
+PyModule_AddObject(module, "QtAudio", reinterpret_cast<PyObject *>(pyType));
+// @snippet qtaudio-namespace-compatibility-alias
diff --git a/sources/pyside6/PySide6/glue/qtnetwork.cpp b/sources/pyside6/PySide6/glue/qtnetwork.cpp
index 277dd6d7c..f635f4671 100644
--- a/sources/pyside6/PySide6/glue/qtnetwork.cpp
+++ b/sources/pyside6/PySide6/glue/qtnetwork.cpp
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
// @snippet qudpsocket-readdatagram
Shiboken::AutoArrayPointer<char> data(%ARGUMENT_NAMES);
@@ -51,20 +15,28 @@ PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[QHostAddress](ha));
PyTuple_SET_ITEM(%PYARG_0, 2, %CONVERTTOPYTHON[quint16](port));
// @snippet qudpsocket-readdatagram
-// @snippet qhostinfo-lookuphost-callable
-auto *callable = %PYARG_2;
-auto cppCallback = [callable](const QHostInfo &hostInfo)
+// @snippet qhostinfo-lookuphost-functor
+struct QHostInfoFunctor : public Shiboken::PyObjectHolder
+{
+public:
+ using Shiboken::PyObjectHolder::PyObjectHolder;
+
+ void operator()(const QHostInfo &hostInfo);
+};
+
+void QHostInfoFunctor::operator()(const QHostInfo &hostInfo)
{
Shiboken::GilState state;
Shiboken::AutoDecRef arglist(PyTuple_New(1));
auto *pyHostInfo = %CONVERTTOPYTHON[QHostInfo](hostInfo);
PyTuple_SET_ITEM(arglist.object(), 0, pyHostInfo);
- Shiboken::AutoDecRef ret(PyObject_CallObject(callable, arglist));
- Py_DECREF(callable);
-};
+ Shiboken::AutoDecRef ret(PyObject_CallObject(object(), arglist));
+ release(); // single shot
+}
+// @snippet qhostinfo-lookuphost-functor
-Py_INCREF(callable);
-%CPPSELF.%FUNCTION_NAME(%1, cppCallback);
+// @snippet qhostinfo-lookuphost-callable
+%CPPSELF.%FUNCTION_NAME(%1, QHostInfoFunctor(%PYARG_2));
// @snippet qhostinfo-lookuphost-callable
// @snippet qipv6address-len
@@ -94,3 +66,65 @@ quint8 item = %CONVERTTOCPP[quint8](_value);
%CPPSELF.c[_i] = item;
return 0;
// @snippet qipv6address-setitem
+
+// @snippet qrestaccessmanager-functor
+class QRestFunctor
+{
+public:
+ explicit QRestFunctor(PyObject *callable) noexcept : m_callable(callable)
+ {
+ Py_INCREF(callable);
+ }
+
+ void operator()(QRestReply &restReply);
+
+private:
+ PyObject *m_callable;
+};
+
+void QRestFunctor::operator()(QRestReply &restReply)
+{
+ Q_ASSERT(m_callable);
+ Shiboken::GilState state;
+ Shiboken::AutoDecRef arglist(PyTuple_New(1));
+ auto *restReplyPtr = &restReply;
+ auto *pyRestReply = %CONVERTTOPYTHON[QRestReply*](restReplyPtr);
+ PyTuple_SET_ITEM(arglist.object(), 0, pyRestReply);
+ Shiboken::AutoDecRef ret(PyObject_CallObject(m_callable, arglist));
+ Py_DECREF(m_callable);
+ m_callable = nullptr;
+}
+// @snippet qrestaccessmanager-functor
+
+// @snippet qrestaccessmanager-callback
+auto *networkReply = %CPPSELF.%FUNCTION_NAME(%1, %2, QRestFunctor(%PYARG_3));
+%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](networkReply);
+// @snippet qrestaccessmanager-callback
+
+// @snippet qrestaccessmanager-data-callback
+auto *networkReply = %CPPSELF.%FUNCTION_NAME(%1, %2, %3, QRestFunctor(%PYARG_4));
+%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](networkReply);
+// @snippet qrestaccessmanager-data-callback
+
+// @snippet qrestaccessmanager-method-data-callback
+auto *networkReply = %CPPSELF.%FUNCTION_NAME(%1, %2, %3, %4, QRestFunctor(%PYARG_5));
+%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](networkReply);
+// @snippet qrestaccessmanager-method-data-callback
+
+// @snippet qrestreply-readjson
+QJsonParseError jsonParseError;
+std::optional<QJsonDocument> documentOptional = %CPPSELF.%FUNCTION_NAME(&jsonParseError);
+
+PyObject *pyDocument{};
+if (documentOptional.has_value()) {
+ const auto &document = documentOptional.value();
+ pyDocument = %CONVERTTOPYTHON[QJsonDocument](document);
+} else {
+ pyDocument = Py_None;
+ Py_INCREF(Py_None);
+}
+
+%PYARG_0 = PyTuple_New(2);
+PyTuple_SetItem(%PYARG_0, 0, pyDocument);
+PyTuple_SetItem(%PYARG_0, 1, %CONVERTTOPYTHON[QJsonParseError](jsonParseError));
+// @snippet qrestreply-readjson
diff --git a/sources/pyside6/PySide6/glue/qtnetworkauth.cpp b/sources/pyside6/PySide6/glue/qtnetworkauth.cpp
new file mode 100644
index 000000000..7877a8dd5
--- /dev/null
+++ b/sources/pyside6/PySide6/glue/qtnetworkauth.cpp
@@ -0,0 +1,44 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+// @snippet qabstractoauth-lookuphost-functor
+struct QAbstractOAuthModifyFunctor : public Shiboken::PyObjectHolder
+{
+public:
+ using Shiboken::PyObjectHolder::PyObjectHolder;
+
+ void operator()(QAbstractOAuth::Stage stage, QMultiMap<QString, QVariant>* dictPointer);
+};
+
+void QAbstractOAuthModifyFunctor::operator()(QAbstractOAuth::Stage stage,
+ QMultiMap<QString, QVariant>* dictPointer)
+{
+ auto *callable = object();
+ if (!PyCallable_Check(callable)) {
+ qWarning("Argument 1 of setModifyParametersFunction() must be a callable.");
+ return;
+ }
+ Shiboken::GilState state;
+ QMultiMap<QString, QVariant> dict = *dictPointer;
+ Shiboken::AutoDecRef arglist(PyTuple_New(2));
+ PyTuple_SET_ITEM(arglist, 0, %CONVERTTOPYTHON[QAbstractOAuth::Stage](stage));
+ PyTuple_SET_ITEM(arglist, 1, %CONVERTTOPYTHON[QMultiMap<QString, QVariant>](dict));
+ Shiboken::AutoDecRef ret(PyObject_CallObject(callable, arglist));
+
+ if (!ret.isNull() && PyDict_Check(ret.object()) != 0) {
+ PyObject *key{};
+ PyObject *value{};
+ Py_ssize_t pos = 0;
+ while (PyDict_Next(ret.object(), &pos, &key, &value)) {
+ QString cppKey = %CONVERTTOCPP[QString](key);
+ QVariant cppValue = %CONVERTTOCPP[QVariant](value);
+ dictPointer->replace(cppKey, cppValue);
+ }
+ }
+}
+// @snippet qabstractoauth-lookuphost-functor
+
+// @snippet qabstractoauth-setmodifyparametersfunction
+%CPPSELF.%FUNCTION_NAME(QAbstractOAuthModifyFunctor(%PYARG_1));
+// @snippet qabstractoauth-setmodifyparametersfunction
+
diff --git a/sources/pyside6/PySide6/glue/qtopengl.cpp b/sources/pyside6/PySide6/glue/qtopengl.cpp
index 9638ec77d..cdfaafb3b 100644
--- a/sources/pyside6/PySide6/glue/qtopengl.cpp
+++ b/sources/pyside6/PySide6/glue/qtopengl.cpp
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
/*********************************************************************
* INJECT CODE
@@ -107,3 +71,19 @@ if (auto *f = dynamic_cast<QOpenGLFunctions_4_5_Core *>(af)) {
}
// @snippet qopenglversionfunctionsfactory-get
+// @snippet glgetvreturnsize_declaration
+int glGetVReturnSize(GLenum pname);
+// @snippet glgetvreturnsize_declaration
+
+// @snippet glgeti-vreturnsize_declaration
+int glGetI_VReturnSize(GLenum pname);
+// @snippet glgeti-vreturnsize_declaration
+
+// @snippet vao-binder-enter
+Py_INCREF(%PYSELF);
+pyResult = %PYSELF;
+// @snippet vao-binder-enter
+
+// @snippet vao-binder-exit
+%CPPSELF.release();
+// @snippet vao-binder-exit
diff --git a/sources/pyside6/PySide6/glue/qtpositioning.cpp b/sources/pyside6/PySide6/glue/qtpositioning.cpp
new file mode 100644
index 000000000..91c331c74
--- /dev/null
+++ b/sources/pyside6/PySide6/glue/qtpositioning.cpp
@@ -0,0 +1,14 @@
+// Copyright (C) 2024 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+/*********************************************************************
+ * INJECT CODE
+ ********************************************************************/
+
+// @snippet darwin_location_permission_plugin
+#ifdef Q_OS_DARWIN
+#include<QtCore/qplugin.h>
+// register the static plugin and setup its metadata
+Q_IMPORT_PLUGIN(QDarwinLocationPermissionPlugin)
+#endif
+// @snippet darwin_location_permission_plugin
diff --git a/sources/pyside6/PySide6/glue/qtprintsupport.cpp b/sources/pyside6/PySide6/glue/qtprintsupport.cpp
index acd8eb4e2..39672c62a 100644
--- a/sources/pyside6/PySide6/glue/qtprintsupport.cpp
+++ b/sources/pyside6/PySide6/glue/qtprintsupport.cpp
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
// @snippet setpagesize
bool out = %CPPSELF.setPageSize(%1);
diff --git a/sources/pyside6/PySide6/glue/qtqml.cpp b/sources/pyside6/PySide6/glue/qtqml.cpp
index 99a1c441a..a56db8de6 100644
--- a/sources/pyside6/PySide6/glue/qtqml.cpp
+++ b/sources/pyside6/PySide6/glue/qtqml.cpp
@@ -1,74 +1,49 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+// @snippet qmlerrror-repr
+const QByteArray message = %CPPSELF.toString().toUtf8();
+%PYARG_0 = Shiboken::String::fromCString(message.constData());
+// @snippet qmlerrror-repr
+
+// @snippet qmlattachedpropertiesobject
+auto *%0 = PySide::Qml::qmlAttachedPropertiesObject(%ARGUMENT_NAMES);
+%PYARG_0 = %CONVERTTOPYTHON[QObject*](%0);
+// @snippet qmlattachedpropertiesobject
// @snippet qmlregistertype
-int %0 = PySide::qmlRegisterType(%ARGUMENT_NAMES);
+int %0 = PySide::Qml::qmlRegisterType(%ARGUMENT_NAMES);
%PYARG_0 = %CONVERTTOPYTHON[int](%0);
// @snippet qmlregistertype
// @snippet qmlregistersingletontype_qobject_callback
-int %0 = PySide::qmlRegisterSingletonType(%ARGUMENT_NAMES, true, true);
+int %0 = PySide::Qml::qmlRegisterSingletonType(%ARGUMENT_NAMES, true, true);
%PYARG_0 = %CONVERTTOPYTHON[int](%0);
// @snippet qmlregistersingletontype_qobject_callback
// @snippet qmlregistersingletontype_qobject_nocallback
-int %0 = PySide::qmlRegisterSingletonType(%ARGUMENT_NAMES, nullptr, true, false);
+int %0 = PySide::Qml::qmlRegisterSingletonType(%ARGUMENT_NAMES, nullptr, true, false);
%PYARG_0 = %CONVERTTOPYTHON[int](%0);
// @snippet qmlregistersingletontype_qobject_nocallback
// @snippet qmlregistersingletontype_qjsvalue
-int %0 = PySide::qmlRegisterSingletonType(nullptr, %ARGUMENT_NAMES, false, true);
+int %0 = PySide::Qml::qmlRegisterSingletonType(nullptr, %ARGUMENT_NAMES, false, true);
%PYARG_0 = %CONVERTTOPYTHON[int](%0);
// @snippet qmlregistersingletontype_qjsvalue
// @snippet qmlregistersingletoninstance
-int %0 = PySide::qmlRegisterSingletonInstance(%ARGUMENT_NAMES);
+int %0 = PySide::Qml::qmlRegisterSingletonInstance(%ARGUMENT_NAMES);
%PYARG_0 = %CONVERTTOPYTHON[int](%0);
// @snippet qmlregistersingletoninstance
// @snippet qmlregisteruncreatabletype
-int %0 = PySide::qmlRegisterType(%ARGUMENT_NAMES, false);
+int %0 = PySide::Qml::qmlRegisterType(%ARGUMENT_NAMES, false);
%PYARG_0 = %CONVERTTOPYTHON[int](%0);
// @snippet qmlregisteruncreatabletype
// @snippet init
-PySide::initQmlSupport(module);
+PySide::Qml::init(module);
+initQtQmlVolatileBool(module);
// @snippet init
// @snippet qjsengine-toscriptvalue
@@ -77,5 +52,39 @@ return %CONVERTTOPYTHON[%RETURN_TYPE](retval);
// @snippet qjsengine-toscriptvalue
// @snippet qmlelement
-%PYARG_0 = PySide::qmlElementMacro(%ARGUMENT_NAMES);
+%PYARG_0 = PySide::Qml::qmlElementMacro(%ARGUMENT_NAMES);
// @snippet qmlelement
+
+// @snippet qmlanonymous
+%PYARG_0 = PySide::Qml::qmlAnonymousMacro(%ARGUMENT_NAMES);
+// @snippet qmlanonymous
+
+// @snippet qmlsingleton
+%PYARG_0 = PySide::Qml::qmlSingletonMacro(%ARGUMENT_NAMES);
+// @snippet qmlsingleton
+
+// @snippet qqmlengine-singletoninstance-qmltypeid
+QJSValue instance = %CPPSELF.singletonInstance<QJSValue>(%1);
+if (instance.isNull()) {
+ Py_INCREF(Py_None);
+ %PYARG_0 = Py_None;
+} else if (instance.isQObject()) {
+ QObject *result = instance.toQObject();
+ %PYARG_0 = %CONVERTTOPYTHON[QObject *](result);
+} else {
+ %PYARG_0 = %CONVERTTOPYTHON[QJSValue](instance);
+}
+// @snippet qqmlengine-singletoninstance-qmltypeid
+
+// @snippet qqmlengine-singletoninstance-typename
+QJSValue instance = %CPPSELF.singletonInstance<QJSValue>(%1, %2);
+if (instance.isNull()) {
+ Py_INCREF(Py_None);
+ %PYARG_0 = Py_None;
+} else if (instance.isQObject()) {
+ QObject *result = instance.toQObject();
+ %PYARG_0 = %CONVERTTOPYTHON[QObject *](result);
+} else {
+ %PYARG_0 = %CONVERTTOPYTHON[QJSValue](instance);
+}
+// @snippet qqmlengine-singletoninstance-typename
diff --git a/sources/pyside6/PySide6/glue/qtquick.cpp b/sources/pyside6/PySide6/glue/qtquick.cpp
index b7c31aff3..060418faf 100644
--- a/sources/pyside6/PySide6/glue/qtquick.cpp
+++ b/sources/pyside6/PySide6/glue/qtquick.cpp
@@ -1,42 +1,27 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
// @snippet qtquick
PySide::initQuickSupport(module);
// @snippet qtquick
+
+// @snippet qsgeometry-vertexdataaspoint2d
+auto *points = %CPPSELF->vertexDataAsPoint2D();
+const Py_ssize_t vertexCount = %CPPSELF->vertexCount();
+%PYARG_0 = PyList_New(vertexCount);
+for (Py_ssize_t i = 0; i < vertexCount; ++i) {
+ QSGGeometry::Point2D p = points[i];
+ PyList_SET_ITEM(%PYARG_0, i, %CONVERTTOPYTHON[QSGGeometry::Point2D](p));
+}
+// @snippet qsgeometry-vertexdataaspoint2d
+
+// @snippet qsgeometry-setvertexdataaspoint2d
+const qsizetype vertexCount = %CPPSELF->vertexCount();
+if (vertexCount != %1.size()) {
+ PyErr_SetString(PyExc_RuntimeError, "size mismatch");
+ return {};
+}
+
+QSGGeometry::Point2D *points = %CPPSELF->vertexDataAsPoint2D();
+std::copy(%1.cbegin(), %1.cend(), points);
+// @snippet qsgeometry-setvertexdataaspoint2d
diff --git a/sources/pyside6/PySide6/glue/qtquicktest.cpp b/sources/pyside6/PySide6/glue/qtquicktest.cpp
new file mode 100644
index 000000000..f41735ddf
--- /dev/null
+++ b/sources/pyside6/PySide6/glue/qtquicktest.cpp
@@ -0,0 +1,50 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+/*********************************************************************
+ * INJECT CODE
+ ********************************************************************/
+
+// @snippet call-quick-test-main
+static int callQuickTestMain(const QString &name, QObject *setup,
+ QStringList argv, QString dir)
+{
+ if (dir.isEmpty())
+ dir = QDir::currentPath();
+ if (argv.isEmpty())
+ argv.append(name);
+
+ std::vector<QByteArray> argvB;
+ std::vector<char *> argvC;
+ const auto argc = argv.size();
+ argvB.reserve(argc);
+ argvC.reserve(argc);
+ for (const auto &arg : argv) {
+ argvB.emplace_back(arg.toUtf8());
+ argvC.push_back(argvB.back().data());
+ }
+
+ return quick_test_main_with_setup(int(argc), argvC.data(),
+ name.toUtf8().constData(),
+ dir.toUtf8().constData(), setup);
+}
+// @snippet call-quick-test-main
+
+// @snippet quick-test-main
+const int exitCode = callQuickTestMain(%1, nullptr, %2, %3);
+%PYARG_0 = %CONVERTTOPYTHON[int](exitCode);
+// @snippet quick-test-main
+
+// @snippet quick-test-main_with_setup
+Shiboken::AutoDecRef pySetupObject(PyObject_CallObject(reinterpret_cast<PyObject *>(%2), nullptr));
+if (pySetupObject.isNull() || PyErr_Occurred() != nullptr)
+ return nullptr;
+
+/// Convenience to convert a PyObject to QObject
+QObject *setupObject = PySide::convertToQObject(pySetupObject.object(), true /* raiseError */);
+if (setupObject == nullptr)
+ return nullptr;
+
+const int exitCode = callQuickTestMain(%1, setupObject, %3, %4);
+%PYARG_0 = %CONVERTTOPYTHON[int](exitCode);
+// @snippet quick-test-main_with_setup
diff --git a/sources/pyside6/PySide6/glue/qtserialbus.cpp b/sources/pyside6/PySide6/glue/qtserialbus.cpp
new file mode 100644
index 000000000..b5b491f49
--- /dev/null
+++ b/sources/pyside6/PySide6/glue/qtserialbus.cpp
@@ -0,0 +1,30 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+/*********************************************************************
+ * INJECT CODE
+ ********************************************************************/
+
+// @snippet qcanbus-available-devices
+QString errorMessage;
+const QList<QCanBusDeviceInfo> result = %CPPSELF.%FUNCTION_NAME(%1, &errorMessage);
+%PYARG_0 = PyTuple_New(2);
+PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[QList<QCanBusDeviceInfo>](result));
+PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[QString](errorMessage));
+// @snippet qcanbus-available-devices
+
+// @snippet qcanbus-createdevice
+PyObject *pyDevice{};
+QString errorMessage;
+if (auto *device = %CPPSELF.%FUNCTION_NAME(%1, %2, &errorMessage)) {
+ pyDevice = %CONVERTTOPYTHON[%RETURN_TYPE](device);
+ // Ownership transferences (target)
+ Shiboken::Object::getOwnership(pyDevice);
+} else {
+ pyDevice = Py_None;
+ Py_INCREF(pyDevice);
+}
+%PYARG_0 = PyTuple_New(2);
+PyTuple_SET_ITEM(%PYARG_0, 0, pyDevice);
+PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[QString](errorMessage));
+// @snippet qcanbus-createdevice
diff --git a/sources/pyside6/PySide6/glue/qtsql.cpp b/sources/pyside6/PySide6/glue/qtsql.cpp
index 34860ab9b..ff0d7a7a4 100644
--- a/sources/pyside6/PySide6/glue/qtsql.cpp
+++ b/sources/pyside6/PySide6/glue/qtsql.cpp
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
// @snippet simple-exec
diff --git a/sources/pyside6/PySide6/glue/qtstatemachine.cpp b/sources/pyside6/PySide6/glue/qtstatemachine.cpp
index 16b096b5d..098200b14 100644
--- a/sources/pyside6/PySide6/glue/qtstatemachine.cpp
+++ b/sources/pyside6/PySide6/glue/qtstatemachine.cpp
@@ -1,48 +1,12 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
/*********************************************************************
* INJECT CODE
********************************************************************/
// @snippet qsignaltransition
-if (PyObject_TypeCheck(%1, PySideSignalInstanceTypeF())) {
+if (PyObject_TypeCheck(%1, PySideSignalInstance_TypeF())) {
auto *signalInstance = reinterpret_cast<PySideSignalInstance *>(%PYARG_1);
PyObject *dataSource = PySide::Signal::getObject(signalInstance);
Shiboken::AutoDecRef obType(PyObject_Type(dataSource));
@@ -75,8 +39,9 @@ if (PySide::SignalManager::registerMetaMethod(%1, signalName.constData(),
// since it refers to a name very tied to the generator implementation.
// Check bug #362 for more information on this
// http://bugs.openbossa.org/show_bug.cgi?id=362
-if (!PyObject_TypeCheck(%1, PySideSignalInstanceTypeF()))
- goto Sbk_%TYPEFunc_%FUNCTION_NAME_TypeError;
+// PYSIDE-2256: The label was removed
+if (!PyObject_TypeCheck(%1, PySideSignalInstance_TypeF()))
+ return Shiboken::returnWrongArguments(args, fullName, errInfo);
PySideSignalInstance *signalInstance = reinterpret_cast<PySideSignalInstance *>(%1);
auto sender = %CONVERTTOCPP[QObject *](PySide::Signal::getObject(signalInstance));
QSignalTransition *%0 = %CPPSELF->%FUNCTION_NAME(sender, PySide::Signal::getSignature(signalInstance),%2);
diff --git a/sources/pyside6/PySide6/glue/qttest.cpp b/sources/pyside6/PySide6/glue/qttest.cpp
index 4fea0a98c..626cc1608 100644
--- a/sources/pyside6/PySide6/glue/qttest.cpp
+++ b/sources/pyside6/PySide6/glue/qttest.cpp
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
/*********************************************************************
* INJECT CODE
diff --git a/sources/pyside6/PySide6/glue/qtuitools.cpp b/sources/pyside6/PySide6/glue/qtuitools.cpp
index 08cb89c46..0f4405944 100644
--- a/sources/pyside6/PySide6/glue/qtuitools.cpp
+++ b/sources/pyside6/PySide6/glue/qtuitools.cpp
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
// @snippet uitools-loadui
/*
* Based on code provided by:
@@ -98,7 +62,7 @@ Q_IMPORT_PLUGIN(PyCustomWidgets);
// @snippet quiloader-registercustomwidget
registerCustomWidget(%PYARG_1);
-%CPPSELF.addPluginPath(""); // force reload widgets
+%CPPSELF.addPluginPath(QString{}); // force reload widgets
// @snippet quiloader-registercustomwidget
// @snippet quiloader-load-1
@@ -123,38 +87,46 @@ char *arg1 = PyBytes_AsString(strObj);
QByteArray uiFileName(arg1);
Py_DECREF(strObj);
-QFile uiFile(uiFileName);
-
-if (!uiFile.exists()) {
- qCritical().noquote() << "File" << uiFileName << "does not exists";
+if (uiFileName.isEmpty()) {
+ qCritical() << "Error converting the UI filename to QByteArray";
Py_RETURN_NONE;
}
-if (uiFileName.isEmpty()) {
- qCritical() << "Error converting the UI filename to QByteArray";
+QFile uiFile(QString::fromUtf8(uiFileName));
+
+if (!uiFile.exists()) {
+ qCritical().noquote() << "File" << uiFileName << "does not exist";
Py_RETURN_NONE;
}
// Use the 'pyside6-uic' wrapper instead of 'uic'
// This approach is better than rely on 'uic' since installing
// the wheels cover this case.
-QString uicBin("pyside6-uic");
+QString uicBin(QStringLiteral("pyside6-uic"));
QStringList uicArgs = {QString::fromUtf8(uiFileName)};
QProcess uicProcess;
uicProcess.start(uicBin, uicArgs);
-if (!uicProcess.waitForFinished()) {
- qCritical() << "Cannot run 'pyside6-uic': " << uicProcess.errorString() << " - "
- << "Exit status " << uicProcess.exitStatus()
- << " (" << uicProcess.exitCode() << ")\n"
- << "Check if 'pyside6-uic' is in PATH";
+if (!uicProcess.waitForStarted()) {
+ qCritical().noquote() << "Cannot run '" << uicBin << "': "
+ << uicProcess.errorString() << " - Check if 'pyside6-uic' is in PATH";
+ Py_RETURN_NONE;
+}
+
+if (!uicProcess.waitForFinished()
+ || uicProcess.exitStatus() != QProcess::NormalExit
+ || uicProcess.exitCode() != 0) {
+ qCritical().noquote() << '\'' << uicBin << "' failed: "
+ << uicProcess.errorString() << " - Exit status " << uicProcess.exitStatus()
+ << " (" << uicProcess.exitCode() << ")\n";
Py_RETURN_NONE;
}
+
QByteArray uiFileContent = uicProcess.readAllStandardOutput();
QByteArray errorOutput = uicProcess.readAllStandardError();
if (!errorOutput.isEmpty()) {
- qCritical().noquote() << errorOutput;
+ qCritical().noquote() << '\'' << uicBin << "' failed: " << errorOutput;
Py_RETURN_NONE;
}
@@ -178,8 +150,8 @@ QXmlStreamReader reader(&uiFile);
while (!reader.atEnd() && baseClassName.isEmpty() && className.isEmpty()) {
auto token = reader.readNext();
if (token == QXmlStreamReader::StartElement && reader.name() == u"widget") {
- baseClassName = reader.attributes().value(QLatin1String("class")).toUtf8();
- className = reader.attributes().value(QLatin1String("name")).toUtf8();
+ baseClassName = reader.attributes().value(QLatin1StringView("class")).toUtf8();
+ className = reader.attributes().value(QLatin1StringView("name")).toUtf8();
}
}
diff --git a/sources/pyside6/PySide6/glue/qtwebenginecore.cpp b/sources/pyside6/PySide6/glue/qtwebenginecore.cpp
new file mode 100644
index 000000000..76a7c6d73
--- /dev/null
+++ b/sources/pyside6/PySide6/glue/qtwebenginecore.cpp
@@ -0,0 +1,64 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+// @snippet qwebenginecookiestore-functor
+struct QWebEngineCookieFilterFunctor : public Shiboken::PyObjectHolder
+{
+ using Shiboken::PyObjectHolder::PyObjectHolder;
+
+ bool operator()(const QWebEngineCookieStore::FilterRequest& filterRequest) const;
+};
+
+bool QWebEngineCookieFilterFunctor::operator()(const QWebEngineCookieStore::FilterRequest &
+ filterRequest) const
+{
+ Shiboken::GilState state;
+ Shiboken::AutoDecRef arglist(PyTuple_New(1));
+ PyTuple_SET_ITEM(arglist, 0,
+ %CONVERTTOPYTHON[QWebEngineCookieStore::FilterRequest](filterRequest));
+ Shiboken::AutoDecRef ret(PyObject_CallObject(object(), arglist));
+ return ret.object() == Py_True;
+}
+// @snippet qwebenginecookiestore-functor
+
+// @snippet qwebenginecookiestore-setcookiefilter
+%CPPSELF.%FUNCTION_NAME(QWebEngineCookieFilterFunctor(%PYARG_1));
+// @snippet qwebenginecookiestore-setcookiefilter
+
+// @snippet qwebengineprofile-functor
+struct QWebEngineNotificationFunctor : public Shiboken::PyObjectHolder
+{
+ using Shiboken::PyObjectHolder::PyObjectHolder;
+
+ void operator()(std::unique_ptr<QWebEngineNotification> webEngineNotification);
+};
+
+void QWebEngineNotificationFunctor::operator()
+ (std::unique_ptr<QWebEngineNotification> webEngineNotification)
+{
+ Shiboken::GilState state;
+ Shiboken::AutoDecRef arglist(PyTuple_New(1));
+ auto *notification = webEngineNotification.release();
+ PyTuple_SET_ITEM(arglist.object(), 0,
+ %CONVERTTOPYTHON[QWebEngineNotification*](notification));
+ Shiboken::AutoDecRef ret(PyObject_CallObject(object(), arglist));
+};
+// @snippet qwebengineprofile-functor
+
+// @snippet qwebengineprofile-setnotificationpresenter
+%CPPSELF.%FUNCTION_NAME(QWebEngineNotificationFunctor(%PYARG_1));
+// @snippet qwebengineprofile-setnotificationpresenter
+
+// @snippet qwebenginepage-javascriptprompt-virtual-redirect
+std::pair<bool, QString> resultPair = javaScriptPromptPyOverride(gil, pyOverride.object(), securityOrigin, msg, defaultValue);
+result->assign(resultPair.second);
+return resultPair.first;
+// @snippet qwebenginepage-javascriptprompt-virtual-redirect
+
+// @snippet qwebenginepage-javascriptprompt-return
+QString str;
+%RETURN_TYPE retval_ = %CPPSELF.%FUNCTION_NAME(%1, %2, %3, &str);
+%PYARG_0 = PyTuple_New(2);
+PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[%RETURN_TYPE](retval_));
+PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[QString](str));
+// @snippet qwebenginepage-javascriptprompt-return
diff --git a/sources/pyside6/PySide6/glue/qtwebenginewidgets.cpp b/sources/pyside6/PySide6/glue/qtwebenginewidgets.cpp
index 967bcbbbe..af15130a4 100644
--- a/sources/pyside6/PySide6/glue/qtwebenginewidgets.cpp
+++ b/sources/pyside6/PySide6/glue/qtwebenginewidgets.cpp
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
// @snippet qwebenginepage-findtext
auto callable = %PYARG_3;
@@ -91,8 +55,8 @@ auto callback = [callable](const QString &text)
PyTuple_SET_ITEM(arglist, 0, %CONVERTTOPYTHON[QString](text));
Shiboken::AutoDecRef ret(PyObject_CallObject(callable, arglist));
Py_DECREF(callable);
-
};
+
Py_INCREF(callable);
%CPPSELF.%FUNCTION_NAME(callback);
// @snippet qwebenginepage-convertto
@@ -131,8 +95,8 @@ auto callback = [callable](const QVariant &result)
// PyTuple_SET_ITEM(arglist, 0, %CONVERTTOPYTHON[bool](found));
Shiboken::AutoDecRef ret(PyObject_CallObject(callable, arglist));
Py_DECREF(callable);
-
};
+
Py_INCREF(callable);
%CPPSELF.%FUNCTION_NAME(%1, %2, callback);
// @snippet qwebenginepage-runjavascript
@@ -150,8 +114,8 @@ auto callback = [callable](const QByteArray &pdf)
PyTuple_SET_ITEM(arglist, 0, %CONVERTTOPYTHON[QByteArray](pdf));
Shiboken::AutoDecRef ret(PyObject_CallObject(callable, arglist));
Py_DECREF(callable);
-
};
+
Py_INCREF(callable);
%CPPSELF.%FUNCTION_NAME(callback, %2);
// @snippet qwebenginepage-printtopdf
diff --git a/sources/pyside6/PySide6/glue/qtwidgets.cpp b/sources/pyside6/PySide6/glue/qtwidgets.cpp
index 802a3c172..1b3e94016 100644
--- a/sources/pyside6/PySide6/glue/qtwidgets.cpp
+++ b/sources/pyside6/PySide6/glue/qtwidgets.cpp
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
/*********************************************************************
* INJECT CODE
@@ -56,7 +20,8 @@ Shiboken::Object::releaseOwnership(%PYARG_0);
// @snippet qgraphicsitem
PyObject *userTypeConstant = PyLong_FromLong(QGraphicsItem::UserType);
-PyDict_SetItemString(Sbk_QGraphicsItem_TypeF()->tp_dict, "UserType", userTypeConstant);
+tpDict.reset(PepType_GetDict(Sbk_QGraphicsItem_TypeF()));
+PyDict_SetItemString(tpDict.object(), "UserType", userTypeConstant);
// @snippet qgraphicsitem
// @snippet qgraphicsitem-scene-return-parenting
@@ -96,18 +61,74 @@ QFormLayout::ItemRole _role;
%CPPSELF->%FUNCTION_NAME(%ARGUMENT_NAMES, &_row, &_role);
%PYARG_0 = PyTuple_New(2);
PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[int](_row));
+// On the C++ side, *rolePtr is not set if row == -1, in which case on
+// the Python side this gets converted to a random value outside the
+// enum range. Fix this by setting _role to a default value here.
+if (_row == -1)
+ _role = QFormLayout::LabelRole;
PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[QFormLayout::ItemRole](_role));
// @snippet qformlayout-fix-args
// @snippet qfiledialog-return
+%BEGIN_ALLOW_THREADS
%RETURN_TYPE retval_ = %CPPSELF.%FUNCTION_NAME(%1, %2, %3, %4, &%5, %6);
+%END_ALLOW_THREADS
%PYARG_0 = PyTuple_New(2);
PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[%RETURN_TYPE](retval_));
-PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[%ARG5_TYPE](%5));
+PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[QString](%5));
// @snippet qfiledialog-return
+// @snippet qwidget-addaction-glue
+static PyObject *connectAction(QAction *action, PyObject *callback)
+{
+ PyObject *pyAct = %CONVERTTOPYTHON[QAction *](action);
+ Shiboken::AutoDecRef result(PyObject_CallMethod(pyAct, "connect", "OsO",
+ pyAct,
+ SIGNAL(triggered()), callback));
+ if (result.isNull()) {
+ Py_DECREF(pyAct);
+ return nullptr;
+ }
+ return pyAct;
+}
+
+static inline PyObject *addActionWithPyObject(QWidget *self, const QString &text,
+ PyObject *callback)
+{
+ QAction *act = self->addAction(text);
+ return connectAction(act, callback);
+}
+
+static inline PyObject *addActionWithPyObject(QWidget *self, const QIcon &icon, const QString &text,
+ PyObject *callback)
+{
+ auto *act = self->addAction(icon, text);
+ return connectAction(act, callback);
+}
+
+static inline PyObject *addActionWithPyObject(QWidget *self, const QString &text,
+ const QKeySequence &shortcut,
+ PyObject *callback)
+{
+ QAction *act = self->addAction(text, shortcut);
+ return connectAction(act, callback);
+}
+
+static inline PyObject *addActionWithPyObject(QWidget *self, const QIcon &icon,
+ const QString &text,
+ const QKeySequence &shortcut,
+ PyObject *callback)
+{
+ QAction *act = self->addAction(icon, text, shortcut);
+ return connectAction(act, callback);
+}
+// @snippet qwidget-addaction-glue
+
+// FIXME PYSIDE7: Remove in favor of widgets methods
// @snippet qmenu-glue
-inline PyObject *addActionWithPyObject(QMenu *self, const QIcon &icon, const QString &text, PyObject *callback, const QKeySequence &shortcut)
+inline PyObject *addMenuActionWithPyObject(QMenu *self, const QIcon &icon,
+ const QString &text, PyObject *callback,
+ const QKeySequence &shortcut)
{
QAction *act = self->addAction(text);
@@ -132,18 +153,35 @@ inline PyObject *addActionWithPyObject(QMenu *self, const QIcon &icon, const QSt
}
// @snippet qmenu-glue
+// addAction(QString,PyObject*,QKeySequence) FIXME PYSIDE7 deprecated
// @snippet qmenu-addaction-1
-%PYARG_0 = addActionWithPyObject(%CPPSELF, QIcon(), %1, %2, %3);
+%PYARG_0 = addMenuActionWithPyObject(%CPPSELF, QIcon(), %1, %2, %3);
// @snippet qmenu-addaction-1
+// addAction(QIcon,QString,PyObject*,QKeySequence) FIXME PYSIDE7 deprecated
// @snippet qmenu-addaction-2
-%PYARG_0 = addActionWithPyObject(%CPPSELF, %1, %2, %3, %4);
+%PYARG_0 = addMenuActionWithPyObject(%CPPSELF, %1, %2, %3, %4);
// @snippet qmenu-addaction-2
// @snippet qmenu-addaction-3
%CPPSELF.addAction(%1);
// @snippet qmenu-addaction-3
+// addAction(QString,PyObject*)
+// @snippet qwidget-addaction-2
+%PYARG_0 = addActionWithPyObject(%CPPSELF, %1, %2);
+// @snippet qwidget-addaction-2
+
+// addAction(QString,QKeySequence,PyObject*) or addAction(QIcon,QString,PyObject*)
+// @snippet qwidget-addaction-3
+%PYARG_0 = addActionWithPyObject(%CPPSELF, %1, %2, %3);
+// @snippet qwidget-addaction-3
+
+// addAction(QIcon,QString,QKeySequence,PyObject*)
+// @snippet qwidget-addaction-4
+%PYARG_0 = addActionWithPyObject(%CPPSELF, %1, %2, %3, %4);
+// @snippet qwidget-addaction-4
+
// @snippet qmenu-clear
Shiboken::BindingManager &bm = Shiboken::BindingManager::instance();
const auto &actions = %CPPSELF.actions();
@@ -158,30 +196,6 @@ for (auto *act : actions) {
}
// @snippet qmenu-clear
-// @snippet qmenubar-glue
-inline PyObject *
-addActionWithPyObject(QMenuBar *self, const QString &text, PyObject *callback)
-{
- QAction *act = self->addAction(text);
-
- self->addAction(act);
-
- PyObject *pyAct = %CONVERTTOPYTHON[QAction *](act);
- PyObject *result = PyObject_CallMethod(pyAct, "connect", "OsO",
- pyAct,
- SIGNAL(triggered(bool)), callback);
-
- if (result == nullptr || result == Py_False) {
- if (result)
- Py_DECREF(result);
- Py_DECREF(pyAct);
- return nullptr;
- }
-
- return pyAct;
-}
-// @snippet qmenubar-glue
-
// @snippet qmenubar-clear
const auto &actions = %CPPSELF.actions();
for (auto *act : actions) {
@@ -191,14 +205,6 @@ for (auto *act : actions) {
}
// @snippet qmenubar-clear
-// @snippet qmenubar-addaction-1
-%PYARG_0 = addActionWithPyObject(%CPPSELF, %1, %2);
-// @snippet qmenubar-addaction-1
-
-// @snippet qmenubar-addaction-2
-%CPPSELF.addAction(%1);
-// @snippet qmenubar-addaction-2
-
// @snippet qtoolbox-removeitem
QWidget *_widget = %CPPSELF.widget(%1);
if (_widget) {
@@ -208,11 +214,24 @@ if (_widget) {
// @snippet qtoolbox-removeitem
// @snippet qlayout-help-functions
+#ifndef _QLAYOUT_HELP_FUNCTIONS_
+#define _QLAYOUT_HELP_FUNCTIONS_ // Guard for jumbo builds
+
+static const char msgInvalidParameterAdd[] =
+ "Invalid parameter None passed to addLayoutOwnership().";
+static const char msgInvalidParameterRemoval[] =
+ "Invalid parameter None passed to removeLayoutOwnership().";
+
void addLayoutOwnership(QLayout *layout, QLayoutItem *item);
void removeLayoutOwnership(QLayout *layout, QWidget *widget);
inline void addLayoutOwnership(QLayout *layout, QWidget *widget)
{
+ if (layout == nullptr || widget == nullptr) {
+ PyErr_SetString(PyExc_RuntimeError, msgInvalidParameterAdd);
+ return;
+ }
+
//transfer ownership to parent widget
QWidget *lw = layout->parentWidget();
QWidget *pw = widget->parentWidget();
@@ -239,6 +258,11 @@ inline void addLayoutOwnership(QLayout *layout, QWidget *widget)
inline void addLayoutOwnership(QLayout *layout, QLayout *other)
{
+ if (layout == nullptr || other == nullptr) {
+ PyErr_SetString(PyExc_RuntimeError, msgInvalidParameterAdd);
+ return;
+ }
+
//transfer all children widgets from other to layout parent widget
QWidget *parent = layout->parentWidget();
if (!parent) {
@@ -265,8 +289,11 @@ inline void addLayoutOwnership(QLayout *layout, QLayout *other)
inline void addLayoutOwnership(QLayout *layout, QLayoutItem *item)
{
- if (!item)
+
+ if (layout == nullptr || item == nullptr) {
+ PyErr_SetString(PyExc_RuntimeError, msgInvalidParameterAdd);
return;
+ }
if (QWidget *w = item->widget()) {
addLayoutOwnership(layout, w);
@@ -282,6 +309,11 @@ inline void addLayoutOwnership(QLayout *layout, QLayoutItem *item)
static void removeWidgetFromLayout(QLayout *layout, QWidget *widget)
{
+ if (layout == nullptr || widget == nullptr) {
+ PyErr_SetString(PyExc_RuntimeError, msgInvalidParameterRemoval);
+ return;
+ }
+
if (QWidget *parent = widget->parentWidget()) {
//give the ownership to parent
Shiboken::AutoDecRef pyParent(%CONVERTTOPYTHON[QWidget *](parent));
@@ -299,6 +331,11 @@ static void removeWidgetFromLayout(QLayout *layout, QWidget *widget)
inline void removeLayoutOwnership(QLayout *layout, QLayoutItem *item)
{
+ if (layout == nullptr || item == nullptr) {
+ PyErr_SetString(PyExc_RuntimeError, msgInvalidParameterRemoval);
+ return;
+ }
+
if (QWidget *w = item->widget()) {
removeWidgetFromLayout(layout, w);
} else {
@@ -314,8 +351,10 @@ inline void removeLayoutOwnership(QLayout *layout, QLayoutItem *item)
inline void removeLayoutOwnership(QLayout *layout, QWidget *widget)
{
- if (!widget)
+ if (layout == nullptr || widget == nullptr) {
+ PyErr_SetString(PyExc_RuntimeError, msgInvalidParameterRemoval);
return;
+ }
for (int i = 0, i_max = layout->count(); i < i_max; ++i) {
QLayoutItem *item = layout->itemAt(i);
@@ -325,15 +364,17 @@ inline void removeLayoutOwnership(QLayout *layout, QWidget *widget)
removeLayoutOwnership(layout, item);
}
}
+#endif // _QLAYOUT_HELP_FUNCTIONS_
// @snippet qlayout-help-functions
// @snippet qlayout-setalignment
%CPPSELF.setAlignment(%1);
// @snippet qlayout-setalignment
-// @snippet addownership-0
-addLayoutOwnership(%CPPSELF, %0);
-// @snippet addownership-0
+// @snippet addownership-item-at
+if (%0 != nullptr)
+ addLayoutOwnership(%CPPSELF, %0);
+// @snippet addownership-item-at
// @snippet addownership-1
addLayoutOwnership(%CPPSELF, %1);
@@ -380,7 +421,7 @@ Shiboken::BindingManager &bm = Shiboken::BindingManager::instance();
for (auto *item : items) {
SbkObject *obj = bm.retrieveWrapper(item);
if (obj) {
- if (reinterpret_cast<PyObject *>(obj)->ob_refcnt > 1) // If the refcnt is 1 the object will vannish anyway.
+ if (Py_REFCNT(reinterpret_cast<PyObject *>(obj)) > 1) // If the refcnt is 1 the object will vannish anyway.
Shiboken::Object::invalidate(obj);
Shiboken::Object::removeParent(obj);
}
@@ -429,11 +470,14 @@ for (int i = 0, count = %CPPSELF.count(); i < count; ++i) {
// @snippet qlistwidget-clear
// @snippet qwidget-retrieveobjectname
+#ifndef _RETRIEVEOBJECTNAME_
+#define _RETRIEVEOBJECTNAME_ // Guard for jumbo builds
static QByteArray retrieveObjectName(PyObject *obj)
{
Shiboken::AutoDecRef objName(PyObject_Str(obj));
return Shiboken::String::toCString(objName);
}
+#endif
// @snippet qwidget-retrieveobjectname
// @snippet qwidget-glue
@@ -503,15 +547,20 @@ Shiboken::Object::keepReference(reinterpret_cast<SbkObject *>(%PYSELF), "__style
// @snippet qwidget-style
QStyle *myStyle = %CPPSELF->style();
if (myStyle && qApp) {
-%PYARG_0 = %CONVERTTOPYTHON[QStyle *](myStyle);
+ bool keepReference = true;
+ %PYARG_0 = %CONVERTTOPYTHON[QStyle *](myStyle);
QStyle *appStyle = qApp->style();
if (appStyle == myStyle) {
Shiboken::AutoDecRef pyApp(%CONVERTTOPYTHON[QApplication *](qApp));
- Shiboken::Object::setParent(pyApp, %PYARG_0);
- Shiboken::Object::releaseOwnership(%PYARG_0);
- } else {
- Shiboken::Object::keepReference(reinterpret_cast<SbkObject *>(%PYSELF), "__style__", %PYARG_0);
+ // Do not set parentship when qApp is embedded
+ if (Shiboken::Object::wasCreatedByPython(reinterpret_cast<SbkObject *>(pyApp.object()))) {
+ Shiboken::Object::setParent(pyApp, %PYARG_0);
+ Shiboken::Object::releaseOwnership(%PYARG_0);
+ keepReference = false;
+ }
}
+ if (keepReference)
+ Shiboken::Object::keepReference(reinterpret_cast<SbkObject *>(%PYSELF), "__style__", %PYARG_0);
}
// @snippet qwidget-style
@@ -566,27 +615,25 @@ for (int i = 0, count = %CPPSELF.count(); i < count; ++i) {
%CPPSELF.addAction(%1);
// @snippet qlineedit-addaction
-// @snippet qtoolbar-addaction-1
+// addAction(QIcon,QString,const QObject*,const char*,Qt::ConnectionType)
+// @snippet qwidget-addaction-1
QAction *action = %CPPSELF.addAction(%1, %2);
%PYARG_0 = %CONVERTTOPYTHON[QAction *](action);
Shiboken::AutoDecRef result(PyObject_CallMethod(%PYARG_0,
"connect", "OsO",
%PYARG_0, SIGNAL(triggered()), %PYARG_3)
);
-// @snippet qtoolbar-addaction-1
+// @snippet qwidget-addaction-1
-// @snippet qtoolbar-addaction-2
+// addAction(QString,const QObject*,const char*,Qt::ConnectionType)
+// @snippet qwidget-addaction-2
QAction *action = %CPPSELF.addAction(%1);
%PYARG_0 = %CONVERTTOPYTHON[QAction *](action);
Shiboken::AutoDecRef result(PyObject_CallMethod(%PYARG_0,
"connect", "OsO",
%PYARG_0, SIGNAL(triggered()), %PYARG_2)
);
-// @snippet qtoolbar-addaction-2
-
-// @snippet qtoolbar-addaction-3
-%CPPSELF.addAction(%1);
-// @snippet qtoolbar-addaction-3
+// @snippet qwidget-addaction-2
// @snippet qtoolbar-clear
QList<PyObject *> lst;
@@ -609,7 +656,7 @@ for (auto *act : actions) {
}
%CPPSELF.clear();
-for (auto *obj : qAsConst(lst)) {
+for (auto *obj : std::as_const(lst)) {
Shiboken::Object::invalidate(reinterpret_cast<SbkObject *>(obj));
Py_XDECREF(obj);
}
@@ -685,6 +732,85 @@ QAction *cppResult = %CPPSELF.exec(%1, %2, %3, %4);
%PYARG_0 = %CONVERTTOPYTHON[QAction*](cppResult);
// @snippet qmenu-exec-3
+// @snippet qstyleoption-typename
+const char *styleOptionType(const QStyleOption *o)
+{
+ switch (o->type) {
+ case QStyleOption::SO_Default:
+ break;
+ case QStyleOption::SO_FocusRect:
+ return "QStyleOptionFocusRect";
+ case QStyleOption::SO_Button:
+ return "QStyleOptionButton";
+ case QStyleOption::SO_Tab:
+ return "QStyleOptionTab";
+ case QStyleOption::SO_MenuItem:
+ return "QStyleOptionMenuItem";
+ case QStyleOption::SO_Frame:
+ return "QStyleOptionFrame";
+ case QStyleOption::SO_ProgressBar:
+ return "QStyleOptionProgressBar";
+ case QStyleOption::SO_ToolBox:
+ return "QStyleOptionToolBox";
+ case QStyleOption::SO_Header:
+ return "QStyleOptionHeader";
+ case QStyleOption::SO_DockWidget:
+ return "QStyleOptionDockWidget";
+ case QStyleOption::SO_ViewItem:
+ return "QStyleOptionViewItem";
+ case QStyleOption::SO_TabWidgetFrame:
+ return "QStyleOptionTabWidgetFrame";
+ case QStyleOption::SO_TabBarBase:
+ return "QStyleOptionTabBarBase";
+ case QStyleOption::SO_RubberBand:
+ return "QStyleOptionRubberBand";
+ case QStyleOption::SO_ToolBar:
+ return "QStyleOptionToolBar";
+ case QStyleOption::SO_GraphicsItem:
+ return "QStyleOptionGraphicsItem";
+ case QStyleOption::SO_Slider:
+ return "QStyleOptionSlider";
+ case QStyleOption::SO_SpinBox:
+ return "QStyleOptionSpinBox";
+ case QStyleOption::SO_ToolButton:
+ return "QStyleOptionToolButton";
+ case QStyleOption::SO_ComboBox:
+ return "QStyleOptionComboBox";
+ case QStyleOption::SO_TitleBar:
+ return "QStyleOptionTitleBar";
+ case QStyleOption::SO_GroupBox:
+ return "QStyleOptionGroupBox";
+ case QStyleOption::SO_SizeGrip:
+ return "QStyleOptionSizeGrip";
+ default:
+ break;
+ }
+ return "QStyleOption";
+}
+// @snippet qstyleoption-typename
+
+// @snippet qwizardpage-registerfield
+auto *signalInst = reinterpret_cast<PySideSignalInstance *>(%PYARG_4);
+const auto data = PySide::Signal::getEmitterData(signalInst);
+if (data.methodIndex == -1) {
+ PyErr_SetString(PyExc_RuntimeError, "QWizardPage::registerField(): Unable to retrieve signal emitter.");
+ return nullptr;
+}
+const auto method = data.emitter->metaObject()->method(data.methodIndex);
+const QByteArray signature = QByteArrayLiteral("2") + method.methodSignature();
+%BEGIN_ALLOW_THREADS
+%CPPSELF.%FUNCTION_NAME(%1, %2, %3, signature.constData());
+%END_ALLOW_THREADS
+// @snippet qwizardpage-registerfield
+
+// The constructor heuristics generate setting a parent-child relationship
+// when creating a QDialog with parent. This causes the dialog to leak
+// when it synchronous exec() is used instead of asynchronous show().
+// In that case, remove the parent-child relationship.
+// @snippet qdialog-exec-remove-parent-relation
+Shiboken::Object::removeParent(reinterpret_cast<SbkObject *>(%PYSELF));
+// @snippet qdialog-exec-remove-parent-relation
+
/*********************************************************************
* CONVERSIONS
********************************************************************/
diff --git a/sources/pyside6/PySide6/glue/qtxml.cpp b/sources/pyside6/PySide6/glue/qtxml.cpp
index 264bf4074..120579927 100644
--- a/sources/pyside6/PySide6/glue/qtxml.cpp
+++ b/sources/pyside6/PySide6/glue/qtxml.cpp
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
// @snippet qdomdocument-setcontent
QString _errorMsg_;
diff --git a/sources/pyside6/PySide6/licensecomment.txt b/sources/pyside6/PySide6/licensecomment.txt
index 9d271ba2a..d82c85d88 100644
--- a/sources/pyside6/PySide6/licensecomment.txt
+++ b/sources/pyside6/PySide6/licensecomment.txt
@@ -1,38 +1,2 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
diff --git a/sources/pyside6/PySide6/pysideqtesttouch.h b/sources/pyside6/PySide6/pysideqtesttouch.h
index 935ab59d6..4b4a4a9b5 100644
--- a/sources/pyside6/PySide6/pysideqtesttouch.h
+++ b/sources/pyside6/PySide6/pysideqtesttouch.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef PYSIDEQTESTTOUCH_H
#define PYSIDEQTESTTOUCH_H
diff --git a/sources/pyside6/PySide6/pysidewtypes.h b/sources/pyside6/PySide6/pysidewtypes.h
index e14727427..f853949ac 100644
--- a/sources/pyside6/PySide6/pysidewtypes.h
+++ b/sources/pyside6/PySide6/pysidewtypes.h
@@ -1,51 +1,15 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef __PYSIDEWTYPES__
#define __PYSIDEWTYPES__
-typedef struct HWND__ *HWND;
-typedef unsigned UINT;
-typedef long LONG;
-typedef unsigned long DWORD;
-typedef UINT WPARAM;
-typedef LONG LPARAM;
+using HWND = struct HWND__ *;
+using UINT = unsigned;
+using LONG = long;
+using DWORD = unsigned long;
+using WPARAM = UINT;
+using LPARAM = LONG;
struct POINT
{
diff --git a/sources/pyside6/PySide6/qiopipe.h b/sources/pyside6/PySide6/qiopipe.h
new file mode 100644
index 000000000..6a325f184
--- /dev/null
+++ b/sources/pyside6/PySide6/qiopipe.h
@@ -0,0 +1,36 @@
+// Copyright (C) 2024 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef QIOPIPE_H
+#define QIOPIPE_H
+
+#include <QtCore/qiodevicebase.h>
+#include <QtCore/qobject.h>
+
+QT_BEGIN_NAMESPACE
+
+class QIODevice;
+
+namespace QtCoreHelper
+{
+
+class QIOPipePrivate;
+class QIOPipe : public QObject
+{
+ Q_OBJECT
+ Q_DECLARE_PRIVATE(QIOPipe)
+
+public:
+ QIOPipe(QObject *parent = nullptr);
+
+ bool open(QIODeviceBase::OpenMode mode);
+
+ QIODevice *end1() const;
+ QIODevice *end2() const;
+};
+
+} // namespace QtCoreHelper
+
+QT_END_NAMESPACE
+
+#endif // QIOPIPE_H
diff --git a/sources/pyside6/PySide6/qpydesignerextensions.h b/sources/pyside6/PySide6/qpydesignerextensions.h
index ce20fffac..871fa8284 100644
--- a/sources/pyside6/PySide6/qpydesignerextensions.h
+++ b/sources/pyside6/PySide6/qpydesignerextensions.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef QPYDESIGNEREXTENSIONS_H
#define QPYDESIGNEREXTENSIONS_H
@@ -57,6 +21,10 @@ Q_DECLARE_INTERFACE(QDesignerTaskMenuExtension, "org.qt-project.Qt.Designer.Task
Q_DECLARE_INTERFACE(QDesignerCustomWidgetCollectionInterface, "org.qt-project.Qt.QDesignerCustomWidgetCollectionInterface")
#endif
+struct _object; // PyObject
+
+QT_BEGIN_NAMESPACE
+
// Extension implementations need to inherit QObject which cannot be done in Python.
// Provide a base class (cf QPyTextObject).
@@ -92,8 +60,6 @@ public:
explicit QPyDesignerTaskMenuExtension(QObject *parent = nullptr) : QObject(parent) {}
};
-struct _object; // PyObject
-
class QPyDesignerCustomWidgetCollection : public QDesignerCustomWidgetCollectionInterface
{
public:
@@ -113,4 +79,6 @@ private:
QList<QDesignerCustomWidgetInterface *> m_customWidgets;
};
+QT_END_NAMESPACE
+
#endif // QPYDESIGNEREXTENSIONS_H
diff --git a/sources/pyside6/PySide6/qpyqmlparserstatus.h b/sources/pyside6/PySide6/qpyqmlparserstatus.h
new file mode 100644
index 000000000..24dcdda75
--- /dev/null
+++ b/sources/pyside6/PySide6/qpyqmlparserstatus.h
@@ -0,0 +1,28 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef QPYQMLPARSERSTATUS_H
+#define QPYQMLPARSERSTATUS_H
+
+#include <QtCore/QObject>
+#include <QtQml/QQmlParserStatus>
+
+#ifdef Q_MOC_RUN
+Q_DECLARE_INTERFACE(QQmlParserStatus, "org.qt-project.Qt.QQmlParserStatus")
+#endif
+
+QT_BEGIN_NAMESPACE
+
+// Inherit from QObject such that QQmlParserStatus can be found at
+// a fixed offset (RegisterType::parserStatusCast).
+class QPyQmlParserStatus : public QObject, public QQmlParserStatus
+{
+ Q_OBJECT
+ Q_INTERFACES(QQmlParserStatus)
+public:
+ explicit QPyQmlParserStatus(QObject *parent = nullptr) : QObject(parent) {}
+};
+
+QT_END_NAMESPACE
+
+#endif // QPYQMLPARSERSTATUS_H
diff --git a/sources/pyside6/PySide6/qpyqmlpropertyvaluesource.h b/sources/pyside6/PySide6/qpyqmlpropertyvaluesource.h
new file mode 100644
index 000000000..0b6a0b95c
--- /dev/null
+++ b/sources/pyside6/PySide6/qpyqmlpropertyvaluesource.h
@@ -0,0 +1,27 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef QPYQMLPROPERTYVALUESOURCE_H
+#define QPYQMLPROPERTYVALUESOURCE_H
+
+#include <QtQml/QQmlPropertyValueSource>
+
+#ifdef Q_MOC_RUN
+Q_DECLARE_INTERFACE(QQmlPropertyValueSource, "org.qt-project.Qt.QQmlPropertyValueSource")
+#endif
+
+QT_BEGIN_NAMESPACE
+
+// Inherit from QObject such that QQmlPropertyValueSource can be found at
+// a fixed offset (RegisterType::valueSourceCast).
+class QPyQmlPropertyValueSource : public QObject, public QQmlPropertyValueSource
+{
+ Q_OBJECT
+ Q_INTERFACES(QQmlPropertyValueSource)
+public:
+ explicit QPyQmlPropertyValueSource(QObject *parent = nullptr) : QObject(parent) {}
+};
+
+QT_END_NAMESPACE
+
+#endif // QPYQMLPROPERTYVALUESOURCE_H
diff --git a/sources/pyside6/PySide6/qpytextobject.cpp b/sources/pyside6/PySide6/qpytextobject.cpp
index 9bab45e30..501db2af9 100644
--- a/sources/pyside6/PySide6/qpytextobject.cpp
+++ b/sources/pyside6/PySide6/qpytextobject.cpp
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include "qpytextobject.h"
diff --git a/sources/pyside6/PySide6/qpytextobject.h b/sources/pyside6/PySide6/qpytextobject.h
index ee07a53dc..45bb0bd52 100644
--- a/sources/pyside6/PySide6/qpytextobject.h
+++ b/sources/pyside6/PySide6/qpytextobject.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef QPYTEXTOBJECT
#define QPYTEXTOBJECT
@@ -49,6 +13,7 @@
Q_DECLARE_INTERFACE(QTextObjectInterface, "org.qt-project.Qt.QTextObjectInterface")
#endif
+QT_BEGIN_NAMESPACE
class QPyTextObject : public QObject, public QTextObjectInterface
{
Q_OBJECT
@@ -56,6 +21,8 @@ class QPyTextObject : public QObject, public QTextObjectInterface
public:
QPyTextObject(QObject *parent = nullptr) : QObject(parent) {}
};
+QT_END_NAMESPACE
+
#endif
diff --git a/sources/pyside6/PySide6/qtcorehelper.h b/sources/pyside6/PySide6/qtcorehelper.h
index 22b87fc0e..589d0b295 100644
--- a/sources/pyside6/PySide6/qtcorehelper.h
+++ b/sources/pyside6/PySide6/qtcorehelper.h
@@ -1,51 +1,20 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef QTCOREHELPER_H
#define QTCOREHELPER_H
#include <QtCore/qmutex.h>
+#include <QtCore/qobjectdefs.h>
+
+#include <memory>
+
+QT_BEGIN_NAMESPACE
namespace QtCoreHelper {
- using MutexLocker = QMutexLocker<QMutex>;
- using RecursiveMutexLocker = QMutexLocker<QRecursiveMutex>;
+ using MutexLocker = QT_PREPEND_NAMESPACE(QMutexLocker<QMutex>);
+ using RecursiveMutexLocker = QT_PREPEND_NAMESPACE(QMutexLocker<QRecursiveMutex>);
// ::QMutexLocker is a template with the QMutex class as parameter which can
// only be represented by different type names in Python. Provide a common API.
@@ -101,6 +70,53 @@ namespace QtCoreHelper {
RecursiveMutexLocker *m_recursiveMutexLocker = nullptr;
};
+ class QGenericArgumentData;
+
+ // Return value of function Q_ARG() to be passed to QMetaObject::invokeMethod.
+ // Frees the data if it is an allocated, primitive type.
+ class QGenericArgumentHolder {
+ public:
+ QGenericArgumentHolder();
+ explicit QGenericArgumentHolder(const QMetaType &type, const void *aData);
+ QGenericArgumentHolder(const QGenericArgumentHolder &);
+ QGenericArgumentHolder(QGenericArgumentHolder &&);
+ QGenericArgumentHolder &operator=(const QGenericArgumentHolder &);
+ QGenericArgumentHolder &operator=(QGenericArgumentHolder &&);
+ ~QGenericArgumentHolder();
+
+ QGenericArgument toGenericArgument() const;
+
+ QMetaType metaType() const;
+ const void *data() const;
+
+ private:
+ std::shared_ptr<QGenericArgumentData> d;
+ };
+
+ class QGenericReturnArgumentData;
+
+ // Return value of function Q_RETURN_ARG() to be passed to QMetaObject::invokeMethod.
+ // Frees the data if it is an allocated, primitive type.
+ class QGenericReturnArgumentHolder {
+ public:
+ explicit QGenericReturnArgumentHolder(const QMetaType &type, void *aData);
+ QGenericReturnArgumentHolder(const QGenericReturnArgumentHolder &);
+ QGenericReturnArgumentHolder(QGenericReturnArgumentHolder &&);
+ QGenericReturnArgumentHolder &operator=(const QGenericReturnArgumentHolder &);
+ QGenericReturnArgumentHolder &operator=(QGenericReturnArgumentHolder &&);
+ ~QGenericReturnArgumentHolder();
+
+ QGenericReturnArgument toGenericReturnArgument() const;
+
+ QMetaType metaType() const;
+ const void *data() const;
+
+ private:
+ std::shared_ptr<QGenericReturnArgumentData> d;
+ };
+
} // namespace QtCoreHelper
+QT_END_NAMESPACE
+
#endif // QTCOREHELPER_H
diff --git a/sources/pyside6/PySide6/qtdatavisualization_helper.h b/sources/pyside6/PySide6/qtdatavisualization_helper.h
new file mode 100644
index 000000000..6884900ee
--- /dev/null
+++ b/sources/pyside6/PySide6/qtdatavisualization_helper.h
@@ -0,0 +1,19 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef QTDATAVISUALIZATION_HELPER_H
+#define QTDATAVISUALIZATION_HELPER_H
+
+#include <sbkpython.h>
+
+#include <QtDataVisualization/QSurfaceDataProxy>
+#include <QtCore/QList>
+
+namespace QtDataVisualizationHelper {
+
+QSurfaceDataArray *surfaceDataFromNp(double x, double deltaX, double z, double deltaZ,
+ PyObject *data);
+
+} // namespace QtDataVisualizationHelper
+
+#endif // QTDATAVISUALIZATION_HELPER_H
diff --git a/sources/pyside6/PySide6/qtdbushelper.h b/sources/pyside6/PySide6/qtdbushelper.h
index 730b0a9d3..7389ad815 100644
--- a/sources/pyside6/PySide6/qtdbushelper.h
+++ b/sources/pyside6/PySide6/qtdbushelper.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef QTDBUSHELPER_H
#define QTDBUSHELPER_H
@@ -44,6 +8,7 @@
#include <QtDBus/qdbuspendingcall.h>
#include <QtDBus/qdbusreply.h>
+QT_BEGIN_NAMESPACE
namespace QtDBusHelper {
// A Python-bindings friendly, non-template QDBusReply
@@ -92,4 +57,6 @@ inline QDBusReply::QDBusReply() = default;
} // namespace QtDBusHelper
+QT_END_NAMESPACE
+
#endif // QTDBUSHELPER_H
diff --git a/sources/pyside6/PySide6/qtgraphs_helper.h b/sources/pyside6/PySide6/qtgraphs_helper.h
new file mode 100644
index 000000000..726f5fb37
--- /dev/null
+++ b/sources/pyside6/PySide6/qtgraphs_helper.h
@@ -0,0 +1,19 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef QTGRAPHS_HELPER_H
+#define QTGRAPHS_HELPER_H
+
+#include <sbkpython.h>
+
+#include <QtGraphs/QSurfaceDataProxy>
+#include <QtCore/QList>
+
+namespace QtGraphsHelper {
+
+QSurfaceDataArray surfaceDataFromNp(double x, double deltaX, double z, double deltaZ,
+ PyObject *data);
+
+} // namespace QtGraphsHelper
+
+#endif // QTGRAPHS_HELPER_H
diff --git a/sources/pyside6/PySide6/qtguihelper.h b/sources/pyside6/PySide6/qtguihelper.h
new file mode 100644
index 000000000..e537cfefa
--- /dev/null
+++ b/sources/pyside6/PySide6/qtguihelper.h
@@ -0,0 +1,35 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef QTGUIHELPER_H
+#define QTGUIHELPER_H
+
+#include <QtGui/QGuiApplication>
+
+QT_BEGIN_NAMESPACE
+namespace QtGuiHelper {
+
+ class QOverrideCursorGuard
+ {
+ public:
+ Q_DISABLE_COPY_MOVE(QOverrideCursorGuard)
+
+ QOverrideCursorGuard() = default;
+ ~QOverrideCursorGuard() = default;
+
+ void restoreOverrideCursor()
+ {
+ if (m_guard) {
+ QGuiApplication::restoreOverrideCursor();
+ m_guard = false;
+ }
+ }
+
+ private:
+ bool m_guard = true;
+ };
+
+} // namespace QtGuiHelper
+QT_END_NAMESPACE
+
+#endif // QTGUIHELPER_H
diff --git a/sources/pyside6/PySide6/support/__init__.py b/sources/pyside6/PySide6/support/__init__.py
index 7d8c808aa..5127df0f4 100644
--- a/sources/pyside6/PySide6/support/__init__.py
+++ b/sources/pyside6/PySide6/support/__init__.py
@@ -1,41 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
from shiboken6.Shiboken import VoidPtr
diff --git a/sources/pyside6/PySide6/support/deprecated.py b/sources/pyside6/PySide6/support/deprecated.py
index cd620eb05..263dd3ed7 100644
--- a/sources/pyside6/PySide6/support/deprecated.py
+++ b/sources/pyside6/PySide6/support/deprecated.py
@@ -1,42 +1,5 @@
-# This Python file uses the following encoding: utf-8
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
"""
deprecated.py
@@ -52,27 +15,4 @@ Note that this fixing code is run after all initializations, but before the
import is finished. But that is no problem since the module is passed in.
"""
-import warnings
-from textwrap import dedent
-
-
-class PySideDeprecationWarningRemovedInQt6(Warning):
- pass
-
-
-def constData(self):
- cls = self.__class__
- name = cls.__qualname__
- warnings.warn(dedent(f"""
- {name}.constData is unpythonic and will be removed in Qt For Python 6.0 .
- Please use {name}.data instead."""), PySideDeprecationWarningRemovedInQt6, stacklevel=2)
- return cls.data(self)
-
-
-# No longer needed but kept for reference.
-def _unused_fix_for_QtGui(QtGui):
- for name, cls in QtGui.__dict__.items():
- if name.startswith("QMatrix") and "data" in cls.__dict__:
- cls.constData = constData
-
# eof
diff --git a/sources/pyside6/PySide6/support/generate_pyi.py b/sources/pyside6/PySide6/support/generate_pyi.py
index ecc04019b..92808e2a5 100644
--- a/sources/pyside6/PySide6/support/generate_pyi.py
+++ b/sources/pyside6/PySide6/support/generate_pyi.py
@@ -1,42 +1,5 @@
-# This Python file uses the following encoding: utf-8
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
"""
generate_pyi.py
@@ -45,13 +8,14 @@ This script generates the .pyi files for all PySide modules.
"""
import argparse
-import inspect
+import inspect # noqa: F401
import logging
import os
import sys
-import typing
+import typing # noqa: F401
from pathlib import Path
+from types import SimpleNamespace # noqa: F401
# Can we use forward references?
USE_PEP563 = sys.version_info[:2] >= (3, 7)
@@ -61,7 +25,7 @@ def generate_all_pyi(outpath, options):
ps = os.pathsep
if options.sys_path:
# make sure to propagate the paths from sys_path to subprocesses
- normpath = lambda x: os.fspath(Path(x).resolve())
+ normpath = lambda x: os.fspath(Path(x).resolve()) # noqa: E731
sys_path = [normpath(_) for _ in options.sys_path]
sys.path[0:0] = sys_path
pypath = ps.join(sys_path)
@@ -78,39 +42,37 @@ def generate_all_pyi(outpath, options):
# Perhaps this can be automated?
PySide6.support.signature.mapping.USE_PEP563 = USE_PEP563
- import __feature__ as feature
-
outpath = Path(outpath) if outpath and os.fspath(outpath) else Path(PySide6.__file__).parent
name_list = PySide6.__all__ if options.modules == ["all"] else options.modules
errors = ", ".join(set(name_list) - set(PySide6.__all__))
if errors:
raise ImportError(f"The module(s) '{errors}' do not exist")
- quirk1, quirk2 = "QtMultimedia", "QtMultimediaWidgets"
- if name_list == [quirk1]:
- logger.debug(f"Note: We must defer building of {quirk1}.pyi until {quirk2} is available")
- name_list = []
- elif name_list == [quirk2]:
- name_list = [quirk1, quirk2]
for mod_name in name_list:
import_name = "PySide6." + mod_name
- feature_id = feature.get_select_id(options.feature)
- with feature.force_selection(feature_id, import_name):
+ if hasattr(sys, "pypy_version_info"):
+ # PYSIDE-535: We cannot use __feature__ yet in PyPy
generate_pyi(import_name, outpath, options)
+ else:
+ from PySide6.support import feature
+ feature_id = feature.get_select_id(options.feature)
+ with feature.force_selection(feature_id, import_name):
+ generate_pyi(import_name, outpath, options)
if __name__ == "__main__":
parser = argparse.ArgumentParser(
description="This script generates the .pyi file for all PySide modules.")
parser.add_argument("modules", nargs="+",
- help="'all' or the names of modules to build (QtCore QtGui etc.)")
+ help="'all' or the names of modules to build (QtCore QtGui etc.)")
parser.add_argument("--quiet", action="store_true", help="Run quietly")
- parser.add_argument("--check", action="store_true", help="Test the output if on Python 3")
parser.add_argument("--outpath",
- help="the output directory (default = binary location)")
+ help="the output directory (default = binary location)")
parser.add_argument("--sys-path", nargs="+",
- help="a list of strings prepended to sys.path")
+ help="a list of strings prepended to sys.path")
parser.add_argument("--feature", nargs="+", choices=["snake_case", "true_property"], default=[],
- help="""a list of feature names. Example: `--feature snake_case true_property`""")
+ help="""a list of feature names. """
+ """Example: `--feature snake_case true_property`. """
+ """Currently not available for PyPy.""")
options = parser.parse_args()
qtest_env = os.environ.get("QTEST_ENVIRONMENT", "")
diff --git a/sources/pyside6/PySide6/templates/common.xml b/sources/pyside6/PySide6/templates/common.xml
new file mode 100644
index 000000000..44ed931e7
--- /dev/null
+++ b/sources/pyside6/PySide6/templates/common.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+-->
+<typesystem>
+ <template name="const_char_pybuffer">
+ PyObject *%out = Shiboken::Buffer::newObject(%in, size);
+ </template>
+
+ <template name="pybuffer_const_char">
+ Py_ssize_t bufferLen;
+ char *%out = reinterpret_cast&lt;char*&gt;(Shiboken::Buffer::getPointer(%PYARG_1, &amp;bufferLen));
+ </template>
+
+ <template name="uint_remove">
+ uint %out = bufferLen;
+ </template>
+
+ <template name="pybytes_const_uchar">
+ const uchar *%out = reinterpret_cast&lt;const uchar*>(PyBytes_AS_STRING(%PYARG_1));
+ </template>
+
+ <template name="pybytes_uint">
+ uint %out = static_cast&lt;uint>(PyBytes_Size(%PYARG_1));
+ </template>
+</typesystem>
diff --git a/sources/pyside6/PySide6/templates/core_common.xml b/sources/pyside6/PySide6/templates/core_common.xml
index abc0d6425..07bafc6ff 100644
--- a/sources/pyside6/PySide6/templates/core_common.xml
+++ b/sources/pyside6/PySide6/templates/core_common.xml
@@ -1,43 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
<typesystem>
@@ -249,6 +213,18 @@
%PYARG_0 = Shiboken::String::fromCString(qPrintable(format));
</template>
+ <template name="repr_qdebug">
+ QString result;
+ QDebug(&amp;result).nospace() &lt;&lt; "&lt;PySide6.MODULE." &lt;&lt; %CPPSELF &lt;&lt; '>';
+ %PYARG_0 = Shiboken::String::fromCString(qPrintable(result));
+ </template>
+
+ <template name="repr_qdebug_gui">
+ <insert-template name="repr_qdebug">
+ <replace from="MODULE" to="QtGui"/>
+ </insert-template>
+ </template>
+
<template name="return_internal_pointer">
%PYARG_0 = reinterpret_cast&lt;PyObject*>(%CPPSELF.%FUNCTION_NAME());
if (!%PYARG_0)
@@ -301,38 +277,6 @@
%PYARG_0 = Py_BuildValue("%TT_FORMAT", %TT_ARGS);
</template>
- <template name="cpplist_to_pylist_conversion">
- PyObject *%out = PyList_New(Py_ssize_t(%in.size()));
- Py_ssize_t idx = 0;
- for (auto it = %in.cbegin(), end = %in.cend(); it != end; ++it, ++idx) {
- const auto &amp;cppItem = *it;
- PyList_SET_ITEM(%out, idx, %CONVERTTOPYTHON[%INTYPE_0](cppItem));
- }
- return %out;
- </template>
-
- <template name="pyseq_to_cpplist_conversion">
- // PYSIDE-795: Turn all sequences into iterables.
- if (PyList_Check(%in)) {
- const Py_ssize_t size = PySequence_Size(%in);
- if (size &gt; 10)
- (%out).reserve(size);
- }
-
- Shiboken::AutoDecRef it(PyObject_GetIter(%in));
- PyObject *(*iternext)(PyObject *) = *Py_TYPE(it)->tp_iternext;
- for (;;) {
- Shiboken::AutoDecRef pyItem(iternext(it));
- if (pyItem.isNull()) {
- if (PyErr_Occurred() &amp;&amp; PyErr_ExceptionMatches(PyExc_StopIteration))
- PyErr_Clear();
- break;
- }
- %OUTTYPE_0 cppItem = %CONVERTTOCPP[%OUTTYPE_0](pyItem);
- %out &lt;&lt; cppItem;
- }
- </template>
-
<template name="checkPyCapsuleOrPyCObject_func">
static bool checkPyCapsuleOrPyCObject(PyObject* pyObj)
{
@@ -340,91 +284,4 @@
}
</template>
- <template name="cppmap_to_pymap_conversion">
- PyObject *%out = PyDict_New();
- for (auto it = %in.cbegin(), end = %in.cend(); it != end; ++it) {
- const auto &amp;key = it.key();
- const auto &amp;value = it.value();
- PyObject *pyKey = %CONVERTTOPYTHON[%INTYPE_0](key);
- PyObject *pyValue = %CONVERTTOPYTHON[%INTYPE_1](value);
- PyDict_SetItem(%out, pyKey, pyValue);
- Py_DECREF(pyKey);
- Py_DECREF(pyValue);
- }
- return %out;
- </template>
-
- <template name="pydict_to_cppmap_conversion">
- PyObject *key;
- PyObject *value;
- Py_ssize_t pos = 0;
- while (PyDict_Next(%in, &amp;pos, &amp;key, &amp;value)) {
- %OUTTYPE_0 cppKey = %CONVERTTOCPP[%OUTTYPE_0](key);
- %OUTTYPE_1 cppValue = %CONVERTTOCPP[%OUTTYPE_1](value);
- %out.insert(cppKey, cppValue);
- }
- </template>
-
- <template name="cppmultimap_to_pymap_conversion">
- PyObject *%out = PyDict_New();
- for (auto it = %in.cbegin(), end = %in.cend(); it != end; ) {
- const auto &amp;key = it.key();
- PyObject *pyKey = %CONVERTTOPYTHON[%INTYPE_0](key);
- %INTYPE::const_iterator keyEnd = %in.upperBound(key);
- const auto count = Py_ssize_t(std::distance(it, keyEnd));
- PyObject *pyValues = PyList_New(count);
- Py_ssize_t idx = 0;
- for ( ; it != keyEnd; ++it, ++idx) {
- const auto &amp;cppItem = it.value();
- PyList_SET_ITEM(pyValues, idx, %CONVERTTOPYTHON[%INTYPE_1](cppItem));
- }
- PyDict_SetItem(%out, pyKey, pyValues);
- Py_DECREF(pyKey);
- }
- return %out;
- </template>
-
- <template name="cppmultihash_to_pymap_conversion">
- PyObject *%out = PyDict_New();
- for (auto kit = %in.keyBegin(), end = %in.keyEnd(); kit != end; ++kit) {
- const auto &amp;key = *kit;
- PyObject *pyKey = %CONVERTTOPYTHON[%INTYPE_0](key);
- auto range = %in.equal_range(key);
- const auto count = Py_ssize_t(std::distance(range.first, range.second));
- PyObject *pyValues = PyList_New(count);
- Py_ssize_t idx = 0;
- for (auto it = range.first; it != range.second; ++it, ++idx) {
- const auto &amp;cppItem = it.value();
- PyList_SET_ITEM(pyValues, idx, %CONVERTTOPYTHON[%INTYPE_1](cppItem));
- }
- PyDict_SetItem(%out, pyKey, pyValues);
- Py_DECREF(pyKey);
- }
- return %out;
- </template>
-
- <template name="pydict_to_cppmultimap_conversion">
- PyObject *key;
- PyObject *values;
- Py_ssize_t pos = 0;
- while (PyDict_Next(%in, &amp;pos, &amp;key, &amp;values)) {
- %OUTTYPE_0 cppKey = %CONVERTTOCPP[%OUTTYPE_0](key);
- const Py_ssize_t size = PySequence_Size(values);
- for (Py_ssize_t i = 0; i &lt; size; ++i) {
- Shiboken::AutoDecRef value(PySequence_GetItem(values, i));
- %OUTTYPE_1 cppValue = %CONVERTTOCPP[%OUTTYPE_1](value);
- %out.insert(cppKey, cppValue);
- }
- }
- </template>
-
- <template name="pydatetime_importandcheck_function">
- static bool PyDateTime_ImportAndCheck(PyObject *pyIn)
- {
- if (!PyDateTimeAPI)
- PyDateTime_IMPORT;
- return $DATETIMETYPE_Check(pyIn);
- }
- </template>
-
</typesystem>
diff --git a/sources/pyside6/PySide6/templates/datavisualization_common.xml b/sources/pyside6/PySide6/templates/datavisualization_common.xml
index 49682e06b..6d5861322 100644
--- a/sources/pyside6/PySide6/templates/datavisualization_common.xml
+++ b/sources/pyside6/PySide6/templates/datavisualization_common.xml
@@ -1,43 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
<typesystem>
<template name="cppqlistofptrtoqlists_to_py_conversion">
diff --git a/sources/pyside6/PySide6/templates/gui_common.xml b/sources/pyside6/PySide6/templates/gui_common.xml
index b802054a8..6a7404507 100644
--- a/sources/pyside6/PySide6/templates/gui_common.xml
+++ b/sources/pyside6/PySide6/templates/gui_common.xml
@@ -1,50 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
<typesystem>
<template name="QFontCharFix">
int size = Shiboken::String::len(%PYARG_1);
if (size == 1) {
const char *str = Shiboken::String::toCString(%PYARG_1);
- QChar ch(str[0]);
+ const QChar ch(static_cast&lt;unsigned short&gt;(str[0]));
%RETURN_TYPE %0 = %CPPSELF.%FUNCTION_NAME(ch);
%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
} else {
@@ -61,6 +25,9 @@
break;
}
}
+ // PySIDE-1735: Enums are now implemented in Python, so we need to avoid asserts.
+ if (PyErr_Occurred())
+ break;
auto xpm = new const char*[lineCount];
for (Py_ssize_t line = 0; line &lt; lineCount; ++line)
@@ -126,15 +93,6 @@
}
</template>
- <template name="qkeysequence_repr">
- QString result;
- QDebug debug(&amp;result);
- debug.noquote();
- debug.nospace();
- debug &lt;&lt; (*%CPPSELF);
- %PYARG_0 = Shiboken::String::fromCString(result.toUtf8().constData());
- </template>
-
<template name="validator_conversionrule">
QValidator::State %out;
diff --git a/sources/pyside6/PySide6/templates/opengl_common.xml b/sources/pyside6/PySide6/templates/opengl_common.xml
index 8160a13ba..566ebe6ee 100644
--- a/sources/pyside6/PySide6/templates/opengl_common.xml
+++ b/sources/pyside6/PySide6/templates/opengl_common.xml
@@ -1,43 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
<typesystem>
<template name="callArrayFunction">
diff --git a/sources/pyside6/PySide6/templates/widgets_common.xml b/sources/pyside6/PySide6/templates/widgets_common.xml
index 1399ef9b1..b0dee43cd 100644
--- a/sources/pyside6/PySide6/templates/widgets_common.xml
+++ b/sources/pyside6/PySide6/templates/widgets_common.xml
@@ -1,43 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
<typesystem>
diff --git a/sources/pyside6/cmake/Macros/FindQt5Extra.cmake b/sources/pyside6/cmake/Macros/FindQt5Extra.cmake
deleted file mode 100644
index 71846e48a..000000000
--- a/sources/pyside6/cmake/Macros/FindQt5Extra.cmake
+++ /dev/null
@@ -1,25 +0,0 @@
-#
-# Try to find QtMultimedia
-# TODO: Remove this hack when cmake support QtMultimedia module
-# CT: maybe we can remove this.
-# For now, I just use the mapping to Qt5
-
-find_package(Qt${QT_MAJOR_VERSION}Multimedia)
-
-if (NOT Qt${QT_MAJOR_VERSION}Multimedia_FOUND)
- find_path(QT_QTMULTIMEDIA_INCLUDE_DIR QtMultimedia
- PATHS ${QT_HEADERS_DIR}/QtMultimedia
- ${QT_LIBRARY_DIR}/QtMultimedia.framework/Headers
- NO_DEFAULT_PATH)
- find_library(QT_QTMULTIMEDIA_LIBRARY QtMultimedia PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH)
- if (QT_QTMULTIMEDIA_INCLUDE_DIR AND QT_QTMULTIMEDIA_LIBRARY)
- set(QT_QTMULTIMEDIA_FOUND ON)
- else()
- #Replace this on documentation
- set(if_QtMultimedia "<!--")
- set(end_QtMultimedia "-->")
- endif()
-endif ()
-
-# Maemo is no longer supported
-# QtDeclarative is no longer supported
diff --git a/sources/pyside6/cmake/Macros/PySideModules.cmake b/sources/pyside6/cmake/Macros/PySideModules.cmake
index 462c47441..1e434f9f6 100644
--- a/sources/pyside6/cmake/Macros/PySideModules.cmake
+++ b/sources/pyside6/cmake/Macros/PySideModules.cmake
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
include(CMakeParseArguments)
# A version of cmake_parse_arguments that makes sure all arguments are processed and errors out
@@ -18,6 +21,34 @@ macro(unmake_path varname)
string(REPLACE "${PATH_SEP}" ";" ${varname} "${ARGN}")
endmacro()
+# Check for presence of QtOpenGL and modify module variables
+# accordingly
+macro(check_qt_opengl module include_var deps_var dropped_entries_var)
+ if (Qt${QT_MAJOR_VERSION}OpenGL_FOUND)
+ message(STATUS "Qt${QT_MAJOR_VERSION}${module}: Building with OpenGL")
+ list(APPEND ${include_var} ${Qt${QT_MAJOR_VERSION}OpenGL_INCLUDE_DIRS}
+ ${QtOpenGL_GEN_DIR})
+ list(APPEND ${deps_var} QtOpenGL)
+ else()
+ message(STATUS "Qt${QT_MAJOR_VERSION}${module}: Dropping OpenGL")
+ # This is a dummy entry creating a conditional typesystem keyword
+ list(APPEND ${dropped_entries_var} "QtOpenGL")
+ endif()
+endmacro()
+
+# set size optimization flags for pyside6
+macro(append_size_optimization_flags _module_name)
+ if(NOT QFP_NO_OVERRIDE_OPTIMIZATION_FLAGS)
+ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
+ target_compile_options(${_module_name} PRIVATE /Gy /Gw /EHsc)
+ target_link_options(${_module_name} PRIVATE LINKER:/OPT:REF)
+ elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU|CLANG")
+ target_compile_options(${_module_name} PRIVATE -ffunction-sections -fdata-sections -fno-exceptions)
+ target_link_options(${_module_name} PRIVATE LINKER:--gc-sections)
+ endif()
+ endif()
+endmacro()
+
# Sample usage
# create_pyside_module(NAME QtGui
# INCLUDE_DIRS QtGui_include_dirs
@@ -35,7 +66,7 @@ macro(create_pyside_module)
"create_pyside_module" # Macro name
"" # Flags
"NAME;TYPESYSTEM_PATH;TYPESYSTEM_NAME" # Single value
- "INCLUDE_DIRS;LIBRARIES;DEPS;SOURCES;STATIC_SOURCES;DROPPED_ENTRIES;GLUE_SOURCES" # Multival
+ "INCLUDE_DIRS;LIBRARIES;DEPS;SOURCES;STATIC_SOURCES;DROPPED_ENTRIES;GLUE_SOURCES;ADDITIONAL_INCLUDE_DIRS" # Multival
${ARGN} # Number of arguments given when the macros is called
)
@@ -92,10 +123,46 @@ macro(create_pyside_module)
INTERFACE_INCLUDE_DIRECTORIES)
set(shiboken_include_dir_list ${pyside6_SOURCE_DIR} ${qt_platform_includes}
${qt_core_includes})
+ if(module_ADDITIONAL_INCLUDE_DIRS)
+ list(APPEND shiboken_include_dir_list ${${module_ADDITIONAL_INCLUDE_DIRS}})
+ endif()
# Transform the path separators into something shiboken understands.
make_path(shiboken_include_dirs ${shiboken_include_dir_list})
+ set(force_process_system_include_paths_list "")
+ # When building against system Qt (as it happens with yocto / Boot2Qt), the Qt headers are
+ # considered system headers by clang_Location_isInSystemHeader, and thus shiboken will not
+ # process them.
+ #
+ # We do want to process them.
+ #
+ # Tell shiboken to consider them as special typesystem system include paths, which ensures
+ # the types are processed and extracted.
+ #
+ # This option is opt-in because it might cause problems if there are other system headers
+ # installed in the same location as the Qt ones, resulting in processing more non-Qt system
+ # types that might not be supported by shiboken.
+ if(PYSIDE_TREAT_QT_INCLUDE_DIRS_AS_NON_SYSTEM)
+ list(APPEND force_process_system_include_paths_list
+ ${qt_platform_includes}
+ ${qt_core_includes})
+ endif()
+
+ # Allow passing extra non system inlcude dirs.
+ if(SHIBOKEN_FORCE_PROCESS_SYSTEM_INCLUDE_PATHS)
+ list(APPEND force_process_system_include_paths_list
+ ${SHIBOKEN_FORCE_PROCESS_SYSTEM_INCLUDE_PATHS})
+ endif()
+
+ # Transform the path separators into something shiboken understands.
+ make_path(force_process_system_include_paths ${force_process_system_include_paths_list})
+
+ if(force_process_system_include_paths)
+ set(force_process_system_include_paths
+ "--force-process-system-include-paths=${force_process_system_include_paths}")
+ endif()
+
get_filename_component(pyside_binary_dir ${CMAKE_CURRENT_BINARY_DIR} DIRECTORY)
# Install module glue files.
@@ -113,11 +180,18 @@ macro(create_pyside_module)
install(FILES ${module_GLUE_SOURCES} DESTINATION share/PySide6${pyside6_SUFFIX}/typesystems/glue)
endif()
- set(shiboken_command Shiboken6::shiboken6 ${GENERATOR_EXTRA_FLAGS}
+ shiboken_get_tool_shell_wrapper(shiboken tool_wrapper)
+
+ set(shiboken_command
+ ${tool_wrapper}
+ $<TARGET_FILE:Shiboken6::shiboken6>
+ ${GENERATOR_EXTRA_FLAGS}
"--include-paths=${shiboken_include_dirs}"
+ "${force_process_system_include_paths}"
"--typesystem-paths=${pyside_binary_dir}${PATH_SEP}${pyside6_SOURCE_DIR}${PATH_SEP}${${module_TYPESYSTEM_PATH}}"
--output-directory=${CMAKE_CURRENT_BINARY_DIR}
--license-file=${CMAKE_CURRENT_SOURCE_DIR}/../licensecomment.txt
+ --lean-headers
--api-version=${SUPPORTED_QT_VERSION})
if(CMAKE_HOST_APPLE)
@@ -146,6 +220,11 @@ macro(create_pyside_module)
include_directories(${module_NAME} ${${module_INCLUDE_DIRS}} ${pyside6_SOURCE_DIR})
add_library(${module_NAME} MODULE ${${module_SOURCES}}
${${module_STATIC_SOURCES}})
+
+ append_size_optimization_flags(${module_NAME})
+
+ target_compile_definitions(${module_NAME} PRIVATE -DQT_LEAN_HEADERS=1)
+
set_target_properties(${module_NAME} PROPERTIES
PREFIX ""
OUTPUT_NAME "${module_NAME}${SHIBOKEN_PYTHON_EXTENSION_SUFFIX}"
@@ -174,7 +253,17 @@ macro(create_pyside_module)
else()
set(ld_prefix_var_name "LD_LIBRARY_PATH")
endif()
- set(ld_prefix "${ld_prefix_var_name}=${pysidebindings_BINARY_DIR}/libpyside${PATH_SEP}${SHIBOKEN_SHARED_LIBRARY_DIR}")
+
+ set(ld_prefix_list "")
+ list(APPEND ld_prefix_list "${pysidebindings_BINARY_DIR}/libpyside")
+ list(APPEND ld_prefix_list "${pysidebindings_BINARY_DIR}/libpysideqml")
+ list(APPEND ld_prefix_list "${SHIBOKEN_SHARED_LIBRARY_DIR}")
+ if(WIN32)
+ list(APPEND ld_prefix_list "${QT6_INSTALL_PREFIX}/${QT6_INSTALL_BINS}")
+ endif()
+
+ list(JOIN ld_prefix_list "${PATH_SEP}" ld_prefix_values_string)
+ set(ld_prefix "${ld_prefix_var_name}=${ld_prefix_values_string}")
# Append any existing ld_prefix values, so existing PATH, LD_LIBRARY_PATH, etc.
# On Windows it is needed because pyside modules import Qt,
@@ -199,26 +288,38 @@ macro(create_pyside_module)
string(APPEND ld_prefix ":${env_value}")
endif()
endif()
- set(generate_pyi_options ${module_NAME} --sys-path
- "${pysidebindings_BINARY_DIR}"
- "${SHIBOKEN_PYTHON_MODULE_DIR}/..") # use the layer above shiboken6
- if (QUIET_BUILD)
- list(APPEND generate_pyi_options "--quiet")
- endif()
+
+ qfp_strip_library("${module_NAME}")
# Add target to generate pyi file, which depends on the module target.
- add_custom_target("${module_NAME}_pyi" ALL
- COMMAND ${CMAKE_COMMAND} -E env ${ld_prefix}
- "${SHIBOKEN_PYTHON_INTERPRETER}"
- "${CMAKE_CURRENT_SOURCE_DIR}/../support/generate_pyi.py" ${generate_pyi_options})
- add_dependencies("${module_NAME}_pyi" ${module_NAME})
+ # Don't generate the files when cross-building because the target python can not be executed
+ # on the host machine (usually, unless you use some userspace qemu based mechanism).
+ # TODO: Can we do something better here to still get pyi files?
+ if(NOT (PYSIDE_IS_CROSS_BUILD OR DISABLE_PYI))
+ set(generate_pyi_options ${module_NAME} --sys-path
+ "${pysidebindings_BINARY_DIR}"
+ "${SHIBOKEN_PYTHON_MODULE_DIR}/..") # use the layer above shiboken6
+ if (QUIET_BUILD)
+ list(APPEND generate_pyi_options "--quiet")
+ endif()
+
+ add_custom_target("${module_NAME}_pyi" ALL
+ COMMAND
+ ${CMAKE_COMMAND} -E env ${ld_prefix}
+ "${SHIBOKEN_PYTHON_INTERPRETER}"
+ "${CMAKE_CURRENT_SOURCE_DIR}/../support/generate_pyi.py"
+ ${generate_pyi_options})
+ add_dependencies("${module_NAME}_pyi" ${module_NAME})
+
+ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/../${module_NAME}.pyi"
+ DESTINATION "${PYTHON_SITE_PACKAGES}/PySide6")
+ endif()
+
# install
install(TARGETS ${module_NAME} LIBRARY DESTINATION "${PYTHON_SITE_PACKAGES}/PySide6")
- file(GLOB hinting_stub_files RELATIVE "${CMAKE_CURRENT_BINARY_DIR}/PySide6" "${CMAKE_CURRENT_BINARY_DIR}/PySide6/*.pyi")
- install(FILES ${hinting_stub_files}
- DESTINATION "${PYTHON_SITE_PACKAGES}/PySide6")
+
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/PySide6/${module_NAME}/pyside6_${lower_module_name}_python.h
DESTINATION include/PySide6${pyside6_SUFFIX}/${module_NAME}/)
diff --git a/sources/pyside6/cmake/Macros/icecc.cmake b/sources/pyside6/cmake/Macros/icecc.cmake
index b2bf071aa..fa8d3b7cf 100644
--- a/sources/pyside6/cmake/Macros/icecc.cmake
+++ b/sources/pyside6/cmake/Macros/icecc.cmake
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
include (CMakeForceCompiler)
option(ENABLE_ICECC "Enable icecc checking, for distributed compilation")
if (ENABLE_ICECC)
diff --git a/sources/pyside6/cmake/PySideHelpers.cmake b/sources/pyside6/cmake/PySideHelpers.cmake
new file mode 100644
index 000000000..23ceda6bd
--- /dev/null
+++ b/sources/pyside6/cmake/PySideHelpers.cmake
@@ -0,0 +1,270 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+function(pyside_internal_detect_if_cross_building)
+ if(CMAKE_CROSSCOMPILING OR QFP_SHIBOKEN_HOST_PATH)
+ set(is_cross_build TRUE)
+ else()
+ set(is_cross_build FALSE)
+ endif()
+ set(PYSIDE_IS_CROSS_BUILD "${is_cross_build}" PARENT_SCOPE)
+ message(STATUS "PYSIDE_IS_CROSS_BUILD: ${PYSIDE_IS_CROSS_BUILD}")
+endfunction()
+
+function(pyside_internal_set_up_extra_dependency_paths)
+ set(extra_root_path_vars
+ QFP_QT_TARGET_PATH
+ QFP_PYTHON_TARGET_PATH
+ QFP_SHIBOKEN_TARGET_PATH
+ )
+ foreach(root_path IN LISTS extra_root_path_vars)
+ set(new_root_path_value "${${root_path}}")
+ if(new_root_path_value)
+ set(new_prefix_path "${CMAKE_PREFIX_PATH}")
+ list(PREPEND new_prefix_path "${new_root_path_value}/lib/cmake")
+ set(CMAKE_PREFIX_PATH "${new_prefix_path}")
+ set(CMAKE_PREFIX_PATH "${new_prefix_path}" PARENT_SCOPE)
+
+ # Need to adjust the prefix and root paths so that find_package(Qt) and other 3rd
+ # party packages are found successfully when they are located outside of the
+ # default sysroot (whatever that maybe for the target platform).
+ if(PYSIDE_IS_CROSS_BUILD)
+ set(new_root_path "${CMAKE_FIND_ROOT_PATH}")
+ list(PREPEND new_root_path "${new_root_path_value}")
+ set(CMAKE_FIND_ROOT_PATH "${new_root_path}")
+ set(CMAKE_FIND_ROOT_PATH "${new_root_path}" PARENT_SCOPE)
+ endif()
+ endif()
+ endforeach()
+endfunction()
+
+function(pyside_internal_find_host_shiboken_tools)
+ set(find_package_extra_args)
+ if(QFP_SHIBOKEN_HOST_PATH)
+ list(APPEND find_package_extra_args PATHS "${QFP_SHIBOKEN_HOST_PATH}/lib/cmake")
+ list(PREPEND CMAKE_FIND_ROOT_PATH "${QFP_SHIBOKEN_HOST_PATH}")
+ endif()
+
+ # When doing a regular build, immediately mark the package as required.
+ if(NOT PYSIDE_IS_CROSS_BUILD)
+ list(APPEND "REQUIRED")
+ endif()
+
+ find_package(
+ Shiboken6Tools 6 CONFIG
+ ${find_package_extra_args}
+ )
+
+ # When cross building, we show a more helpful error message that
+ # QFP_SHIBOKEN_HOST_PATH should be provided instead of CMAKE_PREFIX_PATH (specifically
+ # for the host tools package).
+ if(PYSIDE_IS_CROSS_BUILD)
+ if(NOT Shiboken6Tools_DIR)
+ message(FATAL_ERROR
+ "Shiboken6Tools package was not found. "
+ "Please set QFP_SHIBOKEN_HOST_PATH to the location where the Shiboken6Tools "
+ "CMake package is installed.")
+ endif()
+ endif()
+endfunction()
+
+macro(collect_essential_modules)
+ # Collect all essential modules.
+ # note: the order of this list is relevant for dependencies.
+ # For instance: Qt5Printsupport must come before Qt5WebKitWidgets.
+ set(ALL_ESSENTIAL_MODULES
+ Core
+ Gui
+ Widgets
+ PrintSupport
+ Sql
+ Network
+ Test
+ Concurrent)
+endmacro()
+
+macro(collect_optional_modules)
+ # Collect all optional modules.
+ set(ALL_OPTIONAL_MODULES
+ DBus
+ Designer
+ Xml
+ Help Multimedia
+ MultimediaWidgets
+ OpenGL
+ OpenGLWidgets
+ Pdf
+ PdfWidgets
+ Positioning
+ Location
+ NetworkAuth
+ Nfc
+ Qml
+ Quick
+ Quick3D
+ QuickControls2
+ QuickTest
+ QuickWidgets
+ RemoteObjects
+ Scxml
+ Sensors
+ SerialPort
+ SerialBus
+ StateMachine
+ TextToSpeech
+ Charts
+ SpatialAudio
+ Svg
+ SvgWidgets
+ DataVisualization
+ Graphs
+ Bluetooth)
+ find_package(Qt${QT_MAJOR_VERSION}UiTools)
+ if(Qt${QT_MAJOR_VERSION}UiTools_FOUND)
+ list(APPEND ALL_OPTIONAL_MODULES UiTools)
+ else()
+ set(DISABLE_QtUiTools 1)
+ endif()
+ if(WIN32)
+ list(APPEND ALL_OPTIONAL_MODULES AxContainer)
+ endif()
+ list(APPEND ALL_OPTIONAL_MODULES WebChannel WebEngineCore WebEngineWidgets
+ WebEngineQuick WebSockets HttpServer)
+ list(APPEND ALL_OPTIONAL_MODULES 3DCore 3DRender 3DInput 3DLogic 3DAnimation 3DExtras)
+endmacro()
+
+macro(check_os)
+ set(ENABLE_UNIX "1")
+ set(ENABLE_MAC "0")
+ set(ENABLE_WIN "0")
+
+ if(CMAKE_HOST_APPLE)
+ set(ENABLE_MAC "1")
+ elseif(CMAKE_HOST_WIN32)
+ set(ENABLE_WIN "1")
+ set(ENABLE_UNIX "0")
+ elseif(NOT CMAKE_HOST_UNIX)
+ message(FATAL_ERROR "OS not supported")
+ endif()
+endmacro()
+
+macro(use_protected_as_public_hack)
+ # 2017-04-24 The protected hack can unfortunately not be disabled, because
+ # Clang does produce linker errors when we disable the hack.
+ # But the ugly workaround in Python is replaced by a shiboken change.
+ if(WIN32 OR DEFINED AVOID_PROTECTED_HACK)
+ message(STATUS "PySide6 will be generated avoiding the protected hack!")
+ set(GENERATOR_EXTRA_FLAGS ${GENERATOR_EXTRA_FLAGS} --avoid-protected-hack)
+ add_definitions(-DAVOID_PROTECTED_HACK)
+ else()
+ message(STATUS "PySide will be generated using the protected hack!")
+ endif()
+endmacro()
+
+macro(remove_skipped_modules)
+ # Removing from the MODULES list the items that were defined with
+ # -DSKIP_MODULES on command line
+ if(SKIP_MODULES)
+ foreach(s ${SKIP_MODULES})
+ list(REMOVE_ITEM MODULES ${s})
+ endforeach()
+ endif()
+
+ foreach(m ${MODULES})
+ collect_module_if_found(${m})
+ list(FIND all_module_shortnames ${m} is_module_collected)
+ # If the module was collected, remove it from disabled modules list.
+ if (NOT is_module_collected EQUAL -1)
+ list(REMOVE_ITEM DISABLED_MODULES ${m})
+ endif()
+ endforeach()
+endmacro()
+
+macro(collect_module_if_found shortname)
+ set(name "Qt${QT_MAJOR_VERSION}${shortname}")
+ set(_qt_module_name "${name}")
+ if ("${shortname}" STREQUAL "OpenGLFunctions")
+ set(_qt_module_name "Qt${QT_MAJOR_VERSION}Gui")
+ endif()
+ # Determine essential/optional/missing
+ set(module_state "missing")
+ list(FIND ALL_ESSENTIAL_MODULES "${shortname}" essentialIndex)
+ if(${essentialIndex} EQUAL -1)
+ list(FIND ALL_OPTIONAL_MODULES "${shortname}" optionalIndex)
+ if(NOT ${optionalIndex} EQUAL -1)
+ set(module_state "optional")
+ endif()
+ else()
+ set(module_state "essential")
+ endif()
+
+ # Silence warnings when optional packages are not found when doing a quiet build.
+ set(quiet_argument "")
+ if (QUIET_BUILD AND "${module_state}" STREQUAL "optional")
+ set(quiet_argument "QUIET")
+ endif()
+
+ find_package(${_qt_module_name} ${quiet_argument})
+ # If package is found, _name_found will be equal to 1
+ set(_name_found "${_qt_module_name}_FOUND")
+ # _name_dir will keep the path to the directory where the CMake rules were found
+ # e.g: ~/qt5.9-install/qtbase/lib/cmake/Qt5Core or /usr/lib64/cmake/Qt5Core
+ set(_name_dir "${_qt_module_name}_DIR")
+ # Qt5Core will set the base path to check if all the modules are on the same
+ # directory, to avoid CMake looking in another path.
+ # This will be saved in a global variable at the beginning of the modules
+ # collection process.
+ string(FIND "${name}" "Qt${QT_MAJOR_VERSION}Core" qtcore_found)
+ if(("${qtcore_found}" GREATER "0") OR ("${qtcore_found}" EQUAL "0"))
+ get_filename_component(_core_abs_dir "${${_name_dir}}/../" ABSOLUTE)
+ # Setting the absolute path where the Qt5Core was found
+ # e.g: ~/qt5.9-install/qtbase/lib/cmake or /usr/lib64/cmake
+ message(STATUS "CORE_ABS_DIR:" ${_core_abs_dir})
+ endif()
+
+ # Getting the absolute path for each module where the CMake was found, to
+ # compare it with CORE_ABS_DIR and check if they are in the same source directory
+ # e.g: ~/qt5.9-install/qtbase/lib/cmake/Qt5Script or /usr/lib64/cmake/Qt5Script
+ get_filename_component(_module_dir "${${_name_dir}}" ABSOLUTE)
+ string(FIND "${_module_dir}" "${_core_abs_dir}" found_basepath)
+
+ # If the module was found, and also the module path is the same as the
+ # Qt5Core base path, we will generate the list with the modules to be installed
+ set(looked_in_message ". Looked in: ${${_name_dir}}")
+ if("${${_name_found}}" AND (("${found_basepath}" GREATER "0") OR ("${found_basepath}" EQUAL "0")))
+ message(STATUS "${module_state} module ${name} found (${ARGN})${looked_in_message}")
+ # record the shortnames for the tests
+ list(APPEND all_module_shortnames ${shortname})
+ # Build Qt 5 compatibility variables
+ if(${QT_MAJOR_VERSION} GREATER_EQUAL 6 AND NOT "${shortname}" STREQUAL "OpenGLFunctions")
+ get_target_property(Qt6${shortname}_INCLUDE_DIRS Qt6::${shortname}
+ INTERFACE_INCLUDE_DIRECTORIES)
+ get_target_property(Qt6${shortname}_PRIVATE_INCLUDE_DIRS
+ Qt6::${shortname}Private
+ INTERFACE_INCLUDE_DIRECTORIES)
+ set(Qt6${shortname}_LIBRARIES Qt::${shortname})
+ endif()
+ else()
+ if("${module_state}" STREQUAL "optional")
+ message(STATUS "optional module ${name} skipped${looked_in_message}")
+ elseif("${module_state}" STREQUAL "essential")
+ message(STATUS "skipped module ${name} is essential!\n"
+ " We do not guarantee that all tests are working.${looked_in_message}")
+ else()
+ message(FATAL_ERROR "module ${name} MISSING${looked_in_message}")
+ endif()
+ endif()
+endmacro()
+
+# resets the RELEASE CXX flags for size based optimization
+macro(override_release_flags_for_size_optimization)
+ if(NOT QFP_NO_OVERRIDE_OPTIMIZATION_FLAGS)
+ if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
+ set(CMAKE_CXX_FLAGS_RELEASE "/O1 /DNDEBUG")
+ elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
+ set(CMAKE_CXX_FLAGS_RELEASE "-Os -DNDEBUG")
+ elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
+ set(CMAKE_CXX_FLAGS_RELEASE "-Oz -DNDEBUG")
+ endif()
+ endif()
+endmacro()
diff --git a/sources/pyside6/cmake/PySideSetup.cmake b/sources/pyside6/cmake/PySideSetup.cmake
new file mode 100644
index 000000000..038dc1642
--- /dev/null
+++ b/sources/pyside6/cmake/PySideSetup.cmake
@@ -0,0 +1,243 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+# Don't ignore targets that do not exist, inside add_dependencies calls.
+cmake_policy(SET CMP0046 NEW)
+
+set(QT_MAJOR_VERSION 6)
+
+list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}")
+list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/../../shiboken6/cmake")
+list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/Macros")
+
+# TODO: Don't directly include, ShibokenHelpers but rather pick it up from the installed Shiboken
+# package. Needs to support top-level build as well (Shiboken is not yet installed in that case).
+include(ShibokenHelpers)
+include(PySideHelpers)
+
+#does nothing if QFP_NO_OVERRIDE_OPTIMIZATION_FLAGS (no-size-optimization) flag is not set
+override_release_flags_for_size_optimization()
+
+# Don't display "up-to-date / install" messages when installing, to reduce visual clutter.
+if(QUIET_BUILD)
+ set(CMAKE_INSTALL_MESSAGE NEVER)
+endif()
+
+# Override message not to display info messages when doing a quiet build.
+if(QUIET_BUILD AND is_pyside6_superproject_build)
+ function(message)
+ list(GET ARGV 0 MessageType)
+ if(MessageType STREQUAL FATAL_ERROR OR
+ MessageType STREQUAL SEND_ERROR OR
+ MessageType STREQUAL WARNING OR
+ MessageType STREQUAL AUTHOR_WARNING)
+ list(REMOVE_AT ARGV 0)
+ _message(${MessageType} "${ARGV}")
+ endif()
+ endfunction()
+endif()
+
+
+pyside_internal_detect_if_cross_building()
+pyside_internal_set_up_extra_dependency_paths()
+pyside_internal_find_host_shiboken_tools()
+find_package(Shiboken6 6 CONFIG REQUIRED)
+
+if(is_pyside6_superproject_build)
+ shiboken_find_required_python()
+endif()
+
+set(BINDING_API_MAJOR_VERSION "${pyside_MAJOR_VERSION}")
+set(BINDING_API_MINOR_VERSION "${pyside_MINOR_VERSION}")
+set(BINDING_API_MICRO_VERSION "${pyside_MICRO_VERSION}")
+set(BINDING_API_PRE_RELEASE_VERSION_TYPE "${pyside_PRE_RELEASE_VERSION_TYPE}")
+set(BINDING_API_PRE_RELEASE_VERSION "${pyside_PRE_RELEASE_VERSION}")
+
+# Detect if the Python interpreter is actually PyPy
+execute_process(
+ COMMAND ${Python_EXECUTABLE} -c "if True:
+ pypy_version = ''
+ import sys
+ if hasattr(sys, 'pypy_version_info'):
+ pypy_version = '.'.join(map(str, sys.pypy_version_info[:3]))
+ print(pypy_version)
+ "
+ OUTPUT_VARIABLE PYPY_VERSION
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+if(WIN32)
+ set(PATH_SEP "\;")
+else()
+ set(PATH_SEP ":")
+endif()
+
+if(NOT CMAKE_BUILD_TYPE)
+ set(CMAKE_BUILD_TYPE "${SHIBOKEN_BUILD_TYPE}" CACHE STRING "Build Type")
+endif()
+
+if(CMAKE_BUILD_TYPE STREQUAL "Release")
+ add_definitions("-DNDEBUG")
+endif()
+
+if(SHIBOKEN_PYTHON_LIMITED_API)
+ message(STATUS "******************************************************")
+ message(STATUS "** PySide6 Limited API enabled.")
+ message(STATUS "******************************************************")
+endif()
+
+# Need to ensure host Tools packages are found instead of target ones when cross-compiling.
+if(QFP_QT_HOST_PATH)
+ get_filename_component(__qt_host_path_absolute "${QFP_QT_HOST_PATH}" ABSOLUTE)
+ if(EXISTS "${__qt_host_path_absolute}")
+ set(QT_HOST_PATH "${__qt_host_path_absolute}")
+
+ set(__qt_candidate_host_path_cmake_dir "${QT_HOST_PATH}/lib/cmake")
+ if(EXISTS "${__qt_candidate_host_path_cmake_dir}")
+ set(QT_HOST_PATH_CMAKE_DIR "${__qt_candidate_host_path_cmake_dir}")
+ endif()
+ endif()
+endif()
+find_package(Qt6 REQUIRED COMPONENTS Core)
+
+add_definitions(${Qt${QT_MAJOR_VERSION}Core_DEFINITIONS})
+
+option(BUILD_TESTS "Build tests." TRUE)
+option(ENABLE_VERSION_SUFFIX "Used to use current version in suffix to generated files. This is used to allow multiples versions installed simultaneous." FALSE)
+set(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)" )
+set(LIB_INSTALL_DIR "lib${LIB_SUFFIX}" CACHE PATH "The subdirectory relative to the install prefix where libraries will be installed (default is /lib${LIB_SUFFIX})" FORCE)
+if(CMAKE_HOST_APPLE)
+ set(ALTERNATIVE_QT_INCLUDE_DIR "" CACHE PATH "Deprecated. CMake now finds the proper include dir itself.")
+ set(OSX_USE_LIBCPP "OFF" CACHE BOOL "Explicitly link the libc++ standard library (useful for macOS deployment targets lower than 10.9.")
+ if(OSX_USE_LIBCPP)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
+ endif()
+endif()
+
+# Force usage of the C++17 standard
+set(CMAKE_CXX_STANDARD 17)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+
+# Obtain QT_INCLUDE_DIR from INTERFACE_INCLUDE_DIRECTORIES which returns a list
+# ../install-qt-6/include/QtCore;../install-qt-6/include
+set(QT_INCLUDE_DIR "")
+get_target_property(QT_INCLUDE_DIR_LIST Qt6::Core INTERFACE_INCLUDE_DIRECTORIES)
+foreach(_Q ${QT_INCLUDE_DIR_LIST})
+ if(NOT "${_Q}" MATCHES "QtCore$")
+ set(QT_INCLUDE_DIR "${_Q}")
+ endif()
+endforeach()
+if(QT_INCLUDE_DIR STREQUAL "")
+ message(FATAL_ERROR "Unable to obtain the Qt include directory")
+endif()
+
+# On macOS, check if Qt is a framework build. This affects how include paths should be handled.
+get_target_property(QtCore_is_framework Qt${QT_MAJOR_VERSION}::Core FRAMEWORK)
+
+if(QtCore_is_framework)
+ # Get the path to the framework dir.
+ set(QT_FRAMEWORK_INCLUDE_DIR "${QT6_INSTALL_PREFIX}/${QT6_INSTALL_LIBS}")
+ message(STATUS "*** QT_FRAMEWORK_INCLUDE_DIR is ${QT_FRAMEWORK_INCLUDE_DIR}")
+ set(QT_INCLUDE_DIR "${QT6_INSTALL_PREFIX}/${QT6_INSTALL_HEADERS}")
+endif()
+
+set_cmake_cxx_flags()
+
+message(STATUS "*** computed QT_INCLUDE_DIR as ${QT_INCLUDE_DIR}")
+
+set(BINDING_NAME PySide6)
+
+set(BINDING_API_VERSION "${BINDING_API_MAJOR_VERSION}.${BINDING_API_MINOR_VERSION}.${BINDING_API_MICRO_VERSION}" CACHE STRING "PySide6 version" FORCE)
+set(PYSIDE_SO_VERSION ${BINDING_API_MAJOR_VERSION}.${BINDING_API_MINOR_VERSION})
+if(BINDING_API_PRE_RELEASE_VERSION_TYPE STREQUAL "")
+ set(BINDING_API_VERSION_FULL "${BINDING_API_MAJOR_VERSION}.${BINDING_API_MINOR_VERSION}.${BINDING_API_MICRO_VERSION}"
+ CACHE STRING "PySide6 version [full]" FORCE)
+else()
+ set(BINDING_API_VERSION_FULL "${BINDING_API_MAJOR_VERSION}.${BINDING_API_MINOR_VERSION}.${BINDING_API_MICRO_VERSION}~${BINDING_API_PRE_RELEASE_VERSION_TYPE}${BINDING_API_PRE_RELEASE_VERSION}"
+ CACHE STRING "PySide6 version [full]" FORCE)
+endif()
+
+compute_config_py_values(BINDING_API_VERSION)
+
+include(PySideModules)
+
+# Set default values for pyside6_global.h
+set (Qt${QT_MAJOR_VERSION}Test_FOUND "0")
+set (Qt${QT_MAJOR_VERSION}Widgets_FOUND "0")
+
+collect_essential_modules()
+collect_optional_modules()
+
+# Modules to be built unless specified by -DMODULES on command line
+if(NOT MODULES)
+ set(MODULES "${ALL_ESSENTIAL_MODULES};${ALL_OPTIONAL_MODULES}")
+endif()
+
+# This will contain the set of modules for which bindings are not built.
+set(DISABLED_MODULES "${ALL_ESSENTIAL_MODULES};${ALL_OPTIONAL_MODULES}")
+
+remove_skipped_modules()
+
+# Mark all non-collected modules as disabled. This is used for disabling tests
+# that depend on the disabled modules.
+foreach(m ${DISABLED_MODULES})
+ set(DISABLE_Qt${m} 1)
+endforeach()
+
+# Whether to add libpysideqml
+find_package(Qt6 COMPONENTS Qml)
+
+string(REGEX MATCHALL "[0-9]+" qt_version_helper "${Qt${QT_MAJOR_VERSION}Core_VERSION}")
+
+list(GET qt_version_helper 0 QT_VERSION_MAJOR)
+list(GET qt_version_helper 1 QT_VERSION_MINOR)
+list(GET qt_version_helper 2 QT_VERSION_PATCH)
+unset(qt_version_helper)
+
+set(PYSIDE_QT_VERSION "${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}" CACHE STRING "Qt version used to compile PySide" FORCE)
+if(ENABLE_VERSION_SUFFIX)
+ set(pyside_SUFFIX "-${BINDING_API_MAJOR_VERSION}.${BINDING_API_MINOR_VERSION}")
+endif()
+
+# no more supported: include(${QT_USE_FILE})
+
+# Configure OS support
+check_os()
+
+# Define supported Qt Version
+set(SUPPORTED_QT_VERSION "${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH}")
+
+
+# uninstall target
+configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake"
+ "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
+ IMMEDIATE @ONLY)
+
+# When opening super project, prevent redefinition of uninstall target.
+if(NOT TARGET uninstall)
+ add_custom_target(uninstall "${CMAKE_COMMAND}"
+ -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
+endif()
+
+if(NOT PYTHON_SITE_PACKAGES)
+ shiboken_internal_set_python_site_packages()
+endif()
+
+shiboken_get_debug_level(debug_level)
+
+set(GENERATOR_EXTRA_FLAGS
+ ${SHIBOKEN_GENERATOR_EXTRA_FLAGS}
+ ${debug_level}
+ --generator-set=shiboken
+ --enable-parent-ctor-heuristic
+ --enable-pyside-extensions
+ --enable-return-value-heuristic
+ --use-isnull-as-nb-bool)
+use_protected_as_public_hack()
+
+# Build with Address sanitizer enabled if requested. This may break things, so use at your own risk.
+if(SANITIZE_ADDRESS AND NOT MSVC)
+ setup_sanitize_address()
+endif()
+
+find_package(Qt6 COMPONENTS Designer)
+
diff --git a/sources/pyside6/cmake_uninstall.cmake b/sources/pyside6/cmake_uninstall.cmake
index df95fb9d8..4031b4e1a 100644
--- a/sources/pyside6/cmake_uninstall.cmake
+++ b/sources/pyside6/cmake_uninstall.cmake
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
IF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
MESSAGE(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\"")
ENDIF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
diff --git a/sources/pyside6/doc/CMakeLists.txt b/sources/pyside6/doc/CMakeLists.txt
index f900b96eb..83583756f 100644
--- a/sources/pyside6/doc/CMakeLists.txt
+++ b/sources/pyside6/doc/CMakeLists.txt
@@ -1,7 +1,48 @@
-cmake_minimum_required(VERSION 3.16)
-cmake_policy(VERSION 3.16)
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+cmake_minimum_required(VERSION 3.18)
+cmake_policy(VERSION 3.18)
project(doc)
+list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/../../shiboken6/cmake")
+include(FindDocTools)
+
+# When the doc project is built as part of the pyside project, we show informational message
+# and return early if requirements are not met.
+if(NOT CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
+ if(QT_SRC_DIR AND SPHINX_BUILD AND DOT_EXEC AND BUILD_DOCS)
+ # All requirements met, proceed.
+ else()
+ set(reasons "")
+ if(NOT QT_SRC_DIR)
+ list(APPEND reasons " QT_SRC_DIR variable not set\n")
+ endif()
+ if(NOT SPHINX_BUILD)
+ list(APPEND reasons " sphinx-build command not found\n")
+ endif()
+ if(NOT DOT_EXEC)
+ list(APPEND reasons " graphviz not found\n")
+ endif()
+ if(NOT BUILD_DOCS)
+ list(APPEND reasons " BUILD_DOCS was set to FALSE (default)\n")
+ endif()
+ message(STATUS "apidoc generation targets disabled due to the following reasons:\n"
+ ${reasons})
+ return()
+ endif()
+else()
+ # We are building the docs as a standalone project, likely via setup.py build_base_docs
+ # command. Perform stricter sanity checks.
+ if(NOT SPHINX_BUILD)
+ message(FATAL_ERROR "sphinx-build command not found. Please set the SPHINX_BUILD variable.")
+ endif()
+endif()
+
+# Generate html by default.
+if(NOT DOC_OUTPUT_FORMAT)
+ set(DOC_OUTPUT_FORMAT "html")
+endif()
if (WIN32)
set(PATH_SEP "\;")
@@ -10,6 +51,12 @@ else()
endif()
set(DOC_DATA_DIR "${CMAKE_CURRENT_BINARY_DIR}/qdoc-output")
+# Directory for sphinx-generated files to build the HTML website. If changed,
+# update "build_scripts/main.py" in "PysideBaseDocs" class at line:
+# self.sphinx_src = self.out_dir / "base".
+set(DOC_BASE_DIR "base")
+
+set(ENV_INHERITANCE_FILE "${CMAKE_CURRENT_BINARY_DIR}/inheritance.json")
get_filename_component(ROOT ${CMAKE_CURRENT_BINARY_DIR} DIRECTORY)
set(TS_ROOT "${ROOT}/PySide6")
@@ -17,39 +64,53 @@ set(TS_ROOT "${ROOT}/PySide6")
file(REMOVE ${CMAKE_CURRENT_LIST_DIR}/pyside.qdocconf ${CMAKE_CURRENT_LIST_DIR}/pyside.qdocconf.in)
# We need to find the interpreter when running this only
-# for a rst_build_docs case, and not a full doc build
+# for the 'build_base_docs' case, and not a full doc build
if (NOT FULLDOCSBUILD)
find_package(Python COMPONENTS Interpreter)
- set(PYTHON_EXECUTABLE ${Python_EXECUTABLE})
endif()
+if (QT_SRC_DIR)
+ file(REAL_PATH ${QT_SRC_DIR}/.. QT_ROOT_PATH)
+else()
+ set(QT_ROOT_PATH "")
+endif()
+
+if(PYSIDE_IS_CROSS_BUILD)
+ set(python_executable "${QFP_PYTHON_HOST_PATH}")
+else()
+ set(python_executable "${Python_EXECUTABLE}")
+endif()
+
+set(TOOLS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../../tools")
+
if (FULLDOCSBUILD)
# Fetch and transform the snippets from Qt
- message(STATUS "Fetching and converting snippets")
- if ("${QT_SRC_DIR}" STREQUAL "")
- message(FATAL_ERROR "There is no value set on QT_SRC_DIR, the snippet conversion will fail")
- endif()
- set(PYSIDE_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/../../../")
- set(SNIPPETS_TOOL "${CMAKE_CURRENT_SOURCE_DIR}/../../../tools/snippets_translate/main.py")
+ set(SNIPPETS_TOOL "${TOOLS_DIR}/snippets_translate/main.py")
+ set(SNIPPETS_TARGET ${CMAKE_CURRENT_BINARY_DIR}/${DOC_BASE_DIR}/codesnippets)
+
# Note QT_SRC_DIR points to 'qtbase',
# so we use the general SRC directory to copy all the other snippets
- execute_process(COMMAND ${PYTHON_EXECUTABLE} ${SNIPPETS_TOOL}
- --qt ${QT_SRC_DIR}/.. --pyside ${PYSIDE_ROOT} -w
- WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
- ERROR_VARIABLE SNIPPETS_ERROR)
- if (SNIPPETS_ERROR)
- message(FATAL_ERROR "The 'snippets_translate' tool failed: ${SNIPPETS_ERROR}")
- endif()
+ add_custom_target("snippets_translate" DEPENDS "${SNIPPETS_TARGET}")
+ add_custom_command(OUTPUT "${SNIPPETS_TARGET}"
+ COMMAND ${python_executable} ${SNIPPETS_TOOL}
+ --qt ${QT_ROOT_PATH} --target ${SNIPPETS_TARGET} -w
+ WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
+ COMMENT "Fetching and converting snippets...")
endif()
# Generate example gallery
-message(STATUS "Generating example gallery")
+set(EXAMPLE_TOOL_TARGET "${CMAKE_CURRENT_BINARY_DIR}/${DOC_BASE_DIR}/examples")
+set(EXAMPLE_TOOL_OPTIONS --target "${EXAMPLE_TOOL_TARGET}" --qt-src-dir "${QT_SRC_DIR}")
if (QUIET_BUILD)
- set (EXAMPLE_TOOL_OPTIONS "-q")
+ list(APPEND EXAMPLE_TOOL_OPTIONS "-q")
endif()
-set(EXAMPLE_TOOL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../../tools/example_gallery/main.py")
-execute_process(COMMAND ${PYTHON_EXECUTABLE} ${EXAMPLE_TOOL_DIR} ${EXAMPLE_TOOL_OPTIONS}
- WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR})
+set(EXAMPLE_TOOL_DIR "${TOOLS_DIR}/example_gallery/main.py")
+
+add_custom_target("example_gallery" DEPENDS "${EXAMPLE_TOOL_TARGET}")
+add_custom_command(OUTPUT "${EXAMPLE_TOOL_TARGET}"
+ COMMAND ${python_executable} ${EXAMPLE_TOOL_DIR} ${EXAMPLE_TOOL_OPTIONS}
+ WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
+ COMMENT "Generating example gallery...")
set(SHIBOKEN_INTERSPHINX_FILE "${ROOT}/pyside6/shiboken6/objects.inv")
set(HAS_WEBENGINE_WIDGETS 0)
@@ -64,13 +125,26 @@ if (FULLDOCSBUILD)
# The last element of the include list is the mkspec directory containing qplatformdefs.h
list(GET Qt${QT_MAJOR_VERSION}Core_INCLUDE_DIRS -1 mkspecInclude)
- configure_file("pyside-config.qdocconf.in" "${CMAKE_CURRENT_LIST_DIR}/pyside-config.qdocconf" @ONLY)
+ set(config_docconf "${CMAKE_CURRENT_LIST_DIR}/pyside-config.qdocconf")
+ configure_file("pyside-config.qdocconf.in" "${config_docconf}" @ONLY)
+ set(global_header "${pyside6_BINARY_DIR}/qdoc.h")
file(READ "${pyside6_BINARY_DIR}/pyside6_global.h" docHeaderContents)
+ file(WRITE ${global_header} "${docHeaderContents}")
+
+ set(global_typesystem "${CMAKE_CURRENT_BINARY_DIR}/typesystem_doc.xml")
file(READ "typesystem_doc.xml.in" typeSystemDocXmlContents)
+ file(WRITE ${global_typesystem} "${typeSystemDocXmlContents}")
+ execute_process(
+ COMMAND ${Python_EXECUTABLE} "${TOOLS_DIR}/doc_modules.py"
+ -t "${global_typesystem}" -g "${global_header}" -d "${config_docconf}"
+ "${QT_INCLUDE_DIR}" "${SUPPORTED_QT_VERSION}"
+ OUTPUT_VARIABLE ALL_DOC_MODULES
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ separate_arguments (ALL_DOC_MODULES UNIX_COMMAND "${ALL_DOC_MODULES}")
- foreach(moduleIn ${all_module_shortnames})
+ foreach(moduleIn ${ALL_DOC_MODULES})
string(TOLOWER "${moduleIn}" lowerModuleIn)
set(docConf "${CMAKE_CURRENT_LIST_DIR}/qtmodules/pyside-qt${lowerModuleIn}.qdocconf.in")
if(EXISTS "${docConf}")
@@ -78,85 +152,49 @@ if (FULLDOCSBUILD)
get_filename_component(BASENAME ${OUTFILE} NAME)
configure_file(${docConf} "${CMAKE_CURRENT_LIST_DIR}/qtmodules/${BASENAME}" @ONLY)
file(APPEND "pyside.qdocconf.in" "\@CMAKE_CURRENT_LIST_DIR\@/qtmodules/${BASENAME}\n")
- # Handle docconf files in Qt that contain multiple modules
- if ("${moduleIn}" STREQUAL "3DExtras")
- set(modules 3DCore 3DRender 3DInput 3DLogic 3DAnimation "${moduleIn}")
- elseif ("${moduleIn}" STREQUAL "OpenGL")
- set(modules "${moduleIn}" OpenGLWidgets)
- elseif ("${moduleIn}" STREQUAL "QuickWidgets")
- set(modules Qml Quick "${moduleIn}")
- elseif ("${moduleIn}" STREQUAL "MultimediaWidgets")
- set(modules Multimedia "${moduleIn}")
- elseif ("${moduleIn}" STREQUAL "Scxml")
- set(modules StateMachine "${moduleIn}")
- elseif ("${moduleIn}" STREQUAL "Svg")
- set(modules "${moduleIn}" SvgWidgets)
- elseif ("${moduleIn}" STREQUAL "WebEngineWidgets")
- set(modules WebEngineCore WebEngineWidgets WebEngineQuick "${moduleIn}")
- set(HAS_WEBENGINE_WIDGETS 1)
- else()
- set(modules "${moduleIn}")
- endif()
- foreach(module ${modules})
- string(TOLOWER "${module}" lowerModule)
- # -- @TODO fix this for macOS frameworks.
- file(APPEND "${CMAKE_CURRENT_LIST_DIR}/pyside-config.qdocconf"
- " -I ${QT_INCLUDE_DIR}Qt${module} \\\n"
- " -I ${QT_INCLUDE_DIR}Qt${module}/${Qt${QT_MAJOR_VERSION}Core_VERSION} \\\n"
- " -I ${QT_INCLUDE_DIR}Qt${module}/${Qt${QT_MAJOR_VERSION}Core_VERSION}/Qt${module} \\\n")
-
- set(globalHeader "Qt${module}")
- set(docHeaderContents "${docHeaderContents}\n#include <Qt${module}/${globalHeader}>")
- set(typeSystemDocXmlContents "${typeSystemDocXmlContents}\n<load-typesystem name=\"Qt${module}/typesystem_${lowerModule}.xml\" generate=\"yes\"/>")
- endforeach()
endif()
endforeach()
- set(typeSystemDocXmlContents "${typeSystemDocXmlContents}\n</typesystem>\n")
- file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/typesystem_doc.xml" "${typeSystemDocXmlContents}")
+ # There is no binding for the qtdoc repository, but it has some relevant documents.
+ set(qtdoc_doc_conf "qtmodules/pyside-qtdoc.qdocconf")
+ configure_file("${qtdoc_doc_conf}.in" "${CMAKE_CURRENT_LIST_DIR}/${qtdoc_doc_conf}" @ONLY)
+ file(APPEND "pyside.qdocconf.in" "\@CMAKE_CURRENT_LIST_DIR\@/${qtdoc_doc_conf}\n")
- set(docHeader "${pyside6_BINARY_DIR}/qdoc.h")
- file(WRITE ${docHeader} "${docHeaderContents}")
configure_file("pyside.qdocconf.in" "pyside.qdocconf" @ONLY)
+ configure_file("qdoc_spawner.py.in" "qdoc_spawner.py" @ONLY)
set(QDOC_TYPESYSTEM_PATH "${pyside6_SOURCE_DIR}${PATH_SEP}${pyside6_BINARY_DIR}")
+ if(NOT qdoc_binary)
+ message(FATAL_ERROR
+ "No qdoc binary was found which full documentation generation requires. "
+ "Please either add qdoc to PATH or specify the QDOC_EXECUTABLE variable."
+ )
+ endif()
+
add_custom_target(qdoc DEPENDS "${DOC_DATA_DIR}/webxml/qtcore-index.webxml")
add_custom_command(OUTPUT "${DOC_DATA_DIR}/webxml/qtcore-index.webxml"
- # Use dummy Qt version information, QDoc needs it but has no effect on WebXML output
- COMMAND ${CMAKE_COMMAND} -E env BUILDDIR=${CMAKE_CURRENT_LIST_DIR}/src QT_INSTALL_DOCS=${QT_SRC_DIR}/doc
- QT_VERSION=${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH}
- QT_VER=${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}
- QT_VERSION_TAG=${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH}
- qdoc pyside.qdocconf -single-exec -installdir ${DOC_DATA_DIR} -outputdir ${DOC_DATA_DIR}
+ Use dummy Qt version information, QDoc needs it but has no effect on WebXML output
+ COMMAND ${CMAKE_COMMAND} -E env ${python_executable} qdoc_spawner.py
+ --qt=${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH}
+ --doc-data-dir=${DOC_DATA_DIR}
+ --qdoc-binary=${qdoc_binary}
+ --build-dir=${CMAKE_CURRENT_LIST_DIR}/src
+ --qt-install-docs=${QT_SRC_DIR}/doc
+ --parallel="auto"
+ --verbose
COMMENT "Running qdoc against Qt source code...")
endif()
-# conditional tag for sphinx build
-#string(JOIN "_" SPHINX_TAG ${DOC_OUTPUT_FORMAT} "format")
-# Python script to replace the virtualFolder string in the QHP
-set(py_cmd "
-import fileinput
-import re
-try:
-\tfor line in fileinput.input('html/PySide.qhp',inplace=True,backup='.bak'):
-\t\tline_copy=line.strip()
-\t\tif not line_copy: # check for empty line
-\t\t\tcontinue
-\t\tmatch=re.match('(^.*virtualFolder.)doc(.*$)',line)
-\t\tif match:
-\t\t\trepl=''.join([match.group(1),'pyside6',match.group(2)])
-\t\t\tprint(line.replace(match.group(0),repl),end='')
-\t\telse:
-\t\t\tprint(line)
-except:
-\tpass\n")
-file(GENERATE OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/py_script.py CONTENT ${py_cmd})
-
+# Avoid using 'auto' for '-j' option as it could lead to
+# crash on some systems due to out-of-memory situation. Instead
+# use a no. less than 8.
add_custom_target(apidoc
- COMMAND ${SHIBOKEN_PYTHON_INTERPRETER} ${SPHINX_BUILD} -b ${DOC_OUTPUT_FORMAT} ${CMAKE_CURRENT_BINARY_DIR}/rst html
+ COMMAND ${CMAKE_COMMAND} -E env INHERITANCE_FILE=${ENV_INHERITANCE_FILE}
+ ${SHIBOKEN_PYTHON_INTERPRETER} ${SPHINX_BUILD} -b ${DOC_OUTPUT_FORMAT}
+ -j 6 ${CMAKE_CURRENT_BINARY_DIR}/${DOC_BASE_DIR} html
COMMENT "Generating PySide htmls..."
)
@@ -169,56 +207,83 @@ if(DOC_OUTPUT_FORMAT STREQUAL "html")
${CMAKE_CURRENT_BINARY_DIR}/../../shiboken6/doc/html
${CMAKE_CURRENT_BINARY_DIR}/html/shiboken6
COMMENT "Copying Shiboken docs..."
+ DEPENDS "${DOC_DATA_DIR}/webxml/qtcore-index.webxml"
VERBATIM)
else()
- file(TO_NATIVE_PATH ${CMAKE_CURRENT_BINARY_DIR}/html/PySide.qhp QHP_FILE)
- add_custom_command(TARGET apidoc POST_BUILD
- COMMAND ${PYTHON_EXECUTABLE} py_script.py
- COMMAND qhelpgenerator ${QHP_FILE}
- COMMENT "Generating QCH from a QHP file..."
- VERBATIM)
+ if(qhelpgenerator_binary)
+ message(STATUS "qhelpgenerator - found")
+ # Python script that will be called to update the QHP
+ set(PATCH_QHP_SCRIPT "${CMAKE_CURRENT_LIST_DIR}/../../shiboken6/doc/scripts/patch_qhp.py")
+ file(TO_NATIVE_PATH ${CMAKE_CURRENT_BINARY_DIR}/html/PySide.qhp QHP_FILE)
+ add_custom_command(TARGET apidoc POST_BUILD
+ COMMAND ${python_executable} ${PATCH_QHP_SCRIPT} -p -v pyside6 ${QHP_FILE}
+ COMMAND "${qhelpgenerator_binary}" ${QHP_FILE}
+ COMMENT "Generating QCH from a QHP file..."
+ DEPENDS "${DOC_DATA_DIR}/webxml/qtcore-index.webxml"
+ VERBATIM
+ )
+ else()
+ message(WARNING "qhelpgenerator - not found! qch generation disabled")
+ endif()
endif()
# create conf.py based on conf.py.in
-configure_file("conf.py.in" "rst/conf.py" @ONLY)
-
-add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/rst/PySide6/QtCore/index.rst"
- COMMAND Shiboken6::shiboken6 --generator-set=qtdoc ${docHeader}
- --include-paths="${QT_INCLUDE_DIR}${PATH_SEP}${pyside6_SOURCE_DIR}${PATH_SEP}${TS_ROOT}"
- --api-version=${SUPPORTED_QT_VERSION}
- --typesystem-paths="${QDOC_TYPESYSTEM_PATH}"
- --library-source-dir=${QT_SRC_DIR}
- --documentation-data-dir=${DOC_DATA_DIR}/webxml
- --output-directory=${CMAKE_CURRENT_BINARY_DIR}/rst
- --documentation-code-snippets-dir=${CMAKE_CURRENT_BINARY_DIR}/rst/codesnippets/doc/src/snippets${PATH_SEP}${CMAKE_CURRENT_BINARY_DIR}/rst/codesnippets/examples
- --documentation-extra-sections-dir=${CMAKE_CURRENT_BINARY_DIR}/rst/extras
- --additional-documentation=${CMAKE_CURRENT_BINARY_DIR}/rst/additionaldocs.lst
- ${CMAKE_CURRENT_BINARY_DIR}/typesystem_doc.xml
+configure_file("conf.py.in" "${DOC_BASE_DIR}/conf.py" @ONLY)
+
+set(CODE_SNIPPET_ROOT "${CMAKE_CURRENT_BINARY_DIR}/${DOC_BASE_DIR}/codesnippets")
+
+if (FULLDOCSBUILD)
+shiboken_get_tool_shell_wrapper(shiboken tool_wrapper)
+
+add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${DOC_BASE_DIR}/PySide6/QtCore/index.rst"
+ COMMAND
+ ${tool_wrapper}
+ $<TARGET_FILE:Shiboken6::shiboken6>
+ --generator-set=qtdoc
+ ${global_header}
+ --enable-pyside-extensions
+ --include-paths="${QT_INCLUDE_DIR}${PATH_SEP}${pyside6_SOURCE_DIR}${PATH_SEP}${TS_ROOT}"
+ --api-version=${SUPPORTED_QT_VERSION}
+ --typesystem-paths="${QDOC_TYPESYSTEM_PATH}"
+ --library-source-dir=${QT_SRC_DIR}
+ --documentation-data-dir=${DOC_DATA_DIR}/webxml
+ --output-directory=${CMAKE_CURRENT_BINARY_DIR}/${DOC_BASE_DIR}
+ --documentation-code-snippets-dir=${CODE_SNIPPET_ROOT}
+ --snippets-path-rewrite=${QT_ROOT_PATH}:${CODE_SNIPPET_ROOT}
+ --documentation-extra-sections-dir=${CMAKE_CURRENT_BINARY_DIR}/${DOC_BASE_DIR}/extras
+ --additional-documentation=${CMAKE_CURRENT_BINARY_DIR}/${DOC_BASE_DIR}/additionaldocs.lst
+ --inheritance-file=${ENV_INHERITANCE_FILE}
+ ${global_typesystem}
WORKING_DIRECTORY ${${module}_SOURCE_DIR}
COMMENT "Running generator to generate documentation...")
+endif()
-add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/rst/codesnippets"
- COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/rst
+add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${DOC_BASE_DIR}/extras"
+ COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/${DOC_BASE_DIR}
COMMENT "Copying docs...")
add_custom_target("doc_copy"
- DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/rst/codesnippets")
+ DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/${DOC_BASE_DIR}/extras")
add_custom_target("docrsts"
- DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/rst/PySide6/QtCore/index.rst")
+ DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/${DOC_BASE_DIR}/PySide6/QtCore/index.rst")
+set(LIBEXEC_PATH "${QT6_INSTALL_PREFIX}/${QT6_INSTALL_LIBEXECS}")
add_custom_target("licensedocrsts"
- COMMAND ${PYTHON_EXECUTABLE}
+ COMMAND ${python_executable}
${CMAKE_CURRENT_LIST_DIR}/qtattributionsscannertorst.py
+ -l "${LIBEXEC_PATH}"
${CMAKE_CURRENT_LIST_DIR}/../../..
- ${CMAKE_CURRENT_BINARY_DIR}/rst/licenses.rst
+ ${CMAKE_CURRENT_BINARY_DIR}/${DOC_BASE_DIR}/licenses.rst
COMMENT "Creating 3rdparty license documentation..."
)
+add_dependencies(docrsts example_gallery)
+
if (FULLDOCSBUILD)
add_dependencies(apidoc docrsts licensedocrsts)
add_dependencies(licensedocrsts docrsts)
- add_dependencies(docrsts doc_copy qdoc)
+ add_dependencies(docrsts doc_copy qdoc snippets_translate)
endif()
#install files
diff --git a/sources/pyside6/doc/PySide6/QtAsyncio/index.rst b/sources/pyside6/doc/PySide6/QtAsyncio/index.rst
new file mode 100644
index 000000000..326f6efcc
--- /dev/null
+++ b/sources/pyside6/doc/PySide6/QtAsyncio/index.rst
@@ -0,0 +1,150 @@
+.. module:: PySide6.QtAsyncio
+
+PySide6.QtAsyncio
+*****************
+
+.. note:: This module is currently in technical preview.
+
+The Qt Asyncio module is a pure Python module that allows programs to be
+written that use Qt's API in conjunction with `asyncio
+<https://docs.python.org/3/library/asyncio.html>`_. asyncio is a popular
+Python library for asynchronous programming. It is used in particular
+for programs that need to handle many I/O operations from many sources,
+such as web servers. More generally, it allows developers to work with
+`couroutines <https://docs.python.org/3/library/asyncio-task.html#coroutine>`_.
+Coroutines can be imagined as "asynchronous functions". In contrast to
+Qt's signals and slot mechanism, this allows for asynchronous programs
+that are closer in program flow to synchronous programs, as programs no
+longer have to be imagined as a series of callbacks. Instead, coroutines
+transparently resume and yield at designated spots.
+
+Consider the following simple coroutine defined with the ``async``
+keyword in front of its definition:
+
+::
+
+ async def do_something():
+ result = await do_something_asynchronously()
+ print(result)
+
+``do_something_asynchronously()`` is a coroutine itself, e.g., an
+I/O-heavy operation that would normally block the execution flow in a
+synchronous program. Instead, the ``await`` keyword is used to wait for
+the result, at which point ``do_something()`` yields and the program
+flow transparently switches to the next asynchronous task. When the
+result becomes available, the program flow is able to switch back to the
+``do_something()`` coroutine, which then resumes and prints the result.
+
+The asyncio API
+^^^^^^^^^^^^^^^
+
+asyncio and Qt are both based on an event loop. asyncio provides an API
+to replace its default event loop with a custom implementation.
+**QtAsyncio** provides such an implementation that uses Qt's event loop,
+allowing Qt and asyncio to be used together.
+
+We consider that this API consists of two levels:
+
+1. Fundamental infrastructure for event loops and asynchronous
+ operations, including `futures
+ <https://docs.python.org/3/library/asyncio-future.html#asyncio.Future>`_,
+ `tasks <https://docs.python.org/3/library/asyncio-task.html#asyncio.Task>`_,
+ `handles <https://docs.python.org/3/library/asyncio-eventloop.html#callback-handles>`_,
+ executors, and event loop management functions (see below).
+2. A user-facing API for use in applications, including transports and
+ protocols, network connections, servers, sockets, signals,
+ subprocesses.
+
+**QtAsyncio** currently covers the first level. This includes the
+following functions, for which the API is identical with QtAsyncio as
+with asyncio:
+
+* `run_until_complete() <https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.run_until_complete>`_
+* `run_forever() <https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.run_forever>`_
+* `stop() <https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.stop>`_
+* `is_running() <https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.is_running>`_
+* `is_closed() <https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.is_closed>`_
+* `close() <https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.close>`_
+* `shutdown_asyncgens() <https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.shutdown_asyncgens>`_
+* `shutdown_default_executor() <https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.shutdown_default_executor>`_
+* `call_soon() <https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.call_soon>`_
+* `call_soon_threadsafe() <https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.call_soon_threadsafe>`_
+* `call_later() <https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.call_later>`_
+* `call_at() <https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.call_at>`_
+* `time() <https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.time>`_
+* `create_future() <https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.create_future>`_
+* `create_task() <https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.create_task>`_
+* `set_task_factory() <https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.set_task_factory>`_
+* `get_task_factory() <https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.get_task_factory>`_
+
+Also included is the ability to
+`run synchronous code in an executor <https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.run_in_executor>`_
+(``ThreadPoolExecutor``).
+
+Get started with QtAsyncio
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+To write a program with **QtAsyncio**, first import the module, e.g.:
+
+::
+
+ import PySide6.QtAsyncio as QtAsyncio
+
+**QtAsyncio** provides a function ``run()`` that can be used to run a
+specific coroutine until it is complete, or to start the Qt & asyncio
+event loop plainly. The former case makes sense if the program flow
+starts with said coroutine, the latter case makes sense if a coroutine
+is enqueued later in the program flow, e.g., after pressing a button in
+the UI.
+
+::
+
+ QtAsyncio.run()
+
+(see the `asyncio "minimal" example <https://doc.qt.io/qtforpython-6/examples/example_async_minimal.html>`_
+for an instance of this usage) or
+
+::
+
+ QtAsyncio.run(my_coroutine())
+
+(see the `asyncio "Eratosthenes" example <https://doc.qt.io/qtforpython-6/examples/example_async_eratosthenes.html>`_)
+or
+
+::
+
+ QtAsyncio.run(my_coroutine(), keep_running=False)
+
+to run the coroutine and then stop the event loop upon its completion.
+This latter case behaves identically to ``asyncio.run(my_coroutine())``.
+
+An additional optional argument ``quit_qapp`` can be passed to ``run()``
+to configure whether the QCoreApplication at the core of QtAsyncio
+should be shut down when asyncio finishes. A special case where one
+would want to disable this is test suites that want to reuse a single
+QCoreApplication instance across all unit tests, which would fail if
+this instance is shut down every time. The default is ``True``.
+
+Note that this argument is orthogonal to the ``keep_running`` argument.
+``keep_running`` determines if **asyncio** should keep running after the
+coroutine has finished, while ``quit_qapp`` determines if the
+QCoreApplication should be shut down after asyncio has finished. It is
+possible for asyncio to finish while the QCoreApplication is kept alive.
+
+An argument ``handle_sigint`` determines whether QtAsyncio should handle
+SIGINT (Ctrl+C) and shut down the event loop when it is received. The
+default is ``False``. Set this to ``True`` if you want QtAsyncio to take
+care of handling SIGINT instead of your program.
+
+Coroutines explained
+^^^^^^^^^^^^^^^^^^^^
+
+Coroutines are functions that can be paused (yield) and resumed. Behind
+this simple concept lies a complex mechanism that is abstracted by the
+asynchronous framework. This talk presents a diagram that attempts to
+illustrate the flow of a coroutine from the moment it's provided to the
+async framework until it's completed.
+
+.. image:: https://img.youtube.com/vi/XuqdTvisqkQ/mqdefault.jpg
+ :alt: Asynchronous programming with asyncio and Qt
+ :target: https://www.youtube.com/watch?v=XuqdTvisqkQ
diff --git a/sources/pyside6/doc/_static/css/qt_font.css b/sources/pyside6/doc/_static/css/qt_font.css
new file mode 100644
index 000000000..ce39943ef
--- /dev/null
+++ b/sources/pyside6/doc/_static/css/qt_font.css
@@ -0,0 +1,15 @@
+@font-face {
+ font-family: 'Titillium Web';
+ font-style: normal;
+ font-weight: 400;
+ src: url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-regular.eot");
+ /* IE9 Compat Modes */
+ src: local("Titillium Web"),
+ local("TitilliumWeb-Regular"),
+ url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-regular.eot?#iefix") format("embedded-opentype"),
+ url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-regular.woff2") format("woff2"),
+ url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-regular.woff") format("woff"),
+ url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-regular.ttf") format("truetype"),
+ url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-regular.svg#TitilliumWeb") format("svg");
+ /* Legacy iOS */
+}
diff --git a/sources/pyside6/doc/_static/css/qt_style.css b/sources/pyside6/doc/_static/css/qt_style.css
new file mode 100644
index 000000000..08c4646c6
--- /dev/null
+++ b/sources/pyside6/doc/_static/css/qt_style.css
@@ -0,0 +1,100 @@
+.text-center {
+ text-align: center !important;
+}
+
+.text-center img {
+ padding-top: 10px;
+ height: 70px !important;
+}
+
+.cover-img img {
+ object-fit: cover;
+ height: 50%;
+}
+
+/* Tables */
+.section .docutils.container td {
+ float:left;
+}
+
+table.docutils {
+ margin-right: auto;
+ margin-bottom: 10px;
+ border: none;
+ width: initial;
+ font-size: 0.8em;
+}
+
+table.docutils.colwidths-given td {
+ float: none;
+}
+
+table.docutils th,
+table.docutils td {
+ padding-left:0;
+ border: none;
+}
+
+table.docutils td ul {
+ margin:0
+}
+
+table.docutils td ul > li {
+ margin: 0 0 0.5em;
+}
+
+.hide {
+ display: none;
+}
+
+.fixed .container {
+ max-width:1280px;
+ margin:0 auto;
+ padding:0 3.9%; /* 0? */
+ position:relative;
+ overflow:visible
+}
+
+/* We cannot put a :download:`....` command inside
+ * a sphinx-design button, so we add some properties from the button
+ * to the download class to mimic it */
+code.download {
+ text-align: center;
+ color: var(--color-brand-primary);
+ display: block;
+ border-color: transparent;
+ background-color: transparent;
+ border: 1px solid var(--color-brand-primary) !important;
+ border-radius: 0.25rem;
+ font-size: 1rem;
+ font-weight: 400;
+ vertical-align: middle;
+ padding: .375rem .75rem;
+ user-select: none;
+ line-height: 1.5;
+ transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;
+}
+
+code.download:hover {
+ color: white;
+ background-color: var(--color-brand-primary);
+ border-color: var(--color-brand-primary);
+ text-decoration: none;
+ padding: .375rem .75rem;
+}
+
+dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple):first-child > dt {
+ font-size: +2.25rem;
+ font-weight: 700;
+ color: #ff00dd;
+}
+
+.theme-toggle svg{
+ width: +1.25rem;
+ height: +2.25rem;
+}
+
+.sd-card-title code span {
+ font-size: +1rem;
+ color: var(--color-brand-primary);
+}
diff --git a/sources/pyside6/doc/_static/qtforpython.ico b/sources/pyside6/doc/_static/qtforpython.ico
new file mode 100644
index 000000000..2f4d9e9de
--- /dev/null
+++ b/sources/pyside6/doc/_static/qtforpython.ico
Binary files differ
diff --git a/sources/pyside6/doc/_static/qtforpython.png b/sources/pyside6/doc/_static/qtforpython.png
new file mode 100644
index 000000000..33e971022
--- /dev/null
+++ b/sources/pyside6/doc/_static/qtforpython.png
Binary files differ
diff --git a/sources/pyside6/doc/_tags/android.rst b/sources/pyside6/doc/_tags/android.rst
new file mode 100644
index 000000000..08a30fc0f
--- /dev/null
+++ b/sources/pyside6/doc/_tags/android.rst
@@ -0,0 +1,21 @@
+My tags: Android
+################
+
+.. toctree::
+ :maxdepth: 1
+ :caption: With this tag
+
+ ../examples/example_bluetooth_heartrate_game.rst
+ ../examples/example_bluetooth_lowenergyscanner.rst
+ ../examples/example_location_mapviewer.rst
+ ../examples/example_multimedia_audiooutput.rst
+ ../examples/example_multimedia_audiosource.rst
+ ../examples/example_multimedia_camera.rst
+ ../examples/example_qml_editingmodel.rst
+ ../examples/example_qml_usingmodel.rst
+ ../examples/example_quick_models_objectlistmodel.rst
+ ../examples/example_quick_models_stringlistmodel.rst
+ ../examples/example_quick_painteditem.rst
+ ../examples/example_quickcontrols_contactslist.rst
+ ../examples/example_quickcontrols_gallery.rst
+ ../examples/example_widgets_widgets_digitalclock.rst
diff --git a/sources/pyside6/doc/_tags/tagsindex.rst b/sources/pyside6/doc/_tags/tagsindex.rst
new file mode 100644
index 000000000..be29337ec
--- /dev/null
+++ b/sources/pyside6/doc/_tags/tagsindex.rst
@@ -0,0 +1,12 @@
+:orphan:
+
+.. _tagoverview:
+
+Tags overview
+#############
+
+.. toctree::
+ :caption: Tags
+ :maxdepth: 1
+
+ Android (14) <android.rst>
diff --git a/sources/pyside6/doc/_templates/layout.html b/sources/pyside6/doc/_templates/layout.html
index 630fb9533..8f16e1cdf 100644
--- a/sources/pyside6/doc/_templates/layout.html
+++ b/sources/pyside6/doc/_templates/layout.html
@@ -42,7 +42,7 @@
{%- block footer %}
<div class="footer">
- <a href="http://www.qt.io/"><img src="{{ pathto('_static/logo_qt.png', 1) }}" alt="Qt" border="0" /></a>
+ <a href="https://www.qt.io/"><img src="{{ pathto('_static/logo_qt.png', 1) }}" alt="Qt" border="0" /></a>
<a href="http://www.python.org"><img src="{{ pathto('_static/logo_python.jpg', 1) }}" alt="Python" border="0" /></a>
<p>{{ copyright }}</p>
</div>
diff --git a/sources/pyside6/doc/_themes/pysidedocs/domainindex.html b/sources/pyside6/doc/_themes/pysidedocs/domainindex.html
deleted file mode 100644
index c136cdd1c..000000000
--- a/sources/pyside6/doc/_themes/pysidedocs/domainindex.html
+++ /dev/null
@@ -1,57 +0,0 @@
-{#
- basic/domainindex.html
- ~~~~~~~~~~~~~~~~~~~~~~
-
- Template for domain indices (module index, ...).
-
- :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS.
- :license: BSD, see LICENSE for details.
-#}
-{% extends "layout.html" %}
-{% set title = indextitle %}
-{% block extrahead %}
-{{ super() }}
-{% if not embedded and collapse_index %}
- <script type="text/javascript">
- DOCUMENTATION_OPTIONS.COLLAPSE_INDEX = true;
- </script>
-{% endif %}
-{% endblock %}
-{% block body %}
-<div class="section">
- {%- set curr_group = 0 %}
-
- <h1>{{ indextitle }}</h1>
-
- <div class="modindex-jumpbox">
- {%- for (letter, entries) in content %}
- <a href="#cap-{{ letter }}"><strong>{{ letter }}</strong></a>
- {%- if not loop.last %} | {% endif %}
- {%- endfor %}
- </div>
-
- <table class="indextable modindextable" cellspacing="0" cellpadding="2">
- {%- for letter, entries in content %}
- <tr class="pcap"><td></td><td>&nbsp;</td><td></td></tr>
- <tr class="cap"><td></td><td><a name="cap-{{ letter }}">
- <strong>{{ letter }}</strong></a></td><td></td></tr>
- {%- for (name, grouptype, page, anchor, extra, qualifier, description)
- in entries %}
- {%- if grouptype == 1 %}{% set curr_group = curr_group + 1 %}{% endif %}
- <tr{% if grouptype == 2 %} class="cg-{{ curr_group }}"{% endif %}>
- <td>{% if grouptype == 1 -%}
- <img src="{{ pathto('_static/minus.png', 1) }}" id="toggle-{{ curr_group }}"
- class="toggler" style="display: none" alt="-" />
- {%- endif %}</td>
- <td>{% if grouptype == 2 %}&nbsp;&nbsp;&nbsp;{% endif %}
- {% if page %}<a href="{{ pathto(page) }}#{{ anchor }}">{% endif -%}
- <tt class="xref">{{ name|e }}</tt>
- {%- if page %}</a>{% endif %}
- {%- if extra %} <em>({{ extra|e }})</em>{% endif -%}
- </td><td>{% if qualifier %}<strong>{{ qualifier|e }}:</strong>{% endif %}
- <em>{{ description|e }}</em></td></tr>
- {%- endfor %}
- {%- endfor %}
- </table>
-</div>
-{% endblock %}
diff --git a/sources/pyside6/doc/_themes/pysidedocs/searchbox.html b/sources/pyside6/doc/_themes/pysidedocs/searchbox.html
deleted file mode 100644
index 55a972156..000000000
--- a/sources/pyside6/doc/_themes/pysidedocs/searchbox.html
+++ /dev/null
@@ -1,12 +0,0 @@
-{%- if pagename != "search" %}
-<div id="searchbox" style="display: none">
- <h3>{{ _('Quick search') }}</h3>
- <form class="search" action="{{ pathto('search') }}" method="get">
- <input type="text" name="q" id="q" size="18" />
- <input type="submit" value="{{ _('Go') }}" id="search_button" />
- <input type="hidden" name="check_keywords" value="yes" />
- <input type="hidden" name="area" value="default" />
- </form>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-{%- endif %}
diff --git a/sources/pyside6/doc/_themes/pysidedocs/static/bg_header.png b/sources/pyside6/doc/_themes/pysidedocs/static/bg_header.png
deleted file mode 100644
index 843e7e2c5..000000000
--- a/sources/pyside6/doc/_themes/pysidedocs/static/bg_header.png
+++ /dev/null
Binary files differ
diff --git a/sources/pyside6/doc/_themes/pysidedocs/static/bg_topo.jpg b/sources/pyside6/doc/_themes/pysidedocs/static/bg_topo.jpg
deleted file mode 100644
index 4229ae8db..000000000
--- a/sources/pyside6/doc/_themes/pysidedocs/static/bg_topo.jpg
+++ /dev/null
Binary files differ
diff --git a/sources/pyside6/doc/_themes/pysidedocs/static/fakebar.png b/sources/pyside6/doc/_themes/pysidedocs/static/fakebar.png
deleted file mode 100644
index b45830e00..000000000
--- a/sources/pyside6/doc/_themes/pysidedocs/static/fakebar.png
+++ /dev/null
Binary files differ
diff --git a/sources/pyside6/doc/_themes/pysidedocs/static/logo_python.jpg b/sources/pyside6/doc/_themes/pysidedocs/static/logo_python.jpg
deleted file mode 100644
index cd474efba..000000000
--- a/sources/pyside6/doc/_themes/pysidedocs/static/logo_python.jpg
+++ /dev/null
Binary files differ
diff --git a/sources/pyside6/doc/_themes/pysidedocs/static/logo_qt.png b/sources/pyside6/doc/_themes/pysidedocs/static/logo_qt.png
deleted file mode 100644
index 3bc03b7c7..000000000
--- a/sources/pyside6/doc/_themes/pysidedocs/static/logo_qt.png
+++ /dev/null
Binary files differ
diff --git a/sources/pyside6/doc/_themes/pysidedocs/static/minus.png b/sources/pyside6/doc/_themes/pysidedocs/static/minus.png
deleted file mode 100644
index da1c5620d..000000000
--- a/sources/pyside6/doc/_themes/pysidedocs/static/minus.png
+++ /dev/null
Binary files differ
diff --git a/sources/pyside6/doc/_themes/pysidedocs/static/plus.png b/sources/pyside6/doc/_themes/pysidedocs/static/plus.png
deleted file mode 100644
index b3cb37425..000000000
--- a/sources/pyside6/doc/_themes/pysidedocs/static/plus.png
+++ /dev/null
Binary files differ
diff --git a/sources/pyside6/doc/_themes/pysidedocs/static/pyside.css b/sources/pyside6/doc/_themes/pysidedocs/static/pyside.css
deleted file mode 100644
index 9082e5caa..000000000
--- a/sources/pyside6/doc/_themes/pysidedocs/static/pyside.css
+++ /dev/null
@@ -1,2197 +0,0 @@
-@import url('cookie-confirm.css') screen;
-
-/* -- admonitions -- */
-
-div.admonition {
- margin: 1.5em 0 1.5em;
- padding: 0;
-}
-
-div.admonition dt {
- font-weight: bold;
-}
-
-div.admonition dl {
- margin-bottom: 0;
-}
-
-p.admonition-title {
- margin: 0px 10px 5px 0px;
- font-weight: bold;
-}
-
-div.admonition code {
- font-family: inherit;
-}
-
-p.admonition-title + p {
- padding-left: 1em;
-}
-
-div.admonition a:after {
- content: ', ';
-}
-
-div.admonition a:last-child:after {
- content: '';
-}
-
-.body {
- width: 100%;
- background-color: #00FF00;
- clear: both;
- display:inline-block;
- background-color:#fff;
- padding: 25px 35px 20px 30px;
- -webkit-box-sizing:border-box;
- -moz-box-sizing:border-box;
- -ms-box-sizing:border-box;
- box-sizing:border-box;
-}
-.bodywrapper {
- position: relative;
- /*background-color: #0000ff;*/
-}
-.bodywrapper .admonition p.admonition-title {
- margin-bottom:5px
-}
-
-.bodywrapper .admonition p {
- margin:0
-}
-
-div.body p.centered {
- text-align: center;
- margin-top: 25px;
-}
-
-div.warning, div.seealso, div.note, div.important {
- padding: 6px 0px 6px 10px;
- border: none;
-}
-
-div.warning {
- background-color: #ffe4e4;
-}
-
-div.important {
- background-color: #fef9f3;
- border-left: 5px solid #feeec8;
-}
-
-div.seealso {
- background-color: #fff2d6;
-}
-
-div.note {
- background-color: #c5d3f4;
- border-left: 5px solid #7899f4;
-}
-
-table.docutils {
- margin-right: auto;
- margin-bottom: 10px;
- border: none;
- width: initial;
-}
-
-table.docutils.colwidths-given td {
- float: none;
-}
-
-table.docutils th,
-table.docutils td {
- padding-left:0;
- border: none;
-}
-
-table.docutils td ul {
- margin:0
-}
-
-table.docutils td ul > li {
- margin: 0 0 0.5em;
-}
-h2 em {
- float: right;
- font-size: 10px;
- position: relative;
- top: -20px;
-}
-
-.document {
- padding-bottom: 20px;
-}
-
-.documentwrapper {
- margin-left: 255px;
- position: relative;
-}
-@media screen and (max-width: 700px) {
- .documentwrapper {
- clear: both;
- margin-left: 0px;
- position: relative;
- }
-}
-
-.body blockquote {
- border: none;
- padding-left: 0;
- margin-bottom: 1.5em;
-}
-
-.sphinxsidebar {
- float: left;
- width: 186px;
- padding: 15px;
- text-align: left;
- background-color: #fff;
- clear: both;
-}
-
-.sphinxsidebar ul {
- padding: 0px;
- margin: 0px;
- list-style-position: inside;
-}
-
-.sphinxsidebar > ul {
- padding: 0px;
- margin: 0px;
-}
-
-.sphinxsidebar ul li li {
- margin-left: 10px;
- padding: 0px;
- font-size: 0.95em;
-}
-
-.sphinxsidebar ul a,
-.sphinxsidebar p.topless a {
- word-break: break-word;
-}
-
-.sphinxsidebar h3, .sphinxsidebar h3 a {
- color: #333;
-}
-
-.sphinxsidebar p.topless {
- margin: 1em 0 1em;
-}
-
-.pysidetoc ul {
- list-style: none;
- padding: 0px;
- margin: 0px;
-}
-
-.pysidetoc em {
- font-style: normal;
-}
-
-.pysidetoc strong {
- display: block;
- padding: 5px;
- margin: 0 10px 10px 0;
- border: none;
- background-color: #e2e2e2;
-}
-
-.section .docutils.container td {
- float:left;
-}
-
-.hide {
- display: none;
-}
-
-/* copy-notice */
-.document + p {
- margin-left: 255px;
- width: 70%;
- font-size: 0.75em;
- margin: 0 35px 15px 280px;
-}
-
-#searchbox {
- border-top: 1px solid #989898;
- padding-top: 10px;
- margin-left: -10px;
- margin-right: -10px;
- padding-left: 10px;
- padding-right: 10px;
-}
-
-#search_button {
- border: 1px solid #3A393A;
- background-color: #3A393A;
- color: white;
- cursor: pointer;
- -moz-border-radius: 5px;
- -webkit-border-radius: 5px;
- -khtml-border-radius: 5px;
-
-}
-
-form {
- margin: 0px;
- padding: 0px;
-}
-
-#searchbox h3 {
- padding: 10px 0 0 0;
- margin-bottom: 5px;
-}
-
-/* search field */
-form #q {
- width: 136px;
- /* height: 22px; */
- /* border: none; */
- margin: 0px;
- -moz-border-radius: 5px;
- -webkit-border-radius: 5px;
- -khtml-border-radius: 5px;
- margin-top: 2px;
- padding: 4px;
- line-height: 22px;
-}
-
-#search-results h2 {
- display: none;
-}
-
-#search-results h2 {
- display: none;
-}
-
-#search-results ul.search {
- margin: 0px;
- padding: 0px;
-}
-
-ul.search div.context {
- padding-left: 40px;
-}
-
-#installation td {
- text-align: center;
- font-weight: bold;
-}
-
-em {
- color: inherit;
- font-style:italic;
-}
-
-/******** REL bar *********/
-
-.related {
- display: inline;
-}
-
-.related h3 {
- display: none;
-}
-
-.align-center {
- text-align: center;
-}
-
-.contentstable {
- width: 100%;
-}
-
-.contentstable td {
- padding-left: 30px;
- vertical-align: top;
-}
-
-p.biglink a {
- font-size: 20px;
-}
-
-dt:target, .highlight {
- background-color: #fbe54e;
-}
-
-p.highlight-link {
- margin-top: 10px;
- font-size: 0.8em;
-}
-
-#synopsis table, table.field-list {
- margin: 1em 0 1em 0;
-}
-
-table.field-list tr {
- text-align: left;
-}
-
-tt.descname {
- font-size: 120%;
- font-weight: bold;
-}
-
-#functions ul, #virtual-functions ul, #slots ul, #signals ul, #static-functions ul {
- margin: 0;
- padding: 6px;
- border: 1px solid #ddd;
- border-radius: 0;
- background-color: #e2e2e2;
-}
-
-#functions p, #virtual-functions p, #slots p, #signals p, #static-functions p {
- margin: 0;
- padding: 0;
-}
-
-#functions li, #virtual-functions li, #slots li, #signals li, #static-functions li {
- list-style: none;
- margin: 5px;
- padding: 0;
- font-size: 90%;
-}
-
-#synopsis span.pre {
- color: #009491;
- font-weight: bolder;
-}
-
-#detailed-description .class dt,
-#detailed-description .method dt,
-#detailed-description .staticmethod dt,
-#detailed-description .attribute dt {
- margin: 0px;
- margin-bottom: 10px;
- padding: 10px;
- font-weight: bold;
- background-color: #e2e2e2;
- border: none;
- border-radius: 0;
-}
-
-#detailed-description dd > blockquote,
-#detailed-description dd > .field-list {
- font-family: 'Droid Sans Mono', monospace;
- font-size: small;
- border-left: 10px solid #e2e2e2;
- padding-left: 10px;
- margin-bottom: 1.5em;
-}
-
-#detailed-description dd > blockquote blockquote {
- border: none;
- padding: 0;
-}
-
-#detailed-description .class .field-odd,
-#detailed-description .method .field-odd,
-#detailed-description .staticmethod .field-odd,
-#detailed-description .attribute .field-odd {
- margin: 0;
- padding: 1px 0 0 0;
- background-color: #ffffff;
-
-}
-
-#detailed-description .class .field-even,
-#detailed-description .method .field-even,
-#detailed-description .staticmethod .field-even,
-#detailed-description .attribute .field-even {
- margin: 0;
- padding: 1px 0 0 0;
- background-color: #ffffff;
-}
-
-#detailed-description .class .field-odd li,
-#detailed-description .method .field-odd li,
-#detailed-description .staticmethod .field-odd li,
-#detailed-description .attribute .field-odd li {
- list-style: none;
- margin: 0;
- padding: 0;
-
-}
-
-#detailed-description .class .field-even li,
-#detailed-description .method .field-even li,
-#detailed-description .staticmethod .field-even li,
-#detailed-description .attribute .field-even li {
- list-style: none;
- margin: 0;
- padding: 0;
-}
-
-#detailed-description .class .field-odd p,
-#detailed-description .method .field-odd p,
-#detailed-description .staticmethod .field-odd p,
-#detailed-description .attribute .field-odd p{
- margin: 0;
- margin-left: 20px;
-
-}
-
-#detailed-description .class .field-even p,
-#detailed-description .method .field-even p,
-#detailed-description .staticmethod .field-even p,
-#detailed-description .attribute .field-even p{
- margin: 0;
- margin-left: 20px;
-}
-
-#detailed-description .class .field-odd p:last-child,
-#detailed-description .method .field-odd p:last-child,
-#detailed-description .staticmethod .field-odd p:last-child,
-#detailed-description .attribute .field-odd p:last-child {
- margin-bottom: 10px;
-
-}
-
-#detailed-description .class .field-even p:last-child,
-#detailed-description .method .field-even p:last-child,
-#detailed-description .staticmethod .field-even p:last-child,
-#detailed-description .attribute .field-even p:last-child{
- margin-bottom: 10px;
-}
-
-.document dl.attribute,
-.document dl.class,
-.document dl.method,
-.document dl.staticmethod {
- margin-top: 2em;
-}
-
-.document dl.attribute dd,
-.document dl.class dd,
-.document dl.method dd,
-.document dl.staticmethod dd {
- padding-left: 1em;
-}
-
-#detailed-description .attribute td:nth-child(1) {
- font-family: 'Droid Sans Mono', monospace;
-}
-
-/* Qt theme */
-#navbar {
- position:fixed;
- top:0;
- left:0;
- z-index:100;
- background:#fff;
- width:100%
-}
-#navbar .container, .fixed .container {
- max-width:1280px;
- margin:0 auto;
- padding:0 3.9%; /* 0? */
- position:relative;
- overflow:visible
-}
-#navbar .navbar-header {
- position:relative
-}
-#menuextras li a:hover span {
- color: #41cd52;
-}
-/* new header */
-#mm-wrap, #mm-wrap #mm-helper,
-#mm-wrap #mm-helper li.mm-item,
-#mm-wrap #mm-helper a.mm-link {
- -moz-transition: none;
- -o-transition: none;
- -webkit-transition: none;
- transition: none;
- -webkit-border-radius: 0 0 0 0;
- -moz-border-radius: 0 0 0 0;
- -ms-border-radius: 0 0 0 0;
- -o-border-radius: 0 0 0 0;
- border-radius: 0 0 0 0;
- -webkit-box-shadow: none;
- -moz-box-shadow: none;
- -ms-box-shadow: none;
- -o-box-shadow: none;
- box-shadow: none;
- background: none;
- border: 0;
- bottom: auto;
- box-sizing: border-box;
- clip: auto;
- color: #090e21;
- display: block;
- float: none;
- font-family: inherit;
- font-size: 14px;
- height: auto;
- left: auto;
- line-height: 1.7;
- list-style-type: none;
- margin: 0;
- min-height: 0;
- opacity: 1;
- outline: none;
- overflow: visible;
- padding: 0;
- position: relative;
- right: auto;
- text-align: left;
- text-decoration: none;
- text-transform: none;
- top: auto;
- vertical-align: baseline;
- visibility: inherit;
- width: auto;
-}
-#mm-wrap #mm-helper {
- visibility:visible;
- text-align:right;
- padding:0 0px 0 0px
-}
-#navbar #mm-wrap #mm-helper li.mm-item {
- border-right:solid #f3f3f4 1px;
- padding-right:30px;
- padding-left:30px
-}
-#navbar #mm-wrap #mm-helper li.mm-item > a:hover {
- opacity: .5
-}
-#mm-wrap #mm-helper > li.mm-item {
- margin:0 0 0 0;
- display:inline-block;
- height:auto;
- vertical-align:middle
-}
-#navbar #mm-wrap #mm-helper li.mm-item:nth-child(3) {
- border-right:0
-}
-#mm-wrap #mm-helper a.mm-link {
- cursor: pointer
-}
-@media (max-width: 1279px) {
- #navbar {
- padding:0;
- position:relative;
- }
- #navbar .container {
- max-width:100%
- }
- .container {
- padding:0 2%
- }
- .sphinxsidebar {
- top: 16px !important;
- }
-}
-#navbar .navbar-oneQt {
- display:inline;
- float:left;
- width:31px;
- color:#41cd52
-}
-#navbar .navbar-oneQt:before {
- content:attr(data-icon);
- position:absolute;
- top:14px;
- left:0;
- color:#41cd52;
- font-family:'Qt Icons';
- line-height:1;
- font-size:40px;
- transition:all 0.3s ease-in-out;
-}
-#mm-wrap {
- clear:both;
- background:rgba(255, 255, 255, 0.1);
- -webkit-border-radius:0px 0px 0px 0px;
- -moz-border-radius:0px 0px 0px 0px;
- -ms-border-radius:0px 0px 0px 0px;
- -o-border-radius:0px 0px 0px 0px;
- border-radius:0px 0px 0px 0px
-}
-#mm-wrap #mm-helper li.mm-item:last-child a {
- background:transparent url("icon_avatar.png") 50% 50% no-repeat !important;
- background-size:24px !important;
- width:24px !important;
- height:24px !important;
-}
-#navbar #mm-wrap #mm-helper li.mm-item > a {
- opacity:1;
- -webkit-transition:all 0.3s ease-in-out;
- -moz-transition:all 0.3s ease-in-out;
- -ms-transition:all 0.3s ease-in-out;
- -o-transition:all 0.3s ease-in-out;
- transition:all 0.3s ease-in-out;
-}
-#mm-wrap #mm-helper > li.mm-item > a.mm-link {
- border-top:0px solid #fff;
- border-left:0px solid #fff;
- border-right:0px solid #fff;
- border-bottom:0px solid #fff;
- outline:none;
- text-decoration:none;
- padding:0 0 0 0;
- line-height:70px;
- font-weight:normal;
- height:70px;
- vertical-align:baseline;
- text-align:left;
- width:auto;
- display:block;
- color:#090e21;
- text-transform:none;
- text-decoration:none;
- background:rgba(0, 0, 0, 0);
- -webkit-border-radius:0px 0px 0px 0px;
- -moz-border-radius:0px 0px 0px 0px;
- -ms-border-radius:0px 0px 0px 0px;
- -o-border-radius:0px 0px 0px 0px;
- border-radius:0px 0px 0px 0px;
- font-family:inherit;
- font-size:14px;
-}
-/* end new header */
-@media (min-width: 1320px) {
- .body .flowListDiv dl.flowList {
- -webkit-column-count:3;
- -moz-column-count:3;
- column-count:3
- }
-}
-@media (min-width: 1120px) {
- #navbar.fixed {
- -moz-box-shadow:0px 0px 8px rgba(0,0,0,0.23);
- -webkit-box-shadow:0px 0px 8px rgba(0,0,0,0.23);
- box-shadow:0px 0px 8px rgba(0,0,0,0.23)
- }
- #navbar.fixed #mm-wrap #mm-helper > li.mm-item > a.mm-link {
- height:50px;
- line-height:50px
- }
- #navbar.fixed .navbar-oneQt:before {
- font-size:35px;
- top:7px
- }
-
- .flowListDiv dl.flowList {
- -webkit-column-count:2;
- -moz-column-count:2;
- column-count:2
- }
-}
-@media (max-width: 1120px) {
- #navbar {
- padding:0;
- position:relative
- }
- #navbar .navbar-oneQt:before {
- left:10px
- }
- #navbar .container {
- max-width:100%;
- padding:0
- }
- #footerbar .container {
- padding:0
- }
- body .main {
- margin-top:0px
- }
- #footerbar .footer-main .footer-nav {
- padding:3.9% 0 3.9% 3%;
- border-bottom:1px solid #413d3b;
- float:none;
- display:block;
- width:auto
- }
- #footerbar .footer-main .theqtcompany {
- clear:both;
- float:left;
- margin:30px 0 8px 3%
- }
- #footerbar .footer-main .footer-social {
- float:left;
- padding:50px 0px 0px 3%
- }
- #footerbar #menu-footer-submenu {
- clear:both;
- float:none;
- display:block;
- padding:0px 0px 3.9% 3%
- }
- ul#menu-footer-submenu {
- margin-left: 0
- }
-}
-.cookies_yum {
- background-color:#cecfd5;
- display:none;
- width:100%
-}
-.cookies_yum img {
- width:25px;
- top:6px;
- display:inline-block;
- position:absolute;
- left:13px
-}
-.cookies_yum div {
- margin:0 auto;
- max-width:1280px;
- min-height:30px;
- padding:6px 0px 6px 0px;
- position:relative
-}
-.cookies_yum p {
- color:#09102b;
- margin:0px;
- font-size:0.79em;
- display:inline-block;
- line-height:1.2;
- padding:0 30px 0 50px
-}
-.cookies_yum p a {
- white-space:nowrap
-}
-.cookies_yum a:hover {
- color:#46a2da
-}
-.cookies_yum .close {
- width:15px;
- height:15px;
- background-image:url("cookiebar-x.png");
- background-size:15px 30px;
- background-position:top left;
- cursor:pointer;
- top:13px;
- right:13px;
- position:absolute;
- transition:none
-}
-.cookies_yum .close:hover {
- background-position:bottom left
-}
-#sidebar-toggle,#toc-toggle {
- width:24px;
- height:14px;
- background-size:24px 28px;
- cursor:pointer;
- background-image:url("list_expand.png");
- float:right
-}
-#sidebar-toggle.collapsed,
-#toc-toggle.collapsed {
- background-position:bottom left
-}
-#sidebar-content > h2 {
- display:none
-}
-#footerbar {
- background:#222840;
- color:#fff;
- font-size: 0.9em;
-}
-#footerbar.fixed {
- bottom:0;
- left:0;
- width:100%
-}
-#footerbar .footer-nav {
- display:inline;
- float:left
-}
-#footerbar .footer-main .footer-nav li {
- float:left;
- margin-right:1em
-}
-#footerbar .footer-main .footer-nav li a {
- display:block;
- padding:30px 0 10px 0;
- line-height:20px;
- height:20px;
- color:#fff;
- font-weight: 600;
-}
-#footerbar .footer-main .footer-nav li a:hover,#footerbar .footer-main .footer-nav li.current-menu-item a {
- color:#eee
-}
-#footerbar .footer-main .footer-nav .sub-menu {
- margin-left:0;
- margin-bottom:0
-}
-#footerbar .footer-main .footer-nav .sub-menu li {
- float:none;
- width: 100%;
-}
-#footerbar .footer-main .footer-nav .sub-menu ul {
- padding:1px 1em;
- font-size:0.786em;
- line-height:8px;
- float:none;
- color:#5d5b59;
- margin-bottom:0
-}
-#footerbar .footer-main .footer-nav .sub-menu li a {
- padding:2px 0;
- font-size:1em;
- float:none;
- color:#cecfd5;
- font-weight: 400;
-}
-#footerbar .footer-main .footer-nav .sub-menu li a:hover,#footerbar .footer-main .footer-nav .sub-menu li.current-menu-item a {
- color:#eee
-}
-#footerbar .theqtcompany {
- background:url("theqtcompany.png") no-repeat;
- background-size:100%;
- width:215px;
- height:68px;
- display:inline;
- float:right;
- margin:29px 0 28px 30px
-}
-#footerbar .footer-social {
- display:inline;
- float:right;
- width:164px
-}
-#footerbar .footer-main .footer-social>div {
- margin-left:0.1em;
- margin-bottom:10px
-}
-#footerbar .disclaimer {
- font-size:0.786em;
- line-height:2.73;
- color:#868584;
- padding-top:20px;
- padding-bottom:0.5%
-}
-#footerbar .disclaimer a {
- color:#bdbebf
-}
-#footerbar .disclaimer a:hover {
- color:#d6d6d6
-}
-#footerbar .disclaimer ul li {
- float:left;
- vertical-align:middle;
- margin-left:1.18em
-}
-#footerbar .disclaimer ul li:first-child {
- margin-left:0
-}
-#footerbar .disclaimer ul.lang-selector a {
- color:#506a34;
- color:rgba(128,195,66,0.3)
-}
-#footerbar .disclaimer ul.lang-selector a:hover {
- color:#80c342;
- color:rgba(128,195,66,0.7)
-}
-#menu-footer-menu, #menu-footer-menu ul {
- margin-left:0;
- margin-bottom:0
-}
-@font-face {
- font-family: 'Titillium Web';
- font-style: normal;
- font-weight: 400;
- src: url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-regular.eot");
- /* IE9 Compat Modes */
- src: local("Titillium Web"), local("TitilliumWeb-Regular"), url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-regular.eot?#iefix") format("embedded-opentype"), url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-regular.woff2") format("woff2"), url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-regular.woff") format("woff"), url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-regular.ttf") format("truetype"), url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-regular.svg#TitilliumWeb") format("svg");
- /* Legacy iOS */
-}
-/* titillium-web-italic - latin_latin-ext */
-@font-face {
- font-family: 'Titillium Web';
- font-style: italic;
- font-weight: 400;
- src: url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-italic.eot");
- /* IE9 Compat Modes */
- src: local("Titillium WebItalic"), local("TitilliumWeb-Italic"), url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-italic.eot?#iefix") format("embedded-opentype"), url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-italic.woff2") format("woff2"), url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-italic.woff") format("woff"), url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-italic.ttf") format("truetype"), url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-italic.svg#TitilliumWeb") format("svg");
- /* Legacy iOS */
-}
-/* titillium-web-600 - latin_latin-ext */
-@font-face {
- font-family: 'Titillium Web';
- font-style: normal;
- font-weight: 600;
- src: url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-600.eot");
- /* IE9 Compat Modes */
- src: local("Titillium WebSemiBold"), local("TitilliumWeb-SemiBold"), url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-600.eot?#iefix") format("embedded-opentype"), url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-600.woff2") format("woff2"), url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-600.woff") format("woff"), url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-600.ttf") format("truetype"), url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-600.svg#TitilliumWeb") format("svg");
- /* Legacy iOS */
-}
-@font-face {
- font-family: 'Droid Sans Mono', monospace;
- font-style:normal;
- font-weight:400;
- src:local("Droid Sans Mono"),local("DroidSansMono"),url(//fonts.gstatic.com/s/droidsansmono/v7/ns-m2xQYezAtqh7ai59hJUYuTAAIFFn5GTWtryCmBQ4.woff) format("woff")
-}
-@font-face {
- font-family:'Qt Icons';
- src:url("../style/icomoon.eot?-tgjuoj");
- src:url("../style/icomoon.eot?#iefix-tgjuoj") format("embedded-opentype"),url("../style/icomoon.woff?-tgjuoj") format("woff"),url("../style/icomoon.ttf?-tgjuoj") format("truetype"),url("../style/icomoon.svg?-tgjuoj#icomoon") format("svg");
- font-weight:normal;
- font-style:normal
-}
-@font-face {
- font-family:'social-icons';
- src:url("../style/social-icons.eot?54625607");
- src:url("../style/social-icons.eot?54625607#iefix") format("embedded-opentype"),
- url("../style/social-icons.woff?54625607") format("woff");
- font-weight:normal;
- font-style:normal
-}
-.clearfix:before,.clearfix:after {
- content:" ";
- display:table
-}
-.clearfix:after {
- clear:both
-}
-.clearfix {
- *zoom:1
-}
-.clearfix .right {
- float:right
-}
-html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video {
- margin:0;
- padding:0;
- border:0;
- font-size:100%
- line-height: 1.4;
-}
-html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,caption,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video {
- vertical-align:baseline
-}
-h1,h2,h3,h4,h5,h6 {
- font-weight:300
-}
-.body h2,.body h3,.body h4,.body h5,.body h6 {
- margin:1.5em 0 0.75em
-}
-.body h1 {
- margin-bottom:0.75em;
- font-size:2.25em;
-}
-.body h3.fn,.body h3.flags {
- color:#26282a;
- font-size:1.46em;
- padding:15px 0 15px 0;
- border-bottom:2px #eee solid;
- word-wrap:break-word
-}
-.body .fngroup {
- border-bottom:2px #eee solid;
- padding-bottom:15px;
- margin-bottom:1.5em
-}
-.body .fngroup h3.fngroupitem {
- margin:0;
- padding-bottom:0;
- border:none
-}
-.body h3.fn .name,
-.body h3 span.type,
-.qmlname span.name {
- font-weight: 400
-}
-.qmlname {
- font-size:1.46em
-}
-.qmlproto table {
- border:none;
- border-bottom:2px #eee solid
-}
-.qmlproto table p {
- max-width:100%
-}
-.qmlproto table tr {
- background-color:#fff
-}
-.qmlname td, .qmlname th {
- border:none;
- text-align:left;
- padding:5px 0 0 0
-}
-.qmlreadonly,.qmldefault {
- padding:0 5px 0 5px;
- font-size:0.75em;
- background-color:#eee;
- float:right
-}
-.qmlreadonly {
- color:#414141
-}
-.qmldefault {
- color:#D14141
-}
-.rightAlign {
- padding:3px 5px 3px 10px;
- text-align:right
-}
-.centerAlign.functionIndex {
- text-align:center;
- font-size:150%;
- margin-bottom: 1em
-}
-article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section {
- display:block
-}
-body {
- line-height:1;
- font-family:'Titillium Web', Arial, Helvetica, sans-serif;
- font-weight:400;
- transition-duration:1s;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
- font-size: 16px;
- background-color:#f3f3f4;
- color:#404244;
-}
-ol,ul {
- list-style-type: square;
- color: #17a81a;
-}
-.body ol,.body ul {
- margin-top:0.75em;
- margin-left:20px
-}
-.bodywrapper ol>li {
- list-style-type:decimal;
- margin-left:15px
-}
-.bodywrapper ol.a >li {
- list-style-type:lower-alpha;
-}
-.bodywrapper ol.A >li {
- list-style-type:upper-alpha;
-}
-.bodywrapper ol.i >li {
- list-style-type:lower-roman;
-}
-.bodywrapper ol.I >li {
- list-style-type:upper-roman;
-}
-.body li p {
- margin-top:1em
-}
-blockquote,q {
- quotes:none;
- border-left:10px solid #ddd;
- padding-left:10px
-}
-blockquote:before,blockquote:after,q:before,q:after {
- content:'';
- content:none;
- width:100%
-}
-table {
- border-collapse:collapse;
- border-spacing:0;
- margin-bottom:5px;
- width:100%
-}
-a {
- color:#17a81a;
- text-decoration:none;
- transition-duration:0.3s
-}
-a:hover {
- color:#17a81a
-}
-.main,#footerbar>div {
- max-width:1280px;
- width:95%;
- margin:0 auto
-}
-.main {
- margin-top:80px
-}
-@media (max-width: 1120px) {
- .main,.navbar-header,#footerbar>div {
- width: 100%;
- margin: 0;
- }
- .main .main-rounded {
- padding: 0 15px;
- }
-}
-.main_index {
- background-color:#fff
-}
-.sectionlist {
- margin-bottom:2em
-}
-[class*="col-"] {
- letter-spacing:normal
-}
-.landing,.main_index .row {
- letter-spacing:-0.31em
-}
-.main_index .row>div {
- letter-spacing:normal
-}
-.col-1 {
- clear: both;
- display:inline-block;
- background-color:#fff;
- padding: 25px 35px 20px 30px;
- -webkit-box-sizing:border-box;
- -moz-box-sizing:border-box;
- -ms-box-sizing:border-box;
- box-sizing:border-box;
-}
-.col-1 h2 {
- font-size:1.8em;
- font-weight:300;
- line-height:1.1;
- margin-bottom:0.83em;
- margin-top:1em
-}
-.icons1of3 img {
- display:inline-block;
- float:left;
- margin-right:0.75em;
- margin-top:-5px;
- width:2.75em
-}
-div.multi-column {
- position:relative
-}
-div.multi-column div {
- display:-moz-inline-box;
- display:inline-block;
- vertical-align:top;
- margin-top:1em;
- margin-right:2em;
- width:16em
-}
-.sidebar {
- display:block;
- position:relative;
- position:sticky;
- float:left;
- -webkit-box-sizing:border-box;
- -moz-box-sizing:border-box;
- -ms-box-sizing:border-box;
- box-sizing:border-box;
- width:20%;
- padding-right:20px
-}
-.sidebar li {
- text-overflow:ellipsis;
- overflow:hidden
-}
-.toc,.sectionlist {
- padding:25px;
- background-color:#fff;
- margin-bottom:1.25em
-}
-.sidebar .sectionlist p {
- margin-bottom:0
-}
-.sectionlist.promo {
- padding:0;
- background-color:#f3f3f4
-}
-.sidebar-content:empty {
- display:none;
- visibility:hidden
-}
-.col-2 h2,.toc h3,.sidebar-content h2,
-.sidebar-content h3,.sectionlist h2,
-.sphinxsidebar {
- position: -webkit-sticky;
- position: sticky;
- top: 0px;
- width: 200px;
- overflow: scroll;
- overflow-x: hidden;
- overflow-y: hidden;
-}
-.sphinxsidebar h3 {
- font-weight: bold;
- margin-bottom:1em;
-}
-
-/* On screens that are less than 700px wide, make the sidebar into a topbar */
-@media screen and (max-width: 700px) {
- .sphinxsidebar {
- top: 64px;
- /*overflow-x: hidden;
- overflow-y: hidden;*/
- width: 100%;
- height: auto;
- position: relative;
- }
- /*.sidebar a {float: left;}*/
- div.content {margin-left: 0;}
-}
-
-/* On screens that are less than 400px, display the bar vertically, instead of horizontally
-@media screen and (max-width: 400px) {
- .sphinxsidebar a {
- text-align: center;
- float: none;
- }
-}
-*/
-
-.toc h3 a {
- color:#404244
-}
-.title {
- font-size:2.25em;
- font-weight:300;
- letter-spacing:-1px;
- line-height:1.15em;
- margin-bottom:0.5em;
- word-wrap:break-word
-}
-.navigationbar,col-1 h2 {
- font-size:0.85em
-}
-.navigationbar h1 {
- font-size:2.5em;
- margin-bottom:0.85em;
- margin-top:0.85em
-}
-.navigationbar li {
- display:inline-block;
- margin-right:5px;
- position:relative;
- padding-right:10px;
- color:#585a5c
-}
-.navigationbar ul:last-of-type li a {
- color:#404244
-}
-.sectionlist li, .sphinxsidebar li {
- padding-bottom: 10px;
- line-height: 1.75em;
-}
-.col-1 ul {
- margin-bottom:1.56em
-}
-.bodywrapper li {
- margin-top:0.5em;
- line-height:1.25em
-}
-.bodywrapper li.level2 {
- margin-left:10px;
- margin-top:0.4em;
- font-size:0.9375em;
-}
-.bodywrapper p,
-.bodywrapper dd {
- line-height:1.25em;
- margin:1em 0 1em;
- color:#404244
-}
-.bodywrapper b {
- font-weight:600
-}
-.body ul,.body ol {
- /* margin-bottom:1.5em */
-}
-.bodywrapper ul ul {
- margin-top:0.5em
-}
-.bodywrapper .naviNextPrevious {
- margin-top:25px;
- max-width:100%;
- position: relative;
-}
-.naviNextPrevious.headerNavi,
-p.naviNextPrevious + p {
- display:none
-}
-.nextPage {
- float:right
-}
-.prevPage:before {
- content:"< "
-}
-.nextPage:after {
- content:" >"
-}
-.navigationbar li a {
- color:#404244
-}
-.navigationbar li:after {
- color:#404244;
- content:"›";
- display:inline-block;
- font-size:1.5em;
- line-height:1;
- position:absolute;
- right:-2px;
- top:-4px
-}
-.sub-navigation {
- margin-top:10px
-}
-.navigationbar li:last-child:after,.sub-navigation li:after {
- content:none
-}
-.navigationbar {
- margin-bottom:10px;
- line-height:1em
-}
-#buildversion {
- margin-bottom:10px;
- font-style:italic;
- font-size:small;
- float:right
-}
-.copy-notice {
- width:75%;
- font-size:0.75em;
- margin:20px 35px 0 10px;
- line-height:1.75em;
- float:right;
- color:#585a5c
-}
-.copy-notice.index {
- margin-top:10px;
- float:none
-}
-li a.active {
- color:#585a5c
-}
-.flowList {
- padding:25px
-}
-.flowListDiv dl {
- -webkit-column-count:1;
- -moz-column-count:1;
- column-count:1
-}
-.flowList dd {
- display:inline-block;
- margin-left:10px;
- width:90%;
- line-height:1.15em;
- overflow-x:hidden;
- text-overflow:ellipsis
-}
-.alphaChar {
- font-size:2em;
- position:absolute
-}
-.flowList.odd {
- background-color:#f9f9f9
-}
-.body ul>li,.doc-column ul>li {
- list-style-image:url("list_arrow.png");
- margin-left:15px;
- color:#404244;
- margin-top:0.65em;
- line-height:1em
-}
-.bodywrapper table p {
- margin:0px;
- padding:0px
-}
-.bodywrapper table p {
- margin:0px;
- padding:0px;
- min-height:1.25em
-}
-.bodywrapper .qmldoc {
- margin-top:0.75em;
-}
-.body h2 {
- margin-top: 1.5em;
- font-size:1.75em
-}
-.body h3 {
- font-size:1.35em
-}
-.body h4 {
- font-size:1.15em
-}
-.body p img {
- margin-top:0.75em;
- max-width:100%
-}
-.body .border img {
- box-shadow:3px 3px 8px 3px rgba(200,200,200,0.5)
-}
-.body .border .player {
- box-shadow:3px 3px 8px 3px rgba(200,200,200,0.5)
-}
-.body p.figCaption {
- transform:translateY(-30px);
- color:#606366;
- font-size:95%;
- margin-left:3px;
- font-style:italic
-}
-.body table {
- width:initial;
- vertical-align:initial
-}
-table .odd {
- background-color:#f9f9f9
-}
-table thead {
- text-align:left;
- padding-left:20px
-}
-table,table td,table th {
- border:1px solid #eee
-}
-table td,table th {
- padding:5px 20px;
- line-height:1.3
-}
-.body .fixed table td {
- min-width:50%;
- width:50%
-}
-table.alignedsummary,table.propsummary {
- width:initial
-}
-table.valuelist td.tblval {
- font-size:0.75em
-}
-div.main_index .row {
- border-bottom:10px solid #f3f3f4
-}
-div.main_index .row {
- position:relative
-}
-div.main_index .row>div {
- display:inline-block;
- width:50%;
- vertical-align:top;
- padding:2em 3em;
- -webkit-box-sizing:border-box;
- -moz-box-sizing:border-box;
- -ms-box-sizing:border-box;
- box-sizing:border-box
-}
-div.main_index h2 {
- font-size:2.1875em;
- margin-bottom:1em
-}
-#search_bar {
- width:40%;
- float:right
-}
-div.main_index .row:after {
- content:"";
- position:absolute;
- top:0;
- right:50%;
- height:100%;
- width:10px;
- background-color:#f3f3f4
-}
-div.table {
- overflow-x:auto
-}
-.body tr > td > pre {
- font-size:0.75em
-}
-p.qt_commercial {
- border:3px solid #5caa15;
- margin:0 auto;
- padding:15px;
- width:28%;
- text-align:center;
- clear:both
-}
-h1.qt_commercial {
- padding:20px;
- background-color:#5caa15;
- display:inline;
- float:right;
- font-size:1.25em;
- line-height:1.25em;
- height:1.25em;
- color:#fff
-}
-div.qt_commercial {
- border-top:5px solid #5caa15;
- margin-bottom:50px
-}
-div.pre {
- position:relative;
- height:auto
-}
-pre, .LegaleseLeft {
- background-color:#222840;
- color:#fff;
- display:block;
- font-family: 'Droid Sans Mono', monospace;
- line-height:1.5;
- overflow-x:auto;
- margin-bottom:25px;
- padding:25px;
- margin-top:0.75em;
- font-size: .8em;
-}
-.bodywrapper .LegaleseLeft p {
- color:#fff;
- white-space: pre-wrap;
-}
-pre .str,code .str {
- color:#aaaaaa
-}
-pre .kwd,code .kwd {
- color:#ffff55
-}
-pre .com,code .com {
- color:#55ffff
-}
-pre .typ,code .typ {
- color:#4f9d08
-}
-pre a .typ,code a .typ {
- color:#21be2b
-}
-pre .lit,code .lit {
- color:#ff55ff
-}
-pre .pun,code .pun {
- color:#fff
-}
-pre .pln,code .pln {
- color:#fff
-}
-@media print {
- pre {
- background-color:#eee !important
- }
- pre .str,code .str {
- color:#060
- }
- pre .kwd,code .kwd{
- color:#006;
- font-weight:bold
- }
- pre .com,code .com {
- color:#600
- }
- pre .typ,code .typ {
- color:#404;
- font-weight:bold
- }
- pre .lit,code .lit {
- color:#044
- }
- pre .pun,code .pun {
- color:#440
- }
- pre .pln,code .pln {
- color:#000
- }
-}
-pre.wrap {
- white-space:pre-wrap
-}
-pre span.wrap {
- display:none;
- background:url("wrap.png") no-repeat;
- right:0;
- top:2px;
- position:absolute;
- width:20px;
- height:14px;
- margin:4px;
- opacity:0.65
-}
-
-span.pre {
- color: black;
- font-family: monospace;
- font-weight: normal;
- background-color: #eaeaea;
- padding: 2px 4px;
- color: black;
- border-radius: 2px;
-}
-
-span.wrap:hover {
- opacity:1
-}
-span.wrap:active {
- opacity:0.75
-}
-.copy_text {
- background-color:#46a2da;
- color:#fff;
- border:2px solid #46a2da;
- padding:10px 16px;
- margin-left:-10px;
- margin-top:-50px;
- position:absolute;
- opacity:0;
- cursor:pointer;
- float:right
-}
-.copy_text:hover {
- background-color:#fff;
- color:#46a2da
-}
-code,.codelike {
- font-family: 'Droid Sans Mono', monospace;
-}
-#detailed-description .function dt > code,
-#detailed-description .function dt > em {
- font-weight:bold
-}
-h3.fn code {
- font-size:0.75em;
- float:right;
- background-color:#eee;
- padding:3px;
- margin: 3px 0 0 20px
-}
-pre:hover>.copy_text {
- display:inline-block;
- opacity:1;
- transition:0.5s ease
-}
-#main_title_bar {
- background:url("pyside-logo.png") no-repeat;
- background-size:100%;
- width:366px;
- height:86px;
- margin:15px 0 15px 0
-}
-#main_title_bar h1 {
- visibility:hidden
-}
-#main_title_bar .search_bar {
- letter-spacing:normal;
- width:50%;
- display:inline-block;
- -webkit-box-sizing:border-box;
- -moz-box-sizing:border-box;
- -ms-box-sizing:border-box;
- box-sizing:border-box;
- vertical-align:middle
-}
-#main_title_bar h1 {
- letter-spacing:normal;
- display:inline-block;
- -webkit-box-sizing:border-box;
- -moz-box-sizing:border-box;
- -ms-box-sizing:border-box;
- box-sizing:border-box;
- vertical-align:middle
-}
-#main_title_bar .search_bar * {
- letter-spacing:normal;
- padding:0;
- margin:0;
- border:none
-}
-#sidebar-toggle,#toc-toggle {
- display:none
-}
-@media (max-width: 980px) {
- body {
- font-size:calc-em(14px)
- }
- #main_title_bar>h1,#main_title_bar .search_bar {
- width:100%
- }
- #main_title_bar .search_bar {
- margin-bottom:15px
- }
- .main {
- margin-top:0px
- }
- .main_index .row {
- border:none !important
- }
- .title {
- font-size:1.5em;
- font-weight:400;
- word-wrap:break-word
- }
- .col-1,.body,.naviNextPrevious,.sidebar {
- padding:10px
- }
- .sidebar {
- position:relative;
- padding-top:0
- }
- .search .sidebar {
- display:none;
- visibility:hidden
- }
- .col-2 h2,.toc h3,.sidebar-content h2,.sidebar-content h3,.sectionlist h2 {
- text-align:center;
- margin-bottom:5px
- }
- div.main_index .row:after {
- content:none
- }
- div.main_index .row>div {
- display:block !important;
- width:100%;
- padding:15px;
- margin:0
- }
- .body,.sidebar,.col-1 {
- width:100%
- }
- .sidebar-content,.col-2,.toc {
- background-color:#fff;
- margin-bottom:1em;
- padding:20px
- }
- #sidebar-toggle,#toc-toggle {
- display:block
- }
- #sidebar-toggle.collapsed + h2 {
- display:block
- }
- .bodywrapper p {
- margin-bottom:1em;
- max-width:100%
- }
- table td,table th {
- padding:5px 5px
- }
- .sectionlist {
- padding:0
- }
- .sidebar > .sectionlist {
- padding:20px
- }
- .sectionlist.promo {
- max-width:46%;
- margin:0 auto 1em auto;
- float:left;
- padding:0 2%
- }
- .sidebar .sidebar-content {
- clear:both
- }
- .copy-notice {
- float:none;
- width:initial
- }
-}
-[id]:target > *:first-child,
-dt[id]:target {
- -webkit-animation:highlighter 3s;
- animation:highlighter 3s
-}
-@-webkit-keyframes highlighter {
- 25% {
- background-color:#d1e8f6;
- color:#444
- }
- 75% {
- background-color:#d1e8f6;
- color:#444
- }
-}
-@keyframes highlighter {
- 25% {
- background-color:#d1e8f6;
- color:#444
- }
- 75% {
- background-color:#d1e8f6;
- color:#444
- }
-}
-@-webkit-keyframes copypaste {
- 25% {
- opacity:1
- }
- 100% {
- border-radius:10px;
- margin-top:-50px;
- opacity:1
- }
-}
-@keyframes copypaste {
- 25% {
- opacity:1
- }
- 100% {
- border-radius:10px;
- margin-top:-50px;
- opacity:1
- }
-}
-#footer {
- clear:both
-}
-.footer-social i {
- font-family: "social-icons";
- font-style: normal;
- font-size:150%;
- margin: .55em;
- color: #cecfd5
-}
-.footer-social i:hover {
- color: #eee
-}
-.footer-social .icon-twitter:before {
- content: '\f099'
-}
-.footer-social .icon-facebook:before {
- content: '\f09a'
-}
-.footer-social .icon-youtube:before {
- content: '\f16a'
-}
-.menuextraslanguages {
- display:none;
- visibility:hidden
-}
-form.gsc-search-box {
- font-size: 25px !important;
- margin-top: 0 !important;
- margin-right: 0 !important;
- margin-bottom: 4px !important;
- margin-left: 0 !important;
- width: 102.5% !important;
-}
-table.gsc-search-box {
- border-style: none !important;
- border-width: 0 !important;
- border-spacing: 0 0 !important;
- width: 100% !important;
- margin-bottom: 2px !important;
-}
-
-table.gsc-search-box td {
- vertical-align: middle !important;
-}
-
-table.gsc-search-box td.gsc-input {
- padding-right: 0px !important;
-}
-table.gsc-search-box td.gsc-input input {
- background-position: 10px center !important;
-}
-
-td.gsc-search-button {
- width: 1% !important;
-}
-
-td.gsc-clear-button {
- width: 14px !important;
- visibility:hidden !important;
- display:none !important;
-}
-table.gsc-branding td,
-table.gsc-branding {
- margin: 0 0 0 0 !important;
- padding: 0 0 0 0 !important;
- border: none !important;
-}
-
-table.gsc-branding {
- border-style: none !important;
- border-width: 0 !important;
- border-spacing: 0 0 !important;
- width: 100% !important;
-}
-
-.gsc-branding-text {
- color: #676767 !important;
-}
-
-td.gsc-branding-text {
- vertical-align: top !important;
-}
-td.gsc-branding-text div.gsc-branding-text {
- padding-bottom: 2px !important;
- text-align: right !important;
- font-size: 11px !important;
- margin-right: 2px !important;
-}
-
-td.gsc-branding-img {
- width: 65px !important;
- vertical-align: bottom !important;
-}
-
-img.gsc-branding-img {
- padding-top: 1px !important;
- margin: 0 0 0 0 !important;
- padding-right: 0 !important;
- padding-left: 0 !important;
- padding-bottom: 0 !important;
- border: none !important;
- display: inline !important;
-}
-
-input.gsc-search-button {
- background-color: white !important;
- height: 35px !important;
- width: 25px !important;
- color: transparent !important;
- background-image: url("doc_search.png") !important;
- background-size: 25px auto;
- background-position: 0px 5px;
- background-repeat: no-repeat;
- margin-left: -43px !important;
- overflow: hidden;
- min-width: 20px !important;
-}
-
-input.gsc-search-button:hover {
- cursor: pointer;
-}
-
-input.gsc-search-button:focus {
- outline: none;
- box-shadow: none;
-}
-
-.gsc-search-box-tools .gsc-clear-button {
- display: none !important;
- visibility: none !important;
-}
-
-.gsc-overflow-hidden {
- overflow: hidden !important;
-}
-
-input.gsc-input {
- background-color: #fff !important;
- border: 1px solid #d6d6d6 !important;
- box-sizing: border-box !important;
- -moz-box-sizing: border-box !important;
- color: #868482 !important;
- outline: 0 none !important;
- padding: 9px 10px 10px !important;
- transition: color 0.5s ease 0s, box-shadow 0.5s ease 0s, background-color 0.5s ease 0s !important;
-}
-
-input {
- font-family: 'Titillium Web', Arial, Helvetica, sans-serif !important;
- line-height: 1.5 !important;
- font-weight: 300 !important;
- vertical-align:middle
-}
-
-input:focus {
- border-color: #46a2da;
- box-shadow: 0 0 5px #46a2da;
- color: #000;
-}
-
-.animation {
- width: 100%;
- border-style: none;
- border-width: 0
-}
-
-.player {
- width: auto;
- position: relative;
- display: table;
- margin-bottom:1.5em;
-}
-
-.playcontrol {
- display: none;
- background: url("play_icon.svg") no-repeat center,
- linear-gradient(
- rgba(0,0,0,0.15), rgba(0,0,0,0.15)
- );
- background-size: 25%;
- width: 100%;
- height: 100%;
- position: absolute;
- left: 0%;
- right: 0%;
- top: 0%;
- bottom: 0%;
- margin: auto
-}
-
-/* expand/collapse code sections */
-pre input {
- display:none;
- visibility:hidden
-}
-pre label {
- display:block;
- margin:-3px 3px 0 -16px;
- text-align:center;
- color:#21be2b;
- float:left;
-}
-pre label:hover {
- color:#fff
-}
-pre label::before {
- font-weight:600;
- font-size:16px;
- content:"+";
- display:inline-block;
- width:16px;
- height:16px
-}
-#ec_expand {
- height:16px;
- overflow:hidden;
- transition:height 0.35s;
-}
-#ec_expand::before {
- content:"...*/";
- color:#aaa;
- background-color:#3a4055;
- z-index:99 !important;
- right:25px;
- position:absolute
-}
-#ec_toggle:checked ~ #ec_expand {
- height:initial
-}
-#ec_toggle:checked ~ #ec_expand::before {
- content:""
-}
-#ec_toggle:checked ~ label::before {
- content:"-"
-}
-
-/* permalinks */
-h1:hover > .headerlink,
-h2:hover > .plink,
-h2:hover > .headerlink,
-h3:hover > .plink,
-h3:hover > .headerlink,
-h4:hover > .plink,
-h4:hover > .headerlink,
-h5:hover > .plink,
-h5:hover > .headerlink {
- opacity:1
-}
-a.plink, a.headerlink {
- opacity: 0;
- padding-left: 8px;
- font-size: 0.8em;
- font-weight: 600;
- transition: opacity 180ms ease-in-out
-}
-a.plink::before {
- content:'\00B6'
-}
-
-table.special {
- border: 3px;
- padding: 0px;
- border-collapse: separate;
- border-spacing: 20px;
- line-height: 1.5em;
- table-layout: fixed;
- width: 80%;
-}
-
-.special p {
- text-align: center;
- color: #3a4055;
-}
-
-.special a {
- display: block;
- border-bottom: 0;
- text-decoration: none;
-}
-
-.special a:hover {
- border-bottom: 0;
- text-decoration: none;
-}
-
-.special strong {
- color: #17a81a;
- font-size: 110%;
- font-weight: normal;
-}
-
-table.special th,
-table.special td {
- border: 1px solid #888;
- padding-top: 14px;
- padding-bottom: 14px;
- padding-left: 6px;
- padding-right: 5px;
- border-radius: 5px;
- -moz-border-radius: 5px;
- -webkit-border-radius: 5px;
- -khtml-border-radius: 5px;
- overflow: hidden;
-}
-
-.special td:hover {
- padding-top: 14px;
- padding-bottom: 10px;
- border-bottom: 4px solid #41cd52;
- overflow: hidden;
-}
-
-.command {
- font-family: monospace;
- font-weight: normal;
- background-color: #9cd1a6;
- padding: 2px 4px;
- color: black;
- border-radius: 2px;
-}
-
-div.leftside {
- width: 50%;
- padding: 0px 50px 0px 0px;
- float: left;
-}
-
-div.rightside {
- margin-left: 50%;
-}
-
-.btn-qt:hover,
-.btn-qt:active,
-.btn-qt:focus,
-.btn-qt.active {
- background: #41cd52;
- color: #fff !important;
- border-color: #fff;
-}
-
-.btn-link {
- color: #41cd52 !important;
-}
-
-.btn-link:hover {
- color: #222840 !important;
- text-decoration: underline;
-}
-
-/* Using !important is not recommended, but out CSS is being added
- * to the pages before the bootstrap ones, so we cannot override them
- * without using it */
-.btn-qt {
- color: #41cd52 !important;
- border-color: #41cd52 !important;
- font-weight: bold !important;
-}
-.card-img-top-main {
- padding-top: 10px;
- height: 70px !important;
-}
-
-.card-img-top {
- object-fit: contain;
- height: 120px;
- padding-top: 10px;
-}
diff --git a/sources/pyside6/doc/_themes/pysidedocs/static/relbar_bg.png b/sources/pyside6/doc/_themes/pysidedocs/static/relbar_bg.png
deleted file mode 100644
index 4036733a7..000000000
--- a/sources/pyside6/doc/_themes/pysidedocs/static/relbar_bg.png
+++ /dev/null
Binary files differ
diff --git a/sources/pyside6/doc/_themes/pysidedocs/theme.conf b/sources/pyside6/doc/_themes/pysidedocs/theme.conf
deleted file mode 100644
index 01a4dd4a1..000000000
--- a/sources/pyside6/doc/_themes/pysidedocs/theme.conf
+++ /dev/null
@@ -1,7 +0,0 @@
-[theme]
-inherit = default
-stylesheet = pyside.css
-pygments_style = none
-
-[options]
-nosidebar = false
diff --git a/sources/pyside6/doc/_themes/pysidedocs_qthelp/static/pyside.css b/sources/pyside6/doc/_themes/pysidedocs_qthelp/static/pyside.css
index aee5e4420..94134cacf 100644
--- a/sources/pyside6/doc/_themes/pysidedocs_qthelp/static/pyside.css
+++ b/sources/pyside6/doc/_themes/pysidedocs_qthelp/static/pyside.css
@@ -466,7 +466,7 @@ tt.descname {
position:relative
}
#menuextras li a:hover span {
- color: #41cd52;
+ color: #2cde85;
}
/* new header */
#mm-wrap, #mm-wrap #mm-helper,
@@ -557,14 +557,14 @@ tt.descname {
display:inline;
float:left;
width:31px;
- color:#41cd52
+ color:#2cde85
}
#navbar .navbar-oneQt:before {
content:attr(data-icon);
position:absolute;
top:14px;
left:0;
- color:#41cd52;
+ color:#2cde85;
font-family:'Qt Icons';
line-height:1;
font-size:40px;
@@ -1939,5 +1939,5 @@ table.special td {
.special td:hover {
padding-top: 2px;
padding-bottom: 2px;
- border-bottom: 4px solid #41cd52;
+ border-bottom: 4px solid #2cde85;
}
diff --git a/sources/pyside6/doc/additionaldocs.lst b/sources/pyside6/doc/additionaldocs.lst
index 037cb60f7..81da58370 100644
--- a/sources/pyside6/doc/additionaldocs.lst
+++ b/sources/pyside6/doc/additionaldocs.lst
@@ -1,55 +1,7 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-# This is a list of additional documentation files created by the below script
-# and some hand-editing.
-# for F in *.webxml
-# do
-# echo "$F" | egrep '(-index)|(-module)|(-qmlmodule)\.webxml$' > /dev/null
-# if [ $? -ne 0 ]
-# then
-# if fgrep '<para>' "$F" > /dev/null # Exclude reference only
-# then
-# egrep "(<class )|(<namespace )" $F > /dev/null || echo $F
-# fi
-# fi
-# done
+# see README.md
# A line enclosed in [] denotes a (relative) target directory
[overviews]
@@ -57,30 +9,28 @@ animation-overview.webxml
animation.webxml
application-windows.webxml
audiooverview.webxml
-bearer-management.webxml
+bindableproperties.webxml
+bluetooth-examples.webxml
cameraoverview.webxml
-# changes.webxml
-codec-big5.webxml
-codec-big5hkscs.webxml
-codec-eucjp.webxml
-codec-euckr.webxml
-codec-gbk.webxml
-codec-sjis.webxml
-codec-tscii.webxml
-codecs-jis.webxml
compatmap.webxml
-# containers.webxml
+concurrent-changes-qt6.webxml
+containers.webxml
coordsys.webxml
creating-a-sensor-plugin.webxml
custom-types.webxml
+database.webxml
datastreamformat.webxml
-datavisualization-examples.webxml
+dbus-changes-qt6.webxml
determining-the-default-sensor-for-a-type.webxml
dialogs.webxml
dnd.webxml
dynamic-sensor-backend-registration.webxml
+echoclient.webxml
+echoserver.webxml
events.webxml
eventsandfilters.webxml
+examples-dbus.webxml
+examples-designer.webxml
examples-desktop.webxml
examples-dialogs.webxml
examples-graphicsview.webxml
@@ -89,6 +39,8 @@ examples-mainwindow.webxml
examples-network.webxml
examples-painting.webxml
examples-qthelp.webxml
+examples-qtnetworkauth.webxml
+examples-qtscxml.webxml
examples-qtuitools.webxml
examples-richtext.webxml
examples-widgets-opengl.webxml
@@ -98,191 +50,233 @@ gallery.webxml
genericbackend.webxml
gestures-overview.webxml
graphicsview.webxml
-guibooks.webxml
+gui-changes-qt6.webxml
helpsystem.webxml
implicit-sharing.webxml
io-functions.webxml
io.webxml
+java-style-iterators.webxml
json.webxml
layout.webxml
-location-cpp-qml.webxml
-location-maps-cpp.webxml
-location-maps-qml.webxml
-location-places-backend.webxml
-location-places-cpp.webxml
-location-places-qml.webxml
-location-plugin-esri.webxml
-location-plugin-here.webxml
-location-plugin-itemsoverlay.webxml
-location-plugin-mapbox.webxml
-location-plugin-mapboxgl.webxml
-location-plugin-osm.webxml
-location-positioning-cpp.webxml
-location-positioning-qml.webxml
mainwindow.webxml
metaobjects.webxml
model-view-programming.webxml
modelview.webxml
multimedia-examples.webxml
-multimediabackend.webxml
multimediaoverview.webxml
+network-changes-qt6.webxml
+network.webxml
+nfc-android.webxml
+nfc-examples.webxml
object.webxml
objecttrees.webxml
+opengl-changes-qt6.webxml
+painting-3d.webxml
painting.webxml
paintsystem-devices.webxml
paintsystem-drawing.webxml
paintsystem-images.webxml
paintsystem.webxml
-pdf-licensing.webxml
plugins.webxml
+position-plugin-geoclue2.webxml
+position-plugin-gypsy.webxml
+position-plugin-nmea.webxml
positioning-cpp-qml.webxml
+printing.webxml
+printsupport-changes-qt6.webxml
properties.webxml
-qfloat16.webxml
+qabstracteventdispatcher-timerinfo.webxml
+qabstracttextdocumentlayout-paintcontext.webxml
+qabstracttextdocumentlayout-selection.webxml
+qaccessible-state.webxml
+qadoptshareddatatag.webxml
+qcborerror.webxml
+qcborparsererror.webxml
+qcborstreamreader-stringresult.webxml
+qdbusdeclaringsignals.webxml
+qdbusdeclaringslots.webxml
+qdbustypesystem.webxml
+qdbusviewer.webxml
+qdbusxml2cpp.webxml
+qdrawutil-h.webxml
+qdtlsclientverifier-generatorparameters.webxml
+qformlayout-takerowresult.webxml
+qglobalstatic.webxml
+qhashseed.webxml
+qhelplink.webxml
+qiconengine-scaledpixmapargument.webxml
+qiterator.webxml
+qjsonparseerror.webxml
+qmediatimerange-interval.webxml
qml-advtutorial.webxml
+qml-changes-qt6.webxml
qml-dynamicview-tutorial.webxml
-qml-location5-maps.webxml
-qml-multimedia.webxml
-qml-qtlocation5-maps.webxml
qml-tutorial.webxml
qml-tutorial1.webxml
qml-tutorial2.webxml
qml-tutorial3.webxml
-qmlexampletoggleswitch.webxml
-qt3d-advancedcustommaterial-example.webxml
-qt3d-audio-visualizer-qml-example.webxml
+qmldiskcache.webxml
+qmlreference.webxml
+qndeffilter-record.webxml
+qoutputrange.webxml
+qpageranges-range.webxml
+qprocess-createprocessarguments.webxml
+qqmlcontext-propertypair.webxml
+qquickitem-itemchangedata.webxml
+qscxmlc.webxml
+qsggeometry-attribute.webxml
+qsggeometry-coloredpoint2d.webxml
+qsggeometry-point2d.webxml
+qsggeometry-texturedpoint2d.webxml
+qsgmaterialshader-graphicspipelinestate.webxml
+qsgmaterialtype.webxml
+qstaticplugin.webxml
qt3d-basicshapes-cpp-example.webxml
+qt3d-changes-qt6.webxml
qt3d-cpp.webxml
qt3d-examples.webxml
qt3d-multiviewport-example.webxml
qt3d-overview.webxml
qt3d-pbr-materials-example.webxml
-qt3d-planets-qml-example.webxml
qt3d-qml.webxml
-qt3d-scene2d-example.webxml
-qt3d-scene3d-example.webxml
-qt3d-shadow-map-qml-example.webxml
-qt3d-simple-cpp-example.webxml
qt3d-simple-qml-example.webxml
qt3d-simplecustommaterial-example.webxml
-qt3d-wave-example.webxml
-qt3d-widgets-scene3d-example.webxml
qt3d-wireframe-example.webxml
qt3drender-framegraph.webxml
qt3drender-geometry.webxml
+qt3drender-porting-to-rhi.webxml
qt3drender-protips.webxml
qtalgorithms.webxml
+qtbluetooth-btchat-example.webxml
+qtbluetooth-changes-qt6.webxml
+qtbluetooth-le-overview.webxml
+qtbluetooth-lowenergyscanner-example.webxml
+qtbluetooth-overview.webxml
+qtcborcommon.webxml
+qtcharts-barmodelmapper-example.webxml
+qtcharts-boxplotchart-example.webxml
+qtcharts-candlestickchart-example.webxml
+qtcharts-changes-qt6.webxml
+qtcharts-customchart-example.webxml
+qtcharts-datetimeaxis-example.webxml
+qtcharts-examples.webxml
+qtcharts-horizontalbarchart-example.webxml
+qtcharts-horizontalpercentbarchart-example.webxml
+qtcharts-horizontalstackedbarchart-example.webxml
+qtcharts-legendmarkers-example.webxml
+qtcharts-multiaxis-example.webxml
+qtcharts-openglseries-example.webxml
+qtcharts-overview.webxml
+qtcharts-pointsselectionandmarkers-example.webxml
+qtcharts-polarchart-example.webxml
+qtcharts-qmlaxes-example.webxml
+qtcharts-qmlcustomizations-example.webxml
+qtcharts-qmlcustomlegend-example.webxml
+qtcharts-qmlf1legends-example.webxml
+qtcharts-qmloscilloscope-example.webxml
+qtcharts-qmlweather-example.webxml
+qtcharts-scatterchart-example.webxml
+qtcharts-selectedbar-example.webxml
+qtcharts-splinechart-example.webxml
+qtcharts-stackedbarchart-example.webxml
+qtcharts-zoomlinechart-example.webxml
qtconcurrent-imagescaling-example.webxml
-qtconcurrent-map-example.webxml
-qtconcurrent-progressdialog-example.webxml
-qtconcurrent-runfunction-example.webxml
qtconcurrent-wordcount-example.webxml
qtconcurrentfilter.webxml
qtconcurrentmap.webxml
qtconcurrentrun.webxml
+qtconcurrenttask.webxml
+qtcore-changes-qt6.webxml
qtcore-ipc-localfortuneclient-example.webxml
qtcore-ipc-localfortuneserver-example.webxml
-qtcore-ipc-sharedmemory-example.webxml
-qtcore-mimetypes-mimetypebrowser-example.webxml
+qtcore-platform-androidnotifier-example.webxml
qtcore-serialization-savegame-example.webxml
-qtcore-threads-mandelbrot-example.webxml
qtcore-threads-queuedcustomtype-example.webxml
qtcore-threads-semaphores-example.webxml
qtcore-threads-waitconditions-example.webxml
qtcore-tools-contiguouscache-example.webxml
-qtcore-tools-customtype-example.webxml
-qtdatavisualization-audiolevels-example.webxml
-qtdatavisualization-bars-example.webxml
-qtdatavisualization-custominput-example.webxml
-qtdatavisualization-customitems-example.webxml
-qtdatavisualization-customproxy-example.webxml
-qtdatavisualization-data-handling.webxml
-qtdatavisualization-draggableaxes-example.webxml
-qtdatavisualization-interacting-with-data.webxml
-qtdatavisualization-itemmodel-example.webxml
-qtdatavisualization-known-issues.webxml
-qtdatavisualization-overview.webxml
-qtdatavisualization-qmlaxisdrag-example.webxml
-qtdatavisualization-qmlaxisformatter-example.webxml
-qtdatavisualization-qmlbars-example.webxml
-qtdatavisualization-qmlcustominput-example.webxml
-qtdatavisualization-qmllegend-example.webxml
-qtdatavisualization-qmlmultigraph-example.webxml
-qtdatavisualization-qmloscilloscope-example.webxml
-qtdatavisualization-qmlscatter-example.webxml
-qtdatavisualization-qmlspectrogram-example.webxml
-qtdatavisualization-qmlsurface-example.webxml
-qtdatavisualization-qmlsurfacelayers-example.webxml
-qtdatavisualization-rotations-example.webxml
-qtdatavisualization-scatter-example.webxml
-qtdatavisualization-surface-example.webxml
-qtdatavisualization-texturesurface-example.webxml
-qtdatavisualization-volumetric-example.webxml
+qtdbus-chat-example.webxml
+qtdbus-cmake-qt-add-dbus-adaptor.webxml
+qtdbus-cmake-qt-add-dbus-interface.webxml
+qtdbus-cmake-qt-add-dbus-interfaces.webxml
+qtdbus-cmake-qt-generate-dbus-interface.webxml
+qtdbus-complexpingpong-example.webxml
+qtdbus-remotecontrolledcar-example.webxml
+qtdesigner-calculatorbuilder-example.webxml
+qtdesigner-calculatorform-example.webxml
+qtdesigner-components.webxml
+qtdesigner-containerextension-example.webxml
+qtdesigner-customwidgetplugin-example.webxml
+qtdesigner-manual.webxml
qtest-overview.webxml
qtest-tutorial.webxml
+qtextedit-extraselection.webxml
+qtextlayout-formatrange.webxml
+qtextoption-tab.webxml
qtglobal.webxml
-qtgui-analogclock-example.webxml
-qtgui-hellovulkancubes-example.webxml
-qtgui-hellovulkantexture-example.webxml
-qtgui-hellovulkantriangle-example.webxml
-qtgui-hellovulkanwidget-example.webxml
-qtgui-hellovulkanwindow-example.webxml
-qtgui-openglwindow-example.webxml
qtgui-rasterwindow-example.webxml
+qthelp-contextsensitivehelp-example.webxml
qthelp-framework.webxml
qthelpproject.webxml
-qtlocation-changes.webxml
-qtlocation-cpp.webxml
-qtlocation-examples.webxml
-qtlocation-geoservices.webxml
-qtlocation-mapviewer-example.webxml
-qtlocation-minimal-map-example.webxml
-qtlocation-places-example.webxml
-qtlocation-places-list-example.webxml
-qtlocation-places-map-example.webxml
-qtlocation-planespotter-example.webxml
+qtilerules.webxml
+qtimezone-offsetdata.webxml
+qtjavascript.webxml
qtmath.webxml
-qtmultimedia-ios.webxml
-qtmultimedia-multimedia-audiodevices-example.webxml
-qtmultimedia-multimedia-audioengine-example.webxml
-qtmultimedia-multimedia-audioinput-example.webxml
-qtmultimedia-multimedia-audiooutput-example.webxml
-qtmultimedia-multimedia-audiorecorder-example.webxml
-qtmultimedia-multimedia-declarative-camera-example.webxml
-qtmultimedia-multimedia-declarative-radio-example.webxml
-qtmultimedia-multimedia-spectrum-example.webxml
-qtmultimedia-multimedia-video-qmlvideo-example.webxml
-qtmultimedia-multimedia-video-qmlvideofx-example.webxml
-qtmultimedia-multimediawidgets-camera-example.webxml
-qtmultimedia-multimediawidgets-player-example.webxml
-qtmultimedia-multimediawidgets-videographicsitem-example.webxml
-qtmultimedia-multimediawidgets-videowidget-example.webxml
-qtmultimedia-windows.webxml
-qtnetwork-blockingfortuneclient-example.webxml
+qtmultimedia-apple.webxml
+qtmultimedia-changes-qt6.webxml
qtnetwork-broadcastreceiver-example.webxml
qtnetwork-broadcastsender-example.webxml
-qtnetwork-download-example.webxml
-qtnetwork-downloadmanager-example.webxml
-qtnetwork-fortuneclient-example.webxml
-qtnetwork-fortuneserver-example.webxml
-qtnetwork-googlesuggest-example.webxml
qtnetwork-http-example.webxml
-qtnetwork-loopback-example.webxml
qtnetwork-multicastreceiver-example.webxml
qtnetwork-multicastsender-example.webxml
qtnetwork-network-chat-example.webxml
qtnetwork-programming.webxml
qtnetwork-securesocketclient-example.webxml
-qtnetwork-threadedfortuneserver-example.webxml
+qtnetwork-secureudpclient-example.webxml
+qtnetwork-secureudpserver-example.webxml
qtnetwork-torrent-example.webxml
+qtnfc-annotatedurl-example.webxml
+qtnfc-changes-qt6.webxml
+qtnfc-ndefeditor-example.webxml
+qtnfc-overview.webxml
qtopengl-2dpainting-example.webxml
qtopengl-cube-example.webxml
-qtopengl-hellogl2-example.webxml
+qtopengl-hellogles3-example.webxml
+qtopengl-openglwindow-example.webxml
+qtplugin.webxml
+qtpositioning-android.webxml
+qtpositioning-changes-qt6.webxml
qtpositioning-examples.webxml
-qtpositioning-geoflickr-example.webxml
+qtpositioning-ios.webxml
qtpositioning-logfilepositionsource-example.webxml
qtpositioning-plugins.webxml
qtpositioning-satelliteinfo-example.webxml
qtpositioning-weatherinfo-example.webxml
+qtqml-documents-definetypes.webxml
+qtqml-documents-networktransparency.webxml
+qtqml-documents-scope.webxml
+qtqml-documents-structure.webxml
+qtqml-documents-topic.webxml
+qtqml-dynamicscene-example.webxml
+qtqml-javascript-dynamicobjectcreation.webxml
+qtqml-javascript-expressions.webxml
+qtqml-javascript-finetuning.webxml
+qtqml-javascript-functionlist.webxml
+qtqml-javascript-hostenvironment.webxml
+qtqml-javascript-imports.webxml
+qtqml-javascript-qmlglobalobject.webxml
+qtqml-javascript-resources.webxml
+qtqml-javascript-topic.webxml
+qtqml-qml-i18n-example.webxml
+qtqml-syntax-basics.webxml
+qtqml-syntax-directoryimports.webxml
+qtqml-syntax-imports.webxml
+qtqml-syntax-objectattributes.webxml
+qtqml-syntax-propertybinding.webxml
+qtqml-tutorials-extending-qml-example.webxml
+qtqml-typesystem-basictypes.webxml
+qtqml-typesystem-objecttypes.webxml
+qtqml-typesystem-topic.webxml
qtquick-animation-example.webxml
qtquick-bestpractices.webxml
qtquick-canvas-example.webxml
@@ -292,23 +286,11 @@ qtquick-cppextensionpoints.webxml
qtquick-customitems-dialcontrol-example.webxml
qtquick-customitems-flipable-example.webxml
qtquick-customitems-painteditem-example.webxml
-qtquick-customitems-scrollbar-example.webxml
-qtquick-customitems-tabwidget-example.webxml
-qtquick-demos-calqlatr-example.webxml
-qtquick-demos-clocks-example.webxml
-qtquick-demos-maroon-example.webxml
-qtquick-demos-photosurface-example.webxml
-qtquick-demos-photoviewer-example.webxml
-qtquick-demos-rssnews-example.webxml
-qtquick-demos-samegame-example.webxml
-qtquick-demos-stocqt-example.webxml
-qtquick-demos-tweetsearch-example.webxml
qtquick-draganddrop-example.webxml
qtquick-effects-particles.webxml
qtquick-effects-sprites.webxml
qtquick-effects-topic.webxml
qtquick-effects-transformations.webxml
-qtquick-externaldraganddrop-example.webxml
qtquick-imageelements-example.webxml
qtquick-imageprovider-example.webxml
qtquick-imageresponseprovider-example.webxml
@@ -319,12 +301,12 @@ qtquick-input-topic.webxml
qtquick-keyinteraction-example.webxml
qtquick-layouts-example.webxml
qtquick-localstorage-example.webxml
+qtquick-models-abstractitemmodel-example.webxml
qtquick-modelviewsdata-cppmodels.webxml
qtquick-modelviewsdata-modelview.webxml
qtquick-modelviewsdata-topic.webxml
qtquick-mousearea-example.webxml
qtquick-particles-affectors-example.webxml
-qtquick-particles-customparticle-example.webxml
qtquick-particles-emitters-example.webxml
qtquick-particles-imageparticle-example.webxml
qtquick-particles-performance.webxml
@@ -335,24 +317,28 @@ qtquick-positioning-layouts.webxml
qtquick-positioning-righttoleft.webxml
qtquick-positioning-topic.webxml
qtquick-quick-accessibility-example.webxml
-qtquick-righttoleft-example.webxml
-qtquick-scenegraph-customgeometry-example.webxml
+qtquick-quickwidgets-quickwidget-example.webxml
+qtquick-scenegraph-custommaterial-example.webxml
+qtquick-scenegraph-d3d11underqml-example.webxml
+qtquick-scenegraph-graph-example.webxml
qtquick-scenegraph-materials.webxml
+qtquick-scenegraph-metaltextureimport-example.webxml
+qtquick-scenegraph-metalunderqml-example.webxml
qtquick-scenegraph-nodes.webxml
-qtquick-scenegraph-openglunderqml-example.webxml
-qtquick-scenegraph-simplematerial-example.webxml
+qtquick-scenegraph-twotextureproviders-example.webxml
+qtquick-scenegraph-vulkantextureimport-example.webxml
+qtquick-scenegraph-vulkanunderqml-example.webxml
qtquick-shadereffects-example.webxml
qtquick-shapes-example.webxml
qtquick-statesanimations-animations.webxml
qtquick-statesanimations-behaviors.webxml
qtquick-statesanimations-states.webxml
qtquick-statesanimations-topic.webxml
+qtquick-tableview-gameoflife-example.webxml
+qtquick-tableview-pixelator-example.webxml
qtquick-text-example.webxml
-qtquick-text-validator.webxml
-qtquick-threading-example.webxml
-qtquick-threading-threadedlistmodel-example.webxml
+qtquick-tool-qmllint.webxml
qtquick-tools-and-utilities.webxml
-qtquick-touchinteraction-example.webxml
qtquick-tutorials-dynamicview-dynamicview1-example.webxml
qtquick-tutorials-dynamicview-dynamicview2-example.webxml
qtquick-tutorials-dynamicview-dynamicview3-example.webxml
@@ -362,7 +348,6 @@ qtquick-tutorials-samegame-samegame2-example.webxml
qtquick-tutorials-samegame-samegame3-example.webxml
qtquick-tutorials-samegame-samegame4-example.webxml
qtquick-views-example.webxml
-qtquick-visualcanvas-adaptations-d3d12.webxml
qtquick-visualcanvas-adaptations-openvg.webxml
qtquick-visualcanvas-adaptations-software.webxml
qtquick-visualcanvas-adaptations.webxml
@@ -372,130 +357,152 @@ qtquick-visualcanvas-scenegraph.webxml
qtquick-visualcanvas-topic.webxml
qtquick-visualcanvas-visualparent.webxml
qtquick-visualtypes-topic.webxml
-qtquick-window-example.webxml
+qtquickcontrols-changes-qt6.webxml
+qtquickcontrols-chattutorial-example.webxml
+qtquickcontrols-contactlist-example.webxml
+qtquickcontrols-eventcalendar-example.webxml
+qtquickcontrols-flatstyle-example.webxml
+qtquickcontrols-imagine-automotive-example.webxml
+qtquickcontrols-texteditor-example.webxml
+qtquickcontrols-wearable-example.webxml
+qtquickcontrols-basic.webxml
+qtquickcontrols-buttons.webxml
+qtquickcontrols-configuration.webxml
+qtquickcontrols-containers.webxml
+qtquickcontrols-customize.webxml
+qtquickcontrols-delegates.webxml
+qtquickcontrols-deployment.webxml
+qtquickcontrols-environment.webxml
+qtquickcontrols-examples.webxml
+qtquickcontrols-fileselectors.webxml
+qtquickcontrols-focus.webxml
+qtquickcontrols-fusion.webxml
+qtquickcontrols-gettingstarted.webxml
+qtquickcontrols-guidelines.webxml
+qtquickcontrols-icons.webxml
+qtquickcontrols-imagine.webxml
+qtquickcontrols-indicators.webxml
+qtquickcontrols-input.webxml
+qtquickcontrols-macos.webxml
+qtquickcontrols-material.webxml
+qtquickcontrols-menus.webxml
+qtquickcontrols-navigation.webxml
+qtquickcontrols-popups.webxml
+qtquickcontrols-separators.webxml
+qtquickcontrols-styles.webxml
+qtquickcontrols-universal.webxml
+qtquickcontrols-windows.webxml
qtquicklayouts-overview.webxml
-qtsensorgestures-cpp.webxml
-qtsensors-accelbubble-example.webxml
+qtremoteobjects-cmake-qt-add-repc-merged.webxml
+qtremoteobjects-cmake-qt-add-repc-replicas.webxml
+qtremoteobjects-cmake-qt-add-repc-sources.webxml
+qtremoteobjects-cmake-qt-rep-from-headers.webxml
+qtremoteobjects-compatibility.webxml
+qtremoteobjects-custom-transport.webxml
+qtremoteobjects-external-schemas.webxml
+qtremoteobjects-gettingstarted.webxml
+qtremoteobjects-interaction.webxml
+qtremoteobjects-node.webxml
+qtremoteobjects-registry.webxml
+qtremoteobjects-repc.webxml
+qtremoteobjects-replica.webxml
+qtremoteobjects-source.webxml
+qtremoteobjects-ssl-example.webxml
+qtremoteobjects-troubleshooting.webxml
+qtremoteobjects-websockets-example.webxml
+qtscxml-changes-qt6.webxml
+qtscxml-cmake-qt-add-statecharts.webxml
+qtscxml-ftpclient-example.webxml
+qtscxml-instantiating-state-machines.webxml
+qtscxml-overview.webxml
+qtscxml-scxml-compliance.webxml
+qtscxml-sudoku-example.webxml
+qtscxml-trafficlight-qml-dynamic-example.webxml
+qtscxml-trafficlight-qml-simple-example.webxml
+qtscxml-trafficlight-qml-static-example.webxml
+qtscxml-trafficlight-widgets-dynamic-example.webxml
+qtscxml-trafficlight-widgets-static-example.webxml
+qtsensors-changes-qt6.webxml
qtsensors-cpp.webxml
qtsensors-examples.webxml
-qtsensors-grue-example.webxml
-qtsensors-maze-example.webxml
-qtsensors-porting.webxml
-qtsensors-qmlqtsensors-example.webxml
-qtsensors-qmlsensorgestures-example.webxml
-qtsensors-sensor-explorer-example.webxml
-qtsensors-sensorgestures-example.webxml
-qtsensors-shakeit-example.webxml
-qtsql-books-example.webxml
+qtsensors-sensorsshowcase-example.webxml
+qtserialport-blockingreceiver-example.webxml
+qtserialport-blockingsender-example.webxml
+qtserialport-changes-qt6.webxml
+qtserialport-examples.webxml
+qtserialport-terminal-example.webxml
qtsql-cachedtable-example.webxml
+qtsql-changes-qt6.webxml
qtsql-drilldown-example.webxml
qtsql-masterdetail-example.webxml
+qtsql-querymodel-example.webxml
+qtsql-sqlbrowser-example.webxml
qtsql-sqlwidgetmapper-example.webxml
-qtsvg-richtext-textobject-example.webxml
-qtsvg-svggenerator-example.webxml
-qtsvg-svgviewer-example.webxml
+qtsql-tablemodel-example.webxml
+qtsvg-changes-qt6.webxml
+qttest-best-practices-qdoc.webxml
qttestlib-tutorial1-example.webxml
qttestlib-tutorial2-example.webxml
qttestlib-tutorial3-example.webxml
qttestlib-tutorial4-example.webxml
qttestlib-tutorial5-example.webxml
qttestlib-tutorial6.webxml
-qtuitools-multipleinheritance-example.webxml
qtuitools-textfinder-example.webxml
-qtwidgets-animation-easing-example.webxml
-qtwidgets-animation-moveblocks-example.webxml
-qtwidgets-animation-stickman-example.webxml
-qtwidgets-animation-sub-attaq-example.webxml
-qtwidgets-desktop-screenshot-example.webxml
-qtwidgets-desktop-systray-example.webxml
-qtwidgets-dialogs-classwizard-example.webxml
-qtwidgets-dialogs-extension-example.webxml
-qtwidgets-dialogs-findfiles-example.webxml
-qtwidgets-dialogs-licensewizard-example.webxml
-qtwidgets-dialogs-tabdialog-example.webxml
-qtwidgets-dialogs-trivialwizard-example.webxml
-qtwidgets-draganddrop-draggableicons-example.webxml
-qtwidgets-draganddrop-dropsite-example.webxml
-qtwidgets-draganddrop-fridgemagnets-example.webxml
-qtwidgets-draganddrop-puzzle-example.webxml
-qtwidgets-effects-blurpicker-example.webxml
-qtwidgets-effects-fademessage-example.webxml
+qtwebchannel-changes-qt6.webxml
+qtwebchannel-chatclient-html-example.webxml
+qtwebchannel-chatclient-qml-example.webxml
+qtwebchannel-chatserver-cpp-example.webxml
+qtwebchannel-examples.webxml
+qtwebchannel-javascript.webxml
+qtwebengine-changes-qt6.webxml
+qtwebengine-features.webxml
+qtwebengine-overview.webxml
+qtwebengine-platform-notes.webxml
+qtwebengine-webenginequick-lifecycle-example.webxml
+qtwebengine-webenginewidgets-contentmanipulation-example.webxml
+qtwebengine-webenginewidgets-cookiebrowser-example.webxml
+qtwebengine-webenginewidgets-html2pdf-example.webxml
+qtwebengine-webenginewidgets-maps-example.webxml
+qtwebengine-webenginewidgets-printme-example.webxml
+qtwebengine-webenginewidgets-spellchecker-example.webxml
+qtwebengine-webenginewidgets-videoplayer-example.webxml
+qtwebenginewidgets-qtwebkitportingguide.webxml
+qtwebsockets-changes-qt6.webxml
+qtwebsockets-echoclient-example.webxml
+qtwebsockets-echoserver-example.webxml
+qtwebsockets-examples.webxml
+qtwebsockets-qmlwebsocketclient-example.webxml
+qtwebsockets-qmlwebsocketserver-example.webxml
+qtwebsockets-simplechat-example.webxml
+qtwebsockets-sslechoclient-example.webxml
+qtwebsockets-sslechoserver-example.webxml
+qtwebsockets-testing.webxml
qtwidgets-gestures-imagegestures-example.webxml
-qtwidgets-graphicsview-anchorlayout-example.webxml
qtwidgets-graphicsview-basicgraphicslayouts-example.webxml
-qtwidgets-graphicsview-boxes-example.webxml
qtwidgets-graphicsview-chip-example.webxml
-qtwidgets-graphicsview-collidingmice-example.webxml
-qtwidgets-graphicsview-diagramscene-example.webxml
-qtwidgets-graphicsview-dragdroprobot-example.webxml
-qtwidgets-graphicsview-elasticnodes-example.webxml
-qtwidgets-graphicsview-embeddeddialogs-example.webxml
-qtwidgets-graphicsview-flowlayout-example.webxml
-qtwidgets-graphicsview-padnavigator-example.webxml
qtwidgets-graphicsview-simpleanchorlayout-example.webxml
-qtwidgets-graphicsview-weatheranchorlayout-example.webxml
-qtwidgets-itemviews-addressbook-example.webxml
-qtwidgets-itemviews-chart-example.webxml
qtwidgets-itemviews-coloreditorfactory-example.webxml
qtwidgets-itemviews-combowidgetmapper-example.webxml
qtwidgets-itemviews-customsortfiltermodel-example.webxml
-qtwidgets-itemviews-dirview-example.webxml
-qtwidgets-itemviews-editabletreemodel-example.webxml
-qtwidgets-itemviews-fetchmore-example.webxml
qtwidgets-itemviews-frozencolumn-example.webxml
-qtwidgets-itemviews-pixelator-example.webxml
-qtwidgets-itemviews-puzzle-example.webxml
-qtwidgets-itemviews-simpledommodel-example.webxml
qtwidgets-itemviews-simpletreemodel-example.webxml
-qtwidgets-itemviews-simplewidgetmapper-example.webxml
-qtwidgets-itemviews-spinboxdelegate-example.webxml
-qtwidgets-itemviews-stardelegate-example.webxml
-qtwidgets-layouts-basiclayouts-example.webxml
-qtwidgets-layouts-borderlayout-example.webxml
-qtwidgets-layouts-dynamiclayouts-example.webxml
-qtwidgets-layouts-flowlayout-example.webxml
-qtwidgets-mainwindows-application-example.webxml
-qtwidgets-mainwindows-dockwidgets-example.webxml
qtwidgets-mainwindows-menus-example.webxml
qtwidgets-painting-affine-example.webxml
-qtwidgets-painting-basicdrawing-example.webxml
qtwidgets-painting-composition-example.webxml
-qtwidgets-painting-concentriccircles-example.webxml
qtwidgets-painting-deform-example.webxml
-qtwidgets-painting-fontsampler-example.webxml
qtwidgets-painting-gradients-example.webxml
qtwidgets-painting-imagecomposition-example.webxml
qtwidgets-painting-painterpaths-example.webxml
qtwidgets-painting-pathstroke-example.webxml
qtwidgets-painting-transformations-example.webxml
-qtwidgets-richtext-calendar-example.webxml
-qtwidgets-richtext-orderform-example.webxml
-qtwidgets-richtext-syntaxhighlighter-example.webxml
-qtwidgets-statemachine-eventtransitions-example.webxml
-qtwidgets-statemachine-factorial-example.webxml
-qtwidgets-statemachine-pingpong-example.webxml
-qtwidgets-statemachine-rogue-example.webxml
-qtwidgets-statemachine-trafficlight-example.webxml
-qtwidgets-statemachine-twowaybutton-example.webxml
-qtwidgets-tools-codecs-example.webxml
qtwidgets-tools-completer-example.webxml
qtwidgets-tools-customcompleter-example.webxml
qtwidgets-tools-echoplugin-example.webxml
-qtwidgets-tools-plugandpaint-app-example.webxml
-qtwidgets-tools-plugandpaint-plugins-basictools-example.webxml
-qtwidgets-tools-plugandpaint-plugins-extrafilters-example.webxml
-qtwidgets-tools-regularexpression-example.webxml
+qtwidgets-tools-settingseditor-example.webxml
qtwidgets-tools-styleplugin-example.webxml
qtwidgets-tools-treemodelcompleter-example.webxml
-qtwidgets-tools-undo-example.webxml
qtwidgets-tools-undoframework-example.webxml
-qtwidgets-tutorials-addressbook-part1-example.webxml
-qtwidgets-tutorials-addressbook-part2-example.webxml
-qtwidgets-tutorials-addressbook-part3-example.webxml
-qtwidgets-tutorials-addressbook-part4-example.webxml
-qtwidgets-tutorials-addressbook-part5-example.webxml
-qtwidgets-tutorials-addressbook-part6-example.webxml
-qtwidgets-tutorials-addressbook-part7-example.webxml
+qtwidgets-touch-knobs-example.webxml
qtwidgets-tutorials-notepad-example.webxml
qtwidgets-tutorials-widgets-childwidget-example.webxml
qtwidgets-tutorials-widgets-nestedlayouts-example.webxml
@@ -504,48 +511,31 @@ qtwidgets-tutorials-widgets-windowlayout-example.webxml
qtwidgets-widgets-analogclock-example.webxml
qtwidgets-widgets-calculator-example.webxml
qtwidgets-widgets-calendarwidget-example.webxml
-qtwidgets-widgets-charactermap-example.webxml
-qtwidgets-widgets-codeeditor-example.webxml
-qtwidgets-widgets-digitalclock-example.webxml
-qtwidgets-widgets-elidedlabel-example.webxml
qtwidgets-widgets-groupbox-example.webxml
-qtwidgets-widgets-icons-example.webxml
-qtwidgets-widgets-imageviewer-example.webxml
qtwidgets-widgets-lineedits-example.webxml
-qtwidgets-widgets-mousebuttons-example.webxml
-qtwidgets-widgets-movie-example.webxml
qtwidgets-widgets-scribble-example.webxml
qtwidgets-widgets-shapedclock-example.webxml
qtwidgets-widgets-sliders-example.webxml
qtwidgets-widgets-spinboxes-example.webxml
-qtwidgets-widgets-styles-example.webxml
-qtwidgets-widgets-stylesheet-example.webxml
qtwidgets-widgets-tablet-example.webxml
-qtwidgets-widgets-tetrix-example.webxml
-qtwidgets-widgets-tooltips-example.webxml
-qtwidgets-widgets-wiggly-example.webxml
qtwidgets-widgets-windowflags-example.webxml
-qtxml-dombookmarks-example.webxml
-qtxml-saxbookmarks-example.webxml
-qtxml-streambookmarks-example.webxml
-qtxml-xmlstreamlint-example.webxml
-qtxmlpatterns-filetree-example.webxml
-qtxmlpatterns-recipes-example.webxml
-qtxmlpatterns-schema-example.webxml
-qtxmlpatterns-xquery-example.webxml
+quick-changes-qt6.webxml
+qwebenginecookiestore-filterrequest.webxml
qwidget-styling.webxml
-radiooverview.webxml
+remoteobjects-changes-qt6.webxml
+remoteobjects-example-dynamic-replica.webxml
+remoteobjects-example-registry.webxml
+remoteobjects-example-static-source.webxml
resources.webxml
richtext-advanced-processing.webxml
richtext-common-tasks.webxml
richtext-cursor.webxml
richtext-html-subset.webxml
richtext-layouts.webxml
+richtext-processing.webxml
richtext-structure.webxml
richtext.webxml
senorfwbackend.webxml
-sensorgesture-emulator-topics.webxml
-sensorgesture-plugins-topics.webxml
sensors-backend-topics.webxml
shared.webxml
signalsandslots.webxml
@@ -558,8 +548,7 @@ sql-programming.webxml
sql-sqlstatements.webxml
sql-types.webxml
ssl.webxml
-statemachine-api.webxml
-statemachine.webxml
+standard-dialogs.webxml
style-reference.webxml
stylesheet-customizing.webxml
stylesheet-designer.webxml
@@ -568,18 +557,68 @@ stylesheet-reference.webxml
stylesheet-syntax.webxml
stylesheet.webxml
svgrendering.webxml
-textedit-example.webxml
+testlib-changes-qt6.webxml
timers.webxml
-tutorials-addressbook.webxml
+usingadaptors.webxml
videooverview.webxml
+webengine-examples.webxml
+webengine-widgetexamples.webxml
+websockets-overview.webxml
widget-classes.webxml
+widgets-changes-qt6.webxml
widgets-tutorial.webxml
+xml-changes-qt6.webxml
xml-dom-tml.webxml
xml-namespaces.webxml
xml-processing.webxml
-xml-sax.webxml
xml-streaming.webxml
xml-tools.webxml
-xmlpattern-examples.webxml
-xmlprocessing.webxml
-xquery-introduction.webxml
+# qtdoc repository
+accessible.webxml
+appicon.webxml
+create-your-first-applications.webxml
+deployment.webxml
+desktop-integration.webxml
+exceptionsafety.webxml
+explore-qt.webxml
+get-and-install-qt.webxml
+gettingstarted.webxml
+highdpi.webxml
+install-qt-design-studio.webxml
+ipc.webxml
+known-issues.webxml
+overviews-main.webxml
+plugins-howto.webxml
+qml-codingconventions.webxml
+qml-glossary.webxml
+qmlapplications.webxml
+qmlfirststeps.webxml
+qt-intro.webxml
+qtquick-debugging.webxml
+qtquick-performance.webxml
+qtquick-qml-runtime.webxml
+qtquick-usecase-animations.webxml
+qtquick-usecase-integratingjs.webxml
+qtquick-usecase-layouts.webxml
+qtquick-usecase-styling.webxml
+qtquick-usecase-text.webxml
+qtquick-usecase-userinput.webxml
+qtquick-usecase-visual.webxml
+qundo.webxml
+rcc.webxml
+restoring-geometry.webxml
+scalability.webxml
+session.webxml
+sharedlibrary.webxml
+solutions-for-application-development.webxml
+solutions-for-ui-design.webxml
+thread-basics.webxml
+threads.webxml
+tools-for-qt-quick-uis.webxml
+tools-for-qt-widget-based-uis.webxml
+topics-app-development.webxml
+topics-data-io.webxml
+topics-ui.webxml
+uic.webxml
+unicode.webxml
+wayland-and-qt.webxml
diff --git a/sources/pyside6/doc/api.rst b/sources/pyside6/doc/api.rst
index f2eaf1f11..7bbe2ce1c 100644
--- a/sources/pyside6/doc/api.rst
+++ b/sources/pyside6/doc/api.rst
@@ -1,25 +1,30 @@
.. _pyside-api:
-|project| Modules
-=================
+Modules API
+===========
Basic modules
-------------
These are the main modules that help you build a Widget-based UI.
-+---------------------------------------+--------------------------------------------------------+
-| :mod:`QtCore <PySide6.QtCore>` | Provides core non-GUI functionality, like signal and |
-| | slots, properties, base classes of item models, |
-| | serialization, and more. |
-+---------------------------------------+--------------------------------------------------------+
-| :mod:`QtGui <PySide6.QtGui>` | Extends QtCore with GUI functionality: Events, windows |
-| | and screens, OpenGL and raster-based 2D painting, as |
-| | well as images. |
-+---------------------------------------+--------------------------------------------------------+
-| :mod:`QtWidgets <PySide6.QtWidgets>` | Provides ready to use Widgets for your application, |
-| | including graphical elements for your UI. |
-+---------------------------------------+--------------------------------------------------------+
+.. grid:: 1 3 3 3
+ :gutter: 2
+
+ .. grid-item-card:: :mod:`QtCore <PySide6.QtCore>`
+
+ Provides core non-GUI functionality, like signal and slots, properties,
+ base classes of item models, serialization, and more.
+
+ .. grid-item-card:: :mod:`QtGui <PySide6.QtGui>`
+
+ Extends QtCore with GUI functionality: Events, windows and screens,
+ OpenGL and raster-based 2D painting, as well as images.
+
+ .. grid-item-card:: :mod:`QtWidgets <PySide6.QtWidgets>`
+
+ Provides ready to use Widgets for your application, including graphical
+ elements for your UI.
QML and Qt Quick
----------------
@@ -27,16 +32,21 @@ QML and Qt Quick
Use these modules to interact with the `QML Language <https://doc.qt.io/qt-5.qmlapplications>`_,
from Python.
-+-------------------------------------------------+----------------------------------------------+
-| :mod:`QtQml <PySide6.QtQml>` | The base Python API to interact with the |
-| | module. |
-+-------------------------------------------------+----------------------------------------------+
-| :mod:`QtQuick <PySide6.QtQuick>` | Provides classes to embed Qt Quick in Qt |
-| | applications. |
-+-------------------------------------------------+----------------------------------------------+
-| :mod:`QtQuickWidgets <PySide6.QtQuickWidgets>` | Provides the QQuickWidget class to embed Qt |
-| | Quick in widget-based applications. |
-+-------------------------------------------------+----------------------------------------------+
+.. grid:: 1 3 3 3
+ :gutter: 2
+
+ .. grid-item-card:: :mod:`QtQml <PySide6.QtQml>`
+
+ The base Python API to interact with the module.
+
+ .. grid-item-card:: :mod:`QtQuick <PySide6.QtQuick>`
+
+ Provides classes to embed Qt Quick in Qt applications.
+
+ .. grid-item-card:: :mod:`QtQuickWidgets <PySide6.QtQuickWidgets>`
+
+ Provides the QQuickWidget class to embed Qt Quick in widget-based
+ applications.
All the modules
---------------
@@ -44,4 +54,6 @@ All the modules
There are many other modules currently supported by |pymodname|, here you can find a complete list
of them.
- :doc:`Check all the modules <modules>`
+.. toctree::
+
+ modules.rst
diff --git a/sources/pyside6/doc/commercial/index.rst b/sources/pyside6/doc/commercial/index.rst
new file mode 100644
index 000000000..e74419d6a
--- /dev/null
+++ b/sources/pyside6/doc/commercial/index.rst
@@ -0,0 +1,250 @@
+.. _commercial-page:
+
+Commercial Use
+==============
+
+|project| follows the same licensing that Qt has, which means that there are two
+distributions, the Community Edition (LGPLv3/GPLv3) and a Commercial Edition. For
+more information, check the `Qt Licensing`_ page.
+
+As a brief description, you can get the commercial |project| packages by having
+any of the following licenses:
+
+#. Qt for Application Development Professional (ADP)
+#. Qt for Application Development Enterprise (ADE)
+#. Qt for Device Creation Professional (DCP)
+#. Qt for Device Creation Enterprise (DCE)
+
+The only difference is that the ADP license **does not** include the extra
+``Qt OPC UA``, ``Qt MQTT`` and ``Qt CoAP`` modules, which are distributed in
+a special Python wheel.
+
+|project| follows the same approach as Qt, meaning that commercial
+users will have access to both our commercial packages for any
+given version, or the special commercial LTS releases.
+
+Commercial users **should not** install the Community Edition distribution via ``pip
+install pyside6`` to avoid licensing problems, and should refer to the
+packages that can be acquired from the `Qt Account`_, the Qt Installer, or
+via the `qtpip` tool.
+
+Installation
+------------
+
+We understand that the installation of the commercial wheels will depend
+on your use cases. For this, we currently offer three
+ways to install a commercial Qt for Python release: a command line tool,
+using the Maintenance Tool, or downloading packages by hand.
+
+qtpip - a commercial wheel installer
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+`qtpip`_ is a wrapper around `pip`_ (the package installer for Python) that provides an
+integration with the detection of commercial licenses.
+
+To set up the tool, we recommend creating a virtual environment for your
+project, and then installing the tool like any other module:
+
+.. code-block:: bash
+
+ # Create and activate a virtual environment first
+ # then install 'qtpip'
+ pip install qtpip
+
+ # Now install pyside6 (or any of the Qt for Python packages)
+ qtpip install pyside6
+
+Besides the ``install`` command, you can also ``uninstall`` (like in pip) but
+you can also perform a `fulluninstall`` to fully remove all the Qt for Python
+packages. You can find more information running ``qtpip -h``::
+
+ $ qtpip -h
+ Usage: qtpip [options] install <package> fulluninstall <PySide6/shiboken6/all>
+ Qt wrapper around pip.
+ These arguments override pip's. For more, refer to pip --help
+
+ Options:
+ -f, --force Force installation if OSS wheels were already
+ installed.
+ --no-input Disable prompting for input.
+ --no-cache-dir Disable the cache.
+ --disable-pip-version-check Don't periodically check PyPI to determine
+ whether a new version of pip is available for
+ download.
+ --no-color Suppress colored output.
+ --user Install to the Python user install directory for
+ your platform.
+ --force-reinstall Reinstall all packages even if they are already
+ up-to-date.
+ -h, --help Displays help on commandline options.
+ --help-all Displays help, including generic Qt options.
+ -v, --version Displays version information.
+
+ Arguments:
+ install Installs a package, this can be any of PySide6,
+ PySide6-Essentials, PySide6-Addons, shiboken6 or
+ shiboken6-generator for the respective commercial
+ wheel, or any other wheel from PyPi.
+ fulluninstall Fully uninstalls all packages related to
+ PySide6, shiboken6, or both.
+
+.. note:: The release cycle of ``qtpip`` will be independent from the Qt for
+ Python one.
+
+
+Maintenance Tool
+^^^^^^^^^^^^^^^^
+
+As a commercial user, you are able to download the commercial set of wheels
+from the `Qt Maintenance Tool`_. The same versions that are available for
+Qt/C++ are available for the Python bindings.
+
+The wheels will be downloaded, but not installed, mainly because they should
+be installed into a virtual environment rather than the default interpreter.
+A ``requirements.txt`` file will be provided alongside the wheels, in order to
+simplify the installation step::
+
+ pip install -r /path/to/Qt/QtForPython/6.6.0/requirements.txt
+
+Complementary to the wheels, you will be able to download the sources
+as well.
+
+.. note:: Wheels installed this way will be detectable by `*Qt Creator*`_, which
+ will offer you to install them for your current Python interpreter.
+
+Using account.qt.io
+^^^^^^^^^^^^^^^^^^^
+
+Head to your `Qt Account`_ page, and select the **Download** option on the side
+menu. You will find an option to select |project| from the **Products**
+section:
+
+.. image:: products.png
+ :alt: Products screenshot
+ :align: center
+
+There are two options that will list a different set of packages:
+
+* **Qt for Python Commercial wheels** which are the non-LTS releases under
+ commercial licensing, and include commercial only features and tools.
+ Additionally, here is where you can find the *Qt for automation (M2M
+ Protocols)* packages.
+
+* **Qt for Python (Commercial LTS)** where you will find the 5.15.x LTS and 6.2.x
+ LTS releases.
+
+Once you select any of those, you will be able to select the version of the
+packages you want to download for the **Qt for Python Commercial wheels** packages:
+
+.. image:: versions_commercial.png
+ :alt: Commercial versions screenshot
+ :align: center
+
+and the **Qt for Python (Commercial LTS)** packages:
+
+.. image:: versions_lts.png
+ :alt: LTS versions screenshot
+ :align: center
+
+For any of the versions, you can download many packages depending on your
+Operating System (macOS, Windows, or Linux). To learn more about what the
+packages contain, please check the :ref:`package_details` page.
+
+Once you download the packages, you are encouraged to create a Python virtual
+environment to install them - check the ref:`quick-start` page for how to do
+it.
+With your activated environment on a terminal, run the following command (for
+macOS/Linux)::
+
+ pip install *.whl
+
+to install them all, and leave ``pip`` to resolve the dependencies among the
+packages, or for Windows do it by hand selecting the proper combination::
+
+ pip install shiboken6-... PySide6_Essentials-... PySide6-Addons... ...
+
+Alternatively for Windows, you can specify the following command which includes
+the version, and assumes that you are running it on the same directory where
+the wheels are::
+
+ pip install --no-index --find-links=. PySide6==6.4.0.commercial
+
+.. note:: As described in the :ref:`package_details` page, the dependency
+ of the packages requires you to first install the ``shiboken6``
+ package, and then ``shiboken6-generator`` in case you are interested
+ on binding generation; or ``PySide6_Essentials`` in case you want
+ to use the essential modules. After the Essentials, you can optionally
+ install the ``PySide6_Addons`` and ``PySide6_M2M`` depending on your
+ needs.
+
+Qt Creator Integration
+----------------------
+
+*Qt Creator* offers the option to create new |project| projects from the main
+wizard.
+
+To execute the projects, make sure that the proper *Python Interpreter* is
+selected, so *Qt Creator* can use the commercial modules you just installed.
+Go to *Edit -> Preferences* where you can find the *Python* option
+that will show the following:
+
+.. image:: qtcreator_python.png
+ :alt: Qt Creator Python options
+ :align: center
+
+you can add, remove and modify environments. To include a new one, make sure to
+select the main Python executable from your environment. This can be found on
+``path_to_your_env/bin/python`` (macOS and Linux), or
+``path_to_your_env\python.exe`` (Windows).
+
+As an alternative, you can launch *Qt Creator* from within the virtual
+environment, detecting your installation automatically.
+
+Migrating from other versions
+-----------------------------
+
+In case you have a virtual environment with the Open Source distribution, you
+need to first uninstall those packages with the ``pip uninstall <package>``
+command.
+
+To check if packages are installed, run ``pip list`` and look for
+``shiboken`` or ``PySide`` packages.
+
+We always recommend creating a new virtual environment, so in doubt it is
+better to just remove the old ones if you have previous installations. The
+nature of virtual environments is volatile by design.
+
+
+Python Workflow
+---------------
+
+The Qt framework is a C++ framework that we expose to Python with the help of
+Shiboken (binding generator), which allows us to create the PySide Python module.
+
+|project| tries to find a middle ground between how C++ and Python projects
+work, so there are many decisions that need to be made, one of them being that
+the distributing of the packages needs to follow the same Python workflow,
+which means creating Python packages (wheels) and distributing them in a way
+people can use the ``pip`` tool to install them.
+
+PyPi is the main platform to distribute Open Source packages, but when
+commercial packages are required the situation is different. Among all the
+alternatives we had, we initially decided to provide the packages (wheels) on
+the `Qt Account`_ platform, so people can download and install on demand, but
+we are investigating simple ways to improve this process.
+
+There have also been discussions regarding including |project| in the *Qt
+Maintenance Tool* but this creates a new level of complexity. The reasoning is
+that the tool would require people to select or create a Python virtual
+environment on a separate location for this to be installed. Additionally,
+the Python workflow considers virtual environments as very volatile. This means
+they get removed and created often, so reinstalling or updating the |project|
+packages will likely happen.
+
+.. _`Qt Licensing`: https://www.qt.io/licensing/
+.. _`Qt Account`: https://account.qt.io
+.. _`Qt Maintenance Tool`: https://doc.qt.io/qt-6/qt-online-installation.html
+.. _`Qt Creator`: https://www.qt.io/product/development-tools
+.. _`qtpip`: https://pypi.org/project/qtpip/
+.. _`pip`: https://pypi.org/project/pip/
+
diff --git a/sources/pyside6/doc/commercial/products.png b/sources/pyside6/doc/commercial/products.png
new file mode 100644
index 000000000..d78a29e47
--- /dev/null
+++ b/sources/pyside6/doc/commercial/products.png
Binary files differ
diff --git a/sources/pyside6/doc/commercial/qtcreator_python.png b/sources/pyside6/doc/commercial/qtcreator_python.png
new file mode 100644
index 000000000..067497657
--- /dev/null
+++ b/sources/pyside6/doc/commercial/qtcreator_python.png
Binary files differ
diff --git a/sources/pyside6/doc/commercial/versions_commercial.png b/sources/pyside6/doc/commercial/versions_commercial.png
new file mode 100644
index 000000000..00b4b875a
--- /dev/null
+++ b/sources/pyside6/doc/commercial/versions_commercial.png
Binary files differ
diff --git a/sources/pyside6/doc/commercial/versions_lts.png b/sources/pyside6/doc/commercial/versions_lts.png
new file mode 100644
index 000000000..36adaadca
--- /dev/null
+++ b/sources/pyside6/doc/commercial/versions_lts.png
Binary files differ
diff --git a/sources/pyside6/doc/conf.py.in b/sources/pyside6/doc/conf.py.in
index 55726f21a..e195d227f 100644
--- a/sources/pyside6/doc/conf.py.in
+++ b/sources/pyside6/doc/conf.py.in
@@ -13,7 +13,6 @@
import sys
import os
-from pathlib import Path
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
@@ -27,13 +26,28 @@ if @HAS_WEBENGINE_WIDGETS@:
# Add any Sphinx extension module names here, as strings. They can be extensions
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
-#extensions = ['sphinx.ext.todo', 'sphinx.ext.graphviz', 'inheritance_diagram', 'pysideinclude']
extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.ifconfig',
'sphinx.ext.coverage', 'sphinx.ext.intersphinx', 'sphinx.ext.todo',
'sphinx.ext.graphviz', 'inheritance_diagram', 'pysideinclude',
'sphinx.ext.viewcode',
- 'sphinx_panels',
- ]
+ 'sphinx_design', 'sphinx_copybutton', 'myst_parser', 'sphinx_tags',
+ 'sphinx_toolbox.decorators']
+
+myst_enable_extensions = [
+ "amsmath",
+ "colon_fence",
+ "deflist",
+ "dollarmath",
+ "fieldlist",
+ "html_admonition",
+ "html_image",
+ "replacements",
+ "smartquotes",
+ "strikethrough",
+ "substitution",
+ "tasklist",
+]
+myst_heading_anchors = 6
output_format='@DOC_OUTPUT_FORMAT@'
@@ -49,17 +63,22 @@ rst_epilog = """
templates_path = ['@CMAKE_CURRENT_SOURCE_DIR@/_templates']
# The suffix of source filenames.
-source_suffix = '.rst'
+source_suffix = {
+ '.rst': 'restructuredtext',
+ '.md': 'markdown',
+}
# The encoding of source files.
source_encoding = 'utf-8'
+graphviz_output_format = 'svg' # Enable URLs in inheritance diagrams
+
# The master toctree document.
master_doc = 'index'
# General information about the project.
project = u'PySide'
-copyright = u'© 2021 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation License version 1.3</a> as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.'
+copyright = u'2024 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 (https://www.gnu.org/licenses/fdl.html) as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
@@ -86,9 +105,7 @@ release = '@BINDING_API_VERSION_FULL@'
# for source files.
exclude_patterns = ['_build',
'extras',
- 'tutorials/datavisualize', # not in 6.0.0
- 'tutorials/expenses', # not in 6.0.0
- ]
+ '**README.md']
# The reST default role (used for this markup: `text`) to use for all documents.
#default_role = None
@@ -106,6 +123,7 @@ add_function_parentheses = True
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
+pygments_dark_style = "monokai"
# A list of ignored prefixes for module index sorting.
#modindex_common_prefix = []
@@ -115,38 +133,60 @@ pygments_style = 'sphinx'
# The theme to use for HTML and HTML Help pages. Major themes that come with
# Sphinx are currently 'default' and 'sphinxdoc'.
-html_theme = 'pysidedocs'
+html_theme = 'furo'
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
-#html_theme_options = {
-#}
+html_theme_options = {
+ # FIXME: This option is currently enable because on the 'requirements-doc.txt'
+ # We are using a fork of the theme, to include this new option.
+ # This needs to be removed once the functionality is either upstreamed,
+ # or a similar option is provided.
+ "collapse_navbar": True,
+ "dark_css_variables": {
+ "color-brand-primary": "#2cde85",
+ "color-brand-content": "#2cde85",
+ "color-admonition-title--important": "#2cde85",
+ "color-admonition-title-background--important": "#474b53",
+ "font-stack": "'Titillium Web', sans-serif",
+ },
+ "light_css_variables": {
+ "color-brand-primary": "#27138b",
+ "color-brand-content": "#27138b",
+ "color-admonition-title--important": "#27138b",
+ "font-stack": "'Titillium Web', sans-serif",
+ },
+}
# Add any paths that contain custom themes here, relative to this directory.
html_theme_path = ['@CMAKE_CURRENT_SOURCE_DIR@/_themes']
# The name for this set of Sphinx documents. If None, it defaults to
# "<project> v<release> documentation".
-html_title = u'Qt for Python'
+html_title = 'Qt for Python'
# A shorter title for the navigation bar. Default is the same as html_title.
#html_short_title = None
# The name of an image file (relative to this directory) to place at the top
# of the sidebar.
-#html_logo = None
+html_logo = "@CMAKE_CURRENT_SOURCE_DIR@/_static/qtforpython.png"
# The name of an image file (within the static path) to use as favicon of the
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
# pixels large.
-#html_favicon = None
+html_favicon = "_static/qtforpython.ico"
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
-#html_static_path = ['@CMAKE_CURRENT_SOURCE_DIR@/_static']
+html_static_path = ['@CMAKE_CURRENT_SOURCE_DIR@/_static']
+html_css_files = [
+ 'css/qt_font.css',
+ 'css/qt_style.css',
+]
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
# using the given strftime format.
#html_last_updated_fmt = '%b %d, %Y'
@@ -188,7 +228,7 @@ intersphinx_mapping = {'shiboken6': ('shiboken6','@SHIBOKEN_INTERSPHINX_FILE@')}
add_module_names = False
# Skip some warnings when building the documentation with
-# 'build_rst_docs' due to the lack of qdoc generated files, in charge
+# 'build_base_docs' due to the lack of qdoc generated files, in charge
# of sphinx modules (autodoc) and references.
if @SKIP_SPHINX_WARNINGS@:
suppress_warnings = ["autodoc", "autodoc.import_object", "ref.ref"]
@@ -196,3 +236,9 @@ if @SKIP_SPHINX_WARNINGS@:
# -- Options for qthelp output ---------------------------------------------------
qthelp_theme = 'pysidedocs_qthelp'
+# for example tagging based on supported platforms
+tags_create_tags = True
+tags_create_badges = True
+tags_badge_colors = {
+ "Android": "info",
+}
diff --git a/sources/pyside6/doc/considerations.rst b/sources/pyside6/doc/considerations.rst
index 08e53e329..dda1d8b0d 100644
--- a/sources/pyside6/doc/considerations.rst
+++ b/sources/pyside6/doc/considerations.rst
@@ -1,7 +1,7 @@
.. _pysideapi2:
-|project| Considerations
-========================
+Considerations
+==============
API Changes
-----------
@@ -10,7 +10,7 @@ One of the goals of |pymodname| is to be API compatible with PyQt,
with certain exceptions.
The latest considerations and known issues will be also reported
-in the `wiki <https://wiki.qt.io/Qt_for_Python/Considerations>`_.
+in the :ref:`developer-notes`.
__hash__() function return value
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -149,15 +149,15 @@ There was a long-standing bug in the ``tp_richcompare`` implementation of PySide
This oversight was fixed in version 5.15.1 .
-|project| Features
-==================
+Features
+--------
In |project|, we begin for the first time to support a more pythonic user interface.
With a special import statement, you can switch on features which replace certain aspects of
the Python interpreter. This is done by an import statement right after the PySide6 import.
snake_case
-----------
+~~~~~~~~~~
With the statement:
@@ -169,7 +169,7 @@ all methods in the current module are switched from ``camelCase`` to ``snake_cas
A single upper case letter is replaced by an underscore and the lower case letter.
true_property
--------------
+~~~~~~~~~~~~~
With the statement:
@@ -182,7 +182,7 @@ are replaced by Python property objects. Properties are also listed as such
in the according QMetaObject of a class.
Example for both features
--------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~
Some |project| snippet might read:
@@ -200,14 +200,14 @@ Additionally, properties can also be declared directly in Shiboken for
non Qt-libraries, see :ref:`property-declare`.
More about features
--------------------
+~~~~~~~~~~~~~~~~~~~
Detailed info about features can be found here: :ref:`feature-why`
Tools
------
+~~~~~
-|project| ships some Qt tools:
+|project| ships some Qt tools:
* ``pyside6-rcc``: Qt Resource Compiler. This is a command line tool
that compiles ``.qrc`` files containing binary data, for example images,
@@ -222,3 +222,220 @@ Tools
* ``pyside6-designer``: Qt User Interface Designer. This is a graphical tool
to create designs of Qt Widget-based forms and use custom widgets
(see :ref:`using_ui_files`, :ref:`designer_custom_widgets`).
+
+
+.. _NewEnumSystem:
+
+The New Python Enums
+--------------------
+
+The Motivation to use new Enums
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+For a long time, there were just the Shiboken enums, which were modelled as exact as possible
+after the existing enums in Qt. These enums are small classes which also inherit from
+int.
+
+Meanwhile, Python enums have been developed over the years. They have become a natural
+part of modern Python. The implementation is perfectly modelled after the needs of Python
+users. It is therefore just consequent to stop having two different enum implementations
+in the same application and instead to use the new Python implementation everywhere.
+
+
+Existing Work
+~~~~~~~~~~~~~
+
+The new enums beginning with PySide 6.3, replace the Shiboken enums
+with Python variants, which harmonize the builtin enums with the already existing
+``QEnum`` "macro" shown in the :ref:`QEnum` section.
+
+
+Enums behavior in PySide
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+In ``PySide 6.3`` there was a double implementation of old and new enums, where the
+default was old enums.
+The new approach to enum is the default in ``PySide 6.4`` and becomes mandatory
+in ``PySide 6.6``. There exists the environment variable ``PYSIDE6_OPTION_PYTHON_ENUM``
+with the default value of "1". There can also variations be selected by specifying
+different flags, but the value of "0" (switching off) is no longer supported.
+
+The still available options for switching some enum features off can be found in the
+:ref:`enum-features` section.
+
+
+The Differences between old and new Enums
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Python enums and Shiboken enums are more or less compatible with each other.
+Tiny differences are in restrictions:
+
+* Python enums cannot inherit from each other, whereas Shiboken enums can
+* Python enums don't allow undefined values, Shiboken enums do
+* Python enums always need exactly one argument, Shiboken enums have a default zero value
+* Python enums rarely inherit from int, Shiboken enums always do
+
+More visible are the differences between flags, as shown in the following:
+
+The Shiboken flag constructor example has been in PySide prior to 6.3:
+
+::
+
+ flags = Qt.Alignment()
+ enum = Qt.AlignmentFlag
+
+with enum shortcuts like
+
+::
+
+ Qt.AlignLeft = Qt.AlignmentFlag.AlignLeft
+ Qt.AlignTop = Qt.AlignmentFlag.AlignTop
+
+In PySide 6.3, these shortcuts and flags no longer exist (officially).
+Instead, Python has an enum.Flags class which is a subclass of the enum.Enum class.
+But don't be too scared, here comes the good news...
+
+
+Doing a Smooth Transition from the Old Enums
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Changing all the enum code to suddenly use the new syntax is cumbersome and error-prone,
+because such necessary changes are not easy to find.
+Therefore a ``forgiveness mode`` was developed:
+
+The ``forgiveness mode`` allows you to continue using the old constructs but translates them
+silently into the new ones. If you for example write
+
+::
+
+ flags = Qt.Alignment()
+ enum = Qt.AlignLeft
+
+ item.setForeground(QColor(Qt.green))
+
+ flags_type = QPainter.RenderHints
+ flags = QPainter.RenderHints()
+
+ chart_view.setRenderHint(QPainter.Antialiasing)
+
+you get in reality a construct that mimics the following code which is the
+recommended way of writing Flags and Enums:
+
+::
+
+ flags = Qt.AlignmentFlag(0)
+ enum = Qt.AlignmentFlag.AlignLeft
+
+ item.setForeground(QColor(Qt.GlobalColor.green))
+
+ flags_type = QPainter.RenderHint
+ flags = QPainter.RenderHint(0)
+
+ chart_view.setRenderHint(QPainter.RenderHint.Antialiasing)
+
+This has the effect that you can initially ignore the difference between old and new enums,
+as long as the new enums are properties of classes. (This does not work on global enums
+which don't have a class, see ``Limitations`` below.)
+
+
+Forgiveness Mode and Type Hints
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+When you inspect for instance ``QtCore.pyi``, you will only find the new enums, although
+the old ones are still allowed. Also, line completion will only work with the new constructs
+and never propose the old ones.
+
+The reason to implement ``forgiveness mode`` this way was
+
+* to make the transition as smooth as possible, but
+* to encourage people to use the new enums whenever new code is written.
+
+So you can continue to write:
+
+::
+
+ self.text.setAlignment(Qt.AlignCenter)
+
+but this construct is used and recommended for the future:
+
+::
+
+ self.text.setAlignment(Qt.AlignmentFlag.AlignCenter)
+
+
+Limitations
+~~~~~~~~~~~
+
+The forgiveness mode works very well whenever the enum class is embedded in a normal
+PySide class. But there are a few global enums, where especially the ``QtMsgType``
+is a problem:
+
+::
+
+ t = QtMsgType.QtDebugMsg
+
+cannot be written in the shortcut form
+
+::
+
+ t = QtDebugMsg
+
+because there is no surrounding PySide class that provides the forgiving mode
+implementation. Typically, the needed changes are easily found because they often occur
+in an import statement.
+
+Permission API
+--------------
+
+The cross-platform permission APIs were introduced to Qt in version 6.5 which are currently relevant
+to platforms macOS, iOS, Android and WebAssembly. With this API, your Qt application can check and
+request permission for certain features like Camera, Microphone, Location, Bluetooth, Contacts,
+Calendar. More about permission API can be read in this `Blog post`_.
+
+When a PySide6 application that uses the permission API is run in interpreted mode, i.e.,
+``python <main_file>.py``, the code implementing the permission API *will not work*. The only way
+to make your PySide6 application using permission API work is to bundle the application. For Android,
+this means using the `pyside6-android-deploy`_ tool and for macOS, this means using the
+`pyside6-deploy`_ tool.
+
+When running in interpreted mode, you can skip over the permission check/request using the following
+*if* condition
+
+::
+
+ is_deployed = "__compiled__" in globals()
+ if not is_deployed and sys.platform == "darwin":
+ # code implementing permission check and request
+
+This can also be seen in the PySide6 `Camera example`_. * __compiled__ * is a Nuitka attribute to
+check if the application is run as a standalone application or run in interpreted mode with Python.
+
+Android
+~~~~~~~~
+
+For Android, `pyside6-android-deploy`_ takes care of identifying the necessary permissions needed by
+the application and adding those permissions to the *AndroidManifest.xml* using the
+*<uses-permission>* element.
+
+macOS
+~~~~~
+
+Since the Android platform does not automatically come bundled with a Python interpreter, it is
+evident that to make a PySide6 application run on Android you have to package the PySide6
+application. This is not the case for desktop platforms like macOS where a Python interpreter and
+its packages can be installed and run quite easily.
+
+The problem for macOS is that for the permission API to work you need a macOS bundle with an
+*Info.plist* file that lists all the permissions required using the *usage description* string for
+each permission used. When Python is run in interpreted mode, i.e., when you run Python, the Qt
+permission API fetches the *Info.plist* from the Python interpreter by default which does not
+contain the *usage description* strings for the permissions required. You can certainly modify the
+*Info.plist* of the Python framework installation to make the Qt permission API work when running
+a PySide6 application from the terminal. However, this is not recommended. Therefore, the only
+viable solution is to bundle the PySide6 application as a macOS application bundle using
+`pyside6-deploy`_. This macOS application bundle will have its own Info.plist file.
+
+.. _`Blog post`: https://www.qt.io/blog/permission-apis-in-qt-6.5
+.. _`Camera Example`: https://doc.qt.io/qtforpython-6/examples/example_multimedia_camera.html#camera-example
+.. _`pyside6-android-deploy`: https://doc.qt.io/qtforpython-6/gettingstarted/package_details.html#deployment
+.. _`pyside6-deploy`: https://doc.qt.io/qtforpython-6/gettingstarted/package_details.html#deployment
diff --git a/sources/pyside6/doc/contents.rst b/sources/pyside6/doc/contents.rst
index 2dbd09997..4b6c7ffa9 100644
--- a/sources/pyside6/doc/contents.rst
+++ b/sources/pyside6/doc/contents.rst
@@ -1,19 +1,20 @@
-|project| Documentation
-***************************
+.. items for the main front page grid
.. toctree::
:maxdepth: 2
quickstart.rst
- gettingstarted.rst
- porting_from2.rst
+ commercial/index.rst
+ gettingstarted/index.rst
api.rst
+ tools/index.rst
tutorials/index.rst
examples/index.rst
videos.rst
- deployment.rst
- modules.rst
+ deployment/index.rst
considerations.rst
+ developer/index.rst
+
..
Intersphinx references in toctrees is not supported
https://github.com/sphinx-doc/sphinx/issues/1836
diff --git a/sources/pyside6/doc/deployment-briefcase.rst b/sources/pyside6/doc/deployment-briefcase.rst
deleted file mode 100644
index 95aee1432..000000000
--- a/sources/pyside6/doc/deployment-briefcase.rst
+++ /dev/null
@@ -1,204 +0,0 @@
-|project| & Briefcase
-#######################
-
-`Briefcase <https://briefcase.readthedocs.io>`_ is a packaging tool that lets you create a standalone package for a Python application. It supports the following installer formats:
-
- * .app application bundle for macOS
- * MSI installer for Windows
- * AppImage for Linux
-
-For more details, see the `official documentation <https://briefcase.readthedocs.io/en/latest/index.html>`_.
-
-Status of Qt 6 Support
-======================
-
-As of March 2021, Qt 6 is not supported yet.
-
-Preparation
-===========
-
-Install `Briefcase` using the following **pip** command::
-
- pip install briefcase
-
-You also need : docker on linux, `WixToolset`_ on windows,
-
-If you're using a virtual environment, remember to activate it before installing `Briefcase`.
-
-After installation, the `briefcase` binary is located in your virtual environment's `bin/`
-directory, or where your Python executable is located.
-
-You can either create a brand new project using the briefcase assistant or setup your own.
-
-.. _`WixToolset`: https://wixtoolset.org/
-
-Use Briefcase Assistant
-=======================
-
-Run the following command and answer the questions to get started::
-
- briefcase new
-
-Ensure that `PySide6` is chosen as the `GUI toolkit choice`.
-Your PySide6 application is now configured. You can jump to `Build the package`_.
-
-
-Set up your project
-===================
-
-Create a pyproject.toml
------------------------
-
-At the root level of your project, create a `pyproject.toml` file::
-
- [tool.briefcase]
- project_name = "MyPySideApp"
- bundle = "com.example"
- version = "0.0.1"
- url = "https://somwhere/on/the/net"
- license = "GNU General Public License v3 (GPLv3)"
- author = 'MyName Firstname'
- author_email = "cool@mailexample.com"
-
- [tool.briefcase.app.mypysideapp]
- formal_name = "A Cool App"
- description = "The coolest app ever"
- icon = "src/mypysideapp/resources/appicon" # Briecase will choose the right extension depending the os (png,ico,...)
- sources = ['src/mypysideapp']
- requires = ['pyside6==6.0.0',
- 'pony>=0.7.11,<0.8',
- 'dickens==1.0.1',
- 'Pillow==7.1.2',
- 'mako==1.1.2',
- 'beautifulsoup4']
-
-
- [tool.briefcase.app.mypysideapp.macOS]
- requires = []
-
- [tool.briefcase.app.mypysideapp.linux]
- requires = []
- system_requires = []
-
- [tool.briefcase.app.mypysideapp.windows]
- requires = []
-
-
-Write some code
-----------------
-
-Let's say your project tree is like this::
-
- pyproject.toml
- setup.cfg
- pytest.ini
- src/
-
- mypysideapp/
- resources/
- appicon.png
- appicon.ico
- __init__.py
- __main__.py
- app.py
-
-
-Content of `__main__.py`::
-
- import sys
- from PySide6.QtWidgets import QApplication
- from mypysideapp.app import MyWidget
-
- if __name__ == "__main__":
- app = QApplication(sys.argv)
-
- widget = MyWidget()
- widget.resize(800, 600)
- widget.show()
-
- sys.exit(app.exec())
-
-
-Content of `app.py`::
-
- import random
- from PySide6.QtWidgets import (QLabel, QPushButton,
- QVBoxLayout, QWidget)
- from PySide6.QtCore import Slot, Qt
-
- class MyWidget(QWidget):
- def __init__(self):
- QWidget.__init__(self)
-
- self.hello = ["Hallo Welt", "你好,世界", "Hei maailma",
- "Hola Mundo", "Привет мир"]
-
- self.button = QPushButton("Click me!")
- self.text = QLabel("Hello World")
- self.text.setAlignment(Qt.AlignCenter)
-
- self.layout = QVBoxLayout()
- self.layout.addWidget(self.text)
- self.layout.addWidget(self.button)
- self.setLayout(self.layout)
-
- # Connecting the signal
- self.button.clicked.connect(self.magic)
-
- @Slot()
- def magic(self):
- self.text.setText(random.choice(self.hello))
-
-
-Build the package
-==================
-
-Initialize the package
-------------------------
-
-Just run::
-
- briefcase create
-
-Run the following command to initialize the building the packages for Windows, Linux, and macOS.
-It creates a subdirectory each for the different platforms.
-This step takes longer as it adds the packages listed in `requires` sections in the `pyproject.toml` file.
-
-Build the application
----------------------
-::
-
- briefcase build
-
-You'll get::
-
- macOS/A Cool App/A Cool App.app
- or
- linux/A Cool App-x86_64-0.0.1.AppImage
- or
- windows\A Cool App
-
-
-Run the application
--------------------
-::
-
- briefcase run
-
-.. note:: You can run your project in `dev` mode (your source code not packaged) with `briefcase dev`
-
-
-Build the installer (only Windows and macOS)
----------------------------------------------
-
-macOS::
-
- briefcase package --no-sign
-
-It's possible to sign, see the `documentation <https://briefcase.readthedocs.io/en/latest/how-to/code-signing/index.html>`_. You get `macOS/A Cool App-0.0.1.dmg`
-
-Windows::
-
- briefcase package
-
-You get `windows\A_Cool_App-0.0.1.msi`
diff --git a/sources/pyside6/doc/deployment-cxfreeze.rst b/sources/pyside6/doc/deployment-cxfreeze.rst
deleted file mode 100644
index 681dcf315..000000000
--- a/sources/pyside6/doc/deployment-cxfreeze.rst
+++ /dev/null
@@ -1,130 +0,0 @@
-=====================
-|project| & cx_Freeze
-=====================
-
-`cx_Freeze <https://marcelotduarte.github.io/cx_Freeze//>`_ lets you
-freeze your Python application into executables. The supported
-platforms are Linux, macOS, Windows, FreeBSD, among others.
-
-You can read the `official documentation <https://cx-freeze.readthedocs.io/en/latest/index.html>`_
-to clarify any further question, and remember to contribute to
-the project by `filing issues <https://sourceforge.net/projects/cx-freeze/>`_
-if you find any, or contributing to `their development <https://bitbucket.org/anthony_tuininga/cx_freeze/src>`_.
-
-Preparation
-===========
-
-Installing `cx_Freeze` can be done using **pip**::
-
- pip install cx_freeze
-
-If you are using a virtual environment, remember to activate it before
-installing `cx_Freeze` into it.
-
-After the installation, you will have the `cxfreeze` binary to deploy
-your application.
-
-Freezing an application
-=======================
-
-There are three options to work with `cx_Freeze`:
-
- 1. Using the `cxfreeze` script.
- 2. Creating `setup.py` script to build the project.
- 3. Using the module classes directly (for advanced purposes).
-
-The following sections cover the first two use cases.
-
-Creating an example
--------------------
-
-Now, consider the following simple script, named `hello.py`::
-
- import sys
- import random
- from PySide6.QtWidgets import (QApplication, QLabel, QPushButton,
- QVBoxLayout, QWidget)
- from PySide6.QtCore import Slot, Qt
-
- class MyWidget(QWidget):
- def __init__(self):
- QWidget.__init__(self)
-
- self.hello = ["Hallo Welt", "你好,世界", "Hei maailma",
- "Hola Mundo", "Привет мир"]
-
- self.button = QPushButton("Click me!")
- self.text = QLabel("Hello World")
- self.text.setAlignment(Qt.AlignCenter)
-
- self.layout = QVBoxLayout()
- self.layout.addWidget(self.text)
- self.layout.addWidget(self.button)
- self.setLayout(self.layout)
-
- # Connecting the signal
- self.button.clicked.connect(self.magic)
-
- @Slot()
- def magic(self):
- self.text.setText(random.choice(self.hello))
-
- if __name__ == "__main__":
- app = QApplication(sys.argv)
-
- widget = MyWidget()
- widget.resize(800, 600)
- widget.show()
-
- sys.exit(app.exec())
-
-
-Using `cxfreeze` executable
----------------------------
-
-Now that we have an application, try freezing it with the following
-command::
-
- cxfreeze hello.py
-
-This command creates a `dist/` directory containing the executable.
-and a `lib/` directory containing all the shared libraries.
-
-To launch the application, go to the `dist/` directory and execute
-the file::
-
- cd dist/
- ./main
-
-
-Using a setuptools script
--------------------------
-
-For this process, you need an additional script called `setup.py`::
-
- import sys
- from cx_Freeze import setup, Executable
-
- setup(name = "MyApp",
- version = "0.1",
- description = "My GUI App",
- executables = [Executable("hello.py")])
-
-Now, build the project using it::
-
- python setup.py build
-
-This step creates a `build/` directory with the following structure::
-
- build
- └── exe.linux-x86_64-3.7
- └── lib
- └── main
-
-The first directory inside `build/` depends on the platform
-you are using, in this case a `x86_64` Linux using Python 3.7.
-The structure is the same as previously described, and you can simply
-enter the directory and execute the file::
-
- cd build/exe.linux-x86_64-3.7
- ./main
diff --git a/sources/pyside6/doc/deployment-fbs.rst b/sources/pyside6/doc/deployment-fbs.rst
deleted file mode 100644
index c2a2397d2..000000000
--- a/sources/pyside6/doc/deployment-fbs.rst
+++ /dev/null
@@ -1,97 +0,0 @@
-|project| & fbs
-####################
-
-`fbs`_ provides a powerful environment for packaging, creating installers, and signing your
-application. It also lets you manage updates to your application. Since `fbs` is based on
-PyInstaller, it supports Linux, macOS, and Windows.
-
-For more details, see the `fbs tutorial`_ and the `fbs manual`_.
-
-.. _fbs: https://build-system.fman.io/
-.. _fbs tutorial: https://github.com/mherrmann/fbs-tutorial
-.. _fbs manual: https://build-system.fman.io/manual/
-
-Preparation
-===========
-
-Installing `fbs`_ (>= 0.7.6) is done via **pip**::
-
- pip install fbs
-
-If you're using a virtual environment, remember to activate it before installing `fbs`_.
-
-After the installation, you can use the `fbs`_ executable.
-
-Starting a new project
-======================
-
-`fbs`_ provides useful features for you to create a base project structure with the following
-command::
-
- fbs startproject
-
-This command prompts you to answer a few questions to configure the details of your project, like:
-
- * Application name
- * Author name
- * Qt bindings (PySide6 or PyQt5)
- * Bundle indentified (for macOS)
-
-Afterwards, you have a `src/` directory that contains the following structure::
-
- └── src
- ├── build
- │ └── settings
- └── main
- ├── icons
- │ ├── base
- │ ├── linux
- │ └── mac
- └── python
-
-Inside the `settings` directory, there are a few JSON files that can be edited to include more
-information about your project.
-
-The `main` file is in the `python` directory, and its default content is::
-
- from fbs_runtime.application_context import ApplicationContext
- from PySide6.QtWidgets import QMainWindow
-
- import sys
-
- if __name__ == '__main__':
- appctxt = ApplicationContext() # 1. Instantiate ApplicationContext
- window = QMainWindow()
- window.resize(250, 150)
- window.show()
- exit_code = appctxt.app.exec() # 2. Invoke appctxt.app.exec()
- sys.exit(exit_code)
-
-This example shows an empty `QMainWindow`. You can run it using the following command::
-
- fbs run
-
-Freezing the application
-========================
-
-Once you've verified that the application is working properly, you can continue with the freezing
-process using the following command::
-
- fbs freeze
-
-After the process completes, you see a message stating the location of your executable. For
-example::
-
- Done. You can now run `target/MyApp/MyApp`. If that doesn't work, see
- https://build-system.fman.io/troubleshooting.
-
-
-Now, you can try to run the application. The result is the same window as the one you saw with the
-`fbs run` command::
-
- cd target/MyApp/
- ./MyApp
-
-.. note:: This is the case for Linux. For other platforms like macOS, you need to enter the
- directory: `target/MyApp.app/Contents/macOS`. For Windows, you need to find the `MyApp.exe`
- executable.
diff --git a/sources/pyside6/doc/deployment-py2exe.rst b/sources/pyside6/doc/deployment-py2exe.rst
deleted file mode 100644
index 24d260d71..000000000
--- a/sources/pyside6/doc/deployment-py2exe.rst
+++ /dev/null
@@ -1,16 +0,0 @@
-|project| & py2exe
-##################
-
-Deploying an application using py2exe requires writing a small `setup.py` file.
-It is explained in the `Tutorial <http://www.py2exe.org/index.cgi/Tutorial>`_.
-
-py2exe is not generally aware of Qt. It merely copies the dependent libraries
-of the application to the `dist` directory, so, the plugins, QML imports
-and translations of Qt are missing.
-
-The latter need to be copied manually after running py2exe.
-This can be achieved by running the `windeployqt` tool
-from the Qt SDK on the Qt libraries present in the `dist` directory,
-for example:
-
- windeployqt dist\\Qt6Widgets.dll
diff --git a/sources/pyside6/doc/deployment-pyinstaller.rst b/sources/pyside6/doc/deployment-pyinstaller.rst
deleted file mode 100644
index eb900bd74..000000000
--- a/sources/pyside6/doc/deployment-pyinstaller.rst
+++ /dev/null
@@ -1,163 +0,0 @@
-|project| & PyInstaller
-#######################
-
-`PyInstaller <https://www.pyinstaller.org/>`_ lets you freeze your python application into a
-stand-alone executable. This installer supports Linux, macOS, Windows, and more; and is also
-compatible with 3rd-party Python modules, such as |pymodname|.
-
-For more details, see the `official documentation <https://www.pyinstaller.org/documentation.html>`_.
-
-Status of Qt 6 Support
-======================
-
-As of March 2021, Qt 6 is not supported yet. PyInstaller is unable to properly
-deploy Qt; the Qt plugins are not copied. With that, using `--onefile` is not
-possible.
-
-It is possible to use PyInstaller for the non `--onefile` case though by
-manually copying the Qt plugins, QML imports and translations into
-the dist directory after running PyInstaller.
-
-On Windows, this can be achieved by running the `windeployqt` tool
-from the Qt SDK on the Qt libraries present in the `dist` directory, for
-example:
-
- windeployqt dist\\app\\Qt6Widgets.dll
-
-
-Preparation
-===========
-
-Install the `PyInstaller` via **pip** with the following command::
-
- pip install pyinstaller
-
-If you're using a virtual environment, remember to activate it before installing `PyInstaller`.
-
-After installation, the `pyinstaller` binary is located in your virtual environment's `bin/`
-directory, or where your Python executable is located. If that directory isn't in your `PATH`,
-include the whole path when you run `pyinstaller`.
-
-.. warning:: If you already have a PySide6 or Shiboken6 version installed in your
- system path, PyInstaller uses them instead of your virtual environment version.
-
-Freeze an application
-=======================
-
-`PyInstaller` has many options that you can use. To list them all, run `pyinstaller -h`.
-
-There are two main features:
-
- * the option to package the whole project (including shared libraries) into one executable file
- (`--onefile`)
- * the option to place it in a directory containing the libraries
-
-Additionally, on Windows when the command is running, you can open a console with the `-c` option
-(or `--console` or `--nowindowed` equivalent).
-
-Otherwise, you can specify to not open such a console window on macOS and Windows with the `-w`
-option (or `--windowed` or `--noconsole` equivalent).
-
-Create an example
------------------
-
-Now, consider the following script, named `hello.py`::
-
- import sys
- import random
- from PySide6.QtWidgets import (QApplication, QLabel, QPushButton,
- QVBoxLayout, QWidget)
- from PySide6.QtCore import Slot, Qt
-
- class MyWidget(QWidget):
- def __init__(self):
- QWidget.__init__(self)
-
- self.hello = ["Hallo Welt", "你好,世界", "Hei maailma",
- "Hola Mundo", "Привет мир"]
-
- self.button = QPushButton("Click me!")
- self.text = QLabel("Hello World")
- self.text.setAlignment(Qt.AlignCenter)
-
- self.layout = QVBoxLayout()
- self.layout.addWidget(self.text)
- self.layout.addWidget(self.button)
- self.setLayout(self.layout)
-
- # Connecting the signal
- self.button.clicked.connect(self.magic)
-
- @Slot()
- def magic(self):
- self.text.setText(random.choice(self.hello))
-
- if __name__ == "__main__":
- app = QApplication(sys.argv)
-
- widget = MyWidget()
- widget.resize(800, 600)
- widget.show()
-
- sys.exit(app.exec())
-
-
-Since it has a UI, you use the `--windowed` option.
-
-The command line to proceed looks like this::
-
- pyinstaller --name="MyApplication" --windowed hello.py
-
-This process creates two directories: `dist/` and `build/`. The application executable and the
-required shared libraries are placed in `dist/MyApplication`.
-
-To run the application, go to `dist/MyApplication` and run the program::
-
- cd dist/MyApplication/
- ./MyApplication
-
-.. note:: The directory inside `dist/` and the executable have the same name.
-
-Use the `--onefile` option if you prefer to have everything bundled into one executable, without
-the shared libraries next to it::
-
- pyinstaller --name="MyApplication" --windowed --onefile hello.py
-
-This process takes a bit longer, but in the end you have one executable in the `dist/` directory::
-
- cd dist/
- ./MyApplication
-
-
-Some Caveats
-============
-
-
-PyInstaller Issue
------------------
-
-As mentioned before, if available, `PyInstaller` picks a system installation of PySide6 or
-Shiboken6 instead of your `virtualenv` version without notice. This is negligible if those
-two versions are the same.
-
-If you're working with different versions, this can result in frustrating debugging sessions
-when you think you are testing the latest version, but `PyInstaller` is working with an older
-version.
-
-
-Safety Instructions
--------------------
-
-- When using `PyInstaller` with `virtualenv`, make sure that there is no system
- installation of PySide6 or shiboken6.
-
-- Before compiling, use `pip -uninstall pyside6 shiboken6 -y` multiple times, until
- none of the programs are found anymore.
-
-- Pip is usually a good tool. But to be 100 % sure, you should directly remove
- the PySide6 and shiboken6 folders from site-packages.
-
-- Be sure to use the right version of pip. The safest way to really run the right
- pip, is to use the Python that you mean: Instead of the pip command, better use::
-
- <path/to/your/>python -m pip
diff --git a/sources/pyside6/doc/deployment.rst b/sources/pyside6/doc/deployment.rst
deleted file mode 100644
index a294905a0..000000000
--- a/sources/pyside6/doc/deployment.rst
+++ /dev/null
@@ -1,136 +0,0 @@
-.. _deployment-guides:
-
-|project| Deployment
-====================
-
-Deploying or freezing an application is an important part of a Python project,
-this means to bundle all required resources so that the application finds everything it needs to
-be able to run on a client's machine.
-However, because most large projects aren't based on a single Python file, distributing these
-applications can be a challenge.
-
-Here are a few distribution options that you can use:
- 1. Send a normal ZIP file with the application's content.
- 2. Build a proper `Python package (wheel) <https://packaging.python.org/>`_.
- 3. Freeze the application into a single binary file or directory.
- 4. Provide native installer (msi, dmg)
-
-If you choose Option 3, consider using one of these tools:
- * `fbs`_
- * `PyInstaller`_
- * `cx_Freeze`_
- * `py2exe`_
- * `py2app`_
- * `briefcase`_
-
-.. _fbs: https://build-system.fman.io/
-.. _PyInstaller: https://www.pyinstaller.org/
-.. _cx_Freeze: https://marcelotduarte.github.io/cx_Freeze/
-.. _py2exe: http://www.py2exe.org/
-.. _py2app: https://py2app.readthedocs.io/en/latest/
-.. _briefcase: https://briefcase.readthedocs.io
-
-Since |project| is a cross-platform framework, we focus on solutions for the three major
-platforms that Qt supports: Windows, Linux, and macOS.
-
-The following table summarizes the platform support for those packaging tools:
-
-.. raw:: html
-
- <table class="docutils align-default">
- <thead>
- <tr>
- <th class="head">Name</th>
- <th class="head">License</th>
- <th class="head">Qt 6</th>
- <th class="head">Qt 5</th>
- <th class="head">Linux</th>
- <th class="head">macOS</th>
- <th class="head">Windows</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td><p>fbs</p></td>
- <td><p>GPL</p></td>
- <td></td>
- <td><p style="color: green;">yes</p></td>
- <td><p style="color: green;">yes</p></td>
- <td><p style="color: green;">yes</p></td>
- <td><p style="color: green;">yes</p></td>
- </tr>
- <tr>
- <td><p>PyInstaller</p></td>
- <td><p>GPL</p></td>
- <td><p style="color: green;">partial</p></td>
- <td><p style="color: green;">yes</p></td>
- <td><p style="color: green;">yes</p></td>
- <td><p style="color: green;">yes</p></td>
- <td><p style="color: green;">yes</p></td>
- </tr>
- <tr>
- <td><p>cx_Freeze</p></td>
- <td><p>MIT</p></td>
- <td><p style="color: green;">yes</p></td>
- <td><p style="color: green;">yes</p></td>
- <td><p style="color: green;">yes</p></td>
- <td><p style="color: green;">yes</p></td>
- <td><p style="color: green;">yes</p></td>
- </tr>
- <tr>
- <td><p>py2exe</p></td>
- <td><p>MIT</p></td>
- <td><p style="color: green;">partial</p></td>
- <td><p style="color: green;">partial</p></td>
- <td><p style="color: red;">no</p></td>
- <td><p style="color: red;">no</p></td>
- <td><p style="color: green;">yes</p></td>
- </tr>
- <tr>
- <td><p>py2app</p></td>
- <td><p>MIT</p></td>
- <td><p style="color: green;">yes</p></td>
- <td><p style="color: green;">yes</p></td>
- <td><p style="color: red;">no</p></td>
- <td><p style="color: green;">yes</p></td>
- <td><p style="color: red;">no</p></td>
- </tr>
- <tr>
- <td><p>briefcase</p></td>
- <td><p>BSD3</p></td>
- <td><p style="color: red;">no</p></td>
- <td><p style="color: green;">yes</p></td>
- <td><p style="color: green;">yes</p></td>
- <td><p style="color: green;">yes</p></td>
- <td><p style="color: green;">yes</p></td>
- </tr>
- </tbody>
- </table>
-
-Notice that only *fbs*, *cx_Freeze*, *briefcase*, and *PyInstaller* meet our cross-platform requirement.
-
-Since these are command-line tools, you'll need special hooks or scripts to handle resources
-such as images, icons, and meta-information, before adding them to your package. Additionally,
-these tools don't offer a mechanism to update your application packages.
-
-To create update packages, use the `PyUpdater <https://www.pyupdater.org/>`_, which is a tool
-built around PyInstaller.
-
-The `fbs`_ tool offers a nice UI for the user to install the
-application step-by-step.
-
-.. note::
-
- Deployment is supported only from Qt for Python 5.12.2 and later.
-
-Here's a set of tutorials on how to use these tools:
-
-.. toctree::
- :name: mastertoc
- :maxdepth: 2
-
- deployment-fbs.rst
- deployment-pyinstaller.rst
- deployment-cxfreeze.rst
- deployment-briefcase.rst
- deployment-py2exe.rst
diff --git a/sources/pyside6/doc/deployment/deployment-briefcase.rst b/sources/pyside6/doc/deployment/deployment-briefcase.rst
new file mode 100644
index 000000000..e85e618a7
--- /dev/null
+++ b/sources/pyside6/doc/deployment/deployment-briefcase.rst
@@ -0,0 +1,211 @@
+|project| & Briefcase
+#######################
+
+`Briefcase <https://briefcase.readthedocs.io>`_ is a packaging tool that lets
+you create a standalone package for a Python application. It supports the
+following installer formats:
+
+* ``.app`` application bundle for macOS
+* MSI installer for Windows
+* AppImage for Linux
+
+For more details, see the `official documentation
+<https://briefcase.readthedocs.io/en/latest/index.html>`_.
+
+Status of Qt 6 Support
+======================
+
+As of March 2021, Qt 6 is not supported yet.
+
+Preparation
+===========
+
+Install ``Briefcase`` using the following **pip** command::
+
+ pip install briefcase
+
+You also need : docker on linux, `WixToolset`_ on windows,
+
+If you're using a virtual environment, remember to activate it before installing ``Briefcase``.
+
+After installation, the ``briefcase`` binary is located in your virtual environment's ``bin/``
+directory, or where your Python executable is located.
+
+You can either create a brand new project using the briefcase assistant or setup your own.
+
+.. _`WixToolset`: https://wixtoolset.org/
+
+Use Briefcase Assistant
+=======================
+
+Run the following command and answer the questions to get started::
+
+ briefcase new
+
+Ensure that |pymodname| is chosen as the **GUI toolkit choice**.
+Your |pymodname| application is now configured. You can jump to `Build the package`_.
+
+
+Set up your project
+===================
+
+Create a pyproject.toml
+-----------------------
+
+At the root level of your project, create a ``pyproject.toml`` file::
+
+ [tool.briefcase]
+ project_name = "MyPySideApp"
+ bundle = "com.example"
+ version = "0.0.1"
+ url = "https://somwhere/on/the/net"
+ license = "GNU General Public License v3 (GPLv3)"
+ author = 'MyName Firstname'
+ author_email = "cool@mailexample.com"
+
+ [tool.briefcase.app.mypysideapp]
+ formal_name = "A Cool App"
+ description = "The coolest app ever"
+ icon = "src/mypysideapp/resources/appicon" # Briecase will choose the right extension depending the os (png,ico,...)
+ sources = ['src/mypysideapp']
+ requires = ['pyside6==6.0.0',
+ 'pony>=0.7.11,<0.8',
+ 'dickens==1.0.1',
+ 'Pillow==7.1.2',
+ 'mako==1.1.2',
+ 'beautifulsoup4']
+
+
+ [tool.briefcase.app.mypysideapp.macOS]
+ requires = []
+
+ [tool.briefcase.app.mypysideapp.linux]
+ requires = []
+ system_requires = []
+
+ [tool.briefcase.app.mypysideapp.windows]
+ requires = []
+
+
+Write some code
+---------------
+
+Let's say your project tree is like this::
+
+ pyproject.toml
+ setup.cfg
+ pytest.ini
+ src/
+
+ mypysideapp/
+ resources/
+ appicon.png
+ appicon.ico
+ __init__.py
+ __main__.py
+ app.py
+
+
+Content of ``__main__.py``::
+
+ import sys
+ from PySide6.QtWidgets import QApplication
+ from mypysideapp.app import MyWidget
+
+ if __name__ == "__main__":
+ app = QApplication(sys.argv)
+
+ widget = MyWidget()
+ widget.resize(800, 600)
+ widget.show()
+
+ sys.exit(app.exec())
+
+
+Content of ``app.py``::
+
+ import random
+ from PySide6.QtWidgets import (QLabel, QPushButton,
+ QVBoxLayout, QWidget)
+ from PySide6.QtCore import Slot, Qt
+
+ class MyWidget(QWidget):
+ def __init__(self):
+ QWidget.__init__(self)
+
+ self.hello = ["Hallo Welt", "你好,世界", "Hei maailma",
+ "Hola Mundo", "Привет мир"]
+
+ self.button = QPushButton("Click me!")
+ self.text = QLabel("Hello World")
+ self.text.setAlignment(Qt.AlignCenter)
+
+ self.layout = QVBoxLayout()
+ self.layout.addWidget(self.text)
+ self.layout.addWidget(self.button)
+ self.setLayout(self.layout)
+
+ # Connecting the signal
+ self.button.clicked.connect(self.magic)
+
+ @Slot()
+ def magic(self):
+ self.text.setText(random.choice(self.hello))
+
+
+Build the package
+=================
+
+Initialize the package
+----------------------
+
+Just run::
+
+ briefcase create
+
+Run the following command to initialize the building the packages for Windows, Linux, and macOS.
+It creates a subdirectory each for the different platforms.
+This step takes longer as it adds the packages listed in ``requires`` sections in the
+``pyproject.toml`` file.
+
+Build the application
+---------------------
+::
+
+ briefcase build
+
+You'll get::
+
+ macOS/A Cool App/A Cool App.app
+ or
+ linux/A Cool App-x86_64-0.0.1.AppImage
+ or
+ windows\A Cool App
+
+
+Run the application
+-------------------
+::
+
+ briefcase run
+
+.. note:: You can run your project in ``dev`` mode (your source code not packaged) with
+ ``briefcase dev``
+
+
+Build the installer (only Windows and macOS)
+--------------------------------------------
+
+macOS::
+
+ briefcase package --no-sign
+
+It's possible to sign, see the
+`documentation <https://briefcase.readthedocs.io/en/latest/how-to/code-signing/index.html>`_.
+You get ``macOS/A Cool App-0.0.1.dmg``
+
+Windows::
+
+ briefcase package
+
+You get ``windows\A_Cool_App-0.0.1.msi``
diff --git a/sources/pyside6/doc/deployment/deployment-cxfreeze.rst b/sources/pyside6/doc/deployment/deployment-cxfreeze.rst
new file mode 100644
index 000000000..46cbb142e
--- /dev/null
+++ b/sources/pyside6/doc/deployment/deployment-cxfreeze.rst
@@ -0,0 +1,131 @@
+=====================
+|project| & cx_Freeze
+=====================
+
+`cx_Freeze <https://marcelotduarte.github.io/cx_Freeze//>`_ lets you
+freeze your Python application into executables. The supported
+platforms are Linux, macOS, Windows, FreeBSD, among others.
+
+You can read the `official documentation <https://cx-freeze.readthedocs.io/en/latest/index.html>`_
+to clarify any further question, and remember to contribute to
+the project by `filing issues
+<https://github.com/marcelotduarte/cx_Freeze/issues>`_
+if you find any, or contributing to `their development <https://github.com/marcelotduarte/cx_Freeze>`_.
+
+Preparation
+===========
+
+Installing ``cx_Freeze`` can be done using **pip**::
+
+ pip install cx_freeze
+
+If you are using a virtual environment, remember to activate it before
+installing ``cx_Freeze`` into it.
+
+After the installation, you will have the ``cxfreeze`` binary to deploy
+your application.
+
+Freezing an application
+=======================
+
+There are three options to work with ``cx_Freeze``:
+
+1. Using the ``cxfreeze`` script.
+2. Creating ``setup.py`` script to build the project.
+3. Using the module classes directly (for advanced purposes).
+
+The following sections cover the first two use cases.
+
+Creating an example
+-------------------
+
+Now, consider the following simple script, named ``hello.py``::
+
+ import sys
+ import random
+ from PySide6.QtWidgets import (QApplication, QLabel, QPushButton,
+ QVBoxLayout, QWidget)
+ from PySide6.QtCore import Slot, Qt
+
+ class MyWidget(QWidget):
+ def __init__(self):
+ QWidget.__init__(self)
+
+ self.hello = ["Hallo Welt", "你好,世界", "Hei maailma",
+ "Hola Mundo", "Привет мир"]
+
+ self.button = QPushButton("Click me!")
+ self.text = QLabel("Hello World")
+ self.text.setAlignment(Qt.AlignCenter)
+
+ self.layout = QVBoxLayout()
+ self.layout.addWidget(self.text)
+ self.layout.addWidget(self.button)
+ self.setLayout(self.layout)
+
+ # Connecting the signal
+ self.button.clicked.connect(self.magic)
+
+ @Slot()
+ def magic(self):
+ self.text.setText(random.choice(self.hello))
+
+ if __name__ == "__main__":
+ app = QApplication(sys.argv)
+
+ widget = MyWidget()
+ widget.resize(800, 600)
+ widget.show()
+
+ sys.exit(app.exec())
+
+
+Using ``cxfreeze`` executable
+-----------------------------
+
+Now that we have an application, try freezing it with the following
+command::
+
+ cxfreeze hello.py
+
+This command creates a ``dist/`` directory containing the executable.
+and a ``lib/`` directory containing all the shared libraries.
+
+To launch the application, go to the ``dist/`` directory and execute
+the file::
+
+ cd dist/
+ ./main
+
+
+Using a ``setuptools`` script
+-----------------------------
+
+For this process, you need an additional script called ``setup.py``::
+
+ import sys
+ from cx_Freeze import setup, Executable
+
+ setup(name = "MyApp",
+ version = "0.1",
+ description = "My GUI App",
+ executables = [Executable("hello.py")])
+
+Now, build the project using it::
+
+ python setup.py build
+
+This step creates a ``build/`` directory with the following structure::
+
+ build
+ └── exe.linux-x86_64-3.7
+ └── lib
+ └── main
+
+The first directory inside ``build/`` depends on the platform
+you are using, in this case a ``x86_64`` Linux using Python 3.7.
+The structure is the same as previously described, and you can simply
+enter the directory and execute the file::
+
+ cd build/exe.linux-x86_64-3.7
+ ./main
diff --git a/sources/pyside6/doc/deployment/deployment-fbs.rst b/sources/pyside6/doc/deployment/deployment-fbs.rst
new file mode 100644
index 000000000..459a225bf
--- /dev/null
+++ b/sources/pyside6/doc/deployment/deployment-fbs.rst
@@ -0,0 +1,97 @@
+|project| & fbs
+####################
+
+`fbs`_ provides a powerful environment for packaging, creating installers, and signing your
+application. It also lets you manage updates to your application. Since `fbs`_ is based on
+PyInstaller, it supports Linux, macOS, and Windows.
+
+For more details, see the `fbs tutorial`_ and the `fbs manual`_.
+
+.. _fbs: https://build-system.fman.io/
+.. _fbs tutorial: https://github.com/mherrmann/fbs-tutorial
+.. _fbs manual: https://build-system.fman.io/manual/
+
+Preparation
+===========
+
+Installing `fbs`_ (>= 0.7.6) is done via **pip**::
+
+ pip install fbs
+
+If you're using a virtual environment, remember to activate it before installing `fbs`_.
+
+After the installation, you can use the `fbs`_ executable.
+
+Starting a new project
+======================
+
+`fbs`_ provides useful features for you to create a base project structure with the following
+command::
+
+ fbs startproject
+
+This command prompts you to answer a few questions to configure the details of your project, like:
+
+* Application name
+* Author name
+* Qt bindings (PySide6)
+* Bundle indentified (for macOS)
+
+Afterwards, you have a ``src/`` directory that contains the following structure::
+
+ └── src
+ ├── build
+ │ └── settings
+ └── main
+ ├── icons
+ │ ├── base
+ │ ├── linux
+ │ └── mac
+ └── python
+
+Inside the ``settings`` directory, there are a few JSON files that can be edited to include more
+information about your project.
+
+The ``main`` file is in the ``python`` directory, and its default content is::
+
+ from fbs_runtime.application_context import ApplicationContext
+ from PySide6.QtWidgets import QMainWindow
+
+ import sys
+
+ if __name__ == '__main__':
+ appctxt = ApplicationContext() # 1. Instantiate ApplicationContext
+ window = QMainWindow()
+ window.resize(250, 150)
+ window.show()
+ exit_code = appctxt.app.exec() # 2. Invoke appctxt.app.exec()
+ sys.exit(exit_code)
+
+This example shows an empty ``QMainWindow``. You can run it using the following command::
+
+ fbs run
+
+Freezing the application
+========================
+
+Once you've verified that the application is working properly, you can continue with the freezing
+process using the following command::
+
+ fbs freeze
+
+After the process completes, you see a message stating the location of your executable. For
+example::
+
+ Done. You can now run `target/MyApp/MyApp`. If that doesn't work, see
+ https://build-system.fman.io/troubleshooting
+
+
+Now, you can try to run the application. The result is the same window as the one you saw with the
+``fbs run`` command::
+
+ cd target/MyApp/
+ ./MyApp
+
+.. note:: This is the case for Linux. For other platforms like macOS, you need to enter the
+ directory: ``target/MyApp.app/Contents/macOS``. For Windows, you need to find the ``MyApp.exe``
+ executable.
diff --git a/sources/pyside6/doc/deployment/deployment-nuitka.rst b/sources/pyside6/doc/deployment/deployment-nuitka.rst
new file mode 100644
index 000000000..8b0afa56c
--- /dev/null
+++ b/sources/pyside6/doc/deployment/deployment-nuitka.rst
@@ -0,0 +1,132 @@
+|project| & Nuitka
+##################
+
+`Nuitka <https://nuitka.net/>`_ lets you compile your python application into a
+stand-alone executable. Besides being a Python compiler which provides a fair
+acceleration, it has the side-effect of acting as an installer as well.
+Nuitka supports Linux, macOS and Windows.
+
+For more details, see the `official documentation <https://nuitka.net/pages/overview.html>`_.
+
+Preparation
+===========
+
+Install ``Nuitka`` via **pip** with the following command::
+
+ pip install nuitka
+
+After installation, the ``nuitka3`` binary is located in your virtual environment's ``bin/``
+directory, or where your Python executable is located.
+Alternatively, you can also run::
+
+ python3 -m nuitka
+
+to achieve the same effect.
+
+Freeze an application
+=====================
+
+``Nuitka`` has many options that you can use. To list them all, run ``nuitka3 -h``.
+
+To simply compile a project, you can run::
+
+ nuitka3 <programname>
+
+There are two main features:
+
+* the option to place it in a directory containing the libraries
+ (``--standalone``)
+* the option to package the whole project (including shared libraries) into one executable file
+ (``--onefile``)
+
+If you use these options, you need to specify ``--plugin-enable=pyside6``.
+
+Run an example
+--------------
+
+Now, consider the following script, named ``hello.py``::
+
+ import sys
+ import random
+ from PySide6.QtWidgets import (QApplication, QLabel, QPushButton,
+ QVBoxLayout, QWidget)
+ from PySide6.QtCore import Slot, Qt
+
+ class MyWidget(QWidget):
+ def __init__(self):
+ QWidget.__init__(self)
+
+ self.hello = ["Hallo Welt", "你好,世界", "Hei maailma",
+ "Hola Mundo", "Привет мир"]
+
+ self.button = QPushButton("Click me!")
+ self.text = QLabel("Hello World")
+ self.text.setAlignment(Qt.AlignCenter)
+
+ self.layout = QVBoxLayout()
+ self.layout.addWidget(self.text)
+ self.layout.addWidget(self.button)
+ self.setLayout(self.layout)
+
+ # Connecting the signal
+ self.button.clicked.connect(self.magic)
+
+ @Slot()
+ def magic(self):
+ self.text.setText(random.choice(self.hello))
+
+ if __name__ == "__main__":
+ app = QApplication(sys.argv)
+
+ widget = MyWidget()
+ widget.resize(800, 600)
+ widget.show()
+
+ sys.exit(app.exec())
+
+You don't have to copy this script. You find it as ``examples/installer_test/hello.py``.
+
+The command line to proceed looks like this::
+
+ nuitka3 examples/installer_test/hello.py
+
+This process creates an executable ``hello.bin`` and a directory hello.build that you
+don't need. You can execute the binary directly.
+
+In order to create a bundle which can be copied onto a machine without any pre-existing
+installation, run::
+
+ nuitka3 --standalone --plugin-enable=pyside6 examples/installer_test/hello.py
+
+This creates an application ``hello.dist/hello`` that contains everything needed to run.
+
+To run the application, go to ``hello.dist/`` and run the program::
+
+ cd hello.dist
+ ./hello
+
+Use the ``--onefile`` option if you prefer to have everything bundled into one executable, without
+the shared libraries next to it. First you need to install::
+
+ pip install zstandard
+
+for data compression. Then you can run::
+
+ nuitka3 --onefile --plugin-enable=pyside6 examples/installer_test/hello.py
+
+This process takes a bit longer, but in the end you have one executable ``hello.bin``::
+
+ ./hello.bin
+
+
+Some Caveats
+============
+
+
+Nuitka issue on macOS
+---------------------
+
+Nuitka currently has a problem with the macOS bundle files on current macOS versions.
+That has the effect that ``--standalone`` and ``--onefile`` create a crashing application.
+Older versions which don't have the recent macOS API changes from 2020 will work.
+We are currently trying to fix that problem.
diff --git a/sources/pyside6/doc/deployment/deployment-py2exe.rst b/sources/pyside6/doc/deployment/deployment-py2exe.rst
new file mode 100644
index 000000000..6ca09a826
--- /dev/null
+++ b/sources/pyside6/doc/deployment/deployment-py2exe.rst
@@ -0,0 +1,16 @@
+|project| & py2exe
+##################
+
+Deploying an application using py2exe requires writing a small ``setup.py`` file.
+It is explained in the `Tutorial <http://www.py2exe.org/index.cgi/Tutorial>`_.
+
+py2exe is not generally aware of Qt. It merely copies the dependent libraries
+of the application to the ``dist`` directory, so, the plugins, QML imports
+and translations of Qt are missing.
+
+The latter need to be copied manually after running py2exe.
+This can be achieved by running the ``windeployqt`` tool
+from the Qt SDK on the Qt libraries present in the ``dist`` directory,
+for example::
+
+ windeployqt dist\\Qt6Widgets.dll
diff --git a/sources/pyside6/doc/deployment/deployment-pyinstaller.rst b/sources/pyside6/doc/deployment/deployment-pyinstaller.rst
new file mode 100644
index 000000000..feb257162
--- /dev/null
+++ b/sources/pyside6/doc/deployment/deployment-pyinstaller.rst
@@ -0,0 +1,164 @@
+|project| & PyInstaller
+#######################
+
+`PyInstaller <https://www.pyinstaller.org/>`_ lets you freeze your python application into a
+stand-alone executable. This installer supports Linux, macOS, Windows, and more; and is also
+compatible with 3rd-party Python modules, such as |pymodname|.
+
+For more details, see the `official documentation <https://www.pyinstaller.org>`_.
+
+Status of Qt 6 Support
+======================
+
+As of March 2021, Qt 6 is not supported yet. PyInstaller is unable to properly
+deploy Qt; the Qt plugins are not copied. With that, using ``--onefile`` is not
+possible.
+
+It is possible to use PyInstaller for the non ``--onefile`` case though by
+manually copying the Qt plugins, QML imports and translations into
+the dist directory after running PyInstaller.
+
+On Windows, this can be achieved by running the ``windeployqt`` tool
+from the Qt SDK on the Qt libraries present in the ``dist`` directory, for
+example:
+
+ windeployqt dist\\app\\Qt6Widgets.dll
+
+
+Preparation
+===========
+
+Install the ``PyInstaller`` via **pip** with the following command::
+
+ pip install pyinstaller
+
+If you're using a virtual environment, remember to activate it before installing ``PyInstaller``.
+
+After installation, the ``pyinstaller`` binary is located in your virtual environment's ``bin/``
+directory, or where your Python executable is located. If that directory isn't in your ``PATH``,
+include the whole path when you run ``pyinstaller``.
+
+.. warning:: If you already have a PySide6 or Shiboken6 version installed in your
+ system path, PyInstaller uses them instead of your virtual environment version.
+
+Freeze an application
+=======================
+
+``PyInstaller`` has many options that you can use. To list them all, run ``pyinstaller -h``.
+
+There are two main features:
+
+ * the option to package the whole project (including shared libraries) into one executable file
+ (``--onefile``)
+ * the option to place it in a directory containing the libraries
+
+Additionally, on Windows when the command is running, you can open a console with the ``-c`` option
+(or ``--console`` or ``--nowindowed`` equivalent).
+
+Otherwise, you can specify to not open such a console window on macOS and Windows with the ``-w``
+option (or ``--windowed`` or ``--noconsole`` equivalent).
+
+Create an example
+-----------------
+
+Now, consider the following script, named ``hello.py``::
+
+ import sys
+ import random
+ from PySide6.QtWidgets import (QApplication, QLabel, QPushButton,
+ QVBoxLayout, QWidget)
+ from PySide6.QtCore import Slot, Qt
+
+ class MyWidget(QWidget):
+ def __init__(self):
+ QWidget.__init__(self)
+
+ self.hello = ["Hallo Welt", "你好,世界", "Hei maailma",
+ "Hola Mundo", "Привет мир"]
+
+ self.button = QPushButton("Click me!")
+ self.text = QLabel("Hello World")
+ self.text.setAlignment(Qt.AlignCenter)
+
+ self.layout = QVBoxLayout()
+ self.layout.addWidget(self.text)
+ self.layout.addWidget(self.button)
+ self.setLayout(self.layout)
+
+ # Connecting the signal
+ self.button.clicked.connect(self.magic)
+
+ @Slot()
+ def magic(self):
+ self.text.setText(random.choice(self.hello))
+
+ if __name__ == "__main__":
+ app = QApplication(sys.argv)
+
+ widget = MyWidget()
+ widget.resize(800, 600)
+ widget.show()
+
+ sys.exit(app.exec())
+
+
+Since it has a UI, you use the ``--windowed`` option.
+
+The command line to proceed looks like this::
+
+ pyinstaller --name="MyApplication" --windowed hello.py
+
+This process creates two directories: ``dist/`` and ``build/``. The application executable and the
+required shared libraries are placed in ``dist/MyApplication``.
+
+To run the application, go to ``dist/MyApplication`` and run the program::
+
+ cd dist/MyApplication/
+ ./MyApplication
+
+.. note:: The directory inside ``dist/`` and the executable have the same name.
+
+Use the ``--onefile`` option if you prefer to have everything bundled into one executable, without
+the shared libraries next to it::
+
+ pyinstaller --name="MyApplication" --windowed --onefile hello.py
+
+This process takes a bit longer, but in the end you have one executable in the
+``dist/`` directory::
+
+ cd dist/
+ ./MyApplication
+
+
+Some Caveats
+============
+
+
+PyInstaller Issue
+-----------------
+
+As mentioned before, if available, ``PyInstaller`` picks a system installation of |pymodname| or
+Shiboken6 instead of your ``virtualenv`` version without notice. This is negligible if those
+two versions are the same.
+
+If you're working with different versions, this can result in frustrating debugging sessions
+when you think you are testing the latest version, but ``PyInstaller`` is working with an older
+version.
+
+
+Safety Instructions
+-------------------
+
+- When using ``PyInstaller`` with ``virtualenv``, make sure that there is no system
+ installation of PySide6 or shiboken6.
+
+- Before compiling, use ``pip -uninstall pyside6 pyside6_essentials pyside6_addons shiboken6 -y``
+ multiple times, until none of the programs are found anymore.
+
+- Pip is usually a good tool. But to be 100 % sure, you should directly remove
+ the PySide6 and shiboken6 folders from ``site-packages``.
+
+- Be sure to use the right version of pip. The safest way to really run the right
+ pip, is to use the Python that you mean: Instead of the pip command, better use::
+
+ <path/to/your/>python -m pip
diff --git a/sources/pyside6/doc/deployment/deployment-pyside6-android-deploy.rst b/sources/pyside6/doc/deployment/deployment-pyside6-android-deploy.rst
new file mode 100644
index 000000000..53944f6ea
--- /dev/null
+++ b/sources/pyside6/doc/deployment/deployment-pyside6-android-deploy.rst
@@ -0,0 +1,211 @@
+.. _pyside6-android-deploy:
+
+pyside6-android-deploy: the Android deployment tool for Qt for Python
+#####################################################################
+
+``pyside6-android-deploy`` is an easy-to-use tool for deploying PySide6 applications to different
+Android architectures, namely *arm64-v8a, x86_64, x86 and armeabi-v7a*. This tool works similarly to
+the ``pyside6-deploy`` tool and uses the same configuration file ``pysidedeploy.spec`` as
+``pyside6-deploy`` to configure the deployment process. Using the deployment configuration
+options either from the command line or from ``pysidedeploy.spec``, ``pyside6-android-deploy``
+configures the deployment to be initiated and invokes `buildozer`_, a tool used for packaging Python
+applications to Android.
+
+The final output is a `.apk` or a `.aab` file created within the project's source directory. The
+`mode` option specified under the :ref:`buildozer <buildozer_key>` key in ``pysidedeploy.spec``
+determines whether a `.apk` or a `.aab` is created.
+
+.. warning:: Currently, users are required to cross-compile Qt for Python to generate the wheels
+ required for a specific Android target architecture. This requirement will disappear when
+ there are official Qt for Python Android wheels (*in progress*). Because of this
+ requirement ``pyside6-android-deploy`` will be considered in **Technical Preview**.
+ Instructions on cross-compiling Qt for Python for Android can be found
+ :ref:`here <cross_compile_android>`.
+
+.. note:: ``pyside6-android-deploy`` only works on a Linux host at the moment. This constraint
+ is also because Qt for Python cross-compilation for Android currently only works on Linux
+ systems.
+
+How to use it?
+==============
+
+Like ``pyside6-deploy``, there are :ref:`two different ways <how_pysidedeploy>` with which
+you can deploy your PySide6 application using ``pyside6-android-deploy``. The only difference is
+that for ``pyside6-android-deploy`` to work, the main Python entry point file should be named
+``main.py``.
+
+.. _pysideandroiddeploy:
+
+pysidedeploy.spec
+=================
+
+Like ``pyside6-deploy``, you can use the ``pysidedeploy.spec`` file to control the various
+parameters of the deployment process. The file has multiple sections, with each section containing
+multiple keys (parameters being controlled) assigned to a value. The advantages of such a file are
+mentioned :ref:`here <pysidedeployspec_advantages>`. The benefit of using the same
+``pysidedeploy.spec`` for both ``pyside6-deploy`` and ``pyside6-android-deploy`` is that you can
+have one single file to control deployment to all platforms.
+
+The relevant parameters for ``pyside6-android-deploy`` are:
+
+**app**
+ * ``title``: The name of the application.
+ * ``project_dir``: Project directory. The general assumption made is that the project directory
+ is the parent directory of the main Python entry point file.
+ * ``input_file``: Path to the main Python entry point file. For ``pyside6-android-deploy`` this
+ file should be named `main.py`.
+ * ``project_file``: If it exists, this points to the path to the `Qt Creator Python Project File
+ .pyproject <https://doc.qt.io/qtforpython-6/faq/typesoffiles.html
+ #qt-creator-python-project-file-pyproject>`_ file. Such a file in the project directory ensures
+ that deployment does not consider unnecessary files when bundling the executable.
+ * ``exec_directory``: The directory where the final executable is generated.
+
+**python**
+ * ``python_path``: Path to the Python executable. It is recommended to run
+ ``pyside6-android-deploy`` from a virtual environment as certain Python packages will be
+ installed onto the Python environment. However, note to keep the created virtual environment
+ outside the project directory so that ``pyside6-android-deploy`` does not try to package it
+ as well.
+ * ``android_packages``: The Python packages installed into the Python environment for deployment
+ to work. By default, the Python packages `buildozer`_ and `cpython`_ are installed.
+
+.. _qt_key:
+
+**qt**
+ * ``modules``: Comma-separated list of all the Qt modules used by the application. Just like the
+ other configuration options in ``pysidedeploy.spec``, this option is also computed automatically
+ by ``pyside6-android-deploy``. However, if you want to explicitly include certain Qt modules,
+ the module names can be appended to this list without the `Qt` prefix.
+ e.g. Network instead of QtNetwork
+ * ``plugins``: This field is *not relevant* for ``pyside6-android-deploy`` and is only specific to
+ ``pyside6-deploy``. The plugins relevant for ``pyside6-android-deploy`` are specified through
+ the ``plugins`` option under the :ref:`android <android_key>` key.
+
+.. _android_key:
+
+**android**
+ * ``wheel_pyside``: Specifies the path to the PySide6 Android wheel for a specific target
+ architecture.
+ * ``wheel_pyside``: Specifies the path to the Shiboken6 Android wheel for a specific target
+ architecture.
+ * ``plugins``: Comma-separated list of all the Qt plugins used by the application. Just like the
+ other configuration options in ``pysidedeploy.spec``, this option is also computed automatically
+ by ``pyside6-android-deploy``. However, if you want to to explicitly include certain Qt plugins,
+ the plugin names can be appended to this list. To see all the plugins bundled with PySide6, see
+ the `plugins` folder in the ``site-packages`` on your Python where PySide6 is installed. The
+ plugin name corresponds to their folder name. This field can be confused with the ``plugins``
+ option under :ref:`qt <qt_key>` key. In the future, they will be merged into one single option.
+
+.. _buildozer_key:
+
+**buildozer**
+ * ``mode``: Specifies one of the two modes - `release` and `debug`, to run `buildozer`_. The
+ `release` mode creates an *aab* while the `debug` mode creates an apk. The default mode is
+ `debug`.
+ * ``recipe_dir``: Specifies the path to the directory containing `python-for-android`_ recipes.
+ This option is automatically computed by ``pyside6-android-deploy`` during deployment. Without
+ the :ref:`--keep-deployment-files <keep_deployment_files>` option of ``pyside6-android-deploy``,
+ the `recipe_dir` will point to a temporary directory that is deleted after the final Android
+ application package is created.
+ * ``jars_dir``: Specifies the path to the Qt Android `.jar` files that are relevant for
+ creating the Android application package. This option is automatically computed by
+ ``pyside6-android-deploy`` during deployment. Just like ``recipe_dir``, this field is also
+ *not relevant* unless used with the :ref:`--keep-deployment-files <keep_deployment_files>`
+ option of ``pyside6-android-deploy``.
+ * ``ndk_path``: Specifies the path to the Android NDK used for packaging the application.
+ * ``sdk_path``: Specifies the path to the Android SDK used for packaging the application.
+ * ``local_libs``: Specifies non-Qt plugins or other libraries compatible with the Android target
+ to be loaded by the Android runtime on startup.
+ * ``sdk_path``: Specifies the path to the Android SDK used for packaging the application.
+ * ``arch``: Specifies the target architecture's instruction set. This option take one of the four
+ values - *aarch64, armv7a, i686, x86_64*.
+
+Command Line Options
+====================
+
+Here are all the command line options of ``pyside6-android-deploy``:
+
+* **-c/--config-file**: This option is used to specify the path to ``pysidedeploy.spec`` explicitly.
+
+* **--init**: Used to only create the ``pysidedeploy.spec`` file.
+ Usage::
+
+ pyside6-android-deploy --init
+
+* **-v/--verbose**: Runs ``pyside6-android-deploy`` in verbose mode.
+
+* **--dry-run**: Displays the commands being run to produce the Android application package.
+
+.. _keep_deployment_files:
+
+* **--keep-deployment-files**: When this option is added, it retains the build folders created by
+ `buildozer`_ during the deployment process. This includes the folder storing the
+ `python-for-android`_ recipes, relevant `.jar` files and even the Android Gradle project for the
+ application.
+
+* **-f/--force**: When this option is used, it assumes ``yes`` to all prompts and runs
+ ``pyside6-android-deploy`` non-interactively. ``pyside6-android-deploy`` prompts the user to
+ create a Python virtual environment, if not already in one. With this option, the current Python
+ environment is used irrespective of whether the current Python environment is a virtual
+ environment or not.
+
+* **--name**: Application name.
+
+* **--wheel-pyside**: Path to the PySide6 Android wheel for a specific target architecture.
+
+* **--wheel-shiboken**: Path to the Shiboken6 Android wheel for a specific target architecture.
+
+* **--ndk-path**: Path to the Android NDK used for packaging the application.
+
+* **--sdk-path**: Path to the Android SDK used for packaging the application.
+
+* **--extra-ignore-dirs**: Comma-separated directory names inside the project directory. These
+ directories will be skipped when searching for Python files relevant to the project.
+
+* **--extra-modules**: Comma-separated list of Qt modules to be added to the application,
+ in case they are not found automatically. The module name can either be specified
+ by omitting the prefix of Qt or including it eg: both Network and QtNetwork works.
+
+.. _cross_compile_android:
+
+Cross-compile Qt for Python wheels for Android
+==============================================
+
+The cross-compilation of Qt for Python wheel for a specific Android target architecture needs to be
+done only once per Qt version, irrespective of the number of applications you are deploying.
+Currently, cross-compiling Qt for Python wheels only works with a Linux host. Follow these steps
+to cross-compile Qt for Python Android wheels.
+
+#. `Download <qt_download>`_ and install Qt version for which you would like to create Qt for Python
+ wheels.
+
+#. Cloning the Qt for Python repository::
+
+ git clone https://code.qt.io/pyside/pyside-setup
+
+#. Check out the version that you want to build, for example 6.7. The version checked out has
+ to correspond to the Qt version downloaded in Step 1::
+
+ cd pyside-setup && git checkout 6.7
+
+#. Installing the dependencies::
+
+ pip install -r requirements.txt
+ pip install -r tools/cross_compile_android/requirements.txt
+
+#. Run the cross-compilation Python script.::
+
+ python tools/cross_compile_android/main.py --plat-name=aarch64 --qt-install-path=/opt/Qt/6.7.0
+ --auto-accept-license --skip-update
+
+ *--qt-install-path* refers to the path where Qt 6.7.0 is installed. *--auto-accept-license* and
+ *--skip-update* are required for downloading and installing Android NDK and SDK if not already
+ specified through command line options or if they don't already exist in the
+ ``pyside6-android-deploy`` cache. Use --help to see all the other available options::
+
+ python tools/cross_compile_android/main.py --help
+
+.. _`buildozer`: https://buildozer.readthedocs.io/en/latest/
+.. _`python-for-android`: https://python-for-android.readthedocs.io/en/latest/
+.. _`qt_download`: https://www.qt.io/download
+.. _`cpython`: https://pypi.org/project/Cython/
diff --git a/sources/pyside6/doc/deployment/deployment-pyside6-deploy.rst b/sources/pyside6/doc/deployment/deployment-pyside6-deploy.rst
new file mode 100644
index 000000000..980fe2dd1
--- /dev/null
+++ b/sources/pyside6/doc/deployment/deployment-pyside6-deploy.rst
@@ -0,0 +1,217 @@
+.. _pyside6-deploy:
+
+pyside6-deploy: the deployment tool for Qt for Python
+#####################################################
+
+``pyside6-deploy`` is an easy to use tool for deploying PySide6 applications to different
+platforms. It is a wrapper around `Nuitka <https://nuitka.net/>`_, a Python compiler that
+compiles your Python code to C code, and links with libpython to produce the final executable.
+
+The final executable produced has a ``.exe`` suffix on Windows, ``.bin`` on Linux and ``.app`` on
+macOS.
+
+.. note:: Although using a virtual environment for Python is recommended for ``pyside6-deploy``, do
+ not add the virtual environment to the application directory you are trying to deploy.
+ ``pyside6-deploy`` will try to package this venv folder and will eventually fail.
+
+.. _how_pysidedeploy:
+
+How to use it?
+==============
+
+There are 2 different ways with which you can deploy your PySide6 application using
+``pyside6-deploy``:
+
+Approach 1: Using the main python entry point file
+--------------------------------------------------
+
+In this approach, you point ``pyside6-deploy`` to the file containing the main Python entry point
+file of the project i.e. the file containing ``if __name__ == "__main__":``.
+The command looks like this::
+
+ pyside6-deploy /path/to/main_file.py
+
+On running the command, ``pyside6-deploy`` installs all the dependencies required for deployment
+into the Python environment.
+
+If your main Python entry point file is named ``main.py``, then you don't have to point it to the
+filename. You can run ``pyside6-deploy`` without any options, and it will work.
+
+.. note:: If your project contains a ``pysidedeploy.spec`` file, which is generated on the first
+ run of ``pyside6-deploy`` on the project directory, then for any subsequent runs of
+ ``pyside6-deploy`` you can run ``pyside6-deploy`` without specifying the main Python entry
+ point file. It would take the path to the main file from the ``pysidedeploy.spec`` file.
+ To know more about what deployment parameters are controlled by ``pysidedeploy.spec`` file,
+ read `pysidedeploy`_.
+
+.. _approach_two:
+
+Approach 2: Using pysidedeploy.spec config file
+------------------------------------------------
+
+When you run ``pyside6-deploy`` for the first time, it creates a file called ``pysidedeploy.spec``
+in the project directory. This file controls various :ref:`parameters <pysidedeploy>` that influence
+the deployment process. Any subsequent runs of ``pyside6-deploy`` on the project directory, would
+not require additional parameters like the main Python entry point file. You can also point
+``pyside6-deploy`` to the path of the ``pysidedeploy.spec`` file (in case it is not in the same
+directory), to take the parameters from that file. This can be done with the following command::
+
+ pyside6-deploy -c /path/to/pysidedeploy.spec
+
+.. _pysidedeploy:
+
+pysidedeploy.spec
+=================
+
+As mentioned in the `Approach 2 <approach_two>`_ above, you can use this file to control the various
+parameters of the deployment process. The file has multiple sections, with each section containing
+multiple keys (parameters being controlled) assigned to a value. The advantages of such a file are
+two folds:
+
+.. _pysidedeployspec_advantages:
+
+#. Using the command line, you can control the deployment parameters without specifying them each
+ time. It is saved permanently in a file, and any subsequent runs much later in time
+ would enable the user to be aware of their last deployment parameters.
+
+#. Since these parameters are saved into a file, they can be checked into version control. This
+ gives the user more control of the deployment process. For example, when you decide to exclude
+ more QML plugins, or want to include more Nuitka options into your executable.
+
+This file is also used by the ``pyside6-android-deploy`` tool as a configuration file. The advantage
+here is that you can have one single file to control deployment to all platforms.
+
+The relevant parameters for ``pyside6-deploy`` are:
+
+**app**
+ * ``title``: The name of the application
+ * ``project_dir``: Project directory. The general assumption made is that the project directory
+ is the parent directory of the main Python entry point file
+ * ``input_file``: Path to the main Python entry point file
+ * ``project_file``: If it exists, this points to the path to the `Qt Creator Python Project File
+ .pyproject <https://doc.qt.io/qtforpython-6/faq/typesoffiles.html
+ #qt-creator-python-project-file-pyproject>`_ file. Such a file makes sure that the deployment
+ process never considers unnecessary files when bundling the executable.
+ * ``exec_directory``: The directory where the final executable is generated.
+ * ``icon``: The icon used for the application. For Windows, the icon image should be of ``.ico``
+ format, for macOS it should be of ``.icns`` format, and for linux all standard image formats
+ are accepted.
+
+**python**
+ * ``python_path``: Path to the Python executable. It is recommended to run the deployment
+ process inside a virtual environment as certain python packages will be installed onto the
+ Python environment.
+ * ``packages``: The Python packages installed into the Python environment for deployment to
+ work. By default, the Python packages `nuitka <https://pypi.org/project/Nuitka/>`__,
+ `ordered_set <https://pypi.org/project/ordered-set/>`_ and `zstandard
+ <https://pypi.org/project/zstandard/>`_ are installed. If the deployment platform is
+ Linux-based, then `patchelf <https://pypi.org/project/patchelf/>`_ is also installed
+
+**qt**
+ * ``qml_files``: Comma-separated paths to all the QML files bundled with the executable
+ * ``excluded_qml_plugins``: The problem with using Nuitka for QML deployment is that all the QML
+ plugins are also bundled with the executable. When the plugins are bundled, the binaries of
+ the plugin's Qt module are also packaged. For example, size heavy module like QtWebEngine
+ also gets added to your executable, even when you do not use it in your code. The
+ ``excluded_qml_plugins`` parameter helps you to explicitly specify which all QML plugins are
+ excluded. ``pyside6-deploy`` automatically checks the QML files against the various QML
+ plugins and excludes the following Qt modules if they don't exist::
+
+ QtQuick, QtQuick3D, QtCharts, QtWebEngine, QtTest, QtSensors
+
+ The reason why only the presence of the above 6 Qt modules is searched for is because they
+ have the most size heavy binaries among all the Qt modules. With this, you can drastically
+ reduce the size of your executables.
+ * ``modules``: Comma-separated list of all the Qt modules used by the application. Just like the
+ other configuration options in `pysidedeploy.spec`, this option is also computed automatically
+ by ``pyside6-deploy``. However, if the user wants to explicitly include certain Qt modules, the
+ module names can be appended to this list without the `Qt` prefix.
+ e.g. Network instead of QtNetwork
+ * ``plugins``: Comma-separated list of all the Qt plugins used by the application. Just like the
+ other configuration options in `pysidedeploy.spec`, this option is also computed automatically
+ by ``pyside6-deploy``. However, if the user wants to explicitly include certain Qt plugins,
+ the plugin names can be appended to this list. To see all the plugins bundled with PySide6,
+ see the `plugins` folder in the `site-packages` on your Python where PySide6 is installed. The
+ plugin name correspond to their folder name.
+
+**nuitka**
+ * ``macos.permissions``: Only relevant for macOS. This option lists the permissions used by the
+ macOS application, as found in the ``Info.plist`` file of the macOS application bundle, using
+ the so-called UsageDescription strings. The permissions are normally automatically found by
+ ``pyside6-deploy``. However the user can also explicitly specify them using the format
+ `<UsageDescriptionKey>:<Short Description>`. For example, the Camera permission is specified
+ as::
+
+ NSCameraUsageDescription:CameraAccess
+
+ * ``extra_args``: Any extra Nuitka arguments specified. It is specified as space-separated
+ command line arguments i.e. just like how you would specify it when you use Nuitka through
+ the command line. By default, it contains the following arguments::
+
+ --quiet --noinclude-qt-translations=True
+
+Command Line Options
+====================
+
+The most important command line options are the path to the main Python entry point file and the
+``pysidedeploy.spec`` file. If neither of these files exists or their command line options are
+given, then ``pyside6-deploy`` assumes that your current working directory does not contain a
+PySide6 project.
+
+Here are all the command line options of ``pyside6-deploy``:
+
+* **main entry point file**: This option does not have a name or a flag and is not restricted by it.
+ This enables ``pyside6-deploy`` to be used like::
+
+ pyside6-deploy /path/to/main_file.py
+
+* **-c/--config-file**: This option is used to specify the path to ``pysidedeploy.spec`` explicitly
+
+* **--init**: Used to only create the ``pysidedeploy.spec`` file
+ Usage::
+
+ pyside6-deploy /path/to/main --init
+
+
+* **-v/--verbose**: Runs ``pyside6-deploy`` in verbose mode.
+
+* **--dry-run**: Displays the final Nuitka command being run.
+
+* **--keep-deployment-files**: When this option is added, it retains the build folders created by
+ Nuitka during the deployment process.
+
+* **-f/--force**: When this option is used, it forces through all the input prompts.
+ ``pyside6-deploy`` prompts the user to create a Python virtual environment, if not already in one.
+ With this option, the current Python environment is used irrespective of whether the current
+ Python environment is a virtual environment or not.
+
+* **--name**: Application name.
+
+* **--extra-ignore-dirs**: Comma-separated directory names inside the project directory. These
+ directories will be skipped when searching for Python files relevant to the project.
+
+* **--extra-modules**: Comma-separated list of Qt modules to be added to the application,
+ in case they are not found automatically. The module name can either be specified
+ by omitting the prefix of Qt or including it eg: both Network and QtNetwork works.
+
+Considerations
+===============
+
+For deployment to work efficiently by bundling only the necessary plugins, the following utilities
+are required to be installed on the system:
+
+.. list-table::
+ :header-rows: 1
+
+ * - OS
+ - Dependencies
+ - Installation
+ * - Windows
+ - dumpbin
+ - Shipped with MSVC. Run `vcvarsall.bat` to add it to PATH
+ * - Linux
+ - readelf
+ - Available by default
+ * - macOS
+ - dyld_info
+ - Available by default from macOS 12 and upwards
diff --git a/sources/pyside6/doc/deployment/index.rst b/sources/pyside6/doc/deployment/index.rst
new file mode 100644
index 000000000..36e677566
--- /dev/null
+++ b/sources/pyside6/doc/deployment/index.rst
@@ -0,0 +1,155 @@
+.. _deployment-guides:
+
+Deployment
+==========
+
+Deploying or freezing an application is an important part of a Python project,
+this means to bundle all required resources so that the application finds everything it needs to
+be able to run on a client's machine.
+However, because most large projects aren't based on a single Python file, distributing these
+applications can be a challenge.
+
+Here are a few distribution options that you can use:
+ 1. Send a normal ZIP file with the application's content.
+ 2. Build a proper `Python package (wheel) <https://packaging.python.org/>`_.
+ 3. Freeze the application into a single binary file or directory.
+ 4. Provide native installer (msi, dmg)
+
+If you are considering Option 3, then starting with 6.4, we ship a new tool called `pyside6-deploy`
+that deploys your PySide6 application to all desktop platforms - Windows, Linux, and macOS. To know
+more about how to use the tool see :ref:`pyside6-deploy`. For Android deployment, see
+:ref:`pyside6-android-deploy`. Additionally, you can also use other popular deployment tools shown
+below:
+
+* `fbs`_
+* `PyInstaller`_
+* `cx_Freeze`_
+* `py2exe`_
+* `py2app`_
+* `briefcase`_
+
+.. _fbs: https://build-system.fman.io/
+.. _PyInstaller: https://www.pyinstaller.org/
+.. _cx_Freeze: https://marcelotduarte.github.io/cx_Freeze/
+.. _py2exe: http://www.py2exe.org/
+.. _py2app: https://py2app.readthedocs.io/en/latest/
+.. _briefcase: https://briefcase.readthedocs.io
+
+Although you can deploy PySide6 application using these tools, it is recommended to use
+`pyside6-deploy` as it is easier to use and also to get the most optimized executable. Since
+|project| is a cross-platform framework, we focus on solutions for the three major platforms that
+Qt supports: Windows, Linux, and macOS.
+
+The following table summarizes the platform support for those packaging tools:
+
+.. raw:: html
+
+ <table class="docutils align-default">
+ <thead>
+ <tr>
+ <th class="head">Name</th>
+ <th class="head">License</th>
+ <th class="head">Qt 6</th>
+ <th class="head">Qt 5</th>
+ <th class="head">Linux</th>
+ <th class="head">macOS</th>
+ <th class="head">Windows</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><p>fbs</p></td>
+ <td><p>GPL</p></td>
+ <td></td>
+ <td><p style="color: green;">yes</p></td>
+ <td><p style="color: green;">yes</p></td>
+ <td><p style="color: green;">yes</p></td>
+ <td><p style="color: green;">yes</p></td>
+ </tr>
+ <tr>
+ <td><p>PyInstaller</p></td>
+ <td><p>GPL</p></td>
+ <td><p style="color: green;">partial</p></td>
+ <td><p style="color: green;">yes</p></td>
+ <td><p style="color: green;">yes</p></td>
+ <td><p style="color: green;">yes</p></td>
+ <td><p style="color: green;">yes</p></td>
+ </tr>
+ <tr>
+ <td><p>cx_Freeze</p></td>
+ <td><p>MIT</p></td>
+ <td><p style="color: green;">yes</p></td>
+ <td><p style="color: green;">yes</p></td>
+ <td><p style="color: green;">yes</p></td>
+ <td><p style="color: green;">yes</p></td>
+ <td><p style="color: green;">yes</p></td>
+ </tr>
+ <tr>
+ <td><p>py2exe</p></td>
+ <td><p>MIT</p></td>
+ <td><p style="color: green;">partial</p></td>
+ <td><p style="color: green;">partial</p></td>
+ <td><p style="color: red;">no</p></td>
+ <td><p style="color: red;">no</p></td>
+ <td><p style="color: green;">yes</p></td>
+ </tr>
+ <tr>
+ <td><p>py2app</p></td>
+ <td><p>MIT</p></td>
+ <td><p style="color: green;">yes</p></td>
+ <td><p style="color: green;">yes</p></td>
+ <td><p style="color: red;">no</p></td>
+ <td><p style="color: green;">yes</p></td>
+ <td><p style="color: red;">no</p></td>
+ </tr>
+ <tr>
+ <td><p>briefcase</p></td>
+ <td><p>BSD3</p></td>
+ <td><p style="color: green;">partial</p></td>
+ <td><p style="color: green;">yes</p></td>
+ <td><p style="color: green;">yes</p></td>
+ <td><p style="color: green;">yes</p></td>
+ <td><p style="color: green;">yes</p></td>
+ </tr>
+ <tr>
+ <td><p>Nuitka</p></td>
+ <td><p>MIT</p></td>
+ <td><p style="color: green;">yes</p></td>
+ <td><p style="color: green;">yes</p></td>
+ <td><p style="color: green;">yes</p></td>
+ <td><p style="color: green;">yes</p></td>
+ <td><p style="color: green;">yes</p></td>
+ </tr>
+ </tbody>
+ </table>
+
+Notice that only *fbs*, *cx_Freeze*, *briefcase*, and *PyInstaller* meet our cross-platform requirement.
+
+Since these are command-line tools, you'll need special hooks or scripts to handle resources
+such as images, icons, and meta-information, before adding them to your package. Additionally,
+these tools don't offer a mechanism to update your application packages.
+
+To create update packages, use the `PyUpdater <https://www.pyupdater.org/>`_, which is a tool
+built around PyInstaller.
+
+The `fbs`_ tool offers a nice UI for the user to install the
+application step-by-step.
+
+.. note::
+
+ Deployment is supported only from Qt for Python 5.12.2 and later.
+
+Here's a set of tutorials on how to use these tools:
+
+.. toctree::
+ :name: mastertoc
+ :maxdepth: 2
+
+ deployment-pyside6-deploy.rst
+ deployment-pyside6-android-deploy.rst
+ deployment-fbs.rst
+ deployment-pyinstaller.rst
+ deployment-cxfreeze.rst
+ deployment-briefcase.rst
+ deployment-py2exe.rst
+ deployment-nuitka.rst
diff --git a/sources/pyside6/doc/developer/adapt_qt.rst b/sources/pyside6/doc/developer/adapt_qt.rst
new file mode 100644
index 000000000..aec81fb0f
--- /dev/null
+++ b/sources/pyside6/doc/developer/adapt_qt.rst
@@ -0,0 +1,54 @@
+.. _developer-adapt-qt:
+
+Adapt to new Qt versions
+========================
+
+Adapting to source changes
+--------------------------
+
+The dev branch of PySide is switched to a new Qt minor version
+after its API review is finished and the API is stable.
+
+Until that happens, a patch should be continuously developed
+to adapt to this version.
+
+The `new classes page <https://doc-snapshots.qt.io/qt6-6.7/newclasses67.html>`_
+is a good source of information for new API.
+
+New classes and should be added to the type system file (using
+a ``since`` attribute) and ``CMakeList.txt`` file of the respective module.
+
+Should the class not be available on all platforms, the respective
+``QT_CONFIG`` macro needs to be specified in the type system file and
+feature checks need to be added to ``CMakeList.txt`` (see for example
+``QPermission``).
+
+The process consists of running a build and evaluating the log file.
+The script
+`shiboken2tasks.py <https://code.qt.io/cgit/qt-creator/qt-creator.git/tree/scripts/shiboken2tasks.py>`_
+from the *Qt Creator* repository can be used to convert the shiboken warnings
+into a `task file <https://doc.qt.io/qtcreator/creator-task-lists.html>`_
+for display in the build issues pane of *Qt Creator*.
+
+Warnings about new enumerations will be shown there; they should be added
+to type system file using a ``since`` attribute.
+
+Warnings about not finding a function signature for modification
+also need to be handled; mostly this is a sign of a function parameter
+being changed from ``int`` to ``qsizetype`` or similar.
+
+If the build succeeds, a test run should be done.
+
+The Qt source code should be checked for new overloads
+(indicated by ``QT6_DECL_NEW_OVERLOAD_TAIL`` starting from 6.7).
+The resolution needs to be decided for each individual case,
+mostly by removing old functions and using ``<declare-function>``
+to declare new API.
+
+Bumping the version
+-------------------
+
+To instruct ``COIN`` to use the next version of Qt, adapt the files
+``coin/dependencies.yaml`` and/or ``product_dependencies.yaml`` accordingly.
+Next, the wheel names should be changed by adapting
+``sources/shiboken6/.cmake.conf`` and ``sources/pyside6/.cmake.conf``.
diff --git a/sources/pyside6/doc/developer/add_module.rst b/sources/pyside6/doc/developer/add_module.rst
new file mode 100644
index 000000000..2eb962207
--- /dev/null
+++ b/sources/pyside6/doc/developer/add_module.rst
@@ -0,0 +1,61 @@
+.. _developer-add-module:
+
+Add a new module
+================
+
+New modules can be added for many reasons, the most important
+one is when Qt enables or includes a new one for a new release.
+
+Adding the bindings, and documentation are the essentials
+to include new modules, but adding tests and examples is ideal.
+
+Add bindings
+------------
+
+- Find the correct name (look at the include path of Qt).
+- Add the module to the ``coin/dependencies.yaml`` file.
+- Add it to ``sources/pyside6/cmake/PySideHelpers.cmake``.
+- Add it to ``build_scripts/wheel_files.py`` (plugins, translations).
+- Copy an existing module to ``sources/pyside6/PySide6/<name>``.
+- Adapt the ``typesystem.xml`` and ``CMakeList.txt`` (using for example
+ *Qt Creator*'s case-preserving replace function).
+- Make sure the dependencies are correct.
+- Find the exported public classes, add them to the ``typesystem.xml`` file,
+ checking whether they are ``value-type`` or ``object-type``. Add their enums
+ and flags.
+- Add the wrapper files to ``CMakeList.txt``.
+- Create a test dir under ``sources/pyside6/tests`` with an empty
+ ``CMakeList.txt``.
+- Try to build with the module added to the ``--module-subset`` option of
+ ``setup.py``.
+- Watch out for shiboken warnings in the log.
+- Be aware that ``ninja`` mixes stdout and stderr, so, the first warning is
+ typically hidden behind a progress message.
+- A convenient way of doing this is using
+ ``qt-creator/scripts/shiboken2tasks.py`` from the
+ `*Qt Creator* repository <https://code.qt.io/cgit/qt-creator/qt-creator.git>`_
+ converting them to a ``.tasks`` file which can be loaded into *Qt Creator*'s
+ issue pane.
+- Link errors may manifest when ``generate_pyi`` imports the module trying
+ to create signatures. They indicate a missing source file entry
+ or a bug in the module itself.
+
+.. note:: For the build to succeed, the module must follow the Qt convention
+ of using ``#include <QtModule/header.h>`` since module include paths
+ are not passed in PySide.
+
+Distribution
+------------
+
+- Determine to which wheel the module belongs according to
+ `Qt Modules <https://doc.qt.io/qt-6/qtmodules.html>`_.
+- Add the module to ``build_scripts/wheel_files.py`` for use by
+ ``create_wheels.py``.
+- Add the module to one of the ``README.pyside6_*.md`` files.
+
+Add documentation
+-----------------
+
+- Add entry to ``sources/pyside6/doc/modules.rst``.
+- Add a .qdocconf.in file in ``sources/pyside6/doc/qtmodules``.
+- Add module description ``.rst`` file in ``sources/pyside6/doc/extras``.
diff --git a/sources/pyside6/doc/developer/add_port_example.rst b/sources/pyside6/doc/developer/add_port_example.rst
new file mode 100644
index 000000000..b99641f45
--- /dev/null
+++ b/sources/pyside6/doc/developer/add_port_example.rst
@@ -0,0 +1,67 @@
+.. _developer-add-port-example:
+
+Add a new example or port one
+=============================
+
+Adding examples is a good exercise for people wanting to become familiar with
+the modules and its functionality.
+
+You can either design an example from scratch or inspired in another
+application, or simply you can port an existing Qt example that does not have
+a Python counterpart.
+
+Example code should be free of `flake8 <https://pypi.org/project/flake8/>`_
+warnings; this is enforced by a bot. A configuration file is provided
+at the root of the repository. Offending lines can be excluded by a
+``noqa`` directive if there is a good reason to do so.
+
+Keep in mind we do allow 100 columns for line length.
+
+Additionally, please use `isort <https://pypi.org/project/isort/>`_ to keep the
+imports ordered and consistent with other examples.
+
+For example:
+
+.. code-block:: bash
+
+ $ flake8 --config pyside-setup/.flake8 your_file.py
+ $ isort your_file.py
+
+
+
+Add a new example
+-----------------
+
+- Check if the topic your example covers is not in an existing example already.
+- Create a new directory inside the ``examples/<module>`` you think
+ is more relevant.
+- Inside, place the code of the example, and also a ``.pyproject``
+ file listing the files the example needs.
+- If you want the example to be automatically displayed on the
+ example gallery, include a ``doc`` directory that contains a ``rst``
+ file and a screenshot. Check other examples for formatting questions.
+- When writing the ``rst`` file, you can include code snippets using
+ the ``literalinclude`` directive specifying the relative path
+ as listed in the ``.pyproject`` file. The `example_gallery` tool will
+ expand this (see the `pointconfiguration` example).
+- For the code displayed in the tabs, you can create ``rstinc`` files
+ in the ``doc`` directory containing some description explaining them
+ (see the `samplebinding` example).
+
+Port a Qt example
+-----------------
+
+- Quickly check the C++ example, fix outdated code.
+- Port the sources using ``tools/tools/qtcpp2py.py`` (front-end for
+ ``snippets-translate``).
+- Note that our examples need to have unique names due to the doc build.
+- Verify that all slots are decorated using ``@Slot``.
+- Add a ``.pyproject`` file (verify later on that docs build).
+- Add a ``doc`` directory and descriptive ``.rst`` file,
+ and a screenshot if suitable (use ``optipng`` to reduce file size).
+- Add the ``"""Port of the ... example from Qt 6"""`` doc string.
+- Try to port variable and function names to snake case convention.
+- Remove C++ documentation from ``sources/pyside6/doc/additionaldocs.lst``.
+
+.. note:: Example screenshots in ``.png`` should be optimized by
+ running ``optipng -o 7 -strip all``. Alternatively, the ``.webp`` format can be used.
diff --git a/sources/pyside6/doc/developer/add_tool.rst b/sources/pyside6/doc/developer/add_tool.rst
new file mode 100644
index 000000000..732e6b915
--- /dev/null
+++ b/sources/pyside6/doc/developer/add_tool.rst
@@ -0,0 +1,51 @@
+.. _developer-add-tool:
+
+Add a new tool or a Qt tool wrapper
+===================================
+
+Tooling is essential to |project|, for that reason you can find many ad-hoc
+tools in the repository, which include wrappers of Qt tools or newly developed
+tools to solve issues, or improve some project workflows.
+
+Add a new tool
+--------------
+
+Tools not available to end users
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+This depicts the tools that are not shipped with Qt for Python wheels and are used to aid
+Qt for Python development
+
+- Place your tool in the ``tools`` directory.
+- If your project has more than one file, create a directory.
+- Create a ``.pyproject`` file including all the relevant files
+ for your tool.
+
+Tools available to end users
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+- Place your tool in the ``sources/pyside-tools`` directory.
+- If your project has more than one file, create a directory.
+- Create a ``.pyproject`` file including all the relevant files
+ for your tool.
+- Add the relevant files in ``sources/pyside-tools/CMakeLists.txt``.
+- Add the tool in ``sources/pyside-tools/pyside_tool.py``.
+- Add the tool in ``build_scripts/__init__.py`` to create the setuptools entry points
+ i.e. this enable using the tool from the console as "pyside6-<tool_name>"
+- Add an entry to ``sources/pyside6/doc/gettingstarted/package_details.rst``.
+- Include the necessary Qt binaries explicitly on ``build_scripts/wheel_files.py``
+- Build with ``--standalone``, verify it is working.
+
+
+Add a Qt tool wrapper
+---------------------
+
+- Add the relevant files in ``sources/pyside-tools/CMakeLists.txt``.
+- Add the tool in ``sources/pyside-tools/pyside_tool.py``.
+- Add the tool in ``build_scripts/__init__.py`` to create the setuptools entry points
+ i.e. this enable using the tool from the console as "pyside6-<tool_name>"
+- Add an entry to ``sources/pyside6/doc/tools/index.rst`` and the detailed
+ documentation to ``sources/pyside6/doc/tools/<tool_name>.rst``.
+- Include the necessary Qt binaries explicitly on ``build_scripts/wheel_files.py``
+- Add the necessary files to ``build_scripts/wheel_files.py``.
+- Build with ``--standalone``, verify it is working. Also, check if the wheel bundles the tool.
diff --git a/sources/pyside6/doc/developer/documentation.rst b/sources/pyside6/doc/developer/documentation.rst
new file mode 100644
index 000000000..517bd46f1
--- /dev/null
+++ b/sources/pyside6/doc/developer/documentation.rst
@@ -0,0 +1,73 @@
+.. _developer-documentation:
+
+Fixing Documentation issues
+===========================
+
+Fixing texts
+------------
+
+Shiboken's ``<inject-documentation>`` element can be used to add texts.
+It's ``"replace"`` mode is currently not implemented, though.
+
+Fixing snippets
+---------------
+
+Snippets can replaced by placing a Python equivalent under ``sources/pyside6/doc/snippets``.
+The directory structure matches that of Qt. To replace a snippet with the id `0` in
+``qtbase/examples/foo/snippet.cpp``, place a file ``qtbase/examples/foo/snippet_0.cpp.py``
+under that directory (one snippet per file with the snippet id appended to the base name).
+
+More complicated mappings can be added to ``tools/snippets_translate/override.py``.
+
+# Recreating the module descriptions after a Qt major version change
+
+The source tree contains .rst files containing the module description in
+doc/extras (named for example "QtCore.rst"). They are extracted/adapted from
+the C++ module descriptions. If there is no module description file, shiboken
+will extract the module description from the webxml files generated by qdoc.
+This ends up in the build directory under doc/rst/PySide6/&lt;module&gt;/index.rst.
+It can be used as a starting point for a module description file. C++
+specific information like build instructions should be removed.
+
+The descriptions may link to tutorials which can be added to additionaldocs.lst
+for webxml extraction.
+
+Maintaining additionaldocs.lst
+------------------------------
+
+The file is a list of additional documentation files. These are basically Qt
+tutorials referenced by the documentation. They will receive some Python
+adaption by shiboken/sphinx.
+
+The list can be created by the below script and some hand-editing. It will find
+almost all documents. Quite a number of them might be unreferenced, but there
+is no good way of filtering for this.
+Pages of examples that exist in Python should be removed.
+
+.. code-block:: bash
+
+ for F in *.webxml
+ do
+ echo "$F" | egrep '(-index)|(-module)|(-qmlmodule)\.webxml$' > /dev/null
+ if [ $? -ne 0 ]
+ then
+ if fgrep '<para>' "$F" > /dev/null # Exclude reference only
+ then
+ egrep "(<class )|(<namespace )" $F > /dev/null || echo $F
+ fi
+ fi
+ done
+
+Inheritance graphs
+------------------
+
+``inheritance_diagram.pyproject`` lists the script involved in inheritance
+graph generation, ``inheritance_diagram.py`` being the main one used by sphinx.
+The others have main-test drivers for checking.
+
+There are 2 scripts used for determining the inheritance:
+* ``json_inheritance.py`` (env var ``INHERITANCE_FILE``) reads a
+ inheritance.json file containing the class hierarchy generated by
+ shiboken's doc generator.
+
+* ``import_inheritance.py`` actually tries to import the class (legacy)
diff --git a/sources/pyside6/doc/developer/enumfeatures_doc.rst b/sources/pyside6/doc/developer/enumfeatures_doc.rst
new file mode 100644
index 000000000..91b7b6346
--- /dev/null
+++ b/sources/pyside6/doc/developer/enumfeatures_doc.rst
@@ -0,0 +1,160 @@
+.. _enum-features:
+
+The Set of Enum Features
+========================
+
+The development of the new Python enums took the form of a series of patches.
+While we put a lot of effort into supporting the old Enums (without promoting
+them), it is still possible that someone has a case where they cannot use
+the Python enums as they are now. To avoid people setting the environment
+flag to disable this completely, we implemented a way to select each
+combination of enum functions step by step with a specific set of flags.
+
+
+The Possible Enum Flags
+-----------------------
+
+This is the table of all flags used to control the creation of Python enums.
+
+====================== ===== ======================================================
+Flag Name Value
+====================== ===== ======================================================
+ENOPT_OLD_ENUM 0x00 (False) No longer possible since PySide 6.6
+ENOPT_NEW_ENUM 0x01 (True) The default for PySide 6.4, full implementation
+ENOPT_INHERIT_INT 0x02 Turn all Enum into IntEnum and Flag into IntFlag
+ENOPT_GLOBAL_SHORTCUT 0x04 Re-add shortcuts for global enums
+ENOPT_SCOPED_SHORTCUT 0x08 Re-add shortcuts for scoped enums
+ENOPT_NO_FAKESHORTCUT 0x10 Don't fake rename (forgiveness mode)
+ENOPT_NO_FAKERENAMES 0x20 Don't fake shortcuts (forgiveness mode)
+ENOPT_NO_ZERODEFAULT 0x40 Don't use zero default (forgiveness mode)
+ENOPT_NO_MISSING 0x80 Don't allow missing values in Enum
+====================== ===== ======================================================
+
+Such a set of flags can be defined either by the environment variable
+``PYSIDE6_OPTION_PYTHON_ENUM`` or set by the Python variable
+``sys.pyside6_option_python_enum`` before PySide6 is imported.
+The environment variable also supports arbitrary integer expressions
+by using ``ast.literal_eval``.
+
+
+ENOPT_OLD_ENUM (0x00)
+~~~~~~~~~~~~~~~~~~~~~
+
+This option completely disables the new enum implementation.
+Even though this is a valid option, we want to avoid it if possible.
+The goal is to eventually remove the old implementation. To make this
+possible, we have made the individual features of the enum implementation
+accessible as flags. This way, if users report problems, we may be able
+to provide a temporary solution before extending enum support accordingly.
+
+
+ENOPT_NEW_ENUM (0x01)
+~~~~~~~~~~~~~~~~~~~~~
+
+In a perfect world, no one would choose anything other than this default
+setting. Unfortunately, reality is not always like that. That is why
+there are the following flags.
+
+
+The most likely flags needed
+----------------------------
+
+If there are errors, they are likely to be the following: Either implicit
+assumptions are there that require IntEnum, or global enums are used that
+unfortunately cannot be replaced with tricks.
+
+
+ENOPT_INHERIT_INT (0x02)
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+When this flag is set, all ``enum.Enum/enum.Flag`` classes are converted to
+``enum.IntEnum/enum.IntFlag``. This solves the most likely compatibility
+problem when switching to Python enums. The old Shiboken enums always
+inherit from int, but most Python enums do not.
+
+It was a decision of Python developers not to let enums inherit from int by
+default, since no order should be implied. In most cases, inheritance from
+int can be avoided, either by using the value property or better by
+uplifting: instead of using ``AnEnum.AnInstance.value`` in a function that
+expects an int argument, you can also convert the integer to an enumeration
+instance after the call by ``AnEnum(int_arg)`` and use that in comparisons.
+
+However, there are cases where this is not possible, and explicit support in
+PySide is simply not available. In those cases, you can use this flag as a
+workaround until we have implemented alternatives.
+
+
+ENOPT_GLOBAL_SHORTCUT (0x04)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+At the beginning of the Python enum implementation, we continued to support
+the shortcut behavior of Shiboken enums: the enum constants were mirrored
+into the enclosing scope.
+This was later emulated in the course of forgiveness mode. For enum classes
+in a PySide class this works fine, but for enum classes directly on the module
+level there is no good way to implement forgiveness.
+
+It is unlikely that errors are hidden for global enums, because they should
+already produce an error during import. But for cases without access to
+the source code, you can help yourself with this flag.
+
+A flag value of 0x6 is likely to solve the majority of problems.
+
+
+Flags for completeness
+----------------------
+
+The following flags complement the description of Python Enums.
+They essentially serve the better understanding of the
+implementation and make it fully transparent and customizable.
+
+
+ENOPT_SCOPED_SHORTCUT (0x08)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+For completeness, we also supported mirroring scoped enums, although this
+has since been replaced by forgiveness mode. If you want to try this,
+please also use the ENOPT_NO_FAKESHORTCUT flag (0x10), otherwise the
+effect of this flag will remain invisible.
+
+
+ENOPT_NO_FAKERENAMES (0x10)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Forgiveness mode emulates renaming ``Enum.Flag`` classes back to Shiboken
+QFlags structures, which have slightly different names.
+So when such a defunct name is used, the system replaces it internally
+with the new ``enum.Flag`` structure. Unless special boundary problems
+are provoked, this replacement should work.
+
+To see the effect of this renaming, you can turn it off with this flag.
+
+
+ENOPT_NO_ZERODEFAULT (0x40)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+As part of the forgiveness mode, Python enums can be created by a
+parameterless call, although Python enums actually force a parameter
+when called.
+
+The effect can be examined if this flag is set to disable it.
+
+
+ENOPT_NO_MISSING (0x80)
+~~~~~~~~~~~~~~~~~~~~~~~
+
+There are a few cases where Shiboken enums use missing values. In
+``enum.Flag`` structures, this is allowed anyway because we have set the
+``FlagBoundary.KEEP`` flag (see ``enum.py``).
+
+Normal ``enum.Enum`` structures don't have this provision, but the
+``enum`` module allows to pass a ``_missing_`` function for customization.
+
+Our way of dealing with this situation is to create a new fake
+``enum.Enum`` class with the same name and a nameless instance, and
+pretend with an attribute setting that it has the same type.
+The additional instances created in this way are recorded in a class dict
+``_sbk_missing_`` in order to preserve their identity.
+
+You will see the effect of not defining a ``_missing_`` function if you
+set this flag.
diff --git a/sources/pyside6/doc/developer/extras.rst b/sources/pyside6/doc/developer/extras.rst
new file mode 100644
index 000000000..9788b539d
--- /dev/null
+++ b/sources/pyside6/doc/developer/extras.rst
@@ -0,0 +1,55 @@
+Test a wheel
+============
+
+There is a tool that you can use to test a set of wheels called 'testwheel' but
+it's currently in a different repository (``qt/qtqa``):
+
+- Use ``scripts/packagetesting/testwheel.py`` from the
+ `qtqa repository <https://code.qt.io/cgit/qt/qtqa.git>`_.
+
+To test the wheels:
+
+- Create a virtual environment and activate it.
+- Install the dependencies listed on the ``requirements.txt`` file.
+- Install all the wheels: ``shiboken6``, ``shiboken6-generator``,
+ and ``PySide6-Essentials``.
+- Run the ``testwheel`` tool.
+- Install ``PySide6-Addons`` wheels.
+- Run again the ``testwheel`` tool.
+- In case you have access to commercial wheels, don't forget the
+ ``PySide6-M2M`` as well, and re-run the ``testwheel`` tool.
+
+Build on the command line
+=========================
+
+- Consider using ``build_scripts/qp5_tool.py``.
+
+Build with address sanitizer (Linux)
+====================================
+
+ASAN needs to be told to not exit on memory leaks and its library
+needs to be pre-loaded. Assuming the library is found
+at ``/usr/lib/gcc/x86_64-linux-gnu/11``:
+
+.. code-block:: bash
+
+ export ASAN_OPTIONS=detect_leaks=0
+ export LD_PRELOAD=/usr/lib/gcc/x86_64-linux-gnu/11/libasan.so
+ python setup.py build [...] --sanitize-address
+
+De-Virtualize the Python Files
+==============================
+
+The Python files in the Shiboken module are completely virtual, i.E.
+they are nowhere existent in the file system for security reasons.
+
+For debugging purposes or to change something, it might be desirable
+to move these files into the normal file system, again.
+
+- Setting the environment variable "SBK_EMBED" once to false unpacks these
+ files when PySide6 or shiboken6 are imported. The files are written
+ into "side-packages/shiboken6/files.dir" and are used from then on.
+
+- Setting the variable to true removes "files.dir".
+
+- Without the "SBK_EMBED" variable, the embedding status remains sticky.
diff --git a/sources/pyside6/doc/developer/feature-motivation.rst b/sources/pyside6/doc/developer/feature-motivation.rst
new file mode 100644
index 000000000..1509ea724
--- /dev/null
+++ b/sources/pyside6/doc/developer/feature-motivation.rst
@@ -0,0 +1,303 @@
+.. _feature-why:
+
+Why do we have a __feature__?
+=============================
+
+
+History
+-------
+
+In PySide user story PYSIDE-1019, we tested certain ways to
+make PySide more pythonic. The first idea was to support some
+way to allow for ``snake_case`` function names.
+
+This feature is possible with relatively low compatibility
+problems, because having the same function with different names
+would be not so nice, but a possible low-effort solution.
+
+When going to ``true_property``, things become different. When we
+support properties as first class objects instead of getter
+and setter functions, we get a conflict, because a function
+cannot act as a property (no braces) and be a function at the
+same time.
+
+This consideration led us to the idea:
+Features must be selectable per-module.
+
+
+Why are features selectable per-module?
+---------------------------------------
+
+Suppose you have some pre-existing code. Maybe you use some downloaded
+code or you generated an interface file. When you now decide to
+use a feature, you don't want all this existing stuff to become
+incorrect. By using the statement
+
+.. code-block:: python
+
+ from __feature__ import ...
+
+you declare that this module uses some feature. Other modules will not
+be influenced by this decision and can stay unchanged.
+
+
+Why dunder, and why not __future__?
+-----------------------------------
+
+Especially in Python 2, but in a few cases also in Python 3, there is
+the future statement
+
+.. code-block:: python
+
+ from __future__ import ...
+
+That is a statement that can only appear at the beginning of a module,
+and it switches how the Python parser works.
+
+Our first idea was to mimick this behavior for PySide, although we are
+a bit cheating: The feature statement is not a syntactical construct,
+and we cannot easily forbid that it is in the middle of a module.
+
+We then realized that the intention of Python's ``__future__`` import and
+PySide's ``__feature__`` import are different: While Python implies by
+``__future__`` some improvement, we do not want to associate with
+``__feature__``. We simply think that some users who come from Python may
+like our features, while others are used to the C++ convention and
+consider something that deviates from the Qt documentation as drawback.
+
+The intention to use the ``from __feature__ import ...`` notation was the hope that
+people see the similarity to Python's ``__future__`` statement and put that import
+at the beginning of a module to make it very visible that this module
+has some special global differences.
+
+
+The snake_case feature
+======================
+
+By using the statement
+
+.. code-block:: python
+
+ from __feature__ import snake_case
+
+all methods of all classes used in this module are changing their name.
+
+The algorithm to change names is this:
+
+* if the name has less than 3 chars, or
+* if two upper chars are adjacent, or
+* if the name starts with ``gl`` (which marks OpenGL),
+* the name is returned unchanged. Otherwise
+* a single upper char ``C`` is replaced by ``_c``
+
+
+The true_property feature
+=========================
+
+By using the statement
+
+.. code-block:: python
+
+ from __feature__ import true_property
+
+all methods of all classes used in this module which are declared in the Qt
+documentation as property become real properties in Python.
+
+This feature is incompatible with the past and cannot coexist; it is
+the reason why the feature idea was developed at all.
+
+
+Normal Properties
+-----------------
+
+Normal properties have the same name as before:
+
+.. code-block:: python
+
+ QtWidgets.QLabel().color()
+
+becomes as property
+
+.. code-block:: python
+
+ QtWidgets.QLabel().color
+
+When there is also a setter method,
+
+.. code-block:: python
+
+ QtWidgets.QLabel().setColor(value)
+
+becomes as property
+
+.. code-block:: python
+
+ QtWidgets.QLabel().color = value
+
+Normal properties swallow the getter and setter functions and replace
+them by the property object.
+
+
+Special Properties
+------------------
+
+Special properties are those with non-standard names.
+
+.. code-block:: python
+
+ QtWidgets.QLabel().size()
+
+becomes as property
+
+.. code-block:: python
+
+ QtWidgets.QLabel().size
+
+But here we have no setSize function, but
+
+.. code-block:: python
+
+ QtWidgets.QLabel().resize(value)
+
+which becomes as property
+
+.. code-block:: python
+
+ QtWidgets.QLabel().size = value
+
+In that case, the setter does not become swallowed, because so many
+people are used to the ``resize`` function.
+
+
+Class properties
+----------------
+
+It should be mentioned that we not only support regular properties
+as they are known from Python. There is also the concept of class
+properties which always call their getter and setter:
+
+A regular property like the aforementioned ``QtWidgets.QLabel`` has
+this visibility:
+
+.. code-block:: python
+
+ >>> QtWidgets.QLabel.size
+ <property object at 0x113a23540>
+ >>> QtWidgets.QLabel().size
+ PySide6.QtCore.QSize(640, 480)
+
+A class property instead is also evaluated without requiring an instance:
+
+.. code-block:: python
+
+ >>> QtWidgets.QApplication.windowIcon
+ <PySide6.QtGui.QIcon(null) at 0x113a211c0>
+
+You can only inspect it if you go directly to the right class dict:
+
+.. code-block:: python
+
+ >>> QtGui.QGuiApplication.__dict__["windowIcon"]
+ <PySide6.PyClassProperty object at 0x114fc5270>
+
+
+About Property Completeness
+---------------------------
+
+There are many properties where the Python programmer agrees that these
+functions should be properties, but a few are not properties, like
+
+.. code-block:: python
+
+ >>> QtWidgets.QMainWindow.centralWidget
+ <method 'centralWidget' of 'PySide6.QtWidgets.QMainWindow' objects>
+
+We are currently discussing if we should correct these rare cases, as they
+are probably only omissions. Having to memorize the missing properties
+seems to be quite cumbersome, and instead of looking all properties up in
+the Qt documentation, it would be easier to add all properties that
+should be properties and are obviously missing.
+
+
+Name Clashes and Solution
+-------------------------
+
+There are some rare cases where a property already exists as a function,
+either with multiple signatures or having parameters.
+This is not very nice in C++ as well, but for Python this is forbidden.
+Example:
+
+.. code-block:: python
+
+ >>> from PySide6 import *
+ >>> from PySide6.support.signature import get_signature
+ >>> import pprint
+ >>> pprint.pprint(get_signature(QtCore.QTimer.singleShot))
+ [<Signature (arg__1: int, arg__2: Callable) -> None>,
+ <Signature (msec: int, receiver: PySide6.QtCore.QObject, member: bytes) -> None>,
+ <Signature (msec: int, timerType: PySide6.QtCore.Qt.TimerType,
+ receiver: PySide6.QtCore.QObject, member: bytes) -> None>]
+
+When creating this property, we respect the existing function and use a slightly
+different name for the property by appending an underscore.
+
+.. code-block:: python
+
+ >>> from __feature__ import true_property
+ >>> QtCore.QTimer.singleShot_
+ <property object at 0x118e5f8b0>
+
+We hope that these clashes can be removed in future Qt versions.
+
+
+The __feature__ import
+======================
+
+The implementation of ``from __feature__ import ...`` is built by a slight
+modification of the ``__import__`` builtin. We made that explicit by assigning
+variables in the builtin module. This modification takes place at |project|
+import time:
+
+* The original function in ``__import__`` is kept in ``__orig_import__``.
+* The new function is in ``__feature_import__`` and assigned to ``__import__``.
+
+This function calls the Python function ``PySide6.support.__feature__.feature_import``
+first, and falls back to ``__orig_import__`` if feature import is not applicable.
+
+
+Overriding __import__
+---------------------
+
+This is not recommended. Import modifications should be done using import hooks,
+see the Python documentation on `Import-Hooks`_.
+
+If you would like to modify ``__import__`` anyway without destroying the features,
+please override just the ``__orig_import__`` function.
+
+
+IDEs and Modifying Python stub files
+------------------------------------
+
+|project| comes with pre-generated ``.pyi`` stub files in the same location as
+the binary module. For instance, in the site-packages directory, you can find
+a ``QtCore.pyi`` file next to ``QtCore.abi3.so`` or ``QtCore.pyd`` on Windows.
+
+When using ``__feature__`` often with common IDEs, you may want to provide
+a feature-aware version of ``.pyi`` files to get a correct display. The simplest
+way to change them all in-place is the command:
+
+.. code-block:: bash
+
+ pyside6-genpyi all --feature snake_case true_property
+
+
+Using __feature__ with UIC files
+--------------------------------
+
+Features can be freely used together with generated UIC files. The UIC files
+are _not_ converted, intentionally. Mixing them with feature selections in other
+Python modules should always work, because switching will happen as needed, selected
+by the currently active module. (Please report to us if this fails for an example)
+
+
+.. _`Import-Hooks`: https://docs.python.org/3/reference/import.html#import-hooks
diff --git a/sources/pyside6/doc/developer/index.rst b/sources/pyside6/doc/developer/index.rst
new file mode 100644
index 000000000..92c84259d
--- /dev/null
+++ b/sources/pyside6/doc/developer/index.rst
@@ -0,0 +1,35 @@
+.. _developer-notes:
+
+Developer Notes
+===============
+
+Developing |project| requires people to understand different processes
+and steps that need to be taken into account when dealing with topics
+related to modules, bindings, examples, and more.
+
+Development Topics
+------------------
+
+.. toctree::
+ :maxdepth: 2
+
+ add_module.rst
+ add_port_example.rst
+ add_tool.rst
+ documentation.rst
+ adapt_qt.rst
+ extras.rst
+
+Implementation details
+----------------------
+
+Complementary, here you can find the reasoning and motivation for the
+many features and implementation details that the project has:
+
+.. toctree::
+ :maxdepth: 2
+
+ enumfeatures_doc.rst
+ limited_api.rst
+ signature_doc.rst
+ feature-motivation.rst
diff --git a/sources/pyside6/doc/developer/limited_api.rst b/sources/pyside6/doc/developer/limited_api.rst
new file mode 100644
index 000000000..44d3faad2
--- /dev/null
+++ b/sources/pyside6/doc/developer/limited_api.rst
@@ -0,0 +1,703 @@
+The Transition To The Limited Python API (PEP384)
+=================================================
+
+
+Foreword
+--------
+
+Python supports a limited API that restricts access to certain structures.
+Besides eliminating whole modules and all functions and macros which names
+start with an
+underscore, the most drastic restriction is the removal of normal type object
+declarations.
+
+For details about the eliminated modules and functions, please see the
+`PEP 384`_ page for reference.
+
+
+.. _`PEP 384`: https://www.python.org/dev/peps/pep-0384/
+
+
+
+Changed Modules
+---------------
+
+All changed module's include files are listed with the changed functions here.
+As a general rule, it was tried to keep the changes to a minimum diff.
+Macros which are not available were changed to functions with the same name
+if possible. Completely removed names ``Py{name}`` were re-implemented as ``Pep{name}``.
+
+
+memoryobject.h
+~~~~~~~~~~~~~~
+
+The buffer protocol was completely removed. We redefined all the structures
+and methods, because PySide uses that. This is an exception to the limited API
+that we have to check ourselves. The code is extracted in bufferprocs_py37.h .
+This is related to the following:
+
+
+abstract.h
+~~~~~~~~~~
+
+This belongs to the buffer protocol like memoryobject.h .
+As replacement for ``Py_buffer`` we defined ``Pep_buffer`` and several other
+internal macros.
+
+The version is checked by hand, and the version number must be updated only
+if the implementation does not change. Otherwise, we need to write version
+dependent code paths.
+
+It is questionable if it is worthwhile to continue using the buffer protocol
+or if we should try to get rid of ``Pep_buffer``, completely.
+
+
+pydebug.h
+~~~~~~~~~
+
+We have no direct access to ``Py_VerboseFlag`` because debugging is not
+supported. We redefined it as macro ``Py_VerboseFlag`` which calls ``Pep_VerboseFlag``.
+
+
+unicodeobject.h
+~~~~~~~~~~~~~~~
+
+The macro ``PyUnicode_GET_SIZE`` was removed and replaced by ``PepUnicode_GetLength``
+which evaluates to ``PyUnicode_GetSize`` for Python 2 and ``PyUnicode_GetLength`` for Python 3.
+Since Python 3.3, ``PyUnicode_GetSize`` would have the bad side effect of requiring the GIL!
+
+Function ``_PyUnicode_AsString`` is unavailable and was replaced by a macro
+that calls ``_PepUnicode_AsString``. The implementation was a bit involved,
+and it would be better to change the code and replace this function.
+
+
+bytesobject.h
+~~~~~~~~~~~~~
+
+The macros ``PyBytes_AS_STRING`` and ``PyBytes_GET_SIZE`` were redefined to call
+the according functions.
+
+
+floatobject.h
+~~~~~~~~~~~~~
+
+``PyFloat_AS_DOUBLE`` now calls ``PyFloat_AsDouble``.
+
+
+tupleobject.h
+~~~~~~~~~~~~~
+
+``PyTuple_GET_ITEM``, ``PyTuple_SET_ITEM`` and ``PyTuple_GET_SIZE`` were redefined as
+function calls.
+
+
+listobject.h
+~~~~~~~~~~~~
+
+``PyList_GET_ITEM``, ``PyList_SET_ITEM`` and ``PyList_GET_SIZE`` were redefined as
+function calls.
+
+
+dictobject.h
+~~~~~~~~~~~~
+
+``PyDict_GetItem`` also exists in a ``PyDict_GetItemWithError`` version that does
+not suppress errors. This suppression has the side effect of touching global
+structures. This function exists in Python 2 only since Python 2.7.12 and has
+a different name. We simply implemented the function.
+Needed to avoid the GIL when accessing dictionaries.
+
+
+methodobject.h
+~~~~~~~~~~~~~~
+
+``PyCFunction_GET_FUNCTION``, ``PyCFunction_GET_SELF`` and ``PyCFunction_GET_FLAGS``
+were redefined as function calls.
+
+Direct access to the methoddef structure is not available, and we defined
+``PepCFunction_GET_NAMESTR`` as accessor for name strings.
+
+
+pythonrun.h
+~~~~~~~~~~~
+
+The simple function ``PyRun_String`` is not available. It was re-implemented
+in a simplified version for the signature module.
+
+
+funcobject.h
+~~~~~~~~~~~~
+
+The definitions of funcobject.h are completely missing, although there
+are extra ``#ifdef`` conditional defines inside, too. This suggests that the exclusion
+was unintended.
+
+We therefore redefined ``PyFunctionObject`` as an opaque type.
+
+The missing macro ``PyFunction_Check`` was defined, and the macro
+``PyFunction_GET_CODE`` calls the according function.
+
+There is no equivalent for function name access, therefore we introduced
+``PepFunction_GetName`` either as a function or as a macro.
+
+*TODO: We should fix funcobject.h*
+
+
+classobject.h
+~~~~~~~~~~~~~
+
+Classobject is also completely not imported, instead of defining an opaque type.
+
+We defined the missing functions ``PyMethod_New``, ``PyMethod_Function`` and
+``PyMethod_Self`` and also redefined ``PyMethod_GET_SELF`` and
+``PyMethod_GET_FUNCTION`` as calls to these functions.
+
+*TODO: We should fix classobject.h*
+
+
+code.h
+~~~~~~
+
+The whole code.c code is gone, although it may make sense to
+define some minimum accessibility. This will be clarified on
+`Python-Dev`_. We needed access to code objects and defined the missing
+PepCode_GET_FLAGS and PepCode_GET_ARGCOUNT either as function or macro.
+We further added the missing flags, although few are used:
+
+``CO_OPTIMIZED`` ``CO_NEWLOCALS`` ``CO_VARARGS`` ``CO_VARKEYWORDS`` ``CO_NESTED``
+``CO_GENERATOR``
+
+*TODO: We should maybe fix code.h*
+
+.. _`Python-Dev`: https://mail.python.org/mailman/listinfo/python-dev
+
+datetime.h
+~~~~~~~~~~
+
+The DateTime module is explicitly not included in the limited API.
+We defined all the needed functions but called them via Python instead
+of direct call macros. This has a slight performance impact.
+
+The performance could be easily improved by providing an interface
+that fetches all attributes at once, instead of going through the object
+protocol every time.
+
+The re-defined macros and methods are::
+
+ PyDateTime_GET_YEAR
+ PyDateTime_GET_MONTH
+ PyDateTime_GET_DAY
+ PyDateTime_DATE_GET_HOUR
+ PyDateTime_DATE_GET_MINUTE
+ PyDateTime_DATE_GET_SECOND
+ PyDateTime_DATE_GET_MICROSECOND
+ PyDateTime_DATE_GET_FOLD
+ PyDateTime_TIME_GET_HOUR
+ PyDateTime_TIME_GET_MINUTE
+ PyDateTime_TIME_GET_SECOND
+ PyDateTime_TIME_GET_MICROSECOND
+ PyDateTime_TIME_GET_FOLD
+
+ PyDate_Check
+ PyDateTime_Check
+ PyTime_Check
+
+ PyDate_FromDate
+ PyDateTime_FromDateAndTime
+ PyTime_FromTime
+
+*XXX: We should maybe provide an optimized interface to datetime*
+
+
+object.h
+~~~~~~~~
+
+The file object.h contains the ``PyTypeObject`` structure, which is supposed
+to be completely opaque. All access to types should be done through
+``PyType_GetSlot`` calls. Due to bugs and deficiencies in the limited API
+implementation, it was not possible to do that. Instead, we have defined
+a simplified structure for ``PyTypeObject`` that has only the fields that
+are used in PySide.
+
+We will explain later why and how this was done. Here is the reduced
+structure::
+
+ typedef struct _typeobject {
+ PyVarObject ob_base;
+ const char *tp_name;
+ Py_ssize_t tp_basicsize;
+ void *X03; // Py_ssize_t tp_itemsize;
+ void *X04; // destructor tp_dealloc;
+ void *X05; // printfunc tp_print;
+ void *X06; // getattrfunc tp_getattr;
+ void *X07; // setattrfunc tp_setattr;
+ void *X08; // PyAsyncMethods *tp_as_async;
+ void *X09; // reprfunc tp_repr;
+ void *X10; // PyNumberMethods *tp_as_number;
+ void *X11; // PySequenceMethods *tp_as_sequence;
+ void *X12; // PyMappingMethods *tp_as_mapping;
+ void *X13; // hashfunc tp_hash;
+ ternaryfunc tp_call;
+ reprfunc tp_str;
+ void *X16; // getattrofunc tp_getattro;
+ void *X17; // setattrofunc tp_setattro;
+ void *X18; // PyBufferProcs *tp_as_buffer;
+ void *X19; // unsigned long tp_flags;
+ void *X20; // const char *tp_doc;
+ traverseproc tp_traverse;
+ inquiry tp_clear;
+ void *X23; // richcmpfunc tp_richcompare;
+ Py_ssize_t tp_weaklistoffset;
+ void *X25; // getiterfunc tp_iter;
+ void *X26; // iternextfunc tp_iternext;
+ struct PyMethodDef *tp_methods;
+ void *X28; // struct PyMemberDef *tp_members;
+ void *X29; // struct PyGetSetDef *tp_getset;
+ struct _typeobject *tp_base;
+ PyObject *tp_dict;
+ descrgetfunc tp_descr_get;
+ void *X33; // descrsetfunc tp_descr_set;
+ Py_ssize_t tp_dictoffset;
+ initproc tp_init;
+ allocfunc tp_alloc;
+ newfunc tp_new;
+ freefunc tp_free;
+ inquiry tp_is_gc; /* For PyObject_IS_GC */
+ PyObject *tp_bases;
+ PyObject *tp_mro; /* method resolution order */
+ } PyTypeObject;
+
+Function ``PyIndex_Check`` had to be defined in an unwanted way due to
+a Python issue. See file pep384_issue33738.cpp .
+
+There are extension structures which have been isolated as special macros that
+dynamically compute the right offsets of the extended type structures:
+
+* ``PepType_SOTP`` for ``SbkObjectTypePrivate``
+* ``PepType_SETP`` for ``SbkEnumTypePrivate``
+* ``PepType_PFTP`` for ``PySideQFlagsTypePrivate``
+
+How these extension structures are used can best be seen by searching
+``PepType_{four}`` in the source.
+
+Due to the new heaptype interface, the names of certain types contain
+now the module name in the ``tp_name`` field. To have a compatible way
+to access simple type names as C string, ``PepType_GetNameStr`` has been
+written that skips over dotted name parts.
+
+Finally, the function ``_PyObject_Dump`` was excluded from the limited API.
+This is a useful debugging aid that we always want to have available,
+so it is added back, again. Anyway, we did not reimplement it, and so
+Windows is not supported.
+Therefore, a forgotten debugging call of this functions will break COIN. :-)
+
+
+Using The New Type API
+----------------------
+
+After converting everything but the object.h file, we were a little
+bit shocked: it suddenly was clear that we would have no more
+access to type objects, and even more scary that all types which we
+use have to be heap types, only!
+
+For PySide with its intense use of heap type extensions in various
+flavors, the situation looked quite unsolvable. In the end, it was
+nicely solved, but it took almost 3.5 months to get that right.
+
+Before we see how this is done, we will explain the differences
+between the APIs and their consequences.
+
+
+The Interface
+~~~~~~~~~~~~~
+
+The old type API of Python knows static types and heap types.
+Static types are written down as a declaration of a ``PyTypeObject``
+structure with all its fields filled in. Here is for example
+the definition of the Python type ``object`` (Python 3.6)::
+
+ PyTypeObject PyBaseObject_Type = {
+ PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ "object", /* tp_name */
+ sizeof(PyObject), /* tp_basicsize */
+ 0, /* tp_itemsize */
+ object_dealloc, /* tp_dealloc */
+ 0, /* tp_print */
+ 0, /* tp_getattr */
+ 0, /* tp_setattr */
+ 0, /* tp_reserved */
+ object_repr, /* tp_repr */
+ 0, /* tp_as_number */
+ 0, /* tp_as_sequence */
+ 0, /* tp_as_mapping */
+ (hashfunc)_Py_HashPointer, /* tp_hash */
+ 0, /* tp_call */
+ object_str, /* tp_str */
+ PyObject_GenericGetAttr, /* tp_getattro */
+ PyObject_GenericSetAttr, /* tp_setattro */
+ 0, /* tp_as_buffer */
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */
+ PyDoc_STR("object()\n--\n\nThe most base type"), /* tp_doc */
+ 0, /* tp_traverse */
+ 0, /* tp_clear */
+ object_richcompare, /* tp_richcompare */
+ 0, /* tp_weaklistoffset */
+ 0, /* tp_iter */
+ 0, /* tp_iternext */
+ object_methods, /* tp_methods */
+ 0, /* tp_members */
+ object_getsets, /* tp_getset */
+ 0, /* tp_base */
+ 0, /* tp_dict */
+ 0, /* tp_descr_get */
+ 0, /* tp_descr_set */
+ 0, /* tp_dictoffset */
+ object_init, /* tp_init */
+ PyType_GenericAlloc, /* tp_alloc */
+ object_new, /* tp_new */
+ PyObject_Del, /* tp_free */
+ };
+
+We can write the same structure in form of a ``PyType_Spec`` structure,
+and there is even an incomplete tool *abitype.py* that does this conversion
+for us. With a few corrections, the result looks like this::
+
+ static PyType_Slot PyBaseObject_Type_slots[] = {
+ {Py_tp_dealloc, (void *)object_dealloc},
+ {Py_tp_repr, (void *)object_repr},
+ {Py_tp_hash, (void *)_Py_HashPointer},
+ {Py_tp_str, (void *)object_str},
+ {Py_tp_getattro, (void *)PyObject_GenericGetAttr},
+ {Py_tp_setattro, (void *)PyObject_GenericSetAttr},
+ {Py_tp_richcompare, (void *)object_richcompare},
+ {Py_tp_methods, (void *)object_methods},
+ {Py_tp_getset, (void *)object_getsets},
+ {Py_tp_init, (void *)object_init},
+ {Py_tp_alloc, (void *)PyType_GenericAlloc},
+ {Py_tp_new, (void *)object_new},
+ {Py_tp_free, (void *)PyObject_Del},
+ {0, 0},
+ };
+ static PyType_Spec PyBaseObject_Type_spec = {
+ "object",
+ sizeof(PyObject),
+ 0,
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
+ PyBaseObject_Type_slots,
+ };
+
+This new structure is almost compatible with the old one, but there
+are some subtle differences.
+
+* The new types are generated in one step
+
+This seems to be no problem, but it was very much, due to the way the
+types were built in PySide. Types were assembled piece by piece, and
+finally the ``PyType_Ready`` function was called.
+
+With the new API, ``PyType_Ready`` is called already at the end of
+``PyType_FromSpec``, and that meant that the logic of type creation became
+completely turned upside down.
+
+* The new types are always heaptypes
+
+With the new type creation functions, it is no longer possible to
+create "normal" types. Instead, they all have to be allocated on the
+heap and garbage collected. The user should normally not recognize this.
+But type creation is more constrained, and you cannot create a subtype
+if the ``Py_TPFLAGS_BASETYPE`` is not set. This constraint was already
+violated by PySide and needed a quite profound fix.
+
+* The new types always need a module
+
+While this is not a problem per se, the above new type spec will not create
+a usable new type, but complain with::
+
+ DeprecationWarning: builtin type object has no __module__ attribute
+
+But there are more problems:
+
+* The new types have unexpected defaults
+
+When fields are empty, you would usually assume that they stay empty.
+There are just a few corrections that ``PyType_Ready`` will do to a type.
+
+But there is the following clause in ``PyType_FromSpec`` that can give you
+many headaches::
+
+ if (type->tp_dealloc == NULL) {
+ /* It's a heap type, so needs the heap types' dealloc.
+ subtype_dealloc will call the base type's tp_dealloc, if
+ necessary. */
+ type->tp_dealloc = subtype_dealloc;
+ }
+
+In fact, before the move to the new API, the ``PyType_Ready`` function
+filled empty ``tp_dealloc`` fields with ``object_dealloc``. And the code
+that has been written with that in mind now becomes pretty wrong if suddenly
+``subtype_dealloc`` is used.
+
+The way out was to explicitly provide an ``object_dealloc`` function.
+This would then again impose a problem, because ``object_dealloc`` is not
+public. Writing our own version is easy, but it again needs access to
+type objects. But fortunately, we have broken this rule, already...
+
+
+* The new types are only partially allocated
+
+The structures used in ``PyType_FromSpec`` are almost all allocated,
+only the name field is static. This is no problem for types which are
+statically created once. But if you want to parameterize things and
+create multiple types with a single slots and spec definition, the name
+field that is used for tp_name must be allocated dynamically.
+This is misleading, since all the slots already are copies.
+
+* The new types don't support special offsets
+
+The special fields ``tp_weaklistoffset`` and ``tp_dictoffset`` are not supported
+by ``PyType_FromSpec``. Unfortunately the documentation does not tell you
+if you are allowed to set these fields manually after creating the type or not.
+We finally did it and it worked, but we are not sure about correctness.
+
+See basewrapper.cpp function ``SbkObject_TypeF()`` as the only reference to
+these fields in PySide. This single reference is absolutely necessary and
+very important, since all derived types invisibly inherit these two fields.
+
+
+Future Versions Of The Limited API
+----------------------------------
+
+As we have seen, the current version of the limited API does a bit of
+cheating, because it uses parts of the data structure that should be
+an opaque type. At the moment, this works fine because the data is
+still way more compatible as it could be.
+
+But what if this is changed in the future?
+
+We know that the data structures are stable until Python 3.8 comes out.
+Until then, the small bugs and omissions will hopefully all be solved.
+Then it will be possible to replace the current small tricks by calls
+to ``PyType_GetSlot`` in the way things should be.
+
+At the very moment when the current assumptions about the data structure
+are no longer true, we will rewrite the direct attribute access with
+calls to ``PyType_GetSlot``. After that, no more changes will be necessary.
+
+
+Appendix A: The Transition To Simpler Types
+-------------------------------------------
+
+After all code had been converted to the limited API, there was a
+remaining problem with the ``PyHeapTypeObject``.
+
+Why a problem? Well, all the type structures in shiboken use
+special extra fields at the end of the heap type object. This
+currently enforces extra knowledge at compile time about how large the
+heap type object is. In a clean implementation, we would only use
+the ``PyTypeObject`` itself and access the fields *behind* the type
+by a pointer that is computed at runtime.
+
+
+Restricted PyTypeObject
+~~~~~~~~~~~~~~~~~~~~~~~
+
+Before we are going into details, let us motivate the existence of
+the restricted ``PyTypeObject``:
+
+Originally, we wanted to use ``PyTypeObject`` as an opaque type and
+restrict ourselves to only use the access function ``PyType_GetSlot``.
+This function allows access to all fields which are supported by
+the limited API.
+
+But this is a restriction, because we get no access to ``tp_dict``,
+which we need to support the signature extension. But we can work
+around that.
+
+The real restriction is that ``PyType_GetSlot`` only works for heap
+types. This makes the function quite useless, because we have
+no access to ``PyType_Type``, which is the most important type ``type``
+in Python. We need that for instance to compute the size of
+``PyHeapTypeObject`` dynamically.
+
+With much effort, it is possible to clone ``PyType_Type`` as a heap
+type. But due to a bug in the Pep 384 support, we need
+access to the ``nb_index`` field of a normal type. Cloning does not
+help because ``PyNumberMethods`` fields are *not* inherited.
+
+After we realized this dead end, we changed concept and did not
+use ``PyType_GetSlot`` at all (except in function ``copyNumberMethods``),
+but created a restricted ``PyTypeObject`` with only those fields
+defined that are needed in PySide.
+
+Is this breakage of the limited API? I don't think so. A special
+function runs on program startup that checks the correct position
+of the fields of ``PyTypeObject``, although a change in those fields is
+more than unlikely.
+The really crucial thing is to no longer use ``PyHeapTypeObject``
+explicitly because that *does* change its layout over time.
+
+
+Diversification
+~~~~~~~~~~~~~~~
+
+There were multiple ``Sbk{something}`` structures which all used a "d" field
+for their private data. This made it not easy to find the right
+fields when switching between objects and types::
+
+ struct LIBSHIBOKEN_API SbkObject
+ {
+ PyObject_HEAD
+ PyObject *ob_dict;
+ PyObject *weakreflist;
+ SbkObjectPrivate *d;
+ };
+
+ struct LIBSHIBOKEN_API SbkObjectType
+ {
+ PyHeapTypeObject super;
+ SbkObjectTypePrivate *d;
+ };
+
+The first step was to rename the SbkObjectTypePrivate part from "d" to
+"sotp". It was chosen to be short but easy to remember as abbreviation
+of "SbkObjectTypePrivate", leading to::
+
+ struct LIBSHIBOKEN_API SbkObjectType
+ {
+ PyHeapTypeObject super;
+ SbkObjectTypePrivate *sotp;
+ };
+
+After renaming, it was easier to do the following transformations.
+
+
+Abstraction
+~~~~~~~~~~~
+
+After renaming the type extension pointers to ``sotp``, I replaced
+them by function-like macros which did the special access *behind*
+the types, instead of those explicit fields. For instance, the
+expression::
+
+ type->sotp->converter
+
+became::
+
+ PepType_SOTP(type)->converter
+
+The macro expansion can be seen here::
+
+ #define PepHeapType_SIZE \
+ (reinterpret_cast<PyTypeObject *>(&PyType_Type)->tp_basicsize)
+
+ #define _genericTypeExtender(etype) \
+ (reinterpret_cast<char *>(etype) + PepHeapType_SIZE)
+
+ #define PepType_SOTP(etype) \
+ (*reinterpret_cast<SbkObjectTypePrivate **>(_genericTypeExtender(etype)))
+
+This looks complicated, but in the end there is only a single new
+indirection via ``PyType_Type``, which happens at runtime. This is the
+key to fulfil what Pep 384 wants to achieve: *No more version-dependent fields*.
+
+
+Simplification
+~~~~~~~~~~~~~~
+
+After all type extension fields were replaced by macro calls, we
+could remove the following version dependent re-definition of ``PyHeapTypeObject``
+::
+
+ typedef struct _pyheaptypeobject {
+ union {
+ PyTypeObject ht_type;
+ void *opaque[PY_HEAPTYPE_SIZE];
+ };
+ } PyHeapTypeObject;
+
+, and the version dependent structure::
+
+ struct LIBSHIBOKEN_API SbkObjectType
+ {
+ PyHeapTypeObject super;
+ SbkObjectTypePrivate *sotp;
+ };
+
+could be removed. SbkObjectType remains as a (deprecated)
+type alias to PyTypeObject.
+
+
+Appendix B: Verification Of PyTypeObject
+----------------------------------------
+
+We have introduced a limited PyTypeObject in the same place
+as the original PyTypeObject, and now we need to prove that
+we are allowed to do so.
+
+When using the limited API as intended, then types are completely
+opaque, and access is only through ``PyType_FromSpec`` and (from
+version 3.5 upwards) through ``PyType_GetSlot``.
+
+Python then uses all the slot definitions in the type description
+and produces a regular heap type object.
+
+
+Unused Information
+~~~~~~~~~~~~~~~~~~
+
+We know many things about types that are not explicitly said,
+but they are inherently clear:
+
+(a) The basic structure of a type is always the same, regardless
+ if it is a static type or a heap type.
+
+(b) types are evolving very slowly, and a field is never replaced
+ by another field with different semantics.
+
+Inherent rule (a) gives us the following information: If we calculate
+the offsets of the basic fields, then this info is also usable for non-heap
+types.
+
+The validation checks if rule (b) is still valid.
+
+
+How it Works
+~~~~~~~~~~~~
+
+The basic idea of the validation is to produce a new type using
+``PyType_FromSpec`` and to see where in the type structure these fields
+show up. So we build a ``PyType_Slot`` structure with all the fields we
+are using and make sure that these values are all unique in the
+type.
+
+Most fields are not interrogated by ``PyType_FromSpec``, and so we
+simply used some numeric value. Some fields are interpreted, like
+``tp_members``. This field must really be a ``PyMemberDef``. And there are
+``tp_base`` and ``tp_bases`` which have to be type objects and lists
+thereof. It was easiest to not produce these fields from scratch
+but use them from the ``type`` object ``PyType_Type``.
+
+Then one would think to write a function that searches the known
+values in the opaque type structure.
+
+But we can do better and use optimistically the observation (b):
+We simply use the restricted ``PyTypeObject`` structure and assume that
+every field lands exactly where we are awaiting it.
+
+And that is the whole proof: If we find all the disjoint values at
+the places where we expect them, then verification is done.
+
+
+About ``tp_dict``
+~~~~~~~~~~~~~~~~~
+
+One word about the ``tp_dict`` field: This field is a bit special in
+the proof, since it does not appear in the spec and cannot easily
+be checked by ``type.__dict__`` because that creates a *dictproxy*
+object. So how do we prove that is really the right dict?
+
+We have to create that ``PyMethodDef`` structure anyway, and instead of
+leaving it empty, we insert a dummy function. Then we ask the
+``tp_dict`` field if it has the awaited object in it, and that's it!
+
+#EOT
diff --git a/sources/pyside6/doc/developer/signature_doc.rst b/sources/pyside6/doc/developer/signature_doc.rst
new file mode 100644
index 000000000..a6c703dab
--- /dev/null
+++ b/sources/pyside6/doc/developer/signature_doc.rst
@@ -0,0 +1,361 @@
+.. _signature-extension:
+
+The signature C extension
+=========================
+
+This module is a C extension for CPython 3.5 and up, and CPython 2.7.
+Its purpose is to provide support for the ``__signature__`` attribute
+of builtin PyCFunction objects.
+
+
+Short Introduction to the Topic
+-------------------------------
+
+Beginning with CPython 3.5, Python functions began to grow a ``__signature__``
+attribute for normal Python functions. This is totally optional and just
+a nice-to-have feature in Python.
+
+PySide, on the other hand, could use ``__signature__`` very much, because the
+typing info for the 15000+ PySide functions is really missing, and it
+would be nice to have this info directly available.
+
+
+The Idea to Support Signatures
+------------------------------
+
+We want to have an additional ``__signature__`` attribute in all PySide
+methods, without changing lots of generated code.
+Therefore, we did not change any of the existing data structures,
+but supported the new attribute by a global dictionary.
+
+When the ``__signature__`` property is requested, a method is called that
+does a lookup in the global dict. This is a flexible approach with little impact
+to the rest of the project. It has very limited overhead compared to direct
+attribute access, but for the need of a signature access from time to time,
+this is an adequate compromise.
+
+
+How this Code Works
+~~~~~~~~~~~~~~~~~~~
+
+Signatures are supported for regular Python functions, only. Creating signatures
+for ``PyCFunction`` objects would require quite some extra effort in Python.
+
+Fortunately, we found this special *stealth* technique, that saves us most of the
+needed effort:
+
+The basic idea is to create a dummy Python function with **varnames**, **defaults**
+and **annotations** properties, and then to use the inspect
+module to create a signature object. This object is returned as the computed
+result of the ``__signature__`` attribute of the real ``PyCFunction`` object.
+
+There is one thing that really changes Python a bit:
+
+* We added the ``__signature__`` attribute to every function.
+
+That is a little change to Python that does not harm, but it saves us
+tons of code, that was needed in the early versions of the module.
+
+The internal work is done in two steps:
+
+* All functions of a class get the *signature text* when the module is imported.
+ This is only a very small overhead added to the startup time. It is a single
+ string for each whole class.
+* The actual signature object is created later, when the attribute is really
+ requested. Signatures are cached and only created on first access.
+
+Example:
+
+The ``PyCFunction`` ``QtWidgets.QApplication.palette`` is interrogated for its
+signature. That means ``pyside_sm_get___signature__()`` is called.
+It calls ``GetSignature_Function`` which returns the signature if it is found.
+
+
+Why this Code is Fast
+~~~~~~~~~~~~~~~~~~~~~
+
+It costs a little time (maybe 6 seconds) to run through every single signature
+object, since these are more than 25000 Python objects. But all the signature
+objects will be rarely accessed but in special applications.
+The normal case are only a few accesses, and these are working pretty fast.
+
+The key to make this signature module fast is to avoid computation as much as
+possible. When no signature objects are used, then almost no time is lost in
+initialization. Only the above mentioned strings and some support modules are
+additionally loaded on ``import PySide6``.
+When it comes to signature usage, then late initialization is used and cached.
+This technique is also known as *full laziness* in haskell.
+
+There are actually two locations where late initialization occurs:
+
+* ``dict`` can be no dict but a tuple. That is the initial argument tuple that
+ was saved by ``PySide_BuildSignatureArgs`` at module load time.
+ If so, then ``pyside_type_init`` in parser.py will be called,
+ which parses the string and creates the dict.
+* ``props`` can be empty. Then ``create_signature`` in loader.py
+ is called, which uses a dummy function to produce a signature instance
+ with the inspect module.
+
+The initialization that is always done is just two dictionary writes
+per class, and we have about 1000 classes.
+To measure the additional overhead, we have simulated what happens
+when ``from PySide6 import *`` is performed.
+It turned out that the overhead is below 0.5 ms.
+
+
+The Signature Package Structure
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The C++ code involved with the signature module is completely in the file
+shiboken6/libshiboken/signature.cpp . All other functionality is implemented in
+the ``signature`` Python package. It has the following structure::
+
+ sources/shiboken6/shibokenmodule/files.dir/shibokensupport
+ ├── __init__.py
+ ├── feature.py
+ ├── fix-complaints.py
+ ├── shibokensupport.pyproject
+ └── signature
+ ├── PSF-3.7.0.txt
+ ├── __init__.py
+ ├── errorhandler.py
+ ├── importhandler.py
+ ├── layout.py
+ ├── lib
+ │   ├── __init__.py
+ │   ├── enum_sig.py
+ │   ├── pyi_generator.py
+ │   └── tool.py
+ ├── loader.py
+ ├── mapping.py
+ ├── parser.py
+ └── qt_attribution.json
+
+Really important are the **parser**, **mapping**, **errorhandler**, **enum_sig**,
+**layout** and **loader** modules. The rest is needed to create Python 2 compatibility
+or be compatible with embedding and installers.
+
+
+**loader.py**
+ This module assembles and imports the ``inspect`` module, and then exports the
+ ``create_signature`` function. This function takes a fake function and some
+ attributes and builds a ``__signature__`` object with the inspect module.
+
+
+**parser.py**
+ This module takes a class signatures string from C++ and parses it into the
+ needed properties for the ``create_signature`` function. Its entry point is the
+ ``pyside_type_init`` function, which is called from the C module via ``loader.py``.
+
+
+**mapping.py**
+ The purpose of the mapping module is maintaining a list of replacement strings
+ that map from the *signature text* in C to the property strings that Python
+ needs. A lot of mappings are resolved by rather complex expressions in ``parser.py``,
+ but a few hundred cases are better to spell explicitly, here.
+
+**errorhandler.py**
+ Since ``Qt For Python 5.12``, we no longer use the builtin type error messages from C++.
+ Instead, we get much better results with the signature module. At the same time,
+ this enforced supporting shiboken as well, and the signature module was no longer
+ optional.
+
+**enum_sig.py**
+ The diverse applications of the signature module all needed to iterate over modules,
+ classes and functions. In order to centralize this enumeration, the process has
+ been factored out as a context manager. The user has only to supply functions
+ that do the actual formatting.
+
+ See for example the .pyi generator ``pyside6/PySide6/support/generate_pyi.py``.
+
+**layout.py**
+ As more applications used the signature module, different formatting of signatures
+ was needed. To support that, we created the function ``create_signature``, which
+ has a parameter to choose from some predefined layouts.
+
+
+**typing27.py**
+ Python 2 has no typing module at all. This is a backport of the minimum that is needed.
+
+
+**backport_inspect.py**
+ Python 2 has an inspect module, but lacks the signature functions, completely.
+ This module adds the missing functionality, which is merged at runtime into
+ the inspect module.
+
+
+Multiple Arities
+~~~~~~~~~~~~~~~~
+
+One aspect that was ignored so far was *multiple arities*: How to handle it when
+a function has more than one signature?
+
+I did not find any note on how multiple signatures should be treated in Python,
+but this simple rules seem to work well:
+
+* If there is a list, then it is a multi-signature.
+* Otherwise, it is a simple signature.
+
+
+Impacts of The Signature Module
+-------------------------------
+
+The signature module has a number of impacts to other PySide modules, which were
+created as a consequence of its existence, and there will be a few more in the
+future:
+
+
+existence_test.py
+~~~~~~~~~~~~~~~~~
+
+The file ``pyside6/tests/registry/existence_test.py`` was written using the
+signatures from the signatures module. The idea is that there are some 15000
+functions with a certain signature.
+
+These functions should not get lost by some bad check-in. Therefore, a list
+of all existing signatures is kept as a module that assembles a
+dictionary. The function existence is checked, and also the exact arity.
+
+This module exists for every PySide release and every platform. The initial
+module is generated once and saved as ``exists_{plat}_{version}.py``.
+
+An error is normally only reported as a warning, but:
+
+
+Interaction With The Coin Module
+++++++++++++++++++++++++++++++++
+
+When this test program is run in COIN, then the warnings are turned into
+errors. The reason is that only in COIN, we have a stable configuration
+of PySide modules that can reliably be compared.
+
+These modules have the name ``exists_{platf}_{version}_ci.py``, and as a big
+exception for generated code, these files are *intentionally* checked in.
+
+
+What Happens When a List is Missing?
+++++++++++++++++++++++++++++++++++++
+
+When a new version of PySide gets created, then the existence test files
+initially do not exist.
+
+When a COIN test is run, then it will complain about the error and create
+the missing module on standard output.
+But since COIN tests are run multiple times, the output that was generated
+by the first test will still exist at the subsequent runs.
+(If COIN was properly implemented, we could not take that advantage and
+would need to implement that as an extra exception.)
+
+As a result, a missing module will be reported as a test which partially
+succeeded (called "FLAKY"). To avoid further flaky tests and to activate as a real test,
+we can now capture the error output of COIN and check the generated module
+in.
+
+
+Explicitly Enforcing Recreation
++++++++++++++++++++++++++++++++
+
+The former way to regenerate the registry files was to remove the files
+and check that in. This has the desired effect, but creates huge deltas.
+As a more efficient way, we have prepared a comment in the first line
+that contains the word "recreate".
+By uncommenting this line, a NameError is triggered, which has the same
+effect.
+
+
+init_platform.py
+++++++++++++++++
+
+For generating the ``exists_{platf}_{version}`` modules, the module
+``pyside6/tests/registry/init_platform.py`` was written. It can be used
+standalone from the commandline, to check the compatibility of some
+changes, directly.
+
+
+scrape_testresults.py
+~~~~~~~~~~~~~~~~~~~~~
+
+To simplify and automate the process of extracting the ``exists_{platf}_{version}_ci.py``
+files, the script ``pyside6/tests/registry/scrape_testresults.py`` has been written.
+
+This script scans the whole testresults website for PySide, that is::
+
+ https://testresults.qt.io/coin/api/results/pyside/pyside-setup/
+
+On the first scan, the script runs less than 30 minutes. After that, a cache
+is generated and the scan works *much* faster. The test results are placed
+into the folder ``pyside6/tests/registry/testresults/embedded/`` with a
+unique name that allows for easy sorting. Example::
+
+ testresults/embedded/2018_09_10_10_40_34-test_1536891759-exists_linux_5_11_2_ci.py
+
+These files are created only once. If they already exist, they are not touched, again.
+The file `pyside6/tests/registry/known_urls.json`` holds all scanned URLs after
+a successful scan. The ``testresults/embedded`` folder can be kept for reference
+or can be removed. Important is only the json file.
+
+The result of a scan is then directly placed into the ``pyside6/tests/registry/``
+folder. It should be reviewed and then eventually checked in.
+
+
+generate_pyi.py
+~~~~~~~~~~~~~~~
+
+``pyside6/PySide6/support/generate_pyi.py`` is still under development.
+This module generates so-called hinting stubs for integration of PySide
+with diverse *Python IDEs*.
+
+Although this module creates the stubs as an add-on, the
+impact on the quality of the signature module is considerable:
+
+The module must create syntactically correct ``.pyi`` files which contain
+not only signatures but also constants and enums of all PySide modules.
+This serves as an extra challenge that has a very positive effect on
+the completeness and correctness of signatures.
+
+The module has a ``--feature`` option to generate modified .pyi files.
+A shortcut for this command is ``pyside6-genpyi``.
+
+A useful command to change all .pyi files to use all features is
+
+.. code-block:: bash
+
+ pyside6-genpyi all --feature snake_case true_property
+
+
+pyi_generator.py
+~~~~~~~~~~~~~~~~
+
+``shiboken6/shibokenmodule/files.dir/shibokensupport/signature/lib/pyi_generator.py``
+has been extracted from ``generate_pyi.py``. It allows the generation of ``.pyi``
+files from arbitrary extension modules created with shiboken.
+
+A shortcut for this command is ``shiboken6-genpyi``.
+
+
+Current Extensions
+~~~~~~~~~~~~~~~~~~
+
+Before the signature module was written, there already existed the concept of
+signatures, but in a more C++ - centric way. From that time, there existed
+the error messages, which are created when a function gets wrong argument types.
+
+These error messages were replaced by text generated on demand by
+the signature module, in order to be more consistent and correct.
+This was implemented in ``Qt For Python 5.12.0``.
+
+Additionally, the ``__doc__`` attribute of PySide methods was not set.
+It was easy to get a nice ``help()`` feature by creating signatures
+as default content for docstrings.
+This was implemented in ``Qt For Python 5.12.1``.
+
+
+Literature
+----------
+
+* `PEP 362 – Function Signature Object <https://www.python.org/dev/peps/pep-0362/>`__
+* `PEP 484 – Type Hints <https://www.python.org/dev/peps/pep-0484/>`__
+* `PEP 3107 – Function Annotations <https://www.python.org/dev/peps/pep-3107/>`__
+
+
+*Personal Remark: This module is dedicated to our lovebird "Püppi", who died on 2017-09-15.*
diff --git a/sources/pyside6/doc/extras/QtBluetooth.rst b/sources/pyside6/doc/extras/QtBluetooth.rst
new file mode 100644
index 000000000..965896752
--- /dev/null
+++ b/sources/pyside6/doc/extras/QtBluetooth.rst
@@ -0,0 +1,102 @@
+Qt Bluetooth enables connectivity between Bluetooth enabled devices.
+
+The Bluetooth API provides connectivity between Bluetooth enabled devices.
+
+Currently, the API is supported on the following platforms:
+
+ +-------------------------------------+-------+---+-----------------+-----------------------------------------+--------------+
+ |API Feature |Android|iOS|Linux (BlueZ 5.x)|:ref:`macOS<Qt-WebEngine-Platform-Notes>`|Qt for Windows|
+ +-------------------------------------+-------+---+-----------------+-----------------------------------------+--------------+
+ |Classic Bluetooth |x | |x |x |x |
+ +-------------------------------------+-------+---+-----------------+-----------------------------------------+--------------+
+ |Bluetooth LE Central |x |x |x |x |x |
+ +-------------------------------------+-------+---+-----------------+-----------------------------------------+--------------+
+ |Bluetooth LE Peripheral |x |x |x |x | |
+ +-------------------------------------+-------+---+-----------------+-----------------------------------------+--------------+
+ |Bluetooth LE Advertisement & Scanning| | | | | |
+ +-------------------------------------+-------+---+-----------------+-----------------------------------------+--------------+
+
+Qt 5.14 adds a native Win32 port supporting Classic Bluetooth on Windows 7 or
+newer, and Bluetooth LE on Windows 8 or newer. It must be enabled at build time
+by configuration option -native-win32-bluetooth. The UWP backend is used by
+default if this option is not set and the Win32 target platform supports the
+required UWP APIs (minimal requirement is Windows 10 version 1507, with
+slightly improved service discovery since Windows 10 version 1607).
+
+Overview
+^^^^^^^^
+
+Bluetooth is a short-range (less than 100 meters) wireless technology. It has a
+reasonably high data transfer rate of 2.1 Mbit/s, which makes it ideal for
+transferring data between devices. Bluetooth connectivity is based on basic
+device management, such as scanning for devices, gathering information about
+them, and exchanging data between them.
+
+Qt Bluetooth supports Bluetooth Low Energy development for client/central role
+use cases. Further details can be found in the :ref:`Bluetooth Low Energy
+Overview<Bluetooth-Low-Energy-Overview>` section.
+
+Using the Module
+^^^^^^^^^^^^^^^^
+
+To include the definitions of modules classes, use the following
+directive:
+
+::
+
+ import PySide6.QtBluetooth
+
+macOS Specific
+^^^^^^^^^^^^^^
+
+The Bluetooth API on macOS requires a certain type of event dispatcher that in
+Qt causes a dependency to
+:class:`QGuiApplication<PySide6.QtGui.QGuiApplication>` . However, you can set
+the environment variable ``QT_EVENT_DISPATCHER_CORE_FOUNDATION=1`` to
+circumvent this issue.
+
+Applications that don't use Classic Bluetooth will find a subset of
+`QtBluetooth`_ is available,
+as CoreBluetooth (Bluetooth LE) do not require either of
+:class:`QApplication<PySide6.QtWidgets.QApplication>` or
+:class:`QGuiApplication<PySide6.QtGui.QGuiApplication>` .
+
+Guides
+^^^^^^
+
+ * :ref:`Classic Bluetooth Overview<Qt-Bluetooth-Overview>`
+ * :ref:`Bluetooth Low Energy Overview<Bluetooth-Low-Energy-Overview>`
+
+
+Logging Categories
+^^^^^^^^^^^^^^^^^^
+
+The `QtBluetooth`_ module
+exports the following :class:`logging categories<~.Configuring Categories>` :
+
+ +--------------------+-------------------------------------------------------------+
+ |Logging Category |Description |
+ +--------------------+-------------------------------------------------------------+
+ |qt.bluetooth |Enables logging of cross platform code path in `QtBluetooth`_|
+ +--------------------+-------------------------------------------------------------+
+ |qt.bluetooth.android|Enables logging of the Android implementation |
+ +--------------------+-------------------------------------------------------------+
+ |qt.bluetooth.bluez |Enables logging of the BLuez/Linux implementation |
+ +--------------------+-------------------------------------------------------------+
+ |qt.bluetooth.ios |Enables logging of the iOS implementation |
+ +--------------------+-------------------------------------------------------------+
+ |qt.bluetooth.osx |Enables logging of the macOS implementation |
+ +--------------------+-------------------------------------------------------------+
+ |qt.bluetooth.windows|Enables logging of the Qt for Windows implementation |
+ +--------------------+-------------------------------------------------------------+
+
+Logging categories can be used to enable additional warning and debug output
+for `QtBluetooth`_ . More detailed information about logging can be found in
+:class:`QLoggingCategory<~.QLoggingCategory>` . A quick way to enable all
+`QtBluetooth`_ logging is to add the following line to the ``main()``
+function::
+
+ QLoggingCategory.setFilterRules("qt.bluetooth* = true")
+
+
+.. _QtBluetooth: https://doc.qt.io/qt-6/qtbluetooth-module.html
diff --git a/sources/pyside6/doc/extras/QtCharts.rst b/sources/pyside6/doc/extras/QtCharts.rst
new file mode 100644
index 000000000..8f2d768bf
--- /dev/null
+++ b/sources/pyside6/doc/extras/QtCharts.rst
@@ -0,0 +1,21 @@
+The Qt Charts module provides a set of easy-to-use chart components. It uses
+the Qt Graphics View Framework to integrate charts with modern user interfaces.
+Qt Charts can be used as QWidgets,
+:class:`QGraphicsWidget<PySide6.QtWidgets.QGraphicsWidget>` , or QML types.
+Users can easily create impressive charts by selecting one of the themes.
+
+Getting Started
+^^^^^^^^^^^^^^^
+
+To include the definitions of modules classes, use the following
+directive:
+
+ ::
+
+ from PySide6 import QtCharts
+
+The module also provides `QML types <https://doc.qt.io/qt-6/qtcharts-qmlmodule.html>`_ .
+
+.. note:: An instance of QApplication is required for the QML types as the
+ module depends on Qt's \l{Graphics View Framework} for rendering.
+ QGuiApplication is not sufficient.
diff --git a/sources/pyside6/doc/extras/QtConcurrent.rst b/sources/pyside6/doc/extras/QtConcurrent.rst
new file mode 100644
index 000000000..33c5b3bfb
--- /dev/null
+++ b/sources/pyside6/doc/extras/QtConcurrent.rst
@@ -0,0 +1,37 @@
+The Qt Concurrent module contains functionality to support concurrent execution
+of program code.
+
+The Qt Concurrent module provides high-level APIs that make it possible to
+write multi-threaded programs without using low-level threading primitives such
+as mutexes, read-write locks, wait conditions, or semaphores. Programs written
+with Qt Concurrent automatically adjust the number of threads used according to
+the number of processor cores available. This means that applications written
+today will continue to scale when deployed on multi-core systems in the future.
+
+Qt Concurrent includes functional programming style APIs for parallel list
+processing, including a MapReduce and FilterReduce implementation for
+shared-memory (non-distributed) systems, and classes for managing asynchronous
+computations in GUI applications:
+
+ * :class:`QFuture<PySide6.QtCore.QFuture>` represents the result of an
+ asynchronous computation.
+ * :class:`QFutureIterator<~.QFutureIterator>` allows iterating through results
+ available via :class:`QFuture<PySide6.QtCore.QFuture>` .
+ * :class:`QFutureWatcher<PySide6.QtCore.QFutureWatcher>` allows monitoring a
+ :class:`QFuture<PySide6.QtCore.QFuture>` using signals-and-slots.
+ * :class:`QFutureSynchronizer<~.QFutureSynchronizer>` is a convenience class
+ that automatically synchronizes several QFutures.
+ * :class:`QPromise<~.QPromise>` provides a way to report progress and results
+ of the asynchronous computation to :class:`QFuture<PySide6.QtCore.QFuture>` .
+ Allows suspending or canceling the task when requested by
+ :class:`QFuture<PySide6.QtCore.QFuture>` .
+
+Using the Module
+^^^^^^^^^^^^^^^^
+
+To include the definitions of modules classes, use the following
+directive:
+
+::
+
+ import PySide6.QtConcurrent
diff --git a/sources/pyside6/doc/extras/QtCore.ClassInfo.rst b/sources/pyside6/doc/extras/QtCore.ClassInfo.rst
index 0cb6d32ed..75445e1fc 100644
--- a/sources/pyside6/doc/extras/QtCore.ClassInfo.rst
+++ b/sources/pyside6/doc/extras/QtCore.ClassInfo.rst
@@ -1,11 +1,9 @@
.. currentmodule:: PySide6.QtCore
-.. _ClassInfo:
+.. py:decorator:: ClassInfo
-ClassInfo
-*********
-
-This class is used to associate extra information to the class, which is available
-using QObject.metaObject(). Qt and PySide doesn't use this information.
+This decorator is used to associate extra information to the class, which is available
+using ``QObject.metaObject()``. This information is used by the
+*Qt D-Bus* and *Qt Qml* modules.
The extra information takes the form of a dictionary with key and value in a literal string.
@@ -16,13 +14,13 @@ If the key needs to contain special characters (spaces, commas, '::', start with
it is also possible to pass a python dictionary with arbitrary strings for both the key and
value and enabling special characters in the key.
-.. note:: This Class is a implementation of Q_CLASSINFO macro.
+.. note:: This decorator is a implementation of the Q_CLASSINFO macro.
Example
-------
-::
+.. code-block:: python
# Recommended syntax
@ClassInfo(Author='PySide Team', URL='http://www.pyside.org')
diff --git a/sources/pyside6/doc/extras/QtCore.Property.rst b/sources/pyside6/doc/extras/QtCore.Property.rst
index 5eb299f67..9ed7de427 100644
--- a/sources/pyside6/doc/extras/QtCore.Property.rst
+++ b/sources/pyside6/doc/extras/QtCore.Property.rst
@@ -1,8 +1,5 @@
.. currentmodule:: PySide6.QtCore
-.. _Property:
-
-Property
-********
+.. py:class:: Property
Detailed Description
--------------------
@@ -16,7 +13,7 @@ They are equivalent to the ``Q_PROPERTY`` macro in the `Qt Docs`_.
Here is an example that illustrates how to use this
function:
-.. code-block::
+.. code-block:: python
:linenos:
from PySide6.QtCore import QObject, Property
@@ -40,17 +37,20 @@ function:
The full options for ``QtCore.Property`` can be found with ``QtCore.Property.__doc__``:
-.. code-block::
-
- Property(self, type: type,
- fget: Optional[Callable] = None,
- fset: Optional[Callable] = None,
- freset: Optional[Callable] = None,
- fdel: Optional[Callable] = None,
- doc: str = '', notify: Optional[Callable] = None,
- designable: bool = True, scriptable: bool = True,
- stored: bool = True, user: bool = False,
- constant: bool = False, final: bool = False) -> PySide6.QtCore.Property
+.. code-block:: python
+
+ Property(self, type: type,
+ fget: Optional[Callable] = None,
+ fset: Optional[Callable] = None,
+ freset: Optional[Callable] = None,
+ fdel: Optional[Callable] = None,
+ doc: str = '',
+ notify: Optional[Callable] = None,
+ designable: bool = True,
+ scriptable: bool = True,
+ stored: bool = True, user: bool = False,
+ constant: bool = False,
+ final: bool = False) -> PySide6.QtCore.Property
Normally, only ``type``, ``fget``and ``fset`` are used.
@@ -65,16 +65,16 @@ requires a ``type`` parameter.
In the above example, the following lines would be equivalent properties:
-.. code-block::
+.. code-block:: python
- pp = QtCore.Property(int, readPP, setPP) # PySide version
- pp = property(readPP, setPP) # Python version
+ pp = QtCore.Property(int, readPP, setPP) # PySide version
+ pp = property(readPP, setPP) # Python version
As you know from the `Python Docs`_, ``Python`` allows to break the property
creation into multiple steps, using the decorator syntax. We can do this in
``PySide`` as well:
-.. code-block::
+.. code-block:: python
:linenos:
from PySide6.QtCore import QObject, Property
@@ -107,12 +107,15 @@ If you are using properties of your objects in QML expressions,
QML requires that the property changes are notified. Here is an
example illustrating how to do this:
-.. code-block::
+.. code-block:: python
:linenos:
from PySide6.QtCore import QObject, Signal, Property
class Person(QObject):
+
+ name_changed = Signal()
+
def __init__(self, name):
QObject.__init__(self)
self._person_name = name
@@ -120,10 +123,6 @@ example illustrating how to do this:
def _name(self):
return self._person_name
- @Signal
- def name_changed(self):
- pass
-
name = Property(str, _name, notify=name_changed)
.. _`Python Docs`: https://docs.python.org/3/library/functions.html?highlight=property#property
diff --git a/sources/pyside6/doc/extras/QtCore.QEnum.rst b/sources/pyside6/doc/extras/QtCore.QEnum.rst
index d33134264..7ea35d8af 100644
--- a/sources/pyside6/doc/extras/QtCore.QEnum.rst
+++ b/sources/pyside6/doc/extras/QtCore.QEnum.rst
@@ -1,23 +1,19 @@
.. currentmodule:: PySide6.QtCore
-.. _QEnum:
-
-QEnum/QFlag
-***********
-
-This class decorator is equivalent to the `Q_ENUM` macro from Qt.
-The decorator is used to register an Enum to the meta-object system,
-which is available via `QObject.staticMetaObject`.
-The enumerator must be in a QObject derived class to be registered.
+.. py:decorator:: QEnum
+This class decorator is equivalent to the `Q_ENUM` macro from Qt. The decorator
+is used to register a Python Enum derived class to the meta-object system,
+which is available via `QObject.staticMetaObject`. The enumerator must be in a
+QObject derived class to be registered.
Example
-------
::
- from enum import Enum, Flag, auto
+ from enum import Enum, auto
- from PySide6.QtCore import QEnum, QFlag, QObject
+ from PySide6.QtCore import QEnum, QObject
class Demo(QObject):
@@ -25,68 +21,7 @@ Example
class Orientation(Enum):
North, East, South, West = range(4)
- class Color(Flag):
- RED = auto()
- BLUE = auto()
- GREEN = auto()
- WHITE = RED | BLUE | GREEN
-
- QFlag(Color) # identical to @QFlag usage
-
-
-Caution:
---------
-
-QEnum registers a Python Enum derived class.
-QFlag treats a variation of the Python Enum, the Flag class.
-
-Please do not confuse that with the Qt QFlags concept. Python does
-not use that concept, it has its own class hierarchy, instead.
-For more details, see the `Python enum documentation <https://docs.python.org/3/library/enum.html>`_.
-
-
-Details about Qt Flags:
------------------------
-
-There are some small differences between Qt flags and Python flags.
-In Qt, we have for instance these declarations:
-
-::
-
- enum QtGui::RenderHint { Antialiasing, TextAntialiasing, SmoothPixmapTransform,
- HighQualityAntialiasing, NonCosmeticDefaultPen }
- flags QtGui::RenderHints
-
-The equivalent Python notation would look like this:
-
-::
-
- @QFlag
- class RenderHints(enum.Flag)
- Antialiasing = auto()
- TextAntialiasing = auto()
- SmoothPixmapTransform = auto()
- HighQualityAntialiasing = auto()
- NonCosmeticDefaultPen = auto()
-
-
-As another example, the Qt::AlignmentFlag flag has 'AlignmentFlag' as the enum
-name, but 'Alignment' as the type name. Non flag enums have the same type and
-enum names.
-
-::
-
- enum Qt::AlignmentFlag
- flags Qt::Alignment
-
-The Python way to specify this would be
-
-::
-
- @QFlag
- class Alignment(enum.Flag):
- ...
-
-We are considering to map all builtin enums and flags to Python enums as well
-in a later release.
+See :deco:`QFlag` for registering Python Flag derived classes.
+Meanwhile all enums and flags have been converted to Python Enums
+(default since ``PySide 6.4``), see the :ref:`NewEnumSystem` section.
diff --git a/sources/pyside6/doc/extras/QtCore.QFlag.rst b/sources/pyside6/doc/extras/QtCore.QFlag.rst
new file mode 100644
index 000000000..dd4f02800
--- /dev/null
+++ b/sources/pyside6/doc/extras/QtCore.QFlag.rst
@@ -0,0 +1,74 @@
+.. currentmodule:: PySide6.QtCore
+.. py:decorator:: QFlag
+
+QFlag handles a variation of the Python Enum, the Flag class.
+
+Please do not confuse that with the Qt QFlags concept. Python does
+not use that concept, it has its own class hierarchy, instead.
+For more details, see the `Python enum documentation <https://docs.python.org/3/library/enum.html>`_.
+
+Example
+-------
+
+::
+
+ from enum import Flag, auto
+
+ from PySide6.QtCore import QFlag, QObject
+
+ class Demo(QObject):
+
+ @QFlag
+ class Color(Flag):
+ RED = auto()
+ BLUE = auto()
+ GREEN = auto()
+ WHITE = RED | BLUE | GREEN
+
+
+Details about Qt Flags:
+-----------------------
+
+There are some small differences between Qt flags and Python flags.
+In Qt, we have for instance these declarations:
+
+::
+
+ enum QtGui::RenderHint { Antialiasing, TextAntialiasing, SmoothPixmapTransform,
+ HighQualityAntialiasing, NonCosmeticDefaultPen }
+ flags QtGui::RenderHints
+
+The equivalent Python notation would look like this:
+
+::
+
+ @QFlag
+ class RenderHints(enum.Flag)
+ Antialiasing = auto()
+ TextAntialiasing = auto()
+ SmoothPixmapTransform = auto()
+ HighQualityAntialiasing = auto()
+ NonCosmeticDefaultPen = auto()
+
+
+As another example, the Qt::AlignmentFlag flag has 'AlignmentFlag' as the enum
+name, but 'Alignment' as the type name. Non flag enums have the same type and
+enum names.
+
+::
+
+ enum Qt::AlignmentFlag
+ flags Qt::Alignment
+
+The Python way to specify this would be
+
+::
+
+ @QFlag
+ class Alignment(enum.Flag):
+ ...
+
+See :deco:`QEnum` for registering Python Enum derived classes.
+
+Meanwhile all enums and flags have been converted to Python Enums
+(default since ``PySide 6.4``), see the :ref:`NewEnumSystem` section.
diff --git a/sources/pyside6/doc/extras/QtCore.Signal.rst b/sources/pyside6/doc/extras/QtCore.Signal.rst
index 60c611482..c83a76a83 100644
--- a/sources/pyside6/doc/extras/QtCore.Signal.rst
+++ b/sources/pyside6/doc/extras/QtCore.Signal.rst
@@ -1,8 +1,5 @@
.. currentmodule:: PySide6.QtCore
-.. _Signal:
-
-Signal
-******
+.. py:class:: Signal
Synopsis
--------
@@ -10,30 +7,52 @@ Synopsis
Functions
^^^^^^^^^
-+---------------------------------------------------------------------------------------------+
-|def :meth:`connect<Signal.connect>` (receiver) |
-+---------------------------------------------------------------------------------------------+
-|def :meth:`disconnect<Signal.disconnect>` (receiver) |
-+---------------------------------------------------------------------------------------------+
-|def :meth:`emit<Signal.disconnect>` (\*args) |
-+---------------------------------------------------------------------------------------------+
++-----------------------------------------------------+
+|def :meth:`connect<Signal.connect>` (receiver) |
++-----------------------------------------------------+
+|def :meth:`disconnect<Signal.disconnect>` (receiver) |
++-----------------------------------------------------+
+|def :meth:`emit<Signal.disconnect>` (\*args) |
++-----------------------------------------------------+
Detailed Description
--------------------
- The :class:`~.Signal` class provides a way to declare and connect Qt signals in a pythonic way.
+The :class:`~.Signal` class provides a way to declare and connect Qt
+signals in a pythonic way.
+
+.. class:: PySide6.QtCore.Signal([type1 [, type2...]] [, name="" [, arguments=[]]])
+
+ :param name: str
+ :param arguments: list
+
+``Signal`` takes a list of Python types of the arguments.
+
+ It is possible to use the same signal name with different types by
+ passing a list of tuples representing the signatures, but this is a legacy
+ technique recommended against in new code (see
+ :ref:`overloading-signals-and-slots`).
+
+The optional named argument ``name`` defines the signal name. If nothing is
+passed, the new signal will have the same name as the variable that it is
+being assigned to.
- PySide adopt PyQt's new signal and slot syntax as-is. The PySide implementation is functionally compatible with the PyQt 4.5 one, with the exceptions listed bellow.
+The optional named argument ``arguments`` receives a list of strings
+denoting the argument names. This is useful for QML applications which
+may refer to the emitted values by name.
.. method:: Signal.connect(receiver[, type=Qt.AutoConnection])
- Create a connection between this signal and a `receiver`, the `receiver` can be a Python callable, a :class:`Slot` or a :class:`Signal`.
+ Create a connection between this signal and a `receiver`, the `receiver`
+ can be a Python callable, a :class:`Slot` or a :class:`Signal`.
.. method:: Signal.disconnect(receiver)
- Disconnect this signal from a `receiver`, the `receiver` can be a Python callable, a :class:`Slot` or a :class:`Signal`.
+ Disconnect this signal from a `receiver`, the `receiver` can be a Python
+ callable, a :class:`Slot` or a :class:`Signal`.
.. method:: Signal.emit(*args)
`args` is the arguments to pass to any connected slots, if any.
+.. seealso:: :ref:`signals-and-slots`
diff --git a/sources/pyside6/doc/extras/QtCore.Slot.rst b/sources/pyside6/doc/extras/QtCore.Slot.rst
index 268cfa4ad..98a1d465b 100644
--- a/sources/pyside6/doc/extras/QtCore.Slot.rst
+++ b/sources/pyside6/doc/extras/QtCore.Slot.rst
@@ -1,39 +1,42 @@
.. currentmodule:: PySide6.QtCore
-.. _Slot:
+.. py:decorator:: Slot([type1 [, type2...]] [, name="" [, result=None, [tag=""]]])
-Slot
-****
+ :param name: str
+ :param result: type
+ :param tag: str
-Detailed Description
---------------------
+``Slot`` takes a list of Python types of the arguments.
- PySide6 adopt PyQt's new signal and slot syntax as-is. The PySide6
- implementation is functionally compatible with the PyQt one, with the
- exceptions listed below.
+The optional named argument ``name`` defines the slot name. If nothing is
+passed, the slot name will be the decorated function name.
- PyQt's new signal and slot style utilizes method and decorator names
- specific to their implementation. These will be generalized according to
- the table below:
+The optional named argument ``result`` specifies the return type.
- ======= ======================= =============
- Module PyQt factory function PySide class
- ======= ======================= =============
- QtCore pyqtSignal Signal
- QtCore pyqtSlot Slot
- ======= ======================= =============
+The optional named argument ``tag`` specifies a value to be returned
+by ``QMetaMethod.tag()``.
+
+This implementation is functionally compatible with the PyQt one.
+
+======= =========== ======
+Module PyQt PySide
+======= =========== ======
+QtCore pyqtSignal Signal
+QtCore pyqtSlot Slot
+======= =========== ======
+
+.. seealso:: :ref:`signals-and-slots`
Q_INVOKABLE
-----------
- There is no equivalent of the Q_INVOKABLE macro of Qt
- since PySide6 slots can actually have return values.
- If you need to create a invokable method that returns some value,
- declare it as a slot, e.g.:
-
- ::
+There is no equivalent of the Q_INVOKABLE macro of Qt
+since PySide6 slots can actually have return values.
+If you need to create a invokable method that returns some value,
+declare it as a slot, e.g.:
- class Foo(QObject):
+::
- @Slot(float, result=int)
- def getFloatReturnInt(self, f):
- return int(f)
+ class Foo(QObject):
+ @Slot(float, result=int)
+ def getFloatReturnInt(self, f):
+ return int(f)
diff --git a/sources/pyside6/doc/extras/QtCore.rst b/sources/pyside6/doc/extras/QtCore.rst
index 694fb84e9..ac72bc487 100644
--- a/sources/pyside6/doc/extras/QtCore.rst
+++ b/sources/pyside6/doc/extras/QtCore.rst
@@ -1,5 +1,61 @@
-All other Qt modules rely on this module. To include the definitions of the module's classes, use the following directive:
+The Qt Core module is part of Qt's essential modules.
+
+The Qt Core module adds these features to C++:
+
+ * a very powerful mechanism for seamless object communication called signals and slots
+ * queryable and designable object properties
+ * hierarchical and queryable object trees
+
+The following pages provide more information about Qt's core features:
+
+ * :ref:`The Meta-Object System<The-Meta-Object-System>`
+ * :ref:`The Property System<The-Property-System>`
+ * :ref:`Object Model<Object-Model>`
+ * :ref:`Object Trees & Ownership<Object-Trees---Ownership>`
+ * :ref:`Signals & Slots<Signals---Slots>`
+
+Using the Module
+^^^^^^^^^^^^^^^^
+
+To include the definitions of modules classes, use the following
+directive:
::
import PySide6.QtCore
+
+Threading and Concurrent Programming
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Qt provides thread support in the form of platform-independent
+threading classes, a thread-safe way of posting events, and
+signal-slot connections across threads. Multithreaded programming is
+also a useful paradigm for performing time-consuming operations
+without freezing the user interface of an application.
+
+The Thread Support in Qt page contains information on implementing
+threads in applications. Additional concurrent classes are provided by
+the :ref:`Qt Concurrent<Qt-Concurrent>` module.
+
+Input/Output and Resources
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Qt provides a resource system for organizing application files and
+assets, a set of containers, and classes for receiving input and
+printing output.
+
+ * :ref:`Serializing Qt Data Types<Serializing-Qt-Data-Types>`
+
+In addition, Qt Core provides a platform-independent mechanism for
+storing binary files in the application's executable.
+
+ * :ref:`The Qt Resource System<using_qrc_files>`
+
+Additional Frameworks
+^^^^^^^^^^^^^^^^^^^^^
+
+Qt Core also provides some of Qt's key frameworks.
+
+ * :ref:`The Animation Framework<The-Animation-Framework>`
+ * `JSON Support in Qt <https://doc.qt.io/qt-6/json.html>`_
+ * :ref:`The Event System<The-Event-System>`
diff --git a/sources/pyside6/doc/extras/QtDBus.rst b/sources/pyside6/doc/extras/QtDBus.rst
new file mode 100644
index 000000000..3b9cd775a
--- /dev/null
+++ b/sources/pyside6/doc/extras/QtDBus.rst
@@ -0,0 +1,193 @@
+An introduction to Inter-Process Communication and Remote Procedure
+Calling with D-Bus.
+
+Introduction
+^^^^^^^^^^^^
+
+D-Bus is an Inter-Process Communication (IPC) and Remote Procedure
+Calling (RPC) mechanism originally developed for Linux to replace
+existing and competing IPC solutions with one unified protocol. It has
+also been designed to allow communication between system-level
+processes (such as printer and hardware driver services) and normal
+user processes.
+
+It uses a fast, binary message-passing protocol, which is suitable for
+same-machine communication due to its low latency and low overhead.
+Its specification is currently defined by the ``freedesktop.org``
+project, and is available to all parties.
+
+Communication in general happens through a central server application,
+called the "bus" (hence the name), but direct
+application-to-application communication is also possible. When
+communicating on a bus, applications can query which other
+applications and services are available, as well as activate one on
+demand.
+
+The Buses
+^^^^^^^^^
+
+D-Bus buses are used when many-to-many communication is desired. In
+order to achieve that, a central server is launched before any
+applications can connect to the bus: this server is responsible for
+keeping track of the applications that are connected and for properly
+routing messages from their source to their destination.
+
+In addition, D-Bus defines two well-known buses, called the system bus
+and the session bus. These buses are special in the sense that they
+have well-defined semantics: some services are defined to be found in
+one or both of these buses.
+
+For example, an application wishing to query the list of hardware
+devices attached to the computer will probably communicate to a
+service available on the system bus, while the service providing
+opening of the user's web browser will probably be found on the
+session bus.
+
+On the system bus, one can also expect to find restrictions on what
+services each application is allowed to offer. Therefore, one can be
+reasonably certain that, if a certain service is present, it is being
+offered by a trusted application.
+
+Messages
+^^^^^^^^
+
+On the low level, applications communicate over D-Bus by sending
+messages to one another. Messages are used to relay the remote
+procedure calls as well as the replies and errors associated with
+them. When used over a bus, messages have a destination, which means
+they are routed only to the interested parties, avoiding congestion
+due to "swarming" or broadcasting.
+
+A special kind of message called a "signal message" (a concept based
+on Qt's :ref:`Signals and Slots<Signals---Slots>` mechanism), however,
+does not have a pre-defined destination. Since its purpose is to be
+used in a one-to-many context, signal messages are designed to work
+over an "opt-in" mechanism.
+
+The Qt D-Bus module fully encapsulates the low-level concept of
+messages into a simpler, object-oriented approach familiar to Qt
+developers. In most cases, the developer need not worry about sending
+or receiving messages.
+
+Service Names
+^^^^^^^^^^^^^
+
+When communicating over a bus, applications obtain what is called a
+"service name": it is how that application chooses to be known by
+other applications on the same bus. The service names are brokered by
+the D-Bus bus daemon and are used to route messages from one
+application to another. An analogous concept to service names are IP
+addresses and hostnames: a computer normally has one IP address and
+may have one or more hostnames associated with it, according to the
+services that it provides to the network.
+
+On the other hand, if a bus is not used, service names are also not
+used. If we compare this to a computer network again, this would
+equate to a point-to-point network: since the peer is known, there is
+no need to use hostnames to find it or its IP address.
+
+The format of a D-Bus service name is in fact very similar to a host
+name: it is a dot-separated sequence of letters and digits. The common
+practice is even to name one's service name according to the domain
+name of the organization that defined that service.
+
+For example, the D-Bus service is defined by ``freedesktop.org`` and
+can be found on the bus under the service name:
+
+ ::
+
+ org.freedesktop.DBus
+
+Object Paths
+^^^^^^^^^^^^
+
+Like network hosts, applications provide specific services to other
+applications by exporting objects. Those objects are hierarchically
+organized, much like the parent-child relationship that classes
+derived from :class:`QObject<PySide6.QtCore.QObject>` possess. One
+difference, however, is that there is the concept of "root object",
+which all objects have as the ultimate parent.
+
+If we continue our analogy with Web services, object paths equate to
+the path part of a URL.
+
+Like them, object paths in D-Bus are formed resembling path names on
+the filesystem: they are slash-separated labels, each consisting of
+letters, digits and the underscore character ("\_"). They must always
+start with a slash and must not end with one.
+
+Interfaces
+^^^^^^^^^^
+
+Interfaces are similar to C++ abstract classes and Java's
+``interface`` keyword and declare the "contract" that is established
+between caller and callee. That is, they establish the names of the
+methods, signals, and properties that are available as well as the
+behavior that is expected from either side when communication is
+established.
+
+Qt uses a very similar mechanism in its Plugin system: Base classes in
+C++ are associated with a unique identifier by way of the
+:meth:`Q\_DECLARE\_INTERFACE()<~QtDBus.Q_DECLARE_INTERFACE>` macro.
+
+D-Bus interface names are, in fact, named in a manner similar to what
+is suggested by the Qt Plugin System: an identifier usually
+constructed from the domain name of the entity that defined that
+interface.
+
+Cheat Sheet
+^^^^^^^^^^^
+
+To facilitate remembering of the naming formats and their purposes,
+the following table can be used:
+
+ +-------------+------------------+---------------------------------------+
+ |D-Bus Concept|Analogy |Name format |
+ +-------------+------------------+---------------------------------------+
+ |Service name |Network hostnames |Dot-separated ("looks like a hostname")|
+ +-------------+------------------+---------------------------------------+
+ |Object path |URL path component|Slash-separated ("looks like a path") |
+ +-------------+------------------+---------------------------------------+
+ |Interface |Plugin identifier |Dot-separated |
+ +-------------+------------------+---------------------------------------+
+
+Debugging
+^^^^^^^^^
+
+When developing applications that use D-Bus, it is sometimes useful to
+be able to see information about the messages that are sent and
+received across the bus by each application.
+
+This feature can be enabled on a per-application basis by setting the
+``QDBUS_DEBUG`` environment variable before running each application.
+For example, we can enable debugging only for the car in the
+:ref:`D-Bus Remote Controlled Car
+Example<D-Bus-Remote-Controlled-Car-Example>` by running the
+controller and the car in the following way:
+
+ ::
+
+ QDBUS_DEBUG=1 python examples/dbus/pingpong/pong.py
+
+Information about the messages will be written to the console the
+application was launched from.
+
+Using the Module
+^^^^^^^^^^^^^^^^
+
+To include the definitions of modules classes, use the following
+directive:
+
+::
+
+ import PySide6.QtDBus
+
+Further Reading
+^^^^^^^^^^^^^^^
+
+The following documents contain information about Qt's D-Bus integration features, and provide details about the mechanisms used to send and receive type information over the bus:
+
+ * `Using Qt D-Bus Adaptors <https://doc.qt.io/qt-6/usingadaptors.html>`_
+ * `The Qt D-Bus Type System <https://doc.qt.io/qt-6/qdbustypesystem.html>`_
+ * `Qt D-Bus XML compiler (qdbusxml2cpp) <https://doc.qt.io/qt-6/qdbusxml2cpp.html>`_
+ * `D-Bus Viewer <https://doc.qt.io/qt-6/qdbusviewer.html>`_
diff --git a/sources/pyside6/doc/extras/QtDataVisualization.rst b/sources/pyside6/doc/extras/QtDataVisualization.rst
new file mode 100644
index 000000000..66e2d9523
--- /dev/null
+++ b/sources/pyside6/doc/extras/QtDataVisualization.rst
@@ -0,0 +1,30 @@
+Provides functionality for 3D visualization.
+
+The Qt Data Visualization module enables you to visualize data in 3D as bar,
+scatter, and surface graphs. It's especially useful for visualizing depth maps
+and large quantities of rapidly changing data, such as data received from
+multiple sensors. The look and feel of graphs can be customized by using themes
+or by adding custom items and labels.
+
+Qt Data Visualization is built on Qt 6 and OpenGL to take advantage of hardware
+acceleration and Qt Quick 2.
+
+Using the Module
+^^^^^^^^^^^^^^^^
+
+To include the definitions of modules classes, use the following
+directive:
+
+::
+
+ import PySide6.QtDataVisualization
+
+The module also provides `QML types <https://doc.qt.io/qt-6/qtdatavisualization-qmlmodule.html>`_ .
+
+Articles and Guides
+^^^^^^^^^^^^^^^^^^^
+
+ * :ref:`Overview<Qt-Data-Visualization-Overview>`
+ * :ref:`Data Handling<Qt-Data-Visualization-Data-Handling>`
+ * :ref:`Interacting with Data<Qt-Data-Visualization-Interacting-with-Data>`
+ * :ref:`Known Issues<Qt-Data-Visualization-Known-Issues>`
diff --git a/sources/pyside6/doc/extras/QtDesigner.QPyDesignerContainerExtension.rst b/sources/pyside6/doc/extras/QtDesigner.QPyDesignerContainerExtension.rst
index 1baa9e369..a3e5ef511 100644
--- a/sources/pyside6/doc/extras/QtDesigner.QPyDesignerContainerExtension.rst
+++ b/sources/pyside6/doc/extras/QtDesigner.QPyDesignerContainerExtension.rst
@@ -1,10 +1,9 @@
.. currentmodule:: PySide6.QtDesigner
-.. _QPyDesignerContainerExtension:
-
-QPyDesignerContainerExtension
-*****************************
+.. py:class:: QPyDesignerContainerExtension
QPyDesignerContainerExtension is the base class for implementing
-`QDesignerContainerExtension <https://doc.qt.io/qt-6/qdesignercontainerextension.html>`_
-for a Qt Designer custom widget plugin in Python.
+`QDesignerContainerExtension class`_
+for a *Qt Widgets Designer* custom widget plugin in Python.
It provides the required inheritance from **QObject**.
+
+.. _QDesignerContainerExtension class: https://doc.qt.io/qt-6/qdesignercontainerextension.html
diff --git a/sources/pyside6/doc/extras/QtDesigner.QPyDesignerCustomWidgetCollection.rst b/sources/pyside6/doc/extras/QtDesigner.QPyDesignerCustomWidgetCollection.rst
index 00260860b..615ca4eec 100644
--- a/sources/pyside6/doc/extras/QtDesigner.QPyDesignerCustomWidgetCollection.rst
+++ b/sources/pyside6/doc/extras/QtDesigner.QPyDesignerCustomWidgetCollection.rst
@@ -1,8 +1,5 @@
.. currentmodule:: PySide6.QtDesigner
-.. _QPyDesignerCustomWidgetCollection:
-
-QPyDesignerCustomWidgetCollection
-*********************************
+.. py:class:: QPyDesignerCustomWidgetCollection
Synopsis
--------
@@ -19,20 +16,21 @@ Functions
Detailed Description
--------------------
- The :class:`~.QPyDesignerCustomWidgetCollection` implements
- `QDesignerCustomWidgetCollectionInterface <https://doc.qt.io/qt-6/qdesignercustomwidgetcollectioninterface.html>`_
- and provides static helper functions for registering custom widgets by
- type or by implementing
- `QDesignerCustomWidgetInterface <https://doc.qt.io/qt-6/qdesignercustomwidgetinterface.html>`_ .
+The :class:`~.QPyDesignerCustomWidgetCollection` implements
+`QDesignerCustomWidgetCollectionInterface <https://doc.qt.io/qt-6/qdesignercustomwidgetcollectioninterface.html>`_
+and provides static helper functions for registering custom widgets by
+type or by implementing
+`QDesignerCustomWidgetInterface`_ .
- The usage is explained in :ref:`designer_custom_widgets`.
+The usage is explained in :ref:`designer_custom_widgets`.
.. py:staticmethod:: QPyDesignerCustomWidgetCollection.registerCustomWidget(type[, xml=""[, tool_tip=""[, icon=""[, group=""[container=False]]]]])
- Registers an instance of a Python-implemented QWidget by type with Qt Designer.
+ Registers an instance of a Python-implemented QWidget by type with
+ *Qt Widgets Designer*.
The optional keyword arguments correspond to the getters of
- `QDesignerCustomWidgetInterface <https://doc.qt.io/qt-6/qdesignercustomwidgetinterface.html>`_ :
+ `QDesignerCustomWidgetInterface`_ :
:param str xml: A snippet of XML code in ``.ui`` format that specifies how the widget is created and sets initial property values.
:param str tool_tip: Tool tip to be shown in the widget box.
@@ -46,7 +44,9 @@ Detailed Description
.. py:staticmethod:: QPyDesignerCustomWidgetCollection.addCustomWidget(custom_widget)
Adds a custom widget (implementation of
- `QDesignerCustomWidgetInterface <https://doc.qt.io/qt-6/qdesignercustomwidgetinterface.html>`_)
- with Qt Designer.
+ `QDesignerCustomWidgetInterface`_)
+ with *Qt Widgets Designer*.
:param QDesignerCustomWidgetInterface custom_widget: Custom widget instance
+
+.. _QDesignerCustomWidgetInterface: https://doc.qt.io/qt-6/qdesignercustomwidgetinterface.html
diff --git a/sources/pyside6/doc/extras/QtDesigner.QPyDesignerMemberSheetExtension.rst b/sources/pyside6/doc/extras/QtDesigner.QPyDesignerMemberSheetExtension.rst
index c52aafdf5..ef2356221 100644
--- a/sources/pyside6/doc/extras/QtDesigner.QPyDesignerMemberSheetExtension.rst
+++ b/sources/pyside6/doc/extras/QtDesigner.QPyDesignerMemberSheetExtension.rst
@@ -1,10 +1,9 @@
.. currentmodule:: PySide6.QtDesigner
-.. _QPyDesignerMemberSheetExtension:
-
-QPyDesignerMemberSheetExtension
-*******************************
+.. py:class:: QPyDesignerMemberSheetExtension
QPyDesignerMemberSheetExtension is the base class for implementing
-`QDesignerMemberSheetExtension <https://doc.qt.io/qt-6/qdesignermembersheetextension.html>`_
-for a Qt Designer custom widget plugin in Python.
+`QDesignerMemberSheetExtension class`_
+for a *Qt Widgets Designer* custom widget plugin in Python.
It provides the required inheritance from **QObject**.
+
+.. _QDesignerMemberSheetExtension class: https://doc.qt.io/qt-6/qdesignermembersheetextension.html
diff --git a/sources/pyside6/doc/extras/QtDesigner.QPyDesignerTaskMenuExtension.rst b/sources/pyside6/doc/extras/QtDesigner.QPyDesignerTaskMenuExtension.rst
index 004c94693..e5e13122d 100644
--- a/sources/pyside6/doc/extras/QtDesigner.QPyDesignerTaskMenuExtension.rst
+++ b/sources/pyside6/doc/extras/QtDesigner.QPyDesignerTaskMenuExtension.rst
@@ -1,10 +1,9 @@
.. currentmodule:: PySide6.QtDesigner
-.. _QPyDesignerTaskMenuExtension:
-
-QPyDesignerTaskMenuExtension
-****************************
+.. py:class:: QPyDesignerTaskMenuExtension
QPyDesignerTaskMenuExtension is the base class for implementing
-`QDesignerTaskMenuExtension <https://doc.qt.io/qt-6/qdesignertaskmenuextension.html>`_
-for a Qt Designer custom widget plugin in Python.
+`QDesignerTaskMenuExtension class`_
+for a *Qt Widgets Designer* custom widget plugin in Python.
It provides the required inheritance from **QObject**.
+
+.. _QDesignerTaskMenuExtension class: https://doc.qt.io/qt-6/qdesignertaskmenuextension.html
diff --git a/sources/pyside6/doc/extras/QtDesigner.rst b/sources/pyside6/doc/extras/QtDesigner.rst
new file mode 100644
index 000000000..844f25b7b
--- /dev/null
+++ b/sources/pyside6/doc/extras/QtDesigner.rst
@@ -0,0 +1,18 @@
+Provides classes to create your own custom widget plugins for
+*Qt Widgets Designer* and classes to access *Qt Widgets Designer*
+components.
+
+In addition, the :class:`QFormBuilder<PySide6.QtDesigner.QFormBuilder>` class
+provides the possibility of constructing user interfaces from UI files at
+run-time.
+
+
+Getting Started
+^^^^^^^^^^^^^^^
+
+To include the definitions of modules classes, use the following
+directive:
+
+::
+
+ import PySide6.QtDesigner
diff --git a/sources/pyside6/doc/extras/QtGui.rst b/sources/pyside6/doc/extras/QtGui.rst
index d55212bdf..8341ff453 100644
--- a/sources/pyside6/doc/extras/QtGui.rst
+++ b/sources/pyside6/doc/extras/QtGui.rst
@@ -1,7 +1,142 @@
-To include the definitions of modules classes, use the following directive:
+The Qt GUI module provides classes for windowing system integration,
+event handling, OpenGL and OpenGL ES integration, 2D graphics, basic
+imaging, fonts, and text. These classes are used internally by Qt's
+user interface technologies and can also be used directly, for
+instance to write applications using low-level OpenGL ES graphics
+APIs.
+
+For application developers writing user interfaces, Qt provides higher
+level APIs, like Qt Quick, that are much more suitable than the
+enablers found in the Qt GUI module.
+
+Application Windows
+^^^^^^^^^^^^^^^^^^^
+
+The most important classes in the Qt GUI module are
+:class:`QGuiApplication<PySide6.QtGui.QGuiApplication>` and
+:class:`QWindow<PySide6.QtGui.QWindow>` . A Qt application that wants
+to show content on screen will need to make use of these.
+:class:`QGuiApplication<PySide6.QtGui.QGuiApplication>` contains the
+main event loop, where all events from the window system and other
+sources are processed and dispatched. It also handles the
+application's initialization and finalization.
+
+The :class:`QWindow<PySide6.QtGui.QWindow>` class represents a window
+in the underlying windowing system. It provides a number of virtual
+functions to handle events ( :class:`QEvent<PySide6.QtCore.QEvent>` )
+from the windowing system, such as touch-input, exposure, focus, key
+strokes, and geometry changes.
+
+2D Graphics
+^^^^^^^^^^^
+
+The Qt GUI module contains classes for 2D graphics, imaging, fonts,
+and advanced typography.
+
+A :class:`QWindow<PySide6.QtGui.QWindow>` created with the surface
+type :attr:`RasterSurface<QSurface.SurfaceType>` can be used in
+combination with :class:`QBackingStore<PySide6.QtGui.QBackingStore>`
+and :class:`QPainter<PySide6.QtGui.QPainter>` , Qt's highly optimized
+2D vector graphics API. :class:`QPainter<PySide6.QtGui.QPainter>`
+supports drawing lines, polygons, vector paths, images, and text. For
+more information, see :ref:`Paint System<Paint-System>` and
+:ref:`Raster Window Example<Raster-Window-Example>` .
+
+Qt can load and save images using the
+:class:`QImage<PySide6.QtGui.QImage>` and
+:class:`QPixmap<PySide6.QtGui.QPixmap>` classes. By default, Qt
+supports the most common image formats including JPEG and PNG among
+others. Users can add support for additional formats via the
+:class:`QImageIOPlugin<~.QImageIOPlugin>` class. For more information,
+see :ref:`Reading and Writing Image
+Files<Reading-and-Writing-Image-Files>` .
+
+Typography in Qt is done with
+:class:`QTextDocument<PySide6.QtGui.QTextDocument>` , which uses the
+:class:`QPainter<PySide6.QtGui.QPainter>` API in combination with Qt's
+font classes, primarily :class:`QFont<PySide6.QtGui.QFont>` .
+Applications that prefer more low-level APIs to text and font handling
+can use classes like :class:`QRawFont<PySide6.QtGui.QRawFont>` and
+:class:`QGlyphRun<PySide6.QtGui.QGlyphRun>` .
+
+OpenGL and OpenGL ES Integration
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:class:`QWindow<PySide6.QtGui.QWindow>` supports rendering using
+OpenGL and OpenGL ES, depending on what the platform supports. OpenGL
+rendering is enabled by setting the
+:class:`QWindow<PySide6.QtGui.QWindow>` 's surface type to
+:attr:`OpenGLSurface<QSurface.SurfaceType>` , choosing the format
+attributes with :class:`QSurfaceFormat<PySide6.QtGui.QSurfaceFormat>`
+, and then creating a
+:class:`QOpenGLContext<PySide6.QtGui.QOpenGLContext>` to manage the
+native OpenGL context. In addition, Qt has
+:class:`QOpenGLPaintDevice<PySide6.QtOpenGL.QOpenGLPaintDevice>` ,
+which enables the use of OpenGL accelerated
+:class:`QPainter<PySide6.QtGui.QPainter>` rendering, as well as
+convenience classes that simplify the writing of OpenGL code and hides
+the complexities of extension handling and the differences between
+OpenGL ES 2 and desktop OpenGL. The convenience classes include
+:class:`QOpenGLFunctions<PySide6.QtGui.QOpenGLFunctions>` that lets an
+application use all the OpenGL ES 2 functions on desktop OpenGL
+without having to manually resolve the OpenGL function pointers. This
+enables cross-platform development of applications targeting mobile or
+embedded devices, and provides classes that wrap native OpenGL
+functionality in a simpler Qt API.
+
+For more information, see the :ref:`OpenGL Window Example<OpenGL-Window-Example>` .
+
+The Qt GUI module also contains a few math classes to aid with the
+most common mathematical operations related to 3D graphics. These
+classes include :class:`QMatrix4x4<PySide6.QtGui.QMatrix4x4>` ,
+:class:`QVector4D<PySide6.QtGui.QVector4D>` , and
+:class:`QQuaternion<PySide6.QtGui.QQuaternion>` .
+
+A :class:`QWindow<PySide6.QtGui.QWindow>` created with the
+:attr:`OpenGLSurface<QSurface.SurfaceType>` can be used in combination
+with :class:`QPainter<PySide6.QtGui.QPainter>` and
+:class:`QOpenGLPaintDevice<PySide6.QtOpenGL.QOpenGLPaintDevice>` to
+have OpenGL hardware-accelerated 2D graphics by sacrificing some of
+the visual quality.
+
+Vulkan Integration
+^^^^^^^^^^^^^^^^^^
+
+Qt GUI has support for the `Vulkan <https://www.khronos.org/vulkan/>`_
+API. Qt applications require the presence of the `LunarG Vulkan SDK
+<https://www.lunarg.com/vulkan-sdk/>`_ .
+
+On Windows, the SDK sets the environment variable ``VULKAN_SDK``\,
+which will be detected by the ``configure`` script.
+
+On Android, Vulkan headers were added in API level 24 of the NDK.
+
+Relevant classes:
+
+* QVulkanDeviceFunctions
+ * :class:`QVulkanExtension<~.QVulkanExtension>`
+ * QVulkanFunctions
+ * :class:`QVulkanInfoVector<~.QVulkanInfoVector>`
+ * :class:`QVulkanInstance<~.QVulkanInstance>`
+ * :class:`QVulkanWindow<~.QVulkanWindow>`
+ * :class:`QVulkanWindowRenderer<~.QVulkanWindowRenderer>`
+
+For more information, see the
+:ref:`Hello Vulkan Widget Example<Hello-Vulkan-Widget-Example>` and the
+:ref:`Hello Vulkan Window Example<Hello-Vulkan-Window-Example>` .
+
+Drag and Drop
+^^^^^^^^^^^^^
+
+Qt GUI includes support for drag and drop. The
+:ref:`Drag and Drop<Drag-and-Drop>` overview has more information.
+
+Using the Module
+^^^^^^^^^^^^^^^^
+
+To include the definitions of modules classes, use the following
+directive:
::
import PySide6.QtGui
-
-.. seealso:: :mod:`PySide6.QtCore`
diff --git a/sources/pyside6/doc/extras/QtHelp.rst b/sources/pyside6/doc/extras/QtHelp.rst
index 845d1f968..f6013486e 100644
--- a/sources/pyside6/doc/extras/QtHelp.rst
+++ b/sources/pyside6/doc/extras/QtHelp.rst
@@ -1,5 +1,19 @@
-To include the definitions of the module's classes, use the following directive:
+The QtHelp module provides classes for integrating online documentation
+in applications.
+
+Getting Started
+^^^^^^^^^^^^^^^
+
+To include the definitions of modules classes, use the following
+directive:
::
import PySide6.QtHelp
+
+Articles and Guides
+^^^^^^^^^^^^^^^^^^^
+
+The classes and tools supplied with Qt to enable developers to include online
+help and documentation in their applications are described in more detail in
+:ref:`The Qt Help Framework<The-Qt-Help-Framework>` .
diff --git a/sources/pyside6/doc/extras/QtMultimedia.rst b/sources/pyside6/doc/extras/QtMultimedia.rst
index 9b6b702ce..527c2427b 100644
--- a/sources/pyside6/doc/extras/QtMultimedia.rst
+++ b/sources/pyside6/doc/extras/QtMultimedia.rst
@@ -1,7 +1,116 @@
-To include the definitions of the module's classes, use the following directive:
+ .. image:: images/noun_Media_166644.svg
+
+The Qt Multimedia module provides APIs for playing back and recording audiovisual content
+
+Qt Multimedia is an add-on module that provides a rich set of QML types and C++
+classes to handle multimedia content. It contains an easy to use API for
+playing back audio and video files and rendering those on screen, as well as a
+comprehensive API for recording audio and video from the systems cameras and
+microphones.
+
+The functionality of this module is divided into the following submodules:
+
+
+ +---------------------------------------------------+-----------------------------------------------+
+ |:ref:`Qt Multimedia<Multimedia-Overview>` |Provides API for multimedia-specific use cases.|
+ +---------------------------------------------------+-----------------------------------------------+
+ |:ref:`Qt Multimedia Widgets<Qt-Multimedia-Widgets>`|Provides the widget-based multimedia API. |
+ +---------------------------------------------------+-----------------------------------------------+
+
+Getting started
+^^^^^^^^^^^^^^^
+
+If you are porting from Qt 5 to Qt 6 see :ref:`Changes to Qt Multimedia<Changes-to-Qt-Multimedia>` .
+
+To include the definitions of modules classes, use the following
+directive:
::
import PySide6.QtMultimedia
+The module also provides QML `types <https://doc.qt.io/qt-6/qtmultimedia-qmlmodule.html>`_ .
+
+Overviews and Important Topics
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * :ref:`Changes in Qt 6<Changes-to-Qt-Multimedia>`
+ * :ref:`Multimedia Overview<Multimedia-Overview>`
+ * :ref:`Audio Overview<Audio-Overview>`
+ * :ref:`Video Overview<Video-Overview>`
+ * :ref:`Camera Overview<Camera-Overview>`
+ * :ref:`Supported Media Formats<Video-Overview>`
+
+QML Types
+^^^^^^^^^
+
+The following table outlines some important QML types.
+
+ +------------------+---------------------------------------------------------------------+
+ |Type |Description |
+ +------------------+---------------------------------------------------------------------+
+ |`MediaPlayer`_ |Add audio/video playback functionality to a scene. |
+ +------------------+---------------------------------------------------------------------+
+ |`CaptureSession`_ |Create a session for capturing audio/video. |
+ +------------------+---------------------------------------------------------------------+
+ |`Camera`_ |Access a camera connected to the system. |
+ +------------------+---------------------------------------------------------------------+
+ |`AudioInput`_ |Access an audio input (microphone) connected to the system. |
+ +------------------+---------------------------------------------------------------------+
+ |`AudioOutput`_ |Access an audio output (speaker, headphone) connected to the system. |
+ +------------------+---------------------------------------------------------------------+
+ |`VideoOutput`_ |Display video content. |
+ +------------------+---------------------------------------------------------------------+
+ |`MediaRecorder`_ |Record audio/video from the `CaptureSession`_ . |
+ +------------------+---------------------------------------------------------------------+
+ |`ImageCapture`_ |Capture still images from the Camera. |
+ +------------------+---------------------------------------------------------------------+
+ |`Video`_ |Add Video playback functionality to a scene. Uses `MediaPlayer`_ and |
+ | |`VideoOutput`_ types to provide video playback functionality. |
+ +------------------+---------------------------------------------------------------------+
+
+.. _MediaPlayer: https://doc.qt.io/qt-6/qml-qtmultimedia-mediaplayer.html
+.. _CaptureSession: https://doc.qt.io/qt-6/qml-qtmultimedia-capturesession.html
+.. _Camera: https://doc.qt.io/qt-6/qml-qtmultimedia-camera.html
+.. _AudioInput: https://doc.qt.io/qt-6/qml-qtmultimedia-audioinput.html
+.. _AudioOutput: https://doc.qt.io/qt-6/qml-qtmultimedia-audiooutput.html
+.. _VideoOutput: https://doc.qt.io/qt-6/qml-qtmultimedia-videooutput.html
+.. _MediaRecorder: https://doc.qt.io/qt-6/qml-qtmultimedia-mediarecorder.html
+.. _ImageCapture: https://doc.qt.io/qt-6/qml-qtmultimedia-imagecapture.html
+.. _Video: https://doc.qt.io/qt-6/qml-qtmultimedia-video.html
+
+C++ Classes
+^^^^^^^^^^^
+
+The following table outlines some important C++ Classes
+
+ +------------------------------------------------------------------------+--------------------------------------------------------------------+
+ |Class |Description |
+ +------------------------------------------------------------------------+--------------------------------------------------------------------+
+ |:class:`QMediaPlayer<PySide6.QtMultimedia.QMediaPlayer>` |Playback media from a source. |
+ +------------------------------------------------------------------------+--------------------------------------------------------------------+
+ |:class:`QVideoWidget<PySide6.QtMultimediaWidgets.QVideoWidget>` |Display video from a media player or a capture session. |
+ +------------------------------------------------------------------------+--------------------------------------------------------------------+
+ |:class:`QMediaCaptureSession<PySide6.QtMultimedia.QMediaCaptureSession>`|Capture audio and video. |
+ +------------------------------------------------------------------------+--------------------------------------------------------------------+
+ |:class:`QCamera<PySide6.QtMultimedia.QCamera>` |Access a camera connected to the system |
+ +------------------------------------------------------------------------+--------------------------------------------------------------------+
+ |:class:`QAudioInput<PySide6.QtMultimedia.QAudioInput>` |Access an audio input (microphone) connected to the system. |
+ +------------------------------------------------------------------------+--------------------------------------------------------------------+
+ |:class:`QAudioOutput<PySide6.QtMultimedia.QAudioOutput>` |Access an audio output (speaker, headphone) connected to the system.|
+ +------------------------------------------------------------------------+--------------------------------------------------------------------+
+ |:class:`QImageCapture<PySide6.QtMultimedia.QImageCapture>` |Capture still images with a camera. |
+ +------------------------------------------------------------------------+--------------------------------------------------------------------+
+ |:class:`QMediaRecorder<PySide6.QtMultimedia.QMediaRecorder>` |Record media content from a capture session. |
+ +------------------------------------------------------------------------+--------------------------------------------------------------------+
+ |:class:`QVideoSink<PySide6.QtMultimedia.QVideoSink>` |Access and render individual video frames. |
+ +------------------------------------------------------------------------+--------------------------------------------------------------------+
+ |:class:`QAudioSink<PySide6.QtMultimedia.QAudioSink>` |Sends raw audio data to an audio output device. |
+ +------------------------------------------------------------------------+--------------------------------------------------------------------+
+For playback :class:`QMediaPlayer<PySide6.QtMultimedia.QMediaPlayer>` ,
+:class:`QAudioOutput<PySide6.QtMultimedia.QAudioOutput>` and QVideoOutput
+contain all the required functionality. The other classes are used for
+capturing audio and video content, where the
+:class:`QMediaCaptureSession<PySide6.QtMultimedia.QMediaCaptureSession>` is the
+central class managing the whole capture/recording process.
diff --git a/sources/pyside6/doc/extras/QtMultimediaWidgets.rst b/sources/pyside6/doc/extras/QtMultimediaWidgets.rst
new file mode 100644
index 000000000..510114907
--- /dev/null
+++ b/sources/pyside6/doc/extras/QtMultimediaWidgets.rst
@@ -0,0 +1,15 @@
+An add-on module which provides multimedia-related widgets.
+
+Qt Multimedia Widgets provides additional multimedia-related widgets and
+controls. The classes expand the capabilities of the
+:ref:`Qt Multimedia<Qt-Multimedia>` and :ref:`Qt Widgets<Qt-Widgets>` modules.
+
+Getting Started
+^^^^^^^^^^^^^^^
+
+To include the definitions of modules classes, use the following
+directive:
+
+::
+
+ import PySide6.QtMultimediaWidgets
diff --git a/sources/pyside6/doc/extras/QtNetwork.rst b/sources/pyside6/doc/extras/QtNetwork.rst
index 070ab77f7..18d8b3db2 100644
--- a/sources/pyside6/doc/extras/QtNetwork.rst
+++ b/sources/pyside6/doc/extras/QtNetwork.rst
@@ -1,5 +1,30 @@
-To include the definitions of the module's classes, use the following directive:
+Provides networking capabilities
+
+The Qt Network module provides a set of APIs for programming applications that
+use TCP/IP. Operations such as requests, cookies, and sending data over HTTP
+are handled by various Python classes.
+
+Using the Module
+^^^^^^^^^^^^^^^^
+
+To include the definitions of modules classes, use the following
+directive:
::
import PySide6.QtNetwork
+
+Articles and Guides
+^^^^^^^^^^^^^^^^^^^
+
+These articles contain information about Qt Network setup and about applications with networking capabilities.
+
+
+ * :ref:`Network Programming with Qt<Network-Programming-with-Qt>` - Programming applications
+ with networking capabilities
+ * :ref:`Secure Sockets Layer (SSL) Classes<Secure-Sockets-Layer--SSL--Classes>` - Classes
+ for secure communication over network sockets
+
+Also note shipping OpenSSL might cause
+`Import and Export Restrictions <https://doc.qt.io/qt-6/ssl.html#import-and-export-restrictions>`_
+to apply.
diff --git a/sources/pyside6/doc/extras/QtNetworkAuth.rst b/sources/pyside6/doc/extras/QtNetworkAuth.rst
new file mode 100644
index 000000000..1947d5ba4
--- /dev/null
+++ b/sources/pyside6/doc/extras/QtNetworkAuth.rst
@@ -0,0 +1,37 @@
+Provides network authorization capabilities (OAuth).
+
+Qt Network Authorization provides a set of APIs that enable Qt applications to
+obtain limited access to online accounts and HTTP services without exposing
+users' passwords.
+
+Currently, the supported authorization protocol is `OAuth <https://oauth.net>`_
+, versions 1 and 2.
+
+Using the Module
+^^^^^^^^^^^^^^^^
+
+To include the definitions of modules classes, use the following
+directive:
+
+::
+
+ import PySide6.QtNetworkAuth
+
+Overview
+^^^^^^^^
+
+The goal of this module is to provide a way to handle different authentication
+methods present on the Internet.
+
+There are several authentication systems, including:
+
+ * `OAuth 1 <https://datatracker.ietf.org/doc/html/rfc5849>`_
+ * `OAuth 2 <https://datatracker.ietf.org/doc/html/rfc6749>`_
+ * `OpenID <http://openid.net>`_
+ * `OpenID Connect <http://openid.net/connect/>`_
+
+These systems allow the application developers to create applications which use
+external authentication servers provided by an *Authorization Server*\. Users
+of these services need not worry about passing their credentials to suspicious
+applications. Instead, the credentials are entered in a known and trusted web
+interface.
diff --git a/sources/pyside6/doc/extras/QtNfc.rst b/sources/pyside6/doc/extras/QtNfc.rst
new file mode 100644
index 000000000..9cd0181f0
--- /dev/null
+++ b/sources/pyside6/doc/extras/QtNfc.rst
@@ -0,0 +1,31 @@
+Enables connectivity between NFC enabled devices.
+
+The NFC API provides connectivity between NFC enabled devices.
+
+Overview
+^^^^^^^^
+
+NFC is an extremely short-range (less than 20 centimeters) wireless technology
+and has a maximum transfer rate of 424 kbit/s. NFC is ideal for transferring
+small packets of data when two devices are touched together.
+
+The NFC API provides APIs for interacting with NFC Forum Tags and NFC Forum
+Devices, including target detection and loss, registering NDEF message
+handlers, reading and writing NDEF messages on NFC Forum Tags and sending tag
+specific commands.
+
+Using the Module
+^^^^^^^^^^^^^^^^
+
+To include the definitions of modules classes, use the following
+directive:
+
+::
+
+ import PySide6.QtNfc
+
+Guides
+^^^^^^
+
+ * `Qt NFC Overview <https://doc.qt.io/qt-6/qtnfc-overview.html>`_
+ * `Qt NFC on Android <https://doc.qt.io/qt-6/nfc-android.html>`_
diff --git a/sources/pyside6/doc/extras/QtOpenGL.rst b/sources/pyside6/doc/extras/QtOpenGL.rst
index 9979f9f03..aa699a7d7 100644
--- a/sources/pyside6/doc/extras/QtOpenGL.rst
+++ b/sources/pyside6/doc/extras/QtOpenGL.rst
@@ -1,14 +1,26 @@
-OpenGL is a standard API for rendering 3D graphics. OpenGL only deals with 3D rendering and provides little or no support for GUI programming issues. The user interface for an OpenGL application must be created with another toolkit, such as Motif on the X platform, Microsoft Foundation Classes (MFC) under Windows, or Qt on both platforms.
+OpenGL is a standard API for rendering 3D graphics. OpenGL only deals
+with 3D rendering and provides little or no support for GUI
+programming issues. The user interface for an OpenGL application must
+be created with another toolkit, such as XCB on the X platform,
+Microsoft Foundation Classes (MFC) under Windows, or Qt on both
+platforms.
.. note:: OpenGL is a trademark of Silicon Graphics, Inc. in the United States and other countries.
-The Qt OpenGL module makes it easy to use OpenGL in Qt applications. It provides an OpenGL widget class that can be used just like any other Qt widget, except that it opens an OpenGL display buffer where you can use the OpenGL API to render the contents.
-To include the definitions of the module's classes, use the following directive:
+The Qt OpenGL module makes it easy to use OpenGL in Qt applications.
+To include the definitions of the module's classes, use the following
+directive:
::
import PySide6.QtOpenGL
-The Qt OpenGL module is implemented as a platform-independent wrapper around the platform-dependent GLX (version 1.3 or later), WGL, or AGL C APIs. Although the basic functionality provided is very similar to Mark Kilgard's GLUT library, applications using the Qt OpenGL module can take advantage of the whole Qt API for non-OpenGL-specific GUI functionality.
+The Qt OpenGL module is implemented as a platform-independent wrapper
+around the platform-dependent GLX (version 1.3 or later), WGL, or AGL
+C APIs. Applications using the Qt OpenGL module can take advantage of
+the whole Qt API for non-OpenGL-specific GUI functionality.
+
+The QtOpenGL module is available on Windows, X11 and Mac OS X. Qt for
+Embedded Linux and OpenGL supports OpenGL ES (OpenGL for Embedded
+Systems).
-The QtOpenGL module is available on Windows, X11 and Mac OS X. Qt for Embedded Linux and OpenGL supports OpenGL ES (OpenGL for Embedded Systems). \ No newline at end of file
diff --git a/sources/pyside6/doc/extras/QtOpenGLWidgets.rst b/sources/pyside6/doc/extras/QtOpenGLWidgets.rst
new file mode 100644
index 000000000..d40b89d71
--- /dev/null
+++ b/sources/pyside6/doc/extras/QtOpenGLWidgets.rst
@@ -0,0 +1,8 @@
+The Qt OpenGL provides the OpenGL widget class that can be used just like any
+other Qt widget, except that it opens an OpenGL display buffer where you can
+use the OpenGL API to render the contents. To include the definitions of
+the module's classes, use the following directive:
+
+::
+
+ import PySide6.QtOpenGLWidgets
diff --git a/sources/pyside6/doc/extras/QtPositioning.rst b/sources/pyside6/doc/extras/QtPositioning.rst
new file mode 100644
index 000000000..800e369fa
--- /dev/null
+++ b/sources/pyside6/doc/extras/QtPositioning.rst
@@ -0,0 +1,40 @@
+The Qt Positioning API provides positioning information via QML and Python interfaces.
+
+Currently the API is supported on Android, iOS, macOS, Linux, and Windows (with
+GPS receivers exposed as a serial port providing NMEA sentences or using
+``Windows.Devices.Geolocation``\).
+
+Overview
+^^^^^^^^
+
+The Qt Positioning API gives developers the ability to determine a position by
+using a variety of possible sources, including satellite, or wifi, or text
+file, and so on. That information can then be used to for example determine a
+position on a map. In addition satellite information can be retrieved and area
+based monitoring can be performed.
+
+Using the Module
+^^^^^^^^^^^^^^^^
+
+To include the definitions of modules classes, use the following
+directive:
+
+::
+
+ import PySide6.QtPositioning
+
+The module also provides `QML types <https://doc.qt.io/qt-6/qtpositioning-qmlmodule.html>`_ .
+
+To load the Qt Positioning module, add the following statement to your .qml files
+
+ ::
+
+ import QtPositioning
+
+Articles and Guides
+^^^^^^^^^^^^^^^^^^^
+
+ * :ref:`Positioning introduction for C++<Positioning--C--->`
+ * :ref:`Positioning introduction for QML<Positioning--QML->`
+ * :ref:`Qt Positioning Plugins<Qt-Positioning-Plugins>`
+ * :ref:`Interfaces between C++ and QML Code in Qt Positioning<Interfaces-between-C---and-QML-Code-in-Qt-Positioning>`
diff --git a/sources/pyside6/doc/extras/QtPrintSupport.rst b/sources/pyside6/doc/extras/QtPrintSupport.rst
new file mode 100644
index 000000000..146ef6a9f
--- /dev/null
+++ b/sources/pyside6/doc/extras/QtPrintSupport.rst
@@ -0,0 +1,15 @@
+The Qt Print Support module provides extensive cross-platform support for
+printing. Using the printing systems on each platform, Qt applications can
+print to attached printers and across networks to remote printers. The printing
+system also supports PDF file generation, providing the foundation for basic
+report generation facilities.
+
+Using the Module
+^^^^^^^^^^^^^^^^
+
+To include the definitions of modules classes, use the following
+directive:
+
+::
+
+ import PySide6.QtPrintSupport
diff --git a/sources/pyside6/doc/extras/QtQml.ListProperty.rst b/sources/pyside6/doc/extras/QtQml.ListProperty.rst
new file mode 100644
index 000000000..eaa580c68
--- /dev/null
+++ b/sources/pyside6/doc/extras/QtQml.ListProperty.rst
@@ -0,0 +1,24 @@
+.. currentmodule:: PySide6.QtQml
+.. py:class:: ListProperty
+
+ The ``ListProperty`` class allows applications to expose list-like properties of
+ :class:`~PySide6.QtCore.QObject`-derived classes to QML.
+ The usage is shown in the :ref:`qml-object-and-list-property-types-example`
+ and the :ref:`qml-chapter5-listproperties` example.
+
+ .. py:method:: __init__(type, append, count=None, at=None, clear=None, removeLast=None, doc="", notify=None, designable=True, scriptable=True, stored=True, user=False, constant=False, final=False)
+
+ :param type type: Element type
+ :param callable append: A function to append an item
+ :param callable count: A function returning the list count
+ :param callable at: A function returning the item at an index
+ :param callable clear: A function to clear the list
+ :param removeLast: A function to remove the last item
+ :param str doc: Doc string
+ :param Signal notify: A signal emitted when a change occurs
+ :param bool designable: Not used in QML
+ :param bool scriptable: Not used in QML
+ :param bool stored: Whether the property is stored
+ :param bool user: Not used in QML
+ :param bool constant: Whether the property is constant
+ :param bool final: Whether the property is final
diff --git a/sources/pyside6/doc/extras/QtQml.QPyQmlParserStatus.rst b/sources/pyside6/doc/extras/QtQml.QPyQmlParserStatus.rst
new file mode 100644
index 000000000..10dde6b9a
--- /dev/null
+++ b/sources/pyside6/doc/extras/QtQml.QPyQmlParserStatus.rst
@@ -0,0 +1,9 @@
+.. currentmodule:: PySide6.QtQml
+.. py:class:: QPyQmlParserStatus
+
+QPyQmlParserStatus is the base class for implementing
+`QQmlParserStatus class`_ .
+
+It provides the required inheritance from **QObject**.
+
+.. _QQmlParserStatus class: https://doc.qt.io/qt-6/qqmlparserstatus.html
diff --git a/sources/pyside6/doc/extras/QtQml.QPyQmlPropertyValueSource.rst b/sources/pyside6/doc/extras/QtQml.QPyQmlPropertyValueSource.rst
new file mode 100644
index 000000000..bf7f8e98f
--- /dev/null
+++ b/sources/pyside6/doc/extras/QtQml.QPyQmlPropertyValueSource.rst
@@ -0,0 +1,9 @@
+.. currentmodule:: PySide6.QtQml
+.. py:class:: QPyQmlPropertyValueSource
+
+QPyQmlPropertyValueSource is the base class for implementing
+`QQmlPropertyValueSource class`_ .
+
+It provides the required inheritance from **QObject**.
+
+.. _QQmlPropertyValueSource class: https://doc.qt.io/qt-6/qqmlpropertyvaluesource.html
diff --git a/sources/pyside6/doc/extras/QtQml.QmlAnonymous.rst b/sources/pyside6/doc/extras/QtQml.QmlAnonymous.rst
new file mode 100644
index 000000000..44aa0ea21
--- /dev/null
+++ b/sources/pyside6/doc/extras/QtQml.QmlAnonymous.rst
@@ -0,0 +1,17 @@
+.. currentmodule:: PySide6.QtQml
+.. py:decorator:: QmlAnonymous
+
+Declares the enclosing type to be available, but anonymous in QML. The type
+cannot be created or used to declare properties in QML, but when passed from
+C++, it is recognized. In QML, you can use properties of this type if they
+are declared in C++.
+
+.. code-block:: python
+
+ QML_IMPORT_NAME = "com.library.name"
+ QML_IMPORT_MAJOR_VERSION = 1
+ QML_IMPORT_MINOR_VERSION = 0 # Optional
+
+ @QmlAnonymous
+ class ClassForQml(QObject):
+ # ...
diff --git a/sources/pyside6/doc/extras/QtQml.QmlAttached.rst b/sources/pyside6/doc/extras/QtQml.QmlAttached.rst
new file mode 100644
index 000000000..4331b03f9
--- /dev/null
+++ b/sources/pyside6/doc/extras/QtQml.QmlAttached.rst
@@ -0,0 +1,35 @@
+.. currentmodule:: PySide6.QtQml
+.. py:decorator:: QmlAttached
+
+This decorator declares that the enclosing type attaches the type passed as
+an attached property to other types. This takes effect if the type is exposed
+to QML using a ``QmlElement()`` or ``@QmlNamedElement()`` decorator.
+
+.. code-block:: python
+
+ QML_IMPORT_NAME = "com.library.name"
+ QML_IMPORT_MAJOR_VERSION = 1
+ QML_IMPORT_MINOR_VERSION = 0 # Optional
+
+ @QmlAnonymous
+ class LayoutAttached(QObject):
+ @Property(QMargins)
+ def margins(self):
+ ...
+
+ @QmlElement()
+ @QmlAttached(LayoutAttached)
+ class Layout(QObject):
+ ...
+
+Afterwards the class may be used in QML:
+
+.. code-block:: javascript
+
+ import com.library.name 1.0
+
+ Layout {
+ Widget {
+ Layout.margins: [2, 2, 2, 2]
+ }
+ }
diff --git a/sources/pyside6/doc/extras/QtQml.QmlElement.rst b/sources/pyside6/doc/extras/QtQml.QmlElement.rst
index 2746fbc0b..66397b2d9 100644
--- a/sources/pyside6/doc/extras/QtQml.QmlElement.rst
+++ b/sources/pyside6/doc/extras/QtQml.QmlElement.rst
@@ -1,30 +1,25 @@
.. currentmodule:: PySide6.QtQml
-.. _QmlElement:
-
-QmlElement
-**********
-
.. py:decorator:: QmlElement
- This decorator registers a class it is attached to for use in QML, using
- global variables to specify the import name and version.
+This decorator registers a class it is attached to for use in QML, using
+global variables to specify the import name and version.
- .. code-block:: python
+.. code-block:: python
- QML_IMPORT_NAME = "com.library.name"
- QML_IMPORT_MAJOR_VERSION = 1
- QML_IMPORT_MINOR_VERSION = 0 # Optional
+ QML_IMPORT_NAME = "com.library.name"
+ QML_IMPORT_MAJOR_VERSION = 1
+ QML_IMPORT_MINOR_VERSION = 0 # Optional
- @QmlElement
- class ClassForQml(QObject):
- # ...
+ @QmlElement
+ class ClassForQml(QObject):
+ # ...
- Afterwards the class may be used in QML:
+Afterwards the class may be used in QML:
- .. code-block:: python
+.. code-block:: python
- import com.library.name 1.0
+ import com.library.name 1.0
- ClassForQml {
- // ...
- }
+ ClassForQml {
+ // ...
+ }
diff --git a/sources/pyside6/doc/extras/QtQml.QmlExtended.rst b/sources/pyside6/doc/extras/QtQml.QmlExtended.rst
new file mode 100644
index 000000000..af113a9c8
--- /dev/null
+++ b/sources/pyside6/doc/extras/QtQml.QmlExtended.rst
@@ -0,0 +1,32 @@
+.. currentmodule:: PySide6.QtQml
+.. py:decorator:: QmlExtended
+
+Declares that the enclosing type uses the type passed as an extension to
+provide further properties, methods, and enumerations in QML. This takes effect
+if the type is exposed to QML using a ``QmlElement()`` or ``QmlNamedElement()``
+decorator.
+
+.. code-block:: python
+
+ QML_IMPORT_NAME = "com.library.name"
+ QML_IMPORT_MAJOR_VERSION = 1
+ QML_IMPORT_MINOR_VERSION = 0 # Optional
+
+ class LineEditExtension(QObject):
+ pass
+
+ @QmlNamedElement("QLineEdit")
+ @QmlExtended(LineEditExtension)
+ @QmlForeign(QLineEdit)
+ class LineEditForeign(QObject):
+ ...
+
+Afterwards the class may be used in QML:
+
+.. code-block:: javascript
+
+ import com.library.name 1.0
+
+ QLineEdit {
+ left_margin: 10
+ }
diff --git a/sources/pyside6/doc/extras/QtQml.QmlForeign.rst b/sources/pyside6/doc/extras/QtQml.QmlForeign.rst
new file mode 100644
index 000000000..90b821e9b
--- /dev/null
+++ b/sources/pyside6/doc/extras/QtQml.QmlForeign.rst
@@ -0,0 +1,28 @@
+.. currentmodule:: PySide6.QtQml
+.. py:decorator:: QmlForeign
+
+This decorator can be used to change the type that is created by QML.
+
+This is useful for registering types that cannot be amended by adding the
+QmlElement decorator, for example because they belong to 3rdparty libraries.
+
+.. code-block:: python
+
+ QML_IMPORT_NAME = "com.library.name"
+ QML_IMPORT_MAJOR_VERSION = 1
+ QML_IMPORT_MINOR_VERSION = 0 # Optional
+
+ @QmlNamedElement("QWidget")
+ @QmlForeign(QWidget)
+ class ForeignWidgetHelperClass(QObject):
+ ...
+
+Afterwards the class may be used in QML:
+
+.. code-block:: javascript
+
+ import com.library.name 1.0
+
+ QWidget {
+ // ...
+ }
diff --git a/sources/pyside6/doc/extras/QtQml.QmlNamedElement.rst b/sources/pyside6/doc/extras/QtQml.QmlNamedElement.rst
new file mode 100644
index 000000000..79eb9d7ad
--- /dev/null
+++ b/sources/pyside6/doc/extras/QtQml.QmlNamedElement.rst
@@ -0,0 +1,26 @@
+.. currentmodule:: PySide6.QtQml
+.. py:decorator:: QmlNamedElement
+
+This decorator registers a class it is attached to for use in QML under
+a name different from the class name, using global variables to specify
+the import name and version.
+
+.. code-block:: python
+
+ QML_IMPORT_NAME = "com.library.name"
+ QML_IMPORT_MAJOR_VERSION = 1
+ QML_IMPORT_MINOR_VERSION = 0 # Optional
+
+ @QmlNamedElement("ClassForQml")
+ class ClassWithSomeName(QObject):
+ ...
+
+Afterwards the class may be used in QML:
+
+.. code-block:: javascript
+
+ import com.library.name 1.0
+
+ ClassForQml {
+ // ...
+ }
diff --git a/sources/pyside6/doc/extras/QtQml.QmlSingleton.rst b/sources/pyside6/doc/extras/QtQml.QmlSingleton.rst
new file mode 100644
index 000000000..402c18d55
--- /dev/null
+++ b/sources/pyside6/doc/extras/QtQml.QmlSingleton.rst
@@ -0,0 +1,33 @@
+.. currentmodule:: PySide6.QtQml
+.. py:decorator:: QmlSingleton
+
+Declares the decorated type to be a singleton in QML. This only takes effect if
+the type is a QObject and is available in QML (by having a QmlElement decorator).
+The QQmlEngine will try to create a singleton instance using the type's default
+constructor.
+
+.. code-block:: python
+
+ QML_IMPORT_NAME = "com.library.name"
+ QML_IMPORT_MAJOR_VERSION = 1
+ QML_IMPORT_MINOR_VERSION = 0 # Optional
+
+ @QmlElement
+ @QmlSingleton
+ class ClassForQml(QObject):
+ ...
+
+It is also possible to use a static ``create()`` method which receives
+the engine as a parameter:
+
+.. code-block:: python
+
+ @QmlElement
+ @QmlSingleton
+ class ClassForQml(QObject):
+
+ @staticmethod
+ def create(engine):
+ ...
+
+.. note:: The order of the decorators matters; ``QmlSingleton`` needs to be preceded by ``QmlElement``.
diff --git a/sources/pyside6/doc/extras/QtQml.QmlUncreatable.rst b/sources/pyside6/doc/extras/QtQml.QmlUncreatable.rst
new file mode 100644
index 000000000..b7a28801f
--- /dev/null
+++ b/sources/pyside6/doc/extras/QtQml.QmlUncreatable.rst
@@ -0,0 +1,26 @@
+.. currentmodule:: PySide6.QtQml
+.. py:decorator:: QmlUncreatable
+
+Declares that the decorated type shall not be creatable from QML. This takes
+effect if the type is available in QML, by a preceding ``QmlElement``
+decorator. The reason will be emitted as error message if an attempt to create
+the type from QML is detected.
+
+Some QML types are implicitly uncreatable, in particular types exposed with
+``QmlAnonymous``.
+
+Passing None or no argument will cause a standard message to be used instead.
+
+.. code-block:: python
+
+ QML_IMPORT_NAME = "com.library.name"
+ QML_IMPORT_MAJOR_VERSION = 1
+ QML_IMPORT_MINOR_VERSION = 0 # Optional
+
+
+ @QmlElement
+ @QmlUncreatable("BaseClassForQml is an abstract base class")
+ class BaseClassForQml(QObject):
+ ...
+
+.. note:: The order of the decorators matters; ``QmlUncreatable`` needs to be preceded by ``QmlElement``.
diff --git a/sources/pyside6/doc/extras/QtQml.qmlRegisterSingletonInstance.rst b/sources/pyside6/doc/extras/QtQml.qmlRegisterSingletonInstance.rst
deleted file mode 100644
index 19d59893e..000000000
--- a/sources/pyside6/doc/extras/QtQml.qmlRegisterSingletonInstance.rst
+++ /dev/null
@@ -1,25 +0,0 @@
-.. currentmodule:: PySide6.QtQml
-.. _qmlRegisterSingletonInstance:
-
-qmlRegisterSingletonInstance
-****************************
-
-.. py:function:: qmlRegisterSingletonInstance(pytype: type,\
- uri: str,\
- versionMajor: int,\
- versionMinor: int,\
- typeName: str,\
- instanceObject: object) -> int
-
- :param type pytype: Python class
- :param str uri: uri to use while importing the component in QML
- :param int versionMajor: major version
- :param int versionMinor: minor version
- :param str typeName: name exposed to QML
- :param object instanceObject: singleton object to be registered
- :return: int (the QML type id)
-
- This function registers a singleton Python object *instanceObject*, with a particular *uri* and
- *typeName*. Its version is a combination of *versionMajor* and *versionMinor*.
-
- Use this function to register an object of the given type *pytype* as a singleton type.
diff --git a/sources/pyside6/doc/extras/QtQml.qmlRegisterSingletonType.rst b/sources/pyside6/doc/extras/QtQml.qmlRegisterSingletonType.rst
deleted file mode 100644
index 83102bf86..000000000
--- a/sources/pyside6/doc/extras/QtQml.qmlRegisterSingletonType.rst
+++ /dev/null
@@ -1,44 +0,0 @@
-.. currentmodule:: PySide6.QtQml
-.. _qmlRegisterSingletonType:
-
-qmlRegisterSingletonType
-************************
-
-.. py:function:: qmlRegisterSingletonType(pytype: type, uri: str, versionMajor: int, versionMinor: int, typeName: str) -> int
-
- :param type pytype: Python class
- :param str uri: uri to use while importing the component in QML
- :param int versionMajor: major version
- :param int versionMinor: minor version
- :param str typeName: name exposed to QML
- :return: int (the QML type id)
-
- This function registers a Python type as a singleton in the QML system.
-
-.. py:function:: qmlRegisterSingletonType(pytype: type, uri: str, versionMajor: int, versionMinor: int, typeName: str, callback: object) -> int
-
- :param type pytype: Python class
- :param str uri: uri to use while importing the component in QML
- :param int versionMajor: major version
- :param int versionMinor: minor version
- :param str typeName: name exposed to QML
- :param object callback: Python callable (to handle Python type)
- :return: int (the QML type id)
-
- This function registers a Python type as a singleton in the QML system using
- the provided callback (which gets a QQmlEngine as a parameter) to generate
- the singleton.
-
-
-.. py:function:: qmlRegisterSingletonType(uri: str, versionMajor: int, versionMinor: int, typeName: str, callback: object) -> int
-
- :param str uri: uri to use while importing the component in QML
- :param int versionMajor: major version
- :param int versionMinor: minor version
- :param str typeName: name exposed to QML
- :param object callback: Python callable (to handle QJSValue)
- :return: int (the QML type id)
-
- This function registers a QJSValue as a singleton in the QML system using
- the provided callback (which gets a QQmlEngine as a parameter) to
- generate the singleton.
diff --git a/sources/pyside6/doc/extras/QtQml.qmlRegisterType.rst b/sources/pyside6/doc/extras/QtQml.qmlRegisterType.rst
deleted file mode 100644
index 079e15bf1..000000000
--- a/sources/pyside6/doc/extras/QtQml.qmlRegisterType.rst
+++ /dev/null
@@ -1,41 +0,0 @@
-.. currentmodule:: PySide6.QtQml
-.. _qmlRegisterType:
-
-qmlRegisterType
-***************
-
-.. py:function:: qmlRegisterType(pytype: type, uri: str, versionMajor: int, versionMinor: int, qmlName: str) -> int
-
- :param type pytype: Python class
- :param str uri: uri to use while importing the component in QML
- :param int versionMajor: major version
- :param int versionMinor: minor version
- :param str qmlName: name exposed to QML
- :return: int (the QML type id)
-
- This function registers the Python *type* in the QML system with the
- name *qmlName*, in the library imported from *uri* having the
- version number composed from *versionMajor* and *versionMinor*.
-
- For example, this registers a Python class 'MySliderItem' as a QML
- type named 'Slider' for version '1.0' of a module called
- 'com.mycompany.qmlcomponents':
-
- ::
-
- qmlRegisterType(MySliderItem, "com.mycompany.qmlcomponents", 1, 0, "Slider")
-
- Once this is registered, the type can be used in QML by importing
- the specified module name and version number:
-
- ::
-
- import com.mycompany.qmlcomponents 1.0
-
- Slider { ... }
-
- Note that it's perfectly reasonable for a library to register types
- to older versions than the actual version of the library.
- Indeed, it is normal for the new library to allow QML written to
- previous versions to continue to work, even if more advanced
- versions of some of its types are available.
diff --git a/sources/pyside6/doc/extras/QtQml.qmlRegisterUncreatableType.rst b/sources/pyside6/doc/extras/QtQml.qmlRegisterUncreatableType.rst
deleted file mode 100644
index 2f34cd987..000000000
--- a/sources/pyside6/doc/extras/QtQml.qmlRegisterUncreatableType.rst
+++ /dev/null
@@ -1,36 +0,0 @@
-.. currentmodule:: PySide6.QtQml
-.. _qmlRegisterUncreatableType:
-
-
-qmlRegisterUncreatableType
-**************************
-
-
-.. py:function:: qmlRegisterUncreatableType(pytype: type, uri: str, versionMajor: int, versionMinor: int, qmlName: str, noCreationReason: str) -> int
-
-
- :param type pytype: Python class
- :param str uri: uri to use while importing the component in QML
- :param int versionMajor: major version
- :param int versionMinor: minor version
- :param str qmlName: name exposed to QML
- :param str noCreationReason: Error message shown when trying to create the QML type
- :return: int (the QML type id)
-
- This function registers the Python *type* in the QML system as an uncreatable type with the
- name *qmlName*, in the library imported from *uri* having the
- version number composed from *versionMajor* and *versionMinor*,
- showing *noCreationReason* as an error message when creating the type is attempted.
-
- For example, this registers a Python class 'MySliderItem' as a QML
- type named 'Slider' for version '1.0' of a module called
- 'com.mycompany.qmlcomponents':
-
- ::
- qmlRegisterUncreatableType(MySliderItem, "com.mycompany.qmlcomponents", 1, 0, "Slider", "Slider cannot be created.")
-
- Note that it's perfectly reasonable for a library to register types
- to older versions than the actual version of the library.
- Indeed, it is normal for the new library to allow QML written to
- previous versions to continue to work, even if more advanced
- versions of some of its types are available.
diff --git a/sources/pyside6/doc/extras/QtQml.rst b/sources/pyside6/doc/extras/QtQml.rst
new file mode 100644
index 000000000..66f736f02
--- /dev/null
+++ b/sources/pyside6/doc/extras/QtQml.rst
@@ -0,0 +1,75 @@
+The Qt QML module defines and implements the QML language
+
+The Qt QML module provides a framework for developing applications and
+libraries with the QML language. It defines and implements the language and
+engine infrastructure, and provides an API to enable application developers to
+extend the QML language with custom types and integrate QML code with
+JavaScript and C++. The Qt QML module provides both a `QML API
+<https://doc.qt.io/qt-6/qtqml-qmlmodule.html>`_ and a `C++ API
+<https://doc.qt.io/qt-6/qtqml-module.html>`_ .
+
+Note that while the Qt QML module provides the language and infrastructure for
+QML applications, the :ref:`Qt Quick<Qt-Quick>` module provides many visual
+components, model-view support, an animation framework, and much more for
+building user interfaces.
+
+For those new to QML and Qt Quick, please see QML Applications for an
+introduction to writing QML applications.
+
+Using the Module
+^^^^^^^^^^^^^^^^
+
+To include the definitions of modules classes, use the following
+directive:
+
+::
+
+ import PySide6.QtQml
+
+The module also provides `QML types <https://doc.qt.io/qt-6/qtqml-qmlmodule.html>`_ .
+
+QML and QML Types
+^^^^^^^^^^^^^^^^^
+
+The Qt QML module contains the QML framework and important QML types used in
+applications. The constructs of QML are described in the
+:ref:`The QML Reference<The-QML-Reference>` .
+
+In addition to the :ref:`QML Basic Types<QML-Basic-Types>` , the module comes
+with the following QML object types:
+
+ * `Component <https://doc.qt.io/qt-6/qml-qtqml-component.html>`_
+ * `QtObject <https://doc.qt.io/qt-6/qml-qtqml-qtobject.html>`_
+ * `Binding <https://doc.qt.io/qt-6/qml-qtqml-binding.html>`_
+ * `Connections <https://doc.qt.io/qt-6/qml-qtqml-connections.html>`_
+ * `Timer <https://doc.qt.io/qt-6/qml-qtqml-timer.html>`_
+
+The `Qt <https://doc.qt.io/qt-6/qml-qtqml-qt.html>`_ global object provides
+useful enums and functions for various QML types.
+
+Lists and Models
+^^^^^^^^^^^^^^^^
+
+New in Qt 5.1, the model types are moved to a submodule, ``QtQml.Models``\. The
+Qt QML Models page has more information.
+
+ * DelegateModel
+ * DelegateModelGroup
+ * ListElement
+ * ListModel
+ * ObjectModel
+
+JavaScript Environment for QML Applications
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+JavaScript expressions allow QML code to contain application logic. Qt QML
+provides the framework for running JavaScript expressions in QML and from C++.
+
+These sections are from :ref:`The QML Reference<The-QML-Reference>` .
+
+ * `Integrating QML and JavaScript <https://doc.qt.io/qt-6/qtqml-javascript-topic.html>`_
+ * `Using JavaScript Expressions with QML <https://doc.qt.io/qt-6/qtqml-javascript-expressions.html>`_
+ * `Dynamic QML Object Creation from JavaScript <https://doc.qt.io/qt-6/qtqml-javascript-dynamicobjectcreation.html>`_
+ * `Defining JavaScript Resources In QML <https://doc.qt.io/qt-6/qtqml-javascript-resources.html>`_
+ * `Importing JavaScript Resources In QML <https://doc.qt.io/qt-6/qtqml-javascript-imports.html>`_
+ * `JavaScript Host Environment <https://doc.qt.io/qt-6/qtqml-javascript-hostenvironment.html>`_
diff --git a/sources/pyside6/doc/extras/QtQuickControls2.rst b/sources/pyside6/doc/extras/QtQuickControls2.rst
new file mode 100644
index 000000000..dba542045
--- /dev/null
+++ b/sources/pyside6/doc/extras/QtQuickControls2.rst
@@ -0,0 +1,45 @@
+Provides a set of UI controls for Qt Quick.
+
+Qt Quick Controls provides a set of controls that can be used to build complete
+interfaces in Qt Quick. The module was introduced in Qt 5.7.
+
+ .. image:: images/qtquickcontrols2-styles.png
+
+Qt Quick Controls comes with a selection customizable styles. See
+:ref:`Styling Qt Quick Controls<Styling-Qt-Quick-Controls>` for more details.
+
+ .. _QtQuickControls2_using-the-module:
+
+Using the Module
+^^^^^^^^^^^^^^^^
+
+To include the definitions of modules classes, use the following
+directive:
+
+::
+
+ import PySide6.QtQuickControls2
+
+Versions
+^^^^^^^^
+
+Qt Quick Controls 2.0 was introduced in Qt 5.7. Subsequent minor Qt releases
+increment the import version of the Qt Quick Controls modules by one, until Qt
+5.12, where the import versions match Qt's minor version.
+
+In Qt 6, both the major and minor versions match, and version numbers may be
+omitted from imports in QML. If the version is omitted, the latest version will
+be used.
+
+Topics
+^^^^^^
+
+ * `Getting Started <https://doc.qt.io/qt-6/qtquickcontrols2-gettingstarted.html>`_
+ * `Guidelines <https://doc.qt.io/qt-6/qtquickcontrols2-guidelines.html>`_
+ * `Styling <https://doc.qt.io/qt-6/qtquickcontrols2-styles.html>`_
+ * `Icons <https://doc.qt.io/qt-6/qtquickcontrols2-icons.html>`_
+ * `Customization <https://doc.qt.io/qt-6/qtquickcontrols2-customize.html>`_
+ * `Using File Selectors <https://doc.qt.io/qt-6/qtquickcontrols2-fileselectors.html>`_
+ * `Deployment <https://doc.qt.io/qt-6/qtquickcontrols2-deployment.html>`_
+ * `Configuration File <https://doc.qt.io/qt-6/qtquickcontrols2-configuration.html>`_
+ * `Environment Variables <https://doc.qt.io/qt-6/qtquickcontrols2-environment.html>`_
diff --git a/sources/pyside6/doc/extras/QtQuickTest.rst b/sources/pyside6/doc/extras/QtQuickTest.rst
new file mode 100644
index 000000000..52f13590b
--- /dev/null
+++ b/sources/pyside6/doc/extras/QtQuickTest.rst
@@ -0,0 +1,58 @@
+ Qt Quick Test is a unit test framework for QML applications. Test cases are
+ written as JavaScript functions within a QML TestCase type:
+
+.. code-block:: JavaScript
+
+ import QtQuick
+ import QtTest
+
+ TestCase {
+ name: "MathTests"
+
+ function test_math() {
+ compare(2 + 2, 4, "2 + 2 = 4")
+ }
+
+ function test_fail() {
+ compare(2 + 2, 5, "2 + 2 = 5")
+ }
+ }
+
+Functions whose names start with ``test_`` are treated as test cases to be
+executed.
+
+QML API
+^^^^^^^
+
+The `QML types <https://doc.qt.io/qt-6/qttest-qmlmodule.html>`_
+in Qt Quick Test are available through the ``QtTest`` import.
+To use the types, add the following import statement to your ``.qml`` file:
+
+.. code-block:: JavaScript
+
+ import QtTest
+
+Running Tests
+^^^^^^^^^^^^^
+
+Test cases are launched by a harness that consists of the following code:
+
+.. code-block:: Python
+
+ import sys
+ from PySide6.QtQuickTest import QUICK_TEST_MAIN
+
+ QUICK_TEST_MAIN("example", sys.argv)
+
+Where "example" is the identifier to use to uniquely identify this set of
+tests.
+
+Test execution can be controlled by a number of command line options (pass
+``-h`` for help).
+
+Executing Code Before QML Tests
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+To execute code before any of the QML tests are run, the
+:py:func:`QUICK_TEST_MAIN_WITH_SETUP` function can be used. This can be useful
+for setting context properties on the QML engine, amongst other things.
diff --git a/sources/pyside6/doc/extras/QtRemoteObjects.rst b/sources/pyside6/doc/extras/QtRemoteObjects.rst
new file mode 100644
index 000000000..7a8eb76a3
--- /dev/null
+++ b/sources/pyside6/doc/extras/QtRemoteObjects.rst
@@ -0,0 +1,101 @@
+Provides APIs for inter-process communication.
+
+Remote Object Concepts
+^^^^^^^^^^^^^^^^^^^^^^
+
+Qt Remote Objects (QtRO) is an Inter-Process Communication (IPC) module
+developed for Qt. This module extends Qt's existing functionalities to enable
+information exchange between processes or computers, easily.
+
+One of Qt's key features, to enable this information exchange, is the
+distinction between an object's API (defined by its properties, signals, and
+slots) and the implementation of that API. QtRO's purpose is to meet that
+expected API, even if the true :class:`QObject<PySide6.QtCore.QObject>` is in a
+different process. A slot called on a copy of an object (the
+:ref:`Replica<Qt-Remote-Objects-Replica>` in QtRO) is forwarded to the true
+object (the :ref:`Source<Qt-Remote-Objects-Source>` in QtRO) for handling.
+Every Replica receives updates to the Source, either property changes or
+emitted signals.
+
+A :ref:`Replica<Qt-Remote-Objects-Replica>` is a light-weight proxy for the
+:ref:`Source<Qt-Remote-Objects-Source>` object, but a Replica supports the same
+connections and behavior of QObjects, which makes it usable in the same way as
+any other :class:`QObject<PySide6.QtCore.QObject>` that Qt provides. Behind the
+scenes, QtRO handles everything that's necessary for the Replica to look like
+its Source.
+
+Note that Remote Objects behave differently from traditional Remote Procedure
+Call (RPC) implementations, for example:
+
+ * In RPC, the client makes a request and waits for the response.
+ * In RPC, the server doesn't push anything to the client unless it's in response to a request.
+ * Often, the design of RPC is such that different clients are independent of each other:
+ for instance, two clients can ask a mapping service for directions and get
+ different results.
+
+While it is possible to implement this RPC-style behavior in QtRO, as Sources
+without properties, and slots that have return values, QtRO hides the fact that
+the processing is really remote. You let a node give you the Replica instead of
+creating it yourself, possibly use the status signals (
+:meth:`isReplicaValid()<PySide6.QtRemoteObjects.QRemoteObjectReplica.isReplicaValid>`
+), but then interact with the object like you would with any other
+:class:`QObject<PySide6.QtCore.QObject>` -based type.
+
+Use Case: GPS
+^^^^^^^^^^^^^
+
+Consider a sensor such as a Global Positioning System (GPS) receiver. In QtRO terms:
+
+ * The :ref:`Source<Qt-Remote-Objects-Source>` would be the process that directly
+ interacts with the GPS hardware and derives your current location.
+ * The location would be exposed as :class:`QObject<PySide6.QtCore.QObject>` properties;
+ the periodic updates to the location would update these properties and emit property
+ changed signals.
+ * :ref:`Replicas<Qt-Remote-Objects-Replica>` would be created in other processes
+ and would always know your current location, but wouldn't need any of the logic
+ to compute the location from the sensor data.
+ * Connecting to the location changed signal on the Replica would work as
+ expected: the signal emitted from the Source would trigger the signal
+ emission on every Replica.
+
+Use Case: Printer Access
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+Consider a service that provides access to a printer. In QtRO terms:
+
+ * The :ref:`Source<Qt-Remote-Objects-Source>` would be the process
+ controlling the printer directly.
+ * The ink levels and printer status would be monitored by
+ :class:`QObject<PySide6.QtCore.QObject>` properties. Updates to these
+ properties would emit property changed signals.
+ * The key feature -- being able to print something -- needs to be passed
+ back to the printer. Incidentally, this aligns with the Qt slot mechanism,
+ which QtRO uses as the way for :ref:`Replicas<Qt-Remote-Objects-Replica>`
+ to make calls on the Source. In effect, properties and signals go from Source
+ to Replicas; slots go from Replica to Source.
+ * When a print request is accepted, the printer status would change,
+ triggering a change in the status property. This would then be reported
+ to all Replicas.
+
+Using the Module
+^^^^^^^^^^^^^^^^
+
+To include the definitions of modules classes, use the following
+directive:
+
+::
+
+ import PySide6.QtRemoteObjects
+
+Articles and Guides
+^^^^^^^^^^^^^^^^^^^
+
+ * `Getting Started with Qt Remote Objects <https://doc.qt.io/qt-6/qtremoteobjects-gettingstarted.html>`_
+ * `Nodes <https://doc.qt.io/qt-6/qtremoteobjects-node.html>`_
+ * `Sources <https://doc.qt.io/qt-6/qtremoteobjects-source.html>`_
+ * `Replicas <https://doc.qt.io/qt-6/qtremoteobjects-replica.html>`_
+ * `Registry <https://doc.qt.io/qt-6/qtremoteobjects-registry.html>`_
+ * `Compiler <https://doc.qt.io/qt-6/qtremoteobjects-repc.html>`_
+ * `Remote Object Interaction <https://doc.qt.io/qt-6/qtremoteobjects-interaction.html>`__
+ * `Troubleshooting <https://doc.qt.io/qt-6/qtremoteobjects-troubleshooting.html>`_
+ * `Protocol Versioning <https://doc.qt.io/qt-6/qtremoteobjects-compatibility.html>`_
diff --git a/sources/pyside6/doc/extras/QtScript.rst b/sources/pyside6/doc/extras/QtScript.rst
deleted file mode 100644
index 1d2a1bd04..000000000
--- a/sources/pyside6/doc/extras/QtScript.rst
+++ /dev/null
@@ -1,21 +0,0 @@
-The QtScript module only provides core scripting facilities; the QtScriptTools module provides additional Qt Script-related components that application developers may find useful.
-
-To include the definitions of the module's classes, use the following directive:
-
-::
-
- import PySide6.QtScript
-
-License Information
--------------------
-
-Qt Commercial Edition licensees that wish to distribute applications that use the QtScript module need to be aware of their obligations under the GNU Library General Public License (LGPL).
-
-Developers using the Open Source Edition can choose to redistribute the module under the appropriate version of the GNU LGPL.
-QtScript is licensed under the GNU Library General Public License. Individual contributor names and copyright dates can be found inline in the code.
-
-This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
-
-This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/sources/pyside6/doc/extras/QtScriptTools.rst b/sources/pyside6/doc/extras/QtScriptTools.rst
deleted file mode 100644
index 8f0c7e12b..000000000
--- a/sources/pyside6/doc/extras/QtScriptTools.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-Applications that use the Qt Script Tools classes need to be configured to be built against the QtScriptTools module. To include the definitions of the module's classes, use the following directive:
-
-::
-
- import PySide6.QtScriptTools
diff --git a/sources/pyside6/doc/extras/QtScxml.rst b/sources/pyside6/doc/extras/QtScxml.rst
new file mode 100644
index 000000000..e757bfd58
--- /dev/null
+++ b/sources/pyside6/doc/extras/QtScxml.rst
@@ -0,0 +1,25 @@
+Provides functionality to create state machines from SCXML files.
+
+The Qt SCXML module provides functionality to create state machines from
+`SCXML <http://www.w3.org/TR/scxml/>`_ files. This includes both dynamically
+creating state machines (loading the SCXML file and instantiating states and
+transitions) and generating a C++ file that has a class implementing the state
+machine. It also contains functionality to support data models and executable
+content.
+
+Getting Started
+^^^^^^^^^^^^^^^
+
+To include the definitions of modules classes, use the following
+directive:
+
+::
+
+ import PySide6.QtScxml
+
+Articles and Guides
+^^^^^^^^^^^^^^^^^^^
+
+ * `Qt SCXML Overview <https://doc.qt.io/qt-6/qtscxml-overview.html>`_
+ * `Instantiating State Machines <https://doc.qt.io/qt-6/qtscxml-instantiating-state-machines.html>`_
+ * `SCXML Compliance <https://doc.qt.io/qt-6/qtscxml-scxml-compliance.html>`_
diff --git a/sources/pyside6/doc/extras/QtSensors.rst b/sources/pyside6/doc/extras/QtSensors.rst
new file mode 100644
index 000000000..03a4d5477
--- /dev/null
+++ b/sources/pyside6/doc/extras/QtSensors.rst
@@ -0,0 +1,19 @@
+
+The Qt Sensors API provides access to sensor hardware via QML and Python
+interfaces.
+
+Currently the API is supported on Android, iOS, and Windows (MSVC).
+
+Information for Application Writers
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Applications can access Qt Sensors using QML or Python.
+
+To include the definitions of modules classes, use the following
+directive:
+
+::
+
+ import PySide6.QtSensors
+
+The module also provides `QML types <https://doc.qt.io/qt-6/qtsensors-qmlmodule.html>`_ .
diff --git a/sources/pyside6/doc/extras/QtSerialBus.rst b/sources/pyside6/doc/extras/QtSerialBus.rst
new file mode 100644
index 000000000..a6493a2ae
--- /dev/null
+++ b/sources/pyside6/doc/extras/QtSerialBus.rst
@@ -0,0 +1,46 @@
+The Qt Serial Bus API provides classes and functions to access the various
+industrial serial buses and protocols, such as CAN, ModBus, and others.
+
+Getting Started
+^^^^^^^^^^^^^^^
+
+To include the definitions of modules classes, use the following
+directive:
+
+::
+
+ import PySide6.QtSerialBus
+
+Supported Buses and Protocols
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Qt CAN Bus
+ * Qt Modbus
+
+Logging Categories
+^^^^^^^^^^^^^^^^^^
+
+The QtSerialBus module exports the following logging categories:
+
+.. list-table::
+ :header-rows: 1
+
+ * - Logging Category
+ - Description
+ * - qt.canbus
+ - Enables standard logging inside the Qt CAN Bus classes
+ * - qt.canbus.plugins
+ - Enables low level logging inside the Qt CAN Bus plugin classes. To set logging for a specific plugin, use ``qt.canbus.plugins.pluginname``, e.g. ``qt.canbus.plugins.socketcan``. ``qt.canbus.plugins*`` affects all plugins.
+ * - qt.modbus
+ - Enables standard logging inside the Qt Modbus classes
+ * - qt.modbus.lowlevel
+ - Enables low level logging including individual packet content inside the Qt Modbus classes
+
+Logging categories can be used to enable additional warning and debug output
+for QtSerialBus.
+
+A quick way to enable all Qt Modbus logging is to add the following line:
+
+.. code-block:: python
+
+ QLoggingCategory.setFilterRules("qt.modbus* = true")
diff --git a/sources/pyside6/doc/extras/QtSerialPort.rst b/sources/pyside6/doc/extras/QtSerialPort.rst
new file mode 100644
index 000000000..1b20039c3
--- /dev/null
+++ b/sources/pyside6/doc/extras/QtSerialPort.rst
@@ -0,0 +1,18 @@
+Provides an API to make serial programming simple and portable.
+
+Qt Serial Port provides the basic functionality, which includes configuring,
+I/O operations, getting and setting the control signals of the RS-232 pinouts.
+
+The following items are not supported by this module:
+
+ * Terminal features, such as echo, control CR/LF, and so on.
+ * Text mode.
+ * Configuring timeouts and delays while reading or writing.
+ * Pinout signal change notification.
+
+To include the definitions of modules classes, use the following
+directive:
+
+::
+
+ import PySide6.QtSerialPort
diff --git a/sources/pyside6/doc/extras/QtSql.rst b/sources/pyside6/doc/extras/QtSql.rst
index fb62f887c..f3374edc8 100644
--- a/sources/pyside6/doc/extras/QtSql.rst
+++ b/sources/pyside6/doc/extras/QtSql.rst
@@ -1,4 +1,20 @@
-To include the definitions of the module's classes, use the following directive:
+Provides a driver layer, SQL API layer, and a user interface layer for SQL databases
+
+The Qt SQL module provides support for SQL databases. Qt SQL's APIs are divided
+into different layers:
+
+ * Driver layer
+ * SQL API layer
+ * User interface layer
+
+The :ref:`SQL Programming<SQL-Programming>` guide contains information about
+development using Qt SQL.
+
+Using the Module
+^^^^^^^^^^^^^^^^
+
+To include the definitions of modules classes, use the following
+directive:
::
diff --git a/sources/pyside6/doc/extras/QtSvg.rst b/sources/pyside6/doc/extras/QtSvg.rst
index eae02c41e..d652841a6 100644
--- a/sources/pyside6/doc/extras/QtSvg.rst
+++ b/sources/pyside6/doc/extras/QtSvg.rst
@@ -1,5 +1,21 @@
-To include the definitions of the module's classes, use the following directive:
+Qt SVG provides functionality for handling SVG images.
+
+Scalable Vector Graphics (SVG) is an XML-based language for describing
+two-dimensional vector graphics. Qt provides classes for rendering and
+displaying SVG drawings in widgets and on other paint devices.
+
+
+Getting Started
+^^^^^^^^^^^^^^^
+
+To include the definitions of modules classes, use the following
+directive:
::
import PySide6.QtSvg
+
+Articles
+^^^^^^^^
+
+ * :ref:`Rendering SVG Files<Rendering-SVG-Files>` contains information about how to render SVG files
diff --git a/sources/pyside6/doc/extras/QtTest.rst b/sources/pyside6/doc/extras/QtTest.rst
index 1b3f98940..cebd5a053 100644
--- a/sources/pyside6/doc/extras/QtTest.rst
+++ b/sources/pyside6/doc/extras/QtTest.rst
@@ -4,4 +4,4 @@ To include the definitions of the module's classes, use the following directive:
import PySide6.QtTest
-.. note:: All macros in the C++ version of QtTest were not binded in PySide, this module is useful only for GUI testing and benchmarking, for ordinary unit testing you should use the ``unittest`` Python module.
+.. note:: Not all macros in the C++ version of QtTest were exposed in PySide. This module is useful only for GUI testing and benchmarking; for ordinary unit testing you should use the ``pytest`` Python module.
diff --git a/sources/pyside6/doc/extras/QtUiTools.loadUiType.rst b/sources/pyside6/doc/extras/QtUiTools.loadUiType.rst
deleted file mode 100644
index 8a8c4bef0..000000000
--- a/sources/pyside6/doc/extras/QtUiTools.loadUiType.rst
+++ /dev/null
@@ -1,36 +0,0 @@
-.. currentmodule:: PySide6.QtUiTools
-.. _loadUiType:
-
-loadUiType
-***********
-
-.. py:function:: loadUiType(uifile: str) -> tuple(object, object)
-
- :param str uifile: The name of the `.ui` file
- :return: tuple(object, object)
-
- This function generates and loads a `.ui` file at runtime, and it returns
- a `tuple` containing the reference to the Python class, and the base class.
-
- We recommend not to use this approach as the workflow should be to generate a Python file
- from the `.ui` file, and then import and load it to use it, but we do understand that
- there are some corner cases when such functionality is required.
-
- The internal process relies on `uic` being in the PATH.
- The `pyside6-uic` wrapper uses a shipped `uic` that is located in the
- `site-packages/PySide6/uic`, so PATH needs to be updated to use that if there
- is no `uic` in the system.
-
- A simple use case is::
-
- from PySide6.QtUiTools import loadUiType
-
- generated_class, base_class = loadUiType("themewidget.ui")
- # the values will be:
- # (<class '__main__.Ui_ThemeWidgetForm'>, <class 'PySide6.QtWidgets.QWidget'>)
-
- widget = base_class()
- form = generated_class()
- form.setupUi(widget)
- # form.a_widget_member.a_method_of_member()
- widget.show()
diff --git a/sources/pyside6/doc/extras/QtUiTools.rst b/sources/pyside6/doc/extras/QtUiTools.rst
index 2769da4d6..e83aa0357 100644
--- a/sources/pyside6/doc/extras/QtUiTools.rst
+++ b/sources/pyside6/doc/extras/QtUiTools.rst
@@ -1,6 +1,14 @@
-These forms are processed at run-time to produce dynamically-generated user interfaces. In order to generate a form at run-time, a resource file containing a UI file is needed.
+*Qt Widgets Designer* forms are processed at run-time to produce
+dynamically-generated user interfaces. In order to generate a form at
+run-time, a resource file containing a UI file is needed.
-A form loader object, provided by the QUiLoader class, is used to construct the user interface. This user interface can be retrieved from any QIODevice; for example, a QFile object can be used to obtain a form stored in a project's resources. The :meth:`PySide6.QtUiTools.QUiLoader.load` function takes the user interface description contained in the file and constructs the form widget.
+A form loader object, provided by the ``QUiLoader`` class, is used to
+construct the user interface. This user interface can be retrieved
+from any ``QIODevice``; for example, a ``QFile`` object can be used to obtain
+a form stored in a project's resources. The
+:meth:`PySide6.QtUiTools.QUiLoader.load` function takes the user
+interface description contained in the file and constructs the form
+widget.
To include the definitions of the module's classes, use the following directive:
diff --git a/sources/pyside6/doc/extras/QtWebChannel.rst b/sources/pyside6/doc/extras/QtWebChannel.rst
new file mode 100644
index 000000000..5207a3486
--- /dev/null
+++ b/sources/pyside6/doc/extras/QtWebChannel.rst
@@ -0,0 +1,30 @@
+Bridges the gap between Qt applications and HTML/JavaScript.
+
+Qt WebChannel enables peer-to-peer communication between a server (QML/Python
+application) and a client (HTML/JavaScript or QML application). It is supported
+out of the box by :ref:`Qt WebEngine<Qt-WebEngine>` . In addition it can work
+on all browsers that support :ref:`WebSockets<Qt-WebSockets>` , enabling Qt
+WebChannel clients to run in any JavaScript environment (including QML). This
+requires the implementation of a custom transport based on Qt WebSockets.
+
+The module provides a JavaScript library for seamless integration of Python and
+QML applications with HTML/JavaScript and QML clients. The clients must use the
+JavaScript library to access the serialized QObjects published by the host
+applications.
+
+Getting Started
+^^^^^^^^^^^^^^^
+
+To include the definitions of modules classes, use the following
+directive:
+
+::
+
+ import PySide6.QtWebChannel
+
+API Reference
+^^^^^^^^^^^^^
+
+ * `JavaScript API <https://doc.qt.io/qt-6/qtwebchannel-javascript.html>`_
+
+The module also provides `QML types <https://doc.qt.io/qt-6/qtwebchannel-qmlmodule.html>`_ .
diff --git a/sources/pyside6/doc/extras/QtWebEngineCore.rst b/sources/pyside6/doc/extras/QtWebEngineCore.rst
new file mode 100644
index 000000000..ff8dd5c23
--- /dev/null
+++ b/sources/pyside6/doc/extras/QtWebEngineCore.rst
@@ -0,0 +1,19 @@
+Provides common API shared by Qt WebEngine and Qt WebEngine Widgets.
+
+Qt WebEngine Core provides API shared by :ref:`Qt WebEngine<Qt-WebEngine>`
+and :ref:`Qt WebEngine Widgets<Qt-WebEngine-Widgets>` .
+
+Getting Started
+^^^^^^^^^^^^^^^
+
+To include the definitions of modules classes, use the following
+directive:
+
+::
+
+ import PySide6.QtWebEngineCore
+
+Articles and Guides
+^^^^^^^^^^^^^^^^^^^
+
+ * `Qt WebEngine Overview <https://doc.qt.io/qt-6/qtwebengine-overview.html>`_
diff --git a/sources/pyside6/doc/extras/QtWebEngineWidgets.rst b/sources/pyside6/doc/extras/QtWebEngineWidgets.rst
new file mode 100644
index 000000000..8d3f6e126
--- /dev/null
+++ b/sources/pyside6/doc/extras/QtWebEngineWidgets.rst
@@ -0,0 +1,18 @@
+Provides a web browser engine as well as C++ classes to render web content and
+interact with it.
+
+Getting Started
+^^^^^^^^^^^^^^^
+
+To include the definitions of modules classes, use the following
+directive:
+
+::
+
+ import PySide6.QtWebEngineWidgets
+
+
+Articles and Guides
+^^^^^^^^^^^^^^^^^^^
+
+ * `Qt WebEngine Overview <https://doc.qt.io/qt-6/qtwebengine-overview.html>`_
diff --git a/sources/pyside6/doc/extras/QtWebSockets.rst b/sources/pyside6/doc/extras/QtWebSockets.rst
new file mode 100644
index 000000000..f15264699
--- /dev/null
+++ b/sources/pyside6/doc/extras/QtWebSockets.rst
@@ -0,0 +1,29 @@
+Provides an implementation of the WebSocket protocol.
+
+WebSocket is a web-based protocol designed to enable two-way communication
+between a client application and a remote host. It enables the two entities to
+send data back and forth if the initial handshake succeeds. WebSocket is the
+solution for applications that struggle to get real-time data feeds with less
+network latency and minimum data exchange.
+
+The Qt WebSockets module provides C++ and QML interfaces that enable Qt
+applications to act as a server that can process WebSocket requests, or a
+client that can consume data received from the server, or both.
+
+Getting Started
+^^^^^^^^^^^^^^^
+
+To include the definitions of modules classes, use the following
+directive:
+
+::
+
+ import PySide6.QtWebSockets
+
+The module also provides `QML types <https://doc.qt.io/qt-6/qtwebsockets-qmlmodule.html>`_ .
+
+Articles and Guides
+^^^^^^^^^^^^^^^^^^^
+
+ * `Overview <https://doc.qt.io/qt-6/websockets-overview.html>`_
+ * `Testing Qt WebSockets <https://doc.qt.io/qt-6/qtwebsockets-testing.html>`_
diff --git a/sources/pyside6/doc/extras/QtWidgets.rst b/sources/pyside6/doc/extras/QtWidgets.rst
new file mode 100644
index 000000000..784421aac
--- /dev/null
+++ b/sources/pyside6/doc/extras/QtWidgets.rst
@@ -0,0 +1,86 @@
+A module which provides a set of C++ technologies for building user
+interfaces
+
+The QtWidgets module provides a set of UI elements to create classic
+desktop-style user interfaces.
+
+Widgets
+^^^^^^^
+
+Widgets are the primary elements for creating user interfaces in Qt. They can
+display data and status information, receive user input, and provide a
+container for other widgets that should be grouped together. A widget that is
+not embedded in a parent widget is called a window.
+
+ .. image:: images/parent-child-widgets.png
+
+The :class:`QWidget<PySide6.QtWidgets.QWidget>` class provides the
+basic capability to render to the screen, and to handle user input
+events. All UI elements that Qt provides are either subclasses of
+:class:`QWidget<PySide6.QtWidgets.QWidget>` , or are used in
+connection with a :class:`QWidget<PySide6.QtWidgets.QWidget>`
+subclass. Creating custom widgets is done by subclassing
+:class:`QWidget<PySide6.QtWidgets.QWidget>` or a suitable subclass and
+reimplementing the virtual event handlers.
+
+ * :ref:`Window and Dialog Widgets<Window-and-Dialog-Widgets>`
+ * :ref:`Application Main Window<Application-Main-Window>`
+ * :ref:`Dialog Windows<Dialog-Windows>`
+ * :ref:`Keyboard Focus in Widgets<Keyboard-Focus-in-Widgets>`
+
+Styles
+^^^^^^
+
+:ref:`Styles<Styles-and-Style-Aware-Widgets>` draw on behalf of
+widgets and encapsulate the look and feel of a GUI. Qt's built-in
+widgets use the :class:`QStyle<PySide6.QtWidgets.QStyle>` class to
+perform nearly all of their drawing, ensuring that they look exactly
+like the equivalent native widgets.
+
+:ref:`Qt Style Sheets<Qt-Style-Sheets>` are a powerful mechanism that
+allows you to customize the appearance of widgets, in addition to what
+is already possible by subclassing
+:class:`QStyle<PySide6.QtWidgets.QStyle>` .
+
+Layouts
+^^^^^^^
+
+:ref:`Layouts<Layout-Management>` are an elegant and flexible way to
+automatically arrange child widgets within their container. Each
+widget reports its size requirements to the layout through the
+:meth:`sizeHint<PySide6.QtWidgets.QWidget.sizeHint>` and
+:meth:`sizePolicy<PySide6.QtWidgets.QWidget.sizePolicy>` properties,
+and the layout distributes the available space accordingly.
+
+:ref:`Qt Widgets Designer<using_ui_files>` is a powerful tool for interactively
+creating and arranging widgets in layouts.
+
+Model/View Classes
+^^^^^^^^^^^^^^^^^^
+
+The :ref:`model/view<Model-View-Programming>` architecture provides
+classes that manage the way data is presented to the user. Data-driven
+applications which use lists and tables are structured to separate the
+data and view using models, views, and delegates.
+
+ .. image:: images/windows-treeview.png
+
+Graphics View
+^^^^^^^^^^^^^
+
+The :ref:`Graphics View Framework<Graphics-View-Framework>` is for
+managing and interacting with a large number of custom-made 2D
+graphical items, and a view widget for visualizing the items, with
+support for zooming and rotation.
+
+ .. image:: images/graphicsview-items.png
+
+Using the Module
+^^^^^^^^^^^^^^^^
+
+To include the definitions of modules classes, use the following
+directive:
+
+::
+
+ import PySide6.QtWidgets
diff --git a/sources/pyside6/doc/extras/QtXml.rst b/sources/pyside6/doc/extras/QtXml.rst
index 39c384e77..33d821baa 100644
--- a/sources/pyside6/doc/extras/QtXml.rst
+++ b/sources/pyside6/doc/extras/QtXml.rst
@@ -1,4 +1,12 @@
-To include the definitions of the module's classes, use the following directive:
+The Qt XML module provides implementations of the SAX and DOM standards for XML.
+
+.. note:: Qt XML will no longer receive additional features. For reading or writing XML documents iteratively (SAX), use the :class:`QXmlStreamReader<PySide6.QtCore.QXmlStreamReader>` and :class:`QXmlStreamWriter<PySide6.QtCore.QXmlStreamWriter>` classes. The classes are both easier to use and more compliant with the XML standard.
+
+Using the Module
+^^^^^^^^^^^^^^^^
+
+To include the definitions of modules classes, use the following
+directive:
::
diff --git a/sources/pyside6/doc/extras/QtXmlPatterns.rst b/sources/pyside6/doc/extras/QtXmlPatterns.rst
deleted file mode 100644
index 258fdf28d..000000000
--- a/sources/pyside6/doc/extras/QtXmlPatterns.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-To include the definitions of the module's classes, use the following directive:
-
-::
-
- import PySide6.QtXmlPatterns
-
-Further Reading
----------------
-
-General overviews of XQuery and XSchema can be found in the XQuery document.
-
-An introduction to the XQuery language can be found in A Short Path to XQuery.
diff --git a/sources/pyside6/doc/faq.rst b/sources/pyside6/doc/faq.rst
index c1a27b3c2..4171df947 100644
--- a/sources/pyside6/doc/faq.rst
+++ b/sources/pyside6/doc/faq.rst
@@ -23,14 +23,14 @@ Frequently Asked Questions
Before the official release, everything was in one big wheel, so it made sense to split these
into separate wheels, each for the major projects currently in development:
- * **pyside6**: contains all the PySide6 modules to use the Qt framework; also depends on the
- shiboken6 module.
- * **shiboken6**: contains the shiboken6 module with helper functions for PySide6.
- * **shiboken6_generator**: contains the generator binary that can work with a C++ project and a
- typesystem to generate Python bindings.
- If you want to generate bindings for a Qt/C++ project, there won't be any linking to the Qt
- shared libraries; you need to do this by hand. We recommend building PySide6 from scratch
- to have everything properly linked.
+ * **pyside6**: contains all the PySide6 modules to use the Qt framework; also depends on the
+ shiboken6 module.
+ * **shiboken6**: contains the shiboken6 module with helper functions for PySide6.
+ * **shiboken6_generator**: contains the generator binary that can work with a C++ project and a
+ typesystem to generate Python bindings.
+ If you want to generate bindings for a Qt/C++ project, there won't be any linking to the Qt
+ shared libraries; you need to do this by hand. We recommend building PySide6 from scratch
+ to have everything properly linked.
**Why is the shiboken6_generator not installed automatically?**
It's not necessary to install the shiboken6_generator to use PySide6. The package is a result of
diff --git a/sources/pyside6/doc/tutorials/pretutorial/distribution.rst b/sources/pyside6/doc/faq/distribution.rst
index fea588153..fea588153 100644
--- a/sources/pyside6/doc/tutorials/pretutorial/distribution.rst
+++ b/sources/pyside6/doc/faq/distribution.rst
diff --git a/sources/pyside6/doc/tutorials/pretutorial/hello_linux.png b/sources/pyside6/doc/faq/hello_linux.png
index f335a234d..f335a234d 100644
--- a/sources/pyside6/doc/tutorials/pretutorial/hello_linux.png
+++ b/sources/pyside6/doc/faq/hello_linux.png
Binary files differ
diff --git a/sources/pyside6/doc/tutorials/pretutorial/hello_macOS.png b/sources/pyside6/doc/faq/hello_macOS.png
index 863149399..863149399 100644
--- a/sources/pyside6/doc/tutorials/pretutorial/hello_macOS.png
+++ b/sources/pyside6/doc/faq/hello_macOS.png
Binary files differ
diff --git a/sources/pyside6/doc/tutorials/pretutorial/hello_win10.jpg b/sources/pyside6/doc/faq/hello_win10.jpg
index 78dcf8ab5..78dcf8ab5 100644
--- a/sources/pyside6/doc/tutorials/pretutorial/hello_win10.jpg
+++ b/sources/pyside6/doc/faq/hello_win10.jpg
Binary files differ
diff --git a/sources/pyside6/doc/tutorials/pretutorial/tiobe.png b/sources/pyside6/doc/faq/tiobe.png
index 87647d1c2..87647d1c2 100644
--- a/sources/pyside6/doc/tutorials/pretutorial/tiobe.png
+++ b/sources/pyside6/doc/faq/tiobe.png
Binary files differ
diff --git a/sources/pyside6/doc/faq/typesoffiles.rst b/sources/pyside6/doc/faq/typesoffiles.rst
new file mode 100644
index 000000000..3155b24fc
--- /dev/null
+++ b/sources/pyside6/doc/faq/typesoffiles.rst
@@ -0,0 +1,152 @@
+.. _typesoffiles:
+
+File Types
+==========
+
+There are many different file types that you will encounter while
+developing |project| applications, ui, qrc, qml, pyproject, etc.
+Here you can find a simple explanation for
+each of them.
+
+Python Files ``.py``
+--------------------
+
+Python files are the main format you will be dealing with, while developing
+|project| projects.
+
+It is important to note that you can write applications **only** with Python
+files, without the need of ``.ui``, ``.qrc``, or ``.qml`` files, however
+using other formats will facilitate some processes, and enable new
+functionality to your applications.
+
+.. code-block:: python
+
+ class MyWidget(QWidget):
+ def __init__(self):
+ QWidget.__init__(self)
+
+ self.hello = ["Hallo Welt", "你好,世界", "Hei maailma",
+ "Hola Mundo", "Привет мир"]
+
+ self.button = QPushButton("Click me!")
+ self.text = QLabel("Hello World")
+ self.text.setAlignment(Qt.AlignCenter)
+ # ...
+
+User Interface Definition File ``.ui``
+--------------------------------------
+
+When using *Qt Widgets Designer*, you can create user interfaces using
+Qt Widgets with the WYSIWYG form editor, this interface is represented
+as a widget tree using XML. Here is an extract of the beginning of a
+``.ui`` file:
+
+.. code-block:: xml
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <ui version="4.0">
+ <class>MainWindow</class>
+ <widget class="QMainWindow" name="MainWindow">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>400</width>
+ <height>300</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>MainWindow</string>
+ </property>
+ <widget class="QWidget" name="centralWidget">
+
+The `pyside6-uic` tool generates Python code from these `.ui` files,
+which you can import from your main files, so it is not necessary
+for you to include the `.ui` files in your deployed application.
+
+For more details, see :ref:`using_ui_files`.
+
+Resource Collection Files ``.qrc``
+----------------------------------
+
+List of binary files that will be used alongside your application.
+As an XML-based file, its structure look like this:
+
+.. code-block:: xml
+
+ <!DOCTYPE RCC><RCC version="1.0">
+ <qresource>
+ <file>images/quit.png</file>
+ <file>font/myfont.ttf</file>
+ </qresource>
+ </RCC>
+
+
+The `pyside6-rcc` tool generates Python code from these `.qrc` files,
+so you are not required to include the listed files in your deployed
+application.
+
+For more details, see :ref:`using_qrc_files`.
+
+Qt Modeling Language File ``.qml``
+----------------------------------
+
+Graphical QML applications are not related to Qt Widgets applications, and
+that is why the usual setup of QML project is a Python file that loads
+the QML file, and optionally, elements defined in Python that are exposed
+to QML to be used.
+
+You can write ``.qml`` files by hand, but also you can use tools like the
+*QML Designer* that is embedded in *Qt Creator*. Additionally, there are commercial
+tools like *Qt Design Studio* that allow you to load designs from other design
+applications.
+
+Here you can find an example of how a ``.qml`` file looks like.
+The code will display a lightgray rectangle, with the "Hello World!"
+message on it.
+
+.. code-block:: javascript
+
+ import QtQuick 2.0
+
+ Rectangle {
+ id: page
+ width: 320;
+ height: 480
+ color: "lightgray"
+
+ Text {
+ id: helloText
+ text: "Hello world!"
+ y: 30
+ anchors.horizontalCenter: page.horizontalCenter
+ font.pointSize: 24;
+ font.bold: true
+ }
+ }
+
+Qt Creator Python Project File ``.pyproject``
+---------------------------------------------
+
+For *Qt Creator* to load and handle Python based projects, a special file is
+needed, because C++ based projects could be handle from ``.qmake`` or
+``CMakeLists.txt`` file, which are not used with Python-based projects.
+
+Old versions of *Qt Creator*, provided a simple format with the ``.pyqtc``
+extension, which were plain-text files with one-file-per-line::
+
+ library/server.py
+ library/client.py
+ logger.py
+ ...
+
+There were limitations to this format, and further options that might be
+added that would not be supported, which was the motivation to create a
+``.pyproject`` file, which is a JSON-based file where more options could
+be added. Here is an example of such file:
+
+.. code-block:: javascript
+
+ {
+ "files": ["library/server.py", "library/client.py", "logger.py", ...]
+ }
diff --git a/sources/pyside6/doc/faq/whatisqt.rst b/sources/pyside6/doc/faq/whatisqt.rst
new file mode 100644
index 000000000..3b42a9403
--- /dev/null
+++ b/sources/pyside6/doc/faq/whatisqt.rst
@@ -0,0 +1,112 @@
+.. _whatisqt:
+
+Qt, QML, Widgets...What Is The Difference?
+==========================================
+
+If you are new to Qt, there might be a chance that you are a bit confused about
+all the concepts you have read so far. This section aims to provide a summary
+of all the key components that are relevant to develop Qt applications.
+
+Keep in mind that Qt was designed and written in C++ as a C++ framework, you
+will find many references, examples, and concepts that make sense in C++
+based applications, that might not be relevant in your Python applications,
+but keep in mind that |project| aims to expose the Qt framework to Python
+with many adaptations. You don't need to know C++ to use |project|, and you
+can find all the possible combinations between these languages later on.
+
+Qt
+--
+
+The Qt Project is an open collaboration that coordinates the development of the
+Qt Framework. You might find situations where "Qt" refers to the project, or
+to the framework.
+
+As a framework, Qt has many components, which are distributed by components
+and modules, for example, `qtbase <https://code.qt.io/cgit/qt/qtbase.git/>`_
+is the base component that holds many modules, like: ``QtCore``, ``QtGui``,
+``QtWidgets``, ``QtNetwork``, etc.
+All those modules contains many classes that you can directly use, like the
+case of the `Classes of QtCore <https://doc.qt.io/qt-6/qtcore-module.html>`_
+from which you can find classes like ``QFile``, ``QTime``, ``QByteArray``, etc.
+
+You can create applications without a User Interface, while using this classes
+to create command line applications, handle files, network connections,
+regular expressions, encoding of text, etc.
+
+On the other hand, you can create Graphical applications with classes
+from the ``QtWidgets`` module, this is also referred as **Widgets**.
+
+There are many other Qt modules like ``QtMultimedia``, ``QtCharts``, ``Qt3D``,
+among others. These modules has a specific functionality, and among this
+modules, there is one called ``QtDeclarative``, in which you can find the
+implementation of the ``QML`` declarative language. This language is similar
+to CSS and JSON, and it was created to design UI applications declaratively,
+allowing JavaScript to take care of some imperative sections, and enabling
+other components to extend and connect the code with C++.
+
+Let us check the functionality of these different approaches separately.
+
+Widgets
+-------
+
+As we mentioned before, ``QtWidgets`` is the module that provide predefined
+Widgets that you can add into your graphical application, like Buttons, Labels,
+Boxes, Menus, etc.
+
+Widget based applications will look like a native application, because the goal
+is not to affect the user experience compared to other included applications.
+
+.. image:: hello_macOS.png
+ :width: 20%
+.. image:: hello_win10.jpg
+ :width: 20%
+.. image:: hello_linux.png
+ :width: 20%
+
+.. note:: You can adapt these applications to use your self-made style, but
+ you need to be aware that the goal of Widgets is to respect the system
+ style, be careful when changing colors. Check this
+ :ref:`simple tutorial <widgetstyling>` on how to do so.
+
+QML
+---
+
+QML offers an alternative approach to create User Interfaces, compared to
+Widgets, and it was originally motivated from mobile applications development.
+Together with the ``Qt Quick`` module, it provides access to interact with
+mobile device using actions like taps, drag and drop, animations, states,
+transitions, drawer menus, etc.
+
+The elements that you can find in QML/Quick applications are focused on
+providing a more dynamic application infrastructure which different properties
+based in certain behaviors.
+
+Even though QML has the motivation to provide interfaces with mobile devices,
+you can use it for Desktop applications, too.
+
+Additionally, you can augment your application with standard JavaScript, which
+in combination with C++ can become an attractive infrastructure.
+
+Python And C++
+--------------
+
+For |project| applications you **do not need to know C++**, but it is possible
+to mix both languages in a couple of different use cases:
+
+1. If you have a Qt/C++ application, you can re-write it so it is a Qt/Python
+ application. This means that Python aims to be a full replacement for the
+ user level C++ code of Qt applications.
+2. For custom Qt widgets written in C++, you can generate your own Python
+ bindings so people can use it directly from Python.
+3. If you have a C++ based library that you use with your Qt/C++ applications
+ that is in charge of a specific task, like a performant process, you can
+ generate bindings for it, so people could be able to use it from Python.
+4. For a Qt/C++ application, you can extend it with Python, by exposing the
+ main QApplication singleton as a python binding to a Python interpreter.
+ This can be understand as a "Python Plugin System" for your Qt/C++
+ application, for example.
+
+For the the steps **2., 3., and 4.** you need the help of Shiboken, the
+binding generation tool that is used to generate |project|.
+You can find more information in the
+`documentation page <https://doc.qt.io/qtforpython/shiboken6/index.html>`_.
diff --git a/sources/pyside6/doc/faq/whatisshiboken.rst b/sources/pyside6/doc/faq/whatisshiboken.rst
new file mode 100644
index 000000000..bf6d19ab3
--- /dev/null
+++ b/sources/pyside6/doc/faq/whatisshiboken.rst
@@ -0,0 +1,40 @@
+.. _whatisshiboken:
+
+Binding Generation: What Is Shiboken?
+=====================================
+
+When you install ``PySide6`` you might have notice that also ``Shiboken6``
+is installed as a dependency::
+
+ $ pip install pyside6
+ Collecting pyside6
+ Downloading PySide6-6.0.0-6.0.0-cp36.cp37.cp38.cp39-abi3-manylinux1_x86_64.whl (170.5 MB)
+ |████████████████████████████████| 170.5 MB 42 kB/s
+ Collecting shiboken6==6.0.0
+ Downloading shiboken6-6.0.0-6.0.0-cp36.cp37.cp38.cp39-abi3-manylinux1_x86_64.whl (964 kB)
+ |████████████████████████████████| 964 kB 29.3 MB/s
+ Installing collected packages: shiboken6, pyside6
+ Successfully installed pyside6-6.0.0 shiboken6-6.0.0
+
+That installed package is also called **Shiboken Module**, and it contains
+some utilities for PySide to properly work.
+You can find more information about it on its
+`documentation page (module) <https://doc.qt.io/qtforpython/shiboken6/shibokenmodule.html>`_
+
+There is a third package that does not get installed when you install PySide,
+because it is not required, and it is called **Shiboken Generator**.
+
+Most of the times you see mentions to use "Shiboken" or to do something
+related to "binding generation", it is about this third package, and **not**
+the dependency of the PySide package.
+
+Do I Need Shiboken Generator?
+-----------------------------
+
+If your goal is to just write Qt applications in Python,
+you do not need to worry about a Shiboken generator installation,
+but on the other hand, if you want to work with your own bindings
+or extend Qt/C++ applications with Python, you **need** it.
+
+You can find all the information related to Shiboken on its
+`documentation page (generator) <https://doc.qt.io/qtforpython/shiboken6/>`_.
diff --git a/sources/pyside6/doc/faq/whichide.rst b/sources/pyside6/doc/faq/whichide.rst
new file mode 100644
index 000000000..3afa79b7f
--- /dev/null
+++ b/sources/pyside6/doc/faq/whichide.rst
@@ -0,0 +1,56 @@
+.. _whichide:
+
+Which IDEs Are Compatible?
+==========================
+
+|project|, as any other Python module, can be used in any Python-compatible
+IDE, but not all of them will provide extra functionality like *Qt Creator* does.
+
+Besides writing files, there are some external steps you might want to perform
+in order to help the development of your applications:
+
+From a terminal:
+
+* Generating a Python file from a ``.ui`` file:
+ :command:`pyside6-uic -i form.ui -o ui_form.py`
+* Generating a Python file from a ``.qrc`` file:
+ :command:`pyside6-rcc -i resources.qrc -o rc_resources.py`
+* Opening *Qt Widgets Designer* with the command :command:`pyside6-designer`
+ to edit/create ``.ui`` files.
+
+External add-ons/plugins from your favorite IDE might include configuration
+steps to run these commands, or open external tools like Designer and
+QtCreator.
+
+QtCreator
+---------
+
+You can create new projects based on some basic templates that are currently
+available in QtCreator. After selecting one, you will pass through some steps
+where you can specify the details of the template, like the project name,
+base Qt class to use for your interface, among others.
+
+Here you can see an animation of the creation of a project:
+
+.. image:: https://qt-wiki-uploads.s3.amazonaws.com/images/7/7c/Qtcreator.gif
+ :alt: Qt Creator Animation
+
+Visual Studio Code
+------------------
+
+Besides editing the code of your application, you can use external plugins to
+enable more functionality, like this unofficial
+`plugin <https://marketplace.visualstudio.com/items?itemName=seanwu.vscode-qt-for-python>`_
+that you can install from VS Code while writing the following on the Quick Open Menu (``Ctrl+P``):
+:command:`ext install seanwu.vscode-qt-for-python`.
+
+PyCharm
+-------
+
+You can configure PyCharm to enable external tools, in |project| terms,
+*Qt Widgets Designer*, and *Qt Creator*. Go to
+``File > Settings > tools > PyCharm External Tools``, and include the following
+information to add them to your project.
+Later, you will be able to right click a ``.ui`` file, and select
+``Qt Widgets Designer``, ``pyside6-uic``, or any tool that you configured this
+way.
diff --git a/sources/pyside6/doc/faq/whyqtforpython.rst b/sources/pyside6/doc/faq/whyqtforpython.rst
new file mode 100644
index 000000000..0f0ab9aaf
--- /dev/null
+++ b/sources/pyside6/doc/faq/whyqtforpython.rst
@@ -0,0 +1,203 @@
+.. _whyqtforpython:
+
+Why Qt for Python?
+==================
+
+.. image:: tiobe.png
+ :width: 0
+
+.. raw:: html
+
+ <div style="float: right; padding-left: 20px; max-width: 30%;
+ background-color: #e9eff5; padding-top: 5px;">
+ <img src="../_images/tiobe.png"
+ style="width: 90%;"
+ alt="TIOBE index for Python" />
+ <p style="font-size: 80%;">
+ Screenshot from
+ <a href="https://www.tiobe.com/tiobe-index/python/">tiobe.com/tiobe-index/python</a>,
+ on 2021.09.06
+ </p>
+ </div>
+
+To answer this question we need to take a step back, and talk a bit about
+languages.
+
+Python has been around for almost the same amount of years that Qt has,
+and similarly it has been growing, and transforming to become the most used,
+loved, and demanded language for many programming areas.
+
+Currently (2021), it's rare to be aware of Machine Learning and Artificial
+Intelligence, without having heard of Python. Similarly, when we hear about
+Data Science/Analysis/Engineering we know that it is most probably related
+to Python.
+
+One can validate this statements by public surveys that have been showing
+the evolution and preference of the Python language, like the StackOverflow
+Surveys of the lasts years:
+
++----------------------+-----------+-----------+-----------+
+| | 2019_ | 2020_ | 2021_ |
++======================+===========+===========+===========+
+| Most Loved Language | 2nd place | 3rd place | 6th place |
++----------------------+-----------+-----------+-----------+
+| Most Wanted Language | 1st place | 1st place | 1st place |
++----------------------+-----------+-----------+-----------+
+
+and the `TIOBE index`_ (image on the right).
+
+It's natural to think that this sources might not be enough to judge the
+language in general terms, but it certainly highlights a trend among
+developers around the world.
+
+Lowering the Qt Barrier
+-----------------------
+
+Veteran C++ developers will have no problem with setting up a Qt
+application from scratch, or even manage to understand a different
+code base written with Qt. In addition, many teams are multidisciplinary,
+and other project/company developers might not be fluent in C++.
+
+Python has been luring people into programming, and for the same reason
+it's not uncommon that even people with a different background are able
+to write code, meaning that different teams are enabled to speak
+"the same language".
+
+Creating Qt applications in Python requires only a few lines of code,
+and not much configuration is required to execute it. As an /unfair/
+example, let's check the code of a simple hello world application:
+
+.. tab-set::
+
+ .. tab-item:: C++ Header
+
+ .. code-block:: cpp
+
+ #ifndef MAINWINDOW_H
+ #define MAINWINDOW_H
+
+ #include <QMainWindow>
+ #include <QPushButton>
+
+ class MainWindow : public QMainWindow
+ {
+ Q_OBJECT
+ public:
+ MainWindow(QWidget *parent = nullptr);
+ private slots:
+ void handleButton();
+ private:
+ QPushButton *m_button;
+ };
+
+ #endif // MAINWINDOW_H
+
+ .. tab-item:: C++ Implementation
+
+ .. code-block:: cpp
+
+ #include "mainwindow.h"
+
+ MainWindow::MainWindow(QWidget *parent)
+ : QMainWindow(parent)
+ {
+ m_button = new QPushButton("My Button", this);
+ connect(m_button, SIGNAL(clicked()), this,
+ SLOT(handleButton()));
+ }
+
+ void MainWindow::handleButton()
+ {
+ m_button->setText("Ready");
+ }
+
+ .. tab-item:: C++ Main
+
+ .. code-block:: cpp
+
+ #include <QApplication>
+ #include "mainwindow.h"
+
+ int main(int argc, char *argv[])
+ {
+ QApplication app(argc, argv);
+ MainWindow mainWindow;
+ mainWindow.show();
+ return app.exec(d);
+ }
+
+.. tab-set::
+
+ .. tab-item:: Python
+
+ .. code-block:: python
+
+ import sys
+ from pyside6.QtWidgets import (QApplication, QMainWindow,
+ QPushButton)
+
+ class MainWindow(QMainWindow):
+ def __init__(self, parent=None):
+ QMainWindow.__init__(self, parent)
+ self.button = QPushButton("My Button", self)
+ self.button.clicked.connect(self.handleButton)
+
+ def handleButton(self):
+ self.button.setText("Ready")
+
+ if __name__ == "__main__":
+ app = QApplication([])
+ mainWindow = MainWindow()
+ mainWindow.show()
+ sys.exit(app.exec())
+
+It's fair to say that most of the boilerplate code is provided by many
+good IDEs, like QtCreator, but using external tools certainly requires
+some practice to use them and get familiarized.
+
+Unity Makes Strength
+--------------------
+
+In our mission to enable more developers to enter the Qt World, it's
+important to note that this doesn't imply C++ developers are forgotten.
+
+Together with the bindings, Qt for Python provides our binding generator,
+Shiboken (Check :ref:`whatisshiboken`), whose functionality has
+extensibly been shown by talks on events such as those from our
+:ref:`video-gallery` section.
+
+Generating bindings between two languages it nothing new, but it has
+always been a non-trivial task, mainly for being as-compatible-as-possible
+when using external modules/libraries in your project.
+
+Shiboken's main use case is to extend Qt/C++ project's
+functionality, making them **scriptable**.
+
+What does it mean for an application to be scriptable?
+
+* enables a interpreted language to interact directly with the Qt/C++
+ application,
+* provide the option to modify and create components/elements of the
+ application from Python,
+* possibility to create a plugins/add-ons system for the application.
+* complement a process with external Python functionality.
+
+Check out this `Shiboken Webinar`_ for a hands-on example.
+
+Shiboken excels at Qt-dependent binding generation, meaning that
+any Qt/C++ project can be easily exposed to Python.
+In addition, Shiboken has proven its support for C++ projects (without Qt),
+as shown on event talks and `blog posts`.
+
+Adding Python support to well known solutions/projects is a pattern we keep
+seeing in the industry, on a broad range of devices.
+This is why we are working every day to improve the Qt for Python offering.
+
+We believe both Qt and Python will benefit from this interaction.
+
+.. _2019: https://insights.stackoverflow.com/survey/2019
+.. _2020: https://insights.stackoverflow.com/survey/2020
+.. _2021: https://insights.stackoverflow.com/survey/2021
+.. _`TIOBE index`: https://www.tiobe.com/tiobe-index/
+.. _`blog posts`: https://www.qt.io/blog/tag/qt-for-python
+.. _`Shiboken Webinar`: https://www.youtube.com/watch?v=wOMlDutOWXI
diff --git a/sources/pyside6/doc/feature-why.rst b/sources/pyside6/doc/feature-why.rst
deleted file mode 100644
index a2f3e146b..000000000
--- a/sources/pyside6/doc/feature-why.rst
+++ /dev/null
@@ -1,273 +0,0 @@
-.. _features-why:
-
-Why do we have a __feature__?
-=============================
-
-
-History
--------
-
-In PySide user story PYSIDE-1019, we tested certain ways to
-make PySide more pythonic. The first idea was to support some
-way to allow for ``snake_case`` function names.
-
-This feature is possible with relatively low compatibility
-problems, because having the same function with different names
-would be not so nice, but a possible low-effort solution.
-
-When going to ``true_property``, things become different. When we
-support properties as first class objects instead of getter
-and setter functions, we get a conflict, because a function
-cannot act as a property (no braces) and be a function at the
-same time.
-
-This consideration led us to the idea:
-Features must be selectable per-module.
-
-
-Why are features selectable per-module?
----------------------------------------
-
-Suppose you have some pre-existing code. Maybe you use some downloaded
-code or you generated an interface file. When you now decide to
-use a feature, you don't want all this existing stuff to become
-incorrect. By using the statement
-
-.. code-block:: python
-
- from __feature__ import ...
-
-you declare that this module uses some feature. Other modules will not
-be influenced by this decision and can stay unchanged.
-
-
-Why dunder, and why not __future__?
------------------------------------
-
-Especially in Python 2, but in a few cases also in Python 3, there is
-the future statement
-
-.. code-block:: python
-
- from __future__ import ...
-
-That is a statement that can only appear at the beginning of a module,
-and it switches how the Python parser works.
-
-Our first idea was to mimick this behavior for PySide, although we are
-a bit cheating: The feature statement is not a syntactical construct,
-and we cannot easily forbid that it is in the middle of a module.
-
-We then realized that the intention of Python's ``__future__`` import and
-PySide's ``__feature__`` import are different: While Python implies by
-``__future__`` some improvement, we do not want to associate with
-``__feature__``. We simply think that some users who come from Python may
-like our features, while others are used to the C++ convention and
-consider something that deviates from the Qt documentation as drawback.
-
-The intention to use the ``from __feature__ import ...`` notation was the hope that
-people see the similarity to Python's ``__future__`` statement and put that import
-at the beginning of a module to make it very visible that this module
-has some special global differences.
-
-
-The snake_case feature
-======================
-
-By using the statement
-
-.. code-block:: python
-
- from __feature__ import snake_case
-
-all methods of all classes used in this module are changing their name.
-
-The algorithm to change names is this:
-
- * if the name has less than 3 chars, or
- * if two upper chars are adjacent, or
- * if the name starts with ``gl`` (which marks OpenGL),
- * the name is returned unchanged. Otherwise
-
- * a single upper char ``C`` is replaced by ``_c``
-
-
-The true_property feature
-=========================
-
-By using the statement
-
-.. code-block:: python
-
- from __feature__ import true_property
-
-all methods of all classes used in this module which are declared in the Qt
-documentation as property become real properties in Python.
-
-This feature is incompatible with the past and cannot coexist; it is
-the reason why the feature idea was developed at all.
-
-
-Normal Properties
------------------
-
-Normal properties have the same name as before:
-
-.. code-block:: python
-
- QtWidgets.QLabel().color()
-
-becomes as property
-
-.. code-block:: python
-
- QtWidgets.QLabel().color
-
-When there is also a setter method,
-
-.. code-block:: python
-
- QtWidgets.QLabel().setColor(value)
-
-becomes as property
-
-.. code-block:: python
-
- QtWidgets.QLabel().color = value
-
-Normal properties swallow the getter and setter functions and replace
-them by the property object.
-
-
-Special Properties
-------------------
-
-Special properties are those with non-standard names.
-
-.. code-block:: python
-
- QtWidgets.QLabel().size()
-
-becomes as property
-
-.. code-block:: python
-
- QtWidgets.QLabel().size
-
-But here we have no setSize function, but
-
-.. code-block:: python
-
- QtWidgets.QLabel().resize(value)
-
-which becomes as property
-
-.. code-block:: python
-
- QtWidgets.QLabel().size = value
-
-In that case, the setter does not become swallowed, because so many
-people are used to the ``resize`` function.
-
-
-Class properties
-----------------
-
-It should be mentioned that we not only support regular properties
-as they are known from Python. There is also the concept of class
-properties which always call their getter and setter:
-
-A regular property like the aforementioned ``QtWidgets.QLabel`` has
-this visibility:
-
-.. code-block:: python
-
- >>> QtWidgets.QLabel.size
- <property object at 0x113a23540>
- >>> QtWidgets.QLabel().size
- PySide6.QtCore.QSize(640, 480)
-
-A class property instead is also evaluated without requiring an instance:
-
-.. code-block:: python
-
- >>> QtWidgets.QApplication.windowIcon
- <PySide6.QtGui.QIcon(null) at 0x113a211c0>
-
-You can only inspect it if you go directly to the right class dict:
-
-.. code-block:: python
-
- >>> QtGui.QGuiApplication.__dict__["windowIcon"]
- <PySide6.PyClassProperty object at 0x114fc5270>
-
-
-About Property Completeness
----------------------------
-
-There are many properties where the Python programmer agrees that these
-functions should be properties, but a few are not properties, like
-
-.. code-block:: python
-
- >>> QtWidgets.QMainWindow.centralWidget
- <method 'centralWidget' of 'PySide6.QtWidgets.QMainWindow' objects>
-
-We are currently discussing if we should correct these rare cases, as they
-are probably only omissions. Having to memorize the missing properties
-seems to be quite cumbersome, and instead of looking all properties up in
-the Qt documentation, it would be easier to add all properties that
-should be properties and are obviously missing.
-
-
-The __feature__ import
-======================
-
-The implementation of ``from __feature__ import ...`` is built by a slight
-modification of the ``__import__`` builtin. We made that explicit by assigning
-variables in the builtin module. This modification takes place at |project|
-import time:
-
-* The original function in ``__import__`` is kept in ``__orig_import__``.
-* The new function is in ``__feature_import__`` and assigned to ``__import__``.
-
-This function calls the Python function ``PySide6.support.__feature__.feature_import``
-first, and falls back to ``__orig_import__`` if feature import is not applicable.
-
-
-Overriding __import__
----------------------
-
-This is not recommended. Import modifications should be done using import hooks,
-see the Python documentation on `Import-Hooks`_.
-
-If you would like to modify ``__import__`` anyway without destroying the features,
-please override just the ``__orig_import__`` function.
-
-
-IDEs and Modifying Python stub files
-------------------------------------
-
-|project| comes with pre-generated ``.pyi`` stub files in the same location as
-the binary module. For instance, in the site-packages directory, you can find
-a ``QtCore.pyi`` file next to ``QtCore.abi3.so`` or ``QtCore.pyd`` on Windows.
-
-When using ``__feature__`` often with common IDEs, you may want to provide
-a feature-aware version of ``.pyi`` files to get a correct display. The simplest
-way to change them all in-place is the command
-
-
-Using __feature__ with UIC files
---------------------------------
-
-Features can be freely used together with generated UIC files. The UIC files
-are _not_ converted, intentionally. Mixing them with feature selections in other
-Python modules should always work, because switching will happen as needed, selected
-by the currently active module. (Please report to us if this fails for an example)
-
-.. code-block:: python
-
- pyside6-genpyi all --feature snake_case true_property
-
-
-.. _`Import-Hooks`: https://docs.python.org/3/reference/import.html#import-hooks
diff --git a/sources/pyside6/doc/gettingstarted-linux.rst b/sources/pyside6/doc/gettingstarted-linux.rst
deleted file mode 100644
index 34c22bd4d..000000000
--- a/sources/pyside6/doc/gettingstarted-linux.rst
+++ /dev/null
@@ -1,79 +0,0 @@
-Getting Started on Linux
-==========================
-
-Requirements
-------------
-
- * GCC
- * ``sphinx`` package for the documentation (optional).
- * Depending on your linux distribution, the following dependencies might also be required:
-
- * ``libgl-dev``, ``python-dev``, ``python-distutils``, and ``python-setuptools``.
-
-Building from source
---------------------
-
-Creating a virtual environment
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The ``venv`` module allows you to create a local, user-writeable copy of a python environment into
-which arbitrary modules can be installed and which can be removed after use::
-
- python -m venv testenv
- source testenv/bin/activate
- pip install -r requirements.txt # General dependencies, documentation, and examples.
-
-will create and use a new virtual environment, which is indicated by the command prompt changing.
-
-Setting up CLANG
-~~~~~~~~~~~~~~~~
-
-If you don't have libclang already in your system, you can download from the Qt servers::
-
- wget https://download.qt.io/development_releases/prebuilt/libclang/libclang-release_100-based-linux-Rhel7.6-gcc5.3-x86_64.7z
-
-Extract the files, and leave it on any desired path, and then set these two required
-environment variables::
-
- 7z x libclang-release_100-based-linux-Rhel7.6-gcc5.3-x86_64.7z
- export CLANG_INSTALL_DIR=$PWD/libclang
-
-Getting PySide
-~~~~~~~~~~~~~~
-
-Cloning the official repository can be done by::
-
- git clone --recursive https://code.qt.io/pyside/pyside-setup
-
-Checking out the version that we want to build, for example 6.0::
-
- cd pyside-setup && git checkout 6.0
-
-.. note:: Keep in mind you need to use the same version as your Qt installation.
- Additionally, :command:`git checkout -b 6.0 --track origin/6.0` could be a better option
- in case you want to work on it.
-
-Building PySide
-~~~~~~~~~~~~~~~
-
-Check your Qt installation path, to specifically use that version of qmake to build PySide.
-for example, :command:`/opt/Qt/6.0.0/gcc_64/bin/qmake`.
-
-Build can take a few minutes, so it is recommended to use more than one CPU core::
-
- python setup.py build --qmake=/opt/Qt/6.0.0/gcc_64/bin/qmake --build-tests --ignore-git --parallel=8
-
-Installing PySide
-~~~~~~~~~~~~~~~~~
-
-To install on the current directory, just run::
-
- python setup.py install --qmake=/opt/Qt/6.0.0/gcc_64/bin/qmake --build-tests --ignore-git --parallel=8
-
-Test installation
-~~~~~~~~~~~~~~~~~
-
-You can execute one of the examples to verify the process is properly working.
-Remember to properly set the environment variables for Qt and PySide::
-
- python examples/widgets/widgets/tetrix.py
diff --git a/sources/pyside6/doc/gettingstarted-macOS.rst b/sources/pyside6/doc/gettingstarted-macOS.rst
deleted file mode 100644
index 1033bef78..000000000
--- a/sources/pyside6/doc/gettingstarted-macOS.rst
+++ /dev/null
@@ -1,80 +0,0 @@
-Getting Started on macOS
-========================
-
-Requirements
-------------
-
- * `XCode`_ 8.2 (macOS 10.11), 8.3.3 (macOS 10.12), 9 (macOS 10.13), 10.1 (macOS 10.14)
- * ``sphinx`` package for the documentation (optional).
- * Depending on your OS, the following dependencies might also be required:
-
- * ``libgl-dev``, ``python-dev``, ``python-distutils``, and ``python-setuptools``.
-
-.. _XCode: https://developer.apple.com/xcode/
-
-
-Building from source
---------------------
-
-Creating a virtual environment
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The ``venv`` module allows you to create a local, user-writeable copy of a python environment into
-which arbitrary modules can be installed and which can be removed after use::
-
- python -m venv testenv # your interpreter could be called 'python3'
- source testenv/bin/activate
- pip install -r requirements.txt # General dependencies, documentation, and examples.
-
-will create and use a new virtual environment, which is indicated by the command prompt changing.
-
-Setting up CLANG
-~~~~~~~~~~~~~~~~
-
-If you don't have libclang already in your system, you can download from the Qt servers::
-
- wget http://download.qt.io/development_releases/prebuilt/libclang/libclang-release_100-based-mac.7z
-
-Extract the files, and leave it on any desired path, and then set these two required
-environment variables::
-
- 7z x libclang-release_100-based-mac.7z
- export CLANG_INSTALL_DIR=$PWD/libclang
-
-Getting PySide
-~~~~~~~~~~~~~~
-
-Cloning the official repository can be done by::
-
- git clone --recursive https://code.qt.io/pyside/pyside-setup
-
-Checking out the version that we want to build, for example, 6.0::
-
- cd pyside-setup && git checkout 6.0
-
-.. note:: Keep in mind you need to use the same version as your Qt installation
-
-Building PySide
-~~~~~~~~~~~~~~~
-
-Check your Qt installation path, to specifically use that version of qmake to build PySide.
-for example, ``/opt/Qt/6.0.0/gcc_64/bin/qmake``.
-
-Build can take a few minutes, so it is recommended to use more than one CPU core::
-
- python setup.py build --qmake=/opt/Qt/6.0.0/gcc_64/bin/qmake --build-tests --ignore-git --parallel=8
-
-Installing PySide
-~~~~~~~~~~~~~~~~~
-
-To install on the current directory, just run::
-
- python setup.py install --qmake=/opt/Qt/6.0.0/gcc_64/bin/qmake --build-tests --ignore-git --parallel=8
-
-Test installation
-~~~~~~~~~~~~~~~~~
-
-You can execute one of the examples to verify the process is properly working.
-Remember to properly set the environment variables for Qt and PySide::
-
- python examples/widgets/widgets/tetrix.py
diff --git a/sources/pyside6/doc/gettingstarted-windows.rst b/sources/pyside6/doc/gettingstarted-windows.rst
deleted file mode 100644
index a8c27b17a..000000000
--- a/sources/pyside6/doc/gettingstarted-windows.rst
+++ /dev/null
@@ -1,83 +0,0 @@
-Getting Started on Windows
-==========================
-
-The Qt library has to be built with the same version of MSVC as Python and PySide, this can be
-selected when using the online installer.
-
-Requirements
-------------
-
- * `MSVC2017`_ (or MSVC2019) for Python 3 on Windows,
- * `OpenSSL`_ (optional for SSL support, Qt must have been configured using the same SSL library).
- * ``sphinx`` package for the documentation (optional).
-
-.. note:: Python 3.8.0 was missing some API required for PySide/Shiboken so it's not possible
- to use it for a Windows build.
-
-.. _MSVC2017: https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools
-.. _OpenSSL: https://sourceforge.net/projects/openssl/
-
-Building from source on Windows 10
-----------------------------------
-
-Creating a virtual environment
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The ``venv`` module allows you to create a local, user-writeable copy of a python environment into
-which arbitrary modules can be installed and which can be removed after use::
-
- python -m venv testenv
- call testenv\Scripts\activate
- pip install -r requirements.txt # General dependencies, documentation, and examples.
-
-will create and use a new virtual environment, which is indicated by the command prompt changing.
-
-Setting up CLANG
-~~~~~~~~~~~~~~~~
-
-If you don't have libclang already in your system, you can download from the Qt servers,
-for example, ``libclang-release_100-based-windows-vs2019_64.7z``.
-
-Extract the files, and leave it on any desired path, for example, ``c:``, and then set these two
-required environment variables::
-
- set LLVM_INSTALL_DIR=c:\libclang
- set PATH=C:\libclang\bin;%PATH%
-
-Getting PySide
-~~~~~~~~~~~~~~
-
-Cloning the official repository can be done by::
-
- git clone --recursive https://code.qt.io/pyside/pyside-setup
-
-Checking out the version that we want to build, for example, 6.0::
-
- cd pyside-setup && git checkout 6.0
-
-.. note:: Keep in mind you need to use the same version as your Qt installation
-
-Building PySide
-~~~~~~~~~~~~~~~
-
-Check your Qt installation path, to specifically use that version of qmake to build PySide.
-for example, ``E:\Qt\6.0.0\msvc2019_64\bin\qmake.exe``.
-
-Build can take a few minutes, so it is recommended to use more than one CPU core::
-
- python setup.py build --qmake=c:\path\to\qmake.exe --openssl=c:\path\to\openssl\bin --build-tests --ignore-git --parallel=8
-
-Installing PySide
-~~~~~~~~~~~~~~~~~
-
-To install on the current directory, just run::
-
- python setup.py install --qmake=c:\path\to\qmake.exe --openssl=c:\path\to\openssl\bin --build-tests --ignore-git --parallel=8
-
-Test installation
-~~~~~~~~~~~~~~~~~
-
-You can execute one of the examples to verify the process is properly working.
-Remember to properly set the environment variables for Qt and PySide::
-
- python examples/widgets/widgets/tetrix.py
diff --git a/sources/pyside6/doc/gettingstarted.rst b/sources/pyside6/doc/gettingstarted.rst
deleted file mode 100644
index 58a5d646b..000000000
--- a/sources/pyside6/doc/gettingstarted.rst
+++ /dev/null
@@ -1,247 +0,0 @@
-|project| Getting Started
-==========================
-
-.. important:: This page is focused on building |project| **from source**.
- If you just want to install |pymodname|, you need to run: :command:`pip install pyside6`.
-
- For more details, refer to our `Quick Start`_ guide. Additionally, you can check the
- :ref:`FAQ <faq>` related to the project.
-
-.. _Quick Start: quickstart.html
-
-General Requirements
---------------------
-
-The following prerequisites must be installed before you build |project|.
-On **Linux** you might get them with your operating system package manager, on **macOS**
-you might get them with ``brew``, and on **Windows** you can download the installer from each
-website.
-
- * **Python**: 3.6+ `[official Python website] <https://www.python.org/downloads/>`_
- * **Qt:** 6.0+ `[online installer] <https://download.qt.io/official_releases/online_installers/>`_
- * **CMake:** 3.18+ `[official CMake website] <https://cmake.org/download/>`_
- * **Git:** 2.0+. `[official Git website] <https://git-scm.com/downloads>`_
- * **libclang:** The libclang library, recommended: version 10 for 6.0+.
- Prebuilt versions for each OS can be `downloaded here`_.
-
-.. _downloaded here: http://download.qt.io/development_releases/prebuilt/libclang/
-
-Guides per platform
--------------------
-
-You can refer to the following pages for platform specific instructions:
-
-.. raw:: html
-
- <table class="special">
- <colgroup>
- <col style="width: 200px" />
- <col style="width: 200px" />
- <col style="width: 200px" />
- </colgroup>
- <tr>
- <td><a href="gettingstarted-windows.html"><p><strong>Windows</strong></p></a></td>
- <td><a href="gettingstarted-macOS.html"><p><strong>macOS</strong></p></a></td>
- <td><a href="gettingstarted-linux.html"><p><strong>Linux</strong></p></a></td>
- </tr>
- </table>
-
-.. important:: The |project| does not yet support WebAssembly and the mobile operating
- systems (Android or iOS).
-
- Most Linux-based embedded OS provide PySide with their official
- package manager (for example, `Raspbian`_ and `ArchlinuxARM`_).
-
-.. _Raspbian: https://www.raspbian.org/
-.. _ArchlinuxARM: https://archlinuxarm.org/
-
-A normal building command will look like this::
-
- python setup.py install --qmake=/path/to/qmake \
- --ignore-git \
- --debug \
- --build-tests \
- --parallel=8 \
- --verbose-build \
- --module-subset=Core,Gui,Widgets
-
-Which will build and install the project with **debug** symbols, including the **tests**,
-using **ninja** (instead of make), and considering only the **module subset** of
-:mod:`QtCore <PySide6.QtCore>`, :mod:`QtGui <PySide6.QtGui>`, and
-:mod:`QtWidgets <PySide6.QtWidgets`.
-
-Other important options to consider are:
- * ``--cmake``, to specify the path to the cmake binary,
- * ``--reuse-build``, to rebuild only the modified files,
- * ``--openssl=/path/to/openssl/bin``, to use a different path for OpenSSL,
- * ``--standalone``, to copy over the Qt libraries into the final package to make it work on other
- machines,
- * ``--doc-build-online``, to build documentation using the online template.
-
-Testing the installation
-------------------------
-
-Once the installation finishes, you will be able to execute any of our examples::
-
- python examples/widgets/widgets/tetrix.py
-
-Running Tests
--------------
-
-Using the ``--build-tests`` option will enable us to run all the auto tests inside the project::
-
- python testrunner.py test > testlog.txt
-
-.. note:: On Windows, don't forget to have qmake in your path
- (:command:`set PATH=E:\\\Path\\\to\\\Qt\\\6.0.0\\\msvc2019_64\\\bin;%PATH%`)
-
-You can also run a specific test (for example ``qpainter_test``) by running::
-
- ctest -R qpainter_test --verbose
-
-.. _building_documentation:
-
-Building the documentation
---------------------------
-
-Starting from 5.15, there are two options to build the documentation:
-
-1. Building rst-only documentation (no API)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The process of parsing Qt headers to generate the PySide API documentation can take several
-minutes, this means that modifying a specific section of the rst files we currently have, might
-become a hard task.
-
-For this, you can install :command:`sphinx` on a virtual environment, and execute the following command::
-
- python setup.py build_rst_docs
-
-which will generate a ``html/`` directory with the following structure::
-
- html
- └── pyside6
- ├── index.html
- ├── ...
- └── shiboken6
- ├── index.html
- └── ...
-
-so you can open the main page ``html/pyside6/index.html`` on your browser to check the generated
-files.
-
-This is useful when updating the general sections of the documentation, adding tutorials,
-modifying the build instructions, and more.
-
-2. Building the documentation (rst + API)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The documentation is being generated using **qdoc** to get the API information, and also **sphinx**
-for the local Python related notes.
-
-The system required ``libxml2`` and ``libxslt``, also on the Python environment, ``sphinx`` and
-``graphviz`` need to be installed before running the installation process::
-
- pip install graphviz sphinx sphinx_tabs
-
-After installing ``graphviz``, the ``dot`` command needs to be in PATH, otherwise,
-the process will fail. Installing ``graphviz`` system-wide is also an option.
-
-Since the process rely on a Qt installation, you need to specify where the ``qtbase`` directory
-you will use with your ``qmake`` is located::
-
- export QT_SRC_DIR=/path/to/qtbase
-
-Once the build process finishes, you can go to the generated ``*_build/*_release/pyside6``
-directory, and run::
-
- ninja apidoc
-
-.. note:: The :command:`apidoc` make target builds offline documentation in QCH (Qt Creator Help)
- format by default. You can switch to building for the online use with the ``--doc-build-online``
- configure option.
-
-The target executes several steps:
-
-#. The ``qdoc`` tool is run over the Qt source code to produce documentation in WebXML format.
-#. ``shiboken6`` is run to extract the functions for which bindings exist from WebXML and convert it into RST.
-#. ``sphinx`` is run to produce the documentation in HTML format.
-
-Re-running the command will not execute step 1 unless the file
-``qdoc_output/webxml/qtcore-index.webxml`` is removed from the build tree.
-Similarly, step 2 will not be executed unless the file ``rst/PySide6/QtCore/index.rst``
-is removed.
-
-Finally, you will get a ``html`` directory containing all the generated documentation. The offline
-help files, ``PySide.qch`` and ``Shiboken.qch``, can be moved to any directory of your choice. You
-can find ``Shiboken.qch`` in the build directory, ``*_build\*_release\shiboken6\doc\html``.
-
-If you want to temporarily change a ``.rst`` file to examine the impact on
-formatting, you can re-run ``sphinx`` in the ``doc`` directory::
-
- sphinx-build rst html
-
-Viewing offline documentation
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The offline documentation (QCH) can be viewed using the Qt Creator IDE or Qt Assistant, which is
-a standalone application for viewing QCH files.
-
-To view the QCH using Qt Creator, following the instructions outlined in
-`Using Qt Creator Help Mode <https://doc.qt.io/qtcreator/creator-help.html>`_. If you chose to
-use Qt Assistant instead, use the following command to register the QCH file before launching
-Qt Assistant::
-
- assistant -register PySide.qch
-
-.. note:: Qt Assistant renders the QCH content using the QTextBrowser backend, which supports
- a subset of the CSS styles, However, Qt Creator offers an alternative litehtml-based
- backend, which offers better browsing experience. At the moment, this is not the default
- backend, so you have to select the litehtml backend
- explicitly under the ``General`` tab in ``Qt Creator >> Tools >> Options >> Help``.
-
-Using the internal tools
-------------------------
-
-A set of tools can be found under the ``tools/`` directory inside the ``pyside-setup`` repository.
-
-* ``checklibs.py``: Script to analyze dynamic library dependencies of Mach-O binaries.
- To use this utility, just run::
-
- python checklibs.py /path/to/some.app/Contents/MacOS/Some
-
- This script was fetched from this repository_.
-
-* ``create_changelog.py``: Script used to create the CHANGELOG that you can find in the ``dist/``
- directory. Usage::
-
- python create_changelog.py -r 6.0.1 -v v6.0.0..6.0 -t bug-fix
-
-* ``debug_windows.py``: This script can be used to find out why PySide modules
- fail to load with various DLL errors like Missing DLL or Missing symbol in DLL.
-
- You can think of it as a Windows version of :command:`ldd` / ``LD_DEBUG``.
-
- Underneath, it uses the :command:`cdb.exe` command line debugger and the :command:`gflags.exe`
- tool, which are installed with the latest Windows Kit.
-
- The aim is to help developers debug issues that they may encounter using the PySide imports on
- Windows. The user should then provide the generated log file.
-
- Incidentally it can also be used for any Windows executables, not just Python.
- To use it just run::
-
- python debug_windows.py
-
-* ``missing_bindings.py``: This script is used to compare the state of PySide and PyQt
- regarding available modules and classses. This content is displayed in our `wiki page`_,
- and can be used as follows::
-
- python missing_bindings.py --qt-version 6.0.1 -w all
-
-.. note:: The script relies on BeautifulSoup to parse the content and generate a list of the
- missing bindings.
-
-.. _repository: https://github.com/liyanage/macosx-shell-scripts/
-.. _`wiki page`: https://wiki.qt.io/Qt_for_Python_Missing_Bindings
-.. _BeautifulSoup: https://www.crummy.com/software/BeautifulSoup/
diff --git a/sources/pyside6/doc/gettingstarted/index.rst b/sources/pyside6/doc/gettingstarted/index.rst
new file mode 100644
index 000000000..9d36061ad
--- /dev/null
+++ b/sources/pyside6/doc/gettingstarted/index.rst
@@ -0,0 +1,572 @@
+Getting Started
+===============
+
+.. important:: This page is focused on building |project| **from source**.
+ If you just want to install |pymodname|, you need to run: :command:`pip install pyside6`.
+
+ For more details, refer to our :ref:`quick-start` guide. Additionally, you can check the
+ :ref:`FAQ <faq>` related to the project.
+
+.. _Quick Start: quickstart.html
+
+General Requirements
+--------------------
+
+The following prerequisites must be installed before you build |project|.
+On **Linux** you might get them with your operating system package manager, on **macOS**
+you might get them with ``brew``, and on **Windows** you can download the installer from each
+website.
+
+* **Python**: 3.9+ `[official Python website] <https://www.python.org/downloads/>`_
+* **Qt:** 6.4+ `[online installer] <https://download.qt.io/official_releases/online_installers/>`_
+* **CMake:** 3.18+ `[official CMake website] <https://cmake.org/download/>`_
+* **Git:** 2.0+. `[official Git website] <https://git-scm.com/downloads>`_
+* **libclang:** The libclang library, recommended: version 10 for 6.0+.
+ Prebuilt versions for each OS can be `downloaded here`_.
+* Check the `Supported Platforms of Qt`_
+
+.. _downloaded here: https://download.qt.io/development_releases/prebuilt/libclang/
+.. _`Supported Platforms of Qt` : https://doc.qt.io/qt-6/supported-platforms.html
+
+Guides per platform
+-------------------
+
+.. toctree::
+ :maxdepth: 1
+ :hidden:
+
+ linux.rst
+ macOS.rst
+ windows.rst
+ package_details.rst
+ porting_from2.rst
+
+You can refer to the following pages for platform specific instructions:
+
+.. grid:: 1 3 3 3
+ :gutter: 2
+
+ .. grid-item-card::
+ :img-top: ../images/windows.svg
+ :class-item: text-center
+
+ +++
+ .. button-ref:: windows
+ :color: primary
+ :outline:
+ :expand:
+
+ Windows
+
+ .. grid-item-card::
+ :img-top: ../images/macos.svg
+ :class-item: text-center
+
+ +++
+ .. button-ref:: macOS
+ :color: primary
+ :outline:
+ :expand:
+
+ macOS
+
+ .. grid-item-card::
+ :img-top: ../images/linux.svg
+ :class-item: text-center
+
+ +++
+ .. button-ref:: linux
+ :color: primary
+ :outline:
+ :expand:
+
+ Linux
+
+.. important:: |project| does not yet support WebAssembly and the mobile operating systems (Android or iOS).
+ Most Linux-based embedded OS provide PySide with their official
+ package manager (for example, `Raspbian`_ and `ArchlinuxARM`_).
+
+.. _Raspbian: https://www.raspbian.org/
+.. _ArchlinuxARM: https://archlinuxarm.org/
+
+A normal building command will look like this::
+
+ python setup.py install --qtpaths=/path/to/qtpaths \
+ --ignore-git \
+ --debug \
+ --build-tests \
+ --parallel=8 \
+ --verbose-build \
+ --module-subset=Core,Gui,Widgets
+
+Which will build and install the project with **debug** symbols, including the **tests**,
+using **ninja** (instead of make), and considering only the **module subset** of
+:mod:`QtCore <PySide6.QtCore>`, :mod:`QtGui <PySide6.QtGui>`, and
+:mod:`QtWidgets <PySide6.QtWidgets>`.
+
+`CMake Unity Build Mode`_ is used by default for speed-up.
+
+Other important options to consider are:
+ * ``--cmake``, to specify the path to the cmake binary,
+ * ``--reuse-build``, to rebuild only the modified files,
+ * ``--openssl=/path/to/openssl/bin``, to use a different path for OpenSSL,
+ * ``--standalone``, to copy over the Qt libraries into the final package to make it work on other
+ machines,
+ * ``--build-docs``, to enable the documentation build.
+ * ``--doc-build-online``, to build documentation using the online template (by
+ default it uses the offline)
+
+Testing the installation
+------------------------
+
+Once the installation finishes, you will be able to execute any of our examples::
+
+ python examples/widgets/widgets/tetrix.py
+
+Running Tests
+-------------
+
+Using the ``--build-tests`` option will enable us to run all the auto tests inside the project::
+
+ python testrunner.py test > testlog.txt
+
+.. note:: On Windows, don't forget to have qtpaths in your path
+ (:command:`set PATH=C:\\\Path\\\to\\\Qt\\\6.4.0\\\msvc2019_64\\\bin;%PATH%`)
+
+You can also run a specific test (for example ``qpainter_test``) by running::
+
+ ctest -R qpainter_test --verbose
+
+.. _cross_compilation:
+
+Cross Compilation
+-----------------
+
+Starting from 6.3, it is possible to cross-compile Shiboken (module), and
+PySide. This functionality is still in Technical Preview, which means it could
+change in the future releases.
+
+.. important:: The only supported configuration is using a host Linux
+ machine to cross-compile to a Linux target platform.
+
+Cross compiling software is a valid use case that many projects rely on,
+however, it is a complicated process that might fail due to many reasons.
+
+Before starting with the process, it is important to understand the details of
+the build system, and the goal of cross compilation.
+
+In the build process, a ``Host`` is the computer you are currently using to
+compile, and a ``Target`` is your embedded device that you are compiling for.
+
+Qt for Python is being built using setuptools, and relies on a ``setup.py`` file
+that is called recursively to build Shiboken (module),
+Shiboken (generator), and PySide. As the generator is creating
+the wrappers for the bindings, it's not cross compiled
+for the target.
+Only the Shiboken (module) and PySide are cross compiled.
+
+The building process requires a Qt installation, and a Python interpreter
+on both the host, and the target. The used Qt versions on both platforms
+should have the same minor version. That is, Qt 6.3 (host)
+cannot be used with a Qt 6.2 (target), or the other way around.
+
+.. note:: It is recommended to use the same version of Qt on both host and target to avoid possible
+ unconventional errors.
+
+Prerequisites
+~~~~~~~~~~~~~
+
+First and foremost, you need to have access to the target device because you
+need to copy several system files (sysroot). We recommend a Linux OS that has
+the latest Qt versions, like `Manjaro ARM`_ or `Archlinux ARM`_.
+
+* (target) Install Qt 6.3+ on the system using the package manager.
+* (host) Install Qt 6.3+ on the system using the package manager or Qt
+ Installer.
+* (target, host) Install the library and development packages that provide
+ C++ headers, linkers, libraries, and compilers.
+* (target, host) Install Python interpreter v3.7 or later
+* (target, host) Install CMake 3.17+
+
+After installing these prerequisites, copy the ``target`` sysroot to your
+``host`` computer. This process is tricky, because copying system files from
+another computer might cause problems with the symbolic links. Here you
+have two options to achieve that.
+
+Option A: Copying the files
+***************************
+
+Create a directory to copy the sysroot of your target device,
+for example ``rpi-sysroot``, and perform the copy on your host computer:
+
+.. code-block:: bash
+
+ rsync -vR --progress -rl --delete-after --safe-links \
+ USERNAME@TARGET_IP:/{lib,usr,opt/vc/lib} rpi-sysroot/
+
+Ensure to replace ``USERNAME`` and ``TARGET_IP`` with your system appropriate
+values.
+
+Option B: Packaging the file system
+***********************************
+
+Create a package for your sysroot in your target:
+
+.. code-block:: bash
+
+ tar cfJ ~/sysroot.tar.xz /lib /usr /opt/vc/lib
+
+Copy the package from the target to your host:
+
+.. code-block:: bash
+
+ rsync -vR --progress USERNAME@TARGET_IP:sysroot.tar.xz .
+
+Once you have the tar file, unpack it inside a ``rpi-sysroot`` directory.
+
+Fix Symlinks
+************
+
+It is recommended to run the following script to fix
+most of the issues you would find with symbolic links:
+
+.. code-block:: python
+
+ import sys
+ from pathlib import Path
+ import os
+
+ # Take a sysroot directory and turn all the absolute symlinks and turn them into
+ # relative ones such that the sysroot is usable within another system.
+
+ if len(sys.argv) != 2:
+ print(f"Usage is {sys.argv[0]} <sysroot-directory>")
+ sys.exit(-1)
+
+ topdir = Path(sys.argv[1]).absolute()
+
+ def handlelink(filep, subdir):
+ link = filep.readlink()
+ if str(link)[0] != "/":
+ return
+ if link.startswith(topdir):
+ return
+ relpath = os.path.relpath((topdir / link).resolve(), subdir)
+ os.unlink(filep)
+ os.symlink(relpath, filep)
+
+ for f in topdir.glob("**/*"):
+ if f.is_file() and f.is_symlink():
+ handlelink(f, f.parent)
+
+Setting up the toolchain
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+To perform the cross compilation, you need a special set of compilers,
+libraries, and headers, which runs on the host architecture, but generates
+(binaries/executables) for a target architecture.
+For example, from x86_64 to aarch64.
+
+It is recommended to use the official 10.2 `ARM Developer cross compilers`_,
+which you can find on their official website. For this tutorial, we choose
+``aarch64`` target architecture and we will assume that you downloaded the
+`gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu.tar.xz`_ file,
+and unpacked it.
+
+With those compilers, now you need a CMake toolchain file. This is
+a configuration file to set the compilers and sysroot information, together
+with extra options like compilation flags, and other details. You can use the
+following file as an example, but keep in mind they might vary:
+
+.. code-block:: cmake
+
+ # toolchain-aarch64.cmake
+ cmake_minimum_required(VERSION 3.18)
+ include_guard(GLOBAL)
+
+ set(CMAKE_SYSTEM_NAME Linux)
+ set(CMAKE_SYSTEM_PROCESSOR aarch64)
+
+ set(TARGET_SYSROOT /path/to/your/target/sysroot)
+ set(CROSS_COMPILER /path/to/your/crosscompiling/compilers/)
+
+ set(CMAKE_SYSROOT ${TARGET_SYSROOT})
+
+ set(ENV{PKG_CONFIG_PATH} "")
+ set(ENV{PKG_CONFIG_LIBDIR} ${CMAKE_SYSROOT}/usr/lib/pkgconfig:${CMAKE_SYSROOT}/usr/share/pkgconfig)
+ set(ENV{PKG_CONFIG_SYSROOT_DIR} ${CMAKE_SYSROOT})
+
+ set(CMAKE_C_COMPILER ${CROSS_COMPILER}/aarch64-none-linux-gnu-gcc)
+ set(CMAKE_CXX_COMPILER ${CROSS_COMPILER}/aarch64-none-linux-gnu-g++)
+
+ set(QT_COMPILER_FLAGS "-march=armv8-a")
+ set(QT_COMPILER_FLAGS_RELEASE "-O2 -pipe")
+ set(QT_LINKER_FLAGS "-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed")
+
+ set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+ set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+ set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+ set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
+
+ include(CMakeInitializeConfigs)
+
+ function(cmake_initialize_per_config_variable _PREFIX _DOCSTRING)
+ if (_PREFIX MATCHES "CMAKE_(C|CXX|ASM)_FLAGS")
+ set(CMAKE_${CMAKE_MATCH_1}_FLAGS_INIT "${QT_COMPILER_FLAGS}")
+
+ foreach (config DEBUG RELEASE MINSIZEREL RELWITHDEBINFO)
+ if (DEFINED QT_COMPILER_FLAGS_${config})
+ set(CMAKE_${CMAKE_MATCH_1}_FLAGS_${config}_INIT "${QT_COMPILER_FLAGS_${config}}")
+ endif()
+ endforeach()
+ endif()
+
+ if (_PREFIX MATCHES "CMAKE_(SHARED|MODULE|EXE)_LINKER_FLAGS")
+ foreach (config SHARED MODULE EXE)
+ set(CMAKE_${config}_LINKER_FLAGS_INIT "${QT_LINKER_FLAGS}")
+ endforeach()
+ endif()
+
+ _cmake_initialize_per_config_variable(${ARGV})
+ endfunction()
+
+You need to adjust the paths in these two lines::
+
+ set(TARGET_SYSROOT /path/to/your/target/sysroot)
+ set(CROSS_COMPILER /path/to/your/crosscompiling/compilers/)
+
+and replace them with the sysroot directory (the one we called ``rpi-sysroot``),
+and the compilers (the ``gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu/bin`` directory).
+
+
+Cross compiling PySide
+~~~~~~~~~~~~~~~~~~~~~~
+
+After you have installed the prerequisites and copied the necessary files, you
+should have the following:
+
+* The compilers to cross compile (``gcc-argm-10.2-...``),
+* The target sysroot (``rpi-sysroot``),
+* The toolchain cmake file (``toolchain-aarch64.cmake``),
+* The ``pyside-setup`` repository,
+
+An example of the ``setup.py`` invocation might look like the following:
+
+.. code-block:: bash
+
+ python setup.py bdist_wheel \
+ --parallel=8 --ignore-git --reuse-build --standalone --limited-api=yes \
+ --cmake-toolchain-file=/opt/toolchain-aarch64.cmake \
+ --qt-host-path=/opt/Qt/6.3.0/gcc_64 \
+ --plat-name=linux_aarch64
+
+Depending on the target platform, you could use ``linux_armv7``,
+``linux_aarch64``, etc.
+
+For embedded platforms, which typically do not have Qt and its tools fully
+built, the option ``--no-qt-tools`` can be used to prevent the bundling of the
+tools.
+
+If the process succeeds, you will find the target wheels in your ``dist/``
+directory, for example:
+
+.. code-block:: bash
+
+ PySide6-6.3.0-6.3.0-cp36-abi3-manylinux2014_aarch64.whl
+ shiboken6-6.3.0-6.3.0-cp36-abi3-manylinux2014_aarch64.whl
+
+
+Troubleshooting
+***************
+
+* If the auto-detection mechanism fails to find the Python or Qt installations
+ you have in your target device, you can use two additional options::
+
+ --python-target-path=...
+
+ and::
+
+ --qt-target-path=...
+
+* In case the automatic build of the host Shiboken (generator) fails,
+ you can specify the custom path using::
+
+ --shiboken-host-path=...
+
+.. _`Manjaro ARM`: https://manjaro.org/download/#ARM
+.. _`Archlinux ARM`: https://archlinuxarm.org
+.. _`ARM Developer Cross Compilers`: https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads
+.. _`gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu.tar.xz`: https://developer.arm.com/-/media/Files/downloads/gnu-a/10.2-2020.11/binrel/gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu.tar.xz
+
+.. _building_documentation:
+
+Building the documentation
+--------------------------
+
+Starting from 6.3, the documentation is not being built by default.
+When using the second option described in this section, make sure to use the
+``--build-docs`` option.
+
+Install the specific documentation requirements in your Python virtual
+environment::
+
+ pip install -r requirements-doc.txt
+
+You can find the ``requirements-doc.txt`` file in the root of the repository.
+
+Starting from 5.15, there are two options to build the documentation:
+
+1. Building the base documentation (no API)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The process of parsing Qt headers to generate the PySide API documentation can take several
+minutes, this means that modifying a specific section of the documentation we currently have, might
+become a hard task. You may only care about the base documentation, which comprises all the
+documentation except for the API documentation.
+
+To generate this, execute the following command::
+
+ python setup.py build_base_docs
+
+This will generate an ``html/`` directory with the following structure::
+
+ html
+ └── pyside6
+ ├── index.html
+ ├── ...
+ └── shiboken6
+ ├── index.html
+ └── ...
+
+so you can open the main page ``html/pyside6/index.html`` on your browser to check the generated
+files.
+
+This is useful when updating the general sections of the documentation, adding tutorials,
+modifying the build instructions, and more.
+
+.. note:: In case you are interested in only generating the Example Gallery,
+ you would need to run ``python tools/example_gallery/main.py`` to
+ generate the examples ``documentation`` for the gallery. This will
+ also be used internally by the ``build_base_docs`` target
+
+
+2. Building the documentation (Base + API)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The documentation is being generated using **qdoc** to get the API information, and also **sphinx**
+for the local Python related notes.
+
+The system requires the ``libxml2`` and ``libxslt`` libraries.
+
+After installing ``graphviz`` (included in the ``requirements-doc.txt`` file),
+the ``dot`` command needs to be in PATH, otherwise,
+the process will fail. Installing ``graphviz`` system-wide is also an option.
+
+Since the process relies on a Qt installation, you need to specify where the
+``qtbase`` directory of a Qt source tree is located by passing it to
+the command line option ``--qt-src-dir``.
+
+Once the common ``setup.py`` build process finishes (remember to use
+``--build-docs`` to enable the documentation build, and ``--doc-build-online``
+to get the HTML files), you can go to the generated
+``build/<your_env_name>/build/pyside6`` directory, and run::
+
+ ninja apidoc
+
+You can add ``-j X``, to perform the build process in parallel with
+X processes.
+
+.. note:: The :command:`apidoc` make target builds offline documentation in ``QCH``
+ (Qt Compressed Help) format by default. You can switch to building for the
+ online use with the ``--doc-build-online`` configure option.
+
+The target executes several steps:
+
+#. The ``qdoc`` tool is run over the Qt source code to produce documentation in WebXML format.
+#. ``shiboken6`` is run to extract the functions for which bindings exist from WebXML and convert it into RST.
+#. ``sphinx`` is run to produce the documentation in HTML format.
+
+Re-running the command will not execute step 1 unless the file
+``qdoc-output/webxml/qtcore-index.webxml`` is removed from the build tree.
+Similarly, step 2 will not be executed unless the file ``base/PySide6/QtCore/index.rst``
+is removed.
+
+Finally, you will get a ``html`` directory containing all the generated documentation. The offline
+help files, ``PySide.qch`` and ``Shiboken.qch``, can be moved to any directory of your choice. You
+can find ``Shiboken.qch`` in the build directory, ``build/<your_env_name>/build/shiboken6/doc/html``.
+
+If you want to temporarily change a ``.rst`` file to examine the impact on
+formatting, you can re-run ``sphinx`` in the ``doc`` directory::
+
+ sphinx-build base html
+
+Viewing offline documentation
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The offline documentation (QCH) can be viewed using the *Qt Creator* IDE or
+*Qt Assistant*, which is a standalone application for viewing QCH files.
+
+To view the QCH using *Qt Creator*, following the instructions outlined in
+`Using Qt Creator Help Mode <https://doc.qt.io/qtcreator/creator-help.html>`_.
+If you chose to use *Qt Assistant* instead, use the following command to register
+the QCH file before launching *Qt Assistant*::
+
+ assistant -register PySide.qch
+
+Troubleshooting documentation
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The documentation uses intersphinx to link from the PySide to the
+Shiboken documentation. This can fail if
+
+* the default ``QCH`` format is used; in which case the required ``objects.inv``
+ files are not generated. Use ``--doc-build-online``.
+* base and full doc builds are mixed, resulting in wrong values for the
+ intersphinx location in the CMake files. Re-run ``cmake`` to fix this.
+
+Using the internal tools
+------------------------
+
+A set of tools can be found under the ``tools/`` directory inside the ``pyside-setup`` repository.
+
+* ``checklibs.py``: Script to analyze dynamic library dependencies of Mach-O binaries.
+ To use this utility, just run::
+
+ python checklibs.py /path/to/some.app/Contents/MacOS/Some
+
+ This script was fetched from this repository_.
+
+* ``create_changelog.py``: Script used to create the CHANGELOG that you can find in the ``dist/``
+ directory. Usage::
+
+ python create_changelog.py -r 6.0.1 -v v6.0.0..6.0 -t bug-fix
+
+* ``debug_windows.py``: This script can be used to find out why PySide modules
+ fail to load with various DLL errors like Missing DLL or Missing symbol in DLL.
+
+ You can think of it as a Windows version of :command:`ldd` / ``LD_DEBUG``.
+
+ Underneath, it uses the :command:`cdb.exe` command line debugger and the :command:`gflags.exe`
+ tool, which are installed with the latest Windows Kit.
+
+ The aim is to help developers debug issues that they may encounter using the PySide imports on
+ Windows. The user should then provide the generated log file.
+
+ Incidentally it can also be used for any Windows executables, not just Python.
+ To use it just run::
+
+ python debug_windows.py
+
+* ``missing_bindings.py``: This script is used to compare the state of PySide and PyQt
+ regarding available modules and classses. This content is displayed in our `wiki page`_,
+ and can be used as follows::
+
+ python missing_bindings.py --qt-version 6.0.1 -w all
+
+.. note:: The script relies on BeautifulSoup to parse the content and generate a list of the
+ missing bindings.
+
+.. _repository: https://github.com/liyanage/macosx-shell-scripts/
+.. _`wiki page`: https://wiki.qt.io/Qt_for_Python_Missing_Bindings
+.. _BeautifulSoup: https://www.crummy.com/software/BeautifulSoup/
+.. _`CMake Unity Build Mode` : https://cmake.org/cmake/help/latest/prop_tgt/UNITY_BUILD.html
diff --git a/sources/pyside6/doc/gettingstarted/linux.rst b/sources/pyside6/doc/gettingstarted/linux.rst
new file mode 100644
index 000000000..912105ef8
--- /dev/null
+++ b/sources/pyside6/doc/gettingstarted/linux.rst
@@ -0,0 +1,115 @@
+Getting Started on Linux
+==========================
+
+Requirements
+------------
+
+* GCC
+* ``sphinx`` package for the documentation (optional).
+* Depending on your linux distribution, the following dependencies might also be required:
+
+ * ``libgl-dev``, ``python-dev``, and ``python-setuptools``.
+* Check the platform dependencies of `Qt for Linux/X11`_.
+
+Building from source
+--------------------
+
+Creating a virtual environment
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The ``venv`` module allows you to create a local, user-writeable copy of a python environment into
+which arbitrary modules can be installed and which can be removed after use::
+
+ python -m venv testenv
+ source testenv/bin/activate
+
+will create and use a new virtual environment, which is indicated by the command prompt changing.
+
+Setting up CLANG
+~~~~~~~~~~~~~~~~
+
+If you don't have libclang already in your system, you can download from the Qt servers::
+
+ wget https://download.qt.io/development_releases/prebuilt/libclang/libclang-release_140-based-linux-Rhel8.2-gcc9.2-x86_64.7z
+
+Extract the files, and leave it on any desired path, and set the environment
+variable required::
+
+ 7z x libclang-release_140-based-linux-Rhel8.2-gcc9.2-x86_64.7z
+ export LLVM_INSTALL_DIR=$PWD/libclang
+
+Getting the source
+~~~~~~~~~~~~~~~~~~
+
+Cloning the official repository can be done by::
+
+ git clone https://code.qt.io/pyside/pyside-setup
+
+Checking out the version that we want to build, for example 6.5::
+
+ cd pyside-setup && git checkout 6.5
+
+Install the general dependencies::
+
+ pip install -r requirements.txt
+
+.. note:: Keep in mind you need to use the same version as your Qt installation.
+ Additionally, :command:`git checkout -b 6.5 --track origin/6.5` could be a better option
+ in case you want to work on it.
+
+Building and Installing (setuptools)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The ``setuptools`` approach uses the ``setup.py`` file to execute the build,
+install, and packaging steps.
+
+Check your Qt installation path, to specifically use that version of qtpaths to build PySide.
+for example, :command:`/opt/Qt/6.5.0/gcc_64/bin/qtpaths`.
+
+Build can take a few minutes, so it is recommended to use more than one CPU core::
+
+ python setup.py build --qtpaths=/opt/Qt/6.5.0/gcc_64/bin/qtpaths --build-tests --ignore-git --parallel=8
+
+To install on the current directory, just run::
+
+ python setup.py install --qtpaths=/opt/Qt/6.5.0/gcc_64/bin/qtpaths --build-tests --ignore-git --parallel=8
+
+Building and Installing (cmake)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The ``setuptools`` approach includes internal ``CMake`` calls when
+building and installing the project, but a CMake-only approach is only
+recommended for packaging the project for distribution builds.
+
+Assumming that Qt is in PATH, for example, the configure step can be done with::
+
+ cmake -B /path/to/the/build/directory \
+ -S /path/to/the/pyside-setup \
+ -DCMAKE_INSTALL_PREFIX=/where/to/install \
+ -DPython_EXECUTABLE=/path/to/interpreter
+
+.. note:: You can add `-DFORCE_LIMITED_API=yes` in case you want to have a
+ build which will be compatible with Python 3.7+.
+
+and then for building::
+
+ cmake --build /path/to/the/build/directory --parallel X
+
+where `X` is the amount of processes you want to use.
+Finally, the install step can be done with::
+
+ cmake --install /path/to/the/build/directory
+
+.. note:: You can build only pyside6 or only shiboken6 by using
+ the diferent source directories with the option `-S`.
+
+
+Test installation
+~~~~~~~~~~~~~~~~~
+
+You can execute one of the examples to verify the process is properly working.
+Remember to properly set the environment variables for Qt and PySide::
+
+ python examples/widgets/widgets/tetrix.py
+
+.. _`Qt for Linux/X11`: https://doc.qt.io/qt-6/linux.html
diff --git a/sources/pyside6/doc/gettingstarted/macOS.rst b/sources/pyside6/doc/gettingstarted/macOS.rst
new file mode 100644
index 000000000..ff457a4e2
--- /dev/null
+++ b/sources/pyside6/doc/gettingstarted/macOS.rst
@@ -0,0 +1,85 @@
+Getting Started on macOS
+========================
+
+Requirements
+------------
+
+* `XCode`_ 8.2 (macOS 10.11), 8.3.3 (macOS 10.12), 9 (macOS 10.13), 10.1 (macOS 10.14)
+* ``sphinx`` package for the documentation (optional).
+* Depending on your OS, the following dependencies might also be required:
+
+ * ``libgl-dev``, ``python-dev``, and ``python-setuptools``.
+
+* Check the platform dependencies of `Qt for macOS`_.
+
+.. _XCode: https://developer.apple.com/xcode/
+.. _`Qt for macOS`: https://doc.qt.io/qt-6/macos.html
+
+Building from source
+--------------------
+
+Creating a virtual environment
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The ``venv`` module allows you to create a local, user-writeable copy of a python environment into
+which arbitrary modules can be installed and which can be removed after use::
+
+ python -m venv testenv # your interpreter could be called 'python3'
+ source testenv/bin/activate
+
+will create and use a new virtual environment, which is indicated by the command prompt changing.
+
+Setting up CLANG
+~~~~~~~~~~~~~~~~
+
+If you don't have libclang already in your system, you can download from the Qt servers::
+
+ wget https://download.qt.io/development_releases/prebuilt/libclang/libclang-release_140-based-macos-universal.7z
+
+Extract the files, and leave it on any desired path, and set the environment
+variable required::
+
+ 7z x libclang-release_140-based-macos-universal.7z
+ export LLVM_INSTALL_DIR=$PWD/libclang
+
+Getting PySide
+~~~~~~~~~~~~~~
+
+Cloning the official repository can be done by::
+
+ git clone https://code.qt.io/pyside/pyside-setup
+
+Checking out the version that we want to build, for example, 6.5::
+
+ cd pyside-setup && git checkout 6.5
+
+Install the general dependencies::
+
+ pip install -r requirements.txt
+
+.. note:: Keep in mind you need to use the same version as your Qt installation
+
+Building PySide
+~~~~~~~~~~~~~~~
+
+Check your Qt installation path, to specifically use that version of qtpaths to build PySide.
+for example, ``/opt/Qt/6.5.0/gcc_64/bin/qtpaths``.
+
+Build can take a few minutes, so it is recommended to use more than one CPU core::
+
+ python setup.py build --qtpaths=/opt/Qt/6.5.0/gcc_64/bin/qtpaths --build-tests --ignore-git --parallel=8
+
+Installing PySide
+~~~~~~~~~~~~~~~~~
+
+To install on the current directory, just run::
+
+ python setup.py install --qtpaths=/opt/Qt/6.5.0/gcc_64/bin/qtpaths --build-tests --ignore-git --parallel=8
+
+Test installation
+~~~~~~~~~~~~~~~~~
+
+You can execute one of the examples to verify the process is properly working.
+Remember to properly set the environment variables for Qt and PySide::
+
+ python examples/widgets/widgets/tetrix.py
diff --git a/sources/pyside6/doc/gettingstarted/package_details.rst b/sources/pyside6/doc/gettingstarted/package_details.rst
new file mode 100644
index 000000000..113edb686
--- /dev/null
+++ b/sources/pyside6/doc/gettingstarted/package_details.rst
@@ -0,0 +1,75 @@
+.. _package_details:
+
+Package Details
+===============
+
+Having a large project as the Qt Framework available from one simple
+installation line::
+
+ pip install pyside6
+
+is really beneficial,
+but it might be confusing to newcomers.
+
+Besides your IDE, you don't need to install anything else to develop your
+Qt application, because the same command installs many tools
+that will help you design UIs, use QML types, generate
+files automatically, translate applications, etc.
+
+Package Dependencies
+--------------------
+
+.. image:: packages.png
+ :width: 400
+ :alt: Packages structure and dependency
+
+Starting from 6.3.0, the ``pyside6`` package (wheel) is almost empty,
+and only includes references to other packages that are required
+to properly use all the modules.
+This packages are:
+
+* ``pyside6-essentials``, `essential Qt modules <https://pypi.org/project/PySide6-Essentials/>`_,
+* ``pyside6-addons``, `additional Qt modules <https://pypi.org/project/PySide6-Addons/>`_,
+* ``shiboken6``, a utility Python module.
+
+You can verify this by running ``pip list`` to check the installed
+packages in your Python (virtual) environment::
+
+ (env) % pip list
+ Package Version
+ ------------------ -------
+ pip 22.0.4
+ PySide6 6.3.0
+ PySide6-Addons 6.3.0
+ PySide6-Essentials 6.3.0
+ setuptools 58.1.0
+ shiboken6 6.3.0
+
+Both ``pyside6-essentials`` and ``pyside6-addons`` contain Qt binaries
+(``.so``, ``.dll``, or ``.dylib``) that are used by the Python wrappers
+that enable you to use the Qt modules from Python.
+For example, in the ``QtCore`` module, you will find
+on Linux:
+
+* ``PySide6/QtCore.abi3.so``, and
+* ``PySide6/Qt/lib/libQt6Core.so.6``
+
+inside the ``site-packages`` directory of your (virtual) environment.
+The first is the *importable* module which depends on the second file
+which is the original QtCore library.
+
+.. note:: The package ``shiboken6-generator`` is not a dependency,
+ and it's not available on PyPi. The reason, is that it depends on
+ ``libclang``, which is a large library that we don't package, and
+ requires a special configuration for you to use. Check the `Shiboken
+ Documentation`_ for more details.
+
+..
+ Adding the full URL because it's a different sphinx project.
+.. _`Shiboken Documentation`: https://doc.qt.io/qtforpython/shiboken6/gettingstarted.html
+
+Tools Included
+--------------
+
+PySide6 comes bundled with a set of tools that assist in making the development experience with
+PySide6 more efficient. The list of tools can be found :ref:`here <package_tools>`.
diff --git a/sources/pyside6/doc/gettingstarted/packages.png b/sources/pyside6/doc/gettingstarted/packages.png
new file mode 100644
index 000000000..57e7ca47d
--- /dev/null
+++ b/sources/pyside6/doc/gettingstarted/packages.png
Binary files differ
diff --git a/sources/pyside6/doc/gettingstarted/porting_from2.rst b/sources/pyside6/doc/gettingstarted/porting_from2.rst
new file mode 100644
index 000000000..6699f54e0
--- /dev/null
+++ b/sources/pyside6/doc/gettingstarted/porting_from2.rst
@@ -0,0 +1,94 @@
+Porting Applications from PySide2 to PySide6
+============================================
+
+Module Availability
+-------------------
+
+Qt for Python 6.2.0 provides all modules planned for inclusion in Qt 6.
+
+Module-Level Changes
+--------------------
+
+* The modules *QtMacExtras*, *Qt Quick Controls 1*, *QtWinExtras*,
+ *QtXmlPatterns* and *QtX11Extras* have been removed.
+* ``QStateMachine`` and related classes have been extracted to a new
+ *QtStateMachine* module.
+* The modules *QtWebKit* and *QtWebKitWidgets* have been replaced by the new
+ *QtWebEngineCore*, *QtWebEngineQuick* and *QtWebEngineWidgets* modules.
+* ``QXmlReader`` and related classes (*SAX API*) have been removed.
+* The content of the *QtOpenGL* module has been replaced. The class
+ ``QGLWidget`` and related classes (``QGLContext``, ``QGLFunctions``,
+ ``QGLShaderProgram``) have been removed. Parts of the *Open GL*
+ functionality from *QtGui* have been extracted into this module, for example
+ ``QOpenGLBuffer`` and ``QOpenGLShaderProgram``.
+ There is a new module *QtOpenGLWidgets* which contains the class
+ ``QOpenGLWidget``, a replacement for ``QGLWidget``.
+
+As *Open GL* is phasing out,
+`QRhi <https://doc.qt.io/qt-6/topics-graphics.html>`_ should be considered
+for graphics applications.
+
+Imports
+-------
+
+The first thing to do when porting applications is to replace the
+import statements:
+
+.. code-block:: python
+
+ from PySide2.QtWidgets import QApplication
+ from PySide2 import QtCore
+
+needs to be changed to:
+
+.. code-block:: python
+
+ from PySide6.QtWidgets import QApplication
+ from PySide6 import QtCore
+
+
+Some classes are in a different module now, for example
+``QAction`` and ``QShortcut`` have been moved from ``QtWidgets`` to ``QtGui``.
+
+For *Qt Charts* and *Qt Data Visualization*, the additional namespaces have been
+removed. It is now possible to use:
+
+.. code-block:: python
+
+ from PySide6.QtCharts import QChartView
+
+directly.
+
+
+Class/Function Deprecations
+---------------------------
+
+Then, the code base needs to be checked for usage of deprecated API and adapted
+accordingly. For example:
+
+* The High DPI scaling attributes ``Qt.AA_EnableHighDpiScaling``,
+ ``Qt.AA_DisableHighDpiScaling`` and ``Qt.AA_UseHighDpiPixmaps`` are
+ deprecated. High DPI is by default enabled in Qt 6 and cannot be turned off.
+* ``QDesktopWidget`` has been removed. ``QScreen`` should be used instead,
+ which can be retrieved using ``QWidget.screen()``,
+ ``QGuiApplication.primaryScreen()`` or ``QGuiApplication.screens()``.
+* ``QFontMetrics.width()`` has been renamed to ``horizontalAdvance()``.
+* ``QMouseEvent.pos()`` and ``QMouseEvent.globalPos()`` returning a ``QPoint``
+ as well as ``QMouseEvent.x()`` and ``QMouseEvent.y()`` returning ``int``
+ are now deprecated. ``QMouseEvent.position()`` and
+ ``QMouseEvent.globalPosition()`` returning a ``QPointF`` should be used
+ instead.
+* ``Qt.MidButton`` has been renamed to ``Qt.MiddleButton``.
+* ``QOpenGLVersionFunctionsFactory.get()`` instead of
+ ``QOpenGLContext.versionFunctions()`` should be used to obtain
+ *Open GL* functions.
+* ``QRegExp`` has been replaced by ``QRegularExpression``.
+* ``QWidget.mapToGlobal()`` and ``QWidget.mapFromGlobal()`` now also accept
+ and return ``QPointF``.
+* Functions named ``exec_`` (classes ``QCoreApplication``, ``QDialog``,
+ ``QEventLoop``) have been renamed to ``exec`` which became possible
+ in Python 3.
+
+More information can be found in the
+`Porting to Qt 6 <https://doc.qt.io/qt-6/portingguide.html>`_ Guide
+and the `Qt 6.2 Documentation <https://doc.qt.io/qt-6/index.html>`_ .
diff --git a/sources/pyside6/doc/gettingstarted/windows.rst b/sources/pyside6/doc/gettingstarted/windows.rst
new file mode 100644
index 000000000..f688acd90
--- /dev/null
+++ b/sources/pyside6/doc/gettingstarted/windows.rst
@@ -0,0 +1,110 @@
+Getting Started on Windows
+==========================
+
+The Qt library has to be built with the same version of MSVC as Python and PySide, this can be
+selected when using the online installer.
+
+Requirements
+------------
+
+* `MSVC2022`_ or (MSVC2019) for Python 3 on Windows,
+* `OpenSSL`_ (optional for SSL support, Qt must have been configured using the same SSL library).
+* ``sphinx`` package for the documentation (optional).
+* Check the platform dependencies of `Qt for Windows`_.
+
+.. note:: The Python provided by the Microsoft Store is not compatible with PySide. Please
+ use https://www.python.org/downloads/ to get a Python Interpreter.
+
+.. _MSVC2022: https://visualstudio.microsoft.com/downloads/
+.. _OpenSSL: https://sourceforge.net/projects/openssl/
+.. _`Qt for Windows`: https://doc.qt.io/qt-6/windows.html
+
+Building from source on Windows 10
+----------------------------------
+
+Creating a virtual environment
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The ``venv`` module allows you to create a local, user-writeable copy of a python environment into
+which arbitrary modules can be installed and which can be removed after use::
+
+ python -m venv testenv
+ call testenv\Scripts\activate
+
+will create and use a new virtual environment, which is indicated by the command prompt changing.
+
+Setting up CLANG
+~~~~~~~~~~~~~~~~
+
+libclang can be downloaded from the
+`Qt servers <https://download.qt.io/development_releases/prebuilt/libclang>`_.
+for example, ``libclang-release_140-based-windows-vs2019_64.7z``.
+
+Note that from version 12 onwards, the prebuilt Windows binaries from
+`LLVM <https://www.llvm.org>`_ no longer contain CMake configuration files; so
+they can no longer be used.
+
+Extract the files, and leave it on any desired path, for example, ``c:``,
+and set the environment variable required::
+
+ set LLVM_INSTALL_DIR=c:\libclang
+ set PATH=C:\libclang\bin;%PATH%
+
+Getting PySide
+~~~~~~~~~~~~~~
+
+Cloning the official repository can be done by::
+
+ git clone https://code.qt.io/pyside/pyside-setup
+
+Checking out the version that we want to build, for example, 6.5::
+
+ cd pyside-setup && git checkout 6.5
+
+Install the general dependencies::
+
+ pip install -r requirements.txt
+
+.. note:: Keep in mind you need to use the same version as your Qt installation
+
+Building PySide
+~~~~~~~~~~~~~~~
+
+Check your Qt installation path, to specifically use that version of qtpaths to build PySide.
+for example, ``C:\Qt\6.5.0\msvc2019_64\bin\qtpaths.exe``.
+
+Build can take a few minutes, so it is recommended to use more than one CPU core::
+
+ python setup.py build --qtpaths=c:\path\to\qtpaths.exe --openssl=c:\path\to\openssl\bin --build-tests --ignore-git --parallel=8
+
+.. _creating_windows_debug_builds:
+
+Creating Debug Builds
+~~~~~~~~~~~~~~~~~~~~~
+
+* Choose *Custom Installation* when installing Python and tick the options for
+ debug binaries and libraries
+
+* Use ``venv`` to create a virtual environment and pass the debug binary::
+
+ python_d.exe -m venv testenv_d
+
+* Use ``python_d.exe`` to invoke ``setup.py``
+
+.. note:: Make sure you add the ``--debug`` option to the ``python setup.py install`` to produce a debug build
+
+
+Installing PySide
+~~~~~~~~~~~~~~~~~
+
+To install on the current directory, just run::
+
+ python setup.py install --qtpaths=c:\path\to\qtpaths.exe --openssl=c:\path\to\openssl\bin --build-tests --ignore-git --parallel=8
+
+Test installation
+~~~~~~~~~~~~~~~~~
+
+You can execute one of the examples to verify the process is properly working.
+Remember to properly set the environment variables for Qt and PySide::
+
+ python examples/widgets/widgets/tetrix.py
diff --git a/sources/pyside6/doc/images/Commercial.svg b/sources/pyside6/doc/images/Commercial.svg
new file mode 100644
index 000000000..f37cce629
--- /dev/null
+++ b/sources/pyside6/doc/images/Commercial.svg
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 26.3.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ viewBox="0 0 75 75" style="enable-background:new 0 0 75 75;" xml:space="preserve">
+<style type="text/css">
+ .st0{fill-rule:evenodd;clip-rule:evenodd;fill:url(#handshake_00000120533523703459691090000008987813838278108073_);}
+</style>
+<g id="Icons">
+ <g id="Icon_Partner_75">
+ <g id="Icons_00000013163458512384628070000011202706081841226428_">
+ <g id="Icon_Partner_75_00000024708088633722110760000017651124705385698191_">
+
+ <linearGradient id="handshake_00000144337817784615937160000016289583607924598409_" gradientUnits="userSpaceOnUse" x1="-263.8588" y1="427.9277" x2="-265.086" y2="429.2586" gradientTransform="matrix(75 -2.450961e-05 -2.450747e-05 -74.9934 19864.2129 32166.1777)">
+ <stop offset="0" style="stop-color:#6FFE80"/>
+ <stop offset="0.3726" style="stop-color:#43CE58"/>
+ <stop offset="1" style="stop-color:#425FCF"/>
+ </linearGradient>
+
+ <path id="handshake" style="fill-rule:evenodd;clip-rule:evenodd;fill:url(#handshake_00000144337817784615937160000016289583607924598409_);" d="
+ M59.3,50c1.9,1.9,1.9,5.1,0,7.1c-0.6,0.6-1.4,1.1-2.2,1.3l0.5,0.5c1.9,1.9,1.9,5.1,0,7.1c-1.5,1.5-3.8,1.9-5.7,1
+ c-0.2,1-0.7,1.9-1.4,2.6c-1.5,1.5-3.9,1.9-5.7,1c-0.2,1-0.7,1.9-1.4,2.6c-1,1-2.3,1.5-3.5,1.5c-1.3,0-2.6-0.5-3.5-1.5L15,51.7
+ c-3.8-3.8-4.6-8.5-5.3-12.3c-0.5-2.7-0.9-5.1-2.2-6.5c-0.5-0.5-0.5-1.3,0-1.8c0.5-0.5,1.3-0.5,1.8,0c1.9,1.9,2.4,4.8,2.9,7.8
+ c0.6,3.6,1.3,7.7,4.6,10.9L38,71.2c1,1,2.6,1,3.5,0c0.5-0.5,0.7-1.1,0.7-1.8c0-0.7-0.3-1.3-0.7-1.8L30.1,56.2
+ c-0.5-0.5-0.5-1.3,0-1.8c0.5-0.5,1.3-0.5,1.8,0l11.5,11.5h0l1.8,1.8c0.9,0.9,2.6,0.9,3.5,0c1-1,1-2.6,0-3.5L34.5,50
+ c-0.5-0.5-0.5-1.3,0-1.8c0.5-0.5,1.3-0.5,1.8,0l15.9,15.9c1,1,2.6,1,3.5,0c1-1,1-2.6,0-3.5L38.9,43.8c-0.5-0.5-0.5-1.3,0-1.8
+ c0.5-0.5,1.3-0.5,1.8,0L54,55.3c1,1,2.6,1,3.5,0c1-1,1-2.6,0-3.5L44.2,38.5c-0.5-0.5-0.5-1.3,0-1.8c0.5-0.5,1.3-0.5,1.8,0
+ L59.3,50L59.3,50z M66.3,26.2c-2,2-2.7,5.3-3.4,8.5c-0.6,2.8-1.2,5.8-2.7,7.3l-1.8,1.8c-0.5,0.5-0.5,1.3,0,1.8
+ c0.2,0.2,0.6,0.4,0.9,0.4c0.3,0,0.6-0.1,0.9-0.4l1.8-1.8c2-2,2.7-5.3,3.4-8.5c0.6-2.8,1.2-5.8,2.7-7.3c0.5-0.5,0.5-1.3,0-1.8
+ S66.8,25.7,66.3,26.2L66.3,26.2z M19.6,34.1c0,0.7,0.3,1.3,0.7,1.8l0.9,0.9c1.2,1.2,2.7,1.8,4.4,1.8s3.2-0.6,4.4-1.8l6.2-6.2
+ c2.5,2.1,5.5,3.2,8.8,3.2h0c3.7,0,7.1-1.4,9.7-4c0.5-0.5,0.5-1.3,0-1.8c-0.5-0.5-1.3-0.5-1.8,0c-2.1,2.1-5,3.3-8,3.3h0
+ c-3,0-5.8-1.2-8-3.3c-0.5-0.5-1.3-0.5-1.8,0L28.3,35c-1.4,1.4-3.9,1.4-5.3,0l-0.9-0.9l15-15c1.4-1.4,2.7-1.4,4.4-1.4
+ c1.8,0,4.1,0,6.2-2.1l3.5-3.5c0.5-0.5,0.5-1.3,0-1.8c-0.5-0.5-1.3-0.5-1.8,0L46,13.7c-1.4,1.4-2.7,1.4-4.4,1.4
+ c-1.8,0-4.1,0-6.2,2.1l-15,15C19.9,32.8,19.6,33.4,19.6,34.1L19.6,34.1z M23,17.3l3.5,3.5c0.2,0.2,0.6,0.4,0.9,0.4
+ c0.3,0,0.6-0.1,0.9-0.4c0.5-0.5,0.5-1.3,0-1.8l-3.5-3.5c-0.5-0.5-1.3-0.5-1.8,0C22.5,16,22.5,16.8,23,17.3L23,17.3z M21.6,11.4
+ l-7.5-7.5c-0.5-0.5-1.3-0.5-1.8,0s-0.5,1.3,0,1.8l6.6,6.6L2.1,29.1c-0.5,0.5-0.5,1.3,0,1.8c0.2,0.2,0.6,0.4,0.9,0.4
+ s0.6-0.1,0.9-0.4l17.7-17.7C22.1,12.6,22.1,11.9,21.6,11.4L21.6,11.4z M72.9,24.8L55.3,7.3l4.1-4.1c0.5-0.5,0.5-1.3,0-1.8
+ s-1.3-0.5-1.8,0l-5,5c-0.5,0.5-0.5,1.3,0,1.8l18.4,18.4c0.2,0.2,0.6,0.4,0.9,0.4c0.3,0,0.6-0.1,0.9-0.4
+ C73.4,26.1,73.4,25.3,72.9,24.8L72.9,24.8z M30.4,71.9c-0.7,0.4-1.9,0.4-3-0.7c-1.1-1.1-1.1-2.3-0.7-2.9
+ c0.3-0.5,0.2-1.2-0.3-1.6c-0.5-0.4-1.2-0.4-1.7,0.1c-1,1-2.6,1-3.5,0c-1-1-1-2.6,0-3.5c0.2-0.2,0.4-0.6,0.4-0.9
+ s-0.1-0.6-0.4-0.9c-0.5-0.5-1.3-0.5-1.8,0l-0.9,0.9c-1,1-2.6,1-3.5,0c-1-1-1-2.6,0-3.5l0.9-0.9c0.4-0.4,0.5-1.1,0.1-1.6
+ c-0.4-0.5-1.1-0.6-1.6-0.3c-0.7,0.4-1.9,0.3-2.9-0.7c-1.1-1.1-1.1-2.3-0.7-2.8c0.4-0.6,0.2-1.3-0.3-1.7
+ c-0.6-0.4-1.3-0.2-1.7,0.3c-1,1.5-1,4,1,6c0.8,0.8,1.7,1.3,2.5,1.5c-0.3,0.6-0.4,1.3-0.4,2c0,1.3,0.5,2.6,1.5,3.5
+ c1.3,1.3,3.1,1.7,4.7,1.3c0.1,1.1,0.6,2.2,1.4,3.1c1.2,1.2,3,1.7,4.6,1.4c0.2,1,0.7,2.1,1.6,3.1c1.2,1.2,2.5,1.6,3.7,1.6
+ c0.8,0,1.5-0.2,2.1-0.5c0.6-0.3,0.8-1.1,0.5-1.7C31.8,71.8,31,71.5,30.4,71.9L30.4,71.9z"/>
+ </g>
+ </g>
+ </g>
+</g>
+</svg>
diff --git a/sources/pyside6/doc/images/Development.svg b/sources/pyside6/doc/images/Development.svg
new file mode 100644
index 000000000..2149ee8a0
--- /dev/null
+++ b/sources/pyside6/doc/images/Development.svg
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="41px" height="38px" viewBox="0 0 41 38" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!-- Generator: Sketch 44.1 (41455) - http://www.bohemiancoding.com/sketch -->
+ <title>globe-share</title>
+ <desc>Created with Sketch.</desc>
+ <defs>
+ <linearGradient x1="100%" y1="100%" x2="-22.8515625%" y2="-33.2356771%" id="linearGradient-1">
+ <stop stop-color="#6FFF80" offset="0%"></stop>
+ <stop stop-color="#43CE57" offset="37.2587344%"></stop>
+ <stop stop-color="#425FD0" offset="100%"></stop>
+ </linearGradient>
+ </defs>
+ <g id="Mainpage" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+ <g id="Mainpage_Layout_V4_Megamenu" transform="translate(-831.000000, -3529.000000)" fill="url(#linearGradient-1)">
+ <g id="Content" transform="translate(-44.000000, 1530.000000)">
+ <g id="Deliver" transform="translate(62.000000, 1032.000000)">
+ <g id="Product" transform="translate(776.000000, 967.000000)">
+ <g id="Auto" transform="translate(36.420728, 0.000000)">
+ <path d="M10.8786296,24.4285714 L14.7525939,24.4285714 C15.675451,27.47875 17.4736653,29.6847857 18.8301296,31.0052857 C15.2113082,30.29075 12.2371296,27.7725714 10.8786296,24.4285714 L10.8786296,24.4285714 Z M18.8301296,9.709 C17.4736653,11.0295 15.675451,13.2355357 14.7525939,16.2857143 L10.8786296,16.2857143 C12.2371296,12.9417143 15.2113082,10.4235357 18.8301296,9.709 L18.8301296,9.709 Z M30.994201,16.2857143 L27.1202368,16.2857143 C26.1973796,13.2355357 24.3984868,11.0295 23.0420225,9.709 C26.6615225,10.4235357 29.6350225,12.9417143 30.994201,16.2857143 L30.994201,16.2857143 Z M23.0420225,31.0052857 C24.3984868,29.6847857 26.1973796,27.47875 27.1202368,24.4285714 L30.994201,24.4285714 C29.635701,27.7725714 26.6615225,30.29075 23.0420225,31.0052857 L23.0420225,31.0052857 Z M20.2578439,24.4285714 L20.2578439,30.4678571 C19.076451,29.3991071 17.2063082,27.3471071 16.2006653,24.4285714 L20.2578439,24.4285714 Z M20.2578439,10.2464286 L20.2578439,16.2857143 L16.2006653,16.2857143 C17.2063082,13.3671786 19.076451,11.3151786 20.2578439,10.2464286 L20.2578439,10.2464286 Z M21.6149868,16.2857143 L21.6149868,10.2464286 C22.7963796,11.3151786 24.6665225,13.3671786 25.6714868,16.2857143 L21.6149868,16.2857143 Z M21.6149868,30.4678571 L21.6149868,24.4285714 L25.6714868,24.4285714 C24.6665225,27.3471071 22.7963796,29.3991071 21.6149868,30.4678571 L21.6149868,30.4678571 Z M26.3649868,20.3571429 C26.3649868,21.32275 26.2475939,22.2245714 26.058951,23.0714286 L21.6149868,23.0714286 L21.6149868,17.6428571 L26.058951,17.6428571 C26.2475939,18.4897143 26.3649868,19.3915357 26.3649868,20.3571429 L26.3649868,20.3571429 Z M31.7935582,20.3571429 C31.7935582,21.2956071 31.6605582,22.2021786 31.435951,23.0714286 L27.460201,23.0714286 C27.626451,22.2218571 27.7221296,21.3173214 27.7221296,20.3571429 C27.7221296,19.3969643 27.626451,18.4924286 27.460201,17.6428571 L31.435951,17.6428571 C31.6605582,18.5121071 31.7935582,19.4186786 31.7935582,20.3571429 L31.7935582,20.3571429 Z M15.5078439,20.3571429 C15.5078439,19.3915357 15.6252368,18.4897143 15.8138796,17.6428571 L20.2578439,17.6428571 L20.2578439,23.0714286 L15.8138796,23.0714286 C15.6252368,22.2245714 15.5078439,21.32275 15.5078439,20.3571429 L15.5078439,20.3571429 Z M10.0792725,20.3571429 C10.0792725,19.4186786 10.2115939,18.5121071 10.436201,17.6428571 L14.4126296,17.6428571 C14.245701,18.4924286 14.150701,19.3969643 14.150701,20.3571429 C14.150701,21.3173214 14.245701,22.2218571 14.4126296,23.0714286 L10.436201,23.0714286 C10.2115939,22.2021786 10.0792725,21.2956071 10.0792725,20.3571429 L10.0792725,20.3571429 Z M20.9377725,32.5714286 C26.3982368,32.57075 31.0308439,28.9682143 32.5895225,24.016 C32.590201,24.0139643 32.5908796,24.0126071 32.5915582,24.01125 C32.9539153,22.857 33.150701,21.6294643 33.150701,20.3571429 C33.150701,19.0848214 32.9539153,17.8572857 32.5915582,16.7030357 C32.5908796,16.7016786 32.590201,16.7003214 32.5895225,16.6982857 C31.0308439,11.7460714 26.3968796,8.14285714 20.9364153,8.14285714 C15.4752725,8.14285714 10.8413082,11.7460714 9.28262962,16.6989643 L9.28195105,16.7023571 C8.91891533,17.8566071 8.72212962,19.0841429 8.72212962,20.3571429 C8.72212962,21.6301429 8.91891533,22.8576786 9.28195105,24.0119286 L9.28262962,24.0153214 C10.8413082,28.9675357 15.4745939,32.57075 20.9343796,32.5714286 L20.9350582,32.5714286 L20.9357368,32.5714286 L20.9357368,32.5714286 L20.9364153,32.5714286 L20.9370939,32.5714286 L20.9377725,32.5714286 Z M31.7935582,36.6428571 C31.0450939,36.6428571 30.4364153,36.0341786 30.4364153,35.2857143 C30.4364153,34.53725 31.0450939,33.9285714 31.7935582,33.9285714 C32.5413439,33.9285714 33.150701,34.53725 33.150701,35.2857143 C33.150701,36.0341786 32.5413439,36.6428571 31.7935582,36.6428571 L31.7935582,36.6428571 Z M31.7935582,32.5714286 C31.4142368,32.5714286 31.0539153,32.6508214 30.7261653,32.7912857 L29.597701,31.4551786 C29.3561296,31.1688214 28.927951,31.1315 28.6415939,31.3744286 C28.3545582,31.616 28.3192725,32.0441786 28.5601653,32.3305357 L29.6574153,33.6306786 C29.3004868,34.0900714 29.0792725,34.6600714 29.0792725,35.2857143 C29.0792725,36.7826429 30.2966296,38 31.7935582,38 C33.2904868,38 34.5078439,36.7826429 34.5078439,35.2857143 C34.5078439,33.7887857 33.2904868,32.5714286 31.7935582,32.5714286 L31.7935582,32.5714286 Z M10.0792725,36.6428571 C9.33080819,36.6428571 8.72212962,36.0341786 8.72212962,35.2857143 C8.72212962,34.53725 9.33080819,33.9285714 10.0792725,33.9285714 C10.8277368,33.9285714 11.4364153,34.53725 11.4364153,35.2857143 C11.4364153,36.0341786 10.8277368,36.6428571 10.0792725,36.6428571 L10.0792725,36.6428571 Z M12.3022725,31.3846071 L11.096451,32.7729643 C10.7815939,32.6453929 10.4395939,32.5714286 10.0792725,32.5714286 C8.58234391,32.5714286 7.36498676,33.7887857 7.36498676,35.2857143 C7.36498676,36.7826429 8.58234391,38 10.0792725,38 C11.5755225,38 12.7935582,36.7826429 12.7935582,35.2857143 C12.7935582,34.64175 12.5587725,34.0575 12.1828439,33.592 L13.3269153,32.2742143 C13.5725582,31.99125 13.542701,31.5623929 13.2590582,31.31675 C12.9760939,31.0711071 12.5472368,31.1009643 12.3022725,31.3846071 L12.3022725,31.3846071 Z M38.5792725,16.2857143 C37.8308082,16.2857143 37.2221296,15.6770357 37.2221296,14.9285714 C37.2221296,14.1801071 37.8308082,13.5714286 38.5792725,13.5714286 C39.3270582,13.5714286 39.9364153,14.1801071 39.9364153,14.9285714 C39.9364153,15.6770357 39.3270582,16.2857143 38.5792725,16.2857143 L38.5792725,16.2857143 Z M38.5792725,12.2142857 C37.0823439,12.2142857 35.8649868,13.4316429 35.8649868,14.9285714 C35.8649868,15.0133929 35.881951,15.0941429 35.8900939,15.1776071 L34.5885939,15.6804286 C34.238451,15.8161429 34.0647368,16.2090357 34.200451,16.5585 C34.3042725,16.8272143 34.5607725,16.9927857 34.8328796,16.9927857 C34.9143082,16.9927857 34.9970939,16.9778571 35.0778439,16.9466429 L36.3399868,16.4580714 C36.8292368,17.1726071 37.6496296,17.6428571 38.5792725,17.6428571 C40.076201,17.6428571 41.2935582,16.4255 41.2935582,14.9285714 C41.2935582,13.4316429 40.076201,12.2142857 38.5792725,12.2142857 L38.5792725,12.2142857 Z M3.29355819,16.2857143 C2.54509391,16.2857143 1.93641533,15.6770357 1.93641533,14.9285714 C1.93641533,14.1801071 2.54509391,13.5714286 3.29355819,13.5714286 C4.04202248,13.5714286 4.65070105,14.1801071 4.65070105,14.9285714 C4.65070105,15.6770357 4.04202248,16.2857143 3.29355819,16.2857143 L3.29355819,16.2857143 Z M7.71173676,16.5781786 C7.84745105,16.2287143 7.67441533,15.8358214 7.32495105,15.7001071 L5.98273676,15.1782857 C5.99020105,15.0948214 6.00784391,15.0140714 6.00784391,14.9285714 C6.00784391,13.4316429 4.78980819,12.2142857 3.29355819,12.2142857 C1.79662962,12.2142857 0.579272478,13.4316429 0.579272478,14.9285714 C0.579272478,16.4255 1.79662962,17.6428571 3.29355819,17.6428571 C4.22184391,17.6428571 5.04223676,17.1732857 5.53216533,16.4594286 L6.83366533,16.9649643 C6.91441533,16.9961786 6.99720105,17.0111071 7.07930819,17.0111071 C7.35073676,17.0111071 7.60723676,16.8468929 7.71173676,16.5781786 L7.71173676,16.5781786 Z M20.9364153,1.35714286 C21.684201,1.35714286 22.2935582,1.96582143 22.2935582,2.71428571 C22.2935582,3.46275 21.684201,4.07142857 20.9364153,4.07142857 C20.187951,4.07142857 19.5792725,3.46275 19.5792725,2.71428571 C19.5792725,1.96582143 20.187951,1.35714286 20.9364153,1.35714286 L20.9364153,1.35714286 Z M20.2578439,5.33221429 L20.2578439,6.44642857 C20.2578439,6.821 20.5618439,7.125 20.9364153,7.125 C21.3109868,7.125 21.6149868,6.821 21.6149868,6.44642857 L21.6149868,5.33221429 C22.7821296,5.02889286 23.650701,3.97507143 23.650701,2.71428571 C23.650701,1.21735714 22.4333439,0 20.9364153,0 C19.4394868,0 18.2221296,1.21735714 18.2221296,2.71428571 C18.2221296,3.97507143 19.090701,5.02889286 20.2578439,5.33221429 L20.2578439,5.33221429 Z" id="globe-share"></path>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+</svg>
+
diff --git a/sources/pyside6/doc/images/Examples.svg b/sources/pyside6/doc/images/Examples.svg
index 98116957e..a506e7798 100644
--- a/sources/pyside6/doc/images/Examples.svg
+++ b/sources/pyside6/doc/images/Examples.svg
@@ -1,24 +1,34 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg width="49px" height="48px" viewBox="0 0 49 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
- <!-- Generator: Sketch 44.1 (41455) - http://www.bohemiancoding.com/sketch -->
- <title>web-development</title>
- <desc>Created with Sketch.</desc>
- <defs>
- <linearGradient x1="100%" y1="100%" x2="-22.8515625%" y2="-33.2356771%" id="linearGradient-1">
- <stop stop-color="#6FFF80" offset="0%"></stop>
- <stop stop-color="#43CE57" offset="37.2587344%"></stop>
- <stop stop-color="#425FD0" offset="100%"></stop>
- </linearGradient>
- </defs>
- <g id="Mainpage" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
- <g id="Mainpage_Layout_V4_Megamenu" transform="translate(-1084.000000, -1756.000000)" fill="url(#linearGradient-1)">
- <g id="Content" transform="translate(-44.000000, 1530.000000)">
- <g id="WhatQtis" transform="translate(194.000000, 0.000000)">
- <g id="Block3_Hover" transform="translate(726.316067, 114.000000)">
- <path d="M214.4,115.2 C215.2816,115.2 216,115.9176 216,116.8 C216,117.6824 215.2816,118.4 214.4,118.4 C213.5176,118.4 212.8,117.6824 212.8,116.8 C212.8,115.9176 213.5176,115.2 214.4,115.2 L214.4,115.2 Z M217.6,116.8 C217.6,117.6824 218.3176,118.4 219.2,118.4 C220.0816,118.4 220.8,117.6824 220.8,116.8 C220.8,115.9176 220.0816,115.2 219.2,115.2 C218.3176,115.2 217.6,115.9176 217.6,116.8 L217.6,116.8 Z M222.4,116.8 C222.4,117.6824 223.1176,118.4 224,118.4 C224.8816,118.4 225.6,117.6824 225.6,116.8 C225.6,115.9176 224.8816,115.2 224,115.2 C223.1176,115.2 222.4,115.9176 222.4,116.8 L222.4,116.8 Z M215.2,128 L216.8,128 C217.2424,128 217.6,127.6416 217.6,127.2 C217.6,126.7584 217.2424,126.4 216.8,126.4 L215.2,126.4 C214.7576,126.4 214.4,126.7584 214.4,127.2 C214.4,127.6416 214.7576,128 215.2,128 L215.2,128 Z M215.2,131.2 L216.8,131.2 C217.2424,131.2 217.6,130.8416 217.6,130.4 C217.6,129.9584 217.2424,129.6 216.8,129.6 L215.2,129.6 C214.7576,129.6 214.4,129.9584 214.4,130.4 C214.4,130.8416 214.7576,131.2 215.2,131.2 L215.2,131.2 Z M215.2,134.4 L216.8,134.4 C217.2424,134.4 217.6,134.0416 217.6,133.6 C217.6,133.1584 217.2424,132.8 216.8,132.8 L215.2,132.8 C214.7576,132.8 214.4,133.1584 214.4,133.6 C214.4,134.0416 214.7576,134.4 215.2,134.4 L215.2,134.4 Z M215.2,137.6 L216.8,137.6 C217.2424,137.6 217.6,137.2416 217.6,136.8 C217.6,136.3584 217.2424,136 216.8,136 L215.2,136 C214.7576,136 214.4,136.3584 214.4,136.8 C214.4,137.2416 214.7576,137.6 215.2,137.6 L215.2,137.6 Z M215.2,140.8 L216.8,140.8 C217.2424,140.8 217.6,140.4416 217.6,140 C217.6,139.5584 217.2424,139.2 216.8,139.2 L215.2,139.2 C214.7576,139.2 214.4,139.5584 214.4,140 C214.4,140.4416 214.7576,140.8 215.2,140.8 L215.2,140.8 Z M215.2,144 L216.8,144 C217.2424,144 217.6,143.6416 217.6,143.2 C217.6,142.7584 217.2424,142.4 216.8,142.4 L215.2,142.4 C214.7576,142.4 214.4,142.7584 214.4,143.2 C214.4,143.6416 214.7576,144 215.2,144 L215.2,144 Z M215.2,147.2 L216.8,147.2 C217.2424,147.2 217.6,146.8416 217.6,146.4 C217.6,145.9584 217.2424,145.6 216.8,145.6 L215.2,145.6 C214.7576,145.6 214.4,145.9584 214.4,146.4 C214.4,146.8416 214.7576,147.2 215.2,147.2 L215.2,147.2 Z M215.2,150.4 L216.8,150.4 C217.2424,150.4 217.6,150.0416 217.6,149.6 C217.6,149.1584 217.2424,148.8 216.8,148.8 L215.2,148.8 C214.7576,148.8 214.4,149.1584 214.4,149.6 C214.4,150.0416 214.7576,150.4 215.2,150.4 L215.2,150.4 Z M215.2,153.6 L216.8,153.6 C217.2424,153.6 217.6,153.2416 217.6,152.8 C217.6,152.3584 217.2424,152 216.8,152 L215.2,152 C214.7576,152 214.4,152.3584 214.4,152.8 C214.4,153.2416 214.7576,153.6 215.2,153.6 L215.2,153.6 Z M242.4,128 C242.8424,128 243.2,127.6416 243.2,127.2 C243.2,126.7584 242.8424,126.4 242.4,126.4 L239.2,126.4 C238.7576,126.4 238.4,126.7584 238.4,127.2 C238.4,127.6416 238.7576,128 239.2,128 L242.4,128 L242.4,128 Z M235.2,130.4 C235.2,130.8416 235.5576,131.2 236,131.2 L244,131.2 C244.4424,131.2 244.8,130.8416 244.8,130.4 C244.8,129.9584 244.4424,129.6 244,129.6 L236,129.6 C235.5576,129.6 235.2,129.9584 235.2,130.4 L235.2,130.4 Z M220,131.2 L232.8,131.2 C233.2424,131.2 233.6,130.8416 233.6,130.4 C233.6,129.9584 233.2424,129.6 232.8,129.6 L220,129.6 C219.5576,129.6 219.2,129.9584 219.2,130.4 C219.2,130.8416 219.5576,131.2 220,131.2 L220,131.2 Z M220,128 L228,128 C228.4424,128 228.8,127.6416 228.8,127.2 C228.8,126.7584 228.4424,126.4 228,126.4 L220,126.4 C219.5576,126.4 219.2,126.7584 219.2,127.2 C219.2,127.6416 219.5576,128 220,128 L220,128 Z M236,126.4 L231.2,126.4 C230.7576,126.4 230.4,126.7584 230.4,127.2 C230.4,127.6416 230.7576,128 231.2,128 L236,128 C236.4424,128 236.8,127.6416 236.8,127.2 C236.8,126.7584 236.4424,126.4 236,126.4 L236,126.4 Z M248,133.6 C248,133.1584 247.6424,132.8 247.2,132.8 L234.4,132.8 C233.9576,132.8 233.6,133.1584 233.6,133.6 C233.6,134.0416 233.9576,134.4 234.4,134.4 L247.2,134.4 C247.6424,134.4 248,134.0416 248,133.6 L248,133.6 Z M242.4,137.6 C242.8424,137.6 243.2,137.2416 243.2,136.8 C243.2,136.3584 242.8424,136 242.4,136 L236,136 C235.5576,136 235.2,136.3584 235.2,136.8 C235.2,137.2416 235.5576,137.6 236,137.6 L242.4,137.6 L242.4,137.6 Z M220,137.6 L232.8,137.6 C233.2424,137.6 233.6,137.2416 233.6,136.8 C233.6,136.3584 233.2424,136 232.8,136 L220,136 C219.5576,136 219.2,136.3584 219.2,136.8 C219.2,137.2416 219.5576,137.6 220,137.6 L220,137.6 Z M220,134.4 L223.2,134.4 C223.6424,134.4 224,134.0416 224,133.6 C224,133.1584 223.6424,132.8 223.2,132.8 L220,132.8 C219.5576,132.8 219.2,133.1584 219.2,133.6 C219.2,134.0416 219.5576,134.4 220,134.4 L220,134.4 Z M226.4,132.8 C225.9576,132.8 225.6,133.1584 225.6,133.6 C225.6,134.0416 225.9576,134.4 226.4,134.4 L231.2,134.4 C231.6424,134.4 232,134.0416 232,133.6 C232,133.1584 231.6424,132.8 231.2,132.8 L226.4,132.8 L226.4,132.8 Z M237.6,146.4 C237.6,145.9584 237.2424,145.6 236.8,145.6 L234.4,145.6 C233.9576,145.6 233.6,145.9584 233.6,146.4 C233.6,146.8416 233.9576,147.2 234.4,147.2 L236.8,147.2 C237.2424,147.2 237.6,146.8416 237.6,146.4 L237.6,146.4 Z M220,147.2 L223.2,147.2 C223.6424,147.2 224,146.8416 224,146.4 C224,145.9584 223.6424,145.6 223.2,145.6 L220,145.6 C219.5576,145.6 219.2,145.9584 219.2,146.4 C219.2,146.8416 219.5576,147.2 220,147.2 L220,147.2 Z M231.2,145.6 L226.4,145.6 C225.9576,145.6 225.6,145.9584 225.6,146.4 C225.6,146.8416 225.9576,147.2 226.4,147.2 L231.2,147.2 C231.6424,147.2 232,146.8416 232,146.4 C232,145.9584 231.6424,145.6 231.2,145.6 L231.2,145.6 Z M220,150.4 L229.6,150.4 C230.0424,150.4 230.4,150.0416 230.4,149.6 C230.4,149.1584 230.0424,148.8 229.6,148.8 L220,148.8 C219.5576,148.8 219.2,149.1584 219.2,149.6 C219.2,150.0416 219.5576,150.4 220,150.4 L220,150.4 Z M232.8,150.4 L234.4,150.4 C234.8424,150.4 235.2,150.0416 235.2,149.6 C235.2,149.1584 234.8424,148.8 234.4,148.8 L232.8,148.8 C232.3576,148.8 232,149.1584 232,149.6 C232,150.0416 232.3576,150.4 232.8,150.4 L232.8,150.4 Z M220,153.6 L224.8,153.6 C225.2424,153.6 225.6,153.2416 225.6,152.8 C225.6,152.3584 225.2424,152 224.8,152 L220,152 C219.5576,152 219.2,152.3584 219.2,152.8 C219.2,153.2416 219.5576,153.6 220,153.6 L220,153.6 Z M227.2,152.8 C227.2,153.2416 227.5576,153.6 228,153.6 L236,153.6 C236.4424,153.6 236.8,153.2416 236.8,152.8 C236.8,152.3584 236.4424,152 236,152 L228,152 C227.5576,152 227.2,152.3584 227.2,152.8 L227.2,152.8 Z M244.8,140 C244.8,139.5584 244.4424,139.2 244,139.2 L231.2,139.2 C230.7576,139.2 230.4,139.5584 230.4,140 C230.4,140.4416 230.7576,140.8 231.2,140.8 L244,140.8 C244.4424,140.8 244.8,140.4416 244.8,140 L244.8,140 Z M239.2,143.2 C239.2,142.7584 238.8424,142.4 238.4,142.4 L232.8,142.4 C232.3576,142.4 232,142.7584 232,143.2 C232,143.6416 232.3576,144 232.8,144 L238.4,144 C238.8424,144 239.2,143.6416 239.2,143.2 L239.2,143.2 Z M220,144 L229.6,144 C230.0424,144 230.4,143.6416 230.4,143.2 C230.4,142.7584 230.0424,142.4 229.6,142.4 L220,142.4 C219.5576,142.4 219.2,142.7584 219.2,143.2 C219.2,143.6416 219.5576,144 220,144 L220,144 Z M220,140.8 L228,140.8 C228.4424,140.8 228.8,140.4416 228.8,140 C228.8,139.5584 228.4424,139.2 228,139.2 L220,139.2 C219.5576,139.2 219.2,139.5584 219.2,140 C219.2,140.4416 219.5576,140.8 220,140.8 L220,140.8 Z M256,149.6 L256,152.8 C256,153.2416 255.6424,153.6 255.2,153.6 L253.9816,153.6 C253.8976,153.8384 253.8008,154.072 253.692,154.3 L254.5528,155.1608 C254.8656,155.4736 254.8656,155.98 254.5528,156.292 L252.2904,158.5544 C252.1408,158.7048 251.9376,158.7888 251.7248,158.7888 C251.5128,158.7888 251.3096,158.7048 251.1592,158.5544 L250.2976,157.6928 C250.0704,157.8008 249.8376,157.8976 249.5992,157.9816 L249.5992,159.2 C249.5992,159.6416 249.2416,160 248.7992,160 L245.5992,160 C245.1568,160 244.7992,159.6416 244.7992,159.2 L244.7992,157.9816 C244.5616,157.8976 244.3288,157.8008 244.1008,157.692 L243.24,158.5528 C242.94,158.8528 242.4088,158.8528 242.1088,158.5528 L239.8464,156.2904 C239.5336,155.9784 239.5336,155.472 239.8464,155.1592 L240.7072,154.2984 C240.5992,154.0704 240.5024,153.8376 240.4184,153.6 L239.2,153.6 C238.7576,153.6 238.4,153.2416 238.4,152.8 L238.4,149.6 C238.4,149.1584 238.7576,148.8 239.2,148.8 L240.4184,148.8 C240.5024,148.5616 240.5992,148.328 240.708,148.1 L239.8472,147.2392 C239.5344,146.9264 239.5344,146.42 239.8472,146.108 L242.1088,143.8456 C242.4088,143.5456 242.94,143.5456 243.24,143.8456 L244.1016,144.7072 C244.3288,144.5984 244.5624,144.5016 244.8008,144.4176 L244.8008,143.2 C244.8008,142.7584 245.1584,142.4 245.6008,142.4 L248.8,142.4 C249.2424,142.4 249.6,142.7584 249.6,143.2 L249.6,144.4176 C249.8384,144.5016 250.072,144.5984 250.2984,144.7064 L251.16,143.8456 C251.4728,143.5344 251.9792,143.5336 252.2912,143.8464 L254.5536,146.1088 C254.8664,146.4208 254.8664,146.9272 254.5536,147.24 L253.6928,148.1008 C253.8016,148.3288 253.8976,148.5624 253.9816,148.8 L255.2,148.8 C255.6424,148.8 256,149.1584 256,149.6 L256,149.6 Z M254.4,150.4 L253.3896,150.4 C253.0248,150.4 252.7064,150.1528 252.6152,149.7992 C252.4848,149.2928 252.2848,148.8088 252.0192,148.3608 C251.8344,148.0464 251.8848,147.6464 252.1432,147.388 L252.8568,146.6744 L251.7256,145.5432 L251.012,146.2568 C250.7528,146.5144 250.352,146.5648 250.0392,146.3792 C249.5928,146.116 249.1088,145.916 248.6,145.784 C248.2472,145.6928 248,145.3744 248,145.0096 L248,144 L246.4008,144 L246.4008,145.0096 C246.4008,145.3744 246.1536,145.6928 245.8008,145.784 C245.292,145.916 244.8072,146.116 244.36,146.38 C244.0472,146.5656 243.6472,146.5152 243.388,146.256 L242.6744,145.5424 L241.544,146.6736 L242.2568,147.3872 C242.5152,147.6456 242.5656,148.0456 242.3808,148.36 C242.1152,148.8072 241.9152,149.292 241.7848,149.7992 C241.6936,150.1528 241.3752,150.4 241.0104,150.4 L240,150.4 L240,152 L241.0104,152 C241.3752,152 241.6936,152.2472 241.7848,152.6 C241.9152,153.1064 242.1152,153.5904 242.3808,154.0384 C242.5656,154.3528 242.5152,154.7528 242.2568,155.0112 L241.5432,155.7248 L242.6744,156.856 L243.388,156.1424 C243.6472,155.884 244.048,155.8336 244.3608,156.0192 C244.8112,156.2848 245.2944,156.4848 245.7976,156.6144 C246.152,156.7048 246.3992,157.024 246.3992,157.3888 L246.3992,158.4 L247.9992,158.4 L247.9992,157.3896 C247.9992,157.0248 248.2464,156.7056 248.6,156.6152 C249.1064,156.4848 249.5904,156.284 250.0384,156.02 C250.352,155.8344 250.7536,155.8848 251.0112,156.1432 L251.7248,156.8576 L252.856,155.7264 L252.1424,155.0128 C251.8832,154.7544 251.8336,154.3536 252.0192,154.0392 C252.2848,153.5912 252.4848,153.1072 252.6152,152.6008 C252.7064,152.2472 253.0248,152 253.3896,152 L254.4,152 L254.4,150.4 L254.4,150.4 Z M249.6,151.2 C249.6,152.5232 248.5232,153.6 247.2,153.6 C245.8768,153.6 244.8,152.5232 244.8,151.2 C244.8,149.8768 245.8768,148.8 247.2,148.8 C248.5232,148.8 249.6,149.8768 249.6,151.2 L249.6,151.2 Z M248,151.2 C248,150.7592 247.6416,150.4 247.2,150.4 C246.7584,150.4 246.4,150.7592 246.4,151.2 C246.4,151.6408 246.7584,152 247.2,152 C247.6416,152 248,151.6408 248,151.2 L248,151.2 Z M239.2,158.4 L212,158.4 C210.6768,158.4 209.6,157.3232 209.6,156 L209.6,124 C209.6,123.5584 209.2424,123.2 208.8,123.2 C208.3576,123.2 208,123.5584 208,124 L208,156 C208,158.2056 209.7944,160 212,160 L239.2,160 C239.6424,160 240,159.6416 240,159.2 C240,158.7584 239.6424,158.4 239.2,158.4 L239.2,158.4 Z M252,112 L212,112 C209.7944,112 208,113.7944 208,116 L208,120.8 C208,121.2416 208.3576,121.6 208.8,121.6 L252,121.6 C252.4424,121.6 252.8,121.2416 252.8,120.8 C252.8,120.3584 252.4424,120 252,120 L209.6,120 L209.6,116 C209.6,114.6768 210.6768,113.6 212,113.6 L252,113.6 C253.3232,113.6 254.4,114.6768 254.4,116 L254.4,143.2 C254.4,143.6416 254.7576,144 255.2,144 C255.6424,144 256,143.6416 256,143.2 L256,116 C256,113.7944 254.2056,112 252,112 L252,112 Z" id="web-development"></path>
- </g>
- </g>
- </g>
- </g>
- </g>
-</svg> \ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 25.4.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ viewBox="0 0 75 75" style="enable-background:new 0 0 75 75;" xml:space="preserve">
+<style type="text/css">
+ .st0{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_1_);}
+ .st1{fill:none;}
+</style>
+<g id="icon">
+ <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="87.5133" y1="87.5133" x2="-26.0279" y2="-26.0279">
+ <stop offset="0" style="stop-color:#6FFE80"/>
+ <stop offset="0.3726" style="stop-color:#43CE58"/>
+ <stop offset="1" style="stop-color:#425FCF"/>
+ </linearGradient>
+ <path class="st0" d="M75,6.2v62.5c0,3.4-2.8,6.2-6.2,6.2H6.2C2.8,75,0,72.2,0,68.8v-50c0-0.7,0.6-1.2,1.2-1.2s1.2,0.6,1.2,1.2v50
+ c0,2.1,1.7,3.8,3.8,3.8h62.5c2.1,0,3.8-1.7,3.8-3.8V6.2c0-2.1-1.7-3.8-3.8-3.8H6.2c-2.1,0-3.8,1.7-3.8,3.8v6.2h66.2
+ c0.7,0,1.2,0.6,1.2,1.2S69.4,15,68.8,15H1.2C0.6,15,0,14.4,0,13.8V6.2C0,2.8,2.8,0,6.2,0h62.5C72.2,0,75,2.8,75,6.2L75,6.2z
+ M7.5,7.5C7.5,8.9,8.6,10,10,10s2.5-1.1,2.5-2.5S11.4,5,10,5S7.5,6.1,7.5,7.5L7.5,7.5z M15,7.5c0,1.4,1.1,2.5,2.5,2.5
+ S20,8.9,20,7.5S18.9,5,17.5,5S15,6.1,15,7.5L15,7.5z M22.5,7.5c0,1.4,1.1,2.5,2.5,2.5s2.5-1.1,2.5-2.5S26.4,5,25,5
+ S22.5,6.1,22.5,7.5L22.5,7.5z M63.8,53.7H51.2V41.2c0-0.7-0.6-1.2-1.2-1.2c-8.3,0-15,6.7-15,15s6.7,15,15,15s15-6.7,15-15
+ C65,54.3,64.4,53.7,63.8,53.7z M50,67.5c-6.9,0-12.5-5.6-12.5-12.5c0-6.5,4.9-11.8,11.2-12.4v13.7h13.7
+ C61.8,62.6,56.5,67.5,50,67.5z M55,35c-0.7,0-1.2,0.6-1.2,1.2v15h15c0.7,0,1.2-0.6,1.2-1.2C70,41.7,63.3,35,55,35z M56.2,48.7V37.6
+ c5.9,0.6,10.6,5.3,11.2,11.2H56.2z M38.7,24.9l-6.3,16.7c-0.2,0.5-0.6,0.8-1.1,0.8c-0.5,0-1-0.3-1.2-0.8l-2.5-5.9l-7.6,19.6
+ c-0.2,0.5-0.7,0.8-1.2,0.8c0,0,0,0-0.1,0c-0.5,0-1-0.4-1.1-0.9L9.9,26.8l-2.4,7.3c-0.2,0.7-0.9,1-1.6,0.8c-0.7-0.2-1-0.9-0.8-1.6
+ l3.8-11.2c0.2-0.5,0.7-0.9,1.2-0.9c0.6,0,1,0.4,1.2,0.9L19,51L26.3,32c0.2-0.5,0.6-0.8,1.1-0.8c0,0,0,0,0,0c0.5,0,1,0.3,1.1,0.8
+ l2.5,5.9l6.4-17.1c0.2-0.5,0.7-0.8,1.2-0.8c0.5,0,1,0.3,1.2,0.8l2.9,8.5l4.9-7.5c0.2-0.4,0.7-0.6,1.1-0.6c0.4,0,0.8,0.3,1.1,0.6
+ l3.9,6.9l2.7-4.4c0.2-0.4,0.6-0.6,1.1-0.6c0,0,0,0,0,0c0.4,0,0.8,0.2,1.1,0.6l2.5,4c0.4,0.6,0.2,1.4-0.4,1.7
+ c-0.6,0.4-1.4,0.2-1.7-0.4l-1.4-2.3l-2.7,4.5c-0.2,0.4-0.6,0.6-1.1,0.6c-0.4,0-0.9-0.2-1.1-0.6l-4-7l-5.1,7.9
+ c-0.3,0.4-0.7,0.6-1.2,0.6c-0.5-0.1-0.9-0.4-1-0.8L38.7,24.9z"/>
+</g>
+<g id="_x37_5px_frame">
+ <rect x="0" y="0" class="st1" width="75" height="75"/>
+</g>
+</svg>
diff --git a/sources/pyside6/doc/images/Tooling.svg b/sources/pyside6/doc/images/Tooling.svg
new file mode 100644
index 000000000..98116957e
--- /dev/null
+++ b/sources/pyside6/doc/images/Tooling.svg
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="49px" height="48px" viewBox="0 0 49 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!-- Generator: Sketch 44.1 (41455) - http://www.bohemiancoding.com/sketch -->
+ <title>web-development</title>
+ <desc>Created with Sketch.</desc>
+ <defs>
+ <linearGradient x1="100%" y1="100%" x2="-22.8515625%" y2="-33.2356771%" id="linearGradient-1">
+ <stop stop-color="#6FFF80" offset="0%"></stop>
+ <stop stop-color="#43CE57" offset="37.2587344%"></stop>
+ <stop stop-color="#425FD0" offset="100%"></stop>
+ </linearGradient>
+ </defs>
+ <g id="Mainpage" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+ <g id="Mainpage_Layout_V4_Megamenu" transform="translate(-1084.000000, -1756.000000)" fill="url(#linearGradient-1)">
+ <g id="Content" transform="translate(-44.000000, 1530.000000)">
+ <g id="WhatQtis" transform="translate(194.000000, 0.000000)">
+ <g id="Block3_Hover" transform="translate(726.316067, 114.000000)">
+ <path d="M214.4,115.2 C215.2816,115.2 216,115.9176 216,116.8 C216,117.6824 215.2816,118.4 214.4,118.4 C213.5176,118.4 212.8,117.6824 212.8,116.8 C212.8,115.9176 213.5176,115.2 214.4,115.2 L214.4,115.2 Z M217.6,116.8 C217.6,117.6824 218.3176,118.4 219.2,118.4 C220.0816,118.4 220.8,117.6824 220.8,116.8 C220.8,115.9176 220.0816,115.2 219.2,115.2 C218.3176,115.2 217.6,115.9176 217.6,116.8 L217.6,116.8 Z M222.4,116.8 C222.4,117.6824 223.1176,118.4 224,118.4 C224.8816,118.4 225.6,117.6824 225.6,116.8 C225.6,115.9176 224.8816,115.2 224,115.2 C223.1176,115.2 222.4,115.9176 222.4,116.8 L222.4,116.8 Z M215.2,128 L216.8,128 C217.2424,128 217.6,127.6416 217.6,127.2 C217.6,126.7584 217.2424,126.4 216.8,126.4 L215.2,126.4 C214.7576,126.4 214.4,126.7584 214.4,127.2 C214.4,127.6416 214.7576,128 215.2,128 L215.2,128 Z M215.2,131.2 L216.8,131.2 C217.2424,131.2 217.6,130.8416 217.6,130.4 C217.6,129.9584 217.2424,129.6 216.8,129.6 L215.2,129.6 C214.7576,129.6 214.4,129.9584 214.4,130.4 C214.4,130.8416 214.7576,131.2 215.2,131.2 L215.2,131.2 Z M215.2,134.4 L216.8,134.4 C217.2424,134.4 217.6,134.0416 217.6,133.6 C217.6,133.1584 217.2424,132.8 216.8,132.8 L215.2,132.8 C214.7576,132.8 214.4,133.1584 214.4,133.6 C214.4,134.0416 214.7576,134.4 215.2,134.4 L215.2,134.4 Z M215.2,137.6 L216.8,137.6 C217.2424,137.6 217.6,137.2416 217.6,136.8 C217.6,136.3584 217.2424,136 216.8,136 L215.2,136 C214.7576,136 214.4,136.3584 214.4,136.8 C214.4,137.2416 214.7576,137.6 215.2,137.6 L215.2,137.6 Z M215.2,140.8 L216.8,140.8 C217.2424,140.8 217.6,140.4416 217.6,140 C217.6,139.5584 217.2424,139.2 216.8,139.2 L215.2,139.2 C214.7576,139.2 214.4,139.5584 214.4,140 C214.4,140.4416 214.7576,140.8 215.2,140.8 L215.2,140.8 Z M215.2,144 L216.8,144 C217.2424,144 217.6,143.6416 217.6,143.2 C217.6,142.7584 217.2424,142.4 216.8,142.4 L215.2,142.4 C214.7576,142.4 214.4,142.7584 214.4,143.2 C214.4,143.6416 214.7576,144 215.2,144 L215.2,144 Z M215.2,147.2 L216.8,147.2 C217.2424,147.2 217.6,146.8416 217.6,146.4 C217.6,145.9584 217.2424,145.6 216.8,145.6 L215.2,145.6 C214.7576,145.6 214.4,145.9584 214.4,146.4 C214.4,146.8416 214.7576,147.2 215.2,147.2 L215.2,147.2 Z M215.2,150.4 L216.8,150.4 C217.2424,150.4 217.6,150.0416 217.6,149.6 C217.6,149.1584 217.2424,148.8 216.8,148.8 L215.2,148.8 C214.7576,148.8 214.4,149.1584 214.4,149.6 C214.4,150.0416 214.7576,150.4 215.2,150.4 L215.2,150.4 Z M215.2,153.6 L216.8,153.6 C217.2424,153.6 217.6,153.2416 217.6,152.8 C217.6,152.3584 217.2424,152 216.8,152 L215.2,152 C214.7576,152 214.4,152.3584 214.4,152.8 C214.4,153.2416 214.7576,153.6 215.2,153.6 L215.2,153.6 Z M242.4,128 C242.8424,128 243.2,127.6416 243.2,127.2 C243.2,126.7584 242.8424,126.4 242.4,126.4 L239.2,126.4 C238.7576,126.4 238.4,126.7584 238.4,127.2 C238.4,127.6416 238.7576,128 239.2,128 L242.4,128 L242.4,128 Z M235.2,130.4 C235.2,130.8416 235.5576,131.2 236,131.2 L244,131.2 C244.4424,131.2 244.8,130.8416 244.8,130.4 C244.8,129.9584 244.4424,129.6 244,129.6 L236,129.6 C235.5576,129.6 235.2,129.9584 235.2,130.4 L235.2,130.4 Z M220,131.2 L232.8,131.2 C233.2424,131.2 233.6,130.8416 233.6,130.4 C233.6,129.9584 233.2424,129.6 232.8,129.6 L220,129.6 C219.5576,129.6 219.2,129.9584 219.2,130.4 C219.2,130.8416 219.5576,131.2 220,131.2 L220,131.2 Z M220,128 L228,128 C228.4424,128 228.8,127.6416 228.8,127.2 C228.8,126.7584 228.4424,126.4 228,126.4 L220,126.4 C219.5576,126.4 219.2,126.7584 219.2,127.2 C219.2,127.6416 219.5576,128 220,128 L220,128 Z M236,126.4 L231.2,126.4 C230.7576,126.4 230.4,126.7584 230.4,127.2 C230.4,127.6416 230.7576,128 231.2,128 L236,128 C236.4424,128 236.8,127.6416 236.8,127.2 C236.8,126.7584 236.4424,126.4 236,126.4 L236,126.4 Z M248,133.6 C248,133.1584 247.6424,132.8 247.2,132.8 L234.4,132.8 C233.9576,132.8 233.6,133.1584 233.6,133.6 C233.6,134.0416 233.9576,134.4 234.4,134.4 L247.2,134.4 C247.6424,134.4 248,134.0416 248,133.6 L248,133.6 Z M242.4,137.6 C242.8424,137.6 243.2,137.2416 243.2,136.8 C243.2,136.3584 242.8424,136 242.4,136 L236,136 C235.5576,136 235.2,136.3584 235.2,136.8 C235.2,137.2416 235.5576,137.6 236,137.6 L242.4,137.6 L242.4,137.6 Z M220,137.6 L232.8,137.6 C233.2424,137.6 233.6,137.2416 233.6,136.8 C233.6,136.3584 233.2424,136 232.8,136 L220,136 C219.5576,136 219.2,136.3584 219.2,136.8 C219.2,137.2416 219.5576,137.6 220,137.6 L220,137.6 Z M220,134.4 L223.2,134.4 C223.6424,134.4 224,134.0416 224,133.6 C224,133.1584 223.6424,132.8 223.2,132.8 L220,132.8 C219.5576,132.8 219.2,133.1584 219.2,133.6 C219.2,134.0416 219.5576,134.4 220,134.4 L220,134.4 Z M226.4,132.8 C225.9576,132.8 225.6,133.1584 225.6,133.6 C225.6,134.0416 225.9576,134.4 226.4,134.4 L231.2,134.4 C231.6424,134.4 232,134.0416 232,133.6 C232,133.1584 231.6424,132.8 231.2,132.8 L226.4,132.8 L226.4,132.8 Z M237.6,146.4 C237.6,145.9584 237.2424,145.6 236.8,145.6 L234.4,145.6 C233.9576,145.6 233.6,145.9584 233.6,146.4 C233.6,146.8416 233.9576,147.2 234.4,147.2 L236.8,147.2 C237.2424,147.2 237.6,146.8416 237.6,146.4 L237.6,146.4 Z M220,147.2 L223.2,147.2 C223.6424,147.2 224,146.8416 224,146.4 C224,145.9584 223.6424,145.6 223.2,145.6 L220,145.6 C219.5576,145.6 219.2,145.9584 219.2,146.4 C219.2,146.8416 219.5576,147.2 220,147.2 L220,147.2 Z M231.2,145.6 L226.4,145.6 C225.9576,145.6 225.6,145.9584 225.6,146.4 C225.6,146.8416 225.9576,147.2 226.4,147.2 L231.2,147.2 C231.6424,147.2 232,146.8416 232,146.4 C232,145.9584 231.6424,145.6 231.2,145.6 L231.2,145.6 Z M220,150.4 L229.6,150.4 C230.0424,150.4 230.4,150.0416 230.4,149.6 C230.4,149.1584 230.0424,148.8 229.6,148.8 L220,148.8 C219.5576,148.8 219.2,149.1584 219.2,149.6 C219.2,150.0416 219.5576,150.4 220,150.4 L220,150.4 Z M232.8,150.4 L234.4,150.4 C234.8424,150.4 235.2,150.0416 235.2,149.6 C235.2,149.1584 234.8424,148.8 234.4,148.8 L232.8,148.8 C232.3576,148.8 232,149.1584 232,149.6 C232,150.0416 232.3576,150.4 232.8,150.4 L232.8,150.4 Z M220,153.6 L224.8,153.6 C225.2424,153.6 225.6,153.2416 225.6,152.8 C225.6,152.3584 225.2424,152 224.8,152 L220,152 C219.5576,152 219.2,152.3584 219.2,152.8 C219.2,153.2416 219.5576,153.6 220,153.6 L220,153.6 Z M227.2,152.8 C227.2,153.2416 227.5576,153.6 228,153.6 L236,153.6 C236.4424,153.6 236.8,153.2416 236.8,152.8 C236.8,152.3584 236.4424,152 236,152 L228,152 C227.5576,152 227.2,152.3584 227.2,152.8 L227.2,152.8 Z M244.8,140 C244.8,139.5584 244.4424,139.2 244,139.2 L231.2,139.2 C230.7576,139.2 230.4,139.5584 230.4,140 C230.4,140.4416 230.7576,140.8 231.2,140.8 L244,140.8 C244.4424,140.8 244.8,140.4416 244.8,140 L244.8,140 Z M239.2,143.2 C239.2,142.7584 238.8424,142.4 238.4,142.4 L232.8,142.4 C232.3576,142.4 232,142.7584 232,143.2 C232,143.6416 232.3576,144 232.8,144 L238.4,144 C238.8424,144 239.2,143.6416 239.2,143.2 L239.2,143.2 Z M220,144 L229.6,144 C230.0424,144 230.4,143.6416 230.4,143.2 C230.4,142.7584 230.0424,142.4 229.6,142.4 L220,142.4 C219.5576,142.4 219.2,142.7584 219.2,143.2 C219.2,143.6416 219.5576,144 220,144 L220,144 Z M220,140.8 L228,140.8 C228.4424,140.8 228.8,140.4416 228.8,140 C228.8,139.5584 228.4424,139.2 228,139.2 L220,139.2 C219.5576,139.2 219.2,139.5584 219.2,140 C219.2,140.4416 219.5576,140.8 220,140.8 L220,140.8 Z M256,149.6 L256,152.8 C256,153.2416 255.6424,153.6 255.2,153.6 L253.9816,153.6 C253.8976,153.8384 253.8008,154.072 253.692,154.3 L254.5528,155.1608 C254.8656,155.4736 254.8656,155.98 254.5528,156.292 L252.2904,158.5544 C252.1408,158.7048 251.9376,158.7888 251.7248,158.7888 C251.5128,158.7888 251.3096,158.7048 251.1592,158.5544 L250.2976,157.6928 C250.0704,157.8008 249.8376,157.8976 249.5992,157.9816 L249.5992,159.2 C249.5992,159.6416 249.2416,160 248.7992,160 L245.5992,160 C245.1568,160 244.7992,159.6416 244.7992,159.2 L244.7992,157.9816 C244.5616,157.8976 244.3288,157.8008 244.1008,157.692 L243.24,158.5528 C242.94,158.8528 242.4088,158.8528 242.1088,158.5528 L239.8464,156.2904 C239.5336,155.9784 239.5336,155.472 239.8464,155.1592 L240.7072,154.2984 C240.5992,154.0704 240.5024,153.8376 240.4184,153.6 L239.2,153.6 C238.7576,153.6 238.4,153.2416 238.4,152.8 L238.4,149.6 C238.4,149.1584 238.7576,148.8 239.2,148.8 L240.4184,148.8 C240.5024,148.5616 240.5992,148.328 240.708,148.1 L239.8472,147.2392 C239.5344,146.9264 239.5344,146.42 239.8472,146.108 L242.1088,143.8456 C242.4088,143.5456 242.94,143.5456 243.24,143.8456 L244.1016,144.7072 C244.3288,144.5984 244.5624,144.5016 244.8008,144.4176 L244.8008,143.2 C244.8008,142.7584 245.1584,142.4 245.6008,142.4 L248.8,142.4 C249.2424,142.4 249.6,142.7584 249.6,143.2 L249.6,144.4176 C249.8384,144.5016 250.072,144.5984 250.2984,144.7064 L251.16,143.8456 C251.4728,143.5344 251.9792,143.5336 252.2912,143.8464 L254.5536,146.1088 C254.8664,146.4208 254.8664,146.9272 254.5536,147.24 L253.6928,148.1008 C253.8016,148.3288 253.8976,148.5624 253.9816,148.8 L255.2,148.8 C255.6424,148.8 256,149.1584 256,149.6 L256,149.6 Z M254.4,150.4 L253.3896,150.4 C253.0248,150.4 252.7064,150.1528 252.6152,149.7992 C252.4848,149.2928 252.2848,148.8088 252.0192,148.3608 C251.8344,148.0464 251.8848,147.6464 252.1432,147.388 L252.8568,146.6744 L251.7256,145.5432 L251.012,146.2568 C250.7528,146.5144 250.352,146.5648 250.0392,146.3792 C249.5928,146.116 249.1088,145.916 248.6,145.784 C248.2472,145.6928 248,145.3744 248,145.0096 L248,144 L246.4008,144 L246.4008,145.0096 C246.4008,145.3744 246.1536,145.6928 245.8008,145.784 C245.292,145.916 244.8072,146.116 244.36,146.38 C244.0472,146.5656 243.6472,146.5152 243.388,146.256 L242.6744,145.5424 L241.544,146.6736 L242.2568,147.3872 C242.5152,147.6456 242.5656,148.0456 242.3808,148.36 C242.1152,148.8072 241.9152,149.292 241.7848,149.7992 C241.6936,150.1528 241.3752,150.4 241.0104,150.4 L240,150.4 L240,152 L241.0104,152 C241.3752,152 241.6936,152.2472 241.7848,152.6 C241.9152,153.1064 242.1152,153.5904 242.3808,154.0384 C242.5656,154.3528 242.5152,154.7528 242.2568,155.0112 L241.5432,155.7248 L242.6744,156.856 L243.388,156.1424 C243.6472,155.884 244.048,155.8336 244.3608,156.0192 C244.8112,156.2848 245.2944,156.4848 245.7976,156.6144 C246.152,156.7048 246.3992,157.024 246.3992,157.3888 L246.3992,158.4 L247.9992,158.4 L247.9992,157.3896 C247.9992,157.0248 248.2464,156.7056 248.6,156.6152 C249.1064,156.4848 249.5904,156.284 250.0384,156.02 C250.352,155.8344 250.7536,155.8848 251.0112,156.1432 L251.7248,156.8576 L252.856,155.7264 L252.1424,155.0128 C251.8832,154.7544 251.8336,154.3536 252.0192,154.0392 C252.2848,153.5912 252.4848,153.1072 252.6152,152.6008 C252.7064,152.2472 253.0248,152 253.3896,152 L254.4,152 L254.4,150.4 L254.4,150.4 Z M249.6,151.2 C249.6,152.5232 248.5232,153.6 247.2,153.6 C245.8768,153.6 244.8,152.5232 244.8,151.2 C244.8,149.8768 245.8768,148.8 247.2,148.8 C248.5232,148.8 249.6,149.8768 249.6,151.2 L249.6,151.2 Z M248,151.2 C248,150.7592 247.6416,150.4 247.2,150.4 C246.7584,150.4 246.4,150.7592 246.4,151.2 C246.4,151.6408 246.7584,152 247.2,152 C247.6416,152 248,151.6408 248,151.2 L248,151.2 Z M239.2,158.4 L212,158.4 C210.6768,158.4 209.6,157.3232 209.6,156 L209.6,124 C209.6,123.5584 209.2424,123.2 208.8,123.2 C208.3576,123.2 208,123.5584 208,124 L208,156 C208,158.2056 209.7944,160 212,160 L239.2,160 C239.6424,160 240,159.6416 240,159.2 C240,158.7584 239.6424,158.4 239.2,158.4 L239.2,158.4 Z M252,112 L212,112 C209.7944,112 208,113.7944 208,116 L208,120.8 C208,121.2416 208.3576,121.6 208.8,121.6 L252,121.6 C252.4424,121.6 252.8,121.2416 252.8,120.8 C252.8,120.3584 252.4424,120 252,120 L209.6,120 L209.6,116 C209.6,114.6768 210.6768,113.6 212,113.6 L252,113.6 C253.3232,113.6 254.4,114.6768 254.4,116 L254.4,143.2 C254.4,143.6416 254.7576,144 255.2,144 C255.6424,144 256,143.6416 256,143.2 L256,116 C256,113.7944 254.2056,112 252,112 L252,112 Z" id="web-development"></path>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+</svg> \ No newline at end of file
diff --git a/sources/pyside6/doc/images/linux.svg b/sources/pyside6/doc/images/linux.svg
new file mode 100644
index 000000000..af05345a2
--- /dev/null
+++ b/sources/pyside6/doc/images/linux.svg
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ version="1.0"
+ viewBox="0 0 266 312"
+ id="svg4"
+ sodipodi:docname="linux.svg"
+ inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs8" />
+ <sodipodi:namedview
+ id="namedview6"
+ pagecolor="#ffffff"
+ bordercolor="#000000"
+ borderopacity="0.25"
+ inkscape:showpageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ inkscape:deskcolor="#d1d1d1"
+ showgrid="false"
+ inkscape:zoom="2.7916667"
+ inkscape:cx="119.46269"
+ inkscape:cy="156.35821"
+ inkscape:window-width="2552"
+ inkscape:window-height="1432"
+ inkscape:window-x="1924"
+ inkscape:window-y="4"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg4" />
+ <path
+ d="M128.6640625 79.2793c0 1-1 1-1 1h-1c-1 0-1-1-2-2 0 0-1-1-1-2s0-1 1-1l2 1c1 1 2 2 2 3m-18-10c0-5-2-8-5-8 0 0 0 1-1 1v2h3c0 2 1 3 1 5h2m35-5c2 0 3 2 4 5h2c-1-1-1-2-1-3s0-2-1-3-2-2-3-2c0 0-1 1-2 1 0 1 1 1 1 2m-30 16c-1 0-1 0-1-1s0-2 1-3c2 0 3-1 3-1 1 0 1 1 1 1 0 1-1 2-3 4h-1m-11-1c-4-2-5-5-5-10 0-3 0-5 2-7 1-2 3-3 5-3s3 1 5 3c1 3 2 6 2 9v2h1v-1c1 0 1-2 1-6 0-3 0-6-2-9s-4-5-8-5c-3 0-6 2-7 5-2 4-2.4 7-2.4 12 0 4 1.4 8 5.4 12 1-1 2-1 3-2m125 141c1 0 1-.4 1-1.3 0-2.2-1-4.8-4-7.7-3-3-8-4.9-14-5.7-1-.1-2-.1-2-.1-1-.2-1-.2-2-.2-1-.1-3-.3-4-.5 3-9.3 4-17.5 4-24.7 0-10-2-17-6-23s-8-9-13-10c-1 1-1 1-1 2 5 2 10 6 13 12 3 7 4 13 4 20 0 5.6-1 13.9-5 24.5-4 1.6-8 5.3-11 11.1 0 .9 0 1.4 1 1.4 0 0 1-.9 2-2.6 2-1.7 3-3.4 5-5.1 3-1.7 5-2.6 8-2.6 5 0 10 .7 13 2.1 4 1.3 6 2.7 7 4.3 1 1.5 2 2.9 3 4.2 0 1.3 1 1.9 1 1.9m-92-145c-1-1-1-3-1-5 0-4 0-6 2-9 2-2 4-3 6-3 3 0 5 2 7 4 1 3 2 5 2 8 0 5-2 8-6 9 0 0 1 1 2 1 2 0 3 1 5 2 1-6 2-10 2-15 0-6-1-10-3-13-3-3-6-4-10-4-3 0-6 1-9 3-2 3-3 5-3 8 0 5 1 9 3 13 1 0 2 1 3 1m12 16c-13 9-23 13-31 13-7 0-14-3-20-8 1 2 2 4 3 5l6 6c4 4 9 6 14 6 7 0 15-4 25-11l9-6c2-2 4-4 4-7 0-1 0-2-1-2-1-2-6-5-16-8-9-4-16-6-20-6-3 0-8 2-15 6-6 4-10 8-10 12 0 0 1 1 2 3 6 5 12 8 18 8 8 0 18-4 31-14v2c1 0 1 1 1 1m23 202c4 7.52 11 11.3 19 11.3 2 0 4-.3 6-.9 2-.4 4-1.1 5-1.9 1-.7 2-1.4 3-2.2 2-.7 2-1.2 3-1.7l17-14.7c4-3.19 8-5.98 13-8.4 4-2.4 8-4 10-4.9 3-.8 5-2 7-3.6 1-1.5 2-3.4 2-5.8 0-2.9-2-5.1-4-6.7s-4-2.7-6-3.4-4-2.3-7-5c-2-2.6-4-6.2-5-10.9l-1-5.8c-1-2.7-1-4.7-2-5.8 0-.3 0-.4-1-.4s-3 .9-4 2.6c-2 1.7-4 3.6-6 5.6-1 2-4 3.8-6 5.5-3 1.7-6 2.6-8 2.6-8 0-12-2.2-15-6.5-2-3.2-3-6.9-4-11.1-2-1.7-3-2.6-5-2.6-5 0-7 5.2-7 15.7v31.1c0 .9-1 2.9-1 6-1 3.1-1 6.62-1 10.6l-2 11.1v.17m-145-5.29c9.3 1.36 20 4.27 32.1 8.71 12.1 4.4 19.5 6.7 22.2 6.7 7 0 12.8-3.1 17.6-9.09 1-1.94 1-4.22 1-6.84 0-9.45-5.7-21.4-17.1-35.9l-6.8-9.1c-1.4-1.9-3.1-4.8-5.3-8.7-2.1-3.9-4-6.9-5.5-9-1.3-2.3-3.4-4.6-6.1-6.9-2.6-2.3-5.6-3.8-8.9-4.6-4.2.8-7.1 2.2-8.5 4.1s-2.2 4-2.4 6.2c-.3 2.1-.9 3.5-1.9 4.2-1 .6-2.7 1.1-5 1.6-.5 0-1.4 0-2.7.1h-2.7c-5.3 0-8.9.6-10.8 1.6-2.5 2.9-3.8 6.2-3.8 9.7 0 1.6.4 4.3 1.2 8.1.8 3.7 1.2 6.7 1.2 8.8 0 4.1-1.2 8.2-3.7 12.3-2.5 4.3-3.8 7.5-3.8 9.78 1 3.88 7.6 6.61 19.7 8.21m33.3-90.9c0-6.9 1.8-14.5 5.5-23.5 3.6-9 7.2-15 10.7-19-.2-1-.7-1-1.5-1l-1-1c-2.9 3-6.4 10-10.6 20-4.2 9-6.4 17.3-6.4 23.4 0 4.5 1.1 8.4 3.1 11.8 2.2 3.3 7.5 8.1 15.9 14.2l10.6 6.9c11.3 9.8 17.3 16.6 17.3 20.6 0 2.1-1 4.2-4 6.5-2 2.4-4.7 3.6-7 3.6-.2 0-.3.2-.3.7 0 .1 1 2.1 3.1 6 4.2 5.7 13.2 8.5 25.2 8.5 22 0 39-9 52-27 0-5 0-8.1-1-9.4v-3.7c0-6.5 1-11.4 3-14.6s4-4.7 7-4.7c2 0 4 .7 6 2.2 1-7.7 1-14.4 1-20.4 0-9.1 0-16.6-2-23.6-1-6-3-11-5-15l-6-9c-2-3-3-6-5-9-1-4-2-7-2-12-3-5-5-10-8-15-2-5-4-10-6-14l-9 7c-10 7-18 10-25 10-6 0-11-1-14-5l-6-5c0 3-1 7-3 11l-6.3 12c-2.8 7-4.3 11-4.6 14-.4 2-.7 4-.9 4l-7.5 15c-8.1 15-12.2 28.9-12.2 40.4 0 2.3.2 4.7.6 7.1-4.5-3.1-6.7-7.4-6.7-13m71.6 94.6c-13 0-23 1.76-30 5.25v-.3c-5 6-10.6 9.1-18.4 9.1-4.9 0-12.6-1.9-23-5.7-10.5-3.6-19.8-6.36-27.9-8.18-.8-.23-2.6-.57-5.5-1.03-2.8-.45-5.4-.91-7.7-1.37-2.1-.45-4.5-1.13-7.1-2.05-2.5-.79-4.5-1.82-6-3.07-1.38-1.26-2.06-2.68-2.06-4.27 0-1.6.34-3.31 1.02-5.13.64-1.1 1.34-2.2 2.04-3.2.7-1.1 1.3-2.1 1.7-3.1.6-.9 1-1.8 1.4-2.8.4-.9.8-1.8 1-2.9.2-1 .4-2 .4-3s-.4-4-1.2-9.3c-.8-5.2-1.2-8.5-1.2-9.9 0-4.4 1-7.9 3.2-10.4s4.3-3.8 6.5-3.8h11.5c.9 0 2.3-.5 4.4-1.7.7-1.6 1.3-2.9 1.7-4.1.5-1.2.7-2.1.9-2.5.2-.6.4-1.2.6-1.7.4-.7.9-1.5 1.6-2.3-.8-1-1.2-2.3-1.2-3.9 0-1.1 0-2.1.2-2.7 0-3.6 1.7-8.7 5.3-15.4l3.5-6.3c2.9-5.4 5.1-9.4 6.7-13.4 1.7-4 3.5-10 5.5-18 1.6-7 5.4-14 11.4-21l7.5-9c5.2-6 8.6-11 10.5-15s2.9-9 2.9-13c0-2-.5-8-1.6-18-1-10-1.5-20-1.5-29 0-7 .6-12 1.9-17s3.6-10 7-14c3-4 7-8 13-10s13-3 21-3c3 0 6 0 9 1 3 0 7 1 12 3 4 2 8 4 11 7 4 3 7 8 10 13 2 6 4 12 5 20 1 5 1 10 2 17 0 6 1 10 1 13 1 3 1 7 2 12 1 4 2 8 4 11 2 4 4 8 7 12 3 5 7 10 11 16 9 10 16 21 20 32 5 10 8 23 8 36.9 0 6.9-1 13.6-3 20.1 2 0 3 .8 4 2.2s2 4.4 3 9.1l1 7.4c1 2.2 2 4.3 5 6.1 2 1.8 4 3.3 7 4.5 2 1 5 2.4 7 4.2 2 2 3 4.1 3 6.3 0 3.4-1 5.9-3 7.7-2 2-4 3.4-7 4.3-2 1-6 3-12 5.82-5 2.96-10 6.55-15 10.8l-10 8.51c-4 3.9-8 6.7-11 8.4-3 1.8-7 2.7-11 2.7l-7-.8c-8-2.1-13-6.1-16-12.2-16-1.94-29-2.9-37-2.9"
+ id="path2"
+ style="fill:#53586b;fill-opacity:1" />
+</svg>
diff --git a/sources/pyside6/doc/images/macos.svg b/sources/pyside6/doc/images/macos.svg
new file mode 100644
index 000000000..01b8cb002
--- /dev/null
+++ b/sources/pyside6/doc/images/macos.svg
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ viewBox="0 0 4875 4875"
+ version="1.1"
+ id="svg4"
+ sodipodi:docname="macOS.svg"
+ inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs8" />
+ <sodipodi:namedview
+ id="namedview6"
+ pagecolor="#ffffff"
+ bordercolor="#000000"
+ borderopacity="0.25"
+ inkscape:showpageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ inkscape:deskcolor="#d1d1d1"
+ showgrid="false"
+ inkscape:zoom="0.17866667"
+ inkscape:cx="2056.9029"
+ inkscape:cy="2443.097"
+ inkscape:window-width="1920"
+ inkscape:window-height="1080"
+ inkscape:window-x="1920"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg4" />
+ <path
+ fill="#666"
+ d="m 4217.2809,3659.1573 c -67.1033,155.0227 -146.5318,297.7206 -238.5597,428.9145 -125.4425,178.8514 -228.1514,302.6507 -307.3064,371.3978 -122.7033,112.843 -254.1713,170.6343 -394.952,173.9209 -101.0661,0 -222.9479,-28.7587 -364.8238,-87.0974 -142.3418,-58.0655 -273.1524,-86.8235 -392.7608,-86.8235 -125.4424,0 -259.9782,28.758 -403.8809,86.8235 -144.1218,58.3387 -260.2248,88.7411 -348.9927,91.7538 -135.0014,5.7518 -269.5646,-53.6831 -403.8809,-178.5773 -85.7283,-74.7731 -192.9569,-202.9541 -321.4121,-384.5447 C 902.88949,3881.0097 789.58031,3656.1447 700.81195,3399.782 605.74429,3122.8775 558.08701,2854.7371 558.08701,2595.1424 c 0,-297.3638 64.25482,-553.8363 192.95678,-768.7591 101.14827,-172.6342 235.71135,-308.8131 404.12711,-408.7836 168.4162,-99.9703 350.3899,-150.914 546.3595,-154.1734 107.2285,0 247.8447,33.1682 422.5877,98.3545 174.25,65.4052 286.1345,98.5736 335.1882,98.5736 36.6747,0 160.9663,-38.7834 371.6716,-116.1026 199.256,-71.705 367.4256,-101.3949 505.1932,-89.7 373.3149,30.1284 653.78,177.2902 840.3002,442.4178 -333.8741,202.2962 -499.0309,485.6375 -495.7444,849.1192 3.0132,283.1218 105.7221,518.7232 307.5803,705.7915 91.4803,86.8235 193.6417,153.9273 307.3064,201.5844 -24.6494,71.4857 -50.6695,139.9584 -78.3327,205.6926 z M 3361.0953,290.01478 c 0,221.90982 -81.0722,429.10615 -242.6678,620.88525 -195.0111,227.98777 -430.8867,359.72937 -686.6746,338.94127 -3.2589,-26.6223 -5.1489,-54.6418 -5.1489,-84.085 0,-213.03328 92.7396,-441.02035 257.431,-627.43123 82.222,-94.38292 186.794,-172.86107 313.606,-235.46509 126.5378,-61.66949 246.2285,-95.77377 358.7983,-101.61416 3.2866,29.66615 4.656,59.3338 4.656,88.76593 z"
+ id="path2"
+ style="fill:#53586b;fill-opacity:1;stroke-width:4.43719" />
+</svg>
diff --git a/sources/pyside6/doc/images/windows.svg b/sources/pyside6/doc/images/windows.svg
new file mode 100644
index 000000000..a40519bb0
--- /dev/null
+++ b/sources/pyside6/doc/images/windows.svg
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ viewBox="0 0 4875 4875"
+ version="1.1"
+ id="svg4"
+ sodipodi:docname="windows.svg"
+ inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs8" />
+ <sodipodi:namedview
+ id="namedview6"
+ pagecolor="#ffffff"
+ bordercolor="#000000"
+ borderopacity="0.25"
+ inkscape:showpageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ inkscape:deskcolor="#d1d1d1"
+ showgrid="false"
+ inkscape:zoom="0.17866667"
+ inkscape:cx="2224.8134"
+ inkscape:cy="2437.5"
+ inkscape:window-width="2552"
+ inkscape:window-height="1432"
+ inkscape:window-x="1924"
+ inkscape:window-y="4"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg4" />
+ <path
+ fill="#0078d4"
+ d="M0 0h2311v2310H0zm2564 0h2311v2310H2564zM0 2564h2311v2311H0zm2564 0h2311v2311H2564"
+ id="path2"
+ style="fill:#53586b;fill-opacity:1" />
+</svg>
diff --git a/sources/pyside6/doc/import_inheritance.py b/sources/pyside6/doc/import_inheritance.py
new file mode 100644
index 000000000..e694941c9
--- /dev/null
+++ b/sources/pyside6/doc/import_inheritance.py
@@ -0,0 +1,152 @@
+import inspect
+import sys
+
+"""Helpers for determining base classes by importing the class.
+When passed something like:
+ PySide6.QtCore.QStateMachine.SignalEvent
+try to import the underlying module and return a
+handle to the object. In a loop, import
+ PySide6.QtCore.QStateMachine.SignalEvent
+ PySide6.QtCore.QStateMachine
+ PySide6.QtCore
+until the import succeeds and walk up the attributes
+to obtain the object."""
+
+
+TEST_DRIVER_USAGE = """Usage: import_inheritance.py class_name [current_module]
+
+Example:
+python import_inheritance.py PySide6.QtWidgets.QWizard PySide6.QtWidgets
+"""
+
+
+class InheritanceException(Exception):
+ pass
+
+
+def _importClassOrModule(name):
+ components = name.split('.')
+ for i in range(len(components), 0, -1):
+ importPath = '.'.join(components[: i])
+ try:
+ __import__(importPath)
+ except ImportError:
+ continue
+ if i == len(components):
+ return sys.modules[importPath]
+ remaining = components[i:]
+ cls = sys.modules[importPath]
+ for component in remaining:
+ try:
+ cls = getattr(cls, component)
+ except Exception: # No such attribute
+ return None
+ return cls
+ return None
+
+
+def _import_class_or_module(name, currmodule):
+ """
+ Import a class using its fully-qualified *name*.
+ """
+ todoc = _importClassOrModule(name)
+ if not todoc and currmodule is not None:
+ todoc = _importClassOrModule(f"{currmodule}.{name}")
+ if not todoc:
+ moduleStr = f'(module {currmodule})' if currmodule else ''
+ raise InheritanceException(f'Could not import class {name} specified for '
+ f'inheritance diagram {moduleStr}.')
+ if inspect.isclass(todoc):
+ return [todoc]
+ elif inspect.ismodule(todoc):
+ classes = []
+ for cls in todoc.__dict__.values():
+ if inspect.isclass(cls) and cls.__module__ == todoc.__name__:
+ classes.append(cls)
+ return classes
+ raise InheritanceException(f'{name} specified for inheritance diagram is '
+ 'not a class or module')
+
+
+def _import_classes(class_names, currmodule):
+ """Import a list of classes."""
+ classes = []
+ for name in class_names:
+ classes.extend(_import_class_or_module(name, currmodule))
+ return classes
+
+
+def _class_name(cls, parts=0):
+ """Given a class object, return a fully-qualified name.
+
+ This works for things I've tested in matplotlib so far, but may not be
+ completely general.
+ """
+ module = cls.__module__
+ if module == '__builtin__':
+ fullname = cls.__name__
+ else:
+ fullname = f"{module}.{cls.__qualname__}"
+ if parts == 0:
+ return fullname
+ name_parts = fullname.split('.')
+ return '.'.join(name_parts[-parts:])
+
+
+def _class_info(classes, builtins=None, show_builtins=False, parts=0):
+ """Return name and bases for all classes that are ancestors of
+ *classes*.
+
+ *parts* gives the number of dotted name parts that is removed from the
+ displayed node names.
+ """
+ all_classes = {}
+ builtins_list = builtins.values() if builtins else []
+
+ def recurse(cls):
+ if not show_builtins and cls in builtins_list:
+ return
+
+ nodename = _class_name(cls, parts)
+ fullname = _class_name(cls, 0)
+
+ baselist = []
+ all_classes[cls] = (nodename, fullname, baselist)
+ for base in cls.__bases__:
+ if not show_builtins and base in builtins_list:
+ continue
+ if base.__name__ == "Object" and base.__module__ == "Shiboken":
+ continue
+ baselist.append(_class_name(base, parts))
+ if base not in all_classes:
+ recurse(base)
+
+ for cls in classes:
+ recurse(cls)
+
+ return list(all_classes.values())
+
+
+def get_inheritance_entries_by_import(class_names, currmodule,
+ builtins=None,
+ show_builtins=False, parts=0):
+ classes = _import_classes(class_names, currmodule)
+ class_info = _class_info(classes, builtins, show_builtins, parts)
+ if not class_info:
+ raise InheritanceException('No classes found for '
+ 'inheritance diagram')
+ return class_info
+
+
+if __name__ == "__main__":
+ module = None
+ if len(sys.argv) < 2:
+ print(TEST_DRIVER_USAGE)
+ sys.exit(-1)
+ class_name = sys.argv[1]
+ if len(sys.argv) >= 3:
+ module = sys.argv[2]
+ entries = get_inheritance_entries_by_import([class_name], module, None,
+ False, 2)
+ for e in entries:
+ print(e)
diff --git a/sources/pyside6/doc/index.rst b/sources/pyside6/doc/index.rst
index 53dd3de38..1bb28f9c1 100644
--- a/sources/pyside6/doc/index.rst
+++ b/sources/pyside6/doc/index.rst
@@ -3,8 +3,9 @@
.. ifconfig:: output_format == 'html'
- **Qt for Python** offers the official Python bindings for `Qt`_, and
- has two main components:
+ **Qt for Python** offers the official Python bindings for `Qt`_,
+ which enables you to use Python to write your Qt applications.
+ The project has two main components:
* `PySide6`_, so that you can use Qt6 APIs in your Python applications, and
* `Shiboken6 <shiboken6/index.html>`__, a binding generator tool, which can
@@ -13,8 +14,9 @@
.. ifconfig:: output_format == 'qthelp'
- **Qt for Python** offers the official Python bindings for `Qt`_, and
- has two main components:
+ **Qt for Python** offers the official Python bindings for `Qt`_,
+ which enables you to use Python to write your Qt applications.
+ The project has two main components:
* `PySide6`_, so that you can use Qt6 APIs in your Python applications, and
* `Shiboken6 <../shiboken6/index.html>`__, a binding generator tool, which can
@@ -29,147 +31,184 @@ This project is available under the LGPLv3/GPLv3 and the `Qt commercial license`
.. _Qt: https://doc.qt.io
.. _PySide6: quickstart.html
.. _`Qt commercial license`: https://www.qt.io/licensing/
-.. _`Porting from PySide2 to PySide6`: porting_from2.html
+.. _`Porting from PySide2 to PySide6`: gettingstarted/porting_from2.html
+Quick Start
+===========
+You can obtain the latest stable version by running ``pip install pyside6``.
+If you want to build it yourself, check the `getting started guide`_.
+
+To learn how to use it, check out `write your first application`_,
+and to learn what is installed with the ``pyside6``, check the
+`package content, structure, and tools`_ page.
+
+
+.. _`getting started guide`: gettingstarted/index.html
+.. _`write your first application`: quickstart.html
+.. _`package content, structure, and tools`: gettingstarted/package_details.html
Documentation
=============
-.. ifconfig:: output_format == 'html'
-
- .. panels::
- :body: align-items-center jutify-content-center text-center
- :container: container-lg pb-3
- :column: col-lg-4 col-md-4 col-sm-6 col-xs-12 p-2
- :img-top-cls: d-flex align-self-center img-responsive card-img-top-main
+.. grid:: 1 3 3 3
+ :gutter: 2
+ .. grid-item-card::
:img-top: images/Desktop.svg
+ :class-item: text-center
Write your first Qt application.
-
+++
+ .. button-ref:: quick-start
+ :color: primary
+ :outline:
+ :expand:
- .. link-button:: quickstart
- :type: ref
- :text: Check it out!
- :classes: btn-qt btn-block stretched-link
- ---
+ Start here!
+
+ .. grid-item-card::
:img-top: images/Support.svg
+ :class-item: text-center
+
+ Modules, docs, and cross compilation.
+ +++
+ .. button-ref:: gettingstarted/index
+ :color: primary
+ :outline:
+ :expand:
+
+ Build Instructions
- Install and build from source.
+ .. grid-item-card::
+ :img-top: images/Commercial.svg
+ :class-item: text-center
+ Packages, installation, and details.
+++
+ .. button-ref:: commercial-page
+ :color: primary
+ :outline:
+ :expand:
- .. link-button:: gettingstarted
- :type: ref
- :text: Getting Started
- :classes: btn-qt btn-block stretched-link
- ---
+ Commercial
+
+ .. grid-item-card::
:img-top: images/Dev.svg
+ :class-item: text-center
PySide API reference.
-
+++
+ .. button-ref:: pyside-api
+ :color: primary
+ :outline:
+ :expand:
- .. link-button:: api
- :type: ref
- :text: API Docs
- :classes: btn-qt btn-block stretched-link
+ API Docs
- ---
+ .. grid-item-card::
:img-top: images/Tutorials.svg
+ :class-item: text-center
Learn with step-by-step guides.
-
+++
+ .. button-ref:: tutorials/index
+ :color: primary
+ :outline:
+ :expand:
+
+ Tutorials
- .. link-button:: tutorials/index
- :type: ref
- :text: Tutorials
- :classes: btn-qt btn-block stretched-link
- ---
+ .. grid-item-card::
:img-top: images/Examples.svg
+ :class-item: text-center
Check all the available examples.
-
+++
+ .. button-ref:: examples/index
+ :color: primary
+ :outline:
+ :expand:
+
+ Examples
- .. link-button:: examples/index
- :type: ref
- :text: Examples
- :classes: btn-qt btn-block stretched-link
- ---
+ .. grid-item-card::
:img-top: images/Training.svg
+ :class-item: text-center
Watch webinars, talks, and more.
+ +++
+ .. button-ref:: videos
+ :color: primary
+ :outline:
+ :expand:
+
+ Videos
+ .. grid-item-card::
+ :img-top: images/Tooling.svg
+ :class-item: text-center
+
+ Discover the tools included.
+++
+ .. button-ref:: package_tools
+ :color: primary
+ :outline:
+ :expand:
- .. link-button:: videos
- :type: ref
- :text: Videos
- :classes: btn-qt btn-block stretched-link
+ Tooling
- ---
+ .. grid-item-card::
:img-top: images/Deployment.svg
+ :class-item: text-center
Learn to deploy your applications.
-
+++
+ .. button-ref:: deployment-guides
+ :color: primary
+ :outline:
+ :expand:
- .. link-button:: deployment-guides
- :type: ref
- :text: Deployment
- :classes: btn-qt btn-block stretched-link
- ---
- :img-top: images/stopwatch.svg
+ Deployment
- API differences and known issues.
+ .. grid-item-card::
+ :img-top: images/cpp_python.svg
+ :class-item: text-center
+ Generate C++ to Python bindings.
+++
+ .. button-link:: shiboken6/index.html
+ :color: primary
+ :outline:
+ :expand:
- .. link-button:: considerations
- :type: ref
- :text: Considerations
- :classes: btn-qt btn-block stretched-link
- ---
- :img-top: images/cpp_python.svg
+ Shiboken
- Generate C++ to Python bindings.
+ .. grid-item-card::
+ :img-top: images/stopwatch.svg
+ :class-item: text-center
+ API differences and known issues.
+++
+ .. button-ref:: considerations
+ :color: primary
+ :outline:
+ :expand:
- .. link-button:: shiboken6/index.html
- :text: Shiboken
- :classes: btn-qt btn-block stretched-link
+ Considerations
-.. ifconfig:: output_format == 'qthelp'
+ .. grid-item-card::
+ :img-top: images/Development.svg
+ :class-item: text-center
+
+ Notes for Developers.
+ +++
+ .. button-ref:: developer-notes
+ :color: primary
+ :outline:
+ :expand:
- .. raw:: html
-
- <table class="special">
- <colgroup>
- <col style="width: 33%" />
- <col style="width: 33%" />
- <col style="width: 33%" />
- </colgroup>
- <tr>
- <td><a href="quickstart.html"><p><strong>Check It Out!</strong><br/>Write your first Qt app.</p></a></td>
- <td><a href="gettingstarted.html"><p><strong>Getting Started</strong><br/>Install and build from source.</p></a></td>
- <td><a href="api.html"><p><strong>API Docs</strong><br/>Qt for Python API reference.</p></a></td>
- </tr>
- <tr>
- <td><a href="tutorials/index.html"><p><strong>Tutorials</strong><br/>Learn with step-by-step guides.</p></a></td>
- <td><a href="examples/index.html"><p><strong>Examples</strong><br/>Check all the available examples.</p></a></td>
- <td><a href="videos.html"><p><strong>Videos</strong><br/>Watch webinars, Talks, and more.</p></a></td>
- </tr>
- <tr>
- <td><a href="deployment.html" style="display: block;"><p><strong>Deployment</strong><br/>Learn to deploy your apps.</p></a></td>
- <td><a href="considerations.html" style="display: block;"><p><strong>Considerations</strong><br/>API differences and known issues.</p></a></td>
- <td><a href="../shiboken6/index.html" style="display: block;"><p><strong>Shiboken</strong><br/>Generate C++ to Python binding.</p></a></td>
- </tr>
- </table>
+ Developers
We have also a `wiki page`_ where you can find how to report bugs, contribute or contact the community.
@@ -181,6 +220,3 @@ We have also a `wiki page`_ where you can find how to report bugs, contribute or
:glob:
contents.rst
- gettingstarted*
- overviews/*
- feature-why
diff --git a/sources/pyside6/doc/inheritance_diagram.py b/sources/pyside6/doc/inheritance_diagram.py
index 5889abb6f..e972fac4c 100644
--- a/sources/pyside6/doc/inheritance_diagram.py
+++ b/sources/pyside6/doc/inheritance_diagram.py
@@ -37,10 +37,6 @@ r"""
:license: BSD, see LICENSE for details.
"""
-import os
-import re
-import sys
-import inspect
try:
from hashlib import md5
except ImportError:
@@ -51,211 +47,8 @@ from docutils.parsers.rst import directives, Directive
from sphinx.ext.graphviz import render_dot_html, render_dot_latex
-class InheritanceException(Exception):
- pass
-
-# When passed something like:
-# PySide6.QtCore.QStateMachine.SignalEvent
-# try to import the underlying module and return a
-# handle to the object. In a loop, import
-# PySide6.QtCore.QStateMachine.SignalEvent
-# PySide6.QtCore.QStateMachine
-# PySide6.QtCore
-# until the import succeeds and walk up the attributes
-# to obtain the object
-
-def importClassOrModule(name):
- components = name.split('.')
- for i in range(len(components), 0, -1):
- importPath = '.'.join(components[: i])
- try:
- __import__(importPath)
- except ImportError:
- continue
- if i == len(components):
- return sys.modules[importPath]
- remaining = components[i :]
- cls = sys.modules[importPath]
- for component in remaining:
- try:
- cls = getattr(cls, component)
- except Exception: # No such attribute
- return None
- return cls
- return None
-
-class InheritanceGraph(object):
- """
- Given a list of classes, determines the set of classes that they inherit
- from all the way to the root "object", and then is able to generate a
- graphviz dot graph from them.
- """
- def __init__(self, class_names, currmodule, show_builtins=False, parts=0):
- """
- *class_names* is a list of child classes to show bases from.
-
- If *show_builtins* is True, then Python builtins will be shown
- in the graph.
- """
- self.class_names = class_names
- classes = self._import_classes(class_names, currmodule)
- self.class_info = self._class_info(classes, show_builtins, parts)
- if not self.class_info:
- raise InheritanceException('No classes found for '
- 'inheritance diagram')
-
- def _import_class_or_module(self, name, currmodule):
- """
- Import a class using its fully-qualified *name*.
- """
- todoc = importClassOrModule(name)
- if not todoc and currmodule is not None:
- todoc = importClassOrModule(f"{currmodule}.{name}")
- if not todoc:
- moduleStr = f'(module {currmodule})' if currmodule else ''
- raise InheritanceException(f'Could not import class {name} specified for '
- f'inheritance diagram {moduleStr}.')
- if inspect.isclass(todoc):
- return [todoc]
- elif inspect.ismodule(todoc):
- classes = []
- for cls in todoc.__dict__.values():
- if inspect.isclass(cls) and cls.__module__ == todoc.__name__:
- classes.append(cls)
- return classes
- raise InheritanceException(f'{name} specified for inheritance diagram is '
- 'not a class or module')
-
- def _import_classes(self, class_names, currmodule):
- """Import a list of classes."""
- classes = []
- for name in class_names:
- classes.extend(self._import_class_or_module(name, currmodule))
- return classes
-
- def _class_info(self, classes, show_builtins, parts):
- """Return name and bases for all classes that are ancestors of
- *classes*.
-
- *parts* gives the number of dotted name parts that is removed from the
- displayed node names.
- """
- all_classes = {}
- builtins = __builtins__.values()
-
- def recurse(cls):
- if not show_builtins and cls in builtins:
- return
-
- nodename = self.class_name(cls, parts)
- fullname = self.class_name(cls, 0)
-
- baselist = []
- all_classes[cls] = (nodename, fullname, baselist)
- for base in cls.__bases__:
- if not show_builtins and base in builtins:
- continue
- if base.__name__ == "Object" and base.__module__ == "Shiboken":
- continue
- baselist.append(self.class_name(base, parts))
- if base not in all_classes:
- recurse(base)
-
- for cls in classes:
- recurse(cls)
-
- return list(all_classes.values())
-
- def class_name(self, cls, parts=0):
- """Given a class object, return a fully-qualified name.
-
- This works for things I've tested in matplotlib so far, but may not be
- completely general.
- """
- module = cls.__module__
- if module == '__builtin__':
- fullname = cls.__name__
- else:
- fullname = f"{module}.{cls.__qualname__}"
- if parts == 0:
- return fullname
- name_parts = fullname.split('.')
- return '.'.join(name_parts[-parts:])
-
- def get_all_class_names(self):
- """
- Get all of the class names involved in the graph.
- """
- return [fullname for (_, fullname, _) in self.class_info]
-
- # These are the default attrs for graphviz
- default_graph_attrs = {
- 'rankdir': 'LR',
- 'size': '"8.0, 12.0"',
- }
- default_node_attrs = {
- 'shape': 'box',
- 'fontsize': 10,
- 'height': 0.25,
- 'fontname': '"Vera Sans, DejaVu Sans, Liberation Sans, '
- 'Arial, Helvetica, sans"',
- 'style': '"setlinewidth(0.5)"',
- }
- default_edge_attrs = {
- 'arrowsize': 0.5,
- 'style': '"setlinewidth(0.5)"',
- }
-
- def _format_node_attrs(self, attrs):
- return ','.join(['%s=%s' % x for x in attrs.items()])
-
- def _format_graph_attrs(self, attrs):
- return ''.join([f"{x[0]}={x[1]};\n" for x in attrs.items()])
-
- def generate_dot(self, name, urls={}, env=None,
- graph_attrs={}, node_attrs={}, edge_attrs={}):
- """
- Generate a graphviz dot graph from the classes that
- were passed in to __init__.
-
- *name* is the name of the graph.
-
- *urls* is a dictionary mapping class names to HTTP URLs.
-
- *graph_attrs*, *node_attrs*, *edge_attrs* are dictionaries containing
- key/value pairs to pass on as graphviz properties.
- """
- g_attrs = self.default_graph_attrs.copy()
- n_attrs = self.default_node_attrs.copy()
- e_attrs = self.default_edge_attrs.copy()
- g_attrs.update(graph_attrs)
- n_attrs.update(node_attrs)
- e_attrs.update(edge_attrs)
- if env:
- g_attrs.update(env.config.inheritance_graph_attrs)
- n_attrs.update(env.config.inheritance_node_attrs)
- e_attrs.update(env.config.inheritance_edge_attrs)
-
- res = []
- res.append('digraph %s {\n' % name)
- res.append(self._format_graph_attrs(g_attrs))
-
- for name, fullname, bases in self.class_info:
- # Write the node
- this_node_attrs = n_attrs.copy()
- url = urls.get(fullname)
- if url is not None:
- this_node_attrs['URL'] = '"%s"' % url
- res.append(' "%s" [%s];\n' %
- (name, self._format_node_attrs(this_node_attrs)))
-
- # Write the edges
- for base_name in bases:
- res.append(' "%s" -> "%s" [%s];\n' %
- (base_name, name,
- self._format_node_attrs(e_attrs)))
- res.append('}\n')
- return ''.join(res)
+from inheritance_graph import InheritanceGraph
+from import_inheritance import (InheritanceException)
class inheritance_diagram(nodes.General, nodes.Element):
@@ -291,7 +84,7 @@ class InheritanceDiagram(Directive):
try:
graph = InheritanceGraph(
class_names, env.temp_data.get('py:module'),
- parts=node['parts'])
+ __builtins__, parts=node['parts'])
except InheritanceException as err:
return [node.document.reporter.warning(err.args[0],
line=self.lineno)]
@@ -301,8 +94,8 @@ class InheritanceDiagram(Directive):
# references to real URLs later. These nodes will eventually be
# removed from the doctree after we're done with them.
for name in graph.get_all_class_names():
- refnodes, x = class_role(
- 'class', ':class:`%s`' % name, name, 0, self.state)
+ refnodes, x = class_role('class', f':class:`{name}`', name,
+ 0, self.state)
node.extend(refnodes)
# Store the graph object so we can use it to generate the
# dot file later
@@ -323,15 +116,15 @@ def html_visit_inheritance_diagram(self, node):
graph = node['graph']
graph_hash = get_graph_hash(node)
- name = 'inheritance%s' % graph_hash
+ name = f'inheritance{graph_hash}'
# Create a mapping from fully-qualified class names to URLs.
urls = {}
for child in node:
- if child.get('refuri') is not None:
- urls[child['reftitle']] = child.get('refuri')
- elif child.get('refid') is not None:
- urls[child['reftitle']] = '#' + child.get('refid')
+ ref_title = child.get('reftitle')
+ uri = child.get('refuri')
+ if uri and ref_title:
+ urls[ref_title] = uri
dotcode = graph.generate_dot(name, urls, env=self.builder.env)
render_dot_html(self, node, dotcode, {}, 'inheritance', 'inheritance',
@@ -346,7 +139,7 @@ def latex_visit_inheritance_diagram(self, node):
graph = node['graph']
graph_hash = get_graph_hash(node)
- name = 'inheritance%s' % graph_hash
+ name = f'inheritance{graph_hash}'
dotcode = graph.generate_dot(name, env=self.builder.env,
graph_attrs={'size': '"6.0,6.0"'})
diff --git a/sources/pyside6/doc/inheritance_diagram.pyproject b/sources/pyside6/doc/inheritance_diagram.pyproject
new file mode 100644
index 000000000..a44dc93b8
--- /dev/null
+++ b/sources/pyside6/doc/inheritance_diagram.pyproject
@@ -0,0 +1,6 @@
+{
+ "files": ["inheritance_diagram.py",
+ "import_inheritance.py",
+ "inheritance_graph.py",
+ "json_inheritance.py"]
+}
diff --git a/sources/pyside6/doc/inheritance_graph.py b/sources/pyside6/doc/inheritance_graph.py
new file mode 100644
index 000000000..00e0ac486
--- /dev/null
+++ b/sources/pyside6/doc/inheritance_graph.py
@@ -0,0 +1,145 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+import sys
+
+from import_inheritance import (get_inheritance_entries_by_import)
+from json_inheritance import (is_inheritance_from_json_enabled,
+ get_inheritance_entries_from_json)
+
+
+TEST_DRIVER_USAGE = """Usage: inheritance_graph.py [module] [class]
+
+Example:
+python inheritance_graph.py PySide6.QtWidgets PySide6.QtWidgets.QWizard
+"""
+
+
+def format_dict(d):
+ """Format the URL dict for error message."""
+ result = '{'
+ n = 0
+ for k, v in d.items():
+ n += 1
+ if n > 10:
+ result += "..."
+ break
+ if n > 1:
+ result += ", "
+ result += f'"{k}": "{v}"'
+ result += '}'
+ return result
+
+
+class InheritanceGraph(object):
+ """
+ Given a list of classes, determines the set of classes that they inherit
+ from all the way to the root "object", and then is able to generate a
+ graphviz dot graph from them.
+ """
+ def __init__(self, class_names, currmodule, builtins=None, show_builtins=False, parts=0):
+ """
+ *class_names* is a list of child classes to show bases from.
+
+ If *show_builtins* is True, then Python builtins will be shown
+ in the graph.
+ """
+ self.class_names = class_names
+ if is_inheritance_from_json_enabled():
+ self.class_info = get_inheritance_entries_from_json(class_names)
+ else:
+ self.class_info = get_inheritance_entries_by_import(class_names,
+ currmodule,
+ builtins,
+ show_builtins,
+ parts)
+
+ def get_all_class_names(self):
+ """
+ Get all of the class names involved in the graph.
+ """
+ return [fullname for (_, fullname, _) in self.class_info]
+
+ # These are the default attrs for graphviz
+ default_graph_attrs = {
+ 'rankdir': 'LR',
+ 'size': '"8.0, 12.0"',
+ }
+ default_node_attrs = {
+ 'shape': 'box',
+ 'fontsize': 10,
+ 'height': 0.25,
+ 'fontname': '"Vera Sans, DejaVu Sans, Liberation Sans, '
+ 'Arial, Helvetica, sans"',
+ 'style': '"setlinewidth(0.5)"',
+ }
+ default_edge_attrs = {
+ 'arrowsize': 0.5,
+ 'style': '"setlinewidth(0.5)"',
+ }
+
+ def _format_node_attrs(self, attrs):
+ return ','.join([f'{x[0]}={x[1]}' for x in attrs.items()])
+
+ def _format_graph_attrs(self, attrs):
+ return ''.join([f"{x[0]}={x[1]};\n" for x in attrs.items()])
+
+ def generate_dot(self, name, urls={}, env=None,
+ graph_attrs={}, node_attrs={}, edge_attrs={}):
+ """
+ Generate a graphviz dot graph from the classes that
+ were passed in to __init__.
+
+ *name* is the name of the graph.
+
+ *urls* is a dictionary mapping class names to HTTP URLs.
+
+ *graph_attrs*, *node_attrs*, *edge_attrs* are dictionaries containing
+ key/value pairs to pass on as graphviz properties.
+ """
+ g_attrs = self.default_graph_attrs.copy()
+ n_attrs = self.default_node_attrs.copy()
+ e_attrs = self.default_edge_attrs.copy()
+ g_attrs.update(graph_attrs)
+ n_attrs.update(node_attrs)
+ e_attrs.update(edge_attrs)
+ if env:
+ g_attrs.update(env.config.inheritance_graph_attrs)
+ n_attrs.update(env.config.inheritance_node_attrs)
+ e_attrs.update(env.config.inheritance_edge_attrs)
+
+ res = []
+ res.append(f'digraph {name} {{\n')
+ res.append(self._format_graph_attrs(g_attrs))
+
+ for name, fullname, bases in self.class_info:
+ # Write the node
+ this_node_attrs = n_attrs.copy()
+ url = urls.get(fullname)
+ if url is not None:
+ this_node_attrs['URL'] = f'"{url}"'
+ this_node_attrs['target'] = '"_top"' # Browser target frame attribute (same page)
+ else:
+ urls_str = format_dict(urls)
+ print(f'inheritance_graph.py: No URL found for {name} ({fullname}) in {urls_str}.',
+ file=sys.stderr)
+ attribute = self._format_node_attrs(this_node_attrs)
+ res.append(f' "{name}" [{attribute}];\n')
+
+ # Write the edges
+ for base_name in bases:
+ attribute = self._format_node_attrs(e_attrs)
+ res.append(f' "{base_name}" -> "{name}" [{attribute}];\n')
+ res.append('}\n')
+ return ''.join(res)
+
+
+if __name__ == "__main__":
+ if len(sys.argv) < 2:
+ print(TEST_DRIVER_USAGE)
+ sys.exit(-1)
+ module = sys.argv[1]
+ class_names = sys.argv[2:]
+ graph = InheritanceGraph(class_names, module)
+ dot = graph.generate_dot("test")
+ print(dot)
diff --git a/sources/pyside6/doc/json_inheritance.py b/sources/pyside6/doc/json_inheritance.py
new file mode 100644
index 000000000..06be33ea4
--- /dev/null
+++ b/sources/pyside6/doc/json_inheritance.py
@@ -0,0 +1,74 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+import json
+import os
+import sys
+from pathlib import Path
+
+
+"""Helpers for determining base classes by reading a JSON
+ file written by shiboken's doc generator."""
+
+
+TEST_DRIVER_USAGE = """Usage: json_inheritance.py class_name json_file
+
+Example:
+python json_inheritance.py PySide6.QtWidgets.QWizard ~/inheritance.json
+"""
+
+
+ENV_VAR = "INHERITANCE_FILE"
+
+
+def strip_module(class_name):
+ return class_name[8:] if class_name.startswith("PySide") else class_name
+
+
+def get_inheritance_entries_recursion(json_dict, class_name):
+ """Get all edges of the inheritance graph of class_name."""
+ result = []
+ bases_entry = json_dict.get(class_name)
+ bases = bases_entry if bases_entry else []
+ node_name = strip_module(class_name)
+ base_list = [strip_module(b) for b in bases]
+ result.append((node_name, class_name, base_list))
+ for b in bases:
+ nested_bases = get_inheritance_entries_recursion(json_dict, b)
+ if nested_bases:
+ result.extend(nested_bases)
+ return result
+
+
+def _get_inheritance_entries_from_json(json_file, class_names):
+ """Get all edges of the inheritance graph of class_name
+ from the JSON file generated by shiboken."""
+ result = []
+ try:
+ with Path(json_file).open("r") as f:
+ json_dict = json.load(f)
+ for c in class_names:
+ result.extend(get_inheritance_entries_recursion(json_dict, c))
+ except (json.JSONDecodeError, KeyError) as e:
+ print(f"Error reading {json_file}: {e}")
+ raise
+ return result
+
+
+def is_inheritance_from_json_enabled():
+ return os.environ.get(ENV_VAR)
+
+
+def get_inheritance_entries_from_json(class_names):
+ json_file = os.environ[ENV_VAR]
+ return _get_inheritance_entries_from_json(json_file, class_names)
+
+
+if __name__ == "__main__":
+ if len(sys.argv) < 2:
+ print(TEST_DRIVER_USAGE)
+ sys.exit(-1)
+ class_name = sys.argv[1]
+ json_file = sys.argv[2]
+ for e in _get_inheritance_entries_from_json(json_file, [class_name]):
+ print(e)
diff --git a/sources/pyside6/doc/modules.rst b/sources/pyside6/doc/modules.rst
index 31937f291..8e77a4616 100644
--- a/sources/pyside6/doc/modules.rst
+++ b/sources/pyside6/doc/modules.rst
@@ -1,5 +1,5 @@
-Qt Modules
-===========
+Qt Modules Supported by Qt for Python
+=====================================
.. toctree::
:hidden:
@@ -7,79 +7,228 @@ Qt Modules
PySide6/Qt*/index
-.. list-table::
- :widths: 150, 150
- :align: left
+.. grid:: 1 3 3 3
+ :gutter: 2
+
+ .. grid-item-card:: :mod:`QtBluetooth <PySide6.QtBluetooth>`
+
+ The Bluetooth API provides connectivity between Bluetooth enabled
+ devices.
+
+
+ .. grid-item-card:: :mod:`QtCharts <PySide6.QtCharts>`
- * - :mod:`Qt Charts <PySide6.QtCharts>`
Provides a set of easy to use chart components.
- - :mod:`QtConcurrent <PySide6.QtConcurrent>`
- Provides high-level APIs that make it possible
- to write multi-threaded programs without using low-level threading
- primitives such as mutexes, read-write locks, wait conditions, or semaphores.
- * - :mod:`QtCore <PySide6.QtCore>`
+
+ .. grid-item-card:: :mod:`QtConcurrent <PySide6.QtConcurrent>`
+
+ Provides high-level APIs that make it possible to write multi-threaded
+ programs without using low-level threading primitives such as mutexes,
+ read-write locks, wait conditions, or semaphores.
+
+
+ .. grid-item-card:: :mod:`QtCore <PySide6.QtCore>`
+
Provides core non-GUI functionality.
- - :mod:`Qt DataVisualization <PySide6.QtDataVisualization>`
- Provides a way to visualize data in 3D as bar, scatter, and surface graphs.
- * - :mod:`QtDesigner <PySide6.QtDesigner>`
- Provides classes to extend Qt Designer.
- - :mod:`QtGui <PySide6.QtGui>`
+
+ .. grid-item-card:: :mod:`QtDataVisualization <PySide6.QtDataVisualization>`
+
+ Provides a way to visualize data in 3D as bar, scatter, and surface
+ graphs.
+
+ .. grid-item-card:: :mod:`QtDBus <PySide6.QtDBus>`
+
+ D-Bus is an Inter-Process Communication (IPC) and Remote Procedure
+ Calling (RPC) mechanism originally developed for Linux to replace
+ existing and competing IPC solutions with one unified protocol
+
+ .. grid-item-card:: :mod:`QtDesigner <PySide6.QtDesigner>`
+
+ Provides classes to extend *Qt Widgets Designer*.
+
+ .. grid-item-card:: :mod:`QtGui <PySide6.QtGui>`
+
Extends QtCore with GUI functionality.
- * - :mod:`QtHelp <PySide6.QtHelp>`
+
+ .. grid-item-card:: :mod:`QtHelp <PySide6.QtHelp>`
+
Provides classes for integrating online documentation in applications.
- - :mod:`QtNetwork <PySide6.QtNetwork>`
+
+ .. grid-item-card:: :mod:`Qt Multimedia <PySide6.QtMultimedia>`
+
+ Provides API for multimedia-specific use cases.
+
+ .. grid-item-card:: :mod:`Qt Multimedia Widgets <PySide6.QtMultimediaWidgets>`
+
+ Provides the widget-based multimedia API.
+
+ .. grid-item-card:: :mod:`QtNetwork <PySide6.QtNetwork>`
+
Offers classes that let you to write TCP/IP clients and servers.
- * - :mod:`QtOpenGL <PySide6.QtOpenGL>`
+
+ .. grid-item-card:: :mod:`Qt Network Authorization <PySide6.QtNetworkAuth>`
+
+ Provides a set of APIs that enable Qt applications to obtain limited
+ access to online accounts and HTTP services without exposing users'
+ passwords.
+
+ .. grid-item-card:: :mod:`QtNfc <PySide6.QtNfc>`
+
+ The NFC API provides connectivity between NFC enabled devices.
+
+ .. grid-item-card:: :mod:`QtOpenGL <PySide6.QtOpenGL>`
+
Offers classes that make it easy to use OpenGL in Qt applications.
- - :mod:`QtOpenGLFunctions <PySide6.QtOpenGLFunctions>`
- The QOpenGLFunctions class provides cross-platform access to the OpenGL ES 2.0 API.
- * - :mod:`QtOpenGLWidgets <PySide6.QtOpenGLWidgets>`
- The QOpenGLWidget class is a widget for rendering OpenGL graphics.
- - :mod:`QtPrintSupport <PySide6.QtPrintSupport>`
+
+ .. grid-item-card:: :mod:`QtOpenGL Widgets <PySide6.QtOpenGLWidgets>`
+
+ Provides the OpenGLWidget class enabling OpenGL rendering for
+ a certain part of the widget tree.
+
+ .. grid-item-card:: :mod:`Qt Positioning <PySide6.QtPositioning>`
+
+ Provides access to position, satellite info and area monitoring
+ classes.
+
+ .. grid-item-card:: :mod:`Qt PDF <PySide6.QtPdf>`
+
+ Classes and functions for rendering PDF documents.
+
+ .. grid-item-card:: :mod:`Qt PDF Widgets <PySide6.QtPdfWidgets>`
+
+ A PDF viewer widget.
+
+ .. grid-item-card:: :mod:`QtPrintSupport <PySide6.QtPrintSupport>`
+
Provides extensive cross-platform support for printing.
- * - :mod:`QtQml <PySide6.QtQml>`
+
+ .. grid-item-card:: :mod:`QtQml <PySide6.QtQml>`
+
Python API for Qt QML.
- - :mod:`QtQuick <PySide6.QtQuick>`
+
+ .. grid-item-card:: :mod:`QtQuick <PySide6.QtQuick>`
+
Provides classes for embedding Qt Quick in Qt applications.
- * - :mod:`QtQuickControls2 <PySide6.QtQuickControls2>`
+
+ .. grid-item-card:: :mod:`QtQuickControls2 <PySide6.QtQuickControls2>`
+
Provides classes for setting up the controls from C++.
- - :mod:`QtQuickWidgets <PySide6.QtQuickWidgets>`
+
+ .. grid-item-card:: :mod:`QtQuickTest <PySide6.QtQuickTest>`
+
+ A unit test framework for QML applications where test cases are written as JavaScript functions.
+
+ .. grid-item-card:: :mod:`QtQuickWidgets <PySide6.QtQuickWidgets>`
+
Provides the QQuickWidget class for embedding Qt Quick in widget-based applications.
- * - :mod:`Qt Scxml <PySide6.QtScxml>`
+
+ .. grid-item-card:: :mod:`QtRemoteObjects <PySide6.QtRemoteObjects>`
+
+ Inter-Process Communication (IPC) module developed for Qt. This module
+ extends Qt's existing functionalities to enable information exchange
+ between processes or computers, easily.
+
+ .. grid-item-card:: :mod:`Qt Scxml <PySide6.QtScxml>`
+
Provides classes to create and use state machines from SCXML files.
- - :mod:`QtSql <PySide6.QtSql>`
- Helps you provide seamless database integration to your Qt applications.
- * - :mod:`QtStateMachine <PySide6.QtStateMachine>`
+
+ .. grid-item-card:: :mod:`Qt Sensors <PySide6.QtSensors>`
+
+ Provides access to sensor hardware.
+
+ .. grid-item-card:: :mod:`Qt Serial Bus <PySide6.QtSerialBus>`
+
+ Provides access to serial industrial bus interfaces. Currently, the
+ module supports the CAN bus and Modbus protocols.
+
+ .. grid-item-card:: :mod:`Qt Serial Port <PySide6.QtSerialPort>`
+
+ Provides classes to interact with hardware and virtual serial ports.
+
+ .. grid-item-card:: :mod:`Qt Spatial Audio <PySide6.QtSpatialAudio>`
+
+ Provides APIs for modeling sound source and their surrounds in 3D
+ space.
+
+ .. grid-item-card:: :mod:`QtSql <PySide6.QtSql>`
+
+ Helps you provide seamless database integration to your Qt
+ applications.
+
+ .. grid-item-card:: :mod:`QtStateMachine <PySide6.QtStateMachine>`
+
Provides classes for creating and executing state graphs.
- - :mod:`QtSvg <PySide6.QtSvg>`
+
+ .. grid-item-card:: :mod:`QtSvg <PySide6.QtSvg>`
+
Provides classes for displaying the contents of SVG files.
- * - :mod:`QtSvgWidgets <PySide6.QtSvgWidgets>`
+
+ .. grid-item-card:: :mod:`QtSvgWidgets <PySide6.QtSvgWidgets>`
+
Provides a widget that is used to display the contents of SVG files.
- - :mod:`QtTest <PySide6.QtTest>`
+
+ .. grid-item-card:: :mod:`QtTest <PySide6.QtTest>`
+
Provides classes for unit testing Qt applications and libraries.
- * - :mod:`QtUiTools <PySide6.QtUiTools>`
- Provides classes to handle forms created with Qt Designer.
- - :mod:`QtWidgets <PySide6.QtWidgets>`
+
+ .. grid-item-card:: :mod:`QtUiTools <PySide6.QtUiTools>`
+
+ Provides classes to handle forms created with *Qt Widgets Designer*.
+
+ .. grid-item-card:: :mod:`Qt WebChannel <PySide6.QtWebChannel>`
+
+ Provides access to QObject or QML objects from HTML clients for
+ seamless integration of Qt applications with HTML/JavaScript clients.
+
+ .. grid-item-card:: :mod:`QtWebEngine Core C++ Classes <PySide6.QtWebEngineCore>`
+
+ Provides public API shared by both QtWebEngine and QtWebEngineWidgets.
+
+ .. grid-item-card:: :mod:`QtWebEngine Widgets C++ Classes <PySide6.QtWebEngineWidgets>`
+
+ Provides C++ classes for rendering web content in a QWidget based
+ application.
+
+ .. grid-item-card:: :mod:`QtWebEngine QML Types <PySide6.QtWebEngineQuick>`
+
+ Provides QML types for rendering web content within a QML application.
+
+ .. grid-item-card:: :mod:`Qt WebSockets <PySide6.QtWebSockets>`
+
+ Provides WebSocket communication compliant with RFC 6455.
+
+ .. grid-item-card:: :mod:`QtWidgets <PySide6.QtWidgets>`
+
Extends Qt GUI with C++ widget functionality.
- * - :mod:`QtXml <PySide6.QtXml>`
+
+ .. grid-item-card:: :mod:`QtXml <PySide6.QtXml>`
+
Provides a C++ implementation of DOM.
- - :mod:`Qt 3D Animation <PySide6.Qt3DAnimation>`
+
+ .. grid-item-card:: :mod:`Qt3DAnimation <PySide6.Qt3DAnimation>`
+
Provides basic elements required to animate 3D objects.
- * - :mod:`Qt WebEngine Core C++ Classes <PySide6.QtWebEngineCore>`
- Provides public API shared by both QtWebEngine and QtWebEngineWidgets.
- - :mod:`Qt WebEngine Widgets C++ Classes <PySide6.QtWebEngineWidgets>`
- Provides C++ classes for rendering web content in a QWidget based application.
- * - :mod:`Qt WebEngine QML Types <PySide6.QtWebEngineQuick>`
- Provides QML types for rendering web content within a QML application.
- -
- * - :mod:`Qt 3D Core <PySide6.Qt3DCore>`
+
+ .. grid-item-card:: :mod:`Qt3D Core <PySide6.Qt3DCore>`
+
Contains functionality to support near-realtime simulation systems.
- - :mod:`Qt 3D Extras <PySide6.Qt3DExtras>`
+
+ .. grid-item-card:: :mod:`Qt3D Extras <PySide6.Qt3DExtras>`
+
Provides a set of prebuilt elements to help you get started with Qt 3D.
- * - :mod:`Qt 3D Input <PySide6.Qt3DInput>`
+
+ .. grid-item-card:: :mod:`Qt3D Input <PySide6.Qt3DInput>`
+
Provides classes for handling user input in applications using Qt 3D.
- - :mod:`Qt 3D Logic <PySide6.Qt3DLogic>`
+
+ .. grid-item-card:: :mod:`Qt3D Logic <PySide6.Qt3DLogic>`
+
Enables synchronizing frames with the Qt 3D backend.
- * - :mod:`Qt 3D Render <PySide6.Qt3DRender>`
+
+ .. grid-item-card:: :mod:`Qt3D Render <PySide6.Qt3DRender>`
+
Contains functionality to support 2D and 3D rendering using Qt 3D.
- -
+
+ .. grid-item-card:: :mod:`QtAsyncio <PySide6.QtAsyncio>`
+
+ Provides integration between asyncio and Qt's event loop.
diff --git a/sources/pyside6/doc/porting_from2.rst b/sources/pyside6/doc/porting_from2.rst
deleted file mode 100644
index aa3e41780..000000000
--- a/sources/pyside6/doc/porting_from2.rst
+++ /dev/null
@@ -1,100 +0,0 @@
-Porting Applications from PySide2 to PySide6
-============================================
-
-Module Availability
--------------------
-
-Qt for Python 6.0.0 initially ships with the essential
-`Modules <https://doc.qt.io/qt-6/qtmodules.html>`_ and some
-add-ons (Qt 3D, Qt Concurrent, Qt Help, Qt OpenGL, Qt Print Support
-Qt Quick Widgets, Qt SQL, Qt SVG, Qt UI Tools and Qt XML).
-
-More modules will follow in subsequent releases as they
-are added to Qt.
-
-For Qt for Python 6.1, Active Qt, Qt Charts, Qt Data Visualization,
-Qt StateMachine and Qt SCXML are planned.
-
-Module-Level Changes
---------------------
-
-* *Qt Quick Controls 1* have been removed.
-* ``QStateMachine`` and related classes have been extracted to a new
- *QtStateMachine* module.
-* ``QXmlReader`` and related classes (*SAX API*) have been removed.
-* The content of the *QtOpenGL* module has been replaced. The class
- ``QGLWidget`` and related classes (``QGLContext``, ``QGLFunctions``,
- ``QGLShaderProgram``) have been removed. Parts of the *Open GL*
- functionality from *QtGui* have been extracted into this module, for example
- ``QOpenGLBuffer`` and ``QOpenGLShaderProgram``.
- There is a new module *QtOpenGLWidgets* which contains the class
- ``QOpenGLWidget``, a replacement for ``QGLWidget``.
-
-As *Open GL* is phasing out,
-`QRhi <https://doc.qt.io/qt-6/topics-graphics.html>`_ should be considered
-for graphics applications.
-
-Imports
--------
-
-The first thing to do when porting applications is to replace the
-import statements:
-
-.. code-block:: python
-
- from PySide2.QtWidgets import QApplication...
- from PySide2 import QtCore
-
-needs to be changed to:
-
-.. code-block:: python
-
- from PySide6.QtWidgets import QApplication...
- from PySide6 import QtCore
-
-
-Some classes are in a different module now, for example
-``QAction`` and ``QShortcut`` have been moved from ``QtWidgets`` to ``QtGui``.
-
-For *Qt Charts* and *Qt Data Visualization*, the additional namespaces have been
-removed. It is now possible to use:
-
-.. code-block:: python
-
- from PySide6.QtCharts import QChartView
-
-directly.
-
-
-Class/Function Deprecations
----------------------------
-
-Then, the code base needs to be checked for usage of deprecated API and adapted
-accordingly. For example:
-
- * The High DPI scaling attributes ``Qt.AA_EnableHighDpiScaling``,
- ``Qt.AA_DisableHighDpiScaling`` and ``Qt.AA_UseHighDpiPixmaps`` are
- deprecated. High DPI is by default enabled in Qt 6 and cannot be turned off.
- * ``QDesktopWidget`` has been removed. ``QScreen`` should be used instead,
- which can be retrieved using ``QWidget.screen()``,
- ``QGuiApplication.primaryScreen()`` or ``QGuiApplication.screens()``.
- * ``QFontMetrics.width()`` has been renamed to ``horizontalAdvance()``.
- * ``QMouseEvent.pos()`` and ``QMouseEvent.globalPos()`` returning a ``QPoint``
- as well as ``QMouseEvent.x()`` and ``QMouseEvent.y()`` returning ``int``
- are now deprecated. ``QMouseEvent.position()`` and
- ``QMouseEvent.globalPosition()`` returning a ``QPointF`` should be used
- instead.
- * ``Qt.MidButton`` has been renamed to ``Qt.MiddleButton``.
- * ``QOpenGLVersionFunctionsFactory.get()`` instead of
- ``QOpenGLContext.versionFunctions()`` should be used to obtain
- *Open GL* functions.
- * ``QRegExp`` has been replaced by ``QRegularExpression``.
- * ``QWidget.mapToGlobal()`` and ``QWidget.mapFromGlobal()`` now also accept
- and return ``QPointF``.
- * Functions named ``exec_`` (classes ``QCoreApplication``, ``QDialog``,
- ``QEventLoop``) have been renamed to ``exec`` which became possible
- in Python 3.
-
-More information can be found in the
-`Porting to Qt 6 <https://doc.qt.io/qt-6/portingguide.html>`_ Guide
-and the `Qt 6.0 Documentation <https://doc.qt.io/qt-6/index.html>`_ .
diff --git a/sources/pyside6/doc/pysideinclude.py b/sources/pyside6/doc/pysideinclude.py
index 91fffe115..8e2834cce 100644
--- a/sources/pyside6/doc/pysideinclude.py
+++ b/sources/pyside6/doc/pysideinclude.py
@@ -11,9 +11,9 @@ from os import path
from docutils import nodes
from docutils.parsers.rst import Directive, directives
-from sphinx import addnodes
from sphinx.util import parselinenos
+
class PySideInclude(Directive):
"""
Like ``.. include:: :literal:``, but only warns if the include file is
@@ -68,7 +68,7 @@ class PySideInclude(Directive):
codec_info = codecs.lookup(encoding)
try:
f = codecs.StreamReaderWriter(open(fn, 'Ub'),
- codec_info[2], codec_info[3], 'strict')
+ codec_info[2], codec_info[3], 'strict')
lines = f.readlines()
f.close()
except (IOError, OSError):
@@ -91,7 +91,7 @@ class PySideInclude(Directive):
'Object named %r not found in include file %r' %
(objectname, filename), line=self.lineno)]
else:
- lines = lines[tags[objectname][1]-1 : tags[objectname][2]-1]
+ lines = lines[tags[objectname][1] - 1: tags[objectname][2] - 1]
linespec = self.options.get('lines')
if linespec is not None:
@@ -102,10 +102,10 @@ class PySideInclude(Directive):
lines = [lines[i] for i in linelist]
startafter = self.options.get('start-after')
- endbefore = self.options.get('end-before')
- prepend = self.options.get('prepend')
- append = self.options.get('append')
- snippet = self.options.get('snippet')
+ endbefore = self.options.get('end-before')
+ prepend = self.options.get('prepend')
+ append = self.options.get('append')
+ snippet = self.options.get('snippet')
if snippet:
startafter = "//![%s]" % snippet
@@ -126,9 +126,9 @@ class PySideInclude(Directive):
lines = res
if prepend:
- lines.insert(0, prepend + '\n')
+ lines.insert(0, prepend + '\n')
if append:
- lines.append(append + '\n')
+ lines.append(append + '\n')
text = ''.join(lines)
if self.options.get('tab-width'):
@@ -143,5 +143,6 @@ class PySideInclude(Directive):
document.settings.env.note_dependency(rel_fn)
return [retnode]
+
def setup(app):
app.add_directive('pysideinclude', PySideInclude)
diff --git a/sources/pyside6/doc/qdoc_spawner.py.in b/sources/pyside6/doc/qdoc_spawner.py.in
new file mode 100644
index 000000000..d9d434366
--- /dev/null
+++ b/sources/pyside6/doc/qdoc_spawner.py.in
@@ -0,0 +1,105 @@
+# Copyright (C) 2024 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+import argparse
+import subprocess
+import os
+import sys
+import time
+from multiprocessing import Pool, cpu_count
+from pathlib import Path
+
+
+def run_qdoc(file, qdoc_args, args):
+ env = os.environ
+ env["BUILDDIR"] = args.build_dir
+ env["QT_INSTALL_DOCS"] = args.qt_install_docs
+ env["QT_VERSION"] = args.qt_version
+ env["QT_VER"] = ".".join(args.qt_version.split(".")[:2])
+ env["QT_VERSION_TAG"] = args.qt_version
+
+ command = [
+ args.qdoc_bin,
+ file,
+ *qdoc_args,
+ "-installdir",
+ args.doc_data_dir,
+ "-outputdir",
+ args.doc_data_dir,
+ ]
+
+ start_time = time.time()
+ _ = subprocess.Popen(command, env=env, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ out, err = _.communicate()
+ returncode = _.wait()
+ duration = round(time.time() - start_time)
+
+ if args.verbose or returncode != 0 or err:
+ cmd_str = " ".join(command)
+ print(f"> Output of: {cmd_str}")
+ if out:
+ print(out.decode("utf-8"), file=sys.stdout)
+ if err:
+ print(err.decode("utf-8"), file=sys.stderr)
+ print(f"> Finished: {file} {duration}s (exit code {returncode})")
+
+ if returncode != 0:
+ raise Exception(f"Failing executing the command {command} ({returncode})")
+
+
+def get_qdocconf_files():
+ if not Path("pyside.qdocconf").exists():
+ print("ERROR: the working dir doesn't include a 'pyside.qdocconf' file")
+ sys.exit(-1)
+
+ # Generate the temporary qdocconf files
+ # This is necessary because using a file like 'pyside-qtcore.qtdocconf'
+ # will generate an error, because inside we call functions like 'include()'
+ files_single_exec = []
+ files_prepare = []
+ with open("pyside.qdocconf") as f:
+ for i in f.read().splitlines():
+ _p = Path(i)
+ _name = f"_{_p.stem}.qdocconf"
+ with open(_name, "w", encoding="utf-8") as f:
+ f.write(i)
+ files_single_exec.append(_name)
+ files_prepare.append(i.strip())
+
+ return files_prepare, files_single_exec
+
+
+if __name__ == "__main__":
+ parser = argparse.ArgumentParser(prog="qdoc spawner")
+ parser.add_argument("--qt", dest="qt_version", action="store", required=True)
+ parser.add_argument("--doc-data-dir", dest="doc_data_dir", action="store", required=True)
+ parser.add_argument("--qdoc-binary", dest="qdoc_bin", action="store", required=True)
+ parser.add_argument("--build-dir", dest="build_dir", action="store", required=True)
+ parser.add_argument("--qt-install-docs", dest="qt_install_docs", action="store", required=True)
+ parser.add_argument("--parallel", dest="parallel", action="store", default="4")
+ parser.add_argument("--verbose", dest="verbose", action="store_true", default=False)
+
+ args = parser.parse_args()
+
+ core_index = Path(args.doc_data_dir) / "webxml" / "qtcore-index.webxml"
+ if core_index.is_file():
+ print(f"qdoc_spawner: {core_index} already exists, bailing out")
+ sys.exit(0)
+
+ files_prepare, files_single_exec = get_qdocconf_files()
+
+ parallel = args.parallel
+ if parallel == "auto":
+ parallel = cpu_count()
+
+ try:
+ # mode: -prepare -no-link-errors
+ with Pool(int(parallel)) as p:
+ p.starmap(run_qdoc, [(str(f), ["-prepare", "-no-link-errors"], args) for f in files_prepare])
+
+ # mode: -single-exec
+ with Pool(int(parallel)) as p:
+ p.starmap(run_qdoc, [(str(f), ["-single-exec"], args) for f in files_single_exec])
+ except Exception as e:
+ print(f"qdoc_spawner: error: {e}", file=sys.stderr)
+ sys.exit(-1)
diff --git a/sources/pyside6/doc/qtattributionsscannertorst.py b/sources/pyside6/doc/qtattributionsscannertorst.py
index dbc8040d0..677371c45 100644
--- a/sources/pyside6/doc/qtattributionsscannertorst.py
+++ b/sources/pyside6/doc/qtattributionsscannertorst.py
@@ -1,41 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
"""
Tool to run qtattributionsscanner and convert its output to rst
@@ -44,18 +8,25 @@ Tool to run qtattributionsscanner and convert its output to rst
import os
import json
import subprocess
-import sys
import warnings
+from argparse import ArgumentParser, RawTextHelpFormatter
from pathlib import Path
+USAGE = "Usage: qtattributionsscannertorst [directory] [file]'"
+
+
+libexec_dir = None
+
+
def indent(lines, indent):
result = ''
- for l in lines:
- result = f"{result}{indent}{l}\n"
+ for line in lines:
+ result = f"{result}{indent}{line}\n"
return result
-rstHeader="""Licenses Used in Qt for Python
+
+rstHeader = """Licenses Used in Qt for Python
******************************
Qt for Python contains some code that is not provided under the
@@ -75,35 +46,43 @@ Third-party Licenses
The licenses for the third-party sources used by Qt itself are listed
in
-`Qt documentation <http://doc.qt.io/qt-5/licenses-used-in-qt.html>`_.
+`Qt documentation <https://doc.qt.io/qt-5/licenses-used-in-qt.html>`_.
The following table lists parts of Qt for Python that incorporates
code licensed under third-party opensource licenses:
"""
+
def rstHeadline(title):
return f"{title}\n{'-' * len(title)}\n"
+
def rstUrl(title, url):
return f"`{title} <{url}>`_"
+
def rstLiteralBlock(lines):
return f"::\n\n{indent(lines, ' ')}\n\n"
+
def rstLiteralBlockFromText(text):
return rstLiteralBlock(text.strip().split('\n'))
+
def readFile(fileName):
with open(fileName, 'r') as file:
return file.readlines()
-def runScanner(directory, targetFileName):
+
+def get_libexec_dir():
+ libexec_b = subprocess.check_output("qtpaths6 -query QT_INSTALL_LIBEXECS", shell=True)
+ return libexec_b.decode('utf-8').strip()
+
+
+def runScanner(directory, targetFileName, libexec_dir):
# qtattributionsscanner recursively searches for qt_attribution.json files
# and outputs them in JSON with the paths of the 'LicenseFile' made absolute
- libexec_b = subprocess.check_output('qtpaths -query QT_INSTALL_LIBEXECS',
- shell=True)
- libexec = libexec_b.decode('utf-8').strip()
- scanner = os.path.join(libexec, 'qtattributionsscanner')
+ scanner = os.path.join(libexec_dir, 'qtattributionsscanner')
command = f'{scanner} --output-format json {directory}'
jsonS = subprocess.check_output(command, shell=True)
if not jsonS:
@@ -116,7 +95,7 @@ def runScanner(directory, targetFileName):
url = entry['Homepage']
version = entry['Version']
if url and version:
- content = f"{content}{rstUrl('Project Homepage', url)}, upstream version: {version}\n\n"
+ content = f"{content}{rstUrl('Project Homepage', url)}, upstream version: {version}\n\n" # noqa E:501
copyright = entry['Copyright']
if copyright:
content += rstLiteralBlockFromText(copyright)
@@ -129,10 +108,16 @@ def runScanner(directory, targetFileName):
warnings.warn(f'"{licenseFile}" is not a file', RuntimeWarning)
targetFile.write(content)
-if len(sys.argv) < 3:
- print("Usage: qtattributionsscannertorst [directory] [file]'")
- sys.exit(0)
-directory = sys.argv[1]
-targetFileName = sys.argv[2]
-runScanner(directory, targetFileName)
+if __name__ == '__main__':
+ parser = ArgumentParser(description=USAGE, formatter_class=RawTextHelpFormatter)
+ parser.add_argument("-l", "--libexec", type=str, help="libexec directory of Qt")
+ parser.add_argument('directory')
+ parser.add_argument('target')
+ options = parser.parse_args()
+ directory = options.directory
+ targetFileName = options.target
+ libexec_dir = options.libexec
+ if not libexec_dir:
+ libexec_dir = get_libexec_dir()
+ runScanner(directory, targetFileName, libexec_dir)
diff --git a/sources/pyside6/doc/qtmodules/pyside-qtbluetooth.qdocconf.in b/sources/pyside6/doc/qtmodules/pyside-qtbluetooth.qdocconf.in
new file mode 100644
index 000000000..0867ff0c2
--- /dev/null
+++ b/sources/pyside6/doc/qtmodules/pyside-qtbluetooth.qdocconf.in
@@ -0,0 +1,2 @@
+include(@QT_SRC_DIR@/../qtconnectivity/src/bluetooth/doc/qtbluetooth.qdocconf)
+include(../pyside-config.qdocconf)
diff --git a/sources/pyside6/doc/qtmodules/pyside-qtdbus.qdocconf.in b/sources/pyside6/doc/qtmodules/pyside-qtdbus.qdocconf.in
new file mode 100644
index 000000000..d291d92bd
--- /dev/null
+++ b/sources/pyside6/doc/qtmodules/pyside-qtdbus.qdocconf.in
@@ -0,0 +1,2 @@
+include(@QT_SRC_DIR@/src/dbus/doc/qtdbus.qdocconf)
+include(../pyside-config.qdocconf)
diff --git a/sources/pyside6/doc/qtmodules/pyside-qtdoc.qdocconf.in b/sources/pyside6/doc/qtmodules/pyside-qtdoc.qdocconf.in
new file mode 100644
index 000000000..88cc3eac4
--- /dev/null
+++ b/sources/pyside6/doc/qtmodules/pyside-qtdoc.qdocconf.in
@@ -0,0 +1,2 @@
+include(@QT_SRC_DIR@/../qtdoc/doc/config/qtdoc.qdocconf)
+include(../pyside-config.qdocconf)
diff --git a/sources/pyside6/doc/qtmodules/pyside-qtlocation.qdocconf.in b/sources/pyside6/doc/qtmodules/pyside-qtlocation.qdocconf.in
deleted file mode 100644
index 5536e0c8b..000000000
--- a/sources/pyside6/doc/qtmodules/pyside-qtlocation.qdocconf.in
+++ /dev/null
@@ -1,3 +0,0 @@
-include(@QT_SRC_DIR@/../qtlocation/src/location/doc/qtlocation.qdocconf)
-includepaths += -I @QT_SRC_DIR@/../qtlocation/src/location/doc
-include(../pyside-config.qdocconf)
diff --git a/sources/pyside6/doc/qtmodules/pyside-qtmacextras.qdocconf.in b/sources/pyside6/doc/qtmodules/pyside-qtmacextras.qdocconf.in
deleted file mode 100644
index 3e0e40019..000000000
--- a/sources/pyside6/doc/qtmodules/pyside-qtmacextras.qdocconf.in
+++ /dev/null
@@ -1,2 +0,0 @@
-include(@QT_SRC_DIR@/../qtmacextras/src/macextras/doc/qtmacextras.qdocconf)
-include(../pyside-config.qdocconf)
diff --git a/sources/pyside6/doc/qtmodules/pyside-qtnetworkauth.qdocconf.in b/sources/pyside6/doc/qtmodules/pyside-qtnetworkauth.qdocconf.in
new file mode 100644
index 000000000..45a20bdd9
--- /dev/null
+++ b/sources/pyside6/doc/qtmodules/pyside-qtnetworkauth.qdocconf.in
@@ -0,0 +1,2 @@
+include(@QT_SRC_DIR@/../qtnetworkauth/src/oauth/doc/qtnetworkauth.qdocconf)
+include(../pyside-config.qdocconf)
diff --git a/sources/pyside6/doc/qtmodules/pyside-qtnfc.qdocconf.in b/sources/pyside6/doc/qtmodules/pyside-qtnfc.qdocconf.in
new file mode 100644
index 000000000..833bbc019
--- /dev/null
+++ b/sources/pyside6/doc/qtmodules/pyside-qtnfc.qdocconf.in
@@ -0,0 +1,2 @@
+include(@QT_SRC_DIR@/../qtconnectivity/src/nfc/doc/qtnfc.qdocconf)
+include(../pyside-config.qdocconf)
diff --git a/sources/pyside6/doc/qtmodules/pyside-qtpdf.qdocconf.in b/sources/pyside6/doc/qtmodules/pyside-qtpdf.qdocconf.in
new file mode 100644
index 000000000..43eb302af
--- /dev/null
+++ b/sources/pyside6/doc/qtmodules/pyside-qtpdf.qdocconf.in
@@ -0,0 +1,3 @@
+include(@QT_SRC_DIR@/../qtwebengine/src/pdf/doc/qtpdf.qdocconf)
+includepaths += -I @QT_SRC_DIR@/../qtwebengine/src/pdf/doc
+include(../pyside-config.qdocconf)
diff --git a/sources/pyside6/doc/qtmodules/pyside-qtpositioning.qdocconf.in b/sources/pyside6/doc/qtmodules/pyside-qtpositioning.qdocconf.in
index 4a2c677d5..f08a1ec07 100644
--- a/sources/pyside6/doc/qtmodules/pyside-qtpositioning.qdocconf.in
+++ b/sources/pyside6/doc/qtmodules/pyside-qtpositioning.qdocconf.in
@@ -1,3 +1,3 @@
-include(@QT_SRC_DIR@/../qtlocation/src/positioning/doc/qtpositioning.qdocconf)
-includepaths += -I @QT_SRC_DIR@/../qtlocation/src/positioning/doc
+include(@QT_SRC_DIR@/../qtpositioning/src/positioning/doc/qtpositioning.qdocconf)
+includepaths += -I @QT_SRC_DIR@/../qtpositioning/src/positioning/doc
include(../pyside-config.qdocconf)
diff --git a/sources/pyside6/doc/qtmodules/pyside-qtquickcontrols2.qdocconf.in b/sources/pyside6/doc/qtmodules/pyside-qtquickcontrols2.qdocconf.in
index bfd339ba6..4d0a55946 100644
--- a/sources/pyside6/doc/qtmodules/pyside-qtquickcontrols2.qdocconf.in
+++ b/sources/pyside6/doc/qtmodules/pyside-qtquickcontrols2.qdocconf.in
@@ -1,3 +1,3 @@
-include(@QT_SRC_DIR@/../qtdeclarative/src/quickcontrols2/doc/qtquickcontrols.qdocconf)
-includepaths += -I @QT_SRC_DIR@/../qtquickcontrols2/src/quickcontrols2
+include(@QT_SRC_DIR@/../qtdeclarative/src/quickcontrols/doc/qtquickcontrols.qdocconf)
+includepaths += -I @QT_SRC_DIR@/../qtdeclarative/src/quickcontrols
include(../pyside-config.qdocconf)
diff --git a/sources/pyside6/doc/qtmodules/pyside-qtquicktest.qdocconf.in b/sources/pyside6/doc/qtmodules/pyside-qtquicktest.qdocconf.in
new file mode 100644
index 000000000..1d8397537
--- /dev/null
+++ b/sources/pyside6/doc/qtmodules/pyside-qtquicktest.qdocconf.in
@@ -0,0 +1,3 @@
+include(@QT_SRC_DIR@/../qtdeclarative/src/qmltest/doc/qtqmltest.qdocconf)
+includepaths += -I @QT_SRC_DIR@/../qtdeclarative/src/qmltest
+include(../pyside-config.qdocconf)
diff --git a/sources/pyside6/doc/qtmodules/pyside-qtremoteobjects.qdocconf.in b/sources/pyside6/doc/qtmodules/pyside-qtremoteobjects.qdocconf.in
new file mode 100644
index 000000000..dfad130e6
--- /dev/null
+++ b/sources/pyside6/doc/qtmodules/pyside-qtremoteobjects.qdocconf.in
@@ -0,0 +1,2 @@
+include(@QT_SRC_DIR@/../qtremoteobjects/src/remoteobjects/doc/qtremoteobjects.qdocconf)
+include(../pyside-config.qdocconf)
diff --git a/sources/pyside6/doc/qtmodules/pyside-qtserialbus.qdocconf.in b/sources/pyside6/doc/qtmodules/pyside-qtserialbus.qdocconf.in
new file mode 100644
index 000000000..4c67664a5
--- /dev/null
+++ b/sources/pyside6/doc/qtmodules/pyside-qtserialbus.qdocconf.in
@@ -0,0 +1,2 @@
+include(@QT_SRC_DIR@/../qtserialbus/src/serialbus/doc/qtserialbus.qdocconf)
+include(../pyside-config.qdocconf)
diff --git a/sources/pyside6/doc/qtmodules/pyside-qtserialport.qdocconf.in b/sources/pyside6/doc/qtmodules/pyside-qtserialport.qdocconf.in
new file mode 100644
index 000000000..da1b75f7d
--- /dev/null
+++ b/sources/pyside6/doc/qtmodules/pyside-qtserialport.qdocconf.in
@@ -0,0 +1,2 @@
+include(@QT_SRC_DIR@/../qtserialport/src/serialport/doc/qtserialport.qdocconf)
+include(../pyside-config.qdocconf)
diff --git a/sources/pyside6/doc/qtmodules/pyside-qtspatialaudio.qdocconf.in b/sources/pyside6/doc/qtmodules/pyside-qtspatialaudio.qdocconf.in
new file mode 100644
index 000000000..be64648a5
--- /dev/null
+++ b/sources/pyside6/doc/qtmodules/pyside-qtspatialaudio.qdocconf.in
@@ -0,0 +1,3 @@
+include(@QT_SRC_DIR@/../qtmultimedia/src/spatialaudio/doc/qtspatialaudio.qdocconf)
+includepaths += -I @QT_SRC_DIR@/../qtmultimedia/src/spatialaudio/doc
+include(../pyside-config.qdocconf)
diff --git a/sources/pyside6/doc/qtmodules/pyside-qttexttospeech.qdocconf.in b/sources/pyside6/doc/qtmodules/pyside-qttexttospeech.qdocconf.in
index ed49121c1..175b0f4f8 100644
--- a/sources/pyside6/doc/qtmodules/pyside-qttexttospeech.qdocconf.in
+++ b/sources/pyside6/doc/qtmodules/pyside-qttexttospeech.qdocconf.in
@@ -1,3 +1,3 @@
-include(@QT_SRC_DIR@/../qtspeech/src/doc/qtspeech.qdocconf)
-includepaths += -I @QT_SRC_DIR@/../qtspeech/src/doc
+include(@QT_SRC_DIR@/../qtspeech/src/tts/doc/qttexttospeech.qdocconf)
+includepaths += -I @QT_SRC_DIR@/../qtspeech/src/tts/doc
include(../pyside-config.qdocconf)
diff --git a/sources/pyside6/doc/qtmodules/pyside-qtuitools.qdocconf.in b/sources/pyside6/doc/qtmodules/pyside-qtuitools.qdocconf.in
index 7bd3941f7..a950a0b4b 100644
--- a/sources/pyside6/doc/qtmodules/pyside-qtuitools.qdocconf.in
+++ b/sources/pyside6/doc/qtmodules/pyside-qtuitools.qdocconf.in
@@ -1,2 +1,2 @@
-include(@QT_SRC_DIR@/../qttools/src/designer/src/uitools/doc/qtuitools.qdocconf)
+include(@QT_SRC_DIR@/../qttools/src/uitools/doc/qtuitools.qdocconf)
include(../pyside-config.qdocconf)
diff --git a/sources/pyside6/doc/qtmodules/pyside-qtwinextras.qdocconf.in b/sources/pyside6/doc/qtmodules/pyside-qtwinextras.qdocconf.in
deleted file mode 100644
index d2c1d5be7..000000000
--- a/sources/pyside6/doc/qtmodules/pyside-qtwinextras.qdocconf.in
+++ /dev/null
@@ -1,2 +0,0 @@
-include(@QT_SRC_DIR@/../qtwinextras/src/winextras/doc/qtwinextras.qdocconf)
-include(../pyside-config.qdocconf)
diff --git a/sources/pyside6/doc/qtmodules/pyside-qtx11extras.qdocconf.in b/sources/pyside6/doc/qtmodules/pyside-qtx11extras.qdocconf.in
deleted file mode 100644
index 9315fa58c..000000000
--- a/sources/pyside6/doc/qtmodules/pyside-qtx11extras.qdocconf.in
+++ /dev/null
@@ -1,2 +0,0 @@
-include(@QT_SRC_DIR@/../qtx11extras/src/x11extras/doc/qtx11extras.qdocconf)
-include(../pyside-config.qdocconf)
diff --git a/sources/pyside6/doc/quickstart.rst b/sources/pyside6/doc/quickstart.rst
index 3764e8269..7e1a210f2 100644
--- a/sources/pyside6/doc/quickstart.rst
+++ b/sources/pyside6/doc/quickstart.rst
@@ -1,44 +1,80 @@
-|project| Quick start
-======================
+.. _quick-start:
+
+Quick start
+===========
+
+New to Qt? Check also the :ref:`faq-section` section at the end of this page.
+In case you own a Qt License, please refer to :ref:`commercial-page`.
+
+.. note:: Having Qt installed in your system will not interfere with your
+ PySide6 installation if you do it via ``pip install``, because the Python
+ packages (wheels) include already Qt binaries. Most notably, style plugins
+ from the system won't have any effect on PySide applications.
Requirements
------------
Before you can install |project|, first you must install the following software:
- * Python 3.6+,
- * We recommend using a virtual environment, such as
- `venv <https://docs.python.org/3/library/venv.html>`_ or
- `virtualenv <https://virtualenv.pypa.io/en/latest>`_
+* Python 3.7+,
+* We **highly** recommend using a virtual environment, such as
+ `venv <https://docs.python.org/3/library/venv.html>`_ or
+ `virtualenv <https://virtualenv.pypa.io/en/latest>`_
+ and avoid installing PySide6 via ``pip`` in your system.
+
+.. note:: For Windows users, please use the interpreter from https://python.org/download
+ rather than the one installed from the Microsoft Store.
Installation
------------
-
-.. raw:: html
-
- <img src="https://qt-wiki-uploads.s3.amazonaws.com/images/8/8a/Pyside6_install.gif"
- style="float: right; width: 35%; padding-left: 20px;"
- alt="PySide6 installation animation" />
+.. note:: For a commercial installation, refer to :ref:`commercial-page`.
* **Creating and activating an environment**
You can do this by running the following on a terminal:
- * :command:`python -m venv env`, (Your Python executable might be called ``python3``)
- * :command:`source env/bin/activate` for Linux and macOS
- * :command:`env\\\Scripts\\\activate.bat` for Windows
+ * Create environment (Your Python executable might be called ``python3``)::
+
+ python -m venv env
-* **Installation**
+ * Activate the environment (Linux and macOS)::
+
+ source env/bin/activate
+
+ * Activate the environment (Windows)::
+
+ env\Scripts\activate.bat
+
+ Check this animation on how to do it:
+
+ .. image:: https://qt-wiki-uploads.s3.amazonaws.com/images/8/8a/Pyside6_install.gif
+ :alt: Installation GIF
+
+* **Installing PySide6**
Now you are ready to install the |project| packages using ``pip``.
From the terminal, run the following command:
- * :command:`pip install pyside6`, for the latest version.
- * :command:`pip install pyside6==6.0`, for the version ``6.0`` specifically.
+ * For the latest version::
+
+ pip install pyside6
+
+ * For a specific version, like 6.4.1::
+
+ pip install pyside6==6.4.1
+
* It is also possible to install a specific snapshot from our servers.
To do so, you can use the following command::
- pip install --index-url=http://download.qt.io/snapshots/ci/pyside/6.0.0/latest pyside6 --trusted-host download.qt.io
+ pip install --index-url=https://download.qt.io/snapshots/ci/pyside/6.4/latest pyside6 --trusted-host download.qt.io
+
+ .. note:: Starting with 6.4.3, PySide6 can be used from inside a
+ `conda <https://conda.io>`_ environment, but any manual changes you make to
+ the ``qt.conf`` file will be ignored. If you want to set custom values to
+ the Qt configuration, set them in a ``qt6.conf`` file instead.
+ Read more about `qt.conf`_.
+
+.. _`qt.conf`: https://doc.qt.io/qt-6/qt-conf.html
* **Test your installation**
@@ -53,8 +89,11 @@ Installation
# Prints the Qt version used to compile PySide6
print(PySide6.QtCore.__version__)
-Create a Simple Application
----------------------------
+.. note:: For more information about what's included in the ``pyside6``
+ package, check :ref:`package_details`.
+
+Create a Simple Qt Widgets Application
+--------------------------------------
Your |project| setup is ready. You can explore it further by developing a simple application
that prints "Hello World" in several languages. The following instructions will
@@ -69,12 +108,12 @@ guide you through the development process:
from PySide6 import QtCore, QtWidgets, QtGui
The |pymodname| Python module provides access to the Qt APIs as its submodule.
- In this case, you are importing the :code:`QtCore`, :code:`QtWidgets`, and :code:`QtGui` submodules.
+ In this case, you are importing the :ref:`QtCore`, :ref:`QtWidgets`, and :ref:`QtGui` submodules.
* **Main Class**
- Define a class named :code:`MyWidget`, which extends QWidget and includes a QPushButton and
- QLabel.::
+ Define a class named :code:`MyWidget`, which extends :ref:`QWidget` and
+ includes a :ref:`QPushButton` and :ref:`QLabel`.::
class MyWidget(QtWidgets.QWidget):
def __init__(self):
@@ -96,8 +135,9 @@ guide you through the development process:
def magic(self):
self.text.setText(random.choice(self.hello))
- The MyWidget class has the :code:`magic` member function that randomly chooses an item from the
- :code:`hello` list. When you click the button, the :code:`magic` function is called.
+ The ``MyWidget`` class has the :code:`magic` member function that randomly
+ chooses an item from the :code:`hello` list. When you click the button, the
+ :code:`magic` function is called.
* **Application execution**
@@ -118,3 +158,130 @@ guide you through the development process:
.. image:: images/screenshot_hello.png
:alt: Hello World application
+
+Create a Simple Quick Application
+---------------------------------
+
+To do the same using Qt Quick:
+
+* **Imports**
+
+ Create a new file named :code:`hello_world_quick.py`, and add the following imports to it.::
+
+ import sys
+ from PySide6.QtGui import QGuiApplication
+ from PySide6.QtQml import QQmlApplicationEngine
+
+* **Declarative UI**
+
+ The UI can be described in the QML language (assigned to a Python variable)::
+
+ QML = """
+ import QtQuick
+ import QtQuick.Controls
+ import QtQuick.Layouts
+
+ Window {
+ width: 300
+ height: 200
+ visible: true
+ title: "Hello World"
+
+ readonly property list<string> texts: ["Hallo Welt", "Hei maailma",
+ "Hola Mundo", "Привет мир"]
+
+ function setText() {
+ var i = Math.round(Math.random() * 3)
+ text.text = texts[i]
+ }
+
+ ColumnLayout {
+ anchors.fill: parent
+
+ Text {
+ id: text
+ text: "Hello World"
+ Layout.alignment: Qt.AlignHCenter
+ }
+ Button {
+ text: "Click me"
+ Layout.alignment: Qt.AlignHCenter
+ onClicked: setText()
+ }
+ }
+ }
+ """
+
+ .. note:: Keep in mind ideally this content should go into
+ a ``qml`` file, but for simplicity, we are using a string variable.
+
+* **Application execution**
+
+ Now, add a main function where you instantiate a :ref:`QQmlApplicationEngine` and
+ load the QML::
+
+ if __name__ == "__main__":
+ app = QGuiApplication(sys.argv)
+ engine = QQmlApplicationEngine()
+ engine.loadData(QML.encode('utf-8'))
+ if not engine.rootObjects():
+ sys.exit(-1)
+ exit_code = app.exec()
+ del engine
+ sys.exit(exit_code)
+
+
+ .. note:: This is a simplified example. Normally, the QML code should be in a separate
+ :code:`.qml` file, which can be edited by design tools.
+
+.. _faq-section:
+
+Frequently Asked Questions
+--------------------------
+
+Here you can find a couple of common questions and situations that will
+clarify questions before you start programming.
+
+.. grid:: 1 3 3 3
+ :gutter: 2
+
+ .. grid-item-card:: What is Qt
+ :link: faq/whatisqt.html
+
+ Qt, QML, Widgets... What is the difference?
+
+ .. grid-item-card:: Compatible IDEs
+ :link: faq/whichide.html
+
+ Which IDEs are compatible with PySide?
+
+ .. grid-item-card:: Binding Generation
+ :link: faq/whatisshiboken.html
+
+ What is Shiboken?
+
+ .. grid-item-card:: File types
+ :link: faq/typesoffiles.html
+
+ File Types in PySide
+
+ .. grid-item-card:: App distribution
+ :link: faq/distribution.html
+
+ Distributing your application to other systems and platforms
+
+ .. grid-item-card:: Why Qt for Python?
+ :link: faq/whyqtforpython.html
+
+ As a Qt/C++ developer, why should I consider Qt for Python?
+
+.. toctree::
+ :hidden:
+
+ faq/whatisqt.rst
+ faq/whichide.rst
+ faq/whatisshiboken.rst
+ faq/typesoffiles.rst
+ faq/distribution.rst
+ faq/whyqtforpython.rst
+
diff --git a/sources/pyside6/doc/snippets/qtbase/examples/widgets/dialogs/standarddialogs/dialog_0.cpp.py b/sources/pyside6/doc/snippets/qtbase/examples/widgets/dialogs/standarddialogs/dialog_0.cpp.py
new file mode 100644
index 000000000..d21595041
--- /dev/null
+++ b/sources/pyside6/doc/snippets/qtbase/examples/widgets/dialogs/standarddialogs/dialog_0.cpp.py
@@ -0,0 +1,4 @@
+i, ok = QInputDialog.getInt(self, "QInputDialog::getInt()",
+ "Percentage:", 25, 0, 100, 1)
+if ok:
+ integerLabel.setText(f"{i}")
diff --git a/sources/pyside6/doc/snippets/qtbase/examples/widgets/dialogs/standarddialogs/dialog_1.cpp.py b/sources/pyside6/doc/snippets/qtbase/examples/widgets/dialogs/standarddialogs/dialog_1.cpp.py
new file mode 100644
index 000000000..4cb3dfdb3
--- /dev/null
+++ b/sources/pyside6/doc/snippets/qtbase/examples/widgets/dialogs/standarddialogs/dialog_1.cpp.py
@@ -0,0 +1,5 @@
+d, ok = QInputDialog.getDouble(self, "QInputDialog::getDouble()",
+ "Amount:", 37.56, -10000, 10000, 2,
+ Qt.WindowFlags(), 1)
+if ok:
+ doubleLabel.setText(f"${d}")
diff --git a/sources/pyside6/doc/snippets/qtbase/examples/widgets/dialogs/standarddialogs/dialog_2.cpp.py b/sources/pyside6/doc/snippets/qtbase/examples/widgets/dialogs/standarddialogs/dialog_2.cpp.py
new file mode 100644
index 000000000..7e3d27afb
--- /dev/null
+++ b/sources/pyside6/doc/snippets/qtbase/examples/widgets/dialogs/standarddialogs/dialog_2.cpp.py
@@ -0,0 +1,5 @@
+items = ["Spring", "Summer", "Fall", "Winter"]
+item, ok = QInputDialog.getItem(self, "QInputDialog::getItem()",
+ "Season:", items, 0, False)
+if ok and item:
+ itemLabel.setText(item)
diff --git a/sources/pyside6/doc/snippets/qtbase/examples/widgets/dialogs/standarddialogs/dialog_3.cpp.py b/sources/pyside6/doc/snippets/qtbase/examples/widgets/dialogs/standarddialogs/dialog_3.cpp.py
new file mode 100644
index 000000000..85a22a16c
--- /dev/null
+++ b/sources/pyside6/doc/snippets/qtbase/examples/widgets/dialogs/standarddialogs/dialog_3.cpp.py
@@ -0,0 +1,5 @@
+text, ok = QInputDialog.getText(self, "QInputDialog.getText()",
+ "User name:", QLineEdit.Normal,
+ QDir.home().dirName())
+if ok and text:
+ textLabel.setText(text)
diff --git a/sources/pyside6/doc/snippets/qtbase/examples/widgets/dialogs/standarddialogs/dialog_4.cpp.py b/sources/pyside6/doc/snippets/qtbase/examples/widgets/dialogs/standarddialogs/dialog_4.cpp.py
new file mode 100644
index 000000000..d16045141
--- /dev/null
+++ b/sources/pyside6/doc/snippets/qtbase/examples/widgets/dialogs/standarddialogs/dialog_4.cpp.py
@@ -0,0 +1,4 @@
+text, ok = QInputDialog.getMultiLineText(self, "QInputDialog.getMultiLineText()", ""
+ "Address:", "John Doe\nFreedom Street")
+if ok and text:
+ multiLineTextLabel.setText(text)
diff --git a/sources/pyside6/doc/snippets/qtbase/examples/widgets/itemviews/spinboxdelegate/delegate_0.h.py b/sources/pyside6/doc/snippets/qtbase/examples/widgets/itemviews/spinboxdelegate/delegate_0.h.py
new file mode 100644
index 000000000..de386a5ac
--- /dev/null
+++ b/sources/pyside6/doc/snippets/qtbase/examples/widgets/itemviews/spinboxdelegate/delegate_0.h.py
@@ -0,0 +1,18 @@
+class SpinBoxDelegate(QStyledItemDelegate):
+ """A delegate that allows the user to change integer values from the model
+ using a spin box widget. """
+
+ def __init__(self, parent=None):
+ ...
+
+ def createEditor(self, parent, option, index):
+ ...
+
+ def setEditorData(self, editor, index):
+ ...
+
+ def setModelData(self, editor, model, index):
+ ...
+
+ def updateEditorGeometry(self, editor, option, index):
+ ...
diff --git a/sources/pyside6/doc/snippets/qtbase/examples/widgets/tutorials/modelview/1_readonly/mymodel_Quoting_ModelView_Tutorial.h.py b/sources/pyside6/doc/snippets/qtbase/examples/widgets/tutorials/modelview/1_readonly/mymodel_Quoting_ModelView_Tutorial.h.py
new file mode 100644
index 000000000..231792c5d
--- /dev/null
+++ b/sources/pyside6/doc/snippets/qtbase/examples/widgets/tutorials/modelview/1_readonly/mymodel_Quoting_ModelView_Tutorial.h.py
@@ -0,0 +1,15 @@
+from PySide6.QtCore import QAbstractTableModel
+
+class MyModel(QAbstractTableModel):
+
+ def __init__(self, parent = None):
+ ...
+
+ def rowCount(self, parent = None):
+ ...
+
+ def columnCount(self, parent = None):
+ ...
+
+ def data(self, index, role = Qt.DisplayRole):
+ ...
diff --git a/sources/pyside6/doc/snippets/qtbase/examples/widgets/tutorials/modelview/5_edit/mymodel_Quoting_ModelView_Tutorial.h.py b/sources/pyside6/doc/snippets/qtbase/examples/widgets/tutorials/modelview/5_edit/mymodel_Quoting_ModelView_Tutorial.h.py
new file mode 100644
index 000000000..4da28f0a0
--- /dev/null
+++ b/sources/pyside6/doc/snippets/qtbase/examples/widgets/tutorials/modelview/5_edit/mymodel_Quoting_ModelView_Tutorial.h.py
@@ -0,0 +1,27 @@
+from PySide6.QtCore import QAbstractTableModel
+
+COLS = 3
+ROWS = 2
+
+
+class MyModel(QAbstractTableModel):
+
+ editCompleted = Signal(str)
+
+ def __init__(self, parent=None):
+ ...
+
+ def rowCount(self, parent=None):
+ ...
+
+ def columnCount(self, parent=None):
+ ...
+
+ def data(self, index, role=Qt.DisplayRole):
+ ...
+
+ def setData(self, index, value, role):
+ ...
+
+ def flags(self, index):
+ ...
diff --git a/sources/pyside6/doc/snippets/qtbase/src/gui/doc/snippets/code/src_gui_painting_qpainter_drawText.cpp.py b/sources/pyside6/doc/snippets/qtbase/src/gui/doc/snippets/code/src_gui_painting_qpainter_drawText.cpp.py
new file mode 100644
index 000000000..cad2c5395
--- /dev/null
+++ b/sources/pyside6/doc/snippets/qtbase/src/gui/doc/snippets/code/src_gui_painting_qpainter_drawText.cpp.py
@@ -0,0 +1,13 @@
+painter = QPainter(self)
+font = painter.font()
+font.setPixelSize(48)
+painter.setFont(font)
+rectangle = QRect(0, 0, 100, 50)
+boundingRect = painter.drawText(rectangle, 0, "Hello")
+pen = painter.pen()
+pen.setStyle(Qt.DotLine)
+painter.setPen(pen)
+painter.drawRect(boundingRect.adjusted(0, 0, -pen.width(), -pen.width()))
+pen.setStyle(Qt.DashLine)
+painter.setPen(pen)
+painter.drawRect(rectangle.adjusted(0, 0, -pen.width(), -pen.width()))
diff --git a/sources/pyside6/doc/snippets/qtbase/src/widgets/doc/snippets/stringlistmodel/model_0.h.py b/sources/pyside6/doc/snippets/qtbase/src/widgets/doc/snippets/stringlistmodel/model_0.h.py
new file mode 100644
index 000000000..02a02aaf8
--- /dev/null
+++ b/sources/pyside6/doc/snippets/qtbase/src/widgets/doc/snippets/stringlistmodel/model_0.h.py
@@ -0,0 +1,24 @@
+class StringListModel(QAbstractListModel):
+ def __init__(self, strings, parent=None):
+ ...
+
+ def rowCount(self, parent=QModelIndex()):
+ ...
+
+ def data(self, index, role):
+ ...
+
+ def headerData(self, section, orientation, role=Qt.DisplayRole):
+ ...
+
+ def flags(self, index):
+ ...
+
+ def setData(self, index, value, role=Qt.EditRole):
+ ...
+
+ def insertRows(self, position, rows, parent):
+ ...
+
+ def removeRows(self, position, rows, parent):
+ ...
diff --git a/sources/pyside6/doc/tools/index.rst b/sources/pyside6/doc/tools/index.rst
new file mode 100644
index 000000000..b421a428f
--- /dev/null
+++ b/sources/pyside6/doc/tools/index.rst
@@ -0,0 +1,211 @@
+.. _package_tools:
+
+Tools
+=====
+
+Following the same idea from the modules, we also include in the packages
+(wheels) Qt tools that are important for any Qt application development
+workflow, like ``uic``, ``rcc``, etc.
+
+All the tools **must** be used from the PySide wrappers, and not directly.
+For example, if exploring the ``site-packages/`` directory on your installation
+you find ``uic.exe`` (on Windows), you should not click on that, and use
+``pyside6-uic.exe`` instead.
+The reason for this is the proper setup of PATHs, plugins, and more,
+to properly work with the installed Python package.
+
+Here you can find all the tools we include in |project| starting
+from 6.3.0, grouped by different topics:
+
+Project development
+~~~~~~~~~~~~~~~~~~~
+
+.. grid:: 2
+ :gutter: 3 3 4 5
+
+ .. grid-item-card:: ``pyside6-project``
+ :link: pyside6-project
+ :link-type: ref
+
+ to build *Qt Widgets Designer* forms (``.ui`` files),
+ resource files (``.qrc``) and QML type files (``.qmltype``)
+ from a ``.pyproject`` file.
+
+Widget Development
+~~~~~~~~~~~~~~~~~~
+
+.. grid:: 2
+ :gutter: 3 3 4 5
+
+ .. grid-item-card:: ``pyside6-designer``
+ :link: pyside6-designer
+ :link-type: ref
+
+ drag-and-drop tool for designing Widget UIs (generates ``.ui`` files,
+ see :ref:`using_ui_files`).
+
+ .. grid-item-card:: ``pyside6-uic``
+ :link: pyside6-uic
+ :link-type: ref
+
+ to generate Python code from ``.ui`` form files.
+
+ .. grid-item-card:: ``pyside6-rcc``
+ :link: pyside6-rcc
+ :link-type: ref
+
+ to generate serialized data from ``.qrc`` resources files.
+ Keep in mind these files can be used in other non-widget projects.
+
+
+QML Development
+~~~~~~~~~~~~~~~
+
+.. grid:: 2
+ :gutter: 3 3 4 5
+
+ .. grid-item-card:: ``pyside6-qmllint``
+ :link: pyside6-qmllint
+ :link-type: ref
+
+ that verifies the syntactic validity of QML files.
+
+ .. grid-item-card:: ``pyside6-qmltyperegistrar``
+ :link: pyside6-qmltyperegistrar
+ :link-type: ref
+
+ to read metatypes files and generate files that contain the necessary
+ code to register all the types marked with relevant macros.
+
+ .. grid-item-card:: ``pyside6-qmlimportscanner``
+ :link: pyside6-qmlimportscanner
+ :link-type: ref
+
+ to identify the QML modules imported from a
+ project/QML files and dump the result as a JSON array.
+
+ .. grid-item-card:: ``pyside6-qmlcachegen``
+ :link: pyside6-qmlcachegen
+ :link-type: ref
+
+ to compile QML to bytecode at compile time for bundling inside the
+ binary.
+
+ .. grid-item-card:: ``pyside6-qml``
+ :link: pyside6-qml
+ :link-type: ref
+
+ to enable quick prototyping with QML files. This tool mimics some of
+ the capabilities of Qt's ``QML`` runtime utility by
+ directly invoking QQmlEngine/QQuickView.
+
+Translations
+~~~~~~~~~~~~
+
+.. grid:: 2
+ :gutter: 3 3 4 5
+
+ .. grid-item-card:: ``pyside6-linguist``
+ :link: pyside6-linguist
+ :link-type: ref
+
+ for translating text in applications.
+
+ .. grid-item-card:: ``pyside6-lrelease``
+ :link: pyside6-lrelease
+ :link-type: ref
+
+ to create run-time translation files for the application.
+
+ .. grid-item-card:: ``pyside6-lupdate``
+ :link: pyside6-lupdate
+ :link-type: ref
+
+ to synchronize source code and translations.
+
+Qt Help
+~~~~~~~
+
+.. grid:: 2
+ :gutter: 3 3 4 5
+
+ .. grid-item-card:: ``pyside6-assistant``
+ :link: pyside6-assistant
+ :link-type: ref
+
+ for viewing online documentation in Qt Help file format.
+ Read more about the formats on the `QtHelp Framework`_ page.
+
+.. _`QtHelp Framework`: https://doc.qt.io/qt-6/qthelp-framework.html
+
+PySide Utilities
+~~~~~~~~~~~~~~~~
+
+.. grid:: 2
+ :gutter: 3 3 4 5
+
+ .. grid-item-card:: ``pyside6-genpyi``
+ :link: pyside6-genpyi
+ :link-type: ref
+
+ to generate Python stubs (``.pyi`` files) for Qt modules.
+
+ .. grid-item-card:: ``pyside6-metaobjectdump``
+ :link: pyside6-metaobjectdump
+ :link-type: ref
+
+ a tool to print out the metatype information in JSON to be used as
+ input for ``qmltyperegistrar``.
+
+Deployment
+~~~~~~~~~~
+
+.. grid:: 2
+ :gutter: 3 3 4 5
+
+ .. grid-item-card:: ``pyside6-deploy``
+ :link: pyside6-deploy
+ :link-type: ref
+
+ to deploy PySide6 applications to desktop platforms - Linux, Windows
+ and macOS.
+
+ .. grid-item-card:: ``pyside6-android-deploy``
+ :link: pyside6-android-deploy
+ :link-type: ref
+
+ to deploy PySide6 application as an Android app targeting different
+ Android platforms - aarch64, armv7a, i686, x86_64.
+
+Shader Tools
+~~~~~~~~~~~~
+
+.. grid:: 2
+ :gutter: 3 3 4 5
+
+ .. grid-item-card:: ``pyside6-qsb``
+ :link: pyside6-qsb
+ :link-type: ref
+
+ a command-line tool provided by the Qt Shader Tools modules to
+ generate and inspect .qsb files.
+
+Qt Quick 3D
+~~~~~~~~~~~
+
+.. grid:: 2
+ :gutter: 3 3 4 5
+
+ .. grid-item-card:: ``pyside6-balsam``
+ :link: pyside6-balsam
+ :link-type: ref
+
+ a command line tool that takes assets created in digital content
+ creation tools like Maya, 3ds Max or Blender and converts them into an
+ efficient runtime format for use with Qt Quick 3D.
+
+ .. grid-item-card:: ``pyside6-balsamui``
+ :link: pyside6-balsamui
+ :link-type: ref
+
+ a graphical user interface for the ``pyside6-balsam`` tool.
diff --git a/sources/pyside6/doc/tools/pyside-assistant.rst b/sources/pyside6/doc/tools/pyside-assistant.rst
new file mode 100644
index 000000000..c9b3470c3
--- /dev/null
+++ b/sources/pyside6/doc/tools/pyside-assistant.rst
@@ -0,0 +1,21 @@
+.. _pyside6-assistant:
+
+pyside6-assistant
+=================
+
+``pyside6-assistant`` is a tool that wraps `Qt Assistant`_, the help
+viewer of Qt for use with the Qt help file format (see `The Qt Help Framework`_).
+
+The version of assistant shipped with Qt for Python does not contain
+any documentation.
+
+You can build the Qt for Python documentation in the Qt help file format
+(see :ref:`building_documentation`) and register it for use in `Preferences`
+dialog of ``pyside6-assistant`` (`Edit/Preferences`).
+
+.. image:: pyside6-assistant_screenshot.webp
+ :width: 381
+ :alt: PySide6 Assistant Screenshot
+
+.. _`Qt Assistant`: https://doc.qt.io/qt-6/qtassistant-index.html
+.. _`The Qt Help Framework`: https://doc.qt.io/qt-6/qthelp-framework.html
diff --git a/sources/pyside6/doc/tools/pyside-designer.rst b/sources/pyside6/doc/tools/pyside-designer.rst
new file mode 100644
index 000000000..4cde6b2bf
--- /dev/null
+++ b/sources/pyside6/doc/tools/pyside-designer.rst
@@ -0,0 +1,91 @@
+.. _pyside6-designer:
+
+pyside6-designer
+================
+
+``pyside6-designer`` is a tool that wraps the `Qt Widgets Designer`_,
+to enable you to design Qt Widgets applications with a *drag-and-drop*
+approach.
+
+.. image:: pyside6-designer_screenshot.webp
+ :width: 100%
+ :alt: PySide6 Designer Screenshot
+
+Usage
+-----
+
+With ``pyside6-designer`` you can design your application in a simple way,
+to later save the end result in a ``.ui`` file. When you start the tool, you
+will see a dialog to select the base window: a QWidget, a QMainWindow, etc.
+
+.. image:: pyside6-designer_base_screenshot.webp
+ :width: 50%
+ :alt: PySide6 Designer Initial Screenshot
+
+Once you select one of those options, you can start placing widgets
+into the interface, and have access to the whole structure, properties,
+and more.
+
+.. image:: pyside6-designer_sections_screenshot.webp
+ :width: 100%
+ :alt: PySide6 Designer Initial Screenshot
+
+A simple distinction of the areas you might use is described in the
+previous screenshot. In the section **1** you will find all the elements
+you can use in your application, which is the area **2**.
+The application designs follows a hierarchical configuration,
+in **3** you can see the structure of the example which contains
+only a ``QMainWindow`` and a ``QPushButton``. Lastly
+you can access and modify the properties of the item in **4**,
+where you could adjust dimensions, names, etc.
+
+
+When your application is finished, you will save your design in a ``.ui``
+file. This ``.ui`` file can later be converted into a Python file,
+with the help of the :ref:`pyside6-uic` tool. You can find
+more details of this process in: :ref:`using_ui_files`.
+
+If you are interested in more functionality of the tool, you can check
+the official `Qt Widgets Designer Manual`_.
+
+
+Custom Widgets
+--------------
+
+One of the features that the `Qt Widgets Designer`_ provides is the possibility
+of loading custom widgets, in order to facilitate the development with ad-hoc
+widgets.
+
+On the following screenshot, you can see a new component on the left column
+that is already added on the main widget, a tic-tac-toe custom widget.
+
+.. image:: pyside6-designer_customwidgets_screenshot.webp
+ :width: 100%
+ :alt: PySide6 Designer Custom Widgets Screenshot
+
+To achieve this, you need to register a custom widget by setting the environment
+variable ``PYSIDE_DESIGNER_PLUGINS`` to the directory where your register file
+is located. The registration file for the tic-tac-toe widget looks like this:
+
+.. code-block:: Python
+
+ from tictactoe import TicTacToe
+ from tictactoeplugin import TicTacToePlugin
+
+ from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection
+
+
+ if __name__ == '__main__':
+ QPyDesignerCustomWidgetCollection.addCustomWidget(TicTacToePlugin())
+
+As you can see in the previous code, ``TicTacToe`` is the custom widget,
+imported from a different file, and the ``TicTacToePlugin`` is the interface
+layer for `Qt Widgets Designer`_ to recognize it.
+We provide a helper class, ``QPyDesignerCustomWidgetCollection``, to
+simplify the registration process.
+
+If you are interested in all the details of this specific case, you can
+check the :ref:`task-menu-extension-example`.
+
+.. _`Qt Widgets Designer`: https://doc.qt.io/qt-6/qtdesigner-manual.html
+.. _`Qt Widgets Designer Manual`: https://doc.qt.io/qt-6/qtdesigner-manual.html
diff --git a/sources/pyside6/doc/tools/pyside-genpyi.rst b/sources/pyside6/doc/tools/pyside-genpyi.rst
new file mode 100644
index 000000000..0240c5005
--- /dev/null
+++ b/sources/pyside6/doc/tools/pyside-genpyi.rst
@@ -0,0 +1,52 @@
+.. _pyside6-genpyi:
+
+pyside6-genpyi
+==============
+
+`pyside6-genpyi` is a command line tool to generate Python stub files
+(.pyi) for PySide modules. Stub files define signatures of all classes,
+methods (including overloads), constants and enums of the PySide
+modules. Signatures also contain type hints. This helps PySide integrate
+with Python type checkers and IDEs. For example, if you use any function
+from the Qt API with PySide, your IDE's function lookup feature will
+show you the function signature and its parameters and return value
+including types.
+
+PySide6 already ships with stub files that were generated with
+`pyside6-genpyi`. However, if you want to generate new stub files for
+several (or all) modules, for example to toggle a few features, you can
+run `pyside6-genpyi` manually. If you want to generate stub files for
+your own custom module, refer to :ref:`shiboken6-genpyi`.
+
+
+Usage
+-----
+
+To generate stub files for a PySide module, run the following command:
+
+.. code-block:: bash
+
+ pyside6-genpyi <module_names> [OPTIONS]
+
+where `<module_names>` is a space-separated list of module names (the
+modules must be importable from the working directory) and where
+`[OPTIONS]` can be one of the following:
+
+* **--quiet**: Run the tool quietly without output to stdout.
+* **--outpath <output_dir>**: Specify the output directory for the
+ generated stub files. If not specified, the stub files are generated
+ in the location of the module binary.
+* **--sys-path <paths>**: Prepend the system path (`sys.path`) with a
+ space-separated list of strings `<paths>`. This is useful if the
+ module is not installed in a default lookup location.
+* **--feature <features>**: A space-separate list of optional PySide
+ features to enable (see :ref:`pysideapi2`). This option has no effect
+ when using PyPy. Currently, the following features are available:
+
+ * **snake_case**: All methods in the module are switched from
+ ``camelCase`` to ``snake_case``. A single upper case letter is
+ replaced by an underscore and the lower case letter.
+ * **true_property**: All getter and setter functions in the module
+ which are marked as a property in the Qt6 docs are replaced by Python
+ property objects. Properties are also listed as such in the according
+ QMetaObject of a class.
diff --git a/sources/pyside6/doc/tools/pyside-linguist.rst b/sources/pyside6/doc/tools/pyside-linguist.rst
new file mode 100644
index 000000000..e13124a8e
--- /dev/null
+++ b/sources/pyside6/doc/tools/pyside-linguist.rst
@@ -0,0 +1,20 @@
+.. _pyside6-linguist:
+
+pyside6-linguist
+=================
+
+``pyside6-linguist`` is a tool that wraps `Qt Linguist`_, Qt's tool to
+translate user interfaces and manage application localizations. It
+supports Qt's own TS file format as well as the XML Localization
+Interchange File Format (XLIFF). There are no differences between the
+version bundled with PySide and the one from Qt.
+
+For more information on how to use this tool, read Qt's documentation
+here: `Qt Linguist`_. Read more about how to translate PySide
+applications here: :ref:`translations`.
+
+.. image:: pyside6-linguist_screenshot.webp
+ :width: 500
+ :alt: PySide6 Linguist Screenshot
+
+.. _`Qt Linguist`: https://doc.qt.io/qt-6/qtlinguist-index.html
diff --git a/sources/pyside6/doc/tools/pyside-lrelease.rst b/sources/pyside6/doc/tools/pyside-lrelease.rst
new file mode 100644
index 000000000..7c628f2aa
--- /dev/null
+++ b/sources/pyside6/doc/tools/pyside-lrelease.rst
@@ -0,0 +1,25 @@
+.. _pyside6-lrelease:
+
+pyside6-lrelease
+================
+
+.. note:: This tool is automatically called by :ref:`pyside6-project`
+ so you don't need to call it manually. *Qt Creator* will take care
+ of this step as well while executing a project.
+
+``pyside6-lrelease`` is a command line tool wrapping `lrelease`_. It produces
+``.qm`` files out of ``.ts`` files. The ``.qm`` file format is a compact binary
+format that the localized application uses. It provides extremely fast lookup
+for translations (see :ref:`translations`).
+
+Usage
+-----
+
+To convert a ``.ts`` file of the :ref:`qt-linguist-example`
+into its binary representation, run:
+
+.. code-block:: bash
+
+ pyside6-lrelease example_de.ts -qm example_de.qm
+
+.. _`lrelease`: https://doc.qt.io/qt-6/linguist-lrelease.html
diff --git a/sources/pyside6/doc/tools/pyside-lupdate.rst b/sources/pyside6/doc/tools/pyside-lupdate.rst
new file mode 100644
index 000000000..1c0d73c15
--- /dev/null
+++ b/sources/pyside6/doc/tools/pyside-lupdate.rst
@@ -0,0 +1,23 @@
+.. _pyside6-lupdate:
+
+pyside6-lupdate
+===============
+
+.. note:: This tool is automatically called by :ref:`pyside6-project`
+ so you don't need to call it manually.
+
+``pyside6-lupdate`` is a command line tool wrapping `lupdate`_. It finds
+translatable strings in Python, ``.ui``, and ``.qml`` files and generates or
+updates ``.ts`` files (see :ref:`translations`).
+
+Usage
+-----
+
+To create or update the ``.ts`` file of the :ref:`qt-linguist-example`,
+run:
+
+.. code-block:: bash
+
+ pyside6-lupdate main.py main.qml form.ui -ts example_de.ts
+
+.. _`lupdate`: https://doc.qt.io/qt-6/linguist-lupdate.html
diff --git a/sources/pyside6/doc/tools/pyside-metaobjectdump.rst b/sources/pyside6/doc/tools/pyside-metaobjectdump.rst
new file mode 100644
index 000000000..1522b7ad5
--- /dev/null
+++ b/sources/pyside6/doc/tools/pyside-metaobjectdump.rst
@@ -0,0 +1,92 @@
+.. _pyside6-metaobjectdump:
+
+pyside6-metaobjectdump
+======================
+
+``pyside6-metaobjectdump`` is a command line tool. It scans Python source
+files and dumps out information on classes to be registered with QML in
+JSON-format. This serves as input for the :ref:`pyside6-qmltyperegistrar` tool.
+
+The tool is the equivalent of the `moc`_ tool in Qt / C++.
+
+It is automatically run by the :ref:`pyside6-project` tool
+when passing the ``qmllint`` argument instructing it to check
+the QML source files.
+
+Usage
+-----
+
+Classes to be registered with QML are indicated by QML decorators
+like :deco:`QmlElement`. Invoking:
+
+.. code-block:: bash
+
+ pyside6-metaobjectdump birthdayparty.py
+
+produces the JSON data on stdout:
+
+.. code-block:: json
+
+ [
+ {
+ "classes": [
+ {
+ "className": "BirthdayParty",
+ "qualifiedClassName": "BirthdayParty",
+ "object": true,
+ "superClasses": [
+ {
+ "access": "public",
+ "name": "QObject"
+ }
+ ],
+ "classInfos": [
+ {
+ "name": "QML.Element",
+ "value": "auto"
+ }
+ ],
+ "properties": [
+ {
+ "name": "host",
+ "type": "Person",
+ "index": 0,
+ "read": "host",
+ "notify": "host_changed",
+ "write": "host"
+ },
+ {
+ "name": "guests",
+ "type": "QQmlListProperty<Person>",
+ "index": 1
+ }
+ ],
+ "signals": [
+ {
+ "access": "public",
+ "name": "host_changed",
+ "arguments": [],
+ "returnType": "void"
+ },
+ {
+ "access": "public",
+ "name": "guests_changed",
+ "arguments": [],
+ "returnType": "void"
+ }
+ ]
+ }
+ ],
+ "outputRevision": 68,
+ "QML_IMPORT_NAME": "People",
+ "QML_IMPORT_MAJOR_VERSION": 1,
+ "QML_IMPORT_MINOR_VERSION": 0,
+ "QT_MODULES": [
+ "QtCore",
+ "QtQml"
+ ],
+ "inputFile": ".../examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/birthdayparty.py"
+ }
+ ]
+
+.. _`moc`: https://doc.qt.io/qt-6/moc.html
diff --git a/sources/pyside6/doc/tools/pyside-project.rst b/sources/pyside6/doc/tools/pyside-project.rst
new file mode 100644
index 000000000..0359e1b7d
--- /dev/null
+++ b/sources/pyside6/doc/tools/pyside-project.rst
@@ -0,0 +1,64 @@
+.. _pyside6-project:
+
+pyside6-project
+===============
+
+`pyside6-project` is a command line tool for creating, building and deploying
+|project| applications. It operates on a project file which is also used by
+`Qt Creator`_.
+
+Project file format
+-------------------
+
+The project file format is a simple `JSON`_-based format with the suffix
+``.pyproject`` listing all files of the project excluding generated files
+(typically ``.py``, ``.qml``, ``.qrc``, ``.ts``, or ``.ui`` files):
+
+.. code-block:: json
+
+ {
+ "files": ["main.py"]
+ }
+
+
+Usage
+-----
+
+The tool has several subcommands. New projects can be created using
+the below commands, passing the project name (directory):
+
+*new-ui*
+ Creates a new QtWidgets project with a *Qt Widgets Designer*-based main
+ window.
+
+*new-widget*
+ Creates a new QtWidgets project with a main window.
+
+*new-quick*
+ Creates a new QtQuick project.
+
+The other commands take the project file as an argument.
+It is also possible to specify a directory containing the project file.
+
+*build*
+ Builds the project, generating the required build artifacts
+ (see :ref:`using_ui_files`, :ref:`using_qrc_files`).
+
+*run*
+ Builds the project and runs the main.
+
+*deploy*
+ Deploys the application (see see :ref:`pyside6-deploy`).
+
+*lupdate*
+ Updates translation (.ts) files (see :ref:`translations`).
+
+*clean*
+ Cleans the build artifacts.
+
+*qmllint*
+ Runs the ``qmllint`` tool, checking the QML files.
+
+
+.. _`Qt Creator`: https://www.qt.io/product/development-tools
+.. _`JSON`: https://www.json.org/
diff --git a/sources/pyside6/doc/tools/pyside-qml.rst b/sources/pyside6/doc/tools/pyside-qml.rst
new file mode 100644
index 000000000..0502dd94a
--- /dev/null
+++ b/sources/pyside6/doc/tools/pyside-qml.rst
@@ -0,0 +1,84 @@
+.. _pyside6-qml:
+
+pyside6-qml
+===========
+
+``pyside6-qml`` mimics some capabilities of Qt's `qml <qml_runtime>`_ runtime utility by directly
+invoking QQmlEngine/QQuickView. It enables prototyping with QML/QtQuick without the need to write
+any Python code that loads the QML files either through `QQmlApplicationEngine <qqmlappengine>`_ or
+the `QQuickView <qquickview>`_ class. The tool also detects the QML classes implemented in Python
+and registers them with the QML type system.
+
+Usage
+-----
+
+Consider the example `Extending QML - Plugins Example <extending_qml_example>`_. This example does
+not have a Python file with a ``main`` function that initializes a QmlEngine to load the QML file
+``app.qml``. You can run the example by running
+
+.. code-block:: bash
+
+ pyside6-qml examples/qml/tutorials/extending-qml/chapter6-plugins/app.qml -I examples/qml/tutorials/extending-qml/chapter6-plugins/Charts
+
+The ``-I`` flag is used to point ``pyside6-qml`` to the folder containing Python files that
+implement QML classes.
+
+Command Line Options
+--------------------
+
+Here are all the command line options of ``pyside6-qml``:
+
+Arguments
+^^^^^^^^^
+
+* **file**: This option refers to the QML file to be loaded by ``pyside6-qml``. This option does not
+ have a name or a flag. Therefore, this option should be the first option supplied to
+ ``pyside6-qml``. For example,
+
+.. code-block:: bash
+
+ pyside6-qml /path/to/test.qml
+
+Options
+^^^^^^^
+
+* **--module-paths/-I**: Specify space-separated folder/file paths which point to the Python files
+ that implement QML classes. By default, the parent directory of the QML file supplied to
+ ``pyside6-qml`` is searched recursively for all Python files and they are imported. Otherwise,
+ only the paths given in module paths are searched.
+
+* **--verbose/-v**: Run ``pyside6-qml`` in verbose mode. When run in this mode, pyside6-qml prints
+ log messages during various stages of processing.
+
+Options that align with `QML <qml_runtime>`_ runtime utility
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+* **--app-typ/-a**: Specifies which application class to use. It takes one of the three values -
+ ``core, gui, widget``. The default value is *gui*.
+
+* **--config/-c**: Load the given built-in configuration. It takes one of two values - ``default,
+ resizeToItem``. This option is only relevant for a QtQuick application. If ``default`` is used,
+ the view resizes to the size of the root item in the QML. If ``resizeToItem`` is used, the view
+ automatically resizes the root item to the size of the view.
+
+* **--list-conf**: List the built-in configurations. ``pyside6-qml`` has two built-in configurations
+ - ``default`` and ``resizeToItem``. See the option ``--config`` for more information.
+
+* **--rhi/-r**: Specifies the backend for the Qt graphics abstraction (RHI). It takes one of the
+ four values - ``vulkan, metal, d3dll, gl``.
+
+* **--verbose/-v**: List the built-in configurations. ``pyside6-qml`` has two built-in
+ configurations - *default* and *resizeToItem*. See the option ``--config`` for more information.
+
+* **--gles**: Force use of GLES (AA_UseOpenGLES).
+
+* **--desktop**: Force use of desktop OpenGL (AA_UseDesktopOpenGL).
+
+* **--software**: Force use of software rendering(AA_UseSoftwareOpenGL).
+
+* **--disable-context-sharing**: Disable the use of a shared GL context for QtQuick Windows".
+
+.. _`qml_runtime`: https://doc.qt.io/qt-6/qtquick-qml-runtime.html
+.. _`qqmlappengine`: https://doc.qt.io/qt-6/qqmlapplicationengine.html
+.. _`qquickview`: https://doc.qt.io/qt-6/qquickview.html
+.. _`extending_qml_example`: https://doc.qt.io/qtforpython-6/examples/example_qml_tutorials_extending-qml_chapter6-plugins.html
diff --git a/sources/pyside6/doc/tools/pyside-qmlcachegen.rst b/sources/pyside6/doc/tools/pyside-qmlcachegen.rst
new file mode 100644
index 000000000..ecd8e6afd
--- /dev/null
+++ b/sources/pyside6/doc/tools/pyside-qmlcachegen.rst
@@ -0,0 +1,25 @@
+.. _pyside6-qmlcachegen:
+
+pyside6-qmlcachegen
+===================
+
+``pyside6-qmlcachegen`` is a command line tool that wraps `qmlcachegen`_.
+This tool creates C++ code or `QML byte code` for ``.qml`` files. For
+Qt for Python, only `QML byte code` is relevant. The file suffix is
+``.qmlc`` and it works similar to compiled Python bytecode
+(``.pyc`` files).
+
+Usage
+-----
+
+The command line option ``--only-bytecode`` should be used to
+create `QML byte code`. For example:
+
+.. code-block:: bash
+
+ qmlcachegen --only-bytecode gallery.qml
+
+produces a file ``gallery.qmlc`` containing `QML byte code` which is
+automatically loaded by the QML engine.
+
+.. _`qmlcachegen`: https://doc.qt.io/qt-6/qtqml-tool-qmlcachegen.html
diff --git a/sources/pyside6/doc/tools/pyside-qmllint.rst b/sources/pyside6/doc/tools/pyside-qmllint.rst
new file mode 100644
index 000000000..54a72470e
--- /dev/null
+++ b/sources/pyside6/doc/tools/pyside-qmllint.rst
@@ -0,0 +1,49 @@
+.. _pyside6-qmllint:
+
+pyside6-qmllint
+===============
+
+``pyside6-qmllint`` is a command line tool that wraps `qmllint`_. This tool
+verifies the syntatic validity of QML files and warns about some QML
+anti-patterns.
+
+It is automatically run by the :ref:`pyside6-project` tool
+when passing the ``qmllint`` argument instructing it to check
+the QML source files.
+
+Usage
+-----
+
+The tool should normally not be invoked manually since it requires
+a number of import paths and additional type information
+generated by :ref:`pyside6-qmltyperegistrar` to function.
+
+For example, for a ``.qml`` file like:
+
+.. code-block:: javascript
+
+ import QtQuick
+ import QtQuick.Controls
+
+ Item {
+ Text {
+ id: name
+ text: qsTr("Hello World")
+ }
+ }
+
+when running:
+
+.. code-block:: bash
+
+ pyside6-qmllint Main.qml
+
+it would warn about unused imports:
+
+.. code-block::
+
+ Info: Main.qml:2:1: Unused import [unused-imports]
+ import QtQuick.Controls
+ ^^^^^^
+
+.. _`qmllint`: https://doc.qt.io/qt-6/qtquick-tool-qmllint.html
diff --git a/sources/pyside6/doc/tools/pyside-qmltyperegistrar.rst b/sources/pyside6/doc/tools/pyside-qmltyperegistrar.rst
new file mode 100644
index 000000000..0e8d66bd5
--- /dev/null
+++ b/sources/pyside6/doc/tools/pyside-qmltyperegistrar.rst
@@ -0,0 +1,17 @@
+.. _pyside6-qmltyperegistrar:
+
+pyside6-qmltyperegistrar
+========================
+
+``pyside6-qmltyperegistrar`` is a command line tool that wraps the
+``qmltyperegistrar`` tool of Qt.
+
+It takes the file produced by :ref:`pyside6-metaobjectdump`
+as input and generates C++ code to register C++ classes to QML
+and a ``.qmltypes`` file containing a JSON description of the
+classes. For Qt for Python, only the ``.qmltypes`` file
+is of interest as input for :ref:`pyside6-qmllint`.
+
+The tool is automatically run by the :ref:`pyside6-project` tool
+when passing the ``qmllint`` argument instructing it to check
+the QML source files.
diff --git a/sources/pyside6/doc/tools/pyside-rcc.rst b/sources/pyside6/doc/tools/pyside-rcc.rst
new file mode 100644
index 000000000..e5688485e
--- /dev/null
+++ b/sources/pyside6/doc/tools/pyside-rcc.rst
@@ -0,0 +1,55 @@
+.. _pyside6-rcc:
+
+pyside6-rcc
+===========
+
+.. note:: This tool is automatically called by :ref:`pyside6-project`
+ so you don't need to call it manually. *Qt Creator* will take care
+ of this step as well while executing a project.
+
+
+``pyside6-rcc`` is a command line tool for converting ``.qrc`` files into ``.py``
+files, so they can be used within your Python code.
+
+The tool is a wrapper around the `rcc`_ tool, which was originally
+designed to generate C++ code, but it also has Python support.
+
+Even though the equivalent of ``pyside6-rcc`` is running ``rcc -g python``
+we strongly recommend you to rely on ``pyside6-rcc`` in order to avoid
+mismatches between versions for the generated code.
+
+Usage
+-----
+
+Once you have gathered your resources on a qrc file,
+you can transform your ``.qrc`` file with the following command:
+
+.. code-block:: bash
+
+ pyside6-rcc your_file.qrc -o rc_your_file.py
+
+It is important to use the ``-o`` option to generate the Python file with the
+conversion, otherwise you will receive all the output as stdout in your terminal.
+
+To enable the usage of those resources in your program, you need to import
+the file:
+
+.. code-block:: Python
+
+ import rc_your_file
+
+then you can use a specific resource, for example an image, with the prefix ``:/``,
+for example:
+
+.. code-block:: Python
+
+ pixmap = QPixmap(":/icons/image.png")
+
+
+For additional options, you can use ``pyside6-rcc -h`` in order to get
+more information about additional options.
+
+Visit the tutorial :ref:`using_qrc_files` for a hands-on example.
+
+.. _`rcc`: https://doc.qt.io/qt-6/rcc.html
+
diff --git a/sources/pyside6/doc/tools/pyside-uic.rst b/sources/pyside6/doc/tools/pyside-uic.rst
new file mode 100644
index 000000000..ba4e36b4e
--- /dev/null
+++ b/sources/pyside6/doc/tools/pyside-uic.rst
@@ -0,0 +1,59 @@
+.. _pyside6-uic:
+
+pyside6-uic
+===========
+
+.. note:: This tool is automatically called by :ref:`pyside6-project`
+ so you don't need to call it manually. *Qt Creator* will take care
+ of this step as well while executing a project.
+
+``pyside6-uic`` is a command line tool for converting ``.ui`` files into ``.py``
+files, with the objective of using application designs as Python classes.
+
+The tool is a wrapper around the `uic`_ tool, which was originally
+designed to generate C++ code, but it also has Python support.
+
+Even though the equivalent of ``pyside6-uic`` is running ``uic -g python``
+we strongly recommend you to rely on ``pyside6-uic`` in order to avoid
+mismatches between versions for the generated code.
+
+Usage
+-----
+
+Once you have designed your application with :ref:`pyside6-designer`,
+you can transform your ``.ui`` file with the following command:
+
+.. code-block:: bash
+
+ pyside6-uic your_file.ui -o ui_your_file.py
+
+It is important to use the ``-o`` option to generate the Python file with the
+conversion, otherwise you will receive all the output as stdout in your terminal.
+
+The structure of the generated Python file will be similar in all cases,
+and you will get one class called ``Ui_TheNameOfYourDesign(object)`` that
+is in charge of positioning all the elements like your design.
+
+To use this Python file, you should follow our tutorial in
+:ref:`using_ui_files`, but in summary, it is mainly importing the class
+from the generated file and setting it up in your code:
+
+.. code-block:: Python
+
+ self.ui = Ui_TheNameOfYourDesign()
+ self.ui.setupUi(self)
+
+For additional options, you can use ``pyside-uic -h`` in order to get
+more information related to relative imports, absolute imports, using resources,
+translations, etc.
+
+.. note:: Remember that you need to have a class corresponding to the base
+ form you selected in :ref:`pyside6-designer`, a ``QWidget``, or ``QDialog``,
+ or ``QMainWindow``, etc, in order for ``setupUi`` to work. Check
+ :ref:`using_ui_files` for more information.
+
+.. warning:: Do not modify the content of the generated Python file from your
+ ``.ui`` file, otherwise everything will be lost when you re-generate it.
+
+.. _`uic`: https://doc.qt.io/qt-6/uic.html
+
diff --git a/sources/pyside6/doc/tools/pyside6-assistant_screenshot.webp b/sources/pyside6/doc/tools/pyside6-assistant_screenshot.webp
new file mode 100644
index 000000000..7d898d8e6
--- /dev/null
+++ b/sources/pyside6/doc/tools/pyside6-assistant_screenshot.webp
Binary files differ
diff --git a/sources/pyside6/doc/tools/pyside6-balsam.rst b/sources/pyside6/doc/tools/pyside6-balsam.rst
new file mode 100644
index 000000000..c6677f6a3
--- /dev/null
+++ b/sources/pyside6/doc/tools/pyside6-balsam.rst
@@ -0,0 +1,59 @@
+.. _pyside6-balsam:
+
+pyside6-balsam
+==============
+
+``pyside6-qsb`` is a tool that wraps the `balsam <Balsam Asset Import Tool>`_
+tool provided with Qt Quick 3D. The Balsam tool is a command line application
+that is part of Qt Quick 3D's asset conditioning pipeline. The purpose is to
+take assets created in digital content creation tools like `Maya`_, `3ds Max`_
+or `Blender`_ and converts them into an efficient runtime format for use with Qt
+Quick 3D. It is not possible, nor does it make sense to reference the
+interchange formats directly in applications because a large amount of
+resources are needed to parse and condition the content of the asset before it
+is usable for real-time rendering. Instead, the interchange formats can be
+converted via the Balsam tool into QML Components and resources like geometry
+and textures.
+
+
+For more information on how to use this tool, read Qt's documentation
+here: `Balsam Asset Import Tool`_.
+
+Usage
+-----
+
+.. code-block:: bash
+
+ pyside6-balsam [options] sourceFileName
+
+To convert a 3D asset contained in the file ``testModel.fbx`` with
+``pyside6-balsam`` the following command would be used:
+
+.. code-block:: bash
+
+ pyside6-balsam testModel.fbx
+
+This would generate the following files:
+
+* meshes/testModel.mesh
+* TestModel.qml
+
+Which can then be used in a Qt Quick 3D project by using that QML Component:
+
+.. code-block:: xml
+
+ import QtQuick3D 1.0
+
+ Scene {
+ Model {
+ source: "TestModel.qml"
+ }
+ }
+
+For other modes of operation, refer to the `Balsam Asset Import Tool`_.
+
+.. _`Balsam Asset Import Tool`: https://doc.qt.io/qt-6/qtquick3d-tool-balsam.html
+.. _Maya: https://www.autodesk.com/products/maya/overview
+.. _3ds Max: https://www.autodesk.com/products/3ds-max/overview
+.. _Blender: https://www.blender.org/
+
diff --git a/sources/pyside6/doc/tools/pyside6-balsamui.rst b/sources/pyside6/doc/tools/pyside6-balsamui.rst
new file mode 100644
index 000000000..f34cb6045
--- /dev/null
+++ b/sources/pyside6/doc/tools/pyside6-balsamui.rst
@@ -0,0 +1,22 @@
+.. _pyside6-balsamui:
+
+pyside6-balsamui
+================
+
+``pyside6-balsamui`` is graphical user interface frontend to the command line
+tool :ref:`pyside6-balsam`. The purpose of the tool is to take assets created
+in digital content creation tools like `Maya`_, `3ds Max`_ or `Blender`_ and
+converts them into an efficient runtime format for use with Qt Quick 3D.
+
+For more information on the further capabilities of the tool, read Qt's
+documentation here: `Balsam Asset Import Tool`_.
+
+.. image:: pyside6-balsamui_screenshot.webp
+ :width: 500
+ :alt: pyside6-balsamui screenshot
+
+.. _`Balsam Asset Import Tool`: https://doc.qt.io/qt-6/qtquick3d-tool-balsam.html
+.. _Maya: https://www.autodesk.com/products/maya/overview
+.. _3ds Max: https://www.autodesk.com/products/3ds-max/overview
+.. _Blender: https://www.blender.org/
+
diff --git a/sources/pyside6/doc/tools/pyside6-balsamui_screenshot.webp b/sources/pyside6/doc/tools/pyside6-balsamui_screenshot.webp
new file mode 100644
index 000000000..5c194fdb6
--- /dev/null
+++ b/sources/pyside6/doc/tools/pyside6-balsamui_screenshot.webp
Binary files differ
diff --git a/sources/pyside6/doc/tools/pyside6-designer_base_screenshot.webp b/sources/pyside6/doc/tools/pyside6-designer_base_screenshot.webp
new file mode 100644
index 000000000..88ff77786
--- /dev/null
+++ b/sources/pyside6/doc/tools/pyside6-designer_base_screenshot.webp
Binary files differ
diff --git a/sources/pyside6/doc/tools/pyside6-designer_customwidgets_screenshot.webp b/sources/pyside6/doc/tools/pyside6-designer_customwidgets_screenshot.webp
new file mode 100644
index 000000000..c84436c1d
--- /dev/null
+++ b/sources/pyside6/doc/tools/pyside6-designer_customwidgets_screenshot.webp
Binary files differ
diff --git a/sources/pyside6/doc/tools/pyside6-designer_screenshot.webp b/sources/pyside6/doc/tools/pyside6-designer_screenshot.webp
new file mode 100644
index 000000000..27f03652b
--- /dev/null
+++ b/sources/pyside6/doc/tools/pyside6-designer_screenshot.webp
Binary files differ
diff --git a/sources/pyside6/doc/tools/pyside6-designer_sections_screenshot.webp b/sources/pyside6/doc/tools/pyside6-designer_sections_screenshot.webp
new file mode 100644
index 000000000..6ff025503
--- /dev/null
+++ b/sources/pyside6/doc/tools/pyside6-designer_sections_screenshot.webp
Binary files differ
diff --git a/sources/pyside6/doc/tools/pyside6-linguist_screenshot.webp b/sources/pyside6/doc/tools/pyside6-linguist_screenshot.webp
new file mode 100644
index 000000000..cd91007ba
--- /dev/null
+++ b/sources/pyside6/doc/tools/pyside6-linguist_screenshot.webp
Binary files differ
diff --git a/sources/pyside6/doc/tools/pyside6-qmlimportscanner.rst b/sources/pyside6/doc/tools/pyside6-qmlimportscanner.rst
new file mode 100644
index 000000000..ba27414d7
--- /dev/null
+++ b/sources/pyside6/doc/tools/pyside6-qmlimportscanner.rst
@@ -0,0 +1,53 @@
+.. _pyside6-qmlimportscanner:
+
+pyside6-qmlimportscanner
+========================
+
+``pyside6-qmlimportscanner`` is a command line tool that wraps the
+``qmlimportscanner`` tool of Qt.
+
+
+The tool is automatically run by the :ref:`pyside6-project` tool
+when passing the ``qmllint`` argument instructing it to check
+the QML source files.
+
+Usage
+-----
+
+Invoking the tool in the directory of the :ref:`filesystemexplorer_example`
+example using:
+
+.. code-block:: bash
+
+ pyside6-qmlimportscanner -rootPath .
+
+produces:
+
+.. code-block:: json
+
+ [
+ {
+ "name": "QtQuick",
+ "type": "module"
+ },
+ {
+ "name": "QtQuick.Controls.Basic",
+ "type": "module"
+ },
+ {
+ "name": "QtQuick.Layouts",
+ "type": "module"
+ },
+ {
+ "name": "FileSystemModule",
+ "type": "module"
+ },
+ {
+ "name": "QtQuick.Controls",
+ "type": "module"
+ },
+ {
+ "name": "QtQuick.Effects",
+ "type": "module"
+ }
+ ]
diff --git a/sources/pyside6/doc/tools/pyside6-qsb.rst b/sources/pyside6/doc/tools/pyside6-qsb.rst
new file mode 100644
index 000000000..f6f1847d4
--- /dev/null
+++ b/sources/pyside6/doc/tools/pyside6-qsb.rst
@@ -0,0 +1,39 @@
+.. _pyside6-qsb:
+
+pyside6-qsb
+===========
+
+``pyside6-qsb`` is a tool that wraps the `qsb <QSB Manual>`_ tool. qsb is a
+command line tool provided by the `Qt Shader Tools`_ module. It integrates
+third-party libraries such as `glslang`_ and `SPIRV-Cross`_, optionally invokes
+external tools, such as ``fxc`` or ``spirv-opt``, and generates .qsb files.
+Additionally, it can be used to inspect the contents of a .qsb package.
+
+For more information on how to use this tool, read Qt's documentation
+here: `QSB Manual`_.
+
+Usage
+-----
+
+To create a qsb file from a shader file, e.g., ``shader.frag``, use the
+following command:
+
+.. code-block:: bash
+
+ pyside6-qsb -o shader.frag.qsb shader.frag
+
+To inspect the file produced, i.e., ``shader.frag.qsb``, use the following
+command:
+
+.. code-block:: bash
+
+ pyside6-qsb -d shader.frag.qsb
+
+This will print the reflection metadata (in JSON form) and the included shaders.
+
+For other modes of operation, refer to the `QSB Manual`_.
+
+.. _`glslang`: https://github.com/KhronosGroup/glslang
+.. _`spirv-cross`: https://github.com/KhronosGroup/SPIRV-Cross
+.. _`QSB Manual`: https://doc.qt.io/qt-6/qtshadertools-qsb.html
+.. _`Qt Shader Tools`: https://doc.qt.io/qt-6/qtshadertools-index.html
diff --git a/sources/pyside6/doc/tutorials/basictutorial/clickablebutton.rst b/sources/pyside6/doc/tutorials/basictutorial/clickablebutton.rst
index 2221858bc..c5464640b 100644
--- a/sources/pyside6/doc/tutorials/basictutorial/clickablebutton.rst
+++ b/sources/pyside6/doc/tutorials/basictutorial/clickablebutton.rst
@@ -60,7 +60,8 @@ signal to the `say_hello()` function:
button.clicked.connect(say_hello)
Finally, we show the button and start the Qt main loop:
-::
+
+.. code-block:: python
# Show the button
button.show()
@@ -68,9 +69,8 @@ Finally, we show the button and start the Qt main loop:
app.exec()
Here is the complete code for this example:
-::
- #!/usr/bin/python
+.. code-block:: python
import sys
from PySide6.QtWidgets import QApplication, QPushButton
diff --git a/sources/pyside6/doc/tutorials/basictutorial/dialog.rst b/sources/pyside6/doc/tutorials/basictutorial/dialog.rst
index bc06d6d9b..b7712672b 100644
--- a/sources/pyside6/doc/tutorials/basictutorial/dialog.rst
+++ b/sources/pyside6/doc/tutorials/basictutorial/dialog.rst
@@ -3,8 +3,8 @@ Creating a Dialog Application
This tutorial shows how to build a simple dialog with some
basic widgets. The idea is to let users provide their name
-in a `QLineEdit`, and the dialog greets them on click of a
-`QPushButton`.
+in a ``QLineEdit``, and the dialog greets them on click of a
+``QPushButton``.
Let us just start with a simple stub that creates and shows
a dialog. This stub is updated during the course of this
@@ -31,24 +31,24 @@ tutorial, but you can use this stub as is if you need to:
sys.exit(app.exec())
The imports aren't new to you, the same for the creation of the
-`QApplication` and the execution of the Qt main loop.
+``QApplication`` and the execution of the Qt main loop.
The only novelty here is the **class definition**.
You can create any class that subclasses PySide6 widgets.
-In this case, we are subclassing `QDialog` to define a custom
+In this case, we are subclassing ``QDialog`` to define a custom
dialog, which we name as **Form**. We have also implemented the
-`init()` method that calls the `QDialog`'s init method with the
-parent widget, if any. Also, the new `setWindowTitle()` method
-just sets the title of the dialog window. In `main()`, you can see
+``init()`` method that calls the ``QDialog``'s init method with the
+parent widget, if any. Also, the new ``setWindowTitle()`` method
+just sets the title of the dialog window. In ``main()``, you can see
that we are creating a *Form object* and showing it to the world.
Create the Widgets
------------------
-We are going to create two widgets: a `QLineEdit` where users can
-enter their name, and a `QPushButton` that prints the contents of
-the `QLineEdit`.
-So, let's add the following code to the `init()` method of our Form:
+We are going to create two widgets: a ``QLineEdit`` where users can
+enter their name, and a ``QPushButton`` that prints the contents of
+the ``QLineEdit``.
+So, let's add the following code to the ``init()`` method of our Form:
::
# Create widgets
@@ -62,8 +62,8 @@ Create a layout to organize the Widgets
---------------------------------------
Qt comes with layout-support that helps you organize the widgets
-in your application. In this case, let's use `QVBoxLayout` to lay out
-the widgets vertically. Add the following code to the `init()` method,
+in your application. In this case, let's use ``QVBoxLayout`` to lay out
+the widgets vertically. Add the following code to the ``init()`` method,
after creating the widgets:
::
@@ -72,40 +72,41 @@ after creating the widgets:
layout.addWidget(self.edit)
layout.addWidget(self.button)
-So, we create the layout, add the widgets with `addWidget()`.
+So, we create the layout, add the widgets with ``addWidget()``.
Create the function to greet and connect the Button
---------------------------------------------------
Finally, we just have to add a function to our custom **Form**
and *connect* our button to it. Our function will be a part of
-the Form, so you have to add it after the `init()` function:
+the Form, so you have to add it after the ``init()`` function:
::
# Greets the user
def greetings(self):
print(f"Hello {self.edit.text()}")
-Our function just prints the contents of the `QLineEdit` to the
+Our function just prints the contents of the ``QLineEdit`` to the
python console. We have access to the text by means of the
-`QLineEdit.text()` method.
+``QLineEdit.text()`` method.
Now that we have everything, we just need to *connect* the
-`QPushButton` to the `Form.greetings()` method. To do so, add the
-following line to the `init()` method:
+``QPushButton`` to the ``Form.greetings()`` method. To do so, add the
+following line to the ``init()`` method:
::
# Add button signal to greetings slot
self.button.clicked.connect(self.greetings)
-Once executed, you can enter your name in the `QLineEdit` and watch
+Once executed, you can enter your name in the ``QLineEdit`` and watch
the console for greetings.
Complete code
-------------
Here is the complete code for this tutorial:
-::
+
+.. code-block:: python
import sys
from PySide6.QtWidgets import (QLineEdit, QPushButton, QApplication,
diff --git a/sources/pyside6/doc/tutorials/basictutorial/icons.zip b/sources/pyside6/doc/tutorials/basictutorial/icons.zip
new file mode 100644
index 000000000..e279e37b8
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/basictutorial/icons.zip
Binary files differ
diff --git a/sources/pyside6/doc/tutorials/basictutorial/qrcfiles.rst b/sources/pyside6/doc/tutorials/basictutorial/qrcfiles.rst
index 477c5b738..858293beb 100644
--- a/sources/pyside6/doc/tutorials/basictutorial/qrcfiles.rst
+++ b/sources/pyside6/doc/tutorials/basictutorial/qrcfiles.rst
@@ -1,7 +1,7 @@
.. _using_qrc_files:
-Using `.qrc` Files (`pyside6-rcc`)
-**********************************
+Using ``.qrc`` Files (``pyside6-rcc``)
+**************************************
The `Qt Resource System`_ is a mechanism for storing binary files
in an application.
@@ -17,7 +17,7 @@ In this tutorial you will learn how to load custom images as button icons.
For inspiration, we will try to adapt the multimedia player example
from Qt.
-As you can see on the following image, the `QPushButton` that are used
+As you can see on the following image, the ``QPushButton`` that are used
for the media actions (play, pause, stop, and so on) are using the
default icons meant for such actions.
@@ -25,29 +25,27 @@ default icons meant for such actions.
:alt: Multimedia Player Qt Example
You could make the application more attractive by designing the icons,
-but in case you don't want to design them, `download the following set`_
-and use them.
+but in case you don't want to design them, you can download and use them.
+
+:download:`Download icons <icons.zip>`
.. image:: icons.png
:alt: New Multimedia icons
-You can find more information about the `rcc` command, and `.qrc` file
+You can find more information about the ``rcc`` command, and ``.qrc`` file
format, and the resource system in general in the `Qt Resource System`_
site.
-.. _`download the following set`: icons/
-
-The `.qrc` file
-================
+The ``.qrc`` file
+=================
-Before running any command, add information about the resources to a `.qrc`
+Before running any command, add information about the resources to a ``.qrc``
file.
-In the following example, notice how the resources are listed in `icons.qrc`
+In the following example, notice how the resources are listed in ``icons.qrc``
::
- </ui>
<!DOCTYPE RCC><RCC version="1.0">
<qresource>
<file>icons/play.png</file>
@@ -62,15 +60,15 @@ In the following example, notice how the resources are listed in `icons.qrc`
Generating a Python file
=========================
-Now that the `icons.qrc` file is ready, use the `pyside6-rcc` tool to generate
+Now that the ``icons.qrc`` file is ready, use the ``pyside6-rcc`` tool to generate
a Python class containing the binary information about the resources
To do this, we need to run::
- pyside6-rcc icons.rc -o rc_icons.py
+ pyside6-rcc icons.qrc -o rc_icons.py
-The `-o` option lets you specify the output filename,
-which is `rc_icons.py` in this case.
+The ``-o`` option lets you specify the output filename,
+which is ``rc_icons.py`` in this case.
To use the generated file, add the following import at the top of your main Python file::
@@ -167,7 +165,7 @@ Now, the constructor of your class should look like this:
Executing the example
=====================
-Run the application by calling `python main.py` to checkout the new icon-set:
+Run the application by calling ``python main.py`` to checkout the new icon-set:
.. image:: player-new.png
:alt: New Multimedia Player Qt Example
diff --git a/sources/pyside6/doc/tutorials/basictutorial/signals_and_slots.rst b/sources/pyside6/doc/tutorials/basictutorial/signals_and_slots.rst
new file mode 100644
index 000000000..0bfd9e276
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/basictutorial/signals_and_slots.rst
@@ -0,0 +1,263 @@
+.. _signals-and-slots:
+
+Signals and Slots
+=================
+
+Due to the nature of Qt, ``QObject``\s require a way to communicate, and that's
+the reason for this mechanism to be a **central feature of Qt**.
+
+In simple terms, you can understand **Signal and Slots** in the same way you
+interact with the lights in your house. When you move the light switch
+(signal) you get a result which may be that your light bulbs are switched
+on/off (slot).
+
+While developing interfaces, you can get a real example by the effect of
+clicking a button: the 'click' will be the signal, and the slot will be what
+happens when that button is clicked, like closing a window, saving a document,
+etc.
+
+.. note::
+ If you have experience with other frameworks or toolkits, it's likely
+ that you read a concept called 'callback'. Leaving the implementation
+ details aside, a callback will be related to a notification function,
+ passing a pointer to a function in case it's required due to the events
+ that happen in your program. This approach might sound similar, but
+ there are essential differences that make it an unintuitive approach,
+ like ensuring the type correctness of callback arguments, and some others.
+
+All classes that inherit from ``QObject`` or one of its subclasses, like
+``QWidget`` can contain signals and slots. **Signals are emitted by objects**
+when they change their state in a way that may be interesting to other objects.
+This is all the object does to communicate. It does not know or care whether
+anything is receiving the signals it emits. This is true information
+encapsulation, and ensures that the object can be used as a software component.
+
+**Slots can be used for receiving signals**, but they are also normal member
+functions. Just as an object does not know if anything receives its signals,
+a slot does not know if it has any signals connected to it. This ensures that
+truly independent components can be created with Qt.
+
+You can connect as many signals as you want to a single slot, and a signal can
+be connected to as many slots as you need. It is even possible to connect
+a signal directly to another signal. (This will emit the second signal
+immediately whenever the first is emitted.)
+
+Qt's widgets have many predefined signals and slots. For example,
+``QAbstractButton`` (base class of buttons in Qt) has a ``clicked()``
+signal and ``QLineEdit`` (single line input field) has a slot named
+``clear()``. So, a text input field with a button to clear the text
+could be implemented by placing a ``QToolButton`` to the right of the
+``QLineEdit`` and connecting its ``clicked()`` signal to the slot
+``clear()``. This is done using the ``connect()`` method of the signal:
+
+.. code-block:: python
+
+ button = QToolButton()
+ line_edit = QLineEdit()
+ button.clicked.connect(line_edit.clear)
+
+``connect()`` returns a ``QMetaObject.Connection`` object, which can be
+used with the ``disconnect()`` method to sever the connection.
+
+Signals can also be connected to free functions:
+
+.. code-block:: python
+
+ import sys
+ from PySide6.QtWidgets import QApplication, QPushButton
+
+
+ def function():
+ print("The 'function' has been called!")
+
+ app = QApplication()
+ button = QPushButton("Call function")
+ button.clicked.connect(function)
+ button.show()
+ sys.exit(app.exec())
+
+Connections can be spelled out in code or, for widget forms,
+designed in the
+`Signal-Slot Editor <https://doc.qt.io/qt-6/designer-connection-mode.html>`_
+of *Qt Widgets Designer*.
+
+The Signal Class
+----------------
+
+When writing classes in Python, signals are declared as class level
+variables of the class ``QtCore.Signal()``. A QWidget-based button
+that emits a ``clicked()`` signal could look as
+follows:
+
+.. code-block:: python
+
+ from PySide6.QtCore import Qt, Signal
+ from PySide6.QtWidgets import QWidget
+
+ class Button(QWidget):
+
+ clicked = Signal(Qt.MouseButton)
+
+ ...
+
+ def mousePressEvent(self, event):
+ self.clicked.emit(event.button())
+
+The constructor of ``Signal`` takes a tuple or a list of Python types
+and C types:
+
+.. code-block:: python
+
+ signal1 = Signal(int) # Python types
+ signal2 = Signal(QUrl) # Qt Types
+ signal3 = Signal(int, str, int) # more than one type
+ signal4 = Signal((float,), (QDate,)) # optional types
+
+In addition to that, it can receive also a named argument ``name`` that defines
+the signal name. If nothing is passed, the new signal will have the same name
+as the variable that it is being assigned to.
+
+.. code-block:: python
+
+ # TODO
+ signal5 = Signal(int, name='rangeChanged')
+ # ...
+ rangeChanged.emit(...)
+
+Another useful option of ``Signal`` is the arguments name,
+useful for QML applications to refer to the emitted values by name:
+
+.. code-block:: python
+
+ sumResult = Signal(int, arguments=['sum'])
+
+.. code-block:: javascript
+
+ Connections {
+ target: ...
+ function onSumResult(sum) {
+ // do something with 'sum'
+ }
+
+
+.. _slot-decorator:
+
+The Slot Class
+--------------
+
+Slots in QObject-derived classes should be indicated by the decorator
+``@QtCore.Slot()``. Again, to define a signature just pass the types
+similar to the ``QtCore.Signal()`` class.
+
+.. code-block:: python
+
+ @Slot(str)
+ def slot_function(self, s):
+ ...
+
+
+``Slot()`` also accepts a ``name`` and a ``result`` keyword.
+The ``result`` keyword defines the type that will be returned and can be a C or
+Python type. The ``name`` keyword behaves the same way as in ``Signal()``. If
+nothing is passed as name then the new slot will have the same name as the
+function that is being decorated.
+
+We recommend marking all methods used by signal connections with a
+``@QtCore.Slot()`` decorator. Not doing causes run-time overhead due to the
+method being added to the ``QMetaObject`` when creating the connection. This is
+particularly important for ``QObject`` classes registered with QML, where
+missing decorators can introduce bugs.
+
+Missing decorators can be diagnosed by setting activating warnings of the
+logging category ``qt.pyside.libpyside``; for example by setting the
+environment variable:
+
+.. code-block:: bash
+
+ export QT_LOGGING_RULES="qt.pyside.libpyside.warning=true"
+
+.. _overloading-signals-and-slots:
+
+Overloading Signals and Slots with Different Types
+--------------------------------------------------
+
+It is actually possible to use signals and slots of the same name with different
+parameter type lists. This is legacy from Qt 5 and not recommended for new code.
+In Qt 6, signals have distinct names for different types.
+
+The following example uses two handlers for a Signal and a Slot to showcase
+the different functionality.
+
+.. code-block:: python
+
+ import sys
+ from PySide6.QtWidgets import QApplication, QPushButton
+ from PySide6.QtCore import QObject, Signal, Slot
+
+
+ class Communicate(QObject):
+ # create two new signals on the fly: one will handle
+ # int type, the other will handle strings
+ speak = Signal((int,), (str,))
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+ self.speak[int].connect(self.say_something)
+ self.speak[str].connect(self.say_something)
+
+ # define a new slot that receives a C 'int' or a 'str'
+ # and has 'say_something' as its name
+ @Slot(int)
+ @Slot(str)
+ def say_something(self, arg):
+ if isinstance(arg, int):
+ print("This is a number:", arg)
+ elif isinstance(arg, str):
+ print("This is a string:", arg)
+
+ if __name__ == "__main__":
+ app = QApplication(sys.argv)
+ someone = Communicate()
+
+ # emit 'speak' signal with different arguments.
+ # we have to specify the str as int is the default
+ someone.speak.emit(10)
+ someone.speak[str].emit("Hello everybody!")
+
+
+.. _signals-and-slots-strings:
+
+Specifying Signals and Slots by Method Signature Strings
+--------------------------------------------------------
+
+
+Signals and slots can also be specified as C++ method signature
+strings passed through the ``SIGNAL()`` and/or ``SLOT()`` functions:
+
+.. code-block:: python
+
+ from PySide6.QtCore import SIGNAL, SLOT
+
+ button.connect(SIGNAL("clicked(Qt::MouseButton)"),
+ action_handler, SLOT("action1(Qt::MouseButton)"))
+
+This is not normally recommended; it is only needed
+for a few cases where signals are only accessible via ``QMetaObject``
+(``QAxObject``, ``QAxWidget``, ``QDBusInterface`` or ``QWizardPage::registerField()``):
+
+.. code-block:: python
+
+ wizard.registerField("text", line_edit, "text",
+ SIGNAL("textChanged(QString)"))
+
+The signature strings can be found by querying ``QMetaMethod.methodSignature()``
+when introspecting ``QMetaObject``:
+
+.. code-block:: python
+
+ mo = widget.metaObject()
+ for m in range(mo.methodOffset(), mo.methodCount()):
+ print(mo.method(m).methodSignature())
+
+Slots should be decorated using :ref:`@Slot <slot-decorator>`.
diff --git a/sources/pyside6/doc/tutorials/basictutorial/signals_slots.png b/sources/pyside6/doc/tutorials/basictutorial/signals_slots.png
new file mode 100644
index 000000000..0801cf16e
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/basictutorial/signals_slots.png
Binary files differ
diff --git a/sources/pyside6/doc/tutorials/basictutorial/translations.rst b/sources/pyside6/doc/tutorials/basictutorial/translations.rst
index 544218553..21c16cdcd 100644
--- a/sources/pyside6/doc/tutorials/basictutorial/translations.rst
+++ b/sources/pyside6/doc/tutorials/basictutorial/translations.rst
@@ -9,10 +9,10 @@ Translating Applications
Qt Linguist
-----------
-`Qt Linguist <https://doc.qt.io/qt-6/qtlinguist-index.html>`_ and
+`Qt Linguist`_ and
its related tools can be used to provide translations for applications.
-The ``examples/widgets/linguist`` example illustrates this. The example is
+The :ref:`qt-linguist-example` example illustrates this. The example is
very simple, it has a menu and shows a list of programming languages with
multiselection.
@@ -28,29 +28,53 @@ The linguist example has a number of messages enclosed in ``self.tr()``.
The status bar message shown in response to a selection change uses
a plural form depending on a count:
- .. code-block:: python
+.. code-block:: python
- count = len(self._list_widget.selectionModel().selectedRows())
- message = self.tr("%n language(s) selected", "", count)
+ count = len(self._list_widget.selectionModel().selectedRows())
+ message = self.tr("%n language(s) selected", "", count)
The translation workflow for the example is as follows:
The translated messages are extracted using the ``lupdate`` tool,
producing XML-based ``.ts`` files:
- .. code-block:: bash
+.. code-block:: bash
- pyside6-lupdate main.py -ts example_de.ts
+ pyside6-lupdate main.py -ts example_de.ts
If ``example_de.ts`` already exists, it will be updated with the new
messages added to the code in-between.
+If there are form files (``.ui``) and/or QML files (``.qml``) in the project,
+they should be passed to the ``pyside6-lupdate`` tool as well:
+
+.. code-block:: bash
+
+ pyside6-lupdate main.py main.qml form.ui -ts example_de.ts
+
+The source files generated by ``pyside6-uic`` from the form files
+should **not** be passed.
+
+The ``lupdate`` mode of ``pyside6-project`` can also be used for this. It
+collects all source files and runs ``pyside6-lupdate`` when ``.ts`` file(s)
+are given in the ``.pyproject`` file:
+
+.. code-block:: bash
+
+ pyside6-project lupdate .
+
``.ts`` files are translated using *Qt Linguist*. Once this is complete,
the files are converted to a binary form (``.qm`` files):
- .. code-block:: bash
+.. code-block:: bash
- mkdir translations
- pyside6-lrelease example_de.ts -qm translations/example_de.qm
+ pyside6-lrelease example_de.ts -qm example_de.qm
+
+``pyside6-project`` will build the ``.qm`` file automatically when
+``.ts`` file(s) are given in the ``.pyproject`` file:
+
+.. code-block:: bash
+
+ pyside6-project build .
To avoid having to ship the ``.qm`` files, it is recommend
to put them into a Qt resource file along with icons and other
@@ -58,43 +82,45 @@ applications resources (see :ref:`using_qrc_files`).
The resource file ``linguist.qrc`` provides the ``example_de.qm``
under ``:/translations``:
- .. code-block:: xml
+.. code-block:: xml
- <!DOCTYPE RCC><RCC version="1.0">
- <qresource>
- <file>translations/example_de.qm</file>
- </qresource>
- </RCC>
+ <!DOCTYPE RCC><RCC version="1.0">
+ <qresource prefix="translations">
+ <file>example_de.qm</file>
+ </qresource>
+ </RCC>
At runtime, the translations need to be loaded using the ``QTranslator`` class:
- .. code-block:: python
+.. code-block:: python
- path = QLibraryInfo.location(QLibraryInfo.TranslationsPath)
- translator = QTranslator(app)
- if translator.load(QLocale.system(), 'qtbase', '_', path):
- app.installTranslator(translator)
- translator = QTranslator(app)
- path = ':/translations'
- if translator.load(QLocale.system(), 'example', '_', path):
- app.installTranslator(translator)
+ path = QLibraryInfo.location(QLibraryInfo.TranslationsPath)
+ translator = QTranslator(app)
+ if translator.load(QLocale.system(), 'qtbase', '_', path):
+ app.installTranslator(translator)
+ translator = QTranslator(app)
+ path = ':/translations'
+ if translator.load(QLocale.system(), 'example', '_', path):
+ app.installTranslator(translator)
The code first loads the translations shipped for Qt and then
the translations of the applications loaded from resources.
The example can then be run in German:
- .. code-block:: bash
+.. code-block:: bash
+
+ LANG=de python main.py
- LANG=de python main.py
+.. _Qt Linguist: https://doc.qt.io/qt-6/qtlinguist-index.html
GNU gettext
-----------
-The `GNU gettext <https://docs.python.org/3/library/gettext.html>`_ module
+The `GNU gettext`_ module
can be used to provide translations for applications.
-The ``examples/widgets/gettext`` example illustrates this. The example is
+The :ref:`gettext-example` example illustrates this. The example is
very simple, it has a menu and shows a list of programming languages with
multiselection.
@@ -106,29 +132,29 @@ aliased to ``ngettext``.
Those functions are defined at the top:
- .. code-block:: python
+.. code-block:: python
- import gettext
- ...
- _ = None
- ngettext = None
+ import gettext
+ # ...
+ _ = None
+ ngettext = None
and later assigned as follows:
- .. code-block:: python
-
- src_dir = Path(__file__).resolve().parent
- try:
- translation = gettext.translation('example', localedir=src_dir / 'locales')
- if translation:
- translation.install()
- _ = translation.gettext
- ngettext = translation.ngettext
- except FileNotFoundError:
- pass
- if not _:
- _ = gettext.gettext
- ngettext = gettext.ngettext
+.. code-block:: python
+
+ src_dir = Path(__file__).resolve().parent
+ try:
+ translation = gettext.translation('example', localedir=src_dir / 'locales')
+ if translation:
+ translation.install()
+ _ = translation.gettext
+ ngettext = translation.ngettext
+ except FileNotFoundError:
+ pass
+ if not _:
+ _ = gettext.gettext
+ ngettext = gettext.ngettext
This specifies that our translation file has the base name ``example`` and
will be found in the source tree under ``locales``. The code will try
@@ -136,18 +162,18 @@ to load a translation matching the current language.
Messages to be translated look like:
- .. code-block:: python
+.. code-block:: python
- file_menu = self.menuBar().addMenu(_("&File"))
+ file_menu = self.menuBar().addMenu(_("&File"))
The status bar message shown in response to a selection change uses
a plural form depending on a count:
- .. code-block:: python
+.. code-block:: python
- count = len(self._list_widget.selectionModel().selectedRows())
- message = ngettext("{0} language selected",
- "{0} languages selected", count).format(count)
+ count = len(self._list_widget.selectionModel().selectedRows())
+ message = ngettext("{0} language selected",
+ "{0} languages selected", count).format(count)
The ``ngettext()`` function takes the singular form, plural form and the count.
The returned string still contains the formatting placeholder, so it needs
@@ -162,43 +188,45 @@ is first created:
xgettext -L Python -o locales/example.pot main.py
This file has a few generic placeholders which can be replaced by the
-appropriate values. It is then copied to the ``de_DE/LC_MESSAGES`` directory.
+appropriate values. It is then copied to the ``de_DE/LC_MESSAGES`` directory.
- .. code-block:: bash
+.. code-block:: bash
- cd locales/de_DE/LC_MESSAGES/
- cp ../../example.pot .
+ cd locales/de_DE/LC_MESSAGES/
+ cp ../../example.pot .
Further adaptions need to be made to account for the German plural
form and encoding:
- .. code-block::
+.. code-block::
- "Project-Id-Version: PySide6 gettext example\n"
- "POT-Creation-Date: 2021-07-05 14:16+0200\n"
- "Language: de_DE\n"
- "MIME-Version: 1.0\n"
- "Content-Type: text/plain; charset=UTF-8\n"
- "Content-Transfer-Encoding: 8bit\n"
- "Plural-Forms: nplurals=2; plural=n != 1;\n"
+ "Project-Id-Version: PySide6 gettext example\n"
+ "POT-Creation-Date: 2021-07-05 14:16+0200\n"
+ "Language: de_DE\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ "Plural-Forms: nplurals=2; plural=n != 1;\n"
Below, the translated messages can be given:
- .. code-block::
+.. code-block::
- #: main.py:57
- msgid "&File"
- msgstr "&Datei"
+ #: main.py:57
+ msgid "&File"
+ msgstr "&Datei"
Finally, the ``.pot`` is converted to its binary form (machine object file,
``.mo``), which needs to be deployed:
- .. code-block:: bash
+.. code-block:: bash
- msgfmt -o example.mo example.pot
+ msgfmt -o example.mo example.pot
The example can then be run in German:
- .. code-block:: bash
+.. code-block:: bash
+
+ LANG=de python main.py
- LANG=de python main.py
+.. _GNU gettext: https://docs.python.org/3/library/gettext.html
diff --git a/sources/pyside6/doc/tutorials/basictutorial/treewidget.rst b/sources/pyside6/doc/tutorials/basictutorial/treewidget.rst
index b286de507..f431cb5c4 100644
--- a/sources/pyside6/doc/tutorials/basictutorial/treewidget.rst
+++ b/sources/pyside6/doc/tutorials/basictutorial/treewidget.rst
@@ -11,14 +11,14 @@ information in trees. You can also create a data model and display it using a
further on. To know more about the Model/View architecture in Qt, refer to
its `official documentation <https://doc.qt.io/qt-6/model-view-programming.html>`_.
-1. Import ``QTreeWidget`` and ``QTreeWidgetItem`` for this application:
+#. Import ``QTreeWidget`` and ``QTreeWidgetItem`` for this application:
.. code-block:: python
import sys
from PySide6.QtWidgets import QApplication, QTreeWidget, QTreeWidgetItem
-2. Define a dictionary with project structures to display the information as a
+#. Define a dictionary with project structures to display the information as a
tree, with files belonging to each project:
.. code-block:: python
@@ -27,13 +27,13 @@ information in trees. You can also create a data model and display it using a
"Project B": ["file_b.csv", "photo.jpg"],
"Project C": []}
-3. Initialize the ``QApplication`` singleton:
+#. Initialize the ``QApplication`` singleton:
.. code-block:: python
app = QApplication()
-4. Configure the ``QTreeWidget`` to have two columns, one for the item name,
+#. Configure the ``QTreeWidget`` to have two columns, one for the item name,
and the other for item type information of the files in the project
directories.
You can set the column name with the ``setHeaderLabels`` as described below:
@@ -44,7 +44,7 @@ information in trees. You can also create a data model and display it using a
tree.setColumnCount(2)
tree.setHeaderLabels(["Name", "Type"])
-5. Iterate the data structure, create the ``QTreeWidgetItem`` elements, and add
+#. Iterate the data structure, create the ``QTreeWidgetItem`` elements, and add
the corresponding children to each parent.
We also extract the extension name for only the files and add them
into the second column.
@@ -64,7 +64,7 @@ information in trees. You can also create a data model and display it using a
tree.insertTopLevelItems(0, items)
-7. Show the tree and execute the ``QApplication``.
+#. Show the tree and execute the ``QApplication``.
.. code-block:: python
diff --git a/sources/pyside6/doc/tutorials/basictutorial/uifiles.rst b/sources/pyside6/doc/tutorials/basictutorial/uifiles.rst
index 84f81df07..cb945908d 100644
--- a/sources/pyside6/doc/tutorials/basictutorial/uifiles.rst
+++ b/sources/pyside6/doc/tutorials/basictutorial/uifiles.rst
@@ -1,27 +1,27 @@
.. _using_ui_files:
-Using `.ui` files from Designer or QtCreator with `QUiLoader` and `pyside6-uic`
-*******************************************************************************
+Using ``.ui`` files from Designer or QtCreator with ``QUiLoader`` and ``pyside6-uic``
+*************************************************************************************
This page describes the use of
-`Qt Designer <https://doc.qt.io/qt-6/qtdesigner-manual.html>`_ to create
+`Qt Widgets Designer <https://doc.qt.io/qt-6/qtdesigner-manual.html>`_ to create
graphical interfaces based on Qt Widgets for your Qt for Python project.
-**Qt Designer** is a graphical UI design tool which is available as a
+*Qt Widgets Designer* is a graphical UI design tool which is available as a
standalone binary (``pyside6-designer``) or embedded into the
-`Qt Creator IDE <https://doc.qt.io/qtcreator>`_. Its use within **Qt Creator**
+`Qt Creator IDE <https://doc.qt.io/qtcreator>`_. Its use within *Qt Creator*
is described at
-`Using Qt Designer <http://doc.qt.io/qtcreator/creator-using-qt-designer.html>`_.
+`Using Qt Widgets Designer <https://doc.qt.io/qtcreator/creator-using-qt-designer.html>`_.
.. image:: uifiles.png
:alt: Designer and the equivalent code
-The designs are stored in `.ui` files, which is an XML-based format. It will
+The designs are stored in ``.ui`` files, which is an XML-based format. It will
be converted to Python or C++ code populating a widget instance at project build
time by the `pyside6-uic <https://doc.qt.io/qt-6/uic.html>`_ tool.
-To create a new Qt Design Form in **Qt Creator**, choose
-`File/New File Or Project` and "Main Window" for template. Save it as
-`mainwindow.ui`. Add a `QPushButton` to the center of the centralwidget.
+To create a new Qt Design Form in *Qt Creator*, choose
+``File/New File Or Project`` and "Main Window" for template. Save it as
+``mainwindow.ui``. Add a ``QPushButton`` to the center of the centralwidget.
Your file ``mainwindow.ui`` should look something like this:
@@ -88,12 +88,12 @@ Option A: Generating a Python class
===================================
The standard way to interact with a **UI file** is to generate a Python
-class from it. This is possible thanks to the `pyside6-uic` tool.
+class from it. This is possible thanks to the ``pyside6-uic`` tool.
To use this tool, you need to run the following command on a console::
- pyside6-uic mainwindow.ui > ui_mainwindow.py
+ pyside6-uic mainwindow.ui -o ui_mainwindow.py
-We redirect all the output of the command to a file called `ui_mainwindow.py`,
+We redirect all the output of the command to a file called ``ui_mainwindow.py``,
which will be imported directly::
from ui_mainwindow import Ui_MainWindow
@@ -136,7 +136,7 @@ file:
.. note::
- You must run `pyside6-uic` again every time you make changes
+ You must run ``pyside6-uic`` again every time you make changes
to the **UI file**.
Option B: Loading it directly
@@ -149,7 +149,7 @@ module:
from PySide6.QtUiTools import QUiLoader
-The `QUiLoader` lets us load the **ui file** dynamically
+The ``QUiLoader`` lets us load the **ui file** dynamically
and use it right away:
.. code-block:: python
@@ -192,40 +192,41 @@ The complete code of this example looks like this:
Then to execute it we just need to run the following on a
command prompt:
-.. code-block:: python
+.. code-block:: bash
python main.py
.. note::
- `QUiLoader` uses connect() calls taking the function signatures as string
+ ``QUiLoader`` uses ``connect()`` calls taking the function signatures as string
arguments for signal/slot connections.
- It is thus unable to handle Python types like `str` or `list` from
+ It is thus unable to handle Python types like ``str`` or ``list`` from
custom widgets written in Python since these types are internally mapped
to different C++ types.
.. _designer_custom_widgets:
-Custom Widgets in Qt Designer
-=============================
+Custom Widgets in Qt Widgets Designer
+=====================================
-**Qt Designer** is able to use user-provided (custom) widgets. They are shown
-in the widget box and can be dragged onto the form just like Qt's widgets (see
-`Using Custom Widgets with Qt Designer <https://doc.qt.io/qt-6/designer-using-custom-widgets.html>`_
-). Normally, this requires implementing the widget as a plugin to Qt Designer
-written in C++ implementing its
-`QDesignerCustomWidgetInterface <https://doc.qt.io/qt-6/qdesignercustomwidgetinterface.html>`_ .
+*Qt Widgets Designer* is able to use user-provided (custom) widgets.
+They are shown in the widget box and can be dragged onto the form just like
+Qt's widgets (see
+`Using Custom Widgets with Qt Widgets Designer <https://doc.qt.io/qt-6/designer-using-custom-widgets.html>`_
+). Normally, this requires implementing the widget as a plugin to
+*Qt Widgets Designer* written in C++ implementing its
+`QDesignerCustomWidgetInterface`_ .
Qt for Python provides a simple interface for this which is similar to
:meth:`registerCustomWidget()<PySide6.QtUiTools.QUiLoader.registerCustomWidget>`.
The widget needs to be provided as a Python module, as shown by
-the widgetbinding example (file ``wigglywidget.py``) or
-the taskmenuextension example (file ``tictactoe.py``).
+the :ref:`widgetbinding-example` (file ``wigglywidget.py``) or
+the :ref:`task-menu-extension-example` (file ``tictactoe.py``).
-Registering this with Qt Designer is done by providing
+Registering this with *Qt Widgets Designer* is done by providing
a registration script named ``register*.py`` and pointing
-the path-type environment variable ``PYSIDE_DESIGNER_PLUGINS``
+the path-type environment variable ``PYSIDE_DESIGNER_PLUGINS``
to the directory.
The code of the registration script looks as follows:
@@ -262,20 +263,20 @@ The code of the registration script looks as follows:
QPyDesignerCustomWidgetCollection provides an implementation of
-`QDesignerCustomWidgetCollectionInterface <https://doc.qt.io/qt-6/qdesignercustomwidgetcollectioninterface.html>`_
-exposing custom widgets to **Qt Designer** with static convenience functions
-for registering types or adding instances of
-`QDesignerCustomWidgetInterface <https://doc.qt.io/qt-6/qdesignercustomwidgetinterface.html>`_ .
+`QDesignerCustomWidgetCollectionInterface`_
+exposing custom widgets to *Qt Widgets Designer* with static convenience
+functions for registering types or adding instances of
+`QDesignerCustomWidgetInterface`_ .
The function
:meth:`registerCustomWidget()<PySide6.QtDesigner.QPyDesignerCustomWidgetCollection.registerCustomWidget>`
-is used to register a widget type with **Qt Designer**. In the simple case, it
-can be used like `QUiLoader.registerCustomWidget()`. It takes the custom widget
+is used to register a widget type with *Qt Widgets Designer*. In the simple case, it
+can be used like ``QUiLoader.registerCustomWidget()``. It takes the custom widget
type and some optional keyword arguments passing values that correspond to the
getters of
-`QDesignerCustomWidgetInterface <https://doc.qt.io/qt-6/qdesignercustomwidgetinterface.html>`_ :
+`QDesignerCustomWidgetInterface`_ :
-When launching **Qt Designer** via its launcher ``pyside6-designer``,
+When launching *Qt Widgets Designer* via its launcher ``pyside6-designer``,
the custom widget should be visible in the widget box.
For advanced usage, it is also possible to pass the function an implementation
@@ -286,15 +287,18 @@ is registered for the custom widget. The example is a port of the
corresponding C++
`Task Menu Extension Example <https://doc.qt.io/qt-6/qtdesigner-taskmenuextension-example.html>`_ .
-Troubleshooting the Qt Designer Plugin
-++++++++++++++++++++++++++++++++++++++
+.. _QDesignerCustomWidgetCollectionInterface: https://doc.qt.io/qt-6/qdesignercustomwidgetcollectioninterface.html
+.. _QDesignerCustomWidgetInterface: https://doc.qt.io/qt-6/qdesignercustomwidgetinterface.html
+
+Troubleshooting the Qt Widgets Designer Plugin
+++++++++++++++++++++++++++++++++++++++++++++++
- The launcher ``pyside6-designer`` must be used. The standalone
- **Qt Designer** will not load the plugin.
+ *Qt Widgets Designer* will not load the plugin.
- The menu item **Help/About Plugin** brings up a dialog showing the plugins
found and potential load error messages.
- Check the console or Windows Debug view for further error messages.
- Due to the buffering of output by Python, error messages may appear
- only after **Qt Designer** has terminated.
+ only after *Qt Widgets Designer* has terminated.
- When building Qt for Python, be sure to set the ``--standalone`` option
for the plugin to be properly installed.
diff --git a/sources/pyside6/doc/tutorials/basictutorial/widgetstyling.py b/sources/pyside6/doc/tutorials/basictutorial/widgetstyling.py
index 9db878b0c..106483b7b 100644
--- a/sources/pyside6/doc/tutorials/basictutorial/widgetstyling.py
+++ b/sources/pyside6/doc/tutorials/basictutorial/widgetstyling.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
diff --git a/sources/pyside6/doc/tutorials/basictutorial/widgetstyling.rst b/sources/pyside6/doc/tutorials/basictutorial/widgetstyling.rst
index a4e937a2e..2fa51c0a8 100644
--- a/sources/pyside6/doc/tutorials/basictutorial/widgetstyling.rst
+++ b/sources/pyside6/doc/tutorials/basictutorial/widgetstyling.rst
@@ -23,7 +23,7 @@ to each component. As an example, look at the following simple snippet:
w.show()
sys.exit(app.exec())
-When you execute this code, you will see a simple `QLabel` aligned at the
+When you execute this code, you will see a simple ``QLabel`` aligned at the
center, and with a placeholder text.
.. image:: widgetstyling-simple-no.png
@@ -32,8 +32,8 @@ center, and with a placeholder text.
You can style your application using the CSS-like syntax.
For more information, see `Qt Style Sheets Reference`_.
-A `QLabel` can be styled differently by setting some of its CSS
-properties, such as `background-color` and `font-family`,
+A ``QLabel`` can be styled differently by setting some of its CSS
+properties, such as ``background-color`` and ``font-family``,
so let's see how does the code look like with these changes:
.. code-block:: python
@@ -55,7 +55,7 @@ so let's see how does the code look like with these changes:
w.show()
sys.exit(app.exec())
-Now when you run the code, notice that the `QLabel` looks different with your
+Now when you run the code, notice that the ``QLabel`` looks different with your
custom style:
.. image:: widgetstyling-simple-yes.png
@@ -64,15 +64,15 @@ custom style:
.. note::
- If you don't have the font `Titillium` installed, you can try with any
+ If you don't have the font ``Titillium`` installed, you can try with any
other you prefer.
- Remember you can list your installed fonts using `QFontDatabase`,
- specifically the `families()` method.
+ Remember you can list your installed fonts using ``QFontDatabase``,
+ specifically the ``families()`` method.
Styling each UI element separately like you did in the previous snippet is a
lot of work. The easier alternative for this is to use Qt Style Sheets,
-which is one or more `.qss` files defining the style for the UI elements in
+which is one or more ``.qss`` files defining the style for the UI elements in
your application.
More examples can be found in the `Qt Style Sheet Examples`_ documentation
@@ -94,7 +94,7 @@ Qt Style Sheets
It's recommended to create a full new Qt style to cover all the possible
corner cases.
-A `qss` file is quite similar to a CSS file, but you need to specify the Widget
+A ``qss`` file is quite similar to a CSS file, but you need to specify the Widget
component and optionally the name of the object::
QLabel {
@@ -105,8 +105,8 @@ component and optionally the name of the object::
font-size: 20px;
}
-The first style defines a `background-color` for all `QLabel` objects in your
-application, whereas the later one styles the `title` object only.
+The first style defines a ``background-color`` for all ``QLabel`` objects in your
+application, whereas the later one styles the ``title`` object only.
.. note::
@@ -115,8 +115,8 @@ application, whereas the later one styles the `title` object only.
`label.setObjectName("title")`
-Once you have a `qss` file for your application, you can apply it by reading
-the file and using the `QApplication.setStyleSheet(str)` function:
+Once you have a ``qss`` file for your application, you can apply it by reading
+the file and using the ``QApplication.setStyleSheet(str)`` function:
.. code-block:: python
@@ -132,7 +132,7 @@ the file and using the `QApplication.setStyleSheet(str)` function:
sys.exit(app.exec())
-Having a general `qss` file allows you to decouple the styling aspects of
+Having a general ``qss`` file allows you to decouple the styling aspects of
the code, without mixing it in the middle of the general functionality, and you
can simply enable it or disable it.
@@ -140,16 +140,16 @@ Look at this new example, with more widgets components:
.. literalinclude:: widgetstyling.py
:linenos:
- :lines: 59-81
+ :lines: 22-44
-This displays a two column widget, with a `QListWidget` on the left and a
-`QLabel` and a `QPushButton` on the right. It looks like this when you run the
+This displays a two column widget, with a ``QListWidget`` on the left and a
+``QLabel`` and a ``QPushButton`` on the right. It looks like this when you run the
code:
.. image:: widgetstyling-no.png
:alt: Widget with no style
-If you add content to the previously described `style.qss` file, you can modify
+If you add content to the previously described ``style.qss`` file, you can modify
the look-n-feel of the previous example:
.. literalinclude:: style.qss
@@ -161,7 +161,7 @@ You can also use state-based styling on the QListWidget *items* for example, to
style them differently depending on whether they are *selected* or not.
After applying all the styling alternatives you explored in this topic, notice
-that the `QLabel` example looks a lot different now.
+that the ``QLabel`` example looks a lot different now.
Try running the code to check its new look:
.. image:: widgetstyling-yes.png
diff --git a/sources/pyside6/doc/tutorials/datavisualize/add_chart.rst b/sources/pyside6/doc/tutorials/datavisualize/add_chart.rst
index 95b2092b3..59a9d9ee0 100644
--- a/sources/pyside6/doc/tutorials/datavisualize/add_chart.rst
+++ b/sources/pyside6/doc/tutorials/datavisualize/add_chart.rst
@@ -14,7 +14,7 @@ previous chapter to add a QChartView:
.. literalinclude:: datavisualize5/main_widget.py
:linenos:
- :lines: 40-
- :emphasize-lines: 2-3,6,22-36,48-50
+ :lines: 3-
+ :emphasize-lines: 2-3,6,22-36,47-49
diff --git a/sources/pyside6/doc/tutorials/datavisualize/add_mainwindow.rst b/sources/pyside6/doc/tutorials/datavisualize/add_mainwindow.rst
index a9ff38a30..623372a07 100644
--- a/sources/pyside6/doc/tutorials/datavisualize/add_mainwindow.rst
+++ b/sources/pyside6/doc/tutorials/datavisualize/add_mainwindow.rst
@@ -27,6 +27,6 @@ window size is defined based on available screen width (80%) and height (70%).
.. literalinclude:: datavisualize3/main_window.py
:language: python
:linenos:
- :lines: 40-
+ :lines: 4-
Try running the script to see what output you get with it.
diff --git a/sources/pyside6/doc/tutorials/datavisualize/add_tableview.rst b/sources/pyside6/doc/tutorials/datavisualize/add_tableview.rst
index 720918008..f658640bf 100644
--- a/sources/pyside6/doc/tutorials/datavisualize/add_tableview.rst
+++ b/sources/pyside6/doc/tutorials/datavisualize/add_tableview.rst
@@ -19,7 +19,7 @@ you can use a QAbstractTableModel instance.
However, it's less flexible than a QTableView, as QTableWidget cannot be
used with just any data. For more insight about Qt's model-view framework,
refer to the
- `Model View Programming <http://doc.qt.io/qt-5/model-view-programming.html>`
+ `Model View Programming <https://doc.qt.io/qt-5/model-view-programming.html>`
documentation.
Implementing the model for your QTableView, allows you to:
@@ -39,7 +39,7 @@ Here is a script that implements the CustomTableModel:
.. literalinclude:: datavisualize4/table_model.py
:language: python
:linenos:
- :lines: 40-
+ :lines: 3-
Now, create a QWidget that has a QTableView, and connect it to your
CustomTableModel.
@@ -48,7 +48,7 @@ CustomTableModel.
:language: python
:linenos:
:emphasize-lines: 12-17
- :lines: 40-
+ :lines: 3-
You also need minor changes to the :code:`main_window.py` and
:code:`main.py` from chapter 3 to include the Widget inside the
@@ -59,12 +59,12 @@ In the following snippets you'll see those changes highlighted:
.. literalinclude:: datavisualize4/main_window.py
:language: python
:linenos:
- :lines: 40-
+ :lines: 3-
:emphasize-lines: 8,11
.. literalinclude:: datavisualize4/main.py
:language: python
:linenos:
- :lines: 40-
+ :lines: 3-
:emphasize-lines: 46-47
diff --git a/sources/pyside6/doc/tutorials/datavisualize/datavisualize.tar.bz2 b/sources/pyside6/doc/tutorials/datavisualize/datavisualize.tar.bz2
deleted file mode 100644
index 5fe12769a..000000000
--- a/sources/pyside6/doc/tutorials/datavisualize/datavisualize.tar.bz2
+++ /dev/null
Binary files differ
diff --git a/sources/pyside6/doc/tutorials/datavisualize/datavisualize1/main.py b/sources/pyside6/doc/tutorials/datavisualize/datavisualize1/main.py
index 8a8a1dfda..995b9906a 100644
--- a/sources/pyside6/doc/tutorials/datavisualize/datavisualize1/main.py
+++ b/sources/pyside6/doc/tutorials/datavisualize/datavisualize1/main.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import argparse
import pandas as pd
diff --git a/sources/pyside6/doc/tutorials/datavisualize/datavisualize2/main.py b/sources/pyside6/doc/tutorials/datavisualize/datavisualize2/main.py
index 864cb1a6c..9ea96097c 100644
--- a/sources/pyside6/doc/tutorials/datavisualize/datavisualize2/main.py
+++ b/sources/pyside6/doc/tutorials/datavisualize/datavisualize2/main.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import argparse
import pandas as pd
diff --git a/sources/pyside6/doc/tutorials/datavisualize/datavisualize3/main.py b/sources/pyside6/doc/tutorials/datavisualize/datavisualize3/main.py
index 32aaea1d6..bbf85e17d 100644
--- a/sources/pyside6/doc/tutorials/datavisualize/datavisualize3/main.py
+++ b/sources/pyside6/doc/tutorials/datavisualize/datavisualize3/main.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
import argparse
diff --git a/sources/pyside6/doc/tutorials/datavisualize/datavisualize3/main_window.py b/sources/pyside6/doc/tutorials/datavisualize/datavisualize3/main_window.py
index 17fe0e141..745f2fefe 100644
--- a/sources/pyside6/doc/tutorials/datavisualize/datavisualize3/main_window.py
+++ b/sources/pyside6/doc/tutorials/datavisualize/datavisualize3/main_window.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from PySide6.QtCore import Slot
from PySide6.QtGui import QAction, QKeySequence
@@ -64,6 +27,5 @@ class MainWindow(QMainWindow):
self.status.showMessage("Data loaded and plotted")
# Window dimensions
- geometry = qApp.desktop().availableGeometry(self)
+ geometry = self.screen().availableGeometry()
self.setFixedSize(geometry.width() * 0.8, geometry.height() * 0.7)
-
diff --git a/sources/pyside6/doc/tutorials/datavisualize/datavisualize4/main.py b/sources/pyside6/doc/tutorials/datavisualize/datavisualize4/main.py
index b4d787993..87b962bd3 100644
--- a/sources/pyside6/doc/tutorials/datavisualize/datavisualize4/main.py
+++ b/sources/pyside6/doc/tutorials/datavisualize/datavisualize4/main.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
import argparse
diff --git a/sources/pyside6/doc/tutorials/datavisualize/datavisualize4/main_widget.py b/sources/pyside6/doc/tutorials/datavisualize/datavisualize4/main_widget.py
index 5113ae0b8..2a2bfeb09 100644
--- a/sources/pyside6/doc/tutorials/datavisualize/datavisualize4/main_widget.py
+++ b/sources/pyside6/doc/tutorials/datavisualize/datavisualize4/main_widget.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from PySide6.QtWidgets import (QHBoxLayout, QHeaderView, QSizePolicy,
QTableView, QWidget)
diff --git a/sources/pyside6/doc/tutorials/datavisualize/datavisualize4/main_window.py b/sources/pyside6/doc/tutorials/datavisualize/datavisualize4/main_window.py
index a60a4a1b1..ebe2997a1 100644
--- a/sources/pyside6/doc/tutorials/datavisualize/datavisualize4/main_window.py
+++ b/sources/pyside6/doc/tutorials/datavisualize/datavisualize4/main_window.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from PySide6.QtCore import Slot
from PySide6.QtGui import QAction, QKeySequence
@@ -64,6 +27,6 @@ class MainWindow(QMainWindow):
self.status.showMessage("Data loaded and plotted")
# Window dimensions
- geometry = qApp.desktop().availableGeometry(self)
+ geometry = self.screen().availableGeometry()
self.setFixedSize(geometry.width() * 0.8, geometry.height() * 0.7)
diff --git a/sources/pyside6/doc/tutorials/datavisualize/datavisualize4/table_model.py b/sources/pyside6/doc/tutorials/datavisualize/datavisualize4/table_model.py
index 3ccf8162b..08eeeeed6 100644
--- a/sources/pyside6/doc/tutorials/datavisualize/datavisualize4/table_model.py
+++ b/sources/pyside6/doc/tutorials/datavisualize/datavisualize4/table_model.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from PySide6.QtCore import Qt, QAbstractTableModel, QModelIndex
from PySide6.QtGui import QColor
@@ -75,7 +38,7 @@ class CustomTableModel(QAbstractTableModel):
if role == Qt.DisplayRole:
if column == 0:
date = self.input_dates[row].toPython()
- return date[:-3]
+ return str(date)[:-3]
elif column == 1:
magnitude = self.input_magnitudes[row]
return f"{magnitude:.2f}"
diff --git a/sources/pyside6/doc/tutorials/datavisualize/datavisualize5/main.py b/sources/pyside6/doc/tutorials/datavisualize/datavisualize5/main.py
index b4d787993..87b962bd3 100644
--- a/sources/pyside6/doc/tutorials/datavisualize/datavisualize5/main.py
+++ b/sources/pyside6/doc/tutorials/datavisualize/datavisualize5/main.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
import argparse
diff --git a/sources/pyside6/doc/tutorials/datavisualize/datavisualize5/main_widget.py b/sources/pyside6/doc/tutorials/datavisualize/datavisualize5/main_widget.py
index 0f9b14df3..15b7e97e5 100644
--- a/sources/pyside6/doc/tutorials/datavisualize/datavisualize5/main_widget.py
+++ b/sources/pyside6/doc/tutorials/datavisualize/datavisualize5/main_widget.py
@@ -1,48 +1,11 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from PySide6.QtCore import QDateTime, Qt
from PySide6.QtGui import QPainter
from PySide6.QtWidgets import (QWidget, QHeaderView, QHBoxLayout, QTableView,
QSizePolicy)
-from PySide6.QtCharts import QtCharts
+from PySide6.QtCharts import QChart, QChartView, QLineSeries, QDateTimeAxis, QValueAxis
from table_model import CustomTableModel
@@ -66,11 +29,11 @@ class Widget(QWidget):
self.horizontal_header.setStretchLastSection(True)
# Creating QChart
- self.chart = QtCharts.QChart()
- self.chart.setAnimationOptions(QtCharts.QChart.AllAnimations)
+ self.chart = QChart()
+ self.chart.setAnimationOptions(QChart.AllAnimations)
# Creating QChartView
- self.chart_view = QtCharts.QChartView(self.chart)
+ self.chart_view = QChartView(self.chart)
self.chart_view.setRenderHint(QPainter.Antialiasing)
# QWidget Layout
diff --git a/sources/pyside6/doc/tutorials/datavisualize/datavisualize5/main_window.py b/sources/pyside6/doc/tutorials/datavisualize/datavisualize5/main_window.py
index 4b0920133..ed12c1f8f 100644
--- a/sources/pyside6/doc/tutorials/datavisualize/datavisualize5/main_window.py
+++ b/sources/pyside6/doc/tutorials/datavisualize/datavisualize5/main_window.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from PySide6.QtCore import Slot
from PySide6.QtGui import QAction, QKeySequence
@@ -64,6 +27,6 @@ class MainWindow(QMainWindow):
self.status.showMessage("Data loaded and plotted")
# Window dimensions
- geometry = qApp.desktop().availableGeometry(self)
+ geometry = self.screen().availableGeometry()
self.setFixedSize(geometry.width() * 0.8, geometry.height() * 0.7)
diff --git a/sources/pyside6/doc/tutorials/datavisualize/datavisualize5/table_model.py b/sources/pyside6/doc/tutorials/datavisualize/datavisualize5/table_model.py
index 3ccf8162b..08eeeeed6 100644
--- a/sources/pyside6/doc/tutorials/datavisualize/datavisualize5/table_model.py
+++ b/sources/pyside6/doc/tutorials/datavisualize/datavisualize5/table_model.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from PySide6.QtCore import Qt, QAbstractTableModel, QModelIndex
from PySide6.QtGui import QColor
@@ -75,7 +38,7 @@ class CustomTableModel(QAbstractTableModel):
if role == Qt.DisplayRole:
if column == 0:
date = self.input_dates[row].toPython()
- return date[:-3]
+ return str(date)[:-3]
elif column == 1:
magnitude = self.input_magnitudes[row]
return f"{magnitude:.2f}"
diff --git a/sources/pyside6/doc/tutorials/datavisualize/datavisualize6/main.py b/sources/pyside6/doc/tutorials/datavisualize/datavisualize6/main.py
index e4466f7ca..2d851cc14 100644
--- a/sources/pyside6/doc/tutorials/datavisualize/datavisualize6/main.py
+++ b/sources/pyside6/doc/tutorials/datavisualize/datavisualize6/main.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
import argparse
diff --git a/sources/pyside6/doc/tutorials/datavisualize/datavisualize6/main_widget.py b/sources/pyside6/doc/tutorials/datavisualize/datavisualize6/main_widget.py
index d8132265d..cbcc126a1 100644
--- a/sources/pyside6/doc/tutorials/datavisualize/datavisualize6/main_widget.py
+++ b/sources/pyside6/doc/tutorials/datavisualize/datavisualize6/main_widget.py
@@ -1,48 +1,11 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from PySide6.QtCore import QDateTime, Qt
from PySide6.QtGui import QPainter
from PySide6.QtWidgets import (QWidget, QHeaderView, QHBoxLayout, QTableView,
QSizePolicy)
-from PySide6.QtCharts import QtCharts
+from PySide6.QtCharts import QChart, QChartView, QLineSeries, QDateTimeAxis, QValueAxis
from table_model import CustomTableModel
@@ -67,12 +30,12 @@ class Widget(QWidget):
self.horizontal_header.setStretchLastSection(True)
# Creating QChart
- self.chart = QtCharts.QChart()
- self.chart.setAnimationOptions(QtCharts.QChart.AllAnimations)
+ self.chart = QChart()
+ self.chart.setAnimationOptions(QChart.AllAnimations)
self.add_series("Magnitude (Column 1)", [0, 1])
# Creating QChartView
- self.chart_view = QtCharts.QChartView(self.chart)
+ self.chart_view = QChartView(self.chart)
self.chart_view.setRenderHint(QPainter.Antialiasing)
# QWidget Layout
@@ -94,7 +57,7 @@ class Widget(QWidget):
def add_series(self, name, columns):
# Create QLineSeries
- self.series = QtCharts.QLineSeries()
+ self.series = QLineSeries()
self.series.setName(name)
# Filling QLineSeries
@@ -112,14 +75,14 @@ class Widget(QWidget):
self.chart.addSeries(self.series)
# Setting X-axis
- self.axis_x = QtCharts.QDateTimeAxis()
+ self.axis_x = QDateTimeAxis()
self.axis_x.setTickCount(10)
self.axis_x.setFormat("dd.MM (h:mm)")
self.axis_x.setTitleText("Date")
self.chart.addAxis(self.axis_x, Qt.AlignBottom)
self.series.attachAxis(self.axis_x)
# Setting Y-axis
- self.axis_y = QtCharts.QValueAxis()
+ self.axis_y = QValueAxis()
self.axis_y.setTickCount(10)
self.axis_y.setLabelFormat("%.2f")
self.axis_y.setTitleText("Magnitude")
diff --git a/sources/pyside6/doc/tutorials/datavisualize/datavisualize6/main_window.py b/sources/pyside6/doc/tutorials/datavisualize/datavisualize6/main_window.py
index 450f6de41..116e53dc3 100644
--- a/sources/pyside6/doc/tutorials/datavisualize/datavisualize6/main_window.py
+++ b/sources/pyside6/doc/tutorials/datavisualize/datavisualize6/main_window.py
@@ -1,45 +1,8 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from PySide6.QtCore import Slot
-from PySide6.QtGui import QAction, QKeySequence
+from PySide6.QtGui import QAction, QKeySequence, QScreen
from PySide6.QtWidgets import QMainWindow
@@ -64,7 +27,6 @@ class MainWindow(QMainWindow):
self.status.showMessage("Data loaded and plotted")
# Window dimensions
- geometry = qApp.desktop().availableGeometry(self)
+ geometry = self.screen().availableGeometry()
self.setFixedSize(geometry.width() * 0.8, geometry.height() * 0.7)
self.setCentralWidget(widget)
-
diff --git a/sources/pyside6/doc/tutorials/datavisualize/datavisualize6/table_model.py b/sources/pyside6/doc/tutorials/datavisualize/datavisualize6/table_model.py
index f46d5d402..4952c0c38 100644
--- a/sources/pyside6/doc/tutorials/datavisualize/datavisualize6/table_model.py
+++ b/sources/pyside6/doc/tutorials/datavisualize/datavisualize6/table_model.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from PySide6.QtCore import Qt, QAbstractTableModel, QModelIndex
from PySide6.QtGui import QColor
@@ -76,7 +39,7 @@ class CustomTableModel(QAbstractTableModel):
if role == Qt.DisplayRole:
if column == 0:
date = self.input_dates[row].toPython()
- return date[:-3]
+ return str(date)[:-3]
elif column == 1:
magnitude = self.input_magnitudes[row]
return f"{magnitude:.2f}"
diff --git a/sources/pyside6/doc/tutorials/datavisualize/filter_data.rst b/sources/pyside6/doc/tutorials/datavisualize/filter_data.rst
index b06b2fa15..edfac3862 100644
--- a/sources/pyside6/doc/tutorials/datavisualize/filter_data.rst
+++ b/sources/pyside6/doc/tutorials/datavisualize/filter_data.rst
@@ -23,7 +23,7 @@ The following script filters and formats the CSV data as described earlier:
.. literalinclude:: datavisualize2/main.py
:language: python
:linenos:
- :lines: 40-
+ :lines: 3-
Now that you have a tuple of QDateTime and float data, try improving the
output further. That's what you'll learn in the following chapters.
diff --git a/sources/pyside6/doc/tutorials/datavisualize/images/datavisualization_app.png b/sources/pyside6/doc/tutorials/datavisualize/images/datavisualization_app.png
index ddac43fc3..8d7e4ba13 100644
--- a/sources/pyside6/doc/tutorials/datavisualize/images/datavisualization_app.png
+++ b/sources/pyside6/doc/tutorials/datavisualize/images/datavisualization_app.png
Binary files differ
diff --git a/sources/pyside6/doc/tutorials/datavisualize/index.rst b/sources/pyside6/doc/tutorials/datavisualize/index.rst
index ff18c654e..35b56706a 100644
--- a/sources/pyside6/doc/tutorials/datavisualize/index.rst
+++ b/sources/pyside6/doc/tutorials/datavisualize/index.rst
@@ -8,6 +8,10 @@ US Geological Survey website. You could download the
`All earthquakes <https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_day.csv>`_
open data in a CSV format for this tutorial.
+.. image:: images/datavisualization_app.png
+ :width: 800
+ :alt: Data Visualization Screenshot
+
In the following chapters of this tutorial you'll learn how to
visualize data from a CSV in a line chart.
@@ -22,5 +26,6 @@ visualize data from a CSV in a line chart.
add_chart*
plot*
-You can download the sources from :download:`here <datavisualize.tar.bz2>`.
+You can download the sources from `here`_.
+.. _here: https://code.qt.io/cgit/pyside/pyside-setup.git/tree/sources/pyside6/doc/tutorials/datavisualize
diff --git a/sources/pyside6/doc/tutorials/datavisualize/plot_datapoints.rst b/sources/pyside6/doc/tutorials/datavisualize/plot_datapoints.rst
index 8ebdd2b08..f71fca4c8 100644
--- a/sources/pyside6/doc/tutorials/datavisualize/plot_datapoints.rst
+++ b/sources/pyside6/doc/tutorials/datavisualize/plot_datapoints.rst
@@ -13,13 +13,15 @@ function to plot data using a QLineSeries:
.. literalinclude:: datavisualize6/main_widget.py
:language: python
:linenos:
- :lines: 40-
+ :lines: 3-
:emphasize-lines: 33,56-91
Now, run the application to visualize the earthquake magnitudes
data at different times.
.. image:: images/datavisualization_app.png
+ :width: 600
+ :alt: Data Visualization Screenshot
Try modifying the sources to get different output. For example, you could try
to plot more data from the CSV.
diff --git a/sources/pyside6/doc/tutorials/datavisualize/read_data.rst b/sources/pyside6/doc/tutorials/datavisualize/read_data.rst
index f7bf9337a..53b0d1cb0 100644
--- a/sources/pyside6/doc/tutorials/datavisualize/read_data.rst
+++ b/sources/pyside6/doc/tutorials/datavisualize/read_data.rst
@@ -18,7 +18,7 @@ The following python script, :code:`main.py`, demonstrates how to do it:
.. literalinclude:: datavisualize1/main.py
:language: python
:linenos:
- :lines: 40-
+ :lines: 3-
The Python script uses the :code:`argparse` module to accept and parse input
from the command line. It then uses the input, which in this case is the filename,
diff --git a/sources/pyside6/doc/tutorials/debugging/mixed_debugging.rst b/sources/pyside6/doc/tutorials/debugging/mixed_debugging.rst
new file mode 100644
index 000000000..85c326347
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/debugging/mixed_debugging.rst
@@ -0,0 +1,126 @@
+How To Debug a C++ Extension of a PySide6 Application?
+******************************************************
+
+When debugging PySide code, very often you would also like to debug the
+corresponding C++ extension of the PySide module. This is done by attaching your
+debugger to the Python interpreter. In this tutorial, we are going to take you
+through a comprehensive guide in building Qt 6, using the built Qt 6 to build
+PySide6, and then starting a debugging process in either *Qt Creator* or VSCode.
+
+With VSCode, you should be able to see the combined call stacks for both C++ and
+Python together. With *Qt Creator*, unfortunately you would only be able to
+debug the native C++ code of the PySide module; that is you won't be able to set
+breakpoints inside the Python code.
+
+.. note:: This tutorial is created on Ubuntu 20.04 LTS with the debugger as GDB.
+ As such, this tutorial is mainly focused on Linux users. Nevertheless, links to
+ setup everything in other platforms are mentioned along with each
+ sub-section.
+
+Let's get started.
+
+Install All The Library Dependencies Based on Your Platform
+-----------------------------------------------------------
+
+.. code-block:: bash
+
+ sudo apt install libfontconfig1-dev libfreetype6-dev \
+ libx11-dev libx11-xcb-dev libxext-dev libxfixes-dev \
+ libxi-dev libxrender-dev libxcb1-dev libxcb-glx0-dev \
+ libxcb-keysyms1-dev libxcb-image0-dev libxcb-shm0-dev \
+ libxcb-icccm4-dev libxcb-sync-dev libxcb-xfixes0-dev \
+ libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0-dev \
+ libxcb-util-dev libxcb-xinerama0-dev libxcb-xkb-dev \
+ libxkbcommon-dev libxkbcommon-x11-dev libatspi2.0-dev \
+ libopengl0 -y
+
+If you have to use the Qt Multimedia module, you have to install gstreamer also.
+
+.. code-block:: bash
+
+ sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
+ libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base \
+ gstreamer1.0-plugins-good gstreamer1.0-plugins-bad \
+ gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc \
+ gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl \
+ gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio
+
+Generally, any information on missing packages can be found by inspecting the
+config.summary in you CMake build folder.
+
+.. note:: For other platforms install the same packages using the instructions
+ mentioned here `Qt Install on Linux <https://doc.qt.io/qt-6/linux-requirements.html>`_
+
+Build Qt
+--------
+
+This is an optional step in case you only want to debug the CPython bindings or if you have DEBUG_SYMBOLS for Qt 6 already.
+
+There are multiple ways to build Qt - configure script or manually with CMake.
+Find the build system information `Qt 6 Build System
+<https://www.qt.io/blog/qt-6-build-system>`_.
+
+1. Get the source code.
+
+ .. code-block:: bash
+
+ git clone git://code.qt.io/qt/qt5.git
+ # Get submodules
+ cd qt5
+ perl init-repository
+
+2. Once you have the source code, the next step is to generate the build using
+ CMake, then building and installing it.
+
+ .. code-block:: bash
+
+ cmake -GNinja -DCMAKE_BUILD_TYPE=Debug \
+ -DCMAKE_INSTALL_PREFIX=/path/to/install/Qt -DBUILD_qtwebengine=OFF ..
+ cmake --build . --parallel
+ cmake --install .
+
+ As you notice here, we are skipping the Qt WebEngine module because this greatly
+ decreases the build time. However, PySide6 supports Qt WebEngine
+ features. So feel free to add it, if you need it.
+
+More instructions on building Qt 6 can be found in the following links:
+
+* https://wiki.qt.io/Building_Qt_6_from_Git
+* https://code.qt.io/cgit/qt/qtbase.git/tree/cmake/README.md
+* https://code.qt.io/cgit/qt/qtbase.git/tree/cmake/configure-cmake-mapping.md
+
+Add the **bin** and **lib** path to the environment variables
+--------------------------------------------------------------
+
+.. code-block:: bash
+
+ export PATH="/path/to/custom/qt/bin:$PATH"
+ export LD_LIBRARY_PATH="/path/to/custom/qt/lib:$LD_LIBRARY_PATH"
+
+Build PySide6 using the Qt 6 that you built earlier
+----------------------------------------------------
+
+Follow the steps mentioned `Getting Started - Qt for Python
+<https://doc.qt.io/qtforpython/gettingstarted/index.html>`_
+
+You may manually select the modules to install using the ``--module-subset`` cli
+argument for `setup.py`. This was my installation script
+
+.. code-block:: bash
+
+ python setup.py install --qpaths=/path/to/qpaths --debug \
+ --ignore-git --reuse-build
+
+It is recommended to use a Python virtual environment rather than installing in the global Python.
+
+Debugging the process using your preferred IDE
+----------------------------------------------
+
+The following sections guide you through the setup for *Qt Creator* or VSCode.
+
+.. toctree::
+ :glob:
+ :titlesonly:
+
+ qtcreator/qtcreator
+ vscode/vscode
diff --git a/sources/pyside6/doc/tutorials/debugging/qml_debugging.rst b/sources/pyside6/doc/tutorials/debugging/qml_debugging.rst
new file mode 100644
index 000000000..223e608fc
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/debugging/qml_debugging.rst
@@ -0,0 +1,32 @@
+Using Qt Creator's QML Debugger for a PySide6 QML Application
+*************************************************************
+
+Besides the C++ debugger, *Qt Creator* provides a `QML debugger`_ which lets you
+inspect JavaScript code. It works by connecting to a socket server run by the
+``QmlEngine`` instance. The port is passed on the command line. To enable it,
+add the below code to your QML application:
+
+.. code-block:: python
+
+ from argparse import ArgumentParser, RawTextHelpFormatter
+
+ ...
+
+ if __name__ == "__main__":
+ argument_parser = ArgumentParser(...)
+ argument_parser.add_argument("-qmljsdebugger", action="store",
+ help="Enable QML debugging")
+ options = argument_parser.parse_args()
+ if options.qmljsdebugger:
+ QQmlDebuggingEnabler.enableDebugging(True)
+ app = QApplication(sys.argv)
+
+
+For instructions on how to use the QML debugger, see
+`Debugging a Qt Quick Example Application`_.
+
+.. note:: The code should be removed or disabled when shipping the application
+ as it poses a security risk.
+
+.. _`QML debugger`: https://doc.qt.io/qtcreator/creator-debugging-qml.html
+.. _`Debugging a Qt Quick Example Application`: https://doc.qt.io/qtcreator/creator-qml-debugging-example.html
diff --git a/sources/pyside6/doc/tutorials/debugging/qtcreator/breakpoint_cpp.png b/sources/pyside6/doc/tutorials/debugging/qtcreator/breakpoint_cpp.png
new file mode 100644
index 000000000..c8197118e
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/debugging/qtcreator/breakpoint_cpp.png
Binary files differ
diff --git a/sources/pyside6/doc/tutorials/debugging/qtcreator/custom_executable_create.png b/sources/pyside6/doc/tutorials/debugging/qtcreator/custom_executable_create.png
new file mode 100644
index 000000000..8362c3310
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/debugging/qtcreator/custom_executable_create.png
Binary files differ
diff --git a/sources/pyside6/doc/tutorials/debugging/qtcreator/custom_executable_run_config.png b/sources/pyside6/doc/tutorials/debugging/qtcreator/custom_executable_run_config.png
new file mode 100644
index 000000000..4f0bbe3d4
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/debugging/qtcreator/custom_executable_run_config.png
Binary files differ
diff --git a/sources/pyside6/doc/tutorials/debugging/qtcreator/qtcreator.rst b/sources/pyside6/doc/tutorials/debugging/qtcreator/qtcreator.rst
new file mode 100644
index 000000000..a78a67fad
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/debugging/qtcreator/qtcreator.rst
@@ -0,0 +1,39 @@
+Debugging PySide with Qt Creator (Linux)
+****************************************
+
+As opposed to VSCode, presently *Qt Creator* does not support mixed mode debugging.
+However, we can debug the C++ implementation of the corresponding Python PySide
+code. Unlike VSCode, *Qt Creator* provides a very easy interface to attach GDB to
+the Python interpreter. It saves you from doing all the extra configuration
+steps, that have to be done with VSCode.
+
+Here are the steps:
+
+1. Set a breakpoint on the C++ code.
+
+2. Go to Projects -> Run -> Run Configuration -> Add. This is going to open a
+ new window shown below.
+
+ .. image:: custom_executable_create.png
+ :alt: creation of custom executable
+ :align: center
+
+3. Click on Custom Executable and `Create` a new configuration. Feed in the
+ details like shown below.
+
+ .. image:: custom_executable_run_config.png
+ :alt: run configuration of custom executable
+ :align: center
+
+4. Debug -> Start Debugging -> Start Debugging Without Deployment.
+
+ .. image:: start_debugging_without_deployment.png
+ :alt: start debugging without deployment
+ :align: center
+
+You will now hit you breakpoint and can start debugging your code.
+
+.. image:: breakpoint_cpp.png
+ :alt: breakpoint cpp
+ :align: center
+
diff --git a/sources/pyside6/doc/tutorials/debugging/qtcreator/start_debugging_without_deployment.png b/sources/pyside6/doc/tutorials/debugging/qtcreator/start_debugging_without_deployment.png
new file mode 100644
index 000000000..9ce0688d3
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/debugging/qtcreator/start_debugging_without_deployment.png
Binary files differ
diff --git a/sources/pyside6/doc/tutorials/debugging/vscode/audioformat_cpp.png b/sources/pyside6/doc/tutorials/debugging/vscode/audioformat_cpp.png
new file mode 100644
index 000000000..57577eea4
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/debugging/vscode/audioformat_cpp.png
Binary files differ
diff --git a/sources/pyside6/doc/tutorials/debugging/vscode/audioformat_wrapper.png b/sources/pyside6/doc/tutorials/debugging/vscode/audioformat_wrapper.png
new file mode 100644
index 000000000..319577fea
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/debugging/vscode/audioformat_wrapper.png
Binary files differ
diff --git a/sources/pyside6/doc/tutorials/debugging/vscode/breakpoint_gdb.png b/sources/pyside6/doc/tutorials/debugging/vscode/breakpoint_gdb.png
new file mode 100644
index 000000000..b9bc4acde
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/debugging/vscode/breakpoint_gdb.png
Binary files differ
diff --git a/sources/pyside6/doc/tutorials/debugging/vscode/find_process_gdb.png b/sources/pyside6/doc/tutorials/debugging/vscode/find_process_gdb.png
new file mode 100644
index 000000000..65176d9bb
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/debugging/vscode/find_process_gdb.png
Binary files differ
diff --git a/sources/pyside6/doc/tutorials/debugging/vscode/python_set_interpreter.png b/sources/pyside6/doc/tutorials/debugging/vscode/python_set_interpreter.png
new file mode 100644
index 000000000..1a26c9d9c
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/debugging/vscode/python_set_interpreter.png
Binary files differ
diff --git a/sources/pyside6/doc/tutorials/debugging/vscode/vscode.rst b/sources/pyside6/doc/tutorials/debugging/vscode/vscode.rst
new file mode 100644
index 000000000..b2a527b0e
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/debugging/vscode/vscode.rst
@@ -0,0 +1,192 @@
+Debugging PySide with VSCode (Linux + Windows)
+**********************************************
+
+VSCode enables you to use more than one debugger in a single debugging session.
+This means that we can use Python PDB and GDB (or the MSVC debugger for Windows)
+in a single session. With VSCode you would be able to do the following:
+
+* See the call stacks for both Python and C++ together.
+* Put breakpoints in both the Python and the C++ code.
+* Step from Python to C++ code and vice versa.
+
+For Windows, see :ref:`creating_windows_debug_builds`.
+
+Let's get started with setting up everything and debugging a Python process.
+
+Setting the Python interpreter
+------------------------------
+
+In order to debug Python code, it is necessary to set the correct Python
+interpreter in VSCode - this will ensure that all Python integrations of VSCode
+use the same interpreter. However, this does not affect C++ debugging, and the
+Python executable path must be set for the corresponding launch target
+separately (see the section below).
+
+To set the Python interpreter, open a Python file and click the corresponding
+option on the right side of the VSCode status bar, which should look similar to
+this:
+
+.. image:: python_set_interpreter.png
+ :alt: set Python interpreter
+ :align: center
+
+Alternatively, open the VSCode command palette (F1 or Ctrl + Shift + P) and
+search for "Python: Select Interpreter".
+
+Creating Configurations in launch.json
+--------------------------------------
+
+``Run -> Add Configuration -> Python -> Python File``
+
+This should create a launch.json file which looks like this:
+
+.. code-block:: javascript
+
+ {
+ // Use IntelliSense to learn about possible attributes.
+ // Hover to view descriptions of existing attributes.
+ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "name": "Python: Current File",
+ "type": "python",
+ "request": "launch",
+ "program": "${file}",
+ "console": "integratedTerminal"
+ }
+ ]
+ }
+
+It should already consist of a configuration named "Python: Current File",
+which allows us to debug the current open Python file.
+
+Now, we need to add a configuration to attach the C++ debugger to the Python
+process that is already running in debug mode. If you have the C/C++ extension
+installed and the appropriate debugger for your system, VSCode should be able
+to automatically offer to add a configuration. On Linux, this is suggested with
+the name
+
+* "C/C++: (gdb) Attach"
+
+and on Windows with the name
+
+* "C/C++: (Windows) Attach"
+
+Your launch.json should now look like this on Linux:
+
+.. code-block:: javascript
+
+ {
+ // Use IntelliSense to learn about possible attributes.
+ // Hover to view descriptions of existing attributes.
+ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "name": "Python: Current File",
+ "type": "python",
+ "request": "launch",
+ "program": "${file}",
+ "console": "integratedTerminal"
+ },
+ {
+ "name": "(gdb) Attach",
+ "type": "cppdbg",
+ "request": "attach",
+ "program": "/path/to/python",
+ "processId": "${command:pickProcess}",
+ "MIMode": "gdb", "setupCommands": [
+ {
+ "description": "Enable pretty-printing for gdb",
+ "text": "-enable-pretty-printing",
+ "ignoreFailures": true
+ }
+ ]
+ }
+ ]
+ }
+
+And like this on Windows:
+
+.. code-block:: javascript
+
+ {
+ // Use IntelliSense to learn about possible attributes.
+ // Hover to view descriptions of existing attributes.
+ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "name": "Python: Current File",
+ "type": "python",
+ "request": "launch",
+ "program": "${file}",
+ "console": "integratedTerminal"
+ },
+ {
+ "name": "(Windows) Attach",
+ "type": "cppvsdbg",
+ "request": "attach",
+ "processId": "${command:pickProcess}",
+ }
+ ]
+ }
+
+For Linux, also make sure that the value of "program" refers to your Python
+interpreter inside your virtual environment (for Windows this is not needed).
+We need the processId to attach the gdb debugger to the process. With
+"${command:pickProcess}", we find the processId on the go, as we will see later.
+
+Now, we are ready to debug.
+
+Debug The Process
+-----------------
+
+1. Set a breakpoint in the Python code.
+
+2. Go to ``Run And Debug`` (Ctrl + Shift + D) and run the "Python: Current File"
+ by clicking the run symbol (green right-arrow). This will hit the breakpoint
+ and will halt the Python debugger.
+
+3. Using the drop-down menu change from "Python:
+ Current File" to "(gdb) Attach" or "(Windows) Attach". Your setup should now
+ look like this.
+
+ .. image:: breakpoint_gdb.png
+ :alt: breakpoint before attach gdb
+ :align: center
+
+4. Run "(gdb) Attach" or "(Windows) Attach" and this should ask you for the
+ processId of the Python process to which you want to attach the C++ debugger.
+ VSCode also lets you search for the process by its name.
+
+ .. tip:: You can find the processId by running ``ps aux | grep python``
+
+ .. image:: find_process_gdb.png
+ :alt: find process vscode
+ :align: center
+
+5. VSCode might now ask you for superuser permissions. In that case, type 'y'
+ and enter your password.
+
+ .. code-block:: bash
+
+ Superuser access is required to attach to a process. Attaching as
+ superuser can potentially harm your computer. Do you want to continue?
+ [y/N]_
+
+6. That is it. You should now be able to hit the breakpoints that you have set
+ on the C++ counterparts.
+
+ .. figure:: audioformat_wrapper.png
+ :alt: Breakpoint set on the shiboken wrapper class
+ :align: left
+
+ Breakpoint set on the shiboken wrapper class
+
+ .. figure:: audioformat_cpp.png
+ :alt: Breakpoint set on C++ implementation
+ :align: left
+
+ Breakpoint set on C++ implementation
diff --git a/sources/pyside6/doc/tutorials/expenses/expenses.rst b/sources/pyside6/doc/tutorials/expenses/expenses.rst
index aa672d781..2064488ae 100644
--- a/sources/pyside6/doc/tutorials/expenses/expenses.rst
+++ b/sources/pyside6/doc/tutorials/expenses/expenses.rst
@@ -1,6 +1,5 @@
-######################
Expenses Tool Tutorial
-######################
+======================
In this tutorial you will learn the following concepts:
* creating user interfaces programatically,
@@ -21,9 +20,9 @@ The requirements:
(`QPushButton <https://doc.qt.io/qtforpython/PySide6/QtWidgets/QPushButton.html>`_).
* A verification step to avoid invalid data entry.
* A chart to visualize the expense data
- (`QChart <https://doc.qt.io/qtforpython/PySide6/QtCharts/QtCharts.QChart.html>`_) that will
+ (`QChart <https://doc.qt.io/qtforpython/PySide6/QtCharts/QChart.html>`_) that will
be embedded in a chart view
- (`QChartView <https://doc.qt.io/qtforpython/PySide6/QtCharts/QtCharts.QChartView.html>`_).
+ (`QChartView <https://doc.qt.io/qtforpython/PySide6/QtCharts/QChartView.html>`_).
Empty window
------------
@@ -34,68 +33,41 @@ code block.
.. code-block:: python
:linenos:
- if __name__ == "__main__":
- app = QApplication([])
- # ...
- sys.exit(app.exec())
+ if __name__ == "__main__":
+ app = QApplication([])
+ # ...
+ sys.exit(app.exec())
Now, to start the development, create an empty window called `MainWindow`.
You could do that by defining a class that inherits from `QMainWindow`.
.. literalinclude:: steps/01-expenses.py
:linenos:
- :lines: 45-59
+ :lines: 8-22
:emphasize-lines: 1-4
Now that our class is defined, create an instance of it and call `show()`.
.. literalinclude:: steps/01-expenses.py
:linenos:
- :lines: 45-59
+ :lines: 8-22
:emphasize-lines: 10-12
Menu bar
--------
-Using a `QMainWindow` gives some features for free, among them a *menu bar*. To use it, you need
+Using a `QMainWindow` gives some features for free, among them a *menu bar*. To use it, you need
to call the method `menuBar()` and populate it inside the `MainWindow` class.
.. literalinclude:: steps/02-expenses.py
:linenos:
- :lines: 46-58
- :emphasize-lines: 6
+ :lines: 9-19
+ :emphasize-lines: 10
Notice that the code snippet adds a *File* menu with the *Exit* option only.
-First signal/slot connection
-----------------------------
-
-The *Exit* option must be connected to a slot that triggers the application to exit. The main
-idea to achieve this, is the following:
-
-.. code-block:: python
-
- element.signal_name.connect(slot_name)
-
-All the interface's elements could be connected through signals to certain slots,
-in the case of a `QAction`, the signal `triggered` can be used:
-
-.. code-block:: python
-
- exit_action.triggered.connect(slot_name)
-
-.. note:: Now a *slot* needs to be defined to exit the application, which can be done using
- `QApplication.quit()`. If we put all these concepts together you will end up with the
- following code:
-
-.. literalinclude:: steps/03-expenses.py
- :linenos:
- :lines: 56-65
- :emphasize-lines: 4, 8-10
-
-Notice that the decorator `@Slot()` is required for each slot you declare to properly
-register them. Slots are normal functions, but the main difference is that they
-will be invokable from `Signals` of QObjects when connected.
+The *Exit* option must be connected to a slot that triggers the application to exit. We pass
+``QWidget.close()`` here. After the last window has been closed, the application exits.
Empty widget and data
---------------------
@@ -108,13 +80,13 @@ Additionally, you will define example data to visualize later.
.. literalinclude:: steps/04-expenses.py
:linenos:
- :lines: 46-53
+ :lines: 8-15
With the `Widget` class in place, modify `MainWindow`'s initialization code
.. literalinclude:: steps/04-expenses.py
:linenos:
- :lines: 80-84
+ :lines: 37-40
Window layout
-------------
@@ -122,7 +94,7 @@ Window layout
Now that the main empty window is in place, you need to start adding widgets to achieve the main
goal of creating an expenses application.
-After declaring the example data, you can visualize it on a simple `QTableWidget`. To do so, you
+After declaring the example data, you can visualize it on a simple `QTableWidget`. To do so, you
will add this procedure to the `Widget` constructor.
.. warning:: Only for the example purpose a QTableWidget will be used,
@@ -131,7 +103,7 @@ will add this procedure to the `Widget` constructor.
.. literalinclude:: steps/05-expenses.py
:linenos:
- :lines: 48-73
+ :lines: 11-31
As you can see, the code also includes a `QHBoxLayout` that provides the container to place widgets
horizontally.
@@ -144,7 +116,7 @@ displayed below.
.. literalinclude:: steps/05-expenses.py
:linenos:
- :lines: 75-81
+ :lines: 33-39
Having this process on a separate method is a good practice to leave the constructor more readable,
and to split the main functions of the class in independent processes.
@@ -157,12 +129,12 @@ Because the data that is being used is just an example, you are required to incl
input items to the table, and extra buttons to clear the table's content, and also quit the
application.
-To distribute these input lines and buttons, you will use a `QVBoxLayout` that allows you to place
-elements vertically inside a layout.
+For input lines along with descriptive labels, you will use a `QFormLayout`. Then,
+you will nest the form layout into a `QVBoxLayout` along with the buttons.
.. literalinclude:: steps/06-expenses.py
:linenos:
- :lines: 64-80
+ :lines: 27-43
Leaving the table on the left side and these newly included widgets to the right side
will be just a matter to add a layout to our main `QHBoxLayout` as you saw in the previous
@@ -170,7 +142,7 @@ example:
.. literalinclude:: steps/06-expenses.py
:linenos:
- :lines: 42-47
+ :lines: 45-48
The next step will be connecting those new buttons to slots.
@@ -184,17 +156,19 @@ documentation <https://doc.qt.io/qtforpython/PySide6/QtWidgets/QAbstractButton.h
.. literalinclude:: steps/07-expenses.py
:linenos:
- :lines: 92-95
+ :lines: 50-52
As you can see on the previous lines, we are connecting each *clicked* signal to different slots.
In this example slots are normal class methods in charge of perform a determined task associated
-with our buttons. It is really important to decorate each method declaration with a `@Slot()`, in
-that way PySide6 knows internally how to register them into Qt.
+with our buttons. It is really important to decorate each method declaration with a `@Slot()`,
+that way, PySide6 knows internally how to register them into Qt and they
+will be invokable from `Signals` of QObjects when connected.
+
.. literalinclude:: steps/07-expenses.py
:linenos:
- :lines: 100-129
- :emphasize-lines: 2,16,28
+ :lines: 57-82
+ :emphasize-lines: 1, 23
Since these slots are methods, we can access the class variables, like our `QTableWidget` to
interact with it.
@@ -217,24 +191,21 @@ Verification step
Adding information to the table needs to be a critical action that require a verification step
to avoid adding invalid information, for example, empty information.
-You can use a signal from `QLineEdit` called *textChanged[str]* which will be emitted every
+You can use a signal from `QLineEdit` called *textChanged* which will be emitted every
time something inside changes, i.e.: each key stroke.
-Notice that this time, there is a *[str]* section on the signal, this means that the signal
-will also emit the value of the text that was changed, which will be really useful to verify
-the current content of the `QLineEdit`.
You can connect two different object's signal to the same slot, and this will be the case
for your current application:
.. literalinclude:: steps/08-expenses.py
:linenos:
- :lines: 99-100
+ :lines: 57-58
The content of the *check_disable* slot will be really simple:
.. literalinclude:: steps/08-expenses.py
:linenos:
- :lines: 119-124
+ :lines: 77-80
You have two options, write a verification based on the current value
of the string you retrieve, or manually get the whole content of both
@@ -256,15 +227,15 @@ side of your application.
.. literalinclude:: steps/09-expenses.py
:linenos:
- :lines: 66-68
+ :lines: 30-32
Additionally the order of how you include widgets to the right
`QVBoxLayout` will also change.
.. literalinclude:: steps/09-expenses.py
:linenos:
- :lines: 81-91
- :emphasize-lines: 9
+ :lines: 46-54
+ :emphasize-lines: 8
Notice that before we had a line with `self.right.addStretch()`
to fill up the vertical space between the *Add* and the *Clear* buttons,
@@ -280,8 +251,8 @@ to a slot that creates a chart and includes it into your `QChartView`.
.. literalinclude:: steps/10-expenses.py
:linenos:
- :lines: 103-109
- :emphasize-lines: 6
+ :lines: 62-67
+ :emphasize-lines: 3
That is nothing new, since you already did it for the other buttons,
but now take a look at how to create a chart and include it into
@@ -289,7 +260,7 @@ your `QChartView`.
.. literalinclude:: steps/10-expenses.py
:linenos:
- :lines: 139-151
+ :lines: 95-107
The following steps show how to fill a `QPieSeries`:
diff --git a/sources/pyside6/doc/tutorials/expenses/main.py b/sources/pyside6/doc/tutorials/expenses/main.py
index 76eea3440..a3a998470 100644
--- a/sources/pyside6/doc/tutorials/expenses/main.py
+++ b/sources/pyside6/doc/tutorials/expenses/main.py
@@ -1,55 +1,19 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
from PySide6.QtCore import Qt, Slot
-from PySide6.QtGui import QAction, QPainter
-from PySide6.QtWidgets import (QApplication, QHeaderView, QHBoxLayout, QLabel, QLineEdit,
- QMainWindow, QPushButton, QTableWidget, QTableWidgetItem,
+from PySide6.QtGui import QPainter
+from PySide6.QtWidgets import (QApplication, QFormLayout, QHeaderView,
+ QHBoxLayout, QLineEdit, QMainWindow,
+ QPushButton, QTableWidget, QTableWidgetItem,
QVBoxLayout, QWidget)
-from PySide6.QtCharts import QtCharts
+from PySide6.QtCharts import QChartView, QPieSeries, QChart
class Widget(QWidget):
def __init__(self):
- QWidget.__init__(self)
+ super().__init__()
self.items = 0
# Example data
@@ -64,49 +28,43 @@ class Widget(QWidget):
self.table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
# Chart
- self.chart_view = QtCharts.QChartView()
+ self.chart_view = QChartView()
self.chart_view.setRenderHint(QPainter.Antialiasing)
# Right
self.description = QLineEdit()
+ self.description.setClearButtonEnabled(True)
self.price = QLineEdit()
+ self.price.setClearButtonEnabled(True)
+
self.add = QPushButton("Add")
self.clear = QPushButton("Clear")
- self.quit = QPushButton("Quit")
self.plot = QPushButton("Plot")
# Disabling 'Add' button
self.add.setEnabled(False)
+ form_layout = QFormLayout()
+ form_layout.addRow("Description", self.description)
+ form_layout.addRow("Price", self.price)
self.right = QVBoxLayout()
- self.right.setMargin(10)
- self.right.addWidget(QLabel("Description"))
- self.right.addWidget(self.description)
- self.right.addWidget(QLabel("Price"))
- self.right.addWidget(self.price)
+ self.right.addLayout(form_layout)
self.right.addWidget(self.add)
self.right.addWidget(self.plot)
self.right.addWidget(self.chart_view)
self.right.addWidget(self.clear)
- self.right.addWidget(self.quit)
# QWidget Layout
- self.layout = QHBoxLayout()
-
- #self.table_view.setSizePolicy(size)
+ self.layout = QHBoxLayout(self)
self.layout.addWidget(self.table)
self.layout.addLayout(self.right)
- # Set the layout to the QWidget
- self.setLayout(self.layout)
-
# Signals and Slots
self.add.clicked.connect(self.add_element)
- self.quit.clicked.connect(self.quit_application)
self.plot.clicked.connect(self.plot_data)
self.clear.clicked.connect(self.clear_table)
- self.description.textChanged[str].connect(self.check_disable)
- self.price.textChanged[str].connect(self.check_disable)
+ self.description.textChanged.connect(self.check_disable)
+ self.price.textChanged.connect(self.check_disable)
# Fill example data
self.fill_table()
@@ -114,46 +72,40 @@ class Widget(QWidget):
@Slot()
def add_element(self):
des = self.description.text()
- price = self.price.text()
+ price = float(self.price.text())
self.table.insertRow(self.items)
description_item = QTableWidgetItem(des)
- price_item = QTableWidgetItem(f"{float(price):.2f}")
+ price_item = QTableWidgetItem(f"{price:.2f}")
price_item.setTextAlignment(Qt.AlignRight)
self.table.setItem(self.items, 0, description_item)
self.table.setItem(self.items, 1, price_item)
- self.description.setText("")
- self.price.setText("")
+ self.description.clear()
+ self.price.clear()
self.items += 1
@Slot()
def check_disable(self, s):
- if not self.description.text() or not self.price.text():
- self.add.setEnabled(False)
- else:
- self.add.setEnabled(True)
+ enabled = bool(self.description.text() and self.price.text())
+ self.add.setEnabled(enabled)
@Slot()
def plot_data(self):
# Get table information
- series = QtCharts.QPieSeries()
+ series = QPieSeries()
for i in range(self.table.rowCount()):
text = self.table.item(i, 0).text()
number = float(self.table.item(i, 1).text())
series.append(text, number)
- chart = QtCharts.QChart()
+ chart = QChart()
chart.addSeries(series)
chart.legend().setAlignment(Qt.AlignLeft)
self.chart_view.setChart(chart)
- @Slot()
- def quit_application(self):
- QApplication.quit()
-
def fill_table(self, data=None):
data = self._data if not data else data
for desc, price in data.items():
@@ -173,7 +125,7 @@ class Widget(QWidget):
class MainWindow(QMainWindow):
def __init__(self, widget):
- QMainWindow.__init__(self)
+ super().__init__()
self.setWindowTitle("Tutorial")
# Menu
@@ -181,17 +133,11 @@ class MainWindow(QMainWindow):
self.file_menu = self.menu.addMenu("File")
# Exit QAction
- exit_action = QAction("Exit", self)
+ exit_action = self.file_menu.addAction("Exit", self.close)
exit_action.setShortcut("Ctrl+Q")
- exit_action.triggered.connect(self.exit_app)
- self.file_menu.addAction(exit_action)
self.setCentralWidget(widget)
- @Slot()
- def exit_app(self, checked):
- QApplication.quit()
-
if __name__ == "__main__":
# Qt Application
diff --git a/sources/pyside6/doc/tutorials/expenses/main_snake_prop.py b/sources/pyside6/doc/tutorials/expenses/main_snake_prop.py
index d529391b5..055544409 100644
--- a/sources/pyside6/doc/tutorials/expenses/main_snake_prop.py
+++ b/sources/pyside6/doc/tutorials/expenses/main_snake_prop.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
from PySide6.QtCore import QMargins, Qt, Slot, QSize
@@ -98,7 +61,7 @@ class Widget(QWidget):
#self.table_view.setSizePolicy(size)
self.layout.add_widget(self.table)
- self.layout.add_layout(self.right)
+ self.layout.form_layout(self.right)
# Set the layout to the QWidget
self.set_layout(self.layout)
@@ -119,18 +82,22 @@ class Widget(QWidget):
des = self.description.text
price = self.price.text
- self.table.insert_row(self.items)
- description_item = QTableWidgetItem(des)
- price_item = QTableWidgetItem(f"{float(price):.2f}")
- price_item.text_alignment = Qt.AlignRight
+ try:
+ price_item = QTableWidgetItem(f"{float(price):.2f}")
+ price_item.text_alignment = Qt.AlignRight
+
+ self.table.insert_row(self.items)
+ description_item = QTableWidgetItem(des)
- self.table.set_item(self.items, 0, description_item)
- self.table.set_item(self.items, 1, price_item)
+ self.table.set_item(self.items, 0, description_item)
+ self.table.set_item(self.items, 1, price_item)
- self.description.text = ""
- self.price.text = ""
+ self.description.text = ""
+ self.price.text = ""
- self.items += 1
+ self.items += 1
+ except ValueError:
+ print("Wrong price", price)
@Slot()
def check_disable(self, s):
diff --git a/sources/pyside6/doc/tutorials/expenses/steps/01-expenses.py b/sources/pyside6/doc/tutorials/expenses/steps/01-expenses.py
index c4dc9b3f6..27f2aef65 100644
--- a/sources/pyside6/doc/tutorials/expenses/steps/01-expenses.py
+++ b/sources/pyside6/doc/tutorials/expenses/steps/01-expenses.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
from PySide6.QtWidgets import QApplication, QMainWindow
@@ -44,7 +7,7 @@ from PySide6.QtWidgets import QApplication, QMainWindow
class MainWindow(QMainWindow):
def __init__(self):
- QMainWindow.__init__(self)
+ super().__init__()
self.setWindowTitle("Tutorial")
if __name__ == "__main__":
diff --git a/sources/pyside6/doc/tutorials/expenses/steps/02-expenses.py b/sources/pyside6/doc/tutorials/expenses/steps/02-expenses.py
index 5899ae798..039b818df 100644
--- a/sources/pyside6/doc/tutorials/expenses/steps/02-expenses.py
+++ b/sources/pyside6/doc/tutorials/expenses/steps/02-expenses.py
@@ -1,51 +1,13 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
-from PySide6.QtGui import QAction
from PySide6.QtWidgets import QApplication, QMainWindow
class MainWindow(QMainWindow):
def __init__(self):
- QMainWindow.__init__(self)
+ super().__init__()
self.setWindowTitle("Tutorial")
# Menu
@@ -53,11 +15,9 @@ class MainWindow(QMainWindow):
self.file_menu = self.menu.addMenu("File")
# Exit QAction
- exit_action = QAction("Exit", self)
+ exit_action = self.file_menu.addAction("Exit", self.close)
exit_action.setShortcut("Ctrl+Q")
- self.file_menu.addAction(exit_action)
-
if __name__ == "__main__":
# Qt Application
diff --git a/sources/pyside6/doc/tutorials/expenses/steps/03-expenses.py b/sources/pyside6/doc/tutorials/expenses/steps/03-expenses.py
index d0ecd6844..039b818df 100644
--- a/sources/pyside6/doc/tutorials/expenses/steps/03-expenses.py
+++ b/sources/pyside6/doc/tutorials/expenses/steps/03-expenses.py
@@ -1,53 +1,13 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
-from PySide6.QtCore import Slot
-from PySide6.QtGui import QAction
from PySide6.QtWidgets import QApplication, QMainWindow
-from PySide6.QtCharts import QtCharts
class MainWindow(QMainWindow):
def __init__(self):
- QMainWindow.__init__(self)
+ super().__init__()
self.setWindowTitle("Tutorial")
# Menu
@@ -55,15 +15,8 @@ class MainWindow(QMainWindow):
self.file_menu = self.menu.addMenu("File")
# Exit QAction
- exit_action = QAction("Exit", self)
+ exit_action = self.file_menu.addAction("Exit", self.close)
exit_action.setShortcut("Ctrl+Q")
- exit_action.triggered.connect(self.exit_app)
-
- self.file_menu.addAction(exit_action)
-
- @Slot()
- def exit_app(self, checked):
- QApplication.quit()
if __name__ == "__main__":
diff --git a/sources/pyside6/doc/tutorials/expenses/steps/04-expenses.py b/sources/pyside6/doc/tutorials/expenses/steps/04-expenses.py
index 7f7df478a..6723690a8 100644
--- a/sources/pyside6/doc/tutorials/expenses/steps/04-expenses.py
+++ b/sources/pyside6/doc/tutorials/expenses/steps/04-expenses.py
@@ -1,52 +1,13 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
-from PySide6.QtCore import Slot
-from PySide6.QtGui import QAction
from PySide6.QtWidgets import QApplication, QMainWindow, QWidget
class Widget(QWidget):
def __init__(self):
- QWidget.__init__(self)
+ super().__init__()
# Example data
self._data = {"Water": 24.5, "Electricity": 55.1, "Rent": 850.0,
@@ -56,7 +17,7 @@ class Widget(QWidget):
class MainWindow(QMainWindow):
def __init__(self, widget):
- QMainWindow.__init__(self)
+ super().__init__()
self.setWindowTitle("Tutorial")
# Menu
@@ -64,17 +25,11 @@ class MainWindow(QMainWindow):
self.file_menu = self.menu.addMenu("File")
# Exit QAction
- exit_action = QAction("Exit", self)
+ exit_action = self.file_menu.addAction("Exit", self.close)
exit_action.setShortcut("Ctrl+Q")
- exit_action.triggered.connect(self.exit_app)
- self.file_menu.addAction(exit_action)
self.setCentralWidget(widget)
- @Slot()
- def exit_app(self, checked):
- QApplication.quit()
-
if __name__ == "__main__":
# Qt Application
diff --git a/sources/pyside6/doc/tutorials/expenses/steps/05-expenses.py b/sources/pyside6/doc/tutorials/expenses/steps/05-expenses.py
index b88c9a7d8..df0362fde 100644
--- a/sources/pyside6/doc/tutorials/expenses/steps/05-expenses.py
+++ b/sources/pyside6/doc/tutorials/expenses/steps/05-expenses.py
@@ -1,53 +1,15 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
-from PySide6.QtCore import Slot
-from PySide6.QtGui import QAction
-from PySide6.QtWidgets import (QApplication, QHeaderView, QHBoxLayout, QMainWindow,
- QTableWidget, QTableWidgetItem, QWidget)
+from PySide6.QtWidgets import (QApplication, QHeaderView, QHBoxLayout,
+ QMainWindow, QTableWidget, QTableWidgetItem,
+ QWidget)
class Widget(QWidget):
def __init__(self):
- QWidget.__init__(self)
+ super().__init__()
self.items = 0
# Example data
@@ -62,14 +24,9 @@ class Widget(QWidget):
self.table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
# QWidget Layout
- self.layout = QHBoxLayout()
-
- #self.table_view.setSizePolicy(size)
+ self.layout = QHBoxLayout(self)
self.layout.addWidget(self.table)
- # Set the layout to the QWidget
- self.setLayout(self.layout)
-
# Fill example data
self.fill_table()
@@ -84,7 +41,7 @@ class Widget(QWidget):
class MainWindow(QMainWindow):
def __init__(self, widget):
- QMainWindow.__init__(self)
+ super().__init__()
self.setWindowTitle("Tutorial")
# Menu
@@ -92,17 +49,11 @@ class MainWindow(QMainWindow):
self.file_menu = self.menu.addMenu("File")
# Exit QAction
- exit_action = QAction("Exit", self)
+ exit_action = self.file_menu.addAction("Exit", self.close)
exit_action.setShortcut("Ctrl+Q")
- exit_action.triggered.connect(self.exit_app)
- self.file_menu.addAction(exit_action)
self.setCentralWidget(widget)
- @Slot()
- def exit_app(self, checked):
- QApplication.quit()
-
if __name__ == "__main__":
# Qt Application
diff --git a/sources/pyside6/doc/tutorials/expenses/steps/06-expenses.py b/sources/pyside6/doc/tutorials/expenses/steps/06-expenses.py
index f65ede982..d19a6220f 100644
--- a/sources/pyside6/doc/tutorials/expenses/steps/06-expenses.py
+++ b/sources/pyside6/doc/tutorials/expenses/steps/06-expenses.py
@@ -1,54 +1,16 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
-from PySide6.QtCore import Slot
-from PySide6.QtGui import QAction
-from PySide6.QtWidgets import (QApplication, QHeaderView, QHBoxLayout, QLabel, QLineEdit,
- QMainWindow, QPushButton, QTableWidget, QTableWidgetItem,
- QVBoxLayout, QWidget)
+from PySide6.QtWidgets import (QApplication, QFormLayout, QHeaderView,
+ QHBoxLayout, QLineEdit, QMainWindow, QPushButton,
+ QTableWidget, QTableWidgetItem, QVBoxLayout,
+ QWidget)
class Widget(QWidget):
def __init__(self):
- QWidget.__init__(self)
+ super().__init__()
self.items = 0
# Example data
@@ -64,32 +26,27 @@ class Widget(QWidget):
# Right
self.description = QLineEdit()
+ self.description.setClearButtonEnabled(True)
self.price = QLineEdit()
+ self.price.setClearButtonEnabled(True)
+
self.add = QPushButton("Add")
self.clear = QPushButton("Clear")
- self.quit = QPushButton("Quit")
+ form_layout = QFormLayout()
+ form_layout.addRow("Description", self.description)
+ form_layout.addRow("Price", self.price)
self.right = QVBoxLayout()
- self.right.setMargin(10)
- self.right.addWidget(QLabel("Description"))
- self.right.addWidget(self.description)
- self.right.addWidget(QLabel("Price"))
- self.right.addWidget(self.price)
+ self.right.addLayout(form_layout)
self.right.addWidget(self.add)
self.right.addStretch()
self.right.addWidget(self.clear)
- self.right.addWidget(self.quit)
# QWidget Layout
- self.layout = QHBoxLayout()
-
- #self.table_view.setSizePolicy(size)
+ self.layout = QHBoxLayout(self)
self.layout.addWidget(self.table)
self.layout.addLayout(self.right)
- # Set the layout to the QWidget
- self.setLayout(self.layout)
-
# Fill example data
self.fill_table()
@@ -104,7 +61,7 @@ class Widget(QWidget):
class MainWindow(QMainWindow):
def __init__(self, widget):
- QMainWindow.__init__(self)
+ super().__init__()
self.setWindowTitle("Tutorial")
# Menu
@@ -112,17 +69,11 @@ class MainWindow(QMainWindow):
self.file_menu = self.menu.addMenu("File")
# Exit QAction
- exit_action = QAction("Exit", self)
+ exit_action = self.file_menu.addAction("Exit", self.close)
exit_action.setShortcut("Ctrl+Q")
- exit_action.triggered.connect(self.exit_app)
- self.file_menu.addAction(exit_action)
self.setCentralWidget(widget)
- @Slot()
- def exit_app(self, checked):
- QApplication.quit()
-
if __name__ == "__main__":
# Qt Application
diff --git a/sources/pyside6/doc/tutorials/expenses/steps/07-expenses.py b/sources/pyside6/doc/tutorials/expenses/steps/07-expenses.py
index cdae2a847..b1ed3fecc 100644
--- a/sources/pyside6/doc/tutorials/expenses/steps/07-expenses.py
+++ b/sources/pyside6/doc/tutorials/expenses/steps/07-expenses.py
@@ -1,54 +1,17 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
from PySide6.QtCore import Slot
-from PySide6.QtGui import QAction
-from PySide6.QtWidgets import (QApplication, QHeaderView, QHBoxLayout, QLabel, QLineEdit,
- QMainWindow, QPushButton, QTableWidget, QTableWidgetItem,
- QVBoxLayout, QWidget)
+from PySide6.QtWidgets import (QApplication, QFormLayout, QHeaderView,
+ QHBoxLayout, QLineEdit, QMainWindow, QPushButton,
+ QTableWidget, QTableWidgetItem, QVBoxLayout,
+ QWidget)
class Widget(QWidget):
def __init__(self):
- QWidget.__init__(self)
+ super().__init__()
self.items = 0
# Example data
@@ -64,34 +27,28 @@ class Widget(QWidget):
# Right
self.description = QLineEdit()
+ self.description.setClearButtonEnabled(True)
self.price = QLineEdit()
+ self.price.setClearButtonEnabled(True)
+
self.add = QPushButton("Add")
self.clear = QPushButton("Clear")
- self.quit = QPushButton("Quit")
+ form_layout = QFormLayout()
+ form_layout.addRow("Description", self.description)
+ form_layout.addRow("Price", self.price)
self.right = QVBoxLayout()
- self.right.setMargin(10)
- self.right.addWidget(QLabel("Description"))
- self.right.addWidget(self.description)
- self.right.addWidget(QLabel("Price"))
- self.right.addWidget(self.price)
+ self.right.addLayout(form_layout)
self.right.addWidget(self.add)
self.right.addStretch()
- self.right.addWidget(self.quit)
# QWidget Layout
- self.layout = QHBoxLayout()
-
- #self.table_view.setSizePolicy(size)
+ self.layout = QHBoxLayout(self)
self.layout.addWidget(self.table)
self.layout.addLayout(self.right)
- # Set the layout to the QWidget
- self.setLayout(self.layout)
-
# Signals and Slots
self.add.clicked.connect(self.add_element)
- self.quit.clicked.connect(self.quit_application)
self.clear.clicked.connect(self.clear_table)
# Fill example data
@@ -106,15 +63,11 @@ class Widget(QWidget):
self.table.setItem(self.items, 0, QTableWidgetItem(des))
self.table.setItem(self.items, 1, QTableWidgetItem(price))
- self.description.setText("")
- self.price.setText("")
+ self.description.clear()
+ self.price.clear()
self.items += 1
- @Slot()
- def quit_application(self):
- QApplication.quit()
-
def fill_table(self, data=None):
data = self._data if not data else data
for desc, price in data.items():
@@ -131,7 +84,7 @@ class Widget(QWidget):
class MainWindow(QMainWindow):
def __init__(self, widget):
- QMainWindow.__init__(self)
+ super().__init__()
self.setWindowTitle("Tutorial")
# Menu
@@ -139,17 +92,11 @@ class MainWindow(QMainWindow):
self.file_menu = self.menu.addMenu("File")
# Exit QAction
- exit_action = QAction("Exit", self)
+ exit_action = self.file_menu.addAction("Exit", self.close)
exit_action.setShortcut("Ctrl+Q")
- exit_action.triggered.connect(self.exit_app)
- self.file_menu.addAction(exit_action)
self.setCentralWidget(widget)
- @Slot()
- def exit_app(self, checked):
- QApplication.quit()
-
if __name__ == "__main__":
# Qt Application
diff --git a/sources/pyside6/doc/tutorials/expenses/steps/08-expenses.py b/sources/pyside6/doc/tutorials/expenses/steps/08-expenses.py
index 907ee253b..0e7e21a32 100644
--- a/sources/pyside6/doc/tutorials/expenses/steps/08-expenses.py
+++ b/sources/pyside6/doc/tutorials/expenses/steps/08-expenses.py
@@ -1,54 +1,17 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
from PySide6.QtCore import Slot
-from PySide6.QtGui import QAction
-from PySide6.QtWidgets import (QApplication, QHeaderView, QHBoxLayout, QLabel, QLineEdit,
- QMainWindow, QPushButton, QTableWidget, QTableWidgetItem,
- QVBoxLayout, QWidget)
+from PySide6.QtWidgets import (QApplication, QFormLayout, QHeaderView,
+ QHBoxLayout, QLineEdit, QMainWindow, QPushButton,
+ QTableWidget, QTableWidgetItem, QVBoxLayout,
+ QWidget)
class Widget(QWidget):
def __init__(self):
- QWidget.__init__(self)
+ super().__init__()
self.items = 0
# Example data
@@ -64,41 +27,35 @@ class Widget(QWidget):
# Right
self.description = QLineEdit()
+ self.description.setClearButtonEnabled(True)
self.price = QLineEdit()
+ self.price.setClearButtonEnabled(True)
+
self.add = QPushButton("Add")
self.clear = QPushButton("Clear")
- self.quit = QPushButton("Quit")
# Disabling 'Add' button
self.add.setEnabled(False)
+ form_layout = QFormLayout()
+ form_layout.addRow("Description", self.description)
+ form_layout.addRow("Price", self.price)
self.right = QVBoxLayout()
- self.right.setMargin(10)
- self.right.addWidget(QLabel("Description"))
- self.right.addWidget(self.description)
- self.right.addWidget(QLabel("Price"))
- self.right.addWidget(self.price)
+ self.right.addLayout(form_layout)
self.right.addWidget(self.add)
self.right.addStretch()
self.right.addWidget(self.clear)
- self.right.addWidget(self.quit)
# QWidget Layout
- self.layout = QHBoxLayout()
-
- #self.table_view.setSizePolicy(size)
+ self.layout = QHBoxLayout(self)
self.layout.addWidget(self.table)
self.layout.addLayout(self.right)
- # Set the layout to the QWidget
- self.setLayout(self.layout)
-
# Signals and Slots
self.add.clicked.connect(self.add_element)
- self.quit.clicked.connect(self.quit_application)
self.clear.clicked.connect(self.clear_table)
- self.description.textChanged[str].connect(self.check_disable)
- self.price.textChanged[str].connect(self.check_disable)
+ self.description.textChanged.connect(self.check_disable)
+ self.price.textChanged.connect(self.check_disable)
# Fill example data
self.fill_table()
@@ -112,21 +69,15 @@ class Widget(QWidget):
self.table.setItem(self.items, 0, QTableWidgetItem(des))
self.table.setItem(self.items, 1, QTableWidgetItem(price))
- self.description.setText("")
- self.price.setText("")
+ self.description.clear()
+ self.price.clear()
self.items += 1
@Slot()
def check_disable(self, s):
- if not self.description.text() or not self.price.text():
- self.add.setEnabled(False)
- else:
- self.add.setEnabled(True)
-
- @Slot()
- def quit_application(self):
- QApplication.quit()
+ enabled = bool(self.description.text() and self.price.text())
+ self.add.setEnabled(enabled)
def fill_table(self, data=None):
data = self._data if not data else data
@@ -144,7 +95,7 @@ class Widget(QWidget):
class MainWindow(QMainWindow):
def __init__(self, widget):
- QMainWindow.__init__(self)
+ super().__init__()
self.setWindowTitle("Tutorial")
# Menu
@@ -152,17 +103,11 @@ class MainWindow(QMainWindow):
self.file_menu = self.menu.addMenu("File")
# Exit QAction
- exit_action = QAction("Exit", self)
+ exit_action = self.file_menu.addAction("Exit", self.close)
exit_action.setShortcut("Ctrl+Q")
- exit_action.triggered.connect(self.exit_app)
- self.file_menu.addAction(exit_action)
self.setCentralWidget(widget)
- @Slot()
- def exit_app(self, checked):
- QApplication.quit()
-
if __name__ == "__main__":
# Qt Application
diff --git a/sources/pyside6/doc/tutorials/expenses/steps/09-expenses.py b/sources/pyside6/doc/tutorials/expenses/steps/09-expenses.py
index 7c4f7b252..279a46512 100644
--- a/sources/pyside6/doc/tutorials/expenses/steps/09-expenses.py
+++ b/sources/pyside6/doc/tutorials/expenses/steps/09-expenses.py
@@ -1,55 +1,19 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
from PySide6.QtCore import Slot
-from PySide6.QtGui import QAction, QPainter
-from PySide6.QtWidgets import (QApplication, QHeaderView, QHBoxLayout, QLabel, QLineEdit,
- QMainWindow, QPushButton, QTableWidget, QTableWidgetItem,
+from PySide6.QtGui import QPainter
+from PySide6.QtWidgets import (QApplication, QFormLayout, QHeaderView,
+ QHBoxLayout, QLineEdit, QMainWindow,
+ QPushButton, QTableWidget, QTableWidgetItem,
QVBoxLayout, QWidget)
-from PySide6.QtCharts import QtCharts
+from PySide6.QtCharts import QChartView
class Widget(QWidget):
def __init__(self):
- QWidget.__init__(self)
+ super().__init__()
self.items = 0
# Example data
@@ -64,48 +28,42 @@ class Widget(QWidget):
self.table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
# Chart
- self.chart_view = QtCharts.QChartView()
+ self.chart_view = QChartView()
self.chart_view.setRenderHint(QPainter.Antialiasing)
# Right
self.description = QLineEdit()
+ self.description.setClearButtonEnabled(True)
self.price = QLineEdit()
+ self.price.setClearButtonEnabled(True)
self.add = QPushButton("Add")
self.clear = QPushButton("Clear")
- self.quit = QPushButton("Quit")
self.plot = QPushButton("Plot")
# Disabling 'Add' button
self.add.setEnabled(False)
+ form_layout = QFormLayout()
+ form_layout.addRow("Description", self.description)
+ form_layout.addRow("Price", self.price)
self.right = QVBoxLayout()
- self.right.setMargin(10)
- self.right.addWidget(QLabel("Description"))
- self.right.addWidget(self.description)
- self.right.addWidget(QLabel("Price"))
- self.right.addWidget(self.price)
+ self.right.addLayout(form_layout)
self.right.addWidget(self.add)
self.right.addWidget(self.plot)
self.right.addWidget(self.chart_view)
self.right.addWidget(self.clear)
- self.right.addWidget(self.quit)
# QWidget Layout
- self.layout = QHBoxLayout()
+ self.layout = QHBoxLayout(self)
- #self.table_view.setSizePolicy(size)
self.layout.addWidget(self.table)
self.layout.addLayout(self.right)
- # Set the layout to the QWidget
- self.setLayout(self.layout)
-
# Signals and Slots
self.add.clicked.connect(self.add_element)
- self.quit.clicked.connect(self.quit_application)
self.clear.clicked.connect(self.clear_table)
- self.description.textChanged[str].connect(self.check_disable)
- self.price.textChanged[str].connect(self.check_disable)
+ self.description.textChanged.connect(self.check_disable)
+ self.price.textChanged.connect(self.check_disable)
# Fill example data
self.fill_table()
@@ -119,21 +77,15 @@ class Widget(QWidget):
self.table.setItem(self.items, 0, QTableWidgetItem(des))
self.table.setItem(self.items, 1, QTableWidgetItem(price))
- self.description.setText("")
- self.price.setText("")
+ self.description.clear()
+ self.price.clear()
self.items += 1
@Slot()
def check_disable(self, s):
- if not self.description.text() or not self.price.text():
- self.add.setEnabled(False)
- else:
- self.add.setEnabled(True)
-
- @Slot()
- def quit_application(self):
- QApplication.quit()
+ enabled = bool(self.description.text() and self.price.text())
+ self.add.setEnabled(enabled)
def fill_table(self, data=None):
data = self._data if not data else data
@@ -151,7 +103,7 @@ class Widget(QWidget):
class MainWindow(QMainWindow):
def __init__(self, widget):
- QMainWindow.__init__(self)
+ super().__init__()
self.setWindowTitle("Tutorial")
# Menu
@@ -159,17 +111,11 @@ class MainWindow(QMainWindow):
self.file_menu = self.menu.addMenu("File")
# Exit QAction
- exit_action = QAction("Exit", self)
+ exit_action = self.file_menu.addAction("Exit", self.close)
exit_action.setShortcut("Ctrl+Q")
- exit_action.triggered.connect(self.exit_app)
- self.file_menu.addAction(exit_action)
self.setCentralWidget(widget)
- @Slot()
- def exit_app(self, checked):
- QApplication.quit()
-
if __name__ == "__main__":
# Qt Application
diff --git a/sources/pyside6/doc/tutorials/expenses/steps/10-expenses.py b/sources/pyside6/doc/tutorials/expenses/steps/10-expenses.py
index 1ad6c3743..a3a998470 100644
--- a/sources/pyside6/doc/tutorials/expenses/steps/10-expenses.py
+++ b/sources/pyside6/doc/tutorials/expenses/steps/10-expenses.py
@@ -1,55 +1,19 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
from PySide6.QtCore import Qt, Slot
-from PySide6.QtGui import QAction, QPainter
-from PySide6.QtWidgets import (QQApplication, QHeaderView, QHBoxLayout, QLabel, QLineEdit,
- QMainWindow, QPushButton, QTableWidget, QTableWidgetItem,
+from PySide6.QtGui import QPainter
+from PySide6.QtWidgets import (QApplication, QFormLayout, QHeaderView,
+ QHBoxLayout, QLineEdit, QMainWindow,
+ QPushButton, QTableWidget, QTableWidgetItem,
QVBoxLayout, QWidget)
-from PySide6.QtCharts import QtCharts
+from PySide6.QtCharts import QChartView, QPieSeries, QChart
class Widget(QWidget):
def __init__(self):
- QWidget.__init__(self)
+ super().__init__()
self.items = 0
# Example data
@@ -64,49 +28,43 @@ class Widget(QWidget):
self.table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
# Chart
- self.chart_view = QtCharts.QChartView()
+ self.chart_view = QChartView()
self.chart_view.setRenderHint(QPainter.Antialiasing)
# Right
self.description = QLineEdit()
+ self.description.setClearButtonEnabled(True)
self.price = QLineEdit()
+ self.price.setClearButtonEnabled(True)
+
self.add = QPushButton("Add")
self.clear = QPushButton("Clear")
- self.quit = QPushButton("Quit")
self.plot = QPushButton("Plot")
# Disabling 'Add' button
self.add.setEnabled(False)
+ form_layout = QFormLayout()
+ form_layout.addRow("Description", self.description)
+ form_layout.addRow("Price", self.price)
self.right = QVBoxLayout()
- self.right.setMargin(10)
- self.right.addWidget(QLabel("Description"))
- self.right.addWidget(self.description)
- self.right.addWidget(QLabel("Price"))
- self.right.addWidget(self.price)
+ self.right.addLayout(form_layout)
self.right.addWidget(self.add)
self.right.addWidget(self.plot)
self.right.addWidget(self.chart_view)
self.right.addWidget(self.clear)
- self.right.addWidget(self.quit)
# QWidget Layout
- self.layout = QHBoxLayout()
-
- #self.table_view.setSizePolicy(size)
+ self.layout = QHBoxLayout(self)
self.layout.addWidget(self.table)
self.layout.addLayout(self.right)
- # Set the layout to the QWidget
- self.setLayout(self.layout)
-
# Signals and Slots
self.add.clicked.connect(self.add_element)
- self.quit.clicked.connect(self.quit_application)
self.plot.clicked.connect(self.plot_data)
self.clear.clicked.connect(self.clear_table)
- self.description.textChanged[str].connect(self.check_disable)
- self.price.textChanged[str].connect(self.check_disable)
+ self.description.textChanged.connect(self.check_disable)
+ self.price.textChanged.connect(self.check_disable)
# Fill example data
self.fill_table()
@@ -114,46 +72,40 @@ class Widget(QWidget):
@Slot()
def add_element(self):
des = self.description.text()
- price = self.price.text()
+ price = float(self.price.text())
self.table.insertRow(self.items)
description_item = QTableWidgetItem(des)
- price_item = QTableWidgetItem(f"{float(price):.2f}")
+ price_item = QTableWidgetItem(f"{price:.2f}")
price_item.setTextAlignment(Qt.AlignRight)
self.table.setItem(self.items, 0, description_item)
self.table.setItem(self.items, 1, price_item)
- self.description.setText("")
- self.price.setText("")
+ self.description.clear()
+ self.price.clear()
self.items += 1
@Slot()
def check_disable(self, s):
- if not self.description.text() or not self.price.text():
- self.add.setEnabled(False)
- else:
- self.add.setEnabled(True)
+ enabled = bool(self.description.text() and self.price.text())
+ self.add.setEnabled(enabled)
@Slot()
def plot_data(self):
# Get table information
- series = QtCharts.QPieSeries()
+ series = QPieSeries()
for i in range(self.table.rowCount()):
text = self.table.item(i, 0).text()
number = float(self.table.item(i, 1).text())
series.append(text, number)
- chart = QtCharts.QChart()
+ chart = QChart()
chart.addSeries(series)
chart.legend().setAlignment(Qt.AlignLeft)
self.chart_view.setChart(chart)
- @Slot()
- def quit_application(self):
- QApplication.quit()
-
def fill_table(self, data=None):
data = self._data if not data else data
for desc, price in data.items():
@@ -173,7 +125,7 @@ class Widget(QWidget):
class MainWindow(QMainWindow):
def __init__(self, widget):
- QMainWindow.__init__(self)
+ super().__init__()
self.setWindowTitle("Tutorial")
# Menu
@@ -181,17 +133,11 @@ class MainWindow(QMainWindow):
self.file_menu = self.menu.addMenu("File")
# Exit QAction
- exit_action = QAction("Exit", self)
+ exit_action = self.file_menu.addAction("Exit", self.close)
exit_action.setShortcut("Ctrl+Q")
- exit_action.triggered.connect(self.exit_app)
- self.file_menu.addAction(exit_action)
self.setCentralWidget(widget)
- @Slot()
- def exit_app(self, checked):
- QApplication.quit()
-
if __name__ == "__main__":
# Qt Application
diff --git a/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/Main.qml b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/Main.qml
new file mode 100644
index 000000000..faa9175d6
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/Main.qml
@@ -0,0 +1,196 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls.Basic
+import QtQuick.Layouts
+import FileSystemModule
+
+pragma ComponentBehavior: Bound
+
+ApplicationWindow {
+ id: root
+
+ property bool expandPath: false
+ property bool showLineNumbers: true
+ property string currentFilePath: ""
+
+ width: 1100
+ height: 600
+ minimumWidth: 200
+ minimumHeight: 100
+ visible: true
+ color: Colors.background
+ flags: Qt.Window | Qt.FramelessWindowHint
+ title: qsTr("File System Explorer Example")
+
+ function getInfoText() : string {
+ let out = root.currentFilePath
+ if (!out)
+ return qsTr("File System Explorer")
+ return root.expandPath ? out : out.substring(out.lastIndexOf("/") + 1, out.length)
+ }
+
+ menuBar: MyMenuBar {
+ dragWindow: root
+ infoText: root.getInfoText()
+ MyMenu {
+ title: qsTr("File")
+
+ Action {
+ text: qsTr("Increase Font")
+ shortcut: StandardKey.ZoomIn
+ onTriggered: editor.text.font.pixelSize += 1
+ }
+ Action {
+ text: qsTr("Decrease Font")
+ shortcut: StandardKey.ZoomOut
+ onTriggered: editor.text.font.pixelSize -= 1
+ }
+ Action {
+ text: root.showLineNumbers ? qsTr("Toggle Line Numbers OFF")
+ : qsTr("Toggle Line Numbers ON")
+ shortcut: "Ctrl+L"
+ onTriggered: root.showLineNumbers = !root.showLineNumbers
+ }
+ Action {
+ text: root.expandPath ? qsTr("Toggle Short Path")
+ : qsTr("Toggle Expand Path")
+ enabled: root.currentFilePath
+ onTriggered: root.expandPath = !root.expandPath
+ }
+ Action {
+ text: qsTr("Reset Filesystem")
+ enabled: sidebar.currentTabIndex === 1
+ onTriggered: fileSystemView.rootIndex = undefined
+ }
+ Action {
+ text: qsTr("Exit")
+ onTriggered: Qt.exit(0)
+ shortcut: StandardKey.Quit
+ }
+ }
+
+ MyMenu {
+ title: qsTr("Edit")
+
+ Action {
+ text: qsTr("Cut")
+ shortcut: StandardKey.Cut
+ enabled: editor.text.selectedText.length > 0
+ onTriggered: editor.text.cut()
+ }
+ Action {
+ text: qsTr("Copy")
+ shortcut: StandardKey.Copy
+ enabled: editor.text.selectedText.length > 0
+ onTriggered: editor.text.copy()
+ }
+ Action {
+ text: qsTr("Paste")
+ shortcut: StandardKey.Paste
+ enabled: editor.text.canPaste
+ onTriggered: editor.text.paste()
+ }
+ Action {
+ text: qsTr("Select All")
+ shortcut: StandardKey.SelectAll
+ enabled: editor.text.length > 0
+ onTriggered: editor.text.selectAll()
+ }
+ Action {
+ text: qsTr("Undo")
+ shortcut: StandardKey.Undo
+ enabled: editor.text.canUndo
+ onTriggered: editor.text.undo()
+ }
+ }
+ }
+ // Set up the layout of the main components in a row:
+ // [ Sidebar, Navigation, Editor ]
+ RowLayout {
+ anchors.fill: parent
+ spacing: 0
+
+ // Stores the buttons that navigate the application.
+ Sidebar {
+ id: sidebar
+ dragWindow: root
+ Layout.preferredWidth: 50
+ Layout.fillHeight: true
+ }
+
+ // Allows resizing parts of the UI.
+ SplitView {
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ // Customized handle to drag between the Navigation and the Editor.
+ handle: Rectangle {
+ implicitWidth: 10
+ color: SplitHandle.pressed ? Colors.color2 : Colors.background
+ border.color: SplitHandle.hovered ? Colors.color2 : Colors.background
+ opacity: SplitHandle.hovered || navigationView.width < 15 ? 1.0 : 0.0
+
+ Behavior on opacity {
+ OpacityAnimator {
+ duration: 1400
+ }
+ }
+ }
+
+ Rectangle {
+ id: navigationView
+ color: Colors.surface1
+ SplitView.preferredWidth: 250
+ SplitView.fillHeight: true
+ // The stack-layout provides different views, based on the
+ // selected buttons inside the sidebar.
+ StackLayout {
+ anchors.fill: parent
+ currentIndex: sidebar.currentTabIndex > 1 ? 1 : sidebar.currentTabIndex
+
+ // Shows the help text.
+ Text {
+ text: qsTr("This example shows how to use and visualize the file system.\n\n"
+ + "Customized Qt Quick Components have been used to achieve this look.\n\n"
+ + "You can edit the files but they won't be changed on the file system.\n\n"
+ + "Click on the folder icon to the left to get started.")
+ wrapMode: TextArea.Wrap
+ color: Colors.text
+ }
+
+ // Shows the files on the file system.
+ FileSystemView {
+ id: fileSystemView
+ color: Colors.surface1
+ onFileClicked: path => root.currentFilePath = path
+ }
+ }
+ }
+
+ // The main view that contains the editor or the scheme-manager.
+ StackLayout {
+ currentIndex: sidebar.currentTabIndex > 1 ? 1 : 0
+
+ SplitView.fillWidth: true
+ SplitView.fillHeight: true
+
+ Editor {
+ id: editor
+ showLineNumbers: root.showLineNumbers
+ currentFilePath: root.currentFilePath
+ }
+
+ ColorScheme {
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ }
+
+ }
+ }
+ }
+
+ ResizeButton {
+ resizeWindow: root
+ }
+}
diff --git a/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/app.qrc b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/app.qrc
new file mode 100644
index 000000000..ccd9eefec
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/app.qrc
@@ -0,0 +1,16 @@
+<RCC>
+ <qresource prefix="/qt/qml/FileSystemModule">
+ <file>qmldir</file>
+ <file>Main.qml</file>
+ <file>qml/About.qml</file>
+ <file>qml/Editor.qml</file>
+ <file>qml/Colors.qml</file>
+ <file>qml/FileSystemView.qml</file>
+ <file>qml/Icon.qml</file>
+ <file>qml/MyMenu.qml</file>
+ <file>qml/MyMenuBar.qml</file>
+ <file>qml/ResizeButton.qml</file>
+ <file>qml/Sidebar.qml</file>
+ <file>qml/WindowDragHandler.qml</file>
+ </qresource>
+</RCC>
diff --git a/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons.qrc b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons.qrc
new file mode 100644
index 000000000..69bddc018
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons.qrc
@@ -0,0 +1,15 @@
+<RCC>
+ <qresource>
+ <file>icons/app_icon.svg</file>
+ <file>icons/folder_closed.svg</file>
+ <file>icons/folder_open.svg</file>
+ <file>icons/generic_file.svg</file>
+ <file>icons/globe.svg</file>
+ <file>icons/info_sign.svg</file>
+ <file>icons/leaf.svg</file>
+ <file>icons/light_bulb.svg</file>
+ <file>icons/qt_logo.svg</file>
+ <file>icons/read.svg</file>
+ <file>icons/resize.svg</file>
+ </qresource>
+</RCC>
diff --git a/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/app_icon.svg b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/app_icon.svg
new file mode 100644
index 000000000..5aae4221f
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/app_icon.svg
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg width="800px" height="800px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="#EBDBB2" d="M13.25 8.5a.75.75 0 1 1-.75-.75.75.75 0 0 1 .75.75zM9.911 21.35l.816.578C10.819 21.798 13 18.666 13 13h-1a15.503 15.503 0 0 1-2.089 8.35zM4 6.703V10a2.002 2.002 0 0 1-2 2v1a2.002 2.002 0 0 1 2 2v3.297A3.707 3.707 0 0 0 7.703 22H9v-1H7.703A2.706 2.706 0 0 1 5 18.297V15a2.999 2.999 0 0 0-1.344-2.5A2.999 2.999 0 0 0 5 10V6.703A2.706 2.706 0 0 1 7.703 4H9V3H7.703A3.707 3.707 0 0 0 4 6.703zM20 10V6.703A3.707 3.707 0 0 0 16.297 3H15v1h1.297A2.706 2.706 0 0 1 19 6.703V10a2.999 2.999 0 0 0 1.344 2.5A2.999 2.999 0 0 0 19 15v3.297A2.706 2.706 0 0 1 16.297 21H15v1h1.297A3.707 3.707 0 0 0 20 18.297V15a2.002 2.002 0 0 1 2-2v-1a2.002 2.002 0 0 1-2-2z"/><path fill="none" d="M0 0h24v24H0z"/></svg>
diff --git a/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/folder_closed.svg b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/folder_closed.svg
new file mode 100644
index 000000000..36f119c96
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/folder_closed.svg
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ version="1.1"
+ viewBox="-10 0 1792 1792"
+ id="svg51"
+ sodipodi:docname="folder_closed.svg"
+ width="1792"
+ height="1792"
+ inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs55" />
+ <sodipodi:namedview
+ id="namedview53"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ showgrid="false"
+ inkscape:zoom="0.45033482"
+ inkscape:cx="842.70632"
+ inkscape:cy="896"
+ inkscape:window-width="1846"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg51" />
+ <path
+ fill="currentColor"
+ d="m 1718,672 v 704 q 0,92 -66,158 -66,66 -158,66 H 278 q -92,0 -158,-66 -66,-66 -66,-158 V 416 q 0,-92 66,-158 66,-66 158,-66 h 320 q 92,0 158,66 66,66 66,158 v 32 h 672 q 92,0 158,66 66,66 66,158 z"
+ id="path49" />
+</svg>
diff --git a/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/folder_open.svg b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/folder_open.svg
new file mode 100644
index 000000000..daa55a7a1
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/folder_open.svg
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ version="1.1"
+ viewBox="-10 0 1792 1792"
+ id="svg139"
+ sodipodi:docname="folder_open.svg"
+ width="1792"
+ height="1792"
+ inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs143" />
+ <sodipodi:namedview
+ id="namedview141"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ showgrid="false"
+ inkscape:zoom="0.24358259"
+ inkscape:cx="149.84651"
+ inkscape:cy="1098.1901"
+ inkscape:window-width="1846"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg139" />
+ <path
+ fill="currentColor"
+ d="M 1590,1376 V 672 q 0,-40 -28,-68 -28,-28 -68,-28 H 790 q -40,0 -68,-28 -28,-28 -28,-68 v -64 q 0,-40 -28,-68 -28,-28 -68,-28 H 278 q -40,0 -68,28 -28,28 -28,68 v 960 q 0,40 28,68 28,28 68,28 h 1216 q 40,0 68,-28 28,-28 28,-68 z m 128,-704 v 704 q 0,92 -66,158 -66,66 -158,66 H 278 q -92,0 -158,-66 -66,-66 -66,-158 V 416 q 0,-92 66,-158 66,-66 158,-66 h 320 q 92,0 158,66 66,66 66,158 v 32 h 672 q 92,0 158,66 66,66 66,158 z"
+ id="path137" />
+</svg>
diff --git a/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/generic_file.svg b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/generic_file.svg
new file mode 100644
index 000000000..9c855676e
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/generic_file.svg
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ version="1.1"
+ viewBox="-10 0 1792 1792"
+ id="svg147"
+ sodipodi:docname="generic_file.svg"
+ width="1792"
+ height="1792"
+ inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs151" />
+ <sodipodi:namedview
+ id="namedview149"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ showgrid="false"
+ inkscape:zoom="0.12179129"
+ inkscape:cx="-578.85911"
+ inkscape:cy="1687.3127"
+ inkscape:window-width="1846"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg147" />
+ <path
+ fill="currentColor"
+ d="m 1586,476 q 14,14 28,36 H 1142 V 40 q 22,14 36,28 z m -476,164 h 544 v 1056 q 0,40 -28,68 -28,28 -68,28 H 214 q -40,0 -68,-28 -28,-28 -28,-68 V 96 Q 118,56 146,28 174,0 214,0 h 800 v 544 q 0,40 28,68 28,28 68,28 z m 160,736 v -64 q 0,-14 -9,-23 -9,-9 -23,-9 H 534 q -14,0 -23,9 -9,9 -9,23 v 64 q 0,14 9,23 9,9 23,9 h 704 q 14,0 23,-9 9,-9 9,-23 z m 0,-256 v -64 q 0,-14 -9,-23 -9,-9 -23,-9 H 534 q -14,0 -23,9 -9,9 -9,23 v 64 q 0,14 9,23 9,9 23,9 h 704 q 14,0 23,-9 9,-9 9,-23 z m 0,-256 v -64 q 0,-14 -9,-23 -9,-9 -23,-9 H 534 q -14,0 -23,9 -9,9 -9,23 v 64 q 0,14 9,23 9,9 23,9 h 704 q 14,0 23,-9 9,-9 9,-23 z"
+ id="path145" />
+</svg>
diff --git a/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/globe.svg b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/globe.svg
new file mode 100644
index 000000000..081433813
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/globe.svg
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ version="1.1"
+ viewBox="-10 0 1792 1792"
+ id="svg155"
+ sodipodi:docname="globe.svg"
+ width="1792"
+ height="1792"
+ inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs159" />
+ <sodipodi:namedview
+ id="namedview157"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ showgrid="false"
+ inkscape:zoom="0.12179129"
+ inkscape:cx="504.9622"
+ inkscape:cy="1720.1558"
+ inkscape:window-width="1846"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg155" />
+ <path
+ fill="currentColor"
+ d="m 886,128 q 209,0 385.5,103 176.5,103 279.5,279.5 103,176.5 103,385.5 0,209 -103,385.5 Q 1448,1458 1271.5,1561 1095,1664 886,1664 677,1664 500.5,1561 324,1458 221,1281.5 118,1105 118,896 118,687 221,510.5 324,334 500.5,231 677,128 886,128 Z m 274,521 q -2,1 -9.5,9.5 -7.5,8.5 -13.5,9.5 2,0 4.5,-5 2.5,-5 5,-11 2.5,-6 3.5,-7 6,-7 22,-15 14,-6 52,-12 34,-8 51,11 -2,-2 9.5,-13 11.5,-11 14.5,-12 3,-2 15,-4.5 12,-2.5 15,-7.5 l 2,-22 q -12,1 -17.5,-7 -5.5,-8 -6.5,-21 0,2 -6,8 0,-7 -4.5,-8 -4.5,-1 -11.5,1 -7,2 -9,1 -10,-3 -15,-7.5 -5,-4.5 -8,-16.5 -3,-12 -4,-15 -2,-5 -9.5,-10.5 -7.5,-5.5 -9.5,-10.5 -1,-2 -2.5,-5.5 -1.5,-3.5 -3,-6.5 -1.5,-3 -4,-5.5 -2.5,-2.5 -5.5,-2.5 -3,0 -7,5 -4,5 -7.5,10 -3.5,5 -4.5,5 -3,-2 -6,-1.5 -3,0.5 -4.5,1 -1.5,0.5 -4.5,3 -3,2.5 -5,3.5 -3,2 -8.5,3 -5.5,1 -8.5,2 15,-5 -1,-11 -10,-4 -16,-3 9,-4 7.5,-12 -1.5,-8 -8.5,-14 h 5 q -1,-4 -8.5,-8.5 -7.5,-4.5 -17.5,-8.5 -10,-4 -13,-6 -8,-5 -34,-9.5 -26,-4.5 -33,-0.5 -5,6 -4.5,10.5 0.5,4.5 4,14 3.5,9.5 3.5,12.5 1,6 -5.5,13 -6.5,7 -6.5,12 0,7 14,15.5 14,8.5 10,21.5 -3,8 -16,16 -13,8 -16,12 -5,8 -1.5,18.5 3.5,10.5 10.5,16.5 2,2 1.5,4 -0.5,2 -3.5,4.5 -3,2.5 -5.5,4 -2.5,1.5 -6.5,3.5 l -3,2 q -11,5 -20.5,-6 -9.5,-11 -13.5,-26 -7,-25 -16,-30 -23,-8 -29,1 -5,-13 -41,-26 -25,-9 -58,-4 6,-1 0,-15 -7,-15 -19,-12 3,-6 4,-17.5 1,-11.5 1,-13.5 3,-13 12,-23 1,-1 7,-8.5 6,-7.5 9.5,-13.5 3.5,-6 0.5,-6 35,4 50,-11 5,-5 11.5,-17 6.5,-12 10.5,-17 9,-6 14,-5.5 5,0.5 14.5,5.5 9.5,5 14.5,5 14,1 15.5,-11 1.5,-12 -7.5,-20 12,1 3,-17 -5,-7 -8,-9 -12,-4 -27,5 -8,4 2,8 -1,-1 -9.5,10.5 Q 927,340 919,346 q -8,6 -16,-5 -1,-1 -5.5,-13.5 Q 893,315 888,314 q -8,0 -16,15 3,-8 -11,-15 -14,-7 -24,-8 19,-12 -8,-27 -7,-4 -20.5,-5 -13.5,-1 -19.5,4 -5,7 -5.5,11.5 -0.5,4.5 5,8 5.5,3.5 10.5,5.5 5,2 11.5,4 6.5,2 8.5,3 14,10 8,14 -2,1 -8.5,3.5 -6.5,2.5 -11.5,4.5 -5,2 -6,4 -3,4 0,14 3,10 -2,14 -5,-5 -9,-17.5 -4,-12.5 -7,-16.5 7,9 -25,6 l -10,-1 q -4,0 -16,2 -12,2 -20.5,1 -8.5,-1 -13.5,-8 -4,-8 0,-20 1,-4 4,-2 -4,-3 -11,-9.5 -7,-6.5 -10,-8.5 -46,15 -94,41 6,1 12,-1 5,-2 13,-6.5 8,-4.5 10,-5.5 34,-14 42,-7 l 5,-5 q 14,16 20,25 -7,-4 -30,-1 -20,6 -22,12 7,12 5,18 -4,-3 -11.5,-10 -7.5,-7 -14.5,-11 -7,-4 -15,-5 -16,0 -22,1 -146,80 -235,222 7,7 12,8 4,1 5,9 1,8 2.5,11 1.5,3 11.5,-3 9,8 3,19 1,-1 44,27 19,17 21,21 3,11 -10,18 -1,-2 -9,-9 -8,-7 -9,-4 -3,5 0.5,18.5 3.5,13.5 10.5,12.5 -7,0 -9.5,16 -2.5,16 -2.5,35.5 0,19.5 -1,23.5 l 2,1 q -3,12 5.5,34.5 8.5,22.5 21.5,19.5 -13,3 20,43 6,8 8,9 3,2 12,7.5 9,5.5 15,10 6,4.5 10,10.5 4,5 10,22.5 6,17.5 14,23.5 -2,6 9.5,20 11.5,14 10.5,23 -1,0 -2.5,1 -1.5,1 -2.5,1 3,7 15.5,14 12.5,7 15.5,13 1,3 2,10 1,7 3,11 2,4 8,2 2,-20 -24,-62 -15,-25 -17,-29 -3,-5 -5.5,-15.5 Q 541,919 539,915 q 2,0 6,1.5 4,1.5 8.5,3.5 4.5,2 7.5,4 3,2 2,3 -3,7 2,17.5 5,10.5 12,18.5 7,8 17,19 10,11 12,13 6,6 14,19.5 8,13.5 0,13.5 9,0 20,10 11,10 17,20 5,8 8,26 3,18 5,24 2,7 8.5,13.5 6.5,6.5 12.5,9.5 l 16,8 q 0,0 13,7 5,2 18.5,10.5 13.5,8.5 21.5,11.5 10,4 16,4 6,0 14.5,-2.5 8.5,-2.5 13.5,-3.5 15,-2 29,15 14,17 21,21 36,19 55,11 -2,1 0.5,7.5 2.5,6.5 8,15.5 5.5,9 9,14.5 3.5,5.5 5.5,8.5 5,6 18,15 13,9 18,15 6,-4 7,-9 -3,8 7,20 10,12 18,10 14,-3 14,-32 -31,15 -49,-18 0,-1 -2.5,-5.5 -2.5,-4.5 -4,-8.5 -1.5,-4 -2.5,-8.5 -1,-4.5 0,-7.5 1,-3 5,-3 9,0 10,-3.5 1,-3.5 -2,-12.5 -3,-9 -4,-13 -1,-8 -11,-20 -10,-12 -12,-15 -5,9 -16,8 -11,-1 -16,-9 0,1 -1.5,5.5 -1.5,4.5 -1.5,6.5 -13,0 -15,-1 1,-3 2.5,-17.5 1.5,-14.5 3.5,-22.5 1,-4 5.5,-12 4.5,-8 7.5,-14.5 3,-6.5 4,-12.5 1,-6 -4.5,-9.5 -5.5,-3.5 -17.5,-2.5 -19,1 -26,20 -1,3 -3,10.5 -2,7.5 -5,11.5 -3,4 -9,7 -7,3 -24,2 -17,-1 -24,-5 -13,-8 -22.5,-29 -9.5,-21 -9.5,-37 0,-10 2.5,-26.5 2.5,-16.5 3,-25 0.5,-8.5 -5.5,-24.5 3,-2 9,-9.5 6,-7.5 10,-10.5 2,-1 4.5,-1.5 2.5,-0.5 4.5,0 2,0.5 4,-1.5 2,-2 3,-6 -1,-1 -4,-3 -3,-3 -4,-3 7,3 28.5,-1.5 21.5,-4.5 27.5,1.5 15,11 22,-2 0,-1 -2.5,-9.5 Q 870,931 872,926 q 5,27 29,9 3,3 15.5,5 12.5,2 17.5,5 3,2 7,5.5 4,3.5 5.5,4.5 1.5,1 5,-0.5 3.5,-1.5 8.5,-6.5 10,14 12,24 11,40 19,44 7,3 11,2 4,-1 4.5,-9.5 0.5,-8.5 0,-14 Q 1006,989 1005,982 l -1,-8 v -18 l -1,-8 q -15,-3 -18.5,-12 -3.5,-9 1.5,-18.5 5,-9.5 15,-18.5 1,-1 8,-3.5 7,-2.5 15.5,-6.5 8.5,-4 12.5,-8 21,-19 15,-35 7,0 11,-9 -1,0 -5,-3 -4,-3 -7.5,-5 -3.5,-2 -4.5,-2 9,-5 2,-16 5,-3 7.5,-11 2.5,-8 7.5,-10 9,12 21,2 7,-8 1,-16 5,-7 20.5,-10.5 15.5,-3.5 18.5,-9.5 7,2 8,-2 1,-4 1,-12 0,-8 3,-12 4,-5 15,-9 11,-4 13,-5 l 17,-11 q 3,-4 0,-4 18,2 31,-11 10,-11 -6,-20 3,-6 -3,-9.5 -6,-3.5 -15,-5.5 3,-1 11.5,-0.5 8.5,0.5 10.5,-1.5 15,-10 -7,-16 -17,-5 -43,12 z m -163,877 q 206,-36 351,-189 -3,-3 -12.5,-4.5 -9.5,-1.5 -12.5,-3.5 -18,-7 -24,-8 1,-7 -2.5,-13 -3.5,-6 -8,-9 -4.5,-3 -12.5,-8 -8,-5 -11,-7 -2,-2 -7,-6 -5,-4 -7,-5.5 -2,-1.5 -7.5,-4.5 -5.5,-3 -8.5,-2 -3,1 -10,1 l -3,1 q -3,1 -5.5,2.5 -2.5,1.5 -5.5,3 -3,1.5 -4,3 -1,1.5 0,2.5 -21,-17 -36,-22 -5,-1 -11,-5.5 -6,-4.5 -10.5,-7 -4.5,-2.5 -10,-1.5 -5.5,1 -11.5,7 -5,5 -6,15 -1,10 -2,13 -7,-5 0,-17.5 7,-12.5 2,-18.5 -3,-6 -10.5,-4.5 -7.5,1.5 -12,4.5 -4.5,3 -11.5,8.5 -7,5.5 -9,6.5 -2,1 -8.5,5.5 -6.5,4.5 -8.5,7.5 -3,4 -6,12 -3,8 -5,11 -2,-4 -11.5,-6.5 -9.5,-2.5 -9.5,-5.5 2,10 4,35 2,25 5,38 7,31 -12,48 -27,25 -29,40 -4,22 12,26 0,7 -8,20.5 -8,13.5 -7,21.5 0,6 2,16 z"
+ id="path153" />
+</svg>
diff --git a/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/info_sign.svg b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/info_sign.svg
new file mode 100644
index 000000000..517f76360
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/info_sign.svg
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ version="1.1"
+ viewBox="-10 0 1792 1792"
+ id="svg163"
+ sodipodi:docname="info_sign.svg"
+ width="1792"
+ height="1792"
+ inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs167" />
+ <sodipodi:namedview
+ id="namedview165"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ showgrid="false"
+ inkscape:zoom="0.48716518"
+ inkscape:cx="72.870561"
+ inkscape:cy="896"
+ inkscape:window-width="1846"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg163" />
+ <path
+ fill="currentColor"
+ d="m 1142,1376 v -160 q 0,-14 -9,-23 -9,-9 -23,-9 h -96 V 672 q 0,-14 -9,-23 -9,-9 -23,-9 H 662 q -14,0 -23,9 -9,9 -9,23 v 160 q 0,14 9,23 9,9 23,9 h 96 v 320 h -96 q -14,0 -23,9 -9,9 -9,23 v 160 q 0,14 9,23 9,9 23,9 h 448 q 14,0 23,-9 9,-9 9,-23 z M 1014,480 V 320 q 0,-14 -9,-23 -9,-9 -23,-9 H 790 q -14,0 -23,9 -9,9 -9,23 v 160 q 0,14 9,23 9,9 23,9 h 192 q 14,0 23,-9 9,-9 9,-23 z m 640,416 q 0,209 -103,385.5 Q 1448,1458 1271.5,1561 1095,1664 886,1664 677,1664 500.5,1561 324,1458 221,1281.5 118,1105 118,896 118,687 221,510.5 324,334 500.5,231 677,128 886,128 1095,128 1271.5,231 1448,334 1551,510.5 1654,687 1654,896 Z"
+ id="path161" />
+</svg>
diff --git a/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/leaf.svg b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/leaf.svg
new file mode 100644
index 000000000..c1cabb5cf
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/leaf.svg
@@ -0,0 +1,7 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" viewBox="-10 0 1034 1024">
+ <path fill="currentColor"
+d="M765 327l-14 -11l-538 502l503 -533l-14 -12q-48 -26 -106 -23.5t-109 19.5q-14 4 -28.5 10t-28.5 13q-30 14 -57.5 32.5t-52.5 41.5q-55 52 -90.5 119t-52.5 140q-5 21 -9 42t-7 42q-3 26 -5.5 52.5t-4.5 53.5q-1 22 1.5 45.5t33.5 21.5h11.5h10.5q78 -2 156 -6t153 -29
+q49 -16 94 -42.5t82 -62.5q27 -27 50 -60t39 -69.5t24 -75.5t5 -78q-3 -35 -12.5 -70t-33.5 -62v0zM844 160l30 30l-563 531z" />
+</svg>
diff --git a/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/light_bulb.svg b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/light_bulb.svg
new file mode 100644
index 000000000..ed2ed55fb
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/light_bulb.svg
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ version="1.1"
+ viewBox="-10 0 1538 1538"
+ id="svg4"
+ sodipodi:docname="light_bulb.svg"
+ width="1538"
+ height="1538"
+ inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs8" />
+ <sodipodi:namedview
+ id="namedview6"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ showgrid="false"
+ fit-margin-top="1"
+ fit-margin-left="1"
+ fit-margin-right="1"
+ fit-margin-bottom="1"
+ lock-margins="true"
+ inkscape:zoom="0.16"
+ inkscape:cx="1234.375"
+ inkscape:cy="409.375"
+ inkscape:window-width="1846"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg4" />
+ <path
+ fill="currentColor"
+ d="m 983,449 q 0,13 -9.5,22.5 Q 964,481 951,481 938,481 928.5,471.5 919,462 919,449 919,403 865,378 811,353 759,353 746,353 736.5,343.5 727,334 727,321 q 0,-13 9.5,-22.5 9.5,-9.5 22.5,-9.5 50,0 99.5,16 49.5,16 87,54 37.5,38 37.5,90 z m 160,0 q 0,-72 -34.5,-134 -34.5,-62 -90,-101.5 Q 963,174 895.5,151.5 828,129 759,129 690,129 622.5,151.5 555,174 499.5,213.5 444,253 409.5,315 375,377 375,449 q 0,101 68,180 10,11 30.5,33 20.5,22 30.5,33 128,153 141,298 h 228 q 13,-145 141,-298 10,-11 30.5,-33 20.5,-22 30.5,-33 68,-79 68,-180 z m 128,0 q 0,155 -103,268 -45,49 -74.5,87 -29.5,38 -59.5,95.5 -30,57.5 -34,107.5 47,28 47,82 0,37 -25,64 25,27 25,64 0,52 -45,81 13,23 13,47 0,46 -31.5,71 -31.5,25 -77.5,25 -20,44 -60,70 -40,26 -87,26 -47,0 -87,-26 -40,-26 -60,-70 -46,0 -77.5,-25 -31.5,-25 -31.5,-71 0,-24 13,-47 -45,-29 -45,-81 0,-37 25,-64 -25,-27 -25,-64 0,-54 47,-82 Q 514,957 484,899.5 454,842 424.5,804 395,766 350,717 247,604 247,449 247,350 291.5,264.5 336,179 408.5,122.5 481,66 572.5,33.5 664,1 759,1 q 95,0 186.5,32.5 91.5,32.5 164,89 72.5,56.5 117,142 Q 1271,350 1271,449 Z"
+ id="path2" />
+</svg>
diff --git a/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/qt_logo.svg b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/qt_logo.svg
new file mode 100644
index 000000000..062daff3e
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/qt_logo.svg
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns="http://www.w3.org/2000/svg"
+ width="462pt"
+ height="339pt"
+ viewBox="0 0 462 339"
+ version="1.1"
+ id="svg2"
+>
+ <path
+ fill="#41cd52"
+ d=" M 63.50 0.00 L 462.00 0.00 L 462.00 274.79 C 440.60 296.26 419.13 317.66 397.61 339.00 L 0.00 339.00 L 0.00 63.39 C 21.08 42.18 42.34 21.13 63.50 0.00 Z"
+ id="path6"/>
+ <path
+ d=" M 122.37 71.33 C 137.50 61.32 156.21 58.79 174.00 58.95 C 190.94 59.16 208.72 62.13 222.76 72.24 C 232.96 79.41 239.59 90.48 244.01 101.93 C 251.16 120.73 253.26 141.03 253.50 161.01 C 253.53 181.13 252.62 201.69 245.96 220.86 C 241.50 233.90 233.01 245.48 221.81 253.52 C 229.87 266.58 238.09 279.54 246.15 292.60 C 236.02 297.27 225.92 301.97 215.78 306.62 C 207.15 292.38 198.56 278.11 189.90 263.89 C 178.19 265.81 166.21 265.66 154.44 264.36 C 140.34 262.67 125.97 258.37 115.09 248.88 C 106.73 241.64 101.48 231.51 97.89 221.21 C 92.01 203.79 90.43 185.25 90.16 166.97 C 90.02 147.21 91.28 127.14 97.24 108.18 C 101.85 93.92 109.48 79.69 122.37 71.33 Z"
+ id="path8"
+ fill="#ffffff"/>
+ <path
+ d=" M 294.13 70.69 C 304.73 70.68 315.33 70.68 325.93 70.69 C 325.96 84.71 325.92 98.72 325.95 112.74 C 339.50 112.76 353.05 112.74 366.60 112.75 C 366.37 121.85 366.12 130.95 365.86 140.05 C 352.32 140.08 338.79 140.04 325.25 140.07 C 325.28 163.05 325.18 186.03 325.30 209.01 C 325.56 215.30 325.42 221.94 328.19 227.75 C 330.21 232.23 335.65 233.38 340.08 233.53 C 348.43 233.50 356.77 233.01 365.12 232.86 C 365.63 241.22 366.12 249.59 366.60 257.95 C 349.99 260.74 332.56 264.08 316.06 258.86 C 309.11 256.80 302.63 252.19 299.81 245.32 C 294.76 233.63 294.35 220.62 294.13 208.07 C 294.11 185.40 294.13 162.74 294.12 140.07 C 286.73 140.05 279.34 140.08 271.95 140.05 C 271.93 130.96 271.93 121.86 271.95 112.76 C 279.34 112.73 286.72 112.77 294.11 112.74 C 294.14 98.72 294.10 84.71 294.13 70.69 Z"
+ id="path10"
+ fill="#ffffff"/>
+ <path
+ fill="#41cd52"
+ d=" M 160.51 87.70 C 170.80 86.36 181.60 86.72 191.34 90.61 C 199.23 93.73 205.93 99.84 209.47 107.58 C 214.90 119.31 216.98 132.26 218.03 145.05 C 219.17 162.07 219.01 179.25 216.66 196.17 C 215.01 206.24 212.66 216.85 205.84 224.79 C 198.92 232.76 188.25 236.18 178.01 236.98 C 167.21 237.77 155.82 236.98 146.07 231.87 C 140.38 228.84 135.55 224.09 132.73 218.27 C 129.31 211.30 127.43 203.69 126.11 196.07 C 122.13 171.91 121.17 146.91 126.61 122.89 C 128.85 113.83 132.11 104.53 138.73 97.70 C 144.49 91.85 152.51 88.83 160.51 87.70 Z"
+ id="path12"/>
+</svg>
diff --git a/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/read.svg b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/read.svg
new file mode 100644
index 000000000..c3af473d2
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/read.svg
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ version="1.1"
+ viewBox="-11 0 1792 1792"
+ id="svg184"
+ sodipodi:docname="read.svg"
+ width="1792"
+ height="1792"
+ inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs188" />
+ <sodipodi:namedview
+ id="namedview186"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ showgrid="false"
+ inkscape:zoom="0.24358259"
+ inkscape:cx="519.33104"
+ inkscape:cy="1089.9794"
+ inkscape:window-width="1846"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg184" />
+ <path
+ fill="currentColor"
+ d="m 1691.8576,478 q 40,57 18,129 l -275,906 q -19,64 -76.5,107.5 -57.5,43.5 -122.5,43.5 H 312.85764 q -77,0 -148.5,-53.5 Q 92.857644,1557 64.857644,1479 q -24,-67 -2,-127 0,-4 3,-27 3,-23 4,-37 1,-8 -3,-21.5 -4,-13.5 -3,-19.5 2,-11 8,-21 6,-10 16.5,-23.5 10.5,-13.5 16.499996,-23.5 23,-38 45,-91.5 22,-53.5 30,-91.5 3,-10 0.5,-30 -2.5,-20 -0.5,-28 3,-11 17,-28 14,-17 17,-23 21,-36 42,-92 21,-56 25,-90 1,-9 -2.5,-32 -3.5,-23 0.5,-28 4,-13 22,-30.5 18,-17.5 22,-22.5 19,-26 42.5,-84.5 23.5,-58.5 27.5,-96.5 1,-8 -3,-25.5 -4,-17.5 -2,-26.5 2,-8 9,-18 7,-10 18,-23 11,-13 17,-21 8,-12 16.5,-30.5 8.5,-18.5 15,-35 6.5,-16.5 16,-36 9.5,-19.5 19.5,-32 10,-12.5 26.5,-23.5 16.5,-11 36,-11.5 19.5,-0.5 47.5,5.5 l -1,3 q 38,-9 51,-9 h 760.99996 q 74,0 114,56 40,56 18,130 l -274,906 q -36,119 -71.5,153.5 -35.5,34.5 -128.5,34.5 H 208.85764 q -27,0 -38,15 -11,16 -1,43 24,70 144,70 h 922.99996 q 29,0 56,-15.5 27,-15.5 35,-41.5 l 300,-987 q 7,-22 5,-57 38,15 59,43 z m -1063.99996,2 q -4,13 2,22.5 6,9.5 20,9.5 h 607.99996 q 13,0 25.5,-9.5 12.5,-9.5 16.5,-22.5 l 21,-64 q 4,-13 -2,-22.5 -6,-9.5 -20,-9.5 H 690.85764 q -13,0 -25.5,9.5 -12.5,9.5 -16.5,22.5 z m -83,256 q -4,13 2,22.5 6,9.5 20,9.5 h 607.99996 q 13,0 25.5,-9.5 12.5,-9.5 16.5,-22.5 l 21,-64 q 4,-13 -2,-22.5 -6,-9.5 -20,-9.5 H 607.85764 q -13,0 -25.5,9.5 -12.5,9.5 -16.5,22.5 z"
+ id="path182" />
+</svg>
diff --git a/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/resize.svg b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/resize.svg
new file mode 100644
index 000000000..e86d612f3
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/icons/resize.svg
@@ -0,0 +1,6 @@
+<svg xmlns='http://www.w3.org/2000/svg' width='100' height='100'>
+ <line x1="00" y1="100" x2="100" y2="00" stroke="black" stroke-width="3" />
+ <line x1="20" y1="100" x2="100" y2="20" stroke="black" stroke-width="3" />
+ <line x1="40" y1="100" x2="100" y2="40" stroke="black" stroke-width="3" />
+ <line x1="60" y1="100" x2="100" y2="60" stroke="black" stroke-width="3" />
+</svg>
diff --git a/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/qml/About.qml b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/qml/About.qml
new file mode 100644
index 000000000..178bf03e4
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/qml/About.qml
@@ -0,0 +1,93 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls.Basic
+import FileSystemModule
+
+ApplicationWindow {
+ id: root
+ width: 650
+ height: 550
+ flags: Qt.Window | Qt.FramelessWindowHint
+ color: Colors.surface1
+
+ menuBar: MyMenuBar {
+ id: menuBar
+
+ dragWindow: root
+ implicitHeight: 27
+ infoText: "About Qt"
+ }
+
+ Image {
+ id: logo
+
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.top: parent.top
+ anchors.margins: 20
+
+ source: "../icons/qt_logo.svg"
+ sourceSize.width: 80
+ sourceSize.height: 80
+ fillMode: Image.PreserveAspectFit
+
+ smooth: true
+ antialiasing: true
+ asynchronous: true
+ }
+
+ ScrollView {
+ anchors.top: logo.bottom
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.bottom: parent.bottom
+ anchors.margins: 20
+
+ TextArea {
+ selectedTextColor: Colors.textFile
+ selectionColor: Colors.selection
+ horizontalAlignment: Text.AlignHCenter
+ textFormat: Text.RichText
+
+ text: qsTr("<h3>About Qt</h3>"
+ + "<p>This program uses Qt version %1.</p>"
+ + "<p>Qt is a C++ toolkit for cross-platform application "
+ + "development.</p>"
+ + "<p>Qt provides single-source portability across all major desktop "
+ + "operating systems. It is also available for embedded Linux and other "
+ + "embedded and mobile operating systems.</p>"
+ + "<p>Qt is available under multiple licensing options designed "
+ + "to accommodate the needs of our various users.</p>"
+ + "<p>Qt licensed under our commercial license agreement is appropriate "
+ + "for development of proprietary/commercial software where you do not "
+ + "want to share any source code with third parties or otherwise cannot "
+ + "comply with the terms of GNU (L)GPL.</p>"
+ + "<p>Qt licensed under GNU (L)GPL is appropriate for the "
+ + "development of Qt&nbsp;applications provided you can comply with the terms "
+ + "and conditions of the respective licenses.</p>"
+ + "<p>Please see <a href=\"http://%2/\">%2</a> "
+ + "for an overview of Qt licensing.</p>"
+ + "<p>Copyright (C) %3 The Qt Company Ltd and other "
+ + "contributors.</p>"
+ + "<p>Qt and the Qt logo are trademarks of The Qt Company Ltd.</p>"
+ + "<p>Qt is The Qt Company Ltd product developed as an open source "
+ + "project. See <a href=\"http://%4/\">%4</a> for more information.</p>")
+ .arg(Application.version).arg("qt.io/licensing").arg("2023").arg("qt.io")
+ color: Colors.textFile
+ wrapMode: Text.WordWrap
+ readOnly: true
+ antialiasing: true
+ background: null
+
+ onLinkActivated: function(link) {
+ Qt.openUrlExternally(link)
+ }
+ }
+ }
+
+ ResizeButton {
+ resizeWindow: root
+ }
+}
diff --git a/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/qml/ColorScheme.qml b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/qml/ColorScheme.qml
new file mode 100644
index 000000000..19c8cd905
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/qml/ColorScheme.qml
@@ -0,0 +1,118 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+import QtQuick
+import QtQuick.Layouts
+import QtQuick.Controls
+import FileSystemModule
+
+ColumnLayout {
+ id: colorScheme
+
+ spacing: 20
+
+ // Inline component that customizes TabButton
+ component MyTabButton: TabButton {
+ id: root
+
+ implicitWidth: 150
+ implicitHeight: 30
+ padding: 6
+ spacing: 6
+
+ contentItem: Text {
+ anchors.centerIn: parent
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+
+ text: root.text
+ font.bold: true
+ color: Colors.text
+ }
+
+ background: Rectangle {
+ anchors.fill: parent
+ implicitHeight: 40
+
+ color: root.checked ? Colors.active : Colors.selection
+ Rectangle {
+ height: 4
+ width: parent.width
+ color: root.checked ? Colors.color1 : Colors.selection
+ }
+ }
+ }
+
+ Item {
+ // Spacer item
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+ }
+
+ Text {
+ Layout.alignment: Qt.AlignHCenter
+
+ text: "Select a Scheme!"
+ font.pointSize: 30
+ font.bold: true
+ color: Colors.text
+ }
+
+ // Display all the color-scheme names. The model is a string-list provided
+ // by our python class.
+ TabBar {
+ id: schemeSelector
+
+ Layout.alignment: Qt.AlignHCenter
+
+ background: Rectangle {
+ color: Colors.surface1
+ }
+
+ Repeater {
+ model: Colors.getKeys()
+ MyTabButton {
+ text: modelData
+ onClicked: {
+ Colors.setScheme(modelData)
+ themePreviewContainer.background
+ = (modelData === "Solarized") ? "#777777" : "#FEFAEC"
+ }
+ }
+ }
+ }
+
+ // The current colors can be visualized using the same method as above.
+ Rectangle {
+ id: themePreviewContainer
+
+ property color background: "#FEFAEC"
+
+ Layout.alignment: Qt.AlignHCenter
+
+ width: 700
+ height: 50
+ radius: 10
+ color: background
+
+ // Display all used colors inside a row
+ Row {
+ anchors.centerIn: parent
+ spacing: 10
+
+ Repeater {
+ model: Colors.currentColors
+ Rectangle {
+ width: 35
+ height: width
+ radius: width / 2
+ color: modelData
+ }
+ }
+ }
+ }
+ Item {
+ // Spacer item
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+ }
+}
diff --git a/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/qml/Editor.qml b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/qml/Editor.qml
new file mode 100644
index 000000000..80f7c04c5
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/qml/Editor.qml
@@ -0,0 +1,160 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Layouts
+import QtQuick.Controls
+import FileSystemModule
+
+pragma ComponentBehavior: Bound
+
+// This is the text editor that displays the currently open file, including
+// their corresponding line numbers.
+Rectangle {
+ id: root
+
+ required property string currentFilePath
+ required property bool showLineNumbers
+ property alias text: textArea
+ property int currentLineNumber: -1
+ property int rowHeight: Math.ceil(fontMetrics.lineSpacing)
+
+ color: Colors.background
+
+ onWidthChanged: textArea.update()
+ onHeightChanged: textArea.update()
+
+ RowLayout {
+ anchors.fill: parent
+ // We use a flickable to synchronize the position of the editor and
+ // the line numbers. This is necessary because the line numbers can
+ // extend the available height.
+ Flickable {
+ id: lineNumbers
+
+ // Calculate the width based on the logarithmic scale.
+ Layout.preferredWidth: fontMetrics.averageCharacterWidth
+ * (Math.floor(Math.log10(textArea.lineCount)) + 1) + 10
+ Layout.fillHeight: true
+
+ interactive: false
+ contentY: editorFlickable.contentY
+ visible: textArea.text !== "" && root.showLineNumbers
+
+ Column {
+ anchors.fill: parent
+ Repeater {
+ id: repeatedLineNumbers
+
+ model: LineNumberModel {
+ lineCount: textArea.text !== "" ? textArea.lineCount : 0
+ }
+
+ delegate: Item {
+ required property int index
+
+ width: parent.width
+ height: root.rowHeight
+ Label {
+ id: numbers
+
+ text: parent.index + 1
+
+ width: parent.width
+ height: parent.height
+ horizontalAlignment: Text.AlignLeft
+ verticalAlignment: Text.AlignVCenter
+
+ color: (root.currentLineNumber === parent.index)
+ ? Colors.iconIndicator : Qt.darker(Colors.text, 2)
+ font: textArea.font
+ }
+ Rectangle {
+ id: indicator
+
+ anchors.left: numbers.right
+ width: 1
+ height: parent.height
+ color: Qt.darker(Colors.text, 3)
+ }
+ }
+ }
+ }
+ }
+
+ Flickable {
+ id: editorFlickable
+
+ property alias textArea: textArea
+
+ // We use an inline component to customize the horizontal and vertical
+ // scroll-bars. This is convenient when the component is only used in one file.
+ component MyScrollBar: ScrollBar {
+ id: scrollBar
+ background: Rectangle {
+ implicitWidth: scrollBar.interactive ? 8 : 4
+ implicitHeight: scrollBar.interactive ? 8 : 4
+
+ opacity: scrollBar.active && scrollBar.size < 1.0 ? 1.0 : 0.0
+ color: Colors.background
+ Behavior on opacity {
+ OpacityAnimator {
+ duration: 500
+ }
+ }
+ }
+ contentItem: Rectangle {
+ implicitWidth: scrollBar.interactive ? 8 : 4
+ implicitHeight: scrollBar.interactive ? 8 : 4
+ opacity: scrollBar.active && scrollBar.size < 1.0 ? 1.0 : 0.0
+ color: Colors.color1
+ Behavior on opacity {
+ OpacityAnimator {
+ duration: 1000
+ }
+ }
+ }
+ }
+
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+ ScrollBar.horizontal: MyScrollBar {}
+ ScrollBar.vertical: MyScrollBar {}
+
+ boundsBehavior: Flickable.StopAtBounds
+
+ TextArea.flickable: TextArea {
+ id: textArea
+ anchors.fill: parent
+
+ focus: false
+ topPadding: 0
+ leftPadding: 10
+
+ text: FileSystemModel.readFile(root.currentFilePath)
+ tabStopDistance: fontMetrics.averageCharacterWidth * 4
+
+ // Grab the current line number from the C++ interface.
+ onCursorPositionChanged: {
+ root.currentLineNumber = FileSystemModel.currentLineNumber(
+ textArea.textDocument, textArea.cursorPosition)
+ }
+
+ color: Colors.textFile
+ selectedTextColor: Colors.textFile
+ selectionColor: Colors.selection
+
+ textFormat: TextEdit.PlainText
+ renderType: Text.QtRendering
+ selectByMouse: true
+ antialiasing: true
+ background: null
+ }
+
+ FontMetrics {
+ id: fontMetrics
+ font: textArea.font
+ }
+ }
+ }
+}
diff --git a/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/qml/FileSystemView.qml b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/qml/FileSystemView.qml
new file mode 100644
index 000000000..db955168c
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/qml/FileSystemView.qml
@@ -0,0 +1,156 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Effects
+import QtQuick.Controls.Basic
+import FileSystemModule
+
+pragma ComponentBehavior: Bound
+
+// This is the file system view which gets populated by the C++ model.
+Rectangle {
+ id: root
+
+ signal fileClicked(string filePath)
+ property alias rootIndex: fileSystemTreeView.rootIndex
+
+ TreeView {
+ id: fileSystemTreeView
+
+ property int lastIndex: -1
+
+ anchors.fill: parent
+ model: FileSystemModel
+ rootIndex: FileSystemModel.rootIndex
+ boundsBehavior: Flickable.StopAtBounds
+ boundsMovement: Flickable.StopAtBounds
+ clip: true
+
+ Component.onCompleted: fileSystemTreeView.toggleExpanded(0)
+
+ // The delegate represents a single entry in the filesystem.
+ delegate: TreeViewDelegate {
+ id: treeDelegate
+ indentation: 8
+ implicitWidth: fileSystemTreeView.width > 0 ? fileSystemTreeView.width : 250
+ implicitHeight: 25
+
+ // Since we have the 'ComponentBehavior Bound' pragma, we need to
+ // require these properties from our model. This is a convenient way
+ // to bind the properties provided by the model's role names.
+ required property int index
+ required property url filePath
+ required property string fileName
+
+ indicator: Image {
+ id: directoryIcon
+
+ x: treeDelegate.leftMargin + (treeDelegate.depth * treeDelegate.indentation)
+ anchors.verticalCenter: parent.verticalCenter
+ source: treeDelegate.hasChildren ? (treeDelegate.expanded
+ ? "../icons/folder_open.svg" : "../icons/folder_closed.svg")
+ : "../icons/generic_file.svg"
+ sourceSize.width: 20
+ sourceSize.height: 20
+ fillMode: Image.PreserveAspectFit
+
+ smooth: true
+ antialiasing: true
+ asynchronous: true
+ }
+
+ contentItem: Text {
+ text: treeDelegate.fileName
+ color: Colors.text
+ }
+
+ background: Rectangle {
+ color: (treeDelegate.index === fileSystemTreeView.lastIndex)
+ ? Colors.selection
+ : (hoverHandler.hovered ? Colors.active : "transparent")
+ }
+
+ // We color the directory icons with this MultiEffect, where we overlay
+ // the colorization color ontop of the SVG icons.
+ MultiEffect {
+ id: iconOverlay
+
+ anchors.fill: directoryIcon
+ source: directoryIcon
+ colorization: 1.0
+ brightness: 1.0
+ colorizationColor: {
+ const isFile = treeDelegate.index === fileSystemTreeView.lastIndex
+ && !treeDelegate.hasChildren;
+ if (isFile)
+ return Qt.lighter(Colors.folder, 3)
+
+ const isExpandedFolder = treeDelegate.expanded && treeDelegate.hasChildren;
+ if (isExpandedFolder)
+ return Colors.color2
+ else
+ return Colors.folder
+ }
+ }
+
+ HoverHandler {
+ id: hoverHandler
+ }
+
+ TapHandler {
+ acceptedButtons: Qt.LeftButton | Qt.RightButton
+ onSingleTapped: (eventPoint, button) => {
+ switch (button) {
+ case Qt.LeftButton:
+ fileSystemTreeView.toggleExpanded(treeDelegate.row)
+ fileSystemTreeView.lastIndex = treeDelegate.index
+ // If this model item doesn't have children, it means it's
+ // representing a file.
+ if (!treeDelegate.hasChildren)
+ root.fileClicked(treeDelegate.filePath)
+ break;
+ case Qt.RightButton:
+ if (treeDelegate.hasChildren)
+ contextMenu.popup();
+ break;
+ }
+ }
+ }
+
+ MyMenu {
+ id: contextMenu
+ Action {
+ text: qsTr("Set as root index")
+ onTriggered: {
+ fileSystemTreeView.rootIndex = fileSystemTreeView.index(treeDelegate.row, 0)
+ }
+ }
+ Action {
+ text: qsTr("Reset root index")
+ onTriggered: fileSystemTreeView.rootIndex = undefined
+ }
+ }
+ }
+
+ // Provide our own custom ScrollIndicator for the TreeView.
+ ScrollIndicator.vertical: ScrollIndicator {
+ active: true
+ implicitWidth: 15
+
+ contentItem: Rectangle {
+ implicitWidth: 6
+ implicitHeight: 6
+
+ color: Colors.color1
+ opacity: fileSystemTreeView.movingVertically ? 0.5 : 0.0
+
+ Behavior on opacity {
+ OpacityAnimator {
+ duration: 500
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/qml/MyMenu.qml b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/qml/MyMenu.qml
new file mode 100644
index 000000000..1f1d30c56
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/qml/MyMenu.qml
@@ -0,0 +1,45 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls.Basic
+import FileSystemModule
+
+Menu {
+ id: root
+
+ delegate: MenuItem {
+ id: menuItem
+ contentItem: Item {
+ Text {
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+ anchors.leftMargin: 5
+
+ text: menuItem.text
+ color: enabled ? Colors.text : Colors.disabledText
+ }
+ Rectangle {
+ id: indicator
+
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.right: parent.right
+ width: 6
+ height: parent.height
+
+ visible: menuItem.highlighted
+ color: Colors.color2
+ }
+ }
+ background: Rectangle {
+ implicitWidth: 210
+ implicitHeight: 35
+ color: menuItem.highlighted ? Colors.active : "transparent"
+ }
+ }
+ background: Rectangle {
+ implicitWidth: 210
+ implicitHeight: 35
+ color: Colors.surface2
+ }
+}
diff --git a/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/qml/MyMenuBar.qml b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/qml/MyMenuBar.qml
new file mode 100644
index 000000000..4874a2c03
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/qml/MyMenuBar.qml
@@ -0,0 +1,177 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Layouts
+import QtQuick.Controls.Basic
+import FileSystemModule
+
+// The MenuBar also serves as a controller for our window as we don't use any decorations.
+MenuBar {
+ id: root
+
+ required property ApplicationWindow dragWindow
+ property alias infoText: windowInfo.text
+
+ // Customization of the top level menus inside the MenuBar
+ delegate: MenuBarItem {
+ id: menuBarItem
+
+ contentItem: Text {
+ horizontalAlignment: Text.AlignLeft
+ verticalAlignment: Text.AlignVCenter
+
+ text: menuBarItem.text
+ font: menuBarItem.font
+ elide: Text.ElideRight
+ color: menuBarItem.highlighted ? Colors.textFile : Colors.text
+ opacity: enabled ? 1.0 : 0.3
+ }
+
+ background: Rectangle {
+ id: background
+
+ color: menuBarItem.highlighted ? Colors.selection : "transparent"
+ Rectangle {
+ id: indicator
+
+ width: 0; height: 3
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.bottom: parent.bottom
+
+ color: Colors.color1
+ states: State {
+ name: "active"
+ when: menuBarItem.highlighted
+ PropertyChanges {
+ indicator.width: background.width - 2
+ }
+ }
+ transitions: Transition {
+ NumberAnimation {
+ properties: "width"
+ duration: 175
+ }
+ }
+ }
+ }
+ }
+ // We use the contentItem property as a place to attach our window decorations. Beneath
+ // the usual menu entries within a MenuBar, it includes a centered information text, along
+ // with the minimize, maximize, and close buttons.
+ contentItem: RowLayout {
+ id: windowBar
+
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+
+ spacing: root.spacing
+ Repeater {
+ id: menuBarItems
+
+ Layout.alignment: Qt.AlignLeft
+ model: root.contentModel
+ }
+
+ Item {
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ Text {
+ id: windowInfo
+
+ width: parent.width; height: parent.height
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ leftPadding: windowActions.width
+ color: Colors.text
+ clip: true
+ }
+ }
+
+ RowLayout {
+ id: windowActions
+
+ Layout.alignment: Qt.AlignRight
+ Layout.fillHeight: true
+
+ spacing: 0
+
+ component InteractionButton: Rectangle {
+ id: interactionButton
+
+ signal action()
+ property alias hovered: hoverHandler.hovered
+
+ Layout.fillHeight: true
+ Layout.preferredWidth: height
+
+ color: hovered ? Colors.background : "transparent"
+ HoverHandler {
+ id: hoverHandler
+ }
+ TapHandler {
+ id: tapHandler
+ onTapped: interactionButton.action()
+ }
+ }
+
+ InteractionButton {
+ id: minimize
+
+ onAction: root.dragWindow.showMinimized()
+ Rectangle {
+ anchors.centerIn: parent
+ color: parent.hovered ? Colors.iconIndicator : Colors.icon
+ height: 2
+ width: parent.height - 14
+ }
+ }
+
+ InteractionButton {
+ id: maximize
+
+ onAction: root.dragWindow.showMaximized()
+ Rectangle {
+ anchors.fill: parent
+ anchors.margins: 7
+ border.color: parent.hovered ? Colors.iconIndicator : Colors.icon
+ border.width: 2
+ color: "transparent"
+ }
+ }
+
+ InteractionButton {
+ id: close
+
+ color: hovered ? "#ec4143" : "transparent"
+ onAction: root.dragWindow.close()
+ Rectangle {
+ anchors.centerIn: parent
+ width: parent.height - 8; height: 2
+
+ rotation: 45
+ antialiasing: true
+ transformOrigin: Item.Center
+ color: parent.hovered ? Colors.iconIndicator : Colors.icon
+
+ Rectangle {
+ anchors.centerIn: parent
+ width: parent.height
+ height: parent.width
+
+ antialiasing: true
+ color: parent.color
+ }
+ }
+ }
+ }
+ }
+
+ background: Rectangle {
+ color: Colors.surface2
+ // Make the empty space drag the specified root window.
+ WindowDragHandler {
+ dragWindow: root.dragWindow
+ }
+ }
+}
diff --git a/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/qml/ResizeButton.qml b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/qml/ResizeButton.qml
new file mode 100644
index 000000000..0df65bf82
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/qml/ResizeButton.qml
@@ -0,0 +1,23 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick.Controls
+import FileSystemModule
+
+Button {
+ required property ApplicationWindow resizeWindow
+
+ icon.width: 20; icon.height: 20
+ anchors.right: parent.right
+ anchors.bottom: parent.bottom
+ rightPadding: 3
+ bottomPadding: 3
+
+ icon.source: "../icons/resize.svg"
+ icon.color: hovered ? Colors.iconIndicator : Colors.icon
+
+ background: null
+ checkable: false
+ display: AbstractButton.IconOnly
+ onPressed: resizeWindow.startSystemResize(Qt.BottomEdge | Qt.RightEdge)
+}
diff --git a/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/qml/Sidebar.qml b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/qml/Sidebar.qml
new file mode 100644
index 000000000..04880a55d
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/qml/Sidebar.qml
@@ -0,0 +1,146 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Layouts
+import QtQuick.Controls.Basic
+import FileSystemModule
+
+Rectangle {
+ id: root
+
+ property alias currentTabIndex: topBar.currentIndex
+ required property ApplicationWindow dragWindow
+ readonly property int tabBarSpacing: 10
+
+ color: Colors.surface2
+
+ component SidebarEntry: Button {
+ id: sidebarButton
+
+ Layout.alignment: Qt.AlignHCenter
+ Layout.fillWidth: true
+
+ icon.color: down || checked ? Colors.iconIndicator : Colors.icon
+ icon.width: 27
+ icon.height: 27
+
+ topPadding: 0
+ rightPadding: 0
+ bottomPadding: 0
+ leftPadding: 0
+ background: null
+
+ Rectangle {
+ id: indicator
+
+ anchors.verticalCenter: parent.verticalCenter
+ x: 2
+ width: 4
+ height: sidebarButton.icon.height * 1.2
+
+ visible: sidebarButton.checked
+ color: Colors.color1
+ }
+ }
+
+ // TabBar is designed to be horizontal, whereas we need a vertical bar.
+ // We can easily achieve that by using a Container.
+ component TabBar: Container {
+ id: tabBarComponent
+
+ Layout.fillWidth: true
+ // ButtonGroup ensures that only one button can be checked at a time.
+ ButtonGroup {
+ buttons: tabBarComponent.contentChildren
+
+ // We have to manage the currentIndex ourselves, which we do by setting it to the index
+ // of the currently checked button. We use setCurrentIndex instead of setting the
+ // currentIndex property to avoid breaking bindings. See "Managing the Current Index"
+ // in Container's documentation for more information.
+ onCheckedButtonChanged: tabBarComponent.setCurrentIndex(
+ Math.max(0, buttons.indexOf(checkedButton)))
+ }
+
+ contentItem: ColumnLayout {
+ spacing: tabBarComponent.spacing
+ Repeater {
+ model: tabBarComponent.contentModel
+ }
+ }
+ }
+
+ ColumnLayout {
+ anchors.fill: root
+ anchors.topMargin: root.tabBarSpacing
+ anchors.bottomMargin: root.tabBarSpacing
+
+ spacing: root.tabBarSpacing
+ TabBar {
+ id: topBar
+
+ spacing: root.tabBarSpacing
+ // Shows help text when clicked.
+ SidebarEntry {
+ id: infoTab
+ icon.source: "../icons/light_bulb.svg"
+ checkable: true
+ checked: true
+ }
+
+ // Shows the file system when clicked.
+ SidebarEntry {
+ id: filesystemTab
+
+ icon.source: "../icons/read.svg"
+ checkable: true
+ }
+
+ // Shows the scheme switcher
+ SidebarEntry {
+ icon.source: "../icons/leaf.svg"
+ checkable: true
+
+ Layout.alignment: Qt.AlignHCenter
+ }
+ }
+
+ // This item acts as a spacer to expand between the checkable and non-checkable buttons.
+ Item {
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+
+ // Make the empty space drag our main window.
+ WindowDragHandler {
+ dragWindow: root.dragWindow
+ }
+ }
+
+ TabBar {
+ id: bottomBar
+
+ spacing: root.tabBarSpacing
+ // Opens the Qt website in the system's web browser.
+ SidebarEntry {
+ id: qtWebsiteButton
+ icon.source: "../icons/globe.svg"
+ checkable: false
+ onClicked: Qt.openUrlExternally("https://www.qt.io/")
+ }
+
+ // Opens the About Qt Window.
+ SidebarEntry {
+ id: aboutQtButton
+
+ icon.source: "../icons/info_sign.svg"
+ checkable: false
+ onClicked: aboutQtWindow.visible = !aboutQtWindow.visible
+ }
+ }
+ }
+
+ About {
+ id: aboutQtWindow
+ visible: false
+ }
+}
diff --git a/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/qml/WindowDragHandler.qml b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/qml/WindowDragHandler.qml
new file mode 100644
index 000000000..0e140aca3
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/qml/WindowDragHandler.qml
@@ -0,0 +1,16 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Controls
+
+// Allows dragging the window when placed on an unused section of the UI.
+DragHandler {
+
+ required property ApplicationWindow dragWindow
+
+ target: null
+ onActiveChanged: {
+ if (active) dragWindow.startSystemMove()
+ }
+}
diff --git a/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/qmldir b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/qmldir
new file mode 100644
index 000000000..e9c99b07b
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/extendedexplorer/FileSystemModule/qmldir
@@ -0,0 +1,11 @@
+module FileSystemModule
+Main 1.0 Main.qml
+About 1.0 qml/About.qml
+Editor 1.0 qml/Editor.qml
+MyMenu 1.0 qml/MyMenu.qml
+Sidebar 1.0 qml/Sidebar.qml
+MyMenuBar 1.0 qml/MyMenuBar.qml
+ColorScheme 1.0 qml/ColorScheme.qml
+ResizeButton 1.0 qml/ResizeButton.qml
+FileSystemView 1.0 qml/FileSystemView.qml
+WindowDragHandler 1.0 qml/WindowDragHandler.qml
diff --git a/sources/pyside6/doc/tutorials/extendedexplorer/editormodels.py b/sources/pyside6/doc/tutorials/extendedexplorer/editormodels.py
new file mode 100644
index 000000000..688147726
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/extendedexplorer/editormodels.py
@@ -0,0 +1,116 @@
+# Copyright (C) 2024 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtWidgets import QFileSystemModel
+from PySide6.QtQuick import QQuickTextDocument
+from PySide6.QtQml import QmlElement, QmlSingleton
+from PySide6.QtCore import (Qt, QDir, QAbstractListModel, Slot, QFile, QTextStream,
+ QMimeDatabase, QFileInfo, QStandardPaths, QModelIndex,
+ Signal, Property)
+
+QML_IMPORT_NAME = "FileSystemModule"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+@QmlSingleton
+class FileSystemModel(QFileSystemModel):
+
+ rootIndexChanged = Signal()
+
+ def getDefaultRootDir():
+ return QStandardPaths.writableLocation(QStandardPaths.StandardLocation.HomeLocation)
+
+ def __init__(self, parent=None):
+ super().__init__(parent=parent)
+ self.mRootIndex = QModelIndex()
+ self.mDb = QMimeDatabase()
+ self.setFilter(QDir.Filter.AllEntries | QDir.Filter.Hidden | QDir.Filter.NoDotAndDotDot)
+ self.setInitialDirectory()
+
+ # check for the correct mime type and then read the file.
+ # returns the text file's content or an error message on failure
+ @Slot(str, result=str)
+ def readFile(self, path):
+ if path == "":
+ return ""
+
+ file = QFile(path)
+
+ mime = self.mDb.mimeTypeForFile(QFileInfo(file))
+ if ('text' in mime.comment().lower()
+ or any('text' in s.lower() for s in mime.parentMimeTypes())):
+ if file.open(QFile.OpenModeFlag.ReadOnly | QFile.OpenModeFlag.Text):
+ stream = QTextStream(file).readAll()
+ file.close()
+ return stream
+ else:
+ return self.tr("Error opening the file!")
+ return self.tr("File type not supported!")
+
+ @Slot(QQuickTextDocument, int, result=int)
+ def currentLineNumber(self, textDocument, cursorPosition):
+ td = textDocument.textDocument()
+ tb = td.findBlock(cursorPosition)
+ return tb.blockNumber()
+
+ def setInitialDirectory(self, path=getDefaultRootDir()):
+ dir = QDir(path)
+ if dir.makeAbsolute():
+ self.setRootPath(dir.path())
+ else:
+ self.setRootPath(self.getDefaultRootDir())
+ self.setRootIndex(self.index(dir.path()))
+
+ # we only need one column in this example
+ def columnCount(self, parent):
+ return 1
+
+ @Property(QModelIndex, notify=rootIndexChanged)
+ def rootIndex(self):
+ return self.mRootIndex
+
+ def setRootIndex(self, index):
+ if (index == self.mRootIndex):
+ return
+ self.mRootIndex = index
+ self.rootIndexChanged.emit()
+
+
+@QmlElement
+class LineNumberModel(QAbstractListModel):
+
+ lineCountChanged = Signal()
+
+ def __init__(self, parent=None):
+ self.mLineCount = 0
+ super().__init__(parent=parent)
+
+ @Property(int, notify=lineCountChanged)
+ def lineCount(self):
+ return self.mLineCount
+
+ @lineCount.setter
+ def lineCount(self, n):
+ if n < 0:
+ print("lineCount must be greater then zero")
+ return
+ if self.mLineCount == n:
+ return
+
+ if self.mLineCount < n:
+ self.beginInsertRows(QModelIndex(), self.mLineCount, n - 1)
+ self.mLineCount = n
+ self.endInsertRows()
+ else:
+ self.beginRemoveRows(QModelIndex(), n, self.mLineCount - 1)
+ self.mLineCount = n
+ self.endRemoveRows()
+
+ def rowCount(self, parent):
+ return self.mLineCount
+
+ def data(self, index, role):
+ if not self.checkIndex(index) or role != Qt.ItemDataRole.DisplayRole:
+ return
+ return index.row()
diff --git a/sources/pyside6/doc/tutorials/extendedexplorer/extendedexplorer.md b/sources/pyside6/doc/tutorials/extendedexplorer/extendedexplorer.md
new file mode 100644
index 000000000..0ac7bec18
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/extendedexplorer/extendedexplorer.md
@@ -0,0 +1,210 @@
+# Extending the file system explorer example
+
+This tutorial shows how to extend the
+[Filesystem Explorer Example](filesystemexplorer_example)
+by adding a simple scheme manager. This feature will allow you to switch color
+schemes during the application's runtime. The color schemes will be declared in
+JSON format and made available through a custom Python-QML plugin.
+
+![Extended Explorer GIF](resources/extendedexplorer.gif)
+
+## Defining the color schemes
+
+To define your color scheme, you can use the same color names as the original
+example, so you don't have to rename every occurrence. The original colors are
+defined in the `Colors.qml` file as follows:
+
+```{literalinclude} resources/Colors.qml
+---
+language: QML
+caption: true
+linenos: true
+lines: 7-22
+---
+```
+
+The `schemes.json` file holds the color schemes. To start implementing this, you
+can use the [Catppuccin](https://github.com/catppuccin/catppuccin) scheme.
+
+```{literalinclude} schemes.json
+---json
+caption: true
+linenos: true
+start-at: "Catppuccin"
+end-at: "},"
+---
+```
+
+In addition to the "Catppuccin" color scheme, four other color schemes got
+implemented: Nordic, One Dark, Gruvbox, and Solarized. However, feel free to get
+creative and experiment with **your** schemes.
+
+To define a new color scheme, copy the structure from above and provide your
+color values
+
+## Implement the scheme manager
+
+After defining the color schemes, you can implement the actual scheme manager.
+The manager will read the `schemes.json` file and provide QML bindings to switch
+between schemes during runtime.
+
+To implement the scheme manager, create a Python-QML plugin that exposes the
+`SchemeManager` object to QML. This object will have methods to load the color
+schemes from the `schemes.json` file and switch between them.
+
+Create a new Python file called `schememanager.py` in your project directory. In
+this file, define the **SchemeManager** class:
+
+```{literalinclude} scheme_manager.py
+---
+language: python
+caption: true
+linenos: true
+start-at: "QML_IMPORT_NAME"
+end-at: "class SchemeManager"
+---
+```
+
+To integrate smoothly into the already existing code, attach the SchemeManager
+to the same QML module that's already present with
+`QML_IMPORT_NAME = "FileSystemModule"`. Additionally, use the`@QmlNamedElement`
+decorator to smoothly transition to using the custom plugin instead of the
+`Colors.qml` file. With these changes, we can avoid editing all previous
+assignments like:
+
+```QML
+import FileSystemModule
+...
+Rectangle {
+ color: Colors.background
+}
+```
+
+The constructor reads the `schemes.json` file once upon application start and
+then calls the `setTheme` member function.
+
+```{literalinclude} scheme_manager.py
+---
+language: python
+caption: true
+linenos: true
+lines: 18-24
+---
+```
+
+By adding the `SchemeManager` as a callable QML element named **Colors** to the
+FileSystemModule, the class is now accessible in the code without the need to
+import it each time or edit previous assignments. This, in turn, will streamline
+the workflow.
+
+After defining the schemes in the JSON format and making the `SchemeManager`
+class a callable element from QML under the name **Colors**, there are two
+remaining steps to fully integrate the new scheme manager in the example.
+
+The **first step** is to create a function in the `SchemeManager` class that
+loads a color scheme from the JSON file. The **second step** is to make the
+individual colors available in QML with the *same name* as used before with the
+syntax `Colors.<previousName>` as assignable properties.
+
+
+```{literalinclude} scheme_manager.py
+---
+language: python
+caption: true
+linenos: true
+lines: 26-31
+---
+```
+
+The `setScheme` method is responsible for switching between color schemes. To
+make this method accessible in QML, use the `@Slot(str)` decorator and specify
+that it takes a string as its input parameter. In this method, we populate a
+dictionary with the color values from the JSON file.
+
+> Note: For simplicity reasons no other error checking is performed.
+> You would probably want to validate the keys contained in the json.
+
+```{literalinclude} scheme_manager.py
+---
+language: python
+caption: true
+linenos: true
+start-at: "@Property(QColor"
+end-at: "return"
+---
+```
+
+To make the color property assignable in QML, use the `@Property` decorator.
+We simply return the corresponding color value from the dictionary for each
+property. This process is repeated for all other colors that are used in the
+application.
+At this point the application should start with the colors provided by the
+active scheme in the constructor.
+
+## Add the scheme switching to QML
+
+To visualize the current scheme and enable interactive scheme switching, start
+by adding a new entry to the `Sidebar.qml` file.
+
+```{literalinclude} FileSystemModule/qml/Sidebar.qml
+---
+language: QML
+caption: true
+linenos: true
+lines: 99-105
+---
+```
+
+To update the main content area of the application to display the `ColorScheme`,
+the logic that checks the active index from the Sidebar buttons needs to be
+modified. The necessary changes will be made to the Main.qml file:
+
+```{literalinclude} FileSystemModule/Main.qml
+---
+language: QML
+caption: true
+linenos: true
+lines: 170-187
+---
+```
+
+In addition, change the behavior of the application so that there are two
+`StackLayouts`: one for the resizable navigation and one for the main content
+area where we display our color scheme switching functionality. These changes
+will also be made to the Main.qml file.
+
+```{literalinclude} FileSystemModule/Main.qml
+---
+language: QML
+caption: true
+linenos: true
+lines: 147-150
+---
+```
+
+To complete our implementation, the `ColorScheme.qml` file needs to be created.
+The implementation is straightforward and follows the same principles as in the
+original example. If anything is unclear, please refer to the documentation
+provided there. To display all colors and scheme names, use a `Repeater`. The
+model for the Repeater is provided by our `scheme_manager.py`file as a
+`QStringList`.
+
+```{literalinclude} FileSystemModule/qml/ColorScheme.qml
+---
+language: QML
+caption: true
+linenos: true
+lines: 97-111
+---
+```
+
+When examining the code in more detail, you will notice that there are different
+ways to retrieve the models. The `getKeys()` method is defined as a **Slot** and
+therefore requires parentheses when called. On the other hand, the `currentColors`
+model is defined as a **property** and is therefore assigned as a property in QML.
+The reason for this is to receive notifications when the color scheme is switched
+so that the colors displayed in the application can be updated. The keys for the
+color schemes are loaded only once at application startup and do not rely on any
+notifications.
+
+![Extended Explorer GIF](resources/colorscheme.png)
diff --git a/sources/pyside6/doc/tutorials/extendedexplorer/extendedexplorer.pyproject b/sources/pyside6/doc/tutorials/extendedexplorer/extendedexplorer.pyproject
new file mode 100644
index 000000000..77a3969ae
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/extendedexplorer/extendedexplorer.pyproject
@@ -0,0 +1,31 @@
+{
+ "files": [
+ "main.py",
+ "editormodels.py",
+ "scheme_manager.py",
+ "schemes.json",
+ "FileSystemModule/qmldir",
+ "FileSystemModule/app.qrc",
+ "FileSystemModule/icons.qrc",
+ "FileSystemModule/Main.qml",
+ "FileSystemModule/qml/About.qml",
+ "FileSystemModule/qml/ColorScheme.qml",
+ "FileSystemModule/qml/Editor.qml",
+ "FileSystemModule/qml/FileSystemView.qml",
+ "FileSystemModule/qml/MyMenu.qml",
+ "FileSystemModule/qml/MyMenuBar.qml",
+ "FileSystemModule/qml/ResizeButton.qml",
+ "FileSystemModule/qml/Sidebar.qml",
+ "FileSystemModule/qml/WindowDragHandler.qml",
+ "FileSystemModule/icons/app_icon.svg",
+ "FileSystemModule/icons/folder_closed.svg",
+ "FileSystemModule/icons/folder_open.svg",
+ "FileSystemModule/icons/generic_file.svg",
+ "FileSystemModule/icons/globe.svg",
+ "FileSystemModule/icons/info_sign.svg",
+ "FileSystemModule/icons/light_bulb.svg",
+ "FileSystemModule/icons/qt_logo.svg",
+ "FileSystemModule/icons/read.svg",
+ "FileSystemModule/icons/resize.svg"
+ ]
+}
diff --git a/sources/pyside6/doc/tutorials/extendedexplorer/main.py b/sources/pyside6/doc/tutorials/extendedexplorer/main.py
new file mode 100644
index 000000000..f1e6e7d93
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/extendedexplorer/main.py
@@ -0,0 +1,50 @@
+# Copyright (C) 2024 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""
+This example shows how to customize Qt Quick Controls by implementing a simple filesystem explorer.
+"""
+
+# Compile both resource files app.qrc and icons.qrc and include them here if you wish
+# to load them from the resource system. Currently, all resources are loaded locally
+# import FileSystemModule.rc_icons
+# import FileSystemModule.rc_app
+
+from scheme_manager import SchemeManager
+from editormodels import FileSystemModel
+import PySide6
+from PySide6.QtGui import QGuiApplication, QIcon
+from PySide6.QtQml import QQmlApplicationEngine
+from PySide6.QtCore import QCommandLineParser
+
+import sys
+
+if __name__ == '__main__':
+ app = QGuiApplication(sys.argv)
+ app.setOrganizationName("QtProject")
+ app.setApplicationName("File System Explorer")
+ app.setApplicationVersion(PySide6.__version__)
+ app.setWindowIcon(QIcon("FileSystemModule/icons/app_icon.svg"))
+
+ parser = QCommandLineParser()
+ parser.setApplicationDescription("Qt Filesystemexplorer Example")
+ parser.addHelpOption()
+ parser.addVersionOption()
+ parser.addPositionalArgument("", "Initial directory", "[path]")
+ parser.process(app)
+ args = parser.positionalArguments()
+
+ engine = QQmlApplicationEngine()
+ # Include the path of this file to search for the 'qmldir' module
+ engine.addImportPath(sys.path[0])
+
+ engine.loadFromModule("FileSystemModule", "Main")
+
+ if not engine.rootObjects():
+ sys.exit(-1)
+
+ if (len(args) == 1):
+ fsm = engine.singletonInstance("FileSystemModule", "FileSystemModel")
+ fsm.setInitialDirectory(args[0])
+
+ sys.exit(app.exec())
diff --git a/sources/pyside6/doc/tutorials/extendedexplorer/resources/Colors.qml b/sources/pyside6/doc/tutorials/extendedexplorer/resources/Colors.qml
new file mode 100644
index 000000000..280f89286
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/extendedexplorer/resources/Colors.qml
@@ -0,0 +1,22 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+pragma Singleton
+import QtQuick
+
+QtObject {
+ readonly property color background: "#23272E"
+ readonly property color surface1: "#1E2227"
+ readonly property color surface2: "#090A0C"
+ readonly property color text: "#ABB2BF"
+ readonly property color textFile: "#C5CAD3"
+ readonly property color disabledText: "#454D5F"
+ readonly property color selection: "#2C313A"
+ readonly property color active: "#23272E"
+ readonly property color inactive: "#3E4452"
+ readonly property color folder: "#3D4451"
+ readonly property color icon: "#3D4451"
+ readonly property color iconIndicator: "#E5C07B"
+ readonly property color color1: "#E06B74"
+ readonly property color color2: "#62AEEF"
+}
diff --git a/sources/pyside6/doc/tutorials/extendedexplorer/resources/colorscheme.png b/sources/pyside6/doc/tutorials/extendedexplorer/resources/colorscheme.png
new file mode 100644
index 000000000..410538ca3
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/extendedexplorer/resources/colorscheme.png
Binary files differ
diff --git a/sources/pyside6/doc/tutorials/extendedexplorer/resources/extendedexplorer.gif b/sources/pyside6/doc/tutorials/extendedexplorer/resources/extendedexplorer.gif
new file mode 100644
index 000000000..9e59f64aa
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/extendedexplorer/resources/extendedexplorer.gif
Binary files differ
diff --git a/sources/pyside6/doc/tutorials/extendedexplorer/resources/extendedexplorer.webp b/sources/pyside6/doc/tutorials/extendedexplorer/resources/extendedexplorer.webp
new file mode 100644
index 000000000..79a14f34c
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/extendedexplorer/resources/extendedexplorer.webp
Binary files differ
diff --git a/sources/pyside6/doc/tutorials/extendedexplorer/scheme_manager.py b/sources/pyside6/doc/tutorials/extendedexplorer/scheme_manager.py
new file mode 100644
index 000000000..8d732093c
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/extendedexplorer/scheme_manager.py
@@ -0,0 +1,97 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import json
+from pathlib import Path
+from PySide6.QtCore import Slot, QObject, Property, Signal
+from PySide6.QtGui import QColor
+from PySide6.QtQml import QmlNamedElement, QmlSingleton
+
+QML_IMPORT_NAME = "FileSystemModule"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlNamedElement("Colors")
+@QmlSingleton
+class SchemeManager(QObject):
+
+ schemeChanged = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent=parent)
+ with open(Path(__file__).parent / "schemes.json", 'r') as f:
+ self.m_schemes = json.load(f)
+ self.m_activeScheme = {}
+ self.m_activeSchemeName = "Catppuccin"
+ self.setScheme(self.m_activeSchemeName)
+
+ @Slot(str)
+ def setScheme(self, theme):
+ for k, v in self.m_schemes[theme].items():
+ self.m_activeScheme[k] = QColor.fromString(v)
+ self.m_activeSchemeName = theme
+ self.schemeChanged.emit()
+
+ @Slot(result='QStringList')
+ def getKeys(self):
+ return self.m_schemes.keys()
+
+ @Property('QStringList', notify=schemeChanged)
+ def currentColors(self):
+ return self.m_schemes[self.m_activeSchemeName].values()
+
+ @Property(QColor, notify=schemeChanged)
+ def background(self):
+ return self.m_activeScheme["background"]
+
+ @Property(QColor, notify=schemeChanged)
+ def surface1(self):
+ return self.m_activeScheme["surface1"]
+
+ @Property(QColor, notify=schemeChanged)
+ def surface2(self):
+ return self.m_activeScheme["surface2"]
+
+ @Property(QColor, notify=schemeChanged)
+ def text(self):
+ return self.m_activeScheme["text"]
+
+ @Property(QColor, notify=schemeChanged)
+ def textFile(self):
+ return self.m_activeScheme["textFile"]
+
+ @Property(QColor, notify=schemeChanged)
+ def disabledText(self):
+ return self.m_activeScheme["disabledText"]
+
+ @Property(QColor, notify=schemeChanged)
+ def selection(self):
+ return self.m_activeScheme["selection"]
+
+ @Property(QColor, notify=schemeChanged)
+ def active(self):
+ return self.m_activeScheme["active"]
+
+ @Property(QColor, notify=schemeChanged)
+ def inactive(self):
+ return self.m_activeScheme["inactive"]
+
+ @Property(QColor, notify=schemeChanged)
+ def folder(self):
+ return self.m_activeScheme["folder"]
+
+ @Property(QColor, notify=schemeChanged)
+ def icon(self):
+ return self.m_activeScheme["icon"]
+
+ @Property(QColor, notify=schemeChanged)
+ def iconIndicator(self):
+ return self.m_activeScheme["iconIndicator"]
+
+ @Property(QColor, notify=schemeChanged)
+ def color1(self):
+ return self.m_activeScheme["color1"]
+
+ @Property(QColor, notify=schemeChanged)
+ def color2(self):
+ return self.m_activeScheme["color2"]
diff --git a/sources/pyside6/doc/tutorials/extendedexplorer/schemes.json b/sources/pyside6/doc/tutorials/extendedexplorer/schemes.json
new file mode 100644
index 000000000..e4f2d8c81
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/extendedexplorer/schemes.json
@@ -0,0 +1,82 @@
+{
+ "Catppuccin": {
+ "background": "#1E1E2E",
+ "surface1": "#181825",
+ "surface2": "#11111B",
+ "text": "#CDD6F4",
+ "textFile": "#CDD6F4",
+ "disabledText": "#363659",
+ "selection": "#45475A",
+ "active": "#1E1E2E",
+ "inactive": "#6C7086",
+ "folder": "#6C7086",
+ "icon": "#6C7086",
+ "iconIndicator": "#FFCC66",
+ "color1": "#CBA6F7",
+ "color2": "#89DCEB"
+ },
+ "Nordic": {
+ "background": "#2E3440",
+ "surface1": "#2B2F3A",
+ "surface2": "#262A35",
+ "text": "#D8DEE9",
+ "textFile": "#D8DEE9",
+ "disabledText": "#4D556A",
+ "selection": "#495468",
+ "active": "#2E3440",
+ "inactive": "#555B6A",
+ "folder": "#495468",
+ "icon": "#495468",
+ "iconIndicator": "#FFC40D",
+ "color1": "#81B6C6",
+ "color2": "#5E81AC"
+ },
+ "One Dark": {
+ "background": "#23272E",
+ "surface1": "#1E2227",
+ "surface2": "#090A0C",
+ "text": "#ABB2BF",
+ "textFile": "#C5CAD3",
+ "disabledText": "#2B303B",
+ "selection": "#2C313A",
+ "active": "#23272E",
+ "inactive": "#3E4452",
+ "folder": "#3D4451",
+ "icon": "#3D4451",
+ "iconIndicator": "#E5C07B",
+ "color1": "#E06B74",
+ "color2": "#62AEEF"
+ },
+ "Gruvbox": {
+ "background": "#292828",
+ "surface1": "#171819",
+ "surface2": "#090A0C",
+ "text": "#D4BE98",
+ "textFile": "#E1D2B7",
+ "disabledText": "#2C313A",
+ "selection": "#333130",
+ "active": "#292828",
+ "inactive": "#383737",
+ "folder": "#383737",
+ "icon": "#383737",
+ "iconIndicator": "#FFCC66",
+ "color1": "#A7B464",
+ "color2": "#D3869B"
+ },
+ "Solarized": {
+ "background": "#FDF6E3",
+ "surface1": "#EEE8D5",
+ "surface2": "#DDD6C1",
+ "text": "#6D6D6D",
+ "textFile": "#333333",
+ "disabledText": "#ADADAD",
+ "selection": "#D1CBB8",
+ "active": "#FDF6E3",
+ "inactive": "#8C8364",
+ "folder": "#5F5944",
+ "icon": "#5F5944",
+ "iconIndicator": "#002B36",
+ "color1": "#B58900",
+ "color2": "#6B9E75"
+ }
+}
diff --git a/sources/pyside6/doc/tutorials/index.rst b/sources/pyside6/doc/tutorials/index.rst
index 82408ce93..8a69a3c6f 100644
--- a/sources/pyside6/doc/tutorials/index.rst
+++ b/sources/pyside6/doc/tutorials/index.rst
@@ -1,5 +1,5 @@
-|project| Tutorials
-====================
+Tutorials
+=========
A collection of tutorials with walkthrough guides are
provided with |project| to help new users get started.
@@ -8,64 +8,6 @@ Some of these documents were ported from C++ to Python and cover a range of
topics, from basic use of widgets to step-by-step tutorials that show how an
application is put together.
-Before you start
-----------------
-
-Here you can find a couple of common questions and situations that will
-clarify questions before you start programming.
-If you have not installed PySide yet, remember to check the
-`Quick Start <../quickstart.html>`_ section.
-
-.. panels::
- :container: container-lg pb-1
- :column: col-lg-4 col-md-4 col-sm-6 col-xs-12 p-2
-
- .. link-button:: pretutorial/whatisqt
- :type: ref
- :text: Qt, QML, Widgets... What is the difference?
- :classes: btn-link btn-block stretched-link
- ---
-
- .. link-button:: pretutorial/whichide
- :type: ref
- :text: Which IDEs are compatible with PySide?
- :classes: btn-link btn-block stretched-link
- ---
-
- .. link-button:: pretutorial/whatisshiboken
- :type: ref
- :text: Binding Generation: What is Shiboken?
- :classes: btn-link btn-block stretched-link
- ---
-
- .. link-button:: pretutorial/typesoffiles
- :type: ref
- :text: File Types in PySide
- :classes: btn-link btn-block stretched-link
- ---
-
- .. link-button:: pretutorial/distribution
- :type: ref
- :text: Distributing your application to other systems and platforms
- :classes: btn-link btn-block stretched-link
-
- ---
-
- .. link-button:: pretutorial/whyqtforpython
- :type: ref
- :text: As a Qt/C++ developer, why should I consider Qt for Python?
- :classes: btn-link btn-block stretched-link
-
-.. toctree::
- :hidden:
-
- pretutorial/whatisqt.rst
- pretutorial/whichide.rst
- pretutorial/whatisshiboken.rst
- pretutorial/typesoffiles.rst
- pretutorial/distribution.rst
- pretutorial/whyqtforpython.rst
-
Qt Widgets: Basic tutorials
---------------------------
@@ -73,84 +15,85 @@ If you want to see the available widgets in action, you can check the
`Qt Widget Gallery <https://doc.qt.io/qt-6/gallery.html>`_ to learn their
names and how they look like.
-.. panels::
- :container: container-lg pb-1
- :column: col-lg-4 col-md-4 col-sm-6 col-xs-12 p-2
- :img-top-cls: d-flex align-self-center
-
- :img-top: basictutorial/widgets.png
-
- .. link-button:: basictutorial/widgets
- :type: ref
- :text: Your First QtWidgets Application
- :classes: btn-link btn-block stretched-link
- ---
- :img-top: basictutorial/clickablebutton.png
-
- .. link-button:: basictutorial/clickablebutton
- :type: ref
- :text: Using a Simple Button
- :classes: btn-link btn-block stretched-link
- ---
- :img-top: basictutorial/dialog.png
-
- .. link-button:: basictutorial/dialog
- :type: ref
- :text: Creating a Dialog Application
- :classes: btn-link btn-block stretched-link
- ---
- :img-top: basictutorial/tablewidget.png
-
- .. link-button:: basictutorial/tablewidget
- :type: ref
- :text: Displaying Data Using a Table Widget
- :classes: btn-link btn-block stretched-link
-
- ---
- :img-top: basictutorial/treewidget.png
-
- .. link-button:: basictutorial/treewidget
- :type: ref
- :text: Displaying Data Using a Tree Widget
- :classes: btn-link btn-block stretched-link
-
- ---
- :img-top: basictutorial/uifiles.png
-
- .. link-button:: basictutorial/uifiles
- :type: ref
- :text: Using .ui files from Designer or QtCreator with QUiLoader and pyside6-uic
- :classes: btn-link btn-block stretched-link
-
- ---
- :img-top: basictutorial/player-new.png
-
- .. link-button:: basictutorial/qrcfiles
- :type: ref
- :text: Using .qrc Files (pyside6-rcc)
- :classes: btn-link btn-block stretched-link
-
- ---
- :img-top: basictutorial/translations.png
-
- .. link-button:: basictutorial/translations
- :type: ref
- :text: Translating Applications
- :classes: btn-link btn-block stretched-link
-
- ---
- :img-top: basictutorial/widgetstyling-yes.png
-
- .. link-button:: basictutorial/widgetstyling
- :type: ref
- :text: Styling the Widgets Application
- :classes: btn-link btn-block stretched-link
+.. grid:: 1 3 3 3
+ :gutter: 2
+
+ .. grid-item-card:: Basic Widget
+ :class-item: cover-img
+ :link: basictutorial/widgets.html
+ :img-top: basictutorial/widgets.png
+
+ Your first QtWidgets Application
+
+ .. grid-item-card:: Basic Button
+ :class-item: cover-img
+ :link: basictutorial/clickablebutton.html
+ :img-top: basictutorial/clickablebutton.png
+
+ Using a Simple Button
+
+ .. grid-item-card:: Basic Connections
+ :class-item: cover-img
+ :link: basictutorial/signals_and_slots.html
+ :img-top: basictutorial/signals_slots.png
+
+ Signals and Slots
+
+ .. grid-item-card:: Basic Dialog
+ :class-item: cover-img
+ :link: basictutorial/dialog.html
+ :img-top: basictutorial/dialog.png
+
+ Creating a Dialog Application
+
+ .. grid-item-card:: Basic Table
+ :class-item: cover-img
+ :link: basictutorial/tablewidget.html
+ :img-top: basictutorial/tablewidget.png
+
+ Displaying Data Using a Table Widget
+
+ .. grid-item-card:: Basic Tree
+ :class-item: cover-img
+ :link: basictutorial/treewidget.html
+ :img-top: basictutorial/treewidget.png
+
+ Displaying Data Using a Tree Widget
+
+ .. grid-item-card:: Basic ``ui`` files
+ :class-item: cover-img
+ :link: basictutorial/uifiles.html
+ :img-top: basictutorial/uifiles.png
+
+ Using .ui files from Designer or QtCreator with QUiLoader and pyside6-uic
+
+ .. grid-item-card:: Basic ``qrc`` files
+ :class-item: cover-img
+ :link: basictutorial/qrcfiles.html
+ :img-top: basictutorial/player-new.png
+
+ Using .qrc Files (pyside6-rcc)
+
+ .. grid-item-card:: Basic Translations
+ :class-item: cover-img
+ :link: basictutorial/translations.html
+ :img-top: basictutorial/translations.png
+
+ Translating Applications
+
+ .. grid-item-card:: Basic Widget Style
+ :class-item: cover-img
+ :link: basictutorial/widgetstyling.html
+ :img-top: basictutorial/widgetstyling-yes.png
+
+ Styling the Widgets Application
.. toctree::
:hidden:
basictutorial/widgets.rst
basictutorial/clickablebutton.rst
+ basictutorial/signals_and_slots.rst
basictutorial/dialog.rst
basictutorial/tablewidget.rst
basictutorial/treewidget.rst
@@ -160,22 +103,91 @@ names and how they look like.
basictutorial/widgetstyling.rst
-
Quick/QML: Basic tutorials
--------------------------
+.. grid:: 1 3 3 3
+ :gutter: 2
+
+ .. grid-item-card:: Basic Quick
+ :class-item: cover-img
+ :link: basictutorial/qml.html
+ :img-top: basictutorial/greenapplication.png
+
+ Your First QtQuick/QML Application
+
+ .. grid-item-card:: Basic QML Integration
+ :class-item: cover-img
+ :link: qmlintegration/qmlintegration.html
+ :img-top: qmlintegration/textproperties_material.png
+
+ Python-QML integration
+
+ .. grid-item-card:: QML Application
+ :class-item: cover-img
+ :link: qmlapp/qmlapplication.html
+ :img-top: qmlapp/qmlapplication.png
+
+ QML Application Tutorial (QtCreator)
+
+ .. grid-item-card:: Advanced QML Integration
+ :class-item: cover-img
+ :link: qmlsqlintegration/qmlsqlintegration.html
+ :img-top: qmlsqlintegration/example_list_view.png
+
+ QML, SQL and PySide Integration Tutorial
+
+ .. grid-item-card:: Extended Explorer
+ :class-item: cover-img
+ :link: extendedexplorer/extendedexplorer.html
+ :img-top: extendedexplorer/resources/extendedexplorer.webp
+
+ Extending an Qt Quick Controls example
+
.. toctree::
:maxdepth: 1
+ :hidden:
basictutorial/qml.rst
qmlintegration/qmlintegration.rst
qmlapp/qmlapplication.rst
qmlsqlintegration/qmlsqlintegration.rst
-..
+ extendedexplorer/extendedexplorer.md
+
+General Applications
+--------------------
+
+.. grid:: 1 3 3 3
+ :gutter: 2
+
+ .. grid-item-card:: Data Visualization
+ :class-item: cover-img
+ :link: datavisualize/index.html
+ :img-top: datavisualize/images/datavisualization_app.png
+
+ Data Visualization Tool
+
+ .. grid-item-card:: Expenses Application
+ :class-item: cover-img
+ :link: expenses/expenses.html
+ :img-top: expenses/expenses_tool.png
+
+ Expenses administration tool
+
+.. toctree::
+ :hidden:
+
datavisualize/index.rst
-..
expenses/expenses.rst
+Qt Overviews
+------------
+
+.. toctree::
+ :maxdepth: 1
+
+ ../overviews/overviews-main.rst
+
C++ and Python
--------------
@@ -183,3 +195,12 @@ C++ and Python
:maxdepth: 1
portingguide/index.rst
+
+Debug a PySide6 Application
+---------------------------
+.. toctree::
+ :maxdepth: 1
+
+ debugging/mixed_debugging.rst
+ debugging/qml_debugging.rst
+
diff --git a/sources/pyside6/doc/tutorials/modelviewprogramming/qlistview-dnd.py b/sources/pyside6/doc/tutorials/modelviewprogramming/qlistview-dnd.py
new file mode 100644
index 000000000..3a37cc0f3
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/modelviewprogramming/qlistview-dnd.py
@@ -0,0 +1,137 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from PySide6.QtWidgets import (QAbstractItemView, QApplication, QMainWindow,
+ QListView)
+from PySide6.QtCore import (QByteArray, QDataStream, QIODevice, QMimeData,
+ QModelIndex, QStringListModel, Qt)
+
+
+class DragDropListModel(QStringListModel):
+ """A simple model that uses a QStringList as its data source."""
+
+ def __init__(self, strings, parent=None):
+ super().__init__(strings, parent)
+
+#! [0]
+
+ def canDropMimeData(self, data, action, row, column, parent):
+ if not data.hasFormat("application/vnd.text.list"):
+ return False
+
+ if column > 0:
+ return False
+
+ return True
+#! [0]
+#! [1]
+ def dropMimeData(self, data, action, row, column, parent):
+ if not self.canDropMimeData(data, action, row, column, parent):
+ return False
+
+ if action == Qt.IgnoreAction:
+ return True
+#! [1]
+
+#! [2]
+ begin_row = 0
+
+ if row != -1:
+ begin_row = row
+#! [2] #! [3]
+ elif parent.isValid():
+ begin_row = parent.row()
+#! [3] #! [4]
+ else:
+ begin_row = self.rowCount(QModelIndex())
+#! [4]
+
+#! [5]
+ encoded_data = data.data("application/vnd.text.list")
+ stream = QDataStream(encoded_data, QIODevice.ReadOnly)
+ new_items = []
+ while not stream.atEnd():
+ new_items.append(stream.readQString())
+#! [5]
+
+#! [6]
+ self.insertRows(begin_row, len(new_items), QModelIndex())
+ for text in new_items:
+ idx = self.index(begin_row, 0, QModelIndex())
+ self.setData(idx, text)
+ begin_row += 1
+
+ return True
+#! [6]
+
+#! [7]
+ def flags(self, index):
+ default_flags = super().flags(index)
+ if index.isValid():
+ return Qt.ItemIsDragEnabled | Qt.ItemIsDropEnabled | default_flags
+ return Qt.ItemIsDropEnabled | default_flags
+#! [7]
+
+#! [8]
+ def mimeData(self, indexes):
+ mime_data = QMimeData()
+ encoded_data = QByteArray()
+ stream = QDataStream(encoded_data, QIODevice.WriteOnly)
+ for index in indexes:
+ if index.isValid():
+ text = self.data(index, Qt.DisplayRole)
+ stream.writeQString(text)
+
+ mime_data.setData("application/vnd.text.list", encoded_data)
+ return mime_data
+#! [8]
+
+#! [9]
+ def mimeTypes(self):
+ return ["application/vnd.text.list"]
+#! [9]
+
+#! [10]
+ def supportedDropActions(self):
+ return Qt.CopyAction | Qt.MoveAction
+#! [10]
+
+
+class MainWindow(QMainWindow):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+ file_menu = self.menuBar().addMenu("&File")
+ quit_action = file_menu.addAction("E&xit")
+ quit_action.setShortcut("Ctrl+Q")
+
+#! [mainwindow0]
+ self._list_view = QListView(self)
+ self._list_view.setSelectionMode(QAbstractItemView.ExtendedSelection)
+ self._list_view.setDragEnabled(True)
+ self._list_view.setAcceptDrops(True)
+ self._list_view.setDropIndicatorShown(True)
+#! [mainwindow0]
+
+ quit_action.triggered.connect(self.close)
+
+ self.setup_list_items()
+
+ self.setCentralWidget(self._list_view)
+ self.setWindowTitle("List View")
+
+ def setup_list_items(self):
+ items = ["Oak", "Fir", "Pine", "Birch", "Hazel", "Redwood", "Sycamore",
+ "Chestnut", "Mahogany"]
+ model = DragDropListModel(items, self)
+ self._list_view.setModel(model)
+
+
+if __name__ == '__main__':
+ app = QApplication(sys.argv)
+ window = MainWindow()
+ window.show()
+ sys.exit(app.exec())
diff --git a/sources/pyside6/doc/tutorials/modelviewprogramming/simplemodel-use.py b/sources/pyside6/doc/tutorials/modelviewprogramming/simplemodel-use.py
new file mode 100644
index 000000000..1bacfd829
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/modelviewprogramming/simplemodel-use.py
@@ -0,0 +1,44 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from PySide6.QtWidgets import (QApplication, QFileSystemModel, QLabel,
+ QVBoxLayout, QWidget)
+from PySide6.QtGui import QPalette
+from PySide6.QtCore import QDir, Qt
+
+
+if __name__ == '__main__':
+ app = QApplication(sys.argv)
+
+ window = QWidget()
+ layout = QVBoxLayout(window)
+ title = QLabel("Some items from the directory model", window)
+ title.setBackgroundRole(QPalette.Base)
+ title.setMargin(8)
+ layout.addWidget(title)
+
+#! [0]
+ model = QFileSystemModel()
+ model.setRootPath(QDir.currentPath())
+
+ def on_directory_loaded(directory):
+ parent_index = model.index(directory)
+ num_rows = model.rowCount(parent_index)
+#! [1]
+ for row in range(num_rows):
+ index = model.index(row, 0, parent_index)
+#! [1]
+#! [2]
+ text = model.data(index, Qt.DisplayRole)
+#! [2]
+ label = QLabel(text, window)
+ layout.addWidget(label)
+
+ model.directoryLoaded.connect(on_directory_loaded)
+#! [0]
+
+ window.setWindowTitle("A simple model example")
+ window.show()
+ sys.exit(app.exec())
diff --git a/sources/pyside6/doc/tutorials/modelviewprogramming/stringlistmodel.py b/sources/pyside6/doc/tutorials/modelviewprogramming/stringlistmodel.py
new file mode 100644
index 000000000..2c8493aa9
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/modelviewprogramming/stringlistmodel.py
@@ -0,0 +1,124 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from PySide6.QtWidgets import (QApplication, QListView)
+from PySide6.QtCore import QAbstractListModel, QStringListModel, QModelIndex, Qt
+
+
+#! [0]
+class StringListModel(QAbstractListModel):
+ def __init__(self, strings, parent=None):
+ super().__init__(parent)
+ self._strings = strings
+
+#! [0]
+ def rowCount(self, parent=QModelIndex()):
+ """Returns the number of items in the string list as the number of rows
+ in the model."""
+ return len(self._strings)
+#! [0]
+
+#! [1]
+ def data(self, index, role):
+ """Returns an appropriate value for the requested data.
+ If the view requests an invalid index, an invalid variant is returned.
+ Any valid index that corresponds to a string in the list causes that
+ string to be returned."""
+ row = index.row()
+ if not index.isValid() or row >= len(self._strings):
+ return None
+ if role != Qt.DisplayRole and role != Qt.EditRole:
+ return None
+ return self._strings[row]
+#! [1]
+
+#! [2]
+ def headerData(self, section, orientation, role=Qt.DisplayRole):
+ """Returns the appropriate header string depending on the orientation of
+ the header and the section. If anything other than the display role is
+ requested, we return an invalid variant."""
+ if role != Qt.DisplayRole:
+ return None
+ if orientation == Qt.Horizontal:
+ return f"Column {section}"
+ return f"Row {section}"
+#! [2]
+
+#! [3]
+ def flags(self, index):
+ """Returns an appropriate value for the item's flags. Valid items are
+ enabled, selectable, and editable."""
+
+ if not index.isValid():
+ return Qt.ItemIsEnabled
+ return super().flags(index) | Qt.ItemIsEditable
+#! [3]
+
+ #! [4]
+ def setData(self, index, value, role=Qt.EditRole):
+ """Changes an item in the string list, but only if the following conditions
+ are met:
+
+ # The index supplied is valid.
+ # The index corresponds to an item to be shown in a view.
+ # The role associated with editing text is specified.
+
+ The dataChanged() signal is emitted if the item is changed."""
+
+ if index.isValid() and role == Qt.EditRole:
+ self._strings[index.row()] = value
+ self.dataChanged.emit(index, index, {role})
+ return True
+#! [4] #! [5]
+ return False
+#! [5]
+
+#! [6]
+ def insertRows(self, position, rows, parent):
+ """Inserts a number of rows into the model at the specified position."""
+ self.beginInsertRows(QModelIndex(), position, position + rows - 1)
+ for row in range(rows):
+ self._strings.insert(position, "")
+ self.endInsertRows()
+ return True
+#! [6] #! [7]
+#! [7]
+
+#! [8]
+ def removeRows(self, position, rows, parent):
+ """Removes a number of rows from the model at the specified position."""
+ self.beginRemoveRows(QModelIndex(), position, position + rows - 1)
+ for row in range(rows):
+ del self._strings[position]
+ self.endRemoveRows()
+ return True
+#! [8] #! [9]
+#! [9]
+
+
+#! [main0]
+if __name__ == '__main__':
+ app = QApplication(sys.argv)
+
+#! [main1]
+ numbers = ["One", "Two", "Three", "Four", "Five"]
+ model = StringListModel(numbers)
+#! [main0] #! [main1] #! [main2] #! [main3]
+ view = QListView()
+#! [main2]
+ view.setWindowTitle("View onto a string list model")
+#! [main4]
+ view.setModel(model)
+#! [main3] #! [main4]
+
+ model.insertRows(5, 7, QModelIndex())
+ for row in range(5, 12):
+ index = model.index(row, 0, QModelIndex())
+ model.setData(index, f"{row+1}")
+
+#! [main5]
+ view.show()
+ sys.exit(app.exec())
+#! [main5]
diff --git a/sources/pyside6/doc/tutorials/portingguide/chapter1/chapter1.rst b/sources/pyside6/doc/tutorials/portingguide/chapter1/chapter1.rst
index 20b11065a..87fb97660 100644
--- a/sources/pyside6/doc/tutorials/portingguide/chapter1/chapter1.rst
+++ b/sources/pyside6/doc/tutorials/portingguide/chapter1/chapter1.rst
@@ -17,7 +17,7 @@ the beginning of ``createdb.py``:
.. literalinclude:: createdb.py
:language: python
:linenos:
- :lines: 40-44
+ :lines: 3-5
The ``initDb`` function does most of the work needed to
set up the database, but it depends on the ``addAuthor``,
@@ -26,40 +26,40 @@ the tables. Port these helper functions first. Here is how
the C++ and Python versions of these functions look like:
C++ version
-------------
+-----------
.. literalinclude:: initdb.h
:language: c++
:linenos:
- :lines: 55-81
+ :lines: 9-33
Python version
----------------
+--------------
.. literalinclude:: createdb.py
:language: python
:linenos:
- :lines: 44-65
+ :lines: 7-28
Now that the helper functions are in place, port ``initDb``.
Here is how the C++ and Python versions of this function
looks like:
-C++ version
-------------
+C++ version (initDb)
+--------------------
.. literalinclude:: initdb.h
:language: c++
:linenos:
- :lines: 81-159
+ :lines: 35-112
-Python version
----------------
+Python version (init_db)
+------------------------
.. literalinclude:: createdb.py
:language: python
:linenos:
- :lines: 65-
+ :lines: 28-
.. note:: The Python version uses the ``check`` function to
execute the SQL statements instead of the ``if...else``
@@ -73,11 +73,11 @@ test it, add the following code to ``main.py`` and run it:
.. literalinclude:: main.py
:language: python
:linenos:
- :lines: 40-
+ :lines: 3-
Use the following command from the prompt to run:
-.. code-block::
+.. code-block:: bash
python main.py
diff --git a/sources/pyside6/doc/tutorials/portingguide/chapter1/createdb.py b/sources/pyside6/doc/tutorials/portingguide/chapter1/createdb.py
index c3f27162d..da7d201a8 100644
--- a/sources/pyside6/doc/tutorials/portingguide/chapter1/createdb.py
+++ b/sources/pyside6/doc/tutorials/portingguide/chapter1/createdb.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from PySide6.QtSql import QSqlDatabase, QSqlError, QSqlQuery
from datetime import date
diff --git a/sources/pyside6/doc/tutorials/portingguide/chapter1/initdb.h b/sources/pyside6/doc/tutorials/portingguide/chapter1/initdb.h
index 773e3fb74..5596defc0 100644
--- a/sources/pyside6/doc/tutorials/portingguide/chapter1/initdb.h
+++ b/sources/pyside6/doc/tutorials/portingguide/chapter1/initdb.h
@@ -1,52 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the demonstration applications of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
#ifndef INITDB_H
#define INITDB_H
diff --git a/sources/pyside6/doc/tutorials/portingguide/chapter1/main.py b/sources/pyside6/doc/tutorials/portingguide/chapter1/main.py
index c60ff6839..c1293bcbd 100644
--- a/sources/pyside6/doc/tutorials/portingguide/chapter1/main.py
+++ b/sources/pyside6/doc/tutorials/portingguide/chapter1/main.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
diff --git a/sources/pyside6/doc/tutorials/portingguide/chapter2/bookdelegate.cpp b/sources/pyside6/doc/tutorials/portingguide/chapter2/bookdelegate.cpp
index 4115f80cf..3d246667b 100644
--- a/sources/pyside6/doc/tutorials/portingguide/chapter2/bookdelegate.cpp
+++ b/sources/pyside6/doc/tutorials/portingguide/chapter2/bookdelegate.cpp
@@ -1,52 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the demonstration applications of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
#include "bookdelegate.h"
diff --git a/sources/pyside6/doc/tutorials/portingguide/chapter2/bookdelegate.h b/sources/pyside6/doc/tutorials/portingguide/chapter2/bookdelegate.h
index f1b432699..d0b157b39 100644
--- a/sources/pyside6/doc/tutorials/portingguide/chapter2/bookdelegate.h
+++ b/sources/pyside6/doc/tutorials/portingguide/chapter2/bookdelegate.h
@@ -1,52 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the demonstration applications of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
#ifndef BOOKDELEGATE_H
#define BOOKDELEGATE_H
diff --git a/sources/pyside6/doc/tutorials/portingguide/chapter2/bookdelegate.py b/sources/pyside6/doc/tutorials/portingguide/chapter2/bookdelegate.py
index 31acc901b..2c2b80157 100644
--- a/sources/pyside6/doc/tutorials/portingguide/chapter2/bookdelegate.py
+++ b/sources/pyside6/doc/tutorials/portingguide/chapter2/bookdelegate.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import copy
import os
diff --git a/sources/pyside6/doc/tutorials/portingguide/chapter2/chapter2.rst b/sources/pyside6/doc/tutorials/portingguide/chapter2/chapter2.rst
index a574218fd..83ba3357b 100644
--- a/sources/pyside6/doc/tutorials/portingguide/chapter2/chapter2.rst
+++ b/sources/pyside6/doc/tutorials/portingguide/chapter2/chapter2.rst
@@ -12,7 +12,7 @@ editor for foreign key fields. To begin with, create
.. literalinclude:: bookdelegate.py
:language: python
:linenos:
- :lines: 40-47
+ :lines: 3-10
After the necessary ``import`` statements, port the
constructor code for the ``BookDelegate`` class. Both
@@ -26,7 +26,7 @@ C++ version
.. literalinclude:: bookdelegate.cpp
:language: c++
:linenos:
- :lines: 54-59
+ :lines: 17-22
Python version
---------------
@@ -34,7 +34,7 @@ Python version
.. literalinclude:: bookdelegate.py
:language: python
:linenos:
- :lines: 47-54
+ :lines: 10-17
.. note:: The Python version loads the ``QPixmap`` using
the absolute path of ``star.png`` in the local
@@ -47,21 +47,21 @@ For example, painting stars to represent the rating for
each book in the table. Here is how the reimplemented
code looks like:
-C++ version
-------------
+C++ version (bookdelegate)
+--------------------------
.. literalinclude:: bookdelegate.cpp
:language: c++
:linenos:
- :lines: 59-
+ :lines: 22-
-Python version
----------------
+Python version (bookdelegate)
+-----------------------------
.. literalinclude:: bookdelegate.py
:language: python
:linenos:
- :lines: 55-
+ :lines: 18-
Now that the delegate is in place, run the following
``main.py`` to see how the data is presented:
@@ -69,7 +69,7 @@ Now that the delegate is in place, run the following
.. literalinclude:: main.py
:language: python
:linenos:
- :lines: 40-
+ :lines: 3-
Here is how the application will look when you run it:
diff --git a/sources/pyside6/doc/tutorials/portingguide/chapter2/createdb.py b/sources/pyside6/doc/tutorials/portingguide/chapter2/createdb.py
index c3f27162d..da7d201a8 100644
--- a/sources/pyside6/doc/tutorials/portingguide/chapter2/createdb.py
+++ b/sources/pyside6/doc/tutorials/portingguide/chapter2/createdb.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from PySide6.QtSql import QSqlDatabase, QSqlError, QSqlQuery
from datetime import date
diff --git a/sources/pyside6/doc/tutorials/portingguide/chapter2/main.py b/sources/pyside6/doc/tutorials/portingguide/chapter2/main.py
index cf023fb35..3cc55fa46 100644
--- a/sources/pyside6/doc/tutorials/portingguide/chapter2/main.py
+++ b/sources/pyside6/doc/tutorials/portingguide/chapter2/main.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
diff --git a/sources/pyside6/doc/tutorials/portingguide/chapter3/bookdelegate-old.py b/sources/pyside6/doc/tutorials/portingguide/chapter3/bookdelegate-old.py
index 3ca6a6953..b3187e054 100644
--- a/sources/pyside6/doc/tutorials/portingguide/chapter3/bookdelegate-old.py
+++ b/sources/pyside6/doc/tutorials/portingguide/chapter3/bookdelegate-old.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import copy
import os
diff --git a/sources/pyside6/doc/tutorials/portingguide/chapter3/bookdelegate.py b/sources/pyside6/doc/tutorials/portingguide/chapter3/bookdelegate.py
index 4594508d5..145d6b73e 100644
--- a/sources/pyside6/doc/tutorials/portingguide/chapter3/bookdelegate.py
+++ b/sources/pyside6/doc/tutorials/portingguide/chapter3/bookdelegate.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import copy, os
from PySide6.QtSql import QSqlRelationalDelegate
diff --git a/sources/pyside6/doc/tutorials/portingguide/chapter3/bookwindow.cpp b/sources/pyside6/doc/tutorials/portingguide/chapter3/bookwindow.cpp
index 76f3c9da8..6ec1b9e19 100644
--- a/sources/pyside6/doc/tutorials/portingguide/chapter3/bookwindow.cpp
+++ b/sources/pyside6/doc/tutorials/portingguide/chapter3/bookwindow.cpp
@@ -1,52 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the demonstration applications of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
#include "bookwindow.h"
#include "bookdelegate.h"
diff --git a/sources/pyside6/doc/tutorials/portingguide/chapter3/bookwindow.py b/sources/pyside6/doc/tutorials/portingguide/chapter3/bookwindow.py
index e080d7c11..bb033c6d2 100644
--- a/sources/pyside6/doc/tutorials/portingguide/chapter3/bookwindow.py
+++ b/sources/pyside6/doc/tutorials/portingguide/chapter3/bookwindow.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from PySide6.QtGui import QAction
from PySide6.QtWidgets import (QAbstractItemView, QDataWidgetMapper,
diff --git a/sources/pyside6/doc/tutorials/portingguide/chapter3/chapter3.rst b/sources/pyside6/doc/tutorials/portingguide/chapter3/chapter3.rst
index b2e06b144..98d4d3982 100644
--- a/sources/pyside6/doc/tutorials/portingguide/chapter3/chapter3.rst
+++ b/sources/pyside6/doc/tutorials/portingguide/chapter3/chapter3.rst
@@ -11,7 +11,7 @@ and add the following imports to it:
.. literalinclude:: bookwindow.py
:language: python
:linenos:
- :lines: 40-53
+ :lines: 3-16
.. note:: The imports include the ``BookDelegate`` you
ported earlier and the ``Ui_BookWindow``. The pyside-uic
@@ -21,9 +21,9 @@ and add the following imports to it:
To generate this Python code, run the following command on the
prompt:
-.. code-block::
+.. code-block:: bash
- pyside6-uic bookwindow.ui > ui_bookwindow.py
+ pyside6-uic bookwindow.ui -o ui_bookwindow.py
Try porting the remaining code now. To begin with, here is
how both the versions of the constructor code looks:
@@ -34,7 +34,7 @@ C++ version
.. literalinclude:: bookwindow.cpp
:language: c++
:linenos:
- :lines: 57-140
+ :lines: 20-103
Python version
---------------
@@ -42,7 +42,7 @@ Python version
.. literalinclude:: bookwindow.py
:language: python
:linenos:
- :lines: 53-116
+ :lines: 16-79
.. note:: The Python version of the ``BookWindow`` class
definition inherits from both ``QMainWindow`` and
@@ -57,7 +57,7 @@ C++ version
.. literalinclude:: bookwindow.cpp
:language: c++
:linenos:
- :lines: 115-
+ :lines: 78-
Python version
---------------
@@ -65,7 +65,7 @@ Python version
.. literalinclude:: bookwindow.py
:language: python
:linenos:
- :lines: 117-
+ :lines: 80-
Now that all the necessary pieces are in place, try to put
them together in ``main.py``.
@@ -73,7 +73,7 @@ them together in ``main.py``.
.. literalinclude:: main.py
:language: python
:linenos:
- :lines: 40-
+ :lines: 3-
Try running this to see if you get the following output:
@@ -101,9 +101,9 @@ image only.
Now, run the ``pyside6-rcc`` tool on the ``books.qrc`` file
to generate ``rc_books.py``.
-.. code-block::
+.. code-block:: bash
- pyside6-rcc books.qrc > rc_books.py
+ pyside6-rcc books.qrc -o rc_books.py
Once you have the Python script generated, make the
following changes to ``bookdelegate.py`` and ``main.py``:
diff --git a/sources/pyside6/doc/tutorials/portingguide/chapter3/createdb.py b/sources/pyside6/doc/tutorials/portingguide/chapter3/createdb.py
index c3f27162d..da7d201a8 100644
--- a/sources/pyside6/doc/tutorials/portingguide/chapter3/createdb.py
+++ b/sources/pyside6/doc/tutorials/portingguide/chapter3/createdb.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from PySide6.QtSql import QSqlDatabase, QSqlError, QSqlQuery
from datetime import date
diff --git a/sources/pyside6/doc/tutorials/portingguide/chapter3/main-old.py b/sources/pyside6/doc/tutorials/portingguide/chapter3/main-old.py
index edaf5cf60..164fc589a 100644
--- a/sources/pyside6/doc/tutorials/portingguide/chapter3/main-old.py
+++ b/sources/pyside6/doc/tutorials/portingguide/chapter3/main-old.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
from PySide6.QtWidgets import QApplication
diff --git a/sources/pyside6/doc/tutorials/portingguide/chapter3/main.py b/sources/pyside6/doc/tutorials/portingguide/chapter3/main.py
index 3994a66b4..9a6575dc2 100644
--- a/sources/pyside6/doc/tutorials/portingguide/chapter3/main.py
+++ b/sources/pyside6/doc/tutorials/portingguide/chapter3/main.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
from PySide6.QtWidgets import QApplication
diff --git a/sources/pyside6/doc/tutorials/portingguide/hello_world_ex.py b/sources/pyside6/doc/tutorials/portingguide/hello_world_ex.py
index f29cbd9ba..d67906fa7 100644
--- a/sources/pyside6/doc/tutorials/portingguide/hello_world_ex.py
+++ b/sources/pyside6/doc/tutorials/portingguide/hello_world_ex.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
import random
diff --git a/sources/pyside6/doc/tutorials/portingguide/index.rst b/sources/pyside6/doc/tutorials/portingguide/index.rst
index bc7e6dee5..0b89c2ff8 100644
--- a/sources/pyside6/doc/tutorials/portingguide/index.rst
+++ b/sources/pyside6/doc/tutorials/portingguide/index.rst
@@ -8,7 +8,7 @@ to Python to understand this.
Before you start, ensure that all the prerequisites for
Qt for Python are met. See
-:doc:`Getting Started <../../gettingstarted>` for more
+:doc:`Getting Started <../../gettingstarted/index>` for more
information. In addition, familiarize yourself with the
basic differences between Qt in C++ and in Python.
@@ -63,7 +63,7 @@ C++ vs Python
doStuff(key, value)
In this example, ``func()`` would treat ``var`` as a local
-name without the ``global`` statement. This would lead to
+name without the ``global`` statement. This would lead to
a ``NameError`` in the ``value is None`` handling, on
accessing ``var``. For more information about this, see
`Python refernce documentation <python refdoc>`_.
@@ -153,7 +153,7 @@ demonstrating some of these differences:
.. literalinclude:: hello_world_ex.py
:linenos:
- :lines: 40-
+ :lines: 3-
.. note:: The ``if`` block is just a good practice when
developing a Python application. It lets the Python file
diff --git a/sources/pyside6/doc/tutorials/pretutorial/typesoffiles.rst b/sources/pyside6/doc/tutorials/pretutorial/typesoffiles.rst
deleted file mode 100644
index 71d38f809..000000000
--- a/sources/pyside6/doc/tutorials/pretutorial/typesoffiles.rst
+++ /dev/null
@@ -1,152 +0,0 @@
-.. _typesoffiles:
-
-File Types
-==========
-
-There are many different file types that you will encounter while
-developing |project| applications, ui, qrc, qml, pyproject, etc.
-Here you can find a simple explanation for
-each of them.
-
-Python Files ``.py``
---------------------
-
-Python files are the main format you will be dealing with, while developing
-|project| projects.
-
-It is important to note that you can write applications **only** with Python
-files, without the need of ``.ui``, ``.qrc``, or ``.qml`` files, however
-using other formats will facilitate some processes, and enable new
-functionality to your applications.
-
-.. code-block:: python
-
- class MyWidget(QWidget):
- def __init__(self):
- QWidget.__init__(self)
-
- self.hello = ["Hallo Welt", "你好,世界", "Hei maailma",
- "Hola Mundo", "Привет мир"]
-
- self.button = QPushButton("Click me!")
- self.text = QLabel("Hello World")
- self.text.setAlignment(Qt.AlignCenter)
- # ...
-
-User Interface Definition File ``.ui``
---------------------------------------
-
-When using Qt Designer, you can create user interfaces using Qt Widgets with
-the WYSIWYG form editor, this interface is represented as a widget tree using
-XML. Here is an extract of the beginning of a ``.ui`` file:
-
-.. code-block:: xml
-
- <?xml version="1.0" encoding="UTF-8"?>
- <ui version="4.0">
- <class>MainWindow</class>
- <widget class="QMainWindow" name="MainWindow">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>400</width>
- <height>300</height>
- </rect>
- </property>
- <property name="windowTitle">
- <string>MainWindow</string>
- </property>
- <widget class="QWidget" name="centralWidget">
- ...
-
-The `pyside6-uic` tool generates Python code from these `.ui` files,
-which you can import from your main files, so it is not necessary
-for you to include the `.ui` files in your deployed application.
-
-For more details, see :ref:`using_ui_files`.
-
-Resource Collection Files ``.qrc``
-----------------------------------
-
-List of binary files that will be used alongside your application.
-As an XML-based file, its structure look like this:
-
-.. code-block:: xml
-
- <!DOCTYPE RCC><RCC version="1.0">
- <qresource>
- <file>images/quit.png</file>
- <file>font/myfont.ttf</file>
- </qresource>
- </RCC>
-
-
-The `pyside6-rcc` tool generates Python code from these `.qrc` files,
-so you are not required to include the listed files in your deployed
-application.
-
-For more details, see :ref:`using_qrc_files`.
-
-Qt Modeling Language File ``.qml``
-----------------------------------
-
-Graphical QML applications are not related to Qt Widgets applications, and
-that is why the usual setup of QML project is a Python file that loads
-the QML file, and optionally, elements defined in Python that are exposed
-to QML to be used.
-
-You can write ``.qml`` files by hand, but also you can use tools like the
-QML Designer that is embedded in Qt Creator. Additionally, there are commercial
-tools like Qt Design Studio that allow you to load designs from other design
-applications.
-
-Here you can find an example of how a ``.qml`` file looks like.
-The code will display a lightgray rectangle, with the "Hello World!"
-message on it.
-
-.. code-block:: javascript
-
- import QtQuick 2.0
-
- Rectangle {
- id: page
- width: 320;
- height: 480
- color: "lightgray"
-
- Text {
- id: helloText
- text: "Hello world!"
- y: 30
- anchors.horizontalCenter: page.horizontalCenter
- font.pointSize: 24;
- font.bold: true
- }
- }
-
-Qt Creator Python Project File ``.pyproject``
----------------------------------------------
-
-For Qt Creator to load and handle Python based projects, a special file is
-needed, because C++ based projects could be handle from ``.qmake`` or
-``CMakeLists.txt`` file, which are not used with Python-based projects.
-
-Old versions of Qt Creator, provided a simple format with the ``.pyqtc``
-extension, which were plain-text files with one-file-per-line::
-
- library/server.py
- library/client.py
- logger.py
- ...
-
-There were limitations to this format, and further options that might be
-added that would not be supported, which was the motivation to create a
-``.pyproject`` file, which is a JSON-based file where more options could
-be added. Here is an example of such file:
-
-.. code-block:: javascript
-
- {
- "files": ["library/server.py", "library/client.py", "logger.py", ...]
- }
diff --git a/sources/pyside6/doc/tutorials/pretutorial/whatisqt.rst b/sources/pyside6/doc/tutorials/pretutorial/whatisqt.rst
deleted file mode 100644
index 2dee661a7..000000000
--- a/sources/pyside6/doc/tutorials/pretutorial/whatisqt.rst
+++ /dev/null
@@ -1,112 +0,0 @@
-.. _whatisqt:
-
-Qt, QML, Widgets...What Is The Difference?
-==========================================
-
-If you are new to Qt, there might be a chance that you are a bit confused about
-all the concepts you have read so far. This section aims to provide a summary
-of all the key components that are relevant to develop Qt applications.
-
-Keep in mind that Qt was designed and written in C++ as a C++ framework, you
-will find many references, examples, and concepts that make sense in C++
-based applications, that might not be relevant in your Python applications,
-but keep in mind that |project| aims to expose the Qt framework to Python
-with many adaptations. You don't need to know C++ to use |project|, and you
-can find all the possible combinations between these languages later on.
-
-Qt
---
-
-The Qt Project is an open collaboration that coordinates the development of the
-Qt Framework. You might find situations where "Qt" refers to the project, or
-to the framework.
-
-As a framework, Qt has many components, which are distributed by components
-and modules, for example, `qtbase <https://code.qt.io/cgit/qt/qtbase.git/>`_
-is the base component that holds many modules, like: ``QtCore``, ``QtGui``,
-``QtWidgets``, ``QtNetwork``, etc.
-All those modules contains many classes that you can directly use, like the
-case of the `Classes of QtCore <https://doc.qt.io/qt-6/qtcore-module.html>`_
-from which you can find classes like ``QFile``, ``QTime``, ``QByteArray``, etc.
-
-You can create applications without a User Interface, while using this classes
-to create command line applications, handle files, network connections,
-regular expressions, encoding of text, etc.
-
-On the other hand, you can create Graphical applications with classes
-from the ``QtWidgets`` module, this is also referred as **Widgets**.
-
-There are many other Qt modules like ``QtMultimedia``, ``QtCharts``, ``Qt3D``,
-among others. These modules has a specific functionality, and among this
-modules, there is one called ``QtDeclarative``, in which you can find the
-implementation of the ``QML`` declarative language. This language is similar
-to CSS and JSON, and it was created to design UI applications declaratively,
-allowing JavaScript to take care of some imperative sections, and enabling
-other components to extend and connect the code with C++.
-
-Let us check the functionality of these different approaches separately.
-
-Widgets
--------
-
-As we mentioned before, ``QtWidgets`` is the module that provide predefined
-Widgets that you can add into your graphical application, like Buttons, Labels,
-Boxes, Menus, etc.
-
-Widget based applications will look like a native application, because the goal
-is not to affect the user experience compared to other included applications.
-
-.. image:: hello_macOS.png
- :width: 20%
-.. image:: hello_win10.jpg
- :width: 20%
-.. image:: hello_linux.png
- :width: 20%
-
-.. note:: You can adapt these applications to use your self-made style, but
- you need to be aware that the goal of Widgets is to respect the system
- style, be careful when changing colors. Check this `simple tutorial
- <widgetstyling>`_ on how to do so.
-
-QML
----
-
-QML offers an alternative approach to create User Interfaces, compared to
-Widgets, and it was originally motivated from mobile applications development.
-Together with the ``Qt Quick`` module, it provides access to interact with
-mobile device using actions like taps, drag and drop, animations, states,
-transitions, drawer menus, etc.
-
-The elements that you can find in QML/Quick applications are focused on
-providing a more dynamic application infrastructure which different properties
-based in certain behaviors.
-
-Even though QML has the motivation to provide interfaces with mobile devices,
-you can use it for Desktop applications, too.
-
-Additionally, you can augment your application with standard JavaScript, which
-in combination with C++ can become an attractive infrastructure.
-
-Python And C++
---------------
-
-For |project| applications you **do not need to know C++**, but it is possible
-to mix both languages in a couple of different use cases:
-
-1. If you have a Qt/C++ application, you can re-write it so it is a Qt/Python
- application. This means that Python aims to be a full replacement for the
- user level C++ code of Qt applications.
-2. For custom Qt widgets written in C++, you can generate your own Python
- bindings so people can use it directly from Python.
-3. If you have a C++ based library that you use with your Qt/C++ applications
- that is in charge of a specific task, like a performant process, you can
- generate bindings for it, so people could be able to use it from Python.
-4. For a Qt/C++ application, you can extend it with Python, by exposing the
- main QApplication singleton as a python binding to a Python interpreter.
- This can be understand as a "Python Plugin System" for your Qt/C++
- application, for example.
-
-For the the steps **2., 3., and 4.** you need the help of Shiboken, the
-binding generation tool that is used to generate |project|.
-You can find more information in the
-`documentation page <https://doc.qt.io/qtforpython/shiboken6/index.html>`_.
diff --git a/sources/pyside6/doc/tutorials/pretutorial/whatisshiboken.rst b/sources/pyside6/doc/tutorials/pretutorial/whatisshiboken.rst
deleted file mode 100644
index 67aafc4f8..000000000
--- a/sources/pyside6/doc/tutorials/pretutorial/whatisshiboken.rst
+++ /dev/null
@@ -1,42 +0,0 @@
-.. _whatisshiboken:
-
-Binding Generation: What Is Shiboken?
-=====================================
-
-When you install ``PySide6`` you might have notice that also ``Shiboken6``
-is installed as a dependency:
-
-.. code-block:: bash
-
- (env) [qt ~]$ pip install pyside6
- Collecting pyside6
- Downloading PySide6-6.0.0-6.0.0-cp36.cp37.cp38.cp39-abi3-manylinux1_x86_64.whl (170.5 MB)
- |████████████████████████████████| 170.5 MB 42 kB/s
- Collecting shiboken6==6.0.0
- Downloading shiboken6-6.0.0-6.0.0-cp36.cp37.cp38.cp39-abi3-manylinux1_x86_64.whl (964 kB)
- |████████████████████████████████| 964 kB 29.3 MB/s
- Installing collected packages: shiboken6, pyside6
- Successfully installed pyside6-6.0.0 shiboken6-6.0.0
-
-That installed package is also called **Shiboken Module**, and it contains
-some utilities for PySide to properly work.
-You can find more information about it on its
-`documentation page <https://doc.qt.io/qtforpython/shiboken6/shibokenmodule.html>`_
-
-There is a third package that does not get installed when you install PySide,
-because it is not required, and it is called **Shiboken Generator**.
-
-Most of the times you see mentions to use "Shiboken" or to do something
-related to "binding generation", it is about this third package, and **not**
-the dependency of the PySide package.
-
-Do I Need Shiboken Generator?
------------------------------
-
-If your goal is to just write Qt applications in Python,
-you do not need to worry about a Shiboken generator installation,
-but on the other hand, if you want to work with your own bindings
-or extend Qt/C++ applications with Python, you **need** it.
-
-You can find all the information related to Shiboken on its
-`documentation page <https://doc.qt.io/qtforpython/shiboken6/>`_.
diff --git a/sources/pyside6/doc/tutorials/pretutorial/whichide.rst b/sources/pyside6/doc/tutorials/pretutorial/whichide.rst
deleted file mode 100644
index ec005a188..000000000
--- a/sources/pyside6/doc/tutorials/pretutorial/whichide.rst
+++ /dev/null
@@ -1,54 +0,0 @@
-.. _whichide:
-
-Which IDEs Are Compatible?
-==========================
-
-|project|, as any other Python module, can be used in any Python-compatible
-IDE, but not all of them will provide extra functionality like Qt Creator does.
-
-Besides writing files, there are some external steps you might want to perform
-in order to help the development of your applications:
-
-From a terminal:
-
-* Generating a Python file from a ``.ui`` file:
- :command:`pyside6-uic -i form.ui -o ui_form.py`
-* Generating a Python file from a ``.qrc`` file:
- :command:`pyside6-rcc -i resources.qrc -o rc_resources.py`
-* Opening Qt Designer with the command :command:`pyside6-designer` to
- edit/create ``.ui`` files.
-
-External add-ons/plugins from your favorite IDE might include configuration
-steps to run these commands, or open external tools like Designer and
-QtCreator.
-
-QtCreator
----------
-
-You can create new projects based on some basic templates that are currently
-available in QtCreator. After selecting one, you will pass through some steps
-where you can specify the details of the template, like the project name,
-base Qt class to use for your interface, among others.
-
-Here you can see an animation of the creation of a project:
-
-.. image:: https://qt-wiki-uploads.s3.amazonaws.com/images/7/7c/Qtcreator.gif
- :alt: Qt Creator Animation
-
-Visual Studio Code
-------------------
-
-Besides editing the code of your application, you can use external plugins to
-enable more functionality, like this unofficial
-`plugin <https://marketplace.visualstudio.com/items?itemName=seanwu.vscode-qt-for-python>`_
-that you can install from VS Code while writing the following on the Quick Open Menu (``Ctrl+P``):
-:command:`ext install seanwu.vscode-qt-for-python`.
-
-PyCharm
--------
-
-You can configure PyCharm to enable external tools, in |project| terms, Qt Designer, and
-Qt Creator. Go to ``File > Settings > tools > PyCharm External Tools``, and include the following
-information to add them to your project.
-Later, you will be able to right click a ``.ui`` file, and select ``Qt Designer``,
-``pyside6-uic``, or any tool that you configured this way.
diff --git a/sources/pyside6/doc/tutorials/pretutorial/whyqtforpython.rst b/sources/pyside6/doc/tutorials/pretutorial/whyqtforpython.rst
deleted file mode 100644
index ecb1873f4..000000000
--- a/sources/pyside6/doc/tutorials/pretutorial/whyqtforpython.rst
+++ /dev/null
@@ -1,205 +0,0 @@
-.. _whyqtforpython:
-
-Why Qt for Python?
-==================
-
-.. raw:: html
-
- <div style="float: right; padding-left: 20px; max-width: 30%;
- background-color: #e9eff5; padding-top: 5px;">
- <img src="../../_images/tiobe.png"
- style="width: 90%;"
- alt="TIOBE index for Python" />
- <p style="font-size: 80%;">
- Screenshot from
- <a href="https://www.tiobe.com/tiobe-index/python/">tiobe.com/tiobe-index/python</a>,
- on 2021.09.06
- </p>
- </div>
-
-To answer this question we need to take a step back, and talk a bit about
-languages.
-
-Python has been around for almost the same amount of years that Qt has,
-and similarly it has been growing, and transforming to become the most used,
-loved, and demanded language for many programming areas.
-
-Currently (2021), it's rare to be aware of Machine Learning and Artificial
-Intelligence, without having heard of Python. Similarly, when we hear about
-Data Science/Analysis/Engineering we know that it is most probably related
-to Python.
-
-One can validate this statements by public surveys that have been showing
-the evolution and preference of the Python language, like the StackOverflow
-Surveys of the lasts years:
-
-+----------------------+-----------+-----------+-----------+
-| | 2019_ | 2020_ | 2021_ |
-+======================+===========+===========+===========+
-| Most Loved Language | 2nd place | 3rd place | 6th place |
-+----------------------+-----------+-----------+-----------+
-| Most Wanted Language | 1st place | 1st place | 1st place |
-+----------------------+-----------+-----------+-----------+
-
-and the `TIOBE index`_ (image on the right).
-
-It's natural to think that this sources might not be enough to judge the
-language in general terms, but it certainly highlights a trend among
-developers around the world.
-
-Lowering the Qt Barrier
------------------------
-
-Veteran C++ developers will have no problem with setting up a Qt
-application from scratch, or even manage to understand a different
-code base written with Qt. In addition, many teams are multidisciplinary,
-and other project/company developers might not be fluent in C++.
-
-Python has been luring people into programming, and for the same reason
-it's not uncommon that even people with a different background are able
-to write code, meaning that different teams are enabled to speak
-"the same language".
-
-Creating Qt applications in Python requires only a few lines of code,
-and not much configuration is required to execute it. As an /unfair/
-example, let's check the code of a simple hello world application:
-
-
-.. panels::
- :container: container-lg
-
- :column: col-lg-6 p-2
-
- .. tabbed:: C++ Header
-
- .. code-block:: cpp
-
- #ifndef MAINWINDOW_H
- #define MAINWINDOW_H
-
- #include <QMainWindow>
- #include <QPushButton>
-
- class MainWindow : public QMainWindow
- {
- Q_OBJECT
- public:
- MainWindow(QWidget *parent = nullptr);
- private slots:
- void handleButton();
- private:
- QPushButton *m_button;
- };
-
- #endif // MAINWINDOW_H
-
- .. tabbed:: C++ Implementation
-
- .. code-block:: cpp
-
- #include "mainwindow.h"
-
- MainWindow::MainWindow(QWidget *parent)
- : QMainWindow(parent)
- {
- m_button = new QPushButton("My Button", this);
- connect(m_button, SIGNAL(clicked()), this,
- SLOT(handleButton()));
- }
-
- void MainWindow::handleButton()
- {
- m_button->setText("Ready");
- }
-
- .. tabbed:: C++ Main
-
- .. code-block:: cpp
-
- #include <QApplication>
- #include "mainwindow.h"
-
- int main(int argc, char *argv[])
- {
- QApplication app(argc, argv);
- MainWindow mainWindow;
- mainWindow.show();
- return app.exec(d);
- }
-
- ---
- :column: col-lg-6 p-2
-
- .. tabbed:: Python
-
- .. code-block:: python
-
- import sys
- from pyside6.QtWidgets import (QApplication, QMainWindow,
- QPushButton)
-
- class MainWindow(QMainWindow):
- def __init__(self, parent=None):
- QMainWindow.__init__(self, parent)
- self.button = QPushButton("My Button", self)
- self.button.clicked.connect(self.handleButton)
-
- def handleButton(self):
- self.button.setText("Ready")
-
- if __name__ == "__main__":
- app = QApplication([])
- mainWindow = MainWindow()
- mainWindow.show()
- sys.exit(app.exec())
-
-It's fair to say that most of the boilerplate code is provided by many
-good IDEs, like QtCreator, but using external tools certainly requires
-some practice to use them and get familiarized.
-
-Unity Makes Strength
---------------------
-
-In our mission to enable more developers to enter the Qt World, it's
-important to note that this doesn't imply C++ developers are forgotten.
-
-Together with the bindings, Qt for Python provides our binding generator,
-Shiboken (Check :ref:`whatisshiboken`), whose functionality has
-extensibly been shown by talks on events such as those from our
-:ref:`video-gallery` section.
-
-Generating bindings between two languages it nothing new, but it has
-always been a non-trivial task, mainly for being as-compatible-as-possible
-when using external modules/libraries in your project.
-
-Shiboken's main use case is to extend Qt/C++ project's
-functionality, making them **scriptable**.
-
-What does it mean for an application to be scriptable?
-
-* enables a interpreted language to interact directly with the Qt/C++
- application,
-* provide the option to modify and create components/elements of the
- application from Python,
-* possibility to create a plugins/add-ons system for the application.
-* complement a process with external Python functionality.
-
-Check out this `Shiboken Webinar`_ for a hands-on example.
-
-Shiboken excels at Qt-dependent binding generation, meaning that
-any Qt/C++ project can be easily exposed to Python.
-In addition, Shiboken has proven its support for C++ projects (without Qt),
-as shown on event talks and `blog posts`.
-
-Adding Python support to well known solutions/projects is a pattern we keep
-seeing in the industry, on a broad range of devices.
-This is why we are working every day to improve the Qt for Python offering.
-
-We believe both Qt and Python will benefit from this interaction.
-
-.. _2019: https://insights.stackoverflow.com/survey/2019
-.. _2020: https://insights.stackoverflow.com/survey/2020
-.. _2021: https://insights.stackoverflow.com/survey/2021
-.. _`TIOBE index`: https://www.tiobe.com/tiobe-index/
-.. _`blog posts`: https://www.qt.io/blog/tag/qt-for-python
-.. _`Shiboken Webinar`: https://www.youtube.com/watch?v=wOMlDutOWXI
diff --git a/sources/pyside6/doc/tutorials/qmlapp/main.py b/sources/pyside6/doc/tutorials/qmlapp/main.py
index 490cb79ea..8b1b25440 100644
--- a/sources/pyside6/doc/tutorials/qmlapp/main.py
+++ b/sources/pyside6/doc/tutorials/qmlapp/main.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
import urllib.request
diff --git a/sources/pyside6/doc/tutorials/qmlapp/qmlapplication.rst b/sources/pyside6/doc/tutorials/qmlapp/qmlapplication.rst
index 4f444aae7..c6d72e742 100644
--- a/sources/pyside6/doc/tutorials/qmlapp/qmlapplication.rst
+++ b/sources/pyside6/doc/tutorials/qmlapp/qmlapplication.rst
@@ -15,15 +15,15 @@ defined in the QML file.
Before you begin, install the following prerequisites:
* The `PySide6 <https://pypi.org/project/PySide6/>`_ Python packages.
-* Qt Creator v4.9 beta1 or later from
- `http://download.qt.io
- <http://download.qt.io/snapshots/qtcreator/4.9/4.9.0-beta1/>`_.
+* *Qt Creator* from
+ `https://download.qt.io
+ <https://download.qt.io/snapshots/qtcreator/>`_.
The following step-by-step instructions guide you through application
-development process using Qt Creator:
+development process using *Qt Creator*:
-#. Open Qt Creator and select **File > New File or Project..** menu item
+#. Open *Qt Creator* and select **File > New File or Project..** menu item
to open following dialog:
.. image:: newpyproject.png
@@ -61,7 +61,7 @@ development process using Qt Creator:
.. literalinclude:: main.py
:linenos:
- :lines: 40-60
+ :lines: 3-23
:emphasize-lines: 7-9,14-17
#. Now, set up the application window using
@@ -70,7 +70,7 @@ development process using Qt Creator:
.. literalinclude:: main.py
:linenos:
- :lines: 40-65
+ :lines: 3-28
:emphasize-lines: 23-25
.. note:: Setting the resize policy is important if you want the
@@ -83,7 +83,7 @@ development process using Qt Creator:
.. literalinclude:: main.py
:linenos:
- :lines: 40-70
+ :lines: 3-33
:emphasize-lines: 28-31
#. Load the ``view.qml`` to the ``QQuickView`` and call ``show()`` to
@@ -91,14 +91,14 @@ development process using Qt Creator:
.. literalinclude:: main.py
:linenos:
- :lines: 40-79
+ :lines: 3-42
:emphasize-lines: 33-40
#. Finally, execute the application to start the event loop and clean up.
.. literalinclude:: main.py
:linenos:
- :lines: 40-
+ :lines: 3-
:emphasize-lines: 42-44
#. Your application is ready to be run now. Select **Projects** mode to
diff --git a/sources/pyside6/doc/tutorials/qmlapp/view.qml b/sources/pyside6/doc/tutorials/qmlapp/view.qml
index 5590fd1f8..7f9b1d777 100644
--- a/sources/pyside6/doc/tutorials/qmlapp/view.qml
+++ b/sources/pyside6/doc/tutorials/qmlapp/view.qml
@@ -1,52 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import QtQuick 2.12
import QtQuick.Controls 2.12
diff --git a/sources/pyside6/doc/tutorials/qmlintegration/main.py b/sources/pyside6/doc/tutorials/qmlintegration/main.py
index db1a59c2e..0a751d7d1 100644
--- a/sources/pyside6/doc/tutorials/qmlintegration/main.py
+++ b/sources/pyside6/doc/tutorials/qmlintegration/main.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import sys
from pathlib import Path
diff --git a/sources/pyside6/doc/tutorials/qmlintegration/qmlintegration.rst b/sources/pyside6/doc/tutorials/qmlintegration/qmlintegration.rst
index 0b33a746e..ff6fe3e31 100644
--- a/sources/pyside6/doc/tutorials/qmlintegration/qmlintegration.rst
+++ b/sources/pyside6/doc/tutorials/qmlintegration/qmlintegration.rst
@@ -2,17 +2,17 @@ Python-QML integration
======================
This tutorial provides a quick walk-through of a python application that loads, and interacts with
-a QML file. QML is a declarative language that lets you design UIs faster than a traditional
-language, such as C++. The QtQml and QtQuick modules provides the necessary infrastructure for
+a QML file. QML is a declarative language that lets you design UIs faster than a traditional
+language, such as C++. The QtQml and QtQuick modules provides the necessary infrastructure for
QML-based UIs.
In this tutorial, you will learn how to integrate Python with a QML application.
This mechanism will help us to understand how to use Python as a backend for certain
-signals from the UI elements in the QML interface. Additionally, you will learn how to provide
+signals from the UI elements in the QML interface. Additionally, you will learn how to provide
a modern look to your QML application using one of the features from Qt Quick Controls 2.
The tutorial is based on an application that allow you to set many text properties, like increasing
-the font size, changing the color, changing the style, and so on. Before you begin, install the
+the font size, changing the color, changing the style, and so on. Before you begin, install the
`PySide6 <https://pypi.org/project/PySide6/>`_ Python packages.
The following step-by-step process will guide you through the key elements of the QML based
@@ -29,18 +29,18 @@ application and PySide6 integration:
.. literalinclude:: main.py
:linenos:
- :lines: 100-113
+ :lines: 63-76
:emphasize-lines: 4,9
Notice that we only need a :code:`QQmlApplicationEngine` to
:code:`load` the QML file.
-#. Define the `Bridge` class, containing all the logic for the element
+#. Define the ``Bridge`` class, containing all the logic for the element
that will be register in QML:
.. literalinclude:: main.py
:linenos:
- :lines: 51-91
+ :lines: 14-54
:emphasize-lines: 3,4,7
Notice that the registration happens thanks to the :code:`QmlElement`
@@ -48,7 +48,7 @@ application and PySide6 integration:
class and the variables :code:`QML_IMPORT_NAME` and
:code:`QML_IMPORT_MAJOR_VERSION`.
-#. Now, go back to the QML file and connect the signals to the slots defined in the `Bridge` class:
+#. Now, go back to the QML file and connect the signals to the slots defined in the ``Bridge`` class:
.. code:: js
@@ -63,12 +63,12 @@ application and PySide6 integration:
.. literalinclude:: view.qml
:linenos:
- :lines: 82-92
+ :lines: 45-55
:emphasize-lines: 6-8
The properties *Italic*, *Bold*, and *Underline* are mutually
exclusive, this means only one can be active at any time.
- To achieve this each time we select one of these options, we
+ To achieve this each time we select one of these options, we
check the three properties via the QML element property as you can
see in the above snippet.
Only one of the three will return *True*, while the other two
@@ -80,7 +80,7 @@ application and PySide6 integration:
.. literalinclude:: main.py
:linenos:
- :lines: 79-84
+ :lines: 42-47
:emphasize-lines: 4,6
Returning *True* or *False* allows you to activate and deactivate
@@ -91,30 +91,30 @@ application and PySide6 integration:
.. literalinclude:: main.py
:linenos:
- :lines: 71-76
+ :lines: 34-39
#. Now, for changing the look of our application, you have two options:
- 1. Use the command line: execute the python file adding the option, `--style`::
+ 1. Use the command line: execute the python file adding the option, ``--style``::
python main.py --style material
- 2. Use a `qtquickcontrols2.conf` file:
+ 2. Use a ``qtquickcontrols2.conf`` file:
.. literalinclude:: qtquickcontrols2.conf
:linenos:
- Then add it to your `.qrc` file:
+ Then add it to your ``.qrc`` file:
.. literalinclude:: style.qrc
:linenos:
- Generate the *rc* file running, `pyside6-rcc style.qrc > style_rc.py`
- And finally import it from your `main.py` script.
+ Generate the *rc* file running, ``pyside6-rcc style.qrc -o style_rc.py``
+ And finally import it from your ``main.py`` script.
.. literalinclude:: main.py
:linenos:
- :lines: 41-49
+ :lines: 4-12
:emphasize-lines: 9
You can read more about this configuration file
diff --git a/sources/pyside6/doc/tutorials/qmlintegration/view.qml b/sources/pyside6/doc/tutorials/qmlintegration/view.qml
index de9715ee1..635603fac 100644
--- a/sources/pyside6/doc/tutorials/qmlintegration/view.qml
+++ b/sources/pyside6/doc/tutorials/qmlintegration/view.qml
@@ -1,42 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt for Python examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import QtQuick 2.0
diff --git a/sources/pyside6/doc/tutorials/qmlsqlintegration/chat.qml b/sources/pyside6/doc/tutorials/qmlsqlintegration/chat.qml
index 2a784fc3d..da58ae9b2 100644
--- a/sources/pyside6/doc/tutorials/qmlsqlintegration/chat.qml
+++ b/sources/pyside6/doc/tutorials/qmlsqlintegration/chat.qml
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Layouts
diff --git a/sources/pyside6/doc/tutorials/qmlsqlintegration/main.py b/sources/pyside6/doc/tutorials/qmlsqlintegration/main.py
index 3cd19e96e..314fd5aa5 100644
--- a/sources/pyside6/doc/tutorials/qmlsqlintegration/main.py
+++ b/sources/pyside6/doc/tutorials/qmlsqlintegration/main.py
@@ -1,41 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python project.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import sys
import logging
diff --git a/sources/pyside6/doc/tutorials/qmlsqlintegration/qmlsqlintegration.rst b/sources/pyside6/doc/tutorials/qmlsqlintegration/qmlsqlintegration.rst
index 053d0316e..eee3f807e 100644
--- a/sources/pyside6/doc/tutorials/qmlsqlintegration/qmlsqlintegration.rst
+++ b/sources/pyside6/doc/tutorials/qmlsqlintegration/qmlsqlintegration.rst
@@ -14,9 +14,9 @@ name of our table, and define the global function ``createTable()`` that creates
doesn't already exist.
The database contains a single line to mock the beginning of a conversation.
- .. literalinclude:: sqlDialog.py
- :linenos:
- :lines: 40-79
+.. literalinclude:: sqlDialog.py
+ :linenos:
+ :lines: 4-43
The ``SqlConversationModel`` class offers the read-only data model required for the non-editable
contacts list. It derives from the :ref:`QSqlQueryModel` class, which is the logical choice for
@@ -26,25 +26,25 @@ Then, we proceed to create the table, set its name to the one defined previously
We add the necessary attributes to the table, to have a program that reflects the idea
of a chat application.
- .. literalinclude:: sqlDialog.py
- :linenos:
- :lines: 83-95
+.. literalinclude:: sqlDialog.py
+ :linenos:
+ :lines: 47-59
In ``setRecipient()``, you set a filter over the returned results from the database, and
emit a signal every time the recipient of the message changes.
- .. literalinclude:: sqlDialog.py
- :linenos:
- :lines: 97-106
+.. literalinclude:: sqlDialog.py
+ :linenos:
+ :lines: 61-70
The ``data()`` function falls back to ``QSqlTableModel``'s implementation if the role is not a
custom user role.
If you get a user role, we can subtract :meth:`~.QtCore.Qt.UserRole` from it to get the index of
that field, and then use that index to find the value to be returned.
- .. literalinclude:: sqlDialog.py
- :linenos:
- :lines: 108-115
+.. literalinclude:: sqlDialog.py
+ :linenos:
+ :lines: 72-79
In ``roleNames()``, we return a Python dictionary with our custom role and role names as key-values
@@ -53,27 +53,27 @@ Alternatively, it can be useful to declare an Enum to hold all of the role value
Note that ``names`` has to be a hash to be used as a dictionary key,
and that's why we're using the ``hash`` function.
- .. literalinclude:: sqlDialog.py
- :linenos:
- :lines: 117-131
+.. literalinclude:: sqlDialog.py
+ :linenos:
+ :lines: 81-95
The ``send_message()`` function uses the given recipient and message to insert a new record into
the database.
Using :meth:`~.QSqlTableModel.OnManualSubmit` requires you to also call ``submitAll()``,
since all the changes will be cached in the model until you do so.
- .. literalinclude:: sqlDialog.py
- :linenos:
- :lines: 133-152
+.. literalinclude:: sqlDialog.py
+ :linenos:
+ :lines: 97-116
chat.qml
--------
Let's look at the ``chat.qml`` file.
- .. literalinclude:: chat.qml
- :linenos:
- :lines: 40-42
+.. literalinclude:: chat.qml
+ :linenos:
+ :lines: 4-6
First, import the Qt Quick module.
This gives us access to graphical primitives such as Item, Rectangle, Text, and so on.
@@ -86,9 +86,9 @@ root type, Window:
Let's step through the ``chat.qml`` file.
- .. literalinclude:: chat.qml
- :linenos:
- :lines: 45-50
+.. literalinclude:: chat.qml
+ :linenos:
+ :lines: 9-14
``ApplicationWindow`` is a Window with some added convenience for creating a header and a footer.
It also provides the foundation for popups and supports some basic styling, such as the background
@@ -101,9 +101,9 @@ Once we've set these, we have a properly sized, empty window ready to be filled
Because we are exposing the :code:`SqlConversationModel` class to QML, we will
declare a component to access it:
- .. literalinclude:: chat.qml
- :linenos:
- :lines: 52-54
+.. literalinclude:: chat.qml
+ :linenos:
+ :lines: 16-18
There are two ways of laying out items in QML: `Item Positioners`_ and `Qt Quick Layouts`_.
@@ -113,13 +113,13 @@ There are two ways of laying out items in QML: `Item Positioners`_ and `Qt Quick
resizable user interfaces.
Below, we use `ColumnLayout`_ to vertically lay out a `ListView`_ and a `Pane`_.
- .. literalinclude:: chat.qml
- :linenos:
- :lines: 56-59
+ .. literalinclude:: chat.qml
+ :linenos:
+ :lines: 20-23
- .. literalinclude:: chat.qml
- :linenos:
- :lines: 108-110
+ .. literalinclude:: chat.qml
+ :linenos:
+ :lines: 72-74
Pane is basically a rectangle whose color comes from the application's style.
It's similar to `Frame`_, but it has no stroke around its border.
@@ -144,18 +144,16 @@ remaining space that is left after accommodating the Pane.
.. _attached properties: https://doc.qt.io/qt-5/qml-qtquick-layouts-layout.html
.. _Layout.fillWidth: https://doc.qt.io/qt-5/qml-qtquick-layouts-layout.html#fillWidth-attached-prop
.. _Layout.fillHeight: https://doc.qt.io/qt-5/qml-qtquick-layouts-layout.html#fillHeight-attached-prop
-.. _ListView: https://doc.qt.io/qt-5/qml-qtquick-listview.html
.. _Qt Quick QML Types: https://doc.qt.io/qt-5/qtquick-qmlmodule.html
Let's look at the ``Listview`` in detail:
- .. literalinclude:: chat.qml
- :linenos:
- :lines: 59-106
+.. literalinclude:: chat.qml
+ :linenos:
+ :lines: 23-70
After filling the ``width`` and ``height`` of its parent, we also set some margins on the view.
-
Next, we set `displayMarginBeginning`_ and `displayMarginEnd`_.
These properties ensure that the delegates outside the view don't disappear when you
scroll at the edges of the view.
@@ -179,9 +177,9 @@ At the bottom of the screen, we place a `TextArea`_ item to allow multi-line tex
button to send the message.
We use Pane to cover the area under these two items:
- .. literalinclude:: chat.qml
- :linenos:
- :lines: 108-132
+.. literalinclude:: chat.qml
+ :linenos:
+ :lines: 72-96
The `TextArea`_ should fill the available width of the screen.
We assign some placeholder text to provide a visual cue to the contact as to where they should begin
@@ -203,16 +201,16 @@ main.py
We use ``logging`` instead of Python's ``print()``, because it provides a better way to control the
messages levels that our application will generate (errors, warnings, and information messages).
- .. literalinclude:: main.py
- :linenos:
- :lines: 40-52
+.. literalinclude:: main.py
+ :linenos:
+ :lines: 4-16
``connectToDatabase()`` creates a connection with the SQLite database, creating the actual file
if it doesn't already exist.
- .. literalinclude:: main.py
- :linenos:
- :lines: 55-75
+.. literalinclude:: main.py
+ :linenos:
+ :lines: 19-39
A few interesting things happen in the ``main`` function:
@@ -227,8 +225,8 @@ A few interesting things happen in the ``main`` function:
Finally, the Qt application runs, and your program starts.
- .. literalinclude:: main.py
- :linenos:
- :lines: 78-88
+.. literalinclude:: main.py
+ :linenos:
+ :lines: 42-52
.. image:: example_list_view.png
diff --git a/sources/pyside6/doc/tutorials/qmlsqlintegration/sqlDialog.py b/sources/pyside6/doc/tutorials/qmlsqlintegration/sqlDialog.py
index 4ebb19ce2..d728aee59 100644
--- a/sources/pyside6/doc/tutorials/qmlsqlintegration/sqlDialog.py
+++ b/sources/pyside6/doc/tutorials/qmlsqlintegration/sqlDialog.py
@@ -1,41 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python project.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import datetime
import logging
diff --git a/sources/pyside6/doc/typesystem_doc.xml.in b/sources/pyside6/doc/typesystem_doc.xml.in
index 94260fea0..86a4d0eae 100644
--- a/sources/pyside6/doc/typesystem_doc.xml.in
+++ b/sources/pyside6/doc/typesystem_doc.xml.in
@@ -1,53 +1,7 @@
<?xml version="1.0" ?>
<!--
-/****************************************************************************
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-->
<typesystem package="PySide">
<suppress-warning text="File containing conversion code for *" />
diff --git a/sources/pyside6/doc/videos.rst b/sources/pyside6/doc/videos.rst
index 95172bda4..919c9ff38 100644
--- a/sources/pyside6/doc/videos.rst
+++ b/sources/pyside6/doc/videos.rst
@@ -1,186 +1,155 @@
.. _video-gallery:
-|project| Videos
-================
+Videos
+======
Tutorials
---------
-.. panels::
- :body: align-items-center jutify-content-center text-center
- :container: container-lg pb-3
- :column: col-lg-4 col-md-4 col-sm-6 col-xs-12 p-2
- :img-top-cls: d-flex align-self-center img-responsive card-img-top-main
+.. grid:: 1 3 3 3
+ :gutter: 2
- Resources overview
- ^^^^^^^^^^^^^^^^^^
- .. raw:: html
+ .. grid-item-card:: Resources overview
+ :img-top: https://img.youtube.com/vi/sywLvidNkbw/mqdefault.jpg
+ :link: https://www.youtube.com/embed/sywLvidNkbw
- <div class='embed-container'>
- <iframe src="https://www.youtube.com/embed/sywLvidNkbw" frameborder="0" allowfullscreen>
- </iframe>
- </div>
- ---
+ .. grid-item-card:: Repository overview
+ :img-top: https://img.youtube.com/vi/RP0K1B7fqMs/mqdefault.jpg
+ :link: https://www.youtube.com/embed/RP0K1B7fqMs
- Repository overview
- ^^^^^^^^^^^^^^^^^^^
+ .. grid-item-card:: Shiboken overview
+ :img-top: https://img.youtube.com/vi/RUwV_sx_gBM/mqdefault.jpg
+ :link: https://www.youtube.com/embed/RUwV_sx_gBM
- .. raw:: html
+ .. grid-item-card:: Tutorial
+ :img-top: https://img.youtube.com/vi/Cqo0-EQmy1Q/mqdefault.jpg
+ :link: https://www.youtube.com/embed/Cqo0-EQmy1Q
- <div class='embed-container'>
- <iframe src="https://www.youtube.com/embed/RP0K1B7fqMs" frameborder="0" allowfullscreen>
- </iframe>
- </div>
- ---
+ How to create a simple Qt Widgets app with PySide6
- Introduction to the Shiboken Wizard
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ .. grid-item-card:: Tutorial
+ :img-top: https://img.youtube.com/vi/JxfiUx60Mbg/mqdefault.jpg
+ :link: https://www.youtube.com/embed/JxfiUx60Mbg
- .. raw:: html
+ Making a QML Application in Python
- <div class='embed-container'>
- <iframe src="https://www.youtube.com/embed/RUwV_sx_gBM" frameborder="0" allowfullscreen>
- </iframe>
- </div>
+ .. grid-item-card:: Tutorial
+ :img-top: https://img.youtube.com/vi/i-utZN_NP6c/mqdefault.jpg
+ :link: https://www.youtube.com/embed/i-utZN_NP6c
-Community events
-----------------
+ How to install PySide6 on a new virtual environment
-.. panels::
- :body: align-items-center jutify-content-center text-center
- :container: container-lg pb-3
- :column: col-lg-4 col-md-4 col-sm-6 col-xs-12 p-2
- :img-top-cls: d-flex align-self-center img-responsive card-img-top-main
- Akademy 2021 - Qt for Python
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Community events
+----------------
- .. raw:: html
+.. grid:: 1 3 3 3
+ :gutter: 2
- <div class='embed-container'>
- <iframe src="https://www.youtube.com/embed/Ftm68AzYvr8" frameborder="0" allowfullscreen>
- </iframe>
- </div>
+ .. grid-item-card:: Akademy 2021
+ :img-top: https://img.youtube.com/vi/Ftm68AzYvr8/mqdefault.jpg
+ :link: https://www.youtube.com/embed/Ftm68AzYvr8
+ Qt for Python
Webinars
--------
-.. panels::
- :body: align-items-center jutify-content-center text-center
- :container: container-lg pb-3
- :column: col-lg-4 col-md-4 col-sm-6 col-xs-12 p-2
- :img-top-cls: d-flex align-self-center img-responsive card-img-top-main
+.. grid:: 1 3 3 3
+ :gutter: 2
- Python and C++ interoperability with Shiboken
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ .. grid-item-card:: Online Webinar
+ :img-top: https://img.youtube.com/vi/eqHveQ5JTZU/mqdefault.jpg
+ :link: https://www.youtube.com/embed/eqHveQ5JTZU
- .. raw:: html
+ How your Python projects can benefit from Qt
- <div class='embed-container'>
- <iframe src="https://www.youtube.com/embed/wOMlDutOWXI" frameborder="0" allowfullscreen>
- </iframe>
- </div>
+ .. grid-item-card:: Online Webinar
+ :img-top: https://img.youtube.com/vi/wOMlDutOWXI/mqdefault.jpg
+ :link: https://www.youtube.com/embed/wOMlDutOWXI
- ---
+ Interoperability of Python and C++ using Shiboken
- Develop your first Qt for Python application
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ .. grid-item-card:: Online Webinar
+ :img-top: https://img.youtube.com/vi/HDBjmSiOBxY/mqdefault.jpg
+ :link: https://www.youtube.com/embed/HDBjmSiOBxY
- .. raw:: html
+ Developing your first Qt for Python application
- <div class='embed-container'>
- <iframe src="https://www.youtube.com/embed/HDBjmSiOBxY" frameborder="0" allowfullscreen>
- </iframe>
- </div>
+ .. grid-item-card:: Online Webinar
+ :img-top: https://img.youtube.com/vi/wKqLaNqxgas/mqdefault.jpg
+ :link: https://www.youtube.com/embed/wKqLaNqxgas
- ---
-
- Creating user interfaces with Qt for Python
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
- .. raw:: html
-
- <div class='embed-container'>
- <iframe src="https://www.youtube.com/embed/wKqLaNqxgas" frameborder="0" allowfullscreen>
- </iframe>
- </div>
+ Creating user interfaces with Qt for Python
Conferences
-----------
-.. panels::
- :body: align-items-center jutify-content-center text-center
- :container: container-lg pb-3
- :column: col-lg-4 col-md-4 col-sm-6 col-xs-12 p-2
- :img-top-cls: d-flex align-self-center img-responsive card-img-top-main
-
- QtVirtualTechCon2020: From Prototypes to Hybrid Applications
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+.. grid:: 1 3 3 3
+ :gutter: 2
- .. raw:: html
+ .. grid-item-card:: PyConES 2023
+ :img-top: https://img.youtube.com/vi/XuqdTvisqkQ/mqdefault.jpg
+ :link: https://www.youtube.com/embed/XuqdTvisqkQ
- <div class='embed-container'>
- <iframe src="https://www.youtube.com/embed/Vb1dbLQafyM" frameborder="0" allowfullscreen>
- </iframe>
- </div>
+ Asynchronous programming with asyncio and Qt
- ---
+ .. grid-item-card:: QtWS 2022
+ :img-top: https://img.youtube.com/vi/8wcdN1Iw1Uk/mqdefault.jpg
+ :link: https://www.youtube.com/embed/8wcdN1Iw1Uk
- QtWS2019: Utilizing Shiboken to Enhance your Application
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ 5 Reasons Why You Should Use the Latest Qt for Python
- .. raw:: html
+ .. grid-item-card:: QtDeCon 2022
+ :img-top: https://img.youtube.com/vi/ZUNg19OlDeE/mqdefault.jpg
+ :link: https://www.youtube.com/embed/ZUNg19OlDeE
- <div class='embed-container'>
- <iframe src="https://www.youtube.com/embed/mAfEVPgHRt8" frameborder="0" allowfullscreen>
- </iframe>
- </div>
+ Hybrid Qt Development: Boosting Your Projects with Python
- ---
+ .. grid-item-card:: QtWS 2021
+ :img-top: https://img.youtube.com/vi/SylgpRc-Lrg/mqdefault.jpg
+ :link: https://www.youtube.com/embed/SylgpRc-Lrg
- QtWS2019: Introduction to Qt for Python
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ Hybrid Qt Development: boosting Projects with Python
- .. raw:: html
+ .. grid-item-card:: QtWS 2020
+ :img-top: https://img.youtube.com/vi/Vb1dbLQafyM/mqdefault.jpg
+ :link: https://www.youtube.com/embed/Vb1dbLQafyM
- <div class='embed-container'>
- <iframe src="https://www.youtube.com/embed/214TWASZVgA" frameborder="0" allowfullscreen>
- </iframe>
- </div>
+ Prototypes to Hybrid Applications
- ---
+ .. grid-item-card:: QtWS 2019
+ :img-top: https://img.youtube.com/vi/mAfEVPgHRt8/mqdefault.jpg
+ :link: https://www.youtube.com/embed/mAfEVPgHRt8
- QtWS2019: How to bring your C++ project to Python land
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ Using Shiboken to Enhance Application
- .. raw:: html
+ .. grid-item-card:: QtWS 2019
+ :img-top: https://img.youtube.com/vi/214TWASZVgA/mqdefault.jpg
+ :link: https://www.youtube.com/embed/214TWASZVgA
- <div class='embed-container'>
- <iframe src="https://www.youtube.com/embed/XmY-tWTi9gY" frameborder="0" allowfullscreen>
- </iframe>
- </div>
+ Intro to Qt for Python
- ---
+ .. grid-item-card:: QtWS 2019
+ :img-top: https://img.youtube.com/vi/XmY-tWTi9gY/mqdefault.jpg
+ :link: https://www.youtube.com/embed/XmY-tWTi9gY
- QtWS2018: Mastering Qt for Python in 20 min
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ Using C++ project in Python
- .. raw:: html
+ .. grid-item-card:: QtWS 2019
+ :img-top: https://img.youtube.com/vi/rRDoToEOlbY/mqdefault.jpg
+ :link: https://www.youtube.com/embed/rRDoToEOlbY
- <div class='embed-container'>
- <iframe src="https://www.youtube.com/embed/IhxZ99usPqY" frameborder="0" allowfullscreen>
- </iframe>
- </div>
+ Using Qt for Python for embedded system development
- ---
+ .. grid-item-card:: QtWS 2018
+ :img-top: https://img.youtube.com/vi/IhxZ99usPqY/mqdefault.jpg
+ :link: https://www.youtube.com/embed/IhxZ99usPqY
- QtWS2017: Take a walk on the PySide
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ Qt for Python in 20 min
- .. raw:: html
+ .. grid-item-card:: QtWS 2017
+ :img-top: https://img.youtube.com/vi/Sb4FV6SdHHQ/mqdefault.jpg
+ :link: https://www.youtube.com/embed/Sb4FV6SdHHQ
- <div class='embed-container'>
- <iframe src="https://www.youtube.com/embed/Sb4FV6SdHHQ" frameborder="0" allowfullscreen>
- </iframe>
- </div>
+ A walk to PySide
diff --git a/sources/pyside6/libpyside/CMakeLists.txt b/sources/pyside6/libpyside/CMakeLists.txt
index dca469eb9..ebfe123dd 100644
--- a/sources/pyside6/libpyside/CMakeLists.txt
+++ b/sources/pyside6/libpyside/CMakeLists.txt
@@ -1,20 +1,47 @@
-project(libpyside)
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
-set(QML_SUPPORT 0)
-set(QML_PRIVATE_API_SUPPORT 0)
+project(libpyside)
set(libpyside_libraries Qt::Core Qt::CorePrivate)
-if(Qt${QT_MAJOR_VERSION}Qml_FOUND)
- list(APPEND libpyside_libraries Qt::Qml)
- set(QML_SUPPORT 1)
- if(Qt${QT_MAJOR_VERSION}Qml_PRIVATE_INCLUDE_DIRS)
- list(APPEND libpyside_libraries Qt::QmlPrivate)
- set(QML_PRIVATE_API_SUPPORT 1)
- else()
- message(WARNING "QML private API include files could not be found, support for catching QML exceptions inside Python code will not work.")
- endif()
-endif()
+set(CMAKE_AUTOMOC ON)
+
+set(libpyside_HEADERS # installed below
+ class_property.h
+ dynamicqmetaobject.h
+ feature_select.h
+ globalreceiverv2.h
+ pysideclassdecorator_p.h
+ pysideclassinfo.h
+ pysideclassinfo_p.h
+ pysidecleanup.h
+ pyside.h
+ pysideinit.h
+ pysidelogging_p.h
+ pysidemacros.h
+ pysidemetafunction.h
+ pysidemetafunction_p.h
+ pysidemetatype.h
+ pyside_numpy.h
+ pyside_p.h
+ pysideproperty.h
+ pysideproperty_p.h
+ pysideqapp.h
+ pysideqenum.h
+ pysideqhash.h
+ pysideqmetatype.h
+ pysideqobject.h
+ pysideqslotobject_p.h
+ pysidesignal.h
+ pysidesignal_p.h
+ pysideslot_p.h
+ pysidestaticstrings.h
+ pysideutils.h
+ pysideweakref.h
+ qobjectconnect.h
+ signalmanager.h
+)
set(libpyside_SRC
class_property.cpp
@@ -22,17 +49,20 @@ set(libpyside_SRC
feature_select.cpp
signalmanager.cpp
globalreceiverv2.cpp
+ pysideclassdecorator.cpp
pysideclassinfo.cpp
pysideqenum.cpp
+ pysideqslotobject_p.cpp
pysidemetafunction.cpp
pysidesignal.cpp
pysideslot.cpp
pysideproperty.cpp
- pysideqflags.cpp
pysideweakref.cpp
pyside.cpp
pyside_numpy.cpp
pysidestaticstrings.cpp
+ qobjectconnect.cpp
+ ${libpyside_HEADERS}
)
qt6_add_resources(libpyside_SRC libpyside.qrc)
@@ -62,20 +92,15 @@ add_other_files(${other_files})
add_library(pyside6 SHARED ${libpyside_SRC} ${other_files})
add_library(PySide6::pyside6 ALIAS pyside6)
+#does nothing if QFP_NO_OVERRIDE_OPTIMIZATION_FLAGS (no-size-optimization) flag is not set
+append_size_optimization_flags(pyside6)
+
target_include_directories(pyside6 PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<INSTALL_INTERFACE:include/PySide6>
)
-if (PYSIDE_NUMPY_SUPPORT AND NOT "${NUMPY_INCLUDE_DIR}" STREQUAL "")
- message(STATUS "Enabling experimental numpy support in libpyside.")
- target_include_directories(pyside6 PRIVATE ${NUMPY_INCLUDE_DIR})
- target_compile_definitions(pyside6 PRIVATE -DHAVE_NUMPY
- PRIVATE -DNPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION)
-
-else()
- message(STATUS "Disabled experimental numpy support in libpyside.")
-endif()
+target_compile_definitions(pyside6 PRIVATE -DQT_LEAN_HEADERS=1 -DQT_NO_KEYWORDS=1)
target_link_libraries(pyside6
PRIVATE Shiboken6::libshiboken ${libpyside_libraries})
@@ -88,11 +113,6 @@ set_target_properties(pyside6 PROPERTIES
set_property(TARGET pyside6 PROPERTY CXX_STANDARD 17)
-if(QML_SUPPORT)
- target_compile_definitions(pyside6 PUBLIC PYSIDE_QML_SUPPORT=1)
-endif()
-target_compile_definitions(pyside6 PRIVATE PYSIDE_QML_PRIVATE_API_SUPPORT=${QML_PRIVATE_API_SUPPORT})
-
if(PYSIDE_QT_CONF_PREFIX)
set_property(SOURCE pyside.cpp
APPEND
@@ -104,23 +124,6 @@ endif()
# install stuff
#
-set(libpyside_HEADERS
- class_property.h
- dynamicqmetaobject.h
- feature_select.h
- pysideclassinfo.h
- pysideqenum.h
- pysidemacros.h
- signalmanager.h
- pyside.h
- pysidestaticstrings.h
- pysidemetafunction.h
- pysidesignal.h
- pysideproperty.h
- pysideqflags.h
- pysideweakref.h
-)
-
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
set(LIBRARY_OUTPUT_SUFFIX ${CMAKE_DEBUG_POSTFIX})
else()
@@ -129,6 +132,8 @@ endif()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D QT_NO_CAST_FROM_ASCII -D QT_NO_CAST_TO_ASCII")
+qfp_strip_library("pyside6")
+
# create pkg-config file
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/pyside6.pc.in"
"${CMAKE_CURRENT_BINARY_DIR}/pyside6${pyside6_SUFFIX}.pc" @ONLY)
@@ -157,7 +162,7 @@ set(PYSIDE_GLUE "${CMAKE_INSTALL_PREFIX}/share/PySide6${pyside6_SUFFIX}/glue")
configure_package_config_file(
"${CMAKE_CURRENT_SOURCE_DIR}/PySide6Config-spec.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/install/PySide6Config${SHIBOKEN_PYTHON_CONFIG_SUFFIX}.cmake"
- INSTALL_DESTINATION "${LIB_INSTALL_DIR}/cmake/PySide6-${BINDING_API_VERSION}"
+ INSTALL_DESTINATION "${LIB_INSTALL_DIR}/cmake/PySide6"
PATH_VARS PYSIDE_PYTHONPATH PYSIDE_TYPESYSTEMS PYSIDE_GLUE
)
@@ -174,16 +179,16 @@ install(TARGETS pyside6 EXPORT PySide6Targets
ARCHIVE DESTINATION "${LIB_INSTALL_DIR}"
RUNTIME DESTINATION bin)
install(EXPORT PySide6Targets NAMESPACE PySide6::
- DESTINATION "${LIB_INSTALL_DIR}/cmake/PySide6-${BINDING_API_VERSION}")
+ DESTINATION "${LIB_INSTALL_DIR}/cmake/PySide6")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/pyside6${pyside6_SUFFIX}.pc"
DESTINATION "${LIB_INSTALL_DIR}/pkgconfig")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/PySide6Config.cmake"
- DESTINATION "${LIB_INSTALL_DIR}/cmake/PySide6-${BINDING_API_VERSION}")
+ DESTINATION "${LIB_INSTALL_DIR}/cmake/PySide6")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/install/PySide6Config${SHIBOKEN_PYTHON_CONFIG_SUFFIX}.cmake"
- DESTINATION "${LIB_INSTALL_DIR}/cmake/PySide6-${BINDING_API_VERSION}")
+ DESTINATION "${LIB_INSTALL_DIR}/cmake/PySide6")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/PySide6ConfigVersion.cmake"
- DESTINATION "${LIB_INSTALL_DIR}/cmake/PySide6-${BINDING_API_VERSION}")
+ DESTINATION "${LIB_INSTALL_DIR}/cmake/PySide6")
diff --git a/sources/pyside6/libpyside/class_property.cpp b/sources/pyside6/libpyside/class_property.cpp
index 74ee79e4d..2bed97ef5 100644
--- a/sources/pyside6/libpyside/class_property.cpp
+++ b/sources/pyside6/libpyside/class_property.cpp
@@ -1,47 +1,11 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "pyside.h"
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#include "class_property.h"
#include "pysidestaticstrings.h"
#include "feature_select.h"
-#include "class_property.h"
+#include <pep384ext.h>
#include <shiboken.h>
#include <sbkstaticstrings.h>
@@ -58,55 +22,97 @@ extern "C" {
*/
// `class_property.__get__()`: Always pass the class instead of the instance.
-static PyObject *PyClassProperty_get(PyObject *self, PyObject * /*ob*/, PyObject *cls)
+static PyObject *PyClassProperty_descr_get(PyObject *self, PyObject * /*ob*/, PyObject *cls)
{
- return PyProperty_Type.tp_descr_get(self, cls, cls);
+ return PepExt_Type_GetDescrGetSlot(&PyProperty_Type)(self, cls, cls);
}
// `class_property.__set__()`: Just like the above `__get__()`.
-static int PyClassProperty_set(PyObject *self, PyObject *obj, PyObject *value)
+static int PyClassProperty_descr_set(PyObject *self, PyObject *obj, PyObject *value)
{
PyObject *cls = PyType_Check(obj) ? obj : reinterpret_cast<PyObject *>(Py_TYPE(obj));
- return PyProperty_Type.tp_descr_set(self, cls, value);
+ return PepExt_Type_GetDescrSetSlot(&PyProperty_Type)(self, cls, value);
+}
+
+// PYSIDE-2230: Why is this metaclass necessary?
+//
+// The problem is that the property object already exists as a Python
+// object. We derive a subclass for class properties, without
+// repeating everything but just by adding something to support
+// the class-ness.
+//
+// But this Python property has as metaclass `type` which is incompatible
+// now with SbkObjectType, which generates physically larger types that
+// are incompatible with properties by using PEP 697.
+// Adding a compatible metaclass that is unrelated to `SbkObjectType`
+// is the correct solution. Re-using `SbkObjectType` was actually an abuse,
+// since Python properties are in no way PySide objects.
+
+static PyTypeObject *createClassPropertyTypeType()
+{
+ PyType_Slot PyClassPropertyType_Type_slots[] = {
+ {Py_tp_base, static_cast<void *>(&PyType_Type)},
+ {Py_tp_alloc, reinterpret_cast<void *>(PyType_GenericAlloc)},
+ {Py_tp_free, reinterpret_cast<void *>(PyObject_GC_Del)},
+ {0, nullptr}
+ };
+
+ PyType_Spec PyClassPropertyType_Type_spec = {
+ "1:Shiboken.ClassPropertyType",
+ 0,
+ 0, // sizeof(PyMemberDef), not for PyPy without a __len__ defined
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_TYPE_SUBCLASS,
+ PyClassPropertyType_Type_slots,
+ };
+
+ return SbkType_FromSpec(&PyClassPropertyType_Type_spec);
+}
+
+PyTypeObject *PyClassPropertyType_TypeF()
+{
+ static auto *type = createClassPropertyTypeType();
+ return type;
}
// The property `__doc__` default does not work for class properties
// because PyProperty_Type.tp_init thinks this is a subclass which needs PyObject_SetAttr.
// We call `__init__` while pretending to be a PyProperty_Type instance.
-static int PyClassProperty_init(PyObject *self, PyObject *args, PyObject *kwargs)
+static int PyClassProperty_tp_init(PyObject *self, PyObject *args, PyObject *kwargs)
{
auto hold = Py_TYPE(self);
- Py_TYPE(self) = &PyProperty_Type;
- auto ret = PyProperty_Type.tp_init(self, args, kwargs);
- Py_TYPE(self) = hold;
+ self->ob_type = &PyProperty_Type;
+ auto ret = PepExt_Type_GetInitSlot(&PyProperty_Type)(self, args, kwargs);
+ self->ob_type = hold;
return ret;
}
-static PyType_Slot PyClassProperty_slots[] = {
- {Py_tp_getset, nullptr}, // will be set below
- {Py_tp_base, reinterpret_cast<void *>(&PyProperty_Type)},
- {Py_tp_descr_get, reinterpret_cast<void *>(PyClassProperty_get)},
- {Py_tp_descr_set, reinterpret_cast<void *>(PyClassProperty_set)},
- {Py_tp_init, reinterpret_cast<void *>(PyClassProperty_init)},
- {0, 0}
-};
-
-static PyType_Spec PyClassProperty_spec = {
- "2:PySide6.QtCore.PyClassProperty",
- sizeof(propertyobject),
- 0,
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE,
- PyClassProperty_slots,
-};
-
-PyTypeObject *PyClassPropertyTypeF()
+static PyTypeObject *createPyClassPropertyType()
+{
+ PyType_Slot PyClassProperty_slots[] = {
+ {Py_tp_getset, reinterpret_cast<void *>(PyProperty_Type.tp_getset)}, // will be set below
+ {Py_tp_base, reinterpret_cast<void *>(&PyProperty_Type)},
+ {Py_tp_descr_get, reinterpret_cast<void *>(PyClassProperty_descr_get)},
+ {Py_tp_descr_set, reinterpret_cast<void *>(PyClassProperty_descr_set)},
+ {Py_tp_init, reinterpret_cast<void *>(PyClassProperty_tp_init)},
+ {0, nullptr}
+ };
+
+ PyType_Spec PyClassProperty_spec = {
+ "2:PySide6.QtCore.PyClassProperty",
+ sizeof(propertyobject),
+ 0,
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE,
+ PyClassProperty_slots,
+ };
+
+ if (_PepRuntimeVersion() >= 0x030A00)
+ PyClassProperty_spec.basicsize = sizeof(propertyobject310);
+ return SbkType_FromSpecWithMeta(&PyClassProperty_spec, PyClassPropertyType_TypeF());
+}
+
+PyTypeObject *PyClassProperty_TypeF()
{
- static PyTypeObject *type = nullptr;
- if (type == nullptr) {
- // Provide the same `tp_getset`, which is not inherited.
- PyClassProperty_slots[0].pfunc = PyProperty_Type.tp_getset;
- type = SbkType_FromSpec(&PyClassProperty_spec);
- }
+ static auto *type = createPyClassPropertyType();
return type;
}
@@ -128,16 +134,14 @@ static int SbkObjectType_meta_setattro(PyObject *obj, PyObject *name, PyObject *
// 1. `Type.class_prop = value` --> descr_set: `Type.class_prop.__set__(value)`
// 2. `Type.class_prop = other_class_prop` --> setattro: replace existing `class_prop`
// 3. `Type.regular_attribute = value` --> setattro: regular attribute assignment
- const auto class_prop = reinterpret_cast<PyObject *>(PyClassPropertyTypeF());
+ const auto class_prop = reinterpret_cast<PyObject *>(PyClassProperty_TypeF());
const auto call_descr_set = descr && PyObject_IsInstance(descr, class_prop)
&& !PyObject_IsInstance(value, class_prop);
if (call_descr_set) {
// Call `class_property.__set__()` instead of replacing the `class_property`.
- return Py_TYPE(descr)->tp_descr_set(descr, obj, value);
- } else {
- // Replace existing attribute.
- return PyType_Type.tp_setattro(obj, name, value);
- }
+ return PepExt_Type_GetDescrSetSlot(Py_TYPE(descr))(descr, obj, value);
+ } // Replace existing attribute.
+ return PepExt_Type_GetSetAttroSlot(&PyType_Type)(obj, name, value);
}
} // extern "C"
@@ -145,15 +149,14 @@ static int SbkObjectType_meta_setattro(PyObject *obj, PyObject *name, PyObject *
/*
* These functions are added to the SbkObjectType_TypeF() dynamically.
*/
-namespace PySide { namespace ClassProperty {
+namespace PySide::ClassProperty {
static const char *PyClassProperty_SignatureStrings[] = {
"PySide6.QtCore.PyClassProperty(cls,"
"fget:typing.Optional[typing.Callable[[typing.Any],typing.Any]]=None,"
"fset:typing.Optional[typing.Callable[[typing.Any,typing.Any],None]]=None,"
"fdel:typing.Optional[typing.Callable[[typing.Any],None]]=None,"
- "doc:typing.Optional[str]=None)"
- "->PySide6.QtCore.PyClassProperty",
+ "doc:typing.Optional[str]=None)",
"PySide6.QtCore.PyClassProperty.getter(cls,fget:typing.Callable[[typing.Any],typing.Any])->PySide6.QtCore.PyClassProperty",
"PySide6.QtCore.PyClassProperty.setter(cls,fset:typing.Callable[[typing.Any,typing.Any],None])->PySide6.QtCore.PyClassProperty",
"PySide6.QtCore.PyClassProperty.deleter(cls,fdel:typing.Callable[[typing.Any],None])->PySide6.QtCore.PyClassProperty",
@@ -163,15 +166,13 @@ void init(PyObject *module)
{
PyTypeObject *type = SbkObjectType_TypeF();
type->tp_setattro = SbkObjectType_meta_setattro;
- Py_TYPE(PyClassPropertyTypeF()) = type;
- if (InitSignatureStrings(PyClassPropertyTypeF(), PyClassProperty_SignatureStrings) < 0)
+ if (InitSignatureStrings(PyClassProperty_TypeF(), PyClassProperty_SignatureStrings) < 0)
return;
- Py_INCREF(PyClassPropertyTypeF());
- auto classproptype = reinterpret_cast<PyObject *>(PyClassPropertyTypeF());
+ Py_INCREF(PyClassProperty_TypeF());
+ auto classproptype = reinterpret_cast<PyObject *>(PyClassProperty_TypeF());
PyModule_AddObject(module, "PyClassProperty", classproptype);
}
-} // namespace ClassProperty
-} // namespace PySide
+} // namespace PySide::ClassProperty
diff --git a/sources/pyside6/libpyside/class_property.h b/sources/pyside6/libpyside/class_property.h
index 2bf7334a2..f2ed29f1f 100644
--- a/sources/pyside6/libpyside/class_property.h
+++ b/sources/pyside6/libpyside/class_property.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef CLASS_PROPERTY_H
#define CLASS_PROPERTY_H
@@ -45,25 +9,35 @@
extern "C" {
-typedef struct {
+struct propertyobject {
PyObject_HEAD
PyObject *prop_get;
PyObject *prop_set;
PyObject *prop_del;
PyObject *prop_doc;
int getter_doc;
-} propertyobject;
+};
-PYSIDE_API PyTypeObject *PyClassPropertyTypeF();
+struct propertyobject310 {
+ PyObject_HEAD
+ PyObject *prop_get;
+ PyObject *prop_set;
+ PyObject *prop_del;
+ PyObject *prop_doc;
+ // Note: This is a problem with Limited API: We have no direct access.
+ // You need to pick it from runtime info.
+ PyObject *prop_name;
+ int getter_doc;
+};
+
+PYSIDE_API PyTypeObject *PyClassProperty_TypeF();
} // extern "C"
-namespace PySide {
-namespace ClassProperty {
+namespace PySide::ClassProperty {
PYSIDE_API void init(PyObject *module);
-} // namespace ClassProperty
-} // namespace PySide
+} // namespace PySide::ClassProperty
#endif // CLASS_PROPERTY_H
diff --git a/sources/pyside6/libpyside/dynamicqmetaobject.cpp b/sources/pyside6/libpyside/dynamicqmetaobject.cpp
index fb8762a0a..048001f81 100644
--- a/sources/pyside6/libpyside/dynamicqmetaobject.cpp
+++ b/sources/pyside6/libpyside/dynamicqmetaobject.cpp
@@ -1,53 +1,18 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include "dynamicqmetaobject.h"
-#include "dynamicqmetaobject_p.h"
+#include "pysideqobject.h"
#include "pysidesignal.h"
#include "pysidesignal_p.h"
#include "pysideproperty.h"
#include "pysideproperty_p.h"
#include "pysideslot_p.h"
#include "pysideqenum.h"
+#include "pyside_p.h"
+#include "pysidestaticstrings.h"
#include <shiboken.h>
-#include <pyside.h>
#include <QtCore/QByteArray>
#include <QtCore/QObject>
@@ -59,6 +24,8 @@
#include <cstring>
#include <vector>
+using namespace Qt::StringLiterals;
+
using namespace PySide;
// MetaObjectBuilder: Provides the QMetaObject's returned by
@@ -86,7 +53,8 @@ public:
const QByteArray &signature) const;
int indexOfProperty(const QByteArray &name) const;
int addSlot(const QByteArray &signature);
- int addSlot(const QByteArray &signature, const QByteArray &type);
+ int addSlot(const QByteArray &signature, const QByteArray &type,
+ const QByteArray &tag = {});
int addSignal(const QByteArray &signature);
void removeMethod(QMetaMethod::MethodType mtype, int index);
int getPropertyNotifyId(PySideProperty *property) const;
@@ -103,6 +71,10 @@ public:
const QMetaObject *m_baseObject = nullptr;
MetaObjects m_cachedMetaObjects;
bool m_dirty = true;
+
+private:
+ QMetaPropertyBuilder
+ createProperty(PySideProperty *property, const QByteArray &propertyName);
};
QMetaObjectBuilder *MetaObjectBuilderPrivate::ensureBuilder()
@@ -213,8 +185,8 @@ int MetaObjectBuilder::indexOfProperty(const QByteArray &name) const
static bool checkMethodSignature(const QByteArray &signature)
{
// Common mistake not to add parentheses to the signature.
- const int openParen = signature.indexOf('(');
- const int closingParen = signature.lastIndexOf(')');
+ const auto openParen = signature.indexOf('(');
+ const auto closingParen = signature.lastIndexOf(')');
const bool ok = openParen != -1 && closingParen != -1 && openParen < closingParen;
if (!ok) {
const QByteArray message =
@@ -240,13 +212,17 @@ int MetaObjectBuilder::addSlot(const char *signature)
}
int MetaObjectBuilderPrivate::addSlot(const QByteArray &signature,
- const QByteArray &type)
+ const QByteArray &type,
+ const QByteArray &tag)
{
if (!checkMethodSignature(signature))
return -1;
m_dirty = true;
QMetaMethodBuilder methodBuilder = ensureBuilder()->addSlot(signature);
- methodBuilder.setReturnType(type);
+ if (!type.isEmpty() && type != "void"_ba)
+ methodBuilder.setReturnType(type);
+ if (!tag.isEmpty())
+ methodBuilder.setTag(tag);
return m_baseObject->methodCount() + methodBuilder.index();
}
@@ -301,6 +277,35 @@ int MetaObjectBuilderPrivate::getPropertyNotifyId(PySideProperty *property) cons
return notifyId;
}
+QMetaPropertyBuilder
+ MetaObjectBuilderPrivate::createProperty(PySideProperty *property,
+ const QByteArray &propertyName)
+{
+ int propertyNotifyId = getPropertyNotifyId(property);
+ if (propertyNotifyId >= 0)
+ propertyNotifyId -= m_baseObject->methodCount();
+
+ // For QObject-derived Python types, retrieve the meta type registered
+ // by name from the qmlRegisterType, if there is one. This is required for
+ // grouped QML properties to work.
+ auto *builder = ensureBuilder();
+ auto *typeObject = Property::getTypeObject(property);
+ if (typeObject != nullptr && PyType_Check(typeObject)) {
+ auto *pyTypeObject = reinterpret_cast<PyTypeObject *>(typeObject);
+ if (qstrncmp(pyTypeObject->tp_name, "PySide", 6) != 0
+ && PySide::isQObjectDerived(pyTypeObject, false)) {
+ const QByteArray pyType(pyTypeObject->tp_name);
+ const auto metaType = QMetaType::fromName(pyType + '*');
+ if (metaType.isValid()) {
+ return builder->addProperty(propertyName, pyType,
+ metaType, propertyNotifyId);
+ }
+ }
+ }
+ return builder->addProperty(propertyName, property->d->typeName,
+ propertyNotifyId);
+}
+
int MetaObjectBuilderPrivate::addProperty(const QByteArray &propertyName,
PyObject *data)
{
@@ -308,13 +313,9 @@ int MetaObjectBuilderPrivate::addProperty(const QByteArray &propertyName,
if (index != -1)
return index;
- PySideProperty *property = reinterpret_cast<PySideProperty *>(data);
- int propertyNotifyId = getPropertyNotifyId(property);
- if (propertyNotifyId >= 0)
- propertyNotifyId -= m_baseObject->methodCount();
- auto newProperty =
- ensureBuilder()->addProperty(propertyName, property->d->typeName,
- propertyNotifyId);
+ auto *property = reinterpret_cast<PySideProperty *>(data);
+ auto newProperty = createProperty(property, propertyName);
+
// Adding property attributes
newProperty.setReadable(PySide::Property::isReadable(property));
newProperty.setWritable(PySide::Property::isWritable(property));
@@ -456,6 +457,107 @@ const QMetaObject *MetaObjectBuilder::update()
return m_d->update();
}
+static void formatEnum(QTextStream &str, const QMetaEnum &e)
+{
+ str << '"' << e.name() << "\" {";
+ for (int k = 0, cnt = e.keyCount(); k < cnt; ++k) {
+ if (k)
+ str << ", ";
+ str << e.key(k);
+ }
+ str << "}";
+}
+
+static void formatProperty(QTextStream &str, const QMetaProperty &p)
+{
+ str << '"' << p.name() << "\", " << p.typeName();
+ if (p.isWritable())
+ str << " [writeable]";
+ if (p.isResettable())
+ str << " [resettable]";
+ if (p.isConstant())
+ str << " [constant]";
+ if (p.isFinal())
+ str << " [final]";
+ if (p.isDesignable())
+ str << " [designable]";
+ auto sig = p.notifySignal();
+ if (sig.isValid())
+ str << ", notify=" << sig.name();
+}
+
+static void formatMethod(QTextStream &str, const QMetaMethod &m)
+{
+ str << "type=";
+ switch (m.methodType()) {
+ case QMetaMethod::Method:
+ str << "Method";
+ break;
+ case QMetaMethod::Signal:
+ str << "Signal";
+ break;
+ case QMetaMethod::Slot:
+ str << "Slot";
+ break;
+ case QMetaMethod::Constructor:
+ str << "Constructor";
+ break;
+ }
+
+ str << ", signature="
+ << m.methodSignature();
+ const QByteArrayList parms = m.parameterTypes();
+ if (!parms.isEmpty())
+ str << ", parameters=" << parms.join(", ");
+}
+
+QString MetaObjectBuilder::formatMetaObject(const QMetaObject *metaObject)
+{
+ QString result;
+ QTextStream str(&result);
+ str << "PySide" << QT_VERSION_MAJOR << ".QtCore.QMetaObject(\""
+ << metaObject->className() << '"';
+ if (auto *s = metaObject->superClass())
+ str << " inherits \"" << s->className() << '"';
+ str << ":\n";
+
+ int offset = metaObject->enumeratorOffset();
+ int count = metaObject->enumeratorCount();
+ if (offset < count) {
+ str << "Enumerators:\n";
+ for (int e = offset; e < count; ++e) {
+ str << " #" << e << ' ';
+ formatEnum(str, metaObject->enumerator(e));
+ str << '\n';
+ }
+ }
+
+ offset = metaObject->propertyOffset();
+ count = metaObject->propertyCount();
+ if (offset < count) {
+ str << "Properties:\n";
+ for (int p = offset; p < count; ++p) {
+ str << " #" << p << ' ';
+ formatProperty(str, metaObject->property(p));
+ str << '\n';
+ }
+ }
+
+ offset = metaObject->methodOffset();
+ count = metaObject->methodCount();
+ if (offset < count) {
+ str << "Methods:\n";
+ for (int m = offset; m < count; ++m) {
+ str << " #" << m << ' ';
+ formatMethod(str, metaObject->method(m));
+ str << '\n';
+ }
+ }
+
+ str << ')';
+ return result;
+}
+
using namespace Shiboken;
void MetaObjectBuilderPrivate::parsePythonType(PyTypeObject *type)
@@ -487,7 +589,8 @@ void MetaObjectBuilderPrivate::parsePythonType(PyTypeObject *type)
// Leave the properties to be registered after signals because they may depend on
// notify signals.
for (PyTypeObject *baseType : basesToCheck) {
- PyObject *attrs = baseType->tp_dict;
+ AutoDecRef tpDict(PepType_GetDict(baseType));
+ PyObject *attrs = tpDict.object();
PyObject *key = nullptr;
PyObject *value = nullptr;
Py_ssize_t pos = 0;
@@ -495,64 +598,51 @@ void MetaObjectBuilderPrivate::parsePythonType(PyTypeObject *type)
while (PyDict_Next(attrs, &pos, &key, &value)) {
if (Signal::checkType(value)) {
// Register signals.
- auto data = reinterpret_cast<PySideSignal *>(value);
- if (data->data->signalName.isEmpty())
- data->data->signalName = String::toCString(key);
- for (const auto &s : data->data->signatures) {
- const auto sig = data->data->signalName + '(' + s.signature + ')';
+ auto *data = reinterpret_cast<PySideSignal *>(value)->data;
+ if (data->signalName.isEmpty())
+ data->signalName = String::toCString(key);
+ for (const auto &s : data->signatures) {
+ const auto sig = data->signalName + '(' + s.signature + ')';
if (m_baseObject->indexOfSignal(sig) == -1) {
// Registering the parameterNames to the QMetaObject (PYSIDE-634)
// from:
// Signal(..., arguments=['...', ...]
// the arguments are now on data-data->signalArguments
- if (!data->data->signalArguments->isEmpty()) {
- m_builder->addSignal(sig).setParameterNames(*data->data->signalArguments);
- } else {
- m_builder->addSignal(sig);
- }
+ auto builder = m_builder->addSignal(sig);
+ if (!data->signalArguments.isEmpty())
+ builder.setParameterNames(data->signalArguments);
}
}
}
}
}
- AutoDecRef slotAttrName(String::fromCString(PYSIDE_SLOT_LIST_ATTR));
+ PyObject *slotAttrName = PySide::PySideMagicName::slot_list_attr();
// PYSIDE-315: Now take care of the rest.
// Signals and slots should be separated, unless the types are modified, later.
// We check for this using "is_sorted()". Sorting no longer happens at all.
for (PyTypeObject *baseType : basesToCheck) {
- PyObject *attrs = baseType->tp_dict;
+ AutoDecRef tpDict(PepType_GetDict(baseType));
+ PyObject *attrs = tpDict.object();
PyObject *key = nullptr;
PyObject *value = nullptr;
Py_ssize_t pos = 0;
while (PyDict_Next(attrs, &pos, &key, &value)) {
if (Property::checkType(value)) {
- const int index = m_baseObject->indexOfProperty(String::toCString(key));
+ const QByteArray name = String::toCString(key);
+ const int index = m_baseObject->indexOfProperty(name);
if (index == -1)
- addProperty(String::toCString(key), value);
- } else if (Py_TYPE(value)->tp_call != nullptr) {
+ addProperty(name, value);
+ } else if (PepType_GetSlot(Py_TYPE(value), Py_tp_call) != nullptr) {
// PYSIDE-198: PyFunction_Check does not work with Nuitka.
// Register slots.
if (PyObject_HasAttr(value, slotAttrName)) {
- PyObject *signatureList = PyObject_GetAttr(value, slotAttrName);
- for (Py_ssize_t i = 0, i_max = PyList_Size(signatureList); i < i_max; ++i) {
- PyObject *pySignature = PyList_GET_ITEM(signatureList, i);
- QByteArray signature(String::toCString(pySignature));
- // Split the slot type and its signature.
- QByteArray type;
- const int spacePos = signature.indexOf(' ');
- if (spacePos != -1) {
- type = signature.left(spacePos);
- signature.remove(0, spacePos + 1);
- }
- const int index = m_baseObject->indexOfSlot(signature);
- if (index == -1) {
- if (type.isEmpty() || type == "void")
- addSlot(signature);
- else
- addSlot(signature, type);
- }
+ auto *capsule = PyObject_GetAttr(value, slotAttrName);
+ const auto *entryList = PySide::Slot::dataListFromCapsule(capsule);
+ for (const auto &e : *entryList) {
+ if (m_baseObject->indexOfSlot(e.signature) == -1)
+ addSlot(e.signature, e.resultType, e.tag);
}
}
}
@@ -570,7 +660,7 @@ void MetaObjectBuilderPrivate::parsePythonType(PyTypeObject *type)
AutoDecRef items(PyMapping_Items(members));
Py_ssize_t nr_items = PySequence_Length(items);
- QList<QPair<QByteArray, int> > entries;
+ QList<std::pair<QByteArray, int> > entries;
for (Py_ssize_t idx = 0; idx < nr_items; ++idx) {
AutoDecRef item(PySequence_GetItem(items, idx));
AutoDecRef key(PySequence_GetItem(item, 0));
@@ -578,8 +668,7 @@ void MetaObjectBuilderPrivate::parsePythonType(PyTypeObject *type)
AutoDecRef value(PyObject_GetAttr(member, Shiboken::PyName::value()));
auto ckey = String::toCString(key);
auto ivalue = PyLong_AsSsize_t(value);
- auto thing = QPair<QByteArray, int>(ckey, int(ivalue));
- entries.push_back(thing);
+ entries.push_back(std::make_pair(ckey, int(ivalue)));
}
addEnumerator(name, isFlag, true, entries);
}
diff --git a/sources/pyside6/libpyside/dynamicqmetaobject.h b/sources/pyside6/libpyside/dynamicqmetaobject.h
index 6e7a079a3..dd33f65f7 100644
--- a/sources/pyside6/libpyside/dynamicqmetaobject.h
+++ b/sources/pyside6/libpyside/dynamicqmetaobject.h
@@ -1,50 +1,17 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef DYNAMICQMETAOBJECT_H
#define DYNAMICQMETAOBJECT_H
#include <sbkpython.h>
+#include <pysidemacros.h>
#include <QtCore/QMetaObject>
#include <QtCore/QMetaMethod>
+#include <utility>
+
class MetaObjectBuilderPrivate;
namespace PySide
@@ -52,9 +19,9 @@ namespace PySide
class MetaObjectBuilder
{
- Q_DISABLE_COPY(MetaObjectBuilder)
+ Q_DISABLE_COPY_MOVE(MetaObjectBuilder)
public:
- using EnumValue = QPair<QByteArray, int>;
+ using EnumValue = std::pair<QByteArray, int>;
using EnumValues = QList<EnumValue>;
MetaObjectBuilder(const char *className, const QMetaObject *metaObject);
@@ -77,6 +44,8 @@ public:
const QMetaObject *update();
+ PYSIDE_API static QString formatMetaObject(const QMetaObject *metaObject);
+
private:
MetaObjectBuilderPrivate *m_d;
};
diff --git a/sources/pyside6/libpyside/dynamicqmetaobject_p.h b/sources/pyside6/libpyside/dynamicqmetaobject_p.h
deleted file mode 100644
index 11211ca11..000000000
--- a/sources/pyside6/libpyside/dynamicqmetaobject_p.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef DYNAMICMETAPROPERTY_P_H
-#define DYNAMICMETAPROPERTY_P_H
-
-#include <sbkpython.h>
-
-#include <QtCore/QByteArray>
-#include <QtCore/QMetaMethod>
-
-struct PySideProperty;
-namespace PySide
-{
- class MethodData
- {
- public:
- MethodData();
- /**
- * \param signature method signature
- * \param type method return type
- */
- MethodData(QMetaMethod::MethodType mtype,
- const QByteArray &signature,
- const QByteArray &rtype = QByteArray("void"));
- void clear();
- bool isValid() const;
- const QByteArray &signature() const { return m_signature; }
- const QByteArray &returnType() const { return m_rtype; }
- QMetaMethod::MethodType methodType() const { return m_mtype; }
- //Qt5 moc: now we have to store method parameter names, count, type
- QList<QByteArray> parameterTypes() const;
- int parameterCount() const;
- QByteArray name() const;
- bool operator==(const MethodData &other) const;
-
- private:
- QByteArray m_signature;
- QByteArray m_rtype;
- QMetaMethod::MethodType m_mtype;
- static const QByteArray m_emptySig;
- };
-
- class PropertyData
- {
- public:
- PropertyData();
- PropertyData(const char *name, int cachedNotifyId = 0,
- PySideProperty *data = nullptr);
- const QByteArray &name() const { return m_name; }
- PySideProperty *data() const { return m_data; }
- QByteArray type() const;
- uint flags() const;
- bool isValid() const;
- int cachedNotifyId() const;
- bool operator==(const PropertyData &other) const;
- bool operator==(const char *name) const;
-
- private:
- QByteArray m_name;
- int m_cachedNotifyId;
- PySideProperty *m_data;
- };
-
-inline bool MethodData::operator==(const MethodData &other) const
-{
- return m_mtype == other.methodType() && m_signature == other.signature();
-}
-
-}
-
-#endif
diff --git a/sources/pyside6/libpyside/feature_select.cpp b/sources/pyside6/libpyside/feature_select.cpp
index 8b9834620..cfd465267 100644
--- a/sources/pyside6/libpyside/feature_select.cpp
+++ b/sources/pyside6/libpyside/feature_select.cpp
@@ -1,49 +1,17 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include "feature_select.h"
-#include "pyside.h"
+#include "pysidecleanup.h"
+#include "pysideqobject.h"
#include "pysidestaticstrings.h"
#include "class_property.h"
#include <shiboken.h>
#include <sbkfeature_base.h>
+#include <signature_p.h>
+
+#include <QtCore/QStringList>
//////////////////////////////////////////////////////////////////////////////
//
@@ -121,18 +89,14 @@ This is everything that the following code does.
*****************************************************************************/
-namespace PySide { namespace Feature {
+namespace PySide::Feature {
using namespace Shiboken;
-typedef bool(*FeatureProc)(PyTypeObject *type, PyObject *prev_dict, int id);
+using FeatureProc = bool(*)(PyTypeObject *type, PyObject *prev_dict, int id);
static FeatureProc *featurePointer = nullptr;
-static PyObject *_fast_id_array[1 + 256] = {};
-// this will point to element 1 to allow indexing from -1
-static PyObject **fast_id_array;
-
// Create a derived dict class
static PyTypeObject *
createDerivedDictType()
@@ -143,7 +107,7 @@ createDerivedDictType()
PyObject *ChameleonDict = PepRun_GetResult(R"CPP(if True:
class ChameleonDict(dict):
- __slots__ = ("dict_ring", "select_id")
+ __slots__ = ("dict_ring", "select_id", "orig_dict")
result = ChameleonDict
@@ -165,43 +129,30 @@ static void ensureNewDictType()
static inline PyObject *nextInCircle(PyObject *dict)
{
// returns a borrowed ref
- AutoDecRef next_dict(PyObject_GetAttr(dict, PyName::dict_ring()));
+ AutoDecRef next_dict(PyObject_GetAttr(dict, PySideName::dict_ring()));
return next_dict;
}
static inline void setNextDict(PyObject *dict, PyObject *next_dict)
{
- PyObject_SetAttr(dict, PyName::dict_ring(), next_dict);
-}
-
-static inline void setSelectId(PyObject *dict, PyObject *select_id)
-{
- PyObject_SetAttr(dict, PyName::select_id(), select_id);
+ PyObject_SetAttr(dict, PySideName::dict_ring(), next_dict);
}
-static inline PyObject *getSelectId(PyObject *dict)
+static inline void setSelectId(PyObject *dict, int select_id)
{
- auto select_id = PyObject_GetAttr(dict, PyName::select_id());
- return select_id;
+ PyObject_SetAttr(dict, PySideName::select_id(), PyLong_FromLong(select_id));
}
-static inline void setCurrentSelectId(PyTypeObject *type, PyObject *select_id)
+static inline int getSelectId(PyObject *dict)
{
- SbkObjectType_SetReserved(type, PyLong_AsSsize_t(select_id)); // int/long cheating
-}
-
-static inline void setCurrentSelectId(PyTypeObject *type, int id)
-{
- SbkObjectType_SetReserved(type, id);
-}
-
-static inline PyObject *getCurrentSelectId(PyTypeObject *type)
-{
- int id = SbkObjectType_GetReserved(type);
- // This can be too early.
- if (id < 0)
- id = 0;
- return fast_id_array[id];
+ auto *py_select_id = PyObject_GetAttr(dict, PyName::select_id());
+ if (py_select_id == nullptr) {
+ PyErr_Clear();
+ return 0;
+ }
+ int ret = PyLong_AsLong(py_select_id);
+ Py_DECREF(py_select_id);
+ return ret;
}
static bool replaceClassDict(PyTypeObject *type)
@@ -211,33 +162,32 @@ static bool replaceClassDict(PyTypeObject *type)
* This is mandatory for all type dicts when they are touched.
*/
ensureNewDictType();
- PyObject *dict = type->tp_dict;
- auto ob_ndt = reinterpret_cast<PyObject *>(new_dict_type);
- PyObject *new_dict = PyObject_CallObject(ob_ndt, nullptr);
+ AutoDecRef dict(PepType_GetDict(type));
+ auto *ob_ndt = reinterpret_cast<PyObject *>(new_dict_type);
+ auto *new_dict = PyObject_CallObject(ob_ndt, nullptr);
if (new_dict == nullptr || PyDict_Update(new_dict, dict) < 0)
return false;
// Insert the default id. Cannot fail for small numbers.
- AutoDecRef select_id(PyLong_FromLong(0));
- setSelectId(new_dict, select_id);
+ setSelectId(new_dict, 0);
// insert the dict into itself as ring
setNextDict(new_dict, new_dict);
// We have now an exact copy of the dict with a new type.
- // Replace `__dict__` which usually has refcount 1 (but see cyclic_test.py)
- Py_DECREF(type->tp_dict);
- type->tp_dict = new_dict;
- setCurrentSelectId(type, select_id.object());
+ PepType_SetDict(type, new_dict);
+ // PYSIDE-2404: Retain the original dict for easy late init.
+ PyObject_SetAttr(new_dict, PySideName::orig_dict(), dict);
return true;
}
-static bool addNewDict(PyTypeObject *type, PyObject *select_id)
+static bool addNewDict(PyTypeObject *type, int select_id)
{
/*
* Add a new dict to the ring and set it as `type->tp_dict`.
* A 'false' return is fatal.
*/
- auto dict = type->tp_dict;
- auto ob_ndt = reinterpret_cast<PyObject *>(new_dict_type);
- auto new_dict = PyObject_CallObject(ob_ndt, nullptr);
+ AutoDecRef dict(PepType_GetDict(type));
+ AutoDecRef orig_dict(PyObject_GetAttr(dict, PySideName::orig_dict()));
+ auto *ob_ndt = reinterpret_cast<PyObject *>(new_dict_type);
+ auto *new_dict = PyObject_CallObject(ob_ndt, nullptr);
if (new_dict == nullptr)
return false;
setSelectId(new_dict, select_id);
@@ -245,35 +195,35 @@ static bool addNewDict(PyTypeObject *type, PyObject *select_id)
auto next_dict = nextInCircle(dict);
setNextDict(dict, new_dict);
setNextDict(new_dict, next_dict);
- type->tp_dict = new_dict;
- setCurrentSelectId(type, select_id);
+ PepType_SetDict(type, new_dict);
+ // PYSIDE-2404: Retain the original dict for easy late init.
+ PyObject_SetAttr(new_dict, PySideName::orig_dict(), orig_dict);
return true;
}
-static bool moveToFeatureSet(PyTypeObject *type, PyObject *select_id)
+static inline bool moveToFeatureSet(PyTypeObject *type, int select_id)
{
/*
* Rotate the ring to the given `select_id` and return `true`.
* If not found, stay at the current position and return `false`.
*/
- auto initial_dict = type->tp_dict;
- auto dict = initial_dict;
+ AutoDecRef tpDict(PepType_GetDict(type));
+ auto *initial_dict = tpDict.object();
+ auto *dict = initial_dict;
do {
- dict = nextInCircle(dict);
- AutoDecRef current_id(getSelectId(dict));
+ int current_id = getSelectId(dict);
// This works because small numbers are singleton objects.
if (current_id == select_id) {
- type->tp_dict = dict;
- setCurrentSelectId(type, select_id);
+ PepType_SetDict(type, dict);
return true;
}
+ dict = nextInCircle(dict);
} while (dict != initial_dict);
- type->tp_dict = initial_dict;
- setCurrentSelectId(type, getSelectId(initial_dict));
+ PepType_SetDict(type, initial_dict);
return false;
}
-static bool createNewFeatureSet(PyTypeObject *type, PyObject *select_id)
+static bool createNewFeatureSet(PyTypeObject *type, int select_id)
{
/*
* Create a new feature set.
@@ -283,37 +233,29 @@ static bool createNewFeatureSet(PyTypeObject *type, PyObject *select_id)
* content in `prev_dict`. It is responsible of filling `type->tp_dict`
* with modified content.
*/
- static auto small_1 = PyLong_FromLong(255);
- Q_UNUSED(small_1);
- static auto small_2 = PyLong_FromLong(255);
- Q_UNUSED(small_2);
- // make sure that small integers are cached
- assert(small_1 != nullptr && small_1 == small_2);
-
- static auto zero = fast_id_array[0];
- bool ok = moveToFeatureSet(type, zero);
+
+ bool ok = moveToFeatureSet(type, 0);
Q_UNUSED(ok);
assert(ok);
- AutoDecRef prev_dict(type->tp_dict);
- Py_INCREF(prev_dict); // keep the first ref unchanged
+ AutoDecRef prev_dict(PepType_GetDict(type));
if (!addNewDict(type, select_id))
return false;
- auto id = PyLong_AsSsize_t(select_id); // int/long cheating
+ int id = select_id;
if (id == -1)
return false;
- setCurrentSelectId(type, id);
FeatureProc *proc = featurePointer;
for (int idx = id; *proc != nullptr; ++proc, idx >>= 1) {
if (idx & 1) {
// clear the tp_dict that will get new content
- PyDict_Clear(type->tp_dict);
+ AutoDecRef tpDict(PepType_GetDict(type));
+ PyDict_Clear(tpDict);
// let the proc re-fill the tp_dict
if (!(*proc)(type, prev_dict, id))
return false;
// if there is still a step, prepare `prev_dict`
if (idx >> 1) {
- prev_dict.reset(PyDict_Copy(type->tp_dict));
+ prev_dict.reset(PyDict_Copy(tpDict.object()));
if (prev_dict.isNull())
return false;
}
@@ -322,30 +264,59 @@ static bool createNewFeatureSet(PyTypeObject *type, PyObject *select_id)
return true;
}
-static bool SelectFeatureSetSubtype(PyTypeObject *type, PyObject *select_id)
+static inline void SelectFeatureSetSubtype(PyTypeObject *type, int select_id)
{
/*
* This is the selector for one sublass. We need to call this for
* every subclass until no more subclasses or reaching the wanted id.
*/
- if (Py_TYPE(type->tp_dict) == Py_TYPE(PyType_Type.tp_dict)) {
+ static const auto *pyTypeType_tp_dict = PepType_GetDict(&PyType_Type);
+ AutoDecRef tpDict(PepType_GetDict(type));
+ if (Py_TYPE(tpDict.object()) == Py_TYPE(pyTypeType_tp_dict)) {
// On first touch, we initialize the dynamic naming.
// The dict type will be replaced after the first call.
if (!replaceClassDict(type)) {
Py_FatalError("failed to replace class dict!");
- return false;
+ return;
}
}
if (!moveToFeatureSet(type, select_id)) {
if (!createNewFeatureSet(type, select_id)) {
Py_FatalError("failed to create a new feature set!");
- return false;
+ return;
}
}
- return true;
+ }
+
+static PyObject *cached_globals{};
+static int last_select_id{};
+
+static inline int getFeatureSelectId()
+{
+ static auto *undef = PyLong_FromLong(-1);
+ static auto *feature_dict = GetFeatureDict();
+ // these things are all borrowed
+ auto *globals = PyEval_GetGlobals();
+ if (globals == nullptr
+ || globals == cached_globals)
+ return last_select_id;
+
+ auto *modname = PyDict_GetItem(globals, PyMagicName::name());
+ if (modname == nullptr)
+ return last_select_id;
+
+ auto *py_select_id = PyDict_GetItem(feature_dict, modname);
+ if (py_select_id == nullptr
+ || !PyLong_Check(py_select_id)
+ || py_select_id == undef)
+ return last_select_id;
+
+ cached_globals = globals;
+ last_select_id = PyLong_AsLong(py_select_id) & 0xff;
+ return last_select_id;
}
-static inline PyObject *SelectFeatureSet(PyTypeObject *type)
+static inline void SelectFeatureSet(PyTypeObject *type)
{
/*
* This is the main function of the module.
@@ -355,33 +326,35 @@ static inline PyObject *SelectFeatureSet(PyTypeObject *type)
* Generated functions call this directly.
* Shiboken will assign it via a public hook of `basewrapper.cpp`.
*/
- if (Py_TYPE(type->tp_dict) == Py_TYPE(PyType_Type.tp_dict)) {
+ static const auto *pyTypeType_tp_dict = PepType_GetDict(&PyType_Type);
+ AutoDecRef tpDict(PepType_GetDict(type));
+ if (Py_TYPE(tpDict.object()) == Py_TYPE(pyTypeType_tp_dict)) {
// We initialize the dynamic features by using our own dict type.
- if (!replaceClassDict(type))
- return nullptr;
- }
- PyObject *select_id = getFeatureSelectId(); // borrowed
- PyObject *current_id = getCurrentSelectId(type); // borrowed
- static PyObject *undef = fast_id_array[-1];
-
- // PYSIDE-1019: During import PepType_SOTP is still zero.
- if (current_id == undef)
- current_id = select_id = fast_id_array[0];
-
- if (select_id != current_id) {
- PyObject *mro = type->tp_mro;
- Py_ssize_t idx, n = PyTuple_GET_SIZE(mro);
- // We leave 'Shiboken.Object' and 'object' alone, therefore "n - 2".
- for (idx = 0; idx < n - 2; idx++) {
- auto *sub_type = reinterpret_cast<PyTypeObject *>(PyTuple_GET_ITEM(mro, idx));
- // When any subtype is already resolved (false), we can stop.
- if (!SelectFeatureSetSubtype(sub_type, select_id))
- break;
+ if (!replaceClassDict(type)) {
+ Py_FatalError("failed to replace class dict!");
+ return;
}
- // PYSIDE-1436: Clear all caches for the type and subtypes.
- PyType_Modified(type);
}
- return type->tp_dict;
+
+ int select_id = getFeatureSelectId();
+ static int last_select_id{};
+ static PyTypeObject *last_type{};
+
+ // PYSIDE-2029: Implement a very simple but effective cache that cannot fail.
+ if (type == last_type && select_id == last_select_id)
+ return;
+ last_type = type;
+ last_select_id = select_id;
+
+ auto *mro = type->tp_mro;
+ Py_ssize_t idx, n = PyTuple_GET_SIZE(mro);
+ // We leave 'Shiboken.Object' and 'object' alone, therefore "n - 2".
+ for (idx = 0; idx < n - 2; idx++) {
+ auto *sub_type = reinterpret_cast<PyTypeObject *>(PyTuple_GET_ITEM(mro, idx));
+ SelectFeatureSetSubtype(sub_type, select_id);
+ }
+ // PYSIDE-1436: Clear all caches for the type and subtypes.
+ PyType_Modified(type);
}
// For cppgenerator:
@@ -389,15 +362,14 @@ void Select(PyObject *obj)
{
if (featurePointer == nullptr)
return;
- auto type = Py_TYPE(obj);
- type->tp_dict = SelectFeatureSet(type);
+ auto *type = Py_TYPE(obj);
+ SelectFeatureSet(type);
}
-PyObject *Select(PyTypeObject *type)
+void Select(PyTypeObject *type)
{
if (featurePointer != nullptr)
- type->tp_dict = SelectFeatureSet(type);
- return type->tp_dict;
+ SelectFeatureSet(type);
}
static bool feature_01_addLowerNames(PyTypeObject *type, PyObject *prev_dict, int id);
@@ -421,30 +393,27 @@ static FeatureProc featureProcArray[] = {
nullptr
};
-void finalize()
-{
- for (int idx = -1; idx < 256; ++idx)
- Py_DECREF(fast_id_array[idx]);
-}
-
static bool patch_property_impl();
static bool is_initialized = false;
+static void featureEnableCallback(bool enable)
+{
+ featurePointer = enable ? featureProcArray : nullptr;
+}
+
void init()
{
// This function can be called multiple times.
if (!is_initialized) {
- fast_id_array = &_fast_id_array[1];
- for (int idx = -1; idx < 256; ++idx)
- fast_id_array[idx] = PyLong_FromLong(idx);
featurePointer = featureProcArray;
initSelectableFeature(SelectFeatureSet);
- registerCleanupFunction(finalize);
+ setSelectableFeatureCallback(featureEnableCallback);
patch_property_impl();
is_initialized = true;
}
+ last_select_id = 0;
// Reset the cache. This is called at any "from __feature__ import".
- initFeatureShibokenPart();
+ cached_globals = nullptr;
}
void Enable(bool enable)
@@ -474,7 +443,7 @@ static PyObject *methodWithNewName(PyTypeObject *type,
/*
* Create a method with a lower case name.
*/
- auto obtype = reinterpret_cast<PyObject *>(type);
+ auto *obtype = reinterpret_cast<PyObject *>(type);
int len = strlen(new_name);
auto name = new char[len + 1];
strcpy(name, new_name);
@@ -496,12 +465,20 @@ static PyObject *methodWithNewName(PyTypeObject *type,
return descr;
}
-static bool feature_01_addLowerNames(PyTypeObject *type, PyObject *prev_dict, int id)
+static bool feature_01_addLowerNames(PyTypeObject *type, PyObject *prev_dict, int /* id */)
{
+ PyMethodDef *meth = type->tp_methods;
+ AutoDecRef tpDict(PepType_GetDict(type));
+ PyObject *lower_dict = tpDict.object();
+
+ // PYSIDE-1702: A user-defined class in Python has no internal method list.
+ // We are not going to change anything.
+ if (!meth)
+ return PyDict_Update(lower_dict, prev_dict) >= 0;
+
/*
* Add objects with lower names to `type->tp_dict` from 'prev_dict`.
*/
- PyObject *lower_dict = type->tp_dict;
PyObject *key, *value;
Py_ssize_t pos = 0;
@@ -514,11 +491,9 @@ static bool feature_01_addLowerNames(PyTypeObject *type, PyObject *prev_dict, in
continue;
}
}
+
// Then we walk over the tp_methods to get all methods and insert
// them with changed names.
- PyMethodDef *meth = type->tp_methods;
- if (!meth)
- return true;
for (; meth != nullptr && meth->ml_name != nullptr; ++meth) {
const char *name = String::toCString(String::getSnakeCaseName(meth->ml_name, true));
@@ -541,20 +516,20 @@ static bool feature_01_addLowerNames(PyTypeObject *type, PyObject *prev_dict, in
// This is the Python 2 version for inspection of m_ml, only.
// The actual Python 3 version is larget.
-typedef struct {
+struct PyCFunctionObject {
PyObject_HEAD
PyMethodDef *m_ml; /* Description of the C function to call */
PyObject *m_self; /* Passed as 'self' arg to the C func, can be NULL */
PyObject *m_module; /* The __module__ attribute, can be anything */
-} PyCFunctionObject;
+};
static PyObject *modifyStaticToClassMethod(PyTypeObject *type, PyObject *sm)
{
AutoDecRef func_ob(PyObject_GetAttr(sm, PyMagicName::func()));
if (func_ob.isNull())
return nullptr;
- auto func = reinterpret_cast<PyCFunctionObject *>(func_ob.object());
- auto new_func = new PyMethodDef;
+ auto *func = reinterpret_cast<PyCFunctionObject *>(func_ob.object());
+ auto *new_func = new PyMethodDef;
new_func->ml_name = func->m_ml->ml_name;
new_func->ml_meth = func->m_ml->ml_meth;
new_func->ml_flags = (func->m_ml->ml_flags & ~METH_STATIC) | METH_CLASS;
@@ -568,27 +543,27 @@ static PyObject *createProperty(PyTypeObject *type, PyObject *getter, PyObject *
assert(getter != nullptr);
if (setter == nullptr)
setter = Py_None;
- auto ptype = &PyProperty_Type;
+ auto *ptype = &PyProperty_Type;
if (Py_TYPE(getter) == PepStaticMethod_TypePtr) {
- ptype = PyClassPropertyTypeF();
+ ptype = PyClassProperty_TypeF();
getter = modifyStaticToClassMethod(type, getter);
if (setter != Py_None)
setter = modifyStaticToClassMethod(type, setter);
}
- auto obtype = reinterpret_cast<PyObject *>(ptype);
+ auto *obtype = reinterpret_cast<PyObject *>(ptype);
PyObject *prop = PyObject_CallFunctionObjArgs(obtype, getter, setter, nullptr);
return prop;
}
-static QStringList parseFields(const char *propstr, bool *stdwrite)
+static const QByteArrayList parseFields(const char *propStr, bool *stdWrite)
{
/*
* Break the string into subfields at ':' and add defaults.
*/
- if (stdwrite)
- *stdwrite = true;
- QString s = QString(QLatin1String(propstr));
- auto list = s.split(QLatin1Char(':'));
+ if (stdWrite)
+ *stdWrite = true;
+ QByteArray s = QByteArray(propStr);
+ auto list = s.split(u':');
assert(list.size() == 2 || list.size() == 3);
auto name = list[0];
auto read = list[1];
@@ -597,20 +572,70 @@ static QStringList parseFields(const char *propstr, bool *stdwrite)
if (list.size() == 2)
return list;
auto write = list[2];
- if (stdwrite)
- *stdwrite = write.isEmpty();
+ if (stdWrite)
+ *stdWrite = write.isEmpty();
if (write.isEmpty()) {
- list[2] = QLatin1String("set") + name;
- list[2][3] = list[2][3].toUpper();
+ list[2] = "set" + name;
+ list[2][3] = std::toupper(list[2][3]);
}
return list;
}
-static PyObject *make_snake_case(QString s, bool lower)
+static PyObject *make_snake_case(const QByteArray &s, bool lower)
{
if (s.isNull())
return nullptr;
- return String::getSnakeCaseName(s.toLatin1().data(), lower);
+ return String::getSnakeCaseName(s.constData(), lower);
+}
+
+PyObject *adjustPropertyName(PyObject *dict, PyObject *name)
+{
+ // PYSIDE-1670: If this is a function with multiple arity or with
+ // parameters, we use a mangled name for the property.
+ PyObject *existing = PyDict_GetItem(dict, name); // borrowed
+ if (existing) {
+ Shiboken::AutoDecRef sig(get_signature_intern(existing, nullptr));
+ if (sig.object()) {
+ bool name_clash = false;
+ if (PyList_CheckExact(sig)) {
+ name_clash = true;
+ } else {
+ Shiboken::AutoDecRef params(PyObject_GetAttr(sig, PySideName::parameters()));
+ // Are there parameters except self or cls?
+ if (PyObject_Size(params.object()) > 1)
+ name_clash = true;
+ }
+ if (name_clash) {
+ // PyPy has no PyUnicode_AppendAndDel function, yet
+ Shiboken::AutoDecRef hold(name);
+ Shiboken::AutoDecRef under(Py_BuildValue("s", "_"));
+ name = PyUnicode_Concat(hold, under);
+ }
+ }
+ }
+ return name;
+}
+
+static QByteArrayList GetPropertyStringsMro(PyTypeObject *type)
+{
+ /*
+ * PYSIDE-2042: There are possibly more methods which should become properties,
+ * because the wrapping process does not obey inheritance.
+ * Therefore, we need to walk the mro to find property strings.
+ */
+ auto res = QByteArrayList();
+
+ PyObject *mro = type->tp_mro;
+ const Py_ssize_t n = PyTuple_GET_SIZE(mro);
+ // We leave 'Shiboken.Object' and 'object' alone, therefore "n - 2".
+ for (Py_ssize_t idx = 0; idx < n - 2; idx++) {
+ auto *subType = reinterpret_cast<PyTypeObject *>(PyTuple_GET_ITEM(mro, idx));
+ auto props = SbkObjectType_GetPropertyStrings(subType);
+ if (props != nullptr)
+ for (; *props != nullptr; ++props)
+ res << QByteArray(*props);
+ }
+ return res;
}
static bool feature_02_true_property(PyTypeObject *type, PyObject *prev_dict, int id)
@@ -619,11 +644,19 @@ static bool feature_02_true_property(PyTypeObject *type, PyObject *prev_dict, in
* Use the property info to create true Python property objects.
*/
+ PyMethodDef *meth = type->tp_methods;
+ AutoDecRef tpDict(PepType_GetDict(type));
+ PyObject *prop_dict = tpDict.object();
+
// The empty `tp_dict` gets populated by the previous dict.
- PyObject *prop_dict = type->tp_dict;
if (PyDict_Update(prop_dict, prev_dict) < 0)
return false;
+ // PYSIDE-1702: A user-defined class in Python has no internal method list.
+ // We are not going to change anything.
+ if (!meth)
+ return true;
+
// For speed, we establish a helper dict that maps the removed property
// method names to property name.
PyObject *prop_methods = PyDict_GetItem(prop_dict, PyMagicName::property_methods());
@@ -635,13 +668,13 @@ static bool feature_02_true_property(PyTypeObject *type, PyObject *prev_dict, in
}
// We then replace methods by properties.
bool lower = (id & 0x01) != 0;
- auto props = SbkObjectType_GetPropertyStrings(type);
- if (props == nullptr || *props == nullptr)
+ auto props = GetPropertyStringsMro(type);
+ if (props.isEmpty())
return true;
- for (; *props != nullptr; ++props) {
+
+ for (const auto &propStr : std::as_const(props)) {
bool isStdWrite;
- auto propstr = *props;
- auto fields = parseFields(propstr, &isStdWrite);
+ auto fields = parseFields(propStr, &isStdWrite);
bool haveWrite = fields.size() == 3;
PyObject *name = make_snake_case(fields[0], lower);
PyObject *read = make_snake_case(fields[1], lower);
@@ -652,6 +685,9 @@ static bool feature_02_true_property(PyTypeObject *type, PyObject *prev_dict, in
continue;
PyObject *setter = haveWrite ? PyDict_GetItem(prev_dict, write) : nullptr;
+ // PYSIDE-1670: If multiple arities exist as a property name, rename it.
+ name = adjustPropertyName(prop_dict, name);
+
AutoDecRef PyProperty(createProperty(type, getter, setter));
if (PyProperty.isNull())
return false;
@@ -684,7 +720,7 @@ static bool feature_02_true_property(PyTypeObject *type, PyObject *prev_dict, in
static PyObject *property_doc_get(PyObject *self, void *)
{
- auto po = reinterpret_cast<propertyobject *>(self);
+ auto *po = reinterpret_cast<propertyobject *>(self);
if (po->prop_doc != nullptr && po->prop_doc != Py_None) {
Py_INCREF(po->prop_doc);
@@ -692,7 +728,7 @@ static PyObject *property_doc_get(PyObject *self, void *)
}
if (po->prop_get) {
// PYSIDE-1019: Fetch the default `__doc__` from fget. We do it late.
- auto txt = PyObject_GetAttr(po->prop_get, PyMagicName::doc());
+ auto *txt = PyObject_GetAttr(po->prop_get, PyMagicName::doc());
if (txt != nullptr) {
Py_INCREF(txt);
po->prop_doc = txt;
@@ -706,7 +742,7 @@ static PyObject *property_doc_get(PyObject *self, void *)
static int property_doc_set(PyObject *self, PyObject *value, void *)
{
- auto po = reinterpret_cast<propertyobject *>(self);
+ auto *po = reinterpret_cast<propertyobject *>(self);
Py_INCREF(value);
po->prop_doc = value;
@@ -723,12 +759,12 @@ static bool patch_property_impl()
{
// Turn `__doc__` into a computed attribute without changing writability.
auto gsp = property_getset;
- auto type = &PyProperty_Type;
- auto dict = type->tp_dict;
+ auto *type = &PyProperty_Type;
+ AutoDecRef dict(PepType_GetDict(type));
AutoDecRef descr(PyDescr_NewGetSet(type, gsp));
if (descr.isNull())
return false;
- if (PyDict_SetItemString(dict, gsp->name, descr) < 0)
+ if (PyDict_SetItemString(dict.object(), gsp->name, descr) < 0)
return false;
return true;
}
@@ -737,13 +773,14 @@ static bool patch_property_impl()
//
// PYSIDE-1019: Support switchable extensions
//
-// Feature 0x04..0x40: A fake switchable option for testing
+// Feature 0x04..0x80: A fake switchable option for testing
//
#define SIMILAR_FEATURE(xx) \
-static bool feature_##xx##_addDummyNames(PyTypeObject *type, PyObject *prev_dict, int id) \
+static bool feature_##xx##_addDummyNames(PyTypeObject *type, PyObject *prev_dict, int /* id */) \
{ \
- PyObject *dict = type->tp_dict; \
+ AutoDecRef tpDict(PepType_GetDict(type)); \
+ PyObject *dict = tpDict.object(); \
if (PyDict_Update(dict, prev_dict) < 0) \
return false; \
if (PyDict_SetItemString(dict, "fake_feature_" #xx, Py_None) < 0) \
@@ -758,5 +795,4 @@ SIMILAR_FEATURE(20)
SIMILAR_FEATURE(40)
SIMILAR_FEATURE(80)
-} // namespace PySide
-} // namespace Feature
+} // namespace PySide::Feature
diff --git a/sources/pyside6/libpyside/feature_select.h b/sources/pyside6/libpyside/feature_select.h
index c7c14df3c..bf5a1b56b 100644
--- a/sources/pyside6/libpyside/feature_select.h
+++ b/sources/pyside6/libpyside/feature_select.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef FEATURE_SELECT_H
#define FEATURE_SELECT_H
@@ -43,15 +7,13 @@
#include "pysidemacros.h"
#include <sbkpython.h>
-namespace PySide {
-namespace Feature {
+namespace PySide::Feature {
PYSIDE_API void init();
PYSIDE_API void Select(PyObject *obj);
-PYSIDE_API PyObject *Select(PyTypeObject *type);
+PYSIDE_API void Select(PyTypeObject *type);
PYSIDE_API void Enable(bool);
-} // namespace Feature
-} // namespace PySide
+} // namespace PySide::Feature
#endif // FEATURE_SELECT_H
diff --git a/sources/pyside6/libpyside/globalreceiverv2.cpp b/sources/pyside6/libpyside/globalreceiverv2.cpp
index 601e893f7..51070b4ad 100644
--- a/sources/pyside6/libpyside/globalreceiverv2.cpp
+++ b/sources/pyside6/libpyside/globalreceiverv2.cpp
@@ -1,79 +1,31 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include "globalreceiverv2.h"
-#include "dynamicqmetaobject_p.h"
#include "pysideweakref.h"
#include "pysidestaticstrings.h"
+#include "pysideutils.h"
#include "signalmanager.h"
#include <autodecref.h>
#include <gilstate.h>
+#include <pep384ext.h>
-#include <QtCore/qhashfunctions.h>
#include <QtCore/QMetaMethod>
#include <QtCore/QSet>
+#include <QtCore/QDebug>
#include <cstring>
#define RECEIVER_DESTROYED_SLOT_NAME "__receiverDestroyed__(QObject*)"
-namespace
-{
- static int DESTROY_SIGNAL_ID = 0;
- static int DESTROY_SLOT_ID = 0;
-}
namespace PySide
{
-size_t qHash(const GlobalReceiverKey &k, size_t seed)
-{
- QtPrivate::QHashCombine hash;
- seed = hash(seed, k.object);
- seed = hash(seed, k.method);
- return seed;
-}
-
class DynamicSlotDataV2
{
- Q_DISABLE_COPY(DynamicSlotDataV2)
+ Q_DISABLE_COPY_MOVE(DynamicSlotDataV2)
public:
DynamicSlotDataV2(PyObject *callback, GlobalReceiverV2 *parent);
~DynamicSlotDataV2();
@@ -87,6 +39,8 @@ class DynamicSlotDataV2
static void onCallbackDestroyed(void *data);
static GlobalReceiverKey key(PyObject *callback);
+ void formatDebug(QDebug &debug) const;
+
private:
bool m_isMethod;
PyObject *m_callback;
@@ -97,6 +51,32 @@ class DynamicSlotDataV2
GlobalReceiverV2 *m_parent;
};
+void DynamicSlotDataV2::formatDebug(QDebug &debug) const
+{
+ debug << "method=" << m_isMethod << ", m_callback=" << m_callback;
+ if (m_callback != nullptr)
+ debug << '/' << Py_TYPE(m_callback)->tp_name;
+ debug << ", self=" << m_pythonSelf;
+ if (m_pythonSelf != nullptr)
+ debug << '/' << Py_TYPE(m_pythonSelf)->tp_name;
+ debug << ", m_pyClass=" << m_pyClass;
+ if (m_pyClass != nullptr)
+ debug << '/' << Py_TYPE(m_pyClass)->tp_name;
+ debug << ", signatures=" << m_signatures.keys();
+}
+
+QDebug operator<<(QDebug debug, const DynamicSlotDataV2 *d)
+{
+ QDebugStateSaver saver(debug);
+ debug.noquote();
+ debug.nospace();
+ debug << "DynamicSlotDataV2(";
+ if (d)
+ d->formatDebug(debug);
+ else
+ debug << '0';
+ debug << ')';
+ return debug;
}
using namespace PySide;
@@ -115,15 +95,14 @@ DynamicSlotDataV2::DynamicSlotDataV2(PyObject *callback, GlobalReceiverV2 *paren
//monitor class from method lifetime
m_weakRef = WeakRef::create(m_pythonSelf, DynamicSlotDataV2::onCallbackDestroyed, this);
- } else if (PyObject_HasAttr(callback, PySide::PyName::im_func())
- && PyObject_HasAttr(callback, PySide::PyName::im_self())) {
+ } else if (PySide::isCompiledMethod(callback)) {
// PYSIDE-1523: PyMethod_Check is not accepting compiled form, we just go by attributes.
m_isMethod = true;
- m_callback = PyObject_GetAttr(callback, PySide::PyName::im_func());
+ m_callback = PyObject_GetAttr(callback, PySide::PySideName::im_func());
Py_DECREF(m_callback);
- m_pythonSelf = PyObject_GetAttr(callback, PySide::PyName::im_self());
+ m_pythonSelf = PyObject_GetAttr(callback, PySide::PySideName::im_self());
Py_DECREF(m_pythonSelf);
//monitor class from method lifetime
@@ -142,11 +121,10 @@ GlobalReceiverKey DynamicSlotDataV2::key(PyObject *callback)
if (PyMethod_Check(callback)) {
// PYSIDE-1422: Avoid hash on self which might be unhashable.
return {PyMethod_GET_SELF(callback), PyMethod_GET_FUNCTION(callback)};
- } else if (PyObject_HasAttr(callback, PySide::PyName::im_func())
- && PyObject_HasAttr(callback, PySide::PyName::im_self())) {
+ } else if (PySide::isCompiledMethod(callback)) {
// PYSIDE-1589: Fix for slots in compiled functions
- Shiboken::AutoDecRef self(PyObject_GetAttr(callback, PySide::PyName::im_self()));
- Shiboken::AutoDecRef func(PyObject_GetAttr(callback, PySide::PyName::im_func()));
+ Shiboken::AutoDecRef self(PyObject_GetAttr(callback, PySide::PySideName::im_self()));
+ Shiboken::AutoDecRef func(PyObject_GetAttr(callback, PySide::PySideName::im_func()));
return {self, func};
}
return {nullptr, callback};
@@ -158,7 +136,7 @@ PyObject *DynamicSlotDataV2::callback()
//create a callback based on method data
if (m_isMethod)
- callback = Py_TYPE(m_callback)->tp_descr_get(m_callback, m_pythonSelf, nullptr);
+ callback = PepExt_Type_CallDescrGet(m_callback, m_pythonSelf, nullptr);
else
Py_INCREF(callback);
@@ -184,7 +162,7 @@ void DynamicSlotDataV2::onCallbackDestroyed(void *data)
auto self = reinterpret_cast<DynamicSlotDataV2 *>(data);
self->m_weakRef = nullptr;
Py_BEGIN_ALLOW_THREADS
- delete self->m_parent;
+ SignalManager::instance().deleteGlobalReceiver(self->m_parent);
Py_END_ALLOW_THREADS
}
@@ -198,31 +176,20 @@ DynamicSlotDataV2::~DynamicSlotDataV2()
Py_DECREF(m_callback);
}
-GlobalReceiverV2::GlobalReceiverV2(PyObject *callback, GlobalReceiverV2MapPtr map) :
+const char *GlobalReceiverV2::senderDynamicProperty = "_q_pyside_sender";
+
+GlobalReceiverV2::GlobalReceiverV2(PyObject *callback, QObject *receiver) :
QObject(nullptr),
m_metaObject("__GlobalReceiver__", &QObject::staticMetaObject),
- m_sharedMap(std::move(map))
+ m_receiver(receiver)
{
m_data = new DynamicSlotDataV2(callback, this);
- m_metaObject.addSlot(RECEIVER_DESTROYED_SLOT_NAME);
- m_metaObject.update();
- m_refs.append(nullptr);
-
-
- if (DESTROY_SIGNAL_ID == 0)
- DESTROY_SIGNAL_ID = QObject::staticMetaObject.indexOfSignal("destroyed(QObject*)");
-
- if (DESTROY_SLOT_ID == 0)
- DESTROY_SLOT_ID = m_metaObject.indexOfMethod(QMetaMethod::Slot, RECEIVER_DESTROYED_SLOT_NAME);
-
-
}
GlobalReceiverV2::~GlobalReceiverV2()
{
m_refs.clear();
// Remove itself from map.
- m_sharedMap->remove(m_data->key());
// Suppress handling of destroyed() for objects whose last reference is contained inside
// the callback object that will now be deleted. The reference could be a default argument,
// a callback local variable, etc.
@@ -231,7 +198,7 @@ GlobalReceiverV2::~GlobalReceiverV2()
// leading to the object being deleted, which emits destroyed(), which would try to invoke
// the already deleted callback, and also try to delete the object again.
DynamicSlotDataV2 *data = m_data;
- m_data = Q_NULLPTR;
+ m_data = nullptr;
delete data;
}
@@ -242,67 +209,34 @@ int GlobalReceiverV2::addSlot(const char *signature)
void GlobalReceiverV2::incRef(const QObject *link)
{
- if (link) {
- if (!m_refs.contains(link)) {
- bool connected{};
- Py_BEGIN_ALLOW_THREADS
- connected = QMetaObject::connect(link, DESTROY_SIGNAL_ID, this, DESTROY_SLOT_ID);
- Py_END_ALLOW_THREADS
- if (connected)
- m_refs.append(link);
- else
- Q_ASSERT(false);
- } else {
- m_refs.append(link);
- }
- } else {
- m_refs.append(nullptr);
- }
+ Q_ASSERT(link);
+ m_refs.append(link);
}
void GlobalReceiverV2::decRef(const QObject *link)
{
- if (m_refs.empty())
- return;
-
-
+ Q_ASSERT(link);
m_refs.removeOne(link);
- if (link) {
- if (!m_refs.contains(link)) {
- bool result{};
- Py_BEGIN_ALLOW_THREADS
- result = QMetaObject::disconnect(link, DESTROY_SIGNAL_ID, this, DESTROY_SLOT_ID);
- Py_END_ALLOW_THREADS
- Q_ASSERT(result);
- if (!result)
- return;
- }
- }
-
- if (m_refs.empty())
- Py_BEGIN_ALLOW_THREADS
- delete this;
- Py_END_ALLOW_THREADS
+}
+void GlobalReceiverV2::notify()
+{
+ purgeDeletedSenders();
}
-int GlobalReceiverV2::refCount(const QObject *link) const
+static bool isNull(const QPointer<const QObject> &p)
{
- if (link)
- return m_refs.count(link);
+ return p.isNull();
+}
- return m_refs.size();
+void GlobalReceiverV2::purgeDeletedSenders()
+{
+ m_refs.erase(std::remove_if(m_refs.begin(), m_refs.end(), isNull), m_refs.end());
}
-void GlobalReceiverV2::notify()
+bool GlobalReceiverV2::isEmpty() const
{
- const QSet<const QObject *> objSet(m_refs.cbegin(), m_refs.cend());
- Py_BEGIN_ALLOW_THREADS
- for (const QObject *o : objSet) {
- QMetaObject::disconnect(o, DESTROY_SIGNAL_ID, this, DESTROY_SLOT_ID);
- QMetaObject::connect(o, DESTROY_SIGNAL_ID, this, DESTROY_SLOT_ID);
- }
- Py_END_ALLOW_THREADS
+ return std::all_of(m_refs.cbegin(), m_refs.cend(), isNull);
}
GlobalReceiverKey GlobalReceiverV2::key() const
@@ -330,26 +264,22 @@ int GlobalReceiverV2::qt_metacall(QMetaObject::Call call, int id, void **args)
Q_ASSERT(slot.methodType() == QMetaMethod::Slot);
if (!m_data) {
- if (id != DESTROY_SLOT_ID) {
- const QByteArray message = "PySide6 Warning: Skipping callback call "
- + slot.methodSignature() + " because the callback object is being destructed.";
- PyErr_WarnEx(PyExc_RuntimeWarning, message.constData(), 0);
- }
+ const QByteArray message = "PySide6 Warning: Skipping callback call "
+ + slot.methodSignature() + " because the callback object is being destructed.";
+ PyErr_WarnEx(PyExc_RuntimeWarning, message.constData(), 0);
return -1;
}
- if (id == DESTROY_SLOT_ID) {
- if (m_refs.empty())
- return -1;
- auto obj = *reinterpret_cast<QObject **>(args[1]);
- incRef(); //keep the object live (safe ref)
- m_refs.removeAll(obj); // remove all refs to this object
- decRef(); //remove the safe ref
- } else {
- const bool isShortCuit = std::strchr(slot.methodSignature(), '(') == nullptr;
- Shiboken::AutoDecRef callback(m_data->callback());
- SignalManager::callPythonMetaMethod(slot, args, callback, isShortCuit);
- }
+ const bool setSenderDynamicProperty = !m_receiver.isNull();
+ if (setSenderDynamicProperty)
+ m_receiver->setProperty(senderDynamicProperty, QVariant::fromValue(sender()));
+
+ const bool isShortCuit = std::strchr(slot.methodSignature(), '(') == nullptr;
+ Shiboken::AutoDecRef callback(m_data->callback());
+ SignalManager::callPythonMetaMethod(slot, args, callback, isShortCuit);
+
+ if (setSenderDynamicProperty)
+ m_receiver->setProperty(senderDynamicProperty, QVariant{});
// SignalManager::callPythonMetaMethod might have failed, in that case we have to print the
// error so it considered "handled".
@@ -366,3 +296,28 @@ int GlobalReceiverV2::qt_metacall(QMetaObject::Call call, int id, void **args)
return -1;
}
+
+void GlobalReceiverV2::formatDebug(QDebug &debug) const
+{
+ debug << "receiver=" << m_receiver << ", slot=" << m_data;
+ if (isEmpty())
+ debug << ", empty";
+ else
+ debug << ", refs=" << m_refs;
+};
+
+QDebug operator<<(QDebug debug, const GlobalReceiverV2 *g)
+{
+ QDebugStateSaver saver(debug);
+ debug.noquote();
+ debug.nospace();
+ debug << "GlobalReceiverV2(";
+ if (g)
+ g->formatDebug(debug);
+ else
+ debug << '0';
+ debug << ')';
+ return debug;
+}
+
+} // namespace PySide
diff --git a/sources/pyside6/libpyside/globalreceiverv2.h b/sources/pyside6/libpyside/globalreceiverv2.h
index da01e6d33..0e3bc562a 100644
--- a/sources/pyside6/libpyside/globalreceiverv2.h
+++ b/sources/pyside6/libpyside/globalreceiverv2.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef GLOBALRECEIVER_V2_H
#define GLOBALRECEIVER_V2_H
@@ -44,10 +8,16 @@
#include "dynamicqmetaobject.h"
+#include <QtCore/QtCompare>
#include <QtCore/QByteArray>
+#include <QtCore/QHashFunctions>
#include <QtCore/QObject>
+#include <QtCore/QPointer>
#include <QtCore/QMap>
-#include <QtCore/QSharedPointer>
+
+#include <memory>
+
+QT_FORWARD_DECLARE_CLASS(QDebug);
namespace PySide
{
@@ -59,110 +29,87 @@ struct GlobalReceiverKey
{
const PyObject *object;
const PyObject *method;
-};
-
-inline bool operator==(const GlobalReceiverKey &k1, const GlobalReceiverKey &k2)
-{
- return k1.object == k2.object && k1.method == k2.method;
-}
-
-inline bool operator!=(const GlobalReceiverKey &k1, const GlobalReceiverKey &k2)
-{
- return k1.object != k2.object || k1.method != k2.method;
-}
-
-size_t qHash(const GlobalReceiverKey &k, size_t seed = 0);
-
-using GlobalReceiverV2Map = QHash<GlobalReceiverKey, GlobalReceiverV2 *>;
-using GlobalReceiverV2MapPtr = QSharedPointer<GlobalReceiverV2Map>;
-/**
- * A class used to make the link between the C++ Signal/Slot and Python callback
- * This class is used internally by SignalManager
- **/
+ friend constexpr size_t qHash(GlobalReceiverKey k, size_t seed = 0) noexcept
+ {
+ return qHashMulti(seed, k.object, k.method);
+ }
+ friend constexpr bool comparesEqual(const GlobalReceiverKey &lhs,
+ const GlobalReceiverKey &rhs) noexcept
+ {
+ return lhs.object == rhs.object && lhs.method == rhs.method;
+ }
+ Q_DECLARE_EQUALITY_COMPARABLE_LITERAL_TYPE(GlobalReceiverKey)
+};
+/// A class used to link C++ Signals to non C++ slots (Python callbacks) by
+/// providing fake slots for QObject::connect().
+/// It keeps a Python callback and the list of QObject senders. It is stored
+/// in SignalManager by a hash of the Python callback.
class GlobalReceiverV2 : public QObject
{
public:
- /**
- * Create a GlobalReceiver object that will call 'callback' argumentent
- *
- * @param callback A Python callable object (can be a method or not)
- * @param ma A SharedPointer used on Signal manager that contains all instaces of GlobalReceiver
- **/
- GlobalReceiverV2(PyObject *callback, GlobalReceiverV2MapPtr map);
-
- /**
- * Destructor
- **/
+ Q_DISABLE_COPY_MOVE(GlobalReceiverV2)
+
+ /// Create a GlobalReceiver object that will call 'callback'
+ /// @param callback A Python callable object (can be a method or not)
+ explicit GlobalReceiverV2(PyObject *callback, QObject *receiver = nullptr);
+
~GlobalReceiverV2() override;
- /**
- * Reimplemented function from QObject
- **/
+ /// Reimplemented function from QObject
int qt_metacall(QMetaObject::Call call, int id, void **args) override;
const QMetaObject *metaObject() const override;
- /**
- * Add a extra slot to this object
- *
- * @param signature The signature of the slot to be added
- * @return The index of this slot on metaobject
- **/
+ /// Add a extra slot to this object
+ /// @param signature The signature of the slot to be added
+ /// @return The index of this slot on metaobject
int addSlot(const char *signature);
- /**
- * Notify to GlobalReceiver about when a new connection was made
- **/
+ /// Notify to GlobalReceiver about when a new connection was made
void notify();
- /**
- * Used to increment the reference of the GlobalReceiver object
- *
- * @param link This is a optional paramenter used to link the ref to some QObject life
- **/
- void incRef(const QObject *link = nullptr);
-
- /**
- * Used to decrement the reference of the GlobalReceiver object
- *
- * @param link This is a optional paramenter used to dismiss the link ref to some QObject
- **/
- void decRef(const QObject *link = nullptr);
-
- /*
- * Return the count of refs which the GlobalReceiver has
- *
- * @param link If any QObject was passed, the function return the number of references relative to this 'link' object
- * @return The number of references
- **/
- int refCount(const QObject *link) const;
-
- /**
- * Use to retrieve the unique hash of this GlobalReceiver object
- *
- * @return a string with a unique id based on GlobalReceiver contents
- **/
+ /// Used to increment the reference of the GlobalReceiver object
+ /// @param link This is a parameter used to link the ref to
+ /// some QObject life.
+ void incRef(const QObject *link);
+
+ /// Used to decrement the reference of the GlobalReceiver object.
+ /// @param link This is a parameter used to dismiss the link
+ /// ref to some QObject.
+ void decRef(const QObject *link);
+
+ /// Returns whether any senders are registered.
+ bool isEmpty() const;
+
+ /// Use to retrieve the unique hash of this GlobalReceiver object
+ /// @return hash key
GlobalReceiverKey key() const;
- /**
- * Use to retrieve the unique hash of the PyObject based on GlobalReceiver rules
- *
- * @param callback The Python callable object used to calculate the id
- * @return a string with a unique id based on GlobalReceiver contents
- **/
+ /// Use to retrieve the unique hash of the PyObject based on GlobalReceiver rules
+ /// @param callback The Python callable object used to calculate the id
+ /// @return hash key
static GlobalReceiverKey key(PyObject *callback);
const MetaObjectBuilder &metaObjectBuilder() const { return m_metaObject; }
MetaObjectBuilder &metaObjectBuilder() { return m_metaObject; }
+ static const char *senderDynamicProperty;
+
+ void formatDebug(QDebug &debug) const;
+
private:
+ void purgeDeletedSenders();
+
MetaObjectBuilder m_metaObject;
DynamicSlotDataV2 *m_data;
- QList<const QObject *> m_refs;
- GlobalReceiverV2MapPtr m_sharedMap;
+ using QObjectPointer = QPointer<const QObject>;
+ QList<QObjectPointer> m_refs;
+ QPointer<QObject> m_receiver;
};
+QDebug operator<<(QDebug debug, const GlobalReceiverV2 *g);
+
}
#endif
diff --git a/sources/pyside6/libpyside/libpyside.qrc b/sources/pyside6/libpyside/libpyside.qrc
index 927c676a7..1e652eb4c 100644
--- a/sources/pyside6/libpyside/libpyside.qrc
+++ b/sources/pyside6/libpyside/libpyside.qrc
@@ -1,5 +1,5 @@
<RCC>
<qresource prefix="/qt-project.org/logos">
- <file alias="pysidelogo.png">../doc/_themes/pysidedocs/static/pysidelogo.png</file>
+ <file alias="pysidelogo.png">../doc/_static/qtforpython.png</file>
</qresource>
</RCC>
diff --git a/sources/pyside6/libpyside/pyside.cpp b/sources/pyside6/libpyside/pyside.cpp
index 4fc29597f..d5e815a42 100644
--- a/sources/pyside6/libpyside/pyside.cpp
+++ b/sources/pyside6/libpyside/pyside.cpp
@@ -1,44 +1,13 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include "pyside.h"
-#include "pyside_numpy.h"
+#include "pysideinit.h"
+#include "pysidecleanup.h"
+#include "pysidemetatype.h"
+#include "pysideqapp.h"
+#include "pysideqobject.h"
+#include "pysideutils.h"
#include "pyside_p.h"
#include "signalmanager.h"
#include "pysideclassinfo_p.h"
@@ -53,6 +22,7 @@
#include "pysidemetafunction.h"
#include "dynamicqmetaobject.h"
#include "feature_select.h"
+#include "pysidelogging_p.h"
#include <autodecref.h>
#include <basewrapper.h>
@@ -61,20 +31,28 @@
#include <sbkconverter.h>
#include <sbkstring.h>
#include <sbkstaticstrings.h>
+#include <sbkfeature_base.h>
+#include <sbkmodule.h>
#include <QtCore/QByteArray>
#include <QtCore/QCoreApplication>
+#include <QtCore/QDebug>
#include <QtCore/QDir>
#include <QtCore/QFileInfo>
-#include <QtCore/QSharedPointer>
+#include <QtCore/QMetaMethod>
+#include <QtCore/QMutex>
#include <QtCore/QStack>
#include <QtCore/QThread>
#include <algorithm>
#include <cstring>
#include <cctype>
+#include <memory>
+#include <optional>
#include <typeinfo>
+using namespace Qt::StringLiterals;
+
static QStack<PySide::CleanupFunction> cleanupFunctionList;
static void *qobjectNextAddr;
@@ -83,13 +61,14 @@ extern bool qRegisterResourceData(int, const unsigned char *, const unsigned cha
const unsigned char *);
QT_END_NAMESPACE
+Q_LOGGING_CATEGORY(lcPySide, "qt.pyside.libpyside", QtCriticalMsg)
+
namespace PySide
{
void init(PyObject *module)
{
qobjectNextAddr = nullptr;
- Numpy::init();
ClassInfo::init(module);
Signal::init(module);
Slot::init(module);
@@ -101,56 +80,282 @@ void init(PyObject *module)
initQApp();
}
+static const QByteArray _sigWithMangledName(const QByteArray &signature, bool mangle)
+{
+ if (!mangle)
+ return signature;
+ auto bracePos = signature.indexOf('(');
+ auto limit = bracePos >= 0 ? bracePos : signature.size();
+ if (limit < 3)
+ return signature;
+ QByteArray result;
+ result.reserve(signature.size() + 4);
+ for (auto i = 0; i < limit; ++i) {
+ const char c = signature.at(i);
+ if (std::isupper(c)) {
+ if (i > 0) {
+ if (std::isupper(signature.at(i - 1)))
+ return signature; // Give up at consecutive upper chars
+ result.append('_');
+ }
+ result.append(std::tolower(c));
+ } else {
+ result.append(c);
+ }
+ }
+ // Copy the rest after the opening brace (if any)
+ result.append(signature.mid(limit));
+ return result;
+}
+
+static const QByteArray _sigWithOrigName(const QByteArray &signature, bool mangle)
+{
+ if (!mangle)
+ return signature;
+ auto bracePos = signature.indexOf('(');
+ auto limit = bracePos >= 0 ? bracePos : signature.size();
+ QByteArray result;
+ result.reserve(signature.size());
+ for (auto i = 0; i < limit; ++i) {
+ const char c = signature.at(i);
+ if (std::isupper(c)) {
+ if (i > 0) {
+ if (std::isupper(signature.at(i - 1)))
+ return signature; // Give up at consecutive upper chars
+ return QByteArray{}; // Error, this was not converted!
+ }
+ }
+ if (std::islower(c) && i > 0 && signature.at(i - 1) == '_') {
+ result.chop(1);
+ result.append(std::toupper(c));
+ } else {
+ result.append(c);
+ }
+ }
+ // Copy the rest after the opening brace (if any)
+ result.append(signature.mid(limit));
+ return result;
+}
+
+/*****************************************************************************
+ *
+ * How do we find a property?
+ * --------------------------
+ *
+ * There are methods which are truly parts of properties, and there are
+ * other property-like methods which are not. True properties can be
+ * found by inspecting `SbkObjectType_GetPropertyStrings(type)`.
+ *
+ * Pseudo-properties have only a getter and a setter, and we must assume that
+ * the name of the getter is the property name, and the name of the setter
+ * is the uppercase of the getter with "set" prepended.
+ *
+ * We first walk the mro and search the property name and get the setter
+ * name. If that doesn't work, we use the heuristics for the setter.
+ * We then do the final mro lookup.
+ *
+ * Note that the true property lists have the original names, while the
+ * dict entries in the mro are already mangled.
+ */
+
+static const QByteArrayList parseFields(const char *propStr, int flags, bool *stdWrite)
+{
+ /*
+ * Break the string into subfields at ':' and add defaults.
+ */
+ if (stdWrite)
+ *stdWrite = true;
+ QByteArray s = QByteArray(propStr);
+ auto list = s.split(':');
+ assert(list.size() == 2 || list.size() == 3);
+ auto name = list[0];
+ auto read = list[1];
+ if (read.isEmpty())
+ list[1] = name;
+ if (list.size() == 2)
+ return list;
+ auto write = list[2];
+ if (stdWrite)
+ *stdWrite = write.isEmpty();
+ if (write.isEmpty()) {
+ auto snake_flag = flags & 0x01;
+ if (snake_flag) {
+ list[2] = ("set_") + name;
+ } else {
+ list[2] = QByteArray("set") + name;
+ list[2][3] = std::toupper(list[2][3]);
+ }
+ }
+ return list;
+}
+
+static QByteArrayList _SbkType_LookupProperty(PyTypeObject *type,
+ const QByteArray &name, int flags)
+{
+ /*
+ * Looks up a property and returns all fields.
+ */
+ int snake_flag = flags & 0x01;
+ QByteArray origName(_sigWithOrigName(name, snake_flag));
+ if (origName.isEmpty())
+ return QByteArrayList{};
+ PyObject *mro = type->tp_mro;
+ auto n = PyTuple_GET_SIZE(mro);
+ auto len = std::strlen(origName);
+ for (Py_ssize_t idx = 0; idx < n; idx++) {
+ PyTypeObject *base = reinterpret_cast<PyTypeObject *>(PyTuple_GET_ITEM(mro, idx));
+ if (!SbkObjectType_Check(base))
+ continue;
+ auto props = SbkObjectType_GetPropertyStrings(base);
+ if (props == nullptr || *props == nullptr)
+ continue;
+ for (; *props != nullptr; ++props) {
+ QByteArray propStr(*props);
+ if (std::strncmp(propStr, origName, len) == 0) {
+ if (propStr[len] != ':')
+ continue;
+ // We found the property. Return the parsed fields.
+ propStr = _sigWithMangledName(propStr, snake_flag);
+ return parseFields(propStr, flags, nullptr);
+ }
+ }
+ }
+ return QByteArrayList{};
+}
+
+static QByteArrayList _SbkType_FakeProperty(const QByteArray &name, int flags)
+{
+ /*
+ * Handle a pseudo.property and return all fields.
+ */
+ int snake_flag = flags & 0x01;
+ QByteArray propStr(name);
+ propStr += "::";
+ propStr = _sigWithMangledName(propStr, snake_flag);
+ return parseFields(propStr, snake_flag, nullptr);
+}
+
static bool _setProperty(PyObject *qObj, PyObject *name, PyObject *value, bool *accept)
{
+ using Shiboken::AutoDecRef;
+
QByteArray propName(Shiboken::String::toCString(name));
- propName[0] = std::toupper(propName[0]);
- propName.prepend("set");
+ auto type = Py_TYPE(qObj);
+ int flags = currentSelectId(type);
+ int prop_flag = flags & 0x02;
+ auto found = false;
+ QByteArray getterName{}, setterName{};
+
+ auto fields = _SbkType_LookupProperty(type, propName, flags);
+ if (!fields.isEmpty()) {
+ found = true;
+ bool haveWrite = fields.size() == 3;
+ if (!haveWrite)
+ return false;
+ } else {
+ fields = _SbkType_FakeProperty(propName, flags);
+ }
+
+ propName = fields[0];
+ getterName = fields[1];
+ setterName = fields[2];
- Shiboken::AutoDecRef propSetter(PyObject_GetAttrString(qObj, propName.constData()));
- if (!propSetter.isNull()) {
+ // PYSIDE-1702: We do not use getattr, since that could trigger an action
+ // if we have a true property. Better to look inside the mro.
+ // That should return a descriptor or a property.
+ PyObject *look{};
+
+ if (found && prop_flag) {
+ // We have a property, and true_property is active.
+ // There must be a property object and we use it's fset.
+ AutoDecRef pyPropName(Shiboken::String::fromCString(propName.constData()));
+ look = _PepType_Lookup(Py_TYPE(qObj), pyPropName);
+ } else {
+ // We have a pseudo property or true_property is off, looking for a setter.
+ AutoDecRef pySetterName(Shiboken::String::fromCString(setterName.constData()));
+ look = _PepType_Lookup(Py_TYPE(qObj), pySetterName);
+ }
+
+ if (look) {
+ AutoDecRef propSetter{};
+ static PyObject *magicGet = Shiboken::PyMagicName::get();
+ if (found && prop_flag) {
+ // the indirection of the setter descriptor in a true property
+ AutoDecRef descr(PyObject_GetAttr(look, PySideName::fset()));
+ propSetter.reset(PyObject_CallMethodObjArgs(descr, magicGet, qObj, nullptr));
+ } else {
+ // look is already the descriptor
+ propSetter.reset(PyObject_CallMethodObjArgs(look, magicGet, qObj, nullptr));
+ }
*accept = true;
- Shiboken::AutoDecRef args(PyTuple_Pack(1, value));
- Shiboken::AutoDecRef retval(PyObject_CallObject(propSetter, args));
+ AutoDecRef args(PyTuple_Pack(1, value));
+ AutoDecRef retval(PyObject_CallObject(propSetter, args));
if (retval.isNull())
return false;
} else {
PyErr_Clear();
- Shiboken::AutoDecRef attr(PyObject_GenericGetAttr(qObj, name));
+ AutoDecRef attr(PyObject_GenericGetAttr(qObj, name));
if (PySide::Property::checkType(attr)) {
*accept = true;
- if (PySide::Property::setValue(reinterpret_cast<PySideProperty *>(attr.object()), qObj, value) < 0)
+ if (PySide::Property::setValue(reinterpret_cast<PySideProperty *>(
+ attr.object()), qObj, value) < 0)
return false;
}
}
return true;
}
-bool fillQtProperties(PyObject *qObj, const QMetaObject *metaObj, PyObject *kwds)
+// PYSIDE-2329: Search a signal by name (Note: QMetaObject::indexOfSignal()
+// searches by signature).
+static std::optional<QMetaMethod> findSignal(const QMetaObject *mo,
+ const QByteArray &name)
+{
+ const auto count = mo->methodCount();
+ for (int i = mo->methodOffset(); i < count; ++i) {
+ const auto method = mo->method(i);
+ if (method.methodType() == QMetaMethod::Signal && method.name() == name)
+ return method;
+ }
+ auto *base = mo->superClass();
+ return base != nullptr ? findSignal(base, name) : std::nullopt;
+}
+
+bool fillQtProperties(PyObject *qObj, const QMetaObject *metaObj,
+ PyObject *kwds, bool allowErrors)
{
PyObject *key, *value;
Py_ssize_t pos = 0;
+ int flags = currentSelectId(Py_TYPE(qObj));
+ int snake_flag = flags & 0x01;
while (PyDict_Next(kwds, &pos, &key, &value)) {
- QByteArray propName(Shiboken::String::toCString(key));
+ const QByteArray propName = Shiboken::String::toCString(key);
+ QByteArray unmangledName = _sigWithOrigName(propName, snake_flag);
bool accept = false;
- if (metaObj->indexOfProperty(propName) != -1) {
- if (!_setProperty(qObj, key, value, &accept))
- return false;
- } else {
- propName.append("()");
- if (metaObj->indexOfSignal(propName) != -1) {
- accept = true;
- propName.prepend('2');
- if (!PySide::Signal::connect(qObj, propName, value))
+ // PYSIDE-1705: Make sure that un-mangled names are not recognized in snake_case mode.
+ if (!unmangledName.isEmpty()) {
+ if (metaObj->indexOfProperty(unmangledName) != -1) {
+ if (!_setProperty(qObj, key, value, &accept))
+ return false;
+ } else {
+ const auto methodO = findSignal(metaObj, propName);
+ if (methodO.has_value()) {
+ const auto signature = "2"_ba + methodO->methodSignature();
+ accept = true;
+ if (!PySide::Signal::connect(qObj, signature, value))
+ return false;
+ }
+ }
+ if (!accept) {
+ // PYSIDE-1019: Allow any existing attribute in the constructor.
+ if (!_setProperty(qObj, key, value, &accept))
return false;
}
}
- if (!accept) {
- // PYSIDE-1019: Allow any existing attribute in the constructor.
- if (!_setProperty(qObj, key, value, &accept))
- return false;
+ if (allowErrors) {
+ PyErr_Clear();
+ continue;
}
if (!accept) {
PyErr_Format(PyExc_AttributeError, "'%s' is not a Qt property or a signal",
@@ -237,11 +442,13 @@ void initDynamicMetaObject(PyTypeObject *type, const QMetaObject *base, std::siz
return;
Shiboken::AutoDecRef pyMetaObject(Shiboken::Conversions::pointerToPython(converter, metaObjectPtr));
PyObject_SetAttr(reinterpret_cast<PyObject *>(type),
- PySide::PyName::qtStaticMetaObject(), pyMetaObject);
+ Shiboken::PyName::qtStaticMetaObject(), pyMetaObject);
}
TypeUserData *retrieveTypeUserData(PyTypeObject *pyTypeObj)
{
+ if (!SbkObjectType_Check(pyTypeObj))
+ return nullptr;
return reinterpret_cast<TypeUserData *>(Shiboken::ObjectType::getTypeUserData(pyTypeObj));
}
@@ -268,7 +475,6 @@ const QMetaObject *retrieveMetaObject(PyObject *pyObj)
void initQObjectSubType(PyTypeObject *type, PyObject *args, PyObject * /* kwds */)
{
PyTypeObject *qObjType = Shiboken::Conversions::getPythonTypeObject("QObject*");
- QByteArray className(Shiboken::String::toCString(PyTuple_GET_ITEM(args, 0)));
PyObject *bases = PyTuple_GET_ITEM(args, 1);
int numBases = PyTuple_GET_SIZE(bases);
@@ -283,7 +489,9 @@ void initQObjectSubType(PyTypeObject *type, PyObject *args, PyObject * /* kwds *
}
}
if (!userData) {
- qWarning("Sub class of QObject not inheriting QObject!? Crash will happen when using %s.", className.constData());
+ const char *className = Shiboken::String::toCString(PyTuple_GET_ITEM(args, 0));
+ qWarning("Sub class of QObject not inheriting QObject!? Crash will happen when using %s.",
+ className);
return;
}
// PYSIDE-1463: Don't change feature selection durin subtype initialization.
@@ -313,8 +521,11 @@ void initQApp()
setDestroyQApplication(destroyQCoreApplication);
}
-PyObject *getMetaDataFromQObject(QObject *cppSelf, PyObject *self, PyObject *name)
+PyObject *getHiddenDataFromQObject(QObject *cppSelf, PyObject *self, PyObject *name)
{
+ using Shiboken::AutoDecRef;
+
+ // PYSIDE-68-bis: This getattr finds signals early by `signalDescrGet`.
PyObject *attr = PyObject_GenericGetAttr(self, name);
if (!Shiboken::Object::isValid(reinterpret_cast<SbkObject *>(self), false))
return attr;
@@ -327,27 +538,63 @@ PyObject *getMetaDataFromQObject(QObject *cppSelf, PyObject *self, PyObject *nam
attr = value;
}
- //mutate native signals to signal instance type
- if (attr && PyObject_TypeCheck(attr, PySideSignalTypeF())) {
- PyObject *signal = reinterpret_cast<PyObject *>(Signal::initialize(reinterpret_cast<PySideSignal *>(attr), name, self));
- PyObject_SetAttr(self, name, reinterpret_cast<PyObject *>(signal));
- return signal;
- }
-
- //search on metaobject (avoid internal attributes started with '__')
+ // Search on metaobject (avoid internal attributes started with '__')
if (!attr) {
+ PyObject *type, *value, *traceback;
+ PyErr_Fetch(&type, &value, &traceback); // This was omitted for a loong time.
+
+ int flags = currentSelectId(Py_TYPE(self));
+ int snake_flag = flags & 0x01;
+ int propFlag = flags & 0x02;
+
+ if (propFlag) {
+ // PYSIDE-1889: If we have actually a Python property, return f(get|set|del).
+ // Do not store this attribute in the instance dict, because this
+ // would create confusion with overload.
+ // Note: before implementing this property handling, the meta function code
+ // below created meta functions which was quite wrong.
+ auto *subdict = _PepType_Lookup(Py_TYPE(self), PySideMagicName::property_methods());
+ PyObject *propName = PyDict_GetItem(subdict, name);
+ if (propName) {
+ // We really have a property name and need to fetch the fget or fset function.
+ static PyObject *const _fget = Shiboken::String::createStaticString("fget");
+ static PyObject *const _fset = Shiboken::String::createStaticString("fset");
+ static PyObject *const _fdel = Shiboken::String::createStaticString("fdel");
+ static PyObject *const arr[3] = {_fget, _fset, _fdel};
+ auto prop = _PepType_Lookup(Py_TYPE(self), propName);
+ for (int idx = 0; idx < 3; ++idx) {
+ auto *trial = arr[idx];
+ auto *res = PyObject_GetAttr(prop, trial);
+ if (res) {
+ AutoDecRef elemName(PyObject_GetAttr(res, PySideMagicName::name()));
+ // Note: This comparison works because of interned strings.
+ if (elemName == name)
+ return res;
+ Py_DECREF(res);
+ }
+ PyErr_Clear();
+ }
+ }
+ }
+
const char *cname = Shiboken::String::toCString(name);
uint cnameLen = qstrlen(cname);
- if (std::strncmp("__", cname, 2)) {
+ if (std::strncmp("__", cname, 2) != 0) {
const QMetaObject *metaObject = cppSelf->metaObject();
- //signal
QList<QMetaMethod> signalList;
- for(int i=0, i_max = metaObject->methodCount(); i < i_max; i++) {
+ // Caution: This inserts a meta function or a signal into the instance dict.
+ for (int i=0, imax = metaObject->methodCount(); i < imax; i++) {
QMetaMethod method = metaObject->method(i);
- const QByteArray methSig_ = method.methodSignature();
+ // PYSIDE-1753: Snake case names must be renamed here too, or they will be
+ // found unexpectedly when forgetting to rename them.
+ auto origSignature = method.methodSignature();
+ // Currently, we rename only methods but no signals. This might change.
+ bool use_lower = snake_flag and method.methodType() != QMetaMethod::Signal;
+ const QByteArray methSig_ = _sigWithMangledName(origSignature, use_lower);
const char *methSig = methSig_.constData();
- bool methMacth = !std::strncmp(cname, methSig, cnameLen) && methSig[cnameLen] == '(';
- if (methMacth) {
+ bool methMatch = std::strncmp(cname, methSig, cnameLen) == 0
+ && methSig[cnameLen] == '(';
+ if (methMatch) {
if (method.methodType() == QMetaMethod::Signal) {
signalList.append(method);
} else {
@@ -360,12 +607,14 @@ PyObject *getMetaDataFromQObject(QObject *cppSelf, PyObject *self, PyObject *nam
}
}
}
- if (!signalList.empty()) {
- PyObject *pySignal = reinterpret_cast<PyObject *>(Signal::newObjectFromMethod(self, signalList));
+ if (!signalList.isEmpty()) {
+ PyObject *pySignal = reinterpret_cast<PyObject *>(
+ Signal::newObjectFromMethod(self, signalList));
PyObject_SetAttr(self, name, pySignal);
return pySignal;
}
}
+ PyErr_Restore(type, value, traceback);
}
return attr;
}
@@ -382,6 +631,12 @@ bool inherits(PyTypeObject *objType, const char *class_name)
return inherits(base, class_name);
}
+QMutex &nextQObjectMemoryAddrMutex()
+{
+ static QMutex mutex;
+ return mutex;
+}
+
void *nextQObjectMemoryAddr()
{
return qobjectNextAddr;
@@ -394,17 +649,23 @@ void setNextQObjectMemoryAddr(void *addr)
} // namespace PySide
-// A QSharedPointer is used with a deletion function to invalidate a pointer
+// A std::shared_ptr is used with a deletion function to invalidate a pointer
// when the property value is cleared. This should be a QSharedPointer with
// a void *pointer, but that isn't allowed
-typedef char any_t;
-Q_DECLARE_METATYPE(QSharedPointer<any_t>);
+using any_t = char;
+Q_DECLARE_METATYPE(std::shared_ptr<any_t>);
+
namespace PySide
{
static void invalidatePtr(any_t *object)
{
+ // PYSIDE-2254: Guard against QObjects outliving Python, for example the
+ // adopted main thread as returned by QObjects::thread().
+ if (Py_IsInitialized() == 0)
+ return;
+
Shiboken::GilState state;
SbkObject *wrapper = Shiboken::BindingManager::instance().retrieveWrapper(object);
@@ -427,6 +688,13 @@ static const char *typeName(const QObject *cppSelf)
typeName = name;
break;
}
+ // PYSIDE-2404: Did not find the name. Load the lazy classes
+ // which have this name and try again.
+ Shiboken::Module::loadLazyClassesWithName(name);
+ if (Shiboken::Conversions::getConverter(name)) {
+ typeName = name;
+ break;
+ }
}
}
return typeName;
@@ -460,7 +728,7 @@ PyObject *getWrapperForQObject(QObject *cppSelf, PyTypeObject *sbk_type)
QVariant existing = cppSelf->property(invalidatePropertyName);
if (!existing.isValid()) {
if (cppSelf->thread() == QThread::currentThread()) {
- QSharedPointer<any_t> shared_with_del(reinterpret_cast<any_t *>(cppSelf), invalidatePtr);
+ std::shared_ptr<any_t> shared_with_del(reinterpret_cast<any_t *>(cppSelf), invalidatePtr);
cppSelf->setProperty(invalidatePropertyName, QVariant::fromValue(shared_with_del));
}
pyOut = reinterpret_cast<PyObject *>(Shiboken::BindingManager::instance().retrieveWrapper(cppSelf));
@@ -475,19 +743,28 @@ PyObject *getWrapperForQObject(QObject *cppSelf, PyTypeObject *sbk_type)
return pyOut;
}
-#ifdef PYSIDE_QML_SUPPORT
-static QuickRegisterItemFunction quickRegisterItem;
-
-QuickRegisterItemFunction getQuickRegisterItemFunction()
+QString pyUnicodeToQString(PyObject *str)
{
- return quickRegisterItem;
+ Q_ASSERT(PyUnicode_Check(str) != 0);
+
+ const void *data = _PepUnicode_DATA(str);
+ const Py_ssize_t len = PyUnicode_GetLength(str);
+ switch (_PepUnicode_KIND(str)) {
+ case PepUnicode_1BYTE_KIND:
+ return QString::fromLatin1(reinterpret_cast<const char *>(data), len);
+ case PepUnicode_2BYTE_KIND:
+ return QString::fromUtf16(reinterpret_cast<const char16_t *>(data), len);
+ case PepUnicode_4BYTE_KIND:
+ break;
+ }
+ return QString::fromUcs4(reinterpret_cast<const char32_t *>(data), len);
}
-void setQuickRegisterItemFunction(QuickRegisterItemFunction function)
+PyObject *qStringToPyUnicode(QStringView s)
{
- quickRegisterItem = function;
+ const QByteArray ba = s.toUtf8();
+ return PyUnicode_FromStringAndSize(ba.constData(), ba.size());
}
-#endif // PYSIDE_QML_SUPPORT
// Inspired by Shiboken::String::toCString;
QString pyStringToQString(PyObject *str)
@@ -495,11 +772,9 @@ QString pyStringToQString(PyObject *str)
if (str == Py_None)
return QString();
- if (PyUnicode_Check(str)) {
- const char *unicodeBuffer = _PepUnicode_AsString(str);
- if (unicodeBuffer)
- return QString::fromUtf8(unicodeBuffer);
- }
+ if (PyUnicode_Check(str) != 0)
+ return pyUnicodeToQString(str);
+
if (PyBytes_Check(str)) {
const char *asciiBuffer = PyBytes_AS_STRING(str);
if (asciiBuffer)
@@ -527,6 +802,13 @@ QString pyPathToQString(PyObject *path)
return QDir::fromNativeSeparators(pyStringToQString(strPath));
}
+bool isCompiledMethod(PyObject *callback)
+{
+ return PyObject_HasAttr(callback, PySide::PySideName::im_func())
+ && PyObject_HasAttr(callback, PySide::PySideName::im_self())
+ && PyObject_HasAttr(callback, PySide::PySideMagicName::code());
+}
+
static const unsigned char qt_resource_name[] = {
// qt
0x0,0x2,
@@ -560,9 +842,9 @@ bool registerInternalQtConf()
{
// Guard to ensure single registration.
#ifdef PYSIDE_QT_CONF_PREFIX
- static bool registrationAttempted = false;
+ static bool registrationAttempted = false;
#else
- static bool registrationAttempted = true;
+ static bool registrationAttempted = true;
#endif
static bool isRegistered = false;
if (registrationAttempted)
@@ -573,19 +855,33 @@ bool registerInternalQtConf()
// PyInstaller executable.
// This will disable the internal qt.conf which points to the PySide6 subdirectory (due to the
// subdirectory not existing anymore).
- QString executablePath =
- QString::fromWCharArray(Py_GetProgramFullPath());
+#ifndef PYPY_VERSION
+ QString executablePath = QString::fromWCharArray(Py_GetProgramFullPath());
+#else
+ // PYSIDE-535: FIXME: Add this function when available.
+ QString executablePath = QLatin1StringView("missing Py_GetProgramFullPath");
+#endif // PYPY_VERSION
+
QString appDirPath = QFileInfo(executablePath).absolutePath();
- QString maybeQtConfPath = QDir(appDirPath).filePath(QStringLiteral("qt.conf"));
- bool executableQtConfAvailable = QFileInfo::exists(maybeQtConfPath);
+
+ QString maybeQtConfPath = QDir(appDirPath).filePath(u"qt.conf"_s);
maybeQtConfPath = QDir::toNativeSeparators(maybeQtConfPath);
+ bool executableQtConfAvailable = QFileInfo::exists(maybeQtConfPath);
+
+ QString maybeQt6ConfPath = QDir(appDirPath).filePath(u"qt6.conf"_s);
+ maybeQt6ConfPath = QDir::toNativeSeparators(maybeQt6ConfPath);
+ bool executableQt6ConfAvailable = QFileInfo::exists(maybeQt6ConfPath);
// Allow disabling the usage of the internal qt.conf. This is necessary for tests to work,
// because tests are executed before the package is installed, and thus the Prefix specified
// in qt.conf would point to a not yet existing location.
bool disableInternalQtConf =
- qEnvironmentVariableIntValue("PYSIDE_DISABLE_INTERNAL_QT_CONF") > 0;
- if (disableInternalQtConf || executableQtConfAvailable) {
+ qEnvironmentVariableIntValue("PYSIDE_DISABLE_INTERNAL_QT_CONF") > 0;
+ bool runsInConda =
+ qEnvironmentVariableIsSet("CONDA_DEFAULT_ENV") || qEnvironmentVariableIsSet("CONDA_PREFIX");
+
+ if ((!runsInConda && (disableInternalQtConf || executableQtConfAvailable))
+ || (runsInConda && executableQt6ConfAvailable)) {
registrationAttempted = true;
return false;
}
@@ -615,28 +911,20 @@ bool registerInternalQtConf()
#ifdef PYSIDE_QT_CONF_PREFIX
setupPrefix = QStringLiteral(PYSIDE_QT_CONF_PREFIX);
#endif
- const QString prefixPathStr = pysideDir.absoluteFilePath(setupPrefix);
-#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
- const QByteArray prefixPath = prefixPathStr.toLocal8Bit();
-#else
- // PYSIDE-972, QSettings used by QtCore uses Latin1
- const QByteArray prefixPath = prefixPathStr.toLatin1();
-#endif
+ const QByteArray prefixPath = pysideDir.absoluteFilePath(setupPrefix).toUtf8();
// rccData needs to be static, otherwise when it goes out of scope, the Qt resource system
// will point to invalid memory.
- static QByteArray rccData = QByteArrayLiteral("[Paths]\nPrefix = ") + prefixPath
+ static QByteArray rccData = QByteArrayLiteral("[Paths]\nPrefix = ") + prefixPath + "\n";
#ifdef Q_OS_WIN
- // LibraryExecutables needs to point to Prefix instead of ./bin because we don't
- // currently conform to the Qt default directory layout on Windows. This is necessary
- // for QtWebEngineCore to find the location of QtWebEngineProcess.exe.
- + QByteArray("\nLibraryExecutables = ") + prefixPath
+ // LibraryExecutables needs to point to Prefix instead of ./bin because we don't
+ // currently conform to the Qt default directory layout on Windows. This is necessary
+ // for QtWebEngineCore to find the location of QtWebEngineProcess.exe.
+ rccData += QByteArrayLiteral("LibraryExecutables = ") + prefixPath + "\n";
#endif
- ;
- rccData.append('\n');
// The RCC data structure expects a 4-byte size value representing the actual data.
- int size = rccData.size();
+ qsizetype size = rccData.size();
for (int i = 0; i < 4; ++i) {
rccData.prepend((size & 0xff));
@@ -651,18 +939,242 @@ bool registerInternalQtConf()
return isRegistered;
}
-bool isQObjectDerived(PyTypeObject *pyType, bool raiseError) {
- static PyTypeObject *qobjectType = Shiboken::Conversions::getPythonTypeObject("QObject*");
+static PyTypeObject *qobjectType()
+{
+ static PyTypeObject * const result = Shiboken::Conversions::getPythonTypeObject("QObject*");
+ return result;
+}
+
+bool isQObjectDerived(PyTypeObject *pyType, bool raiseError)
+{
+ const bool result = PyType_IsSubtype(pyType, qobjectType());
+ if (!result && raiseError) {
+ PyErr_Format(PyExc_TypeError, "A type inherited from %s expected, got %s.",
+ qobjectType()->tp_name, pyType->tp_name);
+ }
+ return result;
+}
- if (!PyType_IsSubtype(pyType, qobjectType)) {
+QObject *convertToQObject(PyObject *object, bool raiseError)
+{
+ if (object == nullptr) {
if (raiseError)
- PyErr_Format(PyExc_TypeError, "A type inherited from %s expected, got %s.",
- qobjectType->tp_name, pyType->tp_name);
- return false;
+ PyErr_Format(PyExc_TypeError, "None passed for QObject");
+ return nullptr;
}
- return true;
+
+ if (!isQObjectDerived(Py_TYPE(object), raiseError))
+ return nullptr;
+
+ auto *sbkObject = reinterpret_cast<SbkObject*>(object);
+ auto *ptr = Shiboken::Object::cppPointer(sbkObject, qobjectType());
+ if (ptr == nullptr) {
+ if (raiseError) {
+ PyErr_Format(PyExc_TypeError, "Conversion of %s to QObject failed.",
+ Py_TYPE(object)->tp_name);
+ }
+ return nullptr;
+ }
+ return reinterpret_cast<QObject*>(ptr);
+}
+
+QMetaType qMetaTypeFromPyType(PyTypeObject *pyType)
+{
+ if (Shiboken::String::checkType(pyType))
+ return QMetaType(QMetaType::QString);
+ if (pyType == &PyFloat_Type)
+ return QMetaType(QMetaType::Double);
+ if (pyType == &PyLong_Type)
+ return QMetaType(QMetaType::Int);
+ if (Shiboken::ObjectType::checkType(pyType))
+ return QMetaType::fromName(Shiboken::ObjectType::getOriginalName(pyType));
+ return QMetaType::fromName(pyType->tp_name);
+}
+
+debugPyTypeObject::debugPyTypeObject(const PyTypeObject *o) noexcept
+ : m_object(o)
+{
+}
+
+QDebug operator<<(QDebug debug, const debugPyTypeObject &o)
+{
+ QDebugStateSaver saver(debug);
+ debug.noquote();
+ debug.nospace();
+ debug << "PyTypeObject(";
+ if (o.m_object)
+ debug << '"' << o.m_object->tp_name << '"';
+ else
+ debug << '0';
+ debug << ')';
+ return debug;
+}
+
+static void formatPyObject(PyObject *obj, QDebug &debug);
+
+static void formatPySequence(PyObject *obj, QDebug &debug)
+{
+ const Py_ssize_t size = PySequence_Size(obj);
+ debug << size << " [";
+ for (Py_ssize_t i = 0; i < size; ++i) {
+ if (i)
+ debug << ", ";
+ Shiboken::AutoDecRef item(PySequence_GetItem(obj, i));
+ formatPyObject(item.object(), debug);
+ }
+ debug << ']';
+}
+
+static void formatPyDict(PyObject *obj, QDebug &debug)
+{
+ PyObject *key;
+ PyObject *value;
+ Py_ssize_t pos = 0;
+ bool first = true;
+ debug << '{';
+ while (PyDict_Next(obj, &pos, &key, &value) != 0) {
+ if (first)
+ first = false;
+ else
+ debug << ", ";
+ formatPyObject(key, debug);
+ debug << '=';
+ formatPyObject(value, debug);
+ }
+ debug << '}';
+}
+
+static inline const char *pyTypeName(PyObject *obj)
+{
+ return Py_TYPE(obj)->tp_name;
}
+static QString getQualName(PyObject *obj)
+{
+ Shiboken::AutoDecRef result(PyObject_GetAttr(obj, Shiboken::PyMagicName::qualname()));
+ return result.object() != nullptr
+ ? pyStringToQString(result.object()) : QString{};
+}
+
+static void formatPyFunction(PyObject *obj, QDebug &debug)
+{
+ debug << '"' << getQualName(obj) << "()\"";
+}
-} //namespace PySide
+static void formatPyMethod(PyObject *obj, QDebug &debug)
+{
+ if (auto *func = PyMethod_Function(obj))
+ formatPyFunction(func, debug);
+ debug << ", instance=" << PyMethod_Self(obj);
+}
+
+static void formatPyObjectValue(PyObject *obj, QDebug &debug)
+{
+ if (PyType_Check(obj) != 0)
+ debug << "type: \"" << pyTypeName(obj) << '"';
+ else if (PyLong_Check(obj) != 0) {
+ const auto llv = PyLong_AsLongLong(obj);
+ if (PyErr_Occurred() != PyExc_OverflowError) {
+ debug << llv;
+ } else {
+ PyErr_Clear();
+ debug << "0x" << Qt::hex << PyLong_AsUnsignedLongLong(obj) << Qt::dec;
+ }
+ } else if (PyFloat_Check(obj) != 0)
+ debug << PyFloat_AsDouble(obj);
+ else if (PyUnicode_Check(obj) != 0)
+ debug << '"' << pyStringToQString(obj) << '"';
+ else if (PyFunction_Check(obj) != 0)
+ formatPyFunction(obj, debug);
+ else if (PyMethod_Check(obj) != 0)
+ formatPyMethod(obj, debug);
+ else if (PySequence_Check(obj) != 0)
+ formatPySequence(obj, debug);
+ else if (PyDict_Check(obj) != 0)
+ formatPyDict(obj, debug);
+ else
+ debug << obj;
+}
+static void formatPyObject(PyObject *obj, QDebug &debug)
+{
+ if (obj == nullptr) {
+ debug << '0';
+ return;
+ }
+ if (obj == Py_None) {
+ debug << "None";
+ return;
+ }
+ if (obj == Py_True) {
+ debug << "True";
+ return;
+ }
+ if (obj == Py_False) {
+ debug << "False";
+ return;
+ }
+ if (PyType_Check(obj) == 0)
+ debug << pyTypeName(obj) << ": ";
+ formatPyObjectValue(obj, debug);
+}
+
+debugPyObject::debugPyObject(PyObject *o) noexcept : m_object(o)
+{
+}
+
+QDebug operator<<(QDebug debug, const debugPyObject &o)
+{
+ QDebugStateSaver saver(debug);
+ debug.noquote();
+ debug.nospace();
+ debug << "PyObject(";
+ formatPyObject(o.m_object, debug);
+ debug << ')';
+ return debug;
+}
+
+debugPyBuffer::debugPyBuffer(Py_buffer *b) noexcept : m_buffer(b)
+{
+}
+
+static void formatPy_ssizeArray(QDebug &debug, const char *name, const Py_ssize_t *array, int len)
+{
+ debug << ", " << name << '=';
+ if (array != nullptr) {
+ debug << '[';
+ for (int i = 0; i < len; ++i)
+ debug << array[i] << ' ';
+ debug << ']';
+ } else {
+ debug << '0';
+ }
+}
+
+PYSIDE_API QDebug operator<<(QDebug debug, const debugPyBuffer &b)
+{
+ QDebugStateSaver saver(debug);
+ debug.noquote();
+ debug.nospace();
+ debug << "Py_buffer(";
+ if (b.m_buffer != nullptr) {
+ debug << "obj=" << b.m_buffer->obj
+ << ", buf=" << b.m_buffer->buf << ", len=" << b.m_buffer->len
+ << ", readonly=" << b.m_buffer->readonly
+ << ", itemsize=" << b.m_buffer->itemsize << ", format=";
+ if (b.m_buffer->format != nullptr)
+ debug << '"' << b.m_buffer->format << '"';
+ else
+ debug << '0';
+ debug << ", ndim=" << b.m_buffer->ndim;
+ formatPy_ssizeArray(debug, "shape", b.m_buffer->shape, b.m_buffer->ndim);
+ formatPy_ssizeArray(debug, "strides", b.m_buffer->strides, b.m_buffer->ndim);
+ formatPy_ssizeArray(debug, "suboffsets", b.m_buffer->suboffsets, b.m_buffer->ndim);
+ } else {
+ debug << '0';
+ }
+ debug << ')';
+ return debug;
+}
+
+} // namespace PySide
diff --git a/sources/pyside6/libpyside/pyside.h b/sources/pyside6/libpyside/pyside.h
index 0362351ea..c8793cbf0 100644
--- a/sources/pyside6/libpyside/pyside.h
+++ b/sources/pyside6/libpyside/pyside.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef PYSIDE_H
#define PYSIDE_H
@@ -44,143 +8,9 @@
#include <pysidemacros.h>
-#ifdef PYSIDE_QML_SUPPORT
-# include <QtQml/qqml.h>
-#endif
-
-#include <QtCore/QMetaType>
-#include <QtCore/QHash>
-
-namespace PySide
-{
-
-PYSIDE_API void init(PyObject *module);
-
-/**
- * Hash function used to enable hash on objects not supported on native Qt library which has toString function.
- */
-template<class T>
-inline Py_ssize_t hash(const T& value)
-{
- return qHash(value.toString());
-}
-
-/**
- * Fill QObject properties and do signal connections using the values found in \p kwds dictonary.
- * \param qObj PyObject fot the QObject.
- * \param metaObj QMetaObject of \p qObj.
- * \param kwds key->value dictonary.
- * \return True if everything goes well, false with a Python error setted otherwise.
- */
-PYSIDE_API bool fillQtProperties(PyObject *qObj, const QMetaObject *metaObj, PyObject *kwds);
-
-/**
-* If the type \p T was registered on Qt meta type system with Q_DECLARE_METATYPE macro, this class will initialize
-* the meta type.
-*
-* Initialize a meta type means register it on Qt meta type system, Qt itself only do this on the first call of
-* qMetaTypeId, and this is exactly what we do to init it. If we don't do that, calls to QMetaType::type("QMatrix2x2")
-* could return zero, causing QVariant to not recognize some C++ types, like QMatrix2x2.
-*/
-template<typename T, bool OK = QMetaTypeId<T>::Defined >
-struct initQtMetaType {
- initQtMetaType()
- {
- qMetaTypeId<T>();
- }
-};
-
-// Template specialization to do nothing when the type wasn't registered on Qt meta type system.
-template<typename T>
-struct initQtMetaType<T, false> {
-};
-
-PYSIDE_API void initDynamicMetaObject(PyTypeObject *type, const QMetaObject *base,
- std::size_t cppObjSize);
-PYSIDE_API void initQObjectSubType(PyTypeObject *type, PyObject *args, PyObject *kwds);
-PYSIDE_API void initQApp();
-
-/// Return the size in bytes of a type that inherits QObject.
-PYSIDE_API std::size_t getSizeOfQObject(PyTypeObject *type);
-
-/* Check if a PyTypeObject or its bases contains a QObject
- * \param pyType is the PyTypeObject to check
- * \param raiseError controls if a TypeError is raised when an object does not
- * inherits from QObject
- */
-PYSIDE_API bool isQObjectDerived(PyTypeObject *pyType, bool raiseError);
-
-typedef void (*CleanupFunction)(void);
-
-/**
- * Register a function to be called before python die
- */
-PYSIDE_API void registerCleanupFunction(CleanupFunction func);
-PYSIDE_API void runCleanupFunctions();
-
-/**
- * Destroy a QCoreApplication taking care of destroy all instances of QObject first.
- */
-PYSIDE_API void destroyQCoreApplication();
-
-/**
- * Check for properties and signals registered on MetaObject and return these
- * \param cppSelf Is the QObject which contains the metaobject
- * \param self Python object of cppSelf
- * \param name Name of the argument which the function will try retrieve from MetaData
- * \return The Python object which contains the Data obtained in metaObject or the Python attribute related with name
- */
-PYSIDE_API PyObject *getMetaDataFromQObject(QObject *cppSelf, PyObject *self, PyObject *name);
-
-/**
- * Check if self inherits from class_name
- * \param self Python object
- * \param class_name strict with the class name
- * \return Returns true if self object inherits from class_name, otherwise returns false
- */
-PYSIDE_API bool inherits(PyTypeObject *self, const char *class_name);
-
-PYSIDE_API void *nextQObjectMemoryAddr();
-PYSIDE_API void setNextQObjectMemoryAddr(void *addr);
-
-PYSIDE_API PyObject *getWrapperForQObject(QObject *cppSelf, PyTypeObject *sbk_type);
-
-/// Return the best-matching type for a QObject (Helper for QObject.findType())
-/// \param cppSelf QObject instance
-/// \return type object
-PYSIDE_API PyTypeObject *getTypeForQObject(const QObject *cppSelf);
-
-#ifdef PYSIDE_QML_SUPPORT
-// Used by QtQuick module to notify QtQml that custom QtQuick items can be registered.
-using QuickRegisterItemFunction =
- bool (*)(PyObject *pyObj, const char *uri, int versionMajor,
- int versionMinor, const char *qmlName,
- bool creatable, const char *noCreationReason,
- QQmlPrivate::RegisterType *);
-PYSIDE_API QuickRegisterItemFunction getQuickRegisterItemFunction();
-PYSIDE_API void setQuickRegisterItemFunction(QuickRegisterItemFunction function);
-#endif // PYSIDE_QML_SUPPORT
-
-/**
- * Given A PyObject repesenting ASCII or Unicode data, returns an equivalent QString.
- */
-PYSIDE_API QString pyStringToQString(PyObject *str);
-
-/**
- * Provide an efficient, correct PathLike interface.
- */
-PYSIDE_API QString pyPathToQString(PyObject *path);
-
-/**
- * Registers a dynamic "qt.conf" file with the Qt resource system.
- *
- * This is used in a standalone build, to inform QLibraryInfo of the Qt prefix (where Qt libraries
- * are installed) so that plugins can be successfully loaded.
- */
-PYSIDE_API bool registerInternalQtConf();
-
-
-} //namespace PySide
-
+#include "pysideinit.h"
+#include "pysideqapp.h"
+#include "pysideqobject.h"
+#include "pysideutils.h"
#endif // PYSIDE_H
diff --git a/sources/pyside6/libpyside/pyside_numpy.cpp b/sources/pyside6/libpyside/pyside_numpy.cpp
index 344137b4c..5f43cc5ce 100644
--- a/sources/pyside6/libpyside/pyside_numpy.cpp
+++ b/sources/pyside6/libpyside/pyside_numpy.cpp
@@ -1,56 +1,16 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-
-#ifdef HAVE_NUMPY
-// Include numpy first to get the proper PyArray_Check
-# include <numpy/arrayobject.h>
-# include "pyside_numpy.h"
+#include "pyside_numpy.h"
+#include <sbknumpyview.h>
// Convert X,Y of type T data to a list of points (QPoint, PointF)
template <class T, class Point>
static QList<Point>
- xyDataToQPointHelper(PyArrayObject *pyX, PyArrayObject *pyY,
- qsizetype size)
+ xyDataToQPointHelper(const void *xData, const void *yData, qsizetype size)
{
- auto *x = reinterpret_cast<const T *>(PyArray_DATA(pyX));
- auto *y = reinterpret_cast<const T *>(PyArray_DATA(pyY));
+ auto *x = reinterpret_cast<const T *>(xData);
+ auto *y = reinterpret_cast<const T *>(yData);
QList<Point> result;
result.reserve(size);
for (auto xEnd = x + size; x < xEnd; ++x, ++y)
@@ -61,11 +21,10 @@ static QList<Point>
// Convert X,Y of double/float type data to a list of QPoint (rounding)
template <class T>
static QList<QPoint>
- xyFloatDataToQPointHelper(PyArrayObject *pyX, PyArrayObject *pyY,
- qsizetype size)
+ xyFloatDataToQPointHelper(const void *xData, const void *yData, qsizetype size)
{
- auto *x = reinterpret_cast<const T *>(PyArray_DATA(pyX));
- auto *y = reinterpret_cast<const T *>(PyArray_DATA(pyY));
+ auto *x = reinterpret_cast<const T *>(xData);
+ auto *y = reinterpret_cast<const T *>(yData);
QList<QPoint> result;
result.reserve(size);
for (auto xEnd = x + size; x < xEnd; ++x, ++y)
@@ -73,119 +32,67 @@ static QList<QPoint>
return result;
}
-
namespace PySide::Numpy
{
-bool init()
-{
- import_array1(false);
- return true;
-}
-
-bool check(PyObject *pyIn)
-{
- return PyArray_Check(pyIn);
-}
-
-struct XyCheck
-{
- qsizetype size;
- int numpytype;
-};
-
-// Check whether pyXIn and pyYIn are 1 dimensional vectors of the same size.
-// Return -1, -1 on failure.
-static XyCheck checkXyData(PyArrayObject *pyX, PyArrayObject *pyY)
-{
- XyCheck result{-1, -1};
- if (PyArray_NDIM(pyX) != 1 || (PyArray_FLAGS(pyX) & NPY_ARRAY_C_CONTIGUOUS) == 0)
- return result;
- if (PyArray_NDIM(pyY) != 1 || (PyArray_FLAGS(pyY) & NPY_ARRAY_C_CONTIGUOUS) == 0)
- return result;
- const int xType = PyArray_TYPE(pyX);
- const int yType = PyArray_TYPE(pyY);
- if (xType != yType)
- return result;
- result.numpytype = xType;
- result.size = qMin(PyArray_DIMS(pyX)[0], PyArray_DIMS(pyY)[0]);
- return result;
-}
-
QList<QPointF> xyDataToQPointFList(PyObject *pyXIn, PyObject *pyYIn)
{
- auto *pyX = reinterpret_cast<PyArrayObject *>(pyXIn);
- auto *pyY = reinterpret_cast<PyArrayObject *>(pyYIn);
- XyCheck check = checkXyData(pyX, pyY);
- if (check.size <= 0)
+ auto xv = Shiboken::Numpy::View::fromPyObject(pyXIn);
+ auto yv = Shiboken::Numpy::View::fromPyObject(pyYIn);
+ if (!xv.sameLayout(yv))
return {};
- switch (check.numpytype) {
- case NPY_INT:
- return xyDataToQPointHelper<int, QPointF>(pyX, pyY, check.size);
- case NPY_UINT:
- return xyDataToQPointHelper<unsigned, QPointF>(pyX, pyY, check.size);
- case NPY_FLOAT:
- return xyDataToQPointHelper<float, QPointF>(pyX, pyY, check.size);
- case NPY_DOUBLE:
- return xyDataToQPointHelper<double, QPointF>(pyX, pyY, check.size);
- default:
+ const qsizetype size = qMin(xv.dimensions[0], yv.dimensions[0]);
+ if (size == 0)
+ return {};
+ switch (xv.type) {
+ case Shiboken::Numpy::View::Int16:
+ return xyDataToQPointHelper<int16_t, QPointF>(xv.data, yv.data, size);
+ case Shiboken::Numpy::View::Unsigned16:
+ return xyDataToQPointHelper<uint16_t, QPointF>(xv.data, yv.data, size);
+ case Shiboken::Numpy::View::Int:
+ return xyDataToQPointHelper<int, QPointF>(xv.data, yv.data, size);
+ case Shiboken::Numpy::View::Unsigned:
+ return xyDataToQPointHelper<unsigned, QPointF>(xv.data, yv.data, size);
+ case Shiboken::Numpy::View::Int64:
+ return xyDataToQPointHelper<int64_t, QPointF>(xv.data, yv.data, size);
+ case Shiboken::Numpy::View::Unsigned64:
+ return xyDataToQPointHelper<uint64_t, QPointF>(xv.data, yv.data, size);
+ case Shiboken::Numpy::View::Float:
+ return xyDataToQPointHelper<float, QPointF>(xv.data, yv.data, size);
+ case Shiboken::Numpy::View::Double:
break;
}
- return {};
+ return xyDataToQPointHelper<double, QPointF>(xv.data, yv.data, size);
}
QList<QPoint> xyDataToQPointList(PyObject *pyXIn, PyObject *pyYIn)
{
- auto *pyX = reinterpret_cast<PyArrayObject *>(pyXIn);
- auto *pyY = reinterpret_cast<PyArrayObject *>(pyYIn);
- XyCheck check = checkXyData(pyX, pyY);
- if (check.size <= 0)
+ auto xv = Shiboken::Numpy::View::fromPyObject(pyXIn);
+ auto yv = Shiboken::Numpy::View::fromPyObject(pyYIn);
+ if (!xv.sameLayout(yv))
+ return {};
+ const qsizetype size = qMin(xv.dimensions[0], yv.dimensions[0]);
+ if (size == 0)
return {};
- switch (check.numpytype) {
- case NPY_INT:
- return xyDataToQPointHelper<int, QPoint>(pyX, pyY, check.size);
- case NPY_UINT:
- return xyDataToQPointHelper<unsigned, QPoint>(pyX, pyY, check.size);
- case NPY_FLOAT:
- return xyFloatDataToQPointHelper<float>(pyX, pyY, check.size);
- case NPY_DOUBLE:
- return xyFloatDataToQPointHelper<double>(pyX, pyY, check.size);
- default:
+ switch (xv.type) {
+ case Shiboken::Numpy::View::Int16:
+ return xyDataToQPointHelper<int16_t, QPoint>(xv.data, yv.data, size);
+ case Shiboken::Numpy::View::Unsigned16:
+ return xyDataToQPointHelper<uint16_t, QPoint>(xv.data, yv.data, size);
+ case Shiboken::Numpy::View::Int:
+ return xyDataToQPointHelper<int, QPoint>(xv.data, yv.data, size);
+ case Shiboken::Numpy::View::Unsigned:
+ return xyDataToQPointHelper<unsigned, QPoint>(xv.data, yv.data, size);
+ case Shiboken::Numpy::View::Int64:
+ return xyDataToQPointHelper<int64_t, QPoint>(xv.data, yv.data, size);
+ case Shiboken::Numpy::View::Unsigned64:
+ return xyDataToQPointHelper<uint64_t, QPoint>(xv.data, yv.data, size);
+ case Shiboken::Numpy::View::Float:
+ return xyFloatDataToQPointHelper<float>(xv.data, yv.data, size);
+ case Shiboken::Numpy::View::Double:
break;
}
-
- return {};
+ return xyFloatDataToQPointHelper<double>(xv.data, yv.data, size);
}
} //namespace PySide::Numpy
-
-#else // HAVE_NUMPY
-# include "pyside_numpy.h"
-namespace PySide::Numpy
-{
-
-bool init()
-{
- return true;
-}
-
-bool check(PyObject *)
-{
- return false;
-}
-
-QList<QPointF> xyDataToQPointFList(PyObject *, PyObject *)
-{
- qWarning("Unimplemented function %s, (numpy was not found).", __FUNCTION__);
- return {};
-}
-
-QList<QPoint> xyDataToQPointList(PyObject *, PyObject *)
-{
- qWarning("Unimplemented function %s, (numpy was not found).", __FUNCTION__);
- return {};
-}
-
-} //namespace PySide::Numpy
-
-#endif // !HAVE_NUMPY
diff --git a/sources/pyside6/libpyside/pyside_numpy.h b/sources/pyside6/libpyside/pyside_numpy.h
index 158865c1d..0925a6bd6 100644
--- a/sources/pyside6/libpyside/pyside_numpy.h
+++ b/sources/pyside6/libpyside/pyside_numpy.h
@@ -1,46 +1,11 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef PYSIDE_NUMPY_H
#define PYSIDE_NUMPY_H
#include <sbkpython.h>
+#include <sbknumpycheck.h>
#include <pysidemacros.h>
@@ -48,21 +13,9 @@
#include <QtCore/QPoint>
#include <QtCore/QPointF>
-// This header provides a PyArray_Check() definition that can be used to avoid
-// having to include the numpy headers. When using numpy headers, make sure
-// to include this header after them to skip the definition. Also remember
-// that import_array() must then be called to initialize numpy.
-
namespace PySide::Numpy
{
-bool init();
-
-/// Check whether the object is a PyArrayObject
-/// \param pyIn object
-/// \return Whether it is a PyArrayObject
-PYSIDE_API bool check(PyObject *pyIn);
-
/// Create a list of QPointF from 2 equally sized numpy array of x and y data
/// (float,double).
/// \param pyXIn X data array
@@ -79,11 +32,6 @@ PYSIDE_API QList<QPointF> xyDataToQPointFList(PyObject *pyXIn, PyObject *pyYIn);
PYSIDE_API QList<QPoint> xyDataToQPointList(PyObject *pyXIn, PyObject *pyYIn);
-
} //namespace PySide::Numpy
-#ifndef PyArray_Check
-# define PyArray_Check(op) PySide::Numpy::check(op)
-#endif
-
#endif // PYSIDE_NUMPY_H
diff --git a/sources/pyside6/libpyside/pyside_p.h b/sources/pyside6/libpyside/pyside_p.h
index a5183c907..b13c1829a 100644
--- a/sources/pyside6/libpyside/pyside_p.h
+++ b/sources/pyside6/libpyside/pyside_p.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef PYSIDE_P_H
#define PYSIDE_P_H
diff --git a/sources/pyside6/libpyside/pysideclassdecorator.cpp b/sources/pyside6/libpyside/pysideclassdecorator.cpp
new file mode 100644
index 000000000..ec69c5fe7
--- /dev/null
+++ b/sources/pyside6/libpyside/pysideclassdecorator.cpp
@@ -0,0 +1,103 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#include <sbkpython.h>
+
+#include "pysideclassdecorator_p.h"
+#include "pysideqobject.h"
+
+#include <basewrapper.h>
+#include <sbkstring.h>
+
+namespace PySide::ClassDecorator {
+
+DecoratorPrivate::DecoratorPrivate() noexcept = default;
+DecoratorPrivate::~DecoratorPrivate() = default;
+
+DecoratorPrivate *DecoratorPrivate::getPrivate(PyObject *o)
+{
+ auto *decorator = reinterpret_cast<PySideClassDecorator *>(o);
+ return decorator->d;
+}
+
+PyObject *DecoratorPrivate::tp_call_check(PyObject *args, CheckMode checkMode) const
+{
+ if (!PyTuple_Check(args) || PyTuple_Size(args) != 1) {
+ PyErr_Format(PyExc_TypeError,
+ "The %s decorator takes exactly 1 positional argument (%zd given)",
+ name(), PyTuple_Size(args));
+ return nullptr;
+ }
+
+ PyObject *arg = PyTuple_GetItem(args, 0);
+
+ // This will sometimes segfault if you mistakenly use it on a function declaration
+ if (!PyType_Check(arg)) {
+ PyErr_Format(PyExc_TypeError,
+ "The %s decorator can only be used on class declarations", name());
+ return nullptr;
+ }
+
+ auto type = reinterpret_cast<PyTypeObject *>(arg);
+
+ if (checkMode != CheckMode::None && !Shiboken::ObjectType::checkType(type)) {
+ PyErr_Format(PyExc_TypeError,
+ "The %s decorator can only be used on wrapped types.", name());
+ return nullptr;
+ }
+
+ if (checkMode == CheckMode::QObjectType && !isQObjectDerived(type, false)) {
+ PyErr_Format(PyExc_TypeError,
+ "The %s decorator can only be used on QObject-derived types.", name());
+ return nullptr;
+ }
+
+ return arg;
+}
+
+int StringDecoratorPrivate::convertToString(PyObject *self, PyObject *args)
+{
+ int result = -1;
+ if (PyTuple_Size(args) == 1) {
+ PyObject *arg = PyTuple_GET_ITEM(args, 0);
+ if (PyUnicode_Check(arg)) {
+ auto *pData = DecoratorPrivate::get<StringDecoratorPrivate>(self);
+ result = 0;
+ pData->m_string.assign(Shiboken::String::toCString(arg));
+ }
+ }
+ return result;
+}
+
+int StringDecoratorPrivate::tp_init(PyObject *self, PyObject *args, PyObject *)
+{
+ const int result = convertToString(self, args);
+ if (result != 0)
+ PyErr_Format(PyExc_TypeError, "%s takes a single string argument.", name());
+ return result;
+}
+
+int TypeDecoratorPrivate::tp_init(PyObject *self, PyObject *args, PyObject *)
+{
+ const int result = convertToType(self, args);
+ if (result != 0)
+ PyErr_Format(PyExc_TypeError, "%s takes a single type argument.", name());
+ return result;
+}
+
+int TypeDecoratorPrivate::convertToType(PyObject *self, PyObject *args)
+{
+ int result = -1;
+ const auto argsCount = PyTuple_Size(args);
+ if (argsCount == 1) {
+ PyObject *arg = PyTuple_GET_ITEM(args, 0);
+ if (PyType_Check(arg)) {
+ result = 0;
+ auto *pData = DecoratorPrivate::get<TypeDecoratorPrivate>(self);
+ pData->m_type = reinterpret_cast<PyTypeObject *>(arg);
+ }
+ }
+ return result;
+}
+
+} // namespace PySide::ClassDecorator
diff --git a/sources/pyside6/libpyside/pysideclassdecorator_p.h b/sources/pyside6/libpyside/pysideclassdecorator_p.h
new file mode 100644
index 000000000..6068f6a2e
--- /dev/null
+++ b/sources/pyside6/libpyside/pysideclassdecorator_p.h
@@ -0,0 +1,164 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef CLASSDECORATOR_P_H
+#define CLASSDECORATOR_P_H
+
+#include <pysidemacros.h>
+
+#include <sbkpython.h>
+#include <pep384ext.h>
+
+#include <QtCore/QByteArray>
+
+#include <array>
+#include <string>
+
+/// Helpers for class decorators with parameters
+namespace PySide::ClassDecorator {
+
+/// Base class for private objects of class decorators with parameters
+class PYSIDE_API DecoratorPrivate
+{
+public:
+ Q_DISABLE_COPY_MOVE(DecoratorPrivate)
+
+ virtual ~DecoratorPrivate();
+
+ /// Virtual function which is passed the decorated class type
+ /// \param args Decorated class type argument
+ /// \return class with reference count increased if the call was successful,
+ /// else nullptr
+ virtual PyObject *tp_call(PyObject *self, PyObject *args, PyObject * /* kw */) = 0;
+
+ /// Virtual function which is passed the decorator parameters
+ /// \param args Decorator arguments
+ /// \return 0 if the parameters are correct
+ virtual int tp_init(PyObject *self, PyObject *args, PyObject *kwds) = 0;
+ virtual const char *name() const = 0;
+
+ /// Helper that returns DecoratorPrivate instance from a PyObject
+ template <class DerivedPrivate>
+ static DerivedPrivate *get(PyObject *o)
+ { return static_cast<DerivedPrivate *>(DecoratorPrivate::getPrivate(o)); }
+
+protected:
+ /// Check mode for the arguments of the call operator
+ enum class CheckMode { None, WrappedType, QObjectType };
+
+ DecoratorPrivate() noexcept;
+ static DecoratorPrivate *getPrivate(PyObject *o);
+
+ /// Helper for checking the arguments of the call operator
+ /// \param args Arguments
+ /// \param checkMode Type check mode
+ /// \return The type object extracted from args tuple (borrowed reference)
+ /// if the argument is a matching type
+ PyObject *tp_call_check(PyObject *args,
+ CheckMode checkMode = CheckMode::QObjectType) const;
+};
+
+/// Base class for private objects of class decorator with a string parameter
+class PYSIDE_API StringDecoratorPrivate : public DecoratorPrivate
+{
+public:
+ /// Init function that retrieves the string parameter using convertToString()
+ int tp_init(PyObject *self, PyObject *args, PyObject *kwds) override;
+
+ QByteArray string() const { return m_string; }
+
+protected:
+ /// Helper function that retrieves the string parameter
+ /// \param self self
+ /// \param args Arguments
+ /// \return 0 if the parameter is correct, else -1 (for tp_init())
+ int convertToString(PyObject *self, PyObject *args);
+
+private:
+ QByteArray m_string;
+};
+
+/// Base class for private objects of class decorator with a type parameter
+class PYSIDE_API TypeDecoratorPrivate : public DecoratorPrivate
+{
+public:
+ /// Init function that retrieves the type parameter using convertToType()
+ int tp_init(PyObject *self, PyObject *args, PyObject *kwds) override;
+
+ PyTypeObject *type() const { return m_type; }
+
+protected:
+ /// Helper function that retrieves the type parameter
+ /// \param self self
+ /// \param args Arguments
+ /// \return 0 if the parameter is correct, else -1 (for tp_init())
+ int convertToType(PyObject *self, PyObject *args);
+
+private:
+ PyTypeObject *m_type = nullptr;
+};
+
+} // namespace PySide::ClassDecorator
+
+extern "C"
+{
+LIBSHIBOKEN_API void Sbk_object_dealloc(PyObject *self);
+
+/// Python type for class decorators with DecoratorPrivate
+struct PYSIDE_API PySideClassDecorator
+{
+ PyObject_HEAD
+ PySide::ClassDecorator::DecoratorPrivate *d;
+};
+};
+
+namespace PySide::ClassDecorator {
+
+/// Helper template providing the methods (slots) for class decorators
+template <class DecoratorPrivate>
+struct Methods
+{
+ static PyObject *tp_new(PyTypeObject *subtype)
+ {
+ auto *result = PepExt_TypeCallAlloc<PySideClassDecorator>(subtype, 0);
+ result->d = new DecoratorPrivate;
+ return reinterpret_cast<PyObject *>(result);
+ }
+
+ static void tp_free(void *self)
+ {
+ auto pySelf = reinterpret_cast<PyObject *>(self);
+ auto decorator = reinterpret_cast<PySideClassDecorator *>(self);
+ delete decorator->d;
+ PepExt_TypeCallFree(Py_TYPE(pySelf)->tp_base, self);
+ }
+
+ static PyObject *tp_call(PyObject *self, PyObject *args, PyObject *kwds)
+ {
+ auto *decorator = reinterpret_cast<PySideClassDecorator *>(self);
+ return decorator->d->tp_call(self, args, kwds);
+ }
+
+ static int tp_init(PyObject *self, PyObject *args, PyObject *kwds)
+ {
+ auto *decorator = reinterpret_cast<PySideClassDecorator *>(self);
+ return decorator->d->tp_init(self, args, kwds);
+ }
+
+ using TypeSlots = std::array<PyType_Slot, 6>;
+
+ static TypeSlots typeSlots()
+ {
+ return { {{Py_tp_call, reinterpret_cast<void *>(tp_call)},
+ {Py_tp_init, reinterpret_cast<void *>(tp_init)},
+ {Py_tp_new, reinterpret_cast<void *>(tp_new)},
+ {Py_tp_free, reinterpret_cast<void *>(tp_free)},
+ {Py_tp_dealloc, reinterpret_cast<void *>(Sbk_object_dealloc)},
+ {0, nullptr}}
+ };
+ }
+};
+
+} // namespace PySide::ClassDecorator
+
+#endif // CLASSDECORATOR_P_H
diff --git a/sources/pyside6/libpyside/pysideclassinfo.cpp b/sources/pyside6/libpyside/pysideclassinfo.cpp
index beb2d6150..9ab5a7ad0 100644
--- a/sources/pyside6/libpyside/pysideclassinfo.cpp
+++ b/sources/pyside6/libpyside/pysideclassinfo.cpp
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include <sbkpython.h>
@@ -50,94 +14,65 @@
extern "C"
{
-static PyObject *classInfoTpNew(PyTypeObject *subtype, PyObject *args, PyObject *kwds);
-static int classInfoTpInit(PyObject *, PyObject *, PyObject *);
-static void classInfoFree(void *);
-static PyObject *classCall(PyObject *, PyObject *, PyObject *);
-
-static PyType_Slot PySideClassInfoType_slots[] = {
- {Py_tp_call, reinterpret_cast<void *>(classCall)},
- {Py_tp_init, reinterpret_cast<void *>(classInfoTpInit)},
- {Py_tp_new, reinterpret_cast<void *>(classInfoTpNew)},
- {Py_tp_free, reinterpret_cast<void *>(classInfoFree)},
- {Py_tp_dealloc, reinterpret_cast<void *>(Sbk_object_dealloc)},
- {0, nullptr}
-};
-static PyType_Spec PySideClassInfoType_spec = {
- "2:PySide6.QtCore.ClassInfo",
- sizeof(PySideClassInfo),
- 0,
- Py_TPFLAGS_DEFAULT,
- PySideClassInfoType_slots,
+static PyTypeObject *createClassInfoType()
+{
+ auto typeSlots =
+ PySide::ClassDecorator::Methods<PySide::ClassInfo::ClassInfoPrivate>::typeSlots();
+
+ PyType_Spec PySideClassInfoType_spec = {
+ "2:PySide6.QtCore.ClassInfo",
+ sizeof(PySideClassDecorator),
+ 0,
+ Py_TPFLAGS_DEFAULT,
+ typeSlots.data()};
+ return SbkType_FromSpec(&PySideClassInfoType_spec);
};
-
-PyTypeObject *PySideClassInfoTypeF(void)
+PyTypeObject *PySideClassInfo_TypeF(void)
{
- static auto *type = SbkType_FromSpec(&PySideClassInfoType_spec);
+ static auto *type = createClassInfoType();
return type;
}
-PyObject *classCall(PyObject *self, PyObject *args, PyObject * /* kw */)
+} // extern "C"
+
+namespace PySide::ClassInfo {
+
+const char *ClassInfoPrivate::name() const
+{
+ return "ClassInfo";
+}
+
+PyObject *ClassInfoPrivate::tp_call(PyObject *self, PyObject *args, PyObject * /* kw */)
{
- if (!PyTuple_Check(args) || PyTuple_Size(args) != 1) {
- PyErr_Format(PyExc_TypeError,
- "The ClassInfo decorator takes exactly 1 positional argument (%zd given)",
- PyTuple_Size(args));
+ PyObject *klass = tp_call_check(args, CheckMode::QObjectType);
+ if (klass == nullptr)
return nullptr;
- }
- PySideClassInfo *data = reinterpret_cast<PySideClassInfo *>(self);
- PySideClassInfoPrivate *pData = data->d;
+ auto *pData = DecoratorPrivate::get<ClassInfoPrivate>(self);
if (pData->m_alreadyWrapped) {
PyErr_SetString(PyExc_TypeError, "This instance of ClassInfo() was already used to wrap an object");
return nullptr;
}
- PyObject *klass = PyTuple_GetItem(args, 0);
- bool validClass = false;
-
- // This will sometimes segfault if you mistakenly use it on a function declaration
- if (!PyType_Check(klass)) {
- PyErr_SetString(PyExc_TypeError, "This decorator can only be used on class declarations");
- return nullptr;
- }
-
PyTypeObject *klassType = reinterpret_cast<PyTypeObject *>(klass);
- if (Shiboken::ObjectType::checkType(klassType)) {
- if (auto userData = PySide::retrieveTypeUserData(klassType)) {
- PySide::MetaObjectBuilder &mo = userData->mo;
- mo.addInfo(PySide::ClassInfo::getMap(data));
- pData->m_alreadyWrapped = true;
- validClass = true;
- }
- }
-
- if (!validClass) {
+ if (!PySide::ClassInfo::setClassInfo(klassType, pData->m_data)) {
PyErr_SetString(PyExc_TypeError, "This decorator can only be used on classes that are subclasses of QObject");
return nullptr;
}
+ pData->m_alreadyWrapped = true;
+
Py_INCREF(klass);
return klass;
}
-static PyObject *classInfoTpNew(PyTypeObject *subtype, PyObject * /* args */, PyObject * /* kwds */)
-{
- PySideClassInfo *me = reinterpret_cast<PySideClassInfo *>(subtype->tp_alloc(subtype, 0));
- me->d = new PySideClassInfoPrivate;
-
- me->d->m_alreadyWrapped = false;
-
- return reinterpret_cast<PyObject *>(me);
-}
-
-int classInfoTpInit(PyObject *self, PyObject *args, PyObject *kwds)
+int ClassInfoPrivate::tp_init(PyObject *self, PyObject *args, PyObject *kwds)
{
PyObject *infoDict = nullptr;
auto size = PyTuple_Size(args);
- if (size == 1 && !kwds) {
+ if (size == 1 && kwds == nullptr) {
PyObject *tmp = PyTuple_GET_ITEM(args, 0);
if (PyDict_Check(tmp))
infoDict = tmp;
@@ -145,24 +80,25 @@ int classInfoTpInit(PyObject *self, PyObject *args, PyObject *kwds)
infoDict = kwds;
}
- if (!infoDict) {
+ if (infoDict == nullptr) {
PyErr_Format(PyExc_TypeError, "ClassInfo() takes either keyword argument(s) or "
"a single dictionary argument");
return -1;
}
- PySideClassInfo *data = reinterpret_cast<PySideClassInfo *>(self);
- PySideClassInfoPrivate *pData = data->d;
+ auto *pData = DecoratorPrivate::get<ClassInfoPrivate>(self);
- PyObject *key;
- PyObject *value;
+ PyObject *key{};
+ PyObject *value{};
Py_ssize_t pos = 0;
// PyDict_Next causes a segfault if kwds is empty
if (PyDict_Size(infoDict) > 0) {
while (PyDict_Next(infoDict, &pos, &key, &value)) {
if (Shiboken::String::check(key) && Shiboken::String::check(value)) {
- pData->m_data[Shiboken::String::toCString(key)] = Shiboken::String::toCString(value);
+ ClassInfo info{Shiboken::String::toCString(key),
+ Shiboken::String::toCString(value)};
+ pData->m_data.append(info);
} else {
PyErr_SetString(PyExc_TypeError, "All keys and values provided to ClassInfo() "
"must be strings");
@@ -171,48 +107,56 @@ int classInfoTpInit(PyObject *self, PyObject *args, PyObject *kwds)
}
}
- return PyErr_Occurred() ? -1 : 0;
-}
-
-void classInfoFree(void *self)
-{
- auto pySelf = reinterpret_cast<PyObject *>(self);
- auto data = reinterpret_cast<PySideClassInfo *>(self);
-
- delete data->d;
- Py_TYPE(pySelf)->tp_base->tp_free(self);
+ return PyErr_Occurred() != nullptr ? -1 : 0;
}
-
-} // extern "C"
-
-
-namespace PySide { namespace ClassInfo {
-
static const char *ClassInfo_SignatureStrings[] = {
"PySide6.QtCore.ClassInfo(self,**info:typing.Dict[str,str])",
nullptr}; // Sentinel
void init(PyObject *module)
{
- if (InitSignatureStrings(PySideClassInfoTypeF(), ClassInfo_SignatureStrings) < 0)
+ if (InitSignatureStrings(PySideClassInfo_TypeF(), ClassInfo_SignatureStrings) < 0)
return;
- Py_INCREF(PySideClassInfoTypeF());
- PyModule_AddObject(module, "ClassInfo", reinterpret_cast<PyObject *>(PySideClassInfoTypeF()));
+ Py_INCREF(PySideClassInfo_TypeF());
+ PyModule_AddObject(module, "ClassInfo", reinterpret_cast<PyObject *>(PySideClassInfo_TypeF()));
}
bool checkType(PyObject *pyObj)
{
- if (pyObj)
- return PyType_IsSubtype(Py_TYPE(pyObj), PySideClassInfoTypeF());
- return false;
+ return pyObj != nullptr
+ && PyType_IsSubtype(Py_TYPE(pyObj), PySideClassInfo_TypeF()) != 0;
}
-QMap<QByteArray, QByteArray> getMap(PySideClassInfo *obj)
+ClassInfoList getClassInfoList(PyObject *decorator)
{
- return obj->d->m_data;
+ auto *pData = PySide::ClassDecorator::DecoratorPrivate::get<ClassInfoPrivate>(decorator);
+ return pData->m_data;
+}
+
+bool setClassInfo(PyTypeObject *type, const QByteArray &key,
+ const QByteArray &value)
+{
+ auto *userData = PySide::retrieveTypeUserData(type);
+ const bool result = userData != nullptr;
+ if (result) {
+ PySide::MetaObjectBuilder &mo = userData->mo;
+ mo.addInfo(key, value);
+ }
+ return result;
+}
+
+bool setClassInfo(PyTypeObject *type, const ClassInfoList &list)
+{
+ auto *userData = PySide::retrieveTypeUserData(type);
+ const bool result = userData != nullptr;
+ if (result) {
+ PySide::MetaObjectBuilder &mo = userData->mo;
+ for (const auto &info : list)
+ mo.addInfo(info.key.constData(), info.value.constData());
+ }
+ return result;
}
-} //namespace Property
-} //namespace PySide
+} //namespace PySide::ClassInfo
diff --git a/sources/pyside6/libpyside/pysideclassinfo.h b/sources/pyside6/libpyside/pysideclassinfo.h
index ff60b91c3..e04865829 100644
--- a/sources/pyside6/libpyside/pysideclassinfo.h
+++ b/sources/pyside6/libpyside/pysideclassinfo.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef PYSIDE_CLASSINFO_H
#define PYSIDE_CLASSINFO_H
@@ -44,27 +8,26 @@
#include <sbkpython.h>
-#include <QtCore/QMap>
#include <QtCore/QByteArray>
+#include <QtCore/QList>
-extern "C"
-{
- extern PYSIDE_API PyTypeObject *PySideClassInfoTypeF(void);
+namespace PySide::ClassInfo {
- struct PySideClassInfoPrivate;
- struct PYSIDE_API PySideClassInfo
- {
- PyObject_HEAD
- PySideClassInfoPrivate* d;
- };
+struct ClassInfo
+{
+ QByteArray key;
+ QByteArray value;
};
-namespace PySide { namespace ClassInfo {
+using ClassInfoList = QList<ClassInfo>;
PYSIDE_API bool checkType(PyObject* pyObj);
-PYSIDE_API QMap<QByteArray, QByteArray> getMap(PySideClassInfo* obj);
+PYSIDE_API ClassInfoList getClassInfoList(PyObject *decorator);
+
+PYSIDE_API bool setClassInfo(PyTypeObject *type, const QByteArray &key,
+ const QByteArray &value);
+PYSIDE_API bool setClassInfo(PyTypeObject *type, const ClassInfoList &list);
-} //namespace ClassInfo
-} //namespace PySide
+} // namespace PySide::ClassInfo
#endif
diff --git a/sources/pyside6/libpyside/pysideclassinfo_p.h b/sources/pyside6/libpyside/pysideclassinfo_p.h
index 021aa58e9..4ef456f76 100644
--- a/sources/pyside6/libpyside/pysideclassinfo_p.h
+++ b/sources/pyside6/libpyside/pysideclassinfo_p.h
@@ -1,62 +1,36 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef PYSIDE_CLASSINFO_P_H
#define PYSIDE_CLASSINFO_P_H
#include <sbkpython.h>
-#include <QMetaObject>
+
+#include "pysideclassdecorator_p.h"
#include "pysideclassinfo.h"
+#include <QtCore/QMetaObject>
+
struct PySideClassInfo;
extern "C"
{
-
-struct PySideClassInfoPrivate {
- QMap<QByteArray, QByteArray> m_data;
- bool m_alreadyWrapped;
-};
+extern PYSIDE_API PyTypeObject *PySideClassInfo_TypeF(void);
} // extern "C"
-namespace PySide { namespace ClassInfo {
+namespace PySide::ClassInfo {
+
+class ClassInfoPrivate : public PySide::ClassDecorator::DecoratorPrivate
+{
+public:
+ PyObject *tp_call(PyObject *self, PyObject *args, PyObject * /* kw */) override;
+ int tp_init(PyObject *self, PyObject *args, PyObject *kwds) override;
+ const char *name() const override;
+
+ ClassInfoList m_data;
+ bool m_alreadyWrapped = false;
+};
/**
* Init PySide QProperty support system
@@ -64,7 +38,6 @@ namespace PySide { namespace ClassInfo {
void init(PyObject* module);
-} // namespace ClassInfo
-} // namespace PySide
+} // namespace PySide::ClassInfo
#endif
diff --git a/sources/pyside6/libpyside/pysidecleanup.h b/sources/pyside6/libpyside/pysidecleanup.h
new file mode 100644
index 000000000..cc5bbb0e6
--- /dev/null
+++ b/sources/pyside6/libpyside/pysidecleanup.h
@@ -0,0 +1,20 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef PYSIDECLEANUP_H
+#define PYSIDECLEANUP_H
+
+#include <pysidemacros.h>
+
+namespace PySide
+{
+
+using CleanupFunction = void(*)();
+
+/// Register a function to be called before python dies
+PYSIDE_API void registerCleanupFunction(CleanupFunction func);
+PYSIDE_API void runCleanupFunctions();
+
+} //namespace PySide
+
+#endif // PYSIDECLEANUP_H
diff --git a/sources/pyside6/libpyside/pysideinit.h b/sources/pyside6/libpyside/pysideinit.h
new file mode 100644
index 000000000..c623a0d27
--- /dev/null
+++ b/sources/pyside6/libpyside/pysideinit.h
@@ -0,0 +1,27 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef PYSIDEINIT_H
+#define PYSIDEINIT_H
+
+#include <sbkpython.h>
+
+#include <pysidemacros.h>
+
+namespace PySide
+{
+
+PYSIDE_API void init(PyObject *module);
+
+/// Registers a dynamic "qt.conf" file with the Qt resource system.
+///
+/// This is used in a standalone build, to inform QLibraryInfo of the Qt prefix
+/// (where Qt libraries are installed) so that plugins can be successfully loaded.
+///
+/// This is also used if PySide runs from inside a conda environment to solve
+/// conflicts with the qt.conf installed by Anaconda Qt packages.
+PYSIDE_API bool registerInternalQtConf();
+
+} //namespace PySide
+
+#endif // PYSIDEINIT_H
diff --git a/sources/pyside6/libpyside/pysidelogging_p.h b/sources/pyside6/libpyside/pysidelogging_p.h
new file mode 100644
index 000000000..bf167264d
--- /dev/null
+++ b/sources/pyside6/libpyside/pysidelogging_p.h
@@ -0,0 +1,11 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef PYSIDE_LOGGING_P_H
+#define PYSIDE_LOGGING_P_H
+
+#include <QtCore/QLoggingCategory>
+
+Q_DECLARE_LOGGING_CATEGORY(lcPySide)
+
+#endif // PYSIDE_LOGGING_P_H
diff --git a/sources/pyside6/libpyside/pysidemacros.h b/sources/pyside6/libpyside/pysidemacros.h
index a59f76822..46f64b4ed 100644
--- a/sources/pyside6/libpyside/pysidemacros.h
+++ b/sources/pyside6/libpyside/pysidemacros.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef PYSIDEMACROS_H
#define PYSIDEMACROS_H
diff --git a/sources/pyside6/libpyside/pysidemetafunction.cpp b/sources/pyside6/libpyside/pysidemetafunction.cpp
index 64f50bc62..e8173b97d 100644
--- a/sources/pyside6/libpyside/pysidemetafunction.cpp
+++ b/sources/pyside6/libpyside/pysidemetafunction.cpp
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include "pysidemetafunction.h"
#include "pysidemetafunction_p.h"
@@ -58,25 +22,30 @@ struct PySideMetaFunctionPrivate
static void functionFree(void *);
static PyObject *functionCall(PyObject *, PyObject *, PyObject *);
-static PyType_Slot PySideMetaFunctionType_slots[] = {
- {Py_tp_call, reinterpret_cast<void *>(functionCall)},
- {Py_tp_new, reinterpret_cast<void *>(PyType_GenericNew)},
- {Py_tp_free, reinterpret_cast<void *>(functionFree)},
- {Py_tp_dealloc, reinterpret_cast<void *>(Sbk_object_dealloc)},
- {0, nullptr}
-};
-static PyType_Spec PySideMetaFunctionType_spec = {
- "2:PySide6.QtCore.MetaFunction",
- sizeof(PySideMetaFunction),
- 0,
- Py_TPFLAGS_DEFAULT,
- PySideMetaFunctionType_slots,
-};
-
+static PyTypeObject *createMetaFunctionType()
+{
+ PyType_Slot PySideMetaFunctionType_slots[] = {
+ {Py_tp_call, reinterpret_cast<void *>(functionCall)},
+ {Py_tp_new, reinterpret_cast<void *>(PyType_GenericNew)},
+ {Py_tp_free, reinterpret_cast<void *>(functionFree)},
+ {Py_tp_dealloc, reinterpret_cast<void *>(Sbk_object_dealloc)},
+ {0, nullptr}
+ };
+
+ PyType_Spec PySideMetaFunctionType_spec = {
+ "2:PySide6.QtCore.MetaFunction",
+ sizeof(PySideMetaFunction),
+ 0,
+ Py_TPFLAGS_DEFAULT,
+ PySideMetaFunctionType_slots,
+ };
+
+ return SbkType_FromSpec(&PySideMetaFunctionType_spec);
+}
-PyTypeObject *PySideMetaFunctionTypeF(void)
+PyTypeObject *PySideMetaFunction_TypeF(void)
{
- static auto *type = SbkType_FromSpec(&PySideMetaFunctionType_spec);
+ static auto *type = createMetaFunctionType();
return type;
}
@@ -106,11 +75,11 @@ static const char *MetaFunction_SignatureStrings[] = {
void init(PyObject *module)
{
- if (InitSignatureStrings(PySideMetaFunctionTypeF(), MetaFunction_SignatureStrings) < 0)
+ if (InitSignatureStrings(PySideMetaFunction_TypeF(), MetaFunction_SignatureStrings) < 0)
return;
- Py_INCREF(PySideMetaFunctionTypeF());
- PyModule_AddObject(module, "MetaFunction", reinterpret_cast<PyObject *>(PySideMetaFunctionTypeF()));
+ Py_INCREF(PySideMetaFunction_TypeF());
+ PyModule_AddObject(module, "MetaFunction", reinterpret_cast<PyObject *>(PySideMetaFunction_TypeF()));
}
PySideMetaFunction *newObject(QObject *source, int methodIndex)
@@ -121,7 +90,7 @@ PySideMetaFunction *newObject(QObject *source, int methodIndex)
QMetaMethod method = source->metaObject()->method(methodIndex);
if ((method.methodType() == QMetaMethod::Slot) ||
(method.methodType() == QMetaMethod::Method)) {
- PySideMetaFunction *function = PyObject_New(PySideMetaFunction, PySideMetaFunctionTypeF());
+ PySideMetaFunction *function = PyObject_New(PySideMetaFunction, PySideMetaFunction_TypeF());
function->d = new PySideMetaFunctionPrivate();
function->d->qobject = source;
function->d->methodIndex = methodIndex;
@@ -138,19 +107,19 @@ bool call(QObject *self, int methodIndex, PyObject *args, PyObject **retVal)
// args given plus return type
Shiboken::AutoDecRef sequence(PySequence_Fast(args, nullptr));
- int numArgs = PySequence_Fast_GET_SIZE(sequence.object()) + 1;
+ qsizetype numArgs = PySequence_Fast_GET_SIZE(sequence.object()) + 1;
- if (numArgs - 1 > argTypes.count()) {
+ if (numArgs - 1 > argTypes.size()) {
PyErr_Format(PyExc_TypeError, "%s only accepts %d argument(s), %d given!",
method.methodSignature().constData(),
- argTypes.count(), numArgs - 1);
+ argTypes.size(), numArgs - 1);
return false;
}
- if (numArgs - 1 < argTypes.count()) {
+ if (numArgs - 1 < argTypes.size()) {
PyErr_Format(PyExc_TypeError, "%s needs %d argument(s), %d given!",
method.methodSignature().constData(),
- argTypes.count(), numArgs - 1);
+ argTypes.size(), numArgs - 1);
return false;
}
diff --git a/sources/pyside6/libpyside/pysidemetafunction.h b/sources/pyside6/libpyside/pysidemetafunction.h
index f7cc5307b..26a2cfd68 100644
--- a/sources/pyside6/libpyside/pysidemetafunction.h
+++ b/sources/pyside6/libpyside/pysidemetafunction.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef PYSIDE_METAFUNCTION_H
#define PYSIDE_METAFUNCTION_H
@@ -48,7 +12,7 @@
extern "C"
{
- extern PYSIDE_API PyTypeObject *PySideMetaFunctionTypeF(void);
+ extern PYSIDE_API PyTypeObject *PySideMetaFunction_TypeF(void);
struct PySideMetaFunctionPrivate;
struct PYSIDE_API PySideMetaFunction
@@ -58,7 +22,7 @@ extern "C"
};
}; //extern "C"
-namespace PySide { namespace MetaFunction {
+namespace PySide::MetaFunction {
/**
* This function creates a MetaFunction object
@@ -69,7 +33,6 @@ namespace PySide { namespace MetaFunction {
**/
PYSIDE_API PySideMetaFunction *newObject(QObject *obj, int methodIndex);
-} //namespace MetaFunction
-} //namespace PySide
+} //namespace PySide::MetaFunction
#endif
diff --git a/sources/pyside6/libpyside/pysidemetafunction_p.h b/sources/pyside6/libpyside/pysidemetafunction_p.h
index c67233857..0207ec3a2 100644
--- a/sources/pyside6/libpyside/pysidemetafunction_p.h
+++ b/sources/pyside6/libpyside/pysidemetafunction_p.h
@@ -1,54 +1,18 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef PYSIDE_METAFUNCTION_P_H
#define PYSIDE_METAFUNCTION_P_H
#include <sbkpython.h>
-#include <QtCore/QtGlobal>
+#include <QtCore/qtconfigmacros.h>
QT_BEGIN_NAMESPACE
class QObject;
QT_END_NAMESPACE
-namespace PySide { namespace MetaFunction {
+namespace PySide::MetaFunction {
void init(PyObject *module);
/**
@@ -56,7 +20,6 @@ namespace PySide { namespace MetaFunction {
*/
bool call(QObject *self, int methodIndex, PyObject *args, PyObject **retVal = nullptr);
-} //namespace MetaFunction
-} //namespace PySide
+} //namespace PySide::MetaFunction
#endif
diff --git a/sources/pyside6/libpyside/pysidemetatype.h b/sources/pyside6/libpyside/pysidemetatype.h
new file mode 100644
index 000000000..85e70f7c9
--- /dev/null
+++ b/sources/pyside6/libpyside/pysidemetatype.h
@@ -0,0 +1,26 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef PYSIDEMETATYPE_H
+#define PYSIDEMETATYPE_H
+
+#include <sbkpython.h>
+
+#include <pysidemacros.h>
+
+#include <QtCore/qtconfigmacros.h>
+
+QT_FORWARD_DECLARE_CLASS(QMetaType)
+
+namespace PySide
+{
+
+/// Returns the QMetaType matching a PyTypeObject
+/// \param
+/// \param type TypeObject
+/// \return QMetaType
+PYSIDE_API QMetaType qMetaTypeFromPyType(PyTypeObject *type);
+
+} //namespace PySide
+
+#endif // PYSIDEMETATYPE_H
diff --git a/sources/pyside6/libpyside/pysideproperty.cpp b/sources/pyside6/libpyside/pysideproperty.cpp
index 9f9340e19..457415479 100644
--- a/sources/pyside6/libpyside/pysideproperty.cpp
+++ b/sources/pyside6/libpyside/pysideproperty.cpp
@@ -1,50 +1,14 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include <sbkpython.h>
#include "pysideproperty.h"
#include "pysideproperty_p.h"
-#include "dynamicqmetaobject_p.h"
#include "pysidesignal.h"
#include "pysidesignal_p.h"
#include <shiboken.h>
+#include <pep384ext.h>
#include <signature.h>
using namespace Shiboken;
@@ -95,96 +59,150 @@ static PyGetSetDef PySidePropertyType_getset[] = {
{nullptr, nullptr, nullptr, nullptr, nullptr}
};
-static PyType_Slot PySidePropertyType_slots[] = {
- {Py_tp_dealloc, reinterpret_cast<void *>(qpropertyDeAlloc)},
- {Py_tp_call, reinterpret_cast<void *>(qPropertyCall)},
- {Py_tp_traverse, reinterpret_cast<void *>(qpropertyTraverse)},
- {Py_tp_clear, reinterpret_cast<void *>(qpropertyClear)},
- {Py_tp_methods, reinterpret_cast<void *>(PySidePropertyMethods)},
- {Py_tp_init, reinterpret_cast<void *>(qpropertyTpInit)},
- {Py_tp_new, reinterpret_cast<void *>(qpropertyTpNew)},
- {Py_tp_getset, PySidePropertyType_getset},
- {0, nullptr}
-};
+static PyTypeObject *createPropertyType()
+{
+ PyType_Slot PySidePropertyType_slots[] = {
+ {Py_tp_dealloc, reinterpret_cast<void *>(qpropertyDeAlloc)},
+ {Py_tp_call, reinterpret_cast<void *>(qPropertyCall)},
+ {Py_tp_traverse, reinterpret_cast<void *>(qpropertyTraverse)},
+ {Py_tp_clear, reinterpret_cast<void *>(qpropertyClear)},
+ {Py_tp_methods, reinterpret_cast<void *>(PySidePropertyMethods)},
+ {Py_tp_init, reinterpret_cast<void *>(qpropertyTpInit)},
+ {Py_tp_new, reinterpret_cast<void *>(qpropertyTpNew)},
+ {Py_tp_getset, PySidePropertyType_getset},
+ {Py_tp_del, reinterpret_cast<void *>(PyObject_GC_Del)},
+ {0, nullptr}
+ };
-static PyType_Spec PySidePropertyType_spec = {
- "2:PySide6.QtCore.Property",
- sizeof(PySideProperty),
- 0,
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_BASETYPE,
- PySidePropertyType_slots,
-};
+ PyType_Spec PySidePropertyType_spec = {
+ "2:PySide6.QtCore.Property",
+ sizeof(PySideProperty),
+ 0,
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_BASETYPE,
+ PySidePropertyType_slots,
+ };
+ return SbkType_FromSpec(&PySidePropertyType_spec);
+}
-PyTypeObject *PySidePropertyTypeF(void)
+PyTypeObject *PySideProperty_TypeF(void)
{
- static auto *type = SbkType_FromSpec(&PySidePropertyType_spec);
+ static auto *type = createPropertyType();
return type;
}
-static void qpropertyMetaCall(PySideProperty *pp, PyObject *self, QMetaObject::Call call, void **args)
+PySidePropertyPrivate::PySidePropertyPrivate() noexcept = default;
+PySidePropertyPrivate::~PySidePropertyPrivate() = default;
+
+PyObject *PySidePropertyPrivate::getValue(PyObject *source)
{
- Shiboken::Conversions::SpecificConverter converter(pp->d->typeName);
- Q_ASSERT(converter);
+ if (fget) {
+ Shiboken::AutoDecRef args(PyTuple_New(1));
+ Py_INCREF(source);
+ PyTuple_SET_ITEM(args, 0, source);
+ return PyObject_CallObject(fget, args);
+ }
+ return nullptr;
+}
- switch(call) {
- case QMetaObject::ReadProperty:
- {
- Shiboken::GilState gil;
- PyObject *value = PySide::Property::getValue(pp, self);
- if (value) {
- converter.toCpp(value, args[0]);
- Py_DECREF(value);
+int PySidePropertyPrivate::setValue(PyObject *source, PyObject *value)
+{
+ if (fset && value) {
+ Shiboken::AutoDecRef args(PyTuple_New(2));
+ PyTuple_SET_ITEM(args, 0, source);
+ PyTuple_SET_ITEM(args, 1, value);
+ Py_INCREF(source);
+ Py_INCREF(value);
+ Shiboken::AutoDecRef result(PyObject_CallObject(fset, args));
+ return (result.isNull() ? -1 : 0);
+ }
+ if (fdel) {
+ Shiboken::AutoDecRef args(PyTuple_New(1));
+ PyTuple_SET_ITEM(args, 0, source);
+ Py_INCREF(source);
+ Shiboken::AutoDecRef result(PyObject_CallObject(fdel, args));
+ return (result.isNull() ? -1 : 0);
+ }
+ PyErr_SetString(PyExc_AttributeError, "Attribute is read only");
+ return -1;
+}
+
+int PySidePropertyPrivate::reset(PyObject *source)
+{
+ if (freset) {
+ Shiboken::AutoDecRef args(PyTuple_New(1));
+ Py_INCREF(source);
+ PyTuple_SET_ITEM(args, 0, source);
+ Shiboken::AutoDecRef result(PyObject_CallObject(freset, args));
+ return (result.isNull() ? -1 : 0);
+ }
+ return -1;
+}
+
+void PySidePropertyPrivate::metaCall(PyObject *source, QMetaObject::Call call, void **args)
+{
+ switch (call) {
+ case QMetaObject::ReadProperty: {
+ AutoDecRef value(getValue(source));
+ auto *obValue = value.object();
+ if (obValue) {
+ Conversions::SpecificConverter converter(typeName);
+ if (converter) {
+ converter.toCpp(obValue, args[0]);
+ } else {
+ // PYSIDE-2160: Report an unknown type name to the caller `qtPropertyMetacall`.
+ PyErr_SetObject(PyExc_StopIteration, obValue);
}
- break;
}
-
- case QMetaObject::WriteProperty:
- {
- Shiboken::GilState gil;
- Shiboken::AutoDecRef value(converter.toPython(args[0]));
- PySide::Property::setValue(pp, self, value);
- break;
+ }
+ break;
+
+ case QMetaObject::WriteProperty: {
+ Conversions::SpecificConverter converter(typeName);
+ if (converter) {
+ AutoDecRef value(converter.toPython(args[0]));
+ setValue(source, value);
+ } else {
+ // PYSIDE-2160: Report an unknown type name to the caller `qtPropertyMetacall`.
+ PyErr_SetNone(PyExc_StopIteration);
}
+ }
+ break;
- case QMetaObject::ResetProperty:
- {
- Shiboken::GilState gil;
- PySide::Property::reset(pp, self);
- break;
- }
+ case QMetaObject::ResetProperty:
+ reset(source);
+ break;
- // just to avoid gcc warnings
- case QMetaObject::BindableProperty:
- case QMetaObject::InvokeMetaMethod:
- case QMetaObject::CreateInstance:
- case QMetaObject::IndexOfMethod:
- case QMetaObject::RegisterPropertyMetaType:
- case QMetaObject::RegisterMethodArgumentMetaType:
- break;
+ default:
+ break;
}
}
-
static PyObject *qpropertyTpNew(PyTypeObject *subtype, PyObject * /* args */, PyObject * /* kwds */)
{
- PySideProperty *me = reinterpret_cast<PySideProperty *>(subtype->tp_alloc(subtype, 0));
+ auto *me = PepExt_TypeCallAlloc<PySideProperty>(subtype, 0);
me->d = new PySidePropertyPrivate;
return reinterpret_cast<PyObject *>(me);
}
static int qpropertyTpInit(PyObject *self, PyObject *args, PyObject *kwds)
{
- PyObject *type = nullptr;
+ PyObject *type{};
auto data = reinterpret_cast<PySideProperty *>(self);
PySidePropertyPrivate *pData = data->d;
- pData->metaCallHandler = &qpropertyMetaCall;
static const char *kwlist[] = {"type", "fget", "fset", "freset", "fdel", "doc", "notify",
"designable", "scriptable", "stored",
"user", "constant", "final", nullptr};
char *doc{};
+ Py_CLEAR(pData->pyTypeObject);
+ Py_CLEAR(pData->fget);
+ Py_CLEAR(pData->fset);
+ Py_CLEAR(pData->freset);
+ Py_CLEAR(pData->fdel);
+ Py_CLEAR(pData->notify);
+
if (!PyArg_ParseTupleAndKeywords(args, kwds,
"O|OOOOsObbbbbb:QtCore.Property",
const_cast<char **>(kwlist),
@@ -206,6 +224,8 @@ static int qpropertyTpInit(PyObject *self, PyObject *args, PyObject *kwds)
else
pData->doc.clear();
+ pData->pyTypeObject = type;
+ Py_XINCREF(pData->pyTypeObject);
pData->typeName = PySide::Signal::getTypeName(type);
if (pData->typeName.isEmpty())
@@ -238,13 +258,17 @@ static void qpropertyDeAlloc(PyObject *self)
// This was not needed before Python 3.8 (Python issue 35810)
Py_DECREF(Py_TYPE(self));
}
- Py_TYPE(self)->tp_free(self);
+ PyObject_GC_UnTrack(self);
+ PepExt_TypeCallFree(self);
}
+// Create a copy of the property to prevent the @property.setter from modifying
+// the property in place and avoid strange side effects in derived classes
+// (cf https://bugs.python.org/issue1620).
static PyObject *
_property_copy(PyObject *old, PyObject *get, PyObject *set, PyObject *reset, PyObject *del)
{
- PySideProperty *pold = reinterpret_cast<PySideProperty *>(old);
+ auto *pold = reinterpret_cast<PySideProperty *>(old);
PySidePropertyPrivate *pData = pold->d;
AutoDecRef type(PyObject_Type(old));
@@ -276,9 +300,8 @@ _property_copy(PyObject *old, PyObject *get, PyObject *set, PyObject *reset, PyO
auto notify = pData->notify ? pData->notify : Py_None;
- PyObject *typeName = String::fromCString(pData->typeName);
PyObject *obNew = PyObject_CallFunction(type, const_cast<char *>("OOOOOsO" "bbb" "bbb"),
- typeName, get, set, reset, del, doc.data(), notify,
+ pData->pyTypeObject, get, set, reset, del, doc.data(), notify,
pData->designable, pData->scriptable, pData->stored,
pData->user, pData->constant, pData->final);
@@ -356,10 +379,10 @@ static PyObject *qPropertyDocGet(PyObject *self, void *)
if (pData->fget != nullptr) {
// PYSIDE-1019: Fetch the default `__doc__` from fget. We do it late.
AutoDecRef get_doc(PyObject_GetAttr(pData->fget, PyMagicName::doc()));
- if (!get_doc.isNull()) {
+ if (!get_doc.isNull() && get_doc.object() != Py_None) {
pData->doc = String::toCString(get_doc);
pData->getter_doc = true;
- if (Py_TYPE(self) == PySidePropertyTypeF())
+ if (Py_TYPE(self) == PySideProperty_TypeF())
return qPropertyDocGet(self, nullptr);
/*
* If this is a property subclass, put __doc__ in dict of the
@@ -399,6 +422,7 @@ static int qpropertyTraverse(PyObject *self, visitproc visit, void *arg)
Py_VISIT(data->freset);
Py_VISIT(data->fdel);
Py_VISIT(data->notify);
+ Py_VISIT(data->pyTypeObject);
return 0;
}
@@ -413,7 +437,7 @@ static int qpropertyClear(PyObject *self)
Py_CLEAR(data->freset);
Py_CLEAR(data->fdel);
Py_CLEAR(data->notify);
-
+ Py_CLEAR(data->pyTypeObject);
delete data;
reinterpret_cast<PySideProperty *>(self)->d = nullptr;
@@ -422,16 +446,14 @@ static int qpropertyClear(PyObject *self)
} // extern "C"
-namespace {
-
static PyObject *getFromType(PyTypeObject *type, PyObject *name)
{
- PyObject *attr = nullptr;
- attr = PyDict_GetItem(type->tp_dict, name);
+ AutoDecRef tpDict(PepType_GetDict(type));
+ auto *attr = PyDict_GetItem(tpDict.object(), name);
if (!attr) {
PyObject *bases = type->tp_bases;
- int size = PyTuple_GET_SIZE(bases);
- for(int i=0; i < size; i++) {
+ const Py_ssize_t size = PyTuple_GET_SIZE(bases);
+ for (Py_ssize_t i = 0; i < size; ++i) {
PyObject *base = PyTuple_GET_ITEM(bases, i);
attr = getFromType(reinterpret_cast<PyTypeObject *>(base), name);
if (attr)
@@ -441,17 +463,13 @@ static PyObject *getFromType(PyTypeObject *type, PyObject *name)
return attr;
}
-} //namespace
-
-
-namespace PySide { namespace Property {
+namespace PySide::Property {
static const char *Property_SignatureStrings[] = {
"PySide6.QtCore.Property(self,type:type,fget:typing.Callable=None,fset:typing.Callable=None,"
"freset:typing.Callable=None,fdel:typing.Callable=None,doc:str=None,"
"notify:typing.Callable=None,designable:bool=True,scriptable:bool=True,"
- "stored:bool=True,user:bool=False,constant:bool=False,final:bool=False)"
- "->PySide6.QtCore.Property",
+ "stored:bool=True,user:bool=False,constant:bool=False,final:bool=False)",
"PySide6.QtCore.Property.deleter(self,fdel:typing.Callable)->PySide6.QtCore.Property",
"PySide6.QtCore.Property.getter(self,fget:typing.Callable)->PySide6.QtCore.Property",
"PySide6.QtCore.Property.read(self,fget:typing.Callable)->PySide6.QtCore.Property",
@@ -461,68 +479,34 @@ static const char *Property_SignatureStrings[] = {
void init(PyObject *module)
{
- if (InitSignatureStrings(PySidePropertyTypeF(), Property_SignatureStrings) < 0)
+ if (InitSignatureStrings(PySideProperty_TypeF(), Property_SignatureStrings) < 0)
return;
- Py_INCREF(PySidePropertyTypeF());
- PyModule_AddObject(module, "Property", reinterpret_cast<PyObject *>(PySidePropertyTypeF()));
+ Py_INCREF(PySideProperty_TypeF());
+ PyModule_AddObject(module, "Property", reinterpret_cast<PyObject *>(PySideProperty_TypeF()));
}
bool checkType(PyObject *pyObj)
{
if (pyObj) {
- return PyType_IsSubtype(Py_TYPE(pyObj), PySidePropertyTypeF());
+ return PyType_IsSubtype(Py_TYPE(pyObj), PySideProperty_TypeF());
}
return false;
}
-int setValue(PySideProperty *self, PyObject *source, PyObject *value)
+PyObject *getValue(PySideProperty *self, PyObject *source)
{
- PyObject *fset = self->d->fset;
- if (fset && value) {
- Shiboken::AutoDecRef args(PyTuple_New(2));
- PyTuple_SET_ITEM(args, 0, source);
- PyTuple_SET_ITEM(args, 1, value);
- Py_INCREF(source);
- Py_INCREF(value);
- Shiboken::AutoDecRef result(PyObject_CallObject(fset, args));
- return (result.isNull() ? -1 : 0);
- }
- PyObject *fdel = self->d->fdel;
- if (fdel) {
- Shiboken::AutoDecRef args(PyTuple_New(1));
- PyTuple_SET_ITEM(args, 0, source);
- Py_INCREF(source);
- Shiboken::AutoDecRef result(PyObject_CallObject(fdel, args));
- return (result.isNull() ? -1 : 0);
- }
- PyErr_SetString(PyExc_AttributeError, "Attibute read only");
- return -1;
+ return self->d->getValue(source);
}
-PyObject *getValue(PySideProperty *self, PyObject *source)
+int setValue(PySideProperty *self, PyObject *source, PyObject *value)
{
- PyObject *fget = self->d->fget;
- if (fget) {
- Shiboken::AutoDecRef args(PyTuple_New(1));
- Py_INCREF(source);
- PyTuple_SET_ITEM(args, 0, source);
- return PyObject_CallObject(fget, args);
- }
- return nullptr;
+ return self->d->setValue(source, value);
}
int reset(PySideProperty *self, PyObject *source)
{
- PyObject *freset = self->d->freset;
- if (freset) {
- Shiboken::AutoDecRef args(PyTuple_New(1));
- Py_INCREF(source);
- PyTuple_SET_ITEM(args, 0, source);
- Shiboken::AutoDecRef result(PyObject_CallObject(freset, args));
- return (result.isNull() ? -1 : 0);
- }
- return -1;
+ return self->d->reset(source);
}
const char *getTypeName(const PySideProperty *self)
@@ -594,34 +578,22 @@ bool isFinal(const PySideProperty *self)
const char *getNotifyName(PySideProperty *self)
{
if (self->d->notifySignature.isEmpty()) {
- PyObject *str = PyObject_Str(self->d->notify);
+ AutoDecRef str(PyObject_Str(self->d->notify));
self->d->notifySignature = Shiboken::String::toCString(str);
- Py_DECREF(str);
}
return self->d->notifySignature.isEmpty()
? nullptr : self->d->notifySignature.constData();
}
-void setMetaCallHandler(PySideProperty *self, MetaCallHandler handler)
-{
- self->d->metaCallHandler = handler;
-}
-
void setTypeName(PySideProperty *self, const char *typeName)
{
self->d->typeName = typeName;
}
-void setUserData(PySideProperty *self, void *data)
-{
- self->d->userData = data;
-}
-
-void *userData(PySideProperty *self)
+PyObject *getTypeObject(const PySideProperty *self)
{
- return self->d->userData;
+ return self->d->pyTypeObject;
}
-} //namespace Property
-} //namespace PySide
+} //namespace PySide::Property
diff --git a/sources/pyside6/libpyside/pysideproperty.h b/sources/pyside6/libpyside/pysideproperty.h
index 4a467b186..a572efe45 100644
--- a/sources/pyside6/libpyside/pysideproperty.h
+++ b/sources/pyside6/libpyside/pysideproperty.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef PYSIDE_PROPERTY_H
#define PYSIDE_PROPERTY_H
@@ -46,11 +10,12 @@
#include <QtCore/QMetaObject>
+class PySidePropertyPrivate;
+
extern "C"
{
- extern PYSIDE_API PyTypeObject *PySidePropertyTypeF(void);
+ extern PYSIDE_API PyTypeObject *PySideProperty_TypeF(void);
- struct PySidePropertyPrivate;
struct PYSIDE_API PySideProperty
{
PyObject_HEAD
@@ -58,9 +23,7 @@ extern "C"
};
};
-namespace PySide { namespace Property {
-
-typedef void (*MetaCallHandler)(PySideProperty*,PyObject*,QMetaObject::Call, void**);
+namespace PySide::Property {
PYSIDE_API bool checkType(PyObject *pyObj);
@@ -103,14 +66,8 @@ PYSIDE_API const char *getNotifyName(PySideProperty *self);
**/
PYSIDE_API PySideProperty *getObject(PyObject *source, PyObject *name);
-PYSIDE_API void setMetaCallHandler(PySideProperty *self, MetaCallHandler handler);
-
PYSIDE_API void setTypeName(PySideProperty *self, const char *typeName);
-PYSIDE_API void setUserData(PySideProperty *self, void *data);
-PYSIDE_API void* userData(PySideProperty *self);
-
-} //namespace Property
-} //namespace PySide
+} //namespace PySide::Property
#endif
diff --git a/sources/pyside6/libpyside/pysideproperty_p.h b/sources/pyside6/libpyside/pysideproperty_p.h
index e7b6e4d77..10cb3ce87 100644
--- a/sources/pyside6/libpyside/pysideproperty_p.h
+++ b/sources/pyside6/libpyside/pysideproperty_p.h
@@ -1,56 +1,39 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef PYSIDE_QPROPERTY_P_H
#define PYSIDE_QPROPERTY_P_H
#include <sbkpython.h>
-#include <QtCore/QByteArray>
-#include <QMetaObject>
+
#include "pysideproperty.h"
+#include <pysidemacros.h>
+
+#include <QtCore/QByteArray>
+#include <QtCore/qtclasshelpermacros.h>
+#include <QtCore/QMetaObject>
struct PySideProperty;
-struct PySidePropertyPrivate
+class PYSIDE_API PySidePropertyPrivate
{
+public:
+
+ Q_DISABLE_COPY_MOVE(PySidePropertyPrivate)
+
+ PySidePropertyPrivate() noexcept;
+ virtual ~PySidePropertyPrivate();
+
+ virtual void metaCall(PyObject *source, QMetaObject::Call call, void **args);
+
+ PyObject *getValue(PyObject *source);
+ int setValue(PyObject *source, PyObject *value);
+ int reset(PyObject *source);
+
QByteArray typeName;
- PySide::Property::MetaCallHandler metaCallHandler = nullptr;
+ // Type object: A real PyTypeObject ("@Property(int)") or a string
+ // "@Property('QVariant')".
+ PyObject *pyTypeObject = nullptr;
PyObject *fget = nullptr;
PyObject *fset = nullptr;
PyObject *freset = nullptr;
@@ -65,10 +48,9 @@ struct PySidePropertyPrivate
bool user = false;
bool constant = false;
bool final = false;
- void *userData = nullptr;
};
-namespace PySide { namespace Property {
+namespace PySide::Property {
/**
* Init PySide QProperty support system
@@ -176,7 +158,12 @@ bool isConstant(const PySideProperty* self);
**/
bool isFinal(const PySideProperty* self);
-} // namespace Property
-} // namespace PySide
+/// This function returns the type object of the property. It is either a real
+/// PyTypeObject ("@Property(int)") or a string "@Property('QVariant')".
+/// @param self The property object
+/// @return type object
+PyObject *getTypeObject(const PySideProperty* self);
+
+} // namespace PySide::Property
#endif
diff --git a/sources/pyside6/libpyside/pysideqapp.h b/sources/pyside6/libpyside/pysideqapp.h
new file mode 100644
index 000000000..5543d83d8
--- /dev/null
+++ b/sources/pyside6/libpyside/pysideqapp.h
@@ -0,0 +1,19 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef PYSIDEQAPP_H
+#define PYSIDEQAPP_H
+
+#include <pysidemacros.h>
+
+namespace PySide
+{
+
+PYSIDE_API void initQApp();
+
+/// Destroy a QCoreApplication taking care of destroy all instances of QObject first.
+PYSIDE_API void destroyQCoreApplication();
+
+} //namespace PySide
+
+#endif // PYSIDEQPP_H
diff --git a/sources/pyside6/libpyside/pysideqenum.cpp b/sources/pyside6/libpyside/pysideqenum.cpp
index 8abf19313..c0479160f 100644
--- a/sources/pyside6/libpyside/pysideqenum.cpp
+++ b/sources/pyside6/libpyside/pysideqenum.cpp
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include <shiboken.h>
@@ -53,7 +17,7 @@ extern "C" {
using namespace Shiboken;
-static PyObject *analyzePyEnum(PyObject *pyenum, PyObject *container = nullptr)
+static PyObject *analyzePyEnum(PyObject *pyenum)
{
/*
* This is the straight-forward implementation of QEnum/QFlag. It does no
@@ -133,7 +97,7 @@ static bool is_module_code()
} // extern "C"
-namespace PySide { namespace QEnum {
+namespace PySide::QEnum {
static std::map<int, PyObject *> enumCollector;
@@ -147,38 +111,14 @@ int isFlag(PyObject *obType)
* The function is called in MetaObjectBuilderPrivate::parsePythonType
* again to obtain the flag value.
*/
- if (!PyType_Check(obType)) {
- PyErr_Format(PyExc_TypeError, "a class argument was expected, not a '%.200s' instance",
- Py_TYPE(obType)->tp_name);
- return -1;
- };
- auto *type = reinterpret_cast<PyTypeObject *>(obType);
- PyObject *mro = type->tp_mro;
- Py_ssize_t i, n = PyTuple_GET_SIZE(mro);
- bool right_module = false;
- bool have_enum = false;
- bool have_flag = false;
- bool have_members = PyObject_HasAttr(obType, PyMagicName::members());
- for (i = 0; i < n; i++) {
- obType = PyTuple_GET_ITEM(mro, i);
- type = reinterpret_cast<PyTypeObject *>(obType);
- AutoDecRef mod(PyObject_GetAttr(obType, PyMagicName::module()));
- QByteArray cmod = String::toCString(mod);
- QByteArray cname = type->tp_name;
- if (cmod == "enum") {
- right_module = true;
- if (cname == "Enum")
- have_enum = true;
- else if (cname == "Flag")
- have_flag = true;
- }
- }
- if (!right_module || !(have_enum || have_flag) || !have_members) {
+ int res = enumIsFlag(obType);
+ if (res < 0) {
+ auto *type = reinterpret_cast<PyTypeObject *>(obType);
PyErr_Format(PyExc_TypeError, "type %.200s does not inherit from 'Enum' or 'Flag'",
type->tp_name);
return -1;
}
- return bool(have_flag);
+ return bool(res);
}
PyObject *QEnumMacro(PyObject *pyenum, bool flag)
@@ -223,7 +163,7 @@ std::vector<PyObject *> resolveDelayedQEnums(PyTypeObject *containerType)
{
/*
* This is the internal interface of 'QEnum'.
- * It is called at the end of the meta class call 'SbkObjectTypeTpNew' via
+ * It is called at the end of the meta class call 'SbkObjectType_tp_new' via
* MetaObjectBuilderPrivate::parsePythonType and resolves the collected
* Python Enum arguments. The result is then registered.
*/
@@ -251,8 +191,7 @@ std::vector<PyObject *> resolveDelayedQEnums(PyTypeObject *containerType)
return result;
}
-} // namespace Enum
-} // namespace Shiboken
+} // namespace Shiboken::Enum
//
///////////////////////////////////////////////////////////////
diff --git a/sources/pyside6/libpyside/pysideqenum.h b/sources/pyside6/libpyside/pysideqenum.h
index fc4e55982..c3483e63e 100644
--- a/sources/pyside6/libpyside/pysideqenum.h
+++ b/sources/pyside6/libpyside/pysideqenum.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef PYSIDE_QENUM_H
#define PYSIDE_QENUM_H
@@ -43,7 +7,7 @@
#include <pysidemacros.h>
#include <vector>
-namespace PySide { namespace QEnum {
+namespace PySide::QEnum {
// PYSIDE-957: Support the QEnum macro
PYSIDE_API PyObject *QEnumMacro(PyObject *, bool);
@@ -51,7 +15,6 @@ PYSIDE_API int isFlag(PyObject *);
PYSIDE_API std::vector<PyObject *> resolveDelayedQEnums(PyTypeObject *);
PYSIDE_API void init();
-} // namespace QEnum
-} // namespace PySide
+} // namespace PySide::QEnum
#endif
diff --git a/sources/pyside6/libpyside/pysideqflags.cpp b/sources/pyside6/libpyside/pysideqflags.cpp
deleted file mode 100644
index 08b7e1479..000000000
--- a/sources/pyside6/libpyside/pysideqflags.cpp
+++ /dev/null
@@ -1,201 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "pysideqflags.h"
-
-#include <autodecref.h>
-#include <sbkenum.h>
-
-extern "C" {
- struct SbkConverter;
-
- struct PySideQFlagsTypePrivate
- {
- SbkConverter *converter;
- };
- /**
- * Type of all QFlags
- */
- struct PySideQFlagsType
- {
- PyTypeObject type;
- };
-
- #define PYSIDE_QFLAGS(X) reinterpret_cast<PySideQFlagsObject *>(X)
-
- PyObject *PySideQFlagsNew(PyTypeObject *type, PyObject *args, PyObject * /* kwds */)
- {
- long val = 0;
- if (PyTuple_GET_SIZE(args)) {
- PyObject *arg = PyTuple_GET_ITEM(args, 0);
- if (Shiboken::isShibokenEnum(arg)) {// faster call
- val = Shiboken::Enum::getValue(arg);
- } else if (PyNumber_Check(arg)) {
- Shiboken::AutoDecRef number(PyNumber_Long(arg));
- val = PyLong_AsLong(number);
- } else {
- PyErr_SetString(PyExc_TypeError,"QFlags must be created using enums or numbers.");
- return nullptr;
- }
- }
- PySideQFlagsObject *self = PyObject_New(PySideQFlagsObject, type);
- self->ob_value = val;
- return reinterpret_cast<PyObject *>(self);
- }
-
- static long getNumberValue(PyObject *v)
- {
- Shiboken::AutoDecRef number(PyNumber_Long(v));
- return PyLong_AsLong(number);
- }
-
- static PyObject *qflag_int(PyObject *self)
- {
- return PyLong_FromLong(reinterpret_cast<PySideQFlagsObject*>(self)->ob_value);
- }
-
- PyObject *PySideQFlagsRichCompare(PyObject *self, PyObject *other, int op)
- {
- int result = 0;
- if (!PyNumber_Check(other)) {
- PyErr_BadArgument();
- return nullptr;
- }
-
- long valA = PYSIDE_QFLAGS(self)->ob_value;
- long valB = getNumberValue(other);
-
- if (self == other) {
- result = 1;
- } else {
- switch (op) {
- case Py_EQ:
- result = (valA == valB);
- break;
- case Py_NE:
- result = (valA != valB);
- break;
- case Py_LE:
- result = (valA <= valB);
- break;
- case Py_GE:
- result = (valA >= valB);
- break;
- case Py_LT:
- result = (valA < valB);
- break;
- case Py_GT:
- result = (valA > valB);
- break;
- default:
- PyErr_BadArgument();
- return nullptr;
- }
- }
- if (result)
- Py_RETURN_TRUE;
- Py_RETURN_FALSE;
- }
-
- static void PySideQFlagsDealloc(PyObject *self)
- {
- auto *flagsType = reinterpret_cast<PySideQFlagsType *>(self);
- PepType_PFTP_delete(flagsType);
- Sbk_object_dealloc(self);
- }
-}
-
-namespace PySide
-{
-namespace QFlags
-{
- static PyType_Slot SbkNewQFlagsType_slots[] = {
- {Py_nb_bool, nullptr},
- {Py_nb_invert, nullptr},
- {Py_nb_and, nullptr},
- {Py_nb_xor, nullptr},
- {Py_nb_or, nullptr},
- {Py_nb_int, reinterpret_cast<void*>(qflag_int)},
- {Py_nb_index, reinterpret_cast<void*>(qflag_int)},
- {Py_tp_new, reinterpret_cast<void *>(PySideQFlagsNew)},
- {Py_tp_richcompare, reinterpret_cast<void *>(PySideQFlagsRichCompare)},
- {Py_tp_dealloc, reinterpret_cast<void *>(PySideQFlagsDealloc)},
- {0, nullptr}
- };
- static PyType_Spec SbkNewQFlagsType_spec = {
- "missing QFlags name", // to be inserted later
- sizeof(PySideQFlagsObject),
- 0,
- Py_TPFLAGS_DEFAULT,
- SbkNewQFlagsType_slots,
- };
-
- PyTypeObject *create(const char *name, PyType_Slot numberMethods[])
- {
- char qualname[200];
- // PYSIDE-747: Here we insert now the full class name.
- strcpy(qualname, name);
- // Careful: SbkType_FromSpec does not allocate the string.
- PyType_Spec newspec;
- newspec.name = strdup(qualname);
- newspec.basicsize = SbkNewQFlagsType_spec.basicsize;
- newspec.itemsize = SbkNewQFlagsType_spec.itemsize;
- newspec.flags = SbkNewQFlagsType_spec.flags;
- int idx = -1;
- while (numberMethods[++idx].slot) {
- assert(SbkNewQFlagsType_slots[idx].slot == numberMethods[idx].slot);
- SbkNewQFlagsType_slots[idx].pfunc = numberMethods[idx].pfunc;
- }
- newspec.slots = SbkNewQFlagsType_spec.slots;
- return SbkType_FromSpec(&newspec);
- }
-
- PySideQFlagsObject *newObject(long value, PyTypeObject *type)
- {
- PySideQFlagsObject *qflags = PyObject_New(PySideQFlagsObject, type);
- qflags->ob_value = value;
- return qflags;
- }
-
- long getValue(PySideQFlagsObject *self)
- {
- return self->ob_value;
- }
-}
-}
diff --git a/sources/pyside6/libpyside/pysideqflags.h b/sources/pyside6/libpyside/pysideqflags.h
deleted file mode 100644
index 71f30808d..000000000
--- a/sources/pyside6/libpyside/pysideqflags.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef PYSIDE_QFLAGS_H
-#define PYSIDE_QFLAGS_H
-
-#include <sbkpython.h>
-#include "pysidemacros.h"
-
-
-extern "C"
-{
- struct PYSIDE_API PySideQFlagsObject {
- PyObject_HEAD
- long ob_value;
- };
-
- PYSIDE_API PyObject* PySideQFlagsNew(PyTypeObject *type, PyObject *args, PyObject *kwds);
- PYSIDE_API PyObject* PySideQFlagsRichCompare(PyObject *self, PyObject *other, int op);
-}
-
-
-namespace PySide
-{
-namespace QFlags
-{
- /**
- * Creates a new QFlags type.
- */
- PYSIDE_API PyTypeObject *create(const char* name, PyType_Slot *numberMethods);
- /**
- * Creates a new QFlags instance of type \p type and value \p value.
- */
- PYSIDE_API PySideQFlagsObject* newObject(long value, PyTypeObject* type);
- /**
- * Returns the value held by a QFlag.
- */
- PYSIDE_API long getValue(PySideQFlagsObject* self);
-}
-}
-
-#endif
-
diff --git a/sources/pyside6/libpyside/pysideqhash.h b/sources/pyside6/libpyside/pysideqhash.h
new file mode 100644
index 000000000..ae2d295f6
--- /dev/null
+++ b/sources/pyside6/libpyside/pysideqhash.h
@@ -0,0 +1,24 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef PYSIDEQHASH_H
+#define PYSIDEQHASH_H
+
+#include <sbkpython.h>
+
+#include <QtCore/QHash>
+
+namespace PySide
+{
+
+/// Hash function used to enable hash on objects not supported by the native Qt
+/// library which have a toString() function.
+template<class T>
+[[deprecated]] inline Py_ssize_t hash(const T& value)
+{
+ return qHash(value.toString());
+}
+
+} //namespace PySide
+
+#endif // PYSIDEQHASH_H
diff --git a/sources/pyside6/libpyside/pysideqmetatype.h b/sources/pyside6/libpyside/pysideqmetatype.h
new file mode 100644
index 000000000..3782dc3bb
--- /dev/null
+++ b/sources/pyside6/libpyside/pysideqmetatype.h
@@ -0,0 +1,35 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef PYSIDEQMETATYPE_H
+#define PYSIDEQMETATYPE_H
+
+#include <QtCore/QMetaType>
+
+namespace PySide
+{
+
+/// If the type \p T was registered on Qt meta type system with Q_DECLARE_METATYPE macro,
+/// this class will initialize the meta type.
+///
+/// Initialize a meta type means register it on Qt meta type system, Qt itself only do this
+/// on the first call of qMetaTypeId, and this is exactly what we do to init it. If we don't
+/// do that, calls to QMetaType::type("QMatrix2x2") could return zero, causing QVariant to
+/// not recognize some C++ types, like QMatrix2x2.
+
+template<typename T, bool OK = QMetaTypeId<T>::Defined >
+struct initQtMetaType {
+ initQtMetaType()
+ {
+ qMetaTypeId<T>();
+ }
+};
+
+// Template specialization to do nothing when the type wasn't registered on Qt meta type system.
+template<typename T>
+struct initQtMetaType<T, false> {
+};
+
+} //namespace PySide
+
+#endif // PYSIDEQMETATYPE_H
diff --git a/sources/pyside6/libpyside/pysideqobject.h b/sources/pyside6/libpyside/pysideqobject.h
new file mode 100644
index 000000000..f81c50399
--- /dev/null
+++ b/sources/pyside6/libpyside/pysideqobject.h
@@ -0,0 +1,70 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef PYSIDEQOBJECT_H
+#define PYSIDEQOBJECT_H
+
+#include <sbkpython.h>
+
+#include <pysidemacros.h>
+
+#include <QtCore/qtclasshelpermacros.h>
+
+#include <cstddef>
+
+QT_FORWARD_DECLARE_CLASS(QObject)
+QT_FORWARD_DECLARE_STRUCT(QMetaObject)
+QT_FORWARD_DECLARE_CLASS(QMutex)
+
+namespace PySide
+{
+
+/// Fill QObject properties and do signal connections using the values found in \p kwds dictionary.
+/// \param qObj PyObject fot the QObject.
+/// \param metaObj QMetaObject of \p qObj.
+/// \param kwds key->value dictonary.
+/// \return True if everything goes well, false with a Python error set otherwise.
+PYSIDE_API bool fillQtProperties(PyObject *qObj, const QMetaObject *metaObj,
+ PyObject *kwds, bool allowErrors);
+
+PYSIDE_API void initDynamicMetaObject(PyTypeObject *type, const QMetaObject *base,
+ std::size_t cppObjSize);
+PYSIDE_API void initQObjectSubType(PyTypeObject *type, PyObject *args, PyObject *kwds);
+
+/// Return the size in bytes of a type that inherits QObject.
+PYSIDE_API std::size_t getSizeOfQObject(PyTypeObject *type);
+
+/// Check if a PyTypeObject or its bases contains a QObject
+/// \param pyType is the PyTypeObject to check
+/// \param raiseError controls if a TypeError is raised when an object does not
+/// inherit QObject
+PYSIDE_API bool isQObjectDerived(PyTypeObject *pyType, bool raiseError);
+
+/// Convenience to convert a PyObject to QObject
+PYSIDE_API QObject *convertToQObject(PyObject *object, bool raiseError);
+
+/// Check for properties and signals registered on MetaObject and return these.
+/// Also handle Python properties when true_property was selected.
+/// \param cppSelf Is the QObject which contains the metaobject
+/// \param self Python object of cppSelf
+/// \param name Name of the argument which the function will try retrieve from MetaData
+/// \return The Python object which contains the Data obtained in metaObject or the Python
+/// method pulled out of a Python property.
+PYSIDE_API PyObject *getHiddenDataFromQObject(QObject *cppSelf, PyObject *self, PyObject *name);
+
+/// Mutex for accessing QObject memory helpers from multiple threads
+PYSIDE_API QMutex &nextQObjectMemoryAddrMutex();
+PYSIDE_API void *nextQObjectMemoryAddr();
+/// Set the address where to allocate the next QObject (for QML)
+PYSIDE_API void setNextQObjectMemoryAddr(void *addr);
+
+PYSIDE_API PyObject *getWrapperForQObject(QObject *cppSelf, PyTypeObject *sbk_type);
+
+/// Return the best-matching type for a QObject (Helper for QObject.findType())
+/// \param cppSelf QObject instance
+/// \return type object
+PYSIDE_API PyTypeObject *getTypeForQObject(const QObject *cppSelf);
+
+} //namespace PySide
+
+#endif // PYSIDEQOBJECT_H
diff --git a/sources/pyside6/libpyside/pysideqslotobject_p.cpp b/sources/pyside6/libpyside/pysideqslotobject_p.cpp
new file mode 100644
index 000000000..914be898a
--- /dev/null
+++ b/sources/pyside6/libpyside/pysideqslotobject_p.cpp
@@ -0,0 +1,36 @@
+// Copyright (C) 2024 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#include "pysideqslotobject_p.h"
+
+#include <autodecref.h>
+#include <gilstate.h>
+
+namespace PySide
+{
+
+void PySideQSlotObject::impl(int which, QSlotObjectBase *this_, QObject *receiver,
+ void **args, bool *ret)
+{
+ auto self = static_cast<PySideQSlotObject *>(this_);
+ switch (which) {
+ case Destroy:
+ delete self;
+ break;
+ case Call:
+ {
+ Shiboken::GilState state;
+ Shiboken::AutoDecRef arglist(PyTuple_New(0));
+ Shiboken::AutoDecRef ret(PyObject_CallObject(self->callable, arglist));
+ break;
+ }
+ case Compare:
+ case NumOperations:
+ Q_UNUSED(receiver);
+ Q_UNUSED(args);
+ Q_UNUSED(ret);
+ break;
+ }
+}
+
+} // namespace PySide
diff --git a/sources/pyside6/libpyside/pysideqslotobject_p.h b/sources/pyside6/libpyside/pysideqslotobject_p.h
new file mode 100644
index 000000000..d7d258505
--- /dev/null
+++ b/sources/pyside6/libpyside/pysideqslotobject_p.h
@@ -0,0 +1,39 @@
+// Copyright (C) 2024 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef PYSIDEQSLOTOBJECT_P_H
+#define PYSIDEQSLOTOBJECT_P_H
+
+#include "pysidemacros.h"
+#include <sbkpython.h>
+
+#include <QtCore/QObject>
+#include <QtCore/qobjectdefs.h>
+
+namespace PySide
+{
+
+class PySideQSlotObject : public QtPrivate::QSlotObjectBase
+{
+ PyObject *callable;
+
+ static void impl(int which, QSlotObjectBase *this_, QObject *receiver, void **args, bool *ret);
+
+public:
+ PySideQSlotObject(PyObject *callable) : QtPrivate::QSlotObjectBase(&impl), callable(callable)
+ {
+ Py_INCREF(callable);
+ }
+
+ ~PySideQSlotObject()
+ {
+ auto gstate = PyGILState_Ensure();
+ Py_DECREF(callable);
+ PyGILState_Release(gstate);
+ }
+};
+
+
+} // namespace PySide
+
+#endif // PYSIDEQSLOTOBJECT_P_H
diff --git a/sources/pyside6/libpyside/pysidesignal.cpp b/sources/pyside6/libpyside/pysidesignal.cpp
index 842311fae..774837e5b 100644
--- a/sources/pyside6/libpyside/pysidesignal.cpp
+++ b/sources/pyside6/libpyside/pysidesignal.cpp
@@ -1,61 +1,75 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include <sbkpython.h>
#include "pysidesignal.h"
#include "pysidesignal_p.h"
+#include "pysideqobject.h"
+#include "pysideutils.h"
#include "pysidestaticstrings.h"
+#include "pysideweakref.h"
#include "signalmanager.h"
#include <shiboken.h>
+#include <QtCore/QByteArray>
+#include <QtCore/QDebug>
+#include <QtCore/QHash>
#include <QtCore/QObject>
#include <QtCore/QMetaMethod>
#include <QtCore/QMetaObject>
+#include <pep384ext.h>
#include <signature.h>
#include <algorithm>
+#include <optional>
#include <utility>
#include <cstring>
#define QT_SIGNAL_SENTINEL '2'
+using namespace Qt::StringLiterals;
+
+QDebug operator<<(QDebug debug, const PySideSignalData::Signature &s)
+{
+ QDebugStateSaver saver(debug);
+ debug.noquote();
+ debug.nospace();
+ debug << "Signature(\"" << s.signature << '"';
+ if (s.attributes)
+ debug << ", attributes=" << s.attributes;
+ debug << ')';
+ return debug;
+}
+
+QDebug operator<<(QDebug debug, const PySideSignalData &d)
+{
+ QDebugStateSaver saver(debug);
+ debug.noquote();
+ debug.nospace();
+ debug << "PySideSignalData(\"" << d.signalName << "\", "
+ << d.signatures;
+ if (!d.signalArguments.isEmpty())
+ debug << ", signalArguments=" << d.signalArguments;
+ debug << ')';
+ return debug;
+}
+
+QDebug operator<<(QDebug debug, const PySideSignalInstancePrivate &d)
+{
+ QDebugStateSaver saver(debug);
+ debug.noquote();
+ debug.nospace();
+ debug << "PySideSignalInstancePrivate(\"" << d.signalName
+ << "\", \"" << d.signature << '"';
+ if (d.attributes)
+ debug << ", attributes=" << d.attributes;
+ if (d.homonymousMethod)
+ debug << ", homonymousMethod=" << d.homonymousMethod;
+ debug << ')';
+ return debug;
+}
+
static bool connection_Check(PyObject *o)
{
if (o == nullptr || o == Py_None)
@@ -66,29 +80,35 @@ static bool connection_Check(PyObject *o)
return std::strcmp(o->ob_type->tp_name, typeName.constData()) == 0;
}
-namespace PySide {
-namespace Signal {
- //aux
- class SignalSignature {
- public:
- SignalSignature() = default;
- explicit SignalSignature(QByteArray parameterTypes) :
- m_parameterTypes(std::move(parameterTypes)) {}
- explicit SignalSignature(QByteArray parameterTypes, QMetaMethod::Attributes attributes) :
- m_parameterTypes(std::move(parameterTypes)),
- m_attributes(attributes) {}
-
- QByteArray m_parameterTypes;
- QMetaMethod::Attributes m_attributes = QMetaMethod::Compatibility;
- };
+static std::optional<QByteArrayList> parseArgumentNames(PyObject *argArguments)
+{
+ QByteArrayList result;
+ if (argArguments == nullptr)
+ return result;
+ // Prevent a string from being split into a sequence of characters
+ if (PySequence_Check(argArguments) == 0 || PyUnicode_Check(argArguments) != 0)
+ return std::nullopt;
+ const Py_ssize_t argumentSize = PySequence_Size(argArguments);
+ result.reserve(argumentSize);
+ for (Py_ssize_t i = 0; i < argumentSize; ++i) {
+ Shiboken::AutoDecRef item(PySequence_GetItem(argArguments, i));
+ if (PyUnicode_Check(item.object()) == 0)
+ return std::nullopt;
+ Shiboken::AutoDecRef strObj(PyUnicode_AsUTF8String(item));
+ const char *s = PyBytes_AsString(strObj);
+ if (s == nullptr)
+ return std::nullopt;
+ result.append(QByteArray(s));
+ }
+ return result;
+}
+namespace PySide::Signal {
static QByteArray buildSignature(const QByteArray &, const QByteArray &);
- static void appendSignature(PySideSignal *, const SignalSignature &);
static void instanceInitialize(PySideSignalInstance *, PyObject *, PySideSignal *, PyObject *, int);
- static QByteArray parseSignature(PyObject *);
+ static PySideSignalData::Signature parseSignature(PyObject *);
static PyObject *buildQtCompatible(const QByteArray &);
-}
-}
+} // PySide::Signal
extern "C"
{
@@ -98,6 +118,7 @@ static int signalTpInit(PyObject *, PyObject *, PyObject *);
static void signalFree(void *);
static void signalInstanceFree(void *);
static PyObject *signalGetItem(PyObject *self, PyObject *key);
+static PyObject *signalGetAttr(PyObject *self, PyObject *name);
static PyObject *signalToString(PyObject *self);
static PyObject *signalDescrGet(PyObject *self, PyObject *obj, PyObject *type);
@@ -113,62 +134,82 @@ static PyObject *signalCall(PyObject *, PyObject *, PyObject *);
static PyObject *metaSignalCheck(PyObject *, PyObject *);
-static PyMethodDef MetaSignal_methods[] = {
+static PyMethodDef MetaSignal_tp_methods[] = {
{"__instancecheck__", reinterpret_cast<PyCFunction>(metaSignalCheck),
METH_O|METH_STATIC, nullptr},
{nullptr, nullptr, 0, nullptr}
};
-static PyType_Slot PySideMetaSignalType_slots[] = {
- {Py_tp_methods, reinterpret_cast<void *>(MetaSignal_methods)},
- {Py_tp_base, reinterpret_cast<void *>(&PyType_Type)},
- {Py_tp_free, reinterpret_cast<void *>(PyObject_GC_Del)},
- {Py_tp_dealloc, reinterpret_cast<void *>(Sbk_object_dealloc)},
- {0, nullptr}
-};
-static PyType_Spec PySideMetaSignalType_spec = {
- "2:PySide6.QtCore.MetaSignal",
- 0,
- // sizeof(PyHeapTypeObject) is filled in by SbkType_FromSpec
- // which calls PyType_Ready which calls inherit_special.
- 0,
- Py_TPFLAGS_DEFAULT,
- PySideMetaSignalType_slots,
-};
+static PyTypeObject *createMetaSignalType()
+{
+ PyType_Slot PySideMetaSignalType_slots[] = {
+ {Py_tp_methods, reinterpret_cast<void *>(MetaSignal_tp_methods)},
+ {Py_tp_base, reinterpret_cast<void *>(&PyType_Type)},
+ {Py_tp_free, reinterpret_cast<void *>(PyObject_GC_Del)},
+ {Py_tp_dealloc, reinterpret_cast<void *>(Sbk_object_dealloc)},
+ {0, nullptr}
+ };
+
+ PyType_Spec PySideMetaSignalType_spec = {
+ "2:PySide6.QtCore.MetaSignal",
+ 0,
+ // sizeof(PyHeapTypeObject) is filled in by SbkType_FromSpec
+ // which calls PyType_Ready which calls inherit_special.
+ 0,
+ Py_TPFLAGS_DEFAULT,
+ PySideMetaSignalType_slots,
+ };
+ return SbkType_FromSpec(&PySideMetaSignalType_spec);
+}
-static PyTypeObject *PySideMetaSignalTypeF(void)
+static PyTypeObject *PySideMetaSignal_TypeF(void)
{
- static auto *type = SbkType_FromSpec(&PySideMetaSignalType_spec);
+ static auto *type = createMetaSignalType();
return type;
}
-static PyType_Slot PySideSignalType_slots[] = {
- {Py_mp_subscript, reinterpret_cast<void *>(signalGetItem)},
- {Py_tp_descr_get, reinterpret_cast<void *>(signalDescrGet)},
- {Py_tp_call, reinterpret_cast<void *>(signalCall)},
- {Py_tp_str, reinterpret_cast<void *>(signalToString)},
- {Py_tp_init, reinterpret_cast<void *>(signalTpInit)},
- {Py_tp_new, reinterpret_cast<void *>(PyType_GenericNew)},
- {Py_tp_free, reinterpret_cast<void *>(signalFree)},
- {Py_tp_dealloc, reinterpret_cast<void *>(Sbk_object_dealloc)},
- {0, nullptr}
-};
-static PyType_Spec PySideSignalType_spec = {
- "2:PySide6.QtCore.Signal",
- sizeof(PySideSignal),
- 0,
- Py_TPFLAGS_DEFAULT,
- PySideSignalType_slots,
-};
+static PyTypeObject *createSignalType()
+{
+ PyType_Slot PySideSignalType_slots[] = {
+ {Py_mp_subscript, reinterpret_cast<void *>(signalGetItem)},
+ {Py_tp_getattro, reinterpret_cast<void *>(signalGetAttr)},
+ {Py_tp_descr_get, reinterpret_cast<void *>(signalDescrGet)},
+ {Py_tp_call, reinterpret_cast<void *>(signalCall)},
+ {Py_tp_str, reinterpret_cast<void *>(signalToString)},
+ {Py_tp_init, reinterpret_cast<void *>(signalTpInit)},
+ {Py_tp_new, reinterpret_cast<void *>(PyType_GenericNew)},
+ {Py_tp_free, reinterpret_cast<void *>(signalFree)},
+ {Py_tp_dealloc, reinterpret_cast<void *>(Sbk_object_dealloc)},
+ {0, nullptr}
+ };
+ PyType_Spec PySideSignalType_spec = {
+ "2:PySide6.QtCore.Signal",
+ sizeof(PySideSignal),
+ 0,
+ Py_TPFLAGS_DEFAULT,
+ PySideSignalType_slots,
+ };
+
+ return SbkType_FromSpecWithMeta(&PySideSignalType_spec, PySideMetaSignal_TypeF());
+}
-PyTypeObject *PySideSignalTypeF(void)
+PyTypeObject *PySideSignal_TypeF(void)
{
- static auto *type = SbkType_FromSpecWithMeta(&PySideSignalType_spec, PySideMetaSignalTypeF());
+ static auto *type = createSignalType();
return type;
}
+static PyObject *signalInstanceRepr(PyObject *obSelf)
+{
+ auto *self = reinterpret_cast<PySideSignalInstance *>(obSelf);
+ auto *typeName = Py_TYPE(obSelf)->tp_name;
+ return Shiboken::String::fromFormat("<%s %s at %p>", typeName,
+ self->d ? self->d->signature.constData()
+ : "(no signature)", obSelf);
+}
+
static PyMethodDef SignalInstance_methods[] = {
{"connect", reinterpret_cast<PyCFunction>(signalInstanceConnect),
METH_VARARGS|METH_KEYWORDS, nullptr},
@@ -177,210 +218,259 @@ static PyMethodDef SignalInstance_methods[] = {
{nullptr, nullptr, 0, nullptr} /* Sentinel */
};
-static PyType_Slot PySideSignalInstanceType_slots[] = {
- {Py_mp_subscript, reinterpret_cast<void *>(signalInstanceGetItem)},
- {Py_tp_call, reinterpret_cast<void *>(signalInstanceCall)},
- {Py_tp_methods, reinterpret_cast<void *>(SignalInstance_methods)},
- {Py_tp_new, reinterpret_cast<void *>(PyType_GenericNew)},
- {Py_tp_free, reinterpret_cast<void *>(signalInstanceFree)},
- {Py_tp_dealloc, reinterpret_cast<void *>(Sbk_object_dealloc)},
- {0, nullptr}
-};
-static PyType_Spec PySideSignalInstanceType_spec = {
- "2:PySide6.QtCore.SignalInstance",
- sizeof(PySideSignalInstance),
- 0,
- Py_TPFLAGS_DEFAULT,
- PySideSignalInstanceType_slots,
-};
+static PyTypeObject *createSignalInstanceType()
+{
+ PyType_Slot PySideSignalInstanceType_slots[] = {
+ {Py_mp_subscript, reinterpret_cast<void *>(signalInstanceGetItem)},
+ {Py_tp_call, reinterpret_cast<void *>(signalInstanceCall)},
+ {Py_tp_methods, reinterpret_cast<void *>(SignalInstance_methods)},
+ {Py_tp_repr, reinterpret_cast<void *>(signalInstanceRepr)},
+ {Py_tp_new, reinterpret_cast<void *>(PyType_GenericNew)},
+ {Py_tp_free, reinterpret_cast<void *>(signalInstanceFree)},
+ {Py_tp_dealloc, reinterpret_cast<void *>(Sbk_object_dealloc)},
+ {0, nullptr}
+ };
+ PyType_Spec PySideSignalInstanceType_spec = {
+ "2:PySide6.QtCore.SignalInstance",
+ sizeof(PySideSignalInstance),
+ 0,
+ Py_TPFLAGS_DEFAULT,
+ PySideSignalInstanceType_slots,
+ };
-PyTypeObject *PySideSignalInstanceTypeF(void)
+ return SbkType_FromSpec(&PySideSignalInstanceType_spec);
+}
+
+PyTypeObject *PySideSignalInstance_TypeF(void)
{
- static auto *type = SbkType_FromSpec(&PySideSignalInstanceType_spec);
+ static auto *type = createSignalInstanceType();
return type;
}
-static int signalTpInit(PyObject *self, PyObject *args, PyObject *kwds)
+static int signalTpInit(PyObject *obSelf, PyObject *args, PyObject *kwds)
{
- static PyObject *emptyTuple = nullptr;
+ static PyObject * const emptyTuple = PyTuple_New(0);
static const char *kwlist[] = {"name", "arguments", nullptr};
char *argName = nullptr;
PyObject *argArguments = nullptr;
- if (emptyTuple == nullptr)
- emptyTuple = PyTuple_New(0);
-
if (!PyArg_ParseTupleAndKeywords(emptyTuple, kwds,
- "|sO:QtCore.Signal", const_cast<char **>(kwlist), &argName, &argArguments))
+ "|sO:QtCore.Signal{name, arguments}",
+ const_cast<char **>(kwlist), &argName, &argArguments))
return -1;
bool tupledArgs = false;
- PySideSignal *data = reinterpret_cast<PySideSignal *>(self);
- if (!data->data)
- data->data = new PySideSignalData;
+ PySideSignal *self = reinterpret_cast<PySideSignal *>(obSelf);
+ if (!self->data)
+ self->data = new PySideSignalData;
if (argName)
- data->data->signalName = argName;
-
- data->data->signalArguments = new QByteArrayList();
- if (argArguments && PySequence_Check(argArguments)) {
- Py_ssize_t argument_size = PySequence_Size(argArguments);
- for (Py_ssize_t i = 0; i < argument_size; ++i) {
- PyObject *item = PySequence_GetItem(argArguments, i);
- PyObject *strObj = PyUnicode_AsUTF8String(item);
- char *s = PyBytes_AsString(strObj);
- Py_DECREF(strObj);
- Py_DECREF(item);
- if (s != nullptr)
- data->data->signalArguments->append(QByteArray(s));
- }
+ self->data->signalName = argName;
+
+ auto argumentNamesOpt = parseArgumentNames(argArguments);
+ if (!argumentNamesOpt.has_value()) {
+ PyErr_SetString(PyExc_TypeError, "'arguments' must be a sequence of strings.");
+ return -1;
}
+ self->data->signalArguments = argumentNamesOpt.value();
for (Py_ssize_t i = 0, i_max = PyTuple_Size(args); i < i_max; i++) {
PyObject *arg = PyTuple_GET_ITEM(args, i);
if (PySequence_Check(arg) && !Shiboken::String::check(arg) && !PyEnumMeta_Check(arg)) {
tupledArgs = true;
- const auto sig = PySide::Signal::parseSignature(arg);
- PySide::Signal::appendSignature(
- data,
- PySide::Signal::SignalSignature(sig));
+ self->data->signatures.append(PySide::Signal::parseSignature(arg));
}
}
- if (!tupledArgs) {
- const auto sig = PySide::Signal::parseSignature(args);
- PySide::Signal::appendSignature(
- data,
- PySide::Signal::SignalSignature(sig));
- }
+ if (!tupledArgs)
+ self->data->signatures.append(PySide::Signal::parseSignature(args));
return 0;
}
-static void signalFree(void *self)
+static void signalFree(void *vself)
{
- auto pySelf = reinterpret_cast<PyObject *>(self);
- auto data = reinterpret_cast<PySideSignal *>(self);
- delete data->data;
- data->data = nullptr;
- Py_XDECREF(data->homonymousMethod);
- data->homonymousMethod = nullptr;
-
- Py_TYPE(pySelf)->tp_base->tp_free(self);
+ auto pySelf = reinterpret_cast<PyObject *>(vself);
+ auto self = reinterpret_cast<PySideSignal *>(vself);
+ if (self->data) {
+ delete self->data;
+ self->data = nullptr;
+ }
+ Py_XDECREF(self->homonymousMethod);
+ self->homonymousMethod = nullptr;
+
+ PepExt_TypeCallFree(Py_TYPE(pySelf)->tp_base, self);
}
-static PyObject *signalGetItem(PyObject *self, PyObject *key)
+static PyObject *signalGetItem(PyObject *obSelf, PyObject *key)
{
- auto data = reinterpret_cast<PySideSignal *>(self);
+ auto self = reinterpret_cast<PySideSignal *>(obSelf);
QByteArray sigKey;
if (key) {
- sigKey = PySide::Signal::parseSignature(key);
+ sigKey = PySide::Signal::parseSignature(key).signature;
} else {
- sigKey = data->data == nullptr || data->data->signatures.isEmpty()
- ? PySide::Signal::voidType() : data->data->signatures.constFirst().signature;
+ sigKey = self->data == nullptr || self->data->signatures.isEmpty()
+ ? PySide::Signal::voidType() : self->data->signatures.constFirst().signature;
}
- auto sig = PySide::Signal::buildSignature(data->data->signalName, sigKey);
+ auto sig = PySide::Signal::buildSignature(self->data->signalName, sigKey);
return Shiboken::String::fromCString(sig.constData());
}
-
-static PyObject *signalToString(PyObject *self)
+static PyObject *signalToString(PyObject *obSelf)
{
- return signalGetItem(self, nullptr);
+ auto self = reinterpret_cast<PySideSignal *>(obSelf);
+ QByteArray result;
+ if (self->data == nullptr || self->data->signatures.isEmpty()) {
+ result = "<invalid>"_ba;
+ } else {
+ for (const auto &signature : std::as_const(self->data->signatures)) {
+ if (!result.isEmpty())
+ result += "; "_ba;
+ result += PySide::Signal::buildSignature(self->data->signalName,
+ signature.signature);
+ }
+ }
+ return Shiboken::String::fromCString(result.constData());
}
-static void signalInstanceFree(void *self)
+static PyObject *signalGetAttr(PyObject *obSelf, PyObject *name)
{
- auto pySelf = reinterpret_cast<PyObject *>(self);
- auto data = reinterpret_cast<PySideSignalInstance *>(self);
+ auto self = reinterpret_cast<PySideSignal *>(obSelf);
- PySideSignalInstancePrivate *dataPvt = data->d;
+ if (PyUnicode_CompareWithASCIIString(name, "signatures") != 0)
+ return PyObject_GenericGetAttr(obSelf, name);
- Py_XDECREF(dataPvt->homonymousMethod);
+ auto nelems = self->data->signatures.count();
+ PyObject *tuple = PyTuple_New(nelems);
- if (dataPvt->next) {
- Py_DECREF(dataPvt->next);
- dataPvt->next = nullptr;
+ for (Py_ssize_t idx = 0; idx < nelems; ++idx) {
+ QByteArray sigKey = self->data->signatures.at(idx).signature;
+ auto sig = PySide::Signal::buildSignature(self->data->signalName, sigKey);
+ PyObject *entry = Shiboken::String::fromCString(sig.constData());
+ PyTuple_SetItem(tuple, idx, entry);
}
- delete dataPvt;
- data->d = nullptr;
- Py_TYPE(pySelf)->tp_base->tp_free(self);
+ return tuple;
+}
+
+static void signalInstanceFree(void *vself)
+{
+ auto pySelf = reinterpret_cast<PyObject *>(vself);
+ auto self = reinterpret_cast<PySideSignalInstance *>(vself);
+
+ PySideSignalInstancePrivate *dataPvt = self->d;
+ if (dataPvt) {
+ Py_XDECREF(dataPvt->homonymousMethod);
+
+ if (dataPvt->next) {
+ Py_DECREF(dataPvt->next);
+ dataPvt->next = nullptr;
+ }
+ delete dataPvt;
+ self->d = nullptr;
+ }
+ self->deleted = true;
+ PepExt_TypeCallFree(Py_TYPE(pySelf)->tp_base, self);
}
// PYSIDE-1523: PyFunction_Check is not accepting compiled functions and
// PyMethod_Check is not allowing compiled methods, therefore also lookup
// "im_func" and "__code__" attributes, we allow for that with a dedicated
// function handling both.
-static void extractFunctionArgumentsFromSlot(PyObject *slot,
- PyObject *& function,
- PepCodeObject *& objCode,
- bool &isMethod,
- QByteArray *functionName)
+
+struct FunctionArgumentsResult
{
- isMethod = PyMethod_Check(slot);
- bool isFunction = PyFunction_Check(slot);
+ PyObject *function = nullptr;
+ PepCodeObject *objCode = nullptr;
+ PyObject *functionName = nullptr;
+ bool isMethod = false;
+};
- function = nullptr;
- objCode = nullptr;
+static FunctionArgumentsResult extractFunctionArgumentsFromSlot(PyObject *slot)
+{
+ FunctionArgumentsResult ret;
+ ret.isMethod = PyMethod_Check(slot);
+ const bool isFunction = PyFunction_Check(slot);
- if (isMethod || isFunction) {
- function = isMethod ? PyMethod_GET_FUNCTION(slot) : slot;
- objCode = reinterpret_cast<PepCodeObject *>(PyFunction_GET_CODE(function));
+ if (ret.isMethod || isFunction) {
+ ret.function = ret.isMethod ? PyMethod_GET_FUNCTION(slot) : slot;
+ ret.objCode = reinterpret_cast<PepCodeObject *>(PyFunction_GET_CODE(ret.function));
+ ret.functionName = PepFunction_GetName(ret.function);
- if (functionName != nullptr) {
- *functionName = Shiboken::String::toCString(PepFunction_GetName(function));
- }
- } else if (PyObject_HasAttr(slot, PySide::PyName::im_func())) {
+ } else if (PySide::isCompiledMethod(slot)) {
// PYSIDE-1523: PyFunction_Check and PyMethod_Check are not accepting compiled forms, we
// just go by attributes.
- isMethod = true;
-
- function = PyObject_GetAttr(slot, PySide::PyName::im_func());
+ ret.isMethod = true;
+ ret.function = PyObject_GetAttr(slot, PySide::PySideName::im_func());
// Not retaining a reference inline with what PyMethod_GET_FUNCTION does.
- Py_DECREF(function);
+ Py_DECREF(ret.function);
- if (functionName != nullptr) {
- PyObject *name = PyObject_GetAttr(function, PySide::PyMagicName::name());
- *functionName = Shiboken::String::toCString(name);
- // Not retaining a reference inline with what PepFunction_GetName does.
- Py_DECREF(name);
- }
+ ret.functionName = PyObject_GetAttr(ret.function, PySide::PySideMagicName::name());
+ // Not retaining a reference inline with what PepFunction_GetName does.
+ Py_DECREF(ret.functionName);
- objCode = reinterpret_cast<PepCodeObject *>(
- PyObject_GetAttr(function, PySide::PyMagicName::code()));
+ ret.objCode = reinterpret_cast<PepCodeObject *>(
+ PyObject_GetAttr(ret.function, PySide::PySideMagicName::code()));
// Not retaining a reference inline with what PyFunction_GET_CODE does.
- Py_XDECREF(objCode);
+ Py_XDECREF(ret.objCode);
- if (objCode == nullptr) {
- // Should not happen, but lets handle it gracefully, maybe Nuitka one day
- // makes these optional, or somebody defined a type named like it without
- // it being actually being that.
- function = nullptr;
- }
+ // Should not happen, but lets handle it gracefully, maybe Nuitka one day
+ // makes these optional, or somebody defined a type named like it without
+ // it being actually being that.
+ if (ret.objCode == nullptr)
+ ret.function = nullptr;
} else if (strcmp(Py_TYPE(slot)->tp_name, "compiled_function") == 0) {
- isMethod = false;
- function = slot;
-
- if (functionName != nullptr) {
- PyObject *name = PyObject_GetAttr(function, PySide::PyMagicName::name());
- *functionName = Shiboken::String::toCString(name);
- // Not retaining a reference inline with what PepFunction_GetName does.
- Py_DECREF(name);
- }
+ ret.isMethod = false;
+ ret.function = slot;
+
+ ret.functionName = PyObject_GetAttr(ret.function, PySide::PySideMagicName::name());
+ // Not retaining a reference inline with what PepFunction_GetName does.
+ Py_DECREF(ret.functionName);
- objCode = reinterpret_cast<PepCodeObject *>(
- PyObject_GetAttr(function, PySide::PyMagicName::code()));
+ ret.objCode = reinterpret_cast<PepCodeObject *>(
+ PyObject_GetAttr(ret.function, PySide::PySideMagicName::code()));
// Not retaining a reference inline with what PyFunction_GET_CODE does.
- Py_XDECREF(objCode);
+ Py_XDECREF(ret.objCode);
+
+ // Should not happen, but lets handle it gracefully, maybe Nuitka one day
+ // makes these optional, or somebody defined a type named like it without
+ // it being actually being that.
+ if (ret.objCode == nullptr)
+ ret.function = nullptr;
+ }
+ // any other callback
+ return ret;
+}
- if (objCode == nullptr) {
- // Should not happen, but lets handle it gracefully, maybe Nuitka one day
- // makes these optional, or somebody defined a type named like it without
- // it being actually being that.
- function = nullptr;
+struct ArgCount
+{
+ int min;
+ int max;
+};
+
+// Return a pair of minimum / arg count "foo(p1, p2=0)" -> {1, 2}
+ArgCount argCount(const FunctionArgumentsResult &args)
+{
+ Q_ASSERT(args.objCode);
+ ArgCount result{-1, -1};
+ if ((PepCode_GET_FLAGS(args.objCode) & CO_VARARGS) == 0) {
+ result.min = result.max = PepCode_GET_ARGCOUNT(args.objCode);
+ if (args.function != nullptr) {
+ if (auto *defaultArgs = PepFunction_GetDefaults(args.function))
+ result.min -= PyTuple_Size(defaultArgs);
}
}
+ return result;
+}
+
+// Find Signal Instance for argument count.
+static PySideSignalInstance *findSignalInstance(PySideSignalInstance *source, int argCount)
+{
+ for (auto *si = source; si != nullptr; si = si->d->next) {
+ if (si->d->argCount == argCount)
+ return si;
+ }
+ return nullptr;
}
static PyObject *signalInstanceConnect(PyObject *self, PyObject *args, PyObject *kwds)
@@ -394,10 +484,19 @@ static PyObject *signalInstanceConnect(PyObject *self, PyObject *args, PyObject
return nullptr;
PySideSignalInstance *source = reinterpret_cast<PySideSignalInstance *>(self);
+ if (!source->d) {
+ PyErr_Format(PyExc_RuntimeError, "cannot connect uninitialized SignalInstance");
+ return nullptr;
+ }
+ if (source->deleted) {
+ PyErr_Format(PyExc_RuntimeError, "Signal source has been deleted");
+ return nullptr;
+ }
+
Shiboken::AutoDecRef pyArgs(PyList_New(0));
bool match = false;
- if (Py_TYPE(slot) == PySideSignalInstanceTypeF()) {
+ if (Py_TYPE(slot) == PySideSignalInstance_TypeF()) {
PySideSignalInstance *sourceWalk = source;
//find best match
@@ -422,54 +521,32 @@ static PyObject *signalInstanceConnect(PyObject *self, PyObject *args, PyObject
}
} else {
// Check signature of the slot (method or function) to match signal
- int slotArgs = -1;
- bool matchedSlot = false;
-
- PySideSignalInstance *it = source;
-
- PyObject *function = nullptr;
- PepCodeObject *objCode = nullptr;
- bool useSelf = false;
-
- extractFunctionArgumentsFromSlot(slot, function, objCode, useSelf, nullptr);
-
- if (function != nullptr) {
- slotArgs = PepCode_GET_FLAGS(objCode) & CO_VARARGS ? -1 : PepCode_GET_ARGCOUNT(objCode);
- if (useSelf)
- slotArgs -= 1;
+ const auto args = extractFunctionArgumentsFromSlot(slot);
+ PySideSignalInstance *matchedSlot = nullptr;
+
+ if (args.function != nullptr) {
+ auto slotArgRange = argCount(args);
+ if (args.isMethod) {
+ slotArgRange.min -= 1;
+ slotArgRange.max -= 1;
+ }
// Get signature args
- bool isShortCircuit = false;
- int signatureArgs = 0;
- QStringList argsSignature;
-
- argsSignature = PySide::Signal::getArgsFromSignature(it->d->signature,
- &isShortCircuit);
- signatureArgs = argsSignature.length();
-
// Iterate the possible types of connection for this signal and compare
// it with slot arguments
- if (signatureArgs != slotArgs) {
- while (it->d->next != nullptr) {
- it = it->d->next;
- argsSignature = PySide::Signal::getArgsFromSignature(it->d->signature,
- &isShortCircuit);
- signatureArgs = argsSignature.length();
- if (signatureArgs == slotArgs) {
- matchedSlot = true;
- break;
- }
- }
+ for (int slotArgs = slotArgRange.max;
+ slotArgs >= slotArgRange.min && matchedSlot == nullptr; --slotArgs) {
+ matchedSlot = findSignalInstance(source, slotArgs);
}
}
// Adding references to pyArgs
PyList_Append(pyArgs, source->d->source);
- if (matchedSlot) {
+ if (matchedSlot != nullptr) {
// If a slot matching the same number of arguments was found,
// include signature to the pyArgs
- Shiboken::AutoDecRef signature(PySide::Signal::buildQtCompatible(it->d->signature));
+ Shiboken::AutoDecRef signature(PySide::Signal::buildQtCompatible(matchedSlot->d->signature));
PyList_Append(pyArgs, signature);
} else {
// Try the first by default if the slot was not found
@@ -486,7 +563,7 @@ static PyObject *signalInstanceConnect(PyObject *self, PyObject *args, PyObject
if (match) {
Shiboken::AutoDecRef tupleArgs(PyList_AsTuple(pyArgs));
Shiboken::AutoDecRef pyMethod(PyObject_GetAttr(source->d->source,
- PySide::PyName::qtConnect()));
+ PySide::PySideName::qtConnect()));
if (pyMethod.isNull()) { // PYSIDE-79: check if pyMethod exists.
PyErr_SetString(PyExc_RuntimeError, "method 'connect' vanished!");
return nullptr;
@@ -510,6 +587,17 @@ static int argCountInSignature(const char *signature)
static PyObject *signalInstanceEmit(PyObject *self, PyObject *args)
{
PySideSignalInstance *source = reinterpret_cast<PySideSignalInstance *>(self);
+ if (!source->d) {
+ PyErr_Format(PyExc_RuntimeError, "cannot emit uninitialized SignalInstance");
+ return nullptr;
+ }
+
+ // PYSIDE-2201: Check if the object has vanished meanwhile.
+ // Tried to revive it without exception, but this gives problems.
+ if (source->deleted) {
+ PyErr_Format(PyExc_RuntimeError, "The SignalInstance object was already deleted");
+ return nullptr;
+ }
Shiboken::AutoDecRef pyArgs(PyList_New(0));
int numArgsGiven = PySequence_Fast_GET_SIZE(args);
@@ -540,35 +628,57 @@ static PyObject *signalInstanceEmit(PyObject *self, PyObject *args)
PyList_Append(pyArgs, PyTuple_GetItem(args, i));
Shiboken::AutoDecRef pyMethod(PyObject_GetAttr(source->d->source,
- PySide::PyName::qtEmit()));
+ PySide::PySideName::qtEmit()));
Shiboken::AutoDecRef tupleArgs(PyList_AsTuple(pyArgs));
- return PyObject_CallObject(pyMethod, tupleArgs);
+ return PyObject_CallObject(pyMethod.object(), tupleArgs);
}
static PyObject *signalInstanceGetItem(PyObject *self, PyObject *key)
{
- auto data = reinterpret_cast<PySideSignalInstance *>(self);
- const auto sigName = data->d->signalName;
- const auto sigKey = PySide::Signal::parseSignature(key);
+ auto *firstSignal = reinterpret_cast<PySideSignalInstance *>(self);
+ const auto &sigName = firstSignal->d->signalName;
+ const auto sigKey = PySide::Signal::parseSignature(key).signature;
const auto sig = PySide::Signal::buildSignature(sigName, sigKey);
- while (data) {
+ for (auto *data = firstSignal; data != nullptr; data = data->d->next) {
if (data->d->signature == sig) {
PyObject *result = reinterpret_cast<PyObject *>(data);
Py_INCREF(result);
return result;
}
- data = data->d->next;
}
- PyErr_Format(PyExc_IndexError, "Signature %s not found for signal: %s",
- sig.constData(), sigName.constData());
+ // Build error message with candidates
+ QByteArray message = "Signature \"" + sig + "\" not found for signal: \""
+ + sigName + "\". Available candidates: ";
+ for (auto *data = firstSignal; data != nullptr; data = data->d->next) {
+ if (data != firstSignal)
+ message += ", ";
+ message += '"' + data->d->signature + '"';
+ }
+
+ PyErr_SetString(PyExc_IndexError, message.constData());
return nullptr;
}
+static inline void warnDisconnectFailed(PyObject *aSlot, const QByteArray &signature)
+{
+ if (PyErr_Occurred() != nullptr) { // avoid "%S" invoking str() when an error is set.
+ PyErr_WarnFormat(PyExc_RuntimeWarning, 0, "Failed to disconnect (%s) from signal \"%s\".",
+ Py_TYPE(aSlot)->tp_name, signature.constData());
+ } else {
+ PyErr_WarnFormat(PyExc_RuntimeWarning, 0, "Failed to disconnect (%S) from signal \"%s\".",
+ aSlot, signature.constData());
+ }
+}
+
static PyObject *signalInstanceDisconnect(PyObject *self, PyObject *args)
{
auto source = reinterpret_cast<PySideSignalInstance *>(self);
+ if (!source->d) {
+ PyErr_Format(PyExc_RuntimeError, "cannot disconnect uninitialized SignalInstance");
+ return nullptr;
+ }
Shiboken::AutoDecRef pyArgs(PyList_New(0));
PyObject *slot = Py_None;
@@ -576,7 +686,7 @@ static PyObject *signalInstanceDisconnect(PyObject *self, PyObject *args)
slot = PyTuple_GET_ITEM(args, 0);
bool match = false;
- if (Py_TYPE(slot) == PySideSignalInstanceTypeF()) {
+ if (Py_TYPE(slot) == PySideSignalInstance_TypeF()) {
PySideSignalInstance *target = reinterpret_cast<PySideSignalInstance *>(slot);
if (QMetaObject::checkConnectArgs(source->d->signature, target->d->signature)) {
PyList_Append(pyArgs, source->d->source);
@@ -607,16 +717,16 @@ static PyObject *signalInstanceDisconnect(PyObject *self, PyObject *args)
if (match) {
Shiboken::AutoDecRef tupleArgs(PyList_AsTuple(pyArgs));
Shiboken::AutoDecRef pyMethod(PyObject_GetAttr(source->d->source,
- PySide::PyName::qtDisconnect()));
+ PySide::PySideName::qtDisconnect()));
PyObject *result = PyObject_CallObject(pyMethod, tupleArgs);
- if (!result || result == Py_True)
- return result;
- Py_DECREF(result);
+ if (result != Py_True)
+ warnDisconnectFailed(slot, source->d->signature);
+ return result;
}
- PyErr_Format(PyExc_RuntimeError, "Failed to disconnect signal %s.",
- source->d->signature.constData());
- return nullptr;
+ warnDisconnectFailed(slot, source->d->signature);
+ Py_INCREF(Py_False);
+ return Py_False;
}
// PYSIDE-68: Supply the missing __get__ function
@@ -624,12 +734,23 @@ static PyObject *signalDescrGet(PyObject *self, PyObject *obj, PyObject * /*type
{
auto signal = reinterpret_cast<PySideSignal *>(self);
// Return the unbound signal if there is nothing to bind it to.
- if (obj == nullptr || obj == Py_None) {
+ if (obj == nullptr || obj == Py_None
+ || !PySide::isQObjectDerived(Py_TYPE(obj), true)) {
Py_INCREF(self);
return self;
}
+
+ // PYSIDE-68-bis: It is important to respect the already cached instance.
Shiboken::AutoDecRef name(Py_BuildValue("s", signal->data->signalName.data()));
- return reinterpret_cast<PyObject *>(PySide::Signal::initialize(signal, name, obj));
+ auto *dict = SbkObject_GetDict_NoRef(obj);
+ auto *inst = PyDict_GetItem(dict, name);
+ if (inst) {
+ Py_INCREF(inst);
+ return inst;
+ }
+ inst = reinterpret_cast<PyObject *>(PySide::Signal::initialize(signal, name, obj));
+ PyObject_SetAttr(obj, name, inst);
+ return inst;
}
static PyObject *signalCall(PyObject *self, PyObject *args, PyObject *kw)
@@ -645,150 +766,211 @@ static PyObject *signalCall(PyObject *self, PyObject *args, PyObject *kw)
return nullptr;
}
- descrgetfunc getDescriptor = Py_TYPE(signal->homonymousMethod)->tp_descr_get;
-
// Check if there exists a method with the same name as the signal, which is also a static
// method in C++ land.
- Shiboken::AutoDecRef homonymousMethod(getDescriptor(signal->homonymousMethod,
- nullptr, nullptr));
- if (PyCFunction_Check(homonymousMethod)
- && (PyCFunction_GET_FLAGS(homonymousMethod.object()) & METH_STATIC)) {
-#if PY_VERSION_HEX >= 0x03090000
+ Shiboken::AutoDecRef homonymousMethod(PepExt_Type_CallDescrGet(signal->homonymousMethod,
+ nullptr, nullptr));
+ if (PyCFunction_Check(homonymousMethod.object())
+ && (PyCFunction_GET_FLAGS(homonymousMethod.object()) & METH_STATIC))
return PyObject_Call(homonymousMethod, args, kw);
-#else
- return PyCFunction_Call(homonymousMethod, args, kw);
-#endif
- }
// Assumes homonymousMethod is not a static method.
- ternaryfunc callFunc = Py_TYPE(signal->homonymousMethod)->tp_call;
+ ternaryfunc callFunc = PepExt_Type_GetCallSlot(Py_TYPE(signal->homonymousMethod));
return callFunc(homonymousMethod, args, kw);
}
+// This function returns a borrowed reference.
+static inline PyObject *_getRealCallable(PyObject *func)
+{
+ static const auto *SignalType = PySideSignal_TypeF();
+ static const auto *SignalInstanceType = PySideSignalInstance_TypeF();
+
+ // If it is a signal, use the (maybe empty) homonymous method.
+ if (Py_TYPE(func) == SignalType) {
+ auto *signal = reinterpret_cast<PySideSignal *>(func);
+ return signal->homonymousMethod;
+ }
+ // If it is a signal instance, use the (maybe empty) homonymous method.
+ if (Py_TYPE(func) == SignalInstanceType) {
+ auto *signalInstance = reinterpret_cast<PySideSignalInstance *>(func);
+ return signalInstance->d->homonymousMethod;
+ }
+ return func;
+}
+
+// This function returns a borrowed reference.
+static PyObject *_getHomonymousMethod(PySideSignalInstance *inst)
+{
+ if (inst->d->homonymousMethod)
+ return inst->d->homonymousMethod;
+
+ // PYSIDE-1730: We are searching methods with the same name not only at the same place,
+ // but walk through the whole mro to find a hidden method with the same name.
+ auto signalName = inst->d->signalName;
+ Shiboken::AutoDecRef name(Shiboken::String::fromCString(signalName));
+ auto *mro = Py_TYPE(inst->d->source)->tp_mro;
+ const Py_ssize_t n = PyTuple_GET_SIZE(mro);
+
+ for (Py_ssize_t idx = 0; idx < n; idx++) {
+ auto *sub_type = reinterpret_cast<PyTypeObject *>(PyTuple_GET_ITEM(mro, idx));
+ Shiboken::AutoDecRef tpDict(PepType_GetDict(sub_type));
+ auto *hom = PyDict_GetItem(tpDict, name);
+ PyObject *realFunc{};
+ if (hom && PyCallable_Check(hom) && (realFunc = _getRealCallable(hom)))
+ return realFunc;
+ }
+ return nullptr;
+}
+
static PyObject *signalInstanceCall(PyObject *self, PyObject *args, PyObject *kw)
{
- auto PySideSignal = reinterpret_cast<PySideSignalInstance *>(self);
- if (!PySideSignal->d->homonymousMethod) {
- PyErr_SetString(PyExc_TypeError, "native Qt signal is not callable");
- return 0;
+ auto *PySideSignal = reinterpret_cast<PySideSignalInstance *>(self);
+ auto *hom = _getHomonymousMethod(PySideSignal);
+ if (!hom) {
+ PyErr_Format(PyExc_TypeError, "native Qt signal instance '%s' is not callable",
+ PySideSignal->d->signalName.constData());
+ return nullptr;
}
- descrgetfunc getDescriptor = Py_TYPE(PySideSignal->d->homonymousMethod)->tp_descr_get;
- Shiboken::AutoDecRef homonymousMethod(getDescriptor(PySideSignal->d->homonymousMethod,
- PySideSignal->d->source, nullptr));
-#if PY_VERSION_HEX >= 0x03090000
- return PyObject_Call(homonymousMethod, args, kw);
-#else
- return PyCFunction_Call(homonymousMethod, args, kw);
-#endif
+ Shiboken::AutoDecRef homonymousMethod(PepExt_Type_CallDescrGet(hom, PySideSignal->d->source,
+ nullptr));
+ return PyObject_Call(homonymousMethod, args, kw);
}
static PyObject *metaSignalCheck(PyObject * /* klass */, PyObject *arg)
{
- if (PyType_IsSubtype(Py_TYPE(arg), PySideSignalInstanceTypeF()))
+ if (PyType_IsSubtype(Py_TYPE(arg), PySideSignalInstance_TypeF()))
Py_RETURN_TRUE;
Py_RETURN_FALSE;
}
} // extern "C"
-namespace PySide {
-namespace Signal {
+namespace PySide::Signal {
static const char *MetaSignal_SignatureStrings[] = {
"PySide6.QtCore.MetaSignal.__instancecheck__(self,object:object)->bool",
nullptr}; // Sentinel
static const char *Signal_SignatureStrings[] = {
- "PySide6.QtCore.Signal(self,*types:type,name:str=nullptr,arguments:str=nullptr)",
+ "PySide6.QtCore.Signal(self,*types:type,name:str=nullptr,arguments:typing.List[str]=nullptr)",
+ "1:PySide6.QtCore.Signal.__get__(self,instance:None,owner:Optional[typing.Any])->"
+ "PySide6.QtCore.Signal",
+ "0:PySide6.QtCore.Signal.__get__(self,instance:PySide6.QtCore.QObject,"
+ "owner:Optional[typing.Any])->PySide6.QtCore.SignalInstance",
nullptr}; // Sentinel
static const char *SignalInstance_SignatureStrings[] = {
- "PySide6.QtCore.SignalInstance.connect(self,slot:object,type:type=nullptr)",
- "PySide6.QtCore.SignalInstance.disconnect(self,slot:object=nullptr)",
+ "PySide6.QtCore.SignalInstance.connect(self,slot:object,"
+ "type:PySide6.QtCore.Qt.ConnectionType=PySide6.QtCore.Qt.ConnectionType.AutoConnection)"
+ "->PySide6.QtCore.QMetaObject.Connection",
+ "PySide6.QtCore.SignalInstance.disconnect(self,slot:object=nullptr)->bool",
"PySide6.QtCore.SignalInstance.emit(self,*args:typing.Any)",
nullptr}; // Sentinel
void init(PyObject *module)
{
- if (InitSignatureStrings(PySideMetaSignalTypeF(), MetaSignal_SignatureStrings) < 0)
+ if (InitSignatureStrings(PySideMetaSignal_TypeF(), MetaSignal_SignatureStrings) < 0)
return;
- Py_INCREF(PySideMetaSignalTypeF());
- PyModule_AddObject(module, "MetaSignal", reinterpret_cast<PyObject *>(PySideMetaSignalTypeF()));
+ Py_INCREF(PySideMetaSignal_TypeF());
+ auto *obMetaSignal_Type = reinterpret_cast<PyObject *>(PySideMetaSignal_TypeF());
+ PyModule_AddObject(module, "MetaSignal", obMetaSignal_Type);
- if (InitSignatureStrings(PySideSignalTypeF(), Signal_SignatureStrings) < 0)
+ if (InitSignatureStrings(PySideSignal_TypeF(), Signal_SignatureStrings) < 0)
return;
- Py_INCREF(PySideSignalTypeF());
- PyModule_AddObject(module, "Signal", reinterpret_cast<PyObject *>(PySideSignalTypeF()));
+ Py_INCREF(PySideSignal_TypeF());
+ auto *obSignal_Type = reinterpret_cast<PyObject *>(PySideSignal_TypeF());
+ PyModule_AddObject(module, "Signal", obSignal_Type);
- if (InitSignatureStrings(PySideSignalInstanceTypeF(), SignalInstance_SignatureStrings) < 0)
+ if (InitSignatureStrings(PySideSignalInstance_TypeF(), SignalInstance_SignatureStrings) < 0)
return;
- Py_INCREF(PySideSignalInstanceTypeF());
- PyModule_AddObject(module, "SignalInstance", reinterpret_cast<PyObject *>(PySideSignalInstanceTypeF()));
+ Py_INCREF(PySideSignalInstance_TypeF());
+ auto *obSignalInstance_Type = reinterpret_cast<PyObject *>(PySideSignalInstance_TypeF());
+ PyModule_AddObject(module, "SignalInstance", obSignalInstance_Type);
}
bool checkType(PyObject *pyObj)
{
if (pyObj)
- return PyType_IsSubtype(Py_TYPE(pyObj), PySideSignalTypeF());
+ return PyType_IsSubtype(Py_TYPE(pyObj), PySideSignal_TypeF());
return false;
}
bool checkInstanceType(PyObject *pyObj)
{
return pyObj != nullptr
- && PyType_IsSubtype(Py_TYPE(pyObj), PySideSignalInstanceTypeF()) != 0;
+ && PyType_IsSubtype(Py_TYPE(pyObj), PySideSignalInstance_TypeF()) != 0;
}
void updateSourceObject(PyObject *source)
{
- PyTypeObject *objType = reinterpret_cast<PyTypeObject *>(PyObject_Type(source));
-
- Py_ssize_t pos = 0;
- PyObject *value;
- PyObject *key;
-
- while (PyDict_Next(objType->tp_dict, &pos, &key, &value)) {
- if (PyObject_TypeCheck(value, PySideSignalTypeF())) {
- Shiboken::AutoDecRef signalInstance(reinterpret_cast<PyObject *>(PyObject_New(PySideSignalInstance, PySideSignalInstanceTypeF())));
- instanceInitialize(signalInstance.cast<PySideSignalInstance *>(), key, reinterpret_cast<PySideSignal *>(value), source, 0);
- PyObject_SetAttr(source, key, signalInstance);
+ // TODO: Provide for actual upstream exception handling.
+ // For now we'll just return early to avoid further issues.
+
+ if (source == nullptr) // Bad input
+ return;
+
+ Shiboken::AutoDecRef mroIterator(PyObject_GetIter(source->ob_type->tp_mro));
+
+ if (mroIterator.isNull()) // Not iterable
+ return;
+
+ Shiboken::AutoDecRef mroItem{};
+ auto *dict = SbkObject_GetDict_NoRef(source);
+
+ // PYSIDE-1431: Walk the mro and update. But see PYSIDE-1751 below.
+ while ((mroItem.reset(PyIter_Next(mroIterator))), mroItem.object()) {
+ Py_ssize_t pos = 0;
+ PyObject *key, *value;
+ auto *type = reinterpret_cast<PyTypeObject *>(mroItem.object());
+ Shiboken::AutoDecRef tpDict(PepType_GetDict(type));
+ while (PyDict_Next(tpDict, &pos, &key, &value)) {
+ if (PyObject_TypeCheck(value, PySideSignal_TypeF())) {
+ // PYSIDE-1751: We only insert an instance into the instance dict, if a signal
+ // of the same name is in the mro. This is the equivalent action
+ // as PyObject_SetAttr, but filtered by existing signal names.
+ if (!PyDict_GetItem(dict, key)) {
+ auto *inst = PyObject_New(PySideSignalInstance, PySideSignalInstance_TypeF());
+ Shiboken::AutoDecRef signalInstance(reinterpret_cast<PyObject *>(inst));
+ auto *si = reinterpret_cast<PySideSignalInstance *>(signalInstance.object());
+ instanceInitialize(si, key, reinterpret_cast<PySideSignal *>(value),
+ source, 0);
+ if (PyDict_SetItem(dict, key, signalInstance) == -1)
+ return; // An error occurred while setting the attribute
+ }
+ }
}
}
- Py_XDECREF(objType);
+ if (PyErr_Occurred()) // An iteration error occurred
+ return;
}
-QByteArray getTypeName(PyObject *type)
+QByteArray getTypeName(PyObject *obType)
{
- if (PyType_Check(type)) {
- if (PyType_IsSubtype(reinterpret_cast<PyTypeObject *>(type),
- reinterpret_cast<PyTypeObject *>(SbkObject_TypeF()))) {
- auto objType = reinterpret_cast<PyTypeObject *>(type);
- return Shiboken::ObjectType::getOriginalName(objType);
- }
- // Translate python types to Qt names
- auto objType = reinterpret_cast<PyTypeObject *>(type);
- if (Shiboken::String::checkType(objType))
+ if (PyType_Check(obType)) {
+ auto *type = reinterpret_cast<PyTypeObject *>(obType);
+ if (PyType_IsSubtype(type, SbkObject_TypeF()))
+ return Shiboken::ObjectType::getOriginalName(type);
+ // Translate Python types to Qt names
+ if (Shiboken::String::checkType(type))
return QByteArrayLiteral("QString");
- if (objType == &PyLong_Type)
+ if (type == &PyLong_Type)
return QByteArrayLiteral("int");
- if (objType == &PyLong_Type)
- return QByteArrayLiteral("long");
- if (objType == &PyFloat_Type)
+ if (type == &PyFloat_Type)
return QByteArrayLiteral("double");
- if (objType == &PyBool_Type)
+ if (type == &PyBool_Type)
return QByteArrayLiteral("bool");
- if (objType == &PyList_Type)
+ if (type == &PyList_Type)
return QByteArrayLiteral("QVariantList");
- if (Py_TYPE(objType) == SbkEnumType_TypeF())
- return Shiboken::Enum::getCppName(objType);
+ if (type == &PyDict_Type)
+ return QByteArrayLiteral("QVariantMap");
return QByteArrayLiteral("PyObject");
}
- if (type == Py_None) // Must be checked before as Shiboken::String::check accepts Py_None
+ if (obType == Py_None) // Must be checked before as Shiboken::String::check accepts Py_None
return voidType();
- if (Shiboken::String::check(type)) {
- QByteArray result = Shiboken::String::toCString(type);
+ if (Shiboken::String::check(obType)) {
+ QByteArray result = Shiboken::String::toCString(obType);
if (result == "qreal")
result = sizeof(qreal) == sizeof(double) ? "double" : "float";
return result;
@@ -801,59 +983,79 @@ static QByteArray buildSignature(const QByteArray &name, const QByteArray &signa
return QMetaObject::normalizedSignature(name + '(' + signature + ')');
}
-static QByteArray parseSignature(PyObject *args)
+static PySideSignalData::Signature parseSignature(PyObject *args)
{
- if (args && (Shiboken::String::check(args) || !PySequence_Check(args)))
- return getTypeName(args);
+ PySideSignalData::Signature result{{}, QMetaMethod::Compatibility, 0};
+ if (args && (Shiboken::String::check(args) || !PyTuple_Check(args))) {
+ result.signature = getTypeName(args);
+ result.argCount = 1;
+ return result;
+ }
- QByteArray signature;
for (Py_ssize_t i = 0, i_max = PySequence_Size(args); i < i_max; i++) {
Shiboken::AutoDecRef arg(PySequence_GetItem(args, i));
const auto typeName = getTypeName(arg);
if (!typeName.isEmpty()) {
- if (!signature.isEmpty())
- signature += ',';
- signature += typeName;
+ if (!result.signature.isEmpty())
+ result.signature += ',';
+ result.signature += typeName;
+ ++result.argCount;
}
}
- return signature;
+ return result;
}
-static void appendSignature(PySideSignal *self, const SignalSignature &signature)
+static void sourceGone(void *data)
{
- self->data->signatures.append({signature.m_parameterTypes, signature.m_attributes});
+ auto *self = reinterpret_cast<PySideSignalInstance *>(data);
+ self->deleted = true;
}
-static void instanceInitialize(PySideSignalInstance *self, PyObject *name, PySideSignal *data, PyObject *source, int index)
+static void instanceInitialize(PySideSignalInstance *self, PyObject *name, PySideSignal *signal, PyObject *source, int index)
{
self->d = new PySideSignalInstancePrivate;
+ self->deleted = false;
PySideSignalInstancePrivate *selfPvt = self->d;
selfPvt->next = nullptr;
- if (data->data->signalName.isEmpty())
- data->data->signalName = Shiboken::String::toCString(name);
- selfPvt->signalName = data->data->signalName;
+ if (signal->data->signalName.isEmpty())
+ signal->data->signalName = Shiboken::String::toCString(name);
+ selfPvt->signalName = signal->data->signalName;
selfPvt->source = source;
- const auto &signature = data->data->signatures.at(index);
+ const auto &signature = signal->data->signatures.at(index);
selfPvt->signature = buildSignature(self->d->signalName, signature.signature);
+ selfPvt->argCount = signature.argCount;
selfPvt->attributes = signature.attributes;
selfPvt->homonymousMethod = nullptr;
- if (data->homonymousMethod) {
- selfPvt->homonymousMethod = data->homonymousMethod;
+ if (signal->homonymousMethod) {
+ selfPvt->homonymousMethod = signal->homonymousMethod;
Py_INCREF(selfPvt->homonymousMethod);
}
+ // PYSIDE-2201: We have no reference to source. Let's take a weakref to get
+ // notified when source gets deleted.
+ PySide::WeakRef::create(source, sourceGone, self);
+
index++;
- if (index < data->data->signatures.size()) {
- selfPvt->next = PyObject_New(PySideSignalInstance, PySideSignalInstanceTypeF());
- instanceInitialize(selfPvt->next, name, data, source, index);
+ if (index < signal->data->signatures.size()) {
+ selfPvt->next = PyObject_New(PySideSignalInstance, PySideSignalInstance_TypeF());
+ instanceInitialize(selfPvt->next, name, signal, source, index);
}
}
PySideSignalInstance *initialize(PySideSignal *self, PyObject *name, PyObject *object)
{
+ static PyTypeObject *pyQObjectType = Shiboken::Conversions::getPythonTypeObject("QObject*");
+ assert(pyQObjectType);
+
+ if (!PyObject_TypeCheck(object, pyQObjectType)) {
+ PyErr_Format(PyExc_TypeError, "%s cannot be converted to %s",
+ Py_TYPE(object)->tp_name, pyQObjectType->tp_name);
+ return nullptr;
+ }
+
PySideSignalInstance *instance = PyObject_New(PySideSignalInstance,
- PySideSignalInstanceTypeF());
+ PySideSignalInstance_TypeF());
instanceInitialize(instance, name, self, object, 0);
auto sbkObj = reinterpret_cast<SbkObject *>(object);
if (!Shiboken::Object::wasCreatedByPython(sbkObj))
@@ -864,7 +1066,7 @@ PySideSignalInstance *initialize(PySideSignal *self, PyObject *name, PyObject *o
bool connect(PyObject *source, const char *signal, PyObject *callback)
{
Shiboken::AutoDecRef pyMethod(PyObject_GetAttr(source,
- PySide::PyName::qtConnect()));
+ PySide::PySideName::qtConnect()));
if (pyMethod.isNull())
return false;
@@ -884,7 +1086,7 @@ PySideSignalInstance *newObjectFromMethod(PyObject *source, const QList<QMetaMet
PySideSignalInstance *root = nullptr;
PySideSignalInstance *previous = nullptr;
for (const QMetaMethod &m : methodList) {
- PySideSignalInstance *item = PyObject_New(PySideSignalInstance, PySideSignalInstanceTypeF());
+ PySideSignalInstance *item = PyObject_New(PySideSignalInstance, PySideSignalInstance_TypeF());
if (!root)
root = item;
@@ -892,14 +1094,15 @@ PySideSignalInstance *newObjectFromMethod(PyObject *source, const QList<QMetaMet
previous->d->next = item;
item->d = new PySideSignalInstancePrivate;
+ item->deleted = false;
PySideSignalInstancePrivate *selfPvt = item->d;
selfPvt->source = source;
- Py_INCREF(selfPvt->source); // PYSIDE-79: an INCREF is missing.
QByteArray cppName(m.methodSignature());
cppName.truncate(cppName.indexOf('('));
- // separe SignalName
+ // separate SignalName
selfPvt->signalName = cppName;
selfPvt->signature = m.methodSignature();
+ selfPvt->argCount = int(m.parameterCount());
selfPvt->attributes = m.attributes();
selfPvt->homonymousMethod = nullptr;
selfPvt->next = nullptr;
@@ -907,29 +1110,10 @@ PySideSignalInstance *newObjectFromMethod(PyObject *source, const QList<QMetaMet
return root;
}
-template<typename T>
-static typename T::value_type join(T t, const char *sep)
-{
- typename T::value_type res;
- if (t.isEmpty())
- return res;
-
- typename T::const_iterator it = t.begin();
- typename T::const_iterator end = t.end();
- res += *it;
- ++it;
-
- while (it != end) {
- res += sep;
- res += *it;
- ++it;
- }
- return res;
-}
-
static void _addSignalToWrapper(PyTypeObject *wrapperType, const char *signalName, PySideSignal *signal)
{
- auto typeDict = wrapperType->tp_dict;
+ Shiboken::AutoDecRef tpDict(PepType_GetDict(wrapperType));
+ auto typeDict = tpDict.object();
PyObject *homonymousMethod;
if ((homonymousMethod = PyDict_GetItemString(typeDict, signalName))) {
Py_INCREF(homonymousMethod);
@@ -939,9 +1123,10 @@ static void _addSignalToWrapper(PyTypeObject *wrapperType, const char *signalNam
}
// This function is used by qStableSort to promote empty signatures
-static bool compareSignals(const SignalSignature &sig1, const SignalSignature &)
+static bool compareSignals(const PySideSignalData::Signature &sig1,
+ const PySideSignalData::Signature &sig2)
{
- return sig1.m_parameterTypes.isEmpty();
+ return sig1.signature.isEmpty() && !sig2.signature.isEmpty();
}
static PyObject *buildQtCompatible(const QByteArray &signature)
@@ -952,39 +1137,46 @@ static PyObject *buildQtCompatible(const QByteArray &signature)
void registerSignals(PyTypeObject *pyObj, const QMetaObject *metaObject)
{
- using SignalSigMap = QHash<QByteArray, QList<SignalSignature> >;
- SignalSigMap signalsFound;
+ using Signature = PySideSignalData::Signature;
+ struct MetaSignal
+ {
+ QByteArray methodName;
+ QList<Signature> signatures;
+ };
+
+ QList<MetaSignal> signalsFound;
for (int i = metaObject->methodOffset(), max = metaObject->methodCount(); i < max; ++i) {
QMetaMethod method = metaObject->method(i);
if (method.methodType() == QMetaMethod::Signal) {
QByteArray methodName(method.methodSignature());
- methodName.chop(methodName.size() - methodName.indexOf('('));
- SignalSignature signature;
- signature.m_parameterTypes = join(method.parameterTypes(), ",");
+ methodName.truncate(methodName.indexOf('('));
+ Signature signature{method.parameterTypes().join(','), {},
+ short(method.parameterCount())};
if (method.attributes() & QMetaMethod::Cloned)
- signature.m_attributes = QMetaMethod::Cloned;
- signalsFound[methodName] << signature;
+ signature.attributes = QMetaMethod::Cloned;
+ auto it = std::find_if(signalsFound.begin(), signalsFound.end(),
+ [methodName](const MetaSignal &ms)
+ { return ms.methodName == methodName; });
+ if (it != signalsFound.end())
+ it->signatures << signature;
+ else
+ signalsFound.append(MetaSignal{methodName, {signature}});
}
}
- SignalSigMap::Iterator it = signalsFound.begin();
- SignalSigMap::Iterator end = signalsFound.end();
- for (; it != end; ++it) {
- PySideSignal *self = PyObject_New(PySideSignal, PySideSignalTypeF());
+ for (const auto &metaSignal : std::as_const(signalsFound)) {
+ PySideSignal *self = PyObject_New(PySideSignal, PySideSignal_TypeF());
self->data = new PySideSignalData;
- self->data->signalName = it.key();
+ self->data->signalName = metaSignal.methodName;
self->homonymousMethod = nullptr;
// Empty signatures comes first! So they will be the default signal signature
- std::stable_sort(it.value().begin(), it.value().end(), &compareSignals);
- const auto endJ = it.value().cend();
- for (auto j = it.value().cbegin(); j != endJ; ++j) {
- const SignalSignature &sig = *j;
- appendSignature(self, sig);
- }
+ self->data->signatures = metaSignal.signatures;
+ std::stable_sort(self->data->signatures.begin(),
+ self->data->signatures.end(), &compareSignals);
- _addSignalToWrapper(pyObj, it.key(), self);
+ _addSignalToWrapper(pyObj, metaSignal.methodName, self);
Py_DECREF(reinterpret_cast<PyObject *>(self));
}
}
@@ -999,53 +1191,84 @@ const char *getSignature(PySideSignalInstance *signal)
return signal->d->signature;
}
-QStringList getArgsFromSignature(const char *signature, bool *isShortCircuit)
+EmitterData getEmitterData(PySideSignalInstance *signal)
{
- QString qsignature = QString::fromLatin1(signature).trimmed();
- QStringList result;
+ EmitterData result;
+ result.emitter = PySide::convertToQObject(getObject(signal), false);
+ if (result.emitter != nullptr) {
+ auto *mo = result.emitter->metaObject();
+ result.methodIndex = mo->indexOfMethod(getSignature(signal));
+ }
+ return result;
+}
+
+QByteArrayList getArgsFromSignature(const char *signature, bool *isShortCircuit)
+{
+ QByteArray qsignature = QByteArray(signature).trimmed();
+ QByteArrayList result;
if (isShortCircuit)
- *isShortCircuit = !qsignature.contains(QLatin1Char('('));
- if (qsignature.contains(QLatin1String("()")) || qsignature.contains(QLatin1String("(void)")))
+ *isShortCircuit = !qsignature.contains(u'(');
+ if (qsignature.contains("()") || qsignature.contains("(void)"))
return result;
- if (qsignature.endsWith(QLatin1Char(')'))) {
- const int paren = qsignature.indexOf(QLatin1Char('('));
+ if (qsignature.endsWith(')')) {
+ const auto paren = qsignature.indexOf('(');
if (paren >= 0) {
qsignature.chop(1);
qsignature.remove(0, paren + 1);
- result = qsignature.split(QLatin1Char(','));
- for (QString &type : result)
+ result = qsignature.split(u',');
+ for (auto &type : result)
type = type.trimmed();
}
}
return result;
}
-QString getCallbackSignature(const char *signal, QObject *receiver, PyObject *callback, bool encodeName)
+QByteArray getCallbackSignature(const char *signal, QObject *receiver,
+ PyObject *callback, bool encodeName)
{
QByteArray functionName;
- int numArgs = -1;
+ qsizetype numArgs = -1;
- PyObject *function = nullptr;
- PepCodeObject *objCode = nullptr;
- bool useSelf = false;
+ const auto slotArgs = extractFunctionArgumentsFromSlot(callback);
+ qsizetype useSelf = slotArgs.isMethod ? 1 : 0;
- extractFunctionArgumentsFromSlot(callback, function, objCode, useSelf, &functionName);
+ if (slotArgs.function != nullptr) {
+ numArgs = argCount(slotArgs).max;
+#ifdef PYPY_VERSION
+ } else if (Py_TYPE(callback) == PepBuiltinMethod_TypePtr) {
+ // PYSIDE-535: PyPy has a special builtin method that acts almost like PyCFunction.
+ Shiboken::AutoDecRef temp(PyObject_GetAttr(callback, Shiboken::PyMagicName::name()));
+ functionName = Shiboken::String::toCString(temp);
+ useSelf = true;
- if (function != nullptr) {
- numArgs = PepCode_GET_FLAGS(objCode) & CO_VARARGS ? -1 : PepCode_GET_ARGCOUNT(objCode);
+ if (receiver) {
+ // Search for signature on metaobject
+ const QMetaObject *mo = receiver->metaObject();
+ QByteArray prefix(functionName);
+ prefix += '(';
+ for (int i = 0; i < mo->methodCount(); i++) {
+ QMetaMethod me = mo->method(i);
+ if ((strncmp(me.methodSignature(), prefix, prefix.size()) == 0) &&
+ QMetaObject::checkConnectArgs(signal, me.methodSignature())) {
+ numArgs = me.parameterTypes().size() + useSelf;
+ break;
+ }
+ }
+ }
+#endif
} else if (PyCFunction_Check(callback)) {
const PyCFunctionObject *funcObj = reinterpret_cast<const PyCFunctionObject *>(callback);
functionName = PepCFunction_GET_NAMESTR(funcObj);
- useSelf = PyCFunction_GET_SELF(funcObj);
+ useSelf = PyCFunction_GET_SELF(funcObj) != nullptr ? 1 : 0;
const int flags = PyCFunction_GET_FLAGS(funcObj);
if (receiver) {
- //Search for signature on metaobject
+ // Search for signature on metaobject
const QMetaObject *mo = receiver->metaObject();
QByteArray prefix(functionName);
prefix += '(';
- for (int i = 0; i < mo->methodCount(); i++) {
+ for (int i = 0, count = mo->methodCount(); i < count; ++i) {
QMetaMethod me = mo->method(i);
if ((strncmp(me.methodSignature(), prefix, prefix.size()) == 0) &&
QMetaObject::checkConnectArgs(signal, me.methodSignature())) {
@@ -1062,26 +1285,30 @@ QString getCallbackSignature(const char *signal, QObject *receiver, PyObject *ca
numArgs = 0;
}
} else if (PyCallable_Check(callback)) {
- functionName = "__callback" + QByteArray::number((qlonglong)callback);
+ functionName = "__callback" + QByteArray::number(quintptr(callback));
}
+ if (functionName.isEmpty() && slotArgs.functionName != nullptr)
+ functionName = Shiboken::String::toCString(slotArgs.functionName);
Q_ASSERT(!functionName.isEmpty());
bool isShortCircuit = false;
- const QString functionNameS = QLatin1String(functionName);
- QString signature = encodeName ? codeCallbackName(callback, functionNameS) : functionNameS;
- QStringList args = getArgsFromSignature(signal, &isShortCircuit);
+ if (functionName.startsWith('<') && functionName.endsWith('>')) { // fix "<lambda>"
+ functionName[0] = '_';
+ functionName[functionName.size() - 1] = '_';
+ }
+ QByteArray signature = encodeName ? codeCallbackName(callback, functionName) : functionName;
+ QByteArrayList args = getArgsFromSignature(signal, &isShortCircuit);
if (!isShortCircuit) {
- signature.append(QLatin1Char('('));
+ signature.append(u'(');
if (numArgs == -1)
- numArgs = std::numeric_limits<int>::max();
- while (args.count() && (args.count() > (numArgs - useSelf))) {
+ numArgs = std::numeric_limits<qsizetype>::max();
+ while (!args.isEmpty() && (args.size() > (numArgs - useSelf)))
args.removeLast();
- }
- signature.append(args.join(QLatin1Char(',')));
- signature.append(QLatin1Char(')'));
+ signature.append(args.join(','));
+ signature.append(')');
}
return signature;
}
@@ -1100,22 +1327,21 @@ bool checkQtSignal(const char *signal)
return true;
}
-QString codeCallbackName(PyObject *callback, const QString &funcName)
+QByteArray codeCallbackName(PyObject *callback, const QByteArray &funcName)
{
if (PyMethod_Check(callback)) {
PyObject *self = PyMethod_GET_SELF(callback);
PyObject *func = PyMethod_GET_FUNCTION(callback);
- return funcName + QString::number(quint64(self), 16) + QString::number(quint64(func), 16);
+ return funcName + QByteArray::number(quint64(self), 16) + QByteArray::number(quint64(func), 16);
}
// PYSIDE-1523: Handle the compiled case.
- if (PyObject_HasAttr(callback, PySide::PyName::im_func())
- && PyObject_HasAttr(callback, PySide::PyName::im_self())) {
+ if (PySide::isCompiledMethod(callback)) {
// Not retaining references inline with what PyMethod_GET_(SELF|FUNC) does.
- Shiboken::AutoDecRef self(PyObject_GetAttr(callback, PySide::PyName::im_self()));
- Shiboken::AutoDecRef func(PyObject_GetAttr(callback, PySide::PyName::im_func()));
- return funcName + QString::number(quint64(self), 16) + QString::number(quint64(func), 16);
+ Shiboken::AutoDecRef self(PyObject_GetAttr(callback, PySide::PySideName::im_self()));
+ Shiboken::AutoDecRef func(PyObject_GetAttr(callback, PySide::PySideName::im_func()));
+ return funcName + QByteArray::number(quint64(self), 16) + QByteArray::number(quint64(func), 16);
}
- return funcName + QString::number(quint64(callback), 16);
+ return funcName + QByteArray::number(quint64(callback), 16);
}
QByteArray voidType()
@@ -1123,6 +1349,4 @@ QByteArray voidType()
return QByteArrayLiteral("void");
}
-} //namespace Signal
-} //namespace PySide
-
+} //namespace PySide::Signal
diff --git a/sources/pyside6/libpyside/pysidesignal.h b/sources/pyside6/libpyside/pysidesignal.h
index 9127c81aa..589fc2c92 100644
--- a/sources/pyside6/libpyside/pysidesignal.h
+++ b/sources/pyside6/libpyside/pysidesignal.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef PYSIDE_SIGNAL_H
#define PYSIDE_SIGNAL_H
@@ -55,8 +19,8 @@ QT_END_NAMESPACE
extern "C"
{
- extern PYSIDE_API PyTypeObject *PySideSignalTypeF(void);
- extern PYSIDE_API PyTypeObject *PySideSignalInstanceTypeF(void);
+ extern PYSIDE_API PyTypeObject *PySideSignal_TypeF(void);
+ extern PYSIDE_API PyTypeObject *PySideSignalInstance_TypeF(void);
// Internal object
struct PYSIDE_API PySideSignal;
@@ -66,11 +30,11 @@ extern "C"
{
PyObject_HEAD
PySideSignalInstancePrivate *d;
+ bool deleted;
};
}; // extern "C"
-namespace PySide {
-namespace Signal {
+namespace PySide::Signal {
/**
* This function checks for the PySideSignal type.
@@ -128,6 +92,18 @@ PYSIDE_API PyObject *getObject(PySideSignalInstance *signal);
**/
PYSIDE_API const char *getSignature(PySideSignalInstance *signal);
+struct EmitterData
+{
+ QObject *emitter = nullptr;
+ int methodIndex = -1;
+};
+
+/// A convenience to retrieve the emitter data from a signal instance
+///
+/// @param signal The Signal object
+/// @return Data structure
+PYSIDE_API EmitterData getEmitterData(PySideSignalInstance *signal);
+
/**
* This function is used to retrieve the signal signature
*
@@ -159,7 +135,8 @@ PYSIDE_API bool checkQtSignal(const char *signature);
* @param encodeName Used to specify if the returned signature will be encoded with Qt signal/slot style
* @return Return the callback signature
**/
-PYSIDE_API QString getCallbackSignature(const char *signal, QObject *receiver, PyObject *callback, bool encodeName);
+PYSIDE_API QByteArray getCallbackSignature(const char *signal, QObject *receiver,
+ PyObject *callback, bool encodeName);
/**
* This function parses the signature and then returns a list of argument types.
@@ -169,10 +146,9 @@ PYSIDE_API QString getCallbackSignature(const char *signal, QObject *receiver, P
* @return Return true if this is a Qt Signal, otherwise return false
* @todo replace return type by QList<QByteArray>
**/
-QStringList getArgsFromSignature(const char *signature,
- bool *isShortCircuit = nullptr);
+QByteArrayList getArgsFromSignature(const char *signature,
+ bool *isShortCircuit = nullptr);
-} // namespace Signal
-} // namespace PySide
+} // namespace PySide::Signal
#endif
diff --git a/sources/pyside6/libpyside/pysidesignal_p.h b/sources/pyside6/libpyside/pysidesignal_p.h
index 345c9e565..55a9a7a70 100644
--- a/sources/pyside6/libpyside/pysidesignal_p.h
+++ b/sources/pyside6/libpyside/pysidesignal_p.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef PYSIDE_QSIGNAL_P_H
#define PYSIDE_QSIGNAL_P_H
@@ -49,18 +13,19 @@ struct PySideSignalData
{
struct Signature
{
- QByteArray signature;
- int attributes;
+ QByteArray signature; // ','-separated list of parameter types
+ unsigned short attributes;
+ short argCount;
};
QByteArray signalName;
QList<Signature> signatures;
- QByteArrayList *signalArguments;
+ QByteArrayList signalArguments;
};
extern "C"
{
- extern PyTypeObject *PySideSignalTypeF(void);
+ extern PyTypeObject *PySideSignal_TypeF(void);
struct PySideSignal {
PyObject_HEAD
@@ -75,20 +40,21 @@ struct PySideSignalInstancePrivate
{
QByteArray signalName;
QByteArray signature;
- int attributes = 0;
PyObject *source = nullptr;
PyObject *homonymousMethod = nullptr;
PySideSignalInstance *next = nullptr;
+ unsigned short attributes = 0;
+ short argCount = 0;
};
-namespace PySide { namespace Signal {
+namespace PySide::Signal {
void init(PyObject *module);
bool connect(PyObject *source, const char *signal, PyObject *callback);
QByteArray getTypeName(PyObject *);
- QString codeCallbackName(PyObject *callback, const QString &funcName);
+ QByteArray codeCallbackName(PyObject *callback, const QByteArray &funcName);
QByteArray voidType();
-}} //namespace PySide
+} // namespace PySide::Signal
#endif
diff --git a/sources/pyside6/libpyside/pysideslot.cpp b/sources/pyside6/libpyside/pysideslot.cpp
index bad94db6b..fa7e89f42 100644
--- a/sources/pyside6/libpyside/pysideslot.cpp
+++ b/sources/pyside6/libpyside/pysideslot.cpp
@@ -1,45 +1,9 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "dynamicqmetaobject_p.h"
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
#include "pysidesignal_p.h"
#include "pysideslot_p.h"
+#include "pysidestaticstrings.h"
#include <shiboken.h>
@@ -54,55 +18,69 @@ struct SlotData
QByteArray name;
QByteArray args;
QByteArray resultType;
+ QByteArray tag; // QMetaMethod::tag()
};
-typedef struct
+struct PySideSlot
{
PyObject_HEAD
SlotData *slotData;
-} PySideSlot;
+};
extern "C"
{
+static void slotDataListDestructor(PyObject *o)
+{
+ delete PySide::Slot::dataListFromCapsule(o);
+}
+
static int slotTpInit(PyObject *, PyObject *, PyObject *);
static PyObject *slotCall(PyObject *, PyObject *, PyObject *);
// Class Definition -----------------------------------------------
-static PyType_Slot PySideSlotType_slots[] = {
- {Py_tp_call, reinterpret_cast<void *>(slotCall)},
- {Py_tp_init, reinterpret_cast<void *>(slotTpInit)},
- {Py_tp_new, reinterpret_cast<void *>(PyType_GenericNew)},
- {Py_tp_dealloc, reinterpret_cast<void *>(Sbk_object_dealloc)},
- {0, nullptr}
-};
-static PyType_Spec PySideSlotType_spec = {
- "2:PySide6.QtCore.Slot",
- sizeof(PySideSlot),
- 0,
- Py_TPFLAGS_DEFAULT,
- PySideSlotType_slots,
-};
+static PyTypeObject *createSlotType()
+{
+ PyType_Slot PySideSlotType_slots[] = {
+ {Py_tp_call, reinterpret_cast<void *>(slotCall)},
+ {Py_tp_init, reinterpret_cast<void *>(slotTpInit)},
+ {Py_tp_new, reinterpret_cast<void *>(PyType_GenericNew)},
+ {Py_tp_dealloc, reinterpret_cast<void *>(Sbk_object_dealloc)},
+ {0, nullptr}
+ };
+
+ PyType_Spec PySideSlotType_spec = {
+ "2:PySide6.QtCore.Slot",
+ sizeof(PySideSlot),
+ 0,
+ Py_TPFLAGS_DEFAULT,
+ PySideSlotType_slots,
+ };
+
+ return SbkType_FromSpec(&PySideSlotType_spec);
+}
-static PyTypeObject *PySideSlotTypeF()
+static PyTypeObject *PySideSlot_TypeF()
{
- static auto *type = SbkType_FromSpec(&PySideSlotType_spec);
+ static auto *type = createSlotType();
return type;
}
int slotTpInit(PyObject *self, PyObject *args, PyObject *kw)
{
static PyObject *emptyTuple = nullptr;
- static const char *kwlist[] = {"name", "result", nullptr};
+ static const char *kwlist[] = {"name", "result", "tag", nullptr};
char *argName = nullptr;
PyObject *argResult = nullptr;
+ char *tag = nullptr;
if (emptyTuple == nullptr)
emptyTuple = PyTuple_New(0);
- if (!PyArg_ParseTupleAndKeywords(emptyTuple, kw, "|sO:QtCore.Slot",
- const_cast<char **>(kwlist), &argName, &argResult)) {
+ if (!PyArg_ParseTupleAndKeywords(emptyTuple, kw, "|sOs:QtCore.Slot",
+ const_cast<char **>(kwlist),
+ &argName, &argResult, &tag)) {
return -1;
}
@@ -124,6 +102,9 @@ int slotTpInit(PyObject *self, PyObject *args, PyObject *kw)
if (argName)
data->slotData->name = argName;
+ if (tag)
+ data->slotData->tag = tag;
+
data->slotData->resultType = argResult
? PySide::Signal::getTypeName(argResult) : PySide::Signal::voidType();
@@ -132,12 +113,13 @@ int slotTpInit(PyObject *self, PyObject *args, PyObject *kw)
PyObject *slotCall(PyObject *self, PyObject *args, PyObject * /* kw */)
{
- static PyObject *pySlotName = nullptr;
- PyObject *callback;
- callback = PyTuple_GetItem(args, 0);
+ PyObject *callback = nullptr;
+
+ if (!PyArg_UnpackTuple(args, "Slot.__call__", 1, 1, &callback))
+ return nullptr;
Py_INCREF(callback);
- if (Py_TYPE(callback)->tp_call != nullptr) {
+ if (PyCallable_Check(callback)) {
PySideSlot *data = reinterpret_cast<PySideSlot *>(self);
if (!data->slotData)
@@ -146,32 +128,27 @@ PyObject *slotCall(PyObject *self, PyObject *args, PyObject * /* kw */)
if (data->slotData->name.isEmpty()) {
// PYSIDE-198: Use PyObject_GetAttr instead of PepFunction_GetName to support Nuitka.
AutoDecRef funcName(PyObject_GetAttr(callback, PyMagicName::name()));
- data->slotData->name = String::toCString(funcName);
+ data->slotData->name = funcName.isNull() ? "<no name>" : String::toCString(funcName);
}
const QByteArray returnType = QMetaObject::normalizedType(data->slotData->resultType);
- const QByteArray signature =
- returnType + ' ' + data->slotData->name + '(' + data->slotData->args + ')';
+ const QByteArray signature = data->slotData->name + '(' + data->slotData->args + ')';
- if (!pySlotName)
- pySlotName = String::fromCString(PYSIDE_SLOT_LIST_ATTR);
-
- PyObject *pySignature = String::fromCString(signature);
- PyObject *signatureList = nullptr;
+ PyObject *pySlotName = PySide::PySideMagicName::slot_list_attr();
+ PySide::Slot::DataList *entryList = nullptr;
if (PyObject_HasAttr(callback, pySlotName)) {
- signatureList = PyObject_GetAttr(callback, pySlotName);
+ auto *capsule = PyObject_GetAttr(callback, pySlotName);
+ entryList = PySide::Slot::dataListFromCapsule(capsule);
} else {
- signatureList = PyList_New(0);
- PyObject_SetAttr(callback, pySlotName, signatureList);
- Py_DECREF(signatureList);
+ entryList = new PySide::Slot::DataList{};
+ auto *capsule = PyCapsule_New(entryList, nullptr /* name */, slotDataListDestructor);
+ Py_INCREF(capsule);
+ PyObject_SetAttr(callback, pySlotName, capsule);
}
-
- PyList_Append(signatureList, pySignature);
- Py_DECREF(pySignature);
+ entryList->append({signature, returnType, data->slotData->tag});
//clear data
delete data->slotData;
data->slotData = nullptr;
- return callback;
}
return callback;
}
@@ -180,17 +157,27 @@ PyObject *slotCall(PyObject *self, PyObject *args, PyObject * /* kw */)
namespace PySide::Slot {
+DataList *dataListFromCapsule(PyObject *capsule)
+{
+ if (capsule != nullptr && PyCapsule_CheckExact(capsule) != 0) {
+ if (void *v = PyCapsule_GetPointer(capsule, nullptr))
+ return reinterpret_cast<DataList *>(v);
+ }
+ return nullptr;
+}
+
static const char *Slot_SignatureStrings[] = {
- "PySide6.QtCore.Slot(self,*types:type,name:str=nullptr,result:str=nullptr)->typing.Callable[...,typing.Optional[str]]",
+ "PySide6.QtCore.Slot(self,*types:type,name:str=nullptr,result:type=nullptr)",
+ "PySide6.QtCore.Slot.__call__(self,function:typing.Callable)->typing.Any",
nullptr}; // Sentinel
void init(PyObject *module)
{
- if (InitSignatureStrings(PySideSlotTypeF(), Slot_SignatureStrings) < 0)
+ if (InitSignatureStrings(PySideSlot_TypeF(), Slot_SignatureStrings) < 0)
return;
- Py_INCREF(PySideSlotTypeF());
- PyModule_AddObject(module, "Slot", reinterpret_cast<PyObject *>(PySideSlotTypeF()));
+ Py_INCREF(PySideSlot_TypeF());
+ PyModule_AddObject(module, "Slot", reinterpret_cast<PyObject *>(PySideSlot_TypeF()));
}
} // namespace PySide::Slot
diff --git a/sources/pyside6/libpyside/pysideslot_p.h b/sources/pyside6/libpyside/pysideslot_p.h
index 3d98e15c4..9852301ee 100644
--- a/sources/pyside6/libpyside/pysideslot_p.h
+++ b/sources/pyside6/libpyside/pysideslot_p.h
@@ -1,49 +1,28 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef PYSIDE_SLOT_P_H
#define PYSIDE_SLOT_P_H
#include <sbkpython.h>
-#define PYSIDE_SLOT_LIST_ATTR "_slots"
-namespace PySide { namespace Slot {
- void init(PyObject* module);
-}}
+#include <QtCore/qbytearray.h>
+#include <QtCore/qlist.h>
-#endif
+namespace PySide::Slot {
+
+struct Data {
+ QByteArray signature;
+ QByteArray resultType;
+ QByteArray tag; // QMetaMethod::tag()
+};
+
+// This list is set as an attribute named PySide::PySideMagicName::slot_list_attr()
+// by the decorator for usage by MetaObjectBuilder.
+using DataList = QList<Data>;
+
+DataList *dataListFromCapsule(PyObject *capsule);
+
+void init(PyObject* module);
+} // namespace PySide::Slot
+
+#endif // PYSIDE_SLOT_P_H
diff --git a/sources/pyside6/libpyside/pysidestaticstrings.cpp b/sources/pyside6/libpyside/pysidestaticstrings.cpp
index 8f74cd19f..3bddc84c2 100644
--- a/sources/pyside6/libpyside/pysidestaticstrings.cpp
+++ b/sources/pyside6/libpyside/pysidestaticstrings.cpp
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include "pysidestaticstrings.h"
#include <sbkstring.h>
@@ -49,25 +13,28 @@ PyObject *funcName() \
namespace PySide
{
-namespace PyName
+namespace PySideName
{
-STATIC_STRING_IMPL(qtStaticMetaObject, "staticMetaObject")
STATIC_STRING_IMPL(qtConnect, "connect")
STATIC_STRING_IMPL(qtDisconnect, "disconnect")
STATIC_STRING_IMPL(qtEmit, "emit")
STATIC_STRING_IMPL(dict_ring, "dict_ring")
+STATIC_STRING_IMPL(fset, "fset")
STATIC_STRING_IMPL(im_func, "im_func")
STATIC_STRING_IMPL(im_self, "im_self")
STATIC_STRING_IMPL(name, "name")
+STATIC_STRING_IMPL(orig_dict, "orig_dict")
+STATIC_STRING_IMPL(parameters, "parameters")
STATIC_STRING_IMPL(property, "property")
STATIC_STRING_IMPL(select_id, "select_id")
} // namespace PyName
-namespace PyMagicName
+namespace PySideMagicName
{
STATIC_STRING_IMPL(code, "__code__")
STATIC_STRING_IMPL(doc, "__doc__")
STATIC_STRING_IMPL(func, "__func__")
STATIC_STRING_IMPL(name, "__name__")
STATIC_STRING_IMPL(property_methods, "__property_methods__")
+STATIC_STRING_IMPL(slot_list_attr, "_slots")
} // namespace PyMagicName
} // namespace PySide
diff --git a/sources/pyside6/libpyside/pysidestaticstrings.h b/sources/pyside6/libpyside/pysidestaticstrings.h
index 86e2515dc..b4bc61800 100644
--- a/sources/pyside6/libpyside/pysidestaticstrings.h
+++ b/sources/pyside6/libpyside/pysidestaticstrings.h
@@ -1,69 +1,37 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef PYSIDESTRINGS_H
#define PYSIDESTRINGS_H
#include <sbkpython.h>
+#include <pysidemacros.h>
namespace PySide
{
-namespace PyName
+namespace PySideName
{
-PyObject *qtStaticMetaObject();
-PyObject *qtConnect();
-PyObject *qtDisconnect();
-PyObject *qtEmit();
-PyObject *dict_ring();
-PyObject *im_func();
-PyObject *im_self();
-PyObject *name();
-PyObject *property();
-PyObject *select_id();
+PYSIDE_API PyObject *qtConnect();
+PYSIDE_API PyObject *qtDisconnect();
+PYSIDE_API PyObject *qtEmit();
+PYSIDE_API PyObject *dict_ring();
+PYSIDE_API PyObject *fset();
+PYSIDE_API PyObject *im_func();
+PYSIDE_API PyObject *im_self();
+PYSIDE_API PyObject *name();
+PYSIDE_API PyObject *orig_dict();
+PYSIDE_API PyObject *parameters();
+PYSIDE_API PyObject *property();
+PYSIDE_API PyObject *select_id();
} // namespace PyName
-namespace PyMagicName
+namespace PySideMagicName
{
-PyObject *code();
-PyObject *doc();
-PyObject *func();
-PyObject *name();
-PyObject *property_methods();
+PYSIDE_API PyObject *code();
+PYSIDE_API PyObject *doc();
+PYSIDE_API PyObject *func();
+PYSIDE_API PyObject *name();
+PYSIDE_API PyObject *property_methods();
+PYSIDE_API PyObject *slot_list_attr();
} // namespace PyMagicName
} // namespace PySide
diff --git a/sources/pyside6/libpyside/pysideutils.h b/sources/pyside6/libpyside/pysideutils.h
new file mode 100644
index 000000000..47c2f2c1b
--- /dev/null
+++ b/sources/pyside6/libpyside/pysideutils.h
@@ -0,0 +1,69 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef PYSIDEUTILS_H
+#define PYSIDEUTILS_H
+
+#include <sbkpython.h>
+
+#include <pysidemacros.h>
+
+#include <QtCore/qtclasshelpermacros.h>
+
+QT_FORWARD_DECLARE_CLASS(QDebug)
+QT_FORWARD_DECLARE_CLASS(QString)
+QT_FORWARD_DECLARE_CLASS(QStringView)
+
+namespace PySide
+{
+
+/// Check if self inherits from class_name
+/// \param self Python object
+/// \param class_name strict with the class name
+/// \return Returns true if self object inherits from class_name, otherwise returns false
+PYSIDE_API bool inherits(PyTypeObject *self, const char *class_name);
+
+/// Given A PyObject representing Unicode data, returns an equivalent QString.
+PYSIDE_API QString pyUnicodeToQString(PyObject *str);
+
+/// Given a QString, return the PyObject repeesenting Unicode data.
+PYSIDE_API PyObject *qStringToPyUnicode(QStringView s);
+
+/// Given A PyObject representing ASCII or Unicode data, returns an equivalent QString.
+PYSIDE_API QString pyStringToQString(PyObject *str);
+
+/// Provide an efficient, correct PathLike interface.
+PYSIDE_API QString pyPathToQString(PyObject *path);
+
+PYSIDE_API bool isCompiledMethod(PyObject *callback);
+
+struct debugPyTypeObject
+{
+ PYSIDE_API explicit debugPyTypeObject(const PyTypeObject *o) noexcept;
+
+ const PyTypeObject *m_object;
+};
+
+PYSIDE_API QDebug operator<<(QDebug debug, const debugPyTypeObject &o);
+
+struct debugPyObject
+{
+ PYSIDE_API explicit debugPyObject(PyObject *o) noexcept;
+
+ PyObject *m_object;
+};
+
+PYSIDE_API QDebug operator<<(QDebug debug, const debugPyObject &o);
+
+struct debugPyBuffer
+{
+ PYSIDE_API explicit debugPyBuffer(Py_buffer *b) noexcept;
+
+ Py_buffer *m_buffer;
+};
+
+PYSIDE_API QDebug operator<<(QDebug debug, const debugPyBuffer &b);
+
+} //namespace PySide
+
+#endif // PYSIDESTRING_H
diff --git a/sources/pyside6/libpyside/pysideweakref.cpp b/sources/pyside6/libpyside/pysideweakref.cpp
index ef34826f2..5f3ca59e4 100644
--- a/sources/pyside6/libpyside/pysideweakref.cpp
+++ b/sources/pyside6/libpyside/pysideweakref.cpp
@@ -1,73 +1,42 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include "pysideweakref.h"
#include <sbkpython.h>
#include <shiboken.h>
-typedef struct {
+struct PySideCallableObject {
PyObject_HEAD
/* Type-specific fields go here. */
PySideWeakRefFunction weakref_func;
void *user_data;
-} PySideCallableObject;
+};
static PyObject *CallableObject_call(PyObject *callable_object, PyObject *args, PyObject *kw);
-static PyType_Slot PySideCallableObjectType_slots[] = {
- {Py_tp_call, reinterpret_cast<void *>(CallableObject_call)},
- {Py_tp_dealloc, reinterpret_cast<void *>(Sbk_object_dealloc)},
- {0, nullptr}
-};
-static PyType_Spec PySideCallableObjectType_spec = {
- "1:PySide.Callable",
- sizeof(PySideCallableObject),
- 0,
- Py_TPFLAGS_DEFAULT,
- PySideCallableObjectType_slots,
-};
-
+static PyTypeObject *createCallableObjectType()
+{
+ PyType_Slot PySideCallableObjectType_slots[] = {
+ {Py_tp_call, reinterpret_cast<void *>(CallableObject_call)},
+ {Py_tp_dealloc, reinterpret_cast<void *>(Sbk_object_dealloc)},
+ {0, nullptr}
+ };
+
+ PyType_Spec PySideCallableObjectType_spec = {
+ "1:PySide.Callable",
+ sizeof(PySideCallableObject),
+ 0,
+ Py_TPFLAGS_DEFAULT,
+ PySideCallableObjectType_slots,
+ };
+
+ return SbkType_FromSpec(&PySideCallableObjectType_spec);
+}
-static PyTypeObject *PySideCallableObjectTypeF()
+static PyTypeObject *PySideCallableObject_TypeF()
{
- static auto *type = SbkType_FromSpec(&PySideCallableObjectType_spec);
+ static auto *type = createCallableObjectType();
return type;
}
@@ -80,19 +49,21 @@ static PyObject *CallableObject_call(PyObject *callable_object, PyObject *args,
Py_RETURN_NONE;
}
-namespace PySide { namespace WeakRef {
+namespace PySide::WeakRef {
PyObject *create(PyObject *obj, PySideWeakRefFunction func, void *userData)
{
if (obj == Py_None)
return nullptr;
- if (Py_TYPE(PySideCallableObjectTypeF()) == nullptr) {
- Py_TYPE(PySideCallableObjectTypeF()) = &PyType_Type;
- PyType_Ready(PySideCallableObjectTypeF());
+ auto *callableObject_Type = PySideCallableObject_TypeF();
+ auto *callableObject_PyObject = reinterpret_cast<PyObject *>(callableObject_Type);
+ if (callableObject_PyObject->ob_type == nullptr) {
+ callableObject_PyObject->ob_type = &PyType_Type;
+ PyType_Ready(callableObject_Type);
}
- PyTypeObject *type = PySideCallableObjectTypeF();
+ PyTypeObject *type = PySideCallableObject_TypeF();
PySideCallableObject *callable = PyObject_New(PySideCallableObject, type);
if (!callable || PyErr_Occurred())
return nullptr;
@@ -108,5 +79,4 @@ PyObject *create(PyObject *obj, PySideWeakRefFunction func, void *userData)
return reinterpret_cast<PyObject *>(weak);
}
-} } //namespace
-
+} // namespace PySide::WeakRef
diff --git a/sources/pyside6/libpyside/pysideweakref.h b/sources/pyside6/libpyside/pysideweakref.h
index 628c1eda4..e29c73455 100644
--- a/sources/pyside6/libpyside/pysideweakref.h
+++ b/sources/pyside6/libpyside/pysideweakref.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef __PYSIDEWEAKREF__
#define __PYSIDEWEAKREF__
@@ -43,14 +7,12 @@
#include <pysidemacros.h>
#include <sbkpython.h>
-typedef void (*PySideWeakRefFunction)(void* userData);
+using PySideWeakRefFunction = void (*)(void *userData);
-namespace PySide { namespace WeakRef {
+namespace PySide::WeakRef {
PYSIDE_API PyObject* create(PyObject* ob, PySideWeakRefFunction func, void* userData);
-} //PySide
-} //WeakRef
-
+} // namespace PySide::WeakRef
#endif
diff --git a/sources/pyside6/libpyside/qobjectconnect.cpp b/sources/pyside6/libpyside/qobjectconnect.cpp
new file mode 100644
index 000000000..3c5b75953
--- /dev/null
+++ b/sources/pyside6/libpyside/qobjectconnect.cpp
@@ -0,0 +1,336 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#include "qobjectconnect.h"
+#include "pysideqobject.h"
+#include "pysideqslotobject_p.h"
+#include "pysidesignal.h"
+#include "pysideutils.h"
+#include "signalmanager.h"
+
+#include "shiboken.h"
+#include "basewrapper.h"
+#include "autodecref.h"
+
+#include <QtCore/QDebug>
+#include <QtCore/QMetaMethod>
+#include <QtCore/QObject>
+
+#include <QtCore/private/qobject_p.h>
+
+#include <string_view>
+
+static bool isMethodDecorator(PyObject *method, bool is_pymethod, PyObject *self)
+{
+ Shiboken::AutoDecRef methodName(PyObject_GetAttr(method, Shiboken::PyMagicName::name()));
+ if (!PyObject_HasAttr(self, methodName))
+ return true;
+ Shiboken::AutoDecRef otherMethod(PyObject_GetAttr(self, methodName));
+
+ // PYSIDE-1523: Each could be a compiled method or a normal method here, for the
+ // compiled ones we can use the attributes.
+ PyObject *function1;
+ if (PyMethod_Check(otherMethod.object())) {
+ function1 = PyMethod_GET_FUNCTION(otherMethod.object());
+ } else {
+ function1 = PyObject_GetAttr(otherMethod.object(), Shiboken::PyName::im_func());
+ if (function1 == nullptr)
+ return false;
+ Py_DECREF(function1);
+ // Not retaining a reference in line with what PyMethod_GET_FUNCTION does.
+ }
+
+ PyObject *function2;
+ if (is_pymethod) {
+ function2 = PyMethod_GET_FUNCTION(method);
+ } else {
+ function2 = PyObject_GetAttr(method, Shiboken::PyName::im_func());
+ Py_DECREF(function2);
+ // Not retaining a reference in line with what PyMethod_GET_FUNCTION does.
+ }
+
+ return function1 != function2;
+}
+
+struct GetReceiverResult
+{
+ QObject *receiver = nullptr;
+ PyObject *self = nullptr;
+ QByteArray callbackSig;
+ bool usingGlobalReceiver = false;
+ int slotIndex = -1;
+};
+
+#ifndef QT_NO_DEBUG_STREAM
+QDebug operator<<(QDebug d, const GetReceiverResult &r)
+{
+ QDebugStateSaver saver(d);
+ d.noquote();
+ d.nospace();
+ d << "GetReceiverResult(receiver=" << r.receiver << ", self=" << r.self
+ << ", sig=\"" << r.callbackSig << "\", slotIndex=" << r.slotIndex
+ << ", usingGlobalReceiver=" << r.usingGlobalReceiver << ')';
+ return d;
+}
+#endif // QT_NO_DEBUG_STREAM
+
+static const char *getQualifiedName(PyObject *ob)
+{
+ Shiboken::AutoDecRef qualNameP(PyObject_GetAttr(ob, Shiboken::PyMagicName::qualname()));
+ return qualNameP.isNull()
+ ? nullptr : Shiboken::String::toCString(qualNameP.object());
+}
+
+// Determine whether a method is declared in a class using qualified name lookup.
+static bool isDeclaredIn(PyObject *method, const char *className)
+{
+ bool result = false;
+ if (auto *qualifiedNameC = getQualifiedName(PyMethod_Function(method))) {
+ std::string_view qualifiedName(qualifiedNameC);
+ if (const auto dot = qualifiedName.rfind('.'); dot != std::string::npos)
+ result = qualifiedName.substr(0, dot) == className;
+ }
+ return result;
+}
+
+static GetReceiverResult getReceiver(QObject *source, const char *signal,
+ PyObject *callback)
+{
+ GetReceiverResult result;
+
+ bool forceGlobalReceiver = false;
+ if (PyMethod_Check(callback)) {
+ result.self = PyMethod_GET_SELF(callback);
+ result.receiver = PySide::convertToQObject(result.self, false);
+ forceGlobalReceiver = isMethodDecorator(callback, true, result.self);
+#ifdef PYPY_VERSION
+ } else if (Py_TYPE(callback) == PepBuiltinMethod_TypePtr) {
+ result.self = PyObject_GetAttrString(callback, "__self__");
+ Py_DECREF(result.self);
+ result.receiver = PySide::convertToQObject(result.self, false);
+#endif
+ } else if (PyCFunction_Check(callback)) {
+ result.self = PyCFunction_GET_SELF(callback);
+ result.receiver = PySide::convertToQObject(result.self, false);
+ } else if (PySide::isCompiledMethod(callback)) {
+ result.self = PyObject_GetAttr(callback, Shiboken::PyName::im_self());
+ Py_DECREF(result.self);
+ result.receiver = PySide::convertToQObject(result.self, false);
+ forceGlobalReceiver = isMethodDecorator(callback, false, result.self);
+ } else if (PyCallable_Check(callback)) {
+ // Ok, just a callable object
+ result.receiver = nullptr;
+ result.self = nullptr;
+ }
+
+ result.usingGlobalReceiver = !result.receiver || forceGlobalReceiver;
+
+ // Check if this callback is a overwrite of a non-virtual Qt slot (pre-Jira bug 1019).
+ // Make it possible to connect to a MyWidget.show() although QWidget.show()
+ // is a non-virtual slot which would be found by QMetaObject search.
+ // FIXME PYSIDE7: This is arguably a bit of a misguided "feature", remove?
+ if (!result.usingGlobalReceiver && result.receiver && result.self) {
+ result.callbackSig =
+ PySide::Signal::getCallbackSignature(signal, result.receiver, callback,
+ result.usingGlobalReceiver);
+ const QMetaObject *metaObject = result.receiver->metaObject();
+ result.slotIndex = metaObject->indexOfSlot(result.callbackSig.constData());
+ if (PyMethod_Check(callback) != 0 && result.slotIndex != -1
+ && result.slotIndex < metaObject->methodOffset()) {
+ // Find the class in which the slot is declared.
+ while (result.slotIndex < metaObject->methodOffset())
+ metaObject = metaObject->superClass();
+ // If the Python callback is not declared in the same class, assume it is
+ // a Python override. Resort to global receiver (PYSIDE-2418).
+ if (!isDeclaredIn(callback, metaObject->className()))
+ result.usingGlobalReceiver = true;
+ }
+ }
+
+ const auto receiverThread = result.receiver ? result.receiver->thread() : nullptr;
+
+ if (result.usingGlobalReceiver) {
+ PySide::SignalManager &signalManager = PySide::SignalManager::instance();
+ result.receiver = signalManager.globalReceiver(source, callback, result.receiver);
+ // PYSIDE-1354: Move the global receiver to the original receivers's thread
+ // so that autoconnections work correctly.
+ if (receiverThread && receiverThread != result.receiver->thread())
+ result.receiver->moveToThread(receiverThread);
+ result.callbackSig =
+ PySide::Signal::getCallbackSignature(signal, result.receiver, callback,
+ result.usingGlobalReceiver);
+ const QMetaObject *metaObject = result.receiver->metaObject();
+ result.slotIndex = metaObject->indexOfSlot(result.callbackSig.constData());
+ }
+
+ return result;
+}
+
+namespace PySide
+{
+class FriendlyQObject : public QObject // Make protected connectNotify() accessible.
+{
+public:
+ using QObject::connectNotify;
+ using QObject::disconnectNotify;
+};
+
+QMetaObject::Connection qobjectConnect(QObject *source, const char *signal,
+ QObject *receiver, const char *slot,
+ Qt::ConnectionType type)
+{
+ if (!signal || !slot || !PySide::Signal::checkQtSignal(signal))
+ return {};
+
+ if (!PySide::SignalManager::registerMetaMethod(source, signal + 1, QMetaMethod::Signal))
+ return {};
+
+ const auto methodType = PySide::Signal::isQtSignal(slot)
+ ? QMetaMethod::Signal : QMetaMethod::Slot;
+ PySide::SignalManager::registerMetaMethod(receiver, slot + 1, methodType);
+ return QObject::connect(source, signal, receiver, slot, type);
+}
+
+QMetaObject::Connection qobjectConnect(QObject *source, QMetaMethod signal,
+ QObject *receiver, QMetaMethod slot,
+ Qt::ConnectionType type)
+{
+ return qobjectConnect(source, signal.methodSignature().constData(),
+ receiver, slot.methodSignature().constData(), type);
+}
+
+QMetaObject::Connection qobjectConnectCallback(QObject *source, const char *signal,
+ PyObject *callback, Qt::ConnectionType type)
+{
+ if (!signal || !PySide::Signal::checkQtSignal(signal))
+ return {};
+
+ const int signalIndex =
+ PySide::SignalManager::registerMetaMethodGetIndex(source, signal + 1,
+ QMetaMethod::Signal);
+ if (signalIndex == -1)
+ return {};
+
+ // Extract receiver from callback
+ const GetReceiverResult receiver = getReceiver(source, signal + 1, callback);
+ if (receiver.receiver == nullptr && receiver.self == nullptr)
+ return {};
+
+ int slotIndex = receiver.slotIndex;
+
+ PySide::SignalManager &signalManager = PySide::SignalManager::instance();
+ if (slotIndex == -1) {
+ if (!receiver.usingGlobalReceiver && receiver.self
+ && !Shiboken::Object::hasCppWrapper(reinterpret_cast<SbkObject *>(receiver.self))) {
+ qWarning("You can't add dynamic slots on an object originated from C++.");
+ if (receiver.usingGlobalReceiver)
+ signalManager.releaseGlobalReceiver(source, receiver.receiver);
+
+ return {};
+ }
+
+ const char *slotSignature = receiver.callbackSig.constData();
+ slotIndex = receiver.usingGlobalReceiver
+ ? signalManager.globalReceiverSlotIndex(receiver.receiver, slotSignature)
+ : PySide::SignalManager::registerMetaMethodGetIndex(receiver.receiver, slotSignature,
+ QMetaMethod::Slot);
+
+ if (slotIndex == -1) {
+ if (receiver.usingGlobalReceiver)
+ signalManager.releaseGlobalReceiver(source, receiver.receiver);
+
+ return {};
+ }
+ }
+
+ QMetaObject::Connection connection{};
+ Py_BEGIN_ALLOW_THREADS // PYSIDE-2367, prevent threading deadlocks with connectNotify()
+ connection = QMetaObject::connect(source, signalIndex, receiver.receiver, slotIndex, type);
+ Py_END_ALLOW_THREADS
+ if (!connection) {
+ if (receiver.usingGlobalReceiver)
+ signalManager.releaseGlobalReceiver(source, receiver.receiver);
+ return {};
+ }
+
+ Q_ASSERT(receiver.receiver);
+ if (receiver.usingGlobalReceiver)
+ signalManager.notifyGlobalReceiver(receiver.receiver);
+
+ const QMetaMethod signalMethod = receiver.receiver->metaObject()->method(signalIndex);
+ static_cast<FriendlyQObject *>(source)->connectNotify(signalMethod);
+ return connection;
+}
+
+QMetaObject::Connection qobjectConnectCallback(QObject *source, const char *signal, QObject *context,
+ PyObject *callback, Qt::ConnectionType type)
+{
+ if (!signal || !PySide::Signal::checkQtSignal(signal))
+ return {};
+
+ const int signalIndex =
+ PySide::SignalManager::registerMetaMethodGetIndex(source, signal + 1,
+ QMetaMethod::Signal);
+ if (signalIndex == -1)
+ return {};
+
+ // Extract receiver from callback
+ const GetReceiverResult receiver = getReceiver(source, signal + 1, callback);
+ if (receiver.receiver == nullptr && receiver.self == nullptr)
+ return {};
+
+ PySide::SignalManager &signalManager = PySide::SignalManager::instance();
+
+ PySideQSlotObject *slotObject = new PySideQSlotObject(callback);
+
+ QMetaObject::Connection connection{};
+ Py_BEGIN_ALLOW_THREADS // PYSIDE-2367, prevent threading deadlocks with connectNotify()
+ connection = QObjectPrivate::connect(source, signalIndex, context, slotObject, type);
+ Py_END_ALLOW_THREADS
+ if (!connection) {
+ if (receiver.usingGlobalReceiver)
+ signalManager.releaseGlobalReceiver(source, receiver.receiver);
+ return {};
+ }
+
+ Q_ASSERT(receiver.receiver);
+ if (receiver.usingGlobalReceiver)
+ signalManager.notifyGlobalReceiver(receiver.receiver);
+
+ const QMetaMethod signalMethod = receiver.receiver->metaObject()->method(signalIndex);
+ static_cast<FriendlyQObject *>(source)->connectNotify(signalMethod);
+ return connection;
+}
+
+bool qobjectDisconnectCallback(QObject *source, const char *signal, PyObject *callback)
+{
+ if (!PySide::Signal::checkQtSignal(signal))
+ return false;
+
+ // Extract receiver from callback
+ const GetReceiverResult receiver = getReceiver(nullptr, signal, callback);
+ if (receiver.receiver == nullptr && receiver.self == nullptr)
+ return false;
+
+ const int signalIndex = source->metaObject()->indexOfSignal(signal + 1);
+ const int slotIndex = receiver.slotIndex;
+
+ bool ok{};
+ Py_BEGIN_ALLOW_THREADS // PYSIDE-2367, prevent threading deadlocks with disconnectNotify()
+ ok = QMetaObject::disconnectOne(source, signalIndex, receiver.receiver, slotIndex);
+ Py_END_ALLOW_THREADS
+ if (!ok)
+ return false;
+
+ Q_ASSERT(receiver.receiver);
+ const QMetaMethod slotMethod = receiver.receiver->metaObject()->method(slotIndex);
+ static_cast<FriendlyQObject *>(source)->disconnectNotify(slotMethod);
+
+ if (receiver.usingGlobalReceiver) { // might delete the receiver
+ PySide::SignalManager &signalManager = PySide::SignalManager::instance();
+ signalManager.releaseGlobalReceiver(source, receiver.receiver);
+ }
+ return true;
+}
+
+} // namespace PySide
diff --git a/sources/pyside6/libpyside/qobjectconnect.h b/sources/pyside6/libpyside/qobjectconnect.h
new file mode 100644
index 000000000..c99b8006e
--- /dev/null
+++ b/sources/pyside6/libpyside/qobjectconnect.h
@@ -0,0 +1,47 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef QOBJECTCONNECT_H
+#define QOBJECTCONNECT_H
+
+#include "pysidemacros.h"
+
+#include <sbkpython.h>
+
+#include <QtCore/QMetaObject>
+
+QT_FORWARD_DECLARE_CLASS(QObject)
+QT_FORWARD_DECLARE_CLASS(QMetaMethod)
+
+namespace PySide
+{
+
+/// Helpers for QObject::connect(): Make a string-based connection
+PYSIDE_API QMetaObject::Connection
+ qobjectConnect(QObject *source, const char *signal,
+ QObject *receiver, const char *slot,
+ Qt::ConnectionType type);
+
+/// Helpers for QObject::connect(): Make a connection based on QMetaMethod
+PYSIDE_API QMetaObject::Connection
+ qobjectConnect(QObject *source, QMetaMethod signal,
+ QObject *receiver, QMetaMethod slot,
+ Qt::ConnectionType type);
+
+/// Helpers for QObject::connect(): Make a connection to a Python callback
+PYSIDE_API QMetaObject::Connection
+ qobjectConnectCallback(QObject *source, const char *signal,
+ PyObject *callback, Qt::ConnectionType type);
+
+/// Helpers for QObject::connect(): Make a connection to a Python callback and a context object
+PYSIDE_API QMetaObject::Connection
+ qobjectConnectCallback(QObject *source, const char *signal, QObject *context,
+ PyObject *callback, Qt::ConnectionType type);
+
+/// Helpers for QObject::disconnect(): Disconnect a Python callback
+PYSIDE_API bool qobjectDisconnectCallback(QObject *source, const char *signal,
+ PyObject *callback);
+
+} // namespace PySide
+
+#endif // QOBJECTCONNECT_H
diff --git a/sources/pyside6/libpyside/signalmanager.cpp b/sources/pyside6/libpyside/signalmanager.cpp
index 26f80dff4..557f130e0 100644
--- a/sources/pyside6/libpyside/signalmanager.cpp
+++ b/sources/pyside6/libpyside/signalmanager.cpp
@@ -1,51 +1,16 @@
-// -*- mode: cpp;-*-
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include "signalmanager.h"
#include "pysidesignal.h"
+#include "pysidelogging_p.h"
#include "pysideproperty.h"
#include "pysideproperty_p.h"
-#include "pyside.h"
+#include "pysidecleanup.h"
#include "pyside_p.h"
#include "dynamicqmetaobject.h"
#include "pysidemetafunction_p.h"
+#include "pysidestaticstrings.h"
#include <autodecref.h>
#include <basewrapper.h>
@@ -54,19 +19,20 @@
#include <sbkconverter.h>
#include <sbkstring.h>
#include <sbkstaticstrings.h>
+#include <sbkerrors.h>
+#include <QtCore/QCoreApplication>
+#include <QtCore/QByteArrayView>
#include <QtCore/QDebug>
#include <QtCore/QHash>
+#include <QtCore/QScopedPointer>
+#include <QtCore/QTimerEvent>
#include <algorithm>
#include <limits>
+#include <memory>
-// These private headers are needed to throw JavaScript exceptions
-#if PYSIDE_QML_PRIVATE_API_SUPPORT
- #include <private/qv4engine_p.h>
- #include <private/qv4context_p.h>
- #include <private/qqmldata_p.h>
-#endif
+using namespace Qt::StringLiterals;
#if QSLOT_CODE != 1 || QSIGNAL_CODE != 2
#error QSLOT_CODE and/or QSIGNAL_CODE changed! change the hardcoded stuff to the correct value!
@@ -75,26 +41,64 @@
#define PYSIDE_SIGNAL '2'
#include "globalreceiverv2.h"
-namespace {
- static PyObject *metaObjectAttr = nullptr;
-
- static int callMethod(QObject *object, int id, void **args);
- static PyObject *parseArguments(const QList< QByteArray >& paramTypes, void **args);
- static bool emitShortCircuitSignal(QObject *source, int signalIndex, PyObject *args);
-
- static void destroyMetaObject(PyObject *obj)
- {
- void *ptr = PyCapsule_GetPointer(obj, nullptr);
- auto meta = reinterpret_cast<PySide::MetaObjectBuilder *>(ptr);
- SbkObject *wrapper = Shiboken::BindingManager::instance().retrieveWrapper(meta);
- if (wrapper)
- Shiboken::BindingManager::instance().releaseWrapper(wrapper);
- delete meta;
+static PyObject *metaObjectAttr = nullptr;
+static PyObject *parseArguments(const QMetaMethod &method, void **args);
+static bool emitShortCircuitSignal(QObject *source, int signalIndex, PyObject *args);
+
+static bool qAppRunning = false;
+
+static void destroyMetaObject(PyObject *obj)
+{
+ void *ptr = PyCapsule_GetPointer(obj, nullptr);
+ auto meta = reinterpret_cast<PySide::MetaObjectBuilder *>(ptr);
+ SbkObject *wrapper = Shiboken::BindingManager::instance().retrieveWrapper(meta);
+ if (wrapper)
+ Shiboken::BindingManager::instance().releaseWrapper(wrapper);
+ delete meta;
+}
+
+static const char *metaCallName(QMetaObject::Call call)
+{
+ static const QHash<QMetaObject::Call, const char *> mapping = {
+ {QMetaObject::InvokeMetaMethod, "InvokeMetaMethod"},
+ {QMetaObject::ReadProperty, "ReadProperty"},
+ {QMetaObject::WriteProperty, "WriteProperty"},
+ {QMetaObject::ResetProperty, "ResetProperty"},
+ {QMetaObject::CreateInstance, "CreateInstance"},
+ {QMetaObject::IndexOfMethod, "IndexOfMethod"},
+ {QMetaObject::RegisterPropertyMetaType, "RegisterPropertyMetaType"},
+ {QMetaObject::RegisterMethodArgumentMetaType, "RegisterMethodArgumentMetaType"},
+ {QMetaObject::BindableProperty, "BindableProperty"},
+ {QMetaObject::CustomCall, "CustomCall"}
+ };
+ auto it = mapping.constFind(call);
+ return it != mapping.constEnd() ? it.value() : "<Unknown>";
+}
+
+static QByteArray methodSignature(const QMetaMethod &method)
+{
+ QByteArray result;
+ if (auto *t = method.typeName()) {
+ result += t;
+ result += ' ';
}
+ result += method.methodSignature();
+ return result;
}
-namespace PySide {
+static QByteArray msgCannotConvertParameter(const QMetaMethod &method, qsizetype p)
+{
+ return "Cannot call meta function \""_ba + methodSignature(method)
+ + "\" because parameter " + QByteArray::number(p) + " of type \""_ba
+ + method.parameterTypeName(p) + "\" cannot be converted."_ba;
+}
+
+static QByteArray msgCannotConvertReturn(const QMetaMethod &method)
+{
+ return "The return value of \""_ba + methodSignature(method) + "\" cannot be converted."_ba;
+}
+namespace PySide {
PyObjectWrapper::PyObjectWrapper()
:m_me(Py_None)
@@ -151,6 +155,14 @@ PyObjectWrapper::operator PyObject *() const
return m_me;
}
+
+int PyObjectWrapper::toInt() const
+{
+ // hold the GIL
+ Shiboken::GilState state;
+ return Shiboken::Enum::check(m_me) ? Shiboken::Enum::getValue(m_me) : -1;
+}
+
QDataStream &operator<<(QDataStream &out, const PyObjectWrapper &myObj)
{
if (Py_IsInitialized() == 0) {
@@ -210,29 +222,71 @@ QDataStream &operator>>(QDataStream &in, PyObjectWrapper &myObj)
};
+namespace PySide {
+using GlobalReceiverV2Ptr = std::shared_ptr<GlobalReceiverV2>;
+using GlobalReceiverV2Map = QHash<PySide::GlobalReceiverKey, GlobalReceiverV2Ptr>;
+}
+
using namespace PySide;
-struct SignalManager::SignalManagerPrivate
+// Listen for destroy() of main thread objects and ensure cleanup
+class SignalManagerDestroyListener : public QObject
{
- GlobalReceiverV2MapPtr m_globalReceivers;
+ Q_OBJECT
+public:
+ Q_DISABLE_COPY_MOVE(SignalManagerDestroyListener)
- SignalManagerPrivate() : m_globalReceivers(new GlobalReceiverV2Map{})
- {
- }
+ using QObject::QObject;
- ~SignalManagerPrivate()
- {
- if (!m_globalReceivers.isNull()) {
- // Delete receivers by always retrieving the current first element, because deleting a
- // receiver can indirectly delete another one, and if we use qDeleteAll, that could
- // cause either a double delete, or iterator invalidation, and thus undefined behavior.
- while (!m_globalReceivers->isEmpty())
- delete *m_globalReceivers->cbegin();
- Q_ASSERT(m_globalReceivers->isEmpty());
- }
+public Q_SLOTS:
+ void destroyNotify(const QObject *);
+
+protected:
+ void timerEvent(QTimerEvent *event) override;
+
+private:
+ int m_timerId = -1;
+};
+
+void SignalManagerDestroyListener::destroyNotify(const QObject *)
+{
+ if (qAppRunning && m_timerId == -1)
+ m_timerId = startTimer(0);
+}
+
+void SignalManagerDestroyListener::timerEvent(QTimerEvent *event)
+{
+ if (event->timerId() == m_timerId) {
+ killTimer(std::exchange(m_timerId, -1));
+ SignalManager::instance().purgeEmptyGlobalReceivers();
}
+}
+
+struct SignalManager::SignalManagerPrivate
+{
+ Q_DISABLE_COPY_MOVE(SignalManagerPrivate)
+
+ SignalManagerPrivate() noexcept = default;
+ ~SignalManagerPrivate() { clear(); }
+
+ void deleteGlobalReceiver(const QObject *gr);
+ void clear();
+ void purgeEmptyGlobalReceivers();
+
+ GlobalReceiverV2Map m_globalReceivers;
+ static SignalManager::QmlMetaCallErrorHandler m_qmlMetaCallErrorHandler;
+
+ static void handleMetaCallError(QObject *object, int *result);
+ static int qtPropertyMetacall(QObject *object, QMetaObject::Call call,
+ int id, void **args);
+ static int qtMethodMetacall(QObject *object, int id, void **args);
+
+ QPointer<SignalManagerDestroyListener> m_listener;
};
+SignalManager::QmlMetaCallErrorHandler
+ SignalManager::SignalManagerPrivate::m_qmlMetaCallErrorHandler = nullptr;
+
static void clearSignalManager()
{
PySide::SignalManager::instance().clear();
@@ -242,7 +296,7 @@ static void PyObject_PythonToCpp_PyObject_PTR(PyObject *pyIn, void *cppOut)
{
*reinterpret_cast<PyObject **>(cppOut) = pyIn;
}
-static PythonToCppFunc is_PyObject_PythonToCpp_PyObject_PTR_Convertible(PyObject *pyIn)
+static PythonToCppFunc is_PyObject_PythonToCpp_PyObject_PTR_Convertible(PyObject * /* pyIn */)
{
return PyObject_PythonToCpp_PyObject_PTR;
}
@@ -261,6 +315,8 @@ SignalManager::SignalManager() : m_d(new SignalManagerPrivate)
// Register PyObject type to use in queued signal and slot connections
qRegisterMetaType<PyObjectWrapper>("PyObject");
+ // Register QVariant(enum) conversion to QVariant(int)
+ QMetaType::registerConverter<PyObjectWrapper, int>(&PyObjectWrapper::toInt);
SbkConverter *converter = Shiboken::Conversions::createConverter(&PyBaseObject_Type, nullptr);
Shiboken::Conversions::setCppPointerToPythonFunction(converter, PyObject_PTR_CppToPython_PyObject);
@@ -278,8 +334,7 @@ SignalManager::SignalManager() : m_d(new SignalManagerPrivate)
void SignalManager::clear()
{
- delete m_d;
- m_d = new SignalManagerPrivate();
+ m_d->clear();
}
SignalManager::~SignalManager()
@@ -293,52 +348,123 @@ SignalManager &SignalManager::instance()
return me;
}
-QObject *SignalManager::globalReceiver(QObject *sender, PyObject *callback)
+void SignalManager::setQmlMetaCallErrorHandler(QmlMetaCallErrorHandler handler)
+{
+ SignalManagerPrivate::m_qmlMetaCallErrorHandler = handler;
+}
+
+static void qAppAboutToQuit()
+{
+ qAppRunning = false;
+ SignalManager::instance().purgeEmptyGlobalReceivers();
+}
+
+static bool isInMainThread(const QObject *o)
+{
+ if (o->isWidgetType() || o->isWindowType() || o->isQuickItemType())
+ return true;
+ auto *app = QCoreApplication::instance();
+ return app != nullptr && app->thread() == o->thread();
+}
+
+QObject *SignalManager::globalReceiver(QObject *sender, PyObject *callback, QObject *receiver)
{
- GlobalReceiverV2MapPtr globalReceivers = m_d->m_globalReceivers;
- GlobalReceiverKey key = GlobalReceiverV2::key(callback);
- GlobalReceiverV2 *gr = nullptr;
- auto it = globalReceivers->find(key);
- if (it == globalReceivers->end()) {
- gr = new GlobalReceiverV2(callback, globalReceivers);
- globalReceivers->insert(key, gr);
- if (sender) {
- gr->incRef(sender); // create a link reference
- gr->decRef(); // remove extra reference
+ if (m_d->m_listener.isNull() && !QCoreApplication::closingDown()) {
+ if (auto *app = QCoreApplication::instance()) {
+ // The signal manager potentially outlives QCoreApplication, ensure deletion
+ m_d->m_listener = new SignalManagerDestroyListener(app);
+ m_d->m_listener->setObjectName("qt_pyside_signalmanagerdestroylistener");
+ QObject::connect(app, &QCoreApplication::aboutToQuit, qAppAboutToQuit);
+ qAppRunning = true;
}
- } else {
- gr = it.value();
- if (sender)
- gr->incRef(sender);
}
- return reinterpret_cast<QObject *>(gr);
+ auto &globalReceivers = m_d->m_globalReceivers;
+ const GlobalReceiverKey key = GlobalReceiverV2::key(callback);
+ auto it = globalReceivers.find(key);
+ if (it == globalReceivers.end()) {
+ auto gr = std::make_shared<GlobalReceiverV2>(callback, receiver);
+ it = globalReceivers.insert(key, gr);
+ }
+
+ if (sender != nullptr) {
+ it.value()->incRef(sender); // create a link reference
+
+ // For main thread-objects, add a notification for destroy (PYSIDE-2646, 2141)
+ if (qAppRunning && !m_d->m_listener.isNull() && isInMainThread(sender)) {
+ QObject::connect(sender, &QObject::destroyed,
+ m_d->m_listener, &SignalManagerDestroyListener::destroyNotify,
+ Qt::UniqueConnection);
+ }
+ }
+
+ return it.value().get();
}
-int SignalManager::countConnectionsWith(const QObject *object)
+void SignalManager::purgeEmptyGlobalReceivers()
{
- int count = 0;
- for (GlobalReceiverV2Map::const_iterator it = m_d->m_globalReceivers->cbegin(), end = m_d->m_globalReceivers->cend(); it != end; ++it) {
- if (it.value()->refCount(object))
- count++;
- }
- return count;
+ m_d->purgeEmptyGlobalReceivers();
}
void SignalManager::notifyGlobalReceiver(QObject *receiver)
{
reinterpret_cast<GlobalReceiverV2 *>(receiver)->notify();
+ purgeEmptyGlobalReceivers();
}
void SignalManager::releaseGlobalReceiver(const QObject *source, QObject *receiver)
{
- auto gr = reinterpret_cast<GlobalReceiverV2 *>(receiver);
+ auto gr = static_cast<GlobalReceiverV2 *>(receiver);
gr->decRef(source);
+ if (gr->isEmpty())
+ m_d->deleteGlobalReceiver(gr);
+}
+
+void SignalManager::deleteGlobalReceiver(const QObject *gr)
+{
+ SignalManager::instance().m_d->deleteGlobalReceiver(gr);
+}
+
+void SignalManager::SignalManagerPrivate::deleteGlobalReceiver(const QObject *gr)
+{
+ for (auto it = m_globalReceivers.begin(), end = m_globalReceivers.end(); it != end; ++it) {
+ if (it.value().get() == gr) {
+ m_globalReceivers.erase(it);
+ break;
+ }
+ }
+}
+
+void SignalManager::SignalManagerPrivate::clear()
+{
+ // Delete receivers by always retrieving the current first element,
+ // because deleting a receiver can indirectly delete another one
+ // via ~DynamicSlotDataV2(). Using ~QHash/clear() could cause an
+ // iterator invalidation, and thus undefined behavior.
+ while (!m_globalReceivers.isEmpty())
+ m_globalReceivers.erase(m_globalReceivers.cbegin());
+}
+
+static bool isEmptyGlobalReceiver(const GlobalReceiverV2Ptr &g)
+{
+ return g->isEmpty();
+}
+
+void SignalManager::SignalManagerPrivate::purgeEmptyGlobalReceivers()
+{
+ // Delete repetitively (see comment in clear()).
+ while (true) {
+ auto it = std::find_if(m_globalReceivers.cbegin(), m_globalReceivers.cend(),
+ isEmptyGlobalReceiver);
+ if (it == m_globalReceivers.cend())
+ break;
+ m_globalReceivers.erase(it);
+ }
}
int SignalManager::globalReceiverSlotIndex(QObject *receiver, const char *signature) const
{
- return reinterpret_cast<GlobalReceiverV2 *>(receiver)->addSlot(signature);
+ return static_cast<GlobalReceiverV2 *>(receiver)->addSlot(signature);
}
bool SignalManager::emitSignal(QObject *source, const char *signal, PyObject *args)
@@ -360,112 +486,152 @@ bool SignalManager::emitSignal(QObject *source, const char *signal, PyObject *ar
return false;
}
-int SignalManager::qt_metacall(QObject *object, QMetaObject::Call call, int id, void **args)
+// Handle errors from meta calls. Requires GIL and PyErr_Occurred()
+void SignalManager::SignalManagerPrivate::handleMetaCallError(QObject *object, int *result)
+{
+ // Bubbles Python exceptions up to the Javascript engine, if called from one
+ if (m_qmlMetaCallErrorHandler) {
+ auto idOpt = m_qmlMetaCallErrorHandler(object);
+ if (idOpt.has_value())
+ *result = idOpt.value();
+ }
+
+ const int reclimit = Py_GetRecursionLimit();
+ // Inspired by Python's errors.c: PyErr_GivenExceptionMatches() function.
+ // Temporarily bump the recursion limit, so that PyErr_Print will not raise a recursion
+ // error again. Don't do it when the limit is already insanely high, to avoid overflow.
+ if (reclimit < (1 << 30))
+ Py_SetRecursionLimit(reclimit + 5);
+ PyErr_Print();
+ Py_SetRecursionLimit(reclimit);
+}
+
+// Handler for QMetaObject::ReadProperty/WriteProperty/ResetProperty:
+int SignalManager::SignalManagerPrivate::qtPropertyMetacall(QObject *object,
+ QMetaObject::Call call,
+ int id, void **args)
{
const QMetaObject *metaObject = object->metaObject();
- PySideProperty *pp = nullptr;
- PyObject *pp_name = nullptr;
- QMetaProperty mp;
- PyObject *pySelf = nullptr;
- int methodCount = metaObject->methodCount();
- int propertyCount = metaObject->propertyCount();
-
- if (call != QMetaObject::InvokeMetaMethod) {
- mp = metaObject->property(id);
- if (!mp.isValid()) {
- return id - methodCount;
- }
+ int result = id - metaObject->propertyCount();
+
+ const QMetaProperty mp = metaObject->property(id);
+
+ qCDebug(lcPySide).noquote().nospace() << __FUNCTION__
+ << ' ' << metaCallName(call) << " #" << id << ' ' << mp.typeName()
+ << "/\"" << mp.name() << "\" " << object;
- Shiboken::GilState gil;
- pySelf = reinterpret_cast<PyObject *>(Shiboken::BindingManager::instance().retrieveWrapper(object));
- Q_ASSERT(pySelf);
- pp_name = Shiboken::String::fromCString(mp.name());
- pp = Property::getObject(pySelf, pp_name);
- if (!pp) {
- qWarning("Invalid property: %s.", mp.name());
- Py_XDECREF(pp_name);
- return id - methodCount;
+ if (!mp.isValid())
+ return result;
+
+ Shiboken::GilState gil;
+ auto *pySbkSelf = Shiboken::BindingManager::instance().retrieveWrapper(object);
+ Q_ASSERT(pySbkSelf);
+ auto *pySelf = reinterpret_cast<PyObject *>(pySbkSelf);
+ Shiboken::AutoDecRef pp_name(Shiboken::String::fromCString(mp.name()));
+ PySideProperty *pp = Property::getObject(pySelf, pp_name);
+ if (!pp) {
+ qWarning("Invalid property: %s.", mp.name());
+ return false;
+ }
+ pp->d->metaCall(pySelf, call, args);
+ Py_DECREF(pp);
+ if (PyErr_Occurred()) {
+ // PYSIDE-2160: An unknown type was reported. Indicated by StopIteration.
+ if (PyErr_ExceptionMatches(PyExc_StopIteration)) {
+ PyObject *excType, *excValue, *excTraceback;
+ PyErr_Fetch(&excType, &excValue, &excTraceback);
+ bool ign = call == QMetaObject::WriteProperty;
+ PyErr_WarnFormat(PyExc_RuntimeWarning, 0,
+ ign ? "Unknown property type '%s' of QObject '%s' used in fset"
+ : "Unknown property type '%s' of QObject '%s' used in fget with %R",
+ pp->d->typeName.constData(), metaObject->className(), excValue);
+ if (PyErr_Occurred())
+ Shiboken::Errors::storeErrorOrPrint();
+ Py_DECREF(excType);
+ Py_DECREF(excValue);
+ Py_XDECREF(excTraceback);
+ return result;
}
+
+ qWarning().noquote().nospace()
+ << "An error occurred executing the property metacall " << call
+ << " on property \"" << mp.name() << "\" of " << object;
+ handleMetaCallError(object, &result);
}
+ return result;
+}
- switch(call) {
-#ifndef QT_NO_PROPERTIES
- case QMetaObject::ReadProperty:
- case QMetaObject::WriteProperty:
- case QMetaObject::ResetProperty:
- pp->d->metaCallHandler(pp, pySelf, call, args);
- break;
-#endif
- case QMetaObject::InvokeMetaMethod:
- id = callMethod(object, id, args);
- break;
+// Handler for QMetaObject::InvokeMetaMethod
+int SignalManager::SignalManagerPrivate::qtMethodMetacall(QObject *object,
+ int id, void **args)
+{
+ const QMetaObject *metaObject = object->metaObject();
+ const QMetaMethod method = metaObject->method(id);
+ int result = id - metaObject->methodCount();
- default:
- qWarning("Unsupported meta invocation type.");
- }
+ std::unique_ptr<Shiboken::GilState> gil;
- // WARNING Isn't safe to call any metaObject and/or object methods beyond this point
- // because the object can be deleted inside the called slot.
+ qCDebug(lcPySide).noquote().nospace() << __FUNCTION__ << " #" << id
+ << " \"" << method.methodSignature() << '"';
- if (call == QMetaObject::InvokeMetaMethod) {
- id = id - methodCount;
+ if (method.methodType() == QMetaMethod::Signal) {
+ // emit python signal
+ QMetaObject::activate(object, id, args);
} else {
- id = id - propertyCount;
+ gil.reset(new Shiboken::GilState);
+ auto *pySbkSelf = Shiboken::BindingManager::instance().retrieveWrapper(object);
+ Q_ASSERT(pySbkSelf);
+ auto *pySelf = reinterpret_cast<PyObject *>(pySbkSelf);
+ QByteArray methodName = method.methodSignature();
+ methodName.truncate(methodName.indexOf('('));
+ Shiboken::AutoDecRef pyMethod(PyObject_GetAttrString(pySelf, methodName));
+ if (pyMethod.isNull()) {
+ PyErr_Format(PyExc_AttributeError, "Slot '%s::%s' not found.",
+ metaObject->className(), method.methodSignature().constData());
+ } else {
+ SignalManager::callPythonMetaMethod(method, args, pyMethod, false);
+ }
}
+ // WARNING Isn't safe to call any metaObject and/or object methods beyond this point
+ // because the object can be deleted inside the called slot.
- if (pp || pp_name) {
- Shiboken::GilState gil;
- Py_XDECREF(pp);
- Py_XDECREF(pp_name);
- }
+ if (gil.get() == nullptr)
+ gil.reset(new Shiboken::GilState);
- // Bubbles Python exceptions up to the Javascript engine, if called from one
- {
- Shiboken::GilState gil;
-
- if (PyErr_Occurred()) {
-
-#if PYSIDE_QML_PRIVATE_API_SUPPORT
- // This JS engine grabber based off of Qt 5.5's `qjsEngine` function
- QQmlData *data = QQmlData::get(object, false);
-
- if (data && !data->jsWrapper.isNullOrUndefined()) {
- QV4::ExecutionEngine *engine = data->jsWrapper.engine();
- if (engine->currentStackFrame != nullptr) {
- PyObject *errType, *errValue, *errTraceback;
- PyErr_Fetch(&errType, &errValue, &errTraceback);
- // PYSIDE-464: The error is only valid before PyErr_Restore,
- // PYSIDE-464: therefore we take local copies.
- Shiboken::AutoDecRef objStr(PyObject_Str(errValue));
- const QString errString = QLatin1String(Shiboken::String::toCString(objStr));
- const bool isSyntaxError = errType == PyExc_SyntaxError;
- const bool isTypeError = errType == PyExc_TypeError;
- PyErr_Restore(errType, errValue, errTraceback);
-
- PyErr_Print(); // Note: PyErr_Print clears the error.
-
- if (isSyntaxError) {
- return engine->throwSyntaxError(errString);
- } else if (isTypeError) {
- return engine->throwTypeError(errString);
- } else {
- return engine->throwError(errString);
- }
- }
- }
-#endif // PYSIDE_QML_PRIVATE_API_SUPPORT
-
- int reclimit = Py_GetRecursionLimit();
- // Inspired by Python's errors.c: PyErr_GivenExceptionMatches() function.
- // Temporarily bump the recursion limit, so that PyErr_Print will not raise a recursion
- // error again. Don't do it when the limit is already insanely high, to avoid overflow.
- if (reclimit < (1 << 30))
- Py_SetRecursionLimit(reclimit + 5);
- PyErr_Print();
- Py_SetRecursionLimit(reclimit);
- }
- }
+ if (PyErr_Occurred())
+ handleMetaCallError(object, &result);
+ return result;
+}
+
+int SignalManager::qt_metacall(QObject *object, QMetaObject::Call call, int id, void **args)
+{
+ switch (call) {
+ case QMetaObject::ReadProperty:
+ case QMetaObject::WriteProperty:
+ case QMetaObject::ResetProperty:
+ id = SignalManagerPrivate::qtPropertyMetacall(object, call, id, args);
+ break;
+ case QMetaObject::RegisterPropertyMetaType:
+ case QMetaObject::BindableProperty:
+ id -= object->metaObject()->propertyCount();
+ break;
+ case QMetaObject::InvokeMetaMethod:
+ id = SignalManagerPrivate::qtMethodMetacall(object, id, args);
+ break;
+ case QMetaObject::CreateInstance:
+ case QMetaObject::IndexOfMethod:
+ case QMetaObject::RegisterMethodArgumentMetaType:
+ case QMetaObject::CustomCall:
+ qCDebug(lcPySide).noquote().nospace() << __FUNCTION__ << ' '
+ << metaCallName(call) << " #" << id << ' ' << object;
+ id -= object->metaObject()->methodCount();
+ break;
+#if QT_VERSION >= QT_VERSION_CHECK(6, 6, 0)
+ case QMetaObject::ConstructInPlace:
+ break;
+#endif
+ }
return id;
}
@@ -474,35 +640,27 @@ int SignalManager::callPythonMetaMethod(const QMetaMethod &method, void **args,
Q_ASSERT(pyMethod);
Shiboken::GilState gil;
- PyObject *pyArguments = nullptr;
-
- if (isShortCuit){
- pyArguments = reinterpret_cast<PyObject *>(args[1]);
- } else {
- pyArguments = parseArguments(method.parameterTypes(), args);
- }
+ PyObject *pyArguments = isShortCuit
+ ? reinterpret_cast<PyObject *>(args[1]) : parseArguments(method, args);
if (pyArguments) {
- Shiboken::Conversions::SpecificConverter *retConverter = nullptr;
+ QScopedPointer<Shiboken::Conversions::SpecificConverter> retConverter;
const char *returnType = method.typeName();
- if (returnType && std::strcmp("", returnType) && std::strcmp("void", returnType)) {
- retConverter = new Shiboken::Conversions::SpecificConverter(returnType);
- if (!retConverter || !*retConverter) {
- PyErr_Format(PyExc_RuntimeError, "Can't find converter for '%s' to call Python meta method.", returnType);
+ if (returnType != nullptr && returnType[0] != 0 && std::strcmp("void", returnType) != 0) {
+ retConverter.reset(new Shiboken::Conversions::SpecificConverter(returnType));
+ if (!retConverter->isValid()) {
+ PyErr_SetString(PyExc_RuntimeError, msgCannotConvertReturn(method).constData());
return -1;
}
}
Shiboken::AutoDecRef retval(PyObject_CallObject(pyMethod, pyArguments));
- if (!isShortCuit && pyArguments){
+ if (!isShortCuit && pyArguments)
Py_DECREF(pyArguments);
- }
- if (!retval.isNull() && retval != Py_None && !PyErr_Occurred() && retConverter) {
+ if (!retval.isNull() && retval != Py_None && !PyErr_Occurred() && retConverter)
retConverter->toCpp(retval, args[0]);
- }
- delete retConverter;
}
return -1;
@@ -532,6 +690,57 @@ static MetaObjectBuilder *metaBuilderFromDict(PyObject *dict)
return reinterpret_cast<MetaObjectBuilder *>(PyCapsule_GetPointer(pyBuilder, nullptr));
}
+// Helper to format a method signature "foo(QString)" into
+// Slot decorator "@Slot(str)"
+
+struct slotSignature
+{
+ explicit slotSignature(const char *signature) : m_signature(signature) {}
+
+ const char *m_signature;
+};
+
+QDebug operator<<(QDebug debug, const slotSignature &sig)
+{
+ QDebugStateSaver saver(debug);
+ debug.noquote();
+ debug.nospace();
+ debug << "@Slot(";
+ QByteArrayView signature(sig.m_signature);
+ const auto len = signature.size();
+ auto pos = signature.indexOf('(');
+ if (pos != -1 && pos < len - 2) {
+ ++pos;
+ while (true) {
+ auto nextPos = signature.indexOf(',', pos);
+ if (nextPos == -1)
+ nextPos = len - 1;
+ const QByteArrayView parameter = signature.sliced(pos, nextPos - pos);
+ if (parameter == "QString") {
+ debug << "str";
+ } else if (parameter == "double") {
+ debug << "float";
+ } else {
+ const bool hasDelimiter = parameter.contains("::");
+ if (hasDelimiter)
+ debug << '"';
+ if (!hasDelimiter && parameter.endsWith('*'))
+ debug << parameter.first(parameter.size() - 1);
+ else
+ debug << parameter;
+ if (hasDelimiter)
+ debug << '"';
+ }
+ pos = nextPos + 1;
+ if (pos >= len)
+ break;
+ debug << ',';
+ }
+ }
+ debug << ')';
+ return debug;
+}
+
int SignalManager::registerMetaMethodGetIndex(QObject *source, const char *signature, QMetaMethod::MethodType type)
{
if (!source) {
@@ -545,11 +754,13 @@ int SignalManager::registerMetaMethodGetIndex(QObject *source, const char *signa
if (methodIndex == -1) {
SbkObject *self = Shiboken::BindingManager::instance().retrieveWrapper(source);
if (!Shiboken::Object::hasCppWrapper(self)) {
- qWarning() << "Invalid Signal signature:" << signature;
+ qWarning().noquote().nospace() << __FUNCTION__
+ << ": Cannot add dynamic method \"" << signature << "\" (" << type
+ << ") to " << source << ": No Wrapper found.";
return -1;
}
- auto pySelf = reinterpret_cast<PyObject *>(self);
- PyObject *dict = self->ob_dict;
+ auto *pySelf = reinterpret_cast<PyObject *>(self);
+ auto *dict = SbkObject_GetDict_NoRef(pySelf);
MetaObjectBuilder *dmo = metaBuilderFromDict(dict);
// Create a instance meta object
@@ -560,6 +771,13 @@ int SignalManager::registerMetaMethodGetIndex(QObject *source, const char *signa
Py_DECREF(pyDmo);
}
+ if (type == QMetaMethod::Slot) {
+ qCWarning(lcPySide).noquote().nospace()
+ << "Warning: Registering dynamic slot \""
+ << signature << "\" on \"" << source->metaObject()->className()
+ << "\". Consider annotating with " << slotSignature(signature);
+ }
+
return type == QMetaMethod::Signal
? dmo->addSignal(signature) : dmo->addSlot(signature);
}
@@ -578,51 +796,30 @@ const QMetaObject *SignalManager::retrieveMetaObject(PyObject *self)
// m_dirty flag is set.
Q_ASSERT(self);
- MetaObjectBuilder *builder = metaBuilderFromDict(reinterpret_cast<SbkObject *>(self)->ob_dict);
+ auto *ob_dict = SbkObject_GetDict_NoRef(self);
+ MetaObjectBuilder *builder = metaBuilderFromDict(ob_dict);
if (!builder)
builder = &(retrieveTypeUserData(self)->mo);
return builder->update();
}
-namespace {
-
-static int callMethod(QObject *object, int id, void **args)
+static PyObject *parseArguments(const QMetaMethod &method, void **args)
{
- const QMetaObject *metaObject = object->metaObject();
- QMetaMethod method = metaObject->method(id);
-
- if (method.methodType() == QMetaMethod::Signal) {
- // emit python signal
- QMetaObject::activate(object, id, args);
- } else {
- Shiboken::GilState gil;
- auto self = reinterpret_cast<PyObject *>(Shiboken::BindingManager::instance().retrieveWrapper(object));
- QByteArray methodName = method.methodSignature();
- methodName.truncate(methodName.indexOf('('));
- Shiboken::AutoDecRef pyMethod(PyObject_GetAttrString(self, methodName));
- return SignalManager::callPythonMetaMethod(method, args, pyMethod, false);
- }
- return -1;
-}
-
-
-static PyObject *parseArguments(const QList<QByteArray>& paramTypes, void **args)
-{
- int argsSize = paramTypes.count();
+ const auto &paramTypes = method.parameterTypes();
+ const qsizetype argsSize = paramTypes.size();
PyObject *preparedArgs = PyTuple_New(argsSize);
- for (int i = 0, max = argsSize; i < max; ++i) {
+ for (qsizetype i = 0; i < argsSize; ++i) {
void *data = args[i+1];
- const char *dataType = paramTypes[i].constData();
- Shiboken::Conversions::SpecificConverter converter(dataType);
- if (converter) {
- PyTuple_SET_ITEM(preparedArgs, i, converter.toPython(data));
- } else {
- PyErr_Format(PyExc_TypeError, "Can't call meta function because I have no idea how to handle %s", dataType);
+ auto param = paramTypes.at(i);
+ Shiboken::Conversions::SpecificConverter converter(param.constData());
+ if (!converter) {
+ PyErr_SetString(PyExc_TypeError, msgCannotConvertParameter(method, i).constData());
Py_DECREF(preparedArgs);
return nullptr;
}
+ PyTuple_SET_ITEM(preparedArgs, i, converter.toPython(data));
}
return preparedArgs;
}
@@ -634,4 +831,4 @@ static bool emitShortCircuitSignal(QObject *source, int signalIndex, PyObject *a
return true;
}
-} //namespace
+#include "signalmanager.moc"
diff --git a/sources/pyside6/libpyside/signalmanager.h b/sources/pyside6/libpyside/signalmanager.h
index fe077bd1a..c531d6630 100644
--- a/sources/pyside6/libpyside/signalmanager.h
+++ b/sources/pyside6/libpyside/signalmanager.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef SIGNALMANAGER_H
#define SIGNALMANAGER_H
@@ -47,6 +11,8 @@
#include <QtCore/QMetaMethod>
+#include <optional>
+
QT_FORWARD_DECLARE_CLASS(QDataStream)
namespace PySide
@@ -69,6 +35,14 @@ public:
~PyObjectWrapper();
operator PyObject*() const;
+ // FIXME: To be removed in Qt7
+ // This was done to make QAbstractItemModel::data() work without explicit conversion of
+ // QVariant(PyObjectWrapper) to QVariant(int). This works because QAbstractItemModel::data()
+ // inturn calls legacyEnumValueFromModelData(const QVariant &data). But this function will
+ // be removed in Qt7.
+ // The proper fix would be to associate PyObjectWrapper to the corresponding C++ Enum.
+ int toInt() const;
+
private:
PyObject* m_me;
};
@@ -78,11 +52,16 @@ PYSIDE_API QDataStream &operator>>(QDataStream& in, PyObjectWrapper& myObj);
class PYSIDE_API SignalManager
{
- Q_DISABLE_COPY(SignalManager)
public:
+ Q_DISABLE_COPY_MOVE(SignalManager)
+
+ using QmlMetaCallErrorHandler = std::optional<int>(*)(QObject *object);
+
static SignalManager& instance();
- QObject* globalReceiver(QObject* sender, PyObject* callback);
+ static void setQmlMetaCallErrorHandler(QmlMetaCallErrorHandler handler);
+
+ QObject* globalReceiver(QObject *sender, PyObject *callback, QObject *receiver = nullptr);
void releaseGlobalReceiver(const QObject* sender, QObject* receiver);
int globalReceiverSlotIndex(QObject* sender, const char* slotSignature) const;
void notifyGlobalReceiver(QObject* receiver);
@@ -97,15 +76,15 @@ public:
// used to discovery metaobject
static const QMetaObject* retrieveMetaObject(PyObject* self);
- // Used to discovery if SignalManager was connected with object "destroyed()" signal.
- int countConnectionsWith(const QObject *object);
-
// Disconnect all signals managed by Globalreceiver
void clear();
+ void purgeEmptyGlobalReceivers();
// Utility function to call a python method usign args received in qt_metacall
static int callPythonMetaMethod(const QMetaMethod& method, void** args, PyObject* obj, bool isShortCuit);
+ static void deleteGlobalReceiver(const QObject *globalReceiver);
+
private:
struct SignalManagerPrivate;
SignalManagerPrivate* m_d;
diff --git a/sources/pyside6/libpysideqml/CMakeLists.txt b/sources/pyside6/libpysideqml/CMakeLists.txt
new file mode 100644
index 000000000..1af8c02cf
--- /dev/null
+++ b/sources/pyside6/libpysideqml/CMakeLists.txt
@@ -0,0 +1,115 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+set(libpysideqml_libraries Qt::Core Qt::CorePrivate Qt::Qml Qt::QmlPrivate)
+
+set(libpysideqml_HEADERS # installed below
+ pysideqmlattached.h
+ pysideqmlattached_p.h
+ pysideqmlextended_p.h
+ pysideqmlforeign_p.h
+ pysideqml.h
+ pysideqmllistproperty_p.h
+ pysideqmlmacros.h
+ pysideqmlmetacallerror_p.h
+ pysideqmlnamedelement_p.h
+ pysideqmlregistertype.h
+ pysideqmlregistertype_p.h
+ pysideqmltypeinfo_p.h
+ pysideqmluncreatable.h
+)
+
+set(libpysideqml_SRC
+ pysideqml.cpp
+ pysideqmlattached.cpp
+ pysideqmlforeign.cpp
+ pysideqmlextended.cpp
+ pysideqmlregistertype.cpp
+ pysideqmlmetacallerror.cpp
+ pysideqmllistproperty.cpp
+ pysideqmlnamedelement.cpp
+ pysideqmluncreatable.cpp
+ pysideqmltypeinfo.cpp
+ ${libpysideqml_HEADERS}
+)
+
+# Hack for // https://github.com/python/cpython/issues/86286 causes issues
+set_source_files_properties(
+ pysideqmlmetacallerror.cpp PROPERTIES SKIP_UNITY_BUILD_INCLUSION ON
+)
+
+add_library(pyside6qml SHARED ${libpysideqml_SRC} ${other_files})
+add_library(PySide6::pyside6qml ALIAS pyside6qml)
+
+target_include_directories(pyside6qml PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
+ $<INSTALL_INTERFACE:include/PySide6Qml>
+)
+
+target_compile_definitions(pyside6qml PRIVATE -DQT_LEAN_HEADERS=1 -DQT_NO_KEYWORDS=1)
+
+target_link_libraries(pyside6qml
+ PRIVATE PySide6::pyside6 Shiboken6::libshiboken ${libpysideqml_libraries})
+
+set_target_properties(pyside6qml PROPERTIES
+ VERSION ${BINDING_API_VERSION}
+ SOVERSION "${PYSIDE_SO_VERSION}"
+ OUTPUT_NAME "pyside6qml${pyside6_SUFFIX}${SHIBOKEN_PYTHON_SHARED_LIBRARY_SUFFIX}"
+ DEFINE_SYMBOL BUILD_LIBPYSIDEQML)
+
+target_compile_definitions(pyside6qml PRIVATE -DQT_LEAN_HEADERS=1)
+
+set_property(TARGET pyside6qml PROPERTY CXX_STANDARD 17)
+
+if(PYSIDE_QT_CONF_PREFIX)
+ set_property(SOURCE pysideqml.cpp
+ APPEND
+ PROPERTY COMPILE_DEFINITIONS
+ PYSIDE_QT_CONF_PREFIX=${PYSIDE_QT_CONF_PREFIX})
+endif()
+
+#
+# install stuff
+#
+
+if (CMAKE_BUILD_TYPE STREQUAL "Debug")
+ set(LIBRARY_OUTPUT_SUFFIX ${CMAKE_DEBUG_POSTFIX})
+else()
+ set(LIBRARY_OUTPUT_SUFFIX ${CMAKE_RELEASE_POSTFIX})
+endif()
+
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D QT_NO_CAST_FROM_ASCII -D QT_NO_CAST_TO_ASCII")
+
+qfp_strip_library("pyside6qml")
+
+# Install-tree / relocatable package config file.
+configure_package_config_file(
+ "${CMAKE_CURRENT_SOURCE_DIR}/PySide6QmlConfig-spec.cmake.in"
+ "${CMAKE_CURRENT_BINARY_DIR}/install/PySide6QmlConfig${SHIBOKEN_PYTHON_CONFIG_SUFFIX}.cmake"
+ INSTALL_DESTINATION "${LIB_INSTALL_DIR}/cmake/PySide6Qml"
+)
+
+configure_file("${CMAKE_CURRENT_SOURCE_DIR}/PySide6QmlConfig.cmake.in"
+ "${CMAKE_CURRENT_BINARY_DIR}/PySide6QmlConfig.cmake" @ONLY)
+configure_file("${CMAKE_CURRENT_SOURCE_DIR}/PySide6QmlConfigVersion.cmake.in"
+ "${CMAKE_CURRENT_BINARY_DIR}/PySide6QmlConfigVersion.cmake" @ONLY)
+
+install(FILES ${libpysideqml_HEADERS}
+ DESTINATION include/${BINDING_NAME}${pyside6qml_SUFFIX})
+
+install(TARGETS pyside6qml EXPORT PySide6QmlTargets
+ LIBRARY DESTINATION "${LIB_INSTALL_DIR}"
+ ARCHIVE DESTINATION "${LIB_INSTALL_DIR}"
+ RUNTIME DESTINATION bin)
+install(EXPORT PySide6QmlTargets NAMESPACE PySide6Qml::
+ DESTINATION "${LIB_INSTALL_DIR}/cmake/PySide6Qml")
+
+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/PySide6QmlConfig.cmake"
+ DESTINATION "${LIB_INSTALL_DIR}/cmake/PySide6Qml")
+
+install(FILES
+ "${CMAKE_CURRENT_BINARY_DIR}/install/PySide6QmlConfig${SHIBOKEN_PYTHON_CONFIG_SUFFIX}.cmake"
+ DESTINATION "${LIB_INSTALL_DIR}/cmake/PySide6Qml")
+
+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/PySide6QmlConfigVersion.cmake"
+ DESTINATION "${LIB_INSTALL_DIR}/cmake/PySide6Qml")
diff --git a/sources/pyside6/libpysideqml/PySide6QmlConfig-spec.cmake.in b/sources/pyside6/libpysideqml/PySide6QmlConfig-spec.cmake.in
new file mode 100644
index 000000000..36eb4123a
--- /dev/null
+++ b/sources/pyside6/libpysideqml/PySide6QmlConfig-spec.cmake.in
@@ -0,0 +1,7 @@
+@PACKAGE_INIT@
+
+# Import targets only when using an installed PySide6 config file (so not during a regular
+# PySide6 build, or during a super project build).
+if (NOT TARGET PySide6::pyside6qml)
+ include("${CMAKE_CURRENT_LIST_DIR}/PySide6QmlTargets.cmake")
+endif()
diff --git a/sources/pyside6/libpysideqml/PySide6QmlConfig.cmake.in b/sources/pyside6/libpysideqml/PySide6QmlConfig.cmake.in
new file mode 100644
index 000000000..dab0a6b13
--- /dev/null
+++ b/sources/pyside6/libpysideqml/PySide6QmlConfig.cmake.in
@@ -0,0 +1,5 @@
+if (NOT PYTHON_CONFIG_SUFFIX)
+ message(STATUS "PySide6QmlConfig: Using default python: @SHIBOKEN_PYTHON_CONFIG_SUFFIX@")
+ SET(PYTHON_CONFIG_SUFFIX @SHIBOKEN_PYTHON_CONFIG_SUFFIX@)
+endif()
+include(${CMAKE_CURRENT_LIST_DIR}/PySide6QmlConfig${PYTHON_CONFIG_SUFFIX}.cmake)
diff --git a/sources/pyside6/libpysideqml/PySide6QmlConfigVersion.cmake.in b/sources/pyside6/libpysideqml/PySide6QmlConfigVersion.cmake.in
new file mode 100644
index 000000000..f5073ce08
--- /dev/null
+++ b/sources/pyside6/libpysideqml/PySide6QmlConfigVersion.cmake.in
@@ -0,0 +1,10 @@
+set(PACKAGE_VERSION @BINDING_API_VERSION@)
+
+if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}" )
+ set(PACKAGE_VERSION_COMPATIBLE FALSE)
+else("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}" )
+ set(PACKAGE_VERSION_COMPATIBLE TRUE)
+ if( "${PACKAGE_FIND_VERSION}" STREQUAL "${PACKAGE_VERSION}")
+ set(PACKAGE_VERSION_EXACT TRUE)
+ endif( "${PACKAGE_FIND_VERSION}" STREQUAL "${PACKAGE_VERSION}")
+endif("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}" )
diff --git a/sources/pyside6/libpysideqml/pysideqml.cpp b/sources/pyside6/libpysideqml/pysideqml.cpp
new file mode 100644
index 000000000..3fe673fdf
--- /dev/null
+++ b/sources/pyside6/libpysideqml/pysideqml.cpp
@@ -0,0 +1,35 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#include "pysideqml.h"
+#include "pysideqmllistproperty_p.h"
+#include "pysideqmlattached_p.h"
+#include "pysideqmlextended_p.h"
+#include "pysideqmlforeign_p.h"
+#include "pysideqmlnamedelement_p.h"
+#include "pysideqmluncreatable.h"
+#include "pysideqmlmetacallerror_p.h"
+
+#include <QtQml/QQmlPropertyMap>
+#include <QtQml/QQmlComponent>
+
+#include <signalmanager.h>
+
+namespace PySide::Qml
+{
+
+void init(PyObject *module)
+{
+ initQtQmlListProperty(module);
+ initQmlAttached(module);
+ initQmlForeign(module);
+ initQmlExtended(module);
+ initQmlNamedElement(module);
+ initQmlUncreatable(module);
+ PySide::SignalManager::setQmlMetaCallErrorHandler(PySide::Qml::qmlMetaCallErrorHandler);
+
+ qRegisterMetaType<QQmlPropertyMap *>(); // PYSIDE-1845, QQmlPropertyMap * properties
+ qRegisterMetaType<QQmlComponent *>(); // PYSIDE-2415, QQmlComponent * properties
+}
+
+} //namespace PySide::Qml
diff --git a/sources/pyside6/libpysideqml/pysideqml.h b/sources/pyside6/libpysideqml/pysideqml.h
new file mode 100644
index 000000000..d975bcf97
--- /dev/null
+++ b/sources/pyside6/libpysideqml/pysideqml.h
@@ -0,0 +1,18 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef PYSIDEQML_H
+#define PYSIDEQML_H
+
+#include "pysideqmlmacros.h"
+
+#include <sbkpython.h>
+
+namespace PySide::Qml
+{
+
+PYSIDEQML_API void init(PyObject *module);
+
+} //namespace PySide::Qml
+
+#endif // PYSIDEQML_H
diff --git a/sources/pyside6/libpysideqml/pysideqmlattached.cpp b/sources/pyside6/libpysideqml/pysideqmlattached.cpp
new file mode 100644
index 000000000..d484257e2
--- /dev/null
+++ b/sources/pyside6/libpysideqml/pysideqmlattached.cpp
@@ -0,0 +1,216 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#include "pysideqmlattached.h"
+#include "pysideqmlattached_p.h"
+#include "pysideqmltypeinfo_p.h"
+#include "pysideqmlregistertype_p.h"
+
+#include <signalmanager.h>
+#include <pyside_p.h>
+#include <pysideclassdecorator_p.h>
+
+#include <shiboken.h>
+#include <signature.h>
+#include <sbkstring.h>
+
+#include <QtQml/qqml.h>
+
+#include <algorithm>
+
+// The QmlAttached decorator modifies QmlElement to register an attached property
+// type. Due to the (reverse) execution order of decorators, it needs to follow
+// QmlElement.
+class PySideQmlAttachedPrivate : public PySide::ClassDecorator::TypeDecoratorPrivate
+{
+public:
+ PyObject *tp_call(PyObject *self, PyObject *args, PyObject * /* kw */) override;
+ const char *name() const override;
+};
+
+// The call operator is passed the class type and registers the type
+// in QmlTypeInfo.
+PyObject *PySideQmlAttachedPrivate::tp_call(PyObject *self, PyObject *args, PyObject * /* kw */)
+{
+ PyObject *klass = tp_call_check(args, CheckMode::WrappedType);
+ if (klass == nullptr)
+ return nullptr;
+
+ auto *data = DecoratorPrivate::get<PySideQmlAttachedPrivate>(self);
+ PySide::Qml::ensureQmlTypeInfo(klass)->attachedType = data->type();
+
+ Py_INCREF(klass);
+ return klass;
+}
+
+const char *PySideQmlAttachedPrivate::name() const
+{
+ return "QmlAttached";
+}
+
+extern "C" {
+
+static PyTypeObject *createPySideQmlAttachedType(void)
+{
+ auto typeSlots =
+ PySide::ClassDecorator::Methods<PySideQmlAttachedPrivate>::typeSlots();
+
+ PyType_Spec PySideQmlAttachedType_spec = {
+ "2:PySide6.QtCore.qmlAttached",
+ sizeof(PySideClassDecorator),
+ 0,
+ Py_TPFLAGS_DEFAULT,
+ typeSlots.data()
+ };
+ return SbkType_FromSpec(&PySideQmlAttachedType_spec);
+}
+
+PyTypeObject *PySideQmlAttached_TypeF(void)
+{
+ static auto *type = createPySideQmlAttachedType();
+ return type;
+}
+
+} // extern "C"
+
+static const char *qmlAttached_SignatureStrings[] = {
+ "PySide6.QtQml.QmlAttached(self,type:type)",
+ nullptr // Sentinel
+};
+
+namespace PySide::Qml {
+
+static QObject *attachedFactoryHelper(PyTypeObject *attachingType, QObject *o)
+{
+ // Call static qmlAttachedProperties() on type. If there is an error
+ // and nullptr is returned, a crash occurs. So, errors should at least be
+ // printed.
+
+ Shiboken::GilState gilState;
+ Shiboken::Conversions::SpecificConverter converter("QObject");
+ Q_ASSERT(converter);
+
+ static const char methodName[] = "qmlAttachedProperties";
+ static PyObject *const pyMethodName = Shiboken::String::createStaticString(methodName);
+ PyObject *attachingTypeObj = reinterpret_cast<PyObject *>(attachingType);
+ Shiboken::AutoDecRef pyResult(PyObject_CallMethodObjArgs(attachingTypeObj, pyMethodName,
+ attachingTypeObj /* self */,
+ converter.toPython(&o),
+ nullptr));
+ if (pyResult.isNull() || PyErr_Occurred()) {
+ PyErr_Print();
+ return nullptr;
+ }
+
+ if (PyType_IsSubtype(pyResult->ob_type, qObjectType()) == 0) {
+ qWarning("QmlAttached: Attached objects must inherit QObject, got %s.",
+ pyResult->ob_type->tp_name);
+ return nullptr;
+ }
+
+ QObject *result = nullptr;
+ converter.toCpp(pyResult.object(), &result);
+ return result;
+}
+
+// Since the required attached factory signature does not have a void *user
+// parameter to store the attaching type, we employ a template trick, storing
+// the attaching types in an array and create non-type-template (int) functions
+// taking the array index as template parameter.
+// We initialize the attachedFactories array with factory functions
+// accessing the attachingTypes[N] using template metaprogramming.
+
+enum { MAX_ATTACHING_TYPES = 50};
+
+using AttachedFactory = QObject *(*)(QObject *);
+
+static int nextAttachingType = 0;
+static PyTypeObject *attachingTypes[MAX_ATTACHING_TYPES];
+static AttachedFactory attachedFactories[MAX_ATTACHING_TYPES];
+
+template <int N>
+static QObject *attachedFactory(QObject *o)
+{
+ return attachedFactoryHelper(attachingTypes[N], o);
+}
+
+template<int N>
+struct AttachedFactoryInitializerBase
+{
+};
+
+template<int N>
+struct AttachedFactoryInitializer : AttachedFactoryInitializerBase<N>
+{
+ static void init()
+ {
+ attachedFactories[N] = attachedFactory<N>;
+ AttachedFactoryInitializer<N-1>::init();
+ }
+};
+
+template<>
+struct AttachedFactoryInitializer<0> : AttachedFactoryInitializerBase<0>
+{
+ static void init()
+ {
+ attachedFactories[0] = attachedFactory<0>;
+ }
+};
+
+void initQmlAttached(PyObject *module)
+{
+ std::fill(attachingTypes, attachingTypes + MAX_ATTACHING_TYPES, nullptr);
+ AttachedFactoryInitializer<MAX_ATTACHING_TYPES - 1>::init();
+
+ if (InitSignatureStrings(PySideQmlAttached_TypeF(), qmlAttached_SignatureStrings) < 0)
+ return;
+
+ Py_INCREF(PySideQmlAttached_TypeF());
+ PyModule_AddObject(module, "QmlAttached",
+ reinterpret_cast<PyObject *>(PySideQmlAttached_TypeF()));
+}
+
+PySide::Qml::QmlExtensionInfo qmlAttachedInfo(PyTypeObject *t,
+ const std::shared_ptr<QmlTypeInfo> &info)
+{
+ PySide::Qml::QmlExtensionInfo result{nullptr, nullptr};
+ if (!info || info->attachedType == nullptr)
+ return result;
+
+ auto *name = reinterpret_cast<PyTypeObject *>(t)->tp_name;
+ if (nextAttachingType >= MAX_ATTACHING_TYPES) {
+ qWarning("Unable to initialize attached type \"%s\": "
+ "The limit %d of attached types has been reached.",
+ name, MAX_ATTACHING_TYPES);
+ return result;
+ }
+
+ result.metaObject = PySide::retrieveMetaObject(info->attachedType);
+ if (result.metaObject == nullptr) {
+ qWarning("Unable to retrieve meta object for %s", name);
+ return result;
+ }
+
+ attachingTypes[nextAttachingType] = t;
+ result.factory = attachedFactories[nextAttachingType];
+ ++nextAttachingType;
+
+ return result;
+}
+
+QObject *qmlAttachedPropertiesObject(PyObject *typeObject, QObject *obj, bool create)
+{
+ auto *type = reinterpret_cast<PyTypeObject *>(typeObject);
+ auto *end = attachingTypes + nextAttachingType;
+ auto *typePtr = std::find(attachingTypes, end, type);
+ if (typePtr == end) {
+ qWarning("%s: Attaching type \"%s\" not found.", __FUNCTION__, type->tp_name);
+ return nullptr;
+ }
+
+ auto func = attachedFactories[std::uintptr_t(typePtr - attachingTypes)];
+ return ::qmlAttachedPropertiesObject(obj, func, create);
+}
+
+} // namespace PySide::Qml
diff --git a/sources/pyside6/libpysideqml/pysideqmlattached.h b/sources/pyside6/libpysideqml/pysideqmlattached.h
new file mode 100644
index 000000000..96f788268
--- /dev/null
+++ b/sources/pyside6/libpysideqml/pysideqmlattached.h
@@ -0,0 +1,28 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef PYSIDEQMLATTACHED_H
+#define PYSIDEQMLATTACHED_H
+
+#include <sbkpython.h>
+
+#include "pysideqmlmacros.h"
+
+#include <QtCore/qtconfigmacros.h>
+
+QT_FORWARD_DECLARE_CLASS(QObject)
+
+namespace PySide::Qml
+{
+
+/// PySide implementation of qmlAttachedPropertiesObject<T> function.
+/// \param typeObject attaching type
+/// \param obj attachee
+/// \param create Whether to create the Attachment object
+/// \return Attachment object instance
+PYSIDEQML_API QObject *qmlAttachedPropertiesObject(PyObject *typeObject, QObject *obj,
+ bool create = true);
+
+} // namespace PySide::Qml
+
+#endif // PYSIDEQMLATTACHED_H
diff --git a/sources/pyside6/libpysideqml/pysideqmlattached_p.h b/sources/pyside6/libpysideqml/pysideqmlattached_p.h
new file mode 100644
index 000000000..7c8a47fb8
--- /dev/null
+++ b/sources/pyside6/libpysideqml/pysideqmlattached_p.h
@@ -0,0 +1,21 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef PYSIDEQMLATTACHED_P_H
+#define PYSIDEQMLATTACHED_P_H
+
+#include <sbkpython.h>
+
+#include <memory>
+
+namespace PySide::Qml {
+struct QmlExtensionInfo;
+struct QmlTypeInfo;
+
+void initQmlAttached(PyObject *module);
+
+PySide::Qml::QmlExtensionInfo qmlAttachedInfo(PyTypeObject *t,
+ const std::shared_ptr<QmlTypeInfo> &info);
+} // namespace PySide::Qml
+
+#endif // PYSIDEQMLATTACHED_P_H
diff --git a/sources/pyside6/libpysideqml/pysideqmlextended.cpp b/sources/pyside6/libpysideqml/pysideqmlextended.cpp
new file mode 100644
index 000000000..23543d589
--- /dev/null
+++ b/sources/pyside6/libpysideqml/pysideqmlextended.cpp
@@ -0,0 +1,145 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#include "pysideqmlextended_p.h"
+#include "pysideqmltypeinfo_p.h"
+#include "pysideqmlregistertype_p.h"
+
+#include <pyside_p.h>
+#include <pysideclassdecorator_p.h>
+
+#include <shiboken.h>
+#include <signature.h>
+#include <sbkstring.h>
+
+#include <QtQml/qqml.h>
+
+// The QmlExtended decorator modifies QmlElement to register an extension.
+// Due to the (reverse) execution order of decorators, it needs to follow
+// QmlElement.
+class PySideQmlExtendedPrivate : public PySide::ClassDecorator::TypeDecoratorPrivate
+{
+public:
+ PyObject *tp_call(PyObject *self, PyObject *args, PyObject * /* kw */) override;
+ const char *name() const override;
+};
+
+// The call operator is passed the class type and registers the type
+// in QmlTypeInfo.
+PyObject *PySideQmlExtendedPrivate::tp_call(PyObject *self, PyObject *args, PyObject * /* kw */)
+{
+ PyObject *klass = tp_call_check(args, CheckMode::WrappedType);
+ if (klass == nullptr)
+ return nullptr;
+
+ auto *data = DecoratorPrivate::get<PySideQmlExtendedPrivate>(self);
+ PySide::Qml::ensureQmlTypeInfo(klass)->extensionType = data->type();
+
+ Py_INCREF(klass);
+ return klass;
+}
+
+const char *PySideQmlExtendedPrivate::name() const
+{
+ return "QmlExtended";
+}
+
+extern "C" {
+
+static PyTypeObject *createPySideQmlExtendedType(void)
+{
+ auto typeSlots =
+ PySide::ClassDecorator::Methods<PySideQmlExtendedPrivate>::typeSlots();
+
+ PyType_Spec PySideQmlExtendedType_spec = {
+ "2:PySide6.QtCore.qmlExtended",
+ sizeof(PySideClassDecorator),
+ 0,
+ Py_TPFLAGS_DEFAULT,
+ typeSlots.data()
+ };
+ return SbkType_FromSpec(&PySideQmlExtendedType_spec);
+}
+
+PyTypeObject *PySideQmlExtended_TypeF(void)
+{
+ static auto *type = createPySideQmlExtendedType();
+ return type;
+}
+
+} // extern "C"
+
+static const char *qmlExtended_SignatureStrings[] = {
+ "PySide6.QtQml.QmlExtended(self,type:type)",
+ nullptr // Sentinel
+};
+
+namespace PySide::Qml {
+
+static QObject *extensionFactory(QObject *o)
+{
+ Shiboken::GilState gilState;
+ Shiboken::Conversions::SpecificConverter converter("QObject");
+ Q_ASSERT(converter);
+ PyObject *pyObj = converter.toPython(&o);
+ Q_ASSERT(pyObj);
+
+ // Search for the extension type and create an instance by invoking
+ // the call operator on type with the parent parameter.
+ // If there is an error and nullptr is returned, a crash occurs,
+ // so, errors should at least be printed.
+
+ auto *pyObjType = Py_TYPE(pyObj);
+ const auto info = qmlTypeInfo(reinterpret_cast<PyObject *>(pyObjType));
+ if (!info || info->extensionType == nullptr) {
+ qWarning("QmlExtended: Cannot find extension of %s.", pyObjType->tp_name);
+ return nullptr;
+ }
+
+ Shiboken::AutoDecRef args(PyTuple_New(1));
+ PyTuple_SET_ITEM(args.object(), 0, pyObj);
+ auto *extensionTypeObj = reinterpret_cast<PyObject *>(info->extensionType);
+ Shiboken::AutoDecRef pyResult(PyObject_Call(extensionTypeObj, args, nullptr));
+ if (pyResult.isNull() || PyErr_Occurred()) {
+ PyErr_Print();
+ return nullptr;
+ }
+
+ if (PyType_IsSubtype(pyResult->ob_type, qObjectType()) == 0) {
+ qWarning("QmlExtended: Extension objects must inherit QObject, got %s.",
+ pyResult->ob_type->tp_name);
+ return nullptr;
+ }
+
+ QObject *result = nullptr;
+ converter.toCpp(pyResult.object(), &result);
+ return result;
+}
+
+void initQmlExtended(PyObject *module)
+{
+ if (InitSignatureStrings(PySideQmlExtended_TypeF(), qmlExtended_SignatureStrings) < 0)
+ return;
+
+ Py_INCREF(PySideQmlExtended_TypeF());
+ PyModule_AddObject(module, "QmlExtended",
+ reinterpret_cast<PyObject *>(PySideQmlExtended_TypeF()));
+}
+
+PySide::Qml::QmlExtensionInfo qmlExtendedInfo(PyObject *t,
+ const std::shared_ptr<QmlTypeInfo> &info)
+{
+ PySide::Qml::QmlExtensionInfo result{nullptr, nullptr};
+ if (info && info->extensionType) {
+ result.metaObject = PySide::retrieveMetaObject(info->extensionType);
+ if (result.metaObject) {
+ result.factory = extensionFactory;
+ } else {
+ qWarning("Unable to retrieve meta object for %s",
+ reinterpret_cast<PyTypeObject *>(t)->tp_name);
+ }
+ }
+ return result;
+}
+
+} // namespace PySide::Qml
diff --git a/sources/pyside6/libpysideqml/pysideqmlextended_p.h b/sources/pyside6/libpysideqml/pysideqmlextended_p.h
new file mode 100644
index 000000000..17d6dae64
--- /dev/null
+++ b/sources/pyside6/libpysideqml/pysideqmlextended_p.h
@@ -0,0 +1,21 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef PYSIDEQMLEXTENDED_P_H
+#define PYSIDEQMLEXTENDED_P_H
+
+#include <sbkpython.h>
+
+#include <memory>
+
+namespace PySide::Qml {
+struct QmlExtensionInfo;
+struct QmlTypeInfo;
+
+void initQmlExtended(PyObject *module);
+
+PySide::Qml::QmlExtensionInfo qmlExtendedInfo(PyObject *t,
+ const std::shared_ptr<QmlTypeInfo> &info);
+} // namespace PySide::Qml
+
+#endif // PYSIDEQMLEXTENDED_P_H
diff --git a/sources/pyside6/libpysideqml/pysideqmlforeign.cpp b/sources/pyside6/libpysideqml/pysideqmlforeign.cpp
new file mode 100644
index 000000000..18d39d121
--- /dev/null
+++ b/sources/pyside6/libpysideqml/pysideqmlforeign.cpp
@@ -0,0 +1,92 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#include "pysideqmlforeign_p.h"
+#include "pysideqmltypeinfo_p.h"
+
+#include <signalmanager.h>
+#include <pysideclassdecorator_p.h>
+
+#include <shiboken.h>
+#include <signature.h>
+#include <sbkstring.h>
+
+#include <QtCore/QDebug>
+
+// The QmlForeign decorator modifies QmlElement to create a different type
+// QmlElement.
+class PySideQmlForeignPrivate : public PySide::ClassDecorator::TypeDecoratorPrivate
+{
+public:
+ PyObject *tp_call(PyObject *self, PyObject *args, PyObject * /* kw */) override;
+ const char *name() const override;
+};
+
+// The call operator is passed the class type and registers the type
+// in QmlTypeInfo.
+PyObject *PySideQmlForeignPrivate::tp_call(PyObject *self, PyObject *args, PyObject * /* kw */)
+{
+ PyObject *klass = tp_call_check(args, CheckMode::WrappedType);
+ if (klass == nullptr)
+ return nullptr;
+
+ auto *data = DecoratorPrivate::get<PySideQmlForeignPrivate>(self);
+ const auto info = PySide::Qml::ensureQmlTypeInfo(klass);
+ info->foreignType = data->type();
+ // Insert an alias to be used by the factory functions of Decorators like
+ // @QmlExtended and @QmlAttached.
+ auto *foreignObj = reinterpret_cast<const PyObject *>(info->foreignType);
+ PySide::Qml::insertQmlTypeInfoAlias(foreignObj, info);
+
+ Py_INCREF(klass);
+ return klass;
+}
+
+const char *PySideQmlForeignPrivate::name() const
+{
+ return "QmlForeign";
+}
+
+extern "C" {
+
+static PyTypeObject *createPySideQmlForeignType(void)
+{
+ auto typeSlots =
+ PySide::ClassDecorator::Methods<PySideQmlForeignPrivate>::typeSlots();
+
+ PyType_Spec PySideQmlForeignType_spec = {
+ "2:PySide6.QtCore.qmlForeign",
+ sizeof(PySideClassDecorator),
+ 0,
+ Py_TPFLAGS_DEFAULT,
+ typeSlots.data()
+ };
+ return SbkType_FromSpec(&PySideQmlForeignType_spec);
+}
+
+PyTypeObject *PySideQmlForeign_TypeF(void)
+{
+ static auto *type = createPySideQmlForeignType();
+ return type;
+}
+
+} // extern "C"
+
+static const char *qmlForeign_SignatureStrings[] = {
+ "PySide6.QtQml.QmlForeign(self,type:type)",
+ nullptr // Sentinel
+};
+
+namespace PySide::Qml {
+
+void initQmlForeign(PyObject *module)
+{
+ if (InitSignatureStrings(PySideQmlForeign_TypeF(), qmlForeign_SignatureStrings) < 0)
+ return;
+
+ Py_INCREF(PySideQmlForeign_TypeF());
+ PyModule_AddObject(module, "QmlForeign",
+ reinterpret_cast<PyObject *>(PySideQmlForeign_TypeF()));
+}
+
+} // namespace PySide::Qml
diff --git a/sources/pyside6/libpysideqml/pysideqmlforeign_p.h b/sources/pyside6/libpysideqml/pysideqmlforeign_p.h
new file mode 100644
index 000000000..85688aab0
--- /dev/null
+++ b/sources/pyside6/libpysideqml/pysideqmlforeign_p.h
@@ -0,0 +1,17 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef PYSIDEQMLFOREIGN_P_H
+#define PYSIDEQMLFOREIGN_P_H
+
+#include <sbkpython.h>
+
+namespace PySide::Qml {
+struct QmlExtensionInfo;
+struct QmlTypeInfo;
+
+void initQmlForeign(PyObject *module);
+
+} // namespace PySide::Qml
+
+#endif // PYSIDEQMLFOREIGN_P_H
diff --git a/sources/pyside6/libpysideqml/pysideqmllistproperty.cpp b/sources/pyside6/libpysideqml/pysideqmllistproperty.cpp
new file mode 100644
index 000000000..75bb5af96
--- /dev/null
+++ b/sources/pyside6/libpysideqml/pysideqmllistproperty.cpp
@@ -0,0 +1,307 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#include "pysideqmllistproperty_p.h"
+#include "pysideqmlregistertype_p.h"
+
+#include <shiboken.h>
+#include <pep384ext.h>
+#include <signature.h>
+
+#include <pysideproperty.h>
+#include <pysideproperty_p.h>
+
+#include <QtCore/QObject>
+#include <QtQml/QQmlListProperty>
+
+// This is the user data we store in the property.
+class QmlListPropertyPrivate : public PySidePropertyPrivate
+{
+public:
+ void metaCall(PyObject *source, QMetaObject::Call call, void **args) override;
+
+ PyTypeObject *type = nullptr;
+ PyObject *append = nullptr;
+ PyObject *count = nullptr;
+ PyObject *at = nullptr;
+ PyObject *clear = nullptr;
+ PyObject *replace = nullptr;
+ PyObject *removeLast = nullptr;
+};
+
+extern "C"
+{
+
+static PyObject *propList_tp_new(PyTypeObject *subtype, PyObject * /* args */, PyObject * /* kwds */)
+{
+ auto *me = PepExt_TypeCallAlloc<PySideProperty>(subtype, 0);
+ me->d = new QmlListPropertyPrivate;
+ return reinterpret_cast<PyObject *>(me);
+}
+
+static int propListTpInit(PyObject *self, PyObject *args, PyObject *kwds)
+{
+ static const char *kwlist[] = {"type", "append", "count", "at", "clear",
+ "replace", "removeLast",
+ "doc", "notify", // PySideProperty
+ "designable", "scriptable", "stored",
+ "user", "constant", "final",
+ nullptr};
+ PySideProperty *pySelf = reinterpret_cast<PySideProperty *>(self);
+
+ auto *data = static_cast<QmlListPropertyPrivate *>(pySelf->d);
+
+ char *doc{};
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwds,
+ "O|OOOOOOsObbbbbb:QtQml.ListProperty",
+ const_cast<char **>(kwlist),
+ &data->type,
+ &data->append,
+ &data->count,
+ &data->at,
+ &data->clear,
+ &data->replace,
+ &data->removeLast,
+ /*s*/ &doc,
+ /*O*/ &(data->notify), // PySideProperty
+ /*bbb*/ &(data->designable),
+ &(data->scriptable),
+ &(data->stored),
+ /*bbb*/ &(data->user),
+ &(data->constant),
+ &(data->final))) {
+ return -1;
+ }
+
+ if (doc)
+ data->doc = doc;
+ else
+ data->doc.clear();
+
+ PyTypeObject *qobjectType = qObjectType();
+
+ if (!PySequence_Contains(data->type->tp_mro, reinterpret_cast<PyObject *>(qobjectType))) {
+ PyErr_Format(PyExc_TypeError, "A type inherited from %s expected, got %s.",
+ qobjectType->tp_name, data->type->tp_name);
+ return -1;
+ }
+
+ if ((data->append && data->append != Py_None && !PyCallable_Check(data->append)) ||
+ (data->count && data->count != Py_None && !PyCallable_Check(data->count)) ||
+ (data->at && data->at != Py_None && !PyCallable_Check(data->at)) ||
+ (data->clear && data->clear != Py_None && !PyCallable_Check(data->clear)) ||
+ (data->replace && data->replace != Py_None && !PyCallable_Check(data->replace)) ||
+ (data->removeLast && data->removeLast != Py_None && !PyCallable_Check(data->removeLast))) {
+ PyErr_Format(PyExc_TypeError, "Non-callable parameter given");
+ return -1;
+ }
+
+ data->typeName = QByteArrayLiteral("QQmlListProperty<QObject>");
+
+ return 0;
+}
+
+static PyTypeObject *createPropertyListType()
+{
+ PyType_Slot PropertyListType_slots[] = {
+ {Py_tp_new, reinterpret_cast<void *>(propList_tp_new)},
+ {Py_tp_init, reinterpret_cast<void *>(propListTpInit)},
+ {0, nullptr}
+ };
+
+ PyType_Spec PropertyListType_spec = {
+ "2:PySide6.QtQml.ListProperty",
+ sizeof(PySideProperty),
+ 0,
+ Py_TPFLAGS_DEFAULT,
+ PropertyListType_slots,
+ };
+
+ Shiboken::AutoDecRef bases(Py_BuildValue("(O)", PySideProperty_TypeF()));
+ return SbkType_FromSpecWithBases(&PropertyListType_spec, bases.object());
+}
+
+PyTypeObject *PropertyList_TypeF(void)
+{
+ // PYSIDE-2230: This was a wrong replacement by static AutoDecref.
+ // Never do that, deletes things way too late.
+ static PyTypeObject *type = createPropertyListType();
+ return type;
+}
+
+} // extern "C"
+
+// Implementation of QQmlListProperty<T>::AppendFunction callback
+void propListAppender(QQmlListProperty<QObject> *propList, QObject *item)
+{
+ Shiboken::GilState state;
+
+ Shiboken::AutoDecRef args(PyTuple_New(2));
+ PyTypeObject *qobjectType = qObjectType();
+ PyTuple_SET_ITEM(args, 0,
+ Shiboken::Conversions::pointerToPython(qobjectType, propList->object));
+ PyTuple_SET_ITEM(args, 1,
+ Shiboken::Conversions::pointerToPython(qobjectType, item));
+
+ auto *data = reinterpret_cast<QmlListPropertyPrivate *>(propList->data);
+ Shiboken::AutoDecRef retVal(PyObject_CallObject(data->append, args));
+
+ if (PyErr_Occurred())
+ PyErr_Print();
+}
+
+// Implementation of QQmlListProperty<T>::CountFunction callback
+qsizetype propListCount(QQmlListProperty<QObject> *propList)
+{
+ Shiboken::GilState state;
+
+ Shiboken::AutoDecRef args(PyTuple_New(1));
+ PyTuple_SET_ITEM(args, 0,
+ Shiboken::Conversions::pointerToPython(qObjectType(), propList->object));
+
+ auto *data = reinterpret_cast<QmlListPropertyPrivate *>(propList->data);
+ Shiboken::AutoDecRef retVal(PyObject_CallObject(data->count, args));
+
+ // Check return type
+ if (PyErr_Occurred()) {
+ PyErr_Print();
+ return 0;
+ }
+
+ qsizetype cppResult = 0;
+ auto *converter = Shiboken::Conversions::PrimitiveTypeConverter<qsizetype>();
+ if (auto *pythonToCpp = Shiboken::Conversions::isPythonToCppConvertible(converter, retVal))
+ pythonToCpp(retVal, &cppResult);
+ return cppResult;
+}
+
+// Implementation of QQmlListProperty<T>::AtFunction callback
+QObject *propListAt(QQmlListProperty<QObject> *propList, qsizetype index)
+{
+ Shiboken::GilState state;
+
+ Shiboken::AutoDecRef args(PyTuple_New(2));
+ PyTypeObject *qobjectType = qObjectType();
+ PyTuple_SET_ITEM(args, 0,
+ Shiboken::Conversions::pointerToPython(qobjectType, propList->object));
+ auto *converter = Shiboken::Conversions::PrimitiveTypeConverter<qsizetype>();
+ PyTuple_SET_ITEM(args, 1,
+ Shiboken::Conversions::copyToPython(converter, &index));
+
+ auto *data = reinterpret_cast<QmlListPropertyPrivate *>(propList->data);
+ Shiboken::AutoDecRef retVal(PyObject_CallObject(data->at, args));
+
+ QObject *result = 0;
+ if (PyErr_Occurred())
+ PyErr_Print();
+ else if (PyType_IsSubtype(Py_TYPE(retVal), data->type))
+ Shiboken::Conversions::pythonToCppPointer(qobjectType, retVal, &result);
+ return result;
+}
+
+// Implementation of QQmlListProperty<T>::ClearFunction callback
+void propListClear(QQmlListProperty<QObject> * propList)
+{
+ Shiboken::GilState state;
+
+ Shiboken::AutoDecRef args(PyTuple_New(1));
+ PyTypeObject *qobjectType = qObjectType();
+ PyTuple_SET_ITEM(args, 0,
+ Shiboken::Conversions::pointerToPython(qobjectType, propList->object));
+
+ auto *data = reinterpret_cast<QmlListPropertyPrivate *>(propList->data);
+ Shiboken::AutoDecRef retVal(PyObject_CallObject(data->clear, args));
+
+ if (PyErr_Occurred())
+ PyErr_Print();
+}
+
+// Implementation of QQmlListProperty<T>::ReplaceFunction callback
+void propListReplace(QQmlListProperty<QObject> *propList, qsizetype index, QObject *value)
+{
+ Shiboken::GilState state;
+
+ Shiboken::AutoDecRef args(PyTuple_New(3));
+ PyTypeObject *qobjectType = qObjectType();
+ PyTuple_SET_ITEM(args, 0,
+ Shiboken::Conversions::pointerToPython(qobjectType, propList->object));
+ auto *converter = Shiboken::Conversions::PrimitiveTypeConverter<qsizetype>();
+ PyTuple_SET_ITEM(args, 1,
+ Shiboken::Conversions::copyToPython(converter, &index));
+ PyTuple_SET_ITEM(args, 2,
+ Shiboken::Conversions::pointerToPython(qobjectType, value));
+
+ auto *data = reinterpret_cast<QmlListPropertyPrivate *>(propList->data);
+ Shiboken::AutoDecRef retVal(PyObject_CallObject(data->replace, args));
+
+ if (PyErr_Occurred())
+ PyErr_Print();
+}
+
+// Implementation of QQmlListProperty<T>::RemoveLastFunction callback
+void propListRemoveLast(QQmlListProperty<QObject> *propList)
+{
+ Shiboken::GilState state;
+
+ Shiboken::AutoDecRef args(PyTuple_New(1));
+ PyTypeObject *qobjectType = qObjectType();
+ PyTuple_SET_ITEM(args, 0,
+ Shiboken::Conversions::pointerToPython(qobjectType, propList->object));
+
+ auto *data = reinterpret_cast<QmlListPropertyPrivate *>(propList->data);
+ Shiboken::AutoDecRef retVal(PyObject_CallObject(data->removeLast, args));
+
+ if (PyErr_Occurred())
+ PyErr_Print();
+}
+
+// qt_metacall specialization for ListProperties
+void QmlListPropertyPrivate::metaCall(PyObject *source, QMetaObject::Call call, void **args)
+{
+ if (call != QMetaObject::ReadProperty)
+ return;
+
+ QObject *qobj;
+ PyTypeObject *qobjectType = qObjectType();
+ Shiboken::Conversions::pythonToCppPointer(qobjectType, source, &qobj);
+ QQmlListProperty<QObject> declProp(
+ qobj, this,
+ append && append != Py_None ? &propListAppender : nullptr,
+ count && count != Py_None ? &propListCount : nullptr,
+ at && at != Py_None ? &propListAt : nullptr,
+ clear && clear != Py_None ? &propListClear : nullptr,
+ replace && replace != Py_None ? &propListReplace : nullptr,
+ removeLast && removeLast != Py_None ? &propListRemoveLast : nullptr);
+
+ // Copy the data to the memory location requested by the meta call
+ void *v = args[0];
+ *reinterpret_cast<QQmlListProperty<QObject> *>(v) = declProp;
+}
+
+static const char *PropertyList_SignatureStrings[] = {
+ "PySide6.QtQml.ListProperty(self,type:type,append:typing.Callable,"
+ "at:typing.Callable=None,clear:typing.Callable=None,count:typing.Callable=None)",
+ nullptr // Sentinel
+};
+
+namespace PySide::Qml {
+
+void initQtQmlListProperty(PyObject *module)
+{
+ // Export QmlListProperty type
+ if (InitSignatureStrings(PropertyList_TypeF(), PropertyList_SignatureStrings) < 0) {
+ PyErr_Print();
+ qWarning() << "Error initializing PropertyList type.";
+ return;
+ }
+
+ // Register QQmlListProperty metatype for use in QML
+ qRegisterMetaType<QQmlListProperty<QObject>>();
+
+ Py_INCREF(reinterpret_cast<PyObject *>(PropertyList_TypeF()));
+ PyModule_AddObject(module, PepType_GetNameStr(PropertyList_TypeF()),
+ reinterpret_cast<PyObject *>(PropertyList_TypeF()));
+}
+
+} // namespace PySide::Qml
diff --git a/sources/pyside6/libpysideqml/pysideqmllistproperty_p.h b/sources/pyside6/libpysideqml/pysideqmllistproperty_p.h
new file mode 100644
index 000000000..c00ffbf5b
--- /dev/null
+++ b/sources/pyside6/libpysideqml/pysideqmllistproperty_p.h
@@ -0,0 +1,13 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef PYSIDEQMLLISTPROPERTY_H
+#define PYSIDEQMLLISTPROPERTY_H
+
+#include <sbkpython.h>
+
+namespace PySide::Qml {
+void initQtQmlListProperty(PyObject *module);
+}
+
+#endif // PYSIDEQMLLISTPROPERTY_H
diff --git a/sources/pyside6/libpysideqml/pysideqmlmacros.h b/sources/pyside6/libpysideqml/pysideqmlmacros.h
new file mode 100644
index 000000000..e9f24d269
--- /dev/null
+++ b/sources/pyside6/libpysideqml/pysideqmlmacros.h
@@ -0,0 +1,18 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef PYSIDEQMLMACROS_H
+#define PYSIDEQMLMACROS_H
+
+#include <shibokenmacros.h>
+
+#define PYSIDEQML_EXPORT LIBSHIBOKEN_EXPORT
+#define PYSIDEQML_IMPORT LIBSHIBOKEN_IMPORT
+
+#ifdef BUILD_LIBPYSIDEQML
+# define PYSIDEQML_API PYSIDEQML_EXPORT
+#else
+# define PYSIDEQML_API PYSIDEQML_IMPORT
+#endif
+
+#endif // PYSIDEQMLMACROS_H
diff --git a/sources/pyside6/libpysideqml/pysideqmlmetacallerror.cpp b/sources/pyside6/libpysideqml/pysideqmlmetacallerror.cpp
new file mode 100644
index 000000000..63cefedb5
--- /dev/null
+++ b/sources/pyside6/libpysideqml/pysideqmlmetacallerror.cpp
@@ -0,0 +1,67 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#include "pysideqmlmetacallerror_p.h"
+
+#include <sbkpython.h>
+#include <sbkstring.h>
+#include <autodecref.h>
+
+// Remove deprecated MACRO of copysign for MSVC #86286
+// https://github.com/python/cpython/issues/86286
+#ifdef copysign
+# undef copysign
+#endif
+
+#include <QtCore/QObject>
+#include <QtCore/QString>
+
+#include <QtQml/QQmlEngine>
+#include <QtQml/QQmlListProperty>
+
+#if __has_include (<private/qv4engine_p.h>)
+# define QML_PRIVATE_API_SUPPORT
+# include <private/qv4engine_p.h>
+# include <private/qv4context_p.h>
+# include <private/qqmldata_p.h>
+#endif
+
+namespace PySide::Qml {
+
+std::optional<int> qmlMetaCallErrorHandler(QObject *object)
+{
+#ifdef QML_PRIVATE_API_SUPPORT
+ // This JS engine grabber based off of Qt 5.5's `qjsEngine` function
+ QQmlData *data = QQmlData::get(object, false);
+ if (!data || data->jsWrapper.isNullOrUndefined())
+ return {};
+
+ QV4::ExecutionEngine *engine = data->jsWrapper.engine();
+ if (engine->currentStackFrame == nullptr)
+ return {};
+
+ PyObject *errType, *errValue, *errTraceback;
+ PyErr_Fetch(&errType, &errValue, &errTraceback);
+ // PYSIDE-464: The error is only valid before PyErr_Restore,
+ // PYSIDE-464: therefore we take local copies.
+ Shiboken::AutoDecRef objStr(PyObject_Str(errValue));
+ const QString errString = QString::fromUtf8(Shiboken::String::toCString(objStr));
+ const bool isSyntaxError = errType == PyExc_SyntaxError;
+ const bool isTypeError = errType == PyExc_TypeError;
+ PyErr_Restore(errType, errValue, errTraceback);
+
+ PyErr_Print(); // Note: PyErr_Print clears the error.
+
+ if (isSyntaxError)
+ return engine->throwSyntaxError(errString);
+ if (isTypeError)
+ return engine->throwTypeError(errString);
+ return engine->throwError(errString);
+#else
+ Q_UNUSED(object);
+ qWarning("libpyside6qml was built without QML private API support, error handling will not work.");
+ return {};
+#endif // QML_PRIVATE_API_SUPPORT
+}
+
+} // namespace PySide::Qml
diff --git a/sources/pyside6/libpysideqml/pysideqmlmetacallerror_p.h b/sources/pyside6/libpysideqml/pysideqmlmetacallerror_p.h
new file mode 100644
index 000000000..fcbb6395d
--- /dev/null
+++ b/sources/pyside6/libpysideqml/pysideqmlmetacallerror_p.h
@@ -0,0 +1,21 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef PYSIDEQMLMETACALLERROR_P_H
+#define PYSIDEQMLMETACALLERROR_P_H
+
+#include <optional>
+
+#include <QtCore/qtclasshelpermacros.h>
+
+QT_FORWARD_DECLARE_CLASS(QObject)
+
+namespace PySide::Qml {
+
+// Helper for SignalManager::qt_metacall():
+// Bubbles Python exceptions up to the Javascript engine, if called from one
+std::optional<int> qmlMetaCallErrorHandler(QObject *object);
+
+} // namespace PySide::Qml
+
+#endif // PYSIDEQMLMETACALLERROR_P_H
diff --git a/sources/pyside6/libpysideqml/pysideqmlnamedelement.cpp b/sources/pyside6/libpysideqml/pysideqmlnamedelement.cpp
new file mode 100644
index 000000000..faf3e4116
--- /dev/null
+++ b/sources/pyside6/libpysideqml/pysideqmlnamedelement.cpp
@@ -0,0 +1,74 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#include "pysideqmlnamedelement_p.h"
+#include <pysideclassdecorator_p.h>
+#include <pysideqmlregistertype_p.h>
+
+#include <shiboken.h>
+#include <signature.h>
+
+class PySideQmlNamedElementPrivate : public PySide::ClassDecorator::StringDecoratorPrivate
+{
+public:
+ PyObject *tp_call(PyObject *self, PyObject *args, PyObject * /* kw */) override;
+ const char *name() const override;
+};
+
+const char *PySideQmlNamedElementPrivate::name() const
+{
+ return "QmlNamedElement";
+}
+
+// The call operator is passed the class type and registers the type
+PyObject *PySideQmlNamedElementPrivate::tp_call(PyObject *self, PyObject *args, PyObject *)
+{
+ PyObject *klass = tp_call_check(args, CheckMode::WrappedType);
+ if (klass == nullptr)
+ return nullptr;
+
+ auto *data = DecoratorPrivate::get<PySideQmlNamedElementPrivate>(self);
+ auto *result = PySide::Qml::qmlNamedElementMacro(klass, data->string());
+ Py_XINCREF(result);
+ return result;
+}
+
+extern "C" {
+
+PyTypeObject *createPySideQmlNamedElementType(void)
+{
+ auto typeSlots =
+ PySide::ClassDecorator::Methods<PySideQmlNamedElementPrivate>::typeSlots();
+
+ PyType_Spec PySideQmlNamedElementType_spec = {
+ "2:PySide6.QtCore.qmlNamedElement",
+ sizeof(PySideClassDecorator),
+ 0,
+ Py_TPFLAGS_DEFAULT,
+ typeSlots.data()
+ };
+ return SbkType_FromSpec(&PySideQmlNamedElementType_spec);
+}
+
+PyTypeObject *PySideQmlNamedElement_TypeF(void)
+{
+ static auto *type = createPySideQmlNamedElementType();
+ return type;
+}
+
+} // extern "C"
+
+static const char *qmlNamedElement_SignatureStrings[] = {
+ "PySide6.QtQml.QmlNamedElement(self,reason:str)",
+ nullptr // Sentinel
+};
+
+void initQmlNamedElement(PyObject *module)
+{
+ if (InitSignatureStrings(PySideQmlNamedElement_TypeF(), qmlNamedElement_SignatureStrings) < 0)
+ return;
+
+ Py_INCREF(PySideQmlNamedElement_TypeF());
+ PyModule_AddObject(module, "QmlNamedElement",
+ reinterpret_cast<PyObject *>(PySideQmlNamedElement_TypeF()));
+}
diff --git a/sources/pyside6/libpysideqml/pysideqmlnamedelement_p.h b/sources/pyside6/libpysideqml/pysideqmlnamedelement_p.h
new file mode 100644
index 000000000..4a4575de2
--- /dev/null
+++ b/sources/pyside6/libpysideqml/pysideqmlnamedelement_p.h
@@ -0,0 +1,11 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef PYSIDEQMLNAMEDELEMENT_P_H
+#define PYSIDEQMLNAMEDELEMENT_P_H
+
+#include <sbkpython.h>
+
+void initQmlNamedElement(PyObject *module);
+
+#endif // PYSIDEQMLNAMEDELEMENT_P_H
diff --git a/sources/pyside6/libpysideqml/pysideqmlregistertype.cpp b/sources/pyside6/libpysideqml/pysideqmlregistertype.cpp
new file mode 100644
index 000000000..618d621bd
--- /dev/null
+++ b/sources/pyside6/libpysideqml/pysideqmlregistertype.cpp
@@ -0,0 +1,734 @@
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#include "pysideqmlregistertype.h"
+#include "pysideqmlregistertype_p.h"
+#include "pysideqmltypeinfo_p.h"
+#include "pysideqmlattached_p.h"
+#include "pysideqmlextended_p.h"
+#include "pysideqmluncreatable.h"
+
+#include <limits>
+#include <optional>
+
+// shiboken
+#include <shiboken.h>
+#include <sbkstring.h>
+
+// pyside
+#include <pyside.h>
+#include <pysideqobject.h>
+#include <pysideclassinfo.h>
+#include <pyside_p.h>
+
+#include <QtCore/QMutex>
+#include <QtCore/QTypeRevision>
+
+#include <QtQml/qqml.h>
+#include <QtQml/QJSValue>
+#include <QtQml/QQmlListProperty>
+#include <private/qqmlmetatype_p.h>
+
+#include <memory>
+
+using namespace Qt::StringLiterals;
+
+static PySide::Qml::QuickRegisterItemFunction quickRegisterItemFunction = nullptr;
+
+static const auto qmlElementKey = "QML.Element"_ba;
+
+static void createInto(void *memory, void *type)
+{
+ QMutexLocker locker(&PySide::nextQObjectMemoryAddrMutex());
+ PySide::setNextQObjectMemoryAddr(memory);
+ Shiboken::GilState state;
+ PyObject *obj = PyObject_CallObject(reinterpret_cast<PyObject *>(type), 0);
+ if (!obj || PyErr_Occurred())
+ PyErr_Print();
+ PySide::setNextQObjectMemoryAddr(nullptr);
+}
+
+PyTypeObject *qObjectType()
+{
+ static PyTypeObject *const result =
+ Shiboken::Conversions::getPythonTypeObject("QObject*");
+ assert(result);
+ return result;
+}
+
+static PyTypeObject *qQmlEngineType()
+{
+ static PyTypeObject *const result =
+ Shiboken::Conversions::getPythonTypeObject("QQmlEngine*");
+ assert(result);
+ return result;
+}
+
+static PyTypeObject *qQJSValueType()
+{
+ static PyTypeObject *const result =
+ Shiboken::Conversions::getPythonTypeObject("QJSValue*");
+ assert(result);
+ return result;
+}
+
+// Check if o inherits from baseClass
+static bool inheritsFrom(const QMetaObject *o, const char *baseClass)
+{
+ for (auto *base = o->superClass(); base ; base = base->superClass()) {
+ if (qstrcmp(base->className(), baseClass) == 0)
+ return true;
+ }
+ return false;
+}
+
+// Check if o inherits from QPyQmlPropertyValueSource.
+static inline bool isQmlPropertyValueSource(const QMetaObject *o)
+{
+ return inheritsFrom(o, "QPyQmlPropertyValueSource");
+}
+
+// Check if o inherits from QQmlParserStatus.
+static inline bool isQmlParserStatus(const QMetaObject *o)
+{
+ return inheritsFrom(o, "QPyQmlParserStatus");
+}
+
+static QByteArray getGlobalString(const char *name)
+{
+ PyObject *globalVar = PyDict_GetItemString(PyEval_GetGlobals(), name);
+
+ if (globalVar == nullptr || PyUnicode_Check(globalVar) == 0)
+ return {};
+
+ const char *stringValue = _PepUnicode_AsString(globalVar);
+ return stringValue != nullptr ? QByteArray(stringValue) : QByteArray{};
+}
+
+static int getGlobalInt(const char *name)
+{
+ PyObject *globalVar = PyDict_GetItemString(PyEval_GetGlobals(), name);
+
+ if (globalVar == nullptr || PyLong_Check(globalVar) == 0)
+ return -1;
+
+ long value = PyLong_AsLong(globalVar);
+
+ if (value > std::numeric_limits<int>::max() || value < std::numeric_limits<int>::min())
+ return -1;
+
+ return value;
+}
+
+struct ImportData
+{
+ QByteArray importName;
+ int majorVersion = 0;
+ int minorVersion = 0;
+
+ QTypeRevision toTypeRevision() const;
+};
+
+QTypeRevision ImportData::toTypeRevision() const
+{
+ return QTypeRevision::fromVersion(majorVersion, minorVersion);
+}
+
+std::optional<ImportData> getGlobalImportData(const char *decoratorName)
+{
+ ImportData result{getGlobalString("QML_IMPORT_NAME"),
+ getGlobalInt("QML_IMPORT_MAJOR_VERSION"),
+ getGlobalInt("QML_IMPORT_MINOR_VERSION")};
+
+ if (result.importName.isEmpty()) {
+ PyErr_Format(PyExc_TypeError, "You need specify QML_IMPORT_NAME in order to use %s.",
+ decoratorName);
+ return {};
+ }
+
+ if (result.majorVersion == -1) {
+ PyErr_Format(PyExc_TypeError, "You need specify QML_IMPORT_MAJOR_VERSION in order to use %s.",
+ decoratorName);
+ return {};
+ }
+
+ // Specifying a minor version is optional
+ if (result.minorVersion == -1)
+ result.minorVersion = 0;
+ return result;
+}
+
+static PyTypeObject *checkTypeObject(PyObject *pyObj, const char *what)
+{
+ if (PyType_Check(pyObj) == 0) {
+ PyErr_Format(PyExc_TypeError, "%s can only be used for classes.", what);
+ return nullptr;
+ }
+ return reinterpret_cast<PyTypeObject *>(pyObj);
+}
+
+static bool setClassInfo(PyTypeObject *type, const QByteArray &key, const QByteArray &value)
+{
+ if (!PySide::ClassInfo::setClassInfo(type, key, value)) {
+ PyErr_Format(PyExc_TypeError, "Setting class info \"%s\" to \"%s\" on \"%s\" failed.",
+ key.constData(), value.constData(), type->tp_name);
+ return false;
+ }
+ return true;
+}
+
+static inline bool setSingletonClassInfo(PyTypeObject *type)
+{
+ return setClassInfo(type, "QML.Singleton"_ba, "true"_ba);
+}
+
+static QQmlCustomParser *defaultCustomParserFactory()
+{
+ return nullptr;
+}
+
+namespace PySide::Qml {
+
+// Modern (6.7) type registration using RegisterTypeAndRevisions
+// and information set to QMetaClassInfo.
+static int qmlRegisterType(PyObject *pyObj, PyObject *pyClassInfoObj,
+ const ImportData &importData)
+{
+ using namespace Shiboken;
+
+ PyTypeObject *pyObjType = reinterpret_cast<PyTypeObject *>(pyObj);
+ if (!isQObjectDerived(pyObjType, true))
+ return -1;
+
+ const QMetaObject *metaObject = PySide::retrieveMetaObject(pyObjType);
+ Q_ASSERT(metaObject);
+ const QMetaObject *classInfoMetaObject = pyObj == pyClassInfoObj
+ ? metaObject : PySide::retrieveMetaObject(pyClassInfoObj);
+
+ // Register as simple QObject rather than Qt Quick item.
+ // Incref the type object, don't worry about decref'ing it because
+ // there's no way to unregister a QML type.
+ Py_INCREF(pyObj);
+
+ const QByteArray typeName(pyObjType->tp_name);
+ QByteArray ptrType = typeName + '*';
+ QByteArray listType = QByteArrayLiteral("QQmlListProperty<") + typeName + '>';
+ const auto typeId = QMetaType(new QQmlMetaTypeInterface(ptrType));
+ const auto listId = QMetaType(new QQmlListMetaTypeInterface(listType, typeId.iface()));
+ const int objectSize = static_cast<int>(PySide::getSizeOfQObject(reinterpret_cast<PyTypeObject *>(pyObj)));
+
+ const auto typeInfo = qmlTypeInfo(pyObj);
+ const auto attachedInfo = qmlAttachedInfo(pyObjType, typeInfo);
+ const auto extendedInfo = qmlExtendedInfo(pyObj, typeInfo);
+
+ QList<int> ids;
+ QQmlPrivate::RegisterTypeAndRevisions type {
+ QQmlPrivate::RegisterType::StructVersion::Base, // structVersion
+ typeId, listId, objectSize,
+ createInto, // create
+ pyObj, // userdata
+ nullptr, // createValueType (Remove in Qt 7)
+ importData.importName.constData(),
+ importData.toTypeRevision(), // version
+ metaObject,
+ classInfoMetaObject,
+ attachedInfo.factory, // attachedPropertiesFunction
+ attachedInfo.metaObject, // attachedPropertiesMetaObject
+ 0, 0, 0, // parserStatusCast, valueSourceCast, valueInterceptorCast
+ extendedInfo.factory, // extensionObjectCreate
+ extendedInfo.metaObject, // extensionMetaObject
+ defaultCustomParserFactory, // customParser
+ &ids, // qmlTypeIds
+ 0, // finalizerCast
+ false, // forceAnonymous
+ {} // listMetaSequence
+ };
+
+ // Allow registering Qt Quick items.
+ const bool isQuickType = quickRegisterItemFunction && quickRegisterItemFunction(pyObj, &type);
+
+ if (!isQuickType) { // values filled by the Quick registration
+ // QPyQmlParserStatus inherits QObject, QQmlParserStatus, so,
+ // it is found behind the QObject.
+ type.parserStatusCast = isQmlParserStatus(metaObject)
+ ? int(sizeof(QObject))
+ : QQmlPrivate::StaticCastSelector<QObject, QQmlParserStatus>::cast();
+ // Similar for QPyQmlPropertyValueSource
+ type.valueSourceCast = isQmlPropertyValueSource(metaObject)
+ ? int(sizeof(QObject))
+ : QQmlPrivate::StaticCastSelector<QObject, QQmlPropertyValueSource>::cast();
+ type.valueInterceptorCast =
+ QQmlPrivate::StaticCastSelector<QObject, QQmlPropertyValueInterceptor>::cast();
+ }
+
+ QQmlPrivate::qmlregister(QQmlPrivate::TypeAndRevisionsRegistration, &type);
+ const int qmlTypeId = ids.value(0, -1);
+ if (qmlTypeId == -1) {
+ PyErr_Format(PyExc_TypeError, "QML meta type registration of \"%s\" failed.",
+ typeName.constData());
+ }
+ return qmlTypeId;
+}
+
+// Legacy (pre 6.7) compatibility helper for the free register functions.
+int qmlRegisterType(PyObject *pyObj, const char *uri, int versionMajor, int versionMinor,
+ const char *qmlName, const char *noCreationReason,
+ bool creatable)
+{
+ auto *type = checkTypeObject(pyObj, "qmlRegisterType()");
+ if (type == nullptr || !PySide::isQObjectDerived(type, true)
+ || !setClassInfo(type, qmlElementKey, qmlName))
+ return -1;
+ if (!creatable)
+ setUncreatableClassInfo(type, noCreationReason);
+ return qmlRegisterType(pyObj, pyObj, {uri, versionMajor, versionMinor});
+}
+
+// Singleton helpers
+
+// Check the arguments of a singleton callback (C++: "QJSValue cb(QQmlEngine *, QJSEngine *)",
+// but we drop the QJSEngine since it will be the same as QQmlEngine when the latter exists.
+static bool checkSingletonCallback(PyObject *callback)
+{
+ if (callback == nullptr) {
+ PyErr_SetString(PyExc_TypeError, "No callback specified.");
+ return false;
+ }
+ if (PyCallable_Check(callback) == 0) {
+ PyErr_Format(PyExc_TypeError, "Invalid callback specified (%S).", callback);
+ return false;
+ }
+ Shiboken::AutoDecRef funcCode(PyObject_GetAttrString(callback, "__code__"));
+ if (funcCode.isNull()) {
+ PyErr_Format(PyExc_TypeError, "Cannot retrieve code of callback (%S).", callback);
+ return false;
+ }
+ Shiboken::AutoDecRef argCountAttr(PyObject_GetAttrString(funcCode, "co_argcount"));
+ const int argCount = PyLong_AsLong(argCountAttr.object());
+ if (argCount != 1) {
+ PyErr_Format(PyExc_TypeError, "Callback (%S) has %d parameter(s), expected one.",
+ callback, argCount);
+ return false;
+ }
+
+ return true;
+}
+
+// Shared data of a singleton creation callback which dereferences an object on
+// destruction.
+class SingletonQObjectCreationSharedData
+{
+public:
+ Q_DISABLE_COPY_MOVE(SingletonQObjectCreationSharedData)
+
+ SingletonQObjectCreationSharedData(PyObject *cb, PyObject *ref = nullptr) noexcept :
+ callable(cb), reference(ref)
+ {
+ Py_XINCREF(ref);
+ }
+
+ // FIXME: Currently, the QML registration data are in global static variables
+ // and thus cleaned up after Python terminates. Once they are cleaned up
+ // by the QML engine, the code can be activated for proper cleanup of the references.
+ ~SingletonQObjectCreationSharedData()
+#if 0 //
+ ~SingletonQObjectCreationSharedData()
+ {
+ if (reference != nullptr) {
+ Shiboken::GilState gil;
+ Py_DECREF(reference);
+ }
+ }
+#else
+ = default;
+#endif
+
+ PyObject *callable{}; // Callback, static method or type object to be invoked.
+ PyObject *reference{}; // Object to dereference when going out scope
+};
+
+// Base class for QML singleton creation callbacks with helper for error checking.
+class SingletonQObjectCreationBase
+{
+protected:
+ explicit SingletonQObjectCreationBase(PyObject *cb, PyObject *ref = nullptr) :
+ m_data(std::make_shared<SingletonQObjectCreationSharedData>(cb, ref))
+ {
+ }
+
+ static QObject *handleReturnValue(PyObject *retVal);
+
+ std::shared_ptr<SingletonQObjectCreationSharedData> data() const { return m_data; }
+
+private:
+ std::shared_ptr<SingletonQObjectCreationSharedData> m_data;
+};
+
+QObject *SingletonQObjectCreationBase::handleReturnValue(PyObject *retVal)
+{
+ using Shiboken::Conversions::isPythonToCppPointerConvertible;
+ // Make sure the callback returns something we can convert, else the entire application will crash.
+ if (retVal == nullptr) {
+ PyErr_SetString(PyExc_TypeError, "Callback returns 0 value.");
+ return nullptr;
+ }
+ if (isPythonToCppPointerConvertible(qObjectType(), retVal) == nullptr) {
+ PyErr_Format(PyExc_TypeError, "Callback returns invalid value (%S).", retVal);
+ return nullptr;
+ }
+
+ QObject *obj = nullptr;
+ Shiboken::Conversions::pythonToCppPointer(qObjectType(), retVal, &obj);
+ return obj;
+}
+
+// QML singleton creation callback by invoking a type object
+class SingletonQObjectFromTypeCreation : public SingletonQObjectCreationBase
+{
+public:
+ explicit SingletonQObjectFromTypeCreation(PyObject *typeObj) :
+ SingletonQObjectCreationBase(typeObj, typeObj) {}
+
+ QObject *operator ()(QQmlEngine *, QJSEngine *) const
+ {
+ Shiboken::GilState gil;
+ Shiboken::AutoDecRef args(PyTuple_New(0));
+ PyObject *retVal = PyObject_CallObject(data()->callable, args);
+ QObject *result = handleReturnValue(retVal);
+ if (result == nullptr)
+ Py_XDECREF(retVal);
+ return result;
+ }
+};
+
+// QML singleton creation by invoking a callback, passing QQmlEngine. Keeps a
+// references to the the callback.
+class SingletonQObjectCallbackCreation : public SingletonQObjectCreationBase
+{
+public:
+ explicit SingletonQObjectCallbackCreation(PyObject *callback) :
+ SingletonQObjectCreationBase(callback, callback) {}
+ explicit SingletonQObjectCallbackCreation(PyObject *callback, PyObject *ref) :
+ SingletonQObjectCreationBase(callback, ref) {}
+
+ QObject *operator ()(QQmlEngine *engine, QJSEngine *) const
+ {
+ Shiboken::GilState gil;
+ Shiboken::AutoDecRef args(PyTuple_New(1));
+ PyTuple_SET_ITEM(args, 0,
+ Shiboken::Conversions::pointerToPython(qQmlEngineType(), engine));
+ PyObject *retVal = PyObject_CallObject(data()->callable, args);
+ QObject *result = handleReturnValue(retVal);
+ if (result == nullptr)
+ Py_XDECREF(retVal);
+ return result;
+ }
+};
+
+using SingletonQObjectCreation = std::function<QObject*(QQmlEngine *, QJSEngine *)>;
+
+// Modern (6.7) singleton type registration using RegisterSingletonTypeAndRevisions
+// and information set to QMetaClassInfo (QObject only pending QTBUG-110467).
+static int qmlRegisterSingletonTypeV2(PyObject *pyObj, PyObject *pyClassInfoObj,
+ const ImportData &importData,
+ const SingletonQObjectCreation &callback)
+{
+ PyTypeObject *pyObjType = reinterpret_cast<PyTypeObject *>(pyObj);
+ if (!isQObjectDerived(pyObjType, true))
+ return -1;
+
+ const QMetaObject *metaObject = PySide::retrieveMetaObject(pyObjType);
+ Q_ASSERT(metaObject);
+ const QMetaObject *classInfoMetaObject = pyObj == pyClassInfoObj
+ ? metaObject : PySide::retrieveMetaObject(pyClassInfoObj);
+
+ QList<int> ids;
+ QQmlPrivate::RegisterSingletonTypeAndRevisions type {
+ QQmlPrivate::RegisterType::StructVersion::Base, // structVersion
+ importData.importName.constData(),
+ importData.toTypeRevision(), // version
+ callback, // qObjectApi,
+ metaObject,
+ classInfoMetaObject,
+ QMetaType(QMetaType::QObjectStar), // typeId
+ nullptr, // extensionMetaObject
+ nullptr, // extensionObjectCreate
+ &ids
+ };
+
+ QQmlPrivate::qmlregister(QQmlPrivate::SingletonAndRevisionsRegistration, &type);
+ const int qmlTypeId = ids.value(0, -1);
+ if (qmlTypeId == -1) {
+ PyErr_Format(PyExc_TypeError, "Singleton QML meta type registration of \"%s\" failed.",
+ pyObjType->tp_name);
+ }
+ return qmlTypeId;
+}
+
+// Legacy (pre 6.7) singleton type registration using RegisterSingletonType
+// for QObject and value types. Still used by qmlRegisterSingletonType()
+// for the hypothetical case of a value type.
+static int qmlRegisterSingletonType(PyObject *pyObj, const ImportData &importData,
+ const char *qmlName, PyObject *callback,
+ bool isQObject, bool hasCallback)
+{
+ if (hasCallback && !checkSingletonCallback(callback))
+ return -1;
+
+ const QMetaObject *metaObject = nullptr;
+
+ if (isQObject) {
+ PyTypeObject *pyObjType = reinterpret_cast<PyTypeObject *>(pyObj);
+
+ if (!isQObjectDerived(pyObjType, true))
+ return -1;
+
+ metaObject = PySide::retrieveMetaObject(pyObjType);
+ Q_ASSERT(metaObject);
+ }
+
+ QQmlPrivate::RegisterSingletonType type {
+ QQmlPrivate::RegisterType::StructVersion::Base, // structVersion
+ importData.importName.constData(),
+ importData.toTypeRevision(), // version
+ qmlName, // typeName
+ {}, // scriptApi
+ {}, // qObjectApi
+ metaObject, // instanceMetaObject
+ {}, // typeId
+ nullptr, // extensionMetaObject
+ nullptr, // extensionObjectCreate
+ {} // revision
+ };
+
+ if (isQObject) {
+ // FIXME: Fix this to assign new type ids each time.
+ type.typeId = QMetaType(QMetaType::QObjectStar);
+
+ if (hasCallback)
+ type.qObjectApi = SingletonQObjectCallbackCreation(callback);
+ else
+ type.qObjectApi = SingletonQObjectFromTypeCreation(pyObj);
+ } else {
+ type.scriptApi =
+ [callback](QQmlEngine *engine, QJSEngine *) -> QJSValue {
+ using namespace Shiboken;
+
+ Shiboken::GilState gil;
+ AutoDecRef args(PyTuple_New(1));
+
+ PyTuple_SET_ITEM(args, 0, Conversions::pointerToPython(
+ qQmlEngineType(), engine));
+
+ AutoDecRef retVal(PyObject_CallObject(callback, args));
+
+ PyTypeObject *qjsvalueType = qQJSValueType();
+
+ // Make sure the callback returns something we can convert, else the entire application will crash.
+ if (retVal.isNull() ||
+ Conversions::isPythonToCppPointerConvertible(qjsvalueType, retVal) == nullptr) {
+ PyErr_Format(PyExc_TypeError, "Callback returns invalid value.");
+ return QJSValue(QJSValue::UndefinedValue);
+ }
+
+ QJSValue *val = nullptr;
+ Conversions::pythonToCppPointer(qjsvalueType, retVal, &val);
+
+ Py_INCREF(retVal);
+
+ return *val;
+ };
+ }
+
+ return QQmlPrivate::qmlregister(QQmlPrivate::SingletonRegistration, &type);
+}
+
+// Legacy (pre 6.7) compatibility helper for the free register functions.
+int qmlRegisterSingletonType(PyObject *pyObj,const char *uri,
+ int versionMajor, int versionMinor, const char *qmlName,
+ PyObject *callback, bool isQObject, bool hasCallback)
+{
+ return qmlRegisterSingletonType(pyObj, {uri, versionMajor, versionMinor}, qmlName,
+ callback, isQObject, hasCallback);
+}
+
+// Modern (6.7) singleton instance registration using RegisterSingletonTypeAndRevisions
+// and information set to QMetaClassInfo (QObject only).
+static int qmlRegisterSingletonInstance(PyObject *pyObj, const ImportData &importData,
+ PyObject *instanceObject)
+{
+ using namespace Shiboken;
+
+ // Check if the Python Type inherit from QObject
+ PyTypeObject *pyObjType = reinterpret_cast<PyTypeObject *>(pyObj);
+
+ if (!isQObjectDerived(pyObjType, true))
+ return -1;
+
+ // Convert the instanceObject (PyObject) into a QObject
+ QObject *instanceQObject = PySide::convertToQObject(instanceObject, true);
+ if (instanceQObject == nullptr)
+ return -1;
+
+ // Create Singleton Functor to pass the QObject to the Type registration step
+ // similarly to the case when we have a callback
+ QQmlPrivate::SingletonInstanceFunctor registrationFunctor;
+ registrationFunctor.m_object = instanceQObject;
+
+ const QMetaObject *metaObject = PySide::retrieveMetaObject(pyObjType);
+ Q_ASSERT(metaObject);
+
+ QList<int> ids;
+ QQmlPrivate::RegisterSingletonTypeAndRevisions type {
+ QQmlPrivate::RegisterType::StructVersion::Base, // structVersion
+ importData.importName.constData(),
+ importData.toTypeRevision(), // version
+ registrationFunctor, // qObjectApi,
+ metaObject,
+ metaObject, // classInfoMetaObject
+ QMetaType(QMetaType::QObjectStar), // typeId
+ nullptr, // extensionMetaObject
+ nullptr, // extensionObjectCreate
+ &ids
+ };
+
+ QQmlPrivate::qmlregister(QQmlPrivate::SingletonAndRevisionsRegistration, &type);
+ return ids.value(0, -1);
+}
+
+// Legacy (pre 6.7) compatibility helper for the free register functions.
+int qmlRegisterSingletonInstance(PyObject *pyObj, const char *uri, int versionMajor,
+ int versionMinor, const char *qmlName,
+ PyObject *instanceObject)
+{
+ auto *type = checkTypeObject(pyObj, "qmlRegisterSingletonInstance()");
+ if (type == nullptr || !setClassInfo(type, qmlElementKey, qmlName)
+ || !setSingletonClassInfo(type)) {
+ return -1;
+ }
+ return qmlRegisterSingletonInstance(pyObj, {uri, versionMajor, versionMinor},
+ instanceObject);
+}
+
+} // namespace PySide::Qml
+
+enum class RegisterMode {
+ Normal,
+ Singleton
+};
+
+namespace PySide::Qml {
+
+// Check for a static create() method on a decorated singleton.
+// Might set a Python error if the check fails.
+static std::optional<SingletonQObjectCreation>
+ singletonCreateMethod(PyTypeObject *pyObjType)
+{
+ Shiboken::AutoDecRef tpDict(PepType_GetDict(pyObjType));
+ auto *create = PyDict_GetItemString(tpDict.object(), "create");
+ // Method decorated by "@staticmethod"
+ if (create == nullptr || std::strcmp(Py_TYPE(create)->tp_name, "staticmethod") != 0)
+ return std::nullopt;
+ // 3.10: "__wrapped__"
+ Shiboken::AutoDecRef function(PyObject_GetAttrString(create, "__func__"));
+ if (function.isNull()) {
+ PyErr_Format(PyExc_TypeError, "Cannot retrieve function of callback (%S).",
+ create);
+ return std::nullopt;
+ }
+ if (!checkSingletonCallback(function.object()))
+ return std::nullopt;
+ // Reference to the type needs to be kept.
+ return SingletonQObjectCallbackCreation(function.object(),
+ reinterpret_cast<PyObject *>(pyObjType));
+}
+
+PyObject *qmlElementMacro(PyObject *pyObj, const char *decoratorName,
+ const QByteArray &typeName)
+{
+ auto *pyObjType = checkTypeObject(pyObj, decoratorName);
+ if (pyObjType == nullptr)
+ return nullptr;
+
+ if (!PySide::isQObjectDerived(pyObjType, false)) {
+ PyErr_Format(PyExc_TypeError,
+ "%s can only be used with classes inherited from QObject, got %s.",
+ decoratorName, pyObjType->tp_name);
+ return nullptr;
+ }
+
+ if (!setClassInfo(pyObjType, qmlElementKey, typeName))
+ return nullptr;
+
+ RegisterMode mode = RegisterMode::Normal;
+ const auto info = PySide::Qml::qmlTypeInfo(pyObj);
+ auto *registerObject = pyObj;
+ if (info) {
+ if (info->flags.testFlag(PySide::Qml::QmlTypeFlag::Singleton)) {
+ mode = RegisterMode::Singleton;
+ setSingletonClassInfo(pyObjType);
+ }
+ if (info->foreignType)
+ registerObject = reinterpret_cast<PyObject *>(info->foreignType);
+ }
+
+ const auto importDataO = getGlobalImportData(decoratorName);
+ if (!importDataO.has_value())
+ return nullptr;
+ const auto importData = importDataO.value();
+
+ int result{};
+ if (mode == RegisterMode::Singleton) {
+ auto singletonCreateMethodO = singletonCreateMethod(pyObjType);
+ if (!singletonCreateMethodO.has_value()) {
+ if (PyErr_Occurred() != nullptr)
+ return nullptr;
+ singletonCreateMethodO = SingletonQObjectFromTypeCreation(pyObj);
+ }
+ result = PySide::Qml::qmlRegisterSingletonTypeV2(registerObject, pyObj, importData,
+ singletonCreateMethodO.value());
+ } else {
+ result = PySide::Qml::qmlRegisterType(registerObject, pyObj, importData);
+ }
+ if (result == -1) {
+ PyErr_Format(PyExc_TypeError, "%s: Failed to register type %s.",
+ decoratorName, pyObjType->tp_name);
+ return nullptr;
+ }
+
+ return pyObj;
+}
+
+PyObject *qmlElementMacro(PyObject *pyObj)
+{
+ return qmlElementMacro(pyObj, "QmlElement", "auto"_ba);
+}
+
+PyObject *qmlNamedElementMacro(PyObject *pyObj, const QByteArray &typeName)
+{
+ return qmlElementMacro(pyObj, "QmlNamedElement", typeName);
+}
+
+PyObject *qmlAnonymousMacro(PyObject *pyObj)
+{
+ return qmlElementMacro(pyObj, "QmlAnonymous", "anonymous"_ba);
+}
+
+PyObject *qmlSingletonMacro(PyObject *pyObj)
+{
+ PySide::Qml::ensureQmlTypeInfo(pyObj)->flags.setFlag(PySide::Qml::QmlTypeFlag::Singleton);
+ Py_INCREF(pyObj);
+ return pyObj;
+}
+
+QuickRegisterItemFunction getQuickRegisterItemFunction()
+{
+ return quickRegisterItemFunction;
+}
+
+void setQuickRegisterItemFunction(QuickRegisterItemFunction function)
+{
+ quickRegisterItemFunction = function;
+}
+
+} // namespace PySide::Qml
diff --git a/sources/pyside6/libpysideqml/pysideqmlregistertype.h b/sources/pyside6/libpysideqml/pysideqmlregistertype.h
new file mode 100644
index 000000000..859172322
--- /dev/null
+++ b/sources/pyside6/libpysideqml/pysideqmlregistertype.h
@@ -0,0 +1,99 @@
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef PYSIDEQMLREGISTERTYPE_H
+#define PYSIDEQMLREGISTERTYPE_H
+
+#include "pysideqmlmacros.h"
+
+#include <sbkpython.h>
+#include <QtCore/qtconfigmacros.h>
+
+QT_BEGIN_NAMESPACE
+namespace QQmlPrivate
+{
+struct RegisterTypeAndRevisions;
+}
+QT_END_NAMESPACE
+
+namespace PySide::Qml
+{
+
+/**
+ * PySide implementation of qmlRegisterType<T> function.
+ *
+ * This is a helper for the legacy free qmlRegisterType*() type functions.
+ * Decorators should be used instead.
+ *
+ * \param pyObj Python type to be registered.
+ * \param uri QML element uri.
+ * \param versionMajor QML component major version.
+ * \param versionMinor QML component minor version.
+ * \param qmlName QML element name
+ * \return the metatype id of the registered type.
+ */
+PYSIDEQML_API int qmlRegisterType(PyObject *pyObj, const char *uri,
+ int versionMajor, int versionMinor,
+ const char *qmlName, const char *noCreationReason = nullptr,
+ bool creatable = true);
+
+/**
+ * PySide implementation of qmlRegisterSingletonType<T> function.
+ *
+ * This is a helper for the legacy free qmlRegisterSingletonType<T> type function.
+ * Decorators should be used instead.
+ *
+ * \param pyObj Python type to be registered.
+ * \param uri QML element uri.
+ * \param versionMajor QML component major version.
+ * \param versionMinor QML component minor version.
+ * \param qmlName QML element name
+ * \param callback Registration callback
+ * \return the metatype id of the registered type.
+ */
+PYSIDEQML_API int qmlRegisterSingletonType(PyObject *pyObj,const char *uri,
+ int versionMajor, int versionMinor, const char *qmlName,
+ PyObject *callback, bool isQObject, bool hasCallback);
+
+/**
+ * PySide implementation of qmlRegisterSingletonInstance<T> function.
+ *
+ * \param pyObj Python type to be registered.
+ * \param uri QML element uri.
+ * \param versionMajor QML component major version.
+ * \param versionMinor QML component minor version.
+ * \param qmlName QML element name
+ * \param instanceObject singleton object to be registered.
+ * \return the metatype id of the registered type.
+ */
+PYSIDEQML_API int qmlRegisterSingletonInstance(PyObject *pyObj, const char *uri,
+ int versionMajor, int versionMinor,
+ const char *qmlName, PyObject *instanceObject);
+
+/**
+ * PySide implementation of the QML_ELEMENT macro
+ *
+ * \param pyObj Python type to be registered
+ */
+PYSIDEQML_API PyObject *qmlElementMacro(PyObject *pyObj);
+
+/// PySide implementation of the QML_ANONYMOUS macro
+/// \param pyObj Python type to be registered
+PYSIDEQML_API PyObject *qmlAnonymousMacro(PyObject *pyObj);
+
+/// PySide implementation of the QML_SINGLETON macro
+/// \param pyObj Python type to be registered
+PYSIDEQML_API PyObject *qmlSingletonMacro(PyObject *pyObj);
+
+
+// Used by QtQuick module to fill the QQmlPrivate::RegisterType::parserStatusCast,
+// valueSourceCast and valueInterceptorCast fields with the correct values.
+using QuickRegisterItemFunction =
+ bool (*)(PyObject *pyObj, QT_PREPEND_NAMESPACE(QQmlPrivate::RegisterTypeAndRevisions) *);
+
+PYSIDEQML_API QuickRegisterItemFunction getQuickRegisterItemFunction();
+PYSIDEQML_API void setQuickRegisterItemFunction(QuickRegisterItemFunction function);
+
+} // namespace PySide::Qml
+
+#endif // PYSIDEQMLREGISTERTYPE_H
diff --git a/sources/pyside6/libpysideqml/pysideqmlregistertype_p.h b/sources/pyside6/libpysideqml/pysideqmlregistertype_p.h
new file mode 100644
index 000000000..f11f92241
--- /dev/null
+++ b/sources/pyside6/libpysideqml/pysideqmlregistertype_p.h
@@ -0,0 +1,20 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef PYSIDEQMLREGISTERTYPE_P_H
+#define PYSIDEQMLREGISTERTYPE_P_H
+
+#include <sbkpython.h>
+
+#include <QtCore/QByteArray>
+
+PyTypeObject *qObjectType();
+
+
+namespace PySide::Qml {
+
+PyObject *qmlNamedElementMacro(PyObject *pyObj, const QByteArray &typeName);
+
+}
+
+#endif // PYSIDEQMLREGISTERTYPE_P_H
diff --git a/sources/pyside6/libpysideqml/pysideqmltypeinfo.cpp b/sources/pyside6/libpysideqml/pysideqmltypeinfo.cpp
new file mode 100644
index 000000000..f369f7400
--- /dev/null
+++ b/sources/pyside6/libpysideqml/pysideqmltypeinfo.cpp
@@ -0,0 +1,70 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#include "pysideqmltypeinfo_p.h"
+
+#include <QtCore/QDebug>
+#include <QtCore/QHash>
+
+#include <algorithm>
+
+namespace PySide::Qml {
+
+using QmlTypeInfoHash = QHash<const PyObject *, QmlTypeInfoPtr>;
+
+Q_GLOBAL_STATIC(QmlTypeInfoHash, qmlTypeInfoHashStatic);
+
+QmlTypeInfoPtr ensureQmlTypeInfo(const PyObject *o)
+{
+ auto *hash = qmlTypeInfoHashStatic();
+ auto it = hash->find(o);
+ if (it == hash->end())
+ it = hash->insert(o, std::make_shared<QmlTypeInfo>());
+ return it.value();
+}
+
+void insertQmlTypeInfoAlias(const PyObject *o, const QmlTypeInfoPtr &value)
+{
+ qmlTypeInfoHashStatic()->insert(o, value);
+}
+
+QmlTypeInfoPtr qmlTypeInfo(const PyObject *o)
+{
+ auto *hash = qmlTypeInfoHashStatic();
+ auto it = hash->constFind(o);
+ return it != hash->cend() ? it.value() : QmlTypeInfoPtr{};
+}
+
+#ifndef QT_NO_DEBUG_STREAM
+QDebug operator<<(QDebug d, const QmlTypeInfo &i)
+{
+ QDebugStateSaver saver(d);
+ d.noquote();
+ d.nospace();
+ d << "QmlTypeInfo(" << i.flags;
+ if (i.foreignType)
+ d << ", foreignType=" << i.foreignType->tp_name;
+ if (i.attachedType)
+ d << ", attachedType=" << i.attachedType->tp_name;
+ if (i.extensionType)
+ d << ", extensionType=" << i.extensionType->tp_name;
+ d << ')';
+ return d;
+}
+
+QDebug operator<<(QDebug d, const QmlExtensionInfo &e)
+{
+ QDebugStateSaver saver(d);
+ d.noquote();
+ d.nospace();
+ d << "QmlExtensionInfo(";
+ if (e.factory != nullptr && e.metaObject != nullptr)
+ d << '"' << e.metaObject->className() << "\", factory="
+ << reinterpret_cast<const void *>(e.factory);
+ d << ')';
+ return d;
+}
+
+#endif // QT_NO_DEBUG_STREAM
+
+} // namespace PySide::Qml
diff --git a/sources/pyside6/libpysideqml/pysideqmltypeinfo_p.h b/sources/pyside6/libpysideqml/pysideqmltypeinfo_p.h
new file mode 100644
index 000000000..112e127a7
--- /dev/null
+++ b/sources/pyside6/libpysideqml/pysideqmltypeinfo_p.h
@@ -0,0 +1,59 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef PYSIDEQMLTYPEINFO_P_H
+#define PYSIDEQMLTYPEINFO_P_H
+
+#include <sbkpython.h>
+
+#include <QtCore/QByteArray>
+#include <QtCore/QFlags>
+
+#include <memory>
+
+QT_FORWARD_DECLARE_CLASS(QDebug)
+QT_FORWARD_DECLARE_CLASS(QObject)
+QT_FORWARD_DECLARE_STRUCT(QMetaObject)
+
+namespace PySide::Qml {
+
+enum class QmlTypeFlag
+{
+ Singleton = 0x1
+};
+
+Q_DECLARE_FLAGS(QmlTypeFlags, QmlTypeFlag)
+Q_DECLARE_OPERATORS_FOR_FLAGS(QmlTypeFlags)
+
+// Type information associated with QML type objects
+struct QmlTypeInfo
+{
+ QmlTypeFlags flags;
+ PyTypeObject *foreignType = nullptr;
+ PyTypeObject *attachedType = nullptr;
+ PyTypeObject *extensionType = nullptr;
+};
+
+using QmlTypeInfoPtr = std::shared_ptr<QmlTypeInfo>;
+
+QmlTypeInfoPtr ensureQmlTypeInfo(const PyObject *o);
+void insertQmlTypeInfoAlias(const PyObject *o, const QmlTypeInfoPtr &value);
+QmlTypeInfoPtr qmlTypeInfo(const PyObject *o);
+
+// Meta Object and factory function for QmlExtended/QmlAttached
+struct QmlExtensionInfo
+{
+ using Factory = QObject *(*)(QObject *);
+
+ Factory factory;
+ const QMetaObject *metaObject;
+};
+
+#ifndef QT_NO_DEBUG_STREAM
+QDebug operator<<(QDebug d, const QmlTypeInfo &);
+QDebug operator<<(QDebug d, const QmlExtensionInfo &);
+#endif
+
+} // namespace PySide::Qml
+
+#endif // PYSIDEQMLTYPEINFO_P_H
diff --git a/sources/pyside6/libpysideqml/pysideqmluncreatable.cpp b/sources/pyside6/libpysideqml/pysideqmluncreatable.cpp
new file mode 100644
index 000000000..55b15ba5b
--- /dev/null
+++ b/sources/pyside6/libpysideqml/pysideqmluncreatable.cpp
@@ -0,0 +1,111 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#include "pysideqmluncreatable.h"
+#include <pysideclassdecorator_p.h>
+#include <pysideclassinfo.h>
+
+#include <shiboken.h>
+#include <signature.h>
+#include <sbkcppstring.h>
+
+#include <QtCore/qbytearray.h>
+
+using namespace Qt::StringLiterals;
+
+class PySideQmlUncreatablePrivate : public PySide::ClassDecorator::StringDecoratorPrivate
+{
+public:
+ PyObject *tp_call(PyObject *self, PyObject *args, PyObject * /* kw */) override;
+ int tp_init(PyObject *self, PyObject *args, PyObject *kwds) override;
+ const char *name() const override;
+};
+
+const char *PySideQmlUncreatablePrivate::name() const
+{
+ return "QmlUncreatable";
+}
+
+// The call operator is passed the class type and registers the reason
+// in the uncreatableReasonMap()
+PyObject *PySideQmlUncreatablePrivate::tp_call(PyObject *self, PyObject *args, PyObject * /* kw */)
+{
+ PyObject *klass = tp_call_check(args, CheckMode::WrappedType);
+ if (klass== nullptr)
+ return nullptr;
+
+ auto *type = reinterpret_cast<PyTypeObject *>(klass);
+ auto *data = DecoratorPrivate::get<PySideQmlUncreatablePrivate>(self);
+ setUncreatableClassInfo(type, data->string());
+
+ Py_INCREF(klass);
+ return klass;
+}
+
+int PySideQmlUncreatablePrivate::tp_init(PyObject *self, PyObject *args, PyObject * /* kwds */)
+{
+ int result = -1;
+ const auto argsCount = PyTuple_Size(args);
+ if (argsCount == 0) {
+ result = 0; // QML-generated reason
+ } else if (argsCount == 1) {
+ PyObject *arg = PyTuple_GET_ITEM(args, 0);
+ result = arg == Py_None
+ ? 0 // QML-generated reason
+ : convertToString(self, args);
+ }
+
+ if (result != 0) {
+ PyErr_Format(PyExc_TypeError,
+ "QmlUncreatable() takes a single string argument or no argument");
+ }
+
+ return result;
+}
+
+extern "C" {
+
+PyTypeObject *createPySideQmlUncreatableType(void)
+{
+ auto typeSlots =
+ PySide::ClassDecorator::Methods<PySideQmlUncreatablePrivate>::typeSlots();
+
+ PyType_Spec PySideQmlUncreatableType_spec = {
+ "2:PySide6.QtCore.qmlUncreatable",
+ sizeof(PySideClassDecorator),
+ 0,
+ Py_TPFLAGS_DEFAULT,
+ typeSlots.data()
+ };
+ return SbkType_FromSpec(&PySideQmlUncreatableType_spec);
+}
+
+PyTypeObject *PySideQmlUncreatable_TypeF(void)
+{
+ static auto *type = createPySideQmlUncreatableType();
+ return type;
+}
+
+} // extern "C"
+
+static const char *qmlUncreatable_SignatureStrings[] = {
+ "PySide6.QtQml.QmlUncreatable(self,reason:str)",
+ nullptr // Sentinel
+};
+
+void initQmlUncreatable(PyObject *module)
+{
+ if (InitSignatureStrings(PySideQmlUncreatable_TypeF(), qmlUncreatable_SignatureStrings) < 0)
+ return;
+
+ Py_INCREF(PySideQmlUncreatable_TypeF());
+ PyModule_AddObject(module, "QmlUncreatable",
+ reinterpret_cast<PyObject *>(PySideQmlUncreatable_TypeF()));
+}
+
+void setUncreatableClassInfo(PyTypeObject *type, const QByteArray &reason)
+{
+ PySide::ClassInfo::setClassInfo(type, {
+ {"QML.Creatable"_ba, "false"_ba},
+ {"QML.UncreatableReason"_ba, reason} });
+}
diff --git a/sources/pyside6/libpysideqml/pysideqmluncreatable.h b/sources/pyside6/libpysideqml/pysideqmluncreatable.h
new file mode 100644
index 000000000..772ad4ccb
--- /dev/null
+++ b/sources/pyside6/libpysideqml/pysideqmluncreatable.h
@@ -0,0 +1,23 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef PYSIDEQMLUNCREATABLE_H
+#define PYSIDEQMLUNCREATABLE_H
+
+#include <sbkpython.h>
+
+#include <QtCore/QByteArray>
+
+// The QmlUncreatable decorator modifies QmlElement to register an uncreatable
+// type. Due to the (reverse) execution order of decorators, it needs to follow
+// QmlElement.
+extern "C"
+{
+ extern PyTypeObject *PySideQmlUncreatable_TypeF(void);
+}
+
+void initQmlUncreatable(PyObject *module);
+
+void setUncreatableClassInfo(PyTypeObject *type, const QByteArray &reason);
+
+#endif // PYSIDEQMLUNCREATABLE_H
diff --git a/sources/pyside6/plugins/designer/CMakeLists.txt b/sources/pyside6/plugins/designer/CMakeLists.txt
index 50074be51..c86d328cf 100644
--- a/sources/pyside6/plugins/designer/CMakeLists.txt
+++ b/sources/pyside6/plugins/designer/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(PySidePlugin)
# Note: At runtime, the dependency to the shiboken library is resolved
@@ -7,15 +10,12 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
-find_package(Qt6 COMPONENTS Core)
-find_package(Qt6 COMPONENTS Gui)
-find_package(Qt6 COMPONENTS Widgets)
-find_package(Qt6 COMPONENTS UiPlugin)
+find_package(Qt6 COMPONENTS Core Gui Widgets UiPlugin)
qt_add_plugin(PySidePlugin)
target_sources(PySidePlugin PRIVATE
- designercustomwidgets.cpp
+ designercustomwidgets.cpp designercustomwidgets.h
)
# See libshiboken/CMakeLists.txt
@@ -53,4 +53,4 @@ target_link_libraries(PySidePlugin PRIVATE
Qt::Widgets
${SHIBOKEN_PYTHON_LIBRARIES})
-install(TARGETS PySidePlugin LIBRARY DESTINATION "plugins/designer")
+install(TARGETS PySidePlugin LIBRARY DESTINATION "${QT6_INSTALL_PLUGINS}/designer")
diff --git a/sources/pyside6/plugins/designer/designercustomwidgets.cpp b/sources/pyside6/plugins/designer/designercustomwidgets.cpp
index dd758bb98..d23156a9d 100644
--- a/sources/pyside6/plugins/designer/designercustomwidgets.cpp
+++ b/sources/pyside6/plugins/designer/designercustomwidgets.cpp
@@ -1,42 +1,7 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+#undef slots
#include <Python.h> // Include before Qt headers due to 'slots' macro definition
#include "designercustomwidgets.h"
@@ -53,6 +18,8 @@
#include <string_view>
+using namespace Qt::StringLiterals;
+
Q_LOGGING_CATEGORY(lcPySidePlugin, "qt.pysideplugin")
static const char pathVar[] = "PYSIDE_DESIGNER_PLUGINS";
@@ -63,7 +30,7 @@ static const char pythonPathVar[] = "PYTHONPATH";
static QDesignerCustomWidgetCollectionInterface *findPyDesignerCustomWidgetCollection()
{
static const char propertyName[] = "__qt_PySideCustomWidgetCollection";
- if (auto coreApp = QCoreApplication::instance()) {
+ if (auto *coreApp = QCoreApplication::instance()) {
const QVariant value = coreApp->property(propertyName);
if (value.isValid() && value.canConvert<void *>())
return reinterpret_cast<QDesignerCustomWidgetCollectionInterface *>(value.value<void *>());
@@ -83,17 +50,17 @@ static QString pyStringToQString(PyObject *s)
static QString pyStr(PyObject *o)
{
PyObject *pstr = PyObject_Str(o);
- return pstr ? pyStringToQString(pstr) : QString();
+ return pstr != nullptr ? pyStringToQString(pstr) : QString();
}
static QString pyErrorMessage()
{
- QString result = QLatin1String("<error information not available>");
+ QString result = "<error information not available>"_L1;
PyObject *ptype = {};
PyObject *pvalue = {};
PyObject *ptraceback = {};
PyErr_Fetch(&ptype, &pvalue, &ptraceback);
- if (pvalue)
+ if (pvalue != nullptr)
result = pyStr(pvalue);
PyErr_Restore(ptype, pvalue, ptraceback);
return result;
@@ -120,7 +87,7 @@ static bool runPyScript(const char *script, QString *errorMessage)
{
PyObject *main = PyImport_AddModule("__main__");
if (main == nullptr) {
- *errorMessage = QLatin1String("Internal error: Cannot retrieve __main__");
+ *errorMessage = "Internal error: Cannot retrieve __main__"_L1;
return false;
}
PyObject *globalDictionary = PyModule_GetDict(main);
@@ -151,8 +118,7 @@ static bool runPyScriptFile(const QString &fileName, QString *errorMessage)
file.close();
const bool ok = runPyScript(script.constData(), errorMessage);
if (!ok && !errorMessage->isEmpty()) {
- errorMessage->prepend(QLatin1String("Error running ") + fileName
- + QLatin1String(": "));
+ errorMessage->prepend("Error running "_L1 + fileName + ": "_L1);
}
return ok;
}
@@ -190,10 +156,10 @@ static void initVirtualEnvironment()
pythonPath.append(virtualEnvPath + R"(\Lib\site-packages)");
break;
case QOperatingSystemVersion::MacOS:
- pythonPath.append(virtualEnvPath + QByteArrayLiteral("/lib/python") +
+ pythonPath.append(virtualEnvPath + "/lib/python"_ba +
QByteArray::number(majorVersion) + '.'
+ QByteArray::number(minorVersion)
- + QByteArrayLiteral("/site-packages"));
+ + "/site-packages"_ba);
break;
default:
break;
@@ -211,13 +177,20 @@ static void initPython()
qAddPostRoutine(Py_Finalize);
}
+static bool withinQtDesigner = false;
+
PyDesignerCustomWidgets::PyDesignerCustomWidgets(QObject *parent) : QObject(parent)
{
qCDebug(lcPySidePlugin, "%s", __FUNCTION__);
+ withinQtDesigner = QCoreApplication::applicationName() == u"Designer"
+ && QCoreApplication::organizationName() == u"QtProject";
+
if (!qEnvironmentVariableIsSet(pathVar)) {
- qCWarning(lcPySidePlugin, "Environment variable %s is not set, bailing out.",
- pathVar);
+ if (withinQtDesigner) {
+ qCWarning(lcPySidePlugin, "Environment variable %s is not set, bailing out.",
+ pathVar);
+ }
return;
}
@@ -233,7 +206,7 @@ PyDesignerCustomWidgets::PyDesignerCustomWidgets(QObject *parent) : QObject(pare
QDir dir(p);
if (dir.exists()) {
const QFileInfoList matches =
- dir.entryInfoList({QStringLiteral("register*.py")}, QDir::Files,
+ dir.entryInfoList({u"register*.py"_s}, QDir::Files,
QDir::Name);
for (const auto &fi : matches)
pythonFiles.append(fi.absoluteFilePath());
@@ -260,11 +233,13 @@ PyDesignerCustomWidgets::PyDesignerCustomWidgets(QObject *parent) : QObject(pare
qputenv(pythonPathVar, value);
}
- initPython();
+ // Might be initialized already, for example, when loaded from QUiLoader.
+ if (Py_IsInitialized() == 0)
+ initPython();
// Run all register*py files
QString errorMessage;
- for (const auto &pythonFile : qAsConst(pythonFiles)) {
+ for (const auto &pythonFile : std::as_const(pythonFiles)) {
qCDebug(lcPySidePlugin) << "running" << pythonFile;
if (!runPyScriptFile(pythonFile, &errorMessage))
qCWarning(lcPySidePlugin, "%s", qPrintable(errorMessage));
@@ -278,8 +253,9 @@ PyDesignerCustomWidgets::~PyDesignerCustomWidgets()
QList<QDesignerCustomWidgetInterface *> PyDesignerCustomWidgets::customWidgets() const
{
- if (auto collection = findPyDesignerCustomWidgetCollection())
+ if (auto *collection = findPyDesignerCustomWidgetCollection())
return collection->customWidgets();
- qCWarning(lcPySidePlugin, "No instance of QPyDesignerCustomWidgetCollection was found.");
+ if (withinQtDesigner)
+ qCWarning(lcPySidePlugin, "No instance of QPyDesignerCustomWidgetCollection was found.");
return {};
}
diff --git a/sources/pyside6/plugins/designer/designercustomwidgets.h b/sources/pyside6/plugins/designer/designercustomwidgets.h
index d37f41173..2f1db1f31 100644
--- a/sources/pyside6/plugins/designer/designercustomwidgets.h
+++ b/sources/pyside6/plugins/designer/designercustomwidgets.h
@@ -1,44 +1,8 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-#ifndef _PY_DESIGNER_CUSTOM_WIDGETS_H_
-#define _PY_DESIGNER_CUSTOM_WIDGETS_H_
+#ifndef PY_DESIGNER_CUSTOM_WIDGETS_H_
+#define PY_DESIGNER_CUSTOM_WIDGETS_H_
#include <QtUiPlugin/QDesignerCustomWidgetCollectionInterface>
@@ -53,10 +17,12 @@ class PyDesignerCustomWidgets: public QObject,
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.PySide.PyDesignerCustomWidgetsInterface")
public:
+ Q_DISABLE_COPY_MOVE(PyDesignerCustomWidgets)
+
explicit PyDesignerCustomWidgets(QObject *parent = nullptr);
- ~PyDesignerCustomWidgets();
+ ~PyDesignerCustomWidgets() override;
QList<QDesignerCustomWidgetInterface *> customWidgets() const override;
};
-#endif // _PY_DESIGNER_CUSTOM_WIDGETS_H_
+#endif // PY_DESIGNER_CUSTOM_WIDGETS_H_
diff --git a/sources/pyside6/plugins/uitools/CMakeLists.txt b/sources/pyside6/plugins/uitools/CMakeLists.txt
index b24d5f9d7..06d0ae900 100644
--- a/sources/pyside6/plugins/uitools/CMakeLists.txt
+++ b/sources/pyside6/plugins/uitools/CMakeLists.txt
@@ -1,17 +1,17 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(plugins)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
-find_package(Qt6 COMPONENTS Core)
-find_package(Qt6 COMPONENTS Gui)
-find_package(Qt6 COMPONENTS Widgets)
-find_package(Qt6 COMPONENTS UiPlugin)
+find_package(Qt6 COMPONENTS Core Gui Widgets UiPlugin)
set(ui_plugin_src
- customwidgets.cpp
- customwidget.cpp
+ customwidgets.cpp customwidgets.h
+ customwidget.cpp customwidget.h
)
add_library(uiplugin STATIC ${ui_plugin_src})
@@ -20,11 +20,7 @@ if(CMAKE_HOST_UNIX AND NOT CYGWIN)
endif()
add_definitions(-DQT_STATICPLUGIN)
-if(${QT_MAJOR_VERSION} GREATER_EQUAL 6)
- set_property(TARGET pyside6 PROPERTY CXX_STANDARD 17)
-else()
- set_property(TARGET pyside6 PROPERTY CXX_STANDARD 11)
-endif()
+set_property(TARGET pyside6 PROPERTY CXX_STANDARD 17)
target_link_libraries(uiplugin
Qt::Core
diff --git a/sources/pyside6/plugins/uitools/customwidget.cpp b/sources/pyside6/plugins/uitools/customwidget.cpp
index 8b7a61238..976754feb 100644
--- a/sources/pyside6/plugins/uitools/customwidget.cpp
+++ b/sources/pyside6/plugins/uitools/customwidget.cpp
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include "customwidget.h"
#include <QtCore/qdebug.h>
@@ -60,22 +24,22 @@ bool PyCustomWidget::isInitialized() const
QIcon PyCustomWidget::icon() const
{
- return QIcon();
+ return {};
}
QString PyCustomWidget::domXml() const
{
- return QString();
+ return {};
}
QString PyCustomWidget::group() const
{
- return QString();
+ return {};
}
QString PyCustomWidget::includeFile() const
{
- return QString();
+ return {};
}
QString PyCustomWidget::name() const
@@ -85,12 +49,12 @@ QString PyCustomWidget::name() const
QString PyCustomWidget::toolTip() const
{
- return QString();
+ return {};
}
QString PyCustomWidget::whatsThis() const
{
- return QString();
+ return {};
}
// A copy of this code exists in PyDesignerCustomWidget::createWidget()
@@ -100,9 +64,9 @@ QWidget *PyCustomWidget::createWidget(QWidget *parent)
// Create a python instance and return cpp object
PyObject *pyParent = nullptr;
bool unknownParent = false;
- if (parent) {
+ if (parent != nullptr) {
pyParent = reinterpret_cast<PyObject *>(Shiboken::BindingManager::instance().retrieveWrapper(parent));
- if (pyParent) {
+ if (pyParent != nullptr) {
Py_INCREF(pyParent);
} else {
static Shiboken::Conversions::SpecificConverter converter("QWidget*");
@@ -115,11 +79,11 @@ QWidget *PyCustomWidget::createWidget(QWidget *parent)
}
Shiboken::AutoDecRef pyArgs(PyTuple_New(1));
- PyTuple_SET_ITEM(pyArgs, 0, pyParent); // tuple will keep pyParent reference
+ PyTuple_SET_ITEM(pyArgs.object(), 0, pyParent); // tuple will keep pyParent reference
// Call python constructor
- auto result = reinterpret_cast<SbkObject *>(PyObject_CallObject(m_pyObject, pyArgs));
- if (!result) {
+ auto *result = reinterpret_cast<SbkObject *>(PyObject_CallObject(m_pyObject, pyArgs));
+ if (result == nullptr) {
qWarning("Unable to create a Python custom widget of type \"%s\".",
qPrintable(m_name));
PyErr_Print();
@@ -134,7 +98,7 @@ QWidget *PyCustomWidget::createWidget(QWidget *parent)
return reinterpret_cast<QWidget *>(Shiboken::Object::cppPointer(result, Py_TYPE(result)));
}
-void PyCustomWidget::initialize(QDesignerFormEditorInterface *core)
+void PyCustomWidget::initialize(QDesignerFormEditorInterface *)
{
m_initialized = true;
}
diff --git a/sources/pyside6/plugins/uitools/customwidget.h b/sources/pyside6/plugins/uitools/customwidget.h
index b84a967bf..52621f0bd 100644
--- a/sources/pyside6/plugins/uitools/customwidget.h
+++ b/sources/pyside6/plugins/uitools/customwidget.h
@@ -1,51 +1,13 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-#ifndef _PY_CUSTOM_WIDGET_H_
-#define _PY_CUSTOM_WIDGET_H_
+#ifndef PY_CUSTOM_WIDGET_H_
+#define PY_CUSTOM_WIDGET_H_
#include <shiboken.h>
#include <QtUiPlugin/QDesignerCustomWidgetInterface>
-#include <QtCore/qglobal.h>
-
class PyCustomWidget: public QObject, public QDesignerCustomWidgetInterface
{
Q_OBJECT
@@ -72,4 +34,4 @@ private:
bool m_initialized = false;
};
-#endif // _PY_CUSTOM_WIDGET_H_
+#endif // PY_CUSTOM_WIDGET_H_
diff --git a/sources/pyside6/plugins/uitools/customwidgets.cpp b/sources/pyside6/plugins/uitools/customwidgets.cpp
index 28a2a6cf6..93b6b4a10 100644
--- a/sources/pyside6/plugins/uitools/customwidgets.cpp
+++ b/sources/pyside6/plugins/uitools/customwidgets.cpp
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include "customwidgets.h"
#include "customwidget.h"
diff --git a/sources/pyside6/plugins/uitools/customwidgets.h b/sources/pyside6/plugins/uitools/customwidgets.h
index aec817cdf..f67a0847d 100644
--- a/sources/pyside6/plugins/uitools/customwidgets.h
+++ b/sources/pyside6/plugins/uitools/customwidgets.h
@@ -1,44 +1,8 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-#ifndef _PY_CUSTOM_WIDGETS_H_
-#define _PY_CUSTOM_WIDGETS_H_
+#ifndef PY_CUSTOM_WIDGETS_H_
+#define PY_CUSTOM_WIDGETS_H_
#include <shiboken.h>
@@ -54,8 +18,10 @@ class PyCustomWidgets: public QObject, public QDesignerCustomWidgetCollectionInt
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.PySide.PyCustomWidgetsInterface")
public:
+ Q_DISABLE_COPY_MOVE(PyCustomWidgets)
+
explicit PyCustomWidgets(QObject *parent = nullptr);
- ~PyCustomWidgets();
+ ~PyCustomWidgets() override;
QList<QDesignerCustomWidgetInterface*> customWidgets() const override;
diff --git a/sources/pyside6/pyside_version.py b/sources/pyside6/pyside_version.py
index b5ebfa59c..bd78d3316 100644
--- a/sources/pyside6/pyside_version.py
+++ b/sources/pyside6/pyside_version.py
@@ -1,53 +1,17 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-major_version = "6"
-minor_version = "0"
-patch_version = "0"
+major_version = "@pyside_MAJOR_VERSION@"
+minor_version = "@pyside_MINOR_VERSION@"
+patch_version = "@pyside_MICRO_VERSION@"
# For example: "a", "b", "rc"
# (which means "alpha", "beta", "release candidate").
# An empty string means the generated package will be an official release.
-release_version_type = "a"
+release_version_type = "@pyside_PRE_RELEASE_VERSION_TYPE@"
# For example: "1", "2" (which means "beta1", "beta2", if type is "b").
-pre_release_version = "1"
+pre_release_version = "@pyside_PRE_RELEASE_VERSION@"
if __name__ == '__main__':
# Used by CMake.
diff --git a/sources/pyside6/qtexampleicons/CMakeLists.txt b/sources/pyside6/qtexampleicons/CMakeLists.txt
new file mode 100644
index 000000000..1562f7b27
--- /dev/null
+++ b/sources/pyside6/qtexampleicons/CMakeLists.txt
@@ -0,0 +1,52 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+cmake_minimum_required(VERSION 3.18)
+cmake_policy(VERSION 3.18)
+
+project(QtExampleIcons)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTORCC ON)
+
+set(CMAKE_AUTOMOC ON)
+
+find_package(Qt6 COMPONENTS ExampleIconsPrivate)
+
+add_library(QtExampleIcons MODULE module.c)
+
+# See libshiboken/CMakeLists.txt
+if(PYTHON_LIMITED_API)
+ target_compile_definitions(QtExampleIcons PRIVATE "-DPy_LIMITED_API=0x03050000")
+endif()
+
+if(CMAKE_BUILD_TYPE STREQUAL "Debug")
+ if(PYTHON_WITH_DEBUG)
+ target_compile_definitions(QtExampleIcons PRIVATE "-DPy_DEBUG")
+ endif()
+ if (PYTHON_WITH_COUNT_ALLOCS)
+ target_compile_definitions(QtExampleIcons PRIVATE "-DCOUNT_ALLOCS")
+ endif()
+elseif(CMAKE_BUILD_TYPE STREQUAL "Release")
+ target_compile_definitions(QtExampleIcons PRIVATE "-DNDEBUG")
+endif()
+
+target_include_directories(QtExampleIcons PRIVATE ${SHIBOKEN_PYTHON_INCLUDE_DIRS})
+
+get_property(SHIBOKEN_PYTHON_LIBRARIES GLOBAL PROPERTY shiboken_python_libraries)
+
+target_link_libraries(QtExampleIcons PRIVATE
+ Qt::ExampleIconsPrivate
+ ${SHIBOKEN_PYTHON_LIBRARIES})
+
+set_target_properties(QtExampleIcons PROPERTIES
+ PREFIX ""
+ OUTPUT_NAME "QtExampleIcons${SHIBOKEN_PYTHON_EXTENSION_SUFFIX}"
+ LIBRARY_OUTPUT_DIRECTORY "${pyside6_BINARY_DIR}")
+
+if(WIN32)
+ set_property(TARGET QtExampleIcons PROPERTY SUFFIX ".pyd")
+endif()
+
+install(TARGETS QtExampleIcons LIBRARY DESTINATION "${PYTHON_SITE_PACKAGES}/PySide6")
diff --git a/sources/pyside6/qtexampleicons/module.c b/sources/pyside6/qtexampleicons/module.c
new file mode 100644
index 000000000..814204f1a
--- /dev/null
+++ b/sources/pyside6/qtexampleicons/module.c
@@ -0,0 +1,41 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#include <Python.h>
+
+#if defined _WIN32
+# define MODULE_EXPORT __declspec(dllexport)
+#else
+# define MODULE_EXPORT __attribute__ ((visibility("default")))
+#endif
+
+static PyMethodDef QtExampleIconsMethods[] = {
+ {NULL, NULL, 0, NULL}
+};
+
+static struct PyModuleDef moduleDef = {
+ /* m_base */ PyModuleDef_HEAD_INIT,
+ /* m_name */ "QtExampleIcons",
+ /* m_doc */ NULL,
+ /* m_size */ -1,
+ /* m_methods */ QtExampleIconsMethods,
+ /* m_reload */ NULL,
+ /* m_traverse */ NULL,
+ /* m_clear */ NULL,
+ /* m_free */ NULL
+};
+
+MODULE_EXPORT PyObject *PyInit_QtExampleIcons(void)
+{
+ return PyModule_Create(&moduleDef);
+}
+
+int main(int argc, char *argv[])
+{
+#ifndef PYPY_VERSION
+ Py_SetProgramName(L"module-test");
+ Py_Initialize();
+#endif
+ PyInit_QtExampleIcons();
+ return 0;
+}
diff --git a/sources/pyside6/tests/CMakeLists.txt b/sources/pyside6/tests/CMakeLists.txt
index 86150ac1f..539e1aea8 100644
--- a/sources/pyside6/tests/CMakeLists.txt
+++ b/sources/pyside6/tests/CMakeLists.txt
@@ -1,3 +1,14 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+if(PYSIDE_IS_CROSS_BUILD)
+ # SHIBOKEN_PYTHON_INTERPRETER will be empty when cross-building.
+ message(WARNING
+ "Running tests when cross-compiling is not supported because it would require running "
+ "a target python interpreter which might have a different architecture than the host."
+ )
+endif()
+
if(NOT CTEST_TESTING_TIMEOUT)
set(CTEST_TESTING_TIMEOUT 60)
endif()
@@ -6,7 +17,7 @@ endif()
# the path to the testbinding module
get_filename_component(BUILD_DIR "${CMAKE_BINARY_DIR}" DIRECTORY)
get_filename_component(BUILD_DIR "${CMAKE_BINARY_DIR}" DIRECTORY)
-set(QT_DIR "${_qt5Core_install_prefix}")
+set(QT_DIR "${QT6_INSTALL_PREFIX}")
macro(TEST_QT_MODULE var name)
if(NOT DISABLE_${name} AND ${var})
@@ -40,6 +51,16 @@ endif()
add_subdirectory(registry)
add_subdirectory(signals)
add_subdirectory(support)
+add_subdirectory(tools/metaobjectdump)
+add_subdirectory(tools/pyside6-deploy)
+
+if(UNIX AND NOT APPLE)
+ add_subdirectory(tools/pyside6-android-deploy)
+endif()
+
+if (NOT DISABLE_QtQuick)
+ add_subdirectory(tools/pyside6-qml)
+endif()
foreach(shortname IN LISTS all_module_shortnames)
message(STATUS "preparing tests for module 'Qt${shortname}'")
diff --git a/sources/pyside6/tests/Qt3DExtras/Qt3DExtras.pyproject b/sources/pyside6/tests/Qt3DExtras/Qt3DExtras.pyproject
new file mode 100644
index 000000000..4ac255226
--- /dev/null
+++ b/sources/pyside6/tests/Qt3DExtras/Qt3DExtras.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["qt3dextras_test.py"]
+}
diff --git a/sources/pyside6/tests/Qt3DExtras/qt3dextras_test.py b/sources/pyside6/tests/Qt3DExtras/qt3dextras_test.py
index 8d5a95cfc..23e2d6e7e 100644
--- a/sources/pyside6/tests/Qt3DExtras/qt3dextras_test.py
+++ b/sources/pyside6/tests/Qt3DExtras/qt3dextras_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for Q3DExtras'''
@@ -39,7 +13,7 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from helper.usesqguiapplication import UsesQGuiApplication
+from helper.usesqapplication import UsesQApplication
from PySide6.QtCore import (Property, QObject, QPropertyAnimation, QTimer, Signal, Slot)
from PySide6.QtGui import (QGuiApplication, QMatrix4x4, QQuaternion, QVector3D, QWindow)
@@ -149,7 +123,7 @@ class Window(Qt3DExtras.Qt3DWindow):
self.sphereEntity.addComponent(self.material)
-class Qt3DExtrasTestCase(UsesQGuiApplication):
+class Qt3DExtrasTestCase(UsesQApplication):
'''Tests related to Q3DExtras'''
def test3DExtras(self):
diff --git a/sources/pyside6/tests/QtAsyncio/CMakeLists.txt b/sources/pyside6/tests/QtAsyncio/CMakeLists.txt
new file mode 100644
index 000000000..935e0d90a
--- /dev/null
+++ b/sources/pyside6/tests/QtAsyncio/CMakeLists.txt
@@ -0,0 +1,2 @@
+PYSIDE_TEST(qasyncio_test.py)
+PYSIDE_TEST(qasyncio_test_chain.py)
diff --git a/sources/pyside6/tests/QtAsyncio/QtAsyncio.pyproject b/sources/pyside6/tests/QtAsyncio/QtAsyncio.pyproject
new file mode 100644
index 000000000..a36dcd5ad
--- /dev/null
+++ b/sources/pyside6/tests/QtAsyncio/QtAsyncio.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["qt_asyncio_test.py", "qt_asyncio_test_chain.py", "qt_asyncio_test_time.py"]
+}
diff --git a/sources/pyside6/tests/QtAsyncio/qasyncio_test.py b/sources/pyside6/tests/QtAsyncio/qasyncio_test.py
new file mode 100644
index 000000000..f3c971285
--- /dev/null
+++ b/sources/pyside6/tests/QtAsyncio/qasyncio_test.py
@@ -0,0 +1,51 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+'''Test cases for QtAsyncio'''
+
+import unittest
+import asyncio
+
+from PySide6.QtAsyncio import QAsyncioEventLoopPolicy
+
+
+class QAsyncioTestCase(unittest.TestCase):
+ async def sleep(self, output):
+ output += "Hello"
+ await asyncio.sleep(0.2)
+ output += "World"
+
+ async def gather(self, output):
+ await asyncio.gather(self.sleep(output), self.sleep(output), self.sleep(output))
+
+ def test_sleep(self):
+ outputs_expected = []
+ outputs_real = []
+
+ # Run the code without QAsyncioEventLoopPolicy
+ asyncio.set_event_loop_policy(asyncio.DefaultEventLoopPolicy())
+ asyncio.run(self.sleep(outputs_expected))
+
+ # Run the code with QAsyncioEventLoopPolicy and QtEventLoop
+ asyncio.set_event_loop_policy(QAsyncioEventLoopPolicy())
+ asyncio.run(self.sleep(outputs_real))
+
+ self.assertEqual(outputs_expected, outputs_real)
+
+ def test_gather(self):
+ outputs_expected = []
+ outputs_real = []
+
+ # Run the code without QAsyncioEventLoopPolicy
+ asyncio.set_event_loop_policy(asyncio.DefaultEventLoopPolicy())
+ asyncio.run(self.gather(outputs_expected))
+
+ # Run the code with QAsyncioEventLoopPolicy and QtEventLoop
+ asyncio.set_event_loop_policy(QAsyncioEventLoopPolicy())
+ asyncio.run(self.gather(outputs_real))
+
+ self.assertEqual(outputs_expected, outputs_real)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/QtAsyncio/qasyncio_test_cancel_task.py b/sources/pyside6/tests/QtAsyncio/qasyncio_test_cancel_task.py
new file mode 100644
index 000000000..7ef2bb90d
--- /dev/null
+++ b/sources/pyside6/tests/QtAsyncio/qasyncio_test_cancel_task.py
@@ -0,0 +1,46 @@
+# Copyright (C) 2024 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+'''Test cases for QtAsyncio'''
+
+import asyncio
+import unittest
+
+import PySide6.QtAsyncio as QtAsyncio
+
+
+class QAsyncioTestCaseCancelTask(unittest.TestCase):
+ # Taken from https://docs.python.org/3/library/asyncio-task.html#asyncio.Task.cancel
+
+ async def cancel_me(self, output):
+ output += "(1) cancel_me(): before sleep"
+
+ try:
+ await asyncio.sleep(10)
+ except asyncio.CancelledError:
+ output += "(2) cancel_me(): cancel sleep"
+ raise
+ finally:
+ output += "(3) cancel_me(): after sleep"
+
+ async def main(self, output):
+ task = asyncio.create_task(self.cancel_me(output))
+ await asyncio.sleep(0.1)
+ task.cancel()
+ try:
+ await task
+ except asyncio.CancelledError:
+ output += "(4) main(): cancel_me is cancelled now"
+
+ def test_await_tasks(self):
+ output_expected = []
+ output_real = []
+
+ asyncio.run(self.main(output_expected))
+ QtAsyncio.run(self.main(output_real), keep_running=False)
+
+ self.assertEqual(output_real, output_expected)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/QtAsyncio/qasyncio_test_cancel_taskgroup.py b/sources/pyside6/tests/QtAsyncio/qasyncio_test_cancel_taskgroup.py
new file mode 100644
index 000000000..aa8ce4718
--- /dev/null
+++ b/sources/pyside6/tests/QtAsyncio/qasyncio_test_cancel_taskgroup.py
@@ -0,0 +1,57 @@
+# Copyright (C) 2024 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+'''Test cases for QtAsyncio'''
+
+import asyncio
+import unittest
+
+import PySide6.QtAsyncio as QtAsyncio
+
+
+class QAsyncioTestCaseCancelTaskGroup(unittest.TestCase):
+ def setUp(self) -> None:
+ super().setUp()
+ # We only reach the end of the loop if the task is not cancelled.
+ self.loop_end_reached = False
+
+ async def raise_error(self):
+ raise RuntimeError
+
+ async def loop_short(self):
+ self._loop_end_reached = False
+ for _ in range(1000):
+ await asyncio.sleep(1e-3)
+ self._loop_end_reached = True
+
+ async def loop_shorter(self):
+ self._loop_end_reached = False
+ for _ in range(1000):
+ await asyncio.sleep(1e-4)
+ self._loop_end_reached = True
+
+ async def loop_the_shortest(self):
+ self._loop_end_reached = False
+ for _ in range(1000):
+ await asyncio.to_thread(lambda: None)
+ self._loop_end_reached = True
+
+ async def main(self, coro):
+ async with asyncio.TaskGroup() as tg:
+ tg.create_task(coro())
+ tg.create_task(self.raise_error())
+
+ def test_cancel_taskgroup(self):
+ coros = [self.loop_short, self.loop_shorter, self.loop_the_shortest]
+
+ for coro in coros:
+ try:
+ QtAsyncio.run(self.main(coro), keep_running=False)
+ except ExceptionGroup as e:
+ self.assertEqual(len(e.exceptions), 1)
+ self.assertIsInstance(e.exceptions[0], RuntimeError)
+ self.assertFalse(self._loop_end_reached)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/QtAsyncio/qasyncio_test_chain.py b/sources/pyside6/tests/QtAsyncio/qasyncio_test_chain.py
new file mode 100644
index 000000000..a0a949720
--- /dev/null
+++ b/sources/pyside6/tests/QtAsyncio/qasyncio_test_chain.py
@@ -0,0 +1,57 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+'''Test cases for QtAsyncio'''
+
+import unittest
+import asyncio
+import random
+import time
+
+from PySide6.QtAsyncio import QAsyncioEventLoopPolicy
+
+
+class QAsyncioTestCaseChain(unittest.TestCase):
+
+ async def link(self, output, n, i):
+ t = random.randint(0, 5)
+ output += f"link {i}({n}): {t}s "
+ await asyncio.sleep(i)
+ result = f"result {n}-{i}"
+ output += f"link {i}({n}) finished with {result} "
+ return result
+
+ async def chain(self, output, n):
+ link1 = await self.link(output, n, 0.2)
+ link2 = await self.link(output, n, 0.5)
+ output += f"chain {n}: {link1} -> {link2} "
+
+ async def gather(self, output, *args):
+ await asyncio.gather(*(self.chain(output, n) for n in args))
+
+ def test_chain(self):
+ args = [1, 2, 3]
+
+ outputs_expected = []
+ outputs_real = []
+
+ # Run the code without QAsyncioEventLoopPolicy
+ random.seed(17)
+ asyncio.set_event_loop_policy(asyncio.DefaultEventLoopPolicy())
+ start = time.perf_counter()
+ asyncio.run(self.gather(outputs_expected, *args))
+ end_expected = time.perf_counter() - start
+
+ # Run the code with QAsyncioEventLoopPolicy and QtEventLoop
+ random.seed(17)
+ asyncio.set_event_loop_policy(QAsyncioEventLoopPolicy())
+ start = time.perf_counter()
+ asyncio.run(self.gather(outputs_real, *args))
+ end_real = time.perf_counter() - start
+
+ self.assertEqual(outputs_expected, outputs_real)
+ self.assertAlmostEqual(end_expected, end_real, delta=0.5)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/QtAsyncio/qasyncio_test_executor.py b/sources/pyside6/tests/QtAsyncio/qasyncio_test_executor.py
new file mode 100644
index 000000000..25e680b39
--- /dev/null
+++ b/sources/pyside6/tests/QtAsyncio/qasyncio_test_executor.py
@@ -0,0 +1,47 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+'''Test cases for QtAsyncio'''
+
+import unittest
+import asyncio
+
+from concurrent.futures import ThreadPoolExecutor
+
+from PySide6.QtCore import QThread
+from PySide6.QtAsyncio import QAsyncioEventLoopPolicy
+
+
+class QAsyncioTestCaseExecutor(unittest.TestCase):
+ def setUp(self) -> None:
+ super().setUp()
+ self.executor_thread = None
+
+ def tearDown(self) -> None:
+ super().tearDown()
+
+ def blocking_function(self):
+ self.executor_thread = QThread.currentThread()
+ return 42
+
+ async def run_asyncio_executor(self):
+ main_thread = QThread.currentThread()
+ with ThreadPoolExecutor(max_workers=2) as executor:
+ result = await asyncio.get_running_loop().run_in_executor(
+ executor, self.blocking_function)
+
+ # Assert that we are back to the main thread.
+ self.assertEqual(QThread.currentThread(), main_thread)
+
+ # Assert that the blocking function was executed in a different thread.
+ self.assertNotEqual(self.executor_thread, main_thread)
+
+ self.assertEqual(result, 42)
+
+ def test_qasyncio_executor(self):
+ asyncio.set_event_loop_policy(QAsyncioEventLoopPolicy())
+ asyncio.run(self.run_asyncio_executor())
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/QtAsyncio/qasyncio_test_queues.py b/sources/pyside6/tests/QtAsyncio/qasyncio_test_queues.py
new file mode 100644
index 000000000..0bd98c361
--- /dev/null
+++ b/sources/pyside6/tests/QtAsyncio/qasyncio_test_queues.py
@@ -0,0 +1,70 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+'''Test cases for QtAsyncio'''
+
+import unittest
+import asyncio
+import random
+import time
+
+from PySide6.QtAsyncio import QAsyncioEventLoopPolicy
+
+
+class QAsyncioTestCaseQueues(unittest.TestCase):
+
+ async def produce(self, output, queue):
+ for _ in range(random.randint(0, 2)):
+ await asyncio.sleep(random.random())
+ await queue.put(self.i)
+ output += f"{self.i} added to queue\n"
+ self.i += 1
+
+ async def consume(self, output, queue):
+ while True:
+ await asyncio.sleep(random.random())
+ i = await queue.get()
+ output += f"{i} pulled from queue\n"
+ queue.task_done()
+
+ async def main(self, output1, output2, num_producers, num_consumers):
+ self.i = 0
+ queue = asyncio.Queue()
+ producers = [
+ asyncio.create_task(self.produce(output1, queue)) for _ in range(num_producers)]
+ consumers = [
+ asyncio.create_task(self.consume(output2, queue)) for _ in range(num_consumers)]
+ await asyncio.gather(*producers)
+ await queue.join()
+ for consumer in consumers:
+ consumer.cancel()
+
+ def test_queues(self):
+ args = [(2, 3), (2, 1)]
+ for arg in args:
+ outputs_expected1 = []
+ outputs_expected2 = []
+ outputs_real1 = []
+ outputs_real2 = []
+
+ # Run the code without QAsyncioEventLoopPolicy
+ random.seed(17)
+ start = time.perf_counter()
+ asyncio.set_event_loop_policy(asyncio.DefaultEventLoopPolicy())
+ asyncio.run(self.main(outputs_expected1, outputs_expected2, *arg))
+ end_expected = time.perf_counter() - start
+
+ # Run the code with QAsyncioEventLoopPolicy and QtEventLoop
+ random.seed(17)
+ start = time.perf_counter()
+ asyncio.set_event_loop_policy(QAsyncioEventLoopPolicy())
+ asyncio.run(self.main(outputs_real1, outputs_real2, *arg))
+ end_real = time.perf_counter() - start
+
+ self.assertEqual(outputs_expected1, outputs_real1)
+ self.assertEqual(outputs_expected2, outputs_real2)
+ self.assertAlmostEqual(end_expected, end_real, delta=1)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/sources/pyside6/tests/QtAsyncio/qasyncio_test_threadsafe.py b/sources/pyside6/tests/QtAsyncio/qasyncio_test_threadsafe.py
new file mode 100644
index 000000000..5b52db239
--- /dev/null
+++ b/sources/pyside6/tests/QtAsyncio/qasyncio_test_threadsafe.py
@@ -0,0 +1,58 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+'''Test cases for QtAsyncio'''
+
+import unittest
+import asyncio
+import threading
+import time
+
+from PySide6.QtAsyncio import QAsyncioEventLoopPolicy
+
+
+class QAsyncioTestCaseThreadsafe(unittest.TestCase):
+
+ def setUp(self) -> None:
+ super().setUp()
+ asyncio.set_event_loop_policy(QAsyncioEventLoopPolicy())
+ self.loop_event = asyncio.Event()
+
+ def thread_target(self, is_threadsafe):
+ time.sleep(1)
+ if is_threadsafe:
+ # call_soon_threadsafe() wakes the loop that is in another thread, so the
+ # loop checks the event and will not hang.
+ asyncio.get_event_loop().call_soon_threadsafe(self.loop_event.set)
+ else:
+ # call_soon() does not wake the loop that is in another thread, and so the
+ # loop keeps waiting without checking the event and will hang.
+ asyncio.get_event_loop().call_soon(self.loop_event.set)
+
+ async def coro(self, is_threadsafe):
+ thread = threading.Thread(target=self.thread_target, args=(is_threadsafe,))
+ thread.start()
+
+ task = asyncio.create_task(self.loop_event.wait())
+
+ # The timeout is necessary because the loop will hang for the non-threadsafe case.
+ done, pending = await asyncio.wait([task], timeout=2)
+
+ thread.join()
+
+ if is_threadsafe:
+ self.assertEqual(len(done), 1)
+ self.assertEqual(len(pending), 0)
+ else:
+ self.assertEqual(len(done), 0)
+ self.assertEqual(len(pending), 1)
+
+ def test_not_threadsafe(self):
+ asyncio.run(self.coro(False))
+
+ def test_threadsafe(self):
+ asyncio.run(self.coro(True))
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/QtAsyncio/qasyncio_test_time.py b/sources/pyside6/tests/QtAsyncio/qasyncio_test_time.py
new file mode 100644
index 000000000..07a126644
--- /dev/null
+++ b/sources/pyside6/tests/QtAsyncio/qasyncio_test_time.py
@@ -0,0 +1,49 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+'''Test cases for QtAsyncio'''
+
+import unittest
+import asyncio
+import datetime
+
+from PySide6.QtAsyncio import QAsyncioEventLoopPolicy
+
+
+class QAsyncioTestCaseTime(unittest.TestCase):
+
+ def setUp(self):
+ self.previous_time = None
+ self.exception = None
+
+ def display_date(self, end_time, loop):
+ if self.previous_time is not None:
+ try:
+ self.assertAlmostEqual(
+ (datetime.datetime.now() - self.previous_time).total_seconds(), 1, delta=0.1)
+ except AssertionError as e:
+ self.exception = e
+ self.previous_time = datetime.datetime.now()
+ if (loop.time() + 1.0) < end_time:
+ loop.call_later(1, self.display_date, end_time, loop)
+ else:
+ loop.stop()
+
+ def test_time(self):
+ asyncio.set_event_loop_policy(QAsyncioEventLoopPolicy())
+ loop = asyncio.new_event_loop()
+
+ end_time = loop.time() + 3.0
+ loop.call_soon(self.display_date, end_time, loop)
+
+ try:
+ loop.run_forever()
+ finally:
+ loop.close()
+
+ if self.exception is not None:
+ raise self.exception
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/QtBluetooth/CMakeLists.txt b/sources/pyside6/tests/QtBluetooth/CMakeLists.txt
index d68aec0a5..a075c3c9b 100644
--- a/sources/pyside6/tests/QtBluetooth/CMakeLists.txt
+++ b/sources/pyside6/tests/QtBluetooth/CMakeLists.txt
@@ -1 +1,2 @@
PYSIDE_TEST(localdevice.py)
+PYSIDE_TEST(lowenergy_characteristics.py)
diff --git a/sources/pyside6/tests/QtBluetooth/QtBluetooth.pyproject b/sources/pyside6/tests/QtBluetooth/QtBluetooth.pyproject
new file mode 100644
index 000000000..176b335e2
--- /dev/null
+++ b/sources/pyside6/tests/QtBluetooth/QtBluetooth.pyproject
@@ -0,0 +1,4 @@
+{
+ "files": ["localdevice.py",
+ "lowenergy_characteristics.py"]
+}
diff --git a/sources/pyside6/tests/QtBluetooth/localdevice.py b/sources/pyside6/tests/QtBluetooth/localdevice.py
index 29872315d..21801106f 100644
--- a/sources/pyside6/tests/QtBluetooth/localdevice.py
+++ b/sources/pyside6/tests/QtBluetooth/localdevice.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QBluetoothLocalDevice'''
@@ -41,9 +15,11 @@ init_test_paths(False)
from PySide6.QtBluetooth import QBluetoothLocalDevice
+
class QBluetoothLocalDeviceTest(unittest.TestCase):
def testInitialization(self):
device = QBluetoothLocalDevice()
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/pyside6/tests/QtBluetooth/lowenergy_characteristics.py b/sources/pyside6/tests/QtBluetooth/lowenergy_characteristics.py
new file mode 100644
index 000000000..0f7298fec
--- /dev/null
+++ b/sources/pyside6/tests/QtBluetooth/lowenergy_characteristics.py
@@ -0,0 +1,51 @@
+#!/usr/bin/python
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+'''Test cases for QLowEnergyServiceData'''
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from PySide6.QtCore import QUuid
+from PySide6.QtBluetooth import (QBluetoothUuid, QLowEnergyServiceData,
+ QLowEnergyDescriptorData,
+ QLowEnergyCharacteristicData)
+
+
+class QLowEnergyCharacteristicsTest(unittest.TestCase):
+
+ def testCharacteristics(self):
+ uuid = QUuid("11111111-1111-1111-1111-111111111111")
+ self.assertFalse(uuid.isNull())
+
+ new_characteristic = QLowEnergyCharacteristicData()
+ bluetooth_uuid = QBluetoothUuid(uuid)
+ new_characteristic.setUuid(bluetooth_uuid)
+ new_characteristic.setValue(b"blabla")
+ new_characteristic.setValueLength(6, 20)
+
+ desc = QLowEnergyDescriptorData()
+ desc.setUuid(bluetooth_uuid)
+ desc.setValue(b"blabla")
+
+ new_characteristic.addDescriptor(desc)
+ self.assertTrue(new_characteristic.isValid())
+
+ data = QLowEnergyServiceData()
+ data.addCharacteristic(new_characteristic)
+
+ characteristics = data.characteristics()
+ self.assertEqual(len(characteristics), 1)
+
+ self.assertEqual(characteristics[0].uuid(), bluetooth_uuid)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/QtCharts/CMakeLists.txt b/sources/pyside6/tests/QtCharts/CMakeLists.txt
index 16e8b4bc9..4d031937a 100644
--- a/sources/pyside6/tests/QtCharts/CMakeLists.txt
+++ b/sources/pyside6/tests/QtCharts/CMakeLists.txt
@@ -1 +1,2 @@
PYSIDE_TEST(qcharts_test.py)
+PYSIDE_TEST(qcharts_numpy_test.py)
diff --git a/sources/pyside6/tests/QtCharts/QtCharts.pyproject b/sources/pyside6/tests/QtCharts/QtCharts.pyproject
new file mode 100644
index 000000000..6f2bd66f2
--- /dev/null
+++ b/sources/pyside6/tests/QtCharts/QtCharts.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["qcharts_test.py"]
+}
diff --git a/sources/pyside6/tests/QtCharts/qcharts_numpy_test.py b/sources/pyside6/tests/QtCharts/qcharts_numpy_test.py
new file mode 100644
index 000000000..8154020c0
--- /dev/null
+++ b/sources/pyside6/tests/QtCharts/qcharts_numpy_test.py
@@ -0,0 +1,49 @@
+#!/usr/bin/python
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+'''Test cases for QCharts/numpy'''
+
+import os
+import sys
+import unittest
+try:
+ import numpy as np
+ HAVE_NUMPY = True
+except ModuleNotFoundError:
+ HAVE_NUMPY = False
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from helper.usesqapplication import UsesQApplication
+from PySide6.QtCore import QCoreApplication
+from PySide6.QtCharts import QLineSeries
+
+
+class QChartsNumpyTestCase(UsesQApplication):
+ '''Tests related to QCharts/numpy'''
+
+ @unittest.skipUnless(HAVE_NUMPY, "requires numpy")
+ def test(self):
+ """PYSIDE-2313: Verify various types."""
+ line_series = QLineSeries()
+ data_types = [np.short, np.ushort, np.int32, np.uint32,
+ np.int64, np.uint64, np.float32, np.float64]
+ for dt in data_types:
+ print("Testing ", dt)
+ old_size = line_series.count()
+ x_arr = np.array([2], dtype=dt)
+ y_arr = np.array([3], dtype=dt)
+ line_series.appendNp(x_arr, y_arr)
+ size = line_series.count()
+ self.assertEqual(size, old_size + 1)
+ point = line_series.points()[size - 1]
+ self.assertEqual(point.x(), 2)
+ self.assertEqual(point.y(), 3)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/QtCharts/qcharts_test.py b/sources/pyside6/tests/QtCharts/qcharts_test.py
index 2858bf296..8d57c07eb 100644
--- a/sources/pyside6/tests/QtCharts/qcharts_test.py
+++ b/sources/pyside6/tests/QtCharts/qcharts_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QCharts'''
diff --git a/sources/pyside6/tests/QtCore/CMakeLists.txt b/sources/pyside6/tests/QtCore/CMakeLists.txt
index cf7e91e30..f584bfde6 100644
--- a/sources/pyside6/tests/QtCore/CMakeLists.txt
+++ b/sources/pyside6/tests/QtCore/CMakeLists.txt
@@ -1,5 +1,10 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
PYSIDE_TEST(attr_cache_py3k.py)
PYSIDE_TEST(bug_278_test.py)
+PYSIDE_TEST(bug_300_test.py)
+PYSIDE_TEST(bug_324.py)
PYSIDE_TEST(bug_332.py)
PYSIDE_TEST(bug_408.py)
PYSIDE_TEST(bug_428.py)
@@ -26,6 +31,7 @@ PYSIDE_TEST(bug_1019.py)
PYSIDE_TEST(bug_1063.py)
PYSIDE_TEST(bug_1069.py)
PYSIDE_TEST(bug_1313.py)
+PYSIDE_TEST(bug_PYSIDE-41.py)
PYSIDE_TEST(bug_PYSIDE-42.py)
PYSIDE_TEST(bug_PYSIDE-164.py)
PYSIDE_TEST(blocking_signals_test.py)
@@ -78,6 +84,7 @@ PYSIDE_TEST(qlocale_test.py)
PYSIDE_TEST(qlockfile_test.py)
PYSIDE_TEST(qmessageauthenticationcode_test.py)
PYSIDE_TEST(qmetaobject_test.py)
+PYSIDE_TEST(qmetatype_test.py)
PYSIDE_TEST(qmimedatabase_test.py)
PYSIDE_TEST(qmodelindex_internalpointer_test.py)
PYSIDE_TEST(qobject_children_segfault_test.py)
@@ -122,6 +129,7 @@ PYSIDE_TEST(quuid_test.py)
PYSIDE_TEST(qversionnumber_test.py)
PYSIDE_TEST(repr_test.py)
PYSIDE_TEST(setprop_on_ctor_test.py)
+PYSIDE_TEST(signal_sender.py)
PYSIDE_TEST(snake_prop_feature_test.py)
PYSIDE_TEST(staticMetaObject_test.py)
PYSIDE_TEST(static_method_test.py)
@@ -131,6 +139,8 @@ PYSIDE_TEST(translation_test.py)
PYSIDE_TEST(unaryoperator_test.py)
PYSIDE_TEST(unicode_test.py)
PYSIDE_TEST(versioninfo_test.py)
+PYSIDE_TEST(loggingcategorymacros_test.py)
+PYSIDE_TEST(qrunnable_test.py)
if(X11)
PYSIDE_TEST(qhandle_test.py)
diff --git a/sources/pyside6/tests/QtCore/QtCore.pyproject b/sources/pyside6/tests/QtCore/QtCore.pyproject
new file mode 100644
index 000000000..bd5951316
--- /dev/null
+++ b/sources/pyside6/tests/QtCore/QtCore.pyproject
@@ -0,0 +1,148 @@
+{
+ "files": ["attr_cache_py3k.py",
+ "blocking_signals_test.py",
+ "bug_1019.py",
+ "bug_1063.py",
+ "bug_1069.py",
+ "bug_1313.py",
+ "bug_278_test.py",
+ "bug_300_test.py",
+ "bug_324.py",
+ "bug_332.py",
+ "bug_408.py",
+ "bug_428.py",
+ "bug_462.py",
+ "bug_505.py",
+ "bug_515.py",
+ "bug_606.py",
+ "bug_656.py",
+ "bug_686.py",
+ "bug_699.py",
+ "bug_706.py",
+ "bug_820.py",
+ "bug_826.py",
+ "bug_829.py",
+ "bug_835.py",
+ "bug_920.py",
+ "bug_927.py",
+ "bug_931.py",
+ "bug_938.py",
+ "bug_953.py",
+ "bug_987.py",
+ "bug_994.py",
+ "bug_PYSIDE-164.py",
+ "bug_PYSIDE-41.py",
+ "bug_PYSIDE-42.py",
+ "child_event_test.py",
+ "classinfo_test.py",
+ "deepcopy_test.py",
+ "deletelater_test.py",
+ "destroysignal_test.py",
+ "duck_punching_test.py",
+ "emoji_string_test.py",
+ "errormessages_with_features_test.py",
+ "feature_with_uic/window.py",
+ "feature_with_uic/window.ui",
+ "feature_with_uic_test.py",
+ "hash_test.py",
+ "inherits_test.py",
+ "loggingcategorymacros_test.py",
+ "max_signals.py",
+ "missing_symbols_test.py",
+ "mockclass_test.py",
+ "multiple_feature_test.py",
+ "python_conversion.py",
+ "qabs_test.py",
+ "qabstractitemmodel_test.py",
+ "qanimationgroup_test.py",
+ "qbitarray_test.py",
+ "qbytearray_concatenation_operator_test.py",
+ "qbytearray_operator_iadd_test.py",
+ "qbytearray_operator_test.py",
+ "qbytearray_test.py",
+ "qcalendar_test.py",
+ "qcbor_test.py",
+ "qcollator_test.py",
+ "qcommandlineparser_test.py",
+ "qcoreapplication_argv_test.py",
+ "qcoreapplication_instance_test.py",
+ "qcoreapplication_test.py",
+ "qdatastream_test.py",
+ "qdate_test.py",
+ "qdatetime_test.py",
+ "qdir_test.py",
+ "qeasingcurve_test.py",
+ "qenum_test.py",
+ "qevent_test.py",
+ "qfile_test.py",
+ "qfileinfo_test.py",
+ "qfileread_test.py",
+ "qflags_test.py",
+ "qhandle_test.py",
+ "qinstallmsghandler_test.py",
+ "qjsondocument_test.py",
+ "qlinef_test.py",
+ "qlocale_test.py",
+ "qlockfile_test.py",
+ "qmessageauthenticationcode_test.py",
+ "qmetaobject_test.py",
+ "qmetatype_test.py",
+ "qmimedatabase_test.py",
+ "qmodelindex_internalpointer_test.py",
+ "qobject_children_segfault_test.py",
+ "qobject_connect_notify_test.py",
+ "qobject_destructor.py",
+ "qobject_event_filter_test.py",
+ "qobject_inherits_test.py",
+ "qobject_objectproperty_test.py",
+ "qobject_parent_test.py",
+ "qobject_property_test.py",
+ "qobject_protected_methods_test.py",
+ "qobject_test.py",
+ "qobject_timer_event_test.py",
+ "qobject_tr_as_instance_test.py",
+ "qoperatingsystemversion_test.py",
+ "qpoint_test.py",
+ "qprocess_test.py",
+ "qproperty_decorator.py",
+ "qrandomgenerator_test.py",
+ "qrect_test.py",
+ "qregularexpression_test.py",
+ "qresource_test.py",
+ "qsettings_test.py",
+ "qsharedmemory_client.py",
+ "qsharedmemory_test.py",
+ "qsize_test.py",
+ "qslot_object_test.py",
+ "qsocketnotifier_test.py",
+ "qsrand_test.py",
+ "qstandardpaths_test.py",
+ "qstorageinfo_test.py",
+ "qstring_test.py",
+ "qsysinfo_test.py",
+ "qtextstream_test.py",
+ "qthread_prod_cons_test.py",
+ "qthread_signal_test.py",
+ "qthread_test.py",
+ "qtimer_singleshot_test.py",
+ "qtimer_timeout_test.py",
+ "qtimezone_test.py",
+ "qtnamespace_test.py",
+ "qurl_test.py",
+ "qurlquery_test.py",
+ "quuid_test.py",
+ "qversionnumber_test.py",
+ "repr_test.py",
+ "resources.qrc",
+ "resources_mc.py",
+ "setprop_on_ctor_test.py",
+ "snake_prop_feature_test.py",
+ "staticMetaObject_test.py",
+ "static_method_test.py",
+ "thread_signals_test.py",
+ "tr_noop_test.py",
+ "translation_test.py",
+ "unaryoperator_test.py",
+ "unicode_test.py",
+ "versioninfo_test.py"]
+}
diff --git a/sources/pyside6/tests/QtCore/attr_cache_py3k.py b/sources/pyside6/tests/QtCore/attr_cache_py3k.py
index 4044b5f64..c82dbbea3 100644
--- a/sources/pyside6/tests/QtCore/attr_cache_py3k.py
+++ b/sources/pyside6/tests/QtCore/attr_cache_py3k.py
@@ -1,43 +1,5 @@
-# This Python file uses the following encoding: utf-8
-
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
'''
Unit tests for attribute cache in Python 3
diff --git a/sources/pyside6/tests/QtCore/blocking_signals_test.py b/sources/pyside6/tests/QtCore/blocking_signals_test.py
index b51ba2c7a..493abb071 100644
--- a/sources/pyside6/tests/QtCore/blocking_signals_test.py
+++ b/sources/pyside6/tests/QtCore/blocking_signals_test.py
@@ -1,33 +1,9 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
''' Test case for QObject.signalsBlocked() and blockSignal()'''
+import gc
import os
import sys
from tempfile import mkstemp
@@ -38,7 +14,12 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtCore import QObject, SIGNAL, QFile, QSignalBlocker
+from PySide6.QtCore import QObject, Signal, QFile, QSignalBlocker
+
+
+class Sender(QObject):
+ mysignal = Signal()
+ mysignal_int_int = Signal(int, int)
class TestSignalsBlockedBasic(unittest.TestCase):
@@ -60,6 +41,8 @@ class TestSignalsBlockedBasic(unittest.TestCase):
blocker.reblock()
self.assertTrue(obj.signalsBlocked())
del blocker
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertTrue(not obj.signalsBlocked())
def testContext(self):
@@ -69,13 +52,21 @@ class TestSignalsBlockedBasic(unittest.TestCase):
self.assertTrue(obj.signalsBlocked())
self.assertTrue(not obj.signalsBlocked())
+ def testContextWithAs(self):
+ obj = QObject()
+ self.assertTrue(not obj.signalsBlocked())
+ with QSignalBlocker(obj) as blocker:
+ self.assertTrue(obj.signalsBlocked())
+ self.assertEqual(type(blocker), QSignalBlocker)
+ self.assertTrue(not obj.signalsBlocked())
+
class TestSignalsBlocked(unittest.TestCase):
'''Test case to check if the signals are really blocked'''
def setUp(self):
# Set up the basic resources needed
- self.obj = QObject()
+ self.obj = Sender()
self.args = tuple()
self.called = False
@@ -83,6 +74,8 @@ class TestSignalsBlocked(unittest.TestCase):
# Delete used resources
del self.obj
del self.args
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
def callback(self, *args):
# Default callback
@@ -93,27 +86,28 @@ class TestSignalsBlocked(unittest.TestCase):
def testShortCircuitSignals(self):
# Blocking of Python short-circuit signals
- QObject.connect(self.obj, SIGNAL('mysignal()'), self.callback)
+ self.obj.mysignal.connect(self.callback)
- self.obj.emit(SIGNAL('mysignal()'))
+ self.obj.mysignal.emit()
self.assertTrue(self.called)
self.called = False
self.obj.blockSignals(True)
- self.obj.emit(SIGNAL('mysignal()'))
+ self.obj.mysignal.emit()
self.assertTrue(not self.called)
def testPythonSignals(self):
# Blocking of Python typed signals
- QObject.connect(self.obj, SIGNAL('mysignal(int,int)'), self.callback)
+
+ self.obj.mysignal_int_int.connect(self.callback)
self.args = (1, 3)
- self.obj.emit(SIGNAL('mysignal(int,int)'), *self.args)
+ self.obj.mysignal_int_int.emit(*self.args)
self.assertTrue(self.called)
self.called = False
self.obj.blockSignals(True)
- self.obj.emit(SIGNAL('mysignal(int,int)'), *self.args)
+ self.obj.mysignal_int_int.emit(*self.args)
self.assertTrue(not self.called)
@@ -132,6 +126,8 @@ class TestQFileSignalBlocking(unittest.TestCase):
# Release acquired resources
os.remove(self.filename)
del self.qfile
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
def callback(self):
# Default callback
@@ -140,7 +136,7 @@ class TestQFileSignalBlocking(unittest.TestCase):
def testAboutToCloseBlocking(self):
# QIODevice.aboutToClose() blocking
- QObject.connect(self.qfile, SIGNAL('aboutToClose()'), self.callback)
+ self.qfile.aboutToClose.connect(self.callback)
self.assertTrue(self.qfile.open(QFile.ReadOnly))
self.qfile.close()
diff --git a/sources/pyside6/tests/QtCore/bug_1019.py b/sources/pyside6/tests/QtCore/bug_1019.py
index 125951452..4a35956b1 100644
--- a/sources/pyside6/tests/QtCore/bug_1019.py
+++ b/sources/pyside6/tests/QtCore/bug_1019.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -55,6 +30,7 @@ class MyTimer2 (MyTimer):
pass
def start(self):
+ """ 'Overrides' non-virtual slot QTimer.start()."""
self.startCalled = True
QCoreApplication.instance().quit()
diff --git a/sources/pyside6/tests/QtCore/bug_1063.py b/sources/pyside6/tests/QtCore/bug_1063.py
index e83886221..88c4bb51e 100644
--- a/sources/pyside6/tests/QtCore/bug_1063.py
+++ b/sources/pyside6/tests/QtCore/bug_1063.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
''' unit test for BUG #1063 '''
diff --git a/sources/pyside6/tests/QtCore/bug_1069.py b/sources/pyside6/tests/QtCore/bug_1069.py
index ca99a408d..760918cd9 100644
--- a/sources/pyside6/tests/QtCore/bug_1069.py
+++ b/sources/pyside6/tests/QtCore/bug_1069.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
''' unit test for BUG #1069 '''
diff --git a/sources/pyside6/tests/QtCore/bug_1313.py b/sources/pyside6/tests/QtCore/bug_1313.py
index d384b44ba..ecc22c43b 100644
--- a/sources/pyside6/tests/QtCore/bug_1313.py
+++ b/sources/pyside6/tests/QtCore/bug_1313.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
''' unit test for BUG #1313 '''
diff --git a/sources/pyside6/tests/QtCore/bug_278_test.py b/sources/pyside6/tests/QtCore/bug_278_test.py
index b130d2b03..8d2f4b47e 100644
--- a/sources/pyside6/tests/QtCore/bug_278_test.py
+++ b/sources/pyside6/tests/QtCore/bug_278_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtCore/bug_300_test.py b/sources/pyside6/tests/QtCore/bug_300_test.py
new file mode 100644
index 000000000..b9768bf9d
--- /dev/null
+++ b/sources/pyside6/tests/QtCore/bug_300_test.py
@@ -0,0 +1,29 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from PySide6.QtCore import QModelIndex, QStringListModel
+
+
+class TestQAbstractItemModelSignals(unittest.TestCase):
+ def sigCallback(self, index, r, c):
+ self._called = True
+
+ def testSignals(self):
+ self._called = False
+ m = QStringListModel()
+ m.rowsAboutToBeInserted[QModelIndex, int, int].connect(self.sigCallback)
+ m.insertRows(0, 3)
+ self.assertTrue(self._called)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/QtCore/bug_324.py b/sources/pyside6/tests/QtCore/bug_324.py
new file mode 100644
index 000000000..0aa17c465
--- /dev/null
+++ b/sources/pyside6/tests/QtCore/bug_324.py
@@ -0,0 +1,43 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+''' Test bug 324: http://bugs.openbossa.org/show_bug.cgi?id=324'''
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from PySide6.QtCore import QCoreApplication, QObject, Signal
+
+
+class QBug(QObject):
+ def __init__(self, parent=None):
+ QObject.__init__(self, parent)
+
+ def check(self):
+ self.done.emit("abc")
+
+ done = Signal(str)
+
+
+class Bug324(unittest.TestCase):
+
+ def on_done(self, val):
+ self.value = val
+
+ def testBug(self):
+ app = QCoreApplication([])
+ bug = QBug()
+ self.value = ''
+ bug.done.connect(self.on_done)
+ bug.check()
+ self.assertEqual(self.value, 'abc')
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/QtCore/bug_332.py b/sources/pyside6/tests/QtCore/bug_332.py
index 333f7fcdf..8d55bc87f 100644
--- a/sources/pyside6/tests/QtCore/bug_332.py
+++ b/sources/pyside6/tests/QtCore/bug_332.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtCore/bug_408.py b/sources/pyside6/tests/QtCore/bug_408.py
index cb501bcfb..30459172c 100644
--- a/sources/pyside6/tests/QtCore/bug_408.py
+++ b/sources/pyside6/tests/QtCore/bug_408.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtCore/bug_428.py b/sources/pyside6/tests/QtCore/bug_428.py
index 184f7a30d..8fb5d4827 100644
--- a/sources/pyside6/tests/QtCore/bug_428.py
+++ b/sources/pyside6/tests/QtCore/bug_428.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtCore/bug_462.py b/sources/pyside6/tests/QtCore/bug_462.py
index 1d16e2ab9..04a42fe08 100644
--- a/sources/pyside6/tests/QtCore/bug_462.py
+++ b/sources/pyside6/tests/QtCore/bug_462.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -41,7 +16,7 @@ from PySide6.QtCore import QObject, QCoreApplication, QEvent, QThread
class MyEvent(QEvent):
def __init__(self, i):
print("TYPE:", type(QEvent.User))
- super().__init__(QEvent.Type(QEvent.User + 100))
+ super().__init__(QEvent.Type(QEvent.User))
self.i = i
diff --git a/sources/pyside6/tests/QtCore/bug_505.py b/sources/pyside6/tests/QtCore/bug_505.py
index a00973fea..e8655a84e 100644
--- a/sources/pyside6/tests/QtCore/bug_505.py
+++ b/sources/pyside6/tests/QtCore/bug_505.py
@@ -1,31 +1,7 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+import gc
import os
import sys
import unittest
@@ -54,6 +30,8 @@ class CheckForEventsTypes(unittest.TestCase):
o = MyBaseObject(p)
del o
del p
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
if __name__ == '__main__':
diff --git a/sources/pyside6/tests/QtCore/bug_515.py b/sources/pyside6/tests/QtCore/bug_515.py
index 2e9ff83d6..4e270a441 100644
--- a/sources/pyside6/tests/QtCore/bug_515.py
+++ b/sources/pyside6/tests/QtCore/bug_515.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
""" Unittest for bug #515 """
""" http://bugs.openbossa.org/show_bug.cgi?id=515 """
@@ -51,7 +26,7 @@ def _cleanup():
def _checkCleanup():
global callCleanup
- assert(callCleanup)
+ assert (callCleanup)
app = QCoreApplication([])
diff --git a/sources/pyside6/tests/QtCore/bug_606.py b/sources/pyside6/tests/QtCore/bug_606.py
index f1245456c..4fed16b6e 100644
--- a/sources/pyside6/tests/QtCore/bug_606.py
+++ b/sources/pyside6/tests/QtCore/bug_606.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtCore/bug_656.py b/sources/pyside6/tests/QtCore/bug_656.py
index d58261dc2..066dc1a02 100644
--- a/sources/pyside6/tests/QtCore/bug_656.py
+++ b/sources/pyside6/tests/QtCore/bug_656.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtCore/bug_686.py b/sources/pyside6/tests/QtCore/bug_686.py
index e4c027ee1..6425a4b86 100644
--- a/sources/pyside6/tests/QtCore/bug_686.py
+++ b/sources/pyside6/tests/QtCore/bug_686.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -50,8 +25,8 @@ class MyWriteThread(QThread):
self.started = True
while not self.lock.tryLockForWrite():
pass
- self.lock.unlock()
self.canQuit = True
+ self.lock.unlock()
class MyReadThread(QThread):
@@ -65,8 +40,8 @@ class MyReadThread(QThread):
self.started = True
while not self.lock.tryLockForRead():
pass
- self.lock.unlock()
self.canQuit = True
+ self.lock.unlock()
class MyMutexedThread(QThread):
@@ -93,10 +68,10 @@ class TestQMutex (unittest.TestCase):
with QReadLocker(lock):
thread.start()
while not thread.started:
- pass
+ QThread.msleep(10)
self.assertFalse(thread.canQuit)
- thread.wait(2000)
+ self.assertTrue(thread.wait(2000))
self.assertTrue(thread.canQuit)
def testWriteLocker(self):
@@ -106,10 +81,10 @@ class TestQMutex (unittest.TestCase):
with QWriteLocker(lock):
thread.start()
while not thread.started:
- pass
+ QThread.msleep(10)
self.assertFalse(thread.canQuit)
- thread.wait(2000)
+ self.assertTrue(thread.wait(2000))
self.assertTrue(thread.canQuit)
def testMutexLocker(self):
@@ -119,12 +94,25 @@ class TestQMutex (unittest.TestCase):
with QMutexLocker(mutex):
thread.start()
while not thread.started:
- pass
+ QThread.msleep(10)
self.assertFalse(thread.canQuit)
- thread.wait(2000)
+ self.assertTrue(thread.wait(2000))
self.assertTrue(thread.canQuit)
+ def testWithAsLocker(self):
+ lock = QReadWriteLock()
+ with QReadLocker(lock) as locker:
+ self.assertTrue(isinstance(locker, QReadLocker))
+ with QWriteLocker(lock) as locker:
+ self.assertTrue(isinstance(locker, QWriteLocker))
+ mutex = QMutex()
+ with QMutexLocker(mutex) as locker:
+ self.assertTrue(isinstance(locker, QMutexLocker))
+ with self.assertRaises(TypeError):
+ with QMutexLocker(lock) as locker:
+ pass
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/pyside6/tests/QtCore/bug_699.py b/sources/pyside6/tests/QtCore/bug_699.py
index e624640d2..02da46ff1 100644
--- a/sources/pyside6/tests/QtCore/bug_699.py
+++ b/sources/pyside6/tests/QtCore/bug_699.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtCore/bug_706.py b/sources/pyside6/tests/QtCore/bug_706.py
index 813181726..7db773240 100644
--- a/sources/pyside6/tests/QtCore/bug_706.py
+++ b/sources/pyside6/tests/QtCore/bug_706.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtCore/bug_820.py b/sources/pyside6/tests/QtCore/bug_820.py
index dfd6c6b63..ba0d33068 100644
--- a/sources/pyside6/tests/QtCore/bug_820.py
+++ b/sources/pyside6/tests/QtCore/bug_820.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import functools
import os
diff --git a/sources/pyside6/tests/QtCore/bug_826.py b/sources/pyside6/tests/QtCore/bug_826.py
index 3b1fb3714..95edc0a7c 100644
--- a/sources/pyside6/tests/QtCore/bug_826.py
+++ b/sources/pyside6/tests/QtCore/bug_826.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -43,7 +18,7 @@ TEST_EVENT_TYPE = QEvent.Type(QEvent.registerEventType())
class TestEvent(QEvent):
- TestEventType = QEvent.Type(QEvent.registerEventType())
+ TestEventType = QEvent.Type(TEST_EVENT_TYPE)
def __init__(self, rand=0):
super().__init__(TestEvent.TestEventType)
@@ -58,10 +33,6 @@ class TestEnums(unittest.TestCase):
self.assertTrue(QEvent.User <= TestEvent.TestEventType <= QEvent.MaxUser)
self.assertTrue(QEvent.User <= TEST_EVENT_TYPE <= QEvent.MaxUser)
- def testUserTypesRepr(self):
- self.assertEqual(eval(repr(TestEvent.TestEventType)), TestEvent.TestEventType)
- self.assertEqual(eval(repr(TEST_EVENT_TYPE)), TEST_EVENT_TYPE)
-
if __name__ == '__main__':
unittest.main()
diff --git a/sources/pyside6/tests/QtCore/bug_829.py b/sources/pyside6/tests/QtCore/bug_829.py
index c5636f62a..9a57e0399 100644
--- a/sources/pyside6/tests/QtCore/bug_829.py
+++ b/sources/pyside6/tests/QtCore/bug_829.py
@@ -1,34 +1,10 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Copyright (C) 2011 Thomas Perl <thp.io/about>
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# Copyright (C) 2011 Thomas Perl <thp.io/about>
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
# Test case for PySide bug 829
+import gc
import os
import sys
import unittest
@@ -52,6 +28,8 @@ class QVariantConversions(unittest.TestCase):
confFile.close()
self._confFileName = confFile.fileName()
del confFile
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
s = QSettings(self._confFileName, QSettings.IniFormat)
self.assertEqual(s.status(), QSettings.NoError)
# Save value
@@ -59,6 +37,8 @@ class QVariantConversions(unittest.TestCase):
s.sync()
self.assertEqual(s.status(), QSettings.NoError)
del s
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
# Restore value
s = QSettings(self._confFileName, QSettings.IniFormat)
diff --git a/sources/pyside6/tests/QtCore/bug_835.py b/sources/pyside6/tests/QtCore/bug_835.py
index e2217ed0c..6d91b6e0a 100644
--- a/sources/pyside6/tests/QtCore/bug_835.py
+++ b/sources/pyside6/tests/QtCore/bug_835.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtCore/bug_920.py b/sources/pyside6/tests/QtCore/bug_920.py
index e3e087c72..23c8d6201 100644
--- a/sources/pyside6/tests/QtCore/bug_920.py
+++ b/sources/pyside6/tests/QtCore/bug_920.py
@@ -1,32 +1,6 @@
#!/usr/bin/env python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtCore/bug_927.py b/sources/pyside6/tests/QtCore/bug_927.py
index f7dd21841..1ecea61b2 100644
--- a/sources/pyside6/tests/QtCore/bug_927.py
+++ b/sources/pyside6/tests/QtCore/bug_927.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtCore/bug_931.py b/sources/pyside6/tests/QtCore/bug_931.py
index 5f4f3b14c..f233c2a26 100644
--- a/sources/pyside6/tests/QtCore/bug_931.py
+++ b/sources/pyside6/tests/QtCore/bug_931.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtCore/bug_938.py b/sources/pyside6/tests/QtCore/bug_938.py
index 823a99e3b..3aca25947 100644
--- a/sources/pyside6/tests/QtCore/bug_938.py
+++ b/sources/pyside6/tests/QtCore/bug_938.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtCore/bug_953.py b/sources/pyside6/tests/QtCore/bug_953.py
index 0a8c3bdcb..a9cacc97e 100644
--- a/sources/pyside6/tests/QtCore/bug_953.py
+++ b/sources/pyside6/tests/QtCore/bug_953.py
@@ -1,31 +1,7 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+import gc
import os
import sys
@@ -48,6 +24,8 @@ class Dispatcher(QObject):
def _finish(self):
del self._me # It can't crash here!
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
QTimer.singleShot(10, QCoreApplication.instance().quit)
diff --git a/sources/pyside6/tests/QtCore/bug_987.py b/sources/pyside6/tests/QtCore/bug_987.py
index 42d1f5fcf..a8c9799e0 100644
--- a/sources/pyside6/tests/QtCore/bug_987.py
+++ b/sources/pyside6/tests/QtCore/bug_987.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -44,7 +19,7 @@ class TestBug987(unittest.TestCase):
def testInvalidDisconnection(self):
o = QObject()
- self.assertRaises(RuntimeError, o.destroyed.disconnect, self.callback)
+ self.assertFalse(o.destroyed.disconnect(self.callback))
if __name__ == '__main__':
diff --git a/sources/pyside6/tests/QtCore/bug_994.py b/sources/pyside6/tests/QtCore/bug_994.py
index adf41b2d3..464fe3120 100644
--- a/sources/pyside6/tests/QtCore/bug_994.py
+++ b/sources/pyside6/tests/QtCore/bug_994.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtCore/bug_PYSIDE-164.py b/sources/pyside6/tests/QtCore/bug_PYSIDE-164.py
index 170444fd8..84859af84 100644
--- a/sources/pyside6/tests/QtCore/bug_PYSIDE-164.py
+++ b/sources/pyside6/tests/QtCore/bug_PYSIDE-164.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -35,16 +10,19 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtCore import QCoreApplication, QEventLoop, QObject, Qt, QThread, QTimer, SIGNAL
+from PySide6.QtCore import QCoreApplication, QEventLoop, QObject, Qt, QThread, Signal
class Emitter(QThread):
+
+ signal = Signal(int)
+
def __init__(self):
super().__init__()
def run(self):
print("Before emit.")
- self.emit(SIGNAL("signal(int)"), 0)
+ self.signal.emit(0)
print("After emit.")
@@ -61,12 +39,11 @@ class Receiver(QObject):
class TestBugPYSIDE164(unittest.TestCase):
def testBlockingSignal(self):
- app = QCoreApplication.instance() or QCoreApplication([])
+ app = QCoreApplication.instance() or QCoreApplication([]) # noqa: F841
eventloop = QEventLoop()
emitter = Emitter()
receiver = Receiver(eventloop)
- emitter.connect(emitter, SIGNAL("signal(int)"),
- receiver.receive, Qt.BlockingQueuedConnection)
+ emitter.signal.connect(receiver.receive, Qt.BlockingQueuedConnection)
emitter.start()
retval = eventloop.exec()
emitter.wait(2000)
diff --git a/sources/pyside6/tests/QtCore/bug_PYSIDE-41.py b/sources/pyside6/tests/QtCore/bug_PYSIDE-41.py
new file mode 100644
index 000000000..2830f8050
--- /dev/null
+++ b/sources/pyside6/tests/QtCore/bug_PYSIDE-41.py
@@ -0,0 +1,49 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from PySide6.QtCore import QPersistentModelIndex, QStringListModel
+
+
+class TestBugPYSIDE41(unittest.TestCase):
+
+ def testIt(self):
+
+ # list of single-character strings
+ strings = list('abcdefghijklmnopqrstuvwxyz')
+
+ model = QStringListModel(strings)
+
+ # Test hashing of both QModelIndex and QPersistentModelIndex
+ indexFunctions = []
+ indexFunctions.append(model.index)
+ indexFunctions.append(lambda i: QPersistentModelIndex(model.index(i)))
+
+ for indexFunction in indexFunctions:
+
+ # If two objects compare equal, their hashes MUST also be equal. (The
+ # reverse is not a requirement.)
+ for i, _ in enumerate(strings):
+ index1 = indexFunction(i)
+ index2 = indexFunction(i)
+ self.assertEqual(index1, index2)
+ self.assertEqual(hash(index1), hash(index2))
+
+ # Adding the full set of indexes to itself is a no-op.
+ allIndexes1 = set(indexFunction(i) for i, _ in enumerate(strings))
+ allIndexes2 = set(indexFunction(i) for i, _ in enumerate(strings))
+ allIndexesCombined = allIndexes1 & allIndexes2
+ self.assertEqual(allIndexes1, allIndexesCombined)
+ self.assertEqual(allIndexes2, allIndexesCombined)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/QtCore/bug_PYSIDE-42.py b/sources/pyside6/tests/QtCore/bug_PYSIDE-42.py
index 448312606..b602b7569 100644
--- a/sources/pyside6/tests/QtCore/bug_PYSIDE-42.py
+++ b/sources/pyside6/tests/QtCore/bug_PYSIDE-42.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtCore/child_event_test.py b/sources/pyside6/tests/QtCore/child_event_test.py
index 29c51e2aa..6b17ddc93 100644
--- a/sources/pyside6/tests/QtCore/child_event_test.py
+++ b/sources/pyside6/tests/QtCore/child_event_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test case for QObject.childEvent and QTimer.childEvent overloading'''
@@ -40,7 +14,7 @@ from init_paths import init_test_paths
init_test_paths(False)
from PySide6.QtCore import QObject, QTimer, QCoreApplication
-from helper.usesqcoreapplication import UsesQCoreApplication
+from helper.usesqapplication import UsesQApplication
class ExtQObject(QObject):
@@ -63,14 +37,14 @@ class ExtQTimer(QTimer):
self.child_event_received = True
-class TestChildEvent(UsesQCoreApplication):
+class TestChildEvent(UsesQApplication):
'''Test case for QObject::childEvent and QTimer::childEvent'''
def setUp(self):
- UsesQCoreApplication.setUp(self)
+ UsesQApplication.setUp(self)
def tearDown(self):
- UsesQCoreApplication.tearDown(self)
+ UsesQApplication.tearDown(self)
def testQObject(self):
parent = ExtQObject()
diff --git a/sources/pyside6/tests/QtCore/classinfo_test.py b/sources/pyside6/tests/QtCore/classinfo_test.py
index 697f9c8d8..0b0a0b4b6 100644
--- a/sources/pyside6/tests/QtCore/classinfo_test.py
+++ b/sources/pyside6/tests/QtCore/classinfo_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import sys
import os
@@ -58,7 +33,7 @@ class TestClassInfo(unittest.TestCase):
self.assertEqual(ci.value(), 'http://www.pyside.org')
def test_dictionary(self):
- @ClassInfo({'author':'pyside', 'author company':'The Qt Company'})
+ @ClassInfo({'author': 'pyside', 'author company': 'The Qt Company'})
class MyObject(QObject):
pass
@@ -75,11 +50,11 @@ class TestClassInfo(unittest.TestCase):
self.assertEqual(ci.value(), 'The Qt Company')
def test_verify_metadata_types(self):
- valid_dict = { '123': '456' }
+ valid_dict = {'123': '456'}
- invalid_dict_1 = { '123': 456 }
- invalid_dict_2 = { 123: 456 }
- invalid_dict_3 = { 123: '456' }
+ invalid_dict_1 = {'123': 456}
+ invalid_dict_2 = {123: 456}
+ invalid_dict_3 = {123: '456'}
ClassInfo(**valid_dict)
@@ -113,6 +88,7 @@ class TestClassInfo(unittest.TestCase):
def test_can_only_be_used_on_qobjects(self):
def make_info():
return ClassInfo(author='pyside')
+
def test_function():
pass
self.assertRaises(TypeError, make_info(), test_function)
diff --git a/sources/pyside6/tests/QtCore/deepcopy_test.py b/sources/pyside6/tests/QtCore/deepcopy_test.py
index ef9a72fb5..e130628e3 100644
--- a/sources/pyside6/tests/QtCore/deepcopy_test.py
+++ b/sources/pyside6/tests/QtCore/deepcopy_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
from copy import deepcopy
import os
diff --git a/sources/pyside6/tests/QtCore/deletelater_test.py b/sources/pyside6/tests/QtCore/deletelater_test.py
index 033b0cc70..0ee078428 100644
--- a/sources/pyside6/tests/QtCore/deletelater_test.py
+++ b/sources/pyside6/tests/QtCore/deletelater_test.py
@@ -1,35 +1,10 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QTimer.singleShot'''
+import gc
import os
import sys
import unittest
@@ -40,16 +15,18 @@ from init_paths import init_test_paths
init_test_paths(False)
from PySide6.QtCore import QObject, QTimer, QCoreApplication, SIGNAL
-from helper.usesqcoreapplication import UsesQCoreApplication
+from helper.usesqapplication import UsesQApplication
-class TestDeleteLater(UsesQCoreApplication):
+class TestDeleteLater(UsesQApplication):
'''Test case for function DeleteLater'''
def testCase(self):
o = QObject()
o.deleteLater()
del o
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
QTimer.singleShot(100, self.app.quit)
self.app.exec()
diff --git a/sources/pyside6/tests/QtCore/destroysignal_test.py b/sources/pyside6/tests/QtCore/destroysignal_test.py
index ff657a800..ad087b489 100644
--- a/sources/pyside6/tests/QtCore/destroysignal_test.py
+++ b/sources/pyside6/tests/QtCore/destroysignal_test.py
@@ -1,31 +1,7 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+import gc
import os
import sys
import unittest
@@ -35,7 +11,7 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtCore import QTimer, QObject
+from PySide6.QtCore import QTimer, QObject, Signal
class TestDestroySignal(unittest.TestCase):
@@ -48,6 +24,10 @@ class TestDestroySignal(unittest.TestCase):
t = QTimer()
t.destroyed[QObject].connect(self.onObjectDestroyed)
del t
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
+ # PYSIDE-535: Why do I need to do it twice, here?
+ gc.collect()
self.assertTrue(self._destroyed)
def testWithParent(self):
@@ -56,9 +36,43 @@ class TestDestroySignal(unittest.TestCase):
t = QTimer(p)
t.destroyed[QObject].connect(self.onObjectDestroyed)
del p
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
+ # PYSIDE-535: Why do I need to do it twice, here?
+ gc.collect()
self.assertTrue(self._destroyed)
+class Foo(QObject):
+ s = Signal(int)
+
+ def __init__(self):
+ QObject.__init__(self)
+ sys.stderr.write(f"__init__ {id(self):x}\n")
+
+ def __del__(self):
+ sys.stderr.write(f"__del__ {id(self):x}\n")
+
+ def send(self, i):
+ self.s.emit(i)
+
+
+# PYSIDE-2201/2328: This crashed until we introduced a weak reference.
+class TestDestroyNoConnect(unittest.TestCase):
+
+ def testSignalDestroyedMissingReference(self):
+ # This works since it has one reference more to Foo
+ Foo().send(43)
+ # This crashed because we have no reference in the signal.
+ with self.assertRaises(RuntimeError):
+ Foo().s.emit(44)
+
+ def testSignalDestroyedinConnect(self):
+ # PYSIDE-2328: Connect to signal of temporary
+ with self.assertRaises(RuntimeError):
+ Foo().s.connect(None)
+
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/pyside6/tests/QtCore/duck_punching_test.py b/sources/pyside6/tests/QtCore/duck_punching_test.py
index ab682026b..145863c3e 100644
--- a/sources/pyside6/tests/QtCore/duck_punching_test.py
+++ b/sources/pyside6/tests/QtCore/duck_punching_test.py
@@ -1,35 +1,10 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test case for duck punching new implementations of C++ virtual methods into object instances.'''
+import gc
import os
import sys
import types
@@ -41,7 +16,7 @@ from init_paths import init_test_paths
init_test_paths(False)
from PySide6.QtCore import QObject
-from helper.usesqcoreapplication import UsesQCoreApplication
+from helper.usesqapplication import UsesQApplication
def MethodType(func, instance, instanceType):
@@ -56,18 +31,20 @@ class Duck(QObject):
QObject.childEvent(self, event)
-class TestDuckPunchingOnQObjectInstance(UsesQCoreApplication):
+class TestDuckPunchingOnQObjectInstance(UsesQApplication):
'''Test case for duck punching new implementations of C++ virtual methods into object instances.'''
def setUp(self):
# Acquire resources
self.duck_childEvent_called = False
- UsesQCoreApplication.setUp(self)
+ UsesQApplication.setUp(self)
def tearDown(self):
# Release resources
del self.duck_childEvent_called
- UsesQCoreApplication.tearDown(self)
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
+ UsesQApplication.tearDown(self)
def testChildEventMonkeyPatch(self):
# Test if the new childEvent injected on QObject instance is called from C++
diff --git a/sources/pyside6/tests/QtCore/emoji_string_test.py b/sources/pyside6/tests/QtCore/emoji_string_test.py
index 1c9f6e1ec..78dee1893 100644
--- a/sources/pyside6/tests/QtCore/emoji_string_test.py
+++ b/sources/pyside6/tests/QtCore/emoji_string_test.py
@@ -1,43 +1,5 @@
-# This Python file uses the following encoding: utf-8
-
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
"""
emoji-string-test.py
diff --git a/sources/pyside6/tests/QtCore/errormessages_with_features_test.py b/sources/pyside6/tests/QtCore/errormessages_with_features_test.py
index 72452a588..97c4f942e 100644
--- a/sources/pyside6/tests/QtCore/errormessages_with_features_test.py
+++ b/sources/pyside6/tests/QtCore/errormessages_with_features_test.py
@@ -1,41 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import os
import sys
@@ -46,8 +10,14 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
+from PySide6 import QtCore
from PySide6.QtWidgets import QApplication, QLabel
-from PySide6.support import __feature__
+
+is_pypy = hasattr(sys, "pypy_version_info")
+if not is_pypy:
+ from PySide6.support import feature
+
+import inspect
"""
errormessages_with_features_test.py
@@ -61,16 +31,16 @@ This test is in its own file because combining it with
"""
+@unittest.skipIf(is_pypy, "__feature__ cannot yet be used with PyPy")
class ErrormessagesWithFeatures(unittest.TestCase):
probe = "called with wrong argument types"
- probe_miss = "missing signature"
def setUp(self):
qApp or QApplication()
- __feature__.set_selection(0)
+ feature.reset()
def tearDown(self):
- __feature__.set_selection(0)
+ feature.reset()
qApp.shutdown()
def testCorrectErrorMessagesPlain(self):
@@ -105,20 +75,27 @@ class ErrormessagesWithFeatures(unittest.TestCase):
with self.assertRaises(TypeError) as cm:
QApplication.quitOnLastWindowClosed = object
print("\n\n" + cm.exception.args[0])
- self.assertTrue(self.probe_miss in cm.exception.args[0])
+ self.assertTrue(self.probe in cm.exception.args[0])
with self.assertRaises(TypeError) as cm:
qApp.quitOnLastWindowClosed = object
- self.assertTrue(self.probe_miss in cm.exception.args[0])
+ self.assertTrue(self.probe in cm.exception.args[0])
def testCorrectErrorMessagesClassSnakeProp(self):
from __feature__ import snake_case, true_property
with self.assertRaises(TypeError) as cm:
QApplication.quit_on_last_window_closed = object
print("\n\n" + cm.exception.args[0])
- self.assertTrue(self.probe_miss in cm.exception.args[0])
+ self.assertTrue(self.probe in cm.exception.args[0])
with self.assertRaises(TypeError) as cm:
qApp.quit_on_last_window_closed = object
- self.assertTrue(self.probe_miss in cm.exception.args[0])
+ self.assertTrue(self.probe in cm.exception.args[0])
+
+ def testDocIsWorking(self):
+ """
+ make sure that it does not crash when touched
+ """
+ inspect.getdoc(QApplication)
+ inspect.getdoc(QtCore)
if __name__ == '__main__':
diff --git a/sources/pyside6/tests/QtCore/feature_with_uic/window.py b/sources/pyside6/tests/QtCore/feature_with_uic/window.py
index 6da881c6c..c55bcaf92 100644
--- a/sources/pyside6/tests/QtCore/feature_with_uic/window.py
+++ b/sources/pyside6/tests/QtCore/feature_with_uic/window.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
QMetaObject, QObject, QPoint, QRect,
@@ -65,7 +28,6 @@ class Ui_MainWindow(object):
self.verticalLayout.addWidget(self.pushButton)
-
self.horizontalLayout.addLayout(self.verticalLayout)
MainWindow.setCentralWidget(self.centralwidget)
diff --git a/sources/pyside6/tests/QtCore/feature_with_uic_test.py b/sources/pyside6/tests/QtCore/feature_with_uic_test.py
index 09f25e585..2ffc9970e 100644
--- a/sources/pyside6/tests/QtCore/feature_with_uic_test.py
+++ b/sources/pyside6/tests/QtCore/feature_with_uic_test.py
@@ -1,42 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python examples of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
-##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
"""
feature_with_uic_test.py
@@ -62,9 +25,15 @@ from helper.usesqapplication import UsesQApplication
from PySide6.QtCore import QCoreApplication, QLibraryInfo, qVersion
from PySide6.QtWidgets import QApplication, QMainWindow
-from __feature__ import snake_case
+# PYSIDE-535: We cannot use __feature__ in PyPy, yet
+try:
+ from __feature__ import snake_case
-from feature_with_uic.window import Ui_MainWindow
+ from feature_with_uic.window import Ui_MainWindow
+ have_feature = True
+except ImportError:
+ Ui_MainWindow = object
+ have_feature = False
class MainWindow(QMainWindow, Ui_MainWindow):
@@ -74,6 +43,8 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.setupUi(self)
+@unittest.skipIf(hasattr(sys, "pypy_version_info"),
+ "__feature__ cannot yet be used with PyPy")
class FeatureTest(UsesQApplication):
def testFeaturesWorkWithUIC(self):
diff --git a/sources/pyside6/tests/QtCore/hash_test.py b/sources/pyside6/tests/QtCore/hash_test.py
index a6aab9270..aee2f516c 100644
--- a/sources/pyside6/tests/QtCore/hash_test.py
+++ b/sources/pyside6/tests/QtCore/hash_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -41,13 +15,17 @@ from PySide6.QtCore import QDate, QDateTime, QTime, QUrl
from PySide6.QtCore import QLine, QPoint, QRect, QSize
+URL = "https://qt.io/"
+
+
class HashTest(unittest.TestCase):
def testInsert(self):
myHash = {}
qdate = QDate.currentDate()
qdatetime = QDateTime.currentDateTime()
qtime = QTime.currentTime()
- qurl = QUrl("http://www.pyside.org")
+ qurl = QUrl(URL)
+ self.assertTrue(qurl.isValid())
qpoint = QPoint(12, 42)
myHash[qdate] = "QDate"
@@ -90,7 +68,34 @@ class HashTest(unittest.TestCase):
self.assertEqual(l1, l2)
self.assertEqual(hash(l1), hash(l2))
+ def testQTimeHash(self):
+ t1 = QTime(5, 5, 5)
+ t2 = QTime(5, 5, 5)
+ self.assertFalse(t1 is t2)
+ self.assertEqual(t1, t2)
+ self.assertEqual(hash(t1), hash(t2))
+
+ def testQDateHash(self):
+ d1 = QDate(1968, 3, 9)
+ d2 = QDate(1968, 3, 9)
+ self.assertFalse(d1 is d2)
+ self.assertEqual(d1, d2)
+ self.assertEqual(hash(d1), hash(d2))
+
+ def testQDateTimeHash(self):
+ d1 = QDateTime(QDate(1968, 3, 9), QTime(5, 5, 5))
+ d2 = QDateTime(QDate(1968, 3, 9), QTime(5, 5, 5))
+ self.assertFalse(d1 is d2)
+ self.assertEqual(d1, d2)
+ self.assertEqual(hash(d1), hash(d2))
+
+ def testQUrlHash(self):
+ u1 = QUrl(URL)
+ u2 = QUrl(URL)
+ self.assertFalse(u1 is u2)
+ self.assertEqual(u1, u2)
+ self.assertEqual(hash(u1), hash(u2))
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/pyside6/tests/QtCore/inherits_test.py b/sources/pyside6/tests/QtCore/inherits_test.py
index 2beea6c17..1422616d8 100644
--- a/sources/pyside6/tests/QtCore/inherits_test.py
+++ b/sources/pyside6/tests/QtCore/inherits_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtCore/loggingcategorymacros_test.py b/sources/pyside6/tests/QtCore/loggingcategorymacros_test.py
new file mode 100644
index 000000000..a808f0c3d
--- /dev/null
+++ b/sources/pyside6/tests/QtCore/loggingcategorymacros_test.py
@@ -0,0 +1,84 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+"""Tests for category logging macros qCDebug, qCInfo, qCWarning, qCCritical"""
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from PySide6.QtCore import (QLoggingCategory, QtMsgType, qCDebug, qCWarning, qCInfo,
+ qCCritical, qInstallMessageHandler)
+
+param = None
+
+
+def handler(msgt, ctx, msg):
+ global param
+ param = ctx.category + ": " + msg.strip()
+
+
+class TestQLoggingCategory(unittest.TestCase):
+ def setUp(self) -> None:
+ super().setUp()
+ self.defaultCategory = QLoggingCategory("default")
+ self.debugCategory = QLoggingCategory("debug.log", QtMsgType.QtDebugMsg)
+ self.infoCategory = QLoggingCategory("info.log", QtMsgType.QtInfoMsg)
+ self.warningCategory = QLoggingCategory("warning.log", QtMsgType.QtWarningMsg)
+ self.criticalCategory = QLoggingCategory("critical.log", QtMsgType.QtCriticalMsg)
+ qInstallMessageHandler(handler)
+ self.no_devices = 2
+
+ def test_qCDebug(self):
+ qCDebug(self.defaultCategory, "no device")
+ self.assertEqual(param, "default: no device")
+ qCDebug(self.debugCategory, f"devices: {self.no_devices}")
+ self.assertEqual(param, "debug.log: devices: 2")
+
+ # not updated because category is Info which is above Debug
+ # nothing will be printed here
+ qCDebug(self.infoCategory, f"devices: {self.no_devices}")
+ self.assertEqual(param, "debug.log: devices: 2")
+
+ def test_qCInfo(self):
+ qCInfo(self.defaultCategory, "no device")
+ self.assertEqual(param, "default: no device")
+ qCInfo(self.debugCategory, f"devices: {self.no_devices}")
+ self.assertEqual(param, "debug.log: devices: 2")
+ qCInfo(self.infoCategory, f"devices: {self.no_devices}")
+ self.assertEqual(param, "info.log: devices: 2")
+
+ # not updated because category is Warning which is above Info
+ # nothing will be printed here
+ qCInfo(self.warningCategory, f"devices: {self.no_devices}")
+ self.assertEqual(param, "info.log: devices: 2")
+
+ def test_qCWarning(self):
+ qCWarning(self.defaultCategory, "no device")
+ self.assertEqual(param, "default: no device")
+ qCWarning(self.debugCategory, f"devices: {self.no_devices}")
+ self.assertEqual(param, "debug.log: devices: 2")
+ qCWarning(self.warningCategory, f"devices: {self.no_devices}")
+ self.assertEqual(param, "warning.log: devices: 2")
+
+ # not updated because category is Critical which is above Warning
+ # nothing will be printed here
+ qCWarning(self.criticalCategory, f"devices: {self.no_devices}")
+ self.assertEqual(param, "warning.log: devices: 2")
+
+ def test_qCritical(self):
+ qCCritical(self.defaultCategory, "no device")
+ self.assertEqual(param, "default: no device")
+ qCCritical(self.warningCategory, f"devices: {self.no_devices}")
+ self.assertEqual(param, "warning.log: devices: 2")
+ qCCritical(self.criticalCategory, f"devices: {self.no_devices}")
+ self.assertEqual(param, "critical.log: devices: 2")
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/QtCore/max_signals.py b/sources/pyside6/tests/QtCore/max_signals.py
index b5b5f00d8..95952dfbf 100644
--- a/sources/pyside6/tests/QtCore/max_signals.py
+++ b/sources/pyside6/tests/QtCore/max_signals.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtCore/missing_symbols_test.py b/sources/pyside6/tests/QtCore/missing_symbols_test.py
index 8e03edf9c..7cf6d3e3e 100644
--- a/sources/pyside6/tests/QtCore/missing_symbols_test.py
+++ b/sources/pyside6/tests/QtCore/missing_symbols_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''(Very) Simple test case for missing names from QtCore'''
diff --git a/sources/pyside6/tests/QtCore/mockclass_test.py b/sources/pyside6/tests/QtCore/mockclass_test.py
index 887de6bca..c7e465b24 100644
--- a/sources/pyside6/tests/QtCore/mockclass_test.py
+++ b/sources/pyside6/tests/QtCore/mockclass_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
# Test case for PySide bug 634
# http://bugs.pyside.org/show_bug.cgi?id=634
diff --git a/sources/pyside6/tests/QtCore/multiple_feature_test.py b/sources/pyside6/tests/QtCore/multiple_feature_test.py
index 0a66075ae..0f51ace6b 100644
--- a/sources/pyside6/tests/QtCore/multiple_feature_test.py
+++ b/sources/pyside6/tests/QtCore/multiple_feature_test.py
@@ -1,41 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import os
import sys
@@ -47,7 +11,11 @@ from init_paths import init_test_paths
init_test_paths(False)
from PySide6.QtCore import QCborArray, QObject
-from PySide6.support import __feature__
+
+is_pypy = hasattr(sys, "pypy_version_info")
+if not is_pypy:
+ from PySide6.support import feature
+
from textwrap import dedent
"""
@@ -63,6 +31,12 @@ There is much more to come.
MethodDescriptorType = type(str.split)
+def xprint(*args, **kw):
+ if "-v" in sys.argv:
+ print(*args, **kw)
+
+
+@unittest.skipIf(is_pypy, "__feature__ cannot yet be used with PyPy")
class FeaturesTest(unittest.TestCase):
def testAllFeatureCombinations(self):
@@ -117,21 +91,21 @@ class FeaturesTest(unittest.TestCase):
"""), "<string>", "exec"), globals(), edict)
globals().update(edict)
- feature_list = __feature__._really_all_feature_names
+ feature_list = feature._really_all_feature_names
func_list = [tst_bit0, tst_bit1, tst_bit2, tst_bit3,
tst_bit4, tst_bit5, tst_bit6, tst_bit7]
for idx in range(0x100):
- __feature__.set_selection(0)
+ feature.reset()
config = f"feature_{idx:02x}"
- print()
- print(f"--- Feature Test Config `{config}` ---")
- print("Imports:")
+ xprint()
+ xprint(f"--- Feature Test Config `{config}` ---")
+ xprint("Imports:")
for bit in range(8):
if idx & 1 << bit:
- feature = feature_list[bit]
- text = f"from __feature__ import {feature}"
- print(text)
+ cur_feature = feature_list[bit]
+ text = f"from __feature__ import {cur_feature}"
+ xprint(text)
eval(compile(text, "<string>", "exec"), globals(), edict)
for bit in range(8):
value = idx & 1 << bit
diff --git a/sources/pyside6/tests/QtCore/python_conversion.py b/sources/pyside6/tests/QtCore/python_conversion.py
index 1e081bac2..28a271b61 100644
--- a/sources/pyside6/tests/QtCore/python_conversion.py
+++ b/sources/pyside6/tests/QtCore/python_conversion.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QLineF'''
diff --git a/sources/pyside6/tests/QtCore/qabs_test.py b/sources/pyside6/tests/QtCore/qabs_test.py
index 3320addb0..2b22b1e17 100644
--- a/sources/pyside6/tests/QtCore/qabs_test.py
+++ b/sources/pyside6/tests/QtCore/qabs_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtCore/qabstractitemmodel_test.py b/sources/pyside6/tests/QtCore/qabstractitemmodel_test.py
index bffad74ec..bb9a2222a 100644
--- a/sources/pyside6/tests/QtCore/qabstractitemmodel_test.py
+++ b/sources/pyside6/tests/QtCore/qabstractitemmodel_test.py
@@ -1,32 +1,5 @@
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtCore/qanimationgroup_test.py b/sources/pyside6/tests/QtCore/qanimationgroup_test.py
index 972571ac6..9b9b0e622 100644
--- a/sources/pyside6/tests/QtCore/qanimationgroup_test.py
+++ b/sources/pyside6/tests/QtCore/qanimationgroup_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtCore/qbitarray_test.py b/sources/pyside6/tests/QtCore/qbitarray_test.py
index 580fa1f5b..70452eab1 100644
--- a/sources/pyside6/tests/QtCore/qbitarray_test.py
+++ b/sources/pyside6/tests/QtCore/qbitarray_test.py
@@ -1,35 +1,10 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Tests if QBitArray class is iterable and also '~' (__invert__) and bitwise operators'''
+import gc
import os
import sys
import unittest
@@ -79,6 +54,8 @@ class QBitArrayIsIterableTest(unittest.TestCase):
del self.qbitarray_values
del self.other_qbitarray_values
del self.inverted_qbitarray_values
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
def testQBitArrayIsIterable(self):
# Tests if QBitArray class is iterable
diff --git a/sources/pyside6/tests/QtCore/qbytearray_concatenation_operator_test.py b/sources/pyside6/tests/QtCore/qbytearray_concatenation_operator_test.py
index 9fdfda64e..aea9778d7 100644
--- a/sources/pyside6/tests/QtCore/qbytearray_concatenation_operator_test.py
+++ b/sources/pyside6/tests/QtCore/qbytearray_concatenation_operator_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/python
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QByteArray concatenation with '+' operator'''
diff --git a/sources/pyside6/tests/QtCore/qbytearray_operator_iadd_test.py b/sources/pyside6/tests/QtCore/qbytearray_operator_iadd_test.py
index c7107872c..a2201a716 100644
--- a/sources/pyside6/tests/QtCore/qbytearray_operator_iadd_test.py
+++ b/sources/pyside6/tests/QtCore/qbytearray_operator_iadd_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtCore/qbytearray_operator_test.py b/sources/pyside6/tests/QtCore/qbytearray_operator_test.py
index 0053b1351..0064e4dd6 100644
--- a/sources/pyside6/tests/QtCore/qbytearray_operator_test.py
+++ b/sources/pyside6/tests/QtCore/qbytearray_operator_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/python
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QByteArray operators'''
diff --git a/sources/pyside6/tests/QtCore/qbytearray_test.py b/sources/pyside6/tests/QtCore/qbytearray_test.py
index c347a6e4d..cb8f9a431 100644
--- a/sources/pyside6/tests/QtCore/qbytearray_test.py
+++ b/sources/pyside6/tests/QtCore/qbytearray_test.py
@@ -1,39 +1,12 @@
-# -*- coding:utf-8 -*-
-# !/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Unit tests for QByteArray'''
import ctypes
import os
import pickle
+import struct
import sys
import unittest
@@ -43,7 +16,8 @@ from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtCore import QByteArray, QSettings, QObject, QDataStream, QIODevice
+from PySide6.QtCore import (QByteArray, QSettings, QObject, QDataStream,
+ QIODevice, qCompress, qUncompress)
class QByteArrayTestToNumber(unittest.TestCase):
@@ -233,7 +207,7 @@ class QByteArraySliceAssignment(unittest.TestCase):
# shrink
b[2:8] = QByteArray(bytes('aaa', "UTF8"))
self.assertEqual(b, bytes('01aaa89', "UTF8"))
- # expanse
+ # expand
b[2:5] = QByteArray(bytes('uvwxyz', "UTF8"))
self.assertEqual(b, bytes('01uvwxyz89', "UTF8"))
# Delete behavior
@@ -241,7 +215,7 @@ class QByteArraySliceAssignment(unittest.TestCase):
self.assertEqual(b, bytes('0189', "UTF8"))
b = QByteArray(bytes('0123456789', "UTF8"))
- # reverse assginment
+ # reverse assignment
b[5:2:-1] = QByteArray(bytes('ABC', "UTF8"))
self.assertEqual(b, bytes('012CBA6789', "UTF8"))
# step is not 1
@@ -259,7 +233,7 @@ class QByteArraySliceAssignment(unittest.TestCase):
# shrink
b[2:8] = bytearray(bytes('aaa', "UTF8"))
self.assertEqual(b, bytes('01aaa89', "UTF8"))
- # expanse
+ # expand
b[2:5] = bytearray(bytes('uvwxyz', "UTF8"))
self.assertEqual(b, bytes('01uvwxyz89', "UTF8"))
# Delete behavior
@@ -267,7 +241,7 @@ class QByteArraySliceAssignment(unittest.TestCase):
self.assertEqual(b, bytes('0189', "UTF8"))
b = QByteArray(bytes('0123456789', "UTF8"))
- # reverse assginment
+ # reverse assignment
b[5:2:-1] = bytearray(bytes('ABC', "UTF8"))
self.assertEqual(b, bytes('012CBA6789', "UTF8"))
# step is not 1
@@ -283,6 +257,34 @@ class QByteArraySliceAssignment(unittest.TestCase):
actual_bytes = bytes(byte_array)
self.assertEqual(orig_bytes, actual_bytes)
+ def testUnpack(self):
+ b = QByteArray(b'\x19\x00\x00\x00\xc4\t\x00\x00')
+ t = struct.unpack('<ii', b)
+ self.assertEqual(len(t), 2)
+ self.assertEqual(t[0], 25)
+ self.assertEqual(t[1], 2500)
+
+
+class QCompressTest(unittest.TestCase):
+ def testQByteArrayCompression(self):
+ """Compress/uncompress a QByteArray."""
+ data = bytes(10 * 'long redundant sentence bla bla', "UTF8")
+ ba = QByteArray(data)
+ compressed = qCompress(ba)
+ self.assertTrue(len(compressed) < len(data))
+ uncompressed = qUncompress(compressed)
+ self.assertEqual(uncompressed, data)
+
+ def testBufferCompression(self):
+ """Compress/uncompress portions of bytes without converting to
+ QByteArray."""
+ data = bytes(10 * 'long redundant sentence bla bla', "UTF8")
+ used_len = int(len(data) / 2)
+ compressed = qCompress(data, used_len, -1)
+ self.assertTrue(len(compressed) < used_len)
+ uncompressed = qUncompress(compressed.data(), len(compressed))
+ self.assertEqual(uncompressed, data[:used_len])
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/pyside6/tests/QtCore/qcalendar_test.py b/sources/pyside6/tests/QtCore/qcalendar_test.py
index 2c69a2026..0137677f3 100644
--- a/sources/pyside6/tests/QtCore/qcalendar_test.py
+++ b/sources/pyside6/tests/QtCore/qcalendar_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QCalendar (5.14)'''
diff --git a/sources/pyside6/tests/QtCore/qcbor_test.py b/sources/pyside6/tests/QtCore/qcbor_test.py
index 0df9d9f95..312c9e5c7 100644
--- a/sources/pyside6/tests/QtCore/qcbor_test.py
+++ b/sources/pyside6/tests/QtCore/qcbor_test.py
@@ -1,35 +1,10 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QCbor'''
+import gc
import os
import sys
import unittest
@@ -40,7 +15,7 @@ from init_paths import init_test_paths
init_test_paths(False)
from PySide6.QtCore import (QByteArray, QCborStreamReader, QCborStreamWriter,
- QCborValue)
+ QCborTag, QCborValue)
class TestCbor(unittest.TestCase):
@@ -49,6 +24,8 @@ class TestCbor(unittest.TestCase):
writer = QCborStreamWriter(ba)
writer.append(42)
del writer
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertTrue(not ba.isEmpty())
reader = QCborStreamReader(ba)
self.assertTrue(reader.hasNext())
@@ -60,6 +37,8 @@ class TestCbor(unittest.TestCase):
writer = QCborStreamWriter(ba)
writer.append("hello")
del writer
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertTrue(not ba.isEmpty())
reader = QCborStreamReader(ba)
self.assertTrue(reader.hasNext())
diff --git a/sources/pyside6/tests/QtCore/qcollator_test.py b/sources/pyside6/tests/QtCore/qcollator_test.py
index b9fc29658..9d1052b24 100644
--- a/sources/pyside6/tests/QtCore/qcollator_test.py
+++ b/sources/pyside6/tests/QtCore/qcollator_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Unit tests for QCollator'''
diff --git a/sources/pyside6/tests/QtCore/qcommandlineparser_test.py b/sources/pyside6/tests/QtCore/qcommandlineparser_test.py
index 8021aad74..c562065ae 100644
--- a/sources/pyside6/tests/QtCore/qcommandlineparser_test.py
+++ b/sources/pyside6/tests/QtCore/qcommandlineparser_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Unit tests for QCommandLineParser and QCommandLineOption'''
diff --git a/sources/pyside6/tests/QtCore/qcoreapplication_argv_test.py b/sources/pyside6/tests/QtCore/qcoreapplication_argv_test.py
index e013fdb71..3c8500923 100644
--- a/sources/pyside6/tests/QtCore/qcoreapplication_argv_test.py
+++ b/sources/pyside6/tests/QtCore/qcoreapplication_argv_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtCore/qcoreapplication_instance_test.py b/sources/pyside6/tests/QtCore/qcoreapplication_instance_test.py
index 8e89a260e..968765020 100644
--- a/sources/pyside6/tests/QtCore/qcoreapplication_instance_test.py
+++ b/sources/pyside6/tests/QtCore/qcoreapplication_instance_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/python
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QCoreApplication.instance static method'''
diff --git a/sources/pyside6/tests/QtCore/qcoreapplication_test.py b/sources/pyside6/tests/QtCore/qcoreapplication_test.py
index 30e000c31..edd4dc8e2 100644
--- a/sources/pyside6/tests/QtCore/qcoreapplication_test.py
+++ b/sources/pyside6/tests/QtCore/qcoreapplication_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtCore/qdatastream_test.py b/sources/pyside6/tests/QtCore/qdatastream_test.py
index cd0e3e0cb..517f466aa 100644
--- a/sources/pyside6/tests/QtCore/qdatastream_test.py
+++ b/sources/pyside6/tests/QtCore/qdatastream_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Unit tests for QDataStream'''
@@ -35,8 +9,10 @@ import sys
import unittest
from pathlib import Path
+
sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
+
init_test_paths(False)
from PySide6.QtCore import QBitArray, QByteArray, QIODevice, QDataStream, QDate, QTime, QDateTime
@@ -275,7 +251,6 @@ class QDataStreamShift(unittest.TestCase):
class QDataStreamShiftBitArray(unittest.TestCase):
-
def _check_bitarray(self, data_set):
'''Check the >> operator for the given data set'''
@@ -308,7 +283,7 @@ class QDataStreamShiftBitArray(unittest.TestCase):
self._check_bitarray([(serialized, QDataStream.ReadPastEnd, QBitArray())])
-class QDataStreamRawData(unittest.TestCase):
+class QDataStreamBuffer(unittest.TestCase):
def testRawData(self):
data = QDataStream()
self.assertEqual(data.readRawData(4), None)
@@ -321,7 +296,31 @@ class QDataStreamRawData(unittest.TestCase):
data = QDataStream(ba)
self.assertEqual(data.readRawData(4), bytes('AB\x00C', "UTF-8"))
+ def testRawDataBytes(self):
+ test_data = b'AB\0'
+ data = QDataStream()
+ ba = QByteArray()
+ data = QDataStream(ba, QIODevice.WriteOnly)
+ data.writeRawData(test_data)
+ self.assertEqual(ba.data(), test_data)
+ data = QDataStream(ba)
+ self.assertEqual(data.readRawData(3), test_data)
+
+ def testBytes(self):
+ dataOne = QDataStream()
+ self.assertEqual(dataOne.readBytes(4), None)
+
+ ba = QByteArray()
+ data = QDataStream(ba, QIODevice.WriteOnly)
+ # writeBytes() writes a quint32 containing the length of the data,
+ # followed by the data.
+ data.writeBytes(bytes('AB\x00C', 'UTF-8'))
+ self.assertEqual(ba.data(), bytes('\x00\x00\x00\x04AB\x00C', 'UTF-8'))
+
+ data = QDataStream(ba)
+ buffer = data.readBytes(4)
+ self.assertEqual(buffer, bytes('AB\x00C', 'UTF-8'))
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/pyside6/tests/QtCore/qdate_test.py b/sources/pyside6/tests/QtCore/qdate_test.py
index b5259163a..611292227 100644
--- a/sources/pyside6/tests/QtCore/qdate_test.py
+++ b/sources/pyside6/tests/QtCore/qdate_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QDate'''
diff --git a/sources/pyside6/tests/QtCore/qdatetime_test.py b/sources/pyside6/tests/QtCore/qdatetime_test.py
index 362b1fb4c..96e353112 100644
--- a/sources/pyside6/tests/QtCore/qdatetime_test.py
+++ b/sources/pyside6/tests/QtCore/qdatetime_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import datetime
import os
diff --git a/sources/pyside6/tests/QtCore/qdir_test.py b/sources/pyside6/tests/QtCore/qdir_test.py
index 169959dbf..702c7f13a 100644
--- a/sources/pyside6/tests/QtCore/qdir_test.py
+++ b/sources/pyside6/tests/QtCore/qdir_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtCore/qeasingcurve_test.py b/sources/pyside6/tests/QtCore/qeasingcurve_test.py
index 46f8f5b90..b202dbefb 100644
--- a/sources/pyside6/tests/QtCore/qeasingcurve_test.py
+++ b/sources/pyside6/tests/QtCore/qeasingcurve_test.py
@@ -1,34 +1,10 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
import unittest
+import gc
from pathlib import Path
sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
@@ -58,6 +34,8 @@ class TestQEasingCurve(unittest.TestCase):
ec.setCustomType(myFunction)
self.assertEqual(ec.valueForProgress(1.0), 100.0)
self.assertEqual(ec.valueForProgress(0.5), -100.0)
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
if __name__ == '__main__':
diff --git a/sources/pyside6/tests/QtCore/qenum_test.py b/sources/pyside6/tests/QtCore/qenum_test.py
index 0d524505a..45a8e9124 100644
--- a/sources/pyside6/tests/QtCore/qenum_test.py
+++ b/sources/pyside6/tests/QtCore/qenum_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QEnum and QFlags'''
@@ -45,20 +19,6 @@ from PySide6.QtCore import Qt, QIODevice, QObject, QEnum, QFlag
class TestEnum(unittest.TestCase):
-
- def testToInt(self):
- self.assertEqual(QIODevice.NotOpen, 0)
- self.assertEqual(QIODevice.ReadOnly, 1)
- self.assertEqual(QIODevice.WriteOnly, 2)
- self.assertEqual(QIODevice.ReadWrite, 1 | 2)
- self.assertEqual(QIODevice.Append, 4)
- self.assertEqual(QIODevice.Truncate, 8)
- self.assertEqual(QIODevice.Text, 16)
- self.assertEqual(QIODevice.Unbuffered, 32)
-
- def testToIntInFunction(self):
- self.assertEqual(str(int(QIODevice.WriteOnly)), "2")
-
def testOperations(self):
k = Qt.Key.Key_1
@@ -67,16 +27,6 @@ class TestEnum(unittest.TestCase):
self.assertEqual(k - 2, -(2 - k))
self.assertEqual(k * 2, 2 * k)
- # Floats
- with self.assertRaises(TypeError):
- a = k + 2.0
-
- with self.assertRaises(TypeError):
- a = k - 2.0
-
- with self.assertRaises(TypeError):
- a = k * 2.0
-
@unittest.skipUnless(getattr(sys, "getobjects", None), "requires --with-trace-refs")
@unittest.skipUnless(getattr(sys, "gettotalrefcount", None), "requires --with-pydebug")
def testEnumNew_NoLeak(self):
@@ -97,18 +47,20 @@ class TestEnum(unittest.TestCase):
class TestQFlags(unittest.TestCase):
+
def testToItn(self):
om = QIODevice.NotOpen
+ omcmp = om.value
self.assertEqual(om, QIODevice.NotOpen)
- self.assertTrue(om == 0)
+ self.assertTrue(omcmp == 0)
- self.assertTrue(om != QIODevice.ReadOnly)
- self.assertTrue(om != 1)
+ self.assertTrue(omcmp != QIODevice.ReadOnly)
+ self.assertTrue(omcmp != 1)
def testToIntInFunction(self):
om = QIODevice.WriteOnly
- self.assertEqual(int(om), 2)
+ self.assertEqual(int(om.value), 2)
def testNonExtensibleEnums(self):
try:
@@ -158,6 +110,8 @@ except ImportError:
Enum.__module__ = "enum"
Enum.__members__ = {}
del Enum
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
enum.auto = lambda: 42
HAVE_FLAG = hasattr(enum, "Flag")
@@ -197,16 +151,15 @@ class SomeClass(QObject):
QEnum(SomeEnum) # works even without the decorator assignment
-@unittest.skipUnless(HAVE_ENUM, "requires 'enum' module (use 'pip install enum34' for Python 2)")
class TestQEnumMacro(unittest.TestCase):
+ meta_name = "EnumType" if sys.version_info[:2] >= (3, 11) else "EnumMeta"
+
def testTopLevel(self):
- self.assertEqual(type(OuterEnum).__module__, "enum")
- self.assertEqual(type(OuterEnum).__name__, "EnumMeta")
+ self.assertEqual(type(OuterEnum).__name__, self.meta_name)
self.assertEqual(len(OuterEnum.__members__), 2)
def testSomeClass(self):
- self.assertEqual(type(SomeClass.SomeEnum).__module__, "enum")
- self.assertEqual(type(SomeClass.SomeEnum).__name__, "EnumMeta")
+ self.assertEqual(type(SomeClass.SomeEnum).__name__, self.meta_name)
self.assertEqual(len(SomeClass.SomeEnum.__members__), 3)
with self.assertRaises(TypeError):
int(SomeClass.SomeEnum.C) == 6
diff --git a/sources/pyside6/tests/QtCore/qevent_test.py b/sources/pyside6/tests/QtCore/qevent_test.py
index 2d7aff03f..244a14f13 100644
--- a/sources/pyside6/tests/QtCore/qevent_test.py
+++ b/sources/pyside6/tests/QtCore/qevent_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QtCore.QEvent'''
diff --git a/sources/pyside6/tests/QtCore/qfile_test.py b/sources/pyside6/tests/QtCore/qfile_test.py
index d480d5e30..0af5c2650 100644
--- a/sources/pyside6/tests/QtCore/qfile_test.py
+++ b/sources/pyside6/tests/QtCore/qfile_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtCore/qfileinfo_test.py b/sources/pyside6/tests/QtCore/qfileinfo_test.py
index d28be7c4c..dfdfd7fa2 100644
--- a/sources/pyside6/tests/QtCore/qfileinfo_test.py
+++ b/sources/pyside6/tests/QtCore/qfileinfo_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtCore/qfileread_test.py b/sources/pyside6/tests/QtCore/qfileread_test.py
index 98b27896c..c66a27f8a 100644
--- a/sources/pyside6/tests/QtCore/qfileread_test.py
+++ b/sources/pyside6/tests/QtCore/qfileread_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtCore/qflags_test.py b/sources/pyside6/tests/QtCore/qflags_test.py
index bde6abde1..2a5306685 100644
--- a/sources/pyside6/tests/QtCore/qflags_test.py
+++ b/sources/pyside6/tests/QtCore/qflags_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QFlags'''
@@ -111,6 +85,25 @@ class QFlagOperatorTest(unittest.TestCase):
flags = Qt.NoItemFlags | Qt.ItemIsUserCheckable
self.assertEqual(flags | Qt.ItemIsEnabled, Qt.ItemIsEnabled | flags)
+ def testEqualNonNumericalObject(self):
+ '''QFlags ==,!= non-numerical object '''
+ flags = Qt.NoItemFlags | Qt.ItemIsUserCheckable
+
+ self.assertTrue(flags != None) # noqa: E711
+ self.assertFalse(flags == None) # noqa: E711
+
+ self.assertTrue(flags != "tomato")
+ self.assertFalse(flags == "tomato")
+
+ with self.assertRaises(TypeError):
+ flags > None
+ with self.assertRaises(TypeError):
+ flags >= None
+ with self.assertRaises(TypeError):
+ flags < None
+ with self.assertRaises(TypeError):
+ flags <= None
+
class QFlagsOnQVariant(unittest.TestCase):
def testQFlagsOnQVariant(self):
@@ -119,15 +112,19 @@ class QFlagsOnQVariant(unittest.TestCase):
self.assertEqual(type(o.property("foo")), QIODevice.OpenMode)
-class QFlagsWrongType(unittest.TestCase):
- def testWrongType(self):
- '''Wrong type passed to QFlags binary operators'''
- for op in operator.or_, operator.and_, operator.xor:
- for x in '43', 'jabba', QObject, object:
- self.assertRaises(TypeError, op, Qt.NoItemFlags, x)
- self.assertRaises(TypeError, op, x, Qt.NoItemFlags)
- # making sure this actually does not fail all the time
- self.assertEqual(operator.or_(Qt.NoItemFlags, 43), 43)
+class QEnumFlagDefault(unittest.TestCase):
+ """
+ Check that old flag and enum syntax can be used.
+ The signatures of these surrogate functions intentionally do not exist
+ because people should learn to use the new Enums correctly.
+ """
+ def testOldQFlag(self):
+ self.assertEqual(Qt.AlignmentFlag(), Qt.AlignmentFlag(0))
+ oldFlag = Qt.Alignment()
+ oldEnum = Qt.AlignmentFlag()
+ self.assertEqual(type(oldFlag), Qt.Alignment)
+ self.assertEqual(type(oldEnum), Qt.AlignmentFlag)
+ self.assertEqual(type(oldFlag), type(oldEnum))
if __name__ == '__main__':
diff --git a/sources/pyside6/tests/QtCore/qhandle_test.py b/sources/pyside6/tests/QtCore/qhandle_test.py
index 9f6708787..e0f4f3f7a 100644
--- a/sources/pyside6/tests/QtCore/qhandle_test.py
+++ b/sources/pyside6/tests/QtCore/qhandle_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QEnum and QFlags'''
diff --git a/sources/pyside6/tests/QtCore/qinstallmsghandler_test.py b/sources/pyside6/tests/QtCore/qinstallmsghandler_test.py
index 1a6214701..9c5ae4370 100644
--- a/sources/pyside6/tests/QtCore/qinstallmsghandler_test.py
+++ b/sources/pyside6/tests/QtCore/qinstallmsghandler_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for qInstallMsgHandler'''
@@ -37,9 +12,9 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtCore import (QLibraryInfo, QtCriticalMsg, QtDebugMsg, QtInfoMsg,
+from PySide6.QtCore import (QLibraryInfo, QtMsgType,
QMessageLogContext,
- QtWarningMsg, qCritical, qFormatLogMessage, qDebug,
+ qCritical, qFormatLogMessage, qDebug,
qInstallMessageHandler, qWarning)
@@ -81,18 +56,18 @@ class QInstallMsgHandlerTest(unittest.TestCase):
rethandler = qInstallMessageHandler(handler)
if QLibraryInfo.isDebugBuild():
qDebug("Test Debug")
- self.assertEqual(param[0], QtDebugMsg)
+ self.assertEqual(param[0], QtMsgType.QtDebugMsg)
self.assertEqual(param[2], "Test Debug")
qWarning("Test Warning")
- self.assertEqual(param[0], QtWarningMsg)
+ self.assertEqual(param[0], QtMsgType.QtWarningMsg)
self.assertEqual(param[2], "Test Warning")
qCritical("Test Critical")
- self.assertEqual(param[0], QtCriticalMsg)
+ self.assertEqual(param[0], QtMsgType.QtCriticalMsg)
self.assertEqual(param[2], "Test Critical")
def testFormat(self):
ctx = QMessageLogContext()
- s = qFormatLogMessage(QtInfoMsg, ctx, 'bla')
+ s = qFormatLogMessage(QtMsgType.QtInfoMsg, ctx, 'bla')
self.assertTrue(s)
diff --git a/sources/pyside6/tests/QtCore/qiodevice_buffered_read_test.py b/sources/pyside6/tests/QtCore/qiodevice_buffered_read_test.py
new file mode 100644
index 000000000..ea735112a
--- /dev/null
+++ b/sources/pyside6/tests/QtCore/qiodevice_buffered_read_test.py
@@ -0,0 +1,78 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+'''Test cases for buffered read methods of QIODevice'''
+
+from PySide6.QtCore import QBuffer
+
+import enum
+import unittest
+
+
+class TestQIODeviceBufferedRead(unittest.TestCase):
+ class TestType(enum.Enum):
+ Read = enum.auto()
+ ReadLine = enum.auto()
+ Peek = enum.auto()
+
+ def setUp(self) -> None:
+ self.buffer = QBuffer()
+ self.text = "Tomato juice\nPotato salad\n"
+
+ self.assertTrue(
+ self.buffer.open(QBuffer.OpenModeFlag.ReadWrite), self.buffer.errorString())
+ self.assertGreaterEqual(
+ self.buffer.write(self.text.encode("utf-8")), 0, self.buffer.errorString())
+
+ self.buffer.seek(0)
+
+ def tearDown(self) -> None:
+ self.buffer.close()
+
+ def test_read(self) -> None:
+ response1 = self.buffer.read(1024).data().decode("utf-8")
+ self.assertEqual(response1, self.text)
+
+ self.buffer.seek(0)
+ response2 = bytearray(1024)
+ bytes_read = self.buffer.read(response2, 1024)
+
+ self.assertGreaterEqual(bytes_read, 0, self.buffer.errorString())
+ self.assertEqual(response2[:bytes_read].decode("utf-8"), response1)
+
+ def test_readLine(self) -> None:
+ response1 = self.buffer.readLine(1024).data().decode("utf-8")
+ # Only read until the first line (including the line break)
+ self.assertEqual(response1, self.text.split("\n", 1)[0] + "\n")
+
+ self.buffer.seek(0)
+ response2 = bytearray(1024)
+ bytes_read = self.buffer.readLine(response2, 1024)
+
+ self.assertGreaterEqual(bytes_read, 0, self.buffer.errorString())
+ self.assertEqual(response2[:bytes_read].decode("utf-8"), response1)
+
+ def test_peek(self) -> None:
+ response1 = self.buffer.peek(1024).data().decode("utf-8")
+ self.assertEqual(response1, self.text)
+
+ # Test that peek has no side effects
+ response_again1 = self.buffer.read(1024).data().decode("utf-8")
+ self.assertEqual(response_again1, response1)
+
+ self.buffer.seek(0)
+ response2 = bytearray(1024)
+ bytes_read = self.buffer.peek(response2, 1024)
+
+ self.assertGreaterEqual(bytes_read, 0, self.buffer.errorString())
+ self.assertEqual(response2[:bytes_read].decode("utf-8"), response1)
+
+ # Test that peek has no side effects
+ response_again2 = bytearray(1024)
+ bytes_read_again2 = self.buffer.read(response_again2, 1024)
+ self.assertEqual(bytes_read, bytes_read_again2)
+ self.assertEqual(response_again2, response2)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/sources/pyside6/tests/QtCore/qiopipe_test.py b/sources/pyside6/tests/QtCore/qiopipe_test.py
new file mode 100644
index 000000000..53a6ba70a
--- /dev/null
+++ b/sources/pyside6/tests/QtCore/qiopipe_test.py
@@ -0,0 +1,36 @@
+# Copyright (C) 2024 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+'''Test cases for the QIOPipe class'''
+
+from PySide6.QtCore import QIODevice, QIOPipe
+
+import unittest
+
+
+class QIOPipeTest(unittest.TestCase):
+ def setUp(self) -> None:
+ self.pipe = QIOPipe()
+ self.pipe.open(QIODevice.OpenModeFlag.ReadWrite)
+ return super().setUp()
+
+ def tearDown(self) -> None:
+ super().tearDown()
+
+ def ready_read_bytes_written(self):
+ received_data = self.pipe.end2().readAll().data()
+ self.assertEqual(received_data, self.data)
+
+ def test_readyRead(self):
+ self.data = b"Hello, World!"
+ self.pipe.end2().readyRead.connect(self.ready_read_bytes_written)
+ self.pipe.end1().write(self.data)
+
+ def test_bytesWritten(self):
+ self.data = b"Hello, World!"
+ self.pipe.end2().bytesWritten.connect(self.ready_read_bytes_written)
+ self.pipe.end1().write(self.data)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/QtCore/qjsondocument_test.py b/sources/pyside6/tests/QtCore/qjsondocument_test.py
index 334ba07ec..a50f185ff 100644
--- a/sources/pyside6/tests/QtCore/qjsondocument_test.py
+++ b/sources/pyside6/tests/QtCore/qjsondocument_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QJsonDocument/nullptr_t'''
diff --git a/sources/pyside6/tests/QtCore/qlinef_test.py b/sources/pyside6/tests/QtCore/qlinef_test.py
index 0a2e91a82..90ae50159 100644
--- a/sources/pyside6/tests/QtCore/qlinef_test.py
+++ b/sources/pyside6/tests/QtCore/qlinef_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QLineF'''
diff --git a/sources/pyside6/tests/QtCore/qlocale_test.py b/sources/pyside6/tests/QtCore/qlocale_test.py
index 0e1603846..05b0d3219 100644
--- a/sources/pyside6/tests/QtCore/qlocale_test.py
+++ b/sources/pyside6/tests/QtCore/qlocale_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Unit tests for QLocale'''
@@ -63,6 +37,11 @@ class QLocaleTestToNumber(unittest.TestCase):
self.assertEqual((ctypes.c_short(37).value, True),
obj.toShort('37'))
+ def testToNumberLong(self):
+ obj = QLocale(QLocale.C)
+ self.assertEqual((ctypes.c_long(37).value, True),
+ obj.toLong('37'))
+
def testToNumberULongLong(self):
obj = QLocale(QLocale.C)
self.assertEqual((ctypes.c_ulonglong(37).value, True),
@@ -72,6 +51,23 @@ class QLocaleTestToNumber(unittest.TestCase):
obj = QLocale(QLocale.C)
self.assertTrue(not obj.toULongLong('-37')[1])
+ def testToCurrencyString(self):
+ """PYSIDE-2133, do not use int overload, dropping decimals."""
+ en_locale = QLocale("en_US")
+ value = en_locale.toCurrencyString(1234.56)
+ self.assertEqual(value, "$1,234.56")
+
+ def testToString(self):
+ """PYSIDE-2168, check negative values"""
+ en_locale = QLocale("en_US")
+ value = en_locale.toString(-4)
+ self.assertEqual(value, "-4")
+ # Verify that large types (long long/double) are used.
+ value = en_locale.toString(3000000000)
+ self.assertEqual(value, "3,000,000,000")
+ value = en_locale.toString(10e40)
+ self.assertEqual(value, "1E+41")
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/pyside6/tests/QtCore/qlockfile_test.py b/sources/pyside6/tests/QtCore/qlockfile_test.py
index f773c7112..6dca9235c 100644
--- a/sources/pyside6/tests/QtCore/qlockfile_test.py
+++ b/sources/pyside6/tests/QtCore/qlockfile_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QLockFile'''
@@ -58,6 +32,9 @@ class TestQMessageAuthenticationCode (unittest.TestCase):
lockFile = QLockFile(self._fileName)
self.assertTrue(lockFile.lock())
self.assertTrue(lockFile.isLocked())
+ lock_info = lockFile.getLockInfo();
+ self.assertEqual(len(lock_info), 3)
+ self.assertEqual(lock_info[0], os.getpid())
lockFile.unlock()
diff --git a/sources/pyside6/tests/QtCore/qmessageauthenticationcode_test.py b/sources/pyside6/tests/QtCore/qmessageauthenticationcode_test.py
index 89e3d7ba1..74e6bceb9 100644
--- a/sources/pyside6/tests/QtCore/qmessageauthenticationcode_test.py
+++ b/sources/pyside6/tests/QtCore/qmessageauthenticationcode_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QMessageAuthenticationCode'''
diff --git a/sources/pyside6/tests/QtCore/qmetaobject_test.py b/sources/pyside6/tests/QtCore/qmetaobject_test.py
index 33c35595f..4b3051711 100644
--- a/sources/pyside6/tests/QtCore/qmetaobject_test.py
+++ b/sources/pyside6/tests/QtCore/qmetaobject_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/python
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Tests for static methos conflicts with class methods'''
@@ -40,7 +13,10 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtCore import QFile, QObject, QTimer, SIGNAL
+from PySide6.QtCore import (QCoreApplication, QFile, QMetaMethod, QMetaObject,
+ QObject, QModelIndex, QPoint, QTimer, QSemaphore,
+ QStringListModel, Qt, Signal, Slot,
+ SIGNAL, Q_ARG, Q_RETURN_ARG)
class Foo(QFile):
@@ -52,6 +28,57 @@ class DynObject(QObject):
pass
+class InvokeTester(QObject):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+ @Slot(int, int, result=int)
+ def add(self, a, b):
+ return a + b
+
+ @Slot(str, str, result=str)
+ def concatenate(self, a, b):
+ return a + b
+
+ @Slot(QPoint, result=int)
+ def manhattan_length(self, point):
+ return abs(point.x()) + abs(point.y())
+
+ @Slot(QPoint, QPoint, result=QPoint)
+ def add_points(self, point1, point2):
+ return point1 + point2
+
+ @Slot(QObject, result=str)
+ def object_name(self, o):
+ return o.objectName()
+
+ @Slot(QObject, result=QObject)
+ def first_child(self, o):
+ return o.children()[0]
+
+
+class SemaphoreSender(QObject):
+ signal = Signal(QSemaphore)
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.semaphore = QSemaphore()
+
+ def emitSignal(self):
+ self.signal.emit(self.semaphore)
+
+
+class SemaphoreReceiver(QObject):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.semaphore = None
+
+ @Slot(QSemaphore)
+ def receiverSlot(self, semaphore):
+ self.semaphore = semaphore
+
+
class qmetaobject_test(unittest.TestCase):
"""
def test_QMetaObject(self):
@@ -78,15 +105,6 @@ class qmetaobject_test(unittest.TestCase):
o.connect(o2, SIGNAL("bars()"), o.slot)
self.assertTrue(o2.metaObject().indexOfMethod("bars()") > -1)
- #self.assertTrue(o.metaObject().indexOfMethod("bar()") == -1)
- #self.assertTrue(o.metaObject().indexOfMethod("slot()") > -1)
-
- #slot_index = o.metaObject().indexOfMethod("slot()")
-
- #o.connect(o, SIGNAL("foo()"), o2, SIGNAL("bar()"))
- #signal_index = o.metaObject().indexOfMethod("foo()");
-
- #self.assertTrue(slot_index != signal_index)
# PYSIDE-784, plain Qt objects should not have intermediary
# metaObjects.
@@ -95,7 +113,101 @@ class qmetaobject_test(unittest.TestCase):
self.assertEqual(timer.metaObject().superClass().className(),
"QObject")
+ # PYSIDE-1827, slots with non-QObject object types should work
+ # (metatypes are registered)
+ def test_ObjectSlotSignal(self):
+ app = QCoreApplication() # noqa: F841
+ sender = SemaphoreSender()
+ receiver = SemaphoreReceiver()
+ sender.signal.connect(receiver.receiverSlot, Qt.QueuedConnection)
+ sender.emitSignal()
+ while not receiver.semaphore:
+ QCoreApplication.processEvents()
+ self.assertEqual(sender.semaphore, receiver.semaphore)
+
+ # PYSIDE-1898,
+ def test_Invoke(self):
+ tester = InvokeTester()
+
+ # Primitive types
+ sum = QMetaObject.invokeMethod(tester, "add", Q_RETURN_ARG(int),
+ Q_ARG(int, 2), Q_ARG(int, 3))
+ self.assertEqual(sum, 5)
+
+ # Same with QMetaMethod
+ mo = tester.metaObject()
+ method = mo.method(mo.indexOfMethod("add(int,int)"))
+ self.assertTrue(method.isValid())
+ sum = method.invoke(tester, Qt.ConnectionType.AutoConnection,
+ Q_RETURN_ARG(int), Q_ARG(int, 2), Q_ARG(int, 3))
+ self.assertEqual(sum, 5)
+ sum = method.invoke(tester, Q_RETURN_ARG(int), Q_ARG(int, 2),
+ Q_ARG(int, 3))
+ self.assertEqual(sum, 5)
+
+ concatenated = QMetaObject.invokeMethod(tester, "concatenate",
+ Q_RETURN_ARG(str),
+ Q_ARG(str, "bla"),
+ Q_ARG(str, "bla"))
+ self.assertEqual(concatenated, "blabla")
+
+ # Wrapped type as in-parameter
+ point = QPoint(10, 20)
+ len = QMetaObject.invokeMethod(tester, "manhattan_length",
+ Q_RETURN_ARG(int),
+ Q_ARG(QPoint, point))
+ self.assertEqual(len, point.manhattanLength())
+
+ # Wrapped type as result
+ point2 = QPoint(30, 30)
+ point3 = QMetaObject.invokeMethod(tester, "add_points",
+ Q_RETURN_ARG(QPoint),
+ Q_ARG(QPoint, point),
+ Q_ARG(QPoint, point2))
+ self.assertEqual(point + point2, point3)
+
+ # Pass an object
+ o = QObject()
+ o.setObjectName("Foo")
+ name = QMetaObject.invokeMethod(tester, "object_name",
+ Q_RETURN_ARG(str),
+ Q_ARG(QObject, o))
+ self.assertEqual(name, o.objectName())
+
+ # Return an object
+ child = QObject(o)
+ child.setObjectName("Child")
+ c = QMetaObject.invokeMethod(tester, "first_child",
+ Q_RETURN_ARG(QObject),
+ Q_ARG(QObject, o))
+ self.assertTrue(c)
+ self.assertEqual(c, child)
+
+ def test_InvokeTypeString(self):
+ strings = ["item1", "item2"]
+ model = QStringListModel(strings)
+ index = model.index(1, 0)
+ QMetaObject.invokeMethod(model, "setData",
+ Q_ARG(QModelIndex, index),
+ Q_ARG("QVariant", "bla"))
+ self.assertEqual(model.data(index), "bla")
+
+ # Same with QMetaMethod
+ mo = model.metaObject()
+ method = mo.method(mo.indexOfMethod("setData(QModelIndex,QVariant)"))
+ self.assertTrue(method.isValid())
+ method.invoke(model, Qt.ConnectionType.AutoConnection,
+ Q_ARG(QModelIndex, index), Q_ARG("QVariant", "blub"))
+ self.assertEqual(model.data(index), "blub")
+ method.invoke(model, Q_ARG(QModelIndex, index), Q_ARG("QVariant", "blip"))
+ self.assertEqual(model.data(index), "blip")
+
+ def test_QMetaMethod(self):
+ o = QObject()
+ m = QMetaMethod.fromSignal(o.destroyed)
+ self.assertTrue(m.isValid)
+ self.assertEqual(m.methodSignature(), b"destroyed()")
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/pyside6/tests/QtCore/qmetatype_test.py b/sources/pyside6/tests/QtCore/qmetatype_test.py
new file mode 100644
index 000000000..f8e0ba1c0
--- /dev/null
+++ b/sources/pyside6/tests/QtCore/qmetatype_test.py
@@ -0,0 +1,43 @@
+#!/usr/bin/python
+# Copyright (C) 2022The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+'''Tests for QMetaType'''
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from PySide6.QtCore import (QMetaType, QObject, QPoint)
+
+
+class qmetatype_test(unittest.TestCase):
+ def test_ObjectSlotSignal(self):
+ meta_type = QMetaType(int)
+ self.assertTrue(meta_type.isValid())
+ self.assertEqual(meta_type.name(), "int")
+
+ meta_type = QMetaType(str)
+ self.assertTrue(meta_type.isValid())
+ self.assertEqual(meta_type.name(), "QString")
+
+ meta_type = QMetaType(float)
+ self.assertTrue(meta_type.isValid())
+ self.assertEqual(meta_type.name(), "double")
+
+ meta_type = QMetaType(QPoint)
+ self.assertTrue(meta_type.isValid())
+ self.assertEqual(meta_type.name(), "QPoint")
+
+ meta_type = QMetaType(QObject)
+ self.assertTrue(meta_type.isValid())
+ self.assertEqual(meta_type.name(), "QObject*")
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/QtCore/qmimedatabase_test.py b/sources/pyside6/tests/QtCore/qmimedatabase_test.py
index 099f9e10e..6a63edb85 100644
--- a/sources/pyside6/tests/QtCore/qmimedatabase_test.py
+++ b/sources/pyside6/tests/QtCore/qmimedatabase_test.py
@@ -1,36 +1,9 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Unit tests for QMimeDatabase'''
-import ctypes
import os
import sys
import unittest
@@ -50,8 +23,7 @@ class QMimeDatabaseTest(unittest.TestCase):
s0 = db.mimeTypeForName("application/x-zerosize")
self.assertTrue(s0.isValid())
self.assertEqual(s0.name(), "application/x-zerosize")
- if "en" in QLocale().name():
- self.assertEqual(s0.comment(), "empty document")
+ self.assertTrue(s0.comment())
s0Again = db.mimeTypeForName("application/x-zerosize")
self.assertEqual(s0Again.name(), s0.name())
@@ -66,13 +38,13 @@ class QMimeDatabaseTest(unittest.TestCase):
rdf = db.mimeTypeForName("application/rdf+xml")
self.assertTrue(rdf.isValid())
self.assertEqual(rdf.name(), "application/rdf+xml")
+ self.assertTrue(rdf.comment())
if "en" in QLocale().name():
self.assertEqual(rdf.comment(), "RDF file")
bzip2 = db.mimeTypeForName("application/x-bzip2")
self.assertTrue(bzip2.isValid())
- if "en" in QLocale().name():
- self.assertEqual(bzip2.comment(), "Bzip archive")
+ self.assertTrue(bzip2.comment())
defaultMime = db.mimeTypeForName("application/octet-stream")
self.assertTrue(defaultMime.isValid())
diff --git a/sources/pyside6/tests/QtCore/qmodelindex_internalpointer_test.py b/sources/pyside6/tests/QtCore/qmodelindex_internalpointer_test.py
index c04c8b3c4..ec37ca6a0 100644
--- a/sources/pyside6/tests/QtCore/qmodelindex_internalpointer_test.py
+++ b/sources/pyside6/tests/QtCore/qmodelindex_internalpointer_test.py
@@ -1,35 +1,9 @@
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
''' Test case for QAbstractListModel.createIndex and QModelIndex.internalPointer'''
+import gc
import os
import sys
import unittest
@@ -56,6 +30,8 @@ class TestQModelIndexInternalPointer(unittest.TestCase):
def tearDown(self):
# Release resources
del self.model
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
def testInternalPointer(self):
# Test QAbstractListModel.createIndex and
diff --git a/sources/pyside6/tests/QtCore/qobject_children_segfault_test.py b/sources/pyside6/tests/QtCore/qobject_children_segfault_test.py
index cab045ddc..508526cca 100644
--- a/sources/pyside6/tests/QtCore/qobject_children_segfault_test.py
+++ b/sources/pyside6/tests/QtCore/qobject_children_segfault_test.py
@@ -1,33 +1,9 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for parent-child relationship'''
+import gc
import os
import sys
import unittest
@@ -57,6 +33,8 @@ class ChildrenCoreApplication(unittest.TestCase):
# del children
# del child2
del parent # XXX Segfaults here
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertTrue(True)
diff --git a/sources/pyside6/tests/QtCore/qobject_connect_notify_test.py b/sources/pyside6/tests/QtCore/qobject_connect_notify_test.py
index a5b44a2a1..b3bfaf007 100644
--- a/sources/pyside6/tests/QtCore/qobject_connect_notify_test.py
+++ b/sources/pyside6/tests/QtCore/qobject_connect_notify_test.py
@@ -1,32 +1,5 @@
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
''' Test case for QObject::connectNotify()'''
@@ -39,8 +12,8 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtCore import QObject, SIGNAL, SLOT
-from helper.usesqcoreapplication import UsesQCoreApplication
+from PySide6.QtCore import QObject, Signal, SIGNAL, SLOT
+from helper.usesqapplication import UsesQApplication
def cute_slot():
@@ -48,6 +21,9 @@ def cute_slot():
class Obj(QObject):
+
+ foo = Signal()
+
def __init__(self):
super().__init__()
self.con_notified = False
@@ -66,49 +42,56 @@ class Obj(QObject):
self.dis_notified = False
-class TestQObjectConnectNotify(UsesQCoreApplication):
+class TestQObjectConnectNotify(UsesQApplication):
'''Test case for QObject::connectNotify'''
def setUp(self):
- UsesQCoreApplication.setUp(self)
+ UsesQApplication.setUp(self)
self.called = False
def tearDown(self):
- UsesQCoreApplication.tearDown(self)
+ UsesQApplication.tearDown(self)
def testBasic(self):
sender = Obj()
receiver = QObject()
+ sender.destroyed.connect(receiver.deleteLater)
+ self.assertTrue(sender.con_notified)
+ self.assertEqual(sender.signal.methodSignature(), "destroyed()")
+ self.assertTrue(sender.destroyed.disconnect(receiver.deleteLater))
+ self.assertTrue(sender.dis_notified)
+
+ def testBasicString(self):
+ sender = Obj()
+ receiver = QObject()
sender.connect(SIGNAL("destroyed()"), receiver, SLOT("deleteLater()"))
self.assertTrue(sender.con_notified)
# When connecting to a regular slot, and not a python callback function, QObject::connect
# will use the non-cloned method signature, so connecting to destroyed() will actually
# connect to destroyed(QObject*).
self.assertEqual(sender.signal.methodSignature(), "destroyed(QObject*)")
- sender.disconnect(SIGNAL("destroyed()"), receiver, SLOT("deleteLater()"))
+ self.assertTrue(sender.disconnect(SIGNAL("destroyed()"), receiver, SLOT("deleteLater()")))
self.assertTrue(sender.dis_notified)
def testPySignal(self):
sender = Obj()
receiver = QObject()
- sender.connect(SIGNAL("foo()"), receiver, SLOT("deleteLater()"))
+ sender.foo.connect(receiver.deleteLater)
self.assertTrue(sender.con_notified)
- sender.disconnect(SIGNAL("foo()"), receiver, SLOT("deleteLater()"))
+ self.assertTrue(sender.foo.disconnect(receiver.deleteLater))
self.assertTrue(sender.dis_notified)
def testPySlots(self):
sender = Obj()
- receiver = QObject()
- sender.connect(SIGNAL("destroyed()"), cute_slot)
+ sender.destroyed.connect(cute_slot)
self.assertTrue(sender.con_notified)
- sender.disconnect(SIGNAL("destroyed()"), cute_slot)
+ self.assertTrue(sender.destroyed.disconnect(cute_slot))
self.assertTrue(sender.dis_notified)
def testpyAll(self):
sender = Obj()
- receiver = QObject()
- sender.connect(SIGNAL("foo()"), cute_slot)
+ sender.foo.connect(cute_slot)
self.assertTrue(sender.con_notified)
- sender.disconnect(SIGNAL("foo()"), cute_slot)
+ self.assertTrue(sender.foo.disconnect(cute_slot))
self.assertTrue(sender.dis_notified)
diff --git a/sources/pyside6/tests/QtCore/qobject_destructor.py b/sources/pyside6/tests/QtCore/qobject_destructor.py
index d9fe18d1d..2b7b40f25 100644
--- a/sources/pyside6/tests/QtCore/qobject_destructor.py
+++ b/sources/pyside6/tests/QtCore/qobject_destructor.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtCore/qobject_event_filter_test.py b/sources/pyside6/tests/QtCore/qobject_event_filter_test.py
index 73c1544ed..ab7a1b6ad 100644
--- a/sources/pyside6/tests/QtCore/qobject_event_filter_test.py
+++ b/sources/pyside6/tests/QtCore/qobject_event_filter_test.py
@@ -1,33 +1,9 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QObject.eventFilter'''
+import gc
import os
import sys
import unittest
@@ -40,7 +16,7 @@ init_test_paths(False)
from PySide6.QtCore import QObject, QTimerEvent
-from helper.usesqcoreapplication import UsesQCoreApplication
+from helper.usesqapplication import UsesQApplication
class FilterObject(QObject):
@@ -87,20 +63,33 @@ class FilteredObject(QObject):
self.app.quit()
-class TestQObjectEventFilterPython(UsesQCoreApplication):
+class PolymorphicIdFilterObject(QObject):
+ """PYSIDE-2675: Check whether QChildEvent.added() is accessible via PolymorphicId"""
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.added = False
+
+ def event(self, event):
+ self.added = event.added()
+ return False
+
+
+class TestQObjectEventFilterPython(UsesQApplication):
'''QObject.eventFilter - Reimplemented in python
Filters 5 TimerEvents and then bypasses the other events to the
timerEvent method. After 5 runs, the timerEvent method will ask
the core application to exit'''
def setUp(self):
# Acquire resources
- UsesQCoreApplication.setUp(self)
+ UsesQApplication.setUp(self)
self.obj_filter = FilterObject(event_type=QTimerEvent)
def tearDown(self):
# Release resources
del self.obj_filter
- UsesQCoreApplication.tearDown(self)
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
+ UsesQApplication.tearDown(self)
def testEventFilter(self):
# QObject.eventFilter reimplemented in python
@@ -115,6 +104,11 @@ class TestQObjectEventFilterPython(UsesQCoreApplication):
self.assertEqual(filtered.times_called, 5)
self.assertEqual(self.obj_filter.events_handled, 5)
+ def testPolymorphicId(self):
+ testObject = PolymorphicIdFilterObject()
+ t2 = QObject(testObject) # noqa: F841
+ self.assertTrue(testObject.added)
+
@unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testInstallEventFilterRefCountAfterDelete(self):
'''Bug 910 - installEventFilter() increments reference count on target object
diff --git a/sources/pyside6/tests/QtCore/qobject_inherits_test.py b/sources/pyside6/tests/QtCore/qobject_inherits_test.py
index e2577fd40..0bd4fba75 100644
--- a/sources/pyside6/tests/QtCore/qobject_inherits_test.py
+++ b/sources/pyside6/tests/QtCore/qobject_inherits_test.py
@@ -1,33 +1,9 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QObject methods'''
+import gc
import os
import sys
import unittest
@@ -125,9 +101,13 @@ class InheritsCase(unittest.TestCase):
child.deleteLater()
self.assertTrue(is_alive)
del child
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertTrue(is_alive)
QTimer.singleShot(100, app.quit)
app.exec()
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertFalse(is_alive)
diff --git a/sources/pyside6/tests/QtCore/qobject_objectproperty_test.py b/sources/pyside6/tests/QtCore/qobject_objectproperty_test.py
index 9143355f2..f1a4cb0b5 100644
--- a/sources/pyside6/tests/QtCore/qobject_objectproperty_test.py
+++ b/sources/pyside6/tests/QtCore/qobject_objectproperty_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/python
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test case for the bug #378
http://bugs.openbossa.org/show_bug.cgi?id=378
diff --git a/sources/pyside6/tests/QtCore/qobject_parent_test.py b/sources/pyside6/tests/QtCore/qobject_parent_test.py
index 9dcbc05da..6265f77b1 100644
--- a/sources/pyside6/tests/QtCore/qobject_parent_test.py
+++ b/sources/pyside6/tests/QtCore/qobject_parent_test.py
@@ -1,33 +1,9 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for parent-child relationship'''
+import gc
import os
import sys
import unittest
@@ -62,6 +38,8 @@ class ParentRefCountCase(unittest.TestCase):
# Release resources
del self.child
del self.parent
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
@unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testSetParent(self):
@@ -105,6 +83,8 @@ class ParentCase(unittest.TestCase):
orig_repr = repr(child)
del child
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertEqual(orig_repr, repr(parent.children()[0]))
def testChildren(self):
@@ -125,10 +105,9 @@ class ParentCase(unittest.TestCase):
for i, child in enumerate(children):
self.assertEqual(child, parent.findChild(QObject, f'object{i}'))
-
def testFindChildOptions(self):
parent = QObject()
- child = QObject(parent)
+ child = QObject(parent)
nested_child_name = 'nestedChild'
nested_child = QObject(child)
nested_child.setObjectName(nested_child_name)
diff --git a/sources/pyside6/tests/QtCore/qobject_property_test.py b/sources/pyside6/tests/QtCore/qobject_property_test.py
index d141a97df..4efb25cb4 100644
--- a/sources/pyside6/tests/QtCore/qobject_property_test.py
+++ b/sources/pyside6/tests/QtCore/qobject_property_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QObject property and setProperty'''
diff --git a/sources/pyside6/tests/QtCore/qobject_protected_methods_test.py b/sources/pyside6/tests/QtCore/qobject_protected_methods_test.py
index 9b89abf9c..926698b4b 100644
--- a/sources/pyside6/tests/QtCore/qobject_protected_methods_test.py
+++ b/sources/pyside6/tests/QtCore/qobject_protected_methods_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QObject protected methods'''
diff --git a/sources/pyside6/tests/QtCore/qobject_test.py b/sources/pyside6/tests/QtCore/qobject_test.py
index b399b84c9..ecfc3dff0 100644
--- a/sources/pyside6/tests/QtCore/qobject_test.py
+++ b/sources/pyside6/tests/QtCore/qobject_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/python
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QObject methods'''
diff --git a/sources/pyside6/tests/QtCore/qobject_timer_event_test.py b/sources/pyside6/tests/QtCore/qobject_timer_event_test.py
index f6fc2e080..9e657c27f 100644
--- a/sources/pyside6/tests/QtCore/qobject_timer_event_test.py
+++ b/sources/pyside6/tests/QtCore/qobject_timer_event_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test case for QObject.timerEvent overloading'''
@@ -41,7 +15,7 @@ init_test_paths(False)
from PySide6.QtCore import QObject, QCoreApplication
-from helper.usesqcoreapplication import UsesQCoreApplication
+from helper.usesqapplication import UsesQApplication
class Dummy(QObject):
@@ -60,7 +34,7 @@ class Dummy(QObject):
self.app.exit(0)
-class QObjectTimerEvent(UsesQCoreApplication):
+class QObjectTimerEvent(UsesQApplication):
def setUp(self):
# Acquire resources
diff --git a/sources/pyside6/tests/QtCore/qobject_tr_as_instance_test.py b/sources/pyside6/tests/QtCore/qobject_tr_as_instance_test.py
index f70c04344..9123c5155 100644
--- a/sources/pyside6/tests/QtCore/qobject_tr_as_instance_test.py
+++ b/sources/pyside6/tests/QtCore/qobject_tr_as_instance_test.py
@@ -1,36 +1,10 @@
#!/usr/bin/python
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Unit tests for QObject's tr static methods.'''
+import gc
import os
import os
import sys
@@ -43,7 +17,7 @@ init_test_paths(False)
from PySide6.QtCore import QObject
-#from helper.usesqcoreapplication import UsesQCoreApplication
+#from helper.usesqapplication import UsesQApplication
class QObjectTrTest(unittest.TestCase):
@@ -54,6 +28,8 @@ class QObjectTrTest(unittest.TestCase):
def tearDown(self):
del self.obj
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
def testTrCommonCase(self):
# Test common case for QObject.tr
diff --git a/sources/pyside6/tests/QtCore/qoperatingsystemversion_test.py b/sources/pyside6/tests/QtCore/qoperatingsystemversion_test.py
index e7c784300..d887029ac 100644
--- a/sources/pyside6/tests/QtCore/qoperatingsystemversion_test.py
+++ b/sources/pyside6/tests/QtCore/qoperatingsystemversion_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtCore/qpoint_test.py b/sources/pyside6/tests/QtCore/qpoint_test.py
index a2a92d3ef..b9d5afa37 100644
--- a/sources/pyside6/tests/QtCore/qpoint_test.py
+++ b/sources/pyside6/tests/QtCore/qpoint_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QPoint and QPointF'''
diff --git a/sources/pyside6/tests/QtCore/qprocess_test.py b/sources/pyside6/tests/QtCore/qprocess_test.py
index 9634f26d3..ba4d29102 100644
--- a/sources/pyside6/tests/QtCore/qprocess_test.py
+++ b/sources/pyside6/tests/QtCore/qprocess_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QProcess'''
diff --git a/sources/pyside6/tests/QtCore/qproperty_decorator.py b/sources/pyside6/tests/QtCore/qproperty_decorator.py
index 424b9dc9a..19f2bd251 100644
--- a/sources/pyside6/tests/QtCore/qproperty_decorator.py
+++ b/sources/pyside6/tests/QtCore/qproperty_decorator.py
@@ -1,31 +1,7 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+import gc
import os
import sys
import unittest
@@ -67,6 +43,10 @@ class PropertyTest(unittest.TestCase):
self.assertEqual(o._value, 10)
self.assertEqual(o.value, 10)
del o
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
+ # PYSIDE-535: Why do I need to do it twice, here?
+ gc.collect()
self.assertTrue(self._obDestroyed)
diff --git a/sources/pyside6/tests/QtCore/qrandomgenerator_test.py b/sources/pyside6/tests/QtCore/qrandomgenerator_test.py
index 36d2a0e03..c13a8b24a 100644
--- a/sources/pyside6/tests/QtCore/qrandomgenerator_test.py
+++ b/sources/pyside6/tests/QtCore/qrandomgenerator_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtCore/qrect_test.py b/sources/pyside6/tests/QtCore/qrect_test.py
index 83c3618d5..8a14abc5a 100644
--- a/sources/pyside6/tests/QtCore/qrect_test.py
+++ b/sources/pyside6/tests/QtCore/qrect_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QRect'''
diff --git a/sources/pyside6/tests/QtCore/qregularexpression_test.py b/sources/pyside6/tests/QtCore/qregularexpression_test.py
index 20b582259..a88c2dc24 100644
--- a/sources/pyside6/tests/QtCore/qregularexpression_test.py
+++ b/sources/pyside6/tests/QtCore/qregularexpression_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Unit tests for QRegularExpression'''
diff --git a/sources/pyside6/tests/QtCore/qresource_test.py b/sources/pyside6/tests/QtCore/qresource_test.py
index a9bdbfe51..1cdd2c785 100644
--- a/sources/pyside6/tests/QtCore/qresource_test.py
+++ b/sources/pyside6/tests/QtCore/qresource_test.py
@@ -1,32 +1,5 @@
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QResource usage'''
@@ -58,7 +31,7 @@ class ResourcesUsage(unittest.TestCase):
if carriage_return != -1:
orig.remove(carriage_return, 1)
- f = QFile(':/quote.txt') #|QIODevice.Text
+ f = QFile(':/quote.txt') # |QIODevice.Text
self.assertTrue(f.open(QIODevice.ReadOnly), f.errorString())
copy = f.readAll()
f.close()
diff --git a/sources/pyside6/tests/QtCore/qrunnable_test.py b/sources/pyside6/tests/QtCore/qrunnable_test.py
new file mode 100644
index 000000000..d52f50ce1
--- /dev/null
+++ b/sources/pyside6/tests/QtCore/qrunnable_test.py
@@ -0,0 +1,45 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+'''Test cases for QRunnable'''
+
+import os
+import sys
+import unittest
+from io import StringIO
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from PySide6.QtCore import QCoreApplication, QRunnable, QThreadPool, QThread, qDebug
+from helper.usesqapplication import UsesQApplication
+test_result = ""
+
+
+def check_test():
+ global test_result
+ test_result = "test works"
+
+
+class QRunnableTest(UsesQApplication):
+ def testCreateWithAutoDelete(self):
+ global test_result
+ test_result = "" # reset
+ runnable = QRunnable.create(check_test)
+ runnable.run()
+ self.assertEqual(test_result, "test works")
+
+ def testwithQThreadPool(self):
+ global test_result
+ test_result = "" # reset
+ runnable = QRunnable.create(check_test)
+ tp = QThreadPool.globalInstance()
+ tp.start(runnable)
+ self.assertTrue(tp.waitForDone())
+ self.assertEqual(test_result, "test works")
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/QtCore/qsettings_test.py b/sources/pyside6/tests/QtCore/qsettings_test.py
index 72f3c3f00..64ceffd70 100644
--- a/sources/pyside6/tests/QtCore/qsettings_test.py
+++ b/sources/pyside6/tests/QtCore/qsettings_test.py
@@ -1,33 +1,9 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QDate'''
+import gc
import os
import sys
import unittest
@@ -75,11 +51,17 @@ class TestQSettings(unittest.TestCase):
self.assertTrue(dir.isValid())
file_name = dir.filePath('foo.ini')
settings = QSettings(file_name, QSettings.IniFormat)
+ sample_list = ["a", "b"]
+ string_list_of_empty = [""]
settings.setValue('zero_value', 0)
settings.setValue('empty_list', [])
+ settings.setValue('some_strings', sample_list)
+ settings.setValue('string_list_of_empty', string_list_of_empty)
settings.setValue('bool1', False)
settings.setValue('bool2', True)
del settings
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
# Loading values already set
settings = QSettings(file_name, QSettings.IniFormat)
@@ -88,6 +70,10 @@ class TestQSettings(unittest.TestCase):
r = settings.value("variable")
self.assertEqual(type(r), type(None))
+ r = settings.value("variable", type=list)
+ self.assertEqual(type(r), list)
+ self.assertEqual(len(r), 0)
+
# Handling zero value
r = settings.value('zero_value')
self.assertEqual(type(r), int)
@@ -104,6 +90,15 @@ class TestQSettings(unittest.TestCase):
self.assertTrue(len(r) == 0)
self.assertEqual(type(r), list)
+ r = settings.value('some_strings')
+ self.assertEqual(r, sample_list)
+
+ r = settings.value('some_strings', type=list)
+ self.assertEqual(r, sample_list)
+
+ r = settings.value('string_list_of_empty', type=list)
+ self.assertEqual(r, string_list_of_empty)
+
# Booleans
r = settings.value('bool1')
self.assertEqual(type(r), bool)
diff --git a/sources/pyside6/tests/QtCore/qsharedmemory_client.py b/sources/pyside6/tests/QtCore/qsharedmemory_client.py
index fd994b0cb..d16c36da9 100644
--- a/sources/pyside6/tests/QtCore/qsharedmemory_client.py
+++ b/sources/pyside6/tests/QtCore/qsharedmemory_client.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Client for the unit test of QSharedMemory'''
diff --git a/sources/pyside6/tests/QtCore/qsharedmemory_test.py b/sources/pyside6/tests/QtCore/qsharedmemory_test.py
index ee2e6c40a..ed8a47939 100644
--- a/sources/pyside6/tests/QtCore/qsharedmemory_test.py
+++ b/sources/pyside6/tests/QtCore/qsharedmemory_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Unit tests for QSharedMemory'''
diff --git a/sources/pyside6/tests/QtCore/qsize_test.py b/sources/pyside6/tests/QtCore/qsize_test.py
index 95705f51c..bc324ba73 100644
--- a/sources/pyside6/tests/QtCore/qsize_test.py
+++ b/sources/pyside6/tests/QtCore/qsize_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Unit tests for QSize'''
diff --git a/sources/pyside6/tests/QtCore/qslot_object_test.py b/sources/pyside6/tests/QtCore/qslot_object_test.py
index 36368ae3d..a95afb090 100644
--- a/sources/pyside6/tests/QtCore/qslot_object_test.py
+++ b/sources/pyside6/tests/QtCore/qslot_object_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -37,7 +11,7 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtCore import QCoreApplication, QObject, QTimer, SIGNAL, SLOT
+from PySide6.QtCore import QCoreApplication, QObject, QTimer
"""
This is a simple slot test that was updated to use the qApp "macro".
@@ -54,24 +28,23 @@ class objTest(QObject):
def slot(self):
self.ok = True
- qApp.quit()
+ qApp.quit() # noqa: F821
class slotTest(unittest.TestCase):
def quit_app(self):
- qApp.quit()
+ qApp.quit() # noqa: F821
def testBasic(self):
timer = QTimer()
timer.setInterval(100)
my_obj = objTest()
- my_slot = SLOT("slot()")
- QObject.connect(timer, SIGNAL("timeout()"), my_obj, my_slot)
+ timer.timeout.connect(my_obj.slot)
timer.start(100)
QTimer.singleShot(1000, self.quit_app)
- qApp.exec()
+ qApp.exec() # noqa: F821
self.assertTrue(my_obj.ok)
diff --git a/sources/pyside6/tests/QtCore/qsocketnotifier_test.py b/sources/pyside6/tests/QtCore/qsocketnotifier_test.py
index b348d5aa7..2e812947c 100644
--- a/sources/pyside6/tests/QtCore/qsocketnotifier_test.py
+++ b/sources/pyside6/tests/QtCore/qsocketnotifier_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Unit tests for QUuid'''
@@ -40,13 +14,12 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtWidgets import QApplication
-from PySide6.QtCore import QSocketNotifier
+from PySide6.QtCore import QCoreApplication, QSocketNotifier
class QSocketNotifierTest(unittest.TestCase):
def testClass(self):
- app = QApplication([])
+ app = QCoreApplication([])
# socketpair is not available on Windows
if os.name != "nt":
w_sock, r_sock = socket.socketpair(socket.AF_UNIX, socket.SOCK_STREAM)
diff --git a/sources/pyside6/tests/QtCore/qsrand_test.py b/sources/pyside6/tests/QtCore/qsrand_test.py
index 4208ab951..fef44261b 100644
--- a/sources/pyside6/tests/QtCore/qsrand_test.py
+++ b/sources/pyside6/tests/QtCore/qsrand_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import gc
import os
@@ -42,6 +17,11 @@ from PySide6.QtCore import QRandomGenerator
class OverflowExceptionCollect(unittest.TestCase):
'''Test case for OverflowError exception during garbage collection. See bug #147'''
+ def assertRaises(self, *args, **kwds):
+ if not hasattr(sys, "pypy_version_info"):
+ # PYSIDE-535: PyPy complains "Fatal RPython error: NotImplementedError"
+ return super().assertRaises(*args, **kwds)
+
def testOverflow(self):
# NOTE: PyQt4 raises TypeError, but boost.python raises OverflowError
self.assertRaises(OverflowError, QRandomGenerator, 42415335332353253)
diff --git a/sources/pyside6/tests/QtCore/qstandardpaths_test.py b/sources/pyside6/tests/QtCore/qstandardpaths_test.py
index 070942474..b8274769b 100644
--- a/sources/pyside6/tests/QtCore/qstandardpaths_test.py
+++ b/sources/pyside6/tests/QtCore/qstandardpaths_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Unit tests for QStandardPaths'''
diff --git a/sources/pyside6/tests/QtCore/qstorageinfo_test.py b/sources/pyside6/tests/QtCore/qstorageinfo_test.py
index 35413f081..5869d9f00 100644
--- a/sources/pyside6/tests/QtCore/qstorageinfo_test.py
+++ b/sources/pyside6/tests/QtCore/qstorageinfo_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Unit tests for QStorageInfo'''
diff --git a/sources/pyside6/tests/QtCore/qstring_test.py b/sources/pyside6/tests/QtCore/qstring_test.py
index a43b2b94a..d740eeeef 100644
--- a/sources/pyside6/tests/QtCore/qstring_test.py
+++ b/sources/pyside6/tests/QtCore/qstring_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/python
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QString'''
@@ -52,6 +25,10 @@ class QStringConstructor(unittest.TestCase):
self.assertEqual(obj.objectName(), 'foo')
obj.setObjectName('áâãà')
self.assertEqual(obj.objectName(), 'áâãà')
+ obj.setObjectName('A\x00B')
+ self.assertEqual(obj.objectName(), 'A\x00B')
+ obj.setObjectName('ä\x00B')
+ self.assertEqual(obj.objectName(), 'ä\x00B')
obj.setObjectName(None)
self.assertEqual(obj.objectName(), '')
diff --git a/sources/pyside6/tests/QtCore/qsysinfo_test.py b/sources/pyside6/tests/QtCore/qsysinfo_test.py
index ebd0f82ee..602852fab 100644
--- a/sources/pyside6/tests/QtCore/qsysinfo_test.py
+++ b/sources/pyside6/tests/QtCore/qsysinfo_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -39,13 +14,14 @@ from PySide6.QtCore import QSysInfo
class TestQSysInfo(unittest.TestCase):
+
def testEnumEndian(self):
- self.assertEqual(QSysInfo.BigEndian, 0)
- self.assertEqual(QSysInfo.LittleEndian, 1)
- self.assertTrue(QSysInfo.ByteOrder > -1)
+ self.assertEqual(QSysInfo.BigEndian.value, 0)
+ self.assertEqual(QSysInfo.LittleEndian.value, 1)
+ self.assertTrue(QSysInfo.ByteOrder.value > -1)
def testEnumSizes(self):
- self.assertTrue(QSysInfo.WordSize > 0)
+ self.assertTrue(QSysInfo.WordSize.value > 0)
if __name__ == '__main__':
diff --git a/sources/pyside6/tests/QtCore/qtextstream_test.py b/sources/pyside6/tests/QtCore/qtextstream_test.py
index 64be2b9a3..d4ed94e14 100644
--- a/sources/pyside6/tests/QtCore/qtextstream_test.py
+++ b/sources/pyside6/tests/QtCore/qtextstream_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Unit tests for QTextStream'''
diff --git a/sources/pyside6/tests/QtCore/qthread_prod_cons_test.py b/sources/pyside6/tests/QtCore/qthread_prod_cons_test.py
index 27178361d..a179c936f 100644
--- a/sources/pyside6/tests/QtCore/qthread_prod_cons_test.py
+++ b/sources/pyside6/tests/QtCore/qthread_prod_cons_test.py
@@ -1,35 +1,10 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Producer-Consumer test/example with QThread'''
+import gc
import logging
import os
from random import random
@@ -116,10 +91,8 @@ class ProducerConsumer(unittest.TestCase):
def tearDown(self):
# Destroy fixtures
del self.app
-
- def finishCb(self):
- # Quits the application
- self.app.exit(0)
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
def testProdCon(self):
# QThread producer-consumer example
@@ -127,16 +100,14 @@ class ProducerConsumer(unittest.TestCase):
prod = Producer(bucket)
cons = Consumer(bucket)
+ cons.finished.connect(QCoreApplication.quit)
prod.start()
cons.start()
- prod.finished.connect(self.finishCb)
- cons.finished.connect(self.finishCb)
-
self.app.exec()
- prod.wait(50)
- cons.wait(50)
+ self.assertTrue(prod.wait(1000))
+ self.assertTrue(cons.wait(1000))
self.assertEqual(prod.production_list, cons.consumption_list)
diff --git a/sources/pyside6/tests/QtCore/qthread_signal_test.py b/sources/pyside6/tests/QtCore/qthread_signal_test.py
index 87bd85b73..4e312dcc8 100644
--- a/sources/pyside6/tests/QtCore/qthread_signal_test.py
+++ b/sources/pyside6/tests/QtCore/qthread_signal_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for connecting signals between threads'''
@@ -37,41 +12,40 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtCore import QThread, QObject, SIGNAL, QCoreApplication
-
-thread_run = False
+from PySide6.QtCore import QThread, QTimer, QObject, Signal, Slot, QCoreApplication
class Source(QObject):
+ source = Signal()
+
def __init__(self, *args):
- QObject.__init__(self, *args)
+ super().__init__(*args)
+ @Slot()
def emit_sig(self):
- self.emit(SIGNAL('source()'))
+ self.source.emit()
class Target(QObject):
def __init__(self, *args):
- QObject.__init__(self, *args)
+ super().__init__(*args)
self.called = False
+ @Slot()
def myslot(self):
self.called = True
class ThreadJustConnects(QThread):
def __init__(self, source, *args):
- QThread.__init__(self, *args)
+ super().__init__(*args)
self.source = source
self.target = Target()
def run(self):
- global thread_run
- thread_run = True
- QObject.connect(self.source, SIGNAL('source()'), self.target.myslot)
-
- while not self.target.called:
- pass
+ self.source.source.connect(self.target.myslot)
+ self.source.source.connect(self.quit)
+ self.exec()
class BasicConnection(unittest.TestCase):
@@ -83,14 +57,10 @@ class BasicConnection(unittest.TestCase):
source = Source()
thread = ThreadJustConnects(source)
- QObject.connect(thread, SIGNAL('finished()'), lambda: app.exit(0))
+ thread.finished.connect(QCoreApplication.quit)
thread.start()
- while not thread_run:
- pass
-
- source.emit_sig()
-
+ QTimer.singleShot(50, source.emit_sig)
app.exec()
thread.wait()
diff --git a/sources/pyside6/tests/QtCore/qthread_test.py b/sources/pyside6/tests/QtCore/qthread_test.py
index 13c92b6f7..4d26e0597 100644
--- a/sources/pyside6/tests/QtCore/qthread_test.py
+++ b/sources/pyside6/tests/QtCore/qthread_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QThread'''
@@ -39,12 +13,10 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtCore import QThread, QCoreApplication, QObject, SIGNAL, QMutex, QTimer
+from PySide6.QtCore import QThread, QCoreApplication, QObject, QTimer, Slot
from PySide6.QtCore import QEventLoop
-from helper.usesqcoreapplication import UsesQCoreApplication
-
-mutex = QMutex()
+from helper.usesqapplication import UsesQApplication
class Dummy(QThread):
@@ -56,20 +28,17 @@ class Dummy(QThread):
def run(self):
# Start-quit sequence
self.qobj = QObject()
- mutex.lock()
self.called = True
- mutex.unlock()
-class QThreadSimpleCase(UsesQCoreApplication):
+class QThreadSimpleCase(UsesQApplication):
def setUp(self):
- UsesQCoreApplication.setUp(self)
+ UsesQApplication.setUp(self)
+ self._started_called = False
+ self._finished_called = False
self.called = False
- def tearDown(self):
- UsesQCoreApplication.tearDown(self)
-
def testThread(self):
# Basic QThread test
obj = Dummy()
@@ -78,41 +47,37 @@ class QThreadSimpleCase(UsesQCoreApplication):
self.assertTrue(obj.called)
- def cb(self, *args):
- self.called = True
- # self.exit_app_cb()
-
+ @Slot()
def abort_application(self):
if self._thread.isRunning():
+ print("Warning: terminating thread", file=sys.stderr)
self._thread.terminate()
self.app.quit()
- def testSignalFinished(self):
- # QThread.finished() (signal)
- obj = Dummy()
- obj.finished.connect(self.cb)
- mutex.lock()
- obj.start()
- mutex.unlock()
-
- self._thread = obj
- QTimer.singleShot(1000, self.abort_application)
- self.app.exec()
+ @Slot()
+ def finished(self):
+ self._finished_called = True
- self.assertTrue(self.called)
+ @Slot()
+ def started(self):
+ self._started_called = True
- def testSignalStarted(self):
- # QThread.started() (signal)
- obj = Dummy()
- obj.started.connect(self.cb)
- obj.start()
+ def testSignals(self):
+ # QThread.finished() (signal)
+ self._thread = Dummy()
+ self._thread.started.connect(self.started)
+ self._thread.finished.connect(self.finished)
+ self._thread.finished.connect(self.app.quit)
- self._thread = obj
+ QTimer.singleShot(50, self._thread.start)
QTimer.singleShot(1000, self.abort_application)
+
self.app.exec()
+ if self._thread.isRunning():
+ self._thread.wait(100)
- self.assertEqual(obj.qobj.thread(), obj) # test QObject.thread() method
- self.assertTrue(self.called)
+ self.assertTrue(self._started_called)
+ self.assertTrue(self._finished_called)
if __name__ == '__main__':
diff --git a/sources/pyside6/tests/QtCore/qtimer_singleshot_test.py b/sources/pyside6/tests/QtCore/qtimer_singleshot_test.py
index 7aa315e17..2ccaa300e 100644
--- a/sources/pyside6/tests/QtCore/qtimer_singleshot_test.py
+++ b/sources/pyside6/tests/QtCore/qtimer_singleshot_test.py
@@ -1,35 +1,10 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QTimer.singleShot'''
+import gc
import os
import sys
import unittest
@@ -39,8 +14,8 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtCore import QObject, QTimer, QCoreApplication, Signal
-from helper.usesqcoreapplication import UsesQCoreApplication
+from PySide6.QtCore import QObject, QThread, QTimer, Signal, Slot, SLOT
+from helper.usesqapplication import UsesQApplication
class WatchDog(QObject):
@@ -57,23 +32,41 @@ class WatchDog(QObject):
self.watched.exit_app_cb()
-class TestSingleShot(UsesQCoreApplication):
+class ThreadForContext(QThread):
+ def __init__(self):
+ super().__init__()
+ self.called = False
+ self.qthread = None
+ self.context = QObject()
+
+ def run(self):
+ self.called = True
+ self.qthread = QThread.currentThread()
+ self.exec()
+
+
+class TestSingleShot(UsesQApplication):
'''Test case for QTimer.singleShot'''
def setUp(self):
# Acquire resources
- UsesQCoreApplication.setUp(self)
+ UsesQApplication.setUp(self)
self.watchdog = WatchDog(self)
self.called = False
+ self.qthread = None
def tearDown(self):
# Release resources
del self.watchdog
del self.called
- UsesQCoreApplication.tearDown(self)
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
+ UsesQApplication.tearDown(self)
def callback(self):
self.called = True
+ self.qthread = QThread.currentThread()
+ self.qthread.exit()
self.app.quit()
def testSingleShot(self):
@@ -81,24 +74,103 @@ class TestSingleShot(UsesQCoreApplication):
self.app.exec()
self.assertTrue(self.called)
+ def testSingleShotZero(self):
+ QTimer.singleShot(0, self.callback)
+ self.app.exec()
+ self.assertTrue(self.called)
+
+ def testSingleShotWithContext(self):
+ thread = ThreadForContext()
+ thread.start()
+ thread.context.moveToThread(thread)
+ QTimer.singleShot(100, thread.context, self.callback)
+ self.app.exec()
+ thread.wait()
+ self.assertTrue(self.called)
+ self.assertTrue(thread.called)
+ self.assertEqual(self.qthread, thread.qthread)
+
+ def testSingleShotWithContextZero(self):
+ thread = ThreadForContext()
+ thread.start()
+ thread.context.moveToThread(thread)
+ QTimer.singleShot(0, thread.context, self.callback)
+ self.app.exec()
+ thread.wait()
+ self.assertTrue(self.called)
+ self.assertTrue(thread.called)
+ self.assertEqual(self.qthread, thread.qthread)
+
+
+class TestSingleShotCallableObject(UsesQApplication):
+ '''Test case for QTimer.singleShot with callable inside an object'''
+
+ def setUp(self):
+ # Acquire resources
+ UsesQApplication.setUp(self)
+ self.watchdog = WatchDog(self)
+
+ def tearDown(self):
+ # Release resources
+ del self.watchdog
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
+ UsesQApplication.tearDown(self)
+
+ class CallbackObject(QObject):
+ def __init__(self, app) -> None:
+ super().__init__()
+ self.app = app
+
+ @Slot()
+ def func(self):
+ self.called = True
+ self.app.quit()
+
+ def testSingleShotWithObjectAndMember(self):
+ callback = self.CallbackObject(self.app)
+ QTimer.singleShot(100, callback, SLOT("func()"))
+ self.app.exec()
+ self.assertTrue(callback.called)
+
+ def testSingleShotWithObjectAndMemberZero(self):
+ callback = self.CallbackObject(self.app)
+ QTimer.singleShot(0, callback, SLOT("func()"))
+ self.app.exec()
+ self.assertTrue(callback.called)
+
+ def testSingleShotWithCallableInObject(self):
+ callback = self.CallbackObject(self.app)
+ QTimer.singleShot(100, callback.func)
+ self.app.exec()
+ self.assertTrue(callback.called)
+
+ def testSingleShotWithCallableInObjectZero(self):
+ callback = self.CallbackObject(self.app)
+ QTimer.singleShot(0, callback.func)
+ self.app.exec()
+ self.assertTrue(callback.called)
+
class SigEmitter(QObject):
sig1 = Signal()
-class TestSingleShotSignal(UsesQCoreApplication):
+class TestSingleShotSignal(UsesQApplication):
'''Test case for QTimer.singleShot connecting to signals'''
def setUp(self):
- UsesQCoreApplication.setUp(self)
+ UsesQApplication.setUp(self)
self.watchdog = WatchDog(self)
self.called = False
def tearDown(self):
del self.watchdog
del self.called
- UsesQCoreApplication.tearDown(self)
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
+ UsesQApplication.tearDown(self)
def callback(self):
self.called = True
@@ -111,7 +183,13 @@ class TestSingleShotSignal(UsesQCoreApplication):
self.app.exec()
self.assertTrue(self.called)
+ def testSingleShotSignalZero(self):
+ emitter = SigEmitter()
+ emitter.sig1.connect(self.callback)
+ QTimer.singleShot(0, emitter.sig1)
+ self.app.exec()
+ self.assertTrue(self.called)
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/pyside6/tests/QtCore/qtimer_timeout_test.py b/sources/pyside6/tests/QtCore/qtimer_timeout_test.py
index 7dbd30bd7..70f151989 100644
--- a/sources/pyside6/tests/QtCore/qtimer_timeout_test.py
+++ b/sources/pyside6/tests/QtCore/qtimer_timeout_test.py
@@ -1,33 +1,9 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test case for timeout() signals from QTimer object.'''
+import gc
import os
import sys
import unittest
@@ -38,7 +14,7 @@ from init_paths import init_test_paths
init_test_paths(False)
from PySide6.QtCore import QObject, QTimer, SIGNAL
-from helper.usesqcoreapplication import UsesQCoreApplication
+from helper.usesqapplication import UsesQApplication
class WatchDog(QObject):
@@ -55,12 +31,12 @@ class WatchDog(QObject):
self.watched.exit_app_cb()
-class TestTimeoutSignal(UsesQCoreApplication):
+class TestTimeoutSignal(UsesQApplication):
'''Test case to check if the signals are really being caught'''
def setUp(self):
# Acquire resources
- UsesQCoreApplication.setUp(self)
+ super().setUp()
self.watchdog = WatchDog(self)
self.timer = QTimer()
self.called = False
@@ -70,7 +46,9 @@ class TestTimeoutSignal(UsesQCoreApplication):
del self.watchdog
del self.timer
del self.called
- UsesQCoreApplication.tearDown(self)
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
+ super().tearDown()
def callback(self, *args):
# Default callback
diff --git a/sources/pyside6/tests/QtCore/qtimezone_test.py b/sources/pyside6/tests/QtCore/qtimezone_test.py
index da96f90e7..ad953f1cc 100644
--- a/sources/pyside6/tests/QtCore/qtimezone_test.py
+++ b/sources/pyside6/tests/QtCore/qtimezone_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtCore/qtnamespace_test.py b/sources/pyside6/tests/QtCore/qtnamespace_test.py
index 2f76ffcad..c08c727ec 100644
--- a/sources/pyside6/tests/QtCore/qtnamespace_test.py
+++ b/sources/pyside6/tests/QtCore/qtnamespace_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test suite for QtCore.Qt namespace'''
diff --git a/sources/pyside6/tests/QtCore/qurl_test.py b/sources/pyside6/tests/QtCore/qurl_test.py
index 8e5d5caea..df16c74e0 100644
--- a/sources/pyside6/tests/QtCore/qurl_test.py
+++ b/sources/pyside6/tests/QtCore/qurl_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test suite for QtCore.QUrl'''
diff --git a/sources/pyside6/tests/QtCore/qurlquery_test.py b/sources/pyside6/tests/QtCore/qurlquery_test.py
index 224f253ff..36eb29475 100644
--- a/sources/pyside6/tests/QtCore/qurlquery_test.py
+++ b/sources/pyside6/tests/QtCore/qurlquery_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Unit tests for QUrlQuery'''
diff --git a/sources/pyside6/tests/QtCore/quuid_test.py b/sources/pyside6/tests/QtCore/quuid_test.py
index 1729eb146..45c6fc89d 100644
--- a/sources/pyside6/tests/QtCore/quuid_test.py
+++ b/sources/pyside6/tests/QtCore/quuid_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Unit tests for QUuid'''
diff --git a/sources/pyside6/tests/QtCore/qversionnumber_test.py b/sources/pyside6/tests/QtCore/qversionnumber_test.py
index eb02573a3..23f6ba639 100644
--- a/sources/pyside6/tests/QtCore/qversionnumber_test.py
+++ b/sources/pyside6/tests/QtCore/qversionnumber_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Unit tests for QVersionNumber'''
diff --git a/sources/pyside6/tests/QtCore/repr_test.py b/sources/pyside6/tests/QtCore/repr_test.py
index 8fdb65ef8..87cceaa82 100644
--- a/sources/pyside6/tests/QtCore/repr_test.py
+++ b/sources/pyside6/tests/QtCore/repr_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtCore/resources_mc.py b/sources/pyside6/tests/QtCore/resources_mc.py
index acbc561bb..05766a22a 100644
--- a/sources/pyside6/tests/QtCore/resources_mc.py
+++ b/sources/pyside6/tests/QtCore/resources_mc.py
@@ -1,32 +1,5 @@
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
# Resource object code
#
diff --git a/sources/pyside6/tests/QtCore/setprop_on_ctor_test.py b/sources/pyside6/tests/QtCore/setprop_on_ctor_test.py
index 0cd56ac93..de8f67bb3 100644
--- a/sources/pyside6/tests/QtCore/setprop_on_ctor_test.py
+++ b/sources/pyside6/tests/QtCore/setprop_on_ctor_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtCore/signal_sender.py b/sources/pyside6/tests/QtCore/signal_sender.py
new file mode 100644
index 000000000..2552591e5
--- /dev/null
+++ b/sources/pyside6/tests/QtCore/signal_sender.py
@@ -0,0 +1,91 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from helper.usesqapplication import UsesQApplication
+
+from PySide6.QtCore import (QCoreApplication, QObject, QStringListModel,
+ QTimer, Signal, Slot, Qt)
+
+
+class Sender(QObject):
+ testSignal = Signal()
+
+ def emitSignal(self):
+ self.testSignal.emit()
+
+
+class Receiver(QObject):
+
+ def __init__(self, parent=None):
+ super().__init__()
+ self._sender = None
+ self._slot_count = 0
+
+ @Slot()
+ def testSlot(self):
+ self._sender = self.sender()
+ self._slot_count += 1
+
+
+class DerivedReceiver(Receiver):
+ pass
+
+
+class TestSignalSender(UsesQApplication):
+ """Test PYSIDE-2144/1295, check that QObject::sender() works also if it is
+ routed via GlobalReceiverV2 in case of a non-C++ slot (Python callback,
+ as for derived classes)."""
+ def testSignalSender(self):
+ sender = Sender()
+ receiver = Receiver()
+ sender.testSignal.connect(receiver.testSlot)
+ derived_receiver = DerivedReceiver()
+ sender.testSignal.connect(derived_receiver.testSlot)
+ sender.emitSignal()
+
+ QTimer.singleShot(100, self.app.quit)
+ while derived_receiver._slot_count == 0:
+ QCoreApplication.processEvents()
+
+ self.assertEqual(receiver._sender, sender)
+ self.assertEqual(derived_receiver._sender, sender)
+
+
+class TestConstructorConnection(UsesQApplication):
+ """PYSIDE-2329: Check constructor connections for signals from the
+ base as well as signals with arguments."""
+ def testConstructorConnection(self):
+
+ was_destroyed = False
+ was_changed = False
+
+ def destroyed_handler():
+ nonlocal was_destroyed
+ was_destroyed = True
+
+ def changed_handler():
+ nonlocal was_changed
+ was_changed = True
+
+ data_list = ["blub"]
+ model = QStringListModel(data_list,
+ destroyed=destroyed_handler,
+ dataChanged=changed_handler)
+ model.setData(model.index(0, 0), "bla", Qt.EditRole)
+ del model
+
+ self.assertTrue(was_changed)
+ self.assertTrue(was_destroyed)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/QtCore/snake_prop_feature_test.py b/sources/pyside6/tests/QtCore/snake_prop_feature_test.py
index 7925c4c0c..82087ab9a 100644
--- a/sources/pyside6/tests/QtCore/snake_prop_feature_test.py
+++ b/sources/pyside6/tests/QtCore/snake_prop_feature_test.py
@@ -1,41 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import os
import sys
@@ -46,8 +10,12 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtWidgets import QApplication, QWidget
-from PySide6.support import __feature__
+from PySide6.QtCore import Property, QSize
+from PySide6.QtWidgets import QApplication, QMainWindow, QWidget
+
+is_pypy = hasattr(sys, "pypy_version_info")
+if not is_pypy:
+ from PySide6.support import feature
"""
snake_prop_feature_test.py
@@ -64,13 +32,14 @@ class Window(QWidget):
super().__init__()
+@unittest.skipIf(is_pypy, "__feature__ cannot yet be used with PyPy")
class FeatureTest(unittest.TestCase):
def setUp(self):
qApp or QApplication()
- __feature__.set_selection(0)
+ feature.reset()
def tearDown(self):
- __feature__.set_selection(0)
+ feature.reset()
qApp.shutdown()
def testRenamedFunctions(self):
@@ -91,7 +60,7 @@ class FeatureTest(unittest.TestCase):
window.modal
from __feature__ import snake_case, true_property
- #PYSIDE-1548: Make sure that another import does not clear the features.
+ # PYSIDE-1548: Make sure that another import does not clear the features.
import sys
self.assertTrue(isinstance(QWidget.modal, property))
@@ -100,7 +69,7 @@ class FeatureTest(unittest.TestCase):
window.isModal
# switching back
- __feature__.set_selection(0)
+ feature.reset()
self.assertTrue(callable(window.isModal))
with self.assertRaises(AttributeError):
@@ -122,6 +91,53 @@ class FeatureTest(unittest.TestCase):
self.assertEqual(qApp.quit_on_last_window_closed,
QApplication.quit_on_last_window_closed)
+ def testUserClassNotAffected(self):
+ FunctionType = type(lambda: 42)
+ # Note: the types module does not have MethodDescriptorType in low versions.
+ MethodDescriptorType = type(str.split)
+
+ class UserClass(QWidget):
+
+ def someFunc1(self):
+ pass
+
+ @staticmethod
+ def someFunc2(a, b):
+ pass
+
+ inspect = UserClass.__dict__
+ self.assertTrue(isinstance(inspect["someFunc1"], FunctionType))
+ self.assertTrue(isinstance(inspect["someFunc2"], staticmethod))
+ self.assertTrue(isinstance(UserClass.someFunc2, FunctionType))
+ self.assertTrue(isinstance(UserClass.addAction, MethodDescriptorType))
+
+ from __feature__ import snake_case
+
+ inspect = UserClass.__dict__
+ self.assertTrue(isinstance(inspect["someFunc1"], FunctionType))
+ self.assertTrue(isinstance(inspect["someFunc2"], staticmethod))
+ self.assertTrue(isinstance(UserClass.someFunc2, FunctionType))
+ self.assertTrue(isinstance(UserClass.add_action, MethodDescriptorType))
+
+ def testTrueProperyCanOverride(self):
+ from __feature__ import true_property
+
+ class CustomWidget(QWidget):
+ global prop_result
+ prop_result = None
+
+ @Property(QSize)
+ def minimumSizeHint(self):
+ global prop_result
+ print("called")
+ prop_result = super().minimumSizeHint
+ return prop_result
+
+ window = QMainWindow()
+ window.setCentralWidget(CustomWidget(window))
+ window.show()
+ self.assertTrue(isinstance(prop_result, QSize))
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/pyside6/tests/QtCore/staticMetaObject_test.py b/sources/pyside6/tests/QtCore/staticMetaObject_test.py
index 77dbcd9fb..223c334d3 100644
--- a/sources/pyside6/tests/QtCore/staticMetaObject_test.py
+++ b/sources/pyside6/tests/QtCore/staticMetaObject_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtCore/static_method_test.py b/sources/pyside6/tests/QtCore/static_method_test.py
index 5119f42a9..bbf96e44a 100644
--- a/sources/pyside6/tests/QtCore/static_method_test.py
+++ b/sources/pyside6/tests/QtCore/static_method_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for overloads involving static and non-static versions of a method.'''
diff --git a/sources/pyside6/tests/QtCore/thread_signals_test.py b/sources/pyside6/tests/QtCore/thread_signals_test.py
index ffbde53b4..a453d1ac1 100644
--- a/sources/pyside6/tests/QtCore/thread_signals_test.py
+++ b/sources/pyside6/tests/QtCore/thread_signals_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
''' Test case for QObject.signalsBlocked() and blockSignal()'''
@@ -37,17 +12,19 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtCore import QObject, SIGNAL, QFile, QThread, QTimer, Qt
-from helper.usesqcoreapplication import UsesQCoreApplication
+from PySide6.QtCore import Signal, QThread
+from helper.usesqapplication import UsesQApplication
class MyThread(QThread):
+ test = Signal(str)
+
def run(self):
- self.emit(SIGNAL("test(const QString&)"), "INdT - PySide")
+ self.test.emit("INdT - PySide")
-class TestThreadSignal(UsesQCoreApplication):
+class TestThreadSignal(UsesQApplication):
__called__ = True
@@ -58,7 +35,7 @@ class TestThreadSignal(UsesQCoreApplication):
def testThread(self):
t = MyThread()
- QObject.connect(t, SIGNAL("test(const QString&)"), self._callback)
+ t.test.connect(self._callback)
t.start()
self.app.exec()
diff --git a/sources/pyside6/tests/QtCore/tr_noop_test.py b/sources/pyside6/tests/QtCore/tr_noop_test.py
index b665d4728..a3b2e257f 100644
--- a/sources/pyside6/tests/QtCore/tr_noop_test.py
+++ b/sources/pyside6/tests/QtCore/tr_noop_test.py
@@ -1,31 +1,7 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+import gc
import os
import sys
import unittest
@@ -46,6 +22,8 @@ class QtTrNoopTest(unittest.TestCase):
def tearDown(self):
del self.txt
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
@unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testQtTrNoop(self):
diff --git a/sources/pyside6/tests/QtCore/translation_test.py b/sources/pyside6/tests/QtCore/translation_test.py
index beb707914..da09e47b6 100644
--- a/sources/pyside6/tests/QtCore/translation_test.py
+++ b/sources/pyside6/tests/QtCore/translation_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/python
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Unit tests to test QTranslator and translation in general.'''
@@ -42,10 +15,10 @@ init_test_paths(False)
from PySide6.QtCore import QObject, QTranslator, QCoreApplication
-from helper.usesqcoreapplication import UsesQCoreApplication
+from helper.usesqapplication import UsesQApplication
-class TranslationTest(UsesQCoreApplication):
+class TranslationTest(UsesQApplication):
'''Test case for Qt translation facilities.'''
def setUp(self):
diff --git a/sources/pyside6/tests/QtCore/unaryoperator_test.py b/sources/pyside6/tests/QtCore/unaryoperator_test.py
index 614c92ee5..7b38685c8 100644
--- a/sources/pyside6/tests/QtCore/unaryoperator_test.py
+++ b/sources/pyside6/tests/QtCore/unaryoperator_test.py
@@ -1,35 +1,10 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Tests the presence of unary operator __neg__ on the QPoint class'''
+import gc
import os
import sys
import unittest
@@ -58,6 +33,8 @@ class NegUnaryOperatorTest(unittest.TestCase):
del self.y
del self.neg_x
del self.neg_y
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
def testNegUnaryOperator(self):
# Test __neg__ unary operator on QPoint class
diff --git a/sources/pyside6/tests/QtCore/unicode_test.py b/sources/pyside6/tests/QtCore/unicode_test.py
index 18910be29..73ce96c77 100644
--- a/sources/pyside6/tests/QtCore/unicode_test.py
+++ b/sources/pyside6/tests/QtCore/unicode_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/python
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Unit tests for QString conversion to/from Python Unicode'''
diff --git a/sources/pyside6/tests/QtCore/versioninfo_test.py b/sources/pyside6/tests/QtCore/versioninfo_test.py
index 85d774dde..63414378a 100644
--- a/sources/pyside6/tests/QtCore/versioninfo_test.py
+++ b/sources/pyside6/tests/QtCore/versioninfo_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtDBus/CMakeLists.txt b/sources/pyside6/tests/QtDBus/CMakeLists.txt
index bb0e17e04..bf2d2105a 100644
--- a/sources/pyside6/tests/QtDBus/CMakeLists.txt
+++ b/sources/pyside6/tests/QtDBus/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
if(ENABLE_UNIX)
PYSIDE_TEST(test_dbus.py)
endif()
diff --git a/sources/pyside6/tests/QtDBus/QtDBus.pyproject b/sources/pyside6/tests/QtDBus/QtDBus.pyproject
new file mode 100644
index 000000000..76c3963e4
--- /dev/null
+++ b/sources/pyside6/tests/QtDBus/QtDBus.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["test_dbus.py"]
+}
diff --git a/sources/pyside6/tests/QtDBus/test_dbus.py b/sources/pyside6/tests/QtDBus/test_dbus.py
index 381bffacf..a37db9421 100644
--- a/sources/pyside6/tests/QtDBus/test_dbus.py
+++ b/sources/pyside6/tests/QtDBus/test_dbus.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QDBus'''
@@ -37,7 +12,7 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from helper.usesqcoreapplication import UsesQCoreApplication
+from helper.usesqapplication import UsesQApplication
import sys
from PySide6.QtCore import QCoreApplication
@@ -57,7 +32,7 @@ def service_names():
return reply.value()
-class TestDBus(UsesQCoreApplication):
+class TestDBus(UsesQApplication):
'''Simple Test case for QDBus'''
def test_service_names(self):
diff --git a/sources/pyside6/tests/QtDataVisualization/QtDataVisualization.pyproject b/sources/pyside6/tests/QtDataVisualization/QtDataVisualization.pyproject
new file mode 100644
index 000000000..23a8a141c
--- /dev/null
+++ b/sources/pyside6/tests/QtDataVisualization/QtDataVisualization.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["datavisualization_test.py"]
+}
diff --git a/sources/pyside6/tests/QtDataVisualization/datavisualization_test.py b/sources/pyside6/tests/QtDataVisualization/datavisualization_test.py
index 4e5528cd4..98ada6d47 100644
--- a/sources/pyside6/tests/QtDataVisualization/datavisualization_test.py
+++ b/sources/pyside6/tests/QtDataVisualization/datavisualization_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QtDataVisualization'''
@@ -39,11 +13,12 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from helper.usesqguiapplication import UsesQGuiApplication
+from helper.usesqapplication import UsesQApplication
from PySide6.QtCore import QTimer
from PySide6.QtDataVisualization import (Q3DBars, QBar3DSeries, QBarDataItem,
QBarDataProxy, QCategory3DAxis,
- QValue3DAxis, qDefaultSurfaceFormat)
+ QValue3DAxis, QValue3DAxisFormatter,
+ qDefaultSurfaceFormat)
def dataToBarDataRow(data):
@@ -60,7 +35,7 @@ def dataToBarDataArray(data):
return result
-class QtDataVisualizationTestCase(UsesQGuiApplication):
+class QtDataVisualizationTestCase(UsesQApplication):
'''Tests related to QtDataVisualization'''
def testBars(self):
@@ -107,8 +82,22 @@ class QtDataVisualizationTestCase(UsesQGuiApplication):
self.assertTrue(data_proxy.rowCount(), 4)
def testDefaultSurfaceFormat(self):
- format = qDefaultSurfaceFormat(True)
- print(format)
+ format = qDefaultSurfaceFormat(True)
+ print(format)
+
+ def testQValue3DAxisFormatter(self):
+ """PYSIDE-2025: Test the added setters of QValue3DAxisFormatter."""
+ formatter = QValue3DAxisFormatter()
+ float_values = [float(10)]
+ formatter.setGridPositions(float_values)
+ self.assertEqual(formatter.gridPositions(), float_values)
+
+ formatter.setLabelPositions(float_values)
+ self.assertEqual(formatter.labelPositions(), float_values)
+
+ label_strings = ["bla"]
+ formatter.setLabelStrings(label_strings)
+ self.assertEqual(formatter.labelStrings(), label_strings)
if __name__ == '__main__':
diff --git a/sources/pyside6/tests/QtWinExtras/CMakeLists.txt b/sources/pyside6/tests/QtGraphs/CMakeLists.txt
index 2f7cb08b9..2f7cb08b9 100644
--- a/sources/pyside6/tests/QtWinExtras/CMakeLists.txt
+++ b/sources/pyside6/tests/QtGraphs/CMakeLists.txt
diff --git a/sources/pyside6/tests/QtGui/CMakeLists.txt b/sources/pyside6/tests/QtGui/CMakeLists.txt
index 179e88fd6..71a5c7eb9 100644
--- a/sources/pyside6/tests/QtGui/CMakeLists.txt
+++ b/sources/pyside6/tests/QtGui/CMakeLists.txt
@@ -1,8 +1,10 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
#Keep this in alphabetical sort
-PYSIDE_TEST(bug_300_test.py)
PYSIDE_TEST(bug_367.py)
-PYSIDE_TEST(bug_480.py)
+PYSIDE_TEST(bug_493.py)
PYSIDE_TEST(bug_606.py)
PYSIDE_TEST(bug_617.py)
PYSIDE_TEST(bug_652.py)
@@ -10,25 +12,34 @@ PYSIDE_TEST(bug_660.py)
PYSIDE_TEST(bug_716.py)
PYSIDE_TEST(bug_740.py)
PYSIDE_TEST(bug_743.py)
+PYSIDE_TEST(bug_785.py)
PYSIDE_TEST(bug_991.py)
PYSIDE_TEST(bug_1091.py)
-PYSIDE_TEST(bug_PYSIDE-41.py)
PYSIDE_TEST(bug_PYSIDE-344.py)
PYSIDE_TEST(deepcopy_test.py)
+PYSIDE_TEST(event_filter_test.py)
PYSIDE_TEST(float_to_int_implicit_conversion_test.py)
PYSIDE_TEST(pyside_reload_test.py)
+PYSIDE_TEST(qbrush_test.py)
PYSIDE_TEST(qcolor_test.py)
PYSIDE_TEST(qcolor_reduce_test.py)
PYSIDE_TEST(qcursor_test.py)
PYSIDE_TEST(qdatastream_gui_operators_test.py)
PYSIDE_TEST(qdesktopservices_test.py)
+PYSIDE_TEST(qfont_test.py)
PYSIDE_TEST(qfontmetrics_test.py)
PYSIDE_TEST(qguiapplication_test.py)
PYSIDE_TEST(qicon_test.py)
+PYSIDE_TEST(qimage_test.py)
+if(WIN32)
+ PYSIDE_TEST(qimage_win_test.py)
+endif()
PYSIDE_TEST(qitemselection_test.py)
PYSIDE_TEST(qpainter_test.py)
+PYSIDE_TEST(qpen_test.py)
PYSIDE_TEST(qpdfwriter_test.py)
PYSIDE_TEST(qpixelformat_test.py)
+PYSIDE_TEST(qpixmap_constructor.py)
PYSIDE_TEST(qpixmap_test.py)
PYSIDE_TEST(qpixmapcache_test.py)
PYSIDE_TEST(qpolygonf_test.py)
@@ -36,6 +47,9 @@ PYSIDE_TEST(qkeysequence_test.py)
PYSIDE_TEST(qradialgradient_test.py)
PYSIDE_TEST(qrasterwindow_test.py)
PYSIDE_TEST(qregion_test.py)
+PYSIDE_TEST(qshortcut_test.py)
+PYSIDE_TEST(qstandarditemmodel_test.py)
+PYSIDE_TEST(qstring_qkeysequence_test.py)
PYSIDE_TEST(qstylehints_test.py)
PYSIDE_TEST(qtextdocument_functions.py)
PYSIDE_TEST(qtextdocument_undoredo_test.py)
diff --git a/sources/pyside6/tests/QtGui/QtGui.pyproject b/sources/pyside6/tests/QtGui/QtGui.pyproject
new file mode 100644
index 000000000..75b5e084f
--- /dev/null
+++ b/sources/pyside6/tests/QtGui/QtGui.pyproject
@@ -0,0 +1,56 @@
+{
+ "files": ["bug_1091.py",
+ "bug_367.py",
+ "bug_493.py",
+ "bug_606.py",
+ "bug_617.py",
+ "bug_652.py",
+ "bug_660.py",
+ "bug_716.py",
+ "bug_740.py",
+ "bug_743.py",
+ "bug_785.py",
+ "bug_991.py",
+ "bug_PYSIDE-344.py",
+ "deepcopy_test.py",
+ "event_filter_test.py",
+ "float_to_int_implicit_conversion_test.py",
+ "pyside_reload_test.py",
+ "qbrush_test.py",
+ "qcolor_reduce_test.py",
+ "qcolor_test.py",
+ "qcursor_test.py",
+ "qdatastream_gui_operators_test.py",
+ "qdesktopservices_test.py",
+ "qfont_test.py",
+ "qfontmetrics_test.py",
+ "qguiapplication_test.py",
+ "qicon_test.py",
+ "qimage_test.py",
+ "qimage_win_test.py",
+ "qitemselection_test.py",
+ "qkeysequence_test.py",
+ "qpainter_test.py",
+ "qpdfwriter_test.py",
+ "qpen_test.py",
+ "qpixelformat_test.py",
+ "qpixmap_constructor.py",
+ "qpixmap_test.py",
+ "qpixmapcache_test.py",
+ "qpolygonf_test.py",
+ "qradialgradient_test.py",
+ "qrasterwindow_test.py",
+ "qregion_test.py",
+ "qshortcut_test.py",
+ "qstandarditemmodel_test.py",
+ "qstring_qkeysequence_test.py",
+ "qstylehints_test.py",
+ "qtextdocument_functions.py",
+ "qtextdocument_undoredo_test.py",
+ "qtextdocumentwriter_test.py",
+ "qtextline_test.py",
+ "qtransform_test.py",
+ "repr_test.py",
+ "timed_app_and_patching_test.py",
+ "xpm_data.py"]
+}
diff --git a/sources/pyside6/tests/QtGui/bug_1091.py b/sources/pyside6/tests/QtGui/bug_1091.py
index 965f14811..9b9f35807 100644
--- a/sources/pyside6/tests/QtGui/bug_1091.py
+++ b/sources/pyside6/tests/QtGui/bug_1091.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
''' unit test for BUG #1091 '''
diff --git a/sources/pyside6/tests/QtGui/bug_300_test.py b/sources/pyside6/tests/QtGui/bug_300_test.py
deleted file mode 100644
index 9a708f903..000000000
--- a/sources/pyside6/tests/QtGui/bug_300_test.py
+++ /dev/null
@@ -1,54 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-import os
-import sys
-import unittest
-
-from pathlib import Path
-sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
-from init_paths import init_test_paths
-init_test_paths(False)
-
-from PySide6.QtCore import QModelIndex, QStringListModel
-
-
-class TestQAbstractItemModelSignals(unittest.TestCase):
- def sigCallback(self, index, r, c):
- self._called = True
-
- def testSignals(self):
- self._called = False
- m = QStringListModel()
- m.rowsAboutToBeInserted[QModelIndex, int, int].connect(self.sigCallback)
- m.insertRows(0, 3)
- self.assertTrue(self._called)
-
-
-if __name__ == '__main__':
- unittest.main()
diff --git a/sources/pyside6/tests/QtGui/bug_367.py b/sources/pyside6/tests/QtGui/bug_367.py
index 40c0d6936..771fa5a4b 100644
--- a/sources/pyside6/tests/QtGui/bug_367.py
+++ b/sources/pyside6/tests/QtGui/bug_367.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
''' Test bug 367: http://bugs.openbossa.org/show_bug.cgi?id=367'''
diff --git a/sources/pyside6/tests/QtGui/bug_480.py b/sources/pyside6/tests/QtGui/bug_480.py
deleted file mode 100644
index cd3fd1d6b..000000000
--- a/sources/pyside6/tests/QtGui/bug_480.py
+++ /dev/null
@@ -1,64 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-import os
-import sys
-import unittest
-
-from pathlib import Path
-sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
-from init_paths import init_test_paths
-init_test_paths(False)
-
-from PySide6.QtWidgets import (QApplication, QGridLayout, QLabel, QVBoxLayout,
- QWidget)
-
-
-class BuggyWidget(QWidget):
- def setup(self):
- self.verticalLayout = QVBoxLayout(self)
- self.gridLayout = QGridLayout()
- self.lbl = QLabel(self)
- self.gridLayout.addWidget(self.lbl, 0, 1, 1, 1)
-
- # this cause a segfault during the ownership transfer
- self.verticalLayout.addLayout(self.gridLayout)
-
-
-class LayoutTransferOwnerShip(unittest.TestCase):
- def testBug(self):
- app = QApplication([])
- w = BuggyWidget()
- w.setup()
- w.show()
- self.assertTrue(True)
-
-
-if __name__ == '__main__':
- unittest.main()
-
diff --git a/sources/pyside6/tests/QtGui/bug_493.py b/sources/pyside6/tests/QtGui/bug_493.py
new file mode 100644
index 000000000..ba8b67bbb
--- /dev/null
+++ b/sources/pyside6/tests/QtGui/bug_493.py
@@ -0,0 +1,32 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from PySide6.QtCore import Qt, QEvent
+from PySide6.QtGui import QGuiApplication, QKeyEvent, QKeySequence
+
+
+class TestBug493(unittest.TestCase):
+
+ def testIt(self):
+ # We need a qapp otherwise Qt will crash when trying to detect the
+ # current platform
+ app = QGuiApplication([])
+ ev1 = QKeyEvent(QEvent.KeyRelease, Qt.Key_Delete, Qt.NoModifier)
+ ev2 = QKeyEvent(QEvent.KeyRelease, Qt.Key_Copy, Qt.NoModifier)
+ ks = QKeySequence.Delete
+
+ self.assertTrue(ev1.matches(ks))
+ self.assertFalse(ev2.matches(ks))
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/QtGui/bug_606.py b/sources/pyside6/tests/QtGui/bug_606.py
index e82cdc593..80b79f640 100644
--- a/sources/pyside6/tests/QtGui/bug_606.py
+++ b/sources/pyside6/tests/QtGui/bug_606.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -35,8 +10,7 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-import PySide6
-from PySide6.QtGui import QVector2D, QVector3D, QVector4D
+from PySide6.QtGui import QVector2D, QVector3D, QVector4D, qFuzzyCompare
from PySide6.QtGui import QColor
@@ -44,14 +18,22 @@ class testCases(unittest.TestCase):
def testQVector2DToTuple(self):
vec = QVector2D(1, 2)
self.assertEqual((1, 2), vec.toTuple())
+ self.assertTrue(qFuzzyCompare(vec, vec))
+ vec2 = QVector2D(1, 3)
+ self.assertFalse(qFuzzyCompare(vec, vec2))
def testQVector3DToTuple(self):
vec = QVector3D(1, 2, 3)
self.assertEqual((1, 2, 3), vec.toTuple())
+ vec2 = QVector3D(1, 3, 4)
+ self.assertFalse(qFuzzyCompare(vec, vec2))
def testQVector4DToTuple(self):
vec = QVector4D(1, 2, 3, 4)
self.assertEqual((1, 2, 3, 4), vec.toTuple())
+ self.assertTrue(qFuzzyCompare(vec, vec))
+ vec2 = QVector4D(1, 3, 4, 5)
+ self.assertFalse(qFuzzyCompare(vec, vec2))
def testQColorToTuple(self):
c = QColor(0, 0, 255)
diff --git a/sources/pyside6/tests/QtGui/bug_617.py b/sources/pyside6/tests/QtGui/bug_617.py
index d917745be..d90d1e754 100644
--- a/sources/pyside6/tests/QtGui/bug_617.py
+++ b/sources/pyside6/tests/QtGui/bug_617.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -52,7 +27,7 @@ class Bug617(unittest.TestCase):
def testOutOfBounds(self):
e = MyEvent()
- self.assertEqual(repr(e.type()), 'PySide6.QtCore.QEvent.Type(999)')
+ self.assertEqual(repr(e.type()), "<Type.999: 999>")
if __name__ == "__main__":
diff --git a/sources/pyside6/tests/QtGui/bug_652.py b/sources/pyside6/tests/QtGui/bug_652.py
index 5feecd64a..17d6c3b77 100644
--- a/sources/pyside6/tests/QtGui/bug_652.py
+++ b/sources/pyside6/tests/QtGui/bug_652.py
@@ -1,31 +1,7 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+import gc
import os
import sys
import unittest
@@ -59,6 +35,8 @@ class TestBug652(unittest.TestCase):
self.assertEqual(tc.block().userData().getMyNiceData(), heyHo)
del tc
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
tc = QTextCursor(td)
blk = tc.block()
self.assertEqual(type(blk.userData()), MyData)
diff --git a/sources/pyside6/tests/QtGui/bug_660.py b/sources/pyside6/tests/QtGui/bug_660.py
index 9c3cdcfe6..4ab8e9f19 100644
--- a/sources/pyside6/tests/QtGui/bug_660.py
+++ b/sources/pyside6/tests/QtGui/bug_660.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtGui/bug_716.py b/sources/pyside6/tests/QtGui/bug_716.py
index cb30ff42e..90d78ea89 100644
--- a/sources/pyside6/tests/QtGui/bug_716.py
+++ b/sources/pyside6/tests/QtGui/bug_716.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtGui/bug_740.py b/sources/pyside6/tests/QtGui/bug_740.py
index 41824fb70..ece314cc8 100644
--- a/sources/pyside6/tests/QtGui/bug_740.py
+++ b/sources/pyside6/tests/QtGui/bug_740.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtGui/bug_743.py b/sources/pyside6/tests/QtGui/bug_743.py
index 189eaf2c8..a870e4bf1 100644
--- a/sources/pyside6/tests/QtGui/bug_743.py
+++ b/sources/pyside6/tests/QtGui/bug_743.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtGui/bug_785.py b/sources/pyside6/tests/QtGui/bug_785.py
new file mode 100644
index 000000000..04425f063
--- /dev/null
+++ b/sources/pyside6/tests/QtGui/bug_785.py
@@ -0,0 +1,41 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from PySide6.QtCore import QItemSelection
+from PySide6.QtGui import QStandardItemModel, QStandardItem
+
+
+class Bug324(unittest.TestCase):
+ def testOperators(self):
+ model = QStandardItemModel()
+ for i in range(100):
+ model.appendRow(QStandardItem(f"Item: {i}"))
+
+ first = model.index(0, 0)
+ second = model.index(10, 0)
+ third = model.index(20, 0)
+ fourth = model.index(30, 0)
+
+ sel = QItemSelection(first, second)
+ sel2 = QItemSelection()
+ sel2.select(third, fourth)
+
+ sel3 = sel + sel2 # check operator +
+ self.assertEqual(len(sel3), 2)
+ sel4 = sel
+ sel4 += sel2 # check operator +=
+ self.assertEqual(len(sel4), 2)
+ self.assertEqual(sel4, sel3)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/sources/pyside6/tests/QtGui/bug_991.py b/sources/pyside6/tests/QtGui/bug_991.py
index 3bdf0b02f..e74adc198 100644
--- a/sources/pyside6/tests/QtGui/bug_991.py
+++ b/sources/pyside6/tests/QtGui/bug_991.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtGui/bug_PYSIDE-344.py b/sources/pyside6/tests/QtGui/bug_PYSIDE-344.py
index 3dfada26c..6519eef61 100644
--- a/sources/pyside6/tests/QtGui/bug_PYSIDE-344.py
+++ b/sources/pyside6/tests/QtGui/bug_PYSIDE-344.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for PYSIDE-344, imul/idiv are used instead of mul/div, modifying the argument passed in'''
diff --git a/sources/pyside6/tests/QtGui/bug_PYSIDE-41.py b/sources/pyside6/tests/QtGui/bug_PYSIDE-41.py
deleted file mode 100644
index d7aea57bf..000000000
--- a/sources/pyside6/tests/QtGui/bug_PYSIDE-41.py
+++ /dev/null
@@ -1,78 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-# TODO:
-# move this to QtCore -- QStringListModel is part of QtGui and there is no
-# simple model class appropriate for this test in QtCore.
-
-import os
-import sys
-import unittest
-
-from pathlib import Path
-sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
-from init_paths import init_test_paths
-init_test_paths(False)
-
-from PySide6.QtCore import QPersistentModelIndex, QStringListModel
-
-
-class TestBugPYSIDE41(unittest.TestCase):
-
- def testIt(self):
-
- # list of single-character strings
- strings = list('abcdefghijklmnopqrstuvwxyz')
-
- model = QStringListModel(strings)
-
- # Test hashing of both QModelIndex and QPersistentModelIndex
- indexFunctions = []
- indexFunctions.append(model.index)
- indexFunctions.append(lambda i: QPersistentModelIndex(model.index(i)))
-
- for indexFunction in indexFunctions:
-
- # If two objects compare equal, their hashes MUST also be equal. (The
- # reverse is not a requirement.)
- for i, _ in enumerate(strings):
- index1 = indexFunction(i)
- index2 = indexFunction(i)
- self.assertEqual(index1, index2)
- self.assertEqual(hash(index1), hash(index2))
-
- # Adding the full set of indexes to itself is a no-op.
- allIndexes1 = set(indexFunction(i) for i, _ in enumerate(strings))
- allIndexes2 = set(indexFunction(i) for i, _ in enumerate(strings))
- allIndexesCombined = allIndexes1 & allIndexes2
- self.assertEqual(allIndexes1, allIndexesCombined)
- self.assertEqual(allIndexes2, allIndexesCombined)
-
-
-if __name__ == '__main__':
- unittest.main()
diff --git a/sources/pyside6/tests/QtGui/deepcopy_test.py b/sources/pyside6/tests/QtGui/deepcopy_test.py
index ca7692c39..9a13eb485 100644
--- a/sources/pyside6/tests/QtGui/deepcopy_test.py
+++ b/sources/pyside6/tests/QtGui/deepcopy_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
from copy import deepcopy
import os
diff --git a/sources/pyside6/tests/QtGui/event_filter_test.py b/sources/pyside6/tests/QtGui/event_filter_test.py
new file mode 100644
index 000000000..01d8fbc02
--- /dev/null
+++ b/sources/pyside6/tests/QtGui/event_filter_test.py
@@ -0,0 +1,51 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from helper.usesqapplication import UsesQApplication
+from PySide6.QtCore import QObject, QEvent
+from PySide6.QtGui import QWindow
+
+
+class MyFilter(QObject):
+ def eventFilter(self, obj, event):
+ if event.type() == QEvent.KeyPress:
+ pass
+ return QObject.eventFilter(self, obj, event)
+
+
+class EventFilter(UsesQApplication):
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
+ def testRefCount(self):
+ o = QObject()
+ filt = MyFilter()
+ o.installEventFilter(filt)
+ self.assertEqual(sys.getrefcount(o), 2)
+
+ o.installEventFilter(filt)
+ self.assertEqual(sys.getrefcount(o), 2)
+
+ o.removeEventFilter(filt)
+ self.assertEqual(sys.getrefcount(o), 2)
+
+ def testObjectDestructorOrder(self):
+ w = QWindow()
+ filt = MyFilter()
+ filt.app = self.app
+ w.installEventFilter(filt)
+ w.show()
+ w.close()
+ w = None
+ self.assertTrue(True)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/QtGui/float_to_int_implicit_conversion_test.py b/sources/pyside6/tests/QtGui/float_to_int_implicit_conversion_test.py
index 5383f79d7..ba438f8e0 100644
--- a/sources/pyside6/tests/QtGui/float_to_int_implicit_conversion_test.py
+++ b/sources/pyside6/tests/QtGui/float_to_int_implicit_conversion_test.py
@@ -1,33 +1,9 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QImage'''
+import gc
import os
import sys
import unittest
@@ -55,6 +31,8 @@ class SetPixelFloat(UsesQApplication):
# Release resources
del self.color
del self.image
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
super(SetPixelFloat, self).tearDown()
def testFloat(self):
diff --git a/sources/pyside6/tests/QtGui/pyside_reload_test.py b/sources/pyside6/tests/QtGui/pyside_reload_test.py
index 1c3070e57..1ac65f709 100644
--- a/sources/pyside6/tests/QtGui/pyside_reload_test.py
+++ b/sources/pyside6/tests/QtGui/pyside_reload_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import importlib
import importlib.util
diff --git a/sources/pyside6/tests/QtGui/qbrush_test.py b/sources/pyside6/tests/QtGui/qbrush_test.py
new file mode 100644
index 000000000..800e6f072
--- /dev/null
+++ b/sources/pyside6/tests/QtGui/qbrush_test.py
@@ -0,0 +1,35 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+'''Test cases for QBrush'''
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from PySide6.QtCore import Qt
+from PySide6.QtGui import QColor, QBrush
+
+from helper.usesqapplication import UsesQApplication
+
+
+class Constructor(UsesQApplication):
+ '''Test case for constructor of QBrush'''
+
+ def testQColor(self):
+ # QBrush(QColor) constructor
+ color = QColor('black')
+ obj = QBrush(color)
+ self.assertEqual(obj.color(), color)
+
+ obj = QBrush(Qt.blue)
+ self.assertEqual(obj.color(), Qt.blue)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/QtGui/qcolor_reduce_test.py b/sources/pyside6/tests/QtGui/qcolor_reduce_test.py
index 0df95781c..609951be6 100644
--- a/sources/pyside6/tests/QtGui/qcolor_reduce_test.py
+++ b/sources/pyside6/tests/QtGui/qcolor_reduce_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import pickle
diff --git a/sources/pyside6/tests/QtGui/qcolor_test.py b/sources/pyside6/tests/QtGui/qcolor_test.py
index 85ba2de2d..bbd558f10 100644
--- a/sources/pyside6/tests/QtGui/qcolor_test.py
+++ b/sources/pyside6/tests/QtGui/qcolor_test.py
@@ -1,32 +1,8 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import colorsys
+import gc
import os
import sys
import unittest
@@ -65,7 +41,7 @@ class QColorGetTest(unittest.TestCase):
def testGetCmykF(self): # not supported by colorsys
for x, y in zip(self.color.getCmykF(), (170 / 255.0, 85 / 255.0, 0, 195 / 255.0, 80 / 255.0)):
- self.assertTrue(x - y < 1/10000.0)
+ self.assertTrue(x - y < 1 / 10000.0)
class QColorQRgbConstructor(unittest.TestCase):
@@ -101,6 +77,8 @@ class QColorCopy(unittest.TestCase):
self.assertTrue(original is not copy)
self.assertEqual(original, copy)
del original
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertEqual(copy, QColor(0, 0, 255))
def testEmptyCopy(self):
@@ -111,6 +89,8 @@ class QColorCopy(unittest.TestCase):
self.assertTrue(original is not copy)
self.assertEqual(original, copy)
del original
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertEqual(copy, QColor())
diff --git a/sources/pyside6/tests/QtGui/qcursor_test.py b/sources/pyside6/tests/QtGui/qcursor_test.py
index 181ad29cd..1494fe370 100644
--- a/sources/pyside6/tests/QtGui/qcursor_test.py
+++ b/sources/pyside6/tests/QtGui/qcursor_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test for Bug 630 - Fails to resolve overload for QCursor(QBitmap, QBitmap, int, int)
http://bugs.openbossa.org/show_bug.cgi?id=630
diff --git a/sources/pyside6/tests/QtGui/qdatastream_gui_operators_test.py b/sources/pyside6/tests/QtGui/qdatastream_gui_operators_test.py
index 83d206cce..f2c86abf7 100644
--- a/sources/pyside6/tests/QtGui/qdatastream_gui_operators_test.py
+++ b/sources/pyside6/tests/QtGui/qdatastream_gui_operators_test.py
@@ -1,32 +1,5 @@
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtGui/qdesktopservices_test.py b/sources/pyside6/tests/QtGui/qdesktopservices_test.py
index 1981b52a6..8d578152d 100644
--- a/sources/pyside6/tests/QtGui/qdesktopservices_test.py
+++ b/sources/pyside6/tests/QtGui/qdesktopservices_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Unit tests for QDesktopServices'''
diff --git a/sources/pyside6/tests/QtGui/qfont_test.py b/sources/pyside6/tests/QtGui/qfont_test.py
new file mode 100644
index 000000000..f81d47ec6
--- /dev/null
+++ b/sources/pyside6/tests/QtGui/qfont_test.py
@@ -0,0 +1,35 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from PySide6.QtGui import QFont
+from helper.usesqapplication import UsesQApplication
+
+
+class QFontTest(UsesQApplication):
+
+ def testStringConstruction(self):
+ """PYSIDE-1685: Test that passing str to QFont works after addding
+ QFont(QStringList) by qtbase/d8602ce58b6ef268be84b9aa0166b0c3fa6a96e8"""
+ font_name = 'Times Roman'
+ font = QFont(font_name)
+ families = font.families()
+ self.assertEqual(len(families), 1)
+ self.assertEqual(families[0], font_name)
+
+ font = QFont([font_name])
+ families = font.families()
+ self.assertEqual(len(families), 1)
+ self.assertEqual(families[0], font_name)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/QtGui/qfontmetrics_test.py b/sources/pyside6/tests/QtGui/qfontmetrics_test.py
index 9f3099acd..98c4c8f96 100644
--- a/sources/pyside6/tests/QtGui/qfontmetrics_test.py
+++ b/sources/pyside6/tests/QtGui/qfontmetrics_test.py
@@ -1,34 +1,10 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Tests for inject codes and modifications on QFontMetrics
and QFontMetricsF'''
+import gc
import os
import sys
import unittest
@@ -54,6 +30,8 @@ class QFontMetricsTest(UsesQApplication):
def tearDown(self):
del self.metrics
del self.font
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
super(QFontMetricsTest, self).tearDown()
@@ -113,8 +91,8 @@ class BoundingRectTest(QFontMetricsTest):
'''QFontMetrics.boundingRect(QRect, ...) - type error'''
arg = QRect(0, 0, 100, 200)
self.assertRaises(TypeError, self.metrics.boundingRect, arg,
- Qt.TextExpandTabs | Qt.AlignLeft,
- 'PySide by INdT', 20, ['aaaa', 'ase'])
+ Qt.TextExpandTabs | Qt.AlignLeft,
+ 'PySide by INdT', 20, ['aaaa', 'ase'])
class SizeTest(QFontMetricsTest):
@@ -156,6 +134,8 @@ class QFontMetricsFTest(UsesQApplication):
def tearDown(self):
del self.metrics
del self.font
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
super(QFontMetricsFTest, self).tearDown()
@@ -216,8 +196,8 @@ class FSizeTest(QFontMetricsFTest):
def testTypeError(self):
'''QFontMetricsF.size - type error'''
self.assertRaises(TypeError, self.metrics.size,
- Qt.TextExpandTabs | Qt.AlignLeft,
- 'PySide by INdT', 20, ['aaaa', 'ase'])
+ Qt.TextExpandTabs | Qt.AlignLeft,
+ 'PySide by INdT', 20, ['aaaa', 'ase'])
class QCharTest(QFontMetricsFTest):
diff --git a/sources/pyside6/tests/QtGui/qguiapplication_test.py b/sources/pyside6/tests/QtGui/qguiapplication_test.py
index ae661b695..a3d0942aa 100644
--- a/sources/pyside6/tests/QtGui/qguiapplication_test.py
+++ b/sources/pyside6/tests/QtGui/qguiapplication_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtGui/qicon_test.py b/sources/pyside6/tests/QtGui/qicon_test.py
index 1387ff76b..18ef3d815 100644
--- a/sources/pyside6/tests/QtGui/qicon_test.py
+++ b/sources/pyside6/tests/QtGui/qicon_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -35,11 +10,11 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from helper.timedqapplication import TimedQApplication
+from helper.timedqguiapplication import TimedQGuiApplication
from PySide6.QtGui import QIcon
-class QIconCtorWithNoneTest(TimedQApplication):
+class QIconCtorWithNoneTest(TimedQGuiApplication):
'''Test made by seblin, see Bug #944: http://bugs.pyside.org/show_bug.cgi?id=944'''
def testQIconCtorWithNone(self):
@@ -48,5 +23,26 @@ class QIconCtorWithNoneTest(TimedQApplication):
self.app.exec()
+PIX_PATH = os.fspath(Path(__file__).resolve().parents[2]
+ / "doc/tutorials/basictutorial/icons.png")
+
+
+class QIconAddPixmapTest(TimedQGuiApplication):
+ '''PYSIDE-1669: check that addPixmap works'''
+
+ def testQIconSetPixmap(self):
+ icon = QIcon()
+ icon.addPixmap(PIX_PATH)
+ sizes = icon.availableSizes()
+ self.assertTrue(sizes)
+
+ def testQIconSetPixmapPathlike(self):
+ icon = QIcon()
+ pix_path = Path(PIX_PATH)
+ icon.addPixmap(pix_path)
+ sizes = icon.availableSizes()
+ self.assertTrue(sizes)
+
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/pyside6/tests/QtGui/qimage_test.py b/sources/pyside6/tests/QtGui/qimage_test.py
new file mode 100644
index 000000000..5912bf318
--- /dev/null
+++ b/sources/pyside6/tests/QtGui/qimage_test.py
@@ -0,0 +1,56 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+'''Test cases for QImage'''
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from PySide6.QtGui import QImage
+from helper.usesqapplication import UsesQApplication
+from xpm_data import xpm
+
+
+class QImageTest(UsesQApplication):
+ '''Test case for calling setPixel with float as argument'''
+
+ def testQImageStringBuffer(self):
+ '''Test if the QImage signatures receiving string buffers exist.'''
+ file = Path(__file__).resolve().parent / 'sample.png'
+ self.assertTrue(file.is_file())
+ img0 = QImage(file)
+
+ # btw let's test the bits() method
+ img1 = QImage(img0.bits(), img0.width(), img0.height(), img0.format())
+ img1.setColorSpace(img0.colorSpace())
+ self.assertEqual(img0, img1)
+ img2 = QImage(img0.bits(), img0.width(), img0.height(), img0.bytesPerLine(), img0.format())
+ img2.setColorSpace(img0.colorSpace())
+ self.assertEqual(img0, img2)
+
+ ## test scanLine method
+ data1 = img0.scanLine(0)
+ data2 = img1.scanLine(0)
+ self.assertEqual(data1, data2)
+
+ def testEmptyBuffer(self):
+ img = QImage(bytes('', "UTF-8"), 100, 100, QImage.Format_ARGB32)
+
+ def testEmptyStringAsBuffer(self):
+ img = QImage(bytes('', "UTF-8"), 100, 100, QImage.Format_ARGB32)
+
+ def testXpmConstructor(self):
+ img = QImage(xpm)
+ self.assertFalse(img.isNull())
+ self.assertEqual(img.width(), 27)
+ self.assertEqual(img.height(), 22)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/QtGui/qimage_win_test.py b/sources/pyside6/tests/QtGui/qimage_win_test.py
new file mode 100644
index 000000000..2d9cb96f1
--- /dev/null
+++ b/sources/pyside6/tests/QtGui/qimage_win_test.py
@@ -0,0 +1,41 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+'''Test cases for QImage/Windows'''
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from PySide6.QtCore import Qt
+from PySide6.QtGui import QImage
+from helper.usesqapplication import UsesQApplication
+
+
+def create_image():
+ result = QImage(20, 20, QImage.Format_RGB32)
+ result.fill(Qt.white)
+ return result
+
+
+class QImageWinTest(UsesQApplication):
+
+ def test_to_hbitmap(self):
+ """Test conversion to/from a Windows HBITMAP."""
+
+ image = create_image()
+ hbitmap = image.toHBITMAP()
+ self.assertTrue(hbitmap > 0)
+
+ image2 = QImage.fromHBITMAP(hbitmap)
+ image2.setColorSpace(image.colorSpace())
+ self.assertEqual(image, image2)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/QtGui/qitemselection_test.py b/sources/pyside6/tests/QtGui/qitemselection_test.py
index 1cfa92774..179bff745 100644
--- a/sources/pyside6/tests/QtGui/qitemselection_test.py
+++ b/sources/pyside6/tests/QtGui/qitemselection_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtGui/qkeysequence_test.py b/sources/pyside6/tests/QtGui/qkeysequence_test.py
index 3bcdf636b..3d72fb50a 100644
--- a/sources/pyside6/tests/QtGui/qkeysequence_test.py
+++ b/sources/pyside6/tests/QtGui/qkeysequence_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -36,7 +11,7 @@ from init_paths import init_test_paths
init_test_paths(False)
from PySide6.QtCore import Qt
-from PySide6.QtGui import QKeySequence
+from PySide6.QtGui import QKeySequence, qt_set_sequence_auto_mnemonic
from helper.usesqapplication import UsesQApplication
@@ -45,11 +20,16 @@ class QKeySequenceTest(UsesQApplication):
def testGetItemOperator(self):
# bug #774
- ks = QKeySequence(Qt.SHIFT, Qt.CTRL, Qt.Key_P, Qt.Key_R)
- self.assertEqual(ks[0], Qt.SHIFT)
- self.assertEqual(ks[1], Qt.CTRL)
- self.assertEqual(ks[2], Qt.Key_P)
- self.assertEqual(ks[3], Qt.Key_R)
+ # PYSIDE-1735: Remapped from Qt.Modifier to Qt.KeyboardModifier
+ # Note that Qt.(Keyboard)?Modifier will be no longer IntFlag.
+ ks = QKeySequence(Qt.ShiftModifier, Qt.ControlModifier, Qt.Key_P, Qt.Key_R)
+ self.assertEqual(ks[0].keyboardModifiers(), Qt.ShiftModifier)
+ self.assertEqual(ks[1].keyboardModifiers(), Qt.ControlModifier)
+ self.assertEqual(ks[2].key(), Qt.Key_P)
+ self.assertEqual(ks[3].key(), Qt.Key_R)
+
+ def testAutoMnemonic(self):
+ qt_set_sequence_auto_mnemonic(True)
if __name__ == '__main__':
diff --git a/sources/pyside6/tests/QtGui/qpainter_test.py b/sources/pyside6/tests/QtGui/qpainter_test.py
index a099e9df8..103b91ad6 100644
--- a/sources/pyside6/tests/QtGui/qpainter_test.py
+++ b/sources/pyside6/tests/QtGui/qpainter_test.py
@@ -1,31 +1,7 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+import gc
import os
import sys
import unittest
@@ -35,7 +11,7 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from helper.usesqguiapplication import UsesQGuiApplication
+from helper.usesqapplication import UsesQApplication
from PySide6.QtGui import QPainter, QLinearGradient, QImage
from PySide6.QtCore import QLine, QLineF, QPoint, QPointF, QRect, QRectF, Qt
@@ -47,7 +23,7 @@ except ModuleNotFoundError:
HAVE_NUMPY = False
-class QPainterDrawText(UsesQGuiApplication):
+class QPainterDrawText(UsesQApplication):
def setUp(self):
super(QPainterDrawText, self).setUp()
self.image = QImage(32, 32, QImage.Format_ARGB32)
@@ -58,6 +34,8 @@ class QPainterDrawText(UsesQGuiApplication):
del self.text
self.painter.end()
del self.painter
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
super(QPainterDrawText, self).tearDown()
def testDrawText(self):
@@ -116,22 +94,20 @@ class QPainterDrawText(UsesQGuiApplication):
QPoint(20.0, 10.0),
QPoint(80.0, 30.0),
QPoint(90.0, 70.0)])
- # FIXME: Activate once libpyside numpy support is on by default
- if False and HAVE_NUMPY:
+ if HAVE_NUMPY:
x = np.array([10.0, 20.0, 80.0, 90.0])
y = np.array([80.0, 10.0, 30.0, 70.0])
self.painter.drawPointsNp(x, y)
-class SetBrushWithOtherArgs(UsesQGuiApplication):
+class SetBrushWithOtherArgs(UsesQApplication):
'''Using qpainter.setBrush with args other than QBrush'''
def testSetBrushGradient(self):
image = QImage(32, 32, QImage.Format_ARGB32)
- painter = QPainter(image)
- gradient = QLinearGradient(0, 0, 0, 0)
- painter.setBrush(gradient)
- painter.end()
+ with QPainter(image) as painter:
+ gradient = QLinearGradient(0, 0, 0, 0)
+ painter.setBrush(gradient)
if __name__ == '__main__':
diff --git a/sources/pyside6/tests/QtGui/qpdfwriter_test.py b/sources/pyside6/tests/QtGui/qpdfwriter_test.py
index 61a16159f..2dca2aca2 100644
--- a/sources/pyside6/tests/QtGui/qpdfwriter_test.py
+++ b/sources/pyside6/tests/QtGui/qpdfwriter_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtGui/qpen_test.py b/sources/pyside6/tests/QtGui/qpen_test.py
new file mode 100644
index 000000000..7e8604606
--- /dev/null
+++ b/sources/pyside6/tests/QtGui/qpen_test.py
@@ -0,0 +1,57 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from helper.usesqapplication import UsesQApplication
+
+from PySide6.QtCore import Qt, QTimer
+from PySide6.QtGui import QPen, QPainter, QRasterWindow
+
+
+class Painting(QRasterWindow):
+ def __init__(self):
+ super().__init__()
+ self.penFromEnum = None
+ self.penFromInteger = None
+
+ def paintEvent(self, event):
+ with QPainter(self) as painter:
+ painter.setPen(Qt.NoPen)
+ self.penFromEnum = painter.pen()
+ intVal = Qt.NoPen.value
+ painter.setPen(intVal)
+ self.penFromInteger = painter.pen()
+ QTimer.singleShot(20, self.close)
+
+
+class QPenTest(UsesQApplication):
+
+ def testCtorWithCreatedEnums(self):
+ '''A simple case of QPen creation using created enums.'''
+ width = 0
+ style = Qt.PenStyle(0)
+ cap = Qt.PenCapStyle(0)
+ join = Qt.PenJoinStyle(0)
+ pen = QPen(Qt.blue, width, style, cap, join)
+
+ def testSetPenWithPenStyleEnum(self):
+ '''Calls QPainter.setPen with both enum and integer. Bug #511.'''
+ w = Painting()
+ w.show()
+ w.setTitle("qpen_test")
+ self.app.exec()
+ self.assertEqual(w.penFromEnum.style(), Qt.NoPen)
+ self.assertEqual(w.penFromInteger.style(), Qt.SolidLine)
+
+
+if __name__ == '__main__':
+ unittest.main()
+
diff --git a/sources/pyside6/tests/QtGui/qpixelformat_test.py b/sources/pyside6/tests/QtGui/qpixelformat_test.py
index e2fd084af..869d15952 100644
--- a/sources/pyside6/tests/QtGui/qpixelformat_test.py
+++ b/sources/pyside6/tests/QtGui/qpixelformat_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Unit test for QPixelFormat'''
diff --git a/sources/pyside6/tests/QtGui/qpixmap_constructor.py b/sources/pyside6/tests/QtGui/qpixmap_constructor.py
new file mode 100644
index 000000000..dd658af52
--- /dev/null
+++ b/sources/pyside6/tests/QtGui/qpixmap_constructor.py
@@ -0,0 +1,260 @@
+#!/usr/bin/python
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from PySide6.QtGui import QPixmap
+
+from helper.usesqapplication import UsesQApplication
+
+xpm = [
+ "27 22 206 2",
+ " c None",
+ ". c #FEFEFE",
+ "+ c #FFFFFF",
+ "@ c #F9F9F9",
+ "# c #ECECEC",
+ "$ c #D5D5D5",
+ "% c #A0A0A0",
+ "& c #767676",
+ "* c #525252",
+ "= c #484848",
+ "- c #4E4E4E",
+ "; c #555555",
+ "> c #545454",
+ ", c #5A5A5A",
+ "' c #4B4B4B",
+ ") c #4A4A4A",
+ "! c #4F4F4F",
+ "~ c #585858",
+ "{ c #515151",
+ "] c #4C4C4C",
+ "^ c #B1B1B1",
+ "/ c #FCFCFC",
+ "( c #FDFDFD",
+ "_ c #C1C1C1",
+ ": c #848484",
+ "< c #616161",
+ "[ c #5E5E5E",
+ "} c #CECECE",
+ "| c #E2E2E2",
+ "1 c #E4E4E4",
+ "2 c #DFDFDF",
+ "3 c #D2D2D2",
+ "4 c #D8D8D8",
+ "5 c #D4D4D4",
+ "6 c #E6E6E6",
+ "7 c #F1F1F1",
+ "8 c #838383",
+ "9 c #8E8E8E",
+ "0 c #8F8F8F",
+ "a c #CBCBCB",
+ "b c #CCCCCC",
+ "c c #E9E9E9",
+ "d c #F2F2F2",
+ "e c #EDEDED",
+ "f c #B5B5B5",
+ "g c #A6A6A6",
+ "h c #ABABAB",
+ "i c #BBBBBB",
+ "j c #B0B0B0",
+ "k c #EAEAEA",
+ "l c #6C6C6C",
+ "m c #BCBCBC",
+ "n c #F5F5F5",
+ "o c #FAFAFA",
+ "p c #B6B6B6",
+ "q c #F3F3F3",
+ "r c #CFCFCF",
+ "s c #FBFBFB",
+ "t c #CDCDCD",
+ "u c #DDDDDD",
+ "v c #999999",
+ "w c #F0F0F0",
+ "x c #2B2B2B",
+ "y c #C3C3C3",
+ "z c #A4A4A4",
+ "A c #D7D7D7",
+ "B c #E7E7E7",
+ "C c #6E6E6E",
+ "D c #9D9D9D",
+ "E c #BABABA",
+ "F c #AEAEAE",
+ "G c #898989",
+ "H c #646464",
+ "I c #BDBDBD",
+ "J c #CACACA",
+ "K c #2A2A2A",
+ "L c #212121",
+ "M c #B7B7B7",
+ "N c #F4F4F4",
+ "O c #737373",
+ "P c #828282",
+ "Q c #4D4D4D",
+ "R c #000000",
+ "S c #151515",
+ "T c #B2B2B2",
+ "U c #D6D6D6",
+ "V c #D3D3D3",
+ "W c #2F2F2F",
+ "X c #636363",
+ "Y c #A1A1A1",
+ "Z c #BFBFBF",
+ "` c #E0E0E0",
+ " . c #6A6A6A",
+ ".. c #050505",
+ "+. c #A3A3A3",
+ "@. c #202020",
+ "#. c #5F5F5F",
+ "$. c #B9B9B9",
+ "%. c #C7C7C7",
+ "&. c #D0D0D0",
+ "*. c #3E3E3E",
+ "=. c #666666",
+ "-. c #DBDBDB",
+ ";. c #424242",
+ ">. c #C2C2C2",
+ ",. c #1A1A1A",
+ "'. c #2C2C2C",
+ "). c #F6F6F6",
+ "!. c #AAAAAA",
+ "~. c #DCDCDC",
+ "{. c #2D2D2D",
+ "]. c #2E2E2E",
+ "^. c #A7A7A7",
+ "/. c #656565",
+ "(. c #333333",
+ "_. c #464646",
+ ":. c #C4C4C4",
+ "<. c #B8B8B8",
+ "[. c #292929",
+ "}. c #979797",
+ "|. c #EFEFEF",
+ "1. c #909090",
+ "2. c #8A8A8A",
+ "3. c #575757",
+ "4. c #676767",
+ "5. c #C5C5C5",
+ "6. c #7A7A7A",
+ "7. c #797979",
+ "8. c #989898",
+ "9. c #EEEEEE",
+ "0. c #707070",
+ "a. c #C8C8C8",
+ "b. c #111111",
+ "c. c #AFAFAF",
+ "d. c #474747",
+ "e. c #565656",
+ "f. c #E3E3E3",
+ "g. c #494949",
+ "h. c #5B5B5B",
+ "i. c #222222",
+ "j. c #353535",
+ "k. c #D9D9D9",
+ "l. c #0A0A0A",
+ "m. c #858585",
+ "n. c #E5E5E5",
+ "o. c #0E0E0E",
+ "p. c #9A9A9A",
+ "q. c #6F6F6F",
+ "r. c #868686",
+ "s. c #060606",
+ "t. c #1E1E1E",
+ "u. c #E8E8E8",
+ "v. c #A5A5A5",
+ "w. c #0D0D0D",
+ "x. c #030303",
+ "y. c #272727",
+ "z. c #131313",
+ "A. c #1F1F1F",
+ "B. c #757575",
+ "C. c #F7F7F7",
+ "D. c #414141",
+ "E. c #080808",
+ "F. c #6B6B6B",
+ "G. c #313131",
+ "H. c #C0C0C0",
+ "I. c #C9C9C9",
+ "J. c #0B0B0B",
+ "K. c #232323",
+ "L. c #434343",
+ "M. c #3D3D3D",
+ "N. c #282828",
+ "O. c #7C7C7C",
+ "P. c #252525",
+ "Q. c #3A3A3A",
+ "R. c #F8F8F8",
+ "S. c #1B1B1B",
+ "T. c #949494",
+ "U. c #3B3B3B",
+ "V. c #242424",
+ "W. c #383838",
+ "X. c #6D6D6D",
+ "Y. c #818181",
+ "Z. c #939393",
+ "`. c #9E9E9E",
+ " + c #929292",
+ ".+ c #7D7D7D",
+ "++ c #ADADAD",
+ "@+ c #DADADA",
+ "#+ c #919191",
+ "$+ c #E1E1E1",
+ "%+ c #BEBEBE",
+ "&+ c #ACACAC",
+ "*+ c #9C9C9C",
+ "=+ c #B3B3B3",
+ "-+ c #808080",
+ ";+ c #A8A8A8",
+ ">+ c #393939",
+ ",+ c #747474",
+ "'+ c #7F7F7F",
+ ")+ c #D1D1D1",
+ "!+ c #606060",
+ "~+ c #5C5C5C",
+ "{+ c #686868",
+ "]+ c #7E7E7E",
+ "^+ c #787878",
+ "/+ c #595959",
+ ". . . + @ # $ % & * = - ; > , ' ) ! ~ { ] ^ / . . + + ",
+ ". ( + _ : < [ & } | 1 2 $ 3 4 5 3 6 7 + + 8 9 + . + . ",
+ ". + 0 9 a ( 3 a b c d e c f g h i g j $ k + l m + . + ",
+ "+ 2 8 n o p | ( q r s . # t + + + u ^ v e w + x + + + ",
+ "+ y z . @ A k B 7 n + ( s | p 8 C D 2 E 4 + + F G + . ",
+ "# H I $ J G K L - M N . 2 O P Q R R S T U s s V W j + ",
+ "X Y Z @ o ` _ g ...+.( 4 @.#.m G $.%.7 &.X *.=.-.;.&.",
+ "Q >.C ,.'.} e + ).!.k + . + + . ~.{.> ].x f 7 ^./.k (.",
+ "_.:.4 @ <.[.}.|.1.2.+ + + >.} 4 B + ( @ _ 3.4.5.6.r 7.",
+ "3.8.9.~ 0.+ a.Q b.+ + c.d.#.=.$ |.b #.e.z ^ ; ^. .f.g.",
+ "-.h.+ i.S M + # p j.% n 9.5.k.H l.m.V ^.n.o.M + M p.q.",
+ "7 r.N s.1.R t.<.|.| u.v.~ w.x.E + s y.z.A.B.C.+ 5 D.q ",
+ ").p.2 E.0.9 F.%.O {._ @.+ + i { [ i.G.H.P I.+ s q.} + ",
+ ").p.6 J.R b.K.L.M.A.! b.g.K [.R M k + N.I + + >.O.+ . ",
+ ").8.9.N.P...R R R R E.t.W n.+ Q.R.6 @.| + . + S.+ + . ",
+ "n }.w T.U.B.<.i.@ Y + + U.+ c u V.= B B 7 u.W.c + . + ",
+ "N T.# + }.X.Y.,.8.F.8 Z.[.`. +.+}.4 ++@+O.< ~.+ ( . + ",
+ "d #+1 + _ ~.u.$+b $.y @+| $+%+I.&+k.h W +.9.+ ( . + . ",
+ "w 0 |.*+. >.<.=+++++p a.p -+;+5.k.>+,+@ + . . + . + + ",
+ "q '+9.R.^ I.t b %.I.)+4 $+n.I.,+ .|.+ . . . + . + + + ",
+ ". p !+( + + + + + + E 0. .-+8.f.+ + . . + + . + + + + ",
+ ". ( A ~+{+]+^+l > /+D f.c q . + . . + + . + + + + + + "
+]
+
+
+class QStringSequenceTest(UsesQApplication):
+ def testQPixmapConstructor(self):
+ pixmap1 = QPixmap(xpm)
+ self.assertFalse(pixmap1.isNull())
+ self.assertEqual(pixmap1.width(), 27)
+ self.assertEqual(pixmap1.height(), 22)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/sources/pyside6/tests/QtGui/qpixmap_test.py b/sources/pyside6/tests/QtGui/qpixmap_test.py
index 70de1ebf6..b80ae2ad5 100644
--- a/sources/pyside6/tests/QtGui/qpixmap_test.py
+++ b/sources/pyside6/tests/QtGui/qpixmap_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtGui/qpixmapcache_test.py b/sources/pyside6/tests/QtGui/qpixmapcache_test.py
index 6a7ef330a..2ecb439d3 100644
--- a/sources/pyside6/tests/QtGui/qpixmapcache_test.py
+++ b/sources/pyside6/tests/QtGui/qpixmapcache_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtGui/qpolygonf_test.py b/sources/pyside6/tests/QtGui/qpolygonf_test.py
index 8a888d08a..8a283fddc 100644
--- a/sources/pyside6/tests/QtGui/qpolygonf_test.py
+++ b/sources/pyside6/tests/QtGui/qpolygonf_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtGui/qradialgradient_test.py b/sources/pyside6/tests/QtGui/qradialgradient_test.py
index e36fc6fd9..ebab42b15 100644
--- a/sources/pyside6/tests/QtGui/qradialgradient_test.py
+++ b/sources/pyside6/tests/QtGui/qradialgradient_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtGui/qrasterwindow_test.py b/sources/pyside6/tests/QtGui/qrasterwindow_test.py
index 6bd5aadce..4920902d5 100644
--- a/sources/pyside6/tests/QtGui/qrasterwindow_test.py
+++ b/sources/pyside6/tests/QtGui/qrasterwindow_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Unit test for QBackingStore, QRasterWindow and QStaticText'''
@@ -38,29 +13,62 @@ from init_paths import init_test_paths
init_test_paths(False)
from helper.usesqapplication import UsesQApplication
-from PySide6.QtCore import QEvent, QPoint, QRect, QSize, QTimer, Qt
-from PySide6.QtGui import QColor, QBackingStore, QPaintDevice, QPainter, QWindow, QPaintDeviceWindow, QRasterWindow, QRegion, QStaticText
+from PySide6.QtCore import QPoint, QRect, QSize, QTimer, Qt
+from PySide6.QtGui import (QColor, QPainter, QRasterWindow, QStaticText,
+ QTextCursor, QTextDocument, QAbstractTextDocumentLayout)
# Window using convenience class QRasterWindow
-class TestRasterWindow(QRasterWindow):
+class StaticTextRasterWindow(QRasterWindow):
def __init__(self):
super().__init__()
self.text = QStaticText("QRasterWindow")
def paintEvent(self, event):
clientRect = QRect(QPoint(0, 0), self.size())
- painter = QPainter(self)
- painter.fillRect(clientRect, QColor(Qt.red))
- painter.drawStaticText(QPoint(10, 10), self.text)
+ with QPainter(self) as painter:
+ painter.fillRect(clientRect, QColor(Qt.red))
+ painter.drawStaticText(QPoint(10, 10), self.text)
+
+
+class TextDocumentWindow(QRasterWindow):
+ """PYSIDE-2252, drawing with QAbstractTextDocumentLayout.PaintContext"""
+
+ def __init__(self):
+ super().__init__()
+ self.m_document = QTextDocument()
+ self.m_document.setPlainText("bla bla")
+
+ def paintEvent(self, event):
+ with QPainter(self) as painter:
+ clientRect = QRect(QPoint(0, 0), self.size())
+ painter.fillRect(clientRect, QColor(Qt.white))
+ ctx = QAbstractTextDocumentLayout.PaintContext()
+ ctx.clip = clientRect
+
+ sel = QAbstractTextDocumentLayout.Selection()
+ cursor = QTextCursor(self.m_document)
+ cursor.movePosition(QTextCursor.Start)
+ cursor.movePosition(QTextCursor.NextWord, QTextCursor.KeepAnchor)
+ sel.cursor = cursor
+ sel.format.setForeground(Qt.red)
+ ctx.selections = [sel]
+
+ self.m_document.documentLayout().draw(painter, ctx)
class QRasterWindowTest(UsesQApplication):
def test(self):
- rasterWindow = TestRasterWindow()
+ rasterWindow = StaticTextRasterWindow()
rasterWindow.setFramePosition(QPoint(100, 100))
rasterWindow.resize(QSize(400, 400))
rasterWindow.show()
+
+ rasterWindow2 = TextDocumentWindow()
+ rasterWindow2.setFramePosition(rasterWindow.frameGeometry().topRight() + QPoint(20, 0))
+ rasterWindow2.resize(QSize(400, 400))
+ rasterWindow2.show()
+
QTimer.singleShot(100, self.app.quit)
self.app.exec()
diff --git a/sources/pyside6/tests/QtGui/qregion_test.py b/sources/pyside6/tests/QtGui/qregion_test.py
index e5b6a1d56..df14fc3e0 100644
--- a/sources/pyside6/tests/QtGui/qregion_test.py
+++ b/sources/pyside6/tests/QtGui/qregion_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -36,7 +11,7 @@ from init_paths import init_test_paths
init_test_paths(False)
from PySide6.QtGui import QRegion
-from PySide6.QtCore import QPoint
+from PySide6.QtCore import QPoint, QRect, QSize
from helper.usesqapplication import UsesQApplication
@@ -52,6 +27,14 @@ class QRegionTest(UsesQApplication):
self.assertTrue(ru.contains(QPoint(10, 10)))
self.assertTrue(ru.contains(QPoint(14, 14)))
+ def testSequence(self):
+ region = QRegion()
+ region += QRect(QPoint(0, 0), QSize(10, 10))
+ region += QRect(QPoint(10, 0), QSize(20, 20))
+ self.assertEqual(len(region), 2)
+ for r in region:
+ pass
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/pyside6/tests/QtGui/qshortcut_test.py b/sources/pyside6/tests/QtGui/qshortcut_test.py
new file mode 100644
index 000000000..f2650589a
--- /dev/null
+++ b/sources/pyside6/tests/QtGui/qshortcut_test.py
@@ -0,0 +1,60 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+''' Test the QShortcut constructor'''
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from PySide6.QtCore import Qt, QTimer
+from PySide6.QtGui import QGuiApplication, QKeySequence, QShortcut, QWindow
+
+
+class Foo(QWindow):
+ def __init__(self):
+ super().__init__()
+ self.ok = False
+ self.copy = False
+
+ def slot_of_foo(self):
+ self.ok = True
+
+ def slot_of_copy(self):
+ self.copy = True
+
+
+class MyShortcut(QShortcut):
+ def __init__(self, keys, wdg, slot):
+ QShortcut.__init__(self, keys, wdg, slot)
+
+ def emit_signal(self):
+ self.activated.emit()
+
+
+class QAppPresence(unittest.TestCase):
+
+ def testQShortcut(self):
+ self.qapp = QGuiApplication([])
+ f = Foo()
+
+ self.sc = MyShortcut(QKeySequence(Qt.Key_Return), f, f.slot_of_foo)
+ self.scstd = MyShortcut(QKeySequence.Copy, f, f.slot_of_copy)
+ QTimer.singleShot(0, self.init)
+ self.qapp.exec()
+ self.assertEqual(f.ok, True)
+ self.assertEqual(f.copy, True)
+
+ def init(self):
+ self.sc.emit_signal()
+ self.scstd.emit_signal()
+ self.qapp.quit()
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/QtGui/qstandarditemmodel_test.py b/sources/pyside6/tests/QtGui/qstandarditemmodel_test.py
new file mode 100644
index 000000000..55aca9113
--- /dev/null
+++ b/sources/pyside6/tests/QtGui/qstandarditemmodel_test.py
@@ -0,0 +1,85 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import gc
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from PySide6.QtCore import QObject
+from PySide6.QtGui import QStandardItemModel, QStandardItem
+from shiboken6 import Shiboken
+from helper.usesqapplication import UsesQApplication
+
+
+class QStandardItemModelTest(UsesQApplication):
+
+ def setUp(self):
+ super(QStandardItemModelTest, self).setUp()
+ self.parent = QObject()
+ self.model = QStandardItemModel(0, 3, self.parent)
+
+ def tearDown(self):
+ del self.parent
+ del self.model
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
+ super(QStandardItemModelTest, self).tearDown()
+
+ def testInsertRow(self):
+ # bug #227
+ self.model.insertRow(0)
+
+ def testClear(self):
+
+ model = QStandardItemModel()
+ root = model.invisibleRootItem()
+ model.clear()
+ self.assertFalse(Shiboken.isValid(root))
+
+
+class QStandardItemModelRef(UsesQApplication):
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
+ def testRefCount(self):
+ model = QStandardItemModel(5, 5)
+ items = []
+ for r in range(5):
+ row = []
+ for c in range(5):
+ row.append(QStandardItem(f"{r},{c}"))
+ self.assertEqual(sys.getrefcount(row[c]), 2)
+
+ model.insertRow(r, row)
+
+ for c in range(5):
+ ref_after = sys.getrefcount(row[c])
+ # check if the ref count was incremented after insertRow
+ self.assertEqual(ref_after, 3)
+
+ items.append(row)
+ row = None
+
+ for r in range(3):
+ my_row = model.takeRow(0)
+ my_row = None
+ for c in range(5):
+ # only rest 1 reference
+ self.assertEqual(sys.getrefcount(items[r][c]), 2)
+
+ my_i = model.item(0, 0)
+ # ref(my_i) + parent_ref + items list ref
+ self.assertEqual(sys.getrefcount(my_i), 4)
+
+ model.clear()
+ # ref(my_i)
+ self.assertEqual(sys.getrefcount(my_i), 3)
+
+
+if __name__ == '__main__':
+ unittest.main()
+
diff --git a/sources/pyside6/tests/QtGui/qstring_qkeysequence_test.py b/sources/pyside6/tests/QtGui/qstring_qkeysequence_test.py
new file mode 100644
index 000000000..f68374263
--- /dev/null
+++ b/sources/pyside6/tests/QtGui/qstring_qkeysequence_test.py
@@ -0,0 +1,42 @@
+#!/usr/bin/python
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+'''Tests conversions of QString to and from QKeySequence.'''
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from helper.usesqapplication import UsesQApplication
+
+from PySide6.QtGui import QAction, QKeySequence
+
+
+class QStringQKeySequenceTest(UsesQApplication):
+ '''Tests conversions of QString to and from QKeySequence.'''
+
+ def testQStringFromQKeySequence(self):
+ '''Creates a QString from a QKeySequence.'''
+ keyseq = 'Ctrl+A'
+ a = QKeySequence(keyseq)
+ self.assertEqual(a, keyseq)
+
+ def testPythonStringAsQKeySequence(self):
+ '''Passes a Python string to an argument expecting a QKeySequence.'''
+ keyseq = 'Ctrl+A'
+ action = QAction(None)
+ action.setShortcut(keyseq)
+ shortcut = action.shortcut()
+ self.assertTrue(isinstance(shortcut, QKeySequence))
+ self.assertEqual(shortcut.toString(), keyseq)
+
+
+if __name__ == '__main__':
+ unittest.main()
+
diff --git a/sources/pyside6/tests/QtGui/qstylehints_test.py b/sources/pyside6/tests/QtGui/qstylehints_test.py
index c113469ee..d2b21d30d 100644
--- a/sources/pyside6/tests/QtGui/qstylehints_test.py
+++ b/sources/pyside6/tests/QtGui/qstylehints_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Unit test for QStyleHints'''
diff --git a/sources/pyside6/tests/QtGui/qtextdocument_functions.py b/sources/pyside6/tests/QtGui/qtextdocument_functions.py
index c001c5da9..2ac72df56 100644
--- a/sources/pyside6/tests/QtGui/qtextdocument_functions.py
+++ b/sources/pyside6/tests/QtGui/qtextdocument_functions.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -35,7 +10,7 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtGui import Qt
+from PySide6.QtGui import QPageRanges, Qt
class QTextDocumentFunctions(unittest.TestCase):
@@ -47,5 +22,16 @@ class QTextDocumentFunctions(unittest.TestCase):
self.assertEqual(html, '<p>A &amp; B</p>')
+class QPageRangesTest(unittest.TestCase):
+ """PYSIDE-2237: Test that field QPageRanges.Range.from is properly mangled."""
+
+ def test(self):
+ pr = QPageRanges()
+ pr.addPage(1)
+ r0 = pr.toRangeList()[0]
+ self.assertEqual(r0.from_, 1)
+ self.assertEqual(r0.to, 1)
+
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/pyside6/tests/QtGui/qtextdocument_undoredo_test.py b/sources/pyside6/tests/QtGui/qtextdocument_undoredo_test.py
index 8ef520eea..b74c6704f 100644
--- a/sources/pyside6/tests/QtGui/qtextdocument_undoredo_test.py
+++ b/sources/pyside6/tests/QtGui/qtextdocument_undoredo_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtGui/qtextdocumentwriter_test.py b/sources/pyside6/tests/QtGui/qtextdocumentwriter_test.py
index 6838931d4..4f72b98e7 100644
--- a/sources/pyside6/tests/QtGui/qtextdocumentwriter_test.py
+++ b/sources/pyside6/tests/QtGui/qtextdocumentwriter_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtGui/qtextline_test.py b/sources/pyside6/tests/QtGui/qtextline_test.py
index 511292d9b..c34a4c98a 100644
--- a/sources/pyside6/tests/QtGui/qtextline_test.py
+++ b/sources/pyside6/tests/QtGui/qtextline_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -35,7 +10,7 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtGui import QTextLayout
+from PySide6.QtGui import QTextLayout, QTextOption
from helper.usesqapplication import UsesQApplication
@@ -53,6 +28,11 @@ class QTextLineTest(UsesQApplication):
self.assertEqual(type(x), float)
self.assertEqual(type(cursorPos), int)
+ def testTextOption(self):
+ """PYSIDE-2088, large enum values causing MSVC issues."""
+ v = QTextOption.IncludeTrailingSpaces | QTextOption.ShowTabsAndSpaces
+ self.assertEqual(v.value, 2147483649)
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/pyside6/tests/QtGui/qtransform_test.py b/sources/pyside6/tests/QtGui/qtransform_test.py
index 777e88225..dc51a74e6 100644
--- a/sources/pyside6/tests/QtGui/qtransform_test.py
+++ b/sources/pyside6/tests/QtGui/qtransform_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -36,7 +11,7 @@ from init_paths import init_test_paths
init_test_paths(False)
from PySide6.QtCore import QPointF
-from PySide6.QtGui import QTransform, QPolygonF, QPolygonF
+from PySide6.QtGui import QTransform, QPolygonF, QPolygonF, QQuaternion, QVector3D
class QTransformTest(unittest.TestCase):
@@ -103,6 +78,12 @@ class QTransformTest(unittest.TestCase):
self.assertEqual(t1, r2)
+ def testQQuaternion(self):
+ """Test return tuples."""
+ q = QQuaternion(1, 1, 1, 1)
+ self.assertEqual(len(q.getAxisAndAngle()), 2)
+ self.assertEqual(len(q.getEulerAngles()), 3)
+
if __name__ == "__main__":
unittest.main()
diff --git a/sources/pyside6/tests/QtGui/repr_test.py b/sources/pyside6/tests/QtGui/repr_test.py
index 29c5a9627..2858e7175 100644
--- a/sources/pyside6/tests/QtGui/repr_test.py
+++ b/sources/pyside6/tests/QtGui/repr_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtGui/timed_app_and_patching_test.py b/sources/pyside6/tests/QtGui/timed_app_and_patching_test.py
index 74a2ed58e..6e9a661ce 100644
--- a/sources/pyside6/tests/QtGui/timed_app_and_patching_test.py
+++ b/sources/pyside6/tests/QtGui/timed_app_and_patching_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -32,37 +7,20 @@ import unittest
from pathlib import Path
sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
-from init_paths import init_test_paths
+from init_paths import init_test_paths # noqa: E402
init_test_paths(False)
-from helper.timedqapplication import TimedQApplication
-from PySide6.support import deprecated
-from PySide6.support.signature import importhandler
-from PySide6 import QtGui
+from helper.timedqguiapplication import TimedQGuiApplication
-class TestTimedApp(TimedQApplication):
- '''Simple test case for TimedQApplication'''
+class TestTimedApp(TimedQGuiApplication):
+ '''Simple test case for TimedQGuiApplication'''
def testFoo(self):
- # Simple test of TimedQApplication
+ # Simple test of TimedQGuiApplication
self.app.exec()
-
-def fix_for_QtGui(QtGui):
- QtGui.something = 42
-
-
-class TestPatchingFramework(unittest.TestCase):
- """Simple test that verifies that deprecated.py works"""
-
- deprecated.fix_for_QtGui = fix_for_QtGui
-
- def test_patch_works(self):
- something = "something"
- self.assertFalse(hasattr(QtGui, something))
- importhandler.finish_import(QtGui)
- self.assertTrue(hasattr(QtGui, something))
+# deprecated.py is no longer needed.
if __name__ == '__main__':
diff --git a/sources/pyside6/tests/QtGui/xpm_data.py b/sources/pyside6/tests/QtGui/xpm_data.py
new file mode 100644
index 000000000..3603d8190
--- /dev/null
+++ b/sources/pyside6/tests/QtGui/xpm_data.py
@@ -0,0 +1,237 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+'''Test data for QImage'''
+
+
+xpm = [
+ "27 22 206 2",
+ " c None",
+ ". c #FEFEFE",
+ "+ c #FFFFFF",
+ "@ c #F9F9F9",
+ "# c #ECECEC",
+ "$ c #D5D5D5",
+ "% c #A0A0A0",
+ "& c #767676",
+ "* c #525252",
+ "= c #484848",
+ "- c #4E4E4E",
+ "; c #555555",
+ "> c #545454",
+ ", c #5A5A5A",
+ "' c #4B4B4B",
+ ") c #4A4A4A",
+ "! c #4F4F4F",
+ "~ c #585858",
+ "{ c #515151",
+ "] c #4C4C4C",
+ "^ c #B1B1B1",
+ "/ c #FCFCFC",
+ "( c #FDFDFD",
+ "_ c #C1C1C1",
+ ": c #848484",
+ "< c #616161",
+ "[ c #5E5E5E",
+ "} c #CECECE",
+ "| c #E2E2E2",
+ "1 c #E4E4E4",
+ "2 c #DFDFDF",
+ "3 c #D2D2D2",
+ "4 c #D8D8D8",
+ "5 c #D4D4D4",
+ "6 c #E6E6E6",
+ "7 c #F1F1F1",
+ "8 c #838383",
+ "9 c #8E8E8E",
+ "0 c #8F8F8F",
+ "a c #CBCBCB",
+ "b c #CCCCCC",
+ "c c #E9E9E9",
+ "d c #F2F2F2",
+ "e c #EDEDED",
+ "f c #B5B5B5",
+ "g c #A6A6A6",
+ "h c #ABABAB",
+ "i c #BBBBBB",
+ "j c #B0B0B0",
+ "k c #EAEAEA",
+ "l c #6C6C6C",
+ "m c #BCBCBC",
+ "n c #F5F5F5",
+ "o c #FAFAFA",
+ "p c #B6B6B6",
+ "q c #F3F3F3",
+ "r c #CFCFCF",
+ "s c #FBFBFB",
+ "t c #CDCDCD",
+ "u c #DDDDDD",
+ "v c #999999",
+ "w c #F0F0F0",
+ "x c #2B2B2B",
+ "y c #C3C3C3",
+ "z c #A4A4A4",
+ "A c #D7D7D7",
+ "B c #E7E7E7",
+ "C c #6E6E6E",
+ "D c #9D9D9D",
+ "E c #BABABA",
+ "F c #AEAEAE",
+ "G c #898989",
+ "H c #646464",
+ "I c #BDBDBD",
+ "J c #CACACA",
+ "K c #2A2A2A",
+ "L c #212121",
+ "M c #B7B7B7",
+ "N c #F4F4F4",
+ "O c #737373",
+ "P c #828282",
+ "Q c #4D4D4D",
+ "R c #000000",
+ "S c #151515",
+ "T c #B2B2B2",
+ "U c #D6D6D6",
+ "V c #D3D3D3",
+ "W c #2F2F2F",
+ "X c #636363",
+ "Y c #A1A1A1",
+ "Z c #BFBFBF",
+ "` c #E0E0E0",
+ " . c #6A6A6A",
+ ".. c #050505",
+ "+. c #A3A3A3",
+ "@. c #202020",
+ "#. c #5F5F5F",
+ "$. c #B9B9B9",
+ "%. c #C7C7C7",
+ "&. c #D0D0D0",
+ "*. c #3E3E3E",
+ "=. c #666666",
+ "-. c #DBDBDB",
+ ";. c #424242",
+ ">. c #C2C2C2",
+ ",. c #1A1A1A",
+ "'. c #2C2C2C",
+ "). c #F6F6F6",
+ "!. c #AAAAAA",
+ "~. c #DCDCDC",
+ "{. c #2D2D2D",
+ "]. c #2E2E2E",
+ "^. c #A7A7A7",
+ "/. c #656565",
+ "(. c #333333",
+ "_. c #464646",
+ ":. c #C4C4C4",
+ "<. c #B8B8B8",
+ "[. c #292929",
+ "}. c #979797",
+ "|. c #EFEFEF",
+ "1. c #909090",
+ "2. c #8A8A8A",
+ "3. c #575757",
+ "4. c #676767",
+ "5. c #C5C5C5",
+ "6. c #7A7A7A",
+ "7. c #797979",
+ "8. c #989898",
+ "9. c #EEEEEE",
+ "0. c #707070",
+ "a. c #C8C8C8",
+ "b. c #111111",
+ "c. c #AFAFAF",
+ "d. c #474747",
+ "e. c #565656",
+ "f. c #E3E3E3",
+ "g. c #494949",
+ "h. c #5B5B5B",
+ "i. c #222222",
+ "j. c #353535",
+ "k. c #D9D9D9",
+ "l. c #0A0A0A",
+ "m. c #858585",
+ "n. c #E5E5E5",
+ "o. c #0E0E0E",
+ "p. c #9A9A9A",
+ "q. c #6F6F6F",
+ "r. c #868686",
+ "s. c #060606",
+ "t. c #1E1E1E",
+ "u. c #E8E8E8",
+ "v. c #A5A5A5",
+ "w. c #0D0D0D",
+ "x. c #030303",
+ "y. c #272727",
+ "z. c #131313",
+ "A. c #1F1F1F",
+ "B. c #757575",
+ "C. c #F7F7F7",
+ "D. c #414141",
+ "E. c #080808",
+ "F. c #6B6B6B",
+ "G. c #313131",
+ "H. c #C0C0C0",
+ "I. c #C9C9C9",
+ "J. c #0B0B0B",
+ "K. c #232323",
+ "L. c #434343",
+ "M. c #3D3D3D",
+ "N. c #282828",
+ "O. c #7C7C7C",
+ "P. c #252525",
+ "Q. c #3A3A3A",
+ "R. c #F8F8F8",
+ "S. c #1B1B1B",
+ "T. c #949494",
+ "U. c #3B3B3B",
+ "V. c #242424",
+ "W. c #383838",
+ "X. c #6D6D6D",
+ "Y. c #818181",
+ "Z. c #939393",
+ "`. c #9E9E9E",
+ " + c #929292",
+ ".+ c #7D7D7D",
+ "++ c #ADADAD",
+ "@+ c #DADADA",
+ "#+ c #919191",
+ "$+ c #E1E1E1",
+ "%+ c #BEBEBE",
+ "&+ c #ACACAC",
+ "*+ c #9C9C9C",
+ "=+ c #B3B3B3",
+ "-+ c #808080",
+ ";+ c #A8A8A8",
+ ">+ c #393939",
+ ",+ c #747474",
+ "'+ c #7F7F7F",
+ ")+ c #D1D1D1",
+ "!+ c #606060",
+ "~+ c #5C5C5C",
+ "{+ c #686868",
+ "]+ c #7E7E7E",
+ "^+ c #787878",
+ "/+ c #595959",
+ ". . . + @ # $ % & * = - ; > , ' ) ! ~ { ] ^ / . . + + ",
+ ". ( + _ : < [ & } | 1 2 $ 3 4 5 3 6 7 + + 8 9 + . + . ",
+ ". + 0 9 a ( 3 a b c d e c f g h i g j $ k + l m + . + ",
+ "+ 2 8 n o p | ( q r s . # t + + + u ^ v e w + x + + + ",
+ "+ y z . @ A k B 7 n + ( s | p 8 C D 2 E 4 + + F G + . ",
+ "# H I $ J G K L - M N . 2 O P Q R R S T U s s V W j + ",
+ "X Y Z @ o ` _ g ...+.( 4 @.#.m G $.%.7 &.X *.=.-.;.&.",
+ "Q >.C ,.'.} e + ).!.k + . + + . ~.{.> ].x f 7 ^./.k (.",
+ "_.:.4 @ <.[.}.|.1.2.+ + + >.} 4 B + ( @ _ 3.4.5.6.r 7.",
+ "3.8.9.~ 0.+ a.Q b.+ + c.d.#.=.$ |.b #.e.z ^ ; ^. .f.g.",
+ "-.h.+ i.S M + # p j.% n 9.5.k.H l.m.V ^.n.o.M + M p.q.",
+ "7 r.N s.1.R t.<.|.| u.v.~ w.x.E + s y.z.A.B.C.+ 5 D.q ",
+ ").p.2 E.0.9 F.%.O {._ @.+ + i { [ i.G.H.P I.+ s q.} + ",
+ ").p.6 J.R b.K.L.M.A.! b.g.K [.R M k + N.I + + >.O.+ . ",
+ ").8.9.N.P...R R R R E.t.W n.+ Q.R.6 @.| + . + S.+ + . ",
+ "n }.w T.U.B.<.i.@ Y + + U.+ c u V.= B B 7 u.W.c + . + ",
+ "N T.# + }.X.Y.,.8.F.8 Z.[.`. +.+}.4 ++@+O.< ~.+ ( . + ",
+ "d #+1 + _ ~.u.$+b $.y @+| $+%+I.&+k.h W +.9.+ ( . + . ",
+ "w 0 |.*+. >.<.=+++++p a.p -+;+5.k.>+,+@ + . . + . + + ",
+ "q '+9.R.^ I.t b %.I.)+4 $+n.I.,+ .|.+ . . . + . + + + ",
+ ". p !+( + + + + + + E 0. .-+8.f.+ + . . + + . + + + + ",
+ ". ( A ~+{+]+^+l > /+D f.c q . + . . + + . + + + + + + "
+]
diff --git a/sources/pyside6/tests/QtHelp/QtHelp.pyproject b/sources/pyside6/tests/QtHelp/QtHelp.pyproject
new file mode 100644
index 000000000..939dca5ba
--- /dev/null
+++ b/sources/pyside6/tests/QtHelp/QtHelp.pyproject
@@ -0,0 +1,4 @@
+{
+ "files": ["help_test.py",
+ "helpsearchengine_test.py"]
+}
diff --git a/sources/pyside6/tests/QtHelp/help_test.py b/sources/pyside6/tests/QtHelp/help_test.py
index 30535a842..4ded7763c 100644
--- a/sources/pyside6/tests/QtHelp/help_test.py
+++ b/sources/pyside6/tests/QtHelp/help_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtHelp/helpsearchengine_test.py b/sources/pyside6/tests/QtHelp/helpsearchengine_test.py
index 2cd49314c..b25e643f6 100644
--- a/sources/pyside6/tests/QtHelp/helpsearchengine_test.py
+++ b/sources/pyside6/tests/QtHelp/helpsearchengine_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtHttpServer/CMakeLists.txt b/sources/pyside6/tests/QtHttpServer/CMakeLists.txt
new file mode 100644
index 000000000..2f7cb08b9
--- /dev/null
+++ b/sources/pyside6/tests/QtHttpServer/CMakeLists.txt
@@ -0,0 +1 @@
+# Please add some tests, here
diff --git a/sources/pyside6/tests/QtLocation/QtLocation.pyproject b/sources/pyside6/tests/QtLocation/QtLocation.pyproject
new file mode 100644
index 000000000..6ca661a96
--- /dev/null
+++ b/sources/pyside6/tests/QtLocation/QtLocation.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["location.py"]
+}
diff --git a/sources/pyside6/tests/QtLocation/location.py b/sources/pyside6/tests/QtLocation/location.py
index 3bc80f5a3..8fbd55f02 100644
--- a/sources/pyside6/tests/QtLocation/location.py
+++ b/sources/pyside6/tests/QtLocation/location.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Unit test for Location'''
diff --git a/sources/pyside6/tests/QtMultimedia/QtMultimedia.pyproject b/sources/pyside6/tests/QtMultimedia/QtMultimedia.pyproject
new file mode 100644
index 000000000..622ceea3c
--- /dev/null
+++ b/sources/pyside6/tests/QtMultimedia/QtMultimedia.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["audio_test.py"]
+}
diff --git a/sources/pyside6/tests/QtMultimedia/audio_test.py b/sources/pyside6/tests/QtMultimedia/audio_test.py
index a02eeeaa3..af359e525 100644
--- a/sources/pyside6/tests/QtMultimedia/audio_test.py
+++ b/sources/pyside6/tests/QtMultimedia/audio_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QHttp'''
@@ -37,26 +12,27 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from helper.usesqguiapplication import UsesQGuiApplication
-from PySide6.QtMultimedia import QAudioDevice, QAudioFormat, QMediaDevices
+from helper.usesqapplication import UsesQApplication
+from PySide6.QtCore import QByteArray
+from PySide6.QtMultimedia import QAudioBuffer, QAudioFormat, QMediaDevices
-class testAudioDevices(UsesQGuiApplication):
+class testAudioDevices(UsesQApplication):
- def testListDevices(self):
- valid = False
- devices = QMediaDevices.audioOutputs()
- if not len(devices):
+ def setUp(self):
+ super().setUp()
+ self._devices = []
+ for d in QMediaDevices.audioOutputs():
+ if d:
+ self._devices.append(d)
+
+ def test_list_devices(self):
+ if not self._devices:
+ print("No audio outputs found")
return
- valid = True
- for dev_info in devices:
- if dev_info.id() == 'null':
- # skip the test if the only device found is a invalid device
- if len(devices) == 1:
- return
- else:
- continue
+ for dev_info in self._devices:
+ print("Testing ", dev_info.id())
fmt = QAudioFormat()
for sample_format in dev_info.supportedSampleFormats():
fmt.setSampleFormat(sample_format)
@@ -64,6 +40,19 @@ class testAudioDevices(UsesQGuiApplication):
fmt.setSampleRate(dev_info.maximumSampleRate())
self.assertTrue(dev_info.isFormatSupported(fmt))
+ def test_audiobuffer(self):
+ """PYSIDE-1947: Test QAudioBuffer.data()."""
+ if not self._devices:
+ print("No audio outputs found")
+ return
+ size = 256
+ byte_array = QByteArray(size, '7')
+ buffer = QAudioBuffer(byte_array, self._devices[0].preferredFormat())
+ self.assertEqual(buffer.byteCount(), 256)
+ data = buffer.data()
+ actual_byte_array = QByteArray(bytearray(data))
+ self.assertEqual(byte_array, actual_byte_array)
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/pyside6/tests/QtMultimediaWidgets/QtMultimediaWidgets.pyproject b/sources/pyside6/tests/QtMultimediaWidgets/QtMultimediaWidgets.pyproject
new file mode 100644
index 000000000..6627af561
--- /dev/null
+++ b/sources/pyside6/tests/QtMultimediaWidgets/QtMultimediaWidgets.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["qmultimediawidgets.py"]
+}
diff --git a/sources/pyside6/tests/QtMultimediaWidgets/qmultimediawidgets.py b/sources/pyside6/tests/QtMultimediaWidgets/qmultimediawidgets.py
index 2bb0673fb..968558a13 100644
--- a/sources/pyside6/tests/QtMultimediaWidgets/qmultimediawidgets.py
+++ b/sources/pyside6/tests/QtMultimediaWidgets/qmultimediawidgets.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QtMultimediaWidgets'''
diff --git a/sources/pyside6/tests/QtNetwork/CMakeLists.txt b/sources/pyside6/tests/QtNetwork/CMakeLists.txt
index dd1d7c85d..bff3580a8 100644
--- a/sources/pyside6/tests/QtNetwork/CMakeLists.txt
+++ b/sources/pyside6/tests/QtNetwork/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
PYSIDE_TEST(bug_446.py)
PYSIDE_TEST(bug_1084.py)
PYSIDE_TEST(accessManager_test.py)
diff --git a/sources/pyside6/tests/QtNetwork/QtNetwork.pyproject b/sources/pyside6/tests/QtNetwork/QtNetwork.pyproject
new file mode 100644
index 000000000..0ba3f5947
--- /dev/null
+++ b/sources/pyside6/tests/QtNetwork/QtNetwork.pyproject
@@ -0,0 +1,11 @@
+{
+ "files": ["accessManager_test.py",
+ "bug_1084.py",
+ "bug_446.py",
+ "dnslookup_test.py",
+ "qhostinfo_test.py",
+ "qipv6address_test.py",
+ "qpassworddigestor_test.py",
+ "tcpserver_test.py",
+ "udpsocket_test.py"]
+}
diff --git a/sources/pyside6/tests/QtNetwork/accessManager_test.py b/sources/pyside6/tests/QtNetwork/accessManager_test.py
index bb4fe33b0..87711b278 100644
--- a/sources/pyside6/tests/QtNetwork/accessManager_test.py
+++ b/sources/pyside6/tests/QtNetwork/accessManager_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QHttp'''
@@ -39,11 +14,11 @@ init_test_paths(False)
from PySide6.QtCore import QUrl
from PySide6.QtNetwork import QNetworkAccessManager, QNetworkReply, QNetworkRequest
-from helper.usesqcoreapplication import UsesQCoreApplication
+from helper.usesqapplication import UsesQApplication
from httpd import TestServer
-class AccessManagerCase(UsesQCoreApplication):
+class AccessManagerCase(UsesQApplication):
def setUp(self):
super(AccessManagerCase, self).setUp()
diff --git a/sources/pyside6/tests/QtNetwork/bug_1084.py b/sources/pyside6/tests/QtNetwork/bug_1084.py
index d254313a8..515220c80 100644
--- a/sources/pyside6/tests/QtNetwork/bug_1084.py
+++ b/sources/pyside6/tests/QtNetwork/bug_1084.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
''' unit test for BUG #1084 '''
diff --git a/sources/pyside6/tests/QtNetwork/bug_446.py b/sources/pyside6/tests/QtNetwork/bug_446.py
index eb8ab7a4a..f28ddb369 100644
--- a/sources/pyside6/tests/QtNetwork/bug_446.py
+++ b/sources/pyside6/tests/QtNetwork/bug_446.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -36,10 +11,10 @@ from init_paths import init_test_paths
init_test_paths(False)
from PySide6.QtNetwork import QHostAddress, QTcpServer, QTcpSocket
-from helper.usesqcoreapplication import UsesQCoreApplication
+from helper.usesqapplication import UsesQApplication
-class HttpSignalsCase(UsesQCoreApplication):
+class HttpSignalsCase(UsesQApplication):
'''Test case for launching QHttp signals'''
DATA = bytes("PySide rocks", "UTF-8")
diff --git a/sources/pyside6/tests/QtNetwork/dnslookup_test.py b/sources/pyside6/tests/QtNetwork/dnslookup_test.py
index 21a128c75..c50a6b5d4 100644
--- a/sources/pyside6/tests/QtNetwork/dnslookup_test.py
+++ b/sources/pyside6/tests/QtNetwork/dnslookup_test.py
@@ -1,33 +1,9 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QDnsLookup'''
+import gc
import os
import sys
import unittest
@@ -51,6 +27,8 @@ class DnsLookupTestCase(unittest.TestCase):
def tearDown(self):
del self._lookup
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
def _finished(self):
if self._lookup.error() == QDnsLookup.NoError:
diff --git a/sources/pyside6/tests/QtNetwork/qhostinfo_test.py b/sources/pyside6/tests/QtNetwork/qhostinfo_test.py
index d32d8c9b0..8d8d2cae4 100644
--- a/sources/pyside6/tests/QtNetwork/qhostinfo_test.py
+++ b/sources/pyside6/tests/QtNetwork/qhostinfo_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test case for QHostInfo.'''
@@ -37,7 +12,7 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from helper.usesqcoreapplication import UsesQCoreApplication
+from helper.usesqapplication import UsesQApplication
from PySide6.QtCore import (QCoreApplication, QElapsedTimer, QObject, QThread,
Slot, SLOT)
from PySide6.QtNetwork import QHostInfo
@@ -70,10 +45,10 @@ class Receiver(QObject):
self._slot_called = True
-class QHostInfoTest(UsesQCoreApplication):
+class QHostInfoTest(UsesQApplication):
'''Test case for QHostInfo.'''
def setUp(self):
- UsesQCoreApplication.setUp(self)
+ UsesQApplication.setUp(self)
self._timer = QElapsedTimer()
def testStringBasedLookup(self):
diff --git a/sources/pyside6/tests/QtNetwork/qipv6address_test.py b/sources/pyside6/tests/QtNetwork/qipv6address_test.py
index 206e7e387..67b103d3c 100644
--- a/sources/pyside6/tests/QtNetwork/qipv6address_test.py
+++ b/sources/pyside6/tests/QtNetwork/qipv6address_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QIPv6Address'''
diff --git a/sources/pyside6/tests/QtNetwork/qpassworddigestor_test.py b/sources/pyside6/tests/QtNetwork/qpassworddigestor_test.py
index 9e8dbe768..db7a90da9 100644
--- a/sources/pyside6/tests/QtNetwork/qpassworddigestor_test.py
+++ b/sources/pyside6/tests/QtNetwork/qpassworddigestor_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QPasswordDigestor'''
diff --git a/sources/pyside6/tests/QtNetwork/tcpserver_test.py b/sources/pyside6/tests/QtNetwork/tcpserver_test.py
index 83eec5660..845afdfae 100644
--- a/sources/pyside6/tests/QtNetwork/tcpserver_test.py
+++ b/sources/pyside6/tests/QtNetwork/tcpserver_test.py
@@ -1,33 +1,9 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QTCPServer'''
+import gc
import os
import sys
import unittest
@@ -50,6 +26,8 @@ class ListenDefaultArgsCase(unittest.TestCase):
def tearDown(self):
# Release resources
del self.server
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
def testDefaultArgs(self):
# @bug 108
diff --git a/sources/pyside6/tests/QtNetwork/udpsocket_test.py b/sources/pyside6/tests/QtNetwork/udpsocket_test.py
index 630577ab6..950849801 100644
--- a/sources/pyside6/tests/QtNetwork/udpsocket_test.py
+++ b/sources/pyside6/tests/QtNetwork/udpsocket_test.py
@@ -1,33 +1,9 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QUdpSocket'''
+import gc
import os
import sys
import unittest
@@ -62,6 +38,8 @@ class HttpSignalsCase(unittest.TestCase):
del self.socket
del self.server
del self.app
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
def sendPackage(self):
addr = QHostAddress(QHostAddress.LocalHost)
diff --git a/sources/pyside6/tests/QtNfc/CMakeLists.txt b/sources/pyside6/tests/QtNfc/CMakeLists.txt
new file mode 100644
index 000000000..fafa0b76b
--- /dev/null
+++ b/sources/pyside6/tests/QtNfc/CMakeLists.txt
@@ -0,0 +1 @@
+PYSIDE_TEST(test_nfc.py)
diff --git a/sources/pyside6/tests/QtNfc/QtNfc.pyproject b/sources/pyside6/tests/QtNfc/QtNfc.pyproject
new file mode 100644
index 000000000..680de8ea2
--- /dev/null
+++ b/sources/pyside6/tests/QtNfc/QtNfc.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["test_nfc.py"]
+}
diff --git a/sources/pyside6/tests/QtNfc/test_nfc.py b/sources/pyside6/tests/QtNfc/test_nfc.py
new file mode 100644
index 000000000..a73c52153
--- /dev/null
+++ b/sources/pyside6/tests/QtNfc/test_nfc.py
@@ -0,0 +1,29 @@
+#!/usr/bin/python
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+'''Test cases for QtNfc'''
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from PySide6.QtNfc import QNearFieldManager
+
+from helper.usesqapplication import UsesQApplication
+
+
+class TestNfc(UsesQApplication):
+
+ def test(self):
+ manager = QNearFieldManager()
+ print(manager.isEnabled())
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/QtOpenGL/QtOpenGL.pyproject b/sources/pyside6/tests/QtOpenGL/QtOpenGL.pyproject
new file mode 100644
index 000000000..9a19a32b6
--- /dev/null
+++ b/sources/pyside6/tests/QtOpenGL/QtOpenGL.pyproject
@@ -0,0 +1,4 @@
+{
+ "files": ["qopenglbuffer_test.py",
+ "qopenglwindow_test.py"]
+}
diff --git a/sources/pyside6/tests/QtOpenGL/qopenglbuffer_test.py b/sources/pyside6/tests/QtOpenGL/qopenglbuffer_test.py
index 98e0a4991..e4ff6feb4 100644
--- a/sources/pyside6/tests/QtOpenGL/qopenglbuffer_test.py
+++ b/sources/pyside6/tests/QtOpenGL/qopenglbuffer_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Unit tests for QOpenGLBuffer'''
diff --git a/sources/pyside6/tests/QtOpenGL/qopenglwindow_test.py b/sources/pyside6/tests/QtOpenGL/qopenglwindow_test.py
index 61367286d..3e6bc4c9d 100644
--- a/sources/pyside6/tests/QtOpenGL/qopenglwindow_test.py
+++ b/sources/pyside6/tests/QtOpenGL/qopenglwindow_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Unit test for QOpenGLContext, QOpenGLTexture, QOpenGLWindow and related classes'''
@@ -41,14 +16,15 @@ from helper.usesqapplication import UsesQApplication
from PySide6.QtCore import QSize, QTimer, Qt
from PySide6.QtGui import (QColor, QGuiApplication, QImage, QOpenGLContext,
- QSurfaceFormat)
-from PySide6.QtOpenGL import (QOpenGLTexture, QOpenGLWindow)
+ QSurfaceFormat)
+from PySide6.QtOpenGL import QOpenGLTexture, QOpenGLWindow
try:
from OpenGL import GL
+ from PySide6.QtOpenGL import QOpenGLVersionProfile, QOpenGLVersionFunctionsFactory
except ImportError:
- print("Skipping test due to missing OpenGL module")
+ print("Skipping test due to missing OpenGL module/GLES only build")
sys.exit(0)
@@ -66,35 +42,40 @@ class OpenGLWindow(QOpenGLWindow):
self.context().doneCurrent()
def initializeGL(self):
- self.m_functions = self.context().functions()
+ profile = QOpenGLVersionProfile()
+ profile.setVersion(1, 3)
+ profile.setProfile(QSurfaceFormat.CompatibilityProfile)
+ self.m_functions = QOpenGLVersionFunctionsFactory.get(profile)
self.m_functions.initializeOpenGLFunctions()
+
+ print("GL_MAX_LIGHTS=", self.m_functions.glGetIntegerv(GL.GL_MAX_LIGHTS))
image = QImage(QSize(200, 200), QImage.Format_RGBA8888)
image.fill(QColor(Qt.red))
self.m_texture = QOpenGLTexture(image)
def paintGL(self):
- GL.glMatrixMode(GL.GL_MODELVIEW)
- GL.glLoadIdentity()
+ self.m_functions.glMatrixMode(GL.GL_MODELVIEW)
+ self.m_functions.glLoadIdentity()
- GL.glMatrixMode(GL.GL_PROJECTION)
- GL.glLoadIdentity()
- GL.glOrtho(0, 1, 1, 0, -1, 1)
+ self.m_functions.glMatrixMode(GL.GL_PROJECTION)
+ self.m_functions.glLoadIdentity()
+ self.m_functions.glOrtho(0, 1, 1, 0, -1, 1)
self.m_functions.glClear(GL.GL_COLOR_BUFFER_BIT)
self.m_functions.glEnable(GL.GL_TEXTURE_2D)
self.m_texture.bind()
d = 0.5
- GL.glBegin(GL.GL_QUADS)
- GL.glTexCoord2f(0, 0)
- GL.glVertex2f(0, 0)
- GL.glTexCoord2f(d, 0)
- GL.glVertex2f(d, 0)
- GL.glTexCoord2f(d, d)
- GL.glVertex2f(d, d)
- GL.glTexCoord2f(0, d)
- GL.glVertex2f(0, d)
- GL.glEnd()
+ self.m_functions.glBegin(GL.GL_QUADS)
+ self.m_functions.glTexCoord2f(0, 0)
+ self.m_functions.glVertex2f(0, 0)
+ self.m_functions.glTexCoord2f(d, 0)
+ self.m_functions.glVertex2f(d, 0)
+ self.m_functions.glTexCoord2f(d, d)
+ self.m_functions.glVertex2f(d, d)
+ self.m_functions.glTexCoord2f(0, d)
+ self.m_functions.glVertex2f(0, d)
+ self.m_functions.glEnd()
self.m_texture.release()
def resizeGL(self, w, h):
diff --git a/sources/pyside6/tests/QtPdf/CMakeLists.txt b/sources/pyside6/tests/QtPdf/CMakeLists.txt
new file mode 100644
index 000000000..2f7cb08b9
--- /dev/null
+++ b/sources/pyside6/tests/QtPdf/CMakeLists.txt
@@ -0,0 +1 @@
+# Please add some tests, here
diff --git a/sources/pyside6/tests/QtPdfWidgets/CMakeLists.txt b/sources/pyside6/tests/QtPdfWidgets/CMakeLists.txt
new file mode 100644
index 000000000..2f7cb08b9
--- /dev/null
+++ b/sources/pyside6/tests/QtPdfWidgets/CMakeLists.txt
@@ -0,0 +1 @@
+# Please add some tests, here
diff --git a/sources/pyside6/tests/QtPositioning/QtPositioning.pyproject b/sources/pyside6/tests/QtPositioning/QtPositioning.pyproject
new file mode 100644
index 000000000..e90ccd8a2
--- /dev/null
+++ b/sources/pyside6/tests/QtPositioning/QtPositioning.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["positioning.py"]
+}
diff --git a/sources/pyside6/tests/QtPositioning/positioning.py b/sources/pyside6/tests/QtPositioning/positioning.py
index 9ac066c35..d8e670247 100644
--- a/sources/pyside6/tests/QtPositioning/positioning.py
+++ b/sources/pyside6/tests/QtPositioning/positioning.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Unit test for Positioning'''
diff --git a/sources/pyside6/tests/QtPrintSupport/QtPrintSupport.pyproject b/sources/pyside6/tests/QtPrintSupport/QtPrintSupport.pyproject
new file mode 100644
index 000000000..dbc9641d7
--- /dev/null
+++ b/sources/pyside6/tests/QtPrintSupport/QtPrintSupport.pyproject
@@ -0,0 +1,4 @@
+{
+ "files": ["bug_500.py",
+ "returnquadruplesofnumbers_test.py"]
+}
diff --git a/sources/pyside6/tests/QtPrintSupport/bug_500.py b/sources/pyside6/tests/QtPrintSupport/bug_500.py
index 0e686854d..1ba5b35e2 100644
--- a/sources/pyside6/tests/QtPrintSupport/bug_500.py
+++ b/sources/pyside6/tests/QtPrintSupport/bug_500.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtPrintSupport/returnquadruplesofnumbers_test.py b/sources/pyside6/tests/QtPrintSupport/returnquadruplesofnumbers_test.py
index b96376cde..97b3505da 100644
--- a/sources/pyside6/tests/QtPrintSupport/returnquadruplesofnumbers_test.py
+++ b/sources/pyside6/tests/QtPrintSupport/returnquadruplesofnumbers_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtQml/CMakeLists.txt b/sources/pyside6/tests/QtQml/CMakeLists.txt
index e35831f25..720f0ef99 100644
--- a/sources/pyside6/tests/QtQml/CMakeLists.txt
+++ b/sources/pyside6/tests/QtQml/CMakeLists.txt
@@ -1,8 +1,12 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
PYSIDE_TEST(bug_451.py)
PYSIDE_TEST(bug_456.py)
PYSIDE_TEST(bug_557.py)
PYSIDE_TEST(bug_726.py)
PYSIDE_TEST(bug_814.py)
+PYSIDE_TEST(bug_825_old.py)
PYSIDE_TEST(bug_825.py)
PYSIDE_TEST(bug_847.py)
PYSIDE_TEST(bug_915.py)
@@ -11,11 +15,19 @@ PYSIDE_TEST(bug_951.py)
PYSIDE_TEST(bug_995.py)
PYSIDE_TEST(bug_997.py)
PYSIDE_TEST(bug_1029.py)
+PYSIDE_TEST(groupedproperty.py)
PYSIDE_TEST(listproperty.py)
+PYSIDE_TEST(qqmlapplicationengine_test.py)
PYSIDE_TEST(qqmlnetwork_test.py)
+PYSIDE_TEST(qqmlcomponent_test.py)
PYSIDE_TEST(qquickview_test.py)
PYSIDE_TEST(connect_python_qml.py)
+PYSIDE_TEST(registerattached.py)
+PYSIDE_TEST(registerextended.py)
+PYSIDE_TEST(registerparserstatus.py)
PYSIDE_TEST(registertype.py)
+PYSIDE_TEST(registerforeign.py)
+PYSIDE_TEST(registerqmlfile.py)
PYSIDE_TEST(registeruncreatabletype.py)
PYSIDE_TEST(registersingletontype.py)
PYSIDE_TEST(javascript_exceptions.py)
diff --git a/sources/pyside6/tests/QtQml/ModuleType.qml b/sources/pyside6/tests/QtQml/ModuleType.qml
new file mode 100644
index 000000000..d7e5e653c
--- /dev/null
+++ b/sources/pyside6/tests/QtQml/ModuleType.qml
@@ -0,0 +1,8 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import QtQml
+
+QtObject {
+ objectName: "moduleType"
+}
diff --git a/sources/pyside6/tests/QtQml/QtQml.pyproject b/sources/pyside6/tests/QtQml/QtQml.pyproject
new file mode 100644
index 000000000..5a05c71a1
--- /dev/null
+++ b/sources/pyside6/tests/QtQml/QtQml.pyproject
@@ -0,0 +1,65 @@
+{
+ "files": ["ModuleType.qml",
+ "bug_1029.py",
+ "bug_1029.qml",
+ "bug_451.py",
+ "bug_451.qml",
+ "bug_456.py",
+ "bug_456.qml",
+ "bug_557.py",
+ "bug_726.py",
+ "bug_726.qml",
+ "bug_814.py",
+ "bug_814.qml",
+ "bug_825.py",
+ "bug_825.qml",
+ "bug_847.py",
+ "bug_847.qml",
+ "bug_915.py",
+ "bug_926.py",
+ "bug_926.qml",
+ "bug_951.py",
+ "bug_951.qml",
+ "bug_995.py",
+ "bug_995.qml",
+ "bug_997.py",
+ "bug_997.qml",
+ "connect_python_qml.py",
+ "connect_python_qml.qml",
+ "groupedproperty.py",
+ "groupedproperty.qml",
+ "hw.qml",
+ "javascript_exceptions.py",
+ "javascript_exceptions.qml",
+ "listproperty.py",
+ "qqmlapplicationengine.qml",
+ "qqmlapplicationengine_test.py",
+ "qqmlincubator_incubateWhile.py",
+ "qqmlincubator_incubateWhile.qml",
+ "qqmlincubator_incubateWhile_component.qml",
+ "qqmlnetwork_test.py",
+ "qquickitem_grabToImage.py",
+ "qquickitem_grabToImage.qml",
+ "qquickview_test.py",
+ "registerattached.py",
+ "registerattached.qml",
+ "registerextended.py",
+ "registerextended.qml",
+ "registerforeign.py",
+ "registerforeign.qml",
+ "registerparserstatus.py",
+ "registerparserstatus.qml",
+ "registerqmlfile.py",
+ "registersingletontype.py",
+ "registersingletontype.qml",
+ "registertype.py",
+ "registertype.qml",
+ "registeruncreatable.qml",
+ "registeruncreatabletype.py",
+ "signal_arguments.py",
+ "signal_arguments.qml",
+ "signal_types.py",
+ "signal_types.qml",
+ "view.qml",
+ "viewmodel.qml"]
+}
diff --git a/sources/pyside6/tests/QtQml/bug_1029.py b/sources/pyside6/tests/QtQml/bug_1029.py
index c46df7736..69ca5c18d 100644
--- a/sources/pyside6/tests/QtQml/bug_1029.py
+++ b/sources/pyside6/tests/QtQml/bug_1029.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import gc
import os
diff --git a/sources/pyside6/tests/QtQml/bug_1029.qml b/sources/pyside6/tests/QtQml/bug_1029.qml
index 000a7568b..e4e95f865 100644
--- a/sources/pyside6/tests/QtQml/bug_1029.qml
+++ b/sources/pyside6/tests/QtQml/bug_1029.qml
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.0
import UserTypes 1.0
diff --git a/sources/pyside6/tests/QtQml/bug_451.py b/sources/pyside6/tests/QtQml/bug_451.py
index ec157296e..d81a99d94 100644
--- a/sources/pyside6/tests/QtQml/bug_451.py
+++ b/sources/pyside6/tests/QtQml/bug_451.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''
Test bug 451: http://bugs.openbossa.org/show_bug.cgi?id=451
@@ -53,6 +28,7 @@ from PySide6.QtQml import QmlElement
QML_IMPORT_NAME = "test.PythonObject"
QML_IMPORT_MAJOR_VERSION = 1
+
@QmlElement
class PythonObject(QObject):
def __init__(self):
diff --git a/sources/pyside6/tests/QtQml/bug_451.qml b/sources/pyside6/tests/QtQml/bug_451.qml
index 77d6c5a13..0867b861f 100644
--- a/sources/pyside6/tests/QtQml/bug_451.qml
+++ b/sources/pyside6/tests/QtQml/bug_451.qml
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.0
import test.PythonObject 1.0
diff --git a/sources/pyside6/tests/QtQml/bug_456.py b/sources/pyside6/tests/QtQml/bug_456.py
index 92d2dcb79..7743ee3fd 100644
--- a/sources/pyside6/tests/QtQml/bug_456.py
+++ b/sources/pyside6/tests/QtQml/bug_456.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -36,7 +11,7 @@ from init_paths import init_test_paths
init_test_paths(False)
from helper.helper import quickview_errorstring
-from helper.timedqapplication import TimedQApplication
+from helper.timedqguiapplication import TimedQGuiApplication
from PySide6.QtCore import QObject, QTimer, QUrl, Property, Slot
from PySide6.QtQuick import QQuickView
from PySide6.QtQml import QmlElement
@@ -44,6 +19,7 @@ from PySide6.QtQml import QmlElement
QML_IMPORT_NAME = "test.RotateValue"
QML_IMPORT_MAJOR_VERSION = 1
+
@QmlElement
class RotateValue(QObject):
def __init__(self):
@@ -62,7 +38,7 @@ class RotateValue(QObject):
rotation = Property(int, getRotation, setRotation)
-class TestConnectionWithInvalidSignature(TimedQApplication):
+class TestConnectionWithInvalidSignature(TimedQGuiApplication):
def testSlotRetur(self):
view = QQuickView()
diff --git a/sources/pyside6/tests/QtQml/bug_456.qml b/sources/pyside6/tests/QtQml/bug_456.qml
index d8afc56c9..092cca325 100644
--- a/sources/pyside6/tests/QtQml/bug_456.qml
+++ b/sources/pyside6/tests/QtQml/bug_456.qml
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.0
import test.RotateValue 1.0
diff --git a/sources/pyside6/tests/QtQml/bug_557.py b/sources/pyside6/tests/QtQml/bug_557.py
index 17f9582e6..eb43973f6 100644
--- a/sources/pyside6/tests/QtQml/bug_557.py
+++ b/sources/pyside6/tests/QtQml/bug_557.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -48,6 +23,6 @@ component = QQmlComponent(engine)
# This should segfault if the QDeclarativeComponent has not QQmlEngine
file = Path(__file__).resolve().parent / 'foo.qml'
-assert(not file.is_file())
+assert (not file.is_file())
component.loadUrl(QUrl.fromLocalFile(file))
diff --git a/sources/pyside6/tests/QtQml/bug_726.py b/sources/pyside6/tests/QtQml/bug_726.py
index d94e9b086..56c1e70f1 100644
--- a/sources/pyside6/tests/QtQml/bug_726.py
+++ b/sources/pyside6/tests/QtQml/bug_726.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -36,13 +11,15 @@ from init_paths import init_test_paths
init_test_paths(False)
from helper.helper import quickview_errorstring
-from helper.timedqapplication import TimedQApplication
+from helper.timedqguiapplication import TimedQGuiApplication
from PySide6.QtCore import QObject, QUrl, Slot
from PySide6.QtQuick import QQuickView
from PySide6.QtQml import QmlElement
QML_IMPORT_NAME = "test.ProxyObject"
QML_IMPORT_MAJOR_VERSION = 1
+
+
@QmlElement
class ProxyObject(QObject):
def __init__(self):
@@ -64,7 +41,7 @@ class ProxyObject(QObject):
self._receivedName = name
-class TestConnectionWithInvalidSignature(TimedQApplication):
+class TestConnectionWithInvalidSignature(TimedQGuiApplication):
def testSlotRetur(self):
view = QQuickView()
diff --git a/sources/pyside6/tests/QtQml/bug_726.qml b/sources/pyside6/tests/QtQml/bug_726.qml
index aaca1a442..f80c9cdda 100644
--- a/sources/pyside6/tests/QtQml/bug_726.qml
+++ b/sources/pyside6/tests/QtQml/bug_726.qml
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.0
import test.ProxyObject 1.0
diff --git a/sources/pyside6/tests/QtQml/bug_814.py b/sources/pyside6/tests/QtQml/bug_814.py
index 599a95e87..0e7858b6c 100644
--- a/sources/pyside6/tests/QtQml/bug_814.py
+++ b/sources/pyside6/tests/QtQml/bug_814.py
@@ -1,34 +1,7 @@
#!/usr/bin/python
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Copyright (C) 2011 Thomas Perl <m@thp.io>
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# Copyright (C) 2011 Thomas Perl <m@thp.io>
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
# Test case for PySide bug 814
# http://bugs.pyside.org/show_bug.cgi?id=814
@@ -47,7 +20,7 @@ from init_paths import init_test_paths
init_test_paths(False)
from helper.helper import quickview_errorstring
-from helper.timedqapplication import TimedQApplication
+from helper.timedqguiapplication import TimedQGuiApplication
from PySide6.QtCore import QUrl, QAbstractListModel, QModelIndex, Qt
from PySide6.QtQuick import QQuickView
@@ -56,13 +29,14 @@ from PySide6.QtQml import QmlElement
QML_IMPORT_NAME = "test.ListModel"
QML_IMPORT_MAJOR_VERSION = 1
+
@QmlElement
class ListModel(QAbstractListModel):
def __init__(self):
super().__init__()
def roleNames(self):
- return { Qt.DisplayRole: b'pysideModelData' }
+ return {Qt.DisplayRole: b'pysideModelData'}
def rowCount(self, parent=QModelIndex()):
return 3
@@ -73,7 +47,7 @@ class ListModel(QAbstractListModel):
return None
-class TestBug814(TimedQApplication):
+class TestBug814(TimedQGuiApplication):
def testAbstractItemModelTransferToQML(self):
view = QQuickView()
model = ListModel()
diff --git a/sources/pyside6/tests/QtQml/bug_814.qml b/sources/pyside6/tests/QtQml/bug_814.qml
index 2da245a6b..4331e424f 100644
--- a/sources/pyside6/tests/QtQml/bug_814.qml
+++ b/sources/pyside6/tests/QtQml/bug_814.qml
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.0
import test.ListModel 1.0
diff --git a/sources/pyside6/tests/QtQml/bug_825.py b/sources/pyside6/tests/QtQml/bug_825.py
index 936cbd82b..a8bd304ec 100644
--- a/sources/pyside6/tests/QtQml/bug_825.py
+++ b/sources/pyside6/tests/QtQml/bug_825.py
@@ -1,30 +1,10 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+"""
+This is the corrected version for Python 3.
+Unfortunately, this touches a Python 3.8 error that was fixed late.
+"""
import os
import sys
@@ -50,8 +30,8 @@ class MetaA(type):
pass
-class A(object):
- __metaclass__ = MetaA
+class A(object, metaclass=MetaA):
+ pass
MetaB = type(QQuickPaintedItem)
@@ -62,8 +42,8 @@ class MetaC(MetaA, MetaB):
pass
-class C(A, B):
- __metaclass__ = MetaC
+class C(A, B, metaclass=MetaC):
+ pass
class Bug825 (C):
diff --git a/sources/pyside6/tests/QtQml/bug_825.qml b/sources/pyside6/tests/QtQml/bug_825.qml
index 6ae06d5b8..77c6b5014 100644
--- a/sources/pyside6/tests/QtQml/bug_825.qml
+++ b/sources/pyside6/tests/QtQml/bug_825.qml
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.0
import bugs 1.0
diff --git a/sources/pyside6/tests/QtQml/bug_825_old.py b/sources/pyside6/tests/QtQml/bug_825_old.py
new file mode 100644
index 000000000..c44fa75f4
--- /dev/null
+++ b/sources/pyside6/tests/QtQml/bug_825_old.py
@@ -0,0 +1,80 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+"""
+This is the now incorrect old version from Python 2.
+It happens to work in another way and will be retained.
+"""
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from helper.helper import quickview_errorstring
+
+from PySide6.QtCore import Qt, QUrl, QTimer
+from PySide6.QtGui import QGuiApplication, QPen
+from PySide6.QtWidgets import QGraphicsItem
+from PySide6.QtQml import qmlRegisterType
+from PySide6.QtQuick import QQuickView, QQuickItem, QQuickPaintedItem
+
+paintCalled = False
+
+
+class MetaA(type):
+ pass
+
+
+class A(object):
+ __metaclass__ = MetaA
+
+
+MetaB = type(QQuickPaintedItem)
+B = QQuickPaintedItem
+
+
+class MetaC(MetaA, MetaB):
+ pass
+
+
+class C(A, B):
+ __metaclass__ = MetaC
+
+
+class Bug825 (C):
+ def __init__(self, parent=None):
+ QQuickPaintedItem.__init__(self, parent)
+
+ def paint(self, painter):
+ global paintCalled
+ pen = QPen(Qt.black, 2)
+ painter.setPen(pen)
+ painter.drawPie(self.boundingRect(), 0, 128)
+ paintCalled = True
+
+
+class TestBug825 (unittest.TestCase):
+ def testIt(self):
+ global paintCalled
+ app = QGuiApplication([])
+ qmlRegisterType(Bug825, 'bugs', 1, 0, 'Bug825')
+ self.assertRaises(TypeError, qmlRegisterType, A, 'bugs', 1, 0, 'A')
+
+ view = QQuickView()
+ file = Path(__file__).resolve().parent / 'bug_825.qml'
+ self.assertTrue(file.is_file())
+ view.setSource(QUrl.fromLocalFile(file))
+ self.assertTrue(view.rootObject(), quickview_errorstring(view))
+ view.show()
+ QTimer.singleShot(250, view.close)
+ app.exec()
+ self.assertTrue(paintCalled)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/QtQml/bug_847.py b/sources/pyside6/tests/QtQml/bug_847.py
index f578392b0..947eb494e 100644
--- a/sources/pyside6/tests/QtQml/bug_847.py
+++ b/sources/pyside6/tests/QtQml/bug_847.py
@@ -1,34 +1,7 @@
#!/usr/bin/python
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Copyright (C) 2011 Thomas Perl <m@thp.io>
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# Copyright (C) 2011 Thomas Perl <m@thp.io>
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
# Testcase for PySide bug 847
# Released under the same terms as PySide itself
diff --git a/sources/pyside6/tests/QtQml/bug_847.qml b/sources/pyside6/tests/QtQml/bug_847.qml
index 3833b1637..18efd80ce 100644
--- a/sources/pyside6/tests/QtQml/bug_847.qml
+++ b/sources/pyside6/tests/QtQml/bug_847.qml
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.0
diff --git a/sources/pyside6/tests/QtQml/bug_915.py b/sources/pyside6/tests/QtQml/bug_915.py
index 312ee341b..3095eba2a 100644
--- a/sources/pyside6/tests/QtQml/bug_915.py
+++ b/sources/pyside6/tests/QtQml/bug_915.py
@@ -1,33 +1,6 @@
#!/usr/bin/python
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -38,12 +11,12 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from helper.timedqapplication import TimedQApplication
+from helper.timedqguiapplication import TimedQGuiApplication
from PySide6.QtQuick import QQuickView, QQuickItem
-class TestBug915(TimedQApplication):
+class TestBug915(TimedQGuiApplication):
def testReturnPolicy(self):
view = QQuickView()
diff --git a/sources/pyside6/tests/QtQml/bug_926.py b/sources/pyside6/tests/QtQml/bug_926.py
index bbb000b01..085e9a68f 100644
--- a/sources/pyside6/tests/QtQml/bug_926.py
+++ b/sources/pyside6/tests/QtQml/bug_926.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import sys
import os
@@ -66,7 +41,7 @@ class MyClass (QObject):
class TestBug926 (unittest.TestCase):
def testIt(self):
app = QGuiApplication([])
- qmlRegisterType(MyClass,'Example', 1, 0, 'MyClass')
+ qmlRegisterType(MyClass, 'Example', 1, 0, 'MyClass')
view = QQuickView()
file = Path(__file__).resolve().parent / 'bug_926.qml'
self.assertTrue(file.is_file())
diff --git a/sources/pyside6/tests/QtQml/bug_926.qml b/sources/pyside6/tests/QtQml/bug_926.qml
index 9217403a4..6f7b608d0 100644
--- a/sources/pyside6/tests/QtQml/bug_926.qml
+++ b/sources/pyside6/tests/QtQml/bug_926.qml
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.0
import Example 1.0
diff --git a/sources/pyside6/tests/QtQml/bug_951.py b/sources/pyside6/tests/QtQml/bug_951.py
index 75fc0b6eb..8a512d06f 100644
--- a/sources/pyside6/tests/QtQml/bug_951.py
+++ b/sources/pyside6/tests/QtQml/bug_951.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -36,7 +11,7 @@ from init_paths import init_test_paths
init_test_paths(False)
from helper.helper import quickview_errorstring
-from helper.timedqapplication import TimedQApplication
+from helper.timedqguiapplication import TimedQGuiApplication
from PySide6.QtCore import QUrl
from PySide6.QtQml import qmlRegisterType
@@ -55,9 +30,9 @@ class MyItem(QQuickItem):
super(MyItem, self).componentComplete()
-class TestRegisterQMLType(TimedQApplication):
+class TestRegisterQMLType(TimedQGuiApplication):
def setup(self):
- TimedQApplication.setup(self, 100 * 3) # 3s
+ super.setup(100 * 3) # 3s
def testSignalEmission(self):
qmlRegisterType(MyItem, "my.item", 1, 0, "MyItem")
diff --git a/sources/pyside6/tests/QtQml/bug_951.qml b/sources/pyside6/tests/QtQml/bug_951.qml
index 8242223f9..02bf0c708 100644
--- a/sources/pyside6/tests/QtQml/bug_951.qml
+++ b/sources/pyside6/tests/QtQml/bug_951.qml
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.0
import my.item 1.0
diff --git a/sources/pyside6/tests/QtQml/bug_995.py b/sources/pyside6/tests/QtQml/bug_995.py
index 52a7b1d9d..868c584e2 100644
--- a/sources/pyside6/tests/QtQml/bug_995.py
+++ b/sources/pyside6/tests/QtQml/bug_995.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -44,7 +19,7 @@ from PySide6.QtQuick import QQuickView
app = QGuiApplication([])
file = Path(__file__).resolve().parent / 'bug_995.qml'
-assert(file.is_file())
+assert (file.is_file())
view = QQuickView(QUrl.fromLocalFile(file))
view.show()
view.resize(200, 200)
diff --git a/sources/pyside6/tests/QtQml/bug_995.qml b/sources/pyside6/tests/QtQml/bug_995.qml
index 1369dcca6..4f47cbd05 100644
--- a/sources/pyside6/tests/QtQml/bug_995.qml
+++ b/sources/pyside6/tests/QtQml/bug_995.qml
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.0
diff --git a/sources/pyside6/tests/QtQml/bug_997.py b/sources/pyside6/tests/QtQml/bug_997.py
index 1f982e8cb..501c221c3 100644
--- a/sources/pyside6/tests/QtQml/bug_997.py
+++ b/sources/pyside6/tests/QtQml/bug_997.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -37,27 +12,38 @@ init_test_paths(False)
from helper.helper import quickview_errorstring
from helper.usesqapplication import UsesQApplication
-from PySide6.QtCore import QTimer, QUrl
+from PySide6.QtCore import QCoreApplication, QTimer, QUrl, Slot
from PySide6.QtQml import QQmlPropertyMap
from PySide6.QtQuick import QQuickView
class TestBug(UsesQApplication):
+
+ def setUp(self):
+ super().setUp()
+ self._complete = False
+
+ @Slot()
+ def complete(self):
+ self._complete = True
+ self.app.quit()
+
def testQMLFunctionCall(self):
ownerData = QQmlPropertyMap()
ownerData.insert('name', 'John Smith')
ownerData.insert('phone', '555-5555')
ownerData.insert('newValue', '')
- view = QQuickView()
- view.setInitialProperties({'owner': ownerData})
+ self._view = QQuickView()
+ self._view.engine().quit.connect(self.complete)
+ self._view.setInitialProperties({'owner': ownerData})
file = Path(__file__).resolve().parent / 'bug_997.qml'
self.assertTrue(file.is_file())
- view.setSource(QUrl.fromLocalFile(file))
- self.assertTrue(view.rootObject(), quickview_errorstring(view))
- view.show()
- QTimer.singleShot(1000, self.app.quit)
- self.app.exec()
+ self._view.setSource(QUrl.fromLocalFile(file))
+ self.assertTrue(self._view.rootObject(), quickview_errorstring(self._view))
+ self._view.show()
+ if not self._complete:
+ self.app.exec()
self.assertEqual(ownerData.value('newName'), ownerData.value('name'))
diff --git a/sources/pyside6/tests/QtQml/bug_997.qml b/sources/pyside6/tests/QtQml/bug_997.qml
index e3e34855e..23188f31f 100644
--- a/sources/pyside6/tests/QtQml/bug_997.qml
+++ b/sources/pyside6/tests/QtQml/bug_997.qml
@@ -1,35 +1,13 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.0
Text {
required property var owner
text: owner.name + " " + owner.phone
- Component.onCompleted: { owner.newName = owner.name }
+ Component.onCompleted: {
+ owner.newName = owner.name
+ Qt.quit()
+ }
}
diff --git a/sources/pyside6/tests/QtQml/connect_python_qml.py b/sources/pyside6/tests/QtQml/connect_python_qml.py
index 86273763d..2e60aec4f 100644
--- a/sources/pyside6/tests/QtQml/connect_python_qml.py
+++ b/sources/pyside6/tests/QtQml/connect_python_qml.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''
Test case for bug #442
@@ -43,13 +18,13 @@ from init_paths import init_test_paths
init_test_paths(False)
from helper.helper import quickview_errorstring
-from helper.timedqapplication import TimedQApplication
+from helper.timedqguiapplication import TimedQGuiApplication
from PySide6.QtCore import QObject, QUrl, SIGNAL
from PySide6.QtGui import QColor
from PySide6.QtQuick import QQuickItem, QQuickView
-class TestConnectionWithInvalidSignature(TimedQApplication):
+class TestConnectionWithInvalidSignature(TimedQGuiApplication):
def onButtonClicked(self):
self.buttonClicked = True
self.app.quit()
@@ -67,7 +42,8 @@ class TestConnectionWithInvalidSignature(TimedQApplication):
root = view.rootObject()
self.assertTrue(root, quickview_errorstring(view))
button = root.findChild(QObject, "buttonMouseArea")
- self.assertRaises(TypeError, QObject.connect, [button,SIGNAL('entered()'), self.onButtonFailClicked])
+ self.assertRaises(TypeError, QObject.connect,
+ [button, SIGNAL('entered()'), self.onButtonFailClicked])
button.entered.connect(self.onButtonClicked)
button.entered.emit()
view.show()
diff --git a/sources/pyside6/tests/QtQml/connect_python_qml.qml b/sources/pyside6/tests/QtQml/connect_python_qml.qml
index 249debf91..1ed171e96 100644
--- a/sources/pyside6/tests/QtQml/connect_python_qml.qml
+++ b/sources/pyside6/tests/QtQml/connect_python_qml.qml
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.0
diff --git a/sources/pyside6/tests/QtQml/groupedproperty.py b/sources/pyside6/tests/QtQml/groupedproperty.py
new file mode 100644
index 000000000..4554d4b31
--- /dev/null
+++ b/sources/pyside6/tests/QtQml/groupedproperty.py
@@ -0,0 +1,112 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+"""Test grouped properties (PYSIDE-1836)."""
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from PySide6.QtCore import (QCoreApplication, QUrl, QObject, Property)
+from PySide6.QtQml import (QQmlComponent, QQmlEngine, QmlAnonymous, QmlElement)
+
+
+QML_IMPORT_NAME = "grouped"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlAnonymous
+class ShoeDescription(QObject):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._brand = ""
+ self._size = 0
+ self._price = 0
+
+ @Property(str)
+ def brand(self):
+ return self._brand
+
+ @brand.setter
+ def brand(self, b):
+ self._brand = b
+
+ @Property(int)
+ def size(self):
+ return self._size
+
+ @size.setter
+ def size(self, s):
+ self._size = s
+
+ @Property(int)
+ def price(self):
+ return self._price
+
+ @price.setter
+ def price(self, p):
+ self._price = p
+
+
+@QmlElement
+class Person(QObject):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._name = ""
+ self._shoe = ShoeDescription()
+
+ @Property(str)
+ def name(self):
+ return self._name
+
+ @name.setter
+ def name(self, n):
+ self._name = n
+
+ @Property(ShoeDescription)
+ def shoe(self):
+ return self._shoe
+
+
+def component_error(component):
+ result = ""
+ for e in component.errors():
+ if result:
+ result += "\n"
+ result += str(e)
+ return result
+
+
+class TestQmlGroupedProperties(unittest.TestCase):
+ def testIt(self):
+ app = QCoreApplication(sys.argv)
+ file = Path(__file__).resolve().parent / "groupedproperty.qml"
+ url = QUrl.fromLocalFile(file)
+ engine = QQmlEngine()
+ component = QQmlComponent(engine, url)
+ person = component.create()
+ self.assertTrue(person, component_error(component))
+
+ # Check the meta type of the property
+ meta_object = person.metaObject()
+ index = meta_object.indexOfProperty("shoe")
+ self.assertTrue(index > 0)
+ meta_property = meta_object.property(index)
+ meta_type = meta_property.metaType()
+ self.assertTrue(meta_type.isValid())
+
+ # Check the values
+ self.assertEqual(person.shoe.brand, "Bikey")
+ self.assertEqual(person.shoe.price, 90)
+ self.assertEqual(person.shoe.size, 12)
+
+ del engine
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/QtQml/groupedproperty.qml b/sources/pyside6/tests/QtQml/groupedproperty.qml
new file mode 100644
index 000000000..d32bd6005
--- /dev/null
+++ b/sources/pyside6/tests/QtQml/groupedproperty.qml
@@ -0,0 +1,9 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import grouped
+
+Person {
+ name: "Bob Jones"
+ shoe { size: 12; brand: "Bikey"; price: 90 }
+}
diff --git a/sources/pyside6/tests/QtQml/hw.qml b/sources/pyside6/tests/QtQml/hw.qml
index 8b086f31f..723901d96 100644
--- a/sources/pyside6/tests/QtQml/hw.qml
+++ b/sources/pyside6/tests/QtQml/hw.qml
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.0
diff --git a/sources/pyside6/tests/QtQml/javascript_exceptions.py b/sources/pyside6/tests/QtQml/javascript_exceptions.py
index fe2518487..e2b530aaf 100644
--- a/sources/pyside6/tests/QtQml/javascript_exceptions.py
+++ b/sources/pyside6/tests/QtQml/javascript_exceptions.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtQml/javascript_exceptions.qml b/sources/pyside6/tests/QtQml/javascript_exceptions.qml
index 60d96c89e..1ab0fa3bb 100644
--- a/sources/pyside6/tests/QtQml/javascript_exceptions.qml
+++ b/sources/pyside6/tests/QtQml/javascript_exceptions.qml
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.0
import QtQuick.Controls 2.0
@@ -50,4 +25,4 @@ Rectangle {
obj.passTest(2);
}
}
-} \ No newline at end of file
+}
diff --git a/sources/pyside6/tests/QtQml/listproperty.py b/sources/pyside6/tests/QtQml/listproperty.py
index 0e1e3548f..884600d29 100644
--- a/sources/pyside6/tests/QtQml/listproperty.py
+++ b/sources/pyside6/tests/QtQml/listproperty.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -32,11 +7,25 @@ import unittest
from pathlib import Path
sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
-from init_paths import init_test_paths
+from init_paths import init_test_paths # noqa: E402
init_test_paths(False)
-from PySide6.QtCore import QObject
-from PySide6.QtQml import ListProperty
+from helper.usesqapplication import UsesQApplication # noqa: E402, F401
+
+from PySide6.QtCore import QObject, QUrl, Property, qInstallMessageHandler # noqa: E402
+from PySide6.QtQml import ListProperty, QmlElement # noqa: E402
+from PySide6.QtQuick import QQuickView # noqa: E402
+
+
+QML_IMPORT_NAME = "test.ListPropertyTest"
+QML_IMPORT_MAJOR_VERSION = 1
+
+output_messages = []
+
+
+def message_handler(mode, context, message):
+ global output_messages
+ output_messages.append(f"{message}")
class InheritsQObject(QObject):
@@ -47,7 +36,46 @@ def dummyFunc():
pass
-class TestListProperty(unittest.TestCase):
+@QmlElement
+class Person(QObject):
+ def __init__(self, parent=None):
+ super().__init__(parent=None)
+ self._name = ''
+ self._friends = []
+
+ def appendFriend(self, friend):
+ self._friends.append(friend)
+
+ def friendCount(self):
+ return len(self._friends)
+
+ def friend(self, index):
+ return self._friends[index]
+
+ def removeLastItem(self):
+ if len(self._friends) > 0:
+ self._friends.pop()
+
+ def replace(self, index, friend):
+ if 0 <= index < len(self._friends):
+ self._friends[index] = friend
+
+ def clear(self):
+ self._friends.clear()
+
+ @Property(str, final=True)
+ def name(self):
+ return self._name
+
+ @name.setter
+ def name(self, value):
+ self._name = value
+
+ friends = ListProperty(QObject, append=appendFriend, count=friendCount, at=friend,
+ removeLast=removeLastItem, replace=replace, clear=clear)
+
+
+class TestListProperty(UsesQApplication):
def testIt(self):
# Verify that type checking works properly
@@ -56,7 +84,7 @@ class TestListProperty(unittest.TestCase):
try:
ListProperty(QObject)
ListProperty(InheritsQObject)
- except:
+ except Exception:
type_check_error = True
self.assertFalse(type_check_error)
@@ -72,21 +100,37 @@ class TestListProperty(unittest.TestCase):
method_check_error = False
try:
- ListProperty(QObject, append=None, at=None, count=None, replace=None, clear=None, removeLast=None) # Explicitly setting None
+ ListProperty(QObject, append=None, at=None, count=None, replace=None, clear=None,
+ removeLast=None) # Explicitly setting None
ListProperty(QObject, append=dummyFunc)
ListProperty(QObject, count=dummyFunc, at=dummyFunc)
- except:
+ except Exception:
method_check_error = True
self.assertFalse(method_check_error)
try:
- ListPropery(QObject, append=QObject())
- except:
+ ListProperty(QObject, append=QObject())
+ except Exception:
method_check_error = True
self.assertTrue(method_check_error)
+ def testListPropParameters(self):
+ global output_messages
+ qInstallMessageHandler(message_handler)
+ view = QQuickView()
+ file = Path(__file__).resolve().parent / 'listproperty.qml'
+ self.assertTrue(file.is_file())
+ view.setSource(QUrl.fromLocalFile(file))
+ view.show()
+ self.assertEqual(output_messages[0], "List length: 3")
+ self.assertEqual(output_messages[1], "First element: Alice")
+ self.assertEqual(output_messages[2], "Removing last item: Charlie")
+ self.assertEqual(output_messages[3], "Replacing last item: Bob")
+ self.assertEqual(output_messages[4], "Replaced last item: David")
+ self.assertEqual(output_messages[5], "List length after clearing: 0")
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/pyside6/tests/QtQml/listproperty.qml b/sources/pyside6/tests/QtQml/listproperty.qml
new file mode 100644
index 000000000..7b71e30ba
--- /dev/null
+++ b/sources/pyside6/tests/QtQml/listproperty.qml
@@ -0,0 +1,50 @@
+// Copyright (C) 2024 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick 2.0
+import test.ListPropertyTest
+
+Rectangle {
+ width: 360
+ height: 360
+
+ Person {
+ id: person
+ friends: [
+ Person{
+ name: "Alice"
+ },
+ Person{
+ name: "Bob"
+ },
+ Person{
+ name: "Charlie"
+ }
+ ]
+ }
+
+ Person{
+ id: david
+ name: "David"
+ }
+
+ Component.onCompleted: {
+ // Access the length of the list
+ console.log("List length: " + person.friends.length);
+
+ // Access the first element of the list
+ console.log("First element: " + person.friends[0].name);
+
+ // Remove the last item of the list
+ console.log("Removing last item: " + person.friends.pop().name);
+
+ // Repalce the last item of the list
+ console.log("Replacing last item: " + person.friends[person.friends.length - 1].name);
+ person.friends[person.friends.length - 1] = david;
+ console.log("Replaced last item: " + person.friends[person.friends.length - 1].name);
+
+ // Clear the list
+ person.friends = [];
+ console.log("List length after clearing: " + person.friends.length);
+ }
+}
diff --git a/sources/pyside6/tests/QtQml/qqmlapplicationengine.qml b/sources/pyside6/tests/QtQml/qqmlapplicationengine.qml
new file mode 100644
index 000000000..77149ecdc
--- /dev/null
+++ b/sources/pyside6/tests/QtQml/qqmlapplicationengine.qml
@@ -0,0 +1,23 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import QtQuick
+import QtQuick.Window
+
+Window {
+ width: 300
+ height: 200
+ visible: true
+
+ Item {
+ width: 200
+ height: 60
+ Text {
+ anchors {
+ verticalCenter: parent.verticalCenter;
+ horizontalCenter: parent.horizontalCenter;
+ }
+ text: "Text"
+ }
+ }
+}
diff --git a/sources/pyside6/tests/QtQml/qqmlapplicationengine_test.py b/sources/pyside6/tests/QtQml/qqmlapplicationengine_test.py
new file mode 100644
index 000000000..ea54e9e25
--- /dev/null
+++ b/sources/pyside6/tests/QtQml/qqmlapplicationengine_test.py
@@ -0,0 +1,38 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+'''Test case for QQmlApplicationEngine'''
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from helper.timedqguiapplication import TimedQGuiApplication
+
+from PySide6.QtCore import QUrl, QObject, QTimer, Qt
+from PySide6.QtQml import QQmlApplicationEngine
+
+
+class TestQQmlApplicationEngine(TimedQGuiApplication):
+
+ def testQQmlApplicationEngine(self):
+ engine = QQmlApplicationEngine()
+
+ qml_file_path = Path(__file__).resolve().parent / "qqmlapplicationengine.qml"
+
+ # PYSIDE-1736: load from a string.
+ engine.load(os.fspath(qml_file_path))
+ rootObjects = engine.rootObjects()
+ self.assertTrue(rootObjects)
+ window = rootObjects[0]
+ window.setTitle("TestQQmlApplicationEngine")
+ QTimer.singleShot(100, window.close)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/QtQml/qqmlcomponent_test.py b/sources/pyside6/tests/QtQml/qqmlcomponent_test.py
new file mode 100644
index 000000000..5521c64fa
--- /dev/null
+++ b/sources/pyside6/tests/QtQml/qqmlcomponent_test.py
@@ -0,0 +1,36 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from PySide6.QtCore import Property, QObject
+from PySide6.QtQml import QQmlComponent
+
+
+class WithComponent(QObject):
+ def get_component(self):
+ return None
+
+ component = Property(QQmlComponent, fget=get_component)
+
+
+class TestQmlSupport(unittest.TestCase):
+
+ def testMetatypeValid(self):
+ m = WithComponent.staticMetaObject
+ c = m.property(m.indexOfProperty("component"))
+
+ self.assertTrue(c.typeId() > 0)
+ self.assertTrue(c.typeName() == "QQmlComponent*")
+ self.assertTrue(c.metaType().isValid())
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/QtQml/qqmlincubator_incubateWhile.py b/sources/pyside6/tests/QtQml/qqmlincubator_incubateWhile.py
index 5c2bd86aa..12a73e398 100644
--- a/sources/pyside6/tests/QtQml/qqmlincubator_incubateWhile.py
+++ b/sources/pyside6/tests/QtQml/qqmlincubator_incubateWhile.py
@@ -1,34 +1,8 @@
#!/usr/bin/python
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+import gc
import os
import sys
import unittest
@@ -102,6 +76,8 @@ class TestBug(unittest.TestCase):
# instances are destroyed in the correct order.
del view
del app
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
if __name__ == '__main__':
diff --git a/sources/pyside6/tests/QtQml/qqmlincubator_incubateWhile.qml b/sources/pyside6/tests/QtQml/qqmlincubator_incubateWhile.qml
index 212166a93..803dec128 100644
--- a/sources/pyside6/tests/QtQml/qqmlincubator_incubateWhile.qml
+++ b/sources/pyside6/tests/QtQml/qqmlincubator_incubateWhile.qml
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.0
diff --git a/sources/pyside6/tests/QtQml/qqmlincubator_incubateWhile_component.qml b/sources/pyside6/tests/QtQml/qqmlincubator_incubateWhile_component.qml
index 55dbe144a..0f6693952 100644
--- a/sources/pyside6/tests/QtQml/qqmlincubator_incubateWhile_component.qml
+++ b/sources/pyside6/tests/QtQml/qqmlincubator_incubateWhile_component.qml
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.0
diff --git a/sources/pyside6/tests/QtQml/qqmlnetwork_test.py b/sources/pyside6/tests/QtQml/qqmlnetwork_test.py
index 517888c79..abdb4529e 100644
--- a/sources/pyside6/tests/QtQml/qqmlnetwork_test.py
+++ b/sources/pyside6/tests/QtQml/qqmlnetwork_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QQmlNetwork'''
@@ -37,18 +12,33 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtCore import QUrl
+from PySide6.QtCore import QUrl, QTimer
+from PySide6.QtGui import QGuiApplication, QWindow
from PySide6.QtQuick import QQuickView
from PySide6.QtQml import QQmlNetworkAccessManagerFactory
from PySide6.QtNetwork import QNetworkAccessManager
from helper.helper import quickview_errorstring
-from helper.timedqapplication import TimedQApplication
+from helper.timedqguiapplication import TimedQGuiApplication
+
+
+request_created = False
+
+
+def check_done():
+ global request_created
+ if request_created:
+ windows = QGuiApplication.topLevelWindows()
+ if windows:
+ windows[0].close()
class CustomManager(QNetworkAccessManager):
+ """CustomManager (running in a different thread)"""
def createRequest(self, op, req, data=None):
+ global request_created
print(">> createRequest ", self, op, req.url(), data)
+ request_created = True
return QNetworkAccessManager.createRequest(self, op, req, data)
@@ -57,9 +47,9 @@ class CustomFactory(QQmlNetworkAccessManagerFactory):
return CustomManager()
-class TestQQmlNetworkFactory(TimedQApplication):
+class TestQQmlNetworkFactory(TimedQGuiApplication):
def setUp(self):
- TimedQApplication.setUp(self, timeout=1000)
+ super().setUp(timeout=2000)
def testQQuickNetworkFactory(self):
view = QQuickView()
@@ -76,6 +66,9 @@ class TestQQmlNetworkFactory(TimedQApplication):
self.assertEqual(view.status(), QQuickView.Ready)
+ timer = QTimer()
+ timer.timeout.connect(check_done)
+ timer.start(50)
self.app.exec()
diff --git a/sources/pyside6/tests/QtQml/qquickitem_grabToImage.py b/sources/pyside6/tests/QtQml/qquickitem_grabToImage.py
index 17b01620b..25341b0b2 100644
--- a/sources/pyside6/tests/QtQml/qquickitem_grabToImage.py
+++ b/sources/pyside6/tests/QtQml/qquickitem_grabToImage.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -36,15 +11,15 @@ from init_paths import init_test_paths
init_test_paths(False)
from helper.helper import quickview_errorstring
-from helper.timedqapplication import TimedQApplication
+from helper.timedqguiapplication import TimedQGuiApplication
from PySide6.QtCore import QTimer, QUrl
from PySide6.QtGui import QColor
from PySide6.QtQuick import QQuickItem, QQuickView
-class TestGrabToSharedPointerImage(TimedQApplication):
+class TestGrabToSharedPointerImage(TimedQGuiApplication):
def setUp(self):
- TimedQApplication.setUp(self, 1000)
+ super().setUp(1000)
def testQQuickItemGrabToImageSharedPointer(self):
view = QQuickView()
@@ -70,7 +45,7 @@ class TestGrabToSharedPointerImage(TimedQApplication):
def onGrabReady():
# Signal early exit.
- QTimer.singleShot(0, self.app.quit)
+ QTimer.singleShot(50, self.app.quit)
# Show the grabbed image in the QML Image item.
imageContainer.setProperty("source", grabResultSharedPtr.url())
diff --git a/sources/pyside6/tests/QtQml/qquickitem_grabToImage.qml b/sources/pyside6/tests/QtQml/qquickitem_grabToImage.qml
index 17d0cbdfe..90235f078 100644
--- a/sources/pyside6/tests/QtQml/qquickitem_grabToImage.qml
+++ b/sources/pyside6/tests/QtQml/qquickitem_grabToImage.qml
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.0
diff --git a/sources/pyside6/tests/QtQml/qquickview_test.py b/sources/pyside6/tests/QtQml/qquickview_test.py
index 412e6dc2d..226509669 100644
--- a/sources/pyside6/tests/QtQml/qquickview_test.py
+++ b/sources/pyside6/tests/QtQml/qquickview_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QQuickView'''
@@ -38,15 +13,16 @@ from init_paths import init_test_paths
init_test_paths(False)
from helper.helper import quickview_errorstring
-from helper.timedqapplication import TimedQApplication
+from helper.timedqguiapplication import TimedQGuiApplication
from PySide6.QtCore import QUrl, QObject, Property, Slot, Signal
-from PySide6.QtQml import QQmlEngine
+from PySide6.QtQml import QQmlEngine, QQmlContext
from PySide6.QtQuick import QQuickView
class MyObject(QObject):
titleChanged = Signal()
+
def __init__(self, text, parent=None):
QObject.__init__(self, parent)
self._text = text
@@ -61,7 +37,7 @@ class MyObject(QObject):
title = Property(str, getText, notify=titleChanged)
-class TestQQuickView(TimedQApplication):
+class TestQQuickView(TimedQGuiApplication):
def testQQuickViewList(self):
view = QQuickView()
@@ -84,6 +60,13 @@ class TestQQuickView(TimedQApplication):
self.assertTrue(context)
self.assertTrue(context.engine())
+ test_context = QQmlContext(context) # Context properties, PYSIDE-1921
+ prop_pair = QQmlContext.PropertyPair()
+ prop_pair.name = "testProperty"
+ prop_pair.value = 42
+ test_context.setContextProperties([prop_pair])
+ self.assertTrue(test_context.contextProperty("testProperty"), 42)
+
def testModelExport(self):
view = QQuickView()
dataList = [MyObject("Item 1"), MyObject("Item 2"), MyObject("Item 3"), MyObject("Item 4")]
diff --git a/sources/pyside6/tests/QtQml/registerattached.py b/sources/pyside6/tests/QtQml/registerattached.py
new file mode 100644
index 000000000..dd300dc89
--- /dev/null
+++ b/sources/pyside6/tests/QtQml/registerattached.py
@@ -0,0 +1,101 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from PySide6.QtCore import (QCoreApplication, QUrl, QObject, Property)
+from PySide6.QtQml import (QQmlComponent, QQmlEngine, QmlAnonymous,
+ QmlAttached, QmlElement, ListProperty,
+ qmlAttachedPropertiesObject)
+
+
+QML_IMPORT_NAME = "TestLayouts"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+EXPECTED_MARGINS = [10, 20]
+
+
+def component_error(component):
+ result = ""
+ for e in component.errors():
+ if result:
+ result += "\n"
+ result += str(e)
+ return result
+
+
+@QmlAnonymous
+class TestLayoutAttached(QObject):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._leftMargin = 0
+
+ @Property(int)
+ def leftMargin(self):
+ return self._leftMargin
+
+ @leftMargin.setter
+ def leftMargin(self, m):
+ self._leftMargin = m
+
+
+@QmlElement
+class TestWidget(QObject):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+
+@QmlElement
+@QmlAttached(TestLayoutAttached)
+class TestLayout(QObject):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._widgets = []
+
+ def widget(self, n):
+ return self._widgets[n]
+
+ def widgetCount(self):
+ return len(self._widgets)
+
+ def addWidget(self, w):
+ self._widgets.append(w)
+
+ @staticmethod
+ def qmlAttachedProperties(self, o):
+ return TestLayoutAttached(o)
+
+ widgets = ListProperty(TestWidget, addWidget)
+
+
+class TestQmlAttached(unittest.TestCase):
+ def testIt(self):
+ app = QCoreApplication(sys.argv)
+ file = Path(__file__).resolve().parent / 'registerattached.qml'
+ url = QUrl.fromLocalFile(file)
+ engine = QQmlEngine()
+ component = QQmlComponent(engine, url)
+ layout = component.create()
+ self.assertTrue(layout, component_error(component))
+
+ actual_margins = []
+ for i in range(layout.widgetCount()):
+ w = layout.widget(i)
+ a = qmlAttachedPropertiesObject(TestLayout, w, False)
+ actual_margins.append(a.leftMargin)
+ self.assertEqual(EXPECTED_MARGINS, actual_margins)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/QtQml/registerattached.qml b/sources/pyside6/tests/QtQml/registerattached.qml
new file mode 100644
index 000000000..7ae8730bd
--- /dev/null
+++ b/sources/pyside6/tests/QtQml/registerattached.qml
@@ -0,0 +1,20 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import TestLayouts
+
+TestLayout {
+ id: layout
+
+ widgets: [
+ TestWidget {
+ id: widget1
+ TestLayout.leftMargin: 10
+ },
+
+ TestWidget {
+ id: widget2
+ TestLayout.leftMargin: 20
+ }
+ ]
+}
diff --git a/sources/pyside6/tests/QtQml/registerextended.py b/sources/pyside6/tests/QtQml/registerextended.py
new file mode 100644
index 000000000..b87b5aaaf
--- /dev/null
+++ b/sources/pyside6/tests/QtQml/registerextended.py
@@ -0,0 +1,74 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from PySide6.QtCore import (QCoreApplication, QUrl, QObject,
+ Property)
+from PySide6.QtQml import (QQmlComponent, QQmlEngine, QmlExtended,
+ QmlElement)
+
+
+"""Test for the QmlExtended decorator. Extends a class TestWidget
+ by a property leftMargin through a TestExtension and verifies the setting."""
+
+
+QML_IMPORT_NAME = "TestExtension"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+def component_error(component):
+ result = ""
+ for e in component.errors():
+ if result:
+ result += "\n"
+ result += str(e)
+ return result
+
+
+class TestExtension(QObject):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._leftMargin = 0
+
+ @Property(int)
+ def leftMargin(self):
+ return self._leftMargin
+
+ @leftMargin.setter
+ def leftMargin(self, m):
+ self._leftMargin = m
+
+
+@QmlElement
+@QmlExtended(TestExtension)
+class TestWidget(QObject):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+
+class TestQmlExtended(unittest.TestCase):
+ def testIt(self):
+ app = QCoreApplication(sys.argv)
+ file = Path(__file__).resolve().parent / 'registerextended.qml'
+ url = QUrl.fromLocalFile(file)
+ engine = QQmlEngine()
+ component = QQmlComponent(engine, url)
+ widget = component.create()
+ self.assertTrue(widget, component_error(component))
+ extension = widget.findChild(TestExtension)
+ self.assertTrue(extension)
+ self.assertEqual(extension.leftMargin, 10)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/QtQml/registerextended.qml b/sources/pyside6/tests/QtQml/registerextended.qml
new file mode 100644
index 000000000..74095f83f
--- /dev/null
+++ b/sources/pyside6/tests/QtQml/registerextended.qml
@@ -0,0 +1,9 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import TestExtension
+
+TestWidget {
+ id: widget1
+ leftMargin: 10
+}
diff --git a/sources/pyside6/tests/QtQml/registerforeign.py b/sources/pyside6/tests/QtQml/registerforeign.py
new file mode 100644
index 000000000..d9a982d95
--- /dev/null
+++ b/sources/pyside6/tests/QtQml/registerforeign.py
@@ -0,0 +1,52 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from helper.helper import qmlcomponent_errorstring
+from helper.timedqguiapplication import TimedQGuiApplication
+
+from PySide6.QtCore import Property, QObject, QUrl, qVersion
+from PySide6.QtGui import QGuiApplication, QRasterWindow
+from PySide6.QtQml import (QmlNamedElement, QmlForeign, QQmlEngine,
+ QQmlComponent)
+
+
+"""Test the QmlForeign decorator, letting the QQmlEngine create a QRasterWindow."""
+
+
+QML_IMPORT_NAME = "Foreign"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlNamedElement("QRasterWindow")
+@QmlForeign(QRasterWindow)
+class RasterWindowForeign(QObject):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+
+class TestQmlForeign(TimedQGuiApplication):
+
+ def testIt(self):
+ engine = QQmlEngine()
+ file = Path(__file__).resolve().parent / 'registerforeign.qml'
+ self.assertTrue(file.is_file())
+ component = QQmlComponent(engine, QUrl.fromLocalFile(file))
+ window = component.create()
+ self.assertTrue(window, qmlcomponent_errorstring(component))
+ self.assertEqual(type(window), QRasterWindow)
+ window.setTitle(f"Qt {qVersion()}")
+ window.show()
+ self.app.exec()
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/QtQml/registerforeign.qml b/sources/pyside6/tests/QtQml/registerforeign.qml
new file mode 100644
index 000000000..0537abb7c
--- /dev/null
+++ b/sources/pyside6/tests/QtQml/registerforeign.qml
@@ -0,0 +1,8 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import Foreign
+
+QRasterWindow {
+ id: rasterWindow
+}
diff --git a/sources/pyside6/tests/QtQml/registerparserstatus.py b/sources/pyside6/tests/QtQml/registerparserstatus.py
new file mode 100644
index 000000000..bbcc14635
--- /dev/null
+++ b/sources/pyside6/tests/QtQml/registerparserstatus.py
@@ -0,0 +1,60 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from PySide6.QtCore import (QCoreApplication, QUrl)
+from PySide6.QtQml import (QQmlComponent, QQmlEngine,
+ QmlElement, QPyQmlParserStatus)
+
+
+QML_IMPORT_NAME = "ParserStatus"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+def component_error(component):
+ result = ""
+ for e in component.errors():
+ if result:
+ result += "\n"
+ result += str(e)
+ return result
+
+
+@QmlElement
+class TestItem(QPyQmlParserStatus):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.component_complete_called = False
+ self.class_begin_called = False
+
+ def componentComplete(self):
+ self.component_complete_called = True
+
+ def classBegin(self):
+ self.class_begin_called = True
+
+
+class TestQmlAttached(unittest.TestCase):
+ def testIt(self):
+ app = QCoreApplication(sys.argv)
+ file = Path(__file__).resolve().parent / 'registerparserstatus.qml'
+ url = QUrl.fromLocalFile(file)
+ engine = QQmlEngine()
+ component = QQmlComponent(engine, url)
+ item = component.create()
+ self.assertTrue(item, component_error(component))
+ self.assertTrue(item.component_complete_called)
+ self.assertTrue(item.class_begin_called)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/QtQml/registerparserstatus.qml b/sources/pyside6/tests/QtQml/registerparserstatus.qml
new file mode 100644
index 000000000..a39f03227
--- /dev/null
+++ b/sources/pyside6/tests/QtQml/registerparserstatus.qml
@@ -0,0 +1,8 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import ParserStatus
+
+TestItem {
+ id: item
+}
diff --git a/sources/pyside6/tests/QtQml/registerqmlfile.py b/sources/pyside6/tests/QtQml/registerqmlfile.py
new file mode 100644
index 000000000..335652e5d
--- /dev/null
+++ b/sources/pyside6/tests/QtQml/registerqmlfile.py
@@ -0,0 +1,30 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from PySide6.QtCore import QDir, QUrl
+from PySide6.QtGui import QGuiApplication
+from PySide6.QtQml import qmlRegisterType
+
+
+class TestQmlSupport(unittest.TestCase):
+
+ def testIt(self):
+ app = QGuiApplication([])
+
+ file = os.fspath(Path(__file__).resolve().parent / 'ModuleType.qml')
+ url = QUrl.fromLocalFile(QDir.fromNativeSeparators(file))
+ result = qmlRegisterType(url, "CustomModule", 1, 0, "ModuleType")
+ self.assertTrue(result != -1)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/QtQml/registersingletontype.py b/sources/pyside6/tests/QtQml/registersingletontype.py
index c22f3706e..6beca1131 100644
--- a/sources/pyside6/tests/QtQml/registersingletontype.py
+++ b/sources/pyside6/tests/QtQml/registersingletontype.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -37,12 +12,18 @@ init_test_paths(False)
from helper.helper import quickview_errorstring
-from PySide6.QtCore import Property, Signal, QTimer, QUrl, QObject
+from PySide6.QtCore import Property, Signal, QTimer, QUrl, QObject, Slot
from PySide6.QtGui import QGuiApplication
-from PySide6.QtQml import qmlRegisterSingletonType, qmlRegisterSingletonInstance
+from PySide6.QtQml import (qmlRegisterSingletonType, qmlRegisterSingletonInstance,
+ QmlElement, QmlSingleton, QJSValue)
from PySide6.QtQuick import QQuickView
+
+URI = "Singletons"
+
+
finalResult = 0
+qObjectQmlTypeId = 0
class SingletonQObject(QObject):
@@ -70,36 +51,102 @@ def singletonQJSValueCallback(engine):
return engine.evaluate("new Object({data: 50})")
+QML_IMPORT_NAME = URI
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+@QmlSingleton
+class DecoratedSingletonQObject(QObject):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._data = 200
+
+ def getData(self):
+ return self._data
+
+ def setData(self, data):
+ self._data = data
+
+ data = Property(int, getData, setData)
+
+
+@QmlElement
+@QmlSingleton
+class DecoratedSingletonWithCreate(QObject):
+ def __init__(self, data, parent=None):
+ super().__init__(parent)
+ self._data = data
+
+ @staticmethod
+ def create(engine):
+ return DecoratedSingletonWithCreate(400)
+
+ def getData(self):
+ return self._data
+
+ def setData(self, data):
+ self._data = data
+
+ data = Property(int, getData, setData)
+
+
+class TestQuickView(QQuickView):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._singleton_instance_qobject_int = False
+ self._singleton_instance_qobject_str = False
+ self._singleton_instance_jsvalue_int = False
+
+ @Slot()
+ def testSlot(self):
+ engine = self.engine()
+ instance = engine.singletonInstance(qObjectQmlTypeId)
+ if instance is not None and isinstance(instance, QObject):
+ self._singleton_instance_qobject_int = True
+ instance = engine.singletonInstance(URI, 'SingletonQObjectNoCallback')
+ if instance is not None and isinstance(instance, QObject):
+ self._singleton_instance_qobject_str = True
+ instance = engine.singletonInstance(URI, 'SingletonQJSValue')
+ if instance is not None and isinstance(instance, QJSValue):
+ self._singleton_instance_jsvalue_int = True
+ self.close()
+
+
class TestQmlSupport(unittest.TestCase):
def testIt(self):
app = QGuiApplication([])
- qmlRegisterSingletonType(SingletonQObject, 'Singletons', 1, 0, 'SingletonQObjectNoCallback')
- qmlRegisterSingletonType(SingletonQObject, 'Singletons', 1, 0, 'SingletonQObjectCallback',
+ qObjectQmlTypeId = qmlRegisterSingletonType(SingletonQObject, URI, 1, 0,
+ 'SingletonQObjectNoCallback')
+ qmlRegisterSingletonType(SingletonQObject, URI, 1, 0, 'SingletonQObjectCallback',
singletonQObjectCallback)
- qmlRegisterSingletonType('Singletons', 1, 0, 'SingletonQJSValue', singletonQJSValueCallback)
+ qmlRegisterSingletonType(URI, 1, 0, 'SingletonQJSValue', singletonQJSValueCallback)
# Accepts only QObject derived types
l = [1, 2]
with self.assertRaises(TypeError):
- qmlRegisterSingletonInstance(SingletonQObject, 'Singletons', 1, 0, 'SingletonInstance', l)
+ qmlRegisterSingletonInstance(SingletonQObject, URI, 1, 0, 'SingletonInstance', l)
# Modify value on the instance
s = SingletonQObject()
s.setData(99)
- qmlRegisterSingletonInstance(SingletonQObject, 'Singletons', 1, 0, 'SingletonInstance', s)
+ qmlRegisterSingletonInstance(SingletonQObject, URI, 1, 0, 'SingletonInstance', s)
- view = QQuickView()
+ view = TestQuickView()
file = Path(__file__).resolve().parent / 'registersingletontype.qml'
self.assertTrue(file.is_file())
view.setSource(QUrl.fromLocalFile(file))
self.assertTrue(view.rootObject(), quickview_errorstring(view))
+ view.resize(200, 200)
view.show()
- QTimer.singleShot(250, view.close)
+ QTimer.singleShot(250, view.testSlot)
app.exec()
- self.assertEqual(finalResult, 299)
+ self.assertEqual(finalResult, 899)
+ self.assertTrue(view._singleton_instance_qobject_int)
+ self.assertTrue(view._singleton_instance_qobject_str)
+ self.assertTrue(view._singleton_instance_jsvalue_int)
-if __name__ == '__main__':
- unittest.main()
+if __name__ == '__main__': unittest.main()
diff --git a/sources/pyside6/tests/QtQml/registersingletontype.qml b/sources/pyside6/tests/QtQml/registersingletontype.qml
index 2365cf201..31ca7fe4d 100644
--- a/sources/pyside6/tests/QtQml/registersingletontype.qml
+++ b/sources/pyside6/tests/QtQml/registersingletontype.qml
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.0
import Singletons 1.0
@@ -33,6 +8,7 @@ Item {
Component.onCompleted: {
SingletonQObjectCallback.data += SingletonQObjectNoCallback.data
+ SingletonQJSValue.data
- + SingletonInstance.data;
+ + SingletonInstance.data
+ + DecoratedSingletonQObject.data + DecoratedSingletonWithCreate.data;
}
}
diff --git a/sources/pyside6/tests/QtQml/registertype.py b/sources/pyside6/tests/QtQml/registertype.py
index 2bfb38d9a..6c9874f32 100644
--- a/sources/pyside6/tests/QtQml/registertype.py
+++ b/sources/pyside6/tests/QtQml/registertype.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -40,7 +15,7 @@ from helper.helper import quickview_errorstring
from PySide6.QtCore import Property, QObject, QTimer, QUrl
from PySide6.QtGui import QGuiApplication, QPen, QColor, QPainter
from PySide6.QtQml import (qjsEngine, qmlContext, qmlEngine, qmlRegisterType,
- ListProperty, QmlElement)
+ ListProperty, QmlElement, QmlNamedElement)
from PySide6.QtQuick import QQuickView, QQuickItem, QQuickPaintedItem
@@ -87,8 +62,8 @@ class PieSlice (QQuickPaintedItem):
paintCalled = True
-@QmlElement
-class PieChart (QQuickItem):
+@QmlNamedElement("PieChart")
+class PieChartOriginalName(QQuickItem):
def __init__(self, parent=None):
QQuickItem.__init__(self, parent)
self._name = ''
diff --git a/sources/pyside6/tests/QtQml/registertype.qml b/sources/pyside6/tests/QtQml/registertype.qml
index c41226016..3be2f9f04 100644
--- a/sources/pyside6/tests/QtQml/registertype.qml
+++ b/sources/pyside6/tests/QtQml/registertype.qml
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.0
import Charts 1.0
diff --git a/sources/pyside6/tests/QtQml/registeruncreatable.qml b/sources/pyside6/tests/QtQml/registeruncreatable.qml
index bebf68d82..b121c014d 100644
--- a/sources/pyside6/tests/QtQml/registeruncreatable.qml
+++ b/sources/pyside6/tests/QtQml/registeruncreatable.qml
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.0
import Charts 1.0
diff --git a/sources/pyside6/tests/QtQml/registeruncreatabletype.py b/sources/pyside6/tests/QtQml/registeruncreatabletype.py
index c9c9b3bae..3a4df69f6 100644
--- a/sources/pyside6/tests/QtQml/registeruncreatabletype.py
+++ b/sources/pyside6/tests/QtQml/registeruncreatabletype.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -39,11 +14,16 @@ from helper.helper import qmlcomponent_errorstring
from PySide6.QtCore import Property, QObject, QUrl
from PySide6.QtGui import QGuiApplication
-from PySide6.QtQml import qmlRegisterUncreatableType, QQmlEngine, QQmlComponent
+from PySide6.QtQml import QmlElement, QmlUncreatable, QQmlEngine, QQmlComponent
noCreationReason = 'Cannot create an item of type: Uncreatable (expected)'
+QML_IMPORT_NAME = "Charts"
+QML_IMPORT_MAJOR_VERSION = 1
+
+@QmlElement
+@QmlUncreatable(noCreationReason)
class Uncreatable(QObject):
def __init__(self, parent=None):
QObject.__init__(self, parent)
@@ -63,9 +43,6 @@ class TestQmlSupport(unittest.TestCase):
def testIt(self):
app = QGuiApplication([])
- self.assertTrue(qmlRegisterUncreatableType(Uncreatable, 'Charts', 1, 0,
- 'Uncreatable', noCreationReason) != -1)
-
engine = QQmlEngine()
file = Path(__file__).resolve().parent / 'registeruncreatable.qml'
self.assertTrue(file.is_file())
diff --git a/sources/pyside6/tests/QtQml/signal_arguments.py b/sources/pyside6/tests/QtQml/signal_arguments.py
index 9ca94cf1e..f5b0f8bd3 100644
--- a/sources/pyside6/tests/QtQml/signal_arguments.py
+++ b/sources/pyside6/tests/QtQml/signal_arguments.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -36,7 +11,7 @@ from init_paths import init_test_paths
init_test_paths(False)
from helper.helper import quickview_errorstring
-from helper.timedqapplication import TimedQApplication
+from helper.timedqguiapplication import TimedQGuiApplication
from PySide6.QtQuick import QQuickView
from PySide6.QtCore import QObject, Signal, Slot, QUrl, QTimer, Property
@@ -45,6 +20,7 @@ from PySide6.QtQml import QmlElement
QML_IMPORT_NAME = "test.Obj"
QML_IMPORT_MAJOR_VERSION = 1
+
@QmlElement
class Obj(QObject):
def __init__(self):
@@ -62,7 +38,7 @@ class Obj(QObject):
self.value = int(s)
-class TestConnectionWithQml(TimedQApplication):
+class TestConnectionWithQml(TimedQGuiApplication):
def testSignalArguments(self):
view = QQuickView()
diff --git a/sources/pyside6/tests/QtQml/signal_arguments.qml b/sources/pyside6/tests/QtQml/signal_arguments.qml
index 38b96c9b1..dbc991c77 100644
--- a/sources/pyside6/tests/QtQml/signal_arguments.qml
+++ b/sources/pyside6/tests/QtQml/signal_arguments.qml
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.5
diff --git a/sources/pyside6/tests/QtQml/signal_types.py b/sources/pyside6/tests/QtQml/signal_types.py
new file mode 100644
index 000000000..240c0fd6e
--- /dev/null
+++ b/sources/pyside6/tests/QtQml/signal_types.py
@@ -0,0 +1,124 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import json
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from helper.helper import quickview_errorstring
+from helper.timedqguiapplication import TimedQGuiApplication
+
+from PySide6.QtQuick import QQuickView
+from PySide6.QtCore import QObject, Signal, Slot, QUrl
+from PySide6.QtQml import QmlElement
+
+"""PYSIDE-2098: Roundtrip test for signals using QVariantList/QVariantMap.
+
+@QmlElement Obj has signals of list/dict type which are connected to an
+instance of Connections in QML. The QML instance sends them back to Obj's
+slots and additionally sends them back as stringified JSON. This verifies that
+a conversion is done instead of falling back to the default PyObject
+passthrough converter, resulting in a QVariant<PyObject> and reference leaks
+on the PyObject.
+"""
+
+QML_IMPORT_NAME = "test.Obj"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class Obj(QObject):
+ listSignal = Signal(list)
+ dictSignal = Signal(dict)
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._last_data = None
+ self._last_json_data = None
+
+ def clear(self):
+ self._last_data = None
+ self._last_json_data = None
+
+ def last_data(self):
+ """Last data received."""
+ return self._last_data
+
+ def last_json_data(self):
+ """Last data converted from JSON."""
+ return self._last_json_data
+
+ def emit_list(self, test_list):
+ self.listSignal.emit(test_list)
+
+ def emit_dict(self, test_dict):
+ self.dictSignal.emit(test_dict)
+
+ @Slot(list)
+ def list_slot(self, l):
+ self._last_data = l
+ print("list_slot", l)
+
+ @Slot(dict)
+ def dict_slot(self, d):
+ self._last_data = d
+ print("dict_slot", d)
+
+ @Slot(str)
+ def json_slot(self, s):
+ self._last_json_data = json.loads(s)
+ print(f'json_slot "{s}"->', self._last_json_data)
+
+
+class TestConnectionWithQml(TimedQGuiApplication):
+
+ def setUp(self):
+ super().setUp()
+ self._view = QQuickView()
+ self._obj = Obj()
+
+ self._view.setInitialProperties({"o": self._obj})
+ file = Path(__file__).resolve().parent / "signal_types.qml"
+ self.assertTrue(file.is_file())
+ self._view.setSource(QUrl.fromLocalFile(file))
+ root = self._view.rootObject()
+ self.assertTrue(root, quickview_errorstring(self._view))
+
+ def tearDown(self):
+ super().tearDown()
+ del self._view
+ self._view = None
+
+ def testVariantList(self):
+ self._obj.clear()
+ test_list = [1, 2]
+ before_refcount = sys.getrefcount(test_list)
+ self._obj.emit_list(test_list)
+ received = self._obj.last_data()
+ self.assertTrue(isinstance(received, list))
+ self.assertEqual(test_list, received)
+ self.assertEqual(test_list, self._obj.last_json_data())
+ refcount = sys.getrefcount(test_list)
+ self.assertEqual(before_refcount, refcount)
+
+ def testVariantDict(self):
+ self._obj.clear()
+ test_dict = {"1": 1, "2": 2}
+ before_refcount = sys.getrefcount(test_dict)
+ self._obj.emit_dict(test_dict)
+ received = self._obj.last_data()
+ self.assertTrue(isinstance(received, dict))
+ self.assertEqual(test_dict, received)
+ self.assertEqual(test_dict, self._obj.last_json_data())
+ refcount = sys.getrefcount(test_dict)
+ self.assertEqual(before_refcount, refcount)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/sources/pyside6/tests/QtQml/signal_types.qml b/sources/pyside6/tests/QtQml/signal_types.qml
new file mode 100644
index 000000000..6b03b3abd
--- /dev/null
+++ b/sources/pyside6/tests/QtQml/signal_types.qml
@@ -0,0 +1,26 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import QtQuick
+import test.Obj
+
+Rectangle {
+ visible: true
+ required property Obj o
+
+ Connections {
+ target: o
+ function onListSignal(list) {
+ var json_data = JSON.stringify(list)
+ console.log("Connections.onListSignal: " + typeof(list) + " " + json_data)
+ o.list_slot(list)
+ o.json_slot(json_data)
+ }
+ function onDictSignal(dict) {
+ var json_data = JSON.stringify(dict)
+ console.log("Connections.onDictSignal: " + typeof(dict) + " " + json_data)
+ o.dict_slot(dict)
+ o.json_slot(json_data)
+ }
+ }
+}
diff --git a/sources/pyside6/tests/QtQml/view.qml b/sources/pyside6/tests/QtQml/view.qml
index 5689366a5..8557271c2 100644
--- a/sources/pyside6/tests/QtQml/view.qml
+++ b/sources/pyside6/tests/QtQml/view.qml
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.0
diff --git a/sources/pyside6/tests/QtQml/viewmodel.qml b/sources/pyside6/tests/QtQml/viewmodel.qml
index 5a51ae82b..33db6072e 100644
--- a/sources/pyside6/tests/QtQml/viewmodel.qml
+++ b/sources/pyside6/tests/QtQml/viewmodel.qml
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.0
diff --git a/sources/pyside6/tests/QtQuick3D/CMakeLists.txt b/sources/pyside6/tests/QtQuick3D/CMakeLists.txt
new file mode 100644
index 000000000..2f7cb08b9
--- /dev/null
+++ b/sources/pyside6/tests/QtQuick3D/CMakeLists.txt
@@ -0,0 +1 @@
+# Please add some tests, here
diff --git a/sources/pyside6/tests/QtQuickTest/CMakeLists.txt b/sources/pyside6/tests/QtQuickTest/CMakeLists.txt
new file mode 100644
index 000000000..49f15e447
--- /dev/null
+++ b/sources/pyside6/tests/QtQuickTest/CMakeLists.txt
@@ -0,0 +1,3 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+PYSIDE_TEST(quicktestmainwithsetup/tst_quicktestmainwithsetup.py)
diff --git a/sources/pyside6/tests/QtQuickTest/quicktestmainwithsetup/data/tst_setup.qml b/sources/pyside6/tests/QtQuickTest/quicktestmainwithsetup/data/tst_setup.qml
new file mode 100644
index 000000000..2cfe936a6
--- /dev/null
+++ b/sources/pyside6/tests/QtQuickTest/quicktestmainwithsetup/data/tst_setup.qml
@@ -0,0 +1,20 @@
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import QtQuick 2.0
+import QtTest 1.2
+
+import QmlRegisterTypeCppModule 1.0
+import ImportPathQmlModule 1.0
+
+TestCase {
+ name: "setup"
+
+ QmlRegisterTypeCppType {}
+ ImportPathQmlType {}
+
+ function initTestCase()
+ {
+ verify(qmlEngineAvailableCalled)
+ }
+}
diff --git a/sources/pyside6/tests/QtQuickTest/quicktestmainwithsetup/imports/ImportPathQmlModule/ImportPathQmlType.qml b/sources/pyside6/tests/QtQuickTest/quicktestmainwithsetup/imports/ImportPathQmlModule/ImportPathQmlType.qml
new file mode 100644
index 000000000..617bdaaf6
--- /dev/null
+++ b/sources/pyside6/tests/QtQuickTest/quicktestmainwithsetup/imports/ImportPathQmlModule/ImportPathQmlType.qml
@@ -0,0 +1,3 @@
+import QtQuick 2.0
+
+Item {}
diff --git a/sources/pyside6/tests/QtQuickTest/quicktestmainwithsetup/imports/ImportPathQmlModule/qmldir b/sources/pyside6/tests/QtQuickTest/quicktestmainwithsetup/imports/ImportPathQmlModule/qmldir
new file mode 100644
index 000000000..dea7c9a8a
--- /dev/null
+++ b/sources/pyside6/tests/QtQuickTest/quicktestmainwithsetup/imports/ImportPathQmlModule/qmldir
@@ -0,0 +1,2 @@
+module ImportPathQmlModule
+ImportPathQmlType 1.0 ImportPathQmlType.qml
diff --git a/sources/pyside6/tests/QtQuickTest/quicktestmainwithsetup/quicktestmainwithsetup.pyproject b/sources/pyside6/tests/QtQuickTest/quicktestmainwithsetup/quicktestmainwithsetup.pyproject
new file mode 100644
index 000000000..61e89f4af
--- /dev/null
+++ b/sources/pyside6/tests/QtQuickTest/quicktestmainwithsetup/quicktestmainwithsetup.pyproject
@@ -0,0 +1,4 @@
+{
+ "files": ["tst_quicktestmainwithsetup.py", "data/tst_setup.qml",
+ "imports/ImportPathQmlModule/ImportPathQmlType.qml"]
+}
diff --git a/sources/pyside6/tests/QtQuickTest/quicktestmainwithsetup/tst_quicktestmainwithsetup.py b/sources/pyside6/tests/QtQuickTest/quicktestmainwithsetup/tst_quicktestmainwithsetup.py
new file mode 100644
index 000000000..33b2db08f
--- /dev/null
+++ b/sources/pyside6/tests/QtQuickTest/quicktestmainwithsetup/tst_quicktestmainwithsetup.py
@@ -0,0 +1,46 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import os
+import sys
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[2]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from pathlib import Path
+from PySide6.QtCore import QObject, Slot
+from PySide6.QtQml import QQmlEngine, qmlRegisterType
+from PySide6.QtQuickTest import QUICK_TEST_MAIN_WITH_SETUP
+
+
+"""Copy of the equivalent test in qtdeclarative."""
+
+
+class QmlRegisterTypeCppType(QObject):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+
+class CustomTestSetup(QObject):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+ @Slot(QQmlEngine)
+ def qmlEngineAvailable(self, qmlEngine):
+ # Test that modules are successfully imported by the TestCaseCollector
+ # that parses the QML files (but doesn't run them). For that to happen,
+ # qmlEngineAvailable() must be called before TestCaseCollector does its
+ # thing.
+ qmlRegisterType(QmlRegisterTypeCppType, "QmlRegisterTypeCppModule", 1, 0,
+ "QmlRegisterTypeCppType")
+ import_dir = Path(__file__).parent / "imports"
+ qmlEngine.addImportPath(os.fspath(import_dir))
+ qmlEngine.rootContext().setContextProperty("qmlEngineAvailableCalled", True)
+
+
+data_dir = Path(__file__).parent / "data"
+exitCode = QUICK_TEST_MAIN_WITH_SETUP("qquicktestsetup", CustomTestSetup, sys.argv,
+ os.fspath(data_dir))
+sys.exit(exitCode)
diff --git a/sources/pyside6/tests/QtScxml/QtScxml.pyproject b/sources/pyside6/tests/QtScxml/QtScxml.pyproject
new file mode 100644
index 000000000..21ee7c9ab
--- /dev/null
+++ b/sources/pyside6/tests/QtScxml/QtScxml.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["test_dynamic.py"]
+}
diff --git a/sources/pyside6/tests/QtScxml/test_dynamic.py b/sources/pyside6/tests/QtScxml/test_dynamic.py
index 6c5ae6a35..212d6f7c1 100644
--- a/sources/pyside6/tests/QtScxml/test_dynamic.py
+++ b/sources/pyside6/tests/QtScxml/test_dynamic.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -36,25 +11,42 @@ from init_paths import init_test_paths
init_test_paths(False)
from helper.timedqapplication import TimedQApplication
-from PySide6.QtCore import QObject, SIGNAL
-from PySide6.QtScxml import QScxmlStateMachine
+from PySide6.QtCore import QCoreApplication, QObject, Slot, SIGNAL, SLOT
+from PySide6.QtScxml import QScxmlStateMachine, QScxmlEvent
+
+
+class Receiver(QObject):
+ def __init__(self):
+ super().__init__()
+ self.eventReceived = False
+ self.reachedStable = False
+
+ @Slot(QScxmlEvent)
+ def handleEvent(self, event):
+ self.eventReceived = True
+
+ @Slot()
+ def slotReachedStable(self):
+ self.reachedStable = True
class testDynamicStateMachine(TimedQApplication):
def setUp(self):
- super(testDynamicStateMachine, self).setUp()
- filePath = os.path.join(os.path.dirname(__file__), 'trafficlight.scxml')
- self.assertTrue(os.path.exists(filePath))
- self._machine = QScxmlStateMachine.fromFile(filePath)
- self._machine.reachedStableState.connect(self._reachedStable())
+ super().setUp()
+ filePath = Path(__file__).parent / "trafficlight.scxml"
+ self.assertTrue(filePath.is_file())
+ self._machine = QScxmlStateMachine.fromFile(os.fspath(filePath))
+ self._receiver = Receiver()
+ self._machine.connectToEvent("*", self._receiver,
+ SLOT("handleEvent(QScxmlEvent)"))
+ self._machine.reachedStableState.connect(self._receiver.slotReachedStable)
self.assertTrue(not self._machine.parseErrors())
self.assertTrue(self._machine)
- def _reachedStable(self):
- self.app.quit()
-
def test(self):
self._machine.start()
+ while not self._receiver.reachedStable and not self._receiver.eventReceived:
+ QCoreApplication.processEvents()
if __name__ == '__main__':
diff --git a/sources/pyside6/tests/QtScxml/trafficlight.scxml b/sources/pyside6/tests/QtScxml/trafficlight.scxml
index 1b0fb6e9a..699409e68 100644
--- a/sources/pyside6/tests/QtScxml/trafficlight.scxml
+++ b/sources/pyside6/tests/QtScxml/trafficlight.scxml
@@ -1,32 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
-->
<scxml
xmlns="http://www.w3.org/2005/07/scxml"
diff --git a/sources/pyside6/tests/QtSensors/QtSensors.pyproject b/sources/pyside6/tests/QtSensors/QtSensors.pyproject
new file mode 100644
index 000000000..2090754d9
--- /dev/null
+++ b/sources/pyside6/tests/QtSensors/QtSensors.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["sensors.py"]
+}
diff --git a/sources/pyside6/tests/QtSensors/sensors.py b/sources/pyside6/tests/QtSensors/sensors.py
index e0595dba7..84bd1a92f 100644
--- a/sources/pyside6/tests/QtSensors/sensors.py
+++ b/sources/pyside6/tests/QtSensors/sensors.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QSensor'''
diff --git a/sources/pyside6/tests/QtSerialBus/CMakeLists.txt b/sources/pyside6/tests/QtSerialBus/CMakeLists.txt
new file mode 100644
index 000000000..2f7cb08b9
--- /dev/null
+++ b/sources/pyside6/tests/QtSerialBus/CMakeLists.txt
@@ -0,0 +1 @@
+# Please add some tests, here
diff --git a/sources/pyside6/tests/QtSerialPort/QtSerialPort.pyproject b/sources/pyside6/tests/QtSerialPort/QtSerialPort.pyproject
new file mode 100644
index 000000000..1b7c0f694
--- /dev/null
+++ b/sources/pyside6/tests/QtSerialPort/QtSerialPort.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["serial.py"]
+}
diff --git a/sources/pyside6/tests/QtSerialPort/serial.py b/sources/pyside6/tests/QtSerialPort/serial.py
index 8a7edb078..f1e54f2ac 100644
--- a/sources/pyside6/tests/QtSerialPort/serial.py
+++ b/sources/pyside6/tests/QtSerialPort/serial.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QSerialPort'''
diff --git a/sources/pyside6/tests/QtSpatialAudio/CMakeLists.txt b/sources/pyside6/tests/QtSpatialAudio/CMakeLists.txt
new file mode 100644
index 000000000..2f7cb08b9
--- /dev/null
+++ b/sources/pyside6/tests/QtSpatialAudio/CMakeLists.txt
@@ -0,0 +1 @@
+# Please add some tests, here
diff --git a/sources/pyside6/tests/QtSql/CMakeLists.txt b/sources/pyside6/tests/QtSql/CMakeLists.txt
index 8db3a9813..eedb31e98 100644
--- a/sources/pyside6/tests/QtSql/CMakeLists.txt
+++ b/sources/pyside6/tests/QtSql/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
PYSIDE_TEST(bug_1013.py)
PYSIDE_TEST(qsqldatabaseandqueries_test.py)
PYSIDE_TEST(qvarianttype_test.py)
diff --git a/sources/pyside6/tests/QtSql/QtSql.pyproject b/sources/pyside6/tests/QtSql/QtSql.pyproject
new file mode 100644
index 000000000..8282cb404
--- /dev/null
+++ b/sources/pyside6/tests/QtSql/QtSql.pyproject
@@ -0,0 +1,5 @@
+{
+ "files": ["bug_1013.py",
+ "qsqldatabaseandqueries_test.py",
+ "qvarianttype_test.py"]
+}
diff --git a/sources/pyside6/tests/QtSql/bug_1013.py b/sources/pyside6/tests/QtSql/bug_1013.py
index cdd0ea603..b47aecb77 100644
--- a/sources/pyside6/tests/QtSql/bug_1013.py
+++ b/sources/pyside6/tests/QtSql/bug_1013.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtSql/qsqldatabaseandqueries_test.py b/sources/pyside6/tests/QtSql/qsqldatabaseandqueries_test.py
index 13abb1cd1..a3e70a3a7 100644
--- a/sources/pyside6/tests/QtSql/qsqldatabaseandqueries_test.py
+++ b/sources/pyside6/tests/QtSql/qsqldatabaseandqueries_test.py
@@ -1,36 +1,10 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QtSql database creation, destruction and queries'''
-import sys
+import gc
import os
import sys
import unittest
@@ -42,6 +16,7 @@ init_test_paths(False)
from PySide6.QtSql import QSqlDatabase, QSqlQuery, QSqlTableModel
from PySide6.QtWidgets import QApplication, QWidget
+from helper.usesqapplication import UsesQApplication
class Foo(QWidget):
@@ -50,11 +25,12 @@ class Foo(QWidget):
self.model = QSqlTableModel()
-class SqlDatabaseCreationDestructionAndQueries(unittest.TestCase):
+class SqlDatabaseCreationDestructionAndQueries(UsesQApplication):
'''Test cases for QtSql database creation, destruction and queries'''
def setUp(self):
# Acquire resources
+ super().setUp()
self.assertFalse(not QSqlDatabase.drivers(), "installed Qt has no DB drivers")
self.assertTrue("QSQLITE" in QSqlDatabase.drivers(), "\"QSQLITE\" driver not available in this Qt version")
self.db = QSqlDatabase.addDatabase("QSQLITE")
@@ -66,6 +42,9 @@ class SqlDatabaseCreationDestructionAndQueries(unittest.TestCase):
self.db.close()
QSqlDatabase.removeDatabase(":memory:")
del self.db
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
+ super().tearDown()
def testTableCreationAndDestruction(self):
# Test table creation and destruction
@@ -95,12 +74,11 @@ class SqlDatabaseCreationDestructionAndQueries(unittest.TestCase):
self.assertEqual(lastname, 'Harrison')
def testTableModelDeletion(self):
- app = QApplication([])
-
bar = Foo()
model = bar.model
del bar
- del app
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
if __name__ == '__main__':
diff --git a/sources/pyside6/tests/QtSql/qvarianttype_test.py b/sources/pyside6/tests/QtSql/qvarianttype_test.py
index 2b3dfa4b0..3999be20e 100644
--- a/sources/pyside6/tests/QtSql/qvarianttype_test.py
+++ b/sources/pyside6/tests/QtSql/qvarianttype_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QVariant::Type converter'''
import os
@@ -42,11 +17,13 @@ from PySide6.QtSql import QSqlField
class QVariantTypeTest(unittest.TestCase):
def testQVariantType(self):
+ cmp_id = QMetaType.QString.value
+
f = QSqlField("name", QMetaType(QMetaType.QString))
- self.assertEqual(f.metaType().id(), QMetaType.QString)
+ self.assertEqual(f.metaType().id(), cmp_id)
f = QSqlField("name", QMetaType.fromName(b"QString"))
- self.assertEqual(f.metaType().id(), QMetaType.QString)
+ self.assertEqual(f.metaType().id(), cmp_id)
f = QSqlField("name", QMetaType.fromName(b"double"))
self.assertEqual(f.metaType(), float)
diff --git a/sources/pyside6/tests/QtStateMachine/CMakeLists.txt b/sources/pyside6/tests/QtStateMachine/CMakeLists.txt
index 2d41653af..e42f8cc8b 100644
--- a/sources/pyside6/tests/QtStateMachine/CMakeLists.txt
+++ b/sources/pyside6/tests/QtStateMachine/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
PYSIDE_TEST(bug_1031.py)
PYSIDE_TEST(qabstracttransition_test.py)
PYSIDE_TEST(qstatemachine_test.py)
diff --git a/sources/pyside6/tests/QtStateMachine/QtStateMachine.pyproject b/sources/pyside6/tests/QtStateMachine/QtStateMachine.pyproject
new file mode 100644
index 000000000..46c1b8b12
--- /dev/null
+++ b/sources/pyside6/tests/QtStateMachine/QtStateMachine.pyproject
@@ -0,0 +1,7 @@
+{
+ "files": ["bug_1031.py",
+ "qabstracttransition_test.py",
+ "qstate_test.py",
+ "qstatemachine_test.py",
+ "setprop_on_ctor_test.py"]
+}
diff --git a/sources/pyside6/tests/QtStateMachine/bug_1031.py b/sources/pyside6/tests/QtStateMachine/bug_1031.py
index 7425a7208..7fe5fc1e6 100644
--- a/sources/pyside6/tests/QtStateMachine/bug_1031.py
+++ b/sources/pyside6/tests/QtStateMachine/bug_1031.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtStateMachine/qabstracttransition_test.py b/sources/pyside6/tests/QtStateMachine/qabstracttransition_test.py
index 87f140580..9c52bfd59 100644
--- a/sources/pyside6/tests/QtStateMachine/qabstracttransition_test.py
+++ b/sources/pyside6/tests/QtStateMachine/qabstracttransition_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtStateMachine/qstate_test.py b/sources/pyside6/tests/QtStateMachine/qstate_test.py
index b00ce94b8..4a33141c8 100644
--- a/sources/pyside6/tests/QtStateMachine/qstate_test.py
+++ b/sources/pyside6/tests/QtStateMachine/qstate_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtStateMachine/qstatemachine_test.py b/sources/pyside6/tests/QtStateMachine/qstatemachine_test.py
index 537972779..5e17b3a1f 100644
--- a/sources/pyside6/tests/QtStateMachine/qstatemachine_test.py
+++ b/sources/pyside6/tests/QtStateMachine/qstatemachine_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -41,10 +15,10 @@ from PySide6.QtCore import (QObject, QParallelAnimationGroup,
QPropertyAnimation, QTimer, SIGNAL)
from PySide6.QtStateMachine import (QFinalState, QState, QStateMachine)
-from helper.usesqcoreapplication import UsesQCoreApplication
+from helper.usesqapplication import UsesQApplication
-class QStateMachineTest(UsesQCoreApplication):
+class QStateMachineTest(UsesQApplication):
def cb(self, *args):
self.assertEqual(self.machine.defaultAnimations(), [self.anim])
@@ -70,7 +44,7 @@ class QStateMachineTest(UsesQCoreApplication):
self.app.exec()
-class QSetConverterTest(UsesQCoreApplication):
+class QSetConverterTest(UsesQApplication):
'''Test converter of QSet toPython using QStateAnimation.configuration'''
def testBasic(self):
diff --git a/sources/pyside6/tests/QtStateMachine/setprop_on_ctor_test.py b/sources/pyside6/tests/QtStateMachine/setprop_on_ctor_test.py
index e192a6f63..48f397282 100644
--- a/sources/pyside6/tests/QtStateMachine/setprop_on_ctor_test.py
+++ b/sources/pyside6/tests/QtStateMachine/setprop_on_ctor_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtSvg/QtSvg.pyproject b/sources/pyside6/tests/QtSvg/QtSvg.pyproject
new file mode 100644
index 000000000..9bc41d710
--- /dev/null
+++ b/sources/pyside6/tests/QtSvg/QtSvg.pyproject
@@ -0,0 +1,4 @@
+{
+ "files": ["qsvggenerator_test.py",
+ "qsvgrenderer_test.py"]
+}
diff --git a/sources/pyside6/tests/QtSvg/qsvggenerator_test.py b/sources/pyside6/tests/QtSvg/qsvggenerator_test.py
index 2dd65047e..a06cefb37 100644
--- a/sources/pyside6/tests/QtSvg/qsvggenerator_test.py
+++ b/sources/pyside6/tests/QtSvg/qsvggenerator_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtSvg/qsvgrenderer_test.py b/sources/pyside6/tests/QtSvg/qsvgrenderer_test.py
index fdc52c063..b4422001f 100644
--- a/sources/pyside6/tests/QtSvg/qsvgrenderer_test.py
+++ b/sources/pyside6/tests/QtSvg/qsvgrenderer_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtSvgWidgets/QtSvgWidgets.pyproject b/sources/pyside6/tests/QtSvgWidgets/QtSvgWidgets.pyproject
new file mode 100644
index 000000000..6b441ea3e
--- /dev/null
+++ b/sources/pyside6/tests/QtSvgWidgets/QtSvgWidgets.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["qsvgwidget_test.py"]
+}
diff --git a/sources/pyside6/tests/QtSvgWidgets/qsvgwidget_test.py b/sources/pyside6/tests/QtSvgWidgets/qsvgwidget_test.py
index 00c6bed27..552d6f49a 100644
--- a/sources/pyside6/tests/QtSvgWidgets/qsvgwidget_test.py
+++ b/sources/pyside6/tests/QtSvgWidgets/qsvgwidget_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtTest/CMakeLists.txt b/sources/pyside6/tests/QtTest/CMakeLists.txt
index c7d142dc4..21a585ea4 100644
--- a/sources/pyside6/tests/QtTest/CMakeLists.txt
+++ b/sources/pyside6/tests/QtTest/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
PYSIDE_TEST(click_test.py)
PYSIDE_TEST(eventfilter_test.py)
# The test is currently permanently broken, needs to be fixed.
diff --git a/sources/pyside6/tests/QtTest/QtTest.pyproject b/sources/pyside6/tests/QtTest/QtTest.pyproject
new file mode 100644
index 000000000..151c0ef08
--- /dev/null
+++ b/sources/pyside6/tests/QtTest/QtTest.pyproject
@@ -0,0 +1,7 @@
+{
+ "files": ["click_test.py",
+ "eventfilter_test.py",
+ "qsignalspy_test.py",
+ "qvalidator_test.py",
+ "touchevent_test.py"]
+}
diff --git a/sources/pyside6/tests/QtTest/click_test.py b/sources/pyside6/tests/QtTest/click_test.py
index 3d027da7a..da8b2dcf6 100644
--- a/sources/pyside6/tests/QtTest/click_test.py
+++ b/sources/pyside6/tests/QtTest/click_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''QtTest mouse click functionalities'''
diff --git a/sources/pyside6/tests/QtTest/eventfilter_test.py b/sources/pyside6/tests/QtTest/eventfilter_test.py
index b57f13847..c57974c0d 100644
--- a/sources/pyside6/tests/QtTest/eventfilter_test.py
+++ b/sources/pyside6/tests/QtTest/eventfilter_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Tests for QKeyEvent'''
diff --git a/sources/pyside6/tests/QtTest/qsignalspy_test.py b/sources/pyside6/tests/QtTest/qsignalspy_test.py
index aa1b65bfa..06f05b4b8 100644
--- a/sources/pyside6/tests/QtTest/qsignalspy_test.py
+++ b/sources/pyside6/tests/QtTest/qsignalspy_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''QtTest QSignalSpy'''
diff --git a/sources/pyside6/tests/QtTest/qvalidator_test.py b/sources/pyside6/tests/QtTest/qvalidator_test.py
index 4ee1036f3..2382b8605 100644
--- a/sources/pyside6/tests/QtTest/qvalidator_test.py
+++ b/sources/pyside6/tests/QtTest/qvalidator_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtTest/touchevent_test.py b/sources/pyside6/tests/QtTest/touchevent_test.py
index f6e264601..bc07c25ed 100644
--- a/sources/pyside6/tests/QtTest/touchevent_test.py
+++ b/sources/pyside6/tests/QtTest/touchevent_test.py
@@ -1,31 +1,7 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+import gc
import os
import sys
import unittest
@@ -62,6 +38,8 @@ class MyWidget(QWidget):
o.press(0, QPoint(10, 10))
o.commit()
del o
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
QTest.touchEvent(self, self._device).press(0, QPoint(10, 10))
QTest.touchEvent(self, self._device).stationary(0).press(1, QPoint(40, 10))
diff --git a/sources/pyside6/tests/QtTextToSpeech/QtTextToSpeech.pyproject b/sources/pyside6/tests/QtTextToSpeech/QtTextToSpeech.pyproject
new file mode 100644
index 000000000..eef38fc22
--- /dev/null
+++ b/sources/pyside6/tests/QtTextToSpeech/QtTextToSpeech.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["qtexttospeech_test.py"]
+}
diff --git a/sources/pyside6/tests/QtTextToSpeech/qtexttospeech_test.py b/sources/pyside6/tests/QtTextToSpeech/qtexttospeech_test.py
index bae376b38..6ff66c047 100644
--- a/sources/pyside6/tests/QtTextToSpeech/qtexttospeech_test.py
+++ b/sources/pyside6/tests/QtTextToSpeech/qtexttospeech_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QTextToSpeech methods'''
@@ -42,6 +16,7 @@ init_test_paths(False)
from helper.usesqapplication import UsesQApplication
from PySide6.QtCore import QTimer
+from PySide6.QtWidgets import QApplication
try:
from PySide6.QtTextToSpeech import QTextToSpeech, QVoice
@@ -54,6 +29,8 @@ class QTextToSpeechTestCase(UsesQApplication):
'''Tests related to QTextToSpeech'''
def testSay(self):
engines = QTextToSpeech.availableEngines()
+ if len(engines) > 1 and engines[0] == "mock":
+ engines[0], engines[1] = engines[1], engines[0]
if not engines:
print('No QTextToSpeech engines available')
else:
diff --git a/sources/pyside6/tests/QtUiTools/CMakeLists.txt b/sources/pyside6/tests/QtUiTools/CMakeLists.txt
index 68ed7f134..08c6f1577 100644
--- a/sources/pyside6/tests/QtUiTools/CMakeLists.txt
+++ b/sources/pyside6/tests/QtUiTools/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
PYSIDE_TEST(bug_360.py)
PYSIDE_TEST(bug_376.py)
PYSIDE_TEST(bug_392.py)
diff --git a/sources/pyside6/tests/QtUiTools/QtUiTools.pyproject b/sources/pyside6/tests/QtUiTools/QtUiTools.pyproject
new file mode 100644
index 000000000..a83758b87
--- /dev/null
+++ b/sources/pyside6/tests/QtUiTools/QtUiTools.pyproject
@@ -0,0 +1,28 @@
+{
+ "files": ["action.ui",
+ "bug_1060.py",
+ "bug_1060.ui",
+ "bug_360.py",
+ "bug_376.py",
+ "bug_392.py",
+ "bug_426.py",
+ "bug_426.ui",
+ "bug_552.py",
+ "bug_552.ui",
+ "bug_797.py",
+ "bug_909.py",
+ "bug_909.ui",
+ "bug_913.py",
+ "bug_913.ui",
+ "bug_958.py",
+ "bug_958.ui",
+ "bug_965.py",
+ "bug_965.ui",
+ "loadUiType_test.py",
+ "minimal.ui",
+ "pycustomwidget.ui",
+ "pycustomwidget2.ui",
+ "test.ui",
+ "ui_test.py",
+ "uiloader_test.py"]
+}
diff --git a/sources/pyside6/tests/QtUiTools/bug_1060.py b/sources/pyside6/tests/QtUiTools/bug_1060.py
index 106f7e515..52624a2a9 100644
--- a/sources/pyside6/tests/QtUiTools/bug_1060.py
+++ b/sources/pyside6/tests/QtUiTools/bug_1060.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
''' unit test for BUG #1060 '''
@@ -52,6 +27,6 @@ if __name__ == "__main__":
app = QApplication([])
file = Path(__file__).resolve().parent / 'bug_1060.ui'
- assert(file.is_file())
+ assert (file.is_file())
ui = MyQUiLoader().load(file)
ui.show()
diff --git a/sources/pyside6/tests/QtUiTools/bug_360.py b/sources/pyside6/tests/QtUiTools/bug_360.py
index b4890f0e3..8ca764eae 100644
--- a/sources/pyside6/tests/QtUiTools/bug_360.py
+++ b/sources/pyside6/tests/QtUiTools/bug_360.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtUiTools/bug_376.py b/sources/pyside6/tests/QtUiTools/bug_376.py
index f299fabc4..eefc1fe05 100644
--- a/sources/pyside6/tests/QtUiTools/bug_376.py
+++ b/sources/pyside6/tests/QtUiTools/bug_376.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtUiTools/bug_392.py b/sources/pyside6/tests/QtUiTools/bug_392.py
index 0211ad3ba..4d69fdbec 100644
--- a/sources/pyside6/tests/QtUiTools/bug_392.py
+++ b/sources/pyside6/tests/QtUiTools/bug_392.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtUiTools/bug_426.py b/sources/pyside6/tests/QtUiTools/bug_426.py
index 65d754ca3..3a568e4e2 100644
--- a/sources/pyside6/tests/QtUiTools/bug_426.py
+++ b/sources/pyside6/tests/QtUiTools/bug_426.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtUiTools/bug_552.py b/sources/pyside6/tests/QtUiTools/bug_552.py
index d79913424..06a6b72a4 100644
--- a/sources/pyside6/tests/QtUiTools/bug_552.py
+++ b/sources/pyside6/tests/QtUiTools/bug_552.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -46,7 +21,7 @@ class View_1(QWidget):
super().__init__()
loader = QUiLoader()
file = Path(__file__).resolve().parent / 'bug_552.ui'
- assert(file.is_file())
+ assert (file.is_file())
widget = loader.load(os.fspath(file), self)
self.children = []
for child in widget.findChildren(QObject, None):
diff --git a/sources/pyside6/tests/QtUiTools/bug_797.py b/sources/pyside6/tests/QtUiTools/bug_797.py
index 1185302e2..3dae7afb7 100644
--- a/sources/pyside6/tests/QtUiTools/bug_797.py
+++ b/sources/pyside6/tests/QtUiTools/bug_797.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -43,7 +18,7 @@ from PySide6.QtWidgets import QApplication, QWidget
app = QApplication([])
loader = QUiLoader()
file = Path(__file__).resolve().parent / 'bug_552.ui'
-assert(file.is_file())
+assert (file.is_file())
file = QFile(file)
w = QWidget()
# An exception can't be thrown
diff --git a/sources/pyside6/tests/QtUiTools/bug_909.py b/sources/pyside6/tests/QtUiTools/bug_909.py
index be6376735..cd4d50a0b 100644
--- a/sources/pyside6/tests/QtUiTools/bug_909.py
+++ b/sources/pyside6/tests/QtUiTools/bug_909.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtUiTools/bug_913.py b/sources/pyside6/tests/QtUiTools/bug_913.py
index f2ec3415f..85df29d11 100644
--- a/sources/pyside6/tests/QtUiTools/bug_913.py
+++ b/sources/pyside6/tests/QtUiTools/bug_913.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtUiTools/bug_958.py b/sources/pyside6/tests/QtUiTools/bug_958.py
index ddb6fc9ef..2f8dfab62 100644
--- a/sources/pyside6/tests/QtUiTools/bug_958.py
+++ b/sources/pyside6/tests/QtUiTools/bug_958.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -48,7 +23,7 @@ class Gui_Qt(QMainWindow):
# this used to cause a segfault because the old inject code used to destroy the parent layout
file = Path(__file__).resolve().parent / 'bug_958.ui'
- assert(file.is_file())
+ assert (file.is_file())
self._cw = lLoader.load(file, self)
self.setCentralWidget(self._cw)
diff --git a/sources/pyside6/tests/QtUiTools/bug_965.py b/sources/pyside6/tests/QtUiTools/bug_965.py
index be6984c4e..2308cbeed 100644
--- a/sources/pyside6/tests/QtUiTools/bug_965.py
+++ b/sources/pyside6/tests/QtUiTools/bug_965.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtUiTools/loadUiType_test.py b/sources/pyside6/tests/QtUiTools/loadUiType_test.py
index 44de5b6d2..b0842318c 100644
--- a/sources/pyside6/tests/QtUiTools/loadUiType_test.py
+++ b/sources/pyside6/tests/QtUiTools/loadUiType_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtUiTools/ui_test.py b/sources/pyside6/tests/QtUiTools/ui_test.py
index 553e9192d..4e2fa808b 100644
--- a/sources/pyside6/tests/QtUiTools/ui_test.py
+++ b/sources/pyside6/tests/QtUiTools/ui_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtUiTools/uiloader_test.py b/sources/pyside6/tests/QtUiTools/uiloader_test.py
index bc0fd93c7..19e26912e 100644
--- a/sources/pyside6/tests/QtUiTools/uiloader_test.py
+++ b/sources/pyside6/tests/QtUiTools/uiloader_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWebEngineCore/CMakeLists.txt b/sources/pyside6/tests/QtWebEngineCore/CMakeLists.txt
index 06a9e9cdf..c855d119d 100644
--- a/sources/pyside6/tests/QtWebEngineCore/CMakeLists.txt
+++ b/sources/pyside6/tests/QtWebEngineCore/CMakeLists.txt
@@ -1,29 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
PYSIDE_TEST(web_engine_custom_scheme.py)
+PYSIDE_TEST(qwebenginecookiestore_test.py)
diff --git a/sources/pyside6/tests/QtWebEngineCore/QtWebEngineCore.pyproject b/sources/pyside6/tests/QtWebEngineCore/QtWebEngineCore.pyproject
new file mode 100644
index 000000000..25923c2a8
--- /dev/null
+++ b/sources/pyside6/tests/QtWebEngineCore/QtWebEngineCore.pyproject
@@ -0,0 +1,4 @@
+{
+ "files": ["qwebenginecookiestore_test.py",
+ "web_engine_custom_scheme.py"]
+}
diff --git a/sources/pyside6/tests/QtWebEngineCore/qwebenginecookiestore_test.py b/sources/pyside6/tests/QtWebEngineCore/qwebenginecookiestore_test.py
new file mode 100644
index 000000000..a30c72a8e
--- /dev/null
+++ b/sources/pyside6/tests/QtWebEngineCore/qwebenginecookiestore_test.py
@@ -0,0 +1,46 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from PySide6.QtCore import QUrl
+from PySide6.QtWidgets import QApplication
+from PySide6.QtWebEngineWidgets import QWebEngineView
+
+from helper.usesqapplication import UsesQApplication
+
+
+class TestQWebEngineCookieStore(UsesQApplication):
+ def testBasicFilter(self):
+ src_dir = Path(__file__).resolve().parent
+ html_path = src_dir / "resources" / "index.html"
+ view = QWebEngineView()
+ cookie_store = view.page().profile().cookieStore()
+ firstPartyUrlPaths = []
+
+ def cookie_filter(request):
+ nonlocal firstPartyUrlPaths
+ firstPartyUrlPaths.append(Path(request.firstPartyUrl.toLocalFile()))
+ return False
+
+ cookie_store.setCookieFilter(cookie_filter)
+ view.loadFinished.connect(self._slot_loaded)
+ view.load(QUrl.fromLocalFile(html_path))
+ view.show()
+ self.app.exec()
+
+ self.assertEqual(len(firstPartyUrlPaths), 2)
+ self.assertListEqual(firstPartyUrlPaths, [html_path, html_path])
+
+ def _slot_loaded(self):
+ QApplication.quit()
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/QtWebEngineCore/resources/index.html b/sources/pyside6/tests/QtWebEngineCore/resources/index.html
new file mode 100644
index 000000000..4c020b714
--- /dev/null
+++ b/sources/pyside6/tests/QtWebEngineCore/resources/index.html
@@ -0,0 +1,12 @@
+<html>
+ <head>
+ <script type="text/javascript">
+function setCookie() {
+ document.cookie = "test1"
+ document.cookie = "test2"
+}
+</script>
+ </head>
+ <body onload="setCookie()">
+ </body>
+</html>
diff --git a/sources/pyside6/tests/QtWebEngineCore/web_engine_custom_scheme.py b/sources/pyside6/tests/QtWebEngineCore/web_engine_custom_scheme.py
index ed353887e..10c8e88d7 100644
--- a/sources/pyside6/tests/QtWebEngineCore/web_engine_custom_scheme.py
+++ b/sources/pyside6/tests/QtWebEngineCore/web_engine_custom_scheme.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWebEngineWidgets/CMakeLists.txt b/sources/pyside6/tests/QtWebEngineWidgets/CMakeLists.txt
index b4afb06d2..ce2c6eeae 100644
--- a/sources/pyside6/tests/QtWebEngineWidgets/CMakeLists.txt
+++ b/sources/pyside6/tests/QtWebEngineWidgets/CMakeLists.txt
@@ -1,29 +1,4 @@
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
PYSIDE_TEST(pyside-474-qtwebengineview.py)
diff --git a/sources/pyside6/tests/QtWebEngineWidgets/QtWebEngineWidgets.pyproject b/sources/pyside6/tests/QtWebEngineWidgets/QtWebEngineWidgets.pyproject
new file mode 100644
index 000000000..e44646682
--- /dev/null
+++ b/sources/pyside6/tests/QtWebEngineWidgets/QtWebEngineWidgets.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["pyside-474-qtwebengineview.py"]
+}
diff --git a/sources/pyside6/tests/QtWebEngineWidgets/pyside-474-qtwebengineview.py b/sources/pyside6/tests/QtWebEngineWidgets/pyside-474-qtwebengineview.py
index d65975053..3739e956a 100644
--- a/sources/pyside6/tests/QtWebEngineWidgets/pyside-474-qtwebengineview.py
+++ b/sources/pyside6/tests/QtWebEngineWidgets/pyside-474-qtwebengineview.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
from functools import partial
import os
@@ -76,7 +51,7 @@ class MainTest(unittest.TestCase):
QCoreApplication.quit()
self._view.page().runJavaScript("document.title", 1,
partial(self.javascript_callback))
- self._view.findText("fox", QWebEnginePage.FindFlags(),
+ self._view.findText("fox", QWebEnginePage.FindFlag(0),
partial(self.found_callback))
diff --git a/sources/pyside6/tests/QtWidgets/CMakeLists.txt b/sources/pyside6/tests/QtWidgets/CMakeLists.txt
index 5ec056a26..01b7d08ea 100644
--- a/sources/pyside6/tests/QtWidgets/CMakeLists.txt
+++ b/sources/pyside6/tests/QtWidgets/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
#Keep this in alphabetical sort
PYSIDE_TEST(action_clear.py)
@@ -7,7 +10,6 @@ PYSIDE_TEST(application_test.py)
PYSIDE_TEST(bug_172.py)
PYSIDE_TEST(bug_243.py)
PYSIDE_TEST(bug_307.py)
-PYSIDE_TEST(bug_324.py)
PYSIDE_TEST(bug_338.py)
PYSIDE_TEST(bug_389.py)
PYSIDE_TEST(bug_400.py)
@@ -15,7 +17,7 @@ PYSIDE_TEST(bug_429.py)
PYSIDE_TEST(bug_430.py)
PYSIDE_TEST(bug_433.py)
PYSIDE_TEST(bug_467.py)
-PYSIDE_TEST(bug_493.py)
+PYSIDE_TEST(bug_480.py)
PYSIDE_TEST(bug_512.py)
PYSIDE_TEST(bug_525.py)
PYSIDE_TEST(bug_546.py)
@@ -43,7 +45,6 @@ PYSIDE_TEST(bug_728.py)
PYSIDE_TEST(bug_736.py)
PYSIDE_TEST(bug_750.py)
PYSIDE_TEST(bug_778.py)
-PYSIDE_TEST(bug_785.py)
PYSIDE_TEST(bug_793.py)
PYSIDE_TEST(bug_811.py)
PYSIDE_TEST(bug_834.py)
@@ -68,7 +69,6 @@ PYSIDE_TEST(bug_1006.py)
PYSIDE_TEST(bug_1048.py)
PYSIDE_TEST(bug_1077.py)
PYSIDE_TEST(customproxywidget_test.py)
-PYSIDE_TEST(event_filter_test.py)
PYSIDE_TEST(grandparent_method_test.py)
PYSIDE_TEST(hashabletype_test.py)
PYSIDE_TEST(keep_reference_test.py)
@@ -84,7 +84,7 @@ PYSIDE_TEST(qapp_issue_585.py)
PYSIDE_TEST(qapp_test.py)
PYSIDE_TEST(qapplication_test.py)
PYSIDE_TEST(qapplication_exit_segfault_test.py)
-PYSIDE_TEST(qbrush_test.py)
+PYSIDE_TEST(qdialog_test.py)
PYSIDE_TEST(qdynamic_signal.py)
# TODO: This passes, but requires manual button clicking (at least on mac)
#PYSIDE_TEST(qfontdialog_test.py)
@@ -94,7 +94,6 @@ PYSIDE_TEST(qgraphicsitem_isblocked_test.py)
PYSIDE_TEST(qgraphicsobjectreimpl_test.py)
PYSIDE_TEST(qgraphicsproxywidget_test.py)
PYSIDE_TEST(qgraphicsscene_test.py)
-PYSIDE_TEST(qimage_test.py)
PYSIDE_TEST(qinputdialog_get_test.py)
PYSIDE_TEST(qkeysequenceedit_test.py)
PYSIDE_TEST(qlabel_test.py)
@@ -107,15 +106,11 @@ PYSIDE_TEST(qmainwindow_test.py)
PYSIDE_TEST(qmenu_test.py)
PYSIDE_TEST(qmenuadd_test.py)
PYSIDE_TEST(qobject_mi_test.py)
-PYSIDE_TEST(qpen_test.py)
PYSIDE_TEST(qpicture_test.py)
-PYSIDE_TEST(qpixmap_constructor.py)
PYSIDE_TEST(qpushbutton_test.py)
-PYSIDE_TEST(qshortcut_test.py)
PYSIDE_TEST(qsplitter_test.py)
-PYSIDE_TEST(qstandarditemmodel_test.py)
-PYSIDE_TEST(qstring_qkeysequence_test.py)
PYSIDE_TEST(qstyle_test.py)
+PYSIDE_TEST(qstyleoption_test.py)
PYSIDE_TEST(qtableview_test.py)
PYSIDE_TEST(qtabwidget_test.py)
PYSIDE_TEST(qtabwidgetclear_test.py)
diff --git a/sources/pyside6/tests/QtWidgets/QtWidgets.pyproject b/sources/pyside6/tests/QtWidgets/QtWidgets.pyproject
new file mode 100644
index 000000000..36c000165
--- /dev/null
+++ b/sources/pyside6/tests/QtWidgets/QtWidgets.pyproject
@@ -0,0 +1,130 @@
+{
+ "files": ["action_clear.py",
+ "add_action_test.py",
+ "api2_test.py",
+ "application_test.py",
+ "bug_1002.py",
+ "bug_1006.py",
+ "bug_1048.py",
+ "bug_1077.py",
+ "bug_172.py",
+ "bug_243.py",
+ "bug_307.py",
+ "bug_338.py",
+ "bug_389.py",
+ "bug_400.py",
+ "bug_429.py",
+ "bug_430.py",
+ "bug_433.py",
+ "bug_467.py",
+ "bug_480.py",
+ "bug_512.py",
+ "bug_525.py",
+ "bug_546.py",
+ "bug_547.py",
+ "bug_549.py",
+ "bug_569.py",
+ "bug_575.py",
+ "bug_576.py",
+ "bug_585.py",
+ "bug_589.py",
+ "bug_635.py",
+ "bug_640.py",
+ "bug_653.py",
+ "bug_662.py",
+ "bug_667.py",
+ "bug_668.py",
+ "bug_674.py",
+ "bug_675.py",
+ "bug_688.py",
+ "bug_693.py",
+ "bug_696.py",
+ "bug_711.py",
+ "bug_722.py",
+ "bug_728.py",
+ "bug_736.py",
+ "bug_750.py",
+ "bug_778.py",
+ "bug_793.py",
+ "bug_811.py",
+ "bug_834.py",
+ "bug_836.py",
+ "bug_844.py",
+ "bug_854.py",
+ "bug_860.py",
+ "bug_862.py",
+ "bug_871.py",
+ "bug_879.py",
+ "bug_919.py",
+ "bug_921.py",
+ "bug_941.py",
+ "bug_964.py",
+ "bug_967.py",
+ "bug_972.py",
+ "bug_979.py",
+ "bug_988.py",
+ "bug_998.py",
+ "customproxywidget_test.py",
+ "grandparent_method_test.py",
+ "hashabletype_test.py",
+ "import_test.py",
+ "keep_reference_test.py",
+ "missing_symbols_test.py",
+ "paint_event_test.py",
+ "parent_method_test.py",
+ "private_mangle_test.py",
+ "python_properties_test.py",
+ "qabstracttextdocumentlayout_test.py",
+ "qaccessible_test.py",
+ "qaction_test.py",
+ "qapp_issue_585.py",
+ "qapp_test.py",
+ "qapplication_exit_segfault_test.py",
+ "qapplication_test.py",
+ "qcolormap_test.py",
+ "qdynamic_signal.py",
+ "qfontdialog_test.py",
+ "qformlayout_test.py",
+ "qgraphicsitem_isblocked_test.py",
+ "qgraphicsitem_test.py",
+ "qgraphicsobjectreimpl_test.py",
+ "qgraphicsproxywidget_test.py",
+ "qgraphicsscene_test.py",
+ "qinputdialog_get_test.py",
+ "qkeysequenceedit_test.py",
+ "qlabel_test.py",
+ "qlayout_ref_test.py",
+ "qlayout_test.py",
+ "qlcdnumber_test.py",
+ "qlistwidget_test.py",
+ "qlistwidgetitem_test.py",
+ "qmainwindow_test.py",
+ "qmenu_test.py",
+ "qmenuadd_test.py",
+ "qobject_mi_test.py",
+ "qpicture_test.py",
+ "qpushbutton_test.py",
+ "qsplitter_test.py",
+ "qstyle_test.py",
+ "qstyleoption_test.py",
+ "qtableview_test.py",
+ "qtabwidget_test.py",
+ "qtabwidgetclear_test.py",
+ "qtextedit_signal_test.py",
+ "qtextedit_test.py",
+ "qtoolbar_test.py",
+ "qtoolbox_test.py",
+ "qtreeview_test.py",
+ "qtreewidget_test.py",
+ "qtreewidgetitem_test.py",
+ "qvariant_test.py",
+ "qwidget_setlayout_test.py",
+ "qwidget_test.py",
+ "reference_count_test.py",
+ "signature_test.py",
+ "standardpixmap_test.py",
+ "test_module_template.py",
+ "virtual_protected_inheritance_test.py",
+ "virtual_pure_override_test.py",
+ "wrong_return_test.py"]
+}
diff --git a/sources/pyside6/tests/QtWidgets/action_clear.py b/sources/pyside6/tests/QtWidgets/action_clear.py
index f9f416a9c..5563a4899 100644
--- a/sources/pyside6/tests/QtWidgets/action_clear.py
+++ b/sources/pyside6/tests/QtWidgets/action_clear.py
@@ -1,31 +1,7 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+import gc
import os
import sys
import unittest
@@ -53,6 +29,8 @@ class TestQActionLifeCycle(UsesQApplication):
act = None
self.assertFalse(self._actionDestroyed)
menu.clear()
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertTrue(self._actionDestroyed)
def testMenuBar(self):
@@ -62,8 +40,12 @@ class TestQActionLifeCycle(UsesQApplication):
act = menuBar.addAction("MENU")
_ref = weakref.ref(act, self.actionDestroyed)
act = None
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertFalse(self._actionDestroyed)
menuBar.clear()
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertTrue(self._actionDestroyed)
def testToolBar(self):
@@ -73,8 +55,12 @@ class TestQActionLifeCycle(UsesQApplication):
act = toolBar.addAction("MENU")
_ref = weakref.ref(act, self.actionDestroyed)
act = None
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertFalse(self._actionDestroyed)
toolBar.clear()
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertTrue(self._actionDestroyed)
diff --git a/sources/pyside6/tests/QtWidgets/add_action_test.py b/sources/pyside6/tests/QtWidgets/add_action_test.py
index 5342b9d55..3ca1660a9 100644
--- a/sources/pyside6/tests/QtWidgets/add_action_test.py
+++ b/sources/pyside6/tests/QtWidgets/add_action_test.py
@@ -1,33 +1,9 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Tests for QMenuBar.addAction(identifier, callback) calls'''
+import gc
import os
import sys
import unittest
@@ -52,6 +28,8 @@ class AddActionTest(UsesQApplication):
del self.called
except AttributeError:
pass
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
super(AddActionTest, self).tearDown()
def _callback(self):
diff --git a/sources/pyside6/tests/QtWidgets/api2_test.py b/sources/pyside6/tests/QtWidgets/api2_test.py
index c71de90d3..e38672016 100644
--- a/sources/pyside6/tests/QtWidgets/api2_test.py
+++ b/sources/pyside6/tests/QtWidgets/api2_test.py
@@ -1,32 +1,5 @@
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for PySide API2 support'''
diff --git a/sources/pyside6/tests/QtWidgets/application_test.py b/sources/pyside6/tests/QtWidgets/application_test.py
index 2fea0286b..1b2477fd7 100644
--- a/sources/pyside6/tests/QtWidgets/application_test.py
+++ b/sources/pyside6/tests/QtWidgets/application_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/bug_1002.py b/sources/pyside6/tests/QtWidgets/bug_1002.py
index 756d936ee..98ae66c47 100644
--- a/sources/pyside6/tests/QtWidgets/bug_1002.py
+++ b/sources/pyside6/tests/QtWidgets/bug_1002.py
@@ -1,31 +1,7 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+import gc
import os
import sys
import unittest
@@ -51,6 +27,8 @@ class TestBug1002 (UsesQApplication):
self.assertEqual(sys.getrefcount(window), 3)
del widget
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
if __name__ == '__main__':
diff --git a/sources/pyside6/tests/QtWidgets/bug_1006.py b/sources/pyside6/tests/QtWidgets/bug_1006.py
index 81639c34c..74bf5e2da 100644
--- a/sources/pyside6/tests/QtWidgets/bug_1006.py
+++ b/sources/pyside6/tests/QtWidgets/bug_1006.py
@@ -1,31 +1,7 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+import gc
import os
import sys
import unittest
@@ -60,6 +36,8 @@ class LabelWindow(QDialog):
self.test_layout.removeWidget(old_label)
unit.assertRaises(RuntimeError, old_item.widget)
del old_item
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
label = QLabel("Label New")
old_label.deleteLater()
diff --git a/sources/pyside6/tests/QtWidgets/bug_1048.py b/sources/pyside6/tests/QtWidgets/bug_1048.py
index 0c5cdb0b5..9d83e2f30 100644
--- a/sources/pyside6/tests/QtWidgets/bug_1048.py
+++ b/sources/pyside6/tests/QtWidgets/bug_1048.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/bug_1077.py b/sources/pyside6/tests/QtWidgets/bug_1077.py
index 8aed4e6f5..c9559609f 100644
--- a/sources/pyside6/tests/QtWidgets/bug_1077.py
+++ b/sources/pyside6/tests/QtWidgets/bug_1077.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
''' unit test for BUG #1077 '''
diff --git a/sources/pyside6/tests/QtWidgets/bug_172.py b/sources/pyside6/tests/QtWidgets/bug_172.py
index 49df6c4e9..2637d6d61 100644
--- a/sources/pyside6/tests/QtWidgets/bug_172.py
+++ b/sources/pyside6/tests/QtWidgets/bug_172.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/bug_243.py b/sources/pyside6/tests/QtWidgets/bug_243.py
index dea27888c..af189837f 100644
--- a/sources/pyside6/tests/QtWidgets/bug_243.py
+++ b/sources/pyside6/tests/QtWidgets/bug_243.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
''' Test bug 243: http://bugs.openbossa.org/show_bug.cgi?id=243'''
diff --git a/sources/pyside6/tests/QtWidgets/bug_307.py b/sources/pyside6/tests/QtWidgets/bug_307.py
index 92b0a5973..673d5183d 100644
--- a/sources/pyside6/tests/QtWidgets/bug_307.py
+++ b/sources/pyside6/tests/QtWidgets/bug_307.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import colorsys
import os
diff --git a/sources/pyside6/tests/QtWidgets/bug_324.py b/sources/pyside6/tests/QtWidgets/bug_324.py
deleted file mode 100644
index b3336923f..000000000
--- a/sources/pyside6/tests/QtWidgets/bug_324.py
+++ /dev/null
@@ -1,69 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-''' Test bug 324: http://bugs.openbossa.org/show_bug.cgi?id=324'''
-
-import os
-import sys
-import unittest
-
-from pathlib import Path
-sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
-from init_paths import init_test_paths
-init_test_paths(False)
-
-from PySide6.QtCore import QObject, Signal
-from PySide6.QtWidgets import QApplication
-
-
-class QBug(QObject):
- def __init__(self, parent=None):
- QObject.__init__(self, parent)
-
- def check(self):
- self.done.emit("abc")
-
- done = Signal(str)
-
-
-class Bug324(unittest.TestCase):
-
- def on_done(self, val):
- self.value = val
-
- def testBug(self):
- app = QApplication([])
- bug = QBug()
- self.value = ''
- bug.done.connect(self.on_done)
- bug.check()
- self.assertEqual(self.value, 'abc')
-
-
-if __name__ == '__main__':
- unittest.main()
diff --git a/sources/pyside6/tests/QtWidgets/bug_338.py b/sources/pyside6/tests/QtWidgets/bug_338.py
index c47179473..695b4238a 100644
--- a/sources/pyside6/tests/QtWidgets/bug_338.py
+++ b/sources/pyside6/tests/QtWidgets/bug_338.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
''' Test bug 338: http://bugs.openbossa.org/show_bug.cgi?id=338'''
diff --git a/sources/pyside6/tests/QtWidgets/bug_389.py b/sources/pyside6/tests/QtWidgets/bug_389.py
index 4cef736b4..024908e85 100644
--- a/sources/pyside6/tests/QtWidgets/bug_389.py
+++ b/sources/pyside6/tests/QtWidgets/bug_389.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
''' Test bug 389: http://bugs.openbossa.org/show_bug.cgi?id=389'''
diff --git a/sources/pyside6/tests/QtWidgets/bug_400.py b/sources/pyside6/tests/QtWidgets/bug_400.py
index 39eafd23a..79dfa49fc 100644
--- a/sources/pyside6/tests/QtWidgets/bug_400.py
+++ b/sources/pyside6/tests/QtWidgets/bug_400.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
''' Test bug 400: http://bugs.openbossa.org/show_bug.cgi?id=400'''
@@ -52,7 +27,7 @@ class BugTest(UsesQApplication):
treeWidget.insertTopLevelItems(0, items)
_iter = QTreeWidgetItemIterator(treeWidget)
index = 0
- while(_iter.value()):
+ while (_iter.value()):
item = _iter.value()
self.assertTrue(item is items[index])
index += 1
diff --git a/sources/pyside6/tests/QtWidgets/bug_429.py b/sources/pyside6/tests/QtWidgets/bug_429.py
index 5041acb4e..e95c113f3 100644
--- a/sources/pyside6/tests/QtWidgets/bug_429.py
+++ b/sources/pyside6/tests/QtWidgets/bug_429.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/bug_430.py b/sources/pyside6/tests/QtWidgets/bug_430.py
index b6cf49252..6ef9ec7f4 100644
--- a/sources/pyside6/tests/QtWidgets/bug_430.py
+++ b/sources/pyside6/tests/QtWidgets/bug_430.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -44,9 +19,11 @@ class ListModel(QAbstractListModel):
return 0
-app = QApplication([])
-model = ListModel()
-v = QListView()
-v.setModel(model)
-QTimer.singleShot(0, v.close)
-app.exec()
+if __name__ == '__main__':
+ app = QApplication([])
+ model = ListModel()
+ v = QListView()
+ v.setModel(model)
+ v.show()
+ QTimer.singleShot(0, v.close)
+ app.exec()
diff --git a/sources/pyside6/tests/QtWidgets/bug_433.py b/sources/pyside6/tests/QtWidgets/bug_433.py
index 0c109f40a..c7fbe4b3e 100644
--- a/sources/pyside6/tests/QtWidgets/bug_433.py
+++ b/sources/pyside6/tests/QtWidgets/bug_433.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/bug_467.py b/sources/pyside6/tests/QtWidgets/bug_467.py
index eaa2696d2..af383e811 100644
--- a/sources/pyside6/tests/QtWidgets/bug_467.py
+++ b/sources/pyside6/tests/QtWidgets/bug_467.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
''' Test bug 367: http://bugs.openbossa.org/show_bug.cgi?id=467'''
diff --git a/sources/pyside6/tests/QtWidgets/bug_480.py b/sources/pyside6/tests/QtWidgets/bug_480.py
new file mode 100644
index 000000000..2fc955561
--- /dev/null
+++ b/sources/pyside6/tests/QtWidgets/bug_480.py
@@ -0,0 +1,39 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from PySide6.QtWidgets import (QApplication, QGridLayout, QLabel, QVBoxLayout,
+ QWidget)
+
+
+class BuggyWidget(QWidget):
+ def setup(self):
+ self.verticalLayout = QVBoxLayout(self)
+ self.gridLayout = QGridLayout()
+ self.lbl = QLabel(self)
+ self.gridLayout.addWidget(self.lbl, 0, 1, 1, 1)
+
+ # this cause a segfault during the ownership transfer
+ self.verticalLayout.addLayout(self.gridLayout)
+
+
+class LayoutTransferOwnerShip(unittest.TestCase):
+ def testBug(self):
+ app = QApplication([])
+ w = BuggyWidget()
+ w.setup()
+ w.show()
+ self.assertTrue(True)
+
+
+if __name__ == '__main__':
+ unittest.main()
+
diff --git a/sources/pyside6/tests/QtWidgets/bug_493.py b/sources/pyside6/tests/QtWidgets/bug_493.py
deleted file mode 100644
index 52aae39da..000000000
--- a/sources/pyside6/tests/QtWidgets/bug_493.py
+++ /dev/null
@@ -1,58 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-import os
-import sys
-import unittest
-
-from pathlib import Path
-sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
-from init_paths import init_test_paths
-init_test_paths(False)
-
-from PySide6.QtCore import Qt, QEvent
-from PySide6.QtGui import QKeyEvent, QKeySequence
-from PySide6.QtWidgets import QApplication
-
-
-class TestBug493(unittest.TestCase):
-
- def testIt(self):
- # We need a qapp otherwise Qt will crash when trying to detect the
- # current platform
- app = QApplication([])
- ev1 = QKeyEvent(QEvent.KeyRelease, Qt.Key_Delete, Qt.NoModifier)
- ev2 = QKeyEvent(QEvent.KeyRelease, Qt.Key_Copy, Qt.NoModifier)
- ks = QKeySequence.Delete
-
- self.assertTrue(ev1.matches(ks))
- self.assertFalse(ev2.matches(ks))
-
-
-if __name__ == '__main__':
- unittest.main()
diff --git a/sources/pyside6/tests/QtWidgets/bug_512.py b/sources/pyside6/tests/QtWidgets/bug_512.py
index d93999833..dab367727 100644
--- a/sources/pyside6/tests/QtWidgets/bug_512.py
+++ b/sources/pyside6/tests/QtWidgets/bug_512.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
''' Test bug 512: http://bugs.openbossa.org/show_bug.cgi?id=512'''
diff --git a/sources/pyside6/tests/QtWidgets/bug_525.py b/sources/pyside6/tests/QtWidgets/bug_525.py
index e86c03ba8..3c49cd377 100644
--- a/sources/pyside6/tests/QtWidgets/bug_525.py
+++ b/sources/pyside6/tests/QtWidgets/bug_525.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/bug_546.py b/sources/pyside6/tests/QtWidgets/bug_546.py
index 4d4f9ed16..fcec2f6d7 100644
--- a/sources/pyside6/tests/QtWidgets/bug_546.py
+++ b/sources/pyside6/tests/QtWidgets/bug_546.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/bug_547.py b/sources/pyside6/tests/QtWidgets/bug_547.py
index f5a321228..dcbe20ee8 100644
--- a/sources/pyside6/tests/QtWidgets/bug_547.py
+++ b/sources/pyside6/tests/QtWidgets/bug_547.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
""" Unittest for bug #547 """
""" http://bugs.openbossa.org/show_bug.cgi?id=547 """
diff --git a/sources/pyside6/tests/QtWidgets/bug_549.py b/sources/pyside6/tests/QtWidgets/bug_549.py
index 30c56a9a8..8efa6e679 100644
--- a/sources/pyside6/tests/QtWidgets/bug_549.py
+++ b/sources/pyside6/tests/QtWidgets/bug_549.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/bug_569.py b/sources/pyside6/tests/QtWidgets/bug_569.py
index cd4874403..0f95aed02 100644
--- a/sources/pyside6/tests/QtWidgets/bug_569.py
+++ b/sources/pyside6/tests/QtWidgets/bug_569.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/bug_575.py b/sources/pyside6/tests/QtWidgets/bug_575.py
index b7318eded..f9a927817 100644
--- a/sources/pyside6/tests/QtWidgets/bug_575.py
+++ b/sources/pyside6/tests/QtWidgets/bug_575.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
""" Unittest for bug #575 """
""" http://bugs.openbossa.org/show_bug.cgi?id=575 """
diff --git a/sources/pyside6/tests/QtWidgets/bug_576.py b/sources/pyside6/tests/QtWidgets/bug_576.py
index 7a078ce9d..4a17e7aa8 100644
--- a/sources/pyside6/tests/QtWidgets/bug_576.py
+++ b/sources/pyside6/tests/QtWidgets/bug_576.py
@@ -1,35 +1,10 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
""" Unittest for bug #576 """
""" http://bugs.openbossa.org/show_bug.cgi?id=576 """
-import sys
+import gc
import os
import sys
import unittest
@@ -64,6 +39,8 @@ class Bug576(unittest.TestCase):
b.setParent(None)
self.assertEqual(sys.getrefcount(b), 2)
del b
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertTrue(self._destroyed)
diff --git a/sources/pyside6/tests/QtWidgets/bug_585.py b/sources/pyside6/tests/QtWidgets/bug_585.py
index 05a9cf3d8..e26ca9ce0 100644
--- a/sources/pyside6/tests/QtWidgets/bug_585.py
+++ b/sources/pyside6/tests/QtWidgets/bug_585.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test bug 585: http://bugs.openbossa.org/show_bug.cgi?id=585'''
diff --git a/sources/pyside6/tests/QtWidgets/bug_589.py b/sources/pyside6/tests/QtWidgets/bug_589.py
index 6b4afc74b..a19f544a5 100644
--- a/sources/pyside6/tests/QtWidgets/bug_589.py
+++ b/sources/pyside6/tests/QtWidgets/bug_589.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
# trimmed down diagramscene.py to demonstrate crash in sizeHint()
diff --git a/sources/pyside6/tests/QtWidgets/bug_635.py b/sources/pyside6/tests/QtWidgets/bug_635.py
index 2def84299..66a8c58c6 100644
--- a/sources/pyside6/tests/QtWidgets/bug_635.py
+++ b/sources/pyside6/tests/QtWidgets/bug_635.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
''' Test bug 635: http://bugs.openbossa.org/show_bug.cgi?id=635'''
diff --git a/sources/pyside6/tests/QtWidgets/bug_640.py b/sources/pyside6/tests/QtWidgets/bug_640.py
index b050cf69b..b2620b541 100644
--- a/sources/pyside6/tests/QtWidgets/bug_640.py
+++ b/sources/pyside6/tests/QtWidgets/bug_640.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/bug_653.py b/sources/pyside6/tests/QtWidgets/bug_653.py
index 3412caa31..1cf8390df 100644
--- a/sources/pyside6/tests/QtWidgets/bug_653.py
+++ b/sources/pyside6/tests/QtWidgets/bug_653.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/bug_662.py b/sources/pyside6/tests/QtWidgets/bug_662.py
index ebc91697b..e3a3130d0 100644
--- a/sources/pyside6/tests/QtWidgets/bug_662.py
+++ b/sources/pyside6/tests/QtWidgets/bug_662.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
''' Test bug 662: http://bugs.openbossa.org/show_bug.cgi?id=662'''
@@ -42,7 +17,8 @@ import sys
class testQTextBlock(unittest.TestCase):
- def tesIterator(self):
+
+ def testIterator(self):
edit = QTextEdit()
cursor = edit.textCursor()
fmt = QTextCharFormat()
diff --git a/sources/pyside6/tests/QtWidgets/bug_667.py b/sources/pyside6/tests/QtWidgets/bug_667.py
index 03f125c6a..be6700d83 100644
--- a/sources/pyside6/tests/QtWidgets/bug_667.py
+++ b/sources/pyside6/tests/QtWidgets/bug_667.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -42,7 +17,7 @@ from PySide6.QtWidgets import QApplication, QGraphicsView, QGraphicsScene, QGrap
class Ball(QGraphicsEllipseItem):
def __init__(self, d, parent=None):
super().__init__(0, 0, d, d, parent)
- self.vel = QPointF(0, 0) #commenting this out prevents the crash
+ self.vel = QPointF(0, 0) # commenting this out prevents the crash
class Foo(QGraphicsView):
diff --git a/sources/pyside6/tests/QtWidgets/bug_668.py b/sources/pyside6/tests/QtWidgets/bug_668.py
index 1f0d49ada..0c22436b3 100644
--- a/sources/pyside6/tests/QtWidgets/bug_668.py
+++ b/sources/pyside6/tests/QtWidgets/bug_668.py
@@ -1,32 +1,5 @@
-# coding: utf-8
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/bug_674.py b/sources/pyside6/tests/QtWidgets/bug_674.py
index ca66271f6..901b29275 100644
--- a/sources/pyside6/tests/QtWidgets/bug_674.py
+++ b/sources/pyside6/tests/QtWidgets/bug_674.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/bug_675.py b/sources/pyside6/tests/QtWidgets/bug_675.py
index dfe8e7437..221df88b0 100644
--- a/sources/pyside6/tests/QtWidgets/bug_675.py
+++ b/sources/pyside6/tests/QtWidgets/bug_675.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/bug_688.py b/sources/pyside6/tests/QtWidgets/bug_688.py
index 1120c38f6..3180d08bf 100644
--- a/sources/pyside6/tests/QtWidgets/bug_688.py
+++ b/sources/pyside6/tests/QtWidgets/bug_688.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
''' Test bug 688: http://bugs.openbossa.org/show_bug.cgi?id=688'''
diff --git a/sources/pyside6/tests/QtWidgets/bug_693.py b/sources/pyside6/tests/QtWidgets/bug_693.py
index dea191aaf..95981e272 100644
--- a/sources/pyside6/tests/QtWidgets/bug_693.py
+++ b/sources/pyside6/tests/QtWidgets/bug_693.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/bug_696.py b/sources/pyside6/tests/QtWidgets/bug_696.py
index e59b87bc0..19e9978a6 100644
--- a/sources/pyside6/tests/QtWidgets/bug_696.py
+++ b/sources/pyside6/tests/QtWidgets/bug_696.py
@@ -1,32 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/bug_711.py b/sources/pyside6/tests/QtWidgets/bug_711.py
index 9f6217379..fed330fb9 100644
--- a/sources/pyside6/tests/QtWidgets/bug_711.py
+++ b/sources/pyside6/tests/QtWidgets/bug_711.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/bug_722.py b/sources/pyside6/tests/QtWidgets/bug_722.py
index 968e2c2dd..dc20e14cf 100644
--- a/sources/pyside6/tests/QtWidgets/bug_722.py
+++ b/sources/pyside6/tests/QtWidgets/bug_722.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/bug_728.py b/sources/pyside6/tests/QtWidgets/bug_728.py
index 4d1b37593..531adbb25 100644
--- a/sources/pyside6/tests/QtWidgets/bug_728.py
+++ b/sources/pyside6/tests/QtWidgets/bug_728.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/bug_736.py b/sources/pyside6/tests/QtWidgets/bug_736.py
index 61ec3f9da..af4bcbda8 100644
--- a/sources/pyside6/tests/QtWidgets/bug_736.py
+++ b/sources/pyside6/tests/QtWidgets/bug_736.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/bug_750.py b/sources/pyside6/tests/QtWidgets/bug_750.py
index 08327a0d0..999f6a3db 100644
--- a/sources/pyside6/tests/QtWidgets/bug_750.py
+++ b/sources/pyside6/tests/QtWidgets/bug_750.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/bug_778.py b/sources/pyside6/tests/QtWidgets/bug_778.py
index 5fbbd07fa..1a7def6c7 100644
--- a/sources/pyside6/tests/QtWidgets/bug_778.py
+++ b/sources/pyside6/tests/QtWidgets/bug_778.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/bug_785.py b/sources/pyside6/tests/QtWidgets/bug_785.py
deleted file mode 100644
index 019dbc0cb..000000000
--- a/sources/pyside6/tests/QtWidgets/bug_785.py
+++ /dev/null
@@ -1,67 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-import os
-import sys
-import unittest
-
-from pathlib import Path
-sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
-from init_paths import init_test_paths
-init_test_paths(False)
-
-from PySide6.QtCore import QItemSelection
-from PySide6.QtGui import QStandardItemModel, QStandardItem
-from PySide6.QtWidgets import QApplication
-
-
-class Bug324(unittest.TestCase):
- def testOperators(self):
- model = QStandardItemModel()
- for i in range(100):
- model.appendRow(QStandardItem(f"Item: {i}"))
-
- first = model.index(0, 0)
- second = model.index(10, 0)
- third = model.index(20, 0)
- fourth = model.index(30, 0)
-
- sel = QItemSelection(first, second)
- sel2 = QItemSelection()
- sel2.select(third, fourth)
-
- sel3 = sel + sel2 # check operator +
- self.assertEqual(len(sel3), 2)
- sel4 = sel
- sel4 += sel2 # check operator +=
- self.assertEqual(len(sel4), 2)
- self.assertEqual(sel4, sel3)
-
-
-if __name__ == "__main__":
- unittest.main()
diff --git a/sources/pyside6/tests/QtWidgets/bug_793.py b/sources/pyside6/tests/QtWidgets/bug_793.py
index 2a87a8750..94f42a5d3 100644
--- a/sources/pyside6/tests/QtWidgets/bug_793.py
+++ b/sources/pyside6/tests/QtWidgets/bug_793.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/bug_811.py b/sources/pyside6/tests/QtWidgets/bug_811.py
index bfcd30f05..b3537e1f7 100644
--- a/sources/pyside6/tests/QtWidgets/bug_811.py
+++ b/sources/pyside6/tests/QtWidgets/bug_811.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/bug_834.py b/sources/pyside6/tests/QtWidgets/bug_834.py
index b01049dce..685f17e56 100644
--- a/sources/pyside6/tests/QtWidgets/bug_834.py
+++ b/sources/pyside6/tests/QtWidgets/bug_834.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/bug_836.py b/sources/pyside6/tests/QtWidgets/bug_836.py
index 7df90e7a7..c2d3d5609 100644
--- a/sources/pyside6/tests/QtWidgets/bug_836.py
+++ b/sources/pyside6/tests/QtWidgets/bug_836.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/bug_844.py b/sources/pyside6/tests/QtWidgets/bug_844.py
index fdf045dba..913b4235c 100644
--- a/sources/pyside6/tests/QtWidgets/bug_844.py
+++ b/sources/pyside6/tests/QtWidgets/bug_844.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import sys
import os
diff --git a/sources/pyside6/tests/QtWidgets/bug_854.py b/sources/pyside6/tests/QtWidgets/bug_854.py
index 5c88237b5..1dbfd4b3a 100644
--- a/sources/pyside6/tests/QtWidgets/bug_854.py
+++ b/sources/pyside6/tests/QtWidgets/bug_854.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -35,8 +10,8 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtWidgets import QTableView, QVBoxLayout, QApplication
-from PySide6.QtCore import QAbstractItemModel
+from PySide6.QtWidgets import QTableView, QApplication
+from PySide6.QtCore import QAbstractItemModel, QModelIndex
from helper.usesqapplication import UsesQApplication
diff --git a/sources/pyside6/tests/QtWidgets/bug_860.py b/sources/pyside6/tests/QtWidgets/bug_860.py
index b5ce9419d..779feaa14 100644
--- a/sources/pyside6/tests/QtWidgets/bug_860.py
+++ b/sources/pyside6/tests/QtWidgets/bug_860.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/bug_862.py b/sources/pyside6/tests/QtWidgets/bug_862.py
index d16357081..49d9e24b2 100644
--- a/sources/pyside6/tests/QtWidgets/bug_862.py
+++ b/sources/pyside6/tests/QtWidgets/bug_862.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#
diff --git a/sources/pyside6/tests/QtWidgets/bug_871.py b/sources/pyside6/tests/QtWidgets/bug_871.py
index 487f46494..4ee9b575a 100644
--- a/sources/pyside6/tests/QtWidgets/bug_871.py
+++ b/sources/pyside6/tests/QtWidgets/bug_871.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/bug_879.py b/sources/pyside6/tests/QtWidgets/bug_879.py
index 435cc4190..31c656543 100644
--- a/sources/pyside6/tests/QtWidgets/bug_879.py
+++ b/sources/pyside6/tests/QtWidgets/bug_879.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/bug_919.py b/sources/pyside6/tests/QtWidgets/bug_919.py
index 1ca2c220b..67387ed26 100644
--- a/sources/pyside6/tests/QtWidgets/bug_919.py
+++ b/sources/pyside6/tests/QtWidgets/bug_919.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/bug_921.py b/sources/pyside6/tests/QtWidgets/bug_921.py
index 35752e273..dafc1faef 100644
--- a/sources/pyside6/tests/QtWidgets/bug_921.py
+++ b/sources/pyside6/tests/QtWidgets/bug_921.py
@@ -1,33 +1,8 @@
#!/usr/bin/env python
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
+import gc
import os
import sys
import unittest
@@ -80,6 +55,8 @@ class TestTimedApp(TimedQApplication):
midleFunction()
self.app.exec()
del w
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
s.s1.emit()
s.s2.emit()
diff --git a/sources/pyside6/tests/QtWidgets/bug_941.py b/sources/pyside6/tests/QtWidgets/bug_941.py
index 6f200b281..336aa2f58 100644
--- a/sources/pyside6/tests/QtWidgets/bug_941.py
+++ b/sources/pyside6/tests/QtWidgets/bug_941.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/bug_964.py b/sources/pyside6/tests/QtWidgets/bug_964.py
index fdf74e324..86bbddf16 100644
--- a/sources/pyside6/tests/QtWidgets/bug_964.py
+++ b/sources/pyside6/tests/QtWidgets/bug_964.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/bug_967.py b/sources/pyside6/tests/QtWidgets/bug_967.py
index a27a046d3..03af030ca 100644
--- a/sources/pyside6/tests/QtWidgets/bug_967.py
+++ b/sources/pyside6/tests/QtWidgets/bug_967.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/bug_972.py b/sources/pyside6/tests/QtWidgets/bug_972.py
index fe6662ee9..895cea128 100644
--- a/sources/pyside6/tests/QtWidgets/bug_972.py
+++ b/sources/pyside6/tests/QtWidgets/bug_972.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/bug_979.py b/sources/pyside6/tests/QtWidgets/bug_979.py
index e6607d260..a6c17385e 100644
--- a/sources/pyside6/tests/QtWidgets/bug_979.py
+++ b/sources/pyside6/tests/QtWidgets/bug_979.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/bug_988.py b/sources/pyside6/tests/QtWidgets/bug_988.py
index 02bc9f741..f82ba6d27 100644
--- a/sources/pyside6/tests/QtWidgets/bug_988.py
+++ b/sources/pyside6/tests/QtWidgets/bug_988.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/bug_998.py b/sources/pyside6/tests/QtWidgets/bug_998.py
index 0cea3296b..0f6311515 100644
--- a/sources/pyside6/tests/QtWidgets/bug_998.py
+++ b/sources/pyside6/tests/QtWidgets/bug_998.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/customproxywidget_test.py b/sources/pyside6/tests/QtWidgets/customproxywidget_test.py
index 1e7351dc3..f7a1a1b1d 100644
--- a/sources/pyside6/tests/QtWidgets/customproxywidget_test.py
+++ b/sources/pyside6/tests/QtWidgets/customproxywidget_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/event_filter_test.py b/sources/pyside6/tests/QtWidgets/event_filter_test.py
deleted file mode 100644
index 08ca8c7b3..000000000
--- a/sources/pyside6/tests/QtWidgets/event_filter_test.py
+++ /dev/null
@@ -1,76 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-import os
-import sys
-import unittest
-
-from pathlib import Path
-sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
-from init_paths import init_test_paths
-init_test_paths(False)
-
-from helper.usesqapplication import UsesQApplication
-from PySide6.QtCore import QObject, QEvent
-from PySide6.QtWidgets import QWidget
-
-
-class MyFilter(QObject):
- def eventFilter(self, obj, event):
- if event.type() == QEvent.KeyPress:
- pass
- return QObject.eventFilter(self, obj, event)
-
-
-class EventFilter(UsesQApplication):
- @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
- def testRefCount(self):
- o = QObject()
- filt = MyFilter()
- o.installEventFilter(filt)
- self.assertEqual(sys.getrefcount(o), 2)
-
- o.installEventFilter(filt)
- self.assertEqual(sys.getrefcount(o), 2)
-
- o.removeEventFilter(filt)
- self.assertEqual(sys.getrefcount(o), 2)
-
- def testObjectDestructorOrder(self):
- w = QWidget()
- filt = MyFilter()
- filt.app = self.app
- w.installEventFilter(filt)
- w.show()
- w.close()
- w = None
- self.assertTrue(True)
-
-
-if __name__ == '__main__':
- unittest.main()
diff --git a/sources/pyside6/tests/QtWidgets/grandparent_method_test.py b/sources/pyside6/tests/QtWidgets/grandparent_method_test.py
index 67d56e156..ef848e22d 100644
--- a/sources/pyside6/tests/QtWidgets/grandparent_method_test.py
+++ b/sources/pyside6/tests/QtWidgets/grandparent_method_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Tests for calling methods further than the direct parent'''
diff --git a/sources/pyside6/tests/QtWidgets/hashabletype_test.py b/sources/pyside6/tests/QtWidgets/hashabletype_test.py
index 4a56a1045..f12cceb5a 100644
--- a/sources/pyside6/tests/QtWidgets/hashabletype_test.py
+++ b/sources/pyside6/tests/QtWidgets/hashabletype_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for __hash__'''
diff --git a/sources/pyside6/tests/QtWidgets/keep_reference_test.py b/sources/pyside6/tests/QtWidgets/keep_reference_test.py
index 9c661feeb..9d21c4580 100644
--- a/sources/pyside6/tests/QtWidgets/keep_reference_test.py
+++ b/sources/pyside6/tests/QtWidgets/keep_reference_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/env python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/missing_symbols_test.py b/sources/pyside6/tests/QtWidgets/missing_symbols_test.py
index d30f77fc5..076c9e7e1 100644
--- a/sources/pyside6/tests/QtWidgets/missing_symbols_test.py
+++ b/sources/pyside6/tests/QtWidgets/missing_symbols_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''(Very) Simple test case for missing names from QtGui and QtWidgets'''
diff --git a/sources/pyside6/tests/QtWidgets/paint_event_test.py b/sources/pyside6/tests/QtWidgets/paint_event_test.py
index 66dd3d084..d995c2a37 100644
--- a/sources/pyside6/tests/QtWidgets/paint_event_test.py
+++ b/sources/pyside6/tests/QtWidgets/paint_event_test.py
@@ -1,43 +1,21 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test paint event override in python'''
+import gc
import os
import sys
import unittest
+from textwrap import dedent
+
from pathlib import Path
sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtCore import QTimerEvent
+from PySide6.QtCore import QTimer
from PySide6.QtWidgets import QApplication, QWidget
from helper.usesqapplication import UsesQApplication
@@ -46,33 +24,19 @@ from helper.usesqapplication import UsesQApplication
class MyWidget(QWidget):
'''Sample widget'''
- def __init__(self, app=None):
+ def __init__(self, app):
# Creates a new widget
- if app is None:
- app = QApplication([])
+ assert (app)
super().__init__()
self.app = app
- self.runs = 0
- self.max_runs = 5
self.paint_event_called = False
- def timerEvent(self, event):
- # Timer event method
- self.runs += 1
-
- if self.runs == self.max_runs:
- self.app.quit()
-
- if not isinstance(event, QTimerEvent):
- raise TypeError('Invalid event type. Must be QTimerEvent')
-
def paintEvent(self, event):
# Empty paint event method
- # XXX: should be using super here, but somehow PyQt4
- # complains about paintEvent not present in super
- QWidget.paintEvent(self, event)
+ super().paintEvent(event)
self.paint_event_called = True
+ QTimer.singleShot(20, self.close)
class PaintEventOverride(UsesQApplication):
@@ -88,18 +52,16 @@ class PaintEventOverride(UsesQApplication):
def tearDown(self):
# Release resources
del self.widget
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
super(PaintEventOverride, self).tearDown()
def testPaintEvent(self):
# Test QWidget.paintEvent override
- timer_id = self.widget.startTimer(100)
self.widget.show()
+ self.widget.setWindowTitle("paint_event_test")
self.app.exec()
-
- self.widget.killTimer(timer_id)
-
self.assertTrue(self.widget.paint_event_called)
- self.assertEqual(self.widget.runs, 5)
if __name__ == '__main__':
diff --git a/sources/pyside6/tests/QtWidgets/parent_method_test.py b/sources/pyside6/tests/QtWidgets/parent_method_test.py
index 4f2ab2f9a..0ab09eead 100644
--- a/sources/pyside6/tests/QtWidgets/parent_method_test.py
+++ b/sources/pyside6/tests/QtWidgets/parent_method_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/private_mangle_test.py b/sources/pyside6/tests/QtWidgets/private_mangle_test.py
index 94bbfa231..67ad14d68 100644
--- a/sources/pyside6/tests/QtWidgets/private_mangle_test.py
+++ b/sources/pyside6/tests/QtWidgets/private_mangle_test.py
@@ -1,41 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
"""
This is the example from https://bugreports.qt.io/browse/PYSIDE-772
diff --git a/sources/pyside6/tests/QtWidgets/python_properties_test.py b/sources/pyside6/tests/QtWidgets/python_properties_test.py
index 72adc7517..ee8a38014 100644
--- a/sources/pyside6/tests/QtWidgets/python_properties_test.py
+++ b/sources/pyside6/tests/QtWidgets/python_properties_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/qabstracttextdocumentlayout_test.py b/sources/pyside6/tests/QtWidgets/qabstracttextdocumentlayout_test.py
index 7d4f5c786..1ae3b0a35 100644
--- a/sources/pyside6/tests/QtWidgets/qabstracttextdocumentlayout_test.py
+++ b/sources/pyside6/tests/QtWidgets/qabstracttextdocumentlayout_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/qaccessible_test.py b/sources/pyside6/tests/QtWidgets/qaccessible_test.py
index fe257659b..021cf9c6b 100644
--- a/sources/pyside6/tests/QtWidgets/qaccessible_test.py
+++ b/sources/pyside6/tests/QtWidgets/qaccessible_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QAccessible::installFactory().'''
diff --git a/sources/pyside6/tests/QtWidgets/qaction_test.py b/sources/pyside6/tests/QtWidgets/qaction_test.py
index 6f9b1afec..a0049421f 100644
--- a/sources/pyside6/tests/QtWidgets/qaction_test.py
+++ b/sources/pyside6/tests/QtWidgets/qaction_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -36,7 +11,7 @@ from init_paths import init_test_paths
init_test_paths(False)
from PySide6.QtGui import QAction
-from PySide6.QtWidgets import QWidget
+from PySide6.QtWidgets import QWidget, QMenu
from helper.usesqapplication import UsesQApplication
@@ -73,6 +48,17 @@ class SetShortcutTest(UsesQApplication):
s2 = action.shortcut()
self.assertEqual(s2, shortcut)
+ def testMenu(self):
+ # Test the setMenu()/menu() old functionality removed in Qt6
+ # that was added via helper functions.
+ menu = QMenu("menu")
+ action = QAction("action")
+
+ # Using QAction::setMenu(QObject*)
+ action.setMenu(menu)
+
+ self.assertEqual(action.menu(), menu)
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/pyside6/tests/QtWidgets/qapp_issue_585.py b/sources/pyside6/tests/QtWidgets/qapp_issue_585.py
index 9e3674374..0b5453af5 100644
--- a/sources/pyside6/tests/QtWidgets/qapp_issue_585.py
+++ b/sources/pyside6/tests/QtWidgets/qapp_issue_585.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
"""
The bug was caused by this commit:
diff --git a/sources/pyside6/tests/QtWidgets/qapp_test.py b/sources/pyside6/tests/QtWidgets/qapp_test.py
index dec6034f1..5a66b8e33 100644
--- a/sources/pyside6/tests/QtWidgets/qapp_test.py
+++ b/sources/pyside6/tests/QtWidgets/qapp_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
''' Test the presence of qApp Macro'''
diff --git a/sources/pyside6/tests/QtWidgets/qapplication_exit_segfault_test.py b/sources/pyside6/tests/QtWidgets/qapplication_exit_segfault_test.py
index 57b1e410a..8bb47bc1c 100644
--- a/sources/pyside6/tests/QtWidgets/qapplication_exit_segfault_test.py
+++ b/sources/pyside6/tests/QtWidgets/qapplication_exit_segfault_test.py
@@ -1,31 +1,7 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+import gc
import os
import sys
import unittest
@@ -46,6 +22,8 @@ class QApplicationDelete(unittest.TestCase):
a = QApplication([])
b = QPushButton('aaaa')
del a
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
if __name__ == '__main__':
diff --git a/sources/pyside6/tests/QtWidgets/qapplication_test.py b/sources/pyside6/tests/QtWidgets/qapplication_test.py
index 4d62f8179..7c5b61fd9 100644
--- a/sources/pyside6/tests/QtWidgets/qapplication_test.py
+++ b/sources/pyside6/tests/QtWidgets/qapplication_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/qbrush_test.py b/sources/pyside6/tests/QtWidgets/qbrush_test.py
deleted file mode 100644
index 2083a6c56..000000000
--- a/sources/pyside6/tests/QtWidgets/qbrush_test.py
+++ /dev/null
@@ -1,61 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-'''Test cases for QBrush'''
-
-import os
-import sys
-import unittest
-
-from pathlib import Path
-sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
-from init_paths import init_test_paths
-init_test_paths(False)
-
-from PySide6.QtCore import Qt
-from PySide6.QtGui import QColor, QBrush
-from PySide6.QtWidgets import QApplication
-
-from helper.usesqapplication import UsesQApplication
-
-
-class Constructor(UsesQApplication):
- '''Test case for constructor of QBrush'''
-
- def testQColor(self):
- # QBrush(QColor) constructor
- color = QColor('black')
- obj = QBrush(color)
- self.assertEqual(obj.color(), color)
-
- obj = QBrush(Qt.blue)
- self.assertEqual(obj.color(), Qt.blue)
-
-
-if __name__ == '__main__':
- unittest.main()
diff --git a/sources/pyside6/tests/QtWidgets/qcolormap_test.py b/sources/pyside6/tests/QtWidgets/qcolormap_test.py
index a6999de95..f63a9486f 100644
--- a/sources/pyside6/tests/QtWidgets/qcolormap_test.py
+++ b/sources/pyside6/tests/QtWidgets/qcolormap_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/qdialog_test.py b/sources/pyside6/tests/QtWidgets/qdialog_test.py
new file mode 100644
index 000000000..cb85ce7e2
--- /dev/null
+++ b/sources/pyside6/tests/QtWidgets/qdialog_test.py
@@ -0,0 +1,52 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import os
+import sys
+import unittest
+import weakref
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from PySide6.QtCore import Slot, QTimer
+from PySide6.QtWidgets import QDialog, QMainWindow
+from helper.timedqapplication import TimedQApplication
+
+
+class Window(QMainWindow):
+ def __init__(self):
+ super().__init__()
+ self.setWindowTitle("Main")
+ self.dialog = None
+
+ @Slot()
+ def execDialog(self):
+ dialog = QDialog(self)
+ self.dialog = weakref.ref(dialog)
+ dialog.setWindowTitle("Dialog")
+ dialog.setMinimumWidth(200)
+ QTimer.singleShot(500, dialog.reject)
+ dialog.exec()
+ self.close()
+
+
+class DialogExecTest(TimedQApplication):
+ """Test whether the parent-child relationship (dialog/main window) is removed when
+ using QDialog.exec() (instead show()), preventing the dialog from leaking."""
+
+ def setUp(self):
+ super().setUp(10000)
+ self._window = Window()
+
+ def testExec(self):
+ self._window.show()
+ QTimer.singleShot(500, self._window.execDialog)
+ self.app.exec()
+ self.assertTrue(self._window.dialog() is None)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/QtWidgets/qdynamic_signal.py b/sources/pyside6/tests/QtWidgets/qdynamic_signal.py
index 89caf2906..83d6af383 100644
--- a/sources/pyside6/tests/QtWidgets/qdynamic_signal.py
+++ b/sources/pyside6/tests/QtWidgets/qdynamic_signal.py
@@ -1,31 +1,7 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+import gc
import os
import sys
import unittest
@@ -56,6 +32,8 @@ class DynamicSignalTest(UsesQApplication):
obj.destroyed[QObject].connect(self.cb)
obj = None
del dlg
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertTrue(self._called)
diff --git a/sources/pyside6/tests/QtWidgets/qfontdialog_test.py b/sources/pyside6/tests/QtWidgets/qfontdialog_test.py
index c503873ad..764329732 100644
--- a/sources/pyside6/tests/QtWidgets/qfontdialog_test.py
+++ b/sources/pyside6/tests/QtWidgets/qfontdialog_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/qformlayout_test.py b/sources/pyside6/tests/QtWidgets/qformlayout_test.py
index 1bb89d61c..f87ea6935 100644
--- a/sources/pyside6/tests/QtWidgets/qformlayout_test.py
+++ b/sources/pyside6/tests/QtWidgets/qformlayout_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -35,7 +10,7 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtWidgets import QFormLayout, QWidget
+from PySide6.QtWidgets import QFormLayout, QWidget, QLabel, QMainWindow
from helper.usesqapplication import UsesQApplication
@@ -44,6 +19,7 @@ class QFormLayoutTest(UsesQApplication):
def testGetItemPosition(self):
formlayout = QFormLayout()
+
row, role = formlayout.getItemPosition(0)
self.assertTrue(isinstance(row, int))
self.assertTrue(isinstance(role, QFormLayout.ItemRole))
@@ -60,6 +36,7 @@ class QFormLayoutTest(UsesQApplication):
def testGetWidgetPosition(self):
formlayout = QFormLayout()
widget = QWidget()
+
row, role = formlayout.getWidgetPosition(widget)
self.assertTrue(isinstance(row, int))
self.assertTrue(isinstance(role, QFormLayout.ItemRole))
@@ -75,6 +52,7 @@ class QFormLayoutTest(UsesQApplication):
def testGetLayoutPosition(self):
formlayout = QFormLayout()
layout = QFormLayout()
+
row, role = formlayout.getLayoutPosition(layout)
self.assertTrue(isinstance(row, int))
self.assertTrue(isinstance(role, QFormLayout.ItemRole))
@@ -87,7 +65,35 @@ class QFormLayoutTest(UsesQApplication):
self.assertEqual(row, 0)
self.assertEqual(role, QFormLayout.SpanningRole)
+ def testTakeRow(self):
+ window = QMainWindow()
+ window.setCentralWidget(QWidget())
+ formlayout = QFormLayout(window.centralWidget())
+
+ widget_label = "blub"
+ widget = QLabel(widget_label)
+
+ self.assertEqual(formlayout.count(), 0)
+ formlayout.addRow(widget)
+ self.assertEqual(formlayout.count(), 1)
+ self.assertEqual(formlayout.itemAt(0).widget(), widget)
+
+ widget_id = id(widget)
+
+ # Now there are no more references to the original widget on the
+ # Python side. Assert that this does not break the references to
+ # the widget on the C++ side so that "taking" the row will work.
+ del widget
+
+ takeRowResult = formlayout.takeRow(0)
+ self.assertEqual(formlayout.count(), 0)
+
+ widget = takeRowResult.fieldItem.widget()
+
+ self.assertIsNotNone(widget)
+ self.assertEqual(widget_id, id(widget))
+ self.assertEqual(widget.text(), widget_label)
+
if __name__ == "__main__":
unittest.main()
-
diff --git a/sources/pyside6/tests/QtWidgets/qgraphicsitem_isblocked_test.py b/sources/pyside6/tests/QtWidgets/qgraphicsitem_isblocked_test.py
index 2ee6cd96f..cb4115b55 100644
--- a/sources/pyside6/tests/QtWidgets/qgraphicsitem_isblocked_test.py
+++ b/sources/pyside6/tests/QtWidgets/qgraphicsitem_isblocked_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/qgraphicsitem_test.py b/sources/pyside6/tests/QtWidgets/qgraphicsitem_test.py
index 4ce395e0e..1114ad4fe 100644
--- a/sources/pyside6/tests/QtWidgets/qgraphicsitem_test.py
+++ b/sources/pyside6/tests/QtWidgets/qgraphicsitem_test.py
@@ -1,33 +1,9 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
''' Test cases related to QGraphicsItem and subclasses'''
+import gc
import os
import sys
import unittest
@@ -60,6 +36,8 @@ class QColorOnSetBrush(UsesQApplication):
del self.color
del self.item
del self.scene
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
super(QColorOnSetBrush, self).tearDown()
def testQColor(self):
diff --git a/sources/pyside6/tests/QtWidgets/qgraphicsobjectreimpl_test.py b/sources/pyside6/tests/QtWidgets/qgraphicsobjectreimpl_test.py
index 92d89b44d..a3d28b4d3 100644
--- a/sources/pyside6/tests/QtWidgets/qgraphicsobjectreimpl_test.py
+++ b/sources/pyside6/tests/QtWidgets/qgraphicsobjectreimpl_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
''' Test cases related to QGraphicsItem and subclasses'''
diff --git a/sources/pyside6/tests/QtWidgets/qgraphicsproxywidget_test.py b/sources/pyside6/tests/QtWidgets/qgraphicsproxywidget_test.py
index 63ac4d791..dee616bbe 100644
--- a/sources/pyside6/tests/QtWidgets/qgraphicsproxywidget_test.py
+++ b/sources/pyside6/tests/QtWidgets/qgraphicsproxywidget_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/qgraphicsscene_test.py b/sources/pyside6/tests/QtWidgets/qgraphicsscene_test.py
index b8a5a3945..86604f27b 100644
--- a/sources/pyside6/tests/QtWidgets/qgraphicsscene_test.py
+++ b/sources/pyside6/tests/QtWidgets/qgraphicsscene_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Basic test cases for QGraphicsScene'''
@@ -87,6 +62,8 @@ class ConstructorWithRect(unittest.TestCase):
def tearDown(self):
# Release resources
del self.scene
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
def testHeight(self):
# QGraphicsScene.height()
@@ -112,6 +89,8 @@ class AddItem(UsesQApplication):
def tearDown(self):
# Release resources
del self.scene
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
super(AddItem, self).tearDown()
def testEllipse(self):
@@ -186,6 +165,8 @@ class ItemRetrieve(UsesQApplication):
def tearDown(self):
# Release resources
del self.scene
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
super(ItemRetrieve, self).tearDown()
def testItems(self):
@@ -213,6 +194,8 @@ class TestGraphicsGroup(UsesQApplication):
group = scene.createItemGroup((i2, i3, i4))
scene.removeItem(i1)
del i1 # this shouldn't delete i2
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertEqual(i2.scene(), scene)
scene.destroyItemGroup(group)
self.assertRaises(RuntimeError, group.type)
diff --git a/sources/pyside6/tests/QtWidgets/qimage_test.py b/sources/pyside6/tests/QtWidgets/qimage_test.py
deleted file mode 100644
index 6d15d8c3e..000000000
--- a/sources/pyside6/tests/QtWidgets/qimage_test.py
+++ /dev/null
@@ -1,314 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-'''Test cases for QImage'''
-
-import os
-import sys
-import unittest
-
-from pathlib import Path
-sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
-from init_paths import init_test_paths
-init_test_paths(False)
-
-from PySide6.QtGui import QImage
-from PySide6.QtWidgets import QLabel
-from helper.usesqapplication import UsesQApplication
-
-
-xpm = [
- "27 22 206 2",
- " c None",
- ". c #FEFEFE",
- "+ c #FFFFFF",
- "@ c #F9F9F9",
- "# c #ECECEC",
- "$ c #D5D5D5",
- "% c #A0A0A0",
- "& c #767676",
- "* c #525252",
- "= c #484848",
- "- c #4E4E4E",
- "; c #555555",
- "> c #545454",
- ", c #5A5A5A",
- "' c #4B4B4B",
- ") c #4A4A4A",
- "! c #4F4F4F",
- "~ c #585858",
- "{ c #515151",
- "] c #4C4C4C",
- "^ c #B1B1B1",
- "/ c #FCFCFC",
- "( c #FDFDFD",
- "_ c #C1C1C1",
- ": c #848484",
- "< c #616161",
- "[ c #5E5E5E",
- "} c #CECECE",
- "| c #E2E2E2",
- "1 c #E4E4E4",
- "2 c #DFDFDF",
- "3 c #D2D2D2",
- "4 c #D8D8D8",
- "5 c #D4D4D4",
- "6 c #E6E6E6",
- "7 c #F1F1F1",
- "8 c #838383",
- "9 c #8E8E8E",
- "0 c #8F8F8F",
- "a c #CBCBCB",
- "b c #CCCCCC",
- "c c #E9E9E9",
- "d c #F2F2F2",
- "e c #EDEDED",
- "f c #B5B5B5",
- "g c #A6A6A6",
- "h c #ABABAB",
- "i c #BBBBBB",
- "j c #B0B0B0",
- "k c #EAEAEA",
- "l c #6C6C6C",
- "m c #BCBCBC",
- "n c #F5F5F5",
- "o c #FAFAFA",
- "p c #B6B6B6",
- "q c #F3F3F3",
- "r c #CFCFCF",
- "s c #FBFBFB",
- "t c #CDCDCD",
- "u c #DDDDDD",
- "v c #999999",
- "w c #F0F0F0",
- "x c #2B2B2B",
- "y c #C3C3C3",
- "z c #A4A4A4",
- "A c #D7D7D7",
- "B c #E7E7E7",
- "C c #6E6E6E",
- "D c #9D9D9D",
- "E c #BABABA",
- "F c #AEAEAE",
- "G c #898989",
- "H c #646464",
- "I c #BDBDBD",
- "J c #CACACA",
- "K c #2A2A2A",
- "L c #212121",
- "M c #B7B7B7",
- "N c #F4F4F4",
- "O c #737373",
- "P c #828282",
- "Q c #4D4D4D",
- "R c #000000",
- "S c #151515",
- "T c #B2B2B2",
- "U c #D6D6D6",
- "V c #D3D3D3",
- "W c #2F2F2F",
- "X c #636363",
- "Y c #A1A1A1",
- "Z c #BFBFBF",
- "` c #E0E0E0",
- " . c #6A6A6A",
- ".. c #050505",
- "+. c #A3A3A3",
- "@. c #202020",
- "#. c #5F5F5F",
- "$. c #B9B9B9",
- "%. c #C7C7C7",
- "&. c #D0D0D0",
- "*. c #3E3E3E",
- "=. c #666666",
- "-. c #DBDBDB",
- ";. c #424242",
- ">. c #C2C2C2",
- ",. c #1A1A1A",
- "'. c #2C2C2C",
- "). c #F6F6F6",
- "!. c #AAAAAA",
- "~. c #DCDCDC",
- "{. c #2D2D2D",
- "]. c #2E2E2E",
- "^. c #A7A7A7",
- "/. c #656565",
- "(. c #333333",
- "_. c #464646",
- ":. c #C4C4C4",
- "<. c #B8B8B8",
- "[. c #292929",
- "}. c #979797",
- "|. c #EFEFEF",
- "1. c #909090",
- "2. c #8A8A8A",
- "3. c #575757",
- "4. c #676767",
- "5. c #C5C5C5",
- "6. c #7A7A7A",
- "7. c #797979",
- "8. c #989898",
- "9. c #EEEEEE",
- "0. c #707070",
- "a. c #C8C8C8",
- "b. c #111111",
- "c. c #AFAFAF",
- "d. c #474747",
- "e. c #565656",
- "f. c #E3E3E3",
- "g. c #494949",
- "h. c #5B5B5B",
- "i. c #222222",
- "j. c #353535",
- "k. c #D9D9D9",
- "l. c #0A0A0A",
- "m. c #858585",
- "n. c #E5E5E5",
- "o. c #0E0E0E",
- "p. c #9A9A9A",
- "q. c #6F6F6F",
- "r. c #868686",
- "s. c #060606",
- "t. c #1E1E1E",
- "u. c #E8E8E8",
- "v. c #A5A5A5",
- "w. c #0D0D0D",
- "x. c #030303",
- "y. c #272727",
- "z. c #131313",
- "A. c #1F1F1F",
- "B. c #757575",
- "C. c #F7F7F7",
- "D. c #414141",
- "E. c #080808",
- "F. c #6B6B6B",
- "G. c #313131",
- "H. c #C0C0C0",
- "I. c #C9C9C9",
- "J. c #0B0B0B",
- "K. c #232323",
- "L. c #434343",
- "M. c #3D3D3D",
- "N. c #282828",
- "O. c #7C7C7C",
- "P. c #252525",
- "Q. c #3A3A3A",
- "R. c #F8F8F8",
- "S. c #1B1B1B",
- "T. c #949494",
- "U. c #3B3B3B",
- "V. c #242424",
- "W. c #383838",
- "X. c #6D6D6D",
- "Y. c #818181",
- "Z. c #939393",
- "`. c #9E9E9E",
- " + c #929292",
- ".+ c #7D7D7D",
- "++ c #ADADAD",
- "@+ c #DADADA",
- "#+ c #919191",
- "$+ c #E1E1E1",
- "%+ c #BEBEBE",
- "&+ c #ACACAC",
- "*+ c #9C9C9C",
- "=+ c #B3B3B3",
- "-+ c #808080",
- ";+ c #A8A8A8",
- ">+ c #393939",
- ",+ c #747474",
- "'+ c #7F7F7F",
- ")+ c #D1D1D1",
- "!+ c #606060",
- "~+ c #5C5C5C",
- "{+ c #686868",
- "]+ c #7E7E7E",
- "^+ c #787878",
- "/+ c #595959",
- ". . . + @ # $ % & * = - ; > , ' ) ! ~ { ] ^ / . . + + ",
- ". ( + _ : < [ & } | 1 2 $ 3 4 5 3 6 7 + + 8 9 + . + . ",
- ". + 0 9 a ( 3 a b c d e c f g h i g j $ k + l m + . + ",
- "+ 2 8 n o p | ( q r s . # t + + + u ^ v e w + x + + + ",
- "+ y z . @ A k B 7 n + ( s | p 8 C D 2 E 4 + + F G + . ",
- "# H I $ J G K L - M N . 2 O P Q R R S T U s s V W j + ",
- "X Y Z @ o ` _ g ...+.( 4 @.#.m G $.%.7 &.X *.=.-.;.&.",
- "Q >.C ,.'.} e + ).!.k + . + + . ~.{.> ].x f 7 ^./.k (.",
- "_.:.4 @ <.[.}.|.1.2.+ + + >.} 4 B + ( @ _ 3.4.5.6.r 7.",
- "3.8.9.~ 0.+ a.Q b.+ + c.d.#.=.$ |.b #.e.z ^ ; ^. .f.g.",
- "-.h.+ i.S M + # p j.% n 9.5.k.H l.m.V ^.n.o.M + M p.q.",
- "7 r.N s.1.R t.<.|.| u.v.~ w.x.E + s y.z.A.B.C.+ 5 D.q ",
- ").p.2 E.0.9 F.%.O {._ @.+ + i { [ i.G.H.P I.+ s q.} + ",
- ").p.6 J.R b.K.L.M.A.! b.g.K [.R M k + N.I + + >.O.+ . ",
- ").8.9.N.P...R R R R E.t.W n.+ Q.R.6 @.| + . + S.+ + . ",
- "n }.w T.U.B.<.i.@ Y + + U.+ c u V.= B B 7 u.W.c + . + ",
- "N T.# + }.X.Y.,.8.F.8 Z.[.`. +.+}.4 ++@+O.< ~.+ ( . + ",
- "d #+1 + _ ~.u.$+b $.y @+| $+%+I.&+k.h W +.9.+ ( . + . ",
- "w 0 |.*+. >.<.=+++++p a.p -+;+5.k.>+,+@ + . . + . + + ",
- "q '+9.R.^ I.t b %.I.)+4 $+n.I.,+ .|.+ . . . + . + + + ",
- ". p !+( + + + + + + E 0. .-+8.f.+ + . . + + . + + + + ",
- ". ( A ~+{+]+^+l > /+D f.c q . + . . + + . + + + + + + "
-]
-
-
-class QImageTest(UsesQApplication):
- '''Test case for calling setPixel with float as argument'''
-
- def testQImageStringBuffer(self):
- '''Test if the QImage signatures receiving string buffers exist.'''
- file = Path(__file__).resolve().parent / 'sample.png'
- self.assertTrue(file.is_file())
- img0 = QImage(file)
-
- # btw let's test the bits() method
- img1 = QImage(img0.bits(), img0.width(), img0.height(), img0.format())
- self.assertEqual(img0, img1)
- img2 = QImage(img0.bits(), img0.width(), img0.height(), img0.bytesPerLine(), img0.format())
- self.assertEqual(img0, img2)
-
- ## test scanLine method
- data1 = img0.scanLine(0)
- data2 = img1.scanLine(0)
- self.assertEqual(data1, data2)
-
- def testEmptyBuffer(self):
- img = QImage(bytes('', "UTF-8"), 100, 100, QImage.Format_ARGB32)
-
- def testEmptyStringAsBuffer(self):
- img = QImage(bytes('', "UTF-8"), 100, 100, QImage.Format_ARGB32)
-
- def testXpmConstructor(self):
- label = QLabel()
- img = QImage(xpm)
- self.assertFalse(img.isNull())
- self.assertEqual(img.width(), 27)
- self.assertEqual(img.height(), 22)
-
-
-if __name__ == '__main__':
- unittest.main()
-
diff --git a/sources/pyside6/tests/QtWidgets/qinputdialog_get_test.py b/sources/pyside6/tests/QtWidgets/qinputdialog_get_test.py
index c558e291b..260653ae7 100644
--- a/sources/pyside6/tests/QtWidgets/qinputdialog_get_test.py
+++ b/sources/pyside6/tests/QtWidgets/qinputdialog_get_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -35,23 +10,34 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtWidgets import QInputDialog
-from helper.timedqapplication import TimedQApplication
+from PySide6.QtCore import QTimer
+from PySide6.QtWidgets import QApplication, QInputDialog, QDialog
+from helper.usesqapplication import UsesQApplication
-class TestInputDialog(TimedQApplication):
+def close_dialog():
+ for w in QApplication.topLevelWidgets():
+ if isinstance(w, QDialog):
+ w.reject()
+
+
+class TestInputDialog(UsesQApplication):
def testGetDouble(self):
+ QTimer.singleShot(500, close_dialog)
self.assertEqual(QInputDialog.getDouble(None, "title", "label"), (0.0, False))
def testGetInt(self):
+ QTimer.singleShot(500, close_dialog)
self.assertEqual(QInputDialog.getInt(None, "title", "label"), (0, False))
def testGetItem(self):
+ QTimer.singleShot(500, close_dialog)
(item, bool) = QInputDialog.getItem(None, "title", "label", ["1", "2", "3"])
self.assertEqual(str(item), "1")
def testGetText(self):
+ QTimer.singleShot(500, close_dialog)
(text, bool) = QInputDialog.getText(None, "title", "label")
self.assertEqual(str(text), "")
diff --git a/sources/pyside6/tests/QtWidgets/qkeysequenceedit_test.py b/sources/pyside6/tests/QtWidgets/qkeysequenceedit_test.py
index 789607231..bcb4c7a61 100644
--- a/sources/pyside6/tests/QtWidgets/qkeysequenceedit_test.py
+++ b/sources/pyside6/tests/QtWidgets/qkeysequenceedit_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QKeySequenceEdit.'''
diff --git a/sources/pyside6/tests/QtWidgets/qlabel_test.py b/sources/pyside6/tests/QtWidgets/qlabel_test.py
index b8bbb2902..aba90b7b8 100644
--- a/sources/pyside6/tests/QtWidgets/qlabel_test.py
+++ b/sources/pyside6/tests/QtWidgets/qlabel_test.py
@@ -1,33 +1,9 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QLabel'''
+import gc
import os
import sys
import unittest
@@ -37,6 +13,7 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(True)
+from PySide6.QtCore import Qt
from PySide6.QtGui import QPixmap
from PySide6.QtWidgets import QLabel
from shiboken6 import Shiboken
@@ -53,6 +30,8 @@ class QLabelTest(UsesQApplication):
def tearDown(self):
del self.label
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
super(QLabelTest, self).tearDown()
def testSetPixmap(self):
@@ -76,6 +55,8 @@ class QLabelTest(UsesQApplication):
ret_p_addr = Shiboken.getCppPointer(ret_p)
# Remove the QPixmap
del ret_p
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
# Set new QPixmap
self.label.setPixmap(p2)
@@ -83,7 +64,13 @@ class QLabelTest(UsesQApplication):
# address that our QPixmap p1 because it was deleted
# using `del ret_p`
self.assertTrue(all(Shiboken.getCppPointer(o) != ret_p_addr
- for o in Shiboken.getAllValidWrappers()))
+ for o in Shiboken.getAllValidWrappers()))
+
+ # Test for PYSIDE-1673, QObject.property() returning a QFlags<> property.
+ def testQObjectProperty(self):
+ a = self.label.property("alignment")
+ self.assertEqual(type(a), Qt.Alignment)
+ print("alignment=", a)
if __name__ == '__main__':
diff --git a/sources/pyside6/tests/QtWidgets/qlayout_ref_test.py b/sources/pyside6/tests/QtWidgets/qlayout_ref_test.py
index e7e61e75a..df9bd7f90 100644
--- a/sources/pyside6/tests/QtWidgets/qlayout_ref_test.py
+++ b/sources/pyside6/tests/QtWidgets/qlayout_ref_test.py
@@ -1,33 +1,9 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QLayout handling of child widgets references'''
+import gc
import os
import sys
import unittest
@@ -61,6 +37,8 @@ class SaveReference(UsesQApplication):
# Release resources
del self.widget2
del self.widget1
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
super(SaveReference, self).tearDown()
@unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
@@ -132,6 +110,8 @@ class MultipleAdd(UsesQApplication):
del self.widget
del self.layout
del self.win
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
super(MultipleAdd, self).tearDown()
@unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
diff --git a/sources/pyside6/tests/QtWidgets/qlayout_test.py b/sources/pyside6/tests/QtWidgets/qlayout_test.py
index 57855fc05..cc41f78b1 100644
--- a/sources/pyside6/tests/QtWidgets/qlayout_test.py
+++ b/sources/pyside6/tests/QtWidgets/qlayout_test.py
@@ -1,31 +1,7 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+import gc
import os
import sys
import unittest
@@ -145,8 +121,19 @@ class QLayoutTest(UsesQApplication):
QTimer.singleShot(10, w.close)
self.app.exec()
del w
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
+ # PYSIDE-535: Why do I need to do it twice, here?
+ gc.collect()
self.assertRaises(RuntimeError, spacer.isEmpty)
+ def testConstructorProperties(self):
+ """PYSIDE-1986, test passing properties to the constructor of
+ QHBoxLayout, which does not have default arguments."""
+ layout = QHBoxLayout(objectName="layout", spacing=30)
+ self.assertEqual(layout.spacing(), 30)
+ self.assertEqual(layout.objectName(), "layout")
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/pyside6/tests/QtWidgets/qlcdnumber_test.py b/sources/pyside6/tests/QtWidgets/qlcdnumber_test.py
index fb7c4b578..bc186f755 100644
--- a/sources/pyside6/tests/QtWidgets/qlcdnumber_test.py
+++ b/sources/pyside6/tests/QtWidgets/qlcdnumber_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -41,6 +16,11 @@ from PySide6.QtWidgets import QApplication, QLCDNumber
class QLCDNumberOverflow(unittest.TestCase):
'''Test case for unhandled overflow on QLCDNumber() numDigits argument (see bug #215).'''
+ def assertRaises(self, *args, **kwds):
+ if not hasattr(sys, "pypy_version_info"):
+ # PYSIDE-535: PyPy complains "Fatal RPython error: NotImplementedError"
+ return super().assertRaises(*args, **kwds)
+
def setUp(self):
self.app = QApplication([])
diff --git a/sources/pyside6/tests/QtWidgets/qlistwidget_test.py b/sources/pyside6/tests/QtWidgets/qlistwidget_test.py
index d5b82070b..377e63ffb 100644
--- a/sources/pyside6/tests/QtWidgets/qlistwidget_test.py
+++ b/sources/pyside6/tests/QtWidgets/qlistwidget_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/qlistwidgetitem_test.py b/sources/pyside6/tests/QtWidgets/qlistwidgetitem_test.py
index 5bfdcf496..a85c1b48f 100644
--- a/sources/pyside6/tests/QtWidgets/qlistwidgetitem_test.py
+++ b/sources/pyside6/tests/QtWidgets/qlistwidgetitem_test.py
@@ -1,31 +1,7 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+import gc
import os
import sys
import unittest
@@ -47,6 +23,8 @@ class QListWidgetItemConstructor(UsesQApplication):
def tearDown(self):
del self.widgetList
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
super(QListWidgetItemConstructor, self).tearDown()
def testConstructorWithParent(self):
diff --git a/sources/pyside6/tests/QtWidgets/qmainwindow_test.py b/sources/pyside6/tests/QtWidgets/qmainwindow_test.py
index 5201bfdb8..2f245c8ff 100644
--- a/sources/pyside6/tests/QtWidgets/qmainwindow_test.py
+++ b/sources/pyside6/tests/QtWidgets/qmainwindow_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/qmenu_test.py b/sources/pyside6/tests/QtWidgets/qmenu_test.py
index 0033cd35d..a6976a637 100644
--- a/sources/pyside6/tests/QtWidgets/qmenu_test.py
+++ b/sources/pyside6/tests/QtWidgets/qmenu_test.py
@@ -1,31 +1,7 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+import gc
import os
import sys
import unittest
@@ -50,6 +26,8 @@ class QMenuAddAction(UsesQApplication):
def tearDown(self):
del self.menu
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
super(QMenuAddAction, self).tearDown()
def testAddActionWithoutKeySequenceCallable(self):
@@ -59,11 +37,11 @@ class QMenuAddAction(UsesQApplication):
def testAddActionKeySequenceCallable(self):
# bug #228
action = self.menu.addAction(self.app.tr('aaa'), lambda: 1,
- QKeySequence(self.app.tr('Ctrl+O')))
+ QKeySequence(self.app.tr('Ctrl+O')))
def testAddActionKeySequenceSlot(self):
action = self.menu.addAction('Quit', self.app, SLOT('quit()'),
- QKeySequence('Ctrl+O'))
+ QKeySequence('Ctrl+O'))
class QMenuAddActionWithIcon(UsesQApplication):
@@ -76,6 +54,8 @@ class QMenuAddActionWithIcon(UsesQApplication):
def tearDown(self):
del self.menu
del self.icon
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
super(QMenuAddActionWithIcon, self).tearDown()
def testAddActionWithoutKeySequenceCallable(self):
@@ -85,11 +65,11 @@ class QMenuAddActionWithIcon(UsesQApplication):
def testAddActionKeySequenceCallable(self):
# bug #228
action = self.menu.addAction(self.icon, self.app.tr('aaa'), lambda: 1,
- QKeySequence(self.app.tr('Ctrl+O')))
+ QKeySequence(self.app.tr('Ctrl+O')))
def testAddActionKeySequenceSlot(self):
action = self.menu.addAction(self.icon, 'Quit', self.app, SLOT('quit()'),
- QKeySequence('Ctrl+O'))
+ QKeySequence('Ctrl+O'))
if __name__ == '__main__':
diff --git a/sources/pyside6/tests/QtWidgets/qmenuadd_test.py b/sources/pyside6/tests/QtWidgets/qmenuadd_test.py
index c7f2ff74f..5b42e755f 100644
--- a/sources/pyside6/tests/QtWidgets/qmenuadd_test.py
+++ b/sources/pyside6/tests/QtWidgets/qmenuadd_test.py
@@ -1,32 +1,5 @@
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
''' Test the QMenu.addAction() method'''
diff --git a/sources/pyside6/tests/QtWidgets/qobject_mi_test.py b/sources/pyside6/tests/QtWidgets/qobject_mi_test.py
index 169ee5279..d90961495 100644
--- a/sources/pyside6/tests/QtWidgets/qobject_mi_test.py
+++ b/sources/pyside6/tests/QtWidgets/qobject_mi_test.py
@@ -1,32 +1,5 @@
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for multiple inheritance from 2 QObjects'''
diff --git a/sources/pyside6/tests/QtWidgets/qpen_test.py b/sources/pyside6/tests/QtWidgets/qpen_test.py
deleted file mode 100644
index c06102e1c..000000000
--- a/sources/pyside6/tests/QtWidgets/qpen_test.py
+++ /dev/null
@@ -1,81 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-import os
-import sys
-import unittest
-
-from pathlib import Path
-sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
-from init_paths import init_test_paths
-init_test_paths(False)
-
-from helper.usesqapplication import UsesQApplication
-
-from PySide6.QtCore import Qt, QTimer
-from PySide6.QtGui import QPen, QPainter
-from PySide6.QtWidgets import QWidget
-
-
-class Painting(QWidget):
- def __init__(self):
- super().__init__()
- self.penFromEnum = None
- self.penFromInteger = None
-
- def paintEvent(self, event):
- painter = QPainter(self)
- painter.setPen(Qt.NoPen)
- self.penFromEnum = painter.pen()
- painter.setPen(int(Qt.NoPen))
- self.penFromInteger = painter.pen()
-
-
-class QPenTest(UsesQApplication):
-
- def testCtorWithCreatedEnums(self):
- '''A simple case of QPen creation using created enums.'''
- width = 0
- style = Qt.PenStyle(0)
- cap = Qt.PenCapStyle(0)
- join = Qt.PenJoinStyle(0)
- pen = QPen(Qt.blue, width, style, cap, join)
-
- def testSetPenWithPenStyleEnum(self):
- '''Calls QPainter.setPen with both enum and integer. Bug #511.'''
- w = Painting()
- w.show()
- QTimer.singleShot(1000, self.app.quit)
- self.app.exec()
- self.assertEqual(w.penFromEnum.style(), Qt.NoPen)
- self.assertEqual(w.penFromInteger.style(), Qt.SolidLine)
-
-
-if __name__ == '__main__':
- unittest.main()
-
diff --git a/sources/pyside6/tests/QtWidgets/qpicture_test.py b/sources/pyside6/tests/QtWidgets/qpicture_test.py
index 9e1479dd8..b81713b57 100644
--- a/sources/pyside6/tests/QtWidgets/qpicture_test.py
+++ b/sources/pyside6/tests/QtWidgets/qpicture_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -43,18 +18,16 @@ from PySide6.QtWidgets import QWidget
class MyWidget(QWidget):
def paintEvent(self, e):
- p = QPainter(self)
- p.drawPicture(0, 0, self._picture)
+ with QPainter(self) as p:
+ p.drawPicture(0, 0, self._picture)
self._app.quit()
class QPictureTest(UsesQApplication):
def testFromData(self):
picture = QPicture()
- painter = QPainter()
- painter.begin(picture)
- painter.drawEllipse(10, 20, 80, 70)
- painter.end()
+ with QPainter(picture) as painter:
+ painter.drawEllipse(10, 20, 80, 70)
data = picture.data()
picture2 = QPicture()
diff --git a/sources/pyside6/tests/QtWidgets/qpixmap_constructor.py b/sources/pyside6/tests/QtWidgets/qpixmap_constructor.py
deleted file mode 100644
index 81afc3792..000000000
--- a/sources/pyside6/tests/QtWidgets/qpixmap_constructor.py
+++ /dev/null
@@ -1,288 +0,0 @@
-#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-import os
-import sys
-import unittest
-
-from pathlib import Path
-sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
-from init_paths import init_test_paths
-init_test_paths(False)
-
-from PySide6.QtGui import QPixmap
-from PySide6.QtWidgets import QLabel
-
-from helper.usesqapplication import UsesQApplication
-
-xpm = [
- "27 22 206 2",
- " c None",
- ". c #FEFEFE",
- "+ c #FFFFFF",
- "@ c #F9F9F9",
- "# c #ECECEC",
- "$ c #D5D5D5",
- "% c #A0A0A0",
- "& c #767676",
- "* c #525252",
- "= c #484848",
- "- c #4E4E4E",
- "; c #555555",
- "> c #545454",
- ", c #5A5A5A",
- "' c #4B4B4B",
- ") c #4A4A4A",
- "! c #4F4F4F",
- "~ c #585858",
- "{ c #515151",
- "] c #4C4C4C",
- "^ c #B1B1B1",
- "/ c #FCFCFC",
- "( c #FDFDFD",
- "_ c #C1C1C1",
- ": c #848484",
- "< c #616161",
- "[ c #5E5E5E",
- "} c #CECECE",
- "| c #E2E2E2",
- "1 c #E4E4E4",
- "2 c #DFDFDF",
- "3 c #D2D2D2",
- "4 c #D8D8D8",
- "5 c #D4D4D4",
- "6 c #E6E6E6",
- "7 c #F1F1F1",
- "8 c #838383",
- "9 c #8E8E8E",
- "0 c #8F8F8F",
- "a c #CBCBCB",
- "b c #CCCCCC",
- "c c #E9E9E9",
- "d c #F2F2F2",
- "e c #EDEDED",
- "f c #B5B5B5",
- "g c #A6A6A6",
- "h c #ABABAB",
- "i c #BBBBBB",
- "j c #B0B0B0",
- "k c #EAEAEA",
- "l c #6C6C6C",
- "m c #BCBCBC",
- "n c #F5F5F5",
- "o c #FAFAFA",
- "p c #B6B6B6",
- "q c #F3F3F3",
- "r c #CFCFCF",
- "s c #FBFBFB",
- "t c #CDCDCD",
- "u c #DDDDDD",
- "v c #999999",
- "w c #F0F0F0",
- "x c #2B2B2B",
- "y c #C3C3C3",
- "z c #A4A4A4",
- "A c #D7D7D7",
- "B c #E7E7E7",
- "C c #6E6E6E",
- "D c #9D9D9D",
- "E c #BABABA",
- "F c #AEAEAE",
- "G c #898989",
- "H c #646464",
- "I c #BDBDBD",
- "J c #CACACA",
- "K c #2A2A2A",
- "L c #212121",
- "M c #B7B7B7",
- "N c #F4F4F4",
- "O c #737373",
- "P c #828282",
- "Q c #4D4D4D",
- "R c #000000",
- "S c #151515",
- "T c #B2B2B2",
- "U c #D6D6D6",
- "V c #D3D3D3",
- "W c #2F2F2F",
- "X c #636363",
- "Y c #A1A1A1",
- "Z c #BFBFBF",
- "` c #E0E0E0",
- " . c #6A6A6A",
- ".. c #050505",
- "+. c #A3A3A3",
- "@. c #202020",
- "#. c #5F5F5F",
- "$. c #B9B9B9",
- "%. c #C7C7C7",
- "&. c #D0D0D0",
- "*. c #3E3E3E",
- "=. c #666666",
- "-. c #DBDBDB",
- ";. c #424242",
- ">. c #C2C2C2",
- ",. c #1A1A1A",
- "'. c #2C2C2C",
- "). c #F6F6F6",
- "!. c #AAAAAA",
- "~. c #DCDCDC",
- "{. c #2D2D2D",
- "]. c #2E2E2E",
- "^. c #A7A7A7",
- "/. c #656565",
- "(. c #333333",
- "_. c #464646",
- ":. c #C4C4C4",
- "<. c #B8B8B8",
- "[. c #292929",
- "}. c #979797",
- "|. c #EFEFEF",
- "1. c #909090",
- "2. c #8A8A8A",
- "3. c #575757",
- "4. c #676767",
- "5. c #C5C5C5",
- "6. c #7A7A7A",
- "7. c #797979",
- "8. c #989898",
- "9. c #EEEEEE",
- "0. c #707070",
- "a. c #C8C8C8",
- "b. c #111111",
- "c. c #AFAFAF",
- "d. c #474747",
- "e. c #565656",
- "f. c #E3E3E3",
- "g. c #494949",
- "h. c #5B5B5B",
- "i. c #222222",
- "j. c #353535",
- "k. c #D9D9D9",
- "l. c #0A0A0A",
- "m. c #858585",
- "n. c #E5E5E5",
- "o. c #0E0E0E",
- "p. c #9A9A9A",
- "q. c #6F6F6F",
- "r. c #868686",
- "s. c #060606",
- "t. c #1E1E1E",
- "u. c #E8E8E8",
- "v. c #A5A5A5",
- "w. c #0D0D0D",
- "x. c #030303",
- "y. c #272727",
- "z. c #131313",
- "A. c #1F1F1F",
- "B. c #757575",
- "C. c #F7F7F7",
- "D. c #414141",
- "E. c #080808",
- "F. c #6B6B6B",
- "G. c #313131",
- "H. c #C0C0C0",
- "I. c #C9C9C9",
- "J. c #0B0B0B",
- "K. c #232323",
- "L. c #434343",
- "M. c #3D3D3D",
- "N. c #282828",
- "O. c #7C7C7C",
- "P. c #252525",
- "Q. c #3A3A3A",
- "R. c #F8F8F8",
- "S. c #1B1B1B",
- "T. c #949494",
- "U. c #3B3B3B",
- "V. c #242424",
- "W. c #383838",
- "X. c #6D6D6D",
- "Y. c #818181",
- "Z. c #939393",
- "`. c #9E9E9E",
- " + c #929292",
- ".+ c #7D7D7D",
- "++ c #ADADAD",
- "@+ c #DADADA",
- "#+ c #919191",
- "$+ c #E1E1E1",
- "%+ c #BEBEBE",
- "&+ c #ACACAC",
- "*+ c #9C9C9C",
- "=+ c #B3B3B3",
- "-+ c #808080",
- ";+ c #A8A8A8",
- ">+ c #393939",
- ",+ c #747474",
- "'+ c #7F7F7F",
- ")+ c #D1D1D1",
- "!+ c #606060",
- "~+ c #5C5C5C",
- "{+ c #686868",
- "]+ c #7E7E7E",
- "^+ c #787878",
- "/+ c #595959",
- ". . . + @ # $ % & * = - ; > , ' ) ! ~ { ] ^ / . . + + ",
- ". ( + _ : < [ & } | 1 2 $ 3 4 5 3 6 7 + + 8 9 + . + . ",
- ". + 0 9 a ( 3 a b c d e c f g h i g j $ k + l m + . + ",
- "+ 2 8 n o p | ( q r s . # t + + + u ^ v e w + x + + + ",
- "+ y z . @ A k B 7 n + ( s | p 8 C D 2 E 4 + + F G + . ",
- "# H I $ J G K L - M N . 2 O P Q R R S T U s s V W j + ",
- "X Y Z @ o ` _ g ...+.( 4 @.#.m G $.%.7 &.X *.=.-.;.&.",
- "Q >.C ,.'.} e + ).!.k + . + + . ~.{.> ].x f 7 ^./.k (.",
- "_.:.4 @ <.[.}.|.1.2.+ + + >.} 4 B + ( @ _ 3.4.5.6.r 7.",
- "3.8.9.~ 0.+ a.Q b.+ + c.d.#.=.$ |.b #.e.z ^ ; ^. .f.g.",
- "-.h.+ i.S M + # p j.% n 9.5.k.H l.m.V ^.n.o.M + M p.q.",
- "7 r.N s.1.R t.<.|.| u.v.~ w.x.E + s y.z.A.B.C.+ 5 D.q ",
- ").p.2 E.0.9 F.%.O {._ @.+ + i { [ i.G.H.P I.+ s q.} + ",
- ").p.6 J.R b.K.L.M.A.! b.g.K [.R M k + N.I + + >.O.+ . ",
- ").8.9.N.P...R R R R E.t.W n.+ Q.R.6 @.| + . + S.+ + . ",
- "n }.w T.U.B.<.i.@ Y + + U.+ c u V.= B B 7 u.W.c + . + ",
- "N T.# + }.X.Y.,.8.F.8 Z.[.`. +.+}.4 ++@+O.< ~.+ ( . + ",
- "d #+1 + _ ~.u.$+b $.y @+| $+%+I.&+k.h W +.9.+ ( . + . ",
- "w 0 |.*+. >.<.=+++++p a.p -+;+5.k.>+,+@ + . . + . + + ",
- "q '+9.R.^ I.t b %.I.)+4 $+n.I.,+ .|.+ . . . + . + + + ",
- ". p !+( + + + + + + E 0. .-+8.f.+ + . . + + . + + + + ",
- ". ( A ~+{+]+^+l > /+D f.c q . + . . + + . + + + + + + "
-]
-
-
-class QStringSequenceTest(UsesQApplication):
- def testQPixmapConstructor(self):
- label = QLabel()
- pixmap1 = QPixmap(xpm)
- self.assertFalse(pixmap1.isNull())
- self.assertEqual(pixmap1.width(), 27)
- self.assertEqual(pixmap1.height(), 22)
-
-
-if __name__ == "__main__":
- unittest.main()
diff --git a/sources/pyside6/tests/QtWidgets/qpushbutton_test.py b/sources/pyside6/tests/QtWidgets/qpushbutton_test.py
index 859202bb4..bfc04130e 100644
--- a/sources/pyside6/tests/QtWidgets/qpushbutton_test.py
+++ b/sources/pyside6/tests/QtWidgets/qpushbutton_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/qshortcut_test.py b/sources/pyside6/tests/QtWidgets/qshortcut_test.py
deleted file mode 100644
index b9bed5a72..000000000
--- a/sources/pyside6/tests/QtWidgets/qshortcut_test.py
+++ /dev/null
@@ -1,88 +0,0 @@
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-''' Test the QShortcut constructor'''
-
-import os
-import sys
-import unittest
-
-from pathlib import Path
-sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
-from init_paths import init_test_paths
-init_test_paths(False)
-
-from PySide6.QtCore import Qt, QTimer
-from PySide6.QtGui import QKeySequence, QShortcut
-from PySide6.QtWidgets import QApplication, QWidget
-
-
-class Foo(QWidget):
- def __init__(self):
- super().__init__()
- self.ok = False
- self.copy = False
-
- def slot_of_foo(self):
- self.ok = True
-
- def slot_of_copy(self):
- self.copy = True
-
-
-class MyShortcut(QShortcut):
- def __init__(self, keys, wdg, slot):
- QShortcut.__init__(self, keys, wdg, slot)
-
- def emit_signal(self):
- self.activated.emit()
-
-
-class QAppPresence(unittest.TestCase):
-
- def testQShortcut(self):
- self.qapp = QApplication([])
- f = Foo()
-
- self.sc = MyShortcut(QKeySequence(Qt.Key_Return), f, f.slot_of_foo)
- self.scstd = MyShortcut(QKeySequence.Copy, f, f.slot_of_copy)
- QTimer.singleShot(0, self.init)
- self.qapp.exec()
- self.assertEqual(f.ok, True)
- self.assertEqual(f.copy, True)
-
- def init(self):
- self.sc.emit_signal()
- self.scstd.emit_signal()
- self.qapp.quit()
-
-
-if __name__ == '__main__':
- unittest.main()
diff --git a/sources/pyside6/tests/QtWidgets/qsplitter_test.py b/sources/pyside6/tests/QtWidgets/qsplitter_test.py
index cce68f2d7..ae383f425 100644
--- a/sources/pyside6/tests/QtWidgets/qsplitter_test.py
+++ b/sources/pyside6/tests/QtWidgets/qsplitter_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/qstandarditemmodel_test.py b/sources/pyside6/tests/QtWidgets/qstandarditemmodel_test.py
deleted file mode 100644
index 97fe18119..000000000
--- a/sources/pyside6/tests/QtWidgets/qstandarditemmodel_test.py
+++ /dev/null
@@ -1,107 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-import os
-import sys
-import unittest
-
-from pathlib import Path
-sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
-from init_paths import init_test_paths
-init_test_paths(False)
-
-from PySide6.QtGui import QStandardItemModel, QStandardItem
-from PySide6.QtWidgets import QWidget
-from shiboken6 import Shiboken
-from helper.usesqapplication import UsesQApplication
-
-
-class QStandardItemModelTest(UsesQApplication):
-
- def setUp(self):
- super(QStandardItemModelTest, self).setUp()
- self.window = QWidget()
- self.model = QStandardItemModel(0, 3, self.window)
-
- def tearDown(self):
- del self.window
- del self.model
- super(QStandardItemModelTest, self).tearDown()
-
- def testInsertRow(self):
- # bug #227
- self.model.insertRow(0)
-
- def testClear(self):
-
- model = QStandardItemModel()
- root = model.invisibleRootItem()
- model.clear()
- self.assertFalse(Shiboken.isValid(root))
-
-
-class QStandardItemModelRef(UsesQApplication):
- @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
- def testRefCount(self):
- model = QStandardItemModel(5, 5)
- items = []
- for r in range(5):
- row = []
- for c in range(5):
- row.append(QStandardItem(f"{r},{c}"))
- self.assertEqual(sys.getrefcount(row[c]), 2)
-
- model.insertRow(r, row)
-
- for c in range(5):
- ref_after = sys.getrefcount(row[c])
- # check if the ref count was incremented after insertRow
- self.assertEqual(ref_after, 3)
-
- items.append(row)
- row = None
-
- for r in range(3):
- my_row = model.takeRow(0)
- my_row = None
- for c in range(5):
- # only rest 1 reference
- self.assertEqual(sys.getrefcount(items[r][c]), 2)
-
- my_i = model.item(0, 0)
- # ref(my_i) + parent_ref + items list ref
- self.assertEqual(sys.getrefcount(my_i), 4)
-
- model.clear()
- # ref(my_i)
- self.assertEqual(sys.getrefcount(my_i), 3)
-
-
-if __name__ == '__main__':
- unittest.main()
-
diff --git a/sources/pyside6/tests/QtWidgets/qstring_qkeysequence_test.py b/sources/pyside6/tests/QtWidgets/qstring_qkeysequence_test.py
deleted file mode 100644
index 85ae7b65b..000000000
--- a/sources/pyside6/tests/QtWidgets/qstring_qkeysequence_test.py
+++ /dev/null
@@ -1,69 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-'''Tests conversions of QString to and from QKeySequence.'''
-
-import os
-import sys
-import unittest
-
-from pathlib import Path
-sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
-from init_paths import init_test_paths
-init_test_paths(False)
-
-from helper.usesqapplication import UsesQApplication
-
-from PySide6.QtGui import QAction, QKeySequence
-
-
-class QStringQKeySequenceTest(UsesQApplication):
- '''Tests conversions of QString to and from QKeySequence.'''
-
- def testQStringFromQKeySequence(self):
- '''Creates a QString from a QKeySequence.'''
- keyseq = 'Ctrl+A'
- a = QKeySequence(keyseq)
- self.assertEqual(a, keyseq)
-
- def testPythonStringAsQKeySequence(self):
- '''Passes a Python string to an argument expecting a QKeySequence.'''
- keyseq = 'Ctrl+A'
- action = QAction(None)
- action.setShortcut(keyseq)
- shortcut = action.shortcut()
- self.assertTrue(isinstance(shortcut, QKeySequence))
- self.assertEqual(shortcut.toString(), keyseq)
-
-
-if __name__ == '__main__':
- unittest.main()
-
diff --git a/sources/pyside6/tests/QtWidgets/qstyle_test.py b/sources/pyside6/tests/QtWidgets/qstyle_test.py
index 1f837cda6..5a9b29dc6 100644
--- a/sources/pyside6/tests/QtWidgets/qstyle_test.py
+++ b/sources/pyside6/tests/QtWidgets/qstyle_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import sys
import os
@@ -40,7 +15,7 @@ from helper.usesqapplication import UsesQApplication
from PySide6.QtGui import QWindow
from PySide6.QtWidgets import (QApplication, QFontComboBox, QLabel, QProxyStyle,
- QStyleFactory, QWidget)
+ QStyleFactory, QWidget)
class ProxyStyle(QProxyStyle):
diff --git a/sources/pyside6/tests/QtWidgets/qstyleoption_test.py b/sources/pyside6/tests/QtWidgets/qstyleoption_test.py
new file mode 100644
index 000000000..06798b9e9
--- /dev/null
+++ b/sources/pyside6/tests/QtWidgets/qstyleoption_test.py
@@ -0,0 +1,43 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import sys
+import os
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from helper.usesqapplication import UsesQApplication
+
+from PySide6.QtWidgets import (QApplication, QCommonStyle, QPushButton)
+
+
+text = ''
+
+
+class Style(QCommonStyle):
+
+ def drawControl(self, element, option, painter, widget=None):
+ # This should be a QStyleOptionButton with a "text" field
+ global text
+ text = option.text
+
+
+class StyleOptionTest(UsesQApplication):
+ '''PYSIDE-1909: Test cast to derived style option classes.'''
+
+ def testStyle(self):
+ global text
+ button = QPushButton("Hello World")
+ button.setStyle(Style())
+ button.show()
+ while not text:
+ QApplication.processEvents()
+ self.assertEqual(text, button.text())
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/QtWidgets/qtableview_test.py b/sources/pyside6/tests/QtWidgets/qtableview_test.py
index 8e457d781..c43666f23 100644
--- a/sources/pyside6/tests/QtWidgets/qtableview_test.py
+++ b/sources/pyside6/tests/QtWidgets/qtableview_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/qtabwidget_test.py b/sources/pyside6/tests/QtWidgets/qtabwidget_test.py
index aeccf6118..8db45f24b 100644
--- a/sources/pyside6/tests/QtWidgets/qtabwidget_test.py
+++ b/sources/pyside6/tests/QtWidgets/qtabwidget_test.py
@@ -1,31 +1,7 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+import gc
import os
import sys
import unittest
@@ -51,6 +27,8 @@ class RemoveTabMethod(TimedQApplication):
def tearDown(self):
del self.tab
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
TimedQApplication.tearDown(self)
def testRemoveTabPresence(self):
diff --git a/sources/pyside6/tests/QtWidgets/qtabwidgetclear_test.py b/sources/pyside6/tests/QtWidgets/qtabwidgetclear_test.py
index cc3282361..49e16e8d2 100644
--- a/sources/pyside6/tests/QtWidgets/qtabwidgetclear_test.py
+++ b/sources/pyside6/tests/QtWidgets/qtabwidgetclear_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/qtextedit_signal_test.py b/sources/pyside6/tests/QtWidgets/qtextedit_signal_test.py
index 534527cac..16929f0f2 100644
--- a/sources/pyside6/tests/QtWidgets/qtextedit_signal_test.py
+++ b/sources/pyside6/tests/QtWidgets/qtextedit_signal_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/qtextedit_test.py b/sources/pyside6/tests/QtWidgets/qtextedit_test.py
index bb6b98009..b82350293 100644
--- a/sources/pyside6/tests/QtWidgets/qtextedit_test.py
+++ b/sources/pyside6/tests/QtWidgets/qtextedit_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QTextEdit and ownership problems.'''
diff --git a/sources/pyside6/tests/QtWidgets/qtoolbar_test.py b/sources/pyside6/tests/QtWidgets/qtoolbar_test.py
index 3f86c3f98..6fa5865cf 100644
--- a/sources/pyside6/tests/QtWidgets/qtoolbar_test.py
+++ b/sources/pyside6/tests/QtWidgets/qtoolbar_test.py
@@ -1,33 +1,9 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QToolbar'''
+import gc
import os
import sys
import unittest
@@ -58,6 +34,8 @@ class AddActionText(UsesQApplication):
super(AddActionText, self).tearDown()
del self.toolbar
del self.window
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
def testText(self):
# QToolBar.addAction(text) - add a QToolButton
diff --git a/sources/pyside6/tests/QtWidgets/qtoolbox_test.py b/sources/pyside6/tests/QtWidgets/qtoolbox_test.py
index 79c447fd7..d069416b7 100644
--- a/sources/pyside6/tests/QtWidgets/qtoolbox_test.py
+++ b/sources/pyside6/tests/QtWidgets/qtoolbox_test.py
@@ -1,31 +1,7 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+import gc
import os
import sys
import unittest
@@ -49,6 +25,8 @@ class OwnershipControl(UsesQApplication):
def tearDown(self):
del self.toolbox
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
super(OwnershipControl, self).tearDown()
def testAddItem(self):
diff --git a/sources/pyside6/tests/QtWidgets/qtreeview_test.py b/sources/pyside6/tests/QtWidgets/qtreeview_test.py
index fbbbd6cef..fd535bfad 100644
--- a/sources/pyside6/tests/QtWidgets/qtreeview_test.py
+++ b/sources/pyside6/tests/QtWidgets/qtreeview_test.py
@@ -1,31 +1,7 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+import gc
import os
import sys
import unittest
@@ -37,7 +13,7 @@ init_test_paths(False)
from PySide6.QtGui import QStandardItemModel
from PySide6.QtWidgets import (QWidget, QTreeView, QVBoxLayout,
- QStyledItemDelegate, QHeaderView)
+ QStyledItemDelegate, QHeaderView)
from PySide6.QtCore import Qt
from helper.usesqapplication import UsesQApplication
@@ -76,6 +52,8 @@ class QWidgetTest(UsesQApplication):
# This raised the Segmentation Fault too, because manually destroying
# the object caused a missing refrence.
del d
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
# Getting the delegates
a = t.itemDelegateForColumn(0)
diff --git a/sources/pyside6/tests/QtWidgets/qtreewidget_test.py b/sources/pyside6/tests/QtWidgets/qtreewidget_test.py
index 2ed85b5c5..6c2db32b9 100644
--- a/sources/pyside6/tests/QtWidgets/qtreewidget_test.py
+++ b/sources/pyside6/tests/QtWidgets/qtreewidget_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/qtreewidgetitem_test.py b/sources/pyside6/tests/QtWidgets/qtreewidgetitem_test.py
index d9813b23a..432aba2ed 100644
--- a/sources/pyside6/tests/QtWidgets/qtreewidgetitem_test.py
+++ b/sources/pyside6/tests/QtWidgets/qtreewidgetitem_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of PySide6.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
"""
Unit tests for QTreeWidgetItem
@@ -66,9 +40,6 @@ class QTreeWidgetItemTest(unittest.TestCase):
self.assertTrue(item not in dummy_list)
self.assertFalse(item == item2)
self.assertTrue(item != item2)
- treewidget.show()
- QTimer.singleShot(500, app.quit)
- app.exec()
if __name__ == "__main__":
diff --git a/sources/pyside6/tests/QtWidgets/qvariant_test.py b/sources/pyside6/tests/QtWidgets/qvariant_test.py
index 2907fb966..fe0266309 100644
--- a/sources/pyside6/tests/QtWidgets/qvariant_test.py
+++ b/sources/pyside6/tests/QtWidgets/qvariant_test.py
@@ -1,31 +1,7 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+import gc
import os
import sys
import unittest
@@ -35,8 +11,9 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtWidgets import (QApplication, QComboBox, QGraphicsScene,
- QGraphicsRectItem)
+from PySide6.QtCore import Qt, QObject
+from PySide6.QtWidgets import (QComboBox, QGraphicsScene,
+ QGraphicsRectItem)
from helper.usesqapplication import UsesQApplication
@@ -73,6 +50,8 @@ class QGraphicsSceneOnQVariantTest(UsesQApplication):
del self.s
del self.i
del self.combo
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
super(QGraphicsSceneOnQVariantTest, self).tearDown()
def testIt(self):
@@ -85,5 +64,79 @@ class QGraphicsSceneOnQVariantTest(UsesQApplication):
self.assertTrue(isinstance(self.combo.itemData(0), Sequence))
+class QVariantConversionTest(UsesQApplication):
+ """
+ Tests conversion from QVariant to supported type held by QVariant
+ """
+ def setUp(self):
+ super(QVariantConversionTest, self).setUp()
+ self.obj = QObject()
+
+ def tearDown(self):
+ del self.obj
+ super(QVariantConversionTest, self).tearDown()
+
+ def testEnum(self):
+ """
+ PYSIDE-1798: Test enum is obtained correctly when return through QVariant
+ """
+ self.obj.setProperty("test", Qt.SolidLine)
+ self.assertTrue(isinstance(self.obj.property("test"), Qt.PenStyle))
+ self.assertEqual(self.obj.property("test"), Qt.SolidLine)
+
+ def testString(self):
+ self.obj.setProperty("test", "test")
+ self.assertEqual(self.obj.property("test"), "test")
+ self.assertTrue(isinstance(self.obj.property("test"), str))
+
+ def testBytes(self):
+ byte_message = bytes("test", 'utf-8')
+ self.obj.setProperty("test", byte_message)
+ self.assertEqual(self.obj.property("test"), byte_message)
+ self.assertTrue(isinstance(self.obj.property("test"), bytes))
+
+ def testBasicTypes(self):
+ #bool
+ self.obj.setProperty("test", True)
+ self.assertEqual(self.obj.property("test"), True)
+ self.assertTrue(isinstance(self.obj.property("test"), bool))
+ #long
+ self.obj.setProperty("test", 2)
+ self.assertEqual(self.obj.property("test"), 2)
+ self.assertTrue(isinstance(self.obj.property("test"), int))
+ #float
+ self.obj.setProperty("test", 2.5)
+ self.assertEqual(self.obj.property("test"), 2.5)
+ self.assertTrue(isinstance(self.obj.property("test"), float))
+ #None
+ self.obj.setProperty("test", None)
+ self.assertEqual(self.obj.property("test"), None)
+
+ def testContainerTypes(self):
+ #list
+ self.obj.setProperty("test", [1, 2, 3])
+ self.assertEqual(self.obj.property("test"), [1, 2, 3])
+ self.assertTrue(isinstance(self.obj.property("test"), list))
+ #dict
+ self.obj.setProperty("test", {1: "one"})
+ self.assertEqual(self.obj.property("test"), {1: "one"})
+ self.assertTrue(isinstance(self.obj.property("test"), dict))
+
+ def testPyObject(self):
+ class Test:
+ pass
+ test = Test()
+ self.obj.setProperty("test", test)
+ self.assertEqual(self.obj.property("test"), test)
+ self.assertTrue(isinstance(self.obj.property("test"), Test))
+
+ def testQMetaPropertyWrite(self):
+ combo_box = QComboBox()
+ meta_obj = combo_box.metaObject()
+ i = meta_obj.indexOfProperty("sizeAdjustPolicy")
+ success = meta_obj.property(i).write(combo_box, QComboBox.SizeAdjustPolicy.AdjustToContents)
+ self.assertTrue(success)
+
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/pyside6/tests/QtWidgets/qwidget_setlayout_test.py b/sources/pyside6/tests/QtWidgets/qwidget_setlayout_test.py
index 02ab052ee..1d9128789 100644
--- a/sources/pyside6/tests/QtWidgets/qwidget_setlayout_test.py
+++ b/sources/pyside6/tests/QtWidgets/qwidget_setlayout_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/qwidget_test.py b/sources/pyside6/tests/QtWidgets/qwidget_test.py
index 4a90648f6..2d503f0d4 100644
--- a/sources/pyside6/tests/QtWidgets/qwidget_test.py
+++ b/sources/pyside6/tests/QtWidgets/qwidget_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import sys
import os
diff --git a/sources/pyside6/tests/QtWidgets/reference_count_test.py b/sources/pyside6/tests/QtWidgets/reference_count_test.py
index 92c63fac8..b7d3908dd 100644
--- a/sources/pyside6/tests/QtWidgets/reference_count_test.py
+++ b/sources/pyside6/tests/QtWidgets/reference_count_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for Reference count when the object is created in c++ side'''
diff --git a/sources/pyside6/tests/QtWidgets/signature_test.py b/sources/pyside6/tests/QtWidgets/signature_test.py
index c507c2ca7..f156b6717 100644
--- a/sources/pyside6/tests/QtWidgets/signature_test.py
+++ b/sources/pyside6/tests/QtWidgets/signature_test.py
@@ -1,41 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import inspect
import os
@@ -49,44 +13,44 @@ init_test_paths(False)
import PySide6.QtCore
import PySide6.QtWidgets
+from PySide6.support.signature import get_signature
class PySideSignatureTest(unittest.TestCase):
def testSignatureExist(self):
- t1 = type(PySide6.QtCore.QObject.children.__signature__)
+ t1 = type(get_signature(PySide6.QtCore.QObject.children))
self.assertEqual(t1, inspect.Signature)
- t2 = type(PySide6.QtCore.QObject.__dict__["children"].__signature__)
+ t2 = type(get_signature(PySide6.QtCore.QObject.__dict__["children"]))
self.assertEqual(t2, t1)
obj = PySide6.QtWidgets.QApplication.palette
- t3 = type(obj.__signature__)
+ t3 = type(get_signature(obj))
self.assertEqual(t3, list)
- self.assertEqual(len(obj.__signature__), 3)
- for thing in obj.__signature__:
+ self.assertEqual(len(get_signature(obj)), 3)
+ for thing in get_signature(obj):
self.assertEqual(type(thing), inspect.Signature)
sm = PySide6.QtWidgets.QApplication.__dict__["palette"]
# PYSIDE-1436: staticmethod is a callable since Python 3.10
# Instead of checking callable(sm), we check the type:
self.assertEqual(type(sm), staticmethod)
- self.assertTrue(hasattr(sm, "__signature__") and
- sm.__signature__ is not None)
+ self.assertTrue(get_signature(sm) is not None)
def testSignatureIsCached(self):
# see if we get the same object
- ob1 = PySide6.QtCore.QObject.children.__signature__
- ob2 = PySide6.QtCore.QObject.children.__signature__
+ ob1 = get_signature(PySide6.QtCore.QObject.children)
+ ob2 = get_signature(PySide6.QtCore.QObject.children)
self.assertTrue(ob1 is ob2)
# same with multi signature
- ob1 = PySide6.QtWidgets.QApplication.palette.__signature__
- ob2 = PySide6.QtWidgets.QApplication.palette.__signature__
+ ob1 = get_signature(PySide6.QtWidgets.QApplication.palette)
+ ob2 = get_signature(PySide6.QtWidgets.QApplication.palette)
self.assertTrue(ob1 is ob2)
def testModuleIsInitialized(self):
- self.assertTrue(PySide6.QtWidgets.QApplication.__signature__ is not None)
+ self.assertTrue(get_signature(PySide6.QtWidgets.QApplication) is not None)
def test_NotCalled_is_callable_and_correct(self):
# A signature that has a default value with some "Default(...)"
# wrapper is callable and creates an object of the right type.
- sig = PySide6.QtCore.QByteArray().toPercentEncoding.__signature__
+ sig = get_signature(PySide6.QtCore.QByteArray().toPercentEncoding)
called_default = sig.parameters["exclude"].default()
self.assertEqual(type(called_default), PySide6.QtCore.QByteArray)
diff --git a/sources/pyside6/tests/QtWidgets/standardpixmap_test.py b/sources/pyside6/tests/QtWidgets/standardpixmap_test.py
index c6e696807..564f3ff2e 100644
--- a/sources/pyside6/tests/QtWidgets/standardpixmap_test.py
+++ b/sources/pyside6/tests/QtWidgets/standardpixmap_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/test_module_template.py b/sources/pyside6/tests/QtWidgets/test_module_template.py
index 83c1fce4b..92661cdff 100644
--- a/sources/pyside6/tests/QtWidgets/test_module_template.py
+++ b/sources/pyside6/tests/QtWidgets/test_module_template.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/QtWidgets/virtual_protected_inheritance_test.py b/sources/pyside6/tests/QtWidgets/virtual_protected_inheritance_test.py
index c22648551..911fed475 100644
--- a/sources/pyside6/tests/QtWidgets/virtual_protected_inheritance_test.py
+++ b/sources/pyside6/tests/QtWidgets/virtual_protected_inheritance_test.py
@@ -1,33 +1,9 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for overriding inherited protected virtual methods'''
+import gc
import os
import sys
import unittest
@@ -83,6 +59,8 @@ class TimerEventTest(UsesQApplication):
def tearDown(self):
# Release resources
del self.widget
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
super(TimerEventTest, self).tearDown()
def testMethod(self):
diff --git a/sources/pyside6/tests/QtWidgets/virtual_pure_override_test.py b/sources/pyside6/tests/QtWidgets/virtual_pure_override_test.py
index 68d366c36..b7d1e4f3f 100644
--- a/sources/pyside6/tests/QtWidgets/virtual_pure_override_test.py
+++ b/sources/pyside6/tests/QtWidgets/virtual_pure_override_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -53,6 +27,8 @@ class RoundRectItem(QGraphicsRectItem):
def paint(self, painter, qstyleoptiongraphicsitem, qwidget):
global qgraphics_item_painted
qgraphics_item_painted = True
+ view = self.scene().views()[0]
+ QTimer.singleShot(20, view.close)
class QGraphicsItemTest(UsesQApplication):
@@ -72,10 +48,10 @@ class QGraphicsItemTest(UsesQApplication):
scene = QGraphicsScene()
scene.addText("test")
view = QGraphicsView(scene)
+ view.setWindowTitle("virtual_pure_override_test")
rect = self.createRoundRect(scene)
view.show()
- QTimer.singleShot(1000, self.quit_app)
self.app.exec()
self.assertTrue(qgraphics_item_painted)
diff --git a/sources/pyside6/tests/QtWidgets/wrong_return_test.py b/sources/pyside6/tests/QtWidgets/wrong_return_test.py
index f9267f3fa..009078ac1 100644
--- a/sources/pyside6/tests/QtWidgets/wrong_return_test.py
+++ b/sources/pyside6/tests/QtWidgets/wrong_return_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for Virtual functions with wrong return type'''
diff --git a/sources/pyside6/tests/QtXml/QtXml.pyproject b/sources/pyside6/tests/QtXml/QtXml.pyproject
new file mode 100644
index 000000000..a0c8a9630
--- /dev/null
+++ b/sources/pyside6/tests/QtXml/QtXml.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["qdomdocument_test.py"]
+}
diff --git a/sources/pyside6/tests/QtXml/qdomdocument_test.py b/sources/pyside6/tests/QtXml/qdomdocument_test.py
index a02062496..cfc1c543d 100644
--- a/sources/pyside6/tests/QtXml/qdomdocument_test.py
+++ b/sources/pyside6/tests/QtXml/qdomdocument_test.py
@@ -1,33 +1,8 @@
#!/usr/bin/python
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
+import gc
import os
import sys
import unittest
@@ -63,6 +38,8 @@ class QDomDocumentTest(unittest.TestCase):
del self.dom
del self.goodXmlData
del self.badXmlData
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
def testQDomDocumentSetContentWithBadXmlData(self):
'''Sets invalid xml as the QDomDocument contents.'''
@@ -70,7 +47,6 @@ class QDomDocumentTest(unittest.TestCase):
self.assertFalse(ok)
self.assertEqual(errorStr, 'Opening and ending tag mismatch.')
self.assertEqual(errorLine, 4)
- self.assertEqual(errorColumn, 21)
def testQDomDocumentSetContentWithGoodXmlData(self):
'''Sets valid xml as the QDomDocument contents.'''
diff --git a/sources/pyside6/tests/init_paths.py b/sources/pyside6/tests/init_paths.py
index 64b4f8791..e69ec1c15 100644
--- a/sources/pyside6/tests/init_paths.py
+++ b/sources/pyside6/tests/init_paths.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -75,7 +50,8 @@ def _init_test_paths(shiboken_tests=False, testbindings_module=False):
pyside_build_dir = os.path.join(get_build_dir(), 'pyside6')
python_dirs.append(pyside_build_dir) # for PySide6
- lib_dirs = [os.path.join(pyside_build_dir, 'libpyside')]
+ lib_dirs = [os.path.join(pyside_build_dir, 'libpyside'),
+ os.path.join(pyside_build_dir, 'libpysideqml')]
if testbindings_module:
python_dirs.append(os.path.join(pyside_build_dir,
diff --git a/sources/pyside6/tests/mac/qmacstyle_test.py b/sources/pyside6/tests/mac/qmacstyle_test.py
index ab430c343..18fc64286 100644
--- a/sources/pyside6/tests/mac/qmacstyle_test.py
+++ b/sources/pyside6/tests/mac/qmacstyle_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
# Qt5: this is gone: from PySide6.QtGui import QMacStyle
diff --git a/sources/pyside6/tests/manually/bug_841.py b/sources/pyside6/tests/manually/bug_841.py
index 5742b5517..3911244ce 100644
--- a/sources/pyside6/tests/manually/bug_841.py
+++ b/sources/pyside6/tests/manually/bug_841.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import sys
diff --git a/sources/pyside6/tests/manually/lazytiming.py b/sources/pyside6/tests/manually/lazytiming.py
new file mode 100644
index 000000000..59f75bc46
--- /dev/null
+++ b/sources/pyside6/tests/manually/lazytiming.py
@@ -0,0 +1,38 @@
+# Copyright (C) 2024 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+"""
+Time a repeated Python run
+--------------------------
+
+Usage: python3 lazytiming.py # uses PySide6
+ python3 lazytiming.py <any arg> # uses PyQt6
+
+It runs the same python for the testing.
+
+Actually comparing PySide6 and PyQt6 in action:
+
+ PYSIDE6_OPTION_LAZY=0 python3 sources/pyside6/tests/manually/lazytiming.py # normal
+ PYSIDE6_OPTION_LAZY=1 python3 sources/pyside6/tests/manually/lazytiming.py # faster
+ python3 sources/pyside6/tests/manually/lazytiming.py xxx # PyQt
+"""
+import subprocess
+import sys
+
+from timeit import default_timer as timer
+
+repeats = 100
+test1 = "PySide6"
+test2 = "PyQt6"
+
+test = test2 if sys.argv[1:] else test1
+cmd = [sys.executable, "-c", f"from {test} import QtCore, QtGui, QtWidgets"]
+
+print(f"{repeats} * {test}")
+
+subprocess.call(cmd) # warmup
+start_time = timer()
+for idx in range(repeats):
+ subprocess.call(cmd)
+stop_time = timer()
+print(f"time per run = {(stop_time - start_time) / repeats}")
diff --git a/sources/pyside6/tests/pysidetest/CMakeLists.txt b/sources/pyside6/tests/pysidetest/CMakeLists.txt
index d63326eb9..38f42f342 100644
--- a/sources/pyside6/tests/pysidetest/CMakeLists.txt
+++ b/sources/pyside6/tests/pysidetest/CMakeLists.txt
@@ -1,7 +1,10 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(pysidetest)
project(testbinding)
-cmake_minimum_required(VERSION 3.16)
+cmake_minimum_required(VERSION 3.18)
set(QT_USE_QTCORE 1)
# no more supported: include(${QT_USE_FILE})
@@ -14,14 +17,18 @@ set(CMAKE_AUTOMOC ON)
add_definitions(-DQT_SHARED)
add_definitions(-DRXX_ALLOCATOR_INIT_0)
-find_package(Qt${QT_MAJOR_VERSION}Widgets)
+find_package(Qt6 REQUIRED COMPONENTS Widgets)
set(pysidetest_SRC
-containertest.cpp
-flagstest.cpp
-testobject.cpp
-testview.cpp
-hiddenobject.cpp
+containertest.cpp containertest.h
+flagstest.cpp flagstest.h
+hiddenobject.cpp hiddenobject.h
+pysidetest_global.h
+pysidetest_macros.h
+sharedpointertestbench.cpp sharedpointertestbench.h
+testobject.cpp testobject.h
+testview.cpp testview.h
+testqvariantenum.cpp testqvariantenum.h
)
set(testbinding_SRC
@@ -33,8 +40,13 @@ ${CMAKE_CURRENT_BINARY_DIR}/testbinding/pysidecpp_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/testbinding/pysidecpp_testobjectwithnamespace_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/testbinding/pysidecpp_testobject2withnamespace_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/testbinding/pysidecpp2_testobjectwithoutnamespace_wrapper.cpp
+${CMAKE_CURRENT_BINARY_DIR}/testbinding/qsharedpointer_qobject_wrapper.cpp
+${CMAKE_CURRENT_BINARY_DIR}/testbinding/qsharedpointer_int_wrapper.cpp
+${CMAKE_CURRENT_BINARY_DIR}/testbinding/sharedpointertestbench_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/testbinding/testview_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/testbinding/testbinding_module_wrapper.cpp
+${CMAKE_CURRENT_BINARY_DIR}/testbinding/testqvariantenum_wrapper.cpp
+${CMAKE_CURRENT_BINARY_DIR}/testbinding/qvariantholder_wrapper.cpp
)
# Get per module include dirs.
@@ -69,10 +81,15 @@ make_path(testbinding_include_dirs ${pyside6_BINARY_DIR}
make_path(testbinding_typesystem_path ${pyside6_SOURCE_DIR}
${pyside6_BINARY_DIR})
+shiboken_get_tool_shell_wrapper(shiboken tool_wrapper)
+
add_custom_command(
-OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/mjb_rejected_classes.log"
- BYPRODUCTS ${testbinding_SRC}
- COMMAND Shiboken6::shiboken6 ${GENERATOR_EXTRA_FLAGS}
+ OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/mjb_rejected_classes.log"
+ BYPRODUCTS ${testbinding_SRC}
+ COMMAND
+ ${tool_wrapper}
+ $<TARGET_FILE:Shiboken6::shiboken6>
+ ${GENERATOR_EXTRA_FLAGS}
${CMAKE_CURRENT_SOURCE_DIR}/pysidetest_global.h
--include-paths=${testbinding_include_dirs}
${shiboken_framework_include_dirs_option}
@@ -80,8 +97,8 @@ OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/mjb_rejected_classes.log"
--output-directory=${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/typesystem_pysidetest.xml
--api-version=${SUPPORTED_QT_VERSION}
-WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
-COMMENT "Running generator for test binding..."
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ COMMENT "Running generator for test binding..."
)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}
@@ -101,10 +118,7 @@ set_target_properties(pysidetest PROPERTIES
target_link_libraries(pysidetest
Shiboken6::libshiboken
- ${Qt${QT_MAJOR_VERSION}Core_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Gui_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Widgets_LIBRARIES}
- )
+ Qt::Core Qt::Gui Qt::Widgets)
add_library(testbinding MODULE ${testbinding_SRC})
set_property(TARGET testbinding PROPERTY PREFIX "")
@@ -113,25 +127,17 @@ if(WIN32)
set_property(TARGET testbinding PROPERTY SUFFIX ".pyd")
endif()
-if(PYTHON_LIMITED_API)
- set(TESTBINDING_PYTHON_LIBS ${PYTHON_LIMITED_LIBRARIES})
-else()
- set(TESTBINDING_PYTHON_LIBS ${PYTHON_LIBRARIES})
-endif()
-
target_link_libraries(testbinding
pysidetest
pyside6
- ${TESTBINDING_PYTHON_LIBS}
Shiboken6::libshiboken
- ${Qt${QT_MAJOR_VERSION}Core_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Gui_LIBRARIES}
- ${Qt${QT_MAJOR_VERSION}Widgets_LIBRARIES})
+ Qt::Core Qt::Gui Qt::Widgets)
add_dependencies(testbinding pyside6 QtCore QtGui QtWidgets pysidetest)
create_generator_target(testbinding)
PYSIDE_TEST(constructor_properties_test.py)
+PYSIDE_TEST(container_test.py)
PYSIDE_TEST(decoratedslot_test.py)
PYSIDE_TEST(delegatecreateseditor_test.py)
PYSIDE_TEST(all_modules_load_test.py)
@@ -142,17 +148,24 @@ PYSIDE_TEST(iterable_test.py)
PYSIDE_TEST(list_signal_test.py)
PYSIDE_TEST(mixin_signal_slots_test.py)
PYSIDE_TEST(modelview_test.py)
+PYSIDE_TEST(multiple_inheritance_test.py)
PYSIDE_TEST(new_inherited_functions_test.py)
PYSIDE_TEST(notify_id.py)
PYSIDE_TEST(properties_test.py)
PYSIDE_TEST(property_python_test.py)
+PYSIDE_TEST(snake_case_test.py)
+PYSIDE_TEST(true_property_test.py)
PYSIDE_TEST(qapp_like_a_macro_test.py)
PYSIDE_TEST(qvariant_test.py)
PYSIDE_TEST(repr_test.py)
+PYSIDE_TEST(shared_pointer_test.py)
PYSIDE_TEST(signal_tp_descr_get_test.py)
PYSIDE_TEST(signal_slot_warning.py)
PYSIDE_TEST(signalandnamespace_test.py)
PYSIDE_TEST(signalemissionfrompython_test.py)
+PYSIDE_TEST(signalinstance_equality_test.py)
PYSIDE_TEST(signalwithdefaultvalue_test.py)
PYSIDE_TEST(typedef_signal_test.py)
PYSIDE_TEST(version_test.py)
+PYSIDE_TEST(mock_as_slot_test.py)
+PYSIDE_TEST(pyenum_relax_options_test.py)
diff --git a/sources/pyside6/tests/pysidetest/all_modules_load_test.py b/sources/pyside6/tests/pysidetest/all_modules_load_test.py
index f8f2d4b79..454c2b14f 100644
--- a/sources/pyside6/tests/pysidetest/all_modules_load_test.py
+++ b/sources/pyside6/tests/pysidetest/all_modules_load_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/pysidetest/bug_1016.py b/sources/pyside6/tests/pysidetest/bug_1016.py
index db57302a2..219384e66 100644
--- a/sources/pyside6/tests/pysidetest/bug_1016.py
+++ b/sources/pyside6/tests/pysidetest/bug_1016.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/pysidetest/constructor_properties_test.py b/sources/pyside6/tests/pysidetest/constructor_properties_test.py
index e3e1d0f75..ec6e39821 100644
--- a/sources/pyside6/tests/pysidetest/constructor_properties_test.py
+++ b/sources/pyside6/tests/pysidetest/constructor_properties_test.py
@@ -1,41 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import os
import sys
@@ -51,20 +15,82 @@ from PySide6.QtCore import Qt
from PySide6.QtGui import QColor, QAction
from PySide6.QtWidgets import QApplication, QLabel, QFrame
+is_pypy = hasattr(sys, "pypy_version_info")
+if not is_pypy:
+ from PySide6.support import feature
-class ConstructorPropertiesTest(UsesQApplication):
+
+class ConstructorPropertiesTest(unittest.TestCase):
+
+ def setUp(self):
+ qApp or QApplication()
+ if not is_pypy:
+ feature.reset()
+
+ def tearDown(self):
+ if not is_pypy:
+ feature.reset()
+ qApp.shutdown()
# PYSIDE-1019: First property extension was support by the constructor.
def testCallConstructor(self):
label = QLabel(
- frameStyle=QFrame.Panel | QFrame.Sunken,
- text="first line\nsecond line",
- alignment=Qt.AlignBottom | Qt.AlignRight
+ frameStyle=QFrame.Panel | QFrame.Sunken, # QFrame attr, no property
+ lineWidth=2, # QFrame property
+ text="first line\nsecond line", # QLabel property
+ alignment=Qt.AlignBottom | Qt.AlignRight # QLabel property
)
+ self.assertEqual(label.lineWidth(), 2)
self.assertRaises(AttributeError, lambda: QLabel(
somethingelse=42,
- text="first line\nsecond line",
- alignment=Qt.AlignBottom | Qt.AlignRight
+ ))
+
+ # PYSIDE-1705: The same with snake_case
+ @unittest.skipIf(is_pypy, "feature switching is not yet possible in PyPy")
+ def testCallConstructor_snake(self):
+ from __feature__ import snake_case
+
+ label = QLabel(
+ frame_style=QFrame.Panel | QFrame.Sunken, # QFrame attr, no property
+ line_width=2, # QFrame property
+ text="first line\nsecond line", # QLabel property
+ alignment=Qt.AlignBottom | Qt.AlignRight # QLabel property
+ )
+ self.assertEqual(label.line_width(), 2)
+ self.assertRaises(AttributeError, lambda: QLabel(
+ lineWidth=2, # QFrame property
+ ))
+
+ # PYSIDE-1705: The same with true_property
+ @unittest.skipIf(is_pypy, "feature switching is not yet possible in PyPy")
+ def testCallConstructor_prop(self):
+ from __feature__ import true_property
+
+ label = QLabel(
+ frameStyle=QFrame.Panel | QFrame.Sunken, # QFrame attr, no property
+ lineWidth=2, # QFrame property
+ text="first line\nsecond line", # QLabel property
+ alignment=Qt.AlignBottom | Qt.AlignRight # QLabel property
+ )
+ self.assertEqual(label.lineWidth, 2)
+ self.assertRaises(AttributeError, lambda: QLabel(
+ line_width=2, # QFrame property
+ ))
+
+ # PYSIDE-1705: The same with snake_case and true_property
+ @unittest.skipIf(is_pypy, "feature switching is not yet possible in PyPy")
+ def testCallConstructor_prop_snake(self):
+ from __feature__ import snake_case, true_property
+
+ label = QLabel(
+ frame_style=QFrame.Panel | QFrame.Sunken, # QFrame attr, no property
+ line_width=2, # QFrame property
+ text="first line\nsecond line", # QLabel property
+ alignment=Qt.AlignBottom | Qt.AlignRight # QLabel property
+ )
+ self.assertEqual(label.line_width, 2)
+ self.assertRaises(AttributeError, lambda: QLabel(
+ lineWidth=2, # QFrame property
))
diff --git a/sources/pyside6/tests/pysidetest/container_test.py b/sources/pyside6/tests/pysidetest/container_test.py
index 14feb4465..c83e1f26c 100644
--- a/sources/pyside6/tests/pysidetest/container_test.py
+++ b/sources/pyside6/tests/pysidetest/container_test.py
@@ -1,32 +1,5 @@
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -45,6 +18,9 @@ EXPECTED_DICT = {1: ["v1"], 2: ["v2_1", "v2_2"],
4: ["v4_1", "v4_2"]}
+EXPECTED_LIST = [1, 2]
+
+
def sort_values(m):
"""Sort value lists in dicts since passing through a QMultiMap changes the order"""
result = {}
@@ -67,7 +43,21 @@ class ContainerTestTest(unittest.TestCase):
m2 = ContainerTest.passThroughMultiHash(m1)
self.assertEqual(sort_values(m2), EXPECTED_DICT)
+ def testList(self):
+ l1 = ContainerTest.createList()
+ self.assertEqual(l1, EXPECTED_LIST)
+ l2 = ContainerTest.passThroughList(l1)
+ self.assertEqual(l2, EXPECTED_LIST)
+
+ def testSet(self):
+ s1 = ContainerTest.createSet() # Order is not predictable
+ s2 = ContainerTest.passThroughSet(s1)
+ self.assertEqual(sorted(list(s1)), sorted(list(s2)))
+
+ # Since lists are iterable, it should be possible to pass them to set API
+ l2 = ContainerTest.passThroughSet(EXPECTED_LIST)
+ self.assertEqual(sorted(list(l2)), EXPECTED_LIST)
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/pyside6/tests/pysidetest/containertest.cpp b/sources/pyside6/tests/pysidetest/containertest.cpp
index ccb90b12f..da8729af3 100644
--- a/sources/pyside6/tests/pysidetest/containertest.cpp
+++ b/sources/pyside6/tests/pysidetest/containertest.cpp
@@ -1,42 +1,19 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "containertest.h"
+using namespace Qt::StringLiterals;
+
ContainerTest::ContainerTest() = default;
QMultiMap<int, QString> ContainerTest::createMultiMap()
{
static const QMultiMap<int, QString>
- result{{1, u"v1"_qs},
- {2, u"v2_1"_qs}, {2, u"v2_2"_qs},
- {3, u"v3"_qs},
- {4, u"v4_1"_qs}, {4, u"v4_2"_qs}};
+ result{{1, u"v1"_s},
+ {2, u"v2_1"_s}, {2, u"v2_2"_s},
+ {3, u"v3"_s},
+ {4, u"v4_1"_s}, {4, u"v4_2"_s}};
return result;
}
@@ -48,10 +25,10 @@ QMultiMap<int, QString> ContainerTest::passThroughMultiMap(const QMultiMap<int,
QMultiHash<int, QString> ContainerTest::createMultiHash()
{
static const QMultiHash<int, QString>
- result{{1, u"v1"_qs},
- {2, u"v2_1"_qs}, {2, u"v2_2"_qs},
- {3, u"v3"_qs},
- {4, u"v4_1"_qs}, {4, u"v4_2"_qs}};
+ result{{1, u"v1"_s},
+ {2, u"v2_1"_s}, {2, u"v2_2"_s},
+ {3, u"v3"_s},
+ {4, u"v4_1"_s}, {4, u"v4_2"_s}};
return result;
}
@@ -60,3 +37,23 @@ QMultiHash<int, QString> ContainerTest::passThroughMultiHash(const QMultiHash<in
{
return in;
}
+
+QList<int> ContainerTest::createList()
+{
+ return {1, 2};
+}
+
+QList<int> ContainerTest::passThroughList(const QList<int> &list)
+{
+ return list;
+}
+
+QSet<int> ContainerTest::createSet()
+{
+ return {1, 2};
+}
+
+QSet<int> ContainerTest::passThroughSet(const QSet<int> &set)
+{
+ return set;
+}
diff --git a/sources/pyside6/tests/pysidetest/containertest.h b/sources/pyside6/tests/pysidetest/containertest.h
index 3405b6722..068fb3c19 100644
--- a/sources/pyside6/tests/pysidetest/containertest.h
+++ b/sources/pyside6/tests/pysidetest/containertest.h
@@ -1,39 +1,16 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#pragma once
#include "pysidetest_macros.h"
#include <QtCore/QObject>
+#include <QtCore/QList>
#include <QtCore/QMap>
#include <QtCore/QMultiMap>
#include <QtCore/QMultiHash>
+#include <QtCore/QSet>
#include <QtCore/QString>
class PYSIDETEST_API ContainerTest
@@ -48,4 +25,10 @@ public:
static QMultiHash<int, QString> createMultiHash();
static QMultiHash<int, QString> passThroughMultiHash(const QMultiHash<int, QString> &in);
+
+ static QList<int> createList();
+ static QList<int> passThroughList(const QList<int> &list);
+
+ static QSet<int> createSet();
+ static QSet<int> passThroughSet(const QSet<int> &set);
};
diff --git a/sources/pyside6/tests/pysidetest/decoratedslot_test.py b/sources/pyside6/tests/pysidetest/decoratedslot_test.py
index 6db8cafc3..3ec9ac9e3 100644
--- a/sources/pyside6/tests/pysidetest/decoratedslot_test.py
+++ b/sources/pyside6/tests/pysidetest/decoratedslot_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/pysidetest/delegatecreateseditor_test.py b/sources/pyside6/tests/pysidetest/delegatecreateseditor_test.py
index 9d1c5bf2b..8964ec1ed 100644
--- a/sources/pyside6/tests/pysidetest/delegatecreateseditor_test.py
+++ b/sources/pyside6/tests/pysidetest/delegatecreateseditor_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/pysidetest/enum_test.py b/sources/pyside6/tests/pysidetest/enum_test.py
index 61febb299..832834530 100644
--- a/sources/pyside6/tests/pysidetest/enum_test.py
+++ b/sources/pyside6/tests/pysidetest/enum_test.py
@@ -1,32 +1,5 @@
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -37,8 +10,11 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(True)
+from PySide6.QtCore import Qt
from testbinding import Enum1, TestObjectWithoutNamespace
+import dis
+
class ListConnectionTest(unittest.TestCase):
@@ -48,6 +24,162 @@ class ListConnectionTest(unittest.TestCase):
self.assertEqual(TestObjectWithoutNamespace.Enum2.Option3, 3)
self.assertEqual(TestObjectWithoutNamespace.Enum2.Option4, 4)
+ def testFlagComparisonOperators(self): # PYSIDE-1696, compare to self
+ f1 = Qt.AlignHCenter | Qt.AlignBottom
+ f2 = Qt.AlignHCenter | Qt.AlignBottom
+ self.assertTrue(f1 == f1)
+ self.assertTrue(f1 <= f1)
+ self.assertTrue(f1 >= f1)
+ self.assertFalse(f1 != f1)
+ self.assertFalse(f1 < f1)
+ self.assertFalse(f1 > f1)
+
+ self.assertTrue(f1 == f2)
+ self.assertTrue(f1 <= f2)
+ self.assertTrue(f1 >= f2)
+ self.assertFalse(f1 != f2)
+ self.assertFalse(f1 < f2)
+ self.assertFalse(f1 > f2)
+
+ self.assertTrue(Qt.AlignHCenter < Qt.AlignBottom)
+ self.assertFalse(Qt.AlignHCenter > Qt.AlignBottom)
+ self.assertFalse(Qt.AlignBottom < Qt.AlignHCenter)
+ self.assertTrue(Qt.AlignBottom > Qt.AlignHCenter)
+
+
+# PYSIDE-1735: We are testing that opcodes do what they are supposed to do.
+# This is needed in the PyEnum forgiveness mode where we need
+# to introspect the code if an Enum was called with no args.
+class InvestigateOpcodesTest(unittest.TestCase):
+
+ def probe_function1(self):
+ x = Qt.Alignment
+
+ def probe_function2(self):
+ x = Qt.Alignment()
+
+ @staticmethod
+ def read_code(func, **kw):
+ return list(instr[:3] for instr in dis.Bytecode(func, **kw))
+
+ @staticmethod
+ def get_sizes(func, **kw):
+ ops = list((instr.opname, instr.offset) for instr in dis.Bytecode(func, **kw))
+ res = []
+ for idx in range(1, len(ops)):
+ res.append((ops[idx - 1][0], ops[idx][1] - ops[idx - 1][1]))
+ return sorted(res, key=lambda x: (x[1], x[0]))
+
+ _sin = sys.implementation.name
+
+ @unittest.skipIf(hasattr(sys.flags, "nogil"), f"{_sin} has different opcodes")
+ def testByteCode(self):
+ import dis
+ # opname, opcode, arg
+ result_1 = [('LOAD_GLOBAL', 116, 0),
+ ('LOAD_ATTR', 106, 1),
+ ('STORE_FAST', 125, 1),
+ ('LOAD_CONST', 100, 0),
+ ('RETURN_VALUE', 83, None)]
+
+ result_2 = [('LOAD_GLOBAL', 116, 0),
+ ('LOAD_METHOD', 160, 1),
+ ('CALL_METHOD', 161, 0),
+ ('STORE_FAST', 125, 1),
+ ('LOAD_CONST', 100, 0),
+ ('RETURN_VALUE', 83, None)]
+
+ if sys.version_info[:2] <= (3, 6):
+
+ result_2 = [('LOAD_GLOBAL', 116, 0),
+ ('LOAD_ATTR', 106, 1),
+ ('CALL_FUNCTION', 131, 0),
+ ('STORE_FAST', 125, 1),
+ ('LOAD_CONST', 100, 0),
+ ('RETURN_VALUE', 83, None)]
+
+ if sys.version_info[:2] == (3, 11):
+ # Note: Python 3.11 is a bit more complex because it can optimize itself.
+ # Opcodes are a bit different, and a hidden second code object is used.
+ # We investigate this a bit, because we want to be warned when things change.
+ QUICKENING_WARMUP_DELAY = 8
+
+ result_1 = [('RESUME', 151, 0),
+ ('LOAD_GLOBAL', 116, 0),
+ ('LOAD_ATTR', 106, 1),
+ ('STORE_FAST', 125, 1),
+ ('LOAD_CONST', 100, 0),
+ ('RETURN_VALUE', 83, None)]
+
+ result_2 = [('RESUME', 151, 0),
+ ('LOAD_GLOBAL', 116, 1),
+ ('LOAD_ATTR', 106, 1),
+ ('PRECALL', 166, 0),
+ ('CALL', 171, 0),
+ ('STORE_FAST', 125, 1),
+ ('LOAD_CONST', 100, 0),
+ ('RETURN_VALUE', 83, None)]
+
+ sizes_2 = [('LOAD_CONST', 2),
+ ('RESUME', 2),
+ ('STORE_FAST', 2),
+ ('PRECALL', 4),
+ ('CALL', 10),
+ ('LOAD_ATTR', 10),
+ ('LOAD_GLOBAL', 12)]
+
+ self.assertEqual(self.read_code(self.probe_function2, adaptive=True), result_2)
+ self.assertEqual(self.get_sizes(self.probe_function2, adaptive=True), sizes_2)
+
+ @staticmethod
+ def code_quicken(f, times):
+ # running the code triggers acceleration after some runs.
+ for _ in range(times):
+ f()
+
+ code_quicken(self.probe_function2, QUICKENING_WARMUP_DELAY - 1)
+ self.assertEqual(self.read_code(self.probe_function2, adaptive=True), result_2)
+ self.assertEqual(self.get_sizes(self.probe_function2, adaptive=True), sizes_2)
+
+ result_3 = [('RESUME_QUICK', 150, 0),
+ ('LOAD_GLOBAL_MODULE', 55, 1),
+ ('LOAD_ATTR_ADAPTIVE', 39, 1),
+ ('PRECALL_ADAPTIVE', 64, 0),
+ ('CALL_ADAPTIVE', 22, 0),
+ ('STORE_FAST', 125, 1),
+ ('LOAD_CONST', 100, 0),
+ ('RETURN_VALUE', 83, None)]
+
+ sizes_3 = [('LOAD_CONST', 2),
+ ('RESUME_QUICK', 2),
+ ('STORE_FAST', 2),
+ ('PRECALL_ADAPTIVE', 4),
+ ('CALL_ADAPTIVE', 10),
+ ('LOAD_ATTR_ADAPTIVE', 10),
+ ('LOAD_GLOBAL_MODULE', 12)]
+
+ code_quicken(self.probe_function2, 1)
+ self.assertEqual(self.read_code(self.probe_function2, adaptive=True), result_3)
+ self.assertEqual(self.get_sizes(self.probe_function2, adaptive=True), sizes_3)
+
+ if sys.version_info[:2] >= (3, 12):
+
+ result_1 = [('RESUME', 151, 0),
+ ('LOAD_GLOBAL', 116, 0),
+ ('LOAD_ATTR', 106, 2),
+ ('STORE_FAST', 125, 1),
+ ('RETURN_CONST', 121, 0)]
+
+ result_2 = [('RESUME', 151, 0),
+ ('LOAD_GLOBAL', 116, 1),
+ ('LOAD_ATTR', 106, 2),
+ ('CALL', 171, 0),
+ ('STORE_FAST', 125, 1),
+ ('RETURN_CONST', 121, 0)]
+
+ self.assertEqual(self.read_code(self.probe_function1), result_1)
+ self.assertEqual(self.read_code(self.probe_function2), result_2)
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/pyside6/tests/pysidetest/flagstest.cpp b/sources/pyside6/tests/pysidetest/flagstest.cpp
index 2bd0c454e..ac6c3b3b1 100644
--- a/sources/pyside6/tests/pysidetest/flagstest.cpp
+++ b/sources/pyside6/tests/pysidetest/flagstest.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "flagstest.h"
diff --git a/sources/pyside6/tests/pysidetest/flagstest.h b/sources/pyside6/tests/pysidetest/flagstest.h
index 7f070361c..b5c73c9bd 100644
--- a/sources/pyside6/tests/pysidetest/flagstest.h
+++ b/sources/pyside6/tests/pysidetest/flagstest.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#pragma once
@@ -48,8 +23,10 @@ class PYSIDETEST_API ClassForEnum : public QObject
{
Q_OBJECT
public:
+ Q_DISABLE_COPY_MOVE(ClassForEnum)
+
ClassForEnum(FlagsNamespace::Options opt = FlagsNamespace::Option::NoOptions);
- virtual ~ClassForEnum();
+ virtual ~ClassForEnum() override;
};
} // namespace FlagsNamespace
diff --git a/sources/pyside6/tests/pysidetest/hiddenobject.cpp b/sources/pyside6/tests/pysidetest/hiddenobject.cpp
index 70692a8ec..d4feabb66 100644
--- a/sources/pyside6/tests/pysidetest/hiddenobject.cpp
+++ b/sources/pyside6/tests/pysidetest/hiddenobject.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "hiddenobject.h"
@@ -33,7 +8,7 @@ void HiddenObject::callMe()
m_called = true;
}
-bool HiddenObject::wasCalled()
+bool HiddenObject::wasCalled() const
{
return m_called;
}
diff --git a/sources/pyside6/tests/pysidetest/hiddenobject.h b/sources/pyside6/tests/pysidetest/hiddenobject.h
index 97a2864c5..f399be985 100644
--- a/sources/pyside6/tests/pysidetest/hiddenobject.h
+++ b/sources/pyside6/tests/pysidetest/hiddenobject.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef HIDDENOBJECT_H
#define HIDDENOBJECT_H
@@ -38,12 +13,12 @@ class HiddenObject : public QObject
{
Q_OBJECT
public:
- HiddenObject() : m_called(false) {}
+ HiddenObject() noexcept = default;
Q_INVOKABLE void callMe();
public Q_SLOTS:
- bool wasCalled();
+ bool wasCalled() const;
private:
- bool m_called;
+ bool m_called = false;
};
// Return a instance of HiddenObject
diff --git a/sources/pyside6/tests/pysidetest/homonymoussignalandmethod_test.py b/sources/pyside6/tests/pysidetest/homonymoussignalandmethod_test.py
index b29d37fc2..b58232a1b 100644
--- a/sources/pyside6/tests/pysidetest/homonymoussignalandmethod_test.py
+++ b/sources/pyside6/tests/pysidetest/homonymoussignalandmethod_test.py
@@ -1,33 +1,8 @@
#!/usr/bin/python
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
+import gc
import os
import sys
import unittest
@@ -38,6 +13,7 @@ from init_paths import init_test_paths
init_test_paths(True)
from testbinding import TestObject
+from PySide6.QtCore import QObject, Signal, SignalInstance
'''Tests the behaviour of homonymous signals and slots.'''
@@ -53,6 +29,8 @@ class HomonymousSignalAndMethodTest(unittest.TestCase):
del self.value
del self.called
del self.obj
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
def testIdValueSignalEmission(self):
def callback(idValue):
@@ -86,6 +64,46 @@ class HomonymousSignalAndMethodTest(unittest.TestCase):
self.assertEqual(self.obj.staticMethodDouble(4), 8)
+# PYSIDE-1730: Homonymous Methods with multiple inheritance
+
+class Q(QObject):
+ signal = Signal()
+
+ def method(self):
+ msg = 'Q::method'
+ print(msg)
+ return msg
+
+
+class M:
+
+ def signal(self):
+ msg = 'M::signal'
+ print(msg)
+ return msg
+
+ def method(self):
+ msg = 'M::method'
+ print(msg)
+ return msg
+
+
+class C(M, Q):
+
+ def __init__(self):
+ Q.__init__(self)
+ M.__init__(self)
+
+
+class HomonymousMultipleInheritanceTest(unittest.TestCase):
+
+ def testHomonymousMultipleInheritance(self):
+ c = C()
+ self.assertEqual(c.method(), "M::method") # okay
+ self.assertEqual(c.signal(), "M::signal") # problem on PySide6 6.2.2
+ self.assertEqual(type(c.signal), SignalInstance)
+
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/pyside6/tests/pysidetest/iterable_test.py b/sources/pyside6/tests/pysidetest/iterable_test.py
index d2bf8c9f2..bdb2ae7be 100644
--- a/sources/pyside6/tests/pysidetest/iterable_test.py
+++ b/sources/pyside6/tests/pysidetest/iterable_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
"""
iterable_test.py
diff --git a/sources/pyside6/tests/pysidetest/list_signal_test.py b/sources/pyside6/tests/pysidetest/list_signal_test.py
index 93b8514d7..da4bc298d 100644
--- a/sources/pyside6/tests/pysidetest/list_signal_test.py
+++ b/sources/pyside6/tests/pysidetest/list_signal_test.py
@@ -1,32 +1,5 @@
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/pysidetest/mixin_signal_slots_test.py b/sources/pyside6/tests/pysidetest/mixin_signal_slots_test.py
index 19b9a583e..1d536c0ae 100644
--- a/sources/pyside6/tests/pysidetest/mixin_signal_slots_test.py
+++ b/sources/pyside6/tests/pysidetest/mixin_signal_slots_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
''' PYSIDE-315: https://bugreports.qt.io/browse/PYSIDE-315
Test that all signals and slots of a class (including any mixin classes)
diff --git a/sources/pyside6/tests/pysidetest/mock_as_slot_test.py b/sources/pyside6/tests/pysidetest/mock_as_slot_test.py
new file mode 100644
index 000000000..39f52adea
--- /dev/null
+++ b/sources/pyside6/tests/pysidetest/mock_as_slot_test.py
@@ -0,0 +1,33 @@
+#!/usr/bin/python
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+""" PYSIDE-1755: https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-1755
+ Tests that a unittest.mock.MagicMock() can be used as a slot for quick
+ prototyping. """
+
+import os
+import sys
+import unittest
+from unittest.mock import MagicMock
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from PySide6.QtCore import QObject
+
+
+class MockAsSlot(unittest.TestCase):
+ def testMockAsSlot(self):
+ obj = QObject()
+ mock = MagicMock()
+ obj.objectNameChanged.connect(mock)
+
+ obj.objectNameChanged.emit("test")
+ mock.assert_called_once()
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/sources/pyside6/tests/pysidetest/modelview_test.py b/sources/pyside6/tests/pysidetest/modelview_test.py
index 3329b5875..53231aebe 100644
--- a/sources/pyside6/tests/pysidetest/modelview_test.py
+++ b/sources/pyside6/tests/pysidetest/modelview_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/pysidetest/multiple_inheritance_test.py b/sources/pyside6/tests/pysidetest/multiple_inheritance_test.py
new file mode 100644
index 000000000..49550ba55
--- /dev/null
+++ b/sources/pyside6/tests/pysidetest/multiple_inheritance_test.py
@@ -0,0 +1,189 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from helper.usesqapplication import UsesQApplication
+from PySide6 import QtCore, QtGui, QtWidgets
+from PySide6.QtWidgets import QMainWindow, QLabel, QWidget
+
+
+def xprint(*args, **kw):
+ if "-v" in sys.argv:
+ print(*args, **kw)
+
+
+# This is the original testcase of PYSIDE-1564
+class Age(object):
+ def __init__(self, age=0, **kwds):
+ super().__init__(**kwds)
+
+ self.age = age
+
+
+class Person(QtCore.QObject, Age):
+ def __init__(self, name, **kwds):
+ super().__init__(**kwds)
+
+ self.name = name
+
+
+class OriginalMultipleInheritanceTest(unittest.TestCase):
+
+ def testIt(self):
+ xprint()
+ p = Person("Joe", age=38)
+ xprint(f"p.age = {p.age}")
+ # This would crash if MI does not work.
+
+# More tests follow:
+
+
+# mro ('C', 'A', 'QObject', 'Object', 'B', 'object')
+class A(QtCore.QObject):
+ def __init__(self, anna=77, **kw):
+ xprint(f'A: before init kw = {kw}')
+ super().__init__(**kw)
+ xprint('A: after init')
+
+
+class B:
+ def __init__(self, otto=6, age=7, **kw):
+ xprint(f'B: before init kw = {kw}')
+ if "killme" in kw:
+ raise AssertionError("asdf")
+ super().__init__(**kw)
+ self.age = age
+ xprint('B: after init')
+
+
+class C(A, B):
+ def __init__(self, **kw):
+ xprint(f'C: before init kw = {kw}')
+ super().__init__(**kw)
+ xprint('C: after init')
+
+
+# mro ('F', 'D', 'QCursor', 'E', 'QLabel', 'QFrame', 'QWidget', 'QObject',
+# 'QPaintDevice', 'Object', 'object')
+class D(QtGui.QCursor):
+ def __init__(self, anna=77, **kw):
+ xprint(f'D: before init kw = {kw}')
+ super().__init__(**kw)
+ xprint('D: after init')
+
+
+class E:
+ def __init__(self, age=7, **kw):
+ xprint(f'E: before init kw = {kw}')
+ super().__init__(**kw)
+ self.age = age
+ xprint('E: after init')
+
+
+class F(D, E, QtWidgets.QLabel):
+ def __init__(self, **kw):
+ xprint(f'F: before init kw = {kw}')
+ super().__init__(**kw)
+ xprint('F: after init')
+
+
+# mro ('I', 'G', 'QTextDocument', 'H', 'QLabel', 'QFrame', 'QWidget', 'QObject',
+# 'QPaintDevice', 'Object', 'object')
+# Similar, but this time we want to reach `H` without support from `super`.
+class G(QtGui.QTextDocument):
+ pass
+
+
+class H:
+ def __init__(self, age=7, **kw):
+ xprint(f'H: before init kw = {kw}')
+ super().__init__(**kw)
+ self.age = age
+ xprint('H: after init')
+
+
+class II(G, H, QtWidgets.QLabel):
+ pass
+
+
+# PYSIDE-2294: Friedemann's test adapted.
+# We need to ignore positional args in mixin classes.
+class Ui_X_MainWindow(object): # Emulating uic
+ def setupUi(self, MainWindow):
+ MainWindow.resize(400, 300)
+ self.lbl = QLabel(self)
+
+
+class MainWindow(QMainWindow, Ui_X_MainWindow):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.setupUi(self)
+
+
+class AdditionalMultipleInheritanceTest(UsesQApplication):
+
+ def testABC(self):
+ xprint()
+ res = C(otto=3, anna=5)
+ self.assertEqual(res.age, 7)
+ xprint()
+ with self.assertRaises(AssertionError):
+ res = C(killme=42)
+ xprint()
+
+ def testDEF(self):
+ xprint()
+ res = F(anna=5)
+ self.assertEqual(res.age, 7)
+ xprint()
+
+ def testGHI(self):
+ xprint()
+ res = II(age=7)
+ self.assertEqual(res.age, 7)
+ xprint()
+
+ def testParentDoesNotCrash(self):
+ # This crashed with
+ # TypeError: object.__init__() takes exactly one argument (the instance to initialize)
+ MainWindow()
+
+
+# PYSIDE-2654: Additional missing init test.
+# This must work if no __init__ is defined (Ui_Form)
+class Ui_Form(object):
+ pass
+
+
+class Mixin:
+ def __init__(self, **kwargs) -> None:
+ super().__init__(**kwargs)
+
+
+class Card(Mixin, QWidget):
+ def __init__(self, parent=None) -> None:
+ super().__init__(parent=parent)
+
+
+class Demo(Card, Ui_Form):
+ def __init__(self) -> None:
+ super().__init__()
+
+
+class MissingInitFunctionTest(UsesQApplication):
+ def testMissing(self):
+ Demo()
+ # Tests if this works. Would crash without the extra
+ # check for object.__init__
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/sources/pyside6/tests/pysidetest/new_inherited_functions_test.py b/sources/pyside6/tests/pysidetest/new_inherited_functions_test.py
index 95bf0615f..924a2eea7 100644
--- a/sources/pyside6/tests/pysidetest/new_inherited_functions_test.py
+++ b/sources/pyside6/tests/pysidetest/new_inherited_functions_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -36,6 +11,7 @@ from init_paths import init_test_paths
init_test_paths(False)
from PySide6 import *
+from PySide6.support.signature import get_signature
for modname, mod in sys.modules.items():
# Python 2 leaves "None" in the dict.
if modname.startswith("PySide6.") and mod is not None:
@@ -125,7 +101,7 @@ class MainTest(unittest.TestCase):
qint64 = 42
tfarg = os.path.join(PySide6.QtCore.QDir.tempPath(), "XXXXXX.tmp")
findStr = 'bla'
- orientation = PySide6.QtCore.Qt.Orientation()
+ orientation = PySide6.QtCore.Qt.Orientations()
openMode = PySide6.QtCore.QIODevice.OpenMode(PySide6.QtCore.QIODevice.ReadOnly)
qModelIndex = PySide6.QtCore.QModelIndex()
transformationMode = PySide6.QtCore.Qt.TransformationMode()
@@ -175,7 +151,7 @@ class MainTest(unittest.TestCase):
except AttributeError:
unittest.TestCase().skipTest("this test makes only sense if QtWidgets is available.")
- sigs = PySide6.QtWidgets.QApplication.palette.__signature__
+ sigs = get_signature(PySide6.QtWidgets.QApplication.palette)
self.assertEqual(len(sigs), 3)
diff --git a/sources/pyside6/tests/pysidetest/notify_id.py b/sources/pyside6/tests/pysidetest/notify_id.py
index f11eacdda..0c4f39f66 100644
--- a/sources/pyside6/tests/pysidetest/notify_id.py
+++ b/sources/pyside6/tests/pysidetest/notify_id.py
@@ -1,31 +1,7 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+import gc
import os
import sys
import unittest
@@ -71,6 +47,8 @@ class NotifyIdSignal(unittest.TestCase):
def tearDown(self):
del self.obj
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
def testSignalEmission(self):
metaObject = self.obj.metaObject()
diff --git a/sources/pyside6/tests/pysidetest/properties_test.py b/sources/pyside6/tests/pysidetest/properties_test.py
index abd0b90b6..8eb7812d1 100644
--- a/sources/pyside6/tests/pysidetest/properties_test.py
+++ b/sources/pyside6/tests/pysidetest/properties_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/pysidetest/property_python_test.py b/sources/pyside6/tests/pysidetest/property_python_test.py
index baf4cdb01..1209aad4f 100644
--- a/sources/pyside6/tests/pysidetest/property_python_test.py
+++ b/sources/pyside6/tests/pysidetest/property_python_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
"""
Test for PySide's Property
@@ -39,6 +14,7 @@ This test is to ensure maximum compatibility.
# Test case for property
# more tests are in test_descr
+import gc
import os
import sys
import unittest
@@ -95,6 +71,8 @@ class BaseClass(QObject):
@spam.deleter
def spam(self):
del self._spam
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
class SubClass(BaseClass):
diff --git a/sources/pyside6/tests/pysidetest/pyenum_relax_options_test.py b/sources/pyside6/tests/pysidetest/pyenum_relax_options_test.py
new file mode 100644
index 000000000..625f9cdc5
--- /dev/null
+++ b/sources/pyside6/tests/pysidetest/pyenum_relax_options_test.py
@@ -0,0 +1,136 @@
+#!/usr/bin/python
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+"""
+PYSIDE-1735: Testing different relax options for Enums
+
+This test uses different configurations and initializes QtCore with it.
+Because re-initialization is not possible, the test uses a subprocess
+for it. This makes the test pretty slow.
+
+Maybe we should implement a way to re-initialize QtCore enums without
+using subprocess, just to speed this up??
+"""
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+import subprocess
+import tempfile
+from textwrap import dedent
+
+
+def runtest(program):
+ passed_path = os.fspath(Path(__file__).resolve().parents[1])
+ with tempfile.NamedTemporaryFile(mode="w+", delete=False, suffix=".py") as fp:
+ preamble = dedent(f"""
+ import os
+ import sys
+ from pathlib import Path
+ sys.path.append({passed_path!r})
+ from init_paths import init_test_paths
+ init_test_paths(False)
+ """)
+ print(preamble, program, file=fp)
+ fp.close()
+ try:
+ subprocess.run([sys.executable, fp.name], check=True, capture_output=True)
+ return True
+ except subprocess.CalledProcessError as e:
+ print(f"\ninfo: {e.__class__.__name__}: {e.stderr}")
+ return False
+ finally:
+ os.unlink(fp.name)
+
+
+def testprog2(option):
+ return runtest(dedent(f"""
+ sys.pyside6_option_python_enum = {option}
+ from PySide6 import QtCore
+ from enum import IntEnum
+ assert(issubclass(QtCore.Qt.DateFormat, IntEnum))
+ """))
+
+
+def testprog4(option):
+ return runtest(dedent(f"""
+ sys.pyside6_option_python_enum = {option}
+ from PySide6 import QtCore
+ QtCore.QtDebugMsg
+ """))
+
+
+def testprog8_16(option):
+ # this test needs flag 16, or the effect would be hidden by forgiving mode
+ return runtest(dedent(f"""
+ sys.pyside6_option_python_enum = {option}
+ from PySide6 import QtCore
+ QtCore.Qt.AlignTop
+ """))
+
+
+def testprog32(option):
+ return runtest(dedent(f"""
+ sys.pyside6_option_python_enum = {option}
+ from PySide6 import QtCore
+ QtCore.Qt.Alignment
+ """))
+
+
+def testprog64(option):
+ return runtest(dedent(f"""
+ sys.pyside6_option_python_enum = {option}
+ from PySide6 import QtCore
+ QtCore.Qt.AlignmentFlag()
+ """))
+
+
+def testprog128(option):
+ return runtest(dedent(f"""
+ sys.pyside6_option_python_enum = {option}
+ from PySide6 import QtCore
+ QtCore.Qt.Key(1234567)
+ """))
+
+
+class TestPyEnumRelaxOption(unittest.TestCase):
+ """
+ This test is a bit involved, because we cannot unload QtCore after it is loaded once.
+ We use subprocess to test different cases, anyway.
+ """
+
+ def test_enumIsIntEnum(self):
+ self.assertTrue(testprog2(2))
+ self.assertFalse(testprog2(4))
+
+ def test_globalDefault(self):
+ self.assertTrue(testprog4(4))
+ self.assertFalse(testprog4(1))
+ self.assertTrue(testprog4(12))
+
+ def test_localDefault(self):
+ self.assertTrue(testprog8_16(8 + 16))
+ self.assertFalse(testprog8_16(0 + 16))
+
+ def test_fakeRenames(self):
+ self.assertTrue(testprog32(1))
+ self.assertFalse(testprog32(32))
+
+ def test_zeroDefault(self):
+ self.assertTrue(testprog64(1))
+ self.assertFalse(testprog64(64))
+
+ def test_Missing(self):
+ self.assertTrue(testprog128(1))
+ self.assertFalse(testprog128(128))
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/sources/pyside6/tests/pysidetest/pysidetest.pyproject b/sources/pyside6/tests/pysidetest/pysidetest.pyproject
new file mode 100644
index 000000000..032d31c6f
--- /dev/null
+++ b/sources/pyside6/tests/pysidetest/pysidetest.pyproject
@@ -0,0 +1,33 @@
+{
+ "files": ["all_modules_load_test.py",
+ "bug_1016.py",
+ "constructor_properties_test.py",
+ "container_test.py",
+ "decoratedslot_test.py",
+ "delegatecreateseditor_test.py",
+ "enum_test.py",
+ "homonymoussignalandmethod_test.py",
+ "iterable_test.py",
+ "list_signal_test.py",
+ "mixin_signal_slots_test.py",
+ "mock_as_slot_test.py",
+ "modelview_test.py",
+ "new_inherited_functions_test.py",
+ "notify_id.py",
+ "properties_test.py",
+ "property_python_test.py",
+ "pyenum_relax_options_test.py",
+ "qapp_like_a_macro_test.py",
+ "qvariant_test.py",
+ "repr_test.py",
+ "shared_pointer_test.py",
+ "signal_slot_warning.py",
+ "signal_tp_descr_get_test.py",
+ "signalandnamespace_test.py",
+ "signalemissionfrompython_test.py",
+ "signalinstance_equality_test.py",
+ "signalwithdefaultvalue_test.py",
+ "typedef_signal_test.py",
+ "version_test.py",
+ "typesystem_pysidetest.xml"]
+}
diff --git a/sources/pyside6/tests/pysidetest/pysidetest_global.h b/sources/pyside6/tests/pysidetest/pysidetest_global.h
index 61dee53d9..6f784dc58 100644
--- a/sources/pyside6/tests/pysidetest/pysidetest_global.h
+++ b/sources/pyside6/tests/pysidetest/pysidetest_global.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef PYSIDETEST_GLOBAL_H
#define PYSIDETEST_GLOBAL_H
@@ -35,5 +10,7 @@
#include "testview.h"
#include "flagstest.h"
#include "hiddenobject.h"
+#include "sharedpointertestbench.h"
+#include "testqvariantenum.h"
#endif // PYSIDETEST_GLOBAL_H
diff --git a/sources/pyside6/tests/pysidetest/pysidetest_macros.h b/sources/pyside6/tests/pysidetest/pysidetest_macros.h
index b561efbbc..29bd0dc39 100644
--- a/sources/pyside6/tests/pysidetest/pysidetest_macros.h
+++ b/sources/pyside6/tests/pysidetest/pysidetest_macros.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef PYSIDETEST_MACROS_H
#define PYSIDETEST_MACROS_H
diff --git a/sources/pyside6/tests/pysidetest/qapp_like_a_macro_test.py b/sources/pyside6/tests/pysidetest/qapp_like_a_macro_test.py
index c83d2a860..2a3f34014 100644
--- a/sources/pyside6/tests/pysidetest/qapp_like_a_macro_test.py
+++ b/sources/pyside6/tests/pysidetest/qapp_like_a_macro_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/pysidetest/qvariant_test.py b/sources/pyside6/tests/pysidetest/qvariant_test.py
index 637aa95cf..faefc8169 100644
--- a/sources/pyside6/tests/pysidetest/qvariant_test.py
+++ b/sources/pyside6/tests/pysidetest/qvariant_test.py
@@ -1,31 +1,7 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+import enum
import os
import sys
import unittest
@@ -35,20 +11,57 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(True)
-from testbinding import TestObject
-from PySide6.QtCore import Qt
-from PySide6.QtGui import QKeySequence
+from testbinding import TestObject, TestQVariantEnum
+from PySide6.QtCore import Qt, QKeyCombination
+from PySide6.QtGui import QKeySequence, QAction
from helper.usesqapplication import UsesQApplication
+class PyTestQVariantEnum(TestQVariantEnum):
+ def __init__(self, var_enum):
+ super().__init__(var_enum)
+
+ def getRValEnum(self):
+ return Qt.Orientation.Vertical
+
+ def channelingEnum(self, rval_enum):
+ return (isinstance(rval_enum, enum.Enum)
+ and rval_enum == Qt.Orientation.Vertical)
+
+
class QVariantTest(UsesQApplication):
def testQKeySequenceQVariantOperator(self):
# bug #775
- ks = QKeySequence(Qt.SHIFT, Qt.CTRL, Qt.Key_P, Qt.Key_R)
+ ks = QKeySequence(Qt.ShiftModifier, Qt.ControlModifier, Qt.Key_P, Qt.Key_R)
self.assertEqual(TestObject.checkType(ks), 4107)
+ def testQKeySequenceMoreVariations(self):
+ QAction().setShortcut(Qt.CTRL | Qt.Key_B)
+ QAction().setShortcut(Qt.CTRL | Qt.ALT | Qt.Key_B)
+ QAction().setShortcut(Qt.CTRL | Qt.AltModifier | Qt.Key_B)
+ QAction().setShortcut(QKeySequence(QKeyCombination(Qt.CTRL | Qt.Key_B)))
+ QKeySequence(Qt.CTRL | Qt.Key_Q)
+
+ def testEnum(self):
+ # Testing C++ class
+ testqvariant = TestQVariantEnum(Qt.CheckState.Checked)
+ self.assertEqual(testqvariant.getLValEnum(), Qt.CheckState.Checked)
+ self.assertIsInstance(testqvariant.getLValEnum(), enum.Enum)
+ # in the case where we return a QVariant of C++ enum, it returns a
+ # QVariant(int) to Python unless explicitly handled manually by Shiboken
+ self.assertEqual(testqvariant.getRValEnum(), 1)
+ self.assertEqual(testqvariant.isEnumChanneled(), False)
+
+ # Testing Python child class
+ pytestqvariant = PyTestQVariantEnum(Qt.CheckState.Checked)
+ self.assertEqual(pytestqvariant.isEnumChanneled(), True)
+ # check toInt() conversion works for PyObjectWrapper
+ self.assertEqual(PyTestQVariantEnum.getNumberFromQVarEnum(Qt.Orientation.Vertical), 2)
+ # check toInt() conversion for IntEnum
+ self.assertEqual(PyTestQVariantEnum.getNumberFromQVarEnum(Qt.GestureType.TapGesture), 1)
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/pyside6/tests/pysidetest/repr_test.py b/sources/pyside6/tests/pysidetest/repr_test.py
index dd9f08ea4..863f17657 100644
--- a/sources/pyside6/tests/pysidetest/repr_test.py
+++ b/sources/pyside6/tests/pysidetest/repr_test.py
@@ -1,44 +1,6 @@
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Copyright (C) 2019 Andreas Beckermann
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# Copyright (C) 2019 Andreas Beckermann
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import os
import sys
@@ -87,6 +49,15 @@ class QObjectDerivedReprTest(unittest.TestCase):
# __repr__ should use the operator<<(QDebug,...) implementation
self.assertEqual(str(t), "TestObject2WithNamespace(injected_repr)")
+ def testLatin1StringField(self):
+ self.assertEqual(TestObject.LATIN1_TEST_FIELD, "test")
+
+ def testLatin1Setter(self):
+ to = TestObject(123)
+ value = "test"
+ to.setQLatin1String(value)
+ self.assertEqual(to.qLatin1String(), value)
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/pyside6/tests/pysidetest/shared_pointer_test.py b/sources/pyside6/tests/pysidetest/shared_pointer_test.py
new file mode 100644
index 000000000..6f49d69b1
--- /dev/null
+++ b/sources/pyside6/tests/pysidetest/shared_pointer_test.py
@@ -0,0 +1,54 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import gc
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(True)
+
+from PySide6.QtCore import QObject
+
+from testbinding import SharedPointerTestbench, QSharedPointer_QObject
+
+
+def create_qobject(name):
+ result = QObject()
+ result.setObjectName(name)
+ return result
+
+
+class SharedPointerTests(unittest.TestCase):
+
+ def testObjSharedPointer(self):
+ p = SharedPointerTestbench.createSharedPointerQObject()
+ self.assertEqual(p.objectName(), "TestObject")
+ SharedPointerTestbench.printSharedPointerQObject(p)
+ p = SharedPointerTestbench.createSharedPointerConstQObject()
+ SharedPointerTestbench.printSharedPointerConstQObject(p)
+
+ def testIntSharedPointer(self):
+ p = SharedPointerTestbench.createSharedPointerInt(42)
+ SharedPointerTestbench.printSharedPointerInt(p)
+
+ def testConstruction(self):
+ name1 = "CreatedQObject1"
+ p1 = QSharedPointer_QObject(create_qobject(name1))
+ self.assertTrue(p1)
+ self.assertEqual(p1.objectName(), name1)
+
+ p1.reset()
+ self.assertFalse(p1)
+
+ name2 = "CreatedQObject2"
+ p1.reset(create_qobject(name2))
+ self.assertTrue(p1)
+ self.assertEqual(p1.objectName(), name2)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/pysidetest/sharedpointertestbench.cpp b/sources/pyside6/tests/pysidetest/sharedpointertestbench.cpp
new file mode 100644
index 000000000..44c2a4fe0
--- /dev/null
+++ b/sources/pyside6/tests/pysidetest/sharedpointertestbench.cpp
@@ -0,0 +1,46 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#include "sharedpointertestbench.h"
+
+#include <QtCore/QObject>
+#include <QtCore/QDebug>
+
+using namespace Qt::StringLiterals;
+
+SharedPointerTestbench::SharedPointerTestbench() = default;
+
+QSharedPointer<int> SharedPointerTestbench::createSharedPointerInt(int v)
+{
+ return QSharedPointer<int>(new int(v));
+}
+
+void SharedPointerTestbench::printSharedPointerInt(const QSharedPointer<int> &p)
+{
+ qDebug() << __FUNCTION__ << *p;
+}
+
+QSharedPointer<QObject> SharedPointerTestbench::createSharedPointerQObject()
+{
+ QSharedPointer<QObject> result(new QObject);
+ result->setObjectName(u"TestObject"_s);
+ return result;
+}
+
+void SharedPointerTestbench::printSharedPointerQObject(const QSharedPointer<QObject> &p)
+{
+ qDebug() << __FUNCTION__ << p.data();
+}
+
+QSharedPointer<const QObject> SharedPointerTestbench::createSharedPointerConstQObject()
+{
+ auto *o = new QObject;
+ o->setObjectName(u"ConstTestObject"_s);
+ QSharedPointer<const QObject> result(o);
+ return result;
+}
+
+void SharedPointerTestbench::printSharedPointerConstQObject(const QSharedPointer<const QObject> &p)
+{
+ qDebug() << __FUNCTION__ << p.data();
+}
diff --git a/sources/pyside6/tests/pysidetest/sharedpointertestbench.h b/sources/pyside6/tests/pysidetest/sharedpointertestbench.h
new file mode 100644
index 000000000..b23fd1b6c
--- /dev/null
+++ b/sources/pyside6/tests/pysidetest/sharedpointertestbench.h
@@ -0,0 +1,29 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef SHAREDPOINTERTESTBENCH_H
+#define SHAREDPOINTERTESTBENCH_H
+
+#include "pysidetest_macros.h"
+
+#include <QtCore/QSharedPointer>
+
+QT_FORWARD_DECLARE_CLASS(QObject)
+
+class PYSIDETEST_API SharedPointerTestbench
+{
+public:
+ SharedPointerTestbench();
+
+ static QSharedPointer<int> createSharedPointerInt(int v);
+ static void printSharedPointerInt(const QSharedPointer<int> &p);
+
+ static QSharedPointer<QObject> createSharedPointerQObject();
+ static void printSharedPointerQObject(const QSharedPointer<QObject> &p);
+
+ static QSharedPointer<const QObject> createSharedPointerConstQObject();
+ static void printSharedPointerConstQObject(const QSharedPointer<const QObject> &p);
+
+};
+
+#endif // SHAREDPOINTERTESTBENCH_H
diff --git a/sources/pyside6/tests/pysidetest/signal_slot_warning.py b/sources/pyside6/tests/pysidetest/signal_slot_warning.py
index 67dce8084..b94281643 100644
--- a/sources/pyside6/tests/pysidetest/signal_slot_warning.py
+++ b/sources/pyside6/tests/pysidetest/signal_slot_warning.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
''' PYSIDE-315: https://bugreports.qt.io/browse/PYSIDE-315
Test that creating a signal in the wrong order triggers a warning. '''
diff --git a/sources/pyside6/tests/pysidetest/signal_tp_descr_get_test.py b/sources/pyside6/tests/pysidetest/signal_tp_descr_get_test.py
index 4e7bc1c3f..6025d119d 100644
--- a/sources/pyside6/tests/pysidetest/signal_tp_descr_get_test.py
+++ b/sources/pyside6/tests/pysidetest/signal_tp_descr_get_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
"""
PYSIDE-68: Test that signals have a `__get__` function after all.
diff --git a/sources/pyside6/tests/pysidetest/signalandnamespace_test.py b/sources/pyside6/tests/pysidetest/signalandnamespace_test.py
index c84346928..3e91ca338 100644
--- a/sources/pyside6/tests/pysidetest/signalandnamespace_test.py
+++ b/sources/pyside6/tests/pysidetest/signalandnamespace_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/pysidetest/signalemissionfrompython_test.py b/sources/pyside6/tests/pysidetest/signalemissionfrompython_test.py
index 99c1a3e91..70c9e0082 100644
--- a/sources/pyside6/tests/pysidetest/signalemissionfrompython_test.py
+++ b/sources/pyside6/tests/pysidetest/signalemissionfrompython_test.py
@@ -1,33 +1,8 @@
#!/usr/bin/python
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
+import gc
import os
import sys
import unittest
@@ -56,6 +31,8 @@ class SignalEmissionFromPython(unittest.TestCase):
del self.obj2
del self.one_called
del self.two_called
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
def testConnectNewStyleEmitVoidSignal(self):
def callbackOne():
diff --git a/sources/pyside6/tests/pysidetest/signalinstance_equality_test.py b/sources/pyside6/tests/pysidetest/signalinstance_equality_test.py
new file mode 100644
index 000000000..5faaa38d4
--- /dev/null
+++ b/sources/pyside6/tests/pysidetest/signalinstance_equality_test.py
@@ -0,0 +1,85 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from helper.usesqapplication import UsesQApplication
+
+from PySide6.QtCore import QFile, QObject, QTimer, Signal, SignalInstance, Slot
+from PySide6.QtWidgets import QSlider
+
+
+class C(QObject):
+ custom_signal = Signal()
+
+
+class D(C):
+ pass
+
+
+class TestSignalInstance(unittest.TestCase):
+ def test_signal_instances_are_equal(self):
+ o = QTimer()
+ self.assertTrue(o.timeout == o.timeout)
+
+ def test_inherited_signal_instances_are_equal(self):
+ o = QFile()
+ self.assertTrue(o.readyRead == o.readyRead)
+
+ def test_custom_signal_instances_are_equal(self):
+ o = C()
+ self.assertTrue(o.custom_signal == o.custom_signal)
+
+ def test_custom_inherited_signal_instances_are_equal(self):
+ o = D()
+ self.assertTrue(o.custom_signal == o.custom_signal)
+
+ # additional tests of old errors from 2010 or so
+ def test_uninitialized_SignalInstance(self):
+ # This will no longer crash
+ print(SignalInstance())
+ with self.assertRaises(RuntimeError):
+ SignalInstance().connect(lambda: None)
+ with self.assertRaises(RuntimeError):
+ SignalInstance().disconnect()
+ with self.assertRaises(RuntimeError):
+ SignalInstance().emit()
+
+
+class MyWidget(QSlider):
+ valueChanged = Signal(tuple)
+
+ def __init__(self):
+ super().__init__()
+ self.valueChanged.connect(self._on_change)
+
+ def setValue(self, value):
+ self.valueChanged.emit(value)
+
+ @Slot()
+ def _on_change(self, new_value):
+ print("new_value:", new_value)
+ global result
+ result = new_value
+
+
+class TestRightOrder(UsesQApplication):
+ def test_rightOrder(self):
+ wdg = MyWidget()
+
+ # PYSIDE-1751: Fixes the wrong behavior we got on >=6.2
+ # PySide <=6.1.3 prints "new_value: (30, 40)"
+ # PySide >=6.2 prints "new_value: 0"
+ wdg.setValue((30, 40))
+ self.assertEqual(result, (30, 40))
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/pysidetest/signalwithdefaultvalue_test.py b/sources/pyside6/tests/pysidetest/signalwithdefaultvalue_test.py
index 458a87528..744b8c503 100644
--- a/sources/pyside6/tests/pysidetest/signalwithdefaultvalue_test.py
+++ b/sources/pyside6/tests/pysidetest/signalwithdefaultvalue_test.py
@@ -1,33 +1,8 @@
#!/usr/bin/python
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
+import gc
import os
import sys
import unittest
@@ -38,7 +13,7 @@ from init_paths import init_test_paths
init_test_paths(True)
from testbinding import TestObject
-from PySide6.QtCore import QObject, SIGNAL
+from PySide6.QtCore import Qt
'''Tests the behaviour of signals with default values.'''
@@ -54,6 +29,8 @@ class SignalWithDefaultValueTest(unittest.TestCase):
del self.obj
del self.void_called
del self.bool_called
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
def testConnectNewStyleEmitVoidSignal(self):
def callbackVoid():
@@ -79,6 +56,17 @@ class SignalWithDefaultValueTest(unittest.TestCase):
self.assertTrue(self.void_called)
self.assertTrue(self.bool_called)
+ def testFlagsSignal(self):
+ test_value = Qt.AlignmentFlag.AlignLeft | Qt.AlignmentFlag.AlignBottom
+
+ def callbackAlignmentFlags(alignment):
+ self.alignment_flags_called = alignment
+
+ self.obj.flagsSignal.connect(callbackAlignmentFlags)
+ self.obj.emitFlagsSignal(test_value)
+ self.assertTrue(self.alignment_flags_called)
+ self.assertEqual(self.alignment_flags_called, test_value)
+
def testConnectOldStyleEmitVoidSignal(self):
def callbackVoid():
self.void_called = True
@@ -106,4 +94,3 @@ class SignalWithDefaultValueTest(unittest.TestCase):
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/pyside6/tests/pysidetest/snake_case_sub.py b/sources/pyside6/tests/pysidetest/snake_case_sub.py
new file mode 100644
index 000000000..4a482c35a
--- /dev/null
+++ b/sources/pyside6/tests/pysidetest/snake_case_sub.py
@@ -0,0 +1,23 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+"""
+PYSIDE-2029: Tests that snake_case is isolated from imported modules
+"""
+
+from PySide6.QtWidgets import QWidget
+
+
+def test_no_snake_case():
+ print(__name__)
+ widget = QWidget()
+ check = widget.sizeHint
diff --git a/sources/pyside6/tests/pysidetest/snake_case_test.py b/sources/pyside6/tests/pysidetest/snake_case_test.py
new file mode 100644
index 000000000..14e035773
--- /dev/null
+++ b/sources/pyside6/tests/pysidetest/snake_case_test.py
@@ -0,0 +1,38 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+"""
+PYSIDE-2029: Tests that snake_case is isolated from imported modules
+"""
+is_pypy = hasattr(sys, "pypy_version_info")
+
+from PySide6.QtCore import QSize
+from PySide6.QtWidgets import QWidget, QSpinBox
+if not is_pypy:
+ from __feature__ import snake_case
+from helper.usesqapplication import UsesQApplication
+
+import snake_case_sub
+
+@unittest.skipIf(is_pypy, "__feature__ cannot yet be used with PyPy")
+class SnakeCaseNoPropagateTest(UsesQApplication):
+
+ def testSnakeCase(self):
+ # this worked
+ widget = QWidget()
+ check = widget.size_hint
+
+ snake_case_sub.test_no_snake_case()
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/pysidetest/testobject.cpp b/sources/pyside6/tests/pysidetest/testobject.cpp
index 43fa93bac..fe4ec98f7 100644
--- a/sources/pyside6/tests/pysidetest/testobject.cpp
+++ b/sources/pyside6/tests/pysidetest/testobject.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "testobject.h"
@@ -55,6 +30,26 @@ void TestObject::emitSignalWithTypedefValue(int value)
emit signalWithTypedefValue(TypedefValue(value));
}
+void TestObject::emitSignalWithContainerTypedefValue(const IntList &il)
+{
+ emit signalWithContainerTypedefValue(il);
+}
+
+void TestObject::emitFlagsSignal(Qt::Alignment alignment)
+{
+ emit flagsSignal(alignment);
+}
+
+void TestObject::setQLatin1String(QLatin1String v)
+{
+ m_qLatin1String = v;
+}
+
+QString TestObject::qLatin1String() const
+{
+ return m_qLatin1String;
+}
+
QDebug operator<<(QDebug dbg, TestObject& testObject)
{
QDebugStateSaver saver(dbg);
diff --git a/sources/pyside6/tests/pysidetest/testobject.h b/sources/pyside6/tests/pysidetest/testobject.h
index 2795cec5c..a095a382e 100644
--- a/sources/pyside6/tests/pysidetest/testobject.h
+++ b/sources/pyside6/tests/pysidetest/testobject.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TESTOBJECT_H
#define TESTOBJECT_H
@@ -33,12 +8,15 @@
#include <QtWidgets/QApplication>
+#include <QtCore/QList>
#include <QtCore/QObject>
#include <QtCore/QMetaType>
#include <QtCore/QVariant>
QT_FORWARD_DECLARE_CLASS(QDebug)
+using IntList = QList<int>;
+
class IntValue
{
public:
@@ -48,16 +26,16 @@ public:
int value;
};
-typedef IntValue TypedefValue;
+using TypedefValue = IntValue;
class PYSIDETEST_API TestObject : public QObject
{
Q_OBJECT
public:
- static void createApp() { int argc=0; new QApplication(argc, 0); };
+ static void createApp() { int argc=0; new QApplication(argc, nullptr); };
static int checkType(const QVariant& var) { return var.metaType().id(); }
- TestObject(int idValue, QObject* parent = 0) : QObject(parent), m_idValue(idValue) {}
+ TestObject(int idValue, QObject* parent = nullptr) : QObject(parent), m_idValue(idValue) {}
int idValue() const { return m_idValue; }
static int staticMethodDouble(int value) { return value * 2; }
void addChild(QObject* c) { m_children.append(c); emit childrenChanged(m_children); }
@@ -69,6 +47,14 @@ public:
void emitSignalWithDefaultValue_bool();
void emitSignalWithTypedefValue(int value);
+ void emitSignalWithContainerTypedefValue(const IntList &il);
+
+ void emitFlagsSignal(Qt::Alignment alignment);
+
+ static constexpr auto LATIN1_TEST_FIELD = QLatin1StringView("test");
+
+ void setQLatin1String(QLatin1String v);
+ QString qLatin1String() const;
signals:
void idValue(int newValue);
@@ -77,16 +63,18 @@ signals:
void childrenChanged(const QList<QObject*>&);
void signalWithDefaultValue(bool value = false);
void signalWithTypedefValue(TypedefValue value);
+ void signalWithContainerTypedefValue(const IntList &il);
+ void flagsSignal(Qt::Alignment alignment);
private:
int m_idValue;
QList<QObject*> m_children;
+ QString m_qLatin1String;
};
PYSIDETEST_API QDebug operator<<(QDebug dbg, TestObject &testObject);
-typedef int PySideInt;
-
+using PySideInt = int;
namespace PySideCPP {
@@ -125,8 +113,7 @@ namespace PySideCPP2 {
enum Enum1 { Option1 = 1, Option2 = 2 };
-
-typedef long PySideLong;
+using PySideLong = long;
class PYSIDETEST_API TestObjectWithoutNamespace : public QObject
{
diff --git a/sources/pyside6/tests/pysidetest/testqvariantenum.cpp b/sources/pyside6/tests/pysidetest/testqvariantenum.cpp
new file mode 100644
index 000000000..7135e422a
--- /dev/null
+++ b/sources/pyside6/tests/pysidetest/testqvariantenum.cpp
@@ -0,0 +1,29 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#include "testqvariantenum.h"
+
+QVariant TestQVariantEnum::getLValEnum() const
+{
+ return this->m_enum;
+}
+
+QVariant TestQVariantEnum::getRValEnum() const
+{
+ return QVariant(Qt::Orientation::Horizontal);
+}
+
+int TestQVariantEnum::getNumberFromQVarEnum(QVariant variantEnum)
+{
+ return variantEnum.toInt();
+}
+
+bool TestQVariantEnum::channelingEnum([[maybe_unused]] QVariant rvalEnum) const
+{
+ return false;
+}
+
+bool TestQVariantEnum::isEnumChanneled() const
+{
+ return this->channelingEnum(this->getRValEnum());
+}
diff --git a/sources/pyside6/tests/pysidetest/testqvariantenum.h b/sources/pyside6/tests/pysidetest/testqvariantenum.h
new file mode 100644
index 000000000..4b729e3dd
--- /dev/null
+++ b/sources/pyside6/tests/pysidetest/testqvariantenum.h
@@ -0,0 +1,35 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef TESTQVARIANT_H
+#define TESTQVARIANT_H
+
+#include "pysidetest_macros.h"
+
+#include <QtCore/QVariant>
+
+class PYSIDETEST_API TestQVariantEnum
+{
+public:
+ TestQVariantEnum(QVariant lvalue_enum) : m_enum(lvalue_enum) {}
+ QVariant getLValEnum() const;
+ static int getNumberFromQVarEnum(QVariant variantEnum = QVariant());
+ bool isEnumChanneled() const;
+ virtual QVariant getRValEnum() const;
+ virtual bool channelingEnum(QVariant rvalEnum) const;
+ virtual ~TestQVariantEnum() = default;
+private:
+ QVariant m_enum;
+};
+
+class PYSIDETEST_API QVariantHolder // modeled after Q3DParameter, test QVariant conversion
+{
+public:
+ void setValue(QVariant v) { m_variant = v; }
+ QVariant value() const { return m_variant; }
+
+private:
+ QVariant m_variant;
+};
+
+#endif // TESTQVARIANT_H
diff --git a/sources/pyside6/tests/pysidetest/testview.cpp b/sources/pyside6/tests/pysidetest/testview.cpp
index 110a87ac2..362239112 100644
--- a/sources/pyside6/tests/pysidetest/testview.cpp
+++ b/sources/pyside6/tests/pysidetest/testview.cpp
@@ -1,37 +1,12 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "testview.h"
-#include <QDebug>
-#include <QWidget>
-#include <QAbstractListModel>
-#include <QAbstractItemDelegate>
+#include <QtCore/QDebug>
+#include <QtCore/QAbstractListModel>
+#include <QtWidgets/QAbstractItemDelegate>
+#include <QtWidgets/QWidget>
QVariant
TestView::getData()
@@ -43,7 +18,7 @@ TestView::getData()
QWidget*
TestView::getEditorWidgetFromItemDelegate() const
{
- if (!m_delegate)
+ if (m_delegate == nullptr)
return nullptr;
QModelIndex index;
diff --git a/sources/pyside6/tests/pysidetest/testview.h b/sources/pyside6/tests/pysidetest/testview.h
index b80a7fca9..746def83e 100644
--- a/sources/pyside6/tests/pysidetest/testview.h
+++ b/sources/pyside6/tests/pysidetest/testview.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TESTVIEW_H
#define TESTVIEW_H
@@ -43,7 +18,8 @@ class PYSIDETEST_API TestView : public QObject
{
Q_OBJECT
public:
- TestView(QAbstractListModel* model, QObject* parent = 0) : QObject(parent), m_model(model) {}
+ TestView(QAbstractListModel* model, QObject* parent = nullptr) :
+ QObject(parent), m_model(model) {}
QAbstractListModel* model() { return m_model; }
QVariant getData();
@@ -52,7 +28,7 @@ public:
private:
QAbstractListModel* m_model;
- QAbstractItemDelegate* m_delegate;
+ QAbstractItemDelegate* m_delegate = nullptr;
};
#endif // TESTVIEW_H
diff --git a/sources/pyside6/tests/pysidetest/true_property_test.py b/sources/pyside6/tests/pysidetest/true_property_test.py
new file mode 100644
index 000000000..62f6505dc
--- /dev/null
+++ b/sources/pyside6/tests/pysidetest/true_property_test.py
@@ -0,0 +1,58 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+"""
+PYSIDE-2042: Tests true_property with inheritance
+"""
+is_pypy = hasattr(sys, "pypy_version_info")
+
+from PySide6.QtCore import QSize
+from PySide6.QtWidgets import QWidget, QSpinBox
+if not is_pypy:
+ from __feature__ import true_property
+from helper.usesqapplication import UsesQApplication
+
+
+@unittest.skipIf(is_pypy, "__feature__ cannot yet be used with PyPy")
+class TruePropertyInheritanceTest(UsesQApplication):
+
+ def testTrueProperty(self):
+ # this worked
+ widget = QWidget()
+ check = widget.sizeHint
+ self.assertEqual(type(check), QSize)
+
+ # PYSIDE-2042: inheritance did not work
+ spin_box = QSpinBox()
+ check = spin_box.sizeHint
+ self.assertEqual(type(check), QSize)
+
+ def testHiddenMethods(self):
+ # PYSIDE-1889: setVisible is no longer a meta function but comes from the Property
+ widget = QWidget()
+ self.assertTrue("visible" in QWidget.__dict__)
+ self.assertFalse("isVisible" in QWidget.__dict__)
+ self.assertFalse("setVisible" in QWidget.__dict__)
+ self.assertTrue(hasattr(widget, "isVisible"))
+ self.assertTrue(hasattr(widget, "setVisible"))
+ self.assertEqual(widget.isVisible, QWidget.visible.fget)
+ self.assertEqual(widget.setVisible, QWidget.visible.fset)
+
+ # This works with inheritance as well:
+ class SubClass(QWidget):
+ pass
+ sub_widget = SubClass()
+ self.assertEqual(sub_widget.isVisible, QWidget.visible.fget)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/pysidetest/typedef_signal_test.py b/sources/pyside6/tests/pysidetest/typedef_signal_test.py
index 714695823..d0bdc880b 100644
--- a/sources/pyside6/tests/pysidetest/typedef_signal_test.py
+++ b/sources/pyside6/tests/pysidetest/typedef_signal_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -35,7 +10,7 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(True)
-from PySide6.QtCore import QObject
+from PySide6.QtCore import QObject, Slot
from testbinding import TestObject
@@ -48,6 +23,10 @@ class Receiver(QObject):
def slot(self, value):
self.received = value
+ @Slot("IntList")
+ def containerSlot(self, value):
+ self.received = value
+
class TypedefSignal(unittest.TestCase):
@@ -59,6 +38,15 @@ class TypedefSignal(unittest.TestCase):
obj.emitSignalWithTypedefValue(2)
self.assertEqual(receiver.received.value, 2)
+ def testContainerTypedef(self):
+ obj = TestObject(0)
+ receiver = Receiver()
+
+ test_list = [1, 2]
+ obj.signalWithContainerTypedefValue.connect(receiver.containerSlot)
+ obj.emitSignalWithContainerTypedefValue(test_list)
+ self.assertEqual(receiver.received, test_list)
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/pyside6/tests/pysidetest/typesystem_pysidetest.xml b/sources/pyside6/tests/pysidetest/typesystem_pysidetest.xml
index 2736f8319..592d90a83 100644
--- a/sources/pyside6/tests/pysidetest/typesystem_pysidetest.xml
+++ b/sources/pyside6/tests/pysidetest/typesystem_pysidetest.xml
@@ -63,17 +63,18 @@
</modify-function>
</object-type>
+ <value-type name="TestQVariantEnum"/>
+
<namespace-type name="FlagsNamespace" visible="no">
<enum-type name="Option" flags="Options"/>
<object-type name="ClassForEnum" />
</namespace-type>
- <suppress-warning text="type 'QPyTextObject' is specified in typesystem, but not defined. This could potentially lead to compilation errors." />
- <!-- Qt5: I never really understood this warning. Probably it is because there
- is no way to instantiate the class. Anyway, why must this class emit this warning?
- I am not a C++ warrior, so I'd prefer if it would say "it is ok if you see this warning!".
- Well, maybe somebody will enlighten me, and I'll change this comment.
- I'd actually prefer an implementation that avoids generating this message, but I still failed
- doing so :-(
- -->
+ <object-type name="SharedPointerTestbench"/>
+
+ <value-type name="QVariantHolder"/>
+
+ <smart-pointer-type name="QSharedPointer" type="shared" getter="data"
+ reset-method="reset"/>
+
</typesystem>
diff --git a/sources/pyside6/tests/pysidetest/version_test.py b/sources/pyside6/tests/pysidetest/version_test.py
index 397e61a68..f47ffc6d0 100644
--- a/sources/pyside6/tests/pysidetest/version_test.py
+++ b/sources/pyside6/tests/pysidetest/version_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/registry/CMakeLists.txt b/sources/pyside6/tests/registry/CMakeLists.txt
index df50037e1..02622109a 100644
--- a/sources/pyside6/tests/registry/CMakeLists.txt
+++ b/sources/pyside6/tests/registry/CMakeLists.txt
@@ -1,40 +1,4 @@
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
PYSIDE_TEST(existence_test.py)
diff --git a/sources/pyside6/tests/registry/existence_test.py b/sources/pyside6/tests/registry/existence_test.py
index 2ab18152a..5540b6e04 100644
--- a/sources/pyside6/tests/registry/existence_test.py
+++ b/sources/pyside6/tests/registry/existence_test.py
@@ -1,41 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
"""
existence_test.py
@@ -72,8 +36,8 @@ import unittest
from pathlib import Path
sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
-from init_paths import init_all_test_paths
-init_all_test_paths()
+from init_paths import init_test_paths
+init_test_paths(True)
from init_platform import enum_all, generate_all
from util import (isolate_warnings, check_warnings, suppress_warnings, warn,
@@ -119,6 +83,19 @@ if have_refmodule and not hasattr(sig_exists, dict_name):
have_refmodule = False
+class TestUnrecognizedOffending(unittest.TestCase):
+ """
+ We run the signature generation on all modules and raise an error
+ if a warning was issued. This is better than turning warnings into
+ errors because that would stop early before we have all warnings.
+ """
+ def test_signatures_recognized(self):
+ with isolate_warnings():
+ found_sigs = enum_all()
+ if check_warnings():
+ raise RuntimeError("There are errors, see above.")
+
+
@unittest.skipIf(not have_refmodule,
"not activated for this platform or version")
class TestSignaturesExists(unittest.TestCase):
diff --git a/sources/pyside6/tests/registry/exists_darwin_5_14_2_ci.py b/sources/pyside6/tests/registry/exists_darwin_5_14_2_ci.py
deleted file mode 100644
index 1532642fe..000000000
--- a/sources/pyside6/tests/registry/exists_darwin_5_14_2_ci.py
+++ /dev/null
@@ -1,37734 +0,0 @@
-#recreate # uncomment this to enforce generation
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-"""
-This file contains the simplified signatures for all functions in PySide
-for module 'exists_darwin_5_14_2_ci' using
-Python 2.7.16 (v2.7.16:413a49145e, Mar 2 2019, 15:28:37) [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]
-Qt 5.14.2 (x86_64-little_endian-lp64 shared (dynamic) release build; by Clang 10.0.0 (clang-1000.11.45.5) (Apple))
-There are no default values, no variable names and no self
-parameter. Only types are present after simplification. The
-functions 'next' resp. '__next__' are removed to make the output
-identical for Python 2 and 3. '__div__' is also removed,
-since it exists in Python 2, only.
-"""
-import sys
-sig_dict = {}
-# Module PySide2.QtCore
-sig_dict.update({
-# class PySide2.QtCore.ClassInfo:
- "PySide2.QtCore.ClassInfo.__init__": ('typing.Dict[str, str]',),
-# class PySide2.QtCore.MetaFunction:
- "PySide2.QtCore.MetaFunction.__call__": ('typing.Any',),
-# class PySide2.QtCore.MetaSignal:
- "PySide2.QtCore.MetaSignal.__instancecheck__": ('object',),
-# class PySide2.QtCore.Property:
- "PySide2.QtCore.Property.__init__": ('type', 'typing.Callable', 'typing.Callable', 'typing.Callable', 'typing.Callable', 'str', 'typing.Callable', 'bool', 'bool', 'bool', 'bool', 'bool', 'bool'),
- "PySide2.QtCore.Property.getter": ('typing.Callable',),
- "PySide2.QtCore.Property.read": ('typing.Callable',),
- "PySide2.QtCore.Property.setter": ('typing.Callable',),
- "PySide2.QtCore.Property.write": ('typing.Callable',),
-# class PySide2.QtCore.QAbstractAnimation:
-# class PySide2.QtCore.QAbstractAnimation.DeletionPolicy:
-# class PySide2.QtCore.QAbstractAnimation.Direction:
-# class PySide2.QtCore.QAbstractAnimation.State:
- "PySide2.QtCore.QAbstractAnimation.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QAbstractAnimation.currentLoop": (),
- "PySide2.QtCore.QAbstractAnimation.currentLoopTime": (),
- "PySide2.QtCore.QAbstractAnimation.currentTime": (),
- "PySide2.QtCore.QAbstractAnimation.direction": (),
- "PySide2.QtCore.QAbstractAnimation.duration": (),
- "PySide2.QtCore.QAbstractAnimation.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QAbstractAnimation.group": (),
- "PySide2.QtCore.QAbstractAnimation.loopCount": (),
- "PySide2.QtCore.QAbstractAnimation.pause": (),
- "PySide2.QtCore.QAbstractAnimation.resume": (),
- "PySide2.QtCore.QAbstractAnimation.setCurrentTime": ('int',),
- "PySide2.QtCore.QAbstractAnimation.setDirection": ('PySide2.QtCore.QAbstractAnimation.Direction',),
- "PySide2.QtCore.QAbstractAnimation.setLoopCount": ('int',),
- "PySide2.QtCore.QAbstractAnimation.setPaused": ('bool',),
- "PySide2.QtCore.QAbstractAnimation.start": ('PySide2.QtCore.QAbstractAnimation.DeletionPolicy',),
- "PySide2.QtCore.QAbstractAnimation.state": (),
- "PySide2.QtCore.QAbstractAnimation.stop": (),
- "PySide2.QtCore.QAbstractAnimation.totalDuration": (),
- "PySide2.QtCore.QAbstractAnimation.updateCurrentTime": ('int',),
- "PySide2.QtCore.QAbstractAnimation.updateDirection": ('PySide2.QtCore.QAbstractAnimation.Direction',),
- "PySide2.QtCore.QAbstractAnimation.updateState": ('PySide2.QtCore.QAbstractAnimation.State', 'PySide2.QtCore.QAbstractAnimation.State'),
-# class PySide2.QtCore.QAbstractEventDispatcher:
-# class PySide2.QtCore.QAbstractEventDispatcher.TimerInfo:
- "PySide2.QtCore.QAbstractEventDispatcher.TimerInfo.__init__": ('int', 'int', 'PySide2.QtCore.Qt.TimerType'),
- "PySide2.QtCore.QAbstractEventDispatcher.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QAbstractEventDispatcher.closingDown": (),
- "PySide2.QtCore.QAbstractEventDispatcher.filterNativeEvent": ('PySide2.QtCore.QByteArray', 'int'),
- "PySide2.QtCore.QAbstractEventDispatcher.flush": (),
- "PySide2.QtCore.QAbstractEventDispatcher.hasPendingEvents": (),
- "PySide2.QtCore.QAbstractEventDispatcher.installNativeEventFilter": ('PySide2.QtCore.QAbstractNativeEventFilter',),
- "PySide2.QtCore.QAbstractEventDispatcher.instance": ('PySide2.QtCore.QThread',),
- "PySide2.QtCore.QAbstractEventDispatcher.interrupt": (),
- "PySide2.QtCore.QAbstractEventDispatcher.processEvents": ('PySide2.QtCore.QEventLoop.ProcessEventsFlags',),
- "PySide2.QtCore.QAbstractEventDispatcher.registerSocketNotifier": ('PySide2.QtCore.QSocketNotifier',),
- "PySide2.QtCore.QAbstractEventDispatcher.registerTimer": [('int', 'PySide2.QtCore.Qt.TimerType', 'PySide2.QtCore.QObject'), ('int', 'int', 'PySide2.QtCore.Qt.TimerType', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QAbstractEventDispatcher.registeredTimers": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QAbstractEventDispatcher.remainingTime": ('int',),
- "PySide2.QtCore.QAbstractEventDispatcher.removeNativeEventFilter": ('PySide2.QtCore.QAbstractNativeEventFilter',),
- "PySide2.QtCore.QAbstractEventDispatcher.startingUp": (),
- "PySide2.QtCore.QAbstractEventDispatcher.unregisterSocketNotifier": ('PySide2.QtCore.QSocketNotifier',),
- "PySide2.QtCore.QAbstractEventDispatcher.unregisterTimer": ('int',),
- "PySide2.QtCore.QAbstractEventDispatcher.unregisterTimers": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QAbstractEventDispatcher.wakeUp": (),
-# class PySide2.QtCore.QAbstractItemModel:
-# class PySide2.QtCore.QAbstractItemModel.CheckIndexOption:
-# class PySide2.QtCore.QAbstractItemModel.CheckIndexOptions:
-# class PySide2.QtCore.QAbstractItemModel.LayoutChangeHint:
- "PySide2.QtCore.QAbstractItemModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QAbstractItemModel.beginInsertColumns": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtCore.QAbstractItemModel.beginInsertRows": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtCore.QAbstractItemModel.beginMoveColumns": ('PySide2.QtCore.QModelIndex', 'int', 'int', 'PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QAbstractItemModel.beginMoveRows": ('PySide2.QtCore.QModelIndex', 'int', 'int', 'PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QAbstractItemModel.beginRemoveColumns": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtCore.QAbstractItemModel.beginRemoveRows": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtCore.QAbstractItemModel.beginResetModel": (),
- "PySide2.QtCore.QAbstractItemModel.buddy": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractItemModel.canDropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.canFetchMore": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractItemModel.changePersistentIndex": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.changePersistentIndexList": ('typing.List[int]', 'typing.List[int]'),
- "PySide2.QtCore.QAbstractItemModel.checkIndex": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QAbstractItemModel.CheckIndexOptions'),
- "PySide2.QtCore.QAbstractItemModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractItemModel.createIndex": [('int', 'int', 'int'), ('int', 'int', 'object')],
- "PySide2.QtCore.QAbstractItemModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QAbstractItemModel.decodeData": ('int', 'int', 'PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QDataStream'),
- "PySide2.QtCore.QAbstractItemModel.dropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.encodeData": ('typing.List[int]', 'PySide2.QtCore.QDataStream'),
- "PySide2.QtCore.QAbstractItemModel.endInsertColumns": (),
- "PySide2.QtCore.QAbstractItemModel.endInsertRows": (),
- "PySide2.QtCore.QAbstractItemModel.endMoveColumns": (),
- "PySide2.QtCore.QAbstractItemModel.endMoveRows": (),
- "PySide2.QtCore.QAbstractItemModel.endRemoveColumns": (),
- "PySide2.QtCore.QAbstractItemModel.endRemoveRows": (),
- "PySide2.QtCore.QAbstractItemModel.endResetModel": (),
- "PySide2.QtCore.QAbstractItemModel.fetchMore": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractItemModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractItemModel.hasChildren": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractItemModel.hasIndex": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtCore.QAbstractItemModel.index": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.insertColumn": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.insertColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.insertRow": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.insertRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.itemData": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractItemModel.match": ('PySide2.QtCore.QModelIndex', 'int', 'typing.Any', 'int', 'PySide2.QtCore.Qt.MatchFlags'),
- "PySide2.QtCore.QAbstractItemModel.mimeData": ('typing.List[int]',),
- "PySide2.QtCore.QAbstractItemModel.mimeTypes": (),
- "PySide2.QtCore.QAbstractItemModel.moveColumn": ('PySide2.QtCore.QModelIndex', 'int', 'PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QAbstractItemModel.moveColumns": ('PySide2.QtCore.QModelIndex', 'int', 'int', 'PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QAbstractItemModel.moveRow": ('PySide2.QtCore.QModelIndex', 'int', 'PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QAbstractItemModel.moveRows": ('PySide2.QtCore.QModelIndex', 'int', 'int', 'PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QAbstractItemModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtCore.QAbstractItemModel.persistentIndexList": (),
- "PySide2.QtCore.QAbstractItemModel.removeColumn": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.removeColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.removeRow": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.removeRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.resetInternalData": (),
- "PySide2.QtCore.QAbstractItemModel.revert": (),
- "PySide2.QtCore.QAbstractItemModel.roleNames": (),
- "PySide2.QtCore.QAbstractItemModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractItemModel.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
- "PySide2.QtCore.QAbstractItemModel.setHeaderData": ('int', 'PySide2.QtCore.Qt.Orientation', 'typing.Any', 'int'),
- "PySide2.QtCore.QAbstractItemModel.setItemData": ('PySide2.QtCore.QModelIndex', 'typing.Dict[int, typing.Any]'),
- "PySide2.QtCore.QAbstractItemModel.sibling": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.sort": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtCore.QAbstractItemModel.span": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractItemModel.submit": (),
- "PySide2.QtCore.QAbstractItemModel.supportedDragActions": (),
- "PySide2.QtCore.QAbstractItemModel.supportedDropActions": (),
-# class PySide2.QtCore.QAbstractListModel:
- "PySide2.QtCore.QAbstractListModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QAbstractListModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractListModel.dropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractListModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractListModel.hasChildren": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractListModel.index": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractListModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtCore.QAbstractListModel.sibling": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
-# class PySide2.QtCore.QAbstractNativeEventFilter:
- "PySide2.QtCore.QAbstractNativeEventFilter.__init__": (),
- "PySide2.QtCore.QAbstractNativeEventFilter.nativeEventFilter": ('PySide2.QtCore.QByteArray', 'int'),
-# class PySide2.QtCore.QAbstractProxyModel:
- "PySide2.QtCore.QAbstractProxyModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QAbstractProxyModel.buddy": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractProxyModel.canDropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractProxyModel.canFetchMore": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractProxyModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QAbstractProxyModel.dropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractProxyModel.fetchMore": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractProxyModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractProxyModel.hasChildren": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractProxyModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtCore.QAbstractProxyModel.itemData": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractProxyModel.mapFromSource": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractProxyModel.mapSelectionFromSource": ('PySide2.QtCore.QItemSelection',),
- "PySide2.QtCore.QAbstractProxyModel.mapSelectionToSource": ('PySide2.QtCore.QItemSelection',),
- "PySide2.QtCore.QAbstractProxyModel.mapToSource": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractProxyModel.mimeData": ('typing.List[int]',),
- "PySide2.QtCore.QAbstractProxyModel.mimeTypes": (),
- "PySide2.QtCore.QAbstractProxyModel.resetInternalData": (),
- "PySide2.QtCore.QAbstractProxyModel.revert": (),
- "PySide2.QtCore.QAbstractProxyModel.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
- "PySide2.QtCore.QAbstractProxyModel.setHeaderData": ('int', 'PySide2.QtCore.Qt.Orientation', 'typing.Any', 'int'),
- "PySide2.QtCore.QAbstractProxyModel.setItemData": ('PySide2.QtCore.QModelIndex', 'typing.Dict[int, typing.Any]'),
- "PySide2.QtCore.QAbstractProxyModel.setSourceModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCore.QAbstractProxyModel.sibling": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractProxyModel.sort": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtCore.QAbstractProxyModel.sourceModel": (),
- "PySide2.QtCore.QAbstractProxyModel.span": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractProxyModel.submit": (),
- "PySide2.QtCore.QAbstractProxyModel.supportedDragActions": (),
- "PySide2.QtCore.QAbstractProxyModel.supportedDropActions": (),
-# class PySide2.QtCore.QAbstractState:
- "PySide2.QtCore.QAbstractState.__init__": ('PySide2.QtCore.QState',),
- "PySide2.QtCore.QAbstractState.active": (),
- "PySide2.QtCore.QAbstractState.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QAbstractState.machine": (),
- "PySide2.QtCore.QAbstractState.onEntry": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QAbstractState.onExit": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QAbstractState.parentState": (),
-# class PySide2.QtCore.QAbstractTableModel:
- "PySide2.QtCore.QAbstractTableModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QAbstractTableModel.dropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractTableModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractTableModel.hasChildren": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractTableModel.index": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractTableModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtCore.QAbstractTableModel.sibling": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
-# class PySide2.QtCore.QAbstractTransition:
-# class PySide2.QtCore.QAbstractTransition.TransitionType:
- "PySide2.QtCore.QAbstractTransition.__init__": ('PySide2.QtCore.QState',),
- "PySide2.QtCore.QAbstractTransition.addAnimation": ('PySide2.QtCore.QAbstractAnimation',),
- "PySide2.QtCore.QAbstractTransition.animations": (),
- "PySide2.QtCore.QAbstractTransition.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QAbstractTransition.eventTest": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QAbstractTransition.machine": (),
- "PySide2.QtCore.QAbstractTransition.onTransition": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QAbstractTransition.removeAnimation": ('PySide2.QtCore.QAbstractAnimation',),
- "PySide2.QtCore.QAbstractTransition.setTargetState": ('PySide2.QtCore.QAbstractState',),
- "PySide2.QtCore.QAbstractTransition.setTargetStates": ('typing.Sequence[PySide2.QtCore.QAbstractState]',),
- "PySide2.QtCore.QAbstractTransition.setTransitionType": ('PySide2.QtCore.QAbstractTransition.TransitionType',),
- "PySide2.QtCore.QAbstractTransition.sourceState": (),
- "PySide2.QtCore.QAbstractTransition.targetState": (),
- "PySide2.QtCore.QAbstractTransition.targetStates": (),
- "PySide2.QtCore.QAbstractTransition.transitionType": (),
-# class PySide2.QtCore.QAnimationGroup:
- "PySide2.QtCore.QAnimationGroup.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QAnimationGroup.addAnimation": ('PySide2.QtCore.QAbstractAnimation',),
- "PySide2.QtCore.QAnimationGroup.animationAt": ('int',),
- "PySide2.QtCore.QAnimationGroup.animationCount": (),
- "PySide2.QtCore.QAnimationGroup.clear": (),
- "PySide2.QtCore.QAnimationGroup.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QAnimationGroup.indexOfAnimation": ('PySide2.QtCore.QAbstractAnimation',),
- "PySide2.QtCore.QAnimationGroup.insertAnimation": ('int', 'PySide2.QtCore.QAbstractAnimation'),
- "PySide2.QtCore.QAnimationGroup.removeAnimation": ('PySide2.QtCore.QAbstractAnimation',),
- "PySide2.QtCore.QAnimationGroup.takeAnimation": ('int',),
-# class PySide2.QtCore.QBasicMutex:
- "PySide2.QtCore.QBasicMutex.__init__": (),
- "PySide2.QtCore.QBasicMutex.isRecursive": (),
- "PySide2.QtCore.QBasicMutex.lock": (),
- "PySide2.QtCore.QBasicMutex.tryLock": (),
- "PySide2.QtCore.QBasicMutex.try_lock": (),
- "PySide2.QtCore.QBasicMutex.unlock": (),
-# class PySide2.QtCore.QBasicTimer:
- "PySide2.QtCore.QBasicTimer.__init__": [(), ('PySide2.QtCore.QBasicTimer',)],
- "PySide2.QtCore.QBasicTimer.__copy__": (),
- "PySide2.QtCore.QBasicTimer.isActive": (),
- "PySide2.QtCore.QBasicTimer.start": [('int', 'PySide2.QtCore.QObject'), ('int', 'PySide2.QtCore.Qt.TimerType', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QBasicTimer.stop": (),
- "PySide2.QtCore.QBasicTimer.swap": ('PySide2.QtCore.QBasicTimer',),
- "PySide2.QtCore.QBasicTimer.timerId": (),
-# class PySide2.QtCore.QBitArray:
- "PySide2.QtCore.QBitArray.__init__": [(), ('PySide2.QtCore.QBitArray',), ('int', 'bool')],
- "PySide2.QtCore.QBitArray.__and__": ('PySide2.QtCore.QBitArray',),
- "PySide2.QtCore.QBitArray.__copy__": (),
- "PySide2.QtCore.QBitArray.__iand__": ('PySide2.QtCore.QBitArray',),
- "PySide2.QtCore.QBitArray.__invert__": (),
- "PySide2.QtCore.QBitArray.__ior__": ('PySide2.QtCore.QBitArray',),
- "PySide2.QtCore.QBitArray.__ixor__": ('PySide2.QtCore.QBitArray',),
- "PySide2.QtCore.QBitArray.__or__": ('PySide2.QtCore.QBitArray',),
- "PySide2.QtCore.QBitArray.__xor__": ('PySide2.QtCore.QBitArray',),
- "PySide2.QtCore.QBitArray.at": ('int',),
- "PySide2.QtCore.QBitArray.bits": (),
- "PySide2.QtCore.QBitArray.clear": (),
- "PySide2.QtCore.QBitArray.clearBit": ('int',),
- "PySide2.QtCore.QBitArray.count": [(), ('bool',)],
- "PySide2.QtCore.QBitArray.fill": [('bool', 'int'), ('bool', 'int', 'int')],
- "PySide2.QtCore.QBitArray.fromBits": ('str', 'int'),
- "PySide2.QtCore.QBitArray.isEmpty": (),
- "PySide2.QtCore.QBitArray.isNull": (),
- "PySide2.QtCore.QBitArray.resize": ('int',),
- "PySide2.QtCore.QBitArray.setBit": [('int',), ('int', 'bool')],
- "PySide2.QtCore.QBitArray.size": (),
- "PySide2.QtCore.QBitArray.swap": ('PySide2.QtCore.QBitArray',),
- "PySide2.QtCore.QBitArray.testBit": ('int',),
- "PySide2.QtCore.QBitArray.toggleBit": ('int',),
- "PySide2.QtCore.QBitArray.truncate": ('int',),
-# class PySide2.QtCore.QBuffer:
- "PySide2.QtCore.QBuffer.__init__": [('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QObject',)],
- "PySide2.QtCore.QBuffer.atEnd": (),
- "PySide2.QtCore.QBuffer.buffer": (),
- "PySide2.QtCore.QBuffer.canReadLine": (),
- "PySide2.QtCore.QBuffer.close": (),
- "PySide2.QtCore.QBuffer.connectNotify": ('PySide2.QtCore.QMetaMethod',),
- "PySide2.QtCore.QBuffer.data": (),
- "PySide2.QtCore.QBuffer.disconnectNotify": ('PySide2.QtCore.QMetaMethod',),
- "PySide2.QtCore.QBuffer.open": ('PySide2.QtCore.QIODevice.OpenMode',),
- "PySide2.QtCore.QBuffer.pos": (),
- "PySide2.QtCore.QBuffer.readData": ('str', 'int'),
- "PySide2.QtCore.QBuffer.seek": ('int',),
- "PySide2.QtCore.QBuffer.setBuffer": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QBuffer.setData": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QBuffer.size": (),
- "PySide2.QtCore.QBuffer.writeData": ('str', 'int'),
-# class PySide2.QtCore.QByteArray:
-# class PySide2.QtCore.QByteArray.Base64Option:
-# class PySide2.QtCore.QByteArray.Base64Options:
- "PySide2.QtCore.QByteArray.__init__": [(), ('PySide2.QtCore.QByteArray',), ('bytearray',), ('int', 'int'), ('str',)],
- "PySide2.QtCore.QByteArray.__add__": [('PySide2.QtCore.QByteArray',), ('bytearray',), ('int',), ('str',)],
- "PySide2.QtCore.QByteArray.__copy__": (),
- "PySide2.QtCore.QByteArray.__iadd__": [('PySide2.QtCore.QByteArray',), ('bytearray',), ('int',)],
- "PySide2.QtCore.QByteArray.__reduce__": (),
- "PySide2.QtCore.QByteArray.__repr__": (),
- "PySide2.QtCore.QByteArray.__str__": (),
- "PySide2.QtCore.QByteArray.append": [('PySide2.QtCore.QByteArray',), ('int',), ('int', 'int')],
- "PySide2.QtCore.QByteArray.at": ('int',),
- "PySide2.QtCore.QByteArray.back": (),
- "PySide2.QtCore.QByteArray.capacity": (),
- "PySide2.QtCore.QByteArray.cbegin": (),
- "PySide2.QtCore.QByteArray.cend": (),
- "PySide2.QtCore.QByteArray.chop": ('int',),
- "PySide2.QtCore.QByteArray.chopped": ('int',),
- "PySide2.QtCore.QByteArray.clear": (),
- "PySide2.QtCore.QByteArray.compare": [('PySide2.QtCore.QByteArray', 'PySide2.QtCore.Qt.CaseSensitivity'), ('str', 'PySide2.QtCore.Qt.CaseSensitivity')],
- "PySide2.QtCore.QByteArray.contains": [('PySide2.QtCore.QByteArray',), ('int',)],
- "PySide2.QtCore.QByteArray.count": [(), ('PySide2.QtCore.QByteArray',), ('int',)],
- "PySide2.QtCore.QByteArray.data": (),
- "PySide2.QtCore.QByteArray.endsWith": [('PySide2.QtCore.QByteArray',), ('int',)],
- "PySide2.QtCore.QByteArray.fill": ('int', 'int'),
- "PySide2.QtCore.QByteArray.fromBase64": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray.Base64Options')],
- "PySide2.QtCore.QByteArray.fromHex": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QByteArray.fromPercentEncoding": ('PySide2.QtCore.QByteArray', 'int'),
- "PySide2.QtCore.QByteArray.fromRawData": ('str', 'int'),
- "PySide2.QtCore.QByteArray.front": (),
- "PySide2.QtCore.QByteArray.indexOf": ('PySide2.QtCore.QByteArray', 'int'),
- "PySide2.QtCore.QByteArray.insert": [('int', 'PySide2.QtCore.QByteArray'), ('int', 'int', 'int')],
- "PySide2.QtCore.QByteArray.isEmpty": (),
- "PySide2.QtCore.QByteArray.isLower": (),
- "PySide2.QtCore.QByteArray.isNull": (),
- "PySide2.QtCore.QByteArray.isSharedWith": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QByteArray.isUpper": (),
- "PySide2.QtCore.QByteArray.lastIndexOf": ('PySide2.QtCore.QByteArray', 'int'),
- "PySide2.QtCore.QByteArray.left": ('int',),
- "PySide2.QtCore.QByteArray.leftJustified": ('int', 'int', 'bool'),
- "PySide2.QtCore.QByteArray.length": (),
- "PySide2.QtCore.QByteArray.mid": ('int', 'int'),
- "PySide2.QtCore.QByteArray.number": [('float', 'int', 'int'), ('int', 'int')],
- "PySide2.QtCore.QByteArray.prepend": [('PySide2.QtCore.QByteArray',), ('int',), ('int', 'int')],
- "PySide2.QtCore.QByteArray.remove": ('int', 'int'),
- "PySide2.QtCore.QByteArray.repeated": ('int',),
- "PySide2.QtCore.QByteArray.replace": [('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'), ('int', 'PySide2.QtCore.QByteArray'), ('int', 'int'), ('int', 'int', 'PySide2.QtCore.QByteArray'), ('str', 'PySide2.QtCore.QByteArray')],
- "PySide2.QtCore.QByteArray.reserve": ('int',),
- "PySide2.QtCore.QByteArray.resize": ('int',),
- "PySide2.QtCore.QByteArray.right": ('int',),
- "PySide2.QtCore.QByteArray.rightJustified": ('int', 'int', 'bool'),
- "PySide2.QtCore.QByteArray.setNum": [('float', 'int', 'int'), ('int', 'int')],
- "PySide2.QtCore.QByteArray.setRawData": ('str', 'int'),
- "PySide2.QtCore.QByteArray.shrink_to_fit": (),
- "PySide2.QtCore.QByteArray.simplified": (),
- "PySide2.QtCore.QByteArray.size": (),
- "PySide2.QtCore.QByteArray.split": ('int',),
- "PySide2.QtCore.QByteArray.squeeze": (),
- "PySide2.QtCore.QByteArray.startsWith": [('PySide2.QtCore.QByteArray',), ('int',)],
- "PySide2.QtCore.QByteArray.swap": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QByteArray.toBase64": [(), ('PySide2.QtCore.QByteArray.Base64Options',)],
- "PySide2.QtCore.QByteArray.toDouble": (),
- "PySide2.QtCore.QByteArray.toFloat": (),
- "PySide2.QtCore.QByteArray.toHex": [(), ('int',)],
- "PySide2.QtCore.QByteArray.toInt": ('int',),
- "PySide2.QtCore.QByteArray.toLong": ('int',),
- "PySide2.QtCore.QByteArray.toLongLong": ('int',),
- "PySide2.QtCore.QByteArray.toLower": (),
- "PySide2.QtCore.QByteArray.toPercentEncoding": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray', 'int'),
- "PySide2.QtCore.QByteArray.toShort": ('int',),
- "PySide2.QtCore.QByteArray.toUInt": ('int',),
- "PySide2.QtCore.QByteArray.toULong": ('int',),
- "PySide2.QtCore.QByteArray.toULongLong": ('int',),
- "PySide2.QtCore.QByteArray.toUShort": ('int',),
- "PySide2.QtCore.QByteArray.toUpper": (),
- "PySide2.QtCore.QByteArray.trimmed": (),
- "PySide2.QtCore.QByteArray.truncate": ('int',),
-# class PySide2.QtCore.QByteArrayMatcher:
- "PySide2.QtCore.QByteArrayMatcher.__init__": [(), ('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QByteArrayMatcher',), ('str', 'int')],
- "PySide2.QtCore.QByteArrayMatcher.__copy__": (),
- "PySide2.QtCore.QByteArrayMatcher.indexIn": [('PySide2.QtCore.QByteArray', 'int'), ('str', 'int', 'int')],
- "PySide2.QtCore.QByteArrayMatcher.pattern": (),
- "PySide2.QtCore.QByteArrayMatcher.setPattern": ('PySide2.QtCore.QByteArray',),
-# class PySide2.QtCore.QCalendar:
-# class PySide2.QtCore.QCalendar.System:
-# class PySide2.QtCore.QCalendar.YearMonthDay:
- "PySide2.QtCore.QCalendar.YearMonthDay.__init__": [(), ('PySide2.QtCore.QCalendar.YearMonthDay',), ('int', 'int', 'int')],
- "PySide2.QtCore.QCalendar.YearMonthDay.__copy__": (),
- "PySide2.QtCore.QCalendar.YearMonthDay.isValid": (),
- "PySide2.QtCore.QCalendar.__init__": [(), ('PySide2.QtCore.QCalendar.System',)],
- "PySide2.QtCore.QCalendar.__copy__": (),
- "PySide2.QtCore.QCalendar.availableCalendars": (),
- "PySide2.QtCore.QCalendar.dateFromParts": [('PySide2.QtCore.QCalendar.YearMonthDay',), ('int', 'int', 'int')],
- "PySide2.QtCore.QCalendar.dayOfWeek": ('PySide2.QtCore.QDate',),
- "PySide2.QtCore.QCalendar.daysInMonth": ('int', 'int'),
- "PySide2.QtCore.QCalendar.daysInYear": ('int',),
- "PySide2.QtCore.QCalendar.hasYearZero": (),
- "PySide2.QtCore.QCalendar.isDateValid": ('int', 'int', 'int'),
- "PySide2.QtCore.QCalendar.isGregorian": (),
- "PySide2.QtCore.QCalendar.isLeapYear": ('int',),
- "PySide2.QtCore.QCalendar.isLunar": (),
- "PySide2.QtCore.QCalendar.isLuniSolar": (),
- "PySide2.QtCore.QCalendar.isProleptic": (),
- "PySide2.QtCore.QCalendar.isSolar": (),
- "PySide2.QtCore.QCalendar.isValid": (),
- "PySide2.QtCore.QCalendar.maximumDaysInMonth": (),
- "PySide2.QtCore.QCalendar.maximumMonthsInYear": (),
- "PySide2.QtCore.QCalendar.minimumDaysInMonth": (),
- "PySide2.QtCore.QCalendar.monthName": ('PySide2.QtCore.QLocale', 'int', 'int', 'PySide2.QtCore.QLocale.FormatType'),
- "PySide2.QtCore.QCalendar.monthsInYear": ('int',),
- "PySide2.QtCore.QCalendar.name": (),
- "PySide2.QtCore.QCalendar.partsFromDate": ('PySide2.QtCore.QDate',),
- "PySide2.QtCore.QCalendar.standaloneMonthName": ('PySide2.QtCore.QLocale', 'int', 'int', 'PySide2.QtCore.QLocale.FormatType'),
- "PySide2.QtCore.QCalendar.standaloneWeekDayName": ('PySide2.QtCore.QLocale', 'int', 'PySide2.QtCore.QLocale.FormatType'),
- "PySide2.QtCore.QCalendar.weekDayName": ('PySide2.QtCore.QLocale', 'int', 'PySide2.QtCore.QLocale.FormatType'),
-# class PySide2.QtCore.QCborArray:
- "PySide2.QtCore.QCborArray.__init__": [(), ('PySide2.QtCore.QCborArray',)],
- "PySide2.QtCore.QCborArray.__add__": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborArray.__copy__": (),
- "PySide2.QtCore.QCborArray.__iadd__": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborArray.__lshift__": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborArray.append": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborArray.at": ('int',),
- "PySide2.QtCore.QCborArray.clear": (),
- "PySide2.QtCore.QCborArray.compare": ('PySide2.QtCore.QCborArray',),
- "PySide2.QtCore.QCborArray.contains": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborArray.empty": (),
- "PySide2.QtCore.QCborArray.first": (),
- "PySide2.QtCore.QCborArray.fromJsonArray": ('PySide2.QtCore.QJsonArray',),
- "PySide2.QtCore.QCborArray.fromStringList": ('typing.Sequence[str]',),
- "PySide2.QtCore.QCborArray.fromVariantList": ('typing.Sequence[typing.Any]',),
- "PySide2.QtCore.QCborArray.insert": ('int', 'PySide2.QtCore.QCborValue'),
- "PySide2.QtCore.QCborArray.isEmpty": (),
- "PySide2.QtCore.QCborArray.last": (),
- "PySide2.QtCore.QCborArray.pop_back": (),
- "PySide2.QtCore.QCborArray.pop_front": (),
- "PySide2.QtCore.QCborArray.prepend": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborArray.push_back": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborArray.push_front": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborArray.removeAt": ('int',),
- "PySide2.QtCore.QCborArray.removeFirst": (),
- "PySide2.QtCore.QCborArray.removeLast": (),
- "PySide2.QtCore.QCborArray.size": (),
- "PySide2.QtCore.QCborArray.swap": ('PySide2.QtCore.QCborArray',),
- "PySide2.QtCore.QCborArray.takeAt": ('int',),
- "PySide2.QtCore.QCborArray.takeFirst": (),
- "PySide2.QtCore.QCborArray.takeLast": (),
- "PySide2.QtCore.QCborArray.toCborValue": (),
- "PySide2.QtCore.QCborArray.toJsonArray": (),
- "PySide2.QtCore.QCborArray.toVariantList": (),
-# class PySide2.QtCore.QCborError:
-# class PySide2.QtCore.QCborError.Code:
- "PySide2.QtCore.QCborError.__init__": [(), ('PySide2.QtCore.QCborError',)],
- "PySide2.QtCore.QCborError.__copy__": (),
- "PySide2.QtCore.QCborError.toString": (),
-# class PySide2.QtCore.QCborKnownTags:
-# class PySide2.QtCore.QCborMap:
- "PySide2.QtCore.QCborMap.__init__": [(), ('PySide2.QtCore.QCborMap',)],
- "PySide2.QtCore.QCborMap.__copy__": (),
- "PySide2.QtCore.QCborMap.clear": (),
- "PySide2.QtCore.QCborMap.compare": ('PySide2.QtCore.QCborMap',),
- "PySide2.QtCore.QCborMap.contains": [('PySide2.QtCore.QCborValue',), ('int',), ('str',)],
- "PySide2.QtCore.QCborMap.empty": (),
- "PySide2.QtCore.QCborMap.fromJsonObject": ('typing.Dict[str, PySide2.QtCore.QJsonValue]',),
- "PySide2.QtCore.QCborMap.fromVariantHash": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtCore.QCborMap.fromVariantMap": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtCore.QCborMap.isEmpty": (),
- "PySide2.QtCore.QCborMap.keys": (),
- "PySide2.QtCore.QCborMap.remove": [('PySide2.QtCore.QCborValue',), ('int',), ('str',)],
- "PySide2.QtCore.QCborMap.size": (),
- "PySide2.QtCore.QCborMap.swap": ('PySide2.QtCore.QCborMap',),
- "PySide2.QtCore.QCborMap.take": [('PySide2.QtCore.QCborValue',), ('int',), ('str',)],
- "PySide2.QtCore.QCborMap.toCborValue": (),
- "PySide2.QtCore.QCborMap.toJsonObject": (),
- "PySide2.QtCore.QCborMap.toVariantHash": (),
- "PySide2.QtCore.QCborMap.toVariantMap": (),
- "PySide2.QtCore.QCborMap.value": [('PySide2.QtCore.QCborValue',), ('int',), ('str',)],
-# class PySide2.QtCore.QCborParserError:
- "PySide2.QtCore.QCborParserError.__init__": [(), ('PySide2.QtCore.QCborParserError',)],
- "PySide2.QtCore.QCborParserError.__copy__": (),
- "PySide2.QtCore.QCborParserError.errorString": (),
-# class PySide2.QtCore.QCborSimpleType:
-# class PySide2.QtCore.QCborStreamReader:
-# class PySide2.QtCore.QCborStreamReader.StringResultCode:
-# class PySide2.QtCore.QCborStreamReader.Type:
- "PySide2.QtCore.QCborStreamReader.__init__": [(), ('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QIODevice',), ('bytearray', 'int'), ('str', 'int')],
- "PySide2.QtCore.QCborStreamReader.addData": [('PySide2.QtCore.QByteArray',), ('bytearray', 'int'), ('str', 'int')],
- "PySide2.QtCore.QCborStreamReader.clear": (),
- "PySide2.QtCore.QCborStreamReader.containerDepth": (),
- "PySide2.QtCore.QCborStreamReader.currentOffset": (),
- "PySide2.QtCore.QCborStreamReader.currentStringChunkSize": (),
- "PySide2.QtCore.QCborStreamReader.device": (),
- "PySide2.QtCore.QCborStreamReader.enterContainer": (),
- "PySide2.QtCore.QCborStreamReader.hasNext": (),
- "PySide2.QtCore.QCborStreamReader.isArray": (),
- "PySide2.QtCore.QCborStreamReader.isBool": (),
- "PySide2.QtCore.QCborStreamReader.isByteArray": (),
- "PySide2.QtCore.QCborStreamReader.isContainer": (),
- "PySide2.QtCore.QCborStreamReader.isDouble": (),
- "PySide2.QtCore.QCborStreamReader.isFalse": (),
- "PySide2.QtCore.QCborStreamReader.isFloat": (),
- "PySide2.QtCore.QCborStreamReader.isFloat16": (),
- "PySide2.QtCore.QCborStreamReader.isInteger": (),
- "PySide2.QtCore.QCborStreamReader.isInvalid": (),
- "PySide2.QtCore.QCborStreamReader.isLengthKnown": (),
- "PySide2.QtCore.QCborStreamReader.isMap": (),
- "PySide2.QtCore.QCborStreamReader.isNegativeInteger": (),
- "PySide2.QtCore.QCborStreamReader.isNull": (),
- "PySide2.QtCore.QCborStreamReader.isSimpleType": [(), ('PySide2.QtCore.QCborSimpleType',)],
- "PySide2.QtCore.QCborStreamReader.isString": (),
- "PySide2.QtCore.QCborStreamReader.isTag": (),
- "PySide2.QtCore.QCborStreamReader.isTrue": (),
- "PySide2.QtCore.QCborStreamReader.isUndefined": (),
- "PySide2.QtCore.QCborStreamReader.isUnsignedInteger": (),
- "PySide2.QtCore.QCborStreamReader.isValid": (),
- "PySide2.QtCore.QCborStreamReader.lastError": (),
- "PySide2.QtCore.QCborStreamReader.leaveContainer": (),
- "PySide2.QtCore.QCborStreamReader.length": (),
- "PySide2.QtCore.QCborStreamReader.parentContainerType": (),
- "PySide2.QtCore.QCborStreamReader.readByteArray": (),
- "PySide2.QtCore.QCborStreamReader.readString": (),
- "PySide2.QtCore.QCborStreamReader.reparse": (),
- "PySide2.QtCore.QCborStreamReader.reset": (),
- "PySide2.QtCore.QCborStreamReader.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtCore.QCborStreamReader.toBool": (),
- "PySide2.QtCore.QCborStreamReader.toDouble": (),
- "PySide2.QtCore.QCborStreamReader.toFloat": (),
- "PySide2.QtCore.QCborStreamReader.toInteger": (),
- "PySide2.QtCore.QCborStreamReader.toSimpleType": (),
- "PySide2.QtCore.QCborStreamReader.toUnsignedInteger": (),
- "PySide2.QtCore.QCborStreamReader.type": (),
-# class PySide2.QtCore.QCborStreamWriter:
- "PySide2.QtCore.QCborStreamWriter.__init__": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QIODevice',)],
- "PySide2.QtCore.QCborStreamWriter.append": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QCborKnownTags',), ('PySide2.QtCore.QCborSimpleType',), ('bool',), ('float',), ('int',), ('str', 'int')],
- "PySide2.QtCore.QCborStreamWriter.appendByteString": ('str', 'int'),
- "PySide2.QtCore.QCborStreamWriter.appendNull": (),
- "PySide2.QtCore.QCborStreamWriter.appendTextString": ('str', 'int'),
- "PySide2.QtCore.QCborStreamWriter.appendUndefined": (),
- "PySide2.QtCore.QCborStreamWriter.device": (),
- "PySide2.QtCore.QCborStreamWriter.endArray": (),
- "PySide2.QtCore.QCborStreamWriter.endMap": (),
- "PySide2.QtCore.QCborStreamWriter.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtCore.QCborStreamWriter.startArray": [(), ('int',)],
- "PySide2.QtCore.QCborStreamWriter.startMap": [(), ('int',)],
-# class PySide2.QtCore.QCborStringResultByteArray:
- "PySide2.QtCore.QCborStringResultByteArray.__init__": [(), ('PySide2.QtCore.QCborStringResultByteArray',)],
- "PySide2.QtCore.QCborStringResultByteArray.__copy__": (),
-# class PySide2.QtCore.QCborStringResultString:
- "PySide2.QtCore.QCborStringResultString.__init__": [(), ('PySide2.QtCore.QCborStringResultString',)],
- "PySide2.QtCore.QCborStringResultString.__copy__": (),
-# class PySide2.QtCore.QCborValue:
-# class PySide2.QtCore.QCborValue.DiagnosticNotationOption:
-# class PySide2.QtCore.QCborValue.DiagnosticNotationOptions:
-# class PySide2.QtCore.QCborValue.EncodingOption:
-# class PySide2.QtCore.QCborValue.EncodingOptions:
-# class PySide2.QtCore.QCborValue.Type:
- "PySide2.QtCore.QCborValue.__init__": [(), ('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QCborArray',), ('PySide2.QtCore.QCborKnownTags', 'PySide2.QtCore.QCborValue'), ('PySide2.QtCore.QCborMap',), ('PySide2.QtCore.QCborSimpleType',), ('PySide2.QtCore.QCborValue',), ('PySide2.QtCore.QCborValue.Type',), ('PySide2.QtCore.QDateTime',), ('PySide2.QtCore.QRegularExpression',), ('PySide2.QtCore.QUrl',), ('PySide2.QtCore.QUuid',), ('bool',), ('float',), ('int',), ('str',)],
- "PySide2.QtCore.QCborValue.__copy__": (),
- "PySide2.QtCore.QCborValue.compare": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborValue.fromCbor": [('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QCborParserError'), ('PySide2.QtCore.QCborStreamReader',), ('bytearray', 'int', 'PySide2.QtCore.QCborParserError'), ('str', 'int', 'PySide2.QtCore.QCborParserError')],
- "PySide2.QtCore.QCborValue.fromJsonValue": ('PySide2.QtCore.QJsonValue',),
- "PySide2.QtCore.QCborValue.fromVariant": ('typing.Any',),
- "PySide2.QtCore.QCborValue.isArray": (),
- "PySide2.QtCore.QCborValue.isBool": (),
- "PySide2.QtCore.QCborValue.isByteArray": (),
- "PySide2.QtCore.QCborValue.isContainer": (),
- "PySide2.QtCore.QCborValue.isDateTime": (),
- "PySide2.QtCore.QCborValue.isDouble": (),
- "PySide2.QtCore.QCborValue.isFalse": (),
- "PySide2.QtCore.QCborValue.isInteger": (),
- "PySide2.QtCore.QCborValue.isInvalid": (),
- "PySide2.QtCore.QCborValue.isMap": (),
- "PySide2.QtCore.QCborValue.isNull": (),
- "PySide2.QtCore.QCborValue.isRegularExpression": (),
- "PySide2.QtCore.QCborValue.isSimpleType": [(), ('PySide2.QtCore.QCborSimpleType',)],
- "PySide2.QtCore.QCborValue.isString": (),
- "PySide2.QtCore.QCborValue.isTag": (),
- "PySide2.QtCore.QCborValue.isTrue": (),
- "PySide2.QtCore.QCborValue.isUndefined": (),
- "PySide2.QtCore.QCborValue.isUrl": (),
- "PySide2.QtCore.QCborValue.isUuid": (),
- "PySide2.QtCore.QCborValue.swap": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborValue.taggedValue": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborValue.toArray": [(), ('PySide2.QtCore.QCborArray',)],
- "PySide2.QtCore.QCborValue.toBool": ('bool',),
- "PySide2.QtCore.QCborValue.toByteArray": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QCborValue.toCbor": [('PySide2.QtCore.QCborStreamWriter', 'PySide2.QtCore.QCborValue.EncodingOptions'), ('PySide2.QtCore.QCborValue.EncodingOptions',)],
- "PySide2.QtCore.QCborValue.toDateTime": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QCborValue.toDiagnosticNotation": ('PySide2.QtCore.QCborValue.DiagnosticNotationOptions',),
- "PySide2.QtCore.QCborValue.toDouble": ('float',),
- "PySide2.QtCore.QCborValue.toInteger": ('int',),
- "PySide2.QtCore.QCborValue.toJsonValue": (),
- "PySide2.QtCore.QCborValue.toMap": [(), ('PySide2.QtCore.QCborMap',)],
- "PySide2.QtCore.QCborValue.toRegularExpression": ('PySide2.QtCore.QRegularExpression',),
- "PySide2.QtCore.QCborValue.toSimpleType": ('PySide2.QtCore.QCborSimpleType',),
- "PySide2.QtCore.QCborValue.toString": ('str',),
- "PySide2.QtCore.QCborValue.toUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtCore.QCborValue.toUuid": ('PySide2.QtCore.QUuid',),
- "PySide2.QtCore.QCborValue.toVariant": (),
- "PySide2.QtCore.QCborValue.type": (),
-# class PySide2.QtCore.QChildEvent:
- "PySide2.QtCore.QChildEvent.__init__": ('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.QObject'),
- "PySide2.QtCore.QChildEvent.added": (),
- "PySide2.QtCore.QChildEvent.child": (),
- "PySide2.QtCore.QChildEvent.polished": (),
- "PySide2.QtCore.QChildEvent.removed": (),
-# class PySide2.QtCore.QCollator:
- "PySide2.QtCore.QCollator.__init__": [(), ('PySide2.QtCore.QCollator',), ('PySide2.QtCore.QLocale',)],
- "PySide2.QtCore.QCollator.__call__": ('str', 'str'),
- "PySide2.QtCore.QCollator.caseSensitivity": (),
- "PySide2.QtCore.QCollator.compare": [('str', 'int', 'str', 'int'), ('str', 'str')],
- "PySide2.QtCore.QCollator.ignorePunctuation": (),
- "PySide2.QtCore.QCollator.locale": (),
- "PySide2.QtCore.QCollator.numericMode": (),
- "PySide2.QtCore.QCollator.setCaseSensitivity": ('PySide2.QtCore.Qt.CaseSensitivity',),
- "PySide2.QtCore.QCollator.setIgnorePunctuation": ('bool',),
- "PySide2.QtCore.QCollator.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtCore.QCollator.setNumericMode": ('bool',),
- "PySide2.QtCore.QCollator.sortKey": ('str',),
- "PySide2.QtCore.QCollator.swap": ('PySide2.QtCore.QCollator',),
-# class PySide2.QtCore.QCollatorSortKey:
- "PySide2.QtCore.QCollatorSortKey.__init__": ('PySide2.QtCore.QCollatorSortKey',),
- "PySide2.QtCore.QCollatorSortKey.compare": ('PySide2.QtCore.QCollatorSortKey',),
- "PySide2.QtCore.QCollatorSortKey.swap": ('PySide2.QtCore.QCollatorSortKey',),
-# class PySide2.QtCore.QCommandLineOption:
-# class PySide2.QtCore.QCommandLineOption.Flag:
-# class PySide2.QtCore.QCommandLineOption.Flags:
- "PySide2.QtCore.QCommandLineOption.__init__": [('PySide2.QtCore.QCommandLineOption',), ('str',), ('str', 'str', 'str', 'str'), ('typing.Sequence[str]',), ('typing.Sequence[str]', 'str', 'str', 'str')],
- "PySide2.QtCore.QCommandLineOption.defaultValues": (),
- "PySide2.QtCore.QCommandLineOption.description": (),
- "PySide2.QtCore.QCommandLineOption.flags": (),
- "PySide2.QtCore.QCommandLineOption.isHidden": (),
- "PySide2.QtCore.QCommandLineOption.names": (),
- "PySide2.QtCore.QCommandLineOption.setDefaultValue": ('str',),
- "PySide2.QtCore.QCommandLineOption.setDefaultValues": ('typing.Sequence[str]',),
- "PySide2.QtCore.QCommandLineOption.setDescription": ('str',),
- "PySide2.QtCore.QCommandLineOption.setFlags": ('PySide2.QtCore.QCommandLineOption.Flags',),
- "PySide2.QtCore.QCommandLineOption.setHidden": ('bool',),
- "PySide2.QtCore.QCommandLineOption.setValueName": ('str',),
- "PySide2.QtCore.QCommandLineOption.swap": ('PySide2.QtCore.QCommandLineOption',),
- "PySide2.QtCore.QCommandLineOption.valueName": (),
-# class PySide2.QtCore.QCommandLineParser:
-# class PySide2.QtCore.QCommandLineParser.OptionsAfterPositionalArgumentsMode:
-# class PySide2.QtCore.QCommandLineParser.SingleDashWordOptionMode:
- "PySide2.QtCore.QCommandLineParser.__init__": (),
- "PySide2.QtCore.QCommandLineParser.addHelpOption": (),
- "PySide2.QtCore.QCommandLineParser.addOption": ('PySide2.QtCore.QCommandLineOption',),
- "PySide2.QtCore.QCommandLineParser.addOptions": ('typing.Sequence[PySide2.QtCore.QCommandLineOption]',),
- "PySide2.QtCore.QCommandLineParser.addPositionalArgument": ('str', 'str', 'str'),
- "PySide2.QtCore.QCommandLineParser.addVersionOption": (),
- "PySide2.QtCore.QCommandLineParser.applicationDescription": (),
- "PySide2.QtCore.QCommandLineParser.clearPositionalArguments": (),
- "PySide2.QtCore.QCommandLineParser.errorText": (),
- "PySide2.QtCore.QCommandLineParser.helpText": (),
- "PySide2.QtCore.QCommandLineParser.isSet": [('PySide2.QtCore.QCommandLineOption',), ('str',)],
- "PySide2.QtCore.QCommandLineParser.optionNames": (),
- "PySide2.QtCore.QCommandLineParser.parse": ('typing.Sequence[str]',),
- "PySide2.QtCore.QCommandLineParser.positionalArguments": (),
- "PySide2.QtCore.QCommandLineParser.process": [('PySide2.QtCore.QCoreApplication',), ('typing.Sequence[str]',)],
- "PySide2.QtCore.QCommandLineParser.setApplicationDescription": ('str',),
- "PySide2.QtCore.QCommandLineParser.setOptionsAfterPositionalArgumentsMode": ('PySide2.QtCore.QCommandLineParser.OptionsAfterPositionalArgumentsMode',),
- "PySide2.QtCore.QCommandLineParser.setSingleDashWordOptionMode": ('PySide2.QtCore.QCommandLineParser.SingleDashWordOptionMode',),
- "PySide2.QtCore.QCommandLineParser.showHelp": ('int',),
- "PySide2.QtCore.QCommandLineParser.showVersion": (),
- "PySide2.QtCore.QCommandLineParser.unknownOptionNames": (),
- "PySide2.QtCore.QCommandLineParser.value": [('PySide2.QtCore.QCommandLineOption',), ('str',)],
- "PySide2.QtCore.QCommandLineParser.values": [('PySide2.QtCore.QCommandLineOption',), ('str',)],
-# class PySide2.QtCore.QConcatenateTablesProxyModel:
- "PySide2.QtCore.QConcatenateTablesProxyModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QConcatenateTablesProxyModel.addSourceModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCore.QConcatenateTablesProxyModel.canDropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QConcatenateTablesProxyModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QConcatenateTablesProxyModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QConcatenateTablesProxyModel.dropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QConcatenateTablesProxyModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QConcatenateTablesProxyModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtCore.QConcatenateTablesProxyModel.index": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QConcatenateTablesProxyModel.itemData": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QConcatenateTablesProxyModel.mapFromSource": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QConcatenateTablesProxyModel.mapToSource": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QConcatenateTablesProxyModel.mimeData": ('typing.List[int]',),
- "PySide2.QtCore.QConcatenateTablesProxyModel.mimeTypes": (),
- "PySide2.QtCore.QConcatenateTablesProxyModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtCore.QConcatenateTablesProxyModel.removeSourceModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCore.QConcatenateTablesProxyModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QConcatenateTablesProxyModel.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
- "PySide2.QtCore.QConcatenateTablesProxyModel.setItemData": ('PySide2.QtCore.QModelIndex', 'typing.Dict[int, typing.Any]'),
- "PySide2.QtCore.QConcatenateTablesProxyModel.span": ('PySide2.QtCore.QModelIndex',),
-# class PySide2.QtCore.QCoreApplication:
- "PySide2.QtCore.QCoreApplication.__init__": [(), ('typing.Sequence[str]',)],
- "PySide2.QtCore.QCoreApplication.addLibraryPath": ('str',),
- "PySide2.QtCore.QCoreApplication.applicationDirPath": (),
- "PySide2.QtCore.QCoreApplication.applicationFilePath": (),
- "PySide2.QtCore.QCoreApplication.applicationName": (),
- "PySide2.QtCore.QCoreApplication.applicationPid": (),
- "PySide2.QtCore.QCoreApplication.applicationVersion": (),
- "PySide2.QtCore.QCoreApplication.arguments": (),
- "PySide2.QtCore.QCoreApplication.closingDown": (),
- "PySide2.QtCore.QCoreApplication.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QCoreApplication.eventDispatcher": (),
- "PySide2.QtCore.QCoreApplication.exec_": (),
- "PySide2.QtCore.QCoreApplication.exit": ('int',),
- "PySide2.QtCore.QCoreApplication.flush": (),
- "PySide2.QtCore.QCoreApplication.hasPendingEvents": (),
- "PySide2.QtCore.QCoreApplication.installNativeEventFilter": ('PySide2.QtCore.QAbstractNativeEventFilter',),
- "PySide2.QtCore.QCoreApplication.installTranslator": ('PySide2.QtCore.QTranslator',),
- "PySide2.QtCore.QCoreApplication.instance": (),
- "PySide2.QtCore.QCoreApplication.isQuitLockEnabled": (),
- "PySide2.QtCore.QCoreApplication.isSetuidAllowed": (),
- "PySide2.QtCore.QCoreApplication.libraryPaths": (),
- "PySide2.QtCore.QCoreApplication.notify": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtCore.QCoreApplication.organizationDomain": (),
- "PySide2.QtCore.QCoreApplication.organizationName": (),
- "PySide2.QtCore.QCoreApplication.postEvent": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent', 'int'),
- "PySide2.QtCore.QCoreApplication.processEvents": [('PySide2.QtCore.QEventLoop.ProcessEventsFlags',), ('PySide2.QtCore.QEventLoop.ProcessEventsFlags', 'int')],
- "PySide2.QtCore.QCoreApplication.quit": (),
- "PySide2.QtCore.QCoreApplication.removeLibraryPath": ('str',),
- "PySide2.QtCore.QCoreApplication.removeNativeEventFilter": ('PySide2.QtCore.QAbstractNativeEventFilter',),
- "PySide2.QtCore.QCoreApplication.removePostedEvents": ('PySide2.QtCore.QObject', 'int'),
- "PySide2.QtCore.QCoreApplication.removeTranslator": ('PySide2.QtCore.QTranslator',),
- "PySide2.QtCore.QCoreApplication.sendEvent": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtCore.QCoreApplication.sendPostedEvents": ('PySide2.QtCore.QObject', 'int'),
- "PySide2.QtCore.QCoreApplication.setApplicationName": ('str',),
- "PySide2.QtCore.QCoreApplication.setApplicationVersion": ('str',),
- "PySide2.QtCore.QCoreApplication.setAttribute": ('PySide2.QtCore.Qt.ApplicationAttribute', 'bool'),
- "PySide2.QtCore.QCoreApplication.setEventDispatcher": ('PySide2.QtCore.QAbstractEventDispatcher',),
- "PySide2.QtCore.QCoreApplication.setLibraryPaths": ('typing.Sequence[str]',),
- "PySide2.QtCore.QCoreApplication.setOrganizationDomain": ('str',),
- "PySide2.QtCore.QCoreApplication.setOrganizationName": ('str',),
- "PySide2.QtCore.QCoreApplication.setQuitLockEnabled": ('bool',),
- "PySide2.QtCore.QCoreApplication.setSetuidAllowed": ('bool',),
- "PySide2.QtCore.QCoreApplication.shutdown": (),
- "PySide2.QtCore.QCoreApplication.startingUp": (),
- "PySide2.QtCore.QCoreApplication.testAttribute": ('PySide2.QtCore.Qt.ApplicationAttribute',),
- "PySide2.QtCore.QCoreApplication.translate": ('str', 'str', 'str', 'int'),
-# class PySide2.QtCore.QCryptographicHash:
-# class PySide2.QtCore.QCryptographicHash.Algorithm:
- "PySide2.QtCore.QCryptographicHash.__init__": ('PySide2.QtCore.QCryptographicHash.Algorithm',),
- "PySide2.QtCore.QCryptographicHash.addData": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QIODevice',), ('str', 'int')],
- "PySide2.QtCore.QCryptographicHash.hash": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QCryptographicHash.Algorithm'),
- "PySide2.QtCore.QCryptographicHash.hashLength": ('PySide2.QtCore.QCryptographicHash.Algorithm',),
- "PySide2.QtCore.QCryptographicHash.reset": (),
- "PySide2.QtCore.QCryptographicHash.result": (),
-# class PySide2.QtCore.QDataStream:
-# class PySide2.QtCore.QDataStream.ByteOrder:
-# class PySide2.QtCore.QDataStream.FloatingPointPrecision:
-# class PySide2.QtCore.QDataStream.Status:
-# class PySide2.QtCore.QDataStream.Version:
- "PySide2.QtCore.QDataStream.__init__": [(), ('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QIODevice.OpenMode'), ('PySide2.QtCore.QIODevice',)],
- "PySide2.QtCore.QDataStream.__lshift__": [('PySide2.QtCore.QBitArray',), ('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QCborArray',), ('PySide2.QtCore.QCborMap',), ('PySide2.QtCore.QCborValue',), ('PySide2.QtCore.QDate',), ('PySide2.QtCore.QDateTime',), ('PySide2.QtCore.QEasingCurve',), ('PySide2.QtCore.QJsonArray',), ('PySide2.QtCore.QJsonDocument',), ('PySide2.QtCore.QJsonValue',), ('PySide2.QtCore.QLine',), ('PySide2.QtCore.QLineF',), ('PySide2.QtCore.QLocale',), ('PySide2.QtCore.QMargins',), ('PySide2.QtCore.QMarginsF',), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',), ('PySide2.QtCore.QRegExp',), ('PySide2.QtCore.QRegularExpression',), ('PySide2.QtCore.QSize',), ('PySide2.QtCore.QSizeF',), ('PySide2.QtCore.QTime',), ('PySide2.QtCore.QTimeZone',), ('PySide2.QtCore.QUrl',), ('PySide2.QtCore.QUuid',), ('PySide2.QtCore.QVersionNumber',), ('str',)],
- "PySide2.QtCore.QDataStream.__rshift__": [('PySide2.QtCore.QBitArray',), ('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QCborArray',), ('PySide2.QtCore.QCborMap',), ('PySide2.QtCore.QCborValue',), ('PySide2.QtCore.QDate',), ('PySide2.QtCore.QDateTime',), ('PySide2.QtCore.QEasingCurve',), ('PySide2.QtCore.QJsonArray',), ('PySide2.QtCore.QJsonDocument',), ('PySide2.QtCore.QJsonValue',), ('PySide2.QtCore.QLine',), ('PySide2.QtCore.QLineF',), ('PySide2.QtCore.QLocale',), ('PySide2.QtCore.QMargins',), ('PySide2.QtCore.QMarginsF',), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',), ('PySide2.QtCore.QRegExp',), ('PySide2.QtCore.QRegularExpression',), ('PySide2.QtCore.QSize',), ('PySide2.QtCore.QSizeF',), ('PySide2.QtCore.QTime',), ('PySide2.QtCore.QTimeZone',), ('PySide2.QtCore.QUrl',), ('PySide2.QtCore.QUuid',), ('PySide2.QtCore.QVersionNumber',)],
- "PySide2.QtCore.QDataStream.abortTransaction": (),
- "PySide2.QtCore.QDataStream.atEnd": (),
- "PySide2.QtCore.QDataStream.byteOrder": (),
- "PySide2.QtCore.QDataStream.commitTransaction": (),
- "PySide2.QtCore.QDataStream.device": (),
- "PySide2.QtCore.QDataStream.floatingPointPrecision": (),
- "PySide2.QtCore.QDataStream.readBool": (),
- "PySide2.QtCore.QDataStream.readDouble": (),
- "PySide2.QtCore.QDataStream.readFloat": (),
- "PySide2.QtCore.QDataStream.readInt16": (),
- "PySide2.QtCore.QDataStream.readInt32": (),
- "PySide2.QtCore.QDataStream.readInt64": (),
- "PySide2.QtCore.QDataStream.readInt8": (),
- "PySide2.QtCore.QDataStream.readQChar": (),
- "PySide2.QtCore.QDataStream.readQString": (),
- "PySide2.QtCore.QDataStream.readQStringList": (),
- "PySide2.QtCore.QDataStream.readQVariant": (),
- "PySide2.QtCore.QDataStream.readRawData": ('str', 'int'),
- "PySide2.QtCore.QDataStream.readString": (),
- "PySide2.QtCore.QDataStream.readUInt16": (),
- "PySide2.QtCore.QDataStream.readUInt32": (),
- "PySide2.QtCore.QDataStream.readUInt64": (),
- "PySide2.QtCore.QDataStream.readUInt8": (),
- "PySide2.QtCore.QDataStream.resetStatus": (),
- "PySide2.QtCore.QDataStream.rollbackTransaction": (),
- "PySide2.QtCore.QDataStream.setByteOrder": ('PySide2.QtCore.QDataStream.ByteOrder',),
- "PySide2.QtCore.QDataStream.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtCore.QDataStream.setFloatingPointPrecision": ('PySide2.QtCore.QDataStream.FloatingPointPrecision',),
- "PySide2.QtCore.QDataStream.setStatus": ('PySide2.QtCore.QDataStream.Status',),
- "PySide2.QtCore.QDataStream.setVersion": ('int',),
- "PySide2.QtCore.QDataStream.skipRawData": ('int',),
- "PySide2.QtCore.QDataStream.startTransaction": (),
- "PySide2.QtCore.QDataStream.status": (),
- "PySide2.QtCore.QDataStream.unsetDevice": (),
- "PySide2.QtCore.QDataStream.version": (),
- "PySide2.QtCore.QDataStream.writeBool": ('bool',),
- "PySide2.QtCore.QDataStream.writeDouble": ('float',),
- "PySide2.QtCore.QDataStream.writeFloat": ('float',),
- "PySide2.QtCore.QDataStream.writeInt16": ('int',),
- "PySide2.QtCore.QDataStream.writeInt32": ('int',),
- "PySide2.QtCore.QDataStream.writeInt64": ('int',),
- "PySide2.QtCore.QDataStream.writeInt8": ('int',),
- "PySide2.QtCore.QDataStream.writeQChar": ('str',),
- "PySide2.QtCore.QDataStream.writeQString": ('str',),
- "PySide2.QtCore.QDataStream.writeQStringList": ('typing.Sequence[str]',),
- "PySide2.QtCore.QDataStream.writeQVariant": ('typing.Any',),
- "PySide2.QtCore.QDataStream.writeRawData": ('str', 'int'),
- "PySide2.QtCore.QDataStream.writeString": ('str',),
- "PySide2.QtCore.QDataStream.writeUInt16": ('int',),
- "PySide2.QtCore.QDataStream.writeUInt32": ('int',),
- "PySide2.QtCore.QDataStream.writeUInt64": ('int',),
- "PySide2.QtCore.QDataStream.writeUInt8": ('int',),
-# class PySide2.QtCore.QDate:
-# class PySide2.QtCore.QDate.MonthNameType:
- "PySide2.QtCore.QDate.__init__": [(), ('PySide2.QtCore.QDate',), ('int', 'int', 'int'), ('int', 'int', 'int', 'PySide2.QtCore.QCalendar')],
- "PySide2.QtCore.QDate.__copy__": (),
- "PySide2.QtCore.QDate.__reduce__": (),
- "PySide2.QtCore.QDate.__repr__": (),
- "PySide2.QtCore.QDate.addDays": ('int',),
- "PySide2.QtCore.QDate.addMonths": [('int',), ('int', 'PySide2.QtCore.QCalendar')],
- "PySide2.QtCore.QDate.addYears": [('int',), ('int', 'PySide2.QtCore.QCalendar')],
- "PySide2.QtCore.QDate.currentDate": (),
- "PySide2.QtCore.QDate.day": [(), ('PySide2.QtCore.QCalendar',)],
- "PySide2.QtCore.QDate.dayOfWeek": [(), ('PySide2.QtCore.QCalendar',)],
- "PySide2.QtCore.QDate.dayOfYear": [(), ('PySide2.QtCore.QCalendar',)],
- "PySide2.QtCore.QDate.daysInMonth": [(), ('PySide2.QtCore.QCalendar',)],
- "PySide2.QtCore.QDate.daysInYear": [(), ('PySide2.QtCore.QCalendar',)],
- "PySide2.QtCore.QDate.daysTo": ('PySide2.QtCore.QDate',),
- "PySide2.QtCore.QDate.endOfDay": [('PySide2.QtCore.QTimeZone',), ('PySide2.QtCore.Qt.TimeSpec', 'int')],
- "PySide2.QtCore.QDate.fromJulianDay": ('int',),
- "PySide2.QtCore.QDate.fromString": [('str', 'PySide2.QtCore.Qt.DateFormat'), ('str', 'str'), ('str', 'str', 'PySide2.QtCore.QCalendar')],
- "PySide2.QtCore.QDate.getDate": (),
- "PySide2.QtCore.QDate.isLeapYear": ('int',),
- "PySide2.QtCore.QDate.isNull": (),
- "PySide2.QtCore.QDate.isValid": [(), ('int', 'int', 'int')],
- "PySide2.QtCore.QDate.longDayName": ('int', 'PySide2.QtCore.QDate.MonthNameType'),
- "PySide2.QtCore.QDate.longMonthName": ('int', 'PySide2.QtCore.QDate.MonthNameType'),
- "PySide2.QtCore.QDate.month": [(), ('PySide2.QtCore.QCalendar',)],
- "PySide2.QtCore.QDate.setDate": [('int', 'int', 'int'), ('int', 'int', 'int', 'PySide2.QtCore.QCalendar')],
- "PySide2.QtCore.QDate.shortDayName": ('int', 'PySide2.QtCore.QDate.MonthNameType'),
- "PySide2.QtCore.QDate.shortMonthName": ('int', 'PySide2.QtCore.QDate.MonthNameType'),
- "PySide2.QtCore.QDate.startOfDay": [('PySide2.QtCore.QTimeZone',), ('PySide2.QtCore.Qt.TimeSpec', 'int')],
- "PySide2.QtCore.QDate.toJulianDay": (),
- "PySide2.QtCore.QDate.toPython": (),
- "PySide2.QtCore.QDate.toString": [('PySide2.QtCore.Qt.DateFormat',), ('PySide2.QtCore.Qt.DateFormat', 'PySide2.QtCore.QCalendar'), ('str',), ('str', 'PySide2.QtCore.QCalendar')],
- "PySide2.QtCore.QDate.weekNumber": (),
- "PySide2.QtCore.QDate.year": [(), ('PySide2.QtCore.QCalendar',)],
-# class PySide2.QtCore.QDateTime:
-# class PySide2.QtCore.QDateTime.YearRange:
- "PySide2.QtCore.QDateTime.__init__": [(), ('PySide2.QtCore.QDate',), ('PySide2.QtCore.QDate', 'PySide2.QtCore.QTime', 'PySide2.QtCore.QTimeZone'), ('PySide2.QtCore.QDate', 'PySide2.QtCore.QTime', 'PySide2.QtCore.Qt.TimeSpec'), ('PySide2.QtCore.QDate', 'PySide2.QtCore.QTime', 'PySide2.QtCore.Qt.TimeSpec', 'int'), ('PySide2.QtCore.QDateTime',), ('int', 'int', 'int', 'int', 'int', 'int'), ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int')],
- "PySide2.QtCore.QDateTime.__copy__": (),
- "PySide2.QtCore.QDateTime.__reduce__": (),
- "PySide2.QtCore.QDateTime.__repr__": (),
- "PySide2.QtCore.QDateTime.addDays": ('int',),
- "PySide2.QtCore.QDateTime.addMSecs": ('int',),
- "PySide2.QtCore.QDateTime.addMonths": ('int',),
- "PySide2.QtCore.QDateTime.addSecs": ('int',),
- "PySide2.QtCore.QDateTime.addYears": ('int',),
- "PySide2.QtCore.QDateTime.currentDateTime": (),
- "PySide2.QtCore.QDateTime.currentDateTimeUtc": (),
- "PySide2.QtCore.QDateTime.currentMSecsSinceEpoch": (),
- "PySide2.QtCore.QDateTime.currentSecsSinceEpoch": (),
- "PySide2.QtCore.QDateTime.date": (),
- "PySide2.QtCore.QDateTime.daysTo": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QDateTime.fromMSecsSinceEpoch": [('int',), ('int', 'PySide2.QtCore.QTimeZone'), ('int', 'PySide2.QtCore.Qt.TimeSpec', 'int')],
- "PySide2.QtCore.QDateTime.fromSecsSinceEpoch": [('int', 'PySide2.QtCore.QTimeZone'), ('int', 'PySide2.QtCore.Qt.TimeSpec', 'int')],
- "PySide2.QtCore.QDateTime.fromString": [('str', 'PySide2.QtCore.Qt.DateFormat'), ('str', 'str'), ('str', 'str', 'PySide2.QtCore.QCalendar')],
- "PySide2.QtCore.QDateTime.fromTime_t": [('int',), ('int', 'PySide2.QtCore.QTimeZone'), ('int', 'PySide2.QtCore.Qt.TimeSpec', 'int')],
- "PySide2.QtCore.QDateTime.isDaylightTime": (),
- "PySide2.QtCore.QDateTime.isNull": (),
- "PySide2.QtCore.QDateTime.isValid": (),
- "PySide2.QtCore.QDateTime.msecsTo": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QDateTime.offsetFromUtc": (),
- "PySide2.QtCore.QDateTime.secsTo": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QDateTime.setDate": ('PySide2.QtCore.QDate',),
- "PySide2.QtCore.QDateTime.setMSecsSinceEpoch": ('int',),
- "PySide2.QtCore.QDateTime.setOffsetFromUtc": ('int',),
- "PySide2.QtCore.QDateTime.setSecsSinceEpoch": ('int',),
- "PySide2.QtCore.QDateTime.setTime": ('PySide2.QtCore.QTime',),
- "PySide2.QtCore.QDateTime.setTimeSpec": ('PySide2.QtCore.Qt.TimeSpec',),
- "PySide2.QtCore.QDateTime.setTimeZone": ('PySide2.QtCore.QTimeZone',),
- "PySide2.QtCore.QDateTime.setTime_t": ('int',),
- "PySide2.QtCore.QDateTime.setUtcOffset": ('int',),
- "PySide2.QtCore.QDateTime.swap": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QDateTime.time": (),
- "PySide2.QtCore.QDateTime.timeSpec": (),
- "PySide2.QtCore.QDateTime.timeZone": (),
- "PySide2.QtCore.QDateTime.timeZoneAbbreviation": (),
- "PySide2.QtCore.QDateTime.toLocalTime": (),
- "PySide2.QtCore.QDateTime.toMSecsSinceEpoch": (),
- "PySide2.QtCore.QDateTime.toOffsetFromUtc": ('int',),
- "PySide2.QtCore.QDateTime.toPython": (),
- "PySide2.QtCore.QDateTime.toSecsSinceEpoch": (),
- "PySide2.QtCore.QDateTime.toString": [('PySide2.QtCore.Qt.DateFormat',), ('str',)],
- "PySide2.QtCore.QDateTime.toTimeSpec": ('PySide2.QtCore.Qt.TimeSpec',),
- "PySide2.QtCore.QDateTime.toTimeZone": ('PySide2.QtCore.QTimeZone',),
- "PySide2.QtCore.QDateTime.toTime_t": (),
- "PySide2.QtCore.QDateTime.toUTC": (),
- "PySide2.QtCore.QDateTime.utcOffset": (),
-# class PySide2.QtCore.QDeadlineTimer:
-# class PySide2.QtCore.QDeadlineTimer.ForeverConstant:
- "PySide2.QtCore.QDeadlineTimer.__init__": [('PySide2.QtCore.QDeadlineTimer',), ('PySide2.QtCore.QDeadlineTimer.ForeverConstant', 'PySide2.QtCore.Qt.TimerType'), ('PySide2.QtCore.Qt.TimerType',), ('int', 'PySide2.QtCore.Qt.TimerType')],
- "PySide2.QtCore.QDeadlineTimer.__copy__": (),
- "PySide2.QtCore.QDeadlineTimer.__iadd__": ('int',),
- "PySide2.QtCore.QDeadlineTimer.__isub__": ('int',),
- "PySide2.QtCore.QDeadlineTimer._q_data": (),
- "PySide2.QtCore.QDeadlineTimer.addNSecs": ('PySide2.QtCore.QDeadlineTimer', 'int'),
- "PySide2.QtCore.QDeadlineTimer.current": ('PySide2.QtCore.Qt.TimerType',),
- "PySide2.QtCore.QDeadlineTimer.deadline": (),
- "PySide2.QtCore.QDeadlineTimer.deadlineNSecs": (),
- "PySide2.QtCore.QDeadlineTimer.hasExpired": (),
- "PySide2.QtCore.QDeadlineTimer.isForever": (),
- "PySide2.QtCore.QDeadlineTimer.remainingTime": (),
- "PySide2.QtCore.QDeadlineTimer.remainingTimeNSecs": (),
- "PySide2.QtCore.QDeadlineTimer.setDeadline": ('int', 'PySide2.QtCore.Qt.TimerType'),
- "PySide2.QtCore.QDeadlineTimer.setPreciseDeadline": ('int', 'int', 'PySide2.QtCore.Qt.TimerType'),
- "PySide2.QtCore.QDeadlineTimer.setPreciseRemainingTime": ('int', 'int', 'PySide2.QtCore.Qt.TimerType'),
- "PySide2.QtCore.QDeadlineTimer.setRemainingTime": ('int', 'PySide2.QtCore.Qt.TimerType'),
- "PySide2.QtCore.QDeadlineTimer.setTimerType": ('PySide2.QtCore.Qt.TimerType',),
- "PySide2.QtCore.QDeadlineTimer.swap": ('PySide2.QtCore.QDeadlineTimer',),
- "PySide2.QtCore.QDeadlineTimer.timerType": (),
-# class PySide2.QtCore.QDir:
-# class PySide2.QtCore.QDir.Filter:
-# class PySide2.QtCore.QDir.Filters:
-# class PySide2.QtCore.QDir.SortFlag:
-# class PySide2.QtCore.QDir.SortFlags:
- "PySide2.QtCore.QDir.__init__": [('PySide2.QtCore.QDir',), ('str',), ('str', 'str', 'PySide2.QtCore.QDir.SortFlags', 'PySide2.QtCore.QDir.Filters')],
- "PySide2.QtCore.QDir.__copy__": (),
- "PySide2.QtCore.QDir.__reduce__": (),
- "PySide2.QtCore.QDir.absoluteFilePath": ('str',),
- "PySide2.QtCore.QDir.absolutePath": (),
- "PySide2.QtCore.QDir.addResourceSearchPath": ('str',),
- "PySide2.QtCore.QDir.addSearchPath": ('str', 'str'),
- "PySide2.QtCore.QDir.canonicalPath": (),
- "PySide2.QtCore.QDir.cd": ('str',),
- "PySide2.QtCore.QDir.cdUp": (),
- "PySide2.QtCore.QDir.cleanPath": ('str',),
- "PySide2.QtCore.QDir.count": (),
- "PySide2.QtCore.QDir.current": (),
- "PySide2.QtCore.QDir.currentPath": (),
- "PySide2.QtCore.QDir.dirName": (),
- "PySide2.QtCore.QDir.drives": (),
- "PySide2.QtCore.QDir.entryInfoList": [('PySide2.QtCore.QDir.Filters', 'PySide2.QtCore.QDir.SortFlags'), ('typing.Sequence[str]', 'PySide2.QtCore.QDir.Filters', 'PySide2.QtCore.QDir.SortFlags')],
- "PySide2.QtCore.QDir.entryList": [('PySide2.QtCore.QDir.Filters', 'PySide2.QtCore.QDir.SortFlags'), ('typing.Sequence[str]', 'PySide2.QtCore.QDir.Filters', 'PySide2.QtCore.QDir.SortFlags')],
- "PySide2.QtCore.QDir.exists": [(), ('str',)],
- "PySide2.QtCore.QDir.filePath": ('str',),
- "PySide2.QtCore.QDir.filter": (),
- "PySide2.QtCore.QDir.fromNativeSeparators": ('str',),
- "PySide2.QtCore.QDir.home": (),
- "PySide2.QtCore.QDir.homePath": (),
- "PySide2.QtCore.QDir.isAbsolute": (),
- "PySide2.QtCore.QDir.isAbsolutePath": ('str',),
- "PySide2.QtCore.QDir.isEmpty": ('PySide2.QtCore.QDir.Filters',),
- "PySide2.QtCore.QDir.isReadable": (),
- "PySide2.QtCore.QDir.isRelative": (),
- "PySide2.QtCore.QDir.isRelativePath": ('str',),
- "PySide2.QtCore.QDir.isRoot": (),
- "PySide2.QtCore.QDir.listSeparator": (),
- "PySide2.QtCore.QDir.makeAbsolute": (),
- "PySide2.QtCore.QDir.match": [('str', 'str'), ('typing.Sequence[str]', 'str')],
- "PySide2.QtCore.QDir.mkdir": ('str',),
- "PySide2.QtCore.QDir.mkpath": ('str',),
- "PySide2.QtCore.QDir.nameFilters": (),
- "PySide2.QtCore.QDir.nameFiltersFromString": ('str',),
- "PySide2.QtCore.QDir.path": (),
- "PySide2.QtCore.QDir.refresh": (),
- "PySide2.QtCore.QDir.relativeFilePath": ('str',),
- "PySide2.QtCore.QDir.remove": ('str',),
- "PySide2.QtCore.QDir.removeRecursively": (),
- "PySide2.QtCore.QDir.rename": ('str', 'str'),
- "PySide2.QtCore.QDir.rmdir": ('str',),
- "PySide2.QtCore.QDir.rmpath": ('str',),
- "PySide2.QtCore.QDir.root": (),
- "PySide2.QtCore.QDir.rootPath": (),
- "PySide2.QtCore.QDir.searchPaths": ('str',),
- "PySide2.QtCore.QDir.separator": (),
- "PySide2.QtCore.QDir.setCurrent": ('str',),
- "PySide2.QtCore.QDir.setFilter": ('PySide2.QtCore.QDir.Filters',),
- "PySide2.QtCore.QDir.setNameFilters": ('typing.Sequence[str]',),
- "PySide2.QtCore.QDir.setPath": ('str',),
- "PySide2.QtCore.QDir.setSearchPaths": ('str', 'typing.Sequence[str]'),
- "PySide2.QtCore.QDir.setSorting": ('PySide2.QtCore.QDir.SortFlags',),
- "PySide2.QtCore.QDir.sorting": (),
- "PySide2.QtCore.QDir.swap": ('PySide2.QtCore.QDir',),
- "PySide2.QtCore.QDir.temp": (),
- "PySide2.QtCore.QDir.tempPath": (),
- "PySide2.QtCore.QDir.toNativeSeparators": ('str',),
-# class PySide2.QtCore.QDirIterator:
-# class PySide2.QtCore.QDirIterator.IteratorFlag:
-# class PySide2.QtCore.QDirIterator.IteratorFlags:
- "PySide2.QtCore.QDirIterator.__init__": [('PySide2.QtCore.QDir', 'PySide2.QtCore.QDirIterator.IteratorFlags'), ('str', 'PySide2.QtCore.QDir.Filters', 'PySide2.QtCore.QDirIterator.IteratorFlags'), ('str', 'PySide2.QtCore.QDirIterator.IteratorFlags'), ('str', 'typing.Sequence[str]', 'PySide2.QtCore.QDir.Filters', 'PySide2.QtCore.QDirIterator.IteratorFlags')],
- "PySide2.QtCore.QDirIterator.fileInfo": (),
- "PySide2.QtCore.QDirIterator.fileName": (),
- "PySide2.QtCore.QDirIterator.filePath": (),
- "PySide2.QtCore.QDirIterator.hasNext": (),
- "PySide2.QtCore.QDirIterator.path": (),
-# class PySide2.QtCore.QDynamicPropertyChangeEvent:
- "PySide2.QtCore.QDynamicPropertyChangeEvent.__init__": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QDynamicPropertyChangeEvent.propertyName": (),
-# class PySide2.QtCore.QEasingCurve:
-# class PySide2.QtCore.QEasingCurve.Type:
- "PySide2.QtCore.QEasingCurve.__init__": [('PySide2.QtCore.QEasingCurve',), ('PySide2.QtCore.QEasingCurve.Type',)],
- "PySide2.QtCore.QEasingCurve.__copy__": (),
- "PySide2.QtCore.QEasingCurve.addCubicBezierSegment": ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'),
- "PySide2.QtCore.QEasingCurve.addTCBSegment": ('PySide2.QtCore.QPointF', 'float', 'float', 'float'),
- "PySide2.QtCore.QEasingCurve.amplitude": (),
- "PySide2.QtCore.QEasingCurve.customType": (),
- "PySide2.QtCore.QEasingCurve.overshoot": (),
- "PySide2.QtCore.QEasingCurve.period": (),
- "PySide2.QtCore.QEasingCurve.setAmplitude": ('float',),
- "PySide2.QtCore.QEasingCurve.setCustomType": ('object',),
- "PySide2.QtCore.QEasingCurve.setOvershoot": ('float',),
- "PySide2.QtCore.QEasingCurve.setPeriod": ('float',),
- "PySide2.QtCore.QEasingCurve.setType": ('PySide2.QtCore.QEasingCurve.Type',),
- "PySide2.QtCore.QEasingCurve.swap": ('PySide2.QtCore.QEasingCurve',),
- "PySide2.QtCore.QEasingCurve.toCubicSpline": (),
- "PySide2.QtCore.QEasingCurve.type": (),
- "PySide2.QtCore.QEasingCurve.valueForProgress": ('float',),
-# class PySide2.QtCore.QElapsedTimer:
-# class PySide2.QtCore.QElapsedTimer.ClockType:
- "PySide2.QtCore.QElapsedTimer.__init__": [(), ('PySide2.QtCore.QElapsedTimer',)],
- "PySide2.QtCore.QElapsedTimer.__copy__": (),
- "PySide2.QtCore.QElapsedTimer.clockType": (),
- "PySide2.QtCore.QElapsedTimer.elapsed": (),
- "PySide2.QtCore.QElapsedTimer.hasExpired": ('int',),
- "PySide2.QtCore.QElapsedTimer.invalidate": (),
- "PySide2.QtCore.QElapsedTimer.isMonotonic": (),
- "PySide2.QtCore.QElapsedTimer.isValid": (),
- "PySide2.QtCore.QElapsedTimer.msecsSinceReference": (),
- "PySide2.QtCore.QElapsedTimer.msecsTo": ('PySide2.QtCore.QElapsedTimer',),
- "PySide2.QtCore.QElapsedTimer.nsecsElapsed": (),
- "PySide2.QtCore.QElapsedTimer.restart": (),
- "PySide2.QtCore.QElapsedTimer.secsTo": ('PySide2.QtCore.QElapsedTimer',),
- "PySide2.QtCore.QElapsedTimer.start": (),
-# class PySide2.QtCore.QEvent:
-# class PySide2.QtCore.QEvent.Type:
- "PySide2.QtCore.QEvent.__init__": [('PySide2.QtCore.QEvent',), ('PySide2.QtCore.QEvent.Type',)],
- "PySide2.QtCore.QEvent.accept": (),
- "PySide2.QtCore.QEvent.ignore": (),
- "PySide2.QtCore.QEvent.isAccepted": (),
- "PySide2.QtCore.QEvent.registerEventType": ('int',),
- "PySide2.QtCore.QEvent.setAccepted": ('bool',),
- "PySide2.QtCore.QEvent.spontaneous": (),
- "PySide2.QtCore.QEvent.type": (),
-# class PySide2.QtCore.QEventLoop:
-# class PySide2.QtCore.QEventLoop.ProcessEventsFlag:
-# class PySide2.QtCore.QEventLoop.ProcessEventsFlags:
- "PySide2.QtCore.QEventLoop.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QEventLoop.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QEventLoop.exec_": ('PySide2.QtCore.QEventLoop.ProcessEventsFlags',),
- "PySide2.QtCore.QEventLoop.exit": ('int',),
- "PySide2.QtCore.QEventLoop.isRunning": (),
- "PySide2.QtCore.QEventLoop.processEvents": [('PySide2.QtCore.QEventLoop.ProcessEventsFlags',), ('PySide2.QtCore.QEventLoop.ProcessEventsFlags', 'int')],
- "PySide2.QtCore.QEventLoop.quit": (),
- "PySide2.QtCore.QEventLoop.wakeUp": (),
-# class PySide2.QtCore.QEventTransition:
- "PySide2.QtCore.QEventTransition.__init__": [('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.QState'), ('PySide2.QtCore.QState',)],
- "PySide2.QtCore.QEventTransition.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QEventTransition.eventSource": (),
- "PySide2.QtCore.QEventTransition.eventTest": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QEventTransition.eventType": (),
- "PySide2.QtCore.QEventTransition.onTransition": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QEventTransition.setEventSource": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QEventTransition.setEventType": ('PySide2.QtCore.QEvent.Type',),
-# class PySide2.QtCore.QFactoryInterface:
- "PySide2.QtCore.QFactoryInterface.__init__": (),
- "PySide2.QtCore.QFactoryInterface.keys": (),
-# class PySide2.QtCore.QFile:
- "PySide2.QtCore.QFile.__init__": [(), ('PySide2.QtCore.QObject',), ('str',), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QFile.copy": [('str',), ('str', 'str')],
- "PySide2.QtCore.QFile.decodeName": [('PySide2.QtCore.QByteArray',), ('str',)],
- "PySide2.QtCore.QFile.encodeName": ('str',),
- "PySide2.QtCore.QFile.exists": [(), ('str',)],
- "PySide2.QtCore.QFile.fileName": (),
- "PySide2.QtCore.QFile.link": [('str',), ('str', 'str')],
- "PySide2.QtCore.QFile.open": [('PySide2.QtCore.QIODevice.OpenMode',), ('int', 'PySide2.QtCore.QIODevice.OpenMode', 'PySide2.QtCore.QFileDevice.FileHandleFlags')],
- "PySide2.QtCore.QFile.permissions": [(), ('str',)],
- "PySide2.QtCore.QFile.readLink": [(), ('str',)],
- "PySide2.QtCore.QFile.remove": [(), ('str',)],
- "PySide2.QtCore.QFile.rename": [('str',), ('str', 'str')],
- "PySide2.QtCore.QFile.resize": [('int',), ('str', 'int')],
- "PySide2.QtCore.QFile.setFileName": ('str',),
- "PySide2.QtCore.QFile.setPermissions": [('PySide2.QtCore.QFileDevice.Permissions',), ('str', 'PySide2.QtCore.QFileDevice.Permissions')],
- "PySide2.QtCore.QFile.size": (),
- "PySide2.QtCore.QFile.symLinkTarget": [(), ('str',)],
-# class PySide2.QtCore.QFileDevice:
-# class PySide2.QtCore.QFileDevice.FileError:
-# class PySide2.QtCore.QFileDevice.FileHandleFlag:
-# class PySide2.QtCore.QFileDevice.FileHandleFlags:
-# class PySide2.QtCore.QFileDevice.FileTime:
-# class PySide2.QtCore.QFileDevice.MemoryMapFlags:
-# class PySide2.QtCore.QFileDevice.Permission:
-# class PySide2.QtCore.QFileDevice.Permissions:
- "PySide2.QtCore.QFileDevice.__init__": [(), ('PySide2.QtCore.QObject',)],
- "PySide2.QtCore.QFileDevice.atEnd": (),
- "PySide2.QtCore.QFileDevice.close": (),
- "PySide2.QtCore.QFileDevice.error": (),
- "PySide2.QtCore.QFileDevice.fileName": (),
- "PySide2.QtCore.QFileDevice.fileTime": ('PySide2.QtCore.QFileDevice.FileTime',),
- "PySide2.QtCore.QFileDevice.flush": (),
- "PySide2.QtCore.QFileDevice.handle": (),
- "PySide2.QtCore.QFileDevice.isSequential": (),
- "PySide2.QtCore.QFileDevice.map": ('int', 'int', 'PySide2.QtCore.QFileDevice.MemoryMapFlags'),
- "PySide2.QtCore.QFileDevice.permissions": (),
- "PySide2.QtCore.QFileDevice.pos": (),
- "PySide2.QtCore.QFileDevice.readData": ('str', 'int'),
- "PySide2.QtCore.QFileDevice.readLineData": ('str', 'int'),
- "PySide2.QtCore.QFileDevice.resize": ('int',),
- "PySide2.QtCore.QFileDevice.seek": ('int',),
- "PySide2.QtCore.QFileDevice.setFileTime": ('PySide2.QtCore.QDateTime', 'PySide2.QtCore.QFileDevice.FileTime'),
- "PySide2.QtCore.QFileDevice.setPermissions": ('PySide2.QtCore.QFileDevice.Permissions',),
- "PySide2.QtCore.QFileDevice.size": (),
- "PySide2.QtCore.QFileDevice.unmap": ('str',),
- "PySide2.QtCore.QFileDevice.unsetError": (),
- "PySide2.QtCore.QFileDevice.writeData": ('str', 'int'),
-# class PySide2.QtCore.QFileInfo:
- "PySide2.QtCore.QFileInfo.__init__": [(), ('PySide2.QtCore.QDir', 'str'), ('PySide2.QtCore.QFile',), ('PySide2.QtCore.QFileInfo',), ('str',)],
- "PySide2.QtCore.QFileInfo.__copy__": (),
- "PySide2.QtCore.QFileInfo.__reduce__": (),
- "PySide2.QtCore.QFileInfo.absoluteDir": (),
- "PySide2.QtCore.QFileInfo.absoluteFilePath": (),
- "PySide2.QtCore.QFileInfo.absolutePath": (),
- "PySide2.QtCore.QFileInfo.baseName": (),
- "PySide2.QtCore.QFileInfo.birthTime": (),
- "PySide2.QtCore.QFileInfo.bundleName": (),
- "PySide2.QtCore.QFileInfo.caching": (),
- "PySide2.QtCore.QFileInfo.canonicalFilePath": (),
- "PySide2.QtCore.QFileInfo.canonicalPath": (),
- "PySide2.QtCore.QFileInfo.completeBaseName": (),
- "PySide2.QtCore.QFileInfo.completeSuffix": (),
- "PySide2.QtCore.QFileInfo.created": (),
- "PySide2.QtCore.QFileInfo.dir": (),
- "PySide2.QtCore.QFileInfo.exists": [(), ('str',)],
- "PySide2.QtCore.QFileInfo.fileName": (),
- "PySide2.QtCore.QFileInfo.filePath": (),
- "PySide2.QtCore.QFileInfo.group": (),
- "PySide2.QtCore.QFileInfo.groupId": (),
- "PySide2.QtCore.QFileInfo.isAbsolute": (),
- "PySide2.QtCore.QFileInfo.isBundle": (),
- "PySide2.QtCore.QFileInfo.isDir": (),
- "PySide2.QtCore.QFileInfo.isExecutable": (),
- "PySide2.QtCore.QFileInfo.isFile": (),
- "PySide2.QtCore.QFileInfo.isHidden": (),
- "PySide2.QtCore.QFileInfo.isNativePath": (),
- "PySide2.QtCore.QFileInfo.isReadable": (),
- "PySide2.QtCore.QFileInfo.isRelative": (),
- "PySide2.QtCore.QFileInfo.isRoot": (),
- "PySide2.QtCore.QFileInfo.isShortcut": (),
- "PySide2.QtCore.QFileInfo.isSymLink": (),
- "PySide2.QtCore.QFileInfo.isSymbolicLink": (),
- "PySide2.QtCore.QFileInfo.isWritable": (),
- "PySide2.QtCore.QFileInfo.lastModified": (),
- "PySide2.QtCore.QFileInfo.lastRead": (),
- "PySide2.QtCore.QFileInfo.makeAbsolute": (),
- "PySide2.QtCore.QFileInfo.metadataChangeTime": (),
- "PySide2.QtCore.QFileInfo.owner": (),
- "PySide2.QtCore.QFileInfo.ownerId": (),
- "PySide2.QtCore.QFileInfo.path": (),
- "PySide2.QtCore.QFileInfo.readLink": (),
- "PySide2.QtCore.QFileInfo.refresh": (),
- "PySide2.QtCore.QFileInfo.setCaching": ('bool',),
- "PySide2.QtCore.QFileInfo.setFile": [('PySide2.QtCore.QDir', 'str'), ('PySide2.QtCore.QFile',), ('str',)],
- "PySide2.QtCore.QFileInfo.size": (),
- "PySide2.QtCore.QFileInfo.suffix": (),
- "PySide2.QtCore.QFileInfo.swap": ('PySide2.QtCore.QFileInfo',),
- "PySide2.QtCore.QFileInfo.symLinkTarget": (),
-# class PySide2.QtCore.QFileSelector:
- "PySide2.QtCore.QFileSelector.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QFileSelector.allSelectors": (),
- "PySide2.QtCore.QFileSelector.extraSelectors": (),
- "PySide2.QtCore.QFileSelector.select": [('PySide2.QtCore.QUrl',), ('str',)],
- "PySide2.QtCore.QFileSelector.setExtraSelectors": ('typing.Sequence[str]',),
-# class PySide2.QtCore.QFileSystemWatcher:
- "PySide2.QtCore.QFileSystemWatcher.__init__": [('PySide2.QtCore.QObject',), ('typing.Sequence[str]', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QFileSystemWatcher.addPath": ('str',),
- "PySide2.QtCore.QFileSystemWatcher.addPaths": ('typing.Sequence[str]',),
- "PySide2.QtCore.QFileSystemWatcher.directories": (),
- "PySide2.QtCore.QFileSystemWatcher.files": (),
- "PySide2.QtCore.QFileSystemWatcher.removePath": ('str',),
- "PySide2.QtCore.QFileSystemWatcher.removePaths": ('typing.Sequence[str]',),
-# class PySide2.QtCore.QFinalState:
- "PySide2.QtCore.QFinalState.__init__": ('PySide2.QtCore.QState',),
- "PySide2.QtCore.QFinalState.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QFinalState.onEntry": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QFinalState.onExit": ('PySide2.QtCore.QEvent',),
-# class PySide2.QtCore.QGenericArgument:
- "PySide2.QtCore.QGenericArgument.__init__": [('PySide2.QtCore.QGenericArgument',), ('str', 'int')],
- "PySide2.QtCore.QGenericArgument.__copy__": (),
- "PySide2.QtCore.QGenericArgument.data": (),
- "PySide2.QtCore.QGenericArgument.name": (),
-# class PySide2.QtCore.QGenericReturnArgument:
- "PySide2.QtCore.QGenericReturnArgument.__init__": [('PySide2.QtCore.QGenericReturnArgument',), ('str', 'int')],
- "PySide2.QtCore.QGenericReturnArgument.__copy__": (),
-# class PySide2.QtCore.QHistoryState:
-# class PySide2.QtCore.QHistoryState.HistoryType:
- "PySide2.QtCore.QHistoryState.__init__": [('PySide2.QtCore.QHistoryState.HistoryType', 'PySide2.QtCore.QState'), ('PySide2.QtCore.QState',)],
- "PySide2.QtCore.QHistoryState.defaultState": (),
- "PySide2.QtCore.QHistoryState.defaultTransition": (),
- "PySide2.QtCore.QHistoryState.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QHistoryState.historyType": (),
- "PySide2.QtCore.QHistoryState.onEntry": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QHistoryState.onExit": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QHistoryState.setDefaultState": ('PySide2.QtCore.QAbstractState',),
- "PySide2.QtCore.QHistoryState.setDefaultTransition": ('PySide2.QtCore.QAbstractTransition',),
- "PySide2.QtCore.QHistoryState.setHistoryType": ('PySide2.QtCore.QHistoryState.HistoryType',),
-# class PySide2.QtCore.QIODevice:
-# class PySide2.QtCore.QIODevice.OpenMode:
-# class PySide2.QtCore.QIODevice.OpenModeFlag:
- "PySide2.QtCore.QIODevice.__init__": [(), ('PySide2.QtCore.QObject',)],
- "PySide2.QtCore.QIODevice.atEnd": (),
- "PySide2.QtCore.QIODevice.bytesAvailable": (),
- "PySide2.QtCore.QIODevice.bytesToWrite": (),
- "PySide2.QtCore.QIODevice.canReadLine": (),
- "PySide2.QtCore.QIODevice.close": (),
- "PySide2.QtCore.QIODevice.commitTransaction": (),
- "PySide2.QtCore.QIODevice.currentReadChannel": (),
- "PySide2.QtCore.QIODevice.currentWriteChannel": (),
- "PySide2.QtCore.QIODevice.errorString": (),
- "PySide2.QtCore.QIODevice.getChar": ('str',),
- "PySide2.QtCore.QIODevice.isOpen": (),
- "PySide2.QtCore.QIODevice.isReadable": (),
- "PySide2.QtCore.QIODevice.isSequential": (),
- "PySide2.QtCore.QIODevice.isTextModeEnabled": (),
- "PySide2.QtCore.QIODevice.isTransactionStarted": (),
- "PySide2.QtCore.QIODevice.isWritable": (),
- "PySide2.QtCore.QIODevice.open": ('PySide2.QtCore.QIODevice.OpenMode',),
- "PySide2.QtCore.QIODevice.openMode": (),
- "PySide2.QtCore.QIODevice.peek": ('int',),
- "PySide2.QtCore.QIODevice.pos": (),
- "PySide2.QtCore.QIODevice.putChar": ('int',),
- "PySide2.QtCore.QIODevice.read": ('int',),
- "PySide2.QtCore.QIODevice.readAll": (),
- "PySide2.QtCore.QIODevice.readChannelCount": (),
- "PySide2.QtCore.QIODevice.readData": ('str', 'int'),
- "PySide2.QtCore.QIODevice.readLine": ('int',),
- "PySide2.QtCore.QIODevice.readLineData": ('str', 'int'),
- "PySide2.QtCore.QIODevice.reset": (),
- "PySide2.QtCore.QIODevice.rollbackTransaction": (),
- "PySide2.QtCore.QIODevice.seek": ('int',),
- "PySide2.QtCore.QIODevice.setCurrentReadChannel": ('int',),
- "PySide2.QtCore.QIODevice.setCurrentWriteChannel": ('int',),
- "PySide2.QtCore.QIODevice.setErrorString": ('str',),
- "PySide2.QtCore.QIODevice.setOpenMode": ('PySide2.QtCore.QIODevice.OpenMode',),
- "PySide2.QtCore.QIODevice.setTextModeEnabled": ('bool',),
- "PySide2.QtCore.QIODevice.size": (),
- "PySide2.QtCore.QIODevice.skip": ('int',),
- "PySide2.QtCore.QIODevice.startTransaction": (),
- "PySide2.QtCore.QIODevice.ungetChar": ('int',),
- "PySide2.QtCore.QIODevice.waitForBytesWritten": ('int',),
- "PySide2.QtCore.QIODevice.waitForReadyRead": ('int',),
- "PySide2.QtCore.QIODevice.write": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QIODevice.writeChannelCount": (),
- "PySide2.QtCore.QIODevice.writeData": ('str', 'int'),
-# class PySide2.QtCore.QIdentityProxyModel:
- "PySide2.QtCore.QIdentityProxyModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QIdentityProxyModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QIdentityProxyModel.dropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QIdentityProxyModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtCore.QIdentityProxyModel.index": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QIdentityProxyModel.insertColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QIdentityProxyModel.insertRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QIdentityProxyModel.mapFromSource": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QIdentityProxyModel.mapSelectionFromSource": ('PySide2.QtCore.QItemSelection',),
- "PySide2.QtCore.QIdentityProxyModel.mapSelectionToSource": ('PySide2.QtCore.QItemSelection',),
- "PySide2.QtCore.QIdentityProxyModel.mapToSource": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QIdentityProxyModel.match": ('PySide2.QtCore.QModelIndex', 'int', 'typing.Any', 'int', 'PySide2.QtCore.Qt.MatchFlags'),
- "PySide2.QtCore.QIdentityProxyModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtCore.QIdentityProxyModel.removeColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QIdentityProxyModel.removeRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QIdentityProxyModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QIdentityProxyModel.setSourceModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCore.QIdentityProxyModel.sibling": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
-# class PySide2.QtCore.QItemSelection:
- "PySide2.QtCore.QItemSelection.__init__": [(), ('PySide2.QtCore.QItemSelection',), ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex')],
- "PySide2.QtCore.QItemSelection.__add__": ('typing.Sequence[PySide2.QtCore.QItemSelectionRange]',),
- "PySide2.QtCore.QItemSelection.__copy__": (),
- "PySide2.QtCore.QItemSelection.__iadd__": [('PySide2.QtCore.QItemSelectionRange',), ('typing.Sequence[PySide2.QtCore.QItemSelectionRange]',)],
- "PySide2.QtCore.QItemSelection.__lshift__": [('PySide2.QtCore.QItemSelectionRange',), ('typing.Sequence[PySide2.QtCore.QItemSelectionRange]',)],
- "PySide2.QtCore.QItemSelection.append": [('PySide2.QtCore.QItemSelectionRange',), ('typing.Sequence[PySide2.QtCore.QItemSelectionRange]',)],
- "PySide2.QtCore.QItemSelection.at": ('int',),
- "PySide2.QtCore.QItemSelection.back": (),
- "PySide2.QtCore.QItemSelection.clear": (),
- "PySide2.QtCore.QItemSelection.constFirst": (),
- "PySide2.QtCore.QItemSelection.constLast": (),
- "PySide2.QtCore.QItemSelection.contains": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QItemSelection.count": [(), ('PySide2.QtCore.QItemSelectionRange',)],
- "PySide2.QtCore.QItemSelection.detachShared": (),
- "PySide2.QtCore.QItemSelection.empty": (),
- "PySide2.QtCore.QItemSelection.endsWith": ('PySide2.QtCore.QItemSelectionRange',),
- "PySide2.QtCore.QItemSelection.first": (),
- "PySide2.QtCore.QItemSelection.fromSet": ('typing.Set[PySide2.QtCore.QItemSelectionRange]',),
- "PySide2.QtCore.QItemSelection.fromVector": ('typing.List[PySide2.QtCore.QItemSelectionRange]',),
- "PySide2.QtCore.QItemSelection.front": (),
- "PySide2.QtCore.QItemSelection.indexOf": ('PySide2.QtCore.QItemSelectionRange', 'int'),
- "PySide2.QtCore.QItemSelection.indexes": (),
- "PySide2.QtCore.QItemSelection.insert": ('int', 'PySide2.QtCore.QItemSelectionRange'),
- "PySide2.QtCore.QItemSelection.isEmpty": (),
- "PySide2.QtCore.QItemSelection.isSharedWith": ('typing.Sequence[PySide2.QtCore.QItemSelectionRange]',),
- "PySide2.QtCore.QItemSelection.last": (),
- "PySide2.QtCore.QItemSelection.lastIndexOf": ('PySide2.QtCore.QItemSelectionRange', 'int'),
- "PySide2.QtCore.QItemSelection.length": (),
- "PySide2.QtCore.QItemSelection.merge": ('PySide2.QtCore.QItemSelection', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags'),
- "PySide2.QtCore.QItemSelection.mid": ('int', 'int'),
- "PySide2.QtCore.QItemSelection.move": ('int', 'int'),
- "PySide2.QtCore.QItemSelection.pop_back": (),
- "PySide2.QtCore.QItemSelection.pop_front": (),
- "PySide2.QtCore.QItemSelection.prepend": ('PySide2.QtCore.QItemSelectionRange',),
- "PySide2.QtCore.QItemSelection.push_back": ('PySide2.QtCore.QItemSelectionRange',),
- "PySide2.QtCore.QItemSelection.push_front": ('PySide2.QtCore.QItemSelectionRange',),
- "PySide2.QtCore.QItemSelection.removeAll": ('PySide2.QtCore.QItemSelectionRange',),
- "PySide2.QtCore.QItemSelection.removeAt": ('int',),
- "PySide2.QtCore.QItemSelection.removeFirst": (),
- "PySide2.QtCore.QItemSelection.removeLast": (),
- "PySide2.QtCore.QItemSelection.removeOne": ('PySide2.QtCore.QItemSelectionRange',),
- "PySide2.QtCore.QItemSelection.replace": ('int', 'PySide2.QtCore.QItemSelectionRange'),
- "PySide2.QtCore.QItemSelection.reserve": ('int',),
- "PySide2.QtCore.QItemSelection.select": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QItemSelection.setSharable": ('bool',),
- "PySide2.QtCore.QItemSelection.size": (),
- "PySide2.QtCore.QItemSelection.split": ('PySide2.QtCore.QItemSelectionRange', 'PySide2.QtCore.QItemSelectionRange', 'PySide2.QtCore.QItemSelection'),
- "PySide2.QtCore.QItemSelection.startsWith": ('PySide2.QtCore.QItemSelectionRange',),
- "PySide2.QtCore.QItemSelection.swap": [('int', 'int'), ('typing.Sequence[PySide2.QtCore.QItemSelectionRange]',)],
- "PySide2.QtCore.QItemSelection.swapItemsAt": ('int', 'int'),
- "PySide2.QtCore.QItemSelection.takeAt": ('int',),
- "PySide2.QtCore.QItemSelection.takeFirst": (),
- "PySide2.QtCore.QItemSelection.takeLast": (),
- "PySide2.QtCore.QItemSelection.toSet": (),
- "PySide2.QtCore.QItemSelection.toVector": (),
- "PySide2.QtCore.QItemSelection.value": [('int',), ('int', 'PySide2.QtCore.QItemSelectionRange')],
-# class PySide2.QtCore.QItemSelectionModel:
-# class PySide2.QtCore.QItemSelectionModel.SelectionFlag:
-# class PySide2.QtCore.QItemSelectionModel.SelectionFlags:
- "PySide2.QtCore.QItemSelectionModel.__init__": [('PySide2.QtCore.QAbstractItemModel',), ('PySide2.QtCore.QAbstractItemModel', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QItemSelectionModel.clear": (),
- "PySide2.QtCore.QItemSelectionModel.clearCurrentIndex": (),
- "PySide2.QtCore.QItemSelectionModel.clearSelection": (),
- "PySide2.QtCore.QItemSelectionModel.columnIntersectsSelection": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QItemSelectionModel.currentIndex": (),
- "PySide2.QtCore.QItemSelectionModel.emitSelectionChanged": ('PySide2.QtCore.QItemSelection', 'PySide2.QtCore.QItemSelection'),
- "PySide2.QtCore.QItemSelectionModel.hasSelection": (),
- "PySide2.QtCore.QItemSelectionModel.isColumnSelected": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QItemSelectionModel.isRowSelected": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QItemSelectionModel.isSelected": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QItemSelectionModel.model": (),
- "PySide2.QtCore.QItemSelectionModel.reset": (),
- "PySide2.QtCore.QItemSelectionModel.rowIntersectsSelection": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QItemSelectionModel.select": [('PySide2.QtCore.QItemSelection', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags'), ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags')],
- "PySide2.QtCore.QItemSelectionModel.selectedColumns": ('int',),
- "PySide2.QtCore.QItemSelectionModel.selectedIndexes": (),
- "PySide2.QtCore.QItemSelectionModel.selectedRows": ('int',),
- "PySide2.QtCore.QItemSelectionModel.selection": (),
- "PySide2.QtCore.QItemSelectionModel.setCurrentIndex": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags'),
- "PySide2.QtCore.QItemSelectionModel.setModel": ('PySide2.QtCore.QAbstractItemModel',),
-# class PySide2.QtCore.QItemSelectionRange:
- "PySide2.QtCore.QItemSelectionRange.__init__": [(), ('PySide2.QtCore.QItemSelectionRange',), ('PySide2.QtCore.QModelIndex',), ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex')],
- "PySide2.QtCore.QItemSelectionRange.__copy__": (),
- "PySide2.QtCore.QItemSelectionRange.bottom": (),
- "PySide2.QtCore.QItemSelectionRange.bottomRight": (),
- "PySide2.QtCore.QItemSelectionRange.contains": [('PySide2.QtCore.QModelIndex',), ('int', 'int', 'PySide2.QtCore.QModelIndex')],
- "PySide2.QtCore.QItemSelectionRange.height": (),
- "PySide2.QtCore.QItemSelectionRange.indexes": (),
- "PySide2.QtCore.QItemSelectionRange.intersected": ('PySide2.QtCore.QItemSelectionRange',),
- "PySide2.QtCore.QItemSelectionRange.intersects": ('PySide2.QtCore.QItemSelectionRange',),
- "PySide2.QtCore.QItemSelectionRange.isEmpty": (),
- "PySide2.QtCore.QItemSelectionRange.isValid": (),
- "PySide2.QtCore.QItemSelectionRange.left": (),
- "PySide2.QtCore.QItemSelectionRange.model": (),
- "PySide2.QtCore.QItemSelectionRange.parent": (),
- "PySide2.QtCore.QItemSelectionRange.right": (),
- "PySide2.QtCore.QItemSelectionRange.swap": ('PySide2.QtCore.QItemSelectionRange',),
- "PySide2.QtCore.QItemSelectionRange.top": (),
- "PySide2.QtCore.QItemSelectionRange.topLeft": (),
- "PySide2.QtCore.QItemSelectionRange.width": (),
-# class PySide2.QtCore.QJsonArray:
- "PySide2.QtCore.QJsonArray.__init__": [(), ('PySide2.QtCore.QJsonArray',)],
- "PySide2.QtCore.QJsonArray.__add__": ('PySide2.QtCore.QJsonValue',),
- "PySide2.QtCore.QJsonArray.__copy__": (),
- "PySide2.QtCore.QJsonArray.__iadd__": ('PySide2.QtCore.QJsonValue',),
- "PySide2.QtCore.QJsonArray.__lshift__": ('PySide2.QtCore.QJsonValue',),
- "PySide2.QtCore.QJsonArray.append": ('PySide2.QtCore.QJsonValue',),
- "PySide2.QtCore.QJsonArray.at": ('int',),
- "PySide2.QtCore.QJsonArray.contains": ('PySide2.QtCore.QJsonValue',),
- "PySide2.QtCore.QJsonArray.count": (),
- "PySide2.QtCore.QJsonArray.empty": (),
- "PySide2.QtCore.QJsonArray.first": (),
- "PySide2.QtCore.QJsonArray.fromStringList": ('typing.Sequence[str]',),
- "PySide2.QtCore.QJsonArray.fromVariantList": ('typing.Sequence[typing.Any]',),
- "PySide2.QtCore.QJsonArray.insert": ('int', 'PySide2.QtCore.QJsonValue'),
- "PySide2.QtCore.QJsonArray.isEmpty": (),
- "PySide2.QtCore.QJsonArray.last": (),
- "PySide2.QtCore.QJsonArray.pop_back": (),
- "PySide2.QtCore.QJsonArray.pop_front": (),
- "PySide2.QtCore.QJsonArray.prepend": ('PySide2.QtCore.QJsonValue',),
- "PySide2.QtCore.QJsonArray.push_back": ('PySide2.QtCore.QJsonValue',),
- "PySide2.QtCore.QJsonArray.push_front": ('PySide2.QtCore.QJsonValue',),
- "PySide2.QtCore.QJsonArray.removeAt": ('int',),
- "PySide2.QtCore.QJsonArray.removeFirst": (),
- "PySide2.QtCore.QJsonArray.removeLast": (),
- "PySide2.QtCore.QJsonArray.replace": ('int', 'PySide2.QtCore.QJsonValue'),
- "PySide2.QtCore.QJsonArray.size": (),
- "PySide2.QtCore.QJsonArray.swap": ('PySide2.QtCore.QJsonArray',),
- "PySide2.QtCore.QJsonArray.takeAt": ('int',),
- "PySide2.QtCore.QJsonArray.toVariantList": (),
-# class PySide2.QtCore.QJsonDocument:
-# class PySide2.QtCore.QJsonDocument.DataValidation:
-# class PySide2.QtCore.QJsonDocument.JsonFormat:
- "PySide2.QtCore.QJsonDocument.__init__": [(), ('PySide2.QtCore.QJsonArray',), ('PySide2.QtCore.QJsonDocument',), ('typing.Dict[str, PySide2.QtCore.QJsonValue]',)],
- "PySide2.QtCore.QJsonDocument.__copy__": (),
- "PySide2.QtCore.QJsonDocument.array": (),
- "PySide2.QtCore.QJsonDocument.fromBinaryData": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QJsonDocument.DataValidation'),
- "PySide2.QtCore.QJsonDocument.fromJson": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QJsonParseError'),
- "PySide2.QtCore.QJsonDocument.fromRawData": ('str', 'int', 'PySide2.QtCore.QJsonDocument.DataValidation'),
- "PySide2.QtCore.QJsonDocument.fromVariant": ('typing.Any',),
- "PySide2.QtCore.QJsonDocument.isArray": (),
- "PySide2.QtCore.QJsonDocument.isEmpty": (),
- "PySide2.QtCore.QJsonDocument.isNull": (),
- "PySide2.QtCore.QJsonDocument.isObject": (),
- "PySide2.QtCore.QJsonDocument.object": (),
- "PySide2.QtCore.QJsonDocument.rawData": (),
- "PySide2.QtCore.QJsonDocument.setArray": ('PySide2.QtCore.QJsonArray',),
- "PySide2.QtCore.QJsonDocument.setObject": ('typing.Dict[str, PySide2.QtCore.QJsonValue]',),
- "PySide2.QtCore.QJsonDocument.swap": ('PySide2.QtCore.QJsonDocument',),
- "PySide2.QtCore.QJsonDocument.toBinaryData": (),
- "PySide2.QtCore.QJsonDocument.toJson": [(), ('PySide2.QtCore.QJsonDocument.JsonFormat',)],
- "PySide2.QtCore.QJsonDocument.toVariant": (),
-# class PySide2.QtCore.QJsonParseError:
-# class PySide2.QtCore.QJsonParseError.ParseError:
- "PySide2.QtCore.QJsonParseError.__init__": [(), ('PySide2.QtCore.QJsonParseError',)],
- "PySide2.QtCore.QJsonParseError.__copy__": (),
- "PySide2.QtCore.QJsonParseError.errorString": (),
-# class PySide2.QtCore.QJsonValue:
-# class PySide2.QtCore.QJsonValue.Type:
- "PySide2.QtCore.QJsonValue.__init__": [('PySide2.QtCore.QJsonArray',), ('PySide2.QtCore.QJsonValue',), ('PySide2.QtCore.QJsonValue.Type',), ('bool',), ('float',), ('int',), ('str',), ('typing.Dict[str, PySide2.QtCore.QJsonValue]',)],
- "PySide2.QtCore.QJsonValue.__copy__": (),
- "PySide2.QtCore.QJsonValue.fromVariant": ('typing.Any',),
- "PySide2.QtCore.QJsonValue.isArray": (),
- "PySide2.QtCore.QJsonValue.isBool": (),
- "PySide2.QtCore.QJsonValue.isDouble": (),
- "PySide2.QtCore.QJsonValue.isNull": (),
- "PySide2.QtCore.QJsonValue.isObject": (),
- "PySide2.QtCore.QJsonValue.isString": (),
- "PySide2.QtCore.QJsonValue.isUndefined": (),
- "PySide2.QtCore.QJsonValue.swap": ('PySide2.QtCore.QJsonValue',),
- "PySide2.QtCore.QJsonValue.toArray": [(), ('PySide2.QtCore.QJsonArray',)],
- "PySide2.QtCore.QJsonValue.toBool": ('bool',),
- "PySide2.QtCore.QJsonValue.toDouble": ('float',),
- "PySide2.QtCore.QJsonValue.toInt": ('int',),
- "PySide2.QtCore.QJsonValue.toObject": [(), ('typing.Dict[str, PySide2.QtCore.QJsonValue]',)],
- "PySide2.QtCore.QJsonValue.toString": [(), ('str',)],
- "PySide2.QtCore.QJsonValue.toVariant": (),
- "PySide2.QtCore.QJsonValue.type": (),
-# class PySide2.QtCore.QLibraryInfo:
-# class PySide2.QtCore.QLibraryInfo.LibraryLocation:
- "PySide2.QtCore.QLibraryInfo.build": (),
- "PySide2.QtCore.QLibraryInfo.buildDate": (),
- "PySide2.QtCore.QLibraryInfo.isDebugBuild": (),
- "PySide2.QtCore.QLibraryInfo.licensedProducts": (),
- "PySide2.QtCore.QLibraryInfo.licensee": (),
- "PySide2.QtCore.QLibraryInfo.location": ('PySide2.QtCore.QLibraryInfo.LibraryLocation',),
- "PySide2.QtCore.QLibraryInfo.platformPluginArguments": ('str',),
- "PySide2.QtCore.QLibraryInfo.version": (),
-# class PySide2.QtCore.QLine:
- "PySide2.QtCore.QLine.__init__": [(), ('PySide2.QtCore.QLine',), ('PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint'), ('int', 'int', 'int', 'int')],
- "PySide2.QtCore.QLine.__copy__": (),
- "PySide2.QtCore.QLine.__reduce__": (),
- "PySide2.QtCore.QLine.__repr__": (),
- "PySide2.QtCore.QLine.center": (),
- "PySide2.QtCore.QLine.dx": (),
- "PySide2.QtCore.QLine.dy": (),
- "PySide2.QtCore.QLine.isNull": (),
- "PySide2.QtCore.QLine.p1": (),
- "PySide2.QtCore.QLine.p2": (),
- "PySide2.QtCore.QLine.setLine": ('int', 'int', 'int', 'int'),
- "PySide2.QtCore.QLine.setP1": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QLine.setP2": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QLine.setPoints": ('PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint'),
- "PySide2.QtCore.QLine.toTuple": (),
- "PySide2.QtCore.QLine.translate": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtCore.QLine.translated": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtCore.QLine.x1": (),
- "PySide2.QtCore.QLine.x2": (),
- "PySide2.QtCore.QLine.y1": (),
- "PySide2.QtCore.QLine.y2": (),
-# class PySide2.QtCore.QLineF:
-# class PySide2.QtCore.QLineF.IntersectType:
- "PySide2.QtCore.QLineF.__init__": [(), ('PySide2.QtCore.QLine',), ('PySide2.QtCore.QLineF',), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'), ('float', 'float', 'float', 'float')],
- "PySide2.QtCore.QLineF.__copy__": (),
- "PySide2.QtCore.QLineF.__reduce__": (),
- "PySide2.QtCore.QLineF.__repr__": (),
- "PySide2.QtCore.QLineF.angle": [(), ('PySide2.QtCore.QLineF',)],
- "PySide2.QtCore.QLineF.angleTo": ('PySide2.QtCore.QLineF',),
- "PySide2.QtCore.QLineF.center": (),
- "PySide2.QtCore.QLineF.dx": (),
- "PySide2.QtCore.QLineF.dy": (),
- "PySide2.QtCore.QLineF.fromPolar": ('float', 'float'),
- "PySide2.QtCore.QLineF.intersect": ('PySide2.QtCore.QLineF', 'PySide2.QtCore.QPointF'),
- "PySide2.QtCore.QLineF.intersects": ('PySide2.QtCore.QLineF', 'PySide2.QtCore.QPointF'),
- "PySide2.QtCore.QLineF.isNull": (),
- "PySide2.QtCore.QLineF.length": (),
- "PySide2.QtCore.QLineF.normalVector": (),
- "PySide2.QtCore.QLineF.p1": (),
- "PySide2.QtCore.QLineF.p2": (),
- "PySide2.QtCore.QLineF.pointAt": ('float',),
- "PySide2.QtCore.QLineF.setAngle": ('float',),
- "PySide2.QtCore.QLineF.setLength": ('float',),
- "PySide2.QtCore.QLineF.setLine": ('float', 'float', 'float', 'float'),
- "PySide2.QtCore.QLineF.setP1": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QLineF.setP2": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QLineF.setPoints": ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'),
- "PySide2.QtCore.QLineF.toLine": (),
- "PySide2.QtCore.QLineF.toTuple": (),
- "PySide2.QtCore.QLineF.translate": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtCore.QLineF.translated": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtCore.QLineF.unitVector": (),
- "PySide2.QtCore.QLineF.x1": (),
- "PySide2.QtCore.QLineF.x2": (),
- "PySide2.QtCore.QLineF.y1": (),
- "PySide2.QtCore.QLineF.y2": (),
-# class PySide2.QtCore.QLocale:
-# class PySide2.QtCore.QLocale.Country:
-# class PySide2.QtCore.QLocale.CurrencySymbolFormat:
-# class PySide2.QtCore.QLocale.DataSizeFormat:
-# class PySide2.QtCore.QLocale.DataSizeFormats:
-# class PySide2.QtCore.QLocale.FloatingPointPrecisionOption:
-# class PySide2.QtCore.QLocale.FormatType:
-# class PySide2.QtCore.QLocale.Language:
-# class PySide2.QtCore.QLocale.MeasurementSystem:
-# class PySide2.QtCore.QLocale.NumberOption:
-# class PySide2.QtCore.QLocale.NumberOptions:
-# class PySide2.QtCore.QLocale.QuotationStyle:
-# class PySide2.QtCore.QLocale.Script:
- "PySide2.QtCore.QLocale.__init__": [(), ('PySide2.QtCore.QLocale',), ('PySide2.QtCore.QLocale.Language', 'PySide2.QtCore.QLocale.Country'), ('PySide2.QtCore.QLocale.Language', 'PySide2.QtCore.QLocale.Script', 'PySide2.QtCore.QLocale.Country'), ('str',)],
- "PySide2.QtCore.QLocale.__copy__": (),
- "PySide2.QtCore.QLocale.amText": (),
- "PySide2.QtCore.QLocale.bcp47Name": (),
- "PySide2.QtCore.QLocale.c": (),
- "PySide2.QtCore.QLocale.collation": (),
- "PySide2.QtCore.QLocale.countriesForLanguage": ('PySide2.QtCore.QLocale.Language',),
- "PySide2.QtCore.QLocale.country": (),
- "PySide2.QtCore.QLocale.countryToString": ('PySide2.QtCore.QLocale.Country',),
- "PySide2.QtCore.QLocale.createSeparatedList": ('typing.Sequence[str]',),
- "PySide2.QtCore.QLocale.currencySymbol": ('PySide2.QtCore.QLocale.CurrencySymbolFormat',),
- "PySide2.QtCore.QLocale.dateFormat": ('PySide2.QtCore.QLocale.FormatType',),
- "PySide2.QtCore.QLocale.dateTimeFormat": ('PySide2.QtCore.QLocale.FormatType',),
- "PySide2.QtCore.QLocale.dayName": ('int', 'PySide2.QtCore.QLocale.FormatType'),
- "PySide2.QtCore.QLocale.decimalPoint": (),
- "PySide2.QtCore.QLocale.exponential": (),
- "PySide2.QtCore.QLocale.firstDayOfWeek": (),
- "PySide2.QtCore.QLocale.formattedDataSize": ('int', 'int', 'PySide2.QtCore.QLocale.DataSizeFormats'),
- "PySide2.QtCore.QLocale.groupSeparator": (),
- "PySide2.QtCore.QLocale.language": (),
- "PySide2.QtCore.QLocale.languageToString": ('PySide2.QtCore.QLocale.Language',),
- "PySide2.QtCore.QLocale.matchingLocales": ('PySide2.QtCore.QLocale.Language', 'PySide2.QtCore.QLocale.Script', 'PySide2.QtCore.QLocale.Country'),
- "PySide2.QtCore.QLocale.measurementSystem": (),
- "PySide2.QtCore.QLocale.monthName": ('int', 'PySide2.QtCore.QLocale.FormatType'),
- "PySide2.QtCore.QLocale.name": (),
- "PySide2.QtCore.QLocale.nativeCountryName": (),
- "PySide2.QtCore.QLocale.nativeLanguageName": (),
- "PySide2.QtCore.QLocale.negativeSign": (),
- "PySide2.QtCore.QLocale.numberOptions": (),
- "PySide2.QtCore.QLocale.percent": (),
- "PySide2.QtCore.QLocale.pmText": (),
- "PySide2.QtCore.QLocale.positiveSign": (),
- "PySide2.QtCore.QLocale.quoteString": ('str', 'PySide2.QtCore.QLocale.QuotationStyle'),
- "PySide2.QtCore.QLocale.script": (),
- "PySide2.QtCore.QLocale.scriptToString": ('PySide2.QtCore.QLocale.Script',),
- "PySide2.QtCore.QLocale.setDefault": ('PySide2.QtCore.QLocale',),
- "PySide2.QtCore.QLocale.setNumberOptions": ('PySide2.QtCore.QLocale.NumberOptions',),
- "PySide2.QtCore.QLocale.standaloneDayName": ('int', 'PySide2.QtCore.QLocale.FormatType'),
- "PySide2.QtCore.QLocale.standaloneMonthName": ('int', 'PySide2.QtCore.QLocale.FormatType'),
- "PySide2.QtCore.QLocale.swap": ('PySide2.QtCore.QLocale',),
- "PySide2.QtCore.QLocale.system": (),
- "PySide2.QtCore.QLocale.textDirection": (),
- "PySide2.QtCore.QLocale.timeFormat": ('PySide2.QtCore.QLocale.FormatType',),
- "PySide2.QtCore.QLocale.toCurrencyString": [('float', 'str'), ('float', 'str', 'int'), ('int', 'str')],
- "PySide2.QtCore.QLocale.toDate": [('str', 'PySide2.QtCore.QLocale.FormatType'), ('str', 'PySide2.QtCore.QLocale.FormatType', 'PySide2.QtCore.QCalendar'), ('str', 'str'), ('str', 'str', 'PySide2.QtCore.QCalendar')],
- "PySide2.QtCore.QLocale.toDateTime": [('str', 'PySide2.QtCore.QLocale.FormatType'), ('str', 'PySide2.QtCore.QLocale.FormatType', 'PySide2.QtCore.QCalendar'), ('str', 'str'), ('str', 'str', 'PySide2.QtCore.QCalendar')],
- "PySide2.QtCore.QLocale.toDouble": ('str',),
- "PySide2.QtCore.QLocale.toFloat": ('str',),
- "PySide2.QtCore.QLocale.toInt": ('str',),
- "PySide2.QtCore.QLocale.toLong": ('str',),
- "PySide2.QtCore.QLocale.toLongLong": ('str',),
- "PySide2.QtCore.QLocale.toLower": ('str',),
- "PySide2.QtCore.QLocale.toShort": ('str',),
- "PySide2.QtCore.QLocale.toString": [('PySide2.QtCore.QDate', 'PySide2.QtCore.QLocale.FormatType'), ('PySide2.QtCore.QDate', 'PySide2.QtCore.QLocale.FormatType', 'PySide2.QtCore.QCalendar'), ('PySide2.QtCore.QDate', 'str'), ('PySide2.QtCore.QDateTime', 'PySide2.QtCore.QLocale.FormatType'), ('PySide2.QtCore.QDateTime', 'PySide2.QtCore.QLocale.FormatType', 'PySide2.QtCore.QCalendar'), ('PySide2.QtCore.QDateTime', 'str'), ('PySide2.QtCore.QTime', 'PySide2.QtCore.QLocale.FormatType'), ('PySide2.QtCore.QTime', 'str'), ('float', 'int', 'int'), ('int',)],
- "PySide2.QtCore.QLocale.toTime": [('str', 'PySide2.QtCore.QLocale.FormatType'), ('str', 'PySide2.QtCore.QLocale.FormatType', 'PySide2.QtCore.QCalendar'), ('str', 'str'), ('str', 'str', 'PySide2.QtCore.QCalendar')],
- "PySide2.QtCore.QLocale.toUInt": ('str',),
- "PySide2.QtCore.QLocale.toULong": ('str',),
- "PySide2.QtCore.QLocale.toULongLong": ('str',),
- "PySide2.QtCore.QLocale.toUShort": ('str',),
- "PySide2.QtCore.QLocale.toUpper": ('str',),
- "PySide2.QtCore.QLocale.uiLanguages": (),
- "PySide2.QtCore.QLocale.weekdays": (),
- "PySide2.QtCore.QLocale.zeroDigit": (),
-# class PySide2.QtCore.QLockFile:
-# class PySide2.QtCore.QLockFile.LockError:
- "PySide2.QtCore.QLockFile.__init__": ('str',),
- "PySide2.QtCore.QLockFile.error": (),
- "PySide2.QtCore.QLockFile.getLockInfo": (),
- "PySide2.QtCore.QLockFile.isLocked": (),
- "PySide2.QtCore.QLockFile.lock": (),
- "PySide2.QtCore.QLockFile.removeStaleLockFile": (),
- "PySide2.QtCore.QLockFile.setStaleLockTime": ('int',),
- "PySide2.QtCore.QLockFile.staleLockTime": (),
- "PySide2.QtCore.QLockFile.tryLock": ('int',),
- "PySide2.QtCore.QLockFile.unlock": (),
-# class PySide2.QtCore.QMargins:
- "PySide2.QtCore.QMargins.__init__": [(), ('PySide2.QtCore.QMargins',), ('int', 'int', 'int', 'int')],
- "PySide2.QtCore.QMargins.__add__": [('PySide2.QtCore.QMargins',), ('int',)],
- "PySide2.QtCore.QMargins.__copy__": (),
- "PySide2.QtCore.QMargins.__iadd__": [('PySide2.QtCore.QMargins',), ('int',)],
- "PySide2.QtCore.QMargins.__imul__": [('float',), ('int',)],
- "PySide2.QtCore.QMargins.__isub__": [('PySide2.QtCore.QMargins',), ('int',)],
- "PySide2.QtCore.QMargins.__mul__": [('float',), ('int',)],
- "PySide2.QtCore.QMargins.__neg__": (),
- "PySide2.QtCore.QMargins.__pos__": (),
- "PySide2.QtCore.QMargins.__sub__": [('PySide2.QtCore.QMargins',), ('int',)],
- "PySide2.QtCore.QMargins.bottom": (),
- "PySide2.QtCore.QMargins.isNull": (),
- "PySide2.QtCore.QMargins.left": (),
- "PySide2.QtCore.QMargins.right": (),
- "PySide2.QtCore.QMargins.setBottom": ('int',),
- "PySide2.QtCore.QMargins.setLeft": ('int',),
- "PySide2.QtCore.QMargins.setRight": ('int',),
- "PySide2.QtCore.QMargins.setTop": ('int',),
- "PySide2.QtCore.QMargins.top": (),
-# class PySide2.QtCore.QMarginsF:
- "PySide2.QtCore.QMarginsF.__init__": [(), ('PySide2.QtCore.QMargins',), ('PySide2.QtCore.QMarginsF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtCore.QMarginsF.__add__": [('PySide2.QtCore.QMarginsF',), ('float',)],
- "PySide2.QtCore.QMarginsF.__copy__": (),
- "PySide2.QtCore.QMarginsF.__iadd__": [('PySide2.QtCore.QMarginsF',), ('float',)],
- "PySide2.QtCore.QMarginsF.__imul__": ('float',),
- "PySide2.QtCore.QMarginsF.__isub__": [('PySide2.QtCore.QMarginsF',), ('float',)],
- "PySide2.QtCore.QMarginsF.__mul__": ('float',),
- "PySide2.QtCore.QMarginsF.__neg__": (),
- "PySide2.QtCore.QMarginsF.__pos__": (),
- "PySide2.QtCore.QMarginsF.__sub__": [('PySide2.QtCore.QMarginsF',), ('float',)],
- "PySide2.QtCore.QMarginsF.bottom": (),
- "PySide2.QtCore.QMarginsF.isNull": (),
- "PySide2.QtCore.QMarginsF.left": (),
- "PySide2.QtCore.QMarginsF.right": (),
- "PySide2.QtCore.QMarginsF.setBottom": ('float',),
- "PySide2.QtCore.QMarginsF.setLeft": ('float',),
- "PySide2.QtCore.QMarginsF.setRight": ('float',),
- "PySide2.QtCore.QMarginsF.setTop": ('float',),
- "PySide2.QtCore.QMarginsF.toMargins": (),
- "PySide2.QtCore.QMarginsF.top": (),
-# class PySide2.QtCore.QMessageAuthenticationCode:
- "PySide2.QtCore.QMessageAuthenticationCode.__init__": ('PySide2.QtCore.QCryptographicHash.Algorithm', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtCore.QMessageAuthenticationCode.addData": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QIODevice',), ('str', 'int')],
- "PySide2.QtCore.QMessageAuthenticationCode.hash": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray', 'PySide2.QtCore.QCryptographicHash.Algorithm'),
- "PySide2.QtCore.QMessageAuthenticationCode.reset": (),
- "PySide2.QtCore.QMessageAuthenticationCode.result": (),
- "PySide2.QtCore.QMessageAuthenticationCode.setKey": ('PySide2.QtCore.QByteArray',),
-# class PySide2.QtCore.QMessageLogContext:
- "PySide2.QtCore.QMessageLogContext.__init__": [(), ('str', 'int', 'str', 'str')],
-# class PySide2.QtCore.QMetaClassInfo:
- "PySide2.QtCore.QMetaClassInfo.__init__": [(), ('PySide2.QtCore.QMetaClassInfo',)],
- "PySide2.QtCore.QMetaClassInfo.__copy__": (),
- "PySide2.QtCore.QMetaClassInfo.name": (),
- "PySide2.QtCore.QMetaClassInfo.value": (),
-# class PySide2.QtCore.QMetaEnum:
- "PySide2.QtCore.QMetaEnum.__init__": [(), ('PySide2.QtCore.QMetaEnum',)],
- "PySide2.QtCore.QMetaEnum.__copy__": (),
- "PySide2.QtCore.QMetaEnum.enumName": (),
- "PySide2.QtCore.QMetaEnum.isFlag": (),
- "PySide2.QtCore.QMetaEnum.isScoped": (),
- "PySide2.QtCore.QMetaEnum.isValid": (),
- "PySide2.QtCore.QMetaEnum.key": ('int',),
- "PySide2.QtCore.QMetaEnum.keyCount": (),
- "PySide2.QtCore.QMetaEnum.keyToValue": ('str',),
- "PySide2.QtCore.QMetaEnum.keysToValue": ('str',),
- "PySide2.QtCore.QMetaEnum.name": (),
- "PySide2.QtCore.QMetaEnum.scope": (),
- "PySide2.QtCore.QMetaEnum.value": ('int',),
- "PySide2.QtCore.QMetaEnum.valueToKey": ('int',),
- "PySide2.QtCore.QMetaEnum.valueToKeys": ('int',),
-# class PySide2.QtCore.QMetaMethod:
-# class PySide2.QtCore.QMetaMethod.Access:
-# class PySide2.QtCore.QMetaMethod.MethodType:
- "PySide2.QtCore.QMetaMethod.__init__": [(), ('PySide2.QtCore.QMetaMethod',)],
- "PySide2.QtCore.QMetaMethod.__copy__": (),
- "PySide2.QtCore.QMetaMethod.access": (),
- "PySide2.QtCore.QMetaMethod.enclosingMetaObject": (),
- "PySide2.QtCore.QMetaMethod.invoke": [('PySide2.QtCore.QObject', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument'), ('PySide2.QtCore.QObject', 'PySide2.QtCore.QGenericReturnArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument'), ('PySide2.QtCore.QObject', 'PySide2.QtCore.Qt.ConnectionType', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument'), ('PySide2.QtCore.QObject', 'PySide2.QtCore.Qt.ConnectionType', 'PySide2.QtCore.QGenericReturnArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument')],
- "PySide2.QtCore.QMetaMethod.invokeOnGadget": [('int', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument'), ('int', 'PySide2.QtCore.QGenericReturnArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument')],
- "PySide2.QtCore.QMetaMethod.isValid": (),
- "PySide2.QtCore.QMetaMethod.methodIndex": (),
- "PySide2.QtCore.QMetaMethod.methodSignature": (),
- "PySide2.QtCore.QMetaMethod.methodType": (),
- "PySide2.QtCore.QMetaMethod.name": (),
- "PySide2.QtCore.QMetaMethod.parameterCount": (),
- "PySide2.QtCore.QMetaMethod.parameterNames": (),
- "PySide2.QtCore.QMetaMethod.parameterType": ('int',),
- "PySide2.QtCore.QMetaMethod.parameterTypes": (),
- "PySide2.QtCore.QMetaMethod.returnType": (),
- "PySide2.QtCore.QMetaMethod.revision": (),
- "PySide2.QtCore.QMetaMethod.tag": (),
- "PySide2.QtCore.QMetaMethod.typeName": (),
-# class PySide2.QtCore.QMetaObject:
-# class PySide2.QtCore.QMetaObject.Call:
-# class PySide2.QtCore.QMetaObject.Connection:
- "PySide2.QtCore.QMetaObject.Connection.__init__": [(), ('PySide2.QtCore.QMetaObject.Connection',)],
- "PySide2.QtCore.QMetaObject.__init__": (),
- "PySide2.QtCore.QMetaObject.cast": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QMetaObject.checkConnectArgs": [('PySide2.QtCore.QMetaMethod', 'PySide2.QtCore.QMetaMethod'), ('str', 'str')],
- "PySide2.QtCore.QMetaObject.classInfo": ('int',),
- "PySide2.QtCore.QMetaObject.classInfoCount": (),
- "PySide2.QtCore.QMetaObject.classInfoOffset": (),
- "PySide2.QtCore.QMetaObject.className": (),
- "PySide2.QtCore.QMetaObject.connectSlotsByName": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QMetaObject.constructor": ('int',),
- "PySide2.QtCore.QMetaObject.constructorCount": (),
- "PySide2.QtCore.QMetaObject.disconnect": ('PySide2.QtCore.QObject', 'int', 'PySide2.QtCore.QObject', 'int'),
- "PySide2.QtCore.QMetaObject.disconnectOne": ('PySide2.QtCore.QObject', 'int', 'PySide2.QtCore.QObject', 'int'),
- "PySide2.QtCore.QMetaObject.enumerator": ('int',),
- "PySide2.QtCore.QMetaObject.enumeratorCount": (),
- "PySide2.QtCore.QMetaObject.enumeratorOffset": (),
- "PySide2.QtCore.QMetaObject.indexOfClassInfo": ('str',),
- "PySide2.QtCore.QMetaObject.indexOfConstructor": ('str',),
- "PySide2.QtCore.QMetaObject.indexOfEnumerator": ('str',),
- "PySide2.QtCore.QMetaObject.indexOfMethod": ('str',),
- "PySide2.QtCore.QMetaObject.indexOfProperty": ('str',),
- "PySide2.QtCore.QMetaObject.indexOfSignal": ('str',),
- "PySide2.QtCore.QMetaObject.indexOfSlot": ('str',),
- "PySide2.QtCore.QMetaObject.inherits": ('PySide2.QtCore.QMetaObject',),
- "PySide2.QtCore.QMetaObject.invokeMethod": [('PySide2.QtCore.QObject', 'str', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument'), ('PySide2.QtCore.QObject', 'str', 'PySide2.QtCore.QGenericReturnArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument'), ('PySide2.QtCore.QObject', 'str', 'PySide2.QtCore.Qt.ConnectionType', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument'), ('PySide2.QtCore.QObject', 'str', 'PySide2.QtCore.Qt.ConnectionType', 'PySide2.QtCore.QGenericReturnArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument')],
- "PySide2.QtCore.QMetaObject.method": ('int',),
- "PySide2.QtCore.QMetaObject.methodCount": (),
- "PySide2.QtCore.QMetaObject.methodOffset": (),
- "PySide2.QtCore.QMetaObject.newInstance": ('PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument'),
- "PySide2.QtCore.QMetaObject.normalizedSignature": ('str',),
- "PySide2.QtCore.QMetaObject.normalizedType": ('str',),
- "PySide2.QtCore.QMetaObject.property": ('int',),
- "PySide2.QtCore.QMetaObject.propertyCount": (),
- "PySide2.QtCore.QMetaObject.propertyOffset": (),
- "PySide2.QtCore.QMetaObject.superClass": (),
- "PySide2.QtCore.QMetaObject.userProperty": (),
-# class PySide2.QtCore.QMetaProperty:
- "PySide2.QtCore.QMetaProperty.__init__": [(), ('PySide2.QtCore.QMetaProperty',)],
- "PySide2.QtCore.QMetaProperty.__copy__": (),
- "PySide2.QtCore.QMetaProperty.enumerator": (),
- "PySide2.QtCore.QMetaProperty.hasNotifySignal": (),
- "PySide2.QtCore.QMetaProperty.hasStdCppSet": (),
- "PySide2.QtCore.QMetaProperty.isConstant": (),
- "PySide2.QtCore.QMetaProperty.isDesignable": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QMetaProperty.isEditable": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QMetaProperty.isEnumType": (),
- "PySide2.QtCore.QMetaProperty.isFinal": (),
- "PySide2.QtCore.QMetaProperty.isFlagType": (),
- "PySide2.QtCore.QMetaProperty.isReadable": (),
- "PySide2.QtCore.QMetaProperty.isResettable": (),
- "PySide2.QtCore.QMetaProperty.isScriptable": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QMetaProperty.isStored": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QMetaProperty.isUser": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QMetaProperty.isValid": (),
- "PySide2.QtCore.QMetaProperty.isWritable": (),
- "PySide2.QtCore.QMetaProperty.name": (),
- "PySide2.QtCore.QMetaProperty.notifySignal": (),
- "PySide2.QtCore.QMetaProperty.notifySignalIndex": (),
- "PySide2.QtCore.QMetaProperty.propertyIndex": (),
- "PySide2.QtCore.QMetaProperty.read": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QMetaProperty.readOnGadget": ('int',),
- "PySide2.QtCore.QMetaProperty.relativePropertyIndex": (),
- "PySide2.QtCore.QMetaProperty.reset": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QMetaProperty.resetOnGadget": ('int',),
- "PySide2.QtCore.QMetaProperty.revision": (),
- "PySide2.QtCore.QMetaProperty.type": (),
- "PySide2.QtCore.QMetaProperty.typeName": (),
- "PySide2.QtCore.QMetaProperty.userType": (),
- "PySide2.QtCore.QMetaProperty.write": ('PySide2.QtCore.QObject', 'typing.Any'),
- "PySide2.QtCore.QMetaProperty.writeOnGadget": ('int', 'typing.Any'),
-# class PySide2.QtCore.QMimeData:
- "PySide2.QtCore.QMimeData.__init__": (),
- "PySide2.QtCore.QMimeData.clear": (),
- "PySide2.QtCore.QMimeData.colorData": (),
- "PySide2.QtCore.QMimeData.data": ('str',),
- "PySide2.QtCore.QMimeData.formats": (),
- "PySide2.QtCore.QMimeData.hasColor": (),
- "PySide2.QtCore.QMimeData.hasFormat": ('str',),
- "PySide2.QtCore.QMimeData.hasHtml": (),
- "PySide2.QtCore.QMimeData.hasImage": (),
- "PySide2.QtCore.QMimeData.hasText": (),
- "PySide2.QtCore.QMimeData.hasUrls": (),
- "PySide2.QtCore.QMimeData.html": (),
- "PySide2.QtCore.QMimeData.imageData": (),
- "PySide2.QtCore.QMimeData.removeFormat": ('str',),
- "PySide2.QtCore.QMimeData.retrieveData": ('str', 'type'),
- "PySide2.QtCore.QMimeData.setColorData": ('typing.Any',),
- "PySide2.QtCore.QMimeData.setData": ('str', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtCore.QMimeData.setHtml": ('str',),
- "PySide2.QtCore.QMimeData.setImageData": ('typing.Any',),
- "PySide2.QtCore.QMimeData.setText": ('str',),
- "PySide2.QtCore.QMimeData.setUrls": ('typing.Sequence[PySide2.QtCore.QUrl]',),
- "PySide2.QtCore.QMimeData.text": (),
- "PySide2.QtCore.QMimeData.urls": (),
-# class PySide2.QtCore.QMimeDatabase:
-# class PySide2.QtCore.QMimeDatabase.MatchMode:
- "PySide2.QtCore.QMimeDatabase.__init__": (),
- "PySide2.QtCore.QMimeDatabase.allMimeTypes": (),
- "PySide2.QtCore.QMimeDatabase.mimeTypeForData": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QIODevice',)],
- "PySide2.QtCore.QMimeDatabase.mimeTypeForFile": [('PySide2.QtCore.QFileInfo', 'PySide2.QtCore.QMimeDatabase.MatchMode'), ('str', 'PySide2.QtCore.QMimeDatabase.MatchMode')],
- "PySide2.QtCore.QMimeDatabase.mimeTypeForFileNameAndData": [('str', 'PySide2.QtCore.QByteArray'), ('str', 'PySide2.QtCore.QIODevice')],
- "PySide2.QtCore.QMimeDatabase.mimeTypeForName": ('str',),
- "PySide2.QtCore.QMimeDatabase.mimeTypeForUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtCore.QMimeDatabase.mimeTypesForFileName": ('str',),
- "PySide2.QtCore.QMimeDatabase.suffixForFileName": ('str',),
-# class PySide2.QtCore.QMimeType:
- "PySide2.QtCore.QMimeType.__init__": [(), ('PySide2.QtCore.QMimeType',)],
- "PySide2.QtCore.QMimeType.__copy__": (),
- "PySide2.QtCore.QMimeType.aliases": (),
- "PySide2.QtCore.QMimeType.allAncestors": (),
- "PySide2.QtCore.QMimeType.comment": (),
- "PySide2.QtCore.QMimeType.filterString": (),
- "PySide2.QtCore.QMimeType.genericIconName": (),
- "PySide2.QtCore.QMimeType.globPatterns": (),
- "PySide2.QtCore.QMimeType.iconName": (),
- "PySide2.QtCore.QMimeType.inherits": ('str',),
- "PySide2.QtCore.QMimeType.isDefault": (),
- "PySide2.QtCore.QMimeType.isValid": (),
- "PySide2.QtCore.QMimeType.name": (),
- "PySide2.QtCore.QMimeType.parentMimeTypes": (),
- "PySide2.QtCore.QMimeType.preferredSuffix": (),
- "PySide2.QtCore.QMimeType.suffixes": (),
- "PySide2.QtCore.QMimeType.swap": ('PySide2.QtCore.QMimeType',),
-# class PySide2.QtCore.QModelIndex:
- "PySide2.QtCore.QModelIndex.__init__": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtCore.QModelIndex.__copy__": (),
- "PySide2.QtCore.QModelIndex.child": ('int', 'int'),
- "PySide2.QtCore.QModelIndex.column": (),
- "PySide2.QtCore.QModelIndex.data": ('int',),
- "PySide2.QtCore.QModelIndex.flags": (),
- "PySide2.QtCore.QModelIndex.internalId": (),
- "PySide2.QtCore.QModelIndex.internalPointer": (),
- "PySide2.QtCore.QModelIndex.isValid": (),
- "PySide2.QtCore.QModelIndex.model": (),
- "PySide2.QtCore.QModelIndex.parent": (),
- "PySide2.QtCore.QModelIndex.row": (),
- "PySide2.QtCore.QModelIndex.sibling": ('int', 'int'),
- "PySide2.QtCore.QModelIndex.siblingAtColumn": ('int',),
- "PySide2.QtCore.QModelIndex.siblingAtRow": ('int',),
-# class PySide2.QtCore.QMutex:
-# class PySide2.QtCore.QMutex.RecursionMode:
- "PySide2.QtCore.QMutex.__init__": [(), ('PySide2.QtCore.QMutex.RecursionMode',)],
- "PySide2.QtCore.QMutex.isRecursive": (),
- "PySide2.QtCore.QMutex.lock": (),
- "PySide2.QtCore.QMutex.tryLock": [(), ('int',)],
- "PySide2.QtCore.QMutex.try_lock": (),
- "PySide2.QtCore.QMutex.unlock": (),
-# class PySide2.QtCore.QMutexLocker:
- "PySide2.QtCore.QMutexLocker.__init__": [('PySide2.QtCore.QBasicMutex',), ('PySide2.QtCore.QRecursiveMutex',)],
- "PySide2.QtCore.QMutexLocker.__enter__": (),
- "PySide2.QtCore.QMutexLocker.__exit__": ('object', 'object', 'object'),
- "PySide2.QtCore.QMutexLocker.mutex": (),
- "PySide2.QtCore.QMutexLocker.relock": (),
- "PySide2.QtCore.QMutexLocker.unlock": (),
-# class PySide2.QtCore.QObject:
- "PySide2.QtCore.QObject.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QObject.blockSignals": ('bool',),
- "PySide2.QtCore.QObject.childEvent": ('PySide2.QtCore.QChildEvent',),
- "PySide2.QtCore.QObject.children": (),
- "PySide2.QtCore.QObject.connect": [('PySide2.QtCore.QObject', 'PySide2.QtCore.QMetaMethod', 'PySide2.QtCore.QObject', 'PySide2.QtCore.QMetaMethod', 'PySide2.QtCore.Qt.ConnectionType'), ('PySide2.QtCore.QObject', 'str', 'PySide2.QtCore.QObject', 'str', 'PySide2.QtCore.Qt.ConnectionType'), ('PySide2.QtCore.QObject', 'str', 'str', 'PySide2.QtCore.Qt.ConnectionType'), ('PySide2.QtCore.QObject', 'str', 'typing.Callable', 'PySide2.QtCore.Qt.ConnectionType'), ('str', 'PySide2.QtCore.QObject', 'str', 'PySide2.QtCore.Qt.ConnectionType'), ('str', 'typing.Callable', 'PySide2.QtCore.Qt.ConnectionType')],
- "PySide2.QtCore.QObject.connectNotify": ('PySide2.QtCore.QMetaMethod',),
- "PySide2.QtCore.QObject.customEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QObject.deleteLater": (),
- "PySide2.QtCore.QObject.disconnect": [('PySide2.QtCore.QMetaObject.Connection',), ('PySide2.QtCore.QObject', 'PySide2.QtCore.QMetaMethod', 'PySide2.QtCore.QObject', 'PySide2.QtCore.QMetaMethod'), ('PySide2.QtCore.QObject', 'str'), ('PySide2.QtCore.QObject', 'str', 'PySide2.QtCore.QObject', 'str'), ('PySide2.QtCore.QObject', 'str', 'typing.Callable'), ('str', 'PySide2.QtCore.QObject', 'str'), ('str', 'typing.Callable')],
- "PySide2.QtCore.QObject.disconnectNotify": ('PySide2.QtCore.QMetaMethod',),
- "PySide2.QtCore.QObject.dumpObjectInfo": (),
- "PySide2.QtCore.QObject.dumpObjectTree": (),
- "PySide2.QtCore.QObject.dynamicPropertyNames": (),
- "PySide2.QtCore.QObject.emit": ('str', 'None'),
- "PySide2.QtCore.QObject.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QObject.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtCore.QObject.findChild": ('type', 'str'),
- "PySide2.QtCore.QObject.findChildren": [('type', 'PySide2.QtCore.QRegExp'), ('type', 'str')],
- "PySide2.QtCore.QObject.inherits": ('str',),
- "PySide2.QtCore.QObject.installEventFilter": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QObject.isSignalConnected": ('PySide2.QtCore.QMetaMethod',),
- "PySide2.QtCore.QObject.isWidgetType": (),
- "PySide2.QtCore.QObject.isWindowType": (),
- "PySide2.QtCore.QObject.killTimer": ('int',),
- "PySide2.QtCore.QObject.metaObject": (),
- "PySide2.QtCore.QObject.moveToThread": ('PySide2.QtCore.QThread',),
- "PySide2.QtCore.QObject.objectName": (),
- "PySide2.QtCore.QObject.parent": (),
- "PySide2.QtCore.QObject.property": ('str',),
- "PySide2.QtCore.QObject.receivers": ('str',),
- "PySide2.QtCore.QObject.registerUserData": (),
- "PySide2.QtCore.QObject.removeEventFilter": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QObject.sender": (),
- "PySide2.QtCore.QObject.senderSignalIndex": (),
- "PySide2.QtCore.QObject.setObjectName": ('str',),
- "PySide2.QtCore.QObject.setParent": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QObject.setProperty": ('str', 'typing.Any'),
- "PySide2.QtCore.QObject.signalsBlocked": (),
- "PySide2.QtCore.QObject.startTimer": ('int', 'PySide2.QtCore.Qt.TimerType'),
- "PySide2.QtCore.QObject.thread": (),
- "PySide2.QtCore.QObject.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtCore.QObject.tr": ('str', 'str', 'int'),
-# class PySide2.QtCore.QOperatingSystemVersion:
-# class PySide2.QtCore.QOperatingSystemVersion.OSType:
- "PySide2.QtCore.QOperatingSystemVersion.__init__": [('PySide2.QtCore.QOperatingSystemVersion',), ('PySide2.QtCore.QOperatingSystemVersion.OSType', 'int', 'int', 'int')],
- "PySide2.QtCore.QOperatingSystemVersion.__copy__": (),
- "PySide2.QtCore.QOperatingSystemVersion.current": (),
- "PySide2.QtCore.QOperatingSystemVersion.currentType": (),
- "PySide2.QtCore.QOperatingSystemVersion.majorVersion": (),
- "PySide2.QtCore.QOperatingSystemVersion.microVersion": (),
- "PySide2.QtCore.QOperatingSystemVersion.minorVersion": (),
- "PySide2.QtCore.QOperatingSystemVersion.name": (),
- "PySide2.QtCore.QOperatingSystemVersion.segmentCount": (),
- "PySide2.QtCore.QOperatingSystemVersion.type": (),
-# class PySide2.QtCore.QParallelAnimationGroup:
- "PySide2.QtCore.QParallelAnimationGroup.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QParallelAnimationGroup.duration": (),
- "PySide2.QtCore.QParallelAnimationGroup.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QParallelAnimationGroup.updateCurrentTime": ('int',),
- "PySide2.QtCore.QParallelAnimationGroup.updateDirection": ('PySide2.QtCore.QAbstractAnimation.Direction',),
- "PySide2.QtCore.QParallelAnimationGroup.updateState": ('PySide2.QtCore.QAbstractAnimation.State', 'PySide2.QtCore.QAbstractAnimation.State'),
-# class PySide2.QtCore.QPauseAnimation:
- "PySide2.QtCore.QPauseAnimation.__init__": [('PySide2.QtCore.QObject',), ('int', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QPauseAnimation.duration": (),
- "PySide2.QtCore.QPauseAnimation.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QPauseAnimation.setDuration": ('int',),
- "PySide2.QtCore.QPauseAnimation.updateCurrentTime": ('int',),
-# class PySide2.QtCore.QPersistentModelIndex:
- "PySide2.QtCore.QPersistentModelIndex.__init__": [(), ('PySide2.QtCore.QModelIndex',), ('PySide2.QtCore.QPersistentModelIndex',)],
- "PySide2.QtCore.QPersistentModelIndex.__copy__": (),
- "PySide2.QtCore.QPersistentModelIndex.child": ('int', 'int'),
- "PySide2.QtCore.QPersistentModelIndex.column": (),
- "PySide2.QtCore.QPersistentModelIndex.data": ('int',),
- "PySide2.QtCore.QPersistentModelIndex.flags": (),
- "PySide2.QtCore.QPersistentModelIndex.internalId": (),
- "PySide2.QtCore.QPersistentModelIndex.internalPointer": (),
- "PySide2.QtCore.QPersistentModelIndex.isValid": (),
- "PySide2.QtCore.QPersistentModelIndex.model": (),
- "PySide2.QtCore.QPersistentModelIndex.parent": (),
- "PySide2.QtCore.QPersistentModelIndex.row": (),
- "PySide2.QtCore.QPersistentModelIndex.sibling": ('int', 'int'),
- "PySide2.QtCore.QPersistentModelIndex.swap": ('PySide2.QtCore.QPersistentModelIndex',),
-# class PySide2.QtCore.QPluginLoader:
- "PySide2.QtCore.QPluginLoader.__init__": [('PySide2.QtCore.QObject',), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QPluginLoader.errorString": (),
- "PySide2.QtCore.QPluginLoader.fileName": (),
- "PySide2.QtCore.QPluginLoader.instance": (),
- "PySide2.QtCore.QPluginLoader.isLoaded": (),
- "PySide2.QtCore.QPluginLoader.load": (),
- "PySide2.QtCore.QPluginLoader.metaData": (),
- "PySide2.QtCore.QPluginLoader.setFileName": ('str',),
- "PySide2.QtCore.QPluginLoader.staticInstances": (),
- "PySide2.QtCore.QPluginLoader.unload": (),
-# class PySide2.QtCore.QPoint:
- "PySide2.QtCore.QPoint.__init__": [(), ('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtCore.QPoint.__add__": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QPoint.__copy__": (),
- "PySide2.QtCore.QPoint.__iadd__": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QPoint.__imul__": [('float',), ('int',)],
- "PySide2.QtCore.QPoint.__isub__": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QPoint.__mul__": [('float',), ('int',)],
- "PySide2.QtCore.QPoint.__neg__": (),
- "PySide2.QtCore.QPoint.__pos__": (),
- "PySide2.QtCore.QPoint.__reduce__": (),
- "PySide2.QtCore.QPoint.__repr__": (),
- "PySide2.QtCore.QPoint.__sub__": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QPoint.dotProduct": ('PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint'),
- "PySide2.QtCore.QPoint.isNull": (),
- "PySide2.QtCore.QPoint.manhattanLength": (),
- "PySide2.QtCore.QPoint.setX": ('int',),
- "PySide2.QtCore.QPoint.setY": ('int',),
- "PySide2.QtCore.QPoint.toTuple": (),
- "PySide2.QtCore.QPoint.transposed": (),
- "PySide2.QtCore.QPoint.x": (),
- "PySide2.QtCore.QPoint.y": (),
-# class PySide2.QtCore.QPointF:
- "PySide2.QtCore.QPointF.__init__": [(), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtCore.QPointF.__add__": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QPointF.__copy__": (),
- "PySide2.QtCore.QPointF.__iadd__": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QPointF.__imul__": ('float',),
- "PySide2.QtCore.QPointF.__isub__": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QPointF.__mul__": ('float',),
- "PySide2.QtCore.QPointF.__neg__": (),
- "PySide2.QtCore.QPointF.__pos__": (),
- "PySide2.QtCore.QPointF.__reduce__": (),
- "PySide2.QtCore.QPointF.__repr__": (),
- "PySide2.QtCore.QPointF.__sub__": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QPointF.dotProduct": ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'),
- "PySide2.QtCore.QPointF.isNull": (),
- "PySide2.QtCore.QPointF.manhattanLength": (),
- "PySide2.QtCore.QPointF.setX": ('float',),
- "PySide2.QtCore.QPointF.setY": ('float',),
- "PySide2.QtCore.QPointF.toPoint": (),
- "PySide2.QtCore.QPointF.toTuple": (),
- "PySide2.QtCore.QPointF.transposed": (),
- "PySide2.QtCore.QPointF.x": (),
- "PySide2.QtCore.QPointF.y": (),
-# class PySide2.QtCore.QProcess:
-# class PySide2.QtCore.QProcess.ExitStatus:
-# class PySide2.QtCore.QProcess.InputChannelMode:
-# class PySide2.QtCore.QProcess.ProcessChannel:
-# class PySide2.QtCore.QProcess.ProcessChannelMode:
-# class PySide2.QtCore.QProcess.ProcessError:
-# class PySide2.QtCore.QProcess.ProcessState:
- "PySide2.QtCore.QProcess.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QProcess.arguments": (),
- "PySide2.QtCore.QProcess.atEnd": (),
- "PySide2.QtCore.QProcess.bytesAvailable": (),
- "PySide2.QtCore.QProcess.bytesToWrite": (),
- "PySide2.QtCore.QProcess.canReadLine": (),
- "PySide2.QtCore.QProcess.close": (),
- "PySide2.QtCore.QProcess.closeReadChannel": ('PySide2.QtCore.QProcess.ProcessChannel',),
- "PySide2.QtCore.QProcess.closeWriteChannel": (),
- "PySide2.QtCore.QProcess.environment": (),
- "PySide2.QtCore.QProcess.error": (),
- "PySide2.QtCore.QProcess.execute": [('str',), ('str', 'typing.Sequence[str]')],
- "PySide2.QtCore.QProcess.exitCode": (),
- "PySide2.QtCore.QProcess.exitStatus": (),
- "PySide2.QtCore.QProcess.inputChannelMode": (),
- "PySide2.QtCore.QProcess.isSequential": (),
- "PySide2.QtCore.QProcess.kill": (),
- "PySide2.QtCore.QProcess.nullDevice": (),
- "PySide2.QtCore.QProcess.open": ('PySide2.QtCore.QIODevice.OpenMode',),
- "PySide2.QtCore.QProcess.pid": (),
- "PySide2.QtCore.QProcess.processChannelMode": (),
- "PySide2.QtCore.QProcess.processEnvironment": (),
- "PySide2.QtCore.QProcess.processId": (),
- "PySide2.QtCore.QProcess.program": (),
- "PySide2.QtCore.QProcess.readAllStandardError": (),
- "PySide2.QtCore.QProcess.readAllStandardOutput": (),
- "PySide2.QtCore.QProcess.readChannel": (),
- "PySide2.QtCore.QProcess.readData": ('str', 'int'),
- "PySide2.QtCore.QProcess.setArguments": ('typing.Sequence[str]',),
- "PySide2.QtCore.QProcess.setEnvironment": ('typing.Sequence[str]',),
- "PySide2.QtCore.QProcess.setInputChannelMode": ('PySide2.QtCore.QProcess.InputChannelMode',),
- "PySide2.QtCore.QProcess.setProcessChannelMode": ('PySide2.QtCore.QProcess.ProcessChannelMode',),
- "PySide2.QtCore.QProcess.setProcessEnvironment": ('PySide2.QtCore.QProcessEnvironment',),
- "PySide2.QtCore.QProcess.setProcessState": ('PySide2.QtCore.QProcess.ProcessState',),
- "PySide2.QtCore.QProcess.setProgram": ('str',),
- "PySide2.QtCore.QProcess.setReadChannel": ('PySide2.QtCore.QProcess.ProcessChannel',),
- "PySide2.QtCore.QProcess.setStandardErrorFile": ('str', 'PySide2.QtCore.QIODevice.OpenMode'),
- "PySide2.QtCore.QProcess.setStandardInputFile": ('str',),
- "PySide2.QtCore.QProcess.setStandardOutputFile": ('str', 'PySide2.QtCore.QIODevice.OpenMode'),
- "PySide2.QtCore.QProcess.setStandardOutputProcess": ('PySide2.QtCore.QProcess',),
- "PySide2.QtCore.QProcess.setWorkingDirectory": ('str',),
- "PySide2.QtCore.QProcess.setupChildProcess": (),
- "PySide2.QtCore.QProcess.start": [('PySide2.QtCore.QIODevice.OpenMode',), ('str', 'PySide2.QtCore.QIODevice.OpenMode'), ('str', 'typing.Sequence[str]', 'PySide2.QtCore.QIODevice.OpenMode')],
- "PySide2.QtCore.QProcess.startDetached": [(), ('str',), ('str', 'typing.Sequence[str]'), ('str', 'typing.Sequence[str]', 'str')],
- "PySide2.QtCore.QProcess.state": (),
- "PySide2.QtCore.QProcess.systemEnvironment": (),
- "PySide2.QtCore.QProcess.terminate": (),
- "PySide2.QtCore.QProcess.waitForBytesWritten": ('int',),
- "PySide2.QtCore.QProcess.waitForFinished": ('int',),
- "PySide2.QtCore.QProcess.waitForReadyRead": ('int',),
- "PySide2.QtCore.QProcess.waitForStarted": ('int',),
- "PySide2.QtCore.QProcess.workingDirectory": (),
- "PySide2.QtCore.QProcess.writeData": ('str', 'int'),
-# class PySide2.QtCore.QProcessEnvironment:
- "PySide2.QtCore.QProcessEnvironment.__init__": [(), ('PySide2.QtCore.QProcessEnvironment',)],
- "PySide2.QtCore.QProcessEnvironment.__copy__": (),
- "PySide2.QtCore.QProcessEnvironment.clear": (),
- "PySide2.QtCore.QProcessEnvironment.contains": ('str',),
- "PySide2.QtCore.QProcessEnvironment.insert": [('PySide2.QtCore.QProcessEnvironment',), ('str', 'str')],
- "PySide2.QtCore.QProcessEnvironment.isEmpty": (),
- "PySide2.QtCore.QProcessEnvironment.keys": (),
- "PySide2.QtCore.QProcessEnvironment.remove": ('str',),
- "PySide2.QtCore.QProcessEnvironment.swap": ('PySide2.QtCore.QProcessEnvironment',),
- "PySide2.QtCore.QProcessEnvironment.systemEnvironment": (),
- "PySide2.QtCore.QProcessEnvironment.toStringList": (),
- "PySide2.QtCore.QProcessEnvironment.value": ('str', 'str'),
-# class PySide2.QtCore.QPropertyAnimation:
- "PySide2.QtCore.QPropertyAnimation.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtCore.QObject', 'PySide2.QtCore.QByteArray', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QPropertyAnimation.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QPropertyAnimation.propertyName": (),
- "PySide2.QtCore.QPropertyAnimation.setPropertyName": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QPropertyAnimation.setTargetObject": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QPropertyAnimation.targetObject": (),
- "PySide2.QtCore.QPropertyAnimation.updateCurrentValue": ('typing.Any',),
- "PySide2.QtCore.QPropertyAnimation.updateState": ('PySide2.QtCore.QAbstractAnimation.State', 'PySide2.QtCore.QAbstractAnimation.State'),
-# class PySide2.QtCore.QRandomGenerator:
- "PySide2.QtCore.QRandomGenerator.__init__": [('PySide2.QtCore.QRandomGenerator',), ('int',), ('int', 'int')],
- "PySide2.QtCore.QRandomGenerator.bounded": [('float',), ('int',), ('int', 'int')],
- "PySide2.QtCore.QRandomGenerator.discard": ('int',),
- "PySide2.QtCore.QRandomGenerator.generate": (),
- "PySide2.QtCore.QRandomGenerator.generate64": (),
- "PySide2.QtCore.QRandomGenerator.generateDouble": (),
- "PySide2.QtCore.QRandomGenerator.global_": (),
- "PySide2.QtCore.QRandomGenerator.max": (),
- "PySide2.QtCore.QRandomGenerator.min": (),
- "PySide2.QtCore.QRandomGenerator.securelySeeded": (),
- "PySide2.QtCore.QRandomGenerator.seed": ('int',),
- "PySide2.QtCore.QRandomGenerator.system": (),
-# class PySide2.QtCore.QRandomGenerator64:
- "PySide2.QtCore.QRandomGenerator64.__init__": [('PySide2.QtCore.QRandomGenerator',), ('int',), ('int', 'int')],
- "PySide2.QtCore.QRandomGenerator64.discard": ('int',),
- "PySide2.QtCore.QRandomGenerator64.generate": (),
- "PySide2.QtCore.QRandomGenerator64.global_": (),
- "PySide2.QtCore.QRandomGenerator64.max": (),
- "PySide2.QtCore.QRandomGenerator64.min": (),
- "PySide2.QtCore.QRandomGenerator64.securelySeeded": (),
- "PySide2.QtCore.QRandomGenerator64.system": (),
-# class PySide2.QtCore.QReadLocker:
- "PySide2.QtCore.QReadLocker.__init__": ('PySide2.QtCore.QReadWriteLock',),
- "PySide2.QtCore.QReadLocker.__enter__": (),
- "PySide2.QtCore.QReadLocker.__exit__": ('object', 'object', 'object'),
- "PySide2.QtCore.QReadLocker.readWriteLock": (),
- "PySide2.QtCore.QReadLocker.relock": (),
- "PySide2.QtCore.QReadLocker.unlock": (),
-# class PySide2.QtCore.QReadWriteLock:
-# class PySide2.QtCore.QReadWriteLock.RecursionMode:
- "PySide2.QtCore.QReadWriteLock.__init__": ('PySide2.QtCore.QReadWriteLock.RecursionMode',),
- "PySide2.QtCore.QReadWriteLock.lockForRead": (),
- "PySide2.QtCore.QReadWriteLock.lockForWrite": (),
- "PySide2.QtCore.QReadWriteLock.tryLockForRead": [(), ('int',)],
- "PySide2.QtCore.QReadWriteLock.tryLockForWrite": [(), ('int',)],
- "PySide2.QtCore.QReadWriteLock.unlock": (),
-# class PySide2.QtCore.QRect:
- "PySide2.QtCore.QRect.__init__": [(), ('PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint'), ('PySide2.QtCore.QPoint', 'PySide2.QtCore.QSize'), ('PySide2.QtCore.QRect',), ('int', 'int', 'int', 'int')],
- "PySide2.QtCore.QRect.__add__": ('PySide2.QtCore.QMargins',),
- "PySide2.QtCore.QRect.__and__": ('PySide2.QtCore.QRect',),
- "PySide2.QtCore.QRect.__copy__": (),
- "PySide2.QtCore.QRect.__iadd__": ('PySide2.QtCore.QMargins',),
- "PySide2.QtCore.QRect.__iand__": ('PySide2.QtCore.QRect',),
- "PySide2.QtCore.QRect.__ior__": ('PySide2.QtCore.QRect',),
- "PySide2.QtCore.QRect.__isub__": ('PySide2.QtCore.QMargins',),
- "PySide2.QtCore.QRect.__or__": ('PySide2.QtCore.QRect',),
- "PySide2.QtCore.QRect.__reduce__": (),
- "PySide2.QtCore.QRect.__repr__": (),
- "PySide2.QtCore.QRect.__sub__": ('PySide2.QtCore.QMargins',),
- "PySide2.QtCore.QRect.adjust": ('int', 'int', 'int', 'int'),
- "PySide2.QtCore.QRect.adjusted": ('int', 'int', 'int', 'int'),
- "PySide2.QtCore.QRect.bottom": (),
- "PySide2.QtCore.QRect.bottomLeft": (),
- "PySide2.QtCore.QRect.bottomRight": (),
- "PySide2.QtCore.QRect.center": (),
- "PySide2.QtCore.QRect.contains": [('PySide2.QtCore.QPoint', 'bool'), ('PySide2.QtCore.QRect', 'bool'), ('int', 'int'), ('int', 'int', 'bool')],
- "PySide2.QtCore.QRect.getCoords": (),
- "PySide2.QtCore.QRect.getRect": (),
- "PySide2.QtCore.QRect.height": (),
- "PySide2.QtCore.QRect.intersected": ('PySide2.QtCore.QRect',),
- "PySide2.QtCore.QRect.intersects": ('PySide2.QtCore.QRect',),
- "PySide2.QtCore.QRect.isEmpty": (),
- "PySide2.QtCore.QRect.isNull": (),
- "PySide2.QtCore.QRect.isValid": (),
- "PySide2.QtCore.QRect.left": (),
- "PySide2.QtCore.QRect.marginsAdded": ('PySide2.QtCore.QMargins',),
- "PySide2.QtCore.QRect.marginsRemoved": ('PySide2.QtCore.QMargins',),
- "PySide2.QtCore.QRect.moveBottom": ('int',),
- "PySide2.QtCore.QRect.moveBottomLeft": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QRect.moveBottomRight": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QRect.moveCenter": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QRect.moveLeft": ('int',),
- "PySide2.QtCore.QRect.moveRight": ('int',),
- "PySide2.QtCore.QRect.moveTo": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtCore.QRect.moveTop": ('int',),
- "PySide2.QtCore.QRect.moveTopLeft": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QRect.moveTopRight": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QRect.normalized": (),
- "PySide2.QtCore.QRect.right": (),
- "PySide2.QtCore.QRect.setBottom": ('int',),
- "PySide2.QtCore.QRect.setBottomLeft": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QRect.setBottomRight": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QRect.setCoords": ('int', 'int', 'int', 'int'),
- "PySide2.QtCore.QRect.setHeight": ('int',),
- "PySide2.QtCore.QRect.setLeft": ('int',),
- "PySide2.QtCore.QRect.setRect": ('int', 'int', 'int', 'int'),
- "PySide2.QtCore.QRect.setRight": ('int',),
- "PySide2.QtCore.QRect.setSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtCore.QRect.setTop": ('int',),
- "PySide2.QtCore.QRect.setTopLeft": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QRect.setTopRight": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QRect.setWidth": ('int',),
- "PySide2.QtCore.QRect.setX": ('int',),
- "PySide2.QtCore.QRect.setY": ('int',),
- "PySide2.QtCore.QRect.size": (),
- "PySide2.QtCore.QRect.top": (),
- "PySide2.QtCore.QRect.topLeft": (),
- "PySide2.QtCore.QRect.topRight": (),
- "PySide2.QtCore.QRect.translate": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtCore.QRect.translated": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtCore.QRect.transposed": (),
- "PySide2.QtCore.QRect.united": ('PySide2.QtCore.QRect',),
- "PySide2.QtCore.QRect.width": (),
- "PySide2.QtCore.QRect.x": (),
- "PySide2.QtCore.QRect.y": (),
-# class PySide2.QtCore.QRectF:
- "PySide2.QtCore.QRectF.__init__": [(), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QSizeF'), ('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtCore.QRectF.__add__": ('PySide2.QtCore.QMarginsF',),
- "PySide2.QtCore.QRectF.__and__": ('PySide2.QtCore.QRectF',),
- "PySide2.QtCore.QRectF.__copy__": (),
- "PySide2.QtCore.QRectF.__iadd__": ('PySide2.QtCore.QMarginsF',),
- "PySide2.QtCore.QRectF.__iand__": ('PySide2.QtCore.QRectF',),
- "PySide2.QtCore.QRectF.__ior__": ('PySide2.QtCore.QRectF',),
- "PySide2.QtCore.QRectF.__isub__": ('PySide2.QtCore.QMarginsF',),
- "PySide2.QtCore.QRectF.__or__": ('PySide2.QtCore.QRectF',),
- "PySide2.QtCore.QRectF.__reduce__": (),
- "PySide2.QtCore.QRectF.__repr__": (),
- "PySide2.QtCore.QRectF.__sub__": ('PySide2.QtCore.QMarginsF',),
- "PySide2.QtCore.QRectF.adjust": ('float', 'float', 'float', 'float'),
- "PySide2.QtCore.QRectF.adjusted": ('float', 'float', 'float', 'float'),
- "PySide2.QtCore.QRectF.bottom": (),
- "PySide2.QtCore.QRectF.bottomLeft": (),
- "PySide2.QtCore.QRectF.bottomRight": (),
- "PySide2.QtCore.QRectF.center": (),
- "PySide2.QtCore.QRectF.contains": [('PySide2.QtCore.QPointF',), ('PySide2.QtCore.QRectF',), ('float', 'float')],
- "PySide2.QtCore.QRectF.getCoords": (),
- "PySide2.QtCore.QRectF.getRect": (),
- "PySide2.QtCore.QRectF.height": (),
- "PySide2.QtCore.QRectF.intersected": ('PySide2.QtCore.QRectF',),
- "PySide2.QtCore.QRectF.intersects": ('PySide2.QtCore.QRectF',),
- "PySide2.QtCore.QRectF.isEmpty": (),
- "PySide2.QtCore.QRectF.isNull": (),
- "PySide2.QtCore.QRectF.isValid": (),
- "PySide2.QtCore.QRectF.left": (),
- "PySide2.QtCore.QRectF.marginsAdded": ('PySide2.QtCore.QMarginsF',),
- "PySide2.QtCore.QRectF.marginsRemoved": ('PySide2.QtCore.QMarginsF',),
- "PySide2.QtCore.QRectF.moveBottom": ('float',),
- "PySide2.QtCore.QRectF.moveBottomLeft": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QRectF.moveBottomRight": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QRectF.moveCenter": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QRectF.moveLeft": ('float',),
- "PySide2.QtCore.QRectF.moveRight": ('float',),
- "PySide2.QtCore.QRectF.moveTo": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtCore.QRectF.moveTop": ('float',),
- "PySide2.QtCore.QRectF.moveTopLeft": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QRectF.moveTopRight": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QRectF.normalized": (),
- "PySide2.QtCore.QRectF.right": (),
- "PySide2.QtCore.QRectF.setBottom": ('float',),
- "PySide2.QtCore.QRectF.setBottomLeft": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QRectF.setBottomRight": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QRectF.setCoords": ('float', 'float', 'float', 'float'),
- "PySide2.QtCore.QRectF.setHeight": ('float',),
- "PySide2.QtCore.QRectF.setLeft": ('float',),
- "PySide2.QtCore.QRectF.setRect": ('float', 'float', 'float', 'float'),
- "PySide2.QtCore.QRectF.setRight": ('float',),
- "PySide2.QtCore.QRectF.setSize": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtCore.QRectF.setTop": ('float',),
- "PySide2.QtCore.QRectF.setTopLeft": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QRectF.setTopRight": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QRectF.setWidth": ('float',),
- "PySide2.QtCore.QRectF.setX": ('float',),
- "PySide2.QtCore.QRectF.setY": ('float',),
- "PySide2.QtCore.QRectF.size": (),
- "PySide2.QtCore.QRectF.toAlignedRect": (),
- "PySide2.QtCore.QRectF.toRect": (),
- "PySide2.QtCore.QRectF.top": (),
- "PySide2.QtCore.QRectF.topLeft": (),
- "PySide2.QtCore.QRectF.topRight": (),
- "PySide2.QtCore.QRectF.translate": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtCore.QRectF.translated": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtCore.QRectF.transposed": (),
- "PySide2.QtCore.QRectF.united": ('PySide2.QtCore.QRectF',),
- "PySide2.QtCore.QRectF.width": (),
- "PySide2.QtCore.QRectF.x": (),
- "PySide2.QtCore.QRectF.y": (),
-# class PySide2.QtCore.QRecursiveMutex:
- "PySide2.QtCore.QRecursiveMutex.__init__": (),
-# class PySide2.QtCore.QRegExp:
-# class PySide2.QtCore.QRegExp.CaretMode:
-# class PySide2.QtCore.QRegExp.PatternSyntax:
- "PySide2.QtCore.QRegExp.__init__": [(), ('PySide2.QtCore.QRegExp',), ('str', 'PySide2.QtCore.Qt.CaseSensitivity', 'PySide2.QtCore.QRegExp.PatternSyntax')],
- "PySide2.QtCore.QRegExp.__copy__": (),
- "PySide2.QtCore.QRegExp.__reduce__": (),
- "PySide2.QtCore.QRegExp.__repr__": (),
- "PySide2.QtCore.QRegExp.cap": ('int',),
- "PySide2.QtCore.QRegExp.captureCount": (),
- "PySide2.QtCore.QRegExp.capturedTexts": (),
- "PySide2.QtCore.QRegExp.caseSensitivity": (),
- "PySide2.QtCore.QRegExp.errorString": (),
- "PySide2.QtCore.QRegExp.escape": ('str',),
- "PySide2.QtCore.QRegExp.exactMatch": ('str',),
- "PySide2.QtCore.QRegExp.indexIn": ('str', 'int', 'PySide2.QtCore.QRegExp.CaretMode'),
- "PySide2.QtCore.QRegExp.isEmpty": (),
- "PySide2.QtCore.QRegExp.isMinimal": (),
- "PySide2.QtCore.QRegExp.isValid": (),
- "PySide2.QtCore.QRegExp.lastIndexIn": ('str', 'int', 'PySide2.QtCore.QRegExp.CaretMode'),
- "PySide2.QtCore.QRegExp.matchedLength": (),
- "PySide2.QtCore.QRegExp.pattern": (),
- "PySide2.QtCore.QRegExp.patternSyntax": (),
- "PySide2.QtCore.QRegExp.pos": ('int',),
- "PySide2.QtCore.QRegExp.replace": ('str', 'str'),
- "PySide2.QtCore.QRegExp.setCaseSensitivity": ('PySide2.QtCore.Qt.CaseSensitivity',),
- "PySide2.QtCore.QRegExp.setMinimal": ('bool',),
- "PySide2.QtCore.QRegExp.setPattern": ('str',),
- "PySide2.QtCore.QRegExp.setPatternSyntax": ('PySide2.QtCore.QRegExp.PatternSyntax',),
- "PySide2.QtCore.QRegExp.swap": ('PySide2.QtCore.QRegExp',),
-# class PySide2.QtCore.QRegularExpression:
-# class PySide2.QtCore.QRegularExpression.MatchOption:
-# class PySide2.QtCore.QRegularExpression.MatchOptions:
-# class PySide2.QtCore.QRegularExpression.MatchType:
-# class PySide2.QtCore.QRegularExpression.PatternOption:
-# class PySide2.QtCore.QRegularExpression.PatternOptions:
- "PySide2.QtCore.QRegularExpression.__init__": [(), ('PySide2.QtCore.QRegularExpression',), ('str', 'PySide2.QtCore.QRegularExpression.PatternOptions')],
- "PySide2.QtCore.QRegularExpression.__copy__": (),
- "PySide2.QtCore.QRegularExpression.anchoredPattern": ('str',),
- "PySide2.QtCore.QRegularExpression.captureCount": (),
- "PySide2.QtCore.QRegularExpression.errorString": (),
- "PySide2.QtCore.QRegularExpression.escape": ('str',),
- "PySide2.QtCore.QRegularExpression.globalMatch": ('str', 'int', 'PySide2.QtCore.QRegularExpression.MatchType', 'PySide2.QtCore.QRegularExpression.MatchOptions'),
- "PySide2.QtCore.QRegularExpression.isValid": (),
- "PySide2.QtCore.QRegularExpression.match": ('str', 'int', 'PySide2.QtCore.QRegularExpression.MatchType', 'PySide2.QtCore.QRegularExpression.MatchOptions'),
- "PySide2.QtCore.QRegularExpression.namedCaptureGroups": (),
- "PySide2.QtCore.QRegularExpression.optimize": (),
- "PySide2.QtCore.QRegularExpression.pattern": (),
- "PySide2.QtCore.QRegularExpression.patternErrorOffset": (),
- "PySide2.QtCore.QRegularExpression.patternOptions": (),
- "PySide2.QtCore.QRegularExpression.setPattern": ('str',),
- "PySide2.QtCore.QRegularExpression.setPatternOptions": ('PySide2.QtCore.QRegularExpression.PatternOptions',),
- "PySide2.QtCore.QRegularExpression.swap": ('PySide2.QtCore.QRegularExpression',),
- "PySide2.QtCore.QRegularExpression.wildcardToRegularExpression": ('str',),
-# class PySide2.QtCore.QRegularExpressionMatch:
- "PySide2.QtCore.QRegularExpressionMatch.__init__": [(), ('PySide2.QtCore.QRegularExpressionMatch',)],
- "PySide2.QtCore.QRegularExpressionMatch.__copy__": (),
- "PySide2.QtCore.QRegularExpressionMatch.captured": [('int',), ('str',)],
- "PySide2.QtCore.QRegularExpressionMatch.capturedEnd": [('int',), ('str',)],
- "PySide2.QtCore.QRegularExpressionMatch.capturedLength": [('int',), ('str',)],
- "PySide2.QtCore.QRegularExpressionMatch.capturedRef": [('int',), ('str',)],
- "PySide2.QtCore.QRegularExpressionMatch.capturedStart": [('int',), ('str',)],
- "PySide2.QtCore.QRegularExpressionMatch.capturedTexts": (),
- "PySide2.QtCore.QRegularExpressionMatch.hasMatch": (),
- "PySide2.QtCore.QRegularExpressionMatch.hasPartialMatch": (),
- "PySide2.QtCore.QRegularExpressionMatch.isValid": (),
- "PySide2.QtCore.QRegularExpressionMatch.lastCapturedIndex": (),
- "PySide2.QtCore.QRegularExpressionMatch.matchOptions": (),
- "PySide2.QtCore.QRegularExpressionMatch.matchType": (),
- "PySide2.QtCore.QRegularExpressionMatch.regularExpression": (),
- "PySide2.QtCore.QRegularExpressionMatch.swap": ('PySide2.QtCore.QRegularExpressionMatch',),
-# class PySide2.QtCore.QRegularExpressionMatchIterator:
- "PySide2.QtCore.QRegularExpressionMatchIterator.__init__": [(), ('PySide2.QtCore.QRegularExpressionMatchIterator',)],
- "PySide2.QtCore.QRegularExpressionMatchIterator.__copy__": (),
- "PySide2.QtCore.QRegularExpressionMatchIterator.hasNext": (),
- "PySide2.QtCore.QRegularExpressionMatchIterator.isValid": (),
- "PySide2.QtCore.QRegularExpressionMatchIterator.matchOptions": (),
- "PySide2.QtCore.QRegularExpressionMatchIterator.matchType": (),
- "PySide2.QtCore.QRegularExpressionMatchIterator.peekNext": (),
- "PySide2.QtCore.QRegularExpressionMatchIterator.regularExpression": (),
- "PySide2.QtCore.QRegularExpressionMatchIterator.swap": ('PySide2.QtCore.QRegularExpressionMatchIterator',),
-# class PySide2.QtCore.QResource:
-# class PySide2.QtCore.QResource.Compression:
- "PySide2.QtCore.QResource.__init__": ('str', 'PySide2.QtCore.QLocale'),
- "PySide2.QtCore.QResource.absoluteFilePath": (),
- "PySide2.QtCore.QResource.addSearchPath": ('str',),
- "PySide2.QtCore.QResource.children": (),
- "PySide2.QtCore.QResource.compressionAlgorithm": (),
- "PySide2.QtCore.QResource.data": (),
- "PySide2.QtCore.QResource.fileName": (),
- "PySide2.QtCore.QResource.isCompressed": (),
- "PySide2.QtCore.QResource.isDir": (),
- "PySide2.QtCore.QResource.isFile": (),
- "PySide2.QtCore.QResource.isValid": (),
- "PySide2.QtCore.QResource.lastModified": (),
- "PySide2.QtCore.QResource.locale": (),
- "PySide2.QtCore.QResource.registerResource": ('str', 'str'),
- "PySide2.QtCore.QResource.registerResourceData": ('str', 'str'),
- "PySide2.QtCore.QResource.searchPaths": (),
- "PySide2.QtCore.QResource.setFileName": ('str',),
- "PySide2.QtCore.QResource.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtCore.QResource.size": (),
- "PySide2.QtCore.QResource.unregisterResource": ('str', 'str'),
- "PySide2.QtCore.QResource.unregisterResourceData": ('str', 'str'),
-# class PySide2.QtCore.QRunnable:
- "PySide2.QtCore.QRunnable.__init__": (),
- "PySide2.QtCore.QRunnable.autoDelete": (),
- "PySide2.QtCore.QRunnable.run": (),
- "PySide2.QtCore.QRunnable.setAutoDelete": ('bool',),
-# class PySide2.QtCore.QSaveFile:
- "PySide2.QtCore.QSaveFile.__init__": [('PySide2.QtCore.QObject',), ('str',), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QSaveFile.cancelWriting": (),
- "PySide2.QtCore.QSaveFile.close": (),
- "PySide2.QtCore.QSaveFile.commit": (),
- "PySide2.QtCore.QSaveFile.directWriteFallback": (),
- "PySide2.QtCore.QSaveFile.fileName": (),
- "PySide2.QtCore.QSaveFile.open": ('PySide2.QtCore.QIODevice.OpenMode',),
- "PySide2.QtCore.QSaveFile.setDirectWriteFallback": ('bool',),
- "PySide2.QtCore.QSaveFile.setFileName": ('str',),
- "PySide2.QtCore.QSaveFile.writeData": ('str', 'int'),
-# class PySide2.QtCore.QSemaphore:
- "PySide2.QtCore.QSemaphore.__init__": ('int',),
- "PySide2.QtCore.QSemaphore.acquire": ('int',),
- "PySide2.QtCore.QSemaphore.available": (),
- "PySide2.QtCore.QSemaphore.release": ('int',),
- "PySide2.QtCore.QSemaphore.tryAcquire": [('int',), ('int', 'int')],
-# class PySide2.QtCore.QSemaphoreReleaser:
- "PySide2.QtCore.QSemaphoreReleaser.__init__": [(), ('PySide2.QtCore.QSemaphore', 'int')],
- "PySide2.QtCore.QSemaphoreReleaser.cancel": (),
- "PySide2.QtCore.QSemaphoreReleaser.semaphore": (),
- "PySide2.QtCore.QSemaphoreReleaser.swap": ('PySide2.QtCore.QSemaphoreReleaser',),
-# class PySide2.QtCore.QSequentialAnimationGroup:
- "PySide2.QtCore.QSequentialAnimationGroup.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QSequentialAnimationGroup.addPause": ('int',),
- "PySide2.QtCore.QSequentialAnimationGroup.currentAnimation": (),
- "PySide2.QtCore.QSequentialAnimationGroup.duration": (),
- "PySide2.QtCore.QSequentialAnimationGroup.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QSequentialAnimationGroup.insertPause": ('int', 'int'),
- "PySide2.QtCore.QSequentialAnimationGroup.updateCurrentTime": ('int',),
- "PySide2.QtCore.QSequentialAnimationGroup.updateDirection": ('PySide2.QtCore.QAbstractAnimation.Direction',),
- "PySide2.QtCore.QSequentialAnimationGroup.updateState": ('PySide2.QtCore.QAbstractAnimation.State', 'PySide2.QtCore.QAbstractAnimation.State'),
-# class PySide2.QtCore.QSettings:
-# class PySide2.QtCore.QSettings.Format:
-# class PySide2.QtCore.QSettings.Scope:
-# class PySide2.QtCore.QSettings.Status:
- "PySide2.QtCore.QSettings.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtCore.QSettings.Format', 'PySide2.QtCore.QSettings.Scope', 'str', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QSettings.Scope', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QSettings.Scope', 'str', 'str', 'PySide2.QtCore.QObject'), ('str', 'PySide2.QtCore.QSettings.Format', 'PySide2.QtCore.QObject'), ('str', 'str', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QSettings.allKeys": (),
- "PySide2.QtCore.QSettings.applicationName": (),
- "PySide2.QtCore.QSettings.beginGroup": ('str',),
- "PySide2.QtCore.QSettings.beginReadArray": ('str',),
- "PySide2.QtCore.QSettings.beginWriteArray": ('str', 'int'),
- "PySide2.QtCore.QSettings.childGroups": (),
- "PySide2.QtCore.QSettings.childKeys": (),
- "PySide2.QtCore.QSettings.clear": (),
- "PySide2.QtCore.QSettings.contains": ('str',),
- "PySide2.QtCore.QSettings.defaultFormat": (),
- "PySide2.QtCore.QSettings.endArray": (),
- "PySide2.QtCore.QSettings.endGroup": (),
- "PySide2.QtCore.QSettings.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QSettings.fallbacksEnabled": (),
- "PySide2.QtCore.QSettings.fileName": (),
- "PySide2.QtCore.QSettings.format": (),
- "PySide2.QtCore.QSettings.group": (),
- "PySide2.QtCore.QSettings.iniCodec": (),
- "PySide2.QtCore.QSettings.isAtomicSyncRequired": (),
- "PySide2.QtCore.QSettings.isWritable": (),
- "PySide2.QtCore.QSettings.organizationName": (),
- "PySide2.QtCore.QSettings.remove": ('str',),
- "PySide2.QtCore.QSettings.scope": (),
- "PySide2.QtCore.QSettings.setArrayIndex": ('int',),
- "PySide2.QtCore.QSettings.setAtomicSyncRequired": ('bool',),
- "PySide2.QtCore.QSettings.setDefaultFormat": ('PySide2.QtCore.QSettings.Format',),
- "PySide2.QtCore.QSettings.setFallbacksEnabled": ('bool',),
- "PySide2.QtCore.QSettings.setIniCodec": [('PySide2.QtCore.QTextCodec',), ('str',)],
- "PySide2.QtCore.QSettings.setPath": ('PySide2.QtCore.QSettings.Format', 'PySide2.QtCore.QSettings.Scope', 'str'),
- "PySide2.QtCore.QSettings.setValue": ('str', 'typing.Any'),
- "PySide2.QtCore.QSettings.status": (),
- "PySide2.QtCore.QSettings.sync": (),
- "PySide2.QtCore.QSettings.value": ('str', 'typing.Any', 'object'),
-# class PySide2.QtCore.QSignalBlocker:
- "PySide2.QtCore.QSignalBlocker.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QSignalBlocker.reblock": (),
- "PySide2.QtCore.QSignalBlocker.unblock": (),
-# class PySide2.QtCore.QSignalMapper:
- "PySide2.QtCore.QSignalMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QSignalMapper.map": [(), ('PySide2.QtCore.QObject',)],
- "PySide2.QtCore.QSignalMapper.mapping": [('PySide2.QtCore.QObject',), ('int',), ('str',)],
- "PySide2.QtCore.QSignalMapper.removeMappings": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QSignalMapper.setMapping": [('PySide2.QtCore.QObject', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QObject', 'int'), ('PySide2.QtCore.QObject', 'str')],
-# class PySide2.QtCore.QSignalTransition:
- "PySide2.QtCore.QSignalTransition.__init__": [('PySide2.QtCore.QObject', 'str', 'PySide2.QtCore.QState'), ('PySide2.QtCore.QState',), ('object', 'PySide2.QtCore.QState')],
- "PySide2.QtCore.QSignalTransition.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QSignalTransition.eventTest": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QSignalTransition.onTransition": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QSignalTransition.senderObject": (),
- "PySide2.QtCore.QSignalTransition.setSenderObject": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QSignalTransition.setSignal": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QSignalTransition.signal": (),
-# class PySide2.QtCore.QSize:
- "PySide2.QtCore.QSize.__init__": [(), ('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtCore.QSize.__add__": ('PySide2.QtCore.QSize',),
- "PySide2.QtCore.QSize.__copy__": (),
- "PySide2.QtCore.QSize.__iadd__": ('PySide2.QtCore.QSize',),
- "PySide2.QtCore.QSize.__imul__": ('float',),
- "PySide2.QtCore.QSize.__isub__": ('PySide2.QtCore.QSize',),
- "PySide2.QtCore.QSize.__mul__": ('float',),
- "PySide2.QtCore.QSize.__reduce__": (),
- "PySide2.QtCore.QSize.__repr__": (),
- "PySide2.QtCore.QSize.__sub__": ('PySide2.QtCore.QSize',),
- "PySide2.QtCore.QSize.boundedTo": ('PySide2.QtCore.QSize',),
- "PySide2.QtCore.QSize.expandedTo": ('PySide2.QtCore.QSize',),
- "PySide2.QtCore.QSize.grownBy": ('PySide2.QtCore.QMargins',),
- "PySide2.QtCore.QSize.height": (),
- "PySide2.QtCore.QSize.isEmpty": (),
- "PySide2.QtCore.QSize.isNull": (),
- "PySide2.QtCore.QSize.isValid": (),
- "PySide2.QtCore.QSize.scale": [('PySide2.QtCore.QSize', 'PySide2.QtCore.Qt.AspectRatioMode'), ('int', 'int', 'PySide2.QtCore.Qt.AspectRatioMode')],
- "PySide2.QtCore.QSize.scaled": [('PySide2.QtCore.QSize', 'PySide2.QtCore.Qt.AspectRatioMode'), ('int', 'int', 'PySide2.QtCore.Qt.AspectRatioMode')],
- "PySide2.QtCore.QSize.setHeight": ('int',),
- "PySide2.QtCore.QSize.setWidth": ('int',),
- "PySide2.QtCore.QSize.shrunkBy": ('PySide2.QtCore.QMargins',),
- "PySide2.QtCore.QSize.toTuple": (),
- "PySide2.QtCore.QSize.transpose": (),
- "PySide2.QtCore.QSize.transposed": (),
- "PySide2.QtCore.QSize.width": (),
-# class PySide2.QtCore.QSizeF:
- "PySide2.QtCore.QSizeF.__init__": [(), ('PySide2.QtCore.QSize',), ('PySide2.QtCore.QSizeF',), ('float', 'float')],
- "PySide2.QtCore.QSizeF.__add__": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtCore.QSizeF.__copy__": (),
- "PySide2.QtCore.QSizeF.__iadd__": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtCore.QSizeF.__imul__": ('float',),
- "PySide2.QtCore.QSizeF.__isub__": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtCore.QSizeF.__mul__": ('float',),
- "PySide2.QtCore.QSizeF.__reduce__": (),
- "PySide2.QtCore.QSizeF.__repr__": (),
- "PySide2.QtCore.QSizeF.__sub__": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtCore.QSizeF.boundedTo": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtCore.QSizeF.expandedTo": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtCore.QSizeF.grownBy": ('PySide2.QtCore.QMarginsF',),
- "PySide2.QtCore.QSizeF.height": (),
- "PySide2.QtCore.QSizeF.isEmpty": (),
- "PySide2.QtCore.QSizeF.isNull": (),
- "PySide2.QtCore.QSizeF.isValid": (),
- "PySide2.QtCore.QSizeF.scale": [('PySide2.QtCore.QSizeF', 'PySide2.QtCore.Qt.AspectRatioMode'), ('float', 'float', 'PySide2.QtCore.Qt.AspectRatioMode')],
- "PySide2.QtCore.QSizeF.scaled": [('PySide2.QtCore.QSizeF', 'PySide2.QtCore.Qt.AspectRatioMode'), ('float', 'float', 'PySide2.QtCore.Qt.AspectRatioMode')],
- "PySide2.QtCore.QSizeF.setHeight": ('float',),
- "PySide2.QtCore.QSizeF.setWidth": ('float',),
- "PySide2.QtCore.QSizeF.shrunkBy": ('PySide2.QtCore.QMarginsF',),
- "PySide2.QtCore.QSizeF.toSize": (),
- "PySide2.QtCore.QSizeF.toTuple": (),
- "PySide2.QtCore.QSizeF.transpose": (),
- "PySide2.QtCore.QSizeF.transposed": (),
- "PySide2.QtCore.QSizeF.width": (),
-# class PySide2.QtCore.QSocketNotifier:
-# class PySide2.QtCore.QSocketNotifier.Type:
- "PySide2.QtCore.QSocketNotifier.__init__": [('int', 'PySide2.QtCore.QSocketNotifier.Type', 'PySide2.QtCore.QObject'), ('object', 'PySide2.QtCore.QSocketNotifier.Type', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QSocketNotifier.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QSocketNotifier.isEnabled": (),
- "PySide2.QtCore.QSocketNotifier.setEnabled": ('bool',),
- "PySide2.QtCore.QSocketNotifier.socket": (),
- "PySide2.QtCore.QSocketNotifier.type": (),
-# class PySide2.QtCore.QSortFilterProxyModel:
- "PySide2.QtCore.QSortFilterProxyModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QSortFilterProxyModel.buddy": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QSortFilterProxyModel.canFetchMore": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QSortFilterProxyModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QSortFilterProxyModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QSortFilterProxyModel.dropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QSortFilterProxyModel.dynamicSortFilter": (),
- "PySide2.QtCore.QSortFilterProxyModel.fetchMore": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QSortFilterProxyModel.filterAcceptsColumn": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QSortFilterProxyModel.filterAcceptsRow": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QSortFilterProxyModel.filterCaseSensitivity": (),
- "PySide2.QtCore.QSortFilterProxyModel.filterKeyColumn": (),
- "PySide2.QtCore.QSortFilterProxyModel.filterRegExp": (),
- "PySide2.QtCore.QSortFilterProxyModel.filterRegularExpression": (),
- "PySide2.QtCore.QSortFilterProxyModel.filterRole": (),
- "PySide2.QtCore.QSortFilterProxyModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QSortFilterProxyModel.hasChildren": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QSortFilterProxyModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtCore.QSortFilterProxyModel.index": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QSortFilterProxyModel.insertColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QSortFilterProxyModel.insertRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QSortFilterProxyModel.invalidate": (),
- "PySide2.QtCore.QSortFilterProxyModel.invalidateFilter": (),
- "PySide2.QtCore.QSortFilterProxyModel.isRecursiveFilteringEnabled": (),
- "PySide2.QtCore.QSortFilterProxyModel.isSortLocaleAware": (),
- "PySide2.QtCore.QSortFilterProxyModel.lessThan": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QSortFilterProxyModel.mapFromSource": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QSortFilterProxyModel.mapSelectionFromSource": ('PySide2.QtCore.QItemSelection',),
- "PySide2.QtCore.QSortFilterProxyModel.mapSelectionToSource": ('PySide2.QtCore.QItemSelection',),
- "PySide2.QtCore.QSortFilterProxyModel.mapToSource": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QSortFilterProxyModel.match": ('PySide2.QtCore.QModelIndex', 'int', 'typing.Any', 'int', 'PySide2.QtCore.Qt.MatchFlags'),
- "PySide2.QtCore.QSortFilterProxyModel.mimeData": ('typing.List[int]',),
- "PySide2.QtCore.QSortFilterProxyModel.mimeTypes": (),
- "PySide2.QtCore.QSortFilterProxyModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtCore.QSortFilterProxyModel.removeColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QSortFilterProxyModel.removeRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QSortFilterProxyModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QSortFilterProxyModel.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
- "PySide2.QtCore.QSortFilterProxyModel.setDynamicSortFilter": ('bool',),
- "PySide2.QtCore.QSortFilterProxyModel.setFilterCaseSensitivity": ('PySide2.QtCore.Qt.CaseSensitivity',),
- "PySide2.QtCore.QSortFilterProxyModel.setFilterFixedString": ('str',),
- "PySide2.QtCore.QSortFilterProxyModel.setFilterKeyColumn": ('int',),
- "PySide2.QtCore.QSortFilterProxyModel.setFilterRegExp": [('PySide2.QtCore.QRegExp',), ('str',)],
- "PySide2.QtCore.QSortFilterProxyModel.setFilterRegularExpression": [('PySide2.QtCore.QRegularExpression',), ('str',)],
- "PySide2.QtCore.QSortFilterProxyModel.setFilterRole": ('int',),
- "PySide2.QtCore.QSortFilterProxyModel.setFilterWildcard": ('str',),
- "PySide2.QtCore.QSortFilterProxyModel.setHeaderData": ('int', 'PySide2.QtCore.Qt.Orientation', 'typing.Any', 'int'),
- "PySide2.QtCore.QSortFilterProxyModel.setRecursiveFilteringEnabled": ('bool',),
- "PySide2.QtCore.QSortFilterProxyModel.setSortCaseSensitivity": ('PySide2.QtCore.Qt.CaseSensitivity',),
- "PySide2.QtCore.QSortFilterProxyModel.setSortLocaleAware": ('bool',),
- "PySide2.QtCore.QSortFilterProxyModel.setSortRole": ('int',),
- "PySide2.QtCore.QSortFilterProxyModel.setSourceModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCore.QSortFilterProxyModel.sibling": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QSortFilterProxyModel.sort": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtCore.QSortFilterProxyModel.sortCaseSensitivity": (),
- "PySide2.QtCore.QSortFilterProxyModel.sortColumn": (),
- "PySide2.QtCore.QSortFilterProxyModel.sortOrder": (),
- "PySide2.QtCore.QSortFilterProxyModel.sortRole": (),
- "PySide2.QtCore.QSortFilterProxyModel.span": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QSortFilterProxyModel.supportedDropActions": (),
-# class PySide2.QtCore.QStandardPaths:
-# class PySide2.QtCore.QStandardPaths.LocateOption:
-# class PySide2.QtCore.QStandardPaths.LocateOptions:
-# class PySide2.QtCore.QStandardPaths.StandardLocation:
- "PySide2.QtCore.QStandardPaths.displayName": ('PySide2.QtCore.QStandardPaths.StandardLocation',),
- "PySide2.QtCore.QStandardPaths.enableTestMode": ('bool',),
- "PySide2.QtCore.QStandardPaths.findExecutable": ('str', 'typing.Sequence[str]'),
- "PySide2.QtCore.QStandardPaths.isTestModeEnabled": (),
- "PySide2.QtCore.QStandardPaths.locate": ('PySide2.QtCore.QStandardPaths.StandardLocation', 'str', 'PySide2.QtCore.QStandardPaths.LocateOptions'),
- "PySide2.QtCore.QStandardPaths.locateAll": ('PySide2.QtCore.QStandardPaths.StandardLocation', 'str', 'PySide2.QtCore.QStandardPaths.LocateOptions'),
- "PySide2.QtCore.QStandardPaths.setTestModeEnabled": ('bool',),
- "PySide2.QtCore.QStandardPaths.standardLocations": ('PySide2.QtCore.QStandardPaths.StandardLocation',),
- "PySide2.QtCore.QStandardPaths.writableLocation": ('PySide2.QtCore.QStandardPaths.StandardLocation',),
-# class PySide2.QtCore.QState:
-# class PySide2.QtCore.QState.ChildMode:
-# class PySide2.QtCore.QState.RestorePolicy:
- "PySide2.QtCore.QState.__init__": [('PySide2.QtCore.QState',), ('PySide2.QtCore.QState.ChildMode', 'PySide2.QtCore.QState')],
- "PySide2.QtCore.QState.addTransition": [('PySide2.QtCore.QAbstractState',), ('PySide2.QtCore.QAbstractTransition',), ('PySide2.QtCore.QObject', 'str', 'PySide2.QtCore.QAbstractState'), ('object', 'PySide2.QtCore.QAbstractState')],
- "PySide2.QtCore.QState.assignProperty": ('PySide2.QtCore.QObject', 'str', 'typing.Any'),
- "PySide2.QtCore.QState.childMode": (),
- "PySide2.QtCore.QState.errorState": (),
- "PySide2.QtCore.QState.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QState.initialState": (),
- "PySide2.QtCore.QState.onEntry": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QState.onExit": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QState.removeTransition": ('PySide2.QtCore.QAbstractTransition',),
- "PySide2.QtCore.QState.setChildMode": ('PySide2.QtCore.QState.ChildMode',),
- "PySide2.QtCore.QState.setErrorState": ('PySide2.QtCore.QAbstractState',),
- "PySide2.QtCore.QState.setInitialState": ('PySide2.QtCore.QAbstractState',),
- "PySide2.QtCore.QState.transitions": (),
-# class PySide2.QtCore.QStateMachine:
-# class PySide2.QtCore.QStateMachine.Error:
-# class PySide2.QtCore.QStateMachine.EventPriority:
-# class PySide2.QtCore.QStateMachine.SignalEvent:
- "PySide2.QtCore.QStateMachine.SignalEvent.__init__": [('PySide2.QtCore.QObject', 'int', 'typing.Sequence[typing.Any]'), ('PySide2.QtCore.QStateMachine.SignalEvent',)],
- "PySide2.QtCore.QStateMachine.SignalEvent.__copy__": (),
- "PySide2.QtCore.QStateMachine.SignalEvent.arguments": (),
- "PySide2.QtCore.QStateMachine.SignalEvent.sender": (),
- "PySide2.QtCore.QStateMachine.SignalEvent.signalIndex": (),
-# class PySide2.QtCore.QStateMachine.WrappedEvent:
- "PySide2.QtCore.QStateMachine.WrappedEvent.__init__": [('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'), ('PySide2.QtCore.QStateMachine.WrappedEvent',)],
- "PySide2.QtCore.QStateMachine.WrappedEvent.__copy__": (),
- "PySide2.QtCore.QStateMachine.WrappedEvent.event": (),
- "PySide2.QtCore.QStateMachine.WrappedEvent.object": (),
- "PySide2.QtCore.QStateMachine.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtCore.QState.ChildMode', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QStateMachine.addDefaultAnimation": ('PySide2.QtCore.QAbstractAnimation',),
- "PySide2.QtCore.QStateMachine.addState": ('PySide2.QtCore.QAbstractState',),
- "PySide2.QtCore.QStateMachine.beginMicrostep": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QStateMachine.beginSelectTransitions": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QStateMachine.cancelDelayedEvent": ('int',),
- "PySide2.QtCore.QStateMachine.clearError": (),
- "PySide2.QtCore.QStateMachine.configuration": (),
- "PySide2.QtCore.QStateMachine.defaultAnimations": (),
- "PySide2.QtCore.QStateMachine.endMicrostep": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QStateMachine.endSelectTransitions": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QStateMachine.error": (),
- "PySide2.QtCore.QStateMachine.errorString": (),
- "PySide2.QtCore.QStateMachine.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QStateMachine.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtCore.QStateMachine.globalRestorePolicy": (),
- "PySide2.QtCore.QStateMachine.isAnimated": (),
- "PySide2.QtCore.QStateMachine.isRunning": (),
- "PySide2.QtCore.QStateMachine.onEntry": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QStateMachine.onExit": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QStateMachine.postDelayedEvent": ('PySide2.QtCore.QEvent', 'int'),
- "PySide2.QtCore.QStateMachine.postEvent": ('PySide2.QtCore.QEvent', 'PySide2.QtCore.QStateMachine.EventPriority'),
- "PySide2.QtCore.QStateMachine.removeDefaultAnimation": ('PySide2.QtCore.QAbstractAnimation',),
- "PySide2.QtCore.QStateMachine.removeState": ('PySide2.QtCore.QAbstractState',),
- "PySide2.QtCore.QStateMachine.setAnimated": ('bool',),
- "PySide2.QtCore.QStateMachine.setGlobalRestorePolicy": ('PySide2.QtCore.QState.RestorePolicy',),
- "PySide2.QtCore.QStateMachine.setRunning": ('bool',),
- "PySide2.QtCore.QStateMachine.start": (),
- "PySide2.QtCore.QStateMachine.stop": (),
-# class PySide2.QtCore.QStorageInfo:
- "PySide2.QtCore.QStorageInfo.__init__": [(), ('PySide2.QtCore.QDir',), ('PySide2.QtCore.QStorageInfo',), ('str',)],
- "PySide2.QtCore.QStorageInfo.__copy__": (),
- "PySide2.QtCore.QStorageInfo.blockSize": (),
- "PySide2.QtCore.QStorageInfo.bytesAvailable": (),
- "PySide2.QtCore.QStorageInfo.bytesFree": (),
- "PySide2.QtCore.QStorageInfo.bytesTotal": (),
- "PySide2.QtCore.QStorageInfo.device": (),
- "PySide2.QtCore.QStorageInfo.displayName": (),
- "PySide2.QtCore.QStorageInfo.fileSystemType": (),
- "PySide2.QtCore.QStorageInfo.isReadOnly": (),
- "PySide2.QtCore.QStorageInfo.isReady": (),
- "PySide2.QtCore.QStorageInfo.isRoot": (),
- "PySide2.QtCore.QStorageInfo.isValid": (),
- "PySide2.QtCore.QStorageInfo.mountedVolumes": (),
- "PySide2.QtCore.QStorageInfo.name": (),
- "PySide2.QtCore.QStorageInfo.refresh": (),
- "PySide2.QtCore.QStorageInfo.root": (),
- "PySide2.QtCore.QStorageInfo.rootPath": (),
- "PySide2.QtCore.QStorageInfo.setPath": ('str',),
- "PySide2.QtCore.QStorageInfo.subvolume": (),
- "PySide2.QtCore.QStorageInfo.swap": ('PySide2.QtCore.QStorageInfo',),
-# class PySide2.QtCore.QStringListModel:
- "PySide2.QtCore.QStringListModel.__init__": [('PySide2.QtCore.QObject',), ('typing.Sequence[str]', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QStringListModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QStringListModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QStringListModel.insertRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QStringListModel.itemData": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QStringListModel.moveRows": ('PySide2.QtCore.QModelIndex', 'int', 'int', 'PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QStringListModel.removeRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QStringListModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QStringListModel.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
- "PySide2.QtCore.QStringListModel.setItemData": ('PySide2.QtCore.QModelIndex', 'typing.Dict[int, typing.Any]'),
- "PySide2.QtCore.QStringListModel.setStringList": ('typing.Sequence[str]',),
- "PySide2.QtCore.QStringListModel.sibling": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QStringListModel.sort": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtCore.QStringListModel.stringList": (),
- "PySide2.QtCore.QStringListModel.supportedDropActions": (),
-# class PySide2.QtCore.QSysInfo:
-# class PySide2.QtCore.QSysInfo.Endian:
-# class PySide2.QtCore.QSysInfo.MacVersion:
-# class PySide2.QtCore.QSysInfo.Sizes:
- "PySide2.QtCore.QSysInfo.__init__": (),
- "PySide2.QtCore.QSysInfo.bootUniqueId": (),
- "PySide2.QtCore.QSysInfo.buildAbi": (),
- "PySide2.QtCore.QSysInfo.buildCpuArchitecture": (),
- "PySide2.QtCore.QSysInfo.currentCpuArchitecture": (),
- "PySide2.QtCore.QSysInfo.kernelType": (),
- "PySide2.QtCore.QSysInfo.kernelVersion": (),
- "PySide2.QtCore.QSysInfo.macVersion": (),
- "PySide2.QtCore.QSysInfo.machineHostName": (),
- "PySide2.QtCore.QSysInfo.machineUniqueId": (),
- "PySide2.QtCore.QSysInfo.prettyProductName": (),
- "PySide2.QtCore.QSysInfo.productType": (),
- "PySide2.QtCore.QSysInfo.productVersion": (),
-# class PySide2.QtCore.QSystemSemaphore:
-# class PySide2.QtCore.QSystemSemaphore.AccessMode:
-# class PySide2.QtCore.QSystemSemaphore.SystemSemaphoreError:
- "PySide2.QtCore.QSystemSemaphore.__init__": ('str', 'int', 'PySide2.QtCore.QSystemSemaphore.AccessMode'),
- "PySide2.QtCore.QSystemSemaphore.acquire": (),
- "PySide2.QtCore.QSystemSemaphore.error": (),
- "PySide2.QtCore.QSystemSemaphore.errorString": (),
- "PySide2.QtCore.QSystemSemaphore.key": (),
- "PySide2.QtCore.QSystemSemaphore.release": ('int',),
- "PySide2.QtCore.QSystemSemaphore.setKey": ('str', 'int', 'PySide2.QtCore.QSystemSemaphore.AccessMode'),
-# class PySide2.QtCore.QTemporaryDir:
- "PySide2.QtCore.QTemporaryDir.__init__": [(), ('str',)],
- "PySide2.QtCore.QTemporaryDir.autoRemove": (),
- "PySide2.QtCore.QTemporaryDir.errorString": (),
- "PySide2.QtCore.QTemporaryDir.filePath": ('str',),
- "PySide2.QtCore.QTemporaryDir.isValid": (),
- "PySide2.QtCore.QTemporaryDir.path": (),
- "PySide2.QtCore.QTemporaryDir.remove": (),
- "PySide2.QtCore.QTemporaryDir.setAutoRemove": ('bool',),
-# class PySide2.QtCore.QTemporaryFile:
- "PySide2.QtCore.QTemporaryFile.__init__": [(), ('PySide2.QtCore.QObject',), ('str',), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QTemporaryFile.autoRemove": (),
- "PySide2.QtCore.QTemporaryFile.createLocalFile": [('PySide2.QtCore.QFile',), ('str',)],
- "PySide2.QtCore.QTemporaryFile.createNativeFile": [('PySide2.QtCore.QFile',), ('str',)],
- "PySide2.QtCore.QTemporaryFile.fileName": (),
- "PySide2.QtCore.QTemporaryFile.fileTemplate": (),
- "PySide2.QtCore.QTemporaryFile.open": [(), ('PySide2.QtCore.QIODevice.OpenMode',)],
- "PySide2.QtCore.QTemporaryFile.rename": ('str',),
- "PySide2.QtCore.QTemporaryFile.setAutoRemove": ('bool',),
- "PySide2.QtCore.QTemporaryFile.setFileTemplate": ('str',),
-# class PySide2.QtCore.QTextBoundaryFinder:
-# class PySide2.QtCore.QTextBoundaryFinder.BoundaryReason:
-# class PySide2.QtCore.QTextBoundaryFinder.BoundaryReasons:
-# class PySide2.QtCore.QTextBoundaryFinder.BoundaryType:
- "PySide2.QtCore.QTextBoundaryFinder.__init__": [(), ('PySide2.QtCore.QTextBoundaryFinder',), ('PySide2.QtCore.QTextBoundaryFinder.BoundaryType', 'str')],
- "PySide2.QtCore.QTextBoundaryFinder.__copy__": (),
- "PySide2.QtCore.QTextBoundaryFinder.boundaryReasons": (),
- "PySide2.QtCore.QTextBoundaryFinder.isAtBoundary": (),
- "PySide2.QtCore.QTextBoundaryFinder.isValid": (),
- "PySide2.QtCore.QTextBoundaryFinder.position": (),
- "PySide2.QtCore.QTextBoundaryFinder.setPosition": ('int',),
- "PySide2.QtCore.QTextBoundaryFinder.string": (),
- "PySide2.QtCore.QTextBoundaryFinder.toEnd": (),
- "PySide2.QtCore.QTextBoundaryFinder.toNextBoundary": (),
- "PySide2.QtCore.QTextBoundaryFinder.toPreviousBoundary": (),
- "PySide2.QtCore.QTextBoundaryFinder.toStart": (),
- "PySide2.QtCore.QTextBoundaryFinder.type": (),
-# class PySide2.QtCore.QTextCodec:
-# class PySide2.QtCore.QTextCodec.ConversionFlag:
-# class PySide2.QtCore.QTextCodec.ConversionFlags:
-# class PySide2.QtCore.QTextCodec.ConverterState:
- "PySide2.QtCore.QTextCodec.ConverterState.__init__": ('PySide2.QtCore.QTextCodec.ConversionFlags',),
- "PySide2.QtCore.QTextCodec.__init__": (),
- "PySide2.QtCore.QTextCodec.aliases": (),
- "PySide2.QtCore.QTextCodec.availableCodecs": (),
- "PySide2.QtCore.QTextCodec.availableMibs": (),
- "PySide2.QtCore.QTextCodec.canEncode": ('str',),
- "PySide2.QtCore.QTextCodec.codecForHtml": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QTextCodec')],
- "PySide2.QtCore.QTextCodec.codecForLocale": (),
- "PySide2.QtCore.QTextCodec.codecForMib": ('int',),
- "PySide2.QtCore.QTextCodec.codecForName": [('PySide2.QtCore.QByteArray',), ('str',)],
- "PySide2.QtCore.QTextCodec.codecForUtfText": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QTextCodec')],
- "PySide2.QtCore.QTextCodec.convertToUnicode": ('str', 'int', 'PySide2.QtCore.QTextCodec.ConverterState'),
- "PySide2.QtCore.QTextCodec.fromUnicode": ('str',),
- "PySide2.QtCore.QTextCodec.makeDecoder": ('PySide2.QtCore.QTextCodec.ConversionFlags',),
- "PySide2.QtCore.QTextCodec.makeEncoder": ('PySide2.QtCore.QTextCodec.ConversionFlags',),
- "PySide2.QtCore.QTextCodec.mibEnum": (),
- "PySide2.QtCore.QTextCodec.name": (),
- "PySide2.QtCore.QTextCodec.setCodecForLocale": ('PySide2.QtCore.QTextCodec',),
- "PySide2.QtCore.QTextCodec.toUnicode": [('PySide2.QtCore.QByteArray',), ('str',), ('str', 'int', 'PySide2.QtCore.QTextCodec.ConverterState')],
-# class PySide2.QtCore.QTextDecoder:
- "PySide2.QtCore.QTextDecoder.__init__": [('PySide2.QtCore.QTextCodec',), ('PySide2.QtCore.QTextCodec', 'PySide2.QtCore.QTextCodec.ConversionFlags')],
- "PySide2.QtCore.QTextDecoder.hasFailure": (),
- "PySide2.QtCore.QTextDecoder.needsMoreData": (),
- "PySide2.QtCore.QTextDecoder.toUnicode": ('PySide2.QtCore.QByteArray',),
-# class PySide2.QtCore.QTextEncoder:
- "PySide2.QtCore.QTextEncoder.__init__": [('PySide2.QtCore.QTextCodec',), ('PySide2.QtCore.QTextCodec', 'PySide2.QtCore.QTextCodec.ConversionFlags')],
- "PySide2.QtCore.QTextEncoder.fromUnicode": ('str',),
- "PySide2.QtCore.QTextEncoder.hasFailure": (),
-# class PySide2.QtCore.QTextStream:
-# class PySide2.QtCore.QTextStream.FieldAlignment:
-# class PySide2.QtCore.QTextStream.NumberFlag:
-# class PySide2.QtCore.QTextStream.NumberFlags:
-# class PySide2.QtCore.QTextStream.RealNumberNotation:
-# class PySide2.QtCore.QTextStream.Status:
- "PySide2.QtCore.QTextStream.__init__": [(), ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QIODevice.OpenMode'), ('PySide2.QtCore.QIODevice',)],
- "PySide2.QtCore.QTextStream.__lshift__": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QTextStreamManipulator',), ('float',), ('int',), ('str',)],
- "PySide2.QtCore.QTextStream.__rshift__": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QTextStream.atEnd": (),
- "PySide2.QtCore.QTextStream.autoDetectUnicode": (),
- "PySide2.QtCore.QTextStream.codec": (),
- "PySide2.QtCore.QTextStream.device": (),
- "PySide2.QtCore.QTextStream.fieldAlignment": (),
- "PySide2.QtCore.QTextStream.fieldWidth": (),
- "PySide2.QtCore.QTextStream.flush": (),
- "PySide2.QtCore.QTextStream.generateByteOrderMark": (),
- "PySide2.QtCore.QTextStream.integerBase": (),
- "PySide2.QtCore.QTextStream.locale": (),
- "PySide2.QtCore.QTextStream.numberFlags": (),
- "PySide2.QtCore.QTextStream.padChar": (),
- "PySide2.QtCore.QTextStream.pos": (),
- "PySide2.QtCore.QTextStream.read": ('int',),
- "PySide2.QtCore.QTextStream.readAll": (),
- "PySide2.QtCore.QTextStream.readLine": ('int',),
- "PySide2.QtCore.QTextStream.realNumberNotation": (),
- "PySide2.QtCore.QTextStream.realNumberPrecision": (),
- "PySide2.QtCore.QTextStream.reset": (),
- "PySide2.QtCore.QTextStream.resetStatus": (),
- "PySide2.QtCore.QTextStream.seek": ('int',),
- "PySide2.QtCore.QTextStream.setAutoDetectUnicode": ('bool',),
- "PySide2.QtCore.QTextStream.setCodec": [('PySide2.QtCore.QTextCodec',), ('str',)],
- "PySide2.QtCore.QTextStream.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtCore.QTextStream.setFieldAlignment": ('PySide2.QtCore.QTextStream.FieldAlignment',),
- "PySide2.QtCore.QTextStream.setFieldWidth": ('int',),
- "PySide2.QtCore.QTextStream.setGenerateByteOrderMark": ('bool',),
- "PySide2.QtCore.QTextStream.setIntegerBase": ('int',),
- "PySide2.QtCore.QTextStream.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtCore.QTextStream.setNumberFlags": ('PySide2.QtCore.QTextStream.NumberFlags',),
- "PySide2.QtCore.QTextStream.setPadChar": ('str',),
- "PySide2.QtCore.QTextStream.setRealNumberNotation": ('PySide2.QtCore.QTextStream.RealNumberNotation',),
- "PySide2.QtCore.QTextStream.setRealNumberPrecision": ('int',),
- "PySide2.QtCore.QTextStream.setStatus": ('PySide2.QtCore.QTextStream.Status',),
- "PySide2.QtCore.QTextStream.skipWhiteSpace": (),
- "PySide2.QtCore.QTextStream.status": (),
- "PySide2.QtCore.QTextStream.string": (),
-# class PySide2.QtCore.QTextStreamManipulator:
- "PySide2.QtCore.QTextStreamManipulator.__copy__": (),
- "PySide2.QtCore.QTextStreamManipulator.exec_": ('PySide2.QtCore.QTextStream',),
-# class PySide2.QtCore.QThread:
-# class PySide2.QtCore.QThread.Priority:
- "PySide2.QtCore.QThread.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QThread.currentThread": (),
- "PySide2.QtCore.QThread.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QThread.eventDispatcher": (),
- "PySide2.QtCore.QThread.exec_": (),
- "PySide2.QtCore.QThread.exit": ('int',),
- "PySide2.QtCore.QThread.idealThreadCount": (),
- "PySide2.QtCore.QThread.isFinished": (),
- "PySide2.QtCore.QThread.isInterruptionRequested": (),
- "PySide2.QtCore.QThread.isRunning": (),
- "PySide2.QtCore.QThread.loopLevel": (),
- "PySide2.QtCore.QThread.msleep": ('int',),
- "PySide2.QtCore.QThread.priority": (),
- "PySide2.QtCore.QThread.quit": (),
- "PySide2.QtCore.QThread.requestInterruption": (),
- "PySide2.QtCore.QThread.run": (),
- "PySide2.QtCore.QThread.setEventDispatcher": ('PySide2.QtCore.QAbstractEventDispatcher',),
- "PySide2.QtCore.QThread.setPriority": ('PySide2.QtCore.QThread.Priority',),
- "PySide2.QtCore.QThread.setStackSize": ('int',),
- "PySide2.QtCore.QThread.setTerminationEnabled": ('bool',),
- "PySide2.QtCore.QThread.sleep": ('int',),
- "PySide2.QtCore.QThread.stackSize": (),
- "PySide2.QtCore.QThread.start": ('PySide2.QtCore.QThread.Priority',),
- "PySide2.QtCore.QThread.terminate": (),
- "PySide2.QtCore.QThread.usleep": ('int',),
- "PySide2.QtCore.QThread.wait": ('int',),
- "PySide2.QtCore.QThread.yieldCurrentThread": (),
-# class PySide2.QtCore.QThreadPool:
- "PySide2.QtCore.QThreadPool.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QThreadPool.activeThreadCount": (),
- "PySide2.QtCore.QThreadPool.cancel": ('PySide2.QtCore.QRunnable',),
- "PySide2.QtCore.QThreadPool.clear": (),
- "PySide2.QtCore.QThreadPool.expiryTimeout": (),
- "PySide2.QtCore.QThreadPool.globalInstance": (),
- "PySide2.QtCore.QThreadPool.maxThreadCount": (),
- "PySide2.QtCore.QThreadPool.releaseThread": (),
- "PySide2.QtCore.QThreadPool.reserveThread": (),
- "PySide2.QtCore.QThreadPool.setExpiryTimeout": ('int',),
- "PySide2.QtCore.QThreadPool.setMaxThreadCount": ('int',),
- "PySide2.QtCore.QThreadPool.setStackSize": ('int',),
- "PySide2.QtCore.QThreadPool.stackSize": (),
- "PySide2.QtCore.QThreadPool.start": ('PySide2.QtCore.QRunnable', 'int'),
- "PySide2.QtCore.QThreadPool.tryStart": ('PySide2.QtCore.QRunnable',),
- "PySide2.QtCore.QThreadPool.tryTake": ('PySide2.QtCore.QRunnable',),
- "PySide2.QtCore.QThreadPool.waitForDone": ('int',),
-# class PySide2.QtCore.QTime:
- "PySide2.QtCore.QTime.__init__": [(), ('PySide2.QtCore.QTime',), ('int', 'int', 'int', 'int')],
- "PySide2.QtCore.QTime.__copy__": (),
- "PySide2.QtCore.QTime.__reduce__": (),
- "PySide2.QtCore.QTime.__repr__": (),
- "PySide2.QtCore.QTime.addMSecs": ('int',),
- "PySide2.QtCore.QTime.addSecs": ('int',),
- "PySide2.QtCore.QTime.currentTime": (),
- "PySide2.QtCore.QTime.elapsed": (),
- "PySide2.QtCore.QTime.fromMSecsSinceStartOfDay": ('int',),
- "PySide2.QtCore.QTime.fromString": [('str', 'PySide2.QtCore.Qt.DateFormat'), ('str', 'str')],
- "PySide2.QtCore.QTime.hour": (),
- "PySide2.QtCore.QTime.isNull": (),
- "PySide2.QtCore.QTime.isValid": [(), ('int', 'int', 'int', 'int')],
- "PySide2.QtCore.QTime.minute": (),
- "PySide2.QtCore.QTime.msec": (),
- "PySide2.QtCore.QTime.msecsSinceStartOfDay": (),
- "PySide2.QtCore.QTime.msecsTo": ('PySide2.QtCore.QTime',),
- "PySide2.QtCore.QTime.restart": (),
- "PySide2.QtCore.QTime.second": (),
- "PySide2.QtCore.QTime.secsTo": ('PySide2.QtCore.QTime',),
- "PySide2.QtCore.QTime.setHMS": ('int', 'int', 'int', 'int'),
- "PySide2.QtCore.QTime.start": (),
- "PySide2.QtCore.QTime.toPython": (),
- "PySide2.QtCore.QTime.toString": [('PySide2.QtCore.Qt.DateFormat',), ('str',)],
-# class PySide2.QtCore.QTimeLine:
-# class PySide2.QtCore.QTimeLine.CurveShape:
-# class PySide2.QtCore.QTimeLine.Direction:
-# class PySide2.QtCore.QTimeLine.State:
- "PySide2.QtCore.QTimeLine.__init__": ('int', 'PySide2.QtCore.QObject'),
- "PySide2.QtCore.QTimeLine.currentFrame": (),
- "PySide2.QtCore.QTimeLine.currentTime": (),
- "PySide2.QtCore.QTimeLine.currentValue": (),
- "PySide2.QtCore.QTimeLine.curveShape": (),
- "PySide2.QtCore.QTimeLine.direction": (),
- "PySide2.QtCore.QTimeLine.duration": (),
- "PySide2.QtCore.QTimeLine.easingCurve": (),
- "PySide2.QtCore.QTimeLine.endFrame": (),
- "PySide2.QtCore.QTimeLine.frameForTime": ('int',),
- "PySide2.QtCore.QTimeLine.loopCount": (),
- "PySide2.QtCore.QTimeLine.resume": (),
- "PySide2.QtCore.QTimeLine.setCurrentTime": ('int',),
- "PySide2.QtCore.QTimeLine.setCurveShape": ('PySide2.QtCore.QTimeLine.CurveShape',),
- "PySide2.QtCore.QTimeLine.setDirection": ('PySide2.QtCore.QTimeLine.Direction',),
- "PySide2.QtCore.QTimeLine.setDuration": ('int',),
- "PySide2.QtCore.QTimeLine.setEasingCurve": ('PySide2.QtCore.QEasingCurve',),
- "PySide2.QtCore.QTimeLine.setEndFrame": ('int',),
- "PySide2.QtCore.QTimeLine.setFrameRange": ('int', 'int'),
- "PySide2.QtCore.QTimeLine.setLoopCount": ('int',),
- "PySide2.QtCore.QTimeLine.setPaused": ('bool',),
- "PySide2.QtCore.QTimeLine.setStartFrame": ('int',),
- "PySide2.QtCore.QTimeLine.setUpdateInterval": ('int',),
- "PySide2.QtCore.QTimeLine.start": (),
- "PySide2.QtCore.QTimeLine.startFrame": (),
- "PySide2.QtCore.QTimeLine.state": (),
- "PySide2.QtCore.QTimeLine.stop": (),
- "PySide2.QtCore.QTimeLine.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtCore.QTimeLine.toggleDirection": (),
- "PySide2.QtCore.QTimeLine.updateInterval": (),
- "PySide2.QtCore.QTimeLine.valueForTime": ('int',),
-# class PySide2.QtCore.QTimeZone:
-# class PySide2.QtCore.QTimeZone.NameType:
-# class PySide2.QtCore.QTimeZone.OffsetData:
- "PySide2.QtCore.QTimeZone.OffsetData.__init__": [(), ('PySide2.QtCore.QTimeZone.OffsetData',)],
- "PySide2.QtCore.QTimeZone.OffsetData.__copy__": (),
-# class PySide2.QtCore.QTimeZone.TimeType:
- "PySide2.QtCore.QTimeZone.__init__": [(), ('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QByteArray', 'int', 'str', 'str', 'PySide2.QtCore.QLocale.Country', 'str'), ('PySide2.QtCore.QTimeZone',), ('int',)],
- "PySide2.QtCore.QTimeZone.__copy__": (),
- "PySide2.QtCore.QTimeZone.abbreviation": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QTimeZone.availableTimeZoneIds": [(), ('PySide2.QtCore.QLocale.Country',), ('int',)],
- "PySide2.QtCore.QTimeZone.comment": (),
- "PySide2.QtCore.QTimeZone.country": (),
- "PySide2.QtCore.QTimeZone.daylightTimeOffset": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QTimeZone.displayName": [('PySide2.QtCore.QDateTime', 'PySide2.QtCore.QTimeZone.NameType', 'PySide2.QtCore.QLocale'), ('PySide2.QtCore.QTimeZone.TimeType', 'PySide2.QtCore.QTimeZone.NameType', 'PySide2.QtCore.QLocale')],
- "PySide2.QtCore.QTimeZone.hasDaylightTime": (),
- "PySide2.QtCore.QTimeZone.hasTransitions": (),
- "PySide2.QtCore.QTimeZone.ianaIdToWindowsId": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QTimeZone.id": (),
- "PySide2.QtCore.QTimeZone.isDaylightTime": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QTimeZone.isTimeZoneIdAvailable": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QTimeZone.isValid": (),
- "PySide2.QtCore.QTimeZone.nextTransition": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QTimeZone.offsetData": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QTimeZone.offsetFromUtc": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QTimeZone.previousTransition": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QTimeZone.standardTimeOffset": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QTimeZone.swap": ('PySide2.QtCore.QTimeZone',),
- "PySide2.QtCore.QTimeZone.systemTimeZone": (),
- "PySide2.QtCore.QTimeZone.systemTimeZoneId": (),
- "PySide2.QtCore.QTimeZone.transitions": ('PySide2.QtCore.QDateTime', 'PySide2.QtCore.QDateTime'),
- "PySide2.QtCore.QTimeZone.utc": (),
- "PySide2.QtCore.QTimeZone.windowsIdToDefaultIanaId": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QLocale.Country')],
- "PySide2.QtCore.QTimeZone.windowsIdToIanaIds": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QLocale.Country')],
-# class PySide2.QtCore.QTimer:
- "PySide2.QtCore.QTimer.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QTimer.interval": (),
- "PySide2.QtCore.QTimer.isActive": (),
- "PySide2.QtCore.QTimer.isSingleShot": (),
- "PySide2.QtCore.QTimer.killTimer": ('int',),
- "PySide2.QtCore.QTimer.remainingTime": (),
- "PySide2.QtCore.QTimer.setInterval": ('int',),
- "PySide2.QtCore.QTimer.setSingleShot": ('bool',),
- "PySide2.QtCore.QTimer.setTimerType": ('PySide2.QtCore.Qt.TimerType',),
- "PySide2.QtCore.QTimer.singleShot": [('int', 'PySide2.QtCore.QObject', 'str'), ('int', 'PySide2.QtCore.Qt.TimerType', 'PySide2.QtCore.QObject', 'str'), ('int', 'typing.Callable')],
- "PySide2.QtCore.QTimer.start": [(), ('int',)],
- "PySide2.QtCore.QTimer.stop": (),
- "PySide2.QtCore.QTimer.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtCore.QTimer.timerId": (),
- "PySide2.QtCore.QTimer.timerType": (),
-# class PySide2.QtCore.QTimerEvent:
- "PySide2.QtCore.QTimerEvent.__init__": ('int',),
- "PySide2.QtCore.QTimerEvent.timerId": (),
-# class PySide2.QtCore.QTranslator:
- "PySide2.QtCore.QTranslator.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QTranslator.isEmpty": (),
- "PySide2.QtCore.QTranslator.load": [('PySide2.QtCore.QLocale', 'str', 'str', 'str', 'str'), ('str', 'int', 'str'), ('str', 'str', 'str', 'str')],
- "PySide2.QtCore.QTranslator.translate": ('str', 'str', 'str', 'int'),
-# class PySide2.QtCore.QTransposeProxyModel:
- "PySide2.QtCore.QTransposeProxyModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QTransposeProxyModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QTransposeProxyModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtCore.QTransposeProxyModel.index": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QTransposeProxyModel.insertColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QTransposeProxyModel.insertRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QTransposeProxyModel.itemData": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QTransposeProxyModel.mapFromSource": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QTransposeProxyModel.mapToSource": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QTransposeProxyModel.moveColumns": ('PySide2.QtCore.QModelIndex', 'int', 'int', 'PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QTransposeProxyModel.moveRows": ('PySide2.QtCore.QModelIndex', 'int', 'int', 'PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QTransposeProxyModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtCore.QTransposeProxyModel.removeColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QTransposeProxyModel.removeRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QTransposeProxyModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QTransposeProxyModel.setHeaderData": ('int', 'PySide2.QtCore.Qt.Orientation', 'typing.Any', 'int'),
- "PySide2.QtCore.QTransposeProxyModel.setItemData": ('PySide2.QtCore.QModelIndex', 'typing.Dict[int, typing.Any]'),
- "PySide2.QtCore.QTransposeProxyModel.setSourceModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCore.QTransposeProxyModel.sort": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtCore.QTransposeProxyModel.span": ('PySide2.QtCore.QModelIndex',),
-# class PySide2.QtCore.QUrl:
-# class PySide2.QtCore.QUrl.ComponentFormattingOption:
-# class PySide2.QtCore.QUrl.FormattingOptions:
-# class PySide2.QtCore.QUrl.ParsingMode:
-# class PySide2.QtCore.QUrl.UrlFormattingOption:
-# class PySide2.QtCore.QUrl.UserInputResolutionOption:
-# class PySide2.QtCore.QUrl.UserInputResolutionOptions:
- "PySide2.QtCore.QUrl.__init__": [(), ('PySide2.QtCore.QUrl',), ('str', 'PySide2.QtCore.QUrl.ParsingMode')],
- "PySide2.QtCore.QUrl.__copy__": (),
- "PySide2.QtCore.QUrl.__reduce__": (),
- "PySide2.QtCore.QUrl.__repr__": (),
- "PySide2.QtCore.QUrl.adjusted": ('PySide2.QtCore.QUrl.FormattingOptions',),
- "PySide2.QtCore.QUrl.authority": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrl.clear": (),
- "PySide2.QtCore.QUrl.errorString": (),
- "PySide2.QtCore.QUrl.fileName": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrl.fragment": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrl.fromAce": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QUrl.fromEncoded": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtCore.QUrl.fromLocalFile": ('str',),
- "PySide2.QtCore.QUrl.fromPercentEncoding": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QUrl.fromStringList": ('typing.Sequence[str]', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtCore.QUrl.fromUserInput": [('str',), ('str', 'str', 'PySide2.QtCore.QUrl.UserInputResolutionOptions')],
- "PySide2.QtCore.QUrl.hasFragment": (),
- "PySide2.QtCore.QUrl.hasQuery": (),
- "PySide2.QtCore.QUrl.host": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrl.idnWhitelist": (),
- "PySide2.QtCore.QUrl.isEmpty": (),
- "PySide2.QtCore.QUrl.isLocalFile": (),
- "PySide2.QtCore.QUrl.isParentOf": ('PySide2.QtCore.QUrl',),
- "PySide2.QtCore.QUrl.isRelative": (),
- "PySide2.QtCore.QUrl.isValid": (),
- "PySide2.QtCore.QUrl.matches": ('PySide2.QtCore.QUrl', 'PySide2.QtCore.QUrl.FormattingOptions'),
- "PySide2.QtCore.QUrl.password": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrl.path": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrl.port": ('int',),
- "PySide2.QtCore.QUrl.query": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrl.resolved": ('PySide2.QtCore.QUrl',),
- "PySide2.QtCore.QUrl.scheme": (),
- "PySide2.QtCore.QUrl.setAuthority": ('str', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtCore.QUrl.setFragment": ('str', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtCore.QUrl.setHost": ('str', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtCore.QUrl.setIdnWhitelist": ('typing.Sequence[str]',),
- "PySide2.QtCore.QUrl.setPassword": ('str', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtCore.QUrl.setPath": ('str', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtCore.QUrl.setPort": ('int',),
- "PySide2.QtCore.QUrl.setQuery": [('PySide2.QtCore.QUrlQuery',), ('str', 'PySide2.QtCore.QUrl.ParsingMode')],
- "PySide2.QtCore.QUrl.setScheme": ('str',),
- "PySide2.QtCore.QUrl.setUrl": ('str', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtCore.QUrl.setUserInfo": ('str', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtCore.QUrl.setUserName": ('str', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtCore.QUrl.swap": ('PySide2.QtCore.QUrl',),
- "PySide2.QtCore.QUrl.toAce": ('str',),
- "PySide2.QtCore.QUrl.toDisplayString": ('PySide2.QtCore.QUrl.FormattingOptions',),
- "PySide2.QtCore.QUrl.toEncoded": ('PySide2.QtCore.QUrl.FormattingOptions',),
- "PySide2.QtCore.QUrl.toLocalFile": (),
- "PySide2.QtCore.QUrl.toPercentEncoding": ('str', 'PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtCore.QUrl.toString": ('PySide2.QtCore.QUrl.FormattingOptions',),
- "PySide2.QtCore.QUrl.toStringList": ('typing.Sequence[PySide2.QtCore.QUrl]', 'PySide2.QtCore.QUrl.FormattingOptions'),
- "PySide2.QtCore.QUrl.topLevelDomain": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrl.url": ('PySide2.QtCore.QUrl.FormattingOptions',),
- "PySide2.QtCore.QUrl.userInfo": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrl.userName": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
-# class PySide2.QtCore.QUrlQuery:
- "PySide2.QtCore.QUrlQuery.__init__": [(), ('PySide2.QtCore.QUrl',), ('PySide2.QtCore.QUrlQuery',), ('str',)],
- "PySide2.QtCore.QUrlQuery.__copy__": (),
- "PySide2.QtCore.QUrlQuery.addQueryItem": ('str', 'str'),
- "PySide2.QtCore.QUrlQuery.allQueryItemValues": ('str', 'PySide2.QtCore.QUrl.ComponentFormattingOption'),
- "PySide2.QtCore.QUrlQuery.clear": (),
- "PySide2.QtCore.QUrlQuery.defaultQueryPairDelimiter": (),
- "PySide2.QtCore.QUrlQuery.defaultQueryValueDelimiter": (),
- "PySide2.QtCore.QUrlQuery.hasQueryItem": ('str',),
- "PySide2.QtCore.QUrlQuery.isEmpty": (),
- "PySide2.QtCore.QUrlQuery.query": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrlQuery.queryItemValue": ('str', 'PySide2.QtCore.QUrl.ComponentFormattingOption'),
- "PySide2.QtCore.QUrlQuery.queryItems": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrlQuery.queryPairDelimiter": (),
- "PySide2.QtCore.QUrlQuery.queryValueDelimiter": (),
- "PySide2.QtCore.QUrlQuery.removeAllQueryItems": ('str',),
- "PySide2.QtCore.QUrlQuery.removeQueryItem": ('str',),
- "PySide2.QtCore.QUrlQuery.setQuery": ('str',),
- "PySide2.QtCore.QUrlQuery.setQueryDelimiters": ('str', 'str'),
- "PySide2.QtCore.QUrlQuery.setQueryItems": ('typing.Sequence[typing.Tuple]',),
- "PySide2.QtCore.QUrlQuery.swap": ('PySide2.QtCore.QUrlQuery',),
- "PySide2.QtCore.QUrlQuery.toString": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
-# class PySide2.QtCore.QUuid:
-# class PySide2.QtCore.QUuid.StringFormat:
-# class PySide2.QtCore.QUuid.Variant:
-# class PySide2.QtCore.QUuid.Version:
- "PySide2.QtCore.QUuid.__init__": [(), ('PySide2.QtCore.QByteArray',), ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'), ('str',)],
- "PySide2.QtCore.QUuid.__copy__": (),
- "PySide2.QtCore.QUuid.__reduce__": (),
- "PySide2.QtCore.QUuid.__repr__": (),
- "PySide2.QtCore.QUuid.createUuid": (),
- "PySide2.QtCore.QUuid.createUuidV3": [('PySide2.QtCore.QUuid', 'PySide2.QtCore.QByteArray'), ('PySide2.QtCore.QUuid', 'str')],
- "PySide2.QtCore.QUuid.createUuidV5": [('PySide2.QtCore.QUuid', 'PySide2.QtCore.QByteArray'), ('PySide2.QtCore.QUuid', 'str')],
- "PySide2.QtCore.QUuid.fromRfc4122": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QUuid.isNull": (),
- "PySide2.QtCore.QUuid.toByteArray": [(), ('PySide2.QtCore.QUuid.StringFormat',)],
- "PySide2.QtCore.QUuid.toRfc4122": (),
- "PySide2.QtCore.QUuid.toString": [(), ('PySide2.QtCore.QUuid.StringFormat',)],
- "PySide2.QtCore.QUuid.variant": (),
- "PySide2.QtCore.QUuid.version": (),
-# class PySide2.QtCore.QVariantAnimation:
- "PySide2.QtCore.QVariantAnimation.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QVariantAnimation.currentValue": (),
- "PySide2.QtCore.QVariantAnimation.duration": (),
- "PySide2.QtCore.QVariantAnimation.easingCurve": (),
- "PySide2.QtCore.QVariantAnimation.endValue": (),
- "PySide2.QtCore.QVariantAnimation.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QVariantAnimation.interpolated": ('typing.Any', 'typing.Any', 'float'),
- "PySide2.QtCore.QVariantAnimation.keyValueAt": ('float',),
- "PySide2.QtCore.QVariantAnimation.keyValues": (),
- "PySide2.QtCore.QVariantAnimation.setDuration": ('int',),
- "PySide2.QtCore.QVariantAnimation.setEasingCurve": ('PySide2.QtCore.QEasingCurve',),
- "PySide2.QtCore.QVariantAnimation.setEndValue": ('typing.Any',),
- "PySide2.QtCore.QVariantAnimation.setKeyValueAt": ('float', 'typing.Any'),
- "PySide2.QtCore.QVariantAnimation.setKeyValues": ('typing.List[typing.Tuple]',),
- "PySide2.QtCore.QVariantAnimation.setStartValue": ('typing.Any',),
- "PySide2.QtCore.QVariantAnimation.startValue": (),
- "PySide2.QtCore.QVariantAnimation.updateCurrentTime": ('int',),
- "PySide2.QtCore.QVariantAnimation.updateCurrentValue": ('typing.Any',),
- "PySide2.QtCore.QVariantAnimation.updateState": ('PySide2.QtCore.QAbstractAnimation.State', 'PySide2.QtCore.QAbstractAnimation.State'),
-# class PySide2.QtCore.QVersionNumber:
- "PySide2.QtCore.QVersionNumber.__init__": [(), ('int',), ('int', 'int'), ('int', 'int', 'int'), ('typing.List[int]',)],
- "PySide2.QtCore.QVersionNumber.__copy__": (),
- "PySide2.QtCore.QVersionNumber.commonPrefix": ('PySide2.QtCore.QVersionNumber', 'PySide2.QtCore.QVersionNumber'),
- "PySide2.QtCore.QVersionNumber.compare": ('PySide2.QtCore.QVersionNumber', 'PySide2.QtCore.QVersionNumber'),
- "PySide2.QtCore.QVersionNumber.fromString": ('str',),
- "PySide2.QtCore.QVersionNumber.isNormalized": (),
- "PySide2.QtCore.QVersionNumber.isNull": (),
- "PySide2.QtCore.QVersionNumber.isPrefixOf": ('PySide2.QtCore.QVersionNumber',),
- "PySide2.QtCore.QVersionNumber.majorVersion": (),
- "PySide2.QtCore.QVersionNumber.microVersion": (),
- "PySide2.QtCore.QVersionNumber.minorVersion": (),
- "PySide2.QtCore.QVersionNumber.normalized": (),
- "PySide2.QtCore.QVersionNumber.segmentAt": ('int',),
- "PySide2.QtCore.QVersionNumber.segmentCount": (),
- "PySide2.QtCore.QVersionNumber.segments": (),
- "PySide2.QtCore.QVersionNumber.toString": (),
-# class PySide2.QtCore.QWaitCondition:
- "PySide2.QtCore.QWaitCondition.__init__": (),
- "PySide2.QtCore.QWaitCondition.notify_all": (),
- "PySide2.QtCore.QWaitCondition.notify_one": (),
- "PySide2.QtCore.QWaitCondition.wait": [('PySide2.QtCore.QMutex', 'PySide2.QtCore.QDeadlineTimer'), ('PySide2.QtCore.QMutex', 'int'), ('PySide2.QtCore.QReadWriteLock', 'PySide2.QtCore.QDeadlineTimer'), ('PySide2.QtCore.QReadWriteLock', 'int')],
- "PySide2.QtCore.QWaitCondition.wakeAll": (),
- "PySide2.QtCore.QWaitCondition.wakeOne": (),
-# class PySide2.QtCore.QWriteLocker:
- "PySide2.QtCore.QWriteLocker.__init__": ('PySide2.QtCore.QReadWriteLock',),
- "PySide2.QtCore.QWriteLocker.__enter__": (),
- "PySide2.QtCore.QWriteLocker.__exit__": ('object', 'object', 'object'),
- "PySide2.QtCore.QWriteLocker.readWriteLock": (),
- "PySide2.QtCore.QWriteLocker.relock": (),
- "PySide2.QtCore.QWriteLocker.unlock": (),
-# class PySide2.QtCore.QXmlStreamAttribute:
- "PySide2.QtCore.QXmlStreamAttribute.__init__": [(), ('PySide2.QtCore.QXmlStreamAttribute',), ('str', 'str'), ('str', 'str', 'str')],
- "PySide2.QtCore.QXmlStreamAttribute.__copy__": (),
- "PySide2.QtCore.QXmlStreamAttribute.isDefault": (),
- "PySide2.QtCore.QXmlStreamAttribute.name": (),
- "PySide2.QtCore.QXmlStreamAttribute.namespaceUri": (),
- "PySide2.QtCore.QXmlStreamAttribute.prefix": (),
- "PySide2.QtCore.QXmlStreamAttribute.qualifiedName": (),
- "PySide2.QtCore.QXmlStreamAttribute.value": (),
-# class PySide2.QtCore.QXmlStreamAttributes:
- "PySide2.QtCore.QXmlStreamAttributes.__init__": [(), ('PySide2.QtCore.QXmlStreamAttributes',)],
- "PySide2.QtCore.QXmlStreamAttributes.__add__": ('typing.List[PySide2.QtCore.QXmlStreamAttribute]',),
- "PySide2.QtCore.QXmlStreamAttributes.__copy__": (),
- "PySide2.QtCore.QXmlStreamAttributes.__iadd__": ('PySide2.QtCore.QXmlStreamAttribute',),
- "PySide2.QtCore.QXmlStreamAttributes.__lshift__": [('PySide2.QtCore.QXmlStreamAttribute',), ('typing.List[PySide2.QtCore.QXmlStreamAttribute]',)],
- "PySide2.QtCore.QXmlStreamAttributes.append": [('str', 'str'), ('str', 'str', 'str')],
- "PySide2.QtCore.QXmlStreamAttributes.at": ('int',),
- "PySide2.QtCore.QXmlStreamAttributes.back": (),
- "PySide2.QtCore.QXmlStreamAttributes.capacity": (),
- "PySide2.QtCore.QXmlStreamAttributes.clear": (),
- "PySide2.QtCore.QXmlStreamAttributes.constData": (),
- "PySide2.QtCore.QXmlStreamAttributes.constFirst": (),
- "PySide2.QtCore.QXmlStreamAttributes.constLast": (),
- "PySide2.QtCore.QXmlStreamAttributes.contains": ('PySide2.QtCore.QXmlStreamAttribute',),
- "PySide2.QtCore.QXmlStreamAttributes.count": [(), ('PySide2.QtCore.QXmlStreamAttribute',)],
- "PySide2.QtCore.QXmlStreamAttributes.data": (),
- "PySide2.QtCore.QXmlStreamAttributes.empty": (),
- "PySide2.QtCore.QXmlStreamAttributes.endsWith": ('PySide2.QtCore.QXmlStreamAttribute',),
- "PySide2.QtCore.QXmlStreamAttributes.fill": ('PySide2.QtCore.QXmlStreamAttribute', 'int'),
- "PySide2.QtCore.QXmlStreamAttributes.first": (),
- "PySide2.QtCore.QXmlStreamAttributes.front": (),
- "PySide2.QtCore.QXmlStreamAttributes.hasAttribute": [('str',), ('str', 'str')],
- "PySide2.QtCore.QXmlStreamAttributes.indexOf": ('PySide2.QtCore.QXmlStreamAttribute', 'int'),
- "PySide2.QtCore.QXmlStreamAttributes.insert": [('int', 'PySide2.QtCore.QXmlStreamAttribute'), ('int', 'int', 'PySide2.QtCore.QXmlStreamAttribute')],
- "PySide2.QtCore.QXmlStreamAttributes.isEmpty": (),
- "PySide2.QtCore.QXmlStreamAttributes.isSharedWith": ('typing.List[PySide2.QtCore.QXmlStreamAttribute]',),
- "PySide2.QtCore.QXmlStreamAttributes.last": (),
- "PySide2.QtCore.QXmlStreamAttributes.lastIndexOf": ('PySide2.QtCore.QXmlStreamAttribute', 'int'),
- "PySide2.QtCore.QXmlStreamAttributes.length": (),
- "PySide2.QtCore.QXmlStreamAttributes.mid": ('int', 'int'),
- "PySide2.QtCore.QXmlStreamAttributes.move": ('int', 'int'),
- "PySide2.QtCore.QXmlStreamAttributes.prepend": ('PySide2.QtCore.QXmlStreamAttribute',),
- "PySide2.QtCore.QXmlStreamAttributes.remove": [('int',), ('int', 'int')],
- "PySide2.QtCore.QXmlStreamAttributes.removeAll": ('PySide2.QtCore.QXmlStreamAttribute',),
- "PySide2.QtCore.QXmlStreamAttributes.removeAt": ('int',),
- "PySide2.QtCore.QXmlStreamAttributes.removeFirst": (),
- "PySide2.QtCore.QXmlStreamAttributes.removeLast": (),
- "PySide2.QtCore.QXmlStreamAttributes.removeOne": ('PySide2.QtCore.QXmlStreamAttribute',),
- "PySide2.QtCore.QXmlStreamAttributes.replace": ('int', 'PySide2.QtCore.QXmlStreamAttribute'),
- "PySide2.QtCore.QXmlStreamAttributes.reserve": ('int',),
- "PySide2.QtCore.QXmlStreamAttributes.resize": ('int',),
- "PySide2.QtCore.QXmlStreamAttributes.setSharable": ('bool',),
- "PySide2.QtCore.QXmlStreamAttributes.shrink_to_fit": (),
- "PySide2.QtCore.QXmlStreamAttributes.size": (),
- "PySide2.QtCore.QXmlStreamAttributes.squeeze": (),
- "PySide2.QtCore.QXmlStreamAttributes.startsWith": ('PySide2.QtCore.QXmlStreamAttribute',),
- "PySide2.QtCore.QXmlStreamAttributes.swap": ('typing.List[PySide2.QtCore.QXmlStreamAttribute]',),
- "PySide2.QtCore.QXmlStreamAttributes.swapItemsAt": ('int', 'int'),
- "PySide2.QtCore.QXmlStreamAttributes.takeAt": ('int',),
- "PySide2.QtCore.QXmlStreamAttributes.takeFirst": (),
- "PySide2.QtCore.QXmlStreamAttributes.takeLast": (),
- "PySide2.QtCore.QXmlStreamAttributes.value": [('str',), ('str', 'str')],
-# class PySide2.QtCore.QXmlStreamEntityDeclaration:
- "PySide2.QtCore.QXmlStreamEntityDeclaration.__init__": [(), ('PySide2.QtCore.QXmlStreamEntityDeclaration',)],
- "PySide2.QtCore.QXmlStreamEntityDeclaration.__copy__": (),
- "PySide2.QtCore.QXmlStreamEntityDeclaration.name": (),
- "PySide2.QtCore.QXmlStreamEntityDeclaration.notationName": (),
- "PySide2.QtCore.QXmlStreamEntityDeclaration.publicId": (),
- "PySide2.QtCore.QXmlStreamEntityDeclaration.systemId": (),
- "PySide2.QtCore.QXmlStreamEntityDeclaration.value": (),
-# class PySide2.QtCore.QXmlStreamEntityResolver:
- "PySide2.QtCore.QXmlStreamEntityResolver.__init__": (),
- "PySide2.QtCore.QXmlStreamEntityResolver.resolveEntity": ('str', 'str'),
- "PySide2.QtCore.QXmlStreamEntityResolver.resolveUndeclaredEntity": ('str',),
-# class PySide2.QtCore.QXmlStreamNamespaceDeclaration:
- "PySide2.QtCore.QXmlStreamNamespaceDeclaration.__init__": [(), ('PySide2.QtCore.QXmlStreamNamespaceDeclaration',), ('str', 'str')],
- "PySide2.QtCore.QXmlStreamNamespaceDeclaration.__copy__": (),
- "PySide2.QtCore.QXmlStreamNamespaceDeclaration.namespaceUri": (),
- "PySide2.QtCore.QXmlStreamNamespaceDeclaration.prefix": (),
-# class PySide2.QtCore.QXmlStreamNotationDeclaration:
- "PySide2.QtCore.QXmlStreamNotationDeclaration.__init__": [(), ('PySide2.QtCore.QXmlStreamNotationDeclaration',)],
- "PySide2.QtCore.QXmlStreamNotationDeclaration.__copy__": (),
- "PySide2.QtCore.QXmlStreamNotationDeclaration.name": (),
- "PySide2.QtCore.QXmlStreamNotationDeclaration.publicId": (),
- "PySide2.QtCore.QXmlStreamNotationDeclaration.systemId": (),
-# class PySide2.QtCore.QXmlStreamReader:
-# class PySide2.QtCore.QXmlStreamReader.Error:
-# class PySide2.QtCore.QXmlStreamReader.ReadElementTextBehaviour:
-# class PySide2.QtCore.QXmlStreamReader.TokenType:
- "PySide2.QtCore.QXmlStreamReader.__init__": [(), ('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QIODevice',), ('str',)],
- "PySide2.QtCore.QXmlStreamReader.addData": [('PySide2.QtCore.QByteArray',), ('str',)],
- "PySide2.QtCore.QXmlStreamReader.addExtraNamespaceDeclaration": ('PySide2.QtCore.QXmlStreamNamespaceDeclaration',),
- "PySide2.QtCore.QXmlStreamReader.addExtraNamespaceDeclarations": ('typing.List[PySide2.QtCore.QXmlStreamNamespaceDeclaration]',),
- "PySide2.QtCore.QXmlStreamReader.atEnd": (),
- "PySide2.QtCore.QXmlStreamReader.attributes": (),
- "PySide2.QtCore.QXmlStreamReader.characterOffset": (),
- "PySide2.QtCore.QXmlStreamReader.clear": (),
- "PySide2.QtCore.QXmlStreamReader.columnNumber": (),
- "PySide2.QtCore.QXmlStreamReader.device": (),
- "PySide2.QtCore.QXmlStreamReader.documentEncoding": (),
- "PySide2.QtCore.QXmlStreamReader.documentVersion": (),
- "PySide2.QtCore.QXmlStreamReader.dtdName": (),
- "PySide2.QtCore.QXmlStreamReader.dtdPublicId": (),
- "PySide2.QtCore.QXmlStreamReader.dtdSystemId": (),
- "PySide2.QtCore.QXmlStreamReader.entityDeclarations": (),
- "PySide2.QtCore.QXmlStreamReader.entityResolver": (),
- "PySide2.QtCore.QXmlStreamReader.error": (),
- "PySide2.QtCore.QXmlStreamReader.errorString": (),
- "PySide2.QtCore.QXmlStreamReader.hasError": (),
- "PySide2.QtCore.QXmlStreamReader.isCDATA": (),
- "PySide2.QtCore.QXmlStreamReader.isCharacters": (),
- "PySide2.QtCore.QXmlStreamReader.isComment": (),
- "PySide2.QtCore.QXmlStreamReader.isDTD": (),
- "PySide2.QtCore.QXmlStreamReader.isEndDocument": (),
- "PySide2.QtCore.QXmlStreamReader.isEndElement": (),
- "PySide2.QtCore.QXmlStreamReader.isEntityReference": (),
- "PySide2.QtCore.QXmlStreamReader.isProcessingInstruction": (),
- "PySide2.QtCore.QXmlStreamReader.isStandaloneDocument": (),
- "PySide2.QtCore.QXmlStreamReader.isStartDocument": (),
- "PySide2.QtCore.QXmlStreamReader.isStartElement": (),
- "PySide2.QtCore.QXmlStreamReader.isWhitespace": (),
- "PySide2.QtCore.QXmlStreamReader.lineNumber": (),
- "PySide2.QtCore.QXmlStreamReader.name": (),
- "PySide2.QtCore.QXmlStreamReader.namespaceDeclarations": (),
- "PySide2.QtCore.QXmlStreamReader.namespaceProcessing": (),
- "PySide2.QtCore.QXmlStreamReader.namespaceUri": (),
- "PySide2.QtCore.QXmlStreamReader.notationDeclarations": (),
- "PySide2.QtCore.QXmlStreamReader.prefix": (),
- "PySide2.QtCore.QXmlStreamReader.processingInstructionData": (),
- "PySide2.QtCore.QXmlStreamReader.processingInstructionTarget": (),
- "PySide2.QtCore.QXmlStreamReader.qualifiedName": (),
- "PySide2.QtCore.QXmlStreamReader.raiseError": ('str',),
- "PySide2.QtCore.QXmlStreamReader.readElementText": ('PySide2.QtCore.QXmlStreamReader.ReadElementTextBehaviour',),
- "PySide2.QtCore.QXmlStreamReader.readNext": (),
- "PySide2.QtCore.QXmlStreamReader.readNextStartElement": (),
- "PySide2.QtCore.QXmlStreamReader.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtCore.QXmlStreamReader.setEntityResolver": ('PySide2.QtCore.QXmlStreamEntityResolver',),
- "PySide2.QtCore.QXmlStreamReader.setNamespaceProcessing": ('bool',),
- "PySide2.QtCore.QXmlStreamReader.skipCurrentElement": (),
- "PySide2.QtCore.QXmlStreamReader.text": (),
- "PySide2.QtCore.QXmlStreamReader.tokenString": (),
- "PySide2.QtCore.QXmlStreamReader.tokenType": (),
-# class PySide2.QtCore.QXmlStreamWriter:
- "PySide2.QtCore.QXmlStreamWriter.__init__": [(), ('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QIODevice',)],
- "PySide2.QtCore.QXmlStreamWriter.autoFormatting": (),
- "PySide2.QtCore.QXmlStreamWriter.autoFormattingIndent": (),
- "PySide2.QtCore.QXmlStreamWriter.codec": (),
- "PySide2.QtCore.QXmlStreamWriter.device": (),
- "PySide2.QtCore.QXmlStreamWriter.hasError": (),
- "PySide2.QtCore.QXmlStreamWriter.setAutoFormatting": ('bool',),
- "PySide2.QtCore.QXmlStreamWriter.setAutoFormattingIndent": ('int',),
- "PySide2.QtCore.QXmlStreamWriter.setCodec": [('PySide2.QtCore.QTextCodec',), ('str',)],
- "PySide2.QtCore.QXmlStreamWriter.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtCore.QXmlStreamWriter.writeAttribute": [('PySide2.QtCore.QXmlStreamAttribute',), ('str', 'str'), ('str', 'str', 'str')],
- "PySide2.QtCore.QXmlStreamWriter.writeAttributes": ('PySide2.QtCore.QXmlStreamAttributes',),
- "PySide2.QtCore.QXmlStreamWriter.writeCDATA": ('str',),
- "PySide2.QtCore.QXmlStreamWriter.writeCharacters": ('str',),
- "PySide2.QtCore.QXmlStreamWriter.writeComment": ('str',),
- "PySide2.QtCore.QXmlStreamWriter.writeCurrentToken": ('PySide2.QtCore.QXmlStreamReader',),
- "PySide2.QtCore.QXmlStreamWriter.writeDTD": ('str',),
- "PySide2.QtCore.QXmlStreamWriter.writeDefaultNamespace": ('str',),
- "PySide2.QtCore.QXmlStreamWriter.writeEmptyElement": [('str',), ('str', 'str')],
- "PySide2.QtCore.QXmlStreamWriter.writeEndDocument": (),
- "PySide2.QtCore.QXmlStreamWriter.writeEndElement": (),
- "PySide2.QtCore.QXmlStreamWriter.writeEntityReference": ('str',),
- "PySide2.QtCore.QXmlStreamWriter.writeNamespace": ('str', 'str'),
- "PySide2.QtCore.QXmlStreamWriter.writeProcessingInstruction": ('str', 'str'),
- "PySide2.QtCore.QXmlStreamWriter.writeStartDocument": [(), ('str',), ('str', 'bool')],
- "PySide2.QtCore.QXmlStreamWriter.writeStartElement": [('str',), ('str', 'str')],
- "PySide2.QtCore.QXmlStreamWriter.writeTextElement": [('str', 'str'), ('str', 'str', 'str')],
-# class PySide2.QtCore.Qt:
-# class PySide2.QtCore.Qt.Alignment:
-# class PySide2.QtCore.Qt.AlignmentFlag:
-# class PySide2.QtCore.Qt.AnchorPoint:
-# class PySide2.QtCore.Qt.ApplicationAttribute:
-# class PySide2.QtCore.Qt.ApplicationState:
-# class PySide2.QtCore.Qt.ApplicationStates:
-# class PySide2.QtCore.Qt.ArrowType:
-# class PySide2.QtCore.Qt.AspectRatioMode:
-# class PySide2.QtCore.Qt.Axis:
-# class PySide2.QtCore.Qt.BGMode:
-# class PySide2.QtCore.Qt.BrushStyle:
-# class PySide2.QtCore.Qt.CaseSensitivity:
-# class PySide2.QtCore.Qt.CheckState:
-# class PySide2.QtCore.Qt.ChecksumType:
-# class PySide2.QtCore.Qt.ClipOperation:
-# class PySide2.QtCore.Qt.ConnectionType:
-# class PySide2.QtCore.Qt.ContextMenuPolicy:
-# class PySide2.QtCore.Qt.CoordinateSystem:
-# class PySide2.QtCore.Qt.Corner:
-# class PySide2.QtCore.Qt.CursorMoveStyle:
-# class PySide2.QtCore.Qt.CursorShape:
-# class PySide2.QtCore.Qt.DateFormat:
-# class PySide2.QtCore.Qt.DayOfWeek:
-# class PySide2.QtCore.Qt.DockWidgetArea:
-# class PySide2.QtCore.Qt.DockWidgetAreaSizes:
-# class PySide2.QtCore.Qt.DockWidgetAreas:
-# class PySide2.QtCore.Qt.DropAction:
-# class PySide2.QtCore.Qt.DropActions:
-# class PySide2.QtCore.Qt.Edge:
-# class PySide2.QtCore.Qt.Edges:
-# class PySide2.QtCore.Qt.EnterKeyType:
-# class PySide2.QtCore.Qt.EventPriority:
-# class PySide2.QtCore.Qt.FillRule:
-# class PySide2.QtCore.Qt.FindChildOption:
-# class PySide2.QtCore.Qt.FindChildOptions:
-# class PySide2.QtCore.Qt.FocusPolicy:
-# class PySide2.QtCore.Qt.FocusReason:
-# class PySide2.QtCore.Qt.GestureFlag:
-# class PySide2.QtCore.Qt.GestureFlags:
-# class PySide2.QtCore.Qt.GestureState:
-# class PySide2.QtCore.Qt.GestureType:
-# class PySide2.QtCore.Qt.GlobalColor:
-# class PySide2.QtCore.Qt.HighDpiScaleFactorRoundingPolicy:
-# class PySide2.QtCore.Qt.HitTestAccuracy:
-# class PySide2.QtCore.Qt.ImageConversionFlag:
-# class PySide2.QtCore.Qt.ImageConversionFlags:
-# class PySide2.QtCore.Qt.InputMethodHint:
-# class PySide2.QtCore.Qt.InputMethodHints:
-# class PySide2.QtCore.Qt.InputMethodQueries:
-# class PySide2.QtCore.Qt.InputMethodQuery:
-# class PySide2.QtCore.Qt.ItemDataRole:
-# class PySide2.QtCore.Qt.ItemFlag:
-# class PySide2.QtCore.Qt.ItemFlags:
-# class PySide2.QtCore.Qt.ItemSelectionMode:
-# class PySide2.QtCore.Qt.ItemSelectionOperation:
-# class PySide2.QtCore.Qt.Key:
-# class PySide2.QtCore.Qt.KeyboardModifier:
-# class PySide2.QtCore.Qt.KeyboardModifiers:
-# class PySide2.QtCore.Qt.LayoutDirection:
-# class PySide2.QtCore.Qt.MaskMode:
-# class PySide2.QtCore.Qt.MatchFlag:
-# class PySide2.QtCore.Qt.MatchFlags:
-# class PySide2.QtCore.Qt.Modifier:
-# class PySide2.QtCore.Qt.MouseButton:
-# class PySide2.QtCore.Qt.MouseButtons:
-# class PySide2.QtCore.Qt.MouseEventFlag:
-# class PySide2.QtCore.Qt.MouseEventFlags:
-# class PySide2.QtCore.Qt.MouseEventSource:
-# class PySide2.QtCore.Qt.NativeGestureType:
-# class PySide2.QtCore.Qt.NavigationMode:
-# class PySide2.QtCore.Qt.Orientation:
-# class PySide2.QtCore.Qt.Orientations:
-# class PySide2.QtCore.Qt.PenCapStyle:
-# class PySide2.QtCore.Qt.PenJoinStyle:
-# class PySide2.QtCore.Qt.PenStyle:
-# class PySide2.QtCore.Qt.ScreenOrientation:
-# class PySide2.QtCore.Qt.ScreenOrientations:
-# class PySide2.QtCore.Qt.ScrollBarPolicy:
-# class PySide2.QtCore.Qt.ScrollPhase:
-# class PySide2.QtCore.Qt.ShortcutContext:
-# class PySide2.QtCore.Qt.SizeHint:
-# class PySide2.QtCore.Qt.SizeMode:
-# class PySide2.QtCore.Qt.SortOrder:
-# class PySide2.QtCore.Qt.SplitBehavior:
-# class PySide2.QtCore.Qt.SplitBehaviorFlags:
-# class PySide2.QtCore.Qt.TabFocusBehavior:
-# class PySide2.QtCore.Qt.TextElideMode:
-# class PySide2.QtCore.Qt.TextFlag:
-# class PySide2.QtCore.Qt.TextFormat:
-# class PySide2.QtCore.Qt.TextInteractionFlag:
-# class PySide2.QtCore.Qt.TextInteractionFlags:
-# class PySide2.QtCore.Qt.TileRule:
-# class PySide2.QtCore.Qt.TimeSpec:
-# class PySide2.QtCore.Qt.TimerType:
-# class PySide2.QtCore.Qt.ToolBarArea:
-# class PySide2.QtCore.Qt.ToolBarAreaSizes:
-# class PySide2.QtCore.Qt.ToolBarAreas:
-# class PySide2.QtCore.Qt.ToolButtonStyle:
-# class PySide2.QtCore.Qt.TouchPointState:
-# class PySide2.QtCore.Qt.TouchPointStates:
-# class PySide2.QtCore.Qt.TransformationMode:
-# class PySide2.QtCore.Qt.UIEffect:
-# class PySide2.QtCore.Qt.WhiteSpaceMode:
-# class PySide2.QtCore.Qt.WidgetAttribute:
-# class PySide2.QtCore.Qt.WindowFlags:
-# class PySide2.QtCore.Qt.WindowFrameSection:
-# class PySide2.QtCore.Qt.WindowModality:
-# class PySide2.QtCore.Qt.WindowState:
-# class PySide2.QtCore.Qt.WindowStates:
-# class PySide2.QtCore.Qt.WindowType:
-# class PySide2.QtCore.QtMsgType:
-# class PySide2.QtCore.Signal:
- "PySide2.QtCore.Signal.__init__": ('type', 'str', 'str'),
-# class PySide2.QtCore.SignalInstance:
- "PySide2.QtCore.SignalInstance.connect": ('object', 'type'),
- "PySide2.QtCore.SignalInstance.disconnect": ('object',),
- "PySide2.QtCore.SignalInstance.emit": ('typing.Any',),
-# class PySide2.QtCore.Slot:
- "PySide2.QtCore.Slot.__init__": ('type', 'str', 'str'),
- "PySide2.QtCore.Slot.QT_TRANSLATE_NOOP": ('object', 'object'),
- "PySide2.QtCore.Slot.QT_TRANSLATE_NOOP3": ('object', 'object', 'object'),
- "PySide2.QtCore.Slot.QT_TRANSLATE_NOOP_UTF8": ('object',),
- "PySide2.QtCore.Slot.QT_TR_NOOP": ('object',),
- "PySide2.QtCore.Slot.QT_TR_NOOP_UTF8": ('object',),
- "PySide2.QtCore.Slot.SIGNAL": ('str',),
- "PySide2.QtCore.Slot.SLOT": ('str',),
- "PySide2.QtCore.Slot.__moduleShutdown": (),
- "PySide2.QtCore.Slot.qAbs": ('float',),
- "PySide2.QtCore.Slot.qAcos": ('float',),
- "PySide2.QtCore.Slot.qAddPostRoutine": ('object',),
- "PySide2.QtCore.Slot.qAsin": ('float',),
- "PySide2.QtCore.Slot.qAtan": ('float',),
- "PySide2.QtCore.Slot.qAtan2": ('float', 'float'),
- "PySide2.QtCore.Slot.qChecksum": ('str', 'int'),
- "PySide2.QtCore.Slot.qCompress": [('PySide2.QtCore.QByteArray', 'int'), ('str', 'int', 'int')],
- "PySide2.QtCore.Slot.qCritical": ('str',),
- "PySide2.QtCore.Slot.qDebug": ('str',),
- "PySide2.QtCore.Slot.qExp": ('float',),
- "PySide2.QtCore.Slot.qFabs": ('float',),
- "PySide2.QtCore.Slot.qFastCos": ('float',),
- "PySide2.QtCore.Slot.qFastSin": ('float',),
- "PySide2.QtCore.Slot.qFatal": ('str',),
- "PySide2.QtCore.Slot.qFuzzyCompare": ('float', 'float'),
- "PySide2.QtCore.Slot.qFuzzyIsNull": ('float',),
- "PySide2.QtCore.Slot.qInstallMessageHandler": ('object',),
- "PySide2.QtCore.Slot.qIsFinite": ('float',),
- "PySide2.QtCore.Slot.qIsInf": ('float',),
- "PySide2.QtCore.Slot.qIsNaN": ('float',),
- "PySide2.QtCore.Slot.qIsNull": ('float',),
- "PySide2.QtCore.Slot.qRegisterResourceData": ('int', 'str', 'str', 'str'),
- "PySide2.QtCore.Slot.qTan": ('float',),
- "PySide2.QtCore.Slot.qUncompress": [('PySide2.QtCore.QByteArray',), ('str', 'int')],
- "PySide2.QtCore.Slot.qUnregisterResourceData": ('int', 'str', 'str', 'str'),
- "PySide2.QtCore.Slot.qVersion": (),
- "PySide2.QtCore.Slot.qWarning": ('str',),
- "PySide2.QtCore.Slot.qrand": (),
- "PySide2.QtCore.Slot.qsrand": ('int',),
- "PySide2.QtCore.Slot.qtTrId": ('str', 'int'),
- }) if "PySide2.QtCore" in sys.modules else None
-# Module PySide2.QtGui
-sig_dict.update({
-# class PySide2.QtGui.QAbstractOpenGLFunctions:
- "PySide2.QtGui.QAbstractOpenGLFunctions.__init__": (),
- "PySide2.QtGui.QAbstractOpenGLFunctions.initializeOpenGLFunctions": (),
- "PySide2.QtGui.QAbstractOpenGLFunctions.isInitialized": (),
- "PySide2.QtGui.QAbstractOpenGLFunctions.owningContext": (),
- "PySide2.QtGui.QAbstractOpenGLFunctions.setOwningContext": ('PySide2.QtGui.QOpenGLContext',),
-# class PySide2.QtGui.QAbstractTextDocumentLayout:
-# class PySide2.QtGui.QAbstractTextDocumentLayout.PaintContext:
- "PySide2.QtGui.QAbstractTextDocumentLayout.PaintContext.__init__": [(), ('PySide2.QtGui.QAbstractTextDocumentLayout.PaintContext',)],
- "PySide2.QtGui.QAbstractTextDocumentLayout.PaintContext.__copy__": (),
-# class PySide2.QtGui.QAbstractTextDocumentLayout.Selection:
- "PySide2.QtGui.QAbstractTextDocumentLayout.Selection.__init__": [(), ('PySide2.QtGui.QAbstractTextDocumentLayout.Selection',)],
- "PySide2.QtGui.QAbstractTextDocumentLayout.Selection.__copy__": (),
- "PySide2.QtGui.QAbstractTextDocumentLayout.__init__": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.anchorAt": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.blockBoundingRect": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.blockWithMarkerAt": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.document": (),
- "PySide2.QtGui.QAbstractTextDocumentLayout.documentChanged": ('int', 'int', 'int'),
- "PySide2.QtGui.QAbstractTextDocumentLayout.documentSize": (),
- "PySide2.QtGui.QAbstractTextDocumentLayout.draw": ('PySide2.QtGui.QPainter', 'PySide2.QtGui.QAbstractTextDocumentLayout.PaintContext'),
- "PySide2.QtGui.QAbstractTextDocumentLayout.drawInlineObject": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF', 'PySide2.QtGui.QTextInlineObject', 'int', 'PySide2.QtGui.QTextFormat'),
- "PySide2.QtGui.QAbstractTextDocumentLayout.format": ('int',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.formatAt": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.formatIndex": ('int',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.frameBoundingRect": ('PySide2.QtGui.QTextFrame',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.handlerForObject": ('int',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.hitTest": ('PySide2.QtCore.QPointF', 'PySide2.QtCore.Qt.HitTestAccuracy'),
- "PySide2.QtGui.QAbstractTextDocumentLayout.imageAt": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.pageCount": (),
- "PySide2.QtGui.QAbstractTextDocumentLayout.paintDevice": (),
- "PySide2.QtGui.QAbstractTextDocumentLayout.positionInlineObject": ('PySide2.QtGui.QTextInlineObject', 'int', 'PySide2.QtGui.QTextFormat'),
- "PySide2.QtGui.QAbstractTextDocumentLayout.registerHandler": ('int', 'PySide2.QtCore.QObject'),
- "PySide2.QtGui.QAbstractTextDocumentLayout.resizeInlineObject": ('PySide2.QtGui.QTextInlineObject', 'int', 'PySide2.QtGui.QTextFormat'),
- "PySide2.QtGui.QAbstractTextDocumentLayout.setPaintDevice": ('PySide2.QtGui.QPaintDevice',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.unregisterHandler": ('int', 'PySide2.QtCore.QObject'),
-# class PySide2.QtGui.QAccessible:
-# class PySide2.QtGui.QAccessible.Event:
-# class PySide2.QtGui.QAccessible.InterfaceType:
-# class PySide2.QtGui.QAccessible.Relation:
-# class PySide2.QtGui.QAccessible.RelationFlag:
-# class PySide2.QtGui.QAccessible.Role:
-# class PySide2.QtGui.QAccessible.State:
- "PySide2.QtGui.QAccessible.State.__init__": [(), ('PySide2.QtGui.QAccessible.State',)],
- "PySide2.QtGui.QAccessible.State.__copy__": (),
-# class PySide2.QtGui.QAccessible.Text:
-# class PySide2.QtGui.QAccessible.TextBoundaryType:
- "PySide2.QtGui.QAccessible.__copy__": (),
- "PySide2.QtGui.QAccessible.accessibleInterface": ('int',),
- "PySide2.QtGui.QAccessible.cleanup": (),
- "PySide2.QtGui.QAccessible.deleteAccessibleInterface": ('int',),
- "PySide2.QtGui.QAccessible.isActive": (),
- "PySide2.QtGui.QAccessible.qAccessibleTextBoundaryHelper": ('PySide2.QtGui.QTextCursor', 'PySide2.QtGui.QAccessible.TextBoundaryType'),
- "PySide2.QtGui.QAccessible.queryAccessibleInterface": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QAccessible.registerAccessibleInterface": ('PySide2.QtGui.QAccessibleInterface',),
- "PySide2.QtGui.QAccessible.setActive": ('bool',),
- "PySide2.QtGui.QAccessible.setRootObject": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QAccessible.uniqueId": ('PySide2.QtGui.QAccessibleInterface',),
- "PySide2.QtGui.QAccessible.updateAccessibility": ('PySide2.QtGui.QAccessibleEvent',),
-# class PySide2.QtGui.QAccessibleEditableTextInterface:
- "PySide2.QtGui.QAccessibleEditableTextInterface.__init__": (),
- "PySide2.QtGui.QAccessibleEditableTextInterface.deleteText": ('int', 'int'),
- "PySide2.QtGui.QAccessibleEditableTextInterface.insertText": ('int', 'str'),
- "PySide2.QtGui.QAccessibleEditableTextInterface.replaceText": ('int', 'int', 'str'),
-# class PySide2.QtGui.QAccessibleEvent:
- "PySide2.QtGui.QAccessibleEvent.__init__": [('PySide2.QtCore.QObject', 'PySide2.QtGui.QAccessible.Event'), ('PySide2.QtGui.QAccessibleInterface', 'PySide2.QtGui.QAccessible.Event')],
- "PySide2.QtGui.QAccessibleEvent.accessibleInterface": (),
- "PySide2.QtGui.QAccessibleEvent.child": (),
- "PySide2.QtGui.QAccessibleEvent.object": (),
- "PySide2.QtGui.QAccessibleEvent.setChild": ('int',),
- "PySide2.QtGui.QAccessibleEvent.type": (),
- "PySide2.QtGui.QAccessibleEvent.uniqueId": (),
-# class PySide2.QtGui.QAccessibleInterface:
- "PySide2.QtGui.QAccessibleInterface.__init__": (),
- "PySide2.QtGui.QAccessibleInterface.backgroundColor": (),
- "PySide2.QtGui.QAccessibleInterface.child": ('int',),
- "PySide2.QtGui.QAccessibleInterface.childAt": ('int', 'int'),
- "PySide2.QtGui.QAccessibleInterface.childCount": (),
- "PySide2.QtGui.QAccessibleInterface.editableTextInterface": (),
- "PySide2.QtGui.QAccessibleInterface.focusChild": (),
- "PySide2.QtGui.QAccessibleInterface.foregroundColor": (),
- "PySide2.QtGui.QAccessibleInterface.indexOfChild": ('PySide2.QtGui.QAccessibleInterface',),
- "PySide2.QtGui.QAccessibleInterface.interface_cast": ('PySide2.QtGui.QAccessible.InterfaceType',),
- "PySide2.QtGui.QAccessibleInterface.isValid": (),
- "PySide2.QtGui.QAccessibleInterface.object": (),
- "PySide2.QtGui.QAccessibleInterface.parent": (),
- "PySide2.QtGui.QAccessibleInterface.rect": (),
- "PySide2.QtGui.QAccessibleInterface.relations": ('PySide2.QtGui.QAccessible.Relation',),
- "PySide2.QtGui.QAccessibleInterface.role": (),
- "PySide2.QtGui.QAccessibleInterface.setText": ('PySide2.QtGui.QAccessible.Text', 'str'),
- "PySide2.QtGui.QAccessibleInterface.state": (),
- "PySide2.QtGui.QAccessibleInterface.tableCellInterface": (),
- "PySide2.QtGui.QAccessibleInterface.text": ('PySide2.QtGui.QAccessible.Text',),
- "PySide2.QtGui.QAccessibleInterface.textInterface": (),
- "PySide2.QtGui.QAccessibleInterface.valueInterface": (),
- "PySide2.QtGui.QAccessibleInterface.virtual_hook": ('int', 'int'),
- "PySide2.QtGui.QAccessibleInterface.window": (),
-# class PySide2.QtGui.QAccessibleObject:
- "PySide2.QtGui.QAccessibleObject.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QAccessibleObject.childAt": ('int', 'int'),
- "PySide2.QtGui.QAccessibleObject.isValid": (),
- "PySide2.QtGui.QAccessibleObject.object": (),
- "PySide2.QtGui.QAccessibleObject.rect": (),
- "PySide2.QtGui.QAccessibleObject.setText": ('PySide2.QtGui.QAccessible.Text', 'str'),
-# class PySide2.QtGui.QAccessibleStateChangeEvent:
- "PySide2.QtGui.QAccessibleStateChangeEvent.__init__": [('PySide2.QtCore.QObject', 'PySide2.QtGui.QAccessible.State'), ('PySide2.QtGui.QAccessibleInterface', 'PySide2.QtGui.QAccessible.State')],
- "PySide2.QtGui.QAccessibleStateChangeEvent.changedStates": (),
-# class PySide2.QtGui.QAccessibleTableCellInterface:
- "PySide2.QtGui.QAccessibleTableCellInterface.__init__": (),
- "PySide2.QtGui.QAccessibleTableCellInterface.columnExtent": (),
- "PySide2.QtGui.QAccessibleTableCellInterface.columnHeaderCells": (),
- "PySide2.QtGui.QAccessibleTableCellInterface.columnIndex": (),
- "PySide2.QtGui.QAccessibleTableCellInterface.isSelected": (),
- "PySide2.QtGui.QAccessibleTableCellInterface.rowExtent": (),
- "PySide2.QtGui.QAccessibleTableCellInterface.rowHeaderCells": (),
- "PySide2.QtGui.QAccessibleTableCellInterface.rowIndex": (),
- "PySide2.QtGui.QAccessibleTableCellInterface.table": (),
-# class PySide2.QtGui.QAccessibleTableModelChangeEvent:
-# class PySide2.QtGui.QAccessibleTableModelChangeEvent.ModelChangeType:
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.__init__": [('PySide2.QtCore.QObject', 'PySide2.QtGui.QAccessibleTableModelChangeEvent.ModelChangeType'), ('PySide2.QtGui.QAccessibleInterface', 'PySide2.QtGui.QAccessibleTableModelChangeEvent.ModelChangeType')],
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.firstColumn": (),
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.firstRow": (),
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.lastColumn": (),
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.lastRow": (),
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.modelChangeType": (),
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.setFirstColumn": ('int',),
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.setFirstRow": ('int',),
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.setLastColumn": ('int',),
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.setLastRow": ('int',),
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.setModelChangeType": ('PySide2.QtGui.QAccessibleTableModelChangeEvent.ModelChangeType',),
-# class PySide2.QtGui.QAccessibleTextCursorEvent:
- "PySide2.QtGui.QAccessibleTextCursorEvent.__init__": [('PySide2.QtCore.QObject', 'int'), ('PySide2.QtGui.QAccessibleInterface', 'int')],
- "PySide2.QtGui.QAccessibleTextCursorEvent.cursorPosition": (),
- "PySide2.QtGui.QAccessibleTextCursorEvent.setCursorPosition": ('int',),
-# class PySide2.QtGui.QAccessibleTextInsertEvent:
- "PySide2.QtGui.QAccessibleTextInsertEvent.__init__": [('PySide2.QtCore.QObject', 'int', 'str'), ('PySide2.QtGui.QAccessibleInterface', 'int', 'str')],
- "PySide2.QtGui.QAccessibleTextInsertEvent.changePosition": (),
- "PySide2.QtGui.QAccessibleTextInsertEvent.textInserted": (),
-# class PySide2.QtGui.QAccessibleTextInterface:
- "PySide2.QtGui.QAccessibleTextInterface.__init__": (),
- "PySide2.QtGui.QAccessibleTextInterface.addSelection": ('int', 'int'),
- "PySide2.QtGui.QAccessibleTextInterface.attributes": ('int',),
- "PySide2.QtGui.QAccessibleTextInterface.characterCount": (),
- "PySide2.QtGui.QAccessibleTextInterface.characterRect": ('int',),
- "PySide2.QtGui.QAccessibleTextInterface.cursorPosition": (),
- "PySide2.QtGui.QAccessibleTextInterface.offsetAtPoint": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QAccessibleTextInterface.removeSelection": ('int',),
- "PySide2.QtGui.QAccessibleTextInterface.scrollToSubstring": ('int', 'int'),
- "PySide2.QtGui.QAccessibleTextInterface.selection": ('int',),
- "PySide2.QtGui.QAccessibleTextInterface.selectionCount": (),
- "PySide2.QtGui.QAccessibleTextInterface.setCursorPosition": ('int',),
- "PySide2.QtGui.QAccessibleTextInterface.setSelection": ('int', 'int', 'int'),
- "PySide2.QtGui.QAccessibleTextInterface.text": ('int', 'int'),
- "PySide2.QtGui.QAccessibleTextInterface.textAfterOffset": ('int', 'PySide2.QtGui.QAccessible.TextBoundaryType'),
- "PySide2.QtGui.QAccessibleTextInterface.textAtOffset": ('int', 'PySide2.QtGui.QAccessible.TextBoundaryType'),
- "PySide2.QtGui.QAccessibleTextInterface.textBeforeOffset": ('int', 'PySide2.QtGui.QAccessible.TextBoundaryType'),
-# class PySide2.QtGui.QAccessibleTextRemoveEvent:
- "PySide2.QtGui.QAccessibleTextRemoveEvent.__init__": [('PySide2.QtCore.QObject', 'int', 'str'), ('PySide2.QtGui.QAccessibleInterface', 'int', 'str')],
- "PySide2.QtGui.QAccessibleTextRemoveEvent.changePosition": (),
- "PySide2.QtGui.QAccessibleTextRemoveEvent.textRemoved": (),
-# class PySide2.QtGui.QAccessibleTextSelectionEvent:
- "PySide2.QtGui.QAccessibleTextSelectionEvent.__init__": [('PySide2.QtCore.QObject', 'int', 'int'), ('PySide2.QtGui.QAccessibleInterface', 'int', 'int')],
- "PySide2.QtGui.QAccessibleTextSelectionEvent.selectionEnd": (),
- "PySide2.QtGui.QAccessibleTextSelectionEvent.selectionStart": (),
- "PySide2.QtGui.QAccessibleTextSelectionEvent.setSelection": ('int', 'int'),
-# class PySide2.QtGui.QAccessibleTextUpdateEvent:
- "PySide2.QtGui.QAccessibleTextUpdateEvent.__init__": [('PySide2.QtCore.QObject', 'int', 'str', 'str'), ('PySide2.QtGui.QAccessibleInterface', 'int', 'str', 'str')],
- "PySide2.QtGui.QAccessibleTextUpdateEvent.changePosition": (),
- "PySide2.QtGui.QAccessibleTextUpdateEvent.textInserted": (),
- "PySide2.QtGui.QAccessibleTextUpdateEvent.textRemoved": (),
-# class PySide2.QtGui.QAccessibleValueChangeEvent:
- "PySide2.QtGui.QAccessibleValueChangeEvent.__init__": [('PySide2.QtCore.QObject', 'typing.Any'), ('PySide2.QtGui.QAccessibleInterface', 'typing.Any')],
- "PySide2.QtGui.QAccessibleValueChangeEvent.setValue": ('typing.Any',),
- "PySide2.QtGui.QAccessibleValueChangeEvent.value": (),
-# class PySide2.QtGui.QAccessibleValueInterface:
- "PySide2.QtGui.QAccessibleValueInterface.__init__": (),
- "PySide2.QtGui.QAccessibleValueInterface.currentValue": (),
- "PySide2.QtGui.QAccessibleValueInterface.maximumValue": (),
- "PySide2.QtGui.QAccessibleValueInterface.minimumStepSize": (),
- "PySide2.QtGui.QAccessibleValueInterface.minimumValue": (),
- "PySide2.QtGui.QAccessibleValueInterface.setCurrentValue": ('typing.Any',),
-# class PySide2.QtGui.QActionEvent:
-# class PySide2.QtGui.QBackingStore:
- "PySide2.QtGui.QBackingStore.__init__": ('PySide2.QtGui.QWindow',),
- "PySide2.QtGui.QBackingStore.beginPaint": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QBackingStore.endPaint": (),
- "PySide2.QtGui.QBackingStore.flush": ('PySide2.QtGui.QRegion', 'PySide2.QtGui.QWindow', 'PySide2.QtCore.QPoint'),
- "PySide2.QtGui.QBackingStore.hasStaticContents": (),
- "PySide2.QtGui.QBackingStore.paintDevice": (),
- "PySide2.QtGui.QBackingStore.resize": ('PySide2.QtCore.QSize',),
- "PySide2.QtGui.QBackingStore.scroll": ('PySide2.QtGui.QRegion', 'int', 'int'),
- "PySide2.QtGui.QBackingStore.setStaticContents": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QBackingStore.size": (),
- "PySide2.QtGui.QBackingStore.staticContents": (),
- "PySide2.QtGui.QBackingStore.window": (),
-# class PySide2.QtGui.QBitmap:
- "PySide2.QtGui.QBitmap.__init__": [(), ('PySide2.QtCore.QSize',), ('PySide2.QtGui.QBitmap',), ('PySide2.QtGui.QPixmap',), ('int', 'int'), ('str', 'str')],
- "PySide2.QtGui.QBitmap.__copy__": (),
- "PySide2.QtGui.QBitmap.clear": (),
- "PySide2.QtGui.QBitmap.fromData": ('PySide2.QtCore.QSize', 'str', 'PySide2.QtGui.QImage.Format'),
- "PySide2.QtGui.QBitmap.fromImage": ('PySide2.QtGui.QImage', 'PySide2.QtCore.Qt.ImageConversionFlags'),
- "PySide2.QtGui.QBitmap.swap": [('PySide2.QtGui.QBitmap',), ('PySide2.QtGui.QPixmap',)],
- "PySide2.QtGui.QBitmap.transformed": [('PySide2.QtGui.QMatrix',), ('PySide2.QtGui.QMatrix', 'PySide2.QtCore.Qt.TransformationMode'), ('PySide2.QtGui.QTransform',)],
-# class PySide2.QtGui.QBrush:
- "PySide2.QtGui.QBrush.__init__": [(), ('PySide2.QtCore.Qt.BrushStyle',), ('PySide2.QtCore.Qt.GlobalColor', 'PySide2.QtCore.Qt.BrushStyle'), ('PySide2.QtCore.Qt.GlobalColor', 'PySide2.QtGui.QPixmap'), ('PySide2.QtGui.QBrush',), ('PySide2.QtGui.QColor', 'PySide2.QtCore.Qt.BrushStyle'), ('PySide2.QtGui.QColor', 'PySide2.QtGui.QPixmap'), ('PySide2.QtGui.QGradient',), ('PySide2.QtGui.QImage',), ('PySide2.QtGui.QPixmap',)],
- "PySide2.QtGui.QBrush.__copy__": (),
- "PySide2.QtGui.QBrush.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QBrush.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QBrush.color": (),
- "PySide2.QtGui.QBrush.gradient": (),
- "PySide2.QtGui.QBrush.isOpaque": (),
- "PySide2.QtGui.QBrush.matrix": (),
- "PySide2.QtGui.QBrush.setColor": [('PySide2.QtCore.Qt.GlobalColor',), ('PySide2.QtGui.QColor',)],
- "PySide2.QtGui.QBrush.setMatrix": ('PySide2.QtGui.QMatrix',),
- "PySide2.QtGui.QBrush.setStyle": ('PySide2.QtCore.Qt.BrushStyle',),
- "PySide2.QtGui.QBrush.setTexture": ('PySide2.QtGui.QPixmap',),
- "PySide2.QtGui.QBrush.setTextureImage": ('PySide2.QtGui.QImage',),
- "PySide2.QtGui.QBrush.setTransform": ('PySide2.QtGui.QTransform',),
- "PySide2.QtGui.QBrush.style": (),
- "PySide2.QtGui.QBrush.swap": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QBrush.texture": (),
- "PySide2.QtGui.QBrush.textureImage": (),
- "PySide2.QtGui.QBrush.transform": (),
-# class PySide2.QtGui.QClipboard:
-# class PySide2.QtGui.QClipboard.Mode:
- "PySide2.QtGui.QClipboard.clear": ('PySide2.QtGui.QClipboard.Mode',),
- "PySide2.QtGui.QClipboard.image": ('PySide2.QtGui.QClipboard.Mode',),
- "PySide2.QtGui.QClipboard.mimeData": ('PySide2.QtGui.QClipboard.Mode',),
- "PySide2.QtGui.QClipboard.ownsClipboard": (),
- "PySide2.QtGui.QClipboard.ownsFindBuffer": (),
- "PySide2.QtGui.QClipboard.ownsSelection": (),
- "PySide2.QtGui.QClipboard.pixmap": ('PySide2.QtGui.QClipboard.Mode',),
- "PySide2.QtGui.QClipboard.setImage": ('PySide2.QtGui.QImage', 'PySide2.QtGui.QClipboard.Mode'),
- "PySide2.QtGui.QClipboard.setMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtGui.QClipboard.Mode'),
- "PySide2.QtGui.QClipboard.setPixmap": ('PySide2.QtGui.QPixmap', 'PySide2.QtGui.QClipboard.Mode'),
- "PySide2.QtGui.QClipboard.setText": ('str', 'PySide2.QtGui.QClipboard.Mode'),
- "PySide2.QtGui.QClipboard.supportsFindBuffer": (),
- "PySide2.QtGui.QClipboard.supportsSelection": (),
- "PySide2.QtGui.QClipboard.text": [('PySide2.QtGui.QClipboard.Mode',), ('str', 'PySide2.QtGui.QClipboard.Mode')],
-# class PySide2.QtGui.QCloseEvent:
- "PySide2.QtGui.QCloseEvent.__init__": (),
-# class PySide2.QtGui.QColor:
-# class PySide2.QtGui.QColor.NameFormat:
-# class PySide2.QtGui.QColor.Spec:
- "PySide2.QtGui.QColor.__init__": [(), ('PySide2.QtCore.Qt.GlobalColor',), ('PySide2.QtGui.QColor',), ('PySide2.QtGui.QColor.Spec', 'int', 'int', 'int', 'int', 'int'), ('int',), ('int', 'int', 'int', 'int'), ('str',), ('typing.Any',)],
- "PySide2.QtGui.QColor.__copy__": (),
- "PySide2.QtGui.QColor.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QColor.__reduce__": (),
- "PySide2.QtGui.QColor.__repr__": (),
- "PySide2.QtGui.QColor.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QColor.__setstate__": ('object',),
- "PySide2.QtGui.QColor.__str__": (),
- "PySide2.QtGui.QColor.alpha": (),
- "PySide2.QtGui.QColor.alphaF": (),
- "PySide2.QtGui.QColor.black": (),
- "PySide2.QtGui.QColor.blackF": (),
- "PySide2.QtGui.QColor.blue": (),
- "PySide2.QtGui.QColor.blueF": (),
- "PySide2.QtGui.QColor.colorNames": (),
- "PySide2.QtGui.QColor.convertTo": ('PySide2.QtGui.QColor.Spec',),
- "PySide2.QtGui.QColor.cyan": (),
- "PySide2.QtGui.QColor.cyanF": (),
- "PySide2.QtGui.QColor.dark": ('int',),
- "PySide2.QtGui.QColor.darker": ('int',),
- "PySide2.QtGui.QColor.fromCmyk": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QColor.fromCmykF": ('float', 'float', 'float', 'float', 'float'),
- "PySide2.QtGui.QColor.fromHsl": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QColor.fromHslF": ('float', 'float', 'float', 'float'),
- "PySide2.QtGui.QColor.fromHsv": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QColor.fromHsvF": ('float', 'float', 'float', 'float'),
- "PySide2.QtGui.QColor.fromRgb": [('int',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QColor.fromRgbF": ('float', 'float', 'float', 'float'),
- "PySide2.QtGui.QColor.fromRgba": ('int',),
- "PySide2.QtGui.QColor.fromRgba64": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QColor.getCmyk": (),
- "PySide2.QtGui.QColor.getCmykF": (),
- "PySide2.QtGui.QColor.getHsl": (),
- "PySide2.QtGui.QColor.getHslF": (),
- "PySide2.QtGui.QColor.getHsv": (),
- "PySide2.QtGui.QColor.getHsvF": (),
- "PySide2.QtGui.QColor.getRgb": (),
- "PySide2.QtGui.QColor.getRgbF": (),
- "PySide2.QtGui.QColor.green": (),
- "PySide2.QtGui.QColor.greenF": (),
- "PySide2.QtGui.QColor.hslHue": (),
- "PySide2.QtGui.QColor.hslHueF": (),
- "PySide2.QtGui.QColor.hslSaturation": (),
- "PySide2.QtGui.QColor.hslSaturationF": (),
- "PySide2.QtGui.QColor.hsvHue": (),
- "PySide2.QtGui.QColor.hsvHueF": (),
- "PySide2.QtGui.QColor.hsvSaturation": (),
- "PySide2.QtGui.QColor.hsvSaturationF": (),
- "PySide2.QtGui.QColor.hue": (),
- "PySide2.QtGui.QColor.hueF": (),
- "PySide2.QtGui.QColor.isValid": (),
- "PySide2.QtGui.QColor.isValidColor": ('str',),
- "PySide2.QtGui.QColor.light": ('int',),
- "PySide2.QtGui.QColor.lighter": ('int',),
- "PySide2.QtGui.QColor.lightness": (),
- "PySide2.QtGui.QColor.lightnessF": (),
- "PySide2.QtGui.QColor.magenta": (),
- "PySide2.QtGui.QColor.magentaF": (),
- "PySide2.QtGui.QColor.name": [(), ('PySide2.QtGui.QColor.NameFormat',)],
- "PySide2.QtGui.QColor.red": (),
- "PySide2.QtGui.QColor.redF": (),
- "PySide2.QtGui.QColor.rgb": (),
- "PySide2.QtGui.QColor.rgba": (),
- "PySide2.QtGui.QColor.saturation": (),
- "PySide2.QtGui.QColor.saturationF": (),
- "PySide2.QtGui.QColor.setAlpha": ('int',),
- "PySide2.QtGui.QColor.setAlphaF": ('float',),
- "PySide2.QtGui.QColor.setBlue": ('int',),
- "PySide2.QtGui.QColor.setBlueF": ('float',),
- "PySide2.QtGui.QColor.setCmyk": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QColor.setCmykF": ('float', 'float', 'float', 'float', 'float'),
- "PySide2.QtGui.QColor.setGreen": ('int',),
- "PySide2.QtGui.QColor.setGreenF": ('float',),
- "PySide2.QtGui.QColor.setHsl": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QColor.setHslF": ('float', 'float', 'float', 'float'),
- "PySide2.QtGui.QColor.setHsv": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QColor.setHsvF": ('float', 'float', 'float', 'float'),
- "PySide2.QtGui.QColor.setNamedColor": ('str',),
- "PySide2.QtGui.QColor.setRed": ('int',),
- "PySide2.QtGui.QColor.setRedF": ('float',),
- "PySide2.QtGui.QColor.setRgb": [('int',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QColor.setRgbF": ('float', 'float', 'float', 'float'),
- "PySide2.QtGui.QColor.setRgba": ('int',),
- "PySide2.QtGui.QColor.spec": (),
- "PySide2.QtGui.QColor.toCmyk": (),
- "PySide2.QtGui.QColor.toExtendedRgb": (),
- "PySide2.QtGui.QColor.toHsl": (),
- "PySide2.QtGui.QColor.toHsv": (),
- "PySide2.QtGui.QColor.toRgb": (),
- "PySide2.QtGui.QColor.toTuple": (),
- "PySide2.QtGui.QColor.value": (),
- "PySide2.QtGui.QColor.valueF": (),
- "PySide2.QtGui.QColor.yellow": (),
- "PySide2.QtGui.QColor.yellowF": (),
-# class PySide2.QtGui.QColorSpace:
-# class PySide2.QtGui.QColorSpace.NamedColorSpace:
-# class PySide2.QtGui.QColorSpace.Primaries:
-# class PySide2.QtGui.QColorSpace.TransferFunction:
- "PySide2.QtGui.QColorSpace.__init__": [(), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtGui.QColorSpace.TransferFunction', 'float'), ('PySide2.QtGui.QColorSpace',), ('PySide2.QtGui.QColorSpace.NamedColorSpace',), ('PySide2.QtGui.QColorSpace.Primaries', 'PySide2.QtGui.QColorSpace.TransferFunction', 'float'), ('PySide2.QtGui.QColorSpace.Primaries', 'float')],
- "PySide2.QtGui.QColorSpace.__copy__": (),
- "PySide2.QtGui.QColorSpace.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QColorSpace.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QColorSpace.fromIccProfile": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QColorSpace.gamma": (),
- "PySide2.QtGui.QColorSpace.iccProfile": (),
- "PySide2.QtGui.QColorSpace.isValid": (),
- "PySide2.QtGui.QColorSpace.primaries": (),
- "PySide2.QtGui.QColorSpace.setPrimaries": [('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'), ('PySide2.QtGui.QColorSpace.Primaries',)],
- "PySide2.QtGui.QColorSpace.setTransferFunction": ('PySide2.QtGui.QColorSpace.TransferFunction', 'float'),
- "PySide2.QtGui.QColorSpace.swap": ('PySide2.QtGui.QColorSpace',),
- "PySide2.QtGui.QColorSpace.transferFunction": (),
- "PySide2.QtGui.QColorSpace.withTransferFunction": ('PySide2.QtGui.QColorSpace.TransferFunction', 'float'),
-# class PySide2.QtGui.QConicalGradient:
- "PySide2.QtGui.QConicalGradient.__init__": [(), ('PySide2.QtCore.QPointF', 'float'), ('PySide2.QtGui.QConicalGradient',), ('float', 'float', 'float')],
- "PySide2.QtGui.QConicalGradient.__copy__": (),
- "PySide2.QtGui.QConicalGradient.angle": (),
- "PySide2.QtGui.QConicalGradient.center": (),
- "PySide2.QtGui.QConicalGradient.setAngle": ('float',),
- "PySide2.QtGui.QConicalGradient.setCenter": [('PySide2.QtCore.QPointF',), ('float', 'float')],
-# class PySide2.QtGui.QContextMenuEvent:
-# class PySide2.QtGui.QContextMenuEvent.Reason:
- "PySide2.QtGui.QContextMenuEvent.__init__": [('PySide2.QtGui.QContextMenuEvent.Reason', 'PySide2.QtCore.QPoint'), ('PySide2.QtGui.QContextMenuEvent.Reason', 'PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint'), ('PySide2.QtGui.QContextMenuEvent.Reason', 'PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint', 'PySide2.QtCore.Qt.KeyboardModifiers')],
- "PySide2.QtGui.QContextMenuEvent.globalPos": (),
- "PySide2.QtGui.QContextMenuEvent.globalX": (),
- "PySide2.QtGui.QContextMenuEvent.global""Y": (),
- "PySide2.QtGui.QContextMenuEvent.pos": (),
- "PySide2.QtGui.QContextMenuEvent.reason": (),
- "PySide2.QtGui.QContextMenuEvent.x": (),
- "PySide2.QtGui.QContextMenuEvent.y": (),
-# class PySide2.QtGui.QCursor:
- "PySide2.QtGui.QCursor.__init__": [(), ('PySide2.QtCore.Qt.CursorShape',), ('PySide2.QtGui.QBitmap', 'PySide2.QtGui.QBitmap', 'int', 'int'), ('PySide2.QtGui.QCursor',), ('PySide2.QtGui.QPixmap', 'int', 'int')],
- "PySide2.QtGui.QCursor.__copy__": (),
- "PySide2.QtGui.QCursor.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QCursor.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QCursor.bitmap": (),
- "PySide2.QtGui.QCursor.hotSpot": (),
- "PySide2.QtGui.QCursor.mask": (),
- "PySide2.QtGui.QCursor.pixmap": (),
- "PySide2.QtGui.QCursor.pos": [(), ('PySide2.QtGui.QScreen',)],
- "PySide2.QtGui.QCursor.setPos": [('PySide2.QtCore.QPoint',), ('PySide2.QtGui.QScreen', 'PySide2.QtCore.QPoint'), ('PySide2.QtGui.QScreen', 'int', 'int'), ('int', 'int')],
- "PySide2.QtGui.QCursor.setShape": ('PySide2.QtCore.Qt.CursorShape',),
- "PySide2.QtGui.QCursor.shape": (),
- "PySide2.QtGui.QCursor.swap": ('PySide2.QtGui.QCursor',),
-# class PySide2.QtGui.QDesktopServices:
- "PySide2.QtGui.QDesktopServices.__init__": (),
- "PySide2.QtGui.QDesktopServices.openUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtGui.QDesktopServices.setUrlHandler": ('str', 'PySide2.QtCore.QObject', 'str'),
- "PySide2.QtGui.QDesktopServices.unsetUrlHandler": ('str',),
-# class PySide2.QtGui.QDoubleValidator:
-# class PySide2.QtGui.QDoubleValidator.Notation:
- "PySide2.QtGui.QDoubleValidator.__init__": [('PySide2.QtCore.QObject',), ('float', 'float', 'int', 'PySide2.QtCore.QObject')],
- "PySide2.QtGui.QDoubleValidator.bottom": (),
- "PySide2.QtGui.QDoubleValidator.decimals": (),
- "PySide2.QtGui.QDoubleValidator.notation": (),
- "PySide2.QtGui.QDoubleValidator.setBottom": ('float',),
- "PySide2.QtGui.QDoubleValidator.setDecimals": ('int',),
- "PySide2.QtGui.QDoubleValidator.setNotation": ('PySide2.QtGui.QDoubleValidator.Notation',),
- "PySide2.QtGui.QDoubleValidator.setRange": ('float', 'float', 'int'),
- "PySide2.QtGui.QDoubleValidator.setTop": ('float',),
- "PySide2.QtGui.QDoubleValidator.top": (),
- "PySide2.QtGui.QDoubleValidator.validate": ('str', 'int'),
-# class PySide2.QtGui.QDrag:
- "PySide2.QtGui.QDrag.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QDrag.cancel": (),
- "PySide2.QtGui.QDrag.defaultAction": (),
- "PySide2.QtGui.QDrag.dragCursor": ('PySide2.QtCore.Qt.DropAction',),
- "PySide2.QtGui.QDrag.exec_": [('PySide2.QtCore.Qt.DropActions',), ('PySide2.QtCore.Qt.DropActions', 'PySide2.QtCore.Qt.DropAction')],
- "PySide2.QtGui.QDrag.hotSpot": (),
- "PySide2.QtGui.QDrag.mimeData": (),
- "PySide2.QtGui.QDrag.pixmap": (),
- "PySide2.QtGui.QDrag.setDragCursor": ('PySide2.QtGui.QPixmap', 'PySide2.QtCore.Qt.DropAction'),
- "PySide2.QtGui.QDrag.setHotSpot": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QDrag.setMimeData": ('PySide2.QtCore.QMimeData',),
- "PySide2.QtGui.QDrag.setPixmap": ('PySide2.QtGui.QPixmap',),
- "PySide2.QtGui.QDrag.source": (),
- "PySide2.QtGui.QDrag.start": ('PySide2.QtCore.Qt.DropActions',),
- "PySide2.QtGui.QDrag.supportedActions": (),
- "PySide2.QtGui.QDrag.target": (),
-# class PySide2.QtGui.QDragEnterEvent:
- "PySide2.QtGui.QDragEnterEvent.__init__": ('PySide2.QtCore.QPoint', 'PySide2.QtCore.Qt.DropActions', 'PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers'),
-# class PySide2.QtGui.QDragLeaveEvent:
- "PySide2.QtGui.QDragLeaveEvent.__init__": (),
-# class PySide2.QtGui.QDragMoveEvent:
- "PySide2.QtGui.QDragMoveEvent.__init__": ('PySide2.QtCore.QPoint', 'PySide2.QtCore.Qt.DropActions', 'PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QEvent.Type'),
- "PySide2.QtGui.QDragMoveEvent.accept": [(), ('PySide2.QtCore.QRect',)],
- "PySide2.QtGui.QDragMoveEvent.answerRect": (),
- "PySide2.QtGui.QDragMoveEvent.ignore": [(), ('PySide2.QtCore.QRect',)],
-# class PySide2.QtGui.QDropEvent:
- "PySide2.QtGui.QDropEvent.__init__": ('PySide2.QtCore.QPointF', 'PySide2.QtCore.Qt.DropActions', 'PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QEvent.Type'),
- "PySide2.QtGui.QDropEvent.acceptProposedAction": (),
- "PySide2.QtGui.QDropEvent.dropAction": (),
- "PySide2.QtGui.QDropEvent.keyboardModifiers": (),
- "PySide2.QtGui.QDropEvent.mimeData": (),
- "PySide2.QtGui.QDropEvent.mouseButtons": (),
- "PySide2.QtGui.QDropEvent.pos": (),
- "PySide2.QtGui.QDropEvent.posF": (),
- "PySide2.QtGui.QDropEvent.possibleActions": (),
- "PySide2.QtGui.QDropEvent.proposedAction": (),
- "PySide2.QtGui.QDropEvent.setDropAction": ('PySide2.QtCore.Qt.DropAction',),
- "PySide2.QtGui.QDropEvent.source": (),
-# class PySide2.QtGui.QEnterEvent:
- "PySide2.QtGui.QEnterEvent.__init__": ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'),
- "PySide2.QtGui.QEnterEvent.globalPos": (),
- "PySide2.QtGui.QEnterEvent.globalX": (),
- "PySide2.QtGui.QEnterEvent.global""Y": (),
- "PySide2.QtGui.QEnterEvent.localPos": (),
- "PySide2.QtGui.QEnterEvent.pos": (),
- "PySide2.QtGui.QEnterEvent.screenPos": (),
- "PySide2.QtGui.QEnterEvent.windowPos": (),
- "PySide2.QtGui.QEnterEvent.x": (),
- "PySide2.QtGui.QEnterEvent.y": (),
-# class PySide2.QtGui.QExposeEvent:
- "PySide2.QtGui.QExposeEvent.__init__": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QExposeEvent.region": (),
-# class PySide2.QtGui.QFileOpenEvent:
- "PySide2.QtGui.QFileOpenEvent.__init__": [('PySide2.QtCore.QUrl',), ('str',)],
- "PySide2.QtGui.QFileOpenEvent.file": (),
- "PySide2.QtGui.QFileOpenEvent.openFile": ('PySide2.QtCore.QFile', 'PySide2.QtCore.QIODevice.OpenMode'),
- "PySide2.QtGui.QFileOpenEvent.url": (),
-# class PySide2.QtGui.QFocusEvent:
- "PySide2.QtGui.QFocusEvent.__init__": ('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.Qt.FocusReason'),
- "PySide2.QtGui.QFocusEvent.gotFocus": (),
- "PySide2.QtGui.QFocusEvent.lostFocus": (),
- "PySide2.QtGui.QFocusEvent.reason": (),
-# class PySide2.QtGui.QFont:
-# class PySide2.QtGui.QFont.Capitalization:
-# class PySide2.QtGui.QFont.HintingPreference:
-# class PySide2.QtGui.QFont.SpacingType:
-# class PySide2.QtGui.QFont.Stretch:
-# class PySide2.QtGui.QFont.Style:
-# class PySide2.QtGui.QFont.StyleHint:
-# class PySide2.QtGui.QFont.StyleStrategy:
-# class PySide2.QtGui.QFont.Weight:
- "PySide2.QtGui.QFont.__init__": [(), ('PySide2.QtGui.QFont',), ('PySide2.QtGui.QFont', 'PySide2.QtGui.QPaintDevice'), ('str', 'int', 'int', 'bool')],
- "PySide2.QtGui.QFont.__copy__": (),
- "PySide2.QtGui.QFont.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QFont.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QFont.bold": (),
- "PySide2.QtGui.QFont.cacheStatistics": (),
- "PySide2.QtGui.QFont.capitalization": (),
- "PySide2.QtGui.QFont.cleanup": (),
- "PySide2.QtGui.QFont.defaultFamily": (),
- "PySide2.QtGui.QFont.exactMatch": (),
- "PySide2.QtGui.QFont.families": (),
- "PySide2.QtGui.QFont.family": (),
- "PySide2.QtGui.QFont.fixedPitch": (),
- "PySide2.QtGui.QFont.fromString": ('str',),
- "PySide2.QtGui.QFont.hintingPreference": (),
- "PySide2.QtGui.QFont.initialize": (),
- "PySide2.QtGui.QFont.insertSubstitution": ('str', 'str'),
- "PySide2.QtGui.QFont.insertSubstitutions": ('str', 'typing.Sequence[str]'),
- "PySide2.QtGui.QFont.isCopyOf": ('PySide2.QtGui.QFont',),
- "PySide2.QtGui.QFont.italic": (),
- "PySide2.QtGui.QFont.kerning": (),
- "PySide2.QtGui.QFont.key": (),
- "PySide2.QtGui.QFont.lastResortFamily": (),
- "PySide2.QtGui.QFont.lastResortFont": (),
- "PySide2.QtGui.QFont.letterSpacing": (),
- "PySide2.QtGui.QFont.letterSpacingType": (),
- "PySide2.QtGui.QFont.overline": (),
- "PySide2.QtGui.QFont.pixelSize": (),
- "PySide2.QtGui.QFont.pointSize": (),
- "PySide2.QtGui.QFont.pointSizeF": (),
- "PySide2.QtGui.QFont.rawMode": (),
- "PySide2.QtGui.QFont.rawName": (),
- "PySide2.QtGui.QFont.removeSubstitutions": ('str',),
- "PySide2.QtGui.QFont.resolve": [(), ('PySide2.QtGui.QFont',), ('int',)],
- "PySide2.QtGui.QFont.setBold": ('bool',),
- "PySide2.QtGui.QFont.setCapitalization": ('PySide2.QtGui.QFont.Capitalization',),
- "PySide2.QtGui.QFont.setFamilies": ('typing.Sequence[str]',),
- "PySide2.QtGui.QFont.setFamily": ('str',),
- "PySide2.QtGui.QFont.setFixedPitch": ('bool',),
- "PySide2.QtGui.QFont.setHintingPreference": ('PySide2.QtGui.QFont.HintingPreference',),
- "PySide2.QtGui.QFont.setItalic": ('bool',),
- "PySide2.QtGui.QFont.setKerning": ('bool',),
- "PySide2.QtGui.QFont.setLetterSpacing": ('PySide2.QtGui.QFont.SpacingType', 'float'),
- "PySide2.QtGui.QFont.setOverline": ('bool',),
- "PySide2.QtGui.QFont.setPixelSize": ('int',),
- "PySide2.QtGui.QFont.setPointSize": ('int',),
- "PySide2.QtGui.QFont.setPointSizeF": ('float',),
- "PySide2.QtGui.QFont.setRawMode": ('bool',),
- "PySide2.QtGui.QFont.setRawName": ('str',),
- "PySide2.QtGui.QFont.setStretch": ('int',),
- "PySide2.QtGui.QFont.setStrikeOut": ('bool',),
- "PySide2.QtGui.QFont.setStyle": ('PySide2.QtGui.QFont.Style',),
- "PySide2.QtGui.QFont.setStyleHint": ('PySide2.QtGui.QFont.StyleHint', 'PySide2.QtGui.QFont.StyleStrategy'),
- "PySide2.QtGui.QFont.setStyleName": ('str',),
- "PySide2.QtGui.QFont.setStyleStrategy": ('PySide2.QtGui.QFont.StyleStrategy',),
- "PySide2.QtGui.QFont.setUnderline": ('bool',),
- "PySide2.QtGui.QFont.setWeight": ('int',),
- "PySide2.QtGui.QFont.setWordSpacing": ('float',),
- "PySide2.QtGui.QFont.stretch": (),
- "PySide2.QtGui.QFont.strikeOut": (),
- "PySide2.QtGui.QFont.style": (),
- "PySide2.QtGui.QFont.styleHint": (),
- "PySide2.QtGui.QFont.styleName": (),
- "PySide2.QtGui.QFont.styleStrategy": (),
- "PySide2.QtGui.QFont.substitute": ('str',),
- "PySide2.QtGui.QFont.substitutes": ('str',),
- "PySide2.QtGui.QFont.substitutions": (),
- "PySide2.QtGui.QFont.swap": ('PySide2.QtGui.QFont',),
- "PySide2.QtGui.QFont.toString": (),
- "PySide2.QtGui.QFont.underline": (),
- "PySide2.QtGui.QFont.weight": (),
- "PySide2.QtGui.QFont.wordSpacing": (),
-# class PySide2.QtGui.QFontDatabase:
-# class PySide2.QtGui.QFontDatabase.SystemFont:
-# class PySide2.QtGui.QFontDatabase.WritingSystem:
- "PySide2.QtGui.QFontDatabase.__init__": [(), ('PySide2.QtGui.QFontDatabase',)],
- "PySide2.QtGui.QFontDatabase.__copy__": (),
- "PySide2.QtGui.QFontDatabase.addApplicationFont": ('str',),
- "PySide2.QtGui.QFontDatabase.addApplicationFontFromData": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QFontDatabase.applicationFontFamilies": ('int',),
- "PySide2.QtGui.QFontDatabase.bold": ('str', 'str'),
- "PySide2.QtGui.QFontDatabase.families": ('PySide2.QtGui.QFontDatabase.WritingSystem',),
- "PySide2.QtGui.QFontDatabase.font": ('str', 'str', 'int'),
- "PySide2.QtGui.QFontDatabase.hasFamily": ('str',),
- "PySide2.QtGui.QFontDatabase.isBitmapScalable": ('str', 'str'),
- "PySide2.QtGui.QFontDatabase.isFixedPitch": ('str', 'str'),
- "PySide2.QtGui.QFontDatabase.isPrivateFamily": ('str',),
- "PySide2.QtGui.QFontDatabase.isScalable": ('str', 'str'),
- "PySide2.QtGui.QFontDatabase.isSmoothlyScalable": ('str', 'str'),
- "PySide2.QtGui.QFontDatabase.italic": ('str', 'str'),
- "PySide2.QtGui.QFontDatabase.pointSizes": ('str', 'str'),
- "PySide2.QtGui.QFontDatabase.removeAllApplicationFonts": (),
- "PySide2.QtGui.QFontDatabase.removeApplicationFont": ('int',),
- "PySide2.QtGui.QFontDatabase.smoothSizes": ('str', 'str'),
- "PySide2.QtGui.QFontDatabase.standardSizes": (),
- "PySide2.QtGui.QFontDatabase.styleString": [('PySide2.QtGui.QFont',), ('PySide2.QtGui.QFontInfo',)],
- "PySide2.QtGui.QFontDatabase.styles": ('str',),
- "PySide2.QtGui.QFontDatabase.supportsThreadedFontRendering": (),
- "PySide2.QtGui.QFontDatabase.systemFont": ('PySide2.QtGui.QFontDatabase.SystemFont',),
- "PySide2.QtGui.QFontDatabase.weight": ('str', 'str'),
- "PySide2.QtGui.QFontDatabase.writingSystemName": ('PySide2.QtGui.QFontDatabase.WritingSystem',),
- "PySide2.QtGui.QFontDatabase.writingSystemSample": ('PySide2.QtGui.QFontDatabase.WritingSystem',),
- "PySide2.QtGui.QFontDatabase.writingSystems": [(), ('str',)],
-# class PySide2.QtGui.QFontInfo:
- "PySide2.QtGui.QFontInfo.__init__": [('PySide2.QtGui.QFont',), ('PySide2.QtGui.QFontInfo',)],
- "PySide2.QtGui.QFontInfo.__copy__": (),
- "PySide2.QtGui.QFontInfo.bold": (),
- "PySide2.QtGui.QFontInfo.exactMatch": (),
- "PySide2.QtGui.QFontInfo.family": (),
- "PySide2.QtGui.QFontInfo.fixedPitch": (),
- "PySide2.QtGui.QFontInfo.italic": (),
- "PySide2.QtGui.QFontInfo.overline": (),
- "PySide2.QtGui.QFontInfo.pixelSize": (),
- "PySide2.QtGui.QFontInfo.pointSize": (),
- "PySide2.QtGui.QFontInfo.pointSizeF": (),
- "PySide2.QtGui.QFontInfo.rawMode": (),
- "PySide2.QtGui.QFontInfo.strikeOut": (),
- "PySide2.QtGui.QFontInfo.style": (),
- "PySide2.QtGui.QFontInfo.styleHint": (),
- "PySide2.QtGui.QFontInfo.styleName": (),
- "PySide2.QtGui.QFontInfo.swap": ('PySide2.QtGui.QFontInfo',),
- "PySide2.QtGui.QFontInfo.underline": (),
- "PySide2.QtGui.QFontInfo.weight": (),
-# class PySide2.QtGui.QFontMetrics:
- "PySide2.QtGui.QFontMetrics.__init__": [('PySide2.QtGui.QFont',), ('PySide2.QtGui.QFont', 'PySide2.QtGui.QPaintDevice'), ('PySide2.QtGui.QFontMetrics',)],
- "PySide2.QtGui.QFontMetrics.__copy__": (),
- "PySide2.QtGui.QFontMetrics.ascent": (),
- "PySide2.QtGui.QFontMetrics.averageCharWidth": (),
- "PySide2.QtGui.QFontMetrics.boundingRect": [('PySide2.QtCore.QRect', 'int', 'str', 'int', 'shibokensupport.typing27.Sequence'), ('int', 'int', 'int', 'int', 'int', 'str', 'int', 'shibokensupport.typing27.Sequence'), ('str',)],
- "PySide2.QtGui.QFontMetrics.boundingRectChar": ('str',),
- "PySide2.QtGui.QFontMetrics.capHeight": (),
- "PySide2.QtGui.QFontMetrics.charWidth": ('str', 'int'),
- "PySide2.QtGui.QFontMetrics.descent": (),
- "PySide2.QtGui.QFontMetrics.elidedText": ('str', 'PySide2.QtCore.Qt.TextElideMode', 'int', 'int'),
- "PySide2.QtGui.QFontMetrics.fontDpi": (),
- "PySide2.QtGui.QFontMetrics.height": (),
- "PySide2.QtGui.QFontMetrics.horizontalAdvance": [('str',), ('str', 'int')],
- "PySide2.QtGui.QFontMetrics.inFont": ('str',),
- "PySide2.QtGui.QFontMetrics.inFontUcs4": ('int',),
- "PySide2.QtGui.QFontMetrics.leading": (),
- "PySide2.QtGui.QFontMetrics.leftBearing": ('str',),
- "PySide2.QtGui.QFontMetrics.lineSpacing": (),
- "PySide2.QtGui.QFontMetrics.lineWidth": (),
- "PySide2.QtGui.QFontMetrics.maxWidth": (),
- "PySide2.QtGui.QFontMetrics.minLeftBearing": (),
- "PySide2.QtGui.QFontMetrics.minRightBearing": (),
- "PySide2.QtGui.QFontMetrics.overlinePos": (),
- "PySide2.QtGui.QFontMetrics.rightBearing": ('str',),
- "PySide2.QtGui.QFontMetrics.size": ('int', 'str', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QFontMetrics.strikeOutPos": (),
- "PySide2.QtGui.QFontMetrics.swap": ('PySide2.QtGui.QFontMetrics',),
- "PySide2.QtGui.QFontMetrics.tightBoundingRect": ('str',),
- "PySide2.QtGui.QFontMetrics.underlinePos": (),
- "PySide2.QtGui.QFontMetrics.width": [('str', 'int'), ('str', 'int', 'int')],
- "PySide2.QtGui.QFontMetrics.widthChar": ('str',),
- "PySide2.QtGui.QFontMetrics.xHeight": (),
-# class PySide2.QtGui.QFontMetricsF:
- "PySide2.QtGui.QFontMetricsF.__init__": [('PySide2.QtGui.QFont',), ('PySide2.QtGui.QFont', 'PySide2.QtGui.QPaintDevice'), ('PySide2.QtGui.QFontMetrics',), ('PySide2.QtGui.QFontMetricsF',)],
- "PySide2.QtGui.QFontMetricsF.__copy__": (),
- "PySide2.QtGui.QFontMetricsF.ascent": (),
- "PySide2.QtGui.QFontMetricsF.averageCharWidth": (),
- "PySide2.QtGui.QFontMetricsF.boundingRect": [('PySide2.QtCore.QRectF', 'int', 'str', 'int', 'shibokensupport.typing27.Sequence'), ('str',)],
- "PySide2.QtGui.QFontMetricsF.boundingRectChar": ('str',),
- "PySide2.QtGui.QFontMetricsF.capHeight": (),
- "PySide2.QtGui.QFontMetricsF.descent": (),
- "PySide2.QtGui.QFontMetricsF.elidedText": ('str', 'PySide2.QtCore.Qt.TextElideMode', 'float', 'int'),
- "PySide2.QtGui.QFontMetricsF.fontDpi": (),
- "PySide2.QtGui.QFontMetricsF.height": (),
- "PySide2.QtGui.QFontMetricsF.horizontalAdvance": [('str',), ('str', 'int')],
- "PySide2.QtGui.QFontMetricsF.inFont": ('str',),
- "PySide2.QtGui.QFontMetricsF.inFontUcs4": ('int',),
- "PySide2.QtGui.QFontMetricsF.leading": (),
- "PySide2.QtGui.QFontMetricsF.leftBearing": ('str',),
- "PySide2.QtGui.QFontMetricsF.lineSpacing": (),
- "PySide2.QtGui.QFontMetricsF.lineWidth": (),
- "PySide2.QtGui.QFontMetricsF.maxWidth": (),
- "PySide2.QtGui.QFontMetricsF.minLeftBearing": (),
- "PySide2.QtGui.QFontMetricsF.minRightBearing": (),
- "PySide2.QtGui.QFontMetricsF.overlinePos": (),
- "PySide2.QtGui.QFontMetricsF.rightBearing": ('str',),
- "PySide2.QtGui.QFontMetricsF.size": ('int', 'str', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QFontMetricsF.strikeOutPos": (),
- "PySide2.QtGui.QFontMetricsF.swap": ('PySide2.QtGui.QFontMetricsF',),
- "PySide2.QtGui.QFontMetricsF.tightBoundingRect": ('str',),
- "PySide2.QtGui.QFontMetricsF.underlinePos": (),
- "PySide2.QtGui.QFontMetricsF.width": ('str',),
- "PySide2.QtGui.QFontMetricsF.widthChar": ('str',),
- "PySide2.QtGui.QFontMetricsF.xHeight": (),
-# class PySide2.QtGui.QGradient:
-# class PySide2.QtGui.QGradient.CoordinateMode:
-# class PySide2.QtGui.QGradient.InterpolationMode:
-# class PySide2.QtGui.QGradient.Preset:
-# class PySide2.QtGui.QGradient.Spread:
-# class PySide2.QtGui.QGradient.Type:
- "PySide2.QtGui.QGradient.__init__": [(), ('PySide2.QtGui.QGradient',), ('PySide2.QtGui.QGradient.Preset',)],
- "PySide2.QtGui.QGradient.__copy__": (),
- "PySide2.QtGui.QGradient.coordinateMode": (),
- "PySide2.QtGui.QGradient.interpolationMode": (),
- "PySide2.QtGui.QGradient.setColorAt": ('float', 'PySide2.QtGui.QColor'),
- "PySide2.QtGui.QGradient.setCoordinateMode": ('PySide2.QtGui.QGradient.CoordinateMode',),
- "PySide2.QtGui.QGradient.setInterpolationMode": ('PySide2.QtGui.QGradient.InterpolationMode',),
- "PySide2.QtGui.QGradient.setSpread": ('PySide2.QtGui.QGradient.Spread',),
- "PySide2.QtGui.QGradient.setStops": ('typing.List[typing.Tuple]',),
- "PySide2.QtGui.QGradient.spread": (),
- "PySide2.QtGui.QGradient.stops": (),
- "PySide2.QtGui.QGradient.type": (),
-# class PySide2.QtGui.QGuiApplication:
- "PySide2.QtGui.QGuiApplication.__init__": [(), ('typing.Sequence[str]',)],
- "PySide2.QtGui.QGuiApplication.allWindows": (),
- "PySide2.QtGui.QGuiApplication.applicationDisplayName": (),
- "PySide2.QtGui.QGuiApplication.applicationState": (),
- "PySide2.QtGui.QGuiApplication.changeOverrideCursor": ('PySide2.QtGui.QCursor',),
- "PySide2.QtGui.QGuiApplication.clipboard": (),
- "PySide2.QtGui.QGuiApplication.desktopFileName": (),
- "PySide2.QtGui.QGuiApplication.desktopSettingsAware": (),
- "PySide2.QtGui.QGuiApplication.devicePixelRatio": (),
- "PySide2.QtGui.QGuiApplication.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtGui.QGuiApplication.exec_": (),
- "PySide2.QtGui.QGuiApplication.focusObject": (),
- "PySide2.QtGui.QGuiApplication.focusWindow": (),
- "PySide2.QtGui.QGuiApplication.font": (),
- "PySide2.QtGui.QGuiApplication.highDpiScaleFactorRoundingPolicy": (),
- "PySide2.QtGui.QGuiApplication.inputMethod": (),
- "PySide2.QtGui.QGuiApplication.isFallbackSessionManagementEnabled": (),
- "PySide2.QtGui.QGuiApplication.isLeftToRight": (),
- "PySide2.QtGui.QGuiApplication.isRightToLeft": (),
- "PySide2.QtGui.QGuiApplication.isSavingSession": (),
- "PySide2.QtGui.QGuiApplication.isSessionRestored": (),
- "PySide2.QtGui.QGuiApplication.keyboardModifiers": (),
- "PySide2.QtGui.QGuiApplication.layoutDirection": (),
- "PySide2.QtGui.QGuiApplication.modalWindow": (),
- "PySide2.QtGui.QGuiApplication.mouseButtons": (),
- "PySide2.QtGui.QGuiApplication.notify": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtGui.QGuiApplication.overrideCursor": (),
- "PySide2.QtGui.QGuiApplication.palette": (),
- "PySide2.QtGui.QGuiApplication.platformName": (),
- "PySide2.QtGui.QGuiApplication.primaryScreen": (),
- "PySide2.QtGui.QGuiApplication.queryKeyboardModifiers": (),
- "PySide2.QtGui.QGuiApplication.quitOnLastWindowClosed": (),
- "PySide2.QtGui.QGuiApplication.restoreOverrideCursor": (),
- "PySide2.QtGui.QGuiApplication.screenAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QGuiApplication.screens": (),
- "PySide2.QtGui.QGuiApplication.sessionId": (),
- "PySide2.QtGui.QGuiApplication.sessionKey": (),
- "PySide2.QtGui.QGuiApplication.setApplicationDisplayName": ('str',),
- "PySide2.QtGui.QGuiApplication.setDesktopFileName": ('str',),
- "PySide2.QtGui.QGuiApplication.setDesktopSettingsAware": ('bool',),
- "PySide2.QtGui.QGuiApplication.setFallbackSessionManagementEnabled": ('bool',),
- "PySide2.QtGui.QGuiApplication.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtGui.QGuiApplication.setHighDpiScaleFactorRoundingPolicy": ('PySide2.QtCore.Qt.HighDpiScaleFactorRoundingPolicy',),
- "PySide2.QtGui.QGuiApplication.setLayoutDirection": ('PySide2.QtCore.Qt.LayoutDirection',),
- "PySide2.QtGui.QGuiApplication.setOverrideCursor": ('PySide2.QtGui.QCursor',),
- "PySide2.QtGui.QGuiApplication.setPalette": ('PySide2.QtGui.QPalette',),
- "PySide2.QtGui.QGuiApplication.setQuitOnLastWindowClosed": ('bool',),
- "PySide2.QtGui.QGuiApplication.setWindowIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtGui.QGuiApplication.styleHints": (),
- "PySide2.QtGui.QGuiApplication.sync": (),
- "PySide2.QtGui.QGuiApplication.topLevelAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QGuiApplication.topLevelWindows": (),
- "PySide2.QtGui.QGuiApplication.windowIcon": (),
-# class PySide2.QtGui.QHelpEvent:
- "PySide2.QtGui.QHelpEvent.__init__": ('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint'),
- "PySide2.QtGui.QHelpEvent.globalPos": (),
- "PySide2.QtGui.QHelpEvent.globalX": (),
- "PySide2.QtGui.QHelpEvent.global""Y": (),
- "PySide2.QtGui.QHelpEvent.pos": (),
- "PySide2.QtGui.QHelpEvent.x": (),
- "PySide2.QtGui.QHelpEvent.y": (),
-# class PySide2.QtGui.QHideEvent:
- "PySide2.QtGui.QHideEvent.__init__": (),
-# class PySide2.QtGui.QHoverEvent:
- "PySide2.QtGui.QHoverEvent.__init__": ('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.Qt.KeyboardModifiers'),
- "PySide2.QtGui.QHoverEvent.oldPos": (),
- "PySide2.QtGui.QHoverEvent.oldPosF": (),
- "PySide2.QtGui.QHoverEvent.pos": (),
- "PySide2.QtGui.QHoverEvent.posF": (),
-# class PySide2.QtGui.QIcon:
-# class PySide2.QtGui.QIcon.Mode:
-# class PySide2.QtGui.QIcon.State:
- "PySide2.QtGui.QIcon.__init__": [(), ('PySide2.QtGui.QIcon',), ('PySide2.QtGui.QIconEngine',), ('PySide2.QtGui.QPixmap',), ('str',)],
- "PySide2.QtGui.QIcon.__copy__": (),
- "PySide2.QtGui.QIcon.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QIcon.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QIcon.actualSize": [('PySide2.QtCore.QSize', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'), ('PySide2.QtGui.QWindow', 'PySide2.QtCore.QSize', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State')],
- "PySide2.QtGui.QIcon.addFile": ('str', 'PySide2.QtCore.QSize', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'),
- "PySide2.QtGui.QIcon.addPixmap": ('PySide2.QtGui.QPixmap', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'),
- "PySide2.QtGui.QIcon.availableSizes": ('PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'),
- "PySide2.QtGui.QIcon.cacheKey": (),
- "PySide2.QtGui.QIcon.fallbackSearchPaths": (),
- "PySide2.QtGui.QIcon.fallbackThemeName": (),
- "PySide2.QtGui.QIcon.fromTheme": [('str',), ('str', 'PySide2.QtGui.QIcon')],
- "PySide2.QtGui.QIcon.hasThemeIcon": ('str',),
- "PySide2.QtGui.QIcon.isMask": (),
- "PySide2.QtGui.QIcon.isNull": (),
- "PySide2.QtGui.QIcon.name": (),
- "PySide2.QtGui.QIcon.paint": [('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRect', 'PySide2.QtCore.Qt.Alignment', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'), ('PySide2.QtGui.QPainter', 'int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.Alignment', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State')],
- "PySide2.QtGui.QIcon.pixmap": [('PySide2.QtCore.QSize', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'), ('PySide2.QtGui.QWindow', 'PySide2.QtCore.QSize', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'), ('int', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'), ('int', 'int', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State')],
- "PySide2.QtGui.QIcon.setFallbackSearchPaths": ('typing.Sequence[str]',),
- "PySide2.QtGui.QIcon.setFallbackThemeName": ('str',),
- "PySide2.QtGui.QIcon.setIsMask": ('bool',),
- "PySide2.QtGui.QIcon.setThemeName": ('str',),
- "PySide2.QtGui.QIcon.setThemeSearchPaths": ('typing.Sequence[str]',),
- "PySide2.QtGui.QIcon.swap": ('PySide2.QtGui.QIcon',),
- "PySide2.QtGui.QIcon.themeName": (),
- "PySide2.QtGui.QIcon.themeSearchPaths": (),
-# class PySide2.QtGui.QIconDragEvent:
- "PySide2.QtGui.QIconDragEvent.__init__": (),
-# class PySide2.QtGui.QIconEngine:
-# class PySide2.QtGui.QIconEngine.AvailableSizesArgument:
- "PySide2.QtGui.QIconEngine.AvailableSizesArgument.__init__": (),
-# class PySide2.QtGui.QIconEngine.IconEngineHook:
- "PySide2.QtGui.QIconEngine.__init__": [(), ('PySide2.QtGui.QIconEngine',)],
- "PySide2.QtGui.QIconEngine.actualSize": ('PySide2.QtCore.QSize', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'),
- "PySide2.QtGui.QIconEngine.addFile": ('str', 'PySide2.QtCore.QSize', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'),
- "PySide2.QtGui.QIconEngine.addPixmap": ('PySide2.QtGui.QPixmap', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'),
- "PySide2.QtGui.QIconEngine.availableSizes": ('PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'),
- "PySide2.QtGui.QIconEngine.clone": (),
- "PySide2.QtGui.QIconEngine.iconName": (),
- "PySide2.QtGui.QIconEngine.isNull": (),
- "PySide2.QtGui.QIconEngine.key": (),
- "PySide2.QtGui.QIconEngine.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRect', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'),
- "PySide2.QtGui.QIconEngine.pixmap": ('PySide2.QtCore.QSize', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'),
- "PySide2.QtGui.QIconEngine.read": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QIconEngine.scaledPixmap": ('PySide2.QtCore.QSize', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State', 'float'),
- "PySide2.QtGui.QIconEngine.write": ('PySide2.QtCore.QDataStream',),
-# class PySide2.QtGui.QImage:
-# class PySide2.QtGui.QImage.Format:
-# class PySide2.QtGui.QImage.InvertMode:
- "PySide2.QtGui.QImage.__init__": [(), ('PySide2.QtCore.QSize', 'PySide2.QtGui.QImage.Format'), ('PySide2.QtGui.QImage',), ('int', 'int', 'PySide2.QtGui.QImage.Format'), ('str', 'int', 'int', 'PySide2.QtGui.QImage.Format'), ('str', 'int', 'int', 'PySide2.QtGui.QImage.Format', 'typing.Callable', 'int'), ('str', 'int', 'int', 'int', 'PySide2.QtGui.QImage.Format'), ('str', 'int', 'int', 'int', 'PySide2.QtGui.QImage.Format', 'typing.Callable', 'int'), ('str', 'str'), ('typing.Sequence[str]',)],
- "PySide2.QtGui.QImage.__copy__": (),
- "PySide2.QtGui.QImage.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QImage.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QImage.allGray": (),
- "PySide2.QtGui.QImage.alphaChannel": (),
- "PySide2.QtGui.QImage.bitPlaneCount": (),
- "PySide2.QtGui.QImage.bits": (),
- "PySide2.QtGui.QImage.byteCount": (),
- "PySide2.QtGui.QImage.bytesPerLine": (),
- "PySide2.QtGui.QImage.cacheKey": (),
- "PySide2.QtGui.QImage.color": ('int',),
- "PySide2.QtGui.QImage.colorCount": (),
- "PySide2.QtGui.QImage.colorSpace": (),
- "PySide2.QtGui.QImage.colorTable": (),
- "PySide2.QtGui.QImage.constBits": (),
- "PySide2.QtGui.QImage.constScanLine": ('int',),
- "PySide2.QtGui.QImage.convertTo": ('PySide2.QtGui.QImage.Format', 'PySide2.QtCore.Qt.ImageConversionFlags'),
- "PySide2.QtGui.QImage.convertToColorSpace": ('PySide2.QtGui.QColorSpace',),
- "PySide2.QtGui.QImage.convertToFormat": [('PySide2.QtGui.QImage.Format', 'PySide2.QtCore.Qt.ImageConversionFlags'), ('PySide2.QtGui.QImage.Format', 'typing.List[int]', 'PySide2.QtCore.Qt.ImageConversionFlags')],
- "PySide2.QtGui.QImage.convertToFormat_helper": ('PySide2.QtGui.QImage.Format', 'PySide2.QtCore.Qt.ImageConversionFlags'),
- "PySide2.QtGui.QImage.convertToFormat_inplace": ('PySide2.QtGui.QImage.Format', 'PySide2.QtCore.Qt.ImageConversionFlags'),
- "PySide2.QtGui.QImage.convertedToColorSpace": ('PySide2.QtGui.QColorSpace',),
- "PySide2.QtGui.QImage.copy": [('PySide2.QtCore.QRect',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QImage.createAlphaMask": ('PySide2.QtCore.Qt.ImageConversionFlags',),
- "PySide2.QtGui.QImage.createHeuristicMask": ('bool',),
- "PySide2.QtGui.QImage.createMaskFromColor": ('int', 'PySide2.QtCore.Qt.MaskMode'),
- "PySide2.QtGui.QImage.depth": (),
- "PySide2.QtGui.QImage.devType": (),
- "PySide2.QtGui.QImage.devicePixelRatio": (),
- "PySide2.QtGui.QImage.dotsPerMeterX": (),
- "PySide2.QtGui.QImage.dotsPerMeterY": (),
- "PySide2.QtGui.QImage.fill": [('PySide2.QtCore.Qt.GlobalColor',), ('PySide2.QtGui.QColor',), ('int',)],
- "PySide2.QtGui.QImage.format": (),
- "PySide2.QtGui.QImage.fromData": ('PySide2.QtCore.QByteArray', 'str'),
- "PySide2.QtGui.QImage.hasAlphaChannel": (),
- "PySide2.QtGui.QImage.height": (),
- "PySide2.QtGui.QImage.invertPixels": ('PySide2.QtGui.QImage.InvertMode',),
- "PySide2.QtGui.QImage.isGrayscale": (),
- "PySide2.QtGui.QImage.isNull": (),
- "PySide2.QtGui.QImage.load": [('PySide2.QtCore.QIODevice', 'str'), ('str', 'str')],
- "PySide2.QtGui.QImage.loadFromData": ('PySide2.QtCore.QByteArray', 'str'),
- "PySide2.QtGui.QImage.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtGui.QImage.mirrored": ('bool', 'bool'),
- "PySide2.QtGui.QImage.mirrored_helper": ('bool', 'bool'),
- "PySide2.QtGui.QImage.mirrored_inplace": ('bool', 'bool'),
- "PySide2.QtGui.QImage.offset": (),
- "PySide2.QtGui.QImage.paintEngine": (),
- "PySide2.QtGui.QImage.pixel": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtGui.QImage.pixelColor": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtGui.QImage.pixelFormat": (),
- "PySide2.QtGui.QImage.pixelIndex": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtGui.QImage.rect": (),
- "PySide2.QtGui.QImage.reinterpretAsFormat": ('PySide2.QtGui.QImage.Format',),
- "PySide2.QtGui.QImage.rgbSwapped": (),
- "PySide2.QtGui.QImage.rgbSwapped_helper": (),
- "PySide2.QtGui.QImage.rgbSwapped_inplace": (),
- "PySide2.QtGui.QImage.save": [('PySide2.QtCore.QIODevice', 'str', 'int'), ('str', 'str', 'int')],
- "PySide2.QtGui.QImage.scaled": [('PySide2.QtCore.QSize', 'PySide2.QtCore.Qt.AspectRatioMode', 'PySide2.QtCore.Qt.TransformationMode'), ('int', 'int', 'PySide2.QtCore.Qt.AspectRatioMode', 'PySide2.QtCore.Qt.TransformationMode')],
- "PySide2.QtGui.QImage.scaledToHeight": ('int', 'PySide2.QtCore.Qt.TransformationMode'),
- "PySide2.QtGui.QImage.scaledToWidth": ('int', 'PySide2.QtCore.Qt.TransformationMode'),
- "PySide2.QtGui.QImage.scanLine": ('int',),
- "PySide2.QtGui.QImage.setAlphaChannel": ('PySide2.QtGui.QImage',),
- "PySide2.QtGui.QImage.setColor": ('int', 'int'),
- "PySide2.QtGui.QImage.setColorCount": ('int',),
- "PySide2.QtGui.QImage.setColorSpace": ('PySide2.QtGui.QColorSpace',),
- "PySide2.QtGui.QImage.setColorTable": ('typing.List[int]',),
- "PySide2.QtGui.QImage.setDevicePixelRatio": ('float',),
- "PySide2.QtGui.QImage.setDotsPerMeterX": ('int',),
- "PySide2.QtGui.QImage.setDotsPerMeterY": ('int',),
- "PySide2.QtGui.QImage.setOffset": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QImage.setPixel": [('PySide2.QtCore.QPoint', 'int'), ('int', 'int', 'int')],
- "PySide2.QtGui.QImage.setPixelColor": [('PySide2.QtCore.QPoint', 'PySide2.QtGui.QColor'), ('int', 'int', 'PySide2.QtGui.QColor')],
- "PySide2.QtGui.QImage.setText": ('str', 'str'),
- "PySide2.QtGui.QImage.size": (),
- "PySide2.QtGui.QImage.sizeInBytes": (),
- "PySide2.QtGui.QImage.smoothScaled": ('int', 'int'),
- "PySide2.QtGui.QImage.swap": ('PySide2.QtGui.QImage',),
- "PySide2.QtGui.QImage.text": ('str',),
- "PySide2.QtGui.QImage.textKeys": (),
- "PySide2.QtGui.QImage.toImageFormat": ('PySide2.QtGui.QPixelFormat',),
- "PySide2.QtGui.QImage.toPixelFormat": ('PySide2.QtGui.QImage.Format',),
- "PySide2.QtGui.QImage.transformed": [('PySide2.QtGui.QMatrix', 'PySide2.QtCore.Qt.TransformationMode'), ('PySide2.QtGui.QTransform', 'PySide2.QtCore.Qt.TransformationMode')],
- "PySide2.QtGui.QImage.trueMatrix": [('PySide2.QtGui.QMatrix', 'int', 'int'), ('PySide2.QtGui.QTransform', 'int', 'int')],
- "PySide2.QtGui.QImage.valid": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtGui.QImage.width": (),
-# class PySide2.QtGui.QImageIOHandler:
-# class PySide2.QtGui.QImageIOHandler.ImageOption:
-# class PySide2.QtGui.QImageIOHandler.Transformation:
-# class PySide2.QtGui.QImageIOHandler.Transformations:
- "PySide2.QtGui.QImageIOHandler.__init__": (),
- "PySide2.QtGui.QImageIOHandler.canRead": (),
- "PySide2.QtGui.QImageIOHandler.currentImageNumber": (),
- "PySide2.QtGui.QImageIOHandler.currentImageRect": (),
- "PySide2.QtGui.QImageIOHandler.device": (),
- "PySide2.QtGui.QImageIOHandler.format": (),
- "PySide2.QtGui.QImageIOHandler.imageCount": (),
- "PySide2.QtGui.QImageIOHandler.jumpToImage": ('int',),
- "PySide2.QtGui.QImageIOHandler.jumpToNextImage": (),
- "PySide2.QtGui.QImageIOHandler.loopCount": (),
- "PySide2.QtGui.QImageIOHandler.name": (),
- "PySide2.QtGui.QImageIOHandler.nextImageDelay": (),
- "PySide2.QtGui.QImageIOHandler.option": ('PySide2.QtGui.QImageIOHandler.ImageOption',),
- "PySide2.QtGui.QImageIOHandler.read": ('PySide2.QtGui.QImage',),
- "PySide2.QtGui.QImageIOHandler.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtGui.QImageIOHandler.setFormat": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QImageIOHandler.setOption": ('PySide2.QtGui.QImageIOHandler.ImageOption', 'typing.Any'),
- "PySide2.QtGui.QImageIOHandler.supportsOption": ('PySide2.QtGui.QImageIOHandler.ImageOption',),
- "PySide2.QtGui.QImageIOHandler.write": ('PySide2.QtGui.QImage',),
-# class PySide2.QtGui.QImageReader:
-# class PySide2.QtGui.QImageReader.ImageReaderError:
- "PySide2.QtGui.QImageReader.__init__": [(), ('PySide2.QtCore.QIODevice', 'PySide2.QtCore.QByteArray'), ('str', 'PySide2.QtCore.QByteArray')],
- "PySide2.QtGui.QImageReader.autoDetectImageFormat": (),
- "PySide2.QtGui.QImageReader.autoTransform": (),
- "PySide2.QtGui.QImageReader.backgroundColor": (),
- "PySide2.QtGui.QImageReader.canRead": (),
- "PySide2.QtGui.QImageReader.clipRect": (),
- "PySide2.QtGui.QImageReader.currentImageNumber": (),
- "PySide2.QtGui.QImageReader.currentImageRect": (),
- "PySide2.QtGui.QImageReader.decideFormatFromContent": (),
- "PySide2.QtGui.QImageReader.device": (),
- "PySide2.QtGui.QImageReader.error": (),
- "PySide2.QtGui.QImageReader.errorString": (),
- "PySide2.QtGui.QImageReader.fileName": (),
- "PySide2.QtGui.QImageReader.format": (),
- "PySide2.QtGui.QImageReader.gamma": (),
- "PySide2.QtGui.QImageReader.imageCount": (),
- "PySide2.QtGui.QImageReader.imageFormat": [(), ('PySide2.QtCore.QIODevice',), ('str',)],
- "PySide2.QtGui.QImageReader.imageFormatsForMimeType": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QImageReader.jumpToImage": ('int',),
- "PySide2.QtGui.QImageReader.jumpToNextImage": (),
- "PySide2.QtGui.QImageReader.loopCount": (),
- "PySide2.QtGui.QImageReader.nextImageDelay": (),
- "PySide2.QtGui.QImageReader.quality": (),
- "PySide2.QtGui.QImageReader.read": (),
- "PySide2.QtGui.QImageReader.scaledClipRect": (),
- "PySide2.QtGui.QImageReader.scaledSize": (),
- "PySide2.QtGui.QImageReader.setAutoDetectImageFormat": ('bool',),
- "PySide2.QtGui.QImageReader.setAutoTransform": ('bool',),
- "PySide2.QtGui.QImageReader.setBackgroundColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtGui.QImageReader.setClipRect": ('PySide2.QtCore.QRect',),
- "PySide2.QtGui.QImageReader.setDecideFormatFromContent": ('bool',),
- "PySide2.QtGui.QImageReader.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtGui.QImageReader.setFileName": ('str',),
- "PySide2.QtGui.QImageReader.setFormat": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QImageReader.setGamma": ('float',),
- "PySide2.QtGui.QImageReader.setQuality": ('int',),
- "PySide2.QtGui.QImageReader.setScaledClipRect": ('PySide2.QtCore.QRect',),
- "PySide2.QtGui.QImageReader.setScaledSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtGui.QImageReader.size": (),
- "PySide2.QtGui.QImageReader.subType": (),
- "PySide2.QtGui.QImageReader.supportedImageFormats": (),
- "PySide2.QtGui.QImageReader.supportedMimeTypes": (),
- "PySide2.QtGui.QImageReader.supportedSubTypes": (),
- "PySide2.QtGui.QImageReader.supportsAnimation": (),
- "PySide2.QtGui.QImageReader.supportsOption": ('PySide2.QtGui.QImageIOHandler.ImageOption',),
- "PySide2.QtGui.QImageReader.text": ('str',),
- "PySide2.QtGui.QImageReader.textKeys": (),
- "PySide2.QtGui.QImageReader.transformation": (),
-# class PySide2.QtGui.QImageWriter:
-# class PySide2.QtGui.QImageWriter.ImageWriterError:
- "PySide2.QtGui.QImageWriter.__init__": [(), ('PySide2.QtCore.QIODevice', 'PySide2.QtCore.QByteArray'), ('str', 'PySide2.QtCore.QByteArray')],
- "PySide2.QtGui.QImageWriter.canWrite": (),
- "PySide2.QtGui.QImageWriter.compression": (),
- "PySide2.QtGui.QImageWriter.description": (),
- "PySide2.QtGui.QImageWriter.device": (),
- "PySide2.QtGui.QImageWriter.error": (),
- "PySide2.QtGui.QImageWriter.errorString": (),
- "PySide2.QtGui.QImageWriter.fileName": (),
- "PySide2.QtGui.QImageWriter.format": (),
- "PySide2.QtGui.QImageWriter.gamma": (),
- "PySide2.QtGui.QImageWriter.imageFormatsForMimeType": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QImageWriter.optimizedWrite": (),
- "PySide2.QtGui.QImageWriter.progressiveScanWrite": (),
- "PySide2.QtGui.QImageWriter.quality": (),
- "PySide2.QtGui.QImageWriter.setCompression": ('int',),
- "PySide2.QtGui.QImageWriter.setDescription": ('str',),
- "PySide2.QtGui.QImageWriter.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtGui.QImageWriter.setFileName": ('str',),
- "PySide2.QtGui.QImageWriter.setFormat": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QImageWriter.setGamma": ('float',),
- "PySide2.QtGui.QImageWriter.setOptimizedWrite": ('bool',),
- "PySide2.QtGui.QImageWriter.setProgressiveScanWrite": ('bool',),
- "PySide2.QtGui.QImageWriter.setQuality": ('int',),
- "PySide2.QtGui.QImageWriter.setSubType": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QImageWriter.setText": ('str', 'str'),
- "PySide2.QtGui.QImageWriter.setTransformation": ('PySide2.QtGui.QImageIOHandler.Transformations',),
- "PySide2.QtGui.QImageWriter.subType": (),
- "PySide2.QtGui.QImageWriter.supportedImageFormats": (),
- "PySide2.QtGui.QImageWriter.supportedMimeTypes": (),
- "PySide2.QtGui.QImageWriter.supportedSubTypes": (),
- "PySide2.QtGui.QImageWriter.supportsOption": ('PySide2.QtGui.QImageIOHandler.ImageOption',),
- "PySide2.QtGui.QImageWriter.transformation": (),
- "PySide2.QtGui.QImageWriter.write": ('PySide2.QtGui.QImage',),
-# class PySide2.QtGui.QInputEvent:
- "PySide2.QtGui.QInputEvent.__init__": ('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.Qt.KeyboardModifiers'),
- "PySide2.QtGui.QInputEvent.modifiers": (),
- "PySide2.QtGui.QInputEvent.setModifiers": ('PySide2.QtCore.Qt.KeyboardModifiers',),
- "PySide2.QtGui.QInputEvent.setTimestamp": ('int',),
- "PySide2.QtGui.QInputEvent.timestamp": (),
-# class PySide2.QtGui.QInputMethod:
-# class PySide2.QtGui.QInputMethod.Action:
- "PySide2.QtGui.QInputMethod.anchorRectangle": (),
- "PySide2.QtGui.QInputMethod.commit": (),
- "PySide2.QtGui.QInputMethod.cursorRectangle": (),
- "PySide2.QtGui.QInputMethod.hide": (),
- "PySide2.QtGui.QInputMethod.inputDirection": (),
- "PySide2.QtGui.QInputMethod.inputItemClipRectangle": (),
- "PySide2.QtGui.QInputMethod.inputItemRectangle": (),
- "PySide2.QtGui.QInputMethod.inputItemTransform": (),
- "PySide2.QtGui.QInputMethod.invokeAction": ('PySide2.QtGui.QInputMethod.Action', 'int'),
- "PySide2.QtGui.QInputMethod.isAnimating": (),
- "PySide2.QtGui.QInputMethod.isVisible": (),
- "PySide2.QtGui.QInputMethod.keyboardRectangle": (),
- "PySide2.QtGui.QInputMethod.locale": (),
- "PySide2.QtGui.QInputMethod.queryFocusObject": ('PySide2.QtCore.Qt.InputMethodQuery', 'typing.Any'),
- "PySide2.QtGui.QInputMethod.reset": (),
- "PySide2.QtGui.QInputMethod.setInputItemRectangle": ('PySide2.QtCore.QRectF',),
- "PySide2.QtGui.QInputMethod.setInputItemTransform": ('PySide2.QtGui.QTransform',),
- "PySide2.QtGui.QInputMethod.setVisible": ('bool',),
- "PySide2.QtGui.QInputMethod.show": (),
- "PySide2.QtGui.QInputMethod.update": ('PySide2.QtCore.Qt.InputMethodQueries',),
-# class PySide2.QtGui.QInputMethodEvent:
-# class PySide2.QtGui.QInputMethodEvent.Attribute:
- "PySide2.QtGui.QInputMethodEvent.Attribute.__init__": [('PySide2.QtGui.QInputMethodEvent.Attribute',), ('PySide2.QtGui.QInputMethodEvent.AttributeType', 'int', 'int'), ('PySide2.QtGui.QInputMethodEvent.AttributeType', 'int', 'int', 'typing.Any')],
- "PySide2.QtGui.QInputMethodEvent.Attribute.__copy__": (),
-# class PySide2.QtGui.QInputMethodEvent.AttributeType:
- "PySide2.QtGui.QInputMethodEvent.__init__": [(), ('PySide2.QtGui.QInputMethodEvent',), ('str', 'typing.Sequence[PySide2.QtGui.QInputMethodEvent.Attribute]')],
- "PySide2.QtGui.QInputMethodEvent.attributes": (),
- "PySide2.QtGui.QInputMethodEvent.commitString": (),
- "PySide2.QtGui.QInputMethodEvent.preeditString": (),
- "PySide2.QtGui.QInputMethodEvent.replacementLength": (),
- "PySide2.QtGui.QInputMethodEvent.replacementStart": (),
- "PySide2.QtGui.QInputMethodEvent.setCommitString": ('str', 'int', 'int'),
-# class PySide2.QtGui.QInputMethodQueryEvent:
- "PySide2.QtGui.QInputMethodQueryEvent.__init__": ('PySide2.QtCore.Qt.InputMethodQueries',),
- "PySide2.QtGui.QInputMethodQueryEvent.queries": (),
- "PySide2.QtGui.QInputMethodQueryEvent.setValue": ('PySide2.QtCore.Qt.InputMethodQuery', 'typing.Any'),
- "PySide2.QtGui.QInputMethodQueryEvent.value": ('PySide2.QtCore.Qt.InputMethodQuery',),
-# class PySide2.QtGui.QIntValidator:
- "PySide2.QtGui.QIntValidator.__init__": [('PySide2.QtCore.QObject',), ('int', 'int', 'PySide2.QtCore.QObject')],
- "PySide2.QtGui.QIntValidator.bottom": (),
- "PySide2.QtGui.QIntValidator.fixup": ('str',),
- "PySide2.QtGui.QIntValidator.setBottom": ('int',),
- "PySide2.QtGui.QIntValidator.setRange": ('int', 'int'),
- "PySide2.QtGui.QIntValidator.setTop": ('int',),
- "PySide2.QtGui.QIntValidator.top": (),
- "PySide2.QtGui.QIntValidator.validate": ('str', 'int'),
-# class PySide2.QtGui.QKeyEvent:
- "PySide2.QtGui.QKeyEvent.__init__": [('PySide2.QtCore.QEvent.Type', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int', 'int', 'int', 'str', 'bool', 'int'), ('PySide2.QtCore.QEvent.Type', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'str', 'bool', 'int')],
- "PySide2.QtGui.QKeyEvent.count": (),
- "PySide2.QtGui.QKeyEvent.isAutoRepeat": (),
- "PySide2.QtGui.QKeyEvent.key": (),
- "PySide2.QtGui.QKeyEvent.matches": ('PySide2.QtGui.QKeySequence.StandardKey',),
- "PySide2.QtGui.QKeyEvent.modifiers": (),
- "PySide2.QtGui.QKeyEvent.nativeModifiers": (),
- "PySide2.QtGui.QKeyEvent.nativeScanCode": (),
- "PySide2.QtGui.QKeyEvent.nativeVirtualKey": (),
- "PySide2.QtGui.QKeyEvent.text": (),
-# class PySide2.QtGui.QKeySequence:
-# class PySide2.QtGui.QKeySequence.SequenceFormat:
-# class PySide2.QtGui.QKeySequence.SequenceMatch:
-# class PySide2.QtGui.QKeySequence.StandardKey:
- "PySide2.QtGui.QKeySequence.__init__": [(), ('PySide2.QtGui.QKeySequence',), ('PySide2.QtGui.QKeySequence.StandardKey',), ('int', 'int', 'int', 'int'), ('str', 'PySide2.QtGui.QKeySequence.SequenceFormat')],
- "PySide2.QtGui.QKeySequence.__copy__": (),
- "PySide2.QtGui.QKeySequence.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QKeySequence.__reduce__": (),
- "PySide2.QtGui.QKeySequence.__repr__": (),
- "PySide2.QtGui.QKeySequence.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QKeySequence.count": (),
- "PySide2.QtGui.QKeySequence.fromString": ('str', 'PySide2.QtGui.QKeySequence.SequenceFormat'),
- "PySide2.QtGui.QKeySequence.isEmpty": (),
- "PySide2.QtGui.QKeySequence.keyBindings": ('PySide2.QtGui.QKeySequence.StandardKey',),
- "PySide2.QtGui.QKeySequence.listFromString": ('str', 'PySide2.QtGui.QKeySequence.SequenceFormat'),
- "PySide2.QtGui.QKeySequence.listToString": ('typing.Sequence[PySide2.QtGui.QKeySequence]', 'PySide2.QtGui.QKeySequence.SequenceFormat'),
- "PySide2.QtGui.QKeySequence.matches": ('PySide2.QtGui.QKeySequence',),
- "PySide2.QtGui.QKeySequence.mnemonic": ('str',),
- "PySide2.QtGui.QKeySequence.swap": ('PySide2.QtGui.QKeySequence',),
- "PySide2.QtGui.QKeySequence.toString": ('PySide2.QtGui.QKeySequence.SequenceFormat',),
-# class PySide2.QtGui.QLinearGradient:
- "PySide2.QtGui.QLinearGradient.__init__": [(), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'), ('PySide2.QtGui.QLinearGradient',), ('float', 'float', 'float', 'float')],
- "PySide2.QtGui.QLinearGradient.__copy__": (),
- "PySide2.QtGui.QLinearGradient.finalStop": (),
- "PySide2.QtGui.QLinearGradient.setFinalStop": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QLinearGradient.setStart": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QLinearGradient.start": (),
-# class PySide2.QtGui.QMatrix:
- "PySide2.QtGui.QMatrix.__init__": [(), ('PySide2.QtGui.QMatrix',), ('float', 'float', 'float', 'float', 'float', 'float')],
- "PySide2.QtGui.QMatrix.__copy__": (),
- "PySide2.QtGui.QMatrix.__imul__": ('PySide2.QtGui.QMatrix',),
- "PySide2.QtGui.QMatrix.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QMatrix.__mul__": [('PySide2.QtCore.QLine',), ('PySide2.QtCore.QLineF',), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtGui.QMatrix',)],
- "PySide2.QtGui.QMatrix.__reduce__": (),
- "PySide2.QtGui.QMatrix.__repr__": (),
- "PySide2.QtGui.QMatrix.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QMatrix.determinant": (),
- "PySide2.QtGui.QMatrix.dx": (),
- "PySide2.QtGui.QMatrix.dy": (),
- "PySide2.QtGui.QMatrix.inverted": (),
- "PySide2.QtGui.QMatrix.isIdentity": (),
- "PySide2.QtGui.QMatrix.isInvertible": (),
- "PySide2.QtGui.QMatrix.m11": (),
- "PySide2.QtGui.QMatrix.m12": (),
- "PySide2.QtGui.QMatrix.m21": (),
- "PySide2.QtGui.QMatrix.m22": (),
- "PySide2.QtGui.QMatrix.map": [('PySide2.QtCore.QLine',), ('PySide2.QtCore.QLineF',), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtGui.QPainterPath',), ('PySide2.QtGui.QPolygon',), ('PySide2.QtGui.QPolygonF',), ('PySide2.QtGui.QRegion',), ('float', 'float'), ('int', 'int')],
- "PySide2.QtGui.QMatrix.mapRect": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',)],
- "PySide2.QtGui.QMatrix.mapToPolygon": ('PySide2.QtCore.QRect',),
- "PySide2.QtGui.QMatrix.reset": (),
- "PySide2.QtGui.QMatrix.rotate": ('float',),
- "PySide2.QtGui.QMatrix.scale": ('float', 'float'),
- "PySide2.QtGui.QMatrix.setMatrix": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtGui.QMatrix.shear": ('float', 'float'),
- "PySide2.QtGui.QMatrix.translate": ('float', 'float'),
-# class PySide2.QtGui.QMatrix2x2:
- "PySide2.QtGui.QMatrix2x2.__init__": [(), ('PySide2.QtGui.QMatrix2x2',), ('typing.Iterable',)],
- "PySide2.QtGui.QMatrix2x2.__call__": ('int', 'int'),
- "PySide2.QtGui.QMatrix2x2.__copy__": (),
- "PySide2.QtGui.QMatrix2x2.__iadd__": ('PySide2.QtGui.QMatrix2x2',),
- "PySide2.QtGui.QMatrix2x2.__imul__": ('float',),
- "PySide2.QtGui.QMatrix2x2.__isub__": ('PySide2.QtGui.QMatrix2x2',),
- "PySide2.QtGui.QMatrix2x2.__reduce__": (),
- "PySide2.QtGui.QMatrix2x2.__repr__": (),
- "PySide2.QtGui.QMatrix2x2.data": (),
- "PySide2.QtGui.QMatrix2x2.fill": ('float',),
- "PySide2.QtGui.QMatrix2x2.isIdentity": (),
- "PySide2.QtGui.QMatrix2x2.setToIdentity": (),
- "PySide2.QtGui.QMatrix2x2.transposed": (),
-# class PySide2.QtGui.QMatrix2x3:
- "PySide2.QtGui.QMatrix2x3.__init__": [(), ('PySide2.QtGui.QMatrix2x3',), ('typing.Iterable',)],
- "PySide2.QtGui.QMatrix2x3.__call__": ('int', 'int'),
- "PySide2.QtGui.QMatrix2x3.__copy__": (),
- "PySide2.QtGui.QMatrix2x3.__iadd__": ('PySide2.QtGui.QMatrix2x3',),
- "PySide2.QtGui.QMatrix2x3.__imul__": ('float',),
- "PySide2.QtGui.QMatrix2x3.__isub__": ('PySide2.QtGui.QMatrix2x3',),
- "PySide2.QtGui.QMatrix2x3.__reduce__": (),
- "PySide2.QtGui.QMatrix2x3.__repr__": (),
- "PySide2.QtGui.QMatrix2x3.data": (),
- "PySide2.QtGui.QMatrix2x3.fill": ('float',),
- "PySide2.QtGui.QMatrix2x3.isIdentity": (),
- "PySide2.QtGui.QMatrix2x3.setToIdentity": (),
- "PySide2.QtGui.QMatrix2x3.transposed": (),
-# class PySide2.QtGui.QMatrix2x4:
- "PySide2.QtGui.QMatrix2x4.__init__": [(), ('PySide2.QtGui.QMatrix2x4',), ('typing.Iterable',)],
- "PySide2.QtGui.QMatrix2x4.__call__": ('int', 'int'),
- "PySide2.QtGui.QMatrix2x4.__copy__": (),
- "PySide2.QtGui.QMatrix2x4.__iadd__": ('PySide2.QtGui.QMatrix2x4',),
- "PySide2.QtGui.QMatrix2x4.__imul__": ('float',),
- "PySide2.QtGui.QMatrix2x4.__isub__": ('PySide2.QtGui.QMatrix2x4',),
- "PySide2.QtGui.QMatrix2x4.__reduce__": (),
- "PySide2.QtGui.QMatrix2x4.__repr__": (),
- "PySide2.QtGui.QMatrix2x4.data": (),
- "PySide2.QtGui.QMatrix2x4.fill": ('float',),
- "PySide2.QtGui.QMatrix2x4.isIdentity": (),
- "PySide2.QtGui.QMatrix2x4.setToIdentity": (),
- "PySide2.QtGui.QMatrix2x4.transposed": (),
-# class PySide2.QtGui.QMatrix3x2:
- "PySide2.QtGui.QMatrix3x2.__init__": [(), ('PySide2.QtGui.QMatrix3x2',), ('typing.Iterable',)],
- "PySide2.QtGui.QMatrix3x2.__call__": ('int', 'int'),
- "PySide2.QtGui.QMatrix3x2.__copy__": (),
- "PySide2.QtGui.QMatrix3x2.__iadd__": ('PySide2.QtGui.QMatrix3x2',),
- "PySide2.QtGui.QMatrix3x2.__imul__": ('float',),
- "PySide2.QtGui.QMatrix3x2.__isub__": ('PySide2.QtGui.QMatrix3x2',),
- "PySide2.QtGui.QMatrix3x2.__reduce__": (),
- "PySide2.QtGui.QMatrix3x2.__repr__": (),
- "PySide2.QtGui.QMatrix3x2.data": (),
- "PySide2.QtGui.QMatrix3x2.fill": ('float',),
- "PySide2.QtGui.QMatrix3x2.isIdentity": (),
- "PySide2.QtGui.QMatrix3x2.setToIdentity": (),
- "PySide2.QtGui.QMatrix3x2.transposed": (),
-# class PySide2.QtGui.QMatrix3x3:
- "PySide2.QtGui.QMatrix3x3.__init__": [(), ('PySide2.QtGui.QMatrix3x3',), ('typing.Iterable',)],
- "PySide2.QtGui.QMatrix3x3.__call__": ('int', 'int'),
- "PySide2.QtGui.QMatrix3x3.__copy__": (),
- "PySide2.QtGui.QMatrix3x3.__iadd__": ('PySide2.QtGui.QMatrix3x3',),
- "PySide2.QtGui.QMatrix3x3.__imul__": ('float',),
- "PySide2.QtGui.QMatrix3x3.__isub__": ('PySide2.QtGui.QMatrix3x3',),
- "PySide2.QtGui.QMatrix3x3.__reduce__": (),
- "PySide2.QtGui.QMatrix3x3.__repr__": (),
- "PySide2.QtGui.QMatrix3x3.data": (),
- "PySide2.QtGui.QMatrix3x3.fill": ('float',),
- "PySide2.QtGui.QMatrix3x3.isIdentity": (),
- "PySide2.QtGui.QMatrix3x3.setToIdentity": (),
- "PySide2.QtGui.QMatrix3x3.transposed": (),
-# class PySide2.QtGui.QMatrix3x4:
- "PySide2.QtGui.QMatrix3x4.__init__": [(), ('PySide2.QtGui.QMatrix3x4',), ('typing.Iterable',)],
- "PySide2.QtGui.QMatrix3x4.__call__": ('int', 'int'),
- "PySide2.QtGui.QMatrix3x4.__copy__": (),
- "PySide2.QtGui.QMatrix3x4.__iadd__": ('PySide2.QtGui.QMatrix3x4',),
- "PySide2.QtGui.QMatrix3x4.__imul__": ('float',),
- "PySide2.QtGui.QMatrix3x4.__isub__": ('PySide2.QtGui.QMatrix3x4',),
- "PySide2.QtGui.QMatrix3x4.__reduce__": (),
- "PySide2.QtGui.QMatrix3x4.__repr__": (),
- "PySide2.QtGui.QMatrix3x4.data": (),
- "PySide2.QtGui.QMatrix3x4.fill": ('float',),
- "PySide2.QtGui.QMatrix3x4.isIdentity": (),
- "PySide2.QtGui.QMatrix3x4.setToIdentity": (),
- "PySide2.QtGui.QMatrix3x4.transposed": (),
-# class PySide2.QtGui.QMatrix4x2:
- "PySide2.QtGui.QMatrix4x2.__init__": [(), ('PySide2.QtGui.QMatrix4x2',), ('typing.Iterable',)],
- "PySide2.QtGui.QMatrix4x2.__call__": ('int', 'int'),
- "PySide2.QtGui.QMatrix4x2.__copy__": (),
- "PySide2.QtGui.QMatrix4x2.__iadd__": ('PySide2.QtGui.QMatrix4x2',),
- "PySide2.QtGui.QMatrix4x2.__imul__": ('float',),
- "PySide2.QtGui.QMatrix4x2.__isub__": ('PySide2.QtGui.QMatrix4x2',),
- "PySide2.QtGui.QMatrix4x2.__reduce__": (),
- "PySide2.QtGui.QMatrix4x2.__repr__": (),
- "PySide2.QtGui.QMatrix4x2.data": (),
- "PySide2.QtGui.QMatrix4x2.fill": ('float',),
- "PySide2.QtGui.QMatrix4x2.isIdentity": (),
- "PySide2.QtGui.QMatrix4x2.setToIdentity": (),
- "PySide2.QtGui.QMatrix4x2.transposed": (),
-# class PySide2.QtGui.QMatrix4x3:
- "PySide2.QtGui.QMatrix4x3.__init__": [(), ('PySide2.QtGui.QMatrix4x3',), ('typing.Iterable',)],
- "PySide2.QtGui.QMatrix4x3.__call__": ('int', 'int'),
- "PySide2.QtGui.QMatrix4x3.__copy__": (),
- "PySide2.QtGui.QMatrix4x3.__iadd__": ('PySide2.QtGui.QMatrix4x3',),
- "PySide2.QtGui.QMatrix4x3.__imul__": ('float',),
- "PySide2.QtGui.QMatrix4x3.__isub__": ('PySide2.QtGui.QMatrix4x3',),
- "PySide2.QtGui.QMatrix4x3.__reduce__": (),
- "PySide2.QtGui.QMatrix4x3.__repr__": (),
- "PySide2.QtGui.QMatrix4x3.data": (),
- "PySide2.QtGui.QMatrix4x3.fill": ('float',),
- "PySide2.QtGui.QMatrix4x3.isIdentity": (),
- "PySide2.QtGui.QMatrix4x3.setToIdentity": (),
- "PySide2.QtGui.QMatrix4x3.transposed": (),
-# class PySide2.QtGui.QMatrix4x4:
- "PySide2.QtGui.QMatrix4x4.__init__": [(), ('PySide2.QtGui.QMatrix',), ('PySide2.QtGui.QTransform',), ('float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float'), ('typing.Sequence[float]',)],
- "PySide2.QtGui.QMatrix4x4.__add__": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtGui.QMatrix4x4.__copy__": (),
- "PySide2.QtGui.QMatrix4x4.__dummy": ('typing.Sequence[float]',),
- "PySide2.QtGui.QMatrix4x4.__iadd__": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtGui.QMatrix4x4.__imul__": [('PySide2.QtGui.QMatrix4x4',), ('float',)],
- "PySide2.QtGui.QMatrix4x4.__isub__": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtGui.QMatrix4x4.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QMatrix4x4.__mul__": [('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtGui.QMatrix4x4',), ('float',)],
- "PySide2.QtGui.QMatrix4x4.__neg__": (),
- "PySide2.QtGui.QMatrix4x4.__reduce__": (),
- "PySide2.QtGui.QMatrix4x4.__repr__": (),
- "PySide2.QtGui.QMatrix4x4.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QMatrix4x4.__sub__": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtGui.QMatrix4x4.column": ('int',),
- "PySide2.QtGui.QMatrix4x4.copyDataTo": (),
- "PySide2.QtGui.QMatrix4x4.data": (),
- "PySide2.QtGui.QMatrix4x4.determinant": (),
- "PySide2.QtGui.QMatrix4x4.fill": ('float',),
- "PySide2.QtGui.QMatrix4x4.flipCoordinates": (),
- "PySide2.QtGui.QMatrix4x4.frustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtGui.QMatrix4x4.inverted": (),
- "PySide2.QtGui.QMatrix4x4.isAffine": (),
- "PySide2.QtGui.QMatrix4x4.isIdentity": (),
- "PySide2.QtGui.QMatrix4x4.lookAt": ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'),
- "PySide2.QtGui.QMatrix4x4.map": [('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtGui.QVector3D',), ('PySide2.QtGui.QVector4D',)],
- "PySide2.QtGui.QMatrix4x4.mapRect": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',)],
- "PySide2.QtGui.QMatrix4x4.mapVector": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtGui.QMatrix4x4.normalMatrix": (),
- "PySide2.QtGui.QMatrix4x4.optimize": (),
- "PySide2.QtGui.QMatrix4x4.ortho": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float', 'float', 'float')],
- "PySide2.QtGui.QMatrix4x4.perspective": ('float', 'float', 'float', 'float'),
- "PySide2.QtGui.QMatrix4x4.rotate": [('PySide2.QtGui.QQuaternion',), ('float', 'PySide2.QtGui.QVector3D'), ('float', 'float', 'float', 'float')],
- "PySide2.QtGui.QMatrix4x4.row": ('int',),
- "PySide2.QtGui.QMatrix4x4.scale": [('PySide2.QtGui.QVector3D',), ('float',), ('float', 'float'), ('float', 'float', 'float')],
- "PySide2.QtGui.QMatrix4x4.setColumn": ('int', 'PySide2.QtGui.QVector4D'),
- "PySide2.QtGui.QMatrix4x4.setRow": ('int', 'PySide2.QtGui.QVector4D'),
- "PySide2.QtGui.QMatrix4x4.setToIdentity": (),
- "PySide2.QtGui.QMatrix4x4.toAffine": (),
- "PySide2.QtGui.QMatrix4x4.toTransform": [(), ('float',)],
- "PySide2.QtGui.QMatrix4x4.translate": [('PySide2.QtGui.QVector3D',), ('float', 'float'), ('float', 'float', 'float')],
- "PySide2.QtGui.QMatrix4x4.transposed": (),
- "PySide2.QtGui.QMatrix4x4.viewport": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float', 'float', 'float')],
-# class PySide2.QtGui.QMouseEvent:
- "PySide2.QtGui.QMouseEvent.__init__": [('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers'), ('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.Qt.MouseEventSource'), ('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers'), ('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers')],
- "PySide2.QtGui.QMouseEvent.button": (),
- "PySide2.QtGui.QMouseEvent.buttons": (),
- "PySide2.QtGui.QMouseEvent.flags": (),
- "PySide2.QtGui.QMouseEvent.globalPos": (),
- "PySide2.QtGui.QMouseEvent.globalX": (),
- "PySide2.QtGui.QMouseEvent.global""Y": (),
- "PySide2.QtGui.QMouseEvent.localPos": (),
- "PySide2.QtGui.QMouseEvent.pos": (),
- "PySide2.QtGui.QMouseEvent.screenPos": (),
- "PySide2.QtGui.QMouseEvent.setLocalPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QMouseEvent.source": (),
- "PySide2.QtGui.QMouseEvent.windowPos": (),
- "PySide2.QtGui.QMouseEvent.x": (),
- "PySide2.QtGui.QMouseEvent.y": (),
-# class PySide2.QtGui.QMoveEvent:
- "PySide2.QtGui.QMoveEvent.__init__": ('PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint'),
- "PySide2.QtGui.QMoveEvent.oldPos": (),
- "PySide2.QtGui.QMoveEvent.pos": (),
-# class PySide2.QtGui.QMovie:
-# class PySide2.QtGui.QMovie.CacheMode:
-# class PySide2.QtGui.QMovie.MovieState:
- "PySide2.QtGui.QMovie.__init__": [('PySide2.QtCore.QIODevice', 'PySide2.QtCore.QByteArray', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QObject',), ('str', 'PySide2.QtCore.QByteArray', 'PySide2.QtCore.QObject')],
- "PySide2.QtGui.QMovie.backgroundColor": (),
- "PySide2.QtGui.QMovie.cacheMode": (),
- "PySide2.QtGui.QMovie.currentFrameNumber": (),
- "PySide2.QtGui.QMovie.currentImage": (),
- "PySide2.QtGui.QMovie.currentPixmap": (),
- "PySide2.QtGui.QMovie.device": (),
- "PySide2.QtGui.QMovie.fileName": (),
- "PySide2.QtGui.QMovie.format": (),
- "PySide2.QtGui.QMovie.frameCount": (),
- "PySide2.QtGui.QMovie.frameRect": (),
- "PySide2.QtGui.QMovie.isValid": (),
- "PySide2.QtGui.QMovie.jumpToFrame": ('int',),
- "PySide2.QtGui.QMovie.jumpToNextFrame": (),
- "PySide2.QtGui.QMovie.lastError": (),
- "PySide2.QtGui.QMovie.lastErrorString": (),
- "PySide2.QtGui.QMovie.loopCount": (),
- "PySide2.QtGui.QMovie.nextFrameDelay": (),
- "PySide2.QtGui.QMovie.scaledSize": (),
- "PySide2.QtGui.QMovie.setBackgroundColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtGui.QMovie.setCacheMode": ('PySide2.QtGui.QMovie.CacheMode',),
- "PySide2.QtGui.QMovie.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtGui.QMovie.setFileName": ('str',),
- "PySide2.QtGui.QMovie.setFormat": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QMovie.setPaused": ('bool',),
- "PySide2.QtGui.QMovie.setScaledSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtGui.QMovie.setSpeed": ('int',),
- "PySide2.QtGui.QMovie.speed": (),
- "PySide2.QtGui.QMovie.start": (),
- "PySide2.QtGui.QMovie.state": (),
- "PySide2.QtGui.QMovie.stop": (),
- "PySide2.QtGui.QMovie.supportedFormats": (),
-# class PySide2.QtGui.QNativeGestureEvent:
- "PySide2.QtGui.QNativeGestureEvent.__init__": [('PySide2.QtCore.Qt.NativeGestureType', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'float', 'int', 'int'), ('PySide2.QtCore.Qt.NativeGestureType', 'PySide2.QtGui.QTouchDevice', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'float', 'int', 'int')],
- "PySide2.QtGui.QNativeGestureEvent.device": (),
- "PySide2.QtGui.QNativeGestureEvent.gestureType": (),
- "PySide2.QtGui.QNativeGestureEvent.globalPos": (),
- "PySide2.QtGui.QNativeGestureEvent.localPos": (),
- "PySide2.QtGui.QNativeGestureEvent.pos": (),
- "PySide2.QtGui.QNativeGestureEvent.screenPos": (),
- "PySide2.QtGui.QNativeGestureEvent.value": (),
- "PySide2.QtGui.QNativeGestureEvent.windowPos": (),
-# class PySide2.QtGui.QOffscreenSurface:
- "PySide2.QtGui.QOffscreenSurface.__init__": [('PySide2.QtGui.QScreen',), ('PySide2.QtGui.QScreen', 'PySide2.QtCore.QObject')],
- "PySide2.QtGui.QOffscreenSurface.create": (),
- "PySide2.QtGui.QOffscreenSurface.destroy": (),
- "PySide2.QtGui.QOffscreenSurface.format": (),
- "PySide2.QtGui.QOffscreenSurface.isValid": (),
- "PySide2.QtGui.QOffscreenSurface.nativeHandle": (),
- "PySide2.QtGui.QOffscreenSurface.requestedFormat": (),
- "PySide2.QtGui.QOffscreenSurface.screen": (),
- "PySide2.QtGui.QOffscreenSurface.setFormat": ('PySide2.QtGui.QSurfaceFormat',),
- "PySide2.QtGui.QOffscreenSurface.setNativeHandle": ('int',),
- "PySide2.QtGui.QOffscreenSurface.setScreen": ('PySide2.QtGui.QScreen',),
- "PySide2.QtGui.QOffscreenSurface.size": (),
- "PySide2.QtGui.QOffscreenSurface.surfaceHandle": (),
- "PySide2.QtGui.QOffscreenSurface.surfaceType": (),
-# class PySide2.QtGui.QOpenGLBuffer:
-# class PySide2.QtGui.QOpenGLBuffer.Access:
-# class PySide2.QtGui.QOpenGLBuffer.RangeAccessFlag:
-# class PySide2.QtGui.QOpenGLBuffer.RangeAccessFlags:
-# class PySide2.QtGui.QOpenGLBuffer.Type:
-# class PySide2.QtGui.QOpenGLBuffer.UsagePattern:
- "PySide2.QtGui.QOpenGLBuffer.__init__": [(), ('PySide2.QtGui.QOpenGLBuffer',), ('PySide2.QtGui.QOpenGLBuffer.Type',)],
- "PySide2.QtGui.QOpenGLBuffer.allocate": [('int',), ('int', 'int')],
- "PySide2.QtGui.QOpenGLBuffer.bind": (),
- "PySide2.QtGui.QOpenGLBuffer.bufferId": (),
- "PySide2.QtGui.QOpenGLBuffer.create": (),
- "PySide2.QtGui.QOpenGLBuffer.destroy": (),
- "PySide2.QtGui.QOpenGLBuffer.isCreated": (),
- "PySide2.QtGui.QOpenGLBuffer.map": ('PySide2.QtGui.QOpenGLBuffer.Access',),
- "PySide2.QtGui.QOpenGLBuffer.mapRange": ('int', 'int', 'PySide2.QtGui.QOpenGLBuffer.RangeAccessFlags'),
- "PySide2.QtGui.QOpenGLBuffer.read": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLBuffer.release": [(), ('PySide2.QtGui.QOpenGLBuffer.Type',)],
- "PySide2.QtGui.QOpenGLBuffer.setUsagePattern": ('PySide2.QtGui.QOpenGLBuffer.UsagePattern',),
- "PySide2.QtGui.QOpenGLBuffer.size": (),
- "PySide2.QtGui.QOpenGLBuffer.type": (),
- "PySide2.QtGui.QOpenGLBuffer.unmap": (),
- "PySide2.QtGui.QOpenGLBuffer.usagePattern": (),
- "PySide2.QtGui.QOpenGLBuffer.write": ('int', 'int', 'int'),
-# class PySide2.QtGui.QOpenGLContext:
-# class PySide2.QtGui.QOpenGLContext.OpenGLModuleType:
- "PySide2.QtGui.QOpenGLContext.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QOpenGLContext.areSharing": ('PySide2.QtGui.QOpenGLContext', 'PySide2.QtGui.QOpenGLContext'),
- "PySide2.QtGui.QOpenGLContext.create": (),
- "PySide2.QtGui.QOpenGLContext.currentContext": (),
- "PySide2.QtGui.QOpenGLContext.defaultFramebufferObject": (),
- "PySide2.QtGui.QOpenGLContext.doneCurrent": (),
- "PySide2.QtGui.QOpenGLContext.extensions": (),
- "PySide2.QtGui.QOpenGLContext.extraFunctions": (),
- "PySide2.QtGui.QOpenGLContext.format": (),
- "PySide2.QtGui.QOpenGLContext.functions": (),
- "PySide2.QtGui.QOpenGLContext.globalShareContext": (),
- "PySide2.QtGui.QOpenGLContext.hasExtension": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QOpenGLContext.isOpenGLES": (),
- "PySide2.QtGui.QOpenGLContext.isValid": (),
- "PySide2.QtGui.QOpenGLContext.makeCurrent": ('PySide2.QtGui.QSurface',),
- "PySide2.QtGui.QOpenGLContext.nativeHandle": (),
- "PySide2.QtGui.QOpenGLContext.openGLModuleHandle": (),
- "PySide2.QtGui.QOpenGLContext.openGLModuleType": (),
- "PySide2.QtGui.QOpenGLContext.screen": (),
- "PySide2.QtGui.QOpenGLContext.setFormat": ('PySide2.QtGui.QSurfaceFormat',),
- "PySide2.QtGui.QOpenGLContext.setNativeHandle": ('typing.Any',),
- "PySide2.QtGui.QOpenGLContext.setScreen": ('PySide2.QtGui.QScreen',),
- "PySide2.QtGui.QOpenGLContext.setShareContext": ('PySide2.QtGui.QOpenGLContext',),
- "PySide2.QtGui.QOpenGLContext.shareContext": (),
- "PySide2.QtGui.QOpenGLContext.shareGroup": (),
- "PySide2.QtGui.QOpenGLContext.supportsThreadedOpenGL": (),
- "PySide2.QtGui.QOpenGLContext.surface": (),
- "PySide2.QtGui.QOpenGLContext.swapBuffers": ('PySide2.QtGui.QSurface',),
- "PySide2.QtGui.QOpenGLContext.versionFunctions": ('PySide2.QtGui.QOpenGLVersionProfile',),
-# class PySide2.QtGui.QOpenGLContextGroup:
- "PySide2.QtGui.QOpenGLContextGroup.currentContextGroup": (),
- "PySide2.QtGui.QOpenGLContextGroup.shares": (),
-# class PySide2.QtGui.QOpenGLDebugLogger:
-# class PySide2.QtGui.QOpenGLDebugLogger.LoggingMode:
- "PySide2.QtGui.QOpenGLDebugLogger.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QOpenGLDebugLogger.disableMessages": [('PySide2.QtGui.QOpenGLDebugMessage.Sources', 'PySide2.QtGui.QOpenGLDebugMessage.Types', 'PySide2.QtGui.QOpenGLDebugMessage.Severities'), ('typing.List[int]', 'PySide2.QtGui.QOpenGLDebugMessage.Sources', 'PySide2.QtGui.QOpenGLDebugMessage.Types')],
- "PySide2.QtGui.QOpenGLDebugLogger.enableMessages": [('PySide2.QtGui.QOpenGLDebugMessage.Sources', 'PySide2.QtGui.QOpenGLDebugMessage.Types', 'PySide2.QtGui.QOpenGLDebugMessage.Severities'), ('typing.List[int]', 'PySide2.QtGui.QOpenGLDebugMessage.Sources', 'PySide2.QtGui.QOpenGLDebugMessage.Types')],
- "PySide2.QtGui.QOpenGLDebugLogger.initialize": (),
- "PySide2.QtGui.QOpenGLDebugLogger.isLogging": (),
- "PySide2.QtGui.QOpenGLDebugLogger.logMessage": ('PySide2.QtGui.QOpenGLDebugMessage',),
- "PySide2.QtGui.QOpenGLDebugLogger.loggedMessages": (),
- "PySide2.QtGui.QOpenGLDebugLogger.loggingMode": (),
- "PySide2.QtGui.QOpenGLDebugLogger.maximumMessageLength": (),
- "PySide2.QtGui.QOpenGLDebugLogger.popGroup": (),
- "PySide2.QtGui.QOpenGLDebugLogger.pushGroup": ('str', 'int', 'PySide2.QtGui.QOpenGLDebugMessage.Source'),
- "PySide2.QtGui.QOpenGLDebugLogger.startLogging": ('PySide2.QtGui.QOpenGLDebugLogger.LoggingMode',),
- "PySide2.QtGui.QOpenGLDebugLogger.stopLogging": (),
-# class PySide2.QtGui.QOpenGLDebugMessage:
-# class PySide2.QtGui.QOpenGLDebugMessage.Severities:
-# class PySide2.QtGui.QOpenGLDebugMessage.Severity:
-# class PySide2.QtGui.QOpenGLDebugMessage.Source:
-# class PySide2.QtGui.QOpenGLDebugMessage.Sources:
-# class PySide2.QtGui.QOpenGLDebugMessage.Type:
-# class PySide2.QtGui.QOpenGLDebugMessage.Types:
- "PySide2.QtGui.QOpenGLDebugMessage.__init__": [(), ('PySide2.QtGui.QOpenGLDebugMessage',)],
- "PySide2.QtGui.QOpenGLDebugMessage.__copy__": (),
- "PySide2.QtGui.QOpenGLDebugMessage.createApplicationMessage": ('str', 'int', 'PySide2.QtGui.QOpenGLDebugMessage.Severity', 'PySide2.QtGui.QOpenGLDebugMessage.Type'),
- "PySide2.QtGui.QOpenGLDebugMessage.createThirdPartyMessage": ('str', 'int', 'PySide2.QtGui.QOpenGLDebugMessage.Severity', 'PySide2.QtGui.QOpenGLDebugMessage.Type'),
- "PySide2.QtGui.QOpenGLDebugMessage.id": (),
- "PySide2.QtGui.QOpenGLDebugMessage.message": (),
- "PySide2.QtGui.QOpenGLDebugMessage.severity": (),
- "PySide2.QtGui.QOpenGLDebugMessage.source": (),
- "PySide2.QtGui.QOpenGLDebugMessage.swap": ('PySide2.QtGui.QOpenGLDebugMessage',),
- "PySide2.QtGui.QOpenGLDebugMessage.type": (),
-# class PySide2.QtGui.QOpenGLExtraFunctions:
- "PySide2.QtGui.QOpenGLExtraFunctions.__init__": [(), ('PySide2.QtGui.QOpenGLContext',)],
- "PySide2.QtGui.QOpenGLExtraFunctions.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBeginQuery": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBeginTransformFeedback": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBindImageTexture": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBindProgramPipeline": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBindSampler": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBindVertexArray": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBlendBarrier": (),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBlendEquationi": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glClearBufferiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glClearBufferuiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glCopyImageSubData": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDebugMessageControl": ('int', 'int', 'int', 'int', 'shibokensupport.typing27.Sequence', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDebugMessageInsert": ('int', 'int', 'int', 'int', 'int', 'str'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDeleteProgramPipelines": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDeleteQueries": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDeleteSamplers": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDeleteTransformFeedbacks": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDeleteVertexArrays": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDisablei": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDispatchCompute": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDrawBuffers": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glEnablei": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glEndQuery": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glFramebufferParameteri": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGenProgramPipelines": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGenQueries": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGenSamplers": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGenTransformFeedbacks": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGenVertexArrays": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetActiveUniformBlockiv": ('int', 'int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetActiveUniformsiv": ('int', 'int', 'shibokensupport.typing27.Sequence', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetBufferParameteri64v": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetFramebufferParameteriv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetGraphicsResetStatus": (),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetInteger64i_v": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetInteger64v": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetIntegeri_v": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetInternalformativ": ('int', 'int', 'int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetMultisamplefv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetProgramBinary": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetProgramInterfaceiv": ('int', 'int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetProgramPipelineiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetProgramResourceIndex": ('int', 'int', 'str'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetProgramResourceLocation": ('int', 'int', 'str'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetProgramResourceiv": ('int', 'int', 'int', 'int', 'shibokensupport.typing27.Sequence', 'int', 'shibokensupport.typing27.Sequence', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetQueryObjectuiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetQueryiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetSamplerParameterIiv": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetSamplerParameterIuiv": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetSamplerParameteriv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetStringi": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetTexLevelParameterfv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetTexLevelParameteriv": ('int', 'int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetTexParameterIiv": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetTexParameterIuiv": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetUniformuiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetVertexAttribIiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetVertexAttribIuiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetnUniformfv": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetnUniformiv": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetnUniformuiv": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glInvalidateFramebuffer": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glInvalidateSubFramebuffer": ('int', 'int', 'shibokensupport.typing27.Sequence', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glIsEnabledi": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glIsProgramPipeline": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glIsQuery": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glIsSampler": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glIsTransformFeedback": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glIsVertexArray": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glMemoryBarrier": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glMemoryBarrierByRegion": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glMinSampleShading": ('float',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glObjectLabel": ('int', 'int', 'int', 'str'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glObjectPtrLabel": ('int', 'int', 'str'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glPatchParameteri": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glPopDebugGroup": (),
- "PySide2.QtGui.QOpenGLExtraFunctions.glPrimitiveBoundingBox": ('float', 'float', 'float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform1iv": ('int', 'int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform1uiv": ('int', 'int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform2iv": ('int', 'int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform2uiv": ('int', 'int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform3iv": ('int', 'int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform3uiv": ('int', 'int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform4iv": ('int', 'int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform4uiv": ('int', 'int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glPushDebugGroup": ('int', 'int', 'int', 'str'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glReadBuffer": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glReadnPixels": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glSampleMaski": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glSamplerParameterIiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glSamplerParameterIuiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glSamplerParameteriv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glTexParameterIiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glTexParameterIuiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glTexStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glTexStorage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glTexStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glTexStorage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniform1ui": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniform1uiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniform2uiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniform3uiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniform4uiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUnmapBuffer": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glValidateProgramPipeline": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glVertexAttribBinding": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glVertexAttribFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glVertexAttribI4iv": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glVertexAttribI4uiv": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glVertexAttribIFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glVertexBindingDivisor": ('int', 'int'),
-# class PySide2.QtGui.QOpenGLFramebufferObject:
-# class PySide2.QtGui.QOpenGLFramebufferObject.Attachment:
-# class PySide2.QtGui.QOpenGLFramebufferObject.FramebufferRestorePolicy:
- "PySide2.QtGui.QOpenGLFramebufferObject.__init__": [('PySide2.QtCore.QSize', 'PySide2.QtGui.QOpenGLFramebufferObject.Attachment', 'int', 'int'), ('PySide2.QtCore.QSize', 'PySide2.QtGui.QOpenGLFramebufferObjectFormat'), ('PySide2.QtCore.QSize', 'int'), ('int', 'int', 'PySide2.QtGui.QOpenGLFramebufferObject.Attachment', 'int', 'int'), ('int', 'int', 'PySide2.QtGui.QOpenGLFramebufferObjectFormat'), ('int', 'int', 'int')],
- "PySide2.QtGui.QOpenGLFramebufferObject.addColorAttachment": [('PySide2.QtCore.QSize', 'int'), ('int', 'int', 'int')],
- "PySide2.QtGui.QOpenGLFramebufferObject.attachment": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.bind": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.bindDefault": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.blitFramebuffer": [('PySide2.QtGui.QOpenGLFramebufferObject', 'PySide2.QtCore.QRect', 'PySide2.QtGui.QOpenGLFramebufferObject', 'PySide2.QtCore.QRect', 'int', 'int'), ('PySide2.QtGui.QOpenGLFramebufferObject', 'PySide2.QtCore.QRect', 'PySide2.QtGui.QOpenGLFramebufferObject', 'PySide2.QtCore.QRect', 'int', 'int', 'int', 'int'), ('PySide2.QtGui.QOpenGLFramebufferObject', 'PySide2.QtCore.QRect', 'PySide2.QtGui.QOpenGLFramebufferObject', 'PySide2.QtCore.QRect', 'int', 'int', 'int', 'int', 'PySide2.QtGui.QOpenGLFramebufferObject.FramebufferRestorePolicy'), ('PySide2.QtGui.QOpenGLFramebufferObject', 'PySide2.QtGui.QOpenGLFramebufferObject', 'int', 'int')],
- "PySide2.QtGui.QOpenGLFramebufferObject.format": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.handle": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.hasOpenGLFramebufferBlit": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.hasOpenGLFramebufferObjects": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.height": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.isBound": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.isValid": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.release": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.setAttachment": ('PySide2.QtGui.QOpenGLFramebufferObject.Attachment',),
- "PySide2.QtGui.QOpenGLFramebufferObject.size": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.sizes": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.takeTexture": [(), ('int',)],
- "PySide2.QtGui.QOpenGLFramebufferObject.texture": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.textures": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.toImage": [(), ('bool',), ('bool', 'int')],
- "PySide2.QtGui.QOpenGLFramebufferObject.width": (),
-# class PySide2.QtGui.QOpenGLFramebufferObjectFormat:
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.__init__": [(), ('PySide2.QtGui.QOpenGLFramebufferObjectFormat',)],
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.__copy__": (),
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.attachment": (),
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.internalTextureFormat": (),
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.mipmap": (),
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.samples": (),
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.setAttachment": ('PySide2.QtGui.QOpenGLFramebufferObject.Attachment',),
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.setInternalTextureFormat": ('int',),
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.setMipmap": ('bool',),
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.setSamples": ('int',),
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.setTextureTarget": ('int',),
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.textureTarget": (),
-# class PySide2.QtGui.QOpenGLFunctions:
-# class PySide2.QtGui.QOpenGLFunctions.OpenGLFeature:
-# class PySide2.QtGui.QOpenGLFunctions.OpenGLFeatures:
- "PySide2.QtGui.QOpenGLFunctions.__init__": [(), ('PySide2.QtGui.QOpenGLContext',)],
- "PySide2.QtGui.QOpenGLFunctions.glActiveTexture": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glAttachShader": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtGui.QOpenGLFunctions.glBindBuffer": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glBindTexture": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glBlendEquation": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glBlendFunc": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glCheckFramebufferStatus": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glClear": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glClearDepthf": ('float',),
- "PySide2.QtGui.QOpenGLFunctions.glClearStencil": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glCompileShader": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glCreateProgram": (),
- "PySide2.QtGui.QOpenGLFunctions.glCreateShader": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glCullFace": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glDeleteBuffers": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glDeleteFramebuffers": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glDeleteProgram": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glDeleteRenderbuffers": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glDeleteShader": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glDeleteTextures": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glDepthFunc": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glDepthMask": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glDepthRangef": ('float', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glDetachShader": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glDisable": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glDisableVertexAttribArray": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glEnable": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glEnableVertexAttribArray": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glFinish": (),
- "PySide2.QtGui.QOpenGLFunctions.glFlush": (),
- "PySide2.QtGui.QOpenGLFunctions.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glFrontFace": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glGenBuffers": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGenFramebuffers": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGenRenderbuffers": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGenTextures": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGenerateMipmap": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glGetAttachedShaders": ('int', 'int', 'shibokensupport.typing27.Sequence', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtGui.QOpenGLFunctions.glGetBufferParameteriv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetError": (),
- "PySide2.QtGui.QOpenGLFunctions.glGetFloatv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glGetFramebufferAttachmentParameteriv": ('int', 'int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetIntegerv": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetProgramiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetRenderbufferParameteriv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetShaderPrecisionFormat": ('int', 'int', 'shibokensupport.typing27.Sequence', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetShaderiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetString": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glGetTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glGetTexParameteriv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtGui.QOpenGLFunctions.glGetUniformfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glGetUniformiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetVertexAttribfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glGetVertexAttribiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glHint": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glIsBuffer": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glIsEnabled": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glIsFramebuffer": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glIsProgram": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glIsRenderbuffer": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glIsShader": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glIsTexture": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glLineWidth": ('float',),
- "PySide2.QtGui.QOpenGLFunctions.glLinkProgram": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glPixelStorei": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glPolygonOffset": ('float', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glReadPixels": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glReleaseShaderCompiler": (),
- "PySide2.QtGui.QOpenGLFunctions.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glSampleCoverage": ('float', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glShaderBinary": ('int', 'shibokensupport.typing27.Sequence', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glStencilMask": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glTexParameteriv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform1f": ('int', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform1i": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform1iv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform2iv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform3iv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform4iv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glUseProgram": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glValidateProgram": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.hasOpenGLFeature": ('PySide2.QtGui.QOpenGLFunctions.OpenGLFeature',),
- "PySide2.QtGui.QOpenGLFunctions.initializeOpenGLFunctions": (),
- "PySide2.QtGui.QOpenGLFunctions.openGLFeatures": (),
-# class PySide2.QtGui.QOpenGLPixelTransferOptions:
- "PySide2.QtGui.QOpenGLPixelTransferOptions.__init__": [(), ('PySide2.QtGui.QOpenGLPixelTransferOptions',)],
- "PySide2.QtGui.QOpenGLPixelTransferOptions.__copy__": (),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.alignment": (),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.imageHeight": (),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.isLeastSignificantBitFirst": (),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.isSwapBytesEnabled": (),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.rowLength": (),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.setAlignment": ('int',),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.setImageHeight": ('int',),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.setLeastSignificantByteFirst": ('bool',),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.setRowLength": ('int',),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.setSkipImages": ('int',),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.setSkipPixels": ('int',),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.setSkipRows": ('int',),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.setSwapBytesEnabled": ('bool',),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.skipImages": (),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.skipPixels": (),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.skipRows": (),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.swap": ('PySide2.QtGui.QOpenGLPixelTransferOptions',),
-# class PySide2.QtGui.QOpenGLShader:
-# class PySide2.QtGui.QOpenGLShader.ShaderType:
-# class PySide2.QtGui.QOpenGLShader.ShaderTypeBit:
- "PySide2.QtGui.QOpenGLShader.__init__": ('PySide2.QtGui.QOpenGLShader.ShaderType', 'PySide2.QtCore.QObject'),
- "PySide2.QtGui.QOpenGLShader.compileSourceCode": [('PySide2.QtCore.QByteArray',), ('str',)],
- "PySide2.QtGui.QOpenGLShader.compileSourceFile": ('str',),
- "PySide2.QtGui.QOpenGLShader.hasOpenGLShaders": ('PySide2.QtGui.QOpenGLShader.ShaderType', 'PySide2.QtGui.QOpenGLContext'),
- "PySide2.QtGui.QOpenGLShader.isCompiled": (),
- "PySide2.QtGui.QOpenGLShader.log": (),
- "PySide2.QtGui.QOpenGLShader.shaderId": (),
- "PySide2.QtGui.QOpenGLShader.shaderType": (),
- "PySide2.QtGui.QOpenGLShader.sourceCode": (),
-# class PySide2.QtGui.QOpenGLShaderProgram:
- "PySide2.QtGui.QOpenGLShaderProgram.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QOpenGLShaderProgram.addCacheableShaderFromSourceCode": [('PySide2.QtGui.QOpenGLShader.ShaderType', 'PySide2.QtCore.QByteArray'), ('PySide2.QtGui.QOpenGLShader.ShaderType', 'str')],
- "PySide2.QtGui.QOpenGLShaderProgram.addCacheableShaderFromSourceFile": ('PySide2.QtGui.QOpenGLShader.ShaderType', 'str'),
- "PySide2.QtGui.QOpenGLShaderProgram.addShader": ('PySide2.QtGui.QOpenGLShader',),
- "PySide2.QtGui.QOpenGLShaderProgram.addShaderFromSourceCode": [('PySide2.QtGui.QOpenGLShader.ShaderType', 'PySide2.QtCore.QByteArray'), ('PySide2.QtGui.QOpenGLShader.ShaderType', 'str')],
- "PySide2.QtGui.QOpenGLShaderProgram.addShaderFromSourceFile": ('PySide2.QtGui.QOpenGLShader.ShaderType', 'str'),
- "PySide2.QtGui.QOpenGLShaderProgram.attributeLocation": [('PySide2.QtCore.QByteArray',), ('str',)],
- "PySide2.QtGui.QOpenGLShaderProgram.bind": (),
- "PySide2.QtGui.QOpenGLShaderProgram.bindAttributeLocation": [('PySide2.QtCore.QByteArray', 'int'), ('str', 'int')],
- "PySide2.QtGui.QOpenGLShaderProgram.create": (),
- "PySide2.QtGui.QOpenGLShaderProgram.defaultInnerTessellationLevels": (),
- "PySide2.QtGui.QOpenGLShaderProgram.defaultOuterTessellationLevels": (),
- "PySide2.QtGui.QOpenGLShaderProgram.disableAttributeArray": [('int',), ('str',)],
- "PySide2.QtGui.QOpenGLShaderProgram.enableAttributeArray": [('int',), ('str',)],
- "PySide2.QtGui.QOpenGLShaderProgram.hasOpenGLShaderPrograms": ('PySide2.QtGui.QOpenGLContext',),
- "PySide2.QtGui.QOpenGLShaderProgram.isLinked": (),
- "PySide2.QtGui.QOpenGLShaderProgram.link": (),
- "PySide2.QtGui.QOpenGLShaderProgram.log": (),
- "PySide2.QtGui.QOpenGLShaderProgram.maxGeometryOutputVertices": (),
- "PySide2.QtGui.QOpenGLShaderProgram.patchVertexCount": (),
- "PySide2.QtGui.QOpenGLShaderProgram.programId": (),
- "PySide2.QtGui.QOpenGLShaderProgram.release": (),
- "PySide2.QtGui.QOpenGLShaderProgram.removeAllShaders": (),
- "PySide2.QtGui.QOpenGLShaderProgram.removeShader": ('PySide2.QtGui.QOpenGLShader',),
- "PySide2.QtGui.QOpenGLShaderProgram.setAttributeArray": [('int', 'int', 'int', 'int', 'int'), ('int', 'typing.Sequence[float]', 'int', 'int'), ('str', 'int', 'int', 'int', 'int'), ('str', 'typing.Sequence[float]', 'int', 'int')],
- "PySide2.QtGui.QOpenGLShaderProgram.setAttributeBuffer": [('int', 'int', 'int', 'int', 'int'), ('str', 'int', 'int', 'int', 'int')],
- "PySide2.QtGui.QOpenGLShaderProgram.setAttributeValue": [('int', 'PySide2.QtGui.QColor'), ('int', 'PySide2.QtGui.QVector2D'), ('int', 'PySide2.QtGui.QVector3D'), ('int', 'PySide2.QtGui.QVector4D'), ('int', 'float'), ('int', 'float', 'float'), ('int', 'float', 'float', 'float'), ('int', 'float', 'float', 'float', 'float'), ('int', 'typing.Sequence[float]', 'int', 'int'), ('str', 'PySide2.QtGui.QColor'), ('str', 'PySide2.QtGui.QVector2D'), ('str', 'PySide2.QtGui.QVector3D'), ('str', 'PySide2.QtGui.QVector4D'), ('str', 'float'), ('str', 'float', 'float'), ('str', 'float', 'float', 'float'), ('str', 'float', 'float', 'float', 'float'), ('str', 'typing.Sequence[float]', 'int', 'int')],
- "PySide2.QtGui.QOpenGLShaderProgram.setDefaultInnerTessellationLevels": ('typing.List[float]',),
- "PySide2.QtGui.QOpenGLShaderProgram.setDefaultOuterTessellationLevels": ('typing.List[float]',),
- "PySide2.QtGui.QOpenGLShaderProgram.setPatchVertexCount": ('int',),
- "PySide2.QtGui.QOpenGLShaderProgram.setUniformValue": [('int', 'PySide2.QtCore.QPoint'), ('int', 'PySide2.QtCore.QPointF'), ('int', 'PySide2.QtCore.QSize'), ('int', 'PySide2.QtCore.QSizeF'), ('int', 'PySide2.QtGui.QColor'), ('int', 'PySide2.QtGui.QMatrix2x2'), ('int', 'PySide2.QtGui.QMatrix2x3'), ('int', 'PySide2.QtGui.QMatrix2x4'), ('int', 'PySide2.QtGui.QMatrix3x2'), ('int', 'PySide2.QtGui.QMatrix3x3'), ('int', 'PySide2.QtGui.QMatrix3x4'), ('int', 'PySide2.QtGui.QMatrix4x2'), ('int', 'PySide2.QtGui.QMatrix4x3'), ('int', 'PySide2.QtGui.QMatrix4x4'), ('int', 'PySide2.QtGui.QTransform'), ('int', 'PySide2.QtGui.QVector2D'), ('int', 'PySide2.QtGui.QVector3D'), ('int', 'PySide2.QtGui.QVector4D'), ('int', 'float'), ('int', 'float', 'float'), ('int', 'float', 'float', 'float'), ('int', 'float', 'float', 'float', 'float'), ('int', 'int'), ('int', 'typing.Tuple[typing.Tuple, typing.Tuple, typing.Tuple, typing.Tuple]'), ('int', 'typing.Tuple[typing.Tuple, typing.Tuple, typing.Tuple]'), ('int', 'typing.Tuple[typing.Tuple, typing.Tuple]'), ('str', 'PySide2.QtCore.QPoint'), ('str', 'PySide2.QtCore.QPointF'), ('str', 'PySide2.QtCore.QSize'), ('str', 'PySide2.QtCore.QSizeF'), ('str', 'PySide2.QtGui.QColor'), ('str', 'PySide2.QtGui.QMatrix2x2'), ('str', 'PySide2.QtGui.QMatrix2x3'), ('str', 'PySide2.QtGui.QMatrix2x4'), ('str', 'PySide2.QtGui.QMatrix3x2'), ('str', 'PySide2.QtGui.QMatrix3x3'), ('str', 'PySide2.QtGui.QMatrix3x4'), ('str', 'PySide2.QtGui.QMatrix4x2'), ('str', 'PySide2.QtGui.QMatrix4x3'), ('str', 'PySide2.QtGui.QMatrix4x4'), ('str', 'PySide2.QtGui.QTransform'), ('str', 'PySide2.QtGui.QVector2D'), ('str', 'PySide2.QtGui.QVector3D'), ('str', 'PySide2.QtGui.QVector4D'), ('str', 'float', 'float'), ('str', 'float', 'float', 'float'), ('str', 'float', 'float', 'float', 'float'), ('str', 'typing.Tuple[typing.Tuple, typing.Tuple, typing.Tuple, typing.Tuple]'), ('str', 'typing.Tuple[typing.Tuple, typing.Tuple, typing.Tuple]'), ('str', 'typing.Tuple[typing.Tuple, typing.Tuple]')],
- "PySide2.QtGui.QOpenGLShaderProgram.setUniformValue1f": [('int', 'float'), ('str', 'float')],
- "PySide2.QtGui.QOpenGLShaderProgram.setUniformValue1i": [('int', 'int'), ('str', 'int')],
- "PySide2.QtGui.QOpenGLShaderProgram.setUniformValueArray": [('int', 'shibokensupport.typing27.Sequence', 'int'), ('int', 'typing.Sequence[float]', 'int', 'int'), ('str', 'shibokensupport.typing27.Sequence', 'int'), ('str', 'typing.Sequence[float]', 'int', 'int')],
- "PySide2.QtGui.QOpenGLShaderProgram.shaders": (),
- "PySide2.QtGui.QOpenGLShaderProgram.uniformLocation": [('PySide2.QtCore.QByteArray',), ('str',)],
-# class PySide2.QtGui.QOpenGLTexture:
-# class PySide2.QtGui.QOpenGLTexture.BindingTarget:
-# class PySide2.QtGui.QOpenGLTexture.ComparisonFunction:
-# class PySide2.QtGui.QOpenGLTexture.ComparisonMode:
-# class PySide2.QtGui.QOpenGLTexture.CoordinateDirection:
-# class PySide2.QtGui.QOpenGLTexture.CubeMapFace:
-# class PySide2.QtGui.QOpenGLTexture.DepthStencilMode:
-# class PySide2.QtGui.QOpenGLTexture.Feature:
-# class PySide2.QtGui.QOpenGLTexture.Features:
-# class PySide2.QtGui.QOpenGLTexture.Filter:
-# class PySide2.QtGui.QOpenGLTexture.MipMapGeneration:
-# class PySide2.QtGui.QOpenGLTexture.PixelFormat:
-# class PySide2.QtGui.QOpenGLTexture.PixelType:
-# class PySide2.QtGui.QOpenGLTexture.SwizzleComponent:
-# class PySide2.QtGui.QOpenGLTexture.SwizzleValue:
-# class PySide2.QtGui.QOpenGLTexture.Target:
-# class PySide2.QtGui.QOpenGLTexture.TextureFormat:
-# class PySide2.QtGui.QOpenGLTexture.TextureFormatClass:
-# class PySide2.QtGui.QOpenGLTexture.TextureUnitReset:
-# class PySide2.QtGui.QOpenGLTexture.WrapMode:
- "PySide2.QtGui.QOpenGLTexture.__init__": [('PySide2.QtGui.QImage', 'PySide2.QtGui.QOpenGLTexture.MipMapGeneration'), ('PySide2.QtGui.QOpenGLTexture.Target',)],
- "PySide2.QtGui.QOpenGLTexture.allocateStorage": [(), ('PySide2.QtGui.QOpenGLTexture.PixelFormat', 'PySide2.QtGui.QOpenGLTexture.PixelType')],
- "PySide2.QtGui.QOpenGLTexture.bind": [(), ('int', 'PySide2.QtGui.QOpenGLTexture.TextureUnitReset')],
- "PySide2.QtGui.QOpenGLTexture.borderColor": (),
- "PySide2.QtGui.QOpenGLTexture.boundTextureId": [('PySide2.QtGui.QOpenGLTexture.BindingTarget',), ('int', 'PySide2.QtGui.QOpenGLTexture.BindingTarget')],
- "PySide2.QtGui.QOpenGLTexture.comparisonFunction": (),
- "PySide2.QtGui.QOpenGLTexture.comparisonMode": (),
- "PySide2.QtGui.QOpenGLTexture.create": (),
- "PySide2.QtGui.QOpenGLTexture.createTextureView": ('PySide2.QtGui.QOpenGLTexture.Target', 'PySide2.QtGui.QOpenGLTexture.TextureFormat', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLTexture.depth": (),
- "PySide2.QtGui.QOpenGLTexture.depthStencilMode": (),
- "PySide2.QtGui.QOpenGLTexture.destroy": (),
- "PySide2.QtGui.QOpenGLTexture.faces": (),
- "PySide2.QtGui.QOpenGLTexture.format": (),
- "PySide2.QtGui.QOpenGLTexture.generateMipMaps": [(), ('int', 'bool')],
- "PySide2.QtGui.QOpenGLTexture.hasFeature": ('PySide2.QtGui.QOpenGLTexture.Feature',),
- "PySide2.QtGui.QOpenGLTexture.height": (),
- "PySide2.QtGui.QOpenGLTexture.isAutoMipMapGenerationEnabled": (),
- "PySide2.QtGui.QOpenGLTexture.isBound": [(), ('int',)],
- "PySide2.QtGui.QOpenGLTexture.isCreated": (),
- "PySide2.QtGui.QOpenGLTexture.isFixedSamplePositions": (),
- "PySide2.QtGui.QOpenGLTexture.isStorageAllocated": (),
- "PySide2.QtGui.QOpenGLTexture.isTextureView": (),
- "PySide2.QtGui.QOpenGLTexture.layers": (),
- "PySide2.QtGui.QOpenGLTexture.levelOfDetailRange": (),
- "PySide2.QtGui.QOpenGLTexture.levelofDetailBias": (),
- "PySide2.QtGui.QOpenGLTexture.magnificationFilter": (),
- "PySide2.QtGui.QOpenGLTexture.maximumAnisotropy": (),
- "PySide2.QtGui.QOpenGLTexture.maximumLevelOfDetail": (),
- "PySide2.QtGui.QOpenGLTexture.maximumMipLevels": (),
- "PySide2.QtGui.QOpenGLTexture.minMagFilters": (),
- "PySide2.QtGui.QOpenGLTexture.minificationFilter": (),
- "PySide2.QtGui.QOpenGLTexture.minimumLevelOfDetail": (),
- "PySide2.QtGui.QOpenGLTexture.mipBaseLevel": (),
- "PySide2.QtGui.QOpenGLTexture.mipLevelRange": (),
- "PySide2.QtGui.QOpenGLTexture.mipLevels": (),
- "PySide2.QtGui.QOpenGLTexture.mipMaxLevel": (),
- "PySide2.QtGui.QOpenGLTexture.release": [(), ('int', 'PySide2.QtGui.QOpenGLTexture.TextureUnitReset')],
- "PySide2.QtGui.QOpenGLTexture.samples": (),
- "PySide2.QtGui.QOpenGLTexture.setAutoMipMapGenerationEnabled": ('bool',),
- "PySide2.QtGui.QOpenGLTexture.setBorderColor": [('PySide2.QtGui.QColor',), ('float', 'float', 'float', 'float'), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QOpenGLTexture.setComparisonFunction": ('PySide2.QtGui.QOpenGLTexture.ComparisonFunction',),
- "PySide2.QtGui.QOpenGLTexture.setComparisonMode": ('PySide2.QtGui.QOpenGLTexture.ComparisonMode',),
- "PySide2.QtGui.QOpenGLTexture.setCompressedData": [('int', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'PySide2.QtGui.QOpenGLTexture.CubeMapFace', 'int', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'int', 'PySide2.QtGui.QOpenGLTexture.CubeMapFace', 'int', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'int', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions')],
- "PySide2.QtGui.QOpenGLTexture.setData": [('PySide2.QtGui.QImage', 'PySide2.QtGui.QOpenGLTexture.MipMapGeneration'), ('PySide2.QtGui.QOpenGLTexture.PixelFormat', 'PySide2.QtGui.QOpenGLTexture.PixelType', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'PySide2.QtGui.QOpenGLTexture.PixelFormat', 'PySide2.QtGui.QOpenGLTexture.PixelType', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'PySide2.QtGui.QOpenGLTexture.CubeMapFace', 'PySide2.QtGui.QOpenGLTexture.PixelFormat', 'PySide2.QtGui.QOpenGLTexture.PixelType', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'PySide2.QtGui.QOpenGLTexture.PixelFormat', 'PySide2.QtGui.QOpenGLTexture.PixelType', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'int', 'PySide2.QtGui.QOpenGLTexture.CubeMapFace', 'PySide2.QtGui.QOpenGLTexture.PixelFormat', 'PySide2.QtGui.QOpenGLTexture.PixelType', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'int', 'int', 'int', 'int', 'PySide2.QtGui.QOpenGLTexture.PixelFormat', 'PySide2.QtGui.QOpenGLTexture.PixelType', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'PySide2.QtGui.QOpenGLTexture.CubeMapFace', 'PySide2.QtGui.QOpenGLTexture.PixelFormat', 'PySide2.QtGui.QOpenGLTexture.PixelType', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'PySide2.QtGui.QOpenGLTexture.CubeMapFace', 'int', 'PySide2.QtGui.QOpenGLTexture.PixelFormat', 'PySide2.QtGui.QOpenGLTexture.PixelType', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'PySide2.QtGui.QOpenGLTexture.PixelFormat', 'PySide2.QtGui.QOpenGLTexture.PixelType', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions')],
- "PySide2.QtGui.QOpenGLTexture.setDepthStencilMode": ('PySide2.QtGui.QOpenGLTexture.DepthStencilMode',),
- "PySide2.QtGui.QOpenGLTexture.setFixedSamplePositions": ('bool',),
- "PySide2.QtGui.QOpenGLTexture.setFormat": ('PySide2.QtGui.QOpenGLTexture.TextureFormat',),
- "PySide2.QtGui.QOpenGLTexture.setLayers": ('int',),
- "PySide2.QtGui.QOpenGLTexture.setLevelOfDetailRange": ('float', 'float'),
- "PySide2.QtGui.QOpenGLTexture.setLevelofDetailBias": ('float',),
- "PySide2.QtGui.QOpenGLTexture.setMagnificationFilter": ('PySide2.QtGui.QOpenGLTexture.Filter',),
- "PySide2.QtGui.QOpenGLTexture.setMaximumAnisotropy": ('float',),
- "PySide2.QtGui.QOpenGLTexture.setMaximumLevelOfDetail": ('float',),
- "PySide2.QtGui.QOpenGLTexture.setMinMagFilters": ('PySide2.QtGui.QOpenGLTexture.Filter', 'PySide2.QtGui.QOpenGLTexture.Filter'),
- "PySide2.QtGui.QOpenGLTexture.setMinificationFilter": ('PySide2.QtGui.QOpenGLTexture.Filter',),
- "PySide2.QtGui.QOpenGLTexture.setMinimumLevelOfDetail": ('float',),
- "PySide2.QtGui.QOpenGLTexture.setMipBaseLevel": ('int',),
- "PySide2.QtGui.QOpenGLTexture.setMipLevelRange": ('int', 'int'),
- "PySide2.QtGui.QOpenGLTexture.setMipLevels": ('int',),
- "PySide2.QtGui.QOpenGLTexture.setMipMaxLevel": ('int',),
- "PySide2.QtGui.QOpenGLTexture.setSamples": ('int',),
- "PySide2.QtGui.QOpenGLTexture.setSize": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLTexture.setSwizzleMask": [('PySide2.QtGui.QOpenGLTexture.SwizzleComponent', 'PySide2.QtGui.QOpenGLTexture.SwizzleValue'), ('PySide2.QtGui.QOpenGLTexture.SwizzleValue', 'PySide2.QtGui.QOpenGLTexture.SwizzleValue', 'PySide2.QtGui.QOpenGLTexture.SwizzleValue', 'PySide2.QtGui.QOpenGLTexture.SwizzleValue')],
- "PySide2.QtGui.QOpenGLTexture.setWrapMode": [('PySide2.QtGui.QOpenGLTexture.CoordinateDirection', 'PySide2.QtGui.QOpenGLTexture.WrapMode'), ('PySide2.QtGui.QOpenGLTexture.WrapMode',)],
- "PySide2.QtGui.QOpenGLTexture.swizzleMask": ('PySide2.QtGui.QOpenGLTexture.SwizzleComponent',),
- "PySide2.QtGui.QOpenGLTexture.target": (),
- "PySide2.QtGui.QOpenGLTexture.textureId": (),
- "PySide2.QtGui.QOpenGLTexture.width": (),
- "PySide2.QtGui.QOpenGLTexture.wrapMode": ('PySide2.QtGui.QOpenGLTexture.CoordinateDirection',),
-# class PySide2.QtGui.QOpenGLTextureBlitter:
-# class PySide2.QtGui.QOpenGLTextureBlitter.Origin:
- "PySide2.QtGui.QOpenGLTextureBlitter.__init__": (),
- "PySide2.QtGui.QOpenGLTextureBlitter.bind": ('int',),
- "PySide2.QtGui.QOpenGLTextureBlitter.blit": [('int', 'PySide2.QtGui.QMatrix4x4', 'PySide2.QtGui.QMatrix3x3'), ('int', 'PySide2.QtGui.QMatrix4x4', 'PySide2.QtGui.QOpenGLTextureBlitter.Origin')],
- "PySide2.QtGui.QOpenGLTextureBlitter.create": (),
- "PySide2.QtGui.QOpenGLTextureBlitter.destroy": (),
- "PySide2.QtGui.QOpenGLTextureBlitter.isCreated": (),
- "PySide2.QtGui.QOpenGLTextureBlitter.release": (),
- "PySide2.QtGui.QOpenGLTextureBlitter.setOpacity": ('float',),
- "PySide2.QtGui.QOpenGLTextureBlitter.setRedBlueSwizzle": ('bool',),
- "PySide2.QtGui.QOpenGLTextureBlitter.sourceTransform": ('PySide2.QtCore.QRectF', 'PySide2.QtCore.QSize', 'PySide2.QtGui.QOpenGLTextureBlitter.Origin'),
- "PySide2.QtGui.QOpenGLTextureBlitter.supportsExternalOESTarget": (),
- "PySide2.QtGui.QOpenGLTextureBlitter.targetTransform": ('PySide2.QtCore.QRectF', 'PySide2.QtCore.QRect'),
-# class PySide2.QtGui.QOpenGLTimeMonitor:
- "PySide2.QtGui.QOpenGLTimeMonitor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QOpenGLTimeMonitor.create": (),
- "PySide2.QtGui.QOpenGLTimeMonitor.destroy": (),
- "PySide2.QtGui.QOpenGLTimeMonitor.isCreated": (),
- "PySide2.QtGui.QOpenGLTimeMonitor.isResultAvailable": (),
- "PySide2.QtGui.QOpenGLTimeMonitor.objectIds": (),
- "PySide2.QtGui.QOpenGLTimeMonitor.recordSample": (),
- "PySide2.QtGui.QOpenGLTimeMonitor.reset": (),
- "PySide2.QtGui.QOpenGLTimeMonitor.sampleCount": (),
- "PySide2.QtGui.QOpenGLTimeMonitor.setSampleCount": ('int',),
- "PySide2.QtGui.QOpenGLTimeMonitor.waitForIntervals": (),
- "PySide2.QtGui.QOpenGLTimeMonitor.waitForSamples": (),
-# class PySide2.QtGui.QOpenGLTimerQuery:
- "PySide2.QtGui.QOpenGLTimerQuery.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QOpenGLTimerQuery.begin": (),
- "PySide2.QtGui.QOpenGLTimerQuery.create": (),
- "PySide2.QtGui.QOpenGLTimerQuery.destroy": (),
- "PySide2.QtGui.QOpenGLTimerQuery.end": (),
- "PySide2.QtGui.QOpenGLTimerQuery.isCreated": (),
- "PySide2.QtGui.QOpenGLTimerQuery.isResultAvailable": (),
- "PySide2.QtGui.QOpenGLTimerQuery.objectId": (),
- "PySide2.QtGui.QOpenGLTimerQuery.recordTimestamp": (),
- "PySide2.QtGui.QOpenGLTimerQuery.waitForResult": (),
- "PySide2.QtGui.QOpenGLTimerQuery.waitForTimestamp": (),
-# class PySide2.QtGui.QOpenGLVersionProfile:
- "PySide2.QtGui.QOpenGLVersionProfile.__init__": [(), ('PySide2.QtGui.QOpenGLVersionProfile',), ('PySide2.QtGui.QSurfaceFormat',)],
- "PySide2.QtGui.QOpenGLVersionProfile.__copy__": (),
- "PySide2.QtGui.QOpenGLVersionProfile.hasProfiles": (),
- "PySide2.QtGui.QOpenGLVersionProfile.isLegacyVersion": (),
- "PySide2.QtGui.QOpenGLVersionProfile.isValid": (),
- "PySide2.QtGui.QOpenGLVersionProfile.profile": (),
- "PySide2.QtGui.QOpenGLVersionProfile.setProfile": ('PySide2.QtGui.QSurfaceFormat.OpenGLContextProfile',),
- "PySide2.QtGui.QOpenGLVersionProfile.setVersion": ('int', 'int'),
- "PySide2.QtGui.QOpenGLVersionProfile.version": (),
-# class PySide2.QtGui.QOpenGLVertexArrayObject:
-# class PySide2.QtGui.QOpenGLVertexArrayObject.Binder:
- "PySide2.QtGui.QOpenGLVertexArrayObject.Binder.__init__": ('PySide2.QtGui.QOpenGLVertexArrayObject',),
- "PySide2.QtGui.QOpenGLVertexArrayObject.Binder.rebind": (),
- "PySide2.QtGui.QOpenGLVertexArrayObject.Binder.release": (),
- "PySide2.QtGui.QOpenGLVertexArrayObject.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QOpenGLVertexArrayObject.bind": (),
- "PySide2.QtGui.QOpenGLVertexArrayObject.create": (),
- "PySide2.QtGui.QOpenGLVertexArrayObject.destroy": (),
- "PySide2.QtGui.QOpenGLVertexArrayObject.isCreated": (),
- "PySide2.QtGui.QOpenGLVertexArrayObject.objectId": (),
- "PySide2.QtGui.QOpenGLVertexArrayObject.release": (),
-# class PySide2.QtGui.QOpenGLWindow:
-# class PySide2.QtGui.QOpenGLWindow.UpdateBehavior:
- "PySide2.QtGui.QOpenGLWindow.__init__": [('PySide2.QtGui.QOpenGLContext', 'PySide2.QtGui.QOpenGLWindow.UpdateBehavior', 'PySide2.QtGui.QWindow'), ('PySide2.QtGui.QOpenGLWindow.UpdateBehavior', 'PySide2.QtGui.QWindow')],
- "PySide2.QtGui.QOpenGLWindow.context": (),
- "PySide2.QtGui.QOpenGLWindow.defaultFramebufferObject": (),
- "PySide2.QtGui.QOpenGLWindow.doneCurrent": (),
- "PySide2.QtGui.QOpenGLWindow.grabFramebuffer": (),
- "PySide2.QtGui.QOpenGLWindow.initializeGL": (),
- "PySide2.QtGui.QOpenGLWindow.isValid": (),
- "PySide2.QtGui.QOpenGLWindow.makeCurrent": (),
- "PySide2.QtGui.QOpenGLWindow.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtGui.QOpenGLWindow.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtGui.QOpenGLWindow.paintGL": (),
- "PySide2.QtGui.QOpenGLWindow.paintOverGL": (),
- "PySide2.QtGui.QOpenGLWindow.paintUnderGL": (),
- "PySide2.QtGui.QOpenGLWindow.redirected": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QOpenGLWindow.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtGui.QOpenGLWindow.resizeGL": ('int', 'int'),
- "PySide2.QtGui.QOpenGLWindow.shareContext": (),
- "PySide2.QtGui.QOpenGLWindow.updateBehavior": (),
-# class PySide2.QtGui.QPageLayout:
-# class PySide2.QtGui.QPageLayout.Mode:
-# class PySide2.QtGui.QPageLayout.Orientation:
-# class PySide2.QtGui.QPageLayout.Unit:
- "PySide2.QtGui.QPageLayout.__init__": [(), ('PySide2.QtGui.QPageLayout',), ('PySide2.QtGui.QPageSize', 'PySide2.QtGui.QPageLayout.Orientation', 'PySide2.QtCore.QMarginsF', 'PySide2.QtGui.QPageLayout.Unit', 'PySide2.QtCore.QMarginsF')],
- "PySide2.QtGui.QPageLayout.__copy__": (),
- "PySide2.QtGui.QPageLayout.fullRect": [(), ('PySide2.QtGui.QPageLayout.Unit',)],
- "PySide2.QtGui.QPageLayout.fullRectPixels": ('int',),
- "PySide2.QtGui.QPageLayout.fullRectPoints": (),
- "PySide2.QtGui.QPageLayout.isEquivalentTo": ('PySide2.QtGui.QPageLayout',),
- "PySide2.QtGui.QPageLayout.isValid": (),
- "PySide2.QtGui.QPageLayout.margins": [(), ('PySide2.QtGui.QPageLayout.Unit',)],
- "PySide2.QtGui.QPageLayout.marginsPixels": ('int',),
- "PySide2.QtGui.QPageLayout.marginsPoints": (),
- "PySide2.QtGui.QPageLayout.maximumMargins": (),
- "PySide2.QtGui.QPageLayout.minimumMargins": (),
- "PySide2.QtGui.QPageLayout.mode": (),
- "PySide2.QtGui.QPageLayout.orientation": (),
- "PySide2.QtGui.QPageLayout.pageSize": (),
- "PySide2.QtGui.QPageLayout.paintRect": [(), ('PySide2.QtGui.QPageLayout.Unit',)],
- "PySide2.QtGui.QPageLayout.paintRectPixels": ('int',),
- "PySide2.QtGui.QPageLayout.paintRectPoints": (),
- "PySide2.QtGui.QPageLayout.setBottomMargin": ('float',),
- "PySide2.QtGui.QPageLayout.setLeftMargin": ('float',),
- "PySide2.QtGui.QPageLayout.setMargins": ('PySide2.QtCore.QMarginsF',),
- "PySide2.QtGui.QPageLayout.setMinimumMargins": ('PySide2.QtCore.QMarginsF',),
- "PySide2.QtGui.QPageLayout.setMode": ('PySide2.QtGui.QPageLayout.Mode',),
- "PySide2.QtGui.QPageLayout.setOrientation": ('PySide2.QtGui.QPageLayout.Orientation',),
- "PySide2.QtGui.QPageLayout.setPageSize": ('PySide2.QtGui.QPageSize', 'PySide2.QtCore.QMarginsF'),
- "PySide2.QtGui.QPageLayout.setRightMargin": ('float',),
- "PySide2.QtGui.QPageLayout.setTopMargin": ('float',),
- "PySide2.QtGui.QPageLayout.setUnits": ('PySide2.QtGui.QPageLayout.Unit',),
- "PySide2.QtGui.QPageLayout.swap": ('PySide2.QtGui.QPageLayout',),
- "PySide2.QtGui.QPageLayout.units": (),
-# class PySide2.QtGui.QPageSize:
-# class PySide2.QtGui.QPageSize.PageSizeId:
-# class PySide2.QtGui.QPageSize.SizeMatchPolicy:
-# class PySide2.QtGui.QPageSize.Unit:
- "PySide2.QtGui.QPageSize.__init__": [(), ('PySide2.QtCore.QSize', 'str', 'PySide2.QtGui.QPageSize.SizeMatchPolicy'), ('PySide2.QtCore.QSizeF', 'PySide2.QtGui.QPageSize.Unit', 'str', 'PySide2.QtGui.QPageSize.SizeMatchPolicy'), ('PySide2.QtGui.QPageSize',), ('PySide2.QtGui.QPageSize.PageSizeId',)],
- "PySide2.QtGui.QPageSize.__copy__": (),
- "PySide2.QtGui.QPageSize.definitionSize": [(), ('PySide2.QtGui.QPageSize.PageSizeId',)],
- "PySide2.QtGui.QPageSize.definitionUnits": [(), ('PySide2.QtGui.QPageSize.PageSizeId',)],
- "PySide2.QtGui.QPageSize.id": [(), ('PySide2.QtCore.QSize', 'PySide2.QtGui.QPageSize.SizeMatchPolicy'), ('PySide2.QtCore.QSizeF', 'PySide2.QtGui.QPageSize.Unit', 'PySide2.QtGui.QPageSize.SizeMatchPolicy'), ('int',)],
- "PySide2.QtGui.QPageSize.isEquivalentTo": ('PySide2.QtGui.QPageSize',),
- "PySide2.QtGui.QPageSize.isValid": (),
- "PySide2.QtGui.QPageSize.key": [(), ('PySide2.QtGui.QPageSize.PageSizeId',)],
- "PySide2.QtGui.QPageSize.name": [(), ('PySide2.QtGui.QPageSize.PageSizeId',)],
- "PySide2.QtGui.QPageSize.rect": ('PySide2.QtGui.QPageSize.Unit',),
- "PySide2.QtGui.QPageSize.rectPixels": ('int',),
- "PySide2.QtGui.QPageSize.rectPoints": (),
- "PySide2.QtGui.QPageSize.size": [('PySide2.QtGui.QPageSize.PageSizeId', 'PySide2.QtGui.QPageSize.Unit'), ('PySide2.QtGui.QPageSize.Unit',)],
- "PySide2.QtGui.QPageSize.sizePixels": [('PySide2.QtGui.QPageSize.PageSizeId', 'int'), ('int',)],
- "PySide2.QtGui.QPageSize.sizePoints": [(), ('PySide2.QtGui.QPageSize.PageSizeId',)],
- "PySide2.QtGui.QPageSize.swap": ('PySide2.QtGui.QPageSize',),
- "PySide2.QtGui.QPageSize.windowsId": [(), ('PySide2.QtGui.QPageSize.PageSizeId',)],
-# class PySide2.QtGui.QPagedPaintDevice:
-# class PySide2.QtGui.QPagedPaintDevice.Margins:
- "PySide2.QtGui.QPagedPaintDevice.Margins.__init__": [(), ('PySide2.QtGui.QPagedPaintDevice.Margins',)],
- "PySide2.QtGui.QPagedPaintDevice.Margins.__copy__": (),
-# class PySide2.QtGui.QPagedPaintDevice.PageSize:
-# class PySide2.QtGui.QPagedPaintDevice.PdfVersion:
- "PySide2.QtGui.QPagedPaintDevice.__init__": (),
- "PySide2.QtGui.QPagedPaintDevice.devicePageLayout": (),
- "PySide2.QtGui.QPagedPaintDevice.margins": (),
- "PySide2.QtGui.QPagedPaintDevice.newPage": (),
- "PySide2.QtGui.QPagedPaintDevice.pageLayout": (),
- "PySide2.QtGui.QPagedPaintDevice.pageSize": (),
- "PySide2.QtGui.QPagedPaintDevice.pageSizeMM": (),
- "PySide2.QtGui.QPagedPaintDevice.setMargins": ('PySide2.QtGui.QPagedPaintDevice.Margins',),
- "PySide2.QtGui.QPagedPaintDevice.setPageLayout": ('PySide2.QtGui.QPageLayout',),
- "PySide2.QtGui.QPagedPaintDevice.setPageMargins": [('PySide2.QtCore.QMarginsF',), ('PySide2.QtCore.QMarginsF', 'PySide2.QtGui.QPageLayout.Unit')],
- "PySide2.QtGui.QPagedPaintDevice.setPageOrientation": ('PySide2.QtGui.QPageLayout.Orientation',),
- "PySide2.QtGui.QPagedPaintDevice.setPageSize": [('PySide2.QtGui.QPageSize',), ('PySide2.QtGui.QPagedPaintDevice.PageSize',)],
- "PySide2.QtGui.QPagedPaintDevice.setPageSizeMM": ('PySide2.QtCore.QSizeF',),
-# class PySide2.QtGui.QPaintDevice:
-# class PySide2.QtGui.QPaintDevice.PaintDeviceMetric:
- "PySide2.QtGui.QPaintDevice.__init__": (),
- "PySide2.QtGui.QPaintDevice.colorCount": (),
- "PySide2.QtGui.QPaintDevice.depth": (),
- "PySide2.QtGui.QPaintDevice.devType": (),
- "PySide2.QtGui.QPaintDevice.devicePixelRatio": (),
- "PySide2.QtGui.QPaintDevice.devicePixelRatioF": (),
- "PySide2.QtGui.QPaintDevice.devicePixelRatioFScale": (),
- "PySide2.QtGui.QPaintDevice.height": (),
- "PySide2.QtGui.QPaintDevice.heightMM": (),
- "PySide2.QtGui.QPaintDevice.initPainter": ('PySide2.QtGui.QPainter',),
- "PySide2.QtGui.QPaintDevice.logicalDpiX": (),
- "PySide2.QtGui.QPaintDevice.logicalDpiY": (),
- "PySide2.QtGui.QPaintDevice.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtGui.QPaintDevice.paintEngine": (),
- "PySide2.QtGui.QPaintDevice.paintingActive": (),
- "PySide2.QtGui.QPaintDevice.physicalDpiX": (),
- "PySide2.QtGui.QPaintDevice.physicalDpiY": (),
- "PySide2.QtGui.QPaintDevice.redirected": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QPaintDevice.sharedPainter": (),
- "PySide2.QtGui.QPaintDevice.width": (),
- "PySide2.QtGui.QPaintDevice.widthMM": (),
-# class PySide2.QtGui.QPaintDeviceWindow:
- "PySide2.QtGui.QPaintDeviceWindow.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtGui.QPaintDeviceWindow.exposeEvent": ('PySide2.QtGui.QExposeEvent',),
- "PySide2.QtGui.QPaintDeviceWindow.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtGui.QPaintDeviceWindow.paintEngine": (),
- "PySide2.QtGui.QPaintDeviceWindow.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtGui.QPaintDeviceWindow.update": [(), ('PySide2.QtCore.QRect',), ('PySide2.QtGui.QRegion',)],
-# class PySide2.QtGui.QPaintEngine:
-# class PySide2.QtGui.QPaintEngine.DirtyFlag:
-# class PySide2.QtGui.QPaintEngine.DirtyFlags:
-# class PySide2.QtGui.QPaintEngine.PaintEngineFeature:
-# class PySide2.QtGui.QPaintEngine.PaintEngineFeatures:
-# class PySide2.QtGui.QPaintEngine.PolygonDrawMode:
-# class PySide2.QtGui.QPaintEngine.Type:
- "PySide2.QtGui.QPaintEngine.__init__": ('PySide2.QtGui.QPaintEngine.PaintEngineFeatures',),
- "PySide2.QtGui.QPaintEngine.begin": ('PySide2.QtGui.QPaintDevice',),
- "PySide2.QtGui.QPaintEngine.clearDirty": ('PySide2.QtGui.QPaintEngine.DirtyFlags',),
- "PySide2.QtGui.QPaintEngine.coordinateOffset": (),
- "PySide2.QtGui.QPaintEngine.drawEllipse": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',)],
- "PySide2.QtGui.QPaintEngine.drawImage": ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QImage', 'PySide2.QtCore.QRectF', 'PySide2.QtCore.Qt.ImageConversionFlags'),
- "PySide2.QtGui.QPaintEngine.drawLines": [('PySide2.QtCore.QLine', 'int'), ('PySide2.QtCore.QLineF', 'int')],
- "PySide2.QtGui.QPaintEngine.drawPath": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPaintEngine.drawPixmap": ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QPixmap', 'PySide2.QtCore.QRectF'),
- "PySide2.QtGui.QPaintEngine.drawPoints": [('PySide2.QtCore.QPoint', 'int'), ('PySide2.QtCore.QPointF', 'int')],
- "PySide2.QtGui.QPaintEngine.drawPolygon": [('PySide2.QtCore.QPoint', 'int', 'PySide2.QtGui.QPaintEngine.PolygonDrawMode'), ('PySide2.QtCore.QPointF', 'int', 'PySide2.QtGui.QPaintEngine.PolygonDrawMode')],
- "PySide2.QtGui.QPaintEngine.drawRects": [('PySide2.QtCore.QRect', 'int'), ('PySide2.QtCore.QRectF', 'int')],
- "PySide2.QtGui.QPaintEngine.drawTextItem": ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QTextItem'),
- "PySide2.QtGui.QPaintEngine.drawTiledPixmap": ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QPixmap', 'PySide2.QtCore.QPointF'),
- "PySide2.QtGui.QPaintEngine.end": (),
- "PySide2.QtGui.QPaintEngine.hasFeature": ('PySide2.QtGui.QPaintEngine.PaintEngineFeatures',),
- "PySide2.QtGui.QPaintEngine.isActive": (),
- "PySide2.QtGui.QPaintEngine.isExtended": (),
- "PySide2.QtGui.QPaintEngine.paintDevice": (),
- "PySide2.QtGui.QPaintEngine.painter": (),
- "PySide2.QtGui.QPaintEngine.setActive": ('bool',),
- "PySide2.QtGui.QPaintEngine.setDirty": ('PySide2.QtGui.QPaintEngine.DirtyFlags',),
- "PySide2.QtGui.QPaintEngine.setSystemClip": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QPaintEngine.setSystemRect": ('PySide2.QtCore.QRect',),
- "PySide2.QtGui.QPaintEngine.syncState": (),
- "PySide2.QtGui.QPaintEngine.systemClip": (),
- "PySide2.QtGui.QPaintEngine.systemRect": (),
- "PySide2.QtGui.QPaintEngine.testDirty": ('PySide2.QtGui.QPaintEngine.DirtyFlags',),
- "PySide2.QtGui.QPaintEngine.type": (),
- "PySide2.QtGui.QPaintEngine.updateState": ('PySide2.QtGui.QPaintEngineState',),
-# class PySide2.QtGui.QPaintEngineState:
- "PySide2.QtGui.QPaintEngineState.__init__": (),
- "PySide2.QtGui.QPaintEngineState.backgroundBrush": (),
- "PySide2.QtGui.QPaintEngineState.backgroundMode": (),
- "PySide2.QtGui.QPaintEngineState.brush": (),
- "PySide2.QtGui.QPaintEngineState.brushNeedsResolving": (),
- "PySide2.QtGui.QPaintEngineState.brushOrigin": (),
- "PySide2.QtGui.QPaintEngineState.clipOperation": (),
- "PySide2.QtGui.QPaintEngineState.clipPath": (),
- "PySide2.QtGui.QPaintEngineState.clipRegion": (),
- "PySide2.QtGui.QPaintEngineState.compositionMode": (),
- "PySide2.QtGui.QPaintEngineState.font": (),
- "PySide2.QtGui.QPaintEngineState.isClipEnabled": (),
- "PySide2.QtGui.QPaintEngineState.matrix": (),
- "PySide2.QtGui.QPaintEngineState.opacity": (),
- "PySide2.QtGui.QPaintEngineState.painter": (),
- "PySide2.QtGui.QPaintEngineState.pen": (),
- "PySide2.QtGui.QPaintEngineState.penNeedsResolving": (),
- "PySide2.QtGui.QPaintEngineState.renderHints": (),
- "PySide2.QtGui.QPaintEngineState.state": (),
- "PySide2.QtGui.QPaintEngineState.transform": (),
-# class PySide2.QtGui.QPaintEvent:
- "PySide2.QtGui.QPaintEvent.__init__": [('PySide2.QtCore.QRect',), ('PySide2.QtGui.QRegion',)],
- "PySide2.QtGui.QPaintEvent.rect": (),
- "PySide2.QtGui.QPaintEvent.region": (),
-# class PySide2.QtGui.QPainter:
-# class PySide2.QtGui.QPainter.CompositionMode:
-# class PySide2.QtGui.QPainter.PixmapFragment:
- "PySide2.QtGui.QPainter.PixmapFragment.__init__": [(), ('PySide2.QtGui.QPainter.PixmapFragment',)],
- "PySide2.QtGui.QPainter.PixmapFragment.__copy__": (),
- "PySide2.QtGui.QPainter.PixmapFragment.create": ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QRectF', 'float', 'float', 'float', 'float'),
-# class PySide2.QtGui.QPainter.PixmapFragmentHint:
-# class PySide2.QtGui.QPainter.PixmapFragmentHints:
-# class PySide2.QtGui.QPainter.RenderHint:
-# class PySide2.QtGui.QPainter.RenderHints:
- "PySide2.QtGui.QPainter.__init__": [(), ('PySide2.QtGui.QPaintDevice',)],
- "PySide2.QtGui.QPainter.background": (),
- "PySide2.QtGui.QPainter.backgroundMode": (),
- "PySide2.QtGui.QPainter.begin": ('PySide2.QtGui.QPaintDevice',),
- "PySide2.QtGui.QPainter.beginNativePainting": (),
- "PySide2.QtGui.QPainter.boundingRect": [('PySide2.QtCore.QRect', 'int', 'str'), ('PySide2.QtCore.QRectF', 'int', 'str'), ('PySide2.QtCore.QRectF', 'str', 'PySide2.QtGui.QTextOption'), ('int', 'int', 'int', 'int', 'int', 'str')],
- "PySide2.QtGui.QPainter.brush": (),
- "PySide2.QtGui.QPainter.brushOrigin": (),
- "PySide2.QtGui.QPainter.clipBoundingRect": (),
- "PySide2.QtGui.QPainter.clipPath": (),
- "PySide2.QtGui.QPainter.clipRegion": (),
- "PySide2.QtGui.QPainter.combinedMatrix": (),
- "PySide2.QtGui.QPainter.combinedTransform": (),
- "PySide2.QtGui.QPainter.compositionMode": (),
- "PySide2.QtGui.QPainter.device": (),
- "PySide2.QtGui.QPainter.deviceMatrix": (),
- "PySide2.QtGui.QPainter.deviceTransform": (),
- "PySide2.QtGui.QPainter.drawArc": [('PySide2.QtCore.QRect', 'int', 'int'), ('PySide2.QtCore.QRectF', 'int', 'int'), ('int', 'int', 'int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.drawChord": [('PySide2.QtCore.QRect', 'int', 'int'), ('PySide2.QtCore.QRectF', 'int', 'int'), ('int', 'int', 'int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.drawConvexPolygon": [('PySide2.QtGui.QPolygon',), ('PySide2.QtGui.QPolygonF',), ('typing.List[PySide2.QtCore.QPointF]',), ('typing.List[PySide2.QtCore.QPoint]',)],
- "PySide2.QtGui.QPainter.drawEllipse": [('PySide2.QtCore.QPoint', 'int', 'int'), ('PySide2.QtCore.QPointF', 'float', 'float'), ('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.drawImage": [('PySide2.QtCore.QPoint', 'PySide2.QtGui.QImage'), ('PySide2.QtCore.QPoint', 'PySide2.QtGui.QImage', 'PySide2.QtCore.QRect', 'PySide2.QtCore.Qt.ImageConversionFlags'), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QImage'), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QImage', 'PySide2.QtCore.QRectF', 'PySide2.QtCore.Qt.ImageConversionFlags'), ('PySide2.QtCore.QRect', 'PySide2.QtGui.QImage'), ('PySide2.QtCore.QRect', 'PySide2.QtGui.QImage', 'PySide2.QtCore.QRect', 'PySide2.QtCore.Qt.ImageConversionFlags'), ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QImage'), ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QImage', 'PySide2.QtCore.QRectF', 'PySide2.QtCore.Qt.ImageConversionFlags'), ('int', 'int', 'PySide2.QtGui.QImage', 'int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.ImageConversionFlags')],
- "PySide2.QtGui.QPainter.drawLine": [('PySide2.QtCore.QLine',), ('PySide2.QtCore.QLineF',), ('PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint'), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.drawLines": [('typing.List[PySide2.QtCore.QLineF]',), ('typing.List[PySide2.QtCore.QLine]',), ('typing.List[PySide2.QtCore.QPointF]',), ('typing.List[PySide2.QtCore.QPoint]',)],
- "PySide2.QtGui.QPainter.drawPath": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainter.drawPicture": [('PySide2.QtCore.QPoint', 'PySide2.QtGui.QPicture'), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QPicture'), ('int', 'int', 'PySide2.QtGui.QPicture')],
- "PySide2.QtGui.QPainter.drawPie": [('PySide2.QtCore.QRect', 'int', 'int'), ('PySide2.QtCore.QRectF', 'int', 'int'), ('int', 'int', 'int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.drawPixmap": [('PySide2.QtCore.QPoint', 'PySide2.QtGui.QPixmap'), ('PySide2.QtCore.QPoint', 'PySide2.QtGui.QPixmap', 'PySide2.QtCore.QRect'), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QPixmap'), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QPixmap', 'PySide2.QtCore.QRectF'), ('PySide2.QtCore.QRect', 'PySide2.QtGui.QPixmap'), ('PySide2.QtCore.QRect', 'PySide2.QtGui.QPixmap', 'PySide2.QtCore.QRect'), ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QPixmap', 'PySide2.QtCore.QRectF'), ('int', 'int', 'PySide2.QtGui.QPixmap'), ('int', 'int', 'PySide2.QtGui.QPixmap', 'int', 'int', 'int', 'int'), ('int', 'int', 'int', 'int', 'PySide2.QtGui.QPixmap'), ('int', 'int', 'int', 'int', 'PySide2.QtGui.QPixmap', 'int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.drawPixmapFragments": ('PySide2.QtGui.QPainter.PixmapFragment', 'int', 'PySide2.QtGui.QPixmap', 'PySide2.QtGui.QPainter.PixmapFragmentHints'),
- "PySide2.QtGui.QPainter.drawPoint": [('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('int', 'int')],
- "PySide2.QtGui.QPainter.drawPoints": [('PySide2.QtGui.QPolygon',), ('PySide2.QtGui.QPolygonF',), ('typing.List[PySide2.QtCore.QPointF]',), ('typing.List[PySide2.QtCore.QPoint]',)],
- "PySide2.QtGui.QPainter.drawPolygon": [('PySide2.QtGui.QPolygon', 'PySide2.QtCore.Qt.FillRule'), ('PySide2.QtGui.QPolygonF', 'PySide2.QtCore.Qt.FillRule'), ('typing.List[PySide2.QtCore.QPointF]', 'PySide2.QtCore.Qt.FillRule'), ('typing.List[PySide2.QtCore.QPoint]', 'PySide2.QtCore.Qt.FillRule')],
- "PySide2.QtGui.QPainter.drawPolyline": [('PySide2.QtGui.QPolygon',), ('PySide2.QtGui.QPolygonF',), ('typing.List[PySide2.QtCore.QPointF]',), ('typing.List[PySide2.QtCore.QPoint]',)],
- "PySide2.QtGui.QPainter.drawRect": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.drawRects": [('typing.List[PySide2.QtCore.QRectF]',), ('typing.List[PySide2.QtCore.QRect]',)],
- "PySide2.QtGui.QPainter.drawRoundRect": [('PySide2.QtCore.QRect', 'int', 'int'), ('PySide2.QtCore.QRectF', 'int', 'int'), ('int', 'int', 'int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.drawRoundedRect": [('PySide2.QtCore.QRect', 'float', 'float', 'PySide2.QtCore.Qt.SizeMode'), ('PySide2.QtCore.QRectF', 'float', 'float', 'PySide2.QtCore.Qt.SizeMode'), ('int', 'int', 'int', 'int', 'float', 'float', 'PySide2.QtCore.Qt.SizeMode')],
- "PySide2.QtGui.QPainter.drawStaticText": [('PySide2.QtCore.QPoint', 'PySide2.QtGui.QStaticText'), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QStaticText'), ('int', 'int', 'PySide2.QtGui.QStaticText')],
- "PySide2.QtGui.QPainter.drawText": [('PySide2.QtCore.QPoint', 'str'), ('PySide2.QtCore.QPointF', 'str'), ('PySide2.QtCore.QRect', 'int', 'str', 'PySide2.QtCore.QRect'), ('PySide2.QtCore.QRectF', 'int', 'str', 'PySide2.QtCore.QRectF'), ('PySide2.QtCore.QRectF', 'str', 'PySide2.QtGui.QTextOption'), ('int', 'int', 'int', 'int', 'int', 'str', 'PySide2.QtCore.QRect'), ('int', 'int', 'str')],
- "PySide2.QtGui.QPainter.drawTextItem": [('PySide2.QtCore.QPoint', 'PySide2.QtGui.QTextItem'), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QTextItem'), ('int', 'int', 'PySide2.QtGui.QTextItem')],
- "PySide2.QtGui.QPainter.drawTiledPixmap": [('PySide2.QtCore.QRect', 'PySide2.QtGui.QPixmap', 'PySide2.QtCore.QPoint'), ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QPixmap', 'PySide2.QtCore.QPointF'), ('int', 'int', 'int', 'int', 'PySide2.QtGui.QPixmap', 'int', 'int')],
- "PySide2.QtGui.QPainter.end": (),
- "PySide2.QtGui.QPainter.endNativePainting": (),
- "PySide2.QtGui.QPainter.eraseRect": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.fillPath": ('PySide2.QtGui.QPainterPath', 'PySide2.QtGui.QBrush'),
- "PySide2.QtGui.QPainter.fillRect": [('PySide2.QtCore.QRect', 'PySide2.QtCore.Qt.BrushStyle'), ('PySide2.QtCore.QRect', 'PySide2.QtCore.Qt.GlobalColor'), ('PySide2.QtCore.QRect', 'PySide2.QtGui.QBrush'), ('PySide2.QtCore.QRect', 'PySide2.QtGui.QColor'), ('PySide2.QtCore.QRect', 'PySide2.QtGui.QGradient.Preset'), ('PySide2.QtCore.QRectF', 'PySide2.QtCore.Qt.BrushStyle'), ('PySide2.QtCore.QRectF', 'PySide2.QtCore.Qt.GlobalColor'), ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QBrush'), ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QColor'), ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QGradient.Preset'), ('int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.BrushStyle'), ('int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.GlobalColor'), ('int', 'int', 'int', 'int', 'PySide2.QtGui.QBrush'), ('int', 'int', 'int', 'int', 'PySide2.QtGui.QColor'), ('int', 'int', 'int', 'int', 'PySide2.QtGui.QGradient.Preset')],
- "PySide2.QtGui.QPainter.font": (),
- "PySide2.QtGui.QPainter.fontInfo": (),
- "PySide2.QtGui.QPainter.fontMetrics": (),
- "PySide2.QtGui.QPainter.hasClipping": (),
- "PySide2.QtGui.QPainter.initFrom": ('PySide2.QtGui.QPaintDevice',),
- "PySide2.QtGui.QPainter.isActive": (),
- "PySide2.QtGui.QPainter.layoutDirection": (),
- "PySide2.QtGui.QPainter.matrix": (),
- "PySide2.QtGui.QPainter.matrixEnabled": (),
- "PySide2.QtGui.QPainter.opacity": (),
- "PySide2.QtGui.QPainter.paintEngine": (),
- "PySide2.QtGui.QPainter.pen": (),
- "PySide2.QtGui.QPainter.redirected": ('PySide2.QtGui.QPaintDevice', 'PySide2.QtCore.QPoint'),
- "PySide2.QtGui.QPainter.renderHints": (),
- "PySide2.QtGui.QPainter.resetMatrix": (),
- "PySide2.QtGui.QPainter.resetTransform": (),
- "PySide2.QtGui.QPainter.restore": (),
- "PySide2.QtGui.QPainter.restoreRedirected": ('PySide2.QtGui.QPaintDevice',),
- "PySide2.QtGui.QPainter.rotate": ('float',),
- "PySide2.QtGui.QPainter.save": (),
- "PySide2.QtGui.QPainter.scale": ('float', 'float'),
- "PySide2.QtGui.QPainter.setBackground": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QPainter.setBackgroundMode": ('PySide2.QtCore.Qt.BGMode',),
- "PySide2.QtGui.QPainter.setBrush": [('PySide2.QtCore.Qt.BrushStyle',), ('PySide2.QtGui.QBrush',)],
- "PySide2.QtGui.QPainter.setBrushOrigin": [('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('int', 'int')],
- "PySide2.QtGui.QPainter.setClipPath": ('PySide2.QtGui.QPainterPath', 'PySide2.QtCore.Qt.ClipOperation'),
- "PySide2.QtGui.QPainter.setClipRect": [('PySide2.QtCore.QRect', 'PySide2.QtCore.Qt.ClipOperation'), ('PySide2.QtCore.QRectF', 'PySide2.QtCore.Qt.ClipOperation'), ('int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.ClipOperation')],
- "PySide2.QtGui.QPainter.setClipRegion": ('PySide2.QtGui.QRegion', 'PySide2.QtCore.Qt.ClipOperation'),
- "PySide2.QtGui.QPainter.setClipping": ('bool',),
- "PySide2.QtGui.QPainter.setCompositionMode": ('PySide2.QtGui.QPainter.CompositionMode',),
- "PySide2.QtGui.QPainter.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtGui.QPainter.setLayoutDirection": ('PySide2.QtCore.Qt.LayoutDirection',),
- "PySide2.QtGui.QPainter.setMatrix": ('PySide2.QtGui.QMatrix', 'bool'),
- "PySide2.QtGui.QPainter.setMatrixEnabled": ('bool',),
- "PySide2.QtGui.QPainter.setOpacity": ('float',),
- "PySide2.QtGui.QPainter.setPen": [('PySide2.QtCore.Qt.PenStyle',), ('PySide2.QtGui.QColor',), ('PySide2.QtGui.QPen',)],
- "PySide2.QtGui.QPainter.setRedirected": ('PySide2.QtGui.QPaintDevice', 'PySide2.QtGui.QPaintDevice', 'PySide2.QtCore.QPoint'),
- "PySide2.QtGui.QPainter.setRenderHint": ('PySide2.QtGui.QPainter.RenderHint', 'bool'),
- "PySide2.QtGui.QPainter.setRenderHints": ('PySide2.QtGui.QPainter.RenderHints', 'bool'),
- "PySide2.QtGui.QPainter.setTransform": ('PySide2.QtGui.QTransform', 'bool'),
- "PySide2.QtGui.QPainter.setViewTransformEnabled": ('bool',),
- "PySide2.QtGui.QPainter.setViewport": [('PySide2.QtCore.QRect',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.setWindow": [('PySide2.QtCore.QRect',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.setWorldMatrix": ('PySide2.QtGui.QMatrix', 'bool'),
- "PySide2.QtGui.QPainter.setWorldMatrixEnabled": ('bool',),
- "PySide2.QtGui.QPainter.setWorldTransform": ('PySide2.QtGui.QTransform', 'bool'),
- "PySide2.QtGui.QPainter.shear": ('float', 'float'),
- "PySide2.QtGui.QPainter.strokePath": ('PySide2.QtGui.QPainterPath', 'PySide2.QtGui.QPen'),
- "PySide2.QtGui.QPainter.testRenderHint": ('PySide2.QtGui.QPainter.RenderHint',),
- "PySide2.QtGui.QPainter.transform": (),
- "PySide2.QtGui.QPainter.translate": [('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QPainter.viewTransformEnabled": (),
- "PySide2.QtGui.QPainter.viewport": (),
- "PySide2.QtGui.QPainter.window": (),
- "PySide2.QtGui.QPainter.worldMatrix": (),
- "PySide2.QtGui.QPainter.worldMatrixEnabled": (),
- "PySide2.QtGui.QPainter.worldTransform": (),
-# class PySide2.QtGui.QPainterPath:
-# class PySide2.QtGui.QPainterPath.Element:
- "PySide2.QtGui.QPainterPath.Element.__init__": [(), ('PySide2.QtGui.QPainterPath.Element',)],
- "PySide2.QtGui.QPainterPath.Element.__copy__": (),
- "PySide2.QtGui.QPainterPath.Element.isCurveTo": (),
- "PySide2.QtGui.QPainterPath.Element.isLineTo": (),
- "PySide2.QtGui.QPainterPath.Element.isMoveTo": (),
-# class PySide2.QtGui.QPainterPath.ElementType:
- "PySide2.QtGui.QPainterPath.__init__": [(), ('PySide2.QtCore.QPointF',), ('PySide2.QtGui.QPainterPath',)],
- "PySide2.QtGui.QPainterPath.__add__": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.__and__": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.__copy__": (),
- "PySide2.QtGui.QPainterPath.__iadd__": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.__iand__": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.__ior__": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.__isub__": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPainterPath.__mul__": [('PySide2.QtGui.QMatrix',), ('PySide2.QtGui.QTransform',)],
- "PySide2.QtGui.QPainterPath.__or__": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPainterPath.__sub__": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.addEllipse": [('PySide2.QtCore.QPointF', 'float', 'float'), ('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtGui.QPainterPath.addPath": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.addPolygon": ('PySide2.QtGui.QPolygonF',),
- "PySide2.QtGui.QPainterPath.addRect": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtGui.QPainterPath.addRegion": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QPainterPath.addRoundRect": [('PySide2.QtCore.QRectF', 'int'), ('PySide2.QtCore.QRectF', 'int', 'int'), ('float', 'float', 'float', 'float', 'int'), ('float', 'float', 'float', 'float', 'int', 'int')],
- "PySide2.QtGui.QPainterPath.addRoundedRect": [('PySide2.QtCore.QRectF', 'float', 'float', 'PySide2.QtCore.Qt.SizeMode'), ('float', 'float', 'float', 'float', 'float', 'float', 'PySide2.QtCore.Qt.SizeMode')],
- "PySide2.QtGui.QPainterPath.addText": [('PySide2.QtCore.QPointF', 'PySide2.QtGui.QFont', 'str'), ('float', 'float', 'PySide2.QtGui.QFont', 'str')],
- "PySide2.QtGui.QPainterPath.angleAtPercent": ('float',),
- "PySide2.QtGui.QPainterPath.arcMoveTo": [('PySide2.QtCore.QRectF', 'float'), ('float', 'float', 'float', 'float', 'float')],
- "PySide2.QtGui.QPainterPath.arcTo": [('PySide2.QtCore.QRectF', 'float', 'float'), ('float', 'float', 'float', 'float', 'float', 'float')],
- "PySide2.QtGui.QPainterPath.boundingRect": (),
- "PySide2.QtGui.QPainterPath.capacity": (),
- "PySide2.QtGui.QPainterPath.clear": (),
- "PySide2.QtGui.QPainterPath.closeSubpath": (),
- "PySide2.QtGui.QPainterPath.connectPath": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.contains": [('PySide2.QtCore.QPointF',), ('PySide2.QtCore.QRectF',), ('PySide2.QtGui.QPainterPath',)],
- "PySide2.QtGui.QPainterPath.controlPointRect": (),
- "PySide2.QtGui.QPainterPath.cubicTo": [('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'), ('float', 'float', 'float', 'float', 'float', 'float')],
- "PySide2.QtGui.QPainterPath.currentPosition": (),
- "PySide2.QtGui.QPainterPath.elementAt": ('int',),
- "PySide2.QtGui.QPainterPath.elementCount": (),
- "PySide2.QtGui.QPainterPath.fillRule": (),
- "PySide2.QtGui.QPainterPath.intersected": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.intersects": [('PySide2.QtCore.QRectF',), ('PySide2.QtGui.QPainterPath',)],
- "PySide2.QtGui.QPainterPath.isEmpty": (),
- "PySide2.QtGui.QPainterPath.length": (),
- "PySide2.QtGui.QPainterPath.lineTo": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QPainterPath.moveTo": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QPainterPath.percentAtLength": ('float',),
- "PySide2.QtGui.QPainterPath.pointAtPercent": ('float',),
- "PySide2.QtGui.QPainterPath.quadTo": [('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'), ('float', 'float', 'float', 'float')],
- "PySide2.QtGui.QPainterPath.reserve": ('int',),
- "PySide2.QtGui.QPainterPath.setElementPositionAt": ('int', 'float', 'float'),
- "PySide2.QtGui.QPainterPath.setFillRule": ('PySide2.QtCore.Qt.FillRule',),
- "PySide2.QtGui.QPainterPath.simplified": (),
- "PySide2.QtGui.QPainterPath.slopeAtPercent": ('float',),
- "PySide2.QtGui.QPainterPath.subtracted": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.subtractedInverted": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.swap": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.toFillPolygon": [('PySide2.QtGui.QMatrix',), ('PySide2.QtGui.QTransform',)],
- "PySide2.QtGui.QPainterPath.toFillPolygons": [('PySide2.QtGui.QMatrix',), ('PySide2.QtGui.QTransform',)],
- "PySide2.QtGui.QPainterPath.toReversed": (),
- "PySide2.QtGui.QPainterPath.toSubpathPolygons": [('PySide2.QtGui.QMatrix',), ('PySide2.QtGui.QTransform',)],
- "PySide2.QtGui.QPainterPath.translate": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QPainterPath.translated": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QPainterPath.united": ('PySide2.QtGui.QPainterPath',),
-# class PySide2.QtGui.QPainterPathStroker:
- "PySide2.QtGui.QPainterPathStroker.__init__": [(), ('PySide2.QtGui.QPen',)],
- "PySide2.QtGui.QPainterPathStroker.capStyle": (),
- "PySide2.QtGui.QPainterPathStroker.createStroke": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPathStroker.curveThreshold": (),
- "PySide2.QtGui.QPainterPathStroker.dashOffset": (),
- "PySide2.QtGui.QPainterPathStroker.dashPattern": (),
- "PySide2.QtGui.QPainterPathStroker.joinStyle": (),
- "PySide2.QtGui.QPainterPathStroker.miterLimit": (),
- "PySide2.QtGui.QPainterPathStroker.setCapStyle": ('PySide2.QtCore.Qt.PenCapStyle',),
- "PySide2.QtGui.QPainterPathStroker.setCurveThreshold": ('float',),
- "PySide2.QtGui.QPainterPathStroker.setDashOffset": ('float',),
- "PySide2.QtGui.QPainterPathStroker.setDashPattern": [('PySide2.QtCore.Qt.PenStyle',), ('typing.List[float]',)],
- "PySide2.QtGui.QPainterPathStroker.setJoinStyle": ('PySide2.QtCore.Qt.PenJoinStyle',),
- "PySide2.QtGui.QPainterPathStroker.setMiterLimit": ('float',),
- "PySide2.QtGui.QPainterPathStroker.setWidth": ('float',),
- "PySide2.QtGui.QPainterPathStroker.width": (),
-# class PySide2.QtGui.QPalette:
-# class PySide2.QtGui.QPalette.ColorGroup:
-# class PySide2.QtGui.QPalette.ColorRole:
- "PySide2.QtGui.QPalette.__init__": [(), ('PySide2.QtCore.Qt.GlobalColor',), ('PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush'), ('PySide2.QtGui.QColor',), ('PySide2.QtGui.QColor', 'PySide2.QtGui.QColor'), ('PySide2.QtGui.QColor', 'PySide2.QtGui.QColor', 'PySide2.QtGui.QColor', 'PySide2.QtGui.QColor', 'PySide2.QtGui.QColor', 'PySide2.QtGui.QColor', 'PySide2.QtGui.QColor'), ('PySide2.QtGui.QPalette',)],
- "PySide2.QtGui.QPalette.__copy__": (),
- "PySide2.QtGui.QPalette.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPalette.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPalette.alternateBase": (),
- "PySide2.QtGui.QPalette.background": (),
- "PySide2.QtGui.QPalette.base": (),
- "PySide2.QtGui.QPalette.brightText": (),
- "PySide2.QtGui.QPalette.brush": [('PySide2.QtGui.QPalette.ColorGroup', 'PySide2.QtGui.QPalette.ColorRole'), ('PySide2.QtGui.QPalette.ColorRole',)],
- "PySide2.QtGui.QPalette.button": (),
- "PySide2.QtGui.QPalette.buttonText": (),
- "PySide2.QtGui.QPalette.cacheKey": (),
- "PySide2.QtGui.QPalette.color": [('PySide2.QtGui.QPalette.ColorGroup', 'PySide2.QtGui.QPalette.ColorRole'), ('PySide2.QtGui.QPalette.ColorRole',)],
- "PySide2.QtGui.QPalette.currentColorGroup": (),
- "PySide2.QtGui.QPalette.dark": (),
- "PySide2.QtGui.QPalette.foreground": (),
- "PySide2.QtGui.QPalette.highlight": (),
- "PySide2.QtGui.QPalette.highlightedText": (),
- "PySide2.QtGui.QPalette.isBrushSet": ('PySide2.QtGui.QPalette.ColorGroup', 'PySide2.QtGui.QPalette.ColorRole'),
- "PySide2.QtGui.QPalette.isCopyOf": ('PySide2.QtGui.QPalette',),
- "PySide2.QtGui.QPalette.isEqual": ('PySide2.QtGui.QPalette.ColorGroup', 'PySide2.QtGui.QPalette.ColorGroup'),
- "PySide2.QtGui.QPalette.light": (),
- "PySide2.QtGui.QPalette.link": (),
- "PySide2.QtGui.QPalette.linkVisited": (),
- "PySide2.QtGui.QPalette.mid": (),
- "PySide2.QtGui.QPalette.midlight": (),
- "PySide2.QtGui.QPalette.placeholderText": (),
- "PySide2.QtGui.QPalette.resolve": [(), ('PySide2.QtGui.QPalette',), ('int',)],
- "PySide2.QtGui.QPalette.setBrush": [('PySide2.QtGui.QPalette.ColorGroup', 'PySide2.QtGui.QPalette.ColorRole', 'PySide2.QtGui.QBrush'), ('PySide2.QtGui.QPalette.ColorRole', 'PySide2.QtGui.QBrush')],
- "PySide2.QtGui.QPalette.setColor": [('PySide2.QtGui.QPalette.ColorGroup', 'PySide2.QtGui.QPalette.ColorRole', 'PySide2.QtGui.QColor'), ('PySide2.QtGui.QPalette.ColorRole', 'PySide2.QtGui.QColor')],
- "PySide2.QtGui.QPalette.setColorGroup": ('PySide2.QtGui.QPalette.ColorGroup', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush'),
- "PySide2.QtGui.QPalette.setCurrentColorGroup": ('PySide2.QtGui.QPalette.ColorGroup',),
- "PySide2.QtGui.QPalette.shadow": (),
- "PySide2.QtGui.QPalette.swap": ('PySide2.QtGui.QPalette',),
- "PySide2.QtGui.QPalette.text": (),
- "PySide2.QtGui.QPalette.toolTipBase": (),
- "PySide2.QtGui.QPalette.toolTipText": (),
- "PySide2.QtGui.QPalette.window": (),
- "PySide2.QtGui.QPalette.windowText": (),
-# class PySide2.QtGui.QPdfWriter:
- "PySide2.QtGui.QPdfWriter.__init__": [('PySide2.QtCore.QIODevice',), ('str',)],
- "PySide2.QtGui.QPdfWriter.creator": (),
- "PySide2.QtGui.QPdfWriter.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtGui.QPdfWriter.newPage": (),
- "PySide2.QtGui.QPdfWriter.paintEngine": (),
- "PySide2.QtGui.QPdfWriter.pdfVersion": (),
- "PySide2.QtGui.QPdfWriter.resolution": (),
- "PySide2.QtGui.QPdfWriter.setCreator": ('str',),
- "PySide2.QtGui.QPdfWriter.setMargins": ('PySide2.QtGui.QPagedPaintDevice.Margins',),
- "PySide2.QtGui.QPdfWriter.setPageSize": ('PySide2.QtGui.QPagedPaintDevice.PageSize',),
- "PySide2.QtGui.QPdfWriter.setPageSizeMM": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtGui.QPdfWriter.setPdfVersion": ('PySide2.QtGui.QPagedPaintDevice.PdfVersion',),
- "PySide2.QtGui.QPdfWriter.setResolution": ('int',),
- "PySide2.QtGui.QPdfWriter.setTitle": ('str',),
- "PySide2.QtGui.QPdfWriter.title": (),
-# class PySide2.QtGui.QPen:
- "PySide2.QtGui.QPen.__init__": [(), ('PySide2.QtCore.Qt.PenStyle',), ('PySide2.QtGui.QBrush', 'float', 'PySide2.QtCore.Qt.PenStyle', 'PySide2.QtCore.Qt.PenCapStyle', 'PySide2.QtCore.Qt.PenJoinStyle'), ('PySide2.QtGui.QColor',), ('PySide2.QtGui.QPen',)],
- "PySide2.QtGui.QPen.__copy__": (),
- "PySide2.QtGui.QPen.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPen.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPen.brush": (),
- "PySide2.QtGui.QPen.capStyle": (),
- "PySide2.QtGui.QPen.color": (),
- "PySide2.QtGui.QPen.dashOffset": (),
- "PySide2.QtGui.QPen.dashPattern": (),
- "PySide2.QtGui.QPen.isCosmetic": (),
- "PySide2.QtGui.QPen.isSolid": (),
- "PySide2.QtGui.QPen.joinStyle": (),
- "PySide2.QtGui.QPen.miterLimit": (),
- "PySide2.QtGui.QPen.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QPen.setCapStyle": ('PySide2.QtCore.Qt.PenCapStyle',),
- "PySide2.QtGui.QPen.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtGui.QPen.setCosmetic": ('bool',),
- "PySide2.QtGui.QPen.setDashOffset": ('float',),
- "PySide2.QtGui.QPen.setDashPattern": ('typing.List[float]',),
- "PySide2.QtGui.QPen.setJoinStyle": ('PySide2.QtCore.Qt.PenJoinStyle',),
- "PySide2.QtGui.QPen.setMiterLimit": ('float',),
- "PySide2.QtGui.QPen.setStyle": ('PySide2.QtCore.Qt.PenStyle',),
- "PySide2.QtGui.QPen.setWidth": ('int',),
- "PySide2.QtGui.QPen.setWidthF": ('float',),
- "PySide2.QtGui.QPen.style": (),
- "PySide2.QtGui.QPen.swap": ('PySide2.QtGui.QPen',),
- "PySide2.QtGui.QPen.width": (),
- "PySide2.QtGui.QPen.widthF": (),
-# class PySide2.QtGui.QPicture:
- "PySide2.QtGui.QPicture.__init__": [('PySide2.QtGui.QPicture',), ('int',)],
- "PySide2.QtGui.QPicture.__copy__": (),
- "PySide2.QtGui.QPicture.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPicture.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPicture.boundingRect": (),
- "PySide2.QtGui.QPicture.data": (),
- "PySide2.QtGui.QPicture.devType": (),
- "PySide2.QtGui.QPicture.inputFormatList": (),
- "PySide2.QtGui.QPicture.inputFormats": (),
- "PySide2.QtGui.QPicture.isNull": (),
- "PySide2.QtGui.QPicture.load": [('PySide2.QtCore.QIODevice', 'str'), ('str', 'str')],
- "PySide2.QtGui.QPicture.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtGui.QPicture.outputFormatList": (),
- "PySide2.QtGui.QPicture.outputFormats": (),
- "PySide2.QtGui.QPicture.paintEngine": (),
- "PySide2.QtGui.QPicture.pictureFormat": ('str',),
- "PySide2.QtGui.QPicture.play": ('PySide2.QtGui.QPainter',),
- "PySide2.QtGui.QPicture.save": [('PySide2.QtCore.QIODevice', 'str'), ('str', 'str')],
- "PySide2.QtGui.QPicture.setBoundingRect": ('PySide2.QtCore.QRect',),
- "PySide2.QtGui.QPicture.setData": ('str', 'int'),
- "PySide2.QtGui.QPicture.size": (),
- "PySide2.QtGui.QPicture.swap": ('PySide2.QtGui.QPicture',),
-# class PySide2.QtGui.QPictureIO:
- "PySide2.QtGui.QPictureIO.__init__": [(), ('PySide2.QtCore.QIODevice', 'str'), ('str', 'str')],
- "PySide2.QtGui.QPictureIO.description": (),
- "PySide2.QtGui.QPictureIO.fileName": (),
- "PySide2.QtGui.QPictureIO.format": (),
- "PySide2.QtGui.QPictureIO.gamma": (),
- "PySide2.QtGui.QPictureIO.inputFormats": (),
- "PySide2.QtGui.QPictureIO.ioDevice": (),
- "PySide2.QtGui.QPictureIO.outputFormats": (),
- "PySide2.QtGui.QPictureIO.parameters": (),
- "PySide2.QtGui.QPictureIO.picture": (),
- "PySide2.QtGui.QPictureIO.pictureFormat": [('PySide2.QtCore.QIODevice',), ('str',)],
- "PySide2.QtGui.QPictureIO.quality": (),
- "PySide2.QtGui.QPictureIO.read": (),
- "PySide2.QtGui.QPictureIO.setDescription": ('str',),
- "PySide2.QtGui.QPictureIO.setFileName": ('str',),
- "PySide2.QtGui.QPictureIO.setFormat": ('str',),
- "PySide2.QtGui.QPictureIO.setGamma": ('float',),
- "PySide2.QtGui.QPictureIO.setIODevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtGui.QPictureIO.setParameters": ('str',),
- "PySide2.QtGui.QPictureIO.setPicture": ('PySide2.QtGui.QPicture',),
- "PySide2.QtGui.QPictureIO.setQuality": ('int',),
- "PySide2.QtGui.QPictureIO.setStatus": ('int',),
- "PySide2.QtGui.QPictureIO.status": (),
- "PySide2.QtGui.QPictureIO.write": (),
-# class PySide2.QtGui.QPixelFormat:
-# class PySide2.QtGui.QPixelFormat.AlphaPosition:
-# class PySide2.QtGui.QPixelFormat.AlphaPremultiplied:
-# class PySide2.QtGui.QPixelFormat.AlphaUsage:
-# class PySide2.QtGui.QPixelFormat.ByteOrder:
-# class PySide2.QtGui.QPixelFormat.ColorModel:
-# class PySide2.QtGui.QPixelFormat.TypeInterpretation:
-# class PySide2.QtGui.QPixelFormat.YUVLayout:
- "PySide2.QtGui.QPixelFormat.__init__": [(), ('PySide2.QtGui.QPixelFormat',), ('PySide2.QtGui.QPixelFormat.ColorModel', 'int', 'int', 'int', 'int', 'int', 'int', 'PySide2.QtGui.QPixelFormat.AlphaUsage', 'PySide2.QtGui.QPixelFormat.AlphaPosition', 'PySide2.QtGui.QPixelFormat.AlphaPremultiplied', 'PySide2.QtGui.QPixelFormat.TypeInterpretation', 'PySide2.QtGui.QPixelFormat.ByteOrder', 'int')],
- "PySide2.QtGui.QPixelFormat.__copy__": (),
- "PySide2.QtGui.QPixelFormat.alphaPosition": (),
- "PySide2.QtGui.QPixelFormat.alphaSize": (),
- "PySide2.QtGui.QPixelFormat.alphaUsage": (),
- "PySide2.QtGui.QPixelFormat.bitsPerPixel": (),
- "PySide2.QtGui.QPixelFormat.blackSize": (),
- "PySide2.QtGui.QPixelFormat.blueSize": (),
- "PySide2.QtGui.QPixelFormat.brightnessSize": (),
- "PySide2.QtGui.QPixelFormat.byteOrder": (),
- "PySide2.QtGui.QPixelFormat.channelCount": (),
- "PySide2.QtGui.QPixelFormat.colorModel": (),
- "PySide2.QtGui.QPixelFormat.cyanSize": (),
- "PySide2.QtGui.QPixelFormat.greenSize": (),
- "PySide2.QtGui.QPixelFormat.hueSize": (),
- "PySide2.QtGui.QPixelFormat.lightnessSize": (),
- "PySide2.QtGui.QPixelFormat.magentaSize": (),
- "PySide2.QtGui.QPixelFormat.premultiplied": (),
- "PySide2.QtGui.QPixelFormat.redSize": (),
- "PySide2.QtGui.QPixelFormat.saturationSize": (),
- "PySide2.QtGui.QPixelFormat.subEnum": (),
- "PySide2.QtGui.QPixelFormat.typeInterpretation": (),
- "PySide2.QtGui.QPixelFormat.yellowSize": (),
- "PySide2.QtGui.QPixelFormat.yuvLayout": (),
-# class PySide2.QtGui.QPixmap:
- "PySide2.QtGui.QPixmap.__init__": [(), ('PySide2.QtCore.QSize',), ('PySide2.QtGui.QImage',), ('PySide2.QtGui.QPixmap',), ('int', 'int'), ('str', 'str', 'PySide2.QtCore.Qt.ImageConversionFlags'), ('typing.Sequence[str]',)],
- "PySide2.QtGui.QPixmap.__copy__": (),
- "PySide2.QtGui.QPixmap.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPixmap.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPixmap.cacheKey": (),
- "PySide2.QtGui.QPixmap.convertFromImage": ('PySide2.QtGui.QImage', 'PySide2.QtCore.Qt.ImageConversionFlags'),
- "PySide2.QtGui.QPixmap.copy": [('PySide2.QtCore.QRect',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPixmap.createHeuristicMask": ('bool',),
- "PySide2.QtGui.QPixmap.createMaskFromColor": ('PySide2.QtGui.QColor', 'PySide2.QtCore.Qt.MaskMode'),
- "PySide2.QtGui.QPixmap.defaultDepth": (),
- "PySide2.QtGui.QPixmap.depth": (),
- "PySide2.QtGui.QPixmap.devType": (),
- "PySide2.QtGui.QPixmap.devicePixelRatio": (),
- "PySide2.QtGui.QPixmap.fill": [('PySide2.QtGui.QColor',), ('PySide2.QtGui.QPaintDevice', 'PySide2.QtCore.QPoint'), ('PySide2.QtGui.QPaintDevice', 'int', 'int')],
- "PySide2.QtGui.QPixmap.fromImage": ('PySide2.QtGui.QImage', 'PySide2.QtCore.Qt.ImageConversionFlags'),
- "PySide2.QtGui.QPixmap.fromImageInPlace": ('PySide2.QtGui.QImage', 'PySide2.QtCore.Qt.ImageConversionFlags'),
- "PySide2.QtGui.QPixmap.fromImageReader": ('PySide2.QtGui.QImageReader', 'PySide2.QtCore.Qt.ImageConversionFlags'),
- "PySide2.QtGui.QPixmap.grabWidget": [('PySide2.QtCore.QObject', 'PySide2.QtCore.QRect'), ('PySide2.QtCore.QObject', 'int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPixmap.grabWindow": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QPixmap.hasAlpha": (),
- "PySide2.QtGui.QPixmap.hasAlphaChannel": (),
- "PySide2.QtGui.QPixmap.height": (),
- "PySide2.QtGui.QPixmap.isNull": (),
- "PySide2.QtGui.QPixmap.isQBitmap": (),
- "PySide2.QtGui.QPixmap.load": ('str', 'str', 'PySide2.QtCore.Qt.ImageConversionFlags'),
- "PySide2.QtGui.QPixmap.loadFromData": [('PySide2.QtCore.QByteArray', 'str', 'PySide2.QtCore.Qt.ImageConversionFlags'), ('str', 'int', 'str', 'PySide2.QtCore.Qt.ImageConversionFlags')],
- "PySide2.QtGui.QPixmap.mask": (),
- "PySide2.QtGui.QPixmap.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtGui.QPixmap.paintEngine": (),
- "PySide2.QtGui.QPixmap.rect": (),
- "PySide2.QtGui.QPixmap.save": [('PySide2.QtCore.QIODevice', 'str', 'int'), ('str', 'str', 'int')],
- "PySide2.QtGui.QPixmap.scaled": [('PySide2.QtCore.QSize', 'PySide2.QtCore.Qt.AspectRatioMode', 'PySide2.QtCore.Qt.TransformationMode'), ('int', 'int', 'PySide2.QtCore.Qt.AspectRatioMode', 'PySide2.QtCore.Qt.TransformationMode')],
- "PySide2.QtGui.QPixmap.scaledToHeight": ('int', 'PySide2.QtCore.Qt.TransformationMode'),
- "PySide2.QtGui.QPixmap.scaledToWidth": ('int', 'PySide2.QtCore.Qt.TransformationMode'),
- "PySide2.QtGui.QPixmap.scroll": [('int', 'int', 'PySide2.QtCore.QRect', 'PySide2.QtGui.QRegion'), ('int', 'int', 'int', 'int', 'int', 'int', 'PySide2.QtGui.QRegion')],
- "PySide2.QtGui.QPixmap.setDevicePixelRatio": ('float',),
- "PySide2.QtGui.QPixmap.setMask": ('PySide2.QtGui.QBitmap',),
- "PySide2.QtGui.QPixmap.size": (),
- "PySide2.QtGui.QPixmap.swap": ('PySide2.QtGui.QPixmap',),
- "PySide2.QtGui.QPixmap.toImage": (),
- "PySide2.QtGui.QPixmap.transformed": [('PySide2.QtGui.QMatrix', 'PySide2.QtCore.Qt.TransformationMode'), ('PySide2.QtGui.QTransform', 'PySide2.QtCore.Qt.TransformationMode')],
- "PySide2.QtGui.QPixmap.trueMatrix": [('PySide2.QtGui.QMatrix', 'int', 'int'), ('PySide2.QtGui.QTransform', 'int', 'int')],
- "PySide2.QtGui.QPixmap.width": (),
-# class PySide2.QtGui.QPixmapCache:
-# class PySide2.QtGui.QPixmapCache.Key:
- "PySide2.QtGui.QPixmapCache.Key.__init__": [(), ('PySide2.QtGui.QPixmapCache.Key',)],
- "PySide2.QtGui.QPixmapCache.Key.__copy__": (),
- "PySide2.QtGui.QPixmapCache.Key.isValid": (),
- "PySide2.QtGui.QPixmapCache.Key.swap": ('PySide2.QtGui.QPixmapCache.Key',),
- "PySide2.QtGui.QPixmapCache.__init__": (),
- "PySide2.QtGui.QPixmapCache.cacheLimit": (),
- "PySide2.QtGui.QPixmapCache.clear": (),
- "PySide2.QtGui.QPixmapCache.find": [('PySide2.QtGui.QPixmapCache.Key',), ('PySide2.QtGui.QPixmapCache.Key', 'PySide2.QtGui.QPixmap'), ('str',), ('str', 'PySide2.QtGui.QPixmap')],
- "PySide2.QtGui.QPixmapCache.insert": [('PySide2.QtGui.QPixmap',), ('str', 'PySide2.QtGui.QPixmap')],
- "PySide2.QtGui.QPixmapCache.remove": [('PySide2.QtGui.QPixmapCache.Key',), ('str',)],
- "PySide2.QtGui.QPixmapCache.replace": ('PySide2.QtGui.QPixmapCache.Key', 'PySide2.QtGui.QPixmap'),
- "PySide2.QtGui.QPixmapCache.setCacheLimit": ('int',),
-# class PySide2.QtGui.QPointingDeviceUniqueId:
- "PySide2.QtGui.QPointingDeviceUniqueId.__init__": [(), ('PySide2.QtGui.QPointingDeviceUniqueId',)],
- "PySide2.QtGui.QPointingDeviceUniqueId.__copy__": (),
- "PySide2.QtGui.QPointingDeviceUniqueId.fromNumericId": ('int',),
- "PySide2.QtGui.QPointingDeviceUniqueId.isValid": (),
- "PySide2.QtGui.QPointingDeviceUniqueId.numericId": (),
-# class PySide2.QtGui.QPolygon:
- "PySide2.QtGui.QPolygon.__init__": [(), ('PySide2.QtCore.QRect', 'bool'), ('PySide2.QtGui.QPolygon',), ('int',), ('typing.List[PySide2.QtCore.QPoint]',)],
- "PySide2.QtGui.QPolygon.__add__": ('typing.List[PySide2.QtCore.QPoint]',),
- "PySide2.QtGui.QPolygon.__copy__": (),
- "PySide2.QtGui.QPolygon.__iadd__": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QPolygon.__lshift__": [('PySide2.QtCore.QDataStream',), ('PySide2.QtCore.QPoint',), ('typing.List[PySide2.QtCore.QPoint]',)],
- "PySide2.QtGui.QPolygon.__mul__": [('PySide2.QtGui.QMatrix',), ('PySide2.QtGui.QTransform',)],
- "PySide2.QtGui.QPolygon.__reduce__": (),
- "PySide2.QtGui.QPolygon.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPolygon.append": [('PySide2.QtCore.QPoint',), ('typing.List[PySide2.QtCore.QPoint]',)],
- "PySide2.QtGui.QPolygon.at": ('int',),
- "PySide2.QtGui.QPolygon.back": (),
- "PySide2.QtGui.QPolygon.boundingRect": (),
- "PySide2.QtGui.QPolygon.capacity": (),
- "PySide2.QtGui.QPolygon.clear": (),
- "PySide2.QtGui.QPolygon.constData": (),
- "PySide2.QtGui.QPolygon.constFirst": (),
- "PySide2.QtGui.QPolygon.constLast": (),
- "PySide2.QtGui.QPolygon.contains": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QPolygon.containsPoint": ('PySide2.QtCore.QPoint', 'PySide2.QtCore.Qt.FillRule'),
- "PySide2.QtGui.QPolygon.count": [(), ('PySide2.QtCore.QPoint',)],
- "PySide2.QtGui.QPolygon.data": (),
- "PySide2.QtGui.QPolygon.empty": (),
- "PySide2.QtGui.QPolygon.endsWith": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QPolygon.fill": ('PySide2.QtCore.QPoint', 'int'),
- "PySide2.QtGui.QPolygon.first": (),
- "PySide2.QtGui.QPolygon.fromList": ('typing.Sequence[PySide2.QtCore.QPoint]',),
- "PySide2.QtGui.QPolygon.front": (),
- "PySide2.QtGui.QPolygon.indexOf": ('PySide2.QtCore.QPoint', 'int'),
- "PySide2.QtGui.QPolygon.insert": [('int', 'PySide2.QtCore.QPoint'), ('int', 'int', 'PySide2.QtCore.QPoint')],
- "PySide2.QtGui.QPolygon.intersected": ('PySide2.QtGui.QPolygon',),
- "PySide2.QtGui.QPolygon.intersects": ('PySide2.QtGui.QPolygon',),
- "PySide2.QtGui.QPolygon.isEmpty": (),
- "PySide2.QtGui.QPolygon.isSharedWith": ('typing.List[PySide2.QtCore.QPoint]',),
- "PySide2.QtGui.QPolygon.last": (),
- "PySide2.QtGui.QPolygon.lastIndexOf": ('PySide2.QtCore.QPoint', 'int'),
- "PySide2.QtGui.QPolygon.length": (),
- "PySide2.QtGui.QPolygon.mid": ('int', 'int'),
- "PySide2.QtGui.QPolygon.move": ('int', 'int'),
- "PySide2.QtGui.QPolygon.pop_back": (),
- "PySide2.QtGui.QPolygon.pop_front": (),
- "PySide2.QtGui.QPolygon.prepend": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QPolygon.push_back": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QPolygon.push_front": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QPolygon.remove": [('int',), ('int', 'int')],
- "PySide2.QtGui.QPolygon.removeAll": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QPolygon.removeAt": ('int',),
- "PySide2.QtGui.QPolygon.removeFirst": (),
- "PySide2.QtGui.QPolygon.removeLast": (),
- "PySide2.QtGui.QPolygon.removeOne": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QPolygon.replace": ('int', 'PySide2.QtCore.QPoint'),
- "PySide2.QtGui.QPolygon.reserve": ('int',),
- "PySide2.QtGui.QPolygon.resize": ('int',),
- "PySide2.QtGui.QPolygon.setSharable": ('bool',),
- "PySide2.QtGui.QPolygon.shrink_to_fit": (),
- "PySide2.QtGui.QPolygon.size": (),
- "PySide2.QtGui.QPolygon.squeeze": (),
- "PySide2.QtGui.QPolygon.startsWith": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QPolygon.subtracted": ('PySide2.QtGui.QPolygon',),
- "PySide2.QtGui.QPolygon.swap": ('PySide2.QtGui.QPolygon',),
- "PySide2.QtGui.QPolygon.swapItemsAt": ('int', 'int'),
- "PySide2.QtGui.QPolygon.takeAt": ('int',),
- "PySide2.QtGui.QPolygon.takeFirst": (),
- "PySide2.QtGui.QPolygon.takeLast": (),
- "PySide2.QtGui.QPolygon.toList": (),
- "PySide2.QtGui.QPolygon.translate": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtGui.QPolygon.translated": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtGui.QPolygon.united": ('PySide2.QtGui.QPolygon',),
- "PySide2.QtGui.QPolygon.value": [('int',), ('int', 'PySide2.QtCore.QPoint')],
-# class PySide2.QtGui.QPolygonF:
- "PySide2.QtGui.QPolygonF.__init__": [(), ('PySide2.QtCore.QRectF',), ('PySide2.QtGui.QPolygon',), ('PySide2.QtGui.QPolygonF',), ('int',), ('typing.List[PySide2.QtCore.QPointF]',)],
- "PySide2.QtGui.QPolygonF.__add__": ('typing.List[PySide2.QtCore.QPointF]',),
- "PySide2.QtGui.QPolygonF.__copy__": (),
- "PySide2.QtGui.QPolygonF.__iadd__": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QPolygonF.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPolygonF.__mul__": [('PySide2.QtGui.QMatrix',), ('PySide2.QtGui.QTransform',)],
- "PySide2.QtGui.QPolygonF.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPolygonF.append": [('PySide2.QtCore.QPointF',), ('typing.List[PySide2.QtCore.QPointF]',)],
- "PySide2.QtGui.QPolygonF.at": ('int',),
- "PySide2.QtGui.QPolygonF.back": (),
- "PySide2.QtGui.QPolygonF.boundingRect": (),
- "PySide2.QtGui.QPolygonF.capacity": (),
- "PySide2.QtGui.QPolygonF.clear": (),
- "PySide2.QtGui.QPolygonF.constData": (),
- "PySide2.QtGui.QPolygonF.constFirst": (),
- "PySide2.QtGui.QPolygonF.constLast": (),
- "PySide2.QtGui.QPolygonF.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QPolygonF.containsPoint": ('PySide2.QtCore.QPointF', 'PySide2.QtCore.Qt.FillRule'),
- "PySide2.QtGui.QPolygonF.count": [(), ('PySide2.QtCore.QPointF',)],
- "PySide2.QtGui.QPolygonF.data": (),
- "PySide2.QtGui.QPolygonF.empty": (),
- "PySide2.QtGui.QPolygonF.endsWith": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QPolygonF.fill": ('PySide2.QtCore.QPointF', 'int'),
- "PySide2.QtGui.QPolygonF.first": (),
- "PySide2.QtGui.QPolygonF.fromList": ('typing.Sequence[PySide2.QtCore.QPointF]',),
- "PySide2.QtGui.QPolygonF.front": (),
- "PySide2.QtGui.QPolygonF.indexOf": ('PySide2.QtCore.QPointF', 'int'),
- "PySide2.QtGui.QPolygonF.insert": [('int', 'PySide2.QtCore.QPointF'), ('int', 'int', 'PySide2.QtCore.QPointF')],
- "PySide2.QtGui.QPolygonF.intersected": ('PySide2.QtGui.QPolygonF',),
- "PySide2.QtGui.QPolygonF.intersects": ('PySide2.QtGui.QPolygonF',),
- "PySide2.QtGui.QPolygonF.isClosed": (),
- "PySide2.QtGui.QPolygonF.isEmpty": (),
- "PySide2.QtGui.QPolygonF.isSharedWith": ('typing.List[PySide2.QtCore.QPointF]',),
- "PySide2.QtGui.QPolygonF.last": (),
- "PySide2.QtGui.QPolygonF.lastIndexOf": ('PySide2.QtCore.QPointF', 'int'),
- "PySide2.QtGui.QPolygonF.length": (),
- "PySide2.QtGui.QPolygonF.mid": ('int', 'int'),
- "PySide2.QtGui.QPolygonF.move": ('int', 'int'),
- "PySide2.QtGui.QPolygonF.pop_back": (),
- "PySide2.QtGui.QPolygonF.pop_front": (),
- "PySide2.QtGui.QPolygonF.prepend": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QPolygonF.push_back": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QPolygonF.push_front": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QPolygonF.remove": [('int',), ('int', 'int')],
- "PySide2.QtGui.QPolygonF.removeAll": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QPolygonF.removeAt": ('int',),
- "PySide2.QtGui.QPolygonF.removeFirst": (),
- "PySide2.QtGui.QPolygonF.removeLast": (),
- "PySide2.QtGui.QPolygonF.removeOne": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QPolygonF.replace": ('int', 'PySide2.QtCore.QPointF'),
- "PySide2.QtGui.QPolygonF.reserve": ('int',),
- "PySide2.QtGui.QPolygonF.resize": ('int',),
- "PySide2.QtGui.QPolygonF.setSharable": ('bool',),
- "PySide2.QtGui.QPolygonF.shrink_to_fit": (),
- "PySide2.QtGui.QPolygonF.size": (),
- "PySide2.QtGui.QPolygonF.squeeze": (),
- "PySide2.QtGui.QPolygonF.startsWith": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QPolygonF.subtracted": ('PySide2.QtGui.QPolygonF',),
- "PySide2.QtGui.QPolygonF.swap": ('PySide2.QtGui.QPolygonF',),
- "PySide2.QtGui.QPolygonF.swapItemsAt": ('int', 'int'),
- "PySide2.QtGui.QPolygonF.takeAt": ('int',),
- "PySide2.QtGui.QPolygonF.takeFirst": (),
- "PySide2.QtGui.QPolygonF.takeLast": (),
- "PySide2.QtGui.QPolygonF.toList": (),
- "PySide2.QtGui.QPolygonF.toPolygon": (),
- "PySide2.QtGui.QPolygonF.translate": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QPolygonF.translated": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QPolygonF.united": ('PySide2.QtGui.QPolygonF',),
- "PySide2.QtGui.QPolygonF.value": [('int',), ('int', 'PySide2.QtCore.QPointF')],
-# class PySide2.QtGui.QPyTextObject:
- "PySide2.QtGui.QPyTextObject.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QPyTextObject.drawObject": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF', 'PySide2.QtGui.QTextDocument', 'int', 'PySide2.QtGui.QTextFormat'),
- "PySide2.QtGui.QPyTextObject.intrinsicSize": ('PySide2.QtGui.QTextDocument', 'int', 'PySide2.QtGui.QTextFormat'),
-# class PySide2.QtGui.QQuaternion:
- "PySide2.QtGui.QQuaternion.__init__": [(), ('PySide2.QtGui.QVector4D',), ('float', 'PySide2.QtGui.QVector3D'), ('float', 'float', 'float', 'float')],
- "PySide2.QtGui.QQuaternion.__add__": ('PySide2.QtGui.QQuaternion',),
- "PySide2.QtGui.QQuaternion.__copy__": (),
- "PySide2.QtGui.QQuaternion.__iadd__": ('PySide2.QtGui.QQuaternion',),
- "PySide2.QtGui.QQuaternion.__imul__": [('PySide2.QtGui.QQuaternion',), ('float',)],
- "PySide2.QtGui.QQuaternion.__isub__": ('PySide2.QtGui.QQuaternion',),
- "PySide2.QtGui.QQuaternion.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QQuaternion.__mul__": [('PySide2.QtGui.QQuaternion',), ('float',)],
- "PySide2.QtGui.QQuaternion.__neg__": (),
- "PySide2.QtGui.QQuaternion.__reduce__": (),
- "PySide2.QtGui.QQuaternion.__repr__": (),
- "PySide2.QtGui.QQuaternion.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QQuaternion.__sub__": ('PySide2.QtGui.QQuaternion',),
- "PySide2.QtGui.QQuaternion.conjugate": (),
- "PySide2.QtGui.QQuaternion.conjugated": (),
- "PySide2.QtGui.QQuaternion.dotProduct": ('PySide2.QtGui.QQuaternion', 'PySide2.QtGui.QQuaternion'),
- "PySide2.QtGui.QQuaternion.fromAxes": ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'),
- "PySide2.QtGui.QQuaternion.fromAxisAndAngle": [('PySide2.QtGui.QVector3D', 'float'), ('float', 'float', 'float', 'float')],
- "PySide2.QtGui.QQuaternion.fromDirection": ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'),
- "PySide2.QtGui.QQuaternion.fromEulerAngles": [('PySide2.QtGui.QVector3D',), ('float', 'float', 'float')],
- "PySide2.QtGui.QQuaternion.fromRotationMatrix": ('PySide2.QtGui.QMatrix3x3',),
- "PySide2.QtGui.QQuaternion.getAxes": ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'),
- "PySide2.QtGui.QQuaternion.inverted": (),
- "PySide2.QtGui.QQuaternion.isIdentity": (),
- "PySide2.QtGui.QQuaternion.isNull": (),
- "PySide2.QtGui.QQuaternion.length": (),
- "PySide2.QtGui.QQuaternion.lengthSquared": (),
- "PySide2.QtGui.QQuaternion.nlerp": ('PySide2.QtGui.QQuaternion', 'PySide2.QtGui.QQuaternion', 'float'),
- "PySide2.QtGui.QQuaternion.normalize": (),
- "PySide2.QtGui.QQuaternion.normalized": (),
- "PySide2.QtGui.QQuaternion.rotatedVector": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtGui.QQuaternion.rotationTo": ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'),
- "PySide2.QtGui.QQuaternion.scalar": (),
- "PySide2.QtGui.QQuaternion.setScalar": ('float',),
- "PySide2.QtGui.QQuaternion.setVector": [('PySide2.QtGui.QVector3D',), ('float', 'float', 'float')],
- "PySide2.QtGui.QQuaternion.setX": ('float',),
- "PySide2.QtGui.QQuaternion.setY": ('float',),
- "PySide2.QtGui.QQuaternion.setZ": ('float',),
- "PySide2.QtGui.QQuaternion.slerp": ('PySide2.QtGui.QQuaternion', 'PySide2.QtGui.QQuaternion', 'float'),
- "PySide2.QtGui.QQuaternion.toEulerAngles": (),
- "PySide2.QtGui.QQuaternion.toRotationMatrix": (),
- "PySide2.QtGui.QQuaternion.toVector4D": (),
- "PySide2.QtGui.QQuaternion.vector": (),
- "PySide2.QtGui.QQuaternion.x": (),
- "PySide2.QtGui.QQuaternion.y": (),
- "PySide2.QtGui.QQuaternion.z": (),
-# class PySide2.QtGui.QRadialGradient:
- "PySide2.QtGui.QRadialGradient.__init__": [(), ('PySide2.QtCore.QPointF', 'float'), ('PySide2.QtCore.QPointF', 'float', 'PySide2.QtCore.QPointF'), ('PySide2.QtCore.QPointF', 'float', 'PySide2.QtCore.QPointF', 'float'), ('PySide2.QtGui.QRadialGradient',), ('float', 'float', 'float'), ('float', 'float', 'float', 'float', 'float'), ('float', 'float', 'float', 'float', 'float', 'float')],
- "PySide2.QtGui.QRadialGradient.__copy__": (),
- "PySide2.QtGui.QRadialGradient.center": (),
- "PySide2.QtGui.QRadialGradient.centerRadius": (),
- "PySide2.QtGui.QRadialGradient.focalPoint": (),
- "PySide2.QtGui.QRadialGradient.focalRadius": (),
- "PySide2.QtGui.QRadialGradient.radius": (),
- "PySide2.QtGui.QRadialGradient.setCenter": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QRadialGradient.setCenterRadius": ('float',),
- "PySide2.QtGui.QRadialGradient.setFocalPoint": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QRadialGradient.setFocalRadius": ('float',),
- "PySide2.QtGui.QRadialGradient.setRadius": ('float',),
-# class PySide2.QtGui.QRasterWindow:
- "PySide2.QtGui.QRasterWindow.__init__": ('PySide2.QtGui.QWindow',),
- "PySide2.QtGui.QRasterWindow.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtGui.QRasterWindow.redirected": ('PySide2.QtCore.QPoint',),
-# class PySide2.QtGui.QRawFont:
-# class PySide2.QtGui.QRawFont.AntialiasingType:
-# class PySide2.QtGui.QRawFont.LayoutFlag:
-# class PySide2.QtGui.QRawFont.LayoutFlags:
- "PySide2.QtGui.QRawFont.__init__": [(), ('PySide2.QtCore.QByteArray', 'float', 'PySide2.QtGui.QFont.HintingPreference'), ('PySide2.QtGui.QRawFont',), ('str', 'float', 'PySide2.QtGui.QFont.HintingPreference')],
- "PySide2.QtGui.QRawFont.__copy__": (),
- "PySide2.QtGui.QRawFont.advancesForGlyphIndexes": [('typing.List[int]',), ('typing.List[int]', 'PySide2.QtGui.QRawFont.LayoutFlags')],
- "PySide2.QtGui.QRawFont.alphaMapForGlyph": ('int', 'PySide2.QtGui.QRawFont.AntialiasingType', 'PySide2.QtGui.QTransform'),
- "PySide2.QtGui.QRawFont.ascent": (),
- "PySide2.QtGui.QRawFont.averageCharWidth": (),
- "PySide2.QtGui.QRawFont.boundingRect": ('int',),
- "PySide2.QtGui.QRawFont.capHeight": (),
- "PySide2.QtGui.QRawFont.descent": (),
- "PySide2.QtGui.QRawFont.familyName": (),
- "PySide2.QtGui.QRawFont.fontTable": ('str',),
- "PySide2.QtGui.QRawFont.fromFont": ('PySide2.QtGui.QFont', 'PySide2.QtGui.QFontDatabase.WritingSystem'),
- "PySide2.QtGui.QRawFont.glyphIndexesForString": ('str',),
- "PySide2.QtGui.QRawFont.hintingPreference": (),
- "PySide2.QtGui.QRawFont.isValid": (),
- "PySide2.QtGui.QRawFont.leading": (),
- "PySide2.QtGui.QRawFont.lineThickness": (),
- "PySide2.QtGui.QRawFont.loadFromData": ('PySide2.QtCore.QByteArray', 'float', 'PySide2.QtGui.QFont.HintingPreference'),
- "PySide2.QtGui.QRawFont.loadFromFile": ('str', 'float', 'PySide2.QtGui.QFont.HintingPreference'),
- "PySide2.QtGui.QRawFont.maxCharWidth": (),
- "PySide2.QtGui.QRawFont.pathForGlyph": ('int',),
- "PySide2.QtGui.QRawFont.pixelSize": (),
- "PySide2.QtGui.QRawFont.setPixelSize": ('float',),
- "PySide2.QtGui.QRawFont.style": (),
- "PySide2.QtGui.QRawFont.styleName": (),
- "PySide2.QtGui.QRawFont.supportedWritingSystems": (),
- "PySide2.QtGui.QRawFont.supportsCharacter": [('int',), ('str',)],
- "PySide2.QtGui.QRawFont.swap": ('PySide2.QtGui.QRawFont',),
- "PySide2.QtGui.QRawFont.underlinePosition": (),
- "PySide2.QtGui.QRawFont.unitsPerEm": (),
- "PySide2.QtGui.QRawFont.weight": (),
- "PySide2.QtGui.QRawFont.xHeight": (),
-# class PySide2.QtGui.QRegExpValidator:
- "PySide2.QtGui.QRegExpValidator.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtCore.QRegExp', 'PySide2.QtCore.QObject')],
- "PySide2.QtGui.QRegExpValidator.regExp": (),
- "PySide2.QtGui.QRegExpValidator.setRegExp": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtGui.QRegExpValidator.validate": ('str', 'int'),
-# class PySide2.QtGui.QRegion:
-# class PySide2.QtGui.QRegion.RegionType:
- "PySide2.QtGui.QRegion.__init__": [(), ('PySide2.QtCore.QRect', 'PySide2.QtGui.QRegion.RegionType'), ('PySide2.QtGui.QBitmap',), ('PySide2.QtGui.QPolygon', 'PySide2.QtCore.Qt.FillRule'), ('PySide2.QtGui.QRegion',), ('int', 'int', 'int', 'int', 'PySide2.QtGui.QRegion.RegionType')],
- "PySide2.QtGui.QRegion.__add__": [('PySide2.QtCore.QRect',), ('PySide2.QtGui.QRegion',)],
- "PySide2.QtGui.QRegion.__and__": [('PySide2.QtCore.QRect',), ('PySide2.QtGui.QRegion',)],
- "PySide2.QtGui.QRegion.__copy__": (),
- "PySide2.QtGui.QRegion.__iadd__": [('PySide2.QtCore.QRect',), ('PySide2.QtGui.QRegion',)],
- "PySide2.QtGui.QRegion.__ior__": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QRegion.__isub__": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QRegion.__ixor__": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QRegion.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QRegion.__mul__": [('PySide2.QtGui.QMatrix',), ('PySide2.QtGui.QTransform',)],
- "PySide2.QtGui.QRegion.__or__": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QRegion.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QRegion.__sub__": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QRegion.__xor__": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QRegion.begin": (),
- "PySide2.QtGui.QRegion.boundingRect": (),
- "PySide2.QtGui.QRegion.cbegin": (),
- "PySide2.QtGui.QRegion.cend": (),
- "PySide2.QtGui.QRegion.contains": [('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QRect',)],
- "PySide2.QtGui.QRegion.end": (),
- "PySide2.QtGui.QRegion.intersected": [('PySide2.QtCore.QRect',), ('PySide2.QtGui.QRegion',)],
- "PySide2.QtGui.QRegion.intersects": [('PySide2.QtCore.QRect',), ('PySide2.QtGui.QRegion',)],
- "PySide2.QtGui.QRegion.isEmpty": (),
- "PySide2.QtGui.QRegion.isNull": (),
- "PySide2.QtGui.QRegion.rectCount": (),
- "PySide2.QtGui.QRegion.rects": (),
- "PySide2.QtGui.QRegion.setRects": ('PySide2.QtCore.QRect', 'int'),
- "PySide2.QtGui.QRegion.subtracted": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QRegion.swap": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QRegion.translate": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtGui.QRegion.translated": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtGui.QRegion.united": [('PySide2.QtCore.QRect',), ('PySide2.QtGui.QRegion',)],
- "PySide2.QtGui.QRegion.xored": ('PySide2.QtGui.QRegion',),
-# class PySide2.QtGui.QResizeEvent:
- "PySide2.QtGui.QResizeEvent.__init__": ('PySide2.QtCore.QSize', 'PySide2.QtCore.QSize'),
- "PySide2.QtGui.QResizeEvent.oldSize": (),
- "PySide2.QtGui.QResizeEvent.size": (),
-# class PySide2.QtGui.QScreen:
- "PySide2.QtGui.QScreen.angleBetween": ('PySide2.QtCore.Qt.ScreenOrientation', 'PySide2.QtCore.Qt.ScreenOrientation'),
- "PySide2.QtGui.QScreen.availableGeometry": (),
- "PySide2.QtGui.QScreen.availableSize": (),
- "PySide2.QtGui.QScreen.availableVirtualGeometry": (),
- "PySide2.QtGui.QScreen.availableVirtualSize": (),
- "PySide2.QtGui.QScreen.depth": (),
- "PySide2.QtGui.QScreen.devicePixelRatio": (),
- "PySide2.QtGui.QScreen.geometry": (),
- "PySide2.QtGui.QScreen.grabWindow": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QScreen.isLandscape": ('PySide2.QtCore.Qt.ScreenOrientation',),
- "PySide2.QtGui.QScreen.isPortrait": ('PySide2.QtCore.Qt.ScreenOrientation',),
- "PySide2.QtGui.QScreen.logicalDotsPerInch": (),
- "PySide2.QtGui.QScreen.logicalDotsPerInchX": (),
- "PySide2.QtGui.QScreen.logicalDotsPerInchY": (),
- "PySide2.QtGui.QScreen.manufacturer": (),
- "PySide2.QtGui.QScreen.mapBetween": ('PySide2.QtCore.Qt.ScreenOrientation', 'PySide2.QtCore.Qt.ScreenOrientation', 'PySide2.QtCore.QRect'),
- "PySide2.QtGui.QScreen.model": (),
- "PySide2.QtGui.QScreen.name": (),
- "PySide2.QtGui.QScreen.nativeOrientation": (),
- "PySide2.QtGui.QScreen.orientation": (),
- "PySide2.QtGui.QScreen.orientationUpdateMask": (),
- "PySide2.QtGui.QScreen.physicalDotsPerInch": (),
- "PySide2.QtGui.QScreen.physicalDotsPerInchX": (),
- "PySide2.QtGui.QScreen.physicalDotsPerInchY": (),
- "PySide2.QtGui.QScreen.physicalSize": (),
- "PySide2.QtGui.QScreen.primaryOrientation": (),
- "PySide2.QtGui.QScreen.refreshRate": (),
- "PySide2.QtGui.QScreen.serialNumber": (),
- "PySide2.QtGui.QScreen.setOrientationUpdateMask": ('PySide2.QtCore.Qt.ScreenOrientations',),
- "PySide2.QtGui.QScreen.size": (),
- "PySide2.QtGui.QScreen.transformBetween": ('PySide2.QtCore.Qt.ScreenOrientation', 'PySide2.QtCore.Qt.ScreenOrientation', 'PySide2.QtCore.QRect'),
- "PySide2.QtGui.QScreen.virtualGeometry": (),
- "PySide2.QtGui.QScreen.virtualSiblings": (),
- "PySide2.QtGui.QScreen.virtualSize": (),
-# class PySide2.QtGui.QScrollEvent:
-# class PySide2.QtGui.QScrollEvent.ScrollState:
- "PySide2.QtGui.QScrollEvent.__init__": ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtGui.QScrollEvent.ScrollState'),
- "PySide2.QtGui.QScrollEvent.contentPos": (),
- "PySide2.QtGui.QScrollEvent.overshootDistance": (),
- "PySide2.QtGui.QScrollEvent.scrollState": (),
-# class PySide2.QtGui.QScrollPrepareEvent:
- "PySide2.QtGui.QScrollPrepareEvent.__init__": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QScrollPrepareEvent.contentPos": (),
- "PySide2.QtGui.QScrollPrepareEvent.contentPosRange": (),
- "PySide2.QtGui.QScrollPrepareEvent.setContentPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QScrollPrepareEvent.setContentPosRange": ('PySide2.QtCore.QRectF',),
- "PySide2.QtGui.QScrollPrepareEvent.setViewportSize": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtGui.QScrollPrepareEvent.startPos": (),
- "PySide2.QtGui.QScrollPrepareEvent.viewportSize": (),
-# class PySide2.QtGui.QSessionManager:
-# class PySide2.QtGui.QSessionManager.RestartHint:
- "PySide2.QtGui.QSessionManager.allowsErrorInteraction": (),
- "PySide2.QtGui.QSessionManager.allowsInteraction": (),
- "PySide2.QtGui.QSessionManager.cancel": (),
- "PySide2.QtGui.QSessionManager.discardCommand": (),
- "PySide2.QtGui.QSessionManager.isPhase2": (),
- "PySide2.QtGui.QSessionManager.release": (),
- "PySide2.QtGui.QSessionManager.requestPhase2": (),
- "PySide2.QtGui.QSessionManager.restartCommand": (),
- "PySide2.QtGui.QSessionManager.restartHint": (),
- "PySide2.QtGui.QSessionManager.sessionId": (),
- "PySide2.QtGui.QSessionManager.sessionKey": (),
- "PySide2.QtGui.QSessionManager.setDiscardCommand": ('typing.Sequence[str]',),
- "PySide2.QtGui.QSessionManager.setManagerProperty": [('str', 'str'), ('str', 'typing.Sequence[str]')],
- "PySide2.QtGui.QSessionManager.setRestartCommand": ('typing.Sequence[str]',),
- "PySide2.QtGui.QSessionManager.setRestartHint": ('PySide2.QtGui.QSessionManager.RestartHint',),
-# class PySide2.QtGui.QShortcutEvent:
- "PySide2.QtGui.QShortcutEvent.__init__": ('PySide2.QtGui.QKeySequence', 'int', 'bool'),
- "PySide2.QtGui.QShortcutEvent.isAmbiguous": (),
- "PySide2.QtGui.QShortcutEvent.key": (),
- "PySide2.QtGui.QShortcutEvent.shortcutId": (),
-# class PySide2.QtGui.QShowEvent:
- "PySide2.QtGui.QShowEvent.__init__": (),
-# class PySide2.QtGui.QStandardItem:
-# class PySide2.QtGui.QStandardItem.ItemType:
- "PySide2.QtGui.QStandardItem.__init__": [(), ('PySide2.QtGui.QIcon', 'str'), ('PySide2.QtGui.QStandardItem',), ('int', 'int'), ('str',)],
- "PySide2.QtGui.QStandardItem.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QStandardItem.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QStandardItem.accessibleDescription": (),
- "PySide2.QtGui.QStandardItem.accessibleText": (),
- "PySide2.QtGui.QStandardItem.appendColumn": ('typing.Sequence[PySide2.QtGui.QStandardItem]',),
- "PySide2.QtGui.QStandardItem.appendRow": [('PySide2.QtGui.QStandardItem',), ('typing.Sequence[PySide2.QtGui.QStandardItem]',)],
- "PySide2.QtGui.QStandardItem.appendRows": ('typing.Sequence[PySide2.QtGui.QStandardItem]',),
- "PySide2.QtGui.QStandardItem.background": (),
- "PySide2.QtGui.QStandardItem.checkState": (),
- "PySide2.QtGui.QStandardItem.child": ('int', 'int'),
- "PySide2.QtGui.QStandardItem.clearData": (),
- "PySide2.QtGui.QStandardItem.clone": (),
- "PySide2.QtGui.QStandardItem.column": (),
- "PySide2.QtGui.QStandardItem.columnCount": (),
- "PySide2.QtGui.QStandardItem.data": ('int',),
- "PySide2.QtGui.QStandardItem.emitDataChanged": (),
- "PySide2.QtGui.QStandardItem.flags": (),
- "PySide2.QtGui.QStandardItem.font": (),
- "PySide2.QtGui.QStandardItem.foreground": (),
- "PySide2.QtGui.QStandardItem.hasChildren": (),
- "PySide2.QtGui.QStandardItem.icon": (),
- "PySide2.QtGui.QStandardItem.index": (),
- "PySide2.QtGui.QStandardItem.insertColumn": ('int', 'typing.Sequence[PySide2.QtGui.QStandardItem]'),
- "PySide2.QtGui.QStandardItem.insertColumns": ('int', 'int'),
- "PySide2.QtGui.QStandardItem.insertRow": [('int', 'PySide2.QtGui.QStandardItem'), ('int', 'typing.Sequence[PySide2.QtGui.QStandardItem]')],
- "PySide2.QtGui.QStandardItem.insertRows": [('int', 'int'), ('int', 'typing.Sequence[PySide2.QtGui.QStandardItem]')],
- "PySide2.QtGui.QStandardItem.isAutoTristate": (),
- "PySide2.QtGui.QStandardItem.isCheckable": (),
- "PySide2.QtGui.QStandardItem.isDragEnabled": (),
- "PySide2.QtGui.QStandardItem.isDropEnabled": (),
- "PySide2.QtGui.QStandardItem.isEditable": (),
- "PySide2.QtGui.QStandardItem.isEnabled": (),
- "PySide2.QtGui.QStandardItem.isSelectable": (),
- "PySide2.QtGui.QStandardItem.isTristate": (),
- "PySide2.QtGui.QStandardItem.isUserTristate": (),
- "PySide2.QtGui.QStandardItem.model": (),
- "PySide2.QtGui.QStandardItem.parent": (),
- "PySide2.QtGui.QStandardItem.read": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QStandardItem.removeColumn": ('int',),
- "PySide2.QtGui.QStandardItem.removeColumns": ('int', 'int'),
- "PySide2.QtGui.QStandardItem.removeRow": ('int',),
- "PySide2.QtGui.QStandardItem.removeRows": ('int', 'int'),
- "PySide2.QtGui.QStandardItem.row": (),
- "PySide2.QtGui.QStandardItem.rowCount": (),
- "PySide2.QtGui.QStandardItem.setAccessibleDescription": ('str',),
- "PySide2.QtGui.QStandardItem.setAccessibleText": ('str',),
- "PySide2.QtGui.QStandardItem.setAutoTristate": ('bool',),
- "PySide2.QtGui.QStandardItem.setBackground": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QStandardItem.setCheckState": ('PySide2.QtCore.Qt.CheckState',),
- "PySide2.QtGui.QStandardItem.setCheckable": ('bool',),
- "PySide2.QtGui.QStandardItem.setChild": [('int', 'PySide2.QtGui.QStandardItem'), ('int', 'int', 'PySide2.QtGui.QStandardItem')],
- "PySide2.QtGui.QStandardItem.setColumnCount": ('int',),
- "PySide2.QtGui.QStandardItem.setData": ('typing.Any', 'int'),
- "PySide2.QtGui.QStandardItem.setDragEnabled": ('bool',),
- "PySide2.QtGui.QStandardItem.setDropEnabled": ('bool',),
- "PySide2.QtGui.QStandardItem.setEditable": ('bool',),
- "PySide2.QtGui.QStandardItem.setEnabled": ('bool',),
- "PySide2.QtGui.QStandardItem.setFlags": ('PySide2.QtCore.Qt.ItemFlags',),
- "PySide2.QtGui.QStandardItem.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtGui.QStandardItem.setForeground": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QStandardItem.setIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtGui.QStandardItem.setRowCount": ('int',),
- "PySide2.QtGui.QStandardItem.setSelectable": ('bool',),
- "PySide2.QtGui.QStandardItem.setSizeHint": ('PySide2.QtCore.QSize',),
- "PySide2.QtGui.QStandardItem.setStatusTip": ('str',),
- "PySide2.QtGui.QStandardItem.setText": ('str',),
- "PySide2.QtGui.QStandardItem.setTextAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtGui.QStandardItem.setToolTip": ('str',),
- "PySide2.QtGui.QStandardItem.setTristate": ('bool',),
- "PySide2.QtGui.QStandardItem.setUserTristate": ('bool',),
- "PySide2.QtGui.QStandardItem.setWhatsThis": ('str',),
- "PySide2.QtGui.QStandardItem.sizeHint": (),
- "PySide2.QtGui.QStandardItem.sortChildren": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtGui.QStandardItem.statusTip": (),
- "PySide2.QtGui.QStandardItem.takeChild": ('int', 'int'),
- "PySide2.QtGui.QStandardItem.takeColumn": ('int',),
- "PySide2.QtGui.QStandardItem.takeRow": ('int',),
- "PySide2.QtGui.QStandardItem.text": (),
- "PySide2.QtGui.QStandardItem.textAlignment": (),
- "PySide2.QtGui.QStandardItem.toolTip": (),
- "PySide2.QtGui.QStandardItem.type": (),
- "PySide2.QtGui.QStandardItem.whatsThis": (),
- "PySide2.QtGui.QStandardItem.write": ('PySide2.QtCore.QDataStream',),
-# class PySide2.QtGui.QStandardItemModel:
- "PySide2.QtGui.QStandardItemModel.__init__": [('PySide2.QtCore.QObject',), ('int', 'int', 'PySide2.QtCore.QObject')],
- "PySide2.QtGui.QStandardItemModel.appendColumn": ('typing.Sequence[PySide2.QtGui.QStandardItem]',),
- "PySide2.QtGui.QStandardItemModel.appendRow": [('PySide2.QtGui.QStandardItem',), ('typing.Sequence[PySide2.QtGui.QStandardItem]',)],
- "PySide2.QtGui.QStandardItemModel.clear": (),
- "PySide2.QtGui.QStandardItemModel.clearItemData": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtGui.QStandardItemModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtGui.QStandardItemModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtGui.QStandardItemModel.dropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtGui.QStandardItemModel.findItems": ('str', 'PySide2.QtCore.Qt.MatchFlags', 'int'),
- "PySide2.QtGui.QStandardItemModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtGui.QStandardItemModel.hasChildren": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtGui.QStandardItemModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtGui.QStandardItemModel.horizontalHeaderItem": ('int',),
- "PySide2.QtGui.QStandardItemModel.index": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtGui.QStandardItemModel.indexFromItem": ('PySide2.QtGui.QStandardItem',),
- "PySide2.QtGui.QStandardItemModel.insertColumn": [('int', 'PySide2.QtCore.QModelIndex'), ('int', 'typing.Sequence[PySide2.QtGui.QStandardItem]')],
- "PySide2.QtGui.QStandardItemModel.insertColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtGui.QStandardItemModel.insertRow": [('int', 'PySide2.QtCore.QModelIndex'), ('int', 'PySide2.QtGui.QStandardItem'), ('int', 'typing.Sequence[PySide2.QtGui.QStandardItem]')],
- "PySide2.QtGui.QStandardItemModel.insertRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtGui.QStandardItemModel.invisibleRootItem": (),
- "PySide2.QtGui.QStandardItemModel.item": ('int', 'int'),
- "PySide2.QtGui.QStandardItemModel.itemData": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtGui.QStandardItemModel.itemFromIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtGui.QStandardItemModel.itemPrototype": (),
- "PySide2.QtGui.QStandardItemModel.mimeData": ('typing.List[int]',),
- "PySide2.QtGui.QStandardItemModel.mimeTypes": (),
- "PySide2.QtGui.QStandardItemModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtGui.QStandardItemModel.removeColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtGui.QStandardItemModel.removeRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtGui.QStandardItemModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtGui.QStandardItemModel.setColumnCount": ('int',),
- "PySide2.QtGui.QStandardItemModel.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
- "PySide2.QtGui.QStandardItemModel.setHeaderData": ('int', 'PySide2.QtCore.Qt.Orientation', 'typing.Any', 'int'),
- "PySide2.QtGui.QStandardItemModel.setHorizontalHeaderItem": ('int', 'PySide2.QtGui.QStandardItem'),
- "PySide2.QtGui.QStandardItemModel.setHorizontalHeaderLabels": ('typing.Sequence[str]',),
- "PySide2.QtGui.QStandardItemModel.setItem": [('int', 'PySide2.QtGui.QStandardItem'), ('int', 'int', 'PySide2.QtGui.QStandardItem')],
- "PySide2.QtGui.QStandardItemModel.setItemData": ('PySide2.QtCore.QModelIndex', 'typing.Dict[int, typing.Any]'),
- "PySide2.QtGui.QStandardItemModel.setItemPrototype": ('PySide2.QtGui.QStandardItem',),
- "PySide2.QtGui.QStandardItemModel.setItemRoleNames": ('typing.Dict[int, PySide2.QtCore.QByteArray]',),
- "PySide2.QtGui.QStandardItemModel.setRowCount": ('int',),
- "PySide2.QtGui.QStandardItemModel.setSortRole": ('int',),
- "PySide2.QtGui.QStandardItemModel.setVerticalHeaderItem": ('int', 'PySide2.QtGui.QStandardItem'),
- "PySide2.QtGui.QStandardItemModel.setVerticalHeaderLabels": ('typing.Sequence[str]',),
- "PySide2.QtGui.QStandardItemModel.sibling": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtGui.QStandardItemModel.sort": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtGui.QStandardItemModel.sortRole": (),
- "PySide2.QtGui.QStandardItemModel.supportedDropActions": (),
- "PySide2.QtGui.QStandardItemModel.takeColumn": ('int',),
- "PySide2.QtGui.QStandardItemModel.takeHorizontalHeaderItem": ('int',),
- "PySide2.QtGui.QStandardItemModel.takeItem": ('int', 'int'),
- "PySide2.QtGui.QStandardItemModel.takeRow": ('int',),
- "PySide2.QtGui.QStandardItemModel.takeVerticalHeaderItem": ('int',),
- "PySide2.QtGui.QStandardItemModel.verticalHeaderItem": ('int',),
-# class PySide2.QtGui.QStaticText:
-# class PySide2.QtGui.QStaticText.PerformanceHint:
- "PySide2.QtGui.QStaticText.__init__": [(), ('PySide2.QtGui.QStaticText',), ('str',)],
- "PySide2.QtGui.QStaticText.__copy__": (),
- "PySide2.QtGui.QStaticText.performanceHint": (),
- "PySide2.QtGui.QStaticText.prepare": ('PySide2.QtGui.QTransform', 'PySide2.QtGui.QFont'),
- "PySide2.QtGui.QStaticText.setPerformanceHint": ('PySide2.QtGui.QStaticText.PerformanceHint',),
- "PySide2.QtGui.QStaticText.setText": ('str',),
- "PySide2.QtGui.QStaticText.setTextFormat": ('PySide2.QtCore.Qt.TextFormat',),
- "PySide2.QtGui.QStaticText.setTextOption": ('PySide2.QtGui.QTextOption',),
- "PySide2.QtGui.QStaticText.setTextWidth": ('float',),
- "PySide2.QtGui.QStaticText.size": (),
- "PySide2.QtGui.QStaticText.swap": ('PySide2.QtGui.QStaticText',),
- "PySide2.QtGui.QStaticText.text": (),
- "PySide2.QtGui.QStaticText.textFormat": (),
- "PySide2.QtGui.QStaticText.textOption": (),
- "PySide2.QtGui.QStaticText.textWidth": (),
-# class PySide2.QtGui.QStatusTipEvent:
- "PySide2.QtGui.QStatusTipEvent.__init__": ('str',),
- "PySide2.QtGui.QStatusTipEvent.tip": (),
-# class PySide2.QtGui.QStyleHints:
- "PySide2.QtGui.QStyleHints.cursorFlashTime": (),
- "PySide2.QtGui.QStyleHints.fontSmoothingGamma": (),
- "PySide2.QtGui.QStyleHints.keyboardAutoRepeatRate": (),
- "PySide2.QtGui.QStyleHints.keyboardInputInterval": (),
- "PySide2.QtGui.QStyleHints.mouseDoubleClickDistance": (),
- "PySide2.QtGui.QStyleHints.mouseDoubleClickInterval": (),
- "PySide2.QtGui.QStyleHints.mousePressAndHoldInterval": (),
- "PySide2.QtGui.QStyleHints.mouseQuickSelectionThreshold": (),
- "PySide2.QtGui.QStyleHints.passwordMaskCharacter": (),
- "PySide2.QtGui.QStyleHints.passwordMaskDelay": (),
- "PySide2.QtGui.QStyleHints.setCursorFlashTime": ('int',),
- "PySide2.QtGui.QStyleHints.setFocusOnTouchRelease": (),
- "PySide2.QtGui.QStyleHints.setKeyboardInputInterval": ('int',),
- "PySide2.QtGui.QStyleHints.setMouseDoubleClickInterval": ('int',),
- "PySide2.QtGui.QStyleHints.setMousePressAndHoldInterval": ('int',),
- "PySide2.QtGui.QStyleHints.setMouseQuickSelectionThreshold": ('int',),
- "PySide2.QtGui.QStyleHints.setShowShortcutsInContextMenus": ('bool',),
- "PySide2.QtGui.QStyleHints.setStartDragDistance": ('int',),
- "PySide2.QtGui.QStyleHints.setStartDragTime": ('int',),
- "PySide2.QtGui.QStyleHints.setTabFocusBehavior": ('PySide2.QtCore.Qt.TabFocusBehavior',),
- "PySide2.QtGui.QStyleHints.setUseHoverEffects": ('bool',),
- "PySide2.QtGui.QStyleHints.setWheelScrollLines": ('int',),
- "PySide2.QtGui.QStyleHints.showIsFullScreen": (),
- "PySide2.QtGui.QStyleHints.showIsMaximized": (),
- "PySide2.QtGui.QStyleHints.showShortcutsInContextMenus": (),
- "PySide2.QtGui.QStyleHints.singleClickActivation": (),
- "PySide2.QtGui.QStyleHints.startDragDistance": (),
- "PySide2.QtGui.QStyleHints.startDragTime": (),
- "PySide2.QtGui.QStyleHints.startDragVelocity": (),
- "PySide2.QtGui.QStyleHints.tabFocusBehavior": (),
- "PySide2.QtGui.QStyleHints.touchDoubleTapDistance": (),
- "PySide2.QtGui.QStyleHints.useHoverEffects": (),
- "PySide2.QtGui.QStyleHints.useRtlExtensions": (),
- "PySide2.QtGui.QStyleHints.wheelScrollLines": (),
-# class PySide2.QtGui.QSurface:
-# class PySide2.QtGui.QSurface.SurfaceClass:
-# class PySide2.QtGui.QSurface.SurfaceType:
- "PySide2.QtGui.QSurface.__init__": ('PySide2.QtGui.QSurface.SurfaceClass',),
- "PySide2.QtGui.QSurface.format": (),
- "PySide2.QtGui.QSurface.size": (),
- "PySide2.QtGui.QSurface.supportsOpenGL": (),
- "PySide2.QtGui.QSurface.surfaceClass": (),
- "PySide2.QtGui.QSurface.surfaceHandle": (),
- "PySide2.QtGui.QSurface.surfaceType": (),
-# class PySide2.QtGui.QSurfaceFormat:
-# class PySide2.QtGui.QSurfaceFormat.ColorSpace:
-# class PySide2.QtGui.QSurfaceFormat.FormatOption:
-# class PySide2.QtGui.QSurfaceFormat.FormatOptions:
-# class PySide2.QtGui.QSurfaceFormat.OpenGLContextProfile:
-# class PySide2.QtGui.QSurfaceFormat.RenderableType:
-# class PySide2.QtGui.QSurfaceFormat.SwapBehavior:
- "PySide2.QtGui.QSurfaceFormat.__init__": [(), ('PySide2.QtGui.QSurfaceFormat',), ('PySide2.QtGui.QSurfaceFormat.FormatOptions',)],
- "PySide2.QtGui.QSurfaceFormat.__copy__": (),
- "PySide2.QtGui.QSurfaceFormat.alphaBufferSize": (),
- "PySide2.QtGui.QSurfaceFormat.blueBufferSize": (),
- "PySide2.QtGui.QSurfaceFormat.colorSpace": (),
- "PySide2.QtGui.QSurfaceFormat.defaultFormat": (),
- "PySide2.QtGui.QSurfaceFormat.depthBufferSize": (),
- "PySide2.QtGui.QSurfaceFormat.greenBufferSize": (),
- "PySide2.QtGui.QSurfaceFormat.hasAlpha": (),
- "PySide2.QtGui.QSurfaceFormat.majorVersion": (),
- "PySide2.QtGui.QSurfaceFormat.minorVersion": (),
- "PySide2.QtGui.QSurfaceFormat.options": (),
- "PySide2.QtGui.QSurfaceFormat.profile": (),
- "PySide2.QtGui.QSurfaceFormat.redBufferSize": (),
- "PySide2.QtGui.QSurfaceFormat.renderableType": (),
- "PySide2.QtGui.QSurfaceFormat.samples": (),
- "PySide2.QtGui.QSurfaceFormat.setAlphaBufferSize": ('int',),
- "PySide2.QtGui.QSurfaceFormat.setBlueBufferSize": ('int',),
- "PySide2.QtGui.QSurfaceFormat.setColorSpace": ('PySide2.QtGui.QSurfaceFormat.ColorSpace',),
- "PySide2.QtGui.QSurfaceFormat.setDefaultFormat": ('PySide2.QtGui.QSurfaceFormat',),
- "PySide2.QtGui.QSurfaceFormat.setDepthBufferSize": ('int',),
- "PySide2.QtGui.QSurfaceFormat.setGreenBufferSize": ('int',),
- "PySide2.QtGui.QSurfaceFormat.setMajorVersion": ('int',),
- "PySide2.QtGui.QSurfaceFormat.setMinorVersion": ('int',),
- "PySide2.QtGui.QSurfaceFormat.setOption": [('PySide2.QtGui.QSurfaceFormat.FormatOption', 'bool'), ('PySide2.QtGui.QSurfaceFormat.FormatOptions',)],
- "PySide2.QtGui.QSurfaceFormat.setOptions": ('PySide2.QtGui.QSurfaceFormat.FormatOptions',),
- "PySide2.QtGui.QSurfaceFormat.setProfile": ('PySide2.QtGui.QSurfaceFormat.OpenGLContextProfile',),
- "PySide2.QtGui.QSurfaceFormat.setRedBufferSize": ('int',),
- "PySide2.QtGui.QSurfaceFormat.setRenderableType": ('PySide2.QtGui.QSurfaceFormat.RenderableType',),
- "PySide2.QtGui.QSurfaceFormat.setSamples": ('int',),
- "PySide2.QtGui.QSurfaceFormat.setStencilBufferSize": ('int',),
- "PySide2.QtGui.QSurfaceFormat.setStereo": ('bool',),
- "PySide2.QtGui.QSurfaceFormat.setSwapBehavior": ('PySide2.QtGui.QSurfaceFormat.SwapBehavior',),
- "PySide2.QtGui.QSurfaceFormat.setSwapInterval": ('int',),
- "PySide2.QtGui.QSurfaceFormat.setVersion": ('int', 'int'),
- "PySide2.QtGui.QSurfaceFormat.stencilBufferSize": (),
- "PySide2.QtGui.QSurfaceFormat.stereo": (),
- "PySide2.QtGui.QSurfaceFormat.swapBehavior": (),
- "PySide2.QtGui.QSurfaceFormat.swapInterval": (),
- "PySide2.QtGui.QSurfaceFormat.testOption": [('PySide2.QtGui.QSurfaceFormat.FormatOption',), ('PySide2.QtGui.QSurfaceFormat.FormatOptions',)],
- "PySide2.QtGui.QSurfaceFormat.version": (),
-# class PySide2.QtGui.QSyntaxHighlighter:
- "PySide2.QtGui.QSyntaxHighlighter.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtGui.QTextDocument',)],
- "PySide2.QtGui.QSyntaxHighlighter.currentBlock": (),
- "PySide2.QtGui.QSyntaxHighlighter.currentBlockState": (),
- "PySide2.QtGui.QSyntaxHighlighter.currentBlockUserData": (),
- "PySide2.QtGui.QSyntaxHighlighter.document": (),
- "PySide2.QtGui.QSyntaxHighlighter.format": ('int',),
- "PySide2.QtGui.QSyntaxHighlighter.highlightBlock": ('str',),
- "PySide2.QtGui.QSyntaxHighlighter.previousBlockState": (),
- "PySide2.QtGui.QSyntaxHighlighter.rehighlight": (),
- "PySide2.QtGui.QSyntaxHighlighter.rehighlightBlock": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtGui.QSyntaxHighlighter.setCurrentBlockState": ('int',),
- "PySide2.QtGui.QSyntaxHighlighter.setCurrentBlockUserData": ('PySide2.QtGui.QTextBlockUserData',),
- "PySide2.QtGui.QSyntaxHighlighter.setDocument": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtGui.QSyntaxHighlighter.setFormat": [('int', 'int', 'PySide2.QtGui.QColor'), ('int', 'int', 'PySide2.QtGui.QFont'), ('int', 'int', 'PySide2.QtGui.QTextCharFormat')],
-# class PySide2.QtGui.QTabletEvent:
-# class PySide2.QtGui.QTabletEvent.PointerType:
-# class PySide2.QtGui.QTabletEvent.TabletDevice:
- "PySide2.QtGui.QTabletEvent.__init__": [('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'int', 'int', 'float', 'int', 'int', 'float', 'float', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'int', 'int', 'float', 'int', 'int', 'float', 'float', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.MouseButtons')],
- "PySide2.QtGui.QTabletEvent.button": (),
- "PySide2.QtGui.QTabletEvent.buttons": (),
- "PySide2.QtGui.QTabletEvent.device": (),
- "PySide2.QtGui.QTabletEvent.globalPos": (),
- "PySide2.QtGui.QTabletEvent.globalPosF": (),
- "PySide2.QtGui.QTabletEvent.globalX": (),
- "PySide2.QtGui.QTabletEvent.global""Y": (),
- "PySide2.QtGui.QTabletEvent.hiResGlobalX": (),
- "PySide2.QtGui.QTabletEvent.hiResGlobal""Y": (),
- "PySide2.QtGui.QTabletEvent.pointerType": (),
- "PySide2.QtGui.QTabletEvent.pos": (),
- "PySide2.QtGui.QTabletEvent.posF": (),
- "PySide2.QtGui.QTabletEvent.pressure": (),
- "PySide2.QtGui.QTabletEvent.rotation": (),
- "PySide2.QtGui.QTabletEvent.tangentialPressure": (),
- "PySide2.QtGui.QTabletEvent.uniqueId": (),
- "PySide2.QtGui.QTabletEvent.x": (),
- "PySide2.QtGui.QTabletEvent.xTilt": (),
- "PySide2.QtGui.QTabletEvent.y": (),
- "PySide2.QtGui.QTabletEvent.yTilt": (),
- "PySide2.QtGui.QTabletEvent.z": (),
-# class PySide2.QtGui.QTextBlock:
-# class PySide2.QtGui.QTextBlock.iterator:
- "PySide2.QtGui.QTextBlock.iterator.__init__": [(), ('PySide2.QtGui.QTextBlock.iterator',)],
- "PySide2.QtGui.QTextBlock.iterator.__copy__": (),
- "PySide2.QtGui.QTextBlock.iterator.__iadd__": ('int',),
- "PySide2.QtGui.QTextBlock.iterator.__isub__": ('int',),
- "PySide2.QtGui.QTextBlock.iterator.__iter__": (),
- "PySide2.QtGui.QTextBlock.iterator.atEnd": (),
- "PySide2.QtGui.QTextBlock.iterator.fragment": (),
- "PySide2.QtGui.QTextBlock.__init__": [(), ('PySide2.QtGui.QTextBlock',)],
- "PySide2.QtGui.QTextBlock.__copy__": (),
- "PySide2.QtGui.QTextBlock.__iter__": (),
- "PySide2.QtGui.QTextBlock.begin": (),
- "PySide2.QtGui.QTextBlock.blockFormat": (),
- "PySide2.QtGui.QTextBlock.blockFormatIndex": (),
- "PySide2.QtGui.QTextBlock.blockNumber": (),
- "PySide2.QtGui.QTextBlock.charFormat": (),
- "PySide2.QtGui.QTextBlock.charFormatIndex": (),
- "PySide2.QtGui.QTextBlock.clearLayout": (),
- "PySide2.QtGui.QTextBlock.contains": ('int',),
- "PySide2.QtGui.QTextBlock.document": (),
- "PySide2.QtGui.QTextBlock.end": (),
- "PySide2.QtGui.QTextBlock.firstLineNumber": (),
- "PySide2.QtGui.QTextBlock.fragmentIndex": (),
- "PySide2.QtGui.QTextBlock.isValid": (),
- "PySide2.QtGui.QTextBlock.isVisible": (),
- "PySide2.QtGui.QTextBlock.layout": (),
- "PySide2.QtGui.QTextBlock.length": (),
- "PySide2.QtGui.QTextBlock.lineCount": (),
- "PySide2.QtGui.QTextBlock.position": (),
- "PySide2.QtGui.QTextBlock.previous": (),
- "PySide2.QtGui.QTextBlock.revision": (),
- "PySide2.QtGui.QTextBlock.setLineCount": ('int',),
- "PySide2.QtGui.QTextBlock.setRevision": ('int',),
- "PySide2.QtGui.QTextBlock.setUserData": ('PySide2.QtGui.QTextBlockUserData',),
- "PySide2.QtGui.QTextBlock.setUserState": ('int',),
- "PySide2.QtGui.QTextBlock.setVisible": ('bool',),
- "PySide2.QtGui.QTextBlock.text": (),
- "PySide2.QtGui.QTextBlock.textDirection": (),
- "PySide2.QtGui.QTextBlock.textFormats": (),
- "PySide2.QtGui.QTextBlock.textList": (),
- "PySide2.QtGui.QTextBlock.userData": (),
- "PySide2.QtGui.QTextBlock.userState": (),
-# class PySide2.QtGui.QTextBlockFormat:
-# class PySide2.QtGui.QTextBlockFormat.LineHeightTypes:
-# class PySide2.QtGui.QTextBlockFormat.MarkerType:
- "PySide2.QtGui.QTextBlockFormat.__init__": [(), ('PySide2.QtGui.QTextBlockFormat',), ('PySide2.QtGui.QTextFormat',)],
- "PySide2.QtGui.QTextBlockFormat.__copy__": (),
- "PySide2.QtGui.QTextBlockFormat.alignment": (),
- "PySide2.QtGui.QTextBlockFormat.bottomMargin": (),
- "PySide2.QtGui.QTextBlockFormat.headingLevel": (),
- "PySide2.QtGui.QTextBlockFormat.indent": (),
- "PySide2.QtGui.QTextBlockFormat.isValid": (),
- "PySide2.QtGui.QTextBlockFormat.leftMargin": (),
- "PySide2.QtGui.QTextBlockFormat.lineHeight": [(), ('float', 'float')],
- "PySide2.QtGui.QTextBlockFormat.lineHeightType": (),
- "PySide2.QtGui.QTextBlockFormat.marker": (),
- "PySide2.QtGui.QTextBlockFormat.nonBreakableLines": (),
- "PySide2.QtGui.QTextBlockFormat.pageBreakPolicy": (),
- "PySide2.QtGui.QTextBlockFormat.rightMargin": (),
- "PySide2.QtGui.QTextBlockFormat.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtGui.QTextBlockFormat.setBottomMargin": ('float',),
- "PySide2.QtGui.QTextBlockFormat.setHeadingLevel": ('int',),
- "PySide2.QtGui.QTextBlockFormat.setIndent": ('int',),
- "PySide2.QtGui.QTextBlockFormat.setLeftMargin": ('float',),
- "PySide2.QtGui.QTextBlockFormat.setLineHeight": ('float', 'int'),
- "PySide2.QtGui.QTextBlockFormat.setMarker": ('PySide2.QtGui.QTextBlockFormat.MarkerType',),
- "PySide2.QtGui.QTextBlockFormat.setNonBreakableLines": ('bool',),
- "PySide2.QtGui.QTextBlockFormat.setPageBreakPolicy": ('PySide2.QtGui.QTextFormat.PageBreakFlags',),
- "PySide2.QtGui.QTextBlockFormat.setRightMargin": ('float',),
- "PySide2.QtGui.QTextBlockFormat.setTabPositions": ('typing.Sequence[PySide2.QtGui.QTextOption.Tab]',),
- "PySide2.QtGui.QTextBlockFormat.setTextIndent": ('float',),
- "PySide2.QtGui.QTextBlockFormat.setTopMargin": ('float',),
- "PySide2.QtGui.QTextBlockFormat.tabPositions": (),
- "PySide2.QtGui.QTextBlockFormat.textIndent": (),
- "PySide2.QtGui.QTextBlockFormat.topMargin": (),
-# class PySide2.QtGui.QTextBlockGroup:
- "PySide2.QtGui.QTextBlockGroup.__init__": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtGui.QTextBlockGroup.blockFormatChanged": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtGui.QTextBlockGroup.blockInserted": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtGui.QTextBlockGroup.blockList": (),
- "PySide2.QtGui.QTextBlockGroup.blockRemoved": ('PySide2.QtGui.QTextBlock',),
-# class PySide2.QtGui.QTextBlockUserData:
- "PySide2.QtGui.QTextBlockUserData.__init__": (),
-# class PySide2.QtGui.QTextCharFormat:
-# class PySide2.QtGui.QTextCharFormat.FontPropertiesInheritanceBehavior:
-# class PySide2.QtGui.QTextCharFormat.UnderlineStyle:
-# class PySide2.QtGui.QTextCharFormat.VerticalAlignment:
- "PySide2.QtGui.QTextCharFormat.__init__": [(), ('PySide2.QtGui.QTextCharFormat',), ('PySide2.QtGui.QTextFormat',)],
- "PySide2.QtGui.QTextCharFormat.__copy__": (),
- "PySide2.QtGui.QTextCharFormat.anchorHref": (),
- "PySide2.QtGui.QTextCharFormat.anchorName": (),
- "PySide2.QtGui.QTextCharFormat.anchorNames": (),
- "PySide2.QtGui.QTextCharFormat.font": (),
- "PySide2.QtGui.QTextCharFormat.fontCapitalization": (),
- "PySide2.QtGui.QTextCharFormat.fontFamilies": (),
- "PySide2.QtGui.QTextCharFormat.fontFamily": (),
- "PySide2.QtGui.QTextCharFormat.fontFixedPitch": (),
- "PySide2.QtGui.QTextCharFormat.fontHintingPreference": (),
- "PySide2.QtGui.QTextCharFormat.fontItalic": (),
- "PySide2.QtGui.QTextCharFormat.fontKerning": (),
- "PySide2.QtGui.QTextCharFormat.fontLetterSpacing": (),
- "PySide2.QtGui.QTextCharFormat.fontLetterSpacingType": (),
- "PySide2.QtGui.QTextCharFormat.fontOverline": (),
- "PySide2.QtGui.QTextCharFormat.fontPointSize": (),
- "PySide2.QtGui.QTextCharFormat.fontStretch": (),
- "PySide2.QtGui.QTextCharFormat.fontStrikeOut": (),
- "PySide2.QtGui.QTextCharFormat.fontStyleHint": (),
- "PySide2.QtGui.QTextCharFormat.fontStyleName": (),
- "PySide2.QtGui.QTextCharFormat.fontStyleStrategy": (),
- "PySide2.QtGui.QTextCharFormat.fontUnderline": (),
- "PySide2.QtGui.QTextCharFormat.fontWeight": (),
- "PySide2.QtGui.QTextCharFormat.fontWordSpacing": (),
- "PySide2.QtGui.QTextCharFormat.isAnchor": (),
- "PySide2.QtGui.QTextCharFormat.isValid": (),
- "PySide2.QtGui.QTextCharFormat.setAnchor": ('bool',),
- "PySide2.QtGui.QTextCharFormat.setAnchorHref": ('str',),
- "PySide2.QtGui.QTextCharFormat.setAnchorName": ('str',),
- "PySide2.QtGui.QTextCharFormat.setAnchorNames": ('typing.Sequence[str]',),
- "PySide2.QtGui.QTextCharFormat.setFont": [('PySide2.QtGui.QFont',), ('PySide2.QtGui.QFont', 'PySide2.QtGui.QTextCharFormat.FontPropertiesInheritanceBehavior')],
- "PySide2.QtGui.QTextCharFormat.setFontCapitalization": ('PySide2.QtGui.QFont.Capitalization',),
- "PySide2.QtGui.QTextCharFormat.setFontFamilies": ('typing.Sequence[str]',),
- "PySide2.QtGui.QTextCharFormat.setFontFamily": ('str',),
- "PySide2.QtGui.QTextCharFormat.setFontFixedPitch": ('bool',),
- "PySide2.QtGui.QTextCharFormat.setFontHintingPreference": ('PySide2.QtGui.QFont.HintingPreference',),
- "PySide2.QtGui.QTextCharFormat.setFontItalic": ('bool',),
- "PySide2.QtGui.QTextCharFormat.setFontKerning": ('bool',),
- "PySide2.QtGui.QTextCharFormat.setFontLetterSpacing": ('float',),
- "PySide2.QtGui.QTextCharFormat.setFontLetterSpacingType": ('PySide2.QtGui.QFont.SpacingType',),
- "PySide2.QtGui.QTextCharFormat.setFontOverline": ('bool',),
- "PySide2.QtGui.QTextCharFormat.setFontPointSize": ('float',),
- "PySide2.QtGui.QTextCharFormat.setFontStretch": ('int',),
- "PySide2.QtGui.QTextCharFormat.setFontStrikeOut": ('bool',),
- "PySide2.QtGui.QTextCharFormat.setFontStyleHint": ('PySide2.QtGui.QFont.StyleHint', 'PySide2.QtGui.QFont.StyleStrategy'),
- "PySide2.QtGui.QTextCharFormat.setFontStyleName": ('str',),
- "PySide2.QtGui.QTextCharFormat.setFontStyleStrategy": ('PySide2.QtGui.QFont.StyleStrategy',),
- "PySide2.QtGui.QTextCharFormat.setFontUnderline": ('bool',),
- "PySide2.QtGui.QTextCharFormat.setFontWeight": ('int',),
- "PySide2.QtGui.QTextCharFormat.setFontWordSpacing": ('float',),
- "PySide2.QtGui.QTextCharFormat.setTableCellColumnSpan": ('int',),
- "PySide2.QtGui.QTextCharFormat.setTableCellRowSpan": ('int',),
- "PySide2.QtGui.QTextCharFormat.setTextOutline": ('PySide2.QtGui.QPen',),
- "PySide2.QtGui.QTextCharFormat.setToolTip": ('str',),
- "PySide2.QtGui.QTextCharFormat.setUnderlineColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtGui.QTextCharFormat.setUnderlineStyle": ('PySide2.QtGui.QTextCharFormat.UnderlineStyle',),
- "PySide2.QtGui.QTextCharFormat.setVerticalAlignment": ('PySide2.QtGui.QTextCharFormat.VerticalAlignment',),
- "PySide2.QtGui.QTextCharFormat.tableCellColumnSpan": (),
- "PySide2.QtGui.QTextCharFormat.tableCellRowSpan": (),
- "PySide2.QtGui.QTextCharFormat.textOutline": (),
- "PySide2.QtGui.QTextCharFormat.toolTip": (),
- "PySide2.QtGui.QTextCharFormat.underlineColor": (),
- "PySide2.QtGui.QTextCharFormat.underlineStyle": (),
- "PySide2.QtGui.QTextCharFormat.verticalAlignment": (),
-# class PySide2.QtGui.QTextCursor:
-# class PySide2.QtGui.QTextCursor.MoveMode:
-# class PySide2.QtGui.QTextCursor.MoveOperation:
-# class PySide2.QtGui.QTextCursor.SelectionType:
- "PySide2.QtGui.QTextCursor.__init__": [(), ('PySide2.QtGui.QTextBlock',), ('PySide2.QtGui.QTextCursor',), ('PySide2.QtGui.QTextDocument',), ('PySide2.QtGui.QTextFrame',)],
- "PySide2.QtGui.QTextCursor.__copy__": (),
- "PySide2.QtGui.QTextCursor.anchor": (),
- "PySide2.QtGui.QTextCursor.atBlockEnd": (),
- "PySide2.QtGui.QTextCursor.atBlockStart": (),
- "PySide2.QtGui.QTextCursor.atEnd": (),
- "PySide2.QtGui.QTextCursor.atStart": (),
- "PySide2.QtGui.QTextCursor.beginEditBlock": (),
- "PySide2.QtGui.QTextCursor.block": (),
- "PySide2.QtGui.QTextCursor.blockCharFormat": (),
- "PySide2.QtGui.QTextCursor.blockFormat": (),
- "PySide2.QtGui.QTextCursor.blockNumber": (),
- "PySide2.QtGui.QTextCursor.charFormat": (),
- "PySide2.QtGui.QTextCursor.clearSelection": (),
- "PySide2.QtGui.QTextCursor.columnNumber": (),
- "PySide2.QtGui.QTextCursor.createList": [('PySide2.QtGui.QTextListFormat',), ('PySide2.QtGui.QTextListFormat.Style',)],
- "PySide2.QtGui.QTextCursor.currentFrame": (),
- "PySide2.QtGui.QTextCursor.currentList": (),
- "PySide2.QtGui.QTextCursor.currentTable": (),
- "PySide2.QtGui.QTextCursor.deleteChar": (),
- "PySide2.QtGui.QTextCursor.deletePreviousChar": (),
- "PySide2.QtGui.QTextCursor.document": (),
- "PySide2.QtGui.QTextCursor.endEditBlock": (),
- "PySide2.QtGui.QTextCursor.hasComplexSelection": (),
- "PySide2.QtGui.QTextCursor.hasSelection": (),
- "PySide2.QtGui.QTextCursor.insertBlock": [(), ('PySide2.QtGui.QTextBlockFormat',), ('PySide2.QtGui.QTextBlockFormat', 'PySide2.QtGui.QTextCharFormat')],
- "PySide2.QtGui.QTextCursor.insertFragment": ('PySide2.QtGui.QTextDocumentFragment',),
- "PySide2.QtGui.QTextCursor.insertFrame": ('PySide2.QtGui.QTextFrameFormat',),
- "PySide2.QtGui.QTextCursor.insertHtml": ('str',),
- "PySide2.QtGui.QTextCursor.insertImage": [('PySide2.QtGui.QImage', 'str'), ('PySide2.QtGui.QTextImageFormat',), ('PySide2.QtGui.QTextImageFormat', 'PySide2.QtGui.QTextFrameFormat.Position'), ('str',)],
- "PySide2.QtGui.QTextCursor.insertList": [('PySide2.QtGui.QTextListFormat',), ('PySide2.QtGui.QTextListFormat.Style',)],
- "PySide2.QtGui.QTextCursor.insertTable": [('int', 'int'), ('int', 'int', 'PySide2.QtGui.QTextTableFormat')],
- "PySide2.QtGui.QTextCursor.insertText": [('str',), ('str', 'PySide2.QtGui.QTextCharFormat')],
- "PySide2.QtGui.QTextCursor.isCopyOf": ('PySide2.QtGui.QTextCursor',),
- "PySide2.QtGui.QTextCursor.isNull": (),
- "PySide2.QtGui.QTextCursor.joinPreviousEditBlock": (),
- "PySide2.QtGui.QTextCursor.keepPositionOnInsert": (),
- "PySide2.QtGui.QTextCursor.mergeBlockCharFormat": ('PySide2.QtGui.QTextCharFormat',),
- "PySide2.QtGui.QTextCursor.mergeBlockFormat": ('PySide2.QtGui.QTextBlockFormat',),
- "PySide2.QtGui.QTextCursor.mergeCharFormat": ('PySide2.QtGui.QTextCharFormat',),
- "PySide2.QtGui.QTextCursor.movePosition": ('PySide2.QtGui.QTextCursor.MoveOperation', 'PySide2.QtGui.QTextCursor.MoveMode', 'int'),
- "PySide2.QtGui.QTextCursor.position": (),
- "PySide2.QtGui.QTextCursor.positionInBlock": (),
- "PySide2.QtGui.QTextCursor.removeSelectedText": (),
- "PySide2.QtGui.QTextCursor.select": ('PySide2.QtGui.QTextCursor.SelectionType',),
- "PySide2.QtGui.QTextCursor.selectedTableCells": (),
- "PySide2.QtGui.QTextCursor.selectedText": (),
- "PySide2.QtGui.QTextCursor.selection": (),
- "PySide2.QtGui.QTextCursor.selectionEnd": (),
- "PySide2.QtGui.QTextCursor.selectionStart": (),
- "PySide2.QtGui.QTextCursor.setBlockCharFormat": ('PySide2.QtGui.QTextCharFormat',),
- "PySide2.QtGui.QTextCursor.setBlockFormat": ('PySide2.QtGui.QTextBlockFormat',),
- "PySide2.QtGui.QTextCursor.setCharFormat": ('PySide2.QtGui.QTextCharFormat',),
- "PySide2.QtGui.QTextCursor.setKeepPositionOnInsert": ('bool',),
- "PySide2.QtGui.QTextCursor.setPosition": ('int', 'PySide2.QtGui.QTextCursor.MoveMode'),
- "PySide2.QtGui.QTextCursor.setVerticalMovementX": ('int',),
- "PySide2.QtGui.QTextCursor.setVisualNavigation": ('bool',),
- "PySide2.QtGui.QTextCursor.swap": ('PySide2.QtGui.QTextCursor',),
- "PySide2.QtGui.QTextCursor.verticalMovementX": (),
- "PySide2.QtGui.QTextCursor.visualNavigation": (),
-# class PySide2.QtGui.QTextDocument:
-# class PySide2.QtGui.QTextDocument.FindFlag:
-# class PySide2.QtGui.QTextDocument.FindFlags:
-# class PySide2.QtGui.QTextDocument.MarkdownFeature:
-# class PySide2.QtGui.QTextDocument.MarkdownFeatures:
-# class PySide2.QtGui.QTextDocument.MetaInformation:
-# class PySide2.QtGui.QTextDocument.ResourceType:
-# class PySide2.QtGui.QTextDocument.Stacks:
- "PySide2.QtGui.QTextDocument.__init__": [('PySide2.QtCore.QObject',), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtGui.QTextDocument.addResource": ('int', 'PySide2.QtCore.QUrl', 'typing.Any'),
- "PySide2.QtGui.QTextDocument.adjustSize": (),
- "PySide2.QtGui.QTextDocument.allFormats": (),
- "PySide2.QtGui.QTextDocument.availableRedoSteps": (),
- "PySide2.QtGui.QTextDocument.availableUndoSteps": (),
- "PySide2.QtGui.QTextDocument.baseUrl": (),
- "PySide2.QtGui.QTextDocument.begin": (),
- "PySide2.QtGui.QTextDocument.blockCount": (),
- "PySide2.QtGui.QTextDocument.characterAt": ('int',),
- "PySide2.QtGui.QTextDocument.characterCount": (),
- "PySide2.QtGui.QTextDocument.clear": (),
- "PySide2.QtGui.QTextDocument.clearUndoRedoStacks": ('PySide2.QtGui.QTextDocument.Stacks',),
- "PySide2.QtGui.QTextDocument.clone": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QTextDocument.createObject": ('PySide2.QtGui.QTextFormat',),
- "PySide2.QtGui.QTextDocument.defaultCursorMoveStyle": (),
- "PySide2.QtGui.QTextDocument.defaultFont": (),
- "PySide2.QtGui.QTextDocument.defaultStyleSheet": (),
- "PySide2.QtGui.QTextDocument.defaultTextOption": (),
- "PySide2.QtGui.QTextDocument.documentLayout": (),
- "PySide2.QtGui.QTextDocument.documentMargin": (),
- "PySide2.QtGui.QTextDocument.drawContents": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF'),
- "PySide2.QtGui.QTextDocument.end": (),
- "PySide2.QtGui.QTextDocument.find": [('PySide2.QtCore.QRegExp', 'PySide2.QtGui.QTextCursor', 'PySide2.QtGui.QTextDocument.FindFlags'), ('PySide2.QtCore.QRegExp', 'int', 'PySide2.QtGui.QTextDocument.FindFlags'), ('PySide2.QtCore.QRegularExpression', 'PySide2.QtGui.QTextCursor', 'PySide2.QtGui.QTextDocument.FindFlags'), ('PySide2.QtCore.QRegularExpression', 'int', 'PySide2.QtGui.QTextDocument.FindFlags'), ('str', 'PySide2.QtGui.QTextCursor', 'PySide2.QtGui.QTextDocument.FindFlags'), ('str', 'int', 'PySide2.QtGui.QTextDocument.FindFlags')],
- "PySide2.QtGui.QTextDocument.findBlock": ('int',),
- "PySide2.QtGui.QTextDocument.findBlockByLineNumber": ('int',),
- "PySide2.QtGui.QTextDocument.findBlockByNumber": ('int',),
- "PySide2.QtGui.QTextDocument.firstBlock": (),
- "PySide2.QtGui.QTextDocument.frameAt": ('int',),
- "PySide2.QtGui.QTextDocument.idealWidth": (),
- "PySide2.QtGui.QTextDocument.indentWidth": (),
- "PySide2.QtGui.QTextDocument.isEmpty": (),
- "PySide2.QtGui.QTextDocument.isModified": (),
- "PySide2.QtGui.QTextDocument.isRedoAvailable": (),
- "PySide2.QtGui.QTextDocument.isUndoAvailable": (),
- "PySide2.QtGui.QTextDocument.isUndoRedoEnabled": (),
- "PySide2.QtGui.QTextDocument.lastBlock": (),
- "PySide2.QtGui.QTextDocument.lineCount": (),
- "PySide2.QtGui.QTextDocument.loadResource": ('int', 'PySide2.QtCore.QUrl'),
- "PySide2.QtGui.QTextDocument.markContentsDirty": ('int', 'int'),
- "PySide2.QtGui.QTextDocument.maximumBlockCount": (),
- "PySide2.QtGui.QTextDocument.metaInformation": ('PySide2.QtGui.QTextDocument.MetaInformation',),
- "PySide2.QtGui.QTextDocument.object": ('int',),
- "PySide2.QtGui.QTextDocument.objectForFormat": ('PySide2.QtGui.QTextFormat',),
- "PySide2.QtGui.QTextDocument.pageCount": (),
- "PySide2.QtGui.QTextDocument.pageSize": (),
- "PySide2.QtGui.QTextDocument.print_": ('PySide2.QtGui.QPagedPaintDevice',),
- "PySide2.QtGui.QTextDocument.redo": [(), ('PySide2.QtGui.QTextCursor',)],
- "PySide2.QtGui.QTextDocument.resource": ('int', 'PySide2.QtCore.QUrl'),
- "PySide2.QtGui.QTextDocument.revision": (),
- "PySide2.QtGui.QTextDocument.rootFrame": (),
- "PySide2.QtGui.QTextDocument.setBaseUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtGui.QTextDocument.setDefaultCursorMoveStyle": ('PySide2.QtCore.Qt.CursorMoveStyle',),
- "PySide2.QtGui.QTextDocument.setDefaultFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtGui.QTextDocument.setDefaultStyleSheet": ('str',),
- "PySide2.QtGui.QTextDocument.setDefaultTextOption": ('PySide2.QtGui.QTextOption',),
- "PySide2.QtGui.QTextDocument.setDocumentLayout": ('PySide2.QtGui.QAbstractTextDocumentLayout',),
- "PySide2.QtGui.QTextDocument.setDocumentMargin": ('float',),
- "PySide2.QtGui.QTextDocument.setHtml": ('str',),
- "PySide2.QtGui.QTextDocument.setIndentWidth": ('float',),
- "PySide2.QtGui.QTextDocument.setMarkdown": ('str', 'PySide2.QtGui.QTextDocument.MarkdownFeatures'),
- "PySide2.QtGui.QTextDocument.setMaximumBlockCount": ('int',),
- "PySide2.QtGui.QTextDocument.setMetaInformation": ('PySide2.QtGui.QTextDocument.MetaInformation', 'str'),
- "PySide2.QtGui.QTextDocument.setModified": ('bool',),
- "PySide2.QtGui.QTextDocument.setPageSize": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtGui.QTextDocument.setPlainText": ('str',),
- "PySide2.QtGui.QTextDocument.setTextWidth": ('float',),
- "PySide2.QtGui.QTextDocument.setUndoRedoEnabled": ('bool',),
- "PySide2.QtGui.QTextDocument.setUseDesignMetrics": ('bool',),
- "PySide2.QtGui.QTextDocument.size": (),
- "PySide2.QtGui.QTextDocument.textWidth": (),
- "PySide2.QtGui.QTextDocument.toHtml": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QTextDocument.toMarkdown": ('PySide2.QtGui.QTextDocument.MarkdownFeatures',),
- "PySide2.QtGui.QTextDocument.toPlainText": (),
- "PySide2.QtGui.QTextDocument.toRawText": (),
- "PySide2.QtGui.QTextDocument.undo": [(), ('PySide2.QtGui.QTextCursor',)],
- "PySide2.QtGui.QTextDocument.useDesignMetrics": (),
-# class PySide2.QtGui.QTextDocumentFragment:
- "PySide2.QtGui.QTextDocumentFragment.__init__": [(), ('PySide2.QtGui.QTextCursor',), ('PySide2.QtGui.QTextDocument',), ('PySide2.QtGui.QTextDocumentFragment',)],
- "PySide2.QtGui.QTextDocumentFragment.__copy__": (),
- "PySide2.QtGui.QTextDocumentFragment.fromHtml": [('str',), ('str', 'PySide2.QtGui.QTextDocument')],
- "PySide2.QtGui.QTextDocumentFragment.fromPlainText": ('str',),
- "PySide2.QtGui.QTextDocumentFragment.isEmpty": (),
- "PySide2.QtGui.QTextDocumentFragment.toHtml": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QTextDocumentFragment.toPlainText": (),
-# class PySide2.QtGui.QTextDocumentWriter:
- "PySide2.QtGui.QTextDocumentWriter.__init__": [(), ('PySide2.QtCore.QIODevice', 'PySide2.QtCore.QByteArray'), ('str', 'PySide2.QtCore.QByteArray')],
- "PySide2.QtGui.QTextDocumentWriter.codec": (),
- "PySide2.QtGui.QTextDocumentWriter.device": (),
- "PySide2.QtGui.QTextDocumentWriter.fileName": (),
- "PySide2.QtGui.QTextDocumentWriter.format": (),
- "PySide2.QtGui.QTextDocumentWriter.setCodec": ('PySide2.QtCore.QTextCodec',),
- "PySide2.QtGui.QTextDocumentWriter.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtGui.QTextDocumentWriter.setFileName": ('str',),
- "PySide2.QtGui.QTextDocumentWriter.setFormat": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QTextDocumentWriter.supportedDocumentFormats": (),
- "PySide2.QtGui.QTextDocumentWriter.write": [('PySide2.QtGui.QTextDocument',), ('PySide2.QtGui.QTextDocumentFragment',)],
-# class PySide2.QtGui.QTextFormat:
-# class PySide2.QtGui.QTextFormat.FormatType:
-# class PySide2.QtGui.QTextFormat.ObjectTypes:
-# class PySide2.QtGui.QTextFormat.PageBreakFlag:
-# class PySide2.QtGui.QTextFormat.PageBreakFlags:
-# class PySide2.QtGui.QTextFormat.Property:
- "PySide2.QtGui.QTextFormat.__init__": [(), ('PySide2.QtGui.QTextFormat',), ('int',)],
- "PySide2.QtGui.QTextFormat.__copy__": (),
- "PySide2.QtGui.QTextFormat.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QTextFormat.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QTextFormat.background": (),
- "PySide2.QtGui.QTextFormat.boolProperty": ('int',),
- "PySide2.QtGui.QTextFormat.brushProperty": ('int',),
- "PySide2.QtGui.QTextFormat.clearBackground": (),
- "PySide2.QtGui.QTextFormat.clearForeground": (),
- "PySide2.QtGui.QTextFormat.clearProperty": ('int',),
- "PySide2.QtGui.QTextFormat.colorProperty": ('int',),
- "PySide2.QtGui.QTextFormat.doubleProperty": ('int',),
- "PySide2.QtGui.QTextFormat.foreground": (),
- "PySide2.QtGui.QTextFormat.hasProperty": ('int',),
- "PySide2.QtGui.QTextFormat.intProperty": ('int',),
- "PySide2.QtGui.QTextFormat.isBlockFormat": (),
- "PySide2.QtGui.QTextFormat.isCharFormat": (),
- "PySide2.QtGui.QTextFormat.isEmpty": (),
- "PySide2.QtGui.QTextFormat.isFrameFormat": (),
- "PySide2.QtGui.QTextFormat.isImageFormat": (),
- "PySide2.QtGui.QTextFormat.isListFormat": (),
- "PySide2.QtGui.QTextFormat.isTableCellFormat": (),
- "PySide2.QtGui.QTextFormat.isTableFormat": (),
- "PySide2.QtGui.QTextFormat.isValid": (),
- "PySide2.QtGui.QTextFormat.layoutDirection": (),
- "PySide2.QtGui.QTextFormat.lengthProperty": ('int',),
- "PySide2.QtGui.QTextFormat.lengthVectorProperty": ('int',),
- "PySide2.QtGui.QTextFormat.merge": ('PySide2.QtGui.QTextFormat',),
- "PySide2.QtGui.QTextFormat.objectIndex": (),
- "PySide2.QtGui.QTextFormat.objectType": (),
- "PySide2.QtGui.QTextFormat.penProperty": ('int',),
- "PySide2.QtGui.QTextFormat.properties": (),
- "PySide2.QtGui.QTextFormat.property": ('int',),
- "PySide2.QtGui.QTextFormat.propertyCount": (),
- "PySide2.QtGui.QTextFormat.setBackground": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QTextFormat.setForeground": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QTextFormat.setLayoutDirection": ('PySide2.QtCore.Qt.LayoutDirection',),
- "PySide2.QtGui.QTextFormat.setObjectIndex": ('int',),
- "PySide2.QtGui.QTextFormat.setObjectType": ('int',),
- "PySide2.QtGui.QTextFormat.setProperty": [('int', 'typing.Any'), ('int', 'typing.List[PySide2.QtGui.QTextLength]')],
- "PySide2.QtGui.QTextFormat.stringProperty": ('int',),
- "PySide2.QtGui.QTextFormat.swap": ('PySide2.QtGui.QTextFormat',),
- "PySide2.QtGui.QTextFormat.toBlockFormat": (),
- "PySide2.QtGui.QTextFormat.toCharFormat": (),
- "PySide2.QtGui.QTextFormat.toFrameFormat": (),
- "PySide2.QtGui.QTextFormat.toImageFormat": (),
- "PySide2.QtGui.QTextFormat.toListFormat": (),
- "PySide2.QtGui.QTextFormat.toTableCellFormat": (),
- "PySide2.QtGui.QTextFormat.toTableFormat": (),
- "PySide2.QtGui.QTextFormat.type": (),
-# class PySide2.QtGui.QTextFragment:
- "PySide2.QtGui.QTextFragment.__init__": [(), ('PySide2.QtGui.QTextFragment',)],
- "PySide2.QtGui.QTextFragment.__copy__": (),
- "PySide2.QtGui.QTextFragment.charFormat": (),
- "PySide2.QtGui.QTextFragment.charFormatIndex": (),
- "PySide2.QtGui.QTextFragment.contains": ('int',),
- "PySide2.QtGui.QTextFragment.isValid": (),
- "PySide2.QtGui.QTextFragment.length": (),
- "PySide2.QtGui.QTextFragment.position": (),
- "PySide2.QtGui.QTextFragment.text": (),
-# class PySide2.QtGui.QTextFrame:
-# class PySide2.QtGui.QTextFrame.iterator:
- "PySide2.QtGui.QTextFrame.iterator.__init__": [(), ('PySide2.QtGui.QTextFrame.iterator',)],
- "PySide2.QtGui.QTextFrame.iterator.__copy__": (),
- "PySide2.QtGui.QTextFrame.iterator.__iadd__": ('int',),
- "PySide2.QtGui.QTextFrame.iterator.__isub__": ('int',),
- "PySide2.QtGui.QTextFrame.iterator.__iter__": (),
- "PySide2.QtGui.QTextFrame.iterator.atEnd": (),
- "PySide2.QtGui.QTextFrame.iterator.currentBlock": (),
- "PySide2.QtGui.QTextFrame.iterator.currentFrame": (),
- "PySide2.QtGui.QTextFrame.iterator.parentFrame": (),
- "PySide2.QtGui.QTextFrame.__init__": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtGui.QTextFrame.__iter__": (),
- "PySide2.QtGui.QTextFrame.begin": (),
- "PySide2.QtGui.QTextFrame.childFrames": (),
- "PySide2.QtGui.QTextFrame.end": (),
- "PySide2.QtGui.QTextFrame.firstCursorPosition": (),
- "PySide2.QtGui.QTextFrame.firstPosition": (),
- "PySide2.QtGui.QTextFrame.frameFormat": (),
- "PySide2.QtGui.QTextFrame.lastCursorPosition": (),
- "PySide2.QtGui.QTextFrame.lastPosition": (),
- "PySide2.QtGui.QTextFrame.parentFrame": (),
- "PySide2.QtGui.QTextFrame.setFrameFormat": ('PySide2.QtGui.QTextFrameFormat',),
-# class PySide2.QtGui.QTextFrameFormat:
-# class PySide2.QtGui.QTextFrameFormat.BorderStyle:
-# class PySide2.QtGui.QTextFrameFormat.Position:
- "PySide2.QtGui.QTextFrameFormat.__init__": [(), ('PySide2.QtGui.QTextFormat',), ('PySide2.QtGui.QTextFrameFormat',)],
- "PySide2.QtGui.QTextFrameFormat.__copy__": (),
- "PySide2.QtGui.QTextFrameFormat.border": (),
- "PySide2.QtGui.QTextFrameFormat.borderBrush": (),
- "PySide2.QtGui.QTextFrameFormat.borderStyle": (),
- "PySide2.QtGui.QTextFrameFormat.bottomMargin": (),
- "PySide2.QtGui.QTextFrameFormat.height": (),
- "PySide2.QtGui.QTextFrameFormat.isValid": (),
- "PySide2.QtGui.QTextFrameFormat.leftMargin": (),
- "PySide2.QtGui.QTextFrameFormat.margin": (),
- "PySide2.QtGui.QTextFrameFormat.padding": (),
- "PySide2.QtGui.QTextFrameFormat.pageBreakPolicy": (),
- "PySide2.QtGui.QTextFrameFormat.position": (),
- "PySide2.QtGui.QTextFrameFormat.rightMargin": (),
- "PySide2.QtGui.QTextFrameFormat.setBorder": ('float',),
- "PySide2.QtGui.QTextFrameFormat.setBorderBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QTextFrameFormat.setBorderStyle": ('PySide2.QtGui.QTextFrameFormat.BorderStyle',),
- "PySide2.QtGui.QTextFrameFormat.setBottomMargin": ('float',),
- "PySide2.QtGui.QTextFrameFormat.setHeight": [('PySide2.QtGui.QTextLength',), ('float',)],
- "PySide2.QtGui.QTextFrameFormat.setLeftMargin": ('float',),
- "PySide2.QtGui.QTextFrameFormat.setMargin": ('float',),
- "PySide2.QtGui.QTextFrameFormat.setPadding": ('float',),
- "PySide2.QtGui.QTextFrameFormat.setPageBreakPolicy": ('PySide2.QtGui.QTextFormat.PageBreakFlags',),
- "PySide2.QtGui.QTextFrameFormat.setPosition": ('PySide2.QtGui.QTextFrameFormat.Position',),
- "PySide2.QtGui.QTextFrameFormat.setRightMargin": ('float',),
- "PySide2.QtGui.QTextFrameFormat.setTopMargin": ('float',),
- "PySide2.QtGui.QTextFrameFormat.setWidth": [('PySide2.QtGui.QTextLength',), ('float',)],
- "PySide2.QtGui.QTextFrameFormat.topMargin": (),
- "PySide2.QtGui.QTextFrameFormat.width": (),
-# class PySide2.QtGui.QTextImageFormat:
- "PySide2.QtGui.QTextImageFormat.__init__": [(), ('PySide2.QtGui.QTextFormat',), ('PySide2.QtGui.QTextImageFormat',)],
- "PySide2.QtGui.QTextImageFormat.__copy__": (),
- "PySide2.QtGui.QTextImageFormat.height": (),
- "PySide2.QtGui.QTextImageFormat.isValid": (),
- "PySide2.QtGui.QTextImageFormat.name": (),
- "PySide2.QtGui.QTextImageFormat.quality": (),
- "PySide2.QtGui.QTextImageFormat.setHeight": ('float',),
- "PySide2.QtGui.QTextImageFormat.setName": ('str',),
- "PySide2.QtGui.QTextImageFormat.setQuality": ('int',),
- "PySide2.QtGui.QTextImageFormat.setWidth": ('float',),
- "PySide2.QtGui.QTextImageFormat.width": (),
-# class PySide2.QtGui.QTextInlineObject:
- "PySide2.QtGui.QTextInlineObject.__init__": (),
- "PySide2.QtGui.QTextInlineObject.__copy__": (),
- "PySide2.QtGui.QTextInlineObject.ascent": (),
- "PySide2.QtGui.QTextInlineObject.descent": (),
- "PySide2.QtGui.QTextInlineObject.format": (),
- "PySide2.QtGui.QTextInlineObject.formatIndex": (),
- "PySide2.QtGui.QTextInlineObject.height": (),
- "PySide2.QtGui.QTextInlineObject.isValid": (),
- "PySide2.QtGui.QTextInlineObject.rect": (),
- "PySide2.QtGui.QTextInlineObject.setAscent": ('float',),
- "PySide2.QtGui.QTextInlineObject.setDescent": ('float',),
- "PySide2.QtGui.QTextInlineObject.setWidth": ('float',),
- "PySide2.QtGui.QTextInlineObject.textDirection": (),
- "PySide2.QtGui.QTextInlineObject.textPosition": (),
- "PySide2.QtGui.QTextInlineObject.width": (),
-# class PySide2.QtGui.QTextItem:
-# class PySide2.QtGui.QTextItem.RenderFlag:
-# class PySide2.QtGui.QTextItem.RenderFlags:
- "PySide2.QtGui.QTextItem.__init__": (),
- "PySide2.QtGui.QTextItem.ascent": (),
- "PySide2.QtGui.QTextItem.descent": (),
- "PySide2.QtGui.QTextItem.font": (),
- "PySide2.QtGui.QTextItem.renderFlags": (),
- "PySide2.QtGui.QTextItem.text": (),
- "PySide2.QtGui.QTextItem.width": (),
-# class PySide2.QtGui.QTextLayout:
-# class PySide2.QtGui.QTextLayout.CursorMode:
-# class PySide2.QtGui.QTextLayout.FormatRange:
- "PySide2.QtGui.QTextLayout.FormatRange.__init__": [(), ('PySide2.QtGui.QTextLayout.FormatRange',)],
- "PySide2.QtGui.QTextLayout.FormatRange.__copy__": (),
- "PySide2.QtGui.QTextLayout.__init__": [(), ('PySide2.QtGui.QTextBlock',), ('str',), ('str', 'PySide2.QtGui.QFont', 'PySide2.QtGui.QPaintDevice')],
- "PySide2.QtGui.QTextLayout.additionalFormats": (),
- "PySide2.QtGui.QTextLayout.beginLayout": (),
- "PySide2.QtGui.QTextLayout.boundingRect": (),
- "PySide2.QtGui.QTextLayout.cacheEnabled": (),
- "PySide2.QtGui.QTextLayout.clearAdditionalFormats": (),
- "PySide2.QtGui.QTextLayout.clearFormats": (),
- "PySide2.QtGui.QTextLayout.clearLayout": (),
- "PySide2.QtGui.QTextLayout.createLine": (),
- "PySide2.QtGui.QTextLayout.cursorMoveStyle": (),
- "PySide2.QtGui.QTextLayout.draw": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QPointF', 'typing.List[PySide2.QtGui.QTextLayout.FormatRange]', 'PySide2.QtCore.QRectF'),
- "PySide2.QtGui.QTextLayout.drawCursor": [('PySide2.QtGui.QPainter', 'PySide2.QtCore.QPointF', 'int'), ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QPointF', 'int', 'int')],
- "PySide2.QtGui.QTextLayout.endLayout": (),
- "PySide2.QtGui.QTextLayout.font": (),
- "PySide2.QtGui.QTextLayout.formats": (),
- "PySide2.QtGui.QTextLayout.isValidCursorPosition": ('int',),
- "PySide2.QtGui.QTextLayout.leftCursorPosition": ('int',),
- "PySide2.QtGui.QTextLayout.lineAt": ('int',),
- "PySide2.QtGui.QTextLayout.lineCount": (),
- "PySide2.QtGui.QTextLayout.lineForTextPosition": ('int',),
- "PySide2.QtGui.QTextLayout.maximumWidth": (),
- "PySide2.QtGui.QTextLayout.minimumWidth": (),
- "PySide2.QtGui.QTextLayout.nextCursorPosition": ('int', 'PySide2.QtGui.QTextLayout.CursorMode'),
- "PySide2.QtGui.QTextLayout.position": (),
- "PySide2.QtGui.QTextLayout.preeditAreaPosition": (),
- "PySide2.QtGui.QTextLayout.preeditAreaText": (),
- "PySide2.QtGui.QTextLayout.previousCursorPosition": ('int', 'PySide2.QtGui.QTextLayout.CursorMode'),
- "PySide2.QtGui.QTextLayout.rightCursorPosition": ('int',),
- "PySide2.QtGui.QTextLayout.setAdditionalFormats": ('typing.Sequence[PySide2.QtGui.QTextLayout.FormatRange]',),
- "PySide2.QtGui.QTextLayout.setCacheEnabled": ('bool',),
- "PySide2.QtGui.QTextLayout.setCursorMoveStyle": ('PySide2.QtCore.Qt.CursorMoveStyle',),
- "PySide2.QtGui.QTextLayout.setFlags": ('int',),
- "PySide2.QtGui.QTextLayout.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtGui.QTextLayout.setFormats": ('typing.List[PySide2.QtGui.QTextLayout.FormatRange]',),
- "PySide2.QtGui.QTextLayout.setPosition": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTextLayout.setPreeditArea": ('int', 'str'),
- "PySide2.QtGui.QTextLayout.setRawFont": ('PySide2.QtGui.QRawFont',),
- "PySide2.QtGui.QTextLayout.setText": ('str',),
- "PySide2.QtGui.QTextLayout.setTextOption": ('PySide2.QtGui.QTextOption',),
- "PySide2.QtGui.QTextLayout.text": (),
- "PySide2.QtGui.QTextLayout.textOption": (),
-# class PySide2.QtGui.QTextLength:
-# class PySide2.QtGui.QTextLength.Type:
- "PySide2.QtGui.QTextLength.__init__": [(), ('PySide2.QtGui.QTextLength',), ('PySide2.QtGui.QTextLength.Type', 'float')],
- "PySide2.QtGui.QTextLength.__copy__": (),
- "PySide2.QtGui.QTextLength.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QTextLength.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QTextLength.rawValue": (),
- "PySide2.QtGui.QTextLength.type": (),
- "PySide2.QtGui.QTextLength.value": ('float',),
-# class PySide2.QtGui.QTextLine:
-# class PySide2.QtGui.QTextLine.CursorPosition:
-# class PySide2.QtGui.QTextLine.Edge:
- "PySide2.QtGui.QTextLine.__init__": (),
- "PySide2.QtGui.QTextLine.__copy__": (),
- "PySide2.QtGui.QTextLine.ascent": (),
- "PySide2.QtGui.QTextLine.cursorToX": ('int', 'PySide2.QtGui.QTextLine.Edge'),
- "PySide2.QtGui.QTextLine.descent": (),
- "PySide2.QtGui.QTextLine.draw": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QPointF', 'PySide2.QtGui.QTextLayout.FormatRange'),
- "PySide2.QtGui.QTextLine.height": (),
- "PySide2.QtGui.QTextLine.horizontalAdvance": (),
- "PySide2.QtGui.QTextLine.isValid": (),
- "PySide2.QtGui.QTextLine.leading": (),
- "PySide2.QtGui.QTextLine.leadingIncluded": (),
- "PySide2.QtGui.QTextLine.lineNumber": (),
- "PySide2.QtGui.QTextLine.naturalTextRect": (),
- "PySide2.QtGui.QTextLine.naturalTextWidth": (),
- "PySide2.QtGui.QTextLine.position": (),
- "PySide2.QtGui.QTextLine.rect": (),
- "PySide2.QtGui.QTextLine.setLeadingIncluded": ('bool',),
- "PySide2.QtGui.QTextLine.setLineWidth": ('float',),
- "PySide2.QtGui.QTextLine.setNumColumns": [('int',), ('int', 'float')],
- "PySide2.QtGui.QTextLine.setPosition": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTextLine.textLength": (),
- "PySide2.QtGui.QTextLine.textStart": (),
- "PySide2.QtGui.QTextLine.width": (),
- "PySide2.QtGui.QTextLine.x": (),
- "PySide2.QtGui.QTextLine.xToCursor": ('float', 'PySide2.QtGui.QTextLine.CursorPosition'),
- "PySide2.QtGui.QTextLine.y": (),
-# class PySide2.QtGui.QTextList:
- "PySide2.QtGui.QTextList.__init__": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtGui.QTextList.add": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtGui.QTextList.count": (),
- "PySide2.QtGui.QTextList.format": (),
- "PySide2.QtGui.QTextList.item": ('int',),
- "PySide2.QtGui.QTextList.itemNumber": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtGui.QTextList.itemText": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtGui.QTextList.remove": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtGui.QTextList.removeItem": ('int',),
- "PySide2.QtGui.QTextList.setFormat": [('PySide2.QtGui.QTextFormat',), ('PySide2.QtGui.QTextListFormat',)],
-# class PySide2.QtGui.QTextListFormat:
-# class PySide2.QtGui.QTextListFormat.Style:
- "PySide2.QtGui.QTextListFormat.__init__": [(), ('PySide2.QtGui.QTextFormat',), ('PySide2.QtGui.QTextListFormat',)],
- "PySide2.QtGui.QTextListFormat.__copy__": (),
- "PySide2.QtGui.QTextListFormat.indent": (),
- "PySide2.QtGui.QTextListFormat.isValid": (),
- "PySide2.QtGui.QTextListFormat.numberPrefix": (),
- "PySide2.QtGui.QTextListFormat.numberSuffix": (),
- "PySide2.QtGui.QTextListFormat.setIndent": ('int',),
- "PySide2.QtGui.QTextListFormat.setNumberPrefix": ('str',),
- "PySide2.QtGui.QTextListFormat.setNumberSuffix": ('str',),
- "PySide2.QtGui.QTextListFormat.setStyle": ('PySide2.QtGui.QTextListFormat.Style',),
- "PySide2.QtGui.QTextListFormat.style": (),
-# class PySide2.QtGui.QTextObject:
- "PySide2.QtGui.QTextObject.__init__": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtGui.QTextObject.document": (),
- "PySide2.QtGui.QTextObject.format": (),
- "PySide2.QtGui.QTextObject.formatIndex": (),
- "PySide2.QtGui.QTextObject.objectIndex": (),
- "PySide2.QtGui.QTextObject.setFormat": ('PySide2.QtGui.QTextFormat',),
-# class PySide2.QtGui.QTextObjectInterface:
- "PySide2.QtGui.QTextObjectInterface.__init__": (),
- "PySide2.QtGui.QTextObjectInterface.drawObject": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF', 'PySide2.QtGui.QTextDocument', 'int', 'PySide2.QtGui.QTextFormat'),
- "PySide2.QtGui.QTextObjectInterface.intrinsicSize": ('PySide2.QtGui.QTextDocument', 'int', 'PySide2.QtGui.QTextFormat'),
-# class PySide2.QtGui.QTextOption:
-# class PySide2.QtGui.QTextOption.Flag:
-# class PySide2.QtGui.QTextOption.Flags:
-# class PySide2.QtGui.QTextOption.Tab:
- "PySide2.QtGui.QTextOption.Tab.__init__": [(), ('PySide2.QtGui.QTextOption.Tab',), ('float', 'PySide2.QtGui.QTextOption.TabType', 'str')],
- "PySide2.QtGui.QTextOption.Tab.__copy__": (),
-# class PySide2.QtGui.QTextOption.TabType:
-# class PySide2.QtGui.QTextOption.WrapMode:
- "PySide2.QtGui.QTextOption.__init__": [(), ('PySide2.QtCore.Qt.Alignment',), ('PySide2.QtGui.QTextOption',)],
- "PySide2.QtGui.QTextOption.__copy__": (),
- "PySide2.QtGui.QTextOption.alignment": (),
- "PySide2.QtGui.QTextOption.flags": (),
- "PySide2.QtGui.QTextOption.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtGui.QTextOption.setFlags": ('PySide2.QtGui.QTextOption.Flags',),
- "PySide2.QtGui.QTextOption.setTabArray": ('typing.Sequence[float]',),
- "PySide2.QtGui.QTextOption.setTabStop": ('float',),
- "PySide2.QtGui.QTextOption.setTabStopDistance": ('float',),
- "PySide2.QtGui.QTextOption.setTabs": ('typing.Sequence[PySide2.QtGui.QTextOption.Tab]',),
- "PySide2.QtGui.QTextOption.setTextDirection": ('PySide2.QtCore.Qt.LayoutDirection',),
- "PySide2.QtGui.QTextOption.setUseDesignMetrics": ('bool',),
- "PySide2.QtGui.QTextOption.setWrapMode": ('PySide2.QtGui.QTextOption.WrapMode',),
- "PySide2.QtGui.QTextOption.tabArray": (),
- "PySide2.QtGui.QTextOption.tabStop": (),
- "PySide2.QtGui.QTextOption.tabStopDistance": (),
- "PySide2.QtGui.QTextOption.tabs": (),
- "PySide2.QtGui.QTextOption.textDirection": (),
- "PySide2.QtGui.QTextOption.useDesignMetrics": (),
- "PySide2.QtGui.QTextOption.wrapMode": (),
-# class PySide2.QtGui.QTextTable:
- "PySide2.QtGui.QTextTable.__init__": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtGui.QTextTable.appendColumns": ('int',),
- "PySide2.QtGui.QTextTable.appendRows": ('int',),
- "PySide2.QtGui.QTextTable.cellAt": [('PySide2.QtGui.QTextCursor',), ('int',), ('int', 'int')],
- "PySide2.QtGui.QTextTable.columns": (),
- "PySide2.QtGui.QTextTable.format": (),
- "PySide2.QtGui.QTextTable.insertColumns": ('int', 'int'),
- "PySide2.QtGui.QTextTable.insertRows": ('int', 'int'),
- "PySide2.QtGui.QTextTable.mergeCells": [('PySide2.QtGui.QTextCursor',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QTextTable.removeColumns": ('int', 'int'),
- "PySide2.QtGui.QTextTable.removeRows": ('int', 'int'),
- "PySide2.QtGui.QTextTable.resize": ('int', 'int'),
- "PySide2.QtGui.QTextTable.rowEnd": ('PySide2.QtGui.QTextCursor',),
- "PySide2.QtGui.QTextTable.rowStart": ('PySide2.QtGui.QTextCursor',),
- "PySide2.QtGui.QTextTable.rows": (),
- "PySide2.QtGui.QTextTable.setFormat": [('PySide2.QtGui.QTextFormat',), ('PySide2.QtGui.QTextTableFormat',)],
- "PySide2.QtGui.QTextTable.splitCell": ('int', 'int', 'int', 'int'),
-# class PySide2.QtGui.QTextTableCell:
- "PySide2.QtGui.QTextTableCell.__init__": [(), ('PySide2.QtGui.QTextTableCell',)],
- "PySide2.QtGui.QTextTableCell.__copy__": (),
- "PySide2.QtGui.QTextTableCell.begin": (),
- "PySide2.QtGui.QTextTableCell.column": (),
- "PySide2.QtGui.QTextTableCell.columnSpan": (),
- "PySide2.QtGui.QTextTableCell.end": (),
- "PySide2.QtGui.QTextTableCell.firstCursorPosition": (),
- "PySide2.QtGui.QTextTableCell.firstPosition": (),
- "PySide2.QtGui.QTextTableCell.format": (),
- "PySide2.QtGui.QTextTableCell.isValid": (),
- "PySide2.QtGui.QTextTableCell.lastCursorPosition": (),
- "PySide2.QtGui.QTextTableCell.lastPosition": (),
- "PySide2.QtGui.QTextTableCell.row": (),
- "PySide2.QtGui.QTextTableCell.rowSpan": (),
- "PySide2.QtGui.QTextTableCell.setFormat": ('PySide2.QtGui.QTextCharFormat',),
- "PySide2.QtGui.QTextTableCell.tableCellFormatIndex": (),
-# class PySide2.QtGui.QTextTableCellFormat:
- "PySide2.QtGui.QTextTableCellFormat.__init__": [(), ('PySide2.QtGui.QTextFormat',), ('PySide2.QtGui.QTextTableCellFormat',)],
- "PySide2.QtGui.QTextTableCellFormat.__copy__": (),
- "PySide2.QtGui.QTextTableCellFormat.bottomBorder": (),
- "PySide2.QtGui.QTextTableCellFormat.bottomBorderBrush": (),
- "PySide2.QtGui.QTextTableCellFormat.bottomBorderStyle": (),
- "PySide2.QtGui.QTextTableCellFormat.bottomPadding": (),
- "PySide2.QtGui.QTextTableCellFormat.isValid": (),
- "PySide2.QtGui.QTextTableCellFormat.leftBorder": (),
- "PySide2.QtGui.QTextTableCellFormat.leftBorderBrush": (),
- "PySide2.QtGui.QTextTableCellFormat.leftBorderStyle": (),
- "PySide2.QtGui.QTextTableCellFormat.leftPadding": (),
- "PySide2.QtGui.QTextTableCellFormat.rightBorder": (),
- "PySide2.QtGui.QTextTableCellFormat.rightBorderBrush": (),
- "PySide2.QtGui.QTextTableCellFormat.rightBorderStyle": (),
- "PySide2.QtGui.QTextTableCellFormat.rightPadding": (),
- "PySide2.QtGui.QTextTableCellFormat.setBorder": ('float',),
- "PySide2.QtGui.QTextTableCellFormat.setBorderBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QTextTableCellFormat.setBorderStyle": ('PySide2.QtGui.QTextFrameFormat.BorderStyle',),
- "PySide2.QtGui.QTextTableCellFormat.setBottomBorder": ('float',),
- "PySide2.QtGui.QTextTableCellFormat.setBottomBorderBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QTextTableCellFormat.setBottomBorderStyle": ('PySide2.QtGui.QTextFrameFormat.BorderStyle',),
- "PySide2.QtGui.QTextTableCellFormat.setBottomPadding": ('float',),
- "PySide2.QtGui.QTextTableCellFormat.setLeftBorder": ('float',),
- "PySide2.QtGui.QTextTableCellFormat.setLeftBorderBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QTextTableCellFormat.setLeftBorderStyle": ('PySide2.QtGui.QTextFrameFormat.BorderStyle',),
- "PySide2.QtGui.QTextTableCellFormat.setLeftPadding": ('float',),
- "PySide2.QtGui.QTextTableCellFormat.setPadding": ('float',),
- "PySide2.QtGui.QTextTableCellFormat.setRightBorder": ('float',),
- "PySide2.QtGui.QTextTableCellFormat.setRightBorderBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QTextTableCellFormat.setRightBorderStyle": ('PySide2.QtGui.QTextFrameFormat.BorderStyle',),
- "PySide2.QtGui.QTextTableCellFormat.setRightPadding": ('float',),
- "PySide2.QtGui.QTextTableCellFormat.setTopBorder": ('float',),
- "PySide2.QtGui.QTextTableCellFormat.setTopBorderBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QTextTableCellFormat.setTopBorderStyle": ('PySide2.QtGui.QTextFrameFormat.BorderStyle',),
- "PySide2.QtGui.QTextTableCellFormat.setTopPadding": ('float',),
- "PySide2.QtGui.QTextTableCellFormat.topBorder": (),
- "PySide2.QtGui.QTextTableCellFormat.topBorderBrush": (),
- "PySide2.QtGui.QTextTableCellFormat.topBorderStyle": (),
- "PySide2.QtGui.QTextTableCellFormat.topPadding": (),
-# class PySide2.QtGui.QTextTableFormat:
- "PySide2.QtGui.QTextTableFormat.__init__": [(), ('PySide2.QtGui.QTextFormat',), ('PySide2.QtGui.QTextTableFormat',)],
- "PySide2.QtGui.QTextTableFormat.__copy__": (),
- "PySide2.QtGui.QTextTableFormat.alignment": (),
- "PySide2.QtGui.QTextTableFormat.borderCollapse": (),
- "PySide2.QtGui.QTextTableFormat.cellPadding": (),
- "PySide2.QtGui.QTextTableFormat.cellSpacing": (),
- "PySide2.QtGui.QTextTableFormat.clearColumnWidthConstraints": (),
- "PySide2.QtGui.QTextTableFormat.columnWidthConstraints": (),
- "PySide2.QtGui.QTextTableFormat.columns": (),
- "PySide2.QtGui.QTextTableFormat.headerRowCount": (),
- "PySide2.QtGui.QTextTableFormat.isValid": (),
- "PySide2.QtGui.QTextTableFormat.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtGui.QTextTableFormat.setBorderCollapse": ('bool',),
- "PySide2.QtGui.QTextTableFormat.setCellPadding": ('float',),
- "PySide2.QtGui.QTextTableFormat.setCellSpacing": ('float',),
- "PySide2.QtGui.QTextTableFormat.setColumnWidthConstraints": ('typing.List[PySide2.QtGui.QTextLength]',),
- "PySide2.QtGui.QTextTableFormat.setColumns": ('int',),
- "PySide2.QtGui.QTextTableFormat.setHeaderRowCount": ('int',),
-# class PySide2.QtGui.QToolBarChangeEvent:
- "PySide2.QtGui.QToolBarChangeEvent.__init__": ('bool',),
- "PySide2.QtGui.QToolBarChangeEvent.toggle": (),
-# class PySide2.QtGui.QTouchDevice:
-# class PySide2.QtGui.QTouchDevice.Capabilities:
-# class PySide2.QtGui.QTouchDevice.CapabilityFlag:
-# class PySide2.QtGui.QTouchDevice.DeviceType:
- "PySide2.QtGui.QTouchDevice.__init__": (),
- "PySide2.QtGui.QTouchDevice.capabilities": (),
- "PySide2.QtGui.QTouchDevice.devices": (),
- "PySide2.QtGui.QTouchDevice.maximumTouchPoints": (),
- "PySide2.QtGui.QTouchDevice.name": (),
- "PySide2.QtGui.QTouchDevice.setCapabilities": ('PySide2.QtGui.QTouchDevice.Capabilities',),
- "PySide2.QtGui.QTouchDevice.setMaximumTouchPoints": ('int',),
- "PySide2.QtGui.QTouchDevice.setName": ('str',),
- "PySide2.QtGui.QTouchDevice.setType": ('PySide2.QtGui.QTouchDevice.DeviceType',),
- "PySide2.QtGui.QTouchDevice.type": (),
-# class PySide2.QtGui.QTouchEvent:
-# class PySide2.QtGui.QTouchEvent.TouchPoint:
-# class PySide2.QtGui.QTouchEvent.TouchPoint.InfoFlag:
-# class PySide2.QtGui.QTouchEvent.TouchPoint.InfoFlags:
- "PySide2.QtGui.QTouchEvent.TouchPoint.__init__": [('PySide2.QtGui.QTouchEvent.TouchPoint',), ('int',)],
- "PySide2.QtGui.QTouchEvent.TouchPoint.__copy__": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.ellipseDiameters": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.flags": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.id": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.lastNormalizedPos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.lastPos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.lastScenePos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.lastScreenPos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.normalizedPos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.pos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.pressure": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.rawScreenPositions": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.rect": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.rotation": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.scenePos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.sceneRect": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.screenPos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.screenRect": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setEllipseDiameters": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setFlags": ('PySide2.QtGui.QTouchEvent.TouchPoint.InfoFlags',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setId": ('int',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setLastNormalizedPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setLastPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setLastScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setLastScreenPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setNormalizedPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setPressure": ('float',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setRawScreenPositions": ('typing.List[PySide2.QtCore.QPointF]',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setRect": ('PySide2.QtCore.QRectF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setRotation": ('float',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setSceneRect": ('PySide2.QtCore.QRectF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setScreenPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setScreenRect": ('PySide2.QtCore.QRectF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setStartNormalizedPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setStartPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setStartScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setStartScreenPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setState": ('PySide2.QtCore.Qt.TouchPointStates',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setUniqueId": ('int',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setVelocity": ('PySide2.QtGui.QVector2D',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.startNormalizedPos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.startPos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.startScenePos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.startScreenPos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.state": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.swap": ('PySide2.QtGui.QTouchEvent.TouchPoint',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.uniqueId": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.velocity": (),
- "PySide2.QtGui.QTouchEvent.__init__": ('PySide2.QtCore.QEvent.Type', 'PySide2.QtGui.QTouchDevice', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.Qt.TouchPointStates', 'typing.Sequence[PySide2.QtGui.QTouchEvent.TouchPoint]'),
- "PySide2.QtGui.QTouchEvent.device": (),
- "PySide2.QtGui.QTouchEvent.setDevice": ('PySide2.QtGui.QTouchDevice',),
- "PySide2.QtGui.QTouchEvent.setTarget": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QTouchEvent.setTouchPointStates": ('PySide2.QtCore.Qt.TouchPointStates',),
- "PySide2.QtGui.QTouchEvent.setTouchPoints": ('typing.Sequence[PySide2.QtGui.QTouchEvent.TouchPoint]',),
- "PySide2.QtGui.QTouchEvent.setWindow": ('PySide2.QtGui.QWindow',),
- "PySide2.QtGui.QTouchEvent.target": (),
- "PySide2.QtGui.QTouchEvent.touchPointStates": (),
- "PySide2.QtGui.QTouchEvent.touchPoints": (),
- "PySide2.QtGui.QTouchEvent.window": (),
-# class PySide2.QtGui.QTransform:
-# class PySide2.QtGui.QTransform.TransformationType:
- "PySide2.QtGui.QTransform.__init__": [(), ('PySide2.QtGui.QMatrix',), ('PySide2.QtGui.QTransform',), ('float', 'float', 'float', 'float', 'float', 'float'), ('float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float')],
- "PySide2.QtGui.QTransform.__add__": ('float',),
- "PySide2.QtGui.QTransform.__copy__": (),
- "PySide2.QtGui.QTransform.__iadd__": ('float',),
- "PySide2.QtGui.QTransform.__imul__": [('PySide2.QtGui.QTransform',), ('float',)],
- "PySide2.QtGui.QTransform.__isub__": ('float',),
- "PySide2.QtGui.QTransform.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QTransform.__mul__": [('PySide2.QtCore.QLine',), ('PySide2.QtCore.QLineF',), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtGui.QTransform',), ('float',)],
- "PySide2.QtGui.QTransform.__reduce__": (),
- "PySide2.QtGui.QTransform.__repr__": (),
- "PySide2.QtGui.QTransform.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QTransform.__sub__": ('float',),
- "PySide2.QtGui.QTransform.adjoint": (),
- "PySide2.QtGui.QTransform.det": (),
- "PySide2.QtGui.QTransform.determinant": (),
- "PySide2.QtGui.QTransform.dx": (),
- "PySide2.QtGui.QTransform.dy": (),
- "PySide2.QtGui.QTransform.fromScale": ('float', 'float'),
- "PySide2.QtGui.QTransform.fromTranslate": ('float', 'float'),
- "PySide2.QtGui.QTransform.inverted": (),
- "PySide2.QtGui.QTransform.isAffine": (),
- "PySide2.QtGui.QTransform.isIdentity": (),
- "PySide2.QtGui.QTransform.isInvertible": (),
- "PySide2.QtGui.QTransform.isRotating": (),
- "PySide2.QtGui.QTransform.isScaling": (),
- "PySide2.QtGui.QTransform.isTranslating": (),
- "PySide2.QtGui.QTransform.m11": (),
- "PySide2.QtGui.QTransform.m12": (),
- "PySide2.QtGui.QTransform.m13": (),
- "PySide2.QtGui.QTransform.m21": (),
- "PySide2.QtGui.QTransform.m22": (),
- "PySide2.QtGui.QTransform.m23": (),
- "PySide2.QtGui.QTransform.m31": (),
- "PySide2.QtGui.QTransform.m32": (),
- "PySide2.QtGui.QTransform.m33": (),
- "PySide2.QtGui.QTransform.map": [('PySide2.QtCore.QLine',), ('PySide2.QtCore.QLineF',), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtGui.QPainterPath',), ('PySide2.QtGui.QPolygon',), ('PySide2.QtGui.QPolygonF',), ('PySide2.QtGui.QRegion',), ('float', 'float')],
- "PySide2.QtGui.QTransform.mapRect": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',)],
- "PySide2.QtGui.QTransform.mapToPolygon": ('PySide2.QtCore.QRect',),
- "PySide2.QtGui.QTransform.quadToQuad": [('PySide2.QtGui.QPolygonF', 'PySide2.QtGui.QPolygonF'), ('PySide2.QtGui.QPolygonF', 'PySide2.QtGui.QPolygonF', 'PySide2.QtGui.QTransform')],
- "PySide2.QtGui.QTransform.quadToSquare": [('PySide2.QtGui.QPolygonF',), ('PySide2.QtGui.QPolygonF', 'PySide2.QtGui.QTransform')],
- "PySide2.QtGui.QTransform.reset": (),
- "PySide2.QtGui.QTransform.rotate": ('float', 'PySide2.QtCore.Qt.Axis'),
- "PySide2.QtGui.QTransform.rotateRadians": ('float', 'PySide2.QtCore.Qt.Axis'),
- "PySide2.QtGui.QTransform.scale": ('float', 'float'),
- "PySide2.QtGui.QTransform.setMatrix": ('float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtGui.QTransform.shear": ('float', 'float'),
- "PySide2.QtGui.QTransform.squareToQuad": [('PySide2.QtGui.QPolygonF',), ('PySide2.QtGui.QPolygonF', 'PySide2.QtGui.QTransform')],
- "PySide2.QtGui.QTransform.toAffine": (),
- "PySide2.QtGui.QTransform.translate": ('float', 'float'),
- "PySide2.QtGui.QTransform.transposed": (),
- "PySide2.QtGui.QTransform.type": (),
-# class PySide2.QtGui.QValidator:
-# class PySide2.QtGui.QValidator.State:
- "PySide2.QtGui.QValidator.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QValidator.fixup": ('str',),
- "PySide2.QtGui.QValidator.locale": (),
- "PySide2.QtGui.QValidator.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtGui.QValidator.validate": ('str', 'int'),
-# class PySide2.QtGui.QVector2D:
- "PySide2.QtGui.QVector2D.__init__": [(), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtGui.QVector3D',), ('PySide2.QtGui.QVector4D',), ('float', 'float')],
- "PySide2.QtGui.QVector2D.__add__": ('PySide2.QtGui.QVector2D',),
- "PySide2.QtGui.QVector2D.__copy__": (),
- "PySide2.QtGui.QVector2D.__iadd__": ('PySide2.QtGui.QVector2D',),
- "PySide2.QtGui.QVector2D.__imul__": [('PySide2.QtGui.QVector2D',), ('float',)],
- "PySide2.QtGui.QVector2D.__isub__": ('PySide2.QtGui.QVector2D',),
- "PySide2.QtGui.QVector2D.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QVector2D.__mul__": [('PySide2.QtGui.QVector2D',), ('float',)],
- "PySide2.QtGui.QVector2D.__neg__": (),
- "PySide2.QtGui.QVector2D.__reduce__": (),
- "PySide2.QtGui.QVector2D.__repr__": (),
- "PySide2.QtGui.QVector2D.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QVector2D.__sub__": ('PySide2.QtGui.QVector2D',),
- "PySide2.QtGui.QVector2D.distanceToLine": ('PySide2.QtGui.QVector2D', 'PySide2.QtGui.QVector2D'),
- "PySide2.QtGui.QVector2D.distanceToPoint": ('PySide2.QtGui.QVector2D',),
- "PySide2.QtGui.QVector2D.dotProduct": ('PySide2.QtGui.QVector2D', 'PySide2.QtGui.QVector2D'),
- "PySide2.QtGui.QVector2D.isNull": (),
- "PySide2.QtGui.QVector2D.length": (),
- "PySide2.QtGui.QVector2D.lengthSquared": (),
- "PySide2.QtGui.QVector2D.normalize": (),
- "PySide2.QtGui.QVector2D.normalized": (),
- "PySide2.QtGui.QVector2D.setX": ('float',),
- "PySide2.QtGui.QVector2D.setY": ('float',),
- "PySide2.QtGui.QVector2D.toPoint": (),
- "PySide2.QtGui.QVector2D.toPointF": (),
- "PySide2.QtGui.QVector2D.toTuple": (),
- "PySide2.QtGui.QVector2D.toVector3D": (),
- "PySide2.QtGui.QVector2D.toVector4D": (),
- "PySide2.QtGui.QVector2D.x": (),
- "PySide2.QtGui.QVector2D.y": (),
-# class PySide2.QtGui.QVector3D:
- "PySide2.QtGui.QVector3D.__init__": [(), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtGui.QVector2D',), ('PySide2.QtGui.QVector2D', 'float'), ('PySide2.QtGui.QVector4D',), ('float', 'float', 'float')],
- "PySide2.QtGui.QVector3D.__add__": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtGui.QVector3D.__copy__": (),
- "PySide2.QtGui.QVector3D.__iadd__": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtGui.QVector3D.__imul__": [('PySide2.QtGui.QVector3D',), ('float',)],
- "PySide2.QtGui.QVector3D.__isub__": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtGui.QVector3D.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QVector3D.__mul__": [('PySide2.QtGui.QMatrix4x4',), ('PySide2.QtGui.QQuaternion',), ('PySide2.QtGui.QVector3D',), ('float',)],
- "PySide2.QtGui.QVector3D.__neg__": (),
- "PySide2.QtGui.QVector3D.__reduce__": (),
- "PySide2.QtGui.QVector3D.__repr__": (),
- "PySide2.QtGui.QVector3D.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QVector3D.__sub__": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtGui.QVector3D.crossProduct": ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'),
- "PySide2.QtGui.QVector3D.distanceToLine": ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'),
- "PySide2.QtGui.QVector3D.distanceToPlane": [('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'), ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D')],
- "PySide2.QtGui.QVector3D.distanceToPoint": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtGui.QVector3D.dotProduct": ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'),
- "PySide2.QtGui.QVector3D.isNull": (),
- "PySide2.QtGui.QVector3D.length": (),
- "PySide2.QtGui.QVector3D.lengthSquared": (),
- "PySide2.QtGui.QVector3D.normal": [('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'), ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D')],
- "PySide2.QtGui.QVector3D.normalize": (),
- "PySide2.QtGui.QVector3D.normalized": (),
- "PySide2.QtGui.QVector3D.project": ('PySide2.QtGui.QMatrix4x4', 'PySide2.QtGui.QMatrix4x4', 'PySide2.QtCore.QRect'),
- "PySide2.QtGui.QVector3D.setX": ('float',),
- "PySide2.QtGui.QVector3D.setY": ('float',),
- "PySide2.QtGui.QVector3D.setZ": ('float',),
- "PySide2.QtGui.QVector3D.toPoint": (),
- "PySide2.QtGui.QVector3D.toPointF": (),
- "PySide2.QtGui.QVector3D.toTuple": (),
- "PySide2.QtGui.QVector3D.toVector2D": (),
- "PySide2.QtGui.QVector3D.toVector4D": (),
- "PySide2.QtGui.QVector3D.unproject": ('PySide2.QtGui.QMatrix4x4', 'PySide2.QtGui.QMatrix4x4', 'PySide2.QtCore.QRect'),
- "PySide2.QtGui.QVector3D.x": (),
- "PySide2.QtGui.QVector3D.y": (),
- "PySide2.QtGui.QVector3D.z": (),
-# class PySide2.QtGui.QVector4D:
- "PySide2.QtGui.QVector4D.__init__": [(), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtGui.QVector2D',), ('PySide2.QtGui.QVector2D', 'float', 'float'), ('PySide2.QtGui.QVector3D',), ('PySide2.QtGui.QVector3D', 'float'), ('float', 'float', 'float', 'float')],
- "PySide2.QtGui.QVector4D.__add__": ('PySide2.QtGui.QVector4D',),
- "PySide2.QtGui.QVector4D.__copy__": (),
- "PySide2.QtGui.QVector4D.__iadd__": ('PySide2.QtGui.QVector4D',),
- "PySide2.QtGui.QVector4D.__imul__": [('PySide2.QtGui.QVector4D',), ('float',)],
- "PySide2.QtGui.QVector4D.__isub__": ('PySide2.QtGui.QVector4D',),
- "PySide2.QtGui.QVector4D.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QVector4D.__mul__": [('PySide2.QtGui.QMatrix4x4',), ('PySide2.QtGui.QVector4D',), ('float',)],
- "PySide2.QtGui.QVector4D.__neg__": (),
- "PySide2.QtGui.QVector4D.__reduce__": (),
- "PySide2.QtGui.QVector4D.__repr__": (),
- "PySide2.QtGui.QVector4D.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QVector4D.__sub__": ('PySide2.QtGui.QVector4D',),
- "PySide2.QtGui.QVector4D.dotProduct": ('PySide2.QtGui.QVector4D', 'PySide2.QtGui.QVector4D'),
- "PySide2.QtGui.QVector4D.isNull": (),
- "PySide2.QtGui.QVector4D.length": (),
- "PySide2.QtGui.QVector4D.lengthSquared": (),
- "PySide2.QtGui.QVector4D.normalize": (),
- "PySide2.QtGui.QVector4D.normalized": (),
- "PySide2.QtGui.QVector4D.setW": ('float',),
- "PySide2.QtGui.QVector4D.setX": ('float',),
- "PySide2.QtGui.QVector4D.setY": ('float',),
- "PySide2.QtGui.QVector4D.setZ": ('float',),
- "PySide2.QtGui.QVector4D.toPoint": (),
- "PySide2.QtGui.QVector4D.toPointF": (),
- "PySide2.QtGui.QVector4D.toTuple": (),
- "PySide2.QtGui.QVector4D.toVector2D": (),
- "PySide2.QtGui.QVector4D.toVector2DAffine": (),
- "PySide2.QtGui.QVector4D.toVector3D": (),
- "PySide2.QtGui.QVector4D.toVector3DAffine": (),
- "PySide2.QtGui.QVector4D.w": (),
- "PySide2.QtGui.QVector4D.x": (),
- "PySide2.QtGui.QVector4D.y": (),
- "PySide2.QtGui.QVector4D.z": (),
-# class PySide2.QtGui.QWhatsThisClickedEvent:
- "PySide2.QtGui.QWhatsThisClickedEvent.__init__": ('str',),
- "PySide2.QtGui.QWhatsThisClickedEvent.href": (),
-# class PySide2.QtGui.QWheelEvent:
- "PySide2.QtGui.QWheelEvent.__init__": [('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.Qt.ScrollPhase', 'bool', 'PySide2.QtCore.Qt.MouseEventSource'), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint', 'int', 'PySide2.QtCore.Qt.Orientation', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers'), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint', 'int', 'PySide2.QtCore.Qt.Orientation', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.Qt.ScrollPhase'), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint', 'int', 'PySide2.QtCore.Qt.Orientation', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.Qt.ScrollPhase', 'PySide2.QtCore.Qt.MouseEventSource'), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint', 'int', 'PySide2.QtCore.Qt.Orientation', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.Qt.ScrollPhase', 'PySide2.QtCore.Qt.MouseEventSource', 'bool'), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'int', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.Qt.Orientation'), ('PySide2.QtCore.QPointF', 'int', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.Qt.Orientation')],
- "PySide2.QtGui.QWheelEvent.angleDelta": (),
- "PySide2.QtGui.QWheelEvent.buttons": (),
- "PySide2.QtGui.QWheelEvent.delta": (),
- "PySide2.QtGui.QWheelEvent.globalPos": (),
- "PySide2.QtGui.QWheelEvent.globalPosF": (),
- "PySide2.QtGui.QWheelEvent.globalPosition": (),
- "PySide2.QtGui.QWheelEvent.globalX": (),
- "PySide2.QtGui.QWheelEvent.global""Y": (),
- "PySide2.QtGui.QWheelEvent.inverted": (),
- "PySide2.QtGui.QWheelEvent.orientation": (),
- "PySide2.QtGui.QWheelEvent.phase": (),
- "PySide2.QtGui.QWheelEvent.pixelDelta": (),
- "PySide2.QtGui.QWheelEvent.pos": (),
- "PySide2.QtGui.QWheelEvent.posF": (),
- "PySide2.QtGui.QWheelEvent.position": (),
- "PySide2.QtGui.QWheelEvent.source": (),
- "PySide2.QtGui.QWheelEvent.x": (),
- "PySide2.QtGui.QWheelEvent.y": (),
-# class PySide2.QtGui.QWindow:
-# class PySide2.QtGui.QWindow.AncestorMode:
-# class PySide2.QtGui.QWindow.Visibility:
- "PySide2.QtGui.QWindow.__init__": [('PySide2.QtGui.QScreen',), ('PySide2.QtGui.QWindow',)],
- "PySide2.QtGui.QWindow.accessibleRoot": (),
- "PySide2.QtGui.QWindow.alert": ('int',),
- "PySide2.QtGui.QWindow.baseSize": (),
- "PySide2.QtGui.QWindow.close": (),
- "PySide2.QtGui.QWindow.contentOrientation": (),
- "PySide2.QtGui.QWindow.create": (),
- "PySide2.QtGui.QWindow.cursor": (),
- "PySide2.QtGui.QWindow.destroy": (),
- "PySide2.QtGui.QWindow.devicePixelRatio": (),
- "PySide2.QtGui.QWindow.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtGui.QWindow.exposeEvent": ('PySide2.QtGui.QExposeEvent',),
- "PySide2.QtGui.QWindow.filePath": (),
- "PySide2.QtGui.QWindow.flags": (),
- "PySide2.QtGui.QWindow.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtGui.QWindow.focusObject": (),
- "PySide2.QtGui.QWindow.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtGui.QWindow.format": (),
- "PySide2.QtGui.QWindow.frameGeometry": (),
- "PySide2.QtGui.QWindow.frameMargins": (),
- "PySide2.QtGui.QWindow.framePosition": (),
- "PySide2.QtGui.QWindow.fromWinId": ('int',),
- "PySide2.QtGui.QWindow.geometry": (),
- "PySide2.QtGui.QWindow.height": (),
- "PySide2.QtGui.QWindow.hide": (),
- "PySide2.QtGui.QWindow.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtGui.QWindow.icon": (),
- "PySide2.QtGui.QWindow.isActive": (),
- "PySide2.QtGui.QWindow.isAncestorOf": ('PySide2.QtGui.QWindow', 'PySide2.QtGui.QWindow.AncestorMode'),
- "PySide2.QtGui.QWindow.isExposed": (),
- "PySide2.QtGui.QWindow.isModal": (),
- "PySide2.QtGui.QWindow.isTopLevel": (),
- "PySide2.QtGui.QWindow.isVisible": (),
- "PySide2.QtGui.QWindow.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtGui.QWindow.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtGui.QWindow.lower": (),
- "PySide2.QtGui.QWindow.mapFromGlobal": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QWindow.mapToGlobal": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QWindow.mask": (),
- "PySide2.QtGui.QWindow.maximumHeight": (),
- "PySide2.QtGui.QWindow.maximumSize": (),
- "PySide2.QtGui.QWindow.maximumWidth": (),
- "PySide2.QtGui.QWindow.minimumHeight": (),
- "PySide2.QtGui.QWindow.minimumSize": (),
- "PySide2.QtGui.QWindow.minimumWidth": (),
- "PySide2.QtGui.QWindow.modality": (),
- "PySide2.QtGui.QWindow.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtGui.QWindow.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtGui.QWindow.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtGui.QWindow.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtGui.QWindow.moveEvent": ('PySide2.QtGui.QMoveEvent',),
- "PySide2.QtGui.QWindow.nativeEvent": ('PySide2.QtCore.QByteArray', 'int'),
- "PySide2.QtGui.QWindow.opacity": (),
- "PySide2.QtGui.QWindow.parent": [(), ('PySide2.QtGui.QWindow.AncestorMode',)],
- "PySide2.QtGui.QWindow.position": (),
- "PySide2.QtGui.QWindow.raise_": (),
- "PySide2.QtGui.QWindow.reportContentOrientationChange": ('PySide2.QtCore.Qt.ScreenOrientation',),
- "PySide2.QtGui.QWindow.requestActivate": (),
- "PySide2.QtGui.QWindow.requestUpdate": (),
- "PySide2.QtGui.QWindow.requestedFormat": (),
- "PySide2.QtGui.QWindow.resize": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtGui.QWindow.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtGui.QWindow.screen": (),
- "PySide2.QtGui.QWindow.setBaseSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtGui.QWindow.setCursor": ('PySide2.QtGui.QCursor',),
- "PySide2.QtGui.QWindow.setFilePath": ('str',),
- "PySide2.QtGui.QWindow.setFlag": ('PySide2.QtCore.Qt.WindowType', 'bool'),
- "PySide2.QtGui.QWindow.setFlags": ('PySide2.QtCore.Qt.WindowFlags',),
- "PySide2.QtGui.QWindow.setFormat": ('PySide2.QtGui.QSurfaceFormat',),
- "PySide2.QtGui.QWindow.setFramePosition": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QWindow.setGeometry": [('PySide2.QtCore.QRect',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QWindow.setHeight": ('int',),
- "PySide2.QtGui.QWindow.setIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtGui.QWindow.setKeyboardGrabEnabled": ('bool',),
- "PySide2.QtGui.QWindow.setMask": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QWindow.setMaximumHeight": ('int',),
- "PySide2.QtGui.QWindow.setMaximumSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtGui.QWindow.setMaximumWidth": ('int',),
- "PySide2.QtGui.QWindow.setMinimumHeight": ('int',),
- "PySide2.QtGui.QWindow.setMinimumSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtGui.QWindow.setMinimumWidth": ('int',),
- "PySide2.QtGui.QWindow.setModality": ('PySide2.QtCore.Qt.WindowModality',),
- "PySide2.QtGui.QWindow.setMouseGrabEnabled": ('bool',),
- "PySide2.QtGui.QWindow.setOpacity": ('float',),
- "PySide2.QtGui.QWindow.setParent": ('PySide2.QtGui.QWindow',),
- "PySide2.QtGui.QWindow.setPosition": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtGui.QWindow.setScreen": ('PySide2.QtGui.QScreen',),
- "PySide2.QtGui.QWindow.setSizeIncrement": ('PySide2.QtCore.QSize',),
- "PySide2.QtGui.QWindow.setSurfaceType": ('PySide2.QtGui.QSurface.SurfaceType',),
- "PySide2.QtGui.QWindow.setTitle": ('str',),
- "PySide2.QtGui.QWindow.setTransientParent": ('PySide2.QtGui.QWindow',),
- "PySide2.QtGui.QWindow.setVisibility": ('PySide2.QtGui.QWindow.Visibility',),
- "PySide2.QtGui.QWindow.setVisible": ('bool',),
- "PySide2.QtGui.QWindow.setWidth": ('int',),
- "PySide2.QtGui.QWindow.setWindowState": ('PySide2.QtCore.Qt.WindowState',),
- "PySide2.QtGui.QWindow.setWindowStates": ('PySide2.QtCore.Qt.WindowStates',),
- "PySide2.QtGui.QWindow.setX": ('int',),
- "PySide2.QtGui.QWindow.setY": ('int',),
- "PySide2.QtGui.QWindow.show": (),
- "PySide2.QtGui.QWindow.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtGui.QWindow.showFullScreen": (),
- "PySide2.QtGui.QWindow.showMaximized": (),
- "PySide2.QtGui.QWindow.showMinimized": (),
- "PySide2.QtGui.QWindow.showNormal": (),
- "PySide2.QtGui.QWindow.size": (),
- "PySide2.QtGui.QWindow.sizeIncrement": (),
- "PySide2.QtGui.QWindow.surfaceHandle": (),
- "PySide2.QtGui.QWindow.surfaceType": (),
- "PySide2.QtGui.QWindow.tabletEvent": ('PySide2.QtGui.QTabletEvent',),
- "PySide2.QtGui.QWindow.title": (),
- "PySide2.QtGui.QWindow.touchEvent": ('PySide2.QtGui.QTouchEvent',),
- "PySide2.QtGui.QWindow.transientParent": (),
- "PySide2.QtGui.QWindow.type": (),
- "PySide2.QtGui.QWindow.unsetCursor": (),
- "PySide2.QtGui.QWindow.visibility": (),
- "PySide2.QtGui.QWindow.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
- "PySide2.QtGui.QWindow.width": (),
- "PySide2.QtGui.QWindow.winId": (),
- "PySide2.QtGui.QWindow.windowState": (),
- "PySide2.QtGui.QWindow.windowStates": (),
- "PySide2.QtGui.QWindow.x": (),
- "PySide2.QtGui.QWindow.y": (),
-# class PySide2.QtGui.QWindowStateChangeEvent:
- "PySide2.QtGui.QWindowStateChangeEvent.__init__": ('PySide2.QtCore.Qt.WindowStates', 'bool'),
- "PySide2.QtGui.QWindowStateChangeEvent.isOverride": (),
- "PySide2.QtGui.QWindowStateChangeEvent.oldState": (),
-# class PySide2.QtGui.Qt:
- "PySide2.QtGui.Qt.codecForHtml": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.Qt.convertFromPlainText": ('str', 'PySide2.QtCore.Qt.WhiteSpaceMode'),
- "PySide2.QtGui.Qt.mightBeRichText": ('str',),
- "PySide2.QtGui.Qt.qAlpha": ('int',),
- "PySide2.QtGui.Qt.qBlue": ('int',),
- "PySide2.QtGui.Qt.qGray": [('int',), ('int', 'int', 'int')],
- "PySide2.QtGui.Qt.qGreen": ('int',),
- "PySide2.QtGui.Qt.qIsGray": ('int',),
- "PySide2.QtGui.Qt.qRed": ('int',),
- "PySide2.QtGui.Qt.qRgb": ('int', 'int', 'int'),
- "PySide2.QtGui.Qt.qRgba": ('int', 'int', 'int', 'int'),
- }) if "PySide2.QtGui" in sys.modules else None
-# Module PySide2.QtWidgets
-sig_dict.update({
-# class PySide2.QtWidgets.QAbstractButton:
- "PySide2.QtWidgets.QAbstractButton.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QAbstractButton.animateClick": ('int',),
- "PySide2.QtWidgets.QAbstractButton.autoExclusive": (),
- "PySide2.QtWidgets.QAbstractButton.autoRepeat": (),
- "PySide2.QtWidgets.QAbstractButton.autoRepeatDelay": (),
- "PySide2.QtWidgets.QAbstractButton.autoRepeatInterval": (),
- "PySide2.QtWidgets.QAbstractButton.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAbstractButton.checkStateSet": (),
- "PySide2.QtWidgets.QAbstractButton.click": (),
- "PySide2.QtWidgets.QAbstractButton.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAbstractButton.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QAbstractButton.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QAbstractButton.group": (),
- "PySide2.QtWidgets.QAbstractButton.hitButton": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QAbstractButton.icon": (),
- "PySide2.QtWidgets.QAbstractButton.iconSize": (),
- "PySide2.QtWidgets.QAbstractButton.isCheckable": (),
- "PySide2.QtWidgets.QAbstractButton.isChecked": (),
- "PySide2.QtWidgets.QAbstractButton.isDown": (),
- "PySide2.QtWidgets.QAbstractButton.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QAbstractButton.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QAbstractButton.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractButton.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractButton.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractButton.nextCheckState": (),
- "PySide2.QtWidgets.QAbstractButton.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QAbstractButton.setAutoExclusive": ('bool',),
- "PySide2.QtWidgets.QAbstractButton.setAutoRepeat": ('bool',),
- "PySide2.QtWidgets.QAbstractButton.setAutoRepeatDelay": ('int',),
- "PySide2.QtWidgets.QAbstractButton.setAutoRepeatInterval": ('int',),
- "PySide2.QtWidgets.QAbstractButton.setCheckable": ('bool',),
- "PySide2.QtWidgets.QAbstractButton.setChecked": ('bool',),
- "PySide2.QtWidgets.QAbstractButton.setDown": ('bool',),
- "PySide2.QtWidgets.QAbstractButton.setIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtWidgets.QAbstractButton.setIconSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QAbstractButton.setShortcut": ('PySide2.QtGui.QKeySequence',),
- "PySide2.QtWidgets.QAbstractButton.setText": ('str',),
- "PySide2.QtWidgets.QAbstractButton.shortcut": (),
- "PySide2.QtWidgets.QAbstractButton.text": (),
- "PySide2.QtWidgets.QAbstractButton.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QAbstractButton.toggle": (),
-# class PySide2.QtWidgets.QAbstractGraphicsShapeItem:
- "PySide2.QtWidgets.QAbstractGraphicsShapeItem.__init__": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QAbstractGraphicsShapeItem.brush": (),
- "PySide2.QtWidgets.QAbstractGraphicsShapeItem.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QAbstractGraphicsShapeItem.opaqueArea": (),
- "PySide2.QtWidgets.QAbstractGraphicsShapeItem.pen": (),
- "PySide2.QtWidgets.QAbstractGraphicsShapeItem.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtWidgets.QAbstractGraphicsShapeItem.setPen": ('PySide2.QtGui.QPen',),
-# class PySide2.QtWidgets.QAbstractItemDelegate:
-# class PySide2.QtWidgets.QAbstractItemDelegate.EndEditHint:
- "PySide2.QtWidgets.QAbstractItemDelegate.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QAbstractItemDelegate.createEditor": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QAbstractItemDelegate.destroyEditor": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QAbstractItemDelegate.editorEvent": ('PySide2.QtCore.QEvent', 'PySide2.QtCore.QAbstractItemModel', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QAbstractItemDelegate.elidedText": ('PySide2.QtGui.QFontMetrics', 'int', 'PySide2.QtCore.Qt.TextElideMode', 'str'),
- "PySide2.QtWidgets.QAbstractItemDelegate.helpEvent": ('PySide2.QtGui.QHelpEvent', 'PySide2.QtWidgets.QAbstractItemView', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QAbstractItemDelegate.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QAbstractItemDelegate.paintingRoles": (),
- "PySide2.QtWidgets.QAbstractItemDelegate.setEditorData": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QAbstractItemDelegate.setModelData": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QAbstractItemModel', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QAbstractItemDelegate.sizeHint": ('PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QAbstractItemDelegate.updateEditorGeometry": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
-# class PySide2.QtWidgets.QAbstractItemView:
-# class PySide2.QtWidgets.QAbstractItemView.CursorAction:
-# class PySide2.QtWidgets.QAbstractItemView.DragDropMode:
-# class PySide2.QtWidgets.QAbstractItemView.DropIndicatorPosition:
-# class PySide2.QtWidgets.QAbstractItemView.EditTrigger:
-# class PySide2.QtWidgets.QAbstractItemView.EditTriggers:
-# class PySide2.QtWidgets.QAbstractItemView.ScrollHint:
-# class PySide2.QtWidgets.QAbstractItemView.ScrollMode:
-# class PySide2.QtWidgets.QAbstractItemView.SelectionBehavior:
-# class PySide2.QtWidgets.QAbstractItemView.SelectionMode:
-# class PySide2.QtWidgets.QAbstractItemView.State:
- "PySide2.QtWidgets.QAbstractItemView.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QAbstractItemView.alternatingRowColors": (),
- "PySide2.QtWidgets.QAbstractItemView.autoScrollMargin": (),
- "PySide2.QtWidgets.QAbstractItemView.clearSelection": (),
- "PySide2.QtWidgets.QAbstractItemView.closeEditor": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QAbstractItemDelegate.EndEditHint'),
- "PySide2.QtWidgets.QAbstractItemView.closePersistentEditor": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QAbstractItemView.commitData": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QAbstractItemView.currentChanged": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QAbstractItemView.currentIndex": (),
- "PySide2.QtWidgets.QAbstractItemView.dataChanged": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex', 'typing.List[int]'),
- "PySide2.QtWidgets.QAbstractItemView.defaultDropAction": (),
- "PySide2.QtWidgets.QAbstractItemView.dirtyRegionOffset": (),
- "PySide2.QtWidgets.QAbstractItemView.doAutoScroll": (),
- "PySide2.QtWidgets.QAbstractItemView.doItemsLayout": (),
- "PySide2.QtWidgets.QAbstractItemView.dragDropMode": (),
- "PySide2.QtWidgets.QAbstractItemView.dragDropOverwriteMode": (),
- "PySide2.QtWidgets.QAbstractItemView.dragEnabled": (),
- "PySide2.QtWidgets.QAbstractItemView.dragEnterEvent": ('PySide2.QtGui.QDragEnterEvent',),
- "PySide2.QtWidgets.QAbstractItemView.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtWidgets.QAbstractItemView.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtWidgets.QAbstractItemView.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QAbstractItemView.dropIndicatorPosition": (),
- "PySide2.QtWidgets.QAbstractItemView.edit": [('PySide2.QtCore.QModelIndex',), ('PySide2.QtCore.QModelIndex', 'PySide2.QtWidgets.QAbstractItemView.EditTrigger', 'PySide2.QtCore.QEvent')],
- "PySide2.QtWidgets.QAbstractItemView.editTriggers": (),
- "PySide2.QtWidgets.QAbstractItemView.editorDestroyed": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QAbstractItemView.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAbstractItemView.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QAbstractItemView.executeDelayedItemsLayout": (),
- "PySide2.QtWidgets.QAbstractItemView.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QAbstractItemView.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QAbstractItemView.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QAbstractItemView.hasAutoScroll": (),
- "PySide2.QtWidgets.QAbstractItemView.horizontalOffset": (),
- "PySide2.QtWidgets.QAbstractItemView.horizontalScrollMode": (),
- "PySide2.QtWidgets.QAbstractItemView.horizontalScrollbarAction": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.horizontalScrollbarValueChanged": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.horizontalStepsPerItem": (),
- "PySide2.QtWidgets.QAbstractItemView.iconSize": (),
- "PySide2.QtWidgets.QAbstractItemView.indexAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QAbstractItemView.indexWidget": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QAbstractItemView.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QAbstractItemView.inputMethodQuery": ('PySide2.QtCore.Qt.InputMethodQuery',),
- "PySide2.QtWidgets.QAbstractItemView.isIndexHidden": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QAbstractItemView.isPersistentEditorOpen": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QAbstractItemView.itemDelegate": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtWidgets.QAbstractItemView.itemDelegateForColumn": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.itemDelegateForRow": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QAbstractItemView.keyboardSearch": ('str',),
- "PySide2.QtWidgets.QAbstractItemView.model": (),
- "PySide2.QtWidgets.QAbstractItemView.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractItemView.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractItemView.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractItemView.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractItemView.moveCursor": ('PySide2.QtWidgets.QAbstractItemView.CursorAction', 'PySide2.QtCore.Qt.KeyboardModifiers'),
- "PySide2.QtWidgets.QAbstractItemView.openPersistentEditor": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QAbstractItemView.reset": (),
- "PySide2.QtWidgets.QAbstractItemView.resetHorizontalScrollMode": (),
- "PySide2.QtWidgets.QAbstractItemView.resetVerticalScrollMode": (),
- "PySide2.QtWidgets.QAbstractItemView.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QAbstractItemView.rootIndex": (),
- "PySide2.QtWidgets.QAbstractItemView.rowsAboutToBeRemoved": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QAbstractItemView.rowsInserted": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QAbstractItemView.scheduleDelayedItemsLayout": (),
- "PySide2.QtWidgets.QAbstractItemView.scrollDirtyRegion": ('int', 'int'),
- "PySide2.QtWidgets.QAbstractItemView.scrollTo": ('PySide2.QtCore.QModelIndex', 'PySide2.QtWidgets.QAbstractItemView.ScrollHint'),
- "PySide2.QtWidgets.QAbstractItemView.scrollToBottom": (),
- "PySide2.QtWidgets.QAbstractItemView.scrollToTop": (),
- "PySide2.QtWidgets.QAbstractItemView.selectAll": (),
- "PySide2.QtWidgets.QAbstractItemView.selectedIndexes": (),
- "PySide2.QtWidgets.QAbstractItemView.selectionBehavior": (),
- "PySide2.QtWidgets.QAbstractItemView.selectionChanged": ('PySide2.QtCore.QItemSelection', 'PySide2.QtCore.QItemSelection'),
- "PySide2.QtWidgets.QAbstractItemView.selectionCommand": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QAbstractItemView.selectionMode": (),
- "PySide2.QtWidgets.QAbstractItemView.selectionModel": (),
- "PySide2.QtWidgets.QAbstractItemView.setAlternatingRowColors": ('bool',),
- "PySide2.QtWidgets.QAbstractItemView.setAutoScroll": ('bool',),
- "PySide2.QtWidgets.QAbstractItemView.setAutoScrollMargin": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.setCurrentIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QAbstractItemView.setDefaultDropAction": ('PySide2.QtCore.Qt.DropAction',),
- "PySide2.QtWidgets.QAbstractItemView.setDirtyRegion": ('PySide2.QtGui.QRegion',),
- "PySide2.QtWidgets.QAbstractItemView.setDragDropMode": ('PySide2.QtWidgets.QAbstractItemView.DragDropMode',),
- "PySide2.QtWidgets.QAbstractItemView.setDragDropOverwriteMode": ('bool',),
- "PySide2.QtWidgets.QAbstractItemView.setDragEnabled": ('bool',),
- "PySide2.QtWidgets.QAbstractItemView.setDropIndicatorShown": ('bool',),
- "PySide2.QtWidgets.QAbstractItemView.setEditTriggers": ('PySide2.QtWidgets.QAbstractItemView.EditTriggers',),
- "PySide2.QtWidgets.QAbstractItemView.setHorizontalScrollMode": ('PySide2.QtWidgets.QAbstractItemView.ScrollMode',),
- "PySide2.QtWidgets.QAbstractItemView.setHorizontalStepsPerItem": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.setIconSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QAbstractItemView.setIndexWidget": ('PySide2.QtCore.QModelIndex', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QAbstractItemView.setItemDelegate": ('PySide2.QtWidgets.QAbstractItemDelegate',),
- "PySide2.QtWidgets.QAbstractItemView.setItemDelegateForColumn": ('int', 'PySide2.QtWidgets.QAbstractItemDelegate'),
- "PySide2.QtWidgets.QAbstractItemView.setItemDelegateForRow": ('int', 'PySide2.QtWidgets.QAbstractItemDelegate'),
- "PySide2.QtWidgets.QAbstractItemView.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QAbstractItemView.setRootIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QAbstractItemView.setSelection": ('PySide2.QtCore.QRect', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags'),
- "PySide2.QtWidgets.QAbstractItemView.setSelectionBehavior": ('PySide2.QtWidgets.QAbstractItemView.SelectionBehavior',),
- "PySide2.QtWidgets.QAbstractItemView.setSelectionMode": ('PySide2.QtWidgets.QAbstractItemView.SelectionMode',),
- "PySide2.QtWidgets.QAbstractItemView.setSelectionModel": ('PySide2.QtCore.QItemSelectionModel',),
- "PySide2.QtWidgets.QAbstractItemView.setState": ('PySide2.QtWidgets.QAbstractItemView.State',),
- "PySide2.QtWidgets.QAbstractItemView.setTabKeyNavigation": ('bool',),
- "PySide2.QtWidgets.QAbstractItemView.setTextElideMode": ('PySide2.QtCore.Qt.TextElideMode',),
- "PySide2.QtWidgets.QAbstractItemView.setVerticalScrollMode": ('PySide2.QtWidgets.QAbstractItemView.ScrollMode',),
- "PySide2.QtWidgets.QAbstractItemView.setVerticalStepsPerItem": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.showDropIndicator": (),
- "PySide2.QtWidgets.QAbstractItemView.sizeHintForColumn": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.sizeHintForIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QAbstractItemView.sizeHintForRow": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.startAutoScroll": (),
- "PySide2.QtWidgets.QAbstractItemView.startDrag": ('PySide2.QtCore.Qt.DropActions',),
- "PySide2.QtWidgets.QAbstractItemView.state": (),
- "PySide2.QtWidgets.QAbstractItemView.stopAutoScroll": (),
- "PySide2.QtWidgets.QAbstractItemView.tabKeyNavigation": (),
- "PySide2.QtWidgets.QAbstractItemView.textElideMode": (),
- "PySide2.QtWidgets.QAbstractItemView.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QAbstractItemView.update": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtWidgets.QAbstractItemView.updateEditorData": (),
- "PySide2.QtWidgets.QAbstractItemView.updateEditorGeometries": (),
- "PySide2.QtWidgets.QAbstractItemView.updateGeometries": (),
- "PySide2.QtWidgets.QAbstractItemView.verticalOffset": (),
- "PySide2.QtWidgets.QAbstractItemView.verticalScrollMode": (),
- "PySide2.QtWidgets.QAbstractItemView.verticalScrollbarAction": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.verticalScrollbarValueChanged": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.verticalStepsPerItem": (),
- "PySide2.QtWidgets.QAbstractItemView.viewOptions": (),
- "PySide2.QtWidgets.QAbstractItemView.viewportEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAbstractItemView.viewportSizeHint": (),
- "PySide2.QtWidgets.QAbstractItemView.visualRect": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QAbstractItemView.visualRegionForSelection": ('PySide2.QtCore.QItemSelection',),
-# class PySide2.QtWidgets.QAbstractScrollArea:
-# class PySide2.QtWidgets.QAbstractScrollArea.SizeAdjustPolicy:
- "PySide2.QtWidgets.QAbstractScrollArea.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QAbstractScrollArea.addScrollBarWidget": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.Alignment'),
- "PySide2.QtWidgets.QAbstractScrollArea.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.cornerWidget": (),
- "PySide2.QtWidgets.QAbstractScrollArea.dragEnterEvent": ('PySide2.QtGui.QDragEnterEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QAbstractScrollArea.horizontalScrollBar": (),
- "PySide2.QtWidgets.QAbstractScrollArea.horizontalScrollBarPolicy": (),
- "PySide2.QtWidgets.QAbstractScrollArea.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.maximumViewportSize": (),
- "PySide2.QtWidgets.QAbstractScrollArea.minimumSizeHint": (),
- "PySide2.QtWidgets.QAbstractScrollArea.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.scrollBarWidgets": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QAbstractScrollArea.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QAbstractScrollArea.setCornerWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QAbstractScrollArea.setHorizontalScrollBar": ('PySide2.QtWidgets.QScrollBar',),
- "PySide2.QtWidgets.QAbstractScrollArea.setHorizontalScrollBarPolicy": ('PySide2.QtCore.Qt.ScrollBarPolicy',),
- "PySide2.QtWidgets.QAbstractScrollArea.setSizeAdjustPolicy": ('PySide2.QtWidgets.QAbstractScrollArea.SizeAdjustPolicy',),
- "PySide2.QtWidgets.QAbstractScrollArea.setVerticalScrollBar": ('PySide2.QtWidgets.QScrollBar',),
- "PySide2.QtWidgets.QAbstractScrollArea.setVerticalScrollBarPolicy": ('PySide2.QtCore.Qt.ScrollBarPolicy',),
- "PySide2.QtWidgets.QAbstractScrollArea.setViewport": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QAbstractScrollArea.setViewportMargins": [('PySide2.QtCore.QMargins',), ('int', 'int', 'int', 'int')],
- "PySide2.QtWidgets.QAbstractScrollArea.setupViewport": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QAbstractScrollArea.sizeAdjustPolicy": (),
- "PySide2.QtWidgets.QAbstractScrollArea.sizeHint": (),
- "PySide2.QtWidgets.QAbstractScrollArea.verticalScrollBar": (),
- "PySide2.QtWidgets.QAbstractScrollArea.verticalScrollBarPolicy": (),
- "PySide2.QtWidgets.QAbstractScrollArea.viewport": (),
- "PySide2.QtWidgets.QAbstractScrollArea.viewportEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.viewportMargins": (),
- "PySide2.QtWidgets.QAbstractScrollArea.viewportSizeHint": (),
- "PySide2.QtWidgets.QAbstractScrollArea.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtWidgets.QAbstractSlider:
-# class PySide2.QtWidgets.QAbstractSlider.SliderAction:
-# class PySide2.QtWidgets.QAbstractSlider.SliderChange:
- "PySide2.QtWidgets.QAbstractSlider.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QAbstractSlider.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAbstractSlider.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAbstractSlider.hasTracking": (),
- "PySide2.QtWidgets.QAbstractSlider.invertedAppearance": (),
- "PySide2.QtWidgets.QAbstractSlider.invertedControls": (),
- "PySide2.QtWidgets.QAbstractSlider.isSliderDown": (),
- "PySide2.QtWidgets.QAbstractSlider.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QAbstractSlider.maximum": (),
- "PySide2.QtWidgets.QAbstractSlider.minimum": (),
- "PySide2.QtWidgets.QAbstractSlider.orientation": (),
- "PySide2.QtWidgets.QAbstractSlider.pageStep": (),
- "PySide2.QtWidgets.QAbstractSlider.repeatAction": (),
- "PySide2.QtWidgets.QAbstractSlider.setInvertedAppearance": ('bool',),
- "PySide2.QtWidgets.QAbstractSlider.setInvertedControls": ('bool',),
- "PySide2.QtWidgets.QAbstractSlider.setMaximum": ('int',),
- "PySide2.QtWidgets.QAbstractSlider.setMinimum": ('int',),
- "PySide2.QtWidgets.QAbstractSlider.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtWidgets.QAbstractSlider.setPageStep": ('int',),
- "PySide2.QtWidgets.QAbstractSlider.setRange": ('int', 'int'),
- "PySide2.QtWidgets.QAbstractSlider.setRepeatAction": ('PySide2.QtWidgets.QAbstractSlider.SliderAction', 'int', 'int'),
- "PySide2.QtWidgets.QAbstractSlider.setSingleStep": ('int',),
- "PySide2.QtWidgets.QAbstractSlider.setSliderDown": ('bool',),
- "PySide2.QtWidgets.QAbstractSlider.setSliderPosition": ('int',),
- "PySide2.QtWidgets.QAbstractSlider.setTracking": ('bool',),
- "PySide2.QtWidgets.QAbstractSlider.setValue": ('int',),
- "PySide2.QtWidgets.QAbstractSlider.singleStep": (),
- "PySide2.QtWidgets.QAbstractSlider.sliderChange": ('PySide2.QtWidgets.QAbstractSlider.SliderChange',),
- "PySide2.QtWidgets.QAbstractSlider.sliderPosition": (),
- "PySide2.QtWidgets.QAbstractSlider.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QAbstractSlider.triggerAction": ('PySide2.QtWidgets.QAbstractSlider.SliderAction',),
- "PySide2.QtWidgets.QAbstractSlider.value": (),
- "PySide2.QtWidgets.QAbstractSlider.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtWidgets.QAbstractSpinBox:
-# class PySide2.QtWidgets.QAbstractSpinBox.ButtonSymbols:
-# class PySide2.QtWidgets.QAbstractSpinBox.CorrectionMode:
-# class PySide2.QtWidgets.QAbstractSpinBox.StepEnabled:
-# class PySide2.QtWidgets.QAbstractSpinBox.StepEnabledFlag:
-# class PySide2.QtWidgets.QAbstractSpinBox.StepType:
- "PySide2.QtWidgets.QAbstractSpinBox.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QAbstractSpinBox.alignment": (),
- "PySide2.QtWidgets.QAbstractSpinBox.buttonSymbols": (),
- "PySide2.QtWidgets.QAbstractSpinBox.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.clear": (),
- "PySide2.QtWidgets.QAbstractSpinBox.closeEvent": ('PySide2.QtGui.QCloseEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.correctionMode": (),
- "PySide2.QtWidgets.QAbstractSpinBox.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.fixup": ('str',),
- "PySide2.QtWidgets.QAbstractSpinBox.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.hasAcceptableInput": (),
- "PySide2.QtWidgets.QAbstractSpinBox.hasFrame": (),
- "PySide2.QtWidgets.QAbstractSpinBox.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.initStyleOption": ('PySide2.QtWidgets.QStyleOptionSpinBox',),
- "PySide2.QtWidgets.QAbstractSpinBox.inputMethodQuery": ('PySide2.QtCore.Qt.InputMethodQuery',),
- "PySide2.QtWidgets.QAbstractSpinBox.interpretText": (),
- "PySide2.QtWidgets.QAbstractSpinBox.isAccelerated": (),
- "PySide2.QtWidgets.QAbstractSpinBox.isGroupSeparatorShown": (),
- "PySide2.QtWidgets.QAbstractSpinBox.isReadOnly": (),
- "PySide2.QtWidgets.QAbstractSpinBox.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.keyboardTracking": (),
- "PySide2.QtWidgets.QAbstractSpinBox.lineEdit": (),
- "PySide2.QtWidgets.QAbstractSpinBox.minimumSizeHint": (),
- "PySide2.QtWidgets.QAbstractSpinBox.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.selectAll": (),
- "PySide2.QtWidgets.QAbstractSpinBox.setAccelerated": ('bool',),
- "PySide2.QtWidgets.QAbstractSpinBox.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QAbstractSpinBox.setButtonSymbols": ('PySide2.QtWidgets.QAbstractSpinBox.ButtonSymbols',),
- "PySide2.QtWidgets.QAbstractSpinBox.setCorrectionMode": ('PySide2.QtWidgets.QAbstractSpinBox.CorrectionMode',),
- "PySide2.QtWidgets.QAbstractSpinBox.setFrame": ('bool',),
- "PySide2.QtWidgets.QAbstractSpinBox.setGroupSeparatorShown": ('bool',),
- "PySide2.QtWidgets.QAbstractSpinBox.setKeyboardTracking": ('bool',),
- "PySide2.QtWidgets.QAbstractSpinBox.setLineEdit": ('PySide2.QtWidgets.QLineEdit',),
- "PySide2.QtWidgets.QAbstractSpinBox.setReadOnly": ('bool',),
- "PySide2.QtWidgets.QAbstractSpinBox.setSpecialValueText": ('str',),
- "PySide2.QtWidgets.QAbstractSpinBox.setWrapping": ('bool',),
- "PySide2.QtWidgets.QAbstractSpinBox.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.sizeHint": (),
- "PySide2.QtWidgets.QAbstractSpinBox.specialValueText": (),
- "PySide2.QtWidgets.QAbstractSpinBox.stepBy": ('int',),
- "PySide2.QtWidgets.QAbstractSpinBox.stepDown": (),
- "PySide2.QtWidgets.QAbstractSpinBox.stepEnabled": (),
- "PySide2.QtWidgets.QAbstractSpinBox.stepUp": (),
- "PySide2.QtWidgets.QAbstractSpinBox.text": (),
- "PySide2.QtWidgets.QAbstractSpinBox.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.validate": ('str', 'int'),
- "PySide2.QtWidgets.QAbstractSpinBox.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.wrapping": (),
-# class PySide2.QtWidgets.QAccessibleWidget:
- "PySide2.QtWidgets.QAccessibleWidget.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtGui.QAccessible.Role', 'str'),
- "PySide2.QtWidgets.QAccessibleWidget.actionNames": (),
- "PySide2.QtWidgets.QAccessibleWidget.addControllingSignal": ('str',),
- "PySide2.QtWidgets.QAccessibleWidget.backgroundColor": (),
- "PySide2.QtWidgets.QAccessibleWidget.child": ('int',),
- "PySide2.QtWidgets.QAccessibleWidget.childCount": (),
- "PySide2.QtWidgets.QAccessibleWidget.doAction": ('str',),
- "PySide2.QtWidgets.QAccessibleWidget.focusChild": (),
- "PySide2.QtWidgets.QAccessibleWidget.foregroundColor": (),
- "PySide2.QtWidgets.QAccessibleWidget.indexOfChild": ('PySide2.QtGui.QAccessibleInterface',),
- "PySide2.QtWidgets.QAccessibleWidget.interface_cast": ('PySide2.QtGui.QAccessible.InterfaceType',),
- "PySide2.QtWidgets.QAccessibleWidget.isValid": (),
- "PySide2.QtWidgets.QAccessibleWidget.keyBindingsForAction": ('str',),
- "PySide2.QtWidgets.QAccessibleWidget.parent": (),
- "PySide2.QtWidgets.QAccessibleWidget.parentObject": (),
- "PySide2.QtWidgets.QAccessibleWidget.rect": (),
- "PySide2.QtWidgets.QAccessibleWidget.relations": ('PySide2.QtGui.QAccessible.Relation',),
- "PySide2.QtWidgets.QAccessibleWidget.role": (),
- "PySide2.QtWidgets.QAccessibleWidget.state": (),
- "PySide2.QtWidgets.QAccessibleWidget.text": ('PySide2.QtGui.QAccessible.Text',),
- "PySide2.QtWidgets.QAccessibleWidget.widget": (),
- "PySide2.QtWidgets.QAccessibleWidget.window": (),
-# class PySide2.QtWidgets.QAction:
-# class PySide2.QtWidgets.QAction.ActionEvent:
-# class PySide2.QtWidgets.QAction.MenuRole:
-# class PySide2.QtWidgets.QAction.Priority:
- "PySide2.QtWidgets.QAction.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtGui.QIcon', 'str', 'PySide2.QtCore.QObject'), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtWidgets.QAction.actionGroup": (),
- "PySide2.QtWidgets.QAction.activate": ('PySide2.QtWidgets.QAction.ActionEvent',),
- "PySide2.QtWidgets.QAction.associatedGraphicsWidgets": (),
- "PySide2.QtWidgets.QAction.associatedWidgets": (),
- "PySide2.QtWidgets.QAction.autoRepeat": (),
- "PySide2.QtWidgets.QAction.data": (),
- "PySide2.QtWidgets.QAction.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAction.font": (),
- "PySide2.QtWidgets.QAction.hover": (),
- "PySide2.QtWidgets.QAction.icon": (),
- "PySide2.QtWidgets.QAction.iconText": (),
- "PySide2.QtWidgets.QAction.isCheckable": (),
- "PySide2.QtWidgets.QAction.isChecked": (),
- "PySide2.QtWidgets.QAction.isEnabled": (),
- "PySide2.QtWidgets.QAction.isIconVisibleInMenu": (),
- "PySide2.QtWidgets.QAction.isSeparator": (),
- "PySide2.QtWidgets.QAction.isShortcutVisibleInContextMenu": (),
- "PySide2.QtWidgets.QAction.isVisible": (),
- "PySide2.QtWidgets.QAction.menu": (),
- "PySide2.QtWidgets.QAction.menuRole": (),
- "PySide2.QtWidgets.QAction.parentWidget": (),
- "PySide2.QtWidgets.QAction.priority": (),
- "PySide2.QtWidgets.QAction.setActionGroup": ('PySide2.QtWidgets.QActionGroup',),
- "PySide2.QtWidgets.QAction.setAutoRepeat": ('bool',),
- "PySide2.QtWidgets.QAction.setCheckable": ('bool',),
- "PySide2.QtWidgets.QAction.setChecked": ('bool',),
- "PySide2.QtWidgets.QAction.setData": ('typing.Any',),
- "PySide2.QtWidgets.QAction.setDisabled": ('bool',),
- "PySide2.QtWidgets.QAction.setEnabled": ('bool',),
- "PySide2.QtWidgets.QAction.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QAction.setIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtWidgets.QAction.setIconText": ('str',),
- "PySide2.QtWidgets.QAction.setIconVisibleInMenu": ('bool',),
- "PySide2.QtWidgets.QAction.setMenu": ('PySide2.QtWidgets.QMenu',),
- "PySide2.QtWidgets.QAction.setMenuRole": ('PySide2.QtWidgets.QAction.MenuRole',),
- "PySide2.QtWidgets.QAction.setPriority": ('PySide2.QtWidgets.QAction.Priority',),
- "PySide2.QtWidgets.QAction.setSeparator": ('bool',),
- "PySide2.QtWidgets.QAction.setShortcut": ('PySide2.QtGui.QKeySequence',),
- "PySide2.QtWidgets.QAction.setShortcutContext": ('PySide2.QtCore.Qt.ShortcutContext',),
- "PySide2.QtWidgets.QAction.setShortcutVisibleInContextMenu": ('bool',),
- "PySide2.QtWidgets.QAction.setShortcuts": [('PySide2.QtGui.QKeySequence.StandardKey',), ('typing.Sequence[PySide2.QtGui.QKeySequence]',)],
- "PySide2.QtWidgets.QAction.setStatusTip": ('str',),
- "PySide2.QtWidgets.QAction.setText": ('str',),
- "PySide2.QtWidgets.QAction.setToolTip": ('str',),
- "PySide2.QtWidgets.QAction.setVisible": ('bool',),
- "PySide2.QtWidgets.QAction.setWhatsThis": ('str',),
- "PySide2.QtWidgets.QAction.shortcut": (),
- "PySide2.QtWidgets.QAction.shortcutContext": (),
- "PySide2.QtWidgets.QAction.shortcuts": (),
- "PySide2.QtWidgets.QAction.showStatusText": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QAction.statusTip": (),
- "PySide2.QtWidgets.QAction.text": (),
- "PySide2.QtWidgets.QAction.toggle": (),
- "PySide2.QtWidgets.QAction.toolTip": (),
- "PySide2.QtWidgets.QAction.trigger": (),
- "PySide2.QtWidgets.QAction.whatsThis": (),
-# class PySide2.QtWidgets.QActionGroup:
-# class PySide2.QtWidgets.QActionGroup.ExclusionPolicy:
- "PySide2.QtWidgets.QActionGroup.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QActionGroup.actions": (),
- "PySide2.QtWidgets.QActionGroup.addAction": [('PySide2.QtGui.QIcon', 'str'), ('PySide2.QtWidgets.QAction',), ('str',)],
- "PySide2.QtWidgets.QActionGroup.checkedAction": (),
- "PySide2.QtWidgets.QActionGroup.exclusionPolicy": (),
- "PySide2.QtWidgets.QActionGroup.isEnabled": (),
- "PySide2.QtWidgets.QActionGroup.isExclusive": (),
- "PySide2.QtWidgets.QActionGroup.isVisible": (),
- "PySide2.QtWidgets.QActionGroup.removeAction": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QActionGroup.setDisabled": ('bool',),
- "PySide2.QtWidgets.QActionGroup.setEnabled": ('bool',),
- "PySide2.QtWidgets.QActionGroup.setExclusionPolicy": ('PySide2.QtWidgets.QActionGroup.ExclusionPolicy',),
- "PySide2.QtWidgets.QActionGroup.setExclusive": ('bool',),
- "PySide2.QtWidgets.QActionGroup.setVisible": ('bool',),
-# class PySide2.QtWidgets.QApplication:
-# class PySide2.QtWidgets.QApplication.ColorSpec:
- "PySide2.QtWidgets.QApplication.__init__": [(), ('typing.Sequence[str]',)],
- "PySide2.QtWidgets.QApplication.aboutQt": (),
- "PySide2.QtWidgets.QApplication.activeModalWidget": (),
- "PySide2.QtWidgets.QApplication.activePopupWidget": (),
- "PySide2.QtWidgets.QApplication.activeWindow": (),
- "PySide2.QtWidgets.QApplication.alert": ('PySide2.QtWidgets.QWidget', 'int'),
- "PySide2.QtWidgets.QApplication.allWidgets": (),
- "PySide2.QtWidgets.QApplication.autoSipEnabled": (),
- "PySide2.QtWidgets.QApplication.beep": (),
- "PySide2.QtWidgets.QApplication.closeAllWindows": (),
- "PySide2.QtWidgets.QApplication.colorSpec": (),
- "PySide2.QtWidgets.QApplication.cursorFlashTime": (),
- "PySide2.QtWidgets.QApplication.desktop": (),
- "PySide2.QtWidgets.QApplication.doubleClickInterval": (),
- "PySide2.QtWidgets.QApplication.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QApplication.exec_": (),
- "PySide2.QtWidgets.QApplication.focusWidget": (),
- "PySide2.QtWidgets.QApplication.font": [(), ('PySide2.QtWidgets.QWidget',), ('str',)],
- "PySide2.QtWidgets.QApplication.fontMetrics": (),
- "PySide2.QtWidgets.QApplication.globalStrut": (),
- "PySide2.QtWidgets.QApplication.isEffectEnabled": ('PySide2.QtCore.Qt.UIEffect',),
- "PySide2.QtWidgets.QApplication.keyboardInputInterval": (),
- "PySide2.QtWidgets.QApplication.notify": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QApplication.palette": [(), ('PySide2.QtWidgets.QWidget',), ('str',)],
- "PySide2.QtWidgets.QApplication.setActiveWindow": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QApplication.setAutoSipEnabled": ('bool',),
- "PySide2.QtWidgets.QApplication.setColorSpec": ('int',),
- "PySide2.QtWidgets.QApplication.setCursorFlashTime": ('int',),
- "PySide2.QtWidgets.QApplication.setDoubleClickInterval": ('int',),
- "PySide2.QtWidgets.QApplication.setEffectEnabled": ('PySide2.QtCore.Qt.UIEffect', 'bool'),
- "PySide2.QtWidgets.QApplication.setFont": [('PySide2.QtGui.QFont',), ('PySide2.QtGui.QFont', 'str')],
- "PySide2.QtWidgets.QApplication.setGlobalStrut": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QApplication.setKeyboardInputInterval": ('int',),
- "PySide2.QtWidgets.QApplication.setPalette": [('PySide2.QtGui.QPalette',), ('PySide2.QtGui.QPalette', 'str')],
- "PySide2.QtWidgets.QApplication.setStartDragDistance": ('int',),
- "PySide2.QtWidgets.QApplication.setStartDragTime": ('int',),
- "PySide2.QtWidgets.QApplication.setStyle": [('PySide2.QtWidgets.QStyle',), ('str',)],
- "PySide2.QtWidgets.QApplication.setStyleSheet": ('str',),
- "PySide2.QtWidgets.QApplication.setWheelScrollLines": ('int',),
- "PySide2.QtWidgets.QApplication.setWindowIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtWidgets.QApplication.startDragDistance": (),
- "PySide2.QtWidgets.QApplication.startDragTime": (),
- "PySide2.QtWidgets.QApplication.style": (),
- "PySide2.QtWidgets.QApplication.styleSheet": (),
- "PySide2.QtWidgets.QApplication.topLevelAt": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtWidgets.QApplication.topLevelWidgets": (),
- "PySide2.QtWidgets.QApplication.wheelScrollLines": (),
- "PySide2.QtWidgets.QApplication.widgetAt": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtWidgets.QApplication.windowIcon": (),
-# class PySide2.QtWidgets.QBoxLayout:
-# class PySide2.QtWidgets.QBoxLayout.Direction:
- "PySide2.QtWidgets.QBoxLayout.__init__": ('PySide2.QtWidgets.QBoxLayout.Direction', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QBoxLayout.addItem": ('PySide2.QtWidgets.QLayoutItem',),
- "PySide2.QtWidgets.QBoxLayout.addLayout": ('PySide2.QtWidgets.QLayout', 'int'),
- "PySide2.QtWidgets.QBoxLayout.addSpacerItem": ('PySide2.QtWidgets.QSpacerItem',),
- "PySide2.QtWidgets.QBoxLayout.addSpacing": ('int',),
- "PySide2.QtWidgets.QBoxLayout.addStretch": ('int',),
- "PySide2.QtWidgets.QBoxLayout.addStrut": ('int',),
- "PySide2.QtWidgets.QBoxLayout.addWidget": [('PySide2.QtWidgets.QWidget',), ('PySide2.QtWidgets.QWidget', 'int', 'PySide2.QtCore.Qt.Alignment')],
- "PySide2.QtWidgets.QBoxLayout.count": (),
- "PySide2.QtWidgets.QBoxLayout.direction": (),
- "PySide2.QtWidgets.QBoxLayout.expandingDirections": (),
- "PySide2.QtWidgets.QBoxLayout.hasHeightForWidth": (),
- "PySide2.QtWidgets.QBoxLayout.heightForWidth": ('int',),
- "PySide2.QtWidgets.QBoxLayout.insertItem": ('int', 'PySide2.QtWidgets.QLayoutItem'),
- "PySide2.QtWidgets.QBoxLayout.insertLayout": ('int', 'PySide2.QtWidgets.QLayout', 'int'),
- "PySide2.QtWidgets.QBoxLayout.insertSpacerItem": ('int', 'PySide2.QtWidgets.QSpacerItem'),
- "PySide2.QtWidgets.QBoxLayout.insertSpacing": ('int', 'int'),
- "PySide2.QtWidgets.QBoxLayout.insertStretch": ('int', 'int'),
- "PySide2.QtWidgets.QBoxLayout.insertWidget": ('int', 'PySide2.QtWidgets.QWidget', 'int', 'PySide2.QtCore.Qt.Alignment'),
- "PySide2.QtWidgets.QBoxLayout.invalidate": (),
- "PySide2.QtWidgets.QBoxLayout.itemAt": ('int',),
- "PySide2.QtWidgets.QBoxLayout.maximumSize": (),
- "PySide2.QtWidgets.QBoxLayout.minimumHeightForWidth": ('int',),
- "PySide2.QtWidgets.QBoxLayout.minimumSize": (),
- "PySide2.QtWidgets.QBoxLayout.setDirection": ('PySide2.QtWidgets.QBoxLayout.Direction',),
- "PySide2.QtWidgets.QBoxLayout.setGeometry": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QBoxLayout.setSpacing": ('int',),
- "PySide2.QtWidgets.QBoxLayout.setStretch": ('int', 'int'),
- "PySide2.QtWidgets.QBoxLayout.setStretchFactor": [('PySide2.QtWidgets.QLayout', 'int'), ('PySide2.QtWidgets.QWidget', 'int')],
- "PySide2.QtWidgets.QBoxLayout.sizeHint": (),
- "PySide2.QtWidgets.QBoxLayout.spacing": (),
- "PySide2.QtWidgets.QBoxLayout.stretch": ('int',),
- "PySide2.QtWidgets.QBoxLayout.takeAt": ('int',),
-# class PySide2.QtWidgets.QButtonGroup:
- "PySide2.QtWidgets.QButtonGroup.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QButtonGroup.addButton": ('PySide2.QtWidgets.QAbstractButton', 'int'),
- "PySide2.QtWidgets.QButtonGroup.button": ('int',),
- "PySide2.QtWidgets.QButtonGroup.buttons": (),
- "PySide2.QtWidgets.QButtonGroup.checkedButton": (),
- "PySide2.QtWidgets.QButtonGroup.checkedId": (),
- "PySide2.QtWidgets.QButtonGroup.exclusive": (),
- "PySide2.QtWidgets.QButtonGroup.id": ('PySide2.QtWidgets.QAbstractButton',),
- "PySide2.QtWidgets.QButtonGroup.removeButton": ('PySide2.QtWidgets.QAbstractButton',),
- "PySide2.QtWidgets.QButtonGroup.setExclusive": ('bool',),
- "PySide2.QtWidgets.QButtonGroup.setId": ('PySide2.QtWidgets.QAbstractButton', 'int'),
-# class PySide2.QtWidgets.QCalendarWidget:
-# class PySide2.QtWidgets.QCalendarWidget.HorizontalHeaderFormat:
-# class PySide2.QtWidgets.QCalendarWidget.SelectionMode:
-# class PySide2.QtWidgets.QCalendarWidget.VerticalHeaderFormat:
- "PySide2.QtWidgets.QCalendarWidget.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QCalendarWidget.calendar": (),
- "PySide2.QtWidgets.QCalendarWidget.dateEditAcceptDelay": (),
- "PySide2.QtWidgets.QCalendarWidget.dateTextFormat": [(), ('PySide2.QtCore.QDate',)],
- "PySide2.QtWidgets.QCalendarWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QCalendarWidget.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QCalendarWidget.firstDayOfWeek": (),
- "PySide2.QtWidgets.QCalendarWidget.headerTextFormat": (),
- "PySide2.QtWidgets.QCalendarWidget.horizontalHeaderFormat": (),
- "PySide2.QtWidgets.QCalendarWidget.isDateEditEnabled": (),
- "PySide2.QtWidgets.QCalendarWidget.isGridVisible": (),
- "PySide2.QtWidgets.QCalendarWidget.isNavigationBarVisible": (),
- "PySide2.QtWidgets.QCalendarWidget.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QCalendarWidget.maximumDate": (),
- "PySide2.QtWidgets.QCalendarWidget.minimumDate": (),
- "PySide2.QtWidgets.QCalendarWidget.minimumSizeHint": (),
- "PySide2.QtWidgets.QCalendarWidget.monthShown": (),
- "PySide2.QtWidgets.QCalendarWidget.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QCalendarWidget.paintCell": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRect', 'PySide2.QtCore.QDate'),
- "PySide2.QtWidgets.QCalendarWidget.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QCalendarWidget.selectedDate": (),
- "PySide2.QtWidgets.QCalendarWidget.selectionMode": (),
- "PySide2.QtWidgets.QCalendarWidget.setCalendar": ('PySide2.QtCore.QCalendar',),
- "PySide2.QtWidgets.QCalendarWidget.setCurrentPage": ('int', 'int'),
- "PySide2.QtWidgets.QCalendarWidget.setDateEditAcceptDelay": ('int',),
- "PySide2.QtWidgets.QCalendarWidget.setDateEditEnabled": ('bool',),
- "PySide2.QtWidgets.QCalendarWidget.setDateRange": ('PySide2.QtCore.QDate', 'PySide2.QtCore.QDate'),
- "PySide2.QtWidgets.QCalendarWidget.setDateTextFormat": ('PySide2.QtCore.QDate', 'PySide2.QtGui.QTextCharFormat'),
- "PySide2.QtWidgets.QCalendarWidget.setFirstDayOfWeek": ('PySide2.QtCore.Qt.DayOfWeek',),
- "PySide2.QtWidgets.QCalendarWidget.setGridVisible": ('bool',),
- "PySide2.QtWidgets.QCalendarWidget.setHeaderTextFormat": ('PySide2.QtGui.QTextCharFormat',),
- "PySide2.QtWidgets.QCalendarWidget.setHorizontalHeaderFormat": ('PySide2.QtWidgets.QCalendarWidget.HorizontalHeaderFormat',),
- "PySide2.QtWidgets.QCalendarWidget.setMaximumDate": ('PySide2.QtCore.QDate',),
- "PySide2.QtWidgets.QCalendarWidget.setMinimumDate": ('PySide2.QtCore.QDate',),
- "PySide2.QtWidgets.QCalendarWidget.setNavigationBarVisible": ('bool',),
- "PySide2.QtWidgets.QCalendarWidget.setSelectedDate": ('PySide2.QtCore.QDate',),
- "PySide2.QtWidgets.QCalendarWidget.setSelectionMode": ('PySide2.QtWidgets.QCalendarWidget.SelectionMode',),
- "PySide2.QtWidgets.QCalendarWidget.setVerticalHeaderFormat": ('PySide2.QtWidgets.QCalendarWidget.VerticalHeaderFormat',),
- "PySide2.QtWidgets.QCalendarWidget.setWeekdayTextFormat": ('PySide2.QtCore.Qt.DayOfWeek', 'PySide2.QtGui.QTextCharFormat'),
- "PySide2.QtWidgets.QCalendarWidget.showNextMonth": (),
- "PySide2.QtWidgets.QCalendarWidget.showNextYear": (),
- "PySide2.QtWidgets.QCalendarWidget.showPreviousMonth": (),
- "PySide2.QtWidgets.QCalendarWidget.showPreviousYear": (),
- "PySide2.QtWidgets.QCalendarWidget.showSelectedDate": (),
- "PySide2.QtWidgets.QCalendarWidget.showToday": (),
- "PySide2.QtWidgets.QCalendarWidget.sizeHint": (),
- "PySide2.QtWidgets.QCalendarWidget.updateCell": ('PySide2.QtCore.QDate',),
- "PySide2.QtWidgets.QCalendarWidget.updateCells": (),
- "PySide2.QtWidgets.QCalendarWidget.verticalHeaderFormat": (),
- "PySide2.QtWidgets.QCalendarWidget.weekdayTextFormat": ('PySide2.QtCore.Qt.DayOfWeek',),
- "PySide2.QtWidgets.QCalendarWidget.yearShown": (),
-# class PySide2.QtWidgets.QCheckBox:
- "PySide2.QtWidgets.QCheckBox.__init__": [('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QCheckBox.checkState": (),
- "PySide2.QtWidgets.QCheckBox.checkStateSet": (),
- "PySide2.QtWidgets.QCheckBox.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QCheckBox.hitButton": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QCheckBox.initStyleOption": ('PySide2.QtWidgets.QStyleOptionButton',),
- "PySide2.QtWidgets.QCheckBox.isTristate": (),
- "PySide2.QtWidgets.QCheckBox.minimumSizeHint": (),
- "PySide2.QtWidgets.QCheckBox.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QCheckBox.nextCheckState": (),
- "PySide2.QtWidgets.QCheckBox.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QCheckBox.setCheckState": ('PySide2.QtCore.Qt.CheckState',),
- "PySide2.QtWidgets.QCheckBox.setTristate": ('bool',),
- "PySide2.QtWidgets.QCheckBox.sizeHint": (),
-# class PySide2.QtWidgets.QColorDialog:
-# class PySide2.QtWidgets.QColorDialog.ColorDialogOption:
-# class PySide2.QtWidgets.QColorDialog.ColorDialogOptions:
- "PySide2.QtWidgets.QColorDialog.__init__": [('PySide2.QtGui.QColor', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QColorDialog.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QColorDialog.currentColor": (),
- "PySide2.QtWidgets.QColorDialog.customColor": ('int',),
- "PySide2.QtWidgets.QColorDialog.customCount": (),
- "PySide2.QtWidgets.QColorDialog.done": ('int',),
- "PySide2.QtWidgets.QColorDialog.getColor": ('PySide2.QtGui.QColor', 'PySide2.QtWidgets.QWidget', 'str', 'PySide2.QtWidgets.QColorDialog.ColorDialogOptions'),
- "PySide2.QtWidgets.QColorDialog.open": [(), ('PySide2.QtCore.QObject', 'str')],
- "PySide2.QtWidgets.QColorDialog.options": (),
- "PySide2.QtWidgets.QColorDialog.selectedColor": (),
- "PySide2.QtWidgets.QColorDialog.setCurrentColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QColorDialog.setCustomColor": ('int', 'PySide2.QtGui.QColor'),
- "PySide2.QtWidgets.QColorDialog.setOption": ('PySide2.QtWidgets.QColorDialog.ColorDialogOption', 'bool'),
- "PySide2.QtWidgets.QColorDialog.setOptions": ('PySide2.QtWidgets.QColorDialog.ColorDialogOptions',),
- "PySide2.QtWidgets.QColorDialog.setStandardColor": ('int', 'PySide2.QtGui.QColor'),
- "PySide2.QtWidgets.QColorDialog.setVisible": ('bool',),
- "PySide2.QtWidgets.QColorDialog.standardColor": ('int',),
- "PySide2.QtWidgets.QColorDialog.testOption": ('PySide2.QtWidgets.QColorDialog.ColorDialogOption',),
-# class PySide2.QtWidgets.QColormap:
-# class PySide2.QtWidgets.QColormap.Mode:
- "PySide2.QtWidgets.QColormap.__init__": ('PySide2.QtWidgets.QColormap',),
- "PySide2.QtWidgets.QColormap.__copy__": (),
- "PySide2.QtWidgets.QColormap.cleanup": (),
- "PySide2.QtWidgets.QColormap.colorAt": ('int',),
- "PySide2.QtWidgets.QColormap.colormap": (),
- "PySide2.QtWidgets.QColormap.depth": (),
- "PySide2.QtWidgets.QColormap.initialize": (),
- "PySide2.QtWidgets.QColormap.instance": ('int',),
- "PySide2.QtWidgets.QColormap.mode": (),
- "PySide2.QtWidgets.QColormap.pixel": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QColormap.size": (),
-# class PySide2.QtWidgets.QColumnView:
- "PySide2.QtWidgets.QColumnView.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QColumnView.columnWidths": (),
- "PySide2.QtWidgets.QColumnView.createColumn": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QColumnView.currentChanged": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QColumnView.horizontalOffset": (),
- "PySide2.QtWidgets.QColumnView.indexAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QColumnView.initializeColumn": ('PySide2.QtWidgets.QAbstractItemView',),
- "PySide2.QtWidgets.QColumnView.isIndexHidden": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QColumnView.moveCursor": ('PySide2.QtWidgets.QAbstractItemView.CursorAction', 'PySide2.QtCore.Qt.KeyboardModifiers'),
- "PySide2.QtWidgets.QColumnView.previewWidget": (),
- "PySide2.QtWidgets.QColumnView.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QColumnView.resizeGripsVisible": (),
- "PySide2.QtWidgets.QColumnView.rowsInserted": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QColumnView.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QColumnView.scrollTo": ('PySide2.QtCore.QModelIndex', 'PySide2.QtWidgets.QAbstractItemView.ScrollHint'),
- "PySide2.QtWidgets.QColumnView.selectAll": (),
- "PySide2.QtWidgets.QColumnView.setColumnWidths": ('typing.Sequence[int]',),
- "PySide2.QtWidgets.QColumnView.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QColumnView.setPreviewWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QColumnView.setResizeGripsVisible": ('bool',),
- "PySide2.QtWidgets.QColumnView.setRootIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QColumnView.setSelection": ('PySide2.QtCore.QRect', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags'),
- "PySide2.QtWidgets.QColumnView.setSelectionModel": ('PySide2.QtCore.QItemSelectionModel',),
- "PySide2.QtWidgets.QColumnView.sizeHint": (),
- "PySide2.QtWidgets.QColumnView.verticalOffset": (),
- "PySide2.QtWidgets.QColumnView.visualRect": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QColumnView.visualRegionForSelection": ('PySide2.QtCore.QItemSelection',),
-# class PySide2.QtWidgets.QComboBox:
-# class PySide2.QtWidgets.QComboBox.InsertPolicy:
-# class PySide2.QtWidgets.QComboBox.SizeAdjustPolicy:
- "PySide2.QtWidgets.QComboBox.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QComboBox.addItem": [('PySide2.QtGui.QIcon', 'str', 'typing.Any'), ('str', 'typing.Any')],
- "PySide2.QtWidgets.QComboBox.addItems": ('typing.Sequence[str]',),
- "PySide2.QtWidgets.QComboBox.autoCompletion": (),
- "PySide2.QtWidgets.QComboBox.autoCompletionCaseSensitivity": (),
- "PySide2.QtWidgets.QComboBox.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QComboBox.clear": (),
- "PySide2.QtWidgets.QComboBox.clearEditText": (),
- "PySide2.QtWidgets.QComboBox.completer": (),
- "PySide2.QtWidgets.QComboBox.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QComboBox.count": (),
- "PySide2.QtWidgets.QComboBox.currentData": ('int',),
- "PySide2.QtWidgets.QComboBox.currentIndex": (),
- "PySide2.QtWidgets.QComboBox.currentText": (),
- "PySide2.QtWidgets.QComboBox.duplicatesEnabled": (),
- "PySide2.QtWidgets.QComboBox.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QComboBox.findData": ('typing.Any', 'int', 'PySide2.QtCore.Qt.MatchFlags'),
- "PySide2.QtWidgets.QComboBox.findText": ('str', 'PySide2.QtCore.Qt.MatchFlags'),
- "PySide2.QtWidgets.QComboBox.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QComboBox.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QComboBox.hasFrame": (),
- "PySide2.QtWidgets.QComboBox.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWidgets.QComboBox.hidePopup": (),
- "PySide2.QtWidgets.QComboBox.iconSize": (),
- "PySide2.QtWidgets.QComboBox.initStyleOption": ('PySide2.QtWidgets.QStyleOptionComboBox',),
- "PySide2.QtWidgets.QComboBox.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QComboBox.inputMethodQuery": [('PySide2.QtCore.Qt.InputMethodQuery',), ('PySide2.QtCore.Qt.InputMethodQuery', 'typing.Any')],
- "PySide2.QtWidgets.QComboBox.insertItem": [('int', 'PySide2.QtGui.QIcon', 'str', 'typing.Any'), ('int', 'str', 'typing.Any')],
- "PySide2.QtWidgets.QComboBox.insertItems": ('int', 'typing.Sequence[str]'),
- "PySide2.QtWidgets.QComboBox.insertPolicy": (),
- "PySide2.QtWidgets.QComboBox.insertSeparator": ('int',),
- "PySide2.QtWidgets.QComboBox.isEditable": (),
- "PySide2.QtWidgets.QComboBox.itemData": ('int', 'int'),
- "PySide2.QtWidgets.QComboBox.itemDelegate": (),
- "PySide2.QtWidgets.QComboBox.itemIcon": ('int',),
- "PySide2.QtWidgets.QComboBox.itemText": ('int',),
- "PySide2.QtWidgets.QComboBox.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QComboBox.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QComboBox.lineEdit": (),
- "PySide2.QtWidgets.QComboBox.maxCount": (),
- "PySide2.QtWidgets.QComboBox.maxVisibleItems": (),
- "PySide2.QtWidgets.QComboBox.minimumContentsLength": (),
- "PySide2.QtWidgets.QComboBox.minimumSizeHint": (),
- "PySide2.QtWidgets.QComboBox.model": (),
- "PySide2.QtWidgets.QComboBox.modelColumn": (),
- "PySide2.QtWidgets.QComboBox.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QComboBox.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QComboBox.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QComboBox.removeItem": ('int',),
- "PySide2.QtWidgets.QComboBox.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QComboBox.rootModelIndex": (),
- "PySide2.QtWidgets.QComboBox.setAutoCompletion": ('bool',),
- "PySide2.QtWidgets.QComboBox.setAutoCompletionCaseSensitivity": ('PySide2.QtCore.Qt.CaseSensitivity',),
- "PySide2.QtWidgets.QComboBox.setCompleter": ('PySide2.QtWidgets.QCompleter',),
- "PySide2.QtWidgets.QComboBox.setCurrentIndex": ('int',),
- "PySide2.QtWidgets.QComboBox.setCurrentText": ('str',),
- "PySide2.QtWidgets.QComboBox.setDuplicatesEnabled": ('bool',),
- "PySide2.QtWidgets.QComboBox.setEditText": ('str',),
- "PySide2.QtWidgets.QComboBox.setEditable": ('bool',),
- "PySide2.QtWidgets.QComboBox.setFrame": ('bool',),
- "PySide2.QtWidgets.QComboBox.setIconSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QComboBox.setInsertPolicy": ('PySide2.QtWidgets.QComboBox.InsertPolicy',),
- "PySide2.QtWidgets.QComboBox.setItemData": ('int', 'typing.Any', 'int'),
- "PySide2.QtWidgets.QComboBox.setItemDelegate": ('PySide2.QtWidgets.QAbstractItemDelegate',),
- "PySide2.QtWidgets.QComboBox.setItemIcon": ('int', 'PySide2.QtGui.QIcon'),
- "PySide2.QtWidgets.QComboBox.setItemText": ('int', 'str'),
- "PySide2.QtWidgets.QComboBox.setLineEdit": ('PySide2.QtWidgets.QLineEdit',),
- "PySide2.QtWidgets.QComboBox.setMaxCount": ('int',),
- "PySide2.QtWidgets.QComboBox.setMaxVisibleItems": ('int',),
- "PySide2.QtWidgets.QComboBox.setMinimumContentsLength": ('int',),
- "PySide2.QtWidgets.QComboBox.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QComboBox.setModelColumn": ('int',),
- "PySide2.QtWidgets.QComboBox.setRootModelIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QComboBox.setSizeAdjustPolicy": ('PySide2.QtWidgets.QComboBox.SizeAdjustPolicy',),
- "PySide2.QtWidgets.QComboBox.setValidator": ('PySide2.QtGui.QValidator',),
- "PySide2.QtWidgets.QComboBox.setView": ('PySide2.QtWidgets.QAbstractItemView',),
- "PySide2.QtWidgets.QComboBox.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QComboBox.showPopup": (),
- "PySide2.QtWidgets.QComboBox.sizeAdjustPolicy": (),
- "PySide2.QtWidgets.QComboBox.sizeHint": (),
- "PySide2.QtWidgets.QComboBox.validator": (),
- "PySide2.QtWidgets.QComboBox.view": (),
- "PySide2.QtWidgets.QComboBox.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtWidgets.QCommandLinkButton:
- "PySide2.QtWidgets.QCommandLinkButton.__init__": [('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget'), ('str', 'str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QCommandLinkButton.description": (),
- "PySide2.QtWidgets.QCommandLinkButton.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QCommandLinkButton.heightForWidth": ('int',),
- "PySide2.QtWidgets.QCommandLinkButton.minimumSizeHint": (),
- "PySide2.QtWidgets.QCommandLinkButton.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QCommandLinkButton.setDescription": ('str',),
- "PySide2.QtWidgets.QCommandLinkButton.sizeHint": (),
-# class PySide2.QtWidgets.QCommonStyle:
- "PySide2.QtWidgets.QCommonStyle.__init__": (),
- "PySide2.QtWidgets.QCommonStyle.drawComplexControl": ('PySide2.QtWidgets.QStyle.ComplexControl', 'PySide2.QtWidgets.QStyleOptionComplex', 'PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.drawControl": ('PySide2.QtWidgets.QStyle.ControlElement', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.drawPrimitive": ('PySide2.QtWidgets.QStyle.PrimitiveElement', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.generatedIconPixmap": ('PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QPixmap', 'PySide2.QtWidgets.QStyleOption'),
- "PySide2.QtWidgets.QCommonStyle.hitTestComplexControl": ('PySide2.QtWidgets.QStyle.ComplexControl', 'PySide2.QtWidgets.QStyleOptionComplex', 'PySide2.QtCore.QPoint', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.layoutSpacing": ('PySide2.QtWidgets.QSizePolicy.ControlType', 'PySide2.QtWidgets.QSizePolicy.ControlType', 'PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.pixelMetric": ('PySide2.QtWidgets.QStyle.PixelMetric', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.polish": [('PySide2.QtGui.QPalette',), ('PySide2.QtWidgets.QApplication',), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QCommonStyle.sizeFromContents": ('PySide2.QtWidgets.QStyle.ContentsType', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtCore.QSize', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.standardIcon": ('PySide2.QtWidgets.QStyle.StandardPixmap', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.standardPixmap": ('PySide2.QtWidgets.QStyle.StandardPixmap', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.styleHint": ('PySide2.QtWidgets.QStyle.StyleHint', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QStyleHintReturn'),
- "PySide2.QtWidgets.QCommonStyle.subControlRect": ('PySide2.QtWidgets.QStyle.ComplexControl', 'PySide2.QtWidgets.QStyleOptionComplex', 'PySide2.QtWidgets.QStyle.SubControl', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.subElementRect": ('PySide2.QtWidgets.QStyle.SubElement', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.unpolish": [('PySide2.QtWidgets.QApplication',), ('PySide2.QtWidgets.QWidget',)],
-# class PySide2.QtWidgets.QCompleter:
-# class PySide2.QtWidgets.QCompleter.CompletionMode:
-# class PySide2.QtWidgets.QCompleter.ModelSorting:
- "PySide2.QtWidgets.QCompleter.__init__": [('PySide2.QtCore.QAbstractItemModel', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QObject',), ('typing.Sequence[str]', 'PySide2.QtCore.QObject')],
- "PySide2.QtWidgets.QCompleter.caseSensitivity": (),
- "PySide2.QtWidgets.QCompleter.complete": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QCompleter.completionColumn": (),
- "PySide2.QtWidgets.QCompleter.completionCount": (),
- "PySide2.QtWidgets.QCompleter.completionMode": (),
- "PySide2.QtWidgets.QCompleter.completionModel": (),
- "PySide2.QtWidgets.QCompleter.completionPrefix": (),
- "PySide2.QtWidgets.QCompleter.completionRole": (),
- "PySide2.QtWidgets.QCompleter.currentCompletion": (),
- "PySide2.QtWidgets.QCompleter.currentIndex": (),
- "PySide2.QtWidgets.QCompleter.currentRow": (),
- "PySide2.QtWidgets.QCompleter.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QCompleter.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QCompleter.filterMode": (),
- "PySide2.QtWidgets.QCompleter.maxVisibleItems": (),
- "PySide2.QtWidgets.QCompleter.model": (),
- "PySide2.QtWidgets.QCompleter.modelSorting": (),
- "PySide2.QtWidgets.QCompleter.pathFromIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QCompleter.popup": (),
- "PySide2.QtWidgets.QCompleter.setCaseSensitivity": ('PySide2.QtCore.Qt.CaseSensitivity',),
- "PySide2.QtWidgets.QCompleter.setCompletionColumn": ('int',),
- "PySide2.QtWidgets.QCompleter.setCompletionMode": ('PySide2.QtWidgets.QCompleter.CompletionMode',),
- "PySide2.QtWidgets.QCompleter.setCompletionPrefix": ('str',),
- "PySide2.QtWidgets.QCompleter.setCompletionRole": ('int',),
- "PySide2.QtWidgets.QCompleter.setCurrentRow": ('int',),
- "PySide2.QtWidgets.QCompleter.setFilterMode": ('PySide2.QtCore.Qt.MatchFlags',),
- "PySide2.QtWidgets.QCompleter.setMaxVisibleItems": ('int',),
- "PySide2.QtWidgets.QCompleter.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QCompleter.setModelSorting": ('PySide2.QtWidgets.QCompleter.ModelSorting',),
- "PySide2.QtWidgets.QCompleter.setPopup": ('PySide2.QtWidgets.QAbstractItemView',),
- "PySide2.QtWidgets.QCompleter.setWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QCompleter.setWrapAround": ('bool',),
- "PySide2.QtWidgets.QCompleter.splitPath": ('str',),
- "PySide2.QtWidgets.QCompleter.widget": (),
- "PySide2.QtWidgets.QCompleter.wrapAround": (),
-# class PySide2.QtWidgets.QDataWidgetMapper:
-# class PySide2.QtWidgets.QDataWidgetMapper.SubmitPolicy:
- "PySide2.QtWidgets.QDataWidgetMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QDataWidgetMapper.addMapping": [('PySide2.QtWidgets.QWidget', 'int'), ('PySide2.QtWidgets.QWidget', 'int', 'PySide2.QtCore.QByteArray')],
- "PySide2.QtWidgets.QDataWidgetMapper.clearMapping": (),
- "PySide2.QtWidgets.QDataWidgetMapper.currentIndex": (),
- "PySide2.QtWidgets.QDataWidgetMapper.itemDelegate": (),
- "PySide2.QtWidgets.QDataWidgetMapper.mappedPropertyName": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QDataWidgetMapper.mappedSection": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QDataWidgetMapper.mappedWidgetAt": ('int',),
- "PySide2.QtWidgets.QDataWidgetMapper.model": (),
- "PySide2.QtWidgets.QDataWidgetMapper.orientation": (),
- "PySide2.QtWidgets.QDataWidgetMapper.removeMapping": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QDataWidgetMapper.revert": (),
- "PySide2.QtWidgets.QDataWidgetMapper.rootIndex": (),
- "PySide2.QtWidgets.QDataWidgetMapper.setCurrentIndex": ('int',),
- "PySide2.QtWidgets.QDataWidgetMapper.setCurrentModelIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDataWidgetMapper.setItemDelegate": ('PySide2.QtWidgets.QAbstractItemDelegate',),
- "PySide2.QtWidgets.QDataWidgetMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QDataWidgetMapper.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtWidgets.QDataWidgetMapper.setRootIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDataWidgetMapper.setSubmitPolicy": ('PySide2.QtWidgets.QDataWidgetMapper.SubmitPolicy',),
- "PySide2.QtWidgets.QDataWidgetMapper.submit": (),
- "PySide2.QtWidgets.QDataWidgetMapper.submitPolicy": (),
- "PySide2.QtWidgets.QDataWidgetMapper.toFirst": (),
- "PySide2.QtWidgets.QDataWidgetMapper.toLast": (),
- "PySide2.QtWidgets.QDataWidgetMapper.toNext": (),
- "PySide2.QtWidgets.QDataWidgetMapper.toPrevious": (),
-# class PySide2.QtWidgets.QDateEdit:
- "PySide2.QtWidgets.QDateEdit.__init__": [('PySide2.QtCore.QDate', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
-# class PySide2.QtWidgets.QDateTimeEdit:
-# class PySide2.QtWidgets.QDateTimeEdit.Section:
-# class PySide2.QtWidgets.QDateTimeEdit.Sections:
- "PySide2.QtWidgets.QDateTimeEdit.__init__": [('PySide2.QtCore.QDate', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtCore.QDateTime', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtCore.QTime', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',), ('typing.Any', 'type', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QDateTimeEdit.calendar": (),
- "PySide2.QtWidgets.QDateTimeEdit.calendarPopup": (),
- "PySide2.QtWidgets.QDateTimeEdit.calendarWidget": (),
- "PySide2.QtWidgets.QDateTimeEdit.clear": (),
- "PySide2.QtWidgets.QDateTimeEdit.clearMaximumDate": (),
- "PySide2.QtWidgets.QDateTimeEdit.clearMaximumDateTime": (),
- "PySide2.QtWidgets.QDateTimeEdit.clearMaximumTime": (),
- "PySide2.QtWidgets.QDateTimeEdit.clearMinimumDate": (),
- "PySide2.QtWidgets.QDateTimeEdit.clearMinimumDateTime": (),
- "PySide2.QtWidgets.QDateTimeEdit.clearMinimumTime": (),
- "PySide2.QtWidgets.QDateTimeEdit.currentSection": (),
- "PySide2.QtWidgets.QDateTimeEdit.currentSectionIndex": (),
- "PySide2.QtWidgets.QDateTimeEdit.date": (),
- "PySide2.QtWidgets.QDateTimeEdit.dateTime": (),
- "PySide2.QtWidgets.QDateTimeEdit.dateTimeFromText": ('str',),
- "PySide2.QtWidgets.QDateTimeEdit.displayFormat": (),
- "PySide2.QtWidgets.QDateTimeEdit.displayedSections": (),
- "PySide2.QtWidgets.QDateTimeEdit.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QDateTimeEdit.fixup": ('str',),
- "PySide2.QtWidgets.QDateTimeEdit.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QDateTimeEdit.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QDateTimeEdit.initStyleOption": ('PySide2.QtWidgets.QStyleOptionSpinBox',),
- "PySide2.QtWidgets.QDateTimeEdit.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QDateTimeEdit.maximumDate": (),
- "PySide2.QtWidgets.QDateTimeEdit.maximumDateTime": (),
- "PySide2.QtWidgets.QDateTimeEdit.maximumTime": (),
- "PySide2.QtWidgets.QDateTimeEdit.minimumDate": (),
- "PySide2.QtWidgets.QDateTimeEdit.minimumDateTime": (),
- "PySide2.QtWidgets.QDateTimeEdit.minimumTime": (),
- "PySide2.QtWidgets.QDateTimeEdit.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QDateTimeEdit.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QDateTimeEdit.sectionAt": ('int',),
- "PySide2.QtWidgets.QDateTimeEdit.sectionCount": (),
- "PySide2.QtWidgets.QDateTimeEdit.sectionText": ('PySide2.QtWidgets.QDateTimeEdit.Section',),
- "PySide2.QtWidgets.QDateTimeEdit.setCalendar": ('PySide2.QtCore.QCalendar',),
- "PySide2.QtWidgets.QDateTimeEdit.setCalendarPopup": ('bool',),
- "PySide2.QtWidgets.QDateTimeEdit.setCalendarWidget": ('PySide2.QtWidgets.QCalendarWidget',),
- "PySide2.QtWidgets.QDateTimeEdit.setCurrentSection": ('PySide2.QtWidgets.QDateTimeEdit.Section',),
- "PySide2.QtWidgets.QDateTimeEdit.setCurrentSectionIndex": ('int',),
- "PySide2.QtWidgets.QDateTimeEdit.setDate": ('PySide2.QtCore.QDate',),
- "PySide2.QtWidgets.QDateTimeEdit.setDateRange": ('PySide2.QtCore.QDate', 'PySide2.QtCore.QDate'),
- "PySide2.QtWidgets.QDateTimeEdit.setDateTime": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtWidgets.QDateTimeEdit.setDateTimeRange": ('PySide2.QtCore.QDateTime', 'PySide2.QtCore.QDateTime'),
- "PySide2.QtWidgets.QDateTimeEdit.setDisplayFormat": ('str',),
- "PySide2.QtWidgets.QDateTimeEdit.setMaximumDate": ('PySide2.QtCore.QDate',),
- "PySide2.QtWidgets.QDateTimeEdit.setMaximumDateTime": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtWidgets.QDateTimeEdit.setMaximumTime": ('PySide2.QtCore.QTime',),
- "PySide2.QtWidgets.QDateTimeEdit.setMinimumDate": ('PySide2.QtCore.QDate',),
- "PySide2.QtWidgets.QDateTimeEdit.setMinimumDateTime": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtWidgets.QDateTimeEdit.setMinimumTime": ('PySide2.QtCore.QTime',),
- "PySide2.QtWidgets.QDateTimeEdit.setSelectedSection": ('PySide2.QtWidgets.QDateTimeEdit.Section',),
- "PySide2.QtWidgets.QDateTimeEdit.setTime": ('PySide2.QtCore.QTime',),
- "PySide2.QtWidgets.QDateTimeEdit.setTimeRange": ('PySide2.QtCore.QTime', 'PySide2.QtCore.QTime'),
- "PySide2.QtWidgets.QDateTimeEdit.setTimeSpec": ('PySide2.QtCore.Qt.TimeSpec',),
- "PySide2.QtWidgets.QDateTimeEdit.sizeHint": (),
- "PySide2.QtWidgets.QDateTimeEdit.stepBy": ('int',),
- "PySide2.QtWidgets.QDateTimeEdit.stepEnabled": (),
- "PySide2.QtWidgets.QDateTimeEdit.textFromDateTime": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtWidgets.QDateTimeEdit.time": (),
- "PySide2.QtWidgets.QDateTimeEdit.timeSpec": (),
- "PySide2.QtWidgets.QDateTimeEdit.validate": ('str', 'int'),
- "PySide2.QtWidgets.QDateTimeEdit.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtWidgets.QDesktopWidget:
- "PySide2.QtWidgets.QDesktopWidget.__init__": (),
- "PySide2.QtWidgets.QDesktopWidget.availableGeometry": [('PySide2.QtCore.QPoint',), ('PySide2.QtWidgets.QWidget',), ('int',)],
- "PySide2.QtWidgets.QDesktopWidget.isVirtualDesktop": (),
- "PySide2.QtWidgets.QDesktopWidget.numScreens": (),
- "PySide2.QtWidgets.QDesktopWidget.primaryScreen": (),
- "PySide2.QtWidgets.QDesktopWidget.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QDesktopWidget.screen": [(), ('int',)],
- "PySide2.QtWidgets.QDesktopWidget.screenCount": (),
- "PySide2.QtWidgets.QDesktopWidget.screenGeometry": [('PySide2.QtCore.QPoint',), ('PySide2.QtWidgets.QWidget',), ('int',)],
- "PySide2.QtWidgets.QDesktopWidget.screenNumber": [('PySide2.QtCore.QPoint',), ('PySide2.QtWidgets.QWidget',)],
-# class PySide2.QtWidgets.QDial:
- "PySide2.QtWidgets.QDial.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QDial.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QDial.initStyleOption": ('PySide2.QtWidgets.QStyleOptionSlider',),
- "PySide2.QtWidgets.QDial.minimumSizeHint": (),
- "PySide2.QtWidgets.QDial.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QDial.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QDial.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QDial.notchSize": (),
- "PySide2.QtWidgets.QDial.notchTarget": (),
- "PySide2.QtWidgets.QDial.notchesVisible": (),
- "PySide2.QtWidgets.QDial.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QDial.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QDial.setNotchTarget": ('float',),
- "PySide2.QtWidgets.QDial.setNotchesVisible": ('bool',),
- "PySide2.QtWidgets.QDial.setWrapping": ('bool',),
- "PySide2.QtWidgets.QDial.sizeHint": (),
- "PySide2.QtWidgets.QDial.sliderChange": ('PySide2.QtWidgets.QAbstractSlider.SliderChange',),
- "PySide2.QtWidgets.QDial.wrapping": (),
-# class PySide2.QtWidgets.QDialog:
-# class PySide2.QtWidgets.QDialog.DialogCode:
- "PySide2.QtWidgets.QDialog.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QDialog.accept": (),
- "PySide2.QtWidgets.QDialog.adjustPosition": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QDialog.closeEvent": ('PySide2.QtGui.QCloseEvent',),
- "PySide2.QtWidgets.QDialog.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QDialog.done": ('int',),
- "PySide2.QtWidgets.QDialog.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QDialog.exec_": (),
- "PySide2.QtWidgets.QDialog.extension": (),
- "PySide2.QtWidgets.QDialog.isSizeGripEnabled": (),
- "PySide2.QtWidgets.QDialog.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QDialog.minimumSizeHint": (),
- "PySide2.QtWidgets.QDialog.open": (),
- "PySide2.QtWidgets.QDialog.orientation": (),
- "PySide2.QtWidgets.QDialog.reject": (),
- "PySide2.QtWidgets.QDialog.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QDialog.result": (),
- "PySide2.QtWidgets.QDialog.setExtension": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QDialog.setModal": ('bool',),
- "PySide2.QtWidgets.QDialog.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtWidgets.QDialog.setResult": ('int',),
- "PySide2.QtWidgets.QDialog.setSizeGripEnabled": ('bool',),
- "PySide2.QtWidgets.QDialog.setVisible": ('bool',),
- "PySide2.QtWidgets.QDialog.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QDialog.showExtension": ('bool',),
- "PySide2.QtWidgets.QDialog.sizeHint": (),
-# class PySide2.QtWidgets.QDialogButtonBox:
-# class PySide2.QtWidgets.QDialogButtonBox.ButtonLayout:
-# class PySide2.QtWidgets.QDialogButtonBox.ButtonRole:
-# class PySide2.QtWidgets.QDialogButtonBox.StandardButton:
-# class PySide2.QtWidgets.QDialogButtonBox.StandardButtons:
- "PySide2.QtWidgets.QDialogButtonBox.__init__": [('PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QDialogButtonBox.StandardButtons', 'PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QDialogButtonBox.StandardButtons', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QDialogButtonBox.addButton": [('PySide2.QtWidgets.QAbstractButton', 'PySide2.QtWidgets.QDialogButtonBox.ButtonRole'), ('PySide2.QtWidgets.QDialogButtonBox.StandardButton',), ('str', 'PySide2.QtWidgets.QDialogButtonBox.ButtonRole')],
- "PySide2.QtWidgets.QDialogButtonBox.button": ('PySide2.QtWidgets.QDialogButtonBox.StandardButton',),
- "PySide2.QtWidgets.QDialogButtonBox.buttonRole": ('PySide2.QtWidgets.QAbstractButton',),
- "PySide2.QtWidgets.QDialogButtonBox.buttons": (),
- "PySide2.QtWidgets.QDialogButtonBox.centerButtons": (),
- "PySide2.QtWidgets.QDialogButtonBox.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QDialogButtonBox.clear": (),
- "PySide2.QtWidgets.QDialogButtonBox.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QDialogButtonBox.orientation": (),
- "PySide2.QtWidgets.QDialogButtonBox.removeButton": ('PySide2.QtWidgets.QAbstractButton',),
- "PySide2.QtWidgets.QDialogButtonBox.setCenterButtons": ('bool',),
- "PySide2.QtWidgets.QDialogButtonBox.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtWidgets.QDialogButtonBox.setStandardButtons": ('PySide2.QtWidgets.QDialogButtonBox.StandardButtons',),
- "PySide2.QtWidgets.QDialogButtonBox.standardButton": ('PySide2.QtWidgets.QAbstractButton',),
- "PySide2.QtWidgets.QDialogButtonBox.standardButtons": (),
-# class PySide2.QtWidgets.QDirModel:
-# class PySide2.QtWidgets.QDirModel.Roles:
- "PySide2.QtWidgets.QDirModel.__init__": [('PySide2.QtCore.QObject',), ('typing.Sequence[str]', 'PySide2.QtCore.QDir.Filters', 'PySide2.QtCore.QDir.SortFlags', 'PySide2.QtCore.QObject')],
- "PySide2.QtWidgets.QDirModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtWidgets.QDirModel.dropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QDirModel.fileIcon": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.fileInfo": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.fileName": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.filePath": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.filter": (),
- "PySide2.QtWidgets.QDirModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.hasChildren": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtWidgets.QDirModel.iconProvider": (),
- "PySide2.QtWidgets.QDirModel.index": [('int', 'int', 'PySide2.QtCore.QModelIndex'), ('str', 'int')],
- "PySide2.QtWidgets.QDirModel.isDir": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.isReadOnly": (),
- "PySide2.QtWidgets.QDirModel.lazyChildCount": (),
- "PySide2.QtWidgets.QDirModel.mimeData": ('typing.List[int]',),
- "PySide2.QtWidgets.QDirModel.mimeTypes": (),
- "PySide2.QtWidgets.QDirModel.mkdir": ('PySide2.QtCore.QModelIndex', 'str'),
- "PySide2.QtWidgets.QDirModel.nameFilters": (),
- "PySide2.QtWidgets.QDirModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtWidgets.QDirModel.refresh": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.remove": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.resolveSymlinks": (),
- "PySide2.QtWidgets.QDirModel.rmdir": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
- "PySide2.QtWidgets.QDirModel.setFilter": ('PySide2.QtCore.QDir.Filters',),
- "PySide2.QtWidgets.QDirModel.setIconProvider": ('PySide2.QtWidgets.QFileIconProvider',),
- "PySide2.QtWidgets.QDirModel.setLazyChildCount": ('bool',),
- "PySide2.QtWidgets.QDirModel.setNameFilters": ('typing.Sequence[str]',),
- "PySide2.QtWidgets.QDirModel.setReadOnly": ('bool',),
- "PySide2.QtWidgets.QDirModel.setResolveSymlinks": ('bool',),
- "PySide2.QtWidgets.QDirModel.setSorting": ('PySide2.QtCore.QDir.SortFlags',),
- "PySide2.QtWidgets.QDirModel.sort": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtWidgets.QDirModel.sorting": (),
- "PySide2.QtWidgets.QDirModel.supportedDropActions": (),
-# class PySide2.QtWidgets.QDockWidget:
-# class PySide2.QtWidgets.QDockWidget.DockWidgetFeature:
-# class PySide2.QtWidgets.QDockWidget.DockWidgetFeatures:
- "PySide2.QtWidgets.QDockWidget.__init__": [('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'), ('str', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags')],
- "PySide2.QtWidgets.QDockWidget.allowedAreas": (),
- "PySide2.QtWidgets.QDockWidget.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QDockWidget.closeEvent": ('PySide2.QtGui.QCloseEvent',),
- "PySide2.QtWidgets.QDockWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QDockWidget.features": (),
- "PySide2.QtWidgets.QDockWidget.initStyleOption": ('PySide2.QtWidgets.QStyleOptionDockWidget',),
- "PySide2.QtWidgets.QDockWidget.isAreaAllowed": ('PySide2.QtCore.Qt.DockWidgetArea',),
- "PySide2.QtWidgets.QDockWidget.isFloating": (),
- "PySide2.QtWidgets.QDockWidget.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QDockWidget.setAllowedAreas": ('PySide2.QtCore.Qt.DockWidgetAreas',),
- "PySide2.QtWidgets.QDockWidget.setFeatures": ('PySide2.QtWidgets.QDockWidget.DockWidgetFeatures',),
- "PySide2.QtWidgets.QDockWidget.setFloating": ('bool',),
- "PySide2.QtWidgets.QDockWidget.setTitleBarWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QDockWidget.setWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QDockWidget.titleBarWidget": (),
- "PySide2.QtWidgets.QDockWidget.toggleViewAction": (),
- "PySide2.QtWidgets.QDockWidget.widget": (),
-# class PySide2.QtWidgets.QDoubleSpinBox:
- "PySide2.QtWidgets.QDoubleSpinBox.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QDoubleSpinBox.cleanText": (),
- "PySide2.QtWidgets.QDoubleSpinBox.decimals": (),
- "PySide2.QtWidgets.QDoubleSpinBox.fixup": ('str',),
- "PySide2.QtWidgets.QDoubleSpinBox.maximum": (),
- "PySide2.QtWidgets.QDoubleSpinBox.minimum": (),
- "PySide2.QtWidgets.QDoubleSpinBox.prefix": (),
- "PySide2.QtWidgets.QDoubleSpinBox.setDecimals": ('int',),
- "PySide2.QtWidgets.QDoubleSpinBox.setMaximum": ('float',),
- "PySide2.QtWidgets.QDoubleSpinBox.setMinimum": ('float',),
- "PySide2.QtWidgets.QDoubleSpinBox.setPrefix": ('str',),
- "PySide2.QtWidgets.QDoubleSpinBox.setRange": ('float', 'float'),
- "PySide2.QtWidgets.QDoubleSpinBox.setSingleStep": ('float',),
- "PySide2.QtWidgets.QDoubleSpinBox.setStepType": ('PySide2.QtWidgets.QAbstractSpinBox.StepType',),
- "PySide2.QtWidgets.QDoubleSpinBox.setSuffix": ('str',),
- "PySide2.QtWidgets.QDoubleSpinBox.setValue": ('float',),
- "PySide2.QtWidgets.QDoubleSpinBox.singleStep": (),
- "PySide2.QtWidgets.QDoubleSpinBox.stepType": (),
- "PySide2.QtWidgets.QDoubleSpinBox.suffix": (),
- "PySide2.QtWidgets.QDoubleSpinBox.textFromValue": ('float',),
- "PySide2.QtWidgets.QDoubleSpinBox.validate": ('str', 'int'),
- "PySide2.QtWidgets.QDoubleSpinBox.value": (),
- "PySide2.QtWidgets.QDoubleSpinBox.valueFromText": ('str',),
-# class PySide2.QtWidgets.QErrorMessage:
- "PySide2.QtWidgets.QErrorMessage.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QErrorMessage.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QErrorMessage.done": ('int',),
- "PySide2.QtWidgets.QErrorMessage.qtHandler": (),
- "PySide2.QtWidgets.QErrorMessage.showMessage": [('str',), ('str', 'str')],
-# class PySide2.QtWidgets.QFileDialog:
-# class PySide2.QtWidgets.QFileDialog.AcceptMode:
-# class PySide2.QtWidgets.QFileDialog.DialogLabel:
-# class PySide2.QtWidgets.QFileDialog.FileMode:
-# class PySide2.QtWidgets.QFileDialog.Option:
-# class PySide2.QtWidgets.QFileDialog.Options:
-# class PySide2.QtWidgets.QFileDialog.ViewMode:
- "PySide2.QtWidgets.QFileDialog.__init__": [('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'), ('PySide2.QtWidgets.QWidget', 'str', 'str', 'str')],
- "PySide2.QtWidgets.QFileDialog.accept": (),
- "PySide2.QtWidgets.QFileDialog.acceptMode": (),
- "PySide2.QtWidgets.QFileDialog.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QFileDialog.confirmOverwrite": (),
- "PySide2.QtWidgets.QFileDialog.defaultSuffix": (),
- "PySide2.QtWidgets.QFileDialog.directory": (),
- "PySide2.QtWidgets.QFileDialog.directoryUrl": (),
- "PySide2.QtWidgets.QFileDialog.done": ('int',),
- "PySide2.QtWidgets.QFileDialog.fileMode": (),
- "PySide2.QtWidgets.QFileDialog.filter": (),
- "PySide2.QtWidgets.QFileDialog.getExistingDirectory": ('PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtWidgets.QFileDialog.Options'),
- "PySide2.QtWidgets.QFileDialog.getExistingDirectoryUrl": ('PySide2.QtWidgets.QWidget', 'str', 'PySide2.QtCore.QUrl', 'PySide2.QtWidgets.QFileDialog.Options', 'typing.Sequence[str]'),
- "PySide2.QtWidgets.QFileDialog.getOpenFileName": ('PySide2.QtWidgets.QWidget', 'str', 'str', 'str', 'PySide2.QtWidgets.QFileDialog.Options'),
- "PySide2.QtWidgets.QFileDialog.getOpenFileNames": ('PySide2.QtWidgets.QWidget', 'str', 'str', 'str', 'PySide2.QtWidgets.QFileDialog.Options'),
- "PySide2.QtWidgets.QFileDialog.getOpenFileUrl": ('PySide2.QtWidgets.QWidget', 'str', 'PySide2.QtCore.QUrl', 'str', 'PySide2.QtWidgets.QFileDialog.Options', 'typing.Sequence[str]'),
- "PySide2.QtWidgets.QFileDialog.getOpenFileUrls": ('PySide2.QtWidgets.QWidget', 'str', 'PySide2.QtCore.QUrl', 'str', 'PySide2.QtWidgets.QFileDialog.Options', 'typing.Sequence[str]'),
- "PySide2.QtWidgets.QFileDialog.getSaveFileName": ('PySide2.QtWidgets.QWidget', 'str', 'str', 'str', 'PySide2.QtWidgets.QFileDialog.Options'),
- "PySide2.QtWidgets.QFileDialog.getSaveFileUrl": ('PySide2.QtWidgets.QWidget', 'str', 'PySide2.QtCore.QUrl', 'str', 'PySide2.QtWidgets.QFileDialog.Options', 'typing.Sequence[str]'),
- "PySide2.QtWidgets.QFileDialog.history": (),
- "PySide2.QtWidgets.QFileDialog.iconProvider": (),
- "PySide2.QtWidgets.QFileDialog.isNameFilterDetailsVisible": (),
- "PySide2.QtWidgets.QFileDialog.isReadOnly": (),
- "PySide2.QtWidgets.QFileDialog.itemDelegate": (),
- "PySide2.QtWidgets.QFileDialog.labelText": ('PySide2.QtWidgets.QFileDialog.DialogLabel',),
- "PySide2.QtWidgets.QFileDialog.mimeTypeFilters": (),
- "PySide2.QtWidgets.QFileDialog.nameFilters": (),
- "PySide2.QtWidgets.QFileDialog.open": [(), ('PySide2.QtCore.QObject', 'str')],
- "PySide2.QtWidgets.QFileDialog.options": (),
- "PySide2.QtWidgets.QFileDialog.proxyModel": (),
- "PySide2.QtWidgets.QFileDialog.resolveSymlinks": (),
- "PySide2.QtWidgets.QFileDialog.restoreState": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWidgets.QFileDialog.saveFileContent": ('PySide2.QtCore.QByteArray', 'str'),
- "PySide2.QtWidgets.QFileDialog.saveState": (),
- "PySide2.QtWidgets.QFileDialog.selectFile": ('str',),
- "PySide2.QtWidgets.QFileDialog.selectMimeTypeFilter": ('str',),
- "PySide2.QtWidgets.QFileDialog.selectNameFilter": ('str',),
- "PySide2.QtWidgets.QFileDialog.selectUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtWidgets.QFileDialog.selectedFiles": (),
- "PySide2.QtWidgets.QFileDialog.selectedMimeTypeFilter": (),
- "PySide2.QtWidgets.QFileDialog.selectedNameFilter": (),
- "PySide2.QtWidgets.QFileDialog.selectedUrls": (),
- "PySide2.QtWidgets.QFileDialog.setAcceptMode": ('PySide2.QtWidgets.QFileDialog.AcceptMode',),
- "PySide2.QtWidgets.QFileDialog.setConfirmOverwrite": ('bool',),
- "PySide2.QtWidgets.QFileDialog.setDefaultSuffix": ('str',),
- "PySide2.QtWidgets.QFileDialog.setDirectory": [('PySide2.QtCore.QDir',), ('str',)],
- "PySide2.QtWidgets.QFileDialog.setDirectoryUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtWidgets.QFileDialog.setFileMode": ('PySide2.QtWidgets.QFileDialog.FileMode',),
- "PySide2.QtWidgets.QFileDialog.setFilter": ('PySide2.QtCore.QDir.Filters',),
- "PySide2.QtWidgets.QFileDialog.setHistory": ('typing.Sequence[str]',),
- "PySide2.QtWidgets.QFileDialog.setIconProvider": ('PySide2.QtWidgets.QFileIconProvider',),
- "PySide2.QtWidgets.QFileDialog.setItemDelegate": ('PySide2.QtWidgets.QAbstractItemDelegate',),
- "PySide2.QtWidgets.QFileDialog.setLabelText": ('PySide2.QtWidgets.QFileDialog.DialogLabel', 'str'),
- "PySide2.QtWidgets.QFileDialog.setMimeTypeFilters": ('typing.Sequence[str]',),
- "PySide2.QtWidgets.QFileDialog.setNameFilter": ('str',),
- "PySide2.QtWidgets.QFileDialog.setNameFilterDetailsVisible": ('bool',),
- "PySide2.QtWidgets.QFileDialog.setNameFilters": ('typing.Sequence[str]',),
- "PySide2.QtWidgets.QFileDialog.setOption": ('PySide2.QtWidgets.QFileDialog.Option', 'bool'),
- "PySide2.QtWidgets.QFileDialog.setOptions": ('PySide2.QtWidgets.QFileDialog.Options',),
- "PySide2.QtWidgets.QFileDialog.setProxyModel": ('PySide2.QtCore.QAbstractProxyModel',),
- "PySide2.QtWidgets.QFileDialog.setReadOnly": ('bool',),
- "PySide2.QtWidgets.QFileDialog.setResolveSymlinks": ('bool',),
- "PySide2.QtWidgets.QFileDialog.setSidebarUrls": ('typing.Sequence[PySide2.QtCore.QUrl]',),
- "PySide2.QtWidgets.QFileDialog.setSupportedSchemes": ('typing.Sequence[str]',),
- "PySide2.QtWidgets.QFileDialog.setViewMode": ('PySide2.QtWidgets.QFileDialog.ViewMode',),
- "PySide2.QtWidgets.QFileDialog.setVisible": ('bool',),
- "PySide2.QtWidgets.QFileDialog.sidebarUrls": (),
- "PySide2.QtWidgets.QFileDialog.supportedSchemes": (),
- "PySide2.QtWidgets.QFileDialog.testOption": ('PySide2.QtWidgets.QFileDialog.Option',),
- "PySide2.QtWidgets.QFileDialog.viewMode": (),
-# class PySide2.QtWidgets.QFileIconProvider:
-# class PySide2.QtWidgets.QFileIconProvider.IconType:
-# class PySide2.QtWidgets.QFileIconProvider.Option:
-# class PySide2.QtWidgets.QFileIconProvider.Options:
- "PySide2.QtWidgets.QFileIconProvider.__init__": (),
- "PySide2.QtWidgets.QFileIconProvider.icon": [('PySide2.QtCore.QFileInfo',), ('PySide2.QtWidgets.QFileIconProvider.IconType',)],
- "PySide2.QtWidgets.QFileIconProvider.options": (),
- "PySide2.QtWidgets.QFileIconProvider.setOptions": ('PySide2.QtWidgets.QFileIconProvider.Options',),
- "PySide2.QtWidgets.QFileIconProvider.type": ('PySide2.QtCore.QFileInfo',),
-# class PySide2.QtWidgets.QFileSystemModel:
-# class PySide2.QtWidgets.QFileSystemModel.Option:
-# class PySide2.QtWidgets.QFileSystemModel.Options:
-# class PySide2.QtWidgets.QFileSystemModel.Roles:
- "PySide2.QtWidgets.QFileSystemModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QFileSystemModel.canFetchMore": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtWidgets.QFileSystemModel.dropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QFileSystemModel.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QFileSystemModel.fetchMore": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.fileIcon": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.fileInfo": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.fileName": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.filePath": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.filter": (),
- "PySide2.QtWidgets.QFileSystemModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.hasChildren": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtWidgets.QFileSystemModel.iconProvider": (),
- "PySide2.QtWidgets.QFileSystemModel.index": [('int', 'int', 'PySide2.QtCore.QModelIndex'), ('str', 'int')],
- "PySide2.QtWidgets.QFileSystemModel.isDir": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.isReadOnly": (),
- "PySide2.QtWidgets.QFileSystemModel.lastModified": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.mimeData": ('typing.List[int]',),
- "PySide2.QtWidgets.QFileSystemModel.mimeTypes": (),
- "PySide2.QtWidgets.QFileSystemModel.mkdir": ('PySide2.QtCore.QModelIndex', 'str'),
- "PySide2.QtWidgets.QFileSystemModel.myComputer": ('int',),
- "PySide2.QtWidgets.QFileSystemModel.nameFilterDisables": (),
- "PySide2.QtWidgets.QFileSystemModel.nameFilters": (),
- "PySide2.QtWidgets.QFileSystemModel.options": (),
- "PySide2.QtWidgets.QFileSystemModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtWidgets.QFileSystemModel.remove": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.resolveSymlinks": (),
- "PySide2.QtWidgets.QFileSystemModel.rmdir": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.rootDirectory": (),
- "PySide2.QtWidgets.QFileSystemModel.rootPath": (),
- "PySide2.QtWidgets.QFileSystemModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
- "PySide2.QtWidgets.QFileSystemModel.setFilter": ('PySide2.QtCore.QDir.Filters',),
- "PySide2.QtWidgets.QFileSystemModel.setIconProvider": ('PySide2.QtWidgets.QFileIconProvider',),
- "PySide2.QtWidgets.QFileSystemModel.setNameFilterDisables": ('bool',),
- "PySide2.QtWidgets.QFileSystemModel.setNameFilters": ('typing.Sequence[str]',),
- "PySide2.QtWidgets.QFileSystemModel.setOption": ('PySide2.QtWidgets.QFileSystemModel.Option', 'bool'),
- "PySide2.QtWidgets.QFileSystemModel.setOptions": ('PySide2.QtWidgets.QFileSystemModel.Options',),
- "PySide2.QtWidgets.QFileSystemModel.setReadOnly": ('bool',),
- "PySide2.QtWidgets.QFileSystemModel.setResolveSymlinks": ('bool',),
- "PySide2.QtWidgets.QFileSystemModel.setRootPath": ('str',),
- "PySide2.QtWidgets.QFileSystemModel.sibling": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QFileSystemModel.size": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.sort": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtWidgets.QFileSystemModel.supportedDropActions": (),
- "PySide2.QtWidgets.QFileSystemModel.testOption": ('PySide2.QtWidgets.QFileSystemModel.Option',),
- "PySide2.QtWidgets.QFileSystemModel.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QFileSystemModel.type": ('PySide2.QtCore.QModelIndex',),
-# class PySide2.QtWidgets.QFocusFrame:
- "PySide2.QtWidgets.QFocusFrame.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QFocusFrame.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QFocusFrame.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QFocusFrame.initStyleOption": ('PySide2.QtWidgets.QStyleOption',),
- "PySide2.QtWidgets.QFocusFrame.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QFocusFrame.setWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QFocusFrame.widget": (),
-# class PySide2.QtWidgets.QFontComboBox:
-# class PySide2.QtWidgets.QFontComboBox.FontFilter:
-# class PySide2.QtWidgets.QFontComboBox.FontFilters:
- "PySide2.QtWidgets.QFontComboBox.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QFontComboBox.currentFont": (),
- "PySide2.QtWidgets.QFontComboBox.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QFontComboBox.fontFilters": (),
- "PySide2.QtWidgets.QFontComboBox.setCurrentFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QFontComboBox.setFontFilters": ('PySide2.QtWidgets.QFontComboBox.FontFilters',),
- "PySide2.QtWidgets.QFontComboBox.setWritingSystem": ('PySide2.QtGui.QFontDatabase.WritingSystem',),
- "PySide2.QtWidgets.QFontComboBox.sizeHint": (),
- "PySide2.QtWidgets.QFontComboBox.writingSystem": (),
-# class PySide2.QtWidgets.QFontDialog:
-# class PySide2.QtWidgets.QFontDialog.FontDialogOption:
-# class PySide2.QtWidgets.QFontDialog.FontDialogOptions:
- "PySide2.QtWidgets.QFontDialog.__init__": [('PySide2.QtGui.QFont', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QFontDialog.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QFontDialog.currentFont": (),
- "PySide2.QtWidgets.QFontDialog.done": ('int',),
- "PySide2.QtWidgets.QFontDialog.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QFontDialog.getFont": [('PySide2.QtGui.QFont', 'PySide2.QtWidgets.QWidget', 'str', 'PySide2.QtWidgets.QFontDialog.FontDialogOptions'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QFontDialog.open": [(), ('PySide2.QtCore.QObject', 'str')],
- "PySide2.QtWidgets.QFontDialog.options": (),
- "PySide2.QtWidgets.QFontDialog.selectedFont": (),
- "PySide2.QtWidgets.QFontDialog.setCurrentFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QFontDialog.setOption": ('PySide2.QtWidgets.QFontDialog.FontDialogOption', 'bool'),
- "PySide2.QtWidgets.QFontDialog.setOptions": ('PySide2.QtWidgets.QFontDialog.FontDialogOptions',),
- "PySide2.QtWidgets.QFontDialog.setVisible": ('bool',),
- "PySide2.QtWidgets.QFontDialog.testOption": ('PySide2.QtWidgets.QFontDialog.FontDialogOption',),
-# class PySide2.QtWidgets.QFormLayout:
-# class PySide2.QtWidgets.QFormLayout.FieldGrowthPolicy:
-# class PySide2.QtWidgets.QFormLayout.ItemRole:
-# class PySide2.QtWidgets.QFormLayout.RowWrapPolicy:
- "PySide2.QtWidgets.QFormLayout.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QFormLayout.addItem": ('PySide2.QtWidgets.QLayoutItem',),
- "PySide2.QtWidgets.QFormLayout.addRow": [('PySide2.QtWidgets.QLayout',), ('PySide2.QtWidgets.QWidget',), ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QLayout'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QWidget'), ('str', 'PySide2.QtWidgets.QLayout'), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QFormLayout.count": (),
- "PySide2.QtWidgets.QFormLayout.expandingDirections": (),
- "PySide2.QtWidgets.QFormLayout.fieldGrowthPolicy": (),
- "PySide2.QtWidgets.QFormLayout.formAlignment": (),
- "PySide2.QtWidgets.QFormLayout.getItemPosition": ('int', 'PySide2.QtWidgets.QFormLayout.ItemRole'),
- "PySide2.QtWidgets.QFormLayout.getLayoutPosition": ('PySide2.QtWidgets.QLayout', 'PySide2.QtWidgets.QFormLayout.ItemRole'),
- "PySide2.QtWidgets.QFormLayout.getWidgetPosition": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QFormLayout.ItemRole'),
- "PySide2.QtWidgets.QFormLayout.hasHeightForWidth": (),
- "PySide2.QtWidgets.QFormLayout.heightForWidth": ('int',),
- "PySide2.QtWidgets.QFormLayout.horizontalSpacing": (),
- "PySide2.QtWidgets.QFormLayout.insertRow": [('int', 'PySide2.QtWidgets.QLayout'), ('int', 'PySide2.QtWidgets.QWidget'), ('int', 'PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QLayout'), ('int', 'PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QWidget'), ('int', 'str', 'PySide2.QtWidgets.QLayout'), ('int', 'str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QFormLayout.invalidate": (),
- "PySide2.QtWidgets.QFormLayout.itemAt": [('int',), ('int', 'PySide2.QtWidgets.QFormLayout.ItemRole')],
- "PySide2.QtWidgets.QFormLayout.labelAlignment": (),
- "PySide2.QtWidgets.QFormLayout.labelForField": [('PySide2.QtWidgets.QLayout',), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QFormLayout.minimumSize": (),
- "PySide2.QtWidgets.QFormLayout.removeRow": [('PySide2.QtWidgets.QLayout',), ('PySide2.QtWidgets.QWidget',), ('int',)],
- "PySide2.QtWidgets.QFormLayout.rowCount": (),
- "PySide2.QtWidgets.QFormLayout.rowWrapPolicy": (),
- "PySide2.QtWidgets.QFormLayout.setFieldGrowthPolicy": ('PySide2.QtWidgets.QFormLayout.FieldGrowthPolicy',),
- "PySide2.QtWidgets.QFormLayout.setFormAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QFormLayout.setGeometry": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QFormLayout.setHorizontalSpacing": ('int',),
- "PySide2.QtWidgets.QFormLayout.setItem": ('int', 'PySide2.QtWidgets.QFormLayout.ItemRole', 'PySide2.QtWidgets.QLayoutItem'),
- "PySide2.QtWidgets.QFormLayout.setLabelAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QFormLayout.setLayout": ('int', 'PySide2.QtWidgets.QFormLayout.ItemRole', 'PySide2.QtWidgets.QLayout'),
- "PySide2.QtWidgets.QFormLayout.setRowWrapPolicy": ('PySide2.QtWidgets.QFormLayout.RowWrapPolicy',),
- "PySide2.QtWidgets.QFormLayout.setSpacing": ('int',),
- "PySide2.QtWidgets.QFormLayout.setVerticalSpacing": ('int',),
- "PySide2.QtWidgets.QFormLayout.setWidget": ('int', 'PySide2.QtWidgets.QFormLayout.ItemRole', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QFormLayout.sizeHint": (),
- "PySide2.QtWidgets.QFormLayout.spacing": (),
- "PySide2.QtWidgets.QFormLayout.takeAt": ('int',),
- "PySide2.QtWidgets.QFormLayout.verticalSpacing": (),
-# class PySide2.QtWidgets.QFrame:
-# class PySide2.QtWidgets.QFrame.Shadow:
-# class PySide2.QtWidgets.QFrame.Shape:
-# class PySide2.QtWidgets.QFrame.StyleMask:
- "PySide2.QtWidgets.QFrame.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QFrame.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QFrame.drawFrame": ('PySide2.QtGui.QPainter',),
- "PySide2.QtWidgets.QFrame.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QFrame.frameRect": (),
- "PySide2.QtWidgets.QFrame.frameShadow": (),
- "PySide2.QtWidgets.QFrame.frameShape": (),
- "PySide2.QtWidgets.QFrame.frameStyle": (),
- "PySide2.QtWidgets.QFrame.frameWidth": (),
- "PySide2.QtWidgets.QFrame.initStyleOption": ('PySide2.QtWidgets.QStyleOptionFrame',),
- "PySide2.QtWidgets.QFrame.lineWidth": (),
- "PySide2.QtWidgets.QFrame.midLineWidth": (),
- "PySide2.QtWidgets.QFrame.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QFrame.setFrameRect": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QFrame.setFrameShadow": ('PySide2.QtWidgets.QFrame.Shadow',),
- "PySide2.QtWidgets.QFrame.setFrameShape": ('PySide2.QtWidgets.QFrame.Shape',),
- "PySide2.QtWidgets.QFrame.setFrameStyle": ('int',),
- "PySide2.QtWidgets.QFrame.setLineWidth": ('int',),
- "PySide2.QtWidgets.QFrame.setMidLineWidth": ('int',),
- "PySide2.QtWidgets.QFrame.sizeHint": (),
-# class PySide2.QtWidgets.QGesture:
-# class PySide2.QtWidgets.QGesture.GestureCancelPolicy:
- "PySide2.QtWidgets.QGesture.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGesture.gestureCancelPolicy": (),
- "PySide2.QtWidgets.QGesture.gestureType": (),
- "PySide2.QtWidgets.QGesture.hasHotSpot": (),
- "PySide2.QtWidgets.QGesture.hotSpot": (),
- "PySide2.QtWidgets.QGesture.setGestureCancelPolicy": ('PySide2.QtWidgets.QGesture.GestureCancelPolicy',),
- "PySide2.QtWidgets.QGesture.setHotSpot": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGesture.state": (),
- "PySide2.QtWidgets.QGesture.unsetHotSpot": (),
-# class PySide2.QtWidgets.QGestureEvent:
- "PySide2.QtWidgets.QGestureEvent.__init__": ('typing.Sequence[PySide2.QtWidgets.QGesture]',),
- "PySide2.QtWidgets.QGestureEvent.accept": [(), ('PySide2.QtCore.Qt.GestureType',), ('PySide2.QtWidgets.QGesture',)],
- "PySide2.QtWidgets.QGestureEvent.activeGestures": (),
- "PySide2.QtWidgets.QGestureEvent.canceledGestures": (),
- "PySide2.QtWidgets.QGestureEvent.gesture": ('PySide2.QtCore.Qt.GestureType',),
- "PySide2.QtWidgets.QGestureEvent.gestures": (),
- "PySide2.QtWidgets.QGestureEvent.ignore": [(), ('PySide2.QtCore.Qt.GestureType',), ('PySide2.QtWidgets.QGesture',)],
- "PySide2.QtWidgets.QGestureEvent.isAccepted": [(), ('PySide2.QtCore.Qt.GestureType',), ('PySide2.QtWidgets.QGesture',)],
- "PySide2.QtWidgets.QGestureEvent.mapToGraphicsScene": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGestureEvent.setAccepted": [('PySide2.QtCore.Qt.GestureType', 'bool'), ('PySide2.QtWidgets.QGesture', 'bool'), ('bool',)],
- "PySide2.QtWidgets.QGestureEvent.setWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QGestureEvent.widget": (),
-# class PySide2.QtWidgets.QGestureRecognizer:
-# class PySide2.QtWidgets.QGestureRecognizer.Result:
-# class PySide2.QtWidgets.QGestureRecognizer.ResultFlag:
- "PySide2.QtWidgets.QGestureRecognizer.__init__": (),
- "PySide2.QtWidgets.QGestureRecognizer.create": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGestureRecognizer.recognize": ('PySide2.QtWidgets.QGesture', 'PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QGestureRecognizer.registerRecognizer": ('PySide2.QtWidgets.QGestureRecognizer',),
- "PySide2.QtWidgets.QGestureRecognizer.reset": ('PySide2.QtWidgets.QGesture',),
- "PySide2.QtWidgets.QGestureRecognizer.unregisterRecognizer": ('PySide2.QtCore.Qt.GestureType',),
-# class PySide2.QtWidgets.QGraphicsAnchor:
- "PySide2.QtWidgets.QGraphicsAnchor.setSizePolicy": ('PySide2.QtWidgets.QSizePolicy.Policy',),
- "PySide2.QtWidgets.QGraphicsAnchor.setSpacing": ('float',),
- "PySide2.QtWidgets.QGraphicsAnchor.sizePolicy": (),
- "PySide2.QtWidgets.QGraphicsAnchor.spacing": (),
- "PySide2.QtWidgets.QGraphicsAnchor.unsetSpacing": (),
-# class PySide2.QtWidgets.QGraphicsAnchorLayout:
- "PySide2.QtWidgets.QGraphicsAnchorLayout.__init__": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.addAnchor": ('PySide2.QtWidgets.QGraphicsLayoutItem', 'PySide2.QtCore.Qt.AnchorPoint', 'PySide2.QtWidgets.QGraphicsLayoutItem', 'PySide2.QtCore.Qt.AnchorPoint'),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.addAnchors": ('PySide2.QtWidgets.QGraphicsLayoutItem', 'PySide2.QtWidgets.QGraphicsLayoutItem', 'PySide2.QtCore.Qt.Orientations'),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.addCornerAnchors": ('PySide2.QtWidgets.QGraphicsLayoutItem', 'PySide2.QtCore.Qt.Corner', 'PySide2.QtWidgets.QGraphicsLayoutItem', 'PySide2.QtCore.Qt.Corner'),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.anchor": ('PySide2.QtWidgets.QGraphicsLayoutItem', 'PySide2.QtCore.Qt.AnchorPoint', 'PySide2.QtWidgets.QGraphicsLayoutItem', 'PySide2.QtCore.Qt.AnchorPoint'),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.count": (),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.horizontalSpacing": (),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.invalidate": (),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.itemAt": ('int',),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.removeAt": ('int',),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.setGeometry": ('PySide2.QtCore.QRectF',),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.setHorizontalSpacing": ('float',),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.setSpacing": ('float',),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.setVerticalSpacing": ('float',),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.sizeHint": ('PySide2.QtCore.Qt.SizeHint', 'PySide2.QtCore.QSizeF'),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.verticalSpacing": (),
-# class PySide2.QtWidgets.QGraphicsBlurEffect:
-# class PySide2.QtWidgets.QGraphicsBlurEffect.BlurHint:
-# class PySide2.QtWidgets.QGraphicsBlurEffect.BlurHints:
- "PySide2.QtWidgets.QGraphicsBlurEffect.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGraphicsBlurEffect.blurHints": (),
- "PySide2.QtWidgets.QGraphicsBlurEffect.blurRadius": (),
- "PySide2.QtWidgets.QGraphicsBlurEffect.boundingRectFor": ('PySide2.QtCore.QRectF',),
- "PySide2.QtWidgets.QGraphicsBlurEffect.draw": ('PySide2.QtGui.QPainter',),
- "PySide2.QtWidgets.QGraphicsBlurEffect.setBlurHints": ('PySide2.QtWidgets.QGraphicsBlurEffect.BlurHints',),
- "PySide2.QtWidgets.QGraphicsBlurEffect.setBlurRadius": ('float',),
-# class PySide2.QtWidgets.QGraphicsColorizeEffect:
- "PySide2.QtWidgets.QGraphicsColorizeEffect.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGraphicsColorizeEffect.color": (),
- "PySide2.QtWidgets.QGraphicsColorizeEffect.draw": ('PySide2.QtGui.QPainter',),
- "PySide2.QtWidgets.QGraphicsColorizeEffect.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QGraphicsColorizeEffect.setStrength": ('float',),
- "PySide2.QtWidgets.QGraphicsColorizeEffect.strength": (),
-# class PySide2.QtWidgets.QGraphicsDropShadowEffect:
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.blurRadius": (),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.boundingRectFor": ('PySide2.QtCore.QRectF',),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.color": (),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.draw": ('PySide2.QtGui.QPainter',),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.offset": (),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.setBlurRadius": ('float',),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.setOffset": [('PySide2.QtCore.QPointF',), ('float',), ('float', 'float')],
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.setXOffset": ('float',),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.setYOffset": ('float',),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.xOffset": (),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.yOffset": (),
-# class PySide2.QtWidgets.QGraphicsEffect:
-# class PySide2.QtWidgets.QGraphicsEffect.ChangeFlag:
-# class PySide2.QtWidgets.QGraphicsEffect.ChangeFlags:
-# class PySide2.QtWidgets.QGraphicsEffect.PixmapPadMode:
- "PySide2.QtWidgets.QGraphicsEffect.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGraphicsEffect.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsEffect.boundingRectFor": ('PySide2.QtCore.QRectF',),
- "PySide2.QtWidgets.QGraphicsEffect.draw": ('PySide2.QtGui.QPainter',),
- "PySide2.QtWidgets.QGraphicsEffect.drawSource": ('PySide2.QtGui.QPainter',),
- "PySide2.QtWidgets.QGraphicsEffect.isEnabled": (),
- "PySide2.QtWidgets.QGraphicsEffect.setEnabled": ('bool',),
- "PySide2.QtWidgets.QGraphicsEffect.sourceBoundingRect": ('PySide2.QtCore.Qt.CoordinateSystem',),
- "PySide2.QtWidgets.QGraphicsEffect.sourceChanged": ('PySide2.QtWidgets.QGraphicsEffect.ChangeFlags',),
- "PySide2.QtWidgets.QGraphicsEffect.sourceIsPixmap": (),
- "PySide2.QtWidgets.QGraphicsEffect.sourcePixmap": ('PySide2.QtCore.Qt.CoordinateSystem', 'PySide2.QtCore.QPoint', 'PySide2.QtWidgets.QGraphicsEffect.PixmapPadMode'),
- "PySide2.QtWidgets.QGraphicsEffect.update": (),
- "PySide2.QtWidgets.QGraphicsEffect.updateBoundingRect": (),
-# class PySide2.QtWidgets.QGraphicsEllipseItem:
- "PySide2.QtWidgets.QGraphicsEllipseItem.__init__": [('PySide2.QtCore.QRectF', 'PySide2.QtWidgets.QGraphicsItem'), ('PySide2.QtWidgets.QGraphicsItem',), ('float', 'float', 'float', 'float', 'PySide2.QtWidgets.QGraphicsItem')],
- "PySide2.QtWidgets.QGraphicsEllipseItem.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsEllipseItem.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsEllipseItem.extension": ('typing.Any',),
- "PySide2.QtWidgets.QGraphicsEllipseItem.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsEllipseItem.opaqueArea": (),
- "PySide2.QtWidgets.QGraphicsEllipseItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsEllipseItem.rect": (),
- "PySide2.QtWidgets.QGraphicsEllipseItem.setRect": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsEllipseItem.setSpanAngle": ('int',),
- "PySide2.QtWidgets.QGraphicsEllipseItem.setStartAngle": ('int',),
- "PySide2.QtWidgets.QGraphicsEllipseItem.shape": (),
- "PySide2.QtWidgets.QGraphicsEllipseItem.spanAngle": (),
- "PySide2.QtWidgets.QGraphicsEllipseItem.startAngle": (),
- "PySide2.QtWidgets.QGraphicsEllipseItem.type": (),
-# class PySide2.QtWidgets.QGraphicsGridLayout:
- "PySide2.QtWidgets.QGraphicsGridLayout.__init__": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
- "PySide2.QtWidgets.QGraphicsGridLayout.addItem": [('PySide2.QtWidgets.QGraphicsLayoutItem', 'int', 'int', 'PySide2.QtCore.Qt.Alignment'), ('PySide2.QtWidgets.QGraphicsLayoutItem', 'int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.Alignment')],
- "PySide2.QtWidgets.QGraphicsGridLayout.alignment": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
- "PySide2.QtWidgets.QGraphicsGridLayout.columnAlignment": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.columnCount": (),
- "PySide2.QtWidgets.QGraphicsGridLayout.columnMaximumWidth": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.columnMinimumWidth": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.columnPreferredWidth": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.columnSpacing": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.columnStretchFactor": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.count": (),
- "PySide2.QtWidgets.QGraphicsGridLayout.horizontalSpacing": (),
- "PySide2.QtWidgets.QGraphicsGridLayout.invalidate": (),
- "PySide2.QtWidgets.QGraphicsGridLayout.itemAt": [('int',), ('int', 'int')],
- "PySide2.QtWidgets.QGraphicsGridLayout.removeAt": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.removeItem": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
- "PySide2.QtWidgets.QGraphicsGridLayout.rowAlignment": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.rowCount": (),
- "PySide2.QtWidgets.QGraphicsGridLayout.rowMaximumHeight": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.rowMinimumHeight": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.rowPreferredHeight": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.rowSpacing": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.rowStretchFactor": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.setAlignment": ('PySide2.QtWidgets.QGraphicsLayoutItem', 'PySide2.QtCore.Qt.Alignment'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setColumnAlignment": ('int', 'PySide2.QtCore.Qt.Alignment'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setColumnFixedWidth": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setColumnMaximumWidth": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setColumnMinimumWidth": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setColumnPreferredWidth": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setColumnSpacing": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setColumnStretchFactor": ('int', 'int'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setGeometry": ('PySide2.QtCore.QRectF',),
- "PySide2.QtWidgets.QGraphicsGridLayout.setHorizontalSpacing": ('float',),
- "PySide2.QtWidgets.QGraphicsGridLayout.setRowAlignment": ('int', 'PySide2.QtCore.Qt.Alignment'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setRowFixedHeight": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setRowMaximumHeight": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setRowMinimumHeight": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setRowPreferredHeight": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setRowSpacing": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setRowStretchFactor": ('int', 'int'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setSpacing": ('float',),
- "PySide2.QtWidgets.QGraphicsGridLayout.setVerticalSpacing": ('float',),
- "PySide2.QtWidgets.QGraphicsGridLayout.sizeHint": ('PySide2.QtCore.Qt.SizeHint', 'PySide2.QtCore.QSizeF'),
- "PySide2.QtWidgets.QGraphicsGridLayout.verticalSpacing": (),
-# class PySide2.QtWidgets.QGraphicsItem:
-# class PySide2.QtWidgets.QGraphicsItem.CacheMode:
-# class PySide2.QtWidgets.QGraphicsItem.Extension:
-# class PySide2.QtWidgets.QGraphicsItem.GraphicsItemChange:
-# class PySide2.QtWidgets.QGraphicsItem.GraphicsItemFlag:
-# class PySide2.QtWidgets.QGraphicsItem.GraphicsItemFlags:
-# class PySide2.QtWidgets.QGraphicsItem.PanelModality:
- "PySide2.QtWidgets.QGraphicsItem.__init__": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.acceptDrops": (),
- "PySide2.QtWidgets.QGraphicsItem.acceptHoverEvents": (),
- "PySide2.QtWidgets.QGraphicsItem.acceptTouchEvents": (),
- "PySide2.QtWidgets.QGraphicsItem.acceptedMouseButtons": (),
- "PySide2.QtWidgets.QGraphicsItem.addToIndex": (),
- "PySide2.QtWidgets.QGraphicsItem.advance": ('int',),
- "PySide2.QtWidgets.QGraphicsItem.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsItem.boundingRegion": ('PySide2.QtGui.QTransform',),
- "PySide2.QtWidgets.QGraphicsItem.boundingRegionGranularity": (),
- "PySide2.QtWidgets.QGraphicsItem.cacheMode": (),
- "PySide2.QtWidgets.QGraphicsItem.childItems": (),
- "PySide2.QtWidgets.QGraphicsItem.childrenBoundingRect": (),
- "PySide2.QtWidgets.QGraphicsItem.clearFocus": (),
- "PySide2.QtWidgets.QGraphicsItem.clipPath": (),
- "PySide2.QtWidgets.QGraphicsItem.collidesWithItem": ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.Qt.ItemSelectionMode'),
- "PySide2.QtWidgets.QGraphicsItem.collidesWithPath": ('PySide2.QtGui.QPainterPath', 'PySide2.QtCore.Qt.ItemSelectionMode'),
- "PySide2.QtWidgets.QGraphicsItem.collidingItems": ('PySide2.QtCore.Qt.ItemSelectionMode',),
- "PySide2.QtWidgets.QGraphicsItem.commonAncestorItem": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsItem.contextMenuEvent": ('PySide2.QtWidgets.QGraphicsSceneContextMenuEvent',),
- "PySide2.QtWidgets.QGraphicsItem.cursor": (),
- "PySide2.QtWidgets.QGraphicsItem.data": ('int',),
- "PySide2.QtWidgets.QGraphicsItem.deviceTransform": ('PySide2.QtGui.QTransform',),
- "PySide2.QtWidgets.QGraphicsItem.dragEnterEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsItem.dragLeaveEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsItem.dragMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsItem.dropEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsItem.effectiveOpacity": (),
- "PySide2.QtWidgets.QGraphicsItem.ensureVisible": [('PySide2.QtCore.QRectF', 'int', 'int'), ('float', 'float', 'float', 'float', 'int', 'int')],
- "PySide2.QtWidgets.QGraphicsItem.extension": ('typing.Any',),
- "PySide2.QtWidgets.QGraphicsItem.filtersChildEvents": (),
- "PySide2.QtWidgets.QGraphicsItem.flags": (),
- "PySide2.QtWidgets.QGraphicsItem.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsItem.focusItem": (),
- "PySide2.QtWidgets.QGraphicsItem.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsItem.focusProxy": (),
- "PySide2.QtWidgets.QGraphicsItem.focusScopeItem": (),
- "PySide2.QtWidgets.QGraphicsItem.grabKeyboard": (),
- "PySide2.QtWidgets.QGraphicsItem.grabMouse": (),
- "PySide2.QtWidgets.QGraphicsItem.graphicsEffect": (),
- "PySide2.QtWidgets.QGraphicsItem.group": (),
- "PySide2.QtWidgets.QGraphicsItem.handlesChildEvents": (),
- "PySide2.QtWidgets.QGraphicsItem.hasCursor": (),
- "PySide2.QtWidgets.QGraphicsItem.hasFocus": (),
- "PySide2.QtWidgets.QGraphicsItem.hide": (),
- "PySide2.QtWidgets.QGraphicsItem.hoverEnterEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsItem.hoverLeaveEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsItem.hoverMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsItem.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QGraphicsItem.inputMethodHints": (),
- "PySide2.QtWidgets.QGraphicsItem.inputMethodQuery": ('PySide2.QtCore.Qt.InputMethodQuery',),
- "PySide2.QtWidgets.QGraphicsItem.installSceneEventFilter": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.isActive": (),
- "PySide2.QtWidgets.QGraphicsItem.isAncestorOf": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.isBlockedByModalPanel": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.isClipped": (),
- "PySide2.QtWidgets.QGraphicsItem.isEnabled": (),
- "PySide2.QtWidgets.QGraphicsItem.isObscured": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.isPanel": (),
- "PySide2.QtWidgets.QGraphicsItem.isSelected": (),
- "PySide2.QtWidgets.QGraphicsItem.isUnderMouse": (),
- "PySide2.QtWidgets.QGraphicsItem.isVisible": (),
- "PySide2.QtWidgets.QGraphicsItem.isVisibleTo": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.isWidget": (),
- "PySide2.QtWidgets.QGraphicsItem.isWindow": (),
- "PySide2.QtWidgets.QGraphicsItem.itemChange": ('PySide2.QtWidgets.QGraphicsItem.GraphicsItemChange', 'typing.Any'),
- "PySide2.QtWidgets.QGraphicsItem.itemTransform": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QGraphicsItem.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QGraphicsItem.mapFromItem": [('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.QPointF'), ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.QRectF'), ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtGui.QPainterPath'), ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtGui.QPolygonF'), ('PySide2.QtWidgets.QGraphicsItem', 'float', 'float'), ('PySide2.QtWidgets.QGraphicsItem', 'float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapFromParent": [('PySide2.QtCore.QPointF',), ('PySide2.QtCore.QRectF',), ('PySide2.QtGui.QPainterPath',), ('PySide2.QtGui.QPolygonF',), ('float', 'float'), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapFromScene": [('PySide2.QtCore.QPointF',), ('PySide2.QtCore.QRectF',), ('PySide2.QtGui.QPainterPath',), ('PySide2.QtGui.QPolygonF',), ('float', 'float'), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapRectFromItem": [('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.QRectF'), ('PySide2.QtWidgets.QGraphicsItem', 'float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapRectFromParent": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapRectFromScene": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapRectToItem": [('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.QRectF'), ('PySide2.QtWidgets.QGraphicsItem', 'float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapRectToParent": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapRectToScene": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapToItem": [('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.QPointF'), ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.QRectF'), ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtGui.QPainterPath'), ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtGui.QPolygonF'), ('PySide2.QtWidgets.QGraphicsItem', 'float', 'float'), ('PySide2.QtWidgets.QGraphicsItem', 'float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapToParent": [('PySide2.QtCore.QPointF',), ('PySide2.QtCore.QRectF',), ('PySide2.QtGui.QPainterPath',), ('PySide2.QtGui.QPolygonF',), ('float', 'float'), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapToScene": [('PySide2.QtCore.QPointF',), ('PySide2.QtCore.QRectF',), ('PySide2.QtGui.QPainterPath',), ('PySide2.QtGui.QPolygonF',), ('float', 'float'), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.matrix": (),
- "PySide2.QtWidgets.QGraphicsItem.mouseDoubleClickEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsItem.mouseMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsItem.mousePressEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsItem.mouseReleaseEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsItem.moveBy": ('float', 'float'),
- "PySide2.QtWidgets.QGraphicsItem.opacity": (),
- "PySide2.QtWidgets.QGraphicsItem.opaqueArea": (),
- "PySide2.QtWidgets.QGraphicsItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsItem.panel": (),
- "PySide2.QtWidgets.QGraphicsItem.panelModality": (),
- "PySide2.QtWidgets.QGraphicsItem.parentItem": (),
- "PySide2.QtWidgets.QGraphicsItem.parentObject": (),
- "PySide2.QtWidgets.QGraphicsItem.parentWidget": (),
- "PySide2.QtWidgets.QGraphicsItem.pos": (),
- "PySide2.QtWidgets.QGraphicsItem.prepareGeometryChange": (),
- "PySide2.QtWidgets.QGraphicsItem.removeFromIndex": (),
- "PySide2.QtWidgets.QGraphicsItem.removeSceneEventFilter": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.resetMatrix": (),
- "PySide2.QtWidgets.QGraphicsItem.resetTransform": (),
- "PySide2.QtWidgets.QGraphicsItem.rotation": (),
- "PySide2.QtWidgets.QGraphicsItem.scale": (),
- "PySide2.QtWidgets.QGraphicsItem.scene": (),
- "PySide2.QtWidgets.QGraphicsItem.sceneBoundingRect": (),
- "PySide2.QtWidgets.QGraphicsItem.sceneEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsItem.sceneEventFilter": ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QGraphicsItem.sceneMatrix": (),
- "PySide2.QtWidgets.QGraphicsItem.scenePos": (),
- "PySide2.QtWidgets.QGraphicsItem.sceneTransform": (),
- "PySide2.QtWidgets.QGraphicsItem.scroll": ('float', 'float', 'PySide2.QtCore.QRectF'),
- "PySide2.QtWidgets.QGraphicsItem.setAcceptDrops": ('bool',),
- "PySide2.QtWidgets.QGraphicsItem.setAcceptHoverEvents": ('bool',),
- "PySide2.QtWidgets.QGraphicsItem.setAcceptTouchEvents": ('bool',),
- "PySide2.QtWidgets.QGraphicsItem.setAcceptedMouseButtons": ('PySide2.QtCore.Qt.MouseButtons',),
- "PySide2.QtWidgets.QGraphicsItem.setActive": ('bool',),
- "PySide2.QtWidgets.QGraphicsItem.setBoundingRegionGranularity": ('float',),
- "PySide2.QtWidgets.QGraphicsItem.setCacheMode": ('PySide2.QtWidgets.QGraphicsItem.CacheMode', 'PySide2.QtCore.QSize'),
- "PySide2.QtWidgets.QGraphicsItem.setCursor": ('PySide2.QtGui.QCursor',),
- "PySide2.QtWidgets.QGraphicsItem.setData": ('int', 'typing.Any'),
- "PySide2.QtWidgets.QGraphicsItem.setEnabled": ('bool',),
- "PySide2.QtWidgets.QGraphicsItem.setFiltersChildEvents": ('bool',),
- "PySide2.QtWidgets.QGraphicsItem.setFlag": ('PySide2.QtWidgets.QGraphicsItem.GraphicsItemFlag', 'bool'),
- "PySide2.QtWidgets.QGraphicsItem.setFlags": ('PySide2.QtWidgets.QGraphicsItem.GraphicsItemFlags',),
- "PySide2.QtWidgets.QGraphicsItem.setFocus": ('PySide2.QtCore.Qt.FocusReason',),
- "PySide2.QtWidgets.QGraphicsItem.setFocusProxy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.setGraphicsEffect": ('PySide2.QtWidgets.QGraphicsEffect',),
- "PySide2.QtWidgets.QGraphicsItem.setGroup": ('PySide2.QtWidgets.QGraphicsItemGroup',),
- "PySide2.QtWidgets.QGraphicsItem.setHandlesChildEvents": ('bool',),
- "PySide2.QtWidgets.QGraphicsItem.setInputMethodHints": ('PySide2.QtCore.Qt.InputMethodHints',),
- "PySide2.QtWidgets.QGraphicsItem.setMatrix": ('PySide2.QtGui.QMatrix', 'bool'),
- "PySide2.QtWidgets.QGraphicsItem.setOpacity": ('float',),
- "PySide2.QtWidgets.QGraphicsItem.setPanelModality": ('PySide2.QtWidgets.QGraphicsItem.PanelModality',),
- "PySide2.QtWidgets.QGraphicsItem.setParentItem": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.setPos": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.setRotation": ('float',),
- "PySide2.QtWidgets.QGraphicsItem.setScale": ('float',),
- "PySide2.QtWidgets.QGraphicsItem.setSelected": ('bool',),
- "PySide2.QtWidgets.QGraphicsItem.setToolTip": ('str',),
- "PySide2.QtWidgets.QGraphicsItem.setTransform": ('PySide2.QtGui.QTransform', 'bool'),
- "PySide2.QtWidgets.QGraphicsItem.setTransformOriginPoint": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.setTransformations": ('typing.Sequence[PySide2.QtWidgets.QGraphicsTransform]',),
- "PySide2.QtWidgets.QGraphicsItem.setVisible": ('bool',),
- "PySide2.QtWidgets.QGraphicsItem.setX": ('float',),
- "PySide2.QtWidgets.QGraphicsItem.setY": ('float',),
- "PySide2.QtWidgets.QGraphicsItem.setZValue": ('float',),
- "PySide2.QtWidgets.QGraphicsItem.shape": (),
- "PySide2.QtWidgets.QGraphicsItem.show": (),
- "PySide2.QtWidgets.QGraphicsItem.stackBefore": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.toGraphicsObject": (),
- "PySide2.QtWidgets.QGraphicsItem.toolTip": (),
- "PySide2.QtWidgets.QGraphicsItem.topLevelItem": (),
- "PySide2.QtWidgets.QGraphicsItem.topLevelWidget": (),
- "PySide2.QtWidgets.QGraphicsItem.transform": (),
- "PySide2.QtWidgets.QGraphicsItem.transformOriginPoint": (),
- "PySide2.QtWidgets.QGraphicsItem.transformations": (),
- "PySide2.QtWidgets.QGraphicsItem.type": (),
- "PySide2.QtWidgets.QGraphicsItem.ungrabKeyboard": (),
- "PySide2.QtWidgets.QGraphicsItem.ungrabMouse": (),
- "PySide2.QtWidgets.QGraphicsItem.unsetCursor": (),
- "PySide2.QtWidgets.QGraphicsItem.update": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.updateMicroFocus": (),
- "PySide2.QtWidgets.QGraphicsItem.wheelEvent": ('PySide2.QtWidgets.QGraphicsSceneWheelEvent',),
- "PySide2.QtWidgets.QGraphicsItem.window": (),
- "PySide2.QtWidgets.QGraphicsItem.x": (),
- "PySide2.QtWidgets.QGraphicsItem.y": (),
- "PySide2.QtWidgets.QGraphicsItem.zValue": (),
-# class PySide2.QtWidgets.QGraphicsItemAnimation:
- "PySide2.QtWidgets.QGraphicsItemAnimation.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.afterAnimationStep": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.beforeAnimationStep": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.clear": (),
- "PySide2.QtWidgets.QGraphicsItemAnimation.horizontalScaleAt": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.horizontalShearAt": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.item": (),
- "PySide2.QtWidgets.QGraphicsItemAnimation.matrixAt": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.posAt": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.posList": (),
- "PySide2.QtWidgets.QGraphicsItemAnimation.reset": (),
- "PySide2.QtWidgets.QGraphicsItemAnimation.rotationAt": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.rotationList": (),
- "PySide2.QtWidgets.QGraphicsItemAnimation.scaleList": (),
- "PySide2.QtWidgets.QGraphicsItemAnimation.setItem": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.setPosAt": ('float', 'PySide2.QtCore.QPointF'),
- "PySide2.QtWidgets.QGraphicsItemAnimation.setRotationAt": ('float', 'float'),
- "PySide2.QtWidgets.QGraphicsItemAnimation.setScaleAt": ('float', 'float', 'float'),
- "PySide2.QtWidgets.QGraphicsItemAnimation.setShearAt": ('float', 'float', 'float'),
- "PySide2.QtWidgets.QGraphicsItemAnimation.setStep": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.setTimeLine": ('PySide2.QtCore.QTimeLine',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.setTranslationAt": ('float', 'float', 'float'),
- "PySide2.QtWidgets.QGraphicsItemAnimation.shearList": (),
- "PySide2.QtWidgets.QGraphicsItemAnimation.timeLine": (),
- "PySide2.QtWidgets.QGraphicsItemAnimation.transformAt": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.translationList": (),
- "PySide2.QtWidgets.QGraphicsItemAnimation.verticalScaleAt": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.verticalShearAt": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.xTranslationAt": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.yTranslationAt": ('float',),
-# class PySide2.QtWidgets.QGraphicsItemGroup:
- "PySide2.QtWidgets.QGraphicsItemGroup.__init__": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItemGroup.addToGroup": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItemGroup.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsItemGroup.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItemGroup.opaqueArea": (),
- "PySide2.QtWidgets.QGraphicsItemGroup.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsItemGroup.removeFromGroup": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItemGroup.type": (),
-# class PySide2.QtWidgets.QGraphicsLayout:
- "PySide2.QtWidgets.QGraphicsLayout.__init__": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
- "PySide2.QtWidgets.QGraphicsLayout.activate": (),
- "PySide2.QtWidgets.QGraphicsLayout.addChildLayoutItem": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
- "PySide2.QtWidgets.QGraphicsLayout.count": (),
- "PySide2.QtWidgets.QGraphicsLayout.getContentsMargins": (),
- "PySide2.QtWidgets.QGraphicsLayout.instantInvalidatePropagation": (),
- "PySide2.QtWidgets.QGraphicsLayout.invalidate": (),
- "PySide2.QtWidgets.QGraphicsLayout.isActivated": (),
- "PySide2.QtWidgets.QGraphicsLayout.itemAt": ('int',),
- "PySide2.QtWidgets.QGraphicsLayout.removeAt": ('int',),
- "PySide2.QtWidgets.QGraphicsLayout.setContentsMargins": ('float', 'float', 'float', 'float'),
- "PySide2.QtWidgets.QGraphicsLayout.setInstantInvalidatePropagation": ('bool',),
- "PySide2.QtWidgets.QGraphicsLayout.updateGeometry": (),
- "PySide2.QtWidgets.QGraphicsLayout.widgetEvent": ('PySide2.QtCore.QEvent',),
-# class PySide2.QtWidgets.QGraphicsLayoutItem:
- "PySide2.QtWidgets.QGraphicsLayoutItem.__init__": ('PySide2.QtWidgets.QGraphicsLayoutItem', 'bool'),
- "PySide2.QtWidgets.QGraphicsLayoutItem.contentsRect": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.effectiveSizeHint": ('PySide2.QtCore.Qt.SizeHint', 'PySide2.QtCore.QSizeF'),
- "PySide2.QtWidgets.QGraphicsLayoutItem.geometry": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.getContentsMargins": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.graphicsItem": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.isLayout": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.maximumHeight": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.maximumSize": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.maximumWidth": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.minimumHeight": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.minimumSize": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.minimumWidth": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.ownedByLayout": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.parentLayoutItem": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.preferredHeight": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.preferredSize": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.preferredWidth": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setGeometry": ('PySide2.QtCore.QRectF',),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setGraphicsItem": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setMaximumHeight": ('float',),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setMaximumSize": [('PySide2.QtCore.QSizeF',), ('float', 'float')],
- "PySide2.QtWidgets.QGraphicsLayoutItem.setMaximumWidth": ('float',),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setMinimumHeight": ('float',),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setMinimumSize": [('PySide2.QtCore.QSizeF',), ('float', 'float')],
- "PySide2.QtWidgets.QGraphicsLayoutItem.setMinimumWidth": ('float',),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setOwnedByLayout": ('bool',),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setParentLayoutItem": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setPreferredHeight": ('float',),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setPreferredSize": [('PySide2.QtCore.QSizeF',), ('float', 'float')],
- "PySide2.QtWidgets.QGraphicsLayoutItem.setPreferredWidth": ('float',),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setSizePolicy": [('PySide2.QtWidgets.QSizePolicy',), ('PySide2.QtWidgets.QSizePolicy.Policy', 'PySide2.QtWidgets.QSizePolicy.Policy', 'PySide2.QtWidgets.QSizePolicy.ControlType')],
- "PySide2.QtWidgets.QGraphicsLayoutItem.sizeHint": ('PySide2.QtCore.Qt.SizeHint', 'PySide2.QtCore.QSizeF'),
- "PySide2.QtWidgets.QGraphicsLayoutItem.sizePolicy": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.updateGeometry": (),
-# class PySide2.QtWidgets.QGraphicsLineItem:
- "PySide2.QtWidgets.QGraphicsLineItem.__init__": [('PySide2.QtCore.QLineF', 'PySide2.QtWidgets.QGraphicsItem'), ('PySide2.QtWidgets.QGraphicsItem',), ('float', 'float', 'float', 'float', 'PySide2.QtWidgets.QGraphicsItem')],
- "PySide2.QtWidgets.QGraphicsLineItem.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsLineItem.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsLineItem.extension": ('typing.Any',),
- "PySide2.QtWidgets.QGraphicsLineItem.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsLineItem.line": (),
- "PySide2.QtWidgets.QGraphicsLineItem.opaqueArea": (),
- "PySide2.QtWidgets.QGraphicsLineItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsLineItem.pen": (),
- "PySide2.QtWidgets.QGraphicsLineItem.setLine": [('PySide2.QtCore.QLineF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsLineItem.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtWidgets.QGraphicsLineItem.shape": (),
- "PySide2.QtWidgets.QGraphicsLineItem.type": (),
-# class PySide2.QtWidgets.QGraphicsLinearLayout:
- "PySide2.QtWidgets.QGraphicsLinearLayout.__init__": [('PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QGraphicsLayoutItem'), ('PySide2.QtWidgets.QGraphicsLayoutItem',)],
- "PySide2.QtWidgets.QGraphicsLinearLayout.addItem": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.addStretch": ('int',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.alignment": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.count": (),
- "PySide2.QtWidgets.QGraphicsLinearLayout.dump": ('int',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.insertItem": ('int', 'PySide2.QtWidgets.QGraphicsLayoutItem'),
- "PySide2.QtWidgets.QGraphicsLinearLayout.insertStretch": ('int', 'int'),
- "PySide2.QtWidgets.QGraphicsLinearLayout.invalidate": (),
- "PySide2.QtWidgets.QGraphicsLinearLayout.itemAt": ('int',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.itemSpacing": ('int',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.orientation": (),
- "PySide2.QtWidgets.QGraphicsLinearLayout.removeAt": ('int',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.removeItem": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.setAlignment": ('PySide2.QtWidgets.QGraphicsLayoutItem', 'PySide2.QtCore.Qt.Alignment'),
- "PySide2.QtWidgets.QGraphicsLinearLayout.setGeometry": ('PySide2.QtCore.QRectF',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.setItemSpacing": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsLinearLayout.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.setSpacing": ('float',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.setStretchFactor": ('PySide2.QtWidgets.QGraphicsLayoutItem', 'int'),
- "PySide2.QtWidgets.QGraphicsLinearLayout.sizeHint": ('PySide2.QtCore.Qt.SizeHint', 'PySide2.QtCore.QSizeF'),
- "PySide2.QtWidgets.QGraphicsLinearLayout.spacing": (),
- "PySide2.QtWidgets.QGraphicsLinearLayout.stretchFactor": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
-# class PySide2.QtWidgets.QGraphicsObject:
- "PySide2.QtWidgets.QGraphicsObject.__init__": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsObject.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsObject.grabGesture": ('PySide2.QtCore.Qt.GestureType', 'PySide2.QtCore.Qt.GestureFlags'),
- "PySide2.QtWidgets.QGraphicsObject.ungrabGesture": ('PySide2.QtCore.Qt.GestureType',),
- "PySide2.QtWidgets.QGraphicsObject.updateMicroFocus": (),
-# class PySide2.QtWidgets.QGraphicsOpacityEffect:
- "PySide2.QtWidgets.QGraphicsOpacityEffect.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGraphicsOpacityEffect.draw": ('PySide2.QtGui.QPainter',),
- "PySide2.QtWidgets.QGraphicsOpacityEffect.opacity": (),
- "PySide2.QtWidgets.QGraphicsOpacityEffect.opacityMask": (),
- "PySide2.QtWidgets.QGraphicsOpacityEffect.setOpacity": ('float',),
- "PySide2.QtWidgets.QGraphicsOpacityEffect.setOpacityMask": ('PySide2.QtGui.QBrush',),
-# class PySide2.QtWidgets.QGraphicsPathItem:
- "PySide2.QtWidgets.QGraphicsPathItem.__init__": [('PySide2.QtGui.QPainterPath', 'PySide2.QtWidgets.QGraphicsItem'), ('PySide2.QtWidgets.QGraphicsItem',)],
- "PySide2.QtWidgets.QGraphicsPathItem.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsPathItem.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsPathItem.extension": ('typing.Any',),
- "PySide2.QtWidgets.QGraphicsPathItem.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsPathItem.opaqueArea": (),
- "PySide2.QtWidgets.QGraphicsPathItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsPathItem.path": (),
- "PySide2.QtWidgets.QGraphicsPathItem.setPath": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtWidgets.QGraphicsPathItem.shape": (),
- "PySide2.QtWidgets.QGraphicsPathItem.type": (),
-# class PySide2.QtWidgets.QGraphicsPixmapItem:
-# class PySide2.QtWidgets.QGraphicsPixmapItem.ShapeMode:
- "PySide2.QtWidgets.QGraphicsPixmapItem.__init__": [('PySide2.QtGui.QPixmap', 'PySide2.QtWidgets.QGraphicsItem'), ('PySide2.QtWidgets.QGraphicsItem',)],
- "PySide2.QtWidgets.QGraphicsPixmapItem.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsPixmapItem.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsPixmapItem.extension": ('typing.Any',),
- "PySide2.QtWidgets.QGraphicsPixmapItem.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsPixmapItem.offset": (),
- "PySide2.QtWidgets.QGraphicsPixmapItem.opaqueArea": (),
- "PySide2.QtWidgets.QGraphicsPixmapItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsPixmapItem.pixmap": (),
- "PySide2.QtWidgets.QGraphicsPixmapItem.setOffset": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtWidgets.QGraphicsPixmapItem.setPixmap": ('PySide2.QtGui.QPixmap',),
- "PySide2.QtWidgets.QGraphicsPixmapItem.setShapeMode": ('PySide2.QtWidgets.QGraphicsPixmapItem.ShapeMode',),
- "PySide2.QtWidgets.QGraphicsPixmapItem.setTransformationMode": ('PySide2.QtCore.Qt.TransformationMode',),
- "PySide2.QtWidgets.QGraphicsPixmapItem.shape": (),
- "PySide2.QtWidgets.QGraphicsPixmapItem.shapeMode": (),
- "PySide2.QtWidgets.QGraphicsPixmapItem.transformationMode": (),
- "PySide2.QtWidgets.QGraphicsPixmapItem.type": (),
-# class PySide2.QtWidgets.QGraphicsPolygonItem:
- "PySide2.QtWidgets.QGraphicsPolygonItem.__init__": [('PySide2.QtGui.QPolygonF', 'PySide2.QtWidgets.QGraphicsItem'), ('PySide2.QtWidgets.QGraphicsItem',)],
- "PySide2.QtWidgets.QGraphicsPolygonItem.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsPolygonItem.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsPolygonItem.extension": ('typing.Any',),
- "PySide2.QtWidgets.QGraphicsPolygonItem.fillRule": (),
- "PySide2.QtWidgets.QGraphicsPolygonItem.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsPolygonItem.opaqueArea": (),
- "PySide2.QtWidgets.QGraphicsPolygonItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsPolygonItem.polygon": (),
- "PySide2.QtWidgets.QGraphicsPolygonItem.setFillRule": ('PySide2.QtCore.Qt.FillRule',),
- "PySide2.QtWidgets.QGraphicsPolygonItem.setPolygon": ('PySide2.QtGui.QPolygonF',),
- "PySide2.QtWidgets.QGraphicsPolygonItem.shape": (),
- "PySide2.QtWidgets.QGraphicsPolygonItem.type": (),
-# class PySide2.QtWidgets.QGraphicsProxyWidget:
- "PySide2.QtWidgets.QGraphicsProxyWidget.__init__": ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QGraphicsProxyWidget.contextMenuEvent": ('PySide2.QtWidgets.QGraphicsSceneContextMenuEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.createProxyForChildWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.dragEnterEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.dragLeaveEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.dragMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.dropEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QGraphicsProxyWidget.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.grabMouseEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.hoverEnterEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.hoverLeaveEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.hoverMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.inputMethodQuery": ('PySide2.QtCore.Qt.InputMethodQuery',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.itemChange": ('PySide2.QtWidgets.QGraphicsItem.GraphicsItemChange', 'typing.Any'),
- "PySide2.QtWidgets.QGraphicsProxyWidget.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.mouseDoubleClickEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.mouseMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.mousePressEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.mouseReleaseEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.newProxyWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsProxyWidget.resizeEvent": ('PySide2.QtWidgets.QGraphicsSceneResizeEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.setGeometry": ('PySide2.QtCore.QRectF',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.setWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.sizeHint": ('PySide2.QtCore.Qt.SizeHint', 'PySide2.QtCore.QSizeF'),
- "PySide2.QtWidgets.QGraphicsProxyWidget.subWidgetRect": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.type": (),
- "PySide2.QtWidgets.QGraphicsProxyWidget.ungrabMouseEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.wheelEvent": ('PySide2.QtWidgets.QGraphicsSceneWheelEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.widget": (),
-# class PySide2.QtWidgets.QGraphicsRectItem:
- "PySide2.QtWidgets.QGraphicsRectItem.__init__": [('PySide2.QtCore.QRectF', 'PySide2.QtWidgets.QGraphicsItem'), ('PySide2.QtWidgets.QGraphicsItem',), ('float', 'float', 'float', 'float', 'PySide2.QtWidgets.QGraphicsItem')],
- "PySide2.QtWidgets.QGraphicsRectItem.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsRectItem.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsRectItem.extension": ('typing.Any',),
- "PySide2.QtWidgets.QGraphicsRectItem.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsRectItem.opaqueArea": (),
- "PySide2.QtWidgets.QGraphicsRectItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsRectItem.rect": (),
- "PySide2.QtWidgets.QGraphicsRectItem.setRect": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsRectItem.shape": (),
- "PySide2.QtWidgets.QGraphicsRectItem.type": (),
-# class PySide2.QtWidgets.QGraphicsRotation:
- "PySide2.QtWidgets.QGraphicsRotation.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGraphicsRotation.angle": (),
- "PySide2.QtWidgets.QGraphicsRotation.applyTo": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtWidgets.QGraphicsRotation.axis": (),
- "PySide2.QtWidgets.QGraphicsRotation.origin": (),
- "PySide2.QtWidgets.QGraphicsRotation.setAngle": ('float',),
- "PySide2.QtWidgets.QGraphicsRotation.setAxis": [('PySide2.QtCore.Qt.Axis',), ('PySide2.QtGui.QVector3D',)],
- "PySide2.QtWidgets.QGraphicsRotation.setOrigin": ('PySide2.QtGui.QVector3D',),
-# class PySide2.QtWidgets.QGraphicsScale:
- "PySide2.QtWidgets.QGraphicsScale.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGraphicsScale.applyTo": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtWidgets.QGraphicsScale.origin": (),
- "PySide2.QtWidgets.QGraphicsScale.setOrigin": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtWidgets.QGraphicsScale.setXScale": ('float',),
- "PySide2.QtWidgets.QGraphicsScale.setYScale": ('float',),
- "PySide2.QtWidgets.QGraphicsScale.setZScale": ('float',),
- "PySide2.QtWidgets.QGraphicsScale.xScale": (),
- "PySide2.QtWidgets.QGraphicsScale.yScale": (),
- "PySide2.QtWidgets.QGraphicsScale.zScale": (),
-# class PySide2.QtWidgets.QGraphicsScene:
-# class PySide2.QtWidgets.QGraphicsScene.ItemIndexMethod:
-# class PySide2.QtWidgets.QGraphicsScene.SceneLayer:
-# class PySide2.QtWidgets.QGraphicsScene.SceneLayers:
- "PySide2.QtWidgets.QGraphicsScene.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtCore.QRectF', 'PySide2.QtCore.QObject'), ('float', 'float', 'float', 'float', 'PySide2.QtCore.QObject')],
- "PySide2.QtWidgets.QGraphicsScene.activePanel": (),
- "PySide2.QtWidgets.QGraphicsScene.activeWindow": (),
- "PySide2.QtWidgets.QGraphicsScene.addEllipse": [('PySide2.QtCore.QRectF', 'PySide2.QtGui.QPen', 'PySide2.QtGui.QBrush'), ('float', 'float', 'float', 'float', 'PySide2.QtGui.QPen', 'PySide2.QtGui.QBrush')],
- "PySide2.QtWidgets.QGraphicsScene.addItem": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsScene.addLine": [('PySide2.QtCore.QLineF', 'PySide2.QtGui.QPen'), ('float', 'float', 'float', 'float', 'PySide2.QtGui.QPen')],
- "PySide2.QtWidgets.QGraphicsScene.addPath": ('PySide2.QtGui.QPainterPath', 'PySide2.QtGui.QPen', 'PySide2.QtGui.QBrush'),
- "PySide2.QtWidgets.QGraphicsScene.addPixmap": ('PySide2.QtGui.QPixmap',),
- "PySide2.QtWidgets.QGraphicsScene.addPolygon": ('PySide2.QtGui.QPolygonF', 'PySide2.QtGui.QPen', 'PySide2.QtGui.QBrush'),
- "PySide2.QtWidgets.QGraphicsScene.addRect": [('PySide2.QtCore.QRectF', 'PySide2.QtGui.QPen', 'PySide2.QtGui.QBrush'), ('float', 'float', 'float', 'float', 'PySide2.QtGui.QPen', 'PySide2.QtGui.QBrush')],
- "PySide2.QtWidgets.QGraphicsScene.addSimpleText": ('str', 'PySide2.QtGui.QFont'),
- "PySide2.QtWidgets.QGraphicsScene.addText": ('str', 'PySide2.QtGui.QFont'),
- "PySide2.QtWidgets.QGraphicsScene.addWidget": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QGraphicsScene.advance": (),
- "PySide2.QtWidgets.QGraphicsScene.backgroundBrush": (),
- "PySide2.QtWidgets.QGraphicsScene.bspTreeDepth": (),
- "PySide2.QtWidgets.QGraphicsScene.clear": (),
- "PySide2.QtWidgets.QGraphicsScene.clearFocus": (),
- "PySide2.QtWidgets.QGraphicsScene.clearSelection": (),
- "PySide2.QtWidgets.QGraphicsScene.collidingItems": ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.Qt.ItemSelectionMode'),
- "PySide2.QtWidgets.QGraphicsScene.contextMenuEvent": ('PySide2.QtWidgets.QGraphicsSceneContextMenuEvent',),
- "PySide2.QtWidgets.QGraphicsScene.createItemGroup": ('typing.Sequence[PySide2.QtWidgets.QGraphicsItem]',),
- "PySide2.QtWidgets.QGraphicsScene.destroyItemGroup": ('PySide2.QtWidgets.QGraphicsItemGroup',),
- "PySide2.QtWidgets.QGraphicsScene.dragEnterEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsScene.dragLeaveEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsScene.dragMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsScene.drawBackground": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF'),
- "PySide2.QtWidgets.QGraphicsScene.drawForeground": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF'),
- "PySide2.QtWidgets.QGraphicsScene.dropEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsScene.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsScene.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QGraphicsScene.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsScene.focusItem": (),
- "PySide2.QtWidgets.QGraphicsScene.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QGraphicsScene.focusOnTouch": (),
- "PySide2.QtWidgets.QGraphicsScene.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsScene.font": (),
- "PySide2.QtWidgets.QGraphicsScene.foregroundBrush": (),
- "PySide2.QtWidgets.QGraphicsScene.hasFocus": (),
- "PySide2.QtWidgets.QGraphicsScene.height": (),
- "PySide2.QtWidgets.QGraphicsScene.helpEvent": ('PySide2.QtWidgets.QGraphicsSceneHelpEvent',),
- "PySide2.QtWidgets.QGraphicsScene.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QGraphicsScene.inputMethodQuery": ('PySide2.QtCore.Qt.InputMethodQuery',),
- "PySide2.QtWidgets.QGraphicsScene.invalidate": [('PySide2.QtCore.QRectF', 'PySide2.QtWidgets.QGraphicsScene.SceneLayers'), ('float', 'float', 'float', 'float', 'PySide2.QtWidgets.QGraphicsScene.SceneLayers')],
- "PySide2.QtWidgets.QGraphicsScene.isActive": (),
- "PySide2.QtWidgets.QGraphicsScene.isSortCacheEnabled": (),
- "PySide2.QtWidgets.QGraphicsScene.itemAt": [('PySide2.QtCore.QPointF', 'PySide2.QtGui.QTransform'), ('float', 'float', 'PySide2.QtGui.QTransform')],
- "PySide2.QtWidgets.QGraphicsScene.itemIndexMethod": (),
- "PySide2.QtWidgets.QGraphicsScene.items": [('PySide2.QtCore.QPointF', 'PySide2.QtCore.Qt.ItemSelectionMode', 'PySide2.QtCore.Qt.SortOrder', 'PySide2.QtGui.QTransform'), ('PySide2.QtCore.QRectF', 'PySide2.QtCore.Qt.ItemSelectionMode', 'PySide2.QtCore.Qt.SortOrder', 'PySide2.QtGui.QTransform'), ('PySide2.QtCore.Qt.SortOrder',), ('PySide2.QtGui.QPainterPath', 'PySide2.QtCore.Qt.ItemSelectionMode', 'PySide2.QtCore.Qt.SortOrder', 'PySide2.QtGui.QTransform'), ('PySide2.QtGui.QPolygonF', 'PySide2.QtCore.Qt.ItemSelectionMode', 'PySide2.QtCore.Qt.SortOrder', 'PySide2.QtGui.QTransform'), ('float', 'float', 'float', 'float', 'PySide2.QtCore.Qt.ItemSelectionMode', 'PySide2.QtCore.Qt.SortOrder', 'PySide2.QtGui.QTransform')],
- "PySide2.QtWidgets.QGraphicsScene.itemsBoundingRect": (),
- "PySide2.QtWidgets.QGraphicsScene.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QGraphicsScene.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QGraphicsScene.minimumRenderSize": (),
- "PySide2.QtWidgets.QGraphicsScene.mouseDoubleClickEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsScene.mouseGrabberItem": (),
- "PySide2.QtWidgets.QGraphicsScene.mouseMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsScene.mousePressEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsScene.mouseReleaseEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsScene.palette": (),
- "PySide2.QtWidgets.QGraphicsScene.removeItem": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsScene.render": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF', 'PySide2.QtCore.QRectF', 'PySide2.QtCore.Qt.AspectRatioMode'),
- "PySide2.QtWidgets.QGraphicsScene.sceneRect": (),
- "PySide2.QtWidgets.QGraphicsScene.selectedItems": (),
- "PySide2.QtWidgets.QGraphicsScene.selectionArea": (),
- "PySide2.QtWidgets.QGraphicsScene.sendEvent": ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QGraphicsScene.setActivePanel": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsScene.setActiveWindow": ('PySide2.QtWidgets.QGraphicsWidget',),
- "PySide2.QtWidgets.QGraphicsScene.setBackgroundBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtWidgets.QGraphicsScene.setBspTreeDepth": ('int',),
- "PySide2.QtWidgets.QGraphicsScene.setFocus": ('PySide2.QtCore.Qt.FocusReason',),
- "PySide2.QtWidgets.QGraphicsScene.setFocusItem": ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.Qt.FocusReason'),
- "PySide2.QtWidgets.QGraphicsScene.setFocusOnTouch": ('bool',),
- "PySide2.QtWidgets.QGraphicsScene.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QGraphicsScene.setForegroundBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtWidgets.QGraphicsScene.setItemIndexMethod": ('PySide2.QtWidgets.QGraphicsScene.ItemIndexMethod',),
- "PySide2.QtWidgets.QGraphicsScene.setMinimumRenderSize": ('float',),
- "PySide2.QtWidgets.QGraphicsScene.setPalette": ('PySide2.QtGui.QPalette',),
- "PySide2.QtWidgets.QGraphicsScene.setSceneRect": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsScene.setSelectionArea": [('PySide2.QtGui.QPainterPath', 'PySide2.QtCore.Qt.ItemSelectionMode', 'PySide2.QtGui.QTransform'), ('PySide2.QtGui.QPainterPath', 'PySide2.QtCore.Qt.ItemSelectionOperation', 'PySide2.QtCore.Qt.ItemSelectionMode', 'PySide2.QtGui.QTransform'), ('PySide2.QtGui.QPainterPath', 'PySide2.QtGui.QTransform')],
- "PySide2.QtWidgets.QGraphicsScene.setSortCacheEnabled": ('bool',),
- "PySide2.QtWidgets.QGraphicsScene.setStickyFocus": ('bool',),
- "PySide2.QtWidgets.QGraphicsScene.setStyle": ('PySide2.QtWidgets.QStyle',),
- "PySide2.QtWidgets.QGraphicsScene.stickyFocus": (),
- "PySide2.QtWidgets.QGraphicsScene.style": (),
- "PySide2.QtWidgets.QGraphicsScene.update": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsScene.views": (),
- "PySide2.QtWidgets.QGraphicsScene.wheelEvent": ('PySide2.QtWidgets.QGraphicsSceneWheelEvent',),
- "PySide2.QtWidgets.QGraphicsScene.width": (),
-# class PySide2.QtWidgets.QGraphicsSceneContextMenuEvent:
-# class PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.Reason:
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.__init__": ('PySide2.QtCore.QEvent.Type',),
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.modifiers": (),
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.pos": (),
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.reason": (),
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.scenePos": (),
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.screenPos": (),
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.setModifiers": ('PySide2.QtCore.Qt.KeyboardModifiers',),
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.setPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.setReason": ('PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.Reason',),
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.setScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.setScreenPos": ('PySide2.QtCore.QPoint',),
-# class PySide2.QtWidgets.QGraphicsSceneDragDropEvent:
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.__init__": ('PySide2.QtCore.QEvent.Type',),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.acceptProposedAction": (),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.buttons": (),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.dropAction": (),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.mimeData": (),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.modifiers": (),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.pos": (),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.possibleActions": (),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.proposedAction": (),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.scenePos": (),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.screenPos": (),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.setButtons": ('PySide2.QtCore.Qt.MouseButtons',),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.setDropAction": ('PySide2.QtCore.Qt.DropAction',),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.setModifiers": ('PySide2.QtCore.Qt.KeyboardModifiers',),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.setPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.setPossibleActions": ('PySide2.QtCore.Qt.DropActions',),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.setProposedAction": ('PySide2.QtCore.Qt.DropAction',),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.setScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.setScreenPos": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.source": (),
-# class PySide2.QtWidgets.QGraphicsSceneEvent:
- "PySide2.QtWidgets.QGraphicsSceneEvent.__init__": ('PySide2.QtCore.QEvent.Type',),
- "PySide2.QtWidgets.QGraphicsSceneEvent.widget": (),
-# class PySide2.QtWidgets.QGraphicsSceneHelpEvent:
- "PySide2.QtWidgets.QGraphicsSceneHelpEvent.__init__": ('PySide2.QtCore.QEvent.Type',),
- "PySide2.QtWidgets.QGraphicsSceneHelpEvent.scenePos": (),
- "PySide2.QtWidgets.QGraphicsSceneHelpEvent.screenPos": (),
- "PySide2.QtWidgets.QGraphicsSceneHelpEvent.setScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneHelpEvent.setScreenPos": ('PySide2.QtCore.QPoint',),
-# class PySide2.QtWidgets.QGraphicsSceneHoverEvent:
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.__init__": ('PySide2.QtCore.QEvent.Type',),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.lastPos": (),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.lastScenePos": (),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.lastScreenPos": (),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.modifiers": (),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.pos": (),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.scenePos": (),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.screenPos": (),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.setLastPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.setLastScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.setLastScreenPos": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.setModifiers": ('PySide2.QtCore.Qt.KeyboardModifiers',),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.setPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.setScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.setScreenPos": ('PySide2.QtCore.QPoint',),
-# class PySide2.QtWidgets.QGraphicsSceneMouseEvent:
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.__init__": ('PySide2.QtCore.QEvent.Type',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.button": (),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.buttonDownPos": ('PySide2.QtCore.Qt.MouseButton',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.buttonDownScenePos": ('PySide2.QtCore.Qt.MouseButton',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.buttonDownScreenPos": ('PySide2.QtCore.Qt.MouseButton',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.buttons": (),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.flags": (),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.lastPos": (),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.lastScenePos": (),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.lastScreenPos": (),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.modifiers": (),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.pos": (),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.scenePos": (),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.screenPos": (),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setButton": ('PySide2.QtCore.Qt.MouseButton',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setButtonDownPos": ('PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.QPointF'),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setButtonDownScenePos": ('PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.QPointF'),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setButtonDownScreenPos": ('PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.QPoint'),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setButtons": ('PySide2.QtCore.Qt.MouseButtons',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setFlags": ('PySide2.QtCore.Qt.MouseEventFlags',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setLastPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setLastScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setLastScreenPos": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setModifiers": ('PySide2.QtCore.Qt.KeyboardModifiers',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setScreenPos": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setSource": ('PySide2.QtCore.Qt.MouseEventSource',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.source": (),
-# class PySide2.QtWidgets.QGraphicsSceneMoveEvent:
- "PySide2.QtWidgets.QGraphicsSceneMoveEvent.__init__": (),
- "PySide2.QtWidgets.QGraphicsSceneMoveEvent.newPos": (),
- "PySide2.QtWidgets.QGraphicsSceneMoveEvent.oldPos": (),
- "PySide2.QtWidgets.QGraphicsSceneMoveEvent.setNewPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneMoveEvent.setOldPos": ('PySide2.QtCore.QPointF',),
-# class PySide2.QtWidgets.QGraphicsSceneResizeEvent:
- "PySide2.QtWidgets.QGraphicsSceneResizeEvent.__init__": (),
- "PySide2.QtWidgets.QGraphicsSceneResizeEvent.newSize": (),
- "PySide2.QtWidgets.QGraphicsSceneResizeEvent.oldSize": (),
- "PySide2.QtWidgets.QGraphicsSceneResizeEvent.setNewSize": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtWidgets.QGraphicsSceneResizeEvent.setOldSize": ('PySide2.QtCore.QSizeF',),
-# class PySide2.QtWidgets.QGraphicsSceneWheelEvent:
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.__init__": ('PySide2.QtCore.QEvent.Type',),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.buttons": (),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.delta": (),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.modifiers": (),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.orientation": (),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.pos": (),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.scenePos": (),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.screenPos": (),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.setButtons": ('PySide2.QtCore.Qt.MouseButtons',),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.setDelta": ('int',),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.setModifiers": ('PySide2.QtCore.Qt.KeyboardModifiers',),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.setPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.setScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.setScreenPos": ('PySide2.QtCore.QPoint',),
-# class PySide2.QtWidgets.QGraphicsSimpleTextItem:
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.__init__": [('PySide2.QtWidgets.QGraphicsItem',), ('str', 'PySide2.QtWidgets.QGraphicsItem')],
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.extension": ('typing.Any',),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.font": (),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.opaqueArea": (),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.setText": ('str',),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.shape": (),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.text": (),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.type": (),
-# class PySide2.QtWidgets.QGraphicsTextItem:
- "PySide2.QtWidgets.QGraphicsTextItem.__init__": [('PySide2.QtWidgets.QGraphicsItem',), ('str', 'PySide2.QtWidgets.QGraphicsItem')],
- "PySide2.QtWidgets.QGraphicsTextItem.adjustSize": (),
- "PySide2.QtWidgets.QGraphicsTextItem.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsTextItem.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsTextItem.contextMenuEvent": ('PySide2.QtWidgets.QGraphicsSceneContextMenuEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.defaultTextColor": (),
- "PySide2.QtWidgets.QGraphicsTextItem.document": (),
- "PySide2.QtWidgets.QGraphicsTextItem.dragEnterEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.dragLeaveEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.dragMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.dropEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.extension": ('typing.Any',),
- "PySide2.QtWidgets.QGraphicsTextItem.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.font": (),
- "PySide2.QtWidgets.QGraphicsTextItem.hoverEnterEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.hoverLeaveEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.hoverMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.inputMethodQuery": ('PySide2.QtCore.Qt.InputMethodQuery',),
- "PySide2.QtWidgets.QGraphicsTextItem.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsTextItem.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.mouseDoubleClickEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.mouseMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.mousePressEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.mouseReleaseEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.opaqueArea": (),
- "PySide2.QtWidgets.QGraphicsTextItem.openExternalLinks": (),
- "PySide2.QtWidgets.QGraphicsTextItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsTextItem.sceneEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.setDefaultTextColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QGraphicsTextItem.setDocument": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtWidgets.QGraphicsTextItem.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QGraphicsTextItem.setHtml": ('str',),
- "PySide2.QtWidgets.QGraphicsTextItem.setOpenExternalLinks": ('bool',),
- "PySide2.QtWidgets.QGraphicsTextItem.setPlainText": ('str',),
- "PySide2.QtWidgets.QGraphicsTextItem.setTabChangesFocus": ('bool',),
- "PySide2.QtWidgets.QGraphicsTextItem.setTextCursor": ('PySide2.QtGui.QTextCursor',),
- "PySide2.QtWidgets.QGraphicsTextItem.setTextInteractionFlags": ('PySide2.QtCore.Qt.TextInteractionFlags',),
- "PySide2.QtWidgets.QGraphicsTextItem.setTextWidth": ('float',),
- "PySide2.QtWidgets.QGraphicsTextItem.shape": (),
- "PySide2.QtWidgets.QGraphicsTextItem.tabChangesFocus": (),
- "PySide2.QtWidgets.QGraphicsTextItem.textCursor": (),
- "PySide2.QtWidgets.QGraphicsTextItem.textInteractionFlags": (),
- "PySide2.QtWidgets.QGraphicsTextItem.textWidth": (),
- "PySide2.QtWidgets.QGraphicsTextItem.toHtml": (),
- "PySide2.QtWidgets.QGraphicsTextItem.toPlainText": (),
- "PySide2.QtWidgets.QGraphicsTextItem.type": (),
-# class PySide2.QtWidgets.QGraphicsTransform:
- "PySide2.QtWidgets.QGraphicsTransform.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGraphicsTransform.applyTo": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtWidgets.QGraphicsTransform.update": (),
-# class PySide2.QtWidgets.QGraphicsView:
-# class PySide2.QtWidgets.QGraphicsView.CacheMode:
-# class PySide2.QtWidgets.QGraphicsView.CacheModeFlag:
-# class PySide2.QtWidgets.QGraphicsView.DragMode:
-# class PySide2.QtWidgets.QGraphicsView.OptimizationFlag:
-# class PySide2.QtWidgets.QGraphicsView.OptimizationFlags:
-# class PySide2.QtWidgets.QGraphicsView.ViewportAnchor:
-# class PySide2.QtWidgets.QGraphicsView.ViewportUpdateMode:
- "PySide2.QtWidgets.QGraphicsView.__init__": [('PySide2.QtWidgets.QGraphicsScene', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QGraphicsView.alignment": (),
- "PySide2.QtWidgets.QGraphicsView.backgroundBrush": (),
- "PySide2.QtWidgets.QGraphicsView.cacheMode": (),
- "PySide2.QtWidgets.QGraphicsView.centerOn": [('PySide2.QtCore.QPointF',), ('PySide2.QtWidgets.QGraphicsItem',), ('float', 'float')],
- "PySide2.QtWidgets.QGraphicsView.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QGraphicsView.dragEnterEvent": ('PySide2.QtGui.QDragEnterEvent',),
- "PySide2.QtWidgets.QGraphicsView.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtWidgets.QGraphicsView.dragMode": (),
- "PySide2.QtWidgets.QGraphicsView.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtWidgets.QGraphicsView.drawBackground": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF'),
- "PySide2.QtWidgets.QGraphicsView.drawForeground": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF'),
- "PySide2.QtWidgets.QGraphicsView.drawItems": ('PySide2.QtGui.QPainter', 'int', 'typing.Sequence[PySide2.QtWidgets.QGraphicsItem]', 'typing.Sequence[PySide2.QtWidgets.QStyleOptionGraphicsItem]'),
- "PySide2.QtWidgets.QGraphicsView.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QGraphicsView.ensureVisible": [('PySide2.QtCore.QRectF', 'int', 'int'), ('PySide2.QtWidgets.QGraphicsItem', 'int', 'int'), ('float', 'float', 'float', 'float', 'int', 'int')],
- "PySide2.QtWidgets.QGraphicsView.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsView.fitInView": [('PySide2.QtCore.QRectF', 'PySide2.QtCore.Qt.AspectRatioMode'), ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.Qt.AspectRatioMode'), ('float', 'float', 'float', 'float', 'PySide2.QtCore.Qt.AspectRatioMode')],
- "PySide2.QtWidgets.QGraphicsView.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsView.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QGraphicsView.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsView.foregroundBrush": (),
- "PySide2.QtWidgets.QGraphicsView.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QGraphicsView.inputMethodQuery": ('PySide2.QtCore.Qt.InputMethodQuery',),
- "PySide2.QtWidgets.QGraphicsView.invalidateScene": ('PySide2.QtCore.QRectF', 'PySide2.QtWidgets.QGraphicsScene.SceneLayers'),
- "PySide2.QtWidgets.QGraphicsView.isInteractive": (),
- "PySide2.QtWidgets.QGraphicsView.isTransformed": (),
- "PySide2.QtWidgets.QGraphicsView.itemAt": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtWidgets.QGraphicsView.items": [(), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QRect', 'PySide2.QtCore.Qt.ItemSelectionMode'), ('PySide2.QtGui.QPainterPath', 'PySide2.QtCore.Qt.ItemSelectionMode'), ('PySide2.QtGui.QPolygon', 'PySide2.QtCore.Qt.ItemSelectionMode'), ('int', 'int'), ('int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.ItemSelectionMode')],
- "PySide2.QtWidgets.QGraphicsView.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QGraphicsView.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QGraphicsView.mapFromScene": [('PySide2.QtCore.QPointF',), ('PySide2.QtCore.QRectF',), ('PySide2.QtGui.QPainterPath',), ('PySide2.QtGui.QPolygonF',), ('float', 'float'), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsView.mapToScene": [('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QRect',), ('PySide2.QtGui.QPainterPath',), ('PySide2.QtGui.QPolygon',), ('int', 'int'), ('int', 'int', 'int', 'int')],
- "PySide2.QtWidgets.QGraphicsView.matrix": (),
- "PySide2.QtWidgets.QGraphicsView.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QGraphicsView.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QGraphicsView.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QGraphicsView.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QGraphicsView.optimizationFlags": (),
- "PySide2.QtWidgets.QGraphicsView.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QGraphicsView.render": [('PySide2.QtGui.QPaintDevice', 'PySide2.QtCore.QPoint', 'PySide2.QtGui.QRegion', 'PySide2.QtWidgets.QWidget.RenderFlags'), ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF', 'PySide2.QtCore.QRect', 'PySide2.QtCore.Qt.AspectRatioMode')],
- "PySide2.QtWidgets.QGraphicsView.renderHints": (),
- "PySide2.QtWidgets.QGraphicsView.resetCachedContent": (),
- "PySide2.QtWidgets.QGraphicsView.resetMatrix": (),
- "PySide2.QtWidgets.QGraphicsView.resetTransform": (),
- "PySide2.QtWidgets.QGraphicsView.resizeAnchor": (),
- "PySide2.QtWidgets.QGraphicsView.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QGraphicsView.rotate": ('float',),
- "PySide2.QtWidgets.QGraphicsView.rubberBandRect": (),
- "PySide2.QtWidgets.QGraphicsView.rubberBandSelectionMode": (),
- "PySide2.QtWidgets.QGraphicsView.scale": ('float', 'float'),
- "PySide2.QtWidgets.QGraphicsView.scene": (),
- "PySide2.QtWidgets.QGraphicsView.sceneRect": (),
- "PySide2.QtWidgets.QGraphicsView.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QGraphicsView.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QGraphicsView.setBackgroundBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtWidgets.QGraphicsView.setCacheMode": ('PySide2.QtWidgets.QGraphicsView.CacheMode',),
- "PySide2.QtWidgets.QGraphicsView.setDragMode": ('PySide2.QtWidgets.QGraphicsView.DragMode',),
- "PySide2.QtWidgets.QGraphicsView.setForegroundBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtWidgets.QGraphicsView.setInteractive": ('bool',),
- "PySide2.QtWidgets.QGraphicsView.setMatrix": ('PySide2.QtGui.QMatrix', 'bool'),
- "PySide2.QtWidgets.QGraphicsView.setOptimizationFlag": ('PySide2.QtWidgets.QGraphicsView.OptimizationFlag', 'bool'),
- "PySide2.QtWidgets.QGraphicsView.setOptimizationFlags": ('PySide2.QtWidgets.QGraphicsView.OptimizationFlags',),
- "PySide2.QtWidgets.QGraphicsView.setRenderHint": ('PySide2.QtGui.QPainter.RenderHint', 'bool'),
- "PySide2.QtWidgets.QGraphicsView.setRenderHints": ('PySide2.QtGui.QPainter.RenderHints',),
- "PySide2.QtWidgets.QGraphicsView.setResizeAnchor": ('PySide2.QtWidgets.QGraphicsView.ViewportAnchor',),
- "PySide2.QtWidgets.QGraphicsView.setRubberBandSelectionMode": ('PySide2.QtCore.Qt.ItemSelectionMode',),
- "PySide2.QtWidgets.QGraphicsView.setScene": ('PySide2.QtWidgets.QGraphicsScene',),
- "PySide2.QtWidgets.QGraphicsView.setSceneRect": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsView.setTransform": ('PySide2.QtGui.QTransform', 'bool'),
- "PySide2.QtWidgets.QGraphicsView.setTransformationAnchor": ('PySide2.QtWidgets.QGraphicsView.ViewportAnchor',),
- "PySide2.QtWidgets.QGraphicsView.setViewportUpdateMode": ('PySide2.QtWidgets.QGraphicsView.ViewportUpdateMode',),
- "PySide2.QtWidgets.QGraphicsView.setupViewport": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QGraphicsView.shear": ('float', 'float'),
- "PySide2.QtWidgets.QGraphicsView.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QGraphicsView.sizeHint": (),
- "PySide2.QtWidgets.QGraphicsView.transform": (),
- "PySide2.QtWidgets.QGraphicsView.transformationAnchor": (),
- "PySide2.QtWidgets.QGraphicsView.translate": ('float', 'float'),
- "PySide2.QtWidgets.QGraphicsView.updateScene": ('typing.Sequence[PySide2.QtCore.QRectF]',),
- "PySide2.QtWidgets.QGraphicsView.updateSceneRect": ('PySide2.QtCore.QRectF',),
- "PySide2.QtWidgets.QGraphicsView.viewportEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsView.viewportTransform": (),
- "PySide2.QtWidgets.QGraphicsView.viewportUpdateMode": (),
- "PySide2.QtWidgets.QGraphicsView.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtWidgets.QGraphicsWidget:
- "PySide2.QtWidgets.QGraphicsWidget.__init__": ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QGraphicsWidget.actions": (),
- "PySide2.QtWidgets.QGraphicsWidget.addAction": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QGraphicsWidget.addActions": ('typing.Sequence[PySide2.QtWidgets.QAction]',),
- "PySide2.QtWidgets.QGraphicsWidget.adjustSize": (),
- "PySide2.QtWidgets.QGraphicsWidget.autoFillBackground": (),
- "PySide2.QtWidgets.QGraphicsWidget.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsWidget.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.close": (),
- "PySide2.QtWidgets.QGraphicsWidget.closeEvent": ('PySide2.QtGui.QCloseEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QGraphicsWidget.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.focusPolicy": (),
- "PySide2.QtWidgets.QGraphicsWidget.focusWidget": (),
- "PySide2.QtWidgets.QGraphicsWidget.font": (),
- "PySide2.QtWidgets.QGraphicsWidget.getContentsMargins": (),
- "PySide2.QtWidgets.QGraphicsWidget.getWindowFrameMargins": (),
- "PySide2.QtWidgets.QGraphicsWidget.grabKeyboardEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.grabMouseEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.grabShortcut": ('PySide2.QtGui.QKeySequence', 'PySide2.QtCore.Qt.ShortcutContext'),
- "PySide2.QtWidgets.QGraphicsWidget.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.hoverLeaveEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.hoverMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.initStyleOption": ('PySide2.QtWidgets.QStyleOption',),
- "PySide2.QtWidgets.QGraphicsWidget.insertAction": ('PySide2.QtWidgets.QAction', 'PySide2.QtWidgets.QAction'),
- "PySide2.QtWidgets.QGraphicsWidget.insertActions": ('PySide2.QtWidgets.QAction', 'typing.Sequence[PySide2.QtWidgets.QAction]'),
- "PySide2.QtWidgets.QGraphicsWidget.isActiveWindow": (),
- "PySide2.QtWidgets.QGraphicsWidget.itemChange": ('PySide2.QtWidgets.QGraphicsItem.GraphicsItemChange', 'typing.Any'),
- "PySide2.QtWidgets.QGraphicsWidget.layout": (),
- "PySide2.QtWidgets.QGraphicsWidget.layoutDirection": (),
- "PySide2.QtWidgets.QGraphicsWidget.moveEvent": ('PySide2.QtWidgets.QGraphicsSceneMoveEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsWidget.paintWindowFrame": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsWidget.palette": (),
- "PySide2.QtWidgets.QGraphicsWidget.polishEvent": (),
- "PySide2.QtWidgets.QGraphicsWidget.propertyChange": ('str', 'typing.Any'),
- "PySide2.QtWidgets.QGraphicsWidget.rect": (),
- "PySide2.QtWidgets.QGraphicsWidget.releaseShortcut": ('int',),
- "PySide2.QtWidgets.QGraphicsWidget.removeAction": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QGraphicsWidget.resize": [('PySide2.QtCore.QSizeF',), ('float', 'float')],
- "PySide2.QtWidgets.QGraphicsWidget.resizeEvent": ('PySide2.QtWidgets.QGraphicsSceneResizeEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.sceneEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.setAttribute": ('PySide2.QtCore.Qt.WidgetAttribute', 'bool'),
- "PySide2.QtWidgets.QGraphicsWidget.setAutoFillBackground": ('bool',),
- "PySide2.QtWidgets.QGraphicsWidget.setContentsMargins": [('PySide2.QtCore.QMarginsF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsWidget.setFocusPolicy": ('PySide2.QtCore.Qt.FocusPolicy',),
- "PySide2.QtWidgets.QGraphicsWidget.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QGraphicsWidget.setGeometry": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsWidget.setLayout": ('PySide2.QtWidgets.QGraphicsLayout',),
- "PySide2.QtWidgets.QGraphicsWidget.setLayoutDirection": ('PySide2.QtCore.Qt.LayoutDirection',),
- "PySide2.QtWidgets.QGraphicsWidget.setPalette": ('PySide2.QtGui.QPalette',),
- "PySide2.QtWidgets.QGraphicsWidget.setShortcutAutoRepeat": ('int', 'bool'),
- "PySide2.QtWidgets.QGraphicsWidget.setShortcutEnabled": ('int', 'bool'),
- "PySide2.QtWidgets.QGraphicsWidget.setStyle": ('PySide2.QtWidgets.QStyle',),
- "PySide2.QtWidgets.QGraphicsWidget.setTabOrder": ('PySide2.QtWidgets.QGraphicsWidget', 'PySide2.QtWidgets.QGraphicsWidget'),
- "PySide2.QtWidgets.QGraphicsWidget.setWindowFlags": ('PySide2.QtCore.Qt.WindowFlags',),
- "PySide2.QtWidgets.QGraphicsWidget.setWindowFrameMargins": [('PySide2.QtCore.QMarginsF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsWidget.setWindowTitle": ('str',),
- "PySide2.QtWidgets.QGraphicsWidget.shape": (),
- "PySide2.QtWidgets.QGraphicsWidget.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.size": (),
- "PySide2.QtWidgets.QGraphicsWidget.sizeHint": ('PySide2.QtCore.Qt.SizeHint', 'PySide2.QtCore.QSizeF'),
- "PySide2.QtWidgets.QGraphicsWidget.style": (),
- "PySide2.QtWidgets.QGraphicsWidget.testAttribute": ('PySide2.QtCore.Qt.WidgetAttribute',),
- "PySide2.QtWidgets.QGraphicsWidget.type": (),
- "PySide2.QtWidgets.QGraphicsWidget.ungrabKeyboardEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.ungrabMouseEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.unsetLayoutDirection": (),
- "PySide2.QtWidgets.QGraphicsWidget.unsetWindowFrameMargins": (),
- "PySide2.QtWidgets.QGraphicsWidget.updateGeometry": (),
- "PySide2.QtWidgets.QGraphicsWidget.windowFlags": (),
- "PySide2.QtWidgets.QGraphicsWidget.windowFrameEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.windowFrameGeometry": (),
- "PySide2.QtWidgets.QGraphicsWidget.windowFrameRect": (),
- "PySide2.QtWidgets.QGraphicsWidget.windowFrameSectionAt": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsWidget.windowTitle": (),
- "PySide2.QtWidgets.QGraphicsWidget.windowType": (),
-# class PySide2.QtWidgets.QGridLayout:
- "PySide2.QtWidgets.QGridLayout.__init__": [(), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QGridLayout.addItem": [('PySide2.QtWidgets.QLayoutItem',), ('PySide2.QtWidgets.QLayoutItem', 'int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.Alignment')],
- "PySide2.QtWidgets.QGridLayout.addLayout": [('PySide2.QtWidgets.QLayout', 'int', 'int', 'PySide2.QtCore.Qt.Alignment'), ('PySide2.QtWidgets.QLayout', 'int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.Alignment')],
- "PySide2.QtWidgets.QGridLayout.addWidget": [('PySide2.QtWidgets.QWidget',), ('PySide2.QtWidgets.QWidget', 'int', 'int', 'PySide2.QtCore.Qt.Alignment'), ('PySide2.QtWidgets.QWidget', 'int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.Alignment')],
- "PySide2.QtWidgets.QGridLayout.cellRect": ('int', 'int'),
- "PySide2.QtWidgets.QGridLayout.columnCount": (),
- "PySide2.QtWidgets.QGridLayout.columnMinimumWidth": ('int',),
- "PySide2.QtWidgets.QGridLayout.columnStretch": ('int',),
- "PySide2.QtWidgets.QGridLayout.count": (),
- "PySide2.QtWidgets.QGridLayout.expandingDirections": (),
- "PySide2.QtWidgets.QGridLayout.getItemPosition": ('int',),
- "PySide2.QtWidgets.QGridLayout.hasHeightForWidth": (),
- "PySide2.QtWidgets.QGridLayout.heightForWidth": ('int',),
- "PySide2.QtWidgets.QGridLayout.horizontalSpacing": (),
- "PySide2.QtWidgets.QGridLayout.invalidate": (),
- "PySide2.QtWidgets.QGridLayout.itemAt": ('int',),
- "PySide2.QtWidgets.QGridLayout.itemAtPosition": ('int', 'int'),
- "PySide2.QtWidgets.QGridLayout.maximumSize": (),
- "PySide2.QtWidgets.QGridLayout.minimumHeightForWidth": ('int',),
- "PySide2.QtWidgets.QGridLayout.minimumSize": (),
- "PySide2.QtWidgets.QGridLayout.originCorner": (),
- "PySide2.QtWidgets.QGridLayout.rowCount": (),
- "PySide2.QtWidgets.QGridLayout.rowMinimumHeight": ('int',),
- "PySide2.QtWidgets.QGridLayout.rowStretch": ('int',),
- "PySide2.QtWidgets.QGridLayout.setColumnMinimumWidth": ('int', 'int'),
- "PySide2.QtWidgets.QGridLayout.setColumnStretch": ('int', 'int'),
- "PySide2.QtWidgets.QGridLayout.setDefaultPositioning": ('int', 'PySide2.QtCore.Qt.Orientation'),
- "PySide2.QtWidgets.QGridLayout.setGeometry": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QGridLayout.setHorizontalSpacing": ('int',),
- "PySide2.QtWidgets.QGridLayout.setOriginCorner": ('PySide2.QtCore.Qt.Corner',),
- "PySide2.QtWidgets.QGridLayout.setRowMinimumHeight": ('int', 'int'),
- "PySide2.QtWidgets.QGridLayout.setRowStretch": ('int', 'int'),
- "PySide2.QtWidgets.QGridLayout.setSpacing": ('int',),
- "PySide2.QtWidgets.QGridLayout.setVerticalSpacing": ('int',),
- "PySide2.QtWidgets.QGridLayout.sizeHint": (),
- "PySide2.QtWidgets.QGridLayout.spacing": (),
- "PySide2.QtWidgets.QGridLayout.takeAt": ('int',),
- "PySide2.QtWidgets.QGridLayout.verticalSpacing": (),
-# class PySide2.QtWidgets.QGroupBox:
- "PySide2.QtWidgets.QGroupBox.__init__": [('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QGroupBox.alignment": (),
- "PySide2.QtWidgets.QGroupBox.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGroupBox.childEvent": ('PySide2.QtCore.QChildEvent',),
- "PySide2.QtWidgets.QGroupBox.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGroupBox.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGroupBox.initStyleOption": ('PySide2.QtWidgets.QStyleOptionGroupBox',),
- "PySide2.QtWidgets.QGroupBox.isCheckable": (),
- "PySide2.QtWidgets.QGroupBox.isChecked": (),
- "PySide2.QtWidgets.QGroupBox.isFlat": (),
- "PySide2.QtWidgets.QGroupBox.minimumSizeHint": (),
- "PySide2.QtWidgets.QGroupBox.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QGroupBox.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QGroupBox.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QGroupBox.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QGroupBox.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QGroupBox.setAlignment": ('int',),
- "PySide2.QtWidgets.QGroupBox.setCheckable": ('bool',),
- "PySide2.QtWidgets.QGroupBox.setChecked": ('bool',),
- "PySide2.QtWidgets.QGroupBox.setFlat": ('bool',),
- "PySide2.QtWidgets.QGroupBox.setTitle": ('str',),
- "PySide2.QtWidgets.QGroupBox.title": (),
-# class PySide2.QtWidgets.QHBoxLayout:
- "PySide2.QtWidgets.QHBoxLayout.__init__": [(), ('PySide2.QtWidgets.QWidget',)],
-# class PySide2.QtWidgets.QHeaderView:
-# class PySide2.QtWidgets.QHeaderView.ResizeMode:
- "PySide2.QtWidgets.QHeaderView.__init__": ('PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QHeaderView.cascadingSectionResizes": (),
- "PySide2.QtWidgets.QHeaderView.count": (),
- "PySide2.QtWidgets.QHeaderView.currentChanged": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QHeaderView.dataChanged": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex', 'typing.List[int]'),
- "PySide2.QtWidgets.QHeaderView.defaultAlignment": (),
- "PySide2.QtWidgets.QHeaderView.defaultSectionSize": (),
- "PySide2.QtWidgets.QHeaderView.doItemsLayout": (),
- "PySide2.QtWidgets.QHeaderView.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QHeaderView.headerDataChanged": ('PySide2.QtCore.Qt.Orientation', 'int', 'int'),
- "PySide2.QtWidgets.QHeaderView.hiddenSectionCount": (),
- "PySide2.QtWidgets.QHeaderView.hideSection": ('int',),
- "PySide2.QtWidgets.QHeaderView.highlightSections": (),
- "PySide2.QtWidgets.QHeaderView.horizontalOffset": (),
- "PySide2.QtWidgets.QHeaderView.indexAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QHeaderView.initStyleOption": [('PySide2.QtWidgets.QStyleOptionFrame',), ('PySide2.QtWidgets.QStyleOptionHeader',)],
- "PySide2.QtWidgets.QHeaderView.initialize": (),
- "PySide2.QtWidgets.QHeaderView.initializeSections": [(), ('int', 'int')],
- "PySide2.QtWidgets.QHeaderView.isFirstSectionMovable": (),
- "PySide2.QtWidgets.QHeaderView.isIndexHidden": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QHeaderView.isSectionHidden": ('int',),
- "PySide2.QtWidgets.QHeaderView.isSortIndicatorShown": (),
- "PySide2.QtWidgets.QHeaderView.length": (),
- "PySide2.QtWidgets.QHeaderView.logicalIndex": ('int',),
- "PySide2.QtWidgets.QHeaderView.logicalIndexAt": [('PySide2.QtCore.QPoint',), ('int',), ('int', 'int')],
- "PySide2.QtWidgets.QHeaderView.maximumSectionSize": (),
- "PySide2.QtWidgets.QHeaderView.minimumSectionSize": (),
- "PySide2.QtWidgets.QHeaderView.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QHeaderView.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QHeaderView.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QHeaderView.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QHeaderView.moveCursor": ('PySide2.QtWidgets.QAbstractItemView.CursorAction', 'PySide2.QtCore.Qt.KeyboardModifiers'),
- "PySide2.QtWidgets.QHeaderView.moveSection": ('int', 'int'),
- "PySide2.QtWidgets.QHeaderView.offset": (),
- "PySide2.QtWidgets.QHeaderView.orientation": (),
- "PySide2.QtWidgets.QHeaderView.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QHeaderView.paintSection": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRect', 'int'),
- "PySide2.QtWidgets.QHeaderView.reset": (),
- "PySide2.QtWidgets.QHeaderView.resetDefaultSectionSize": (),
- "PySide2.QtWidgets.QHeaderView.resizeContentsPrecision": (),
- "PySide2.QtWidgets.QHeaderView.resizeSection": ('int', 'int'),
- "PySide2.QtWidgets.QHeaderView.resizeSections": [(), ('PySide2.QtWidgets.QHeaderView.ResizeMode',)],
- "PySide2.QtWidgets.QHeaderView.restoreState": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWidgets.QHeaderView.rowsInserted": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QHeaderView.saveState": (),
- "PySide2.QtWidgets.QHeaderView.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QHeaderView.scrollTo": ('PySide2.QtCore.QModelIndex', 'PySide2.QtWidgets.QAbstractItemView.ScrollHint'),
- "PySide2.QtWidgets.QHeaderView.sectionPosition": ('int',),
- "PySide2.QtWidgets.QHeaderView.sectionResizeMode": ('int',),
- "PySide2.QtWidgets.QHeaderView.sectionSize": ('int',),
- "PySide2.QtWidgets.QHeaderView.sectionSizeFromContents": ('int',),
- "PySide2.QtWidgets.QHeaderView.sectionSizeHint": ('int',),
- "PySide2.QtWidgets.QHeaderView.sectionViewportPosition": ('int',),
- "PySide2.QtWidgets.QHeaderView.sectionsAboutToBeRemoved": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QHeaderView.sectionsClickable": (),
- "PySide2.QtWidgets.QHeaderView.sectionsHidden": (),
- "PySide2.QtWidgets.QHeaderView.sectionsInserted": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QHeaderView.sectionsMovable": (),
- "PySide2.QtWidgets.QHeaderView.sectionsMoved": (),
- "PySide2.QtWidgets.QHeaderView.setCascadingSectionResizes": ('bool',),
- "PySide2.QtWidgets.QHeaderView.setDefaultAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QHeaderView.setDefaultSectionSize": ('int',),
- "PySide2.QtWidgets.QHeaderView.setFirstSectionMovable": ('bool',),
- "PySide2.QtWidgets.QHeaderView.setHighlightSections": ('bool',),
- "PySide2.QtWidgets.QHeaderView.setMaximumSectionSize": ('int',),
- "PySide2.QtWidgets.QHeaderView.setMinimumSectionSize": ('int',),
- "PySide2.QtWidgets.QHeaderView.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QHeaderView.setOffset": ('int',),
- "PySide2.QtWidgets.QHeaderView.setOffsetToLastSection": (),
- "PySide2.QtWidgets.QHeaderView.setOffsetToSectionPosition": ('int',),
- "PySide2.QtWidgets.QHeaderView.setResizeContentsPrecision": ('int',),
- "PySide2.QtWidgets.QHeaderView.setSectionHidden": ('int', 'bool'),
- "PySide2.QtWidgets.QHeaderView.setSectionResizeMode": [('PySide2.QtWidgets.QHeaderView.ResizeMode',), ('int', 'PySide2.QtWidgets.QHeaderView.ResizeMode')],
- "PySide2.QtWidgets.QHeaderView.setSectionsClickable": ('bool',),
- "PySide2.QtWidgets.QHeaderView.setSectionsMovable": ('bool',),
- "PySide2.QtWidgets.QHeaderView.setSelection": ('PySide2.QtCore.QRect', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags'),
- "PySide2.QtWidgets.QHeaderView.setSortIndicator": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtWidgets.QHeaderView.setSortIndicatorShown": ('bool',),
- "PySide2.QtWidgets.QHeaderView.setStretchLastSection": ('bool',),
- "PySide2.QtWidgets.QHeaderView.setVisible": ('bool',),
- "PySide2.QtWidgets.QHeaderView.showSection": ('int',),
- "PySide2.QtWidgets.QHeaderView.sizeHint": (),
- "PySide2.QtWidgets.QHeaderView.sortIndicatorOrder": (),
- "PySide2.QtWidgets.QHeaderView.sortIndicatorSection": (),
- "PySide2.QtWidgets.QHeaderView.stretchLastSection": (),
- "PySide2.QtWidgets.QHeaderView.stretchSectionCount": (),
- "PySide2.QtWidgets.QHeaderView.swapSections": ('int', 'int'),
- "PySide2.QtWidgets.QHeaderView.updateGeometries": (),
- "PySide2.QtWidgets.QHeaderView.updateSection": ('int',),
- "PySide2.QtWidgets.QHeaderView.verticalOffset": (),
- "PySide2.QtWidgets.QHeaderView.viewportEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QHeaderView.visualIndex": ('int',),
- "PySide2.QtWidgets.QHeaderView.visualIndexAt": ('int',),
- "PySide2.QtWidgets.QHeaderView.visualRect": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QHeaderView.visualRegionForSelection": ('PySide2.QtCore.QItemSelection',),
-# class PySide2.QtWidgets.QInputDialog:
-# class PySide2.QtWidgets.QInputDialog.InputDialogOption:
-# class PySide2.QtWidgets.QInputDialog.InputMode:
- "PySide2.QtWidgets.QInputDialog.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QInputDialog.cancelButtonText": (),
- "PySide2.QtWidgets.QInputDialog.comboBoxItems": (),
- "PySide2.QtWidgets.QInputDialog.done": ('int',),
- "PySide2.QtWidgets.QInputDialog.doubleDecimals": (),
- "PySide2.QtWidgets.QInputDialog.doubleMaximum": (),
- "PySide2.QtWidgets.QInputDialog.doubleMinimum": (),
- "PySide2.QtWidgets.QInputDialog.doubleStep": (),
- "PySide2.QtWidgets.QInputDialog.doubleValue": (),
- "PySide2.QtWidgets.QInputDialog.getDouble": [('PySide2.QtWidgets.QWidget', 'str', 'str', 'float', 'float', 'float', 'int', 'PySide2.QtCore.Qt.WindowFlags'), ('PySide2.QtWidgets.QWidget', 'str', 'str', 'float', 'float', 'float', 'int', 'PySide2.QtCore.Qt.WindowFlags', 'float')],
- "PySide2.QtWidgets.QInputDialog.getInt": ('PySide2.QtWidgets.QWidget', 'str', 'str', 'int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QInputDialog.getItem": ('PySide2.QtWidgets.QWidget', 'str', 'str', 'typing.Sequence[str]', 'int', 'bool', 'PySide2.QtCore.Qt.WindowFlags', 'PySide2.QtCore.Qt.InputMethodHints'),
- "PySide2.QtWidgets.QInputDialog.getMultiLineText": ('PySide2.QtWidgets.QWidget', 'str', 'str', 'str', 'PySide2.QtCore.Qt.WindowFlags', 'PySide2.QtCore.Qt.InputMethodHints'),
- "PySide2.QtWidgets.QInputDialog.getText": ('PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtWidgets.QLineEdit.EchoMode', 'str', 'PySide2.QtCore.Qt.WindowFlags', 'PySide2.QtCore.Qt.InputMethodHints'),
- "PySide2.QtWidgets.QInputDialog.inputMode": (),
- "PySide2.QtWidgets.QInputDialog.intMaximum": (),
- "PySide2.QtWidgets.QInputDialog.intMinimum": (),
- "PySide2.QtWidgets.QInputDialog.intStep": (),
- "PySide2.QtWidgets.QInputDialog.intValue": (),
- "PySide2.QtWidgets.QInputDialog.isComboBoxEditable": (),
- "PySide2.QtWidgets.QInputDialog.labelText": (),
- "PySide2.QtWidgets.QInputDialog.minimumSizeHint": (),
- "PySide2.QtWidgets.QInputDialog.okButtonText": (),
- "PySide2.QtWidgets.QInputDialog.open": [(), ('PySide2.QtCore.QObject', 'str')],
- "PySide2.QtWidgets.QInputDialog.setCancelButtonText": ('str',),
- "PySide2.QtWidgets.QInputDialog.setComboBoxEditable": ('bool',),
- "PySide2.QtWidgets.QInputDialog.setComboBoxItems": ('typing.Sequence[str]',),
- "PySide2.QtWidgets.QInputDialog.setDoubleDecimals": ('int',),
- "PySide2.QtWidgets.QInputDialog.setDoubleMaximum": ('float',),
- "PySide2.QtWidgets.QInputDialog.setDoubleMinimum": ('float',),
- "PySide2.QtWidgets.QInputDialog.setDoubleRange": ('float', 'float'),
- "PySide2.QtWidgets.QInputDialog.setDoubleStep": ('float',),
- "PySide2.QtWidgets.QInputDialog.setDoubleValue": ('float',),
- "PySide2.QtWidgets.QInputDialog.setInputMode": ('PySide2.QtWidgets.QInputDialog.InputMode',),
- "PySide2.QtWidgets.QInputDialog.setIntMaximum": ('int',),
- "PySide2.QtWidgets.QInputDialog.setIntMinimum": ('int',),
- "PySide2.QtWidgets.QInputDialog.setIntRange": ('int', 'int'),
- "PySide2.QtWidgets.QInputDialog.setIntStep": ('int',),
- "PySide2.QtWidgets.QInputDialog.setIntValue": ('int',),
- "PySide2.QtWidgets.QInputDialog.setLabelText": ('str',),
- "PySide2.QtWidgets.QInputDialog.setOkButtonText": ('str',),
- "PySide2.QtWidgets.QInputDialog.setOption": ('PySide2.QtWidgets.QInputDialog.InputDialogOption', 'bool'),
- "PySide2.QtWidgets.QInputDialog.setTextEchoMode": ('PySide2.QtWidgets.QLineEdit.EchoMode',),
- "PySide2.QtWidgets.QInputDialog.setTextValue": ('str',),
- "PySide2.QtWidgets.QInputDialog.setVisible": ('bool',),
- "PySide2.QtWidgets.QInputDialog.sizeHint": (),
- "PySide2.QtWidgets.QInputDialog.testOption": ('PySide2.QtWidgets.QInputDialog.InputDialogOption',),
- "PySide2.QtWidgets.QInputDialog.textEchoMode": (),
- "PySide2.QtWidgets.QInputDialog.textValue": (),
-# class PySide2.QtWidgets.QItemDelegate:
- "PySide2.QtWidgets.QItemDelegate.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QItemDelegate.createEditor": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QItemDelegate.decoration": ('PySide2.QtWidgets.QStyleOptionViewItem', 'typing.Any'),
- "PySide2.QtWidgets.QItemDelegate.doCheck": ('PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QRect', 'typing.Any'),
- "PySide2.QtWidgets.QItemDelegate.drawBackground": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QItemDelegate.drawCheck": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QRect', 'PySide2.QtCore.Qt.CheckState'),
- "PySide2.QtWidgets.QItemDelegate.drawDecoration": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QRect', 'PySide2.QtGui.QPixmap'),
- "PySide2.QtWidgets.QItemDelegate.drawDisplay": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QRect', 'str'),
- "PySide2.QtWidgets.QItemDelegate.drawFocus": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QRect'),
- "PySide2.QtWidgets.QItemDelegate.editorEvent": ('PySide2.QtCore.QEvent', 'PySide2.QtCore.QAbstractItemModel', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QItemDelegate.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QItemDelegate.hasClipping": (),
- "PySide2.QtWidgets.QItemDelegate.itemEditorFactory": (),
- "PySide2.QtWidgets.QItemDelegate.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QItemDelegate.rect": ('PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtWidgets.QItemDelegate.selectedPixmap": ('PySide2.QtGui.QPixmap', 'PySide2.QtGui.QPalette', 'bool'),
- "PySide2.QtWidgets.QItemDelegate.setClipping": ('bool',),
- "PySide2.QtWidgets.QItemDelegate.setEditorData": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QItemDelegate.setItemEditorFactory": ('PySide2.QtWidgets.QItemEditorFactory',),
- "PySide2.QtWidgets.QItemDelegate.setModelData": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QAbstractItemModel', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QItemDelegate.setOptions": ('PySide2.QtCore.QModelIndex', 'PySide2.QtWidgets.QStyleOptionViewItem'),
- "PySide2.QtWidgets.QItemDelegate.sizeHint": ('PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QItemDelegate.textRectangle": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRect', 'PySide2.QtGui.QFont', 'str'),
- "PySide2.QtWidgets.QItemDelegate.updateEditorGeometry": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
-# class PySide2.QtWidgets.QItemEditorCreatorBase:
- "PySide2.QtWidgets.QItemEditorCreatorBase.__init__": (),
- "PySide2.QtWidgets.QItemEditorCreatorBase.createWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QItemEditorCreatorBase.valuePropertyName": (),
-# class PySide2.QtWidgets.QItemEditorFactory:
- "PySide2.QtWidgets.QItemEditorFactory.__init__": (),
- "PySide2.QtWidgets.QItemEditorFactory.createEditor": ('int', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QItemEditorFactory.defaultFactory": (),
- "PySide2.QtWidgets.QItemEditorFactory.registerEditor": ('int', 'PySide2.QtWidgets.QItemEditorCreatorBase'),
- "PySide2.QtWidgets.QItemEditorFactory.setDefaultFactory": ('PySide2.QtWidgets.QItemEditorFactory',),
- "PySide2.QtWidgets.QItemEditorFactory.valuePropertyName": ('int',),
-# class PySide2.QtWidgets.QKeyEventTransition:
- "PySide2.QtWidgets.QKeyEventTransition.__init__": [('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent.Type', 'int', 'PySide2.QtCore.QState'), ('PySide2.QtCore.QState',)],
- "PySide2.QtWidgets.QKeyEventTransition.eventTest": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QKeyEventTransition.key": (),
- "PySide2.QtWidgets.QKeyEventTransition.modifierMask": (),
- "PySide2.QtWidgets.QKeyEventTransition.onTransition": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QKeyEventTransition.setKey": ('int',),
- "PySide2.QtWidgets.QKeyEventTransition.setModifierMask": ('PySide2.QtCore.Qt.KeyboardModifiers',),
-# class PySide2.QtWidgets.QKeySequenceEdit:
- "PySide2.QtWidgets.QKeySequenceEdit.__init__": [('PySide2.QtGui.QKeySequence', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QKeySequenceEdit.clear": (),
- "PySide2.QtWidgets.QKeySequenceEdit.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QKeySequenceEdit.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QKeySequenceEdit.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QKeySequenceEdit.keySequence": (),
- "PySide2.QtWidgets.QKeySequenceEdit.setKeySequence": ('PySide2.QtGui.QKeySequence',),
- "PySide2.QtWidgets.QKeySequenceEdit.timerEvent": ('PySide2.QtCore.QTimerEvent',),
-# class PySide2.QtWidgets.QLCDNumber:
-# class PySide2.QtWidgets.QLCDNumber.Mode:
-# class PySide2.QtWidgets.QLCDNumber.SegmentStyle:
- "PySide2.QtWidgets.QLCDNumber.__init__": [('PySide2.QtWidgets.QWidget',), ('int', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QLCDNumber.checkOverflow": [('float',), ('int',)],
- "PySide2.QtWidgets.QLCDNumber.digitCount": (),
- "PySide2.QtWidgets.QLCDNumber.display": [('float',), ('int',), ('str',)],
- "PySide2.QtWidgets.QLCDNumber.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QLCDNumber.intValue": (),
- "PySide2.QtWidgets.QLCDNumber.mode": (),
- "PySide2.QtWidgets.QLCDNumber.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QLCDNumber.segmentStyle": (),
- "PySide2.QtWidgets.QLCDNumber.setBinMode": (),
- "PySide2.QtWidgets.QLCDNumber.setDecMode": (),
- "PySide2.QtWidgets.QLCDNumber.setDigitCount": ('int',),
- "PySide2.QtWidgets.QLCDNumber.setHexMode": (),
- "PySide2.QtWidgets.QLCDNumber.setMode": ('PySide2.QtWidgets.QLCDNumber.Mode',),
- "PySide2.QtWidgets.QLCDNumber.setOctMode": (),
- "PySide2.QtWidgets.QLCDNumber.setSegmentStyle": ('PySide2.QtWidgets.QLCDNumber.SegmentStyle',),
- "PySide2.QtWidgets.QLCDNumber.setSmallDecimalPoint": ('bool',),
- "PySide2.QtWidgets.QLCDNumber.sizeHint": (),
- "PySide2.QtWidgets.QLCDNumber.smallDecimalPoint": (),
- "PySide2.QtWidgets.QLCDNumber.value": (),
-# class PySide2.QtWidgets.QLabel:
- "PySide2.QtWidgets.QLabel.__init__": [('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'), ('str', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags')],
- "PySide2.QtWidgets.QLabel.alignment": (),
- "PySide2.QtWidgets.QLabel.buddy": (),
- "PySide2.QtWidgets.QLabel.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QLabel.clear": (),
- "PySide2.QtWidgets.QLabel.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QLabel.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QLabel.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QLabel.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QLabel.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QLabel.hasScaledContents": (),
- "PySide2.QtWidgets.QLabel.hasSelectedText": (),
- "PySide2.QtWidgets.QLabel.heightForWidth": ('int',),
- "PySide2.QtWidgets.QLabel.indent": (),
- "PySide2.QtWidgets.QLabel.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QLabel.margin": (),
- "PySide2.QtWidgets.QLabel.minimumSizeHint": (),
- "PySide2.QtWidgets.QLabel.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QLabel.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QLabel.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QLabel.movie": (),
- "PySide2.QtWidgets.QLabel.openExternalLinks": (),
- "PySide2.QtWidgets.QLabel.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QLabel.picture": (),
- "PySide2.QtWidgets.QLabel.pixmap": (),
- "PySide2.QtWidgets.QLabel.selectedText": (),
- "PySide2.QtWidgets.QLabel.selectionStart": (),
- "PySide2.QtWidgets.QLabel.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QLabel.setBuddy": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QLabel.setIndent": ('int',),
- "PySide2.QtWidgets.QLabel.setMargin": ('int',),
- "PySide2.QtWidgets.QLabel.setMovie": ('PySide2.QtGui.QMovie',),
- "PySide2.QtWidgets.QLabel.setNum": [('float',), ('int',)],
- "PySide2.QtWidgets.QLabel.setOpenExternalLinks": ('bool',),
- "PySide2.QtWidgets.QLabel.setPicture": ('PySide2.QtGui.QPicture',),
- "PySide2.QtWidgets.QLabel.setPixmap": ('PySide2.QtGui.QPixmap',),
- "PySide2.QtWidgets.QLabel.setScaledContents": ('bool',),
- "PySide2.QtWidgets.QLabel.setSelection": ('int', 'int'),
- "PySide2.QtWidgets.QLabel.setText": ('str',),
- "PySide2.QtWidgets.QLabel.setTextFormat": ('PySide2.QtCore.Qt.TextFormat',),
- "PySide2.QtWidgets.QLabel.setTextInteractionFlags": ('PySide2.QtCore.Qt.TextInteractionFlags',),
- "PySide2.QtWidgets.QLabel.setWordWrap": ('bool',),
- "PySide2.QtWidgets.QLabel.sizeHint": (),
- "PySide2.QtWidgets.QLabel.text": (),
- "PySide2.QtWidgets.QLabel.textFormat": (),
- "PySide2.QtWidgets.QLabel.textInteractionFlags": (),
- "PySide2.QtWidgets.QLabel.wordWrap": (),
-# class PySide2.QtWidgets.QLayout:
-# class PySide2.QtWidgets.QLayout.SizeConstraint:
- "PySide2.QtWidgets.QLayout.__init__": [(), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QLayout.activate": (),
- "PySide2.QtWidgets.QLayout.addChildLayout": ('PySide2.QtWidgets.QLayout',),
- "PySide2.QtWidgets.QLayout.addChildWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QLayout.addItem": ('PySide2.QtWidgets.QLayoutItem',),
- "PySide2.QtWidgets.QLayout.addWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QLayout.adoptLayout": ('PySide2.QtWidgets.QLayout',),
- "PySide2.QtWidgets.QLayout.alignmentRect": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QLayout.childEvent": ('PySide2.QtCore.QChildEvent',),
- "PySide2.QtWidgets.QLayout.closestAcceptableSize": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QSize'),
- "PySide2.QtWidgets.QLayout.contentsMargins": (),
- "PySide2.QtWidgets.QLayout.contentsRect": (),
- "PySide2.QtWidgets.QLayout.controlTypes": (),
- "PySide2.QtWidgets.QLayout.count": (),
- "PySide2.QtWidgets.QLayout.expandingDirections": (),
- "PySide2.QtWidgets.QLayout.geometry": (),
- "PySide2.QtWidgets.QLayout.getContentsMargins": (),
- "PySide2.QtWidgets.QLayout.indexOf": [('PySide2.QtWidgets.QLayoutItem',), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QLayout.invalidate": (),
- "PySide2.QtWidgets.QLayout.isEmpty": (),
- "PySide2.QtWidgets.QLayout.isEnabled": (),
- "PySide2.QtWidgets.QLayout.itemAt": ('int',),
- "PySide2.QtWidgets.QLayout.layout": (),
- "PySide2.QtWidgets.QLayout.margin": (),
- "PySide2.QtWidgets.QLayout.maximumSize": (),
- "PySide2.QtWidgets.QLayout.menuBar": (),
- "PySide2.QtWidgets.QLayout.minimumSize": (),
- "PySide2.QtWidgets.QLayout.parentWidget": (),
- "PySide2.QtWidgets.QLayout.removeItem": ('PySide2.QtWidgets.QLayoutItem',),
- "PySide2.QtWidgets.QLayout.removeWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QLayout.replaceWidget": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.FindChildOptions'),
- "PySide2.QtWidgets.QLayout.setAlignment": [('PySide2.QtCore.Qt.Alignment',), ('PySide2.QtWidgets.QLayout', 'PySide2.QtCore.Qt.Alignment'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.Alignment')],
- "PySide2.QtWidgets.QLayout.setContentsMargins": [('PySide2.QtCore.QMargins',), ('int', 'int', 'int', 'int')],
- "PySide2.QtWidgets.QLayout.setEnabled": ('bool',),
- "PySide2.QtWidgets.QLayout.setGeometry": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QLayout.setMargin": ('int',),
- "PySide2.QtWidgets.QLayout.setMenuBar": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QLayout.setSizeConstraint": ('PySide2.QtWidgets.QLayout.SizeConstraint',),
- "PySide2.QtWidgets.QLayout.setSpacing": ('int',),
- "PySide2.QtWidgets.QLayout.sizeConstraint": (),
- "PySide2.QtWidgets.QLayout.spacing": (),
- "PySide2.QtWidgets.QLayout.takeAt": ('int',),
- "PySide2.QtWidgets.QLayout.totalHeightForWidth": ('int',),
- "PySide2.QtWidgets.QLayout.totalMaximumSize": (),
- "PySide2.QtWidgets.QLayout.totalMinimumSize": (),
- "PySide2.QtWidgets.QLayout.totalSizeHint": (),
- "PySide2.QtWidgets.QLayout.update": (),
- "PySide2.QtWidgets.QLayout.widgetEvent": ('PySide2.QtCore.QEvent',),
-# class PySide2.QtWidgets.QLayoutItem:
- "PySide2.QtWidgets.QLayoutItem.__init__": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QLayoutItem.alignment": (),
- "PySide2.QtWidgets.QLayoutItem.controlTypes": (),
- "PySide2.QtWidgets.QLayoutItem.expandingDirections": (),
- "PySide2.QtWidgets.QLayoutItem.geometry": (),
- "PySide2.QtWidgets.QLayoutItem.hasHeightForWidth": (),
- "PySide2.QtWidgets.QLayoutItem.heightForWidth": ('int',),
- "PySide2.QtWidgets.QLayoutItem.invalidate": (),
- "PySide2.QtWidgets.QLayoutItem.isEmpty": (),
- "PySide2.QtWidgets.QLayoutItem.layout": (),
- "PySide2.QtWidgets.QLayoutItem.maximumSize": (),
- "PySide2.QtWidgets.QLayoutItem.minimumHeightForWidth": ('int',),
- "PySide2.QtWidgets.QLayoutItem.minimumSize": (),
- "PySide2.QtWidgets.QLayoutItem.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QLayoutItem.setGeometry": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QLayoutItem.sizeHint": (),
- "PySide2.QtWidgets.QLayoutItem.spacerItem": (),
- "PySide2.QtWidgets.QLayoutItem.widget": (),
-# class PySide2.QtWidgets.QLineEdit:
-# class PySide2.QtWidgets.QLineEdit.ActionPosition:
-# class PySide2.QtWidgets.QLineEdit.EchoMode:
- "PySide2.QtWidgets.QLineEdit.__init__": [('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QLineEdit.addAction": [('PySide2.QtGui.QIcon', 'PySide2.QtWidgets.QLineEdit.ActionPosition'), ('PySide2.QtWidgets.QAction',), ('PySide2.QtWidgets.QAction', 'PySide2.QtWidgets.QLineEdit.ActionPosition')],
- "PySide2.QtWidgets.QLineEdit.alignment": (),
- "PySide2.QtWidgets.QLineEdit.backspace": (),
- "PySide2.QtWidgets.QLineEdit.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QLineEdit.clear": (),
- "PySide2.QtWidgets.QLineEdit.completer": (),
- "PySide2.QtWidgets.QLineEdit.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QLineEdit.copy": (),
- "PySide2.QtWidgets.QLineEdit.createStandardContextMenu": (),
- "PySide2.QtWidgets.QLineEdit.cursorBackward": ('bool', 'int'),
- "PySide2.QtWidgets.QLineEdit.cursorForward": ('bool', 'int'),
- "PySide2.QtWidgets.QLineEdit.cursorMoveStyle": (),
- "PySide2.QtWidgets.QLineEdit.cursorPosition": (),
- "PySide2.QtWidgets.QLineEdit.cursorPositionAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QLineEdit.cursorRect": (),
- "PySide2.QtWidgets.QLineEdit.cursorWordBackward": ('bool',),
- "PySide2.QtWidgets.QLineEdit.cursorWordForward": ('bool',),
- "PySide2.QtWidgets.QLineEdit.cut": (),
- "PySide2.QtWidgets.QLineEdit.del_": (),
- "PySide2.QtWidgets.QLineEdit.deselect": (),
- "PySide2.QtWidgets.QLineEdit.displayText": (),
- "PySide2.QtWidgets.QLineEdit.dragEnabled": (),
- "PySide2.QtWidgets.QLineEdit.dragEnterEvent": ('PySide2.QtGui.QDragEnterEvent',),
- "PySide2.QtWidgets.QLineEdit.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtWidgets.QLineEdit.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtWidgets.QLineEdit.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QLineEdit.echoMode": (),
- "PySide2.QtWidgets.QLineEdit.end": ('bool',),
- "PySide2.QtWidgets.QLineEdit.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QLineEdit.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QLineEdit.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QLineEdit.getTextMargins": (),
- "PySide2.QtWidgets.QLineEdit.hasAcceptableInput": (),
- "PySide2.QtWidgets.QLineEdit.hasFrame": (),
- "PySide2.QtWidgets.QLineEdit.hasSelectedText": (),
- "PySide2.QtWidgets.QLineEdit.home": ('bool',),
- "PySide2.QtWidgets.QLineEdit.initStyleOption": ('PySide2.QtWidgets.QStyleOptionFrame',),
- "PySide2.QtWidgets.QLineEdit.inputMask": (),
- "PySide2.QtWidgets.QLineEdit.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QLineEdit.inputMethodQuery": [('PySide2.QtCore.Qt.InputMethodQuery',), ('PySide2.QtCore.Qt.InputMethodQuery', 'typing.Any')],
- "PySide2.QtWidgets.QLineEdit.insert": ('str',),
- "PySide2.QtWidgets.QLineEdit.isClearButtonEnabled": (),
- "PySide2.QtWidgets.QLineEdit.isModified": (),
- "PySide2.QtWidgets.QLineEdit.isReadOnly": (),
- "PySide2.QtWidgets.QLineEdit.isRedoAvailable": (),
- "PySide2.QtWidgets.QLineEdit.isUndoAvailable": (),
- "PySide2.QtWidgets.QLineEdit.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QLineEdit.maxLength": (),
- "PySide2.QtWidgets.QLineEdit.minimumSizeHint": (),
- "PySide2.QtWidgets.QLineEdit.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QLineEdit.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QLineEdit.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QLineEdit.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QLineEdit.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QLineEdit.paste": (),
- "PySide2.QtWidgets.QLineEdit.placeholderText": (),
- "PySide2.QtWidgets.QLineEdit.redo": (),
- "PySide2.QtWidgets.QLineEdit.selectAll": (),
- "PySide2.QtWidgets.QLineEdit.selectedText": (),
- "PySide2.QtWidgets.QLineEdit.selectionEnd": (),
- "PySide2.QtWidgets.QLineEdit.selectionLength": (),
- "PySide2.QtWidgets.QLineEdit.selectionStart": (),
- "PySide2.QtWidgets.QLineEdit.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QLineEdit.setClearButtonEnabled": ('bool',),
- "PySide2.QtWidgets.QLineEdit.setCompleter": ('PySide2.QtWidgets.QCompleter',),
- "PySide2.QtWidgets.QLineEdit.setCursorMoveStyle": ('PySide2.QtCore.Qt.CursorMoveStyle',),
- "PySide2.QtWidgets.QLineEdit.setCursorPosition": ('int',),
- "PySide2.QtWidgets.QLineEdit.setDragEnabled": ('bool',),
- "PySide2.QtWidgets.QLineEdit.setEchoMode": ('PySide2.QtWidgets.QLineEdit.EchoMode',),
- "PySide2.QtWidgets.QLineEdit.setFrame": ('bool',),
- "PySide2.QtWidgets.QLineEdit.setInputMask": ('str',),
- "PySide2.QtWidgets.QLineEdit.setMaxLength": ('int',),
- "PySide2.QtWidgets.QLineEdit.setModified": ('bool',),
- "PySide2.QtWidgets.QLineEdit.setPlaceholderText": ('str',),
- "PySide2.QtWidgets.QLineEdit.setReadOnly": ('bool',),
- "PySide2.QtWidgets.QLineEdit.setSelection": ('int', 'int'),
- "PySide2.QtWidgets.QLineEdit.setText": ('str',),
- "PySide2.QtWidgets.QLineEdit.setTextMargins": [('PySide2.QtCore.QMargins',), ('int', 'int', 'int', 'int')],
- "PySide2.QtWidgets.QLineEdit.setValidator": ('PySide2.QtGui.QValidator',),
- "PySide2.QtWidgets.QLineEdit.sizeHint": (),
- "PySide2.QtWidgets.QLineEdit.text": (),
- "PySide2.QtWidgets.QLineEdit.textMargins": (),
- "PySide2.QtWidgets.QLineEdit.undo": (),
- "PySide2.QtWidgets.QLineEdit.validator": (),
-# class PySide2.QtWidgets.QListView:
-# class PySide2.QtWidgets.QListView.Flow:
-# class PySide2.QtWidgets.QListView.LayoutMode:
-# class PySide2.QtWidgets.QListView.Movement:
-# class PySide2.QtWidgets.QListView.ResizeMode:
-# class PySide2.QtWidgets.QListView.ViewMode:
- "PySide2.QtWidgets.QListView.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QListView.batchSize": (),
- "PySide2.QtWidgets.QListView.clearPropertyFlags": (),
- "PySide2.QtWidgets.QListView.contentsSize": (),
- "PySide2.QtWidgets.QListView.currentChanged": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QListView.dataChanged": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex', 'typing.List[int]'),
- "PySide2.QtWidgets.QListView.doItemsLayout": (),
- "PySide2.QtWidgets.QListView.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtWidgets.QListView.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtWidgets.QListView.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QListView.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QListView.flow": (),
- "PySide2.QtWidgets.QListView.gridSize": (),
- "PySide2.QtWidgets.QListView.horizontalOffset": (),
- "PySide2.QtWidgets.QListView.indexAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QListView.isIndexHidden": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QListView.isRowHidden": ('int',),
- "PySide2.QtWidgets.QListView.isSelectionRectVisible": (),
- "PySide2.QtWidgets.QListView.isWrapping": (),
- "PySide2.QtWidgets.QListView.itemAlignment": (),
- "PySide2.QtWidgets.QListView.layoutMode": (),
- "PySide2.QtWidgets.QListView.modelColumn": (),
- "PySide2.QtWidgets.QListView.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QListView.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QListView.moveCursor": ('PySide2.QtWidgets.QAbstractItemView.CursorAction', 'PySide2.QtCore.Qt.KeyboardModifiers'),
- "PySide2.QtWidgets.QListView.movement": (),
- "PySide2.QtWidgets.QListView.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QListView.rectForIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QListView.reset": (),
- "PySide2.QtWidgets.QListView.resizeContents": ('int', 'int'),
- "PySide2.QtWidgets.QListView.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QListView.resizeMode": (),
- "PySide2.QtWidgets.QListView.rowsAboutToBeRemoved": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QListView.rowsInserted": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QListView.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QListView.scrollTo": ('PySide2.QtCore.QModelIndex', 'PySide2.QtWidgets.QAbstractItemView.ScrollHint'),
- "PySide2.QtWidgets.QListView.selectedIndexes": (),
- "PySide2.QtWidgets.QListView.selectionChanged": ('PySide2.QtCore.QItemSelection', 'PySide2.QtCore.QItemSelection'),
- "PySide2.QtWidgets.QListView.setBatchSize": ('int',),
- "PySide2.QtWidgets.QListView.setFlow": ('PySide2.QtWidgets.QListView.Flow',),
- "PySide2.QtWidgets.QListView.setGridSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QListView.setItemAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QListView.setLayoutMode": ('PySide2.QtWidgets.QListView.LayoutMode',),
- "PySide2.QtWidgets.QListView.setModelColumn": ('int',),
- "PySide2.QtWidgets.QListView.setMovement": ('PySide2.QtWidgets.QListView.Movement',),
- "PySide2.QtWidgets.QListView.setPositionForIndex": ('PySide2.QtCore.QPoint', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QListView.setResizeMode": ('PySide2.QtWidgets.QListView.ResizeMode',),
- "PySide2.QtWidgets.QListView.setRootIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QListView.setRowHidden": ('int', 'bool'),
- "PySide2.QtWidgets.QListView.setSelection": ('PySide2.QtCore.QRect', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags'),
- "PySide2.QtWidgets.QListView.setSelectionRectVisible": ('bool',),
- "PySide2.QtWidgets.QListView.setSpacing": ('int',),
- "PySide2.QtWidgets.QListView.setUniformItemSizes": ('bool',),
- "PySide2.QtWidgets.QListView.setViewMode": ('PySide2.QtWidgets.QListView.ViewMode',),
- "PySide2.QtWidgets.QListView.setWordWrap": ('bool',),
- "PySide2.QtWidgets.QListView.setWrapping": ('bool',),
- "PySide2.QtWidgets.QListView.spacing": (),
- "PySide2.QtWidgets.QListView.startDrag": ('PySide2.QtCore.Qt.DropActions',),
- "PySide2.QtWidgets.QListView.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QListView.uniformItemSizes": (),
- "PySide2.QtWidgets.QListView.updateGeometries": (),
- "PySide2.QtWidgets.QListView.verticalOffset": (),
- "PySide2.QtWidgets.QListView.viewMode": (),
- "PySide2.QtWidgets.QListView.viewOptions": (),
- "PySide2.QtWidgets.QListView.viewportSizeHint": (),
- "PySide2.QtWidgets.QListView.visualRect": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QListView.visualRegionForSelection": ('PySide2.QtCore.QItemSelection',),
- "PySide2.QtWidgets.QListView.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
- "PySide2.QtWidgets.QListView.wordWrap": (),
-# class PySide2.QtWidgets.QListWidget:
- "PySide2.QtWidgets.QListWidget.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QListWidget.addItem": [('PySide2.QtWidgets.QListWidgetItem',), ('str',)],
- "PySide2.QtWidgets.QListWidget.addItems": ('typing.Sequence[str]',),
- "PySide2.QtWidgets.QListWidget.clear": (),
- "PySide2.QtWidgets.QListWidget.closePersistentEditor": [('PySide2.QtCore.QModelIndex',), ('PySide2.QtWidgets.QListWidgetItem',)],
- "PySide2.QtWidgets.QListWidget.count": (),
- "PySide2.QtWidgets.QListWidget.currentItem": (),
- "PySide2.QtWidgets.QListWidget.currentRow": (),
- "PySide2.QtWidgets.QListWidget.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QListWidget.dropMimeData": ('int', 'PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction'),
- "PySide2.QtWidgets.QListWidget.editItem": ('PySide2.QtWidgets.QListWidgetItem',),
- "PySide2.QtWidgets.QListWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QListWidget.findItems": ('str', 'PySide2.QtCore.Qt.MatchFlags'),
- "PySide2.QtWidgets.QListWidget.indexFromItem": ('PySide2.QtWidgets.QListWidgetItem',),
- "PySide2.QtWidgets.QListWidget.insertItem": [('int', 'PySide2.QtWidgets.QListWidgetItem'), ('int', 'str')],
- "PySide2.QtWidgets.QListWidget.insertItems": ('int', 'typing.Sequence[str]'),
- "PySide2.QtWidgets.QListWidget.isItemHidden": ('PySide2.QtWidgets.QListWidgetItem',),
- "PySide2.QtWidgets.QListWidget.isItemSelected": ('PySide2.QtWidgets.QListWidgetItem',),
- "PySide2.QtWidgets.QListWidget.isPersistentEditorOpen": [('PySide2.QtCore.QModelIndex',), ('PySide2.QtWidgets.QListWidgetItem',)],
- "PySide2.QtWidgets.QListWidget.isSortingEnabled": (),
- "PySide2.QtWidgets.QListWidget.item": ('int',),
- "PySide2.QtWidgets.QListWidget.itemAt": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtWidgets.QListWidget.itemFromIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QListWidget.itemWidget": ('PySide2.QtWidgets.QListWidgetItem',),
- "PySide2.QtWidgets.QListWidget.items": ('PySide2.QtCore.QMimeData',),
- "PySide2.QtWidgets.QListWidget.mimeData": ('typing.Sequence[PySide2.QtWidgets.QListWidgetItem]',),
- "PySide2.QtWidgets.QListWidget.mimeTypes": (),
- "PySide2.QtWidgets.QListWidget.openPersistentEditor": [('PySide2.QtCore.QModelIndex',), ('PySide2.QtWidgets.QListWidgetItem',)],
- "PySide2.QtWidgets.QListWidget.removeItemWidget": ('PySide2.QtWidgets.QListWidgetItem',),
- "PySide2.QtWidgets.QListWidget.row": ('PySide2.QtWidgets.QListWidgetItem',),
- "PySide2.QtWidgets.QListWidget.scrollToItem": ('PySide2.QtWidgets.QListWidgetItem', 'PySide2.QtWidgets.QAbstractItemView.ScrollHint'),
- "PySide2.QtWidgets.QListWidget.selectedItems": (),
- "PySide2.QtWidgets.QListWidget.setCurrentItem": [('PySide2.QtWidgets.QListWidgetItem',), ('PySide2.QtWidgets.QListWidgetItem', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags')],
- "PySide2.QtWidgets.QListWidget.setCurrentRow": [('int',), ('int', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags')],
- "PySide2.QtWidgets.QListWidget.setItemHidden": ('PySide2.QtWidgets.QListWidgetItem', 'bool'),
- "PySide2.QtWidgets.QListWidget.setItemSelected": ('PySide2.QtWidgets.QListWidgetItem', 'bool'),
- "PySide2.QtWidgets.QListWidget.setItemWidget": ('PySide2.QtWidgets.QListWidgetItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QListWidget.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QListWidget.setSelectionModel": ('PySide2.QtCore.QItemSelectionModel',),
- "PySide2.QtWidgets.QListWidget.setSortingEnabled": ('bool',),
- "PySide2.QtWidgets.QListWidget.sortItems": ('PySide2.QtCore.Qt.SortOrder',),
- "PySide2.QtWidgets.QListWidget.supportedDropActions": (),
- "PySide2.QtWidgets.QListWidget.takeItem": ('int',),
- "PySide2.QtWidgets.QListWidget.visualItemRect": ('PySide2.QtWidgets.QListWidgetItem',),
-# class PySide2.QtWidgets.QListWidgetItem:
-# class PySide2.QtWidgets.QListWidgetItem.ItemType:
- "PySide2.QtWidgets.QListWidgetItem.__init__": [('PySide2.QtGui.QIcon', 'str', 'PySide2.QtWidgets.QListWidget', 'int'), ('PySide2.QtWidgets.QListWidget', 'int'), ('PySide2.QtWidgets.QListWidgetItem',), ('str', 'PySide2.QtWidgets.QListWidget', 'int')],
- "PySide2.QtWidgets.QListWidgetItem.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QListWidgetItem.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QListWidgetItem.background": (),
- "PySide2.QtWidgets.QListWidgetItem.backgroundColor": (),
- "PySide2.QtWidgets.QListWidgetItem.checkState": (),
- "PySide2.QtWidgets.QListWidgetItem.clone": (),
- "PySide2.QtWidgets.QListWidgetItem.data": ('int',),
- "PySide2.QtWidgets.QListWidgetItem.flags": (),
- "PySide2.QtWidgets.QListWidgetItem.font": (),
- "PySide2.QtWidgets.QListWidgetItem.foreground": (),
- "PySide2.QtWidgets.QListWidgetItem.icon": (),
- "PySide2.QtWidgets.QListWidgetItem.isHidden": (),
- "PySide2.QtWidgets.QListWidgetItem.isSelected": (),
- "PySide2.QtWidgets.QListWidgetItem.listWidget": (),
- "PySide2.QtWidgets.QListWidgetItem.read": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QListWidgetItem.setBackground": ('PySide2.QtGui.QBrush',),
- "PySide2.QtWidgets.QListWidgetItem.setBackgroundColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QListWidgetItem.setCheckState": ('PySide2.QtCore.Qt.CheckState',),
- "PySide2.QtWidgets.QListWidgetItem.setData": ('int', 'typing.Any'),
- "PySide2.QtWidgets.QListWidgetItem.setFlags": ('PySide2.QtCore.Qt.ItemFlags',),
- "PySide2.QtWidgets.QListWidgetItem.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QListWidgetItem.setForeground": ('PySide2.QtGui.QBrush',),
- "PySide2.QtWidgets.QListWidgetItem.setHidden": ('bool',),
- "PySide2.QtWidgets.QListWidgetItem.setIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtWidgets.QListWidgetItem.setSelected": ('bool',),
- "PySide2.QtWidgets.QListWidgetItem.setSizeHint": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QListWidgetItem.setStatusTip": ('str',),
- "PySide2.QtWidgets.QListWidgetItem.setText": ('str',),
- "PySide2.QtWidgets.QListWidgetItem.setTextAlignment": ('int',),
- "PySide2.QtWidgets.QListWidgetItem.setTextColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QListWidgetItem.setToolTip": ('str',),
- "PySide2.QtWidgets.QListWidgetItem.setWhatsThis": ('str',),
- "PySide2.QtWidgets.QListWidgetItem.sizeHint": (),
- "PySide2.QtWidgets.QListWidgetItem.statusTip": (),
- "PySide2.QtWidgets.QListWidgetItem.text": (),
- "PySide2.QtWidgets.QListWidgetItem.textAlignment": (),
- "PySide2.QtWidgets.QListWidgetItem.textColor": (),
- "PySide2.QtWidgets.QListWidgetItem.toolTip": (),
- "PySide2.QtWidgets.QListWidgetItem.type": (),
- "PySide2.QtWidgets.QListWidgetItem.whatsThis": (),
- "PySide2.QtWidgets.QListWidgetItem.write": ('PySide2.QtCore.QDataStream',),
-# class PySide2.QtWidgets.QMainWindow:
-# class PySide2.QtWidgets.QMainWindow.DockOption:
-# class PySide2.QtWidgets.QMainWindow.DockOptions:
- "PySide2.QtWidgets.QMainWindow.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QMainWindow.addDockWidget": [('PySide2.QtCore.Qt.DockWidgetArea', 'PySide2.QtWidgets.QDockWidget'), ('PySide2.QtCore.Qt.DockWidgetArea', 'PySide2.QtWidgets.QDockWidget', 'PySide2.QtCore.Qt.Orientation')],
- "PySide2.QtWidgets.QMainWindow.addToolBar": [('PySide2.QtCore.Qt.ToolBarArea', 'PySide2.QtWidgets.QToolBar'), ('PySide2.QtWidgets.QToolBar',), ('str',)],
- "PySide2.QtWidgets.QMainWindow.addToolBarBreak": ('PySide2.QtCore.Qt.ToolBarArea',),
- "PySide2.QtWidgets.QMainWindow.centralWidget": (),
- "PySide2.QtWidgets.QMainWindow.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QMainWindow.corner": ('PySide2.QtCore.Qt.Corner',),
- "PySide2.QtWidgets.QMainWindow.createPopupMenu": (),
- "PySide2.QtWidgets.QMainWindow.dockOptions": (),
- "PySide2.QtWidgets.QMainWindow.dockWidgetArea": ('PySide2.QtWidgets.QDockWidget',),
- "PySide2.QtWidgets.QMainWindow.documentMode": (),
- "PySide2.QtWidgets.QMainWindow.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMainWindow.iconSize": (),
- "PySide2.QtWidgets.QMainWindow.insertToolBar": ('PySide2.QtWidgets.QToolBar', 'PySide2.QtWidgets.QToolBar'),
- "PySide2.QtWidgets.QMainWindow.insertToolBarBreak": ('PySide2.QtWidgets.QToolBar',),
- "PySide2.QtWidgets.QMainWindow.isAnimated": (),
- "PySide2.QtWidgets.QMainWindow.isDockNestingEnabled": (),
- "PySide2.QtWidgets.QMainWindow.isSeparator": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QMainWindow.menuBar": (),
- "PySide2.QtWidgets.QMainWindow.menuWidget": (),
- "PySide2.QtWidgets.QMainWindow.removeDockWidget": ('PySide2.QtWidgets.QDockWidget',),
- "PySide2.QtWidgets.QMainWindow.removeToolBar": ('PySide2.QtWidgets.QToolBar',),
- "PySide2.QtWidgets.QMainWindow.removeToolBarBreak": ('PySide2.QtWidgets.QToolBar',),
- "PySide2.QtWidgets.QMainWindow.resizeDocks": ('typing.Sequence[PySide2.QtWidgets.QDockWidget]', 'typing.Sequence[int]', 'PySide2.QtCore.Qt.Orientation'),
- "PySide2.QtWidgets.QMainWindow.restoreDockWidget": ('PySide2.QtWidgets.QDockWidget',),
- "PySide2.QtWidgets.QMainWindow.restoreState": ('PySide2.QtCore.QByteArray', 'int'),
- "PySide2.QtWidgets.QMainWindow.saveState": ('int',),
- "PySide2.QtWidgets.QMainWindow.setAnimated": ('bool',),
- "PySide2.QtWidgets.QMainWindow.setCentralWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QMainWindow.setCorner": ('PySide2.QtCore.Qt.Corner', 'PySide2.QtCore.Qt.DockWidgetArea'),
- "PySide2.QtWidgets.QMainWindow.setDockNestingEnabled": ('bool',),
- "PySide2.QtWidgets.QMainWindow.setDockOptions": ('PySide2.QtWidgets.QMainWindow.DockOptions',),
- "PySide2.QtWidgets.QMainWindow.setDocumentMode": ('bool',),
- "PySide2.QtWidgets.QMainWindow.setIconSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QMainWindow.setMenuBar": ('PySide2.QtWidgets.QMenuBar',),
- "PySide2.QtWidgets.QMainWindow.setMenuWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QMainWindow.setStatusBar": ('PySide2.QtWidgets.QStatusBar',),
- "PySide2.QtWidgets.QMainWindow.setTabPosition": ('PySide2.QtCore.Qt.DockWidgetAreas', 'PySide2.QtWidgets.QTabWidget.TabPosition'),
- "PySide2.QtWidgets.QMainWindow.setTabShape": ('PySide2.QtWidgets.QTabWidget.TabShape',),
- "PySide2.QtWidgets.QMainWindow.setToolButtonStyle": ('PySide2.QtCore.Qt.ToolButtonStyle',),
- "PySide2.QtWidgets.QMainWindow.setUnifiedTitleAndToolBarOnMac": ('bool',),
- "PySide2.QtWidgets.QMainWindow.splitDockWidget": ('PySide2.QtWidgets.QDockWidget', 'PySide2.QtWidgets.QDockWidget', 'PySide2.QtCore.Qt.Orientation'),
- "PySide2.QtWidgets.QMainWindow.statusBar": (),
- "PySide2.QtWidgets.QMainWindow.tabPosition": ('PySide2.QtCore.Qt.DockWidgetArea',),
- "PySide2.QtWidgets.QMainWindow.tabShape": (),
- "PySide2.QtWidgets.QMainWindow.tabifiedDockWidgets": ('PySide2.QtWidgets.QDockWidget',),
- "PySide2.QtWidgets.QMainWindow.tabifyDockWidget": ('PySide2.QtWidgets.QDockWidget', 'PySide2.QtWidgets.QDockWidget'),
- "PySide2.QtWidgets.QMainWindow.takeCentralWidget": (),
- "PySide2.QtWidgets.QMainWindow.toolBarArea": ('PySide2.QtWidgets.QToolBar',),
- "PySide2.QtWidgets.QMainWindow.toolBarBreak": ('PySide2.QtWidgets.QToolBar',),
- "PySide2.QtWidgets.QMainWindow.toolButtonStyle": (),
- "PySide2.QtWidgets.QMainWindow.unifiedTitleAndToolBarOnMac": (),
-# class PySide2.QtWidgets.QMdiArea:
-# class PySide2.QtWidgets.QMdiArea.AreaOption:
-# class PySide2.QtWidgets.QMdiArea.AreaOptions:
-# class PySide2.QtWidgets.QMdiArea.ViewMode:
-# class PySide2.QtWidgets.QMdiArea.WindowOrder:
- "PySide2.QtWidgets.QMdiArea.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QMdiArea.activateNextSubWindow": (),
- "PySide2.QtWidgets.QMdiArea.activatePreviousSubWindow": (),
- "PySide2.QtWidgets.QMdiArea.activationOrder": (),
- "PySide2.QtWidgets.QMdiArea.activeSubWindow": (),
- "PySide2.QtWidgets.QMdiArea.addSubWindow": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QMdiArea.background": (),
- "PySide2.QtWidgets.QMdiArea.cascadeSubWindows": (),
- "PySide2.QtWidgets.QMdiArea.childEvent": ('PySide2.QtCore.QChildEvent',),
- "PySide2.QtWidgets.QMdiArea.closeActiveSubWindow": (),
- "PySide2.QtWidgets.QMdiArea.closeAllSubWindows": (),
- "PySide2.QtWidgets.QMdiArea.currentSubWindow": (),
- "PySide2.QtWidgets.QMdiArea.documentMode": (),
- "PySide2.QtWidgets.QMdiArea.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMdiArea.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QMdiArea.minimumSizeHint": (),
- "PySide2.QtWidgets.QMdiArea.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QMdiArea.removeSubWindow": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QMdiArea.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QMdiArea.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QMdiArea.setActivationOrder": ('PySide2.QtWidgets.QMdiArea.WindowOrder',),
- "PySide2.QtWidgets.QMdiArea.setActiveSubWindow": ('PySide2.QtWidgets.QMdiSubWindow',),
- "PySide2.QtWidgets.QMdiArea.setBackground": ('PySide2.QtGui.QBrush',),
- "PySide2.QtWidgets.QMdiArea.setDocumentMode": ('bool',),
- "PySide2.QtWidgets.QMdiArea.setOption": ('PySide2.QtWidgets.QMdiArea.AreaOption', 'bool'),
- "PySide2.QtWidgets.QMdiArea.setTabPosition": ('PySide2.QtWidgets.QTabWidget.TabPosition',),
- "PySide2.QtWidgets.QMdiArea.setTabShape": ('PySide2.QtWidgets.QTabWidget.TabShape',),
- "PySide2.QtWidgets.QMdiArea.setTabsClosable": ('bool',),
- "PySide2.QtWidgets.QMdiArea.setTabsMovable": ('bool',),
- "PySide2.QtWidgets.QMdiArea.setViewMode": ('PySide2.QtWidgets.QMdiArea.ViewMode',),
- "PySide2.QtWidgets.QMdiArea.setupViewport": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QMdiArea.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QMdiArea.sizeHint": (),
- "PySide2.QtWidgets.QMdiArea.subWindowList": ('PySide2.QtWidgets.QMdiArea.WindowOrder',),
- "PySide2.QtWidgets.QMdiArea.tabPosition": (),
- "PySide2.QtWidgets.QMdiArea.tabShape": (),
- "PySide2.QtWidgets.QMdiArea.tabsClosable": (),
- "PySide2.QtWidgets.QMdiArea.tabsMovable": (),
- "PySide2.QtWidgets.QMdiArea.testOption": ('PySide2.QtWidgets.QMdiArea.AreaOption',),
- "PySide2.QtWidgets.QMdiArea.tileSubWindows": (),
- "PySide2.QtWidgets.QMdiArea.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QMdiArea.viewMode": (),
- "PySide2.QtWidgets.QMdiArea.viewportEvent": ('PySide2.QtCore.QEvent',),
-# class PySide2.QtWidgets.QMdiSubWindow:
-# class PySide2.QtWidgets.QMdiSubWindow.SubWindowOption:
-# class PySide2.QtWidgets.QMdiSubWindow.SubWindowOptions:
- "PySide2.QtWidgets.QMdiSubWindow.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QMdiSubWindow.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.childEvent": ('PySide2.QtCore.QChildEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.closeEvent": ('PySide2.QtGui.QCloseEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QMdiSubWindow.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.isShaded": (),
- "PySide2.QtWidgets.QMdiSubWindow.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.keyboardPageStep": (),
- "PySide2.QtWidgets.QMdiSubWindow.keyboardSingleStep": (),
- "PySide2.QtWidgets.QMdiSubWindow.leaveEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.maximizedButtonsWidget": (),
- "PySide2.QtWidgets.QMdiSubWindow.maximizedSystemMenuIconWidget": (),
- "PySide2.QtWidgets.QMdiSubWindow.mdiArea": (),
- "PySide2.QtWidgets.QMdiSubWindow.minimumSizeHint": (),
- "PySide2.QtWidgets.QMdiSubWindow.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.moveEvent": ('PySide2.QtGui.QMoveEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.setKeyboardPageStep": ('int',),
- "PySide2.QtWidgets.QMdiSubWindow.setKeyboardSingleStep": ('int',),
- "PySide2.QtWidgets.QMdiSubWindow.setOption": ('PySide2.QtWidgets.QMdiSubWindow.SubWindowOption', 'bool'),
- "PySide2.QtWidgets.QMdiSubWindow.setSystemMenu": ('PySide2.QtWidgets.QMenu',),
- "PySide2.QtWidgets.QMdiSubWindow.setWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QMdiSubWindow.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.showShaded": (),
- "PySide2.QtWidgets.QMdiSubWindow.showSystemMenu": (),
- "PySide2.QtWidgets.QMdiSubWindow.sizeHint": (),
- "PySide2.QtWidgets.QMdiSubWindow.systemMenu": (),
- "PySide2.QtWidgets.QMdiSubWindow.testOption": ('PySide2.QtWidgets.QMdiSubWindow.SubWindowOption',),
- "PySide2.QtWidgets.QMdiSubWindow.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.widget": (),
-# class PySide2.QtWidgets.QMenu:
- "PySide2.QtWidgets.QMenu.__init__": [('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QMenu.actionAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QMenu.actionEvent": ('PySide2.QtGui.QActionEvent',),
- "PySide2.QtWidgets.QMenu.actionGeometry": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QMenu.activeAction": (),
- "PySide2.QtWidgets.QMenu.addAction": [('PySide2.QtGui.QIcon', 'str'), ('PySide2.QtGui.QIcon', 'str', 'PySide2.QtCore.QObject', 'str', 'PySide2.QtGui.QKeySequence'), ('PySide2.QtGui.QIcon', 'str', 'object', 'PySide2.QtGui.QKeySequence'), ('PySide2.QtWidgets.QAction',), ('str',), ('str', 'PySide2.QtCore.QObject', 'str', 'PySide2.QtGui.QKeySequence'), ('str', 'object', 'PySide2.QtGui.QKeySequence')],
- "PySide2.QtWidgets.QMenu.addMenu": [('PySide2.QtGui.QIcon', 'str'), ('PySide2.QtWidgets.QMenu',), ('str',)],
- "PySide2.QtWidgets.QMenu.addSection": [('PySide2.QtGui.QIcon', 'str'), ('str',)],
- "PySide2.QtWidgets.QMenu.addSeparator": (),
- "PySide2.QtWidgets.QMenu.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMenu.clear": (),
- "PySide2.QtWidgets.QMenu.columnCount": (),
- "PySide2.QtWidgets.QMenu.defaultAction": (),
- "PySide2.QtWidgets.QMenu.enterEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMenu.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMenu.exec_": [(), ('PySide2.QtCore.QPoint', 'PySide2.QtWidgets.QAction'), ('typing.Sequence[PySide2.QtWidgets.QAction]', 'PySide2.QtCore.QPoint', 'PySide2.QtWidgets.QAction', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QMenu.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QMenu.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWidgets.QMenu.hideTearOffMenu": (),
- "PySide2.QtWidgets.QMenu.icon": (),
- "PySide2.QtWidgets.QMenu.initStyleOption": ('PySide2.QtWidgets.QStyleOptionMenuItem', 'PySide2.QtWidgets.QAction'),
- "PySide2.QtWidgets.QMenu.insertMenu": ('PySide2.QtWidgets.QAction', 'PySide2.QtWidgets.QMenu'),
- "PySide2.QtWidgets.QMenu.insertSection": [('PySide2.QtWidgets.QAction', 'PySide2.QtGui.QIcon', 'str'), ('PySide2.QtWidgets.QAction', 'str')],
- "PySide2.QtWidgets.QMenu.insertSeparator": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QMenu.isEmpty": (),
- "PySide2.QtWidgets.QMenu.isTearOffEnabled": (),
- "PySide2.QtWidgets.QMenu.isTearOffMenuVisible": (),
- "PySide2.QtWidgets.QMenu.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QMenu.leaveEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMenu.menuAction": (),
- "PySide2.QtWidgets.QMenu.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QMenu.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QMenu.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QMenu.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QMenu.popup": ('PySide2.QtCore.QPoint', 'PySide2.QtWidgets.QAction'),
- "PySide2.QtWidgets.QMenu.separatorsCollapsible": (),
- "PySide2.QtWidgets.QMenu.setActiveAction": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QMenu.setAsDockMenu": (),
- "PySide2.QtWidgets.QMenu.setDefaultAction": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QMenu.setIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtWidgets.QMenu.setSeparatorsCollapsible": ('bool',),
- "PySide2.QtWidgets.QMenu.setTearOffEnabled": ('bool',),
- "PySide2.QtWidgets.QMenu.setTitle": ('str',),
- "PySide2.QtWidgets.QMenu.setToolTipsVisible": ('bool',),
- "PySide2.QtWidgets.QMenu.showTearOffMenu": [(), ('PySide2.QtCore.QPoint',)],
- "PySide2.QtWidgets.QMenu.sizeHint": (),
- "PySide2.QtWidgets.QMenu.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QMenu.title": (),
- "PySide2.QtWidgets.QMenu.toolTipsVisible": (),
- "PySide2.QtWidgets.QMenu.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtWidgets.QMenuBar:
- "PySide2.QtWidgets.QMenuBar.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QMenuBar.actionAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QMenuBar.actionEvent": ('PySide2.QtGui.QActionEvent',),
- "PySide2.QtWidgets.QMenuBar.actionGeometry": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QMenuBar.activeAction": (),
- "PySide2.QtWidgets.QMenuBar.addAction": [('PySide2.QtWidgets.QAction',), ('str',), ('str', 'PySide2.QtCore.QObject', 'str'), ('str', 'object')],
- "PySide2.QtWidgets.QMenuBar.addMenu": [('PySide2.QtGui.QIcon', 'str'), ('PySide2.QtWidgets.QMenu',), ('str',)],
- "PySide2.QtWidgets.QMenuBar.addSeparator": (),
- "PySide2.QtWidgets.QMenuBar.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMenuBar.clear": (),
- "PySide2.QtWidgets.QMenuBar.cornerWidget": ('PySide2.QtCore.Qt.Corner',),
- "PySide2.QtWidgets.QMenuBar.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMenuBar.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QMenuBar.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QMenuBar.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QMenuBar.heightForWidth": ('int',),
- "PySide2.QtWidgets.QMenuBar.initStyleOption": ('PySide2.QtWidgets.QStyleOptionMenuItem', 'PySide2.QtWidgets.QAction'),
- "PySide2.QtWidgets.QMenuBar.insertMenu": ('PySide2.QtWidgets.QAction', 'PySide2.QtWidgets.QMenu'),
- "PySide2.QtWidgets.QMenuBar.insertSeparator": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QMenuBar.isDefaultUp": (),
- "PySide2.QtWidgets.QMenuBar.isNativeMenuBar": (),
- "PySide2.QtWidgets.QMenuBar.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QMenuBar.leaveEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMenuBar.minimumSizeHint": (),
- "PySide2.QtWidgets.QMenuBar.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QMenuBar.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QMenuBar.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QMenuBar.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QMenuBar.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QMenuBar.setActiveAction": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QMenuBar.setCornerWidget": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.Corner'),
- "PySide2.QtWidgets.QMenuBar.setDefaultUp": ('bool',),
- "PySide2.QtWidgets.QMenuBar.setNativeMenuBar": ('bool',),
- "PySide2.QtWidgets.QMenuBar.setVisible": ('bool',),
- "PySide2.QtWidgets.QMenuBar.sizeHint": (),
- "PySide2.QtWidgets.QMenuBar.timerEvent": ('PySide2.QtCore.QTimerEvent',),
-# class PySide2.QtWidgets.QMessageBox:
-# class PySide2.QtWidgets.QMessageBox.ButtonRole:
-# class PySide2.QtWidgets.QMessageBox.Icon:
-# class PySide2.QtWidgets.QMessageBox.StandardButton:
-# class PySide2.QtWidgets.QMessageBox.StandardButtons:
- "PySide2.QtWidgets.QMessageBox.__init__": [('PySide2.QtWidgets.QMessageBox.Icon', 'str', 'str', 'PySide2.QtWidgets.QMessageBox.StandardButtons', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QMessageBox.about": ('PySide2.QtWidgets.QWidget', 'str', 'str'),
- "PySide2.QtWidgets.QMessageBox.aboutQt": ('PySide2.QtWidgets.QWidget', 'str'),
- "PySide2.QtWidgets.QMessageBox.addButton": [('PySide2.QtWidgets.QAbstractButton', 'PySide2.QtWidgets.QMessageBox.ButtonRole'), ('PySide2.QtWidgets.QMessageBox.StandardButton',), ('str', 'PySide2.QtWidgets.QMessageBox.ButtonRole')],
- "PySide2.QtWidgets.QMessageBox.button": ('PySide2.QtWidgets.QMessageBox.StandardButton',),
- "PySide2.QtWidgets.QMessageBox.buttonRole": ('PySide2.QtWidgets.QAbstractButton',),
- "PySide2.QtWidgets.QMessageBox.buttonText": ('int',),
- "PySide2.QtWidgets.QMessageBox.buttons": (),
- "PySide2.QtWidgets.QMessageBox.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMessageBox.checkBox": (),
- "PySide2.QtWidgets.QMessageBox.clickedButton": (),
- "PySide2.QtWidgets.QMessageBox.closeEvent": ('PySide2.QtGui.QCloseEvent',),
- "PySide2.QtWidgets.QMessageBox.critical": [('PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtWidgets.QMessageBox.StandardButton', 'PySide2.QtWidgets.QMessageBox.StandardButton'), ('PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtWidgets.QMessageBox.StandardButtons', 'PySide2.QtWidgets.QMessageBox.StandardButton')],
- "PySide2.QtWidgets.QMessageBox.defaultButton": (),
- "PySide2.QtWidgets.QMessageBox.detailedText": (),
- "PySide2.QtWidgets.QMessageBox.escapeButton": (),
- "PySide2.QtWidgets.QMessageBox.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMessageBox.icon": (),
- "PySide2.QtWidgets.QMessageBox.iconPixmap": (),
- "PySide2.QtWidgets.QMessageBox.information": [('PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtWidgets.QMessageBox.StandardButton', 'PySide2.QtWidgets.QMessageBox.StandardButton'), ('PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtWidgets.QMessageBox.StandardButtons', 'PySide2.QtWidgets.QMessageBox.StandardButton')],
- "PySide2.QtWidgets.QMessageBox.informativeText": (),
- "PySide2.QtWidgets.QMessageBox.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QMessageBox.open": [(), ('PySide2.QtCore.QObject', 'str')],
- "PySide2.QtWidgets.QMessageBox.question": [('PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtWidgets.QMessageBox.StandardButton', 'PySide2.QtWidgets.QMessageBox.StandardButton'), ('PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtWidgets.QMessageBox.StandardButtons', 'PySide2.QtWidgets.QMessageBox.StandardButton')],
- "PySide2.QtWidgets.QMessageBox.removeButton": ('PySide2.QtWidgets.QAbstractButton',),
- "PySide2.QtWidgets.QMessageBox.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QMessageBox.setButtonText": ('int', 'str'),
- "PySide2.QtWidgets.QMessageBox.setCheckBox": ('PySide2.QtWidgets.QCheckBox',),
- "PySide2.QtWidgets.QMessageBox.setDefaultButton": [('PySide2.QtWidgets.QMessageBox.StandardButton',), ('PySide2.QtWidgets.QPushButton',)],
- "PySide2.QtWidgets.QMessageBox.setDetailedText": ('str',),
- "PySide2.QtWidgets.QMessageBox.setEscapeButton": [('PySide2.QtWidgets.QAbstractButton',), ('PySide2.QtWidgets.QMessageBox.StandardButton',)],
- "PySide2.QtWidgets.QMessageBox.setIcon": ('PySide2.QtWidgets.QMessageBox.Icon',),
- "PySide2.QtWidgets.QMessageBox.setIconPixmap": ('PySide2.QtGui.QPixmap',),
- "PySide2.QtWidgets.QMessageBox.setInformativeText": ('str',),
- "PySide2.QtWidgets.QMessageBox.setStandardButtons": ('PySide2.QtWidgets.QMessageBox.StandardButtons',),
- "PySide2.QtWidgets.QMessageBox.setText": ('str',),
- "PySide2.QtWidgets.QMessageBox.setTextFormat": ('PySide2.QtCore.Qt.TextFormat',),
- "PySide2.QtWidgets.QMessageBox.setTextInteractionFlags": ('PySide2.QtCore.Qt.TextInteractionFlags',),
- "PySide2.QtWidgets.QMessageBox.setWindowModality": ('PySide2.QtCore.Qt.WindowModality',),
- "PySide2.QtWidgets.QMessageBox.setWindowTitle": ('str',),
- "PySide2.QtWidgets.QMessageBox.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QMessageBox.standardButton": ('PySide2.QtWidgets.QAbstractButton',),
- "PySide2.QtWidgets.QMessageBox.standardButtons": (),
- "PySide2.QtWidgets.QMessageBox.standardIcon": ('PySide2.QtWidgets.QMessageBox.Icon',),
- "PySide2.QtWidgets.QMessageBox.text": (),
- "PySide2.QtWidgets.QMessageBox.textFormat": (),
- "PySide2.QtWidgets.QMessageBox.textInteractionFlags": (),
- "PySide2.QtWidgets.QMessageBox.warning": [('PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtWidgets.QMessageBox.StandardButton', 'PySide2.QtWidgets.QMessageBox.StandardButton'), ('PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtWidgets.QMessageBox.StandardButtons', 'PySide2.QtWidgets.QMessageBox.StandardButton')],
-# class PySide2.QtWidgets.QMouseEventTransition:
- "PySide2.QtWidgets.QMouseEventTransition.__init__": [('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.QState'), ('PySide2.QtCore.QState',)],
- "PySide2.QtWidgets.QMouseEventTransition.button": (),
- "PySide2.QtWidgets.QMouseEventTransition.eventTest": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMouseEventTransition.hitTestPath": (),
- "PySide2.QtWidgets.QMouseEventTransition.modifierMask": (),
- "PySide2.QtWidgets.QMouseEventTransition.onTransition": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMouseEventTransition.setButton": ('PySide2.QtCore.Qt.MouseButton',),
- "PySide2.QtWidgets.QMouseEventTransition.setHitTestPath": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtWidgets.QMouseEventTransition.setModifierMask": ('PySide2.QtCore.Qt.KeyboardModifiers',),
-# class PySide2.QtWidgets.QOpenGLWidget:
-# class PySide2.QtWidgets.QOpenGLWidget.UpdateBehavior:
- "PySide2.QtWidgets.QOpenGLWidget.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QOpenGLWidget.context": (),
- "PySide2.QtWidgets.QOpenGLWidget.defaultFramebufferObject": (),
- "PySide2.QtWidgets.QOpenGLWidget.doneCurrent": (),
- "PySide2.QtWidgets.QOpenGLWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QOpenGLWidget.format": (),
- "PySide2.QtWidgets.QOpenGLWidget.grabFramebuffer": (),
- "PySide2.QtWidgets.QOpenGLWidget.initializeGL": (),
- "PySide2.QtWidgets.QOpenGLWidget.isValid": (),
- "PySide2.QtWidgets.QOpenGLWidget.makeCurrent": (),
- "PySide2.QtWidgets.QOpenGLWidget.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtWidgets.QOpenGLWidget.paintEngine": (),
- "PySide2.QtWidgets.QOpenGLWidget.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QOpenGLWidget.paintGL": (),
- "PySide2.QtWidgets.QOpenGLWidget.redirected": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QOpenGLWidget.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QOpenGLWidget.resizeGL": ('int', 'int'),
- "PySide2.QtWidgets.QOpenGLWidget.setFormat": ('PySide2.QtGui.QSurfaceFormat',),
- "PySide2.QtWidgets.QOpenGLWidget.setTextureFormat": ('int',),
- "PySide2.QtWidgets.QOpenGLWidget.setUpdateBehavior": ('PySide2.QtWidgets.QOpenGLWidget.UpdateBehavior',),
- "PySide2.QtWidgets.QOpenGLWidget.textureFormat": (),
- "PySide2.QtWidgets.QOpenGLWidget.updateBehavior": (),
-# class PySide2.QtWidgets.QPanGesture:
- "PySide2.QtWidgets.QPanGesture.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QPanGesture.acceleration": (),
- "PySide2.QtWidgets.QPanGesture.delta": (),
- "PySide2.QtWidgets.QPanGesture.lastOffset": (),
- "PySide2.QtWidgets.QPanGesture.offset": (),
- "PySide2.QtWidgets.QPanGesture.setAcceleration": ('float',),
- "PySide2.QtWidgets.QPanGesture.setLastOffset": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QPanGesture.setOffset": ('PySide2.QtCore.QPointF',),
-# class PySide2.QtWidgets.QPinchGesture:
-# class PySide2.QtWidgets.QPinchGesture.ChangeFlag:
-# class PySide2.QtWidgets.QPinchGesture.ChangeFlags:
- "PySide2.QtWidgets.QPinchGesture.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QPinchGesture.centerPoint": (),
- "PySide2.QtWidgets.QPinchGesture.changeFlags": (),
- "PySide2.QtWidgets.QPinchGesture.lastCenterPoint": (),
- "PySide2.QtWidgets.QPinchGesture.lastRotationAngle": (),
- "PySide2.QtWidgets.QPinchGesture.lastScaleFactor": (),
- "PySide2.QtWidgets.QPinchGesture.rotationAngle": (),
- "PySide2.QtWidgets.QPinchGesture.scaleFactor": (),
- "PySide2.QtWidgets.QPinchGesture.setCenterPoint": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QPinchGesture.setChangeFlags": ('PySide2.QtWidgets.QPinchGesture.ChangeFlags',),
- "PySide2.QtWidgets.QPinchGesture.setLastCenterPoint": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QPinchGesture.setLastRotationAngle": ('float',),
- "PySide2.QtWidgets.QPinchGesture.setLastScaleFactor": ('float',),
- "PySide2.QtWidgets.QPinchGesture.setRotationAngle": ('float',),
- "PySide2.QtWidgets.QPinchGesture.setScaleFactor": ('float',),
- "PySide2.QtWidgets.QPinchGesture.setStartCenterPoint": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QPinchGesture.setTotalChangeFlags": ('PySide2.QtWidgets.QPinchGesture.ChangeFlags',),
- "PySide2.QtWidgets.QPinchGesture.setTotalRotationAngle": ('float',),
- "PySide2.QtWidgets.QPinchGesture.setTotalScaleFactor": ('float',),
- "PySide2.QtWidgets.QPinchGesture.startCenterPoint": (),
- "PySide2.QtWidgets.QPinchGesture.totalChangeFlags": (),
- "PySide2.QtWidgets.QPinchGesture.totalRotationAngle": (),
- "PySide2.QtWidgets.QPinchGesture.totalScaleFactor": (),
-# class PySide2.QtWidgets.QPlainTextDocumentLayout:
- "PySide2.QtWidgets.QPlainTextDocumentLayout.__init__": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.blockBoundingRect": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.cursorWidth": (),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.documentChanged": ('int', 'int', 'int'),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.documentSize": (),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.draw": ('PySide2.QtGui.QPainter', 'PySide2.QtGui.QAbstractTextDocumentLayout.PaintContext'),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.ensureBlockLayout": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.frameBoundingRect": ('PySide2.QtGui.QTextFrame',),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.hitTest": ('PySide2.QtCore.QPointF', 'PySide2.QtCore.Qt.HitTestAccuracy'),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.pageCount": (),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.requestUpdate": (),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.setCursorWidth": ('int',),
-# class PySide2.QtWidgets.QPlainTextEdit:
-# class PySide2.QtWidgets.QPlainTextEdit.LineWrapMode:
- "PySide2.QtWidgets.QPlainTextEdit.__init__": [('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QPlainTextEdit.anchorAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QPlainTextEdit.appendHtml": ('str',),
- "PySide2.QtWidgets.QPlainTextEdit.appendPlainText": ('str',),
- "PySide2.QtWidgets.QPlainTextEdit.backgroundVisible": (),
- "PySide2.QtWidgets.QPlainTextEdit.blockBoundingGeometry": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtWidgets.QPlainTextEdit.blockBoundingRect": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtWidgets.QPlainTextEdit.blockCount": (),
- "PySide2.QtWidgets.QPlainTextEdit.canInsertFromMimeData": ('PySide2.QtCore.QMimeData',),
- "PySide2.QtWidgets.QPlainTextEdit.canPaste": (),
- "PySide2.QtWidgets.QPlainTextEdit.centerCursor": (),
- "PySide2.QtWidgets.QPlainTextEdit.centerOnScroll": (),
- "PySide2.QtWidgets.QPlainTextEdit.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.clear": (),
- "PySide2.QtWidgets.QPlainTextEdit.contentOffset": (),
- "PySide2.QtWidgets.QPlainTextEdit.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.copy": (),
- "PySide2.QtWidgets.QPlainTextEdit.createMimeDataFromSelection": (),
- "PySide2.QtWidgets.QPlainTextEdit.createStandardContextMenu": [(), ('PySide2.QtCore.QPoint',)],
- "PySide2.QtWidgets.QPlainTextEdit.currentCharFormat": (),
- "PySide2.QtWidgets.QPlainTextEdit.cursorForPosition": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QPlainTextEdit.cursorRect": [(), ('PySide2.QtGui.QTextCursor',)],
- "PySide2.QtWidgets.QPlainTextEdit.cursorWidth": (),
- "PySide2.QtWidgets.QPlainTextEdit.cut": (),
- "PySide2.QtWidgets.QPlainTextEdit.doSetTextCursor": ('PySide2.QtGui.QTextCursor',),
- "PySide2.QtWidgets.QPlainTextEdit.document": (),
- "PySide2.QtWidgets.QPlainTextEdit.documentTitle": (),
- "PySide2.QtWidgets.QPlainTextEdit.dragEnterEvent": ('PySide2.QtGui.QDragEnterEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.ensureCursorVisible": (),
- "PySide2.QtWidgets.QPlainTextEdit.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.extraSelections": (),
- "PySide2.QtWidgets.QPlainTextEdit.find": [('PySide2.QtCore.QRegExp', 'PySide2.QtGui.QTextDocument.FindFlags'), ('PySide2.QtCore.QRegularExpression', 'PySide2.QtGui.QTextDocument.FindFlags'), ('str', 'PySide2.QtGui.QTextDocument.FindFlags')],
- "PySide2.QtWidgets.QPlainTextEdit.firstVisibleBlock": (),
- "PySide2.QtWidgets.QPlainTextEdit.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QPlainTextEdit.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.getPaintContext": (),
- "PySide2.QtWidgets.QPlainTextEdit.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.inputMethodQuery": [('PySide2.QtCore.Qt.InputMethodQuery',), ('PySide2.QtCore.Qt.InputMethodQuery', 'typing.Any')],
- "PySide2.QtWidgets.QPlainTextEdit.insertFromMimeData": ('PySide2.QtCore.QMimeData',),
- "PySide2.QtWidgets.QPlainTextEdit.insertPlainText": ('str',),
- "PySide2.QtWidgets.QPlainTextEdit.isReadOnly": (),
- "PySide2.QtWidgets.QPlainTextEdit.isUndoRedoEnabled": (),
- "PySide2.QtWidgets.QPlainTextEdit.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.lineWrapMode": (),
- "PySide2.QtWidgets.QPlainTextEdit.loadResource": ('int', 'PySide2.QtCore.QUrl'),
- "PySide2.QtWidgets.QPlainTextEdit.maximumBlockCount": (),
- "PySide2.QtWidgets.QPlainTextEdit.mergeCurrentCharFormat": ('PySide2.QtGui.QTextCharFormat',),
- "PySide2.QtWidgets.QPlainTextEdit.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.moveCursor": ('PySide2.QtGui.QTextCursor.MoveOperation', 'PySide2.QtGui.QTextCursor.MoveMode'),
- "PySide2.QtWidgets.QPlainTextEdit.overwriteMode": (),
- "PySide2.QtWidgets.QPlainTextEdit.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.paste": (),
- "PySide2.QtWidgets.QPlainTextEdit.placeholderText": (),
- "PySide2.QtWidgets.QPlainTextEdit.print_": ('PySide2.QtGui.QPagedPaintDevice',),
- "PySide2.QtWidgets.QPlainTextEdit.redo": (),
- "PySide2.QtWidgets.QPlainTextEdit.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QPlainTextEdit.selectAll": (),
- "PySide2.QtWidgets.QPlainTextEdit.setBackgroundVisible": ('bool',),
- "PySide2.QtWidgets.QPlainTextEdit.setCenterOnScroll": ('bool',),
- "PySide2.QtWidgets.QPlainTextEdit.setCurrentCharFormat": ('PySide2.QtGui.QTextCharFormat',),
- "PySide2.QtWidgets.QPlainTextEdit.setCursorWidth": ('int',),
- "PySide2.QtWidgets.QPlainTextEdit.setDocument": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtWidgets.QPlainTextEdit.setDocumentTitle": ('str',),
- "PySide2.QtWidgets.QPlainTextEdit.setExtraSelections": ('typing.Sequence[PySide2.QtWidgets.QTextEdit.ExtraSelection]',),
- "PySide2.QtWidgets.QPlainTextEdit.setLineWrapMode": ('PySide2.QtWidgets.QPlainTextEdit.LineWrapMode',),
- "PySide2.QtWidgets.QPlainTextEdit.setMaximumBlockCount": ('int',),
- "PySide2.QtWidgets.QPlainTextEdit.setOverwriteMode": ('bool',),
- "PySide2.QtWidgets.QPlainTextEdit.setPlaceholderText": ('str',),
- "PySide2.QtWidgets.QPlainTextEdit.setPlainText": ('str',),
- "PySide2.QtWidgets.QPlainTextEdit.setReadOnly": ('bool',),
- "PySide2.QtWidgets.QPlainTextEdit.setTabChangesFocus": ('bool',),
- "PySide2.QtWidgets.QPlainTextEdit.setTabStopDistance": ('float',),
- "PySide2.QtWidgets.QPlainTextEdit.setTabStopWidth": ('int',),
- "PySide2.QtWidgets.QPlainTextEdit.setTextCursor": ('PySide2.QtGui.QTextCursor',),
- "PySide2.QtWidgets.QPlainTextEdit.setTextInteractionFlags": ('PySide2.QtCore.Qt.TextInteractionFlags',),
- "PySide2.QtWidgets.QPlainTextEdit.setUndoRedoEnabled": ('bool',),
- "PySide2.QtWidgets.QPlainTextEdit.setWordWrapMode": ('PySide2.QtGui.QTextOption.WrapMode',),
- "PySide2.QtWidgets.QPlainTextEdit.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.tabChangesFocus": (),
- "PySide2.QtWidgets.QPlainTextEdit.tabStopDistance": (),
- "PySide2.QtWidgets.QPlainTextEdit.tabStopWidth": (),
- "PySide2.QtWidgets.QPlainTextEdit.textCursor": (),
- "PySide2.QtWidgets.QPlainTextEdit.textInteractionFlags": (),
- "PySide2.QtWidgets.QPlainTextEdit.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.toPlainText": (),
- "PySide2.QtWidgets.QPlainTextEdit.undo": (),
- "PySide2.QtWidgets.QPlainTextEdit.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.wordWrapMode": (),
- "PySide2.QtWidgets.QPlainTextEdit.zoomIn": ('int',),
- "PySide2.QtWidgets.QPlainTextEdit.zoomInF": ('float',),
- "PySide2.QtWidgets.QPlainTextEdit.zoomOut": ('int',),
-# class PySide2.QtWidgets.QProgressBar:
-# class PySide2.QtWidgets.QProgressBar.Direction:
- "PySide2.QtWidgets.QProgressBar.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QProgressBar.alignment": (),
- "PySide2.QtWidgets.QProgressBar.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QProgressBar.format": (),
- "PySide2.QtWidgets.QProgressBar.initStyleOption": ('PySide2.QtWidgets.QStyleOptionProgressBar',),
- "PySide2.QtWidgets.QProgressBar.invertedAppearance": (),
- "PySide2.QtWidgets.QProgressBar.isTextVisible": (),
- "PySide2.QtWidgets.QProgressBar.maximum": (),
- "PySide2.QtWidgets.QProgressBar.minimum": (),
- "PySide2.QtWidgets.QProgressBar.minimumSizeHint": (),
- "PySide2.QtWidgets.QProgressBar.orientation": (),
- "PySide2.QtWidgets.QProgressBar.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QProgressBar.reset": (),
- "PySide2.QtWidgets.QProgressBar.resetFormat": (),
- "PySide2.QtWidgets.QProgressBar.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QProgressBar.setFormat": ('str',),
- "PySide2.QtWidgets.QProgressBar.setInvertedAppearance": ('bool',),
- "PySide2.QtWidgets.QProgressBar.setMaximum": ('int',),
- "PySide2.QtWidgets.QProgressBar.setMinimum": ('int',),
- "PySide2.QtWidgets.QProgressBar.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtWidgets.QProgressBar.setRange": ('int', 'int'),
- "PySide2.QtWidgets.QProgressBar.setTextDirection": ('PySide2.QtWidgets.QProgressBar.Direction',),
- "PySide2.QtWidgets.QProgressBar.setTextVisible": ('bool',),
- "PySide2.QtWidgets.QProgressBar.setValue": ('int',),
- "PySide2.QtWidgets.QProgressBar.sizeHint": (),
- "PySide2.QtWidgets.QProgressBar.text": (),
- "PySide2.QtWidgets.QProgressBar.textDirection": (),
- "PySide2.QtWidgets.QProgressBar.value": (),
-# class PySide2.QtWidgets.QProgressDialog:
- "PySide2.QtWidgets.QProgressDialog.__init__": [('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'), ('str', 'str', 'int', 'int', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags')],
- "PySide2.QtWidgets.QProgressDialog.autoClose": (),
- "PySide2.QtWidgets.QProgressDialog.autoReset": (),
- "PySide2.QtWidgets.QProgressDialog.cancel": (),
- "PySide2.QtWidgets.QProgressDialog.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QProgressDialog.closeEvent": ('PySide2.QtGui.QCloseEvent',),
- "PySide2.QtWidgets.QProgressDialog.forceShow": (),
- "PySide2.QtWidgets.QProgressDialog.labelText": (),
- "PySide2.QtWidgets.QProgressDialog.maximum": (),
- "PySide2.QtWidgets.QProgressDialog.minimum": (),
- "PySide2.QtWidgets.QProgressDialog.minimumDuration": (),
- "PySide2.QtWidgets.QProgressDialog.open": [(), ('PySide2.QtCore.QObject', 'str')],
- "PySide2.QtWidgets.QProgressDialog.reset": (),
- "PySide2.QtWidgets.QProgressDialog.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QProgressDialog.setAutoClose": ('bool',),
- "PySide2.QtWidgets.QProgressDialog.setAutoReset": ('bool',),
- "PySide2.QtWidgets.QProgressDialog.setBar": ('PySide2.QtWidgets.QProgressBar',),
- "PySide2.QtWidgets.QProgressDialog.setCancelButton": ('PySide2.QtWidgets.QPushButton',),
- "PySide2.QtWidgets.QProgressDialog.setCancelButtonText": ('str',),
- "PySide2.QtWidgets.QProgressDialog.setLabel": ('PySide2.QtWidgets.QLabel',),
- "PySide2.QtWidgets.QProgressDialog.setLabelText": ('str',),
- "PySide2.QtWidgets.QProgressDialog.setMaximum": ('int',),
- "PySide2.QtWidgets.QProgressDialog.setMinimum": ('int',),
- "PySide2.QtWidgets.QProgressDialog.setMinimumDuration": ('int',),
- "PySide2.QtWidgets.QProgressDialog.setRange": ('int', 'int'),
- "PySide2.QtWidgets.QProgressDialog.setValue": ('int',),
- "PySide2.QtWidgets.QProgressDialog.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QProgressDialog.sizeHint": (),
- "PySide2.QtWidgets.QProgressDialog.value": (),
- "PySide2.QtWidgets.QProgressDialog.wasCanceled": (),
-# class PySide2.QtWidgets.QProxyStyle:
- "PySide2.QtWidgets.QProxyStyle.__init__": [('PySide2.QtWidgets.QStyle',), ('str',)],
- "PySide2.QtWidgets.QProxyStyle.baseStyle": (),
- "PySide2.QtWidgets.QProxyStyle.drawComplexControl": ('PySide2.QtWidgets.QStyle.ComplexControl', 'PySide2.QtWidgets.QStyleOptionComplex', 'PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.drawControl": ('PySide2.QtWidgets.QStyle.ControlElement', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.drawItemPixmap": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRect', 'int', 'PySide2.QtGui.QPixmap'),
- "PySide2.QtWidgets.QProxyStyle.drawItemText": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRect', 'int', 'PySide2.QtGui.QPalette', 'bool', 'str', 'PySide2.QtGui.QPalette.ColorRole'),
- "PySide2.QtWidgets.QProxyStyle.drawPrimitive": ('PySide2.QtWidgets.QStyle.PrimitiveElement', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QProxyStyle.generatedIconPixmap": ('PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QPixmap', 'PySide2.QtWidgets.QStyleOption'),
- "PySide2.QtWidgets.QProxyStyle.hitTestComplexControl": ('PySide2.QtWidgets.QStyle.ComplexControl', 'PySide2.QtWidgets.QStyleOptionComplex', 'PySide2.QtCore.QPoint', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.itemPixmapRect": ('PySide2.QtCore.QRect', 'int', 'PySide2.QtGui.QPixmap'),
- "PySide2.QtWidgets.QProxyStyle.itemTextRect": ('PySide2.QtGui.QFontMetrics', 'PySide2.QtCore.QRect', 'int', 'bool', 'str'),
- "PySide2.QtWidgets.QProxyStyle.layoutSpacing": ('PySide2.QtWidgets.QSizePolicy.ControlType', 'PySide2.QtWidgets.QSizePolicy.ControlType', 'PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.pixelMetric": ('PySide2.QtWidgets.QStyle.PixelMetric', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.polish": [('PySide2.QtGui.QPalette',), ('PySide2.QtWidgets.QApplication',), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QProxyStyle.setBaseStyle": ('PySide2.QtWidgets.QStyle',),
- "PySide2.QtWidgets.QProxyStyle.sizeFromContents": ('PySide2.QtWidgets.QStyle.ContentsType', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtCore.QSize', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.standardIcon": ('PySide2.QtWidgets.QStyle.StandardPixmap', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.standardPalette": (),
- "PySide2.QtWidgets.QProxyStyle.standardPixmap": ('PySide2.QtWidgets.QStyle.StandardPixmap', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.styleHint": ('PySide2.QtWidgets.QStyle.StyleHint', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QStyleHintReturn'),
- "PySide2.QtWidgets.QProxyStyle.subControlRect": ('PySide2.QtWidgets.QStyle.ComplexControl', 'PySide2.QtWidgets.QStyleOptionComplex', 'PySide2.QtWidgets.QStyle.SubControl', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.subElementRect": ('PySide2.QtWidgets.QStyle.SubElement', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.unpolish": [('PySide2.QtWidgets.QApplication',), ('PySide2.QtWidgets.QWidget',)],
-# class PySide2.QtWidgets.QPushButton:
- "PySide2.QtWidgets.QPushButton.__init__": [('PySide2.QtGui.QIcon', 'str', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QPushButton.autoDefault": (),
- "PySide2.QtWidgets.QPushButton.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QPushButton.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QPushButton.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QPushButton.initStyleOption": ('PySide2.QtWidgets.QStyleOptionButton',),
- "PySide2.QtWidgets.QPushButton.isDefault": (),
- "PySide2.QtWidgets.QPushButton.isFlat": (),
- "PySide2.QtWidgets.QPushButton.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QPushButton.menu": (),
- "PySide2.QtWidgets.QPushButton.minimumSizeHint": (),
- "PySide2.QtWidgets.QPushButton.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QPushButton.setAutoDefault": ('bool',),
- "PySide2.QtWidgets.QPushButton.setDefault": ('bool',),
- "PySide2.QtWidgets.QPushButton.setFlat": ('bool',),
- "PySide2.QtWidgets.QPushButton.setMenu": ('PySide2.QtWidgets.QMenu',),
- "PySide2.QtWidgets.QPushButton.showMenu": (),
- "PySide2.QtWidgets.QPushButton.sizeHint": (),
-# class PySide2.QtWidgets.QRadioButton:
- "PySide2.QtWidgets.QRadioButton.__init__": [('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QRadioButton.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QRadioButton.hitButton": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QRadioButton.initStyleOption": ('PySide2.QtWidgets.QStyleOptionButton',),
- "PySide2.QtWidgets.QRadioButton.minimumSizeHint": (),
- "PySide2.QtWidgets.QRadioButton.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QRadioButton.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QRadioButton.sizeHint": (),
-# class PySide2.QtWidgets.QRubberBand:
-# class PySide2.QtWidgets.QRubberBand.Shape:
- "PySide2.QtWidgets.QRubberBand.__init__": ('PySide2.QtWidgets.QRubberBand.Shape', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QRubberBand.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QRubberBand.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QRubberBand.initStyleOption": ('PySide2.QtWidgets.QStyleOptionRubberBand',),
- "PySide2.QtWidgets.QRubberBand.move": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtWidgets.QRubberBand.moveEvent": ('PySide2.QtGui.QMoveEvent',),
- "PySide2.QtWidgets.QRubberBand.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QRubberBand.resize": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtWidgets.QRubberBand.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QRubberBand.setGeometry": [('PySide2.QtCore.QRect',), ('int', 'int', 'int', 'int')],
- "PySide2.QtWidgets.QRubberBand.shape": (),
- "PySide2.QtWidgets.QRubberBand.showEvent": ('PySide2.QtGui.QShowEvent',),
-# class PySide2.QtWidgets.QScrollArea:
- "PySide2.QtWidgets.QScrollArea.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QScrollArea.alignment": (),
- "PySide2.QtWidgets.QScrollArea.ensureVisible": ('int', 'int', 'int', 'int'),
- "PySide2.QtWidgets.QScrollArea.ensureWidgetVisible": ('PySide2.QtWidgets.QWidget', 'int', 'int'),
- "PySide2.QtWidgets.QScrollArea.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QScrollArea.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QScrollArea.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QScrollArea.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QScrollArea.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QScrollArea.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QScrollArea.setWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QScrollArea.setWidgetResizable": ('bool',),
- "PySide2.QtWidgets.QScrollArea.sizeHint": (),
- "PySide2.QtWidgets.QScrollArea.takeWidget": (),
- "PySide2.QtWidgets.QScrollArea.viewportSizeHint": (),
- "PySide2.QtWidgets.QScrollArea.widget": (),
- "PySide2.QtWidgets.QScrollArea.widgetResizable": (),
-# class PySide2.QtWidgets.QScrollBar:
- "PySide2.QtWidgets.QScrollBar.__init__": [('PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QScrollBar.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QScrollBar.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QScrollBar.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWidgets.QScrollBar.initStyleOption": ('PySide2.QtWidgets.QStyleOptionSlider',),
- "PySide2.QtWidgets.QScrollBar.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QScrollBar.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QScrollBar.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QScrollBar.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QScrollBar.sizeHint": (),
- "PySide2.QtWidgets.QScrollBar.sliderChange": ('PySide2.QtWidgets.QAbstractSlider.SliderChange',),
- "PySide2.QtWidgets.QScrollBar.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtWidgets.QScroller:
-# class PySide2.QtWidgets.QScroller.Input:
-# class PySide2.QtWidgets.QScroller.ScrollerGestureType:
-# class PySide2.QtWidgets.QScroller.State:
- "PySide2.QtWidgets.QScroller.activeScrollers": (),
- "PySide2.QtWidgets.QScroller.ensureVisible": [('PySide2.QtCore.QRectF', 'float', 'float'), ('PySide2.QtCore.QRectF', 'float', 'float', 'int')],
- "PySide2.QtWidgets.QScroller.finalPosition": (),
- "PySide2.QtWidgets.QScroller.grabGesture": ('PySide2.QtCore.QObject', 'PySide2.QtWidgets.QScroller.ScrollerGestureType'),
- "PySide2.QtWidgets.QScroller.grabbedGesture": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QScroller.handleInput": ('PySide2.QtWidgets.QScroller.Input', 'PySide2.QtCore.QPointF', 'int'),
- "PySide2.QtWidgets.QScroller.hasScroller": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QScroller.pixelPerMeter": (),
- "PySide2.QtWidgets.QScroller.resendPrepareEvent": (),
- "PySide2.QtWidgets.QScroller.scrollTo": [('PySide2.QtCore.QPointF',), ('PySide2.QtCore.QPointF', 'int')],
- "PySide2.QtWidgets.QScroller.scroller": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QScroller.scrollerProperties": (),
- "PySide2.QtWidgets.QScroller.setScrollerProperties": ('PySide2.QtWidgets.QScrollerProperties',),
- "PySide2.QtWidgets.QScroller.setSnapPositionsX": [('float', 'float'), ('typing.Sequence[float]',)],
- "PySide2.QtWidgets.QScroller.setSnapPositionsY": [('float', 'float'), ('typing.Sequence[float]',)],
- "PySide2.QtWidgets.QScroller.state": (),
- "PySide2.QtWidgets.QScroller.stop": (),
- "PySide2.QtWidgets.QScroller.target": (),
- "PySide2.QtWidgets.QScroller.ungrabGesture": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QScroller.velocity": (),
-# class PySide2.QtWidgets.QScrollerProperties:
-# class PySide2.QtWidgets.QScrollerProperties.FrameRates:
-# class PySide2.QtWidgets.QScrollerProperties.OvershootPolicy:
-# class PySide2.QtWidgets.QScrollerProperties.ScrollMetric:
- "PySide2.QtWidgets.QScrollerProperties.__init__": [(), ('PySide2.QtWidgets.QScrollerProperties',)],
- "PySide2.QtWidgets.QScrollerProperties.__copy__": (),
- "PySide2.QtWidgets.QScrollerProperties.scrollMetric": ('PySide2.QtWidgets.QScrollerProperties.ScrollMetric',),
- "PySide2.QtWidgets.QScrollerProperties.setDefaultScrollerProperties": ('PySide2.QtWidgets.QScrollerProperties',),
- "PySide2.QtWidgets.QScrollerProperties.setScrollMetric": ('PySide2.QtWidgets.QScrollerProperties.ScrollMetric', 'typing.Any'),
- "PySide2.QtWidgets.QScrollerProperties.unsetDefaultScrollerProperties": (),
-# class PySide2.QtWidgets.QShortcut:
- "PySide2.QtWidgets.QShortcut.__init__": [('PySide2.QtGui.QKeySequence', 'PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtCore.Qt.ShortcutContext'), ('PySide2.QtGui.QKeySequence', 'PySide2.QtWidgets.QWidget', 'typing.Callable', 'PySide2.QtCore.Qt.ShortcutContext'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QShortcut.autoRepeat": (),
- "PySide2.QtWidgets.QShortcut.context": (),
- "PySide2.QtWidgets.QShortcut.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QShortcut.id": (),
- "PySide2.QtWidgets.QShortcut.isEnabled": (),
- "PySide2.QtWidgets.QShortcut.key": (),
- "PySide2.QtWidgets.QShortcut.parentWidget": (),
- "PySide2.QtWidgets.QShortcut.setAutoRepeat": ('bool',),
- "PySide2.QtWidgets.QShortcut.setContext": ('PySide2.QtCore.Qt.ShortcutContext',),
- "PySide2.QtWidgets.QShortcut.setEnabled": ('bool',),
- "PySide2.QtWidgets.QShortcut.setKey": ('PySide2.QtGui.QKeySequence',),
- "PySide2.QtWidgets.QShortcut.setWhatsThis": ('str',),
- "PySide2.QtWidgets.QShortcut.whatsThis": (),
-# class PySide2.QtWidgets.QSizeGrip:
- "PySide2.QtWidgets.QSizeGrip.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QSizeGrip.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QSizeGrip.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QSizeGrip.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWidgets.QSizeGrip.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QSizeGrip.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QSizeGrip.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QSizeGrip.moveEvent": ('PySide2.QtGui.QMoveEvent',),
- "PySide2.QtWidgets.QSizeGrip.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QSizeGrip.setVisible": ('bool',),
- "PySide2.QtWidgets.QSizeGrip.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QSizeGrip.sizeHint": (),
-# class PySide2.QtWidgets.QSizePolicy:
-# class PySide2.QtWidgets.QSizePolicy.ControlType:
-# class PySide2.QtWidgets.QSizePolicy.ControlTypes:
-# class PySide2.QtWidgets.QSizePolicy.Policy:
-# class PySide2.QtWidgets.QSizePolicy.PolicyFlag:
- "PySide2.QtWidgets.QSizePolicy.__init__": [(), ('PySide2.QtWidgets.QSizePolicy.Policy', 'PySide2.QtWidgets.QSizePolicy.Policy', 'PySide2.QtWidgets.QSizePolicy.ControlType')],
- "PySide2.QtWidgets.QSizePolicy.__copy__": (),
- "PySide2.QtWidgets.QSizePolicy.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QSizePolicy.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QSizePolicy.controlType": (),
- "PySide2.QtWidgets.QSizePolicy.expandingDirections": (),
- "PySide2.QtWidgets.QSizePolicy.hasHeightForWidth": (),
- "PySide2.QtWidgets.QSizePolicy.hasWidthForHeight": (),
- "PySide2.QtWidgets.QSizePolicy.horizontalPolicy": (),
- "PySide2.QtWidgets.QSizePolicy.horizontalStretch": (),
- "PySide2.QtWidgets.QSizePolicy.retainSizeWhenHidden": (),
- "PySide2.QtWidgets.QSizePolicy.setControlType": ('PySide2.QtWidgets.QSizePolicy.ControlType',),
- "PySide2.QtWidgets.QSizePolicy.setHeightForWidth": ('bool',),
- "PySide2.QtWidgets.QSizePolicy.setHorizontalPolicy": ('PySide2.QtWidgets.QSizePolicy.Policy',),
- "PySide2.QtWidgets.QSizePolicy.setHorizontalStretch": ('int',),
- "PySide2.QtWidgets.QSizePolicy.setRetainSizeWhenHidden": ('bool',),
- "PySide2.QtWidgets.QSizePolicy.setVerticalPolicy": ('PySide2.QtWidgets.QSizePolicy.Policy',),
- "PySide2.QtWidgets.QSizePolicy.setVerticalStretch": ('int',),
- "PySide2.QtWidgets.QSizePolicy.setWidthForHeight": ('bool',),
- "PySide2.QtWidgets.QSizePolicy.transpose": (),
- "PySide2.QtWidgets.QSizePolicy.transposed": (),
- "PySide2.QtWidgets.QSizePolicy.verticalPolicy": (),
- "PySide2.QtWidgets.QSizePolicy.verticalStretch": (),
-# class PySide2.QtWidgets.QSlider:
-# class PySide2.QtWidgets.QSlider.TickPosition:
- "PySide2.QtWidgets.QSlider.__init__": [('PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QSlider.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QSlider.initStyleOption": ('PySide2.QtWidgets.QStyleOptionSlider',),
- "PySide2.QtWidgets.QSlider.minimumSizeHint": (),
- "PySide2.QtWidgets.QSlider.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QSlider.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QSlider.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QSlider.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QSlider.setTickInterval": ('int',),
- "PySide2.QtWidgets.QSlider.setTickPosition": ('PySide2.QtWidgets.QSlider.TickPosition',),
- "PySide2.QtWidgets.QSlider.sizeHint": (),
- "PySide2.QtWidgets.QSlider.tickInterval": (),
- "PySide2.QtWidgets.QSlider.tickPosition": (),
-# class PySide2.QtWidgets.QSpacerItem:
- "PySide2.QtWidgets.QSpacerItem.__init__": ('int', 'int', 'PySide2.QtWidgets.QSizePolicy.Policy', 'PySide2.QtWidgets.QSizePolicy.Policy'),
- "PySide2.QtWidgets.QSpacerItem.changeSize": ('int', 'int', 'PySide2.QtWidgets.QSizePolicy.Policy', 'PySide2.QtWidgets.QSizePolicy.Policy'),
- "PySide2.QtWidgets.QSpacerItem.expandingDirections": (),
- "PySide2.QtWidgets.QSpacerItem.geometry": (),
- "PySide2.QtWidgets.QSpacerItem.isEmpty": (),
- "PySide2.QtWidgets.QSpacerItem.maximumSize": (),
- "PySide2.QtWidgets.QSpacerItem.minimumSize": (),
- "PySide2.QtWidgets.QSpacerItem.setGeometry": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QSpacerItem.sizeHint": (),
- "PySide2.QtWidgets.QSpacerItem.sizePolicy": (),
- "PySide2.QtWidgets.QSpacerItem.spacerItem": (),
-# class PySide2.QtWidgets.QSpinBox:
- "PySide2.QtWidgets.QSpinBox.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QSpinBox.cleanText": (),
- "PySide2.QtWidgets.QSpinBox.displayIntegerBase": (),
- "PySide2.QtWidgets.QSpinBox.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QSpinBox.fixup": ('str',),
- "PySide2.QtWidgets.QSpinBox.maximum": (),
- "PySide2.QtWidgets.QSpinBox.minimum": (),
- "PySide2.QtWidgets.QSpinBox.prefix": (),
- "PySide2.QtWidgets.QSpinBox.setDisplayIntegerBase": ('int',),
- "PySide2.QtWidgets.QSpinBox.setMaximum": ('int',),
- "PySide2.QtWidgets.QSpinBox.setMinimum": ('int',),
- "PySide2.QtWidgets.QSpinBox.setPrefix": ('str',),
- "PySide2.QtWidgets.QSpinBox.setRange": ('int', 'int'),
- "PySide2.QtWidgets.QSpinBox.setSingleStep": ('int',),
- "PySide2.QtWidgets.QSpinBox.setStepType": ('PySide2.QtWidgets.QAbstractSpinBox.StepType',),
- "PySide2.QtWidgets.QSpinBox.setSuffix": ('str',),
- "PySide2.QtWidgets.QSpinBox.setValue": ('int',),
- "PySide2.QtWidgets.QSpinBox.singleStep": (),
- "PySide2.QtWidgets.QSpinBox.stepType": (),
- "PySide2.QtWidgets.QSpinBox.suffix": (),
- "PySide2.QtWidgets.QSpinBox.textFromValue": ('int',),
- "PySide2.QtWidgets.QSpinBox.validate": ('str', 'int'),
- "PySide2.QtWidgets.QSpinBox.value": (),
- "PySide2.QtWidgets.QSpinBox.valueFromText": ('str',),
-# class PySide2.QtWidgets.QSplashScreen:
- "PySide2.QtWidgets.QSplashScreen.__init__": [('PySide2.QtGui.QPixmap', 'PySide2.QtCore.Qt.WindowFlags'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtGui.QPixmap', 'PySide2.QtCore.Qt.WindowFlags')],
- "PySide2.QtWidgets.QSplashScreen.clearMessage": (),
- "PySide2.QtWidgets.QSplashScreen.drawContents": ('PySide2.QtGui.QPainter',),
- "PySide2.QtWidgets.QSplashScreen.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QSplashScreen.finish": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QSplashScreen.message": (),
- "PySide2.QtWidgets.QSplashScreen.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QSplashScreen.pixmap": (),
- "PySide2.QtWidgets.QSplashScreen.setPixmap": ('PySide2.QtGui.QPixmap',),
- "PySide2.QtWidgets.QSplashScreen.showMessage": ('str', 'int', 'PySide2.QtGui.QColor'),
-# class PySide2.QtWidgets.QSplitter:
- "PySide2.QtWidgets.QSplitter.__init__": [('PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QSplitter.__lshift__": ('PySide2.QtCore.QTextStream',),
- "PySide2.QtWidgets.QSplitter.__rshift__": ('PySide2.QtCore.QTextStream',),
- "PySide2.QtWidgets.QSplitter.addWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QSplitter.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QSplitter.childEvent": ('PySide2.QtCore.QChildEvent',),
- "PySide2.QtWidgets.QSplitter.childrenCollapsible": (),
- "PySide2.QtWidgets.QSplitter.closestLegalPosition": ('int', 'int'),
- "PySide2.QtWidgets.QSplitter.count": (),
- "PySide2.QtWidgets.QSplitter.createHandle": (),
- "PySide2.QtWidgets.QSplitter.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QSplitter.getRange": ('int',),
- "PySide2.QtWidgets.QSplitter.handle": ('int',),
- "PySide2.QtWidgets.QSplitter.handleWidth": (),
- "PySide2.QtWidgets.QSplitter.indexOf": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QSplitter.insertWidget": ('int', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QSplitter.isCollapsible": ('int',),
- "PySide2.QtWidgets.QSplitter.minimumSizeHint": (),
- "PySide2.QtWidgets.QSplitter.moveSplitter": ('int', 'int'),
- "PySide2.QtWidgets.QSplitter.opaqueResize": (),
- "PySide2.QtWidgets.QSplitter.orientation": (),
- "PySide2.QtWidgets.QSplitter.refresh": (),
- "PySide2.QtWidgets.QSplitter.replaceWidget": ('int', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QSplitter.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QSplitter.restoreState": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWidgets.QSplitter.saveState": (),
- "PySide2.QtWidgets.QSplitter.setChildrenCollapsible": ('bool',),
- "PySide2.QtWidgets.QSplitter.setCollapsible": ('int', 'bool'),
- "PySide2.QtWidgets.QSplitter.setHandleWidth": ('int',),
- "PySide2.QtWidgets.QSplitter.setOpaqueResize": ('bool',),
- "PySide2.QtWidgets.QSplitter.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtWidgets.QSplitter.setRubberBand": ('int',),
- "PySide2.QtWidgets.QSplitter.setSizes": ('typing.Sequence[int]',),
- "PySide2.QtWidgets.QSplitter.setStretchFactor": ('int', 'int'),
- "PySide2.QtWidgets.QSplitter.sizeHint": (),
- "PySide2.QtWidgets.QSplitter.sizes": (),
- "PySide2.QtWidgets.QSplitter.widget": ('int',),
-# class PySide2.QtWidgets.QSplitterHandle:
- "PySide2.QtWidgets.QSplitterHandle.__init__": ('PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QSplitter'),
- "PySide2.QtWidgets.QSplitterHandle.closestLegalPosition": ('int',),
- "PySide2.QtWidgets.QSplitterHandle.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QSplitterHandle.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QSplitterHandle.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QSplitterHandle.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QSplitterHandle.moveSplitter": ('int',),
- "PySide2.QtWidgets.QSplitterHandle.opaqueResize": (),
- "PySide2.QtWidgets.QSplitterHandle.orientation": (),
- "PySide2.QtWidgets.QSplitterHandle.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QSplitterHandle.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QSplitterHandle.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtWidgets.QSplitterHandle.sizeHint": (),
- "PySide2.QtWidgets.QSplitterHandle.splitter": (),
-# class PySide2.QtWidgets.QStackedLayout:
-# class PySide2.QtWidgets.QStackedLayout.StackingMode:
- "PySide2.QtWidgets.QStackedLayout.__init__": [(), ('PySide2.QtWidgets.QLayout',), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QStackedLayout.addItem": ('PySide2.QtWidgets.QLayoutItem',),
- "PySide2.QtWidgets.QStackedLayout.addWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QStackedLayout.count": (),
- "PySide2.QtWidgets.QStackedLayout.currentIndex": (),
- "PySide2.QtWidgets.QStackedLayout.currentWidget": (),
- "PySide2.QtWidgets.QStackedLayout.hasHeightForWidth": (),
- "PySide2.QtWidgets.QStackedLayout.heightForWidth": ('int',),
- "PySide2.QtWidgets.QStackedLayout.insertWidget": ('int', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStackedLayout.itemAt": ('int',),
- "PySide2.QtWidgets.QStackedLayout.minimumSize": (),
- "PySide2.QtWidgets.QStackedLayout.setCurrentIndex": ('int',),
- "PySide2.QtWidgets.QStackedLayout.setCurrentWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QStackedLayout.setGeometry": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QStackedLayout.setStackingMode": ('PySide2.QtWidgets.QStackedLayout.StackingMode',),
- "PySide2.QtWidgets.QStackedLayout.sizeHint": (),
- "PySide2.QtWidgets.QStackedLayout.stackingMode": (),
- "PySide2.QtWidgets.QStackedLayout.takeAt": ('int',),
- "PySide2.QtWidgets.QStackedLayout.widget": [(), ('int',)],
-# class PySide2.QtWidgets.QStackedWidget:
- "PySide2.QtWidgets.QStackedWidget.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QStackedWidget.addWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QStackedWidget.count": (),
- "PySide2.QtWidgets.QStackedWidget.currentIndex": (),
- "PySide2.QtWidgets.QStackedWidget.currentWidget": (),
- "PySide2.QtWidgets.QStackedWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QStackedWidget.indexOf": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QStackedWidget.insertWidget": ('int', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStackedWidget.removeWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QStackedWidget.setCurrentIndex": ('int',),
- "PySide2.QtWidgets.QStackedWidget.setCurrentWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QStackedWidget.widget": ('int',),
-# class PySide2.QtWidgets.QStatusBar:
- "PySide2.QtWidgets.QStatusBar.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QStatusBar.addPermanentWidget": ('PySide2.QtWidgets.QWidget', 'int'),
- "PySide2.QtWidgets.QStatusBar.addWidget": ('PySide2.QtWidgets.QWidget', 'int'),
- "PySide2.QtWidgets.QStatusBar.clearMessage": (),
- "PySide2.QtWidgets.QStatusBar.currentMessage": (),
- "PySide2.QtWidgets.QStatusBar.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QStatusBar.hideOrShow": (),
- "PySide2.QtWidgets.QStatusBar.insertPermanentWidget": ('int', 'PySide2.QtWidgets.QWidget', 'int'),
- "PySide2.QtWidgets.QStatusBar.insertWidget": ('int', 'PySide2.QtWidgets.QWidget', 'int'),
- "PySide2.QtWidgets.QStatusBar.isSizeGripEnabled": (),
- "PySide2.QtWidgets.QStatusBar.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QStatusBar.reformat": (),
- "PySide2.QtWidgets.QStatusBar.removeWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QStatusBar.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QStatusBar.setSizeGripEnabled": ('bool',),
- "PySide2.QtWidgets.QStatusBar.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QStatusBar.showMessage": ('str', 'int'),
-# class PySide2.QtWidgets.QStyle:
-# class PySide2.QtWidgets.QStyle.ComplexControl:
-# class PySide2.QtWidgets.QStyle.ContentsType:
-# class PySide2.QtWidgets.QStyle.ControlElement:
-# class PySide2.QtWidgets.QStyle.PixelMetric:
-# class PySide2.QtWidgets.QStyle.PrimitiveElement:
-# class PySide2.QtWidgets.QStyle.RequestSoftwareInputPanel:
-# class PySide2.QtWidgets.QStyle.StandardPixmap:
-# class PySide2.QtWidgets.QStyle.State:
-# class PySide2.QtWidgets.QStyle.StateFlag:
-# class PySide2.QtWidgets.QStyle.StyleHint:
-# class PySide2.QtWidgets.QStyle.SubControl:
-# class PySide2.QtWidgets.QStyle.SubControls:
-# class PySide2.QtWidgets.QStyle.SubElement:
- "PySide2.QtWidgets.QStyle.__init__": (),
- "PySide2.QtWidgets.QStyle.alignedRect": ('PySide2.QtCore.Qt.LayoutDirection', 'PySide2.QtCore.Qt.Alignment', 'PySide2.QtCore.QSize', 'PySide2.QtCore.QRect'),
- "PySide2.QtWidgets.QStyle.combinedLayoutSpacing": ('PySide2.QtWidgets.QSizePolicy.ControlTypes', 'PySide2.QtWidgets.QSizePolicy.ControlTypes', 'PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.drawComplexControl": ('PySide2.QtWidgets.QStyle.ComplexControl', 'PySide2.QtWidgets.QStyleOptionComplex', 'PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.drawControl": ('PySide2.QtWidgets.QStyle.ControlElement', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.drawItemPixmap": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRect', 'int', 'PySide2.QtGui.QPixmap'),
- "PySide2.QtWidgets.QStyle.drawItemText": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRect', 'int', 'PySide2.QtGui.QPalette', 'bool', 'str', 'PySide2.QtGui.QPalette.ColorRole'),
- "PySide2.QtWidgets.QStyle.drawPrimitive": ('PySide2.QtWidgets.QStyle.PrimitiveElement', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.generatedIconPixmap": ('PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QPixmap', 'PySide2.QtWidgets.QStyleOption'),
- "PySide2.QtWidgets.QStyle.hitTestComplexControl": ('PySide2.QtWidgets.QStyle.ComplexControl', 'PySide2.QtWidgets.QStyleOptionComplex', 'PySide2.QtCore.QPoint', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.itemPixmapRect": ('PySide2.QtCore.QRect', 'int', 'PySide2.QtGui.QPixmap'),
- "PySide2.QtWidgets.QStyle.itemTextRect": ('PySide2.QtGui.QFontMetrics', 'PySide2.QtCore.QRect', 'int', 'bool', 'str'),
- "PySide2.QtWidgets.QStyle.layoutSpacing": ('PySide2.QtWidgets.QSizePolicy.ControlType', 'PySide2.QtWidgets.QSizePolicy.ControlType', 'PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.pixelMetric": ('PySide2.QtWidgets.QStyle.PixelMetric', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.polish": [('PySide2.QtGui.QPalette',), ('PySide2.QtWidgets.QApplication',), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QStyle.proxy": (),
- "PySide2.QtWidgets.QStyle.sizeFromContents": ('PySide2.QtWidgets.QStyle.ContentsType', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtCore.QSize', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.sliderPositionFromValue": ('int', 'int', 'int', 'int', 'bool'),
- "PySide2.QtWidgets.QStyle.sliderValueFromPosition": ('int', 'int', 'int', 'int', 'bool'),
- "PySide2.QtWidgets.QStyle.standardIcon": ('PySide2.QtWidgets.QStyle.StandardPixmap', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.standardPalette": (),
- "PySide2.QtWidgets.QStyle.standardPixmap": ('PySide2.QtWidgets.QStyle.StandardPixmap', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.styleHint": ('PySide2.QtWidgets.QStyle.StyleHint', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QStyleHintReturn'),
- "PySide2.QtWidgets.QStyle.subControlRect": ('PySide2.QtWidgets.QStyle.ComplexControl', 'PySide2.QtWidgets.QStyleOptionComplex', 'PySide2.QtWidgets.QStyle.SubControl', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.subElementRect": ('PySide2.QtWidgets.QStyle.SubElement', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.unpolish": [('PySide2.QtWidgets.QApplication',), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QStyle.visualAlignment": ('PySide2.QtCore.Qt.LayoutDirection', 'PySide2.QtCore.Qt.Alignment'),
- "PySide2.QtWidgets.QStyle.visualPos": ('PySide2.QtCore.Qt.LayoutDirection', 'PySide2.QtCore.QRect', 'PySide2.QtCore.QPoint'),
- "PySide2.QtWidgets.QStyle.visualRect": ('PySide2.QtCore.Qt.LayoutDirection', 'PySide2.QtCore.QRect', 'PySide2.QtCore.QRect'),
-# class PySide2.QtWidgets.QStyleFactory:
- "PySide2.QtWidgets.QStyleFactory.__init__": (),
- "PySide2.QtWidgets.QStyleFactory.create": ('str',),
- "PySide2.QtWidgets.QStyleFactory.keys": (),
-# class PySide2.QtWidgets.QStyleHintReturn:
-# class PySide2.QtWidgets.QStyleHintReturn.HintReturnType:
-# class PySide2.QtWidgets.QStyleHintReturn.StyleOptionType:
-# class PySide2.QtWidgets.QStyleHintReturn.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleHintReturn.__init__": ('int', 'int'),
-# class PySide2.QtWidgets.QStyleHintReturnMask:
-# class PySide2.QtWidgets.QStyleHintReturnMask.StyleOptionType:
-# class PySide2.QtWidgets.QStyleHintReturnMask.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleHintReturnMask.__init__": (),
-# class PySide2.QtWidgets.QStyleHintReturnVariant:
-# class PySide2.QtWidgets.QStyleHintReturnVariant.StyleOptionType:
-# class PySide2.QtWidgets.QStyleHintReturnVariant.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleHintReturnVariant.__init__": (),
-# class PySide2.QtWidgets.QStyleOption:
-# class PySide2.QtWidgets.QStyleOption.OptionType:
-# class PySide2.QtWidgets.QStyleOption.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOption.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOption.__init__": [('PySide2.QtWidgets.QStyleOption',), ('int', 'int')],
- "PySide2.QtWidgets.QStyleOption.init": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QStyleOption.initFrom": ('PySide2.QtWidgets.QWidget',),
-# class PySide2.QtWidgets.QStyleOptionButton:
-# class PySide2.QtWidgets.QStyleOptionButton.ButtonFeature:
-# class PySide2.QtWidgets.QStyleOptionButton.ButtonFeatures:
-# class PySide2.QtWidgets.QStyleOptionButton.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionButton.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionButton.__init__": [(), ('PySide2.QtWidgets.QStyleOptionButton',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionComboBox:
-# class PySide2.QtWidgets.QStyleOptionComboBox.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionComboBox.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionComboBox.__init__": [(), ('PySide2.QtWidgets.QStyleOptionComboBox',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionComplex:
-# class PySide2.QtWidgets.QStyleOptionComplex.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionComplex.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionComplex.__init__": [('PySide2.QtWidgets.QStyleOptionComplex',), ('int', 'int')],
-# class PySide2.QtWidgets.QStyleOptionDockWidget:
-# class PySide2.QtWidgets.QStyleOptionDockWidget.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionDockWidget.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionDockWidget.__init__": [(), ('PySide2.QtWidgets.QStyleOptionDockWidget',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionFocusRect:
-# class PySide2.QtWidgets.QStyleOptionFocusRect.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionFocusRect.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionFocusRect.__init__": [(), ('PySide2.QtWidgets.QStyleOptionFocusRect',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionFrame:
-# class PySide2.QtWidgets.QStyleOptionFrame.FrameFeature:
-# class PySide2.QtWidgets.QStyleOptionFrame.FrameFeatures:
-# class PySide2.QtWidgets.QStyleOptionFrame.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionFrame.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionFrame.__init__": [(), ('PySide2.QtWidgets.QStyleOptionFrame',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionGraphicsItem:
-# class PySide2.QtWidgets.QStyleOptionGraphicsItem.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionGraphicsItem.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionGraphicsItem.__init__": [(), ('PySide2.QtWidgets.QStyleOptionGraphicsItem',), ('int',)],
- "PySide2.QtWidgets.QStyleOptionGraphicsItem.levelOfDetailFromTransform": ('PySide2.QtGui.QTransform',),
-# class PySide2.QtWidgets.QStyleOptionGroupBox:
-# class PySide2.QtWidgets.QStyleOptionGroupBox.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionGroupBox.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionGroupBox.__init__": [(), ('PySide2.QtWidgets.QStyleOptionGroupBox',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionHeader:
-# class PySide2.QtWidgets.QStyleOptionHeader.SectionPosition:
-# class PySide2.QtWidgets.QStyleOptionHeader.SelectedPosition:
-# class PySide2.QtWidgets.QStyleOptionHeader.SortIndicator:
-# class PySide2.QtWidgets.QStyleOptionHeader.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionHeader.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionHeader.__init__": [(), ('PySide2.QtWidgets.QStyleOptionHeader',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionMenuItem:
-# class PySide2.QtWidgets.QStyleOptionMenuItem.CheckType:
-# class PySide2.QtWidgets.QStyleOptionMenuItem.MenuItemType:
-# class PySide2.QtWidgets.QStyleOptionMenuItem.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionMenuItem.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionMenuItem.__init__": [(), ('PySide2.QtWidgets.QStyleOptionMenuItem',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionProgressBar:
-# class PySide2.QtWidgets.QStyleOptionProgressBar.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionProgressBar.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionProgressBar.__init__": [(), ('PySide2.QtWidgets.QStyleOptionProgressBar',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionRubberBand:
-# class PySide2.QtWidgets.QStyleOptionRubberBand.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionRubberBand.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionRubberBand.__init__": [(), ('PySide2.QtWidgets.QStyleOptionRubberBand',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionSizeGrip:
-# class PySide2.QtWidgets.QStyleOptionSizeGrip.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionSizeGrip.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionSizeGrip.__init__": [(), ('PySide2.QtWidgets.QStyleOptionSizeGrip',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionSlider:
-# class PySide2.QtWidgets.QStyleOptionSlider.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionSlider.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionSlider.__init__": [(), ('PySide2.QtWidgets.QStyleOptionSlider',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionSpinBox:
-# class PySide2.QtWidgets.QStyleOptionSpinBox.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionSpinBox.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionSpinBox.__init__": [(), ('PySide2.QtWidgets.QStyleOptionSpinBox',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionTab:
-# class PySide2.QtWidgets.QStyleOptionTab.CornerWidget:
-# class PySide2.QtWidgets.QStyleOptionTab.CornerWidgets:
-# class PySide2.QtWidgets.QStyleOptionTab.SelectedPosition:
-# class PySide2.QtWidgets.QStyleOptionTab.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionTab.StyleOptionVersion:
-# class PySide2.QtWidgets.QStyleOptionTab.TabFeature:
-# class PySide2.QtWidgets.QStyleOptionTab.TabFeatures:
-# class PySide2.QtWidgets.QStyleOptionTab.TabPosition:
- "PySide2.QtWidgets.QStyleOptionTab.__init__": [(), ('PySide2.QtWidgets.QStyleOptionTab',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionTabBarBase:
-# class PySide2.QtWidgets.QStyleOptionTabBarBase.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionTabBarBase.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionTabBarBase.__init__": [(), ('PySide2.QtWidgets.QStyleOptionTabBarBase',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionTabWidgetFrame:
-# class PySide2.QtWidgets.QStyleOptionTabWidgetFrame.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionTabWidgetFrame.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionTabWidgetFrame.__init__": [(), ('PySide2.QtWidgets.QStyleOptionTabWidgetFrame',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionTitleBar:
-# class PySide2.QtWidgets.QStyleOptionTitleBar.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionTitleBar.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionTitleBar.__init__": [(), ('PySide2.QtWidgets.QStyleOptionTitleBar',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionToolBar:
-# class PySide2.QtWidgets.QStyleOptionToolBar.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionToolBar.StyleOptionVersion:
-# class PySide2.QtWidgets.QStyleOptionToolBar.ToolBarFeature:
-# class PySide2.QtWidgets.QStyleOptionToolBar.ToolBarFeatures:
-# class PySide2.QtWidgets.QStyleOptionToolBar.ToolBarPosition:
- "PySide2.QtWidgets.QStyleOptionToolBar.__init__": [(), ('PySide2.QtWidgets.QStyleOptionToolBar',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionToolBox:
-# class PySide2.QtWidgets.QStyleOptionToolBox.SelectedPosition:
-# class PySide2.QtWidgets.QStyleOptionToolBox.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionToolBox.StyleOptionVersion:
-# class PySide2.QtWidgets.QStyleOptionToolBox.TabPosition:
- "PySide2.QtWidgets.QStyleOptionToolBox.__init__": [(), ('PySide2.QtWidgets.QStyleOptionToolBox',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionToolButton:
-# class PySide2.QtWidgets.QStyleOptionToolButton.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionToolButton.StyleOptionVersion:
-# class PySide2.QtWidgets.QStyleOptionToolButton.ToolButtonFeature:
-# class PySide2.QtWidgets.QStyleOptionToolButton.ToolButtonFeatures:
- "PySide2.QtWidgets.QStyleOptionToolButton.__init__": [(), ('PySide2.QtWidgets.QStyleOptionToolButton',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionViewItem:
-# class PySide2.QtWidgets.QStyleOptionViewItem.Position:
-# class PySide2.QtWidgets.QStyleOptionViewItem.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionViewItem.StyleOptionVersion:
-# class PySide2.QtWidgets.QStyleOptionViewItem.ViewItemFeature:
-# class PySide2.QtWidgets.QStyleOptionViewItem.ViewItemFeatures:
-# class PySide2.QtWidgets.QStyleOptionViewItem.ViewItemPosition:
- "PySide2.QtWidgets.QStyleOptionViewItem.__init__": [(), ('PySide2.QtWidgets.QStyleOptionViewItem',), ('int',)],
- "PySide2.QtWidgets.QStyleOptionViewItem.__copy__": (),
-# class PySide2.QtWidgets.QStylePainter:
- "PySide2.QtWidgets.QStylePainter.__init__": [(), ('PySide2.QtGui.QPaintDevice', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QStylePainter.begin": [('PySide2.QtGui.QPaintDevice',), ('PySide2.QtGui.QPaintDevice', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QStylePainter.drawComplexControl": ('PySide2.QtWidgets.QStyle.ComplexControl', 'PySide2.QtWidgets.QStyleOptionComplex'),
- "PySide2.QtWidgets.QStylePainter.drawControl": ('PySide2.QtWidgets.QStyle.ControlElement', 'PySide2.QtWidgets.QStyleOption'),
- "PySide2.QtWidgets.QStylePainter.drawItemPixmap": ('PySide2.QtCore.QRect', 'int', 'PySide2.QtGui.QPixmap'),
- "PySide2.QtWidgets.QStylePainter.drawItemText": ('PySide2.QtCore.QRect', 'int', 'PySide2.QtGui.QPalette', 'bool', 'str', 'PySide2.QtGui.QPalette.ColorRole'),
- "PySide2.QtWidgets.QStylePainter.drawPrimitive": ('PySide2.QtWidgets.QStyle.PrimitiveElement', 'PySide2.QtWidgets.QStyleOption'),
- "PySide2.QtWidgets.QStylePainter.style": (),
-# class PySide2.QtWidgets.QStyledItemDelegate:
- "PySide2.QtWidgets.QStyledItemDelegate.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QStyledItemDelegate.createEditor": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QStyledItemDelegate.displayText": ('typing.Any', 'PySide2.QtCore.QLocale'),
- "PySide2.QtWidgets.QStyledItemDelegate.editorEvent": ('PySide2.QtCore.QEvent', 'PySide2.QtCore.QAbstractItemModel', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QStyledItemDelegate.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QStyledItemDelegate.initStyleOption": ('PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QStyledItemDelegate.itemEditorFactory": (),
- "PySide2.QtWidgets.QStyledItemDelegate.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QStyledItemDelegate.setEditorData": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QStyledItemDelegate.setItemEditorFactory": ('PySide2.QtWidgets.QItemEditorFactory',),
- "PySide2.QtWidgets.QStyledItemDelegate.setModelData": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QAbstractItemModel', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QStyledItemDelegate.sizeHint": ('PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QStyledItemDelegate.updateEditorGeometry": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
-# class PySide2.QtWidgets.QSwipeGesture:
-# class PySide2.QtWidgets.QSwipeGesture.SwipeDirection:
- "PySide2.QtWidgets.QSwipeGesture.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QSwipeGesture.horizontalDirection": (),
- "PySide2.QtWidgets.QSwipeGesture.setSwipeAngle": ('float',),
- "PySide2.QtWidgets.QSwipeGesture.swipeAngle": (),
- "PySide2.QtWidgets.QSwipeGesture.verticalDirection": (),
-# class PySide2.QtWidgets.QSystemTrayIcon:
-# class PySide2.QtWidgets.QSystemTrayIcon.ActivationReason:
-# class PySide2.QtWidgets.QSystemTrayIcon.MessageIcon:
- "PySide2.QtWidgets.QSystemTrayIcon.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtGui.QIcon', 'PySide2.QtCore.QObject')],
- "PySide2.QtWidgets.QSystemTrayIcon.contextMenu": (),
- "PySide2.QtWidgets.QSystemTrayIcon.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QSystemTrayIcon.geometry": (),
- "PySide2.QtWidgets.QSystemTrayIcon.hide": (),
- "PySide2.QtWidgets.QSystemTrayIcon.icon": (),
- "PySide2.QtWidgets.QSystemTrayIcon.isSystemTrayAvailable": (),
- "PySide2.QtWidgets.QSystemTrayIcon.isVisible": (),
- "PySide2.QtWidgets.QSystemTrayIcon.setContextMenu": ('PySide2.QtWidgets.QMenu',),
- "PySide2.QtWidgets.QSystemTrayIcon.setIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtWidgets.QSystemTrayIcon.setToolTip": ('str',),
- "PySide2.QtWidgets.QSystemTrayIcon.setVisible": ('bool',),
- "PySide2.QtWidgets.QSystemTrayIcon.show": (),
- "PySide2.QtWidgets.QSystemTrayIcon.showMessage": [('str', 'str', 'PySide2.QtGui.QIcon', 'int'), ('str', 'str', 'PySide2.QtWidgets.QSystemTrayIcon.MessageIcon', 'int')],
- "PySide2.QtWidgets.QSystemTrayIcon.supportsMessages": (),
- "PySide2.QtWidgets.QSystemTrayIcon.toolTip": (),
-# class PySide2.QtWidgets.QTabBar:
-# class PySide2.QtWidgets.QTabBar.ButtonPosition:
-# class PySide2.QtWidgets.QTabBar.SelectionBehavior:
-# class PySide2.QtWidgets.QTabBar.Shape:
- "PySide2.QtWidgets.QTabBar.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QTabBar.accessibleTabName": ('int',),
- "PySide2.QtWidgets.QTabBar.addTab": [('PySide2.QtGui.QIcon', 'str'), ('str',)],
- "PySide2.QtWidgets.QTabBar.autoHide": (),
- "PySide2.QtWidgets.QTabBar.changeCurrentOnDrag": (),
- "PySide2.QtWidgets.QTabBar.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QTabBar.count": (),
- "PySide2.QtWidgets.QTabBar.currentIndex": (),
- "PySide2.QtWidgets.QTabBar.documentMode": (),
- "PySide2.QtWidgets.QTabBar.drawBase": (),
- "PySide2.QtWidgets.QTabBar.elideMode": (),
- "PySide2.QtWidgets.QTabBar.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QTabBar.expanding": (),
- "PySide2.QtWidgets.QTabBar.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWidgets.QTabBar.iconSize": (),
- "PySide2.QtWidgets.QTabBar.initStyleOption": ('PySide2.QtWidgets.QStyleOptionTab', 'int'),
- "PySide2.QtWidgets.QTabBar.insertTab": [('int', 'PySide2.QtGui.QIcon', 'str'), ('int', 'str')],
- "PySide2.QtWidgets.QTabBar.isMovable": (),
- "PySide2.QtWidgets.QTabBar.isTabEnabled": ('int',),
- "PySide2.QtWidgets.QTabBar.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QTabBar.minimumSizeHint": (),
- "PySide2.QtWidgets.QTabBar.minimumTabSizeHint": ('int',),
- "PySide2.QtWidgets.QTabBar.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTabBar.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTabBar.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTabBar.moveTab": ('int', 'int'),
- "PySide2.QtWidgets.QTabBar.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QTabBar.removeTab": ('int',),
- "PySide2.QtWidgets.QTabBar.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QTabBar.selectionBehaviorOnRemove": (),
- "PySide2.QtWidgets.QTabBar.setAccessibleTabName": ('int', 'str'),
- "PySide2.QtWidgets.QTabBar.setAutoHide": ('bool',),
- "PySide2.QtWidgets.QTabBar.setChangeCurrentOnDrag": ('bool',),
- "PySide2.QtWidgets.QTabBar.setCurrentIndex": ('int',),
- "PySide2.QtWidgets.QTabBar.setDocumentMode": ('bool',),
- "PySide2.QtWidgets.QTabBar.setDrawBase": ('bool',),
- "PySide2.QtWidgets.QTabBar.setElideMode": ('PySide2.QtCore.Qt.TextElideMode',),
- "PySide2.QtWidgets.QTabBar.setExpanding": ('bool',),
- "PySide2.QtWidgets.QTabBar.setIconSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QTabBar.setMovable": ('bool',),
- "PySide2.QtWidgets.QTabBar.setSelectionBehaviorOnRemove": ('PySide2.QtWidgets.QTabBar.SelectionBehavior',),
- "PySide2.QtWidgets.QTabBar.setShape": ('PySide2.QtWidgets.QTabBar.Shape',),
- "PySide2.QtWidgets.QTabBar.setTabButton": ('int', 'PySide2.QtWidgets.QTabBar.ButtonPosition', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QTabBar.setTabData": ('int', 'typing.Any'),
- "PySide2.QtWidgets.QTabBar.setTabEnabled": ('int', 'bool'),
- "PySide2.QtWidgets.QTabBar.setTabIcon": ('int', 'PySide2.QtGui.QIcon'),
- "PySide2.QtWidgets.QTabBar.setTabText": ('int', 'str'),
- "PySide2.QtWidgets.QTabBar.setTabTextColor": ('int', 'PySide2.QtGui.QColor'),
- "PySide2.QtWidgets.QTabBar.setTabToolTip": ('int', 'str'),
- "PySide2.QtWidgets.QTabBar.setTabWhatsThis": ('int', 'str'),
- "PySide2.QtWidgets.QTabBar.setTabsClosable": ('bool',),
- "PySide2.QtWidgets.QTabBar.setUsesScrollButtons": ('bool',),
- "PySide2.QtWidgets.QTabBar.shape": (),
- "PySide2.QtWidgets.QTabBar.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QTabBar.sizeHint": (),
- "PySide2.QtWidgets.QTabBar.tabAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QTabBar.tabButton": ('int', 'PySide2.QtWidgets.QTabBar.ButtonPosition'),
- "PySide2.QtWidgets.QTabBar.tabData": ('int',),
- "PySide2.QtWidgets.QTabBar.tabIcon": ('int',),
- "PySide2.QtWidgets.QTabBar.tabInserted": ('int',),
- "PySide2.QtWidgets.QTabBar.tabLayoutChange": (),
- "PySide2.QtWidgets.QTabBar.tabRect": ('int',),
- "PySide2.QtWidgets.QTabBar.tabRemoved": ('int',),
- "PySide2.QtWidgets.QTabBar.tabSizeHint": ('int',),
- "PySide2.QtWidgets.QTabBar.tabText": ('int',),
- "PySide2.QtWidgets.QTabBar.tabTextColor": ('int',),
- "PySide2.QtWidgets.QTabBar.tabToolTip": ('int',),
- "PySide2.QtWidgets.QTabBar.tabWhatsThis": ('int',),
- "PySide2.QtWidgets.QTabBar.tabsClosable": (),
- "PySide2.QtWidgets.QTabBar.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QTabBar.usesScrollButtons": (),
- "PySide2.QtWidgets.QTabBar.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtWidgets.QTabWidget:
-# class PySide2.QtWidgets.QTabWidget.TabPosition:
-# class PySide2.QtWidgets.QTabWidget.TabShape:
- "PySide2.QtWidgets.QTabWidget.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QTabWidget.addTab": [('PySide2.QtWidgets.QWidget', 'PySide2.QtGui.QIcon', 'str'), ('PySide2.QtWidgets.QWidget', 'str')],
- "PySide2.QtWidgets.QTabWidget.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QTabWidget.clear": (),
- "PySide2.QtWidgets.QTabWidget.cornerWidget": ('PySide2.QtCore.Qt.Corner',),
- "PySide2.QtWidgets.QTabWidget.count": (),
- "PySide2.QtWidgets.QTabWidget.currentIndex": (),
- "PySide2.QtWidgets.QTabWidget.currentWidget": (),
- "PySide2.QtWidgets.QTabWidget.documentMode": (),
- "PySide2.QtWidgets.QTabWidget.elideMode": (),
- "PySide2.QtWidgets.QTabWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QTabWidget.hasHeightForWidth": (),
- "PySide2.QtWidgets.QTabWidget.heightForWidth": ('int',),
- "PySide2.QtWidgets.QTabWidget.iconSize": (),
- "PySide2.QtWidgets.QTabWidget.indexOf": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QTabWidget.initStyleOption": ('PySide2.QtWidgets.QStyleOptionTabWidgetFrame',),
- "PySide2.QtWidgets.QTabWidget.insertTab": [('int', 'PySide2.QtWidgets.QWidget', 'PySide2.QtGui.QIcon', 'str'), ('int', 'PySide2.QtWidgets.QWidget', 'str')],
- "PySide2.QtWidgets.QTabWidget.isMovable": (),
- "PySide2.QtWidgets.QTabWidget.isTabEnabled": ('int',),
- "PySide2.QtWidgets.QTabWidget.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QTabWidget.minimumSizeHint": (),
- "PySide2.QtWidgets.QTabWidget.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QTabWidget.removeTab": ('int',),
- "PySide2.QtWidgets.QTabWidget.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QTabWidget.setCornerWidget": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.Corner'),
- "PySide2.QtWidgets.QTabWidget.setCurrentIndex": ('int',),
- "PySide2.QtWidgets.QTabWidget.setCurrentWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QTabWidget.setDocumentMode": ('bool',),
- "PySide2.QtWidgets.QTabWidget.setElideMode": ('PySide2.QtCore.Qt.TextElideMode',),
- "PySide2.QtWidgets.QTabWidget.setIconSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QTabWidget.setMovable": ('bool',),
- "PySide2.QtWidgets.QTabWidget.setTabBar": ('PySide2.QtWidgets.QTabBar',),
- "PySide2.QtWidgets.QTabWidget.setTabBarAutoHide": ('bool',),
- "PySide2.QtWidgets.QTabWidget.setTabEnabled": ('int', 'bool'),
- "PySide2.QtWidgets.QTabWidget.setTabIcon": ('int', 'PySide2.QtGui.QIcon'),
- "PySide2.QtWidgets.QTabWidget.setTabPosition": ('PySide2.QtWidgets.QTabWidget.TabPosition',),
- "PySide2.QtWidgets.QTabWidget.setTabShape": ('PySide2.QtWidgets.QTabWidget.TabShape',),
- "PySide2.QtWidgets.QTabWidget.setTabText": ('int', 'str'),
- "PySide2.QtWidgets.QTabWidget.setTabToolTip": ('int', 'str'),
- "PySide2.QtWidgets.QTabWidget.setTabWhatsThis": ('int', 'str'),
- "PySide2.QtWidgets.QTabWidget.setTabsClosable": ('bool',),
- "PySide2.QtWidgets.QTabWidget.setUsesScrollButtons": ('bool',),
- "PySide2.QtWidgets.QTabWidget.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QTabWidget.sizeHint": (),
- "PySide2.QtWidgets.QTabWidget.tabBar": (),
- "PySide2.QtWidgets.QTabWidget.tabBarAutoHide": (),
- "PySide2.QtWidgets.QTabWidget.tabIcon": ('int',),
- "PySide2.QtWidgets.QTabWidget.tabInserted": ('int',),
- "PySide2.QtWidgets.QTabWidget.tabPosition": (),
- "PySide2.QtWidgets.QTabWidget.tabRemoved": ('int',),
- "PySide2.QtWidgets.QTabWidget.tabShape": (),
- "PySide2.QtWidgets.QTabWidget.tabText": ('int',),
- "PySide2.QtWidgets.QTabWidget.tabToolTip": ('int',),
- "PySide2.QtWidgets.QTabWidget.tabWhatsThis": ('int',),
- "PySide2.QtWidgets.QTabWidget.tabsClosable": (),
- "PySide2.QtWidgets.QTabWidget.usesScrollButtons": (),
- "PySide2.QtWidgets.QTabWidget.widget": ('int',),
-# class PySide2.QtWidgets.QTableView:
- "PySide2.QtWidgets.QTableView.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QTableView.clearSpans": (),
- "PySide2.QtWidgets.QTableView.columnAt": ('int',),
- "PySide2.QtWidgets.QTableView.columnCountChanged": ('int', 'int'),
- "PySide2.QtWidgets.QTableView.columnMoved": ('int', 'int', 'int'),
- "PySide2.QtWidgets.QTableView.columnResized": ('int', 'int', 'int'),
- "PySide2.QtWidgets.QTableView.columnSpan": ('int', 'int'),
- "PySide2.QtWidgets.QTableView.columnViewportPosition": ('int',),
- "PySide2.QtWidgets.QTableView.columnWidth": ('int',),
- "PySide2.QtWidgets.QTableView.currentChanged": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QTableView.doItemsLayout": (),
- "PySide2.QtWidgets.QTableView.gridStyle": (),
- "PySide2.QtWidgets.QTableView.hideColumn": ('int',),
- "PySide2.QtWidgets.QTableView.hideRow": ('int',),
- "PySide2.QtWidgets.QTableView.horizontalHeader": (),
- "PySide2.QtWidgets.QTableView.horizontalOffset": (),
- "PySide2.QtWidgets.QTableView.horizontalScrollbarAction": ('int',),
- "PySide2.QtWidgets.QTableView.indexAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QTableView.isColumnHidden": ('int',),
- "PySide2.QtWidgets.QTableView.isCornerButtonEnabled": (),
- "PySide2.QtWidgets.QTableView.isIndexHidden": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTableView.isRowHidden": ('int',),
- "PySide2.QtWidgets.QTableView.isSortingEnabled": (),
- "PySide2.QtWidgets.QTableView.moveCursor": ('PySide2.QtWidgets.QAbstractItemView.CursorAction', 'PySide2.QtCore.Qt.KeyboardModifiers'),
- "PySide2.QtWidgets.QTableView.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QTableView.resizeColumnToContents": ('int',),
- "PySide2.QtWidgets.QTableView.resizeColumnsToContents": (),
- "PySide2.QtWidgets.QTableView.resizeRowToContents": ('int',),
- "PySide2.QtWidgets.QTableView.resizeRowsToContents": (),
- "PySide2.QtWidgets.QTableView.rowAt": ('int',),
- "PySide2.QtWidgets.QTableView.rowCountChanged": ('int', 'int'),
- "PySide2.QtWidgets.QTableView.rowHeight": ('int',),
- "PySide2.QtWidgets.QTableView.rowMoved": ('int', 'int', 'int'),
- "PySide2.QtWidgets.QTableView.rowResized": ('int', 'int', 'int'),
- "PySide2.QtWidgets.QTableView.rowSpan": ('int', 'int'),
- "PySide2.QtWidgets.QTableView.rowViewportPosition": ('int',),
- "PySide2.QtWidgets.QTableView.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QTableView.scrollTo": ('PySide2.QtCore.QModelIndex', 'PySide2.QtWidgets.QAbstractItemView.ScrollHint'),
- "PySide2.QtWidgets.QTableView.selectColumn": ('int',),
- "PySide2.QtWidgets.QTableView.selectRow": ('int',),
- "PySide2.QtWidgets.QTableView.selectedIndexes": (),
- "PySide2.QtWidgets.QTableView.selectionChanged": ('PySide2.QtCore.QItemSelection', 'PySide2.QtCore.QItemSelection'),
- "PySide2.QtWidgets.QTableView.setColumnHidden": ('int', 'bool'),
- "PySide2.QtWidgets.QTableView.setColumnWidth": ('int', 'int'),
- "PySide2.QtWidgets.QTableView.setCornerButtonEnabled": ('bool',),
- "PySide2.QtWidgets.QTableView.setGridStyle": ('PySide2.QtCore.Qt.PenStyle',),
- "PySide2.QtWidgets.QTableView.setHorizontalHeader": ('PySide2.QtWidgets.QHeaderView',),
- "PySide2.QtWidgets.QTableView.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QTableView.setRootIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTableView.setRowHeight": ('int', 'int'),
- "PySide2.QtWidgets.QTableView.setRowHidden": ('int', 'bool'),
- "PySide2.QtWidgets.QTableView.setSelection": ('PySide2.QtCore.QRect', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags'),
- "PySide2.QtWidgets.QTableView.setSelectionModel": ('PySide2.QtCore.QItemSelectionModel',),
- "PySide2.QtWidgets.QTableView.setShowGrid": ('bool',),
- "PySide2.QtWidgets.QTableView.setSortingEnabled": ('bool',),
- "PySide2.QtWidgets.QTableView.setSpan": ('int', 'int', 'int', 'int'),
- "PySide2.QtWidgets.QTableView.setVerticalHeader": ('PySide2.QtWidgets.QHeaderView',),
- "PySide2.QtWidgets.QTableView.setWordWrap": ('bool',),
- "PySide2.QtWidgets.QTableView.showColumn": ('int',),
- "PySide2.QtWidgets.QTableView.showGrid": (),
- "PySide2.QtWidgets.QTableView.showRow": ('int',),
- "PySide2.QtWidgets.QTableView.sizeHintForColumn": ('int',),
- "PySide2.QtWidgets.QTableView.sizeHintForRow": ('int',),
- "PySide2.QtWidgets.QTableView.sortByColumn": [('int',), ('int', 'PySide2.QtCore.Qt.SortOrder')],
- "PySide2.QtWidgets.QTableView.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QTableView.updateGeometries": (),
- "PySide2.QtWidgets.QTableView.verticalHeader": (),
- "PySide2.QtWidgets.QTableView.verticalOffset": (),
- "PySide2.QtWidgets.QTableView.verticalScrollbarAction": ('int',),
- "PySide2.QtWidgets.QTableView.viewOptions": (),
- "PySide2.QtWidgets.QTableView.viewportSizeHint": (),
- "PySide2.QtWidgets.QTableView.visualRect": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTableView.visualRegionForSelection": ('PySide2.QtCore.QItemSelection',),
- "PySide2.QtWidgets.QTableView.wordWrap": (),
-# class PySide2.QtWidgets.QTableWidget:
- "PySide2.QtWidgets.QTableWidget.__init__": [('PySide2.QtWidgets.QWidget',), ('int', 'int', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QTableWidget.cellWidget": ('int', 'int'),
- "PySide2.QtWidgets.QTableWidget.clear": (),
- "PySide2.QtWidgets.QTableWidget.clearContents": (),
- "PySide2.QtWidgets.QTableWidget.closePersistentEditor": [('PySide2.QtCore.QModelIndex',), ('PySide2.QtWidgets.QTableWidgetItem',)],
- "PySide2.QtWidgets.QTableWidget.column": ('PySide2.QtWidgets.QTableWidgetItem',),
- "PySide2.QtWidgets.QTableWidget.columnCount": (),
- "PySide2.QtWidgets.QTableWidget.currentColumn": (),
- "PySide2.QtWidgets.QTableWidget.currentItem": (),
- "PySide2.QtWidgets.QTableWidget.currentRow": (),
- "PySide2.QtWidgets.QTableWidget.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QTableWidget.dropMimeData": ('int', 'int', 'PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction'),
- "PySide2.QtWidgets.QTableWidget.editItem": ('PySide2.QtWidgets.QTableWidgetItem',),
- "PySide2.QtWidgets.QTableWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QTableWidget.findItems": ('str', 'PySide2.QtCore.Qt.MatchFlags'),
- "PySide2.QtWidgets.QTableWidget.horizontalHeaderItem": ('int',),
- "PySide2.QtWidgets.QTableWidget.indexFromItem": ('PySide2.QtWidgets.QTableWidgetItem',),
- "PySide2.QtWidgets.QTableWidget.insertColumn": ('int',),
- "PySide2.QtWidgets.QTableWidget.insertRow": ('int',),
- "PySide2.QtWidgets.QTableWidget.isItemSelected": ('PySide2.QtWidgets.QTableWidgetItem',),
- "PySide2.QtWidgets.QTableWidget.isPersistentEditorOpen": [('PySide2.QtCore.QModelIndex',), ('PySide2.QtWidgets.QTableWidgetItem',)],
- "PySide2.QtWidgets.QTableWidget.isSortingEnabled": (),
- "PySide2.QtWidgets.QTableWidget.item": ('int', 'int'),
- "PySide2.QtWidgets.QTableWidget.itemAt": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtWidgets.QTableWidget.itemFromIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTableWidget.itemPrototype": (),
- "PySide2.QtWidgets.QTableWidget.items": ('PySide2.QtCore.QMimeData',),
- "PySide2.QtWidgets.QTableWidget.mimeData": ('typing.Sequence[PySide2.QtWidgets.QTableWidgetItem]',),
- "PySide2.QtWidgets.QTableWidget.mimeTypes": (),
- "PySide2.QtWidgets.QTableWidget.openPersistentEditor": [('PySide2.QtCore.QModelIndex',), ('PySide2.QtWidgets.QTableWidgetItem',)],
- "PySide2.QtWidgets.QTableWidget.removeCellWidget": ('int', 'int'),
- "PySide2.QtWidgets.QTableWidget.removeColumn": ('int',),
- "PySide2.QtWidgets.QTableWidget.removeRow": ('int',),
- "PySide2.QtWidgets.QTableWidget.row": ('PySide2.QtWidgets.QTableWidgetItem',),
- "PySide2.QtWidgets.QTableWidget.rowCount": (),
- "PySide2.QtWidgets.QTableWidget.scrollToItem": ('PySide2.QtWidgets.QTableWidgetItem', 'PySide2.QtWidgets.QAbstractItemView.ScrollHint'),
- "PySide2.QtWidgets.QTableWidget.selectedItems": (),
- "PySide2.QtWidgets.QTableWidget.selectedRanges": (),
- "PySide2.QtWidgets.QTableWidget.setCellWidget": ('int', 'int', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QTableWidget.setColumnCount": ('int',),
- "PySide2.QtWidgets.QTableWidget.setCurrentCell": [('int', 'int'), ('int', 'int', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags')],
- "PySide2.QtWidgets.QTableWidget.setCurrentItem": [('PySide2.QtWidgets.QTableWidgetItem',), ('PySide2.QtWidgets.QTableWidgetItem', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags')],
- "PySide2.QtWidgets.QTableWidget.setHorizontalHeaderItem": ('int', 'PySide2.QtWidgets.QTableWidgetItem'),
- "PySide2.QtWidgets.QTableWidget.setHorizontalHeaderLabels": ('typing.Sequence[str]',),
- "PySide2.QtWidgets.QTableWidget.setItem": ('int', 'int', 'PySide2.QtWidgets.QTableWidgetItem'),
- "PySide2.QtWidgets.QTableWidget.setItemPrototype": ('PySide2.QtWidgets.QTableWidgetItem',),
- "PySide2.QtWidgets.QTableWidget.setItemSelected": ('PySide2.QtWidgets.QTableWidgetItem', 'bool'),
- "PySide2.QtWidgets.QTableWidget.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QTableWidget.setRangeSelected": ('PySide2.QtWidgets.QTableWidgetSelectionRange', 'bool'),
- "PySide2.QtWidgets.QTableWidget.setRowCount": ('int',),
- "PySide2.QtWidgets.QTableWidget.setSortingEnabled": ('bool',),
- "PySide2.QtWidgets.QTableWidget.setVerticalHeaderItem": ('int', 'PySide2.QtWidgets.QTableWidgetItem'),
- "PySide2.QtWidgets.QTableWidget.setVerticalHeaderLabels": ('typing.Sequence[str]',),
- "PySide2.QtWidgets.QTableWidget.sortItems": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtWidgets.QTableWidget.supportedDropActions": (),
- "PySide2.QtWidgets.QTableWidget.takeHorizontalHeaderItem": ('int',),
- "PySide2.QtWidgets.QTableWidget.takeItem": ('int', 'int'),
- "PySide2.QtWidgets.QTableWidget.takeVerticalHeaderItem": ('int',),
- "PySide2.QtWidgets.QTableWidget.verticalHeaderItem": ('int',),
- "PySide2.QtWidgets.QTableWidget.visualColumn": ('int',),
- "PySide2.QtWidgets.QTableWidget.visualItemRect": ('PySide2.QtWidgets.QTableWidgetItem',),
- "PySide2.QtWidgets.QTableWidget.visualRow": ('int',),
-# class PySide2.QtWidgets.QTableWidgetItem:
-# class PySide2.QtWidgets.QTableWidgetItem.ItemType:
- "PySide2.QtWidgets.QTableWidgetItem.__init__": [('PySide2.QtGui.QIcon', 'str', 'int'), ('PySide2.QtWidgets.QTableWidgetItem',), ('int',), ('str', 'int')],
- "PySide2.QtWidgets.QTableWidgetItem.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QTableWidgetItem.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QTableWidgetItem.background": (),
- "PySide2.QtWidgets.QTableWidgetItem.backgroundColor": (),
- "PySide2.QtWidgets.QTableWidgetItem.checkState": (),
- "PySide2.QtWidgets.QTableWidgetItem.clone": (),
- "PySide2.QtWidgets.QTableWidgetItem.column": (),
- "PySide2.QtWidgets.QTableWidgetItem.data": ('int',),
- "PySide2.QtWidgets.QTableWidgetItem.flags": (),
- "PySide2.QtWidgets.QTableWidgetItem.font": (),
- "PySide2.QtWidgets.QTableWidgetItem.foreground": (),
- "PySide2.QtWidgets.QTableWidgetItem.icon": (),
- "PySide2.QtWidgets.QTableWidgetItem.isSelected": (),
- "PySide2.QtWidgets.QTableWidgetItem.read": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QTableWidgetItem.row": (),
- "PySide2.QtWidgets.QTableWidgetItem.setBackground": ('PySide2.QtGui.QBrush',),
- "PySide2.QtWidgets.QTableWidgetItem.setBackgroundColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QTableWidgetItem.setCheckState": ('PySide2.QtCore.Qt.CheckState',),
- "PySide2.QtWidgets.QTableWidgetItem.setData": ('int', 'typing.Any'),
- "PySide2.QtWidgets.QTableWidgetItem.setFlags": ('PySide2.QtCore.Qt.ItemFlags',),
- "PySide2.QtWidgets.QTableWidgetItem.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QTableWidgetItem.setForeground": ('PySide2.QtGui.QBrush',),
- "PySide2.QtWidgets.QTableWidgetItem.setIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtWidgets.QTableWidgetItem.setSelected": ('bool',),
- "PySide2.QtWidgets.QTableWidgetItem.setSizeHint": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QTableWidgetItem.setStatusTip": ('str',),
- "PySide2.QtWidgets.QTableWidgetItem.setText": ('str',),
- "PySide2.QtWidgets.QTableWidgetItem.setTextAlignment": ('int',),
- "PySide2.QtWidgets.QTableWidgetItem.setTextColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QTableWidgetItem.setToolTip": ('str',),
- "PySide2.QtWidgets.QTableWidgetItem.setWhatsThis": ('str',),
- "PySide2.QtWidgets.QTableWidgetItem.sizeHint": (),
- "PySide2.QtWidgets.QTableWidgetItem.statusTip": (),
- "PySide2.QtWidgets.QTableWidgetItem.tableWidget": (),
- "PySide2.QtWidgets.QTableWidgetItem.text": (),
- "PySide2.QtWidgets.QTableWidgetItem.textAlignment": (),
- "PySide2.QtWidgets.QTableWidgetItem.textColor": (),
- "PySide2.QtWidgets.QTableWidgetItem.toolTip": (),
- "PySide2.QtWidgets.QTableWidgetItem.type": (),
- "PySide2.QtWidgets.QTableWidgetItem.whatsThis": (),
- "PySide2.QtWidgets.QTableWidgetItem.write": ('PySide2.QtCore.QDataStream',),
-# class PySide2.QtWidgets.QTableWidgetSelectionRange:
- "PySide2.QtWidgets.QTableWidgetSelectionRange.__init__": [(), ('PySide2.QtWidgets.QTableWidgetSelectionRange',), ('int', 'int', 'int', 'int')],
- "PySide2.QtWidgets.QTableWidgetSelectionRange.__copy__": (),
- "PySide2.QtWidgets.QTableWidgetSelectionRange.bottomRow": (),
- "PySide2.QtWidgets.QTableWidgetSelectionRange.columnCount": (),
- "PySide2.QtWidgets.QTableWidgetSelectionRange.leftColumn": (),
- "PySide2.QtWidgets.QTableWidgetSelectionRange.rightColumn": (),
- "PySide2.QtWidgets.QTableWidgetSelectionRange.rowCount": (),
- "PySide2.QtWidgets.QTableWidgetSelectionRange.topRow": (),
-# class PySide2.QtWidgets.QTapAndHoldGesture:
- "PySide2.QtWidgets.QTapAndHoldGesture.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QTapAndHoldGesture.position": (),
- "PySide2.QtWidgets.QTapAndHoldGesture.setPosition": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QTapAndHoldGesture.setTimeout": ('int',),
- "PySide2.QtWidgets.QTapAndHoldGesture.timeout": (),
-# class PySide2.QtWidgets.QTapGesture:
- "PySide2.QtWidgets.QTapGesture.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QTapGesture.position": (),
- "PySide2.QtWidgets.QTapGesture.setPosition": ('PySide2.QtCore.QPointF',),
-# class PySide2.QtWidgets.QTextBrowser:
- "PySide2.QtWidgets.QTextBrowser.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QTextBrowser.backward": (),
- "PySide2.QtWidgets.QTextBrowser.backwardHistoryCount": (),
- "PySide2.QtWidgets.QTextBrowser.clearHistory": (),
- "PySide2.QtWidgets.QTextBrowser.doSetSource": ('PySide2.QtCore.QUrl', 'PySide2.QtGui.QTextDocument.ResourceType'),
- "PySide2.QtWidgets.QTextBrowser.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QTextBrowser.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QTextBrowser.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QTextBrowser.forward": (),
- "PySide2.QtWidgets.QTextBrowser.forwardHistoryCount": (),
- "PySide2.QtWidgets.QTextBrowser.historyTitle": ('int',),
- "PySide2.QtWidgets.QTextBrowser.historyUrl": ('int',),
- "PySide2.QtWidgets.QTextBrowser.home": (),
- "PySide2.QtWidgets.QTextBrowser.isBackwardAvailable": (),
- "PySide2.QtWidgets.QTextBrowser.isForwardAvailable": (),
- "PySide2.QtWidgets.QTextBrowser.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QTextBrowser.loadResource": ('int', 'PySide2.QtCore.QUrl'),
- "PySide2.QtWidgets.QTextBrowser.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTextBrowser.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTextBrowser.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTextBrowser.openExternalLinks": (),
- "PySide2.QtWidgets.QTextBrowser.openLinks": (),
- "PySide2.QtWidgets.QTextBrowser.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QTextBrowser.reload": (),
- "PySide2.QtWidgets.QTextBrowser.searchPaths": (),
- "PySide2.QtWidgets.QTextBrowser.setOpenExternalLinks": ('bool',),
- "PySide2.QtWidgets.QTextBrowser.setOpenLinks": ('bool',),
- "PySide2.QtWidgets.QTextBrowser.setSearchPaths": ('typing.Sequence[str]',),
- "PySide2.QtWidgets.QTextBrowser.setSource": [('PySide2.QtCore.QUrl',), ('PySide2.QtCore.QUrl', 'PySide2.QtGui.QTextDocument.ResourceType')],
- "PySide2.QtWidgets.QTextBrowser.source": (),
- "PySide2.QtWidgets.QTextBrowser.sourceType": (),
-# class PySide2.QtWidgets.QTextEdit:
-# class PySide2.QtWidgets.QTextEdit.AutoFormatting:
-# class PySide2.QtWidgets.QTextEdit.AutoFormattingFlag:
-# class PySide2.QtWidgets.QTextEdit.ExtraSelection:
- "PySide2.QtWidgets.QTextEdit.ExtraSelection.__init__": [(), ('PySide2.QtWidgets.QTextEdit.ExtraSelection',)],
- "PySide2.QtWidgets.QTextEdit.ExtraSelection.__copy__": (),
-# class PySide2.QtWidgets.QTextEdit.LineWrapMode:
- "PySide2.QtWidgets.QTextEdit.__init__": [('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QTextEdit.acceptRichText": (),
- "PySide2.QtWidgets.QTextEdit.alignment": (),
- "PySide2.QtWidgets.QTextEdit.anchorAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QTextEdit.append": ('str',),
- "PySide2.QtWidgets.QTextEdit.autoFormatting": (),
- "PySide2.QtWidgets.QTextEdit.canInsertFromMimeData": ('PySide2.QtCore.QMimeData',),
- "PySide2.QtWidgets.QTextEdit.canPaste": (),
- "PySide2.QtWidgets.QTextEdit.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QTextEdit.clear": (),
- "PySide2.QtWidgets.QTextEdit.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QTextEdit.copy": (),
- "PySide2.QtWidgets.QTextEdit.createMimeDataFromSelection": (),
- "PySide2.QtWidgets.QTextEdit.createStandardContextMenu": [(), ('PySide2.QtCore.QPoint',)],
- "PySide2.QtWidgets.QTextEdit.currentCharFormat": (),
- "PySide2.QtWidgets.QTextEdit.currentFont": (),
- "PySide2.QtWidgets.QTextEdit.cursorForPosition": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QTextEdit.cursorRect": [(), ('PySide2.QtGui.QTextCursor',)],
- "PySide2.QtWidgets.QTextEdit.cursorWidth": (),
- "PySide2.QtWidgets.QTextEdit.cut": (),
- "PySide2.QtWidgets.QTextEdit.doSetTextCursor": ('PySide2.QtGui.QTextCursor',),
- "PySide2.QtWidgets.QTextEdit.document": (),
- "PySide2.QtWidgets.QTextEdit.documentTitle": (),
- "PySide2.QtWidgets.QTextEdit.dragEnterEvent": ('PySide2.QtGui.QDragEnterEvent',),
- "PySide2.QtWidgets.QTextEdit.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtWidgets.QTextEdit.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtWidgets.QTextEdit.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QTextEdit.ensureCursorVisible": (),
- "PySide2.QtWidgets.QTextEdit.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QTextEdit.extraSelections": (),
- "PySide2.QtWidgets.QTextEdit.find": [('PySide2.QtCore.QRegExp', 'PySide2.QtGui.QTextDocument.FindFlags'), ('PySide2.QtCore.QRegularExpression', 'PySide2.QtGui.QTextDocument.FindFlags'), ('str', 'PySide2.QtGui.QTextDocument.FindFlags')],
- "PySide2.QtWidgets.QTextEdit.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QTextEdit.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QTextEdit.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QTextEdit.fontFamily": (),
- "PySide2.QtWidgets.QTextEdit.fontItalic": (),
- "PySide2.QtWidgets.QTextEdit.fontPointSize": (),
- "PySide2.QtWidgets.QTextEdit.fontUnderline": (),
- "PySide2.QtWidgets.QTextEdit.fontWeight": (),
- "PySide2.QtWidgets.QTextEdit.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QTextEdit.inputMethodQuery": [('PySide2.QtCore.Qt.InputMethodQuery',), ('PySide2.QtCore.Qt.InputMethodQuery', 'typing.Any')],
- "PySide2.QtWidgets.QTextEdit.insertFromMimeData": ('PySide2.QtCore.QMimeData',),
- "PySide2.QtWidgets.QTextEdit.insertHtml": ('str',),
- "PySide2.QtWidgets.QTextEdit.insertPlainText": ('str',),
- "PySide2.QtWidgets.QTextEdit.isReadOnly": (),
- "PySide2.QtWidgets.QTextEdit.isUndoRedoEnabled": (),
- "PySide2.QtWidgets.QTextEdit.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QTextEdit.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QTextEdit.lineWrapColumnOrWidth": (),
- "PySide2.QtWidgets.QTextEdit.lineWrapMode": (),
- "PySide2.QtWidgets.QTextEdit.loadResource": ('int', 'PySide2.QtCore.QUrl'),
- "PySide2.QtWidgets.QTextEdit.mergeCurrentCharFormat": ('PySide2.QtGui.QTextCharFormat',),
- "PySide2.QtWidgets.QTextEdit.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTextEdit.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTextEdit.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTextEdit.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTextEdit.moveCursor": ('PySide2.QtGui.QTextCursor.MoveOperation', 'PySide2.QtGui.QTextCursor.MoveMode'),
- "PySide2.QtWidgets.QTextEdit.overwriteMode": (),
- "PySide2.QtWidgets.QTextEdit.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QTextEdit.paste": (),
- "PySide2.QtWidgets.QTextEdit.placeholderText": (),
- "PySide2.QtWidgets.QTextEdit.print_": ('PySide2.QtGui.QPagedPaintDevice',),
- "PySide2.QtWidgets.QTextEdit.redo": (),
- "PySide2.QtWidgets.QTextEdit.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QTextEdit.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QTextEdit.scrollToAnchor": ('str',),
- "PySide2.QtWidgets.QTextEdit.selectAll": (),
- "PySide2.QtWidgets.QTextEdit.setAcceptRichText": ('bool',),
- "PySide2.QtWidgets.QTextEdit.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QTextEdit.setAutoFormatting": ('PySide2.QtWidgets.QTextEdit.AutoFormatting',),
- "PySide2.QtWidgets.QTextEdit.setCurrentCharFormat": ('PySide2.QtGui.QTextCharFormat',),
- "PySide2.QtWidgets.QTextEdit.setCurrentFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QTextEdit.setCursorWidth": ('int',),
- "PySide2.QtWidgets.QTextEdit.setDocument": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtWidgets.QTextEdit.setDocumentTitle": ('str',),
- "PySide2.QtWidgets.QTextEdit.setExtraSelections": ('typing.Sequence[PySide2.QtWidgets.QTextEdit.ExtraSelection]',),
- "PySide2.QtWidgets.QTextEdit.setFontFamily": ('str',),
- "PySide2.QtWidgets.QTextEdit.setFontItalic": ('bool',),
- "PySide2.QtWidgets.QTextEdit.setFontPointSize": ('float',),
- "PySide2.QtWidgets.QTextEdit.setFontUnderline": ('bool',),
- "PySide2.QtWidgets.QTextEdit.setFontWeight": ('int',),
- "PySide2.QtWidgets.QTextEdit.setHtml": ('str',),
- "PySide2.QtWidgets.QTextEdit.setLineWrapColumnOrWidth": ('int',),
- "PySide2.QtWidgets.QTextEdit.setLineWrapMode": ('PySide2.QtWidgets.QTextEdit.LineWrapMode',),
- "PySide2.QtWidgets.QTextEdit.setMarkdown": ('str',),
- "PySide2.QtWidgets.QTextEdit.setOverwriteMode": ('bool',),
- "PySide2.QtWidgets.QTextEdit.setPlaceholderText": ('str',),
- "PySide2.QtWidgets.QTextEdit.setPlainText": ('str',),
- "PySide2.QtWidgets.QTextEdit.setReadOnly": ('bool',),
- "PySide2.QtWidgets.QTextEdit.setTabChangesFocus": ('bool',),
- "PySide2.QtWidgets.QTextEdit.setTabStopDistance": ('float',),
- "PySide2.QtWidgets.QTextEdit.setTabStopWidth": ('int',),
- "PySide2.QtWidgets.QTextEdit.setText": ('str',),
- "PySide2.QtWidgets.QTextEdit.setTextBackgroundColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QTextEdit.setTextColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QTextEdit.setTextCursor": ('PySide2.QtGui.QTextCursor',),
- "PySide2.QtWidgets.QTextEdit.setTextInteractionFlags": ('PySide2.QtCore.Qt.TextInteractionFlags',),
- "PySide2.QtWidgets.QTextEdit.setUndoRedoEnabled": ('bool',),
- "PySide2.QtWidgets.QTextEdit.setWordWrapMode": ('PySide2.QtGui.QTextOption.WrapMode',),
- "PySide2.QtWidgets.QTextEdit.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QTextEdit.tabChangesFocus": (),
- "PySide2.QtWidgets.QTextEdit.tabStopDistance": (),
- "PySide2.QtWidgets.QTextEdit.tabStopWidth": (),
- "PySide2.QtWidgets.QTextEdit.textBackgroundColor": (),
- "PySide2.QtWidgets.QTextEdit.textColor": (),
- "PySide2.QtWidgets.QTextEdit.textCursor": (),
- "PySide2.QtWidgets.QTextEdit.textInteractionFlags": (),
- "PySide2.QtWidgets.QTextEdit.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QTextEdit.toHtml": (),
- "PySide2.QtWidgets.QTextEdit.toMarkdown": ('PySide2.QtGui.QTextDocument.MarkdownFeatures',),
- "PySide2.QtWidgets.QTextEdit.toPlainText": (),
- "PySide2.QtWidgets.QTextEdit.undo": (),
- "PySide2.QtWidgets.QTextEdit.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
- "PySide2.QtWidgets.QTextEdit.wordWrapMode": (),
- "PySide2.QtWidgets.QTextEdit.zoomIn": ('int',),
- "PySide2.QtWidgets.QTextEdit.zoomInF": ('float',),
- "PySide2.QtWidgets.QTextEdit.zoomOut": ('int',),
-# class PySide2.QtWidgets.QTileRules:
- "PySide2.QtWidgets.QTileRules.__init__": [('PySide2.QtCore.Qt.TileRule',), ('PySide2.QtCore.Qt.TileRule', 'PySide2.QtCore.Qt.TileRule'), ('PySide2.QtWidgets.QTileRules',)],
- "PySide2.QtWidgets.QTileRules.__copy__": (),
-# class PySide2.QtWidgets.QTimeEdit:
- "PySide2.QtWidgets.QTimeEdit.__init__": [('PySide2.QtCore.QTime', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
-# class PySide2.QtWidgets.QToolBar:
- "PySide2.QtWidgets.QToolBar.__init__": [('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QToolBar.actionAt": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtWidgets.QToolBar.actionEvent": ('PySide2.QtGui.QActionEvent',),
- "PySide2.QtWidgets.QToolBar.actionGeometry": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QToolBar.addAction": [('PySide2.QtGui.QIcon', 'str'), ('PySide2.QtGui.QIcon', 'str', 'PySide2.QtCore.QObject', 'str'), ('PySide2.QtWidgets.QAction',), ('str',), ('str', 'PySide2.QtCore.QObject', 'str')],
- "PySide2.QtWidgets.QToolBar.addSeparator": (),
- "PySide2.QtWidgets.QToolBar.addWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QToolBar.allowedAreas": (),
- "PySide2.QtWidgets.QToolBar.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QToolBar.clear": (),
- "PySide2.QtWidgets.QToolBar.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QToolBar.iconSize": (),
- "PySide2.QtWidgets.QToolBar.initStyleOption": ('PySide2.QtWidgets.QStyleOptionToolBar',),
- "PySide2.QtWidgets.QToolBar.insertSeparator": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QToolBar.insertWidget": ('PySide2.QtWidgets.QAction', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QToolBar.isAreaAllowed": ('PySide2.QtCore.Qt.ToolBarArea',),
- "PySide2.QtWidgets.QToolBar.isFloatable": (),
- "PySide2.QtWidgets.QToolBar.isFloating": (),
- "PySide2.QtWidgets.QToolBar.isMovable": (),
- "PySide2.QtWidgets.QToolBar.orientation": (),
- "PySide2.QtWidgets.QToolBar.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QToolBar.setAllowedAreas": ('PySide2.QtCore.Qt.ToolBarAreas',),
- "PySide2.QtWidgets.QToolBar.setFloatable": ('bool',),
- "PySide2.QtWidgets.QToolBar.setIconSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QToolBar.setMovable": ('bool',),
- "PySide2.QtWidgets.QToolBar.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtWidgets.QToolBar.setToolButtonStyle": ('PySide2.QtCore.Qt.ToolButtonStyle',),
- "PySide2.QtWidgets.QToolBar.toggleViewAction": (),
- "PySide2.QtWidgets.QToolBar.toolButtonStyle": (),
- "PySide2.QtWidgets.QToolBar.widgetForAction": ('PySide2.QtWidgets.QAction',),
-# class PySide2.QtWidgets.QToolBox:
- "PySide2.QtWidgets.QToolBox.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QToolBox.addItem": [('PySide2.QtWidgets.QWidget', 'PySide2.QtGui.QIcon', 'str'), ('PySide2.QtWidgets.QWidget', 'str')],
- "PySide2.QtWidgets.QToolBox.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QToolBox.count": (),
- "PySide2.QtWidgets.QToolBox.currentIndex": (),
- "PySide2.QtWidgets.QToolBox.currentWidget": (),
- "PySide2.QtWidgets.QToolBox.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QToolBox.indexOf": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QToolBox.insertItem": [('int', 'PySide2.QtWidgets.QWidget', 'PySide2.QtGui.QIcon', 'str'), ('int', 'PySide2.QtWidgets.QWidget', 'str')],
- "PySide2.QtWidgets.QToolBox.isItemEnabled": ('int',),
- "PySide2.QtWidgets.QToolBox.itemIcon": ('int',),
- "PySide2.QtWidgets.QToolBox.itemInserted": ('int',),
- "PySide2.QtWidgets.QToolBox.itemRemoved": ('int',),
- "PySide2.QtWidgets.QToolBox.itemText": ('int',),
- "PySide2.QtWidgets.QToolBox.itemToolTip": ('int',),
- "PySide2.QtWidgets.QToolBox.removeItem": ('int',),
- "PySide2.QtWidgets.QToolBox.setCurrentIndex": ('int',),
- "PySide2.QtWidgets.QToolBox.setCurrentWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QToolBox.setItemEnabled": ('int', 'bool'),
- "PySide2.QtWidgets.QToolBox.setItemIcon": ('int', 'PySide2.QtGui.QIcon'),
- "PySide2.QtWidgets.QToolBox.setItemText": ('int', 'str'),
- "PySide2.QtWidgets.QToolBox.setItemToolTip": ('int', 'str'),
- "PySide2.QtWidgets.QToolBox.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QToolBox.widget": ('int',),
-# class PySide2.QtWidgets.QToolButton:
-# class PySide2.QtWidgets.QToolButton.ToolButtonPopupMode:
- "PySide2.QtWidgets.QToolButton.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QToolButton.actionEvent": ('PySide2.QtGui.QActionEvent',),
- "PySide2.QtWidgets.QToolButton.arrowType": (),
- "PySide2.QtWidgets.QToolButton.autoRaise": (),
- "PySide2.QtWidgets.QToolButton.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QToolButton.defaultAction": (),
- "PySide2.QtWidgets.QToolButton.enterEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QToolButton.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QToolButton.hitButton": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QToolButton.initStyleOption": ('PySide2.QtWidgets.QStyleOptionToolButton',),
- "PySide2.QtWidgets.QToolButton.leaveEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QToolButton.menu": (),
- "PySide2.QtWidgets.QToolButton.minimumSizeHint": (),
- "PySide2.QtWidgets.QToolButton.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QToolButton.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QToolButton.nextCheckState": (),
- "PySide2.QtWidgets.QToolButton.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QToolButton.popupMode": (),
- "PySide2.QtWidgets.QToolButton.setArrowType": ('PySide2.QtCore.Qt.ArrowType',),
- "PySide2.QtWidgets.QToolButton.setAutoRaise": ('bool',),
- "PySide2.QtWidgets.QToolButton.setDefaultAction": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QToolButton.setMenu": ('PySide2.QtWidgets.QMenu',),
- "PySide2.QtWidgets.QToolButton.setPopupMode": ('PySide2.QtWidgets.QToolButton.ToolButtonPopupMode',),
- "PySide2.QtWidgets.QToolButton.setToolButtonStyle": ('PySide2.QtCore.Qt.ToolButtonStyle',),
- "PySide2.QtWidgets.QToolButton.showMenu": (),
- "PySide2.QtWidgets.QToolButton.sizeHint": (),
- "PySide2.QtWidgets.QToolButton.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QToolButton.toolButtonStyle": (),
-# class PySide2.QtWidgets.QToolTip:
- "PySide2.QtWidgets.QToolTip.font": (),
- "PySide2.QtWidgets.QToolTip.hideText": (),
- "PySide2.QtWidgets.QToolTip.isVisible": (),
- "PySide2.QtWidgets.QToolTip.palette": (),
- "PySide2.QtWidgets.QToolTip.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QToolTip.setPalette": ('PySide2.QtGui.QPalette',),
- "PySide2.QtWidgets.QToolTip.showText": [('PySide2.QtCore.QPoint', 'str', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtCore.QPoint', 'str', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QRect'), ('PySide2.QtCore.QPoint', 'str', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QRect', 'int')],
- "PySide2.QtWidgets.QToolTip.text": (),
-# class PySide2.QtWidgets.QTreeView:
- "PySide2.QtWidgets.QTreeView.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QTreeView.allColumnsShowFocus": (),
- "PySide2.QtWidgets.QTreeView.autoExpandDelay": (),
- "PySide2.QtWidgets.QTreeView.collapse": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeView.collapseAll": (),
- "PySide2.QtWidgets.QTreeView.columnAt": ('int',),
- "PySide2.QtWidgets.QTreeView.columnCountChanged": ('int', 'int'),
- "PySide2.QtWidgets.QTreeView.columnMoved": (),
- "PySide2.QtWidgets.QTreeView.columnResized": ('int', 'int', 'int'),
- "PySide2.QtWidgets.QTreeView.columnViewportPosition": ('int',),
- "PySide2.QtWidgets.QTreeView.columnWidth": ('int',),
- "PySide2.QtWidgets.QTreeView.currentChanged": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QTreeView.dataChanged": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex', 'typing.List[int]'),
- "PySide2.QtWidgets.QTreeView.doItemsLayout": (),
- "PySide2.QtWidgets.QTreeView.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtWidgets.QTreeView.drawBranches": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRect', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QTreeView.drawRow": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QTreeView.drawTree": ('PySide2.QtGui.QPainter', 'PySide2.QtGui.QRegion'),
- "PySide2.QtWidgets.QTreeView.expand": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeView.expandAll": (),
- "PySide2.QtWidgets.QTreeView.expandRecursively": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtWidgets.QTreeView.expandToDepth": ('int',),
- "PySide2.QtWidgets.QTreeView.expandsOnDoubleClick": (),
- "PySide2.QtWidgets.QTreeView.header": (),
- "PySide2.QtWidgets.QTreeView.hideColumn": ('int',),
- "PySide2.QtWidgets.QTreeView.horizontalOffset": (),
- "PySide2.QtWidgets.QTreeView.horizontalScrollbarAction": ('int',),
- "PySide2.QtWidgets.QTreeView.indentation": (),
- "PySide2.QtWidgets.QTreeView.indexAbove": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeView.indexAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QTreeView.indexBelow": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeView.indexRowSizeHint": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeView.isAnimated": (),
- "PySide2.QtWidgets.QTreeView.isColumnHidden": ('int',),
- "PySide2.QtWidgets.QTreeView.isExpanded": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeView.isFirstColumnSpanned": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QTreeView.isHeaderHidden": (),
- "PySide2.QtWidgets.QTreeView.isIndexHidden": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeView.isRowHidden": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QTreeView.isSortingEnabled": (),
- "PySide2.QtWidgets.QTreeView.itemsExpandable": (),
- "PySide2.QtWidgets.QTreeView.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QTreeView.keyboardSearch": ('str',),
- "PySide2.QtWidgets.QTreeView.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTreeView.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTreeView.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTreeView.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTreeView.moveCursor": ('PySide2.QtWidgets.QAbstractItemView.CursorAction', 'PySide2.QtCore.Qt.KeyboardModifiers'),
- "PySide2.QtWidgets.QTreeView.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QTreeView.reexpand": (),
- "PySide2.QtWidgets.QTreeView.reset": (),
- "PySide2.QtWidgets.QTreeView.resetIndentation": (),
- "PySide2.QtWidgets.QTreeView.resizeColumnToContents": ('int',),
- "PySide2.QtWidgets.QTreeView.rootIsDecorated": (),
- "PySide2.QtWidgets.QTreeView.rowHeight": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeView.rowsAboutToBeRemoved": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QTreeView.rowsInserted": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QTreeView.rowsRemoved": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QTreeView.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QTreeView.scrollTo": ('PySide2.QtCore.QModelIndex', 'PySide2.QtWidgets.QAbstractItemView.ScrollHint'),
- "PySide2.QtWidgets.QTreeView.selectAll": (),
- "PySide2.QtWidgets.QTreeView.selectedIndexes": (),
- "PySide2.QtWidgets.QTreeView.selectionChanged": ('PySide2.QtCore.QItemSelection', 'PySide2.QtCore.QItemSelection'),
- "PySide2.QtWidgets.QTreeView.setAllColumnsShowFocus": ('bool',),
- "PySide2.QtWidgets.QTreeView.setAnimated": ('bool',),
- "PySide2.QtWidgets.QTreeView.setAutoExpandDelay": ('int',),
- "PySide2.QtWidgets.QTreeView.setColumnHidden": ('int', 'bool'),
- "PySide2.QtWidgets.QTreeView.setColumnWidth": ('int', 'int'),
- "PySide2.QtWidgets.QTreeView.setExpanded": ('PySide2.QtCore.QModelIndex', 'bool'),
- "PySide2.QtWidgets.QTreeView.setExpandsOnDoubleClick": ('bool',),
- "PySide2.QtWidgets.QTreeView.setFirstColumnSpanned": ('int', 'PySide2.QtCore.QModelIndex', 'bool'),
- "PySide2.QtWidgets.QTreeView.setHeader": ('PySide2.QtWidgets.QHeaderView',),
- "PySide2.QtWidgets.QTreeView.setHeaderHidden": ('bool',),
- "PySide2.QtWidgets.QTreeView.setIndentation": ('int',),
- "PySide2.QtWidgets.QTreeView.setItemsExpandable": ('bool',),
- "PySide2.QtWidgets.QTreeView.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QTreeView.setRootIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeView.setRootIsDecorated": ('bool',),
- "PySide2.QtWidgets.QTreeView.setRowHidden": ('int', 'PySide2.QtCore.QModelIndex', 'bool'),
- "PySide2.QtWidgets.QTreeView.setSelection": ('PySide2.QtCore.QRect', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags'),
- "PySide2.QtWidgets.QTreeView.setSelectionModel": ('PySide2.QtCore.QItemSelectionModel',),
- "PySide2.QtWidgets.QTreeView.setSortingEnabled": ('bool',),
- "PySide2.QtWidgets.QTreeView.setTreePosition": ('int',),
- "PySide2.QtWidgets.QTreeView.setUniformRowHeights": ('bool',),
- "PySide2.QtWidgets.QTreeView.setWordWrap": ('bool',),
- "PySide2.QtWidgets.QTreeView.showColumn": ('int',),
- "PySide2.QtWidgets.QTreeView.sizeHintForColumn": ('int',),
- "PySide2.QtWidgets.QTreeView.sortByColumn": [('int',), ('int', 'PySide2.QtCore.Qt.SortOrder')],
- "PySide2.QtWidgets.QTreeView.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QTreeView.treePosition": (),
- "PySide2.QtWidgets.QTreeView.uniformRowHeights": (),
- "PySide2.QtWidgets.QTreeView.updateGeometries": (),
- "PySide2.QtWidgets.QTreeView.verticalOffset": (),
- "PySide2.QtWidgets.QTreeView.verticalScrollbarValueChanged": ('int',),
- "PySide2.QtWidgets.QTreeView.viewportEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QTreeView.viewportSizeHint": (),
- "PySide2.QtWidgets.QTreeView.visualRect": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeView.visualRegionForSelection": ('PySide2.QtCore.QItemSelection',),
- "PySide2.QtWidgets.QTreeView.wordWrap": (),
-# class PySide2.QtWidgets.QTreeWidget:
- "PySide2.QtWidgets.QTreeWidget.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QTreeWidget.addTopLevelItem": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.addTopLevelItems": ('typing.Sequence[PySide2.QtWidgets.QTreeWidgetItem]',),
- "PySide2.QtWidgets.QTreeWidget.clear": (),
- "PySide2.QtWidgets.QTreeWidget.closePersistentEditor": [('PySide2.QtCore.QModelIndex',), ('PySide2.QtWidgets.QTreeWidgetItem', 'int')],
- "PySide2.QtWidgets.QTreeWidget.collapseItem": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.columnCount": (),
- "PySide2.QtWidgets.QTreeWidget.currentColumn": (),
- "PySide2.QtWidgets.QTreeWidget.currentItem": (),
- "PySide2.QtWidgets.QTreeWidget.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QTreeWidget.dropMimeData": ('PySide2.QtWidgets.QTreeWidgetItem', 'int', 'PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction'),
- "PySide2.QtWidgets.QTreeWidget.editItem": ('PySide2.QtWidgets.QTreeWidgetItem', 'int'),
- "PySide2.QtWidgets.QTreeWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QTreeWidget.expandItem": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.findItems": ('str', 'PySide2.QtCore.Qt.MatchFlags', 'int'),
- "PySide2.QtWidgets.QTreeWidget.headerItem": (),
- "PySide2.QtWidgets.QTreeWidget.indexFromItem": ('PySide2.QtWidgets.QTreeWidgetItem', 'int'),
- "PySide2.QtWidgets.QTreeWidget.indexOfTopLevelItem": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.insertTopLevelItem": ('int', 'PySide2.QtWidgets.QTreeWidgetItem'),
- "PySide2.QtWidgets.QTreeWidget.insertTopLevelItems": ('int', 'typing.Sequence[PySide2.QtWidgets.QTreeWidgetItem]'),
- "PySide2.QtWidgets.QTreeWidget.invisibleRootItem": (),
- "PySide2.QtWidgets.QTreeWidget.isFirstItemColumnSpanned": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.isItemExpanded": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.isItemHidden": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.isItemSelected": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.isPersistentEditorOpen": [('PySide2.QtCore.QModelIndex',), ('PySide2.QtWidgets.QTreeWidgetItem', 'int')],
- "PySide2.QtWidgets.QTreeWidget.itemAbove": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.itemAt": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtWidgets.QTreeWidget.itemBelow": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.itemFromIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeWidget.itemWidget": ('PySide2.QtWidgets.QTreeWidgetItem', 'int'),
- "PySide2.QtWidgets.QTreeWidget.items": ('PySide2.QtCore.QMimeData',),
- "PySide2.QtWidgets.QTreeWidget.mimeData": ('typing.Sequence[PySide2.QtWidgets.QTreeWidgetItem]',),
- "PySide2.QtWidgets.QTreeWidget.mimeTypes": (),
- "PySide2.QtWidgets.QTreeWidget.openPersistentEditor": [('PySide2.QtCore.QModelIndex',), ('PySide2.QtWidgets.QTreeWidgetItem', 'int')],
- "PySide2.QtWidgets.QTreeWidget.removeItemWidget": ('PySide2.QtWidgets.QTreeWidgetItem', 'int'),
- "PySide2.QtWidgets.QTreeWidget.scrollToItem": ('PySide2.QtWidgets.QTreeWidgetItem', 'PySide2.QtWidgets.QAbstractItemView.ScrollHint'),
- "PySide2.QtWidgets.QTreeWidget.selectedItems": (),
- "PySide2.QtWidgets.QTreeWidget.setColumnCount": ('int',),
- "PySide2.QtWidgets.QTreeWidget.setCurrentItem": [('PySide2.QtWidgets.QTreeWidgetItem',), ('PySide2.QtWidgets.QTreeWidgetItem', 'int'), ('PySide2.QtWidgets.QTreeWidgetItem', 'int', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags')],
- "PySide2.QtWidgets.QTreeWidget.setFirstItemColumnSpanned": ('PySide2.QtWidgets.QTreeWidgetItem', 'bool'),
- "PySide2.QtWidgets.QTreeWidget.setHeaderItem": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.setHeaderLabel": ('str',),
- "PySide2.QtWidgets.QTreeWidget.setHeaderLabels": ('typing.Sequence[str]',),
- "PySide2.QtWidgets.QTreeWidget.setItemExpanded": ('PySide2.QtWidgets.QTreeWidgetItem', 'bool'),
- "PySide2.QtWidgets.QTreeWidget.setItemHidden": ('PySide2.QtWidgets.QTreeWidgetItem', 'bool'),
- "PySide2.QtWidgets.QTreeWidget.setItemSelected": ('PySide2.QtWidgets.QTreeWidgetItem', 'bool'),
- "PySide2.QtWidgets.QTreeWidget.setItemWidget": ('PySide2.QtWidgets.QTreeWidgetItem', 'int', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QTreeWidget.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QTreeWidget.setSelectionModel": ('PySide2.QtCore.QItemSelectionModel',),
- "PySide2.QtWidgets.QTreeWidget.sortColumn": (),
- "PySide2.QtWidgets.QTreeWidget.sortItems": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtWidgets.QTreeWidget.supportedDropActions": (),
- "PySide2.QtWidgets.QTreeWidget.takeTopLevelItem": ('int',),
- "PySide2.QtWidgets.QTreeWidget.topLevelItem": ('int',),
- "PySide2.QtWidgets.QTreeWidget.topLevelItemCount": (),
- "PySide2.QtWidgets.QTreeWidget.visualItemRect": ('PySide2.QtWidgets.QTreeWidgetItem',),
-# class PySide2.QtWidgets.QTreeWidgetItem:
-# class PySide2.QtWidgets.QTreeWidgetItem.ChildIndicatorPolicy:
-# class PySide2.QtWidgets.QTreeWidgetItem.ItemType:
- "PySide2.QtWidgets.QTreeWidgetItem.__init__": [('PySide2.QtWidgets.QTreeWidget', 'PySide2.QtWidgets.QTreeWidgetItem', 'int'), ('PySide2.QtWidgets.QTreeWidget', 'int'), ('PySide2.QtWidgets.QTreeWidget', 'typing.Sequence[str]', 'int'), ('PySide2.QtWidgets.QTreeWidgetItem',), ('PySide2.QtWidgets.QTreeWidgetItem', 'PySide2.QtWidgets.QTreeWidgetItem', 'int'), ('PySide2.QtWidgets.QTreeWidgetItem', 'int'), ('PySide2.QtWidgets.QTreeWidgetItem', 'typing.Sequence[str]', 'int'), ('int',), ('typing.Sequence[str]', 'int')],
- "PySide2.QtWidgets.QTreeWidgetItem.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QTreeWidgetItem.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QTreeWidgetItem.addChild": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidgetItem.addChildren": ('typing.Sequence[PySide2.QtWidgets.QTreeWidgetItem]',),
- "PySide2.QtWidgets.QTreeWidgetItem.background": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.backgroundColor": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.checkState": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.child": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.childCount": (),
- "PySide2.QtWidgets.QTreeWidgetItem.childIndicatorPolicy": (),
- "PySide2.QtWidgets.QTreeWidgetItem.clone": (),
- "PySide2.QtWidgets.QTreeWidgetItem.columnCount": (),
- "PySide2.QtWidgets.QTreeWidgetItem.data": ('int', 'int'),
- "PySide2.QtWidgets.QTreeWidgetItem.emitDataChanged": (),
- "PySide2.QtWidgets.QTreeWidgetItem.flags": (),
- "PySide2.QtWidgets.QTreeWidgetItem.font": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.foreground": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.icon": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.indexOfChild": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidgetItem.insertChild": ('int', 'PySide2.QtWidgets.QTreeWidgetItem'),
- "PySide2.QtWidgets.QTreeWidgetItem.insertChildren": ('int', 'typing.Sequence[PySide2.QtWidgets.QTreeWidgetItem]'),
- "PySide2.QtWidgets.QTreeWidgetItem.isDisabled": (),
- "PySide2.QtWidgets.QTreeWidgetItem.isExpanded": (),
- "PySide2.QtWidgets.QTreeWidgetItem.isFirstColumnSpanned": (),
- "PySide2.QtWidgets.QTreeWidgetItem.isHidden": (),
- "PySide2.QtWidgets.QTreeWidgetItem.isSelected": (),
- "PySide2.QtWidgets.QTreeWidgetItem.parent": (),
- "PySide2.QtWidgets.QTreeWidgetItem.read": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QTreeWidgetItem.removeChild": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidgetItem.setBackground": ('int', 'PySide2.QtGui.QBrush'),
- "PySide2.QtWidgets.QTreeWidgetItem.setBackgroundColor": ('int', 'PySide2.QtGui.QColor'),
- "PySide2.QtWidgets.QTreeWidgetItem.setCheckState": ('int', 'PySide2.QtCore.Qt.CheckState'),
- "PySide2.QtWidgets.QTreeWidgetItem.setChildIndicatorPolicy": ('PySide2.QtWidgets.QTreeWidgetItem.ChildIndicatorPolicy',),
- "PySide2.QtWidgets.QTreeWidgetItem.setData": ('int', 'int', 'typing.Any'),
- "PySide2.QtWidgets.QTreeWidgetItem.setDisabled": ('bool',),
- "PySide2.QtWidgets.QTreeWidgetItem.setExpanded": ('bool',),
- "PySide2.QtWidgets.QTreeWidgetItem.setFirstColumnSpanned": ('bool',),
- "PySide2.QtWidgets.QTreeWidgetItem.setFlags": ('PySide2.QtCore.Qt.ItemFlags',),
- "PySide2.QtWidgets.QTreeWidgetItem.setFont": ('int', 'PySide2.QtGui.QFont'),
- "PySide2.QtWidgets.QTreeWidgetItem.setForeground": ('int', 'PySide2.QtGui.QBrush'),
- "PySide2.QtWidgets.QTreeWidgetItem.setHidden": ('bool',),
- "PySide2.QtWidgets.QTreeWidgetItem.setIcon": ('int', 'PySide2.QtGui.QIcon'),
- "PySide2.QtWidgets.QTreeWidgetItem.setSelected": ('bool',),
- "PySide2.QtWidgets.QTreeWidgetItem.setSizeHint": ('int', 'PySide2.QtCore.QSize'),
- "PySide2.QtWidgets.QTreeWidgetItem.setStatusTip": ('int', 'str'),
- "PySide2.QtWidgets.QTreeWidgetItem.setText": ('int', 'str'),
- "PySide2.QtWidgets.QTreeWidgetItem.setTextAlignment": ('int', 'int'),
- "PySide2.QtWidgets.QTreeWidgetItem.setTextColor": ('int', 'PySide2.QtGui.QColor'),
- "PySide2.QtWidgets.QTreeWidgetItem.setToolTip": ('int', 'str'),
- "PySide2.QtWidgets.QTreeWidgetItem.setWhatsThis": ('int', 'str'),
- "PySide2.QtWidgets.QTreeWidgetItem.sizeHint": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.sortChildren": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtWidgets.QTreeWidgetItem.statusTip": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.takeChild": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.takeChildren": (),
- "PySide2.QtWidgets.QTreeWidgetItem.text": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.textAlignment": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.textColor": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.toolTip": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.treeWidget": (),
- "PySide2.QtWidgets.QTreeWidgetItem.type": (),
- "PySide2.QtWidgets.QTreeWidgetItem.whatsThis": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.write": ('PySide2.QtCore.QDataStream',),
-# class PySide2.QtWidgets.QTreeWidgetItemIterator:
-# class PySide2.QtWidgets.QTreeWidgetItemIterator.IteratorFlag:
-# class PySide2.QtWidgets.QTreeWidgetItemIterator.IteratorFlags:
- "PySide2.QtWidgets.QTreeWidgetItemIterator.__init__": [('PySide2.QtWidgets.QTreeWidget', 'PySide2.QtWidgets.QTreeWidgetItemIterator.IteratorFlags'), ('PySide2.QtWidgets.QTreeWidgetItem', 'PySide2.QtWidgets.QTreeWidgetItemIterator.IteratorFlags'), ('PySide2.QtWidgets.QTreeWidgetItemIterator',)],
- "PySide2.QtWidgets.QTreeWidgetItemIterator.__copy__": (),
- "PySide2.QtWidgets.QTreeWidgetItemIterator.__iadd__": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItemIterator.__isub__": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItemIterator.__iter__": (),
- "PySide2.QtWidgets.QTreeWidgetItemIterator.value": (),
-# class PySide2.QtWidgets.QUndoCommand:
- "PySide2.QtWidgets.QUndoCommand.__init__": [('PySide2.QtWidgets.QUndoCommand',), ('str', 'PySide2.QtWidgets.QUndoCommand')],
- "PySide2.QtWidgets.QUndoCommand.actionText": (),
- "PySide2.QtWidgets.QUndoCommand.child": ('int',),
- "PySide2.QtWidgets.QUndoCommand.childCount": (),
- "PySide2.QtWidgets.QUndoCommand.id": (),
- "PySide2.QtWidgets.QUndoCommand.isObsolete": (),
- "PySide2.QtWidgets.QUndoCommand.mergeWith": ('PySide2.QtWidgets.QUndoCommand',),
- "PySide2.QtWidgets.QUndoCommand.redo": (),
- "PySide2.QtWidgets.QUndoCommand.setObsolete": ('bool',),
- "PySide2.QtWidgets.QUndoCommand.setText": ('str',),
- "PySide2.QtWidgets.QUndoCommand.text": (),
- "PySide2.QtWidgets.QUndoCommand.undo": (),
-# class PySide2.QtWidgets.QUndoGroup:
- "PySide2.QtWidgets.QUndoGroup.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QUndoGroup.activeStack": (),
- "PySide2.QtWidgets.QUndoGroup.addStack": ('PySide2.QtWidgets.QUndoStack',),
- "PySide2.QtWidgets.QUndoGroup.canRedo": (),
- "PySide2.QtWidgets.QUndoGroup.canUndo": (),
- "PySide2.QtWidgets.QUndoGroup.createRedoAction": ('PySide2.QtCore.QObject', 'str'),
- "PySide2.QtWidgets.QUndoGroup.createUndoAction": ('PySide2.QtCore.QObject', 'str'),
- "PySide2.QtWidgets.QUndoGroup.isClean": (),
- "PySide2.QtWidgets.QUndoGroup.redo": (),
- "PySide2.QtWidgets.QUndoGroup.redoText": (),
- "PySide2.QtWidgets.QUndoGroup.removeStack": ('PySide2.QtWidgets.QUndoStack',),
- "PySide2.QtWidgets.QUndoGroup.setActiveStack": ('PySide2.QtWidgets.QUndoStack',),
- "PySide2.QtWidgets.QUndoGroup.stacks": (),
- "PySide2.QtWidgets.QUndoGroup.undo": (),
- "PySide2.QtWidgets.QUndoGroup.undoText": (),
-# class PySide2.QtWidgets.QUndoStack:
- "PySide2.QtWidgets.QUndoStack.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QUndoStack.beginMacro": ('str',),
- "PySide2.QtWidgets.QUndoStack.canRedo": (),
- "PySide2.QtWidgets.QUndoStack.canUndo": (),
- "PySide2.QtWidgets.QUndoStack.cleanIndex": (),
- "PySide2.QtWidgets.QUndoStack.clear": (),
- "PySide2.QtWidgets.QUndoStack.command": ('int',),
- "PySide2.QtWidgets.QUndoStack.count": (),
- "PySide2.QtWidgets.QUndoStack.createRedoAction": ('PySide2.QtCore.QObject', 'str'),
- "PySide2.QtWidgets.QUndoStack.createUndoAction": ('PySide2.QtCore.QObject', 'str'),
- "PySide2.QtWidgets.QUndoStack.endMacro": (),
- "PySide2.QtWidgets.QUndoStack.index": (),
- "PySide2.QtWidgets.QUndoStack.isActive": (),
- "PySide2.QtWidgets.QUndoStack.isClean": (),
- "PySide2.QtWidgets.QUndoStack.push": ('PySide2.QtWidgets.QUndoCommand',),
- "PySide2.QtWidgets.QUndoStack.redo": (),
- "PySide2.QtWidgets.QUndoStack.redoText": (),
- "PySide2.QtWidgets.QUndoStack.resetClean": (),
- "PySide2.QtWidgets.QUndoStack.setActive": ('bool',),
- "PySide2.QtWidgets.QUndoStack.setClean": (),
- "PySide2.QtWidgets.QUndoStack.setIndex": ('int',),
- "PySide2.QtWidgets.QUndoStack.setUndoLimit": ('int',),
- "PySide2.QtWidgets.QUndoStack.text": ('int',),
- "PySide2.QtWidgets.QUndoStack.undo": (),
- "PySide2.QtWidgets.QUndoStack.undoLimit": (),
- "PySide2.QtWidgets.QUndoStack.undoText": (),
-# class PySide2.QtWidgets.QUndoView:
- "PySide2.QtWidgets.QUndoView.__init__": [('PySide2.QtWidgets.QUndoGroup', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QUndoStack', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QUndoView.cleanIcon": (),
- "PySide2.QtWidgets.QUndoView.emptyLabel": (),
- "PySide2.QtWidgets.QUndoView.group": (),
- "PySide2.QtWidgets.QUndoView.setCleanIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtWidgets.QUndoView.setEmptyLabel": ('str',),
- "PySide2.QtWidgets.QUndoView.setGroup": ('PySide2.QtWidgets.QUndoGroup',),
- "PySide2.QtWidgets.QUndoView.setStack": ('PySide2.QtWidgets.QUndoStack',),
- "PySide2.QtWidgets.QUndoView.stack": (),
-# class PySide2.QtWidgets.QVBoxLayout:
- "PySide2.QtWidgets.QVBoxLayout.__init__": [(), ('PySide2.QtWidgets.QWidget',)],
-# class PySide2.QtWidgets.QWhatsThis:
- "PySide2.QtWidgets.QWhatsThis.createAction": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QWhatsThis.enterWhatsThisMode": (),
- "PySide2.QtWidgets.QWhatsThis.hideText": (),
- "PySide2.QtWidgets.QWhatsThis.inWhatsThisMode": (),
- "PySide2.QtWidgets.QWhatsThis.leaveWhatsThisMode": (),
- "PySide2.QtWidgets.QWhatsThis.showText": ('PySide2.QtCore.QPoint', 'str', 'PySide2.QtWidgets.QWidget'),
-# class PySide2.QtWidgets.QWidget:
-# class PySide2.QtWidgets.QWidget.RenderFlag:
-# class PySide2.QtWidgets.QWidget.RenderFlags:
- "PySide2.QtWidgets.QWidget.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QWidget.acceptDrops": (),
- "PySide2.QtWidgets.QWidget.accessibleDescription": (),
- "PySide2.QtWidgets.QWidget.accessibleName": (),
- "PySide2.QtWidgets.QWidget.actionEvent": ('PySide2.QtGui.QActionEvent',),
- "PySide2.QtWidgets.QWidget.actions": (),
- "PySide2.QtWidgets.QWidget.activateWindow": (),
- "PySide2.QtWidgets.QWidget.addAction": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QWidget.addActions": ('typing.Sequence[PySide2.QtWidgets.QAction]',),
- "PySide2.QtWidgets.QWidget.adjustSize": (),
- "PySide2.QtWidgets.QWidget.autoFillBackground": (),
- "PySide2.QtWidgets.QWidget.backgroundRole": (),
- "PySide2.QtWidgets.QWidget.backingStore": (),
- "PySide2.QtWidgets.QWidget.baseSize": (),
- "PySide2.QtWidgets.QWidget.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QWidget.childAt": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtWidgets.QWidget.childrenRect": (),
- "PySide2.QtWidgets.QWidget.childrenRegion": (),
- "PySide2.QtWidgets.QWidget.clearFocus": (),
- "PySide2.QtWidgets.QWidget.clearMask": (),
- "PySide2.QtWidgets.QWidget.close": (),
- "PySide2.QtWidgets.QWidget.closeEvent": ('PySide2.QtGui.QCloseEvent',),
- "PySide2.QtWidgets.QWidget.contentsMargins": (),
- "PySide2.QtWidgets.QWidget.contentsRect": (),
- "PySide2.QtWidgets.QWidget.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QWidget.contextMenuPolicy": (),
- "PySide2.QtWidgets.QWidget.create": ('int', 'bool', 'bool'),
- "PySide2.QtWidgets.QWidget.createWinId": (),
- "PySide2.QtWidgets.QWidget.createWindowContainer": ('PySide2.QtGui.QWindow', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QWidget.cursor": (),
- "PySide2.QtWidgets.QWidget.destroy": ('bool', 'bool'),
- "PySide2.QtWidgets.QWidget.devType": (),
- "PySide2.QtWidgets.QWidget.dragEnterEvent": ('PySide2.QtGui.QDragEnterEvent',),
- "PySide2.QtWidgets.QWidget.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtWidgets.QWidget.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtWidgets.QWidget.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QWidget.effectiveWinId": (),
- "PySide2.QtWidgets.QWidget.ensurePolished": (),
- "PySide2.QtWidgets.QWidget.enterEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QWidget.find": ('int',),
- "PySide2.QtWidgets.QWidget.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QWidget.focusNextChild": (),
- "PySide2.QtWidgets.QWidget.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QWidget.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QWidget.focusPolicy": (),
- "PySide2.QtWidgets.QWidget.focusPreviousChild": (),
- "PySide2.QtWidgets.QWidget.focusProxy": (),
- "PySide2.QtWidgets.QWidget.focusWidget": (),
- "PySide2.QtWidgets.QWidget.font": (),
- "PySide2.QtWidgets.QWidget.fontInfo": (),
- "PySide2.QtWidgets.QWidget.fontMetrics": (),
- "PySide2.QtWidgets.QWidget.foregroundRole": (),
- "PySide2.QtWidgets.QWidget.frameGeometry": (),
- "PySide2.QtWidgets.QWidget.frameSize": (),
- "PySide2.QtWidgets.QWidget.geometry": (),
- "PySide2.QtWidgets.QWidget.getContentsMargins": (),
- "PySide2.QtWidgets.QWidget.grab": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QWidget.grabGesture": ('PySide2.QtCore.Qt.GestureType', 'PySide2.QtCore.Qt.GestureFlags'),
- "PySide2.QtWidgets.QWidget.grabKeyboard": (),
- "PySide2.QtWidgets.QWidget.grabMouse": [(), ('PySide2.QtGui.QCursor',)],
- "PySide2.QtWidgets.QWidget.grabShortcut": ('PySide2.QtGui.QKeySequence', 'PySide2.QtCore.Qt.ShortcutContext'),
- "PySide2.QtWidgets.QWidget.graphicsEffect": (),
- "PySide2.QtWidgets.QWidget.graphicsProxyWidget": (),
- "PySide2.QtWidgets.QWidget.hasFocus": (),
- "PySide2.QtWidgets.QWidget.hasHeightForWidth": (),
- "PySide2.QtWidgets.QWidget.hasMouseTracking": (),
- "PySide2.QtWidgets.QWidget.hasTabletTracking": (),
- "PySide2.QtWidgets.QWidget.height": (),
- "PySide2.QtWidgets.QWidget.heightForWidth": ('int',),
- "PySide2.QtWidgets.QWidget.hide": (),
- "PySide2.QtWidgets.QWidget.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWidgets.QWidget.initPainter": ('PySide2.QtGui.QPainter',),
- "PySide2.QtWidgets.QWidget.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QWidget.inputMethodHints": (),
- "PySide2.QtWidgets.QWidget.inputMethodQuery": ('PySide2.QtCore.Qt.InputMethodQuery',),
- "PySide2.QtWidgets.QWidget.insertAction": ('PySide2.QtWidgets.QAction', 'PySide2.QtWidgets.QAction'),
- "PySide2.QtWidgets.QWidget.insertActions": ('PySide2.QtWidgets.QAction', 'typing.Sequence[PySide2.QtWidgets.QAction]'),
- "PySide2.QtWidgets.QWidget.internalWinId": (),
- "PySide2.QtWidgets.QWidget.isActiveWindow": (),
- "PySide2.QtWidgets.QWidget.isAncestorOf": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWidget.isEnabled": (),
- "PySide2.QtWidgets.QWidget.isEnabledTo": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWidget.isEnabledToTLW": (),
- "PySide2.QtWidgets.QWidget.isFullScreen": (),
- "PySide2.QtWidgets.QWidget.isHidden": (),
- "PySide2.QtWidgets.QWidget.isLeftToRight": (),
- "PySide2.QtWidgets.QWidget.isMaximized": (),
- "PySide2.QtWidgets.QWidget.isMinimized": (),
- "PySide2.QtWidgets.QWidget.isModal": (),
- "PySide2.QtWidgets.QWidget.isRightToLeft": (),
- "PySide2.QtWidgets.QWidget.isTopLevel": (),
- "PySide2.QtWidgets.QWidget.isVisible": (),
- "PySide2.QtWidgets.QWidget.isVisibleTo": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWidget.isWindow": (),
- "PySide2.QtWidgets.QWidget.isWindowModified": (),
- "PySide2.QtWidgets.QWidget.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QWidget.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QWidget.keyboardGrabber": (),
- "PySide2.QtWidgets.QWidget.layout": (),
- "PySide2.QtWidgets.QWidget.layoutDirection": (),
- "PySide2.QtWidgets.QWidget.leaveEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QWidget.locale": (),
- "PySide2.QtWidgets.QWidget.lower": (),
- "PySide2.QtWidgets.QWidget.mapFrom": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QPoint'),
- "PySide2.QtWidgets.QWidget.mapFromGlobal": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QWidget.mapFromParent": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QWidget.mapTo": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QPoint'),
- "PySide2.QtWidgets.QWidget.mapToGlobal": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QWidget.mapToParent": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QWidget.mask": (),
- "PySide2.QtWidgets.QWidget.maximumHeight": (),
- "PySide2.QtWidgets.QWidget.maximumSize": (),
- "PySide2.QtWidgets.QWidget.maximumWidth": (),
- "PySide2.QtWidgets.QWidget.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtWidgets.QWidget.minimumHeight": (),
- "PySide2.QtWidgets.QWidget.minimumSize": (),
- "PySide2.QtWidgets.QWidget.minimumSizeHint": (),
- "PySide2.QtWidgets.QWidget.minimumWidth": (),
- "PySide2.QtWidgets.QWidget.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QWidget.mouseGrabber": (),
- "PySide2.QtWidgets.QWidget.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QWidget.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QWidget.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QWidget.move": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtWidgets.QWidget.moveEvent": ('PySide2.QtGui.QMoveEvent',),
- "PySide2.QtWidgets.QWidget.nativeEvent": ('PySide2.QtCore.QByteArray', 'int'),
- "PySide2.QtWidgets.QWidget.nativeParentWidget": (),
- "PySide2.QtWidgets.QWidget.nextInFocusChain": (),
- "PySide2.QtWidgets.QWidget.normalGeometry": (),
- "PySide2.QtWidgets.QWidget.overrideWindowFlags": ('PySide2.QtCore.Qt.WindowFlags',),
- "PySide2.QtWidgets.QWidget.overrideWindowState": ('PySide2.QtCore.Qt.WindowStates',),
- "PySide2.QtWidgets.QWidget.paintEngine": (),
- "PySide2.QtWidgets.QWidget.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QWidget.palette": (),
- "PySide2.QtWidgets.QWidget.parentWidget": (),
- "PySide2.QtWidgets.QWidget.pos": (),
- "PySide2.QtWidgets.QWidget.previousInFocusChain": (),
- "PySide2.QtWidgets.QWidget.raise_": (),
- "PySide2.QtWidgets.QWidget.rect": (),
- "PySide2.QtWidgets.QWidget.redirected": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QWidget.releaseKeyboard": (),
- "PySide2.QtWidgets.QWidget.releaseMouse": (),
- "PySide2.QtWidgets.QWidget.releaseShortcut": ('int',),
- "PySide2.QtWidgets.QWidget.removeAction": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QWidget.render": [('PySide2.QtGui.QPaintDevice', 'PySide2.QtCore.QPoint', 'PySide2.QtGui.QRegion', 'PySide2.QtWidgets.QWidget.RenderFlags'), ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QPoint', 'PySide2.QtGui.QRegion', 'PySide2.QtWidgets.QWidget.RenderFlags')],
- "PySide2.QtWidgets.QWidget.repaint": [(), ('PySide2.QtCore.QRect',), ('PySide2.QtGui.QRegion',), ('int', 'int', 'int', 'int')],
- "PySide2.QtWidgets.QWidget.resize": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtWidgets.QWidget.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QWidget.restoreGeometry": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWidgets.QWidget.saveGeometry": (),
- "PySide2.QtWidgets.QWidget.screen": (),
- "PySide2.QtWidgets.QWidget.scroll": [('int', 'int'), ('int', 'int', 'PySide2.QtCore.QRect')],
- "PySide2.QtWidgets.QWidget.setAcceptDrops": ('bool',),
- "PySide2.QtWidgets.QWidget.setAccessibleDescription": ('str',),
- "PySide2.QtWidgets.QWidget.setAccessibleName": ('str',),
- "PySide2.QtWidgets.QWidget.setAttribute": ('PySide2.QtCore.Qt.WidgetAttribute', 'bool'),
- "PySide2.QtWidgets.QWidget.setAutoFillBackground": ('bool',),
- "PySide2.QtWidgets.QWidget.setBackgroundRole": ('PySide2.QtGui.QPalette.ColorRole',),
- "PySide2.QtWidgets.QWidget.setBaseSize": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtWidgets.QWidget.setContentsMargins": [('PySide2.QtCore.QMargins',), ('int', 'int', 'int', 'int')],
- "PySide2.QtWidgets.QWidget.setContextMenuPolicy": ('PySide2.QtCore.Qt.ContextMenuPolicy',),
- "PySide2.QtWidgets.QWidget.setCursor": ('PySide2.QtGui.QCursor',),
- "PySide2.QtWidgets.QWidget.setDisabled": ('bool',),
- "PySide2.QtWidgets.QWidget.setEnabled": ('bool',),
- "PySide2.QtWidgets.QWidget.setFixedHeight": ('int',),
- "PySide2.QtWidgets.QWidget.setFixedSize": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtWidgets.QWidget.setFixedWidth": ('int',),
- "PySide2.QtWidgets.QWidget.setFocus": [(), ('PySide2.QtCore.Qt.FocusReason',)],
- "PySide2.QtWidgets.QWidget.setFocusPolicy": ('PySide2.QtCore.Qt.FocusPolicy',),
- "PySide2.QtWidgets.QWidget.setFocusProxy": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWidget.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QWidget.setForegroundRole": ('PySide2.QtGui.QPalette.ColorRole',),
- "PySide2.QtWidgets.QWidget.setGeometry": [('PySide2.QtCore.QRect',), ('int', 'int', 'int', 'int')],
- "PySide2.QtWidgets.QWidget.setGraphicsEffect": ('PySide2.QtWidgets.QGraphicsEffect',),
- "PySide2.QtWidgets.QWidget.setHidden": ('bool',),
- "PySide2.QtWidgets.QWidget.setInputMethodHints": ('PySide2.QtCore.Qt.InputMethodHints',),
- "PySide2.QtWidgets.QWidget.setLayout": ('PySide2.QtWidgets.QLayout',),
- "PySide2.QtWidgets.QWidget.setLayoutDirection": ('PySide2.QtCore.Qt.LayoutDirection',),
- "PySide2.QtWidgets.QWidget.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtWidgets.QWidget.setMask": [('PySide2.QtGui.QBitmap',), ('PySide2.QtGui.QRegion',)],
- "PySide2.QtWidgets.QWidget.setMaximumHeight": ('int',),
- "PySide2.QtWidgets.QWidget.setMaximumSize": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtWidgets.QWidget.setMaximumWidth": ('int',),
- "PySide2.QtWidgets.QWidget.setMinimumHeight": ('int',),
- "PySide2.QtWidgets.QWidget.setMinimumSize": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtWidgets.QWidget.setMinimumWidth": ('int',),
- "PySide2.QtWidgets.QWidget.setMouseTracking": ('bool',),
- "PySide2.QtWidgets.QWidget.setPalette": ('PySide2.QtGui.QPalette',),
- "PySide2.QtWidgets.QWidget.setParent": [('PySide2.QtWidgets.QWidget',), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags')],
- "PySide2.QtWidgets.QWidget.setShortcutAutoRepeat": ('int', 'bool'),
- "PySide2.QtWidgets.QWidget.setShortcutEnabled": ('int', 'bool'),
- "PySide2.QtWidgets.QWidget.setSizeIncrement": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtWidgets.QWidget.setSizePolicy": [('PySide2.QtWidgets.QSizePolicy',), ('PySide2.QtWidgets.QSizePolicy.Policy', 'PySide2.QtWidgets.QSizePolicy.Policy')],
- "PySide2.QtWidgets.QWidget.setStatusTip": ('str',),
- "PySide2.QtWidgets.QWidget.setStyle": ('PySide2.QtWidgets.QStyle',),
- "PySide2.QtWidgets.QWidget.setStyleSheet": ('str',),
- "PySide2.QtWidgets.QWidget.setTabOrder": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QWidget.setTabletTracking": ('bool',),
- "PySide2.QtWidgets.QWidget.setToolTip": ('str',),
- "PySide2.QtWidgets.QWidget.setToolTipDuration": ('int',),
- "PySide2.QtWidgets.QWidget.setUpdatesEnabled": ('bool',),
- "PySide2.QtWidgets.QWidget.setVisible": ('bool',),
- "PySide2.QtWidgets.QWidget.setWhatsThis": ('str',),
- "PySide2.QtWidgets.QWidget.setWindowFilePath": ('str',),
- "PySide2.QtWidgets.QWidget.setWindowFlag": ('PySide2.QtCore.Qt.WindowType', 'bool'),
- "PySide2.QtWidgets.QWidget.setWindowFlags": ('PySide2.QtCore.Qt.WindowFlags',),
- "PySide2.QtWidgets.QWidget.setWindowIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtWidgets.QWidget.setWindowIconText": ('str',),
- "PySide2.QtWidgets.QWidget.setWindowModality": ('PySide2.QtCore.Qt.WindowModality',),
- "PySide2.QtWidgets.QWidget.setWindowModified": ('bool',),
- "PySide2.QtWidgets.QWidget.setWindowOpacity": ('float',),
- "PySide2.QtWidgets.QWidget.setWindowRole": ('str',),
- "PySide2.QtWidgets.QWidget.setWindowState": ('PySide2.QtCore.Qt.WindowStates',),
- "PySide2.QtWidgets.QWidget.setWindowTitle": ('str',),
- "PySide2.QtWidgets.QWidget.sharedPainter": (),
- "PySide2.QtWidgets.QWidget.show": (),
- "PySide2.QtWidgets.QWidget.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QWidget.showFullScreen": (),
- "PySide2.QtWidgets.QWidget.showMaximized": (),
- "PySide2.QtWidgets.QWidget.showMinimized": (),
- "PySide2.QtWidgets.QWidget.showNormal": (),
- "PySide2.QtWidgets.QWidget.size": (),
- "PySide2.QtWidgets.QWidget.sizeHint": (),
- "PySide2.QtWidgets.QWidget.sizeIncrement": (),
- "PySide2.QtWidgets.QWidget.sizePolicy": (),
- "PySide2.QtWidgets.QWidget.stackUnder": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWidget.statusTip": (),
- "PySide2.QtWidgets.QWidget.style": (),
- "PySide2.QtWidgets.QWidget.styleSheet": (),
- "PySide2.QtWidgets.QWidget.tabletEvent": ('PySide2.QtGui.QTabletEvent',),
- "PySide2.QtWidgets.QWidget.testAttribute": ('PySide2.QtCore.Qt.WidgetAttribute',),
- "PySide2.QtWidgets.QWidget.toolTip": (),
- "PySide2.QtWidgets.QWidget.toolTipDuration": (),
- "PySide2.QtWidgets.QWidget.topLevelWidget": (),
- "PySide2.QtWidgets.QWidget.underMouse": (),
- "PySide2.QtWidgets.QWidget.ungrabGesture": ('PySide2.QtCore.Qt.GestureType',),
- "PySide2.QtWidgets.QWidget.unsetCursor": (),
- "PySide2.QtWidgets.QWidget.unsetLayoutDirection": (),
- "PySide2.QtWidgets.QWidget.unsetLocale": (),
- "PySide2.QtWidgets.QWidget.update": [(), ('PySide2.QtCore.QRect',), ('PySide2.QtGui.QRegion',), ('int', 'int', 'int', 'int')],
- "PySide2.QtWidgets.QWidget.updateGeometry": (),
- "PySide2.QtWidgets.QWidget.updateMicroFocus": (),
- "PySide2.QtWidgets.QWidget.updatesEnabled": (),
- "PySide2.QtWidgets.QWidget.visibleRegion": (),
- "PySide2.QtWidgets.QWidget.whatsThis": (),
- "PySide2.QtWidgets.QWidget.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
- "PySide2.QtWidgets.QWidget.width": (),
- "PySide2.QtWidgets.QWidget.winId": (),
- "PySide2.QtWidgets.QWidget.window": (),
- "PySide2.QtWidgets.QWidget.windowFilePath": (),
- "PySide2.QtWidgets.QWidget.windowFlags": (),
- "PySide2.QtWidgets.QWidget.windowHandle": (),
- "PySide2.QtWidgets.QWidget.windowIcon": (),
- "PySide2.QtWidgets.QWidget.windowIconText": (),
- "PySide2.QtWidgets.QWidget.windowModality": (),
- "PySide2.QtWidgets.QWidget.windowOpacity": (),
- "PySide2.QtWidgets.QWidget.windowRole": (),
- "PySide2.QtWidgets.QWidget.windowState": (),
- "PySide2.QtWidgets.QWidget.windowTitle": (),
- "PySide2.QtWidgets.QWidget.windowType": (),
- "PySide2.QtWidgets.QWidget.x": (),
- "PySide2.QtWidgets.QWidget.y": (),
-# class PySide2.QtWidgets.QWidgetAction:
- "PySide2.QtWidgets.QWidgetAction.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QWidgetAction.createWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWidgetAction.createdWidgets": (),
- "PySide2.QtWidgets.QWidgetAction.defaultWidget": (),
- "PySide2.QtWidgets.QWidgetAction.deleteWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWidgetAction.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QWidgetAction.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QWidgetAction.releaseWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWidgetAction.requestWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWidgetAction.setDefaultWidget": ('PySide2.QtWidgets.QWidget',),
-# class PySide2.QtWidgets.QWidgetItem:
- "PySide2.QtWidgets.QWidgetItem.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWidgetItem.controlTypes": (),
- "PySide2.QtWidgets.QWidgetItem.expandingDirections": (),
- "PySide2.QtWidgets.QWidgetItem.geometry": (),
- "PySide2.QtWidgets.QWidgetItem.hasHeightForWidth": (),
- "PySide2.QtWidgets.QWidgetItem.heightForWidth": ('int',),
- "PySide2.QtWidgets.QWidgetItem.isEmpty": (),
- "PySide2.QtWidgets.QWidgetItem.maximumSize": (),
- "PySide2.QtWidgets.QWidgetItem.minimumSize": (),
- "PySide2.QtWidgets.QWidgetItem.setGeometry": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QWidgetItem.sizeHint": (),
- "PySide2.QtWidgets.QWidgetItem.widget": (),
-# class PySide2.QtWidgets.QWizard:
-# class PySide2.QtWidgets.QWizard.WizardButton:
-# class PySide2.QtWidgets.QWizard.WizardOption:
-# class PySide2.QtWidgets.QWizard.WizardOptions:
-# class PySide2.QtWidgets.QWizard.WizardPixmap:
-# class PySide2.QtWidgets.QWizard.WizardStyle:
- "PySide2.QtWidgets.QWizard.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QWizard.addPage": ('PySide2.QtWidgets.QWizardPage',),
- "PySide2.QtWidgets.QWizard.back": (),
- "PySide2.QtWidgets.QWizard.button": ('PySide2.QtWidgets.QWizard.WizardButton',),
- "PySide2.QtWidgets.QWizard.buttonText": ('PySide2.QtWidgets.QWizard.WizardButton',),
- "PySide2.QtWidgets.QWizard.cleanupPage": ('int',),
- "PySide2.QtWidgets.QWizard.currentId": (),
- "PySide2.QtWidgets.QWizard.currentPage": (),
- "PySide2.QtWidgets.QWizard.done": ('int',),
- "PySide2.QtWidgets.QWizard.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QWizard.field": ('str',),
- "PySide2.QtWidgets.QWizard.hasVisitedPage": ('int',),
- "PySide2.QtWidgets.QWizard.initializePage": ('int',),
- "PySide2.QtWidgets.QWizard.nextId": (),
- "PySide2.QtWidgets.QWizard.options": (),
- "PySide2.QtWidgets.QWizard.page": ('int',),
- "PySide2.QtWidgets.QWizard.pageIds": (),
- "PySide2.QtWidgets.QWizard.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QWizard.pixmap": ('PySide2.QtWidgets.QWizard.WizardPixmap',),
- "PySide2.QtWidgets.QWizard.removePage": ('int',),
- "PySide2.QtWidgets.QWizard.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QWizard.restart": (),
- "PySide2.QtWidgets.QWizard.setButton": ('PySide2.QtWidgets.QWizard.WizardButton', 'PySide2.QtWidgets.QAbstractButton'),
- "PySide2.QtWidgets.QWizard.setButtonLayout": ('typing.Sequence[PySide2.QtWidgets.QWizard.WizardButton]',),
- "PySide2.QtWidgets.QWizard.setButtonText": ('PySide2.QtWidgets.QWizard.WizardButton', 'str'),
- "PySide2.QtWidgets.QWizard.setDefaultProperty": ('str', 'str', 'str'),
- "PySide2.QtWidgets.QWizard.setField": ('str', 'typing.Any'),
- "PySide2.QtWidgets.QWizard.setOption": ('PySide2.QtWidgets.QWizard.WizardOption', 'bool'),
- "PySide2.QtWidgets.QWizard.setOptions": ('PySide2.QtWidgets.QWizard.WizardOptions',),
- "PySide2.QtWidgets.QWizard.setPage": ('int', 'PySide2.QtWidgets.QWizardPage'),
- "PySide2.QtWidgets.QWizard.setPixmap": ('PySide2.QtWidgets.QWizard.WizardPixmap', 'PySide2.QtGui.QPixmap'),
- "PySide2.QtWidgets.QWizard.setSideWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWizard.setStartId": ('int',),
- "PySide2.QtWidgets.QWizard.setSubTitleFormat": ('PySide2.QtCore.Qt.TextFormat',),
- "PySide2.QtWidgets.QWizard.setTitleFormat": ('PySide2.QtCore.Qt.TextFormat',),
- "PySide2.QtWidgets.QWizard.setVisible": ('bool',),
- "PySide2.QtWidgets.QWizard.setWizardStyle": ('PySide2.QtWidgets.QWizard.WizardStyle',),
- "PySide2.QtWidgets.QWizard.sideWidget": (),
- "PySide2.QtWidgets.QWizard.sizeHint": (),
- "PySide2.QtWidgets.QWizard.startId": (),
- "PySide2.QtWidgets.QWizard.subTitleFormat": (),
- "PySide2.QtWidgets.QWizard.testOption": ('PySide2.QtWidgets.QWizard.WizardOption',),
- "PySide2.QtWidgets.QWizard.titleFormat": (),
- "PySide2.QtWidgets.QWizard.validateCurrentPage": (),
- "PySide2.QtWidgets.QWizard.visitedPages": (),
- "PySide2.QtWidgets.QWizard.wizardStyle": (),
-# class PySide2.QtWidgets.QWizardPage:
- "PySide2.QtWidgets.QWizardPage.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWizardPage.buttonText": ('PySide2.QtWidgets.QWizard.WizardButton',),
- "PySide2.QtWidgets.QWizardPage.cleanupPage": (),
- "PySide2.QtWidgets.QWizardPage.field": ('str',),
- "PySide2.QtWidgets.QWizardPage.initializePage": (),
- "PySide2.QtWidgets.QWizardPage.isCommitPage": (),
- "PySide2.QtWidgets.QWizardPage.isComplete": (),
- "PySide2.QtWidgets.QWizardPage.isFinalPage": (),
- "PySide2.QtWidgets.QWizardPage.nextId": (),
- "PySide2.QtWidgets.QWizardPage.pixmap": ('PySide2.QtWidgets.QWizard.WizardPixmap',),
- "PySide2.QtWidgets.QWizardPage.registerField": ('str', 'PySide2.QtWidgets.QWidget', 'str', 'str'),
- "PySide2.QtWidgets.QWizardPage.setButtonText": ('PySide2.QtWidgets.QWizard.WizardButton', 'str'),
- "PySide2.QtWidgets.QWizardPage.setCommitPage": ('bool',),
- "PySide2.QtWidgets.QWizardPage.setField": ('str', 'typing.Any'),
- "PySide2.QtWidgets.QWizardPage.setFinalPage": ('bool',),
- "PySide2.QtWidgets.QWizardPage.setPixmap": ('PySide2.QtWidgets.QWizard.WizardPixmap', 'PySide2.QtGui.QPixmap'),
- "PySide2.QtWidgets.QWizardPage.setSubTitle": ('str',),
- "PySide2.QtWidgets.QWizardPage.setTitle": ('str',),
- "PySide2.QtWidgets.QWizardPage.subTitle": (),
- "PySide2.QtWidgets.QWizardPage.title": (),
- "PySide2.QtWidgets.QWizardPage.validatePage": (),
- "PySide2.QtWidgets.QWizardPage.wizard": (),
- }) if "PySide2.QtWidgets" in sys.modules else None
-# Module PySide2.QtPrintSupport
-sig_dict.update({
-# class PySide2.QtPrintSupport.QAbstractPrintDialog:
-# class PySide2.QtPrintSupport.QAbstractPrintDialog.PrintDialogOption:
-# class PySide2.QtPrintSupport.QAbstractPrintDialog.PrintDialogOptions:
-# class PySide2.QtPrintSupport.QAbstractPrintDialog.PrintRange:
- "PySide2.QtPrintSupport.QAbstractPrintDialog.__init__": ('PySide2.QtPrintSupport.QPrinter', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.addEnabledOption": ('PySide2.QtPrintSupport.QAbstractPrintDialog.PrintDialogOption',),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.enabledOptions": (),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.fromPage": (),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.isOptionEnabled": ('PySide2.QtPrintSupport.QAbstractPrintDialog.PrintDialogOption',),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.maxPage": (),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.minPage": (),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.printRange": (),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.printer": (),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.setEnabledOptions": ('PySide2.QtPrintSupport.QAbstractPrintDialog.PrintDialogOptions',),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.setFromTo": ('int', 'int'),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.setMinMax": ('int', 'int'),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.setOptionTabs": ('typing.Sequence[PySide2.QtWidgets.QWidget]',),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.setPrintRange": ('PySide2.QtPrintSupport.QAbstractPrintDialog.PrintRange',),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.toPage": (),
-# class PySide2.QtPrintSupport.QPageSetupDialog:
- "PySide2.QtPrintSupport.QPageSetupDialog.__init__": [('PySide2.QtPrintSupport.QPrinter', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtPrintSupport.QPageSetupDialog.done": ('int',),
- "PySide2.QtPrintSupport.QPageSetupDialog.exec_": (),
- "PySide2.QtPrintSupport.QPageSetupDialog.open": [(), ('PySide2.QtCore.QObject', 'str')],
- "PySide2.QtPrintSupport.QPageSetupDialog.printer": (),
- "PySide2.QtPrintSupport.QPageSetupDialog.setVisible": ('bool',),
-# class PySide2.QtPrintSupport.QPrintDialog:
- "PySide2.QtPrintSupport.QPrintDialog.__init__": [('PySide2.QtPrintSupport.QPrinter', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtPrintSupport.QPrintDialog.done": ('int',),
- "PySide2.QtPrintSupport.QPrintDialog.exec_": (),
- "PySide2.QtPrintSupport.QPrintDialog.open": [(), ('PySide2.QtCore.QObject', 'str')],
- "PySide2.QtPrintSupport.QPrintDialog.options": (),
- "PySide2.QtPrintSupport.QPrintDialog.setOption": ('PySide2.QtPrintSupport.QAbstractPrintDialog.PrintDialogOption', 'bool'),
- "PySide2.QtPrintSupport.QPrintDialog.setOptions": ('PySide2.QtPrintSupport.QAbstractPrintDialog.PrintDialogOptions',),
- "PySide2.QtPrintSupport.QPrintDialog.setVisible": ('bool',),
- "PySide2.QtPrintSupport.QPrintDialog.testOption": ('PySide2.QtPrintSupport.QAbstractPrintDialog.PrintDialogOption',),
-# class PySide2.QtPrintSupport.QPrintEngine:
-# class PySide2.QtPrintSupport.QPrintEngine.PrintEnginePropertyKey:
- "PySide2.QtPrintSupport.QPrintEngine.__init__": (),
- "PySide2.QtPrintSupport.QPrintEngine.abort": (),
- "PySide2.QtPrintSupport.QPrintEngine.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtPrintSupport.QPrintEngine.newPage": (),
- "PySide2.QtPrintSupport.QPrintEngine.printerState": (),
- "PySide2.QtPrintSupport.QPrintEngine.property": ('PySide2.QtPrintSupport.QPrintEngine.PrintEnginePropertyKey',),
- "PySide2.QtPrintSupport.QPrintEngine.setProperty": ('PySide2.QtPrintSupport.QPrintEngine.PrintEnginePropertyKey', 'typing.Any'),
-# class PySide2.QtPrintSupport.QPrintPreviewDialog:
- "PySide2.QtPrintSupport.QPrintPreviewDialog.__init__": [('PySide2.QtPrintSupport.QPrinter', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags')],
- "PySide2.QtPrintSupport.QPrintPreviewDialog.done": ('int',),
- "PySide2.QtPrintSupport.QPrintPreviewDialog.open": [(), ('PySide2.QtCore.QObject', 'str')],
- "PySide2.QtPrintSupport.QPrintPreviewDialog.printer": (),
- "PySide2.QtPrintSupport.QPrintPreviewDialog.setVisible": ('bool',),
-# class PySide2.QtPrintSupport.QPrintPreviewWidget:
-# class PySide2.QtPrintSupport.QPrintPreviewWidget.ViewMode:
-# class PySide2.QtPrintSupport.QPrintPreviewWidget.ZoomMode:
- "PySide2.QtPrintSupport.QPrintPreviewWidget.__init__": [('PySide2.QtPrintSupport.QPrinter', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags')],
- "PySide2.QtPrintSupport.QPrintPreviewWidget.currentPage": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.fitInView": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.fitToWidth": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.orientation": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.pageCount": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.print_": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setAllPagesViewMode": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setCurrentPage": ('int',),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setFacingPagesViewMode": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setLandscapeOrientation": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setOrientation": ('PySide2.QtPrintSupport.QPrinter.Orientation',),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setPortraitOrientation": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setSinglePageViewMode": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setViewMode": ('PySide2.QtPrintSupport.QPrintPreviewWidget.ViewMode',),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setVisible": ('bool',),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setZoomFactor": ('float',),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setZoomMode": ('PySide2.QtPrintSupport.QPrintPreviewWidget.ZoomMode',),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.updatePreview": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.viewMode": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.zoomFactor": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.zoomIn": ('float',),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.zoomMode": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.zoomOut": ('float',),
-# class PySide2.QtPrintSupport.QPrinter:
-# class PySide2.QtPrintSupport.QPrinter.ColorMode:
-# class PySide2.QtPrintSupport.QPrinter.DuplexMode:
-# class PySide2.QtPrintSupport.QPrinter.Orientation:
-# class PySide2.QtPrintSupport.QPrinter.OutputFormat:
-# class PySide2.QtPrintSupport.QPrinter.PageOrder:
-# class PySide2.QtPrintSupport.QPrinter.PaperSource:
-# class PySide2.QtPrintSupport.QPrinter.PrintRange:
-# class PySide2.QtPrintSupport.QPrinter.PrinterMode:
-# class PySide2.QtPrintSupport.QPrinter.PrinterState:
-# class PySide2.QtPrintSupport.QPrinter.Unit:
- "PySide2.QtPrintSupport.QPrinter.__init__": [('PySide2.QtPrintSupport.QPrinter.PrinterMode',), ('PySide2.QtPrintSupport.QPrinterInfo', 'PySide2.QtPrintSupport.QPrinter.PrinterMode')],
- "PySide2.QtPrintSupport.QPrinter.abort": (),
- "PySide2.QtPrintSupport.QPrinter.actualNumCopies": (),
- "PySide2.QtPrintSupport.QPrinter.collateCopies": (),
- "PySide2.QtPrintSupport.QPrinter.colorMode": (),
- "PySide2.QtPrintSupport.QPrinter.copyCount": (),
- "PySide2.QtPrintSupport.QPrinter.creator": (),
- "PySide2.QtPrintSupport.QPrinter.devType": (),
- "PySide2.QtPrintSupport.QPrinter.docName": (),
- "PySide2.QtPrintSupport.QPrinter.doubleSidedPrinting": (),
- "PySide2.QtPrintSupport.QPrinter.duplex": (),
- "PySide2.QtPrintSupport.QPrinter.fontEmbeddingEnabled": (),
- "PySide2.QtPrintSupport.QPrinter.fromPage": (),
- "PySide2.QtPrintSupport.QPrinter.fullPage": (),
- "PySide2.QtPrintSupport.QPrinter.getPageMargins": ('PySide2.QtPrintSupport.QPrinter.Unit',),
- "PySide2.QtPrintSupport.QPrinter.isValid": (),
- "PySide2.QtPrintSupport.QPrinter.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtPrintSupport.QPrinter.newPage": (),
- "PySide2.QtPrintSupport.QPrinter.numCopies": (),
- "PySide2.QtPrintSupport.QPrinter.orientation": (),
- "PySide2.QtPrintSupport.QPrinter.outputFileName": (),
- "PySide2.QtPrintSupport.QPrinter.outputFormat": (),
- "PySide2.QtPrintSupport.QPrinter.pageOrder": (),
- "PySide2.QtPrintSupport.QPrinter.pageRect": [(), ('PySide2.QtPrintSupport.QPrinter.Unit',)],
- "PySide2.QtPrintSupport.QPrinter.pageSize": (),
- "PySide2.QtPrintSupport.QPrinter.paintEngine": (),
- "PySide2.QtPrintSupport.QPrinter.paperName": (),
- "PySide2.QtPrintSupport.QPrinter.paperRect": [(), ('PySide2.QtPrintSupport.QPrinter.Unit',)],
- "PySide2.QtPrintSupport.QPrinter.paperSize": [(), ('PySide2.QtPrintSupport.QPrinter.Unit',)],
- "PySide2.QtPrintSupport.QPrinter.paperSource": (),
- "PySide2.QtPrintSupport.QPrinter.pdfVersion": (),
- "PySide2.QtPrintSupport.QPrinter.printEngine": (),
- "PySide2.QtPrintSupport.QPrinter.printProgram": (),
- "PySide2.QtPrintSupport.QPrinter.printRange": (),
- "PySide2.QtPrintSupport.QPrinter.printerName": (),
- "PySide2.QtPrintSupport.QPrinter.printerState": (),
- "PySide2.QtPrintSupport.QPrinter.resolution": (),
- "PySide2.QtPrintSupport.QPrinter.setCollateCopies": ('bool',),
- "PySide2.QtPrintSupport.QPrinter.setColorMode": ('PySide2.QtPrintSupport.QPrinter.ColorMode',),
- "PySide2.QtPrintSupport.QPrinter.setCopyCount": ('int',),
- "PySide2.QtPrintSupport.QPrinter.setCreator": ('str',),
- "PySide2.QtPrintSupport.QPrinter.setDocName": ('str',),
- "PySide2.QtPrintSupport.QPrinter.setDoubleSidedPrinting": ('bool',),
- "PySide2.QtPrintSupport.QPrinter.setDuplex": ('PySide2.QtPrintSupport.QPrinter.DuplexMode',),
- "PySide2.QtPrintSupport.QPrinter.setEngines": ('PySide2.QtPrintSupport.QPrintEngine', 'PySide2.QtGui.QPaintEngine'),
- "PySide2.QtPrintSupport.QPrinter.setFontEmbeddingEnabled": ('bool',),
- "PySide2.QtPrintSupport.QPrinter.setFromTo": ('int', 'int'),
- "PySide2.QtPrintSupport.QPrinter.setFullPage": ('bool',),
- "PySide2.QtPrintSupport.QPrinter.setMargins": ('PySide2.QtGui.QPagedPaintDevice.Margins',),
- "PySide2.QtPrintSupport.QPrinter.setNumCopies": ('int',),
- "PySide2.QtPrintSupport.QPrinter.setOrientation": ('PySide2.QtPrintSupport.QPrinter.Orientation',),
- "PySide2.QtPrintSupport.QPrinter.setOutputFileName": ('str',),
- "PySide2.QtPrintSupport.QPrinter.setOutputFormat": ('PySide2.QtPrintSupport.QPrinter.OutputFormat',),
- "PySide2.QtPrintSupport.QPrinter.setPageMargins": [('PySide2.QtCore.QMarginsF',), ('float', 'float', 'float', 'float', 'PySide2.QtPrintSupport.QPrinter.Unit')],
- "PySide2.QtPrintSupport.QPrinter.setPageOrder": ('PySide2.QtPrintSupport.QPrinter.PageOrder',),
- "PySide2.QtPrintSupport.QPrinter.setPageSize": [('PySide2.QtGui.QPageSize',), ('PySide2.QtGui.QPagedPaintDevice.PageSize',)],
- "PySide2.QtPrintSupport.QPrinter.setPageSizeMM": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtPrintSupport.QPrinter.setPaperName": ('str',),
- "PySide2.QtPrintSupport.QPrinter.setPaperSize": [('PySide2.QtCore.QSizeF', 'PySide2.QtPrintSupport.QPrinter.Unit'), ('PySide2.QtGui.QPagedPaintDevice.PageSize',)],
- "PySide2.QtPrintSupport.QPrinter.setPaperSource": ('PySide2.QtPrintSupport.QPrinter.PaperSource',),
- "PySide2.QtPrintSupport.QPrinter.setPdfVersion": ('PySide2.QtGui.QPagedPaintDevice.PdfVersion',),
- "PySide2.QtPrintSupport.QPrinter.setPrintProgram": ('str',),
- "PySide2.QtPrintSupport.QPrinter.setPrintRange": ('PySide2.QtPrintSupport.QPrinter.PrintRange',),
- "PySide2.QtPrintSupport.QPrinter.setPrinterName": ('str',),
- "PySide2.QtPrintSupport.QPrinter.setResolution": ('int',),
- "PySide2.QtPrintSupport.QPrinter.setWinPageSize": ('int',),
- "PySide2.QtPrintSupport.QPrinter.supportedResolutions": (),
- "PySide2.QtPrintSupport.QPrinter.supportsMultipleCopies": (),
- "PySide2.QtPrintSupport.QPrinter.toPage": (),
- "PySide2.QtPrintSupport.QPrinter.winPageSize": (),
-# class PySide2.QtPrintSupport.QPrinterInfo:
- "PySide2.QtPrintSupport.QPrinterInfo.__init__": [(), ('PySide2.QtPrintSupport.QPrinter',), ('PySide2.QtPrintSupport.QPrinterInfo',)],
- "PySide2.QtPrintSupport.QPrinterInfo.__copy__": (),
- "PySide2.QtPrintSupport.QPrinterInfo.availablePrinterNames": (),
- "PySide2.QtPrintSupport.QPrinterInfo.availablePrinters": (),
- "PySide2.QtPrintSupport.QPrinterInfo.defaultColorMode": (),
- "PySide2.QtPrintSupport.QPrinterInfo.defaultDuplexMode": (),
- "PySide2.QtPrintSupport.QPrinterInfo.defaultPageSize": (),
- "PySide2.QtPrintSupport.QPrinterInfo.defaultPrinter": (),
- "PySide2.QtPrintSupport.QPrinterInfo.defaultPrinterName": (),
- "PySide2.QtPrintSupport.QPrinterInfo.description": (),
- "PySide2.QtPrintSupport.QPrinterInfo.isDefault": (),
- "PySide2.QtPrintSupport.QPrinterInfo.isNull": (),
- "PySide2.QtPrintSupport.QPrinterInfo.isRemote": (),
- "PySide2.QtPrintSupport.QPrinterInfo.location": (),
- "PySide2.QtPrintSupport.QPrinterInfo.makeAndModel": (),
- "PySide2.QtPrintSupport.QPrinterInfo.maximumPhysicalPageSize": (),
- "PySide2.QtPrintSupport.QPrinterInfo.minimumPhysicalPageSize": (),
- "PySide2.QtPrintSupport.QPrinterInfo.printerInfo": ('str',),
- "PySide2.QtPrintSupport.QPrinterInfo.printerName": (),
- "PySide2.QtPrintSupport.QPrinterInfo.state": (),
- "PySide2.QtPrintSupport.QPrinterInfo.supportedColorModes": (),
- "PySide2.QtPrintSupport.QPrinterInfo.supportedDuplexModes": (),
- "PySide2.QtPrintSupport.QPrinterInfo.supportedPageSizes": (),
- "PySide2.QtPrintSupport.QPrinterInfo.supportedPaperSizes": (),
- "PySide2.QtPrintSupport.QPrinterInfo.supportedResolutions": (),
- "PySide2.QtPrintSupport.QPrinterInfo.supportedSizesWithNames": (),
- "PySide2.QtPrintSupport.QPrinterInfo.supportsCustomPageSizes": (),
- }) if "PySide2.QtPrintSupport" in sys.modules else None
-# Module PySide2.QtSql
-sig_dict.update({
-# class PySide2.QtSql.QSql:
-# class PySide2.QtSql.QSql.Location:
-# class PySide2.QtSql.QSql.NumericalPrecisionPolicy:
-# class PySide2.QtSql.QSql.ParamType:
-# class PySide2.QtSql.QSql.ParamTypeFlag:
-# class PySide2.QtSql.QSql.TableType:
-# class PySide2.QtSql.QSqlDatabase:
- "PySide2.QtSql.QSqlDatabase.__init__": [(), ('PySide2.QtSql.QSqlDatabase',), ('PySide2.QtSql.QSqlDriver',), ('str',)],
- "PySide2.QtSql.QSqlDatabase.__copy__": (),
- "PySide2.QtSql.QSqlDatabase.addDatabase": [('PySide2.QtSql.QSqlDriver', 'str'), ('str', 'str')],
- "PySide2.QtSql.QSqlDatabase.cloneDatabase": [('PySide2.QtSql.QSqlDatabase', 'str'), ('str', 'str')],
- "PySide2.QtSql.QSqlDatabase.close": (),
- "PySide2.QtSql.QSqlDatabase.commit": (),
- "PySide2.QtSql.QSqlDatabase.connectOptions": (),
- "PySide2.QtSql.QSqlDatabase.connectionName": (),
- "PySide2.QtSql.QSqlDatabase.connectionNames": (),
- "PySide2.QtSql.QSqlDatabase.contains": ('str',),
- "PySide2.QtSql.QSqlDatabase.database": ('str', 'bool'),
- "PySide2.QtSql.QSqlDatabase.databaseName": (),
- "PySide2.QtSql.QSqlDatabase.driver": (),
- "PySide2.QtSql.QSqlDatabase.driverName": (),
- "PySide2.QtSql.QSqlDatabase.drivers": (),
- "PySide2.QtSql.QSqlDatabase.exec_": ('str',),
- "PySide2.QtSql.QSqlDatabase.hostName": (),
- "PySide2.QtSql.QSqlDatabase.isDriverAvailable": ('str',),
- "PySide2.QtSql.QSqlDatabase.isOpen": (),
- "PySide2.QtSql.QSqlDatabase.isOpenError": (),
- "PySide2.QtSql.QSqlDatabase.isValid": (),
- "PySide2.QtSql.QSqlDatabase.lastError": (),
- "PySide2.QtSql.QSqlDatabase.numericalPrecisionPolicy": (),
- "PySide2.QtSql.QSqlDatabase.open": [(), ('str', 'str')],
- "PySide2.QtSql.QSqlDatabase.password": (),
- "PySide2.QtSql.QSqlDatabase.port": (),
- "PySide2.QtSql.QSqlDatabase.primaryIndex": ('str',),
- "PySide2.QtSql.QSqlDatabase.record": ('str',),
- "PySide2.QtSql.QSqlDatabase.registerSqlDriver": ('str', 'PySide2.QtSql.QSqlDriverCreatorBase'),
- "PySide2.QtSql.QSqlDatabase.removeDatabase": ('str',),
- "PySide2.QtSql.QSqlDatabase.rollback": (),
- "PySide2.QtSql.QSqlDatabase.setConnectOptions": ('str',),
- "PySide2.QtSql.QSqlDatabase.setDatabaseName": ('str',),
- "PySide2.QtSql.QSqlDatabase.setHostName": ('str',),
- "PySide2.QtSql.QSqlDatabase.setNumericalPrecisionPolicy": ('PySide2.QtSql.QSql.NumericalPrecisionPolicy',),
- "PySide2.QtSql.QSqlDatabase.setPassword": ('str',),
- "PySide2.QtSql.QSqlDatabase.setPort": ('int',),
- "PySide2.QtSql.QSqlDatabase.setUserName": ('str',),
- "PySide2.QtSql.QSqlDatabase.tables": ('PySide2.QtSql.QSql.TableType',),
- "PySide2.QtSql.QSqlDatabase.transaction": (),
- "PySide2.QtSql.QSqlDatabase.userName": (),
-# class PySide2.QtSql.QSqlDriver:
-# class PySide2.QtSql.QSqlDriver.DbmsType:
-# class PySide2.QtSql.QSqlDriver.DriverFeature:
-# class PySide2.QtSql.QSqlDriver.IdentifierType:
-# class PySide2.QtSql.QSqlDriver.NotificationSource:
-# class PySide2.QtSql.QSqlDriver.StatementType:
- "PySide2.QtSql.QSqlDriver.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSql.QSqlDriver.beginTransaction": (),
- "PySide2.QtSql.QSqlDriver.cancelQuery": (),
- "PySide2.QtSql.QSqlDriver.close": (),
- "PySide2.QtSql.QSqlDriver.commitTransaction": (),
- "PySide2.QtSql.QSqlDriver.createResult": (),
- "PySide2.QtSql.QSqlDriver.dbmsType": (),
- "PySide2.QtSql.QSqlDriver.escapeIdentifier": ('str', 'PySide2.QtSql.QSqlDriver.IdentifierType'),
- "PySide2.QtSql.QSqlDriver.formatValue": ('PySide2.QtSql.QSqlField', 'bool'),
- "PySide2.QtSql.QSqlDriver.hasFeature": ('PySide2.QtSql.QSqlDriver.DriverFeature',),
- "PySide2.QtSql.QSqlDriver.isIdentifierEscaped": ('str', 'PySide2.QtSql.QSqlDriver.IdentifierType'),
- "PySide2.QtSql.QSqlDriver.isOpen": (),
- "PySide2.QtSql.QSqlDriver.isOpenError": (),
- "PySide2.QtSql.QSqlDriver.lastError": (),
- "PySide2.QtSql.QSqlDriver.numericalPrecisionPolicy": (),
- "PySide2.QtSql.QSqlDriver.open": ('str', 'str', 'str', 'str', 'int', 'str'),
- "PySide2.QtSql.QSqlDriver.primaryIndex": ('str',),
- "PySide2.QtSql.QSqlDriver.record": ('str',),
- "PySide2.QtSql.QSqlDriver.rollbackTransaction": (),
- "PySide2.QtSql.QSqlDriver.setLastError": ('PySide2.QtSql.QSqlError',),
- "PySide2.QtSql.QSqlDriver.setNumericalPrecisionPolicy": ('PySide2.QtSql.QSql.NumericalPrecisionPolicy',),
- "PySide2.QtSql.QSqlDriver.setOpen": ('bool',),
- "PySide2.QtSql.QSqlDriver.setOpenError": ('bool',),
- "PySide2.QtSql.QSqlDriver.sqlStatement": ('PySide2.QtSql.QSqlDriver.StatementType', 'str', 'PySide2.QtSql.QSqlRecord', 'bool'),
- "PySide2.QtSql.QSqlDriver.stripDelimiters": ('str', 'PySide2.QtSql.QSqlDriver.IdentifierType'),
- "PySide2.QtSql.QSqlDriver.subscribeToNotification": ('str',),
- "PySide2.QtSql.QSqlDriver.subscribedToNotifications": (),
- "PySide2.QtSql.QSqlDriver.tables": ('PySide2.QtSql.QSql.TableType',),
- "PySide2.QtSql.QSqlDriver.unsubscribeFromNotification": ('str',),
-# class PySide2.QtSql.QSqlDriverCreatorBase:
- "PySide2.QtSql.QSqlDriverCreatorBase.__init__": (),
- "PySide2.QtSql.QSqlDriverCreatorBase.createObject": (),
-# class PySide2.QtSql.QSqlError:
-# class PySide2.QtSql.QSqlError.ErrorType:
- "PySide2.QtSql.QSqlError.__init__": [('PySide2.QtSql.QSqlError',), ('str', 'str', 'PySide2.QtSql.QSqlError.ErrorType', 'int'), ('str', 'str', 'PySide2.QtSql.QSqlError.ErrorType', 'str')],
- "PySide2.QtSql.QSqlError.__copy__": (),
- "PySide2.QtSql.QSqlError.databaseText": (),
- "PySide2.QtSql.QSqlError.driverText": (),
- "PySide2.QtSql.QSqlError.isValid": (),
- "PySide2.QtSql.QSqlError.nativeErrorCode": (),
- "PySide2.QtSql.QSqlError.number": (),
- "PySide2.QtSql.QSqlError.setDatabaseText": ('str',),
- "PySide2.QtSql.QSqlError.setDriverText": ('str',),
- "PySide2.QtSql.QSqlError.setNumber": ('int',),
- "PySide2.QtSql.QSqlError.setType": ('PySide2.QtSql.QSqlError.ErrorType',),
- "PySide2.QtSql.QSqlError.swap": ('PySide2.QtSql.QSqlError',),
- "PySide2.QtSql.QSqlError.text": (),
- "PySide2.QtSql.QSqlError.type": (),
-# class PySide2.QtSql.QSqlField:
-# class PySide2.QtSql.QSqlField.RequiredStatus:
- "PySide2.QtSql.QSqlField.__init__": [('PySide2.QtSql.QSqlField',), ('str', 'type'), ('str', 'type', 'str')],
- "PySide2.QtSql.QSqlField.__copy__": (),
- "PySide2.QtSql.QSqlField.clear": (),
- "PySide2.QtSql.QSqlField.defaultValue": (),
- "PySide2.QtSql.QSqlField.isAutoValue": (),
- "PySide2.QtSql.QSqlField.isGenerated": (),
- "PySide2.QtSql.QSqlField.isNull": (),
- "PySide2.QtSql.QSqlField.isReadOnly": (),
- "PySide2.QtSql.QSqlField.isValid": (),
- "PySide2.QtSql.QSqlField.length": (),
- "PySide2.QtSql.QSqlField.name": (),
- "PySide2.QtSql.QSqlField.precision": (),
- "PySide2.QtSql.QSqlField.requiredStatus": (),
- "PySide2.QtSql.QSqlField.setAutoValue": ('bool',),
- "PySide2.QtSql.QSqlField.setDefaultValue": ('typing.Any',),
- "PySide2.QtSql.QSqlField.setGenerated": ('bool',),
- "PySide2.QtSql.QSqlField.setLength": ('int',),
- "PySide2.QtSql.QSqlField.setName": ('str',),
- "PySide2.QtSql.QSqlField.setPrecision": ('int',),
- "PySide2.QtSql.QSqlField.setReadOnly": ('bool',),
- "PySide2.QtSql.QSqlField.setRequired": ('bool',),
- "PySide2.QtSql.QSqlField.setRequiredStatus": ('PySide2.QtSql.QSqlField.RequiredStatus',),
- "PySide2.QtSql.QSqlField.setSqlType": ('int',),
- "PySide2.QtSql.QSqlField.setTableName": ('str',),
- "PySide2.QtSql.QSqlField.setType": ('type',),
- "PySide2.QtSql.QSqlField.setValue": ('typing.Any',),
- "PySide2.QtSql.QSqlField.tableName": (),
- "PySide2.QtSql.QSqlField.type": (),
- "PySide2.QtSql.QSqlField.typeID": (),
- "PySide2.QtSql.QSqlField.value": (),
-# class PySide2.QtSql.QSqlIndex:
- "PySide2.QtSql.QSqlIndex.__init__": [('PySide2.QtSql.QSqlIndex',), ('str', 'str')],
- "PySide2.QtSql.QSqlIndex.__copy__": (),
- "PySide2.QtSql.QSqlIndex.append": [('PySide2.QtSql.QSqlField',), ('PySide2.QtSql.QSqlField', 'bool')],
- "PySide2.QtSql.QSqlIndex.cursorName": (),
- "PySide2.QtSql.QSqlIndex.isDescending": ('int',),
- "PySide2.QtSql.QSqlIndex.name": (),
- "PySide2.QtSql.QSqlIndex.setCursorName": ('str',),
- "PySide2.QtSql.QSqlIndex.setDescending": ('int', 'bool'),
- "PySide2.QtSql.QSqlIndex.setName": ('str',),
-# class PySide2.QtSql.QSqlQuery:
-# class PySide2.QtSql.QSqlQuery.BatchExecutionMode:
- "PySide2.QtSql.QSqlQuery.__init__": [('PySide2.QtSql.QSqlDatabase',), ('PySide2.QtSql.QSqlQuery',), ('PySide2.QtSql.QSqlResult',), ('str', 'PySide2.QtSql.QSqlDatabase')],
- "PySide2.QtSql.QSqlQuery.__copy__": (),
- "PySide2.QtSql.QSqlQuery.addBindValue": ('typing.Any', 'PySide2.QtSql.QSql.ParamType'),
- "PySide2.QtSql.QSqlQuery.at": (),
- "PySide2.QtSql.QSqlQuery.bindValue": [('int', 'typing.Any', 'PySide2.QtSql.QSql.ParamType'), ('str', 'typing.Any', 'PySide2.QtSql.QSql.ParamType')],
- "PySide2.QtSql.QSqlQuery.boundValue": [('int',), ('str',)],
- "PySide2.QtSql.QSqlQuery.boundValues": (),
- "PySide2.QtSql.QSqlQuery.clear": (),
- "PySide2.QtSql.QSqlQuery.driver": (),
- "PySide2.QtSql.QSqlQuery.execBatch": ('PySide2.QtSql.QSqlQuery.BatchExecutionMode',),
- "PySide2.QtSql.QSqlQuery.exec_": [(), ('str',)],
- "PySide2.QtSql.QSqlQuery.executedQuery": (),
- "PySide2.QtSql.QSqlQuery.finish": (),
- "PySide2.QtSql.QSqlQuery.first": (),
- "PySide2.QtSql.QSqlQuery.isActive": (),
- "PySide2.QtSql.QSqlQuery.isForwardOnly": (),
- "PySide2.QtSql.QSqlQuery.isNull": [('int',), ('str',)],
- "PySide2.QtSql.QSqlQuery.isSelect": (),
- "PySide2.QtSql.QSqlQuery.isValid": (),
- "PySide2.QtSql.QSqlQuery.last": (),
- "PySide2.QtSql.QSqlQuery.lastError": (),
- "PySide2.QtSql.QSqlQuery.lastInsertId": (),
- "PySide2.QtSql.QSqlQuery.lastQuery": (),
- "PySide2.QtSql.QSqlQuery.nextResult": (),
- "PySide2.QtSql.QSqlQuery.numRowsAffected": (),
- "PySide2.QtSql.QSqlQuery.numericalPrecisionPolicy": (),
- "PySide2.QtSql.QSqlQuery.prepare": ('str',),
- "PySide2.QtSql.QSqlQuery.previous": (),
- "PySide2.QtSql.QSqlQuery.record": (),
- "PySide2.QtSql.QSqlQuery.result": (),
- "PySide2.QtSql.QSqlQuery.seek": ('int', 'bool'),
- "PySide2.QtSql.QSqlQuery.setForwardOnly": ('bool',),
- "PySide2.QtSql.QSqlQuery.setNumericalPrecisionPolicy": ('PySide2.QtSql.QSql.NumericalPrecisionPolicy',),
- "PySide2.QtSql.QSqlQuery.size": (),
- "PySide2.QtSql.QSqlQuery.value": [('int',), ('str',)],
-# class PySide2.QtSql.QSqlQueryModel:
- "PySide2.QtSql.QSqlQueryModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSql.QSqlQueryModel.beginInsertColumns": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtSql.QSqlQueryModel.beginInsertRows": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtSql.QSqlQueryModel.beginRemoveColumns": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtSql.QSqlQueryModel.beginRemoveRows": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtSql.QSqlQueryModel.beginResetModel": (),
- "PySide2.QtSql.QSqlQueryModel.canFetchMore": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtSql.QSqlQueryModel.clear": (),
- "PySide2.QtSql.QSqlQueryModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtSql.QSqlQueryModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtSql.QSqlQueryModel.endInsertColumns": (),
- "PySide2.QtSql.QSqlQueryModel.endInsertRows": (),
- "PySide2.QtSql.QSqlQueryModel.endRemoveColumns": (),
- "PySide2.QtSql.QSqlQueryModel.endRemoveRows": (),
- "PySide2.QtSql.QSqlQueryModel.endResetModel": (),
- "PySide2.QtSql.QSqlQueryModel.fetchMore": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtSql.QSqlQueryModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtSql.QSqlQueryModel.indexInQuery": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtSql.QSqlQueryModel.insertColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtSql.QSqlQueryModel.lastError": (),
- "PySide2.QtSql.QSqlQueryModel.query": (),
- "PySide2.QtSql.QSqlQueryModel.queryChange": (),
- "PySide2.QtSql.QSqlQueryModel.record": [(), ('int',)],
- "PySide2.QtSql.QSqlQueryModel.removeColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtSql.QSqlQueryModel.roleNames": (),
- "PySide2.QtSql.QSqlQueryModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtSql.QSqlQueryModel.setHeaderData": ('int', 'PySide2.QtCore.Qt.Orientation', 'typing.Any', 'int'),
- "PySide2.QtSql.QSqlQueryModel.setLastError": ('PySide2.QtSql.QSqlError',),
- "PySide2.QtSql.QSqlQueryModel.setQuery": [('PySide2.QtSql.QSqlQuery',), ('str', 'PySide2.QtSql.QSqlDatabase')],
-# class PySide2.QtSql.QSqlRecord:
- "PySide2.QtSql.QSqlRecord.__init__": [(), ('PySide2.QtSql.QSqlRecord',)],
- "PySide2.QtSql.QSqlRecord.__copy__": (),
- "PySide2.QtSql.QSqlRecord.append": ('PySide2.QtSql.QSqlField',),
- "PySide2.QtSql.QSqlRecord.clear": (),
- "PySide2.QtSql.QSqlRecord.clearValues": (),
- "PySide2.QtSql.QSqlRecord.contains": ('str',),
- "PySide2.QtSql.QSqlRecord.count": (),
- "PySide2.QtSql.QSqlRecord.field": [('int',), ('str',)],
- "PySide2.QtSql.QSqlRecord.fieldName": ('int',),
- "PySide2.QtSql.QSqlRecord.indexOf": ('str',),
- "PySide2.QtSql.QSqlRecord.insert": ('int', 'PySide2.QtSql.QSqlField'),
- "PySide2.QtSql.QSqlRecord.isEmpty": (),
- "PySide2.QtSql.QSqlRecord.isGenerated": [('int',), ('str',)],
- "PySide2.QtSql.QSqlRecord.isNull": [('int',), ('str',)],
- "PySide2.QtSql.QSqlRecord.keyValues": ('PySide2.QtSql.QSqlRecord',),
- "PySide2.QtSql.QSqlRecord.remove": ('int',),
- "PySide2.QtSql.QSqlRecord.replace": ('int', 'PySide2.QtSql.QSqlField'),
- "PySide2.QtSql.QSqlRecord.setGenerated": [('int', 'bool'), ('str', 'bool')],
- "PySide2.QtSql.QSqlRecord.setNull": [('int',), ('str',)],
- "PySide2.QtSql.QSqlRecord.setValue": [('int', 'typing.Any'), ('str', 'typing.Any')],
- "PySide2.QtSql.QSqlRecord.value": [('int',), ('str',)],
-# class PySide2.QtSql.QSqlRelation:
- "PySide2.QtSql.QSqlRelation.__init__": [(), ('PySide2.QtSql.QSqlRelation',), ('str', 'str', 'str')],
- "PySide2.QtSql.QSqlRelation.__copy__": (),
- "PySide2.QtSql.QSqlRelation.displayColumn": (),
- "PySide2.QtSql.QSqlRelation.indexColumn": (),
- "PySide2.QtSql.QSqlRelation.isValid": (),
- "PySide2.QtSql.QSqlRelation.swap": ('PySide2.QtSql.QSqlRelation',),
- "PySide2.QtSql.QSqlRelation.tableName": (),
-# class PySide2.QtSql.QSqlRelationalDelegate:
- "PySide2.QtSql.QSqlRelationalDelegate.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSql.QSqlRelationalDelegate.createEditor": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtSql.QSqlRelationalDelegate.setEditorData": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtSql.QSqlRelationalDelegate.setModelData": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QAbstractItemModel', 'PySide2.QtCore.QModelIndex'),
-# class PySide2.QtSql.QSqlRelationalTableModel:
-# class PySide2.QtSql.QSqlRelationalTableModel.JoinMode:
- "PySide2.QtSql.QSqlRelationalTableModel.__init__": ('PySide2.QtCore.QObject', 'PySide2.QtSql.QSqlDatabase'),
- "PySide2.QtSql.QSqlRelationalTableModel.clear": (),
- "PySide2.QtSql.QSqlRelationalTableModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtSql.QSqlRelationalTableModel.insertRowIntoTable": ('PySide2.QtSql.QSqlRecord',),
- "PySide2.QtSql.QSqlRelationalTableModel.orderByClause": (),
- "PySide2.QtSql.QSqlRelationalTableModel.relation": ('int',),
- "PySide2.QtSql.QSqlRelationalTableModel.relationModel": ('int',),
- "PySide2.QtSql.QSqlRelationalTableModel.removeColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtSql.QSqlRelationalTableModel.revertRow": ('int',),
- "PySide2.QtSql.QSqlRelationalTableModel.select": (),
- "PySide2.QtSql.QSqlRelationalTableModel.selectStatement": (),
- "PySide2.QtSql.QSqlRelationalTableModel.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
- "PySide2.QtSql.QSqlRelationalTableModel.setJoinMode": ('PySide2.QtSql.QSqlRelationalTableModel.JoinMode',),
- "PySide2.QtSql.QSqlRelationalTableModel.setRelation": ('int', 'PySide2.QtSql.QSqlRelation'),
- "PySide2.QtSql.QSqlRelationalTableModel.setTable": ('str',),
- "PySide2.QtSql.QSqlRelationalTableModel.updateRowInTable": ('int', 'PySide2.QtSql.QSqlRecord'),
-# class PySide2.QtSql.QSqlResult:
-# class PySide2.QtSql.QSqlResult.BindingSyntax:
- "PySide2.QtSql.QSqlResult.__init__": ('PySide2.QtSql.QSqlDriver',),
- "PySide2.QtSql.QSqlResult.addBindValue": ('typing.Any', 'PySide2.QtSql.QSql.ParamType'),
- "PySide2.QtSql.QSqlResult.at": (),
- "PySide2.QtSql.QSqlResult.bindValue": [('int', 'typing.Any', 'PySide2.QtSql.QSql.ParamType'), ('str', 'typing.Any', 'PySide2.QtSql.QSql.ParamType')],
- "PySide2.QtSql.QSqlResult.bindValueType": [('int',), ('str',)],
- "PySide2.QtSql.QSqlResult.bindingSyntax": (),
- "PySide2.QtSql.QSqlResult.boundValue": [('int',), ('str',)],
- "PySide2.QtSql.QSqlResult.boundValueCount": (),
- "PySide2.QtSql.QSqlResult.boundValueName": ('int',),
- "PySide2.QtSql.QSqlResult.boundValues": (),
- "PySide2.QtSql.QSqlResult.clear": (),
- "PySide2.QtSql.QSqlResult.data": ('int',),
- "PySide2.QtSql.QSqlResult.detachFromResultSet": (),
- "PySide2.QtSql.QSqlResult.driver": (),
- "PySide2.QtSql.QSqlResult.execBatch": ('bool',),
- "PySide2.QtSql.QSqlResult.exec_": (),
- "PySide2.QtSql.QSqlResult.executedQuery": (),
- "PySide2.QtSql.QSqlResult.fetch": ('int',),
- "PySide2.QtSql.QSqlResult.fetchFirst": (),
- "PySide2.QtSql.QSqlResult.fetchLast": (),
- "PySide2.QtSql.QSqlResult.fetchNext": (),
- "PySide2.QtSql.QSqlResult.fetchPrevious": (),
- "PySide2.QtSql.QSqlResult.handle": (),
- "PySide2.QtSql.QSqlResult.hasOutValues": (),
- "PySide2.QtSql.QSqlResult.isActive": (),
- "PySide2.QtSql.QSqlResult.isForwardOnly": (),
- "PySide2.QtSql.QSqlResult.isNull": ('int',),
- "PySide2.QtSql.QSqlResult.isSelect": (),
- "PySide2.QtSql.QSqlResult.isValid": (),
- "PySide2.QtSql.QSqlResult.lastError": (),
- "PySide2.QtSql.QSqlResult.lastInsertId": (),
- "PySide2.QtSql.QSqlResult.lastQuery": (),
- "PySide2.QtSql.QSqlResult.nextResult": (),
- "PySide2.QtSql.QSqlResult.numRowsAffected": (),
- "PySide2.QtSql.QSqlResult.numericalPrecisionPolicy": (),
- "PySide2.QtSql.QSqlResult.prepare": ('str',),
- "PySide2.QtSql.QSqlResult.record": (),
- "PySide2.QtSql.QSqlResult.reset": ('str',),
- "PySide2.QtSql.QSqlResult.resetBindCount": (),
- "PySide2.QtSql.QSqlResult.savePrepare": ('str',),
- "PySide2.QtSql.QSqlResult.setActive": ('bool',),
- "PySide2.QtSql.QSqlResult.setAt": ('int',),
- "PySide2.QtSql.QSqlResult.setForwardOnly": ('bool',),
- "PySide2.QtSql.QSqlResult.setLastError": ('PySide2.QtSql.QSqlError',),
- "PySide2.QtSql.QSqlResult.setNumericalPrecisionPolicy": ('PySide2.QtSql.QSql.NumericalPrecisionPolicy',),
- "PySide2.QtSql.QSqlResult.setQuery": ('str',),
- "PySide2.QtSql.QSqlResult.setSelect": ('bool',),
- "PySide2.QtSql.QSqlResult.size": (),
-# class PySide2.QtSql.QSqlTableModel:
-# class PySide2.QtSql.QSqlTableModel.EditStrategy:
- "PySide2.QtSql.QSqlTableModel.__init__": ('PySide2.QtCore.QObject', 'PySide2.QtSql.QSqlDatabase'),
- "PySide2.QtSql.QSqlTableModel.clear": (),
- "PySide2.QtSql.QSqlTableModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtSql.QSqlTableModel.database": (),
- "PySide2.QtSql.QSqlTableModel.deleteRowFromTable": ('int',),
- "PySide2.QtSql.QSqlTableModel.editStrategy": (),
- "PySide2.QtSql.QSqlTableModel.fieldIndex": ('str',),
- "PySide2.QtSql.QSqlTableModel.filter": (),
- "PySide2.QtSql.QSqlTableModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtSql.QSqlTableModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtSql.QSqlTableModel.indexInQuery": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtSql.QSqlTableModel.insertRecord": ('int', 'PySide2.QtSql.QSqlRecord'),
- "PySide2.QtSql.QSqlTableModel.insertRowIntoTable": ('PySide2.QtSql.QSqlRecord',),
- "PySide2.QtSql.QSqlTableModel.insertRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtSql.QSqlTableModel.isDirty": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtSql.QSqlTableModel.orderByClause": (),
- "PySide2.QtSql.QSqlTableModel.primaryKey": (),
- "PySide2.QtSql.QSqlTableModel.primaryValues": ('int',),
- "PySide2.QtSql.QSqlTableModel.record": [(), ('int',)],
- "PySide2.QtSql.QSqlTableModel.removeColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtSql.QSqlTableModel.removeRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtSql.QSqlTableModel.revert": (),
- "PySide2.QtSql.QSqlTableModel.revertAll": (),
- "PySide2.QtSql.QSqlTableModel.revertRow": ('int',),
- "PySide2.QtSql.QSqlTableModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtSql.QSqlTableModel.select": (),
- "PySide2.QtSql.QSqlTableModel.selectRow": ('int',),
- "PySide2.QtSql.QSqlTableModel.selectStatement": (),
- "PySide2.QtSql.QSqlTableModel.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
- "PySide2.QtSql.QSqlTableModel.setEditStrategy": ('PySide2.QtSql.QSqlTableModel.EditStrategy',),
- "PySide2.QtSql.QSqlTableModel.setFilter": ('str',),
- "PySide2.QtSql.QSqlTableModel.setPrimaryKey": ('PySide2.QtSql.QSqlIndex',),
- "PySide2.QtSql.QSqlTableModel.setQuery": ('PySide2.QtSql.QSqlQuery',),
- "PySide2.QtSql.QSqlTableModel.setRecord": ('int', 'PySide2.QtSql.QSqlRecord'),
- "PySide2.QtSql.QSqlTableModel.setSort": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtSql.QSqlTableModel.setTable": ('str',),
- "PySide2.QtSql.QSqlTableModel.sort": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtSql.QSqlTableModel.submit": (),
- "PySide2.QtSql.QSqlTableModel.submitAll": (),
- "PySide2.QtSql.QSqlTableModel.tableName": (),
- "PySide2.QtSql.QSqlTableModel.updateRowInTable": ('int', 'PySide2.QtSql.QSqlRecord'),
- }) if "PySide2.QtSql" in sys.modules else None
-# Module PySide2.QtNetwork
-sig_dict.update({
-# class PySide2.QtNetwork.QAbstractNetworkCache:
- "PySide2.QtNetwork.QAbstractNetworkCache.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QAbstractNetworkCache.cacheSize": (),
- "PySide2.QtNetwork.QAbstractNetworkCache.clear": (),
- "PySide2.QtNetwork.QAbstractNetworkCache.data": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QAbstractNetworkCache.insert": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtNetwork.QAbstractNetworkCache.metaData": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QAbstractNetworkCache.prepare": ('PySide2.QtNetwork.QNetworkCacheMetaData',),
- "PySide2.QtNetwork.QAbstractNetworkCache.remove": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QAbstractNetworkCache.updateMetaData": ('PySide2.QtNetwork.QNetworkCacheMetaData',),
-# class PySide2.QtNetwork.QAbstractSocket:
-# class PySide2.QtNetwork.QAbstractSocket.BindFlag:
-# class PySide2.QtNetwork.QAbstractSocket.BindMode:
-# class PySide2.QtNetwork.QAbstractSocket.NetworkLayerProtocol:
-# class PySide2.QtNetwork.QAbstractSocket.PauseMode:
-# class PySide2.QtNetwork.QAbstractSocket.PauseModes:
-# class PySide2.QtNetwork.QAbstractSocket.SocketError:
-# class PySide2.QtNetwork.QAbstractSocket.SocketOption:
-# class PySide2.QtNetwork.QAbstractSocket.SocketState:
-# class PySide2.QtNetwork.QAbstractSocket.SocketType:
- "PySide2.QtNetwork.QAbstractSocket.__init__": ('PySide2.QtNetwork.QAbstractSocket.SocketType', 'PySide2.QtCore.QObject'),
- "PySide2.QtNetwork.QAbstractSocket.abort": (),
- "PySide2.QtNetwork.QAbstractSocket.atEnd": (),
- "PySide2.QtNetwork.QAbstractSocket.bind": [('PySide2.QtNetwork.QHostAddress', 'int', 'PySide2.QtNetwork.QAbstractSocket.BindMode'), ('int', 'PySide2.QtNetwork.QAbstractSocket.BindMode')],
- "PySide2.QtNetwork.QAbstractSocket.bytesAvailable": (),
- "PySide2.QtNetwork.QAbstractSocket.bytesToWrite": (),
- "PySide2.QtNetwork.QAbstractSocket.canReadLine": (),
- "PySide2.QtNetwork.QAbstractSocket.close": (),
- "PySide2.QtNetwork.QAbstractSocket.connectToHost": [('PySide2.QtNetwork.QHostAddress', 'int', 'PySide2.QtCore.QIODevice.OpenMode'), ('str', 'int', 'PySide2.QtCore.QIODevice.OpenMode', 'PySide2.QtNetwork.QAbstractSocket.NetworkLayerProtocol')],
- "PySide2.QtNetwork.QAbstractSocket.disconnectFromHost": (),
- "PySide2.QtNetwork.QAbstractSocket.error": (),
- "PySide2.QtNetwork.QAbstractSocket.flush": (),
- "PySide2.QtNetwork.QAbstractSocket.isSequential": (),
- "PySide2.QtNetwork.QAbstractSocket.isValid": (),
- "PySide2.QtNetwork.QAbstractSocket.localAddress": (),
- "PySide2.QtNetwork.QAbstractSocket.localPort": (),
- "PySide2.QtNetwork.QAbstractSocket.pauseMode": (),
- "PySide2.QtNetwork.QAbstractSocket.peerAddress": (),
- "PySide2.QtNetwork.QAbstractSocket.peerName": (),
- "PySide2.QtNetwork.QAbstractSocket.peerPort": (),
- "PySide2.QtNetwork.QAbstractSocket.protocolTag": (),
- "PySide2.QtNetwork.QAbstractSocket.proxy": (),
- "PySide2.QtNetwork.QAbstractSocket.readBufferSize": (),
- "PySide2.QtNetwork.QAbstractSocket.readData": ('str', 'int'),
- "PySide2.QtNetwork.QAbstractSocket.readLineData": ('str', 'int'),
- "PySide2.QtNetwork.QAbstractSocket.resume": (),
- "PySide2.QtNetwork.QAbstractSocket.setLocalAddress": ('PySide2.QtNetwork.QHostAddress',),
- "PySide2.QtNetwork.QAbstractSocket.setLocalPort": ('int',),
- "PySide2.QtNetwork.QAbstractSocket.setPauseMode": ('PySide2.QtNetwork.QAbstractSocket.PauseModes',),
- "PySide2.QtNetwork.QAbstractSocket.setPeerAddress": ('PySide2.QtNetwork.QHostAddress',),
- "PySide2.QtNetwork.QAbstractSocket.setPeerName": ('str',),
- "PySide2.QtNetwork.QAbstractSocket.setPeerPort": ('int',),
- "PySide2.QtNetwork.QAbstractSocket.setProtocolTag": ('str',),
- "PySide2.QtNetwork.QAbstractSocket.setProxy": ('PySide2.QtNetwork.QNetworkProxy',),
- "PySide2.QtNetwork.QAbstractSocket.setReadBufferSize": ('int',),
- "PySide2.QtNetwork.QAbstractSocket.setSocketDescriptor": ('int', 'PySide2.QtNetwork.QAbstractSocket.SocketState', 'PySide2.QtCore.QIODevice.OpenMode'),
- "PySide2.QtNetwork.QAbstractSocket.setSocketError": ('PySide2.QtNetwork.QAbstractSocket.SocketError',),
- "PySide2.QtNetwork.QAbstractSocket.setSocketOption": ('PySide2.QtNetwork.QAbstractSocket.SocketOption', 'typing.Any'),
- "PySide2.QtNetwork.QAbstractSocket.setSocketState": ('PySide2.QtNetwork.QAbstractSocket.SocketState',),
- "PySide2.QtNetwork.QAbstractSocket.socketDescriptor": (),
- "PySide2.QtNetwork.QAbstractSocket.socketOption": ('PySide2.QtNetwork.QAbstractSocket.SocketOption',),
- "PySide2.QtNetwork.QAbstractSocket.socketType": (),
- "PySide2.QtNetwork.QAbstractSocket.state": (),
- "PySide2.QtNetwork.QAbstractSocket.waitForBytesWritten": ('int',),
- "PySide2.QtNetwork.QAbstractSocket.waitForConnected": ('int',),
- "PySide2.QtNetwork.QAbstractSocket.waitForDisconnected": ('int',),
- "PySide2.QtNetwork.QAbstractSocket.waitForReadyRead": ('int',),
- "PySide2.QtNetwork.QAbstractSocket.writeData": ('str', 'int'),
-# class PySide2.QtNetwork.QAuthenticator:
- "PySide2.QtNetwork.QAuthenticator.__init__": [(), ('PySide2.QtNetwork.QAuthenticator',)],
- "PySide2.QtNetwork.QAuthenticator.__copy__": (),
- "PySide2.QtNetwork.QAuthenticator.isNull": (),
- "PySide2.QtNetwork.QAuthenticator.option": ('str',),
- "PySide2.QtNetwork.QAuthenticator.options": (),
- "PySide2.QtNetwork.QAuthenticator.password": (),
- "PySide2.QtNetwork.QAuthenticator.realm": (),
- "PySide2.QtNetwork.QAuthenticator.setOption": ('str', 'typing.Any'),
- "PySide2.QtNetwork.QAuthenticator.setPassword": ('str',),
- "PySide2.QtNetwork.QAuthenticator.setRealm": ('str',),
- "PySide2.QtNetwork.QAuthenticator.setUser": ('str',),
- "PySide2.QtNetwork.QAuthenticator.user": (),
-# class PySide2.QtNetwork.QDnsDomainNameRecord:
- "PySide2.QtNetwork.QDnsDomainNameRecord.__init__": [(), ('PySide2.QtNetwork.QDnsDomainNameRecord',)],
- "PySide2.QtNetwork.QDnsDomainNameRecord.__copy__": (),
- "PySide2.QtNetwork.QDnsDomainNameRecord.name": (),
- "PySide2.QtNetwork.QDnsDomainNameRecord.swap": ('PySide2.QtNetwork.QDnsDomainNameRecord',),
- "PySide2.QtNetwork.QDnsDomainNameRecord.timeToLive": (),
- "PySide2.QtNetwork.QDnsDomainNameRecord.value": (),
-# class PySide2.QtNetwork.QDnsHostAddressRecord:
- "PySide2.QtNetwork.QDnsHostAddressRecord.__init__": [(), ('PySide2.QtNetwork.QDnsHostAddressRecord',)],
- "PySide2.QtNetwork.QDnsHostAddressRecord.__copy__": (),
- "PySide2.QtNetwork.QDnsHostAddressRecord.name": (),
- "PySide2.QtNetwork.QDnsHostAddressRecord.swap": ('PySide2.QtNetwork.QDnsHostAddressRecord',),
- "PySide2.QtNetwork.QDnsHostAddressRecord.timeToLive": (),
- "PySide2.QtNetwork.QDnsHostAddressRecord.value": (),
-# class PySide2.QtNetwork.QDnsLookup:
-# class PySide2.QtNetwork.QDnsLookup.Error:
-# class PySide2.QtNetwork.QDnsLookup.Type:
- "PySide2.QtNetwork.QDnsLookup.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtNetwork.QDnsLookup.Type', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtNetwork.QDnsLookup.Type', 'str', 'PySide2.QtNetwork.QHostAddress', 'PySide2.QtCore.QObject')],
- "PySide2.QtNetwork.QDnsLookup.abort": (),
- "PySide2.QtNetwork.QDnsLookup.canonicalNameRecords": (),
- "PySide2.QtNetwork.QDnsLookup.error": (),
- "PySide2.QtNetwork.QDnsLookup.errorString": (),
- "PySide2.QtNetwork.QDnsLookup.hostAddressRecords": (),
- "PySide2.QtNetwork.QDnsLookup.isFinished": (),
- "PySide2.QtNetwork.QDnsLookup.lookup": (),
- "PySide2.QtNetwork.QDnsLookup.mailExchangeRecords": (),
- "PySide2.QtNetwork.QDnsLookup.name": (),
- "PySide2.QtNetwork.QDnsLookup.nameServerRecords": (),
- "PySide2.QtNetwork.QDnsLookup.nameserver": (),
- "PySide2.QtNetwork.QDnsLookup.pointerRecords": (),
- "PySide2.QtNetwork.QDnsLookup.serviceRecords": (),
- "PySide2.QtNetwork.QDnsLookup.setName": ('str',),
- "PySide2.QtNetwork.QDnsLookup.setNameserver": ('PySide2.QtNetwork.QHostAddress',),
- "PySide2.QtNetwork.QDnsLookup.setType": ('PySide2.QtNetwork.QDnsLookup.Type',),
- "PySide2.QtNetwork.QDnsLookup.textRecords": (),
- "PySide2.QtNetwork.QDnsLookup.type": (),
-# class PySide2.QtNetwork.QDnsMailExchangeRecord:
- "PySide2.QtNetwork.QDnsMailExchangeRecord.__init__": [(), ('PySide2.QtNetwork.QDnsMailExchangeRecord',)],
- "PySide2.QtNetwork.QDnsMailExchangeRecord.__copy__": (),
- "PySide2.QtNetwork.QDnsMailExchangeRecord.exchange": (),
- "PySide2.QtNetwork.QDnsMailExchangeRecord.name": (),
- "PySide2.QtNetwork.QDnsMailExchangeRecord.preference": (),
- "PySide2.QtNetwork.QDnsMailExchangeRecord.swap": ('PySide2.QtNetwork.QDnsMailExchangeRecord',),
- "PySide2.QtNetwork.QDnsMailExchangeRecord.timeToLive": (),
-# class PySide2.QtNetwork.QDnsServiceRecord:
- "PySide2.QtNetwork.QDnsServiceRecord.__init__": [(), ('PySide2.QtNetwork.QDnsServiceRecord',)],
- "PySide2.QtNetwork.QDnsServiceRecord.__copy__": (),
- "PySide2.QtNetwork.QDnsServiceRecord.name": (),
- "PySide2.QtNetwork.QDnsServiceRecord.port": (),
- "PySide2.QtNetwork.QDnsServiceRecord.priority": (),
- "PySide2.QtNetwork.QDnsServiceRecord.swap": ('PySide2.QtNetwork.QDnsServiceRecord',),
- "PySide2.QtNetwork.QDnsServiceRecord.target": (),
- "PySide2.QtNetwork.QDnsServiceRecord.timeToLive": (),
- "PySide2.QtNetwork.QDnsServiceRecord.weight": (),
-# class PySide2.QtNetwork.QDnsTextRecord:
- "PySide2.QtNetwork.QDnsTextRecord.__init__": [(), ('PySide2.QtNetwork.QDnsTextRecord',)],
- "PySide2.QtNetwork.QDnsTextRecord.__copy__": (),
- "PySide2.QtNetwork.QDnsTextRecord.name": (),
- "PySide2.QtNetwork.QDnsTextRecord.swap": ('PySide2.QtNetwork.QDnsTextRecord',),
- "PySide2.QtNetwork.QDnsTextRecord.timeToLive": (),
- "PySide2.QtNetwork.QDnsTextRecord.values": (),
-# class PySide2.QtNetwork.QHostAddress:
-# class PySide2.QtNetwork.QHostAddress.ConversionMode:
-# class PySide2.QtNetwork.QHostAddress.ConversionModeFlag:
-# class PySide2.QtNetwork.QHostAddress.SpecialAddress:
- "PySide2.QtNetwork.QHostAddress.__init__": [(), ('PySide2.QtNetwork.QHostAddress',), ('PySide2.QtNetwork.QHostAddress.SpecialAddress',), ('PySide2.QtNetwork.QIPv6Address',), ('int',), ('str',)],
- "PySide2.QtNetwork.QHostAddress.__copy__": (),
- "PySide2.QtNetwork.QHostAddress.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtNetwork.QHostAddress.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtNetwork.QHostAddress.clear": (),
- "PySide2.QtNetwork.QHostAddress.isBroadcast": (),
- "PySide2.QtNetwork.QHostAddress.isEqual": ('PySide2.QtNetwork.QHostAddress', 'PySide2.QtNetwork.QHostAddress.ConversionMode'),
- "PySide2.QtNetwork.QHostAddress.isGlobal": (),
- "PySide2.QtNetwork.QHostAddress.isInSubnet": [('PySide2.QtNetwork.QHostAddress', 'int'), ('typing.Tuple[PySide2.QtNetwork.QHostAddress, int]',)],
- "PySide2.QtNetwork.QHostAddress.isLinkLocal": (),
- "PySide2.QtNetwork.QHostAddress.isLoopback": (),
- "PySide2.QtNetwork.QHostAddress.isMulticast": (),
- "PySide2.QtNetwork.QHostAddress.isNull": (),
- "PySide2.QtNetwork.QHostAddress.isSiteLocal": (),
- "PySide2.QtNetwork.QHostAddress.isUniqueLocalUnicast": (),
- "PySide2.QtNetwork.QHostAddress.parseSubnet": ('str',),
- "PySide2.QtNetwork.QHostAddress.protocol": (),
- "PySide2.QtNetwork.QHostAddress.scopeId": (),
- "PySide2.QtNetwork.QHostAddress.setAddress": [('PySide2.QtNetwork.QHostAddress.SpecialAddress',), ('PySide2.QtNetwork.QIPv6Address',), ('int',), ('str',)],
- "PySide2.QtNetwork.QHostAddress.setScopeId": ('str',),
- "PySide2.QtNetwork.QHostAddress.swap": ('PySide2.QtNetwork.QHostAddress',),
- "PySide2.QtNetwork.QHostAddress.toIPv4Address": (),
- "PySide2.QtNetwork.QHostAddress.toIPv6Address": (),
- "PySide2.QtNetwork.QHostAddress.toString": (),
-# class PySide2.QtNetwork.QHostInfo:
-# class PySide2.QtNetwork.QHostInfo.HostInfoError:
- "PySide2.QtNetwork.QHostInfo.__init__": [('PySide2.QtNetwork.QHostInfo',), ('int',)],
- "PySide2.QtNetwork.QHostInfo.__copy__": (),
- "PySide2.QtNetwork.QHostInfo.abortHostLookup": ('int',),
- "PySide2.QtNetwork.QHostInfo.addresses": (),
- "PySide2.QtNetwork.QHostInfo.error": (),
- "PySide2.QtNetwork.QHostInfo.errorString": (),
- "PySide2.QtNetwork.QHostInfo.fromName": ('str',),
- "PySide2.QtNetwork.QHostInfo.hostName": (),
- "PySide2.QtNetwork.QHostInfo.localDomainName": (),
- "PySide2.QtNetwork.QHostInfo.localHostName": (),
- "PySide2.QtNetwork.QHostInfo.lookupId": (),
- "PySide2.QtNetwork.QHostInfo.setAddresses": ('typing.Sequence[PySide2.QtNetwork.QHostAddress]',),
- "PySide2.QtNetwork.QHostInfo.setError": ('PySide2.QtNetwork.QHostInfo.HostInfoError',),
- "PySide2.QtNetwork.QHostInfo.setErrorString": ('str',),
- "PySide2.QtNetwork.QHostInfo.setHostName": ('str',),
- "PySide2.QtNetwork.QHostInfo.setLookupId": ('int',),
- "PySide2.QtNetwork.QHostInfo.swap": ('PySide2.QtNetwork.QHostInfo',),
-# class PySide2.QtNetwork.QHstsPolicy:
-# class PySide2.QtNetwork.QHstsPolicy.PolicyFlag:
-# class PySide2.QtNetwork.QHstsPolicy.PolicyFlags:
- "PySide2.QtNetwork.QHstsPolicy.__init__": [(), ('PySide2.QtCore.QDateTime', 'PySide2.QtNetwork.QHstsPolicy.PolicyFlags', 'str', 'PySide2.QtCore.QUrl.ParsingMode'), ('PySide2.QtNetwork.QHstsPolicy',)],
- "PySide2.QtNetwork.QHstsPolicy.__copy__": (),
- "PySide2.QtNetwork.QHstsPolicy.expiry": (),
- "PySide2.QtNetwork.QHstsPolicy.host": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtNetwork.QHstsPolicy.includesSubDomains": (),
- "PySide2.QtNetwork.QHstsPolicy.isExpired": (),
- "PySide2.QtNetwork.QHstsPolicy.setExpiry": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtNetwork.QHstsPolicy.setHost": ('str', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtNetwork.QHstsPolicy.setIncludesSubDomains": ('bool',),
- "PySide2.QtNetwork.QHstsPolicy.swap": ('PySide2.QtNetwork.QHstsPolicy',),
-# class PySide2.QtNetwork.QHttpMultiPart:
-# class PySide2.QtNetwork.QHttpMultiPart.ContentType:
- "PySide2.QtNetwork.QHttpMultiPart.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtNetwork.QHttpMultiPart.ContentType', 'PySide2.QtCore.QObject')],
- "PySide2.QtNetwork.QHttpMultiPart.append": ('PySide2.QtNetwork.QHttpPart',),
- "PySide2.QtNetwork.QHttpMultiPart.boundary": (),
- "PySide2.QtNetwork.QHttpMultiPart.setBoundary": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QHttpMultiPart.setContentType": ('PySide2.QtNetwork.QHttpMultiPart.ContentType',),
-# class PySide2.QtNetwork.QHttpPart:
- "PySide2.QtNetwork.QHttpPart.__init__": [(), ('PySide2.QtNetwork.QHttpPart',)],
- "PySide2.QtNetwork.QHttpPart.__copy__": (),
- "PySide2.QtNetwork.QHttpPart.setBody": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QHttpPart.setBodyDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtNetwork.QHttpPart.setHeader": ('PySide2.QtNetwork.QNetworkRequest.KnownHeaders', 'typing.Any'),
- "PySide2.QtNetwork.QHttpPart.setRawHeader": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtNetwork.QHttpPart.swap": ('PySide2.QtNetwork.QHttpPart',),
-# class PySide2.QtNetwork.QIPv6Address:
- "PySide2.QtNetwork.QIPv6Address.__init__": [(), ('PySide2.QtNetwork.QIPv6Address',)],
- "PySide2.QtNetwork.QIPv6Address.__copy__": (),
-# class PySide2.QtNetwork.QLocalServer:
-# class PySide2.QtNetwork.QLocalServer.SocketOption:
-# class PySide2.QtNetwork.QLocalServer.SocketOptions:
- "PySide2.QtNetwork.QLocalServer.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QLocalServer.close": (),
- "PySide2.QtNetwork.QLocalServer.errorString": (),
- "PySide2.QtNetwork.QLocalServer.fullServerName": (),
- "PySide2.QtNetwork.QLocalServer.hasPendingConnections": (),
- "PySide2.QtNetwork.QLocalServer.incomingConnection": ('int',),
- "PySide2.QtNetwork.QLocalServer.isListening": (),
- "PySide2.QtNetwork.QLocalServer.listen": [('int',), ('str',)],
- "PySide2.QtNetwork.QLocalServer.maxPendingConnections": (),
- "PySide2.QtNetwork.QLocalServer.nextPendingConnection": (),
- "PySide2.QtNetwork.QLocalServer.removeServer": ('str',),
- "PySide2.QtNetwork.QLocalServer.serverError": (),
- "PySide2.QtNetwork.QLocalServer.serverName": (),
- "PySide2.QtNetwork.QLocalServer.setMaxPendingConnections": ('int',),
- "PySide2.QtNetwork.QLocalServer.setSocketOptions": ('PySide2.QtNetwork.QLocalServer.SocketOptions',),
- "PySide2.QtNetwork.QLocalServer.socketDescriptor": (),
- "PySide2.QtNetwork.QLocalServer.socketOptions": (),
- "PySide2.QtNetwork.QLocalServer.waitForNewConnection": ('int',),
-# class PySide2.QtNetwork.QLocalSocket:
-# class PySide2.QtNetwork.QLocalSocket.LocalSocketError:
-# class PySide2.QtNetwork.QLocalSocket.LocalSocketState:
- "PySide2.QtNetwork.QLocalSocket.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QLocalSocket.abort": (),
- "PySide2.QtNetwork.QLocalSocket.bytesAvailable": (),
- "PySide2.QtNetwork.QLocalSocket.bytesToWrite": (),
- "PySide2.QtNetwork.QLocalSocket.canReadLine": (),
- "PySide2.QtNetwork.QLocalSocket.close": (),
- "PySide2.QtNetwork.QLocalSocket.connectToServer": [('PySide2.QtCore.QIODevice.OpenMode',), ('str', 'PySide2.QtCore.QIODevice.OpenMode')],
- "PySide2.QtNetwork.QLocalSocket.disconnectFromServer": (),
- "PySide2.QtNetwork.QLocalSocket.error": (),
- "PySide2.QtNetwork.QLocalSocket.flush": (),
- "PySide2.QtNetwork.QLocalSocket.fullServerName": (),
- "PySide2.QtNetwork.QLocalSocket.isSequential": (),
- "PySide2.QtNetwork.QLocalSocket.isValid": (),
- "PySide2.QtNetwork.QLocalSocket.open": ('PySide2.QtCore.QIODevice.OpenMode',),
- "PySide2.QtNetwork.QLocalSocket.readBufferSize": (),
- "PySide2.QtNetwork.QLocalSocket.readData": ('str', 'int'),
- "PySide2.QtNetwork.QLocalSocket.serverName": (),
- "PySide2.QtNetwork.QLocalSocket.setReadBufferSize": ('int',),
- "PySide2.QtNetwork.QLocalSocket.setServerName": ('str',),
- "PySide2.QtNetwork.QLocalSocket.setSocketDescriptor": ('int', 'PySide2.QtNetwork.QLocalSocket.LocalSocketState', 'PySide2.QtCore.QIODevice.OpenMode'),
- "PySide2.QtNetwork.QLocalSocket.socketDescriptor": (),
- "PySide2.QtNetwork.QLocalSocket.state": (),
- "PySide2.QtNetwork.QLocalSocket.waitForBytesWritten": ('int',),
- "PySide2.QtNetwork.QLocalSocket.waitForConnected": ('int',),
- "PySide2.QtNetwork.QLocalSocket.waitForDisconnected": ('int',),
- "PySide2.QtNetwork.QLocalSocket.waitForReadyRead": ('int',),
- "PySide2.QtNetwork.QLocalSocket.writeData": ('str', 'int'),
-# class PySide2.QtNetwork.QNetworkAccessManager:
-# class PySide2.QtNetwork.QNetworkAccessManager.NetworkAccessibility:
-# class PySide2.QtNetwork.QNetworkAccessManager.Operation:
- "PySide2.QtNetwork.QNetworkAccessManager.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QNetworkAccessManager.activeConfiguration": (),
- "PySide2.QtNetwork.QNetworkAccessManager.addStrictTransportSecurityHosts": ('typing.List[PySide2.QtNetwork.QHstsPolicy]',),
- "PySide2.QtNetwork.QNetworkAccessManager.autoDeleteReplies": (),
- "PySide2.QtNetwork.QNetworkAccessManager.cache": (),
- "PySide2.QtNetwork.QNetworkAccessManager.clearAccessCache": (),
- "PySide2.QtNetwork.QNetworkAccessManager.clearConnectionCache": (),
- "PySide2.QtNetwork.QNetworkAccessManager.configuration": (),
- "PySide2.QtNetwork.QNetworkAccessManager.connectToHost": ('str', 'int'),
- "PySide2.QtNetwork.QNetworkAccessManager.connectToHostEncrypted": [('str', 'int', 'PySide2.QtNetwork.QSslConfiguration'), ('str', 'int', 'PySide2.QtNetwork.QSslConfiguration', 'str')],
- "PySide2.QtNetwork.QNetworkAccessManager.cookieJar": (),
- "PySide2.QtNetwork.QNetworkAccessManager.createRequest": ('PySide2.QtNetwork.QNetworkAccessManager.Operation', 'PySide2.QtNetwork.QNetworkRequest', 'PySide2.QtCore.QIODevice'),
- "PySide2.QtNetwork.QNetworkAccessManager.deleteResource": ('PySide2.QtNetwork.QNetworkRequest',),
- "PySide2.QtNetwork.QNetworkAccessManager.enableStrictTransportSecurityStore": ('bool', 'str'),
- "PySide2.QtNetwork.QNetworkAccessManager.get": ('PySide2.QtNetwork.QNetworkRequest',),
- "PySide2.QtNetwork.QNetworkAccessManager.head": ('PySide2.QtNetwork.QNetworkRequest',),
- "PySide2.QtNetwork.QNetworkAccessManager.isStrictTransportSecurityEnabled": (),
- "PySide2.QtNetwork.QNetworkAccessManager.isStrictTransportSecurityStoreEnabled": (),
- "PySide2.QtNetwork.QNetworkAccessManager.networkAccessible": (),
- "PySide2.QtNetwork.QNetworkAccessManager.post": [('PySide2.QtNetwork.QNetworkRequest', 'PySide2.QtCore.QByteArray'), ('PySide2.QtNetwork.QNetworkRequest', 'PySide2.QtCore.QIODevice'), ('PySide2.QtNetwork.QNetworkRequest', 'PySide2.QtNetwork.QHttpMultiPart')],
- "PySide2.QtNetwork.QNetworkAccessManager.proxy": (),
- "PySide2.QtNetwork.QNetworkAccessManager.proxyFactory": (),
- "PySide2.QtNetwork.QNetworkAccessManager.put": [('PySide2.QtNetwork.QNetworkRequest', 'PySide2.QtCore.QByteArray'), ('PySide2.QtNetwork.QNetworkRequest', 'PySide2.QtCore.QIODevice'), ('PySide2.QtNetwork.QNetworkRequest', 'PySide2.QtNetwork.QHttpMultiPart')],
- "PySide2.QtNetwork.QNetworkAccessManager.redirectPolicy": (),
- "PySide2.QtNetwork.QNetworkAccessManager.sendCustomRequest": [('PySide2.QtNetwork.QNetworkRequest', 'PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'), ('PySide2.QtNetwork.QNetworkRequest', 'PySide2.QtCore.QByteArray', 'PySide2.QtCore.QIODevice'), ('PySide2.QtNetwork.QNetworkRequest', 'PySide2.QtCore.QByteArray', 'PySide2.QtNetwork.QHttpMultiPart')],
- "PySide2.QtNetwork.QNetworkAccessManager.setAutoDeleteReplies": ('bool',),
- "PySide2.QtNetwork.QNetworkAccessManager.setCache": ('PySide2.QtNetwork.QAbstractNetworkCache',),
- "PySide2.QtNetwork.QNetworkAccessManager.setConfiguration": ('PySide2.QtNetwork.QNetworkConfiguration',),
- "PySide2.QtNetwork.QNetworkAccessManager.setCookieJar": ('PySide2.QtNetwork.QNetworkCookieJar',),
- "PySide2.QtNetwork.QNetworkAccessManager.setNetworkAccessible": ('PySide2.QtNetwork.QNetworkAccessManager.NetworkAccessibility',),
- "PySide2.QtNetwork.QNetworkAccessManager.setProxy": ('PySide2.QtNetwork.QNetworkProxy',),
- "PySide2.QtNetwork.QNetworkAccessManager.setProxyFactory": ('PySide2.QtNetwork.QNetworkProxyFactory',),
- "PySide2.QtNetwork.QNetworkAccessManager.setRedirectPolicy": ('PySide2.QtNetwork.QNetworkRequest.RedirectPolicy',),
- "PySide2.QtNetwork.QNetworkAccessManager.setStrictTransportSecurityEnabled": ('bool',),
- "PySide2.QtNetwork.QNetworkAccessManager.strictTransportSecurityHosts": (),
- "PySide2.QtNetwork.QNetworkAccessManager.supportedSchemes": (),
- "PySide2.QtNetwork.QNetworkAccessManager.supportedSchemesImplementation": (),
-# class PySide2.QtNetwork.QNetworkAddressEntry:
-# class PySide2.QtNetwork.QNetworkAddressEntry.DnsEligibilityStatus:
- "PySide2.QtNetwork.QNetworkAddressEntry.__init__": [(), ('PySide2.QtNetwork.QNetworkAddressEntry',)],
- "PySide2.QtNetwork.QNetworkAddressEntry.__copy__": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.broadcast": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.clearAddressLifetime": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.dnsEligibility": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.ip": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.isLifetimeKnown": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.isPermanent": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.isTemporary": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.netmask": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.preferredLifetime": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.prefixLength": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.setAddressLifetime": ('PySide2.QtCore.QDeadlineTimer', 'PySide2.QtCore.QDeadlineTimer'),
- "PySide2.QtNetwork.QNetworkAddressEntry.setBroadcast": ('PySide2.QtNetwork.QHostAddress',),
- "PySide2.QtNetwork.QNetworkAddressEntry.setDnsEligibility": ('PySide2.QtNetwork.QNetworkAddressEntry.DnsEligibilityStatus',),
- "PySide2.QtNetwork.QNetworkAddressEntry.setIp": ('PySide2.QtNetwork.QHostAddress',),
- "PySide2.QtNetwork.QNetworkAddressEntry.setNetmask": ('PySide2.QtNetwork.QHostAddress',),
- "PySide2.QtNetwork.QNetworkAddressEntry.setPrefixLength": ('int',),
- "PySide2.QtNetwork.QNetworkAddressEntry.swap": ('PySide2.QtNetwork.QNetworkAddressEntry',),
- "PySide2.QtNetwork.QNetworkAddressEntry.validityLifetime": (),
-# class PySide2.QtNetwork.QNetworkCacheMetaData:
- "PySide2.QtNetwork.QNetworkCacheMetaData.__init__": [(), ('PySide2.QtNetwork.QNetworkCacheMetaData',)],
- "PySide2.QtNetwork.QNetworkCacheMetaData.__copy__": (),
- "PySide2.QtNetwork.QNetworkCacheMetaData.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtNetwork.QNetworkCacheMetaData.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtNetwork.QNetworkCacheMetaData.attributes": (),
- "PySide2.QtNetwork.QNetworkCacheMetaData.expirationDate": (),
- "PySide2.QtNetwork.QNetworkCacheMetaData.isValid": (),
- "PySide2.QtNetwork.QNetworkCacheMetaData.lastModified": (),
- "PySide2.QtNetwork.QNetworkCacheMetaData.rawHeaders": (),
- "PySide2.QtNetwork.QNetworkCacheMetaData.saveToDisk": (),
- "PySide2.QtNetwork.QNetworkCacheMetaData.setAttributes": ('typing.Dict[PySide2.QtNetwork.QNetworkRequest.Attribute, typing.Any]',),
- "PySide2.QtNetwork.QNetworkCacheMetaData.setExpirationDate": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtNetwork.QNetworkCacheMetaData.setLastModified": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtNetwork.QNetworkCacheMetaData.setRawHeaders": ('typing.Sequence[typing.Tuple]',),
- "PySide2.QtNetwork.QNetworkCacheMetaData.setSaveToDisk": ('bool',),
- "PySide2.QtNetwork.QNetworkCacheMetaData.setUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QNetworkCacheMetaData.swap": ('PySide2.QtNetwork.QNetworkCacheMetaData',),
- "PySide2.QtNetwork.QNetworkCacheMetaData.url": (),
-# class PySide2.QtNetwork.QNetworkConfiguration:
-# class PySide2.QtNetwork.QNetworkConfiguration.BearerType:
-# class PySide2.QtNetwork.QNetworkConfiguration.Purpose:
-# class PySide2.QtNetwork.QNetworkConfiguration.StateFlag:
-# class PySide2.QtNetwork.QNetworkConfiguration.StateFlags:
-# class PySide2.QtNetwork.QNetworkConfiguration.Type:
- "PySide2.QtNetwork.QNetworkConfiguration.__init__": [(), ('PySide2.QtNetwork.QNetworkConfiguration',)],
- "PySide2.QtNetwork.QNetworkConfiguration.__copy__": (),
- "PySide2.QtNetwork.QNetworkConfiguration.bearerType": (),
- "PySide2.QtNetwork.QNetworkConfiguration.bearerTypeFamily": (),
- "PySide2.QtNetwork.QNetworkConfiguration.bearerTypeName": (),
- "PySide2.QtNetwork.QNetworkConfiguration.children": (),
- "PySide2.QtNetwork.QNetworkConfiguration.connectTimeout": (),
- "PySide2.QtNetwork.QNetworkConfiguration.identifier": (),
- "PySide2.QtNetwork.QNetworkConfiguration.isRoamingAvailable": (),
- "PySide2.QtNetwork.QNetworkConfiguration.isValid": (),
- "PySide2.QtNetwork.QNetworkConfiguration.name": (),
- "PySide2.QtNetwork.QNetworkConfiguration.purpose": (),
- "PySide2.QtNetwork.QNetworkConfiguration.setConnectTimeout": ('int',),
- "PySide2.QtNetwork.QNetworkConfiguration.state": (),
- "PySide2.QtNetwork.QNetworkConfiguration.swap": ('PySide2.QtNetwork.QNetworkConfiguration',),
- "PySide2.QtNetwork.QNetworkConfiguration.type": (),
-# class PySide2.QtNetwork.QNetworkConfigurationManager:
-# class PySide2.QtNetwork.QNetworkConfigurationManager.Capabilities:
-# class PySide2.QtNetwork.QNetworkConfigurationManager.Capability:
- "PySide2.QtNetwork.QNetworkConfigurationManager.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QNetworkConfigurationManager.allConfigurations": ('PySide2.QtNetwork.QNetworkConfiguration.StateFlags',),
- "PySide2.QtNetwork.QNetworkConfigurationManager.capabilities": (),
- "PySide2.QtNetwork.QNetworkConfigurationManager.configurationFromIdentifier": ('str',),
- "PySide2.QtNetwork.QNetworkConfigurationManager.defaultConfiguration": (),
- "PySide2.QtNetwork.QNetworkConfigurationManager.isOnline": (),
- "PySide2.QtNetwork.QNetworkConfigurationManager.updateConfigurations": (),
-# class PySide2.QtNetwork.QNetworkCookie:
-# class PySide2.QtNetwork.QNetworkCookie.RawForm:
- "PySide2.QtNetwork.QNetworkCookie.__init__": [('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'), ('PySide2.QtNetwork.QNetworkCookie',)],
- "PySide2.QtNetwork.QNetworkCookie.__copy__": (),
- "PySide2.QtNetwork.QNetworkCookie.domain": (),
- "PySide2.QtNetwork.QNetworkCookie.expirationDate": (),
- "PySide2.QtNetwork.QNetworkCookie.hasSameIdentifier": ('PySide2.QtNetwork.QNetworkCookie',),
- "PySide2.QtNetwork.QNetworkCookie.isHttpOnly": (),
- "PySide2.QtNetwork.QNetworkCookie.isSecure": (),
- "PySide2.QtNetwork.QNetworkCookie.isSessionCookie": (),
- "PySide2.QtNetwork.QNetworkCookie.name": (),
- "PySide2.QtNetwork.QNetworkCookie.normalize": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QNetworkCookie.parseCookies": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkCookie.path": (),
- "PySide2.QtNetwork.QNetworkCookie.setDomain": ('str',),
- "PySide2.QtNetwork.QNetworkCookie.setExpirationDate": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtNetwork.QNetworkCookie.setHttpOnly": ('bool',),
- "PySide2.QtNetwork.QNetworkCookie.setName": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkCookie.setPath": ('str',),
- "PySide2.QtNetwork.QNetworkCookie.setSecure": ('bool',),
- "PySide2.QtNetwork.QNetworkCookie.setValue": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkCookie.swap": ('PySide2.QtNetwork.QNetworkCookie',),
- "PySide2.QtNetwork.QNetworkCookie.toRawForm": ('PySide2.QtNetwork.QNetworkCookie.RawForm',),
- "PySide2.QtNetwork.QNetworkCookie.value": (),
-# class PySide2.QtNetwork.QNetworkCookieJar:
- "PySide2.QtNetwork.QNetworkCookieJar.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QNetworkCookieJar.allCookies": (),
- "PySide2.QtNetwork.QNetworkCookieJar.cookiesForUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QNetworkCookieJar.deleteCookie": ('PySide2.QtNetwork.QNetworkCookie',),
- "PySide2.QtNetwork.QNetworkCookieJar.insertCookie": ('PySide2.QtNetwork.QNetworkCookie',),
- "PySide2.QtNetwork.QNetworkCookieJar.setAllCookies": ('typing.Sequence[PySide2.QtNetwork.QNetworkCookie]',),
- "PySide2.QtNetwork.QNetworkCookieJar.setCookiesFromUrl": ('typing.Sequence[PySide2.QtNetwork.QNetworkCookie]', 'PySide2.QtCore.QUrl'),
- "PySide2.QtNetwork.QNetworkCookieJar.updateCookie": ('PySide2.QtNetwork.QNetworkCookie',),
- "PySide2.QtNetwork.QNetworkCookieJar.validateCookie": ('PySide2.QtNetwork.QNetworkCookie', 'PySide2.QtCore.QUrl'),
-# class PySide2.QtNetwork.QNetworkDatagram:
- "PySide2.QtNetwork.QNetworkDatagram.__init__": [(), ('PySide2.QtCore.QByteArray', 'PySide2.QtNetwork.QHostAddress', 'int'), ('PySide2.QtNetwork.QNetworkDatagram',)],
- "PySide2.QtNetwork.QNetworkDatagram.__copy__": (),
- "PySide2.QtNetwork.QNetworkDatagram.clear": (),
- "PySide2.QtNetwork.QNetworkDatagram.data": (),
- "PySide2.QtNetwork.QNetworkDatagram.destinationAddress": (),
- "PySide2.QtNetwork.QNetworkDatagram.destinationPort": (),
- "PySide2.QtNetwork.QNetworkDatagram.hopLimit": (),
- "PySide2.QtNetwork.QNetworkDatagram.interfaceIndex": (),
- "PySide2.QtNetwork.QNetworkDatagram.isNull": (),
- "PySide2.QtNetwork.QNetworkDatagram.isValid": (),
- "PySide2.QtNetwork.QNetworkDatagram.makeReply": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkDatagram.senderAddress": (),
- "PySide2.QtNetwork.QNetworkDatagram.senderPort": (),
- "PySide2.QtNetwork.QNetworkDatagram.setData": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkDatagram.setDestination": ('PySide2.QtNetwork.QHostAddress', 'int'),
- "PySide2.QtNetwork.QNetworkDatagram.setHopLimit": ('int',),
- "PySide2.QtNetwork.QNetworkDatagram.setInterfaceIndex": ('int',),
- "PySide2.QtNetwork.QNetworkDatagram.setSender": ('PySide2.QtNetwork.QHostAddress', 'int'),
- "PySide2.QtNetwork.QNetworkDatagram.swap": ('PySide2.QtNetwork.QNetworkDatagram',),
-# class PySide2.QtNetwork.QNetworkDiskCache:
- "PySide2.QtNetwork.QNetworkDiskCache.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QNetworkDiskCache.cacheDirectory": (),
- "PySide2.QtNetwork.QNetworkDiskCache.cacheSize": (),
- "PySide2.QtNetwork.QNetworkDiskCache.clear": (),
- "PySide2.QtNetwork.QNetworkDiskCache.data": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QNetworkDiskCache.expire": (),
- "PySide2.QtNetwork.QNetworkDiskCache.fileMetaData": ('str',),
- "PySide2.QtNetwork.QNetworkDiskCache.insert": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtNetwork.QNetworkDiskCache.maximumCacheSize": (),
- "PySide2.QtNetwork.QNetworkDiskCache.metaData": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QNetworkDiskCache.prepare": ('PySide2.QtNetwork.QNetworkCacheMetaData',),
- "PySide2.QtNetwork.QNetworkDiskCache.remove": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QNetworkDiskCache.setCacheDirectory": ('str',),
- "PySide2.QtNetwork.QNetworkDiskCache.setMaximumCacheSize": ('int',),
- "PySide2.QtNetwork.QNetworkDiskCache.updateMetaData": ('PySide2.QtNetwork.QNetworkCacheMetaData',),
-# class PySide2.QtNetwork.QNetworkInterface:
-# class PySide2.QtNetwork.QNetworkInterface.InterfaceFlag:
-# class PySide2.QtNetwork.QNetworkInterface.InterfaceFlags:
-# class PySide2.QtNetwork.QNetworkInterface.InterfaceType:
- "PySide2.QtNetwork.QNetworkInterface.__init__": [(), ('PySide2.QtNetwork.QNetworkInterface',)],
- "PySide2.QtNetwork.QNetworkInterface.__copy__": (),
- "PySide2.QtNetwork.QNetworkInterface.addressEntries": (),
- "PySide2.QtNetwork.QNetworkInterface.allAddresses": (),
- "PySide2.QtNetwork.QNetworkInterface.allInterfaces": (),
- "PySide2.QtNetwork.QNetworkInterface.flags": (),
- "PySide2.QtNetwork.QNetworkInterface.hardwareAddress": (),
- "PySide2.QtNetwork.QNetworkInterface.humanReadableName": (),
- "PySide2.QtNetwork.QNetworkInterface.index": (),
- "PySide2.QtNetwork.QNetworkInterface.interfaceFromIndex": ('int',),
- "PySide2.QtNetwork.QNetworkInterface.interfaceFromName": ('str',),
- "PySide2.QtNetwork.QNetworkInterface.interfaceIndexFromName": ('str',),
- "PySide2.QtNetwork.QNetworkInterface.interfaceNameFromIndex": ('int',),
- "PySide2.QtNetwork.QNetworkInterface.isValid": (),
- "PySide2.QtNetwork.QNetworkInterface.maximumTransmissionUnit": (),
- "PySide2.QtNetwork.QNetworkInterface.name": (),
- "PySide2.QtNetwork.QNetworkInterface.swap": ('PySide2.QtNetwork.QNetworkInterface',),
- "PySide2.QtNetwork.QNetworkInterface.type": (),
-# class PySide2.QtNetwork.QNetworkProxy:
-# class PySide2.QtNetwork.QNetworkProxy.Capabilities:
-# class PySide2.QtNetwork.QNetworkProxy.Capability:
-# class PySide2.QtNetwork.QNetworkProxy.ProxyType:
- "PySide2.QtNetwork.QNetworkProxy.__init__": [(), ('PySide2.QtNetwork.QNetworkProxy',), ('PySide2.QtNetwork.QNetworkProxy.ProxyType', 'str', 'int', 'str', 'str')],
- "PySide2.QtNetwork.QNetworkProxy.__copy__": (),
- "PySide2.QtNetwork.QNetworkProxy.applicationProxy": (),
- "PySide2.QtNetwork.QNetworkProxy.capabilities": (),
- "PySide2.QtNetwork.QNetworkProxy.hasRawHeader": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkProxy.header": ('PySide2.QtNetwork.QNetworkRequest.KnownHeaders',),
- "PySide2.QtNetwork.QNetworkProxy.hostName": (),
- "PySide2.QtNetwork.QNetworkProxy.isCachingProxy": (),
- "PySide2.QtNetwork.QNetworkProxy.isTransparentProxy": (),
- "PySide2.QtNetwork.QNetworkProxy.password": (),
- "PySide2.QtNetwork.QNetworkProxy.port": (),
- "PySide2.QtNetwork.QNetworkProxy.rawHeader": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkProxy.rawHeaderList": (),
- "PySide2.QtNetwork.QNetworkProxy.setApplicationProxy": ('PySide2.QtNetwork.QNetworkProxy',),
- "PySide2.QtNetwork.QNetworkProxy.setCapabilities": ('PySide2.QtNetwork.QNetworkProxy.Capabilities',),
- "PySide2.QtNetwork.QNetworkProxy.setHeader": ('PySide2.QtNetwork.QNetworkRequest.KnownHeaders', 'typing.Any'),
- "PySide2.QtNetwork.QNetworkProxy.setHostName": ('str',),
- "PySide2.QtNetwork.QNetworkProxy.setPassword": ('str',),
- "PySide2.QtNetwork.QNetworkProxy.setPort": ('int',),
- "PySide2.QtNetwork.QNetworkProxy.setRawHeader": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtNetwork.QNetworkProxy.setType": ('PySide2.QtNetwork.QNetworkProxy.ProxyType',),
- "PySide2.QtNetwork.QNetworkProxy.setUser": ('str',),
- "PySide2.QtNetwork.QNetworkProxy.swap": ('PySide2.QtNetwork.QNetworkProxy',),
- "PySide2.QtNetwork.QNetworkProxy.type": (),
- "PySide2.QtNetwork.QNetworkProxy.user": (),
-# class PySide2.QtNetwork.QNetworkProxyFactory:
- "PySide2.QtNetwork.QNetworkProxyFactory.__init__": (),
- "PySide2.QtNetwork.QNetworkProxyFactory.proxyForQuery": ('PySide2.QtNetwork.QNetworkProxyQuery',),
- "PySide2.QtNetwork.QNetworkProxyFactory.queryProxy": ('PySide2.QtNetwork.QNetworkProxyQuery',),
- "PySide2.QtNetwork.QNetworkProxyFactory.setApplicationProxyFactory": ('PySide2.QtNetwork.QNetworkProxyFactory',),
- "PySide2.QtNetwork.QNetworkProxyFactory.setUseSystemConfiguration": ('bool',),
- "PySide2.QtNetwork.QNetworkProxyFactory.systemProxyForQuery": ('PySide2.QtNetwork.QNetworkProxyQuery',),
- "PySide2.QtNetwork.QNetworkProxyFactory.usesSystemConfiguration": (),
-# class PySide2.QtNetwork.QNetworkProxyQuery:
-# class PySide2.QtNetwork.QNetworkProxyQuery.QueryType:
- "PySide2.QtNetwork.QNetworkProxyQuery.__init__": [(), ('PySide2.QtCore.QUrl', 'PySide2.QtNetwork.QNetworkProxyQuery.QueryType'), ('PySide2.QtNetwork.QNetworkConfiguration', 'PySide2.QtCore.QUrl', 'PySide2.QtNetwork.QNetworkProxyQuery.QueryType'), ('PySide2.QtNetwork.QNetworkConfiguration', 'int', 'str', 'PySide2.QtNetwork.QNetworkProxyQuery.QueryType'), ('PySide2.QtNetwork.QNetworkConfiguration', 'str', 'int', 'str', 'PySide2.QtNetwork.QNetworkProxyQuery.QueryType'), ('PySide2.QtNetwork.QNetworkProxyQuery',), ('int', 'str', 'PySide2.QtNetwork.QNetworkProxyQuery.QueryType'), ('str', 'int', 'str', 'PySide2.QtNetwork.QNetworkProxyQuery.QueryType')],
- "PySide2.QtNetwork.QNetworkProxyQuery.__copy__": (),
- "PySide2.QtNetwork.QNetworkProxyQuery.localPort": (),
- "PySide2.QtNetwork.QNetworkProxyQuery.networkConfiguration": (),
- "PySide2.QtNetwork.QNetworkProxyQuery.peerHostName": (),
- "PySide2.QtNetwork.QNetworkProxyQuery.peerPort": (),
- "PySide2.QtNetwork.QNetworkProxyQuery.protocolTag": (),
- "PySide2.QtNetwork.QNetworkProxyQuery.queryType": (),
- "PySide2.QtNetwork.QNetworkProxyQuery.setLocalPort": ('int',),
- "PySide2.QtNetwork.QNetworkProxyQuery.setNetworkConfiguration": ('PySide2.QtNetwork.QNetworkConfiguration',),
- "PySide2.QtNetwork.QNetworkProxyQuery.setPeerHostName": ('str',),
- "PySide2.QtNetwork.QNetworkProxyQuery.setPeerPort": ('int',),
- "PySide2.QtNetwork.QNetworkProxyQuery.setProtocolTag": ('str',),
- "PySide2.QtNetwork.QNetworkProxyQuery.setQueryType": ('PySide2.QtNetwork.QNetworkProxyQuery.QueryType',),
- "PySide2.QtNetwork.QNetworkProxyQuery.setUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QNetworkProxyQuery.swap": ('PySide2.QtNetwork.QNetworkProxyQuery',),
- "PySide2.QtNetwork.QNetworkProxyQuery.url": (),
-# class PySide2.QtNetwork.QNetworkReply:
-# class PySide2.QtNetwork.QNetworkReply.NetworkError:
- "PySide2.QtNetwork.QNetworkReply.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QNetworkReply.abort": (),
- "PySide2.QtNetwork.QNetworkReply.attribute": ('PySide2.QtNetwork.QNetworkRequest.Attribute',),
- "PySide2.QtNetwork.QNetworkReply.close": (),
- "PySide2.QtNetwork.QNetworkReply.error": (),
- "PySide2.QtNetwork.QNetworkReply.hasRawHeader": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkReply.header": ('PySide2.QtNetwork.QNetworkRequest.KnownHeaders',),
- "PySide2.QtNetwork.QNetworkReply.ignoreSslErrors": [(), ('typing.Sequence[PySide2.QtNetwork.QSslError]',)],
- "PySide2.QtNetwork.QNetworkReply.ignoreSslErrorsImplementation": ('typing.Sequence[PySide2.QtNetwork.QSslError]',),
- "PySide2.QtNetwork.QNetworkReply.isFinished": (),
- "PySide2.QtNetwork.QNetworkReply.isRunning": (),
- "PySide2.QtNetwork.QNetworkReply.isSequential": (),
- "PySide2.QtNetwork.QNetworkReply.manager": (),
- "PySide2.QtNetwork.QNetworkReply.operation": (),
- "PySide2.QtNetwork.QNetworkReply.rawHeader": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkReply.rawHeaderList": (),
- "PySide2.QtNetwork.QNetworkReply.rawHeaderPairs": (),
- "PySide2.QtNetwork.QNetworkReply.readBufferSize": (),
- "PySide2.QtNetwork.QNetworkReply.request": (),
- "PySide2.QtNetwork.QNetworkReply.setAttribute": ('PySide2.QtNetwork.QNetworkRequest.Attribute', 'typing.Any'),
- "PySide2.QtNetwork.QNetworkReply.setError": ('PySide2.QtNetwork.QNetworkReply.NetworkError', 'str'),
- "PySide2.QtNetwork.QNetworkReply.setFinished": ('bool',),
- "PySide2.QtNetwork.QNetworkReply.setHeader": ('PySide2.QtNetwork.QNetworkRequest.KnownHeaders', 'typing.Any'),
- "PySide2.QtNetwork.QNetworkReply.setOperation": ('PySide2.QtNetwork.QNetworkAccessManager.Operation',),
- "PySide2.QtNetwork.QNetworkReply.setRawHeader": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtNetwork.QNetworkReply.setReadBufferSize": ('int',),
- "PySide2.QtNetwork.QNetworkReply.setRequest": ('PySide2.QtNetwork.QNetworkRequest',),
- "PySide2.QtNetwork.QNetworkReply.setSslConfiguration": ('PySide2.QtNetwork.QSslConfiguration',),
- "PySide2.QtNetwork.QNetworkReply.setSslConfigurationImplementation": ('PySide2.QtNetwork.QSslConfiguration',),
- "PySide2.QtNetwork.QNetworkReply.setUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QNetworkReply.sslConfiguration": (),
- "PySide2.QtNetwork.QNetworkReply.sslConfigurationImplementation": ('PySide2.QtNetwork.QSslConfiguration',),
- "PySide2.QtNetwork.QNetworkReply.url": (),
- "PySide2.QtNetwork.QNetworkReply.writeData": ('str', 'int'),
-# class PySide2.QtNetwork.QNetworkRequest:
-# class PySide2.QtNetwork.QNetworkRequest.Attribute:
-# class PySide2.QtNetwork.QNetworkRequest.CacheLoadControl:
-# class PySide2.QtNetwork.QNetworkRequest.KnownHeaders:
-# class PySide2.QtNetwork.QNetworkRequest.LoadControl:
-# class PySide2.QtNetwork.QNetworkRequest.Priority:
-# class PySide2.QtNetwork.QNetworkRequest.RedirectPolicy:
- "PySide2.QtNetwork.QNetworkRequest.__init__": [(), ('PySide2.QtCore.QUrl',), ('PySide2.QtNetwork.QNetworkRequest',)],
- "PySide2.QtNetwork.QNetworkRequest.__copy__": (),
- "PySide2.QtNetwork.QNetworkRequest.attribute": ('PySide2.QtNetwork.QNetworkRequest.Attribute', 'typing.Any'),
- "PySide2.QtNetwork.QNetworkRequest.hasRawHeader": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkRequest.header": ('PySide2.QtNetwork.QNetworkRequest.KnownHeaders',),
- "PySide2.QtNetwork.QNetworkRequest.maximumRedirectsAllowed": (),
- "PySide2.QtNetwork.QNetworkRequest.originatingObject": (),
- "PySide2.QtNetwork.QNetworkRequest.peerVerifyName": (),
- "PySide2.QtNetwork.QNetworkRequest.priority": (),
- "PySide2.QtNetwork.QNetworkRequest.rawHeader": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkRequest.rawHeaderList": (),
- "PySide2.QtNetwork.QNetworkRequest.setAttribute": ('PySide2.QtNetwork.QNetworkRequest.Attribute', 'typing.Any'),
- "PySide2.QtNetwork.QNetworkRequest.setHeader": ('PySide2.QtNetwork.QNetworkRequest.KnownHeaders', 'typing.Any'),
- "PySide2.QtNetwork.QNetworkRequest.setMaximumRedirectsAllowed": ('int',),
- "PySide2.QtNetwork.QNetworkRequest.setOriginatingObject": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QNetworkRequest.setPeerVerifyName": ('str',),
- "PySide2.QtNetwork.QNetworkRequest.setPriority": ('PySide2.QtNetwork.QNetworkRequest.Priority',),
- "PySide2.QtNetwork.QNetworkRequest.setRawHeader": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtNetwork.QNetworkRequest.setSslConfiguration": ('PySide2.QtNetwork.QSslConfiguration',),
- "PySide2.QtNetwork.QNetworkRequest.setUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QNetworkRequest.sslConfiguration": (),
- "PySide2.QtNetwork.QNetworkRequest.swap": ('PySide2.QtNetwork.QNetworkRequest',),
- "PySide2.QtNetwork.QNetworkRequest.url": (),
-# class PySide2.QtNetwork.QNetworkSession:
-# class PySide2.QtNetwork.QNetworkSession.SessionError:
-# class PySide2.QtNetwork.QNetworkSession.State:
-# class PySide2.QtNetwork.QNetworkSession.UsagePolicies:
-# class PySide2.QtNetwork.QNetworkSession.UsagePolicy:
- "PySide2.QtNetwork.QNetworkSession.__init__": ('PySide2.QtNetwork.QNetworkConfiguration', 'PySide2.QtCore.QObject'),
- "PySide2.QtNetwork.QNetworkSession.accept": (),
- "PySide2.QtNetwork.QNetworkSession.activeTime": (),
- "PySide2.QtNetwork.QNetworkSession.bytesReceived": (),
- "PySide2.QtNetwork.QNetworkSession.bytesWritten": (),
- "PySide2.QtNetwork.QNetworkSession.close": (),
- "PySide2.QtNetwork.QNetworkSession.configuration": (),
- "PySide2.QtNetwork.QNetworkSession.connectNotify": ('PySide2.QtCore.QMetaMethod',),
- "PySide2.QtNetwork.QNetworkSession.disconnectNotify": ('PySide2.QtCore.QMetaMethod',),
- "PySide2.QtNetwork.QNetworkSession.error": (),
- "PySide2.QtNetwork.QNetworkSession.errorString": (),
- "PySide2.QtNetwork.QNetworkSession.ignore": (),
- "PySide2.QtNetwork.QNetworkSession.interface": (),
- "PySide2.QtNetwork.QNetworkSession.isOpen": (),
- "PySide2.QtNetwork.QNetworkSession.migrate": (),
- "PySide2.QtNetwork.QNetworkSession.open": (),
- "PySide2.QtNetwork.QNetworkSession.reject": (),
- "PySide2.QtNetwork.QNetworkSession.sessionProperty": ('str',),
- "PySide2.QtNetwork.QNetworkSession.setSessionProperty": ('str', 'typing.Any'),
- "PySide2.QtNetwork.QNetworkSession.state": (),
- "PySide2.QtNetwork.QNetworkSession.stop": (),
- "PySide2.QtNetwork.QNetworkSession.usagePolicies": (),
- "PySide2.QtNetwork.QNetworkSession.waitForOpened": ('int',),
-# class PySide2.QtNetwork.QOcspCertificateStatus:
-# class PySide2.QtNetwork.QOcspResponse:
- "PySide2.QtNetwork.QOcspResponse.__init__": [(), ('PySide2.QtNetwork.QOcspResponse',)],
- "PySide2.QtNetwork.QOcspResponse.__copy__": (),
- "PySide2.QtNetwork.QOcspResponse.certificateStatus": (),
- "PySide2.QtNetwork.QOcspResponse.revocationReason": (),
- "PySide2.QtNetwork.QOcspResponse.subject": (),
- "PySide2.QtNetwork.QOcspResponse.swap": ('PySide2.QtNetwork.QOcspResponse',),
-# class PySide2.QtNetwork.QOcspRevocationReason:
-# class PySide2.QtNetwork.QPasswordDigestor:
- "PySide2.QtNetwork.QPasswordDigestor.deriveKeyPbkdf1": ('PySide2.QtCore.QCryptographicHash.Algorithm', 'PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray', 'int', 'int'),
- "PySide2.QtNetwork.QPasswordDigestor.deriveKeyPbkdf2": ('PySide2.QtCore.QCryptographicHash.Algorithm', 'PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray', 'int', 'int'),
-# class PySide2.QtNetwork.QSsl:
-# class PySide2.QtNetwork.QSsl.AlternativeNameEntryType:
-# class PySide2.QtNetwork.QSsl.EncodingFormat:
-# class PySide2.QtNetwork.QSsl.KeyAlgorithm:
-# class PySide2.QtNetwork.QSsl.KeyType:
-# class PySide2.QtNetwork.QSsl.SslOption:
-# class PySide2.QtNetwork.QSsl.SslOptions:
-# class PySide2.QtNetwork.QSsl.SslProtocol:
-# class PySide2.QtNetwork.QSslCertificate:
-# class PySide2.QtNetwork.QSslCertificate.SubjectInfo:
- "PySide2.QtNetwork.QSslCertificate.__init__": [('PySide2.QtCore.QByteArray', 'PySide2.QtNetwork.QSsl.EncodingFormat'), ('PySide2.QtCore.QIODevice', 'PySide2.QtNetwork.QSsl.EncodingFormat'), ('PySide2.QtNetwork.QSslCertificate',)],
- "PySide2.QtNetwork.QSslCertificate.__copy__": (),
- "PySide2.QtNetwork.QSslCertificate.clear": (),
- "PySide2.QtNetwork.QSslCertificate.digest": ('PySide2.QtCore.QCryptographicHash.Algorithm',),
- "PySide2.QtNetwork.QSslCertificate.effectiveDate": (),
- "PySide2.QtNetwork.QSslCertificate.expiryDate": (),
- "PySide2.QtNetwork.QSslCertificate.extensions": (),
- "PySide2.QtNetwork.QSslCertificate.fromData": ('PySide2.QtCore.QByteArray', 'PySide2.QtNetwork.QSsl.EncodingFormat'),
- "PySide2.QtNetwork.QSslCertificate.fromDevice": ('PySide2.QtCore.QIODevice', 'PySide2.QtNetwork.QSsl.EncodingFormat'),
- "PySide2.QtNetwork.QSslCertificate.fromPath": ('str', 'PySide2.QtNetwork.QSsl.EncodingFormat', 'PySide2.QtCore.QRegExp.PatternSyntax'),
- "PySide2.QtNetwork.QSslCertificate.handle": (),
- "PySide2.QtNetwork.QSslCertificate.importPkcs12": ('PySide2.QtCore.QIODevice', 'PySide2.QtNetwork.QSslKey', 'PySide2.QtNetwork.QSslCertificate', 'typing.Sequence[PySide2.QtNetwork.QSslCertificate]', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtNetwork.QSslCertificate.isBlacklisted": (),
- "PySide2.QtNetwork.QSslCertificate.isNull": (),
- "PySide2.QtNetwork.QSslCertificate.isSelfSigned": (),
- "PySide2.QtNetwork.QSslCertificate.issuerDisplayName": (),
- "PySide2.QtNetwork.QSslCertificate.issuerInfo": [('PySide2.QtCore.QByteArray',), ('PySide2.QtNetwork.QSslCertificate.SubjectInfo',)],
- "PySide2.QtNetwork.QSslCertificate.issuerInfoAttributes": (),
- "PySide2.QtNetwork.QSslCertificate.publicKey": (),
- "PySide2.QtNetwork.QSslCertificate.serialNumber": (),
- "PySide2.QtNetwork.QSslCertificate.subjectAlternativeNames": (),
- "PySide2.QtNetwork.QSslCertificate.subjectDisplayName": (),
- "PySide2.QtNetwork.QSslCertificate.subjectInfo": [('PySide2.QtCore.QByteArray',), ('PySide2.QtNetwork.QSslCertificate.SubjectInfo',)],
- "PySide2.QtNetwork.QSslCertificate.subjectInfoAttributes": (),
- "PySide2.QtNetwork.QSslCertificate.swap": ('PySide2.QtNetwork.QSslCertificate',),
- "PySide2.QtNetwork.QSslCertificate.toDer": (),
- "PySide2.QtNetwork.QSslCertificate.toPem": (),
- "PySide2.QtNetwork.QSslCertificate.toText": (),
- "PySide2.QtNetwork.QSslCertificate.verify": ('typing.Sequence[PySide2.QtNetwork.QSslCertificate]', 'str'),
- "PySide2.QtNetwork.QSslCertificate.version": (),
-# class PySide2.QtNetwork.QSslCertificateExtension:
- "PySide2.QtNetwork.QSslCertificateExtension.__init__": [(), ('PySide2.QtNetwork.QSslCertificateExtension',)],
- "PySide2.QtNetwork.QSslCertificateExtension.__copy__": (),
- "PySide2.QtNetwork.QSslCertificateExtension.isCritical": (),
- "PySide2.QtNetwork.QSslCertificateExtension.isSupported": (),
- "PySide2.QtNetwork.QSslCertificateExtension.name": (),
- "PySide2.QtNetwork.QSslCertificateExtension.oid": (),
- "PySide2.QtNetwork.QSslCertificateExtension.swap": ('PySide2.QtNetwork.QSslCertificateExtension',),
- "PySide2.QtNetwork.QSslCertificateExtension.value": (),
-# class PySide2.QtNetwork.QSslCipher:
- "PySide2.QtNetwork.QSslCipher.__init__": [(), ('PySide2.QtNetwork.QSslCipher',), ('str',), ('str', 'PySide2.QtNetwork.QSsl.SslProtocol')],
- "PySide2.QtNetwork.QSslCipher.__copy__": (),
- "PySide2.QtNetwork.QSslCipher.authenticationMethod": (),
- "PySide2.QtNetwork.QSslCipher.encryptionMethod": (),
- "PySide2.QtNetwork.QSslCipher.isNull": (),
- "PySide2.QtNetwork.QSslCipher.keyExchangeMethod": (),
- "PySide2.QtNetwork.QSslCipher.name": (),
- "PySide2.QtNetwork.QSslCipher.protocol": (),
- "PySide2.QtNetwork.QSslCipher.protocolString": (),
- "PySide2.QtNetwork.QSslCipher.supportedBits": (),
- "PySide2.QtNetwork.QSslCipher.swap": ('PySide2.QtNetwork.QSslCipher',),
- "PySide2.QtNetwork.QSslCipher.usedBits": (),
-# class PySide2.QtNetwork.QSslConfiguration:
-# class PySide2.QtNetwork.QSslConfiguration.NextProtocolNegotiationStatus:
- "PySide2.QtNetwork.QSslConfiguration.__init__": [(), ('PySide2.QtNetwork.QSslConfiguration',)],
- "PySide2.QtNetwork.QSslConfiguration.__copy__": (),
- "PySide2.QtNetwork.QSslConfiguration.allowedNextProtocols": (),
- "PySide2.QtNetwork.QSslConfiguration.backendConfiguration": (),
- "PySide2.QtNetwork.QSslConfiguration.caCertificates": (),
- "PySide2.QtNetwork.QSslConfiguration.ciphers": (),
- "PySide2.QtNetwork.QSslConfiguration.defaultConfiguration": (),
- "PySide2.QtNetwork.QSslConfiguration.diffieHellmanParameters": (),
- "PySide2.QtNetwork.QSslConfiguration.ephemeralServerKey": (),
- "PySide2.QtNetwork.QSslConfiguration.isNull": (),
- "PySide2.QtNetwork.QSslConfiguration.localCertificate": (),
- "PySide2.QtNetwork.QSslConfiguration.localCertificateChain": (),
- "PySide2.QtNetwork.QSslConfiguration.nextNegotiatedProtocol": (),
- "PySide2.QtNetwork.QSslConfiguration.nextProtocolNegotiationStatus": (),
- "PySide2.QtNetwork.QSslConfiguration.ocspStaplingEnabled": (),
- "PySide2.QtNetwork.QSslConfiguration.peerCertificate": (),
- "PySide2.QtNetwork.QSslConfiguration.peerCertificateChain": (),
- "PySide2.QtNetwork.QSslConfiguration.peerVerifyDepth": (),
- "PySide2.QtNetwork.QSslConfiguration.peerVerifyMode": (),
- "PySide2.QtNetwork.QSslConfiguration.preSharedKeyIdentityHint": (),
- "PySide2.QtNetwork.QSslConfiguration.privateKey": (),
- "PySide2.QtNetwork.QSslConfiguration.protocol": (),
- "PySide2.QtNetwork.QSslConfiguration.sessionCipher": (),
- "PySide2.QtNetwork.QSslConfiguration.sessionProtocol": (),
- "PySide2.QtNetwork.QSslConfiguration.sessionTicket": (),
- "PySide2.QtNetwork.QSslConfiguration.sessionTicketLifeTimeHint": (),
- "PySide2.QtNetwork.QSslConfiguration.setAllowedNextProtocols": ('typing.Sequence[PySide2.QtCore.QByteArray]',),
- "PySide2.QtNetwork.QSslConfiguration.setBackendConfiguration": ('typing.Dict[PySide2.QtCore.QByteArray, typing.Any]',),
- "PySide2.QtNetwork.QSslConfiguration.setBackendConfigurationOption": ('PySide2.QtCore.QByteArray', 'typing.Any'),
- "PySide2.QtNetwork.QSslConfiguration.setCaCertificates": ('typing.Sequence[PySide2.QtNetwork.QSslCertificate]',),
- "PySide2.QtNetwork.QSslConfiguration.setCiphers": ('typing.Sequence[PySide2.QtNetwork.QSslCipher]',),
- "PySide2.QtNetwork.QSslConfiguration.setDefaultConfiguration": ('PySide2.QtNetwork.QSslConfiguration',),
- "PySide2.QtNetwork.QSslConfiguration.setDiffieHellmanParameters": ('PySide2.QtNetwork.QSslDiffieHellmanParameters',),
- "PySide2.QtNetwork.QSslConfiguration.setLocalCertificate": ('PySide2.QtNetwork.QSslCertificate',),
- "PySide2.QtNetwork.QSslConfiguration.setLocalCertificateChain": ('typing.Sequence[PySide2.QtNetwork.QSslCertificate]',),
- "PySide2.QtNetwork.QSslConfiguration.setOcspStaplingEnabled": ('bool',),
- "PySide2.QtNetwork.QSslConfiguration.setPeerVerifyDepth": ('int',),
- "PySide2.QtNetwork.QSslConfiguration.setPeerVerifyMode": ('PySide2.QtNetwork.QSslSocket.PeerVerifyMode',),
- "PySide2.QtNetwork.QSslConfiguration.setPreSharedKeyIdentityHint": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QSslConfiguration.setPrivateKey": ('PySide2.QtNetwork.QSslKey',),
- "PySide2.QtNetwork.QSslConfiguration.setProtocol": ('PySide2.QtNetwork.QSsl.SslProtocol',),
- "PySide2.QtNetwork.QSslConfiguration.setSessionTicket": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QSslConfiguration.setSslOption": ('PySide2.QtNetwork.QSsl.SslOption', 'bool'),
- "PySide2.QtNetwork.QSslConfiguration.supportedCiphers": (),
- "PySide2.QtNetwork.QSslConfiguration.swap": ('PySide2.QtNetwork.QSslConfiguration',),
- "PySide2.QtNetwork.QSslConfiguration.systemCaCertificates": (),
- "PySide2.QtNetwork.QSslConfiguration.testSslOption": ('PySide2.QtNetwork.QSsl.SslOption',),
-# class PySide2.QtNetwork.QSslDiffieHellmanParameters:
-# class PySide2.QtNetwork.QSslDiffieHellmanParameters.Error:
- "PySide2.QtNetwork.QSslDiffieHellmanParameters.__init__": [(), ('PySide2.QtNetwork.QSslDiffieHellmanParameters',)],
- "PySide2.QtNetwork.QSslDiffieHellmanParameters.__copy__": (),
- "PySide2.QtNetwork.QSslDiffieHellmanParameters.defaultParameters": (),
- "PySide2.QtNetwork.QSslDiffieHellmanParameters.error": (),
- "PySide2.QtNetwork.QSslDiffieHellmanParameters.errorString": (),
- "PySide2.QtNetwork.QSslDiffieHellmanParameters.fromEncoded": [('PySide2.QtCore.QByteArray', 'PySide2.QtNetwork.QSsl.EncodingFormat'), ('PySide2.QtCore.QIODevice', 'PySide2.QtNetwork.QSsl.EncodingFormat')],
- "PySide2.QtNetwork.QSslDiffieHellmanParameters.isEmpty": (),
- "PySide2.QtNetwork.QSslDiffieHellmanParameters.isValid": (),
- "PySide2.QtNetwork.QSslDiffieHellmanParameters.swap": ('PySide2.QtNetwork.QSslDiffieHellmanParameters',),
-# class PySide2.QtNetwork.QSslError:
-# class PySide2.QtNetwork.QSslError.SslError:
- "PySide2.QtNetwork.QSslError.__init__": [(), ('PySide2.QtNetwork.QSslError',), ('PySide2.QtNetwork.QSslError.SslError',), ('PySide2.QtNetwork.QSslError.SslError', 'PySide2.QtNetwork.QSslCertificate')],
- "PySide2.QtNetwork.QSslError.__copy__": (),
- "PySide2.QtNetwork.QSslError.certificate": (),
- "PySide2.QtNetwork.QSslError.error": (),
- "PySide2.QtNetwork.QSslError.errorString": (),
- "PySide2.QtNetwork.QSslError.swap": ('PySide2.QtNetwork.QSslError',),
-# class PySide2.QtNetwork.QSslKey:
- "PySide2.QtNetwork.QSslKey.__init__": [(), ('PySide2.QtCore.QByteArray', 'PySide2.QtNetwork.QSsl.KeyAlgorithm', 'PySide2.QtNetwork.QSsl.EncodingFormat', 'PySide2.QtNetwork.QSsl.KeyType', 'PySide2.QtCore.QByteArray'), ('PySide2.QtCore.QIODevice', 'PySide2.QtNetwork.QSsl.KeyAlgorithm', 'PySide2.QtNetwork.QSsl.EncodingFormat', 'PySide2.QtNetwork.QSsl.KeyType', 'PySide2.QtCore.QByteArray'), ('PySide2.QtNetwork.QSslKey',), ('int', 'PySide2.QtNetwork.QSsl.KeyType')],
- "PySide2.QtNetwork.QSslKey.__copy__": (),
- "PySide2.QtNetwork.QSslKey.algorithm": (),
- "PySide2.QtNetwork.QSslKey.clear": (),
- "PySide2.QtNetwork.QSslKey.handle": (),
- "PySide2.QtNetwork.QSslKey.isNull": (),
- "PySide2.QtNetwork.QSslKey.length": (),
- "PySide2.QtNetwork.QSslKey.swap": ('PySide2.QtNetwork.QSslKey',),
- "PySide2.QtNetwork.QSslKey.toDer": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QSslKey.toPem": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QSslKey.type": (),
-# class PySide2.QtNetwork.QSslPreSharedKeyAuthenticator:
- "PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.__init__": [(), ('PySide2.QtNetwork.QSslPreSharedKeyAuthenticator',)],
- "PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.__copy__": (),
- "PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.identity": (),
- "PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.identityHint": (),
- "PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.maximumIdentityLength": (),
- "PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.maximumPreSharedKeyLength": (),
- "PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.preSharedKey": (),
- "PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.setIdentity": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.setPreSharedKey": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.swap": ('PySide2.QtNetwork.QSslPreSharedKeyAuthenticator',),
-# class PySide2.QtNetwork.QSslSocket:
-# class PySide2.QtNetwork.QSslSocket.PeerVerifyMode:
-# class PySide2.QtNetwork.QSslSocket.SslMode:
- "PySide2.QtNetwork.QSslSocket.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QSslSocket.abort": (),
- "PySide2.QtNetwork.QSslSocket.addCaCertificate": ('PySide2.QtNetwork.QSslCertificate',),
- "PySide2.QtNetwork.QSslSocket.addCaCertificates": [('str', 'PySide2.QtNetwork.QSsl.EncodingFormat', 'PySide2.QtCore.QRegExp.PatternSyntax'), ('typing.Sequence[PySide2.QtNetwork.QSslCertificate]',)],
- "PySide2.QtNetwork.QSslSocket.addDefaultCaCertificate": ('PySide2.QtNetwork.QSslCertificate',),
- "PySide2.QtNetwork.QSslSocket.addDefaultCaCertificates": [('str', 'PySide2.QtNetwork.QSsl.EncodingFormat', 'PySide2.QtCore.QRegExp.PatternSyntax'), ('typing.Sequence[PySide2.QtNetwork.QSslCertificate]',)],
- "PySide2.QtNetwork.QSslSocket.atEnd": (),
- "PySide2.QtNetwork.QSslSocket.bytesAvailable": (),
- "PySide2.QtNetwork.QSslSocket.bytesToWrite": (),
- "PySide2.QtNetwork.QSslSocket.caCertificates": (),
- "PySide2.QtNetwork.QSslSocket.canReadLine": (),
- "PySide2.QtNetwork.QSslSocket.ciphers": (),
- "PySide2.QtNetwork.QSslSocket.close": (),
- "PySide2.QtNetwork.QSslSocket.connectToHost": [('PySide2.QtNetwork.QHostAddress', 'int', 'PySide2.QtCore.QIODevice.OpenMode'), ('str', 'int', 'PySide2.QtCore.QIODevice.OpenMode', 'PySide2.QtNetwork.QAbstractSocket.NetworkLayerProtocol')],
- "PySide2.QtNetwork.QSslSocket.connectToHostEncrypted": [('str', 'int', 'PySide2.QtCore.QIODevice.OpenMode', 'PySide2.QtNetwork.QAbstractSocket.NetworkLayerProtocol'), ('str', 'int', 'str', 'PySide2.QtCore.QIODevice.OpenMode', 'PySide2.QtNetwork.QAbstractSocket.NetworkLayerProtocol')],
- "PySide2.QtNetwork.QSslSocket.defaultCaCertificates": (),
- "PySide2.QtNetwork.QSslSocket.defaultCiphers": (),
- "PySide2.QtNetwork.QSslSocket.disconnectFromHost": (),
- "PySide2.QtNetwork.QSslSocket.encryptedBytesAvailable": (),
- "PySide2.QtNetwork.QSslSocket.encryptedBytesToWrite": (),
- "PySide2.QtNetwork.QSslSocket.flush": (),
- "PySide2.QtNetwork.QSslSocket.ignoreSslErrors": [(), ('typing.Sequence[PySide2.QtNetwork.QSslError]',)],
- "PySide2.QtNetwork.QSslSocket.isEncrypted": (),
- "PySide2.QtNetwork.QSslSocket.localCertificate": (),
- "PySide2.QtNetwork.QSslSocket.localCertificateChain": (),
- "PySide2.QtNetwork.QSslSocket.mode": (),
- "PySide2.QtNetwork.QSslSocket.ocspResponses": (),
- "PySide2.QtNetwork.QSslSocket.peerCertificate": (),
- "PySide2.QtNetwork.QSslSocket.peerCertificateChain": (),
- "PySide2.QtNetwork.QSslSocket.peerVerifyDepth": (),
- "PySide2.QtNetwork.QSslSocket.peerVerifyMode": (),
- "PySide2.QtNetwork.QSslSocket.peerVerifyName": (),
- "PySide2.QtNetwork.QSslSocket.privateKey": (),
- "PySide2.QtNetwork.QSslSocket.protocol": (),
- "PySide2.QtNetwork.QSslSocket.readData": ('str', 'int'),
- "PySide2.QtNetwork.QSslSocket.resume": (),
- "PySide2.QtNetwork.QSslSocket.sessionCipher": (),
- "PySide2.QtNetwork.QSslSocket.sessionProtocol": (),
- "PySide2.QtNetwork.QSslSocket.setCaCertificates": ('typing.Sequence[PySide2.QtNetwork.QSslCertificate]',),
- "PySide2.QtNetwork.QSslSocket.setCiphers": [('str',), ('typing.Sequence[PySide2.QtNetwork.QSslCipher]',)],
- "PySide2.QtNetwork.QSslSocket.setDefaultCaCertificates": ('typing.Sequence[PySide2.QtNetwork.QSslCertificate]',),
- "PySide2.QtNetwork.QSslSocket.setDefaultCiphers": ('typing.Sequence[PySide2.QtNetwork.QSslCipher]',),
- "PySide2.QtNetwork.QSslSocket.setLocalCertificate": [('PySide2.QtNetwork.QSslCertificate',), ('str', 'PySide2.QtNetwork.QSsl.EncodingFormat')],
- "PySide2.QtNetwork.QSslSocket.setLocalCertificateChain": ('typing.Sequence[PySide2.QtNetwork.QSslCertificate]',),
- "PySide2.QtNetwork.QSslSocket.setPeerVerifyDepth": ('int',),
- "PySide2.QtNetwork.QSslSocket.setPeerVerifyMode": ('PySide2.QtNetwork.QSslSocket.PeerVerifyMode',),
- "PySide2.QtNetwork.QSslSocket.setPeerVerifyName": ('str',),
- "PySide2.QtNetwork.QSslSocket.setPrivateKey": [('PySide2.QtNetwork.QSslKey',), ('str', 'PySide2.QtNetwork.QSsl.KeyAlgorithm', 'PySide2.QtNetwork.QSsl.EncodingFormat', 'PySide2.QtCore.QByteArray')],
- "PySide2.QtNetwork.QSslSocket.setProtocol": ('PySide2.QtNetwork.QSsl.SslProtocol',),
- "PySide2.QtNetwork.QSslSocket.setReadBufferSize": ('int',),
- "PySide2.QtNetwork.QSslSocket.setSocketDescriptor": ('int', 'PySide2.QtNetwork.QAbstractSocket.SocketState', 'PySide2.QtCore.QIODevice.OpenMode'),
- "PySide2.QtNetwork.QSslSocket.setSocketOption": ('PySide2.QtNetwork.QAbstractSocket.SocketOption', 'typing.Any'),
- "PySide2.QtNetwork.QSslSocket.setSslConfiguration": ('PySide2.QtNetwork.QSslConfiguration',),
- "PySide2.QtNetwork.QSslSocket.socketOption": ('PySide2.QtNetwork.QAbstractSocket.SocketOption',),
- "PySide2.QtNetwork.QSslSocket.sslConfiguration": (),
- "PySide2.QtNetwork.QSslSocket.sslErrors": (),
- "PySide2.QtNetwork.QSslSocket.sslLibraryBuildVersionNumber": (),
- "PySide2.QtNetwork.QSslSocket.sslLibraryBuildVersionString": (),
- "PySide2.QtNetwork.QSslSocket.sslLibraryVersionNumber": (),
- "PySide2.QtNetwork.QSslSocket.sslLibraryVersionString": (),
- "PySide2.QtNetwork.QSslSocket.startClientEncryption": (),
- "PySide2.QtNetwork.QSslSocket.startServerEncryption": (),
- "PySide2.QtNetwork.QSslSocket.supportedCiphers": (),
- "PySide2.QtNetwork.QSslSocket.supportsSsl": (),
- "PySide2.QtNetwork.QSslSocket.systemCaCertificates": (),
- "PySide2.QtNetwork.QSslSocket.waitForBytesWritten": ('int',),
- "PySide2.QtNetwork.QSslSocket.waitForConnected": ('int',),
- "PySide2.QtNetwork.QSslSocket.waitForDisconnected": ('int',),
- "PySide2.QtNetwork.QSslSocket.waitForEncrypted": ('int',),
- "PySide2.QtNetwork.QSslSocket.waitForReadyRead": ('int',),
- "PySide2.QtNetwork.QSslSocket.writeData": ('str', 'int'),
-# class PySide2.QtNetwork.QTcpServer:
- "PySide2.QtNetwork.QTcpServer.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QTcpServer.addPendingConnection": ('PySide2.QtNetwork.QTcpSocket',),
- "PySide2.QtNetwork.QTcpServer.close": (),
- "PySide2.QtNetwork.QTcpServer.errorString": (),
- "PySide2.QtNetwork.QTcpServer.hasPendingConnections": (),
- "PySide2.QtNetwork.QTcpServer.incomingConnection": ('int',),
- "PySide2.QtNetwork.QTcpServer.isListening": (),
- "PySide2.QtNetwork.QTcpServer.listen": ('PySide2.QtNetwork.QHostAddress', 'int'),
- "PySide2.QtNetwork.QTcpServer.maxPendingConnections": (),
- "PySide2.QtNetwork.QTcpServer.nextPendingConnection": (),
- "PySide2.QtNetwork.QTcpServer.pauseAccepting": (),
- "PySide2.QtNetwork.QTcpServer.proxy": (),
- "PySide2.QtNetwork.QTcpServer.resumeAccepting": (),
- "PySide2.QtNetwork.QTcpServer.serverAddress": (),
- "PySide2.QtNetwork.QTcpServer.serverError": (),
- "PySide2.QtNetwork.QTcpServer.serverPort": (),
- "PySide2.QtNetwork.QTcpServer.setMaxPendingConnections": ('int',),
- "PySide2.QtNetwork.QTcpServer.setProxy": ('PySide2.QtNetwork.QNetworkProxy',),
- "PySide2.QtNetwork.QTcpServer.setSocketDescriptor": ('int',),
- "PySide2.QtNetwork.QTcpServer.socketDescriptor": (),
- "PySide2.QtNetwork.QTcpServer.waitForNewConnection": ('int',),
-# class PySide2.QtNetwork.QTcpSocket:
- "PySide2.QtNetwork.QTcpSocket.__init__": ('PySide2.QtCore.QObject',),
-# class PySide2.QtNetwork.QUdpSocket:
- "PySide2.QtNetwork.QUdpSocket.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QUdpSocket.hasPendingDatagrams": (),
- "PySide2.QtNetwork.QUdpSocket.joinMulticastGroup": [('PySide2.QtNetwork.QHostAddress',), ('PySide2.QtNetwork.QHostAddress', 'PySide2.QtNetwork.QNetworkInterface')],
- "PySide2.QtNetwork.QUdpSocket.leaveMulticastGroup": [('PySide2.QtNetwork.QHostAddress',), ('PySide2.QtNetwork.QHostAddress', 'PySide2.QtNetwork.QNetworkInterface')],
- "PySide2.QtNetwork.QUdpSocket.multicastInterface": (),
- "PySide2.QtNetwork.QUdpSocket.pendingDatagramSize": (),
- "PySide2.QtNetwork.QUdpSocket.readDatagram": ('str', 'int', 'PySide2.QtNetwork.QHostAddress'),
- "PySide2.QtNetwork.QUdpSocket.receiveDatagram": ('int',),
- "PySide2.QtNetwork.QUdpSocket.setMulticastInterface": ('PySide2.QtNetwork.QNetworkInterface',),
- "PySide2.QtNetwork.QUdpSocket.writeDatagram": [('PySide2.QtCore.QByteArray', 'PySide2.QtNetwork.QHostAddress', 'int'), ('PySide2.QtNetwork.QNetworkDatagram',)],
- }) if "PySide2.QtNetwork" in sys.modules else None
-# Module PySide2.QtTest
-sig_dict.update({
-# class PySide2.QtTest.QTest:
-# class PySide2.QtTest.QTest.KeyAction:
-# class PySide2.QtTest.QTest.MouseAction:
-# class PySide2.QtTest.QTest.QBenchmarkMetric:
-# class PySide2.QtTest.QTest.QTouchEventSequence:
- "PySide2.QtTest.QTest.QTouchEventSequence.commit": ('bool',),
- "PySide2.QtTest.QTest.QTouchEventSequence.move": [('int', 'PySide2.QtCore.QPoint', 'PySide2.QtGui.QWindow'), ('int', 'PySide2.QtCore.QPoint', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtTest.QTest.QTouchEventSequence.press": [('int', 'PySide2.QtCore.QPoint', 'PySide2.QtGui.QWindow'), ('int', 'PySide2.QtCore.QPoint', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtTest.QTest.QTouchEventSequence.release": [('int', 'PySide2.QtCore.QPoint', 'PySide2.QtGui.QWindow'), ('int', 'PySide2.QtCore.QPoint', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtTest.QTest.QTouchEventSequence.stationary": ('int',),
-# class PySide2.QtTest.QTest.TestFailMode:
- "PySide2.QtTest.QTest.addColumnInternal": ('int', 'str'),
- "PySide2.QtTest.QTest.asciiToKey": ('int',),
- "PySide2.QtTest.QTest.compare_ptr_helper": ('int', 'int', 'str', 'str', 'str', 'int'),
- "PySide2.QtTest.QTest.compare_string_helper": ('str', 'str', 'str', 'str', 'str', 'int'),
- "PySide2.QtTest.QTest.createTouchDevice": ('PySide2.QtGui.QTouchDevice.DeviceType',),
- "PySide2.QtTest.QTest.currentAppName": (),
- "PySide2.QtTest.QTest.currentDataTag": (),
- "PySide2.QtTest.QTest.currentTestFailed": (),
- "PySide2.QtTest.QTest.currentTestFunction": (),
- "PySide2.QtTest.QTest.ignoreMessage": [('PySide2.QtCore.QtMsgType', 'PySide2.QtCore.QRegularExpression'), ('PySide2.QtCore.QtMsgType', 'str')],
- "PySide2.QtTest.QTest.keyClick": [('PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.Key', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtGui.QWindow', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.Key', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtWidgets.QWidget', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int')],
- "PySide2.QtTest.QTest.keyClicks": ('PySide2.QtWidgets.QWidget', 'str', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'),
- "PySide2.QtTest.QTest.keyEvent": [('PySide2.QtTest.QTest.KeyAction', 'PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.Key', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtTest.QTest.KeyAction', 'PySide2.QtGui.QWindow', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtTest.QTest.KeyAction', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.Key', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtTest.QTest.KeyAction', 'PySide2.QtWidgets.QWidget', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int')],
- "PySide2.QtTest.QTest.keyPress": [('PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.Key', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtGui.QWindow', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.Key', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtWidgets.QWidget', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int')],
- "PySide2.QtTest.QTest.keyRelease": [('PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.Key', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtGui.QWindow', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.Key', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtWidgets.QWidget', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int')],
- "PySide2.QtTest.QTest.keySequence": [('PySide2.QtGui.QWindow', 'PySide2.QtGui.QKeySequence'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtGui.QKeySequence')],
- "PySide2.QtTest.QTest.keyToAscii": ('PySide2.QtCore.Qt.Key',),
- "PySide2.QtTest.QTest.mouseClick": [('PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QPoint', 'int'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QPoint', 'int')],
- "PySide2.QtTest.QTest.mouseDClick": [('PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QPoint', 'int'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QPoint', 'int')],
- "PySide2.QtTest.QTest.mouseEvent": [('PySide2.QtTest.QTest.MouseAction', 'PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QPoint', 'int'), ('PySide2.QtTest.QTest.MouseAction', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QPoint', 'int')],
- "PySide2.QtTest.QTest.mouseMove": [('PySide2.QtGui.QWindow', 'PySide2.QtCore.QPoint', 'int'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QPoint', 'int')],
- "PySide2.QtTest.QTest.mousePress": [('PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QPoint', 'int'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QPoint', 'int')],
- "PySide2.QtTest.QTest.mouseRelease": [('PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QPoint', 'int'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QPoint', 'int')],
- "PySide2.QtTest.QTest.qCleanup": (),
- "PySide2.QtTest.QTest.qElementData": ('str', 'int'),
- "PySide2.QtTest.QTest.qExpectFail": ('str', 'str', 'PySide2.QtTest.QTest.TestFailMode', 'str', 'int'),
- "PySide2.QtTest.QTest.qFindTestData": ('str', 'str', 'int', 'str'),
- "PySide2.QtTest.QTest.qGlobalData": ('str', 'int'),
- "PySide2.QtTest.QTest.qRun": (),
- "PySide2.QtTest.QTest.qSkip": ('str', 'str', 'int'),
- "PySide2.QtTest.QTest.qWaitForWindowActive": ('PySide2.QtWidgets.QWidget', 'int'),
- "PySide2.QtTest.QTest.qWaitForWindowExposed": ('PySide2.QtWidgets.QWidget', 'int'),
- "PySide2.QtTest.QTest.sendKeyEvent": [('PySide2.QtTest.QTest.KeyAction', 'PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.Key', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtTest.QTest.KeyAction', 'PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.Key', 'str', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtTest.QTest.KeyAction', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.Key', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtTest.QTest.KeyAction', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.Key', 'str', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int')],
- "PySide2.QtTest.QTest.setBenchmarkResult": ('float', 'PySide2.QtTest.QTest.QBenchmarkMetric'),
- "PySide2.QtTest.QTest.setMainSourcePath": ('str', 'str'),
- "PySide2.QtTest.QTest.simulateEvent": [('PySide2.QtGui.QWindow', 'bool', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'str', 'bool', 'int'), ('PySide2.QtWidgets.QWidget', 'bool', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'str', 'bool', 'int')],
- "PySide2.QtTest.QTest.testObject": (),
- "PySide2.QtTest.QTest.toPrettyCString": ('str', 'int'),
- "PySide2.QtTest.QTest.touchEvent": [('PySide2.QtGui.QWindow', 'PySide2.QtGui.QTouchDevice', 'bool'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtGui.QTouchDevice', 'bool')],
- }) if "PySide2.QtTest" in sys.modules else None
-# Module PySide2.QtConcurrent
-sig_dict.update({
-# class PySide2.QtConcurrent.QtConcurrent:
-# class PySide2.QtConcurrent.QtConcurrent.ReduceOption:
-# class PySide2.QtConcurrent.QtConcurrent.ReduceOptions:
-# class PySide2.QtConcurrent.QtConcurrent.ThreadFunctionResult:
- }) if "PySide2.QtConcurrent" in sys.modules else None
-# Module PySide2.QtMacExtras
-sig_dict.update({
-# class PySide2.QtMacExtras.QMacPasteboardMime:
-# class PySide2.QtMacExtras.QMacPasteboardMime.QMacPasteboardMimeType:
- "PySide2.QtMacExtras.QMacPasteboardMime.__init__": ('int',),
- "PySide2.QtMacExtras.QMacPasteboardMime.canConvert": ('str', 'str'),
- "PySide2.QtMacExtras.QMacPasteboardMime.convertFromMime": ('str', 'typing.Any', 'str'),
- "PySide2.QtMacExtras.QMacPasteboardMime.convertToMime": ('str', 'typing.Sequence[PySide2.QtCore.QByteArray]', 'str'),
- "PySide2.QtMacExtras.QMacPasteboardMime.convertorName": (),
- "PySide2.QtMacExtras.QMacPasteboardMime.count": ('PySide2.QtCore.QMimeData',),
- "PySide2.QtMacExtras.QMacPasteboardMime.flavorFor": ('str',),
- "PySide2.QtMacExtras.QMacPasteboardMime.mimeFor": ('str',),
-# class PySide2.QtMacExtras.QMacToolBar:
- "PySide2.QtMacExtras.QMacToolBar.__init__": [('PySide2.QtCore.QObject',), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtMacExtras.QMacToolBar.addAllowedItem": ('PySide2.QtGui.QIcon', 'str'),
- "PySide2.QtMacExtras.QMacToolBar.addAllowedStandardItem": ('PySide2.QtMacExtras.QMacToolBarItem.StandardItem',),
- "PySide2.QtMacExtras.QMacToolBar.addItem": ('PySide2.QtGui.QIcon', 'str'),
- "PySide2.QtMacExtras.QMacToolBar.addSeparator": (),
- "PySide2.QtMacExtras.QMacToolBar.addStandardItem": ('PySide2.QtMacExtras.QMacToolBarItem.StandardItem',),
- "PySide2.QtMacExtras.QMacToolBar.allowedItems": (),
- "PySide2.QtMacExtras.QMacToolBar.attachToWindow": ('PySide2.QtGui.QWindow',),
- "PySide2.QtMacExtras.QMacToolBar.detachFromWindow": (),
- "PySide2.QtMacExtras.QMacToolBar.items": (),
- "PySide2.QtMacExtras.QMacToolBar.setAllowedItems": ('typing.Sequence[PySide2.QtMacExtras.QMacToolBarItem]',),
- "PySide2.QtMacExtras.QMacToolBar.setItems": ('typing.Sequence[PySide2.QtMacExtras.QMacToolBarItem]',),
-# class PySide2.QtMacExtras.QMacToolBarItem:
-# class PySide2.QtMacExtras.QMacToolBarItem.StandardItem:
- "PySide2.QtMacExtras.QMacToolBarItem.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMacExtras.QMacToolBarItem.icon": (),
- "PySide2.QtMacExtras.QMacToolBarItem.selectable": (),
- "PySide2.QtMacExtras.QMacToolBarItem.setIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtMacExtras.QMacToolBarItem.setSelectable": ('bool',),
- "PySide2.QtMacExtras.QMacToolBarItem.setStandardItem": ('PySide2.QtMacExtras.QMacToolBarItem.StandardItem',),
- "PySide2.QtMacExtras.QMacToolBarItem.setText": ('str',),
- "PySide2.QtMacExtras.QMacToolBarItem.standardItem": (),
- "PySide2.QtMacExtras.QMacToolBarItem.text": (),
- "PySide2.QtMacExtras.QMacToolBarItem.qRegisterDraggedTypes": ('typing.Sequence[str]',),
- }) if "PySide2.QtMacExtras" in sys.modules else None
-# Module PySide2.QtXml
-sig_dict.update({
-# class PySide2.QtXml.QDomAttr:
- "PySide2.QtXml.QDomAttr.__init__": [(), ('PySide2.QtXml.QDomAttr',)],
- "PySide2.QtXml.QDomAttr.__copy__": (),
- "PySide2.QtXml.QDomAttr.name": (),
- "PySide2.QtXml.QDomAttr.nodeType": (),
- "PySide2.QtXml.QDomAttr.ownerElement": (),
- "PySide2.QtXml.QDomAttr.setValue": ('str',),
- "PySide2.QtXml.QDomAttr.specified": (),
- "PySide2.QtXml.QDomAttr.value": (),
-# class PySide2.QtXml.QDomCDATASection:
- "PySide2.QtXml.QDomCDATASection.__init__": [(), ('PySide2.QtXml.QDomCDATASection',)],
- "PySide2.QtXml.QDomCDATASection.__copy__": (),
- "PySide2.QtXml.QDomCDATASection.nodeType": (),
-# class PySide2.QtXml.QDomCharacterData:
- "PySide2.QtXml.QDomCharacterData.__init__": [(), ('PySide2.QtXml.QDomCharacterData',)],
- "PySide2.QtXml.QDomCharacterData.__copy__": (),
- "PySide2.QtXml.QDomCharacterData.appendData": ('str',),
- "PySide2.QtXml.QDomCharacterData.data": (),
- "PySide2.QtXml.QDomCharacterData.deleteData": ('int', 'int'),
- "PySide2.QtXml.QDomCharacterData.insertData": ('int', 'str'),
- "PySide2.QtXml.QDomCharacterData.length": (),
- "PySide2.QtXml.QDomCharacterData.nodeType": (),
- "PySide2.QtXml.QDomCharacterData.replaceData": ('int', 'int', 'str'),
- "PySide2.QtXml.QDomCharacterData.setData": ('str',),
- "PySide2.QtXml.QDomCharacterData.substringData": ('int', 'int'),
-# class PySide2.QtXml.QDomComment:
- "PySide2.QtXml.QDomComment.__init__": [(), ('PySide2.QtXml.QDomComment',)],
- "PySide2.QtXml.QDomComment.__copy__": (),
- "PySide2.QtXml.QDomComment.nodeType": (),
-# class PySide2.QtXml.QDomDocument:
- "PySide2.QtXml.QDomDocument.__init__": [(), ('PySide2.QtXml.QDomDocument',), ('PySide2.QtXml.QDomDocumentType',), ('str',)],
- "PySide2.QtXml.QDomDocument.__copy__": (),
- "PySide2.QtXml.QDomDocument.createAttribute": ('str',),
- "PySide2.QtXml.QDomDocument.createAttributeNS": ('str', 'str'),
- "PySide2.QtXml.QDomDocument.createCDATASection": ('str',),
- "PySide2.QtXml.QDomDocument.createComment": ('str',),
- "PySide2.QtXml.QDomDocument.createDocumentFragment": (),
- "PySide2.QtXml.QDomDocument.createElement": ('str',),
- "PySide2.QtXml.QDomDocument.createElementNS": ('str', 'str'),
- "PySide2.QtXml.QDomDocument.createEntityReference": ('str',),
- "PySide2.QtXml.QDomDocument.createProcessingInstruction": ('str', 'str'),
- "PySide2.QtXml.QDomDocument.createTextNode": ('str',),
- "PySide2.QtXml.QDomDocument.doctype": (),
- "PySide2.QtXml.QDomDocument.documentElement": (),
- "PySide2.QtXml.QDomDocument.elementById": ('str',),
- "PySide2.QtXml.QDomDocument.elementsByTagName": ('str',),
- "PySide2.QtXml.QDomDocument.elementsByTagNameNS": ('str', 'str'),
- "PySide2.QtXml.QDomDocument.implementation": (),
- "PySide2.QtXml.QDomDocument.importNode": ('PySide2.QtXml.QDomNode', 'bool'),
- "PySide2.QtXml.QDomDocument.nodeType": (),
- "PySide2.QtXml.QDomDocument.setContent": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QByteArray', 'bool'), ('PySide2.QtCore.QIODevice',), ('PySide2.QtCore.QIODevice', 'bool'), ('PySide2.QtXml.QXmlInputSource', 'PySide2.QtXml.QXmlReader'), ('PySide2.QtXml.QXmlInputSource', 'bool'), ('str',), ('str', 'bool')],
- "PySide2.QtXml.QDomDocument.toByteArray": ('int',),
- "PySide2.QtXml.QDomDocument.toString": ('int',),
-# class PySide2.QtXml.QDomDocumentFragment:
- "PySide2.QtXml.QDomDocumentFragment.__init__": [(), ('PySide2.QtXml.QDomDocumentFragment',)],
- "PySide2.QtXml.QDomDocumentFragment.__copy__": (),
- "PySide2.QtXml.QDomDocumentFragment.nodeType": (),
-# class PySide2.QtXml.QDomDocumentType:
- "PySide2.QtXml.QDomDocumentType.__init__": [(), ('PySide2.QtXml.QDomDocumentType',)],
- "PySide2.QtXml.QDomDocumentType.__copy__": (),
- "PySide2.QtXml.QDomDocumentType.entities": (),
- "PySide2.QtXml.QDomDocumentType.internalSubset": (),
- "PySide2.QtXml.QDomDocumentType.name": (),
- "PySide2.QtXml.QDomDocumentType.nodeType": (),
- "PySide2.QtXml.QDomDocumentType.notations": (),
- "PySide2.QtXml.QDomDocumentType.publicId": (),
- "PySide2.QtXml.QDomDocumentType.systemId": (),
-# class PySide2.QtXml.QDomElement:
- "PySide2.QtXml.QDomElement.__init__": [(), ('PySide2.QtXml.QDomElement',)],
- "PySide2.QtXml.QDomElement.__copy__": (),
- "PySide2.QtXml.QDomElement.attribute": ('str', 'str'),
- "PySide2.QtXml.QDomElement.attributeNS": ('str', 'str', 'str'),
- "PySide2.QtXml.QDomElement.attributeNode": ('str',),
- "PySide2.QtXml.QDomElement.attributeNodeNS": ('str', 'str'),
- "PySide2.QtXml.QDomElement.attributes": (),
- "PySide2.QtXml.QDomElement.elementsByTagName": ('str',),
- "PySide2.QtXml.QDomElement.elementsByTagNameNS": ('str', 'str'),
- "PySide2.QtXml.QDomElement.hasAttribute": ('str',),
- "PySide2.QtXml.QDomElement.hasAttributeNS": ('str', 'str'),
- "PySide2.QtXml.QDomElement.nodeType": (),
- "PySide2.QtXml.QDomElement.removeAttribute": ('str',),
- "PySide2.QtXml.QDomElement.removeAttributeNS": ('str', 'str'),
- "PySide2.QtXml.QDomElement.removeAttributeNode": ('PySide2.QtXml.QDomAttr',),
- "PySide2.QtXml.QDomElement.setAttribute": [('str', 'float'), ('str', 'int'), ('str', 'str')],
- "PySide2.QtXml.QDomElement.setAttributeNS": [('str', 'str', 'float'), ('str', 'str', 'int'), ('str', 'str', 'str')],
- "PySide2.QtXml.QDomElement.setAttributeNode": ('PySide2.QtXml.QDomAttr',),
- "PySide2.QtXml.QDomElement.setAttributeNodeNS": ('PySide2.QtXml.QDomAttr',),
- "PySide2.QtXml.QDomElement.setTagName": ('str',),
- "PySide2.QtXml.QDomElement.tagName": (),
- "PySide2.QtXml.QDomElement.text": (),
-# class PySide2.QtXml.QDomEntity:
- "PySide2.QtXml.QDomEntity.__init__": [(), ('PySide2.QtXml.QDomEntity',)],
- "PySide2.QtXml.QDomEntity.__copy__": (),
- "PySide2.QtXml.QDomEntity.nodeType": (),
- "PySide2.QtXml.QDomEntity.notationName": (),
- "PySide2.QtXml.QDomEntity.publicId": (),
- "PySide2.QtXml.QDomEntity.systemId": (),
-# class PySide2.QtXml.QDomEntityReference:
- "PySide2.QtXml.QDomEntityReference.__init__": [(), ('PySide2.QtXml.QDomEntityReference',)],
- "PySide2.QtXml.QDomEntityReference.__copy__": (),
- "PySide2.QtXml.QDomEntityReference.nodeType": (),
-# class PySide2.QtXml.QDomImplementation:
-# class PySide2.QtXml.QDomImplementation.InvalidDataPolicy:
- "PySide2.QtXml.QDomImplementation.__init__": [(), ('PySide2.QtXml.QDomImplementation',)],
- "PySide2.QtXml.QDomImplementation.__copy__": (),
- "PySide2.QtXml.QDomImplementation.createDocument": ('str', 'str', 'PySide2.QtXml.QDomDocumentType'),
- "PySide2.QtXml.QDomImplementation.createDocumentType": ('str', 'str', 'str'),
- "PySide2.QtXml.QDomImplementation.hasFeature": ('str', 'str'),
- "PySide2.QtXml.QDomImplementation.invalidDataPolicy": (),
- "PySide2.QtXml.QDomImplementation.isNull": (),
- "PySide2.QtXml.QDomImplementation.setInvalidDataPolicy": ('PySide2.QtXml.QDomImplementation.InvalidDataPolicy',),
-# class PySide2.QtXml.QDomNamedNodeMap:
- "PySide2.QtXml.QDomNamedNodeMap.__init__": [(), ('PySide2.QtXml.QDomNamedNodeMap',)],
- "PySide2.QtXml.QDomNamedNodeMap.__copy__": (),
- "PySide2.QtXml.QDomNamedNodeMap.contains": ('str',),
- "PySide2.QtXml.QDomNamedNodeMap.count": (),
- "PySide2.QtXml.QDomNamedNodeMap.isEmpty": (),
- "PySide2.QtXml.QDomNamedNodeMap.item": ('int',),
- "PySide2.QtXml.QDomNamedNodeMap.length": (),
- "PySide2.QtXml.QDomNamedNodeMap.namedItem": ('str',),
- "PySide2.QtXml.QDomNamedNodeMap.namedItemNS": ('str', 'str'),
- "PySide2.QtXml.QDomNamedNodeMap.removeNamedItem": ('str',),
- "PySide2.QtXml.QDomNamedNodeMap.removeNamedItemNS": ('str', 'str'),
- "PySide2.QtXml.QDomNamedNodeMap.setNamedItem": ('PySide2.QtXml.QDomNode',),
- "PySide2.QtXml.QDomNamedNodeMap.setNamedItemNS": ('PySide2.QtXml.QDomNode',),
- "PySide2.QtXml.QDomNamedNodeMap.size": (),
-# class PySide2.QtXml.QDomNode:
-# class PySide2.QtXml.QDomNode.EncodingPolicy:
-# class PySide2.QtXml.QDomNode.NodeType:
- "PySide2.QtXml.QDomNode.__init__": [(), ('PySide2.QtXml.QDomNode',)],
- "PySide2.QtXml.QDomNode.__copy__": (),
- "PySide2.QtXml.QDomNode.__lshift__": ('PySide2.QtCore.QTextStream',),
- "PySide2.QtXml.QDomNode.appendChild": ('PySide2.QtXml.QDomNode',),
- "PySide2.QtXml.QDomNode.attributes": (),
- "PySide2.QtXml.QDomNode.childNodes": (),
- "PySide2.QtXml.QDomNode.clear": (),
- "PySide2.QtXml.QDomNode.cloneNode": ('bool',),
- "PySide2.QtXml.QDomNode.columnNumber": (),
- "PySide2.QtXml.QDomNode.firstChild": (),
- "PySide2.QtXml.QDomNode.firstChildElement": ('str',),
- "PySide2.QtXml.QDomNode.hasAttributes": (),
- "PySide2.QtXml.QDomNode.hasChildNodes": (),
- "PySide2.QtXml.QDomNode.insertAfter": ('PySide2.QtXml.QDomNode', 'PySide2.QtXml.QDomNode'),
- "PySide2.QtXml.QDomNode.insertBefore": ('PySide2.QtXml.QDomNode', 'PySide2.QtXml.QDomNode'),
- "PySide2.QtXml.QDomNode.isAttr": (),
- "PySide2.QtXml.QDomNode.isCDATASection": (),
- "PySide2.QtXml.QDomNode.isCharacterData": (),
- "PySide2.QtXml.QDomNode.isComment": (),
- "PySide2.QtXml.QDomNode.isDocument": (),
- "PySide2.QtXml.QDomNode.isDocumentFragment": (),
- "PySide2.QtXml.QDomNode.isDocumentType": (),
- "PySide2.QtXml.QDomNode.isElement": (),
- "PySide2.QtXml.QDomNode.isEntity": (),
- "PySide2.QtXml.QDomNode.isEntityReference": (),
- "PySide2.QtXml.QDomNode.isNotation": (),
- "PySide2.QtXml.QDomNode.isNull": (),
- "PySide2.QtXml.QDomNode.isProcessingInstruction": (),
- "PySide2.QtXml.QDomNode.isSupported": ('str', 'str'),
- "PySide2.QtXml.QDomNode.isText": (),
- "PySide2.QtXml.QDomNode.lastChild": (),
- "PySide2.QtXml.QDomNode.lastChildElement": ('str',),
- "PySide2.QtXml.QDomNode.lineNumber": (),
- "PySide2.QtXml.QDomNode.localName": (),
- "PySide2.QtXml.QDomNode.namedItem": ('str',),
- "PySide2.QtXml.QDomNode.namespaceURI": (),
- "PySide2.QtXml.QDomNode.nextSibling": (),
- "PySide2.QtXml.QDomNode.nextSiblingElement": ('str',),
- "PySide2.QtXml.QDomNode.nodeName": (),
- "PySide2.QtXml.QDomNode.nodeType": (),
- "PySide2.QtXml.QDomNode.nodeValue": (),
- "PySide2.QtXml.QDomNode.normalize": (),
- "PySide2.QtXml.QDomNode.ownerDocument": (),
- "PySide2.QtXml.QDomNode.parentNode": (),
- "PySide2.QtXml.QDomNode.prefix": (),
- "PySide2.QtXml.QDomNode.previousSibling": (),
- "PySide2.QtXml.QDomNode.previousSiblingElement": ('str',),
- "PySide2.QtXml.QDomNode.removeChild": ('PySide2.QtXml.QDomNode',),
- "PySide2.QtXml.QDomNode.replaceChild": ('PySide2.QtXml.QDomNode', 'PySide2.QtXml.QDomNode'),
- "PySide2.QtXml.QDomNode.save": ('PySide2.QtCore.QTextStream', 'int', 'PySide2.QtXml.QDomNode.EncodingPolicy'),
- "PySide2.QtXml.QDomNode.setNodeValue": ('str',),
- "PySide2.QtXml.QDomNode.setPrefix": ('str',),
- "PySide2.QtXml.QDomNode.toAttr": (),
- "PySide2.QtXml.QDomNode.toCDATASection": (),
- "PySide2.QtXml.QDomNode.toCharacterData": (),
- "PySide2.QtXml.QDomNode.toComment": (),
- "PySide2.QtXml.QDomNode.toDocument": (),
- "PySide2.QtXml.QDomNode.toDocumentFragment": (),
- "PySide2.QtXml.QDomNode.toDocumentType": (),
- "PySide2.QtXml.QDomNode.toElement": (),
- "PySide2.QtXml.QDomNode.toEntity": (),
- "PySide2.QtXml.QDomNode.toEntityReference": (),
- "PySide2.QtXml.QDomNode.toNotation": (),
- "PySide2.QtXml.QDomNode.toProcessingInstruction": (),
- "PySide2.QtXml.QDomNode.toText": (),
-# class PySide2.QtXml.QDomNodeList:
- "PySide2.QtXml.QDomNodeList.__init__": [(), ('PySide2.QtXml.QDomNodeList',)],
- "PySide2.QtXml.QDomNodeList.__copy__": (),
- "PySide2.QtXml.QDomNodeList.at": ('int',),
- "PySide2.QtXml.QDomNodeList.count": (),
- "PySide2.QtXml.QDomNodeList.isEmpty": (),
- "PySide2.QtXml.QDomNodeList.item": ('int',),
- "PySide2.QtXml.QDomNodeList.length": (),
- "PySide2.QtXml.QDomNodeList.size": (),
-# class PySide2.QtXml.QDomNotation:
- "PySide2.QtXml.QDomNotation.__init__": [(), ('PySide2.QtXml.QDomNotation',)],
- "PySide2.QtXml.QDomNotation.__copy__": (),
- "PySide2.QtXml.QDomNotation.nodeType": (),
- "PySide2.QtXml.QDomNotation.publicId": (),
- "PySide2.QtXml.QDomNotation.systemId": (),
-# class PySide2.QtXml.QDomProcessingInstruction:
- "PySide2.QtXml.QDomProcessingInstruction.__init__": [(), ('PySide2.QtXml.QDomProcessingInstruction',)],
- "PySide2.QtXml.QDomProcessingInstruction.__copy__": (),
- "PySide2.QtXml.QDomProcessingInstruction.data": (),
- "PySide2.QtXml.QDomProcessingInstruction.nodeType": (),
- "PySide2.QtXml.QDomProcessingInstruction.setData": ('str',),
- "PySide2.QtXml.QDomProcessingInstruction.target": (),
-# class PySide2.QtXml.QDomText:
- "PySide2.QtXml.QDomText.__init__": [(), ('PySide2.QtXml.QDomText',)],
- "PySide2.QtXml.QDomText.__copy__": (),
- "PySide2.QtXml.QDomText.nodeType": (),
- "PySide2.QtXml.QDomText.splitText": ('int',),
-# class PySide2.QtXml.QXmlAttributes:
- "PySide2.QtXml.QXmlAttributes.__init__": [(), ('PySide2.QtXml.QXmlAttributes',)],
- "PySide2.QtXml.QXmlAttributes.__copy__": (),
- "PySide2.QtXml.QXmlAttributes.append": ('str', 'str', 'str', 'str'),
- "PySide2.QtXml.QXmlAttributes.clear": (),
- "PySide2.QtXml.QXmlAttributes.count": (),
- "PySide2.QtXml.QXmlAttributes.index": [('str',), ('str', 'str')],
- "PySide2.QtXml.QXmlAttributes.length": (),
- "PySide2.QtXml.QXmlAttributes.localName": ('int',),
- "PySide2.QtXml.QXmlAttributes.qName": ('int',),
- "PySide2.QtXml.QXmlAttributes.swap": ('PySide2.QtXml.QXmlAttributes',),
- "PySide2.QtXml.QXmlAttributes.type": [('int',), ('str',), ('str', 'str')],
- "PySide2.QtXml.QXmlAttributes.uri": ('int',),
- "PySide2.QtXml.QXmlAttributes.value": [('int',), ('str',), ('str', 'str')],
-# class PySide2.QtXml.QXmlContentHandler:
- "PySide2.QtXml.QXmlContentHandler.__init__": (),
- "PySide2.QtXml.QXmlContentHandler.characters": ('str',),
- "PySide2.QtXml.QXmlContentHandler.endDocument": (),
- "PySide2.QtXml.QXmlContentHandler.endElement": ('str', 'str', 'str'),
- "PySide2.QtXml.QXmlContentHandler.endPrefixMapping": ('str',),
- "PySide2.QtXml.QXmlContentHandler.errorString": (),
- "PySide2.QtXml.QXmlContentHandler.ignorableWhitespace": ('str',),
- "PySide2.QtXml.QXmlContentHandler.processingInstruction": ('str', 'str'),
- "PySide2.QtXml.QXmlContentHandler.setDocumentLocator": ('PySide2.QtXml.QXmlLocator',),
- "PySide2.QtXml.QXmlContentHandler.skippedEntity": ('str',),
- "PySide2.QtXml.QXmlContentHandler.startDocument": (),
- "PySide2.QtXml.QXmlContentHandler.startElement": ('str', 'str', 'str', 'PySide2.QtXml.QXmlAttributes'),
- "PySide2.QtXml.QXmlContentHandler.startPrefixMapping": ('str', 'str'),
-# class PySide2.QtXml.QXmlDTDHandler:
- "PySide2.QtXml.QXmlDTDHandler.__init__": (),
- "PySide2.QtXml.QXmlDTDHandler.errorString": (),
- "PySide2.QtXml.QXmlDTDHandler.notationDecl": ('str', 'str', 'str'),
- "PySide2.QtXml.QXmlDTDHandler.unparsedEntityDecl": ('str', 'str', 'str', 'str'),
-# class PySide2.QtXml.QXmlDeclHandler:
- "PySide2.QtXml.QXmlDeclHandler.__init__": (),
- "PySide2.QtXml.QXmlDeclHandler.attributeDecl": ('str', 'str', 'str', 'str', 'str'),
- "PySide2.QtXml.QXmlDeclHandler.errorString": (),
- "PySide2.QtXml.QXmlDeclHandler.externalEntityDecl": ('str', 'str', 'str'),
- "PySide2.QtXml.QXmlDeclHandler.internalEntityDecl": ('str', 'str'),
-# class PySide2.QtXml.QXmlDefaultHandler:
- "PySide2.QtXml.QXmlDefaultHandler.__init__": (),
- "PySide2.QtXml.QXmlDefaultHandler.attributeDecl": ('str', 'str', 'str', 'str', 'str'),
- "PySide2.QtXml.QXmlDefaultHandler.characters": ('str',),
- "PySide2.QtXml.QXmlDefaultHandler.comment": ('str',),
- "PySide2.QtXml.QXmlDefaultHandler.endCDATA": (),
- "PySide2.QtXml.QXmlDefaultHandler.endDTD": (),
- "PySide2.QtXml.QXmlDefaultHandler.endDocument": (),
- "PySide2.QtXml.QXmlDefaultHandler.endElement": ('str', 'str', 'str'),
- "PySide2.QtXml.QXmlDefaultHandler.endEntity": ('str',),
- "PySide2.QtXml.QXmlDefaultHandler.endPrefixMapping": ('str',),
- "PySide2.QtXml.QXmlDefaultHandler.error": ('PySide2.QtXml.QXmlParseException',),
- "PySide2.QtXml.QXmlDefaultHandler.errorString": (),
- "PySide2.QtXml.QXmlDefaultHandler.externalEntityDecl": ('str', 'str', 'str'),
- "PySide2.QtXml.QXmlDefaultHandler.fatalError": ('PySide2.QtXml.QXmlParseException',),
- "PySide2.QtXml.QXmlDefaultHandler.ignorableWhitespace": ('str',),
- "PySide2.QtXml.QXmlDefaultHandler.internalEntityDecl": ('str', 'str'),
- "PySide2.QtXml.QXmlDefaultHandler.notationDecl": ('str', 'str', 'str'),
- "PySide2.QtXml.QXmlDefaultHandler.processingInstruction": ('str', 'str'),
- "PySide2.QtXml.QXmlDefaultHandler.resolveEntity": ('str', 'str', 'PySide2.QtXml.QXmlInputSource'),
- "PySide2.QtXml.QXmlDefaultHandler.setDocumentLocator": ('PySide2.QtXml.QXmlLocator',),
- "PySide2.QtXml.QXmlDefaultHandler.skippedEntity": ('str',),
- "PySide2.QtXml.QXmlDefaultHandler.startCDATA": (),
- "PySide2.QtXml.QXmlDefaultHandler.startDTD": ('str', 'str', 'str'),
- "PySide2.QtXml.QXmlDefaultHandler.startDocument": (),
- "PySide2.QtXml.QXmlDefaultHandler.startElement": ('str', 'str', 'str', 'PySide2.QtXml.QXmlAttributes'),
- "PySide2.QtXml.QXmlDefaultHandler.startEntity": ('str',),
- "PySide2.QtXml.QXmlDefaultHandler.startPrefixMapping": ('str', 'str'),
- "PySide2.QtXml.QXmlDefaultHandler.unparsedEntityDecl": ('str', 'str', 'str', 'str'),
- "PySide2.QtXml.QXmlDefaultHandler.warning": ('PySide2.QtXml.QXmlParseException',),
-# class PySide2.QtXml.QXmlEntityResolver:
- "PySide2.QtXml.QXmlEntityResolver.__init__": (),
- "PySide2.QtXml.QXmlEntityResolver.errorString": (),
- "PySide2.QtXml.QXmlEntityResolver.resolveEntity": ('str', 'str', 'PySide2.QtXml.QXmlInputSource'),
-# class PySide2.QtXml.QXmlErrorHandler:
- "PySide2.QtXml.QXmlErrorHandler.__init__": (),
- "PySide2.QtXml.QXmlErrorHandler.error": ('PySide2.QtXml.QXmlParseException',),
- "PySide2.QtXml.QXmlErrorHandler.errorString": (),
- "PySide2.QtXml.QXmlErrorHandler.fatalError": ('PySide2.QtXml.QXmlParseException',),
- "PySide2.QtXml.QXmlErrorHandler.warning": ('PySide2.QtXml.QXmlParseException',),
-# class PySide2.QtXml.QXmlInputSource:
- "PySide2.QtXml.QXmlInputSource.__init__": [(), ('PySide2.QtCore.QIODevice',)],
- "PySide2.QtXml.QXmlInputSource.data": (),
- "PySide2.QtXml.QXmlInputSource.fetchData": (),
- "PySide2.QtXml.QXmlInputSource.fromRawData": ('PySide2.QtCore.QByteArray', 'bool'),
- "PySide2.QtXml.QXmlInputSource.reset": (),
- "PySide2.QtXml.QXmlInputSource.setData": [('PySide2.QtCore.QByteArray',), ('str',)],
-# class PySide2.QtXml.QXmlLexicalHandler:
- "PySide2.QtXml.QXmlLexicalHandler.__init__": (),
- "PySide2.QtXml.QXmlLexicalHandler.comment": ('str',),
- "PySide2.QtXml.QXmlLexicalHandler.endCDATA": (),
- "PySide2.QtXml.QXmlLexicalHandler.endDTD": (),
- "PySide2.QtXml.QXmlLexicalHandler.endEntity": ('str',),
- "PySide2.QtXml.QXmlLexicalHandler.errorString": (),
- "PySide2.QtXml.QXmlLexicalHandler.startCDATA": (),
- "PySide2.QtXml.QXmlLexicalHandler.startDTD": ('str', 'str', 'str'),
- "PySide2.QtXml.QXmlLexicalHandler.startEntity": ('str',),
-# class PySide2.QtXml.QXmlLocator:
- "PySide2.QtXml.QXmlLocator.__init__": (),
- "PySide2.QtXml.QXmlLocator.columnNumber": (),
- "PySide2.QtXml.QXmlLocator.lineNumber": (),
-# class PySide2.QtXml.QXmlNamespaceSupport:
- "PySide2.QtXml.QXmlNamespaceSupport.__init__": (),
- "PySide2.QtXml.QXmlNamespaceSupport.popContext": (),
- "PySide2.QtXml.QXmlNamespaceSupport.prefix": ('str',),
- "PySide2.QtXml.QXmlNamespaceSupport.prefixes": [(), ('str',)],
- "PySide2.QtXml.QXmlNamespaceSupport.processName": ('str', 'bool', 'str', 'str'),
- "PySide2.QtXml.QXmlNamespaceSupport.pushContext": (),
- "PySide2.QtXml.QXmlNamespaceSupport.reset": (),
- "PySide2.QtXml.QXmlNamespaceSupport.setPrefix": ('str', 'str'),
- "PySide2.QtXml.QXmlNamespaceSupport.splitName": ('str', 'str', 'str'),
- "PySide2.QtXml.QXmlNamespaceSupport.uri": ('str',),
-# class PySide2.QtXml.QXmlParseException:
- "PySide2.QtXml.QXmlParseException.__init__": [('PySide2.QtXml.QXmlParseException',), ('str', 'int', 'int', 'str', 'str')],
- "PySide2.QtXml.QXmlParseException.columnNumber": (),
- "PySide2.QtXml.QXmlParseException.lineNumber": (),
- "PySide2.QtXml.QXmlParseException.message": (),
- "PySide2.QtXml.QXmlParseException.publicId": (),
- "PySide2.QtXml.QXmlParseException.systemId": (),
-# class PySide2.QtXml.QXmlReader:
- "PySide2.QtXml.QXmlReader.__init__": (),
- "PySide2.QtXml.QXmlReader.DTDHandler": (),
- "PySide2.QtXml.QXmlReader.contentHandler": (),
- "PySide2.QtXml.QXmlReader.declHandler": (),
- "PySide2.QtXml.QXmlReader.entityResolver": (),
- "PySide2.QtXml.QXmlReader.errorHandler": (),
- "PySide2.QtXml.QXmlReader.feature": ('str',),
- "PySide2.QtXml.QXmlReader.hasFeature": ('str',),
- "PySide2.QtXml.QXmlReader.hasProperty": ('str',),
- "PySide2.QtXml.QXmlReader.lexicalHandler": (),
- "PySide2.QtXml.QXmlReader.parse": ('PySide2.QtXml.QXmlInputSource',),
- "PySide2.QtXml.QXmlReader.property": ('str',),
- "PySide2.QtXml.QXmlReader.setContentHandler": ('PySide2.QtXml.QXmlContentHandler',),
- "PySide2.QtXml.QXmlReader.setDTDHandler": ('PySide2.QtXml.QXmlDTDHandler',),
- "PySide2.QtXml.QXmlReader.setDeclHandler": ('PySide2.QtXml.QXmlDeclHandler',),
- "PySide2.QtXml.QXmlReader.setEntityResolver": ('PySide2.QtXml.QXmlEntityResolver',),
- "PySide2.QtXml.QXmlReader.setErrorHandler": ('PySide2.QtXml.QXmlErrorHandler',),
- "PySide2.QtXml.QXmlReader.setFeature": ('str', 'bool'),
- "PySide2.QtXml.QXmlReader.setLexicalHandler": ('PySide2.QtXml.QXmlLexicalHandler',),
- "PySide2.QtXml.QXmlReader.setProperty": ('str', 'int'),
-# class PySide2.QtXml.QXmlSimpleReader:
- "PySide2.QtXml.QXmlSimpleReader.__init__": (),
- "PySide2.QtXml.QXmlSimpleReader.DTDHandler": (),
- "PySide2.QtXml.QXmlSimpleReader.contentHandler": (),
- "PySide2.QtXml.QXmlSimpleReader.declHandler": (),
- "PySide2.QtXml.QXmlSimpleReader.entityResolver": (),
- "PySide2.QtXml.QXmlSimpleReader.errorHandler": (),
- "PySide2.QtXml.QXmlSimpleReader.feature": ('str',),
- "PySide2.QtXml.QXmlSimpleReader.hasFeature": ('str',),
- "PySide2.QtXml.QXmlSimpleReader.hasProperty": ('str',),
- "PySide2.QtXml.QXmlSimpleReader.lexicalHandler": (),
- "PySide2.QtXml.QXmlSimpleReader.parse": [('PySide2.QtXml.QXmlInputSource',), ('PySide2.QtXml.QXmlInputSource', 'bool')],
- "PySide2.QtXml.QXmlSimpleReader.parseContinue": (),
- "PySide2.QtXml.QXmlSimpleReader.property": ('str',),
- "PySide2.QtXml.QXmlSimpleReader.setContentHandler": ('PySide2.QtXml.QXmlContentHandler',),
- "PySide2.QtXml.QXmlSimpleReader.setDTDHandler": ('PySide2.QtXml.QXmlDTDHandler',),
- "PySide2.QtXml.QXmlSimpleReader.setDeclHandler": ('PySide2.QtXml.QXmlDeclHandler',),
- "PySide2.QtXml.QXmlSimpleReader.setEntityResolver": ('PySide2.QtXml.QXmlEntityResolver',),
- "PySide2.QtXml.QXmlSimpleReader.setErrorHandler": ('PySide2.QtXml.QXmlErrorHandler',),
- "PySide2.QtXml.QXmlSimpleReader.setFeature": ('str', 'bool'),
- "PySide2.QtXml.QXmlSimpleReader.setLexicalHandler": ('PySide2.QtXml.QXmlLexicalHandler',),
- "PySide2.QtXml.QXmlSimpleReader.setProperty": ('str', 'int'),
- }) if "PySide2.QtXml" in sys.modules else None
-# Module PySide2.QtXmlPatterns
-sig_dict.update({
-# class PySide2.QtXmlPatterns.QAbstractMessageHandler:
- "PySide2.QtXmlPatterns.QAbstractMessageHandler.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtXmlPatterns.QAbstractMessageHandler.handleMessage": ('PySide2.QtCore.QtMsgType', 'str', 'PySide2.QtCore.QUrl', 'PySide2.QtXmlPatterns.QSourceLocation'),
- "PySide2.QtXmlPatterns.QAbstractMessageHandler.message": ('PySide2.QtCore.QtMsgType', 'str', 'PySide2.QtCore.QUrl', 'PySide2.QtXmlPatterns.QSourceLocation'),
-# class PySide2.QtXmlPatterns.QAbstractUriResolver:
- "PySide2.QtXmlPatterns.QAbstractUriResolver.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtXmlPatterns.QAbstractUriResolver.resolve": ('PySide2.QtCore.QUrl', 'PySide2.QtCore.QUrl'),
-# class PySide2.QtXmlPatterns.QAbstractXmlNodeModel:
-# class PySide2.QtXmlPatterns.QAbstractXmlNodeModel.NodeCopySetting:
-# class PySide2.QtXmlPatterns.QAbstractXmlNodeModel.SimpleAxis:
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.__init__": (),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.attributes": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.baseUri": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.compareOrder": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex', 'PySide2.QtXmlPatterns.QXmlNodeModelIndex'),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.createIndex": [('int',), ('int', 'int')],
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.documentUri": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.elementById": ('PySide2.QtXmlPatterns.QXmlName',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.isDeepEqual": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex', 'PySide2.QtXmlPatterns.QXmlNodeModelIndex'),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.kind": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.name": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.namespaceBindings": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.namespaceForPrefix": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex', 'Missing("PySide2.QtXmlPatterns.QXmlName.PrefixCode")'),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.nextFromSimpleAxis": ('PySide2.QtXmlPatterns.QAbstractXmlNodeModel.SimpleAxis', 'PySide2.QtXmlPatterns.QXmlNodeModelIndex'),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.nodesByIdref": ('PySide2.QtXmlPatterns.QXmlName',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.root": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.sendNamespaces": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex', 'PySide2.QtXmlPatterns.QAbstractXmlReceiver'),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.sourceLocation": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.stringValue": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.typedValue": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',),
-# class PySide2.QtXmlPatterns.QAbstractXmlReceiver:
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.__init__": (),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.atomicValue": ('typing.Any',),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.attribute": ('PySide2.QtXmlPatterns.QXmlName', 'str'),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.characters": ('str',),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.comment": ('str',),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.endDocument": (),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.endElement": (),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.endOfSequence": (),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.namespaceBinding": ('PySide2.QtXmlPatterns.QXmlName',),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.processingInstruction": ('PySide2.QtXmlPatterns.QXmlName', 'str'),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.startDocument": (),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.startElement": ('PySide2.QtXmlPatterns.QXmlName',),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.startOfSequence": (),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.whitespaceOnly": ('str',),
-# class PySide2.QtXmlPatterns.QSourceLocation:
- "PySide2.QtXmlPatterns.QSourceLocation.__init__": [(), ('PySide2.QtCore.QUrl', 'int', 'int'), ('PySide2.QtXmlPatterns.QSourceLocation',)],
- "PySide2.QtXmlPatterns.QSourceLocation.__copy__": (),
- "PySide2.QtXmlPatterns.QSourceLocation.column": (),
- "PySide2.QtXmlPatterns.QSourceLocation.isNull": (),
- "PySide2.QtXmlPatterns.QSourceLocation.line": (),
- "PySide2.QtXmlPatterns.QSourceLocation.setColumn": ('int',),
- "PySide2.QtXmlPatterns.QSourceLocation.setLine": ('int',),
- "PySide2.QtXmlPatterns.QSourceLocation.setUri": ('PySide2.QtCore.QUrl',),
- "PySide2.QtXmlPatterns.QSourceLocation.uri": (),
-# class PySide2.QtXmlPatterns.QXmlFormatter:
- "PySide2.QtXmlPatterns.QXmlFormatter.__init__": ('PySide2.QtXmlPatterns.QXmlQuery', 'PySide2.QtCore.QIODevice'),
- "PySide2.QtXmlPatterns.QXmlFormatter.atomicValue": ('typing.Any',),
- "PySide2.QtXmlPatterns.QXmlFormatter.attribute": ('PySide2.QtXmlPatterns.QXmlName', 'str'),
- "PySide2.QtXmlPatterns.QXmlFormatter.characters": ('str',),
- "PySide2.QtXmlPatterns.QXmlFormatter.comment": ('str',),
- "PySide2.QtXmlPatterns.QXmlFormatter.endDocument": (),
- "PySide2.QtXmlPatterns.QXmlFormatter.endElement": (),
- "PySide2.QtXmlPatterns.QXmlFormatter.endOfSequence": (),
- "PySide2.QtXmlPatterns.QXmlFormatter.indentationDepth": (),
- "PySide2.QtXmlPatterns.QXmlFormatter.processingInstruction": ('PySide2.QtXmlPatterns.QXmlName', 'str'),
- "PySide2.QtXmlPatterns.QXmlFormatter.setIndentationDepth": ('int',),
- "PySide2.QtXmlPatterns.QXmlFormatter.startDocument": (),
- "PySide2.QtXmlPatterns.QXmlFormatter.startElement": ('PySide2.QtXmlPatterns.QXmlName',),
- "PySide2.QtXmlPatterns.QXmlFormatter.startOfSequence": (),
-# class PySide2.QtXmlPatterns.QXmlItem:
- "PySide2.QtXmlPatterns.QXmlItem.__init__": [(), ('PySide2.QtXmlPatterns.QXmlItem',), ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',), ('typing.Any',)],
- "PySide2.QtXmlPatterns.QXmlItem.__copy__": (),
- "PySide2.QtXmlPatterns.QXmlItem.isAtomicValue": (),
- "PySide2.QtXmlPatterns.QXmlItem.isNode": (),
- "PySide2.QtXmlPatterns.QXmlItem.isNull": (),
- "PySide2.QtXmlPatterns.QXmlItem.toAtomicValue": (),
- "PySide2.QtXmlPatterns.QXmlItem.toNodeModelIndex": (),
-# class PySide2.QtXmlPatterns.QXmlName:
- "PySide2.QtXmlPatterns.QXmlName.__init__": [(), ('PySide2.QtXmlPatterns.QXmlName',), ('PySide2.QtXmlPatterns.QXmlNamePool', 'str', 'str', 'str')],
- "PySide2.QtXmlPatterns.QXmlName.__copy__": (),
- "PySide2.QtXmlPatterns.QXmlName.fromClarkName": ('str', 'PySide2.QtXmlPatterns.QXmlNamePool'),
- "PySide2.QtXmlPatterns.QXmlName.isNCName": ('str',),
- "PySide2.QtXmlPatterns.QXmlName.isNull": (),
- "PySide2.QtXmlPatterns.QXmlName.localName": ('PySide2.QtXmlPatterns.QXmlNamePool',),
- "PySide2.QtXmlPatterns.QXmlName.namespaceUri": ('PySide2.QtXmlPatterns.QXmlNamePool',),
- "PySide2.QtXmlPatterns.QXmlName.prefix": ('PySide2.QtXmlPatterns.QXmlNamePool',),
- "PySide2.QtXmlPatterns.QXmlName.toClarkName": ('PySide2.QtXmlPatterns.QXmlNamePool',),
-# class PySide2.QtXmlPatterns.QXmlNamePool:
- "PySide2.QtXmlPatterns.QXmlNamePool.__init__": [(), ('PySide2.QtXmlPatterns.QXmlNamePool',)],
- "PySide2.QtXmlPatterns.QXmlNamePool.__copy__": (),
-# class PySide2.QtXmlPatterns.QXmlNodeModelIndex:
-# class PySide2.QtXmlPatterns.QXmlNodeModelIndex.DocumentOrder:
-# class PySide2.QtXmlPatterns.QXmlNodeModelIndex.NodeKind:
- "PySide2.QtXmlPatterns.QXmlNodeModelIndex.__init__": [(), ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',)],
- "PySide2.QtXmlPatterns.QXmlNodeModelIndex.__copy__": (),
- "PySide2.QtXmlPatterns.QXmlNodeModelIndex.additionalData": (),
- "PySide2.QtXmlPatterns.QXmlNodeModelIndex.data": (),
- "PySide2.QtXmlPatterns.QXmlNodeModelIndex.internalPointer": (),
- "PySide2.QtXmlPatterns.QXmlNodeModelIndex.isNull": (),
- "PySide2.QtXmlPatterns.QXmlNodeModelIndex.model": (),
-# class PySide2.QtXmlPatterns.QXmlQuery:
-# class PySide2.QtXmlPatterns.QXmlQuery.QueryLanguage:
- "PySide2.QtXmlPatterns.QXmlQuery.__init__": [(), ('PySide2.QtXmlPatterns.QXmlNamePool',), ('PySide2.QtXmlPatterns.QXmlQuery',), ('PySide2.QtXmlPatterns.QXmlQuery.QueryLanguage', 'PySide2.QtXmlPatterns.QXmlNamePool')],
- "PySide2.QtXmlPatterns.QXmlQuery.__copy__": (),
- "PySide2.QtXmlPatterns.QXmlQuery.bindVariable": [('PySide2.QtXmlPatterns.QXmlName', 'PySide2.QtCore.QIODevice'), ('PySide2.QtXmlPatterns.QXmlName', 'PySide2.QtXmlPatterns.QXmlItem'), ('PySide2.QtXmlPatterns.QXmlName', 'PySide2.QtXmlPatterns.QXmlQuery'), ('str', 'PySide2.QtCore.QIODevice'), ('str', 'PySide2.QtXmlPatterns.QXmlItem'), ('str', 'PySide2.QtXmlPatterns.QXmlQuery')],
- "PySide2.QtXmlPatterns.QXmlQuery.evaluateTo": [('PySide2.QtCore.QIODevice',), ('PySide2.QtXmlPatterns.QAbstractXmlReceiver',), ('PySide2.QtXmlPatterns.QXmlResultItems',)],
- "PySide2.QtXmlPatterns.QXmlQuery.initialTemplateName": (),
- "PySide2.QtXmlPatterns.QXmlQuery.isValid": (),
- "PySide2.QtXmlPatterns.QXmlQuery.messageHandler": (),
- "PySide2.QtXmlPatterns.QXmlQuery.namePool": (),
- "PySide2.QtXmlPatterns.QXmlQuery.queryLanguage": (),
- "PySide2.QtXmlPatterns.QXmlQuery.setFocus": [('PySide2.QtCore.QIODevice',), ('PySide2.QtCore.QUrl',), ('PySide2.QtXmlPatterns.QXmlItem',), ('str',)],
- "PySide2.QtXmlPatterns.QXmlQuery.setInitialTemplateName": [('PySide2.QtXmlPatterns.QXmlName',), ('str',)],
- "PySide2.QtXmlPatterns.QXmlQuery.setMessageHandler": ('PySide2.QtXmlPatterns.QAbstractMessageHandler',),
- "PySide2.QtXmlPatterns.QXmlQuery.setQuery": [('PySide2.QtCore.QIODevice', 'PySide2.QtCore.QUrl'), ('PySide2.QtCore.QUrl', 'PySide2.QtCore.QUrl'), ('str', 'PySide2.QtCore.QUrl')],
- "PySide2.QtXmlPatterns.QXmlQuery.setUriResolver": ('PySide2.QtXmlPatterns.QAbstractUriResolver',),
- "PySide2.QtXmlPatterns.QXmlQuery.uriResolver": (),
-# class PySide2.QtXmlPatterns.QXmlResultItems:
- "PySide2.QtXmlPatterns.QXmlResultItems.__init__": (),
- "PySide2.QtXmlPatterns.QXmlResultItems.current": (),
- "PySide2.QtXmlPatterns.QXmlResultItems.hasError": (),
-# class PySide2.QtXmlPatterns.QXmlSchema:
- "PySide2.QtXmlPatterns.QXmlSchema.__init__": [(), ('PySide2.QtXmlPatterns.QXmlSchema',)],
- "PySide2.QtXmlPatterns.QXmlSchema.documentUri": (),
- "PySide2.QtXmlPatterns.QXmlSchema.isValid": (),
- "PySide2.QtXmlPatterns.QXmlSchema.load": [('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QUrl'), ('PySide2.QtCore.QIODevice', 'PySide2.QtCore.QUrl'), ('PySide2.QtCore.QUrl',)],
- "PySide2.QtXmlPatterns.QXmlSchema.messageHandler": (),
- "PySide2.QtXmlPatterns.QXmlSchema.namePool": (),
- "PySide2.QtXmlPatterns.QXmlSchema.setMessageHandler": ('PySide2.QtXmlPatterns.QAbstractMessageHandler',),
- "PySide2.QtXmlPatterns.QXmlSchema.setUriResolver": ('PySide2.QtXmlPatterns.QAbstractUriResolver',),
- "PySide2.QtXmlPatterns.QXmlSchema.uriResolver": (),
-# class PySide2.QtXmlPatterns.QXmlSchemaValidator:
- "PySide2.QtXmlPatterns.QXmlSchemaValidator.__init__": [(), ('PySide2.QtXmlPatterns.QXmlSchema',)],
- "PySide2.QtXmlPatterns.QXmlSchemaValidator.messageHandler": (),
- "PySide2.QtXmlPatterns.QXmlSchemaValidator.namePool": (),
- "PySide2.QtXmlPatterns.QXmlSchemaValidator.schema": (),
- "PySide2.QtXmlPatterns.QXmlSchemaValidator.setMessageHandler": ('PySide2.QtXmlPatterns.QAbstractMessageHandler',),
- "PySide2.QtXmlPatterns.QXmlSchemaValidator.setSchema": ('PySide2.QtXmlPatterns.QXmlSchema',),
- "PySide2.QtXmlPatterns.QXmlSchemaValidator.setUriResolver": ('PySide2.QtXmlPatterns.QAbstractUriResolver',),
- "PySide2.QtXmlPatterns.QXmlSchemaValidator.uriResolver": (),
- "PySide2.QtXmlPatterns.QXmlSchemaValidator.validate": [('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QUrl'), ('PySide2.QtCore.QIODevice', 'PySide2.QtCore.QUrl'), ('PySide2.QtCore.QUrl',)],
-# class PySide2.QtXmlPatterns.QXmlSerializer:
- "PySide2.QtXmlPatterns.QXmlSerializer.__init__": ('PySide2.QtXmlPatterns.QXmlQuery', 'PySide2.QtCore.QIODevice'),
- "PySide2.QtXmlPatterns.QXmlSerializer.atomicValue": ('typing.Any',),
- "PySide2.QtXmlPatterns.QXmlSerializer.attribute": ('PySide2.QtXmlPatterns.QXmlName', 'str'),
- "PySide2.QtXmlPatterns.QXmlSerializer.characters": ('str',),
- "PySide2.QtXmlPatterns.QXmlSerializer.codec": (),
- "PySide2.QtXmlPatterns.QXmlSerializer.comment": ('str',),
- "PySide2.QtXmlPatterns.QXmlSerializer.endDocument": (),
- "PySide2.QtXmlPatterns.QXmlSerializer.endElement": (),
- "PySide2.QtXmlPatterns.QXmlSerializer.endOfSequence": (),
- "PySide2.QtXmlPatterns.QXmlSerializer.namespaceBinding": ('PySide2.QtXmlPatterns.QXmlName',),
- "PySide2.QtXmlPatterns.QXmlSerializer.outputDevice": (),
- "PySide2.QtXmlPatterns.QXmlSerializer.processingInstruction": ('PySide2.QtXmlPatterns.QXmlName', 'str'),
- "PySide2.QtXmlPatterns.QXmlSerializer.setCodec": ('PySide2.QtCore.QTextCodec',),
- "PySide2.QtXmlPatterns.QXmlSerializer.startDocument": (),
- "PySide2.QtXmlPatterns.QXmlSerializer.startElement": ('PySide2.QtXmlPatterns.QXmlName',),
- "PySide2.QtXmlPatterns.QXmlSerializer.startOfSequence": (),
- }) if "PySide2.QtXmlPatterns" in sys.modules else None
-# Module PySide2.QtHelp
-sig_dict.update({
-# class PySide2.QtHelp.QCompressedHelpInfo:
- "PySide2.QtHelp.QCompressedHelpInfo.__init__": [(), ('PySide2.QtHelp.QCompressedHelpInfo',)],
- "PySide2.QtHelp.QCompressedHelpInfo.__copy__": (),
- "PySide2.QtHelp.QCompressedHelpInfo.component": (),
- "PySide2.QtHelp.QCompressedHelpInfo.fromCompressedHelpFile": ('str',),
- "PySide2.QtHelp.QCompressedHelpInfo.namespaceName": (),
- "PySide2.QtHelp.QCompressedHelpInfo.swap": ('PySide2.QtHelp.QCompressedHelpInfo',),
- "PySide2.QtHelp.QCompressedHelpInfo.version": (),
-# class PySide2.QtHelp.QHelpContentItem:
- "PySide2.QtHelp.QHelpContentItem.__copy__": (),
- "PySide2.QtHelp.QHelpContentItem.child": ('int',),
- "PySide2.QtHelp.QHelpContentItem.childCount": (),
- "PySide2.QtHelp.QHelpContentItem.childPosition": ('PySide2.QtHelp.QHelpContentItem',),
- "PySide2.QtHelp.QHelpContentItem.parent": (),
- "PySide2.QtHelp.QHelpContentItem.row": (),
- "PySide2.QtHelp.QHelpContentItem.title": (),
- "PySide2.QtHelp.QHelpContentItem.url": (),
-# class PySide2.QtHelp.QHelpContentModel:
- "PySide2.QtHelp.QHelpContentModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtHelp.QHelpContentModel.contentItemAt": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtHelp.QHelpContentModel.createContents": ('str',),
- "PySide2.QtHelp.QHelpContentModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtHelp.QHelpContentModel.index": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtHelp.QHelpContentModel.isCreatingContents": (),
- "PySide2.QtHelp.QHelpContentModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtHelp.QHelpContentModel.rowCount": ('PySide2.QtCore.QModelIndex',),
-# class PySide2.QtHelp.QHelpContentWidget:
- "PySide2.QtHelp.QHelpContentWidget.indexOf": ('PySide2.QtCore.QUrl',),
-# class PySide2.QtHelp.QHelpEngine:
- "PySide2.QtHelp.QHelpEngine.__init__": ('str', 'PySide2.QtCore.QObject'),
- "PySide2.QtHelp.QHelpEngine.contentModel": (),
- "PySide2.QtHelp.QHelpEngine.contentWidget": (),
- "PySide2.QtHelp.QHelpEngine.indexModel": (),
- "PySide2.QtHelp.QHelpEngine.indexWidget": (),
- "PySide2.QtHelp.QHelpEngine.searchEngine": (),
-# class PySide2.QtHelp.QHelpEngineCore:
- "PySide2.QtHelp.QHelpEngineCore.__init__": ('str', 'PySide2.QtCore.QObject'),
- "PySide2.QtHelp.QHelpEngineCore.addCustomFilter": ('str', 'typing.Sequence[str]'),
- "PySide2.QtHelp.QHelpEngineCore.autoSaveFilter": (),
- "PySide2.QtHelp.QHelpEngineCore.collectionFile": (),
- "PySide2.QtHelp.QHelpEngineCore.copyCollectionFile": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.currentFilter": (),
- "PySide2.QtHelp.QHelpEngineCore.customFilters": (),
- "PySide2.QtHelp.QHelpEngineCore.customValue": ('str', 'typing.Any'),
- "PySide2.QtHelp.QHelpEngineCore.documentationFileName": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.error": (),
- "PySide2.QtHelp.QHelpEngineCore.fileData": ('PySide2.QtCore.QUrl',),
- "PySide2.QtHelp.QHelpEngineCore.files": [('str', 'str', 'str'), ('str', 'typing.Sequence[str]', 'str')],
- "PySide2.QtHelp.QHelpEngineCore.filterAttributeSets": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.filterAttributes": [(), ('str',)],
- "PySide2.QtHelp.QHelpEngineCore.filterEngine": (),
- "PySide2.QtHelp.QHelpEngineCore.findFile": ('PySide2.QtCore.QUrl',),
- "PySide2.QtHelp.QHelpEngineCore.linksForIdentifier": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.linksForKeyword": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.metaData": ('str', 'str'),
- "PySide2.QtHelp.QHelpEngineCore.namespaceName": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.registerDocumentation": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.registeredDocumentations": (),
- "PySide2.QtHelp.QHelpEngineCore.removeCustomFilter": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.removeCustomValue": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.setAutoSaveFilter": ('bool',),
- "PySide2.QtHelp.QHelpEngineCore.setCollectionFile": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.setCurrentFilter": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.setCustomValue": ('str', 'typing.Any'),
- "PySide2.QtHelp.QHelpEngineCore.setUsesFilterEngine": ('bool',),
- "PySide2.QtHelp.QHelpEngineCore.setupData": (),
- "PySide2.QtHelp.QHelpEngineCore.unregisterDocumentation": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.usesFilterEngine": (),
-# class PySide2.QtHelp.QHelpFilterData:
- "PySide2.QtHelp.QHelpFilterData.__init__": [(), ('PySide2.QtHelp.QHelpFilterData',)],
- "PySide2.QtHelp.QHelpFilterData.__copy__": (),
- "PySide2.QtHelp.QHelpFilterData.components": (),
- "PySide2.QtHelp.QHelpFilterData.setComponents": ('typing.Sequence[str]',),
- "PySide2.QtHelp.QHelpFilterData.setVersions": ('typing.Sequence[PySide2.QtCore.QVersionNumber]',),
- "PySide2.QtHelp.QHelpFilterData.swap": ('PySide2.QtHelp.QHelpFilterData',),
- "PySide2.QtHelp.QHelpFilterData.versions": (),
-# class PySide2.QtHelp.QHelpFilterEngine:
- "PySide2.QtHelp.QHelpFilterEngine.__init__": ('PySide2.QtHelp.QHelpEngineCore',),
- "PySide2.QtHelp.QHelpFilterEngine.activeFilter": (),
- "PySide2.QtHelp.QHelpFilterEngine.availableComponents": (),
- "PySide2.QtHelp.QHelpFilterEngine.filterData": ('str',),
- "PySide2.QtHelp.QHelpFilterEngine.filters": (),
- "PySide2.QtHelp.QHelpFilterEngine.namespaceToComponent": (),
- "PySide2.QtHelp.QHelpFilterEngine.namespaceToVersion": (),
- "PySide2.QtHelp.QHelpFilterEngine.namespacesForFilter": ('str',),
- "PySide2.QtHelp.QHelpFilterEngine.removeFilter": ('str',),
- "PySide2.QtHelp.QHelpFilterEngine.setActiveFilter": ('str',),
- "PySide2.QtHelp.QHelpFilterEngine.setFilterData": ('str', 'PySide2.QtHelp.QHelpFilterData'),
-# class PySide2.QtHelp.QHelpIndexModel:
- "PySide2.QtHelp.QHelpIndexModel.createIndex": [('int', 'int', 'int'), ('int', 'int', 'object'), ('str',)],
- "PySide2.QtHelp.QHelpIndexModel.filter": ('str', 'str'),
- "PySide2.QtHelp.QHelpIndexModel.isCreatingIndex": (),
- "PySide2.QtHelp.QHelpIndexModel.linksForKeyword": ('str',),
-# class PySide2.QtHelp.QHelpIndexWidget:
- "PySide2.QtHelp.QHelpIndexWidget.activateCurrentItem": (),
- "PySide2.QtHelp.QHelpIndexWidget.filterIndices": ('str', 'str'),
-# class PySide2.QtHelp.QHelpSearchEngine:
- "PySide2.QtHelp.QHelpSearchEngine.__init__": ('PySide2.QtHelp.QHelpEngineCore', 'PySide2.QtCore.QObject'),
- "PySide2.QtHelp.QHelpSearchEngine.cancelIndexing": (),
- "PySide2.QtHelp.QHelpSearchEngine.cancelSearching": (),
- "PySide2.QtHelp.QHelpSearchEngine.hitCount": (),
- "PySide2.QtHelp.QHelpSearchEngine.hits": ('int', 'int'),
- "PySide2.QtHelp.QHelpSearchEngine.hitsCount": (),
- "PySide2.QtHelp.QHelpSearchEngine.query": (),
- "PySide2.QtHelp.QHelpSearchEngine.queryWidget": (),
- "PySide2.QtHelp.QHelpSearchEngine.reindexDocumentation": (),
- "PySide2.QtHelp.QHelpSearchEngine.resultWidget": (),
- "PySide2.QtHelp.QHelpSearchEngine.scheduleIndexDocumentation": (),
- "PySide2.QtHelp.QHelpSearchEngine.search": [('str',), ('typing.Sequence[PySide2.QtHelp.QHelpSearchQuery]',)],
- "PySide2.QtHelp.QHelpSearchEngine.searchInput": (),
- "PySide2.QtHelp.QHelpSearchEngine.searchResultCount": (),
- "PySide2.QtHelp.QHelpSearchEngine.searchResults": ('int', 'int'),
-# class PySide2.QtHelp.QHelpSearchQuery:
-# class PySide2.QtHelp.QHelpSearchQuery.FieldName:
- "PySide2.QtHelp.QHelpSearchQuery.__init__": [(), ('PySide2.QtHelp.QHelpSearchQuery',), ('PySide2.QtHelp.QHelpSearchQuery.FieldName', 'typing.Sequence[str]')],
- "PySide2.QtHelp.QHelpSearchQuery.__copy__": (),
-# class PySide2.QtHelp.QHelpSearchQueryWidget:
- "PySide2.QtHelp.QHelpSearchQueryWidget.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtHelp.QHelpSearchQueryWidget.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtHelp.QHelpSearchQueryWidget.collapseExtendedSearch": (),
- "PySide2.QtHelp.QHelpSearchQueryWidget.expandExtendedSearch": (),
- "PySide2.QtHelp.QHelpSearchQueryWidget.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtHelp.QHelpSearchQueryWidget.isCompactMode": (),
- "PySide2.QtHelp.QHelpSearchQueryWidget.query": (),
- "PySide2.QtHelp.QHelpSearchQueryWidget.searchInput": (),
- "PySide2.QtHelp.QHelpSearchQueryWidget.setCompactMode": ('bool',),
- "PySide2.QtHelp.QHelpSearchQueryWidget.setQuery": ('typing.Sequence[PySide2.QtHelp.QHelpSearchQuery]',),
- "PySide2.QtHelp.QHelpSearchQueryWidget.setSearchInput": ('str',),
-# class PySide2.QtHelp.QHelpSearchResult:
- "PySide2.QtHelp.QHelpSearchResult.__init__": [(), ('PySide2.QtCore.QUrl', 'str', 'str'), ('PySide2.QtHelp.QHelpSearchResult',)],
- "PySide2.QtHelp.QHelpSearchResult.snippet": (),
- "PySide2.QtHelp.QHelpSearchResult.title": (),
- "PySide2.QtHelp.QHelpSearchResult.url": (),
-# class PySide2.QtHelp.QHelpSearchResultWidget:
- "PySide2.QtHelp.QHelpSearchResultWidget.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtHelp.QHelpSearchResultWidget.linkAt": ('PySide2.QtCore.QPoint',),
- }) if "PySide2.QtHelp" in sys.modules else None
-# Module PySide2.QtMultimedia
-sig_dict.update({
-# class PySide2.QtMultimedia.QAbstractAudioDeviceInfo:
- "PySide2.QtMultimedia.QAbstractAudioDeviceInfo.__init__": (),
- "PySide2.QtMultimedia.QAbstractAudioDeviceInfo.deviceName": (),
- "PySide2.QtMultimedia.QAbstractAudioDeviceInfo.isFormatSupported": ('PySide2.QtMultimedia.QAudioFormat',),
- "PySide2.QtMultimedia.QAbstractAudioDeviceInfo.preferredFormat": (),
- "PySide2.QtMultimedia.QAbstractAudioDeviceInfo.supportedByteOrders": (),
- "PySide2.QtMultimedia.QAbstractAudioDeviceInfo.supportedChannelCounts": (),
- "PySide2.QtMultimedia.QAbstractAudioDeviceInfo.supportedCodecs": (),
- "PySide2.QtMultimedia.QAbstractAudioDeviceInfo.supportedSampleRates": (),
- "PySide2.QtMultimedia.QAbstractAudioDeviceInfo.supportedSampleSizes": (),
- "PySide2.QtMultimedia.QAbstractAudioDeviceInfo.supportedSampleTypes": (),
-# class PySide2.QtMultimedia.QAbstractAudioInput:
- "PySide2.QtMultimedia.QAbstractAudioInput.__init__": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.bufferSize": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.bytesReady": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.elapsedUSecs": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.error": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.format": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.notifyInterval": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.periodSize": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.processedUSecs": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.reset": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.resume": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.setBufferSize": ('int',),
- "PySide2.QtMultimedia.QAbstractAudioInput.setFormat": ('PySide2.QtMultimedia.QAudioFormat',),
- "PySide2.QtMultimedia.QAbstractAudioInput.setNotifyInterval": ('int',),
- "PySide2.QtMultimedia.QAbstractAudioInput.setVolume": ('float',),
- "PySide2.QtMultimedia.QAbstractAudioInput.start": [(), ('PySide2.QtCore.QIODevice',)],
- "PySide2.QtMultimedia.QAbstractAudioInput.state": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.stop": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.suspend": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.volume": (),
-# class PySide2.QtMultimedia.QAbstractAudioOutput:
- "PySide2.QtMultimedia.QAbstractAudioOutput.__init__": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.bufferSize": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.bytesFree": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.category": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.elapsedUSecs": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.error": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.format": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.notifyInterval": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.periodSize": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.processedUSecs": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.reset": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.resume": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.setBufferSize": ('int',),
- "PySide2.QtMultimedia.QAbstractAudioOutput.setCategory": ('str',),
- "PySide2.QtMultimedia.QAbstractAudioOutput.setFormat": ('PySide2.QtMultimedia.QAudioFormat',),
- "PySide2.QtMultimedia.QAbstractAudioOutput.setNotifyInterval": ('int',),
- "PySide2.QtMultimedia.QAbstractAudioOutput.setVolume": ('float',),
- "PySide2.QtMultimedia.QAbstractAudioOutput.start": [(), ('PySide2.QtCore.QIODevice',)],
- "PySide2.QtMultimedia.QAbstractAudioOutput.state": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.stop": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.suspend": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.volume": (),
-# class PySide2.QtMultimedia.QAbstractVideoBuffer:
-# class PySide2.QtMultimedia.QAbstractVideoBuffer.HandleType:
-# class PySide2.QtMultimedia.QAbstractVideoBuffer.MapMode:
- "PySide2.QtMultimedia.QAbstractVideoBuffer.__init__": ('PySide2.QtMultimedia.QAbstractVideoBuffer.HandleType',),
- "PySide2.QtMultimedia.QAbstractVideoBuffer.handle": (),
- "PySide2.QtMultimedia.QAbstractVideoBuffer.handleType": (),
- "PySide2.QtMultimedia.QAbstractVideoBuffer.mapMode": (),
- "PySide2.QtMultimedia.QAbstractVideoBuffer.release": (),
- "PySide2.QtMultimedia.QAbstractVideoBuffer.unmap": (),
-# class PySide2.QtMultimedia.QAbstractVideoFilter:
- "PySide2.QtMultimedia.QAbstractVideoFilter.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAbstractVideoFilter.createFilterRunnable": (),
- "PySide2.QtMultimedia.QAbstractVideoFilter.isActive": (),
- "PySide2.QtMultimedia.QAbstractVideoFilter.setActive": ('bool',),
-# class PySide2.QtMultimedia.QAbstractVideoSurface:
-# class PySide2.QtMultimedia.QAbstractVideoSurface.Error:
- "PySide2.QtMultimedia.QAbstractVideoSurface.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAbstractVideoSurface.error": (),
- "PySide2.QtMultimedia.QAbstractVideoSurface.isActive": (),
- "PySide2.QtMultimedia.QAbstractVideoSurface.isFormatSupported": ('PySide2.QtMultimedia.QVideoSurfaceFormat',),
- "PySide2.QtMultimedia.QAbstractVideoSurface.nativeResolution": (),
- "PySide2.QtMultimedia.QAbstractVideoSurface.nearestFormat": ('PySide2.QtMultimedia.QVideoSurfaceFormat',),
- "PySide2.QtMultimedia.QAbstractVideoSurface.present": ('PySide2.QtMultimedia.QVideoFrame',),
- "PySide2.QtMultimedia.QAbstractVideoSurface.setError": ('PySide2.QtMultimedia.QAbstractVideoSurface.Error',),
- "PySide2.QtMultimedia.QAbstractVideoSurface.setNativeResolution": ('PySide2.QtCore.QSize',),
- "PySide2.QtMultimedia.QAbstractVideoSurface.start": ('PySide2.QtMultimedia.QVideoSurfaceFormat',),
- "PySide2.QtMultimedia.QAbstractVideoSurface.stop": (),
- "PySide2.QtMultimedia.QAbstractVideoSurface.supportedPixelFormats": ('PySide2.QtMultimedia.QAbstractVideoBuffer.HandleType',),
- "PySide2.QtMultimedia.QAbstractVideoSurface.surfaceFormat": (),
-# class PySide2.QtMultimedia.QAudio:
-# class PySide2.QtMultimedia.QAudio.Error:
-# class PySide2.QtMultimedia.QAudio.Mode:
-# class PySide2.QtMultimedia.QAudio.Role:
-# class PySide2.QtMultimedia.QAudio.State:
-# class PySide2.QtMultimedia.QAudio.VolumeScale:
- "PySide2.QtMultimedia.QAudio.convertVolume": ('float', 'PySide2.QtMultimedia.QAudio.VolumeScale', 'PySide2.QtMultimedia.QAudio.VolumeScale'),
-# class PySide2.QtMultimedia.QAudioBuffer:
- "PySide2.QtMultimedia.QAudioBuffer.__init__": [(), ('PySide2.QtCore.QByteArray', 'PySide2.QtMultimedia.QAudioFormat', 'int'), ('PySide2.QtMultimedia.QAudioBuffer',), ('int', 'PySide2.QtMultimedia.QAudioFormat', 'int')],
- "PySide2.QtMultimedia.QAudioBuffer.__copy__": (),
- "PySide2.QtMultimedia.QAudioBuffer.byteCount": (),
- "PySide2.QtMultimedia.QAudioBuffer.constData": (),
- "PySide2.QtMultimedia.QAudioBuffer.data": (),
- "PySide2.QtMultimedia.QAudioBuffer.duration": (),
- "PySide2.QtMultimedia.QAudioBuffer.format": (),
- "PySide2.QtMultimedia.QAudioBuffer.frameCount": (),
- "PySide2.QtMultimedia.QAudioBuffer.isValid": (),
- "PySide2.QtMultimedia.QAudioBuffer.sampleCount": (),
- "PySide2.QtMultimedia.QAudioBuffer.startTime": (),
-# class PySide2.QtMultimedia.QAudioDecoder:
-# class PySide2.QtMultimedia.QAudioDecoder.Error:
-# class PySide2.QtMultimedia.QAudioDecoder.State:
- "PySide2.QtMultimedia.QAudioDecoder.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAudioDecoder.audioFormat": (),
- "PySide2.QtMultimedia.QAudioDecoder.bind": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAudioDecoder.bufferAvailable": (),
- "PySide2.QtMultimedia.QAudioDecoder.duration": (),
- "PySide2.QtMultimedia.QAudioDecoder.error": (),
- "PySide2.QtMultimedia.QAudioDecoder.errorString": (),
- "PySide2.QtMultimedia.QAudioDecoder.hasSupport": ('str', 'typing.Sequence[str]'),
- "PySide2.QtMultimedia.QAudioDecoder.position": (),
- "PySide2.QtMultimedia.QAudioDecoder.read": (),
- "PySide2.QtMultimedia.QAudioDecoder.setAudioFormat": ('PySide2.QtMultimedia.QAudioFormat',),
- "PySide2.QtMultimedia.QAudioDecoder.setSourceDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtMultimedia.QAudioDecoder.setSourceFilename": ('str',),
- "PySide2.QtMultimedia.QAudioDecoder.sourceDevice": (),
- "PySide2.QtMultimedia.QAudioDecoder.sourceFilename": (),
- "PySide2.QtMultimedia.QAudioDecoder.start": (),
- "PySide2.QtMultimedia.QAudioDecoder.state": (),
- "PySide2.QtMultimedia.QAudioDecoder.stop": (),
- "PySide2.QtMultimedia.QAudioDecoder.unbind": ('PySide2.QtCore.QObject',),
-# class PySide2.QtMultimedia.QAudioDecoderControl:
- "PySide2.QtMultimedia.QAudioDecoderControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAudioDecoderControl.audioFormat": (),
- "PySide2.QtMultimedia.QAudioDecoderControl.bufferAvailable": (),
- "PySide2.QtMultimedia.QAudioDecoderControl.duration": (),
- "PySide2.QtMultimedia.QAudioDecoderControl.position": (),
- "PySide2.QtMultimedia.QAudioDecoderControl.read": (),
- "PySide2.QtMultimedia.QAudioDecoderControl.setAudioFormat": ('PySide2.QtMultimedia.QAudioFormat',),
- "PySide2.QtMultimedia.QAudioDecoderControl.setSourceDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtMultimedia.QAudioDecoderControl.setSourceFilename": ('str',),
- "PySide2.QtMultimedia.QAudioDecoderControl.sourceDevice": (),
- "PySide2.QtMultimedia.QAudioDecoderControl.sourceFilename": (),
- "PySide2.QtMultimedia.QAudioDecoderControl.start": (),
- "PySide2.QtMultimedia.QAudioDecoderControl.state": (),
- "PySide2.QtMultimedia.QAudioDecoderControl.stop": (),
-# class PySide2.QtMultimedia.QAudioDeviceInfo:
- "PySide2.QtMultimedia.QAudioDeviceInfo.__init__": [(), ('PySide2.QtMultimedia.QAudioDeviceInfo',)],
- "PySide2.QtMultimedia.QAudioDeviceInfo.__copy__": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.availableDevices": ('PySide2.QtMultimedia.QAudio.Mode',),
- "PySide2.QtMultimedia.QAudioDeviceInfo.defaultInputDevice": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.defaultOutputDevice": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.deviceName": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.isFormatSupported": ('PySide2.QtMultimedia.QAudioFormat',),
- "PySide2.QtMultimedia.QAudioDeviceInfo.isNull": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.nearestFormat": ('PySide2.QtMultimedia.QAudioFormat',),
- "PySide2.QtMultimedia.QAudioDeviceInfo.preferredFormat": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.realm": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.supportedByteOrders": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.supportedChannelCounts": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.supportedCodecs": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.supportedSampleRates": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.supportedSampleSizes": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.supportedSampleTypes": (),
-# class PySide2.QtMultimedia.QAudioEncoderSettings:
- "PySide2.QtMultimedia.QAudioEncoderSettings.__init__": [(), ('PySide2.QtMultimedia.QAudioEncoderSettings',)],
- "PySide2.QtMultimedia.QAudioEncoderSettings.__copy__": (),
- "PySide2.QtMultimedia.QAudioEncoderSettings.bitRate": (),
- "PySide2.QtMultimedia.QAudioEncoderSettings.channelCount": (),
- "PySide2.QtMultimedia.QAudioEncoderSettings.codec": (),
- "PySide2.QtMultimedia.QAudioEncoderSettings.encodingMode": (),
- "PySide2.QtMultimedia.QAudioEncoderSettings.encodingOption": ('str',),
- "PySide2.QtMultimedia.QAudioEncoderSettings.encodingOptions": (),
- "PySide2.QtMultimedia.QAudioEncoderSettings.isNull": (),
- "PySide2.QtMultimedia.QAudioEncoderSettings.quality": (),
- "PySide2.QtMultimedia.QAudioEncoderSettings.sampleRate": (),
- "PySide2.QtMultimedia.QAudioEncoderSettings.setBitRate": ('int',),
- "PySide2.QtMultimedia.QAudioEncoderSettings.setChannelCount": ('int',),
- "PySide2.QtMultimedia.QAudioEncoderSettings.setCodec": ('str',),
- "PySide2.QtMultimedia.QAudioEncoderSettings.setEncodingMode": ('PySide2.QtMultimedia.QMultimedia.EncodingMode',),
- "PySide2.QtMultimedia.QAudioEncoderSettings.setEncodingOption": ('str', 'typing.Any'),
- "PySide2.QtMultimedia.QAudioEncoderSettings.setEncodingOptions": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtMultimedia.QAudioEncoderSettings.setQuality": ('PySide2.QtMultimedia.QMultimedia.EncodingQuality',),
- "PySide2.QtMultimedia.QAudioEncoderSettings.setSampleRate": ('int',),
-# class PySide2.QtMultimedia.QAudioEncoderSettingsControl:
- "PySide2.QtMultimedia.QAudioEncoderSettingsControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAudioEncoderSettingsControl.audioSettings": (),
- "PySide2.QtMultimedia.QAudioEncoderSettingsControl.codecDescription": ('str',),
- "PySide2.QtMultimedia.QAudioEncoderSettingsControl.setAudioSettings": ('PySide2.QtMultimedia.QAudioEncoderSettings',),
- "PySide2.QtMultimedia.QAudioEncoderSettingsControl.supportedAudioCodecs": (),
-# class PySide2.QtMultimedia.QAudioFormat:
-# class PySide2.QtMultimedia.QAudioFormat.Endian:
-# class PySide2.QtMultimedia.QAudioFormat.SampleType:
- "PySide2.QtMultimedia.QAudioFormat.__init__": [(), ('PySide2.QtMultimedia.QAudioFormat',)],
- "PySide2.QtMultimedia.QAudioFormat.__copy__": (),
- "PySide2.QtMultimedia.QAudioFormat.byteOrder": (),
- "PySide2.QtMultimedia.QAudioFormat.bytesForDuration": ('int',),
- "PySide2.QtMultimedia.QAudioFormat.bytesForFrames": ('int',),
- "PySide2.QtMultimedia.QAudioFormat.bytesPerFrame": (),
- "PySide2.QtMultimedia.QAudioFormat.channelCount": (),
- "PySide2.QtMultimedia.QAudioFormat.codec": (),
- "PySide2.QtMultimedia.QAudioFormat.durationForBytes": ('int',),
- "PySide2.QtMultimedia.QAudioFormat.durationForFrames": ('int',),
- "PySide2.QtMultimedia.QAudioFormat.framesForBytes": ('int',),
- "PySide2.QtMultimedia.QAudioFormat.framesForDuration": ('int',),
- "PySide2.QtMultimedia.QAudioFormat.isValid": (),
- "PySide2.QtMultimedia.QAudioFormat.sampleRate": (),
- "PySide2.QtMultimedia.QAudioFormat.sampleSize": (),
- "PySide2.QtMultimedia.QAudioFormat.sampleType": (),
- "PySide2.QtMultimedia.QAudioFormat.setByteOrder": ('PySide2.QtMultimedia.QAudioFormat.Endian',),
- "PySide2.QtMultimedia.QAudioFormat.setChannelCount": ('int',),
- "PySide2.QtMultimedia.QAudioFormat.setCodec": ('str',),
- "PySide2.QtMultimedia.QAudioFormat.setSampleRate": ('int',),
- "PySide2.QtMultimedia.QAudioFormat.setSampleSize": ('int',),
- "PySide2.QtMultimedia.QAudioFormat.setSampleType": ('PySide2.QtMultimedia.QAudioFormat.SampleType',),
-# class PySide2.QtMultimedia.QAudioInput:
- "PySide2.QtMultimedia.QAudioInput.__init__": [('PySide2.QtMultimedia.QAudioDeviceInfo', 'PySide2.QtMultimedia.QAudioFormat', 'PySide2.QtCore.QObject'), ('PySide2.QtMultimedia.QAudioFormat', 'PySide2.QtCore.QObject')],
- "PySide2.QtMultimedia.QAudioInput.bufferSize": (),
- "PySide2.QtMultimedia.QAudioInput.bytesReady": (),
- "PySide2.QtMultimedia.QAudioInput.elapsedUSecs": (),
- "PySide2.QtMultimedia.QAudioInput.error": (),
- "PySide2.QtMultimedia.QAudioInput.format": (),
- "PySide2.QtMultimedia.QAudioInput.notifyInterval": (),
- "PySide2.QtMultimedia.QAudioInput.periodSize": (),
- "PySide2.QtMultimedia.QAudioInput.processedUSecs": (),
- "PySide2.QtMultimedia.QAudioInput.reset": (),
- "PySide2.QtMultimedia.QAudioInput.resume": (),
- "PySide2.QtMultimedia.QAudioInput.setBufferSize": ('int',),
- "PySide2.QtMultimedia.QAudioInput.setNotifyInterval": ('int',),
- "PySide2.QtMultimedia.QAudioInput.setVolume": ('float',),
- "PySide2.QtMultimedia.QAudioInput.start": [(), ('PySide2.QtCore.QIODevice',)],
- "PySide2.QtMultimedia.QAudioInput.state": (),
- "PySide2.QtMultimedia.QAudioInput.stop": (),
- "PySide2.QtMultimedia.QAudioInput.suspend": (),
- "PySide2.QtMultimedia.QAudioInput.volume": (),
-# class PySide2.QtMultimedia.QAudioInputSelectorControl:
- "PySide2.QtMultimedia.QAudioInputSelectorControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAudioInputSelectorControl.activeInput": (),
- "PySide2.QtMultimedia.QAudioInputSelectorControl.availableInputs": (),
- "PySide2.QtMultimedia.QAudioInputSelectorControl.defaultInput": (),
- "PySide2.QtMultimedia.QAudioInputSelectorControl.inputDescription": ('str',),
- "PySide2.QtMultimedia.QAudioInputSelectorControl.setActiveInput": ('str',),
-# class PySide2.QtMultimedia.QAudioOutput:
- "PySide2.QtMultimedia.QAudioOutput.__init__": [('PySide2.QtMultimedia.QAudioDeviceInfo', 'PySide2.QtMultimedia.QAudioFormat', 'PySide2.QtCore.QObject'), ('PySide2.QtMultimedia.QAudioFormat', 'PySide2.QtCore.QObject')],
- "PySide2.QtMultimedia.QAudioOutput.bufferSize": (),
- "PySide2.QtMultimedia.QAudioOutput.bytesFree": (),
- "PySide2.QtMultimedia.QAudioOutput.category": (),
- "PySide2.QtMultimedia.QAudioOutput.elapsedUSecs": (),
- "PySide2.QtMultimedia.QAudioOutput.error": (),
- "PySide2.QtMultimedia.QAudioOutput.format": (),
- "PySide2.QtMultimedia.QAudioOutput.notifyInterval": (),
- "PySide2.QtMultimedia.QAudioOutput.periodSize": (),
- "PySide2.QtMultimedia.QAudioOutput.processedUSecs": (),
- "PySide2.QtMultimedia.QAudioOutput.reset": (),
- "PySide2.QtMultimedia.QAudioOutput.resume": (),
- "PySide2.QtMultimedia.QAudioOutput.setBufferSize": ('int',),
- "PySide2.QtMultimedia.QAudioOutput.setCategory": ('str',),
- "PySide2.QtMultimedia.QAudioOutput.setNotifyInterval": ('int',),
- "PySide2.QtMultimedia.QAudioOutput.setVolume": ('float',),
- "PySide2.QtMultimedia.QAudioOutput.start": [(), ('PySide2.QtCore.QIODevice',)],
- "PySide2.QtMultimedia.QAudioOutput.state": (),
- "PySide2.QtMultimedia.QAudioOutput.stop": (),
- "PySide2.QtMultimedia.QAudioOutput.suspend": (),
- "PySide2.QtMultimedia.QAudioOutput.volume": (),
-# class PySide2.QtMultimedia.QAudioOutputSelectorControl:
- "PySide2.QtMultimedia.QAudioOutputSelectorControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAudioOutputSelectorControl.activeOutput": (),
- "PySide2.QtMultimedia.QAudioOutputSelectorControl.availableOutputs": (),
- "PySide2.QtMultimedia.QAudioOutputSelectorControl.defaultOutput": (),
- "PySide2.QtMultimedia.QAudioOutputSelectorControl.outputDescription": ('str',),
- "PySide2.QtMultimedia.QAudioOutputSelectorControl.setActiveOutput": ('str',),
-# class PySide2.QtMultimedia.QAudioProbe:
- "PySide2.QtMultimedia.QAudioProbe.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAudioProbe.isActive": (),
- "PySide2.QtMultimedia.QAudioProbe.setSource": [('PySide2.QtMultimedia.QMediaObject',), ('PySide2.QtMultimedia.QMediaRecorder',)],
-# class PySide2.QtMultimedia.QAudioRecorder:
- "PySide2.QtMultimedia.QAudioRecorder.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAudioRecorder.audioInput": (),
- "PySide2.QtMultimedia.QAudioRecorder.audioInputDescription": ('str',),
- "PySide2.QtMultimedia.QAudioRecorder.audioInputs": (),
- "PySide2.QtMultimedia.QAudioRecorder.defaultAudioInput": (),
- "PySide2.QtMultimedia.QAudioRecorder.setAudioInput": ('str',),
-# class PySide2.QtMultimedia.QAudioRoleControl:
- "PySide2.QtMultimedia.QAudioRoleControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAudioRoleControl.audioRole": (),
- "PySide2.QtMultimedia.QAudioRoleControl.setAudioRole": ('PySide2.QtMultimedia.QAudio.Role',),
- "PySide2.QtMultimedia.QAudioRoleControl.supportedAudioRoles": (),
-# class PySide2.QtMultimedia.QCamera:
-# class PySide2.QtMultimedia.QCamera.CaptureMode:
-# class PySide2.QtMultimedia.QCamera.CaptureModes:
-# class PySide2.QtMultimedia.QCamera.Error:
-# class PySide2.QtMultimedia.QCamera.FrameRateRange:
- "PySide2.QtMultimedia.QCamera.FrameRateRange.__init__": [(), ('PySide2.QtMultimedia.QCamera.FrameRateRange',), ('float', 'float')],
- "PySide2.QtMultimedia.QCamera.FrameRateRange.__copy__": (),
-# class PySide2.QtMultimedia.QCamera.LockChangeReason:
-# class PySide2.QtMultimedia.QCamera.LockStatus:
-# class PySide2.QtMultimedia.QCamera.LockType:
-# class PySide2.QtMultimedia.QCamera.LockTypes:
-# class PySide2.QtMultimedia.QCamera.Position:
-# class PySide2.QtMultimedia.QCamera.State:
-# class PySide2.QtMultimedia.QCamera.Status:
- "PySide2.QtMultimedia.QCamera.__init__": [('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QObject',), ('PySide2.QtMultimedia.QCamera.Position', 'PySide2.QtCore.QObject'), ('PySide2.QtMultimedia.QCameraInfo', 'PySide2.QtCore.QObject')],
- "PySide2.QtMultimedia.QCamera.availability": (),
- "PySide2.QtMultimedia.QCamera.availableDevices": (),
- "PySide2.QtMultimedia.QCamera.captureMode": (),
- "PySide2.QtMultimedia.QCamera.deviceDescription": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtMultimedia.QCamera.error": (),
- "PySide2.QtMultimedia.QCamera.errorString": (),
- "PySide2.QtMultimedia.QCamera.exposure": (),
- "PySide2.QtMultimedia.QCamera.focus": (),
- "PySide2.QtMultimedia.QCamera.imageProcessing": (),
- "PySide2.QtMultimedia.QCamera.isCaptureModeSupported": ('PySide2.QtMultimedia.QCamera.CaptureModes',),
- "PySide2.QtMultimedia.QCamera.load": (),
- "PySide2.QtMultimedia.QCamera.lockStatus": [(), ('PySide2.QtMultimedia.QCamera.LockType',)],
- "PySide2.QtMultimedia.QCamera.requestedLocks": (),
- "PySide2.QtMultimedia.QCamera.searchAndLock": [(), ('PySide2.QtMultimedia.QCamera.LockTypes',)],
- "PySide2.QtMultimedia.QCamera.setCaptureMode": ('PySide2.QtMultimedia.QCamera.CaptureModes',),
- "PySide2.QtMultimedia.QCamera.setViewfinder": [('PySide2.QtMultimedia.QAbstractVideoSurface',), ('PySide2.QtMultimediaWidgets.QGraphicsVideoItem',), ('PySide2.QtMultimediaWidgets.QVideoWidget',)],
- "PySide2.QtMultimedia.QCamera.setViewfinderSettings": ('PySide2.QtMultimedia.QCameraViewfinderSettings',),
- "PySide2.QtMultimedia.QCamera.start": (),
- "PySide2.QtMultimedia.QCamera.state": (),
- "PySide2.QtMultimedia.QCamera.status": (),
- "PySide2.QtMultimedia.QCamera.stop": (),
- "PySide2.QtMultimedia.QCamera.supportedLocks": (),
- "PySide2.QtMultimedia.QCamera.supportedViewfinderFrameRateRanges": ('PySide2.QtMultimedia.QCameraViewfinderSettings',),
- "PySide2.QtMultimedia.QCamera.supportedViewfinderPixelFormats": ('PySide2.QtMultimedia.QCameraViewfinderSettings',),
- "PySide2.QtMultimedia.QCamera.supportedViewfinderResolutions": ('PySide2.QtMultimedia.QCameraViewfinderSettings',),
- "PySide2.QtMultimedia.QCamera.supportedViewfinderSettings": ('PySide2.QtMultimedia.QCameraViewfinderSettings',),
- "PySide2.QtMultimedia.QCamera.unload": (),
- "PySide2.QtMultimedia.QCamera.unlock": [(), ('PySide2.QtMultimedia.QCamera.LockTypes',)],
- "PySide2.QtMultimedia.QCamera.viewfinderSettings": (),
-# class PySide2.QtMultimedia.QCameraCaptureBufferFormatControl:
- "PySide2.QtMultimedia.QCameraCaptureBufferFormatControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraCaptureBufferFormatControl.bufferFormat": (),
- "PySide2.QtMultimedia.QCameraCaptureBufferFormatControl.setBufferFormat": ('PySide2.QtMultimedia.QVideoFrame.PixelFormat',),
- "PySide2.QtMultimedia.QCameraCaptureBufferFormatControl.supportedBufferFormats": (),
-# class PySide2.QtMultimedia.QCameraCaptureDestinationControl:
- "PySide2.QtMultimedia.QCameraCaptureDestinationControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraCaptureDestinationControl.captureDestination": (),
- "PySide2.QtMultimedia.QCameraCaptureDestinationControl.isCaptureDestinationSupported": ('PySide2.QtMultimedia.QCameraImageCapture.CaptureDestinations',),
- "PySide2.QtMultimedia.QCameraCaptureDestinationControl.setCaptureDestination": ('PySide2.QtMultimedia.QCameraImageCapture.CaptureDestinations',),
-# class PySide2.QtMultimedia.QCameraControl:
-# class PySide2.QtMultimedia.QCameraControl.PropertyChangeType:
- "PySide2.QtMultimedia.QCameraControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraControl.canChangeProperty": ('PySide2.QtMultimedia.QCameraControl.PropertyChangeType', 'PySide2.QtMultimedia.QCamera.Status'),
- "PySide2.QtMultimedia.QCameraControl.captureMode": (),
- "PySide2.QtMultimedia.QCameraControl.isCaptureModeSupported": ('PySide2.QtMultimedia.QCamera.CaptureModes',),
- "PySide2.QtMultimedia.QCameraControl.setCaptureMode": ('PySide2.QtMultimedia.QCamera.CaptureModes',),
- "PySide2.QtMultimedia.QCameraControl.setState": ('PySide2.QtMultimedia.QCamera.State',),
- "PySide2.QtMultimedia.QCameraControl.state": (),
- "PySide2.QtMultimedia.QCameraControl.status": (),
-# class PySide2.QtMultimedia.QCameraExposure:
-# class PySide2.QtMultimedia.QCameraExposure.ExposureMode:
-# class PySide2.QtMultimedia.QCameraExposure.FlashMode:
-# class PySide2.QtMultimedia.QCameraExposure.FlashModes:
-# class PySide2.QtMultimedia.QCameraExposure.MeteringMode:
- "PySide2.QtMultimedia.QCameraExposure.aperture": (),
- "PySide2.QtMultimedia.QCameraExposure.exposureCompensation": (),
- "PySide2.QtMultimedia.QCameraExposure.exposureMode": (),
- "PySide2.QtMultimedia.QCameraExposure.flashMode": (),
- "PySide2.QtMultimedia.QCameraExposure.isAvailable": (),
- "PySide2.QtMultimedia.QCameraExposure.isExposureModeSupported": ('PySide2.QtMultimedia.QCameraExposure.ExposureMode',),
- "PySide2.QtMultimedia.QCameraExposure.isFlashModeSupported": ('PySide2.QtMultimedia.QCameraExposure.FlashModes',),
- "PySide2.QtMultimedia.QCameraExposure.isFlashReady": (),
- "PySide2.QtMultimedia.QCameraExposure.isMeteringModeSupported": ('PySide2.QtMultimedia.QCameraExposure.MeteringMode',),
- "PySide2.QtMultimedia.QCameraExposure.isoSensitivity": (),
- "PySide2.QtMultimedia.QCameraExposure.meteringMode": (),
- "PySide2.QtMultimedia.QCameraExposure.requestedAperture": (),
- "PySide2.QtMultimedia.QCameraExposure.requestedIsoSensitivity": (),
- "PySide2.QtMultimedia.QCameraExposure.requestedShutterSpeed": (),
- "PySide2.QtMultimedia.QCameraExposure.setAutoAperture": (),
- "PySide2.QtMultimedia.QCameraExposure.setAutoIsoSensitivity": (),
- "PySide2.QtMultimedia.QCameraExposure.setAutoShutterSpeed": (),
- "PySide2.QtMultimedia.QCameraExposure.setExposureCompensation": ('float',),
- "PySide2.QtMultimedia.QCameraExposure.setExposureMode": ('PySide2.QtMultimedia.QCameraExposure.ExposureMode',),
- "PySide2.QtMultimedia.QCameraExposure.setFlashMode": ('PySide2.QtMultimedia.QCameraExposure.FlashModes',),
- "PySide2.QtMultimedia.QCameraExposure.setManualAperture": ('float',),
- "PySide2.QtMultimedia.QCameraExposure.setManualIsoSensitivity": ('int',),
- "PySide2.QtMultimedia.QCameraExposure.setManualShutterSpeed": ('float',),
- "PySide2.QtMultimedia.QCameraExposure.setMeteringMode": ('PySide2.QtMultimedia.QCameraExposure.MeteringMode',),
- "PySide2.QtMultimedia.QCameraExposure.setSpotMeteringPoint": ('PySide2.QtCore.QPointF',),
- "PySide2.QtMultimedia.QCameraExposure.shutterSpeed": (),
- "PySide2.QtMultimedia.QCameraExposure.spotMeteringPoint": (),
-# class PySide2.QtMultimedia.QCameraExposureControl:
-# class PySide2.QtMultimedia.QCameraExposureControl.ExposureParameter:
- "PySide2.QtMultimedia.QCameraExposureControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraExposureControl.actualValue": ('PySide2.QtMultimedia.QCameraExposureControl.ExposureParameter',),
- "PySide2.QtMultimedia.QCameraExposureControl.isParameterSupported": ('PySide2.QtMultimedia.QCameraExposureControl.ExposureParameter',),
- "PySide2.QtMultimedia.QCameraExposureControl.requestedValue": ('PySide2.QtMultimedia.QCameraExposureControl.ExposureParameter',),
- "PySide2.QtMultimedia.QCameraExposureControl.setValue": ('PySide2.QtMultimedia.QCameraExposureControl.ExposureParameter', 'typing.Any'),
-# class PySide2.QtMultimedia.QCameraFeedbackControl:
-# class PySide2.QtMultimedia.QCameraFeedbackControl.EventType:
- "PySide2.QtMultimedia.QCameraFeedbackControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraFeedbackControl.isEventFeedbackEnabled": ('PySide2.QtMultimedia.QCameraFeedbackControl.EventType',),
- "PySide2.QtMultimedia.QCameraFeedbackControl.isEventFeedbackLocked": ('PySide2.QtMultimedia.QCameraFeedbackControl.EventType',),
- "PySide2.QtMultimedia.QCameraFeedbackControl.resetEventFeedback": ('PySide2.QtMultimedia.QCameraFeedbackControl.EventType',),
- "PySide2.QtMultimedia.QCameraFeedbackControl.setEventFeedbackEnabled": ('PySide2.QtMultimedia.QCameraFeedbackControl.EventType', 'bool'),
- "PySide2.QtMultimedia.QCameraFeedbackControl.setEventFeedbackSound": ('PySide2.QtMultimedia.QCameraFeedbackControl.EventType', 'str'),
-# class PySide2.QtMultimedia.QCameraFlashControl:
- "PySide2.QtMultimedia.QCameraFlashControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraFlashControl.flashMode": (),
- "PySide2.QtMultimedia.QCameraFlashControl.isFlashModeSupported": ('PySide2.QtMultimedia.QCameraExposure.FlashModes',),
- "PySide2.QtMultimedia.QCameraFlashControl.isFlashReady": (),
- "PySide2.QtMultimedia.QCameraFlashControl.setFlashMode": ('PySide2.QtMultimedia.QCameraExposure.FlashModes',),
-# class PySide2.QtMultimedia.QCameraFocus:
-# class PySide2.QtMultimedia.QCameraFocus.FocusMode:
-# class PySide2.QtMultimedia.QCameraFocus.FocusModes:
-# class PySide2.QtMultimedia.QCameraFocus.FocusPointMode:
- "PySide2.QtMultimedia.QCameraFocus.customFocusPoint": (),
- "PySide2.QtMultimedia.QCameraFocus.digitalZoom": (),
- "PySide2.QtMultimedia.QCameraFocus.focusMode": (),
- "PySide2.QtMultimedia.QCameraFocus.focusPointMode": (),
- "PySide2.QtMultimedia.QCameraFocus.focusZones": (),
- "PySide2.QtMultimedia.QCameraFocus.isAvailable": (),
- "PySide2.QtMultimedia.QCameraFocus.isFocusModeSupported": ('PySide2.QtMultimedia.QCameraFocus.FocusModes',),
- "PySide2.QtMultimedia.QCameraFocus.isFocusPointModeSupported": ('PySide2.QtMultimedia.QCameraFocus.FocusPointMode',),
- "PySide2.QtMultimedia.QCameraFocus.maximumDigitalZoom": (),
- "PySide2.QtMultimedia.QCameraFocus.maximumOpticalZoom": (),
- "PySide2.QtMultimedia.QCameraFocus.opticalZoom": (),
- "PySide2.QtMultimedia.QCameraFocus.setCustomFocusPoint": ('PySide2.QtCore.QPointF',),
- "PySide2.QtMultimedia.QCameraFocus.setFocusMode": ('PySide2.QtMultimedia.QCameraFocus.FocusModes',),
- "PySide2.QtMultimedia.QCameraFocus.setFocusPointMode": ('PySide2.QtMultimedia.QCameraFocus.FocusPointMode',),
- "PySide2.QtMultimedia.QCameraFocus.zoomTo": ('float', 'float'),
-# class PySide2.QtMultimedia.QCameraFocusControl:
- "PySide2.QtMultimedia.QCameraFocusControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraFocusControl.customFocusPoint": (),
- "PySide2.QtMultimedia.QCameraFocusControl.focusMode": (),
- "PySide2.QtMultimedia.QCameraFocusControl.focusPointMode": (),
- "PySide2.QtMultimedia.QCameraFocusControl.focusZones": (),
- "PySide2.QtMultimedia.QCameraFocusControl.isFocusModeSupported": ('PySide2.QtMultimedia.QCameraFocus.FocusModes',),
- "PySide2.QtMultimedia.QCameraFocusControl.isFocusPointModeSupported": ('PySide2.QtMultimedia.QCameraFocus.FocusPointMode',),
- "PySide2.QtMultimedia.QCameraFocusControl.setCustomFocusPoint": ('PySide2.QtCore.QPointF',),
- "PySide2.QtMultimedia.QCameraFocusControl.setFocusMode": ('PySide2.QtMultimedia.QCameraFocus.FocusModes',),
- "PySide2.QtMultimedia.QCameraFocusControl.setFocusPointMode": ('PySide2.QtMultimedia.QCameraFocus.FocusPointMode',),
-# class PySide2.QtMultimedia.QCameraFocusZone:
-# class PySide2.QtMultimedia.QCameraFocusZone.FocusZoneStatus:
- "PySide2.QtMultimedia.QCameraFocusZone.__init__": [(), ('PySide2.QtCore.QRectF', 'PySide2.QtMultimedia.QCameraFocusZone.FocusZoneStatus'), ('PySide2.QtMultimedia.QCameraFocusZone',)],
- "PySide2.QtMultimedia.QCameraFocusZone.__copy__": (),
- "PySide2.QtMultimedia.QCameraFocusZone.area": (),
- "PySide2.QtMultimedia.QCameraFocusZone.isValid": (),
- "PySide2.QtMultimedia.QCameraFocusZone.setStatus": ('PySide2.QtMultimedia.QCameraFocusZone.FocusZoneStatus',),
- "PySide2.QtMultimedia.QCameraFocusZone.status": (),
-# class PySide2.QtMultimedia.QCameraImageCapture:
-# class PySide2.QtMultimedia.QCameraImageCapture.CaptureDestination:
-# class PySide2.QtMultimedia.QCameraImageCapture.CaptureDestinations:
-# class PySide2.QtMultimedia.QCameraImageCapture.DriveMode:
-# class PySide2.QtMultimedia.QCameraImageCapture.Error:
- "PySide2.QtMultimedia.QCameraImageCapture.__init__": ('PySide2.QtMultimedia.QMediaObject', 'PySide2.QtCore.QObject'),
- "PySide2.QtMultimedia.QCameraImageCapture.availability": (),
- "PySide2.QtMultimedia.QCameraImageCapture.bufferFormat": (),
- "PySide2.QtMultimedia.QCameraImageCapture.cancelCapture": (),
- "PySide2.QtMultimedia.QCameraImageCapture.capture": ('str',),
- "PySide2.QtMultimedia.QCameraImageCapture.captureDestination": (),
- "PySide2.QtMultimedia.QCameraImageCapture.encodingSettings": (),
- "PySide2.QtMultimedia.QCameraImageCapture.error": (),
- "PySide2.QtMultimedia.QCameraImageCapture.errorString": (),
- "PySide2.QtMultimedia.QCameraImageCapture.imageCodecDescription": ('str',),
- "PySide2.QtMultimedia.QCameraImageCapture.isAvailable": (),
- "PySide2.QtMultimedia.QCameraImageCapture.isCaptureDestinationSupported": ('PySide2.QtMultimedia.QCameraImageCapture.CaptureDestinations',),
- "PySide2.QtMultimedia.QCameraImageCapture.isReadyForCapture": (),
- "PySide2.QtMultimedia.QCameraImageCapture.mediaObject": (),
- "PySide2.QtMultimedia.QCameraImageCapture.setBufferFormat": ('PySide2.QtMultimedia.QVideoFrame.PixelFormat',),
- "PySide2.QtMultimedia.QCameraImageCapture.setCaptureDestination": ('PySide2.QtMultimedia.QCameraImageCapture.CaptureDestinations',),
- "PySide2.QtMultimedia.QCameraImageCapture.setEncodingSettings": ('PySide2.QtMultimedia.QImageEncoderSettings',),
- "PySide2.QtMultimedia.QCameraImageCapture.setMediaObject": ('PySide2.QtMultimedia.QMediaObject',),
- "PySide2.QtMultimedia.QCameraImageCapture.supportedBufferFormats": (),
- "PySide2.QtMultimedia.QCameraImageCapture.supportedImageCodecs": (),
-# class PySide2.QtMultimedia.QCameraImageCaptureControl:
- "PySide2.QtMultimedia.QCameraImageCaptureControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraImageCaptureControl.cancelCapture": (),
- "PySide2.QtMultimedia.QCameraImageCaptureControl.capture": ('str',),
- "PySide2.QtMultimedia.QCameraImageCaptureControl.driveMode": (),
- "PySide2.QtMultimedia.QCameraImageCaptureControl.isReadyForCapture": (),
- "PySide2.QtMultimedia.QCameraImageCaptureControl.setDriveMode": ('PySide2.QtMultimedia.QCameraImageCapture.DriveMode',),
-# class PySide2.QtMultimedia.QCameraImageProcessing:
-# class PySide2.QtMultimedia.QCameraImageProcessing.ColorFilter:
-# class PySide2.QtMultimedia.QCameraImageProcessing.WhiteBalanceMode:
- "PySide2.QtMultimedia.QCameraImageProcessing.brightness": (),
- "PySide2.QtMultimedia.QCameraImageProcessing.colorFilter": (),
- "PySide2.QtMultimedia.QCameraImageProcessing.contrast": (),
- "PySide2.QtMultimedia.QCameraImageProcessing.denoisingLevel": (),
- "PySide2.QtMultimedia.QCameraImageProcessing.isAvailable": (),
- "PySide2.QtMultimedia.QCameraImageProcessing.isColorFilterSupported": ('PySide2.QtMultimedia.QCameraImageProcessing.ColorFilter',),
- "PySide2.QtMultimedia.QCameraImageProcessing.isWhiteBalanceModeSupported": ('PySide2.QtMultimedia.QCameraImageProcessing.WhiteBalanceMode',),
- "PySide2.QtMultimedia.QCameraImageProcessing.manualWhiteBalance": (),
- "PySide2.QtMultimedia.QCameraImageProcessing.saturation": (),
- "PySide2.QtMultimedia.QCameraImageProcessing.setBrightness": ('float',),
- "PySide2.QtMultimedia.QCameraImageProcessing.setColorFilter": ('PySide2.QtMultimedia.QCameraImageProcessing.ColorFilter',),
- "PySide2.QtMultimedia.QCameraImageProcessing.setContrast": ('float',),
- "PySide2.QtMultimedia.QCameraImageProcessing.setDenoisingLevel": ('float',),
- "PySide2.QtMultimedia.QCameraImageProcessing.setManualWhiteBalance": ('float',),
- "PySide2.QtMultimedia.QCameraImageProcessing.setSaturation": ('float',),
- "PySide2.QtMultimedia.QCameraImageProcessing.setSharpeningLevel": ('float',),
- "PySide2.QtMultimedia.QCameraImageProcessing.setWhiteBalanceMode": ('PySide2.QtMultimedia.QCameraImageProcessing.WhiteBalanceMode',),
- "PySide2.QtMultimedia.QCameraImageProcessing.sharpeningLevel": (),
- "PySide2.QtMultimedia.QCameraImageProcessing.whiteBalanceMode": (),
-# class PySide2.QtMultimedia.QCameraImageProcessingControl:
-# class PySide2.QtMultimedia.QCameraImageProcessingControl.ProcessingParameter:
- "PySide2.QtMultimedia.QCameraImageProcessingControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraImageProcessingControl.isParameterSupported": ('PySide2.QtMultimedia.QCameraImageProcessingControl.ProcessingParameter',),
- "PySide2.QtMultimedia.QCameraImageProcessingControl.isParameterValueSupported": ('PySide2.QtMultimedia.QCameraImageProcessingControl.ProcessingParameter', 'typing.Any'),
- "PySide2.QtMultimedia.QCameraImageProcessingControl.parameter": ('PySide2.QtMultimedia.QCameraImageProcessingControl.ProcessingParameter',),
- "PySide2.QtMultimedia.QCameraImageProcessingControl.setParameter": ('PySide2.QtMultimedia.QCameraImageProcessingControl.ProcessingParameter', 'typing.Any'),
-# class PySide2.QtMultimedia.QCameraInfo:
- "PySide2.QtMultimedia.QCameraInfo.__init__": [('PySide2.QtCore.QByteArray',), ('PySide2.QtMultimedia.QCamera',), ('PySide2.QtMultimedia.QCameraInfo',)],
- "PySide2.QtMultimedia.QCameraInfo.__copy__": (),
- "PySide2.QtMultimedia.QCameraInfo.availableCameras": ('PySide2.QtMultimedia.QCamera.Position',),
- "PySide2.QtMultimedia.QCameraInfo.defaultCamera": (),
- "PySide2.QtMultimedia.QCameraInfo.description": (),
- "PySide2.QtMultimedia.QCameraInfo.deviceName": (),
- "PySide2.QtMultimedia.QCameraInfo.isNull": (),
- "PySide2.QtMultimedia.QCameraInfo.orientation": (),
- "PySide2.QtMultimedia.QCameraInfo.position": (),
-# class PySide2.QtMultimedia.QCameraInfoControl:
- "PySide2.QtMultimedia.QCameraInfoControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraInfoControl.cameraOrientation": ('str',),
- "PySide2.QtMultimedia.QCameraInfoControl.cameraPosition": ('str',),
-# class PySide2.QtMultimedia.QCameraLocksControl:
- "PySide2.QtMultimedia.QCameraLocksControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraLocksControl.lockStatus": ('PySide2.QtMultimedia.QCamera.LockType',),
- "PySide2.QtMultimedia.QCameraLocksControl.searchAndLock": ('PySide2.QtMultimedia.QCamera.LockTypes',),
- "PySide2.QtMultimedia.QCameraLocksControl.supportedLocks": (),
- "PySide2.QtMultimedia.QCameraLocksControl.unlock": ('PySide2.QtMultimedia.QCamera.LockTypes',),
-# class PySide2.QtMultimedia.QCameraViewfinderSettings:
- "PySide2.QtMultimedia.QCameraViewfinderSettings.__init__": [(), ('PySide2.QtMultimedia.QCameraViewfinderSettings',)],
- "PySide2.QtMultimedia.QCameraViewfinderSettings.__copy__": (),
- "PySide2.QtMultimedia.QCameraViewfinderSettings.isNull": (),
- "PySide2.QtMultimedia.QCameraViewfinderSettings.maximumFrameRate": (),
- "PySide2.QtMultimedia.QCameraViewfinderSettings.minimumFrameRate": (),
- "PySide2.QtMultimedia.QCameraViewfinderSettings.pixelAspectRatio": (),
- "PySide2.QtMultimedia.QCameraViewfinderSettings.pixelFormat": (),
- "PySide2.QtMultimedia.QCameraViewfinderSettings.resolution": (),
- "PySide2.QtMultimedia.QCameraViewfinderSettings.setMaximumFrameRate": ('float',),
- "PySide2.QtMultimedia.QCameraViewfinderSettings.setMinimumFrameRate": ('float',),
- "PySide2.QtMultimedia.QCameraViewfinderSettings.setPixelAspectRatio": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtMultimedia.QCameraViewfinderSettings.setPixelFormat": ('PySide2.QtMultimedia.QVideoFrame.PixelFormat',),
- "PySide2.QtMultimedia.QCameraViewfinderSettings.setResolution": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtMultimedia.QCameraViewfinderSettings.swap": ('PySide2.QtMultimedia.QCameraViewfinderSettings',),
-# class PySide2.QtMultimedia.QCameraViewfinderSettingsControl:
-# class PySide2.QtMultimedia.QCameraViewfinderSettingsControl.ViewfinderParameter:
- "PySide2.QtMultimedia.QCameraViewfinderSettingsControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraViewfinderSettingsControl.isViewfinderParameterSupported": ('PySide2.QtMultimedia.QCameraViewfinderSettingsControl.ViewfinderParameter',),
- "PySide2.QtMultimedia.QCameraViewfinderSettingsControl.setViewfinderParameter": ('PySide2.QtMultimedia.QCameraViewfinderSettingsControl.ViewfinderParameter', 'typing.Any'),
- "PySide2.QtMultimedia.QCameraViewfinderSettingsControl.viewfinderParameter": ('PySide2.QtMultimedia.QCameraViewfinderSettingsControl.ViewfinderParameter',),
-# class PySide2.QtMultimedia.QCameraViewfinderSettingsControl2:
- "PySide2.QtMultimedia.QCameraViewfinderSettingsControl2.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraViewfinderSettingsControl2.setViewfinderSettings": ('PySide2.QtMultimedia.QCameraViewfinderSettings',),
- "PySide2.QtMultimedia.QCameraViewfinderSettingsControl2.supportedViewfinderSettings": (),
- "PySide2.QtMultimedia.QCameraViewfinderSettingsControl2.viewfinderSettings": (),
-# class PySide2.QtMultimedia.QCameraZoomControl:
- "PySide2.QtMultimedia.QCameraZoomControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraZoomControl.currentDigitalZoom": (),
- "PySide2.QtMultimedia.QCameraZoomControl.currentOpticalZoom": (),
- "PySide2.QtMultimedia.QCameraZoomControl.maximumDigitalZoom": (),
- "PySide2.QtMultimedia.QCameraZoomControl.maximumOpticalZoom": (),
- "PySide2.QtMultimedia.QCameraZoomControl.requestedDigitalZoom": (),
- "PySide2.QtMultimedia.QCameraZoomControl.requestedOpticalZoom": (),
- "PySide2.QtMultimedia.QCameraZoomControl.zoomTo": ('float', 'float'),
-# class PySide2.QtMultimedia.QCustomAudioRoleControl:
- "PySide2.QtMultimedia.QCustomAudioRoleControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCustomAudioRoleControl.customAudioRole": (),
- "PySide2.QtMultimedia.QCustomAudioRoleControl.setCustomAudioRole": ('str',),
- "PySide2.QtMultimedia.QCustomAudioRoleControl.supportedCustomAudioRoles": (),
-# class PySide2.QtMultimedia.QImageEncoderControl:
- "PySide2.QtMultimedia.QImageEncoderControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QImageEncoderControl.imageCodecDescription": ('str',),
- "PySide2.QtMultimedia.QImageEncoderControl.imageSettings": (),
- "PySide2.QtMultimedia.QImageEncoderControl.setImageSettings": ('PySide2.QtMultimedia.QImageEncoderSettings',),
- "PySide2.QtMultimedia.QImageEncoderControl.supportedImageCodecs": (),
-# class PySide2.QtMultimedia.QImageEncoderSettings:
- "PySide2.QtMultimedia.QImageEncoderSettings.__init__": [(), ('PySide2.QtMultimedia.QImageEncoderSettings',)],
- "PySide2.QtMultimedia.QImageEncoderSettings.__copy__": (),
- "PySide2.QtMultimedia.QImageEncoderSettings.codec": (),
- "PySide2.QtMultimedia.QImageEncoderSettings.encodingOption": ('str',),
- "PySide2.QtMultimedia.QImageEncoderSettings.encodingOptions": (),
- "PySide2.QtMultimedia.QImageEncoderSettings.isNull": (),
- "PySide2.QtMultimedia.QImageEncoderSettings.quality": (),
- "PySide2.QtMultimedia.QImageEncoderSettings.resolution": (),
- "PySide2.QtMultimedia.QImageEncoderSettings.setCodec": ('str',),
- "PySide2.QtMultimedia.QImageEncoderSettings.setEncodingOption": ('str', 'typing.Any'),
- "PySide2.QtMultimedia.QImageEncoderSettings.setEncodingOptions": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtMultimedia.QImageEncoderSettings.setQuality": ('PySide2.QtMultimedia.QMultimedia.EncodingQuality',),
- "PySide2.QtMultimedia.QImageEncoderSettings.setResolution": [('PySide2.QtCore.QSize',), ('int', 'int')],
-# class PySide2.QtMultimedia.QMediaAudioProbeControl:
- "PySide2.QtMultimedia.QMediaAudioProbeControl.__init__": ('PySide2.QtCore.QObject',),
-# class PySide2.QtMultimedia.QMediaAvailabilityControl:
- "PySide2.QtMultimedia.QMediaAvailabilityControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaAvailabilityControl.availability": (),
-# class PySide2.QtMultimedia.QMediaBindableInterface:
- "PySide2.QtMultimedia.QMediaBindableInterface.__init__": (),
- "PySide2.QtMultimedia.QMediaBindableInterface.mediaObject": (),
- "PySide2.QtMultimedia.QMediaBindableInterface.setMediaObject": ('PySide2.QtMultimedia.QMediaObject',),
-# class PySide2.QtMultimedia.QMediaContainerControl:
- "PySide2.QtMultimedia.QMediaContainerControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaContainerControl.containerDescription": ('str',),
- "PySide2.QtMultimedia.QMediaContainerControl.containerFormat": (),
- "PySide2.QtMultimedia.QMediaContainerControl.setContainerFormat": ('str',),
- "PySide2.QtMultimedia.QMediaContainerControl.supportedContainers": (),
-# class PySide2.QtMultimedia.QMediaContent:
- "PySide2.QtMultimedia.QMediaContent.__init__": [(), ('PySide2.QtCore.QUrl',), ('PySide2.QtMultimedia.QMediaContent',), ('PySide2.QtMultimedia.QMediaPlaylist', 'PySide2.QtCore.QUrl', 'bool'), ('PySide2.QtMultimedia.QMediaResource',), ('PySide2.QtNetwork.QNetworkRequest',), ('typing.Sequence[PySide2.QtMultimedia.QMediaResource]',)],
- "PySide2.QtMultimedia.QMediaContent.__copy__": (),
- "PySide2.QtMultimedia.QMediaContent.canonicalRequest": (),
- "PySide2.QtMultimedia.QMediaContent.canonicalResource": (),
- "PySide2.QtMultimedia.QMediaContent.canonicalUrl": (),
- "PySide2.QtMultimedia.QMediaContent.isNull": (),
- "PySide2.QtMultimedia.QMediaContent.playlist": (),
- "PySide2.QtMultimedia.QMediaContent.request": (),
- "PySide2.QtMultimedia.QMediaContent.resources": (),
-# class PySide2.QtMultimedia.QMediaControl:
- "PySide2.QtMultimedia.QMediaControl.__init__": ('PySide2.QtCore.QObject',),
-# class PySide2.QtMultimedia.QMediaGaplessPlaybackControl:
- "PySide2.QtMultimedia.QMediaGaplessPlaybackControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaGaplessPlaybackControl.crossfadeTime": (),
- "PySide2.QtMultimedia.QMediaGaplessPlaybackControl.isCrossfadeSupported": (),
- "PySide2.QtMultimedia.QMediaGaplessPlaybackControl.nextMedia": (),
- "PySide2.QtMultimedia.QMediaGaplessPlaybackControl.setCrossfadeTime": ('float',),
- "PySide2.QtMultimedia.QMediaGaplessPlaybackControl.setNextMedia": ('PySide2.QtMultimedia.QMediaContent',),
-# class PySide2.QtMultimedia.QMediaNetworkAccessControl:
- "PySide2.QtMultimedia.QMediaNetworkAccessControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaNetworkAccessControl.currentConfiguration": (),
- "PySide2.QtMultimedia.QMediaNetworkAccessControl.setConfigurations": ('typing.Sequence[PySide2.QtNetwork.QNetworkConfiguration]',),
-# class PySide2.QtMultimedia.QMediaObject:
- "PySide2.QtMultimedia.QMediaObject.__init__": ('PySide2.QtCore.QObject', 'PySide2.QtMultimedia.QMediaService'),
- "PySide2.QtMultimedia.QMediaObject.addPropertyWatch": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtMultimedia.QMediaObject.availability": (),
- "PySide2.QtMultimedia.QMediaObject.availableMetaData": (),
- "PySide2.QtMultimedia.QMediaObject.bind": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaObject.isAvailable": (),
- "PySide2.QtMultimedia.QMediaObject.isMetaDataAvailable": (),
- "PySide2.QtMultimedia.QMediaObject.metaData": ('str',),
- "PySide2.QtMultimedia.QMediaObject.notifyInterval": (),
- "PySide2.QtMultimedia.QMediaObject.removePropertyWatch": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtMultimedia.QMediaObject.service": (),
- "PySide2.QtMultimedia.QMediaObject.setNotifyInterval": ('int',),
- "PySide2.QtMultimedia.QMediaObject.unbind": ('PySide2.QtCore.QObject',),
-# class PySide2.QtMultimedia.QMediaPlayer:
-# class PySide2.QtMultimedia.QMediaPlayer.Error:
-# class PySide2.QtMultimedia.QMediaPlayer.Flag:
-# class PySide2.QtMultimedia.QMediaPlayer.Flags:
-# class PySide2.QtMultimedia.QMediaPlayer.MediaStatus:
-# class PySide2.QtMultimedia.QMediaPlayer.State:
- "PySide2.QtMultimedia.QMediaPlayer.__init__": ('PySide2.QtCore.QObject', 'PySide2.QtMultimedia.QMediaPlayer.Flags'),
- "PySide2.QtMultimedia.QMediaPlayer.audioRole": (),
- "PySide2.QtMultimedia.QMediaPlayer.availability": (),
- "PySide2.QtMultimedia.QMediaPlayer.bind": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaPlayer.bufferStatus": (),
- "PySide2.QtMultimedia.QMediaPlayer.currentMedia": (),
- "PySide2.QtMultimedia.QMediaPlayer.currentNetworkConfiguration": (),
- "PySide2.QtMultimedia.QMediaPlayer.customAudioRole": (),
- "PySide2.QtMultimedia.QMediaPlayer.duration": (),
- "PySide2.QtMultimedia.QMediaPlayer.error": (),
- "PySide2.QtMultimedia.QMediaPlayer.errorString": (),
- "PySide2.QtMultimedia.QMediaPlayer.hasSupport": ('str', 'typing.Sequence[str]', 'PySide2.QtMultimedia.QMediaPlayer.Flags'),
- "PySide2.QtMultimedia.QMediaPlayer.isAudioAvailable": (),
- "PySide2.QtMultimedia.QMediaPlayer.isMuted": (),
- "PySide2.QtMultimedia.QMediaPlayer.isSeekable": (),
- "PySide2.QtMultimedia.QMediaPlayer.isVideoAvailable": (),
- "PySide2.QtMultimedia.QMediaPlayer.media": (),
- "PySide2.QtMultimedia.QMediaPlayer.mediaStatus": (),
- "PySide2.QtMultimedia.QMediaPlayer.mediaStream": (),
- "PySide2.QtMultimedia.QMediaPlayer.pause": (),
- "PySide2.QtMultimedia.QMediaPlayer.play": (),
- "PySide2.QtMultimedia.QMediaPlayer.playbackRate": (),
- "PySide2.QtMultimedia.QMediaPlayer.playlist": (),
- "PySide2.QtMultimedia.QMediaPlayer.position": (),
- "PySide2.QtMultimedia.QMediaPlayer.setAudioRole": ('PySide2.QtMultimedia.QAudio.Role',),
- "PySide2.QtMultimedia.QMediaPlayer.setCustomAudioRole": ('str',),
- "PySide2.QtMultimedia.QMediaPlayer.setMedia": ('PySide2.QtMultimedia.QMediaContent', 'PySide2.QtCore.QIODevice'),
- "PySide2.QtMultimedia.QMediaPlayer.setMuted": ('bool',),
- "PySide2.QtMultimedia.QMediaPlayer.setNetworkConfigurations": ('typing.Sequence[PySide2.QtNetwork.QNetworkConfiguration]',),
- "PySide2.QtMultimedia.QMediaPlayer.setPlaybackRate": ('float',),
- "PySide2.QtMultimedia.QMediaPlayer.setPlaylist": ('PySide2.QtMultimedia.QMediaPlaylist',),
- "PySide2.QtMultimedia.QMediaPlayer.setPosition": ('int',),
- "PySide2.QtMultimedia.QMediaPlayer.setVideoOutput": [('PySide2.QtMultimedia.QAbstractVideoSurface',), ('PySide2.QtMultimediaWidgets.QGraphicsVideoItem',), ('PySide2.QtMultimediaWidgets.QVideoWidget',)],
- "PySide2.QtMultimedia.QMediaPlayer.setVolume": ('int',),
- "PySide2.QtMultimedia.QMediaPlayer.state": (),
- "PySide2.QtMultimedia.QMediaPlayer.stop": (),
- "PySide2.QtMultimedia.QMediaPlayer.supportedAudioRoles": (),
- "PySide2.QtMultimedia.QMediaPlayer.supportedCustomAudioRoles": (),
- "PySide2.QtMultimedia.QMediaPlayer.supportedMimeTypes": ('PySide2.QtMultimedia.QMediaPlayer.Flags',),
- "PySide2.QtMultimedia.QMediaPlayer.unbind": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaPlayer.volume": (),
-# class PySide2.QtMultimedia.QMediaPlayerControl:
- "PySide2.QtMultimedia.QMediaPlayerControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaPlayerControl.availablePlaybackRanges": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.bufferStatus": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.duration": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.isAudioAvailable": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.isMuted": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.isSeekable": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.isVideoAvailable": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.media": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.mediaStatus": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.mediaStream": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.pause": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.play": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.playbackRate": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.position": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.setMedia": ('PySide2.QtMultimedia.QMediaContent', 'PySide2.QtCore.QIODevice'),
- "PySide2.QtMultimedia.QMediaPlayerControl.setMuted": ('bool',),
- "PySide2.QtMultimedia.QMediaPlayerControl.setPlaybackRate": ('float',),
- "PySide2.QtMultimedia.QMediaPlayerControl.setPosition": ('int',),
- "PySide2.QtMultimedia.QMediaPlayerControl.setVolume": ('int',),
- "PySide2.QtMultimedia.QMediaPlayerControl.state": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.stop": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.volume": (),
-# class PySide2.QtMultimedia.QMediaPlaylist:
-# class PySide2.QtMultimedia.QMediaPlaylist.Error:
-# class PySide2.QtMultimedia.QMediaPlaylist.PlaybackMode:
- "PySide2.QtMultimedia.QMediaPlaylist.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaPlaylist.addMedia": [('PySide2.QtMultimedia.QMediaContent',), ('typing.Sequence[PySide2.QtMultimedia.QMediaContent]',)],
- "PySide2.QtMultimedia.QMediaPlaylist.clear": (),
- "PySide2.QtMultimedia.QMediaPlaylist.currentIndex": (),
- "PySide2.QtMultimedia.QMediaPlaylist.currentMedia": (),
- "PySide2.QtMultimedia.QMediaPlaylist.error": (),
- "PySide2.QtMultimedia.QMediaPlaylist.errorString": (),
- "PySide2.QtMultimedia.QMediaPlaylist.insertMedia": [('int', 'PySide2.QtMultimedia.QMediaContent'), ('int', 'typing.Sequence[PySide2.QtMultimedia.QMediaContent]')],
- "PySide2.QtMultimedia.QMediaPlaylist.isEmpty": (),
- "PySide2.QtMultimedia.QMediaPlaylist.isReadOnly": (),
- "PySide2.QtMultimedia.QMediaPlaylist.load": [('PySide2.QtCore.QIODevice', 'str'), ('PySide2.QtCore.QUrl', 'str'), ('PySide2.QtNetwork.QNetworkRequest', 'str')],
- "PySide2.QtMultimedia.QMediaPlaylist.media": ('int',),
- "PySide2.QtMultimedia.QMediaPlaylist.mediaCount": (),
- "PySide2.QtMultimedia.QMediaPlaylist.mediaObject": (),
- "PySide2.QtMultimedia.QMediaPlaylist.moveMedia": ('int', 'int'),
- "PySide2.QtMultimedia.QMediaPlaylist.nextIndex": ('int',),
- "PySide2.QtMultimedia.QMediaPlaylist.playbackMode": (),
- "PySide2.QtMultimedia.QMediaPlaylist.previous": (),
- "PySide2.QtMultimedia.QMediaPlaylist.previousIndex": ('int',),
- "PySide2.QtMultimedia.QMediaPlaylist.removeMedia": [('int',), ('int', 'int')],
- "PySide2.QtMultimedia.QMediaPlaylist.save": [('PySide2.QtCore.QIODevice', 'str'), ('PySide2.QtCore.QUrl', 'str')],
- "PySide2.QtMultimedia.QMediaPlaylist.setCurrentIndex": ('int',),
- "PySide2.QtMultimedia.QMediaPlaylist.setMediaObject": ('PySide2.QtMultimedia.QMediaObject',),
- "PySide2.QtMultimedia.QMediaPlaylist.setPlaybackMode": ('PySide2.QtMultimedia.QMediaPlaylist.PlaybackMode',),
- "PySide2.QtMultimedia.QMediaPlaylist.shuffle": (),
-# class PySide2.QtMultimedia.QMediaRecorder:
-# class PySide2.QtMultimedia.QMediaRecorder.Error:
-# class PySide2.QtMultimedia.QMediaRecorder.State:
-# class PySide2.QtMultimedia.QMediaRecorder.Status:
- "PySide2.QtMultimedia.QMediaRecorder.__init__": ('PySide2.QtMultimedia.QMediaObject', 'PySide2.QtCore.QObject'),
- "PySide2.QtMultimedia.QMediaRecorder.actualLocation": (),
- "PySide2.QtMultimedia.QMediaRecorder.audioCodecDescription": ('str',),
- "PySide2.QtMultimedia.QMediaRecorder.audioSettings": (),
- "PySide2.QtMultimedia.QMediaRecorder.availability": (),
- "PySide2.QtMultimedia.QMediaRecorder.availableMetaData": (),
- "PySide2.QtMultimedia.QMediaRecorder.containerDescription": ('str',),
- "PySide2.QtMultimedia.QMediaRecorder.containerFormat": (),
- "PySide2.QtMultimedia.QMediaRecorder.duration": (),
- "PySide2.QtMultimedia.QMediaRecorder.error": (),
- "PySide2.QtMultimedia.QMediaRecorder.errorString": (),
- "PySide2.QtMultimedia.QMediaRecorder.isAvailable": (),
- "PySide2.QtMultimedia.QMediaRecorder.isMetaDataAvailable": (),
- "PySide2.QtMultimedia.QMediaRecorder.isMetaDataWritable": (),
- "PySide2.QtMultimedia.QMediaRecorder.isMuted": (),
- "PySide2.QtMultimedia.QMediaRecorder.mediaObject": (),
- "PySide2.QtMultimedia.QMediaRecorder.metaData": ('str',),
- "PySide2.QtMultimedia.QMediaRecorder.outputLocation": (),
- "PySide2.QtMultimedia.QMediaRecorder.pause": (),
- "PySide2.QtMultimedia.QMediaRecorder.record": (),
- "PySide2.QtMultimedia.QMediaRecorder.setAudioSettings": ('PySide2.QtMultimedia.QAudioEncoderSettings',),
- "PySide2.QtMultimedia.QMediaRecorder.setContainerFormat": ('str',),
- "PySide2.QtMultimedia.QMediaRecorder.setEncodingSettings": ('PySide2.QtMultimedia.QAudioEncoderSettings', 'PySide2.QtMultimedia.QVideoEncoderSettings', 'str'),
- "PySide2.QtMultimedia.QMediaRecorder.setMediaObject": ('PySide2.QtMultimedia.QMediaObject',),
- "PySide2.QtMultimedia.QMediaRecorder.setMetaData": ('str', 'typing.Any'),
- "PySide2.QtMultimedia.QMediaRecorder.setMuted": ('bool',),
- "PySide2.QtMultimedia.QMediaRecorder.setOutputLocation": ('PySide2.QtCore.QUrl',),
- "PySide2.QtMultimedia.QMediaRecorder.setVideoSettings": ('PySide2.QtMultimedia.QVideoEncoderSettings',),
- "PySide2.QtMultimedia.QMediaRecorder.setVolume": ('float',),
- "PySide2.QtMultimedia.QMediaRecorder.state": (),
- "PySide2.QtMultimedia.QMediaRecorder.status": (),
- "PySide2.QtMultimedia.QMediaRecorder.stop": (),
- "PySide2.QtMultimedia.QMediaRecorder.supportedAudioCodecs": (),
- "PySide2.QtMultimedia.QMediaRecorder.supportedContainers": (),
- "PySide2.QtMultimedia.QMediaRecorder.supportedVideoCodecs": (),
- "PySide2.QtMultimedia.QMediaRecorder.videoCodecDescription": ('str',),
- "PySide2.QtMultimedia.QMediaRecorder.videoSettings": (),
- "PySide2.QtMultimedia.QMediaRecorder.volume": (),
-# class PySide2.QtMultimedia.QMediaRecorderControl:
- "PySide2.QtMultimedia.QMediaRecorderControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaRecorderControl.applySettings": (),
- "PySide2.QtMultimedia.QMediaRecorderControl.duration": (),
- "PySide2.QtMultimedia.QMediaRecorderControl.isMuted": (),
- "PySide2.QtMultimedia.QMediaRecorderControl.outputLocation": (),
- "PySide2.QtMultimedia.QMediaRecorderControl.setMuted": ('bool',),
- "PySide2.QtMultimedia.QMediaRecorderControl.setOutputLocation": ('PySide2.QtCore.QUrl',),
- "PySide2.QtMultimedia.QMediaRecorderControl.setState": ('PySide2.QtMultimedia.QMediaRecorder.State',),
- "PySide2.QtMultimedia.QMediaRecorderControl.setVolume": ('float',),
- "PySide2.QtMultimedia.QMediaRecorderControl.state": (),
- "PySide2.QtMultimedia.QMediaRecorderControl.status": (),
- "PySide2.QtMultimedia.QMediaRecorderControl.volume": (),
-# class PySide2.QtMultimedia.QMediaResource:
- "PySide2.QtMultimedia.QMediaResource.__init__": [(), ('PySide2.QtCore.QUrl', 'str'), ('PySide2.QtMultimedia.QMediaResource',), ('PySide2.QtNetwork.QNetworkRequest', 'str')],
- "PySide2.QtMultimedia.QMediaResource.__copy__": (),
- "PySide2.QtMultimedia.QMediaResource.audioBitRate": (),
- "PySide2.QtMultimedia.QMediaResource.audioCodec": (),
- "PySide2.QtMultimedia.QMediaResource.channelCount": (),
- "PySide2.QtMultimedia.QMediaResource.dataSize": (),
- "PySide2.QtMultimedia.QMediaResource.isNull": (),
- "PySide2.QtMultimedia.QMediaResource.language": (),
- "PySide2.QtMultimedia.QMediaResource.mimeType": (),
- "PySide2.QtMultimedia.QMediaResource.request": (),
- "PySide2.QtMultimedia.QMediaResource.resolution": (),
- "PySide2.QtMultimedia.QMediaResource.sampleRate": (),
- "PySide2.QtMultimedia.QMediaResource.setAudioBitRate": ('int',),
- "PySide2.QtMultimedia.QMediaResource.setAudioCodec": ('str',),
- "PySide2.QtMultimedia.QMediaResource.setChannelCount": ('int',),
- "PySide2.QtMultimedia.QMediaResource.setDataSize": ('int',),
- "PySide2.QtMultimedia.QMediaResource.setLanguage": ('str',),
- "PySide2.QtMultimedia.QMediaResource.setResolution": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtMultimedia.QMediaResource.setSampleRate": ('int',),
- "PySide2.QtMultimedia.QMediaResource.setVideoBitRate": ('int',),
- "PySide2.QtMultimedia.QMediaResource.setVideoCodec": ('str',),
- "PySide2.QtMultimedia.QMediaResource.url": (),
- "PySide2.QtMultimedia.QMediaResource.videoBitRate": (),
- "PySide2.QtMultimedia.QMediaResource.videoCodec": (),
-# class PySide2.QtMultimedia.QMediaService:
- "PySide2.QtMultimedia.QMediaService.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaService.releaseControl": ('PySide2.QtMultimedia.QMediaControl',),
- "PySide2.QtMultimedia.QMediaService.requestControl": ('str',),
-# class PySide2.QtMultimedia.QMediaServiceCameraInfoInterface:
- "PySide2.QtMultimedia.QMediaServiceCameraInfoInterface.__init__": (),
- "PySide2.QtMultimedia.QMediaServiceCameraInfoInterface.cameraOrientation": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtMultimedia.QMediaServiceCameraInfoInterface.cameraPosition": ('PySide2.QtCore.QByteArray',),
-# class PySide2.QtMultimedia.QMediaServiceDefaultDeviceInterface:
- "PySide2.QtMultimedia.QMediaServiceDefaultDeviceInterface.__init__": (),
- "PySide2.QtMultimedia.QMediaServiceDefaultDeviceInterface.defaultDevice": ('PySide2.QtCore.QByteArray',),
-# class PySide2.QtMultimedia.QMediaServiceFeaturesInterface:
- "PySide2.QtMultimedia.QMediaServiceFeaturesInterface.__init__": (),
- "PySide2.QtMultimedia.QMediaServiceFeaturesInterface.supportedFeatures": ('PySide2.QtCore.QByteArray',),
-# class PySide2.QtMultimedia.QMediaServiceProviderHint:
-# class PySide2.QtMultimedia.QMediaServiceProviderHint.Feature:
-# class PySide2.QtMultimedia.QMediaServiceProviderHint.Features:
-# class PySide2.QtMultimedia.QMediaServiceProviderHint.Type:
- "PySide2.QtMultimedia.QMediaServiceProviderHint.__init__": [(), ('PySide2.QtCore.QByteArray',), ('PySide2.QtMultimedia.QCamera.Position',), ('PySide2.QtMultimedia.QMediaServiceProviderHint',), ('PySide2.QtMultimedia.QMediaServiceProviderHint.Features',), ('str', 'typing.Sequence[str]')],
- "PySide2.QtMultimedia.QMediaServiceProviderHint.__copy__": (),
- "PySide2.QtMultimedia.QMediaServiceProviderHint.cameraPosition": (),
- "PySide2.QtMultimedia.QMediaServiceProviderHint.codecs": (),
- "PySide2.QtMultimedia.QMediaServiceProviderHint.device": (),
- "PySide2.QtMultimedia.QMediaServiceProviderHint.features": (),
- "PySide2.QtMultimedia.QMediaServiceProviderHint.isNull": (),
- "PySide2.QtMultimedia.QMediaServiceProviderHint.mimeType": (),
- "PySide2.QtMultimedia.QMediaServiceProviderHint.type": (),
-# class PySide2.QtMultimedia.QMediaServiceSupportedDevicesInterface:
- "PySide2.QtMultimedia.QMediaServiceSupportedDevicesInterface.__init__": (),
- "PySide2.QtMultimedia.QMediaServiceSupportedDevicesInterface.deviceDescription": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtMultimedia.QMediaServiceSupportedDevicesInterface.devices": ('PySide2.QtCore.QByteArray',),
-# class PySide2.QtMultimedia.QMediaServiceSupportedFormatsInterface:
- "PySide2.QtMultimedia.QMediaServiceSupportedFormatsInterface.__init__": (),
- "PySide2.QtMultimedia.QMediaServiceSupportedFormatsInterface.hasSupport": ('str', 'typing.Sequence[str]'),
- "PySide2.QtMultimedia.QMediaServiceSupportedFormatsInterface.supportedMimeTypes": (),
-# class PySide2.QtMultimedia.QMediaStreamsControl:
-# class PySide2.QtMultimedia.QMediaStreamsControl.StreamType:
- "PySide2.QtMultimedia.QMediaStreamsControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaStreamsControl.isActive": ('int',),
- "PySide2.QtMultimedia.QMediaStreamsControl.metaData": ('int', 'str'),
- "PySide2.QtMultimedia.QMediaStreamsControl.setActive": ('int', 'bool'),
- "PySide2.QtMultimedia.QMediaStreamsControl.streamCount": (),
- "PySide2.QtMultimedia.QMediaStreamsControl.streamType": ('int',),
-# class PySide2.QtMultimedia.QMediaTimeInterval:
- "PySide2.QtMultimedia.QMediaTimeInterval.__init__": [(), ('PySide2.QtMultimedia.QMediaTimeInterval',), ('int', 'int')],
- "PySide2.QtMultimedia.QMediaTimeInterval.__copy__": (),
- "PySide2.QtMultimedia.QMediaTimeInterval.contains": ('int',),
- "PySide2.QtMultimedia.QMediaTimeInterval.end": (),
- "PySide2.QtMultimedia.QMediaTimeInterval.isNormal": (),
- "PySide2.QtMultimedia.QMediaTimeInterval.normalized": (),
- "PySide2.QtMultimedia.QMediaTimeInterval.start": (),
- "PySide2.QtMultimedia.QMediaTimeInterval.translated": ('int',),
-# class PySide2.QtMultimedia.QMediaTimeRange:
- "PySide2.QtMultimedia.QMediaTimeRange.__init__": [(), ('PySide2.QtMultimedia.QMediaTimeInterval',), ('PySide2.QtMultimedia.QMediaTimeRange',), ('int', 'int')],
- "PySide2.QtMultimedia.QMediaTimeRange.__add__": ('PySide2.QtMultimedia.QMediaTimeRange',),
- "PySide2.QtMultimedia.QMediaTimeRange.__copy__": (),
- "PySide2.QtMultimedia.QMediaTimeRange.__iadd__": [('PySide2.QtMultimedia.QMediaTimeInterval',), ('PySide2.QtMultimedia.QMediaTimeRange',)],
- "PySide2.QtMultimedia.QMediaTimeRange.__isub__": [('PySide2.QtMultimedia.QMediaTimeInterval',), ('PySide2.QtMultimedia.QMediaTimeRange',)],
- "PySide2.QtMultimedia.QMediaTimeRange.__sub__": ('PySide2.QtMultimedia.QMediaTimeRange',),
- "PySide2.QtMultimedia.QMediaTimeRange.addInterval": [('PySide2.QtMultimedia.QMediaTimeInterval',), ('int', 'int')],
- "PySide2.QtMultimedia.QMediaTimeRange.addTimeRange": ('PySide2.QtMultimedia.QMediaTimeRange',),
- "PySide2.QtMultimedia.QMediaTimeRange.clear": (),
- "PySide2.QtMultimedia.QMediaTimeRange.contains": ('int',),
- "PySide2.QtMultimedia.QMediaTimeRange.earliestTime": (),
- "PySide2.QtMultimedia.QMediaTimeRange.intervals": (),
- "PySide2.QtMultimedia.QMediaTimeRange.isContinuous": (),
- "PySide2.QtMultimedia.QMediaTimeRange.isEmpty": (),
- "PySide2.QtMultimedia.QMediaTimeRange.latestTime": (),
- "PySide2.QtMultimedia.QMediaTimeRange.removeInterval": [('PySide2.QtMultimedia.QMediaTimeInterval',), ('int', 'int')],
- "PySide2.QtMultimedia.QMediaTimeRange.removeTimeRange": ('PySide2.QtMultimedia.QMediaTimeRange',),
-# class PySide2.QtMultimedia.QMediaVideoProbeControl:
- "PySide2.QtMultimedia.QMediaVideoProbeControl.__init__": ('PySide2.QtCore.QObject',),
-# class PySide2.QtMultimedia.QMetaDataReaderControl:
- "PySide2.QtMultimedia.QMetaDataReaderControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMetaDataReaderControl.availableMetaData": (),
- "PySide2.QtMultimedia.QMetaDataReaderControl.isMetaDataAvailable": (),
- "PySide2.QtMultimedia.QMetaDataReaderControl.metaData": ('str',),
-# class PySide2.QtMultimedia.QMetaDataWriterControl:
- "PySide2.QtMultimedia.QMetaDataWriterControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMetaDataWriterControl.availableMetaData": (),
- "PySide2.QtMultimedia.QMetaDataWriterControl.isMetaDataAvailable": (),
- "PySide2.QtMultimedia.QMetaDataWriterControl.isWritable": (),
- "PySide2.QtMultimedia.QMetaDataWriterControl.metaData": ('str',),
- "PySide2.QtMultimedia.QMetaDataWriterControl.setMetaData": ('str', 'typing.Any'),
-# class PySide2.QtMultimedia.QMultimedia:
-# class PySide2.QtMultimedia.QMultimedia.AvailabilityStatus:
-# class PySide2.QtMultimedia.QMultimedia.EncodingMode:
-# class PySide2.QtMultimedia.QMultimedia.EncodingQuality:
-# class PySide2.QtMultimedia.QMultimedia.SupportEstimate:
-# class PySide2.QtMultimedia.QRadioData:
-# class PySide2.QtMultimedia.QRadioData.Error:
-# class PySide2.QtMultimedia.QRadioData.ProgramType:
- "PySide2.QtMultimedia.QRadioData.__init__": ('PySide2.QtMultimedia.QMediaObject', 'PySide2.QtCore.QObject'),
- "PySide2.QtMultimedia.QRadioData.availability": (),
- "PySide2.QtMultimedia.QRadioData.error": (),
- "PySide2.QtMultimedia.QRadioData.errorString": (),
- "PySide2.QtMultimedia.QRadioData.isAlternativeFrequenciesEnabled": (),
- "PySide2.QtMultimedia.QRadioData.mediaObject": (),
- "PySide2.QtMultimedia.QRadioData.programType": (),
- "PySide2.QtMultimedia.QRadioData.programTypeName": (),
- "PySide2.QtMultimedia.QRadioData.radioText": (),
- "PySide2.QtMultimedia.QRadioData.setAlternativeFrequenciesEnabled": ('bool',),
- "PySide2.QtMultimedia.QRadioData.setMediaObject": ('PySide2.QtMultimedia.QMediaObject',),
- "PySide2.QtMultimedia.QRadioData.stationId": (),
- "PySide2.QtMultimedia.QRadioData.stationName": (),
-# class PySide2.QtMultimedia.QRadioDataControl:
- "PySide2.QtMultimedia.QRadioDataControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QRadioDataControl.error": (),
- "PySide2.QtMultimedia.QRadioDataControl.errorString": (),
- "PySide2.QtMultimedia.QRadioDataControl.isAlternativeFrequenciesEnabled": (),
- "PySide2.QtMultimedia.QRadioDataControl.programType": (),
- "PySide2.QtMultimedia.QRadioDataControl.programTypeName": (),
- "PySide2.QtMultimedia.QRadioDataControl.radioText": (),
- "PySide2.QtMultimedia.QRadioDataControl.setAlternativeFrequenciesEnabled": ('bool',),
- "PySide2.QtMultimedia.QRadioDataControl.stationId": (),
- "PySide2.QtMultimedia.QRadioDataControl.stationName": (),
-# class PySide2.QtMultimedia.QRadioTuner:
-# class PySide2.QtMultimedia.QRadioTuner.Band:
-# class PySide2.QtMultimedia.QRadioTuner.Error:
-# class PySide2.QtMultimedia.QRadioTuner.SearchMode:
-# class PySide2.QtMultimedia.QRadioTuner.State:
-# class PySide2.QtMultimedia.QRadioTuner.StereoMode:
- "PySide2.QtMultimedia.QRadioTuner.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QRadioTuner.availability": (),
- "PySide2.QtMultimedia.QRadioTuner.band": (),
- "PySide2.QtMultimedia.QRadioTuner.cancelSearch": (),
- "PySide2.QtMultimedia.QRadioTuner.error": (),
- "PySide2.QtMultimedia.QRadioTuner.errorString": (),
- "PySide2.QtMultimedia.QRadioTuner.frequency": (),
- "PySide2.QtMultimedia.QRadioTuner.frequencyRange": ('PySide2.QtMultimedia.QRadioTuner.Band',),
- "PySide2.QtMultimedia.QRadioTuner.frequencyStep": ('PySide2.QtMultimedia.QRadioTuner.Band',),
- "PySide2.QtMultimedia.QRadioTuner.isAntennaConnected": (),
- "PySide2.QtMultimedia.QRadioTuner.isBandSupported": ('PySide2.QtMultimedia.QRadioTuner.Band',),
- "PySide2.QtMultimedia.QRadioTuner.isMuted": (),
- "PySide2.QtMultimedia.QRadioTuner.isSearching": (),
- "PySide2.QtMultimedia.QRadioTuner.isStereo": (),
- "PySide2.QtMultimedia.QRadioTuner.radioData": (),
- "PySide2.QtMultimedia.QRadioTuner.searchAllStations": ('PySide2.QtMultimedia.QRadioTuner.SearchMode',),
- "PySide2.QtMultimedia.QRadioTuner.searchBackward": (),
- "PySide2.QtMultimedia.QRadioTuner.searchForward": (),
- "PySide2.QtMultimedia.QRadioTuner.setBand": ('PySide2.QtMultimedia.QRadioTuner.Band',),
- "PySide2.QtMultimedia.QRadioTuner.setFrequency": ('int',),
- "PySide2.QtMultimedia.QRadioTuner.setMuted": ('bool',),
- "PySide2.QtMultimedia.QRadioTuner.setStereoMode": ('PySide2.QtMultimedia.QRadioTuner.StereoMode',),
- "PySide2.QtMultimedia.QRadioTuner.setVolume": ('int',),
- "PySide2.QtMultimedia.QRadioTuner.signalStrength": (),
- "PySide2.QtMultimedia.QRadioTuner.start": (),
- "PySide2.QtMultimedia.QRadioTuner.state": (),
- "PySide2.QtMultimedia.QRadioTuner.stereoMode": (),
- "PySide2.QtMultimedia.QRadioTuner.stop": (),
- "PySide2.QtMultimedia.QRadioTuner.volume": (),
-# class PySide2.QtMultimedia.QRadioTunerControl:
- "PySide2.QtMultimedia.QRadioTunerControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QRadioTunerControl.band": (),
- "PySide2.QtMultimedia.QRadioTunerControl.cancelSearch": (),
- "PySide2.QtMultimedia.QRadioTunerControl.error": (),
- "PySide2.QtMultimedia.QRadioTunerControl.errorString": (),
- "PySide2.QtMultimedia.QRadioTunerControl.frequency": (),
- "PySide2.QtMultimedia.QRadioTunerControl.frequencyRange": ('PySide2.QtMultimedia.QRadioTuner.Band',),
- "PySide2.QtMultimedia.QRadioTunerControl.frequencyStep": ('PySide2.QtMultimedia.QRadioTuner.Band',),
- "PySide2.QtMultimedia.QRadioTunerControl.isAntennaConnected": (),
- "PySide2.QtMultimedia.QRadioTunerControl.isBandSupported": ('PySide2.QtMultimedia.QRadioTuner.Band',),
- "PySide2.QtMultimedia.QRadioTunerControl.isMuted": (),
- "PySide2.QtMultimedia.QRadioTunerControl.isSearching": (),
- "PySide2.QtMultimedia.QRadioTunerControl.isStereo": (),
- "PySide2.QtMultimedia.QRadioTunerControl.searchAllStations": ('PySide2.QtMultimedia.QRadioTuner.SearchMode',),
- "PySide2.QtMultimedia.QRadioTunerControl.searchBackward": (),
- "PySide2.QtMultimedia.QRadioTunerControl.searchForward": (),
- "PySide2.QtMultimedia.QRadioTunerControl.setBand": ('PySide2.QtMultimedia.QRadioTuner.Band',),
- "PySide2.QtMultimedia.QRadioTunerControl.setFrequency": ('int',),
- "PySide2.QtMultimedia.QRadioTunerControl.setMuted": ('bool',),
- "PySide2.QtMultimedia.QRadioTunerControl.setStereoMode": ('PySide2.QtMultimedia.QRadioTuner.StereoMode',),
- "PySide2.QtMultimedia.QRadioTunerControl.setVolume": ('int',),
- "PySide2.QtMultimedia.QRadioTunerControl.signalStrength": (),
- "PySide2.QtMultimedia.QRadioTunerControl.start": (),
- "PySide2.QtMultimedia.QRadioTunerControl.state": (),
- "PySide2.QtMultimedia.QRadioTunerControl.stereoMode": (),
- "PySide2.QtMultimedia.QRadioTunerControl.stop": (),
- "PySide2.QtMultimedia.QRadioTunerControl.volume": (),
-# class PySide2.QtMultimedia.QSound:
-# class PySide2.QtMultimedia.QSound.Loop:
- "PySide2.QtMultimedia.QSound.__init__": ('str', 'PySide2.QtCore.QObject'),
- "PySide2.QtMultimedia.QSound.fileName": (),
- "PySide2.QtMultimedia.QSound.isFinished": (),
- "PySide2.QtMultimedia.QSound.loops": (),
- "PySide2.QtMultimedia.QSound.loopsRemaining": (),
- "PySide2.QtMultimedia.QSound.play": [(), ('str',)],
- "PySide2.QtMultimedia.QSound.setLoops": ('int',),
- "PySide2.QtMultimedia.QSound.stop": (),
-# class PySide2.QtMultimedia.QSoundEffect:
-# class PySide2.QtMultimedia.QSoundEffect.Loop:
-# class PySide2.QtMultimedia.QSoundEffect.Status:
- "PySide2.QtMultimedia.QSoundEffect.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtMultimedia.QAudioDeviceInfo', 'PySide2.QtCore.QObject')],
- "PySide2.QtMultimedia.QSoundEffect.category": (),
- "PySide2.QtMultimedia.QSoundEffect.isLoaded": (),
- "PySide2.QtMultimedia.QSoundEffect.isMuted": (),
- "PySide2.QtMultimedia.QSoundEffect.isPlaying": (),
- "PySide2.QtMultimedia.QSoundEffect.loopCount": (),
- "PySide2.QtMultimedia.QSoundEffect.loopsRemaining": (),
- "PySide2.QtMultimedia.QSoundEffect.play": (),
- "PySide2.QtMultimedia.QSoundEffect.setCategory": ('str',),
- "PySide2.QtMultimedia.QSoundEffect.setLoopCount": ('int',),
- "PySide2.QtMultimedia.QSoundEffect.setMuted": ('bool',),
- "PySide2.QtMultimedia.QSoundEffect.setSource": ('PySide2.QtCore.QUrl',),
- "PySide2.QtMultimedia.QSoundEffect.setVolume": ('float',),
- "PySide2.QtMultimedia.QSoundEffect.source": (),
- "PySide2.QtMultimedia.QSoundEffect.status": (),
- "PySide2.QtMultimedia.QSoundEffect.stop": (),
- "PySide2.QtMultimedia.QSoundEffect.supportedMimeTypes": (),
- "PySide2.QtMultimedia.QSoundEffect.volume": (),
-# class PySide2.QtMultimedia.QVideoDeviceSelectorControl:
- "PySide2.QtMultimedia.QVideoDeviceSelectorControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QVideoDeviceSelectorControl.defaultDevice": (),
- "PySide2.QtMultimedia.QVideoDeviceSelectorControl.deviceCount": (),
- "PySide2.QtMultimedia.QVideoDeviceSelectorControl.deviceDescription": ('int',),
- "PySide2.QtMultimedia.QVideoDeviceSelectorControl.deviceName": ('int',),
- "PySide2.QtMultimedia.QVideoDeviceSelectorControl.selectedDevice": (),
- "PySide2.QtMultimedia.QVideoDeviceSelectorControl.setSelectedDevice": ('int',),
-# class PySide2.QtMultimedia.QVideoEncoderSettings:
- "PySide2.QtMultimedia.QVideoEncoderSettings.__init__": [(), ('PySide2.QtMultimedia.QVideoEncoderSettings',)],
- "PySide2.QtMultimedia.QVideoEncoderSettings.__copy__": (),
- "PySide2.QtMultimedia.QVideoEncoderSettings.bitRate": (),
- "PySide2.QtMultimedia.QVideoEncoderSettings.codec": (),
- "PySide2.QtMultimedia.QVideoEncoderSettings.encodingMode": (),
- "PySide2.QtMultimedia.QVideoEncoderSettings.encodingOption": ('str',),
- "PySide2.QtMultimedia.QVideoEncoderSettings.encodingOptions": (),
- "PySide2.QtMultimedia.QVideoEncoderSettings.frameRate": (),
- "PySide2.QtMultimedia.QVideoEncoderSettings.isNull": (),
- "PySide2.QtMultimedia.QVideoEncoderSettings.quality": (),
- "PySide2.QtMultimedia.QVideoEncoderSettings.resolution": (),
- "PySide2.QtMultimedia.QVideoEncoderSettings.setBitRate": ('int',),
- "PySide2.QtMultimedia.QVideoEncoderSettings.setCodec": ('str',),
- "PySide2.QtMultimedia.QVideoEncoderSettings.setEncodingMode": ('PySide2.QtMultimedia.QMultimedia.EncodingMode',),
- "PySide2.QtMultimedia.QVideoEncoderSettings.setEncodingOption": ('str', 'typing.Any'),
- "PySide2.QtMultimedia.QVideoEncoderSettings.setEncodingOptions": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtMultimedia.QVideoEncoderSettings.setFrameRate": ('float',),
- "PySide2.QtMultimedia.QVideoEncoderSettings.setQuality": ('PySide2.QtMultimedia.QMultimedia.EncodingQuality',),
- "PySide2.QtMultimedia.QVideoEncoderSettings.setResolution": [('PySide2.QtCore.QSize',), ('int', 'int')],
-# class PySide2.QtMultimedia.QVideoEncoderSettingsControl:
- "PySide2.QtMultimedia.QVideoEncoderSettingsControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QVideoEncoderSettingsControl.setVideoSettings": ('PySide2.QtMultimedia.QVideoEncoderSettings',),
- "PySide2.QtMultimedia.QVideoEncoderSettingsControl.supportedVideoCodecs": (),
- "PySide2.QtMultimedia.QVideoEncoderSettingsControl.videoCodecDescription": ('str',),
- "PySide2.QtMultimedia.QVideoEncoderSettingsControl.videoSettings": (),
-# class PySide2.QtMultimedia.QVideoFilterRunnable:
-# class PySide2.QtMultimedia.QVideoFilterRunnable.RunFlag:
-# class PySide2.QtMultimedia.QVideoFilterRunnable.RunFlags:
- "PySide2.QtMultimedia.QVideoFilterRunnable.__init__": (),
- "PySide2.QtMultimedia.QVideoFilterRunnable.run": ('PySide2.QtMultimedia.QVideoFrame', 'PySide2.QtMultimedia.QVideoSurfaceFormat', 'PySide2.QtMultimedia.QVideoFilterRunnable.RunFlags'),
-# class PySide2.QtMultimedia.QVideoFrame:
-# class PySide2.QtMultimedia.QVideoFrame.FieldType:
-# class PySide2.QtMultimedia.QVideoFrame.PixelFormat:
- "PySide2.QtMultimedia.QVideoFrame.__init__": [(), ('PySide2.QtGui.QImage',), ('PySide2.QtMultimedia.QAbstractVideoBuffer', 'PySide2.QtCore.QSize', 'PySide2.QtMultimedia.QVideoFrame.PixelFormat'), ('PySide2.QtMultimedia.QVideoFrame',), ('int', 'PySide2.QtCore.QSize', 'int', 'PySide2.QtMultimedia.QVideoFrame.PixelFormat')],
- "PySide2.QtMultimedia.QVideoFrame.__copy__": (),
- "PySide2.QtMultimedia.QVideoFrame.availableMetaData": (),
- "PySide2.QtMultimedia.QVideoFrame.bits": (),
- "PySide2.QtMultimedia.QVideoFrame.buffer": (),
- "PySide2.QtMultimedia.QVideoFrame.bytesPerLine": [(), ('int',)],
- "PySide2.QtMultimedia.QVideoFrame.endTime": (),
- "PySide2.QtMultimedia.QVideoFrame.fieldType": (),
- "PySide2.QtMultimedia.QVideoFrame.handle": (),
- "PySide2.QtMultimedia.QVideoFrame.handleType": (),
- "PySide2.QtMultimedia.QVideoFrame.height": (),
- "PySide2.QtMultimedia.QVideoFrame.imageFormatFromPixelFormat": ('PySide2.QtMultimedia.QVideoFrame.PixelFormat',),
- "PySide2.QtMultimedia.QVideoFrame.isMapped": (),
- "PySide2.QtMultimedia.QVideoFrame.isReadable": (),
- "PySide2.QtMultimedia.QVideoFrame.isValid": (),
- "PySide2.QtMultimedia.QVideoFrame.isWritable": (),
- "PySide2.QtMultimedia.QVideoFrame.map": ('PySide2.QtMultimedia.QAbstractVideoBuffer.MapMode',),
- "PySide2.QtMultimedia.QVideoFrame.mapMode": (),
- "PySide2.QtMultimedia.QVideoFrame.mappedBytes": (),
- "PySide2.QtMultimedia.QVideoFrame.metaData": ('str',),
- "PySide2.QtMultimedia.QVideoFrame.pixelFormat": (),
- "PySide2.QtMultimedia.QVideoFrame.pixelFormatFromImageFormat": ('PySide2.QtGui.QImage.Format',),
- "PySide2.QtMultimedia.QVideoFrame.planeCount": (),
- "PySide2.QtMultimedia.QVideoFrame.setEndTime": ('int',),
- "PySide2.QtMultimedia.QVideoFrame.setFieldType": ('PySide2.QtMultimedia.QVideoFrame.FieldType',),
- "PySide2.QtMultimedia.QVideoFrame.setMetaData": ('str', 'typing.Any'),
- "PySide2.QtMultimedia.QVideoFrame.setStartTime": ('int',),
- "PySide2.QtMultimedia.QVideoFrame.size": (),
- "PySide2.QtMultimedia.QVideoFrame.startTime": (),
- "PySide2.QtMultimedia.QVideoFrame.unmap": (),
- "PySide2.QtMultimedia.QVideoFrame.width": (),
-# class PySide2.QtMultimedia.QVideoProbe:
- "PySide2.QtMultimedia.QVideoProbe.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QVideoProbe.isActive": (),
- "PySide2.QtMultimedia.QVideoProbe.setSource": [('PySide2.QtMultimedia.QMediaObject',), ('PySide2.QtMultimedia.QMediaRecorder',)],
-# class PySide2.QtMultimedia.QVideoRendererControl:
- "PySide2.QtMultimedia.QVideoRendererControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QVideoRendererControl.setSurface": ('PySide2.QtMultimedia.QAbstractVideoSurface',),
- "PySide2.QtMultimedia.QVideoRendererControl.surface": (),
-# class PySide2.QtMultimedia.QVideoSurfaceFormat:
-# class PySide2.QtMultimedia.QVideoSurfaceFormat.Direction:
-# class PySide2.QtMultimedia.QVideoSurfaceFormat.YCbCrColorSpace:
- "PySide2.QtMultimedia.QVideoSurfaceFormat.__init__": [(), ('PySide2.QtCore.QSize', 'PySide2.QtMultimedia.QVideoFrame.PixelFormat', 'PySide2.QtMultimedia.QAbstractVideoBuffer.HandleType'), ('PySide2.QtMultimedia.QVideoSurfaceFormat',)],
- "PySide2.QtMultimedia.QVideoSurfaceFormat.__copy__": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.frameHeight": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.frameRate": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.frameSize": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.frameWidth": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.handleType": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.isMirrored": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.isValid": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.pixelAspectRatio": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.pixelFormat": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.property": ('str',),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.propertyNames": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.scanLineDirection": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.setFrameRate": ('float',),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.setFrameSize": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtMultimedia.QVideoSurfaceFormat.setMirrored": ('bool',),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.setPixelAspectRatio": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtMultimedia.QVideoSurfaceFormat.setProperty": ('str', 'typing.Any'),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.setScanLineDirection": ('PySide2.QtMultimedia.QVideoSurfaceFormat.Direction',),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.setViewport": ('PySide2.QtCore.QRect',),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.setYCbCrColorSpace": ('PySide2.QtMultimedia.QVideoSurfaceFormat.YCbCrColorSpace',),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.sizeHint": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.viewport": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.yCbCrColorSpace": (),
-# class PySide2.QtMultimedia.QVideoWindowControl:
- "PySide2.QtMultimedia.QVideoWindowControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QVideoWindowControl.aspectRatioMode": (),
- "PySide2.QtMultimedia.QVideoWindowControl.brightness": (),
- "PySide2.QtMultimedia.QVideoWindowControl.contrast": (),
- "PySide2.QtMultimedia.QVideoWindowControl.displayRect": (),
- "PySide2.QtMultimedia.QVideoWindowControl.hue": (),
- "PySide2.QtMultimedia.QVideoWindowControl.isFullScreen": (),
- "PySide2.QtMultimedia.QVideoWindowControl.nativeSize": (),
- "PySide2.QtMultimedia.QVideoWindowControl.repaint": (),
- "PySide2.QtMultimedia.QVideoWindowControl.saturation": (),
- "PySide2.QtMultimedia.QVideoWindowControl.setAspectRatioMode": ('PySide2.QtCore.Qt.AspectRatioMode',),
- "PySide2.QtMultimedia.QVideoWindowControl.setBrightness": ('int',),
- "PySide2.QtMultimedia.QVideoWindowControl.setContrast": ('int',),
- "PySide2.QtMultimedia.QVideoWindowControl.setDisplayRect": ('PySide2.QtCore.QRect',),
- "PySide2.QtMultimedia.QVideoWindowControl.setFullScreen": ('bool',),
- "PySide2.QtMultimedia.QVideoWindowControl.setHue": ('int',),
- "PySide2.QtMultimedia.QVideoWindowControl.setSaturation": ('int',),
- "PySide2.QtMultimedia.QVideoWindowControl.setWinId": ('int',),
- "PySide2.QtMultimedia.QVideoWindowControl.winId": (),
- }) if "PySide2.QtMultimedia" in sys.modules else None
-# Module PySide2.QtMultimediaWidgets
-sig_dict.update({
-# class PySide2.QtMultimediaWidgets.QCameraViewfinder:
- "PySide2.QtMultimediaWidgets.QCameraViewfinder.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtMultimediaWidgets.QCameraViewfinder.mediaObject": (),
- "PySide2.QtMultimediaWidgets.QCameraViewfinder.setMediaObject": ('PySide2.QtMultimedia.QMediaObject',),
-# class PySide2.QtMultimediaWidgets.QGraphicsVideoItem:
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.__init__": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.aspectRatioMode": (),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.boundingRect": (),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.itemChange": ('PySide2.QtWidgets.QGraphicsItem.GraphicsItemChange', 'typing.Any'),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.mediaObject": (),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.nativeSize": (),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.offset": (),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.setAspectRatioMode": ('PySide2.QtCore.Qt.AspectRatioMode',),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.setMediaObject": ('PySide2.QtMultimedia.QMediaObject',),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.setOffset": ('PySide2.QtCore.QPointF',),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.setSize": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.size": (),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.timerEvent": ('PySide2.QtCore.QTimerEvent',),
-# class PySide2.QtMultimediaWidgets.QVideoWidget:
- "PySide2.QtMultimediaWidgets.QVideoWidget.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.aspectRatioMode": (),
- "PySide2.QtMultimediaWidgets.QVideoWidget.brightness": (),
- "PySide2.QtMultimediaWidgets.QVideoWidget.contrast": (),
- "PySide2.QtMultimediaWidgets.QVideoWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.hue": (),
- "PySide2.QtMultimediaWidgets.QVideoWidget.mediaObject": (),
- "PySide2.QtMultimediaWidgets.QVideoWidget.moveEvent": ('PySide2.QtGui.QMoveEvent',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.saturation": (),
- "PySide2.QtMultimediaWidgets.QVideoWidget.setAspectRatioMode": ('PySide2.QtCore.Qt.AspectRatioMode',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.setBrightness": ('int',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.setContrast": ('int',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.setFullScreen": ('bool',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.setHue": ('int',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.setMediaObject": ('PySide2.QtMultimedia.QMediaObject',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.setSaturation": ('int',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.sizeHint": (),
-# class PySide2.QtMultimediaWidgets.QVideoWidgetControl:
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.aspectRatioMode": (),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.brightness": (),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.contrast": (),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.hue": (),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.isFullScreen": (),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.saturation": (),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.setAspectRatioMode": ('PySide2.QtCore.Qt.AspectRatioMode',),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.setBrightness": ('int',),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.setContrast": ('int',),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.setFullScreen": ('bool',),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.setHue": ('int',),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.setSaturation": ('int',),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.videoWidget": (),
- }) if "PySide2.QtMultimediaWidgets" in sys.modules else None
-# Module PySide2.QtOpenGL
-sig_dict.update({
-# class PySide2.QtOpenGL.QGL:
-# class PySide2.QtOpenGL.QGL.FormatOption:
-# class PySide2.QtOpenGL.QGL.FormatOptions:
-# class PySide2.QtOpenGL.QGLBuffer:
-# class PySide2.QtOpenGL.QGLBuffer.Access:
-# class PySide2.QtOpenGL.QGLBuffer.Type:
-# class PySide2.QtOpenGL.QGLBuffer.UsagePattern:
- "PySide2.QtOpenGL.QGLBuffer.__init__": [(), ('PySide2.QtOpenGL.QGLBuffer',), ('PySide2.QtOpenGL.QGLBuffer.Type',)],
- "PySide2.QtOpenGL.QGLBuffer.allocate": [('int',), ('int', 'int')],
- "PySide2.QtOpenGL.QGLBuffer.bind": (),
- "PySide2.QtOpenGL.QGLBuffer.bufferId": (),
- "PySide2.QtOpenGL.QGLBuffer.create": (),
- "PySide2.QtOpenGL.QGLBuffer.destroy": (),
- "PySide2.QtOpenGL.QGLBuffer.isCreated": (),
- "PySide2.QtOpenGL.QGLBuffer.map": ('PySide2.QtOpenGL.QGLBuffer.Access',),
- "PySide2.QtOpenGL.QGLBuffer.read": ('int', 'int', 'int'),
- "PySide2.QtOpenGL.QGLBuffer.release": [(), ('PySide2.QtOpenGL.QGLBuffer.Type',)],
- "PySide2.QtOpenGL.QGLBuffer.setUsagePattern": ('PySide2.QtOpenGL.QGLBuffer.UsagePattern',),
- "PySide2.QtOpenGL.QGLBuffer.size": (),
- "PySide2.QtOpenGL.QGLBuffer.type": (),
- "PySide2.QtOpenGL.QGLBuffer.unmap": (),
- "PySide2.QtOpenGL.QGLBuffer.usagePattern": (),
- "PySide2.QtOpenGL.QGLBuffer.write": ('int', 'int', 'int'),
-# class PySide2.QtOpenGL.QGLColormap:
- "PySide2.QtOpenGL.QGLColormap.__init__": [(), ('PySide2.QtOpenGL.QGLColormap',)],
- "PySide2.QtOpenGL.QGLColormap.__copy__": (),
- "PySide2.QtOpenGL.QGLColormap.entryColor": ('int',),
- "PySide2.QtOpenGL.QGLColormap.entryRgb": ('int',),
- "PySide2.QtOpenGL.QGLColormap.find": ('int',),
- "PySide2.QtOpenGL.QGLColormap.findNearest": ('int',),
- "PySide2.QtOpenGL.QGLColormap.handle": (),
- "PySide2.QtOpenGL.QGLColormap.isEmpty": (),
- "PySide2.QtOpenGL.QGLColormap.setEntry": [('int', 'PySide2.QtGui.QColor'), ('int', 'int')],
- "PySide2.QtOpenGL.QGLColormap.setHandle": ('int',),
- "PySide2.QtOpenGL.QGLColormap.size": (),
-# class PySide2.QtOpenGL.QGLContext:
-# class PySide2.QtOpenGL.QGLContext.BindOption:
-# class PySide2.QtOpenGL.QGLContext.BindOptions:
- "PySide2.QtOpenGL.QGLContext.__init__": ('PySide2.QtOpenGL.QGLFormat',),
- "PySide2.QtOpenGL.QGLContext.areSharing": ('PySide2.QtOpenGL.QGLContext', 'PySide2.QtOpenGL.QGLContext'),
- "PySide2.QtOpenGL.QGLContext.bindTexture": [('PySide2.QtGui.QImage', 'int', 'int'), ('PySide2.QtGui.QImage', 'int', 'int', 'PySide2.QtOpenGL.QGLContext.BindOptions'), ('PySide2.QtGui.QPixmap', 'int', 'int'), ('PySide2.QtGui.QPixmap', 'int', 'int', 'PySide2.QtOpenGL.QGLContext.BindOptions'), ('str',)],
- "PySide2.QtOpenGL.QGLContext.chooseContext": ('PySide2.QtOpenGL.QGLContext',),
- "PySide2.QtOpenGL.QGLContext.colorIndex": ('PySide2.QtGui.QColor',),
- "PySide2.QtOpenGL.QGLContext.contextHandle": (),
- "PySide2.QtOpenGL.QGLContext.create": ('PySide2.QtOpenGL.QGLContext',),
- "PySide2.QtOpenGL.QGLContext.currentContext": (),
- "PySide2.QtOpenGL.QGLContext.deleteTexture": ('int',),
- "PySide2.QtOpenGL.QGLContext.device": (),
- "PySide2.QtOpenGL.QGLContext.deviceIsPixmap": (),
- "PySide2.QtOpenGL.QGLContext.doneCurrent": (),
- "PySide2.QtOpenGL.QGLContext.drawTexture": [('PySide2.QtCore.QPointF', 'int', 'int'), ('PySide2.QtCore.QRectF', 'int', 'int')],
- "PySide2.QtOpenGL.QGLContext.format": (),
- "PySide2.QtOpenGL.QGLContext.fromOpenGLContext": ('PySide2.QtGui.QOpenGLContext',),
- "PySide2.QtOpenGL.QGLContext.initialized": (),
- "PySide2.QtOpenGL.QGLContext.isSharing": (),
- "PySide2.QtOpenGL.QGLContext.isValid": (),
- "PySide2.QtOpenGL.QGLContext.makeCurrent": (),
- "PySide2.QtOpenGL.QGLContext.moveToThread": ('PySide2.QtCore.QThread',),
- "PySide2.QtOpenGL.QGLContext.overlayTransparentColor": (),
- "PySide2.QtOpenGL.QGLContext.requestedFormat": (),
- "PySide2.QtOpenGL.QGLContext.reset": (),
- "PySide2.QtOpenGL.QGLContext.setDevice": ('PySide2.QtGui.QPaintDevice',),
- "PySide2.QtOpenGL.QGLContext.setFormat": ('PySide2.QtOpenGL.QGLFormat',),
- "PySide2.QtOpenGL.QGLContext.setInitialized": ('bool',),
- "PySide2.QtOpenGL.QGLContext.setTextureCacheLimit": ('int',),
- "PySide2.QtOpenGL.QGLContext.setValid": ('bool',),
- "PySide2.QtOpenGL.QGLContext.setWindowCreated": ('bool',),
- "PySide2.QtOpenGL.QGLContext.swapBuffers": (),
- "PySide2.QtOpenGL.QGLContext.textureCacheLimit": (),
- "PySide2.QtOpenGL.QGLContext.windowCreated": (),
-# class PySide2.QtOpenGL.QGLFormat:
-# class PySide2.QtOpenGL.QGLFormat.OpenGLContextProfile:
-# class PySide2.QtOpenGL.QGLFormat.OpenGLVersionFlag:
-# class PySide2.QtOpenGL.QGLFormat.OpenGLVersionFlags:
- "PySide2.QtOpenGL.QGLFormat.__init__": [(), ('PySide2.QtOpenGL.QGL.FormatOptions', 'int'), ('PySide2.QtOpenGL.QGLFormat',)],
- "PySide2.QtOpenGL.QGLFormat.__copy__": (),
- "PySide2.QtOpenGL.QGLFormat.accum": (),
- "PySide2.QtOpenGL.QGLFormat.accumBufferSize": (),
- "PySide2.QtOpenGL.QGLFormat.alpha": (),
- "PySide2.QtOpenGL.QGLFormat.alphaBufferSize": (),
- "PySide2.QtOpenGL.QGLFormat.blueBufferSize": (),
- "PySide2.QtOpenGL.QGLFormat.defaultFormat": (),
- "PySide2.QtOpenGL.QGLFormat.defaultOverlayFormat": (),
- "PySide2.QtOpenGL.QGLFormat.depth": (),
- "PySide2.QtOpenGL.QGLFormat.depthBufferSize": (),
- "PySide2.QtOpenGL.QGLFormat.directRendering": (),
- "PySide2.QtOpenGL.QGLFormat.doubleBuffer": (),
- "PySide2.QtOpenGL.QGLFormat.fromSurfaceFormat": ('PySide2.QtGui.QSurfaceFormat',),
- "PySide2.QtOpenGL.QGLFormat.greenBufferSize": (),
- "PySide2.QtOpenGL.QGLFormat.hasOpenGL": (),
- "PySide2.QtOpenGL.QGLFormat.hasOpenGLOverlays": (),
- "PySide2.QtOpenGL.QGLFormat.hasOverlay": (),
- "PySide2.QtOpenGL.QGLFormat.majorVersion": (),
- "PySide2.QtOpenGL.QGLFormat.minorVersion": (),
- "PySide2.QtOpenGL.QGLFormat.openGLVersionFlags": (),
- "PySide2.QtOpenGL.QGLFormat.plane": (),
- "PySide2.QtOpenGL.QGLFormat.profile": (),
- "PySide2.QtOpenGL.QGLFormat.redBufferSize": (),
- "PySide2.QtOpenGL.QGLFormat.rgba": (),
- "PySide2.QtOpenGL.QGLFormat.sampleBuffers": (),
- "PySide2.QtOpenGL.QGLFormat.samples": (),
- "PySide2.QtOpenGL.QGLFormat.setAccum": ('bool',),
- "PySide2.QtOpenGL.QGLFormat.setAccumBufferSize": ('int',),
- "PySide2.QtOpenGL.QGLFormat.setAlpha": ('bool',),
- "PySide2.QtOpenGL.QGLFormat.setAlphaBufferSize": ('int',),
- "PySide2.QtOpenGL.QGLFormat.setBlueBufferSize": ('int',),
- "PySide2.QtOpenGL.QGLFormat.setDefaultFormat": ('PySide2.QtOpenGL.QGLFormat',),
- "PySide2.QtOpenGL.QGLFormat.setDefaultOverlayFormat": ('PySide2.QtOpenGL.QGLFormat',),
- "PySide2.QtOpenGL.QGLFormat.setDepth": ('bool',),
- "PySide2.QtOpenGL.QGLFormat.setDepthBufferSize": ('int',),
- "PySide2.QtOpenGL.QGLFormat.setDirectRendering": ('bool',),
- "PySide2.QtOpenGL.QGLFormat.setDoubleBuffer": ('bool',),
- "PySide2.QtOpenGL.QGLFormat.setGreenBufferSize": ('int',),
- "PySide2.QtOpenGL.QGLFormat.setOption": ('PySide2.QtOpenGL.QGL.FormatOptions',),
- "PySide2.QtOpenGL.QGLFormat.setOverlay": ('bool',),
- "PySide2.QtOpenGL.QGLFormat.setPlane": ('int',),
- "PySide2.QtOpenGL.QGLFormat.setProfile": ('PySide2.QtOpenGL.QGLFormat.OpenGLContextProfile',),
- "PySide2.QtOpenGL.QGLFormat.setRedBufferSize": ('int',),
- "PySide2.QtOpenGL.QGLFormat.setRgba": ('bool',),
- "PySide2.QtOpenGL.QGLFormat.setSampleBuffers": ('bool',),
- "PySide2.QtOpenGL.QGLFormat.setSamples": ('int',),
- "PySide2.QtOpenGL.QGLFormat.setStencil": ('bool',),
- "PySide2.QtOpenGL.QGLFormat.setStencilBufferSize": ('int',),
- "PySide2.QtOpenGL.QGLFormat.setStereo": ('bool',),
- "PySide2.QtOpenGL.QGLFormat.setSwapInterval": ('int',),
- "PySide2.QtOpenGL.QGLFormat.setVersion": ('int', 'int'),
- "PySide2.QtOpenGL.QGLFormat.stencil": (),
- "PySide2.QtOpenGL.QGLFormat.stencilBufferSize": (),
- "PySide2.QtOpenGL.QGLFormat.stereo": (),
- "PySide2.QtOpenGL.QGLFormat.swapInterval": (),
- "PySide2.QtOpenGL.QGLFormat.testOption": ('PySide2.QtOpenGL.QGL.FormatOptions',),
- "PySide2.QtOpenGL.QGLFormat.toSurfaceFormat": ('PySide2.QtOpenGL.QGLFormat',),
-# class PySide2.QtOpenGL.QGLFramebufferObject:
-# class PySide2.QtOpenGL.QGLFramebufferObject.Attachment:
- "PySide2.QtOpenGL.QGLFramebufferObject.__init__": [('PySide2.QtCore.QSize', 'PySide2.QtOpenGL.QGLFramebufferObject.Attachment', 'int', 'int'), ('PySide2.QtCore.QSize', 'PySide2.QtOpenGL.QGLFramebufferObjectFormat'), ('PySide2.QtCore.QSize', 'int'), ('int', 'int', 'PySide2.QtOpenGL.QGLFramebufferObject.Attachment', 'int', 'int'), ('int', 'int', 'PySide2.QtOpenGL.QGLFramebufferObjectFormat'), ('int', 'int', 'int')],
- "PySide2.QtOpenGL.QGLFramebufferObject.attachment": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.bind": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.bindDefault": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.blitFramebuffer": ('PySide2.QtOpenGL.QGLFramebufferObject', 'PySide2.QtCore.QRect', 'PySide2.QtOpenGL.QGLFramebufferObject', 'PySide2.QtCore.QRect', 'int', 'int'),
- "PySide2.QtOpenGL.QGLFramebufferObject.devType": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.drawTexture": [('PySide2.QtCore.QPointF', 'int', 'int'), ('PySide2.QtCore.QRectF', 'int', 'int')],
- "PySide2.QtOpenGL.QGLFramebufferObject.format": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.handle": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.hasOpenGLFramebufferBlit": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.hasOpenGLFramebufferObjects": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.isBound": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.isValid": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtOpenGL.QGLFramebufferObject.paintEngine": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.release": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.size": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.texture": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.toImage": (),
-# class PySide2.QtOpenGL.QGLFramebufferObjectFormat:
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.__init__": [(), ('PySide2.QtOpenGL.QGLFramebufferObjectFormat',)],
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.__copy__": (),
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.attachment": (),
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.internalTextureFormat": (),
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.mipmap": (),
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.samples": (),
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.setAttachment": ('PySide2.QtOpenGL.QGLFramebufferObject.Attachment',),
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.setInternalTextureFormat": ('int',),
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.setMipmap": ('bool',),
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.setSamples": ('int',),
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.setTextureTarget": ('int',),
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.textureTarget": (),
-# class PySide2.QtOpenGL.QGLPixelBuffer:
- "PySide2.QtOpenGL.QGLPixelBuffer.__init__": [('PySide2.QtCore.QSize', 'PySide2.QtOpenGL.QGLFormat', 'PySide2.QtOpenGL.QGLWidget'), ('int', 'int', 'PySide2.QtOpenGL.QGLFormat', 'PySide2.QtOpenGL.QGLWidget')],
- "PySide2.QtOpenGL.QGLPixelBuffer.bindTexture": [('PySide2.QtGui.QImage', 'int'), ('PySide2.QtGui.QPixmap', 'int'), ('str',)],
- "PySide2.QtOpenGL.QGLPixelBuffer.bindToDynamicTexture": ('int',),
- "PySide2.QtOpenGL.QGLPixelBuffer.context": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.deleteTexture": ('int',),
- "PySide2.QtOpenGL.QGLPixelBuffer.devType": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.doneCurrent": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.drawTexture": [('PySide2.QtCore.QPointF', 'int', 'int'), ('PySide2.QtCore.QRectF', 'int', 'int')],
- "PySide2.QtOpenGL.QGLPixelBuffer.format": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.generateDynamicTexture": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.handle": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.hasOpenGLPbuffers": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.isValid": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.makeCurrent": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtOpenGL.QGLPixelBuffer.paintEngine": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.releaseFromDynamicTexture": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.size": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.toImage": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.updateDynamicTexture": ('int',),
-# class PySide2.QtOpenGL.QGLShader:
-# class PySide2.QtOpenGL.QGLShader.ShaderType:
-# class PySide2.QtOpenGL.QGLShader.ShaderTypeBit:
- "PySide2.QtOpenGL.QGLShader.__init__": [('PySide2.QtOpenGL.QGLShader.ShaderType', 'PySide2.QtCore.QObject'), ('PySide2.QtOpenGL.QGLShader.ShaderType', 'PySide2.QtOpenGL.QGLContext', 'PySide2.QtCore.QObject')],
- "PySide2.QtOpenGL.QGLShader.compileSourceCode": [('PySide2.QtCore.QByteArray',), ('str',)],
- "PySide2.QtOpenGL.QGLShader.compileSourceFile": ('str',),
- "PySide2.QtOpenGL.QGLShader.hasOpenGLShaders": ('PySide2.QtOpenGL.QGLShader.ShaderType', 'PySide2.QtOpenGL.QGLContext'),
- "PySide2.QtOpenGL.QGLShader.isCompiled": (),
- "PySide2.QtOpenGL.QGLShader.log": (),
- "PySide2.QtOpenGL.QGLShader.shaderId": (),
- "PySide2.QtOpenGL.QGLShader.shaderType": (),
- "PySide2.QtOpenGL.QGLShader.sourceCode": (),
-# class PySide2.QtOpenGL.QGLShaderProgram:
- "PySide2.QtOpenGL.QGLShaderProgram.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtOpenGL.QGLContext', 'PySide2.QtCore.QObject')],
- "PySide2.QtOpenGL.QGLShaderProgram.addShader": ('PySide2.QtOpenGL.QGLShader',),
- "PySide2.QtOpenGL.QGLShaderProgram.addShaderFromSourceCode": [('PySide2.QtOpenGL.QGLShader.ShaderType', 'PySide2.QtCore.QByteArray'), ('PySide2.QtOpenGL.QGLShader.ShaderType', 'str')],
- "PySide2.QtOpenGL.QGLShaderProgram.addShaderFromSourceFile": ('PySide2.QtOpenGL.QGLShader.ShaderType', 'str'),
- "PySide2.QtOpenGL.QGLShaderProgram.attributeLocation": [('PySide2.QtCore.QByteArray',), ('str',)],
- "PySide2.QtOpenGL.QGLShaderProgram.bind": (),
- "PySide2.QtOpenGL.QGLShaderProgram.bindAttributeLocation": [('PySide2.QtCore.QByteArray', 'int'), ('str', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.disableAttributeArray": [('int',), ('str',)],
- "PySide2.QtOpenGL.QGLShaderProgram.enableAttributeArray": [('int',), ('str',)],
- "PySide2.QtOpenGL.QGLShaderProgram.geometryInputType": (),
- "PySide2.QtOpenGL.QGLShaderProgram.geometryOutputType": (),
- "PySide2.QtOpenGL.QGLShaderProgram.geometryOutputVertexCount": (),
- "PySide2.QtOpenGL.QGLShaderProgram.hasOpenGLShaderPrograms": ('PySide2.QtOpenGL.QGLContext',),
- "PySide2.QtOpenGL.QGLShaderProgram.isLinked": (),
- "PySide2.QtOpenGL.QGLShaderProgram.link": (),
- "PySide2.QtOpenGL.QGLShaderProgram.log": (),
- "PySide2.QtOpenGL.QGLShaderProgram.maxGeometryOutputVertices": (),
- "PySide2.QtOpenGL.QGLShaderProgram.programId": (),
- "PySide2.QtOpenGL.QGLShaderProgram.release": (),
- "PySide2.QtOpenGL.QGLShaderProgram.removeAllShaders": (),
- "PySide2.QtOpenGL.QGLShaderProgram.removeShader": ('PySide2.QtOpenGL.QGLShader',),
- "PySide2.QtOpenGL.QGLShaderProgram.setAttributeArray2D": [('int', 'PySide2.QtGui.QVector2D', 'int'), ('str', 'PySide2.QtGui.QVector2D', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setAttributeArray3D": [('int', 'PySide2.QtGui.QVector3D', 'int'), ('str', 'PySide2.QtGui.QVector3D', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setAttributeArray4D": [('int', 'PySide2.QtGui.QVector4D', 'int'), ('str', 'PySide2.QtGui.QVector4D', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setAttributeBuffer": [('int', 'int', 'int', 'int', 'int'), ('str', 'int', 'int', 'int', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setAttributeValue": [('int', 'PySide2.QtGui.QColor'), ('int', 'PySide2.QtGui.QVector2D'), ('int', 'PySide2.QtGui.QVector3D'), ('int', 'PySide2.QtGui.QVector4D'), ('int', 'float'), ('int', 'float', 'float'), ('int', 'float', 'float', 'float'), ('int', 'float', 'float', 'float', 'float'), ('str', 'PySide2.QtGui.QColor'), ('str', 'PySide2.QtGui.QVector2D'), ('str', 'PySide2.QtGui.QVector3D'), ('str', 'PySide2.QtGui.QVector4D'), ('str', 'float'), ('str', 'float', 'float'), ('str', 'float', 'float', 'float'), ('str', 'float', 'float', 'float', 'float')],
- "PySide2.QtOpenGL.QGLShaderProgram.setGeometryInputType": ('int',),
- "PySide2.QtOpenGL.QGLShaderProgram.setGeometryOutputType": ('int',),
- "PySide2.QtOpenGL.QGLShaderProgram.setGeometryOutputVertexCount": ('int',),
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValue": [('int', 'PySide2.QtCore.QPoint'), ('int', 'PySide2.QtCore.QPointF'), ('int', 'PySide2.QtCore.QSize'), ('int', 'PySide2.QtCore.QSizeF'), ('int', 'PySide2.QtGui.QColor'), ('int', 'PySide2.QtGui.QMatrix2x2'), ('int', 'PySide2.QtGui.QMatrix2x3'), ('int', 'PySide2.QtGui.QMatrix2x4'), ('int', 'PySide2.QtGui.QMatrix3x2'), ('int', 'PySide2.QtGui.QMatrix3x3'), ('int', 'PySide2.QtGui.QMatrix3x4'), ('int', 'PySide2.QtGui.QMatrix4x2'), ('int', 'PySide2.QtGui.QMatrix4x3'), ('int', 'PySide2.QtGui.QMatrix4x4'), ('int', 'PySide2.QtGui.QTransform'), ('int', 'PySide2.QtGui.QVector2D'), ('int', 'PySide2.QtGui.QVector3D'), ('int', 'PySide2.QtGui.QVector4D'), ('int', 'float'), ('int', 'float', 'float'), ('int', 'float', 'float', 'float'), ('int', 'float', 'float', 'float', 'float'), ('int', 'int'), ('str', 'PySide2.QtCore.QPoint'), ('str', 'PySide2.QtCore.QPointF'), ('str', 'PySide2.QtCore.QSize'), ('str', 'PySide2.QtCore.QSizeF'), ('str', 'PySide2.QtGui.QColor'), ('str', 'PySide2.QtGui.QMatrix2x2'), ('str', 'PySide2.QtGui.QMatrix2x3'), ('str', 'PySide2.QtGui.QMatrix2x4'), ('str', 'PySide2.QtGui.QMatrix3x2'), ('str', 'PySide2.QtGui.QMatrix3x3'), ('str', 'PySide2.QtGui.QMatrix3x4'), ('str', 'PySide2.QtGui.QMatrix4x2'), ('str', 'PySide2.QtGui.QMatrix4x3'), ('str', 'PySide2.QtGui.QMatrix4x4'), ('str', 'PySide2.QtGui.QTransform'), ('str', 'PySide2.QtGui.QVector2D'), ('str', 'PySide2.QtGui.QVector3D'), ('str', 'PySide2.QtGui.QVector4D'), ('str', 'float'), ('str', 'float', 'float'), ('str', 'float', 'float', 'float'), ('str', 'float', 'float', 'float', 'float'), ('str', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray2D": [('int', 'PySide2.QtGui.QVector2D', 'int'), ('str', 'PySide2.QtGui.QVector2D', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray2x2": [('int', 'PySide2.QtGui.QMatrix2x2', 'int'), ('str', 'PySide2.QtGui.QMatrix2x2', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray2x3": [('int', 'PySide2.QtGui.QMatrix2x3', 'int'), ('str', 'PySide2.QtGui.QMatrix2x3', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray2x4": [('int', 'PySide2.QtGui.QMatrix2x4', 'int'), ('str', 'PySide2.QtGui.QMatrix2x4', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray3D": [('int', 'PySide2.QtGui.QVector3D', 'int'), ('str', 'PySide2.QtGui.QVector3D', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray3x2": [('int', 'PySide2.QtGui.QMatrix3x2', 'int'), ('str', 'PySide2.QtGui.QMatrix3x2', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray3x3": [('int', 'PySide2.QtGui.QMatrix3x3', 'int'), ('str', 'PySide2.QtGui.QMatrix3x3', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray3x4": [('int', 'PySide2.QtGui.QMatrix3x4', 'int'), ('str', 'PySide2.QtGui.QMatrix3x4', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray4D": [('int', 'PySide2.QtGui.QVector4D', 'int'), ('str', 'PySide2.QtGui.QVector4D', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray4x2": [('int', 'PySide2.QtGui.QMatrix4x2', 'int'), ('str', 'PySide2.QtGui.QMatrix4x2', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray4x3": [('int', 'PySide2.QtGui.QMatrix4x3', 'int'), ('str', 'PySide2.QtGui.QMatrix4x3', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray4x4": [('int', 'PySide2.QtGui.QMatrix4x4', 'int'), ('str', 'PySide2.QtGui.QMatrix4x4', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArrayInt": [('int', 'typing.Sequence[int]', 'int'), ('str', 'typing.Sequence[int]', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArrayUint": [('int', 'typing.Sequence[int]', 'int'), ('str', 'typing.Sequence[int]', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.shaders": (),
- "PySide2.QtOpenGL.QGLShaderProgram.uniformLocation": [('PySide2.QtCore.QByteArray',), ('str',)],
-# class PySide2.QtOpenGL.QGLWidget:
- "PySide2.QtOpenGL.QGLWidget.__init__": [('PySide2.QtOpenGL.QGLContext', 'PySide2.QtWidgets.QWidget', 'PySide2.QtOpenGL.QGLWidget', 'PySide2.QtCore.Qt.WindowFlags'), ('PySide2.QtOpenGL.QGLFormat', 'PySide2.QtWidgets.QWidget', 'PySide2.QtOpenGL.QGLWidget', 'PySide2.QtCore.Qt.WindowFlags'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtOpenGL.QGLWidget', 'PySide2.QtCore.Qt.WindowFlags')],
- "PySide2.QtOpenGL.QGLWidget.autoBufferSwap": (),
- "PySide2.QtOpenGL.QGLWidget.bindTexture": [('PySide2.QtGui.QImage', 'int', 'int'), ('PySide2.QtGui.QImage', 'int', 'int', 'PySide2.QtOpenGL.QGLContext.BindOptions'), ('PySide2.QtGui.QPixmap', 'int', 'int'), ('PySide2.QtGui.QPixmap', 'int', 'int', 'PySide2.QtOpenGL.QGLContext.BindOptions'), ('str',)],
- "PySide2.QtOpenGL.QGLWidget.colormap": (),
- "PySide2.QtOpenGL.QGLWidget.context": (),
- "PySide2.QtOpenGL.QGLWidget.convertToGLFormat": ('PySide2.QtGui.QImage',),
- "PySide2.QtOpenGL.QGLWidget.deleteTexture": ('int',),
- "PySide2.QtOpenGL.QGLWidget.doneCurrent": (),
- "PySide2.QtOpenGL.QGLWidget.doubleBuffer": (),
- "PySide2.QtOpenGL.QGLWidget.drawTexture": [('PySide2.QtCore.QPointF', 'int', 'int'), ('PySide2.QtCore.QRectF', 'int', 'int')],
- "PySide2.QtOpenGL.QGLWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtOpenGL.QGLWidget.format": (),
- "PySide2.QtOpenGL.QGLWidget.glDraw": (),
- "PySide2.QtOpenGL.QGLWidget.glInit": (),
- "PySide2.QtOpenGL.QGLWidget.grabFrameBuffer": ('bool',),
- "PySide2.QtOpenGL.QGLWidget.initializeGL": (),
- "PySide2.QtOpenGL.QGLWidget.initializeOverlayGL": (),
- "PySide2.QtOpenGL.QGLWidget.isSharing": (),
- "PySide2.QtOpenGL.QGLWidget.isValid": (),
- "PySide2.QtOpenGL.QGLWidget.makeCurrent": (),
- "PySide2.QtOpenGL.QGLWidget.makeOverlayCurrent": (),
- "PySide2.QtOpenGL.QGLWidget.overlayContext": (),
- "PySide2.QtOpenGL.QGLWidget.paintEngine": (),
- "PySide2.QtOpenGL.QGLWidget.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtOpenGL.QGLWidget.paintGL": (),
- "PySide2.QtOpenGL.QGLWidget.paintOverlayGL": (),
- "PySide2.QtOpenGL.QGLWidget.qglClearColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtOpenGL.QGLWidget.qglColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtOpenGL.QGLWidget.renderPixmap": ('int', 'int', 'bool'),
- "PySide2.QtOpenGL.QGLWidget.renderText": [('float', 'float', 'float', 'str', 'PySide2.QtGui.QFont'), ('int', 'int', 'str', 'PySide2.QtGui.QFont')],
- "PySide2.QtOpenGL.QGLWidget.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtOpenGL.QGLWidget.resizeGL": ('int', 'int'),
- "PySide2.QtOpenGL.QGLWidget.resizeOverlayGL": ('int', 'int'),
- "PySide2.QtOpenGL.QGLWidget.setAutoBufferSwap": ('bool',),
- "PySide2.QtOpenGL.QGLWidget.setColormap": ('PySide2.QtOpenGL.QGLColormap',),
- "PySide2.QtOpenGL.QGLWidget.swapBuffers": (),
- "PySide2.QtOpenGL.QGLWidget.updateGL": (),
- "PySide2.QtOpenGL.QGLWidget.updateOverlayGL": (),
- }) if "PySide2.QtOpenGL" in sys.modules else None
-# Module PySide2.QtOpenGLFunctions
-sig_dict.update({
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFogCoorddv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFogCoordfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFogCoorddv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFogCoordfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFogCoorddv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFogCoordfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4Nbv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4Niv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4Nsv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4Nubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4Nuiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4Nusv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFogCoorddv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFogCoordfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4Nbv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4Niv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4Nsv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4Nubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4Nuiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4Nusv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFogCoorddv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFogCoordfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4Nbv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4Niv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4Nsv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4Nubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4Nuiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4Nusv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFogCoorddv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFogCoordfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4Nbv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4Niv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4Nsv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4Nubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4Nuiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4Nusv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFogCoorddv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFogCoordfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormalP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoordP1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoordP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoordP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoordP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4Nbv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4Niv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4Nsv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4Nubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4Nuiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4Nusv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glColorP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glNormalP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glSecondaryColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexCoordP1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexCoordP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexCoordP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexCoordP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteTransformFeedbacks": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFogCoorddv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFogCoordfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGetSubroutineIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGetSubroutineUniformLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormalP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPatchParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoordP1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoordP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoordP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoordP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform1dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform2dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform3dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform4dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4Nbv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4Niv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4Nsv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4Nubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4Nuiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4Nusv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glColorP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDeleteTransformFeedbacks": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGetSubroutineIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGetSubroutineUniformLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glNormalP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPatchParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glSecondaryColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexCoordP1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexCoordP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexCoordP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexCoordP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform1dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform2dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform3dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform4dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClearDepthf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteProgramPipelines": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteTransformFeedbacks": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDepthRangeArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDepthRangeIndexed": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDepthRangef": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFogCoorddv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFogCoordfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGetSubroutineIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGetSubroutineUniformLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormalP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPatchParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform1d": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform1dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform2d": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform3d": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform4d": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix2x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix2x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix3x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix3x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix4x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix4x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glReleaseShaderCompiler": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glScissorArrayv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glScissorIndexed": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glScissorIndexedv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glShaderBinary": ('int', 'typing.Sequence[int]', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoordP1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoordP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoordP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoordP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform1dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform2dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform3dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform4dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glValidateProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4Nbv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4Niv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4Nsv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4Nubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4Nuiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4Nusv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribL1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribL1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribL2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribL2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribL3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribL3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribL4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribL4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribLPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glViewportArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glViewportIndexedf": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glViewportIndexedfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glClearDepthf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glColorP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteProgramPipelines": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteTransformFeedbacks": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDepthRangeArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDepthRangeIndexed": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDepthRangef": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGetSubroutineIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGetSubroutineUniformLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glNormalP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPatchParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform1d": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform1dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform2d": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform3d": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform4d": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix2x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix2x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix3x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix3x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix4x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix4x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glReleaseShaderCompiler": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glScissorArrayv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glScissorIndexed": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glScissorIndexedv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glSecondaryColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glShaderBinary": ('int', 'typing.Sequence[int]', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexCoordP1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexCoordP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexCoordP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexCoordP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform1dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform2dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform3dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform4dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glValidateProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribL1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribL1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribL2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribL2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribL3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribL3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribL4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribL4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribLPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glViewportArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glViewportIndexedf": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glViewportIndexedfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindImageTexture": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClearDepthf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteProgramPipelines": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteTransformFeedbacks": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDepthRangeArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDepthRangeIndexed": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDepthRangef": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawArraysInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawElementsInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawElementsInstancedBaseVertexBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawTransformFeedbackInstanced": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawTransformFeedbackStreamInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFogCoorddv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFogCoordfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGetSubroutineIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGetSubroutineUniformLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMemoryBarrier": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormalP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPatchParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform1d": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform1dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform2d": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform3d": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform4d": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix2x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix2x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix3x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix3x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix4x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix4x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glReleaseShaderCompiler": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glScissorArrayv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glScissorIndexed": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glScissorIndexedv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glShaderBinary": ('int', 'typing.Sequence[int]', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoordP1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoordP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoordP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoordP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexStorage1D": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform1dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform2dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform3dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform4dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glValidateProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4Nbv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4Niv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4Nsv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4Nubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4Nuiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4Nusv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribL1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribL1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribL2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribL2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribL3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribL3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribL4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribL4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribLPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glViewportArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glViewportIndexedf": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glViewportIndexedfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindImageTexture": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glClearDepthf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glColorP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteProgramPipelines": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteTransformFeedbacks": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDepthRangeArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDepthRangeIndexed": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDepthRangef": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawArraysInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawElementsInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawElementsInstancedBaseVertexBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawTransformFeedbackInstanced": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawTransformFeedbackStreamInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGetSubroutineIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGetSubroutineUniformLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMemoryBarrier": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glNormalP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPatchParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform1d": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform1dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform2d": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform3d": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform4d": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix2x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix2x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix3x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix3x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix4x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix4x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glReleaseShaderCompiler": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glScissorArrayv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glScissorIndexed": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glScissorIndexedv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glSecondaryColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glShaderBinary": ('int', 'typing.Sequence[int]', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexCoordP1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexCoordP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexCoordP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexCoordP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexStorage1D": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform1dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform2dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform3dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform4dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glValidateProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribL1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribL1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribL2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribL2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribL3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribL3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribL4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribL4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribLPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glViewportArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glViewportIndexedf": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glViewportIndexedfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindImageTexture": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearBufferData": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearDepthf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyImageSubData": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteProgramPipelines": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteTransformFeedbacks": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDepthRangeArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDepthRangeIndexed": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDepthRangef": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDispatchCompute": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawArraysInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawElementsInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawElementsInstancedBaseVertexBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawTransformFeedbackInstanced": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawTransformFeedbackStreamInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFogCoorddv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFogCoordfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFramebufferParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetProgramResourceIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetProgramResourceLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetProgramResourceLocationIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetSubroutineIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetSubroutineUniformLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glInvalidateBufferData": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glInvalidateFramebuffer": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glInvalidateSubFramebuffer": ('int', 'int', 'typing.Sequence[int]', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glInvalidateTexImage": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glInvalidateTexSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMemoryBarrier": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiDrawArraysIndirect": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormalP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPatchParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform1d": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform1dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform2d": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform3d": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform4d": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix2x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix2x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix3x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix3x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix4x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix4x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glReleaseShaderCompiler": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glScissorArrayv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glScissorIndexed": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glScissorIndexedv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glShaderBinary": ('int', 'typing.Sequence[int]', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glShaderStorageBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoordP1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoordP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoordP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoordP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexStorage1D": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexStorage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexStorage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTextureView": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform1dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform2dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform3dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform4dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glValidateProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4Nbv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4Niv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4Nsv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4Nubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4Nuiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4Nusv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribBinding": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribIFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribL1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribL1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribL2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribL2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribL3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribL3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribL4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribL4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribLFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribLPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexBindingDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glViewportArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glViewportIndexedf": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glViewportIndexedfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindImageTexture": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClearBufferData": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClearDepthf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glColorP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCopyImageSubData": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteProgramPipelines": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteTransformFeedbacks": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDepthRangeArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDepthRangeIndexed": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDepthRangef": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDispatchCompute": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawArraysInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawElementsInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawElementsInstancedBaseVertexBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawTransformFeedbackInstanced": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawTransformFeedbackStreamInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glFramebufferParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetProgramResourceIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetProgramResourceLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetProgramResourceLocationIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetSubroutineIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetSubroutineUniformLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glInvalidateBufferData": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glInvalidateFramebuffer": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glInvalidateSubFramebuffer": ('int', 'int', 'typing.Sequence[int]', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glInvalidateTexImage": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glInvalidateTexSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMemoryBarrier": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMultiDrawArraysIndirect": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glNormalP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPatchParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform1d": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform1dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform2d": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform3d": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform4d": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix2x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix2x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix3x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix3x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix4x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix4x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glReleaseShaderCompiler": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glScissorArrayv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glScissorIndexed": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glScissorIndexedv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glSecondaryColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glShaderBinary": ('int', 'typing.Sequence[int]', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glShaderStorageBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexCoordP1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexCoordP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexCoordP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexCoordP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexStorage1D": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexStorage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexStorage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTextureView": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform1dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform2dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform3dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform4dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glValidateProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribBinding": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribIFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribL1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribL1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribL2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribL2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribL3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribL3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribL4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribL4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribLFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribLPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexBindingDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glViewportArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glViewportIndexedf": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glViewportIndexedfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindBuffersBase": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindImageTexture": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindImageTextures": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindSamplers": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindTextures": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearBufferData": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearDepthf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearTexImage": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearTexSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyImageSubData": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDebugMessageControl": ('int', 'int', 'int', 'int', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDebugMessageInsert": ('int', 'int', 'int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteProgramPipelines": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteTransformFeedbacks": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDepthRangeArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDepthRangeIndexed": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDepthRangef": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDispatchCompute": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawArraysInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawElementsInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawElementsInstancedBaseVertexBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawTransformFeedbackInstanced": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawTransformFeedbackStreamInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFogCoorddv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFogCoordfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFramebufferParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetColorTable": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetCompressedTexImage": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetConvolutionFilter": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetHistogram": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetMinmax": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetProgramResourceIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetProgramResourceLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetProgramResourceLocationIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetSeparableFilter": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetSubroutineIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetSubroutineUniformLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetTexImage": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glInvalidateBufferData": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glInvalidateFramebuffer": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glInvalidateSubFramebuffer": ('int', 'int', 'typing.Sequence[int]', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glInvalidateTexImage": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glInvalidateTexSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMemoryBarrier": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiDrawArraysIndirect": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormalP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glObjectLabel": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glObjectPtrLabel": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPatchParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPopDebugGroup": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform1d": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform1dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform2d": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform3d": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform4d": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix2x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix2x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix3x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix3x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix4x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix4x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPushDebugGroup": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glReadPixels": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glReleaseShaderCompiler": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glScissorArrayv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glScissorIndexed": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glScissorIndexedv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glShaderBinary": ('int', 'typing.Sequence[int]', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glShaderStorageBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoordP1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoordP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoordP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoordP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexStorage1D": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexStorage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexStorage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTextureView": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform1dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform2dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform3dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform4dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glValidateProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4Nbv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4Niv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4Nsv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4Nubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4Nuiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4Nusv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribBinding": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribIFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribL1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribL1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribL2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribL2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribL3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribL3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribL4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribL4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribLFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribLPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexBindingDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glViewportArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glViewportIndexedf": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glViewportIndexedfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindBuffersBase": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindImageTexture": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindImageTextures": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindSamplers": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindTextures": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearBufferData": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearDepthf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearTexImage": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearTexSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCopyImageSubData": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDebugMessageControl": ('int', 'int', 'int', 'int', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDebugMessageInsert": ('int', 'int', 'int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteProgramPipelines": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteTransformFeedbacks": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDepthRangeArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDepthRangeIndexed": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDepthRangef": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDispatchCompute": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawArraysInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawElementsInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawElementsInstancedBaseVertexBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawTransformFeedbackInstanced": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawTransformFeedbackStreamInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glFramebufferParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetCompressedTexImage": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetProgramResourceIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetProgramResourceLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetProgramResourceLocationIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetSubroutineIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetSubroutineUniformLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetTexImage": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glInvalidateBufferData": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glInvalidateFramebuffer": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glInvalidateSubFramebuffer": ('int', 'int', 'typing.Sequence[int]', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glInvalidateTexImage": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glInvalidateTexSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glMemoryBarrier": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glMultiDrawArraysIndirect": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glObjectLabel": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glObjectPtrLabel": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPatchParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPopDebugGroup": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform1d": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform1dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform2d": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform3d": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform4d": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix2x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix2x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix3x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix3x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix4x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix4x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPushDebugGroup": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glReadPixels": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glReleaseShaderCompiler": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glScissorArrayv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glScissorIndexed": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glScissorIndexedv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glShaderBinary": ('int', 'typing.Sequence[int]', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glShaderStorageBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexStorage1D": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexStorage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexStorage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTextureView": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform1dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform2dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform3dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform4dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glValidateProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4Nbv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4Niv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4Nsv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4Nubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4Nuiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4Nusv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribBinding": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribIFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribL1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribL1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribL2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribL2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribL3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribL3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribL4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribL4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribLFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribLPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexBindingDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glViewportArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glViewportIndexedf": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glViewportIndexedfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindBuffersBase": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindImageTexture": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindImageTextures": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindSamplers": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindTextureUnit": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindTextures": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlitNamedFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCheckNamedFramebufferStatus": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearBufferData": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearDepthf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearNamedBufferData": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearNamedFramebufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearNamedFramebufferfv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearNamedFramebufferiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearNamedFramebufferuiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearTexImage": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearTexSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClipControl": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCompressedTextureSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCompressedTextureSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCompressedTextureSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyImageSubData": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyTextureSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyTextureSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyTextureSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDebugMessageControl": ('int', 'int', 'int', 'int', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDebugMessageInsert": ('int', 'int', 'int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteProgramPipelines": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteTransformFeedbacks": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDepthRangeArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDepthRangeIndexed": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDepthRangef": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDisableVertexArrayAttrib": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDispatchCompute": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawArraysInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawElementsInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawElementsInstancedBaseVertexBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawTransformFeedbackInstanced": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawTransformFeedbackStreamInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEnableVertexArrayAttrib": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFogCoorddv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFogCoordfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFramebufferParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGenerateTextureMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetColorTable": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetCompressedTexImage": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetCompressedTextureImage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetCompressedTextureSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetConvolutionFilter": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetGraphicsResetStatus": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetHistogram": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetMinmax": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetProgramResourceIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetProgramResourceLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetProgramResourceLocationIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetSeparableFilter": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetSubroutineIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetSubroutineUniformLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetTexImage": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetTextureImage": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetTextureSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetnColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetnCompressedTexImage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetnConvolutionFilter": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetnHistogram": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetnMinmax": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetnSeparableFilter": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetnTexImage": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glInvalidateBufferData": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glInvalidateFramebuffer": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glInvalidateNamedFramebufferData": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glInvalidateNamedFramebufferSubData": ('int', 'int', 'typing.Sequence[int]', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glInvalidateSubFramebuffer": ('int', 'int', 'typing.Sequence[int]', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glInvalidateTexImage": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glInvalidateTexSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMapNamedBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMemoryBarrier": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMemoryBarrierByRegion": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiDrawArraysIndirect": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedBufferData": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedBufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedFramebufferDrawBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedFramebufferDrawBuffers": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedFramebufferParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedFramebufferReadBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormalP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glObjectLabel": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glObjectPtrLabel": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPatchParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPopDebugGroup": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform1d": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform1dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform2d": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform3d": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform4d": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix2x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix2x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix3x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix3x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix4x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix4x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPushDebugGroup": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glReadPixels": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glReadnPixels": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glReleaseShaderCompiler": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glScissorArrayv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glScissorIndexed": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glScissorIndexedv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glShaderBinary": ('int', 'typing.Sequence[int]', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glShaderStorageBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoordP1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoordP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoordP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoordP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexStorage1D": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexStorage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexStorage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureBarrier": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureStorage1D": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureStorage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureStorage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureView": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTransformFeedbackBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform1dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform2dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform3dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform4dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUnmapNamedBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glValidateProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexArrayAttribBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexArrayAttribFormat": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexArrayAttribIFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexArrayAttribLFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexArrayBindingDivisor": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexArrayElementBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4Nbv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4Niv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4Nsv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4Nubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4Nuiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4Nusv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribBinding": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribIFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribL1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribL1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribL2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribL2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribL3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribL3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribL4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribL4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribLFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribLPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexBindingDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glViewportArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glViewportIndexedf": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glViewportIndexedfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindBuffersBase": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindImageTexture": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindImageTextures": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindSamplers": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindTextureUnit": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindTextures": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlitNamedFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCheckNamedFramebufferStatus": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearBufferData": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearDepthf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearNamedBufferData": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearNamedFramebufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearNamedFramebufferfv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearNamedFramebufferiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearNamedFramebufferuiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearTexImage": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearTexSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClipControl": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCompressedTextureSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCompressedTextureSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCompressedTextureSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCopyImageSubData": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCopyTextureSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCopyTextureSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCopyTextureSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDebugMessageControl": ('int', 'int', 'int', 'int', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDebugMessageInsert": ('int', 'int', 'int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteProgramPipelines": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteTransformFeedbacks": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDepthRangeArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDepthRangeIndexed": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDepthRangef": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDisableVertexArrayAttrib": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDispatchCompute": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawArraysInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawElementsInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawElementsInstancedBaseVertexBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawTransformFeedbackInstanced": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawTransformFeedbackStreamInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glEnableVertexArrayAttrib": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glFramebufferParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGenerateTextureMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetCompressedTexImage": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetCompressedTextureImage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetCompressedTextureSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetGraphicsResetStatus": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetProgramResourceIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetProgramResourceLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetProgramResourceLocationIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetSubroutineIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetSubroutineUniformLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetTexImage": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetTextureImage": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetTextureSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetnCompressedTexImage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetnTexImage": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glInvalidateBufferData": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glInvalidateFramebuffer": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glInvalidateNamedFramebufferData": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glInvalidateNamedFramebufferSubData": ('int', 'int', 'typing.Sequence[int]', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glInvalidateSubFramebuffer": ('int', 'int', 'typing.Sequence[int]', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glInvalidateTexImage": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glInvalidateTexSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glMapNamedBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glMemoryBarrier": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glMemoryBarrierByRegion": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glMultiDrawArraysIndirect": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedBufferData": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedBufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedFramebufferDrawBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedFramebufferDrawBuffers": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedFramebufferParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedFramebufferReadBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glObjectLabel": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glObjectPtrLabel": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPatchParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPopDebugGroup": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform1d": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform1dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform2d": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform3d": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform4d": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix2x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix2x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix3x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix3x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix4x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix4x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPushDebugGroup": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glReadPixels": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glReadnPixels": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glReleaseShaderCompiler": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glScissorArrayv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glScissorIndexed": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glScissorIndexedv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glShaderBinary": ('int', 'typing.Sequence[int]', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glShaderStorageBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexStorage1D": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexStorage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexStorage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureBarrier": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureStorage1D": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureStorage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureStorage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureView": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTransformFeedbackBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform1dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform2dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform3dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform4dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUnmapNamedBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glValidateProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexArrayAttribBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexArrayAttribFormat": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexArrayAttribIFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexArrayAttribLFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexArrayBindingDivisor": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexArrayElementBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4Nbv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4Niv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4Nsv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4Nubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4Nuiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4Nusv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribBinding": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribIFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribL1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribL1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribL2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribL2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribL3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribL3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribL4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribL4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribLFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribLPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexBindingDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glViewportArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glViewportIndexedf": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glViewportIndexedfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.initializeOpenGLFunctions": (),
- }) if "PySide2.QtOpenGLFunctions" in sys.modules else None
-# Module PySide2.QtPositioning
-sig_dict.update({
-# class PySide2.QtPositioning.QGeoAddress:
- "PySide2.QtPositioning.QGeoAddress.__init__": [(), ('PySide2.QtPositioning.QGeoAddress',)],
- "PySide2.QtPositioning.QGeoAddress.__copy__": (),
- "PySide2.QtPositioning.QGeoAddress.city": (),
- "PySide2.QtPositioning.QGeoAddress.clear": (),
- "PySide2.QtPositioning.QGeoAddress.country": (),
- "PySide2.QtPositioning.QGeoAddress.countryCode": (),
- "PySide2.QtPositioning.QGeoAddress.county": (),
- "PySide2.QtPositioning.QGeoAddress.district": (),
- "PySide2.QtPositioning.QGeoAddress.isEmpty": (),
- "PySide2.QtPositioning.QGeoAddress.isTextGenerated": (),
- "PySide2.QtPositioning.QGeoAddress.postalCode": (),
- "PySide2.QtPositioning.QGeoAddress.setCity": ('str',),
- "PySide2.QtPositioning.QGeoAddress.setCountry": ('str',),
- "PySide2.QtPositioning.QGeoAddress.setCountryCode": ('str',),
- "PySide2.QtPositioning.QGeoAddress.setCounty": ('str',),
- "PySide2.QtPositioning.QGeoAddress.setDistrict": ('str',),
- "PySide2.QtPositioning.QGeoAddress.setPostalCode": ('str',),
- "PySide2.QtPositioning.QGeoAddress.setState": ('str',),
- "PySide2.QtPositioning.QGeoAddress.setStreet": ('str',),
- "PySide2.QtPositioning.QGeoAddress.setText": ('str',),
- "PySide2.QtPositioning.QGeoAddress.state": (),
- "PySide2.QtPositioning.QGeoAddress.street": (),
- "PySide2.QtPositioning.QGeoAddress.text": (),
-# class PySide2.QtPositioning.QGeoAreaMonitorInfo:
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.__init__": [('PySide2.QtPositioning.QGeoAreaMonitorInfo',), ('str',)],
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.__copy__": (),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.area": (),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.expiration": (),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.identifier": (),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.isPersistent": (),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.isValid": (),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.name": (),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.notificationParameters": (),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.setArea": ('PySide2.QtPositioning.QGeoShape',),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.setExpiration": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.setName": ('str',),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.setNotificationParameters": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.setPersistent": ('bool',),
-# class PySide2.QtPositioning.QGeoAreaMonitorSource:
-# class PySide2.QtPositioning.QGeoAreaMonitorSource.AreaMonitorFeature:
-# class PySide2.QtPositioning.QGeoAreaMonitorSource.AreaMonitorFeatures:
-# class PySide2.QtPositioning.QGeoAreaMonitorSource.Error:
- "PySide2.QtPositioning.QGeoAreaMonitorSource.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.activeMonitors": [(), ('PySide2.QtPositioning.QGeoShape',)],
- "PySide2.QtPositioning.QGeoAreaMonitorSource.availableSources": (),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.createDefaultSource": ('PySide2.QtCore.QObject',),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.createSource": ('str', 'PySide2.QtCore.QObject'),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.error": (),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.positionInfoSource": (),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.requestUpdate": ('PySide2.QtPositioning.QGeoAreaMonitorInfo', 'str'),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.setPositionInfoSource": ('PySide2.QtPositioning.QGeoPositionInfoSource',),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.sourceName": (),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.startMonitoring": ('PySide2.QtPositioning.QGeoAreaMonitorInfo',),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.stopMonitoring": ('PySide2.QtPositioning.QGeoAreaMonitorInfo',),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.supportedAreaMonitorFeatures": (),
-# class PySide2.QtPositioning.QGeoCircle:
- "PySide2.QtPositioning.QGeoCircle.__init__": [(), ('PySide2.QtPositioning.QGeoCircle',), ('PySide2.QtPositioning.QGeoCoordinate', 'float'), ('PySide2.QtPositioning.QGeoShape',)],
- "PySide2.QtPositioning.QGeoCircle.__copy__": (),
- "PySide2.QtPositioning.QGeoCircle.center": (),
- "PySide2.QtPositioning.QGeoCircle.extendCircle": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoCircle.radius": (),
- "PySide2.QtPositioning.QGeoCircle.setCenter": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoCircle.setRadius": ('float',),
- "PySide2.QtPositioning.QGeoCircle.toString": (),
- "PySide2.QtPositioning.QGeoCircle.translate": ('float', 'float'),
- "PySide2.QtPositioning.QGeoCircle.translated": ('float', 'float'),
-# class PySide2.QtPositioning.QGeoCoordinate:
-# class PySide2.QtPositioning.QGeoCoordinate.CoordinateFormat:
-# class PySide2.QtPositioning.QGeoCoordinate.CoordinateType:
- "PySide2.QtPositioning.QGeoCoordinate.__init__": [(), ('PySide2.QtPositioning.QGeoCoordinate',), ('float', 'float'), ('float', 'float', 'float')],
- "PySide2.QtPositioning.QGeoCoordinate.__copy__": (),
- "PySide2.QtPositioning.QGeoCoordinate.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtPositioning.QGeoCoordinate.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtPositioning.QGeoCoordinate.altitude": (),
- "PySide2.QtPositioning.QGeoCoordinate.atDistanceAndAzimuth": ('float', 'float', 'float'),
- "PySide2.QtPositioning.QGeoCoordinate.azimuthTo": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoCoordinate.distanceTo": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoCoordinate.isValid": (),
- "PySide2.QtPositioning.QGeoCoordinate.latitude": (),
- "PySide2.QtPositioning.QGeoCoordinate.longitude": (),
- "PySide2.QtPositioning.QGeoCoordinate.setAltitude": ('float',),
- "PySide2.QtPositioning.QGeoCoordinate.setLatitude": ('float',),
- "PySide2.QtPositioning.QGeoCoordinate.setLongitude": ('float',),
- "PySide2.QtPositioning.QGeoCoordinate.toString": ('PySide2.QtPositioning.QGeoCoordinate.CoordinateFormat',),
- "PySide2.QtPositioning.QGeoCoordinate.type": (),
-# class PySide2.QtPositioning.QGeoLocation:
- "PySide2.QtPositioning.QGeoLocation.__init__": [(), ('PySide2.QtPositioning.QGeoLocation',)],
- "PySide2.QtPositioning.QGeoLocation.__copy__": (),
- "PySide2.QtPositioning.QGeoLocation.address": (),
- "PySide2.QtPositioning.QGeoLocation.boundingBox": (),
- "PySide2.QtPositioning.QGeoLocation.coordinate": (),
- "PySide2.QtPositioning.QGeoLocation.extendedAttributes": (),
- "PySide2.QtPositioning.QGeoLocation.isEmpty": (),
- "PySide2.QtPositioning.QGeoLocation.setAddress": ('PySide2.QtPositioning.QGeoAddress',),
- "PySide2.QtPositioning.QGeoLocation.setBoundingBox": ('PySide2.QtPositioning.QGeoRectangle',),
- "PySide2.QtPositioning.QGeoLocation.setCoordinate": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoLocation.setExtendedAttributes": ('typing.Dict[str, typing.Any]',),
-# class PySide2.QtPositioning.QGeoPath:
- "PySide2.QtPositioning.QGeoPath.__init__": [(), ('PySide2.QtPositioning.QGeoPath',), ('PySide2.QtPositioning.QGeoShape',), ('typing.Sequence[PySide2.QtPositioning.QGeoCoordinate]', 'float')],
- "PySide2.QtPositioning.QGeoPath.__copy__": (),
- "PySide2.QtPositioning.QGeoPath.addCoordinate": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoPath.clearPath": (),
- "PySide2.QtPositioning.QGeoPath.containsCoordinate": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoPath.coordinateAt": ('int',),
- "PySide2.QtPositioning.QGeoPath.insertCoordinate": ('int', 'PySide2.QtPositioning.QGeoCoordinate'),
- "PySide2.QtPositioning.QGeoPath.length": ('int', 'int'),
- "PySide2.QtPositioning.QGeoPath.path": (),
- "PySide2.QtPositioning.QGeoPath.removeCoordinate": [('PySide2.QtPositioning.QGeoCoordinate',), ('int',)],
- "PySide2.QtPositioning.QGeoPath.replaceCoordinate": ('int', 'PySide2.QtPositioning.QGeoCoordinate'),
- "PySide2.QtPositioning.QGeoPath.setPath": ('typing.Sequence[PySide2.QtPositioning.QGeoCoordinate]',),
- "PySide2.QtPositioning.QGeoPath.setVariantPath": ('typing.Sequence[typing.Any]',),
- "PySide2.QtPositioning.QGeoPath.setWidth": ('float',),
- "PySide2.QtPositioning.QGeoPath.size": (),
- "PySide2.QtPositioning.QGeoPath.toString": (),
- "PySide2.QtPositioning.QGeoPath.translate": ('float', 'float'),
- "PySide2.QtPositioning.QGeoPath.translated": ('float', 'float'),
- "PySide2.QtPositioning.QGeoPath.variantPath": (),
- "PySide2.QtPositioning.QGeoPath.width": (),
-# class PySide2.QtPositioning.QGeoPolygon:
- "PySide2.QtPositioning.QGeoPolygon.__init__": [(), ('PySide2.QtPositioning.QGeoPolygon',), ('PySide2.QtPositioning.QGeoShape',), ('typing.Sequence[PySide2.QtPositioning.QGeoCoordinate]',)],
- "PySide2.QtPositioning.QGeoPolygon.__copy__": (),
- "PySide2.QtPositioning.QGeoPolygon.addCoordinate": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoPolygon.addHole": [('typing.Any',), ('typing.Sequence[PySide2.QtPositioning.QGeoCoordinate]',)],
- "PySide2.QtPositioning.QGeoPolygon.containsCoordinate": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoPolygon.coordinateAt": ('int',),
- "PySide2.QtPositioning.QGeoPolygon.hole": ('int',),
- "PySide2.QtPositioning.QGeoPolygon.holePath": ('int',),
- "PySide2.QtPositioning.QGeoPolygon.holesCount": (),
- "PySide2.QtPositioning.QGeoPolygon.insertCoordinate": ('int', 'PySide2.QtPositioning.QGeoCoordinate'),
- "PySide2.QtPositioning.QGeoPolygon.length": ('int', 'int'),
- "PySide2.QtPositioning.QGeoPolygon.path": (),
- "PySide2.QtPositioning.QGeoPolygon.perimeter": (),
- "PySide2.QtPositioning.QGeoPolygon.removeCoordinate": [('PySide2.QtPositioning.QGeoCoordinate',), ('int',)],
- "PySide2.QtPositioning.QGeoPolygon.removeHole": ('int',),
- "PySide2.QtPositioning.QGeoPolygon.replaceCoordinate": ('int', 'PySide2.QtPositioning.QGeoCoordinate'),
- "PySide2.QtPositioning.QGeoPolygon.setPath": ('typing.Sequence[PySide2.QtPositioning.QGeoCoordinate]',),
- "PySide2.QtPositioning.QGeoPolygon.setPerimeter": ('typing.Sequence[typing.Any]',),
- "PySide2.QtPositioning.QGeoPolygon.size": (),
- "PySide2.QtPositioning.QGeoPolygon.toString": (),
- "PySide2.QtPositioning.QGeoPolygon.translate": ('float', 'float'),
- "PySide2.QtPositioning.QGeoPolygon.translated": ('float', 'float'),
-# class PySide2.QtPositioning.QGeoPositionInfo:
-# class PySide2.QtPositioning.QGeoPositionInfo.Attribute:
- "PySide2.QtPositioning.QGeoPositionInfo.__init__": [(), ('PySide2.QtPositioning.QGeoCoordinate', 'PySide2.QtCore.QDateTime'), ('PySide2.QtPositioning.QGeoPositionInfo',)],
- "PySide2.QtPositioning.QGeoPositionInfo.__copy__": (),
- "PySide2.QtPositioning.QGeoPositionInfo.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtPositioning.QGeoPositionInfo.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtPositioning.QGeoPositionInfo.attribute": ('PySide2.QtPositioning.QGeoPositionInfo.Attribute',),
- "PySide2.QtPositioning.QGeoPositionInfo.coordinate": (),
- "PySide2.QtPositioning.QGeoPositionInfo.hasAttribute": ('PySide2.QtPositioning.QGeoPositionInfo.Attribute',),
- "PySide2.QtPositioning.QGeoPositionInfo.isValid": (),
- "PySide2.QtPositioning.QGeoPositionInfo.removeAttribute": ('PySide2.QtPositioning.QGeoPositionInfo.Attribute',),
- "PySide2.QtPositioning.QGeoPositionInfo.setAttribute": ('PySide2.QtPositioning.QGeoPositionInfo.Attribute', 'float'),
- "PySide2.QtPositioning.QGeoPositionInfo.setCoordinate": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoPositionInfo.setTimestamp": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtPositioning.QGeoPositionInfo.timestamp": (),
-# class PySide2.QtPositioning.QGeoPositionInfoSource:
-# class PySide2.QtPositioning.QGeoPositionInfoSource.Error:
-# class PySide2.QtPositioning.QGeoPositionInfoSource.PositioningMethod:
-# class PySide2.QtPositioning.QGeoPositionInfoSource.PositioningMethods:
- "PySide2.QtPositioning.QGeoPositionInfoSource.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtPositioning.QGeoPositionInfoSource.availableSources": (),
- "PySide2.QtPositioning.QGeoPositionInfoSource.backendProperty": ('str',),
- "PySide2.QtPositioning.QGeoPositionInfoSource.createDefaultSource": [('PySide2.QtCore.QObject',), ('typing.Dict[str, typing.Any]', 'PySide2.QtCore.QObject')],
- "PySide2.QtPositioning.QGeoPositionInfoSource.createSource": [('str', 'PySide2.QtCore.QObject'), ('str', 'typing.Dict[str, typing.Any]', 'PySide2.QtCore.QObject')],
- "PySide2.QtPositioning.QGeoPositionInfoSource.error": (),
- "PySide2.QtPositioning.QGeoPositionInfoSource.lastKnownPosition": ('bool',),
- "PySide2.QtPositioning.QGeoPositionInfoSource.minimumUpdateInterval": (),
- "PySide2.QtPositioning.QGeoPositionInfoSource.preferredPositioningMethods": (),
- "PySide2.QtPositioning.QGeoPositionInfoSource.requestUpdate": ('int',),
- "PySide2.QtPositioning.QGeoPositionInfoSource.setBackendProperty": ('str', 'typing.Any'),
- "PySide2.QtPositioning.QGeoPositionInfoSource.setPreferredPositioningMethods": ('PySide2.QtPositioning.QGeoPositionInfoSource.PositioningMethods',),
- "PySide2.QtPositioning.QGeoPositionInfoSource.setUpdateInterval": ('int',),
- "PySide2.QtPositioning.QGeoPositionInfoSource.sourceName": (),
- "PySide2.QtPositioning.QGeoPositionInfoSource.startUpdates": (),
- "PySide2.QtPositioning.QGeoPositionInfoSource.stopUpdates": (),
- "PySide2.QtPositioning.QGeoPositionInfoSource.supportedPositioningMethods": (),
- "PySide2.QtPositioning.QGeoPositionInfoSource.updateInterval": (),
-# class PySide2.QtPositioning.QGeoPositionInfoSourceFactory:
- "PySide2.QtPositioning.QGeoPositionInfoSourceFactory.__init__": (),
- "PySide2.QtPositioning.QGeoPositionInfoSourceFactory.areaMonitor": ('PySide2.QtCore.QObject',),
- "PySide2.QtPositioning.QGeoPositionInfoSourceFactory.positionInfoSource": ('PySide2.QtCore.QObject',),
- "PySide2.QtPositioning.QGeoPositionInfoSourceFactory.satelliteInfoSource": ('PySide2.QtCore.QObject',),
-# class PySide2.QtPositioning.QGeoRectangle:
- "PySide2.QtPositioning.QGeoRectangle.__init__": [(), ('PySide2.QtPositioning.QGeoCoordinate', 'PySide2.QtPositioning.QGeoCoordinate'), ('PySide2.QtPositioning.QGeoCoordinate', 'float', 'float'), ('PySide2.QtPositioning.QGeoRectangle',), ('PySide2.QtPositioning.QGeoShape',), ('typing.Sequence[PySide2.QtPositioning.QGeoCoordinate]',)],
- "PySide2.QtPositioning.QGeoRectangle.__copy__": (),
- "PySide2.QtPositioning.QGeoRectangle.__ior__": ('PySide2.QtPositioning.QGeoRectangle',),
- "PySide2.QtPositioning.QGeoRectangle.__or__": ('PySide2.QtPositioning.QGeoRectangle',),
- "PySide2.QtPositioning.QGeoRectangle.bottomLeft": (),
- "PySide2.QtPositioning.QGeoRectangle.bottomRight": (),
- "PySide2.QtPositioning.QGeoRectangle.center": (),
- "PySide2.QtPositioning.QGeoRectangle.contains": [('PySide2.QtPositioning.QGeoCoordinate',), ('PySide2.QtPositioning.QGeoRectangle',)],
- "PySide2.QtPositioning.QGeoRectangle.extendRectangle": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoRectangle.height": (),
- "PySide2.QtPositioning.QGeoRectangle.intersects": ('PySide2.QtPositioning.QGeoRectangle',),
- "PySide2.QtPositioning.QGeoRectangle.setBottomLeft": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoRectangle.setBottomRight": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoRectangle.setCenter": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoRectangle.setHeight": ('float',),
- "PySide2.QtPositioning.QGeoRectangle.setTopLeft": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoRectangle.setTopRight": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoRectangle.setWidth": ('float',),
- "PySide2.QtPositioning.QGeoRectangle.toString": (),
- "PySide2.QtPositioning.QGeoRectangle.topLeft": (),
- "PySide2.QtPositioning.QGeoRectangle.topRight": (),
- "PySide2.QtPositioning.QGeoRectangle.translate": ('float', 'float'),
- "PySide2.QtPositioning.QGeoRectangle.translated": ('float', 'float'),
- "PySide2.QtPositioning.QGeoRectangle.united": ('PySide2.QtPositioning.QGeoRectangle',),
- "PySide2.QtPositioning.QGeoRectangle.width": (),
-# class PySide2.QtPositioning.QGeoSatelliteInfo:
-# class PySide2.QtPositioning.QGeoSatelliteInfo.Attribute:
-# class PySide2.QtPositioning.QGeoSatelliteInfo.SatelliteSystem:
- "PySide2.QtPositioning.QGeoSatelliteInfo.__init__": [(), ('PySide2.QtPositioning.QGeoSatelliteInfo',)],
- "PySide2.QtPositioning.QGeoSatelliteInfo.__copy__": (),
- "PySide2.QtPositioning.QGeoSatelliteInfo.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtPositioning.QGeoSatelliteInfo.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtPositioning.QGeoSatelliteInfo.attribute": ('PySide2.QtPositioning.QGeoSatelliteInfo.Attribute',),
- "PySide2.QtPositioning.QGeoSatelliteInfo.hasAttribute": ('PySide2.QtPositioning.QGeoSatelliteInfo.Attribute',),
- "PySide2.QtPositioning.QGeoSatelliteInfo.removeAttribute": ('PySide2.QtPositioning.QGeoSatelliteInfo.Attribute',),
- "PySide2.QtPositioning.QGeoSatelliteInfo.satelliteIdentifier": (),
- "PySide2.QtPositioning.QGeoSatelliteInfo.satelliteSystem": (),
- "PySide2.QtPositioning.QGeoSatelliteInfo.setAttribute": ('PySide2.QtPositioning.QGeoSatelliteInfo.Attribute', 'float'),
- "PySide2.QtPositioning.QGeoSatelliteInfo.setSatelliteIdentifier": ('int',),
- "PySide2.QtPositioning.QGeoSatelliteInfo.setSatelliteSystem": ('PySide2.QtPositioning.QGeoSatelliteInfo.SatelliteSystem',),
- "PySide2.QtPositioning.QGeoSatelliteInfo.setSignalStrength": ('int',),
- "PySide2.QtPositioning.QGeoSatelliteInfo.signalStrength": (),
-# class PySide2.QtPositioning.QGeoSatelliteInfoSource:
-# class PySide2.QtPositioning.QGeoSatelliteInfoSource.Error:
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.availableSources": (),
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.createDefaultSource": [('PySide2.QtCore.QObject',), ('typing.Dict[str, typing.Any]', 'PySide2.QtCore.QObject')],
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.createSource": [('str', 'PySide2.QtCore.QObject'), ('str', 'typing.Dict[str, typing.Any]', 'PySide2.QtCore.QObject')],
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.error": (),
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.minimumUpdateInterval": (),
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.requestUpdate": ('int',),
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.setUpdateInterval": ('int',),
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.sourceName": (),
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.startUpdates": (),
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.stopUpdates": (),
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.updateInterval": (),
-# class PySide2.QtPositioning.QGeoShape:
-# class PySide2.QtPositioning.QGeoShape.ShapeType:
- "PySide2.QtPositioning.QGeoShape.__init__": [(), ('PySide2.QtPositioning.QGeoShape',)],
- "PySide2.QtPositioning.QGeoShape.__copy__": (),
- "PySide2.QtPositioning.QGeoShape.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtPositioning.QGeoShape.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtPositioning.QGeoShape.boundingGeoRectangle": (),
- "PySide2.QtPositioning.QGeoShape.center": (),
- "PySide2.QtPositioning.QGeoShape.contains": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoShape.extendShape": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoShape.isEmpty": (),
- "PySide2.QtPositioning.QGeoShape.isValid": (),
- "PySide2.QtPositioning.QGeoShape.toString": (),
- "PySide2.QtPositioning.QGeoShape.type": (),
-# class PySide2.QtPositioning.QNmeaPositionInfoSource:
-# class PySide2.QtPositioning.QNmeaPositionInfoSource.UpdateMode:
- "PySide2.QtPositioning.QNmeaPositionInfoSource.__init__": ('PySide2.QtPositioning.QNmeaPositionInfoSource.UpdateMode', 'PySide2.QtCore.QObject'),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.device": (),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.error": (),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.lastKnownPosition": ('bool',),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.minimumUpdateInterval": (),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.parsePosInfoFromNmeaData": ('str', 'int', 'PySide2.QtPositioning.QGeoPositionInfo'),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.requestUpdate": ('int',),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.setUpdateInterval": ('int',),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.setUserEquivalentRangeError": ('float',),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.startUpdates": (),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.stopUpdates": (),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.supportedPositioningMethods": (),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.updateMode": (),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.userEquivalentRangeError": (),
- }) if "PySide2.QtPositioning" in sys.modules else None
-# Module PySide2.QtLocation
-sig_dict.update({
-# class PySide2.QtLocation.QGeoCodeReply:
-# class PySide2.QtLocation.QGeoCodeReply.Error:
- "PySide2.QtLocation.QGeoCodeReply.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtLocation.QGeoCodeReply.Error', 'str', 'PySide2.QtCore.QObject')],
- "PySide2.QtLocation.QGeoCodeReply.abort": (),
- "PySide2.QtLocation.QGeoCodeReply.addLocation": ('PySide2.QtPositioning.QGeoLocation',),
- "PySide2.QtLocation.QGeoCodeReply.error": (),
- "PySide2.QtLocation.QGeoCodeReply.errorString": (),
- "PySide2.QtLocation.QGeoCodeReply.isFinished": (),
- "PySide2.QtLocation.QGeoCodeReply.limit": (),
- "PySide2.QtLocation.QGeoCodeReply.locations": (),
- "PySide2.QtLocation.QGeoCodeReply.offset": (),
- "PySide2.QtLocation.QGeoCodeReply.setError": ('PySide2.QtLocation.QGeoCodeReply.Error', 'str'),
- "PySide2.QtLocation.QGeoCodeReply.setFinished": ('bool',),
- "PySide2.QtLocation.QGeoCodeReply.setLimit": ('int',),
- "PySide2.QtLocation.QGeoCodeReply.setLocations": ('typing.Sequence[PySide2.QtPositioning.QGeoLocation]',),
- "PySide2.QtLocation.QGeoCodeReply.setOffset": ('int',),
- "PySide2.QtLocation.QGeoCodeReply.setViewport": ('PySide2.QtPositioning.QGeoShape',),
- "PySide2.QtLocation.QGeoCodeReply.viewport": (),
-# class PySide2.QtLocation.QGeoCodingManager:
- "PySide2.QtLocation.QGeoCodingManager.geocode": [('PySide2.QtPositioning.QGeoAddress', 'PySide2.QtPositioning.QGeoShape'), ('str', 'int', 'int', 'PySide2.QtPositioning.QGeoShape')],
- "PySide2.QtLocation.QGeoCodingManager.locale": (),
- "PySide2.QtLocation.QGeoCodingManager.managerName": (),
- "PySide2.QtLocation.QGeoCodingManager.managerVersion": (),
- "PySide2.QtLocation.QGeoCodingManager.reverseGeocode": ('PySide2.QtPositioning.QGeoCoordinate', 'PySide2.QtPositioning.QGeoShape'),
- "PySide2.QtLocation.QGeoCodingManager.setLocale": ('PySide2.QtCore.QLocale',),
-# class PySide2.QtLocation.QGeoCodingManagerEngine:
- "PySide2.QtLocation.QGeoCodingManagerEngine.__init__": ('typing.Dict[str, typing.Any]', 'PySide2.QtCore.QObject'),
- "PySide2.QtLocation.QGeoCodingManagerEngine.geocode": [('PySide2.QtPositioning.QGeoAddress', 'PySide2.QtPositioning.QGeoShape'), ('str', 'int', 'int', 'PySide2.QtPositioning.QGeoShape')],
- "PySide2.QtLocation.QGeoCodingManagerEngine.locale": (),
- "PySide2.QtLocation.QGeoCodingManagerEngine.managerName": (),
- "PySide2.QtLocation.QGeoCodingManagerEngine.managerVersion": (),
- "PySide2.QtLocation.QGeoCodingManagerEngine.reverseGeocode": ('PySide2.QtPositioning.QGeoCoordinate', 'PySide2.QtPositioning.QGeoShape'),
- "PySide2.QtLocation.QGeoCodingManagerEngine.setLocale": ('PySide2.QtCore.QLocale',),
-# class PySide2.QtLocation.QGeoManeuver:
-# class PySide2.QtLocation.QGeoManeuver.InstructionDirection:
- "PySide2.QtLocation.QGeoManeuver.__init__": [(), ('PySide2.QtLocation.QGeoManeuver',)],
- "PySide2.QtLocation.QGeoManeuver.__copy__": (),
- "PySide2.QtLocation.QGeoManeuver.direction": (),
- "PySide2.QtLocation.QGeoManeuver.distanceToNextInstruction": (),
- "PySide2.QtLocation.QGeoManeuver.extendedAttributes": (),
- "PySide2.QtLocation.QGeoManeuver.instructionText": (),
- "PySide2.QtLocation.QGeoManeuver.isValid": (),
- "PySide2.QtLocation.QGeoManeuver.position": (),
- "PySide2.QtLocation.QGeoManeuver.setDirection": ('PySide2.QtLocation.QGeoManeuver.InstructionDirection',),
- "PySide2.QtLocation.QGeoManeuver.setDistanceToNextInstruction": ('float',),
- "PySide2.QtLocation.QGeoManeuver.setExtendedAttributes": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtLocation.QGeoManeuver.setInstructionText": ('str',),
- "PySide2.QtLocation.QGeoManeuver.setPosition": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtLocation.QGeoManeuver.setTimeToNextInstruction": ('int',),
- "PySide2.QtLocation.QGeoManeuver.setWaypoint": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtLocation.QGeoManeuver.timeToNextInstruction": (),
- "PySide2.QtLocation.QGeoManeuver.waypoint": (),
-# class PySide2.QtLocation.QGeoRoute:
- "PySide2.QtLocation.QGeoRoute.__init__": [(), ('PySide2.QtLocation.QGeoRoute',)],
- "PySide2.QtLocation.QGeoRoute.__copy__": (),
- "PySide2.QtLocation.QGeoRoute.bounds": (),
- "PySide2.QtLocation.QGeoRoute.distance": (),
- "PySide2.QtLocation.QGeoRoute.extendedAttributes": (),
- "PySide2.QtLocation.QGeoRoute.firstRouteSegment": (),
- "PySide2.QtLocation.QGeoRoute.path": (),
- "PySide2.QtLocation.QGeoRoute.request": (),
- "PySide2.QtLocation.QGeoRoute.routeId": (),
- "PySide2.QtLocation.QGeoRoute.setBounds": ('PySide2.QtPositioning.QGeoRectangle',),
- "PySide2.QtLocation.QGeoRoute.setDistance": ('float',),
- "PySide2.QtLocation.QGeoRoute.setExtendedAttributes": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtLocation.QGeoRoute.setFirstRouteSegment": ('PySide2.QtLocation.QGeoRouteSegment',),
- "PySide2.QtLocation.QGeoRoute.setPath": ('typing.Sequence[PySide2.QtPositioning.QGeoCoordinate]',),
- "PySide2.QtLocation.QGeoRoute.setRequest": ('PySide2.QtLocation.QGeoRouteRequest',),
- "PySide2.QtLocation.QGeoRoute.setRouteId": ('str',),
- "PySide2.QtLocation.QGeoRoute.setTravelMode": ('PySide2.QtLocation.QGeoRouteRequest.TravelMode',),
- "PySide2.QtLocation.QGeoRoute.setTravelTime": ('int',),
- "PySide2.QtLocation.QGeoRoute.travelMode": (),
- "PySide2.QtLocation.QGeoRoute.travelTime": (),
-# class PySide2.QtLocation.QGeoRouteReply:
-# class PySide2.QtLocation.QGeoRouteReply.Error:
- "PySide2.QtLocation.QGeoRouteReply.__init__": [('PySide2.QtLocation.QGeoRouteReply.Error', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtLocation.QGeoRouteRequest', 'PySide2.QtCore.QObject')],
- "PySide2.QtLocation.QGeoRouteReply.abort": (),
- "PySide2.QtLocation.QGeoRouteReply.addRoutes": ('typing.Sequence[PySide2.QtLocation.QGeoRoute]',),
- "PySide2.QtLocation.QGeoRouteReply.error": (),
- "PySide2.QtLocation.QGeoRouteReply.errorString": (),
- "PySide2.QtLocation.QGeoRouteReply.isFinished": (),
- "PySide2.QtLocation.QGeoRouteReply.request": (),
- "PySide2.QtLocation.QGeoRouteReply.routes": (),
- "PySide2.QtLocation.QGeoRouteReply.setError": ('PySide2.QtLocation.QGeoRouteReply.Error', 'str'),
- "PySide2.QtLocation.QGeoRouteReply.setFinished": ('bool',),
- "PySide2.QtLocation.QGeoRouteReply.setRoutes": ('typing.Sequence[PySide2.QtLocation.QGeoRoute]',),
-# class PySide2.QtLocation.QGeoRouteRequest:
-# class PySide2.QtLocation.QGeoRouteRequest.FeatureType:
-# class PySide2.QtLocation.QGeoRouteRequest.FeatureTypes:
-# class PySide2.QtLocation.QGeoRouteRequest.FeatureWeight:
-# class PySide2.QtLocation.QGeoRouteRequest.FeatureWeights:
-# class PySide2.QtLocation.QGeoRouteRequest.ManeuverDetail:
-# class PySide2.QtLocation.QGeoRouteRequest.ManeuverDetails:
-# class PySide2.QtLocation.QGeoRouteRequest.RouteOptimization:
-# class PySide2.QtLocation.QGeoRouteRequest.RouteOptimizations:
-# class PySide2.QtLocation.QGeoRouteRequest.SegmentDetail:
-# class PySide2.QtLocation.QGeoRouteRequest.SegmentDetails:
-# class PySide2.QtLocation.QGeoRouteRequest.TravelMode:
-# class PySide2.QtLocation.QGeoRouteRequest.TravelModes:
- "PySide2.QtLocation.QGeoRouteRequest.__init__": [('PySide2.QtLocation.QGeoRouteRequest',), ('PySide2.QtPositioning.QGeoCoordinate', 'PySide2.QtPositioning.QGeoCoordinate'), ('typing.Sequence[PySide2.QtPositioning.QGeoCoordinate]',)],
- "PySide2.QtLocation.QGeoRouteRequest.departureTime": (),
- "PySide2.QtLocation.QGeoRouteRequest.excludeAreas": (),
- "PySide2.QtLocation.QGeoRouteRequest.extraParameters": (),
- "PySide2.QtLocation.QGeoRouteRequest.featureTypes": (),
- "PySide2.QtLocation.QGeoRouteRequest.featureWeight": ('PySide2.QtLocation.QGeoRouteRequest.FeatureType',),
- "PySide2.QtLocation.QGeoRouteRequest.maneuverDetail": (),
- "PySide2.QtLocation.QGeoRouteRequest.numberAlternativeRoutes": (),
- "PySide2.QtLocation.QGeoRouteRequest.routeOptimization": (),
- "PySide2.QtLocation.QGeoRouteRequest.segmentDetail": (),
- "PySide2.QtLocation.QGeoRouteRequest.setDepartureTime": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtLocation.QGeoRouteRequest.setExcludeAreas": ('typing.Sequence[PySide2.QtPositioning.QGeoRectangle]',),
- "PySide2.QtLocation.QGeoRouteRequest.setExtraParameters": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtLocation.QGeoRouteRequest.setFeatureWeight": ('PySide2.QtLocation.QGeoRouteRequest.FeatureType', 'PySide2.QtLocation.QGeoRouteRequest.FeatureWeight'),
- "PySide2.QtLocation.QGeoRouteRequest.setManeuverDetail": ('PySide2.QtLocation.QGeoRouteRequest.ManeuverDetail',),
- "PySide2.QtLocation.QGeoRouteRequest.setNumberAlternativeRoutes": ('int',),
- "PySide2.QtLocation.QGeoRouteRequest.setRouteOptimization": ('PySide2.QtLocation.QGeoRouteRequest.RouteOptimizations',),
- "PySide2.QtLocation.QGeoRouteRequest.setSegmentDetail": ('PySide2.QtLocation.QGeoRouteRequest.SegmentDetail',),
- "PySide2.QtLocation.QGeoRouteRequest.setTravelModes": ('PySide2.QtLocation.QGeoRouteRequest.TravelModes',),
- "PySide2.QtLocation.QGeoRouteRequest.setWaypoints": ('typing.Sequence[PySide2.QtPositioning.QGeoCoordinate]',),
- "PySide2.QtLocation.QGeoRouteRequest.setWaypointsMetadata": ('typing.Sequence[typing.Dict]',),
- "PySide2.QtLocation.QGeoRouteRequest.travelModes": (),
- "PySide2.QtLocation.QGeoRouteRequest.waypoints": (),
- "PySide2.QtLocation.QGeoRouteRequest.waypointsMetadata": (),
-# class PySide2.QtLocation.QGeoRouteSegment:
- "PySide2.QtLocation.QGeoRouteSegment.__init__": [(), ('PySide2.QtLocation.QGeoRouteSegment',)],
- "PySide2.QtLocation.QGeoRouteSegment.__copy__": (),
- "PySide2.QtLocation.QGeoRouteSegment.distance": (),
- "PySide2.QtLocation.QGeoRouteSegment.isLegLastSegment": (),
- "PySide2.QtLocation.QGeoRouteSegment.isValid": (),
- "PySide2.QtLocation.QGeoRouteSegment.maneuver": (),
- "PySide2.QtLocation.QGeoRouteSegment.nextRouteSegment": (),
- "PySide2.QtLocation.QGeoRouteSegment.path": (),
- "PySide2.QtLocation.QGeoRouteSegment.setDistance": ('float',),
- "PySide2.QtLocation.QGeoRouteSegment.setManeuver": ('PySide2.QtLocation.QGeoManeuver',),
- "PySide2.QtLocation.QGeoRouteSegment.setNextRouteSegment": ('PySide2.QtLocation.QGeoRouteSegment',),
- "PySide2.QtLocation.QGeoRouteSegment.setPath": ('typing.Sequence[PySide2.QtPositioning.QGeoCoordinate]',),
- "PySide2.QtLocation.QGeoRouteSegment.setTravelTime": ('int',),
- "PySide2.QtLocation.QGeoRouteSegment.travelTime": (),
-# class PySide2.QtLocation.QGeoRoutingManager:
- "PySide2.QtLocation.QGeoRoutingManager.calculateRoute": ('PySide2.QtLocation.QGeoRouteRequest',),
- "PySide2.QtLocation.QGeoRoutingManager.locale": (),
- "PySide2.QtLocation.QGeoRoutingManager.managerName": (),
- "PySide2.QtLocation.QGeoRoutingManager.managerVersion": (),
- "PySide2.QtLocation.QGeoRoutingManager.measurementSystem": (),
- "PySide2.QtLocation.QGeoRoutingManager.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtLocation.QGeoRoutingManager.setMeasurementSystem": ('PySide2.QtCore.QLocale.MeasurementSystem',),
- "PySide2.QtLocation.QGeoRoutingManager.supportedFeatureTypes": (),
- "PySide2.QtLocation.QGeoRoutingManager.supportedFeatureWeights": (),
- "PySide2.QtLocation.QGeoRoutingManager.supportedManeuverDetails": (),
- "PySide2.QtLocation.QGeoRoutingManager.supportedRouteOptimizations": (),
- "PySide2.QtLocation.QGeoRoutingManager.supportedSegmentDetails": (),
- "PySide2.QtLocation.QGeoRoutingManager.supportedTravelModes": (),
- "PySide2.QtLocation.QGeoRoutingManager.updateRoute": ('PySide2.QtLocation.QGeoRoute', 'PySide2.QtPositioning.QGeoCoordinate'),
-# class PySide2.QtLocation.QGeoRoutingManagerEngine:
- "PySide2.QtLocation.QGeoRoutingManagerEngine.__init__": ('typing.Dict[str, typing.Any]', 'PySide2.QtCore.QObject'),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.calculateRoute": ('PySide2.QtLocation.QGeoRouteRequest',),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.locale": (),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.managerName": (),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.managerVersion": (),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.measurementSystem": (),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.setMeasurementSystem": ('PySide2.QtCore.QLocale.MeasurementSystem',),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.setSupportedFeatureTypes": ('PySide2.QtLocation.QGeoRouteRequest.FeatureTypes',),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.setSupportedFeatureWeights": ('PySide2.QtLocation.QGeoRouteRequest.FeatureWeights',),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.setSupportedManeuverDetails": ('PySide2.QtLocation.QGeoRouteRequest.ManeuverDetails',),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.setSupportedRouteOptimizations": ('PySide2.QtLocation.QGeoRouteRequest.RouteOptimizations',),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.setSupportedSegmentDetails": ('PySide2.QtLocation.QGeoRouteRequest.SegmentDetails',),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.setSupportedTravelModes": ('PySide2.QtLocation.QGeoRouteRequest.TravelModes',),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.supportedFeatureTypes": (),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.supportedFeatureWeights": (),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.supportedManeuverDetails": (),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.supportedRouteOptimizations": (),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.supportedSegmentDetails": (),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.supportedTravelModes": (),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.updateRoute": ('PySide2.QtLocation.QGeoRoute', 'PySide2.QtPositioning.QGeoCoordinate'),
-# class PySide2.QtLocation.QGeoServiceProvider:
-# class PySide2.QtLocation.QGeoServiceProvider.Error:
-# class PySide2.QtLocation.QGeoServiceProvider.GeocodingFeature:
-# class PySide2.QtLocation.QGeoServiceProvider.GeocodingFeatures:
-# class PySide2.QtLocation.QGeoServiceProvider.MappingFeature:
-# class PySide2.QtLocation.QGeoServiceProvider.MappingFeatures:
-# class PySide2.QtLocation.QGeoServiceProvider.NavigationFeature:
-# class PySide2.QtLocation.QGeoServiceProvider.NavigationFeatures:
-# class PySide2.QtLocation.QGeoServiceProvider.PlacesFeature:
-# class PySide2.QtLocation.QGeoServiceProvider.PlacesFeatures:
-# class PySide2.QtLocation.QGeoServiceProvider.RoutingFeature:
-# class PySide2.QtLocation.QGeoServiceProvider.RoutingFeatures:
- "PySide2.QtLocation.QGeoServiceProvider.__init__": ('str', 'typing.Dict[str, typing.Any]', 'bool'),
- "PySide2.QtLocation.QGeoServiceProvider.availableServiceProviders": (),
- "PySide2.QtLocation.QGeoServiceProvider.error": (),
- "PySide2.QtLocation.QGeoServiceProvider.errorString": (),
- "PySide2.QtLocation.QGeoServiceProvider.geocodingError": (),
- "PySide2.QtLocation.QGeoServiceProvider.geocodingErrorString": (),
- "PySide2.QtLocation.QGeoServiceProvider.geocodingFeatures": (),
- "PySide2.QtLocation.QGeoServiceProvider.geocodingManager": (),
- "PySide2.QtLocation.QGeoServiceProvider.mappingError": (),
- "PySide2.QtLocation.QGeoServiceProvider.mappingErrorString": (),
- "PySide2.QtLocation.QGeoServiceProvider.mappingFeatures": (),
- "PySide2.QtLocation.QGeoServiceProvider.navigationError": (),
- "PySide2.QtLocation.QGeoServiceProvider.navigationErrorString": (),
- "PySide2.QtLocation.QGeoServiceProvider.navigationFeatures": (),
- "PySide2.QtLocation.QGeoServiceProvider.placeManager": (),
- "PySide2.QtLocation.QGeoServiceProvider.placesError": (),
- "PySide2.QtLocation.QGeoServiceProvider.placesErrorString": (),
- "PySide2.QtLocation.QGeoServiceProvider.placesFeatures": (),
- "PySide2.QtLocation.QGeoServiceProvider.routingError": (),
- "PySide2.QtLocation.QGeoServiceProvider.routingErrorString": (),
- "PySide2.QtLocation.QGeoServiceProvider.routingFeatures": (),
- "PySide2.QtLocation.QGeoServiceProvider.routingManager": (),
- "PySide2.QtLocation.QGeoServiceProvider.setAllowExperimental": ('bool',),
- "PySide2.QtLocation.QGeoServiceProvider.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtLocation.QGeoServiceProvider.setParameters": ('typing.Dict[str, typing.Any]',),
-# class PySide2.QtLocation.QGeoServiceProviderFactory:
- "PySide2.QtLocation.QGeoServiceProviderFactory.__init__": (),
- "PySide2.QtLocation.QGeoServiceProviderFactory.createGeocodingManagerEngine": ('typing.Dict[str, typing.Any]', 'PySide2.QtLocation.QGeoServiceProvider.Error'),
- "PySide2.QtLocation.QGeoServiceProviderFactory.createPlaceManagerEngine": ('typing.Dict[str, typing.Any]', 'PySide2.QtLocation.QGeoServiceProvider.Error'),
- "PySide2.QtLocation.QGeoServiceProviderFactory.createRoutingManagerEngine": ('typing.Dict[str, typing.Any]', 'PySide2.QtLocation.QGeoServiceProvider.Error'),
-# class PySide2.QtLocation.QGeoServiceProviderFactoryV2:
- "PySide2.QtLocation.QGeoServiceProviderFactoryV2.__init__": (),
-# class PySide2.QtLocation.QPlace:
- "PySide2.QtLocation.QPlace.__init__": [(), ('PySide2.QtLocation.QPlace',)],
- "PySide2.QtLocation.QPlace.__copy__": (),
- "PySide2.QtLocation.QPlace.appendContactDetail": ('str', 'PySide2.QtLocation.QPlaceContactDetail'),
- "PySide2.QtLocation.QPlace.attribution": (),
- "PySide2.QtLocation.QPlace.categories": (),
- "PySide2.QtLocation.QPlace.contactDetails": ('str',),
- "PySide2.QtLocation.QPlace.contactTypes": (),
- "PySide2.QtLocation.QPlace.content": ('PySide2.QtLocation.QPlaceContent.Type',),
- "PySide2.QtLocation.QPlace.detailsFetched": (),
- "PySide2.QtLocation.QPlace.extendedAttribute": ('str',),
- "PySide2.QtLocation.QPlace.extendedAttributeTypes": (),
- "PySide2.QtLocation.QPlace.icon": (),
- "PySide2.QtLocation.QPlace.insertContent": ('PySide2.QtLocation.QPlaceContent.Type', 'typing.Dict[int, PySide2.QtLocation.QPlaceContent]'),
- "PySide2.QtLocation.QPlace.isEmpty": (),
- "PySide2.QtLocation.QPlace.location": (),
- "PySide2.QtLocation.QPlace.name": (),
- "PySide2.QtLocation.QPlace.placeId": (),
- "PySide2.QtLocation.QPlace.primaryEmail": (),
- "PySide2.QtLocation.QPlace.primaryFax": (),
- "PySide2.QtLocation.QPlace.primaryPhone": (),
- "PySide2.QtLocation.QPlace.primaryWebsite": (),
- "PySide2.QtLocation.QPlace.ratings": (),
- "PySide2.QtLocation.QPlace.removeContactDetails": ('str',),
- "PySide2.QtLocation.QPlace.removeExtendedAttribute": ('str',),
- "PySide2.QtLocation.QPlace.setAttribution": ('str',),
- "PySide2.QtLocation.QPlace.setCategories": ('typing.Sequence[PySide2.QtLocation.QPlaceCategory]',),
- "PySide2.QtLocation.QPlace.setCategory": ('PySide2.QtLocation.QPlaceCategory',),
- "PySide2.QtLocation.QPlace.setContactDetails": ('str', 'typing.Sequence[PySide2.QtLocation.QPlaceContactDetail]'),
- "PySide2.QtLocation.QPlace.setContent": ('PySide2.QtLocation.QPlaceContent.Type', 'typing.Dict[int, PySide2.QtLocation.QPlaceContent]'),
- "PySide2.QtLocation.QPlace.setDetailsFetched": ('bool',),
- "PySide2.QtLocation.QPlace.setExtendedAttribute": ('str', 'PySide2.QtLocation.QPlaceAttribute'),
- "PySide2.QtLocation.QPlace.setIcon": ('PySide2.QtLocation.QPlaceIcon',),
- "PySide2.QtLocation.QPlace.setLocation": ('PySide2.QtPositioning.QGeoLocation',),
- "PySide2.QtLocation.QPlace.setName": ('str',),
- "PySide2.QtLocation.QPlace.setPlaceId": ('str',),
- "PySide2.QtLocation.QPlace.setRatings": ('PySide2.QtLocation.QPlaceRatings',),
- "PySide2.QtLocation.QPlace.setSupplier": ('PySide2.QtLocation.QPlaceSupplier',),
- "PySide2.QtLocation.QPlace.setTotalContentCount": ('PySide2.QtLocation.QPlaceContent.Type', 'int'),
- "PySide2.QtLocation.QPlace.supplier": (),
- "PySide2.QtLocation.QPlace.totalContentCount": ('PySide2.QtLocation.QPlaceContent.Type',),
-# class PySide2.QtLocation.QPlaceAttribute:
- "PySide2.QtLocation.QPlaceAttribute.__init__": [(), ('PySide2.QtLocation.QPlaceAttribute',)],
- "PySide2.QtLocation.QPlaceAttribute.__copy__": (),
- "PySide2.QtLocation.QPlaceAttribute.isEmpty": (),
- "PySide2.QtLocation.QPlaceAttribute.label": (),
- "PySide2.QtLocation.QPlaceAttribute.setLabel": ('str',),
- "PySide2.QtLocation.QPlaceAttribute.setText": ('str',),
- "PySide2.QtLocation.QPlaceAttribute.text": (),
-# class PySide2.QtLocation.QPlaceCategory:
- "PySide2.QtLocation.QPlaceCategory.__init__": [(), ('PySide2.QtLocation.QPlaceCategory',)],
- "PySide2.QtLocation.QPlaceCategory.__copy__": (),
- "PySide2.QtLocation.QPlaceCategory.categoryId": (),
- "PySide2.QtLocation.QPlaceCategory.icon": (),
- "PySide2.QtLocation.QPlaceCategory.isEmpty": (),
- "PySide2.QtLocation.QPlaceCategory.name": (),
- "PySide2.QtLocation.QPlaceCategory.setCategoryId": ('str',),
- "PySide2.QtLocation.QPlaceCategory.setIcon": ('PySide2.QtLocation.QPlaceIcon',),
- "PySide2.QtLocation.QPlaceCategory.setName": ('str',),
-# class PySide2.QtLocation.QPlaceContactDetail:
- "PySide2.QtLocation.QPlaceContactDetail.__init__": [(), ('PySide2.QtLocation.QPlaceContactDetail',)],
- "PySide2.QtLocation.QPlaceContactDetail.__copy__": (),
- "PySide2.QtLocation.QPlaceContactDetail.clear": (),
- "PySide2.QtLocation.QPlaceContactDetail.label": (),
- "PySide2.QtLocation.QPlaceContactDetail.setLabel": ('str',),
- "PySide2.QtLocation.QPlaceContactDetail.setValue": ('str',),
- "PySide2.QtLocation.QPlaceContactDetail.value": (),
-# class PySide2.QtLocation.QPlaceContent:
-# class PySide2.QtLocation.QPlaceContent.Type:
- "PySide2.QtLocation.QPlaceContent.__init__": [(), ('PySide2.QtLocation.QPlaceContent',)],
- "PySide2.QtLocation.QPlaceContent.__copy__": (),
- "PySide2.QtLocation.QPlaceContent.attribution": (),
- "PySide2.QtLocation.QPlaceContent.setAttribution": ('str',),
- "PySide2.QtLocation.QPlaceContent.setSupplier": ('PySide2.QtLocation.QPlaceSupplier',),
- "PySide2.QtLocation.QPlaceContent.setUser": ('PySide2.QtLocation.QPlaceUser',),
- "PySide2.QtLocation.QPlaceContent.supplier": (),
- "PySide2.QtLocation.QPlaceContent.type": (),
- "PySide2.QtLocation.QPlaceContent.user": (),
-# class PySide2.QtLocation.QPlaceContentReply:
- "PySide2.QtLocation.QPlaceContentReply.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtLocation.QPlaceContentReply.content": (),
- "PySide2.QtLocation.QPlaceContentReply.nextPageRequest": (),
- "PySide2.QtLocation.QPlaceContentReply.previousPageRequest": (),
- "PySide2.QtLocation.QPlaceContentReply.request": (),
- "PySide2.QtLocation.QPlaceContentReply.setContent": ('typing.Dict[int, PySide2.QtLocation.QPlaceContent]',),
- "PySide2.QtLocation.QPlaceContentReply.setNextPageRequest": ('PySide2.QtLocation.QPlaceContentRequest',),
- "PySide2.QtLocation.QPlaceContentReply.setPreviousPageRequest": ('PySide2.QtLocation.QPlaceContentRequest',),
- "PySide2.QtLocation.QPlaceContentReply.setRequest": ('PySide2.QtLocation.QPlaceContentRequest',),
- "PySide2.QtLocation.QPlaceContentReply.setTotalCount": ('int',),
- "PySide2.QtLocation.QPlaceContentReply.totalCount": (),
- "PySide2.QtLocation.QPlaceContentReply.type": (),
-# class PySide2.QtLocation.QPlaceContentRequest:
- "PySide2.QtLocation.QPlaceContentRequest.__init__": [(), ('PySide2.QtLocation.QPlaceContentRequest',)],
- "PySide2.QtLocation.QPlaceContentRequest.__copy__": (),
- "PySide2.QtLocation.QPlaceContentRequest.clear": (),
- "PySide2.QtLocation.QPlaceContentRequest.contentContext": (),
- "PySide2.QtLocation.QPlaceContentRequest.contentType": (),
- "PySide2.QtLocation.QPlaceContentRequest.limit": (),
- "PySide2.QtLocation.QPlaceContentRequest.placeId": (),
- "PySide2.QtLocation.QPlaceContentRequest.setContentContext": ('typing.Any',),
- "PySide2.QtLocation.QPlaceContentRequest.setContentType": ('PySide2.QtLocation.QPlaceContent.Type',),
- "PySide2.QtLocation.QPlaceContentRequest.setLimit": ('int',),
- "PySide2.QtLocation.QPlaceContentRequest.setPlaceId": ('str',),
-# class PySide2.QtLocation.QPlaceDetailsReply:
- "PySide2.QtLocation.QPlaceDetailsReply.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtLocation.QPlaceDetailsReply.place": (),
- "PySide2.QtLocation.QPlaceDetailsReply.setPlace": ('PySide2.QtLocation.QPlace',),
- "PySide2.QtLocation.QPlaceDetailsReply.type": (),
-# class PySide2.QtLocation.QPlaceEditorial:
- "PySide2.QtLocation.QPlaceEditorial.__init__": [(), ('PySide2.QtLocation.QPlaceContent',)],
- "PySide2.QtLocation.QPlaceEditorial.language": (),
- "PySide2.QtLocation.QPlaceEditorial.setLanguage": ('str',),
- "PySide2.QtLocation.QPlaceEditorial.setText": ('str',),
- "PySide2.QtLocation.QPlaceEditorial.setTitle": ('str',),
- "PySide2.QtLocation.QPlaceEditorial.text": (),
- "PySide2.QtLocation.QPlaceEditorial.title": (),
-# class PySide2.QtLocation.QPlaceIcon:
- "PySide2.QtLocation.QPlaceIcon.__init__": [(), ('PySide2.QtLocation.QPlaceIcon',)],
- "PySide2.QtLocation.QPlaceIcon.__copy__": (),
- "PySide2.QtLocation.QPlaceIcon.isEmpty": (),
- "PySide2.QtLocation.QPlaceIcon.manager": (),
- "PySide2.QtLocation.QPlaceIcon.parameters": (),
- "PySide2.QtLocation.QPlaceIcon.setManager": ('PySide2.QtLocation.QPlaceManager',),
- "PySide2.QtLocation.QPlaceIcon.setParameters": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtLocation.QPlaceIcon.url": ('PySide2.QtCore.QSize',),
-# class PySide2.QtLocation.QPlaceIdReply:
-# class PySide2.QtLocation.QPlaceIdReply.OperationType:
- "PySide2.QtLocation.QPlaceIdReply.__init__": ('PySide2.QtLocation.QPlaceIdReply.OperationType', 'PySide2.QtCore.QObject'),
- "PySide2.QtLocation.QPlaceIdReply.id": (),
- "PySide2.QtLocation.QPlaceIdReply.operationType": (),
- "PySide2.QtLocation.QPlaceIdReply.setId": ('str',),
- "PySide2.QtLocation.QPlaceIdReply.type": (),
-# class PySide2.QtLocation.QPlaceImage:
- "PySide2.QtLocation.QPlaceImage.__init__": [(), ('PySide2.QtLocation.QPlaceContent',)],
- "PySide2.QtLocation.QPlaceImage.imageId": (),
- "PySide2.QtLocation.QPlaceImage.mimeType": (),
- "PySide2.QtLocation.QPlaceImage.setImageId": ('str',),
- "PySide2.QtLocation.QPlaceImage.setMimeType": ('str',),
- "PySide2.QtLocation.QPlaceImage.setUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtLocation.QPlaceImage.url": (),
-# class PySide2.QtLocation.QPlaceManager:
- "PySide2.QtLocation.QPlaceManager.category": ('str',),
- "PySide2.QtLocation.QPlaceManager.childCategories": ('str',),
- "PySide2.QtLocation.QPlaceManager.childCategoryIds": ('str',),
- "PySide2.QtLocation.QPlaceManager.compatiblePlace": ('PySide2.QtLocation.QPlace',),
- "PySide2.QtLocation.QPlaceManager.getPlaceContent": ('PySide2.QtLocation.QPlaceContentRequest',),
- "PySide2.QtLocation.QPlaceManager.getPlaceDetails": ('str',),
- "PySide2.QtLocation.QPlaceManager.initializeCategories": (),
- "PySide2.QtLocation.QPlaceManager.locales": (),
- "PySide2.QtLocation.QPlaceManager.managerName": (),
- "PySide2.QtLocation.QPlaceManager.managerVersion": (),
- "PySide2.QtLocation.QPlaceManager.matchingPlaces": ('PySide2.QtLocation.QPlaceMatchRequest',),
- "PySide2.QtLocation.QPlaceManager.parentCategoryId": ('str',),
- "PySide2.QtLocation.QPlaceManager.removeCategory": ('str',),
- "PySide2.QtLocation.QPlaceManager.removePlace": ('str',),
- "PySide2.QtLocation.QPlaceManager.saveCategory": ('PySide2.QtLocation.QPlaceCategory', 'str'),
- "PySide2.QtLocation.QPlaceManager.savePlace": ('PySide2.QtLocation.QPlace',),
- "PySide2.QtLocation.QPlaceManager.search": ('PySide2.QtLocation.QPlaceSearchRequest',),
- "PySide2.QtLocation.QPlaceManager.searchSuggestions": ('PySide2.QtLocation.QPlaceSearchRequest',),
- "PySide2.QtLocation.QPlaceManager.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtLocation.QPlaceManager.setLocales": ('typing.Sequence[PySide2.QtCore.QLocale]',),
-# class PySide2.QtLocation.QPlaceManagerEngine:
- "PySide2.QtLocation.QPlaceManagerEngine.__init__": ('typing.Dict[str, typing.Any]', 'PySide2.QtCore.QObject'),
- "PySide2.QtLocation.QPlaceManagerEngine.category": ('str',),
- "PySide2.QtLocation.QPlaceManagerEngine.childCategories": ('str',),
- "PySide2.QtLocation.QPlaceManagerEngine.childCategoryIds": ('str',),
- "PySide2.QtLocation.QPlaceManagerEngine.compatiblePlace": ('PySide2.QtLocation.QPlace',),
- "PySide2.QtLocation.QPlaceManagerEngine.constructIconUrl": ('PySide2.QtLocation.QPlaceIcon', 'PySide2.QtCore.QSize'),
- "PySide2.QtLocation.QPlaceManagerEngine.getPlaceContent": ('PySide2.QtLocation.QPlaceContentRequest',),
- "PySide2.QtLocation.QPlaceManagerEngine.getPlaceDetails": ('str',),
- "PySide2.QtLocation.QPlaceManagerEngine.initializeCategories": (),
- "PySide2.QtLocation.QPlaceManagerEngine.locales": (),
- "PySide2.QtLocation.QPlaceManagerEngine.manager": (),
- "PySide2.QtLocation.QPlaceManagerEngine.managerName": (),
- "PySide2.QtLocation.QPlaceManagerEngine.managerVersion": (),
- "PySide2.QtLocation.QPlaceManagerEngine.matchingPlaces": ('PySide2.QtLocation.QPlaceMatchRequest',),
- "PySide2.QtLocation.QPlaceManagerEngine.parentCategoryId": ('str',),
- "PySide2.QtLocation.QPlaceManagerEngine.removeCategory": ('str',),
- "PySide2.QtLocation.QPlaceManagerEngine.removePlace": ('str',),
- "PySide2.QtLocation.QPlaceManagerEngine.saveCategory": ('PySide2.QtLocation.QPlaceCategory', 'str'),
- "PySide2.QtLocation.QPlaceManagerEngine.savePlace": ('PySide2.QtLocation.QPlace',),
- "PySide2.QtLocation.QPlaceManagerEngine.search": ('PySide2.QtLocation.QPlaceSearchRequest',),
- "PySide2.QtLocation.QPlaceManagerEngine.searchSuggestions": ('PySide2.QtLocation.QPlaceSearchRequest',),
- "PySide2.QtLocation.QPlaceManagerEngine.setLocales": ('typing.Sequence[PySide2.QtCore.QLocale]',),
-# class PySide2.QtLocation.QPlaceMatchReply:
- "PySide2.QtLocation.QPlaceMatchReply.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtLocation.QPlaceMatchReply.places": (),
- "PySide2.QtLocation.QPlaceMatchReply.request": (),
- "PySide2.QtLocation.QPlaceMatchReply.setPlaces": ('typing.Sequence[PySide2.QtLocation.QPlace]',),
- "PySide2.QtLocation.QPlaceMatchReply.setRequest": ('PySide2.QtLocation.QPlaceMatchRequest',),
- "PySide2.QtLocation.QPlaceMatchReply.type": (),
-# class PySide2.QtLocation.QPlaceMatchRequest:
- "PySide2.QtLocation.QPlaceMatchRequest.__init__": [(), ('PySide2.QtLocation.QPlaceMatchRequest',)],
- "PySide2.QtLocation.QPlaceMatchRequest.__copy__": (),
- "PySide2.QtLocation.QPlaceMatchRequest.clear": (),
- "PySide2.QtLocation.QPlaceMatchRequest.parameters": (),
- "PySide2.QtLocation.QPlaceMatchRequest.places": (),
- "PySide2.QtLocation.QPlaceMatchRequest.setParameters": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtLocation.QPlaceMatchRequest.setPlaces": ('typing.Sequence[PySide2.QtLocation.QPlace]',),
- "PySide2.QtLocation.QPlaceMatchRequest.setResults": ('typing.Sequence[PySide2.QtLocation.QPlaceSearchResult]',),
-# class PySide2.QtLocation.QPlaceProposedSearchResult:
- "PySide2.QtLocation.QPlaceProposedSearchResult.__init__": [(), ('PySide2.QtLocation.QPlaceSearchResult',)],
- "PySide2.QtLocation.QPlaceProposedSearchResult.searchRequest": (),
- "PySide2.QtLocation.QPlaceProposedSearchResult.setSearchRequest": ('PySide2.QtLocation.QPlaceSearchRequest',),
-# class PySide2.QtLocation.QPlaceRatings:
- "PySide2.QtLocation.QPlaceRatings.__init__": [(), ('PySide2.QtLocation.QPlaceRatings',)],
- "PySide2.QtLocation.QPlaceRatings.__copy__": (),
- "PySide2.QtLocation.QPlaceRatings.average": (),
- "PySide2.QtLocation.QPlaceRatings.count": (),
- "PySide2.QtLocation.QPlaceRatings.isEmpty": (),
- "PySide2.QtLocation.QPlaceRatings.maximum": (),
- "PySide2.QtLocation.QPlaceRatings.setAverage": ('float',),
- "PySide2.QtLocation.QPlaceRatings.setCount": ('int',),
- "PySide2.QtLocation.QPlaceRatings.setMaximum": ('float',),
-# class PySide2.QtLocation.QPlaceReply:
-# class PySide2.QtLocation.QPlaceReply.Error:
-# class PySide2.QtLocation.QPlaceReply.Type:
- "PySide2.QtLocation.QPlaceReply.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtLocation.QPlaceReply.abort": (),
- "PySide2.QtLocation.QPlaceReply.error": (),
- "PySide2.QtLocation.QPlaceReply.errorString": (),
- "PySide2.QtLocation.QPlaceReply.isFinished": (),
- "PySide2.QtLocation.QPlaceReply.setError": ('PySide2.QtLocation.QPlaceReply.Error', 'str'),
- "PySide2.QtLocation.QPlaceReply.setFinished": ('bool',),
- "PySide2.QtLocation.QPlaceReply.type": (),
-# class PySide2.QtLocation.QPlaceResult:
- "PySide2.QtLocation.QPlaceResult.__init__": [(), ('PySide2.QtLocation.QPlaceSearchResult',)],
- "PySide2.QtLocation.QPlaceResult.distance": (),
- "PySide2.QtLocation.QPlaceResult.isSponsored": (),
- "PySide2.QtLocation.QPlaceResult.place": (),
- "PySide2.QtLocation.QPlaceResult.setDistance": ('float',),
- "PySide2.QtLocation.QPlaceResult.setPlace": ('PySide2.QtLocation.QPlace',),
- "PySide2.QtLocation.QPlaceResult.setSponsored": ('bool',),
-# class PySide2.QtLocation.QPlaceReview:
- "PySide2.QtLocation.QPlaceReview.__init__": [(), ('PySide2.QtLocation.QPlaceContent',)],
- "PySide2.QtLocation.QPlaceReview.dateTime": (),
- "PySide2.QtLocation.QPlaceReview.language": (),
- "PySide2.QtLocation.QPlaceReview.rating": (),
- "PySide2.QtLocation.QPlaceReview.reviewId": (),
- "PySide2.QtLocation.QPlaceReview.setDateTime": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtLocation.QPlaceReview.setLanguage": ('str',),
- "PySide2.QtLocation.QPlaceReview.setRating": ('float',),
- "PySide2.QtLocation.QPlaceReview.setReviewId": ('str',),
- "PySide2.QtLocation.QPlaceReview.setText": ('str',),
- "PySide2.QtLocation.QPlaceReview.setTitle": ('str',),
- "PySide2.QtLocation.QPlaceReview.text": (),
- "PySide2.QtLocation.QPlaceReview.title": (),
-# class PySide2.QtLocation.QPlaceSearchReply:
- "PySide2.QtLocation.QPlaceSearchReply.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtLocation.QPlaceSearchReply.nextPageRequest": (),
- "PySide2.QtLocation.QPlaceSearchReply.previousPageRequest": (),
- "PySide2.QtLocation.QPlaceSearchReply.request": (),
- "PySide2.QtLocation.QPlaceSearchReply.results": (),
- "PySide2.QtLocation.QPlaceSearchReply.setNextPageRequest": ('PySide2.QtLocation.QPlaceSearchRequest',),
- "PySide2.QtLocation.QPlaceSearchReply.setPreviousPageRequest": ('PySide2.QtLocation.QPlaceSearchRequest',),
- "PySide2.QtLocation.QPlaceSearchReply.setRequest": ('PySide2.QtLocation.QPlaceSearchRequest',),
- "PySide2.QtLocation.QPlaceSearchReply.setResults": ('typing.Sequence[PySide2.QtLocation.QPlaceSearchResult]',),
- "PySide2.QtLocation.QPlaceSearchReply.type": (),
-# class PySide2.QtLocation.QPlaceSearchRequest:
-# class PySide2.QtLocation.QPlaceSearchRequest.RelevanceHint:
- "PySide2.QtLocation.QPlaceSearchRequest.__init__": [(), ('PySide2.QtLocation.QPlaceSearchRequest',)],
- "PySide2.QtLocation.QPlaceSearchRequest.categories": (),
- "PySide2.QtLocation.QPlaceSearchRequest.clear": (),
- "PySide2.QtLocation.QPlaceSearchRequest.limit": (),
- "PySide2.QtLocation.QPlaceSearchRequest.recommendationId": (),
- "PySide2.QtLocation.QPlaceSearchRequest.relevanceHint": (),
- "PySide2.QtLocation.QPlaceSearchRequest.searchArea": (),
- "PySide2.QtLocation.QPlaceSearchRequest.searchContext": (),
- "PySide2.QtLocation.QPlaceSearchRequest.searchTerm": (),
- "PySide2.QtLocation.QPlaceSearchRequest.setCategories": ('typing.Sequence[PySide2.QtLocation.QPlaceCategory]',),
- "PySide2.QtLocation.QPlaceSearchRequest.setCategory": ('PySide2.QtLocation.QPlaceCategory',),
- "PySide2.QtLocation.QPlaceSearchRequest.setLimit": ('int',),
- "PySide2.QtLocation.QPlaceSearchRequest.setRecommendationId": ('str',),
- "PySide2.QtLocation.QPlaceSearchRequest.setRelevanceHint": ('PySide2.QtLocation.QPlaceSearchRequest.RelevanceHint',),
- "PySide2.QtLocation.QPlaceSearchRequest.setSearchArea": ('PySide2.QtPositioning.QGeoShape',),
- "PySide2.QtLocation.QPlaceSearchRequest.setSearchContext": ('typing.Any',),
- "PySide2.QtLocation.QPlaceSearchRequest.setSearchTerm": ('str',),
-# class PySide2.QtLocation.QPlaceSearchResult:
-# class PySide2.QtLocation.QPlaceSearchResult.SearchResultType:
- "PySide2.QtLocation.QPlaceSearchResult.__init__": [(), ('PySide2.QtLocation.QPlaceSearchResult',)],
- "PySide2.QtLocation.QPlaceSearchResult.icon": (),
- "PySide2.QtLocation.QPlaceSearchResult.setIcon": ('PySide2.QtLocation.QPlaceIcon',),
- "PySide2.QtLocation.QPlaceSearchResult.setTitle": ('str',),
- "PySide2.QtLocation.QPlaceSearchResult.title": (),
- "PySide2.QtLocation.QPlaceSearchResult.type": (),
-# class PySide2.QtLocation.QPlaceSearchSuggestionReply:
- "PySide2.QtLocation.QPlaceSearchSuggestionReply.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtLocation.QPlaceSearchSuggestionReply.setSuggestions": ('typing.Sequence[str]',),
- "PySide2.QtLocation.QPlaceSearchSuggestionReply.suggestions": (),
- "PySide2.QtLocation.QPlaceSearchSuggestionReply.type": (),
-# class PySide2.QtLocation.QPlaceSupplier:
- "PySide2.QtLocation.QPlaceSupplier.__init__": [(), ('PySide2.QtLocation.QPlaceSupplier',)],
- "PySide2.QtLocation.QPlaceSupplier.__copy__": (),
- "PySide2.QtLocation.QPlaceSupplier.icon": (),
- "PySide2.QtLocation.QPlaceSupplier.isEmpty": (),
- "PySide2.QtLocation.QPlaceSupplier.name": (),
- "PySide2.QtLocation.QPlaceSupplier.setIcon": ('PySide2.QtLocation.QPlaceIcon',),
- "PySide2.QtLocation.QPlaceSupplier.setName": ('str',),
- "PySide2.QtLocation.QPlaceSupplier.setSupplierId": ('str',),
- "PySide2.QtLocation.QPlaceSupplier.setUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtLocation.QPlaceSupplier.supplierId": (),
- "PySide2.QtLocation.QPlaceSupplier.url": (),
-# class PySide2.QtLocation.QPlaceUser:
- "PySide2.QtLocation.QPlaceUser.__init__": [(), ('PySide2.QtLocation.QPlaceUser',)],
- "PySide2.QtLocation.QPlaceUser.__copy__": (),
- "PySide2.QtLocation.QPlaceUser.name": (),
- "PySide2.QtLocation.QPlaceUser.setName": ('str',),
- "PySide2.QtLocation.QPlaceUser.setUserId": ('str',),
- "PySide2.QtLocation.QPlaceUser.userId": (),
- }) if "PySide2.QtLocation" in sys.modules else None
-# Module PySide2.QtQml
-sig_dict.update({
-# class PySide2.QtQml.ListProperty:
- "PySide2.QtQml.ListProperty.__init__": ('type', 'typing.Callable', 'typing.Callable', 'typing.Callable', 'typing.Callable'),
-# class PySide2.QtQml.QJSEngine:
-# class PySide2.QtQml.QJSEngine.Extension:
-# class PySide2.QtQml.QJSEngine.Extensions:
- "PySide2.QtQml.QJSEngine.__init__": [(), ('PySide2.QtCore.QObject',)],
- "PySide2.QtQml.QJSEngine.collectGarbage": (),
- "PySide2.QtQml.QJSEngine.evaluate": ('str', 'str', 'int'),
- "PySide2.QtQml.QJSEngine.globalObject": (),
- "PySide2.QtQml.QJSEngine.importModule": ('str',),
- "PySide2.QtQml.QJSEngine.installExtensions": ('PySide2.QtQml.QJSEngine.Extensions', 'PySide2.QtQml.QJSValue'),
- "PySide2.QtQml.QJSEngine.installTranslatorFunctions": ('PySide2.QtQml.QJSValue',),
- "PySide2.QtQml.QJSEngine.isInterrupted": (),
- "PySide2.QtQml.QJSEngine.newArray": ('int',),
- "PySide2.QtQml.QJSEngine.newErrorObject": ('PySide2.QtQml.QJSValue.ErrorType', 'str'),
- "PySide2.QtQml.QJSEngine.newObject": (),
- "PySide2.QtQml.QJSEngine.newQMetaObject": ('PySide2.QtCore.QMetaObject',),
- "PySide2.QtQml.QJSEngine.newQObject": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QJSEngine.setInterrupted": ('bool',),
- "PySide2.QtQml.QJSEngine.throwError": [('PySide2.QtQml.QJSValue.ErrorType', 'str'), ('str',)],
- "PySide2.QtQml.QJSEngine.toScriptValue": ('typing.Any',),
-# class PySide2.QtQml.QJSValue:
-# class PySide2.QtQml.QJSValue.ErrorType:
-# class PySide2.QtQml.QJSValue.SpecialValue:
- "PySide2.QtQml.QJSValue.__init__": [('PySide2.QtQml.QJSValue',), ('PySide2.QtQml.QJSValue.SpecialValue',), ('bool',), ('float',), ('int',), ('str',)],
- "PySide2.QtQml.QJSValue.__copy__": (),
- "PySide2.QtQml.QJSValue.call": ('typing.Sequence[PySide2.QtQml.QJSValue]',),
- "PySide2.QtQml.QJSValue.callAsConstructor": ('typing.Sequence[PySide2.QtQml.QJSValue]',),
- "PySide2.QtQml.QJSValue.callWithInstance": ('PySide2.QtQml.QJSValue', 'typing.Sequence[PySide2.QtQml.QJSValue]'),
- "PySide2.QtQml.QJSValue.deleteProperty": ('str',),
- "PySide2.QtQml.QJSValue.engine": (),
- "PySide2.QtQml.QJSValue.equals": ('PySide2.QtQml.QJSValue',),
- "PySide2.QtQml.QJSValue.errorType": (),
- "PySide2.QtQml.QJSValue.hasOwnProperty": ('str',),
- "PySide2.QtQml.QJSValue.hasProperty": ('str',),
- "PySide2.QtQml.QJSValue.isArray": (),
- "PySide2.QtQml.QJSValue.isBool": (),
- "PySide2.QtQml.QJSValue.isCallable": (),
- "PySide2.QtQml.QJSValue.isDate": (),
- "PySide2.QtQml.QJSValue.isError": (),
- "PySide2.QtQml.QJSValue.isNull": (),
- "PySide2.QtQml.QJSValue.isNumber": (),
- "PySide2.QtQml.QJSValue.isObject": (),
- "PySide2.QtQml.QJSValue.isQMetaObject": (),
- "PySide2.QtQml.QJSValue.isQObject": (),
- "PySide2.QtQml.QJSValue.isRegExp": (),
- "PySide2.QtQml.QJSValue.isString": (),
- "PySide2.QtQml.QJSValue.isUndefined": (),
- "PySide2.QtQml.QJSValue.isVariant": (),
- "PySide2.QtQml.QJSValue.property": [('int',), ('str',)],
- "PySide2.QtQml.QJSValue.prototype": (),
- "PySide2.QtQml.QJSValue.setProperty": [('int', 'PySide2.QtQml.QJSValue'), ('str', 'PySide2.QtQml.QJSValue')],
- "PySide2.QtQml.QJSValue.setPrototype": ('PySide2.QtQml.QJSValue',),
- "PySide2.QtQml.QJSValue.strictlyEquals": ('PySide2.QtQml.QJSValue',),
- "PySide2.QtQml.QJSValue.toBool": (),
- "PySide2.QtQml.QJSValue.toDateTime": (),
- "PySide2.QtQml.QJSValue.toInt": (),
- "PySide2.QtQml.QJSValue.toNumber": (),
- "PySide2.QtQml.QJSValue.toQMetaObject": (),
- "PySide2.QtQml.QJSValue.toQObject": (),
- "PySide2.QtQml.QJSValue.toString": (),
- "PySide2.QtQml.QJSValue.toUInt": (),
- "PySide2.QtQml.QJSValue.toVariant": (),
-# class PySide2.QtQml.QJSValueIterator:
- "PySide2.QtQml.QJSValueIterator.__init__": ('PySide2.QtQml.QJSValue',),
- "PySide2.QtQml.QJSValueIterator.hasNext": (),
- "PySide2.QtQml.QJSValueIterator.name": (),
- "PySide2.QtQml.QJSValueIterator.value": (),
-# class PySide2.QtQml.QQmlAbstractUrlInterceptor:
-# class PySide2.QtQml.QQmlAbstractUrlInterceptor.DataType:
- "PySide2.QtQml.QQmlAbstractUrlInterceptor.__init__": (),
- "PySide2.QtQml.QQmlAbstractUrlInterceptor.intercept": ('PySide2.QtCore.QUrl', 'PySide2.QtQml.QQmlAbstractUrlInterceptor.DataType'),
-# class PySide2.QtQml.QQmlApplicationEngine:
- "PySide2.QtQml.QQmlApplicationEngine.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtCore.QUrl', 'PySide2.QtCore.QObject'), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtQml.QQmlApplicationEngine.load": [('PySide2.QtCore.QUrl',), ('str',)],
- "PySide2.QtQml.QQmlApplicationEngine.loadData": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QUrl'),
- "PySide2.QtQml.QQmlApplicationEngine.rootObjects": (),
- "PySide2.QtQml.QQmlApplicationEngine.setInitialProperties": ('typing.Dict[str, typing.Any]',),
-# class PySide2.QtQml.QQmlComponent:
-# class PySide2.QtQml.QQmlComponent.CompilationMode:
-# class PySide2.QtQml.QQmlComponent.Status:
- "PySide2.QtQml.QQmlComponent.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtQml.QQmlEngine', 'PySide2.QtCore.QObject'), ('PySide2.QtQml.QQmlEngine', 'PySide2.QtCore.QUrl', 'PySide2.QtCore.QObject'), ('PySide2.QtQml.QQmlEngine', 'PySide2.QtCore.QUrl', 'PySide2.QtQml.QQmlComponent.CompilationMode', 'PySide2.QtCore.QObject'), ('PySide2.QtQml.QQmlEngine', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtQml.QQmlEngine', 'str', 'PySide2.QtQml.QQmlComponent.CompilationMode', 'PySide2.QtCore.QObject')],
- "PySide2.QtQml.QQmlComponent.beginCreate": ('PySide2.QtQml.QQmlContext',),
- "PySide2.QtQml.QQmlComponent.completeCreate": (),
- "PySide2.QtQml.QQmlComponent.create": [('PySide2.QtQml.QQmlContext',), ('PySide2.QtQml.QQmlIncubator', 'PySide2.QtQml.QQmlContext', 'PySide2.QtQml.QQmlContext')],
- "PySide2.QtQml.QQmlComponent.createWithInitialProperties": ('typing.Dict[str, typing.Any]', 'PySide2.QtQml.QQmlContext'),
- "PySide2.QtQml.QQmlComponent.creationContext": (),
- "PySide2.QtQml.QQmlComponent.engine": (),
- "PySide2.QtQml.QQmlComponent.errorString": (),
- "PySide2.QtQml.QQmlComponent.errors": (),
- "PySide2.QtQml.QQmlComponent.isError": (),
- "PySide2.QtQml.QQmlComponent.isLoading": (),
- "PySide2.QtQml.QQmlComponent.isNull": (),
- "PySide2.QtQml.QQmlComponent.isReady": (),
- "PySide2.QtQml.QQmlComponent.loadUrl": [('PySide2.QtCore.QUrl',), ('PySide2.QtCore.QUrl', 'PySide2.QtQml.QQmlComponent.CompilationMode')],
- "PySide2.QtQml.QQmlComponent.progress": (),
- "PySide2.QtQml.QQmlComponent.setData": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QUrl'),
- "PySide2.QtQml.QQmlComponent.setInitialProperties": ('PySide2.QtCore.QObject', 'typing.Dict[str, typing.Any]'),
- "PySide2.QtQml.QQmlComponent.status": (),
- "PySide2.QtQml.QQmlComponent.url": (),
-# class PySide2.QtQml.QQmlContext:
- "PySide2.QtQml.QQmlContext.__init__": [('PySide2.QtQml.QQmlContext', 'PySide2.QtCore.QObject'), ('PySide2.QtQml.QQmlEngine', 'PySide2.QtCore.QObject')],
- "PySide2.QtQml.QQmlContext.baseUrl": (),
- "PySide2.QtQml.QQmlContext.contextObject": (),
- "PySide2.QtQml.QQmlContext.contextProperty": ('str',),
- "PySide2.QtQml.QQmlContext.engine": (),
- "PySide2.QtQml.QQmlContext.isValid": (),
- "PySide2.QtQml.QQmlContext.nameForObject": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QQmlContext.parentContext": (),
- "PySide2.QtQml.QQmlContext.resolvedUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtQml.QQmlContext.setBaseUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtQml.QQmlContext.setContextObject": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QQmlContext.setContextProperty": [('str', 'PySide2.QtCore.QObject'), ('str', 'typing.Any')],
-# class PySide2.QtQml.QQmlDebuggingEnabler:
-# class PySide2.QtQml.QQmlDebuggingEnabler.StartMode:
- "PySide2.QtQml.QQmlDebuggingEnabler.__init__": ('bool',),
- "PySide2.QtQml.QQmlDebuggingEnabler.connectToLocalDebugger": ('str', 'PySide2.QtQml.QQmlDebuggingEnabler.StartMode'),
- "PySide2.QtQml.QQmlDebuggingEnabler.debuggerServices": (),
- "PySide2.QtQml.QQmlDebuggingEnabler.inspectorServices": (),
- "PySide2.QtQml.QQmlDebuggingEnabler.nativeDebuggerServices": (),
- "PySide2.QtQml.QQmlDebuggingEnabler.profilerServices": (),
- "PySide2.QtQml.QQmlDebuggingEnabler.setServices": ('typing.Sequence[str]',),
- "PySide2.QtQml.QQmlDebuggingEnabler.startDebugConnector": ('str', 'typing.Dict[str, typing.Any]'),
- "PySide2.QtQml.QQmlDebuggingEnabler.startTcpDebugServer": ('int', 'PySide2.QtQml.QQmlDebuggingEnabler.StartMode', 'str'),
-# class PySide2.QtQml.QQmlEngine:
-# class PySide2.QtQml.QQmlEngine.ObjectOwnership:
- "PySide2.QtQml.QQmlEngine.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QQmlEngine.addImageProvider": ('str', 'PySide2.QtQml.QQmlImageProviderBase'),
- "PySide2.QtQml.QQmlEngine.addImportPath": ('str',),
- "PySide2.QtQml.QQmlEngine.addNamedBundle": ('str', 'str'),
- "PySide2.QtQml.QQmlEngine.addPluginPath": ('str',),
- "PySide2.QtQml.QQmlEngine.baseUrl": (),
- "PySide2.QtQml.QQmlEngine.clearComponentCache": (),
- "PySide2.QtQml.QQmlEngine.contextForObject": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QQmlEngine.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtQml.QQmlEngine.imageProvider": ('str',),
- "PySide2.QtQml.QQmlEngine.importPathList": (),
- "PySide2.QtQml.QQmlEngine.importPlugin": ('str', 'str', 'typing.Sequence[PySide2.QtQml.QQmlError]'),
- "PySide2.QtQml.QQmlEngine.incubationController": (),
- "PySide2.QtQml.QQmlEngine.networkAccessManager": (),
- "PySide2.QtQml.QQmlEngine.networkAccessManagerFactory": (),
- "PySide2.QtQml.QQmlEngine.objectOwnership": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QQmlEngine.offlineStorageDatabaseFilePath": ('str',),
- "PySide2.QtQml.QQmlEngine.offlineStoragePath": (),
- "PySide2.QtQml.QQmlEngine.outputWarningsToStandardError": (),
- "PySide2.QtQml.QQmlEngine.pluginPathList": (),
- "PySide2.QtQml.QQmlEngine.removeImageProvider": ('str',),
- "PySide2.QtQml.QQmlEngine.retranslate": (),
- "PySide2.QtQml.QQmlEngine.rootContext": (),
- "PySide2.QtQml.QQmlEngine.setBaseUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtQml.QQmlEngine.setContextForObject": ('PySide2.QtCore.QObject', 'PySide2.QtQml.QQmlContext'),
- "PySide2.QtQml.QQmlEngine.setImportPathList": ('typing.Sequence[str]',),
- "PySide2.QtQml.QQmlEngine.setIncubationController": ('PySide2.QtQml.QQmlIncubationController',),
- "PySide2.QtQml.QQmlEngine.setNetworkAccessManagerFactory": ('PySide2.QtQml.QQmlNetworkAccessManagerFactory',),
- "PySide2.QtQml.QQmlEngine.setObjectOwnership": ('PySide2.QtCore.QObject', 'PySide2.QtQml.QQmlEngine.ObjectOwnership'),
- "PySide2.QtQml.QQmlEngine.setOfflineStoragePath": ('str',),
- "PySide2.QtQml.QQmlEngine.setOutputWarningsToStandardError": ('bool',),
- "PySide2.QtQml.QQmlEngine.setPluginPathList": ('typing.Sequence[str]',),
- "PySide2.QtQml.QQmlEngine.setUrlInterceptor": ('PySide2.QtQml.QQmlAbstractUrlInterceptor',),
- "PySide2.QtQml.QQmlEngine.trimComponentCache": (),
- "PySide2.QtQml.QQmlEngine.urlInterceptor": (),
-# class PySide2.QtQml.QQmlError:
- "PySide2.QtQml.QQmlError.__init__": [(), ('PySide2.QtQml.QQmlError',)],
- "PySide2.QtQml.QQmlError.__copy__": (),
- "PySide2.QtQml.QQmlError.column": (),
- "PySide2.QtQml.QQmlError.description": (),
- "PySide2.QtQml.QQmlError.isValid": (),
- "PySide2.QtQml.QQmlError.line": (),
- "PySide2.QtQml.QQmlError.messageType": (),
- "PySide2.QtQml.QQmlError.object": (),
- "PySide2.QtQml.QQmlError.setColumn": ('int',),
- "PySide2.QtQml.QQmlError.setDescription": ('str',),
- "PySide2.QtQml.QQmlError.setLine": ('int',),
- "PySide2.QtQml.QQmlError.setMessageType": ('PySide2.QtCore.QtMsgType',),
- "PySide2.QtQml.QQmlError.setObject": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QQmlError.setUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtQml.QQmlError.toString": (),
- "PySide2.QtQml.QQmlError.url": (),
-# class PySide2.QtQml.QQmlExpression:
- "PySide2.QtQml.QQmlExpression.__init__": [(), ('PySide2.QtQml.QQmlContext', 'PySide2.QtCore.QObject', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtQml.QQmlScriptString', 'PySide2.QtQml.QQmlContext', 'PySide2.QtCore.QObject', 'PySide2.QtCore.QObject')],
- "PySide2.QtQml.QQmlExpression.clearError": (),
- "PySide2.QtQml.QQmlExpression.columnNumber": (),
- "PySide2.QtQml.QQmlExpression.context": (),
- "PySide2.QtQml.QQmlExpression.engine": (),
- "PySide2.QtQml.QQmlExpression.error": (),
- "PySide2.QtQml.QQmlExpression.evaluate": (),
- "PySide2.QtQml.QQmlExpression.expression": (),
- "PySide2.QtQml.QQmlExpression.hasError": (),
- "PySide2.QtQml.QQmlExpression.lineNumber": (),
- "PySide2.QtQml.QQmlExpression.notifyOnValueChanged": (),
- "PySide2.QtQml.QQmlExpression.scopeObject": (),
- "PySide2.QtQml.QQmlExpression.setExpression": ('str',),
- "PySide2.QtQml.QQmlExpression.setNotifyOnValueChanged": ('bool',),
- "PySide2.QtQml.QQmlExpression.setSourceLocation": ('str', 'int', 'int'),
- "PySide2.QtQml.QQmlExpression.sourceFile": (),
-# class PySide2.QtQml.QQmlExtensionInterface:
- "PySide2.QtQml.QQmlExtensionInterface.__init__": (),
- "PySide2.QtQml.QQmlExtensionInterface.initializeEngine": ('PySide2.QtQml.QQmlEngine', 'str'),
-# class PySide2.QtQml.QQmlExtensionPlugin:
- "PySide2.QtQml.QQmlExtensionPlugin.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QQmlExtensionPlugin.baseUrl": (),
- "PySide2.QtQml.QQmlExtensionPlugin.initializeEngine": ('PySide2.QtQml.QQmlEngine', 'str'),
- "PySide2.QtQml.QQmlExtensionPlugin.registerTypes": ('str',),
-# class PySide2.QtQml.QQmlFile:
-# class PySide2.QtQml.QQmlFile.Status:
- "PySide2.QtQml.QQmlFile.__init__": [(), ('PySide2.QtQml.QQmlEngine', 'PySide2.QtCore.QUrl'), ('PySide2.QtQml.QQmlEngine', 'str')],
- "PySide2.QtQml.QQmlFile.clear": [(), ('PySide2.QtCore.QObject',)],
- "PySide2.QtQml.QQmlFile.connectDownloadProgress": [('PySide2.QtCore.QObject', 'int'), ('PySide2.QtCore.QObject', 'str')],
- "PySide2.QtQml.QQmlFile.connectFinished": [('PySide2.QtCore.QObject', 'int'), ('PySide2.QtCore.QObject', 'str')],
- "PySide2.QtQml.QQmlFile.data": (),
- "PySide2.QtQml.QQmlFile.dataByteArray": (),
- "PySide2.QtQml.QQmlFile.error": (),
- "PySide2.QtQml.QQmlFile.isError": (),
- "PySide2.QtQml.QQmlFile.isLoading": (),
- "PySide2.QtQml.QQmlFile.isLocalFile": [('PySide2.QtCore.QUrl',), ('str',)],
- "PySide2.QtQml.QQmlFile.isNull": (),
- "PySide2.QtQml.QQmlFile.isReady": (),
- "PySide2.QtQml.QQmlFile.isSynchronous": [('PySide2.QtCore.QUrl',), ('str',)],
- "PySide2.QtQml.QQmlFile.load": [('PySide2.QtQml.QQmlEngine', 'PySide2.QtCore.QUrl'), ('PySide2.QtQml.QQmlEngine', 'str')],
- "PySide2.QtQml.QQmlFile.size": (),
- "PySide2.QtQml.QQmlFile.status": (),
- "PySide2.QtQml.QQmlFile.url": (),
- "PySide2.QtQml.QQmlFile.urlToLocalFileOrQrc": [('PySide2.QtCore.QUrl',), ('str',)],
-# class PySide2.QtQml.QQmlFileSelector:
- "PySide2.QtQml.QQmlFileSelector.__init__": ('PySide2.QtQml.QQmlEngine', 'PySide2.QtCore.QObject'),
- "PySide2.QtQml.QQmlFileSelector.get": ('PySide2.QtQml.QQmlEngine',),
- "PySide2.QtQml.QQmlFileSelector.selector": (),
- "PySide2.QtQml.QQmlFileSelector.setExtraSelectors": ('typing.Sequence[str]',),
- "PySide2.QtQml.QQmlFileSelector.setSelector": ('PySide2.QtCore.QFileSelector',),
-# class PySide2.QtQml.QQmlImageProviderBase:
-# class PySide2.QtQml.QQmlImageProviderBase.Flag:
-# class PySide2.QtQml.QQmlImageProviderBase.Flags:
-# class PySide2.QtQml.QQmlImageProviderBase.ImageType:
- "PySide2.QtQml.QQmlImageProviderBase.flags": (),
- "PySide2.QtQml.QQmlImageProviderBase.imageType": (),
-# class PySide2.QtQml.QQmlIncubationController:
- "PySide2.QtQml.QQmlIncubationController.__init__": (),
- "PySide2.QtQml.QQmlIncubationController.engine": (),
- "PySide2.QtQml.QQmlIncubationController.incubateFor": ('int',),
- "PySide2.QtQml.QQmlIncubationController.incubateWhile": ('int',),
- "PySide2.QtQml.QQmlIncubationController.incubatingObjectCount": (),
- "PySide2.QtQml.QQmlIncubationController.incubatingObjectCountChanged": ('int',),
-# class PySide2.QtQml.QQmlIncubator:
-# class PySide2.QtQml.QQmlIncubator.IncubationMode:
-# class PySide2.QtQml.QQmlIncubator.Status:
- "PySide2.QtQml.QQmlIncubator.__init__": ('PySide2.QtQml.QQmlIncubator.IncubationMode',),
- "PySide2.QtQml.QQmlIncubator.clear": (),
- "PySide2.QtQml.QQmlIncubator.errors": (),
- "PySide2.QtQml.QQmlIncubator.forceCompletion": (),
- "PySide2.QtQml.QQmlIncubator.incubationMode": (),
- "PySide2.QtQml.QQmlIncubator.isError": (),
- "PySide2.QtQml.QQmlIncubator.isLoading": (),
- "PySide2.QtQml.QQmlIncubator.isNull": (),
- "PySide2.QtQml.QQmlIncubator.isReady": (),
- "PySide2.QtQml.QQmlIncubator.object": (),
- "PySide2.QtQml.QQmlIncubator.setInitialState": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QQmlIncubator.status": (),
- "PySide2.QtQml.QQmlIncubator.statusChanged": ('PySide2.QtQml.QQmlIncubator.Status',),
-# class PySide2.QtQml.QQmlListReference:
- "PySide2.QtQml.QQmlListReference.__init__": [(), ('PySide2.QtCore.QObject', 'str', 'PySide2.QtQml.QQmlEngine'), ('PySide2.QtQml.QQmlListReference',)],
- "PySide2.QtQml.QQmlListReference.__copy__": (),
- "PySide2.QtQml.QQmlListReference.append": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QQmlListReference.at": ('int',),
- "PySide2.QtQml.QQmlListReference.canAppend": (),
- "PySide2.QtQml.QQmlListReference.canAt": (),
- "PySide2.QtQml.QQmlListReference.canClear": (),
- "PySide2.QtQml.QQmlListReference.canCount": (),
- "PySide2.QtQml.QQmlListReference.clear": (),
- "PySide2.QtQml.QQmlListReference.count": (),
- "PySide2.QtQml.QQmlListReference.isManipulable": (),
- "PySide2.QtQml.QQmlListReference.isReadable": (),
- "PySide2.QtQml.QQmlListReference.isValid": (),
- "PySide2.QtQml.QQmlListReference.listElementType": (),
- "PySide2.QtQml.QQmlListReference.object": (),
-# class PySide2.QtQml.QQmlNetworkAccessManagerFactory:
- "PySide2.QtQml.QQmlNetworkAccessManagerFactory.__init__": (),
- "PySide2.QtQml.QQmlNetworkAccessManagerFactory.create": ('PySide2.QtCore.QObject',),
-# class PySide2.QtQml.QQmlParserStatus:
- "PySide2.QtQml.QQmlParserStatus.__init__": (),
- "PySide2.QtQml.QQmlParserStatus.classBegin": (),
- "PySide2.QtQml.QQmlParserStatus.componentComplete": (),
-# class PySide2.QtQml.QQmlProperty:
-# class PySide2.QtQml.QQmlProperty.PropertyTypeCategory:
-# class PySide2.QtQml.QQmlProperty.Type:
- "PySide2.QtQml.QQmlProperty.__init__": [(), ('PySide2.QtCore.QObject',), ('PySide2.QtCore.QObject', 'PySide2.QtQml.QQmlContext'), ('PySide2.QtCore.QObject', 'PySide2.QtQml.QQmlEngine'), ('PySide2.QtCore.QObject', 'str'), ('PySide2.QtCore.QObject', 'str', 'PySide2.QtQml.QQmlContext'), ('PySide2.QtCore.QObject', 'str', 'PySide2.QtQml.QQmlEngine'), ('PySide2.QtQml.QQmlProperty',)],
- "PySide2.QtQml.QQmlProperty.__copy__": (),
- "PySide2.QtQml.QQmlProperty.connectNotifySignal": [('PySide2.QtCore.QObject', 'int'), ('PySide2.QtCore.QObject', 'str')],
- "PySide2.QtQml.QQmlProperty.hasNotifySignal": (),
- "PySide2.QtQml.QQmlProperty.index": (),
- "PySide2.QtQml.QQmlProperty.isDesignable": (),
- "PySide2.QtQml.QQmlProperty.isProperty": (),
- "PySide2.QtQml.QQmlProperty.isResettable": (),
- "PySide2.QtQml.QQmlProperty.isSignalProperty": (),
- "PySide2.QtQml.QQmlProperty.isValid": (),
- "PySide2.QtQml.QQmlProperty.isWritable": (),
- "PySide2.QtQml.QQmlProperty.method": (),
- "PySide2.QtQml.QQmlProperty.name": (),
- "PySide2.QtQml.QQmlProperty.needsNotifySignal": (),
- "PySide2.QtQml.QQmlProperty.object": (),
- "PySide2.QtQml.QQmlProperty.property": (),
- "PySide2.QtQml.QQmlProperty.propertyType": (),
- "PySide2.QtQml.QQmlProperty.propertyTypeCategory": (),
- "PySide2.QtQml.QQmlProperty.propertyTypeName": (),
- "PySide2.QtQml.QQmlProperty.read": [(), ('PySide2.QtCore.QObject', 'str'), ('PySide2.QtCore.QObject', 'str', 'PySide2.QtQml.QQmlContext'), ('PySide2.QtCore.QObject', 'str', 'PySide2.QtQml.QQmlEngine')],
- "PySide2.QtQml.QQmlProperty.reset": (),
- "PySide2.QtQml.QQmlProperty.type": (),
- "PySide2.QtQml.QQmlProperty.write": [('PySide2.QtCore.QObject', 'str', 'typing.Any'), ('PySide2.QtCore.QObject', 'str', 'typing.Any', 'PySide2.QtQml.QQmlContext'), ('PySide2.QtCore.QObject', 'str', 'typing.Any', 'PySide2.QtQml.QQmlEngine'), ('typing.Any',)],
-# class PySide2.QtQml.QQmlPropertyMap:
- "PySide2.QtQml.QQmlPropertyMap.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QQmlPropertyMap.clear": ('str',),
- "PySide2.QtQml.QQmlPropertyMap.contains": ('str',),
- "PySide2.QtQml.QQmlPropertyMap.count": (),
- "PySide2.QtQml.QQmlPropertyMap.insert": ('str', 'typing.Any'),
- "PySide2.QtQml.QQmlPropertyMap.isEmpty": (),
- "PySide2.QtQml.QQmlPropertyMap.keys": (),
- "PySide2.QtQml.QQmlPropertyMap.size": (),
- "PySide2.QtQml.QQmlPropertyMap.updateValue": ('str', 'typing.Any'),
- "PySide2.QtQml.QQmlPropertyMap.value": ('str',),
-# class PySide2.QtQml.QQmlPropertyValueSource:
- "PySide2.QtQml.QQmlPropertyValueSource.__init__": (),
- "PySide2.QtQml.QQmlPropertyValueSource.setTarget": ('PySide2.QtQml.QQmlProperty',),
-# class PySide2.QtQml.QQmlScriptString:
- "PySide2.QtQml.QQmlScriptString.__init__": [(), ('PySide2.QtQml.QQmlScriptString',)],
- "PySide2.QtQml.QQmlScriptString.__copy__": (),
- "PySide2.QtQml.QQmlScriptString.booleanLiteral": (),
- "PySide2.QtQml.QQmlScriptString.isEmpty": (),
- "PySide2.QtQml.QQmlScriptString.isNullLiteral": (),
- "PySide2.QtQml.QQmlScriptString.isUndefinedLiteral": (),
- "PySide2.QtQml.QQmlScriptString.numberLiteral": (),
- "PySide2.QtQml.QQmlScriptString.stringLiteral": (),
-# class PySide2.QtQml.QQmlTypesExtensionInterface:
- "PySide2.QtQml.QQmlTypesExtensionInterface.__init__": (),
- "PySide2.QtQml.QQmlTypesExtensionInterface.registerTypes": ('str',),
-# class PySide2.QtQml.QtQml:
- "PySide2.QtQml.QtQml.qmlAttachedPropertiesObject": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QMetaObject', 'bool'),
- "PySide2.QtQml.QtQml.qmlAttachedPropertiesObjectById": ('int', 'PySide2.QtCore.QObject', 'bool'),
- "PySide2.QtQml.QtQml.qmlContext": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QtQml.qmlEngine": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QtQml.qmlExecuteDeferred": ('PySide2.QtCore.QObject',),
-# class PySide2.QtQml.VolatileBool:
- "PySide2.QtQml.VolatileBool.get": (),
- "PySide2.QtQml.VolatileBool.set": ('object',),
- "PySide2.QtQml.VolatileBool.qmlRegisterType": ('type', 'str', 'int', 'int', 'str'),
- }) if "PySide2.QtQml" in sys.modules else None
-# Module PySide2.QtQuick
-sig_dict.update({
-# class PySide2.QtQuick.QQuickAsyncImageProvider:
- "PySide2.QtQuick.QQuickAsyncImageProvider.__init__": (),
- "PySide2.QtQuick.QQuickAsyncImageProvider.requestImageResponse": ('str', 'PySide2.QtCore.QSize'),
-# class PySide2.QtQuick.QQuickFramebufferObject:
-# class PySide2.QtQuick.QQuickFramebufferObject.Renderer:
- "PySide2.QtQuick.QQuickFramebufferObject.Renderer.__init__": (),
- "PySide2.QtQuick.QQuickFramebufferObject.Renderer.createFramebufferObject": ('PySide2.QtCore.QSize',),
- "PySide2.QtQuick.QQuickFramebufferObject.Renderer.framebufferObject": (),
- "PySide2.QtQuick.QQuickFramebufferObject.Renderer.invalidateFramebufferObject": (),
- "PySide2.QtQuick.QQuickFramebufferObject.Renderer.render": (),
- "PySide2.QtQuick.QQuickFramebufferObject.Renderer.synchronize": ('PySide2.QtQuick.QQuickFramebufferObject',),
- "PySide2.QtQuick.QQuickFramebufferObject.Renderer.update": (),
- "PySide2.QtQuick.QQuickFramebufferObject.__init__": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickFramebufferObject.createRenderer": (),
- "PySide2.QtQuick.QQuickFramebufferObject.geometryChanged": ('PySide2.QtCore.QRectF', 'PySide2.QtCore.QRectF'),
- "PySide2.QtQuick.QQuickFramebufferObject.isTextureProvider": (),
- "PySide2.QtQuick.QQuickFramebufferObject.mirrorVertically": (),
- "PySide2.QtQuick.QQuickFramebufferObject.releaseResources": (),
- "PySide2.QtQuick.QQuickFramebufferObject.setMirrorVertically": ('bool',),
- "PySide2.QtQuick.QQuickFramebufferObject.setTextureFollowsItemSize": ('bool',),
- "PySide2.QtQuick.QQuickFramebufferObject.textureFollowsItemSize": (),
- "PySide2.QtQuick.QQuickFramebufferObject.textureProvider": (),
- "PySide2.QtQuick.QQuickFramebufferObject.updatePaintNode": ('PySide2.QtQuick.QSGNode', 'PySide2.QtQuick.QQuickItem.UpdatePaintNodeData'),
-# class PySide2.QtQuick.QQuickImageProvider:
- "PySide2.QtQuick.QQuickImageProvider.__init__": ('PySide2.QtQml.QQmlImageProviderBase.ImageType', 'PySide2.QtQml.QQmlImageProviderBase.Flags'),
- "PySide2.QtQuick.QQuickImageProvider.flags": (),
- "PySide2.QtQuick.QQuickImageProvider.imageType": (),
- "PySide2.QtQuick.QQuickImageProvider.requestImage": ('str', 'PySide2.QtCore.QSize', 'PySide2.QtCore.QSize'),
- "PySide2.QtQuick.QQuickImageProvider.requestPixmap": ('str', 'PySide2.QtCore.QSize', 'PySide2.QtCore.QSize'),
- "PySide2.QtQuick.QQuickImageProvider.requestTexture": ('str', 'PySide2.QtCore.QSize', 'PySide2.QtCore.QSize'),
-# class PySide2.QtQuick.QQuickImageResponse:
- "PySide2.QtQuick.QQuickImageResponse.__init__": (),
- "PySide2.QtQuick.QQuickImageResponse.cancel": (),
- "PySide2.QtQuick.QQuickImageResponse.errorString": (),
- "PySide2.QtQuick.QQuickImageResponse.textureFactory": (),
-# class PySide2.QtQuick.QQuickItem:
-# class PySide2.QtQuick.QQuickItem.Flag:
-# class PySide2.QtQuick.QQuickItem.Flags:
-# class PySide2.QtQuick.QQuickItem.ItemChange:
-# class PySide2.QtQuick.QQuickItem.TransformOrigin:
-# class PySide2.QtQuick.QQuickItem.UpdatePaintNodeData:
- "PySide2.QtQuick.QQuickItem.UpdatePaintNodeData.__copy__": (),
- "PySide2.QtQuick.QQuickItem.__init__": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickItem.acceptHoverEvents": (),
- "PySide2.QtQuick.QQuickItem.acceptTouchEvents": (),
- "PySide2.QtQuick.QQuickItem.acceptedMouseButtons": (),
- "PySide2.QtQuick.QQuickItem.activeFocusOnTab": (),
- "PySide2.QtQuick.QQuickItem.antialiasing": (),
- "PySide2.QtQuick.QQuickItem.baselineOffset": (),
- "PySide2.QtQuick.QQuickItem.boundingRect": (),
- "PySide2.QtQuick.QQuickItem.childAt": ('float', 'float'),
- "PySide2.QtQuick.QQuickItem.childItems": (),
- "PySide2.QtQuick.QQuickItem.childMouseEventFilter": ('PySide2.QtQuick.QQuickItem', 'PySide2.QtCore.QEvent'),
- "PySide2.QtQuick.QQuickItem.childrenRect": (),
- "PySide2.QtQuick.QQuickItem.classBegin": (),
- "PySide2.QtQuick.QQuickItem.clip": (),
- "PySide2.QtQuick.QQuickItem.clipRect": (),
- "PySide2.QtQuick.QQuickItem.componentComplete": (),
- "PySide2.QtQuick.QQuickItem.containmentMask": (),
- "PySide2.QtQuick.QQuickItem.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtQuick.QQuickItem.cursor": (),
- "PySide2.QtQuick.QQuickItem.dragEnterEvent": ('PySide2.QtGui.QDragEnterEvent',),
- "PySide2.QtQuick.QQuickItem.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtQuick.QQuickItem.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtQuick.QQuickItem.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtQuick.QQuickItem.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtQuick.QQuickItem.filtersChildMouseEvents": (),
- "PySide2.QtQuick.QQuickItem.flags": (),
- "PySide2.QtQuick.QQuickItem.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtQuick.QQuickItem.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtQuick.QQuickItem.forceActiveFocus": [(), ('PySide2.QtCore.Qt.FocusReason',)],
- "PySide2.QtQuick.QQuickItem.geometryChanged": ('PySide2.QtCore.QRectF', 'PySide2.QtCore.QRectF'),
- "PySide2.QtQuick.QQuickItem.grabMouse": (),
- "PySide2.QtQuick.QQuickItem.grabToImage": [('PySide2.QtCore.QSize',), ('PySide2.QtQml.QJSValue', 'PySide2.QtCore.QSize')],
- "PySide2.QtQuick.QQuickItem.grabTouchPoints": ('typing.List[int]',),
- "PySide2.QtQuick.QQuickItem.hasActiveFocus": (),
- "PySide2.QtQuick.QQuickItem.hasFocus": (),
- "PySide2.QtQuick.QQuickItem.height": (),
- "PySide2.QtQuick.QQuickItem.heightValid": (),
- "PySide2.QtQuick.QQuickItem.hoverEnterEvent": ('PySide2.QtGui.QHoverEvent',),
- "PySide2.QtQuick.QQuickItem.hoverLeaveEvent": ('PySide2.QtGui.QHoverEvent',),
- "PySide2.QtQuick.QQuickItem.hoverMoveEvent": ('PySide2.QtGui.QHoverEvent',),
- "PySide2.QtQuick.QQuickItem.implicitHeight": (),
- "PySide2.QtQuick.QQuickItem.implicitWidth": (),
- "PySide2.QtQuick.QQuickItem.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtQuick.QQuickItem.inputMethodQuery": ('PySide2.QtCore.Qt.InputMethodQuery',),
- "PySide2.QtQuick.QQuickItem.isAncestorOf": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickItem.isComponentComplete": (),
- "PySide2.QtQuick.QQuickItem.isEnabled": (),
- "PySide2.QtQuick.QQuickItem.isFocusScope": (),
- "PySide2.QtQuick.QQuickItem.isTextureProvider": (),
- "PySide2.QtQuick.QQuickItem.isUnderMouse": (),
- "PySide2.QtQuick.QQuickItem.isVisible": (),
- "PySide2.QtQuick.QQuickItem.itemTransform": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickItem.keepMouseGrab": (),
- "PySide2.QtQuick.QQuickItem.keepTouchGrab": (),
- "PySide2.QtQuick.QQuickItem.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtQuick.QQuickItem.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtQuick.QQuickItem.mapFromGlobal": ('PySide2.QtCore.QPointF',),
- "PySide2.QtQuick.QQuickItem.mapFromItem": ('PySide2.QtQuick.QQuickItem', 'PySide2.QtCore.QPointF'),
- "PySide2.QtQuick.QQuickItem.mapFromScene": ('PySide2.QtCore.QPointF',),
- "PySide2.QtQuick.QQuickItem.mapRectFromItem": ('PySide2.QtQuick.QQuickItem', 'PySide2.QtCore.QRectF'),
- "PySide2.QtQuick.QQuickItem.mapRectFromScene": ('PySide2.QtCore.QRectF',),
- "PySide2.QtQuick.QQuickItem.mapRectToItem": ('PySide2.QtQuick.QQuickItem', 'PySide2.QtCore.QRectF'),
- "PySide2.QtQuick.QQuickItem.mapRectToScene": ('PySide2.QtCore.QRectF',),
- "PySide2.QtQuick.QQuickItem.mapToGlobal": ('PySide2.QtCore.QPointF',),
- "PySide2.QtQuick.QQuickItem.mapToItem": ('PySide2.QtQuick.QQuickItem', 'PySide2.QtCore.QPointF'),
- "PySide2.QtQuick.QQuickItem.mapToScene": ('PySide2.QtCore.QPointF',),
- "PySide2.QtQuick.QQuickItem.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickItem.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickItem.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickItem.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickItem.mouseUngrabEvent": (),
- "PySide2.QtQuick.QQuickItem.nextItemInFocusChain": ('bool',),
- "PySide2.QtQuick.QQuickItem.opacity": (),
- "PySide2.QtQuick.QQuickItem.parentItem": (),
- "PySide2.QtQuick.QQuickItem.polish": (),
- "PySide2.QtQuick.QQuickItem.position": (),
- "PySide2.QtQuick.QQuickItem.releaseResources": (),
- "PySide2.QtQuick.QQuickItem.resetAntialiasing": (),
- "PySide2.QtQuick.QQuickItem.resetHeight": (),
- "PySide2.QtQuick.QQuickItem.resetWidth": (),
- "PySide2.QtQuick.QQuickItem.rotation": (),
- "PySide2.QtQuick.QQuickItem.scale": (),
- "PySide2.QtQuick.QQuickItem.scopedFocusItem": (),
- "PySide2.QtQuick.QQuickItem.setAcceptHoverEvents": ('bool',),
- "PySide2.QtQuick.QQuickItem.setAcceptTouchEvents": ('bool',),
- "PySide2.QtQuick.QQuickItem.setAcceptedMouseButtons": ('PySide2.QtCore.Qt.MouseButtons',),
- "PySide2.QtQuick.QQuickItem.setActiveFocusOnTab": ('bool',),
- "PySide2.QtQuick.QQuickItem.setAntialiasing": ('bool',),
- "PySide2.QtQuick.QQuickItem.setBaselineOffset": ('float',),
- "PySide2.QtQuick.QQuickItem.setClip": ('bool',),
- "PySide2.QtQuick.QQuickItem.setContainmentMask": ('PySide2.QtCore.QObject',),
- "PySide2.QtQuick.QQuickItem.setCursor": ('PySide2.QtGui.QCursor',),
- "PySide2.QtQuick.QQuickItem.setEnabled": ('bool',),
- "PySide2.QtQuick.QQuickItem.setFiltersChildMouseEvents": ('bool',),
- "PySide2.QtQuick.QQuickItem.setFlag": ('PySide2.QtQuick.QQuickItem.Flag', 'bool'),
- "PySide2.QtQuick.QQuickItem.setFlags": ('PySide2.QtQuick.QQuickItem.Flags',),
- "PySide2.QtQuick.QQuickItem.setFocus": [('bool',), ('bool', 'PySide2.QtCore.Qt.FocusReason')],
- "PySide2.QtQuick.QQuickItem.setHeight": ('float',),
- "PySide2.QtQuick.QQuickItem.setImplicitHeight": ('float',),
- "PySide2.QtQuick.QQuickItem.setImplicitSize": ('float', 'float'),
- "PySide2.QtQuick.QQuickItem.setImplicitWidth": ('float',),
- "PySide2.QtQuick.QQuickItem.setKeepMouseGrab": ('bool',),
- "PySide2.QtQuick.QQuickItem.setKeepTouchGrab": ('bool',),
- "PySide2.QtQuick.QQuickItem.setOpacity": ('float',),
- "PySide2.QtQuick.QQuickItem.setParentItem": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickItem.setPosition": ('PySide2.QtCore.QPointF',),
- "PySide2.QtQuick.QQuickItem.setRotation": ('float',),
- "PySide2.QtQuick.QQuickItem.setScale": ('float',),
- "PySide2.QtQuick.QQuickItem.setSize": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtQuick.QQuickItem.setSmooth": ('bool',),
- "PySide2.QtQuick.QQuickItem.setState": ('str',),
- "PySide2.QtQuick.QQuickItem.setTransformOrigin": ('PySide2.QtQuick.QQuickItem.TransformOrigin',),
- "PySide2.QtQuick.QQuickItem.setTransformOriginPoint": ('PySide2.QtCore.QPointF',),
- "PySide2.QtQuick.QQuickItem.setVisible": ('bool',),
- "PySide2.QtQuick.QQuickItem.setWidth": ('float',),
- "PySide2.QtQuick.QQuickItem.setX": ('float',),
- "PySide2.QtQuick.QQuickItem.setY": ('float',),
- "PySide2.QtQuick.QQuickItem.setZ": ('float',),
- "PySide2.QtQuick.QQuickItem.size": (),
- "PySide2.QtQuick.QQuickItem.smooth": (),
- "PySide2.QtQuick.QQuickItem.stackAfter": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickItem.stackBefore": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickItem.state": (),
- "PySide2.QtQuick.QQuickItem.textureProvider": (),
- "PySide2.QtQuick.QQuickItem.touchEvent": ('PySide2.QtGui.QTouchEvent',),
- "PySide2.QtQuick.QQuickItem.touchUngrabEvent": (),
- "PySide2.QtQuick.QQuickItem.transformOrigin": (),
- "PySide2.QtQuick.QQuickItem.transformOriginPoint": (),
- "PySide2.QtQuick.QQuickItem.ungrabMouse": (),
- "PySide2.QtQuick.QQuickItem.ungrabTouchPoints": (),
- "PySide2.QtQuick.QQuickItem.unsetCursor": (),
- "PySide2.QtQuick.QQuickItem.update": (),
- "PySide2.QtQuick.QQuickItem.updateInputMethod": ('PySide2.QtCore.Qt.InputMethodQueries',),
- "PySide2.QtQuick.QQuickItem.updatePaintNode": ('PySide2.QtQuick.QSGNode', 'PySide2.QtQuick.QQuickItem.UpdatePaintNodeData'),
- "PySide2.QtQuick.QQuickItem.updatePolish": (),
- "PySide2.QtQuick.QQuickItem.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
- "PySide2.QtQuick.QQuickItem.width": (),
- "PySide2.QtQuick.QQuickItem.widthValid": (),
- "PySide2.QtQuick.QQuickItem.window": (),
- "PySide2.QtQuick.QQuickItem.windowDeactivateEvent": (),
- "PySide2.QtQuick.QQuickItem.x": (),
- "PySide2.QtQuick.QQuickItem.y": (),
- "PySide2.QtQuick.QQuickItem.z": (),
-# class PySide2.QtQuick.QQuickItemGrabResult:
- "PySide2.QtQuick.QQuickItemGrabResult.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtQuick.QQuickItemGrabResult.image": (),
- "PySide2.QtQuick.QQuickItemGrabResult.saveToFile": ('str',),
- "PySide2.QtQuick.QQuickItemGrabResult.url": (),
-# class PySide2.QtQuick.QQuickPaintedItem:
-# class PySide2.QtQuick.QQuickPaintedItem.PerformanceHint:
-# class PySide2.QtQuick.QQuickPaintedItem.PerformanceHints:
-# class PySide2.QtQuick.QQuickPaintedItem.RenderTarget:
- "PySide2.QtQuick.QQuickPaintedItem.__init__": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickPaintedItem.antialiasing": (),
- "PySide2.QtQuick.QQuickPaintedItem.contentsBoundingRect": (),
- "PySide2.QtQuick.QQuickPaintedItem.contentsScale": (),
- "PySide2.QtQuick.QQuickPaintedItem.contentsSize": (),
- "PySide2.QtQuick.QQuickPaintedItem.fillColor": (),
- "PySide2.QtQuick.QQuickPaintedItem.isTextureProvider": (),
- "PySide2.QtQuick.QQuickPaintedItem.mipmap": (),
- "PySide2.QtQuick.QQuickPaintedItem.opaquePainting": (),
- "PySide2.QtQuick.QQuickPaintedItem.paint": ('PySide2.QtGui.QPainter',),
- "PySide2.QtQuick.QQuickPaintedItem.performanceHints": (),
- "PySide2.QtQuick.QQuickPaintedItem.releaseResources": (),
- "PySide2.QtQuick.QQuickPaintedItem.renderTarget": (),
- "PySide2.QtQuick.QQuickPaintedItem.resetContentsSize": (),
- "PySide2.QtQuick.QQuickPaintedItem.setAntialiasing": ('bool',),
- "PySide2.QtQuick.QQuickPaintedItem.setContentsScale": ('float',),
- "PySide2.QtQuick.QQuickPaintedItem.setContentsSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtQuick.QQuickPaintedItem.setFillColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtQuick.QQuickPaintedItem.setMipmap": ('bool',),
- "PySide2.QtQuick.QQuickPaintedItem.setOpaquePainting": ('bool',),
- "PySide2.QtQuick.QQuickPaintedItem.setPerformanceHint": ('PySide2.QtQuick.QQuickPaintedItem.PerformanceHint', 'bool'),
- "PySide2.QtQuick.QQuickPaintedItem.setPerformanceHints": ('PySide2.QtQuick.QQuickPaintedItem.PerformanceHints',),
- "PySide2.QtQuick.QQuickPaintedItem.setRenderTarget": ('PySide2.QtQuick.QQuickPaintedItem.RenderTarget',),
- "PySide2.QtQuick.QQuickPaintedItem.setTextureSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtQuick.QQuickPaintedItem.textureProvider": (),
- "PySide2.QtQuick.QQuickPaintedItem.textureSize": (),
- "PySide2.QtQuick.QQuickPaintedItem.update": [(), ('PySide2.QtCore.QRect',)],
- "PySide2.QtQuick.QQuickPaintedItem.updatePaintNode": ('PySide2.QtQuick.QSGNode', 'PySide2.QtQuick.QQuickItem.UpdatePaintNodeData'),
-# class PySide2.QtQuick.QQuickRenderControl:
- "PySide2.QtQuick.QQuickRenderControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtQuick.QQuickRenderControl.grab": (),
- "PySide2.QtQuick.QQuickRenderControl.initialize": ('PySide2.QtGui.QOpenGLContext',),
- "PySide2.QtQuick.QQuickRenderControl.invalidate": (),
- "PySide2.QtQuick.QQuickRenderControl.polishItems": (),
- "PySide2.QtQuick.QQuickRenderControl.prepareThread": ('PySide2.QtCore.QThread',),
- "PySide2.QtQuick.QQuickRenderControl.render": (),
- "PySide2.QtQuick.QQuickRenderControl.renderWindow": ('PySide2.QtCore.QPoint',),
- "PySide2.QtQuick.QQuickRenderControl.renderWindowFor": ('PySide2.QtQuick.QQuickWindow', 'PySide2.QtCore.QPoint'),
- "PySide2.QtQuick.QQuickRenderControl.sync": (),
-# class PySide2.QtQuick.QQuickTextDocument:
- "PySide2.QtQuick.QQuickTextDocument.__init__": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickTextDocument.textDocument": (),
-# class PySide2.QtQuick.QQuickTextureFactory:
- "PySide2.QtQuick.QQuickTextureFactory.__init__": (),
- "PySide2.QtQuick.QQuickTextureFactory.createTexture": ('PySide2.QtQuick.QQuickWindow',),
- "PySide2.QtQuick.QQuickTextureFactory.image": (),
- "PySide2.QtQuick.QQuickTextureFactory.textureByteCount": (),
- "PySide2.QtQuick.QQuickTextureFactory.textureFactoryForImage": ('PySide2.QtGui.QImage',),
- "PySide2.QtQuick.QQuickTextureFactory.textureSize": (),
-# class PySide2.QtQuick.QQuickTransform:
- "PySide2.QtQuick.QQuickTransform.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtQuick.QQuickTransform.appendToItem": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickTransform.applyTo": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtQuick.QQuickTransform.prependToItem": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickTransform.update": (),
-# class PySide2.QtQuick.QQuickView:
-# class PySide2.QtQuick.QQuickView.ResizeMode:
-# class PySide2.QtQuick.QQuickView.Status:
- "PySide2.QtQuick.QQuickView.__init__": [('PySide2.QtCore.QUrl', 'PySide2.QtGui.QWindow'), ('PySide2.QtCore.QUrl', 'PySide2.QtQuick.QQuickRenderControl'), ('PySide2.QtGui.QWindow',), ('PySide2.QtQml.QQmlEngine', 'PySide2.QtGui.QWindow')],
- "PySide2.QtQuick.QQuickView.engine": (),
- "PySide2.QtQuick.QQuickView.errors": (),
- "PySide2.QtQuick.QQuickView.initialSize": (),
- "PySide2.QtQuick.QQuickView.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtQuick.QQuickView.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtQuick.QQuickView.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickView.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickView.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickView.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtQuick.QQuickView.resizeMode": (),
- "PySide2.QtQuick.QQuickView.rootContext": (),
- "PySide2.QtQuick.QQuickView.rootObject": (),
- "PySide2.QtQuick.QQuickView.setContent": ('PySide2.QtCore.QUrl', 'PySide2.QtQml.QQmlComponent', 'PySide2.QtCore.QObject'),
- "PySide2.QtQuick.QQuickView.setInitialProperties": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtQuick.QQuickView.setResizeMode": ('PySide2.QtQuick.QQuickView.ResizeMode',),
- "PySide2.QtQuick.QQuickView.setSource": ('PySide2.QtCore.QUrl',),
- "PySide2.QtQuick.QQuickView.sizeHint": (),
- "PySide2.QtQuick.QQuickView.source": (),
- "PySide2.QtQuick.QQuickView.status": (),
- "PySide2.QtQuick.QQuickView.timerEvent": ('PySide2.QtCore.QTimerEvent',),
-# class PySide2.QtQuick.QQuickWindow:
-# class PySide2.QtQuick.QQuickWindow.CreateTextureOption:
-# class PySide2.QtQuick.QQuickWindow.CreateTextureOptions:
-# class PySide2.QtQuick.QQuickWindow.NativeObjectType:
-# class PySide2.QtQuick.QQuickWindow.RenderStage:
-# class PySide2.QtQuick.QQuickWindow.SceneGraphError:
-# class PySide2.QtQuick.QQuickWindow.TextRenderType:
- "PySide2.QtQuick.QQuickWindow.__init__": [('PySide2.QtGui.QWindow',), ('PySide2.QtQuick.QQuickRenderControl',)],
- "PySide2.QtQuick.QQuickWindow.accessibleRoot": (),
- "PySide2.QtQuick.QQuickWindow.activeFocusItem": (),
- "PySide2.QtQuick.QQuickWindow.beginExternalCommands": (),
- "PySide2.QtQuick.QQuickWindow.clearBeforeRendering": (),
- "PySide2.QtQuick.QQuickWindow.color": (),
- "PySide2.QtQuick.QQuickWindow.contentItem": (),
- "PySide2.QtQuick.QQuickWindow.createTextureFromId": ('int', 'PySide2.QtCore.QSize', 'PySide2.QtQuick.QQuickWindow.CreateTextureOptions'),
- "PySide2.QtQuick.QQuickWindow.createTextureFromImage": [('PySide2.QtGui.QImage',), ('PySide2.QtGui.QImage', 'PySide2.QtQuick.QQuickWindow.CreateTextureOptions')],
- "PySide2.QtQuick.QQuickWindow.createTextureFromNativeObject": ('PySide2.QtQuick.QQuickWindow.NativeObjectType', 'int', 'int', 'PySide2.QtCore.QSize', 'PySide2.QtQuick.QQuickWindow.CreateTextureOptions'),
- "PySide2.QtQuick.QQuickWindow.effectiveDevicePixelRatio": (),
- "PySide2.QtQuick.QQuickWindow.endExternalCommands": (),
- "PySide2.QtQuick.QQuickWindow.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtQuick.QQuickWindow.exposeEvent": ('PySide2.QtGui.QExposeEvent',),
- "PySide2.QtQuick.QQuickWindow.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtQuick.QQuickWindow.focusObject": (),
- "PySide2.QtQuick.QQuickWindow.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtQuick.QQuickWindow.grabWindow": (),
- "PySide2.QtQuick.QQuickWindow.hasDefaultAlphaBuffer": (),
- "PySide2.QtQuick.QQuickWindow.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtQuick.QQuickWindow.incubationController": (),
- "PySide2.QtQuick.QQuickWindow.isPersistentOpenGLContext": (),
- "PySide2.QtQuick.QQuickWindow.isPersistentSceneGraph": (),
- "PySide2.QtQuick.QQuickWindow.isSceneGraphInitialized": (),
- "PySide2.QtQuick.QQuickWindow.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtQuick.QQuickWindow.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtQuick.QQuickWindow.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickWindow.mouseGrabberItem": (),
- "PySide2.QtQuick.QQuickWindow.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickWindow.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickWindow.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickWindow.openglContext": (),
- "PySide2.QtQuick.QQuickWindow.releaseResources": (),
- "PySide2.QtQuick.QQuickWindow.renderTarget": (),
- "PySide2.QtQuick.QQuickWindow.renderTargetId": (),
- "PySide2.QtQuick.QQuickWindow.renderTargetSize": (),
- "PySide2.QtQuick.QQuickWindow.resetOpenGLState": (),
- "PySide2.QtQuick.QQuickWindow.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtQuick.QQuickWindow.sceneGraphBackend": (),
- "PySide2.QtQuick.QQuickWindow.scheduleRenderJob": ('PySide2.QtCore.QRunnable', 'PySide2.QtQuick.QQuickWindow.RenderStage'),
- "PySide2.QtQuick.QQuickWindow.sendEvent": ('PySide2.QtQuick.QQuickItem', 'PySide2.QtCore.QEvent'),
- "PySide2.QtQuick.QQuickWindow.setClearBeforeRendering": ('bool',),
- "PySide2.QtQuick.QQuickWindow.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtQuick.QQuickWindow.setDefaultAlphaBuffer": ('bool',),
- "PySide2.QtQuick.QQuickWindow.setPersistentOpenGLContext": ('bool',),
- "PySide2.QtQuick.QQuickWindow.setPersistentSceneGraph": ('bool',),
- "PySide2.QtQuick.QQuickWindow.setRenderTarget": [('PySide2.QtGui.QOpenGLFramebufferObject',), ('int', 'PySide2.QtCore.QSize')],
- "PySide2.QtQuick.QQuickWindow.setSceneGraphBackend": ('str',),
- "PySide2.QtQuick.QQuickWindow.setTextRenderType": ('PySide2.QtQuick.QQuickWindow.TextRenderType',),
- "PySide2.QtQuick.QQuickWindow.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtQuick.QQuickWindow.textRenderType": (),
- "PySide2.QtQuick.QQuickWindow.update": (),
- "PySide2.QtQuick.QQuickWindow.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtQuick.QSGAbstractRenderer:
-# class PySide2.QtQuick.QSGAbstractRenderer.ClearMode:
-# class PySide2.QtQuick.QSGAbstractRenderer.ClearModeBit:
-# class PySide2.QtQuick.QSGAbstractRenderer.MatrixTransformFlag:
-# class PySide2.QtQuick.QSGAbstractRenderer.MatrixTransformFlags:
- "PySide2.QtQuick.QSGAbstractRenderer.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtQuick.QSGAbstractRenderer.clearColor": (),
- "PySide2.QtQuick.QSGAbstractRenderer.clearMode": (),
- "PySide2.QtQuick.QSGAbstractRenderer.deviceRect": (),
- "PySide2.QtQuick.QSGAbstractRenderer.nodeChanged": ('PySide2.QtQuick.QSGNode', 'PySide2.QtQuick.QSGNode.DirtyState'),
- "PySide2.QtQuick.QSGAbstractRenderer.projectionMatrix": (),
- "PySide2.QtQuick.QSGAbstractRenderer.projectionMatrixWithNativeNDC": (),
- "PySide2.QtQuick.QSGAbstractRenderer.renderScene": ('int',),
- "PySide2.QtQuick.QSGAbstractRenderer.setClearColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtQuick.QSGAbstractRenderer.setClearMode": ('PySide2.QtQuick.QSGAbstractRenderer.ClearMode',),
- "PySide2.QtQuick.QSGAbstractRenderer.setDeviceRect": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QSize',)],
- "PySide2.QtQuick.QSGAbstractRenderer.setProjectionMatrix": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtQuick.QSGAbstractRenderer.setProjectionMatrixToRect": [('PySide2.QtCore.QRectF',), ('PySide2.QtCore.QRectF', 'PySide2.QtQuick.QSGAbstractRenderer.MatrixTransformFlags')],
- "PySide2.QtQuick.QSGAbstractRenderer.setProjectionMatrixWithNativeNDC": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtQuick.QSGAbstractRenderer.setViewportRect": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QSize',)],
- "PySide2.QtQuick.QSGAbstractRenderer.viewportRect": (),
-# class PySide2.QtQuick.QSGBasicGeometryNode:
- "PySide2.QtQuick.QSGBasicGeometryNode.__init__": ('PySide2.QtQuick.QSGNode.NodeType',),
- "PySide2.QtQuick.QSGBasicGeometryNode.clipList": (),
- "PySide2.QtQuick.QSGBasicGeometryNode.geometry": (),
- "PySide2.QtQuick.QSGBasicGeometryNode.matrix": (),
- "PySide2.QtQuick.QSGBasicGeometryNode.setGeometry": ('PySide2.QtQuick.QSGGeometry',),
- "PySide2.QtQuick.QSGBasicGeometryNode.setRendererClipList": ('PySide2.QtQuick.QSGClipNode',),
- "PySide2.QtQuick.QSGBasicGeometryNode.setRendererMatrix": ('PySide2.QtGui.QMatrix4x4',),
-# class PySide2.QtQuick.QSGClipNode:
- "PySide2.QtQuick.QSGClipNode.__init__": (),
- "PySide2.QtQuick.QSGClipNode.clipRect": (),
- "PySide2.QtQuick.QSGClipNode.isRectangular": (),
- "PySide2.QtQuick.QSGClipNode.setClipRect": ('PySide2.QtCore.QRectF',),
- "PySide2.QtQuick.QSGClipNode.setIsRectangular": ('bool',),
-# class PySide2.QtQuick.QSGDynamicTexture:
- "PySide2.QtQuick.QSGDynamicTexture.__init__": (),
- "PySide2.QtQuick.QSGDynamicTexture.updateTexture": (),
-# class PySide2.QtQuick.QSGEngine:
-# class PySide2.QtQuick.QSGEngine.CreateTextureOption:
-# class PySide2.QtQuick.QSGEngine.CreateTextureOptions:
- "PySide2.QtQuick.QSGEngine.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtQuick.QSGEngine.createRenderer": (),
- "PySide2.QtQuick.QSGEngine.createTextureFromId": ('int', 'PySide2.QtCore.QSize', 'PySide2.QtQuick.QSGEngine.CreateTextureOptions'),
- "PySide2.QtQuick.QSGEngine.createTextureFromImage": ('PySide2.QtGui.QImage', 'PySide2.QtQuick.QSGEngine.CreateTextureOptions'),
- "PySide2.QtQuick.QSGEngine.initialize": ('PySide2.QtGui.QOpenGLContext',),
- "PySide2.QtQuick.QSGEngine.invalidate": (),
-# class PySide2.QtQuick.QSGGeometry:
-# class PySide2.QtQuick.QSGGeometry.Attribute:
- "PySide2.QtQuick.QSGGeometry.Attribute.__init__": [(), ('PySide2.QtQuick.QSGGeometry.Attribute',)],
- "PySide2.QtQuick.QSGGeometry.Attribute.__copy__": (),
- "PySide2.QtQuick.QSGGeometry.Attribute.create": ('int', 'int', 'int', 'bool'),
- "PySide2.QtQuick.QSGGeometry.Attribute.createWithAttributeType": ('int', 'int', 'int', 'PySide2.QtQuick.QSGGeometry.AttributeType'),
-# class PySide2.QtQuick.QSGGeometry.AttributeSet:
- "PySide2.QtQuick.QSGGeometry.AttributeSet.__init__": [(), ('PySide2.QtQuick.QSGGeometry.AttributeSet',)],
- "PySide2.QtQuick.QSGGeometry.AttributeSet.__copy__": (),
-# class PySide2.QtQuick.QSGGeometry.AttributeType:
-# class PySide2.QtQuick.QSGGeometry.ColoredPoint2D:
- "PySide2.QtQuick.QSGGeometry.ColoredPoint2D.__init__": [(), ('PySide2.QtQuick.QSGGeometry.ColoredPoint2D',)],
- "PySide2.QtQuick.QSGGeometry.ColoredPoint2D.__copy__": (),
- "PySide2.QtQuick.QSGGeometry.ColoredPoint2D.set": ('float', 'float', 'int', 'int', 'int', 'int'),
-# class PySide2.QtQuick.QSGGeometry.DataPattern:
-# class PySide2.QtQuick.QSGGeometry.DrawingMode:
-# class PySide2.QtQuick.QSGGeometry.Point2D:
- "PySide2.QtQuick.QSGGeometry.Point2D.__init__": [(), ('PySide2.QtQuick.QSGGeometry.Point2D',)],
- "PySide2.QtQuick.QSGGeometry.Point2D.__copy__": (),
- "PySide2.QtQuick.QSGGeometry.Point2D.set": ('float', 'float'),
-# class PySide2.QtQuick.QSGGeometry.TexturedPoint2D:
- "PySide2.QtQuick.QSGGeometry.TexturedPoint2D.__init__": [(), ('PySide2.QtQuick.QSGGeometry.TexturedPoint2D',)],
- "PySide2.QtQuick.QSGGeometry.TexturedPoint2D.__copy__": (),
- "PySide2.QtQuick.QSGGeometry.TexturedPoint2D.set": ('float', 'float', 'float', 'float'),
-# class PySide2.QtQuick.QSGGeometry.Type:
- "PySide2.QtQuick.QSGGeometry.__init__": ('PySide2.QtQuick.QSGGeometry.AttributeSet', 'int', 'int', 'int'),
- "PySide2.QtQuick.QSGGeometry.allocate": ('int', 'int'),
- "PySide2.QtQuick.QSGGeometry.attributeCount": (),
- "PySide2.QtQuick.QSGGeometry.attributes": (),
- "PySide2.QtQuick.QSGGeometry.defaultAttributes_ColoredPoint2D": (),
- "PySide2.QtQuick.QSGGeometry.defaultAttributes_Point2D": (),
- "PySide2.QtQuick.QSGGeometry.defaultAttributes_TexturedPoint2D": (),
- "PySide2.QtQuick.QSGGeometry.drawingMode": (),
- "PySide2.QtQuick.QSGGeometry.indexCount": (),
- "PySide2.QtQuick.QSGGeometry.indexData": (),
- "PySide2.QtQuick.QSGGeometry.indexDataAsUInt": (),
- "PySide2.QtQuick.QSGGeometry.indexDataAsUShort": (),
- "PySide2.QtQuick.QSGGeometry.indexDataPattern": (),
- "PySide2.QtQuick.QSGGeometry.indexType": (),
- "PySide2.QtQuick.QSGGeometry.lineWidth": (),
- "PySide2.QtQuick.QSGGeometry.markIndexDataDirty": (),
- "PySide2.QtQuick.QSGGeometry.markVertexDataDirty": (),
- "PySide2.QtQuick.QSGGeometry.setDrawingMode": ('int',),
- "PySide2.QtQuick.QSGGeometry.setIndexDataPattern": ('PySide2.QtQuick.QSGGeometry.DataPattern',),
- "PySide2.QtQuick.QSGGeometry.setLineWidth": ('float',),
- "PySide2.QtQuick.QSGGeometry.setVertexDataPattern": ('PySide2.QtQuick.QSGGeometry.DataPattern',),
- "PySide2.QtQuick.QSGGeometry.sizeOfIndex": (),
- "PySide2.QtQuick.QSGGeometry.sizeOfVertex": (),
- "PySide2.QtQuick.QSGGeometry.updateColoredRectGeometry": ('PySide2.QtQuick.QSGGeometry', 'PySide2.QtCore.QRectF'),
- "PySide2.QtQuick.QSGGeometry.updateRectGeometry": ('PySide2.QtQuick.QSGGeometry', 'PySide2.QtCore.QRectF'),
- "PySide2.QtQuick.QSGGeometry.updateTexturedRectGeometry": ('PySide2.QtQuick.QSGGeometry', 'PySide2.QtCore.QRectF', 'PySide2.QtCore.QRectF'),
- "PySide2.QtQuick.QSGGeometry.vertexCount": (),
- "PySide2.QtQuick.QSGGeometry.vertexData": (),
- "PySide2.QtQuick.QSGGeometry.vertexDataAsColoredPoint2D": (),
- "PySide2.QtQuick.QSGGeometry.vertexDataAsPoint2D": (),
- "PySide2.QtQuick.QSGGeometry.vertexDataAsTexturedPoint2D": (),
- "PySide2.QtQuick.QSGGeometry.vertexDataPattern": (),
-# class PySide2.QtQuick.QSGGeometryNode:
- "PySide2.QtQuick.QSGGeometryNode.__init__": (),
- "PySide2.QtQuick.QSGGeometryNode.inheritedOpacity": (),
- "PySide2.QtQuick.QSGGeometryNode.renderOrder": (),
- "PySide2.QtQuick.QSGGeometryNode.setInheritedOpacity": ('float',),
- "PySide2.QtQuick.QSGGeometryNode.setRenderOrder": ('int',),
-# class PySide2.QtQuick.QSGMaterialType:
- "PySide2.QtQuick.QSGMaterialType.__init__": (),
-# class PySide2.QtQuick.QSGNode:
-# class PySide2.QtQuick.QSGNode.DirtyState:
-# class PySide2.QtQuick.QSGNode.DirtyStateBit:
-# class PySide2.QtQuick.QSGNode.Flag:
-# class PySide2.QtQuick.QSGNode.Flags:
-# class PySide2.QtQuick.QSGNode.NodeType:
- "PySide2.QtQuick.QSGNode.__init__": [(), ('PySide2.QtQuick.QSGNode.NodeType',)],
- "PySide2.QtQuick.QSGNode.appendChildNode": ('PySide2.QtQuick.QSGNode',),
- "PySide2.QtQuick.QSGNode.childAtIndex": ('int',),
- "PySide2.QtQuick.QSGNode.childCount": (),
- "PySide2.QtQuick.QSGNode.clearDirty": (),
- "PySide2.QtQuick.QSGNode.dirtyState": (),
- "PySide2.QtQuick.QSGNode.firstChild": (),
- "PySide2.QtQuick.QSGNode.flags": (),
- "PySide2.QtQuick.QSGNode.insertChildNodeAfter": ('PySide2.QtQuick.QSGNode', 'PySide2.QtQuick.QSGNode'),
- "PySide2.QtQuick.QSGNode.insertChildNodeBefore": ('PySide2.QtQuick.QSGNode', 'PySide2.QtQuick.QSGNode'),
- "PySide2.QtQuick.QSGNode.isSubtreeBlocked": (),
- "PySide2.QtQuick.QSGNode.lastChild": (),
- "PySide2.QtQuick.QSGNode.markDirty": ('PySide2.QtQuick.QSGNode.DirtyState',),
- "PySide2.QtQuick.QSGNode.nextSibling": (),
- "PySide2.QtQuick.QSGNode.parent": (),
- "PySide2.QtQuick.QSGNode.prependChildNode": ('PySide2.QtQuick.QSGNode',),
- "PySide2.QtQuick.QSGNode.preprocess": (),
- "PySide2.QtQuick.QSGNode.previousSibling": (),
- "PySide2.QtQuick.QSGNode.removeAllChildNodes": (),
- "PySide2.QtQuick.QSGNode.removeChildNode": ('PySide2.QtQuick.QSGNode',),
- "PySide2.QtQuick.QSGNode.reparentChildNodesTo": ('PySide2.QtQuick.QSGNode',),
- "PySide2.QtQuick.QSGNode.setFlag": ('PySide2.QtQuick.QSGNode.Flag', 'bool'),
- "PySide2.QtQuick.QSGNode.setFlags": ('PySide2.QtQuick.QSGNode.Flags', 'bool'),
- "PySide2.QtQuick.QSGNode.type": (),
-# class PySide2.QtQuick.QSGOpacityNode:
- "PySide2.QtQuick.QSGOpacityNode.__init__": (),
- "PySide2.QtQuick.QSGOpacityNode.combinedOpacity": (),
- "PySide2.QtQuick.QSGOpacityNode.isSubtreeBlocked": (),
- "PySide2.QtQuick.QSGOpacityNode.opacity": (),
- "PySide2.QtQuick.QSGOpacityNode.setCombinedOpacity": ('float',),
- "PySide2.QtQuick.QSGOpacityNode.setOpacity": ('float',),
-# class PySide2.QtQuick.QSGSimpleRectNode:
- "PySide2.QtQuick.QSGSimpleRectNode.__init__": [(), ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QColor')],
- "PySide2.QtQuick.QSGSimpleRectNode.color": (),
- "PySide2.QtQuick.QSGSimpleRectNode.rect": (),
- "PySide2.QtQuick.QSGSimpleRectNode.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtQuick.QSGSimpleRectNode.setRect": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
-# class PySide2.QtQuick.QSGSimpleTextureNode:
-# class PySide2.QtQuick.QSGSimpleTextureNode.TextureCoordinatesTransformFlag:
-# class PySide2.QtQuick.QSGSimpleTextureNode.TextureCoordinatesTransformMode:
- "PySide2.QtQuick.QSGSimpleTextureNode.__init__": (),
- "PySide2.QtQuick.QSGSimpleTextureNode.filtering": (),
- "PySide2.QtQuick.QSGSimpleTextureNode.ownsTexture": (),
- "PySide2.QtQuick.QSGSimpleTextureNode.rect": (),
- "PySide2.QtQuick.QSGSimpleTextureNode.setFiltering": ('PySide2.QtQuick.QSGTexture.Filtering',),
- "PySide2.QtQuick.QSGSimpleTextureNode.setOwnsTexture": ('bool',),
- "PySide2.QtQuick.QSGSimpleTextureNode.setRect": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtQuick.QSGSimpleTextureNode.setSourceRect": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtQuick.QSGSimpleTextureNode.setTexture": ('PySide2.QtQuick.QSGTexture',),
- "PySide2.QtQuick.QSGSimpleTextureNode.setTextureCoordinatesTransform": ('PySide2.QtQuick.QSGSimpleTextureNode.TextureCoordinatesTransformMode',),
- "PySide2.QtQuick.QSGSimpleTextureNode.sourceRect": (),
- "PySide2.QtQuick.QSGSimpleTextureNode.texture": (),
- "PySide2.QtQuick.QSGSimpleTextureNode.textureCoordinatesTransform": (),
-# class PySide2.QtQuick.QSGTexture:
-# class PySide2.QtQuick.QSGTexture.AnisotropyLevel:
-# class PySide2.QtQuick.QSGTexture.Filtering:
-# class PySide2.QtQuick.QSGTexture.WrapMode:
- "PySide2.QtQuick.QSGTexture.__init__": (),
- "PySide2.QtQuick.QSGTexture.anisotropyLevel": (),
- "PySide2.QtQuick.QSGTexture.bind": (),
- "PySide2.QtQuick.QSGTexture.comparisonKey": (),
- "PySide2.QtQuick.QSGTexture.convertToNormalizedSourceRect": ('PySide2.QtCore.QRectF',),
- "PySide2.QtQuick.QSGTexture.filtering": (),
- "PySide2.QtQuick.QSGTexture.hasAlphaChannel": (),
- "PySide2.QtQuick.QSGTexture.hasMipmaps": (),
- "PySide2.QtQuick.QSGTexture.horizontalWrapMode": (),
- "PySide2.QtQuick.QSGTexture.isAtlasTexture": (),
- "PySide2.QtQuick.QSGTexture.mipmapFiltering": (),
- "PySide2.QtQuick.QSGTexture.normalizedTextureSubRect": (),
- "PySide2.QtQuick.QSGTexture.removedFromAtlas": (),
- "PySide2.QtQuick.QSGTexture.setAnisotropyLevel": ('PySide2.QtQuick.QSGTexture.AnisotropyLevel',),
- "PySide2.QtQuick.QSGTexture.setFiltering": ('PySide2.QtQuick.QSGTexture.Filtering',),
- "PySide2.QtQuick.QSGTexture.setHorizontalWrapMode": ('PySide2.QtQuick.QSGTexture.WrapMode',),
- "PySide2.QtQuick.QSGTexture.setMipmapFiltering": ('PySide2.QtQuick.QSGTexture.Filtering',),
- "PySide2.QtQuick.QSGTexture.setVerticalWrapMode": ('PySide2.QtQuick.QSGTexture.WrapMode',),
- "PySide2.QtQuick.QSGTexture.textureId": (),
- "PySide2.QtQuick.QSGTexture.textureSize": (),
- "PySide2.QtQuick.QSGTexture.updateBindOptions": ('bool',),
- "PySide2.QtQuick.QSGTexture.verticalWrapMode": (),
-# class PySide2.QtQuick.QSGTextureProvider:
- "PySide2.QtQuick.QSGTextureProvider.__init__": (),
- "PySide2.QtQuick.QSGTextureProvider.texture": (),
-# class PySide2.QtQuick.QSGTransformNode:
- "PySide2.QtQuick.QSGTransformNode.__init__": (),
- "PySide2.QtQuick.QSGTransformNode.combinedMatrix": (),
- "PySide2.QtQuick.QSGTransformNode.matrix": (),
- "PySide2.QtQuick.QSGTransformNode.setCombinedMatrix": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtQuick.QSGTransformNode.setMatrix": ('PySide2.QtGui.QMatrix4x4',),
-# class PySide2.QtQuick.QSharedPointer<QQuickItemGrabResult >:
- "PySide2.QtQuick.QSharedPointer<QQuickItemGrabResult >.__copy__": (),
- "PySide2.QtQuick.QSharedPointer<QQuickItemGrabResult >.data": (),
- }) if "PySide2.QtQuick" in sys.modules else None
-# Module PySide2.QtQuickWidgets
-sig_dict.update({
-# class PySide2.QtQuickWidgets.QQuickWidget:
-# class PySide2.QtQuickWidgets.QQuickWidget.ResizeMode:
-# class PySide2.QtQuickWidgets.QQuickWidget.Status:
- "PySide2.QtQuickWidgets.QQuickWidget.__init__": [('PySide2.QtCore.QUrl', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtQml.QQmlEngine', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtQuickWidgets.QQuickWidget.dragEnterEvent": ('PySide2.QtGui.QDragEnterEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.engine": (),
- "PySide2.QtQuickWidgets.QQuickWidget.errors": (),
- "PySide2.QtQuickWidgets.QQuickWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.focusNextPrevChild": ('bool',),
- "PySide2.QtQuickWidgets.QQuickWidget.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.format": (),
- "PySide2.QtQuickWidgets.QQuickWidget.grabFramebuffer": (),
- "PySide2.QtQuickWidgets.QQuickWidget.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.initialSize": (),
- "PySide2.QtQuickWidgets.QQuickWidget.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.quickWindow": (),
- "PySide2.QtQuickWidgets.QQuickWidget.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.resizeMode": (),
- "PySide2.QtQuickWidgets.QQuickWidget.rootContext": (),
- "PySide2.QtQuickWidgets.QQuickWidget.rootObject": (),
- "PySide2.QtQuickWidgets.QQuickWidget.setClearColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtQuickWidgets.QQuickWidget.setContent": ('PySide2.QtCore.QUrl', 'PySide2.QtQml.QQmlComponent', 'PySide2.QtCore.QObject'),
- "PySide2.QtQuickWidgets.QQuickWidget.setFormat": ('PySide2.QtGui.QSurfaceFormat',),
- "PySide2.QtQuickWidgets.QQuickWidget.setResizeMode": ('PySide2.QtQuickWidgets.QQuickWidget.ResizeMode',),
- "PySide2.QtQuickWidgets.QQuickWidget.setSource": ('PySide2.QtCore.QUrl',),
- "PySide2.QtQuickWidgets.QQuickWidget.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.sizeHint": (),
- "PySide2.QtQuickWidgets.QQuickWidget.source": (),
- "PySide2.QtQuickWidgets.QQuickWidget.status": (),
- "PySide2.QtQuickWidgets.QQuickWidget.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
- }) if "PySide2.QtQuickWidgets" in sys.modules else None
-# Module PySide2.QtRemoteObjects
-sig_dict.update({
-# class PySide2.QtRemoteObjects.QAbstractItemModelReplica:
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.availableRoles": (),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.hasChildren": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.hasData": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.index": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.isInitialized": (),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.roleNames": (),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.selectionModel": (),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
-# class PySide2.QtRemoteObjects.QRemoteObjectAbstractPersistedStore:
- "PySide2.QtRemoteObjects.QRemoteObjectAbstractPersistedStore.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtRemoteObjects.QRemoteObjectAbstractPersistedStore.restoreProperties": ('str', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtRemoteObjects.QRemoteObjectAbstractPersistedStore.saveProperties": ('str', 'PySide2.QtCore.QByteArray', 'typing.Sequence[typing.Any]'),
-# class PySide2.QtRemoteObjects.QRemoteObjectDynamicReplica:
-# class PySide2.QtRemoteObjects.QRemoteObjectHost:
- "PySide2.QtRemoteObjects.QRemoteObjectHost.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtCore.QUrl', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QUrl', 'PySide2.QtCore.QUrl', 'PySide2.QtRemoteObjects.QRemoteObjectHostBase.AllowedSchemas', 'PySide2.QtCore.QObject')],
- "PySide2.QtRemoteObjects.QRemoteObjectHost.hostUrl": (),
- "PySide2.QtRemoteObjects.QRemoteObjectHost.setHostUrl": ('PySide2.QtCore.QUrl', 'PySide2.QtRemoteObjects.QRemoteObjectHostBase.AllowedSchemas'),
-# class PySide2.QtRemoteObjects.QRemoteObjectHostBase:
-# class PySide2.QtRemoteObjects.QRemoteObjectHostBase.AllowedSchemas:
- "PySide2.QtRemoteObjects.QRemoteObjectHostBase.addHostSideConnection": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtRemoteObjects.QRemoteObjectHostBase.disableRemoting": ('PySide2.QtCore.QObject',),
- "PySide2.QtRemoteObjects.QRemoteObjectHostBase.enableRemoting": [('PySide2.QtCore.QAbstractItemModel', 'str', 'typing.List[int]', 'PySide2.QtCore.QItemSelectionModel'), ('PySide2.QtCore.QObject', 'str')],
- "PySide2.QtRemoteObjects.QRemoteObjectHostBase.hostUrl": (),
- "PySide2.QtRemoteObjects.QRemoteObjectHostBase.proxy": ('PySide2.QtCore.QUrl', 'PySide2.QtCore.QUrl'),
- "PySide2.QtRemoteObjects.QRemoteObjectHostBase.reverseProxy": (),
- "PySide2.QtRemoteObjects.QRemoteObjectHostBase.setHostUrl": ('PySide2.QtCore.QUrl', 'PySide2.QtRemoteObjects.QRemoteObjectHostBase.AllowedSchemas'),
- "PySide2.QtRemoteObjects.QRemoteObjectHostBase.setName": ('str',),
-# class PySide2.QtRemoteObjects.QRemoteObjectNode:
-# class PySide2.QtRemoteObjects.QRemoteObjectNode.ErrorCode:
- "PySide2.QtRemoteObjects.QRemoteObjectNode.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtCore.QUrl', 'PySide2.QtCore.QObject')],
- "PySide2.QtRemoteObjects.QRemoteObjectNode.acquireDynamic": ('str',),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.acquireModel": ('str',),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.addClientSideConnection": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.connectToNode": ('PySide2.QtCore.QUrl',),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.heartbeatInterval": (),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.instances": ('str',),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.lastError": (),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.persistedStore": (),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.registry": (),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.registryUrl": (),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.setHeartbeatInterval": ('int',),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.setName": ('str',),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.setPersistedStore": ('PySide2.QtRemoteObjects.QRemoteObjectAbstractPersistedStore',),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.setRegistryUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.waitForRegistry": ('int',),
-# class PySide2.QtRemoteObjects.QRemoteObjectPendingCall:
-# class PySide2.QtRemoteObjects.QRemoteObjectPendingCall.Error:
- "PySide2.QtRemoteObjects.QRemoteObjectPendingCall.__init__": [(), ('PySide2.QtRemoteObjects.QRemoteObjectPendingCall',)],
- "PySide2.QtRemoteObjects.QRemoteObjectPendingCall.error": (),
- "PySide2.QtRemoteObjects.QRemoteObjectPendingCall.fromCompletedCall": ('typing.Any',),
- "PySide2.QtRemoteObjects.QRemoteObjectPendingCall.isFinished": (),
- "PySide2.QtRemoteObjects.QRemoteObjectPendingCall.returnValue": (),
- "PySide2.QtRemoteObjects.QRemoteObjectPendingCall.waitForFinished": ('int',),
-# class PySide2.QtRemoteObjects.QRemoteObjectPendingCallWatcher:
- "PySide2.QtRemoteObjects.QRemoteObjectPendingCallWatcher.__init__": ('PySide2.QtRemoteObjects.QRemoteObjectPendingCall', 'PySide2.QtCore.QObject'),
- "PySide2.QtRemoteObjects.QRemoteObjectPendingCallWatcher.isFinished": (),
- "PySide2.QtRemoteObjects.QRemoteObjectPendingCallWatcher.waitForFinished": [(), ('int',)],
-# class PySide2.QtRemoteObjects.QRemoteObjectRegistry:
- "PySide2.QtRemoteObjects.QRemoteObjectRegistry.initialize": (),
- "PySide2.QtRemoteObjects.QRemoteObjectRegistry.pushToRegistryIfNeeded": (),
- "PySide2.QtRemoteObjects.QRemoteObjectRegistry.registerMetatypes": (),
-# class PySide2.QtRemoteObjects.QRemoteObjectRegistryHost:
- "PySide2.QtRemoteObjects.QRemoteObjectRegistryHost.__init__": ('PySide2.QtCore.QUrl', 'PySide2.QtCore.QObject'),
- "PySide2.QtRemoteObjects.QRemoteObjectRegistryHost.setRegistryUrl": ('PySide2.QtCore.QUrl',),
-# class PySide2.QtRemoteObjects.QRemoteObjectReplica:
-# class PySide2.QtRemoteObjects.QRemoteObjectReplica.State:
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.__init__": (),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.initialize": (),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.initializeNode": ('PySide2.QtRemoteObjects.QRemoteObjectNode', 'str'),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.isInitialized": (),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.isReplicaValid": (),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.node": (),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.persistProperties": ('str', 'PySide2.QtCore.QByteArray', 'typing.Sequence[typing.Any]'),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.propAsVariant": ('int',),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.retrieveProperties": ('str', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.send": ('PySide2.QtCore.QMetaObject.Call', 'int', 'typing.Sequence[typing.Any]'),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.sendWithReply": ('PySide2.QtCore.QMetaObject.Call', 'int', 'typing.Sequence[typing.Any]'),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.setChild": ('int', 'typing.Any'),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.setNode": ('PySide2.QtRemoteObjects.QRemoteObjectNode',),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.setProperties": ('typing.Sequence[typing.Any]',),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.state": (),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.waitForSource": ('int',),
-# class PySide2.QtRemoteObjects.QRemoteObjectSettingsStore:
- "PySide2.QtRemoteObjects.QRemoteObjectSettingsStore.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtRemoteObjects.QRemoteObjectSettingsStore.restoreProperties": ('str', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtRemoteObjects.QRemoteObjectSettingsStore.saveProperties": ('str', 'PySide2.QtCore.QByteArray', 'typing.Sequence[typing.Any]'),
- }) if "PySide2.QtRemoteObjects" in sys.modules else None
-# Module PySide2.QtScxml
-sig_dict.update({
-# class PySide2.QtScxml.QScxmlCompiler:
-# class PySide2.QtScxml.QScxmlCompiler.Loader:
- "PySide2.QtScxml.QScxmlCompiler.Loader.__init__": (),
- "PySide2.QtScxml.QScxmlCompiler.Loader.load": ('str', 'str'),
- "PySide2.QtScxml.QScxmlCompiler.__init__": ('PySide2.QtCore.QXmlStreamReader',),
- "PySide2.QtScxml.QScxmlCompiler.compile": (),
- "PySide2.QtScxml.QScxmlCompiler.errors": (),
- "PySide2.QtScxml.QScxmlCompiler.fileName": (),
- "PySide2.QtScxml.QScxmlCompiler.loader": (),
- "PySide2.QtScxml.QScxmlCompiler.setFileName": ('str',),
- "PySide2.QtScxml.QScxmlCompiler.setLoader": ('PySide2.QtScxml.QScxmlCompiler.Loader',),
-# class PySide2.QtScxml.QScxmlCppDataModel:
- "PySide2.QtScxml.QScxmlCppDataModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtScxml.QScxmlCppDataModel.evaluateAssignment": ('int',),
- "PySide2.QtScxml.QScxmlCppDataModel.evaluateForeach": ('int', 'PySide2.QtScxml.QScxmlDataModel.ForeachLoopBody'),
- "PySide2.QtScxml.QScxmlCppDataModel.evaluateInitialization": ('int',),
- "PySide2.QtScxml.QScxmlCppDataModel.hasScxmlProperty": ('str',),
- "PySide2.QtScxml.QScxmlCppDataModel.inState": ('str',),
- "PySide2.QtScxml.QScxmlCppDataModel.scxmlEvent": (),
- "PySide2.QtScxml.QScxmlCppDataModel.scxmlProperty": ('str',),
- "PySide2.QtScxml.QScxmlCppDataModel.setScxmlEvent": ('PySide2.QtScxml.QScxmlEvent',),
- "PySide2.QtScxml.QScxmlCppDataModel.setScxmlProperty": ('str', 'typing.Any', 'str'),
- "PySide2.QtScxml.QScxmlCppDataModel.setup": ('typing.Dict[str, typing.Any]',),
-# class PySide2.QtScxml.QScxmlDataModel:
-# class PySide2.QtScxml.QScxmlDataModel.ForeachLoopBody:
- "PySide2.QtScxml.QScxmlDataModel.ForeachLoopBody.__init__": (),
- "PySide2.QtScxml.QScxmlDataModel.ForeachLoopBody.run": (),
- "PySide2.QtScxml.QScxmlDataModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtScxml.QScxmlDataModel.evaluateAssignment": ('int',),
- "PySide2.QtScxml.QScxmlDataModel.evaluateForeach": ('int', 'PySide2.QtScxml.QScxmlDataModel.ForeachLoopBody'),
- "PySide2.QtScxml.QScxmlDataModel.evaluateInitialization": ('int',),
- "PySide2.QtScxml.QScxmlDataModel.evaluateToBool": ('int',),
- "PySide2.QtScxml.QScxmlDataModel.evaluateToString": ('int',),
- "PySide2.QtScxml.QScxmlDataModel.evaluateToVariant": ('int',),
- "PySide2.QtScxml.QScxmlDataModel.evaluateToVoid": ('int',),
- "PySide2.QtScxml.QScxmlDataModel.hasScxmlProperty": ('str',),
- "PySide2.QtScxml.QScxmlDataModel.scxmlProperty": ('str',),
- "PySide2.QtScxml.QScxmlDataModel.setScxmlEvent": ('PySide2.QtScxml.QScxmlEvent',),
- "PySide2.QtScxml.QScxmlDataModel.setScxmlProperty": ('str', 'typing.Any', 'str'),
- "PySide2.QtScxml.QScxmlDataModel.setStateMachine": ('PySide2.QtScxml.QScxmlStateMachine',),
- "PySide2.QtScxml.QScxmlDataModel.setup": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtScxml.QScxmlDataModel.stateMachine": (),
-# class PySide2.QtScxml.QScxmlDynamicScxmlServiceFactory:
- "PySide2.QtScxml.QScxmlDynamicScxmlServiceFactory.__init__": ('PySide2.QtScxml.QScxmlExecutableContent.InvokeInfo', 'typing.List[int]', 'typing.List[PySide2.QtScxml.QScxmlExecutableContent.ParameterInfo]', 'PySide2.QtCore.QObject'),
- "PySide2.QtScxml.QScxmlDynamicScxmlServiceFactory.invoke": ('PySide2.QtScxml.QScxmlStateMachine',),
-# class PySide2.QtScxml.QScxmlEcmaScriptDataModel:
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.evaluateAssignment": ('int',),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.evaluateForeach": ('int', 'PySide2.QtScxml.QScxmlDataModel.ForeachLoopBody'),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.evaluateInitialization": ('int',),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.evaluateToBool": ('int',),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.evaluateToString": ('int',),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.evaluateToVariant": ('int',),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.evaluateToVoid": ('int',),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.hasScxmlProperty": ('str',),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.scxmlProperty": ('str',),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.setScxmlEvent": ('PySide2.QtScxml.QScxmlEvent',),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.setScxmlProperty": ('str', 'typing.Any', 'str'),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.setup": ('typing.Dict[str, typing.Any]',),
-# class PySide2.QtScxml.QScxmlError:
- "PySide2.QtScxml.QScxmlError.__init__": [(), ('PySide2.QtScxml.QScxmlError',), ('str', 'int', 'int', 'str')],
- "PySide2.QtScxml.QScxmlError.__copy__": (),
- "PySide2.QtScxml.QScxmlError.column": (),
- "PySide2.QtScxml.QScxmlError.description": (),
- "PySide2.QtScxml.QScxmlError.fileName": (),
- "PySide2.QtScxml.QScxmlError.isValid": (),
- "PySide2.QtScxml.QScxmlError.line": (),
- "PySide2.QtScxml.QScxmlError.toString": (),
-# class PySide2.QtScxml.QScxmlEvent:
-# class PySide2.QtScxml.QScxmlEvent.EventType:
- "PySide2.QtScxml.QScxmlEvent.__init__": [(), ('PySide2.QtScxml.QScxmlEvent',)],
- "PySide2.QtScxml.QScxmlEvent.clear": (),
- "PySide2.QtScxml.QScxmlEvent.data": (),
- "PySide2.QtScxml.QScxmlEvent.delay": (),
- "PySide2.QtScxml.QScxmlEvent.errorMessage": (),
- "PySide2.QtScxml.QScxmlEvent.eventType": (),
- "PySide2.QtScxml.QScxmlEvent.invokeId": (),
- "PySide2.QtScxml.QScxmlEvent.isErrorEvent": (),
- "PySide2.QtScxml.QScxmlEvent.name": (),
- "PySide2.QtScxml.QScxmlEvent.origin": (),
- "PySide2.QtScxml.QScxmlEvent.originType": (),
- "PySide2.QtScxml.QScxmlEvent.scxmlType": (),
- "PySide2.QtScxml.QScxmlEvent.sendId": (),
- "PySide2.QtScxml.QScxmlEvent.setData": ('typing.Any',),
- "PySide2.QtScxml.QScxmlEvent.setDelay": ('int',),
- "PySide2.QtScxml.QScxmlEvent.setErrorMessage": ('str',),
- "PySide2.QtScxml.QScxmlEvent.setEventType": ('PySide2.QtScxml.QScxmlEvent.EventType',),
- "PySide2.QtScxml.QScxmlEvent.setInvokeId": ('str',),
- "PySide2.QtScxml.QScxmlEvent.setName": ('str',),
- "PySide2.QtScxml.QScxmlEvent.setOrigin": ('str',),
- "PySide2.QtScxml.QScxmlEvent.setOriginType": ('str',),
- "PySide2.QtScxml.QScxmlEvent.setSendId": ('str',),
-# class PySide2.QtScxml.QScxmlExecutableContent:
-# class PySide2.QtScxml.QScxmlExecutableContent.AssignmentInfo:
- "PySide2.QtScxml.QScxmlExecutableContent.AssignmentInfo.__init__": [(), ('PySide2.QtScxml.QScxmlExecutableContent.AssignmentInfo',)],
- "PySide2.QtScxml.QScxmlExecutableContent.AssignmentInfo.__copy__": (),
-# class PySide2.QtScxml.QScxmlExecutableContent.EvaluatorInfo:
- "PySide2.QtScxml.QScxmlExecutableContent.EvaluatorInfo.__init__": [(), ('PySide2.QtScxml.QScxmlExecutableContent.EvaluatorInfo',)],
- "PySide2.QtScxml.QScxmlExecutableContent.EvaluatorInfo.__copy__": (),
-# class PySide2.QtScxml.QScxmlExecutableContent.ForeachInfo:
- "PySide2.QtScxml.QScxmlExecutableContent.ForeachInfo.__init__": [(), ('PySide2.QtScxml.QScxmlExecutableContent.ForeachInfo',)],
- "PySide2.QtScxml.QScxmlExecutableContent.ForeachInfo.__copy__": (),
-# class PySide2.QtScxml.QScxmlExecutableContent.InvokeInfo:
- "PySide2.QtScxml.QScxmlExecutableContent.InvokeInfo.__init__": [(), ('PySide2.QtScxml.QScxmlExecutableContent.InvokeInfo',)],
- "PySide2.QtScxml.QScxmlExecutableContent.InvokeInfo.__copy__": (),
-# class PySide2.QtScxml.QScxmlExecutableContent.ParameterInfo:
- "PySide2.QtScxml.QScxmlExecutableContent.ParameterInfo.__init__": [(), ('PySide2.QtScxml.QScxmlExecutableContent.ParameterInfo',)],
- "PySide2.QtScxml.QScxmlExecutableContent.ParameterInfo.__copy__": (),
-# class PySide2.QtScxml.QScxmlInvokableService:
- "PySide2.QtScxml.QScxmlInvokableService.__init__": ('PySide2.QtScxml.QScxmlStateMachine', 'PySide2.QtScxml.QScxmlInvokableServiceFactory'),
- "PySide2.QtScxml.QScxmlInvokableService.id": (),
- "PySide2.QtScxml.QScxmlInvokableService.name": (),
- "PySide2.QtScxml.QScxmlInvokableService.parentStateMachine": (),
- "PySide2.QtScxml.QScxmlInvokableService.postEvent": ('PySide2.QtScxml.QScxmlEvent',),
- "PySide2.QtScxml.QScxmlInvokableService.start": (),
-# class PySide2.QtScxml.QScxmlInvokableServiceFactory:
- "PySide2.QtScxml.QScxmlInvokableServiceFactory.__init__": ('PySide2.QtScxml.QScxmlExecutableContent.InvokeInfo', 'typing.List[int]', 'typing.List[PySide2.QtScxml.QScxmlExecutableContent.ParameterInfo]', 'PySide2.QtCore.QObject'),
- "PySide2.QtScxml.QScxmlInvokableServiceFactory.invoke": ('PySide2.QtScxml.QScxmlStateMachine',),
- "PySide2.QtScxml.QScxmlInvokableServiceFactory.invokeInfo": (),
- "PySide2.QtScxml.QScxmlInvokableServiceFactory.names": (),
- "PySide2.QtScxml.QScxmlInvokableServiceFactory.parameters": (),
-# class PySide2.QtScxml.QScxmlNullDataModel:
- "PySide2.QtScxml.QScxmlNullDataModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtScxml.QScxmlNullDataModel.evaluateAssignment": ('int',),
- "PySide2.QtScxml.QScxmlNullDataModel.evaluateForeach": ('int', 'PySide2.QtScxml.QScxmlDataModel.ForeachLoopBody'),
- "PySide2.QtScxml.QScxmlNullDataModel.evaluateInitialization": ('int',),
- "PySide2.QtScxml.QScxmlNullDataModel.evaluateToBool": ('int',),
- "PySide2.QtScxml.QScxmlNullDataModel.evaluateToString": ('int',),
- "PySide2.QtScxml.QScxmlNullDataModel.evaluateToVariant": ('int',),
- "PySide2.QtScxml.QScxmlNullDataModel.evaluateToVoid": ('int',),
- "PySide2.QtScxml.QScxmlNullDataModel.hasScxmlProperty": ('str',),
- "PySide2.QtScxml.QScxmlNullDataModel.scxmlProperty": ('str',),
- "PySide2.QtScxml.QScxmlNullDataModel.setScxmlEvent": ('PySide2.QtScxml.QScxmlEvent',),
- "PySide2.QtScxml.QScxmlNullDataModel.setScxmlProperty": ('str', 'typing.Any', 'str'),
- "PySide2.QtScxml.QScxmlNullDataModel.setup": ('typing.Dict[str, typing.Any]',),
-# class PySide2.QtScxml.QScxmlStateMachine:
- "PySide2.QtScxml.QScxmlStateMachine.__init__": ('PySide2.QtCore.QMetaObject', 'PySide2.QtCore.QObject'),
- "PySide2.QtScxml.QScxmlStateMachine.activeStateNames": ('bool',),
- "PySide2.QtScxml.QScxmlStateMachine.cancelDelayedEvent": ('str',),
- "PySide2.QtScxml.QScxmlStateMachine.connectToEvent": ('str', 'PySide2.QtCore.QObject', 'str', 'PySide2.QtCore.Qt.ConnectionType'),
- "PySide2.QtScxml.QScxmlStateMachine.connectToState": ('str', 'PySide2.QtCore.QObject', 'str', 'PySide2.QtCore.Qt.ConnectionType'),
- "PySide2.QtScxml.QScxmlStateMachine.dataModel": (),
- "PySide2.QtScxml.QScxmlStateMachine.fromData": ('PySide2.QtCore.QIODevice', 'str'),
- "PySide2.QtScxml.QScxmlStateMachine.fromFile": ('str',),
- "PySide2.QtScxml.QScxmlStateMachine.init": (),
- "PySide2.QtScxml.QScxmlStateMachine.initialValues": (),
- "PySide2.QtScxml.QScxmlStateMachine.invokedServices": (),
- "PySide2.QtScxml.QScxmlStateMachine.isActive": [('int',), ('str',)],
- "PySide2.QtScxml.QScxmlStateMachine.isDispatchableTarget": ('str',),
- "PySide2.QtScxml.QScxmlStateMachine.isInitialized": (),
- "PySide2.QtScxml.QScxmlStateMachine.isInvoked": (),
- "PySide2.QtScxml.QScxmlStateMachine.isRunning": (),
- "PySide2.QtScxml.QScxmlStateMachine.loader": (),
- "PySide2.QtScxml.QScxmlStateMachine.name": (),
- "PySide2.QtScxml.QScxmlStateMachine.parseErrors": (),
- "PySide2.QtScxml.QScxmlStateMachine.sessionId": (),
- "PySide2.QtScxml.QScxmlStateMachine.setDataModel": ('PySide2.QtScxml.QScxmlDataModel',),
- "PySide2.QtScxml.QScxmlStateMachine.setInitialValues": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtScxml.QScxmlStateMachine.setLoader": ('PySide2.QtScxml.QScxmlCompiler.Loader',),
- "PySide2.QtScxml.QScxmlStateMachine.setRunning": ('bool',),
- "PySide2.QtScxml.QScxmlStateMachine.setTableData": ('PySide2.QtScxml.QScxmlTableData',),
- "PySide2.QtScxml.QScxmlStateMachine.start": (),
- "PySide2.QtScxml.QScxmlStateMachine.stateNames": ('bool',),
- "PySide2.QtScxml.QScxmlStateMachine.stop": (),
- "PySide2.QtScxml.QScxmlStateMachine.submitEvent": [('PySide2.QtScxml.QScxmlEvent',), ('str',), ('str', 'typing.Any')],
- "PySide2.QtScxml.QScxmlStateMachine.tableData": (),
-# class PySide2.QtScxml.QScxmlStaticScxmlServiceFactory:
- "PySide2.QtScxml.QScxmlStaticScxmlServiceFactory.__init__": ('PySide2.QtCore.QMetaObject', 'PySide2.QtScxml.QScxmlExecutableContent.InvokeInfo', 'typing.List[int]', 'typing.List[PySide2.QtScxml.QScxmlExecutableContent.ParameterInfo]', 'PySide2.QtCore.QObject'),
- "PySide2.QtScxml.QScxmlStaticScxmlServiceFactory.invoke": ('PySide2.QtScxml.QScxmlStateMachine',),
-# class PySide2.QtScxml.QScxmlTableData:
- "PySide2.QtScxml.QScxmlTableData.__init__": (),
- "PySide2.QtScxml.QScxmlTableData.assignmentInfo": ('int',),
- "PySide2.QtScxml.QScxmlTableData.dataNames": (),
- "PySide2.QtScxml.QScxmlTableData.evaluatorInfo": ('int',),
- "PySide2.QtScxml.QScxmlTableData.foreachInfo": ('int',),
- "PySide2.QtScxml.QScxmlTableData.initialSetup": (),
- "PySide2.QtScxml.QScxmlTableData.instructions": (),
- "PySide2.QtScxml.QScxmlTableData.name": (),
- "PySide2.QtScxml.QScxmlTableData.serviceFactory": ('int',),
- "PySide2.QtScxml.QScxmlTableData.stateMachineTable": (),
- "PySide2.QtScxml.QScxmlTableData.string": ('int',),
- }) if "PySide2.QtScxml" in sys.modules else None
-# Module PySide2.QtScript
-sig_dict.update({
-# class PySide2.QtScript.QScriptClass:
-# class PySide2.QtScript.QScriptClass.Extension:
-# class PySide2.QtScript.QScriptClass.QueryFlag:
- "PySide2.QtScript.QScriptClass.__init__": ('PySide2.QtScript.QScriptEngine',),
- "PySide2.QtScript.QScriptClass.engine": (),
- "PySide2.QtScript.QScriptClass.extension": ('PySide2.QtScript.QScriptClass.Extension', 'typing.Any'),
- "PySide2.QtScript.QScriptClass.name": (),
- "PySide2.QtScript.QScriptClass.newIterator": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptClass.property": ('PySide2.QtScript.QScriptValue', 'PySide2.QtScript.QScriptString', 'int'),
- "PySide2.QtScript.QScriptClass.propertyFlags": ('PySide2.QtScript.QScriptValue', 'PySide2.QtScript.QScriptString', 'int'),
- "PySide2.QtScript.QScriptClass.prototype": (),
- "PySide2.QtScript.QScriptClass.setProperty": ('PySide2.QtScript.QScriptValue', 'PySide2.QtScript.QScriptString', 'int', 'PySide2.QtScript.QScriptValue'),
- "PySide2.QtScript.QScriptClass.supportsExtension": ('PySide2.QtScript.QScriptClass.Extension',),
-# class PySide2.QtScript.QScriptClassPropertyIterator:
- "PySide2.QtScript.QScriptClassPropertyIterator.__init__": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptClassPropertyIterator.flags": (),
- "PySide2.QtScript.QScriptClassPropertyIterator.hasNext": (),
- "PySide2.QtScript.QScriptClassPropertyIterator.hasPrevious": (),
- "PySide2.QtScript.QScriptClassPropertyIterator.id": (),
- "PySide2.QtScript.QScriptClassPropertyIterator.name": (),
- "PySide2.QtScript.QScriptClassPropertyIterator.object": (),
- "PySide2.QtScript.QScriptClassPropertyIterator.previous": (),
- "PySide2.QtScript.QScriptClassPropertyIterator.toBack": (),
- "PySide2.QtScript.QScriptClassPropertyIterator.toFront": (),
-# class PySide2.QtScript.QScriptContext:
-# class PySide2.QtScript.QScriptContext.Error:
-# class PySide2.QtScript.QScriptContext.ExecutionState:
- "PySide2.QtScript.QScriptContext.activationObject": (),
- "PySide2.QtScript.QScriptContext.argument": ('int',),
- "PySide2.QtScript.QScriptContext.argumentCount": (),
- "PySide2.QtScript.QScriptContext.argumentsObject": (),
- "PySide2.QtScript.QScriptContext.backtrace": (),
- "PySide2.QtScript.QScriptContext.callee": (),
- "PySide2.QtScript.QScriptContext.engine": (),
- "PySide2.QtScript.QScriptContext.isCalledAsConstructor": (),
- "PySide2.QtScript.QScriptContext.parentContext": (),
- "PySide2.QtScript.QScriptContext.popScope": (),
- "PySide2.QtScript.QScriptContext.pushScope": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptContext.returnValue": (),
- "PySide2.QtScript.QScriptContext.scopeChain": (),
- "PySide2.QtScript.QScriptContext.setActivationObject": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptContext.setReturnValue": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptContext.setThisObject": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptContext.state": (),
- "PySide2.QtScript.QScriptContext.thisObject": (),
- "PySide2.QtScript.QScriptContext.throwError": [('PySide2.QtScript.QScriptContext.Error', 'str'), ('str',)],
- "PySide2.QtScript.QScriptContext.throwValue": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptContext.toString": (),
-# class PySide2.QtScript.QScriptContextInfo:
-# class PySide2.QtScript.QScriptContextInfo.FunctionType:
- "PySide2.QtScript.QScriptContextInfo.__init__": [(), ('PySide2.QtScript.QScriptContext',), ('PySide2.QtScript.QScriptContextInfo',)],
- "PySide2.QtScript.QScriptContextInfo.__copy__": (),
- "PySide2.QtScript.QScriptContextInfo.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtScript.QScriptContextInfo.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtScript.QScriptContextInfo.columnNumber": (),
- "PySide2.QtScript.QScriptContextInfo.fileName": (),
- "PySide2.QtScript.QScriptContextInfo.functionEndLineNumber": (),
- "PySide2.QtScript.QScriptContextInfo.functionMetaIndex": (),
- "PySide2.QtScript.QScriptContextInfo.functionName": (),
- "PySide2.QtScript.QScriptContextInfo.functionParameterNames": (),
- "PySide2.QtScript.QScriptContextInfo.functionStartLineNumber": (),
- "PySide2.QtScript.QScriptContextInfo.functionType": (),
- "PySide2.QtScript.QScriptContextInfo.isNull": (),
- "PySide2.QtScript.QScriptContextInfo.lineNumber": (),
- "PySide2.QtScript.QScriptContextInfo.scriptId": (),
-# class PySide2.QtScript.QScriptEngine:
-# class PySide2.QtScript.QScriptEngine.QObjectWrapOption:
-# class PySide2.QtScript.QScriptEngine.QObjectWrapOptions:
-# class PySide2.QtScript.QScriptEngine.ValueOwnership:
- "PySide2.QtScript.QScriptEngine.__init__": [(), ('PySide2.QtCore.QObject',)],
- "PySide2.QtScript.QScriptEngine.abortEvaluation": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptEngine.agent": (),
- "PySide2.QtScript.QScriptEngine.availableExtensions": (),
- "PySide2.QtScript.QScriptEngine.canEvaluate": ('str',),
- "PySide2.QtScript.QScriptEngine.clearExceptions": (),
- "PySide2.QtScript.QScriptEngine.collectGarbage": (),
- "PySide2.QtScript.QScriptEngine.currentContext": (),
- "PySide2.QtScript.QScriptEngine.defaultPrototype": ('int',),
- "PySide2.QtScript.QScriptEngine.evaluate": [('PySide2.QtScript.QScriptProgram',), ('str', 'str', 'int')],
- "PySide2.QtScript.QScriptEngine.globalObject": (),
- "PySide2.QtScript.QScriptEngine.hasUncaughtException": (),
- "PySide2.QtScript.QScriptEngine.importExtension": ('str',),
- "PySide2.QtScript.QScriptEngine.importedExtensions": (),
- "PySide2.QtScript.QScriptEngine.installTranslatorFunctions": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptEngine.isEvaluating": (),
- "PySide2.QtScript.QScriptEngine.newActivationObject": (),
- "PySide2.QtScript.QScriptEngine.newArray": ('int',),
- "PySide2.QtScript.QScriptEngine.newDate": [('PySide2.QtCore.QDateTime',), ('float',)],
- "PySide2.QtScript.QScriptEngine.newObject": [(), ('PySide2.QtScript.QScriptClass', 'PySide2.QtScript.QScriptValue')],
- "PySide2.QtScript.QScriptEngine.newQMetaObject": ('PySide2.QtCore.QMetaObject', 'PySide2.QtScript.QScriptValue'),
- "PySide2.QtScript.QScriptEngine.newQObject": [('PySide2.QtCore.QObject', 'PySide2.QtScript.QScriptEngine.ValueOwnership', 'PySide2.QtScript.QScriptEngine.QObjectWrapOptions'), ('PySide2.QtScript.QScriptValue', 'PySide2.QtCore.QObject', 'PySide2.QtScript.QScriptEngine.ValueOwnership', 'PySide2.QtScript.QScriptEngine.QObjectWrapOptions')],
- "PySide2.QtScript.QScriptEngine.newRegExp": [('PySide2.QtCore.QRegExp',), ('str', 'str')],
- "PySide2.QtScript.QScriptEngine.newVariant": [('PySide2.QtScript.QScriptValue', 'typing.Any'), ('typing.Any',)],
- "PySide2.QtScript.QScriptEngine.nullValue": (),
- "PySide2.QtScript.QScriptEngine.objectById": ('int',),
- "PySide2.QtScript.QScriptEngine.popContext": (),
- "PySide2.QtScript.QScriptEngine.processEventsInterval": (),
- "PySide2.QtScript.QScriptEngine.pushContext": (),
- "PySide2.QtScript.QScriptEngine.reportAdditionalMemoryCost": ('int',),
- "PySide2.QtScript.QScriptEngine.setAgent": ('PySide2.QtScript.QScriptEngineAgent',),
- "PySide2.QtScript.QScriptEngine.setDefaultPrototype": ('int', 'PySide2.QtScript.QScriptValue'),
- "PySide2.QtScript.QScriptEngine.setGlobalObject": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptEngine.setProcessEventsInterval": ('int',),
- "PySide2.QtScript.QScriptEngine.toObject": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptEngine.toStringHandle": ('str',),
- "PySide2.QtScript.QScriptEngine.uncaughtException": (),
- "PySide2.QtScript.QScriptEngine.uncaughtExceptionBacktrace": (),
- "PySide2.QtScript.QScriptEngine.uncaughtExceptionLineNumber": (),
- "PySide2.QtScript.QScriptEngine.undefinedValue": (),
-# class PySide2.QtScript.QScriptEngineAgent:
-# class PySide2.QtScript.QScriptEngineAgent.Extension:
- "PySide2.QtScript.QScriptEngineAgent.__init__": ('PySide2.QtScript.QScriptEngine',),
- "PySide2.QtScript.QScriptEngineAgent.contextPop": (),
- "PySide2.QtScript.QScriptEngineAgent.contextPush": (),
- "PySide2.QtScript.QScriptEngineAgent.engine": (),
- "PySide2.QtScript.QScriptEngineAgent.exceptionCatch": ('int', 'PySide2.QtScript.QScriptValue'),
- "PySide2.QtScript.QScriptEngineAgent.exceptionThrow": ('int', 'PySide2.QtScript.QScriptValue', 'bool'),
- "PySide2.QtScript.QScriptEngineAgent.extension": ('PySide2.QtScript.QScriptEngineAgent.Extension', 'typing.Any'),
- "PySide2.QtScript.QScriptEngineAgent.functionEntry": ('int',),
- "PySide2.QtScript.QScriptEngineAgent.functionExit": ('int', 'PySide2.QtScript.QScriptValue'),
- "PySide2.QtScript.QScriptEngineAgent.positionChange": ('int', 'int', 'int'),
- "PySide2.QtScript.QScriptEngineAgent.scriptLoad": ('int', 'str', 'str', 'int'),
- "PySide2.QtScript.QScriptEngineAgent.scriptUnload": ('int',),
- "PySide2.QtScript.QScriptEngineAgent.supportsExtension": ('PySide2.QtScript.QScriptEngineAgent.Extension',),
-# class PySide2.QtScript.QScriptExtensionInterface:
- "PySide2.QtScript.QScriptExtensionInterface.__init__": (),
- "PySide2.QtScript.QScriptExtensionInterface.initialize": ('str', 'PySide2.QtScript.QScriptEngine'),
-# class PySide2.QtScript.QScriptExtensionPlugin:
- "PySide2.QtScript.QScriptExtensionPlugin.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtScript.QScriptExtensionPlugin.initialize": ('str', 'PySide2.QtScript.QScriptEngine'),
- "PySide2.QtScript.QScriptExtensionPlugin.keys": (),
- "PySide2.QtScript.QScriptExtensionPlugin.setupPackage": ('str', 'PySide2.QtScript.QScriptEngine'),
-# class PySide2.QtScript.QScriptProgram:
- "PySide2.QtScript.QScriptProgram.__init__": [(), ('PySide2.QtScript.QScriptProgram',), ('str', 'str', 'int')],
- "PySide2.QtScript.QScriptProgram.__copy__": (),
- "PySide2.QtScript.QScriptProgram.fileName": (),
- "PySide2.QtScript.QScriptProgram.firstLineNumber": (),
- "PySide2.QtScript.QScriptProgram.isNull": (),
- "PySide2.QtScript.QScriptProgram.sourceCode": (),
-# class PySide2.QtScript.QScriptString:
- "PySide2.QtScript.QScriptString.__init__": [(), ('PySide2.QtScript.QScriptString',)],
- "PySide2.QtScript.QScriptString.__copy__": (),
- "PySide2.QtScript.QScriptString.isValid": (),
- "PySide2.QtScript.QScriptString.toArrayIndex": (),
- "PySide2.QtScript.QScriptString.toString": (),
-# class PySide2.QtScript.QScriptValue:
-# class PySide2.QtScript.QScriptValue.PropertyFlag:
-# class PySide2.QtScript.QScriptValue.PropertyFlags:
-# class PySide2.QtScript.QScriptValue.ResolveFlag:
-# class PySide2.QtScript.QScriptValue.ResolveFlags:
-# class PySide2.QtScript.QScriptValue.SpecialValue:
- "PySide2.QtScript.QScriptValue.__init__": [(), ('PySide2.QtScript.QScriptEngine', 'PySide2.QtScript.QScriptValue.SpecialValue'), ('PySide2.QtScript.QScriptEngine', 'bool'), ('PySide2.QtScript.QScriptEngine', 'float'), ('PySide2.QtScript.QScriptEngine', 'int'), ('PySide2.QtScript.QScriptEngine', 'str'), ('PySide2.QtScript.QScriptValue',), ('PySide2.QtScript.QScriptValue.SpecialValue',), ('bool',), ('float',), ('int',), ('str',)],
- "PySide2.QtScript.QScriptValue.__copy__": (),
- "PySide2.QtScript.QScriptValue.__iter__": (),
- "PySide2.QtScript.QScriptValue.__repr__": (),
- "PySide2.QtScript.QScriptValue.call": [('PySide2.QtScript.QScriptValue', 'PySide2.QtScript.QScriptValue'), ('PySide2.QtScript.QScriptValue', 'typing.Sequence[PySide2.QtScript.QScriptValue]')],
- "PySide2.QtScript.QScriptValue.construct": [('PySide2.QtScript.QScriptValue',), ('typing.Sequence[PySide2.QtScript.QScriptValue]',)],
- "PySide2.QtScript.QScriptValue.data": (),
- "PySide2.QtScript.QScriptValue.engine": (),
- "PySide2.QtScript.QScriptValue.equals": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptValue.instanceOf": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptValue.isArray": (),
- "PySide2.QtScript.QScriptValue.isBool": (),
- "PySide2.QtScript.QScriptValue.isBoolean": (),
- "PySide2.QtScript.QScriptValue.isDate": (),
- "PySide2.QtScript.QScriptValue.isError": (),
- "PySide2.QtScript.QScriptValue.isFunction": (),
- "PySide2.QtScript.QScriptValue.isNull": (),
- "PySide2.QtScript.QScriptValue.isNumber": (),
- "PySide2.QtScript.QScriptValue.isObject": (),
- "PySide2.QtScript.QScriptValue.isQMetaObject": (),
- "PySide2.QtScript.QScriptValue.isQObject": (),
- "PySide2.QtScript.QScriptValue.isRegExp": (),
- "PySide2.QtScript.QScriptValue.isString": (),
- "PySide2.QtScript.QScriptValue.isUndefined": (),
- "PySide2.QtScript.QScriptValue.isValid": (),
- "PySide2.QtScript.QScriptValue.isVariant": (),
- "PySide2.QtScript.QScriptValue.lessThan": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptValue.objectId": (),
- "PySide2.QtScript.QScriptValue.property": [('PySide2.QtScript.QScriptString', 'PySide2.QtScript.QScriptValue.ResolveFlags'), ('int', 'PySide2.QtScript.QScriptValue.ResolveFlags'), ('str', 'PySide2.QtScript.QScriptValue.ResolveFlags')],
- "PySide2.QtScript.QScriptValue.propertyFlags": [('PySide2.QtScript.QScriptString', 'PySide2.QtScript.QScriptValue.ResolveFlags'), ('str', 'PySide2.QtScript.QScriptValue.ResolveFlags')],
- "PySide2.QtScript.QScriptValue.prototype": (),
- "PySide2.QtScript.QScriptValue.scope": (),
- "PySide2.QtScript.QScriptValue.scriptClass": (),
- "PySide2.QtScript.QScriptValue.setData": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptValue.setProperty": [('PySide2.QtScript.QScriptString', 'PySide2.QtScript.QScriptValue', 'PySide2.QtScript.QScriptValue.PropertyFlags'), ('int', 'PySide2.QtScript.QScriptValue', 'PySide2.QtScript.QScriptValue.PropertyFlags'), ('str', 'PySide2.QtScript.QScriptValue', 'PySide2.QtScript.QScriptValue.PropertyFlags')],
- "PySide2.QtScript.QScriptValue.setPrototype": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptValue.setScope": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptValue.setScriptClass": ('PySide2.QtScript.QScriptClass',),
- "PySide2.QtScript.QScriptValue.strictlyEquals": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptValue.toBool": (),
- "PySide2.QtScript.QScriptValue.toBoolean": (),
- "PySide2.QtScript.QScriptValue.toDateTime": (),
- "PySide2.QtScript.QScriptValue.toInt32": (),
- "PySide2.QtScript.QScriptValue.toInteger": (),
- "PySide2.QtScript.QScriptValue.toNumber": (),
- "PySide2.QtScript.QScriptValue.toObject": (),
- "PySide2.QtScript.QScriptValue.toQMetaObject": (),
- "PySide2.QtScript.QScriptValue.toQObject": (),
- "PySide2.QtScript.QScriptValue.toRegExp": (),
- "PySide2.QtScript.QScriptValue.toString": (),
- "PySide2.QtScript.QScriptValue.toUInt16": (),
- "PySide2.QtScript.QScriptValue.toUInt32": (),
- "PySide2.QtScript.QScriptValue.toVariant": (),
-# class PySide2.QtScript.QScriptValueIterator:
- "PySide2.QtScript.QScriptValueIterator.__init__": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptValueIterator.__iter__": (),
- "PySide2.QtScript.QScriptValueIterator.flags": (),
- "PySide2.QtScript.QScriptValueIterator.hasNext": (),
- "PySide2.QtScript.QScriptValueIterator.hasPrevious": (),
- "PySide2.QtScript.QScriptValueIterator.name": (),
- "PySide2.QtScript.QScriptValueIterator.previous": (),
- "PySide2.QtScript.QScriptValueIterator.remove": (),
- "PySide2.QtScript.QScriptValueIterator.scriptName": (),
- "PySide2.QtScript.QScriptValueIterator.setValue": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptValueIterator.toBack": (),
- "PySide2.QtScript.QScriptValueIterator.toFront": (),
- "PySide2.QtScript.QScriptValueIterator.value": (),
-# class PySide2.QtScript.QScriptable:
- "PySide2.QtScript.QScriptable.__init__": (),
- "PySide2.QtScript.QScriptable.argument": ('int',),
- "PySide2.QtScript.QScriptable.argumentCount": (),
- "PySide2.QtScript.QScriptable.context": (),
- "PySide2.QtScript.QScriptable.engine": (),
- "PySide2.QtScript.QScriptable.thisObject": (),
- }) if "PySide2.QtScript" in sys.modules else None
-# Module PySide2.QtScriptTools
-sig_dict.update({
-# class PySide2.QtScriptTools.QScriptEngineDebugger:
-# class PySide2.QtScriptTools.QScriptEngineDebugger.DebuggerAction:
-# class PySide2.QtScriptTools.QScriptEngineDebugger.DebuggerState:
-# class PySide2.QtScriptTools.QScriptEngineDebugger.DebuggerWidget:
- "PySide2.QtScriptTools.QScriptEngineDebugger.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtScriptTools.QScriptEngineDebugger.action": ('PySide2.QtScriptTools.QScriptEngineDebugger.DebuggerAction',),
- "PySide2.QtScriptTools.QScriptEngineDebugger.attachTo": ('PySide2.QtScript.QScriptEngine',),
- "PySide2.QtScriptTools.QScriptEngineDebugger.autoShowStandardWindow": (),
- "PySide2.QtScriptTools.QScriptEngineDebugger.createStandardMenu": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtScriptTools.QScriptEngineDebugger.createStandardToolBar": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtScriptTools.QScriptEngineDebugger.setAutoShowStandardWindow": ('bool',),
- "PySide2.QtScriptTools.QScriptEngineDebugger.standardWindow": (),
- "PySide2.QtScriptTools.QScriptEngineDebugger.state": (),
- "PySide2.QtScriptTools.QScriptEngineDebugger.widget": ('PySide2.QtScriptTools.QScriptEngineDebugger.DebuggerWidget',),
- }) if "PySide2.QtScriptTools" in sys.modules else None
-# Module PySide2.QtSensors
-sig_dict.update({
-# class PySide2.QtSensors.QAccelerometer:
-# class PySide2.QtSensors.QAccelerometer.AccelerationMode:
- "PySide2.QtSensors.QAccelerometer.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QAccelerometer.accelerationMode": (),
- "PySide2.QtSensors.QAccelerometer.reading": (),
- "PySide2.QtSensors.QAccelerometer.setAccelerationMode": ('PySide2.QtSensors.QAccelerometer.AccelerationMode',),
-# class PySide2.QtSensors.QAccelerometerFilter:
- "PySide2.QtSensors.QAccelerometerFilter.__init__": (),
- "PySide2.QtSensors.QAccelerometerFilter.filter": [('PySide2.QtSensors.QAccelerometerReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QAccelerometerReading:
- "PySide2.QtSensors.QAccelerometerReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QAccelerometerReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QAccelerometerReading.setX": ('float',),
- "PySide2.QtSensors.QAccelerometerReading.setY": ('float',),
- "PySide2.QtSensors.QAccelerometerReading.setZ": ('float',),
- "PySide2.QtSensors.QAccelerometerReading.x": (),
- "PySide2.QtSensors.QAccelerometerReading.y": (),
- "PySide2.QtSensors.QAccelerometerReading.z": (),
-# class PySide2.QtSensors.QAltimeter:
- "PySide2.QtSensors.QAltimeter.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QAltimeter.reading": (),
-# class PySide2.QtSensors.QAltimeterFilter:
- "PySide2.QtSensors.QAltimeterFilter.__init__": (),
- "PySide2.QtSensors.QAltimeterFilter.filter": [('PySide2.QtSensors.QAltimeterReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QAltimeterReading:
- "PySide2.QtSensors.QAltimeterReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QAltimeterReading.altitude": (),
- "PySide2.QtSensors.QAltimeterReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QAltimeterReading.setAltitude": ('float',),
-# class PySide2.QtSensors.QAmbientLightFilter:
- "PySide2.QtSensors.QAmbientLightFilter.__init__": (),
- "PySide2.QtSensors.QAmbientLightFilter.filter": [('PySide2.QtSensors.QAmbientLightReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QAmbientLightReading:
-# class PySide2.QtSensors.QAmbientLightReading.LightLevel:
- "PySide2.QtSensors.QAmbientLightReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QAmbientLightReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QAmbientLightReading.lightLevel": (),
- "PySide2.QtSensors.QAmbientLightReading.setLightLevel": ('PySide2.QtSensors.QAmbientLightReading.LightLevel',),
-# class PySide2.QtSensors.QAmbientLightSensor:
- "PySide2.QtSensors.QAmbientLightSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QAmbientLightSensor.reading": (),
-# class PySide2.QtSensors.QAmbientTemperatureFilter:
- "PySide2.QtSensors.QAmbientTemperatureFilter.__init__": (),
- "PySide2.QtSensors.QAmbientTemperatureFilter.filter": [('PySide2.QtSensors.QAmbientTemperatureReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QAmbientTemperatureReading:
- "PySide2.QtSensors.QAmbientTemperatureReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QAmbientTemperatureReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QAmbientTemperatureReading.setTemperature": ('float',),
- "PySide2.QtSensors.QAmbientTemperatureReading.temperature": (),
-# class PySide2.QtSensors.QAmbientTemperatureSensor:
- "PySide2.QtSensors.QAmbientTemperatureSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QAmbientTemperatureSensor.reading": (),
-# class PySide2.QtSensors.QCompass:
- "PySide2.QtSensors.QCompass.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QCompass.reading": (),
-# class PySide2.QtSensors.QCompassFilter:
- "PySide2.QtSensors.QCompassFilter.__init__": (),
- "PySide2.QtSensors.QCompassFilter.filter": [('PySide2.QtSensors.QCompassReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QCompassReading:
- "PySide2.QtSensors.QCompassReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QCompassReading.azimuth": (),
- "PySide2.QtSensors.QCompassReading.calibrationLevel": (),
- "PySide2.QtSensors.QCompassReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QCompassReading.setAzimuth": ('float',),
- "PySide2.QtSensors.QCompassReading.setCalibrationLevel": ('float',),
-# class PySide2.QtSensors.QDistanceFilter:
- "PySide2.QtSensors.QDistanceFilter.__init__": (),
- "PySide2.QtSensors.QDistanceFilter.filter": [('PySide2.QtSensors.QDistanceReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QDistanceReading:
- "PySide2.QtSensors.QDistanceReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QDistanceReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QDistanceReading.distance": (),
- "PySide2.QtSensors.QDistanceReading.setDistance": ('float',),
-# class PySide2.QtSensors.QDistanceSensor:
- "PySide2.QtSensors.QDistanceSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QDistanceSensor.reading": (),
-# class PySide2.QtSensors.QGyroscope:
- "PySide2.QtSensors.QGyroscope.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QGyroscope.reading": (),
-# class PySide2.QtSensors.QGyroscopeFilter:
- "PySide2.QtSensors.QGyroscopeFilter.__init__": (),
- "PySide2.QtSensors.QGyroscopeFilter.filter": [('PySide2.QtSensors.QGyroscopeReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QGyroscopeReading:
- "PySide2.QtSensors.QGyroscopeReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QGyroscopeReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QGyroscopeReading.setX": ('float',),
- "PySide2.QtSensors.QGyroscopeReading.setY": ('float',),
- "PySide2.QtSensors.QGyroscopeReading.setZ": ('float',),
- "PySide2.QtSensors.QGyroscopeReading.x": (),
- "PySide2.QtSensors.QGyroscopeReading.y": (),
- "PySide2.QtSensors.QGyroscopeReading.z": (),
-# class PySide2.QtSensors.QHolsterFilter:
- "PySide2.QtSensors.QHolsterFilter.__init__": (),
- "PySide2.QtSensors.QHolsterFilter.filter": [('PySide2.QtSensors.QHolsterReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QHolsterReading:
- "PySide2.QtSensors.QHolsterReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QHolsterReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QHolsterReading.holstered": (),
- "PySide2.QtSensors.QHolsterReading.setHolstered": ('bool',),
-# class PySide2.QtSensors.QHolsterSensor:
- "PySide2.QtSensors.QHolsterSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QHolsterSensor.reading": (),
-# class PySide2.QtSensors.QHumidityFilter:
- "PySide2.QtSensors.QHumidityFilter.__init__": (),
- "PySide2.QtSensors.QHumidityFilter.filter": [('PySide2.QtSensors.QHumidityReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QHumidityReading:
- "PySide2.QtSensors.QHumidityReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QHumidityReading.absoluteHumidity": (),
- "PySide2.QtSensors.QHumidityReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QHumidityReading.relativeHumidity": (),
- "PySide2.QtSensors.QHumidityReading.setAbsoluteHumidity": ('float',),
- "PySide2.QtSensors.QHumidityReading.setRelativeHumidity": ('float',),
-# class PySide2.QtSensors.QHumiditySensor:
- "PySide2.QtSensors.QHumiditySensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QHumiditySensor.reading": (),
-# class PySide2.QtSensors.QIRProximityFilter:
- "PySide2.QtSensors.QIRProximityFilter.__init__": (),
- "PySide2.QtSensors.QIRProximityFilter.filter": [('PySide2.QtSensors.QIRProximityReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QIRProximityReading:
- "PySide2.QtSensors.QIRProximityReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QIRProximityReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QIRProximityReading.reflectance": (),
- "PySide2.QtSensors.QIRProximityReading.setReflectance": ('float',),
-# class PySide2.QtSensors.QIRProximitySensor:
- "PySide2.QtSensors.QIRProximitySensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QIRProximitySensor.reading": (),
-# class PySide2.QtSensors.QLidFilter:
- "PySide2.QtSensors.QLidFilter.__init__": (),
- "PySide2.QtSensors.QLidFilter.filter": [('PySide2.QtSensors.QLidReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QLidReading:
- "PySide2.QtSensors.QLidReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QLidReading.backLidClosed": (),
- "PySide2.QtSensors.QLidReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QLidReading.frontLidClosed": (),
- "PySide2.QtSensors.QLidReading.setBackLidClosed": ('bool',),
- "PySide2.QtSensors.QLidReading.setFrontLidClosed": ('bool',),
-# class PySide2.QtSensors.QLidSensor:
- "PySide2.QtSensors.QLidSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QLidSensor.reading": (),
-# class PySide2.QtSensors.QLightFilter:
- "PySide2.QtSensors.QLightFilter.__init__": (),
- "PySide2.QtSensors.QLightFilter.filter": [('PySide2.QtSensors.QLightReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QLightReading:
- "PySide2.QtSensors.QLightReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QLightReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QLightReading.lux": (),
- "PySide2.QtSensors.QLightReading.setLux": ('float',),
-# class PySide2.QtSensors.QLightSensor:
- "PySide2.QtSensors.QLightSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QLightSensor.fieldOfView": (),
- "PySide2.QtSensors.QLightSensor.reading": (),
- "PySide2.QtSensors.QLightSensor.setFieldOfView": ('float',),
-# class PySide2.QtSensors.QMagnetometer:
- "PySide2.QtSensors.QMagnetometer.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QMagnetometer.reading": (),
- "PySide2.QtSensors.QMagnetometer.returnGeoValues": (),
- "PySide2.QtSensors.QMagnetometer.setReturnGeoValues": ('bool',),
-# class PySide2.QtSensors.QMagnetometerFilter:
- "PySide2.QtSensors.QMagnetometerFilter.__init__": (),
- "PySide2.QtSensors.QMagnetometerFilter.filter": [('PySide2.QtSensors.QMagnetometerReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QMagnetometerReading:
- "PySide2.QtSensors.QMagnetometerReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QMagnetometerReading.calibrationLevel": (),
- "PySide2.QtSensors.QMagnetometerReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QMagnetometerReading.setCalibrationLevel": ('float',),
- "PySide2.QtSensors.QMagnetometerReading.setX": ('float',),
- "PySide2.QtSensors.QMagnetometerReading.setY": ('float',),
- "PySide2.QtSensors.QMagnetometerReading.setZ": ('float',),
- "PySide2.QtSensors.QMagnetometerReading.x": (),
- "PySide2.QtSensors.QMagnetometerReading.y": (),
- "PySide2.QtSensors.QMagnetometerReading.z": (),
-# class PySide2.QtSensors.QOrientationFilter:
- "PySide2.QtSensors.QOrientationFilter.__init__": (),
- "PySide2.QtSensors.QOrientationFilter.filter": [('PySide2.QtSensors.QOrientationReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QOrientationReading:
-# class PySide2.QtSensors.QOrientationReading.Orientation:
- "PySide2.QtSensors.QOrientationReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QOrientationReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QOrientationReading.orientation": (),
- "PySide2.QtSensors.QOrientationReading.setOrientation": ('PySide2.QtSensors.QOrientationReading.Orientation',),
-# class PySide2.QtSensors.QOrientationSensor:
- "PySide2.QtSensors.QOrientationSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QOrientationSensor.reading": (),
-# class PySide2.QtSensors.QPressureFilter:
- "PySide2.QtSensors.QPressureFilter.__init__": (),
- "PySide2.QtSensors.QPressureFilter.filter": [('PySide2.QtSensors.QPressureReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QPressureReading:
- "PySide2.QtSensors.QPressureReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QPressureReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QPressureReading.pressure": (),
- "PySide2.QtSensors.QPressureReading.setPressure": ('float',),
- "PySide2.QtSensors.QPressureReading.setTemperature": ('float',),
- "PySide2.QtSensors.QPressureReading.temperature": (),
-# class PySide2.QtSensors.QPressureSensor:
- "PySide2.QtSensors.QPressureSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QPressureSensor.reading": (),
-# class PySide2.QtSensors.QProximityFilter:
- "PySide2.QtSensors.QProximityFilter.__init__": (),
- "PySide2.QtSensors.QProximityFilter.filter": [('PySide2.QtSensors.QProximityReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QProximityReading:
- "PySide2.QtSensors.QProximityReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QProximityReading.close": (),
- "PySide2.QtSensors.QProximityReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QProximityReading.setClose": ('bool',),
-# class PySide2.QtSensors.QProximitySensor:
- "PySide2.QtSensors.QProximitySensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QProximitySensor.reading": (),
-# class PySide2.QtSensors.QRotationFilter:
- "PySide2.QtSensors.QRotationFilter.__init__": (),
- "PySide2.QtSensors.QRotationFilter.filter": [('PySide2.QtSensors.QRotationReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QRotationReading:
- "PySide2.QtSensors.QRotationReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QRotationReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QRotationReading.setFromEuler": ('float', 'float', 'float'),
- "PySide2.QtSensors.QRotationReading.x": (),
- "PySide2.QtSensors.QRotationReading.y": (),
- "PySide2.QtSensors.QRotationReading.z": (),
-# class PySide2.QtSensors.QRotationSensor:
- "PySide2.QtSensors.QRotationSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QRotationSensor.hasZ": (),
- "PySide2.QtSensors.QRotationSensor.reading": (),
- "PySide2.QtSensors.QRotationSensor.setHasZ": ('bool',),
-# class PySide2.QtSensors.QSensor:
-# class PySide2.QtSensors.QSensor.AxesOrientationMode:
-# class PySide2.QtSensors.QSensor.Feature:
- "PySide2.QtSensors.QSensor.__init__": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QObject'),
- "PySide2.QtSensors.QSensor.addFilter": ('PySide2.QtSensors.QSensorFilter',),
- "PySide2.QtSensors.QSensor.availableDataRates": (),
- "PySide2.QtSensors.QSensor.axesOrientationMode": (),
- "PySide2.QtSensors.QSensor.backend": (),
- "PySide2.QtSensors.QSensor.bufferSize": (),
- "PySide2.QtSensors.QSensor.connectToBackend": (),
- "PySide2.QtSensors.QSensor.currentOrientation": (),
- "PySide2.QtSensors.QSensor.dataRate": (),
- "PySide2.QtSensors.QSensor.defaultSensorForType": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtSensors.QSensor.description": (),
- "PySide2.QtSensors.QSensor.efficientBufferSize": (),
- "PySide2.QtSensors.QSensor.error": (),
- "PySide2.QtSensors.QSensor.filters": (),
- "PySide2.QtSensors.QSensor.identifier": (),
- "PySide2.QtSensors.QSensor.isActive": (),
- "PySide2.QtSensors.QSensor.isAlwaysOn": (),
- "PySide2.QtSensors.QSensor.isBusy": (),
- "PySide2.QtSensors.QSensor.isConnectedToBackend": (),
- "PySide2.QtSensors.QSensor.isFeatureSupported": ('PySide2.QtSensors.QSensor.Feature',),
- "PySide2.QtSensors.QSensor.maxBufferSize": (),
- "PySide2.QtSensors.QSensor.outputRange": (),
- "PySide2.QtSensors.QSensor.outputRanges": (),
- "PySide2.QtSensors.QSensor.reading": (),
- "PySide2.QtSensors.QSensor.removeFilter": ('PySide2.QtSensors.QSensorFilter',),
- "PySide2.QtSensors.QSensor.sensorTypes": (),
- "PySide2.QtSensors.QSensor.sensorsForType": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtSensors.QSensor.setActive": ('bool',),
- "PySide2.QtSensors.QSensor.setAlwaysOn": ('bool',),
- "PySide2.QtSensors.QSensor.setAxesOrientationMode": ('PySide2.QtSensors.QSensor.AxesOrientationMode',),
- "PySide2.QtSensors.QSensor.setBufferSize": ('int',),
- "PySide2.QtSensors.QSensor.setCurrentOrientation": ('int',),
- "PySide2.QtSensors.QSensor.setDataRate": ('int',),
- "PySide2.QtSensors.QSensor.setEfficientBufferSize": ('int',),
- "PySide2.QtSensors.QSensor.setIdentifier": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtSensors.QSensor.setMaxBufferSize": ('int',),
- "PySide2.QtSensors.QSensor.setOutputRange": ('int',),
- "PySide2.QtSensors.QSensor.setSkipDuplicates": ('bool',),
- "PySide2.QtSensors.QSensor.setUserOrientation": ('int',),
- "PySide2.QtSensors.QSensor.skipDuplicates": (),
- "PySide2.QtSensors.QSensor.start": (),
- "PySide2.QtSensors.QSensor.stop": (),
- "PySide2.QtSensors.QSensor.type": (),
- "PySide2.QtSensors.QSensor.userOrientation": (),
-# class PySide2.QtSensors.QSensorBackend:
- "PySide2.QtSensors.QSensorBackend.__init__": ('PySide2.QtSensors.QSensor', 'PySide2.QtCore.QObject'),
- "PySide2.QtSensors.QSensorBackend.addDataRate": ('float', 'float'),
- "PySide2.QtSensors.QSensorBackend.addOutputRange": ('float', 'float', 'float'),
- "PySide2.QtSensors.QSensorBackend.isFeatureSupported": ('PySide2.QtSensors.QSensor.Feature',),
- "PySide2.QtSensors.QSensorBackend.newReadingAvailable": (),
- "PySide2.QtSensors.QSensorBackend.reading": (),
- "PySide2.QtSensors.QSensorBackend.sensor": (),
- "PySide2.QtSensors.QSensorBackend.sensorBusy": (),
- "PySide2.QtSensors.QSensorBackend.sensorError": ('int',),
- "PySide2.QtSensors.QSensorBackend.sensorStopped": (),
- "PySide2.QtSensors.QSensorBackend.setDataRates": ('PySide2.QtSensors.QSensor',),
- "PySide2.QtSensors.QSensorBackend.setDescription": ('str',),
- "PySide2.QtSensors.QSensorBackend.start": (),
- "PySide2.QtSensors.QSensorBackend.stop": (),
-# class PySide2.QtSensors.QSensorBackendFactory:
- "PySide2.QtSensors.QSensorBackendFactory.__init__": (),
- "PySide2.QtSensors.QSensorBackendFactory.createBackend": ('PySide2.QtSensors.QSensor',),
-# class PySide2.QtSensors.QSensorChangesInterface:
- "PySide2.QtSensors.QSensorChangesInterface.__init__": (),
- "PySide2.QtSensors.QSensorChangesInterface.sensorsChanged": (),
-# class PySide2.QtSensors.QSensorFilter:
- "PySide2.QtSensors.QSensorFilter.__init__": (),
- "PySide2.QtSensors.QSensorFilter.filter": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QSensorFilter.setSensor": ('PySide2.QtSensors.QSensor',),
-# class PySide2.QtSensors.QSensorGestureManager:
- "PySide2.QtSensors.QSensorGestureManager.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QSensorGestureManager.gestureIds": (),
- "PySide2.QtSensors.QSensorGestureManager.recognizerSignals": ('str',),
- "PySide2.QtSensors.QSensorGestureManager.registerSensorGestureRecognizer": ('PySide2.QtSensors.QSensorGestureRecognizer',),
- "PySide2.QtSensors.QSensorGestureManager.sensorGestureRecognizer": ('str',),
-# class PySide2.QtSensors.QSensorGesturePluginInterface:
- "PySide2.QtSensors.QSensorGesturePluginInterface.__init__": (),
- "PySide2.QtSensors.QSensorGesturePluginInterface.createRecognizers": (),
- "PySide2.QtSensors.QSensorGesturePluginInterface.name": (),
- "PySide2.QtSensors.QSensorGesturePluginInterface.supportedIds": (),
-# class PySide2.QtSensors.QSensorGestureRecognizer:
- "PySide2.QtSensors.QSensorGestureRecognizer.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QSensorGestureRecognizer.create": (),
- "PySide2.QtSensors.QSensorGestureRecognizer.createBackend": (),
- "PySide2.QtSensors.QSensorGestureRecognizer.gestureSignals": (),
- "PySide2.QtSensors.QSensorGestureRecognizer.id": (),
- "PySide2.QtSensors.QSensorGestureRecognizer.isActive": (),
- "PySide2.QtSensors.QSensorGestureRecognizer.start": (),
- "PySide2.QtSensors.QSensorGestureRecognizer.startBackend": (),
- "PySide2.QtSensors.QSensorGestureRecognizer.stop": (),
- "PySide2.QtSensors.QSensorGestureRecognizer.stopBackend": (),
-# class PySide2.QtSensors.QSensorManager:
- "PySide2.QtSensors.QSensorManager.__init__": (),
- "PySide2.QtSensors.QSensorManager.createBackend": ('PySide2.QtSensors.QSensor',),
- "PySide2.QtSensors.QSensorManager.isBackendRegistered": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtSensors.QSensorManager.registerBackend": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray', 'PySide2.QtSensors.QSensorBackendFactory'),
- "PySide2.QtSensors.QSensorManager.setDefaultBackend": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtSensors.QSensorManager.unregisterBackend": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
-# class PySide2.QtSensors.QSensorPluginInterface:
- "PySide2.QtSensors.QSensorPluginInterface.__init__": (),
- "PySide2.QtSensors.QSensorPluginInterface.registerSensors": (),
-# class PySide2.QtSensors.QSensorReading:
- "PySide2.QtSensors.QSensorReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QSensorReading.setTimestamp": ('int',),
- "PySide2.QtSensors.QSensorReading.timestamp": (),
- "PySide2.QtSensors.QSensorReading.value": ('int',),
- "PySide2.QtSensors.QSensorReading.valueCount": (),
-# class PySide2.QtSensors.QTapFilter:
- "PySide2.QtSensors.QTapFilter.__init__": (),
- "PySide2.QtSensors.QTapFilter.filter": [('PySide2.QtSensors.QSensorReading',), ('PySide2.QtSensors.QTapReading',)],
-# class PySide2.QtSensors.QTapReading:
-# class PySide2.QtSensors.QTapReading.TapDirection:
- "PySide2.QtSensors.QTapReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QTapReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QTapReading.isDoubleTap": (),
- "PySide2.QtSensors.QTapReading.setDoubleTap": ('bool',),
- "PySide2.QtSensors.QTapReading.setTapDirection": ('PySide2.QtSensors.QTapReading.TapDirection',),
- "PySide2.QtSensors.QTapReading.tapDirection": (),
-# class PySide2.QtSensors.QTapSensor:
- "PySide2.QtSensors.QTapSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QTapSensor.reading": (),
- "PySide2.QtSensors.QTapSensor.returnDoubleTapEvents": (),
- "PySide2.QtSensors.QTapSensor.setReturnDoubleTapEvents": ('bool',),
-# class PySide2.QtSensors.QTiltFilter:
- "PySide2.QtSensors.QTiltFilter.__init__": (),
- "PySide2.QtSensors.QTiltFilter.filter": [('PySide2.QtSensors.QSensorReading',), ('PySide2.QtSensors.QTiltReading',)],
-# class PySide2.QtSensors.QTiltReading:
- "PySide2.QtSensors.QTiltReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QTiltReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QTiltReading.setXRotation": ('float',),
- "PySide2.QtSensors.QTiltReading.setYRotation": ('float',),
- "PySide2.QtSensors.QTiltReading.xRotation": (),
- "PySide2.QtSensors.QTiltReading.yRotation": (),
-# class PySide2.QtSensors.QTiltSensor:
- "PySide2.QtSensors.QTiltSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QTiltSensor.calibrate": (),
- "PySide2.QtSensors.QTiltSensor.reading": (),
-# class PySide2.QtSensors.qoutputrange:
- "PySide2.QtSensors.qoutputrange.__init__": [(), ('PySide2.QtSensors.qoutputrange',)],
- "PySide2.QtSensors.qoutputrange.__copy__": (),
- }) if "PySide2.QtSensors" in sys.modules else None
-# Module PySide2.QtTextToSpeech
-sig_dict.update({
-# class PySide2.QtTextToSpeech.QTextToSpeech:
-# class PySide2.QtTextToSpeech.QTextToSpeech.State:
- "PySide2.QtTextToSpeech.QTextToSpeech.__init__": [('PySide2.QtCore.QObject',), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtTextToSpeech.QTextToSpeech.availableEngines": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.availableLocales": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.availableVoices": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.locale": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.pause": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.pitch": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.rate": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.resume": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.say": ('str',),
- "PySide2.QtTextToSpeech.QTextToSpeech.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtTextToSpeech.QTextToSpeech.setPitch": ('float',),
- "PySide2.QtTextToSpeech.QTextToSpeech.setRate": ('float',),
- "PySide2.QtTextToSpeech.QTextToSpeech.setVoice": ('PySide2.QtTextToSpeech.QVoice',),
- "PySide2.QtTextToSpeech.QTextToSpeech.setVolume": ('float',),
- "PySide2.QtTextToSpeech.QTextToSpeech.state": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.stop": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.voice": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.volume": (),
-# class PySide2.QtTextToSpeech.QTextToSpeechEngine:
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.availableLocales": (),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.availableVoices": (),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.createVoice": ('str', 'PySide2.QtTextToSpeech.QVoice.Gender', 'PySide2.QtTextToSpeech.QVoice.Age', 'typing.Any'),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.locale": (),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.pause": (),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.pitch": (),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.rate": (),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.resume": (),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.say": ('str',),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.setPitch": ('float',),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.setRate": ('float',),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.setVoice": ('PySide2.QtTextToSpeech.QVoice',),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.setVolume": ('float',),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.state": (),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.stop": (),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.voice": (),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.voiceData": ('PySide2.QtTextToSpeech.QVoice',),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.volume": (),
-# class PySide2.QtTextToSpeech.QVoice:
-# class PySide2.QtTextToSpeech.QVoice.Age:
-# class PySide2.QtTextToSpeech.QVoice.Gender:
- "PySide2.QtTextToSpeech.QVoice.__init__": [(), ('PySide2.QtTextToSpeech.QVoice',)],
- "PySide2.QtTextToSpeech.QVoice.__copy__": (),
- "PySide2.QtTextToSpeech.QVoice.age": (),
- "PySide2.QtTextToSpeech.QVoice.ageName": ('PySide2.QtTextToSpeech.QVoice.Age',),
- "PySide2.QtTextToSpeech.QVoice.gender": (),
- "PySide2.QtTextToSpeech.QVoice.genderName": ('PySide2.QtTextToSpeech.QVoice.Gender',),
- "PySide2.QtTextToSpeech.QVoice.name": (),
- }) if "PySide2.QtTextToSpeech" in sys.modules else None
-# Module PySide2.QtCharts
-sig_dict.update({
-# class PySide2.QtCharts.QtCharts:
-# class PySide2.QtCharts.QtCharts.QAbstractAxis:
-# class PySide2.QtCharts.QtCharts.QAbstractAxis.AxisType:
- "PySide2.QtCharts.QtCharts.QAbstractAxis.alignment": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.gridLineColor": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.gridLinePen": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.hide": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.isGridLineVisible": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.isLineVisible": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.isMinorGridLineVisible": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.isReverse": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.isTitleVisible": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.isVisible": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.labelsAngle": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.labelsBrush": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.labelsColor": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.labelsEditable": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.labelsFont": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.labelsVisible": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.linePen": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.linePenColor": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.minorGridLineColor": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.minorGridLinePen": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.orientation": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setGridLineColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setGridLinePen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setGridLineVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setLabelsAngle": ('int',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setLabelsBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setLabelsColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setLabelsEditable": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setLabelsFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setLabelsVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setLinePen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setLinePenColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setLineVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setMax": ('typing.Any',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setMin": ('typing.Any',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setMinorGridLineColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setMinorGridLinePen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setMinorGridLineVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setRange": ('typing.Any', 'typing.Any'),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setReverse": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setShadesBorderColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setShadesBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setShadesColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setShadesPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setShadesVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setTitleBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setTitleFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setTitleText": ('str',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setTitleVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.shadesBorderColor": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.shadesBrush": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.shadesColor": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.shadesPen": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.shadesVisible": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.show": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.titleBrush": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.titleFont": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.titleText": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.type": (),
-# class PySide2.QtCharts.QtCharts.QAbstractBarSeries:
-# class PySide2.QtCharts.QtCharts.QAbstractBarSeries.LabelsPosition:
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.append": [('PySide2.QtCharts.QtCharts.QBarSet',), ('typing.Sequence[PySide2.QtCharts.QtCharts.QBarSet]',)],
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.barSets": (),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.barWidth": (),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.clear": (),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.count": (),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.insert": ('int', 'PySide2.QtCharts.QtCharts.QBarSet'),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.isLabelsVisible": (),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.labelsAngle": (),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.labelsFormat": (),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.labelsPosition": (),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.labelsPrecision": (),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.remove": ('PySide2.QtCharts.QtCharts.QBarSet',),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.setBarWidth": ('float',),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.setLabelsAngle": ('float',),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.setLabelsFormat": ('str',),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.setLabelsPosition": ('PySide2.QtCharts.QtCharts.QAbstractBarSeries.LabelsPosition',),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.setLabelsPrecision": ('int',),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.setLabelsVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.take": ('PySide2.QtCharts.QtCharts.QBarSet',),
-# class PySide2.QtCharts.QtCharts.QAbstractSeries:
-# class PySide2.QtCharts.QtCharts.QAbstractSeries.SeriesType:
- "PySide2.QtCharts.QtCharts.QAbstractSeries.attachAxis": ('PySide2.QtCharts.QtCharts.QAbstractAxis',),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.attachedAxes": (),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.chart": (),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.detachAxis": ('PySide2.QtCharts.QtCharts.QAbstractAxis',),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.hide": (),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.isVisible": (),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.name": (),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.opacity": (),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.setName": ('str',),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.setOpacity": ('float',),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.setUseOpenGL": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.setVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.show": (),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.type": (),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.useOpenGL": (),
-# class PySide2.QtCharts.QtCharts.QAreaLegendMarker:
- "PySide2.QtCharts.QtCharts.QAreaLegendMarker.__init__": ('PySide2.QtCharts.QtCharts.QAreaSeries', 'PySide2.QtCharts.QtCharts.QLegend', 'PySide2.QtCore.QObject'),
- "PySide2.QtCharts.QtCharts.QAreaLegendMarker.series": (),
- "PySide2.QtCharts.QtCharts.QAreaLegendMarker.type": (),
-# class PySide2.QtCharts.QtCharts.QAreaSeries:
- "PySide2.QtCharts.QtCharts.QAreaSeries.__init__": [('PySide2.QtCharts.QtCharts.QLineSeries', 'PySide2.QtCharts.QtCharts.QLineSeries'), ('PySide2.QtCore.QObject',)],
- "PySide2.QtCharts.QtCharts.QAreaSeries.borderColor": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.brush": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.color": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.lowerSeries": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.pen": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.pointLabelsClipping": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.pointLabelsColor": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.pointLabelsFont": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.pointLabelsFormat": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.pointLabelsVisible": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.pointsVisible": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setBorderColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setLowerSeries": ('PySide2.QtCharts.QtCharts.QLineSeries',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setPointLabelsClipping": ('bool',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setPointLabelsColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setPointLabelsFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setPointLabelsFormat": ('str',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setPointLabelsVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setPointsVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setUpperSeries": ('PySide2.QtCharts.QtCharts.QLineSeries',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.type": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.upperSeries": (),
-# class PySide2.QtCharts.QtCharts.QBarCategoryAxis:
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.append": [('str',), ('typing.Sequence[str]',)],
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.at": ('int',),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.categories": (),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.clear": (),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.count": (),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.insert": ('int', 'str'),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.max": (),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.min": (),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.remove": ('str',),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.replace": ('str', 'str'),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.setCategories": ('typing.Sequence[str]',),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.setMax": [('str',), ('typing.Any',)],
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.setMin": [('str',), ('typing.Any',)],
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.setRange": [('str', 'str'), ('typing.Any', 'typing.Any')],
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.type": (),
-# class PySide2.QtCharts.QtCharts.QBarLegendMarker:
- "PySide2.QtCharts.QtCharts.QBarLegendMarker.__init__": ('PySide2.QtCharts.QtCharts.QAbstractBarSeries', 'PySide2.QtCharts.QtCharts.QBarSet', 'PySide2.QtCharts.QtCharts.QLegend', 'PySide2.QtCore.QObject'),
- "PySide2.QtCharts.QtCharts.QBarLegendMarker.barset": (),
- "PySide2.QtCharts.QtCharts.QBarLegendMarker.series": (),
- "PySide2.QtCharts.QtCharts.QBarLegendMarker.type": (),
-# class PySide2.QtCharts.QtCharts.QBarModelMapper:
- "PySide2.QtCharts.QtCharts.QBarModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.count": (),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.first": (),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.firstBarSetSection": (),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.lastBarSetSection": (),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.orientation": (),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.setCount": ('int',),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.setFirst": ('int',),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.setFirstBarSetSection": ('int',),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.setLastBarSetSection": ('int',),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QAbstractBarSeries',),
-# class PySide2.QtCharts.QtCharts.QBarSeries:
- "PySide2.QtCharts.QtCharts.QBarSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QBarSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QBarSet:
- "PySide2.QtCharts.QtCharts.QBarSet.__init__": ('str', 'PySide2.QtCore.QObject'),
- "PySide2.QtCharts.QtCharts.QBarSet.__lshift__": ('float',),
- "PySide2.QtCharts.QtCharts.QBarSet.append": [('float',), ('typing.Sequence[float]',)],
- "PySide2.QtCharts.QtCharts.QBarSet.at": ('int',),
- "PySide2.QtCharts.QtCharts.QBarSet.borderColor": (),
- "PySide2.QtCharts.QtCharts.QBarSet.brush": (),
- "PySide2.QtCharts.QtCharts.QBarSet.color": (),
- "PySide2.QtCharts.QtCharts.QBarSet.count": (),
- "PySide2.QtCharts.QtCharts.QBarSet.insert": ('int', 'float'),
- "PySide2.QtCharts.QtCharts.QBarSet.label": (),
- "PySide2.QtCharts.QtCharts.QBarSet.labelBrush": (),
- "PySide2.QtCharts.QtCharts.QBarSet.labelColor": (),
- "PySide2.QtCharts.QtCharts.QBarSet.labelFont": (),
- "PySide2.QtCharts.QtCharts.QBarSet.pen": (),
- "PySide2.QtCharts.QtCharts.QBarSet.remove": ('int', 'int'),
- "PySide2.QtCharts.QtCharts.QBarSet.replace": ('int', 'float'),
- "PySide2.QtCharts.QtCharts.QBarSet.setBorderColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QBarSet.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QBarSet.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QBarSet.setLabel": ('str',),
- "PySide2.QtCharts.QtCharts.QBarSet.setLabelBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QBarSet.setLabelColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QBarSet.setLabelFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtCharts.QtCharts.QBarSet.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QBarSet.sum": (),
-# class PySide2.QtCharts.QtCharts.QBoxPlotLegendMarker:
- "PySide2.QtCharts.QtCharts.QBoxPlotLegendMarker.__init__": ('PySide2.QtCharts.QtCharts.QBoxPlotSeries', 'PySide2.QtCharts.QtCharts.QLegend', 'PySide2.QtCore.QObject'),
- "PySide2.QtCharts.QtCharts.QBoxPlotLegendMarker.series": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotLegendMarker.type": (),
-# class PySide2.QtCharts.QtCharts.QBoxPlotModelMapper:
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.count": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.first": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.firstBoxSetSection": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.lastBoxSetSection": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.orientation": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.setCount": ('int',),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.setFirst": ('int',),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.setFirstBoxSetSection": ('int',),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.setLastBoxSetSection": ('int',),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QBoxPlotSeries',),
-# class PySide2.QtCharts.QtCharts.QBoxPlotSeries:
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.append": [('PySide2.QtCharts.QtCharts.QBoxSet',), ('typing.Sequence[PySide2.QtCharts.QtCharts.QBoxSet]',)],
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.boxOutlineVisible": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.boxSets": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.boxWidth": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.brush": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.clear": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.count": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.insert": ('int', 'PySide2.QtCharts.QtCharts.QBoxSet'),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.pen": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.remove": ('PySide2.QtCharts.QtCharts.QBoxSet',),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.setBoxOutlineVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.setBoxWidth": ('float',),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.take": ('PySide2.QtCharts.QtCharts.QBoxSet',),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QBoxSet:
-# class PySide2.QtCharts.QtCharts.QBoxSet.ValuePositions:
- "PySide2.QtCharts.QtCharts.QBoxSet.__init__": [('float', 'float', 'float', 'float', 'float', 'str', 'PySide2.QtCore.QObject'), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtCharts.QtCharts.QBoxSet.__lshift__": ('float',),
- "PySide2.QtCharts.QtCharts.QBoxSet.append": [('float',), ('typing.Sequence[float]',)],
- "PySide2.QtCharts.QtCharts.QBoxSet.at": ('int',),
- "PySide2.QtCharts.QtCharts.QBoxSet.brush": (),
- "PySide2.QtCharts.QtCharts.QBoxSet.clear": (),
- "PySide2.QtCharts.QtCharts.QBoxSet.count": (),
- "PySide2.QtCharts.QtCharts.QBoxSet.label": (),
- "PySide2.QtCharts.QtCharts.QBoxSet.pen": (),
- "PySide2.QtCharts.QtCharts.QBoxSet.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QBoxSet.setLabel": ('str',),
- "PySide2.QtCharts.QtCharts.QBoxSet.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QBoxSet.setValue": ('int', 'float'),
-# class PySide2.QtCharts.QtCharts.QCandlestickLegendMarker:
- "PySide2.QtCharts.QtCharts.QCandlestickLegendMarker.__init__": ('PySide2.QtCharts.QtCharts.QCandlestickSeries', 'PySide2.QtCharts.QtCharts.QLegend', 'PySide2.QtCore.QObject'),
- "PySide2.QtCharts.QtCharts.QCandlestickLegendMarker.series": (),
- "PySide2.QtCharts.QtCharts.QCandlestickLegendMarker.type": (),
-# class PySide2.QtCharts.QtCharts.QCandlestickModelMapper:
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.close": (),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.firstSetSection": (),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.high": (),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.lastSetSection": (),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.low": (),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.open": (),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.orientation": (),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.setClose": ('int',),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.setFirstSetSection": ('int',),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.setHigh": ('int',),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.setLastSetSection": ('int',),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.setLow": ('int',),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.setOpen": ('int',),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QCandlestickSeries',),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.setTimestamp": ('int',),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.timestamp": (),
-# class PySide2.QtCharts.QtCharts.QCandlestickSeries:
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.append": [('PySide2.QtCharts.QtCharts.QCandlestickSet',), ('typing.Sequence[PySide2.QtCharts.QtCharts.QCandlestickSet]',)],
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.bodyOutlineVisible": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.bodyWidth": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.brush": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.capsVisible": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.capsWidth": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.clear": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.count": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.decreasingColor": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.increasingColor": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.insert": ('int', 'PySide2.QtCharts.QtCharts.QCandlestickSet'),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.maximumColumnWidth": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.minimumColumnWidth": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.pen": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.remove": [('PySide2.QtCharts.QtCharts.QCandlestickSet',), ('typing.Sequence[PySide2.QtCharts.QtCharts.QCandlestickSet]',)],
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.setBodyOutlineVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.setBodyWidth": ('float',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.setCapsVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.setCapsWidth": ('float',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.setDecreasingColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.setIncreasingColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.setMaximumColumnWidth": ('float',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.setMinimumColumnWidth": ('float',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.sets": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.take": ('PySide2.QtCharts.QtCharts.QCandlestickSet',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QCandlestickSet:
- "PySide2.QtCharts.QtCharts.QCandlestickSet.__init__": [('float', 'PySide2.QtCore.QObject'), ('float', 'float', 'float', 'float', 'float', 'PySide2.QtCore.QObject')],
- "PySide2.QtCharts.QtCharts.QCandlestickSet.brush": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.close": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.high": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.low": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.open": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.pen": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.setClose": ('float',),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.setHigh": ('float',),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.setLow": ('float',),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.setOpen": ('float',),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.setTimestamp": ('float',),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.timestamp": (),
-# class PySide2.QtCharts.QtCharts.QCategoryAxis:
-# class PySide2.QtCharts.QtCharts.QCategoryAxis.AxisLabelsPosition:
- "PySide2.QtCharts.QtCharts.QCategoryAxis.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.append": ('str', 'float'),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.categoriesLabels": (),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.count": (),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.endValue": ('str',),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.labelsPosition": (),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.remove": ('str',),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.replaceLabel": ('str', 'str'),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.setLabelsPosition": ('PySide2.QtCharts.QtCharts.QCategoryAxis.AxisLabelsPosition',),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.setStartValue": ('float',),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.startValue": ('str',),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.type": (),
-# class PySide2.QtCharts.QtCharts.QChart:
-# class PySide2.QtCharts.QtCharts.QChart.AnimationOption:
-# class PySide2.QtCharts.QtCharts.QChart.AnimationOptions:
-# class PySide2.QtCharts.QtCharts.QChart.ChartTheme:
-# class PySide2.QtCharts.QtCharts.QChart.ChartType:
- "PySide2.QtCharts.QtCharts.QChart.__init__": [('PySide2.QtCharts.QtCharts.QChart.ChartType', 'PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.Qt.WindowFlags'), ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.Qt.WindowFlags')],
- "PySide2.QtCharts.QtCharts.QChart.addAxis": ('PySide2.QtCharts.QtCharts.QAbstractAxis', 'PySide2.QtCore.Qt.Alignment'),
- "PySide2.QtCharts.QtCharts.QChart.addSeries": ('PySide2.QtCharts.QtCharts.QAbstractSeries',),
- "PySide2.QtCharts.QtCharts.QChart.animationDuration": (),
- "PySide2.QtCharts.QtCharts.QChart.animationEasingCurve": (),
- "PySide2.QtCharts.QtCharts.QChart.animationOptions": (),
- "PySide2.QtCharts.QtCharts.QChart.axes": ('PySide2.QtCore.Qt.Orientations', 'PySide2.QtCharts.QtCharts.QAbstractSeries'),
- "PySide2.QtCharts.QtCharts.QChart.axisX": ('PySide2.QtCharts.QtCharts.QAbstractSeries',),
- "PySide2.QtCharts.QtCharts.QChart.axisY": ('PySide2.QtCharts.QtCharts.QAbstractSeries',),
- "PySide2.QtCharts.QtCharts.QChart.backgroundBrush": (),
- "PySide2.QtCharts.QtCharts.QChart.backgroundPen": (),
- "PySide2.QtCharts.QtCharts.QChart.backgroundRoundness": (),
- "PySide2.QtCharts.QtCharts.QChart.chartType": (),
- "PySide2.QtCharts.QtCharts.QChart.createDefaultAxes": (),
- "PySide2.QtCharts.QtCharts.QChart.isBackgroundVisible": (),
- "PySide2.QtCharts.QtCharts.QChart.isDropShadowEnabled": (),
- "PySide2.QtCharts.QtCharts.QChart.isPlotAreaBackgroundVisible": (),
- "PySide2.QtCharts.QtCharts.QChart.isZoomed": (),
- "PySide2.QtCharts.QtCharts.QChart.legend": (),
- "PySide2.QtCharts.QtCharts.QChart.locale": (),
- "PySide2.QtCharts.QtCharts.QChart.localizeNumbers": (),
- "PySide2.QtCharts.QtCharts.QChart.mapToPosition": ('PySide2.QtCore.QPointF', 'PySide2.QtCharts.QtCharts.QAbstractSeries'),
- "PySide2.QtCharts.QtCharts.QChart.mapToValue": ('PySide2.QtCore.QPointF', 'PySide2.QtCharts.QtCharts.QAbstractSeries'),
- "PySide2.QtCharts.QtCharts.QChart.margins": (),
- "PySide2.QtCharts.QtCharts.QChart.plotArea": (),
- "PySide2.QtCharts.QtCharts.QChart.plotAreaBackgroundBrush": (),
- "PySide2.QtCharts.QtCharts.QChart.plotAreaBackgroundPen": (),
- "PySide2.QtCharts.QtCharts.QChart.removeAllSeries": (),
- "PySide2.QtCharts.QtCharts.QChart.removeAxis": ('PySide2.QtCharts.QtCharts.QAbstractAxis',),
- "PySide2.QtCharts.QtCharts.QChart.removeSeries": ('PySide2.QtCharts.QtCharts.QAbstractSeries',),
- "PySide2.QtCharts.QtCharts.QChart.scroll": ('float', 'float'),
- "PySide2.QtCharts.QtCharts.QChart.series": (),
- "PySide2.QtCharts.QtCharts.QChart.setAnimationDuration": ('int',),
- "PySide2.QtCharts.QtCharts.QChart.setAnimationEasingCurve": ('PySide2.QtCore.QEasingCurve',),
- "PySide2.QtCharts.QtCharts.QChart.setAnimationOptions": ('PySide2.QtCharts.QtCharts.QChart.AnimationOptions',),
- "PySide2.QtCharts.QtCharts.QChart.setAxisX": ('PySide2.QtCharts.QtCharts.QAbstractAxis', 'PySide2.QtCharts.QtCharts.QAbstractSeries'),
- "PySide2.QtCharts.QtCharts.QChart.setAxisY": ('PySide2.QtCharts.QtCharts.QAbstractAxis', 'PySide2.QtCharts.QtCharts.QAbstractSeries'),
- "PySide2.QtCharts.QtCharts.QChart.setBackgroundBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QChart.setBackgroundPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QChart.setBackgroundRoundness": ('float',),
- "PySide2.QtCharts.QtCharts.QChart.setBackgroundVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QChart.setDropShadowEnabled": ('bool',),
- "PySide2.QtCharts.QtCharts.QChart.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtCharts.QtCharts.QChart.setLocalizeNumbers": ('bool',),
- "PySide2.QtCharts.QtCharts.QChart.setMargins": ('PySide2.QtCore.QMargins',),
- "PySide2.QtCharts.QtCharts.QChart.setPlotArea": ('PySide2.QtCore.QRectF',),
- "PySide2.QtCharts.QtCharts.QChart.setPlotAreaBackgroundBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QChart.setPlotAreaBackgroundPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QChart.setPlotAreaBackgroundVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QChart.setTheme": ('PySide2.QtCharts.QtCharts.QChart.ChartTheme',),
- "PySide2.QtCharts.QtCharts.QChart.setTitle": ('str',),
- "PySide2.QtCharts.QtCharts.QChart.setTitleBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QChart.setTitleFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtCharts.QtCharts.QChart.theme": (),
- "PySide2.QtCharts.QtCharts.QChart.title": (),
- "PySide2.QtCharts.QtCharts.QChart.titleBrush": (),
- "PySide2.QtCharts.QtCharts.QChart.titleFont": (),
- "PySide2.QtCharts.QtCharts.QChart.zoom": ('float',),
- "PySide2.QtCharts.QtCharts.QChart.zoomIn": [(), ('PySide2.QtCore.QRectF',)],
- "PySide2.QtCharts.QtCharts.QChart.zoomOut": (),
- "PySide2.QtCharts.QtCharts.QChart.zoomReset": (),
-# class PySide2.QtCharts.QtCharts.QChartView:
-# class PySide2.QtCharts.QtCharts.QChartView.RubberBand:
-# class PySide2.QtCharts.QtCharts.QChartView.RubberBands:
- "PySide2.QtCharts.QtCharts.QChartView.__init__": [('PySide2.QtCharts.QtCharts.QChart', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtCharts.QtCharts.QChartView.chart": (),
- "PySide2.QtCharts.QtCharts.QChartView.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtCharts.QtCharts.QChartView.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtCharts.QtCharts.QChartView.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtCharts.QtCharts.QChartView.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtCharts.QtCharts.QChartView.rubberBand": (),
- "PySide2.QtCharts.QtCharts.QChartView.setChart": ('PySide2.QtCharts.QtCharts.QChart',),
- "PySide2.QtCharts.QtCharts.QChartView.setRubberBand": ('PySide2.QtCharts.QtCharts.QChartView.RubberBands',),
- "PySide2.QtCharts.QtCharts.QChartView.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtCharts.QtCharts.QDateTimeAxis:
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.format": (),
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.max": (),
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.min": (),
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.setFormat": ('str',),
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.setMax": [('PySide2.QtCore.QDateTime',), ('typing.Any',)],
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.setMin": [('PySide2.QtCore.QDateTime',), ('typing.Any',)],
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.setRange": [('PySide2.QtCore.QDateTime', 'PySide2.QtCore.QDateTime'), ('typing.Any', 'typing.Any')],
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.setTickCount": ('int',),
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.tickCount": (),
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.type": (),
-# class PySide2.QtCharts.QtCharts.QHBarModelMapper:
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.columnCount": (),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.firstBarSetRow": (),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.firstColumn": (),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.lastBarSetRow": (),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.setColumnCount": ('int',),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.setFirstBarSetRow": ('int',),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.setFirstColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.setLastBarSetRow": ('int',),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QAbstractBarSeries',),
-# class PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper:
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.columnCount": (),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.firstBoxSetRow": (),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.firstColumn": (),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.lastBoxSetRow": (),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.setColumnCount": ('int',),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.setFirstBoxSetRow": ('int',),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.setFirstColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.setLastBoxSetRow": ('int',),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QBoxPlotSeries',),
-# class PySide2.QtCharts.QtCharts.QHCandlestickModelMapper:
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.closeColumn": (),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.firstSetRow": (),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.highColumn": (),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.lastSetRow": (),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.lowColumn": (),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.openColumn": (),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.orientation": (),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.setCloseColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.setFirstSetRow": ('int',),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.setHighColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.setLastSetRow": ('int',),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.setLowColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.setOpenColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.setTimestampColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.timestampColumn": (),
-# class PySide2.QtCharts.QtCharts.QHPieModelMapper:
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.columnCount": (),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.firstColumn": (),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.labelsRow": (),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.setColumnCount": ('int',),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.setFirstColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.setLabelsRow": ('int',),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QPieSeries',),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.setValuesRow": ('int',),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.valuesRow": (),
-# class PySide2.QtCharts.QtCharts.QHXYModelMapper:
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.columnCount": (),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.firstColumn": (),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.setColumnCount": ('int',),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.setFirstColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QXYSeries',),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.setXRow": ('int',),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.setYRow": ('int',),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.xRow": (),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.yRow": (),
-# class PySide2.QtCharts.QtCharts.QHorizontalBarSeries:
- "PySide2.QtCharts.QtCharts.QHorizontalBarSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QHorizontalBarSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QHorizontalPercentBarSeries:
- "PySide2.QtCharts.QtCharts.QHorizontalPercentBarSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QHorizontalPercentBarSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QHorizontalStackedBarSeries:
- "PySide2.QtCharts.QtCharts.QHorizontalStackedBarSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QHorizontalStackedBarSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QLegend:
-# class PySide2.QtCharts.QtCharts.QLegend.MarkerShape:
- "PySide2.QtCharts.QtCharts.QLegend.alignment": (),
- "PySide2.QtCharts.QtCharts.QLegend.attachToChart": (),
- "PySide2.QtCharts.QtCharts.QLegend.borderColor": (),
- "PySide2.QtCharts.QtCharts.QLegend.brush": (),
- "PySide2.QtCharts.QtCharts.QLegend.color": (),
- "PySide2.QtCharts.QtCharts.QLegend.detachFromChart": (),
- "PySide2.QtCharts.QtCharts.QLegend.font": (),
- "PySide2.QtCharts.QtCharts.QLegend.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtCharts.QtCharts.QLegend.isAttachedToChart": (),
- "PySide2.QtCharts.QtCharts.QLegend.isBackgroundVisible": (),
- "PySide2.QtCharts.QtCharts.QLegend.labelBrush": (),
- "PySide2.QtCharts.QtCharts.QLegend.labelColor": (),
- "PySide2.QtCharts.QtCharts.QLegend.markerShape": (),
- "PySide2.QtCharts.QtCharts.QLegend.markers": ('PySide2.QtCharts.QtCharts.QAbstractSeries',),
- "PySide2.QtCharts.QtCharts.QLegend.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtCharts.QtCharts.QLegend.pen": (),
- "PySide2.QtCharts.QtCharts.QLegend.reverseMarkers": (),
- "PySide2.QtCharts.QtCharts.QLegend.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtCharts.QtCharts.QLegend.setBackgroundVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QLegend.setBorderColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QLegend.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QLegend.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QLegend.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtCharts.QtCharts.QLegend.setLabelBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QLegend.setLabelColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QLegend.setMarkerShape": ('PySide2.QtCharts.QtCharts.QLegend.MarkerShape',),
- "PySide2.QtCharts.QtCharts.QLegend.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QLegend.setReverseMarkers": ('bool',),
- "PySide2.QtCharts.QtCharts.QLegend.setShowToolTips": ('bool',),
- "PySide2.QtCharts.QtCharts.QLegend.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtCharts.QtCharts.QLegend.showToolTips": (),
-# class PySide2.QtCharts.QtCharts.QLegendMarker:
-# class PySide2.QtCharts.QtCharts.QLegendMarker.LegendMarkerType:
- "PySide2.QtCharts.QtCharts.QLegendMarker.brush": (),
- "PySide2.QtCharts.QtCharts.QLegendMarker.font": (),
- "PySide2.QtCharts.QtCharts.QLegendMarker.isVisible": (),
- "PySide2.QtCharts.QtCharts.QLegendMarker.label": (),
- "PySide2.QtCharts.QtCharts.QLegendMarker.labelBrush": (),
- "PySide2.QtCharts.QtCharts.QLegendMarker.pen": (),
- "PySide2.QtCharts.QtCharts.QLegendMarker.series": (),
- "PySide2.QtCharts.QtCharts.QLegendMarker.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QLegendMarker.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtCharts.QtCharts.QLegendMarker.setLabel": ('str',),
- "PySide2.QtCharts.QtCharts.QLegendMarker.setLabelBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QLegendMarker.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QLegendMarker.setShape": ('PySide2.QtCharts.QtCharts.QLegend.MarkerShape',),
- "PySide2.QtCharts.QtCharts.QLegendMarker.setVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QLegendMarker.shape": (),
- "PySide2.QtCharts.QtCharts.QLegendMarker.type": (),
-# class PySide2.QtCharts.QtCharts.QLineSeries:
- "PySide2.QtCharts.QtCharts.QLineSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QLineSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QLogValueAxis:
- "PySide2.QtCharts.QtCharts.QLogValueAxis.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QLogValueAxis.base": (),
- "PySide2.QtCharts.QtCharts.QLogValueAxis.labelFormat": (),
- "PySide2.QtCharts.QtCharts.QLogValueAxis.max": (),
- "PySide2.QtCharts.QtCharts.QLogValueAxis.min": (),
- "PySide2.QtCharts.QtCharts.QLogValueAxis.minorTickCount": (),
- "PySide2.QtCharts.QtCharts.QLogValueAxis.setBase": ('float',),
- "PySide2.QtCharts.QtCharts.QLogValueAxis.setLabelFormat": ('str',),
- "PySide2.QtCharts.QtCharts.QLogValueAxis.setMax": [('float',), ('typing.Any',)],
- "PySide2.QtCharts.QtCharts.QLogValueAxis.setMin": [('float',), ('typing.Any',)],
- "PySide2.QtCharts.QtCharts.QLogValueAxis.setMinorTickCount": ('int',),
- "PySide2.QtCharts.QtCharts.QLogValueAxis.setRange": [('float', 'float'), ('typing.Any', 'typing.Any')],
- "PySide2.QtCharts.QtCharts.QLogValueAxis.tickCount": (),
- "PySide2.QtCharts.QtCharts.QLogValueAxis.type": (),
-# class PySide2.QtCharts.QtCharts.QPercentBarSeries:
- "PySide2.QtCharts.QtCharts.QPercentBarSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QPercentBarSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QPieLegendMarker:
- "PySide2.QtCharts.QtCharts.QPieLegendMarker.__init__": ('PySide2.QtCharts.QtCharts.QPieSeries', 'PySide2.QtCharts.QtCharts.QPieSlice', 'PySide2.QtCharts.QtCharts.QLegend', 'PySide2.QtCore.QObject'),
- "PySide2.QtCharts.QtCharts.QPieLegendMarker.series": (),
- "PySide2.QtCharts.QtCharts.QPieLegendMarker.slice": (),
- "PySide2.QtCharts.QtCharts.QPieLegendMarker.type": (),
-# class PySide2.QtCharts.QtCharts.QPieModelMapper:
- "PySide2.QtCharts.QtCharts.QPieModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.count": (),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.first": (),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.labelsSection": (),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.orientation": (),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.setCount": ('int',),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.setFirst": ('int',),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.setLabelsSection": ('int',),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QPieSeries',),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.setValuesSection": ('int',),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.valuesSection": (),
-# class PySide2.QtCharts.QtCharts.QPieSeries:
- "PySide2.QtCharts.QtCharts.QPieSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QPieSeries.__lshift__": ('PySide2.QtCharts.QtCharts.QPieSlice',),
- "PySide2.QtCharts.QtCharts.QPieSeries.append": [('PySide2.QtCharts.QtCharts.QPieSlice',), ('str', 'float'), ('typing.Sequence[PySide2.QtCharts.QtCharts.QPieSlice]',)],
- "PySide2.QtCharts.QtCharts.QPieSeries.clear": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.count": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.holeSize": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.horizontalPosition": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.insert": ('int', 'PySide2.QtCharts.QtCharts.QPieSlice'),
- "PySide2.QtCharts.QtCharts.QPieSeries.isEmpty": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.pieEndAngle": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.pieSize": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.pieStartAngle": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.remove": ('PySide2.QtCharts.QtCharts.QPieSlice',),
- "PySide2.QtCharts.QtCharts.QPieSeries.setHoleSize": ('float',),
- "PySide2.QtCharts.QtCharts.QPieSeries.setHorizontalPosition": ('float',),
- "PySide2.QtCharts.QtCharts.QPieSeries.setLabelsPosition": ('PySide2.QtCharts.QtCharts.QPieSlice.LabelPosition',),
- "PySide2.QtCharts.QtCharts.QPieSeries.setLabelsVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QPieSeries.setPieEndAngle": ('float',),
- "PySide2.QtCharts.QtCharts.QPieSeries.setPieSize": ('float',),
- "PySide2.QtCharts.QtCharts.QPieSeries.setPieStartAngle": ('float',),
- "PySide2.QtCharts.QtCharts.QPieSeries.setVerticalPosition": ('float',),
- "PySide2.QtCharts.QtCharts.QPieSeries.slices": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.sum": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.take": ('PySide2.QtCharts.QtCharts.QPieSlice',),
- "PySide2.QtCharts.QtCharts.QPieSeries.type": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.verticalPosition": (),
-# class PySide2.QtCharts.QtCharts.QPieSlice:
-# class PySide2.QtCharts.QtCharts.QPieSlice.LabelPosition:
- "PySide2.QtCharts.QtCharts.QPieSlice.__init__": [('PySide2.QtCore.QObject',), ('str', 'float', 'PySide2.QtCore.QObject')],
- "PySide2.QtCharts.QtCharts.QPieSlice.angleSpan": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.borderColor": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.borderWidth": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.brush": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.color": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.explodeDistanceFactor": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.isExploded": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.isLabelVisible": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.label": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.labelArmLengthFactor": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.labelBrush": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.labelColor": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.labelFont": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.labelPosition": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.pen": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.percentage": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.series": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.setBorderColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setBorderWidth": ('int',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setExplodeDistanceFactor": ('float',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setExploded": ('bool',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setLabel": ('str',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setLabelArmLengthFactor": ('float',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setLabelBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setLabelColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setLabelFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setLabelPosition": ('PySide2.QtCharts.QtCharts.QPieSlice.LabelPosition',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setLabelVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setValue": ('float',),
- "PySide2.QtCharts.QtCharts.QPieSlice.startAngle": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.value": (),
-# class PySide2.QtCharts.QtCharts.QPolarChart:
-# class PySide2.QtCharts.QtCharts.QPolarChart.PolarOrientation:
-# class PySide2.QtCharts.QtCharts.QPolarChart.PolarOrientations:
- "PySide2.QtCharts.QtCharts.QPolarChart.__init__": ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtCharts.QtCharts.QPolarChart.addAxis": [('PySide2.QtCharts.QtCharts.QAbstractAxis', 'PySide2.QtCharts.QtCharts.QPolarChart.PolarOrientation'), ('PySide2.QtCharts.QtCharts.QAbstractAxis', 'PySide2.QtCore.Qt.Alignment')],
- "PySide2.QtCharts.QtCharts.QPolarChart.axisPolarOrientation": ('PySide2.QtCharts.QtCharts.QAbstractAxis',),
-# class PySide2.QtCharts.QtCharts.QScatterSeries:
-# class PySide2.QtCharts.QtCharts.QScatterSeries.MarkerShape:
- "PySide2.QtCharts.QtCharts.QScatterSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QScatterSeries.borderColor": (),
- "PySide2.QtCharts.QtCharts.QScatterSeries.brush": (),
- "PySide2.QtCharts.QtCharts.QScatterSeries.color": (),
- "PySide2.QtCharts.QtCharts.QScatterSeries.markerShape": (),
- "PySide2.QtCharts.QtCharts.QScatterSeries.markerSize": (),
- "PySide2.QtCharts.QtCharts.QScatterSeries.setBorderColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QScatterSeries.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QScatterSeries.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QScatterSeries.setMarkerShape": ('PySide2.QtCharts.QtCharts.QScatterSeries.MarkerShape',),
- "PySide2.QtCharts.QtCharts.QScatterSeries.setMarkerSize": ('float',),
- "PySide2.QtCharts.QtCharts.QScatterSeries.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QScatterSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QSplineSeries:
- "PySide2.QtCharts.QtCharts.QSplineSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QSplineSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QStackedBarSeries:
- "PySide2.QtCharts.QtCharts.QStackedBarSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QStackedBarSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QVBarModelMapper:
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.firstBarSetColumn": (),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.firstRow": (),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.lastBarSetColumn": (),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.rowCount": (),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.setFirstBarSetColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.setFirstRow": ('int',),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.setLastBarSetColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.setRowCount": ('int',),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QAbstractBarSeries',),
-# class PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper:
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.firstBoxSetColumn": (),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.firstRow": (),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.lastBoxSetColumn": (),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.rowCount": (),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.setFirstBoxSetColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.setFirstRow": ('int',),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.setLastBoxSetColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.setRowCount": ('int',),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QBoxPlotSeries',),
-# class PySide2.QtCharts.QtCharts.QVCandlestickModelMapper:
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.closeRow": (),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.firstSetColumn": (),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.highRow": (),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.lastSetColumn": (),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.lowRow": (),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.openRow": (),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.orientation": (),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.setCloseRow": ('int',),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.setFirstSetColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.setHighRow": ('int',),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.setLastSetColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.setLowRow": ('int',),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.setOpenRow": ('int',),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.setTimestampRow": ('int',),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.timestampRow": (),
-# class PySide2.QtCharts.QtCharts.QVPieModelMapper:
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.firstRow": (),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.labelsColumn": (),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.rowCount": (),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.setFirstRow": ('int',),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.setLabelsColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.setRowCount": ('int',),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QPieSeries',),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.setValuesColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.valuesColumn": (),
-# class PySide2.QtCharts.QtCharts.QVXYModelMapper:
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.firstRow": (),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.rowCount": (),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.setFirstRow": ('int',),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.setRowCount": ('int',),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QXYSeries',),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.setXColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.setYColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.xColumn": (),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.yColumn": (),
-# class PySide2.QtCharts.QtCharts.QValueAxis:
- "PySide2.QtCharts.QtCharts.QValueAxis.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QValueAxis.applyNiceNumbers": (),
- "PySide2.QtCharts.QtCharts.QValueAxis.labelFormat": (),
- "PySide2.QtCharts.QtCharts.QValueAxis.max": (),
- "PySide2.QtCharts.QtCharts.QValueAxis.min": (),
- "PySide2.QtCharts.QtCharts.QValueAxis.minorTickCount": (),
- "PySide2.QtCharts.QtCharts.QValueAxis.setLabelFormat": ('str',),
- "PySide2.QtCharts.QtCharts.QValueAxis.setMax": [('float',), ('typing.Any',)],
- "PySide2.QtCharts.QtCharts.QValueAxis.setMin": [('float',), ('typing.Any',)],
- "PySide2.QtCharts.QtCharts.QValueAxis.setMinorTickCount": ('int',),
- "PySide2.QtCharts.QtCharts.QValueAxis.setRange": [('float', 'float'), ('typing.Any', 'typing.Any')],
- "PySide2.QtCharts.QtCharts.QValueAxis.setTickAnchor": ('float',),
- "PySide2.QtCharts.QtCharts.QValueAxis.setTickCount": ('int',),
- "PySide2.QtCharts.QtCharts.QValueAxis.setTickInterval": ('float',),
- "PySide2.QtCharts.QtCharts.QValueAxis.tickAnchor": (),
- "PySide2.QtCharts.QtCharts.QValueAxis.tickCount": (),
- "PySide2.QtCharts.QtCharts.QValueAxis.tickInterval": (),
- "PySide2.QtCharts.QtCharts.QValueAxis.type": (),
-# class PySide2.QtCharts.QtCharts.QXYLegendMarker:
- "PySide2.QtCharts.QtCharts.QXYLegendMarker.__init__": ('PySide2.QtCharts.QtCharts.QXYSeries', 'PySide2.QtCharts.QtCharts.QLegend', 'PySide2.QtCore.QObject'),
- "PySide2.QtCharts.QtCharts.QXYLegendMarker.series": (),
- "PySide2.QtCharts.QtCharts.QXYLegendMarker.type": (),
-# class PySide2.QtCharts.QtCharts.QXYModelMapper:
- "PySide2.QtCharts.QtCharts.QXYModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.count": (),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.first": (),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.orientation": (),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.setCount": ('int',),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.setFirst": ('int',),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QXYSeries',),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.setXSection": ('int',),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.setYSection": ('int',),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.xSection": (),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.ySection": (),
-# class PySide2.QtCharts.QtCharts.QXYSeries:
- "PySide2.QtCharts.QtCharts.QXYSeries.__lshift__": [('PySide2.QtCore.QPointF',), ('typing.Sequence[PySide2.QtCore.QPointF]',)],
- "PySide2.QtCharts.QtCharts.QXYSeries.append": [('PySide2.QtCore.QPointF',), ('float', 'float'), ('typing.Sequence[PySide2.QtCore.QPointF]',)],
- "PySide2.QtCharts.QtCharts.QXYSeries.at": ('int',),
- "PySide2.QtCharts.QtCharts.QXYSeries.brush": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.clear": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.color": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.count": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.insert": ('int', 'PySide2.QtCore.QPointF'),
- "PySide2.QtCharts.QtCharts.QXYSeries.pen": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.pointLabelsClipping": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.pointLabelsColor": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.pointLabelsFont": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.pointLabelsFormat": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.pointLabelsVisible": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.points": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.pointsVector": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.pointsVisible": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.remove": [('PySide2.QtCore.QPointF',), ('float', 'float'), ('int',)],
- "PySide2.QtCharts.QtCharts.QXYSeries.removePoints": ('int', 'int'),
- "PySide2.QtCharts.QtCharts.QXYSeries.replace": [('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'), ('float', 'float', 'float', 'float'), ('int', 'PySide2.QtCore.QPointF'), ('int', 'float', 'float'), ('typing.List[PySide2.QtCore.QPointF]',), ('typing.Sequence[PySide2.QtCore.QPointF]',)],
- "PySide2.QtCharts.QtCharts.QXYSeries.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QXYSeries.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QXYSeries.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QXYSeries.setPointLabelsClipping": ('bool',),
- "PySide2.QtCharts.QtCharts.QXYSeries.setPointLabelsColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QXYSeries.setPointLabelsFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtCharts.QtCharts.QXYSeries.setPointLabelsFormat": ('str',),
- "PySide2.QtCharts.QtCharts.QXYSeries.setPointLabelsVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QXYSeries.setPointsVisible": ('bool',),
- }) if "PySide2.QtCharts" in sys.modules else None
-# Module PySide2.QtSvg
-sig_dict.update({
-# class PySide2.QtSvg.QGraphicsSvgItem:
- "PySide2.QtSvg.QGraphicsSvgItem.__init__": [('PySide2.QtWidgets.QGraphicsItem',), ('str', 'PySide2.QtWidgets.QGraphicsItem')],
- "PySide2.QtSvg.QGraphicsSvgItem.boundingRect": (),
- "PySide2.QtSvg.QGraphicsSvgItem.elementId": (),
- "PySide2.QtSvg.QGraphicsSvgItem.isCachingEnabled": (),
- "PySide2.QtSvg.QGraphicsSvgItem.maximumCacheSize": (),
- "PySide2.QtSvg.QGraphicsSvgItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtSvg.QGraphicsSvgItem.renderer": (),
- "PySide2.QtSvg.QGraphicsSvgItem.setCachingEnabled": ('bool',),
- "PySide2.QtSvg.QGraphicsSvgItem.setElementId": ('str',),
- "PySide2.QtSvg.QGraphicsSvgItem.setMaximumCacheSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtSvg.QGraphicsSvgItem.setSharedRenderer": ('PySide2.QtSvg.QSvgRenderer',),
- "PySide2.QtSvg.QGraphicsSvgItem.type": (),
-# class PySide2.QtSvg.QSvgGenerator:
- "PySide2.QtSvg.QSvgGenerator.__init__": (),
- "PySide2.QtSvg.QSvgGenerator.description": (),
- "PySide2.QtSvg.QSvgGenerator.fileName": (),
- "PySide2.QtSvg.QSvgGenerator.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtSvg.QSvgGenerator.outputDevice": (),
- "PySide2.QtSvg.QSvgGenerator.paintEngine": (),
- "PySide2.QtSvg.QSvgGenerator.resolution": (),
- "PySide2.QtSvg.QSvgGenerator.setDescription": ('str',),
- "PySide2.QtSvg.QSvgGenerator.setFileName": ('str',),
- "PySide2.QtSvg.QSvgGenerator.setOutputDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtSvg.QSvgGenerator.setResolution": ('int',),
- "PySide2.QtSvg.QSvgGenerator.setSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtSvg.QSvgGenerator.setTitle": ('str',),
- "PySide2.QtSvg.QSvgGenerator.setViewBox": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',)],
- "PySide2.QtSvg.QSvgGenerator.size": (),
- "PySide2.QtSvg.QSvgGenerator.title": (),
- "PySide2.QtSvg.QSvgGenerator.viewBox": (),
- "PySide2.QtSvg.QSvgGenerator.viewBoxF": (),
-# class PySide2.QtSvg.QSvgRenderer:
- "PySide2.QtSvg.QSvgRenderer.__init__": [('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QObject',), ('PySide2.QtCore.QXmlStreamReader', 'PySide2.QtCore.QObject'), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtSvg.QSvgRenderer.animated": (),
- "PySide2.QtSvg.QSvgRenderer.animationDuration": (),
- "PySide2.QtSvg.QSvgRenderer.boundsOnElement": ('str',),
- "PySide2.QtSvg.QSvgRenderer.currentFrame": (),
- "PySide2.QtSvg.QSvgRenderer.defaultSize": (),
- "PySide2.QtSvg.QSvgRenderer.elementExists": ('str',),
- "PySide2.QtSvg.QSvgRenderer.framesPerSecond": (),
- "PySide2.QtSvg.QSvgRenderer.isValid": (),
- "PySide2.QtSvg.QSvgRenderer.load": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QXmlStreamReader',), ('str',)],
- "PySide2.QtSvg.QSvgRenderer.matrixForElement": ('str',),
- "PySide2.QtSvg.QSvgRenderer.render": [('PySide2.QtGui.QPainter',), ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF'), ('PySide2.QtGui.QPainter', 'str', 'PySide2.QtCore.QRectF')],
- "PySide2.QtSvg.QSvgRenderer.setCurrentFrame": ('int',),
- "PySide2.QtSvg.QSvgRenderer.setFramesPerSecond": ('int',),
- "PySide2.QtSvg.QSvgRenderer.setViewBox": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',)],
- "PySide2.QtSvg.QSvgRenderer.viewBox": (),
- "PySide2.QtSvg.QSvgRenderer.viewBoxF": (),
-# class PySide2.QtSvg.QSvgWidget:
- "PySide2.QtSvg.QSvgWidget.__init__": [('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtSvg.QSvgWidget.load": [('PySide2.QtCore.QByteArray',), ('str',)],
- "PySide2.QtSvg.QSvgWidget.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtSvg.QSvgWidget.renderer": (),
- "PySide2.QtSvg.QSvgWidget.sizeHint": (),
- }) if "PySide2.QtSvg" in sys.modules else None
-# Module PySide2.QtDataVisualization
-sig_dict.update({
-# class PySide2.QtDataVisualization.QtDataVisualization:
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DBars:
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.__init__": ('PySide2.QtGui.QSurfaceFormat', 'PySide2.QtGui.QWindow'),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.addAxis": ('PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.addSeries": ('PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.axes": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.barSpacing": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.barThickness": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.columnAxis": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.floorLevel": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.insertSeries": ('int', 'PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries'),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.isBarSpacingRelative": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.isMultiSeriesUniform": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.primarySeries": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.releaseAxis": ('PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.removeSeries": ('PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.rowAxis": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.selectedSeries": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.seriesList": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.setBarSpacing": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.setBarSpacingRelative": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.setBarThickness": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.setColumnAxis": ('PySide2.QtDataVisualization.QtDataVisualization.QCategory3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.setFloorLevel": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.setMultiSeriesUniform": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.setPrimarySeries": ('PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.setRowAxis": ('PySide2.QtDataVisualization.QtDataVisualization.QCategory3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.setValueAxis": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.valueAxis": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera:
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.CameraPreset:
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.cameraPreset": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.copyValuesFrom": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.maxZoomLevel": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.minZoomLevel": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.setCameraPosition": ('float', 'float', 'float'),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.setCameraPreset": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.CameraPreset',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.setMaxZoomLevel": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.setMinZoomLevel": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.setTarget": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.setWrapXRotation": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.setWrapYRotation": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.setXRotation": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.setYRotation": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.setZoomLevel": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.target": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.wrapXRotation": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.wrapYRotation": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.xRotation": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.yRotation": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.zoomLevel": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler:
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.isRotationEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.isSelectionEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.isZoomAtTargetEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.isZoomEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent', 'PySide2.QtCore.QPoint'),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.mousePressEvent": ('PySide2.QtGui.QMouseEvent', 'PySide2.QtCore.QPoint'),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent', 'PySide2.QtCore.QPoint'),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.setRotationEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.setSelectionEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.setZoomAtTargetEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.setZoomEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DLight:
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DLight.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DLight.isAutoPosition": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DLight.setAutoPosition": ('bool',),
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DObject:
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DObject.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DObject.copyValuesFrom": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DObject.isDirty": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DObject.parentScene": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DObject.position": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DObject.setDirty": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DObject.setPosition": ('PySide2.QtGui.QVector3D',),
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter:
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.__init__": ('PySide2.QtGui.QSurfaceFormat', 'PySide2.QtGui.QWindow'),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.addAxis": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.addSeries": ('PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.axes": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.axisX": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.axisY": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.axisZ": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.releaseAxis": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.removeSeries": ('PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.selectedSeries": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.seriesList": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.setAxisX": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.setAxisY": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.setAxisZ": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DScene:
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.activeCamera": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.activeLight": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.devicePixelRatio": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.graphPositionQuery": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.invalidSelectionPoint": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.isPointInPrimarySubView": ('PySide2.QtCore.QPoint',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.isPointInSecondarySubView": ('PySide2.QtCore.QPoint',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.isSecondarySubviewOnTop": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.isSlicingActive": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.primarySubViewport": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.secondarySubViewport": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.selectionQueryPosition": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.setActiveCamera": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.setActiveLight": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DLight',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.setDevicePixelRatio": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.setGraphPositionQuery": ('PySide2.QtCore.QPoint',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.setPrimarySubViewport": ('PySide2.QtCore.QRect',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.setSecondarySubViewport": ('PySide2.QtCore.QRect',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.setSecondarySubviewOnTop": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.setSelectionQueryPosition": ('PySide2.QtCore.QPoint',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.setSlicingActive": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.viewport": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface:
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.__init__": ('PySide2.QtGui.QSurfaceFormat', 'PySide2.QtGui.QWindow'),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.addAxis": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.addSeries": ('PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.axes": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.axisX": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.axisY": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.axisZ": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.flipHorizontalGrid": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.releaseAxis": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.removeSeries": ('PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.selectedSeries": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.seriesList": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.setAxisX": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.setAxisY": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.setAxisZ": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.setFlipHorizontalGrid": ('bool',),
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme:
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.ColorStyle:
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.Theme:
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.Theme', 'PySide2.QtCore.QObject')],
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.ambientLightStrength": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.backgroundColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.baseColors": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.baseGradients": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.colorStyle": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.font": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.gridLineColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.highlightLightStrength": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.isBackgroundEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.isGridEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.isLabelBackgroundEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.isLabelBorderEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.labelBackgroundColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.labelTextColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.lightColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.lightStrength": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.multiHighlightColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.multiHighlightGradient": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setAmbientLightStrength": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setBackgroundColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setBackgroundEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setBaseColors": ('typing.Sequence[PySide2.QtGui.QColor]',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setBaseGradients": ('typing.Sequence[PySide2.QtGui.QLinearGradient]',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setColorStyle": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.ColorStyle',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setGridEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setGridLineColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setHighlightLightStrength": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setLabelBackgroundColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setLabelBackgroundEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setLabelBorderEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setLabelTextColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setLightColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setLightStrength": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setMultiHighlightColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setMultiHighlightGradient": ('PySide2.QtGui.QLinearGradient',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setSingleHighlightColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setSingleHighlightGradient": ('PySide2.QtGui.QLinearGradient',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setType": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.Theme',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setWindowColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.singleHighlightColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.singleHighlightGradient": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.type": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.windowColor": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.AxisOrientation:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.AxisType:
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.isAutoAdjustRange": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.isTitleFixed": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.isTitleVisible": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.labelAutoRotation": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.labels": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.max": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.min": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.orientation": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.setAutoAdjustRange": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.setLabelAutoRotation": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.setLabels": ('typing.Sequence[str]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.setMax": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.setMin": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.setRange": ('float', 'float'),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.setTitle": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.setTitleFixed": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.setTitleVisible": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.title": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.type": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.ElementType:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.OptimizationHint:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.OptimizationHints:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.SelectionFlag:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.SelectionFlags:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.ShadowQuality:
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.activeInputHandler": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.activeTheme": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.addCustomItem": ('PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.addInputHandler": ('PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.addTheme": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.aspectRatio": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.clearSelection": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.currentFps": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.customItems": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.exposeEvent": ('PySide2.QtGui.QExposeEvent',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.hasContext": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.horizontalAspectRatio": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.inputHandlers": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.isOrthoProjection": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.isPolar": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.isReflection": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.locale": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.margin": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.measureFps": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.optimizationHints": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.queriedGraphPosition": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.radialLabelOffset": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.reflectivity": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.releaseCustomItem": ('PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.releaseInputHandler": ('PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.releaseTheme": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.removeCustomItem": ('PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.removeCustomItemAt": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.removeCustomItems": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.renderToImage": ('int', 'PySide2.QtCore.QSize'),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.scene": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.selectedAxis": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.selectedCustomItem": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.selectedCustomItemIndex": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.selectedElement": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.selectedLabelIndex": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.selectionMode": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setActiveInputHandler": ('PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setActiveTheme": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setAspectRatio": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setHorizontalAspectRatio": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setMargin": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setMeasureFps": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setOptimizationHints": ('PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.OptimizationHints',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setOrthoProjection": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setPolar": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setRadialLabelOffset": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setReflection": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setReflectivity": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setSelectionMode": ('PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.SelectionFlags',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setShadowQuality": ('PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.ShadowQuality',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.shadowQuality": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.shadowsSupported": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.themes": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.touchEvent": ('PySide2.QtGui.QTouchEvent',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.InputView:
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.inputPosition": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.inputView": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent', 'PySide2.QtCore.QPoint'),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.mousePressEvent": ('PySide2.QtGui.QMouseEvent', 'PySide2.QtCore.QPoint'),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent', 'PySide2.QtCore.QPoint'),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.prevDistance": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.previousInputPos": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.scene": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.setInputPosition": ('PySide2.QtCore.QPoint',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.setInputView": ('PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.InputView',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.setPrevDistance": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.setPreviousInputPos": ('PySide2.QtCore.QPoint',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.setScene": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DScene',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.touchEvent": ('PySide2.QtGui.QTouchEvent',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.Mesh:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.SeriesType:
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.baseColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.baseGradient": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.colorStyle": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.isItemLabelVisible": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.isMeshSmooth": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.isVisible": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.itemLabel": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.itemLabelFormat": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.mesh": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.meshRotation": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.multiHighlightColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.multiHighlightGradient": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.name": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setBaseColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setBaseGradient": ('PySide2.QtGui.QLinearGradient',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setColorStyle": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.ColorStyle',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setItemLabelFormat": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setItemLabelVisible": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setMesh": ('PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.Mesh',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setMeshAxisAndAngle": ('PySide2.QtGui.QVector3D', 'float'),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setMeshRotation": ('PySide2.QtGui.QQuaternion',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setMeshSmooth": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setMultiHighlightColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setMultiHighlightGradient": ('PySide2.QtGui.QLinearGradient',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setName": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setSingleHighlightColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setSingleHighlightGradient": ('PySide2.QtGui.QLinearGradient',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setUserDefinedMesh": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setVisible": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.singleHighlightColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.singleHighlightGradient": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.type": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.userDefinedMesh": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstractDataProxy:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstractDataProxy.DataType:
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstractDataProxy.type": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries:
- "PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy', 'PySide2.QtCore.QObject')],
- "PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries.dataProxy": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries.invalidSelectionPosition": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries.meshAngle": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries.selectedBar": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries.setDataProxy": ('PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy',),
- "PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries.setMeshAngle": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries.setSelectedBar": ('PySide2.QtCore.QPoint',),
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataArray:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataArray.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataArray.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataArray.__origin__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataArray.__origin__.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataArray.__origin__.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataArray._gorg:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataArray._gorg.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataArray._gorg.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem:
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem.__init__": [(), ('PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem',), ('float',), ('float', 'float')],
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem.__copy__": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem.createExtraData": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem.rotation": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem.setRotation": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem.setValue": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem.value": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy:
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.addRow": [('typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]',), ('typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]', 'str')],
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.addRows": [('typing.List[typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]]',), ('typing.List[typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]]', 'typing.Sequence[str]')],
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.array": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.columnLabels": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.insertRow": [('int', 'typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]'), ('int', 'typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]', 'str')],
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.insertRows": [('int', 'typing.List[typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]]'), ('int', 'typing.List[typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]]', 'typing.Sequence[str]')],
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.itemAt": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.removeRows": ('int', 'int', 'bool'),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.resetArray": [(), ('typing.List[typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]]',), ('typing.List[typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]]', 'typing.Sequence[str]', 'typing.Sequence[str]')],
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.rowAt": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.rowCount": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.rowLabels": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.series": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.setColumnLabels": ('typing.Sequence[str]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.setItem": [('PySide2.QtCore.QPoint', 'PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem'), ('int', 'int', 'PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem')],
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.setRow": [('int', 'typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]'), ('int', 'typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]', 'str')],
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.setRowLabels": ('typing.Sequence[str]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.setRows": [('int', 'typing.List[typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]]'), ('int', 'typing.List[typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]]', 'typing.Sequence[str]')],
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataRow:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataRow.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataRow.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataRow.__origin__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataRow.__origin__.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataRow.__origin__.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataRow._gorg:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataRow._gorg.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataRow._gorg.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QCategory3DAxis:
- "PySide2.QtDataVisualization.QtDataVisualization.QCategory3DAxis.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCategory3DAxis.labels": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCategory3DAxis.setLabels": ('typing.Sequence[str]',),
-# class PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem:
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.__init__": [('PySide2.QtCore.QObject',), ('str', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QQuaternion', 'PySide2.QtGui.QImage', 'PySide2.QtCore.QObject')],
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.isPositionAbsolute": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.isScalingAbsolute": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.isShadowCasting": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.isVisible": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.meshFile": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.position": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.rotation": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.scaling": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setMeshFile": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setPosition": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setPositionAbsolute": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setRotation": ('PySide2.QtGui.QQuaternion',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setRotationAxisAndAngle": ('PySide2.QtGui.QVector3D', 'float'),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setScaling": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setScalingAbsolute": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setShadowCasting": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setTextureFile": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setTextureImage": ('PySide2.QtGui.QImage',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setVisible": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.textureFile": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel:
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.__init__": [('PySide2.QtCore.QObject',), ('str', 'PySide2.QtGui.QFont', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QQuaternion', 'PySide2.QtCore.QObject')],
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.backgroundColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.font": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.isBackgroundEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.isBorderEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.isFacingCamera": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.setBackgroundColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.setBackgroundEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.setBorderEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.setFacingCamera": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.setText": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.setTextColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.text": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.textColor": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume:
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QQuaternion', 'int', 'int', 'int', 'typing.List[int]', 'PySide2.QtGui.QImage.Format', 'typing.List[int]', 'PySide2.QtCore.QObject')],
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.alphaMultiplier": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.colorTable": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.createTextureData": ('typing.List[PySide2.QtGui.QImage]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.drawSliceFrames": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.drawSlices": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.preserveOpacity": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.renderSlice": ('PySide2.QtCore.Qt.Axis', 'int'),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setAlphaMultiplier": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setColorTable": ('typing.List[int]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setDrawSliceFrames": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setDrawSlices": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setPreserveOpacity": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setSliceFrameColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setSliceFrameGaps": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setSliceFrameThicknesses": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setSliceFrameWidths": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setSliceIndexX": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setSliceIndexY": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setSliceIndexZ": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setSliceIndices": ('int', 'int', 'int'),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setSubTextureData": [('PySide2.QtCore.Qt.Axis', 'int', 'PySide2.QtGui.QImage'), ('PySide2.QtCore.Qt.Axis', 'int', 'str')],
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setTextureData": ('typing.List[int]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setTextureDepth": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setTextureDimensions": ('int', 'int', 'int'),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setTextureFormat": ('PySide2.QtGui.QImage.Format',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setTextureHeight": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setTextureWidth": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setUseHighDefShader": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.sliceFrameColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.sliceFrameGaps": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.sliceFrameThicknesses": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.sliceFrameWidths": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.sliceIndexX": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.sliceIndexY": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.sliceIndexZ": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.textureData": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.textureDataWidth": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.textureDepth": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.textureFormat": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.textureHeight": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.textureWidth": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.useHighDefShader": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy:
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtGui.QImage', 'PySide2.QtCore.QObject'), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.heightMap": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.heightMapFile": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.maxXValue": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.maxZValue": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.minXValue": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.minZValue": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.setHeightMap": ('PySide2.QtGui.QImage',),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.setHeightMapFile": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.setMaxXValue": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.setMaxZValue": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.setMinXValue": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.setMinZValue": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.setValueRanges": ('float', 'float', 'float', 'float'),
-# class PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy:
-# class PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.MultiMatchBehavior:
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.__init__": [('PySide2.QtCore.QAbstractItemModel', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'str', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'str', 'str', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'str', 'str', 'str', 'typing.Sequence[str]', 'typing.Sequence[str]', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'str', 'str', 'typing.Sequence[str]', 'typing.Sequence[str]', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QObject',)],
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.autoColumnCategories": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.autoRowCategories": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.columnCategories": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.columnCategoryIndex": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.columnRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.columnRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.columnRoleReplace": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.itemModel": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.multiMatchBehavior": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.remap": ('str', 'str', 'str', 'str', 'typing.Sequence[str]', 'typing.Sequence[str]'),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.rotationRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.rotationRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.rotationRoleReplace": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.rowCategories": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.rowCategoryIndex": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.rowRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.rowRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.rowRoleReplace": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setAutoColumnCategories": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setAutoRowCategories": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setColumnCategories": ('typing.Sequence[str]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setColumnRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setColumnRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setColumnRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setItemModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setMultiMatchBehavior": ('PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.MultiMatchBehavior',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setRotationRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setRotationRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setRotationRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setRowCategories": ('typing.Sequence[str]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setRowRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setRowRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setRowRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setUseModelCategories": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setValueRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setValueRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setValueRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.useModelCategories": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.valueRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.valueRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.valueRoleReplace": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy:
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.__init__": [('PySide2.QtCore.QAbstractItemModel', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'str', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'str', 'str', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QObject',)],
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.itemModel": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.remap": ('str', 'str', 'str', 'str'),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.rotationRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.rotationRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.rotationRoleReplace": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setItemModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setRotationRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setRotationRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setRotationRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setXPosRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setXPosRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setXPosRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setYPosRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setYPosRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setYPosRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setZPosRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setZPosRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setZPosRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.xPosRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.xPosRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.xPosRoleReplace": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.yPosRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.yPosRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.yPosRoleReplace": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.zPosRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.zPosRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.zPosRoleReplace": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy:
-# class PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.MultiMatchBehavior:
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.__init__": [('PySide2.QtCore.QAbstractItemModel', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'str', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'str', 'str', 'str', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'str', 'str', 'str', 'str', 'typing.Sequence[str]', 'typing.Sequence[str]', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'str', 'str', 'typing.Sequence[str]', 'typing.Sequence[str]', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QObject',)],
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.autoColumnCategories": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.autoRowCategories": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.columnCategories": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.columnCategoryIndex": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.columnRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.columnRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.columnRoleReplace": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.itemModel": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.multiMatchBehavior": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.remap": ('str', 'str', 'str', 'str', 'str', 'typing.Sequence[str]', 'typing.Sequence[str]'),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.rowCategories": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.rowCategoryIndex": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.rowRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.rowRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.rowRoleReplace": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setAutoColumnCategories": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setAutoRowCategories": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setColumnCategories": ('typing.Sequence[str]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setColumnRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setColumnRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setColumnRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setItemModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setMultiMatchBehavior": ('PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.MultiMatchBehavior',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setRowCategories": ('typing.Sequence[str]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setRowRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setRowRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setRowRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setUseModelCategories": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setXPosRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setXPosRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setXPosRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setYPosRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setYPosRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setYPosRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setZPosRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setZPosRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setZPosRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.useModelCategories": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.xPosRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.xPosRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.xPosRoleReplace": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.yPosRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.yPosRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.yPosRoleReplace": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.zPosRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.zPosRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.zPosRoleReplace": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter:
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.autoSubGrid": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.base": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.createNewInstance": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.populateCopy": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter',),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.positionAt": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.recalculate": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.setAutoSubGrid": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.setBase": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.setShowEdgeLabels": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.showEdgeLabels": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.valueAt": ('float',),
-# class PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries:
- "PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy', 'PySide2.QtCore.QObject')],
- "PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries.dataProxy": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries.invalidSelectionIndex": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries.itemSize": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries.selectedItem": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries.setDataProxy": ('PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries.setItemSize": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries.setSelectedItem": ('int',),
-# class PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem:
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.__init__": [(), ('PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem',), ('PySide2.QtGui.QVector3D',), ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QQuaternion')],
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.__copy__": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.createExtraData": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.position": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.rotation": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.setPosition": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.setRotation": ('PySide2.QtGui.QQuaternion',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.setX": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.setY": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.setZ": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.x": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.y": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.z": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy:
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.addItem": ('PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.addItems": ('typing.List[PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.array": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.insertItem": ('int', 'PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem'),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.insertItems": ('int', 'typing.List[PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem]'),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.itemAt": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.itemCount": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.removeItems": ('int', 'int'),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.resetArray": ('typing.List[PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.series": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.setItem": ('int', 'PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem'),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.setItems": ('int', 'typing.List[PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem]'),
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.DrawFlag:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.DrawFlags:
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy', 'PySide2.QtCore.QObject')],
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.dataProxy": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.drawMode": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.invalidSelectionPosition": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.isFlatShadingEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.isFlatShadingSupported": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.selectedPoint": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.setDataProxy": ('PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.setDrawMode": ('PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.DrawFlags',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.setFlatShadingEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.setSelectedPoint": ('PySide2.QtCore.QPoint',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.setTexture": ('PySide2.QtGui.QImage',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.setTextureFile": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.texture": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.textureFile": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataArray:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataArray.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataArray.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataArray.__origin__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataArray.__origin__.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataArray.__origin__.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataArray._gorg:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataArray._gorg.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataArray._gorg.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem:
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.__init__": [(), ('PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem',), ('PySide2.QtGui.QVector3D',)],
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.__copy__": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.createExtraData": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.position": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.setPosition": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.setX": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.setY": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.setZ": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.x": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.y": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.z": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy:
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.addRow": ('typing.List[PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.addRows": ('typing.List[typing.List[PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem]]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.array": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.columnCount": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.insertRow": ('int', 'typing.List[PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem]'),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.insertRows": ('int', 'typing.List[typing.List[PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem]]'),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.itemAt": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.removeRows": ('int', 'int'),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.resetArray": ('typing.List[typing.List[PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem]]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.rowCount": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.series": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.setItem": [('PySide2.QtCore.QPoint', 'PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem'), ('int', 'int', 'PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem')],
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.setRow": ('int', 'typing.List[PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem]'),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.setRows": ('int', 'typing.List[typing.List[PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem]]'),
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataRow:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataRow.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataRow.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataRow.__origin__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataRow.__origin__.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataRow.__origin__.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataRow._gorg:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataRow._gorg.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataRow._gorg.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QTouch3DInputHandler:
- "PySide2.QtDataVisualization.QtDataVisualization.QTouch3DInputHandler.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.QTouch3DInputHandler.touchEvent": ('PySide2.QtGui.QTouchEvent',),
-# class PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis:
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.formatter": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.labelFormat": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.reversed": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.segmentCount": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.setFormatter": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.setLabelFormat": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.setReversed": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.setSegmentCount": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.setSubSegmentCount": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.subSegmentCount": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter:
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.allowNegatives": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.allowZero": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.axis": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.createNewInstance": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.gridPositions": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.labelPositions": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.labelStrings": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.locale": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.markDirty": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.populateCopy": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.positionAt": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.recalculate": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.setAllowNegatives": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.setAllowZero": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.stringForValue": ('float', 'str'),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.subGridPositions": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.valueAt": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.qDefaultSurfaceFormat": ('bool',),
- }) if "PySide2.QtDataVisualization" in sys.modules else None
-# Module PySide2.QtUiTools
-sig_dict.update({
-# class PySide2.QtUiTools.QUiLoader:
- "PySide2.QtUiTools.QUiLoader.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtUiTools.QUiLoader.addPluginPath": ('str',),
- "PySide2.QtUiTools.QUiLoader.availableLayouts": (),
- "PySide2.QtUiTools.QUiLoader.availableWidgets": (),
- "PySide2.QtUiTools.QUiLoader.clearPluginPaths": (),
- "PySide2.QtUiTools.QUiLoader.createAction": ('PySide2.QtCore.QObject', 'str'),
- "PySide2.QtUiTools.QUiLoader.createActionGroup": ('PySide2.QtCore.QObject', 'str'),
- "PySide2.QtUiTools.QUiLoader.createLayout": ('str', 'PySide2.QtCore.QObject', 'str'),
- "PySide2.QtUiTools.QUiLoader.createWidget": ('str', 'PySide2.QtWidgets.QWidget', 'str'),
- "PySide2.QtUiTools.QUiLoader.errorString": (),
- "PySide2.QtUiTools.QUiLoader.isLanguageChangeEnabled": (),
- "PySide2.QtUiTools.QUiLoader.isTranslationEnabled": (),
- "PySide2.QtUiTools.QUiLoader.load": [('PySide2.QtCore.QIODevice', 'PySide2.QtWidgets.QWidget'), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtUiTools.QUiLoader.pluginPaths": (),
- "PySide2.QtUiTools.QUiLoader.registerCustomWidget": ('object',),
- "PySide2.QtUiTools.QUiLoader.setLanguageChangeEnabled": ('bool',),
- "PySide2.QtUiTools.QUiLoader.setTranslationEnabled": ('bool',),
- "PySide2.QtUiTools.QUiLoader.setWorkingDirectory": ('PySide2.QtCore.QDir',),
- "PySide2.QtUiTools.QUiLoader.workingDirectory": (),
- }) if "PySide2.QtUiTools" in sys.modules else None
-# Module PySide2.QtWebChannel
-sig_dict.update({
-# class PySide2.QtWebChannel.QWebChannel:
- "PySide2.QtWebChannel.QWebChannel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWebChannel.QWebChannel.blockUpdates": (),
- "PySide2.QtWebChannel.QWebChannel.connectTo": ('PySide2.QtWebChannel.QWebChannelAbstractTransport',),
- "PySide2.QtWebChannel.QWebChannel.deregisterObject": ('PySide2.QtCore.QObject',),
- "PySide2.QtWebChannel.QWebChannel.disconnectFrom": ('PySide2.QtWebChannel.QWebChannelAbstractTransport',),
- "PySide2.QtWebChannel.QWebChannel.registerObject": ('str', 'PySide2.QtCore.QObject'),
- "PySide2.QtWebChannel.QWebChannel.registerObjects": ('typing.Dict[str, PySide2.QtCore.QObject]',),
- "PySide2.QtWebChannel.QWebChannel.registeredObjects": (),
- "PySide2.QtWebChannel.QWebChannel.setBlockUpdates": ('bool',),
-# class PySide2.QtWebChannel.QWebChannelAbstractTransport:
- "PySide2.QtWebChannel.QWebChannelAbstractTransport.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWebChannel.QWebChannelAbstractTransport.sendMessage": ('typing.Dict[str, PySide2.QtCore.QJsonValue]',),
- }) if "PySide2.QtWebChannel" in sys.modules else None
-# Module PySide2.QtWebEngineCore
-sig_dict.update({
-# class PySide2.QtWebEngineCore.QWebEngineCookieStore:
- "PySide2.QtWebEngineCore.QWebEngineCookieStore.deleteAllCookies": (),
- "PySide2.QtWebEngineCore.QWebEngineCookieStore.deleteSessionCookies": (),
- "PySide2.QtWebEngineCore.QWebEngineCookieStore.loadAllCookies": (),
-# class PySide2.QtWebEngineCore.QWebEngineHttpRequest:
-# class PySide2.QtWebEngineCore.QWebEngineHttpRequest.Method:
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.__init__": [('PySide2.QtCore.QUrl', 'PySide2.QtWebEngineCore.QWebEngineHttpRequest.Method'), ('PySide2.QtWebEngineCore.QWebEngineHttpRequest',)],
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.hasHeader": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.header": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.headers": (),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.method": (),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.postData": (),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.postRequest": ('PySide2.QtCore.QUrl', 'typing.Dict[str, str]'),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.setHeader": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.setMethod": ('PySide2.QtWebEngineCore.QWebEngineHttpRequest.Method',),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.setPostData": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.setUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.swap": ('PySide2.QtWebEngineCore.QWebEngineHttpRequest',),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.unsetHeader": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.url": (),
-# class PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo:
-# class PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.NavigationType:
-# class PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType:
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.block": ('bool',),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.changed": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.firstPartyUrl": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.initiator": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.navigationType": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.redirect": ('PySide2.QtCore.QUrl',),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.requestMethod": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.requestUrl": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.resourceType": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.setHttpHeader": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
-# class PySide2.QtWebEngineCore.QWebEngineUrlRequestInterceptor:
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInterceptor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInterceptor.interceptRequest": ('PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo',),
-# class PySide2.QtWebEngineCore.QWebEngineUrlRequestJob:
-# class PySide2.QtWebEngineCore.QWebEngineUrlRequestJob.Error:
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestJob.fail": ('PySide2.QtWebEngineCore.QWebEngineUrlRequestJob.Error',),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestJob.initiator": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestJob.redirect": ('PySide2.QtCore.QUrl',),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestJob.reply": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QIODevice'),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestJob.requestHeaders": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestJob.requestMethod": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestJob.requestUrl": (),
-# class PySide2.QtWebEngineCore.QWebEngineUrlScheme:
-# class PySide2.QtWebEngineCore.QWebEngineUrlScheme.Flag:
-# class PySide2.QtWebEngineCore.QWebEngineUrlScheme.Flags:
-# class PySide2.QtWebEngineCore.QWebEngineUrlScheme.SpecialPort:
-# class PySide2.QtWebEngineCore.QWebEngineUrlScheme.Syntax:
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.__init__": [(), ('PySide2.QtCore.QByteArray',), ('PySide2.QtWebEngineCore.QWebEngineUrlScheme',)],
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.__copy__": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.defaultPort": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.flags": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.name": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.registerScheme": ('PySide2.QtWebEngineCore.QWebEngineUrlScheme',),
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.schemeByName": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.setDefaultPort": ('int',),
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.setFlags": ('PySide2.QtWebEngineCore.QWebEngineUrlScheme.Flags',),
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.setName": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.setSyntax": ('PySide2.QtWebEngineCore.QWebEngineUrlScheme.Syntax',),
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.syntax": (),
-# class PySide2.QtWebEngineCore.QWebEngineUrlSchemeHandler:
- "PySide2.QtWebEngineCore.QWebEngineUrlSchemeHandler.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWebEngineCore.QWebEngineUrlSchemeHandler.requestStarted": ('PySide2.QtWebEngineCore.QWebEngineUrlRequestJob',),
- }) if "PySide2.QtWebEngineCore" in sys.modules else None
-# Module PySide2.QtWebEngine
-sig_dict.update({
-# class PySide2.QtWebEngine.QtWebEngine:
- "PySide2.QtWebEngine.QtWebEngine.initialize": (),
- }) if "PySide2.QtWebEngine" in sys.modules else None
-# Module PySide2.QtWebEngineWidgets
-sig_dict.update({
-# class PySide2.QtWebEngineWidgets.QWebEngineCertificateError:
-# class PySide2.QtWebEngineWidgets.QWebEngineCertificateError.Error:
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.__init__": [('PySide2.QtWebEngineWidgets.QWebEngineCertificateError',), ('int', 'PySide2.QtCore.QUrl', 'bool', 'str')],
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.answered": (),
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.certificateChain": (),
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.defer": (),
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.deferred": (),
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.error": (),
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.errorDescription": (),
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.ignoreCertificateError": (),
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.isOverridable": (),
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.rejectCertificate": (),
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.url": (),
-# class PySide2.QtWebEngineWidgets.QWebEngineContextMenuData:
-# class PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.EditFlag:
-# class PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.EditFlags:
-# class PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.MediaFlag:
-# class PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.MediaFlags:
-# class PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.MediaType:
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.__init__": [(), ('PySide2.QtWebEngineWidgets.QWebEngineContextMenuData',)],
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.__copy__": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.editFlags": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.isContentEditable": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.isValid": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.linkText": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.linkUrl": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.mediaFlags": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.mediaType": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.mediaUrl": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.misspelledWord": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.position": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.selectedText": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.spellCheckerSuggestions": (),
-# class PySide2.QtWebEngineWidgets.QWebEngineDownloadItem:
-# class PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.DownloadInterruptReason:
-# class PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.DownloadState:
-# class PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.DownloadType:
-# class PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.SavePageFormat:
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.accept": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.cancel": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.downloadDirectory": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.downloadFileName": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.id": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.interruptReason": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.interruptReasonString": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.isFinished": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.isPaused": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.isSavePageDownload": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.mimeType": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.page": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.path": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.pause": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.receivedBytes": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.resume": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.savePageFormat": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.setDownloadDirectory": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.setDownloadFileName": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.setPath": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.setSavePageFormat": ('PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.SavePageFormat',),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.state": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.suggestedFileName": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.totalBytes": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.type": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.url": (),
-# class PySide2.QtWebEngineWidgets.QWebEngineFullScreenRequest:
- "PySide2.QtWebEngineWidgets.QWebEngineFullScreenRequest.accept": (),
- "PySide2.QtWebEngineWidgets.QWebEngineFullScreenRequest.origin": (),
- "PySide2.QtWebEngineWidgets.QWebEngineFullScreenRequest.reject": (),
- "PySide2.QtWebEngineWidgets.QWebEngineFullScreenRequest.toggleOn": (),
-# class PySide2.QtWebEngineWidgets.QWebEngineHistory:
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.back": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.backItem": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.backItems": ('int',),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.canGoBack": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.canGoForward": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.clear": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.count": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.currentItem": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.currentItemIndex": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.forward": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.forwardItem": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.forwardItems": ('int',),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.goToItem": ('PySide2.QtWebEngineWidgets.QWebEngineHistoryItem',),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.itemAt": ('int',),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.items": (),
-# class PySide2.QtWebEngineWidgets.QWebEngineHistoryItem:
- "PySide2.QtWebEngineWidgets.QWebEngineHistoryItem.__init__": ('PySide2.QtWebEngineWidgets.QWebEngineHistoryItem',),
- "PySide2.QtWebEngineWidgets.QWebEngineHistoryItem.__copy__": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistoryItem.iconUrl": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistoryItem.isValid": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistoryItem.lastVisited": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistoryItem.originalUrl": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistoryItem.swap": ('PySide2.QtWebEngineWidgets.QWebEngineHistoryItem',),
- "PySide2.QtWebEngineWidgets.QWebEngineHistoryItem.title": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistoryItem.url": (),
-# class PySide2.QtWebEngineWidgets.QWebEnginePage:
-# class PySide2.QtWebEngineWidgets.QWebEnginePage.Feature:
-# class PySide2.QtWebEngineWidgets.QWebEnginePage.FileSelectionMode:
-# class PySide2.QtWebEngineWidgets.QWebEnginePage.FindFlag:
-# class PySide2.QtWebEngineWidgets.QWebEnginePage.FindFlags:
-# class PySide2.QtWebEngineWidgets.QWebEnginePage.JavaScriptConsoleMessageLevel:
-# class PySide2.QtWebEngineWidgets.QWebEnginePage.NavigationType:
-# class PySide2.QtWebEngineWidgets.QWebEnginePage.PermissionPolicy:
-# class PySide2.QtWebEngineWidgets.QWebEnginePage.RenderProcessTerminationStatus:
-# class PySide2.QtWebEngineWidgets.QWebEnginePage.WebAction:
-# class PySide2.QtWebEngineWidgets.QWebEnginePage.WebWindowType:
- "PySide2.QtWebEngineWidgets.QWebEnginePage.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtWebEngineWidgets.QWebEngineProfile', 'PySide2.QtCore.QObject')],
- "PySide2.QtWebEngineWidgets.QWebEnginePage.acceptNavigationRequest": ('PySide2.QtCore.QUrl', 'PySide2.QtWebEngineWidgets.QWebEnginePage.NavigationType', 'bool'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.action": ('PySide2.QtWebEngineWidgets.QWebEnginePage.WebAction',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.backgroundColor": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.certificateError": ('PySide2.QtWebEngineWidgets.QWebEngineCertificateError',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.chooseFiles": ('PySide2.QtWebEngineWidgets.QWebEnginePage.FileSelectionMode', 'typing.Sequence[str]', 'typing.Sequence[str]'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.contentsSize": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.contextMenuData": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.createStandardContextMenu": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.createWindow": ('PySide2.QtWebEngineWidgets.QWebEnginePage.WebWindowType',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.devToolsPage": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.download": ('PySide2.QtCore.QUrl', 'str'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.findText": [('str', 'PySide2.QtWebEngineWidgets.QWebEnginePage.FindFlags'), ('str', 'PySide2.QtWebEngineWidgets.QWebEnginePage.FindFlags', 'object')],
- "PySide2.QtWebEngineWidgets.QWebEnginePage.hasSelection": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.history": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.icon": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.iconUrl": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.inspectedPage": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.isAudioMuted": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.isVisible": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.javaScriptAlert": ('PySide2.QtCore.QUrl', 'str'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.javaScriptConfirm": ('PySide2.QtCore.QUrl', 'str'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.javaScriptConsoleMessage": ('PySide2.QtWebEngineWidgets.QWebEnginePage.JavaScriptConsoleMessageLevel', 'str', 'int', 'str'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.javaScriptPrompt": ('PySide2.QtCore.QUrl', 'str', 'str'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.load": [('PySide2.QtCore.QUrl',), ('PySide2.QtWebEngineCore.QWebEngineHttpRequest',)],
- "PySide2.QtWebEngineWidgets.QWebEnginePage.printToPdf": [('object', 'PySide2.QtGui.QPageLayout'), ('str', 'PySide2.QtGui.QPageLayout')],
- "PySide2.QtWebEngineWidgets.QWebEnginePage.profile": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.recentlyAudible": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.replaceMisspelledWord": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.requestedUrl": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.runJavaScript": [('str',), ('str', 'int'), ('str', 'int', 'object')],
- "PySide2.QtWebEngineWidgets.QWebEnginePage.save": ('str', 'PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.SavePageFormat'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.scripts": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.scrollPosition": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.selectedText": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setAudioMuted": ('bool',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setBackgroundColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setContent": ('PySide2.QtCore.QByteArray', 'str', 'PySide2.QtCore.QUrl'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setDevToolsPage": ('PySide2.QtWebEngineWidgets.QWebEnginePage',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setFeaturePermission": ('PySide2.QtCore.QUrl', 'PySide2.QtWebEngineWidgets.QWebEnginePage.Feature', 'PySide2.QtWebEngineWidgets.QWebEnginePage.PermissionPolicy'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setHtml": ('str', 'PySide2.QtCore.QUrl'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setInspectedPage": ('PySide2.QtWebEngineWidgets.QWebEnginePage',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setUrlRequestInterceptor": ('PySide2.QtWebEngineCore.QWebEngineUrlRequestInterceptor',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setView": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setVisible": ('bool',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setWebChannel": [('PySide2.QtWebChannel.QWebChannel',), ('PySide2.QtWebChannel.QWebChannel', 'int')],
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setZoomFactor": ('float',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.settings": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.title": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.toHtml": ('object',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.toPlainText": ('object',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.triggerAction": ('PySide2.QtWebEngineWidgets.QWebEnginePage.WebAction', 'bool'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.url": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.view": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.webChannel": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.zoomFactor": (),
-# class PySide2.QtWebEngineWidgets.QWebEngineProfile:
-# class PySide2.QtWebEngineWidgets.QWebEngineProfile.HttpCacheType:
-# class PySide2.QtWebEngineWidgets.QWebEngineProfile.PersistentCookiesPolicy:
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.__init__": [('PySide2.QtCore.QObject',), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.cachePath": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.clearAllVisitedLinks": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.clearHttpCache": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.clearVisitedLinks": ('typing.Sequence[PySide2.QtCore.QUrl]',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.cookieStore": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.defaultProfile": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.downloadPath": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.httpAcceptLanguage": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.httpCacheMaximumSize": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.httpCacheType": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.httpUserAgent": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.installUrlSchemeHandler": ('PySide2.QtCore.QByteArray', 'PySide2.QtWebEngineCore.QWebEngineUrlSchemeHandler'),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.isOffTheRecord": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.isSpellCheckEnabled": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.isUsedForGlobalCertificateVerification": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.persistentCookiesPolicy": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.persistentStoragePath": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.removeAllUrlSchemeHandlers": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.removeUrlScheme": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.removeUrlSchemeHandler": ('PySide2.QtWebEngineCore.QWebEngineUrlSchemeHandler',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.scripts": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setCachePath": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setDownloadPath": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setHttpAcceptLanguage": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setHttpCacheMaximumSize": ('int',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setHttpCacheType": ('PySide2.QtWebEngineWidgets.QWebEngineProfile.HttpCacheType',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setHttpUserAgent": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setPersistentCookiesPolicy": ('PySide2.QtWebEngineWidgets.QWebEngineProfile.PersistentCookiesPolicy',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setPersistentStoragePath": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setRequestInterceptor": ('PySide2.QtWebEngineCore.QWebEngineUrlRequestInterceptor',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setSpellCheckEnabled": ('bool',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setSpellCheckLanguages": ('typing.Sequence[str]',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setUrlRequestInterceptor": ('PySide2.QtWebEngineCore.QWebEngineUrlRequestInterceptor',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setUseForGlobalCertificateVerification": ('bool',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.settings": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.spellCheckLanguages": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.storageName": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.urlSchemeHandler": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.visitedLinksContainsUrl": ('PySide2.QtCore.QUrl',),
-# class PySide2.QtWebEngineWidgets.QWebEngineScript:
-# class PySide2.QtWebEngineWidgets.QWebEngineScript.InjectionPoint:
-# class PySide2.QtWebEngineWidgets.QWebEngineScript.ScriptWorldId:
- "PySide2.QtWebEngineWidgets.QWebEngineScript.__init__": [(), ('PySide2.QtWebEngineWidgets.QWebEngineScript',)],
- "PySide2.QtWebEngineWidgets.QWebEngineScript.__copy__": (),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.injectionPoint": (),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.isNull": (),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.name": (),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.runsOnSubFrames": (),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.setInjectionPoint": ('PySide2.QtWebEngineWidgets.QWebEngineScript.InjectionPoint',),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.setName": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.setRunsOnSubFrames": ('bool',),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.setSourceCode": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.setWorldId": ('int',),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.sourceCode": (),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.swap": ('PySide2.QtWebEngineWidgets.QWebEngineScript',),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.worldId": (),
-# class PySide2.QtWebEngineWidgets.QWebEngineScriptCollection:
- "PySide2.QtWebEngineWidgets.QWebEngineScriptCollection.clear": (),
- "PySide2.QtWebEngineWidgets.QWebEngineScriptCollection.contains": ('PySide2.QtWebEngineWidgets.QWebEngineScript',),
- "PySide2.QtWebEngineWidgets.QWebEngineScriptCollection.count": (),
- "PySide2.QtWebEngineWidgets.QWebEngineScriptCollection.findScript": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineScriptCollection.findScripts": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineScriptCollection.insert": [('PySide2.QtWebEngineWidgets.QWebEngineScript',), ('typing.Sequence[PySide2.QtWebEngineWidgets.QWebEngineScript]',)],
- "PySide2.QtWebEngineWidgets.QWebEngineScriptCollection.isEmpty": (),
- "PySide2.QtWebEngineWidgets.QWebEngineScriptCollection.remove": ('PySide2.QtWebEngineWidgets.QWebEngineScript',),
- "PySide2.QtWebEngineWidgets.QWebEngineScriptCollection.size": (),
- "PySide2.QtWebEngineWidgets.QWebEngineScriptCollection.toList": (),
-# class PySide2.QtWebEngineWidgets.QWebEngineSettings:
-# class PySide2.QtWebEngineWidgets.QWebEngineSettings.FontFamily:
-# class PySide2.QtWebEngineWidgets.QWebEngineSettings.FontSize:
-# class PySide2.QtWebEngineWidgets.QWebEngineSettings.UnknownUrlSchemePolicy:
-# class PySide2.QtWebEngineWidgets.QWebEngineSettings.WebAttribute:
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.defaultSettings": (),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.defaultTextEncoding": (),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.fontFamily": ('PySide2.QtWebEngineWidgets.QWebEngineSettings.FontFamily',),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.fontSize": ('PySide2.QtWebEngineWidgets.QWebEngineSettings.FontSize',),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.globalSettings": (),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.resetAttribute": ('PySide2.QtWebEngineWidgets.QWebEngineSettings.WebAttribute',),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.resetFontFamily": ('PySide2.QtWebEngineWidgets.QWebEngineSettings.FontFamily',),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.resetFontSize": ('PySide2.QtWebEngineWidgets.QWebEngineSettings.FontSize',),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.resetUnknownUrlSchemePolicy": (),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.setAttribute": ('PySide2.QtWebEngineWidgets.QWebEngineSettings.WebAttribute', 'bool'),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.setDefaultTextEncoding": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.setFontFamily": ('PySide2.QtWebEngineWidgets.QWebEngineSettings.FontFamily', 'str'),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.setFontSize": ('PySide2.QtWebEngineWidgets.QWebEngineSettings.FontSize', 'int'),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.setUnknownUrlSchemePolicy": ('PySide2.QtWebEngineWidgets.QWebEngineSettings.UnknownUrlSchemePolicy',),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.testAttribute": ('PySide2.QtWebEngineWidgets.QWebEngineSettings.WebAttribute',),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.unknownUrlSchemePolicy": (),
-# class PySide2.QtWebEngineWidgets.QWebEngineView:
- "PySide2.QtWebEngineWidgets.QWebEngineView.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.back": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.closeEvent": ('PySide2.QtGui.QCloseEvent',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.createWindow": ('PySide2.QtWebEngineWidgets.QWebEnginePage.WebWindowType',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.dragEnterEvent": ('PySide2.QtGui.QDragEnterEvent',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.findText": [('str', 'PySide2.QtWebEngineWidgets.QWebEnginePage.FindFlags'), ('str', 'PySide2.QtWebEngineWidgets.QWebEnginePage.FindFlags', 'object')],
- "PySide2.QtWebEngineWidgets.QWebEngineView.forward": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.hasSelection": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.history": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.icon": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.iconUrl": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.load": [('PySide2.QtCore.QUrl',), ('PySide2.QtWebEngineCore.QWebEngineHttpRequest',)],
- "PySide2.QtWebEngineWidgets.QWebEngineView.page": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.pageAction": ('PySide2.QtWebEngineWidgets.QWebEnginePage.WebAction',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.reload": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.selectedText": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.setContent": ('PySide2.QtCore.QByteArray', 'str', 'PySide2.QtCore.QUrl'),
- "PySide2.QtWebEngineWidgets.QWebEngineView.setHtml": ('str', 'PySide2.QtCore.QUrl'),
- "PySide2.QtWebEngineWidgets.QWebEngineView.setPage": ('PySide2.QtWebEngineWidgets.QWebEnginePage',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.setUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.setZoomFactor": ('float',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.settings": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.sizeHint": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.stop": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.title": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.triggerPageAction": ('PySide2.QtWebEngineWidgets.QWebEnginePage.WebAction', 'bool'),
- "PySide2.QtWebEngineWidgets.QWebEngineView.url": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.zoomFactor": (),
- }) if "PySide2.QtWebEngineWidgets" in sys.modules else None
-# Module PySide2.QtWebSockets
-sig_dict.update({
-# class PySide2.QtWebSockets.QMaskGenerator:
- "PySide2.QtWebSockets.QMaskGenerator.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWebSockets.QMaskGenerator.nextMask": (),
- "PySide2.QtWebSockets.QMaskGenerator.seed": (),
-# class PySide2.QtWebSockets.QWebSocket:
- "PySide2.QtWebSockets.QWebSocket.__init__": ('str', 'PySide2.QtWebSockets.QWebSocketProtocol.Version', 'PySide2.QtCore.QObject'),
- "PySide2.QtWebSockets.QWebSocket.abort": (),
- "PySide2.QtWebSockets.QWebSocket.bytesToWrite": (),
- "PySide2.QtWebSockets.QWebSocket.close": ('PySide2.QtWebSockets.QWebSocketProtocol.CloseCode', 'str'),
- "PySide2.QtWebSockets.QWebSocket.closeCode": (),
- "PySide2.QtWebSockets.QWebSocket.closeReason": (),
- "PySide2.QtWebSockets.QWebSocket.error": (),
- "PySide2.QtWebSockets.QWebSocket.errorString": (),
- "PySide2.QtWebSockets.QWebSocket.flush": (),
- "PySide2.QtWebSockets.QWebSocket.isValid": (),
- "PySide2.QtWebSockets.QWebSocket.localAddress": (),
- "PySide2.QtWebSockets.QWebSocket.localPort": (),
- "PySide2.QtWebSockets.QWebSocket.maskGenerator": (),
- "PySide2.QtWebSockets.QWebSocket.open": [('PySide2.QtCore.QUrl',), ('PySide2.QtNetwork.QNetworkRequest',)],
- "PySide2.QtWebSockets.QWebSocket.origin": (),
- "PySide2.QtWebSockets.QWebSocket.pauseMode": (),
- "PySide2.QtWebSockets.QWebSocket.peerAddress": (),
- "PySide2.QtWebSockets.QWebSocket.peerName": (),
- "PySide2.QtWebSockets.QWebSocket.peerPort": (),
- "PySide2.QtWebSockets.QWebSocket.ping": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWebSockets.QWebSocket.proxy": (),
- "PySide2.QtWebSockets.QWebSocket.readBufferSize": (),
- "PySide2.QtWebSockets.QWebSocket.request": (),
- "PySide2.QtWebSockets.QWebSocket.requestUrl": (),
- "PySide2.QtWebSockets.QWebSocket.resourceName": (),
- "PySide2.QtWebSockets.QWebSocket.resume": (),
- "PySide2.QtWebSockets.QWebSocket.sendBinaryMessage": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWebSockets.QWebSocket.sendTextMessage": ('str',),
- "PySide2.QtWebSockets.QWebSocket.setMaskGenerator": ('PySide2.QtWebSockets.QMaskGenerator',),
- "PySide2.QtWebSockets.QWebSocket.setPauseMode": ('PySide2.QtNetwork.QAbstractSocket.PauseModes',),
- "PySide2.QtWebSockets.QWebSocket.setProxy": ('PySide2.QtNetwork.QNetworkProxy',),
- "PySide2.QtWebSockets.QWebSocket.setReadBufferSize": ('int',),
- "PySide2.QtWebSockets.QWebSocket.state": (),
- "PySide2.QtWebSockets.QWebSocket.version": (),
-# class PySide2.QtWebSockets.QWebSocketCorsAuthenticator:
- "PySide2.QtWebSockets.QWebSocketCorsAuthenticator.__init__": [('PySide2.QtWebSockets.QWebSocketCorsAuthenticator',), ('str',)],
- "PySide2.QtWebSockets.QWebSocketCorsAuthenticator.allowed": (),
- "PySide2.QtWebSockets.QWebSocketCorsAuthenticator.origin": (),
- "PySide2.QtWebSockets.QWebSocketCorsAuthenticator.setAllowed": ('bool',),
- "PySide2.QtWebSockets.QWebSocketCorsAuthenticator.swap": ('PySide2.QtWebSockets.QWebSocketCorsAuthenticator',),
-# class PySide2.QtWebSockets.QWebSocketProtocol:
-# class PySide2.QtWebSockets.QWebSocketProtocol.CloseCode:
-# class PySide2.QtWebSockets.QWebSocketProtocol.Version:
-# class PySide2.QtWebSockets.QWebSocketServer:
-# class PySide2.QtWebSockets.QWebSocketServer.SslMode:
- "PySide2.QtWebSockets.QWebSocketServer.__init__": ('str', 'PySide2.QtWebSockets.QWebSocketServer.SslMode', 'PySide2.QtCore.QObject'),
- "PySide2.QtWebSockets.QWebSocketServer.close": (),
- "PySide2.QtWebSockets.QWebSocketServer.error": (),
- "PySide2.QtWebSockets.QWebSocketServer.errorString": (),
- "PySide2.QtWebSockets.QWebSocketServer.handleConnection": ('PySide2.QtNetwork.QTcpSocket',),
- "PySide2.QtWebSockets.QWebSocketServer.handshakeTimeoutMS": (),
- "PySide2.QtWebSockets.QWebSocketServer.hasPendingConnections": (),
- "PySide2.QtWebSockets.QWebSocketServer.isListening": (),
- "PySide2.QtWebSockets.QWebSocketServer.listen": ('PySide2.QtNetwork.QHostAddress', 'int'),
- "PySide2.QtWebSockets.QWebSocketServer.maxPendingConnections": (),
- "PySide2.QtWebSockets.QWebSocketServer.nativeDescriptor": (),
- "PySide2.QtWebSockets.QWebSocketServer.nextPendingConnection": (),
- "PySide2.QtWebSockets.QWebSocketServer.pauseAccepting": (),
- "PySide2.QtWebSockets.QWebSocketServer.proxy": (),
- "PySide2.QtWebSockets.QWebSocketServer.resumeAccepting": (),
- "PySide2.QtWebSockets.QWebSocketServer.secureMode": (),
- "PySide2.QtWebSockets.QWebSocketServer.serverAddress": (),
- "PySide2.QtWebSockets.QWebSocketServer.serverName": (),
- "PySide2.QtWebSockets.QWebSocketServer.serverPort": (),
- "PySide2.QtWebSockets.QWebSocketServer.serverUrl": (),
- "PySide2.QtWebSockets.QWebSocketServer.setHandshakeTimeout": ('int',),
- "PySide2.QtWebSockets.QWebSocketServer.setMaxPendingConnections": ('int',),
- "PySide2.QtWebSockets.QWebSocketServer.setNativeDescriptor": ('int',),
- "PySide2.QtWebSockets.QWebSocketServer.setProxy": ('PySide2.QtNetwork.QNetworkProxy',),
- "PySide2.QtWebSockets.QWebSocketServer.setServerName": ('str',),
- "PySide2.QtWebSockets.QWebSocketServer.setSocketDescriptor": ('int',),
- "PySide2.QtWebSockets.QWebSocketServer.socketDescriptor": (),
- "PySide2.QtWebSockets.QWebSocketServer.supportedVersions": (),
- }) if "PySide2.QtWebSockets" in sys.modules else None
-# Module PySide2.Qt3DCore
-sig_dict.update({
-# class PySide2.Qt3DCore.Qt3DCore:
-# class PySide2.Qt3DCore.Qt3DCore.ChangeFlag:
-# class PySide2.Qt3DCore.Qt3DCore.ChangeFlags:
-# class PySide2.Qt3DCore.Qt3DCore.QAbstractAspect:
- "PySide2.Qt3DCore.Qt3DCore.QAbstractAspect.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DCore.Qt3DCore.QAbstractAspect.rootEntityId": (),
- "PySide2.Qt3DCore.Qt3DCore.QAbstractAspect.unregisterBackendType": ('PySide2.QtCore.QMetaObject',),
-# class PySide2.Qt3DCore.Qt3DCore.QAbstractSkeleton:
- "PySide2.Qt3DCore.Qt3DCore.QAbstractSkeleton.jointCount": (),
-# class PySide2.Qt3DCore.Qt3DCore.QArmature:
- "PySide2.Qt3DCore.Qt3DCore.QArmature.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DCore.Qt3DCore.QArmature.setSkeleton": ('PySide2.Qt3DCore.Qt3DCore.QAbstractSkeleton',),
- "PySide2.Qt3DCore.Qt3DCore.QArmature.skeleton": (),
-# class PySide2.Qt3DCore.Qt3DCore.QAspectEngine:
-# class PySide2.Qt3DCore.Qt3DCore.QAspectEngine.RunMode:
- "PySide2.Qt3DCore.Qt3DCore.QAspectEngine.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DCore.Qt3DCore.QAspectEngine.aspects": (),
- "PySide2.Qt3DCore.Qt3DCore.QAspectEngine.executeCommand": ('str',),
- "PySide2.Qt3DCore.Qt3DCore.QAspectEngine.processFrame": (),
- "PySide2.Qt3DCore.Qt3DCore.QAspectEngine.registerAspect": [('PySide2.Qt3DCore.Qt3DCore.QAbstractAspect',), ('str',)],
- "PySide2.Qt3DCore.Qt3DCore.QAspectEngine.runMode": (),
- "PySide2.Qt3DCore.Qt3DCore.QAspectEngine.setRunMode": ('PySide2.Qt3DCore.Qt3DCore.QAspectEngine.RunMode',),
- "PySide2.Qt3DCore.Qt3DCore.QAspectEngine.unregisterAspect": [('PySide2.Qt3DCore.Qt3DCore.QAbstractAspect',), ('str',)],
-# class PySide2.Qt3DCore.Qt3DCore.QAspectJob:
- "PySide2.Qt3DCore.Qt3DCore.QAspectJob.__init__": (),
- "PySide2.Qt3DCore.Qt3DCore.QAspectJob.run": (),
-# class PySide2.Qt3DCore.Qt3DCore.QBackendNode:
-# class PySide2.Qt3DCore.Qt3DCore.QBackendNode.Mode:
- "PySide2.Qt3DCore.Qt3DCore.QBackendNode.__init__": ('PySide2.Qt3DCore.Qt3DCore.QBackendNode.Mode',),
- "PySide2.Qt3DCore.Qt3DCore.QBackendNode.isEnabled": (),
- "PySide2.Qt3DCore.Qt3DCore.QBackendNode.mode": (),
- "PySide2.Qt3DCore.Qt3DCore.QBackendNode.peerId": (),
- "PySide2.Qt3DCore.Qt3DCore.QBackendNode.setEnabled": ('bool',),
-# class PySide2.Qt3DCore.Qt3DCore.QComponent:
- "PySide2.Qt3DCore.Qt3DCore.QComponent.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DCore.Qt3DCore.QComponent.entities": (),
- "PySide2.Qt3DCore.Qt3DCore.QComponent.isShareable": (),
- "PySide2.Qt3DCore.Qt3DCore.QComponent.setShareable": ('bool',),
-# class PySide2.Qt3DCore.Qt3DCore.QComponentAddedChange:
- "PySide2.Qt3DCore.Qt3DCore.QComponentAddedChange.__init__": [('PySide2.Qt3DCore.Qt3DCore.QComponent', 'PySide2.Qt3DCore.Qt3DCore.QEntity'), ('PySide2.Qt3DCore.Qt3DCore.QEntity', 'PySide2.Qt3DCore.Qt3DCore.QComponent')],
- "PySide2.Qt3DCore.Qt3DCore.QComponentAddedChange.componentId": (),
- "PySide2.Qt3DCore.Qt3DCore.QComponentAddedChange.componentMetaObject": (),
- "PySide2.Qt3DCore.Qt3DCore.QComponentAddedChange.entityId": (),
-# class PySide2.Qt3DCore.Qt3DCore.QComponentRemovedChange:
- "PySide2.Qt3DCore.Qt3DCore.QComponentRemovedChange.__init__": [('PySide2.Qt3DCore.Qt3DCore.QComponent', 'PySide2.Qt3DCore.Qt3DCore.QEntity'), ('PySide2.Qt3DCore.Qt3DCore.QEntity', 'PySide2.Qt3DCore.Qt3DCore.QComponent')],
- "PySide2.Qt3DCore.Qt3DCore.QComponentRemovedChange.componentId": (),
- "PySide2.Qt3DCore.Qt3DCore.QComponentRemovedChange.componentMetaObject": (),
- "PySide2.Qt3DCore.Qt3DCore.QComponentRemovedChange.entityId": (),
-# class PySide2.Qt3DCore.Qt3DCore.QDynamicPropertyUpdatedChange:
- "PySide2.Qt3DCore.Qt3DCore.QDynamicPropertyUpdatedChange.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
- "PySide2.Qt3DCore.Qt3DCore.QDynamicPropertyUpdatedChange.propertyName": (),
- "PySide2.Qt3DCore.Qt3DCore.QDynamicPropertyUpdatedChange.setPropertyName": ('PySide2.QtCore.QByteArray',),
- "PySide2.Qt3DCore.Qt3DCore.QDynamicPropertyUpdatedChange.setValue": ('typing.Any',),
- "PySide2.Qt3DCore.Qt3DCore.QDynamicPropertyUpdatedChange.value": (),
-# class PySide2.Qt3DCore.Qt3DCore.QEntity:
- "PySide2.Qt3DCore.Qt3DCore.QEntity.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DCore.Qt3DCore.QEntity.addComponent": ('PySide2.Qt3DCore.Qt3DCore.QComponent',),
- "PySide2.Qt3DCore.Qt3DCore.QEntity.components": (),
- "PySide2.Qt3DCore.Qt3DCore.QEntity.parentEntity": (),
- "PySide2.Qt3DCore.Qt3DCore.QEntity.removeComponent": ('PySide2.Qt3DCore.Qt3DCore.QComponent',),
-# class PySide2.Qt3DCore.Qt3DCore.QJoint:
- "PySide2.Qt3DCore.Qt3DCore.QJoint.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.addChildJoint": ('PySide2.Qt3DCore.Qt3DCore.QJoint',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.childJoints": (),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.inverseBindMatrix": (),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.name": (),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.removeChildJoint": ('PySide2.Qt3DCore.Qt3DCore.QJoint',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.rotation": (),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.rotationX": (),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.rotationY": (),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.rotationZ": (),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.scale": (),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.setInverseBindMatrix": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.setName": ('str',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.setRotation": ('PySide2.QtGui.QQuaternion',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.setRotationX": ('float',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.setRotationY": ('float',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.setRotationZ": ('float',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.setScale": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.setToIdentity": (),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.setTranslation": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.translation": (),
-# class PySide2.Qt3DCore.Qt3DCore.QNode:
-# class PySide2.Qt3DCore.Qt3DCore.QNode.PropertyTrackingMode:
- "PySide2.Qt3DCore.Qt3DCore.QNode.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DCore.Qt3DCore.QNode.blockNotifications": ('bool',),
- "PySide2.Qt3DCore.Qt3DCore.QNode.childNodes": (),
- "PySide2.Qt3DCore.Qt3DCore.QNode.clearPropertyTracking": ('str',),
- "PySide2.Qt3DCore.Qt3DCore.QNode.clearPropertyTrackings": (),
- "PySide2.Qt3DCore.Qt3DCore.QNode.defaultPropertyTrackingMode": (),
- "PySide2.Qt3DCore.Qt3DCore.QNode.id": (),
- "PySide2.Qt3DCore.Qt3DCore.QNode.isEnabled": (),
- "PySide2.Qt3DCore.Qt3DCore.QNode.notificationsBlocked": (),
- "PySide2.Qt3DCore.Qt3DCore.QNode.parentNode": (),
- "PySide2.Qt3DCore.Qt3DCore.QNode.propertyTracking": ('str',),
- "PySide2.Qt3DCore.Qt3DCore.QNode.setDefaultPropertyTrackingMode": ('PySide2.Qt3DCore.Qt3DCore.QNode.PropertyTrackingMode',),
- "PySide2.Qt3DCore.Qt3DCore.QNode.setEnabled": ('bool',),
- "PySide2.Qt3DCore.Qt3DCore.QNode.setParent": [('PySide2.Qt3DCore.Qt3DCore.QNode',), ('PySide2.QtCore.QObject',)],
- "PySide2.Qt3DCore.Qt3DCore.QNode.setPropertyTracking": ('str', 'PySide2.Qt3DCore.Qt3DCore.QNode.PropertyTrackingMode'),
-# class PySide2.Qt3DCore.Qt3DCore.QNodeCommand:
- "PySide2.Qt3DCore.Qt3DCore.QNodeCommand.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
- "PySide2.Qt3DCore.Qt3DCore.QNodeCommand.commandId": (),
- "PySide2.Qt3DCore.Qt3DCore.QNodeCommand.data": (),
- "PySide2.Qt3DCore.Qt3DCore.QNodeCommand.inReplyTo": (),
- "PySide2.Qt3DCore.Qt3DCore.QNodeCommand.name": (),
- "PySide2.Qt3DCore.Qt3DCore.QNodeCommand.setData": ('typing.Any',),
- "PySide2.Qt3DCore.Qt3DCore.QNodeCommand.setName": ('str',),
- "PySide2.Qt3DCore.Qt3DCore.QNodeCommand.setReplyToCommandId": ('int',),
-# class PySide2.Qt3DCore.Qt3DCore.QNodeCreatedChangeBase:
- "PySide2.Qt3DCore.Qt3DCore.QNodeCreatedChangeBase.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DCore.Qt3DCore.QNodeCreatedChangeBase.isNodeEnabled": (),
- "PySide2.Qt3DCore.Qt3DCore.QNodeCreatedChangeBase.parentId": (),
-# class PySide2.Qt3DCore.Qt3DCore.QNodeDestroyedChange:
- "PySide2.Qt3DCore.Qt3DCore.QNodeDestroyedChange.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode', 'typing.List[PySide2.Qt3DCore.Qt3DCore.QNodeIdTypePair]'),
- "PySide2.Qt3DCore.Qt3DCore.QNodeDestroyedChange.subtreeIdsAndTypes": (),
-# class PySide2.Qt3DCore.Qt3DCore.QNodeId:
- "PySide2.Qt3DCore.Qt3DCore.QNodeId.__init__": [(), ('PySide2.Qt3DCore.Qt3DCore.QNodeId',)],
- "PySide2.Qt3DCore.Qt3DCore.QNodeId.__copy__": (),
- "PySide2.Qt3DCore.Qt3DCore.QNodeId.createId": (),
- "PySide2.Qt3DCore.Qt3DCore.QNodeId.id": (),
- "PySide2.Qt3DCore.Qt3DCore.QNodeId.isNull": (),
-# class PySide2.Qt3DCore.Qt3DCore.QNodeIdTypePair:
- "PySide2.Qt3DCore.Qt3DCore.QNodeIdTypePair.__init__": [(), ('PySide2.Qt3DCore.Qt3DCore.QNodeId', 'PySide2.QtCore.QMetaObject'), ('PySide2.Qt3DCore.Qt3DCore.QNodeIdTypePair',)],
- "PySide2.Qt3DCore.Qt3DCore.QNodeIdTypePair.__copy__": (),
-# class PySide2.Qt3DCore.Qt3DCore.QPropertyNodeAddedChange:
- "PySide2.Qt3DCore.Qt3DCore.QPropertyNodeAddedChange.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId', 'PySide2.Qt3DCore.Qt3DCore.QNode'),
- "PySide2.Qt3DCore.Qt3DCore.QPropertyNodeAddedChange.addedNodeId": (),
-# class PySide2.Qt3DCore.Qt3DCore.QPropertyNodeRemovedChange:
- "PySide2.Qt3DCore.Qt3DCore.QPropertyNodeRemovedChange.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId', 'PySide2.Qt3DCore.Qt3DCore.QNode'),
- "PySide2.Qt3DCore.Qt3DCore.QPropertyNodeRemovedChange.removedNodeId": (),
-# class PySide2.Qt3DCore.Qt3DCore.QPropertyUpdatedChange:
- "PySide2.Qt3DCore.Qt3DCore.QPropertyUpdatedChange.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
- "PySide2.Qt3DCore.Qt3DCore.QPropertyUpdatedChange.setValue": ('typing.Any',),
- "PySide2.Qt3DCore.Qt3DCore.QPropertyUpdatedChange.value": (),
-# class PySide2.Qt3DCore.Qt3DCore.QPropertyUpdatedChangeBase:
- "PySide2.Qt3DCore.Qt3DCore.QPropertyUpdatedChangeBase.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
-# class PySide2.Qt3DCore.Qt3DCore.QPropertyValueAddedChange:
- "PySide2.Qt3DCore.Qt3DCore.QPropertyValueAddedChange.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
- "PySide2.Qt3DCore.Qt3DCore.QPropertyValueAddedChange.addedValue": (),
- "PySide2.Qt3DCore.Qt3DCore.QPropertyValueAddedChange.setAddedValue": ('typing.Any',),
-# class PySide2.Qt3DCore.Qt3DCore.QPropertyValueAddedChangeBase:
- "PySide2.Qt3DCore.Qt3DCore.QPropertyValueAddedChangeBase.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
-# class PySide2.Qt3DCore.Qt3DCore.QPropertyValueRemovedChange:
- "PySide2.Qt3DCore.Qt3DCore.QPropertyValueRemovedChange.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
- "PySide2.Qt3DCore.Qt3DCore.QPropertyValueRemovedChange.removedValue": (),
- "PySide2.Qt3DCore.Qt3DCore.QPropertyValueRemovedChange.setRemovedValue": ('typing.Any',),
-# class PySide2.Qt3DCore.Qt3DCore.QPropertyValueRemovedChangeBase:
- "PySide2.Qt3DCore.Qt3DCore.QPropertyValueRemovedChangeBase.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
-# class PySide2.Qt3DCore.Qt3DCore.QSceneChange:
-# class PySide2.Qt3DCore.Qt3DCore.QSceneChange.DeliveryFlag:
-# class PySide2.Qt3DCore.Qt3DCore.QSceneChange.DeliveryFlags:
- "PySide2.Qt3DCore.Qt3DCore.QSceneChange.__init__": ('PySide2.Qt3DCore.Qt3DCore.ChangeFlag', 'PySide2.Qt3DCore.Qt3DCore.QNodeId'),
- "PySide2.Qt3DCore.Qt3DCore.QSceneChange.deliveryFlags": (),
- "PySide2.Qt3DCore.Qt3DCore.QSceneChange.setDeliveryFlags": ('PySide2.Qt3DCore.Qt3DCore.QSceneChange.DeliveryFlags',),
- "PySide2.Qt3DCore.Qt3DCore.QSceneChange.subjectId": (),
- "PySide2.Qt3DCore.Qt3DCore.QSceneChange.type": (),
-# class PySide2.Qt3DCore.Qt3DCore.QSkeleton:
- "PySide2.Qt3DCore.Qt3DCore.QSkeleton.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DCore.Qt3DCore.QSkeleton.rootJoint": (),
- "PySide2.Qt3DCore.Qt3DCore.QSkeleton.setRootJoint": ('PySide2.Qt3DCore.Qt3DCore.QJoint',),
-# class PySide2.Qt3DCore.Qt3DCore.QSkeletonLoader:
-# class PySide2.Qt3DCore.Qt3DCore.QSkeletonLoader.Status:
- "PySide2.Qt3DCore.Qt3DCore.QSkeletonLoader.__init__": [('PySide2.Qt3DCore.Qt3DCore.QNode',), ('PySide2.QtCore.QUrl', 'PySide2.Qt3DCore.Qt3DCore.QNode')],
- "PySide2.Qt3DCore.Qt3DCore.QSkeletonLoader.isCreateJointsEnabled": (),
- "PySide2.Qt3DCore.Qt3DCore.QSkeletonLoader.rootJoint": (),
- "PySide2.Qt3DCore.Qt3DCore.QSkeletonLoader.setCreateJointsEnabled": ('bool',),
- "PySide2.Qt3DCore.Qt3DCore.QSkeletonLoader.setSource": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DCore.Qt3DCore.QSkeletonLoader.source": (),
- "PySide2.Qt3DCore.Qt3DCore.QSkeletonLoader.status": (),
-# class PySide2.Qt3DCore.Qt3DCore.QStaticPropertyUpdatedChangeBase:
- "PySide2.Qt3DCore.Qt3DCore.QStaticPropertyUpdatedChangeBase.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
- "PySide2.Qt3DCore.Qt3DCore.QStaticPropertyUpdatedChangeBase.propertyName": (),
- "PySide2.Qt3DCore.Qt3DCore.QStaticPropertyUpdatedChangeBase.setPropertyName": ('str',),
-# class PySide2.Qt3DCore.Qt3DCore.QStaticPropertyValueAddedChangeBase:
- "PySide2.Qt3DCore.Qt3DCore.QStaticPropertyValueAddedChangeBase.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
- "PySide2.Qt3DCore.Qt3DCore.QStaticPropertyValueAddedChangeBase.propertyName": (),
- "PySide2.Qt3DCore.Qt3DCore.QStaticPropertyValueAddedChangeBase.setPropertyName": ('str',),
-# class PySide2.Qt3DCore.Qt3DCore.QStaticPropertyValueRemovedChangeBase:
- "PySide2.Qt3DCore.Qt3DCore.QStaticPropertyValueRemovedChangeBase.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
- "PySide2.Qt3DCore.Qt3DCore.QStaticPropertyValueRemovedChangeBase.propertyName": (),
- "PySide2.Qt3DCore.Qt3DCore.QStaticPropertyValueRemovedChangeBase.setPropertyName": ('str',),
-# class PySide2.Qt3DCore.Qt3DCore.QTransform:
- "PySide2.Qt3DCore.Qt3DCore.QTransform.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.fromAxes": ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.fromAxesAndAngles": [('PySide2.QtGui.QVector3D', 'float', 'PySide2.QtGui.QVector3D', 'float'), ('PySide2.QtGui.QVector3D', 'float', 'PySide2.QtGui.QVector3D', 'float', 'PySide2.QtGui.QVector3D', 'float')],
- "PySide2.Qt3DCore.Qt3DCore.QTransform.fromAxisAndAngle": [('PySide2.QtGui.QVector3D', 'float'), ('float', 'float', 'float', 'float')],
- "PySide2.Qt3DCore.Qt3DCore.QTransform.fromEulerAngles": [('PySide2.QtGui.QVector3D',), ('float', 'float', 'float')],
- "PySide2.Qt3DCore.Qt3DCore.QTransform.matrix": (),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.rotateAround": ('PySide2.QtGui.QVector3D', 'float', 'PySide2.QtGui.QVector3D'),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.rotateFromAxes": ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.rotation": (),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.rotationX": (),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.rotationY": (),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.rotationZ": (),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.scale": (),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.scale3D": (),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.setMatrix": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.setRotation": ('PySide2.QtGui.QQuaternion',),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.setRotationX": ('float',),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.setRotationY": ('float',),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.setRotationZ": ('float',),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.setScale": ('float',),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.setScale3D": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.setTranslation": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.translation": (),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.worldMatrix": (),
- "PySide2.Qt3DCore.Qt3DCore.qHash": ('PySide2.Qt3DCore.Qt3DCore.QNodeId', 'int'),
- "PySide2.Qt3DCore.Qt3DCore.qIdForNode": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- }) if "PySide2.Qt3DCore" in sys.modules else None
-# Module PySide2.Qt3DRender
-sig_dict.update({
-# class PySide2.Qt3DRender.Qt3DRender:
-# class PySide2.Qt3DRender.Qt3DRender.PropertyReaderInterface:
- "PySide2.Qt3DRender.Qt3DRender.PropertyReaderInterface.__init__": (),
- "PySide2.Qt3DRender.Qt3DRender.PropertyReaderInterface.readProperty": ('typing.Any',),
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractFunctor:
- "PySide2.Qt3DRender.Qt3DRender.QAbstractFunctor.__init__": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractFunctor.id": (),
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractLight:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractLight.Type:
- "PySide2.Qt3DRender.Qt3DRender.QAbstractLight.color": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractLight.intensity": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractLight.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractLight.setIntensity": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractLight.type": (),
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.FilterMode:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.RunMode:
- "PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.addLayer": ('PySide2.Qt3DRender.Qt3DRender.QLayer',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.filterMode": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.hits": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.layers": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.removeLayer": ('PySide2.Qt3DRender.Qt3DRender.QLayer',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.runMode": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.setFilterMode": ('PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.FilterMode',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.setRunMode": ('PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.RunMode',),
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractTexture:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.ComparisonFunction:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.ComparisonMode:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.CubeMapFace:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.Filter:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.HandleType:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.Status:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.Target:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.TextureFormat:
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.__init__": [('PySide2.Qt3DCore.Qt3DCore.QNode',), ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.Target', 'PySide2.Qt3DCore.Qt3DCore.QNode')],
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.addTextureImage": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTextureImage',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.comparisonFunction": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.comparisonMode": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.depth": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.format": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.generateMipMaps": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.handle": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.handleType": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.height": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.layers": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.magnificationFilter": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.maximumAnisotropy": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.minificationFilter": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.removeTextureImage": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTextureImage',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.samples": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setComparisonFunction": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.ComparisonFunction',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setComparisonMode": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.ComparisonMode',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setDepth": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setFormat": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.TextureFormat',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setGenerateMipMaps": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setHandle": ('typing.Any',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setHandleType": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.HandleType',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setHeight": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setLayers": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setMagnificationFilter": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.Filter',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setMaximumAnisotropy": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setMinificationFilter": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.Filter',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setSamples": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setSize": ('int', 'int', 'int'),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setStatus": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.Status',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setWidth": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setWrapMode": ('PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.status": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.target": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.textureImages": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.width": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.wrapMode": (),
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractTextureImage:
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTextureImage.face": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTextureImage.layer": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTextureImage.mipLevel": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTextureImage.notifyDataGeneratorChanged": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTextureImage.setFace": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.CubeMapFace',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTextureImage.setLayer": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTextureImage.setMipLevel": ('int',),
-# class PySide2.Qt3DRender.Qt3DRender.QAlphaCoverage:
- "PySide2.Qt3DRender.Qt3DRender.QAlphaCoverage.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QAlphaTest:
-# class PySide2.Qt3DRender.Qt3DRender.QAlphaTest.AlphaFunction:
- "PySide2.Qt3DRender.Qt3DRender.QAlphaTest.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QAlphaTest.alphaFunction": (),
- "PySide2.Qt3DRender.Qt3DRender.QAlphaTest.referenceValue": (),
- "PySide2.Qt3DRender.Qt3DRender.QAlphaTest.setAlphaFunction": ('PySide2.Qt3DRender.Qt3DRender.QAlphaTest.AlphaFunction',),
- "PySide2.Qt3DRender.Qt3DRender.QAlphaTest.setReferenceValue": ('float',),
-# class PySide2.Qt3DRender.Qt3DRender.QAttribute:
-# class PySide2.Qt3DRender.Qt3DRender.QAttribute.AttributeType:
-# class PySide2.Qt3DRender.Qt3DRender.QAttribute.VertexBaseType:
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.__init__": [('PySide2.Qt3DCore.Qt3DCore.QNode',), ('PySide2.Qt3DRender.Qt3DRender.QBuffer', 'PySide2.Qt3DRender.Qt3DRender.QAttribute.VertexBaseType', 'int', 'int', 'int', 'int', 'PySide2.Qt3DCore.Qt3DCore.QNode'), ('PySide2.Qt3DRender.Qt3DRender.QBuffer', 'str', 'PySide2.Qt3DRender.Qt3DRender.QAttribute.VertexBaseType', 'int', 'int', 'int', 'int', 'PySide2.Qt3DCore.Qt3DCore.QNode')],
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.attributeType": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.buffer": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.byteOffset": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.byteStride": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.count": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.defaultColorAttributeName": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.defaultJointIndicesAttributeName": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.defaultJointWeightsAttributeName": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.defaultNormalAttributeName": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.defaultPositionAttributeName": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.defaultTangentAttributeName": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.defaultTextureCoordinate1AttributeName": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.defaultTextureCoordinate2AttributeName": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.defaultTextureCoordinateAttributeName": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.divisor": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.name": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setAttributeType": ('PySide2.Qt3DRender.Qt3DRender.QAttribute.AttributeType',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setBuffer": ('PySide2.Qt3DRender.Qt3DRender.QBuffer',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setByteOffset": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setByteStride": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setCount": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setDataSize": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setDataType": ('PySide2.Qt3DRender.Qt3DRender.QAttribute.VertexBaseType',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setDivisor": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setName": ('str',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setVertexBaseType": ('PySide2.Qt3DRender.Qt3DRender.QAttribute.VertexBaseType',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setVertexSize": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.vertexBaseType": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.vertexSize": (),
-# class PySide2.Qt3DRender.Qt3DRender.QBlendEquation:
-# class PySide2.Qt3DRender.Qt3DRender.QBlendEquation.BlendFunction:
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquation.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquation.blendFunction": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquation.setBlendFunction": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquation.BlendFunction',),
-# class PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments:
-# class PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending:
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.bufferIndex": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.destinationAlpha": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.destinationRgb": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.setBufferIndex": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.setDestinationAlpha": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending',),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.setDestinationRgb": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending',),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.setDestinationRgba": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending',),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.setSourceAlpha": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending',),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.setSourceRgb": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending',),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.setSourceRgba": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending',),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.sourceAlpha": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.sourceRgb": (),
-# class PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer:
-# class PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.InterpolationMethod:
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.destination": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.destinationAttachmentPoint": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.destinationRect": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.interpolationMethod": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.setDestination": ('PySide2.Qt3DRender.Qt3DRender.QRenderTarget',),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.setDestinationAttachmentPoint": ('PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.AttachmentPoint',),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.setDestinationRect": ('PySide2.QtCore.QRectF',),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.setInterpolationMethod": ('PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.InterpolationMethod',),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.setSource": ('PySide2.Qt3DRender.Qt3DRender.QRenderTarget',),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.setSourceAttachmentPoint": ('PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.AttachmentPoint',),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.setSourceRect": ('PySide2.QtCore.QRectF',),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.source": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.sourceAttachmentPoint": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.sourceRect": (),
-# class PySide2.Qt3DRender.Qt3DRender.QBuffer:
-# class PySide2.Qt3DRender.Qt3DRender.QBuffer.AccessType:
-# class PySide2.Qt3DRender.Qt3DRender.QBuffer.BufferType:
-# class PySide2.Qt3DRender.Qt3DRender.QBuffer.UsageType:
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.__init__": [('PySide2.Qt3DCore.Qt3DCore.QNode',), ('PySide2.Qt3DRender.Qt3DRender.QBuffer.BufferType', 'PySide2.Qt3DCore.Qt3DCore.QNode')],
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.accessType": (),
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.data": (),
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.isSyncData": (),
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.setAccessType": ('PySide2.Qt3DRender.Qt3DRender.QBuffer.AccessType',),
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.setData": ('PySide2.QtCore.QByteArray',),
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.setSyncData": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.setType": ('PySide2.Qt3DRender.Qt3DRender.QBuffer.BufferType',),
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.setUsage": ('PySide2.Qt3DRender.Qt3DRender.QBuffer.UsageType',),
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.type": (),
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.updateData": ('int', 'PySide2.QtCore.QByteArray'),
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.usage": (),
-# class PySide2.Qt3DRender.Qt3DRender.QBufferCapture:
- "PySide2.Qt3DRender.Qt3DRender.QBufferCapture.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QBufferDataGenerator:
- "PySide2.Qt3DRender.Qt3DRender.QBufferDataGenerator.__init__": (),
-# class PySide2.Qt3DRender.Qt3DRender.QCamera:
-# class PySide2.Qt3DRender.Qt3DRender.QCamera.CameraTranslationOption:
- "PySide2.Qt3DRender.Qt3DRender.QCamera.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.aspectRatio": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.bottom": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.exposure": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.farPlane": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.fieldOfView": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.left": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.lens": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.nearPlane": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.pan": [('float',), ('float', 'PySide2.QtGui.QVector3D')],
- "PySide2.Qt3DRender.Qt3DRender.QCamera.panAboutViewCenter": [('float',), ('float', 'PySide2.QtGui.QVector3D')],
- "PySide2.Qt3DRender.Qt3DRender.QCamera.panRotation": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.position": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.projectionMatrix": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.projectionType": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.right": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.roll": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.rollAboutViewCenter": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.rollRotation": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.rotate": ('PySide2.QtGui.QQuaternion',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.rotateAboutViewCenter": ('PySide2.QtGui.QQuaternion',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.rotation": ('float', 'PySide2.QtGui.QVector3D'),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setAspectRatio": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setBottom": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setExposure": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setFarPlane": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setFieldOfView": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setLeft": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setNearPlane": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setPosition": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setProjectionMatrix": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setProjectionType": ('PySide2.Qt3DRender.Qt3DRender.QCameraLens.ProjectionType',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setRight": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setTop": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setUpVector": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setViewCenter": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.tilt": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.tiltAboutViewCenter": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.tiltRotation": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.top": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.transform": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.translate": ('PySide2.QtGui.QVector3D', 'PySide2.Qt3DRender.Qt3DRender.QCamera.CameraTranslationOption'),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.translateWorld": ('PySide2.QtGui.QVector3D', 'PySide2.Qt3DRender.Qt3DRender.QCamera.CameraTranslationOption'),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.upVector": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.viewAll": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.viewCenter": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.viewEntity": ('PySide2.Qt3DCore.Qt3DCore.QEntity',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.viewMatrix": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.viewSphere": ('PySide2.QtGui.QVector3D', 'float'),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.viewVector": (),
-# class PySide2.Qt3DRender.Qt3DRender.QCameraLens:
-# class PySide2.Qt3DRender.Qt3DRender.QCameraLens.ProjectionType:
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.aspectRatio": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.bottom": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.exposure": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.farPlane": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.fieldOfView": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.left": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.nearPlane": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.projectionMatrix": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.projectionType": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.right": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setAspectRatio": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setBottom": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setExposure": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setFarPlane": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setFieldOfView": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setFrustumProjection": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setLeft": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setNearPlane": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setOrthographicProjection": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setPerspectiveProjection": ('float', 'float', 'float', 'float'),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setProjectionMatrix": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setProjectionType": ('PySide2.Qt3DRender.Qt3DRender.QCameraLens.ProjectionType',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setRight": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setTop": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.top": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.viewAll": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.viewEntity": ('PySide2.Qt3DCore.Qt3DCore.QNodeId', 'PySide2.Qt3DCore.Qt3DCore.QNodeId'),
-# class PySide2.Qt3DRender.Qt3DRender.QCameraSelector:
- "PySide2.Qt3DRender.Qt3DRender.QCameraSelector.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraSelector.camera": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraSelector.setCamera": ('PySide2.Qt3DCore.Qt3DCore.QEntity',),
-# class PySide2.Qt3DRender.Qt3DRender.QClearBuffers:
-# class PySide2.Qt3DRender.Qt3DRender.QClearBuffers.BufferType:
-# class PySide2.Qt3DRender.Qt3DRender.QClearBuffers.BufferTypeFlags:
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.buffers": (),
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.clearColor": (),
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.clearDepthValue": (),
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.clearStencilValue": (),
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.colorBuffer": (),
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.setBuffers": ('PySide2.Qt3DRender.Qt3DRender.QClearBuffers.BufferType',),
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.setClearColor": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.setClearDepthValue": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.setClearStencilValue": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.setColorBuffer": ('PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput',),
-# class PySide2.Qt3DRender.Qt3DRender.QClipPlane:
- "PySide2.Qt3DRender.Qt3DRender.QClipPlane.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QClipPlane.distance": (),
- "PySide2.Qt3DRender.Qt3DRender.QClipPlane.normal": (),
- "PySide2.Qt3DRender.Qt3DRender.QClipPlane.planeIndex": (),
- "PySide2.Qt3DRender.Qt3DRender.QClipPlane.setDistance": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QClipPlane.setNormal": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DRender.Qt3DRender.QClipPlane.setPlaneIndex": ('int',),
-# class PySide2.Qt3DRender.Qt3DRender.QColorMask:
- "PySide2.Qt3DRender.Qt3DRender.QColorMask.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QColorMask.isAlphaMasked": (),
- "PySide2.Qt3DRender.Qt3DRender.QColorMask.isBlueMasked": (),
- "PySide2.Qt3DRender.Qt3DRender.QColorMask.isGreenMasked": (),
- "PySide2.Qt3DRender.Qt3DRender.QColorMask.isRedMasked": (),
- "PySide2.Qt3DRender.Qt3DRender.QColorMask.setAlphaMasked": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QColorMask.setBlueMasked": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QColorMask.setGreenMasked": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QColorMask.setRedMasked": ('bool',),
-# class PySide2.Qt3DRender.Qt3DRender.QComputeCommand:
-# class PySide2.Qt3DRender.Qt3DRender.QComputeCommand.RunType:
- "PySide2.Qt3DRender.Qt3DRender.QComputeCommand.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QComputeCommand.runType": (),
- "PySide2.Qt3DRender.Qt3DRender.QComputeCommand.setRunType": ('PySide2.Qt3DRender.Qt3DRender.QComputeCommand.RunType',),
- "PySide2.Qt3DRender.Qt3DRender.QComputeCommand.setWorkGroupX": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QComputeCommand.setWorkGroupY": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QComputeCommand.setWorkGroupZ": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QComputeCommand.trigger": [('int',), ('int', 'int', 'int', 'int')],
- "PySide2.Qt3DRender.Qt3DRender.QComputeCommand.workGroupX": (),
- "PySide2.Qt3DRender.Qt3DRender.QComputeCommand.workGroupY": (),
- "PySide2.Qt3DRender.Qt3DRender.QComputeCommand.workGroupZ": (),
-# class PySide2.Qt3DRender.Qt3DRender.QCullFace:
-# class PySide2.Qt3DRender.Qt3DRender.QCullFace.CullingMode:
- "PySide2.Qt3DRender.Qt3DRender.QCullFace.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QCullFace.mode": (),
- "PySide2.Qt3DRender.Qt3DRender.QCullFace.setMode": ('PySide2.Qt3DRender.Qt3DRender.QCullFace.CullingMode',),
-# class PySide2.Qt3DRender.Qt3DRender.QDepthTest:
-# class PySide2.Qt3DRender.Qt3DRender.QDepthTest.DepthFunction:
- "PySide2.Qt3DRender.Qt3DRender.QDepthTest.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QDepthTest.depthFunction": (),
- "PySide2.Qt3DRender.Qt3DRender.QDepthTest.setDepthFunction": ('PySide2.Qt3DRender.Qt3DRender.QDepthTest.DepthFunction',),
-# class PySide2.Qt3DRender.Qt3DRender.QDirectionalLight:
- "PySide2.Qt3DRender.Qt3DRender.QDirectionalLight.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QDirectionalLight.setWorldDirection": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DRender.Qt3DRender.QDirectionalLight.worldDirection": (),
-# class PySide2.Qt3DRender.Qt3DRender.QDispatchCompute:
- "PySide2.Qt3DRender.Qt3DRender.QDispatchCompute.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QDispatchCompute.setWorkGroupX": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QDispatchCompute.setWorkGroupY": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QDispatchCompute.setWorkGroupZ": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QDispatchCompute.workGroupX": (),
- "PySide2.Qt3DRender.Qt3DRender.QDispatchCompute.workGroupY": (),
- "PySide2.Qt3DRender.Qt3DRender.QDispatchCompute.workGroupZ": (),
-# class PySide2.Qt3DRender.Qt3DRender.QDithering:
- "PySide2.Qt3DRender.Qt3DRender.QDithering.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QEffect:
- "PySide2.Qt3DRender.Qt3DRender.QEffect.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QEffect.addParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
- "PySide2.Qt3DRender.Qt3DRender.QEffect.addTechnique": ('PySide2.Qt3DRender.Qt3DRender.QTechnique',),
- "PySide2.Qt3DRender.Qt3DRender.QEffect.parameters": (),
- "PySide2.Qt3DRender.Qt3DRender.QEffect.removeParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
- "PySide2.Qt3DRender.Qt3DRender.QEffect.removeTechnique": ('PySide2.Qt3DRender.Qt3DRender.QTechnique',),
- "PySide2.Qt3DRender.Qt3DRender.QEffect.techniques": (),
-# class PySide2.Qt3DRender.Qt3DRender.QEnvironmentLight:
- "PySide2.Qt3DRender.Qt3DRender.QEnvironmentLight.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QEnvironmentLight.irradiance": (),
- "PySide2.Qt3DRender.Qt3DRender.QEnvironmentLight.setIrradiance": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DRender.Qt3DRender.QEnvironmentLight.setSpecular": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DRender.Qt3DRender.QEnvironmentLight.specular": (),
-# class PySide2.Qt3DRender.Qt3DRender.QFilterKey:
- "PySide2.Qt3DRender.Qt3DRender.QFilterKey.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QFilterKey.name": (),
- "PySide2.Qt3DRender.Qt3DRender.QFilterKey.setName": ('str',),
- "PySide2.Qt3DRender.Qt3DRender.QFilterKey.setValue": ('typing.Any',),
- "PySide2.Qt3DRender.Qt3DRender.QFilterKey.value": (),
-# class PySide2.Qt3DRender.Qt3DRender.QFrameGraphNode:
- "PySide2.Qt3DRender.Qt3DRender.QFrameGraphNode.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QFrameGraphNode.parentFrameGraphNode": (),
-# class PySide2.Qt3DRender.Qt3DRender.QFrameGraphNodeCreatedChangeBase:
- "PySide2.Qt3DRender.Qt3DRender.QFrameGraphNodeCreatedChangeBase.__init__": ('PySide2.Qt3DRender.Qt3DRender.QFrameGraphNode',),
- "PySide2.Qt3DRender.Qt3DRender.QFrameGraphNodeCreatedChangeBase.parentFrameGraphNodeId": (),
-# class PySide2.Qt3DRender.Qt3DRender.QFrontFace:
-# class PySide2.Qt3DRender.Qt3DRender.QFrontFace.WindingDirection:
- "PySide2.Qt3DRender.Qt3DRender.QFrontFace.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QFrontFace.direction": (),
- "PySide2.Qt3DRender.Qt3DRender.QFrontFace.setDirection": ('PySide2.Qt3DRender.Qt3DRender.QFrontFace.WindingDirection',),
-# class PySide2.Qt3DRender.Qt3DRender.QFrustumCulling:
- "PySide2.Qt3DRender.Qt3DRender.QFrustumCulling.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QGeometry:
- "PySide2.Qt3DRender.Qt3DRender.QGeometry.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometry.addAttribute": ('PySide2.Qt3DRender.Qt3DRender.QAttribute',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometry.attributes": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometry.boundingVolumePositionAttribute": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometry.maxExtent": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometry.minExtent": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometry.removeAttribute": ('PySide2.Qt3DRender.Qt3DRender.QAttribute',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometry.setBoundingVolumePositionAttribute": ('PySide2.Qt3DRender.Qt3DRender.QAttribute',),
-# class PySide2.Qt3DRender.Qt3DRender.QGeometryFactory:
- "PySide2.Qt3DRender.Qt3DRender.QGeometryFactory.__init__": (),
-# class PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer:
-# class PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.PrimitiveType:
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.firstInstance": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.firstVertex": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.geometry": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.indexBufferByteOffset": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.indexOffset": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.instanceCount": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.primitiveRestartEnabled": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.primitiveType": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.restartIndexValue": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setFirstInstance": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setFirstVertex": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setGeometry": ('PySide2.Qt3DRender.Qt3DRender.QGeometry',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setIndexBufferByteOffset": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setIndexOffset": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setInstanceCount": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setPrimitiveRestartEnabled": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setPrimitiveType": ('PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.PrimitiveType',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setRestartIndexValue": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setVertexCount": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setVerticesPerPatch": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.vertexCount": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.verticesPerPatch": (),
-# class PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter:
-# class PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.Api:
-# class PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.OpenGLProfile:
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.api": (),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.extensions": (),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.majorVersion": (),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.minorVersion": (),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.profile": (),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.setApi": ('PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.Api',),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.setExtensions": ('typing.Sequence[str]',),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.setMajorVersion": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.setMinorVersion": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.setProfile": ('PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.OpenGLProfile',),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.setVendor": ('str',),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.vendor": (),
-# class PySide2.Qt3DRender.Qt3DRender.QLayer:
- "PySide2.Qt3DRender.Qt3DRender.QLayer.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QLayer.recursive": (),
- "PySide2.Qt3DRender.Qt3DRender.QLayer.setRecursive": ('bool',),
-# class PySide2.Qt3DRender.Qt3DRender.QLayerFilter:
-# class PySide2.Qt3DRender.Qt3DRender.QLayerFilter.FilterMode:
- "PySide2.Qt3DRender.Qt3DRender.QLayerFilter.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QLayerFilter.addLayer": ('PySide2.Qt3DRender.Qt3DRender.QLayer',),
- "PySide2.Qt3DRender.Qt3DRender.QLayerFilter.filterMode": (),
- "PySide2.Qt3DRender.Qt3DRender.QLayerFilter.layers": (),
- "PySide2.Qt3DRender.Qt3DRender.QLayerFilter.removeLayer": ('PySide2.Qt3DRender.Qt3DRender.QLayer',),
- "PySide2.Qt3DRender.Qt3DRender.QLayerFilter.setFilterMode": ('PySide2.Qt3DRender.Qt3DRender.QLayerFilter.FilterMode',),
-# class PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail:
-# class PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.ThresholdType:
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.camera": (),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.createBoundingSphere": ('PySide2.QtGui.QVector3D', 'float'),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.currentIndex": (),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.setCamera": ('PySide2.Qt3DRender.Qt3DRender.QCamera',),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.setCurrentIndex": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.setThresholdType": ('PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.ThresholdType',),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.setThresholds": ('typing.List[float]',),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.setVolumeOverride": ('PySide2.Qt3DRender.Qt3DRender.QLevelOfDetailBoundingSphere',),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.thresholdType": (),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.thresholds": (),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.volumeOverride": (),
-# class PySide2.Qt3DRender.Qt3DRender.QLevelOfDetailBoundingSphere:
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetailBoundingSphere.__init__": [('PySide2.Qt3DRender.Qt3DRender.QLevelOfDetailBoundingSphere',), ('PySide2.QtGui.QVector3D', 'float')],
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetailBoundingSphere.center": (),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetailBoundingSphere.isEmpty": (),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetailBoundingSphere.radius": (),
-# class PySide2.Qt3DRender.Qt3DRender.QLevelOfDetailSwitch:
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetailSwitch.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QLineWidth:
- "PySide2.Qt3DRender.Qt3DRender.QLineWidth.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QLineWidth.setSmooth": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QLineWidth.setValue": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QLineWidth.smooth": (),
- "PySide2.Qt3DRender.Qt3DRender.QLineWidth.value": (),
-# class PySide2.Qt3DRender.Qt3DRender.QMaterial:
- "PySide2.Qt3DRender.Qt3DRender.QMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QMaterial.addParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
- "PySide2.Qt3DRender.Qt3DRender.QMaterial.effect": (),
- "PySide2.Qt3DRender.Qt3DRender.QMaterial.parameters": (),
- "PySide2.Qt3DRender.Qt3DRender.QMaterial.removeParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
- "PySide2.Qt3DRender.Qt3DRender.QMaterial.setEffect": ('PySide2.Qt3DRender.Qt3DRender.QEffect',),
-# class PySide2.Qt3DRender.Qt3DRender.QMemoryBarrier:
-# class PySide2.Qt3DRender.Qt3DRender.QMemoryBarrier.Operation:
-# class PySide2.Qt3DRender.Qt3DRender.QMemoryBarrier.Operations:
- "PySide2.Qt3DRender.Qt3DRender.QMemoryBarrier.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QMemoryBarrier.setWaitOperations": ('PySide2.Qt3DRender.Qt3DRender.QMemoryBarrier.Operations',),
- "PySide2.Qt3DRender.Qt3DRender.QMemoryBarrier.waitOperations": (),
-# class PySide2.Qt3DRender.Qt3DRender.QMesh:
-# class PySide2.Qt3DRender.Qt3DRender.QMesh.Status:
- "PySide2.Qt3DRender.Qt3DRender.QMesh.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QMesh.meshName": (),
- "PySide2.Qt3DRender.Qt3DRender.QMesh.setMeshName": ('str',),
- "PySide2.Qt3DRender.Qt3DRender.QMesh.setSource": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QMesh.source": (),
- "PySide2.Qt3DRender.Qt3DRender.QMesh.status": (),
-# class PySide2.Qt3DRender.Qt3DRender.QMultiSampleAntiAliasing:
- "PySide2.Qt3DRender.Qt3DRender.QMultiSampleAntiAliasing.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QNoDepthMask:
- "PySide2.Qt3DRender.Qt3DRender.QNoDepthMask.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QNoDraw:
- "PySide2.Qt3DRender.Qt3DRender.QNoDraw.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QNoPicking:
- "PySide2.Qt3DRender.Qt3DRender.QNoPicking.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QObjectPicker:
- "PySide2.Qt3DRender.Qt3DRender.QObjectPicker.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QObjectPicker.containsMouse": (),
- "PySide2.Qt3DRender.Qt3DRender.QObjectPicker.isDragEnabled": (),
- "PySide2.Qt3DRender.Qt3DRender.QObjectPicker.isHoverEnabled": (),
- "PySide2.Qt3DRender.Qt3DRender.QObjectPicker.isPressed": (),
- "PySide2.Qt3DRender.Qt3DRender.QObjectPicker.priority": (),
- "PySide2.Qt3DRender.Qt3DRender.QObjectPicker.setDragEnabled": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QObjectPicker.setHoverEnabled": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QObjectPicker.setPriority": ('int',),
-# class PySide2.Qt3DRender.Qt3DRender.QPaintedTextureImage:
- "PySide2.Qt3DRender.Qt3DRender.QPaintedTextureImage.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QPaintedTextureImage.height": (),
- "PySide2.Qt3DRender.Qt3DRender.QPaintedTextureImage.paint": ('PySide2.QtGui.QPainter',),
- "PySide2.Qt3DRender.Qt3DRender.QPaintedTextureImage.setHeight": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QPaintedTextureImage.setSize": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DRender.Qt3DRender.QPaintedTextureImage.setWidth": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QPaintedTextureImage.size": (),
- "PySide2.Qt3DRender.Qt3DRender.QPaintedTextureImage.update": ('PySide2.QtCore.QRect',),
- "PySide2.Qt3DRender.Qt3DRender.QPaintedTextureImage.width": (),
-# class PySide2.Qt3DRender.Qt3DRender.QParameter:
- "PySide2.Qt3DRender.Qt3DRender.QParameter.__init__": [('PySide2.Qt3DCore.Qt3DCore.QNode',), ('str', 'PySide2.Qt3DRender.Qt3DRender.QAbstractTexture', 'PySide2.Qt3DCore.Qt3DCore.QNode'), ('str', 'typing.Any', 'PySide2.Qt3DCore.Qt3DCore.QNode')],
- "PySide2.Qt3DRender.Qt3DRender.QParameter.name": (),
- "PySide2.Qt3DRender.Qt3DRender.QParameter.setName": ('str',),
- "PySide2.Qt3DRender.Qt3DRender.QParameter.setValue": ('typing.Any',),
- "PySide2.Qt3DRender.Qt3DRender.QParameter.value": (),
-# class PySide2.Qt3DRender.Qt3DRender.QPickEvent:
-# class PySide2.Qt3DRender.Qt3DRender.QPickEvent.Buttons:
-# class PySide2.Qt3DRender.Qt3DRender.QPickEvent.Modifiers:
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.__init__": [(), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'float'), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'float', 'PySide2.Qt3DRender.Qt3DRender.QPickEvent.Buttons', 'int', 'int')],
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.button": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.buttons": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.distance": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.entity": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.isAccepted": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.localIntersection": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.modifiers": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.position": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.setAccepted": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.viewport": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.worldIntersection": (),
-# class PySide2.Qt3DRender.Qt3DRender.QPickLineEvent:
- "PySide2.Qt3DRender.Qt3DRender.QPickLineEvent.__init__": [(), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'float', 'int', 'int', 'int', 'PySide2.Qt3DRender.Qt3DRender.QPickEvent.Buttons', 'int', 'int')],
- "PySide2.Qt3DRender.Qt3DRender.QPickLineEvent.edgeIndex": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickLineEvent.vertex1Index": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickLineEvent.vertex2Index": (),
-# class PySide2.Qt3DRender.Qt3DRender.QPickPointEvent:
- "PySide2.Qt3DRender.Qt3DRender.QPickPointEvent.__init__": [(), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'float', 'int', 'PySide2.Qt3DRender.Qt3DRender.QPickEvent.Buttons', 'int', 'int')],
- "PySide2.Qt3DRender.Qt3DRender.QPickPointEvent.pointIndex": (),
-# class PySide2.Qt3DRender.Qt3DRender.QPickTriangleEvent:
- "PySide2.Qt3DRender.Qt3DRender.QPickTriangleEvent.__init__": [(), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'float', 'int', 'int', 'int', 'int'), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'float', 'int', 'int', 'int', 'int', 'PySide2.Qt3DRender.Qt3DRender.QPickEvent.Buttons', 'int', 'int', 'PySide2.QtGui.QVector3D')],
- "PySide2.Qt3DRender.Qt3DRender.QPickTriangleEvent.triangleIndex": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickTriangleEvent.uvw": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickTriangleEvent.vertex1Index": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickTriangleEvent.vertex2Index": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickTriangleEvent.vertex3Index": (),
-# class PySide2.Qt3DRender.Qt3DRender.QPickingSettings:
-# class PySide2.Qt3DRender.Qt3DRender.QPickingSettings.FaceOrientationPickingMode:
-# class PySide2.Qt3DRender.Qt3DRender.QPickingSettings.PickMethod:
-# class PySide2.Qt3DRender.Qt3DRender.QPickingSettings.PickResultMode:
- "PySide2.Qt3DRender.Qt3DRender.QPickingSettings.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QPickingSettings.faceOrientationPickingMode": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickingSettings.pickMethod": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickingSettings.pickResultMode": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickingSettings.setFaceOrientationPickingMode": ('PySide2.Qt3DRender.Qt3DRender.QPickingSettings.FaceOrientationPickingMode',),
- "PySide2.Qt3DRender.Qt3DRender.QPickingSettings.setPickMethod": ('PySide2.Qt3DRender.Qt3DRender.QPickingSettings.PickMethod',),
- "PySide2.Qt3DRender.Qt3DRender.QPickingSettings.setPickResultMode": ('PySide2.Qt3DRender.Qt3DRender.QPickingSettings.PickResultMode',),
- "PySide2.Qt3DRender.Qt3DRender.QPickingSettings.setWorldSpaceTolerance": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QPickingSettings.worldSpaceTolerance": (),
-# class PySide2.Qt3DRender.Qt3DRender.QPointLight:
- "PySide2.Qt3DRender.Qt3DRender.QPointLight.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QPointLight.constantAttenuation": (),
- "PySide2.Qt3DRender.Qt3DRender.QPointLight.linearAttenuation": (),
- "PySide2.Qt3DRender.Qt3DRender.QPointLight.quadraticAttenuation": (),
- "PySide2.Qt3DRender.Qt3DRender.QPointLight.setConstantAttenuation": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QPointLight.setLinearAttenuation": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QPointLight.setQuadraticAttenuation": ('float',),
-# class PySide2.Qt3DRender.Qt3DRender.QPointSize:
-# class PySide2.Qt3DRender.Qt3DRender.QPointSize.SizeMode:
- "PySide2.Qt3DRender.Qt3DRender.QPointSize.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QPointSize.setSizeMode": ('PySide2.Qt3DRender.Qt3DRender.QPointSize.SizeMode',),
- "PySide2.Qt3DRender.Qt3DRender.QPointSize.setValue": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QPointSize.sizeMode": (),
- "PySide2.Qt3DRender.Qt3DRender.QPointSize.value": (),
-# class PySide2.Qt3DRender.Qt3DRender.QPolygonOffset:
- "PySide2.Qt3DRender.Qt3DRender.QPolygonOffset.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QPolygonOffset.depthSteps": (),
- "PySide2.Qt3DRender.Qt3DRender.QPolygonOffset.scaleFactor": (),
- "PySide2.Qt3DRender.Qt3DRender.QPolygonOffset.setDepthSteps": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QPolygonOffset.setScaleFactor": ('float',),
-# class PySide2.Qt3DRender.Qt3DRender.QProximityFilter:
- "PySide2.Qt3DRender.Qt3DRender.QProximityFilter.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QProximityFilter.distanceThreshold": (),
- "PySide2.Qt3DRender.Qt3DRender.QProximityFilter.entity": (),
- "PySide2.Qt3DRender.Qt3DRender.QProximityFilter.setDistanceThreshold": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QProximityFilter.setEntity": ('PySide2.Qt3DCore.Qt3DCore.QEntity',),
-# class PySide2.Qt3DRender.Qt3DRender.QRayCaster:
- "PySide2.Qt3DRender.Qt3DRender.QRayCaster.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRayCaster.direction": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCaster.length": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCaster.origin": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCaster.setDirection": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DRender.Qt3DRender.QRayCaster.setLength": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QRayCaster.setOrigin": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DRender.Qt3DRender.QRayCaster.trigger": [(), ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'float')],
-# class PySide2.Qt3DRender.Qt3DRender.QRayCasterHit:
-# class PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.HitType:
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.__init__": [(), ('PySide2.Qt3DRender.Qt3DRender.QRayCasterHit',), ('PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.HitType', 'PySide2.Qt3DCore.Qt3DCore.QNodeId', 'float', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'int', 'int', 'int', 'int')],
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.__copy__": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.distance": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.entity": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.entityId": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.localIntersection": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.primitiveIndex": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.type": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.vertex1Index": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.vertex2Index": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.vertex3Index": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.worldIntersection": (),
-# class PySide2.Qt3DRender.Qt3DRender.QRenderAspect:
-# class PySide2.Qt3DRender.Qt3DRender.QRenderAspect.RenderType:
- "PySide2.Qt3DRender.Qt3DRender.QRenderAspect.__init__": [('PySide2.Qt3DRender.Qt3DRender.QRenderAspect.RenderType', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QObject',)],
-# class PySide2.Qt3DRender.Qt3DRender.QRenderCapture:
- "PySide2.Qt3DRender.Qt3DRender.QRenderCapture.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderCapture.requestCapture": [(), ('PySide2.QtCore.QRect',), ('int',)],
-# class PySide2.Qt3DRender.Qt3DRender.QRenderCaptureReply:
- "PySide2.Qt3DRender.Qt3DRender.QRenderCaptureReply.captureId": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderCaptureReply.image": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderCaptureReply.isComplete": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderCaptureReply.saveImage": ('str',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderCaptureReply.saveToFile": ('str',),
-# class PySide2.Qt3DRender.Qt3DRender.QRenderPass:
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.addFilterKey": ('PySide2.Qt3DRender.Qt3DRender.QFilterKey',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.addParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.addRenderState": ('PySide2.Qt3DRender.Qt3DRender.QRenderState',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.filterKeys": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.parameters": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.removeFilterKey": ('PySide2.Qt3DRender.Qt3DRender.QFilterKey',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.removeParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.removeRenderState": ('PySide2.Qt3DRender.Qt3DRender.QRenderState',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.renderStates": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.setShaderProgram": ('PySide2.Qt3DRender.Qt3DRender.QShaderProgram',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.shaderProgram": (),
-# class PySide2.Qt3DRender.Qt3DRender.QRenderPassFilter:
- "PySide2.Qt3DRender.Qt3DRender.QRenderPassFilter.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPassFilter.addMatch": ('PySide2.Qt3DRender.Qt3DRender.QFilterKey',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPassFilter.addParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPassFilter.matchAny": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPassFilter.parameters": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPassFilter.removeMatch": ('PySide2.Qt3DRender.Qt3DRender.QFilterKey',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPassFilter.removeParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
-# class PySide2.Qt3DRender.Qt3DRender.QRenderSettings:
-# class PySide2.Qt3DRender.Qt3DRender.QRenderSettings.RenderPolicy:
- "PySide2.Qt3DRender.Qt3DRender.QRenderSettings.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSettings.activeFrameGraph": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSettings.pickingSettings": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSettings.renderPolicy": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSettings.setActiveFrameGraph": ('PySide2.Qt3DRender.Qt3DRender.QFrameGraphNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSettings.setRenderPolicy": ('PySide2.Qt3DRender.Qt3DRender.QRenderSettings.RenderPolicy',),
-# class PySide2.Qt3DRender.Qt3DRender.QRenderState:
-# class PySide2.Qt3DRender.Qt3DRender.QRenderStateSet:
- "PySide2.Qt3DRender.Qt3DRender.QRenderStateSet.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderStateSet.addRenderState": ('PySide2.Qt3DRender.Qt3DRender.QRenderState',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderStateSet.removeRenderState": ('PySide2.Qt3DRender.Qt3DRender.QRenderState',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderStateSet.renderStates": (),
-# class PySide2.Qt3DRender.Qt3DRender.QRenderSurfaceSelector:
- "PySide2.Qt3DRender.Qt3DRender.QRenderSurfaceSelector.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSurfaceSelector.externalRenderTargetSize": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSurfaceSelector.setExternalRenderTargetSize": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSurfaceSelector.setSurface": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSurfaceSelector.setSurfacePixelRatio": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSurfaceSelector.surface": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSurfaceSelector.surfacePixelRatio": (),
-# class PySide2.Qt3DRender.Qt3DRender.QRenderTarget:
- "PySide2.Qt3DRender.Qt3DRender.QRenderTarget.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTarget.addOutput": ('PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTarget.outputs": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTarget.removeOutput": ('PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput',),
-# class PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput:
-# class PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.AttachmentPoint:
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.attachmentPoint": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.face": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.layer": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.mipLevel": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.setAttachmentPoint": ('PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.AttachmentPoint',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.setFace": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.CubeMapFace',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.setLayer": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.setMipLevel": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.setTexture": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.texture": (),
-# class PySide2.Qt3DRender.Qt3DRender.QRenderTargetSelector:
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetSelector.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetSelector.outputs": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetSelector.setOutputs": ('typing.List[PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.AttachmentPoint]',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetSelector.setTarget": ('PySide2.Qt3DRender.Qt3DRender.QRenderTarget',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetSelector.target": (),
-# class PySide2.Qt3DRender.Qt3DRender.QSceneLoader:
-# class PySide2.Qt3DRender.Qt3DRender.QSceneLoader.ComponentType:
-# class PySide2.Qt3DRender.Qt3DRender.QSceneLoader.Status:
- "PySide2.Qt3DRender.Qt3DRender.QSceneLoader.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QSceneLoader.component": ('str', 'PySide2.Qt3DRender.Qt3DRender.QSceneLoader.ComponentType'),
- "PySide2.Qt3DRender.Qt3DRender.QSceneLoader.entity": ('str',),
- "PySide2.Qt3DRender.Qt3DRender.QSceneLoader.entityNames": (),
- "PySide2.Qt3DRender.Qt3DRender.QSceneLoader.setSource": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QSceneLoader.setStatus": ('PySide2.Qt3DRender.Qt3DRender.QSceneLoader.Status',),
- "PySide2.Qt3DRender.Qt3DRender.QSceneLoader.source": (),
- "PySide2.Qt3DRender.Qt3DRender.QSceneLoader.status": (),
-# class PySide2.Qt3DRender.Qt3DRender.QScissorTest:
- "PySide2.Qt3DRender.Qt3DRender.QScissorTest.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QScissorTest.bottom": (),
- "PySide2.Qt3DRender.Qt3DRender.QScissorTest.height": (),
- "PySide2.Qt3DRender.Qt3DRender.QScissorTest.left": (),
- "PySide2.Qt3DRender.Qt3DRender.QScissorTest.setBottom": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QScissorTest.setHeight": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QScissorTest.setLeft": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QScissorTest.setWidth": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QScissorTest.width": (),
-# class PySide2.Qt3DRender.Qt3DRender.QScreenRayCaster:
- "PySide2.Qt3DRender.Qt3DRender.QScreenRayCaster.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QScreenRayCaster.position": (),
- "PySide2.Qt3DRender.Qt3DRender.QScreenRayCaster.setPosition": ('PySide2.QtCore.QPoint',),
- "PySide2.Qt3DRender.Qt3DRender.QScreenRayCaster.trigger": [(), ('PySide2.QtCore.QPoint',)],
-# class PySide2.Qt3DRender.Qt3DRender.QSeamlessCubemap:
- "PySide2.Qt3DRender.Qt3DRender.QSeamlessCubemap.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QSetFence:
-# class PySide2.Qt3DRender.Qt3DRender.QSetFence.HandleType:
- "PySide2.Qt3DRender.Qt3DRender.QSetFence.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QSetFence.handle": (),
- "PySide2.Qt3DRender.Qt3DRender.QSetFence.handleType": (),
-# class PySide2.Qt3DRender.Qt3DRender.QShaderData:
- "PySide2.Qt3DRender.Qt3DRender.QShaderData.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderData.event": ('PySide2.QtCore.QEvent',),
-# class PySide2.Qt3DRender.Qt3DRender.QShaderImage:
-# class PySide2.Qt3DRender.Qt3DRender.QShaderImage.Access:
-# class PySide2.Qt3DRender.Qt3DRender.QShaderImage.ImageFormat:
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.access": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.format": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.layer": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.layered": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.mipLevel": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.setAccess": ('PySide2.Qt3DRender.Qt3DRender.QShaderImage.Access',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.setFormat": ('PySide2.Qt3DRender.Qt3DRender.QShaderImage.ImageFormat',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.setLayer": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.setLayered": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.setMipLevel": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.setTexture": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.texture": (),
-# class PySide2.Qt3DRender.Qt3DRender.QShaderProgram:
-# class PySide2.Qt3DRender.Qt3DRender.QShaderProgram.ShaderType:
-# class PySide2.Qt3DRender.Qt3DRender.QShaderProgram.Status:
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.computeShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.fragmentShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.geometryShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.loadSource": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.log": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.setComputeShaderCode": ('PySide2.QtCore.QByteArray',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.setFragmentShaderCode": ('PySide2.QtCore.QByteArray',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.setGeometryShaderCode": ('PySide2.QtCore.QByteArray',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.setShaderCode": ('PySide2.Qt3DRender.Qt3DRender.QShaderProgram.ShaderType', 'PySide2.QtCore.QByteArray'),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.setTessellationControlShaderCode": ('PySide2.QtCore.QByteArray',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.setTessellationEvaluationShaderCode": ('PySide2.QtCore.QByteArray',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.setVertexShaderCode": ('PySide2.QtCore.QByteArray',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.shaderCode": ('PySide2.Qt3DRender.Qt3DRender.QShaderProgram.ShaderType',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.status": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.tessellationControlShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.tessellationEvaluationShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.vertexShaderCode": (),
-# class PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder:
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.computeShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.computeShaderGraph": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.enabledLayers": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.fragmentShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.fragmentShaderGraph": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.geometryShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.geometryShaderGraph": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.setComputeShaderGraph": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.setEnabledLayers": ('typing.Sequence[str]',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.setFragmentShaderGraph": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.setGeometryShaderGraph": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.setShaderProgram": ('PySide2.Qt3DRender.Qt3DRender.QShaderProgram',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.setTessellationControlShaderGraph": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.setTessellationEvaluationShaderGraph": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.setVertexShaderGraph": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.shaderProgram": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.tessellationControlShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.tessellationControlShaderGraph": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.tessellationEvaluationShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.tessellationEvaluationShaderGraph": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.vertexShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.vertexShaderGraph": (),
-# class PySide2.Qt3DRender.Qt3DRender.QSharedGLTexture:
- "PySide2.Qt3DRender.Qt3DRender.QSharedGLTexture.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QSharedGLTexture.setTextureId": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QSharedGLTexture.textureId": (),
-# class PySide2.Qt3DRender.Qt3DRender.QSortPolicy:
-# class PySide2.Qt3DRender.Qt3DRender.QSortPolicy.SortType:
- "PySide2.Qt3DRender.Qt3DRender.QSortPolicy.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QSortPolicy.setSortTypes": [('typing.List[PySide2.Qt3DRender.Qt3DRender.QSortPolicy.SortType]',), ('typing.List[int]',)],
- "PySide2.Qt3DRender.Qt3DRender.QSortPolicy.sortTypes": (),
- "PySide2.Qt3DRender.Qt3DRender.QSortPolicy.sortTypesInt": (),
-# class PySide2.Qt3DRender.Qt3DRender.QSpotLight:
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.constantAttenuation": (),
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.cutOffAngle": (),
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.linearAttenuation": (),
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.localDirection": (),
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.quadraticAttenuation": (),
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.setConstantAttenuation": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.setCutOffAngle": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.setLinearAttenuation": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.setLocalDirection": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.setQuadraticAttenuation": ('float',),
-# class PySide2.Qt3DRender.Qt3DRender.QStencilMask:
- "PySide2.Qt3DRender.Qt3DRender.QStencilMask.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QStencilMask.backOutputMask": (),
- "PySide2.Qt3DRender.Qt3DRender.QStencilMask.frontOutputMask": (),
- "PySide2.Qt3DRender.Qt3DRender.QStencilMask.setBackOutputMask": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QStencilMask.setFrontOutputMask": ('int',),
-# class PySide2.Qt3DRender.Qt3DRender.QStencilOperation:
- "PySide2.Qt3DRender.Qt3DRender.QStencilOperation.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QStencilOperation.back": (),
- "PySide2.Qt3DRender.Qt3DRender.QStencilOperation.front": (),
-# class PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments:
-# class PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.FaceMode:
-# class PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.Operation:
- "PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.allTestsPassOperation": (),
- "PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.depthTestFailureOperation": (),
- "PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.faceMode": (),
- "PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.setAllTestsPassOperation": ('PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.Operation',),
- "PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.setDepthTestFailureOperation": ('PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.Operation',),
- "PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.setStencilTestFailureOperation": ('PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.Operation',),
- "PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.stencilTestFailureOperation": (),
-# class PySide2.Qt3DRender.Qt3DRender.QStencilTest:
- "PySide2.Qt3DRender.Qt3DRender.QStencilTest.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QStencilTest.back": (),
- "PySide2.Qt3DRender.Qt3DRender.QStencilTest.front": (),
-# class PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments:
-# class PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments.StencilFaceMode:
-# class PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments.StencilFunction:
- "PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments.comparisonMask": (),
- "PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments.faceMode": (),
- "PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments.referenceValue": (),
- "PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments.setComparisonMask": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments.setReferenceValue": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments.setStencilFunction": ('PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments.StencilFunction',),
- "PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments.stencilFunction": (),
-# class PySide2.Qt3DRender.Qt3DRender.QTechnique:
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.addFilterKey": ('PySide2.Qt3DRender.Qt3DRender.QFilterKey',),
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.addParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.addRenderPass": ('PySide2.Qt3DRender.Qt3DRender.QRenderPass',),
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.filterKeys": (),
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.graphicsApiFilter": (),
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.parameters": (),
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.removeFilterKey": ('PySide2.Qt3DRender.Qt3DRender.QFilterKey',),
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.removeParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.removeRenderPass": ('PySide2.Qt3DRender.Qt3DRender.QRenderPass',),
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.renderPasses": (),
-# class PySide2.Qt3DRender.Qt3DRender.QTechniqueFilter:
- "PySide2.Qt3DRender.Qt3DRender.QTechniqueFilter.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QTechniqueFilter.addMatch": ('PySide2.Qt3DRender.Qt3DRender.QFilterKey',),
- "PySide2.Qt3DRender.Qt3DRender.QTechniqueFilter.addParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
- "PySide2.Qt3DRender.Qt3DRender.QTechniqueFilter.matchAll": (),
- "PySide2.Qt3DRender.Qt3DRender.QTechniqueFilter.parameters": (),
- "PySide2.Qt3DRender.Qt3DRender.QTechniqueFilter.removeMatch": ('PySide2.Qt3DRender.Qt3DRender.QFilterKey',),
- "PySide2.Qt3DRender.Qt3DRender.QTechniqueFilter.removeParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
-# class PySide2.Qt3DRender.Qt3DRender.QTexture1D:
- "PySide2.Qt3DRender.Qt3DRender.QTexture1D.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTexture1DArray:
- "PySide2.Qt3DRender.Qt3DRender.QTexture1DArray.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTexture2D:
- "PySide2.Qt3DRender.Qt3DRender.QTexture2D.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTexture2DArray:
- "PySide2.Qt3DRender.Qt3DRender.QTexture2DArray.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTexture2DMultisample:
- "PySide2.Qt3DRender.Qt3DRender.QTexture2DMultisample.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTexture2DMultisampleArray:
- "PySide2.Qt3DRender.Qt3DRender.QTexture2DMultisampleArray.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTexture3D:
- "PySide2.Qt3DRender.Qt3DRender.QTexture3D.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTextureBuffer:
- "PySide2.Qt3DRender.Qt3DRender.QTextureBuffer.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTextureCubeMap:
- "PySide2.Qt3DRender.Qt3DRender.QTextureCubeMap.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTextureCubeMapArray:
- "PySide2.Qt3DRender.Qt3DRender.QTextureCubeMapArray.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTextureData:
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.__init__": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.comparisonFunction": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.comparisonMode": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.depth": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.format": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.height": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.isAutoMipMapGenerationEnabled": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.layers": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.magnificationFilter": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.maximumAnisotropy": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.minificationFilter": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setAutoMipMapGenerationEnabled": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setComparisonFunction": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.ComparisonFunction',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setComparisonMode": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.ComparisonMode',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setDepth": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setFormat": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.TextureFormat',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setHeight": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setLayers": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setMagnificationFilter": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.Filter',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setMaximumAnisotropy": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setMinificationFilter": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.Filter',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setTarget": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.Target',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setWidth": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setWrapModeX": ('PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setWrapModeY": ('PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setWrapModeZ": ('PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.target": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.width": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.wrapModeX": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.wrapModeY": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.wrapModeZ": (),
-# class PySide2.Qt3DRender.Qt3DRender.QTextureGenerator:
-# class PySide2.Qt3DRender.Qt3DRender.QTextureImage:
-# class PySide2.Qt3DRender.Qt3DRender.QTextureImage.Status:
- "PySide2.Qt3DRender.Qt3DRender.QTextureImage.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImage.isMirrored": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImage.setMirrored": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImage.setSource": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImage.setStatus": ('PySide2.Qt3DRender.Qt3DRender.QTextureImage.Status',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImage.source": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImage.status": (),
-# class PySide2.Qt3DRender.Qt3DRender.QTextureImageData:
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.__init__": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.cleanup": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.data": ('int', 'int', 'int'),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.depth": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.faces": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.format": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.height": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.isCompressed": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.layers": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.mipLevels": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.pixelFormat": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.pixelType": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setData": ('PySide2.QtCore.QByteArray', 'int', 'bool'),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setDepth": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setFaces": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setFormat": ('PySide2.QtGui.QOpenGLTexture.TextureFormat',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setHeight": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setImage": ('PySide2.QtGui.QImage',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setLayers": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setMipLevels": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setPixelFormat": ('PySide2.QtGui.QOpenGLTexture.PixelFormat',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setPixelType": ('PySide2.QtGui.QOpenGLTexture.PixelType',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setTarget": ('PySide2.QtGui.QOpenGLTexture.Target',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setWidth": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.target": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.width": (),
-# class PySide2.Qt3DRender.Qt3DRender.QTextureImageDataGenerator:
-# class PySide2.Qt3DRender.Qt3DRender.QTextureLoader:
- "PySide2.Qt3DRender.Qt3DRender.QTextureLoader.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureLoader.isMirrored": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureLoader.setMirrored": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureLoader.setSource": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureLoader.source": (),
-# class PySide2.Qt3DRender.Qt3DRender.QTextureRectangle:
- "PySide2.Qt3DRender.Qt3DRender.QTextureRectangle.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode:
-# class PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode:
- "PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.__init__": [('PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode', 'PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode', 'PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode', 'PySide2.QtCore.QObject'), ('PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode', 'PySide2.QtCore.QObject')],
- "PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.setX": ('PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.setY": ('PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.setZ": ('PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.x": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.y": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.z": (),
-# class PySide2.Qt3DRender.Qt3DRender.QViewport:
- "PySide2.Qt3DRender.Qt3DRender.QViewport.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QViewport.gamma": (),
- "PySide2.Qt3DRender.Qt3DRender.QViewport.normalizedRect": (),
- "PySide2.Qt3DRender.Qt3DRender.QViewport.setGamma": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QViewport.setNormalizedRect": ('PySide2.QtCore.QRectF',),
-# class PySide2.Qt3DRender.Qt3DRender.QWaitFence:
-# class PySide2.Qt3DRender.Qt3DRender.QWaitFence.HandleType:
- "PySide2.Qt3DRender.Qt3DRender.QWaitFence.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QWaitFence.handle": (),
- "PySide2.Qt3DRender.Qt3DRender.QWaitFence.handleType": (),
- "PySide2.Qt3DRender.Qt3DRender.QWaitFence.setHandle": ('typing.Any',),
- "PySide2.Qt3DRender.Qt3DRender.QWaitFence.setHandleType": ('PySide2.Qt3DRender.Qt3DRender.QWaitFence.HandleType',),
- "PySide2.Qt3DRender.Qt3DRender.QWaitFence.setTimeout": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QWaitFence.setWaitOnCPU": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QWaitFence.timeout": (),
- "PySide2.Qt3DRender.Qt3DRender.QWaitFence.waitOnCPU": (),
- }) if "PySide2.Qt3DRender" in sys.modules else None
-# Module PySide2.Qt3DInput
-sig_dict.update({
-# class PySide2.Qt3DInput.Qt3DInput:
-# class PySide2.Qt3DInput.Qt3DInput.QAbstractActionInput:
-# class PySide2.Qt3DInput.Qt3DInput.QAbstractAxisInput:
- "PySide2.Qt3DInput.Qt3DInput.QAbstractAxisInput.setSourceDevice": ('PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice',),
- "PySide2.Qt3DInput.Qt3DInput.QAbstractAxisInput.sourceDevice": (),
-# class PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice:
- "PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice.addAxisSetting": ('PySide2.Qt3DInput.Qt3DInput.QAxisSetting',),
- "PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice.axisCount": (),
- "PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice.axisIdentifier": ('str',),
- "PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice.axisNames": (),
- "PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice.axisSettings": (),
- "PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice.buttonCount": (),
- "PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice.buttonIdentifier": ('str',),
- "PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice.buttonNames": (),
- "PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice.removeAxisSetting": ('PySide2.Qt3DInput.Qt3DInput.QAxisSetting',),
-# class PySide2.Qt3DInput.Qt3DInput.QAction:
- "PySide2.Qt3DInput.Qt3DInput.QAction.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QAction.addInput": ('PySide2.Qt3DInput.Qt3DInput.QAbstractActionInput',),
- "PySide2.Qt3DInput.Qt3DInput.QAction.inputs": (),
- "PySide2.Qt3DInput.Qt3DInput.QAction.isActive": (),
- "PySide2.Qt3DInput.Qt3DInput.QAction.removeInput": ('PySide2.Qt3DInput.Qt3DInput.QAbstractActionInput',),
-# class PySide2.Qt3DInput.Qt3DInput.QActionInput:
- "PySide2.Qt3DInput.Qt3DInput.QActionInput.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QActionInput.buttons": (),
- "PySide2.Qt3DInput.Qt3DInput.QActionInput.setButtons": ('typing.List[int]',),
- "PySide2.Qt3DInput.Qt3DInput.QActionInput.setSourceDevice": ('PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice',),
- "PySide2.Qt3DInput.Qt3DInput.QActionInput.sourceDevice": (),
-# class PySide2.Qt3DInput.Qt3DInput.QAnalogAxisInput:
- "PySide2.Qt3DInput.Qt3DInput.QAnalogAxisInput.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QAnalogAxisInput.axis": (),
- "PySide2.Qt3DInput.Qt3DInput.QAnalogAxisInput.setAxis": ('int',),
-# class PySide2.Qt3DInput.Qt3DInput.QAxis:
- "PySide2.Qt3DInput.Qt3DInput.QAxis.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QAxis.addInput": ('PySide2.Qt3DInput.Qt3DInput.QAbstractAxisInput',),
- "PySide2.Qt3DInput.Qt3DInput.QAxis.inputs": (),
- "PySide2.Qt3DInput.Qt3DInput.QAxis.removeInput": ('PySide2.Qt3DInput.Qt3DInput.QAbstractAxisInput',),
- "PySide2.Qt3DInput.Qt3DInput.QAxis.value": (),
-# class PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator:
-# class PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.SourceAxisType:
- "PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.scale": (),
- "PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.setScale": ('float',),
- "PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.setSourceAxis": ('PySide2.Qt3DInput.Qt3DInput.QAxis',),
- "PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.setSourceAxisType": ('PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.SourceAxisType',),
- "PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.sourceAxis": (),
- "PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.sourceAxisType": (),
- "PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.value": (),
- "PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.velocity": (),
-# class PySide2.Qt3DInput.Qt3DInput.QAxisSetting:
- "PySide2.Qt3DInput.Qt3DInput.QAxisSetting.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QAxisSetting.axes": (),
- "PySide2.Qt3DInput.Qt3DInput.QAxisSetting.deadZoneRadius": (),
- "PySide2.Qt3DInput.Qt3DInput.QAxisSetting.isSmoothEnabled": (),
- "PySide2.Qt3DInput.Qt3DInput.QAxisSetting.setAxes": ('typing.List[int]',),
- "PySide2.Qt3DInput.Qt3DInput.QAxisSetting.setDeadZoneRadius": ('float',),
- "PySide2.Qt3DInput.Qt3DInput.QAxisSetting.setSmoothEnabled": ('bool',),
-# class PySide2.Qt3DInput.Qt3DInput.QButtonAxisInput:
- "PySide2.Qt3DInput.Qt3DInput.QButtonAxisInput.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QButtonAxisInput.acceleration": (),
- "PySide2.Qt3DInput.Qt3DInput.QButtonAxisInput.buttons": (),
- "PySide2.Qt3DInput.Qt3DInput.QButtonAxisInput.deceleration": (),
- "PySide2.Qt3DInput.Qt3DInput.QButtonAxisInput.scale": (),
- "PySide2.Qt3DInput.Qt3DInput.QButtonAxisInput.setAcceleration": ('float',),
- "PySide2.Qt3DInput.Qt3DInput.QButtonAxisInput.setButtons": ('typing.List[int]',),
- "PySide2.Qt3DInput.Qt3DInput.QButtonAxisInput.setDeceleration": ('float',),
- "PySide2.Qt3DInput.Qt3DInput.QButtonAxisInput.setScale": ('float',),
-# class PySide2.Qt3DInput.Qt3DInput.QInputAspect:
- "PySide2.Qt3DInput.Qt3DInput.QInputAspect.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DInput.Qt3DInput.QInputAspect.availablePhysicalDevices": (),
- "PySide2.Qt3DInput.Qt3DInput.QInputAspect.createPhysicalDevice": ('str',),
-# class PySide2.Qt3DInput.Qt3DInput.QInputChord:
- "PySide2.Qt3DInput.Qt3DInput.QInputChord.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QInputChord.addChord": ('PySide2.Qt3DInput.Qt3DInput.QAbstractActionInput',),
- "PySide2.Qt3DInput.Qt3DInput.QInputChord.chords": (),
- "PySide2.Qt3DInput.Qt3DInput.QInputChord.removeChord": ('PySide2.Qt3DInput.Qt3DInput.QAbstractActionInput',),
- "PySide2.Qt3DInput.Qt3DInput.QInputChord.setTimeout": ('int',),
- "PySide2.Qt3DInput.Qt3DInput.QInputChord.timeout": (),
-# class PySide2.Qt3DInput.Qt3DInput.QInputSequence:
- "PySide2.Qt3DInput.Qt3DInput.QInputSequence.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QInputSequence.addSequence": ('PySide2.Qt3DInput.Qt3DInput.QAbstractActionInput',),
- "PySide2.Qt3DInput.Qt3DInput.QInputSequence.buttonInterval": (),
- "PySide2.Qt3DInput.Qt3DInput.QInputSequence.removeSequence": ('PySide2.Qt3DInput.Qt3DInput.QAbstractActionInput',),
- "PySide2.Qt3DInput.Qt3DInput.QInputSequence.sequences": (),
- "PySide2.Qt3DInput.Qt3DInput.QInputSequence.setButtonInterval": ('int',),
- "PySide2.Qt3DInput.Qt3DInput.QInputSequence.setTimeout": ('int',),
- "PySide2.Qt3DInput.Qt3DInput.QInputSequence.timeout": (),
-# class PySide2.Qt3DInput.Qt3DInput.QInputSettings:
- "PySide2.Qt3DInput.Qt3DInput.QInputSettings.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QInputSettings.eventSource": (),
- "PySide2.Qt3DInput.Qt3DInput.QInputSettings.setEventSource": ('PySide2.QtCore.QObject',),
-# class PySide2.Qt3DInput.Qt3DInput.QKeyEvent:
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.__init__": ('PySide2.QtCore.QEvent.Type', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'str', 'bool', 'int'),
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.count": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.isAccepted": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.isAutoRepeat": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.key": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.matches": ('PySide2.QtGui.QKeySequence.StandardKey',),
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.modifiers": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.nativeScanCode": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.setAccepted": ('bool',),
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.text": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.type": (),
-# class PySide2.Qt3DInput.Qt3DInput.QKeyboardDevice:
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardDevice.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardDevice.activeInput": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardDevice.axisCount": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardDevice.axisIdentifier": ('str',),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardDevice.axisNames": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardDevice.buttonCount": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardDevice.buttonIdentifier": ('str',),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardDevice.buttonNames": (),
-# class PySide2.Qt3DInput.Qt3DInput.QKeyboardHandler:
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardHandler.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardHandler.focus": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardHandler.setFocus": ('bool',),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardHandler.setSourceDevice": ('PySide2.Qt3DInput.Qt3DInput.QKeyboardDevice',),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardHandler.sourceDevice": (),
-# class PySide2.Qt3DInput.Qt3DInput.QLogicalDevice:
- "PySide2.Qt3DInput.Qt3DInput.QLogicalDevice.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QLogicalDevice.actions": (),
- "PySide2.Qt3DInput.Qt3DInput.QLogicalDevice.addAction": ('PySide2.Qt3DInput.Qt3DInput.QAction',),
- "PySide2.Qt3DInput.Qt3DInput.QLogicalDevice.addAxis": ('PySide2.Qt3DInput.Qt3DInput.QAxis',),
- "PySide2.Qt3DInput.Qt3DInput.QLogicalDevice.axes": (),
- "PySide2.Qt3DInput.Qt3DInput.QLogicalDevice.removeAction": ('PySide2.Qt3DInput.Qt3DInput.QAction',),
- "PySide2.Qt3DInput.Qt3DInput.QLogicalDevice.removeAxis": ('PySide2.Qt3DInput.Qt3DInput.QAxis',),
-# class PySide2.Qt3DInput.Qt3DInput.QMouseDevice:
-# class PySide2.Qt3DInput.Qt3DInput.QMouseDevice.Axis:
- "PySide2.Qt3DInput.Qt3DInput.QMouseDevice.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QMouseDevice.axisCount": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseDevice.axisIdentifier": ('str',),
- "PySide2.Qt3DInput.Qt3DInput.QMouseDevice.axisNames": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseDevice.buttonCount": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseDevice.buttonIdentifier": ('str',),
- "PySide2.Qt3DInput.Qt3DInput.QMouseDevice.buttonNames": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseDevice.sensitivity": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseDevice.setSensitivity": ('float',),
-# class PySide2.Qt3DInput.Qt3DInput.QMouseEvent:
-# class PySide2.Qt3DInput.Qt3DInput.QMouseEvent.Buttons:
-# class PySide2.Qt3DInput.Qt3DInput.QMouseEvent.Modifiers:
- "PySide2.Qt3DInput.Qt3DInput.QMouseEvent.button": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseEvent.buttons": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseEvent.isAccepted": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseEvent.modifiers": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseEvent.setAccepted": ('bool',),
- "PySide2.Qt3DInput.Qt3DInput.QMouseEvent.type": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseEvent.wasHeld": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseEvent.x": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseEvent.y": (),
-# class PySide2.Qt3DInput.Qt3DInput.QMouseHandler:
- "PySide2.Qt3DInput.Qt3DInput.QMouseHandler.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QMouseHandler.containsMouse": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseHandler.setContainsMouse": ('bool',),
- "PySide2.Qt3DInput.Qt3DInput.QMouseHandler.setSourceDevice": ('PySide2.Qt3DInput.Qt3DInput.QMouseDevice',),
- "PySide2.Qt3DInput.Qt3DInput.QMouseHandler.sourceDevice": (),
-# class PySide2.Qt3DInput.Qt3DInput.QWheelEvent:
-# class PySide2.Qt3DInput.Qt3DInput.QWheelEvent.Buttons:
-# class PySide2.Qt3DInput.Qt3DInput.QWheelEvent.Modifiers:
- "PySide2.Qt3DInput.Qt3DInput.QWheelEvent.angleDelta": (),
- "PySide2.Qt3DInput.Qt3DInput.QWheelEvent.buttons": (),
- "PySide2.Qt3DInput.Qt3DInput.QWheelEvent.isAccepted": (),
- "PySide2.Qt3DInput.Qt3DInput.QWheelEvent.modifiers": (),
- "PySide2.Qt3DInput.Qt3DInput.QWheelEvent.setAccepted": ('bool',),
- "PySide2.Qt3DInput.Qt3DInput.QWheelEvent.type": (),
- "PySide2.Qt3DInput.Qt3DInput.QWheelEvent.x": (),
- "PySide2.Qt3DInput.Qt3DInput.QWheelEvent.y": (),
- }) if "PySide2.Qt3DInput" in sys.modules else None
-# Module PySide2.Qt3DLogic
-sig_dict.update({
-# class PySide2.Qt3DLogic.Qt3DLogic:
-# class PySide2.Qt3DLogic.Qt3DLogic.QFrameAction:
- "PySide2.Qt3DLogic.Qt3DLogic.QFrameAction.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DLogic.Qt3DLogic.QLogicAspect:
- "PySide2.Qt3DLogic.Qt3DLogic.QLogicAspect.__init__": ('PySide2.QtCore.QObject',),
- }) if "PySide2.Qt3DLogic" in sys.modules else None
-# Module PySide2.Qt3DAnimation
-sig_dict.update({
-# class PySide2.Qt3DAnimation.Qt3DAnimation:
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation:
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation.AnimationType:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation.animationName": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation.animationType": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation.duration": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation.position": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation.setAnimationName": ('str',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation.setDuration": ('float',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation.setPosition": ('float',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimationClip:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimationClip.duration": (),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractChannelMapping:
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator:
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.Loops:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.clock": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.isRunning": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.loopCount": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.normalizedTime": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.setClock": ('PySide2.Qt3DAnimation.Qt3DAnimation.QClock',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.setLoopCount": ('int',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.setNormalizedTime": ('float',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.setRunning": ('bool',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.start": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.stop": (),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipBlendNode:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipBlendNode.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAdditiveClipBlend:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAdditiveClipBlend.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAdditiveClipBlend.additiveClip": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAdditiveClipBlend.additiveFactor": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAdditiveClipBlend.baseClip": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAdditiveClipBlend.setAdditiveClip": ('PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipBlendNode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAdditiveClipBlend.setAdditiveFactor": ('float',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAdditiveClipBlend.setBaseClip": ('PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipBlendNode',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationAspect:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationAspect.__init__": ('PySide2.QtCore.QObject',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationCallback:
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationCallback.Flag:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationCallback.__init__": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationCallback.valueChanged": ('typing.Any',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationClip:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationClip.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationClipLoader:
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationClipLoader.Status:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationClipLoader.__init__": [('PySide2.Qt3DCore.Qt3DCore.QNode',), ('PySide2.QtCore.QUrl', 'PySide2.Qt3DCore.Qt3DCore.QNode')],
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationClipLoader.setSource": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationClipLoader.source": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationClipLoader.status": (),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.activeAnimationGroup": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.addAnimationGroup": ('PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.animationGroupList": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.entity": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.getAnimationIndex": ('str',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.getGroup": ('int',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.position": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.positionOffset": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.positionScale": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.recursive": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.removeAnimationGroup": ('PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.setActiveAnimationGroup": ('int',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.setAnimationGroups": ('typing.List[PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup]',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.setEntity": ('PySide2.Qt3DCore.Qt3DCore.QEntity',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.setPosition": ('float',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.setPositionOffset": ('float',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.setPositionScale": ('float',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.setRecursive": ('bool',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup.addAnimation": ('PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup.animationList": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup.duration": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup.name": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup.position": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup.removeAnimation": ('PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup.setAnimations": ('typing.List[PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation]',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup.setName": ('str',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup.setPosition": ('float',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QBlendedClipAnimator:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QBlendedClipAnimator.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QBlendedClipAnimator.blendTree": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QBlendedClipAnimator.setBlendTree": ('PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipBlendNode',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QClipAnimator:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QClipAnimator.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QClipAnimator.clip": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QClipAnimator.setClip": ('PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimationClip',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QClock:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QClock.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QClock.playbackRate": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QClock.setPlaybackRate": ('float',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame:
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.InterpolationType:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.__init__": [(), ('PySide2.QtGui.QVector2D',), ('PySide2.QtGui.QVector2D', 'PySide2.QtGui.QVector2D', 'PySide2.QtGui.QVector2D')],
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.coordinates": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.interpolationType": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.leftControlPoint": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.rightControlPoint": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.setCoordinates": ('PySide2.QtGui.QVector2D',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.setInterpolationType": ('PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.InterpolationType',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.setLeftControlPoint": ('PySide2.QtGui.QVector2D',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.setRightControlPoint": ('PySide2.QtGui.QVector2D',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation:
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.RepeatMode:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.addKeyframe": ('PySide2.Qt3DCore.Qt3DCore.QTransform',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.easing": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.endMode": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.framePositions": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.keyframeList": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.removeKeyframe": ('PySide2.Qt3DCore.Qt3DCore.QTransform',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.setEasing": ('PySide2.QtCore.QEasingCurve',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.setEndMode": ('PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.RepeatMode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.setFramePositions": ('typing.List[float]',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.setKeyframes": ('typing.List[PySide2.Qt3DCore.Qt3DCore.QTransform]',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.setStartMode": ('PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.RepeatMode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.setTarget": ('PySide2.Qt3DCore.Qt3DCore.QTransform',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.setTargetName": ('str',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.startMode": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.target": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.targetName": (),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QLerpClipBlend:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QLerpClipBlend.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QLerpClipBlend.blendFactor": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QLerpClipBlend.endClip": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QLerpClipBlend.setBlendFactor": ('float',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QLerpClipBlend.setEndClip": ('PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipBlendNode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QLerpClipBlend.setStartClip": ('PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipBlendNode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QLerpClipBlend.startClip": (),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget.addAttribute": ('PySide2.Qt3DRender.Qt3DRender.QAttribute',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget.attributeList": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget.attributeNames": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget.fromGeometry": ('PySide2.Qt3DRender.Qt3DRender.QGeometry', 'typing.Sequence[str]'),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget.removeAttribute": ('PySide2.Qt3DRender.Qt3DRender.QAttribute',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget.setAttributes": ('typing.List[PySide2.Qt3DRender.Qt3DRender.QAttribute]',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation:
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.Method:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.addMorphTarget": ('PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.easing": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.getWeights": ('int',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.interpolator": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.method": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.morphTargetList": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.removeMorphTarget": ('PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.setEasing": ('PySide2.QtCore.QEasingCurve',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.setMethod": ('PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.Method',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.setMorphTargets": ('typing.List[PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget]',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.setTarget": ('PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.setTargetName": ('str',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.setTargetPositions": ('typing.List[float]',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.setWeights": ('int', 'typing.List[float]'),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.target": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.targetName": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.targetPositions": (),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QSkeletonMapping:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QSkeletonMapping.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QSkeletonMapping.setSkeleton": ('PySide2.Qt3DCore.Qt3DCore.QAbstractSkeleton',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QSkeletonMapping.skeleton": (),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.addMorphTarget": ('PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.interpolator": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.morphTargetList": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.removeMorphTarget": ('PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.setMorphTargets": ('typing.List[PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget]',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.setTarget": ('PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.setTargetName": ('str',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.setTargetPositions": ('typing.List[float]',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.target": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.targetName": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.targetPositions": (),
- }) if "PySide2.Qt3DAnimation" in sys.modules else None
-# Module PySide2.Qt3DExtras
-sig_dict.update({
-# class PySide2.Qt3DExtras.Qt3DExtras:
-# class PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController:
-# class PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.InputState:
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.InputState.__init__": [(), ('PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.InputState',)],
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.InputState.__copy__": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.acceleration": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.camera": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.deceleration": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.linearSpeed": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.lookSpeed": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.setAcceleration": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.setCamera": ('PySide2.Qt3DRender.Qt3DRender.QCamera',),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.setDeceleration": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.setLinearSpeed": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.setLookSpeed": ('float',),
-# class PySide2.Qt3DExtras.Qt3DExtras.QAbstractSpriteSheet:
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractSpriteSheet.currentIndex": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractSpriteSheet.setCurrentIndex": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractSpriteSheet.setTexture": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractSpriteSheet.texture": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractSpriteSheet.textureTransform": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry:
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.bottomRadius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.hasBottomEndcap": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.hasTopEndcap": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.indexAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.length": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.normalAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.positionAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.rings": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.setBottomRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.setHasBottomEndcap": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.setHasTopEndcap": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.setLength": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.setRings": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.setSlices": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.setTopRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.slices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.texCoordAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.topRadius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.updateIndices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.updateVertices": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QConeMesh:
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.bottomRadius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.hasBottomEndcap": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.hasTopEndcap": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.length": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.rings": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setBottomRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setFirstInstance": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setGeometry": ('PySide2.Qt3DRender.Qt3DRender.QGeometry',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setHasBottomEndcap": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setHasTopEndcap": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setIndexOffset": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setInstanceCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setLength": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setPrimitiveRestartEnabled": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setPrimitiveType": ('PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.PrimitiveType',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setRestartIndexValue": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setRings": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setSlices": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setTopRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setVertexCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.slices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.topRadius": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry:
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.indexAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.normalAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.positionAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.setXExtent": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.setXYMeshResolution": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.setXZMeshResolution": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.setYExtent": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.setYZMeshResolution": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.setZExtent": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.tangentAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.texCoordAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.updateIndices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.updateVertices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.xExtent": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.xyMeshResolution": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.xzMeshResolution": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.yExtent": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.yzMeshResolution": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.zExtent": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh:
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setFirstInstance": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setGeometry": ('PySide2.Qt3DRender.Qt3DRender.QGeometry',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setIndexOffset": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setInstanceCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setPrimitiveRestartEnabled": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setPrimitiveType": ('PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.PrimitiveType',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setRestartIndexValue": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setVertexCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setXExtent": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setXYMeshResolution": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setXZMeshResolution": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setYExtent": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setYZMeshResolution": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setZExtent": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.xExtent": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.xyMeshResolution": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.xzMeshResolution": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.yExtent": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.yzMeshResolution": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.zExtent": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry:
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.indexAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.length": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.normalAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.positionAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.radius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.rings": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.setLength": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.setRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.setRings": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.setSlices": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.slices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.texCoordAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.updateIndices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.updateVertices": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh:
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.length": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.radius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.rings": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setFirstInstance": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setGeometry": ('PySide2.Qt3DRender.Qt3DRender.QGeometry',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setIndexOffset": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setInstanceCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setLength": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setPrimitiveRestartEnabled": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setPrimitiveType": ('PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.PrimitiveType',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setRestartIndexValue": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setRings": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setSlices": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setVertexCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.slices": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.ambient": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.diffuse": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.setAmbient": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.setDiffuse": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.setShininess": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.setSpecular": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.setTextureScale": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.shininess": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.specular": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.textureScale": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.ambient": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.diffuse": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.setAmbient": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.setDiffuse": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.setShininess": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.setSpecular": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.setTextureScale": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.shininess": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.specular": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.textureScale": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.ambient": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.diffuse": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.isAlphaBlendingEnabled": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.normal": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.setAlphaBlendingEnabled": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.setAmbient": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.setDiffuse": ('typing.Any',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.setNormal": ('typing.Any',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.setShininess": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.setSpecular": ('typing.Any',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.setTextureScale": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.shininess": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.specular": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.textureScale": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry:
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry.extrusionLength": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry.font": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry.indexAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry.normalAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry.positionAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry.setDepth": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry.setText": ('str',),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry.text": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextMesh:
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextMesh.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextMesh.depth": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextMesh.font": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextMesh.setDepth": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextMesh.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextMesh.setText": ('str',),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextMesh.text": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QFirstPersonCameraController:
- "PySide2.Qt3DExtras.Qt3DExtras.QFirstPersonCameraController.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer:
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.buffersToClear": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.camera": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.clearColor": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.externalRenderTargetSize": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.gamma": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.isFrustumCullingEnabled": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.setBuffersToClear": ('PySide2.Qt3DRender.Qt3DRender.QClearBuffers.BufferType',),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.setCamera": ('PySide2.Qt3DCore.Qt3DCore.QEntity',),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.setClearColor": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.setExternalRenderTargetSize": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.setFrustumCullingEnabled": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.setGamma": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.setSurface": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.setViewportRect": ('PySide2.QtCore.QRectF',),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.surface": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.viewportRect": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.alpha": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.beta": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.cool": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.diffuse": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.setAlpha": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.setBeta": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.setCool": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.setDiffuse": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.setShininess": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.setSpecular": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.setWarm": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.shininess": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.specular": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.warm": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.ambientOcclusion": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.baseColor": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.metalness": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.normal": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.roughness": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.setAmbientOcclusion": ('typing.Any',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.setBaseColor": ('typing.Any',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.setMetalness": ('typing.Any',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.setNormal": ('typing.Any',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.setRoughness": ('typing.Any',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.setTextureScale": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.textureScale": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.ambient": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.diffuse": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.interpolator": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.setAmbient": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.setDiffuse": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.setInterpolator": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.setShininess": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.setSpecular": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.shininess": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.specular": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.ambient": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.diffuse": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.normal": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.setAmbient": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.setDiffuse": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.setNormal": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.setShininess": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.setSpecular": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.setTextureScale": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.shininess": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.specular": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.textureScale": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.ambient": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.diffuse": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.normal": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.setAmbient": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.setDiffuse": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.setNormal": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.setShininess": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.setSpecular": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.setTextureScale": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.shininess": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.specular": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.textureScale": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QOrbitCameraController:
- "PySide2.Qt3DExtras.Qt3DExtras.QOrbitCameraController.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QOrbitCameraController.setZoomInLimit": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QOrbitCameraController.zoomInLimit": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QPerVertexColorMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QPerVertexColorMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.alpha": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.ambient": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.blendFunctionArg": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.destinationAlphaArg": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.destinationRgbArg": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.diffuse": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.setAlpha": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.setAmbient": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.setBlendFunctionArg": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquation.BlendFunction',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.setDestinationAlphaArg": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.setDestinationRgbArg": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.setDiffuse": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.setShininess": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.setSourceAlphaArg": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.setSourceRgbArg": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.setSpecular": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.shininess": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.sourceAlphaArg": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.sourceRgbArg": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.specular": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QPhongMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongMaterial.ambient": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongMaterial.diffuse": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongMaterial.setAmbient": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongMaterial.setDiffuse": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongMaterial.setShininess": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongMaterial.setSpecular": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongMaterial.shininess": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongMaterial.specular": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry:
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.height": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.indexAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.mirrored": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.normalAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.positionAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.resolution": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.setHeight": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.setMirrored": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.setResolution": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.setWidth": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.tangentAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.texCoordAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.updateIndices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.updateVertices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.width": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh:
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.height": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.meshResolution": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.mirrored": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setFirstInstance": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setGeometry": ('PySide2.Qt3DRender.Qt3DRender.QGeometry',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setHeight": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setIndexOffset": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setInstanceCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setMeshResolution": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setMirrored": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setPrimitiveRestartEnabled": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setPrimitiveType": ('PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.PrimitiveType',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setRestartIndexValue": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setVertexCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setWidth": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.width": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QSkyboxEntity:
- "PySide2.Qt3DExtras.Qt3DExtras.QSkyboxEntity.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSkyboxEntity.baseName": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSkyboxEntity.extension": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSkyboxEntity.isGammaCorrectEnabled": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSkyboxEntity.setBaseName": ('str',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSkyboxEntity.setExtension": ('str',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSkyboxEntity.setGammaCorrectEnabled": ('bool',),
-# class PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry:
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.generateTangents": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.indexAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.normalAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.positionAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.radius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.rings": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.setGenerateTangents": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.setRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.setRings": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.setSlices": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.slices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.tangentAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.texCoordAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.updateIndices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.updateVertices": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh:
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.generateTangents": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.radius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.rings": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setFirstInstance": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setGenerateTangents": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setGeometry": ('PySide2.Qt3DRender.Qt3DRender.QGeometry',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setIndexOffset": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setPrimitiveRestartEnabled": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setPrimitiveType": ('PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.PrimitiveType',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setRestartIndexValue": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setRings": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setSlices": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setVertexCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.slices": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QSpriteGrid:
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteGrid.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteGrid.columns": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteGrid.rows": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteGrid.setColumns": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteGrid.setRows": ('int',),
-# class PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheet:
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheet.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheet.addSprite": [('PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem',), ('int', 'int', 'int', 'int')],
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheet.removeSprite": ('PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheet.setSprites": ('typing.List[PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem]',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheet.sprites": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem:
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem.height": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem.setHeight": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem.setWidth": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem.setX": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem.setY": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem.width": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem.x": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem.y": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity:
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.color": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.font": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.height": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.setHeight": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.setText": ('str',),
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.setWidth": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.text": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.width": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QTextureMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QTextureMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTextureMaterial.isAlphaBlendingEnabled": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTextureMaterial.setAlphaBlendingEnabled": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTextureMaterial.setTexture": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTextureMaterial.setTextureOffset": ('PySide2.QtGui.QVector2D',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTextureMaterial.setTextureTransform": ('PySide2.QtGui.QMatrix3x3',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTextureMaterial.texture": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTextureMaterial.textureOffset": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTextureMaterial.textureTransform": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry:
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.indexAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.minorRadius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.normalAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.positionAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.radius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.rings": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.setMinorRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.setRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.setRings": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.setSlices": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.slices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.texCoordAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.updateIndices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.updateVertices": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh:
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.minorRadius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.radius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.rings": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setFirstInstance": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setGeometry": ('PySide2.Qt3DRender.Qt3DRender.QGeometry',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setIndexOffset": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setInstanceCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setMinorRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setPrimitiveRestartEnabled": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setPrimitiveType": ('PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.PrimitiveType',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setRestartIndexValue": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setRings": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setSlices": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setVertexCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.slices": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow:
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.__init__": ('PySide2.QtGui.QScreen',),
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.activeFrameGraph": (),
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.camera": (),
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.defaultFrameGraph": (),
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.event": ('PySide2.QtCore.QEvent',),
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.registerAspect": [('PySide2.Qt3DCore.Qt3DCore.QAbstractAspect',), ('str',)],
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.renderSettings": (),
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.setActiveFrameGraph": ('PySide2.Qt3DRender.Qt3DRender.QFrameGraphNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.setRootEntity": ('PySide2.Qt3DCore.Qt3DCore.QEntity',),
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.showEvent": ('PySide2.QtGui.QShowEvent',),
- }) if "PySide2.Qt3DExtras" in sys.modules else None
-# Module testbinding
-sig_dict.update({
-# class testbinding.Enum1:
-# class testbinding.IntValue:
- "testbinding.IntValue.__init__": [(), ('int',), ('testbinding.IntValue',)],
- "testbinding.IntValue.__copy__": (),
-# class testbinding.PySideCPP:
-# class testbinding.PySideCPP.TestObject2WithNamespace:
- "testbinding.PySideCPP.TestObject2WithNamespace.__init__": ('PySide2.QtCore.QObject',),
- "testbinding.PySideCPP.TestObject2WithNamespace.__repr__": (),
- "testbinding.PySideCPP.TestObject2WithNamespace.name": (),
-# class testbinding.PySideCPP.TestObjectWithNamespace:
- "testbinding.PySideCPP.TestObjectWithNamespace.__init__": ('PySide2.QtCore.QObject',),
- "testbinding.PySideCPP.TestObjectWithNamespace.callSignal": ('testbinding.PySideCPP.TestObjectWithNamespace',),
- "testbinding.PySideCPP.TestObjectWithNamespace.callSignalWithNamespace": ('testbinding.PySideCPP.TestObjectWithNamespace',),
- "testbinding.PySideCPP.TestObjectWithNamespace.callSignalWithTypedef": ('int',),
- "testbinding.PySideCPP.TestObjectWithNamespace.name": (),
-# class testbinding.TestObject:
- "testbinding.TestObject.__init__": ('int', 'PySide2.QtCore.QObject'),
- "testbinding.TestObject.addChild": ('PySide2.QtCore.QObject',),
- "testbinding.TestObject.checkType": ('typing.Any',),
- "testbinding.TestObject.createApp": (),
- "testbinding.TestObject.emitIdValueSignal": (),
- "testbinding.TestObject.emitSignalWithDefaultValue_bool": (),
- "testbinding.TestObject.emitSignalWithDefaultValue_void": (),
- "testbinding.TestObject.emitSignalWithTypedefValue": ('int',),
- "testbinding.TestObject.emitStaticMethodDoubleSignal": (),
- "testbinding.TestObject.idValue": (),
- "testbinding.TestObject.staticMethodDouble": ('int',),
-# class testbinding.TestObjectWithoutNamespace:
-# class testbinding.TestObjectWithoutNamespace.Enum2:
- "testbinding.TestObjectWithoutNamespace.__init__": ('PySide2.QtCore.QObject',),
- "testbinding.TestObjectWithoutNamespace.callSignal": ('testbinding.PySideCPP2.TestObjectWithoutNamespace',),
- "testbinding.TestObjectWithoutNamespace.callSignalWithNamespace": ('testbinding.PySideCPP2.TestObjectWithoutNamespace',),
- "testbinding.TestObjectWithoutNamespace.callSignalWithTypedef": ('int',),
- "testbinding.TestObjectWithoutNamespace.name": (),
-# class testbinding.TestView:
- "testbinding.TestView.__init__": ('PySide2.QtCore.QAbstractListModel', 'PySide2.QtCore.QObject'),
- "testbinding.TestView.getData": (),
- "testbinding.TestView.getEditorWidgetFromItemDelegate": (),
- "testbinding.TestView.model": (),
- "testbinding.TestView.setItemDelegate": ('PySide2.QtWidgets.QAbstractItemDelegate',),
- "testbinding.TestView.getHiddenObject": (),
- }) if "testbinding" in sys.modules else None
-# Module Shiboken
-sig_dict.update({
-# class Shiboken.VoidPtr:
- }) if "Shiboken" in sys.modules else None
-# Module minimal
-sig_dict.update({
-# class minimal.ListUser:
- "minimal.ListUser.__init__": [(), ('minimal.ListUser',)],
- "minimal.ListUser.__copy__": (),
- "minimal.ListUser.callCreateIntList": ('int',),
- "minimal.ListUser.callCreateListOfIntLists": ('int',),
- "minimal.ListUser.callCreateMinBoolList": ('bool', 'bool'),
- "minimal.ListUser.callCreateObjList": ('minimal.Obj', 'minimal.Obj'),
- "minimal.ListUser.callCreateValList": ('int',),
- "minimal.ListUser.callOredMinBoolList": ('typing.List[bool]',),
- "minimal.ListUser.callSumIntList": ('typing.List[int]',),
- "minimal.ListUser.callSumListOfIntLists": ('typing.List[typing.List]',),
- "minimal.ListUser.callSumObjList": ('typing.List[minimal.Obj]',),
- "minimal.ListUser.callSumValList": ('typing.List[minimal.Val]',),
- "minimal.ListUser.createIntList": ('int',),
- "minimal.ListUser.createListOfIntLists": ('int',),
- "minimal.ListUser.createMinBoolList": ('bool', 'bool'),
- "minimal.ListUser.createObjList": ('minimal.Obj', 'minimal.Obj'),
- "minimal.ListUser.createValList": ('int',),
- "minimal.ListUser.oredMinBoolList": ('typing.List[bool]',),
- "minimal.ListUser.sumIntList": ('typing.List[int]',),
- "minimal.ListUser.sumListOfIntLists": ('typing.List[typing.List]',),
- "minimal.ListUser.sumObjList": ('typing.List[minimal.Obj]',),
- "minimal.ListUser.sumValList": ('typing.List[minimal.Val]',),
-# class minimal.MinBoolUser:
- "minimal.MinBoolUser.__init__": [(), ('minimal.MinBoolUser',)],
- "minimal.MinBoolUser.__copy__": (),
- "minimal.MinBoolUser.callInvertedMinBool": (),
- "minimal.MinBoolUser.invertedMinBool": (),
- "minimal.MinBoolUser.minBool": (),
- "minimal.MinBoolUser.setMinBool": ('bool',),
-# class minimal.Obj:
- "minimal.Obj.__init__": ('int',),
- "minimal.Obj.callPassObjectType": ('minimal.Obj',),
- "minimal.Obj.callPassObjectTypeReference": ('minimal.Obj',),
- "minimal.Obj.callVirtualMethod": ('int',),
- "minimal.Obj.objId": (),
- "minimal.Obj.passObjectType": ('minimal.Obj',),
- "minimal.Obj.passObjectTypeReference": ('minimal.Obj',),
- "minimal.Obj.setObjId": ('int',),
- "minimal.Obj.virtualMethod": ('int',),
-# class minimal.Val:
-# class minimal.Val.ValEnum:
- "minimal.Val.__init__": [('int',), ('minimal.Val',)],
- "minimal.Val.__copy__": (),
- "minimal.Val.callPassValueType": ('minimal.Val',),
- "minimal.Val.callPassValueTypePointer": ('minimal.Val',),
- "minimal.Val.callPassValueTypeReference": ('minimal.Val',),
- "minimal.Val.oneOrTheOtherEnumValue": ('minimal.Val.ValEnum',),
- "minimal.Val.passValueType": ('minimal.Val',),
- "minimal.Val.passValueTypePointer": ('minimal.Val',),
- "minimal.Val.passValueTypeReference": ('minimal.Val',),
- "minimal.Val.setValId": ('int',),
- "minimal.Val.valId": (),
- "minimal.Val.arrayFunc": ('typing.List[int]',),
- "minimal.Val.arrayFuncInt": ('typing.List[int]',),
- "minimal.Val.arrayFuncIntReturn": ('int',),
- "minimal.Val.arrayFuncIntReturnTypedef": ('int',),
- "minimal.Val.arrayFuncIntTypedef": ('typing.List[int]',),
- "minimal.Val.arrayFuncReturn": ('int',),
- "minimal.Val.arrayFuncReturnTypedef": ('int',),
- "minimal.Val.arrayFuncTypedef": ('typing.List[int]',),
- }) if "minimal" in sys.modules else None
-# Module sample
-sig_dict.update({
-# class sample.Abstract:
-# class sample.Abstract.PrintFormat:
-# class sample.Abstract.Type:
- "sample.Abstract.__init__": ('int',),
- "sample.Abstract.callPureVirtual": (),
- "sample.Abstract.callUnpureVirtual": (),
- "sample.Abstract.callVirtualGettingEnum": ('sample.Abstract.PrintFormat',),
- "sample.Abstract.className": (),
- "sample.Abstract.createObject": (),
- "sample.Abstract.getObjectId": ('sample.Abstract',),
- "sample.Abstract.id_": (),
- "sample.Abstract.pureVirtual": (),
- "sample.Abstract.pureVirtualReturningVoidPtr": (),
- "sample.Abstract.returnAnEnum": (),
- "sample.Abstract.show": ('sample.Abstract.PrintFormat',),
- "sample.Abstract.type": (),
- "sample.Abstract.unpureVirtual": (),
- "sample.Abstract.virtualGettingAEnum": ('sample.Abstract.PrintFormat',),
-# class sample.AbstractModifications:
- "sample.AbstractModifications.__init__": (),
- "sample.AbstractModifications.invert": ('bool',),
- "sample.AbstractModifications.pointlessPureVirtualMethod": (),
-# class sample.ArrayModifyTest:
- "sample.ArrayModifyTest.__init__": [(), ('sample.ArrayModifyTest',)],
- "sample.ArrayModifyTest.__copy__": (),
- "sample.ArrayModifyTest.sumIntArray": ('int', 'typing.Sequence[int]'),
-# class sample.Base1:
- "sample.Base1.__init__": (),
- "sample.Base1.base1Method": (),
- "sample.Base1.publicMethod": (),
-# class sample.Base2:
- "sample.Base2.__init__": (),
- "sample.Base2.base2Method": (),
-# class sample.Base3:
- "sample.Base3.__init__": ('int',),
- "sample.Base3.base3Method": (),
-# class sample.Base4:
- "sample.Base4.__init__": (),
- "sample.Base4.base4Method": (),
-# class sample.Base5:
- "sample.Base5.__init__": (),
- "sample.Base5.base5Method": (),
-# class sample.Base6:
- "sample.Base6.__init__": (),
- "sample.Base6.base6Method": (),
-# class sample.BlackBox:
- "sample.BlackBox.__init__": [(), ('sample.BlackBox',)],
- "sample.BlackBox.__copy__": (),
- "sample.BlackBox.disposeObjectType": ('int',),
- "sample.BlackBox.disposePoint": ('int',),
- "sample.BlackBox.keepObjectType": ('object',),
- "sample.BlackBox.keepPoint": ('typing.Tuple[float, float]',),
- "sample.BlackBox.objects": (),
- "sample.BlackBox.points": (),
- "sample.BlackBox.referenceToObjectPointer": ('object',),
- "sample.BlackBox.referenceToValuePointer": ('typing.Tuple[float, float]',),
- "sample.BlackBox.retrieveObjectType": ('int',),
- "sample.BlackBox.retrievePoint": ('int',),
-# class sample.Bucket:
- "sample.Bucket.__init__": (),
- "sample.Bucket.callVirtualBlockerMethodButYouDontKnowThis": (),
- "sample.Bucket.empty": (),
- "sample.Bucket.lock": (),
- "sample.Bucket.locked": (),
- "sample.Bucket.pop": (),
- "sample.Bucket.push": ('int',),
- "sample.Bucket.unlock": (),
- "sample.Bucket.virtualBlockerMethod": (),
-# class sample.ByteArray:
- "sample.ByteArray.__init__": [(), ('int',), ('sample.ByteArray',)],
- "sample.ByteArray.__add__": [('int',), ('sample.ByteArray',), ('str',), ('unicode',)],
- "sample.ByteArray.__copy__": (),
- "sample.ByteArray.__iadd__": [('int',), ('sample.ByteArray',)],
- "sample.ByteArray.__repr__": (),
- "sample.ByteArray.__str__": (),
- "sample.ByteArray.append": [('int',), ('sample.ByteArray',)],
- "sample.ByteArray.at": ('int',),
- "sample.ByteArray.data": (),
- "sample.ByteArray.size": (),
-# class sample.CVListUser:
- "sample.CVListUser.__init__": [(), ('sample.CVListUser',)],
- "sample.CVListUser.__copy__": (),
- "sample.CVListUser.consume": ('typing.List[sample.CVValueType]',),
- "sample.CVListUser.produce": (),
-# class sample.CVValueType:
- "sample.CVValueType.__copy__": (),
-# class sample.ClassWithFunctionPointer:
- "sample.ClassWithFunctionPointer.__init__": [(), ('sample.ClassWithFunctionPointer',)],
- "sample.ClassWithFunctionPointer.__copy__": (),
- "sample.ClassWithFunctionPointer.doNothing": ('int',),
-# class sample.Collector:
- "sample.Collector.__init__": (),
- "sample.Collector.__lshift__": [('Missing("sample.ObjectType.Identifier")',), ('object',), ('sample.IntWrapper',)],
- "sample.Collector.clear": (),
- "sample.Collector.items": (),
- "sample.Collector.size": (),
-# class sample.Color:
- "sample.Color.__init__": [(), ('int',), ('sample.Color',), ('sample.SampleNamespace.InValue',)],
- "sample.Color.__copy__": (),
- "sample.Color.isNull": (),
-# class sample.CtorConvRule:
- "sample.CtorConvRule.__init__": [('int',), ('sample.CtorConvRule',)],
- "sample.CtorConvRule.__copy__": (),
- "sample.CtorConvRule.dummyVirtualMethod": (),
- "sample.CtorConvRule.value": (),
-# class sample.Data:
-# class sample.Data.Field:
- "sample.Data.__init__": [('sample.Data',), ('sample.Data.Field', 'str')],
- "sample.Data.__and__": ('sample.Union',),
- "sample.Data.__copy__": (),
- "sample.Data.field": (),
- "sample.Data.value": (),
-# class sample.Derived:
-# class sample.Derived.OtherOverloadedFuncEnum:
-# class sample.Derived.SomeInnerClass:
- "sample.Derived.SomeInnerClass.__init__": [(), ('sample.Derived.SomeInnerClass',)],
- "sample.Derived.SomeInnerClass.__add__": ('sample.Derived.SomeInnerClass',),
- "sample.Derived.SomeInnerClass.__copy__": (),
- "sample.Derived.SomeInnerClass.uselessMethod": (),
- "sample.Derived.__init__": ('int',),
- "sample.Derived.className": (),
- "sample.Derived.createObject": (),
- "sample.Derived.defaultValue": ('int',),
- "sample.Derived.getClassName": (),
- "sample.Derived.otherOverloaded": [('int', 'float'), ('int', 'int', 'bool', 'float')],
- "sample.Derived.overloaded": [('float',), ('int', 'int')],
- "sample.Derived.pureVirtual": (),
- "sample.Derived.pureVirtualReturningVoidPtr": (),
- "sample.Derived.returnAnEnum": (),
- "sample.Derived.returnMyParameter": ('sample.Derived.SomeInnerClass',),
- "sample.Derived.singleArgument": ('bool',),
- "sample.Derived.triggerAnotherImpossibleTypeDiscovery": (),
- "sample.Derived.triggerImpossibleTypeDiscovery": (),
- "sample.Derived.type": (),
- "sample.Derived.unpureVirtual": (),
-# class sample.Echo:
- "sample.Echo.__init__": [(), ('sample.Echo',)],
- "sample.Echo.__call__": ('sample.Str', 'int'),
- "sample.Echo.__copy__": (),
- "sample.Echo.__lshift__": [('int',), ('object',), ('sample.Str',)],
- "sample.Echo.doNothingWithConstBool": ('bool',),
- "sample.Echo.echo": ('str',),
- "sample.Echo.methodWithNamedArg": ('sample.Str',),
-# class sample.EnumOnNamespace:
-# class sample.Event:
-# class sample.Event.EventType:
-# class sample.Event.EventTypeClass:
- "sample.Event.__init__": [('sample.Event',), ('sample.Event.EventType',)],
- "sample.Event.__copy__": (),
- "sample.Event.eventType": (),
- "sample.Event.setEventType": ('sample.Event.EventType',),
- "sample.Event.setEventTypeByConstRef": ('sample.Event.EventType',),
-# class sample.ExceptionTest:
- "sample.ExceptionTest.__init__": (),
- "sample.ExceptionTest.intThrowInt": ('bool',),
- "sample.ExceptionTest.intThrowStdException": ('bool',),
- "sample.ExceptionTest.voidThrowInt": ('bool',),
- "sample.ExceptionTest.voidThrowStdException": ('bool',),
-# class sample.Expression:
- "sample.Expression.__init__": [('int',), ('sample.Expression',)],
- "sample.Expression.__add__": ('sample.Expression',),
- "sample.Expression.__copy__": (),
- "sample.Expression.__sub__": ('sample.Expression',),
- "sample.Expression.toString": (),
-# class sample.Filter:
- "sample.Filter.__init__": [(), ('sample.Filter',)],
- "sample.Filter.__copy__": (),
-# class sample.FriendOfOnlyCopy:
- "sample.FriendOfOnlyCopy.__init__": [(), ('sample.FriendOfOnlyCopy',)],
- "sample.FriendOfOnlyCopy.__copy__": (),
- "sample.FriendOfOnlyCopy.createListOfOnlyCopy": ('int',),
- "sample.FriendOfOnlyCopy.createOnlyCopy": ('int',),
-# class sample.GlobalEnum:
-# class sample.GlobalOverloadFuncEnum:
-# class sample.HandleHolder:
- "sample.HandleHolder.__init__": ('int',),
- "sample.HandleHolder.compare": ('sample.HandleHolder',),
- "sample.HandleHolder.compare2": ('sample.HandleHolder',),
- "sample.HandleHolder.createHandle": (),
- "sample.HandleHolder.handle": (),
- "sample.HandleHolder.handle2": (),
- "sample.HandleHolder.set": ('int',),
-# class sample.ImplicitBase:
- "sample.ImplicitBase.__init__": [(), ('sample.ImplicitBase',), ('sample.ImplicitTarget',)],
- "sample.ImplicitBase.__copy__": (),
-# class sample.ImplicitConv:
-# class sample.ImplicitConv.CtorEnum:
-# class sample.ImplicitConv.ICOverloadedFuncEnum:
- "sample.ImplicitConv.__init__": [(), ('None',), ('float', 'bool'), ('int',), ('object',), ('sample.ImplicitConv',), ('sample.ImplicitConv.CtorEnum',)],
- "sample.ImplicitConv.__copy__": (),
- "sample.ImplicitConv.ctorEnum": (),
- "sample.ImplicitConv.implicitConvCommon": ('sample.ImplicitConv',),
- "sample.ImplicitConv.implicitConvDefault": ('sample.ImplicitConv',),
- "sample.ImplicitConv.implicitConvOverloading": [('int',), ('sample.ImplicitConv', 'bool'), ('sample.ImplicitConv', 'int'), ('sample.ImplicitConv.CtorEnum',)],
- "sample.ImplicitConv.objId": (),
- "sample.ImplicitConv.value": (),
-# class sample.ImplicitTarget:
- "sample.ImplicitTarget.__init__": [(), ('sample.ImplicitTarget',)],
- "sample.ImplicitTarget.__copy__": (),
-# class sample.InjectCode:
- "sample.InjectCode.__init__": [(), ('sample.InjectCode',)],
- "sample.InjectCode.__copy__": (),
- "sample.InjectCode.arrayMethod": ('int',),
- "sample.InjectCode.callArrayMethod": ('int',),
- "sample.InjectCode.overloadedMethod": [('int', 'bool'), ('int', 'float'), ('int', 'typing.List[str]')],
- "sample.InjectCode.simpleMethod1": ('int', 'int'),
- "sample.InjectCode.simpleMethod2": (),
- "sample.InjectCode.simpleMethod3": ('int', 'typing.List[str]'),
- "sample.InjectCode.sumArrayAndLength": (),
- "sample.InjectCode.virtualMethod": ('int',),
-# class sample.IntArray2:
- "sample.IntArray2.__init__": [('int',), ('sample.IntArray2',), ('typing.Sequence[int]',)],
- "sample.IntArray2.__copy__": (),
- "sample.IntArray2.sum": (),
-# class sample.IntArray3:
- "sample.IntArray3.__init__": [('int',), ('sample.IntArray3',), ('typing.Sequence[int]',)],
- "sample.IntArray3.__copy__": (),
- "sample.IntArray3.sum": (),
-# class sample.IntList:
-# class sample.IntList.CtorEnum:
- "sample.IntList.__init__": [(), ('int',), ('sample.IntList',), ('typing.Sequence[int]',)],
- "sample.IntList.__copy__": (),
- "sample.IntList.append": ('int',),
- "sample.IntList.constructorUsed": (),
-# class sample.IntWrapper:
- "sample.IntWrapper.__init__": [('int',), ('sample.IntWrapper',)],
- "sample.IntWrapper.__copy__": (),
-# class sample.Intersection:
- "sample.Intersection.__init__": [(), ('sample.Data',), ('sample.Intersection',), ('sample.Union',)],
- "sample.Intersection.__and__": ('sample.Intersection',),
- "sample.Intersection.__copy__": (),
- "sample.Intersection.addFilter": ('sample.Filter',),
- "sample.Intersection.filters": (),
-# class sample.ListUser:
-# class sample.ListUser.ListOfSomething:
- "sample.ListUser.__init__": [(), ('sample.ListUser',)],
- "sample.ListUser.__copy__": (),
- "sample.ListUser.callCreateList": (),
- "sample.ListUser.createComplexList": ('complex', 'complex'),
- "sample.ListUser.createList": (),
- "sample.ListUser.getList": (),
- "sample.ListUser.listOfPoints": [('typing.List[sample.PointF]',), ('typing.List[typing.Tuple]',)],
- "sample.ListUser.multiplyPointList": ('typing.List[typing.Tuple]', 'float'),
- "sample.ListUser.setList": ('typing.List[int]',),
- "sample.ListUser.sumList": [('typing.List[float]',), ('typing.List[int]',)],
-# class sample.MDerived1:
- "sample.MDerived1.__init__": (),
- "sample.MDerived1.base1Method": (),
- "sample.MDerived1.base2Method": (),
- "sample.MDerived1.castToBase1": (),
- "sample.MDerived1.castToBase2": (),
- "sample.MDerived1.mderived1Method": (),
- "sample.MDerived1.publicMethod": (),
- "sample.MDerived1.transformFromBase1": ('sample.Base1',),
- "sample.MDerived1.transformFromBase2": ('sample.Base2',),
-# class sample.MDerived2:
- "sample.MDerived2.__init__": (),
- "sample.MDerived2.base4Method": (),
- "sample.MDerived2.castToBase3": (),
- "sample.MDerived2.castToBase4": (),
- "sample.MDerived2.castToBase5": (),
- "sample.MDerived2.castToBase6": (),
- "sample.MDerived2.mderived2Method": (),
-# class sample.MDerived3:
- "sample.MDerived3.__init__": (),
- "sample.MDerived3.castToBase3": (),
- "sample.MDerived3.castToMDerived1": (),
- "sample.MDerived3.castToMDerived2": (),
- "sample.MDerived3.mderived3Method": (),
-# class sample.MDerived4:
- "sample.MDerived4.__init__": (),
- "sample.MDerived4.castToBase3": (),
- "sample.MDerived4.castToBase4": (),
- "sample.MDerived4.justDummyMethod": (),
- "sample.MDerived4.mderived4Method": (),
-# class sample.MDerived5:
- "sample.MDerived5.__init__": (),
- "sample.MDerived5.castToBase3": (),
- "sample.MDerived5.castToBase4": (),
- "sample.MDerived5.mderived5Method": (),
-# class sample.MapUser:
- "sample.MapUser.__init__": [(), ('sample.MapUser',)],
- "sample.MapUser.__copy__": (),
- "sample.MapUser.callCreateMap": (),
- "sample.MapUser.createMap": (),
- "sample.MapUser.foo": (),
- "sample.MapUser.getMap": (),
- "sample.MapUser.passMapIntValueType": ('typing.Dict[int, sample.ByteArray]',),
- "sample.MapUser.pointerToMap": ('typing.Dict[str, str]',),
- "sample.MapUser.referenceToMap": ('typing.Dict[str, str]',),
- "sample.MapUser.setMap": ('typing.Dict[str, typing.List]',),
- "sample.MapUser.showMap": ('typing.Dict[str, int]',),
-# class sample.ModelIndex:
- "sample.ModelIndex.__init__": [(), ('sample.ModelIndex',)],
- "sample.ModelIndex.__copy__": (),
- "sample.ModelIndex.getValue": ('sample.ModelIndex',),
- "sample.ModelIndex.setValue": ('int',),
- "sample.ModelIndex.value": (),
-# class sample.Modifications:
-# class sample.Modifications.OverloadedModFunc:
-# class sample.Modifications.TestEnum:
- "sample.Modifications.__init__": (),
- "sample.Modifications.argRemoval0": [('int', 'bool', 'int', 'bool'), ('int', 'bool', 'int', 'int')],
- "sample.Modifications.argRemoval1": [('int', 'bool', 'int', 'bool'), ('int', 'bool', 'typing.Tuple[float, float]', 'typing.Tuple[float, float]', 'int')],
- "sample.Modifications.argRemoval2": ('int', 'bool', 'typing.Tuple[float, float]', 'typing.Tuple[float, float]', 'int'),
- "sample.Modifications.argRemoval3": ('int', 'typing.Tuple[float, float]', 'bool', 'typing.Tuple[float, float]', 'int'),
- "sample.Modifications.argRemoval4": ('int', 'typing.Tuple[float, float]', 'bool', 'typing.Tuple[float, float]', 'int'),
- "sample.Modifications.argRemoval5": [('int', 'bool', 'int', 'bool'), ('int', 'bool', 'typing.Tuple[float, float]', 'typing.Tuple[float, float]', 'int')],
- "sample.Modifications.calculateArea": ('int', 'int'),
- "sample.Modifications.callDifferenceOfPointCoordinates": ('typing.Tuple[float, float]',),
- "sample.Modifications.defaultEnumValue": (),
- "sample.Modifications.differenceOfPointCoordinates": ('typing.Tuple[float, float]',),
- "sample.Modifications.doublePlus": ('int', 'int'),
- "sample.Modifications.enumValue": (),
- "sample.Modifications.getObject": (),
- "sample.Modifications.getSize": ('int', 'int'),
- "sample.Modifications.increment": ('int',),
- "sample.Modifications.invertBoolean": ('bool',),
- "sample.Modifications.multiplyPointCoordsPlusValue": ('typing.Tuple[float, float]', 'float'),
- "sample.Modifications.name": (),
- "sample.Modifications.nonConversionRuleForArgumentWithDefaultValue": ('object',),
- "sample.Modifications.over": ('int', 'bool', 'typing.Tuple[float, float]', 'typing.Tuple[float, float]'),
- "sample.Modifications.overloaded": [('int', 'bool', 'int', 'bool'), ('int', 'bool', 'int', 'float'), ('int', 'bool', 'int', 'int'), ('int', 'bool', 'int', 'typing.Tuple[float, float]')],
- "sample.Modifications.pointToPair": ('typing.Tuple[float, float]',),
- "sample.Modifications.power": ('int', 'int'),
- "sample.Modifications.setEnumValue": ('sample.Modifications.TestEnum',),
- "sample.Modifications.sumPointArray": ('int', 'typing.Sequence[typing.Tuple]'),
- "sample.Modifications.sumPointCoordinates": ('typing.Tuple[float, float]',),
- "sample.Modifications.timesTen": ('int',),
-# class sample.ModifiedConstructor:
- "sample.ModifiedConstructor.__init__": ('int',),
- "sample.ModifiedConstructor.retrieveValue": (),
-# class sample.NoImplicitConversion:
- "sample.NoImplicitConversion.__init__": [('int',), ('sample.NoImplicitConversion',)],
- "sample.NoImplicitConversion.__copy__": (),
- "sample.NoImplicitConversion.objId": (),
- "sample.NoImplicitConversion.receivesNoImplicitConversionByPointer": ('sample.NoImplicitConversion',),
- "sample.NoImplicitConversion.receivesNoImplicitConversionByReference": ('sample.NoImplicitConversion',),
- "sample.NoImplicitConversion.receivesNoImplicitConversionByValue": ('sample.NoImplicitConversion',),
-# class sample.NonDefaultCtor:
- "sample.NonDefaultCtor.__init__": [('int',), ('sample.NonDefaultCtor',)],
- "sample.NonDefaultCtor.__copy__": (),
- "sample.NonDefaultCtor.callReturnMyselfVirtual": (),
- "sample.NonDefaultCtor.returnMyself": [(), ('int',), ('int', 'sample.NonDefaultCtor')],
- "sample.NonDefaultCtor.returnMyselfVirtual": (),
- "sample.NonDefaultCtor.value": (),
-# class sample.ObjTypeReference:
- "sample.ObjTypeReference.__init__": [(), ('sample.ObjTypeReference',)],
- "sample.ObjTypeReference.justAPureVirtualFunc": ('sample.ObjTypeReference',),
- "sample.ObjTypeReference.returnMyFirstArg": ('sample.ObjTypeReference',),
- "sample.ObjTypeReference.returnMySecondArg": ('int', 'sample.ObjTypeReference'),
-# class sample.ObjectModel:
-# class sample.ObjectModel.MethodCalled:
- "sample.ObjectModel.__init__": ('object',),
- "sample.ObjectModel.data": (),
- "sample.ObjectModel.receivesObjectTypeFamily": [('object',), ('sample.ObjectModel',)],
- "sample.ObjectModel.setData": ('object',),
-# class sample.ObjectType:
- "sample.ObjectType.__init__": ('object',),
- "sample.ObjectType.callId": (),
- "sample.ObjectType.callInvalidateEvent": ('sample.Event',),
- "sample.ObjectType.callVirtualCreateChild": (),
- "sample.ObjectType.callWithEnum": [('sample.Str', 'int'), ('sample.Str', 'sample.Event.EventType', 'int')],
- "sample.ObjectType.causeEvent": ('sample.Event.EventType',),
- "sample.ObjectType.children": (),
- "sample.ObjectType.create": (),
- "sample.ObjectType.createChild": ('object',),
- "sample.ObjectType.createObjectType": (),
- "sample.ObjectType.createWithChild": (),
- "sample.ObjectType.deprecatedFunction": (),
- "sample.ObjectType.destroyCppParent": (),
- "sample.ObjectType.event": ('sample.Event',),
- "sample.ObjectType.findChild": ('sample.Str',),
- "sample.ObjectType.getCppParent": (),
- "sample.ObjectType.identifier": (),
- "sample.ObjectType.invalidateEvent": ('sample.Event',),
- "sample.ObjectType.isLayoutType": (),
- "sample.ObjectType.isPython": (),
- "sample.ObjectType.killChild": ('sample.Str',),
- "sample.ObjectType.layout": (),
- "sample.ObjectType.nextInFocusChain": (),
- "sample.ObjectType.objectName": (),
- "sample.ObjectType.parent": (),
- "sample.ObjectType.processEvent": ('typing.List[object]', 'sample.Event'),
- "sample.ObjectType.removeChild": ('object',),
- "sample.ObjectType.setLayout": ('sample.ObjectTypeLayout',),
- "sample.ObjectType.setNullObject": ('None',),
- "sample.ObjectType.setObject": ('object',),
- "sample.ObjectType.setObjectName": ('sample.Str',),
- "sample.ObjectType.setObjectNameWithSize": [('sample.Str', 'int'), ('str', 'int', 'sample.Str')],
- "sample.ObjectType.setObjectSplittedName": ('str', 'sample.Str', 'sample.Str'),
- "sample.ObjectType.setParent": ('object',),
- "sample.ObjectType.takeChild": [('object',), ('sample.Str',)],
-# class sample.ObjectTypeByValue:
- "sample.ObjectTypeByValue.__init__": (),
- "sample.ObjectTypeByValue.acceptKindOfMeAsValue": ('sample.ObjectTypeByValue',),
- "sample.ObjectTypeByValue.acceptListOfObjectTypeByValue": ('typing.List[sample.ObjectTypeByValue]',),
- "sample.ObjectTypeByValue.returnSomeKindOfMe": (),
-# class sample.ObjectTypeDerived:
- "sample.ObjectTypeDerived.__init__": (),
- "sample.ObjectTypeDerived.event": ('sample.Event',),
-# class sample.ObjectTypeHolder:
- "sample.ObjectTypeHolder.__init__": [('sample.ObjectTypeHolder',), ('str',)],
- "sample.ObjectTypeHolder.__copy__": (),
- "sample.ObjectTypeHolder.callPassObjectTypeAsReference": (),
- "sample.ObjectTypeHolder.getObjecType": (),
- "sample.ObjectTypeHolder.passObjectTypeAsReference": ('object',),
-# class sample.ObjectTypeLayout:
- "sample.ObjectTypeLayout.__init__": (),
- "sample.ObjectTypeLayout.addObject": ('object',),
- "sample.ObjectTypeLayout.create": (),
- "sample.ObjectTypeLayout.isLayoutType": (),
- "sample.ObjectTypeLayout.objects": (),
- "sample.ObjectTypeLayout.takeChild": [('object',), ('sample.Str',)],
-# class sample.ObjectTypeOperators:
- "sample.ObjectTypeOperators.__init__": ('str',),
- "sample.ObjectTypeOperators.__add__": ('str',),
- "sample.ObjectTypeOperators.key": (),
-# class sample.ObjectTypePtrList:
-# class sample.ObjectTypePtrList.CtorEnum:
- "sample.ObjectTypePtrList.__init__": [(), ('object',), ('sample.ObjectTypePtrList',), ('typing.Sequence[object]',)],
- "sample.ObjectTypePtrList.__copy__": (),
- "sample.ObjectTypePtrList.append": ('object',),
- "sample.ObjectTypePtrList.constructorUsed": (),
-# class sample.ObjectView:
- "sample.ObjectView.__init__": ('sample.ObjectModel', 'object'),
- "sample.ObjectView.displayModelData": (),
- "sample.ObjectView.getRawModelData": (),
- "sample.ObjectView.model": (),
- "sample.ObjectView.modifyModelData": ('sample.Str',),
- "sample.ObjectView.setModel": ('sample.ObjectModel',),
-# class sample.OddBoolUser:
- "sample.OddBoolUser.__init__": [(), ('bool',), ('sample.OddBoolUser',)],
- "sample.OddBoolUser.__copy__": (),
- "sample.OddBoolUser.callInvertedOddBool": (),
- "sample.OddBoolUser.getOddBool": ('sample.OddBoolUser',),
- "sample.OddBoolUser.invertedOddBool": (),
- "sample.OddBoolUser.oddBool": (),
- "sample.OddBoolUser.setOddBool": ('bool',),
-# class sample.OnlyCopy:
- "sample.OnlyCopy.__init__": ('sample.OnlyCopy',),
- "sample.OnlyCopy.__copy__": (),
- "sample.OnlyCopy.getValue": ('sample.OnlyCopy',),
- "sample.OnlyCopy.getValueFromReference": ('sample.OnlyCopy',),
- "sample.OnlyCopy.value": (),
-# class sample.OtherBase:
- "sample.OtherBase.__init__": (),
-# class sample.Overload:
-# class sample.Overload.FunctionEnum:
-# class sample.Overload.ParamEnum:
- "sample.Overload.__init__": (),
- "sample.Overload.acceptSequence": [(), ('int',), ('int', 'int'), ('sample.Size',), ('sample.Str', 'sample.Overload.ParamEnum'), ('typing.Sequence[str]',)],
- "sample.Overload.differentReturnTypes": [('sample.Overload.ParamEnum',), ('sample.Overload.ParamEnum', 'int')],
- "sample.Overload.drawText": [('int', 'int', 'int', 'int', 'int', 'sample.Str'), ('int', 'int', 'sample.Str'), ('sample.PointF', 'sample.Str'), ('sample.Rect', 'int', 'sample.Str'), ('sample.RectF', 'int', 'sample.Str'), ('sample.RectF', 'sample.Str', 'sample.Echo'), ('typing.Tuple[float, float]', 'sample.Str')],
- "sample.Overload.drawText2": [('int', 'int', 'int', 'int', 'int', 'sample.Str'), ('int', 'int', 'sample.Str'), ('sample.PointF', 'sample.Str'), ('sample.Rect', 'int', 'sample.Str'), ('sample.RectF', 'int', 'sample.Str'), ('sample.RectF', 'sample.Str', 'sample.Echo'), ('typing.Tuple[float, float]', 'sample.Str')],
- "sample.Overload.drawText3": [('int', 'int', 'int', 'int', 'int'), ('sample.Str', 'sample.Str', 'sample.Str')],
- "sample.Overload.drawText4": [('int', 'int', 'int'), ('int', 'int', 'int', 'int', 'int')],
- "sample.Overload.intDoubleOverloads": [('float', 'float'), ('int', 'int')],
- "sample.Overload.intOverloads": [('int', 'int'), ('int', 'int', 'float'), ('typing.Tuple[float, float]', 'float')],
- "sample.Overload.overloaded": [(), ('sample.Size',), ('typing.Tuple[float, float]',), ('typing.Tuple[float, float]', 'sample.Overload.ParamEnum')],
- "sample.Overload.singleOverload": [(), ('typing.Tuple[float, float]',)],
- "sample.Overload.strBufferOverloads": [(), ('sample.Str', 'int'), ('sample.Str', 'str', 'bool'), ('str', 'int')],
- "sample.Overload.wrapperIntIntOverloads": [('sample.Polygon', 'int', 'int'), ('typing.Tuple[float, float]', 'int', 'int')],
-# class sample.Overload2:
- "sample.Overload2.__init__": (),
- "sample.Overload2.doNothingInPublic": [(), ('int',)],
- "sample.Overload2.doNothingInPublic2": [(), ('int',)],
- "sample.Overload2.doNothingInPublic3": [(), ('int',)],
-# class sample.OverloadedFuncEnum:
-# class sample.PairUser:
- "sample.PairUser.__init__": [(), ('sample.PairUser',)],
- "sample.PairUser.__copy__": (),
- "sample.PairUser.callCreatePair": (),
- "sample.PairUser.createComplexPair": ('complex', 'complex'),
- "sample.PairUser.createPair": (),
- "sample.PairUser.getPair": (),
- "sample.PairUser.setPair": ('typing.Tuple[int, int]',),
- "sample.PairUser.sumPair": ('typing.Tuple[int, float]',),
-# class sample.Pen:
- "sample.Pen.__init__": [(), ('sample.Color',), ('sample.Pen',), ('sample.SampleNamespace.Option',)],
- "sample.Pen.__copy__": (),
- "sample.Pen.ctorType": (),
-# class sample.PersistentModelIndex:
- "sample.PersistentModelIndex.__init__": [(), ('sample.ModelIndex',), ('sample.PersistentModelIndex',)],
- "sample.PersistentModelIndex.__copy__": (),
- "sample.PersistentModelIndex.setValue": ('int',),
- "sample.PersistentModelIndex.value": (),
-# class sample.Photon:
-# class sample.Photon.Base:
- "sample.Photon.Base.__init__": [('int',), ('sample.Photon.Base',)],
- "sample.Photon.Base.__copy__": (),
- "sample.Photon.Base.isType": ('sample.Photon.ClassType',),
- "sample.Photon.Base.setValue": ('int',),
- "sample.Photon.Base.type": (),
- "sample.Photon.Base.value": (),
-# class sample.Photon.ClassType:
-# class sample.Photon.ValueDuplicator:
- "sample.Photon.ValueDuplicator.__init__": [('int',), ('sample.Photon.ValueDuplicator',)],
- "sample.Photon.ValueDuplicator.__copy__": (),
- "sample.Photon.ValueDuplicator.calculate": (),
- "sample.Photon.ValueDuplicator.classType": (),
- "sample.Photon.ValueDuplicator.getListOfThisTemplateBase": (),
- "sample.Photon.ValueDuplicator.multiplicator": (),
- "sample.Photon.ValueDuplicator.passPointerThrough": ('sample.Photon.ValueDuplicator',),
- "sample.Photon.ValueDuplicator.sumValueUsingPointer": ('sample.Photon.ValueDuplicator',),
- "sample.Photon.ValueDuplicator.sumValueUsingReference": ('sample.Photon.ValueDuplicator',),
- "sample.Photon.ValueDuplicator.type": (),
-# class sample.Photon.ValueIdentity:
- "sample.Photon.ValueIdentity.__init__": [('int',), ('sample.Photon.ValueIdentity',)],
- "sample.Photon.ValueIdentity.__copy__": (),
- "sample.Photon.ValueIdentity.calculate": (),
- "sample.Photon.ValueIdentity.classType": (),
- "sample.Photon.ValueIdentity.getListOfThisTemplateBase": (),
- "sample.Photon.ValueIdentity.multiplicator": (),
- "sample.Photon.ValueIdentity.passPointerThrough": ('sample.Photon.ValueIdentity',),
- "sample.Photon.ValueIdentity.sumValueUsingPointer": ('sample.Photon.ValueIdentity',),
- "sample.Photon.ValueIdentity.sumValueUsingReference": ('sample.Photon.ValueIdentity',),
- "sample.Photon.ValueIdentity.type": (),
- "sample.Photon.callCalculateForValueDuplicatorPointer": ('sample.Photon.ValueDuplicator',),
- "sample.Photon.callCalculateForValueDuplicatorReference": ('sample.Photon.ValueDuplicator',),
- "sample.Photon.countValueDuplicators": ('typing.List[sample.Photon.ValueDuplicator]',),
- "sample.Photon.countValueIdentities": ('typing.List[sample.Photon.ValueIdentity]',),
-# class sample.Point:
- "sample.Point.__init__": [('float', 'float'), ('int', 'int'), ('typing.Tuple[float, float]',)],
- "sample.Point.__add__": ('typing.Tuple[float, float]',),
- "sample.Point.__copy__": (),
- "sample.Point.__iadd__": ('typing.Tuple[float, float]',),
- "sample.Point.__isub__": ('typing.Tuple[float, float]',),
- "sample.Point.__mul__": [('float',), ('int',)],
- "sample.Point.__neg__": (),
- "sample.Point.__reduce__": (),
- "sample.Point.__repr__": (),
- "sample.Point.__str__": (),
- "sample.Point.__sub__": [('typing.Tuple[float, float]',), ('unicode',)],
- "sample.Point.copy": (),
- "sample.Point.getConstReferenceToSelf": (),
- "sample.Point.getSelf": (),
- "sample.Point.midpoint": ('typing.Tuple[float, float]', 'typing.Tuple[float, float]'),
- "sample.Point.setX": ('float',),
- "sample.Point.setXAsUint": ('int',),
- "sample.Point.setY": ('float',),
- "sample.Point.setYAsUint": ('int',),
- "sample.Point.show": (),
- "sample.Point.x": (),
- "sample.Point.y": (),
-# class sample.PointF:
- "sample.PointF.__init__": [('float', 'float'), ('sample.PointF',), ('typing.Tuple[float, float]',)],
- "sample.PointF.__add__": ('sample.PointF',),
- "sample.PointF.__copy__": (),
- "sample.PointF.__iadd__": ('sample.PointF',),
- "sample.PointF.__isub__": ('sample.PointF',),
- "sample.PointF.__mul__": [('float',), ('int',)],
- "sample.PointF.__neg__": (),
- "sample.PointF.__reduce__": (),
- "sample.PointF.__repr__": (),
- "sample.PointF.__str__": (),
- "sample.PointF.__sub__": ('sample.PointF',),
- "sample.PointF.midpoint": ('sample.PointF', 'sample.PointF'),
- "sample.PointF.setX": ('float',),
- "sample.PointF.setY": ('float',),
- "sample.PointF.show": (),
- "sample.PointF.x": (),
- "sample.PointF.y": (),
-# class sample.PointValueList:
-# class sample.PointValueList.CtorEnum:
- "sample.PointValueList.__init__": [(), ('sample.PointValueList',), ('typing.Sequence[typing.Tuple]',), ('typing.Tuple[float, float]',)],
- "sample.PointValueList.__copy__": (),
- "sample.PointValueList.append": ('typing.Tuple[float, float]',),
- "sample.PointValueList.constructorUsed": (),
-# class sample.PointerHolder:
- "sample.PointerHolder.__init__": [('object',), ('sample.PointerHolder',)],
- "sample.PointerHolder.__copy__": (),
- "sample.PointerHolder.pointer": (),
-# class sample.Polygon:
- "sample.Polygon.__init__": [(), ('float', 'float'), ('sample.Polygon',), ('typing.List[typing.Tuple]',), ('typing.Tuple[float, float]',)],
- "sample.Polygon.__copy__": (),
- "sample.Polygon.addPoint": ('typing.Tuple[float, float]',),
- "sample.Polygon.doublePolygonScale": ('sample.Polygon',),
- "sample.Polygon.points": (),
- "sample.Polygon.stealOwnershipFromPython": [('sample.Polygon',), ('typing.Tuple[float, float]',)],
-# class sample.PrimitiveStructPointerHolder:
- "sample.PrimitiveStructPointerHolder.__init__": [(), ('sample.PrimitiveStructPointerHolder',)],
- "sample.PrimitiveStructPointerHolder.__copy__": (),
-# class sample.PrivateCtor:
- "sample.PrivateCtor.instance": (),
- "sample.PrivateCtor.instanceCalls": (),
-# class sample.PrivateDtor:
- "sample.PrivateDtor.instance": (),
- "sample.PrivateDtor.instanceCalls": (),
- "sample.PrivateDtor.protectedInstanceCalls": (),
-# class sample.ProtectedEnumClass:
-# class sample.ProtectedEnumClass.ProtectedEnum:
-# class sample.ProtectedEnumClass.PublicEnum:
- "sample.ProtectedEnumClass.__init__": (),
- "sample.ProtectedEnumClass.callProtectedEnumMethod": ('sample.ProtectedEnumClass.ProtectedEnum',),
- "sample.ProtectedEnumClass.callPublicEnumMethod": ('sample.ProtectedEnumClass.PublicEnum',),
- "sample.ProtectedEnumClass.protectedEnumMethod": ('sample.ProtectedEnumClass.ProtectedEnum',),
- "sample.ProtectedEnumClass.publicEnumMethod": ('sample.ProtectedEnumClass.PublicEnum',),
-# class sample.ProtectedNonPolymorphic:
- "sample.ProtectedNonPolymorphic.__init__": [('sample.ProtectedNonPolymorphic',), ('str',)],
- "sample.ProtectedNonPolymorphic.__copy__": (),
- "sample.ProtectedNonPolymorphic.create": (),
- "sample.ProtectedNonPolymorphic.dataTypeName": [('int',), ('object',)],
- "sample.ProtectedNonPolymorphic.modifiedProtectedSum": ('int', 'int'),
- "sample.ProtectedNonPolymorphic.protectedName": (),
- "sample.ProtectedNonPolymorphic.protectedStatic": (),
- "sample.ProtectedNonPolymorphic.protectedSum": ('int', 'int'),
- "sample.ProtectedNonPolymorphic.publicName": (),
-# class sample.ProtectedPolymorphic:
- "sample.ProtectedPolymorphic.__init__": [('sample.ProtectedPolymorphic',), ('str',)],
- "sample.ProtectedPolymorphic.__copy__": (),
- "sample.ProtectedPolymorphic.callProtectedName": (),
- "sample.ProtectedPolymorphic.create": (),
- "sample.ProtectedPolymorphic.protectedName": (),
- "sample.ProtectedPolymorphic.publicName": (),
-# class sample.ProtectedPolymorphicDaughter:
- "sample.ProtectedPolymorphicDaughter.__init__": [('sample.ProtectedPolymorphicDaughter',), ('str',)],
- "sample.ProtectedPolymorphicDaughter.__copy__": (),
- "sample.ProtectedPolymorphicDaughter.create": (),
-# class sample.ProtectedPolymorphicGrandDaughter:
- "sample.ProtectedPolymorphicGrandDaughter.__init__": [('sample.ProtectedPolymorphicGrandDaughter',), ('str',)],
- "sample.ProtectedPolymorphicGrandDaughter.__copy__": (),
- "sample.ProtectedPolymorphicGrandDaughter.create": (),
-# class sample.ProtectedProperty:
- "sample.ProtectedProperty.__init__": [(), ('sample.ProtectedProperty',)],
- "sample.ProtectedProperty.__copy__": (),
-# class sample.ProtectedVirtualDestructor:
- "sample.ProtectedVirtualDestructor.__init__": (),
- "sample.ProtectedVirtualDestructor.create": (),
- "sample.ProtectedVirtualDestructor.dtorCalled": (),
- "sample.ProtectedVirtualDestructor.resetDtorCounter": (),
-# class sample.Rect:
- "sample.Rect.__init__": [(), ('int', 'int', 'int', 'int'), ('sample.Rect',)],
- "sample.Rect.__copy__": (),
- "sample.Rect.bottom": (),
- "sample.Rect.left": (),
- "sample.Rect.right": (),
- "sample.Rect.top": (),
-# class sample.RectF:
- "sample.RectF.__init__": [(), ('int', 'int', 'int', 'int'), ('sample.Rect',), ('sample.RectF',)],
- "sample.RectF.__copy__": (),
- "sample.RectF.bottom": (),
- "sample.RectF.left": (),
- "sample.RectF.right": (),
- "sample.RectF.top": (),
-# class sample.Reference:
- "sample.Reference.__init__": [('int',), ('sample.Reference',)],
- "sample.Reference.__copy__": (),
- "sample.Reference.alterReferenceIdVirtual": ('sample.Reference',),
- "sample.Reference.callAlterReferenceIdVirtual": ('sample.Reference',),
- "sample.Reference.callUsesConstReferenceVirtual": ('sample.Reference', 'int'),
- "sample.Reference.callUsesReferenceVirtual": ('sample.Reference', 'int'),
- "sample.Reference.multiplier": (),
- "sample.Reference.objId": (),
- "sample.Reference.returnMyFirstArg": ('sample.Reference',),
- "sample.Reference.returnMySecondArg": ('int', 'sample.Reference'),
- "sample.Reference.setObjId": ('int',),
- "sample.Reference.show": (),
- "sample.Reference.usesConstReference": ('sample.Reference',),
- "sample.Reference.usesConstReferenceVirtual": ('sample.Reference', 'int'),
- "sample.Reference.usesReference": ('sample.Reference',),
- "sample.Reference.usesReferenceVirtual": ('sample.Reference', 'int'),
-# class sample.ReferentModelIndex:
- "sample.ReferentModelIndex.__init__": [(), ('sample.ModelIndex',), ('sample.ReferentModelIndex',)],
- "sample.ReferentModelIndex.__copy__": (),
- "sample.ReferentModelIndex.setValue": ('int',),
- "sample.ReferentModelIndex.value": (),
-# class sample.RemovedNamespace1_Enum:
-# class sample.RemovedNamespace2_Enum:
-# class sample.SampleNamespace:
-# class sample.SampleNamespace.DerivedFromNamespace:
- "sample.SampleNamespace.DerivedFromNamespace.__init__": (),
- "sample.SampleNamespace.DerivedFromNamespace.methodReturningTypeFromParentScope": (),
- "sample.SampleNamespace.DerivedFromNamespace.someVirtualMethod": ('sample.SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough',),
-# class sample.SampleNamespace.InValue:
-# class sample.SampleNamespace.Option:
-# class sample.SampleNamespace.OutValue:
-# class sample.SampleNamespace.SomeClass:
-# class sample.SampleNamespace.SomeClass.ProtectedEnum:
-# class sample.SampleNamespace.SomeClass.PublicScopedEnum:
-# class sample.SampleNamespace.SomeClass.SomeInnerClass:
-# class sample.SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough:
-# class sample.SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough.NiceEnum:
-# class sample.SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough.NiceEnumClass:
- "sample.SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough.__init__": (),
- "sample.SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough.someMethod": ('sample.SampleNamespace.SomeClass.SomeInnerClass',),
- "sample.SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough.someVirtualMethod": ('sample.SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough',),
-# class sample.SampleNamespace.SomeClass.SomeInnerClass.ProtectedEnum:
- "sample.SampleNamespace.SomeClass.SomeInnerClass.__init__": [(), ('sample.SampleNamespace.SomeClass.SomeInnerClass',)],
- "sample.SampleNamespace.SomeClass.SomeInnerClass.__copy__": (),
-# class sample.SampleNamespace.SomeClass.SomeOtherInnerClass:
- "sample.SampleNamespace.SomeClass.SomeOtherInnerClass.__init__": [(), ('sample.SampleNamespace.SomeClass.SomeOtherInnerClass',)],
- "sample.SampleNamespace.SomeClass.SomeOtherInnerClass.__copy__": (),
- "sample.SampleNamespace.SomeClass.__init__": [(), ('sample.SampleNamespace.SomeClass',)],
- "sample.SampleNamespace.SomeClass.__copy__": (),
- "sample.SampleNamespace.SomeClass.protectedMethodReturningPublicScopedEnum": (),
- "sample.SampleNamespace.ImInsideANamespace": ('int', 'int'),
- "sample.SampleNamespace.doSomethingWithArray": ('str', 'int', 'str'),
- "sample.SampleNamespace.enumArgumentWithDefaultValue": ('sample.SampleNamespace.Option',),
- "sample.SampleNamespace.enumInEnumOut": ('sample.SampleNamespace.InValue',),
- "sample.SampleNamespace.enumItemAsDefaultValueToIntArgument": ('int',),
- "sample.SampleNamespace.forceDecisorSideA": [('object',), ('typing.Tuple[float, float]', 'sample.Str', 'object')],
- "sample.SampleNamespace.forceDecisorSideB": [('int', 'object'), ('int', 'typing.Tuple[float, float]', 'sample.Str', 'object')],
- "sample.SampleNamespace.getNumber": ('sample.SampleNamespace.Option',),
- "sample.SampleNamespace.passReferenceToObjectType": [('object',), ('object', 'int')],
- "sample.SampleNamespace.passReferenceToValueType": [('typing.Tuple[float, float]',), ('typing.Tuple[float, float]', 'float')],
- "sample.SampleNamespace.powerOfTwo": ('float',),
-# class sample.SbkDate:
- "sample.SbkDate.__init__": [('int', 'int', 'int'), ('sample.SbkDate',)],
- "sample.SbkDate.__copy__": (),
- "sample.SbkDate.day": (),
- "sample.SbkDate.month": (),
- "sample.SbkDate.toPython": (),
- "sample.SbkDate.year": (),
-# class sample.SimpleFile:
- "sample.SimpleFile.__init__": [('sample.SimpleFile',), ('str',)],
- "sample.SimpleFile.__copy__": (),
- "sample.SimpleFile.close": (),
- "sample.SimpleFile.exists": [(), ('str',)],
- "sample.SimpleFile.filename": (),
- "sample.SimpleFile.open": (),
- "sample.SimpleFile.size": (),
-# class sample.Size:
- "sample.Size.__init__": [('float', 'float'), ('sample.Size',), ('str',)],
- "sample.Size.__add__": ('sample.Size',),
- "sample.Size.__copy__": (),
- "sample.Size.__iadd__": ('sample.Size',),
- "sample.Size.__imul__": ('float',),
- "sample.Size.__isub__": ('sample.Size',),
- "sample.Size.__mul__": ('float',),
- "sample.Size.__sub__": ('sample.Size',),
- "sample.Size.calculateArea": (),
- "sample.Size.height": (),
- "sample.Size.setHeight": ('float',),
- "sample.Size.setWidth": ('float',),
- "sample.Size.show": (),
- "sample.Size.width": (),
-# class sample.SizeF:
- "sample.SizeF.__init__": [('float', 'float'), ('sample.SizeF',)],
- "sample.SizeF.__copy__": (),
- "sample.SizeF.height": (),
- "sample.SizeF.passTypedefOfUnsignedShort": ('int',),
- "sample.SizeF.width": (),
-# class sample.SonOfMDerived1:
- "sample.SonOfMDerived1.__init__": (),
- "sample.SonOfMDerived1.castToMDerived1": (),
- "sample.SonOfMDerived1.sonOfMDerived1Method": (),
-# class sample.SortedOverload:
- "sample.SortedOverload.__init__": [(), ('sample.SortedOverload',)],
- "sample.SortedOverload.__copy__": (),
- "sample.SortedOverload.implicit_overload": ('sample.ImplicitBase',),
- "sample.SortedOverload.overload": [('float',), ('int',), ('object',), ('sample.ImplicitBase',), ('sample.ImplicitTarget',), ('typing.List[sample.ImplicitBase]',)],
- "sample.SortedOverload.overloadDeep": [('int', 'object'), ('int', 'sample.ImplicitBase')],
- "sample.SortedOverload.pyObjOverload": [('int', 'int'), ('str', 'int')],
-# class sample.Str:
- "sample.Str.__init__": [('int',), ('sample.Str',), ('str',)],
- "sample.Str.__add__": ('int',),
- "sample.Str.__copy__": (),
- "sample.Str.__str__": (),
- "sample.Str.append": ('sample.Str',),
- "sample.Str.arg": ('sample.Str',),
- "sample.Str.cstring": (),
- "sample.Str.get_char": ('int',),
- "sample.Str.prepend": ('sample.Str',),
- "sample.Str.set_char": ('int', 'int'),
- "sample.Str.show": (),
- "sample.Str.size": (),
- "sample.Str.toInt": ('int',),
-# class sample.StrList:
-# class sample.StrList.CtorEnum:
- "sample.StrList.__init__": [(), ('sample.Str',), ('sample.StrList',), ('typing.List[sample.Str]',)],
- "sample.StrList.__copy__": (),
- "sample.StrList.append": ('sample.Str',),
- "sample.StrList.constructorUsed": (),
- "sample.StrList.join": ('sample.Str',),
-# class sample.TemplatePtr:
- "sample.TemplatePtr.__init__": (),
- "sample.TemplatePtr.dummy_method": ('typing.List[typing.Tuple]',),
-# class sample.Time:
-# class sample.Time.NumArgs:
- "sample.Time.__init__": [(), ('int', 'int', 'int', 'int'), ('sample.Time',)],
- "sample.Time.__copy__": (),
- "sample.Time.hour": (),
- "sample.Time.isNull": (),
- "sample.Time.minute": (),
- "sample.Time.msec": (),
- "sample.Time.second": (),
- "sample.Time.setTime": [(), ('int', 'int', 'int', 'int')],
- "sample.Time.somethingCompletelyDifferent": [(), ('int', 'int', 'sample.ImplicitConv', 'object')],
- "sample.Time.toString": (),
-# class sample.Union:
- "sample.Union.__init__": [(), ('sample.Data',), ('sample.Intersection',), ('sample.Union',)],
- "sample.Union.__and__": ('sample.Data',),
- "sample.Union.__copy__": (),
- "sample.Union.addFilter": ('sample.Filter',),
- "sample.Union.filters": (),
-# class sample.UnremovedNamespace:
-# class sample.UnremovedNamespace.RemovedNamespace3_Enum:
-# class sample.ValueAndVirtual:
- "sample.ValueAndVirtual.__init__": [('int',), ('sample.ValueAndVirtual',)],
- "sample.ValueAndVirtual.__call__": ('int', 'int'),
- "sample.ValueAndVirtual.__copy__": (),
- "sample.ValueAndVirtual.id": (),
-# class sample.VirtualDaughter:
- "sample.VirtualDaughter.__init__": [(), ('sample.Str',), ('sample.VirtualDaughter',)],
- "sample.VirtualDaughter.__copy__": (),
-# class sample.VirtualDaughter2:
- "sample.VirtualDaughter2.__init__": (),
- "sample.VirtualDaughter2.sumThree": ('int', 'int', 'int'),
- "sample.VirtualDaughter2.virtualMethod0": ('typing.Tuple[float, float]', 'int', 'complex', 'bool'),
-# class sample.VirtualDtor:
- "sample.VirtualDtor.__init__": [(), ('sample.VirtualDtor',)],
- "sample.VirtualDtor.__copy__": (),
- "sample.VirtualDtor.create": (),
- "sample.VirtualDtor.dtorCalled": (),
- "sample.VirtualDtor.resetDtorCounter": (),
-# class sample.VirtualFinalDaughter:
- "sample.VirtualFinalDaughter.__init__": (),
- "sample.VirtualFinalDaughter.sumThree": ('int', 'int', 'int'),
- "sample.VirtualFinalDaughter.virtualMethod0": ('typing.Tuple[float, float]', 'int', 'complex', 'bool'),
-# class sample.VirtualMethods:
- "sample.VirtualMethods.__init__": [('sample.Str',), ('sample.VirtualMethods',)],
- "sample.VirtualMethods.__copy__": (),
- "sample.VirtualMethods.callCallMe": (),
- "sample.VirtualMethods.callCreateStr": ('str', 'sample.Str'),
- "sample.VirtualMethods.callGetMargins": (),
- "sample.VirtualMethods.callMe": (),
- "sample.VirtualMethods.callName": (),
- "sample.VirtualMethods.callRecursionOnModifiedVirtual": ('sample.Str',),
- "sample.VirtualMethods.callStrListToStdList": ('sample.StrList',),
- "sample.VirtualMethods.callSum0": ('int', 'int', 'int'),
- "sample.VirtualMethods.callSum1": ('int', 'int', 'int'),
- "sample.VirtualMethods.callSum2": ('int', 'int', 'int'),
- "sample.VirtualMethods.callSum3": ('int', 'int', 'int'),
- "sample.VirtualMethods.callSum4": ('int', 'int', 'int'),
- "sample.VirtualMethods.callVirtualMethod0": ('typing.Tuple[float, float]', 'int', 'complex', 'bool'),
- "sample.VirtualMethods.createStr": ('str', 'sample.Str'),
- "sample.VirtualMethods.getMargins": (),
- "sample.VirtualMethods.name": (),
- "sample.VirtualMethods.recursionOnModifiedVirtual": ('sample.Str',),
- "sample.VirtualMethods.setMargins": ('int', 'int', 'int', 'int'),
- "sample.VirtualMethods.strListToStdList": ('sample.StrList',),
- "sample.VirtualMethods.sum1": ('int', 'int', 'int'),
- "sample.VirtualMethods.sum2": ('int', 'int', 'int'),
- "sample.VirtualMethods.sum3": ('int', 'int', 'int'),
- "sample.VirtualMethods.sum4": ('int', 'int', 'int'),
- "sample.VirtualMethods.sumThree": ('int', 'int', 'int'),
- "sample.VirtualMethods.virtualMethod0": ('typing.Tuple[float, float]', 'int', 'complex', 'bool'),
-# class sample.VoidHolder:
- "sample.VoidHolder.__init__": [('int',), ('sample.VoidHolder',)],
- "sample.VoidHolder.__copy__": (),
- "sample.VoidHolder.gimmeMeSomeVoidPointer": (),
- "sample.VoidHolder.takeVoidPointer": ('int',),
- "sample.VoidHolder.voidPointer": (),
-# class sample.sample:
-# class sample.sample.sample:
- "sample.sample.sample.__init__": [('int',), ('sample.sample.sample',)],
- "sample.sample.sample.__copy__": (),
- "sample.sample.sample.value": (),
- "sample.sample.acceptDouble": ('float',),
- "sample.sample.acceptInt": ('int',),
- "sample.sample.acceptIntReference": ('int',),
- "sample.sample.acceptLong": ('int',),
- "sample.sample.acceptOddBoolReference": ('bool',),
- "sample.sample.acceptUInt": ('int',),
- "sample.sample.acceptULong": ('int',),
- "sample.sample.applyHomogeneousTransform": ('typing.Tuple[float, float]', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float'),
- "sample.sample.cacheSize": (),
- "sample.sample.changePStr": ('str',),
- "sample.sample.convertIntegersToCppAndThenToPython": ('int', 'int'),
- "sample.sample.convertListOfIntegersToCppAndThenToPython": ('typing.List[int]',),
- "sample.sample.convertObjectTypeToCppAndThenToPython": ('object', 'object'),
- "sample.sample.convertValueTypeToCppAndThenToPython": ('typing.Tuple[float, float]', 'typing.Tuple[float, float]', 'typing.Tuple[float, float]'),
- "sample.sample.countCharacters": ('str',),
- "sample.sample.countVarargs": ('int', 'None'),
- "sample.sample.cppTypeIsObjectType": ('str',),
- "sample.sample.cppTypeIsValueType": ('str',),
- "sample.sample.createListOfPStr": ('str', 'str'),
- "sample.sample.createPStrList": ('str', 'str'),
- "sample.sample.createProtectedProperty": (),
- "sample.sample.doubleLongLong": ('int',),
- "sample.sample.doubleShort": ('int',),
- "sample.sample.doubleUnsignedInt": ('int',),
- "sample.sample.doubleUnsignedLongLong": ('int',),
- "sample.sample.duplicatePStr": (),
- "sample.sample.getConversionTypeString": ('str',),
- "sample.sample.getPythonType": ('str',),
- "sample.sample.gimmeComplexList": (),
- "sample.sample.gimmeDouble": (),
- "sample.sample.gimmeInt": (),
- "sample.sample.makeCString": (),
- "sample.sample.multiplyPair": ('typing.Tuple[float, float]',),
- "sample.sample.multiplyString": ('str', 'int'),
- "sample.sample.overloadedFunc": [('float',), ('int',)],
- "sample.sample.returnCString": (),
- "sample.sample.returnNullObjectTypePointer": (),
- "sample.sample.returnNullPrimitivePointer": (),
- "sample.sample.returnNullValueTypePointer": (),
- "sample.sample.sum2d": ('typing.List[typing.List]',),
- "sample.sample.sumComplexPair": ('typing.Tuple[complex, complex]',),
- "sample.sample.sumDoubleArray": ('typing.Tuple[float, float, float, float]',),
- "sample.sample.sumDoubleMatrix": ('typing.Tuple[typing.Tuple, typing.Tuple, typing.Tuple]',),
- "sample.sample.sumIntArray": ('typing.Tuple[int, int, int, int]',),
- "sample.sample.sumIntMatrix": ('typing.Tuple[typing.Tuple, typing.Tuple, typing.Tuple]',),
- "sample.sample.sumproduct": ('typing.List[typing.Tuple]',),
- "sample.sample.transmuteComplexIntoPoint": ('complex',),
- "sample.sample.transmutePointIntoComplex": ('typing.Tuple[float, float]',),
- }) if "sample" in sys.modules else None
-# Module other
-sig_dict.update({
-# class other.ExtendsNoImplicitConversion:
- "other.ExtendsNoImplicitConversion.__init__": [('Missing("other.ExtendsNoImplicitConversion")',), ('int',)],
- "other.ExtendsNoImplicitConversion.__copy__": (),
- "other.ExtendsNoImplicitConversion.objId": (),
-# class other.Number:
- "other.Number.__init__": [('int',), ('numbers.Number',)],
- "other.Number.__copy__": (),
- "other.Number.__mul__": ('typing.Tuple[float, float]',),
- "other.Number.fromComplex": ('complex',),
- "other.Number.toComplex": (),
- "other.Number.toStr": (),
- "other.Number.value": (),
-# class other.OtherDerived:
- "other.OtherDerived.__init__": ('int',),
- "other.OtherDerived.className": (),
- "other.OtherDerived.createObject": (),
- "other.OtherDerived.getClassName": (),
- "other.OtherDerived.pureVirtual": (),
- "other.OtherDerived.pureVirtualReturningVoidPtr": (),
- "other.OtherDerived.returnAnEnum": (),
- "other.OtherDerived.unpureVirtual": (),
- "other.OtherDerived.useEnumTypeFromOtherModule": ('sample.OverloadedFuncEnum',),
- "other.OtherDerived.useObjectTypeFromOtherModule": ('object',),
- "other.OtherDerived.useValueTypeFromOtherModule": [('complex',), ('sample.Event',)],
-# class other.OtherMultipleDerived:
- "other.OtherMultipleDerived.__init__": (),
- "other.OtherMultipleDerived.createObject": ('str',),
- "other.OtherMultipleDerived.returnUselessClass": (),
-# class other.OtherObjectType:
- "other.OtherObjectType.__init__": (),
- "other.OtherObjectType.__lshift__": ('sample.Collector',),
- }) if "other" in sys.modules else None
-# Module smart
-sig_dict.update({
-# class smart.Integer:
- "smart.Integer.__init__": [(), ('smart.Integer',)],
- "smart.Integer.__copy__": (),
- "smart.Integer.printInteger": (),
-# class smart.Integer2:
- "smart.Integer2.__init__": [(), ('int',)],
- "smart.Integer2.__copy__": (),
-# class smart.Obj:
- "smart.Obj.__init__": (),
- "smart.Obj.giveSharedPtrToInteger": (),
- "smart.Obj.giveSharedPtrToInteger2": (),
- "smart.Obj.giveSharedPtrToObj": (),
- "smart.Obj.giveSharedPtrToObjList": ('int',),
- "smart.Obj.printObj": (),
- "smart.Obj.takeInteger": ('smart.Integer',),
- "smart.Obj.takeSharedPtrToInteger": ('smart.SharedPtr',),
- "smart.Obj.takeSharedPtrToObj": ('smart.SharedPtr',),
-# class smart.Registry:
- "smart.Registry.__init__": (),
- "smart.Registry.add": [('smart.Integer',), ('smart.Obj',)],
- "smart.Registry.countIntegers": (),
- "smart.Registry.countObjects": (),
- "smart.Registry.getInstance": (),
- "smart.Registry.remove": [('smart.Integer',), ('smart.Obj',)],
- "smart.Registry.setShouldPrint": ('bool',),
- "smart.Registry.shouldPrint": (),
-# class smart.SharedPtr:
-# class smart.SharedPtr.__next_in_mro__:
-# class smart.SharedPtr<Integer >:
- "smart.SharedPtr<Integer >.__copy__": (),
- "smart.SharedPtr<Integer >.data": (),
- "smart.SharedPtr<Integer >.useCount": (),
-# class smart.SharedPtr<Obj >:
- "smart.SharedPtr<Obj >.__copy__": (),
- "smart.SharedPtr<Obj >.data": (),
- "smart.SharedPtr<Obj >.useCount": (),
-# class smart.SharedPtr<Smart::Integer2 >:
- "smart.SharedPtr<Smart::Integer2 >.__copy__": (),
- "smart.SharedPtr<Smart::Integer2 >.data": (),
- "smart.SharedPtr<Smart::Integer2 >.useCount": (),
- }) if "smart" in sys.modules else None
-# eof
diff --git a/sources/pyside6/tests/registry/exists_red_hat_enterprise_linux_workstation7_6_5_14_2_ci.py b/sources/pyside6/tests/registry/exists_red_hat_enterprise_linux_workstation7_6_5_14_2_ci.py
deleted file mode 100644
index 24cf74589..000000000
--- a/sources/pyside6/tests/registry/exists_red_hat_enterprise_linux_workstation7_6_5_14_2_ci.py
+++ /dev/null
@@ -1,37756 +0,0 @@
-#recreate # uncomment this to enforce generation
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-"""
-This file contains the simplified signatures for all functions in PySide
-for module 'exists_red_hat_enterprise_linux_workstation7_6_5_14_2_ci' using
-Python 2.7.5 (default, Sep 26 2019, 13:23:47) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]
-Qt 5.14.2 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 5.3.1 20160406 (Red Hat 5.3.1-6))
-There are no default values, no variable names and no self
-parameter. Only types are present after simplification. The
-functions 'next' resp. '__next__' are removed to make the output
-identical for Python 2 and 3. '__div__' is also removed,
-since it exists in Python 2, only.
-"""
-import sys
-sig_dict = {}
-# Module PySide2.QtCore
-sig_dict.update({
-# class PySide2.QtCore.ClassInfo:
- "PySide2.QtCore.ClassInfo.__init__": ('typing.Dict[str, str]',),
-# class PySide2.QtCore.MetaFunction:
- "PySide2.QtCore.MetaFunction.__call__": ('typing.Any',),
-# class PySide2.QtCore.MetaSignal:
- "PySide2.QtCore.MetaSignal.__instancecheck__": ('object',),
-# class PySide2.QtCore.Property:
- "PySide2.QtCore.Property.__init__": ('type', 'typing.Callable', 'typing.Callable', 'typing.Callable', 'typing.Callable', 'str', 'typing.Callable', 'bool', 'bool', 'bool', 'bool', 'bool', 'bool'),
- "PySide2.QtCore.Property.getter": ('typing.Callable',),
- "PySide2.QtCore.Property.read": ('typing.Callable',),
- "PySide2.QtCore.Property.setter": ('typing.Callable',),
- "PySide2.QtCore.Property.write": ('typing.Callable',),
-# class PySide2.QtCore.QAbstractAnimation:
-# class PySide2.QtCore.QAbstractAnimation.DeletionPolicy:
-# class PySide2.QtCore.QAbstractAnimation.Direction:
-# class PySide2.QtCore.QAbstractAnimation.State:
- "PySide2.QtCore.QAbstractAnimation.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QAbstractAnimation.currentLoop": (),
- "PySide2.QtCore.QAbstractAnimation.currentLoopTime": (),
- "PySide2.QtCore.QAbstractAnimation.currentTime": (),
- "PySide2.QtCore.QAbstractAnimation.direction": (),
- "PySide2.QtCore.QAbstractAnimation.duration": (),
- "PySide2.QtCore.QAbstractAnimation.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QAbstractAnimation.group": (),
- "PySide2.QtCore.QAbstractAnimation.loopCount": (),
- "PySide2.QtCore.QAbstractAnimation.pause": (),
- "PySide2.QtCore.QAbstractAnimation.resume": (),
- "PySide2.QtCore.QAbstractAnimation.setCurrentTime": ('int',),
- "PySide2.QtCore.QAbstractAnimation.setDirection": ('PySide2.QtCore.QAbstractAnimation.Direction',),
- "PySide2.QtCore.QAbstractAnimation.setLoopCount": ('int',),
- "PySide2.QtCore.QAbstractAnimation.setPaused": ('bool',),
- "PySide2.QtCore.QAbstractAnimation.start": ('PySide2.QtCore.QAbstractAnimation.DeletionPolicy',),
- "PySide2.QtCore.QAbstractAnimation.state": (),
- "PySide2.QtCore.QAbstractAnimation.stop": (),
- "PySide2.QtCore.QAbstractAnimation.totalDuration": (),
- "PySide2.QtCore.QAbstractAnimation.updateCurrentTime": ('int',),
- "PySide2.QtCore.QAbstractAnimation.updateDirection": ('PySide2.QtCore.QAbstractAnimation.Direction',),
- "PySide2.QtCore.QAbstractAnimation.updateState": ('PySide2.QtCore.QAbstractAnimation.State', 'PySide2.QtCore.QAbstractAnimation.State'),
-# class PySide2.QtCore.QAbstractEventDispatcher:
-# class PySide2.QtCore.QAbstractEventDispatcher.TimerInfo:
- "PySide2.QtCore.QAbstractEventDispatcher.TimerInfo.__init__": ('int', 'int', 'PySide2.QtCore.Qt.TimerType'),
- "PySide2.QtCore.QAbstractEventDispatcher.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QAbstractEventDispatcher.closingDown": (),
- "PySide2.QtCore.QAbstractEventDispatcher.filterNativeEvent": ('PySide2.QtCore.QByteArray', 'int'),
- "PySide2.QtCore.QAbstractEventDispatcher.flush": (),
- "PySide2.QtCore.QAbstractEventDispatcher.hasPendingEvents": (),
- "PySide2.QtCore.QAbstractEventDispatcher.installNativeEventFilter": ('PySide2.QtCore.QAbstractNativeEventFilter',),
- "PySide2.QtCore.QAbstractEventDispatcher.instance": ('PySide2.QtCore.QThread',),
- "PySide2.QtCore.QAbstractEventDispatcher.interrupt": (),
- "PySide2.QtCore.QAbstractEventDispatcher.processEvents": ('PySide2.QtCore.QEventLoop.ProcessEventsFlags',),
- "PySide2.QtCore.QAbstractEventDispatcher.registerSocketNotifier": ('PySide2.QtCore.QSocketNotifier',),
- "PySide2.QtCore.QAbstractEventDispatcher.registerTimer": [('int', 'PySide2.QtCore.Qt.TimerType', 'PySide2.QtCore.QObject'), ('int', 'int', 'PySide2.QtCore.Qt.TimerType', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QAbstractEventDispatcher.registeredTimers": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QAbstractEventDispatcher.remainingTime": ('int',),
- "PySide2.QtCore.QAbstractEventDispatcher.removeNativeEventFilter": ('PySide2.QtCore.QAbstractNativeEventFilter',),
- "PySide2.QtCore.QAbstractEventDispatcher.startingUp": (),
- "PySide2.QtCore.QAbstractEventDispatcher.unregisterSocketNotifier": ('PySide2.QtCore.QSocketNotifier',),
- "PySide2.QtCore.QAbstractEventDispatcher.unregisterTimer": ('int',),
- "PySide2.QtCore.QAbstractEventDispatcher.unregisterTimers": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QAbstractEventDispatcher.wakeUp": (),
-# class PySide2.QtCore.QAbstractItemModel:
-# class PySide2.QtCore.QAbstractItemModel.CheckIndexOption:
-# class PySide2.QtCore.QAbstractItemModel.CheckIndexOptions:
-# class PySide2.QtCore.QAbstractItemModel.LayoutChangeHint:
- "PySide2.QtCore.QAbstractItemModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QAbstractItemModel.beginInsertColumns": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtCore.QAbstractItemModel.beginInsertRows": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtCore.QAbstractItemModel.beginMoveColumns": ('PySide2.QtCore.QModelIndex', 'int', 'int', 'PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QAbstractItemModel.beginMoveRows": ('PySide2.QtCore.QModelIndex', 'int', 'int', 'PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QAbstractItemModel.beginRemoveColumns": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtCore.QAbstractItemModel.beginRemoveRows": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtCore.QAbstractItemModel.beginResetModel": (),
- "PySide2.QtCore.QAbstractItemModel.buddy": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractItemModel.canDropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.canFetchMore": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractItemModel.changePersistentIndex": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.changePersistentIndexList": ('typing.List[int]', 'typing.List[int]'),
- "PySide2.QtCore.QAbstractItemModel.checkIndex": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QAbstractItemModel.CheckIndexOptions'),
- "PySide2.QtCore.QAbstractItemModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractItemModel.createIndex": [('int', 'int', 'int'), ('int', 'int', 'object')],
- "PySide2.QtCore.QAbstractItemModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QAbstractItemModel.decodeData": ('int', 'int', 'PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QDataStream'),
- "PySide2.QtCore.QAbstractItemModel.dropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.encodeData": ('typing.List[int]', 'PySide2.QtCore.QDataStream'),
- "PySide2.QtCore.QAbstractItemModel.endInsertColumns": (),
- "PySide2.QtCore.QAbstractItemModel.endInsertRows": (),
- "PySide2.QtCore.QAbstractItemModel.endMoveColumns": (),
- "PySide2.QtCore.QAbstractItemModel.endMoveRows": (),
- "PySide2.QtCore.QAbstractItemModel.endRemoveColumns": (),
- "PySide2.QtCore.QAbstractItemModel.endRemoveRows": (),
- "PySide2.QtCore.QAbstractItemModel.endResetModel": (),
- "PySide2.QtCore.QAbstractItemModel.fetchMore": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractItemModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractItemModel.hasChildren": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractItemModel.hasIndex": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtCore.QAbstractItemModel.index": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.insertColumn": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.insertColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.insertRow": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.insertRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.itemData": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractItemModel.match": ('PySide2.QtCore.QModelIndex', 'int', 'typing.Any', 'int', 'PySide2.QtCore.Qt.MatchFlags'),
- "PySide2.QtCore.QAbstractItemModel.mimeData": ('typing.List[int]',),
- "PySide2.QtCore.QAbstractItemModel.mimeTypes": (),
- "PySide2.QtCore.QAbstractItemModel.moveColumn": ('PySide2.QtCore.QModelIndex', 'int', 'PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QAbstractItemModel.moveColumns": ('PySide2.QtCore.QModelIndex', 'int', 'int', 'PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QAbstractItemModel.moveRow": ('PySide2.QtCore.QModelIndex', 'int', 'PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QAbstractItemModel.moveRows": ('PySide2.QtCore.QModelIndex', 'int', 'int', 'PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QAbstractItemModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtCore.QAbstractItemModel.persistentIndexList": (),
- "PySide2.QtCore.QAbstractItemModel.removeColumn": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.removeColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.removeRow": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.removeRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.resetInternalData": (),
- "PySide2.QtCore.QAbstractItemModel.revert": (),
- "PySide2.QtCore.QAbstractItemModel.roleNames": (),
- "PySide2.QtCore.QAbstractItemModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractItemModel.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
- "PySide2.QtCore.QAbstractItemModel.setHeaderData": ('int', 'PySide2.QtCore.Qt.Orientation', 'typing.Any', 'int'),
- "PySide2.QtCore.QAbstractItemModel.setItemData": ('PySide2.QtCore.QModelIndex', 'typing.Dict[int, typing.Any]'),
- "PySide2.QtCore.QAbstractItemModel.sibling": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.sort": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtCore.QAbstractItemModel.span": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractItemModel.submit": (),
- "PySide2.QtCore.QAbstractItemModel.supportedDragActions": (),
- "PySide2.QtCore.QAbstractItemModel.supportedDropActions": (),
-# class PySide2.QtCore.QAbstractListModel:
- "PySide2.QtCore.QAbstractListModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QAbstractListModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractListModel.dropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractListModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractListModel.hasChildren": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractListModel.index": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractListModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtCore.QAbstractListModel.sibling": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
-# class PySide2.QtCore.QAbstractNativeEventFilter:
- "PySide2.QtCore.QAbstractNativeEventFilter.__init__": (),
- "PySide2.QtCore.QAbstractNativeEventFilter.nativeEventFilter": ('PySide2.QtCore.QByteArray', 'int'),
-# class PySide2.QtCore.QAbstractProxyModel:
- "PySide2.QtCore.QAbstractProxyModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QAbstractProxyModel.buddy": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractProxyModel.canDropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractProxyModel.canFetchMore": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractProxyModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QAbstractProxyModel.dropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractProxyModel.fetchMore": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractProxyModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractProxyModel.hasChildren": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractProxyModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtCore.QAbstractProxyModel.itemData": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractProxyModel.mapFromSource": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractProxyModel.mapSelectionFromSource": ('PySide2.QtCore.QItemSelection',),
- "PySide2.QtCore.QAbstractProxyModel.mapSelectionToSource": ('PySide2.QtCore.QItemSelection',),
- "PySide2.QtCore.QAbstractProxyModel.mapToSource": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractProxyModel.mimeData": ('typing.List[int]',),
- "PySide2.QtCore.QAbstractProxyModel.mimeTypes": (),
- "PySide2.QtCore.QAbstractProxyModel.resetInternalData": (),
- "PySide2.QtCore.QAbstractProxyModel.revert": (),
- "PySide2.QtCore.QAbstractProxyModel.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
- "PySide2.QtCore.QAbstractProxyModel.setHeaderData": ('int', 'PySide2.QtCore.Qt.Orientation', 'typing.Any', 'int'),
- "PySide2.QtCore.QAbstractProxyModel.setItemData": ('PySide2.QtCore.QModelIndex', 'typing.Dict[int, typing.Any]'),
- "PySide2.QtCore.QAbstractProxyModel.setSourceModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCore.QAbstractProxyModel.sibling": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractProxyModel.sort": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtCore.QAbstractProxyModel.sourceModel": (),
- "PySide2.QtCore.QAbstractProxyModel.span": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractProxyModel.submit": (),
- "PySide2.QtCore.QAbstractProxyModel.supportedDragActions": (),
- "PySide2.QtCore.QAbstractProxyModel.supportedDropActions": (),
-# class PySide2.QtCore.QAbstractState:
- "PySide2.QtCore.QAbstractState.__init__": ('PySide2.QtCore.QState',),
- "PySide2.QtCore.QAbstractState.active": (),
- "PySide2.QtCore.QAbstractState.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QAbstractState.machine": (),
- "PySide2.QtCore.QAbstractState.onEntry": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QAbstractState.onExit": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QAbstractState.parentState": (),
-# class PySide2.QtCore.QAbstractTableModel:
- "PySide2.QtCore.QAbstractTableModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QAbstractTableModel.dropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractTableModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractTableModel.hasChildren": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractTableModel.index": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractTableModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtCore.QAbstractTableModel.sibling": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
-# class PySide2.QtCore.QAbstractTransition:
-# class PySide2.QtCore.QAbstractTransition.TransitionType:
- "PySide2.QtCore.QAbstractTransition.__init__": ('PySide2.QtCore.QState',),
- "PySide2.QtCore.QAbstractTransition.addAnimation": ('PySide2.QtCore.QAbstractAnimation',),
- "PySide2.QtCore.QAbstractTransition.animations": (),
- "PySide2.QtCore.QAbstractTransition.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QAbstractTransition.eventTest": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QAbstractTransition.machine": (),
- "PySide2.QtCore.QAbstractTransition.onTransition": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QAbstractTransition.removeAnimation": ('PySide2.QtCore.QAbstractAnimation',),
- "PySide2.QtCore.QAbstractTransition.setTargetState": ('PySide2.QtCore.QAbstractState',),
- "PySide2.QtCore.QAbstractTransition.setTargetStates": ('typing.Sequence[PySide2.QtCore.QAbstractState]',),
- "PySide2.QtCore.QAbstractTransition.setTransitionType": ('PySide2.QtCore.QAbstractTransition.TransitionType',),
- "PySide2.QtCore.QAbstractTransition.sourceState": (),
- "PySide2.QtCore.QAbstractTransition.targetState": (),
- "PySide2.QtCore.QAbstractTransition.targetStates": (),
- "PySide2.QtCore.QAbstractTransition.transitionType": (),
-# class PySide2.QtCore.QAnimationGroup:
- "PySide2.QtCore.QAnimationGroup.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QAnimationGroup.addAnimation": ('PySide2.QtCore.QAbstractAnimation',),
- "PySide2.QtCore.QAnimationGroup.animationAt": ('int',),
- "PySide2.QtCore.QAnimationGroup.animationCount": (),
- "PySide2.QtCore.QAnimationGroup.clear": (),
- "PySide2.QtCore.QAnimationGroup.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QAnimationGroup.indexOfAnimation": ('PySide2.QtCore.QAbstractAnimation',),
- "PySide2.QtCore.QAnimationGroup.insertAnimation": ('int', 'PySide2.QtCore.QAbstractAnimation'),
- "PySide2.QtCore.QAnimationGroup.removeAnimation": ('PySide2.QtCore.QAbstractAnimation',),
- "PySide2.QtCore.QAnimationGroup.takeAnimation": ('int',),
-# class PySide2.QtCore.QBasicMutex:
- "PySide2.QtCore.QBasicMutex.__init__": (),
- "PySide2.QtCore.QBasicMutex.isRecursive": (),
- "PySide2.QtCore.QBasicMutex.lock": (),
- "PySide2.QtCore.QBasicMutex.tryLock": (),
- "PySide2.QtCore.QBasicMutex.try_lock": (),
- "PySide2.QtCore.QBasicMutex.unlock": (),
-# class PySide2.QtCore.QBasicTimer:
- "PySide2.QtCore.QBasicTimer.__init__": [(), ('PySide2.QtCore.QBasicTimer',)],
- "PySide2.QtCore.QBasicTimer.__copy__": (),
- "PySide2.QtCore.QBasicTimer.isActive": (),
- "PySide2.QtCore.QBasicTimer.start": [('int', 'PySide2.QtCore.QObject'), ('int', 'PySide2.QtCore.Qt.TimerType', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QBasicTimer.stop": (),
- "PySide2.QtCore.QBasicTimer.swap": ('PySide2.QtCore.QBasicTimer',),
- "PySide2.QtCore.QBasicTimer.timerId": (),
-# class PySide2.QtCore.QBitArray:
- "PySide2.QtCore.QBitArray.__init__": [(), ('PySide2.QtCore.QBitArray',), ('int', 'bool')],
- "PySide2.QtCore.QBitArray.__and__": ('PySide2.QtCore.QBitArray',),
- "PySide2.QtCore.QBitArray.__copy__": (),
- "PySide2.QtCore.QBitArray.__iand__": ('PySide2.QtCore.QBitArray',),
- "PySide2.QtCore.QBitArray.__invert__": (),
- "PySide2.QtCore.QBitArray.__ior__": ('PySide2.QtCore.QBitArray',),
- "PySide2.QtCore.QBitArray.__ixor__": ('PySide2.QtCore.QBitArray',),
- "PySide2.QtCore.QBitArray.__or__": ('PySide2.QtCore.QBitArray',),
- "PySide2.QtCore.QBitArray.__xor__": ('PySide2.QtCore.QBitArray',),
- "PySide2.QtCore.QBitArray.at": ('int',),
- "PySide2.QtCore.QBitArray.bits": (),
- "PySide2.QtCore.QBitArray.clear": (),
- "PySide2.QtCore.QBitArray.clearBit": ('int',),
- "PySide2.QtCore.QBitArray.count": [(), ('bool',)],
- "PySide2.QtCore.QBitArray.fill": [('bool', 'int'), ('bool', 'int', 'int')],
- "PySide2.QtCore.QBitArray.fromBits": ('str', 'int'),
- "PySide2.QtCore.QBitArray.isEmpty": (),
- "PySide2.QtCore.QBitArray.isNull": (),
- "PySide2.QtCore.QBitArray.resize": ('int',),
- "PySide2.QtCore.QBitArray.setBit": [('int',), ('int', 'bool')],
- "PySide2.QtCore.QBitArray.size": (),
- "PySide2.QtCore.QBitArray.swap": ('PySide2.QtCore.QBitArray',),
- "PySide2.QtCore.QBitArray.testBit": ('int',),
- "PySide2.QtCore.QBitArray.toggleBit": ('int',),
- "PySide2.QtCore.QBitArray.truncate": ('int',),
-# class PySide2.QtCore.QBuffer:
- "PySide2.QtCore.QBuffer.__init__": [('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QObject',)],
- "PySide2.QtCore.QBuffer.atEnd": (),
- "PySide2.QtCore.QBuffer.buffer": (),
- "PySide2.QtCore.QBuffer.canReadLine": (),
- "PySide2.QtCore.QBuffer.close": (),
- "PySide2.QtCore.QBuffer.connectNotify": ('PySide2.QtCore.QMetaMethod',),
- "PySide2.QtCore.QBuffer.data": (),
- "PySide2.QtCore.QBuffer.disconnectNotify": ('PySide2.QtCore.QMetaMethod',),
- "PySide2.QtCore.QBuffer.open": ('PySide2.QtCore.QIODevice.OpenMode',),
- "PySide2.QtCore.QBuffer.pos": (),
- "PySide2.QtCore.QBuffer.readData": ('str', 'int'),
- "PySide2.QtCore.QBuffer.seek": ('int',),
- "PySide2.QtCore.QBuffer.setBuffer": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QBuffer.setData": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QBuffer.size": (),
- "PySide2.QtCore.QBuffer.writeData": ('str', 'int'),
-# class PySide2.QtCore.QByteArray:
-# class PySide2.QtCore.QByteArray.Base64Option:
-# class PySide2.QtCore.QByteArray.Base64Options:
- "PySide2.QtCore.QByteArray.__init__": [(), ('PySide2.QtCore.QByteArray',), ('bytearray',), ('int', 'int'), ('str',)],
- "PySide2.QtCore.QByteArray.__add__": [('PySide2.QtCore.QByteArray',), ('bytearray',), ('int',), ('str',)],
- "PySide2.QtCore.QByteArray.__copy__": (),
- "PySide2.QtCore.QByteArray.__iadd__": [('PySide2.QtCore.QByteArray',), ('bytearray',), ('int',)],
- "PySide2.QtCore.QByteArray.__reduce__": (),
- "PySide2.QtCore.QByteArray.__repr__": (),
- "PySide2.QtCore.QByteArray.__str__": (),
- "PySide2.QtCore.QByteArray.append": [('PySide2.QtCore.QByteArray',), ('int',), ('int', 'int')],
- "PySide2.QtCore.QByteArray.at": ('int',),
- "PySide2.QtCore.QByteArray.back": (),
- "PySide2.QtCore.QByteArray.capacity": (),
- "PySide2.QtCore.QByteArray.cbegin": (),
- "PySide2.QtCore.QByteArray.cend": (),
- "PySide2.QtCore.QByteArray.chop": ('int',),
- "PySide2.QtCore.QByteArray.chopped": ('int',),
- "PySide2.QtCore.QByteArray.clear": (),
- "PySide2.QtCore.QByteArray.compare": [('PySide2.QtCore.QByteArray', 'PySide2.QtCore.Qt.CaseSensitivity'), ('str', 'PySide2.QtCore.Qt.CaseSensitivity')],
- "PySide2.QtCore.QByteArray.contains": [('PySide2.QtCore.QByteArray',), ('int',)],
- "PySide2.QtCore.QByteArray.count": [(), ('PySide2.QtCore.QByteArray',), ('int',)],
- "PySide2.QtCore.QByteArray.data": (),
- "PySide2.QtCore.QByteArray.endsWith": [('PySide2.QtCore.QByteArray',), ('int',)],
- "PySide2.QtCore.QByteArray.fill": ('int', 'int'),
- "PySide2.QtCore.QByteArray.fromBase64": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray.Base64Options')],
- "PySide2.QtCore.QByteArray.fromHex": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QByteArray.fromPercentEncoding": ('PySide2.QtCore.QByteArray', 'int'),
- "PySide2.QtCore.QByteArray.fromRawData": ('str', 'int'),
- "PySide2.QtCore.QByteArray.front": (),
- "PySide2.QtCore.QByteArray.indexOf": ('PySide2.QtCore.QByteArray', 'int'),
- "PySide2.QtCore.QByteArray.insert": [('int', 'PySide2.QtCore.QByteArray'), ('int', 'int', 'int')],
- "PySide2.QtCore.QByteArray.isEmpty": (),
- "PySide2.QtCore.QByteArray.isLower": (),
- "PySide2.QtCore.QByteArray.isNull": (),
- "PySide2.QtCore.QByteArray.isSharedWith": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QByteArray.isUpper": (),
- "PySide2.QtCore.QByteArray.lastIndexOf": ('PySide2.QtCore.QByteArray', 'int'),
- "PySide2.QtCore.QByteArray.left": ('int',),
- "PySide2.QtCore.QByteArray.leftJustified": ('int', 'int', 'bool'),
- "PySide2.QtCore.QByteArray.length": (),
- "PySide2.QtCore.QByteArray.mid": ('int', 'int'),
- "PySide2.QtCore.QByteArray.number": [('float', 'int', 'int'), ('int', 'int')],
- "PySide2.QtCore.QByteArray.prepend": [('PySide2.QtCore.QByteArray',), ('int',), ('int', 'int')],
- "PySide2.QtCore.QByteArray.remove": ('int', 'int'),
- "PySide2.QtCore.QByteArray.repeated": ('int',),
- "PySide2.QtCore.QByteArray.replace": [('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'), ('int', 'PySide2.QtCore.QByteArray'), ('int', 'int'), ('int', 'int', 'PySide2.QtCore.QByteArray'), ('str', 'PySide2.QtCore.QByteArray')],
- "PySide2.QtCore.QByteArray.reserve": ('int',),
- "PySide2.QtCore.QByteArray.resize": ('int',),
- "PySide2.QtCore.QByteArray.right": ('int',),
- "PySide2.QtCore.QByteArray.rightJustified": ('int', 'int', 'bool'),
- "PySide2.QtCore.QByteArray.setNum": [('float', 'int', 'int'), ('int', 'int')],
- "PySide2.QtCore.QByteArray.setRawData": ('str', 'int'),
- "PySide2.QtCore.QByteArray.shrink_to_fit": (),
- "PySide2.QtCore.QByteArray.simplified": (),
- "PySide2.QtCore.QByteArray.size": (),
- "PySide2.QtCore.QByteArray.split": ('int',),
- "PySide2.QtCore.QByteArray.squeeze": (),
- "PySide2.QtCore.QByteArray.startsWith": [('PySide2.QtCore.QByteArray',), ('int',)],
- "PySide2.QtCore.QByteArray.swap": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QByteArray.toBase64": [(), ('PySide2.QtCore.QByteArray.Base64Options',)],
- "PySide2.QtCore.QByteArray.toDouble": (),
- "PySide2.QtCore.QByteArray.toFloat": (),
- "PySide2.QtCore.QByteArray.toHex": [(), ('int',)],
- "PySide2.QtCore.QByteArray.toInt": ('int',),
- "PySide2.QtCore.QByteArray.toLong": ('int',),
- "PySide2.QtCore.QByteArray.toLongLong": ('int',),
- "PySide2.QtCore.QByteArray.toLower": (),
- "PySide2.QtCore.QByteArray.toPercentEncoding": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray', 'int'),
- "PySide2.QtCore.QByteArray.toShort": ('int',),
- "PySide2.QtCore.QByteArray.toUInt": ('int',),
- "PySide2.QtCore.QByteArray.toULong": ('int',),
- "PySide2.QtCore.QByteArray.toULongLong": ('int',),
- "PySide2.QtCore.QByteArray.toUShort": ('int',),
- "PySide2.QtCore.QByteArray.toUpper": (),
- "PySide2.QtCore.QByteArray.trimmed": (),
- "PySide2.QtCore.QByteArray.truncate": ('int',),
-# class PySide2.QtCore.QByteArrayMatcher:
- "PySide2.QtCore.QByteArrayMatcher.__init__": [(), ('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QByteArrayMatcher',), ('str', 'int')],
- "PySide2.QtCore.QByteArrayMatcher.__copy__": (),
- "PySide2.QtCore.QByteArrayMatcher.indexIn": [('PySide2.QtCore.QByteArray', 'int'), ('str', 'int', 'int')],
- "PySide2.QtCore.QByteArrayMatcher.pattern": (),
- "PySide2.QtCore.QByteArrayMatcher.setPattern": ('PySide2.QtCore.QByteArray',),
-# class PySide2.QtCore.QCalendar:
-# class PySide2.QtCore.QCalendar.System:
-# class PySide2.QtCore.QCalendar.YearMonthDay:
- "PySide2.QtCore.QCalendar.YearMonthDay.__init__": [(), ('PySide2.QtCore.QCalendar.YearMonthDay',), ('int', 'int', 'int')],
- "PySide2.QtCore.QCalendar.YearMonthDay.__copy__": (),
- "PySide2.QtCore.QCalendar.YearMonthDay.isValid": (),
- "PySide2.QtCore.QCalendar.__init__": [(), ('PySide2.QtCore.QCalendar.System',)],
- "PySide2.QtCore.QCalendar.__copy__": (),
- "PySide2.QtCore.QCalendar.availableCalendars": (),
- "PySide2.QtCore.QCalendar.dateFromParts": [('PySide2.QtCore.QCalendar.YearMonthDay',), ('int', 'int', 'int')],
- "PySide2.QtCore.QCalendar.dayOfWeek": ('PySide2.QtCore.QDate',),
- "PySide2.QtCore.QCalendar.daysInMonth": ('int', 'int'),
- "PySide2.QtCore.QCalendar.daysInYear": ('int',),
- "PySide2.QtCore.QCalendar.hasYearZero": (),
- "PySide2.QtCore.QCalendar.isDateValid": ('int', 'int', 'int'),
- "PySide2.QtCore.QCalendar.isGregorian": (),
- "PySide2.QtCore.QCalendar.isLeapYear": ('int',),
- "PySide2.QtCore.QCalendar.isLunar": (),
- "PySide2.QtCore.QCalendar.isLuniSolar": (),
- "PySide2.QtCore.QCalendar.isProleptic": (),
- "PySide2.QtCore.QCalendar.isSolar": (),
- "PySide2.QtCore.QCalendar.isValid": (),
- "PySide2.QtCore.QCalendar.maximumDaysInMonth": (),
- "PySide2.QtCore.QCalendar.maximumMonthsInYear": (),
- "PySide2.QtCore.QCalendar.minimumDaysInMonth": (),
- "PySide2.QtCore.QCalendar.monthName": ('PySide2.QtCore.QLocale', 'int', 'int', 'PySide2.QtCore.QLocale.FormatType'),
- "PySide2.QtCore.QCalendar.monthsInYear": ('int',),
- "PySide2.QtCore.QCalendar.name": (),
- "PySide2.QtCore.QCalendar.partsFromDate": ('PySide2.QtCore.QDate',),
- "PySide2.QtCore.QCalendar.standaloneMonthName": ('PySide2.QtCore.QLocale', 'int', 'int', 'PySide2.QtCore.QLocale.FormatType'),
- "PySide2.QtCore.QCalendar.standaloneWeekDayName": ('PySide2.QtCore.QLocale', 'int', 'PySide2.QtCore.QLocale.FormatType'),
- "PySide2.QtCore.QCalendar.weekDayName": ('PySide2.QtCore.QLocale', 'int', 'PySide2.QtCore.QLocale.FormatType'),
-# class PySide2.QtCore.QCborArray:
- "PySide2.QtCore.QCborArray.__init__": [(), ('PySide2.QtCore.QCborArray',)],
- "PySide2.QtCore.QCborArray.__add__": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborArray.__copy__": (),
- "PySide2.QtCore.QCborArray.__iadd__": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborArray.__lshift__": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborArray.append": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborArray.at": ('int',),
- "PySide2.QtCore.QCborArray.clear": (),
- "PySide2.QtCore.QCborArray.compare": ('PySide2.QtCore.QCborArray',),
- "PySide2.QtCore.QCborArray.contains": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborArray.empty": (),
- "PySide2.QtCore.QCborArray.first": (),
- "PySide2.QtCore.QCborArray.fromJsonArray": ('PySide2.QtCore.QJsonArray',),
- "PySide2.QtCore.QCborArray.fromStringList": ('typing.Sequence[str]',),
- "PySide2.QtCore.QCborArray.fromVariantList": ('typing.Sequence[typing.Any]',),
- "PySide2.QtCore.QCborArray.insert": ('int', 'PySide2.QtCore.QCborValue'),
- "PySide2.QtCore.QCborArray.isEmpty": (),
- "PySide2.QtCore.QCborArray.last": (),
- "PySide2.QtCore.QCborArray.pop_back": (),
- "PySide2.QtCore.QCborArray.pop_front": (),
- "PySide2.QtCore.QCborArray.prepend": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborArray.push_back": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborArray.push_front": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborArray.removeAt": ('int',),
- "PySide2.QtCore.QCborArray.removeFirst": (),
- "PySide2.QtCore.QCborArray.removeLast": (),
- "PySide2.QtCore.QCborArray.size": (),
- "PySide2.QtCore.QCborArray.swap": ('PySide2.QtCore.QCborArray',),
- "PySide2.QtCore.QCborArray.takeAt": ('int',),
- "PySide2.QtCore.QCborArray.takeFirst": (),
- "PySide2.QtCore.QCborArray.takeLast": (),
- "PySide2.QtCore.QCborArray.toCborValue": (),
- "PySide2.QtCore.QCborArray.toJsonArray": (),
- "PySide2.QtCore.QCborArray.toVariantList": (),
-# class PySide2.QtCore.QCborError:
-# class PySide2.QtCore.QCborError.Code:
- "PySide2.QtCore.QCborError.__init__": [(), ('PySide2.QtCore.QCborError',)],
- "PySide2.QtCore.QCborError.__copy__": (),
- "PySide2.QtCore.QCborError.toString": (),
-# class PySide2.QtCore.QCborKnownTags:
-# class PySide2.QtCore.QCborMap:
- "PySide2.QtCore.QCborMap.__init__": [(), ('PySide2.QtCore.QCborMap',)],
- "PySide2.QtCore.QCborMap.__copy__": (),
- "PySide2.QtCore.QCborMap.clear": (),
- "PySide2.QtCore.QCborMap.compare": ('PySide2.QtCore.QCborMap',),
- "PySide2.QtCore.QCborMap.contains": [('PySide2.QtCore.QCborValue',), ('int',), ('str',)],
- "PySide2.QtCore.QCborMap.empty": (),
- "PySide2.QtCore.QCborMap.fromJsonObject": ('typing.Dict[str, PySide2.QtCore.QJsonValue]',),
- "PySide2.QtCore.QCborMap.fromVariantHash": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtCore.QCborMap.fromVariantMap": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtCore.QCborMap.isEmpty": (),
- "PySide2.QtCore.QCborMap.keys": (),
- "PySide2.QtCore.QCborMap.remove": [('PySide2.QtCore.QCborValue',), ('int',), ('str',)],
- "PySide2.QtCore.QCborMap.size": (),
- "PySide2.QtCore.QCborMap.swap": ('PySide2.QtCore.QCborMap',),
- "PySide2.QtCore.QCborMap.take": [('PySide2.QtCore.QCborValue',), ('int',), ('str',)],
- "PySide2.QtCore.QCborMap.toCborValue": (),
- "PySide2.QtCore.QCborMap.toJsonObject": (),
- "PySide2.QtCore.QCborMap.toVariantHash": (),
- "PySide2.QtCore.QCborMap.toVariantMap": (),
- "PySide2.QtCore.QCborMap.value": [('PySide2.QtCore.QCborValue',), ('int',), ('str',)],
-# class PySide2.QtCore.QCborParserError:
- "PySide2.QtCore.QCborParserError.__init__": [(), ('PySide2.QtCore.QCborParserError',)],
- "PySide2.QtCore.QCborParserError.__copy__": (),
- "PySide2.QtCore.QCborParserError.errorString": (),
-# class PySide2.QtCore.QCborSimpleType:
-# class PySide2.QtCore.QCborStreamReader:
-# class PySide2.QtCore.QCborStreamReader.StringResultCode:
-# class PySide2.QtCore.QCborStreamReader.Type:
- "PySide2.QtCore.QCborStreamReader.__init__": [(), ('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QIODevice',), ('bytearray', 'int'), ('str', 'int')],
- "PySide2.QtCore.QCborStreamReader.addData": [('PySide2.QtCore.QByteArray',), ('bytearray', 'int'), ('str', 'int')],
- "PySide2.QtCore.QCborStreamReader.clear": (),
- "PySide2.QtCore.QCborStreamReader.containerDepth": (),
- "PySide2.QtCore.QCborStreamReader.currentOffset": (),
- "PySide2.QtCore.QCborStreamReader.currentStringChunkSize": (),
- "PySide2.QtCore.QCborStreamReader.device": (),
- "PySide2.QtCore.QCborStreamReader.enterContainer": (),
- "PySide2.QtCore.QCborStreamReader.hasNext": (),
- "PySide2.QtCore.QCborStreamReader.isArray": (),
- "PySide2.QtCore.QCborStreamReader.isBool": (),
- "PySide2.QtCore.QCborStreamReader.isByteArray": (),
- "PySide2.QtCore.QCborStreamReader.isContainer": (),
- "PySide2.QtCore.QCborStreamReader.isDouble": (),
- "PySide2.QtCore.QCborStreamReader.isFalse": (),
- "PySide2.QtCore.QCborStreamReader.isFloat": (),
- "PySide2.QtCore.QCborStreamReader.isFloat16": (),
- "PySide2.QtCore.QCborStreamReader.isInteger": (),
- "PySide2.QtCore.QCborStreamReader.isInvalid": (),
- "PySide2.QtCore.QCborStreamReader.isLengthKnown": (),
- "PySide2.QtCore.QCborStreamReader.isMap": (),
- "PySide2.QtCore.QCborStreamReader.isNegativeInteger": (),
- "PySide2.QtCore.QCborStreamReader.isNull": (),
- "PySide2.QtCore.QCborStreamReader.isSimpleType": [(), ('PySide2.QtCore.QCborSimpleType',)],
- "PySide2.QtCore.QCborStreamReader.isString": (),
- "PySide2.QtCore.QCborStreamReader.isTag": (),
- "PySide2.QtCore.QCborStreamReader.isTrue": (),
- "PySide2.QtCore.QCborStreamReader.isUndefined": (),
- "PySide2.QtCore.QCborStreamReader.isUnsignedInteger": (),
- "PySide2.QtCore.QCborStreamReader.isValid": (),
- "PySide2.QtCore.QCborStreamReader.lastError": (),
- "PySide2.QtCore.QCborStreamReader.leaveContainer": (),
- "PySide2.QtCore.QCborStreamReader.length": (),
- "PySide2.QtCore.QCborStreamReader.parentContainerType": (),
- "PySide2.QtCore.QCborStreamReader.readByteArray": (),
- "PySide2.QtCore.QCborStreamReader.readString": (),
- "PySide2.QtCore.QCborStreamReader.reparse": (),
- "PySide2.QtCore.QCborStreamReader.reset": (),
- "PySide2.QtCore.QCborStreamReader.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtCore.QCborStreamReader.toBool": (),
- "PySide2.QtCore.QCborStreamReader.toDouble": (),
- "PySide2.QtCore.QCborStreamReader.toFloat": (),
- "PySide2.QtCore.QCborStreamReader.toInteger": (),
- "PySide2.QtCore.QCborStreamReader.toSimpleType": (),
- "PySide2.QtCore.QCborStreamReader.toUnsignedInteger": (),
- "PySide2.QtCore.QCborStreamReader.type": (),
-# class PySide2.QtCore.QCborStreamWriter:
- "PySide2.QtCore.QCborStreamWriter.__init__": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QIODevice',)],
- "PySide2.QtCore.QCborStreamWriter.append": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QCborKnownTags',), ('PySide2.QtCore.QCborSimpleType',), ('bool',), ('float',), ('int',), ('str', 'int')],
- "PySide2.QtCore.QCborStreamWriter.appendByteString": ('str', 'int'),
- "PySide2.QtCore.QCborStreamWriter.appendNull": (),
- "PySide2.QtCore.QCborStreamWriter.appendTextString": ('str', 'int'),
- "PySide2.QtCore.QCborStreamWriter.appendUndefined": (),
- "PySide2.QtCore.QCborStreamWriter.device": (),
- "PySide2.QtCore.QCborStreamWriter.endArray": (),
- "PySide2.QtCore.QCborStreamWriter.endMap": (),
- "PySide2.QtCore.QCborStreamWriter.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtCore.QCborStreamWriter.startArray": [(), ('int',)],
- "PySide2.QtCore.QCborStreamWriter.startMap": [(), ('int',)],
-# class PySide2.QtCore.QCborStringResultByteArray:
- "PySide2.QtCore.QCborStringResultByteArray.__init__": [(), ('PySide2.QtCore.QCborStringResultByteArray',)],
- "PySide2.QtCore.QCborStringResultByteArray.__copy__": (),
-# class PySide2.QtCore.QCborStringResultString:
- "PySide2.QtCore.QCborStringResultString.__init__": [(), ('PySide2.QtCore.QCborStringResultString',)],
- "PySide2.QtCore.QCborStringResultString.__copy__": (),
-# class PySide2.QtCore.QCborValue:
-# class PySide2.QtCore.QCborValue.DiagnosticNotationOption:
-# class PySide2.QtCore.QCborValue.DiagnosticNotationOptions:
-# class PySide2.QtCore.QCborValue.EncodingOption:
-# class PySide2.QtCore.QCborValue.EncodingOptions:
-# class PySide2.QtCore.QCborValue.Type:
- "PySide2.QtCore.QCborValue.__init__": [(), ('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QCborArray',), ('PySide2.QtCore.QCborKnownTags', 'PySide2.QtCore.QCborValue'), ('PySide2.QtCore.QCborMap',), ('PySide2.QtCore.QCborSimpleType',), ('PySide2.QtCore.QCborValue',), ('PySide2.QtCore.QCborValue.Type',), ('PySide2.QtCore.QDateTime',), ('PySide2.QtCore.QRegularExpression',), ('PySide2.QtCore.QUrl',), ('PySide2.QtCore.QUuid',), ('bool',), ('float',), ('int',), ('str',)],
- "PySide2.QtCore.QCborValue.__copy__": (),
- "PySide2.QtCore.QCborValue.compare": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborValue.fromCbor": [('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QCborParserError'), ('PySide2.QtCore.QCborStreamReader',), ('bytearray', 'int', 'PySide2.QtCore.QCborParserError'), ('str', 'int', 'PySide2.QtCore.QCborParserError')],
- "PySide2.QtCore.QCborValue.fromJsonValue": ('PySide2.QtCore.QJsonValue',),
- "PySide2.QtCore.QCborValue.fromVariant": ('typing.Any',),
- "PySide2.QtCore.QCborValue.isArray": (),
- "PySide2.QtCore.QCborValue.isBool": (),
- "PySide2.QtCore.QCborValue.isByteArray": (),
- "PySide2.QtCore.QCborValue.isContainer": (),
- "PySide2.QtCore.QCborValue.isDateTime": (),
- "PySide2.QtCore.QCborValue.isDouble": (),
- "PySide2.QtCore.QCborValue.isFalse": (),
- "PySide2.QtCore.QCborValue.isInteger": (),
- "PySide2.QtCore.QCborValue.isInvalid": (),
- "PySide2.QtCore.QCborValue.isMap": (),
- "PySide2.QtCore.QCborValue.isNull": (),
- "PySide2.QtCore.QCborValue.isRegularExpression": (),
- "PySide2.QtCore.QCborValue.isSimpleType": [(), ('PySide2.QtCore.QCborSimpleType',)],
- "PySide2.QtCore.QCborValue.isString": (),
- "PySide2.QtCore.QCborValue.isTag": (),
- "PySide2.QtCore.QCborValue.isTrue": (),
- "PySide2.QtCore.QCborValue.isUndefined": (),
- "PySide2.QtCore.QCborValue.isUrl": (),
- "PySide2.QtCore.QCborValue.isUuid": (),
- "PySide2.QtCore.QCborValue.swap": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborValue.taggedValue": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborValue.toArray": [(), ('PySide2.QtCore.QCborArray',)],
- "PySide2.QtCore.QCborValue.toBool": ('bool',),
- "PySide2.QtCore.QCborValue.toByteArray": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QCborValue.toCbor": [('PySide2.QtCore.QCborStreamWriter', 'PySide2.QtCore.QCborValue.EncodingOptions'), ('PySide2.QtCore.QCborValue.EncodingOptions',)],
- "PySide2.QtCore.QCborValue.toDateTime": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QCborValue.toDiagnosticNotation": ('PySide2.QtCore.QCborValue.DiagnosticNotationOptions',),
- "PySide2.QtCore.QCborValue.toDouble": ('float',),
- "PySide2.QtCore.QCborValue.toInteger": ('int',),
- "PySide2.QtCore.QCborValue.toJsonValue": (),
- "PySide2.QtCore.QCborValue.toMap": [(), ('PySide2.QtCore.QCborMap',)],
- "PySide2.QtCore.QCborValue.toRegularExpression": ('PySide2.QtCore.QRegularExpression',),
- "PySide2.QtCore.QCborValue.toSimpleType": ('PySide2.QtCore.QCborSimpleType',),
- "PySide2.QtCore.QCborValue.toString": ('str',),
- "PySide2.QtCore.QCborValue.toUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtCore.QCborValue.toUuid": ('PySide2.QtCore.QUuid',),
- "PySide2.QtCore.QCborValue.toVariant": (),
- "PySide2.QtCore.QCborValue.type": (),
-# class PySide2.QtCore.QChildEvent:
- "PySide2.QtCore.QChildEvent.__init__": ('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.QObject'),
- "PySide2.QtCore.QChildEvent.added": (),
- "PySide2.QtCore.QChildEvent.child": (),
- "PySide2.QtCore.QChildEvent.polished": (),
- "PySide2.QtCore.QChildEvent.removed": (),
-# class PySide2.QtCore.QCollator:
- "PySide2.QtCore.QCollator.__init__": [(), ('PySide2.QtCore.QCollator',), ('PySide2.QtCore.QLocale',)],
- "PySide2.QtCore.QCollator.__call__": ('str', 'str'),
- "PySide2.QtCore.QCollator.caseSensitivity": (),
- "PySide2.QtCore.QCollator.compare": [('str', 'int', 'str', 'int'), ('str', 'str')],
- "PySide2.QtCore.QCollator.ignorePunctuation": (),
- "PySide2.QtCore.QCollator.locale": (),
- "PySide2.QtCore.QCollator.numericMode": (),
- "PySide2.QtCore.QCollator.setCaseSensitivity": ('PySide2.QtCore.Qt.CaseSensitivity',),
- "PySide2.QtCore.QCollator.setIgnorePunctuation": ('bool',),
- "PySide2.QtCore.QCollator.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtCore.QCollator.setNumericMode": ('bool',),
- "PySide2.QtCore.QCollator.sortKey": ('str',),
- "PySide2.QtCore.QCollator.swap": ('PySide2.QtCore.QCollator',),
-# class PySide2.QtCore.QCollatorSortKey:
- "PySide2.QtCore.QCollatorSortKey.__init__": ('PySide2.QtCore.QCollatorSortKey',),
- "PySide2.QtCore.QCollatorSortKey.compare": ('PySide2.QtCore.QCollatorSortKey',),
- "PySide2.QtCore.QCollatorSortKey.swap": ('PySide2.QtCore.QCollatorSortKey',),
-# class PySide2.QtCore.QCommandLineOption:
-# class PySide2.QtCore.QCommandLineOption.Flag:
-# class PySide2.QtCore.QCommandLineOption.Flags:
- "PySide2.QtCore.QCommandLineOption.__init__": [('PySide2.QtCore.QCommandLineOption',), ('str',), ('str', 'str', 'str', 'str'), ('typing.Sequence[str]',), ('typing.Sequence[str]', 'str', 'str', 'str')],
- "PySide2.QtCore.QCommandLineOption.defaultValues": (),
- "PySide2.QtCore.QCommandLineOption.description": (),
- "PySide2.QtCore.QCommandLineOption.flags": (),
- "PySide2.QtCore.QCommandLineOption.isHidden": (),
- "PySide2.QtCore.QCommandLineOption.names": (),
- "PySide2.QtCore.QCommandLineOption.setDefaultValue": ('str',),
- "PySide2.QtCore.QCommandLineOption.setDefaultValues": ('typing.Sequence[str]',),
- "PySide2.QtCore.QCommandLineOption.setDescription": ('str',),
- "PySide2.QtCore.QCommandLineOption.setFlags": ('PySide2.QtCore.QCommandLineOption.Flags',),
- "PySide2.QtCore.QCommandLineOption.setHidden": ('bool',),
- "PySide2.QtCore.QCommandLineOption.setValueName": ('str',),
- "PySide2.QtCore.QCommandLineOption.swap": ('PySide2.QtCore.QCommandLineOption',),
- "PySide2.QtCore.QCommandLineOption.valueName": (),
-# class PySide2.QtCore.QCommandLineParser:
-# class PySide2.QtCore.QCommandLineParser.OptionsAfterPositionalArgumentsMode:
-# class PySide2.QtCore.QCommandLineParser.SingleDashWordOptionMode:
- "PySide2.QtCore.QCommandLineParser.__init__": (),
- "PySide2.QtCore.QCommandLineParser.addHelpOption": (),
- "PySide2.QtCore.QCommandLineParser.addOption": ('PySide2.QtCore.QCommandLineOption',),
- "PySide2.QtCore.QCommandLineParser.addOptions": ('typing.Sequence[PySide2.QtCore.QCommandLineOption]',),
- "PySide2.QtCore.QCommandLineParser.addPositionalArgument": ('str', 'str', 'str'),
- "PySide2.QtCore.QCommandLineParser.addVersionOption": (),
- "PySide2.QtCore.QCommandLineParser.applicationDescription": (),
- "PySide2.QtCore.QCommandLineParser.clearPositionalArguments": (),
- "PySide2.QtCore.QCommandLineParser.errorText": (),
- "PySide2.QtCore.QCommandLineParser.helpText": (),
- "PySide2.QtCore.QCommandLineParser.isSet": [('PySide2.QtCore.QCommandLineOption',), ('str',)],
- "PySide2.QtCore.QCommandLineParser.optionNames": (),
- "PySide2.QtCore.QCommandLineParser.parse": ('typing.Sequence[str]',),
- "PySide2.QtCore.QCommandLineParser.positionalArguments": (),
- "PySide2.QtCore.QCommandLineParser.process": [('PySide2.QtCore.QCoreApplication',), ('typing.Sequence[str]',)],
- "PySide2.QtCore.QCommandLineParser.setApplicationDescription": ('str',),
- "PySide2.QtCore.QCommandLineParser.setOptionsAfterPositionalArgumentsMode": ('PySide2.QtCore.QCommandLineParser.OptionsAfterPositionalArgumentsMode',),
- "PySide2.QtCore.QCommandLineParser.setSingleDashWordOptionMode": ('PySide2.QtCore.QCommandLineParser.SingleDashWordOptionMode',),
- "PySide2.QtCore.QCommandLineParser.showHelp": ('int',),
- "PySide2.QtCore.QCommandLineParser.showVersion": (),
- "PySide2.QtCore.QCommandLineParser.unknownOptionNames": (),
- "PySide2.QtCore.QCommandLineParser.value": [('PySide2.QtCore.QCommandLineOption',), ('str',)],
- "PySide2.QtCore.QCommandLineParser.values": [('PySide2.QtCore.QCommandLineOption',), ('str',)],
-# class PySide2.QtCore.QConcatenateTablesProxyModel:
- "PySide2.QtCore.QConcatenateTablesProxyModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QConcatenateTablesProxyModel.addSourceModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCore.QConcatenateTablesProxyModel.canDropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QConcatenateTablesProxyModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QConcatenateTablesProxyModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QConcatenateTablesProxyModel.dropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QConcatenateTablesProxyModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QConcatenateTablesProxyModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtCore.QConcatenateTablesProxyModel.index": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QConcatenateTablesProxyModel.itemData": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QConcatenateTablesProxyModel.mapFromSource": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QConcatenateTablesProxyModel.mapToSource": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QConcatenateTablesProxyModel.mimeData": ('typing.List[int]',),
- "PySide2.QtCore.QConcatenateTablesProxyModel.mimeTypes": (),
- "PySide2.QtCore.QConcatenateTablesProxyModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtCore.QConcatenateTablesProxyModel.removeSourceModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCore.QConcatenateTablesProxyModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QConcatenateTablesProxyModel.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
- "PySide2.QtCore.QConcatenateTablesProxyModel.setItemData": ('PySide2.QtCore.QModelIndex', 'typing.Dict[int, typing.Any]'),
- "PySide2.QtCore.QConcatenateTablesProxyModel.span": ('PySide2.QtCore.QModelIndex',),
-# class PySide2.QtCore.QCoreApplication:
- "PySide2.QtCore.QCoreApplication.__init__": [(), ('typing.Sequence[str]',)],
- "PySide2.QtCore.QCoreApplication.addLibraryPath": ('str',),
- "PySide2.QtCore.QCoreApplication.applicationDirPath": (),
- "PySide2.QtCore.QCoreApplication.applicationFilePath": (),
- "PySide2.QtCore.QCoreApplication.applicationName": (),
- "PySide2.QtCore.QCoreApplication.applicationPid": (),
- "PySide2.QtCore.QCoreApplication.applicationVersion": (),
- "PySide2.QtCore.QCoreApplication.arguments": (),
- "PySide2.QtCore.QCoreApplication.closingDown": (),
- "PySide2.QtCore.QCoreApplication.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QCoreApplication.eventDispatcher": (),
- "PySide2.QtCore.QCoreApplication.exec_": (),
- "PySide2.QtCore.QCoreApplication.exit": ('int',),
- "PySide2.QtCore.QCoreApplication.flush": (),
- "PySide2.QtCore.QCoreApplication.hasPendingEvents": (),
- "PySide2.QtCore.QCoreApplication.installNativeEventFilter": ('PySide2.QtCore.QAbstractNativeEventFilter',),
- "PySide2.QtCore.QCoreApplication.installTranslator": ('PySide2.QtCore.QTranslator',),
- "PySide2.QtCore.QCoreApplication.instance": (),
- "PySide2.QtCore.QCoreApplication.isQuitLockEnabled": (),
- "PySide2.QtCore.QCoreApplication.isSetuidAllowed": (),
- "PySide2.QtCore.QCoreApplication.libraryPaths": (),
- "PySide2.QtCore.QCoreApplication.notify": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtCore.QCoreApplication.organizationDomain": (),
- "PySide2.QtCore.QCoreApplication.organizationName": (),
- "PySide2.QtCore.QCoreApplication.postEvent": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent', 'int'),
- "PySide2.QtCore.QCoreApplication.processEvents": [('PySide2.QtCore.QEventLoop.ProcessEventsFlags',), ('PySide2.QtCore.QEventLoop.ProcessEventsFlags', 'int')],
- "PySide2.QtCore.QCoreApplication.quit": (),
- "PySide2.QtCore.QCoreApplication.removeLibraryPath": ('str',),
- "PySide2.QtCore.QCoreApplication.removeNativeEventFilter": ('PySide2.QtCore.QAbstractNativeEventFilter',),
- "PySide2.QtCore.QCoreApplication.removePostedEvents": ('PySide2.QtCore.QObject', 'int'),
- "PySide2.QtCore.QCoreApplication.removeTranslator": ('PySide2.QtCore.QTranslator',),
- "PySide2.QtCore.QCoreApplication.sendEvent": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtCore.QCoreApplication.sendPostedEvents": ('PySide2.QtCore.QObject', 'int'),
- "PySide2.QtCore.QCoreApplication.setApplicationName": ('str',),
- "PySide2.QtCore.QCoreApplication.setApplicationVersion": ('str',),
- "PySide2.QtCore.QCoreApplication.setAttribute": ('PySide2.QtCore.Qt.ApplicationAttribute', 'bool'),
- "PySide2.QtCore.QCoreApplication.setEventDispatcher": ('PySide2.QtCore.QAbstractEventDispatcher',),
- "PySide2.QtCore.QCoreApplication.setLibraryPaths": ('typing.Sequence[str]',),
- "PySide2.QtCore.QCoreApplication.setOrganizationDomain": ('str',),
- "PySide2.QtCore.QCoreApplication.setOrganizationName": ('str',),
- "PySide2.QtCore.QCoreApplication.setQuitLockEnabled": ('bool',),
- "PySide2.QtCore.QCoreApplication.setSetuidAllowed": ('bool',),
- "PySide2.QtCore.QCoreApplication.shutdown": (),
- "PySide2.QtCore.QCoreApplication.startingUp": (),
- "PySide2.QtCore.QCoreApplication.testAttribute": ('PySide2.QtCore.Qt.ApplicationAttribute',),
- "PySide2.QtCore.QCoreApplication.translate": ('str', 'str', 'str', 'int'),
-# class PySide2.QtCore.QCryptographicHash:
-# class PySide2.QtCore.QCryptographicHash.Algorithm:
- "PySide2.QtCore.QCryptographicHash.__init__": ('PySide2.QtCore.QCryptographicHash.Algorithm',),
- "PySide2.QtCore.QCryptographicHash.addData": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QIODevice',), ('str', 'int')],
- "PySide2.QtCore.QCryptographicHash.hash": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QCryptographicHash.Algorithm'),
- "PySide2.QtCore.QCryptographicHash.hashLength": ('PySide2.QtCore.QCryptographicHash.Algorithm',),
- "PySide2.QtCore.QCryptographicHash.reset": (),
- "PySide2.QtCore.QCryptographicHash.result": (),
-# class PySide2.QtCore.QDataStream:
-# class PySide2.QtCore.QDataStream.ByteOrder:
-# class PySide2.QtCore.QDataStream.FloatingPointPrecision:
-# class PySide2.QtCore.QDataStream.Status:
-# class PySide2.QtCore.QDataStream.Version:
- "PySide2.QtCore.QDataStream.__init__": [(), ('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QIODevice.OpenMode'), ('PySide2.QtCore.QIODevice',)],
- "PySide2.QtCore.QDataStream.__lshift__": [('PySide2.QtCore.QBitArray',), ('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QCborArray',), ('PySide2.QtCore.QCborMap',), ('PySide2.QtCore.QCborValue',), ('PySide2.QtCore.QDate',), ('PySide2.QtCore.QDateTime',), ('PySide2.QtCore.QEasingCurve',), ('PySide2.QtCore.QJsonArray',), ('PySide2.QtCore.QJsonDocument',), ('PySide2.QtCore.QJsonValue',), ('PySide2.QtCore.QLine',), ('PySide2.QtCore.QLineF',), ('PySide2.QtCore.QLocale',), ('PySide2.QtCore.QMargins',), ('PySide2.QtCore.QMarginsF',), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',), ('PySide2.QtCore.QRegExp',), ('PySide2.QtCore.QRegularExpression',), ('PySide2.QtCore.QSize',), ('PySide2.QtCore.QSizeF',), ('PySide2.QtCore.QTime',), ('PySide2.QtCore.QTimeZone',), ('PySide2.QtCore.QUrl',), ('PySide2.QtCore.QUuid',), ('PySide2.QtCore.QVersionNumber',), ('str',)],
- "PySide2.QtCore.QDataStream.__rshift__": [('PySide2.QtCore.QBitArray',), ('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QCborArray',), ('PySide2.QtCore.QCborMap',), ('PySide2.QtCore.QCborValue',), ('PySide2.QtCore.QDate',), ('PySide2.QtCore.QDateTime',), ('PySide2.QtCore.QEasingCurve',), ('PySide2.QtCore.QJsonArray',), ('PySide2.QtCore.QJsonDocument',), ('PySide2.QtCore.QJsonValue',), ('PySide2.QtCore.QLine',), ('PySide2.QtCore.QLineF',), ('PySide2.QtCore.QLocale',), ('PySide2.QtCore.QMargins',), ('PySide2.QtCore.QMarginsF',), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',), ('PySide2.QtCore.QRegExp',), ('PySide2.QtCore.QRegularExpression',), ('PySide2.QtCore.QSize',), ('PySide2.QtCore.QSizeF',), ('PySide2.QtCore.QTime',), ('PySide2.QtCore.QTimeZone',), ('PySide2.QtCore.QUrl',), ('PySide2.QtCore.QUuid',), ('PySide2.QtCore.QVersionNumber',)],
- "PySide2.QtCore.QDataStream.abortTransaction": (),
- "PySide2.QtCore.QDataStream.atEnd": (),
- "PySide2.QtCore.QDataStream.byteOrder": (),
- "PySide2.QtCore.QDataStream.commitTransaction": (),
- "PySide2.QtCore.QDataStream.device": (),
- "PySide2.QtCore.QDataStream.floatingPointPrecision": (),
- "PySide2.QtCore.QDataStream.readBool": (),
- "PySide2.QtCore.QDataStream.readDouble": (),
- "PySide2.QtCore.QDataStream.readFloat": (),
- "PySide2.QtCore.QDataStream.readInt16": (),
- "PySide2.QtCore.QDataStream.readInt32": (),
- "PySide2.QtCore.QDataStream.readInt64": (),
- "PySide2.QtCore.QDataStream.readInt8": (),
- "PySide2.QtCore.QDataStream.readQChar": (),
- "PySide2.QtCore.QDataStream.readQString": (),
- "PySide2.QtCore.QDataStream.readQStringList": (),
- "PySide2.QtCore.QDataStream.readQVariant": (),
- "PySide2.QtCore.QDataStream.readRawData": ('str', 'int'),
- "PySide2.QtCore.QDataStream.readString": (),
- "PySide2.QtCore.QDataStream.readUInt16": (),
- "PySide2.QtCore.QDataStream.readUInt32": (),
- "PySide2.QtCore.QDataStream.readUInt64": (),
- "PySide2.QtCore.QDataStream.readUInt8": (),
- "PySide2.QtCore.QDataStream.resetStatus": (),
- "PySide2.QtCore.QDataStream.rollbackTransaction": (),
- "PySide2.QtCore.QDataStream.setByteOrder": ('PySide2.QtCore.QDataStream.ByteOrder',),
- "PySide2.QtCore.QDataStream.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtCore.QDataStream.setFloatingPointPrecision": ('PySide2.QtCore.QDataStream.FloatingPointPrecision',),
- "PySide2.QtCore.QDataStream.setStatus": ('PySide2.QtCore.QDataStream.Status',),
- "PySide2.QtCore.QDataStream.setVersion": ('int',),
- "PySide2.QtCore.QDataStream.skipRawData": ('int',),
- "PySide2.QtCore.QDataStream.startTransaction": (),
- "PySide2.QtCore.QDataStream.status": (),
- "PySide2.QtCore.QDataStream.unsetDevice": (),
- "PySide2.QtCore.QDataStream.version": (),
- "PySide2.QtCore.QDataStream.writeBool": ('bool',),
- "PySide2.QtCore.QDataStream.writeDouble": ('float',),
- "PySide2.QtCore.QDataStream.writeFloat": ('float',),
- "PySide2.QtCore.QDataStream.writeInt16": ('int',),
- "PySide2.QtCore.QDataStream.writeInt32": ('int',),
- "PySide2.QtCore.QDataStream.writeInt64": ('int',),
- "PySide2.QtCore.QDataStream.writeInt8": ('int',),
- "PySide2.QtCore.QDataStream.writeQChar": ('str',),
- "PySide2.QtCore.QDataStream.writeQString": ('str',),
- "PySide2.QtCore.QDataStream.writeQStringList": ('typing.Sequence[str]',),
- "PySide2.QtCore.QDataStream.writeQVariant": ('typing.Any',),
- "PySide2.QtCore.QDataStream.writeRawData": ('str', 'int'),
- "PySide2.QtCore.QDataStream.writeString": ('str',),
- "PySide2.QtCore.QDataStream.writeUInt16": ('int',),
- "PySide2.QtCore.QDataStream.writeUInt32": ('int',),
- "PySide2.QtCore.QDataStream.writeUInt64": ('int',),
- "PySide2.QtCore.QDataStream.writeUInt8": ('int',),
-# class PySide2.QtCore.QDate:
-# class PySide2.QtCore.QDate.MonthNameType:
- "PySide2.QtCore.QDate.__init__": [(), ('PySide2.QtCore.QDate',), ('int', 'int', 'int'), ('int', 'int', 'int', 'PySide2.QtCore.QCalendar')],
- "PySide2.QtCore.QDate.__copy__": (),
- "PySide2.QtCore.QDate.__reduce__": (),
- "PySide2.QtCore.QDate.__repr__": (),
- "PySide2.QtCore.QDate.addDays": ('int',),
- "PySide2.QtCore.QDate.addMonths": [('int',), ('int', 'PySide2.QtCore.QCalendar')],
- "PySide2.QtCore.QDate.addYears": [('int',), ('int', 'PySide2.QtCore.QCalendar')],
- "PySide2.QtCore.QDate.currentDate": (),
- "PySide2.QtCore.QDate.day": [(), ('PySide2.QtCore.QCalendar',)],
- "PySide2.QtCore.QDate.dayOfWeek": [(), ('PySide2.QtCore.QCalendar',)],
- "PySide2.QtCore.QDate.dayOfYear": [(), ('PySide2.QtCore.QCalendar',)],
- "PySide2.QtCore.QDate.daysInMonth": [(), ('PySide2.QtCore.QCalendar',)],
- "PySide2.QtCore.QDate.daysInYear": [(), ('PySide2.QtCore.QCalendar',)],
- "PySide2.QtCore.QDate.daysTo": ('PySide2.QtCore.QDate',),
- "PySide2.QtCore.QDate.endOfDay": [('PySide2.QtCore.QTimeZone',), ('PySide2.QtCore.Qt.TimeSpec', 'int')],
- "PySide2.QtCore.QDate.fromJulianDay": ('int',),
- "PySide2.QtCore.QDate.fromString": [('str', 'PySide2.QtCore.Qt.DateFormat'), ('str', 'str'), ('str', 'str', 'PySide2.QtCore.QCalendar')],
- "PySide2.QtCore.QDate.getDate": (),
- "PySide2.QtCore.QDate.isLeapYear": ('int',),
- "PySide2.QtCore.QDate.isNull": (),
- "PySide2.QtCore.QDate.isValid": [(), ('int', 'int', 'int')],
- "PySide2.QtCore.QDate.longDayName": ('int', 'PySide2.QtCore.QDate.MonthNameType'),
- "PySide2.QtCore.QDate.longMonthName": ('int', 'PySide2.QtCore.QDate.MonthNameType'),
- "PySide2.QtCore.QDate.month": [(), ('PySide2.QtCore.QCalendar',)],
- "PySide2.QtCore.QDate.setDate": [('int', 'int', 'int'), ('int', 'int', 'int', 'PySide2.QtCore.QCalendar')],
- "PySide2.QtCore.QDate.shortDayName": ('int', 'PySide2.QtCore.QDate.MonthNameType'),
- "PySide2.QtCore.QDate.shortMonthName": ('int', 'PySide2.QtCore.QDate.MonthNameType'),
- "PySide2.QtCore.QDate.startOfDay": [('PySide2.QtCore.QTimeZone',), ('PySide2.QtCore.Qt.TimeSpec', 'int')],
- "PySide2.QtCore.QDate.toJulianDay": (),
- "PySide2.QtCore.QDate.toPython": (),
- "PySide2.QtCore.QDate.toString": [('PySide2.QtCore.Qt.DateFormat',), ('PySide2.QtCore.Qt.DateFormat', 'PySide2.QtCore.QCalendar'), ('str',), ('str', 'PySide2.QtCore.QCalendar')],
- "PySide2.QtCore.QDate.weekNumber": (),
- "PySide2.QtCore.QDate.year": [(), ('PySide2.QtCore.QCalendar',)],
-# class PySide2.QtCore.QDateTime:
-# class PySide2.QtCore.QDateTime.YearRange:
- "PySide2.QtCore.QDateTime.__init__": [(), ('PySide2.QtCore.QDate',), ('PySide2.QtCore.QDate', 'PySide2.QtCore.QTime', 'PySide2.QtCore.QTimeZone'), ('PySide2.QtCore.QDate', 'PySide2.QtCore.QTime', 'PySide2.QtCore.Qt.TimeSpec'), ('PySide2.QtCore.QDate', 'PySide2.QtCore.QTime', 'PySide2.QtCore.Qt.TimeSpec', 'int'), ('PySide2.QtCore.QDateTime',), ('int', 'int', 'int', 'int', 'int', 'int'), ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int')],
- "PySide2.QtCore.QDateTime.__copy__": (),
- "PySide2.QtCore.QDateTime.__reduce__": (),
- "PySide2.QtCore.QDateTime.__repr__": (),
- "PySide2.QtCore.QDateTime.addDays": ('int',),
- "PySide2.QtCore.QDateTime.addMSecs": ('int',),
- "PySide2.QtCore.QDateTime.addMonths": ('int',),
- "PySide2.QtCore.QDateTime.addSecs": ('int',),
- "PySide2.QtCore.QDateTime.addYears": ('int',),
- "PySide2.QtCore.QDateTime.currentDateTime": (),
- "PySide2.QtCore.QDateTime.currentDateTimeUtc": (),
- "PySide2.QtCore.QDateTime.currentMSecsSinceEpoch": (),
- "PySide2.QtCore.QDateTime.currentSecsSinceEpoch": (),
- "PySide2.QtCore.QDateTime.date": (),
- "PySide2.QtCore.QDateTime.daysTo": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QDateTime.fromMSecsSinceEpoch": [('int',), ('int', 'PySide2.QtCore.QTimeZone'), ('int', 'PySide2.QtCore.Qt.TimeSpec', 'int')],
- "PySide2.QtCore.QDateTime.fromSecsSinceEpoch": [('int', 'PySide2.QtCore.QTimeZone'), ('int', 'PySide2.QtCore.Qt.TimeSpec', 'int')],
- "PySide2.QtCore.QDateTime.fromString": [('str', 'PySide2.QtCore.Qt.DateFormat'), ('str', 'str'), ('str', 'str', 'PySide2.QtCore.QCalendar')],
- "PySide2.QtCore.QDateTime.fromTime_t": [('int',), ('int', 'PySide2.QtCore.QTimeZone'), ('int', 'PySide2.QtCore.Qt.TimeSpec', 'int')],
- "PySide2.QtCore.QDateTime.isDaylightTime": (),
- "PySide2.QtCore.QDateTime.isNull": (),
- "PySide2.QtCore.QDateTime.isValid": (),
- "PySide2.QtCore.QDateTime.msecsTo": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QDateTime.offsetFromUtc": (),
- "PySide2.QtCore.QDateTime.secsTo": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QDateTime.setDate": ('PySide2.QtCore.QDate',),
- "PySide2.QtCore.QDateTime.setMSecsSinceEpoch": ('int',),
- "PySide2.QtCore.QDateTime.setOffsetFromUtc": ('int',),
- "PySide2.QtCore.QDateTime.setSecsSinceEpoch": ('int',),
- "PySide2.QtCore.QDateTime.setTime": ('PySide2.QtCore.QTime',),
- "PySide2.QtCore.QDateTime.setTimeSpec": ('PySide2.QtCore.Qt.TimeSpec',),
- "PySide2.QtCore.QDateTime.setTimeZone": ('PySide2.QtCore.QTimeZone',),
- "PySide2.QtCore.QDateTime.setTime_t": ('int',),
- "PySide2.QtCore.QDateTime.setUtcOffset": ('int',),
- "PySide2.QtCore.QDateTime.swap": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QDateTime.time": (),
- "PySide2.QtCore.QDateTime.timeSpec": (),
- "PySide2.QtCore.QDateTime.timeZone": (),
- "PySide2.QtCore.QDateTime.timeZoneAbbreviation": (),
- "PySide2.QtCore.QDateTime.toLocalTime": (),
- "PySide2.QtCore.QDateTime.toMSecsSinceEpoch": (),
- "PySide2.QtCore.QDateTime.toOffsetFromUtc": ('int',),
- "PySide2.QtCore.QDateTime.toPython": (),
- "PySide2.QtCore.QDateTime.toSecsSinceEpoch": (),
- "PySide2.QtCore.QDateTime.toString": [('PySide2.QtCore.Qt.DateFormat',), ('str',)],
- "PySide2.QtCore.QDateTime.toTimeSpec": ('PySide2.QtCore.Qt.TimeSpec',),
- "PySide2.QtCore.QDateTime.toTimeZone": ('PySide2.QtCore.QTimeZone',),
- "PySide2.QtCore.QDateTime.toTime_t": (),
- "PySide2.QtCore.QDateTime.toUTC": (),
- "PySide2.QtCore.QDateTime.utcOffset": (),
-# class PySide2.QtCore.QDeadlineTimer:
-# class PySide2.QtCore.QDeadlineTimer.ForeverConstant:
- "PySide2.QtCore.QDeadlineTimer.__init__": [('PySide2.QtCore.QDeadlineTimer',), ('PySide2.QtCore.QDeadlineTimer.ForeverConstant', 'PySide2.QtCore.Qt.TimerType'), ('PySide2.QtCore.Qt.TimerType',), ('int', 'PySide2.QtCore.Qt.TimerType')],
- "PySide2.QtCore.QDeadlineTimer.__copy__": (),
- "PySide2.QtCore.QDeadlineTimer.__iadd__": ('int',),
- "PySide2.QtCore.QDeadlineTimer.__isub__": ('int',),
- "PySide2.QtCore.QDeadlineTimer._q_data": (),
- "PySide2.QtCore.QDeadlineTimer.addNSecs": ('PySide2.QtCore.QDeadlineTimer', 'int'),
- "PySide2.QtCore.QDeadlineTimer.current": ('PySide2.QtCore.Qt.TimerType',),
- "PySide2.QtCore.QDeadlineTimer.deadline": (),
- "PySide2.QtCore.QDeadlineTimer.deadlineNSecs": (),
- "PySide2.QtCore.QDeadlineTimer.hasExpired": (),
- "PySide2.QtCore.QDeadlineTimer.isForever": (),
- "PySide2.QtCore.QDeadlineTimer.remainingTime": (),
- "PySide2.QtCore.QDeadlineTimer.remainingTimeNSecs": (),
- "PySide2.QtCore.QDeadlineTimer.setDeadline": ('int', 'PySide2.QtCore.Qt.TimerType'),
- "PySide2.QtCore.QDeadlineTimer.setPreciseDeadline": ('int', 'int', 'PySide2.QtCore.Qt.TimerType'),
- "PySide2.QtCore.QDeadlineTimer.setPreciseRemainingTime": ('int', 'int', 'PySide2.QtCore.Qt.TimerType'),
- "PySide2.QtCore.QDeadlineTimer.setRemainingTime": ('int', 'PySide2.QtCore.Qt.TimerType'),
- "PySide2.QtCore.QDeadlineTimer.setTimerType": ('PySide2.QtCore.Qt.TimerType',),
- "PySide2.QtCore.QDeadlineTimer.swap": ('PySide2.QtCore.QDeadlineTimer',),
- "PySide2.QtCore.QDeadlineTimer.timerType": (),
-# class PySide2.QtCore.QDir:
-# class PySide2.QtCore.QDir.Filter:
-# class PySide2.QtCore.QDir.Filters:
-# class PySide2.QtCore.QDir.SortFlag:
-# class PySide2.QtCore.QDir.SortFlags:
- "PySide2.QtCore.QDir.__init__": [('PySide2.QtCore.QDir',), ('str',), ('str', 'str', 'PySide2.QtCore.QDir.SortFlags', 'PySide2.QtCore.QDir.Filters')],
- "PySide2.QtCore.QDir.__copy__": (),
- "PySide2.QtCore.QDir.__reduce__": (),
- "PySide2.QtCore.QDir.absoluteFilePath": ('str',),
- "PySide2.QtCore.QDir.absolutePath": (),
- "PySide2.QtCore.QDir.addResourceSearchPath": ('str',),
- "PySide2.QtCore.QDir.addSearchPath": ('str', 'str'),
- "PySide2.QtCore.QDir.canonicalPath": (),
- "PySide2.QtCore.QDir.cd": ('str',),
- "PySide2.QtCore.QDir.cdUp": (),
- "PySide2.QtCore.QDir.cleanPath": ('str',),
- "PySide2.QtCore.QDir.count": (),
- "PySide2.QtCore.QDir.current": (),
- "PySide2.QtCore.QDir.currentPath": (),
- "PySide2.QtCore.QDir.dirName": (),
- "PySide2.QtCore.QDir.drives": (),
- "PySide2.QtCore.QDir.entryInfoList": [('PySide2.QtCore.QDir.Filters', 'PySide2.QtCore.QDir.SortFlags'), ('typing.Sequence[str]', 'PySide2.QtCore.QDir.Filters', 'PySide2.QtCore.QDir.SortFlags')],
- "PySide2.QtCore.QDir.entryList": [('PySide2.QtCore.QDir.Filters', 'PySide2.QtCore.QDir.SortFlags'), ('typing.Sequence[str]', 'PySide2.QtCore.QDir.Filters', 'PySide2.QtCore.QDir.SortFlags')],
- "PySide2.QtCore.QDir.exists": [(), ('str',)],
- "PySide2.QtCore.QDir.filePath": ('str',),
- "PySide2.QtCore.QDir.filter": (),
- "PySide2.QtCore.QDir.fromNativeSeparators": ('str',),
- "PySide2.QtCore.QDir.home": (),
- "PySide2.QtCore.QDir.homePath": (),
- "PySide2.QtCore.QDir.isAbsolute": (),
- "PySide2.QtCore.QDir.isAbsolutePath": ('str',),
- "PySide2.QtCore.QDir.isEmpty": ('PySide2.QtCore.QDir.Filters',),
- "PySide2.QtCore.QDir.isReadable": (),
- "PySide2.QtCore.QDir.isRelative": (),
- "PySide2.QtCore.QDir.isRelativePath": ('str',),
- "PySide2.QtCore.QDir.isRoot": (),
- "PySide2.QtCore.QDir.listSeparator": (),
- "PySide2.QtCore.QDir.makeAbsolute": (),
- "PySide2.QtCore.QDir.match": [('str', 'str'), ('typing.Sequence[str]', 'str')],
- "PySide2.QtCore.QDir.mkdir": ('str',),
- "PySide2.QtCore.QDir.mkpath": ('str',),
- "PySide2.QtCore.QDir.nameFilters": (),
- "PySide2.QtCore.QDir.nameFiltersFromString": ('str',),
- "PySide2.QtCore.QDir.path": (),
- "PySide2.QtCore.QDir.refresh": (),
- "PySide2.QtCore.QDir.relativeFilePath": ('str',),
- "PySide2.QtCore.QDir.remove": ('str',),
- "PySide2.QtCore.QDir.removeRecursively": (),
- "PySide2.QtCore.QDir.rename": ('str', 'str'),
- "PySide2.QtCore.QDir.rmdir": ('str',),
- "PySide2.QtCore.QDir.rmpath": ('str',),
- "PySide2.QtCore.QDir.root": (),
- "PySide2.QtCore.QDir.rootPath": (),
- "PySide2.QtCore.QDir.searchPaths": ('str',),
- "PySide2.QtCore.QDir.separator": (),
- "PySide2.QtCore.QDir.setCurrent": ('str',),
- "PySide2.QtCore.QDir.setFilter": ('PySide2.QtCore.QDir.Filters',),
- "PySide2.QtCore.QDir.setNameFilters": ('typing.Sequence[str]',),
- "PySide2.QtCore.QDir.setPath": ('str',),
- "PySide2.QtCore.QDir.setSearchPaths": ('str', 'typing.Sequence[str]'),
- "PySide2.QtCore.QDir.setSorting": ('PySide2.QtCore.QDir.SortFlags',),
- "PySide2.QtCore.QDir.sorting": (),
- "PySide2.QtCore.QDir.swap": ('PySide2.QtCore.QDir',),
- "PySide2.QtCore.QDir.temp": (),
- "PySide2.QtCore.QDir.tempPath": (),
- "PySide2.QtCore.QDir.toNativeSeparators": ('str',),
-# class PySide2.QtCore.QDirIterator:
-# class PySide2.QtCore.QDirIterator.IteratorFlag:
-# class PySide2.QtCore.QDirIterator.IteratorFlags:
- "PySide2.QtCore.QDirIterator.__init__": [('PySide2.QtCore.QDir', 'PySide2.QtCore.QDirIterator.IteratorFlags'), ('str', 'PySide2.QtCore.QDir.Filters', 'PySide2.QtCore.QDirIterator.IteratorFlags'), ('str', 'PySide2.QtCore.QDirIterator.IteratorFlags'), ('str', 'typing.Sequence[str]', 'PySide2.QtCore.QDir.Filters', 'PySide2.QtCore.QDirIterator.IteratorFlags')],
- "PySide2.QtCore.QDirIterator.fileInfo": (),
- "PySide2.QtCore.QDirIterator.fileName": (),
- "PySide2.QtCore.QDirIterator.filePath": (),
- "PySide2.QtCore.QDirIterator.hasNext": (),
- "PySide2.QtCore.QDirIterator.path": (),
-# class PySide2.QtCore.QDynamicPropertyChangeEvent:
- "PySide2.QtCore.QDynamicPropertyChangeEvent.__init__": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QDynamicPropertyChangeEvent.propertyName": (),
-# class PySide2.QtCore.QEasingCurve:
-# class PySide2.QtCore.QEasingCurve.Type:
- "PySide2.QtCore.QEasingCurve.__init__": [('PySide2.QtCore.QEasingCurve',), ('PySide2.QtCore.QEasingCurve.Type',)],
- "PySide2.QtCore.QEasingCurve.__copy__": (),
- "PySide2.QtCore.QEasingCurve.addCubicBezierSegment": ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'),
- "PySide2.QtCore.QEasingCurve.addTCBSegment": ('PySide2.QtCore.QPointF', 'float', 'float', 'float'),
- "PySide2.QtCore.QEasingCurve.amplitude": (),
- "PySide2.QtCore.QEasingCurve.customType": (),
- "PySide2.QtCore.QEasingCurve.overshoot": (),
- "PySide2.QtCore.QEasingCurve.period": (),
- "PySide2.QtCore.QEasingCurve.setAmplitude": ('float',),
- "PySide2.QtCore.QEasingCurve.setCustomType": ('object',),
- "PySide2.QtCore.QEasingCurve.setOvershoot": ('float',),
- "PySide2.QtCore.QEasingCurve.setPeriod": ('float',),
- "PySide2.QtCore.QEasingCurve.setType": ('PySide2.QtCore.QEasingCurve.Type',),
- "PySide2.QtCore.QEasingCurve.swap": ('PySide2.QtCore.QEasingCurve',),
- "PySide2.QtCore.QEasingCurve.toCubicSpline": (),
- "PySide2.QtCore.QEasingCurve.type": (),
- "PySide2.QtCore.QEasingCurve.valueForProgress": ('float',),
-# class PySide2.QtCore.QElapsedTimer:
-# class PySide2.QtCore.QElapsedTimer.ClockType:
- "PySide2.QtCore.QElapsedTimer.__init__": [(), ('PySide2.QtCore.QElapsedTimer',)],
- "PySide2.QtCore.QElapsedTimer.__copy__": (),
- "PySide2.QtCore.QElapsedTimer.clockType": (),
- "PySide2.QtCore.QElapsedTimer.elapsed": (),
- "PySide2.QtCore.QElapsedTimer.hasExpired": ('int',),
- "PySide2.QtCore.QElapsedTimer.invalidate": (),
- "PySide2.QtCore.QElapsedTimer.isMonotonic": (),
- "PySide2.QtCore.QElapsedTimer.isValid": (),
- "PySide2.QtCore.QElapsedTimer.msecsSinceReference": (),
- "PySide2.QtCore.QElapsedTimer.msecsTo": ('PySide2.QtCore.QElapsedTimer',),
- "PySide2.QtCore.QElapsedTimer.nsecsElapsed": (),
- "PySide2.QtCore.QElapsedTimer.restart": (),
- "PySide2.QtCore.QElapsedTimer.secsTo": ('PySide2.QtCore.QElapsedTimer',),
- "PySide2.QtCore.QElapsedTimer.start": (),
-# class PySide2.QtCore.QEvent:
-# class PySide2.QtCore.QEvent.Type:
- "PySide2.QtCore.QEvent.__init__": [('PySide2.QtCore.QEvent',), ('PySide2.QtCore.QEvent.Type',)],
- "PySide2.QtCore.QEvent.accept": (),
- "PySide2.QtCore.QEvent.ignore": (),
- "PySide2.QtCore.QEvent.isAccepted": (),
- "PySide2.QtCore.QEvent.registerEventType": ('int',),
- "PySide2.QtCore.QEvent.setAccepted": ('bool',),
- "PySide2.QtCore.QEvent.spontaneous": (),
- "PySide2.QtCore.QEvent.type": (),
-# class PySide2.QtCore.QEventLoop:
-# class PySide2.QtCore.QEventLoop.ProcessEventsFlag:
-# class PySide2.QtCore.QEventLoop.ProcessEventsFlags:
- "PySide2.QtCore.QEventLoop.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QEventLoop.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QEventLoop.exec_": ('PySide2.QtCore.QEventLoop.ProcessEventsFlags',),
- "PySide2.QtCore.QEventLoop.exit": ('int',),
- "PySide2.QtCore.QEventLoop.isRunning": (),
- "PySide2.QtCore.QEventLoop.processEvents": [('PySide2.QtCore.QEventLoop.ProcessEventsFlags',), ('PySide2.QtCore.QEventLoop.ProcessEventsFlags', 'int')],
- "PySide2.QtCore.QEventLoop.quit": (),
- "PySide2.QtCore.QEventLoop.wakeUp": (),
-# class PySide2.QtCore.QEventTransition:
- "PySide2.QtCore.QEventTransition.__init__": [('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.QState'), ('PySide2.QtCore.QState',)],
- "PySide2.QtCore.QEventTransition.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QEventTransition.eventSource": (),
- "PySide2.QtCore.QEventTransition.eventTest": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QEventTransition.eventType": (),
- "PySide2.QtCore.QEventTransition.onTransition": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QEventTransition.setEventSource": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QEventTransition.setEventType": ('PySide2.QtCore.QEvent.Type',),
-# class PySide2.QtCore.QFactoryInterface:
- "PySide2.QtCore.QFactoryInterface.__init__": (),
- "PySide2.QtCore.QFactoryInterface.keys": (),
-# class PySide2.QtCore.QFile:
- "PySide2.QtCore.QFile.__init__": [(), ('PySide2.QtCore.QObject',), ('str',), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QFile.copy": [('str',), ('str', 'str')],
- "PySide2.QtCore.QFile.decodeName": [('PySide2.QtCore.QByteArray',), ('str',)],
- "PySide2.QtCore.QFile.encodeName": ('str',),
- "PySide2.QtCore.QFile.exists": [(), ('str',)],
- "PySide2.QtCore.QFile.fileName": (),
- "PySide2.QtCore.QFile.link": [('str',), ('str', 'str')],
- "PySide2.QtCore.QFile.open": [('PySide2.QtCore.QIODevice.OpenMode',), ('int', 'PySide2.QtCore.QIODevice.OpenMode', 'PySide2.QtCore.QFileDevice.FileHandleFlags')],
- "PySide2.QtCore.QFile.permissions": [(), ('str',)],
- "PySide2.QtCore.QFile.readLink": [(), ('str',)],
- "PySide2.QtCore.QFile.remove": [(), ('str',)],
- "PySide2.QtCore.QFile.rename": [('str',), ('str', 'str')],
- "PySide2.QtCore.QFile.resize": [('int',), ('str', 'int')],
- "PySide2.QtCore.QFile.setFileName": ('str',),
- "PySide2.QtCore.QFile.setPermissions": [('PySide2.QtCore.QFileDevice.Permissions',), ('str', 'PySide2.QtCore.QFileDevice.Permissions')],
- "PySide2.QtCore.QFile.size": (),
- "PySide2.QtCore.QFile.symLinkTarget": [(), ('str',)],
-# class PySide2.QtCore.QFileDevice:
-# class PySide2.QtCore.QFileDevice.FileError:
-# class PySide2.QtCore.QFileDevice.FileHandleFlag:
-# class PySide2.QtCore.QFileDevice.FileHandleFlags:
-# class PySide2.QtCore.QFileDevice.FileTime:
-# class PySide2.QtCore.QFileDevice.MemoryMapFlags:
-# class PySide2.QtCore.QFileDevice.Permission:
-# class PySide2.QtCore.QFileDevice.Permissions:
- "PySide2.QtCore.QFileDevice.__init__": [(), ('PySide2.QtCore.QObject',)],
- "PySide2.QtCore.QFileDevice.atEnd": (),
- "PySide2.QtCore.QFileDevice.close": (),
- "PySide2.QtCore.QFileDevice.error": (),
- "PySide2.QtCore.QFileDevice.fileName": (),
- "PySide2.QtCore.QFileDevice.fileTime": ('PySide2.QtCore.QFileDevice.FileTime',),
- "PySide2.QtCore.QFileDevice.flush": (),
- "PySide2.QtCore.QFileDevice.handle": (),
- "PySide2.QtCore.QFileDevice.isSequential": (),
- "PySide2.QtCore.QFileDevice.map": ('int', 'int', 'PySide2.QtCore.QFileDevice.MemoryMapFlags'),
- "PySide2.QtCore.QFileDevice.permissions": (),
- "PySide2.QtCore.QFileDevice.pos": (),
- "PySide2.QtCore.QFileDevice.readData": ('str', 'int'),
- "PySide2.QtCore.QFileDevice.readLineData": ('str', 'int'),
- "PySide2.QtCore.QFileDevice.resize": ('int',),
- "PySide2.QtCore.QFileDevice.seek": ('int',),
- "PySide2.QtCore.QFileDevice.setFileTime": ('PySide2.QtCore.QDateTime', 'PySide2.QtCore.QFileDevice.FileTime'),
- "PySide2.QtCore.QFileDevice.setPermissions": ('PySide2.QtCore.QFileDevice.Permissions',),
- "PySide2.QtCore.QFileDevice.size": (),
- "PySide2.QtCore.QFileDevice.unmap": ('str',),
- "PySide2.QtCore.QFileDevice.unsetError": (),
- "PySide2.QtCore.QFileDevice.writeData": ('str', 'int'),
-# class PySide2.QtCore.QFileInfo:
- "PySide2.QtCore.QFileInfo.__init__": [(), ('PySide2.QtCore.QDir', 'str'), ('PySide2.QtCore.QFile',), ('PySide2.QtCore.QFileInfo',), ('str',)],
- "PySide2.QtCore.QFileInfo.__copy__": (),
- "PySide2.QtCore.QFileInfo.__reduce__": (),
- "PySide2.QtCore.QFileInfo.absoluteDir": (),
- "PySide2.QtCore.QFileInfo.absoluteFilePath": (),
- "PySide2.QtCore.QFileInfo.absolutePath": (),
- "PySide2.QtCore.QFileInfo.baseName": (),
- "PySide2.QtCore.QFileInfo.birthTime": (),
- "PySide2.QtCore.QFileInfo.bundleName": (),
- "PySide2.QtCore.QFileInfo.caching": (),
- "PySide2.QtCore.QFileInfo.canonicalFilePath": (),
- "PySide2.QtCore.QFileInfo.canonicalPath": (),
- "PySide2.QtCore.QFileInfo.completeBaseName": (),
- "PySide2.QtCore.QFileInfo.completeSuffix": (),
- "PySide2.QtCore.QFileInfo.created": (),
- "PySide2.QtCore.QFileInfo.dir": (),
- "PySide2.QtCore.QFileInfo.exists": [(), ('str',)],
- "PySide2.QtCore.QFileInfo.fileName": (),
- "PySide2.QtCore.QFileInfo.filePath": (),
- "PySide2.QtCore.QFileInfo.group": (),
- "PySide2.QtCore.QFileInfo.groupId": (),
- "PySide2.QtCore.QFileInfo.isAbsolute": (),
- "PySide2.QtCore.QFileInfo.isBundle": (),
- "PySide2.QtCore.QFileInfo.isDir": (),
- "PySide2.QtCore.QFileInfo.isExecutable": (),
- "PySide2.QtCore.QFileInfo.isFile": (),
- "PySide2.QtCore.QFileInfo.isHidden": (),
- "PySide2.QtCore.QFileInfo.isNativePath": (),
- "PySide2.QtCore.QFileInfo.isReadable": (),
- "PySide2.QtCore.QFileInfo.isRelative": (),
- "PySide2.QtCore.QFileInfo.isRoot": (),
- "PySide2.QtCore.QFileInfo.isShortcut": (),
- "PySide2.QtCore.QFileInfo.isSymLink": (),
- "PySide2.QtCore.QFileInfo.isSymbolicLink": (),
- "PySide2.QtCore.QFileInfo.isWritable": (),
- "PySide2.QtCore.QFileInfo.lastModified": (),
- "PySide2.QtCore.QFileInfo.lastRead": (),
- "PySide2.QtCore.QFileInfo.makeAbsolute": (),
- "PySide2.QtCore.QFileInfo.metadataChangeTime": (),
- "PySide2.QtCore.QFileInfo.owner": (),
- "PySide2.QtCore.QFileInfo.ownerId": (),
- "PySide2.QtCore.QFileInfo.path": (),
- "PySide2.QtCore.QFileInfo.readLink": (),
- "PySide2.QtCore.QFileInfo.refresh": (),
- "PySide2.QtCore.QFileInfo.setCaching": ('bool',),
- "PySide2.QtCore.QFileInfo.setFile": [('PySide2.QtCore.QDir', 'str'), ('PySide2.QtCore.QFile',), ('str',)],
- "PySide2.QtCore.QFileInfo.size": (),
- "PySide2.QtCore.QFileInfo.suffix": (),
- "PySide2.QtCore.QFileInfo.swap": ('PySide2.QtCore.QFileInfo',),
- "PySide2.QtCore.QFileInfo.symLinkTarget": (),
-# class PySide2.QtCore.QFileSelector:
- "PySide2.QtCore.QFileSelector.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QFileSelector.allSelectors": (),
- "PySide2.QtCore.QFileSelector.extraSelectors": (),
- "PySide2.QtCore.QFileSelector.select": [('PySide2.QtCore.QUrl',), ('str',)],
- "PySide2.QtCore.QFileSelector.setExtraSelectors": ('typing.Sequence[str]',),
-# class PySide2.QtCore.QFileSystemWatcher:
- "PySide2.QtCore.QFileSystemWatcher.__init__": [('PySide2.QtCore.QObject',), ('typing.Sequence[str]', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QFileSystemWatcher.addPath": ('str',),
- "PySide2.QtCore.QFileSystemWatcher.addPaths": ('typing.Sequence[str]',),
- "PySide2.QtCore.QFileSystemWatcher.directories": (),
- "PySide2.QtCore.QFileSystemWatcher.files": (),
- "PySide2.QtCore.QFileSystemWatcher.removePath": ('str',),
- "PySide2.QtCore.QFileSystemWatcher.removePaths": ('typing.Sequence[str]',),
-# class PySide2.QtCore.QFinalState:
- "PySide2.QtCore.QFinalState.__init__": ('PySide2.QtCore.QState',),
- "PySide2.QtCore.QFinalState.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QFinalState.onEntry": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QFinalState.onExit": ('PySide2.QtCore.QEvent',),
-# class PySide2.QtCore.QGenericArgument:
- "PySide2.QtCore.QGenericArgument.__init__": [('PySide2.QtCore.QGenericArgument',), ('str', 'int')],
- "PySide2.QtCore.QGenericArgument.__copy__": (),
- "PySide2.QtCore.QGenericArgument.data": (),
- "PySide2.QtCore.QGenericArgument.name": (),
-# class PySide2.QtCore.QGenericReturnArgument:
- "PySide2.QtCore.QGenericReturnArgument.__init__": [('PySide2.QtCore.QGenericReturnArgument',), ('str', 'int')],
- "PySide2.QtCore.QGenericReturnArgument.__copy__": (),
-# class PySide2.QtCore.QHistoryState:
-# class PySide2.QtCore.QHistoryState.HistoryType:
- "PySide2.QtCore.QHistoryState.__init__": [('PySide2.QtCore.QHistoryState.HistoryType', 'PySide2.QtCore.QState'), ('PySide2.QtCore.QState',)],
- "PySide2.QtCore.QHistoryState.defaultState": (),
- "PySide2.QtCore.QHistoryState.defaultTransition": (),
- "PySide2.QtCore.QHistoryState.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QHistoryState.historyType": (),
- "PySide2.QtCore.QHistoryState.onEntry": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QHistoryState.onExit": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QHistoryState.setDefaultState": ('PySide2.QtCore.QAbstractState',),
- "PySide2.QtCore.QHistoryState.setDefaultTransition": ('PySide2.QtCore.QAbstractTransition',),
- "PySide2.QtCore.QHistoryState.setHistoryType": ('PySide2.QtCore.QHistoryState.HistoryType',),
-# class PySide2.QtCore.QIODevice:
-# class PySide2.QtCore.QIODevice.OpenMode:
-# class PySide2.QtCore.QIODevice.OpenModeFlag:
- "PySide2.QtCore.QIODevice.__init__": [(), ('PySide2.QtCore.QObject',)],
- "PySide2.QtCore.QIODevice.atEnd": (),
- "PySide2.QtCore.QIODevice.bytesAvailable": (),
- "PySide2.QtCore.QIODevice.bytesToWrite": (),
- "PySide2.QtCore.QIODevice.canReadLine": (),
- "PySide2.QtCore.QIODevice.close": (),
- "PySide2.QtCore.QIODevice.commitTransaction": (),
- "PySide2.QtCore.QIODevice.currentReadChannel": (),
- "PySide2.QtCore.QIODevice.currentWriteChannel": (),
- "PySide2.QtCore.QIODevice.errorString": (),
- "PySide2.QtCore.QIODevice.getChar": ('str',),
- "PySide2.QtCore.QIODevice.isOpen": (),
- "PySide2.QtCore.QIODevice.isReadable": (),
- "PySide2.QtCore.QIODevice.isSequential": (),
- "PySide2.QtCore.QIODevice.isTextModeEnabled": (),
- "PySide2.QtCore.QIODevice.isTransactionStarted": (),
- "PySide2.QtCore.QIODevice.isWritable": (),
- "PySide2.QtCore.QIODevice.open": ('PySide2.QtCore.QIODevice.OpenMode',),
- "PySide2.QtCore.QIODevice.openMode": (),
- "PySide2.QtCore.QIODevice.peek": ('int',),
- "PySide2.QtCore.QIODevice.pos": (),
- "PySide2.QtCore.QIODevice.putChar": ('int',),
- "PySide2.QtCore.QIODevice.read": ('int',),
- "PySide2.QtCore.QIODevice.readAll": (),
- "PySide2.QtCore.QIODevice.readChannelCount": (),
- "PySide2.QtCore.QIODevice.readData": ('str', 'int'),
- "PySide2.QtCore.QIODevice.readLine": ('int',),
- "PySide2.QtCore.QIODevice.readLineData": ('str', 'int'),
- "PySide2.QtCore.QIODevice.reset": (),
- "PySide2.QtCore.QIODevice.rollbackTransaction": (),
- "PySide2.QtCore.QIODevice.seek": ('int',),
- "PySide2.QtCore.QIODevice.setCurrentReadChannel": ('int',),
- "PySide2.QtCore.QIODevice.setCurrentWriteChannel": ('int',),
- "PySide2.QtCore.QIODevice.setErrorString": ('str',),
- "PySide2.QtCore.QIODevice.setOpenMode": ('PySide2.QtCore.QIODevice.OpenMode',),
- "PySide2.QtCore.QIODevice.setTextModeEnabled": ('bool',),
- "PySide2.QtCore.QIODevice.size": (),
- "PySide2.QtCore.QIODevice.skip": ('int',),
- "PySide2.QtCore.QIODevice.startTransaction": (),
- "PySide2.QtCore.QIODevice.ungetChar": ('int',),
- "PySide2.QtCore.QIODevice.waitForBytesWritten": ('int',),
- "PySide2.QtCore.QIODevice.waitForReadyRead": ('int',),
- "PySide2.QtCore.QIODevice.write": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QIODevice.writeChannelCount": (),
- "PySide2.QtCore.QIODevice.writeData": ('str', 'int'),
-# class PySide2.QtCore.QIdentityProxyModel:
- "PySide2.QtCore.QIdentityProxyModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QIdentityProxyModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QIdentityProxyModel.dropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QIdentityProxyModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtCore.QIdentityProxyModel.index": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QIdentityProxyModel.insertColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QIdentityProxyModel.insertRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QIdentityProxyModel.mapFromSource": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QIdentityProxyModel.mapSelectionFromSource": ('PySide2.QtCore.QItemSelection',),
- "PySide2.QtCore.QIdentityProxyModel.mapSelectionToSource": ('PySide2.QtCore.QItemSelection',),
- "PySide2.QtCore.QIdentityProxyModel.mapToSource": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QIdentityProxyModel.match": ('PySide2.QtCore.QModelIndex', 'int', 'typing.Any', 'int', 'PySide2.QtCore.Qt.MatchFlags'),
- "PySide2.QtCore.QIdentityProxyModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtCore.QIdentityProxyModel.removeColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QIdentityProxyModel.removeRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QIdentityProxyModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QIdentityProxyModel.setSourceModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCore.QIdentityProxyModel.sibling": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
-# class PySide2.QtCore.QItemSelection:
- "PySide2.QtCore.QItemSelection.__init__": [(), ('PySide2.QtCore.QItemSelection',), ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex')],
- "PySide2.QtCore.QItemSelection.__add__": ('typing.Sequence[PySide2.QtCore.QItemSelectionRange]',),
- "PySide2.QtCore.QItemSelection.__copy__": (),
- "PySide2.QtCore.QItemSelection.__iadd__": [('PySide2.QtCore.QItemSelectionRange',), ('typing.Sequence[PySide2.QtCore.QItemSelectionRange]',)],
- "PySide2.QtCore.QItemSelection.__lshift__": [('PySide2.QtCore.QItemSelectionRange',), ('typing.Sequence[PySide2.QtCore.QItemSelectionRange]',)],
- "PySide2.QtCore.QItemSelection.append": [('PySide2.QtCore.QItemSelectionRange',), ('typing.Sequence[PySide2.QtCore.QItemSelectionRange]',)],
- "PySide2.QtCore.QItemSelection.at": ('int',),
- "PySide2.QtCore.QItemSelection.back": (),
- "PySide2.QtCore.QItemSelection.clear": (),
- "PySide2.QtCore.QItemSelection.constFirst": (),
- "PySide2.QtCore.QItemSelection.constLast": (),
- "PySide2.QtCore.QItemSelection.contains": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QItemSelection.count": [(), ('PySide2.QtCore.QItemSelectionRange',)],
- "PySide2.QtCore.QItemSelection.detachShared": (),
- "PySide2.QtCore.QItemSelection.empty": (),
- "PySide2.QtCore.QItemSelection.endsWith": ('PySide2.QtCore.QItemSelectionRange',),
- "PySide2.QtCore.QItemSelection.first": (),
- "PySide2.QtCore.QItemSelection.fromSet": ('typing.Set[PySide2.QtCore.QItemSelectionRange]',),
- "PySide2.QtCore.QItemSelection.fromVector": ('typing.List[PySide2.QtCore.QItemSelectionRange]',),
- "PySide2.QtCore.QItemSelection.front": (),
- "PySide2.QtCore.QItemSelection.indexOf": ('PySide2.QtCore.QItemSelectionRange', 'int'),
- "PySide2.QtCore.QItemSelection.indexes": (),
- "PySide2.QtCore.QItemSelection.insert": ('int', 'PySide2.QtCore.QItemSelectionRange'),
- "PySide2.QtCore.QItemSelection.isEmpty": (),
- "PySide2.QtCore.QItemSelection.isSharedWith": ('typing.Sequence[PySide2.QtCore.QItemSelectionRange]',),
- "PySide2.QtCore.QItemSelection.last": (),
- "PySide2.QtCore.QItemSelection.lastIndexOf": ('PySide2.QtCore.QItemSelectionRange', 'int'),
- "PySide2.QtCore.QItemSelection.length": (),
- "PySide2.QtCore.QItemSelection.merge": ('PySide2.QtCore.QItemSelection', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags'),
- "PySide2.QtCore.QItemSelection.mid": ('int', 'int'),
- "PySide2.QtCore.QItemSelection.move": ('int', 'int'),
- "PySide2.QtCore.QItemSelection.pop_back": (),
- "PySide2.QtCore.QItemSelection.pop_front": (),
- "PySide2.QtCore.QItemSelection.prepend": ('PySide2.QtCore.QItemSelectionRange',),
- "PySide2.QtCore.QItemSelection.push_back": ('PySide2.QtCore.QItemSelectionRange',),
- "PySide2.QtCore.QItemSelection.push_front": ('PySide2.QtCore.QItemSelectionRange',),
- "PySide2.QtCore.QItemSelection.removeAll": ('PySide2.QtCore.QItemSelectionRange',),
- "PySide2.QtCore.QItemSelection.removeAt": ('int',),
- "PySide2.QtCore.QItemSelection.removeFirst": (),
- "PySide2.QtCore.QItemSelection.removeLast": (),
- "PySide2.QtCore.QItemSelection.removeOne": ('PySide2.QtCore.QItemSelectionRange',),
- "PySide2.QtCore.QItemSelection.replace": ('int', 'PySide2.QtCore.QItemSelectionRange'),
- "PySide2.QtCore.QItemSelection.reserve": ('int',),
- "PySide2.QtCore.QItemSelection.select": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QItemSelection.setSharable": ('bool',),
- "PySide2.QtCore.QItemSelection.size": (),
- "PySide2.QtCore.QItemSelection.split": ('PySide2.QtCore.QItemSelectionRange', 'PySide2.QtCore.QItemSelectionRange', 'PySide2.QtCore.QItemSelection'),
- "PySide2.QtCore.QItemSelection.startsWith": ('PySide2.QtCore.QItemSelectionRange',),
- "PySide2.QtCore.QItemSelection.swap": [('int', 'int'), ('typing.Sequence[PySide2.QtCore.QItemSelectionRange]',)],
- "PySide2.QtCore.QItemSelection.swapItemsAt": ('int', 'int'),
- "PySide2.QtCore.QItemSelection.takeAt": ('int',),
- "PySide2.QtCore.QItemSelection.takeFirst": (),
- "PySide2.QtCore.QItemSelection.takeLast": (),
- "PySide2.QtCore.QItemSelection.toSet": (),
- "PySide2.QtCore.QItemSelection.toVector": (),
- "PySide2.QtCore.QItemSelection.value": [('int',), ('int', 'PySide2.QtCore.QItemSelectionRange')],
-# class PySide2.QtCore.QItemSelectionModel:
-# class PySide2.QtCore.QItemSelectionModel.SelectionFlag:
-# class PySide2.QtCore.QItemSelectionModel.SelectionFlags:
- "PySide2.QtCore.QItemSelectionModel.__init__": [('PySide2.QtCore.QAbstractItemModel',), ('PySide2.QtCore.QAbstractItemModel', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QItemSelectionModel.clear": (),
- "PySide2.QtCore.QItemSelectionModel.clearCurrentIndex": (),
- "PySide2.QtCore.QItemSelectionModel.clearSelection": (),
- "PySide2.QtCore.QItemSelectionModel.columnIntersectsSelection": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QItemSelectionModel.currentIndex": (),
- "PySide2.QtCore.QItemSelectionModel.emitSelectionChanged": ('PySide2.QtCore.QItemSelection', 'PySide2.QtCore.QItemSelection'),
- "PySide2.QtCore.QItemSelectionModel.hasSelection": (),
- "PySide2.QtCore.QItemSelectionModel.isColumnSelected": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QItemSelectionModel.isRowSelected": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QItemSelectionModel.isSelected": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QItemSelectionModel.model": (),
- "PySide2.QtCore.QItemSelectionModel.reset": (),
- "PySide2.QtCore.QItemSelectionModel.rowIntersectsSelection": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QItemSelectionModel.select": [('PySide2.QtCore.QItemSelection', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags'), ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags')],
- "PySide2.QtCore.QItemSelectionModel.selectedColumns": ('int',),
- "PySide2.QtCore.QItemSelectionModel.selectedIndexes": (),
- "PySide2.QtCore.QItemSelectionModel.selectedRows": ('int',),
- "PySide2.QtCore.QItemSelectionModel.selection": (),
- "PySide2.QtCore.QItemSelectionModel.setCurrentIndex": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags'),
- "PySide2.QtCore.QItemSelectionModel.setModel": ('PySide2.QtCore.QAbstractItemModel',),
-# class PySide2.QtCore.QItemSelectionRange:
- "PySide2.QtCore.QItemSelectionRange.__init__": [(), ('PySide2.QtCore.QItemSelectionRange',), ('PySide2.QtCore.QModelIndex',), ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex')],
- "PySide2.QtCore.QItemSelectionRange.__copy__": (),
- "PySide2.QtCore.QItemSelectionRange.bottom": (),
- "PySide2.QtCore.QItemSelectionRange.bottomRight": (),
- "PySide2.QtCore.QItemSelectionRange.contains": [('PySide2.QtCore.QModelIndex',), ('int', 'int', 'PySide2.QtCore.QModelIndex')],
- "PySide2.QtCore.QItemSelectionRange.height": (),
- "PySide2.QtCore.QItemSelectionRange.indexes": (),
- "PySide2.QtCore.QItemSelectionRange.intersected": ('PySide2.QtCore.QItemSelectionRange',),
- "PySide2.QtCore.QItemSelectionRange.intersects": ('PySide2.QtCore.QItemSelectionRange',),
- "PySide2.QtCore.QItemSelectionRange.isEmpty": (),
- "PySide2.QtCore.QItemSelectionRange.isValid": (),
- "PySide2.QtCore.QItemSelectionRange.left": (),
- "PySide2.QtCore.QItemSelectionRange.model": (),
- "PySide2.QtCore.QItemSelectionRange.parent": (),
- "PySide2.QtCore.QItemSelectionRange.right": (),
- "PySide2.QtCore.QItemSelectionRange.swap": ('PySide2.QtCore.QItemSelectionRange',),
- "PySide2.QtCore.QItemSelectionRange.top": (),
- "PySide2.QtCore.QItemSelectionRange.topLeft": (),
- "PySide2.QtCore.QItemSelectionRange.width": (),
-# class PySide2.QtCore.QJsonArray:
- "PySide2.QtCore.QJsonArray.__init__": [(), ('PySide2.QtCore.QJsonArray',)],
- "PySide2.QtCore.QJsonArray.__add__": ('PySide2.QtCore.QJsonValue',),
- "PySide2.QtCore.QJsonArray.__copy__": (),
- "PySide2.QtCore.QJsonArray.__iadd__": ('PySide2.QtCore.QJsonValue',),
- "PySide2.QtCore.QJsonArray.__lshift__": ('PySide2.QtCore.QJsonValue',),
- "PySide2.QtCore.QJsonArray.append": ('PySide2.QtCore.QJsonValue',),
- "PySide2.QtCore.QJsonArray.at": ('int',),
- "PySide2.QtCore.QJsonArray.contains": ('PySide2.QtCore.QJsonValue',),
- "PySide2.QtCore.QJsonArray.count": (),
- "PySide2.QtCore.QJsonArray.empty": (),
- "PySide2.QtCore.QJsonArray.first": (),
- "PySide2.QtCore.QJsonArray.fromStringList": ('typing.Sequence[str]',),
- "PySide2.QtCore.QJsonArray.fromVariantList": ('typing.Sequence[typing.Any]',),
- "PySide2.QtCore.QJsonArray.insert": ('int', 'PySide2.QtCore.QJsonValue'),
- "PySide2.QtCore.QJsonArray.isEmpty": (),
- "PySide2.QtCore.QJsonArray.last": (),
- "PySide2.QtCore.QJsonArray.pop_back": (),
- "PySide2.QtCore.QJsonArray.pop_front": (),
- "PySide2.QtCore.QJsonArray.prepend": ('PySide2.QtCore.QJsonValue',),
- "PySide2.QtCore.QJsonArray.push_back": ('PySide2.QtCore.QJsonValue',),
- "PySide2.QtCore.QJsonArray.push_front": ('PySide2.QtCore.QJsonValue',),
- "PySide2.QtCore.QJsonArray.removeAt": ('int',),
- "PySide2.QtCore.QJsonArray.removeFirst": (),
- "PySide2.QtCore.QJsonArray.removeLast": (),
- "PySide2.QtCore.QJsonArray.replace": ('int', 'PySide2.QtCore.QJsonValue'),
- "PySide2.QtCore.QJsonArray.size": (),
- "PySide2.QtCore.QJsonArray.swap": ('PySide2.QtCore.QJsonArray',),
- "PySide2.QtCore.QJsonArray.takeAt": ('int',),
- "PySide2.QtCore.QJsonArray.toVariantList": (),
-# class PySide2.QtCore.QJsonDocument:
-# class PySide2.QtCore.QJsonDocument.DataValidation:
-# class PySide2.QtCore.QJsonDocument.JsonFormat:
- "PySide2.QtCore.QJsonDocument.__init__": [(), ('PySide2.QtCore.QJsonArray',), ('PySide2.QtCore.QJsonDocument',), ('typing.Dict[str, PySide2.QtCore.QJsonValue]',)],
- "PySide2.QtCore.QJsonDocument.__copy__": (),
- "PySide2.QtCore.QJsonDocument.array": (),
- "PySide2.QtCore.QJsonDocument.fromBinaryData": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QJsonDocument.DataValidation'),
- "PySide2.QtCore.QJsonDocument.fromJson": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QJsonParseError'),
- "PySide2.QtCore.QJsonDocument.fromRawData": ('str', 'int', 'PySide2.QtCore.QJsonDocument.DataValidation'),
- "PySide2.QtCore.QJsonDocument.fromVariant": ('typing.Any',),
- "PySide2.QtCore.QJsonDocument.isArray": (),
- "PySide2.QtCore.QJsonDocument.isEmpty": (),
- "PySide2.QtCore.QJsonDocument.isNull": (),
- "PySide2.QtCore.QJsonDocument.isObject": (),
- "PySide2.QtCore.QJsonDocument.object": (),
- "PySide2.QtCore.QJsonDocument.rawData": (),
- "PySide2.QtCore.QJsonDocument.setArray": ('PySide2.QtCore.QJsonArray',),
- "PySide2.QtCore.QJsonDocument.setObject": ('typing.Dict[str, PySide2.QtCore.QJsonValue]',),
- "PySide2.QtCore.QJsonDocument.swap": ('PySide2.QtCore.QJsonDocument',),
- "PySide2.QtCore.QJsonDocument.toBinaryData": (),
- "PySide2.QtCore.QJsonDocument.toJson": [(), ('PySide2.QtCore.QJsonDocument.JsonFormat',)],
- "PySide2.QtCore.QJsonDocument.toVariant": (),
-# class PySide2.QtCore.QJsonParseError:
-# class PySide2.QtCore.QJsonParseError.ParseError:
- "PySide2.QtCore.QJsonParseError.__init__": [(), ('PySide2.QtCore.QJsonParseError',)],
- "PySide2.QtCore.QJsonParseError.__copy__": (),
- "PySide2.QtCore.QJsonParseError.errorString": (),
-# class PySide2.QtCore.QJsonValue:
-# class PySide2.QtCore.QJsonValue.Type:
- "PySide2.QtCore.QJsonValue.__init__": [('PySide2.QtCore.QJsonArray',), ('PySide2.QtCore.QJsonValue',), ('PySide2.QtCore.QJsonValue.Type',), ('bool',), ('float',), ('int',), ('str',), ('typing.Dict[str, PySide2.QtCore.QJsonValue]',)],
- "PySide2.QtCore.QJsonValue.__copy__": (),
- "PySide2.QtCore.QJsonValue.fromVariant": ('typing.Any',),
- "PySide2.QtCore.QJsonValue.isArray": (),
- "PySide2.QtCore.QJsonValue.isBool": (),
- "PySide2.QtCore.QJsonValue.isDouble": (),
- "PySide2.QtCore.QJsonValue.isNull": (),
- "PySide2.QtCore.QJsonValue.isObject": (),
- "PySide2.QtCore.QJsonValue.isString": (),
- "PySide2.QtCore.QJsonValue.isUndefined": (),
- "PySide2.QtCore.QJsonValue.swap": ('PySide2.QtCore.QJsonValue',),
- "PySide2.QtCore.QJsonValue.toArray": [(), ('PySide2.QtCore.QJsonArray',)],
- "PySide2.QtCore.QJsonValue.toBool": ('bool',),
- "PySide2.QtCore.QJsonValue.toDouble": ('float',),
- "PySide2.QtCore.QJsonValue.toInt": ('int',),
- "PySide2.QtCore.QJsonValue.toObject": [(), ('typing.Dict[str, PySide2.QtCore.QJsonValue]',)],
- "PySide2.QtCore.QJsonValue.toString": [(), ('str',)],
- "PySide2.QtCore.QJsonValue.toVariant": (),
- "PySide2.QtCore.QJsonValue.type": (),
-# class PySide2.QtCore.QLibraryInfo:
-# class PySide2.QtCore.QLibraryInfo.LibraryLocation:
- "PySide2.QtCore.QLibraryInfo.build": (),
- "PySide2.QtCore.QLibraryInfo.buildDate": (),
- "PySide2.QtCore.QLibraryInfo.isDebugBuild": (),
- "PySide2.QtCore.QLibraryInfo.licensedProducts": (),
- "PySide2.QtCore.QLibraryInfo.licensee": (),
- "PySide2.QtCore.QLibraryInfo.location": ('PySide2.QtCore.QLibraryInfo.LibraryLocation',),
- "PySide2.QtCore.QLibraryInfo.platformPluginArguments": ('str',),
- "PySide2.QtCore.QLibraryInfo.version": (),
-# class PySide2.QtCore.QLine:
- "PySide2.QtCore.QLine.__init__": [(), ('PySide2.QtCore.QLine',), ('PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint'), ('int', 'int', 'int', 'int')],
- "PySide2.QtCore.QLine.__copy__": (),
- "PySide2.QtCore.QLine.__reduce__": (),
- "PySide2.QtCore.QLine.__repr__": (),
- "PySide2.QtCore.QLine.center": (),
- "PySide2.QtCore.QLine.dx": (),
- "PySide2.QtCore.QLine.dy": (),
- "PySide2.QtCore.QLine.isNull": (),
- "PySide2.QtCore.QLine.p1": (),
- "PySide2.QtCore.QLine.p2": (),
- "PySide2.QtCore.QLine.setLine": ('int', 'int', 'int', 'int'),
- "PySide2.QtCore.QLine.setP1": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QLine.setP2": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QLine.setPoints": ('PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint'),
- "PySide2.QtCore.QLine.toTuple": (),
- "PySide2.QtCore.QLine.translate": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtCore.QLine.translated": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtCore.QLine.x1": (),
- "PySide2.QtCore.QLine.x2": (),
- "PySide2.QtCore.QLine.y1": (),
- "PySide2.QtCore.QLine.y2": (),
-# class PySide2.QtCore.QLineF:
-# class PySide2.QtCore.QLineF.IntersectType:
- "PySide2.QtCore.QLineF.__init__": [(), ('PySide2.QtCore.QLine',), ('PySide2.QtCore.QLineF',), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'), ('float', 'float', 'float', 'float')],
- "PySide2.QtCore.QLineF.__copy__": (),
- "PySide2.QtCore.QLineF.__reduce__": (),
- "PySide2.QtCore.QLineF.__repr__": (),
- "PySide2.QtCore.QLineF.angle": [(), ('PySide2.QtCore.QLineF',)],
- "PySide2.QtCore.QLineF.angleTo": ('PySide2.QtCore.QLineF',),
- "PySide2.QtCore.QLineF.center": (),
- "PySide2.QtCore.QLineF.dx": (),
- "PySide2.QtCore.QLineF.dy": (),
- "PySide2.QtCore.QLineF.fromPolar": ('float', 'float'),
- "PySide2.QtCore.QLineF.intersect": ('PySide2.QtCore.QLineF', 'PySide2.QtCore.QPointF'),
- "PySide2.QtCore.QLineF.intersects": ('PySide2.QtCore.QLineF', 'PySide2.QtCore.QPointF'),
- "PySide2.QtCore.QLineF.isNull": (),
- "PySide2.QtCore.QLineF.length": (),
- "PySide2.QtCore.QLineF.normalVector": (),
- "PySide2.QtCore.QLineF.p1": (),
- "PySide2.QtCore.QLineF.p2": (),
- "PySide2.QtCore.QLineF.pointAt": ('float',),
- "PySide2.QtCore.QLineF.setAngle": ('float',),
- "PySide2.QtCore.QLineF.setLength": ('float',),
- "PySide2.QtCore.QLineF.setLine": ('float', 'float', 'float', 'float'),
- "PySide2.QtCore.QLineF.setP1": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QLineF.setP2": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QLineF.setPoints": ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'),
- "PySide2.QtCore.QLineF.toLine": (),
- "PySide2.QtCore.QLineF.toTuple": (),
- "PySide2.QtCore.QLineF.translate": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtCore.QLineF.translated": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtCore.QLineF.unitVector": (),
- "PySide2.QtCore.QLineF.x1": (),
- "PySide2.QtCore.QLineF.x2": (),
- "PySide2.QtCore.QLineF.y1": (),
- "PySide2.QtCore.QLineF.y2": (),
-# class PySide2.QtCore.QLocale:
-# class PySide2.QtCore.QLocale.Country:
-# class PySide2.QtCore.QLocale.CurrencySymbolFormat:
-# class PySide2.QtCore.QLocale.DataSizeFormat:
-# class PySide2.QtCore.QLocale.DataSizeFormats:
-# class PySide2.QtCore.QLocale.FloatingPointPrecisionOption:
-# class PySide2.QtCore.QLocale.FormatType:
-# class PySide2.QtCore.QLocale.Language:
-# class PySide2.QtCore.QLocale.MeasurementSystem:
-# class PySide2.QtCore.QLocale.NumberOption:
-# class PySide2.QtCore.QLocale.NumberOptions:
-# class PySide2.QtCore.QLocale.QuotationStyle:
-# class PySide2.QtCore.QLocale.Script:
- "PySide2.QtCore.QLocale.__init__": [(), ('PySide2.QtCore.QLocale',), ('PySide2.QtCore.QLocale.Language', 'PySide2.QtCore.QLocale.Country'), ('PySide2.QtCore.QLocale.Language', 'PySide2.QtCore.QLocale.Script', 'PySide2.QtCore.QLocale.Country'), ('str',)],
- "PySide2.QtCore.QLocale.__copy__": (),
- "PySide2.QtCore.QLocale.amText": (),
- "PySide2.QtCore.QLocale.bcp47Name": (),
- "PySide2.QtCore.QLocale.c": (),
- "PySide2.QtCore.QLocale.collation": (),
- "PySide2.QtCore.QLocale.countriesForLanguage": ('PySide2.QtCore.QLocale.Language',),
- "PySide2.QtCore.QLocale.country": (),
- "PySide2.QtCore.QLocale.countryToString": ('PySide2.QtCore.QLocale.Country',),
- "PySide2.QtCore.QLocale.createSeparatedList": ('typing.Sequence[str]',),
- "PySide2.QtCore.QLocale.currencySymbol": ('PySide2.QtCore.QLocale.CurrencySymbolFormat',),
- "PySide2.QtCore.QLocale.dateFormat": ('PySide2.QtCore.QLocale.FormatType',),
- "PySide2.QtCore.QLocale.dateTimeFormat": ('PySide2.QtCore.QLocale.FormatType',),
- "PySide2.QtCore.QLocale.dayName": ('int', 'PySide2.QtCore.QLocale.FormatType'),
- "PySide2.QtCore.QLocale.decimalPoint": (),
- "PySide2.QtCore.QLocale.exponential": (),
- "PySide2.QtCore.QLocale.firstDayOfWeek": (),
- "PySide2.QtCore.QLocale.formattedDataSize": ('int', 'int', 'PySide2.QtCore.QLocale.DataSizeFormats'),
- "PySide2.QtCore.QLocale.groupSeparator": (),
- "PySide2.QtCore.QLocale.language": (),
- "PySide2.QtCore.QLocale.languageToString": ('PySide2.QtCore.QLocale.Language',),
- "PySide2.QtCore.QLocale.matchingLocales": ('PySide2.QtCore.QLocale.Language', 'PySide2.QtCore.QLocale.Script', 'PySide2.QtCore.QLocale.Country'),
- "PySide2.QtCore.QLocale.measurementSystem": (),
- "PySide2.QtCore.QLocale.monthName": ('int', 'PySide2.QtCore.QLocale.FormatType'),
- "PySide2.QtCore.QLocale.name": (),
- "PySide2.QtCore.QLocale.nativeCountryName": (),
- "PySide2.QtCore.QLocale.nativeLanguageName": (),
- "PySide2.QtCore.QLocale.negativeSign": (),
- "PySide2.QtCore.QLocale.numberOptions": (),
- "PySide2.QtCore.QLocale.percent": (),
- "PySide2.QtCore.QLocale.pmText": (),
- "PySide2.QtCore.QLocale.positiveSign": (),
- "PySide2.QtCore.QLocale.quoteString": ('str', 'PySide2.QtCore.QLocale.QuotationStyle'),
- "PySide2.QtCore.QLocale.script": (),
- "PySide2.QtCore.QLocale.scriptToString": ('PySide2.QtCore.QLocale.Script',),
- "PySide2.QtCore.QLocale.setDefault": ('PySide2.QtCore.QLocale',),
- "PySide2.QtCore.QLocale.setNumberOptions": ('PySide2.QtCore.QLocale.NumberOptions',),
- "PySide2.QtCore.QLocale.standaloneDayName": ('int', 'PySide2.QtCore.QLocale.FormatType'),
- "PySide2.QtCore.QLocale.standaloneMonthName": ('int', 'PySide2.QtCore.QLocale.FormatType'),
- "PySide2.QtCore.QLocale.swap": ('PySide2.QtCore.QLocale',),
- "PySide2.QtCore.QLocale.system": (),
- "PySide2.QtCore.QLocale.textDirection": (),
- "PySide2.QtCore.QLocale.timeFormat": ('PySide2.QtCore.QLocale.FormatType',),
- "PySide2.QtCore.QLocale.toCurrencyString": [('float', 'str'), ('float', 'str', 'int'), ('int', 'str')],
- "PySide2.QtCore.QLocale.toDate": [('str', 'PySide2.QtCore.QLocale.FormatType'), ('str', 'PySide2.QtCore.QLocale.FormatType', 'PySide2.QtCore.QCalendar'), ('str', 'str'), ('str', 'str', 'PySide2.QtCore.QCalendar')],
- "PySide2.QtCore.QLocale.toDateTime": [('str', 'PySide2.QtCore.QLocale.FormatType'), ('str', 'PySide2.QtCore.QLocale.FormatType', 'PySide2.QtCore.QCalendar'), ('str', 'str'), ('str', 'str', 'PySide2.QtCore.QCalendar')],
- "PySide2.QtCore.QLocale.toDouble": ('str',),
- "PySide2.QtCore.QLocale.toFloat": ('str',),
- "PySide2.QtCore.QLocale.toInt": ('str',),
- "PySide2.QtCore.QLocale.toLong": ('str',),
- "PySide2.QtCore.QLocale.toLongLong": ('str',),
- "PySide2.QtCore.QLocale.toLower": ('str',),
- "PySide2.QtCore.QLocale.toShort": ('str',),
- "PySide2.QtCore.QLocale.toString": [('PySide2.QtCore.QDate', 'PySide2.QtCore.QLocale.FormatType'), ('PySide2.QtCore.QDate', 'PySide2.QtCore.QLocale.FormatType', 'PySide2.QtCore.QCalendar'), ('PySide2.QtCore.QDate', 'str'), ('PySide2.QtCore.QDateTime', 'PySide2.QtCore.QLocale.FormatType'), ('PySide2.QtCore.QDateTime', 'PySide2.QtCore.QLocale.FormatType', 'PySide2.QtCore.QCalendar'), ('PySide2.QtCore.QDateTime', 'str'), ('PySide2.QtCore.QTime', 'PySide2.QtCore.QLocale.FormatType'), ('PySide2.QtCore.QTime', 'str'), ('float', 'int', 'int'), ('int',)],
- "PySide2.QtCore.QLocale.toTime": [('str', 'PySide2.QtCore.QLocale.FormatType'), ('str', 'PySide2.QtCore.QLocale.FormatType', 'PySide2.QtCore.QCalendar'), ('str', 'str'), ('str', 'str', 'PySide2.QtCore.QCalendar')],
- "PySide2.QtCore.QLocale.toUInt": ('str',),
- "PySide2.QtCore.QLocale.toULong": ('str',),
- "PySide2.QtCore.QLocale.toULongLong": ('str',),
- "PySide2.QtCore.QLocale.toUShort": ('str',),
- "PySide2.QtCore.QLocale.toUpper": ('str',),
- "PySide2.QtCore.QLocale.uiLanguages": (),
- "PySide2.QtCore.QLocale.weekdays": (),
- "PySide2.QtCore.QLocale.zeroDigit": (),
-# class PySide2.QtCore.QLockFile:
-# class PySide2.QtCore.QLockFile.LockError:
- "PySide2.QtCore.QLockFile.__init__": ('str',),
- "PySide2.QtCore.QLockFile.error": (),
- "PySide2.QtCore.QLockFile.getLockInfo": (),
- "PySide2.QtCore.QLockFile.isLocked": (),
- "PySide2.QtCore.QLockFile.lock": (),
- "PySide2.QtCore.QLockFile.removeStaleLockFile": (),
- "PySide2.QtCore.QLockFile.setStaleLockTime": ('int',),
- "PySide2.QtCore.QLockFile.staleLockTime": (),
- "PySide2.QtCore.QLockFile.tryLock": ('int',),
- "PySide2.QtCore.QLockFile.unlock": (),
-# class PySide2.QtCore.QMargins:
- "PySide2.QtCore.QMargins.__init__": [(), ('PySide2.QtCore.QMargins',), ('int', 'int', 'int', 'int')],
- "PySide2.QtCore.QMargins.__add__": [('PySide2.QtCore.QMargins',), ('int',)],
- "PySide2.QtCore.QMargins.__copy__": (),
- "PySide2.QtCore.QMargins.__iadd__": [('PySide2.QtCore.QMargins',), ('int',)],
- "PySide2.QtCore.QMargins.__imul__": [('float',), ('int',)],
- "PySide2.QtCore.QMargins.__isub__": [('PySide2.QtCore.QMargins',), ('int',)],
- "PySide2.QtCore.QMargins.__mul__": [('float',), ('int',)],
- "PySide2.QtCore.QMargins.__neg__": (),
- "PySide2.QtCore.QMargins.__pos__": (),
- "PySide2.QtCore.QMargins.__sub__": [('PySide2.QtCore.QMargins',), ('int',)],
- "PySide2.QtCore.QMargins.bottom": (),
- "PySide2.QtCore.QMargins.isNull": (),
- "PySide2.QtCore.QMargins.left": (),
- "PySide2.QtCore.QMargins.right": (),
- "PySide2.QtCore.QMargins.setBottom": ('int',),
- "PySide2.QtCore.QMargins.setLeft": ('int',),
- "PySide2.QtCore.QMargins.setRight": ('int',),
- "PySide2.QtCore.QMargins.setTop": ('int',),
- "PySide2.QtCore.QMargins.top": (),
-# class PySide2.QtCore.QMarginsF:
- "PySide2.QtCore.QMarginsF.__init__": [(), ('PySide2.QtCore.QMargins',), ('PySide2.QtCore.QMarginsF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtCore.QMarginsF.__add__": [('PySide2.QtCore.QMarginsF',), ('float',)],
- "PySide2.QtCore.QMarginsF.__copy__": (),
- "PySide2.QtCore.QMarginsF.__iadd__": [('PySide2.QtCore.QMarginsF',), ('float',)],
- "PySide2.QtCore.QMarginsF.__imul__": ('float',),
- "PySide2.QtCore.QMarginsF.__isub__": [('PySide2.QtCore.QMarginsF',), ('float',)],
- "PySide2.QtCore.QMarginsF.__mul__": ('float',),
- "PySide2.QtCore.QMarginsF.__neg__": (),
- "PySide2.QtCore.QMarginsF.__pos__": (),
- "PySide2.QtCore.QMarginsF.__sub__": [('PySide2.QtCore.QMarginsF',), ('float',)],
- "PySide2.QtCore.QMarginsF.bottom": (),
- "PySide2.QtCore.QMarginsF.isNull": (),
- "PySide2.QtCore.QMarginsF.left": (),
- "PySide2.QtCore.QMarginsF.right": (),
- "PySide2.QtCore.QMarginsF.setBottom": ('float',),
- "PySide2.QtCore.QMarginsF.setLeft": ('float',),
- "PySide2.QtCore.QMarginsF.setRight": ('float',),
- "PySide2.QtCore.QMarginsF.setTop": ('float',),
- "PySide2.QtCore.QMarginsF.toMargins": (),
- "PySide2.QtCore.QMarginsF.top": (),
-# class PySide2.QtCore.QMessageAuthenticationCode:
- "PySide2.QtCore.QMessageAuthenticationCode.__init__": ('PySide2.QtCore.QCryptographicHash.Algorithm', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtCore.QMessageAuthenticationCode.addData": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QIODevice',), ('str', 'int')],
- "PySide2.QtCore.QMessageAuthenticationCode.hash": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray', 'PySide2.QtCore.QCryptographicHash.Algorithm'),
- "PySide2.QtCore.QMessageAuthenticationCode.reset": (),
- "PySide2.QtCore.QMessageAuthenticationCode.result": (),
- "PySide2.QtCore.QMessageAuthenticationCode.setKey": ('PySide2.QtCore.QByteArray',),
-# class PySide2.QtCore.QMessageLogContext:
- "PySide2.QtCore.QMessageLogContext.__init__": [(), ('str', 'int', 'str', 'str')],
-# class PySide2.QtCore.QMetaClassInfo:
- "PySide2.QtCore.QMetaClassInfo.__init__": [(), ('PySide2.QtCore.QMetaClassInfo',)],
- "PySide2.QtCore.QMetaClassInfo.__copy__": (),
- "PySide2.QtCore.QMetaClassInfo.name": (),
- "PySide2.QtCore.QMetaClassInfo.value": (),
-# class PySide2.QtCore.QMetaEnum:
- "PySide2.QtCore.QMetaEnum.__init__": [(), ('PySide2.QtCore.QMetaEnum',)],
- "PySide2.QtCore.QMetaEnum.__copy__": (),
- "PySide2.QtCore.QMetaEnum.enumName": (),
- "PySide2.QtCore.QMetaEnum.isFlag": (),
- "PySide2.QtCore.QMetaEnum.isScoped": (),
- "PySide2.QtCore.QMetaEnum.isValid": (),
- "PySide2.QtCore.QMetaEnum.key": ('int',),
- "PySide2.QtCore.QMetaEnum.keyCount": (),
- "PySide2.QtCore.QMetaEnum.keyToValue": ('str',),
- "PySide2.QtCore.QMetaEnum.keysToValue": ('str',),
- "PySide2.QtCore.QMetaEnum.name": (),
- "PySide2.QtCore.QMetaEnum.scope": (),
- "PySide2.QtCore.QMetaEnum.value": ('int',),
- "PySide2.QtCore.QMetaEnum.valueToKey": ('int',),
- "PySide2.QtCore.QMetaEnum.valueToKeys": ('int',),
-# class PySide2.QtCore.QMetaMethod:
-# class PySide2.QtCore.QMetaMethod.Access:
-# class PySide2.QtCore.QMetaMethod.MethodType:
- "PySide2.QtCore.QMetaMethod.__init__": [(), ('PySide2.QtCore.QMetaMethod',)],
- "PySide2.QtCore.QMetaMethod.__copy__": (),
- "PySide2.QtCore.QMetaMethod.access": (),
- "PySide2.QtCore.QMetaMethod.enclosingMetaObject": (),
- "PySide2.QtCore.QMetaMethod.invoke": [('PySide2.QtCore.QObject', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument'), ('PySide2.QtCore.QObject', 'PySide2.QtCore.QGenericReturnArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument'), ('PySide2.QtCore.QObject', 'PySide2.QtCore.Qt.ConnectionType', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument'), ('PySide2.QtCore.QObject', 'PySide2.QtCore.Qt.ConnectionType', 'PySide2.QtCore.QGenericReturnArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument')],
- "PySide2.QtCore.QMetaMethod.invokeOnGadget": [('int', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument'), ('int', 'PySide2.QtCore.QGenericReturnArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument')],
- "PySide2.QtCore.QMetaMethod.isValid": (),
- "PySide2.QtCore.QMetaMethod.methodIndex": (),
- "PySide2.QtCore.QMetaMethod.methodSignature": (),
- "PySide2.QtCore.QMetaMethod.methodType": (),
- "PySide2.QtCore.QMetaMethod.name": (),
- "PySide2.QtCore.QMetaMethod.parameterCount": (),
- "PySide2.QtCore.QMetaMethod.parameterNames": (),
- "PySide2.QtCore.QMetaMethod.parameterType": ('int',),
- "PySide2.QtCore.QMetaMethod.parameterTypes": (),
- "PySide2.QtCore.QMetaMethod.returnType": (),
- "PySide2.QtCore.QMetaMethod.revision": (),
- "PySide2.QtCore.QMetaMethod.tag": (),
- "PySide2.QtCore.QMetaMethod.typeName": (),
-# class PySide2.QtCore.QMetaObject:
-# class PySide2.QtCore.QMetaObject.Call:
-# class PySide2.QtCore.QMetaObject.Connection:
- "PySide2.QtCore.QMetaObject.Connection.__init__": [(), ('PySide2.QtCore.QMetaObject.Connection',)],
- "PySide2.QtCore.QMetaObject.__init__": (),
- "PySide2.QtCore.QMetaObject.cast": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QMetaObject.checkConnectArgs": [('PySide2.QtCore.QMetaMethod', 'PySide2.QtCore.QMetaMethod'), ('str', 'str')],
- "PySide2.QtCore.QMetaObject.classInfo": ('int',),
- "PySide2.QtCore.QMetaObject.classInfoCount": (),
- "PySide2.QtCore.QMetaObject.classInfoOffset": (),
- "PySide2.QtCore.QMetaObject.className": (),
- "PySide2.QtCore.QMetaObject.connectSlotsByName": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QMetaObject.constructor": ('int',),
- "PySide2.QtCore.QMetaObject.constructorCount": (),
- "PySide2.QtCore.QMetaObject.disconnect": ('PySide2.QtCore.QObject', 'int', 'PySide2.QtCore.QObject', 'int'),
- "PySide2.QtCore.QMetaObject.disconnectOne": ('PySide2.QtCore.QObject', 'int', 'PySide2.QtCore.QObject', 'int'),
- "PySide2.QtCore.QMetaObject.enumerator": ('int',),
- "PySide2.QtCore.QMetaObject.enumeratorCount": (),
- "PySide2.QtCore.QMetaObject.enumeratorOffset": (),
- "PySide2.QtCore.QMetaObject.indexOfClassInfo": ('str',),
- "PySide2.QtCore.QMetaObject.indexOfConstructor": ('str',),
- "PySide2.QtCore.QMetaObject.indexOfEnumerator": ('str',),
- "PySide2.QtCore.QMetaObject.indexOfMethod": ('str',),
- "PySide2.QtCore.QMetaObject.indexOfProperty": ('str',),
- "PySide2.QtCore.QMetaObject.indexOfSignal": ('str',),
- "PySide2.QtCore.QMetaObject.indexOfSlot": ('str',),
- "PySide2.QtCore.QMetaObject.inherits": ('PySide2.QtCore.QMetaObject',),
- "PySide2.QtCore.QMetaObject.invokeMethod": [('PySide2.QtCore.QObject', 'str', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument'), ('PySide2.QtCore.QObject', 'str', 'PySide2.QtCore.QGenericReturnArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument'), ('PySide2.QtCore.QObject', 'str', 'PySide2.QtCore.Qt.ConnectionType', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument'), ('PySide2.QtCore.QObject', 'str', 'PySide2.QtCore.Qt.ConnectionType', 'PySide2.QtCore.QGenericReturnArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument')],
- "PySide2.QtCore.QMetaObject.method": ('int',),
- "PySide2.QtCore.QMetaObject.methodCount": (),
- "PySide2.QtCore.QMetaObject.methodOffset": (),
- "PySide2.QtCore.QMetaObject.newInstance": ('PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument'),
- "PySide2.QtCore.QMetaObject.normalizedSignature": ('str',),
- "PySide2.QtCore.QMetaObject.normalizedType": ('str',),
- "PySide2.QtCore.QMetaObject.property": ('int',),
- "PySide2.QtCore.QMetaObject.propertyCount": (),
- "PySide2.QtCore.QMetaObject.propertyOffset": (),
- "PySide2.QtCore.QMetaObject.superClass": (),
- "PySide2.QtCore.QMetaObject.userProperty": (),
-# class PySide2.QtCore.QMetaProperty:
- "PySide2.QtCore.QMetaProperty.__init__": [(), ('PySide2.QtCore.QMetaProperty',)],
- "PySide2.QtCore.QMetaProperty.__copy__": (),
- "PySide2.QtCore.QMetaProperty.enumerator": (),
- "PySide2.QtCore.QMetaProperty.hasNotifySignal": (),
- "PySide2.QtCore.QMetaProperty.hasStdCppSet": (),
- "PySide2.QtCore.QMetaProperty.isConstant": (),
- "PySide2.QtCore.QMetaProperty.isDesignable": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QMetaProperty.isEditable": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QMetaProperty.isEnumType": (),
- "PySide2.QtCore.QMetaProperty.isFinal": (),
- "PySide2.QtCore.QMetaProperty.isFlagType": (),
- "PySide2.QtCore.QMetaProperty.isReadable": (),
- "PySide2.QtCore.QMetaProperty.isResettable": (),
- "PySide2.QtCore.QMetaProperty.isScriptable": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QMetaProperty.isStored": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QMetaProperty.isUser": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QMetaProperty.isValid": (),
- "PySide2.QtCore.QMetaProperty.isWritable": (),
- "PySide2.QtCore.QMetaProperty.name": (),
- "PySide2.QtCore.QMetaProperty.notifySignal": (),
- "PySide2.QtCore.QMetaProperty.notifySignalIndex": (),
- "PySide2.QtCore.QMetaProperty.propertyIndex": (),
- "PySide2.QtCore.QMetaProperty.read": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QMetaProperty.readOnGadget": ('int',),
- "PySide2.QtCore.QMetaProperty.relativePropertyIndex": (),
- "PySide2.QtCore.QMetaProperty.reset": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QMetaProperty.resetOnGadget": ('int',),
- "PySide2.QtCore.QMetaProperty.revision": (),
- "PySide2.QtCore.QMetaProperty.type": (),
- "PySide2.QtCore.QMetaProperty.typeName": (),
- "PySide2.QtCore.QMetaProperty.userType": (),
- "PySide2.QtCore.QMetaProperty.write": ('PySide2.QtCore.QObject', 'typing.Any'),
- "PySide2.QtCore.QMetaProperty.writeOnGadget": ('int', 'typing.Any'),
-# class PySide2.QtCore.QMimeData:
- "PySide2.QtCore.QMimeData.__init__": (),
- "PySide2.QtCore.QMimeData.clear": (),
- "PySide2.QtCore.QMimeData.colorData": (),
- "PySide2.QtCore.QMimeData.data": ('str',),
- "PySide2.QtCore.QMimeData.formats": (),
- "PySide2.QtCore.QMimeData.hasColor": (),
- "PySide2.QtCore.QMimeData.hasFormat": ('str',),
- "PySide2.QtCore.QMimeData.hasHtml": (),
- "PySide2.QtCore.QMimeData.hasImage": (),
- "PySide2.QtCore.QMimeData.hasText": (),
- "PySide2.QtCore.QMimeData.hasUrls": (),
- "PySide2.QtCore.QMimeData.html": (),
- "PySide2.QtCore.QMimeData.imageData": (),
- "PySide2.QtCore.QMimeData.removeFormat": ('str',),
- "PySide2.QtCore.QMimeData.retrieveData": ('str', 'type'),
- "PySide2.QtCore.QMimeData.setColorData": ('typing.Any',),
- "PySide2.QtCore.QMimeData.setData": ('str', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtCore.QMimeData.setHtml": ('str',),
- "PySide2.QtCore.QMimeData.setImageData": ('typing.Any',),
- "PySide2.QtCore.QMimeData.setText": ('str',),
- "PySide2.QtCore.QMimeData.setUrls": ('typing.Sequence[PySide2.QtCore.QUrl]',),
- "PySide2.QtCore.QMimeData.text": (),
- "PySide2.QtCore.QMimeData.urls": (),
-# class PySide2.QtCore.QMimeDatabase:
-# class PySide2.QtCore.QMimeDatabase.MatchMode:
- "PySide2.QtCore.QMimeDatabase.__init__": (),
- "PySide2.QtCore.QMimeDatabase.allMimeTypes": (),
- "PySide2.QtCore.QMimeDatabase.mimeTypeForData": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QIODevice',)],
- "PySide2.QtCore.QMimeDatabase.mimeTypeForFile": [('PySide2.QtCore.QFileInfo', 'PySide2.QtCore.QMimeDatabase.MatchMode'), ('str', 'PySide2.QtCore.QMimeDatabase.MatchMode')],
- "PySide2.QtCore.QMimeDatabase.mimeTypeForFileNameAndData": [('str', 'PySide2.QtCore.QByteArray'), ('str', 'PySide2.QtCore.QIODevice')],
- "PySide2.QtCore.QMimeDatabase.mimeTypeForName": ('str',),
- "PySide2.QtCore.QMimeDatabase.mimeTypeForUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtCore.QMimeDatabase.mimeTypesForFileName": ('str',),
- "PySide2.QtCore.QMimeDatabase.suffixForFileName": ('str',),
-# class PySide2.QtCore.QMimeType:
- "PySide2.QtCore.QMimeType.__init__": [(), ('PySide2.QtCore.QMimeType',)],
- "PySide2.QtCore.QMimeType.__copy__": (),
- "PySide2.QtCore.QMimeType.aliases": (),
- "PySide2.QtCore.QMimeType.allAncestors": (),
- "PySide2.QtCore.QMimeType.comment": (),
- "PySide2.QtCore.QMimeType.filterString": (),
- "PySide2.QtCore.QMimeType.genericIconName": (),
- "PySide2.QtCore.QMimeType.globPatterns": (),
- "PySide2.QtCore.QMimeType.iconName": (),
- "PySide2.QtCore.QMimeType.inherits": ('str',),
- "PySide2.QtCore.QMimeType.isDefault": (),
- "PySide2.QtCore.QMimeType.isValid": (),
- "PySide2.QtCore.QMimeType.name": (),
- "PySide2.QtCore.QMimeType.parentMimeTypes": (),
- "PySide2.QtCore.QMimeType.preferredSuffix": (),
- "PySide2.QtCore.QMimeType.suffixes": (),
- "PySide2.QtCore.QMimeType.swap": ('PySide2.QtCore.QMimeType',),
-# class PySide2.QtCore.QModelIndex:
- "PySide2.QtCore.QModelIndex.__init__": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtCore.QModelIndex.__copy__": (),
- "PySide2.QtCore.QModelIndex.child": ('int', 'int'),
- "PySide2.QtCore.QModelIndex.column": (),
- "PySide2.QtCore.QModelIndex.data": ('int',),
- "PySide2.QtCore.QModelIndex.flags": (),
- "PySide2.QtCore.QModelIndex.internalId": (),
- "PySide2.QtCore.QModelIndex.internalPointer": (),
- "PySide2.QtCore.QModelIndex.isValid": (),
- "PySide2.QtCore.QModelIndex.model": (),
- "PySide2.QtCore.QModelIndex.parent": (),
- "PySide2.QtCore.QModelIndex.row": (),
- "PySide2.QtCore.QModelIndex.sibling": ('int', 'int'),
- "PySide2.QtCore.QModelIndex.siblingAtColumn": ('int',),
- "PySide2.QtCore.QModelIndex.siblingAtRow": ('int',),
-# class PySide2.QtCore.QMutex:
-# class PySide2.QtCore.QMutex.RecursionMode:
- "PySide2.QtCore.QMutex.__init__": [(), ('PySide2.QtCore.QMutex.RecursionMode',)],
- "PySide2.QtCore.QMutex.isRecursive": (),
- "PySide2.QtCore.QMutex.lock": (),
- "PySide2.QtCore.QMutex.tryLock": [(), ('int',)],
- "PySide2.QtCore.QMutex.try_lock": (),
- "PySide2.QtCore.QMutex.unlock": (),
-# class PySide2.QtCore.QMutexLocker:
- "PySide2.QtCore.QMutexLocker.__init__": [('PySide2.QtCore.QBasicMutex',), ('PySide2.QtCore.QRecursiveMutex',)],
- "PySide2.QtCore.QMutexLocker.__enter__": (),
- "PySide2.QtCore.QMutexLocker.__exit__": ('object', 'object', 'object'),
- "PySide2.QtCore.QMutexLocker.mutex": (),
- "PySide2.QtCore.QMutexLocker.relock": (),
- "PySide2.QtCore.QMutexLocker.unlock": (),
-# class PySide2.QtCore.QObject:
- "PySide2.QtCore.QObject.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QObject.blockSignals": ('bool',),
- "PySide2.QtCore.QObject.childEvent": ('PySide2.QtCore.QChildEvent',),
- "PySide2.QtCore.QObject.children": (),
- "PySide2.QtCore.QObject.connect": [('PySide2.QtCore.QObject', 'PySide2.QtCore.QMetaMethod', 'PySide2.QtCore.QObject', 'PySide2.QtCore.QMetaMethod', 'PySide2.QtCore.Qt.ConnectionType'), ('PySide2.QtCore.QObject', 'str', 'PySide2.QtCore.QObject', 'str', 'PySide2.QtCore.Qt.ConnectionType'), ('PySide2.QtCore.QObject', 'str', 'str', 'PySide2.QtCore.Qt.ConnectionType'), ('PySide2.QtCore.QObject', 'str', 'typing.Callable', 'PySide2.QtCore.Qt.ConnectionType'), ('str', 'PySide2.QtCore.QObject', 'str', 'PySide2.QtCore.Qt.ConnectionType'), ('str', 'typing.Callable', 'PySide2.QtCore.Qt.ConnectionType')],
- "PySide2.QtCore.QObject.connectNotify": ('PySide2.QtCore.QMetaMethod',),
- "PySide2.QtCore.QObject.customEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QObject.deleteLater": (),
- "PySide2.QtCore.QObject.disconnect": [('PySide2.QtCore.QMetaObject.Connection',), ('PySide2.QtCore.QObject', 'PySide2.QtCore.QMetaMethod', 'PySide2.QtCore.QObject', 'PySide2.QtCore.QMetaMethod'), ('PySide2.QtCore.QObject', 'str'), ('PySide2.QtCore.QObject', 'str', 'PySide2.QtCore.QObject', 'str'), ('PySide2.QtCore.QObject', 'str', 'typing.Callable'), ('str', 'PySide2.QtCore.QObject', 'str'), ('str', 'typing.Callable')],
- "PySide2.QtCore.QObject.disconnectNotify": ('PySide2.QtCore.QMetaMethod',),
- "PySide2.QtCore.QObject.dumpObjectInfo": (),
- "PySide2.QtCore.QObject.dumpObjectTree": (),
- "PySide2.QtCore.QObject.dynamicPropertyNames": (),
- "PySide2.QtCore.QObject.emit": ('str', 'None'),
- "PySide2.QtCore.QObject.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QObject.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtCore.QObject.findChild": ('type', 'str'),
- "PySide2.QtCore.QObject.findChildren": [('type', 'PySide2.QtCore.QRegExp'), ('type', 'str')],
- "PySide2.QtCore.QObject.inherits": ('str',),
- "PySide2.QtCore.QObject.installEventFilter": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QObject.isSignalConnected": ('PySide2.QtCore.QMetaMethod',),
- "PySide2.QtCore.QObject.isWidgetType": (),
- "PySide2.QtCore.QObject.isWindowType": (),
- "PySide2.QtCore.QObject.killTimer": ('int',),
- "PySide2.QtCore.QObject.metaObject": (),
- "PySide2.QtCore.QObject.moveToThread": ('PySide2.QtCore.QThread',),
- "PySide2.QtCore.QObject.objectName": (),
- "PySide2.QtCore.QObject.parent": (),
- "PySide2.QtCore.QObject.property": ('str',),
- "PySide2.QtCore.QObject.receivers": ('str',),
- "PySide2.QtCore.QObject.registerUserData": (),
- "PySide2.QtCore.QObject.removeEventFilter": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QObject.sender": (),
- "PySide2.QtCore.QObject.senderSignalIndex": (),
- "PySide2.QtCore.QObject.setObjectName": ('str',),
- "PySide2.QtCore.QObject.setParent": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QObject.setProperty": ('str', 'typing.Any'),
- "PySide2.QtCore.QObject.signalsBlocked": (),
- "PySide2.QtCore.QObject.startTimer": ('int', 'PySide2.QtCore.Qt.TimerType'),
- "PySide2.QtCore.QObject.thread": (),
- "PySide2.QtCore.QObject.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtCore.QObject.tr": ('str', 'str', 'int'),
-# class PySide2.QtCore.QOperatingSystemVersion:
-# class PySide2.QtCore.QOperatingSystemVersion.OSType:
- "PySide2.QtCore.QOperatingSystemVersion.__init__": [('PySide2.QtCore.QOperatingSystemVersion',), ('PySide2.QtCore.QOperatingSystemVersion.OSType', 'int', 'int', 'int')],
- "PySide2.QtCore.QOperatingSystemVersion.__copy__": (),
- "PySide2.QtCore.QOperatingSystemVersion.current": (),
- "PySide2.QtCore.QOperatingSystemVersion.currentType": (),
- "PySide2.QtCore.QOperatingSystemVersion.majorVersion": (),
- "PySide2.QtCore.QOperatingSystemVersion.microVersion": (),
- "PySide2.QtCore.QOperatingSystemVersion.minorVersion": (),
- "PySide2.QtCore.QOperatingSystemVersion.name": (),
- "PySide2.QtCore.QOperatingSystemVersion.segmentCount": (),
- "PySide2.QtCore.QOperatingSystemVersion.type": (),
-# class PySide2.QtCore.QParallelAnimationGroup:
- "PySide2.QtCore.QParallelAnimationGroup.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QParallelAnimationGroup.duration": (),
- "PySide2.QtCore.QParallelAnimationGroup.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QParallelAnimationGroup.updateCurrentTime": ('int',),
- "PySide2.QtCore.QParallelAnimationGroup.updateDirection": ('PySide2.QtCore.QAbstractAnimation.Direction',),
- "PySide2.QtCore.QParallelAnimationGroup.updateState": ('PySide2.QtCore.QAbstractAnimation.State', 'PySide2.QtCore.QAbstractAnimation.State'),
-# class PySide2.QtCore.QPauseAnimation:
- "PySide2.QtCore.QPauseAnimation.__init__": [('PySide2.QtCore.QObject',), ('int', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QPauseAnimation.duration": (),
- "PySide2.QtCore.QPauseAnimation.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QPauseAnimation.setDuration": ('int',),
- "PySide2.QtCore.QPauseAnimation.updateCurrentTime": ('int',),
-# class PySide2.QtCore.QPersistentModelIndex:
- "PySide2.QtCore.QPersistentModelIndex.__init__": [(), ('PySide2.QtCore.QModelIndex',), ('PySide2.QtCore.QPersistentModelIndex',)],
- "PySide2.QtCore.QPersistentModelIndex.__copy__": (),
- "PySide2.QtCore.QPersistentModelIndex.child": ('int', 'int'),
- "PySide2.QtCore.QPersistentModelIndex.column": (),
- "PySide2.QtCore.QPersistentModelIndex.data": ('int',),
- "PySide2.QtCore.QPersistentModelIndex.flags": (),
- "PySide2.QtCore.QPersistentModelIndex.internalId": (),
- "PySide2.QtCore.QPersistentModelIndex.internalPointer": (),
- "PySide2.QtCore.QPersistentModelIndex.isValid": (),
- "PySide2.QtCore.QPersistentModelIndex.model": (),
- "PySide2.QtCore.QPersistentModelIndex.parent": (),
- "PySide2.QtCore.QPersistentModelIndex.row": (),
- "PySide2.QtCore.QPersistentModelIndex.sibling": ('int', 'int'),
- "PySide2.QtCore.QPersistentModelIndex.swap": ('PySide2.QtCore.QPersistentModelIndex',),
-# class PySide2.QtCore.QPluginLoader:
- "PySide2.QtCore.QPluginLoader.__init__": [('PySide2.QtCore.QObject',), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QPluginLoader.errorString": (),
- "PySide2.QtCore.QPluginLoader.fileName": (),
- "PySide2.QtCore.QPluginLoader.instance": (),
- "PySide2.QtCore.QPluginLoader.isLoaded": (),
- "PySide2.QtCore.QPluginLoader.load": (),
- "PySide2.QtCore.QPluginLoader.metaData": (),
- "PySide2.QtCore.QPluginLoader.setFileName": ('str',),
- "PySide2.QtCore.QPluginLoader.staticInstances": (),
- "PySide2.QtCore.QPluginLoader.unload": (),
-# class PySide2.QtCore.QPoint:
- "PySide2.QtCore.QPoint.__init__": [(), ('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtCore.QPoint.__add__": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QPoint.__copy__": (),
- "PySide2.QtCore.QPoint.__iadd__": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QPoint.__imul__": [('float',), ('int',)],
- "PySide2.QtCore.QPoint.__isub__": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QPoint.__mul__": [('float',), ('int',)],
- "PySide2.QtCore.QPoint.__neg__": (),
- "PySide2.QtCore.QPoint.__pos__": (),
- "PySide2.QtCore.QPoint.__reduce__": (),
- "PySide2.QtCore.QPoint.__repr__": (),
- "PySide2.QtCore.QPoint.__sub__": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QPoint.dotProduct": ('PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint'),
- "PySide2.QtCore.QPoint.isNull": (),
- "PySide2.QtCore.QPoint.manhattanLength": (),
- "PySide2.QtCore.QPoint.setX": ('int',),
- "PySide2.QtCore.QPoint.setY": ('int',),
- "PySide2.QtCore.QPoint.toTuple": (),
- "PySide2.QtCore.QPoint.transposed": (),
- "PySide2.QtCore.QPoint.x": (),
- "PySide2.QtCore.QPoint.y": (),
-# class PySide2.QtCore.QPointF:
- "PySide2.QtCore.QPointF.__init__": [(), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtCore.QPointF.__add__": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QPointF.__copy__": (),
- "PySide2.QtCore.QPointF.__iadd__": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QPointF.__imul__": ('float',),
- "PySide2.QtCore.QPointF.__isub__": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QPointF.__mul__": ('float',),
- "PySide2.QtCore.QPointF.__neg__": (),
- "PySide2.QtCore.QPointF.__pos__": (),
- "PySide2.QtCore.QPointF.__reduce__": (),
- "PySide2.QtCore.QPointF.__repr__": (),
- "PySide2.QtCore.QPointF.__sub__": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QPointF.dotProduct": ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'),
- "PySide2.QtCore.QPointF.isNull": (),
- "PySide2.QtCore.QPointF.manhattanLength": (),
- "PySide2.QtCore.QPointF.setX": ('float',),
- "PySide2.QtCore.QPointF.setY": ('float',),
- "PySide2.QtCore.QPointF.toPoint": (),
- "PySide2.QtCore.QPointF.toTuple": (),
- "PySide2.QtCore.QPointF.transposed": (),
- "PySide2.QtCore.QPointF.x": (),
- "PySide2.QtCore.QPointF.y": (),
-# class PySide2.QtCore.QProcess:
-# class PySide2.QtCore.QProcess.ExitStatus:
-# class PySide2.QtCore.QProcess.InputChannelMode:
-# class PySide2.QtCore.QProcess.ProcessChannel:
-# class PySide2.QtCore.QProcess.ProcessChannelMode:
-# class PySide2.QtCore.QProcess.ProcessError:
-# class PySide2.QtCore.QProcess.ProcessState:
- "PySide2.QtCore.QProcess.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QProcess.arguments": (),
- "PySide2.QtCore.QProcess.atEnd": (),
- "PySide2.QtCore.QProcess.bytesAvailable": (),
- "PySide2.QtCore.QProcess.bytesToWrite": (),
- "PySide2.QtCore.QProcess.canReadLine": (),
- "PySide2.QtCore.QProcess.close": (),
- "PySide2.QtCore.QProcess.closeReadChannel": ('PySide2.QtCore.QProcess.ProcessChannel',),
- "PySide2.QtCore.QProcess.closeWriteChannel": (),
- "PySide2.QtCore.QProcess.environment": (),
- "PySide2.QtCore.QProcess.error": (),
- "PySide2.QtCore.QProcess.execute": [('str',), ('str', 'typing.Sequence[str]')],
- "PySide2.QtCore.QProcess.exitCode": (),
- "PySide2.QtCore.QProcess.exitStatus": (),
- "PySide2.QtCore.QProcess.inputChannelMode": (),
- "PySide2.QtCore.QProcess.isSequential": (),
- "PySide2.QtCore.QProcess.kill": (),
- "PySide2.QtCore.QProcess.nullDevice": (),
- "PySide2.QtCore.QProcess.open": ('PySide2.QtCore.QIODevice.OpenMode',),
- "PySide2.QtCore.QProcess.pid": (),
- "PySide2.QtCore.QProcess.processChannelMode": (),
- "PySide2.QtCore.QProcess.processEnvironment": (),
- "PySide2.QtCore.QProcess.processId": (),
- "PySide2.QtCore.QProcess.program": (),
- "PySide2.QtCore.QProcess.readAllStandardError": (),
- "PySide2.QtCore.QProcess.readAllStandardOutput": (),
- "PySide2.QtCore.QProcess.readChannel": (),
- "PySide2.QtCore.QProcess.readData": ('str', 'int'),
- "PySide2.QtCore.QProcess.setArguments": ('typing.Sequence[str]',),
- "PySide2.QtCore.QProcess.setEnvironment": ('typing.Sequence[str]',),
- "PySide2.QtCore.QProcess.setInputChannelMode": ('PySide2.QtCore.QProcess.InputChannelMode',),
- "PySide2.QtCore.QProcess.setProcessChannelMode": ('PySide2.QtCore.QProcess.ProcessChannelMode',),
- "PySide2.QtCore.QProcess.setProcessEnvironment": ('PySide2.QtCore.QProcessEnvironment',),
- "PySide2.QtCore.QProcess.setProcessState": ('PySide2.QtCore.QProcess.ProcessState',),
- "PySide2.QtCore.QProcess.setProgram": ('str',),
- "PySide2.QtCore.QProcess.setReadChannel": ('PySide2.QtCore.QProcess.ProcessChannel',),
- "PySide2.QtCore.QProcess.setStandardErrorFile": ('str', 'PySide2.QtCore.QIODevice.OpenMode'),
- "PySide2.QtCore.QProcess.setStandardInputFile": ('str',),
- "PySide2.QtCore.QProcess.setStandardOutputFile": ('str', 'PySide2.QtCore.QIODevice.OpenMode'),
- "PySide2.QtCore.QProcess.setStandardOutputProcess": ('PySide2.QtCore.QProcess',),
- "PySide2.QtCore.QProcess.setWorkingDirectory": ('str',),
- "PySide2.QtCore.QProcess.setupChildProcess": (),
- "PySide2.QtCore.QProcess.start": [('PySide2.QtCore.QIODevice.OpenMode',), ('str', 'PySide2.QtCore.QIODevice.OpenMode'), ('str', 'typing.Sequence[str]', 'PySide2.QtCore.QIODevice.OpenMode')],
- "PySide2.QtCore.QProcess.startDetached": [(), ('str',), ('str', 'typing.Sequence[str]'), ('str', 'typing.Sequence[str]', 'str')],
- "PySide2.QtCore.QProcess.state": (),
- "PySide2.QtCore.QProcess.systemEnvironment": (),
- "PySide2.QtCore.QProcess.terminate": (),
- "PySide2.QtCore.QProcess.waitForBytesWritten": ('int',),
- "PySide2.QtCore.QProcess.waitForFinished": ('int',),
- "PySide2.QtCore.QProcess.waitForReadyRead": ('int',),
- "PySide2.QtCore.QProcess.waitForStarted": ('int',),
- "PySide2.QtCore.QProcess.workingDirectory": (),
- "PySide2.QtCore.QProcess.writeData": ('str', 'int'),
-# class PySide2.QtCore.QProcessEnvironment:
- "PySide2.QtCore.QProcessEnvironment.__init__": [(), ('PySide2.QtCore.QProcessEnvironment',)],
- "PySide2.QtCore.QProcessEnvironment.__copy__": (),
- "PySide2.QtCore.QProcessEnvironment.clear": (),
- "PySide2.QtCore.QProcessEnvironment.contains": ('str',),
- "PySide2.QtCore.QProcessEnvironment.insert": [('PySide2.QtCore.QProcessEnvironment',), ('str', 'str')],
- "PySide2.QtCore.QProcessEnvironment.isEmpty": (),
- "PySide2.QtCore.QProcessEnvironment.keys": (),
- "PySide2.QtCore.QProcessEnvironment.remove": ('str',),
- "PySide2.QtCore.QProcessEnvironment.swap": ('PySide2.QtCore.QProcessEnvironment',),
- "PySide2.QtCore.QProcessEnvironment.systemEnvironment": (),
- "PySide2.QtCore.QProcessEnvironment.toStringList": (),
- "PySide2.QtCore.QProcessEnvironment.value": ('str', 'str'),
-# class PySide2.QtCore.QPropertyAnimation:
- "PySide2.QtCore.QPropertyAnimation.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtCore.QObject', 'PySide2.QtCore.QByteArray', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QPropertyAnimation.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QPropertyAnimation.propertyName": (),
- "PySide2.QtCore.QPropertyAnimation.setPropertyName": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QPropertyAnimation.setTargetObject": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QPropertyAnimation.targetObject": (),
- "PySide2.QtCore.QPropertyAnimation.updateCurrentValue": ('typing.Any',),
- "PySide2.QtCore.QPropertyAnimation.updateState": ('PySide2.QtCore.QAbstractAnimation.State', 'PySide2.QtCore.QAbstractAnimation.State'),
-# class PySide2.QtCore.QRandomGenerator:
- "PySide2.QtCore.QRandomGenerator.__init__": [('PySide2.QtCore.QRandomGenerator',), ('int',), ('int', 'int')],
- "PySide2.QtCore.QRandomGenerator.bounded": [('float',), ('int',), ('int', 'int')],
- "PySide2.QtCore.QRandomGenerator.discard": ('int',),
- "PySide2.QtCore.QRandomGenerator.generate": (),
- "PySide2.QtCore.QRandomGenerator.generate64": (),
- "PySide2.QtCore.QRandomGenerator.generateDouble": (),
- "PySide2.QtCore.QRandomGenerator.global_": (),
- "PySide2.QtCore.QRandomGenerator.max": (),
- "PySide2.QtCore.QRandomGenerator.min": (),
- "PySide2.QtCore.QRandomGenerator.securelySeeded": (),
- "PySide2.QtCore.QRandomGenerator.seed": ('int',),
- "PySide2.QtCore.QRandomGenerator.system": (),
-# class PySide2.QtCore.QRandomGenerator64:
- "PySide2.QtCore.QRandomGenerator64.__init__": [('PySide2.QtCore.QRandomGenerator',), ('int',), ('int', 'int')],
- "PySide2.QtCore.QRandomGenerator64.discard": ('int',),
- "PySide2.QtCore.QRandomGenerator64.generate": (),
- "PySide2.QtCore.QRandomGenerator64.global_": (),
- "PySide2.QtCore.QRandomGenerator64.max": (),
- "PySide2.QtCore.QRandomGenerator64.min": (),
- "PySide2.QtCore.QRandomGenerator64.securelySeeded": (),
- "PySide2.QtCore.QRandomGenerator64.system": (),
-# class PySide2.QtCore.QReadLocker:
- "PySide2.QtCore.QReadLocker.__init__": ('PySide2.QtCore.QReadWriteLock',),
- "PySide2.QtCore.QReadLocker.__enter__": (),
- "PySide2.QtCore.QReadLocker.__exit__": ('object', 'object', 'object'),
- "PySide2.QtCore.QReadLocker.readWriteLock": (),
- "PySide2.QtCore.QReadLocker.relock": (),
- "PySide2.QtCore.QReadLocker.unlock": (),
-# class PySide2.QtCore.QReadWriteLock:
-# class PySide2.QtCore.QReadWriteLock.RecursionMode:
- "PySide2.QtCore.QReadWriteLock.__init__": ('PySide2.QtCore.QReadWriteLock.RecursionMode',),
- "PySide2.QtCore.QReadWriteLock.lockForRead": (),
- "PySide2.QtCore.QReadWriteLock.lockForWrite": (),
- "PySide2.QtCore.QReadWriteLock.tryLockForRead": [(), ('int',)],
- "PySide2.QtCore.QReadWriteLock.tryLockForWrite": [(), ('int',)],
- "PySide2.QtCore.QReadWriteLock.unlock": (),
-# class PySide2.QtCore.QRect:
- "PySide2.QtCore.QRect.__init__": [(), ('PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint'), ('PySide2.QtCore.QPoint', 'PySide2.QtCore.QSize'), ('PySide2.QtCore.QRect',), ('int', 'int', 'int', 'int')],
- "PySide2.QtCore.QRect.__add__": ('PySide2.QtCore.QMargins',),
- "PySide2.QtCore.QRect.__and__": ('PySide2.QtCore.QRect',),
- "PySide2.QtCore.QRect.__copy__": (),
- "PySide2.QtCore.QRect.__iadd__": ('PySide2.QtCore.QMargins',),
- "PySide2.QtCore.QRect.__iand__": ('PySide2.QtCore.QRect',),
- "PySide2.QtCore.QRect.__ior__": ('PySide2.QtCore.QRect',),
- "PySide2.QtCore.QRect.__isub__": ('PySide2.QtCore.QMargins',),
- "PySide2.QtCore.QRect.__or__": ('PySide2.QtCore.QRect',),
- "PySide2.QtCore.QRect.__reduce__": (),
- "PySide2.QtCore.QRect.__repr__": (),
- "PySide2.QtCore.QRect.__sub__": ('PySide2.QtCore.QMargins',),
- "PySide2.QtCore.QRect.adjust": ('int', 'int', 'int', 'int'),
- "PySide2.QtCore.QRect.adjusted": ('int', 'int', 'int', 'int'),
- "PySide2.QtCore.QRect.bottom": (),
- "PySide2.QtCore.QRect.bottomLeft": (),
- "PySide2.QtCore.QRect.bottomRight": (),
- "PySide2.QtCore.QRect.center": (),
- "PySide2.QtCore.QRect.contains": [('PySide2.QtCore.QPoint', 'bool'), ('PySide2.QtCore.QRect', 'bool'), ('int', 'int'), ('int', 'int', 'bool')],
- "PySide2.QtCore.QRect.getCoords": (),
- "PySide2.QtCore.QRect.getRect": (),
- "PySide2.QtCore.QRect.height": (),
- "PySide2.QtCore.QRect.intersected": ('PySide2.QtCore.QRect',),
- "PySide2.QtCore.QRect.intersects": ('PySide2.QtCore.QRect',),
- "PySide2.QtCore.QRect.isEmpty": (),
- "PySide2.QtCore.QRect.isNull": (),
- "PySide2.QtCore.QRect.isValid": (),
- "PySide2.QtCore.QRect.left": (),
- "PySide2.QtCore.QRect.marginsAdded": ('PySide2.QtCore.QMargins',),
- "PySide2.QtCore.QRect.marginsRemoved": ('PySide2.QtCore.QMargins',),
- "PySide2.QtCore.QRect.moveBottom": ('int',),
- "PySide2.QtCore.QRect.moveBottomLeft": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QRect.moveBottomRight": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QRect.moveCenter": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QRect.moveLeft": ('int',),
- "PySide2.QtCore.QRect.moveRight": ('int',),
- "PySide2.QtCore.QRect.moveTo": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtCore.QRect.moveTop": ('int',),
- "PySide2.QtCore.QRect.moveTopLeft": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QRect.moveTopRight": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QRect.normalized": (),
- "PySide2.QtCore.QRect.right": (),
- "PySide2.QtCore.QRect.setBottom": ('int',),
- "PySide2.QtCore.QRect.setBottomLeft": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QRect.setBottomRight": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QRect.setCoords": ('int', 'int', 'int', 'int'),
- "PySide2.QtCore.QRect.setHeight": ('int',),
- "PySide2.QtCore.QRect.setLeft": ('int',),
- "PySide2.QtCore.QRect.setRect": ('int', 'int', 'int', 'int'),
- "PySide2.QtCore.QRect.setRight": ('int',),
- "PySide2.QtCore.QRect.setSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtCore.QRect.setTop": ('int',),
- "PySide2.QtCore.QRect.setTopLeft": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QRect.setTopRight": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QRect.setWidth": ('int',),
- "PySide2.QtCore.QRect.setX": ('int',),
- "PySide2.QtCore.QRect.setY": ('int',),
- "PySide2.QtCore.QRect.size": (),
- "PySide2.QtCore.QRect.top": (),
- "PySide2.QtCore.QRect.topLeft": (),
- "PySide2.QtCore.QRect.topRight": (),
- "PySide2.QtCore.QRect.translate": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtCore.QRect.translated": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtCore.QRect.transposed": (),
- "PySide2.QtCore.QRect.united": ('PySide2.QtCore.QRect',),
- "PySide2.QtCore.QRect.width": (),
- "PySide2.QtCore.QRect.x": (),
- "PySide2.QtCore.QRect.y": (),
-# class PySide2.QtCore.QRectF:
- "PySide2.QtCore.QRectF.__init__": [(), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QSizeF'), ('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtCore.QRectF.__add__": ('PySide2.QtCore.QMarginsF',),
- "PySide2.QtCore.QRectF.__and__": ('PySide2.QtCore.QRectF',),
- "PySide2.QtCore.QRectF.__copy__": (),
- "PySide2.QtCore.QRectF.__iadd__": ('PySide2.QtCore.QMarginsF',),
- "PySide2.QtCore.QRectF.__iand__": ('PySide2.QtCore.QRectF',),
- "PySide2.QtCore.QRectF.__ior__": ('PySide2.QtCore.QRectF',),
- "PySide2.QtCore.QRectF.__isub__": ('PySide2.QtCore.QMarginsF',),
- "PySide2.QtCore.QRectF.__or__": ('PySide2.QtCore.QRectF',),
- "PySide2.QtCore.QRectF.__reduce__": (),
- "PySide2.QtCore.QRectF.__repr__": (),
- "PySide2.QtCore.QRectF.__sub__": ('PySide2.QtCore.QMarginsF',),
- "PySide2.QtCore.QRectF.adjust": ('float', 'float', 'float', 'float'),
- "PySide2.QtCore.QRectF.adjusted": ('float', 'float', 'float', 'float'),
- "PySide2.QtCore.QRectF.bottom": (),
- "PySide2.QtCore.QRectF.bottomLeft": (),
- "PySide2.QtCore.QRectF.bottomRight": (),
- "PySide2.QtCore.QRectF.center": (),
- "PySide2.QtCore.QRectF.contains": [('PySide2.QtCore.QPointF',), ('PySide2.QtCore.QRectF',), ('float', 'float')],
- "PySide2.QtCore.QRectF.getCoords": (),
- "PySide2.QtCore.QRectF.getRect": (),
- "PySide2.QtCore.QRectF.height": (),
- "PySide2.QtCore.QRectF.intersected": ('PySide2.QtCore.QRectF',),
- "PySide2.QtCore.QRectF.intersects": ('PySide2.QtCore.QRectF',),
- "PySide2.QtCore.QRectF.isEmpty": (),
- "PySide2.QtCore.QRectF.isNull": (),
- "PySide2.QtCore.QRectF.isValid": (),
- "PySide2.QtCore.QRectF.left": (),
- "PySide2.QtCore.QRectF.marginsAdded": ('PySide2.QtCore.QMarginsF',),
- "PySide2.QtCore.QRectF.marginsRemoved": ('PySide2.QtCore.QMarginsF',),
- "PySide2.QtCore.QRectF.moveBottom": ('float',),
- "PySide2.QtCore.QRectF.moveBottomLeft": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QRectF.moveBottomRight": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QRectF.moveCenter": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QRectF.moveLeft": ('float',),
- "PySide2.QtCore.QRectF.moveRight": ('float',),
- "PySide2.QtCore.QRectF.moveTo": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtCore.QRectF.moveTop": ('float',),
- "PySide2.QtCore.QRectF.moveTopLeft": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QRectF.moveTopRight": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QRectF.normalized": (),
- "PySide2.QtCore.QRectF.right": (),
- "PySide2.QtCore.QRectF.setBottom": ('float',),
- "PySide2.QtCore.QRectF.setBottomLeft": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QRectF.setBottomRight": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QRectF.setCoords": ('float', 'float', 'float', 'float'),
- "PySide2.QtCore.QRectF.setHeight": ('float',),
- "PySide2.QtCore.QRectF.setLeft": ('float',),
- "PySide2.QtCore.QRectF.setRect": ('float', 'float', 'float', 'float'),
- "PySide2.QtCore.QRectF.setRight": ('float',),
- "PySide2.QtCore.QRectF.setSize": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtCore.QRectF.setTop": ('float',),
- "PySide2.QtCore.QRectF.setTopLeft": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QRectF.setTopRight": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QRectF.setWidth": ('float',),
- "PySide2.QtCore.QRectF.setX": ('float',),
- "PySide2.QtCore.QRectF.setY": ('float',),
- "PySide2.QtCore.QRectF.size": (),
- "PySide2.QtCore.QRectF.toAlignedRect": (),
- "PySide2.QtCore.QRectF.toRect": (),
- "PySide2.QtCore.QRectF.top": (),
- "PySide2.QtCore.QRectF.topLeft": (),
- "PySide2.QtCore.QRectF.topRight": (),
- "PySide2.QtCore.QRectF.translate": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtCore.QRectF.translated": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtCore.QRectF.transposed": (),
- "PySide2.QtCore.QRectF.united": ('PySide2.QtCore.QRectF',),
- "PySide2.QtCore.QRectF.width": (),
- "PySide2.QtCore.QRectF.x": (),
- "PySide2.QtCore.QRectF.y": (),
-# class PySide2.QtCore.QRecursiveMutex:
- "PySide2.QtCore.QRecursiveMutex.__init__": (),
-# class PySide2.QtCore.QRegExp:
-# class PySide2.QtCore.QRegExp.CaretMode:
-# class PySide2.QtCore.QRegExp.PatternSyntax:
- "PySide2.QtCore.QRegExp.__init__": [(), ('PySide2.QtCore.QRegExp',), ('str', 'PySide2.QtCore.Qt.CaseSensitivity', 'PySide2.QtCore.QRegExp.PatternSyntax')],
- "PySide2.QtCore.QRegExp.__copy__": (),
- "PySide2.QtCore.QRegExp.__reduce__": (),
- "PySide2.QtCore.QRegExp.__repr__": (),
- "PySide2.QtCore.QRegExp.cap": ('int',),
- "PySide2.QtCore.QRegExp.captureCount": (),
- "PySide2.QtCore.QRegExp.capturedTexts": (),
- "PySide2.QtCore.QRegExp.caseSensitivity": (),
- "PySide2.QtCore.QRegExp.errorString": (),
- "PySide2.QtCore.QRegExp.escape": ('str',),
- "PySide2.QtCore.QRegExp.exactMatch": ('str',),
- "PySide2.QtCore.QRegExp.indexIn": ('str', 'int', 'PySide2.QtCore.QRegExp.CaretMode'),
- "PySide2.QtCore.QRegExp.isEmpty": (),
- "PySide2.QtCore.QRegExp.isMinimal": (),
- "PySide2.QtCore.QRegExp.isValid": (),
- "PySide2.QtCore.QRegExp.lastIndexIn": ('str', 'int', 'PySide2.QtCore.QRegExp.CaretMode'),
- "PySide2.QtCore.QRegExp.matchedLength": (),
- "PySide2.QtCore.QRegExp.pattern": (),
- "PySide2.QtCore.QRegExp.patternSyntax": (),
- "PySide2.QtCore.QRegExp.pos": ('int',),
- "PySide2.QtCore.QRegExp.replace": ('str', 'str'),
- "PySide2.QtCore.QRegExp.setCaseSensitivity": ('PySide2.QtCore.Qt.CaseSensitivity',),
- "PySide2.QtCore.QRegExp.setMinimal": ('bool',),
- "PySide2.QtCore.QRegExp.setPattern": ('str',),
- "PySide2.QtCore.QRegExp.setPatternSyntax": ('PySide2.QtCore.QRegExp.PatternSyntax',),
- "PySide2.QtCore.QRegExp.swap": ('PySide2.QtCore.QRegExp',),
-# class PySide2.QtCore.QRegularExpression:
-# class PySide2.QtCore.QRegularExpression.MatchOption:
-# class PySide2.QtCore.QRegularExpression.MatchOptions:
-# class PySide2.QtCore.QRegularExpression.MatchType:
-# class PySide2.QtCore.QRegularExpression.PatternOption:
-# class PySide2.QtCore.QRegularExpression.PatternOptions:
- "PySide2.QtCore.QRegularExpression.__init__": [(), ('PySide2.QtCore.QRegularExpression',), ('str', 'PySide2.QtCore.QRegularExpression.PatternOptions')],
- "PySide2.QtCore.QRegularExpression.__copy__": (),
- "PySide2.QtCore.QRegularExpression.anchoredPattern": ('str',),
- "PySide2.QtCore.QRegularExpression.captureCount": (),
- "PySide2.QtCore.QRegularExpression.errorString": (),
- "PySide2.QtCore.QRegularExpression.escape": ('str',),
- "PySide2.QtCore.QRegularExpression.globalMatch": ('str', 'int', 'PySide2.QtCore.QRegularExpression.MatchType', 'PySide2.QtCore.QRegularExpression.MatchOptions'),
- "PySide2.QtCore.QRegularExpression.isValid": (),
- "PySide2.QtCore.QRegularExpression.match": ('str', 'int', 'PySide2.QtCore.QRegularExpression.MatchType', 'PySide2.QtCore.QRegularExpression.MatchOptions'),
- "PySide2.QtCore.QRegularExpression.namedCaptureGroups": (),
- "PySide2.QtCore.QRegularExpression.optimize": (),
- "PySide2.QtCore.QRegularExpression.pattern": (),
- "PySide2.QtCore.QRegularExpression.patternErrorOffset": (),
- "PySide2.QtCore.QRegularExpression.patternOptions": (),
- "PySide2.QtCore.QRegularExpression.setPattern": ('str',),
- "PySide2.QtCore.QRegularExpression.setPatternOptions": ('PySide2.QtCore.QRegularExpression.PatternOptions',),
- "PySide2.QtCore.QRegularExpression.swap": ('PySide2.QtCore.QRegularExpression',),
- "PySide2.QtCore.QRegularExpression.wildcardToRegularExpression": ('str',),
-# class PySide2.QtCore.QRegularExpressionMatch:
- "PySide2.QtCore.QRegularExpressionMatch.__init__": [(), ('PySide2.QtCore.QRegularExpressionMatch',)],
- "PySide2.QtCore.QRegularExpressionMatch.__copy__": (),
- "PySide2.QtCore.QRegularExpressionMatch.captured": [('int',), ('str',)],
- "PySide2.QtCore.QRegularExpressionMatch.capturedEnd": [('int',), ('str',)],
- "PySide2.QtCore.QRegularExpressionMatch.capturedLength": [('int',), ('str',)],
- "PySide2.QtCore.QRegularExpressionMatch.capturedRef": [('int',), ('str',)],
- "PySide2.QtCore.QRegularExpressionMatch.capturedStart": [('int',), ('str',)],
- "PySide2.QtCore.QRegularExpressionMatch.capturedTexts": (),
- "PySide2.QtCore.QRegularExpressionMatch.hasMatch": (),
- "PySide2.QtCore.QRegularExpressionMatch.hasPartialMatch": (),
- "PySide2.QtCore.QRegularExpressionMatch.isValid": (),
- "PySide2.QtCore.QRegularExpressionMatch.lastCapturedIndex": (),
- "PySide2.QtCore.QRegularExpressionMatch.matchOptions": (),
- "PySide2.QtCore.QRegularExpressionMatch.matchType": (),
- "PySide2.QtCore.QRegularExpressionMatch.regularExpression": (),
- "PySide2.QtCore.QRegularExpressionMatch.swap": ('PySide2.QtCore.QRegularExpressionMatch',),
-# class PySide2.QtCore.QRegularExpressionMatchIterator:
- "PySide2.QtCore.QRegularExpressionMatchIterator.__init__": [(), ('PySide2.QtCore.QRegularExpressionMatchIterator',)],
- "PySide2.QtCore.QRegularExpressionMatchIterator.__copy__": (),
- "PySide2.QtCore.QRegularExpressionMatchIterator.hasNext": (),
- "PySide2.QtCore.QRegularExpressionMatchIterator.isValid": (),
- "PySide2.QtCore.QRegularExpressionMatchIterator.matchOptions": (),
- "PySide2.QtCore.QRegularExpressionMatchIterator.matchType": (),
- "PySide2.QtCore.QRegularExpressionMatchIterator.peekNext": (),
- "PySide2.QtCore.QRegularExpressionMatchIterator.regularExpression": (),
- "PySide2.QtCore.QRegularExpressionMatchIterator.swap": ('PySide2.QtCore.QRegularExpressionMatchIterator',),
-# class PySide2.QtCore.QResource:
-# class PySide2.QtCore.QResource.Compression:
- "PySide2.QtCore.QResource.__init__": ('str', 'PySide2.QtCore.QLocale'),
- "PySide2.QtCore.QResource.absoluteFilePath": (),
- "PySide2.QtCore.QResource.addSearchPath": ('str',),
- "PySide2.QtCore.QResource.children": (),
- "PySide2.QtCore.QResource.compressionAlgorithm": (),
- "PySide2.QtCore.QResource.data": (),
- "PySide2.QtCore.QResource.fileName": (),
- "PySide2.QtCore.QResource.isCompressed": (),
- "PySide2.QtCore.QResource.isDir": (),
- "PySide2.QtCore.QResource.isFile": (),
- "PySide2.QtCore.QResource.isValid": (),
- "PySide2.QtCore.QResource.lastModified": (),
- "PySide2.QtCore.QResource.locale": (),
- "PySide2.QtCore.QResource.registerResource": ('str', 'str'),
- "PySide2.QtCore.QResource.registerResourceData": ('str', 'str'),
- "PySide2.QtCore.QResource.searchPaths": (),
- "PySide2.QtCore.QResource.setFileName": ('str',),
- "PySide2.QtCore.QResource.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtCore.QResource.size": (),
- "PySide2.QtCore.QResource.unregisterResource": ('str', 'str'),
- "PySide2.QtCore.QResource.unregisterResourceData": ('str', 'str'),
-# class PySide2.QtCore.QRunnable:
- "PySide2.QtCore.QRunnable.__init__": (),
- "PySide2.QtCore.QRunnable.autoDelete": (),
- "PySide2.QtCore.QRunnable.run": (),
- "PySide2.QtCore.QRunnable.setAutoDelete": ('bool',),
-# class PySide2.QtCore.QSaveFile:
- "PySide2.QtCore.QSaveFile.__init__": [('PySide2.QtCore.QObject',), ('str',), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QSaveFile.cancelWriting": (),
- "PySide2.QtCore.QSaveFile.close": (),
- "PySide2.QtCore.QSaveFile.commit": (),
- "PySide2.QtCore.QSaveFile.directWriteFallback": (),
- "PySide2.QtCore.QSaveFile.fileName": (),
- "PySide2.QtCore.QSaveFile.open": ('PySide2.QtCore.QIODevice.OpenMode',),
- "PySide2.QtCore.QSaveFile.setDirectWriteFallback": ('bool',),
- "PySide2.QtCore.QSaveFile.setFileName": ('str',),
- "PySide2.QtCore.QSaveFile.writeData": ('str', 'int'),
-# class PySide2.QtCore.QSemaphore:
- "PySide2.QtCore.QSemaphore.__init__": ('int',),
- "PySide2.QtCore.QSemaphore.acquire": ('int',),
- "PySide2.QtCore.QSemaphore.available": (),
- "PySide2.QtCore.QSemaphore.release": ('int',),
- "PySide2.QtCore.QSemaphore.tryAcquire": [('int',), ('int', 'int')],
-# class PySide2.QtCore.QSemaphoreReleaser:
- "PySide2.QtCore.QSemaphoreReleaser.__init__": [(), ('PySide2.QtCore.QSemaphore', 'int')],
- "PySide2.QtCore.QSemaphoreReleaser.cancel": (),
- "PySide2.QtCore.QSemaphoreReleaser.semaphore": (),
- "PySide2.QtCore.QSemaphoreReleaser.swap": ('PySide2.QtCore.QSemaphoreReleaser',),
-# class PySide2.QtCore.QSequentialAnimationGroup:
- "PySide2.QtCore.QSequentialAnimationGroup.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QSequentialAnimationGroup.addPause": ('int',),
- "PySide2.QtCore.QSequentialAnimationGroup.currentAnimation": (),
- "PySide2.QtCore.QSequentialAnimationGroup.duration": (),
- "PySide2.QtCore.QSequentialAnimationGroup.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QSequentialAnimationGroup.insertPause": ('int', 'int'),
- "PySide2.QtCore.QSequentialAnimationGroup.updateCurrentTime": ('int',),
- "PySide2.QtCore.QSequentialAnimationGroup.updateDirection": ('PySide2.QtCore.QAbstractAnimation.Direction',),
- "PySide2.QtCore.QSequentialAnimationGroup.updateState": ('PySide2.QtCore.QAbstractAnimation.State', 'PySide2.QtCore.QAbstractAnimation.State'),
-# class PySide2.QtCore.QSettings:
-# class PySide2.QtCore.QSettings.Format:
-# class PySide2.QtCore.QSettings.Scope:
-# class PySide2.QtCore.QSettings.Status:
- "PySide2.QtCore.QSettings.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtCore.QSettings.Format', 'PySide2.QtCore.QSettings.Scope', 'str', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QSettings.Scope', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QSettings.Scope', 'str', 'str', 'PySide2.QtCore.QObject'), ('str', 'PySide2.QtCore.QSettings.Format', 'PySide2.QtCore.QObject'), ('str', 'str', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QSettings.allKeys": (),
- "PySide2.QtCore.QSettings.applicationName": (),
- "PySide2.QtCore.QSettings.beginGroup": ('str',),
- "PySide2.QtCore.QSettings.beginReadArray": ('str',),
- "PySide2.QtCore.QSettings.beginWriteArray": ('str', 'int'),
- "PySide2.QtCore.QSettings.childGroups": (),
- "PySide2.QtCore.QSettings.childKeys": (),
- "PySide2.QtCore.QSettings.clear": (),
- "PySide2.QtCore.QSettings.contains": ('str',),
- "PySide2.QtCore.QSettings.defaultFormat": (),
- "PySide2.QtCore.QSettings.endArray": (),
- "PySide2.QtCore.QSettings.endGroup": (),
- "PySide2.QtCore.QSettings.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QSettings.fallbacksEnabled": (),
- "PySide2.QtCore.QSettings.fileName": (),
- "PySide2.QtCore.QSettings.format": (),
- "PySide2.QtCore.QSettings.group": (),
- "PySide2.QtCore.QSettings.iniCodec": (),
- "PySide2.QtCore.QSettings.isAtomicSyncRequired": (),
- "PySide2.QtCore.QSettings.isWritable": (),
- "PySide2.QtCore.QSettings.organizationName": (),
- "PySide2.QtCore.QSettings.remove": ('str',),
- "PySide2.QtCore.QSettings.scope": (),
- "PySide2.QtCore.QSettings.setArrayIndex": ('int',),
- "PySide2.QtCore.QSettings.setAtomicSyncRequired": ('bool',),
- "PySide2.QtCore.QSettings.setDefaultFormat": ('PySide2.QtCore.QSettings.Format',),
- "PySide2.QtCore.QSettings.setFallbacksEnabled": ('bool',),
- "PySide2.QtCore.QSettings.setIniCodec": [('PySide2.QtCore.QTextCodec',), ('str',)],
- "PySide2.QtCore.QSettings.setPath": ('PySide2.QtCore.QSettings.Format', 'PySide2.QtCore.QSettings.Scope', 'str'),
- "PySide2.QtCore.QSettings.setValue": ('str', 'typing.Any'),
- "PySide2.QtCore.QSettings.status": (),
- "PySide2.QtCore.QSettings.sync": (),
- "PySide2.QtCore.QSettings.value": ('str', 'typing.Any', 'object'),
-# class PySide2.QtCore.QSignalBlocker:
- "PySide2.QtCore.QSignalBlocker.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QSignalBlocker.reblock": (),
- "PySide2.QtCore.QSignalBlocker.unblock": (),
-# class PySide2.QtCore.QSignalMapper:
- "PySide2.QtCore.QSignalMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QSignalMapper.map": [(), ('PySide2.QtCore.QObject',)],
- "PySide2.QtCore.QSignalMapper.mapping": [('PySide2.QtCore.QObject',), ('int',), ('str',)],
- "PySide2.QtCore.QSignalMapper.removeMappings": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QSignalMapper.setMapping": [('PySide2.QtCore.QObject', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QObject', 'int'), ('PySide2.QtCore.QObject', 'str')],
-# class PySide2.QtCore.QSignalTransition:
- "PySide2.QtCore.QSignalTransition.__init__": [('PySide2.QtCore.QObject', 'str', 'PySide2.QtCore.QState'), ('PySide2.QtCore.QState',), ('object', 'PySide2.QtCore.QState')],
- "PySide2.QtCore.QSignalTransition.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QSignalTransition.eventTest": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QSignalTransition.onTransition": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QSignalTransition.senderObject": (),
- "PySide2.QtCore.QSignalTransition.setSenderObject": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QSignalTransition.setSignal": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QSignalTransition.signal": (),
-# class PySide2.QtCore.QSize:
- "PySide2.QtCore.QSize.__init__": [(), ('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtCore.QSize.__add__": ('PySide2.QtCore.QSize',),
- "PySide2.QtCore.QSize.__copy__": (),
- "PySide2.QtCore.QSize.__iadd__": ('PySide2.QtCore.QSize',),
- "PySide2.QtCore.QSize.__imul__": ('float',),
- "PySide2.QtCore.QSize.__isub__": ('PySide2.QtCore.QSize',),
- "PySide2.QtCore.QSize.__mul__": ('float',),
- "PySide2.QtCore.QSize.__reduce__": (),
- "PySide2.QtCore.QSize.__repr__": (),
- "PySide2.QtCore.QSize.__sub__": ('PySide2.QtCore.QSize',),
- "PySide2.QtCore.QSize.boundedTo": ('PySide2.QtCore.QSize',),
- "PySide2.QtCore.QSize.expandedTo": ('PySide2.QtCore.QSize',),
- "PySide2.QtCore.QSize.grownBy": ('PySide2.QtCore.QMargins',),
- "PySide2.QtCore.QSize.height": (),
- "PySide2.QtCore.QSize.isEmpty": (),
- "PySide2.QtCore.QSize.isNull": (),
- "PySide2.QtCore.QSize.isValid": (),
- "PySide2.QtCore.QSize.scale": [('PySide2.QtCore.QSize', 'PySide2.QtCore.Qt.AspectRatioMode'), ('int', 'int', 'PySide2.QtCore.Qt.AspectRatioMode')],
- "PySide2.QtCore.QSize.scaled": [('PySide2.QtCore.QSize', 'PySide2.QtCore.Qt.AspectRatioMode'), ('int', 'int', 'PySide2.QtCore.Qt.AspectRatioMode')],
- "PySide2.QtCore.QSize.setHeight": ('int',),
- "PySide2.QtCore.QSize.setWidth": ('int',),
- "PySide2.QtCore.QSize.shrunkBy": ('PySide2.QtCore.QMargins',),
- "PySide2.QtCore.QSize.toTuple": (),
- "PySide2.QtCore.QSize.transpose": (),
- "PySide2.QtCore.QSize.transposed": (),
- "PySide2.QtCore.QSize.width": (),
-# class PySide2.QtCore.QSizeF:
- "PySide2.QtCore.QSizeF.__init__": [(), ('PySide2.QtCore.QSize',), ('PySide2.QtCore.QSizeF',), ('float', 'float')],
- "PySide2.QtCore.QSizeF.__add__": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtCore.QSizeF.__copy__": (),
- "PySide2.QtCore.QSizeF.__iadd__": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtCore.QSizeF.__imul__": ('float',),
- "PySide2.QtCore.QSizeF.__isub__": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtCore.QSizeF.__mul__": ('float',),
- "PySide2.QtCore.QSizeF.__reduce__": (),
- "PySide2.QtCore.QSizeF.__repr__": (),
- "PySide2.QtCore.QSizeF.__sub__": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtCore.QSizeF.boundedTo": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtCore.QSizeF.expandedTo": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtCore.QSizeF.grownBy": ('PySide2.QtCore.QMarginsF',),
- "PySide2.QtCore.QSizeF.height": (),
- "PySide2.QtCore.QSizeF.isEmpty": (),
- "PySide2.QtCore.QSizeF.isNull": (),
- "PySide2.QtCore.QSizeF.isValid": (),
- "PySide2.QtCore.QSizeF.scale": [('PySide2.QtCore.QSizeF', 'PySide2.QtCore.Qt.AspectRatioMode'), ('float', 'float', 'PySide2.QtCore.Qt.AspectRatioMode')],
- "PySide2.QtCore.QSizeF.scaled": [('PySide2.QtCore.QSizeF', 'PySide2.QtCore.Qt.AspectRatioMode'), ('float', 'float', 'PySide2.QtCore.Qt.AspectRatioMode')],
- "PySide2.QtCore.QSizeF.setHeight": ('float',),
- "PySide2.QtCore.QSizeF.setWidth": ('float',),
- "PySide2.QtCore.QSizeF.shrunkBy": ('PySide2.QtCore.QMarginsF',),
- "PySide2.QtCore.QSizeF.toSize": (),
- "PySide2.QtCore.QSizeF.toTuple": (),
- "PySide2.QtCore.QSizeF.transpose": (),
- "PySide2.QtCore.QSizeF.transposed": (),
- "PySide2.QtCore.QSizeF.width": (),
-# class PySide2.QtCore.QSocketNotifier:
-# class PySide2.QtCore.QSocketNotifier.Type:
- "PySide2.QtCore.QSocketNotifier.__init__": [('int', 'PySide2.QtCore.QSocketNotifier.Type', 'PySide2.QtCore.QObject'), ('object', 'PySide2.QtCore.QSocketNotifier.Type', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QSocketNotifier.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QSocketNotifier.isEnabled": (),
- "PySide2.QtCore.QSocketNotifier.setEnabled": ('bool',),
- "PySide2.QtCore.QSocketNotifier.socket": (),
- "PySide2.QtCore.QSocketNotifier.type": (),
-# class PySide2.QtCore.QSortFilterProxyModel:
- "PySide2.QtCore.QSortFilterProxyModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QSortFilterProxyModel.buddy": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QSortFilterProxyModel.canFetchMore": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QSortFilterProxyModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QSortFilterProxyModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QSortFilterProxyModel.dropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QSortFilterProxyModel.dynamicSortFilter": (),
- "PySide2.QtCore.QSortFilterProxyModel.fetchMore": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QSortFilterProxyModel.filterAcceptsColumn": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QSortFilterProxyModel.filterAcceptsRow": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QSortFilterProxyModel.filterCaseSensitivity": (),
- "PySide2.QtCore.QSortFilterProxyModel.filterKeyColumn": (),
- "PySide2.QtCore.QSortFilterProxyModel.filterRegExp": (),
- "PySide2.QtCore.QSortFilterProxyModel.filterRegularExpression": (),
- "PySide2.QtCore.QSortFilterProxyModel.filterRole": (),
- "PySide2.QtCore.QSortFilterProxyModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QSortFilterProxyModel.hasChildren": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QSortFilterProxyModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtCore.QSortFilterProxyModel.index": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QSortFilterProxyModel.insertColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QSortFilterProxyModel.insertRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QSortFilterProxyModel.invalidate": (),
- "PySide2.QtCore.QSortFilterProxyModel.invalidateFilter": (),
- "PySide2.QtCore.QSortFilterProxyModel.isRecursiveFilteringEnabled": (),
- "PySide2.QtCore.QSortFilterProxyModel.isSortLocaleAware": (),
- "PySide2.QtCore.QSortFilterProxyModel.lessThan": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QSortFilterProxyModel.mapFromSource": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QSortFilterProxyModel.mapSelectionFromSource": ('PySide2.QtCore.QItemSelection',),
- "PySide2.QtCore.QSortFilterProxyModel.mapSelectionToSource": ('PySide2.QtCore.QItemSelection',),
- "PySide2.QtCore.QSortFilterProxyModel.mapToSource": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QSortFilterProxyModel.match": ('PySide2.QtCore.QModelIndex', 'int', 'typing.Any', 'int', 'PySide2.QtCore.Qt.MatchFlags'),
- "PySide2.QtCore.QSortFilterProxyModel.mimeData": ('typing.List[int]',),
- "PySide2.QtCore.QSortFilterProxyModel.mimeTypes": (),
- "PySide2.QtCore.QSortFilterProxyModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtCore.QSortFilterProxyModel.removeColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QSortFilterProxyModel.removeRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QSortFilterProxyModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QSortFilterProxyModel.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
- "PySide2.QtCore.QSortFilterProxyModel.setDynamicSortFilter": ('bool',),
- "PySide2.QtCore.QSortFilterProxyModel.setFilterCaseSensitivity": ('PySide2.QtCore.Qt.CaseSensitivity',),
- "PySide2.QtCore.QSortFilterProxyModel.setFilterFixedString": ('str',),
- "PySide2.QtCore.QSortFilterProxyModel.setFilterKeyColumn": ('int',),
- "PySide2.QtCore.QSortFilterProxyModel.setFilterRegExp": [('PySide2.QtCore.QRegExp',), ('str',)],
- "PySide2.QtCore.QSortFilterProxyModel.setFilterRegularExpression": [('PySide2.QtCore.QRegularExpression',), ('str',)],
- "PySide2.QtCore.QSortFilterProxyModel.setFilterRole": ('int',),
- "PySide2.QtCore.QSortFilterProxyModel.setFilterWildcard": ('str',),
- "PySide2.QtCore.QSortFilterProxyModel.setHeaderData": ('int', 'PySide2.QtCore.Qt.Orientation', 'typing.Any', 'int'),
- "PySide2.QtCore.QSortFilterProxyModel.setRecursiveFilteringEnabled": ('bool',),
- "PySide2.QtCore.QSortFilterProxyModel.setSortCaseSensitivity": ('PySide2.QtCore.Qt.CaseSensitivity',),
- "PySide2.QtCore.QSortFilterProxyModel.setSortLocaleAware": ('bool',),
- "PySide2.QtCore.QSortFilterProxyModel.setSortRole": ('int',),
- "PySide2.QtCore.QSortFilterProxyModel.setSourceModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCore.QSortFilterProxyModel.sibling": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QSortFilterProxyModel.sort": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtCore.QSortFilterProxyModel.sortCaseSensitivity": (),
- "PySide2.QtCore.QSortFilterProxyModel.sortColumn": (),
- "PySide2.QtCore.QSortFilterProxyModel.sortOrder": (),
- "PySide2.QtCore.QSortFilterProxyModel.sortRole": (),
- "PySide2.QtCore.QSortFilterProxyModel.span": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QSortFilterProxyModel.supportedDropActions": (),
-# class PySide2.QtCore.QStandardPaths:
-# class PySide2.QtCore.QStandardPaths.LocateOption:
-# class PySide2.QtCore.QStandardPaths.LocateOptions:
-# class PySide2.QtCore.QStandardPaths.StandardLocation:
- "PySide2.QtCore.QStandardPaths.displayName": ('PySide2.QtCore.QStandardPaths.StandardLocation',),
- "PySide2.QtCore.QStandardPaths.enableTestMode": ('bool',),
- "PySide2.QtCore.QStandardPaths.findExecutable": ('str', 'typing.Sequence[str]'),
- "PySide2.QtCore.QStandardPaths.isTestModeEnabled": (),
- "PySide2.QtCore.QStandardPaths.locate": ('PySide2.QtCore.QStandardPaths.StandardLocation', 'str', 'PySide2.QtCore.QStandardPaths.LocateOptions'),
- "PySide2.QtCore.QStandardPaths.locateAll": ('PySide2.QtCore.QStandardPaths.StandardLocation', 'str', 'PySide2.QtCore.QStandardPaths.LocateOptions'),
- "PySide2.QtCore.QStandardPaths.setTestModeEnabled": ('bool',),
- "PySide2.QtCore.QStandardPaths.standardLocations": ('PySide2.QtCore.QStandardPaths.StandardLocation',),
- "PySide2.QtCore.QStandardPaths.writableLocation": ('PySide2.QtCore.QStandardPaths.StandardLocation',),
-# class PySide2.QtCore.QState:
-# class PySide2.QtCore.QState.ChildMode:
-# class PySide2.QtCore.QState.RestorePolicy:
- "PySide2.QtCore.QState.__init__": [('PySide2.QtCore.QState',), ('PySide2.QtCore.QState.ChildMode', 'PySide2.QtCore.QState')],
- "PySide2.QtCore.QState.addTransition": [('PySide2.QtCore.QAbstractState',), ('PySide2.QtCore.QAbstractTransition',), ('PySide2.QtCore.QObject', 'str', 'PySide2.QtCore.QAbstractState'), ('object', 'PySide2.QtCore.QAbstractState')],
- "PySide2.QtCore.QState.assignProperty": ('PySide2.QtCore.QObject', 'str', 'typing.Any'),
- "PySide2.QtCore.QState.childMode": (),
- "PySide2.QtCore.QState.errorState": (),
- "PySide2.QtCore.QState.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QState.initialState": (),
- "PySide2.QtCore.QState.onEntry": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QState.onExit": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QState.removeTransition": ('PySide2.QtCore.QAbstractTransition',),
- "PySide2.QtCore.QState.setChildMode": ('PySide2.QtCore.QState.ChildMode',),
- "PySide2.QtCore.QState.setErrorState": ('PySide2.QtCore.QAbstractState',),
- "PySide2.QtCore.QState.setInitialState": ('PySide2.QtCore.QAbstractState',),
- "PySide2.QtCore.QState.transitions": (),
-# class PySide2.QtCore.QStateMachine:
-# class PySide2.QtCore.QStateMachine.Error:
-# class PySide2.QtCore.QStateMachine.EventPriority:
-# class PySide2.QtCore.QStateMachine.SignalEvent:
- "PySide2.QtCore.QStateMachine.SignalEvent.__init__": [('PySide2.QtCore.QObject', 'int', 'typing.Sequence[typing.Any]'), ('PySide2.QtCore.QStateMachine.SignalEvent',)],
- "PySide2.QtCore.QStateMachine.SignalEvent.__copy__": (),
- "PySide2.QtCore.QStateMachine.SignalEvent.arguments": (),
- "PySide2.QtCore.QStateMachine.SignalEvent.sender": (),
- "PySide2.QtCore.QStateMachine.SignalEvent.signalIndex": (),
-# class PySide2.QtCore.QStateMachine.WrappedEvent:
- "PySide2.QtCore.QStateMachine.WrappedEvent.__init__": [('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'), ('PySide2.QtCore.QStateMachine.WrappedEvent',)],
- "PySide2.QtCore.QStateMachine.WrappedEvent.__copy__": (),
- "PySide2.QtCore.QStateMachine.WrappedEvent.event": (),
- "PySide2.QtCore.QStateMachine.WrappedEvent.object": (),
- "PySide2.QtCore.QStateMachine.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtCore.QState.ChildMode', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QStateMachine.addDefaultAnimation": ('PySide2.QtCore.QAbstractAnimation',),
- "PySide2.QtCore.QStateMachine.addState": ('PySide2.QtCore.QAbstractState',),
- "PySide2.QtCore.QStateMachine.beginMicrostep": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QStateMachine.beginSelectTransitions": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QStateMachine.cancelDelayedEvent": ('int',),
- "PySide2.QtCore.QStateMachine.clearError": (),
- "PySide2.QtCore.QStateMachine.configuration": (),
- "PySide2.QtCore.QStateMachine.defaultAnimations": (),
- "PySide2.QtCore.QStateMachine.endMicrostep": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QStateMachine.endSelectTransitions": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QStateMachine.error": (),
- "PySide2.QtCore.QStateMachine.errorString": (),
- "PySide2.QtCore.QStateMachine.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QStateMachine.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtCore.QStateMachine.globalRestorePolicy": (),
- "PySide2.QtCore.QStateMachine.isAnimated": (),
- "PySide2.QtCore.QStateMachine.isRunning": (),
- "PySide2.QtCore.QStateMachine.onEntry": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QStateMachine.onExit": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QStateMachine.postDelayedEvent": ('PySide2.QtCore.QEvent', 'int'),
- "PySide2.QtCore.QStateMachine.postEvent": ('PySide2.QtCore.QEvent', 'PySide2.QtCore.QStateMachine.EventPriority'),
- "PySide2.QtCore.QStateMachine.removeDefaultAnimation": ('PySide2.QtCore.QAbstractAnimation',),
- "PySide2.QtCore.QStateMachine.removeState": ('PySide2.QtCore.QAbstractState',),
- "PySide2.QtCore.QStateMachine.setAnimated": ('bool',),
- "PySide2.QtCore.QStateMachine.setGlobalRestorePolicy": ('PySide2.QtCore.QState.RestorePolicy',),
- "PySide2.QtCore.QStateMachine.setRunning": ('bool',),
- "PySide2.QtCore.QStateMachine.start": (),
- "PySide2.QtCore.QStateMachine.stop": (),
-# class PySide2.QtCore.QStorageInfo:
- "PySide2.QtCore.QStorageInfo.__init__": [(), ('PySide2.QtCore.QDir',), ('PySide2.QtCore.QStorageInfo',), ('str',)],
- "PySide2.QtCore.QStorageInfo.__copy__": (),
- "PySide2.QtCore.QStorageInfo.blockSize": (),
- "PySide2.QtCore.QStorageInfo.bytesAvailable": (),
- "PySide2.QtCore.QStorageInfo.bytesFree": (),
- "PySide2.QtCore.QStorageInfo.bytesTotal": (),
- "PySide2.QtCore.QStorageInfo.device": (),
- "PySide2.QtCore.QStorageInfo.displayName": (),
- "PySide2.QtCore.QStorageInfo.fileSystemType": (),
- "PySide2.QtCore.QStorageInfo.isReadOnly": (),
- "PySide2.QtCore.QStorageInfo.isReady": (),
- "PySide2.QtCore.QStorageInfo.isRoot": (),
- "PySide2.QtCore.QStorageInfo.isValid": (),
- "PySide2.QtCore.QStorageInfo.mountedVolumes": (),
- "PySide2.QtCore.QStorageInfo.name": (),
- "PySide2.QtCore.QStorageInfo.refresh": (),
- "PySide2.QtCore.QStorageInfo.root": (),
- "PySide2.QtCore.QStorageInfo.rootPath": (),
- "PySide2.QtCore.QStorageInfo.setPath": ('str',),
- "PySide2.QtCore.QStorageInfo.subvolume": (),
- "PySide2.QtCore.QStorageInfo.swap": ('PySide2.QtCore.QStorageInfo',),
-# class PySide2.QtCore.QStringListModel:
- "PySide2.QtCore.QStringListModel.__init__": [('PySide2.QtCore.QObject',), ('typing.Sequence[str]', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QStringListModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QStringListModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QStringListModel.insertRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QStringListModel.itemData": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QStringListModel.moveRows": ('PySide2.QtCore.QModelIndex', 'int', 'int', 'PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QStringListModel.removeRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QStringListModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QStringListModel.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
- "PySide2.QtCore.QStringListModel.setItemData": ('PySide2.QtCore.QModelIndex', 'typing.Dict[int, typing.Any]'),
- "PySide2.QtCore.QStringListModel.setStringList": ('typing.Sequence[str]',),
- "PySide2.QtCore.QStringListModel.sibling": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QStringListModel.sort": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtCore.QStringListModel.stringList": (),
- "PySide2.QtCore.QStringListModel.supportedDropActions": (),
-# class PySide2.QtCore.QSysInfo:
-# class PySide2.QtCore.QSysInfo.Endian:
-# class PySide2.QtCore.QSysInfo.Sizes:
- "PySide2.QtCore.QSysInfo.__init__": (),
- "PySide2.QtCore.QSysInfo.bootUniqueId": (),
- "PySide2.QtCore.QSysInfo.buildAbi": (),
- "PySide2.QtCore.QSysInfo.buildCpuArchitecture": (),
- "PySide2.QtCore.QSysInfo.currentCpuArchitecture": (),
- "PySide2.QtCore.QSysInfo.kernelType": (),
- "PySide2.QtCore.QSysInfo.kernelVersion": (),
- "PySide2.QtCore.QSysInfo.machineHostName": (),
- "PySide2.QtCore.QSysInfo.machineUniqueId": (),
- "PySide2.QtCore.QSysInfo.prettyProductName": (),
- "PySide2.QtCore.QSysInfo.productType": (),
- "PySide2.QtCore.QSysInfo.productVersion": (),
-# class PySide2.QtCore.QSystemSemaphore:
-# class PySide2.QtCore.QSystemSemaphore.AccessMode:
-# class PySide2.QtCore.QSystemSemaphore.SystemSemaphoreError:
- "PySide2.QtCore.QSystemSemaphore.__init__": ('str', 'int', 'PySide2.QtCore.QSystemSemaphore.AccessMode'),
- "PySide2.QtCore.QSystemSemaphore.acquire": (),
- "PySide2.QtCore.QSystemSemaphore.error": (),
- "PySide2.QtCore.QSystemSemaphore.errorString": (),
- "PySide2.QtCore.QSystemSemaphore.key": (),
- "PySide2.QtCore.QSystemSemaphore.release": ('int',),
- "PySide2.QtCore.QSystemSemaphore.setKey": ('str', 'int', 'PySide2.QtCore.QSystemSemaphore.AccessMode'),
-# class PySide2.QtCore.QTemporaryDir:
- "PySide2.QtCore.QTemporaryDir.__init__": [(), ('str',)],
- "PySide2.QtCore.QTemporaryDir.autoRemove": (),
- "PySide2.QtCore.QTemporaryDir.errorString": (),
- "PySide2.QtCore.QTemporaryDir.filePath": ('str',),
- "PySide2.QtCore.QTemporaryDir.isValid": (),
- "PySide2.QtCore.QTemporaryDir.path": (),
- "PySide2.QtCore.QTemporaryDir.remove": (),
- "PySide2.QtCore.QTemporaryDir.setAutoRemove": ('bool',),
-# class PySide2.QtCore.QTemporaryFile:
- "PySide2.QtCore.QTemporaryFile.__init__": [(), ('PySide2.QtCore.QObject',), ('str',), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QTemporaryFile.autoRemove": (),
- "PySide2.QtCore.QTemporaryFile.createLocalFile": [('PySide2.QtCore.QFile',), ('str',)],
- "PySide2.QtCore.QTemporaryFile.createNativeFile": [('PySide2.QtCore.QFile',), ('str',)],
- "PySide2.QtCore.QTemporaryFile.fileName": (),
- "PySide2.QtCore.QTemporaryFile.fileTemplate": (),
- "PySide2.QtCore.QTemporaryFile.open": [(), ('PySide2.QtCore.QIODevice.OpenMode',)],
- "PySide2.QtCore.QTemporaryFile.rename": ('str',),
- "PySide2.QtCore.QTemporaryFile.setAutoRemove": ('bool',),
- "PySide2.QtCore.QTemporaryFile.setFileTemplate": ('str',),
-# class PySide2.QtCore.QTextBoundaryFinder:
-# class PySide2.QtCore.QTextBoundaryFinder.BoundaryReason:
-# class PySide2.QtCore.QTextBoundaryFinder.BoundaryReasons:
-# class PySide2.QtCore.QTextBoundaryFinder.BoundaryType:
- "PySide2.QtCore.QTextBoundaryFinder.__init__": [(), ('PySide2.QtCore.QTextBoundaryFinder',), ('PySide2.QtCore.QTextBoundaryFinder.BoundaryType', 'str')],
- "PySide2.QtCore.QTextBoundaryFinder.__copy__": (),
- "PySide2.QtCore.QTextBoundaryFinder.boundaryReasons": (),
- "PySide2.QtCore.QTextBoundaryFinder.isAtBoundary": (),
- "PySide2.QtCore.QTextBoundaryFinder.isValid": (),
- "PySide2.QtCore.QTextBoundaryFinder.position": (),
- "PySide2.QtCore.QTextBoundaryFinder.setPosition": ('int',),
- "PySide2.QtCore.QTextBoundaryFinder.string": (),
- "PySide2.QtCore.QTextBoundaryFinder.toEnd": (),
- "PySide2.QtCore.QTextBoundaryFinder.toNextBoundary": (),
- "PySide2.QtCore.QTextBoundaryFinder.toPreviousBoundary": (),
- "PySide2.QtCore.QTextBoundaryFinder.toStart": (),
- "PySide2.QtCore.QTextBoundaryFinder.type": (),
-# class PySide2.QtCore.QTextCodec:
-# class PySide2.QtCore.QTextCodec.ConversionFlag:
-# class PySide2.QtCore.QTextCodec.ConversionFlags:
-# class PySide2.QtCore.QTextCodec.ConverterState:
- "PySide2.QtCore.QTextCodec.ConverterState.__init__": ('PySide2.QtCore.QTextCodec.ConversionFlags',),
- "PySide2.QtCore.QTextCodec.__init__": (),
- "PySide2.QtCore.QTextCodec.aliases": (),
- "PySide2.QtCore.QTextCodec.availableCodecs": (),
- "PySide2.QtCore.QTextCodec.availableMibs": (),
- "PySide2.QtCore.QTextCodec.canEncode": ('str',),
- "PySide2.QtCore.QTextCodec.codecForHtml": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QTextCodec')],
- "PySide2.QtCore.QTextCodec.codecForLocale": (),
- "PySide2.QtCore.QTextCodec.codecForMib": ('int',),
- "PySide2.QtCore.QTextCodec.codecForName": [('PySide2.QtCore.QByteArray',), ('str',)],
- "PySide2.QtCore.QTextCodec.codecForUtfText": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QTextCodec')],
- "PySide2.QtCore.QTextCodec.convertToUnicode": ('str', 'int', 'PySide2.QtCore.QTextCodec.ConverterState'),
- "PySide2.QtCore.QTextCodec.fromUnicode": ('str',),
- "PySide2.QtCore.QTextCodec.makeDecoder": ('PySide2.QtCore.QTextCodec.ConversionFlags',),
- "PySide2.QtCore.QTextCodec.makeEncoder": ('PySide2.QtCore.QTextCodec.ConversionFlags',),
- "PySide2.QtCore.QTextCodec.mibEnum": (),
- "PySide2.QtCore.QTextCodec.name": (),
- "PySide2.QtCore.QTextCodec.setCodecForLocale": ('PySide2.QtCore.QTextCodec',),
- "PySide2.QtCore.QTextCodec.toUnicode": [('PySide2.QtCore.QByteArray',), ('str',), ('str', 'int', 'PySide2.QtCore.QTextCodec.ConverterState')],
-# class PySide2.QtCore.QTextDecoder:
- "PySide2.QtCore.QTextDecoder.__init__": [('PySide2.QtCore.QTextCodec',), ('PySide2.QtCore.QTextCodec', 'PySide2.QtCore.QTextCodec.ConversionFlags')],
- "PySide2.QtCore.QTextDecoder.hasFailure": (),
- "PySide2.QtCore.QTextDecoder.needsMoreData": (),
- "PySide2.QtCore.QTextDecoder.toUnicode": ('PySide2.QtCore.QByteArray',),
-# class PySide2.QtCore.QTextEncoder:
- "PySide2.QtCore.QTextEncoder.__init__": [('PySide2.QtCore.QTextCodec',), ('PySide2.QtCore.QTextCodec', 'PySide2.QtCore.QTextCodec.ConversionFlags')],
- "PySide2.QtCore.QTextEncoder.fromUnicode": ('str',),
- "PySide2.QtCore.QTextEncoder.hasFailure": (),
-# class PySide2.QtCore.QTextStream:
-# class PySide2.QtCore.QTextStream.FieldAlignment:
-# class PySide2.QtCore.QTextStream.NumberFlag:
-# class PySide2.QtCore.QTextStream.NumberFlags:
-# class PySide2.QtCore.QTextStream.RealNumberNotation:
-# class PySide2.QtCore.QTextStream.Status:
- "PySide2.QtCore.QTextStream.__init__": [(), ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QIODevice.OpenMode'), ('PySide2.QtCore.QIODevice',)],
- "PySide2.QtCore.QTextStream.__lshift__": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QTextStreamManipulator',), ('float',), ('int',), ('str',)],
- "PySide2.QtCore.QTextStream.__rshift__": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QTextStream.atEnd": (),
- "PySide2.QtCore.QTextStream.autoDetectUnicode": (),
- "PySide2.QtCore.QTextStream.codec": (),
- "PySide2.QtCore.QTextStream.device": (),
- "PySide2.QtCore.QTextStream.fieldAlignment": (),
- "PySide2.QtCore.QTextStream.fieldWidth": (),
- "PySide2.QtCore.QTextStream.flush": (),
- "PySide2.QtCore.QTextStream.generateByteOrderMark": (),
- "PySide2.QtCore.QTextStream.integerBase": (),
- "PySide2.QtCore.QTextStream.locale": (),
- "PySide2.QtCore.QTextStream.numberFlags": (),
- "PySide2.QtCore.QTextStream.padChar": (),
- "PySide2.QtCore.QTextStream.pos": (),
- "PySide2.QtCore.QTextStream.read": ('int',),
- "PySide2.QtCore.QTextStream.readAll": (),
- "PySide2.QtCore.QTextStream.readLine": ('int',),
- "PySide2.QtCore.QTextStream.realNumberNotation": (),
- "PySide2.QtCore.QTextStream.realNumberPrecision": (),
- "PySide2.QtCore.QTextStream.reset": (),
- "PySide2.QtCore.QTextStream.resetStatus": (),
- "PySide2.QtCore.QTextStream.seek": ('int',),
- "PySide2.QtCore.QTextStream.setAutoDetectUnicode": ('bool',),
- "PySide2.QtCore.QTextStream.setCodec": [('PySide2.QtCore.QTextCodec',), ('str',)],
- "PySide2.QtCore.QTextStream.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtCore.QTextStream.setFieldAlignment": ('PySide2.QtCore.QTextStream.FieldAlignment',),
- "PySide2.QtCore.QTextStream.setFieldWidth": ('int',),
- "PySide2.QtCore.QTextStream.setGenerateByteOrderMark": ('bool',),
- "PySide2.QtCore.QTextStream.setIntegerBase": ('int',),
- "PySide2.QtCore.QTextStream.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtCore.QTextStream.setNumberFlags": ('PySide2.QtCore.QTextStream.NumberFlags',),
- "PySide2.QtCore.QTextStream.setPadChar": ('str',),
- "PySide2.QtCore.QTextStream.setRealNumberNotation": ('PySide2.QtCore.QTextStream.RealNumberNotation',),
- "PySide2.QtCore.QTextStream.setRealNumberPrecision": ('int',),
- "PySide2.QtCore.QTextStream.setStatus": ('PySide2.QtCore.QTextStream.Status',),
- "PySide2.QtCore.QTextStream.skipWhiteSpace": (),
- "PySide2.QtCore.QTextStream.status": (),
- "PySide2.QtCore.QTextStream.string": (),
-# class PySide2.QtCore.QTextStreamManipulator:
- "PySide2.QtCore.QTextStreamManipulator.__copy__": (),
- "PySide2.QtCore.QTextStreamManipulator.exec_": ('PySide2.QtCore.QTextStream',),
-# class PySide2.QtCore.QThread:
-# class PySide2.QtCore.QThread.Priority:
- "PySide2.QtCore.QThread.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QThread.currentThread": (),
- "PySide2.QtCore.QThread.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QThread.eventDispatcher": (),
- "PySide2.QtCore.QThread.exec_": (),
- "PySide2.QtCore.QThread.exit": ('int',),
- "PySide2.QtCore.QThread.idealThreadCount": (),
- "PySide2.QtCore.QThread.isFinished": (),
- "PySide2.QtCore.QThread.isInterruptionRequested": (),
- "PySide2.QtCore.QThread.isRunning": (),
- "PySide2.QtCore.QThread.loopLevel": (),
- "PySide2.QtCore.QThread.msleep": ('int',),
- "PySide2.QtCore.QThread.priority": (),
- "PySide2.QtCore.QThread.quit": (),
- "PySide2.QtCore.QThread.requestInterruption": (),
- "PySide2.QtCore.QThread.run": (),
- "PySide2.QtCore.QThread.setEventDispatcher": ('PySide2.QtCore.QAbstractEventDispatcher',),
- "PySide2.QtCore.QThread.setPriority": ('PySide2.QtCore.QThread.Priority',),
- "PySide2.QtCore.QThread.setStackSize": ('int',),
- "PySide2.QtCore.QThread.setTerminationEnabled": ('bool',),
- "PySide2.QtCore.QThread.sleep": ('int',),
- "PySide2.QtCore.QThread.stackSize": (),
- "PySide2.QtCore.QThread.start": ('PySide2.QtCore.QThread.Priority',),
- "PySide2.QtCore.QThread.terminate": (),
- "PySide2.QtCore.QThread.usleep": ('int',),
- "PySide2.QtCore.QThread.wait": ('int',),
- "PySide2.QtCore.QThread.yieldCurrentThread": (),
-# class PySide2.QtCore.QThreadPool:
- "PySide2.QtCore.QThreadPool.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QThreadPool.activeThreadCount": (),
- "PySide2.QtCore.QThreadPool.cancel": ('PySide2.QtCore.QRunnable',),
- "PySide2.QtCore.QThreadPool.clear": (),
- "PySide2.QtCore.QThreadPool.expiryTimeout": (),
- "PySide2.QtCore.QThreadPool.globalInstance": (),
- "PySide2.QtCore.QThreadPool.maxThreadCount": (),
- "PySide2.QtCore.QThreadPool.releaseThread": (),
- "PySide2.QtCore.QThreadPool.reserveThread": (),
- "PySide2.QtCore.QThreadPool.setExpiryTimeout": ('int',),
- "PySide2.QtCore.QThreadPool.setMaxThreadCount": ('int',),
- "PySide2.QtCore.QThreadPool.setStackSize": ('int',),
- "PySide2.QtCore.QThreadPool.stackSize": (),
- "PySide2.QtCore.QThreadPool.start": ('PySide2.QtCore.QRunnable', 'int'),
- "PySide2.QtCore.QThreadPool.tryStart": ('PySide2.QtCore.QRunnable',),
- "PySide2.QtCore.QThreadPool.tryTake": ('PySide2.QtCore.QRunnable',),
- "PySide2.QtCore.QThreadPool.waitForDone": ('int',),
-# class PySide2.QtCore.QTime:
- "PySide2.QtCore.QTime.__init__": [(), ('PySide2.QtCore.QTime',), ('int', 'int', 'int', 'int')],
- "PySide2.QtCore.QTime.__copy__": (),
- "PySide2.QtCore.QTime.__reduce__": (),
- "PySide2.QtCore.QTime.__repr__": (),
- "PySide2.QtCore.QTime.addMSecs": ('int',),
- "PySide2.QtCore.QTime.addSecs": ('int',),
- "PySide2.QtCore.QTime.currentTime": (),
- "PySide2.QtCore.QTime.elapsed": (),
- "PySide2.QtCore.QTime.fromMSecsSinceStartOfDay": ('int',),
- "PySide2.QtCore.QTime.fromString": [('str', 'PySide2.QtCore.Qt.DateFormat'), ('str', 'str')],
- "PySide2.QtCore.QTime.hour": (),
- "PySide2.QtCore.QTime.isNull": (),
- "PySide2.QtCore.QTime.isValid": [(), ('int', 'int', 'int', 'int')],
- "PySide2.QtCore.QTime.minute": (),
- "PySide2.QtCore.QTime.msec": (),
- "PySide2.QtCore.QTime.msecsSinceStartOfDay": (),
- "PySide2.QtCore.QTime.msecsTo": ('PySide2.QtCore.QTime',),
- "PySide2.QtCore.QTime.restart": (),
- "PySide2.QtCore.QTime.second": (),
- "PySide2.QtCore.QTime.secsTo": ('PySide2.QtCore.QTime',),
- "PySide2.QtCore.QTime.setHMS": ('int', 'int', 'int', 'int'),
- "PySide2.QtCore.QTime.start": (),
- "PySide2.QtCore.QTime.toPython": (),
- "PySide2.QtCore.QTime.toString": [('PySide2.QtCore.Qt.DateFormat',), ('str',)],
-# class PySide2.QtCore.QTimeLine:
-# class PySide2.QtCore.QTimeLine.CurveShape:
-# class PySide2.QtCore.QTimeLine.Direction:
-# class PySide2.QtCore.QTimeLine.State:
- "PySide2.QtCore.QTimeLine.__init__": ('int', 'PySide2.QtCore.QObject'),
- "PySide2.QtCore.QTimeLine.currentFrame": (),
- "PySide2.QtCore.QTimeLine.currentTime": (),
- "PySide2.QtCore.QTimeLine.currentValue": (),
- "PySide2.QtCore.QTimeLine.curveShape": (),
- "PySide2.QtCore.QTimeLine.direction": (),
- "PySide2.QtCore.QTimeLine.duration": (),
- "PySide2.QtCore.QTimeLine.easingCurve": (),
- "PySide2.QtCore.QTimeLine.endFrame": (),
- "PySide2.QtCore.QTimeLine.frameForTime": ('int',),
- "PySide2.QtCore.QTimeLine.loopCount": (),
- "PySide2.QtCore.QTimeLine.resume": (),
- "PySide2.QtCore.QTimeLine.setCurrentTime": ('int',),
- "PySide2.QtCore.QTimeLine.setCurveShape": ('PySide2.QtCore.QTimeLine.CurveShape',),
- "PySide2.QtCore.QTimeLine.setDirection": ('PySide2.QtCore.QTimeLine.Direction',),
- "PySide2.QtCore.QTimeLine.setDuration": ('int',),
- "PySide2.QtCore.QTimeLine.setEasingCurve": ('PySide2.QtCore.QEasingCurve',),
- "PySide2.QtCore.QTimeLine.setEndFrame": ('int',),
- "PySide2.QtCore.QTimeLine.setFrameRange": ('int', 'int'),
- "PySide2.QtCore.QTimeLine.setLoopCount": ('int',),
- "PySide2.QtCore.QTimeLine.setPaused": ('bool',),
- "PySide2.QtCore.QTimeLine.setStartFrame": ('int',),
- "PySide2.QtCore.QTimeLine.setUpdateInterval": ('int',),
- "PySide2.QtCore.QTimeLine.start": (),
- "PySide2.QtCore.QTimeLine.startFrame": (),
- "PySide2.QtCore.QTimeLine.state": (),
- "PySide2.QtCore.QTimeLine.stop": (),
- "PySide2.QtCore.QTimeLine.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtCore.QTimeLine.toggleDirection": (),
- "PySide2.QtCore.QTimeLine.updateInterval": (),
- "PySide2.QtCore.QTimeLine.valueForTime": ('int',),
-# class PySide2.QtCore.QTimeZone:
-# class PySide2.QtCore.QTimeZone.NameType:
-# class PySide2.QtCore.QTimeZone.OffsetData:
- "PySide2.QtCore.QTimeZone.OffsetData.__init__": [(), ('PySide2.QtCore.QTimeZone.OffsetData',)],
- "PySide2.QtCore.QTimeZone.OffsetData.__copy__": (),
-# class PySide2.QtCore.QTimeZone.TimeType:
- "PySide2.QtCore.QTimeZone.__init__": [(), ('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QByteArray', 'int', 'str', 'str', 'PySide2.QtCore.QLocale.Country', 'str'), ('PySide2.QtCore.QTimeZone',), ('int',)],
- "PySide2.QtCore.QTimeZone.__copy__": (),
- "PySide2.QtCore.QTimeZone.abbreviation": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QTimeZone.availableTimeZoneIds": [(), ('PySide2.QtCore.QLocale.Country',), ('int',)],
- "PySide2.QtCore.QTimeZone.comment": (),
- "PySide2.QtCore.QTimeZone.country": (),
- "PySide2.QtCore.QTimeZone.daylightTimeOffset": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QTimeZone.displayName": [('PySide2.QtCore.QDateTime', 'PySide2.QtCore.QTimeZone.NameType', 'PySide2.QtCore.QLocale'), ('PySide2.QtCore.QTimeZone.TimeType', 'PySide2.QtCore.QTimeZone.NameType', 'PySide2.QtCore.QLocale')],
- "PySide2.QtCore.QTimeZone.hasDaylightTime": (),
- "PySide2.QtCore.QTimeZone.hasTransitions": (),
- "PySide2.QtCore.QTimeZone.ianaIdToWindowsId": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QTimeZone.id": (),
- "PySide2.QtCore.QTimeZone.isDaylightTime": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QTimeZone.isTimeZoneIdAvailable": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QTimeZone.isValid": (),
- "PySide2.QtCore.QTimeZone.nextTransition": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QTimeZone.offsetData": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QTimeZone.offsetFromUtc": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QTimeZone.previousTransition": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QTimeZone.standardTimeOffset": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QTimeZone.swap": ('PySide2.QtCore.QTimeZone',),
- "PySide2.QtCore.QTimeZone.systemTimeZone": (),
- "PySide2.QtCore.QTimeZone.systemTimeZoneId": (),
- "PySide2.QtCore.QTimeZone.transitions": ('PySide2.QtCore.QDateTime', 'PySide2.QtCore.QDateTime'),
- "PySide2.QtCore.QTimeZone.utc": (),
- "PySide2.QtCore.QTimeZone.windowsIdToDefaultIanaId": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QLocale.Country')],
- "PySide2.QtCore.QTimeZone.windowsIdToIanaIds": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QLocale.Country')],
-# class PySide2.QtCore.QTimer:
- "PySide2.QtCore.QTimer.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QTimer.interval": (),
- "PySide2.QtCore.QTimer.isActive": (),
- "PySide2.QtCore.QTimer.isSingleShot": (),
- "PySide2.QtCore.QTimer.killTimer": ('int',),
- "PySide2.QtCore.QTimer.remainingTime": (),
- "PySide2.QtCore.QTimer.setInterval": ('int',),
- "PySide2.QtCore.QTimer.setSingleShot": ('bool',),
- "PySide2.QtCore.QTimer.setTimerType": ('PySide2.QtCore.Qt.TimerType',),
- "PySide2.QtCore.QTimer.singleShot": [('int', 'PySide2.QtCore.QObject', 'str'), ('int', 'PySide2.QtCore.Qt.TimerType', 'PySide2.QtCore.QObject', 'str'), ('int', 'typing.Callable')],
- "PySide2.QtCore.QTimer.start": [(), ('int',)],
- "PySide2.QtCore.QTimer.stop": (),
- "PySide2.QtCore.QTimer.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtCore.QTimer.timerId": (),
- "PySide2.QtCore.QTimer.timerType": (),
-# class PySide2.QtCore.QTimerEvent:
- "PySide2.QtCore.QTimerEvent.__init__": ('int',),
- "PySide2.QtCore.QTimerEvent.timerId": (),
-# class PySide2.QtCore.QTranslator:
- "PySide2.QtCore.QTranslator.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QTranslator.isEmpty": (),
- "PySide2.QtCore.QTranslator.load": [('PySide2.QtCore.QLocale', 'str', 'str', 'str', 'str'), ('str', 'int', 'str'), ('str', 'str', 'str', 'str')],
- "PySide2.QtCore.QTranslator.translate": ('str', 'str', 'str', 'int'),
-# class PySide2.QtCore.QTransposeProxyModel:
- "PySide2.QtCore.QTransposeProxyModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QTransposeProxyModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QTransposeProxyModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtCore.QTransposeProxyModel.index": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QTransposeProxyModel.insertColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QTransposeProxyModel.insertRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QTransposeProxyModel.itemData": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QTransposeProxyModel.mapFromSource": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QTransposeProxyModel.mapToSource": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QTransposeProxyModel.moveColumns": ('PySide2.QtCore.QModelIndex', 'int', 'int', 'PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QTransposeProxyModel.moveRows": ('PySide2.QtCore.QModelIndex', 'int', 'int', 'PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QTransposeProxyModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtCore.QTransposeProxyModel.removeColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QTransposeProxyModel.removeRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QTransposeProxyModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QTransposeProxyModel.setHeaderData": ('int', 'PySide2.QtCore.Qt.Orientation', 'typing.Any', 'int'),
- "PySide2.QtCore.QTransposeProxyModel.setItemData": ('PySide2.QtCore.QModelIndex', 'typing.Dict[int, typing.Any]'),
- "PySide2.QtCore.QTransposeProxyModel.setSourceModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCore.QTransposeProxyModel.sort": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtCore.QTransposeProxyModel.span": ('PySide2.QtCore.QModelIndex',),
-# class PySide2.QtCore.QUrl:
-# class PySide2.QtCore.QUrl.ComponentFormattingOption:
-# class PySide2.QtCore.QUrl.FormattingOptions:
-# class PySide2.QtCore.QUrl.ParsingMode:
-# class PySide2.QtCore.QUrl.UrlFormattingOption:
-# class PySide2.QtCore.QUrl.UserInputResolutionOption:
-# class PySide2.QtCore.QUrl.UserInputResolutionOptions:
- "PySide2.QtCore.QUrl.__init__": [(), ('PySide2.QtCore.QUrl',), ('str', 'PySide2.QtCore.QUrl.ParsingMode')],
- "PySide2.QtCore.QUrl.__copy__": (),
- "PySide2.QtCore.QUrl.__reduce__": (),
- "PySide2.QtCore.QUrl.__repr__": (),
- "PySide2.QtCore.QUrl.adjusted": ('PySide2.QtCore.QUrl.FormattingOptions',),
- "PySide2.QtCore.QUrl.authority": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrl.clear": (),
- "PySide2.QtCore.QUrl.errorString": (),
- "PySide2.QtCore.QUrl.fileName": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrl.fragment": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrl.fromAce": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QUrl.fromEncoded": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtCore.QUrl.fromLocalFile": ('str',),
- "PySide2.QtCore.QUrl.fromPercentEncoding": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QUrl.fromStringList": ('typing.Sequence[str]', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtCore.QUrl.fromUserInput": [('str',), ('str', 'str', 'PySide2.QtCore.QUrl.UserInputResolutionOptions')],
- "PySide2.QtCore.QUrl.hasFragment": (),
- "PySide2.QtCore.QUrl.hasQuery": (),
- "PySide2.QtCore.QUrl.host": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrl.idnWhitelist": (),
- "PySide2.QtCore.QUrl.isEmpty": (),
- "PySide2.QtCore.QUrl.isLocalFile": (),
- "PySide2.QtCore.QUrl.isParentOf": ('PySide2.QtCore.QUrl',),
- "PySide2.QtCore.QUrl.isRelative": (),
- "PySide2.QtCore.QUrl.isValid": (),
- "PySide2.QtCore.QUrl.matches": ('PySide2.QtCore.QUrl', 'PySide2.QtCore.QUrl.FormattingOptions'),
- "PySide2.QtCore.QUrl.password": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrl.path": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrl.port": ('int',),
- "PySide2.QtCore.QUrl.query": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrl.resolved": ('PySide2.QtCore.QUrl',),
- "PySide2.QtCore.QUrl.scheme": (),
- "PySide2.QtCore.QUrl.setAuthority": ('str', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtCore.QUrl.setFragment": ('str', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtCore.QUrl.setHost": ('str', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtCore.QUrl.setIdnWhitelist": ('typing.Sequence[str]',),
- "PySide2.QtCore.QUrl.setPassword": ('str', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtCore.QUrl.setPath": ('str', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtCore.QUrl.setPort": ('int',),
- "PySide2.QtCore.QUrl.setQuery": [('PySide2.QtCore.QUrlQuery',), ('str', 'PySide2.QtCore.QUrl.ParsingMode')],
- "PySide2.QtCore.QUrl.setScheme": ('str',),
- "PySide2.QtCore.QUrl.setUrl": ('str', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtCore.QUrl.setUserInfo": ('str', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtCore.QUrl.setUserName": ('str', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtCore.QUrl.swap": ('PySide2.QtCore.QUrl',),
- "PySide2.QtCore.QUrl.toAce": ('str',),
- "PySide2.QtCore.QUrl.toDisplayString": ('PySide2.QtCore.QUrl.FormattingOptions',),
- "PySide2.QtCore.QUrl.toEncoded": ('PySide2.QtCore.QUrl.FormattingOptions',),
- "PySide2.QtCore.QUrl.toLocalFile": (),
- "PySide2.QtCore.QUrl.toPercentEncoding": ('str', 'PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtCore.QUrl.toString": ('PySide2.QtCore.QUrl.FormattingOptions',),
- "PySide2.QtCore.QUrl.toStringList": ('typing.Sequence[PySide2.QtCore.QUrl]', 'PySide2.QtCore.QUrl.FormattingOptions'),
- "PySide2.QtCore.QUrl.topLevelDomain": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrl.url": ('PySide2.QtCore.QUrl.FormattingOptions',),
- "PySide2.QtCore.QUrl.userInfo": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrl.userName": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
-# class PySide2.QtCore.QUrlQuery:
- "PySide2.QtCore.QUrlQuery.__init__": [(), ('PySide2.QtCore.QUrl',), ('PySide2.QtCore.QUrlQuery',), ('str',)],
- "PySide2.QtCore.QUrlQuery.__copy__": (),
- "PySide2.QtCore.QUrlQuery.addQueryItem": ('str', 'str'),
- "PySide2.QtCore.QUrlQuery.allQueryItemValues": ('str', 'PySide2.QtCore.QUrl.ComponentFormattingOption'),
- "PySide2.QtCore.QUrlQuery.clear": (),
- "PySide2.QtCore.QUrlQuery.defaultQueryPairDelimiter": (),
- "PySide2.QtCore.QUrlQuery.defaultQueryValueDelimiter": (),
- "PySide2.QtCore.QUrlQuery.hasQueryItem": ('str',),
- "PySide2.QtCore.QUrlQuery.isEmpty": (),
- "PySide2.QtCore.QUrlQuery.query": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrlQuery.queryItemValue": ('str', 'PySide2.QtCore.QUrl.ComponentFormattingOption'),
- "PySide2.QtCore.QUrlQuery.queryItems": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrlQuery.queryPairDelimiter": (),
- "PySide2.QtCore.QUrlQuery.queryValueDelimiter": (),
- "PySide2.QtCore.QUrlQuery.removeAllQueryItems": ('str',),
- "PySide2.QtCore.QUrlQuery.removeQueryItem": ('str',),
- "PySide2.QtCore.QUrlQuery.setQuery": ('str',),
- "PySide2.QtCore.QUrlQuery.setQueryDelimiters": ('str', 'str'),
- "PySide2.QtCore.QUrlQuery.setQueryItems": ('typing.Sequence[typing.Tuple]',),
- "PySide2.QtCore.QUrlQuery.swap": ('PySide2.QtCore.QUrlQuery',),
- "PySide2.QtCore.QUrlQuery.toString": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
-# class PySide2.QtCore.QUuid:
-# class PySide2.QtCore.QUuid.StringFormat:
-# class PySide2.QtCore.QUuid.Variant:
-# class PySide2.QtCore.QUuid.Version:
- "PySide2.QtCore.QUuid.__init__": [(), ('PySide2.QtCore.QByteArray',), ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'), ('str',)],
- "PySide2.QtCore.QUuid.__copy__": (),
- "PySide2.QtCore.QUuid.__reduce__": (),
- "PySide2.QtCore.QUuid.__repr__": (),
- "PySide2.QtCore.QUuid.createUuid": (),
- "PySide2.QtCore.QUuid.createUuidV3": [('PySide2.QtCore.QUuid', 'PySide2.QtCore.QByteArray'), ('PySide2.QtCore.QUuid', 'str')],
- "PySide2.QtCore.QUuid.createUuidV5": [('PySide2.QtCore.QUuid', 'PySide2.QtCore.QByteArray'), ('PySide2.QtCore.QUuid', 'str')],
- "PySide2.QtCore.QUuid.fromRfc4122": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QUuid.isNull": (),
- "PySide2.QtCore.QUuid.toByteArray": [(), ('PySide2.QtCore.QUuid.StringFormat',)],
- "PySide2.QtCore.QUuid.toRfc4122": (),
- "PySide2.QtCore.QUuid.toString": [(), ('PySide2.QtCore.QUuid.StringFormat',)],
- "PySide2.QtCore.QUuid.variant": (),
- "PySide2.QtCore.QUuid.version": (),
-# class PySide2.QtCore.QVariantAnimation:
- "PySide2.QtCore.QVariantAnimation.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QVariantAnimation.currentValue": (),
- "PySide2.QtCore.QVariantAnimation.duration": (),
- "PySide2.QtCore.QVariantAnimation.easingCurve": (),
- "PySide2.QtCore.QVariantAnimation.endValue": (),
- "PySide2.QtCore.QVariantAnimation.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QVariantAnimation.interpolated": ('typing.Any', 'typing.Any', 'float'),
- "PySide2.QtCore.QVariantAnimation.keyValueAt": ('float',),
- "PySide2.QtCore.QVariantAnimation.keyValues": (),
- "PySide2.QtCore.QVariantAnimation.setDuration": ('int',),
- "PySide2.QtCore.QVariantAnimation.setEasingCurve": ('PySide2.QtCore.QEasingCurve',),
- "PySide2.QtCore.QVariantAnimation.setEndValue": ('typing.Any',),
- "PySide2.QtCore.QVariantAnimation.setKeyValueAt": ('float', 'typing.Any'),
- "PySide2.QtCore.QVariantAnimation.setKeyValues": ('typing.List[typing.Tuple]',),
- "PySide2.QtCore.QVariantAnimation.setStartValue": ('typing.Any',),
- "PySide2.QtCore.QVariantAnimation.startValue": (),
- "PySide2.QtCore.QVariantAnimation.updateCurrentTime": ('int',),
- "PySide2.QtCore.QVariantAnimation.updateCurrentValue": ('typing.Any',),
- "PySide2.QtCore.QVariantAnimation.updateState": ('PySide2.QtCore.QAbstractAnimation.State', 'PySide2.QtCore.QAbstractAnimation.State'),
-# class PySide2.QtCore.QVersionNumber:
- "PySide2.QtCore.QVersionNumber.__init__": [(), ('int',), ('int', 'int'), ('int', 'int', 'int'), ('typing.List[int]',)],
- "PySide2.QtCore.QVersionNumber.__copy__": (),
- "PySide2.QtCore.QVersionNumber.commonPrefix": ('PySide2.QtCore.QVersionNumber', 'PySide2.QtCore.QVersionNumber'),
- "PySide2.QtCore.QVersionNumber.compare": ('PySide2.QtCore.QVersionNumber', 'PySide2.QtCore.QVersionNumber'),
- "PySide2.QtCore.QVersionNumber.fromString": ('str',),
- "PySide2.QtCore.QVersionNumber.isNormalized": (),
- "PySide2.QtCore.QVersionNumber.isNull": (),
- "PySide2.QtCore.QVersionNumber.isPrefixOf": ('PySide2.QtCore.QVersionNumber',),
- "PySide2.QtCore.QVersionNumber.majorVersion": (),
- "PySide2.QtCore.QVersionNumber.microVersion": (),
- "PySide2.QtCore.QVersionNumber.minorVersion": (),
- "PySide2.QtCore.QVersionNumber.normalized": (),
- "PySide2.QtCore.QVersionNumber.segmentAt": ('int',),
- "PySide2.QtCore.QVersionNumber.segmentCount": (),
- "PySide2.QtCore.QVersionNumber.segments": (),
- "PySide2.QtCore.QVersionNumber.toString": (),
-# class PySide2.QtCore.QWaitCondition:
- "PySide2.QtCore.QWaitCondition.__init__": (),
- "PySide2.QtCore.QWaitCondition.notify_all": (),
- "PySide2.QtCore.QWaitCondition.notify_one": (),
- "PySide2.QtCore.QWaitCondition.wait": [('PySide2.QtCore.QMutex', 'PySide2.QtCore.QDeadlineTimer'), ('PySide2.QtCore.QMutex', 'int'), ('PySide2.QtCore.QReadWriteLock', 'PySide2.QtCore.QDeadlineTimer'), ('PySide2.QtCore.QReadWriteLock', 'int')],
- "PySide2.QtCore.QWaitCondition.wakeAll": (),
- "PySide2.QtCore.QWaitCondition.wakeOne": (),
-# class PySide2.QtCore.QWriteLocker:
- "PySide2.QtCore.QWriteLocker.__init__": ('PySide2.QtCore.QReadWriteLock',),
- "PySide2.QtCore.QWriteLocker.__enter__": (),
- "PySide2.QtCore.QWriteLocker.__exit__": ('object', 'object', 'object'),
- "PySide2.QtCore.QWriteLocker.readWriteLock": (),
- "PySide2.QtCore.QWriteLocker.relock": (),
- "PySide2.QtCore.QWriteLocker.unlock": (),
-# class PySide2.QtCore.QXmlStreamAttribute:
- "PySide2.QtCore.QXmlStreamAttribute.__init__": [(), ('PySide2.QtCore.QXmlStreamAttribute',), ('str', 'str'), ('str', 'str', 'str')],
- "PySide2.QtCore.QXmlStreamAttribute.__copy__": (),
- "PySide2.QtCore.QXmlStreamAttribute.isDefault": (),
- "PySide2.QtCore.QXmlStreamAttribute.name": (),
- "PySide2.QtCore.QXmlStreamAttribute.namespaceUri": (),
- "PySide2.QtCore.QXmlStreamAttribute.prefix": (),
- "PySide2.QtCore.QXmlStreamAttribute.qualifiedName": (),
- "PySide2.QtCore.QXmlStreamAttribute.value": (),
-# class PySide2.QtCore.QXmlStreamAttributes:
- "PySide2.QtCore.QXmlStreamAttributes.__init__": [(), ('PySide2.QtCore.QXmlStreamAttributes',)],
- "PySide2.QtCore.QXmlStreamAttributes.__add__": ('typing.List[PySide2.QtCore.QXmlStreamAttribute]',),
- "PySide2.QtCore.QXmlStreamAttributes.__copy__": (),
- "PySide2.QtCore.QXmlStreamAttributes.__iadd__": ('PySide2.QtCore.QXmlStreamAttribute',),
- "PySide2.QtCore.QXmlStreamAttributes.__lshift__": [('PySide2.QtCore.QXmlStreamAttribute',), ('typing.List[PySide2.QtCore.QXmlStreamAttribute]',)],
- "PySide2.QtCore.QXmlStreamAttributes.append": [('str', 'str'), ('str', 'str', 'str')],
- "PySide2.QtCore.QXmlStreamAttributes.at": ('int',),
- "PySide2.QtCore.QXmlStreamAttributes.back": (),
- "PySide2.QtCore.QXmlStreamAttributes.capacity": (),
- "PySide2.QtCore.QXmlStreamAttributes.clear": (),
- "PySide2.QtCore.QXmlStreamAttributes.constData": (),
- "PySide2.QtCore.QXmlStreamAttributes.constFirst": (),
- "PySide2.QtCore.QXmlStreamAttributes.constLast": (),
- "PySide2.QtCore.QXmlStreamAttributes.contains": ('PySide2.QtCore.QXmlStreamAttribute',),
- "PySide2.QtCore.QXmlStreamAttributes.count": [(), ('PySide2.QtCore.QXmlStreamAttribute',)],
- "PySide2.QtCore.QXmlStreamAttributes.data": (),
- "PySide2.QtCore.QXmlStreamAttributes.empty": (),
- "PySide2.QtCore.QXmlStreamAttributes.endsWith": ('PySide2.QtCore.QXmlStreamAttribute',),
- "PySide2.QtCore.QXmlStreamAttributes.fill": ('PySide2.QtCore.QXmlStreamAttribute', 'int'),
- "PySide2.QtCore.QXmlStreamAttributes.first": (),
- "PySide2.QtCore.QXmlStreamAttributes.front": (),
- "PySide2.QtCore.QXmlStreamAttributes.hasAttribute": [('str',), ('str', 'str')],
- "PySide2.QtCore.QXmlStreamAttributes.indexOf": ('PySide2.QtCore.QXmlStreamAttribute', 'int'),
- "PySide2.QtCore.QXmlStreamAttributes.insert": [('int', 'PySide2.QtCore.QXmlStreamAttribute'), ('int', 'int', 'PySide2.QtCore.QXmlStreamAttribute')],
- "PySide2.QtCore.QXmlStreamAttributes.isEmpty": (),
- "PySide2.QtCore.QXmlStreamAttributes.isSharedWith": ('typing.List[PySide2.QtCore.QXmlStreamAttribute]',),
- "PySide2.QtCore.QXmlStreamAttributes.last": (),
- "PySide2.QtCore.QXmlStreamAttributes.lastIndexOf": ('PySide2.QtCore.QXmlStreamAttribute', 'int'),
- "PySide2.QtCore.QXmlStreamAttributes.length": (),
- "PySide2.QtCore.QXmlStreamAttributes.mid": ('int', 'int'),
- "PySide2.QtCore.QXmlStreamAttributes.move": ('int', 'int'),
- "PySide2.QtCore.QXmlStreamAttributes.prepend": ('PySide2.QtCore.QXmlStreamAttribute',),
- "PySide2.QtCore.QXmlStreamAttributes.remove": [('int',), ('int', 'int')],
- "PySide2.QtCore.QXmlStreamAttributes.removeAll": ('PySide2.QtCore.QXmlStreamAttribute',),
- "PySide2.QtCore.QXmlStreamAttributes.removeAt": ('int',),
- "PySide2.QtCore.QXmlStreamAttributes.removeFirst": (),
- "PySide2.QtCore.QXmlStreamAttributes.removeLast": (),
- "PySide2.QtCore.QXmlStreamAttributes.removeOne": ('PySide2.QtCore.QXmlStreamAttribute',),
- "PySide2.QtCore.QXmlStreamAttributes.replace": ('int', 'PySide2.QtCore.QXmlStreamAttribute'),
- "PySide2.QtCore.QXmlStreamAttributes.reserve": ('int',),
- "PySide2.QtCore.QXmlStreamAttributes.resize": ('int',),
- "PySide2.QtCore.QXmlStreamAttributes.setSharable": ('bool',),
- "PySide2.QtCore.QXmlStreamAttributes.shrink_to_fit": (),
- "PySide2.QtCore.QXmlStreamAttributes.size": (),
- "PySide2.QtCore.QXmlStreamAttributes.squeeze": (),
- "PySide2.QtCore.QXmlStreamAttributes.startsWith": ('PySide2.QtCore.QXmlStreamAttribute',),
- "PySide2.QtCore.QXmlStreamAttributes.swap": ('typing.List[PySide2.QtCore.QXmlStreamAttribute]',),
- "PySide2.QtCore.QXmlStreamAttributes.swapItemsAt": ('int', 'int'),
- "PySide2.QtCore.QXmlStreamAttributes.takeAt": ('int',),
- "PySide2.QtCore.QXmlStreamAttributes.takeFirst": (),
- "PySide2.QtCore.QXmlStreamAttributes.takeLast": (),
- "PySide2.QtCore.QXmlStreamAttributes.value": [('str',), ('str', 'str')],
-# class PySide2.QtCore.QXmlStreamEntityDeclaration:
- "PySide2.QtCore.QXmlStreamEntityDeclaration.__init__": [(), ('PySide2.QtCore.QXmlStreamEntityDeclaration',)],
- "PySide2.QtCore.QXmlStreamEntityDeclaration.__copy__": (),
- "PySide2.QtCore.QXmlStreamEntityDeclaration.name": (),
- "PySide2.QtCore.QXmlStreamEntityDeclaration.notationName": (),
- "PySide2.QtCore.QXmlStreamEntityDeclaration.publicId": (),
- "PySide2.QtCore.QXmlStreamEntityDeclaration.systemId": (),
- "PySide2.QtCore.QXmlStreamEntityDeclaration.value": (),
-# class PySide2.QtCore.QXmlStreamEntityResolver:
- "PySide2.QtCore.QXmlStreamEntityResolver.__init__": (),
- "PySide2.QtCore.QXmlStreamEntityResolver.resolveEntity": ('str', 'str'),
- "PySide2.QtCore.QXmlStreamEntityResolver.resolveUndeclaredEntity": ('str',),
-# class PySide2.QtCore.QXmlStreamNamespaceDeclaration:
- "PySide2.QtCore.QXmlStreamNamespaceDeclaration.__init__": [(), ('PySide2.QtCore.QXmlStreamNamespaceDeclaration',), ('str', 'str')],
- "PySide2.QtCore.QXmlStreamNamespaceDeclaration.__copy__": (),
- "PySide2.QtCore.QXmlStreamNamespaceDeclaration.namespaceUri": (),
- "PySide2.QtCore.QXmlStreamNamespaceDeclaration.prefix": (),
-# class PySide2.QtCore.QXmlStreamNotationDeclaration:
- "PySide2.QtCore.QXmlStreamNotationDeclaration.__init__": [(), ('PySide2.QtCore.QXmlStreamNotationDeclaration',)],
- "PySide2.QtCore.QXmlStreamNotationDeclaration.__copy__": (),
- "PySide2.QtCore.QXmlStreamNotationDeclaration.name": (),
- "PySide2.QtCore.QXmlStreamNotationDeclaration.publicId": (),
- "PySide2.QtCore.QXmlStreamNotationDeclaration.systemId": (),
-# class PySide2.QtCore.QXmlStreamReader:
-# class PySide2.QtCore.QXmlStreamReader.Error:
-# class PySide2.QtCore.QXmlStreamReader.ReadElementTextBehaviour:
-# class PySide2.QtCore.QXmlStreamReader.TokenType:
- "PySide2.QtCore.QXmlStreamReader.__init__": [(), ('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QIODevice',), ('str',)],
- "PySide2.QtCore.QXmlStreamReader.addData": [('PySide2.QtCore.QByteArray',), ('str',)],
- "PySide2.QtCore.QXmlStreamReader.addExtraNamespaceDeclaration": ('PySide2.QtCore.QXmlStreamNamespaceDeclaration',),
- "PySide2.QtCore.QXmlStreamReader.addExtraNamespaceDeclarations": ('typing.List[PySide2.QtCore.QXmlStreamNamespaceDeclaration]',),
- "PySide2.QtCore.QXmlStreamReader.atEnd": (),
- "PySide2.QtCore.QXmlStreamReader.attributes": (),
- "PySide2.QtCore.QXmlStreamReader.characterOffset": (),
- "PySide2.QtCore.QXmlStreamReader.clear": (),
- "PySide2.QtCore.QXmlStreamReader.columnNumber": (),
- "PySide2.QtCore.QXmlStreamReader.device": (),
- "PySide2.QtCore.QXmlStreamReader.documentEncoding": (),
- "PySide2.QtCore.QXmlStreamReader.documentVersion": (),
- "PySide2.QtCore.QXmlStreamReader.dtdName": (),
- "PySide2.QtCore.QXmlStreamReader.dtdPublicId": (),
- "PySide2.QtCore.QXmlStreamReader.dtdSystemId": (),
- "PySide2.QtCore.QXmlStreamReader.entityDeclarations": (),
- "PySide2.QtCore.QXmlStreamReader.entityResolver": (),
- "PySide2.QtCore.QXmlStreamReader.error": (),
- "PySide2.QtCore.QXmlStreamReader.errorString": (),
- "PySide2.QtCore.QXmlStreamReader.hasError": (),
- "PySide2.QtCore.QXmlStreamReader.isCDATA": (),
- "PySide2.QtCore.QXmlStreamReader.isCharacters": (),
- "PySide2.QtCore.QXmlStreamReader.isComment": (),
- "PySide2.QtCore.QXmlStreamReader.isDTD": (),
- "PySide2.QtCore.QXmlStreamReader.isEndDocument": (),
- "PySide2.QtCore.QXmlStreamReader.isEndElement": (),
- "PySide2.QtCore.QXmlStreamReader.isEntityReference": (),
- "PySide2.QtCore.QXmlStreamReader.isProcessingInstruction": (),
- "PySide2.QtCore.QXmlStreamReader.isStandaloneDocument": (),
- "PySide2.QtCore.QXmlStreamReader.isStartDocument": (),
- "PySide2.QtCore.QXmlStreamReader.isStartElement": (),
- "PySide2.QtCore.QXmlStreamReader.isWhitespace": (),
- "PySide2.QtCore.QXmlStreamReader.lineNumber": (),
- "PySide2.QtCore.QXmlStreamReader.name": (),
- "PySide2.QtCore.QXmlStreamReader.namespaceDeclarations": (),
- "PySide2.QtCore.QXmlStreamReader.namespaceProcessing": (),
- "PySide2.QtCore.QXmlStreamReader.namespaceUri": (),
- "PySide2.QtCore.QXmlStreamReader.notationDeclarations": (),
- "PySide2.QtCore.QXmlStreamReader.prefix": (),
- "PySide2.QtCore.QXmlStreamReader.processingInstructionData": (),
- "PySide2.QtCore.QXmlStreamReader.processingInstructionTarget": (),
- "PySide2.QtCore.QXmlStreamReader.qualifiedName": (),
- "PySide2.QtCore.QXmlStreamReader.raiseError": ('str',),
- "PySide2.QtCore.QXmlStreamReader.readElementText": ('PySide2.QtCore.QXmlStreamReader.ReadElementTextBehaviour',),
- "PySide2.QtCore.QXmlStreamReader.readNext": (),
- "PySide2.QtCore.QXmlStreamReader.readNextStartElement": (),
- "PySide2.QtCore.QXmlStreamReader.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtCore.QXmlStreamReader.setEntityResolver": ('PySide2.QtCore.QXmlStreamEntityResolver',),
- "PySide2.QtCore.QXmlStreamReader.setNamespaceProcessing": ('bool',),
- "PySide2.QtCore.QXmlStreamReader.skipCurrentElement": (),
- "PySide2.QtCore.QXmlStreamReader.text": (),
- "PySide2.QtCore.QXmlStreamReader.tokenString": (),
- "PySide2.QtCore.QXmlStreamReader.tokenType": (),
-# class PySide2.QtCore.QXmlStreamWriter:
- "PySide2.QtCore.QXmlStreamWriter.__init__": [(), ('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QIODevice',)],
- "PySide2.QtCore.QXmlStreamWriter.autoFormatting": (),
- "PySide2.QtCore.QXmlStreamWriter.autoFormattingIndent": (),
- "PySide2.QtCore.QXmlStreamWriter.codec": (),
- "PySide2.QtCore.QXmlStreamWriter.device": (),
- "PySide2.QtCore.QXmlStreamWriter.hasError": (),
- "PySide2.QtCore.QXmlStreamWriter.setAutoFormatting": ('bool',),
- "PySide2.QtCore.QXmlStreamWriter.setAutoFormattingIndent": ('int',),
- "PySide2.QtCore.QXmlStreamWriter.setCodec": [('PySide2.QtCore.QTextCodec',), ('str',)],
- "PySide2.QtCore.QXmlStreamWriter.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtCore.QXmlStreamWriter.writeAttribute": [('PySide2.QtCore.QXmlStreamAttribute',), ('str', 'str'), ('str', 'str', 'str')],
- "PySide2.QtCore.QXmlStreamWriter.writeAttributes": ('PySide2.QtCore.QXmlStreamAttributes',),
- "PySide2.QtCore.QXmlStreamWriter.writeCDATA": ('str',),
- "PySide2.QtCore.QXmlStreamWriter.writeCharacters": ('str',),
- "PySide2.QtCore.QXmlStreamWriter.writeComment": ('str',),
- "PySide2.QtCore.QXmlStreamWriter.writeCurrentToken": ('PySide2.QtCore.QXmlStreamReader',),
- "PySide2.QtCore.QXmlStreamWriter.writeDTD": ('str',),
- "PySide2.QtCore.QXmlStreamWriter.writeDefaultNamespace": ('str',),
- "PySide2.QtCore.QXmlStreamWriter.writeEmptyElement": [('str',), ('str', 'str')],
- "PySide2.QtCore.QXmlStreamWriter.writeEndDocument": (),
- "PySide2.QtCore.QXmlStreamWriter.writeEndElement": (),
- "PySide2.QtCore.QXmlStreamWriter.writeEntityReference": ('str',),
- "PySide2.QtCore.QXmlStreamWriter.writeNamespace": ('str', 'str'),
- "PySide2.QtCore.QXmlStreamWriter.writeProcessingInstruction": ('str', 'str'),
- "PySide2.QtCore.QXmlStreamWriter.writeStartDocument": [(), ('str',), ('str', 'bool')],
- "PySide2.QtCore.QXmlStreamWriter.writeStartElement": [('str',), ('str', 'str')],
- "PySide2.QtCore.QXmlStreamWriter.writeTextElement": [('str', 'str'), ('str', 'str', 'str')],
-# class PySide2.QtCore.Qt:
-# class PySide2.QtCore.Qt.Alignment:
-# class PySide2.QtCore.Qt.AlignmentFlag:
-# class PySide2.QtCore.Qt.AnchorPoint:
-# class PySide2.QtCore.Qt.ApplicationAttribute:
-# class PySide2.QtCore.Qt.ApplicationState:
-# class PySide2.QtCore.Qt.ApplicationStates:
-# class PySide2.QtCore.Qt.ArrowType:
-# class PySide2.QtCore.Qt.AspectRatioMode:
-# class PySide2.QtCore.Qt.Axis:
-# class PySide2.QtCore.Qt.BGMode:
-# class PySide2.QtCore.Qt.BrushStyle:
-# class PySide2.QtCore.Qt.CaseSensitivity:
-# class PySide2.QtCore.Qt.CheckState:
-# class PySide2.QtCore.Qt.ChecksumType:
-# class PySide2.QtCore.Qt.ClipOperation:
-# class PySide2.QtCore.Qt.ConnectionType:
-# class PySide2.QtCore.Qt.ContextMenuPolicy:
-# class PySide2.QtCore.Qt.CoordinateSystem:
-# class PySide2.QtCore.Qt.Corner:
-# class PySide2.QtCore.Qt.CursorMoveStyle:
-# class PySide2.QtCore.Qt.CursorShape:
-# class PySide2.QtCore.Qt.DateFormat:
-# class PySide2.QtCore.Qt.DayOfWeek:
-# class PySide2.QtCore.Qt.DockWidgetArea:
-# class PySide2.QtCore.Qt.DockWidgetAreaSizes:
-# class PySide2.QtCore.Qt.DockWidgetAreas:
-# class PySide2.QtCore.Qt.DropAction:
-# class PySide2.QtCore.Qt.DropActions:
-# class PySide2.QtCore.Qt.Edge:
-# class PySide2.QtCore.Qt.Edges:
-# class PySide2.QtCore.Qt.EnterKeyType:
-# class PySide2.QtCore.Qt.EventPriority:
-# class PySide2.QtCore.Qt.FillRule:
-# class PySide2.QtCore.Qt.FindChildOption:
-# class PySide2.QtCore.Qt.FindChildOptions:
-# class PySide2.QtCore.Qt.FocusPolicy:
-# class PySide2.QtCore.Qt.FocusReason:
-# class PySide2.QtCore.Qt.GestureFlag:
-# class PySide2.QtCore.Qt.GestureFlags:
-# class PySide2.QtCore.Qt.GestureState:
-# class PySide2.QtCore.Qt.GestureType:
-# class PySide2.QtCore.Qt.GlobalColor:
-# class PySide2.QtCore.Qt.HighDpiScaleFactorRoundingPolicy:
-# class PySide2.QtCore.Qt.HitTestAccuracy:
-# class PySide2.QtCore.Qt.ImageConversionFlag:
-# class PySide2.QtCore.Qt.ImageConversionFlags:
-# class PySide2.QtCore.Qt.InputMethodHint:
-# class PySide2.QtCore.Qt.InputMethodHints:
-# class PySide2.QtCore.Qt.InputMethodQueries:
-# class PySide2.QtCore.Qt.InputMethodQuery:
-# class PySide2.QtCore.Qt.ItemDataRole:
-# class PySide2.QtCore.Qt.ItemFlag:
-# class PySide2.QtCore.Qt.ItemFlags:
-# class PySide2.QtCore.Qt.ItemSelectionMode:
-# class PySide2.QtCore.Qt.ItemSelectionOperation:
-# class PySide2.QtCore.Qt.Key:
-# class PySide2.QtCore.Qt.KeyboardModifier:
-# class PySide2.QtCore.Qt.KeyboardModifiers:
-# class PySide2.QtCore.Qt.LayoutDirection:
-# class PySide2.QtCore.Qt.MaskMode:
-# class PySide2.QtCore.Qt.MatchFlag:
-# class PySide2.QtCore.Qt.MatchFlags:
-# class PySide2.QtCore.Qt.Modifier:
-# class PySide2.QtCore.Qt.MouseButton:
-# class PySide2.QtCore.Qt.MouseButtons:
-# class PySide2.QtCore.Qt.MouseEventFlag:
-# class PySide2.QtCore.Qt.MouseEventFlags:
-# class PySide2.QtCore.Qt.MouseEventSource:
-# class PySide2.QtCore.Qt.NativeGestureType:
-# class PySide2.QtCore.Qt.NavigationMode:
-# class PySide2.QtCore.Qt.Orientation:
-# class PySide2.QtCore.Qt.Orientations:
-# class PySide2.QtCore.Qt.PenCapStyle:
-# class PySide2.QtCore.Qt.PenJoinStyle:
-# class PySide2.QtCore.Qt.PenStyle:
-# class PySide2.QtCore.Qt.ScreenOrientation:
-# class PySide2.QtCore.Qt.ScreenOrientations:
-# class PySide2.QtCore.Qt.ScrollBarPolicy:
-# class PySide2.QtCore.Qt.ScrollPhase:
-# class PySide2.QtCore.Qt.ShortcutContext:
-# class PySide2.QtCore.Qt.SizeHint:
-# class PySide2.QtCore.Qt.SizeMode:
-# class PySide2.QtCore.Qt.SortOrder:
-# class PySide2.QtCore.Qt.SplitBehavior:
-# class PySide2.QtCore.Qt.SplitBehaviorFlags:
-# class PySide2.QtCore.Qt.TabFocusBehavior:
-# class PySide2.QtCore.Qt.TextElideMode:
-# class PySide2.QtCore.Qt.TextFlag:
-# class PySide2.QtCore.Qt.TextFormat:
-# class PySide2.QtCore.Qt.TextInteractionFlag:
-# class PySide2.QtCore.Qt.TextInteractionFlags:
-# class PySide2.QtCore.Qt.TileRule:
-# class PySide2.QtCore.Qt.TimeSpec:
-# class PySide2.QtCore.Qt.TimerType:
-# class PySide2.QtCore.Qt.ToolBarArea:
-# class PySide2.QtCore.Qt.ToolBarAreaSizes:
-# class PySide2.QtCore.Qt.ToolBarAreas:
-# class PySide2.QtCore.Qt.ToolButtonStyle:
-# class PySide2.QtCore.Qt.TouchPointState:
-# class PySide2.QtCore.Qt.TouchPointStates:
-# class PySide2.QtCore.Qt.TransformationMode:
-# class PySide2.QtCore.Qt.UIEffect:
-# class PySide2.QtCore.Qt.WhiteSpaceMode:
-# class PySide2.QtCore.Qt.WidgetAttribute:
-# class PySide2.QtCore.Qt.WindowFlags:
-# class PySide2.QtCore.Qt.WindowFrameSection:
-# class PySide2.QtCore.Qt.WindowModality:
-# class PySide2.QtCore.Qt.WindowState:
-# class PySide2.QtCore.Qt.WindowStates:
-# class PySide2.QtCore.Qt.WindowType:
-# class PySide2.QtCore.QtMsgType:
-# class PySide2.QtCore.Signal:
- "PySide2.QtCore.Signal.__init__": ('type', 'str', 'str'),
-# class PySide2.QtCore.SignalInstance:
- "PySide2.QtCore.SignalInstance.connect": ('object', 'type'),
- "PySide2.QtCore.SignalInstance.disconnect": ('object',),
- "PySide2.QtCore.SignalInstance.emit": ('typing.Any',),
-# class PySide2.QtCore.Slot:
- "PySide2.QtCore.Slot.__init__": ('type', 'str', 'str'),
- "PySide2.QtCore.Slot.QT_TRANSLATE_NOOP": ('object', 'object'),
- "PySide2.QtCore.Slot.QT_TRANSLATE_NOOP3": ('object', 'object', 'object'),
- "PySide2.QtCore.Slot.QT_TRANSLATE_NOOP_UTF8": ('object',),
- "PySide2.QtCore.Slot.QT_TR_NOOP": ('object',),
- "PySide2.QtCore.Slot.QT_TR_NOOP_UTF8": ('object',),
- "PySide2.QtCore.Slot.SIGNAL": ('str',),
- "PySide2.QtCore.Slot.SLOT": ('str',),
- "PySide2.QtCore.Slot.__moduleShutdown": (),
- "PySide2.QtCore.Slot.qAbs": ('float',),
- "PySide2.QtCore.Slot.qAcos": ('float',),
- "PySide2.QtCore.Slot.qAddPostRoutine": ('object',),
- "PySide2.QtCore.Slot.qAsin": ('float',),
- "PySide2.QtCore.Slot.qAtan": ('float',),
- "PySide2.QtCore.Slot.qAtan2": ('float', 'float'),
- "PySide2.QtCore.Slot.qChecksum": ('str', 'int'),
- "PySide2.QtCore.Slot.qCompress": [('PySide2.QtCore.QByteArray', 'int'), ('str', 'int', 'int')],
- "PySide2.QtCore.Slot.qCritical": ('str',),
- "PySide2.QtCore.Slot.qDebug": ('str',),
- "PySide2.QtCore.Slot.qExp": ('float',),
- "PySide2.QtCore.Slot.qFabs": ('float',),
- "PySide2.QtCore.Slot.qFastCos": ('float',),
- "PySide2.QtCore.Slot.qFastSin": ('float',),
- "PySide2.QtCore.Slot.qFatal": ('str',),
- "PySide2.QtCore.Slot.qFuzzyCompare": ('float', 'float'),
- "PySide2.QtCore.Slot.qFuzzyIsNull": ('float',),
- "PySide2.QtCore.Slot.qInstallMessageHandler": ('object',),
- "PySide2.QtCore.Slot.qIsFinite": ('float',),
- "PySide2.QtCore.Slot.qIsInf": ('float',),
- "PySide2.QtCore.Slot.qIsNaN": ('float',),
- "PySide2.QtCore.Slot.qIsNull": ('float',),
- "PySide2.QtCore.Slot.qRegisterResourceData": ('int', 'str', 'str', 'str'),
- "PySide2.QtCore.Slot.qTan": ('float',),
- "PySide2.QtCore.Slot.qUncompress": [('PySide2.QtCore.QByteArray',), ('str', 'int')],
- "PySide2.QtCore.Slot.qUnregisterResourceData": ('int', 'str', 'str', 'str'),
- "PySide2.QtCore.Slot.qVersion": (),
- "PySide2.QtCore.Slot.qWarning": ('str',),
- "PySide2.QtCore.Slot.qrand": (),
- "PySide2.QtCore.Slot.qsrand": ('int',),
- "PySide2.QtCore.Slot.qtTrId": ('str', 'int'),
- }) if "PySide2.QtCore" in sys.modules else None
-# Module PySide2.QtGui
-sig_dict.update({
-# class PySide2.QtGui.QAbstractOpenGLFunctions:
- "PySide2.QtGui.QAbstractOpenGLFunctions.__init__": (),
- "PySide2.QtGui.QAbstractOpenGLFunctions.initializeOpenGLFunctions": (),
- "PySide2.QtGui.QAbstractOpenGLFunctions.isInitialized": (),
- "PySide2.QtGui.QAbstractOpenGLFunctions.owningContext": (),
- "PySide2.QtGui.QAbstractOpenGLFunctions.setOwningContext": ('PySide2.QtGui.QOpenGLContext',),
-# class PySide2.QtGui.QAbstractTextDocumentLayout:
-# class PySide2.QtGui.QAbstractTextDocumentLayout.PaintContext:
- "PySide2.QtGui.QAbstractTextDocumentLayout.PaintContext.__init__": [(), ('PySide2.QtGui.QAbstractTextDocumentLayout.PaintContext',)],
- "PySide2.QtGui.QAbstractTextDocumentLayout.PaintContext.__copy__": (),
-# class PySide2.QtGui.QAbstractTextDocumentLayout.Selection:
- "PySide2.QtGui.QAbstractTextDocumentLayout.Selection.__init__": [(), ('PySide2.QtGui.QAbstractTextDocumentLayout.Selection',)],
- "PySide2.QtGui.QAbstractTextDocumentLayout.Selection.__copy__": (),
- "PySide2.QtGui.QAbstractTextDocumentLayout.__init__": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.anchorAt": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.blockBoundingRect": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.blockWithMarkerAt": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.document": (),
- "PySide2.QtGui.QAbstractTextDocumentLayout.documentChanged": ('int', 'int', 'int'),
- "PySide2.QtGui.QAbstractTextDocumentLayout.documentSize": (),
- "PySide2.QtGui.QAbstractTextDocumentLayout.draw": ('PySide2.QtGui.QPainter', 'PySide2.QtGui.QAbstractTextDocumentLayout.PaintContext'),
- "PySide2.QtGui.QAbstractTextDocumentLayout.drawInlineObject": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF', 'PySide2.QtGui.QTextInlineObject', 'int', 'PySide2.QtGui.QTextFormat'),
- "PySide2.QtGui.QAbstractTextDocumentLayout.format": ('int',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.formatAt": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.formatIndex": ('int',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.frameBoundingRect": ('PySide2.QtGui.QTextFrame',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.handlerForObject": ('int',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.hitTest": ('PySide2.QtCore.QPointF', 'PySide2.QtCore.Qt.HitTestAccuracy'),
- "PySide2.QtGui.QAbstractTextDocumentLayout.imageAt": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.pageCount": (),
- "PySide2.QtGui.QAbstractTextDocumentLayout.paintDevice": (),
- "PySide2.QtGui.QAbstractTextDocumentLayout.positionInlineObject": ('PySide2.QtGui.QTextInlineObject', 'int', 'PySide2.QtGui.QTextFormat'),
- "PySide2.QtGui.QAbstractTextDocumentLayout.registerHandler": ('int', 'PySide2.QtCore.QObject'),
- "PySide2.QtGui.QAbstractTextDocumentLayout.resizeInlineObject": ('PySide2.QtGui.QTextInlineObject', 'int', 'PySide2.QtGui.QTextFormat'),
- "PySide2.QtGui.QAbstractTextDocumentLayout.setPaintDevice": ('PySide2.QtGui.QPaintDevice',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.unregisterHandler": ('int', 'PySide2.QtCore.QObject'),
-# class PySide2.QtGui.QAccessible:
-# class PySide2.QtGui.QAccessible.Event:
-# class PySide2.QtGui.QAccessible.InterfaceType:
-# class PySide2.QtGui.QAccessible.Relation:
-# class PySide2.QtGui.QAccessible.RelationFlag:
-# class PySide2.QtGui.QAccessible.Role:
-# class PySide2.QtGui.QAccessible.State:
- "PySide2.QtGui.QAccessible.State.__init__": [(), ('PySide2.QtGui.QAccessible.State',)],
- "PySide2.QtGui.QAccessible.State.__copy__": (),
-# class PySide2.QtGui.QAccessible.Text:
-# class PySide2.QtGui.QAccessible.TextBoundaryType:
- "PySide2.QtGui.QAccessible.__copy__": (),
- "PySide2.QtGui.QAccessible.accessibleInterface": ('int',),
- "PySide2.QtGui.QAccessible.cleanup": (),
- "PySide2.QtGui.QAccessible.deleteAccessibleInterface": ('int',),
- "PySide2.QtGui.QAccessible.isActive": (),
- "PySide2.QtGui.QAccessible.qAccessibleTextBoundaryHelper": ('PySide2.QtGui.QTextCursor', 'PySide2.QtGui.QAccessible.TextBoundaryType'),
- "PySide2.QtGui.QAccessible.queryAccessibleInterface": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QAccessible.registerAccessibleInterface": ('PySide2.QtGui.QAccessibleInterface',),
- "PySide2.QtGui.QAccessible.setActive": ('bool',),
- "PySide2.QtGui.QAccessible.setRootObject": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QAccessible.uniqueId": ('PySide2.QtGui.QAccessibleInterface',),
- "PySide2.QtGui.QAccessible.updateAccessibility": ('PySide2.QtGui.QAccessibleEvent',),
-# class PySide2.QtGui.QAccessibleEditableTextInterface:
- "PySide2.QtGui.QAccessibleEditableTextInterface.__init__": (),
- "PySide2.QtGui.QAccessibleEditableTextInterface.deleteText": ('int', 'int'),
- "PySide2.QtGui.QAccessibleEditableTextInterface.insertText": ('int', 'str'),
- "PySide2.QtGui.QAccessibleEditableTextInterface.replaceText": ('int', 'int', 'str'),
-# class PySide2.QtGui.QAccessibleEvent:
- "PySide2.QtGui.QAccessibleEvent.__init__": [('PySide2.QtCore.QObject', 'PySide2.QtGui.QAccessible.Event'), ('PySide2.QtGui.QAccessibleInterface', 'PySide2.QtGui.QAccessible.Event')],
- "PySide2.QtGui.QAccessibleEvent.accessibleInterface": (),
- "PySide2.QtGui.QAccessibleEvent.child": (),
- "PySide2.QtGui.QAccessibleEvent.object": (),
- "PySide2.QtGui.QAccessibleEvent.setChild": ('int',),
- "PySide2.QtGui.QAccessibleEvent.type": (),
- "PySide2.QtGui.QAccessibleEvent.uniqueId": (),
-# class PySide2.QtGui.QAccessibleInterface:
- "PySide2.QtGui.QAccessibleInterface.__init__": (),
- "PySide2.QtGui.QAccessibleInterface.backgroundColor": (),
- "PySide2.QtGui.QAccessibleInterface.child": ('int',),
- "PySide2.QtGui.QAccessibleInterface.childAt": ('int', 'int'),
- "PySide2.QtGui.QAccessibleInterface.childCount": (),
- "PySide2.QtGui.QAccessibleInterface.editableTextInterface": (),
- "PySide2.QtGui.QAccessibleInterface.focusChild": (),
- "PySide2.QtGui.QAccessibleInterface.foregroundColor": (),
- "PySide2.QtGui.QAccessibleInterface.indexOfChild": ('PySide2.QtGui.QAccessibleInterface',),
- "PySide2.QtGui.QAccessibleInterface.interface_cast": ('PySide2.QtGui.QAccessible.InterfaceType',),
- "PySide2.QtGui.QAccessibleInterface.isValid": (),
- "PySide2.QtGui.QAccessibleInterface.object": (),
- "PySide2.QtGui.QAccessibleInterface.parent": (),
- "PySide2.QtGui.QAccessibleInterface.rect": (),
- "PySide2.QtGui.QAccessibleInterface.relations": ('PySide2.QtGui.QAccessible.Relation',),
- "PySide2.QtGui.QAccessibleInterface.role": (),
- "PySide2.QtGui.QAccessibleInterface.setText": ('PySide2.QtGui.QAccessible.Text', 'str'),
- "PySide2.QtGui.QAccessibleInterface.state": (),
- "PySide2.QtGui.QAccessibleInterface.tableCellInterface": (),
- "PySide2.QtGui.QAccessibleInterface.text": ('PySide2.QtGui.QAccessible.Text',),
- "PySide2.QtGui.QAccessibleInterface.textInterface": (),
- "PySide2.QtGui.QAccessibleInterface.valueInterface": (),
- "PySide2.QtGui.QAccessibleInterface.virtual_hook": ('int', 'int'),
- "PySide2.QtGui.QAccessibleInterface.window": (),
-# class PySide2.QtGui.QAccessibleObject:
- "PySide2.QtGui.QAccessibleObject.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QAccessibleObject.childAt": ('int', 'int'),
- "PySide2.QtGui.QAccessibleObject.isValid": (),
- "PySide2.QtGui.QAccessibleObject.object": (),
- "PySide2.QtGui.QAccessibleObject.rect": (),
- "PySide2.QtGui.QAccessibleObject.setText": ('PySide2.QtGui.QAccessible.Text', 'str'),
-# class PySide2.QtGui.QAccessibleStateChangeEvent:
- "PySide2.QtGui.QAccessibleStateChangeEvent.__init__": [('PySide2.QtCore.QObject', 'PySide2.QtGui.QAccessible.State'), ('PySide2.QtGui.QAccessibleInterface', 'PySide2.QtGui.QAccessible.State')],
- "PySide2.QtGui.QAccessibleStateChangeEvent.changedStates": (),
-# class PySide2.QtGui.QAccessibleTableCellInterface:
- "PySide2.QtGui.QAccessibleTableCellInterface.__init__": (),
- "PySide2.QtGui.QAccessibleTableCellInterface.columnExtent": (),
- "PySide2.QtGui.QAccessibleTableCellInterface.columnHeaderCells": (),
- "PySide2.QtGui.QAccessibleTableCellInterface.columnIndex": (),
- "PySide2.QtGui.QAccessibleTableCellInterface.isSelected": (),
- "PySide2.QtGui.QAccessibleTableCellInterface.rowExtent": (),
- "PySide2.QtGui.QAccessibleTableCellInterface.rowHeaderCells": (),
- "PySide2.QtGui.QAccessibleTableCellInterface.rowIndex": (),
- "PySide2.QtGui.QAccessibleTableCellInterface.table": (),
-# class PySide2.QtGui.QAccessibleTableModelChangeEvent:
-# class PySide2.QtGui.QAccessibleTableModelChangeEvent.ModelChangeType:
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.__init__": [('PySide2.QtCore.QObject', 'PySide2.QtGui.QAccessibleTableModelChangeEvent.ModelChangeType'), ('PySide2.QtGui.QAccessibleInterface', 'PySide2.QtGui.QAccessibleTableModelChangeEvent.ModelChangeType')],
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.firstColumn": (),
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.firstRow": (),
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.lastColumn": (),
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.lastRow": (),
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.modelChangeType": (),
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.setFirstColumn": ('int',),
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.setFirstRow": ('int',),
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.setLastColumn": ('int',),
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.setLastRow": ('int',),
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.setModelChangeType": ('PySide2.QtGui.QAccessibleTableModelChangeEvent.ModelChangeType',),
-# class PySide2.QtGui.QAccessibleTextCursorEvent:
- "PySide2.QtGui.QAccessibleTextCursorEvent.__init__": [('PySide2.QtCore.QObject', 'int'), ('PySide2.QtGui.QAccessibleInterface', 'int')],
- "PySide2.QtGui.QAccessibleTextCursorEvent.cursorPosition": (),
- "PySide2.QtGui.QAccessibleTextCursorEvent.setCursorPosition": ('int',),
-# class PySide2.QtGui.QAccessibleTextInsertEvent:
- "PySide2.QtGui.QAccessibleTextInsertEvent.__init__": [('PySide2.QtCore.QObject', 'int', 'str'), ('PySide2.QtGui.QAccessibleInterface', 'int', 'str')],
- "PySide2.QtGui.QAccessibleTextInsertEvent.changePosition": (),
- "PySide2.QtGui.QAccessibleTextInsertEvent.textInserted": (),
-# class PySide2.QtGui.QAccessibleTextInterface:
- "PySide2.QtGui.QAccessibleTextInterface.__init__": (),
- "PySide2.QtGui.QAccessibleTextInterface.addSelection": ('int', 'int'),
- "PySide2.QtGui.QAccessibleTextInterface.attributes": ('int',),
- "PySide2.QtGui.QAccessibleTextInterface.characterCount": (),
- "PySide2.QtGui.QAccessibleTextInterface.characterRect": ('int',),
- "PySide2.QtGui.QAccessibleTextInterface.cursorPosition": (),
- "PySide2.QtGui.QAccessibleTextInterface.offsetAtPoint": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QAccessibleTextInterface.removeSelection": ('int',),
- "PySide2.QtGui.QAccessibleTextInterface.scrollToSubstring": ('int', 'int'),
- "PySide2.QtGui.QAccessibleTextInterface.selection": ('int',),
- "PySide2.QtGui.QAccessibleTextInterface.selectionCount": (),
- "PySide2.QtGui.QAccessibleTextInterface.setCursorPosition": ('int',),
- "PySide2.QtGui.QAccessibleTextInterface.setSelection": ('int', 'int', 'int'),
- "PySide2.QtGui.QAccessibleTextInterface.text": ('int', 'int'),
- "PySide2.QtGui.QAccessibleTextInterface.textAfterOffset": ('int', 'PySide2.QtGui.QAccessible.TextBoundaryType'),
- "PySide2.QtGui.QAccessibleTextInterface.textAtOffset": ('int', 'PySide2.QtGui.QAccessible.TextBoundaryType'),
- "PySide2.QtGui.QAccessibleTextInterface.textBeforeOffset": ('int', 'PySide2.QtGui.QAccessible.TextBoundaryType'),
-# class PySide2.QtGui.QAccessibleTextRemoveEvent:
- "PySide2.QtGui.QAccessibleTextRemoveEvent.__init__": [('PySide2.QtCore.QObject', 'int', 'str'), ('PySide2.QtGui.QAccessibleInterface', 'int', 'str')],
- "PySide2.QtGui.QAccessibleTextRemoveEvent.changePosition": (),
- "PySide2.QtGui.QAccessibleTextRemoveEvent.textRemoved": (),
-# class PySide2.QtGui.QAccessibleTextSelectionEvent:
- "PySide2.QtGui.QAccessibleTextSelectionEvent.__init__": [('PySide2.QtCore.QObject', 'int', 'int'), ('PySide2.QtGui.QAccessibleInterface', 'int', 'int')],
- "PySide2.QtGui.QAccessibleTextSelectionEvent.selectionEnd": (),
- "PySide2.QtGui.QAccessibleTextSelectionEvent.selectionStart": (),
- "PySide2.QtGui.QAccessibleTextSelectionEvent.setSelection": ('int', 'int'),
-# class PySide2.QtGui.QAccessibleTextUpdateEvent:
- "PySide2.QtGui.QAccessibleTextUpdateEvent.__init__": [('PySide2.QtCore.QObject', 'int', 'str', 'str'), ('PySide2.QtGui.QAccessibleInterface', 'int', 'str', 'str')],
- "PySide2.QtGui.QAccessibleTextUpdateEvent.changePosition": (),
- "PySide2.QtGui.QAccessibleTextUpdateEvent.textInserted": (),
- "PySide2.QtGui.QAccessibleTextUpdateEvent.textRemoved": (),
-# class PySide2.QtGui.QAccessibleValueChangeEvent:
- "PySide2.QtGui.QAccessibleValueChangeEvent.__init__": [('PySide2.QtCore.QObject', 'typing.Any'), ('PySide2.QtGui.QAccessibleInterface', 'typing.Any')],
- "PySide2.QtGui.QAccessibleValueChangeEvent.setValue": ('typing.Any',),
- "PySide2.QtGui.QAccessibleValueChangeEvent.value": (),
-# class PySide2.QtGui.QAccessibleValueInterface:
- "PySide2.QtGui.QAccessibleValueInterface.__init__": (),
- "PySide2.QtGui.QAccessibleValueInterface.currentValue": (),
- "PySide2.QtGui.QAccessibleValueInterface.maximumValue": (),
- "PySide2.QtGui.QAccessibleValueInterface.minimumStepSize": (),
- "PySide2.QtGui.QAccessibleValueInterface.minimumValue": (),
- "PySide2.QtGui.QAccessibleValueInterface.setCurrentValue": ('typing.Any',),
-# class PySide2.QtGui.QActionEvent:
-# class PySide2.QtGui.QBackingStore:
- "PySide2.QtGui.QBackingStore.__init__": ('PySide2.QtGui.QWindow',),
- "PySide2.QtGui.QBackingStore.beginPaint": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QBackingStore.endPaint": (),
- "PySide2.QtGui.QBackingStore.flush": ('PySide2.QtGui.QRegion', 'PySide2.QtGui.QWindow', 'PySide2.QtCore.QPoint'),
- "PySide2.QtGui.QBackingStore.hasStaticContents": (),
- "PySide2.QtGui.QBackingStore.paintDevice": (),
- "PySide2.QtGui.QBackingStore.resize": ('PySide2.QtCore.QSize',),
- "PySide2.QtGui.QBackingStore.scroll": ('PySide2.QtGui.QRegion', 'int', 'int'),
- "PySide2.QtGui.QBackingStore.setStaticContents": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QBackingStore.size": (),
- "PySide2.QtGui.QBackingStore.staticContents": (),
- "PySide2.QtGui.QBackingStore.window": (),
-# class PySide2.QtGui.QBitmap:
- "PySide2.QtGui.QBitmap.__init__": [(), ('PySide2.QtCore.QSize',), ('PySide2.QtGui.QBitmap',), ('PySide2.QtGui.QPixmap',), ('int', 'int'), ('str', 'str')],
- "PySide2.QtGui.QBitmap.__copy__": (),
- "PySide2.QtGui.QBitmap.clear": (),
- "PySide2.QtGui.QBitmap.fromData": ('PySide2.QtCore.QSize', 'str', 'PySide2.QtGui.QImage.Format'),
- "PySide2.QtGui.QBitmap.fromImage": ('PySide2.QtGui.QImage', 'PySide2.QtCore.Qt.ImageConversionFlags'),
- "PySide2.QtGui.QBitmap.swap": [('PySide2.QtGui.QBitmap',), ('PySide2.QtGui.QPixmap',)],
- "PySide2.QtGui.QBitmap.transformed": [('PySide2.QtGui.QMatrix',), ('PySide2.QtGui.QMatrix', 'PySide2.QtCore.Qt.TransformationMode'), ('PySide2.QtGui.QTransform',)],
-# class PySide2.QtGui.QBrush:
- "PySide2.QtGui.QBrush.__init__": [(), ('PySide2.QtCore.Qt.BrushStyle',), ('PySide2.QtCore.Qt.GlobalColor', 'PySide2.QtCore.Qt.BrushStyle'), ('PySide2.QtCore.Qt.GlobalColor', 'PySide2.QtGui.QPixmap'), ('PySide2.QtGui.QBrush',), ('PySide2.QtGui.QColor', 'PySide2.QtCore.Qt.BrushStyle'), ('PySide2.QtGui.QColor', 'PySide2.QtGui.QPixmap'), ('PySide2.QtGui.QGradient',), ('PySide2.QtGui.QImage',), ('PySide2.QtGui.QPixmap',)],
- "PySide2.QtGui.QBrush.__copy__": (),
- "PySide2.QtGui.QBrush.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QBrush.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QBrush.color": (),
- "PySide2.QtGui.QBrush.gradient": (),
- "PySide2.QtGui.QBrush.isOpaque": (),
- "PySide2.QtGui.QBrush.matrix": (),
- "PySide2.QtGui.QBrush.setColor": [('PySide2.QtCore.Qt.GlobalColor',), ('PySide2.QtGui.QColor',)],
- "PySide2.QtGui.QBrush.setMatrix": ('PySide2.QtGui.QMatrix',),
- "PySide2.QtGui.QBrush.setStyle": ('PySide2.QtCore.Qt.BrushStyle',),
- "PySide2.QtGui.QBrush.setTexture": ('PySide2.QtGui.QPixmap',),
- "PySide2.QtGui.QBrush.setTextureImage": ('PySide2.QtGui.QImage',),
- "PySide2.QtGui.QBrush.setTransform": ('PySide2.QtGui.QTransform',),
- "PySide2.QtGui.QBrush.style": (),
- "PySide2.QtGui.QBrush.swap": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QBrush.texture": (),
- "PySide2.QtGui.QBrush.textureImage": (),
- "PySide2.QtGui.QBrush.transform": (),
-# class PySide2.QtGui.QClipboard:
-# class PySide2.QtGui.QClipboard.Mode:
- "PySide2.QtGui.QClipboard.clear": ('PySide2.QtGui.QClipboard.Mode',),
- "PySide2.QtGui.QClipboard.image": ('PySide2.QtGui.QClipboard.Mode',),
- "PySide2.QtGui.QClipboard.mimeData": ('PySide2.QtGui.QClipboard.Mode',),
- "PySide2.QtGui.QClipboard.ownsClipboard": (),
- "PySide2.QtGui.QClipboard.ownsFindBuffer": (),
- "PySide2.QtGui.QClipboard.ownsSelection": (),
- "PySide2.QtGui.QClipboard.pixmap": ('PySide2.QtGui.QClipboard.Mode',),
- "PySide2.QtGui.QClipboard.setImage": ('PySide2.QtGui.QImage', 'PySide2.QtGui.QClipboard.Mode'),
- "PySide2.QtGui.QClipboard.setMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtGui.QClipboard.Mode'),
- "PySide2.QtGui.QClipboard.setPixmap": ('PySide2.QtGui.QPixmap', 'PySide2.QtGui.QClipboard.Mode'),
- "PySide2.QtGui.QClipboard.setText": ('str', 'PySide2.QtGui.QClipboard.Mode'),
- "PySide2.QtGui.QClipboard.supportsFindBuffer": (),
- "PySide2.QtGui.QClipboard.supportsSelection": (),
- "PySide2.QtGui.QClipboard.text": [('PySide2.QtGui.QClipboard.Mode',), ('str', 'PySide2.QtGui.QClipboard.Mode')],
-# class PySide2.QtGui.QCloseEvent:
- "PySide2.QtGui.QCloseEvent.__init__": (),
-# class PySide2.QtGui.QColor:
-# class PySide2.QtGui.QColor.NameFormat:
-# class PySide2.QtGui.QColor.Spec:
- "PySide2.QtGui.QColor.__init__": [(), ('PySide2.QtCore.Qt.GlobalColor',), ('PySide2.QtGui.QColor',), ('PySide2.QtGui.QColor.Spec', 'int', 'int', 'int', 'int', 'int'), ('int',), ('int', 'int', 'int', 'int'), ('str',), ('typing.Any',)],
- "PySide2.QtGui.QColor.__copy__": (),
- "PySide2.QtGui.QColor.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QColor.__reduce__": (),
- "PySide2.QtGui.QColor.__repr__": (),
- "PySide2.QtGui.QColor.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QColor.__setstate__": ('object',),
- "PySide2.QtGui.QColor.__str__": (),
- "PySide2.QtGui.QColor.alpha": (),
- "PySide2.QtGui.QColor.alphaF": (),
- "PySide2.QtGui.QColor.black": (),
- "PySide2.QtGui.QColor.blackF": (),
- "PySide2.QtGui.QColor.blue": (),
- "PySide2.QtGui.QColor.blueF": (),
- "PySide2.QtGui.QColor.colorNames": (),
- "PySide2.QtGui.QColor.convertTo": ('PySide2.QtGui.QColor.Spec',),
- "PySide2.QtGui.QColor.cyan": (),
- "PySide2.QtGui.QColor.cyanF": (),
- "PySide2.QtGui.QColor.dark": ('int',),
- "PySide2.QtGui.QColor.darker": ('int',),
- "PySide2.QtGui.QColor.fromCmyk": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QColor.fromCmykF": ('float', 'float', 'float', 'float', 'float'),
- "PySide2.QtGui.QColor.fromHsl": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QColor.fromHslF": ('float', 'float', 'float', 'float'),
- "PySide2.QtGui.QColor.fromHsv": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QColor.fromHsvF": ('float', 'float', 'float', 'float'),
- "PySide2.QtGui.QColor.fromRgb": [('int',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QColor.fromRgbF": ('float', 'float', 'float', 'float'),
- "PySide2.QtGui.QColor.fromRgba": ('int',),
- "PySide2.QtGui.QColor.fromRgba64": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QColor.getCmyk": (),
- "PySide2.QtGui.QColor.getCmykF": (),
- "PySide2.QtGui.QColor.getHsl": (),
- "PySide2.QtGui.QColor.getHslF": (),
- "PySide2.QtGui.QColor.getHsv": (),
- "PySide2.QtGui.QColor.getHsvF": (),
- "PySide2.QtGui.QColor.getRgb": (),
- "PySide2.QtGui.QColor.getRgbF": (),
- "PySide2.QtGui.QColor.green": (),
- "PySide2.QtGui.QColor.greenF": (),
- "PySide2.QtGui.QColor.hslHue": (),
- "PySide2.QtGui.QColor.hslHueF": (),
- "PySide2.QtGui.QColor.hslSaturation": (),
- "PySide2.QtGui.QColor.hslSaturationF": (),
- "PySide2.QtGui.QColor.hsvHue": (),
- "PySide2.QtGui.QColor.hsvHueF": (),
- "PySide2.QtGui.QColor.hsvSaturation": (),
- "PySide2.QtGui.QColor.hsvSaturationF": (),
- "PySide2.QtGui.QColor.hue": (),
- "PySide2.QtGui.QColor.hueF": (),
- "PySide2.QtGui.QColor.isValid": (),
- "PySide2.QtGui.QColor.isValidColor": ('str',),
- "PySide2.QtGui.QColor.light": ('int',),
- "PySide2.QtGui.QColor.lighter": ('int',),
- "PySide2.QtGui.QColor.lightness": (),
- "PySide2.QtGui.QColor.lightnessF": (),
- "PySide2.QtGui.QColor.magenta": (),
- "PySide2.QtGui.QColor.magentaF": (),
- "PySide2.QtGui.QColor.name": [(), ('PySide2.QtGui.QColor.NameFormat',)],
- "PySide2.QtGui.QColor.red": (),
- "PySide2.QtGui.QColor.redF": (),
- "PySide2.QtGui.QColor.rgb": (),
- "PySide2.QtGui.QColor.rgba": (),
- "PySide2.QtGui.QColor.saturation": (),
- "PySide2.QtGui.QColor.saturationF": (),
- "PySide2.QtGui.QColor.setAlpha": ('int',),
- "PySide2.QtGui.QColor.setAlphaF": ('float',),
- "PySide2.QtGui.QColor.setBlue": ('int',),
- "PySide2.QtGui.QColor.setBlueF": ('float',),
- "PySide2.QtGui.QColor.setCmyk": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QColor.setCmykF": ('float', 'float', 'float', 'float', 'float'),
- "PySide2.QtGui.QColor.setGreen": ('int',),
- "PySide2.QtGui.QColor.setGreenF": ('float',),
- "PySide2.QtGui.QColor.setHsl": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QColor.setHslF": ('float', 'float', 'float', 'float'),
- "PySide2.QtGui.QColor.setHsv": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QColor.setHsvF": ('float', 'float', 'float', 'float'),
- "PySide2.QtGui.QColor.setNamedColor": ('str',),
- "PySide2.QtGui.QColor.setRed": ('int',),
- "PySide2.QtGui.QColor.setRedF": ('float',),
- "PySide2.QtGui.QColor.setRgb": [('int',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QColor.setRgbF": ('float', 'float', 'float', 'float'),
- "PySide2.QtGui.QColor.setRgba": ('int',),
- "PySide2.QtGui.QColor.spec": (),
- "PySide2.QtGui.QColor.toCmyk": (),
- "PySide2.QtGui.QColor.toExtendedRgb": (),
- "PySide2.QtGui.QColor.toHsl": (),
- "PySide2.QtGui.QColor.toHsv": (),
- "PySide2.QtGui.QColor.toRgb": (),
- "PySide2.QtGui.QColor.toTuple": (),
- "PySide2.QtGui.QColor.value": (),
- "PySide2.QtGui.QColor.valueF": (),
- "PySide2.QtGui.QColor.yellow": (),
- "PySide2.QtGui.QColor.yellowF": (),
-# class PySide2.QtGui.QColorSpace:
-# class PySide2.QtGui.QColorSpace.NamedColorSpace:
-# class PySide2.QtGui.QColorSpace.Primaries:
-# class PySide2.QtGui.QColorSpace.TransferFunction:
- "PySide2.QtGui.QColorSpace.__init__": [(), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtGui.QColorSpace.TransferFunction', 'float'), ('PySide2.QtGui.QColorSpace',), ('PySide2.QtGui.QColorSpace.NamedColorSpace',), ('PySide2.QtGui.QColorSpace.Primaries', 'PySide2.QtGui.QColorSpace.TransferFunction', 'float'), ('PySide2.QtGui.QColorSpace.Primaries', 'float')],
- "PySide2.QtGui.QColorSpace.__copy__": (),
- "PySide2.QtGui.QColorSpace.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QColorSpace.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QColorSpace.fromIccProfile": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QColorSpace.gamma": (),
- "PySide2.QtGui.QColorSpace.iccProfile": (),
- "PySide2.QtGui.QColorSpace.isValid": (),
- "PySide2.QtGui.QColorSpace.primaries": (),
- "PySide2.QtGui.QColorSpace.setPrimaries": [('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'), ('PySide2.QtGui.QColorSpace.Primaries',)],
- "PySide2.QtGui.QColorSpace.setTransferFunction": ('PySide2.QtGui.QColorSpace.TransferFunction', 'float'),
- "PySide2.QtGui.QColorSpace.swap": ('PySide2.QtGui.QColorSpace',),
- "PySide2.QtGui.QColorSpace.transferFunction": (),
- "PySide2.QtGui.QColorSpace.withTransferFunction": ('PySide2.QtGui.QColorSpace.TransferFunction', 'float'),
-# class PySide2.QtGui.QConicalGradient:
- "PySide2.QtGui.QConicalGradient.__init__": [(), ('PySide2.QtCore.QPointF', 'float'), ('PySide2.QtGui.QConicalGradient',), ('float', 'float', 'float')],
- "PySide2.QtGui.QConicalGradient.__copy__": (),
- "PySide2.QtGui.QConicalGradient.angle": (),
- "PySide2.QtGui.QConicalGradient.center": (),
- "PySide2.QtGui.QConicalGradient.setAngle": ('float',),
- "PySide2.QtGui.QConicalGradient.setCenter": [('PySide2.QtCore.QPointF',), ('float', 'float')],
-# class PySide2.QtGui.QContextMenuEvent:
-# class PySide2.QtGui.QContextMenuEvent.Reason:
- "PySide2.QtGui.QContextMenuEvent.__init__": [('PySide2.QtGui.QContextMenuEvent.Reason', 'PySide2.QtCore.QPoint'), ('PySide2.QtGui.QContextMenuEvent.Reason', 'PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint'), ('PySide2.QtGui.QContextMenuEvent.Reason', 'PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint', 'PySide2.QtCore.Qt.KeyboardModifiers')],
- "PySide2.QtGui.QContextMenuEvent.globalPos": (),
- "PySide2.QtGui.QContextMenuEvent.globalX": (),
- "PySide2.QtGui.QContextMenuEvent.global""Y": (),
- "PySide2.QtGui.QContextMenuEvent.pos": (),
- "PySide2.QtGui.QContextMenuEvent.reason": (),
- "PySide2.QtGui.QContextMenuEvent.x": (),
- "PySide2.QtGui.QContextMenuEvent.y": (),
-# class PySide2.QtGui.QCursor:
- "PySide2.QtGui.QCursor.__init__": [(), ('PySide2.QtCore.Qt.CursorShape',), ('PySide2.QtGui.QBitmap', 'PySide2.QtGui.QBitmap', 'int', 'int'), ('PySide2.QtGui.QCursor',), ('PySide2.QtGui.QPixmap', 'int', 'int')],
- "PySide2.QtGui.QCursor.__copy__": (),
- "PySide2.QtGui.QCursor.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QCursor.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QCursor.bitmap": (),
- "PySide2.QtGui.QCursor.hotSpot": (),
- "PySide2.QtGui.QCursor.mask": (),
- "PySide2.QtGui.QCursor.pixmap": (),
- "PySide2.QtGui.QCursor.pos": [(), ('PySide2.QtGui.QScreen',)],
- "PySide2.QtGui.QCursor.setPos": [('PySide2.QtCore.QPoint',), ('PySide2.QtGui.QScreen', 'PySide2.QtCore.QPoint'), ('PySide2.QtGui.QScreen', 'int', 'int'), ('int', 'int')],
- "PySide2.QtGui.QCursor.setShape": ('PySide2.QtCore.Qt.CursorShape',),
- "PySide2.QtGui.QCursor.shape": (),
- "PySide2.QtGui.QCursor.swap": ('PySide2.QtGui.QCursor',),
-# class PySide2.QtGui.QDesktopServices:
- "PySide2.QtGui.QDesktopServices.__init__": (),
- "PySide2.QtGui.QDesktopServices.openUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtGui.QDesktopServices.setUrlHandler": ('str', 'PySide2.QtCore.QObject', 'str'),
- "PySide2.QtGui.QDesktopServices.unsetUrlHandler": ('str',),
-# class PySide2.QtGui.QDoubleValidator:
-# class PySide2.QtGui.QDoubleValidator.Notation:
- "PySide2.QtGui.QDoubleValidator.__init__": [('PySide2.QtCore.QObject',), ('float', 'float', 'int', 'PySide2.QtCore.QObject')],
- "PySide2.QtGui.QDoubleValidator.bottom": (),
- "PySide2.QtGui.QDoubleValidator.decimals": (),
- "PySide2.QtGui.QDoubleValidator.notation": (),
- "PySide2.QtGui.QDoubleValidator.setBottom": ('float',),
- "PySide2.QtGui.QDoubleValidator.setDecimals": ('int',),
- "PySide2.QtGui.QDoubleValidator.setNotation": ('PySide2.QtGui.QDoubleValidator.Notation',),
- "PySide2.QtGui.QDoubleValidator.setRange": ('float', 'float', 'int'),
- "PySide2.QtGui.QDoubleValidator.setTop": ('float',),
- "PySide2.QtGui.QDoubleValidator.top": (),
- "PySide2.QtGui.QDoubleValidator.validate": ('str', 'int'),
-# class PySide2.QtGui.QDrag:
- "PySide2.QtGui.QDrag.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QDrag.cancel": (),
- "PySide2.QtGui.QDrag.defaultAction": (),
- "PySide2.QtGui.QDrag.dragCursor": ('PySide2.QtCore.Qt.DropAction',),
- "PySide2.QtGui.QDrag.exec_": [('PySide2.QtCore.Qt.DropActions',), ('PySide2.QtCore.Qt.DropActions', 'PySide2.QtCore.Qt.DropAction')],
- "PySide2.QtGui.QDrag.hotSpot": (),
- "PySide2.QtGui.QDrag.mimeData": (),
- "PySide2.QtGui.QDrag.pixmap": (),
- "PySide2.QtGui.QDrag.setDragCursor": ('PySide2.QtGui.QPixmap', 'PySide2.QtCore.Qt.DropAction'),
- "PySide2.QtGui.QDrag.setHotSpot": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QDrag.setMimeData": ('PySide2.QtCore.QMimeData',),
- "PySide2.QtGui.QDrag.setPixmap": ('PySide2.QtGui.QPixmap',),
- "PySide2.QtGui.QDrag.source": (),
- "PySide2.QtGui.QDrag.start": ('PySide2.QtCore.Qt.DropActions',),
- "PySide2.QtGui.QDrag.supportedActions": (),
- "PySide2.QtGui.QDrag.target": (),
-# class PySide2.QtGui.QDragEnterEvent:
- "PySide2.QtGui.QDragEnterEvent.__init__": ('PySide2.QtCore.QPoint', 'PySide2.QtCore.Qt.DropActions', 'PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers'),
-# class PySide2.QtGui.QDragLeaveEvent:
- "PySide2.QtGui.QDragLeaveEvent.__init__": (),
-# class PySide2.QtGui.QDragMoveEvent:
- "PySide2.QtGui.QDragMoveEvent.__init__": ('PySide2.QtCore.QPoint', 'PySide2.QtCore.Qt.DropActions', 'PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QEvent.Type'),
- "PySide2.QtGui.QDragMoveEvent.accept": [(), ('PySide2.QtCore.QRect',)],
- "PySide2.QtGui.QDragMoveEvent.answerRect": (),
- "PySide2.QtGui.QDragMoveEvent.ignore": [(), ('PySide2.QtCore.QRect',)],
-# class PySide2.QtGui.QDropEvent:
- "PySide2.QtGui.QDropEvent.__init__": ('PySide2.QtCore.QPointF', 'PySide2.QtCore.Qt.DropActions', 'PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QEvent.Type'),
- "PySide2.QtGui.QDropEvent.acceptProposedAction": (),
- "PySide2.QtGui.QDropEvent.dropAction": (),
- "PySide2.QtGui.QDropEvent.keyboardModifiers": (),
- "PySide2.QtGui.QDropEvent.mimeData": (),
- "PySide2.QtGui.QDropEvent.mouseButtons": (),
- "PySide2.QtGui.QDropEvent.pos": (),
- "PySide2.QtGui.QDropEvent.posF": (),
- "PySide2.QtGui.QDropEvent.possibleActions": (),
- "PySide2.QtGui.QDropEvent.proposedAction": (),
- "PySide2.QtGui.QDropEvent.setDropAction": ('PySide2.QtCore.Qt.DropAction',),
- "PySide2.QtGui.QDropEvent.source": (),
-# class PySide2.QtGui.QEnterEvent:
- "PySide2.QtGui.QEnterEvent.__init__": ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'),
- "PySide2.QtGui.QEnterEvent.globalPos": (),
- "PySide2.QtGui.QEnterEvent.globalX": (),
- "PySide2.QtGui.QEnterEvent.global""Y": (),
- "PySide2.QtGui.QEnterEvent.localPos": (),
- "PySide2.QtGui.QEnterEvent.pos": (),
- "PySide2.QtGui.QEnterEvent.screenPos": (),
- "PySide2.QtGui.QEnterEvent.windowPos": (),
- "PySide2.QtGui.QEnterEvent.x": (),
- "PySide2.QtGui.QEnterEvent.y": (),
-# class PySide2.QtGui.QExposeEvent:
- "PySide2.QtGui.QExposeEvent.__init__": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QExposeEvent.region": (),
-# class PySide2.QtGui.QFileOpenEvent:
- "PySide2.QtGui.QFileOpenEvent.__init__": [('PySide2.QtCore.QUrl',), ('str',)],
- "PySide2.QtGui.QFileOpenEvent.file": (),
- "PySide2.QtGui.QFileOpenEvent.openFile": ('PySide2.QtCore.QFile', 'PySide2.QtCore.QIODevice.OpenMode'),
- "PySide2.QtGui.QFileOpenEvent.url": (),
-# class PySide2.QtGui.QFocusEvent:
- "PySide2.QtGui.QFocusEvent.__init__": ('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.Qt.FocusReason'),
- "PySide2.QtGui.QFocusEvent.gotFocus": (),
- "PySide2.QtGui.QFocusEvent.lostFocus": (),
- "PySide2.QtGui.QFocusEvent.reason": (),
-# class PySide2.QtGui.QFont:
-# class PySide2.QtGui.QFont.Capitalization:
-# class PySide2.QtGui.QFont.HintingPreference:
-# class PySide2.QtGui.QFont.SpacingType:
-# class PySide2.QtGui.QFont.Stretch:
-# class PySide2.QtGui.QFont.Style:
-# class PySide2.QtGui.QFont.StyleHint:
-# class PySide2.QtGui.QFont.StyleStrategy:
-# class PySide2.QtGui.QFont.Weight:
- "PySide2.QtGui.QFont.__init__": [(), ('PySide2.QtGui.QFont',), ('PySide2.QtGui.QFont', 'PySide2.QtGui.QPaintDevice'), ('str', 'int', 'int', 'bool')],
- "PySide2.QtGui.QFont.__copy__": (),
- "PySide2.QtGui.QFont.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QFont.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QFont.bold": (),
- "PySide2.QtGui.QFont.cacheStatistics": (),
- "PySide2.QtGui.QFont.capitalization": (),
- "PySide2.QtGui.QFont.cleanup": (),
- "PySide2.QtGui.QFont.defaultFamily": (),
- "PySide2.QtGui.QFont.exactMatch": (),
- "PySide2.QtGui.QFont.families": (),
- "PySide2.QtGui.QFont.family": (),
- "PySide2.QtGui.QFont.fixedPitch": (),
- "PySide2.QtGui.QFont.fromString": ('str',),
- "PySide2.QtGui.QFont.hintingPreference": (),
- "PySide2.QtGui.QFont.initialize": (),
- "PySide2.QtGui.QFont.insertSubstitution": ('str', 'str'),
- "PySide2.QtGui.QFont.insertSubstitutions": ('str', 'typing.Sequence[str]'),
- "PySide2.QtGui.QFont.isCopyOf": ('PySide2.QtGui.QFont',),
- "PySide2.QtGui.QFont.italic": (),
- "PySide2.QtGui.QFont.kerning": (),
- "PySide2.QtGui.QFont.key": (),
- "PySide2.QtGui.QFont.lastResortFamily": (),
- "PySide2.QtGui.QFont.lastResortFont": (),
- "PySide2.QtGui.QFont.letterSpacing": (),
- "PySide2.QtGui.QFont.letterSpacingType": (),
- "PySide2.QtGui.QFont.overline": (),
- "PySide2.QtGui.QFont.pixelSize": (),
- "PySide2.QtGui.QFont.pointSize": (),
- "PySide2.QtGui.QFont.pointSizeF": (),
- "PySide2.QtGui.QFont.rawMode": (),
- "PySide2.QtGui.QFont.rawName": (),
- "PySide2.QtGui.QFont.removeSubstitutions": ('str',),
- "PySide2.QtGui.QFont.resolve": [(), ('PySide2.QtGui.QFont',), ('int',)],
- "PySide2.QtGui.QFont.setBold": ('bool',),
- "PySide2.QtGui.QFont.setCapitalization": ('PySide2.QtGui.QFont.Capitalization',),
- "PySide2.QtGui.QFont.setFamilies": ('typing.Sequence[str]',),
- "PySide2.QtGui.QFont.setFamily": ('str',),
- "PySide2.QtGui.QFont.setFixedPitch": ('bool',),
- "PySide2.QtGui.QFont.setHintingPreference": ('PySide2.QtGui.QFont.HintingPreference',),
- "PySide2.QtGui.QFont.setItalic": ('bool',),
- "PySide2.QtGui.QFont.setKerning": ('bool',),
- "PySide2.QtGui.QFont.setLetterSpacing": ('PySide2.QtGui.QFont.SpacingType', 'float'),
- "PySide2.QtGui.QFont.setOverline": ('bool',),
- "PySide2.QtGui.QFont.setPixelSize": ('int',),
- "PySide2.QtGui.QFont.setPointSize": ('int',),
- "PySide2.QtGui.QFont.setPointSizeF": ('float',),
- "PySide2.QtGui.QFont.setRawMode": ('bool',),
- "PySide2.QtGui.QFont.setRawName": ('str',),
- "PySide2.QtGui.QFont.setStretch": ('int',),
- "PySide2.QtGui.QFont.setStrikeOut": ('bool',),
- "PySide2.QtGui.QFont.setStyle": ('PySide2.QtGui.QFont.Style',),
- "PySide2.QtGui.QFont.setStyleHint": ('PySide2.QtGui.QFont.StyleHint', 'PySide2.QtGui.QFont.StyleStrategy'),
- "PySide2.QtGui.QFont.setStyleName": ('str',),
- "PySide2.QtGui.QFont.setStyleStrategy": ('PySide2.QtGui.QFont.StyleStrategy',),
- "PySide2.QtGui.QFont.setUnderline": ('bool',),
- "PySide2.QtGui.QFont.setWeight": ('int',),
- "PySide2.QtGui.QFont.setWordSpacing": ('float',),
- "PySide2.QtGui.QFont.stretch": (),
- "PySide2.QtGui.QFont.strikeOut": (),
- "PySide2.QtGui.QFont.style": (),
- "PySide2.QtGui.QFont.styleHint": (),
- "PySide2.QtGui.QFont.styleName": (),
- "PySide2.QtGui.QFont.styleStrategy": (),
- "PySide2.QtGui.QFont.substitute": ('str',),
- "PySide2.QtGui.QFont.substitutes": ('str',),
- "PySide2.QtGui.QFont.substitutions": (),
- "PySide2.QtGui.QFont.swap": ('PySide2.QtGui.QFont',),
- "PySide2.QtGui.QFont.toString": (),
- "PySide2.QtGui.QFont.underline": (),
- "PySide2.QtGui.QFont.weight": (),
- "PySide2.QtGui.QFont.wordSpacing": (),
-# class PySide2.QtGui.QFontDatabase:
-# class PySide2.QtGui.QFontDatabase.SystemFont:
-# class PySide2.QtGui.QFontDatabase.WritingSystem:
- "PySide2.QtGui.QFontDatabase.__init__": [(), ('PySide2.QtGui.QFontDatabase',)],
- "PySide2.QtGui.QFontDatabase.__copy__": (),
- "PySide2.QtGui.QFontDatabase.addApplicationFont": ('str',),
- "PySide2.QtGui.QFontDatabase.addApplicationFontFromData": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QFontDatabase.applicationFontFamilies": ('int',),
- "PySide2.QtGui.QFontDatabase.bold": ('str', 'str'),
- "PySide2.QtGui.QFontDatabase.families": ('PySide2.QtGui.QFontDatabase.WritingSystem',),
- "PySide2.QtGui.QFontDatabase.font": ('str', 'str', 'int'),
- "PySide2.QtGui.QFontDatabase.hasFamily": ('str',),
- "PySide2.QtGui.QFontDatabase.isBitmapScalable": ('str', 'str'),
- "PySide2.QtGui.QFontDatabase.isFixedPitch": ('str', 'str'),
- "PySide2.QtGui.QFontDatabase.isPrivateFamily": ('str',),
- "PySide2.QtGui.QFontDatabase.isScalable": ('str', 'str'),
- "PySide2.QtGui.QFontDatabase.isSmoothlyScalable": ('str', 'str'),
- "PySide2.QtGui.QFontDatabase.italic": ('str', 'str'),
- "PySide2.QtGui.QFontDatabase.pointSizes": ('str', 'str'),
- "PySide2.QtGui.QFontDatabase.removeAllApplicationFonts": (),
- "PySide2.QtGui.QFontDatabase.removeApplicationFont": ('int',),
- "PySide2.QtGui.QFontDatabase.smoothSizes": ('str', 'str'),
- "PySide2.QtGui.QFontDatabase.standardSizes": (),
- "PySide2.QtGui.QFontDatabase.styleString": [('PySide2.QtGui.QFont',), ('PySide2.QtGui.QFontInfo',)],
- "PySide2.QtGui.QFontDatabase.styles": ('str',),
- "PySide2.QtGui.QFontDatabase.supportsThreadedFontRendering": (),
- "PySide2.QtGui.QFontDatabase.systemFont": ('PySide2.QtGui.QFontDatabase.SystemFont',),
- "PySide2.QtGui.QFontDatabase.weight": ('str', 'str'),
- "PySide2.QtGui.QFontDatabase.writingSystemName": ('PySide2.QtGui.QFontDatabase.WritingSystem',),
- "PySide2.QtGui.QFontDatabase.writingSystemSample": ('PySide2.QtGui.QFontDatabase.WritingSystem',),
- "PySide2.QtGui.QFontDatabase.writingSystems": [(), ('str',)],
-# class PySide2.QtGui.QFontInfo:
- "PySide2.QtGui.QFontInfo.__init__": [('PySide2.QtGui.QFont',), ('PySide2.QtGui.QFontInfo',)],
- "PySide2.QtGui.QFontInfo.__copy__": (),
- "PySide2.QtGui.QFontInfo.bold": (),
- "PySide2.QtGui.QFontInfo.exactMatch": (),
- "PySide2.QtGui.QFontInfo.family": (),
- "PySide2.QtGui.QFontInfo.fixedPitch": (),
- "PySide2.QtGui.QFontInfo.italic": (),
- "PySide2.QtGui.QFontInfo.overline": (),
- "PySide2.QtGui.QFontInfo.pixelSize": (),
- "PySide2.QtGui.QFontInfo.pointSize": (),
- "PySide2.QtGui.QFontInfo.pointSizeF": (),
- "PySide2.QtGui.QFontInfo.rawMode": (),
- "PySide2.QtGui.QFontInfo.strikeOut": (),
- "PySide2.QtGui.QFontInfo.style": (),
- "PySide2.QtGui.QFontInfo.styleHint": (),
- "PySide2.QtGui.QFontInfo.styleName": (),
- "PySide2.QtGui.QFontInfo.swap": ('PySide2.QtGui.QFontInfo',),
- "PySide2.QtGui.QFontInfo.underline": (),
- "PySide2.QtGui.QFontInfo.weight": (),
-# class PySide2.QtGui.QFontMetrics:
- "PySide2.QtGui.QFontMetrics.__init__": [('PySide2.QtGui.QFont',), ('PySide2.QtGui.QFont', 'PySide2.QtGui.QPaintDevice'), ('PySide2.QtGui.QFontMetrics',)],
- "PySide2.QtGui.QFontMetrics.__copy__": (),
- "PySide2.QtGui.QFontMetrics.ascent": (),
- "PySide2.QtGui.QFontMetrics.averageCharWidth": (),
- "PySide2.QtGui.QFontMetrics.boundingRect": [('PySide2.QtCore.QRect', 'int', 'str', 'int', 'shibokensupport.typing27.Sequence'), ('int', 'int', 'int', 'int', 'int', 'str', 'int', 'shibokensupport.typing27.Sequence'), ('str',)],
- "PySide2.QtGui.QFontMetrics.boundingRectChar": ('str',),
- "PySide2.QtGui.QFontMetrics.capHeight": (),
- "PySide2.QtGui.QFontMetrics.charWidth": ('str', 'int'),
- "PySide2.QtGui.QFontMetrics.descent": (),
- "PySide2.QtGui.QFontMetrics.elidedText": ('str', 'PySide2.QtCore.Qt.TextElideMode', 'int', 'int'),
- "PySide2.QtGui.QFontMetrics.fontDpi": (),
- "PySide2.QtGui.QFontMetrics.height": (),
- "PySide2.QtGui.QFontMetrics.horizontalAdvance": [('str',), ('str', 'int')],
- "PySide2.QtGui.QFontMetrics.inFont": ('str',),
- "PySide2.QtGui.QFontMetrics.inFontUcs4": ('int',),
- "PySide2.QtGui.QFontMetrics.leading": (),
- "PySide2.QtGui.QFontMetrics.leftBearing": ('str',),
- "PySide2.QtGui.QFontMetrics.lineSpacing": (),
- "PySide2.QtGui.QFontMetrics.lineWidth": (),
- "PySide2.QtGui.QFontMetrics.maxWidth": (),
- "PySide2.QtGui.QFontMetrics.minLeftBearing": (),
- "PySide2.QtGui.QFontMetrics.minRightBearing": (),
- "PySide2.QtGui.QFontMetrics.overlinePos": (),
- "PySide2.QtGui.QFontMetrics.rightBearing": ('str',),
- "PySide2.QtGui.QFontMetrics.size": ('int', 'str', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QFontMetrics.strikeOutPos": (),
- "PySide2.QtGui.QFontMetrics.swap": ('PySide2.QtGui.QFontMetrics',),
- "PySide2.QtGui.QFontMetrics.tightBoundingRect": ('str',),
- "PySide2.QtGui.QFontMetrics.underlinePos": (),
- "PySide2.QtGui.QFontMetrics.width": [('str', 'int'), ('str', 'int', 'int')],
- "PySide2.QtGui.QFontMetrics.widthChar": ('str',),
- "PySide2.QtGui.QFontMetrics.xHeight": (),
-# class PySide2.QtGui.QFontMetricsF:
- "PySide2.QtGui.QFontMetricsF.__init__": [('PySide2.QtGui.QFont',), ('PySide2.QtGui.QFont', 'PySide2.QtGui.QPaintDevice'), ('PySide2.QtGui.QFontMetrics',), ('PySide2.QtGui.QFontMetricsF',)],
- "PySide2.QtGui.QFontMetricsF.__copy__": (),
- "PySide2.QtGui.QFontMetricsF.ascent": (),
- "PySide2.QtGui.QFontMetricsF.averageCharWidth": (),
- "PySide2.QtGui.QFontMetricsF.boundingRect": [('PySide2.QtCore.QRectF', 'int', 'str', 'int', 'shibokensupport.typing27.Sequence'), ('str',)],
- "PySide2.QtGui.QFontMetricsF.boundingRectChar": ('str',),
- "PySide2.QtGui.QFontMetricsF.capHeight": (),
- "PySide2.QtGui.QFontMetricsF.descent": (),
- "PySide2.QtGui.QFontMetricsF.elidedText": ('str', 'PySide2.QtCore.Qt.TextElideMode', 'float', 'int'),
- "PySide2.QtGui.QFontMetricsF.fontDpi": (),
- "PySide2.QtGui.QFontMetricsF.height": (),
- "PySide2.QtGui.QFontMetricsF.horizontalAdvance": [('str',), ('str', 'int')],
- "PySide2.QtGui.QFontMetricsF.inFont": ('str',),
- "PySide2.QtGui.QFontMetricsF.inFontUcs4": ('int',),
- "PySide2.QtGui.QFontMetricsF.leading": (),
- "PySide2.QtGui.QFontMetricsF.leftBearing": ('str',),
- "PySide2.QtGui.QFontMetricsF.lineSpacing": (),
- "PySide2.QtGui.QFontMetricsF.lineWidth": (),
- "PySide2.QtGui.QFontMetricsF.maxWidth": (),
- "PySide2.QtGui.QFontMetricsF.minLeftBearing": (),
- "PySide2.QtGui.QFontMetricsF.minRightBearing": (),
- "PySide2.QtGui.QFontMetricsF.overlinePos": (),
- "PySide2.QtGui.QFontMetricsF.rightBearing": ('str',),
- "PySide2.QtGui.QFontMetricsF.size": ('int', 'str', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QFontMetricsF.strikeOutPos": (),
- "PySide2.QtGui.QFontMetricsF.swap": ('PySide2.QtGui.QFontMetricsF',),
- "PySide2.QtGui.QFontMetricsF.tightBoundingRect": ('str',),
- "PySide2.QtGui.QFontMetricsF.underlinePos": (),
- "PySide2.QtGui.QFontMetricsF.width": ('str',),
- "PySide2.QtGui.QFontMetricsF.widthChar": ('str',),
- "PySide2.QtGui.QFontMetricsF.xHeight": (),
-# class PySide2.QtGui.QGradient:
-# class PySide2.QtGui.QGradient.CoordinateMode:
-# class PySide2.QtGui.QGradient.InterpolationMode:
-# class PySide2.QtGui.QGradient.Preset:
-# class PySide2.QtGui.QGradient.Spread:
-# class PySide2.QtGui.QGradient.Type:
- "PySide2.QtGui.QGradient.__init__": [(), ('PySide2.QtGui.QGradient',), ('PySide2.QtGui.QGradient.Preset',)],
- "PySide2.QtGui.QGradient.__copy__": (),
- "PySide2.QtGui.QGradient.coordinateMode": (),
- "PySide2.QtGui.QGradient.interpolationMode": (),
- "PySide2.QtGui.QGradient.setColorAt": ('float', 'PySide2.QtGui.QColor'),
- "PySide2.QtGui.QGradient.setCoordinateMode": ('PySide2.QtGui.QGradient.CoordinateMode',),
- "PySide2.QtGui.QGradient.setInterpolationMode": ('PySide2.QtGui.QGradient.InterpolationMode',),
- "PySide2.QtGui.QGradient.setSpread": ('PySide2.QtGui.QGradient.Spread',),
- "PySide2.QtGui.QGradient.setStops": ('typing.List[typing.Tuple]',),
- "PySide2.QtGui.QGradient.spread": (),
- "PySide2.QtGui.QGradient.stops": (),
- "PySide2.QtGui.QGradient.type": (),
-# class PySide2.QtGui.QGuiApplication:
- "PySide2.QtGui.QGuiApplication.__init__": [(), ('typing.Sequence[str]',)],
- "PySide2.QtGui.QGuiApplication.allWindows": (),
- "PySide2.QtGui.QGuiApplication.applicationDisplayName": (),
- "PySide2.QtGui.QGuiApplication.applicationState": (),
- "PySide2.QtGui.QGuiApplication.changeOverrideCursor": ('PySide2.QtGui.QCursor',),
- "PySide2.QtGui.QGuiApplication.clipboard": (),
- "PySide2.QtGui.QGuiApplication.desktopFileName": (),
- "PySide2.QtGui.QGuiApplication.desktopSettingsAware": (),
- "PySide2.QtGui.QGuiApplication.devicePixelRatio": (),
- "PySide2.QtGui.QGuiApplication.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtGui.QGuiApplication.exec_": (),
- "PySide2.QtGui.QGuiApplication.focusObject": (),
- "PySide2.QtGui.QGuiApplication.focusWindow": (),
- "PySide2.QtGui.QGuiApplication.font": (),
- "PySide2.QtGui.QGuiApplication.highDpiScaleFactorRoundingPolicy": (),
- "PySide2.QtGui.QGuiApplication.inputMethod": (),
- "PySide2.QtGui.QGuiApplication.isFallbackSessionManagementEnabled": (),
- "PySide2.QtGui.QGuiApplication.isLeftToRight": (),
- "PySide2.QtGui.QGuiApplication.isRightToLeft": (),
- "PySide2.QtGui.QGuiApplication.isSavingSession": (),
- "PySide2.QtGui.QGuiApplication.isSessionRestored": (),
- "PySide2.QtGui.QGuiApplication.keyboardModifiers": (),
- "PySide2.QtGui.QGuiApplication.layoutDirection": (),
- "PySide2.QtGui.QGuiApplication.modalWindow": (),
- "PySide2.QtGui.QGuiApplication.mouseButtons": (),
- "PySide2.QtGui.QGuiApplication.notify": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtGui.QGuiApplication.overrideCursor": (),
- "PySide2.QtGui.QGuiApplication.palette": (),
- "PySide2.QtGui.QGuiApplication.platformName": (),
- "PySide2.QtGui.QGuiApplication.primaryScreen": (),
- "PySide2.QtGui.QGuiApplication.queryKeyboardModifiers": (),
- "PySide2.QtGui.QGuiApplication.quitOnLastWindowClosed": (),
- "PySide2.QtGui.QGuiApplication.restoreOverrideCursor": (),
- "PySide2.QtGui.QGuiApplication.screenAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QGuiApplication.screens": (),
- "PySide2.QtGui.QGuiApplication.sessionId": (),
- "PySide2.QtGui.QGuiApplication.sessionKey": (),
- "PySide2.QtGui.QGuiApplication.setApplicationDisplayName": ('str',),
- "PySide2.QtGui.QGuiApplication.setDesktopFileName": ('str',),
- "PySide2.QtGui.QGuiApplication.setDesktopSettingsAware": ('bool',),
- "PySide2.QtGui.QGuiApplication.setFallbackSessionManagementEnabled": ('bool',),
- "PySide2.QtGui.QGuiApplication.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtGui.QGuiApplication.setHighDpiScaleFactorRoundingPolicy": ('PySide2.QtCore.Qt.HighDpiScaleFactorRoundingPolicy',),
- "PySide2.QtGui.QGuiApplication.setLayoutDirection": ('PySide2.QtCore.Qt.LayoutDirection',),
- "PySide2.QtGui.QGuiApplication.setOverrideCursor": ('PySide2.QtGui.QCursor',),
- "PySide2.QtGui.QGuiApplication.setPalette": ('PySide2.QtGui.QPalette',),
- "PySide2.QtGui.QGuiApplication.setQuitOnLastWindowClosed": ('bool',),
- "PySide2.QtGui.QGuiApplication.setWindowIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtGui.QGuiApplication.styleHints": (),
- "PySide2.QtGui.QGuiApplication.sync": (),
- "PySide2.QtGui.QGuiApplication.topLevelAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QGuiApplication.topLevelWindows": (),
- "PySide2.QtGui.QGuiApplication.windowIcon": (),
-# class PySide2.QtGui.QHelpEvent:
- "PySide2.QtGui.QHelpEvent.__init__": ('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint'),
- "PySide2.QtGui.QHelpEvent.globalPos": (),
- "PySide2.QtGui.QHelpEvent.globalX": (),
- "PySide2.QtGui.QHelpEvent.global""Y": (),
- "PySide2.QtGui.QHelpEvent.pos": (),
- "PySide2.QtGui.QHelpEvent.x": (),
- "PySide2.QtGui.QHelpEvent.y": (),
-# class PySide2.QtGui.QHideEvent:
- "PySide2.QtGui.QHideEvent.__init__": (),
-# class PySide2.QtGui.QHoverEvent:
- "PySide2.QtGui.QHoverEvent.__init__": ('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.Qt.KeyboardModifiers'),
- "PySide2.QtGui.QHoverEvent.oldPos": (),
- "PySide2.QtGui.QHoverEvent.oldPosF": (),
- "PySide2.QtGui.QHoverEvent.pos": (),
- "PySide2.QtGui.QHoverEvent.posF": (),
-# class PySide2.QtGui.QIcon:
-# class PySide2.QtGui.QIcon.Mode:
-# class PySide2.QtGui.QIcon.State:
- "PySide2.QtGui.QIcon.__init__": [(), ('PySide2.QtGui.QIcon',), ('PySide2.QtGui.QIconEngine',), ('PySide2.QtGui.QPixmap',), ('str',)],
- "PySide2.QtGui.QIcon.__copy__": (),
- "PySide2.QtGui.QIcon.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QIcon.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QIcon.actualSize": [('PySide2.QtCore.QSize', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'), ('PySide2.QtGui.QWindow', 'PySide2.QtCore.QSize', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State')],
- "PySide2.QtGui.QIcon.addFile": ('str', 'PySide2.QtCore.QSize', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'),
- "PySide2.QtGui.QIcon.addPixmap": ('PySide2.QtGui.QPixmap', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'),
- "PySide2.QtGui.QIcon.availableSizes": ('PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'),
- "PySide2.QtGui.QIcon.cacheKey": (),
- "PySide2.QtGui.QIcon.fallbackSearchPaths": (),
- "PySide2.QtGui.QIcon.fallbackThemeName": (),
- "PySide2.QtGui.QIcon.fromTheme": [('str',), ('str', 'PySide2.QtGui.QIcon')],
- "PySide2.QtGui.QIcon.hasThemeIcon": ('str',),
- "PySide2.QtGui.QIcon.isMask": (),
- "PySide2.QtGui.QIcon.isNull": (),
- "PySide2.QtGui.QIcon.name": (),
- "PySide2.QtGui.QIcon.paint": [('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRect', 'PySide2.QtCore.Qt.Alignment', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'), ('PySide2.QtGui.QPainter', 'int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.Alignment', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State')],
- "PySide2.QtGui.QIcon.pixmap": [('PySide2.QtCore.QSize', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'), ('PySide2.QtGui.QWindow', 'PySide2.QtCore.QSize', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'), ('int', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'), ('int', 'int', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State')],
- "PySide2.QtGui.QIcon.setFallbackSearchPaths": ('typing.Sequence[str]',),
- "PySide2.QtGui.QIcon.setFallbackThemeName": ('str',),
- "PySide2.QtGui.QIcon.setIsMask": ('bool',),
- "PySide2.QtGui.QIcon.setThemeName": ('str',),
- "PySide2.QtGui.QIcon.setThemeSearchPaths": ('typing.Sequence[str]',),
- "PySide2.QtGui.QIcon.swap": ('PySide2.QtGui.QIcon',),
- "PySide2.QtGui.QIcon.themeName": (),
- "PySide2.QtGui.QIcon.themeSearchPaths": (),
-# class PySide2.QtGui.QIconDragEvent:
- "PySide2.QtGui.QIconDragEvent.__init__": (),
-# class PySide2.QtGui.QIconEngine:
-# class PySide2.QtGui.QIconEngine.AvailableSizesArgument:
- "PySide2.QtGui.QIconEngine.AvailableSizesArgument.__init__": (),
-# class PySide2.QtGui.QIconEngine.IconEngineHook:
- "PySide2.QtGui.QIconEngine.__init__": [(), ('PySide2.QtGui.QIconEngine',)],
- "PySide2.QtGui.QIconEngine.actualSize": ('PySide2.QtCore.QSize', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'),
- "PySide2.QtGui.QIconEngine.addFile": ('str', 'PySide2.QtCore.QSize', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'),
- "PySide2.QtGui.QIconEngine.addPixmap": ('PySide2.QtGui.QPixmap', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'),
- "PySide2.QtGui.QIconEngine.availableSizes": ('PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'),
- "PySide2.QtGui.QIconEngine.clone": (),
- "PySide2.QtGui.QIconEngine.iconName": (),
- "PySide2.QtGui.QIconEngine.isNull": (),
- "PySide2.QtGui.QIconEngine.key": (),
- "PySide2.QtGui.QIconEngine.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRect', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'),
- "PySide2.QtGui.QIconEngine.pixmap": ('PySide2.QtCore.QSize', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'),
- "PySide2.QtGui.QIconEngine.read": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QIconEngine.scaledPixmap": ('PySide2.QtCore.QSize', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State', 'float'),
- "PySide2.QtGui.QIconEngine.write": ('PySide2.QtCore.QDataStream',),
-# class PySide2.QtGui.QImage:
-# class PySide2.QtGui.QImage.Format:
-# class PySide2.QtGui.QImage.InvertMode:
- "PySide2.QtGui.QImage.__init__": [(), ('PySide2.QtCore.QSize', 'PySide2.QtGui.QImage.Format'), ('PySide2.QtGui.QImage',), ('int', 'int', 'PySide2.QtGui.QImage.Format'), ('str', 'int', 'int', 'PySide2.QtGui.QImage.Format'), ('str', 'int', 'int', 'PySide2.QtGui.QImage.Format', 'typing.Callable', 'int'), ('str', 'int', 'int', 'int', 'PySide2.QtGui.QImage.Format'), ('str', 'int', 'int', 'int', 'PySide2.QtGui.QImage.Format', 'typing.Callable', 'int'), ('str', 'str'), ('typing.Sequence[str]',)],
- "PySide2.QtGui.QImage.__copy__": (),
- "PySide2.QtGui.QImage.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QImage.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QImage.allGray": (),
- "PySide2.QtGui.QImage.alphaChannel": (),
- "PySide2.QtGui.QImage.bitPlaneCount": (),
- "PySide2.QtGui.QImage.bits": (),
- "PySide2.QtGui.QImage.byteCount": (),
- "PySide2.QtGui.QImage.bytesPerLine": (),
- "PySide2.QtGui.QImage.cacheKey": (),
- "PySide2.QtGui.QImage.color": ('int',),
- "PySide2.QtGui.QImage.colorCount": (),
- "PySide2.QtGui.QImage.colorSpace": (),
- "PySide2.QtGui.QImage.colorTable": (),
- "PySide2.QtGui.QImage.constBits": (),
- "PySide2.QtGui.QImage.constScanLine": ('int',),
- "PySide2.QtGui.QImage.convertTo": ('PySide2.QtGui.QImage.Format', 'PySide2.QtCore.Qt.ImageConversionFlags'),
- "PySide2.QtGui.QImage.convertToColorSpace": ('PySide2.QtGui.QColorSpace',),
- "PySide2.QtGui.QImage.convertToFormat": [('PySide2.QtGui.QImage.Format', 'PySide2.QtCore.Qt.ImageConversionFlags'), ('PySide2.QtGui.QImage.Format', 'typing.List[int]', 'PySide2.QtCore.Qt.ImageConversionFlags')],
- "PySide2.QtGui.QImage.convertToFormat_helper": ('PySide2.QtGui.QImage.Format', 'PySide2.QtCore.Qt.ImageConversionFlags'),
- "PySide2.QtGui.QImage.convertToFormat_inplace": ('PySide2.QtGui.QImage.Format', 'PySide2.QtCore.Qt.ImageConversionFlags'),
- "PySide2.QtGui.QImage.convertedToColorSpace": ('PySide2.QtGui.QColorSpace',),
- "PySide2.QtGui.QImage.copy": [('PySide2.QtCore.QRect',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QImage.createAlphaMask": ('PySide2.QtCore.Qt.ImageConversionFlags',),
- "PySide2.QtGui.QImage.createHeuristicMask": ('bool',),
- "PySide2.QtGui.QImage.createMaskFromColor": ('int', 'PySide2.QtCore.Qt.MaskMode'),
- "PySide2.QtGui.QImage.depth": (),
- "PySide2.QtGui.QImage.devType": (),
- "PySide2.QtGui.QImage.devicePixelRatio": (),
- "PySide2.QtGui.QImage.dotsPerMeterX": (),
- "PySide2.QtGui.QImage.dotsPerMeterY": (),
- "PySide2.QtGui.QImage.fill": [('PySide2.QtCore.Qt.GlobalColor',), ('PySide2.QtGui.QColor',), ('int',)],
- "PySide2.QtGui.QImage.format": (),
- "PySide2.QtGui.QImage.fromData": ('PySide2.QtCore.QByteArray', 'str'),
- "PySide2.QtGui.QImage.hasAlphaChannel": (),
- "PySide2.QtGui.QImage.height": (),
- "PySide2.QtGui.QImage.invertPixels": ('PySide2.QtGui.QImage.InvertMode',),
- "PySide2.QtGui.QImage.isGrayscale": (),
- "PySide2.QtGui.QImage.isNull": (),
- "PySide2.QtGui.QImage.load": [('PySide2.QtCore.QIODevice', 'str'), ('str', 'str')],
- "PySide2.QtGui.QImage.loadFromData": ('PySide2.QtCore.QByteArray', 'str'),
- "PySide2.QtGui.QImage.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtGui.QImage.mirrored": ('bool', 'bool'),
- "PySide2.QtGui.QImage.mirrored_helper": ('bool', 'bool'),
- "PySide2.QtGui.QImage.mirrored_inplace": ('bool', 'bool'),
- "PySide2.QtGui.QImage.offset": (),
- "PySide2.QtGui.QImage.paintEngine": (),
- "PySide2.QtGui.QImage.pixel": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtGui.QImage.pixelColor": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtGui.QImage.pixelFormat": (),
- "PySide2.QtGui.QImage.pixelIndex": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtGui.QImage.rect": (),
- "PySide2.QtGui.QImage.reinterpretAsFormat": ('PySide2.QtGui.QImage.Format',),
- "PySide2.QtGui.QImage.rgbSwapped": (),
- "PySide2.QtGui.QImage.rgbSwapped_helper": (),
- "PySide2.QtGui.QImage.rgbSwapped_inplace": (),
- "PySide2.QtGui.QImage.save": [('PySide2.QtCore.QIODevice', 'str', 'int'), ('str', 'str', 'int')],
- "PySide2.QtGui.QImage.scaled": [('PySide2.QtCore.QSize', 'PySide2.QtCore.Qt.AspectRatioMode', 'PySide2.QtCore.Qt.TransformationMode'), ('int', 'int', 'PySide2.QtCore.Qt.AspectRatioMode', 'PySide2.QtCore.Qt.TransformationMode')],
- "PySide2.QtGui.QImage.scaledToHeight": ('int', 'PySide2.QtCore.Qt.TransformationMode'),
- "PySide2.QtGui.QImage.scaledToWidth": ('int', 'PySide2.QtCore.Qt.TransformationMode'),
- "PySide2.QtGui.QImage.scanLine": ('int',),
- "PySide2.QtGui.QImage.setAlphaChannel": ('PySide2.QtGui.QImage',),
- "PySide2.QtGui.QImage.setColor": ('int', 'int'),
- "PySide2.QtGui.QImage.setColorCount": ('int',),
- "PySide2.QtGui.QImage.setColorSpace": ('PySide2.QtGui.QColorSpace',),
- "PySide2.QtGui.QImage.setColorTable": ('typing.List[int]',),
- "PySide2.QtGui.QImage.setDevicePixelRatio": ('float',),
- "PySide2.QtGui.QImage.setDotsPerMeterX": ('int',),
- "PySide2.QtGui.QImage.setDotsPerMeterY": ('int',),
- "PySide2.QtGui.QImage.setOffset": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QImage.setPixel": [('PySide2.QtCore.QPoint', 'int'), ('int', 'int', 'int')],
- "PySide2.QtGui.QImage.setPixelColor": [('PySide2.QtCore.QPoint', 'PySide2.QtGui.QColor'), ('int', 'int', 'PySide2.QtGui.QColor')],
- "PySide2.QtGui.QImage.setText": ('str', 'str'),
- "PySide2.QtGui.QImage.size": (),
- "PySide2.QtGui.QImage.sizeInBytes": (),
- "PySide2.QtGui.QImage.smoothScaled": ('int', 'int'),
- "PySide2.QtGui.QImage.swap": ('PySide2.QtGui.QImage',),
- "PySide2.QtGui.QImage.text": ('str',),
- "PySide2.QtGui.QImage.textKeys": (),
- "PySide2.QtGui.QImage.toImageFormat": ('PySide2.QtGui.QPixelFormat',),
- "PySide2.QtGui.QImage.toPixelFormat": ('PySide2.QtGui.QImage.Format',),
- "PySide2.QtGui.QImage.transformed": [('PySide2.QtGui.QMatrix', 'PySide2.QtCore.Qt.TransformationMode'), ('PySide2.QtGui.QTransform', 'PySide2.QtCore.Qt.TransformationMode')],
- "PySide2.QtGui.QImage.trueMatrix": [('PySide2.QtGui.QMatrix', 'int', 'int'), ('PySide2.QtGui.QTransform', 'int', 'int')],
- "PySide2.QtGui.QImage.valid": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtGui.QImage.width": (),
-# class PySide2.QtGui.QImageIOHandler:
-# class PySide2.QtGui.QImageIOHandler.ImageOption:
-# class PySide2.QtGui.QImageIOHandler.Transformation:
-# class PySide2.QtGui.QImageIOHandler.Transformations:
- "PySide2.QtGui.QImageIOHandler.__init__": (),
- "PySide2.QtGui.QImageIOHandler.canRead": (),
- "PySide2.QtGui.QImageIOHandler.currentImageNumber": (),
- "PySide2.QtGui.QImageIOHandler.currentImageRect": (),
- "PySide2.QtGui.QImageIOHandler.device": (),
- "PySide2.QtGui.QImageIOHandler.format": (),
- "PySide2.QtGui.QImageIOHandler.imageCount": (),
- "PySide2.QtGui.QImageIOHandler.jumpToImage": ('int',),
- "PySide2.QtGui.QImageIOHandler.jumpToNextImage": (),
- "PySide2.QtGui.QImageIOHandler.loopCount": (),
- "PySide2.QtGui.QImageIOHandler.name": (),
- "PySide2.QtGui.QImageIOHandler.nextImageDelay": (),
- "PySide2.QtGui.QImageIOHandler.option": ('PySide2.QtGui.QImageIOHandler.ImageOption',),
- "PySide2.QtGui.QImageIOHandler.read": ('PySide2.QtGui.QImage',),
- "PySide2.QtGui.QImageIOHandler.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtGui.QImageIOHandler.setFormat": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QImageIOHandler.setOption": ('PySide2.QtGui.QImageIOHandler.ImageOption', 'typing.Any'),
- "PySide2.QtGui.QImageIOHandler.supportsOption": ('PySide2.QtGui.QImageIOHandler.ImageOption',),
- "PySide2.QtGui.QImageIOHandler.write": ('PySide2.QtGui.QImage',),
-# class PySide2.QtGui.QImageReader:
-# class PySide2.QtGui.QImageReader.ImageReaderError:
- "PySide2.QtGui.QImageReader.__init__": [(), ('PySide2.QtCore.QIODevice', 'PySide2.QtCore.QByteArray'), ('str', 'PySide2.QtCore.QByteArray')],
- "PySide2.QtGui.QImageReader.autoDetectImageFormat": (),
- "PySide2.QtGui.QImageReader.autoTransform": (),
- "PySide2.QtGui.QImageReader.backgroundColor": (),
- "PySide2.QtGui.QImageReader.canRead": (),
- "PySide2.QtGui.QImageReader.clipRect": (),
- "PySide2.QtGui.QImageReader.currentImageNumber": (),
- "PySide2.QtGui.QImageReader.currentImageRect": (),
- "PySide2.QtGui.QImageReader.decideFormatFromContent": (),
- "PySide2.QtGui.QImageReader.device": (),
- "PySide2.QtGui.QImageReader.error": (),
- "PySide2.QtGui.QImageReader.errorString": (),
- "PySide2.QtGui.QImageReader.fileName": (),
- "PySide2.QtGui.QImageReader.format": (),
- "PySide2.QtGui.QImageReader.gamma": (),
- "PySide2.QtGui.QImageReader.imageCount": (),
- "PySide2.QtGui.QImageReader.imageFormat": [(), ('PySide2.QtCore.QIODevice',), ('str',)],
- "PySide2.QtGui.QImageReader.imageFormatsForMimeType": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QImageReader.jumpToImage": ('int',),
- "PySide2.QtGui.QImageReader.jumpToNextImage": (),
- "PySide2.QtGui.QImageReader.loopCount": (),
- "PySide2.QtGui.QImageReader.nextImageDelay": (),
- "PySide2.QtGui.QImageReader.quality": (),
- "PySide2.QtGui.QImageReader.read": (),
- "PySide2.QtGui.QImageReader.scaledClipRect": (),
- "PySide2.QtGui.QImageReader.scaledSize": (),
- "PySide2.QtGui.QImageReader.setAutoDetectImageFormat": ('bool',),
- "PySide2.QtGui.QImageReader.setAutoTransform": ('bool',),
- "PySide2.QtGui.QImageReader.setBackgroundColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtGui.QImageReader.setClipRect": ('PySide2.QtCore.QRect',),
- "PySide2.QtGui.QImageReader.setDecideFormatFromContent": ('bool',),
- "PySide2.QtGui.QImageReader.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtGui.QImageReader.setFileName": ('str',),
- "PySide2.QtGui.QImageReader.setFormat": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QImageReader.setGamma": ('float',),
- "PySide2.QtGui.QImageReader.setQuality": ('int',),
- "PySide2.QtGui.QImageReader.setScaledClipRect": ('PySide2.QtCore.QRect',),
- "PySide2.QtGui.QImageReader.setScaledSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtGui.QImageReader.size": (),
- "PySide2.QtGui.QImageReader.subType": (),
- "PySide2.QtGui.QImageReader.supportedImageFormats": (),
- "PySide2.QtGui.QImageReader.supportedMimeTypes": (),
- "PySide2.QtGui.QImageReader.supportedSubTypes": (),
- "PySide2.QtGui.QImageReader.supportsAnimation": (),
- "PySide2.QtGui.QImageReader.supportsOption": ('PySide2.QtGui.QImageIOHandler.ImageOption',),
- "PySide2.QtGui.QImageReader.text": ('str',),
- "PySide2.QtGui.QImageReader.textKeys": (),
- "PySide2.QtGui.QImageReader.transformation": (),
-# class PySide2.QtGui.QImageWriter:
-# class PySide2.QtGui.QImageWriter.ImageWriterError:
- "PySide2.QtGui.QImageWriter.__init__": [(), ('PySide2.QtCore.QIODevice', 'PySide2.QtCore.QByteArray'), ('str', 'PySide2.QtCore.QByteArray')],
- "PySide2.QtGui.QImageWriter.canWrite": (),
- "PySide2.QtGui.QImageWriter.compression": (),
- "PySide2.QtGui.QImageWriter.description": (),
- "PySide2.QtGui.QImageWriter.device": (),
- "PySide2.QtGui.QImageWriter.error": (),
- "PySide2.QtGui.QImageWriter.errorString": (),
- "PySide2.QtGui.QImageWriter.fileName": (),
- "PySide2.QtGui.QImageWriter.format": (),
- "PySide2.QtGui.QImageWriter.gamma": (),
- "PySide2.QtGui.QImageWriter.imageFormatsForMimeType": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QImageWriter.optimizedWrite": (),
- "PySide2.QtGui.QImageWriter.progressiveScanWrite": (),
- "PySide2.QtGui.QImageWriter.quality": (),
- "PySide2.QtGui.QImageWriter.setCompression": ('int',),
- "PySide2.QtGui.QImageWriter.setDescription": ('str',),
- "PySide2.QtGui.QImageWriter.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtGui.QImageWriter.setFileName": ('str',),
- "PySide2.QtGui.QImageWriter.setFormat": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QImageWriter.setGamma": ('float',),
- "PySide2.QtGui.QImageWriter.setOptimizedWrite": ('bool',),
- "PySide2.QtGui.QImageWriter.setProgressiveScanWrite": ('bool',),
- "PySide2.QtGui.QImageWriter.setQuality": ('int',),
- "PySide2.QtGui.QImageWriter.setSubType": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QImageWriter.setText": ('str', 'str'),
- "PySide2.QtGui.QImageWriter.setTransformation": ('PySide2.QtGui.QImageIOHandler.Transformations',),
- "PySide2.QtGui.QImageWriter.subType": (),
- "PySide2.QtGui.QImageWriter.supportedImageFormats": (),
- "PySide2.QtGui.QImageWriter.supportedMimeTypes": (),
- "PySide2.QtGui.QImageWriter.supportedSubTypes": (),
- "PySide2.QtGui.QImageWriter.supportsOption": ('PySide2.QtGui.QImageIOHandler.ImageOption',),
- "PySide2.QtGui.QImageWriter.transformation": (),
- "PySide2.QtGui.QImageWriter.write": ('PySide2.QtGui.QImage',),
-# class PySide2.QtGui.QInputEvent:
- "PySide2.QtGui.QInputEvent.__init__": ('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.Qt.KeyboardModifiers'),
- "PySide2.QtGui.QInputEvent.modifiers": (),
- "PySide2.QtGui.QInputEvent.setModifiers": ('PySide2.QtCore.Qt.KeyboardModifiers',),
- "PySide2.QtGui.QInputEvent.setTimestamp": ('int',),
- "PySide2.QtGui.QInputEvent.timestamp": (),
-# class PySide2.QtGui.QInputMethod:
-# class PySide2.QtGui.QInputMethod.Action:
- "PySide2.QtGui.QInputMethod.anchorRectangle": (),
- "PySide2.QtGui.QInputMethod.commit": (),
- "PySide2.QtGui.QInputMethod.cursorRectangle": (),
- "PySide2.QtGui.QInputMethod.hide": (),
- "PySide2.QtGui.QInputMethod.inputDirection": (),
- "PySide2.QtGui.QInputMethod.inputItemClipRectangle": (),
- "PySide2.QtGui.QInputMethod.inputItemRectangle": (),
- "PySide2.QtGui.QInputMethod.inputItemTransform": (),
- "PySide2.QtGui.QInputMethod.invokeAction": ('PySide2.QtGui.QInputMethod.Action', 'int'),
- "PySide2.QtGui.QInputMethod.isAnimating": (),
- "PySide2.QtGui.QInputMethod.isVisible": (),
- "PySide2.QtGui.QInputMethod.keyboardRectangle": (),
- "PySide2.QtGui.QInputMethod.locale": (),
- "PySide2.QtGui.QInputMethod.queryFocusObject": ('PySide2.QtCore.Qt.InputMethodQuery', 'typing.Any'),
- "PySide2.QtGui.QInputMethod.reset": (),
- "PySide2.QtGui.QInputMethod.setInputItemRectangle": ('PySide2.QtCore.QRectF',),
- "PySide2.QtGui.QInputMethod.setInputItemTransform": ('PySide2.QtGui.QTransform',),
- "PySide2.QtGui.QInputMethod.setVisible": ('bool',),
- "PySide2.QtGui.QInputMethod.show": (),
- "PySide2.QtGui.QInputMethod.update": ('PySide2.QtCore.Qt.InputMethodQueries',),
-# class PySide2.QtGui.QInputMethodEvent:
-# class PySide2.QtGui.QInputMethodEvent.Attribute:
- "PySide2.QtGui.QInputMethodEvent.Attribute.__init__": [('PySide2.QtGui.QInputMethodEvent.Attribute',), ('PySide2.QtGui.QInputMethodEvent.AttributeType', 'int', 'int'), ('PySide2.QtGui.QInputMethodEvent.AttributeType', 'int', 'int', 'typing.Any')],
- "PySide2.QtGui.QInputMethodEvent.Attribute.__copy__": (),
-# class PySide2.QtGui.QInputMethodEvent.AttributeType:
- "PySide2.QtGui.QInputMethodEvent.__init__": [(), ('PySide2.QtGui.QInputMethodEvent',), ('str', 'typing.Sequence[PySide2.QtGui.QInputMethodEvent.Attribute]')],
- "PySide2.QtGui.QInputMethodEvent.attributes": (),
- "PySide2.QtGui.QInputMethodEvent.commitString": (),
- "PySide2.QtGui.QInputMethodEvent.preeditString": (),
- "PySide2.QtGui.QInputMethodEvent.replacementLength": (),
- "PySide2.QtGui.QInputMethodEvent.replacementStart": (),
- "PySide2.QtGui.QInputMethodEvent.setCommitString": ('str', 'int', 'int'),
-# class PySide2.QtGui.QInputMethodQueryEvent:
- "PySide2.QtGui.QInputMethodQueryEvent.__init__": ('PySide2.QtCore.Qt.InputMethodQueries',),
- "PySide2.QtGui.QInputMethodQueryEvent.queries": (),
- "PySide2.QtGui.QInputMethodQueryEvent.setValue": ('PySide2.QtCore.Qt.InputMethodQuery', 'typing.Any'),
- "PySide2.QtGui.QInputMethodQueryEvent.value": ('PySide2.QtCore.Qt.InputMethodQuery',),
-# class PySide2.QtGui.QIntValidator:
- "PySide2.QtGui.QIntValidator.__init__": [('PySide2.QtCore.QObject',), ('int', 'int', 'PySide2.QtCore.QObject')],
- "PySide2.QtGui.QIntValidator.bottom": (),
- "PySide2.QtGui.QIntValidator.fixup": ('str',),
- "PySide2.QtGui.QIntValidator.setBottom": ('int',),
- "PySide2.QtGui.QIntValidator.setRange": ('int', 'int'),
- "PySide2.QtGui.QIntValidator.setTop": ('int',),
- "PySide2.QtGui.QIntValidator.top": (),
- "PySide2.QtGui.QIntValidator.validate": ('str', 'int'),
-# class PySide2.QtGui.QKeyEvent:
- "PySide2.QtGui.QKeyEvent.__init__": [('PySide2.QtCore.QEvent.Type', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int', 'int', 'int', 'str', 'bool', 'int'), ('PySide2.QtCore.QEvent.Type', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'str', 'bool', 'int')],
- "PySide2.QtGui.QKeyEvent.count": (),
- "PySide2.QtGui.QKeyEvent.isAutoRepeat": (),
- "PySide2.QtGui.QKeyEvent.key": (),
- "PySide2.QtGui.QKeyEvent.matches": ('PySide2.QtGui.QKeySequence.StandardKey',),
- "PySide2.QtGui.QKeyEvent.modifiers": (),
- "PySide2.QtGui.QKeyEvent.nativeModifiers": (),
- "PySide2.QtGui.QKeyEvent.nativeScanCode": (),
- "PySide2.QtGui.QKeyEvent.nativeVirtualKey": (),
- "PySide2.QtGui.QKeyEvent.text": (),
-# class PySide2.QtGui.QKeySequence:
-# class PySide2.QtGui.QKeySequence.SequenceFormat:
-# class PySide2.QtGui.QKeySequence.SequenceMatch:
-# class PySide2.QtGui.QKeySequence.StandardKey:
- "PySide2.QtGui.QKeySequence.__init__": [(), ('PySide2.QtGui.QKeySequence',), ('PySide2.QtGui.QKeySequence.StandardKey',), ('int', 'int', 'int', 'int'), ('str', 'PySide2.QtGui.QKeySequence.SequenceFormat')],
- "PySide2.QtGui.QKeySequence.__copy__": (),
- "PySide2.QtGui.QKeySequence.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QKeySequence.__reduce__": (),
- "PySide2.QtGui.QKeySequence.__repr__": (),
- "PySide2.QtGui.QKeySequence.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QKeySequence.count": (),
- "PySide2.QtGui.QKeySequence.fromString": ('str', 'PySide2.QtGui.QKeySequence.SequenceFormat'),
- "PySide2.QtGui.QKeySequence.isEmpty": (),
- "PySide2.QtGui.QKeySequence.keyBindings": ('PySide2.QtGui.QKeySequence.StandardKey',),
- "PySide2.QtGui.QKeySequence.listFromString": ('str', 'PySide2.QtGui.QKeySequence.SequenceFormat'),
- "PySide2.QtGui.QKeySequence.listToString": ('typing.Sequence[PySide2.QtGui.QKeySequence]', 'PySide2.QtGui.QKeySequence.SequenceFormat'),
- "PySide2.QtGui.QKeySequence.matches": ('PySide2.QtGui.QKeySequence',),
- "PySide2.QtGui.QKeySequence.mnemonic": ('str',),
- "PySide2.QtGui.QKeySequence.swap": ('PySide2.QtGui.QKeySequence',),
- "PySide2.QtGui.QKeySequence.toString": ('PySide2.QtGui.QKeySequence.SequenceFormat',),
-# class PySide2.QtGui.QLinearGradient:
- "PySide2.QtGui.QLinearGradient.__init__": [(), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'), ('PySide2.QtGui.QLinearGradient',), ('float', 'float', 'float', 'float')],
- "PySide2.QtGui.QLinearGradient.__copy__": (),
- "PySide2.QtGui.QLinearGradient.finalStop": (),
- "PySide2.QtGui.QLinearGradient.setFinalStop": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QLinearGradient.setStart": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QLinearGradient.start": (),
-# class PySide2.QtGui.QMatrix:
- "PySide2.QtGui.QMatrix.__init__": [(), ('PySide2.QtGui.QMatrix',), ('float', 'float', 'float', 'float', 'float', 'float')],
- "PySide2.QtGui.QMatrix.__copy__": (),
- "PySide2.QtGui.QMatrix.__imul__": ('PySide2.QtGui.QMatrix',),
- "PySide2.QtGui.QMatrix.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QMatrix.__mul__": [('PySide2.QtCore.QLine',), ('PySide2.QtCore.QLineF',), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtGui.QMatrix',)],
- "PySide2.QtGui.QMatrix.__reduce__": (),
- "PySide2.QtGui.QMatrix.__repr__": (),
- "PySide2.QtGui.QMatrix.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QMatrix.determinant": (),
- "PySide2.QtGui.QMatrix.dx": (),
- "PySide2.QtGui.QMatrix.dy": (),
- "PySide2.QtGui.QMatrix.inverted": (),
- "PySide2.QtGui.QMatrix.isIdentity": (),
- "PySide2.QtGui.QMatrix.isInvertible": (),
- "PySide2.QtGui.QMatrix.m11": (),
- "PySide2.QtGui.QMatrix.m12": (),
- "PySide2.QtGui.QMatrix.m21": (),
- "PySide2.QtGui.QMatrix.m22": (),
- "PySide2.QtGui.QMatrix.map": [('PySide2.QtCore.QLine',), ('PySide2.QtCore.QLineF',), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtGui.QPainterPath',), ('PySide2.QtGui.QPolygon',), ('PySide2.QtGui.QPolygonF',), ('PySide2.QtGui.QRegion',), ('float', 'float'), ('int', 'int')],
- "PySide2.QtGui.QMatrix.mapRect": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',)],
- "PySide2.QtGui.QMatrix.mapToPolygon": ('PySide2.QtCore.QRect',),
- "PySide2.QtGui.QMatrix.reset": (),
- "PySide2.QtGui.QMatrix.rotate": ('float',),
- "PySide2.QtGui.QMatrix.scale": ('float', 'float'),
- "PySide2.QtGui.QMatrix.setMatrix": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtGui.QMatrix.shear": ('float', 'float'),
- "PySide2.QtGui.QMatrix.translate": ('float', 'float'),
-# class PySide2.QtGui.QMatrix2x2:
- "PySide2.QtGui.QMatrix2x2.__init__": [(), ('PySide2.QtGui.QMatrix2x2',), ('typing.Iterable',)],
- "PySide2.QtGui.QMatrix2x2.__call__": ('int', 'int'),
- "PySide2.QtGui.QMatrix2x2.__copy__": (),
- "PySide2.QtGui.QMatrix2x2.__iadd__": ('PySide2.QtGui.QMatrix2x2',),
- "PySide2.QtGui.QMatrix2x2.__imul__": ('float',),
- "PySide2.QtGui.QMatrix2x2.__isub__": ('PySide2.QtGui.QMatrix2x2',),
- "PySide2.QtGui.QMatrix2x2.__reduce__": (),
- "PySide2.QtGui.QMatrix2x2.__repr__": (),
- "PySide2.QtGui.QMatrix2x2.data": (),
- "PySide2.QtGui.QMatrix2x2.fill": ('float',),
- "PySide2.QtGui.QMatrix2x2.isIdentity": (),
- "PySide2.QtGui.QMatrix2x2.setToIdentity": (),
- "PySide2.QtGui.QMatrix2x2.transposed": (),
-# class PySide2.QtGui.QMatrix2x3:
- "PySide2.QtGui.QMatrix2x3.__init__": [(), ('PySide2.QtGui.QMatrix2x3',), ('typing.Iterable',)],
- "PySide2.QtGui.QMatrix2x3.__call__": ('int', 'int'),
- "PySide2.QtGui.QMatrix2x3.__copy__": (),
- "PySide2.QtGui.QMatrix2x3.__iadd__": ('PySide2.QtGui.QMatrix2x3',),
- "PySide2.QtGui.QMatrix2x3.__imul__": ('float',),
- "PySide2.QtGui.QMatrix2x3.__isub__": ('PySide2.QtGui.QMatrix2x3',),
- "PySide2.QtGui.QMatrix2x3.__reduce__": (),
- "PySide2.QtGui.QMatrix2x3.__repr__": (),
- "PySide2.QtGui.QMatrix2x3.data": (),
- "PySide2.QtGui.QMatrix2x3.fill": ('float',),
- "PySide2.QtGui.QMatrix2x3.isIdentity": (),
- "PySide2.QtGui.QMatrix2x3.setToIdentity": (),
- "PySide2.QtGui.QMatrix2x3.transposed": (),
-# class PySide2.QtGui.QMatrix2x4:
- "PySide2.QtGui.QMatrix2x4.__init__": [(), ('PySide2.QtGui.QMatrix2x4',), ('typing.Iterable',)],
- "PySide2.QtGui.QMatrix2x4.__call__": ('int', 'int'),
- "PySide2.QtGui.QMatrix2x4.__copy__": (),
- "PySide2.QtGui.QMatrix2x4.__iadd__": ('PySide2.QtGui.QMatrix2x4',),
- "PySide2.QtGui.QMatrix2x4.__imul__": ('float',),
- "PySide2.QtGui.QMatrix2x4.__isub__": ('PySide2.QtGui.QMatrix2x4',),
- "PySide2.QtGui.QMatrix2x4.__reduce__": (),
- "PySide2.QtGui.QMatrix2x4.__repr__": (),
- "PySide2.QtGui.QMatrix2x4.data": (),
- "PySide2.QtGui.QMatrix2x4.fill": ('float',),
- "PySide2.QtGui.QMatrix2x4.isIdentity": (),
- "PySide2.QtGui.QMatrix2x4.setToIdentity": (),
- "PySide2.QtGui.QMatrix2x4.transposed": (),
-# class PySide2.QtGui.QMatrix3x2:
- "PySide2.QtGui.QMatrix3x2.__init__": [(), ('PySide2.QtGui.QMatrix3x2',), ('typing.Iterable',)],
- "PySide2.QtGui.QMatrix3x2.__call__": ('int', 'int'),
- "PySide2.QtGui.QMatrix3x2.__copy__": (),
- "PySide2.QtGui.QMatrix3x2.__iadd__": ('PySide2.QtGui.QMatrix3x2',),
- "PySide2.QtGui.QMatrix3x2.__imul__": ('float',),
- "PySide2.QtGui.QMatrix3x2.__isub__": ('PySide2.QtGui.QMatrix3x2',),
- "PySide2.QtGui.QMatrix3x2.__reduce__": (),
- "PySide2.QtGui.QMatrix3x2.__repr__": (),
- "PySide2.QtGui.QMatrix3x2.data": (),
- "PySide2.QtGui.QMatrix3x2.fill": ('float',),
- "PySide2.QtGui.QMatrix3x2.isIdentity": (),
- "PySide2.QtGui.QMatrix3x2.setToIdentity": (),
- "PySide2.QtGui.QMatrix3x2.transposed": (),
-# class PySide2.QtGui.QMatrix3x3:
- "PySide2.QtGui.QMatrix3x3.__init__": [(), ('PySide2.QtGui.QMatrix3x3',), ('typing.Iterable',)],
- "PySide2.QtGui.QMatrix3x3.__call__": ('int', 'int'),
- "PySide2.QtGui.QMatrix3x3.__copy__": (),
- "PySide2.QtGui.QMatrix3x3.__iadd__": ('PySide2.QtGui.QMatrix3x3',),
- "PySide2.QtGui.QMatrix3x3.__imul__": ('float',),
- "PySide2.QtGui.QMatrix3x3.__isub__": ('PySide2.QtGui.QMatrix3x3',),
- "PySide2.QtGui.QMatrix3x3.__reduce__": (),
- "PySide2.QtGui.QMatrix3x3.__repr__": (),
- "PySide2.QtGui.QMatrix3x3.data": (),
- "PySide2.QtGui.QMatrix3x3.fill": ('float',),
- "PySide2.QtGui.QMatrix3x3.isIdentity": (),
- "PySide2.QtGui.QMatrix3x3.setToIdentity": (),
- "PySide2.QtGui.QMatrix3x3.transposed": (),
-# class PySide2.QtGui.QMatrix3x4:
- "PySide2.QtGui.QMatrix3x4.__init__": [(), ('PySide2.QtGui.QMatrix3x4',), ('typing.Iterable',)],
- "PySide2.QtGui.QMatrix3x4.__call__": ('int', 'int'),
- "PySide2.QtGui.QMatrix3x4.__copy__": (),
- "PySide2.QtGui.QMatrix3x4.__iadd__": ('PySide2.QtGui.QMatrix3x4',),
- "PySide2.QtGui.QMatrix3x4.__imul__": ('float',),
- "PySide2.QtGui.QMatrix3x4.__isub__": ('PySide2.QtGui.QMatrix3x4',),
- "PySide2.QtGui.QMatrix3x4.__reduce__": (),
- "PySide2.QtGui.QMatrix3x4.__repr__": (),
- "PySide2.QtGui.QMatrix3x4.data": (),
- "PySide2.QtGui.QMatrix3x4.fill": ('float',),
- "PySide2.QtGui.QMatrix3x4.isIdentity": (),
- "PySide2.QtGui.QMatrix3x4.setToIdentity": (),
- "PySide2.QtGui.QMatrix3x4.transposed": (),
-# class PySide2.QtGui.QMatrix4x2:
- "PySide2.QtGui.QMatrix4x2.__init__": [(), ('PySide2.QtGui.QMatrix4x2',), ('typing.Iterable',)],
- "PySide2.QtGui.QMatrix4x2.__call__": ('int', 'int'),
- "PySide2.QtGui.QMatrix4x2.__copy__": (),
- "PySide2.QtGui.QMatrix4x2.__iadd__": ('PySide2.QtGui.QMatrix4x2',),
- "PySide2.QtGui.QMatrix4x2.__imul__": ('float',),
- "PySide2.QtGui.QMatrix4x2.__isub__": ('PySide2.QtGui.QMatrix4x2',),
- "PySide2.QtGui.QMatrix4x2.__reduce__": (),
- "PySide2.QtGui.QMatrix4x2.__repr__": (),
- "PySide2.QtGui.QMatrix4x2.data": (),
- "PySide2.QtGui.QMatrix4x2.fill": ('float',),
- "PySide2.QtGui.QMatrix4x2.isIdentity": (),
- "PySide2.QtGui.QMatrix4x2.setToIdentity": (),
- "PySide2.QtGui.QMatrix4x2.transposed": (),
-# class PySide2.QtGui.QMatrix4x3:
- "PySide2.QtGui.QMatrix4x3.__init__": [(), ('PySide2.QtGui.QMatrix4x3',), ('typing.Iterable',)],
- "PySide2.QtGui.QMatrix4x3.__call__": ('int', 'int'),
- "PySide2.QtGui.QMatrix4x3.__copy__": (),
- "PySide2.QtGui.QMatrix4x3.__iadd__": ('PySide2.QtGui.QMatrix4x3',),
- "PySide2.QtGui.QMatrix4x3.__imul__": ('float',),
- "PySide2.QtGui.QMatrix4x3.__isub__": ('PySide2.QtGui.QMatrix4x3',),
- "PySide2.QtGui.QMatrix4x3.__reduce__": (),
- "PySide2.QtGui.QMatrix4x3.__repr__": (),
- "PySide2.QtGui.QMatrix4x3.data": (),
- "PySide2.QtGui.QMatrix4x3.fill": ('float',),
- "PySide2.QtGui.QMatrix4x3.isIdentity": (),
- "PySide2.QtGui.QMatrix4x3.setToIdentity": (),
- "PySide2.QtGui.QMatrix4x3.transposed": (),
-# class PySide2.QtGui.QMatrix4x4:
- "PySide2.QtGui.QMatrix4x4.__init__": [(), ('PySide2.QtGui.QMatrix',), ('PySide2.QtGui.QTransform',), ('float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float'), ('typing.Sequence[float]',)],
- "PySide2.QtGui.QMatrix4x4.__add__": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtGui.QMatrix4x4.__copy__": (),
- "PySide2.QtGui.QMatrix4x4.__dummy": ('typing.Sequence[float]',),
- "PySide2.QtGui.QMatrix4x4.__iadd__": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtGui.QMatrix4x4.__imul__": [('PySide2.QtGui.QMatrix4x4',), ('float',)],
- "PySide2.QtGui.QMatrix4x4.__isub__": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtGui.QMatrix4x4.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QMatrix4x4.__mul__": [('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtGui.QMatrix4x4',), ('float',)],
- "PySide2.QtGui.QMatrix4x4.__neg__": (),
- "PySide2.QtGui.QMatrix4x4.__reduce__": (),
- "PySide2.QtGui.QMatrix4x4.__repr__": (),
- "PySide2.QtGui.QMatrix4x4.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QMatrix4x4.__sub__": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtGui.QMatrix4x4.column": ('int',),
- "PySide2.QtGui.QMatrix4x4.copyDataTo": (),
- "PySide2.QtGui.QMatrix4x4.data": (),
- "PySide2.QtGui.QMatrix4x4.determinant": (),
- "PySide2.QtGui.QMatrix4x4.fill": ('float',),
- "PySide2.QtGui.QMatrix4x4.flipCoordinates": (),
- "PySide2.QtGui.QMatrix4x4.frustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtGui.QMatrix4x4.inverted": (),
- "PySide2.QtGui.QMatrix4x4.isAffine": (),
- "PySide2.QtGui.QMatrix4x4.isIdentity": (),
- "PySide2.QtGui.QMatrix4x4.lookAt": ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'),
- "PySide2.QtGui.QMatrix4x4.map": [('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtGui.QVector3D',), ('PySide2.QtGui.QVector4D',)],
- "PySide2.QtGui.QMatrix4x4.mapRect": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',)],
- "PySide2.QtGui.QMatrix4x4.mapVector": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtGui.QMatrix4x4.normalMatrix": (),
- "PySide2.QtGui.QMatrix4x4.optimize": (),
- "PySide2.QtGui.QMatrix4x4.ortho": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float', 'float', 'float')],
- "PySide2.QtGui.QMatrix4x4.perspective": ('float', 'float', 'float', 'float'),
- "PySide2.QtGui.QMatrix4x4.rotate": [('PySide2.QtGui.QQuaternion',), ('float', 'PySide2.QtGui.QVector3D'), ('float', 'float', 'float', 'float')],
- "PySide2.QtGui.QMatrix4x4.row": ('int',),
- "PySide2.QtGui.QMatrix4x4.scale": [('PySide2.QtGui.QVector3D',), ('float',), ('float', 'float'), ('float', 'float', 'float')],
- "PySide2.QtGui.QMatrix4x4.setColumn": ('int', 'PySide2.QtGui.QVector4D'),
- "PySide2.QtGui.QMatrix4x4.setRow": ('int', 'PySide2.QtGui.QVector4D'),
- "PySide2.QtGui.QMatrix4x4.setToIdentity": (),
- "PySide2.QtGui.QMatrix4x4.toAffine": (),
- "PySide2.QtGui.QMatrix4x4.toTransform": [(), ('float',)],
- "PySide2.QtGui.QMatrix4x4.translate": [('PySide2.QtGui.QVector3D',), ('float', 'float'), ('float', 'float', 'float')],
- "PySide2.QtGui.QMatrix4x4.transposed": (),
- "PySide2.QtGui.QMatrix4x4.viewport": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float', 'float', 'float')],
-# class PySide2.QtGui.QMouseEvent:
- "PySide2.QtGui.QMouseEvent.__init__": [('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers'), ('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.Qt.MouseEventSource'), ('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers'), ('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers')],
- "PySide2.QtGui.QMouseEvent.button": (),
- "PySide2.QtGui.QMouseEvent.buttons": (),
- "PySide2.QtGui.QMouseEvent.flags": (),
- "PySide2.QtGui.QMouseEvent.globalPos": (),
- "PySide2.QtGui.QMouseEvent.globalX": (),
- "PySide2.QtGui.QMouseEvent.global""Y": (),
- "PySide2.QtGui.QMouseEvent.localPos": (),
- "PySide2.QtGui.QMouseEvent.pos": (),
- "PySide2.QtGui.QMouseEvent.screenPos": (),
- "PySide2.QtGui.QMouseEvent.setLocalPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QMouseEvent.source": (),
- "PySide2.QtGui.QMouseEvent.windowPos": (),
- "PySide2.QtGui.QMouseEvent.x": (),
- "PySide2.QtGui.QMouseEvent.y": (),
-# class PySide2.QtGui.QMoveEvent:
- "PySide2.QtGui.QMoveEvent.__init__": ('PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint'),
- "PySide2.QtGui.QMoveEvent.oldPos": (),
- "PySide2.QtGui.QMoveEvent.pos": (),
-# class PySide2.QtGui.QMovie:
-# class PySide2.QtGui.QMovie.CacheMode:
-# class PySide2.QtGui.QMovie.MovieState:
- "PySide2.QtGui.QMovie.__init__": [('PySide2.QtCore.QIODevice', 'PySide2.QtCore.QByteArray', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QObject',), ('str', 'PySide2.QtCore.QByteArray', 'PySide2.QtCore.QObject')],
- "PySide2.QtGui.QMovie.backgroundColor": (),
- "PySide2.QtGui.QMovie.cacheMode": (),
- "PySide2.QtGui.QMovie.currentFrameNumber": (),
- "PySide2.QtGui.QMovie.currentImage": (),
- "PySide2.QtGui.QMovie.currentPixmap": (),
- "PySide2.QtGui.QMovie.device": (),
- "PySide2.QtGui.QMovie.fileName": (),
- "PySide2.QtGui.QMovie.format": (),
- "PySide2.QtGui.QMovie.frameCount": (),
- "PySide2.QtGui.QMovie.frameRect": (),
- "PySide2.QtGui.QMovie.isValid": (),
- "PySide2.QtGui.QMovie.jumpToFrame": ('int',),
- "PySide2.QtGui.QMovie.jumpToNextFrame": (),
- "PySide2.QtGui.QMovie.lastError": (),
- "PySide2.QtGui.QMovie.lastErrorString": (),
- "PySide2.QtGui.QMovie.loopCount": (),
- "PySide2.QtGui.QMovie.nextFrameDelay": (),
- "PySide2.QtGui.QMovie.scaledSize": (),
- "PySide2.QtGui.QMovie.setBackgroundColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtGui.QMovie.setCacheMode": ('PySide2.QtGui.QMovie.CacheMode',),
- "PySide2.QtGui.QMovie.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtGui.QMovie.setFileName": ('str',),
- "PySide2.QtGui.QMovie.setFormat": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QMovie.setPaused": ('bool',),
- "PySide2.QtGui.QMovie.setScaledSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtGui.QMovie.setSpeed": ('int',),
- "PySide2.QtGui.QMovie.speed": (),
- "PySide2.QtGui.QMovie.start": (),
- "PySide2.QtGui.QMovie.state": (),
- "PySide2.QtGui.QMovie.stop": (),
- "PySide2.QtGui.QMovie.supportedFormats": (),
-# class PySide2.QtGui.QNativeGestureEvent:
- "PySide2.QtGui.QNativeGestureEvent.__init__": [('PySide2.QtCore.Qt.NativeGestureType', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'float', 'int', 'int'), ('PySide2.QtCore.Qt.NativeGestureType', 'PySide2.QtGui.QTouchDevice', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'float', 'int', 'int')],
- "PySide2.QtGui.QNativeGestureEvent.device": (),
- "PySide2.QtGui.QNativeGestureEvent.gestureType": (),
- "PySide2.QtGui.QNativeGestureEvent.globalPos": (),
- "PySide2.QtGui.QNativeGestureEvent.localPos": (),
- "PySide2.QtGui.QNativeGestureEvent.pos": (),
- "PySide2.QtGui.QNativeGestureEvent.screenPos": (),
- "PySide2.QtGui.QNativeGestureEvent.value": (),
- "PySide2.QtGui.QNativeGestureEvent.windowPos": (),
-# class PySide2.QtGui.QOffscreenSurface:
- "PySide2.QtGui.QOffscreenSurface.__init__": [('PySide2.QtGui.QScreen',), ('PySide2.QtGui.QScreen', 'PySide2.QtCore.QObject')],
- "PySide2.QtGui.QOffscreenSurface.create": (),
- "PySide2.QtGui.QOffscreenSurface.destroy": (),
- "PySide2.QtGui.QOffscreenSurface.format": (),
- "PySide2.QtGui.QOffscreenSurface.isValid": (),
- "PySide2.QtGui.QOffscreenSurface.nativeHandle": (),
- "PySide2.QtGui.QOffscreenSurface.requestedFormat": (),
- "PySide2.QtGui.QOffscreenSurface.screen": (),
- "PySide2.QtGui.QOffscreenSurface.setFormat": ('PySide2.QtGui.QSurfaceFormat',),
- "PySide2.QtGui.QOffscreenSurface.setNativeHandle": ('int',),
- "PySide2.QtGui.QOffscreenSurface.setScreen": ('PySide2.QtGui.QScreen',),
- "PySide2.QtGui.QOffscreenSurface.size": (),
- "PySide2.QtGui.QOffscreenSurface.surfaceHandle": (),
- "PySide2.QtGui.QOffscreenSurface.surfaceType": (),
-# class PySide2.QtGui.QOpenGLBuffer:
-# class PySide2.QtGui.QOpenGLBuffer.Access:
-# class PySide2.QtGui.QOpenGLBuffer.RangeAccessFlag:
-# class PySide2.QtGui.QOpenGLBuffer.RangeAccessFlags:
-# class PySide2.QtGui.QOpenGLBuffer.Type:
-# class PySide2.QtGui.QOpenGLBuffer.UsagePattern:
- "PySide2.QtGui.QOpenGLBuffer.__init__": [(), ('PySide2.QtGui.QOpenGLBuffer',), ('PySide2.QtGui.QOpenGLBuffer.Type',)],
- "PySide2.QtGui.QOpenGLBuffer.allocate": [('int',), ('int', 'int')],
- "PySide2.QtGui.QOpenGLBuffer.bind": (),
- "PySide2.QtGui.QOpenGLBuffer.bufferId": (),
- "PySide2.QtGui.QOpenGLBuffer.create": (),
- "PySide2.QtGui.QOpenGLBuffer.destroy": (),
- "PySide2.QtGui.QOpenGLBuffer.isCreated": (),
- "PySide2.QtGui.QOpenGLBuffer.map": ('PySide2.QtGui.QOpenGLBuffer.Access',),
- "PySide2.QtGui.QOpenGLBuffer.mapRange": ('int', 'int', 'PySide2.QtGui.QOpenGLBuffer.RangeAccessFlags'),
- "PySide2.QtGui.QOpenGLBuffer.read": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLBuffer.release": [(), ('PySide2.QtGui.QOpenGLBuffer.Type',)],
- "PySide2.QtGui.QOpenGLBuffer.setUsagePattern": ('PySide2.QtGui.QOpenGLBuffer.UsagePattern',),
- "PySide2.QtGui.QOpenGLBuffer.size": (),
- "PySide2.QtGui.QOpenGLBuffer.type": (),
- "PySide2.QtGui.QOpenGLBuffer.unmap": (),
- "PySide2.QtGui.QOpenGLBuffer.usagePattern": (),
- "PySide2.QtGui.QOpenGLBuffer.write": ('int', 'int', 'int'),
-# class PySide2.QtGui.QOpenGLContext:
-# class PySide2.QtGui.QOpenGLContext.OpenGLModuleType:
- "PySide2.QtGui.QOpenGLContext.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QOpenGLContext.areSharing": ('PySide2.QtGui.QOpenGLContext', 'PySide2.QtGui.QOpenGLContext'),
- "PySide2.QtGui.QOpenGLContext.create": (),
- "PySide2.QtGui.QOpenGLContext.currentContext": (),
- "PySide2.QtGui.QOpenGLContext.defaultFramebufferObject": (),
- "PySide2.QtGui.QOpenGLContext.doneCurrent": (),
- "PySide2.QtGui.QOpenGLContext.extensions": (),
- "PySide2.QtGui.QOpenGLContext.extraFunctions": (),
- "PySide2.QtGui.QOpenGLContext.format": (),
- "PySide2.QtGui.QOpenGLContext.functions": (),
- "PySide2.QtGui.QOpenGLContext.globalShareContext": (),
- "PySide2.QtGui.QOpenGLContext.hasExtension": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QOpenGLContext.isOpenGLES": (),
- "PySide2.QtGui.QOpenGLContext.isValid": (),
- "PySide2.QtGui.QOpenGLContext.makeCurrent": ('PySide2.QtGui.QSurface',),
- "PySide2.QtGui.QOpenGLContext.nativeHandle": (),
- "PySide2.QtGui.QOpenGLContext.openGLModuleHandle": (),
- "PySide2.QtGui.QOpenGLContext.openGLModuleType": (),
- "PySide2.QtGui.QOpenGLContext.screen": (),
- "PySide2.QtGui.QOpenGLContext.setFormat": ('PySide2.QtGui.QSurfaceFormat',),
- "PySide2.QtGui.QOpenGLContext.setNativeHandle": ('typing.Any',),
- "PySide2.QtGui.QOpenGLContext.setScreen": ('PySide2.QtGui.QScreen',),
- "PySide2.QtGui.QOpenGLContext.setShareContext": ('PySide2.QtGui.QOpenGLContext',),
- "PySide2.QtGui.QOpenGLContext.shareContext": (),
- "PySide2.QtGui.QOpenGLContext.shareGroup": (),
- "PySide2.QtGui.QOpenGLContext.supportsThreadedOpenGL": (),
- "PySide2.QtGui.QOpenGLContext.surface": (),
- "PySide2.QtGui.QOpenGLContext.swapBuffers": ('PySide2.QtGui.QSurface',),
- "PySide2.QtGui.QOpenGLContext.versionFunctions": ('PySide2.QtGui.QOpenGLVersionProfile',),
-# class PySide2.QtGui.QOpenGLContextGroup:
- "PySide2.QtGui.QOpenGLContextGroup.currentContextGroup": (),
- "PySide2.QtGui.QOpenGLContextGroup.shares": (),
-# class PySide2.QtGui.QOpenGLDebugLogger:
-# class PySide2.QtGui.QOpenGLDebugLogger.LoggingMode:
- "PySide2.QtGui.QOpenGLDebugLogger.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QOpenGLDebugLogger.disableMessages": [('PySide2.QtGui.QOpenGLDebugMessage.Sources', 'PySide2.QtGui.QOpenGLDebugMessage.Types', 'PySide2.QtGui.QOpenGLDebugMessage.Severities'), ('typing.List[int]', 'PySide2.QtGui.QOpenGLDebugMessage.Sources', 'PySide2.QtGui.QOpenGLDebugMessage.Types')],
- "PySide2.QtGui.QOpenGLDebugLogger.enableMessages": [('PySide2.QtGui.QOpenGLDebugMessage.Sources', 'PySide2.QtGui.QOpenGLDebugMessage.Types', 'PySide2.QtGui.QOpenGLDebugMessage.Severities'), ('typing.List[int]', 'PySide2.QtGui.QOpenGLDebugMessage.Sources', 'PySide2.QtGui.QOpenGLDebugMessage.Types')],
- "PySide2.QtGui.QOpenGLDebugLogger.initialize": (),
- "PySide2.QtGui.QOpenGLDebugLogger.isLogging": (),
- "PySide2.QtGui.QOpenGLDebugLogger.logMessage": ('PySide2.QtGui.QOpenGLDebugMessage',),
- "PySide2.QtGui.QOpenGLDebugLogger.loggedMessages": (),
- "PySide2.QtGui.QOpenGLDebugLogger.loggingMode": (),
- "PySide2.QtGui.QOpenGLDebugLogger.maximumMessageLength": (),
- "PySide2.QtGui.QOpenGLDebugLogger.popGroup": (),
- "PySide2.QtGui.QOpenGLDebugLogger.pushGroup": ('str', 'int', 'PySide2.QtGui.QOpenGLDebugMessage.Source'),
- "PySide2.QtGui.QOpenGLDebugLogger.startLogging": ('PySide2.QtGui.QOpenGLDebugLogger.LoggingMode',),
- "PySide2.QtGui.QOpenGLDebugLogger.stopLogging": (),
-# class PySide2.QtGui.QOpenGLDebugMessage:
-# class PySide2.QtGui.QOpenGLDebugMessage.Severities:
-# class PySide2.QtGui.QOpenGLDebugMessage.Severity:
-# class PySide2.QtGui.QOpenGLDebugMessage.Source:
-# class PySide2.QtGui.QOpenGLDebugMessage.Sources:
-# class PySide2.QtGui.QOpenGLDebugMessage.Type:
-# class PySide2.QtGui.QOpenGLDebugMessage.Types:
- "PySide2.QtGui.QOpenGLDebugMessage.__init__": [(), ('PySide2.QtGui.QOpenGLDebugMessage',)],
- "PySide2.QtGui.QOpenGLDebugMessage.__copy__": (),
- "PySide2.QtGui.QOpenGLDebugMessage.createApplicationMessage": ('str', 'int', 'PySide2.QtGui.QOpenGLDebugMessage.Severity', 'PySide2.QtGui.QOpenGLDebugMessage.Type'),
- "PySide2.QtGui.QOpenGLDebugMessage.createThirdPartyMessage": ('str', 'int', 'PySide2.QtGui.QOpenGLDebugMessage.Severity', 'PySide2.QtGui.QOpenGLDebugMessage.Type'),
- "PySide2.QtGui.QOpenGLDebugMessage.id": (),
- "PySide2.QtGui.QOpenGLDebugMessage.message": (),
- "PySide2.QtGui.QOpenGLDebugMessage.severity": (),
- "PySide2.QtGui.QOpenGLDebugMessage.source": (),
- "PySide2.QtGui.QOpenGLDebugMessage.swap": ('PySide2.QtGui.QOpenGLDebugMessage',),
- "PySide2.QtGui.QOpenGLDebugMessage.type": (),
-# class PySide2.QtGui.QOpenGLExtraFunctions:
- "PySide2.QtGui.QOpenGLExtraFunctions.__init__": [(), ('PySide2.QtGui.QOpenGLContext',)],
- "PySide2.QtGui.QOpenGLExtraFunctions.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBeginQuery": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBeginTransformFeedback": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBindImageTexture": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBindProgramPipeline": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBindSampler": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBindVertexArray": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBlendBarrier": (),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBlendEquationi": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glClearBufferiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glClearBufferuiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glCopyImageSubData": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDebugMessageControl": ('int', 'int', 'int', 'int', 'shibokensupport.typing27.Sequence', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDebugMessageInsert": ('int', 'int', 'int', 'int', 'int', 'str'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDeleteProgramPipelines": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDeleteQueries": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDeleteSamplers": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDeleteTransformFeedbacks": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDeleteVertexArrays": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDisablei": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDispatchCompute": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDrawBuffers": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glEnablei": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glEndQuery": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glFramebufferParameteri": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGenProgramPipelines": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGenQueries": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGenSamplers": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGenTransformFeedbacks": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGenVertexArrays": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetActiveUniformBlockiv": ('int', 'int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetActiveUniformsiv": ('int', 'int', 'shibokensupport.typing27.Sequence', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetBufferParameteri64v": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetFramebufferParameteriv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetGraphicsResetStatus": (),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetInteger64i_v": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetInteger64v": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetIntegeri_v": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetInternalformativ": ('int', 'int', 'int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetMultisamplefv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetProgramBinary": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetProgramInterfaceiv": ('int', 'int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetProgramPipelineiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetProgramResourceIndex": ('int', 'int', 'str'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetProgramResourceLocation": ('int', 'int', 'str'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetProgramResourceiv": ('int', 'int', 'int', 'int', 'shibokensupport.typing27.Sequence', 'int', 'shibokensupport.typing27.Sequence', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetQueryObjectuiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetQueryiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetSamplerParameterIiv": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetSamplerParameterIuiv": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetSamplerParameteriv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetStringi": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetTexLevelParameterfv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetTexLevelParameteriv": ('int', 'int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetTexParameterIiv": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetTexParameterIuiv": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetUniformuiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetVertexAttribIiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetVertexAttribIuiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetnUniformfv": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetnUniformiv": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetnUniformuiv": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glInvalidateFramebuffer": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glInvalidateSubFramebuffer": ('int', 'int', 'shibokensupport.typing27.Sequence', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glIsEnabledi": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glIsProgramPipeline": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glIsQuery": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glIsSampler": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glIsTransformFeedback": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glIsVertexArray": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glMemoryBarrier": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glMemoryBarrierByRegion": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glMinSampleShading": ('float',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glObjectLabel": ('int', 'int', 'int', 'str'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glObjectPtrLabel": ('int', 'int', 'str'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glPatchParameteri": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glPopDebugGroup": (),
- "PySide2.QtGui.QOpenGLExtraFunctions.glPrimitiveBoundingBox": ('float', 'float', 'float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform1iv": ('int', 'int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform1uiv": ('int', 'int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform2iv": ('int', 'int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform2uiv": ('int', 'int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform3iv": ('int', 'int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform3uiv": ('int', 'int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform4iv": ('int', 'int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform4uiv": ('int', 'int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glPushDebugGroup": ('int', 'int', 'int', 'str'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glReadBuffer": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glReadnPixels": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glSampleMaski": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glSamplerParameterIiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glSamplerParameterIuiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glSamplerParameteriv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glTexParameterIiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glTexParameterIuiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glTexStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glTexStorage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glTexStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glTexStorage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniform1ui": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniform1uiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniform2uiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniform3uiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniform4uiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUnmapBuffer": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glValidateProgramPipeline": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glVertexAttribBinding": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glVertexAttribFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glVertexAttribI4iv": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glVertexAttribI4uiv": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glVertexAttribIFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glVertexBindingDivisor": ('int', 'int'),
-# class PySide2.QtGui.QOpenGLFramebufferObject:
-# class PySide2.QtGui.QOpenGLFramebufferObject.Attachment:
-# class PySide2.QtGui.QOpenGLFramebufferObject.FramebufferRestorePolicy:
- "PySide2.QtGui.QOpenGLFramebufferObject.__init__": [('PySide2.QtCore.QSize', 'PySide2.QtGui.QOpenGLFramebufferObject.Attachment', 'int', 'int'), ('PySide2.QtCore.QSize', 'PySide2.QtGui.QOpenGLFramebufferObjectFormat'), ('PySide2.QtCore.QSize', 'int'), ('int', 'int', 'PySide2.QtGui.QOpenGLFramebufferObject.Attachment', 'int', 'int'), ('int', 'int', 'PySide2.QtGui.QOpenGLFramebufferObjectFormat'), ('int', 'int', 'int')],
- "PySide2.QtGui.QOpenGLFramebufferObject.addColorAttachment": [('PySide2.QtCore.QSize', 'int'), ('int', 'int', 'int')],
- "PySide2.QtGui.QOpenGLFramebufferObject.attachment": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.bind": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.bindDefault": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.blitFramebuffer": [('PySide2.QtGui.QOpenGLFramebufferObject', 'PySide2.QtCore.QRect', 'PySide2.QtGui.QOpenGLFramebufferObject', 'PySide2.QtCore.QRect', 'int', 'int'), ('PySide2.QtGui.QOpenGLFramebufferObject', 'PySide2.QtCore.QRect', 'PySide2.QtGui.QOpenGLFramebufferObject', 'PySide2.QtCore.QRect', 'int', 'int', 'int', 'int'), ('PySide2.QtGui.QOpenGLFramebufferObject', 'PySide2.QtCore.QRect', 'PySide2.QtGui.QOpenGLFramebufferObject', 'PySide2.QtCore.QRect', 'int', 'int', 'int', 'int', 'PySide2.QtGui.QOpenGLFramebufferObject.FramebufferRestorePolicy'), ('PySide2.QtGui.QOpenGLFramebufferObject', 'PySide2.QtGui.QOpenGLFramebufferObject', 'int', 'int')],
- "PySide2.QtGui.QOpenGLFramebufferObject.format": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.handle": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.hasOpenGLFramebufferBlit": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.hasOpenGLFramebufferObjects": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.height": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.isBound": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.isValid": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.release": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.setAttachment": ('PySide2.QtGui.QOpenGLFramebufferObject.Attachment',),
- "PySide2.QtGui.QOpenGLFramebufferObject.size": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.sizes": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.takeTexture": [(), ('int',)],
- "PySide2.QtGui.QOpenGLFramebufferObject.texture": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.textures": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.toImage": [(), ('bool',), ('bool', 'int')],
- "PySide2.QtGui.QOpenGLFramebufferObject.width": (),
-# class PySide2.QtGui.QOpenGLFramebufferObjectFormat:
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.__init__": [(), ('PySide2.QtGui.QOpenGLFramebufferObjectFormat',)],
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.__copy__": (),
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.attachment": (),
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.internalTextureFormat": (),
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.mipmap": (),
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.samples": (),
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.setAttachment": ('PySide2.QtGui.QOpenGLFramebufferObject.Attachment',),
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.setInternalTextureFormat": ('int',),
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.setMipmap": ('bool',),
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.setSamples": ('int',),
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.setTextureTarget": ('int',),
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.textureTarget": (),
-# class PySide2.QtGui.QOpenGLFunctions:
-# class PySide2.QtGui.QOpenGLFunctions.OpenGLFeature:
-# class PySide2.QtGui.QOpenGLFunctions.OpenGLFeatures:
- "PySide2.QtGui.QOpenGLFunctions.__init__": [(), ('PySide2.QtGui.QOpenGLContext',)],
- "PySide2.QtGui.QOpenGLFunctions.glActiveTexture": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glAttachShader": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtGui.QOpenGLFunctions.glBindBuffer": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glBindTexture": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glBlendEquation": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glBlendFunc": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glCheckFramebufferStatus": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glClear": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glClearDepthf": ('float',),
- "PySide2.QtGui.QOpenGLFunctions.glClearStencil": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glCompileShader": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glCreateProgram": (),
- "PySide2.QtGui.QOpenGLFunctions.glCreateShader": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glCullFace": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glDeleteBuffers": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glDeleteFramebuffers": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glDeleteProgram": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glDeleteRenderbuffers": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glDeleteShader": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glDeleteTextures": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glDepthFunc": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glDepthMask": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glDepthRangef": ('float', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glDetachShader": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glDisable": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glDisableVertexAttribArray": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glEnable": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glEnableVertexAttribArray": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glFinish": (),
- "PySide2.QtGui.QOpenGLFunctions.glFlush": (),
- "PySide2.QtGui.QOpenGLFunctions.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glFrontFace": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glGenBuffers": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGenFramebuffers": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGenRenderbuffers": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGenTextures": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGenerateMipmap": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glGetAttachedShaders": ('int', 'int', 'shibokensupport.typing27.Sequence', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtGui.QOpenGLFunctions.glGetBufferParameteriv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetError": (),
- "PySide2.QtGui.QOpenGLFunctions.glGetFloatv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glGetFramebufferAttachmentParameteriv": ('int', 'int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetIntegerv": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetProgramiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetRenderbufferParameteriv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetShaderPrecisionFormat": ('int', 'int', 'shibokensupport.typing27.Sequence', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetShaderiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetString": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glGetTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glGetTexParameteriv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtGui.QOpenGLFunctions.glGetUniformfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glGetUniformiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetVertexAttribfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glGetVertexAttribiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glHint": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glIsBuffer": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glIsEnabled": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glIsFramebuffer": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glIsProgram": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glIsRenderbuffer": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glIsShader": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glIsTexture": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glLineWidth": ('float',),
- "PySide2.QtGui.QOpenGLFunctions.glLinkProgram": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glPixelStorei": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glPolygonOffset": ('float', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glReadPixels": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glReleaseShaderCompiler": (),
- "PySide2.QtGui.QOpenGLFunctions.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glSampleCoverage": ('float', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glShaderBinary": ('int', 'shibokensupport.typing27.Sequence', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glStencilMask": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glTexParameteriv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform1f": ('int', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform1i": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform1iv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform2iv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform3iv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform4iv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glUseProgram": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glValidateProgram": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.hasOpenGLFeature": ('PySide2.QtGui.QOpenGLFunctions.OpenGLFeature',),
- "PySide2.QtGui.QOpenGLFunctions.initializeOpenGLFunctions": (),
- "PySide2.QtGui.QOpenGLFunctions.openGLFeatures": (),
-# class PySide2.QtGui.QOpenGLPixelTransferOptions:
- "PySide2.QtGui.QOpenGLPixelTransferOptions.__init__": [(), ('PySide2.QtGui.QOpenGLPixelTransferOptions',)],
- "PySide2.QtGui.QOpenGLPixelTransferOptions.__copy__": (),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.alignment": (),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.imageHeight": (),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.isLeastSignificantBitFirst": (),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.isSwapBytesEnabled": (),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.rowLength": (),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.setAlignment": ('int',),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.setImageHeight": ('int',),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.setLeastSignificantByteFirst": ('bool',),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.setRowLength": ('int',),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.setSkipImages": ('int',),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.setSkipPixels": ('int',),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.setSkipRows": ('int',),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.setSwapBytesEnabled": ('bool',),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.skipImages": (),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.skipPixels": (),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.skipRows": (),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.swap": ('PySide2.QtGui.QOpenGLPixelTransferOptions',),
-# class PySide2.QtGui.QOpenGLShader:
-# class PySide2.QtGui.QOpenGLShader.ShaderType:
-# class PySide2.QtGui.QOpenGLShader.ShaderTypeBit:
- "PySide2.QtGui.QOpenGLShader.__init__": ('PySide2.QtGui.QOpenGLShader.ShaderType', 'PySide2.QtCore.QObject'),
- "PySide2.QtGui.QOpenGLShader.compileSourceCode": [('PySide2.QtCore.QByteArray',), ('str',)],
- "PySide2.QtGui.QOpenGLShader.compileSourceFile": ('str',),
- "PySide2.QtGui.QOpenGLShader.hasOpenGLShaders": ('PySide2.QtGui.QOpenGLShader.ShaderType', 'PySide2.QtGui.QOpenGLContext'),
- "PySide2.QtGui.QOpenGLShader.isCompiled": (),
- "PySide2.QtGui.QOpenGLShader.log": (),
- "PySide2.QtGui.QOpenGLShader.shaderId": (),
- "PySide2.QtGui.QOpenGLShader.shaderType": (),
- "PySide2.QtGui.QOpenGLShader.sourceCode": (),
-# class PySide2.QtGui.QOpenGLShaderProgram:
- "PySide2.QtGui.QOpenGLShaderProgram.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QOpenGLShaderProgram.addCacheableShaderFromSourceCode": [('PySide2.QtGui.QOpenGLShader.ShaderType', 'PySide2.QtCore.QByteArray'), ('PySide2.QtGui.QOpenGLShader.ShaderType', 'str')],
- "PySide2.QtGui.QOpenGLShaderProgram.addCacheableShaderFromSourceFile": ('PySide2.QtGui.QOpenGLShader.ShaderType', 'str'),
- "PySide2.QtGui.QOpenGLShaderProgram.addShader": ('PySide2.QtGui.QOpenGLShader',),
- "PySide2.QtGui.QOpenGLShaderProgram.addShaderFromSourceCode": [('PySide2.QtGui.QOpenGLShader.ShaderType', 'PySide2.QtCore.QByteArray'), ('PySide2.QtGui.QOpenGLShader.ShaderType', 'str')],
- "PySide2.QtGui.QOpenGLShaderProgram.addShaderFromSourceFile": ('PySide2.QtGui.QOpenGLShader.ShaderType', 'str'),
- "PySide2.QtGui.QOpenGLShaderProgram.attributeLocation": [('PySide2.QtCore.QByteArray',), ('str',)],
- "PySide2.QtGui.QOpenGLShaderProgram.bind": (),
- "PySide2.QtGui.QOpenGLShaderProgram.bindAttributeLocation": [('PySide2.QtCore.QByteArray', 'int'), ('str', 'int')],
- "PySide2.QtGui.QOpenGLShaderProgram.create": (),
- "PySide2.QtGui.QOpenGLShaderProgram.defaultInnerTessellationLevels": (),
- "PySide2.QtGui.QOpenGLShaderProgram.defaultOuterTessellationLevels": (),
- "PySide2.QtGui.QOpenGLShaderProgram.disableAttributeArray": [('int',), ('str',)],
- "PySide2.QtGui.QOpenGLShaderProgram.enableAttributeArray": [('int',), ('str',)],
- "PySide2.QtGui.QOpenGLShaderProgram.hasOpenGLShaderPrograms": ('PySide2.QtGui.QOpenGLContext',),
- "PySide2.QtGui.QOpenGLShaderProgram.isLinked": (),
- "PySide2.QtGui.QOpenGLShaderProgram.link": (),
- "PySide2.QtGui.QOpenGLShaderProgram.log": (),
- "PySide2.QtGui.QOpenGLShaderProgram.maxGeometryOutputVertices": (),
- "PySide2.QtGui.QOpenGLShaderProgram.patchVertexCount": (),
- "PySide2.QtGui.QOpenGLShaderProgram.programId": (),
- "PySide2.QtGui.QOpenGLShaderProgram.release": (),
- "PySide2.QtGui.QOpenGLShaderProgram.removeAllShaders": (),
- "PySide2.QtGui.QOpenGLShaderProgram.removeShader": ('PySide2.QtGui.QOpenGLShader',),
- "PySide2.QtGui.QOpenGLShaderProgram.setAttributeArray": [('int', 'int', 'int', 'int', 'int'), ('int', 'typing.Sequence[float]', 'int', 'int'), ('str', 'int', 'int', 'int', 'int'), ('str', 'typing.Sequence[float]', 'int', 'int')],
- "PySide2.QtGui.QOpenGLShaderProgram.setAttributeBuffer": [('int', 'int', 'int', 'int', 'int'), ('str', 'int', 'int', 'int', 'int')],
- "PySide2.QtGui.QOpenGLShaderProgram.setAttributeValue": [('int', 'PySide2.QtGui.QColor'), ('int', 'PySide2.QtGui.QVector2D'), ('int', 'PySide2.QtGui.QVector3D'), ('int', 'PySide2.QtGui.QVector4D'), ('int', 'float'), ('int', 'float', 'float'), ('int', 'float', 'float', 'float'), ('int', 'float', 'float', 'float', 'float'), ('int', 'typing.Sequence[float]', 'int', 'int'), ('str', 'PySide2.QtGui.QColor'), ('str', 'PySide2.QtGui.QVector2D'), ('str', 'PySide2.QtGui.QVector3D'), ('str', 'PySide2.QtGui.QVector4D'), ('str', 'float'), ('str', 'float', 'float'), ('str', 'float', 'float', 'float'), ('str', 'float', 'float', 'float', 'float'), ('str', 'typing.Sequence[float]', 'int', 'int')],
- "PySide2.QtGui.QOpenGLShaderProgram.setDefaultInnerTessellationLevels": ('typing.List[float]',),
- "PySide2.QtGui.QOpenGLShaderProgram.setDefaultOuterTessellationLevels": ('typing.List[float]',),
- "PySide2.QtGui.QOpenGLShaderProgram.setPatchVertexCount": ('int',),
- "PySide2.QtGui.QOpenGLShaderProgram.setUniformValue": [('int', 'PySide2.QtCore.QPoint'), ('int', 'PySide2.QtCore.QPointF'), ('int', 'PySide2.QtCore.QSize'), ('int', 'PySide2.QtCore.QSizeF'), ('int', 'PySide2.QtGui.QColor'), ('int', 'PySide2.QtGui.QMatrix2x2'), ('int', 'PySide2.QtGui.QMatrix2x3'), ('int', 'PySide2.QtGui.QMatrix2x4'), ('int', 'PySide2.QtGui.QMatrix3x2'), ('int', 'PySide2.QtGui.QMatrix3x3'), ('int', 'PySide2.QtGui.QMatrix3x4'), ('int', 'PySide2.QtGui.QMatrix4x2'), ('int', 'PySide2.QtGui.QMatrix4x3'), ('int', 'PySide2.QtGui.QMatrix4x4'), ('int', 'PySide2.QtGui.QTransform'), ('int', 'PySide2.QtGui.QVector2D'), ('int', 'PySide2.QtGui.QVector3D'), ('int', 'PySide2.QtGui.QVector4D'), ('int', 'float'), ('int', 'float', 'float'), ('int', 'float', 'float', 'float'), ('int', 'float', 'float', 'float', 'float'), ('int', 'int'), ('int', 'typing.Tuple[typing.Tuple, typing.Tuple, typing.Tuple, typing.Tuple]'), ('int', 'typing.Tuple[typing.Tuple, typing.Tuple, typing.Tuple]'), ('int', 'typing.Tuple[typing.Tuple, typing.Tuple]'), ('str', 'PySide2.QtCore.QPoint'), ('str', 'PySide2.QtCore.QPointF'), ('str', 'PySide2.QtCore.QSize'), ('str', 'PySide2.QtCore.QSizeF'), ('str', 'PySide2.QtGui.QColor'), ('str', 'PySide2.QtGui.QMatrix2x2'), ('str', 'PySide2.QtGui.QMatrix2x3'), ('str', 'PySide2.QtGui.QMatrix2x4'), ('str', 'PySide2.QtGui.QMatrix3x2'), ('str', 'PySide2.QtGui.QMatrix3x3'), ('str', 'PySide2.QtGui.QMatrix3x4'), ('str', 'PySide2.QtGui.QMatrix4x2'), ('str', 'PySide2.QtGui.QMatrix4x3'), ('str', 'PySide2.QtGui.QMatrix4x4'), ('str', 'PySide2.QtGui.QTransform'), ('str', 'PySide2.QtGui.QVector2D'), ('str', 'PySide2.QtGui.QVector3D'), ('str', 'PySide2.QtGui.QVector4D'), ('str', 'float', 'float'), ('str', 'float', 'float', 'float'), ('str', 'float', 'float', 'float', 'float'), ('str', 'typing.Tuple[typing.Tuple, typing.Tuple, typing.Tuple, typing.Tuple]'), ('str', 'typing.Tuple[typing.Tuple, typing.Tuple, typing.Tuple]'), ('str', 'typing.Tuple[typing.Tuple, typing.Tuple]')],
- "PySide2.QtGui.QOpenGLShaderProgram.setUniformValue1f": [('int', 'float'), ('str', 'float')],
- "PySide2.QtGui.QOpenGLShaderProgram.setUniformValue1i": [('int', 'int'), ('str', 'int')],
- "PySide2.QtGui.QOpenGLShaderProgram.setUniformValueArray": [('int', 'shibokensupport.typing27.Sequence', 'int'), ('int', 'typing.Sequence[float]', 'int', 'int'), ('str', 'shibokensupport.typing27.Sequence', 'int'), ('str', 'typing.Sequence[float]', 'int', 'int')],
- "PySide2.QtGui.QOpenGLShaderProgram.shaders": (),
- "PySide2.QtGui.QOpenGLShaderProgram.uniformLocation": [('PySide2.QtCore.QByteArray',), ('str',)],
-# class PySide2.QtGui.QOpenGLTexture:
-# class PySide2.QtGui.QOpenGLTexture.BindingTarget:
-# class PySide2.QtGui.QOpenGLTexture.ComparisonFunction:
-# class PySide2.QtGui.QOpenGLTexture.ComparisonMode:
-# class PySide2.QtGui.QOpenGLTexture.CoordinateDirection:
-# class PySide2.QtGui.QOpenGLTexture.CubeMapFace:
-# class PySide2.QtGui.QOpenGLTexture.DepthStencilMode:
-# class PySide2.QtGui.QOpenGLTexture.Feature:
-# class PySide2.QtGui.QOpenGLTexture.Features:
-# class PySide2.QtGui.QOpenGLTexture.Filter:
-# class PySide2.QtGui.QOpenGLTexture.MipMapGeneration:
-# class PySide2.QtGui.QOpenGLTexture.PixelFormat:
-# class PySide2.QtGui.QOpenGLTexture.PixelType:
-# class PySide2.QtGui.QOpenGLTexture.SwizzleComponent:
-# class PySide2.QtGui.QOpenGLTexture.SwizzleValue:
-# class PySide2.QtGui.QOpenGLTexture.Target:
-# class PySide2.QtGui.QOpenGLTexture.TextureFormat:
-# class PySide2.QtGui.QOpenGLTexture.TextureFormatClass:
-# class PySide2.QtGui.QOpenGLTexture.TextureUnitReset:
-# class PySide2.QtGui.QOpenGLTexture.WrapMode:
- "PySide2.QtGui.QOpenGLTexture.__init__": [('PySide2.QtGui.QImage', 'PySide2.QtGui.QOpenGLTexture.MipMapGeneration'), ('PySide2.QtGui.QOpenGLTexture.Target',)],
- "PySide2.QtGui.QOpenGLTexture.allocateStorage": [(), ('PySide2.QtGui.QOpenGLTexture.PixelFormat', 'PySide2.QtGui.QOpenGLTexture.PixelType')],
- "PySide2.QtGui.QOpenGLTexture.bind": [(), ('int', 'PySide2.QtGui.QOpenGLTexture.TextureUnitReset')],
- "PySide2.QtGui.QOpenGLTexture.borderColor": (),
- "PySide2.QtGui.QOpenGLTexture.boundTextureId": [('PySide2.QtGui.QOpenGLTexture.BindingTarget',), ('int', 'PySide2.QtGui.QOpenGLTexture.BindingTarget')],
- "PySide2.QtGui.QOpenGLTexture.comparisonFunction": (),
- "PySide2.QtGui.QOpenGLTexture.comparisonMode": (),
- "PySide2.QtGui.QOpenGLTexture.create": (),
- "PySide2.QtGui.QOpenGLTexture.createTextureView": ('PySide2.QtGui.QOpenGLTexture.Target', 'PySide2.QtGui.QOpenGLTexture.TextureFormat', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLTexture.depth": (),
- "PySide2.QtGui.QOpenGLTexture.depthStencilMode": (),
- "PySide2.QtGui.QOpenGLTexture.destroy": (),
- "PySide2.QtGui.QOpenGLTexture.faces": (),
- "PySide2.QtGui.QOpenGLTexture.format": (),
- "PySide2.QtGui.QOpenGLTexture.generateMipMaps": [(), ('int', 'bool')],
- "PySide2.QtGui.QOpenGLTexture.hasFeature": ('PySide2.QtGui.QOpenGLTexture.Feature',),
- "PySide2.QtGui.QOpenGLTexture.height": (),
- "PySide2.QtGui.QOpenGLTexture.isAutoMipMapGenerationEnabled": (),
- "PySide2.QtGui.QOpenGLTexture.isBound": [(), ('int',)],
- "PySide2.QtGui.QOpenGLTexture.isCreated": (),
- "PySide2.QtGui.QOpenGLTexture.isFixedSamplePositions": (),
- "PySide2.QtGui.QOpenGLTexture.isStorageAllocated": (),
- "PySide2.QtGui.QOpenGLTexture.isTextureView": (),
- "PySide2.QtGui.QOpenGLTexture.layers": (),
- "PySide2.QtGui.QOpenGLTexture.levelOfDetailRange": (),
- "PySide2.QtGui.QOpenGLTexture.levelofDetailBias": (),
- "PySide2.QtGui.QOpenGLTexture.magnificationFilter": (),
- "PySide2.QtGui.QOpenGLTexture.maximumAnisotropy": (),
- "PySide2.QtGui.QOpenGLTexture.maximumLevelOfDetail": (),
- "PySide2.QtGui.QOpenGLTexture.maximumMipLevels": (),
- "PySide2.QtGui.QOpenGLTexture.minMagFilters": (),
- "PySide2.QtGui.QOpenGLTexture.minificationFilter": (),
- "PySide2.QtGui.QOpenGLTexture.minimumLevelOfDetail": (),
- "PySide2.QtGui.QOpenGLTexture.mipBaseLevel": (),
- "PySide2.QtGui.QOpenGLTexture.mipLevelRange": (),
- "PySide2.QtGui.QOpenGLTexture.mipLevels": (),
- "PySide2.QtGui.QOpenGLTexture.mipMaxLevel": (),
- "PySide2.QtGui.QOpenGLTexture.release": [(), ('int', 'PySide2.QtGui.QOpenGLTexture.TextureUnitReset')],
- "PySide2.QtGui.QOpenGLTexture.samples": (),
- "PySide2.QtGui.QOpenGLTexture.setAutoMipMapGenerationEnabled": ('bool',),
- "PySide2.QtGui.QOpenGLTexture.setBorderColor": [('PySide2.QtGui.QColor',), ('float', 'float', 'float', 'float'), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QOpenGLTexture.setComparisonFunction": ('PySide2.QtGui.QOpenGLTexture.ComparisonFunction',),
- "PySide2.QtGui.QOpenGLTexture.setComparisonMode": ('PySide2.QtGui.QOpenGLTexture.ComparisonMode',),
- "PySide2.QtGui.QOpenGLTexture.setCompressedData": [('int', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'PySide2.QtGui.QOpenGLTexture.CubeMapFace', 'int', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'int', 'PySide2.QtGui.QOpenGLTexture.CubeMapFace', 'int', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'int', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions')],
- "PySide2.QtGui.QOpenGLTexture.setData": [('PySide2.QtGui.QImage', 'PySide2.QtGui.QOpenGLTexture.MipMapGeneration'), ('PySide2.QtGui.QOpenGLTexture.PixelFormat', 'PySide2.QtGui.QOpenGLTexture.PixelType', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'PySide2.QtGui.QOpenGLTexture.PixelFormat', 'PySide2.QtGui.QOpenGLTexture.PixelType', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'PySide2.QtGui.QOpenGLTexture.CubeMapFace', 'PySide2.QtGui.QOpenGLTexture.PixelFormat', 'PySide2.QtGui.QOpenGLTexture.PixelType', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'PySide2.QtGui.QOpenGLTexture.PixelFormat', 'PySide2.QtGui.QOpenGLTexture.PixelType', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'int', 'PySide2.QtGui.QOpenGLTexture.CubeMapFace', 'PySide2.QtGui.QOpenGLTexture.PixelFormat', 'PySide2.QtGui.QOpenGLTexture.PixelType', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'int', 'int', 'int', 'int', 'PySide2.QtGui.QOpenGLTexture.PixelFormat', 'PySide2.QtGui.QOpenGLTexture.PixelType', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'PySide2.QtGui.QOpenGLTexture.CubeMapFace', 'PySide2.QtGui.QOpenGLTexture.PixelFormat', 'PySide2.QtGui.QOpenGLTexture.PixelType', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'PySide2.QtGui.QOpenGLTexture.CubeMapFace', 'int', 'PySide2.QtGui.QOpenGLTexture.PixelFormat', 'PySide2.QtGui.QOpenGLTexture.PixelType', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'PySide2.QtGui.QOpenGLTexture.PixelFormat', 'PySide2.QtGui.QOpenGLTexture.PixelType', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions')],
- "PySide2.QtGui.QOpenGLTexture.setDepthStencilMode": ('PySide2.QtGui.QOpenGLTexture.DepthStencilMode',),
- "PySide2.QtGui.QOpenGLTexture.setFixedSamplePositions": ('bool',),
- "PySide2.QtGui.QOpenGLTexture.setFormat": ('PySide2.QtGui.QOpenGLTexture.TextureFormat',),
- "PySide2.QtGui.QOpenGLTexture.setLayers": ('int',),
- "PySide2.QtGui.QOpenGLTexture.setLevelOfDetailRange": ('float', 'float'),
- "PySide2.QtGui.QOpenGLTexture.setLevelofDetailBias": ('float',),
- "PySide2.QtGui.QOpenGLTexture.setMagnificationFilter": ('PySide2.QtGui.QOpenGLTexture.Filter',),
- "PySide2.QtGui.QOpenGLTexture.setMaximumAnisotropy": ('float',),
- "PySide2.QtGui.QOpenGLTexture.setMaximumLevelOfDetail": ('float',),
- "PySide2.QtGui.QOpenGLTexture.setMinMagFilters": ('PySide2.QtGui.QOpenGLTexture.Filter', 'PySide2.QtGui.QOpenGLTexture.Filter'),
- "PySide2.QtGui.QOpenGLTexture.setMinificationFilter": ('PySide2.QtGui.QOpenGLTexture.Filter',),
- "PySide2.QtGui.QOpenGLTexture.setMinimumLevelOfDetail": ('float',),
- "PySide2.QtGui.QOpenGLTexture.setMipBaseLevel": ('int',),
- "PySide2.QtGui.QOpenGLTexture.setMipLevelRange": ('int', 'int'),
- "PySide2.QtGui.QOpenGLTexture.setMipLevels": ('int',),
- "PySide2.QtGui.QOpenGLTexture.setMipMaxLevel": ('int',),
- "PySide2.QtGui.QOpenGLTexture.setSamples": ('int',),
- "PySide2.QtGui.QOpenGLTexture.setSize": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLTexture.setSwizzleMask": [('PySide2.QtGui.QOpenGLTexture.SwizzleComponent', 'PySide2.QtGui.QOpenGLTexture.SwizzleValue'), ('PySide2.QtGui.QOpenGLTexture.SwizzleValue', 'PySide2.QtGui.QOpenGLTexture.SwizzleValue', 'PySide2.QtGui.QOpenGLTexture.SwizzleValue', 'PySide2.QtGui.QOpenGLTexture.SwizzleValue')],
- "PySide2.QtGui.QOpenGLTexture.setWrapMode": [('PySide2.QtGui.QOpenGLTexture.CoordinateDirection', 'PySide2.QtGui.QOpenGLTexture.WrapMode'), ('PySide2.QtGui.QOpenGLTexture.WrapMode',)],
- "PySide2.QtGui.QOpenGLTexture.swizzleMask": ('PySide2.QtGui.QOpenGLTexture.SwizzleComponent',),
- "PySide2.QtGui.QOpenGLTexture.target": (),
- "PySide2.QtGui.QOpenGLTexture.textureId": (),
- "PySide2.QtGui.QOpenGLTexture.width": (),
- "PySide2.QtGui.QOpenGLTexture.wrapMode": ('PySide2.QtGui.QOpenGLTexture.CoordinateDirection',),
-# class PySide2.QtGui.QOpenGLTextureBlitter:
-# class PySide2.QtGui.QOpenGLTextureBlitter.Origin:
- "PySide2.QtGui.QOpenGLTextureBlitter.__init__": (),
- "PySide2.QtGui.QOpenGLTextureBlitter.bind": ('int',),
- "PySide2.QtGui.QOpenGLTextureBlitter.blit": [('int', 'PySide2.QtGui.QMatrix4x4', 'PySide2.QtGui.QMatrix3x3'), ('int', 'PySide2.QtGui.QMatrix4x4', 'PySide2.QtGui.QOpenGLTextureBlitter.Origin')],
- "PySide2.QtGui.QOpenGLTextureBlitter.create": (),
- "PySide2.QtGui.QOpenGLTextureBlitter.destroy": (),
- "PySide2.QtGui.QOpenGLTextureBlitter.isCreated": (),
- "PySide2.QtGui.QOpenGLTextureBlitter.release": (),
- "PySide2.QtGui.QOpenGLTextureBlitter.setOpacity": ('float',),
- "PySide2.QtGui.QOpenGLTextureBlitter.setRedBlueSwizzle": ('bool',),
- "PySide2.QtGui.QOpenGLTextureBlitter.sourceTransform": ('PySide2.QtCore.QRectF', 'PySide2.QtCore.QSize', 'PySide2.QtGui.QOpenGLTextureBlitter.Origin'),
- "PySide2.QtGui.QOpenGLTextureBlitter.supportsExternalOESTarget": (),
- "PySide2.QtGui.QOpenGLTextureBlitter.targetTransform": ('PySide2.QtCore.QRectF', 'PySide2.QtCore.QRect'),
-# class PySide2.QtGui.QOpenGLTimeMonitor:
- "PySide2.QtGui.QOpenGLTimeMonitor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QOpenGLTimeMonitor.create": (),
- "PySide2.QtGui.QOpenGLTimeMonitor.destroy": (),
- "PySide2.QtGui.QOpenGLTimeMonitor.isCreated": (),
- "PySide2.QtGui.QOpenGLTimeMonitor.isResultAvailable": (),
- "PySide2.QtGui.QOpenGLTimeMonitor.objectIds": (),
- "PySide2.QtGui.QOpenGLTimeMonitor.recordSample": (),
- "PySide2.QtGui.QOpenGLTimeMonitor.reset": (),
- "PySide2.QtGui.QOpenGLTimeMonitor.sampleCount": (),
- "PySide2.QtGui.QOpenGLTimeMonitor.setSampleCount": ('int',),
- "PySide2.QtGui.QOpenGLTimeMonitor.waitForIntervals": (),
- "PySide2.QtGui.QOpenGLTimeMonitor.waitForSamples": (),
-# class PySide2.QtGui.QOpenGLTimerQuery:
- "PySide2.QtGui.QOpenGLTimerQuery.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QOpenGLTimerQuery.begin": (),
- "PySide2.QtGui.QOpenGLTimerQuery.create": (),
- "PySide2.QtGui.QOpenGLTimerQuery.destroy": (),
- "PySide2.QtGui.QOpenGLTimerQuery.end": (),
- "PySide2.QtGui.QOpenGLTimerQuery.isCreated": (),
- "PySide2.QtGui.QOpenGLTimerQuery.isResultAvailable": (),
- "PySide2.QtGui.QOpenGLTimerQuery.objectId": (),
- "PySide2.QtGui.QOpenGLTimerQuery.recordTimestamp": (),
- "PySide2.QtGui.QOpenGLTimerQuery.waitForResult": (),
- "PySide2.QtGui.QOpenGLTimerQuery.waitForTimestamp": (),
-# class PySide2.QtGui.QOpenGLVersionProfile:
- "PySide2.QtGui.QOpenGLVersionProfile.__init__": [(), ('PySide2.QtGui.QOpenGLVersionProfile',), ('PySide2.QtGui.QSurfaceFormat',)],
- "PySide2.QtGui.QOpenGLVersionProfile.__copy__": (),
- "PySide2.QtGui.QOpenGLVersionProfile.hasProfiles": (),
- "PySide2.QtGui.QOpenGLVersionProfile.isLegacyVersion": (),
- "PySide2.QtGui.QOpenGLVersionProfile.isValid": (),
- "PySide2.QtGui.QOpenGLVersionProfile.profile": (),
- "PySide2.QtGui.QOpenGLVersionProfile.setProfile": ('PySide2.QtGui.QSurfaceFormat.OpenGLContextProfile',),
- "PySide2.QtGui.QOpenGLVersionProfile.setVersion": ('int', 'int'),
- "PySide2.QtGui.QOpenGLVersionProfile.version": (),
-# class PySide2.QtGui.QOpenGLVertexArrayObject:
-# class PySide2.QtGui.QOpenGLVertexArrayObject.Binder:
- "PySide2.QtGui.QOpenGLVertexArrayObject.Binder.__init__": ('PySide2.QtGui.QOpenGLVertexArrayObject',),
- "PySide2.QtGui.QOpenGLVertexArrayObject.Binder.rebind": (),
- "PySide2.QtGui.QOpenGLVertexArrayObject.Binder.release": (),
- "PySide2.QtGui.QOpenGLVertexArrayObject.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QOpenGLVertexArrayObject.bind": (),
- "PySide2.QtGui.QOpenGLVertexArrayObject.create": (),
- "PySide2.QtGui.QOpenGLVertexArrayObject.destroy": (),
- "PySide2.QtGui.QOpenGLVertexArrayObject.isCreated": (),
- "PySide2.QtGui.QOpenGLVertexArrayObject.objectId": (),
- "PySide2.QtGui.QOpenGLVertexArrayObject.release": (),
-# class PySide2.QtGui.QOpenGLWindow:
-# class PySide2.QtGui.QOpenGLWindow.UpdateBehavior:
- "PySide2.QtGui.QOpenGLWindow.__init__": [('PySide2.QtGui.QOpenGLContext', 'PySide2.QtGui.QOpenGLWindow.UpdateBehavior', 'PySide2.QtGui.QWindow'), ('PySide2.QtGui.QOpenGLWindow.UpdateBehavior', 'PySide2.QtGui.QWindow')],
- "PySide2.QtGui.QOpenGLWindow.context": (),
- "PySide2.QtGui.QOpenGLWindow.defaultFramebufferObject": (),
- "PySide2.QtGui.QOpenGLWindow.doneCurrent": (),
- "PySide2.QtGui.QOpenGLWindow.grabFramebuffer": (),
- "PySide2.QtGui.QOpenGLWindow.initializeGL": (),
- "PySide2.QtGui.QOpenGLWindow.isValid": (),
- "PySide2.QtGui.QOpenGLWindow.makeCurrent": (),
- "PySide2.QtGui.QOpenGLWindow.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtGui.QOpenGLWindow.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtGui.QOpenGLWindow.paintGL": (),
- "PySide2.QtGui.QOpenGLWindow.paintOverGL": (),
- "PySide2.QtGui.QOpenGLWindow.paintUnderGL": (),
- "PySide2.QtGui.QOpenGLWindow.redirected": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QOpenGLWindow.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtGui.QOpenGLWindow.resizeGL": ('int', 'int'),
- "PySide2.QtGui.QOpenGLWindow.shareContext": (),
- "PySide2.QtGui.QOpenGLWindow.updateBehavior": (),
-# class PySide2.QtGui.QPageLayout:
-# class PySide2.QtGui.QPageLayout.Mode:
-# class PySide2.QtGui.QPageLayout.Orientation:
-# class PySide2.QtGui.QPageLayout.Unit:
- "PySide2.QtGui.QPageLayout.__init__": [(), ('PySide2.QtGui.QPageLayout',), ('PySide2.QtGui.QPageSize', 'PySide2.QtGui.QPageLayout.Orientation', 'PySide2.QtCore.QMarginsF', 'PySide2.QtGui.QPageLayout.Unit', 'PySide2.QtCore.QMarginsF')],
- "PySide2.QtGui.QPageLayout.__copy__": (),
- "PySide2.QtGui.QPageLayout.fullRect": [(), ('PySide2.QtGui.QPageLayout.Unit',)],
- "PySide2.QtGui.QPageLayout.fullRectPixels": ('int',),
- "PySide2.QtGui.QPageLayout.fullRectPoints": (),
- "PySide2.QtGui.QPageLayout.isEquivalentTo": ('PySide2.QtGui.QPageLayout',),
- "PySide2.QtGui.QPageLayout.isValid": (),
- "PySide2.QtGui.QPageLayout.margins": [(), ('PySide2.QtGui.QPageLayout.Unit',)],
- "PySide2.QtGui.QPageLayout.marginsPixels": ('int',),
- "PySide2.QtGui.QPageLayout.marginsPoints": (),
- "PySide2.QtGui.QPageLayout.maximumMargins": (),
- "PySide2.QtGui.QPageLayout.minimumMargins": (),
- "PySide2.QtGui.QPageLayout.mode": (),
- "PySide2.QtGui.QPageLayout.orientation": (),
- "PySide2.QtGui.QPageLayout.pageSize": (),
- "PySide2.QtGui.QPageLayout.paintRect": [(), ('PySide2.QtGui.QPageLayout.Unit',)],
- "PySide2.QtGui.QPageLayout.paintRectPixels": ('int',),
- "PySide2.QtGui.QPageLayout.paintRectPoints": (),
- "PySide2.QtGui.QPageLayout.setBottomMargin": ('float',),
- "PySide2.QtGui.QPageLayout.setLeftMargin": ('float',),
- "PySide2.QtGui.QPageLayout.setMargins": ('PySide2.QtCore.QMarginsF',),
- "PySide2.QtGui.QPageLayout.setMinimumMargins": ('PySide2.QtCore.QMarginsF',),
- "PySide2.QtGui.QPageLayout.setMode": ('PySide2.QtGui.QPageLayout.Mode',),
- "PySide2.QtGui.QPageLayout.setOrientation": ('PySide2.QtGui.QPageLayout.Orientation',),
- "PySide2.QtGui.QPageLayout.setPageSize": ('PySide2.QtGui.QPageSize', 'PySide2.QtCore.QMarginsF'),
- "PySide2.QtGui.QPageLayout.setRightMargin": ('float',),
- "PySide2.QtGui.QPageLayout.setTopMargin": ('float',),
- "PySide2.QtGui.QPageLayout.setUnits": ('PySide2.QtGui.QPageLayout.Unit',),
- "PySide2.QtGui.QPageLayout.swap": ('PySide2.QtGui.QPageLayout',),
- "PySide2.QtGui.QPageLayout.units": (),
-# class PySide2.QtGui.QPageSize:
-# class PySide2.QtGui.QPageSize.PageSizeId:
-# class PySide2.QtGui.QPageSize.SizeMatchPolicy:
-# class PySide2.QtGui.QPageSize.Unit:
- "PySide2.QtGui.QPageSize.__init__": [(), ('PySide2.QtCore.QSize', 'str', 'PySide2.QtGui.QPageSize.SizeMatchPolicy'), ('PySide2.QtCore.QSizeF', 'PySide2.QtGui.QPageSize.Unit', 'str', 'PySide2.QtGui.QPageSize.SizeMatchPolicy'), ('PySide2.QtGui.QPageSize',), ('PySide2.QtGui.QPageSize.PageSizeId',)],
- "PySide2.QtGui.QPageSize.__copy__": (),
- "PySide2.QtGui.QPageSize.definitionSize": [(), ('PySide2.QtGui.QPageSize.PageSizeId',)],
- "PySide2.QtGui.QPageSize.definitionUnits": [(), ('PySide2.QtGui.QPageSize.PageSizeId',)],
- "PySide2.QtGui.QPageSize.id": [(), ('PySide2.QtCore.QSize', 'PySide2.QtGui.QPageSize.SizeMatchPolicy'), ('PySide2.QtCore.QSizeF', 'PySide2.QtGui.QPageSize.Unit', 'PySide2.QtGui.QPageSize.SizeMatchPolicy'), ('int',)],
- "PySide2.QtGui.QPageSize.isEquivalentTo": ('PySide2.QtGui.QPageSize',),
- "PySide2.QtGui.QPageSize.isValid": (),
- "PySide2.QtGui.QPageSize.key": [(), ('PySide2.QtGui.QPageSize.PageSizeId',)],
- "PySide2.QtGui.QPageSize.name": [(), ('PySide2.QtGui.QPageSize.PageSizeId',)],
- "PySide2.QtGui.QPageSize.rect": ('PySide2.QtGui.QPageSize.Unit',),
- "PySide2.QtGui.QPageSize.rectPixels": ('int',),
- "PySide2.QtGui.QPageSize.rectPoints": (),
- "PySide2.QtGui.QPageSize.size": [('PySide2.QtGui.QPageSize.PageSizeId', 'PySide2.QtGui.QPageSize.Unit'), ('PySide2.QtGui.QPageSize.Unit',)],
- "PySide2.QtGui.QPageSize.sizePixels": [('PySide2.QtGui.QPageSize.PageSizeId', 'int'), ('int',)],
- "PySide2.QtGui.QPageSize.sizePoints": [(), ('PySide2.QtGui.QPageSize.PageSizeId',)],
- "PySide2.QtGui.QPageSize.swap": ('PySide2.QtGui.QPageSize',),
- "PySide2.QtGui.QPageSize.windowsId": [(), ('PySide2.QtGui.QPageSize.PageSizeId',)],
-# class PySide2.QtGui.QPagedPaintDevice:
-# class PySide2.QtGui.QPagedPaintDevice.Margins:
- "PySide2.QtGui.QPagedPaintDevice.Margins.__init__": [(), ('PySide2.QtGui.QPagedPaintDevice.Margins',)],
- "PySide2.QtGui.QPagedPaintDevice.Margins.__copy__": (),
-# class PySide2.QtGui.QPagedPaintDevice.PageSize:
-# class PySide2.QtGui.QPagedPaintDevice.PdfVersion:
- "PySide2.QtGui.QPagedPaintDevice.__init__": (),
- "PySide2.QtGui.QPagedPaintDevice.devicePageLayout": (),
- "PySide2.QtGui.QPagedPaintDevice.margins": (),
- "PySide2.QtGui.QPagedPaintDevice.newPage": (),
- "PySide2.QtGui.QPagedPaintDevice.pageLayout": (),
- "PySide2.QtGui.QPagedPaintDevice.pageSize": (),
- "PySide2.QtGui.QPagedPaintDevice.pageSizeMM": (),
- "PySide2.QtGui.QPagedPaintDevice.setMargins": ('PySide2.QtGui.QPagedPaintDevice.Margins',),
- "PySide2.QtGui.QPagedPaintDevice.setPageLayout": ('PySide2.QtGui.QPageLayout',),
- "PySide2.QtGui.QPagedPaintDevice.setPageMargins": [('PySide2.QtCore.QMarginsF',), ('PySide2.QtCore.QMarginsF', 'PySide2.QtGui.QPageLayout.Unit')],
- "PySide2.QtGui.QPagedPaintDevice.setPageOrientation": ('PySide2.QtGui.QPageLayout.Orientation',),
- "PySide2.QtGui.QPagedPaintDevice.setPageSize": [('PySide2.QtGui.QPageSize',), ('PySide2.QtGui.QPagedPaintDevice.PageSize',)],
- "PySide2.QtGui.QPagedPaintDevice.setPageSizeMM": ('PySide2.QtCore.QSizeF',),
-# class PySide2.QtGui.QPaintDevice:
-# class PySide2.QtGui.QPaintDevice.PaintDeviceMetric:
- "PySide2.QtGui.QPaintDevice.__init__": (),
- "PySide2.QtGui.QPaintDevice.colorCount": (),
- "PySide2.QtGui.QPaintDevice.depth": (),
- "PySide2.QtGui.QPaintDevice.devType": (),
- "PySide2.QtGui.QPaintDevice.devicePixelRatio": (),
- "PySide2.QtGui.QPaintDevice.devicePixelRatioF": (),
- "PySide2.QtGui.QPaintDevice.devicePixelRatioFScale": (),
- "PySide2.QtGui.QPaintDevice.height": (),
- "PySide2.QtGui.QPaintDevice.heightMM": (),
- "PySide2.QtGui.QPaintDevice.initPainter": ('PySide2.QtGui.QPainter',),
- "PySide2.QtGui.QPaintDevice.logicalDpiX": (),
- "PySide2.QtGui.QPaintDevice.logicalDpiY": (),
- "PySide2.QtGui.QPaintDevice.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtGui.QPaintDevice.paintEngine": (),
- "PySide2.QtGui.QPaintDevice.paintingActive": (),
- "PySide2.QtGui.QPaintDevice.physicalDpiX": (),
- "PySide2.QtGui.QPaintDevice.physicalDpiY": (),
- "PySide2.QtGui.QPaintDevice.redirected": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QPaintDevice.sharedPainter": (),
- "PySide2.QtGui.QPaintDevice.width": (),
- "PySide2.QtGui.QPaintDevice.widthMM": (),
-# class PySide2.QtGui.QPaintDeviceWindow:
- "PySide2.QtGui.QPaintDeviceWindow.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtGui.QPaintDeviceWindow.exposeEvent": ('PySide2.QtGui.QExposeEvent',),
- "PySide2.QtGui.QPaintDeviceWindow.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtGui.QPaintDeviceWindow.paintEngine": (),
- "PySide2.QtGui.QPaintDeviceWindow.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtGui.QPaintDeviceWindow.update": [(), ('PySide2.QtCore.QRect',), ('PySide2.QtGui.QRegion',)],
-# class PySide2.QtGui.QPaintEngine:
-# class PySide2.QtGui.QPaintEngine.DirtyFlag:
-# class PySide2.QtGui.QPaintEngine.DirtyFlags:
-# class PySide2.QtGui.QPaintEngine.PaintEngineFeature:
-# class PySide2.QtGui.QPaintEngine.PaintEngineFeatures:
-# class PySide2.QtGui.QPaintEngine.PolygonDrawMode:
-# class PySide2.QtGui.QPaintEngine.Type:
- "PySide2.QtGui.QPaintEngine.__init__": ('PySide2.QtGui.QPaintEngine.PaintEngineFeatures',),
- "PySide2.QtGui.QPaintEngine.begin": ('PySide2.QtGui.QPaintDevice',),
- "PySide2.QtGui.QPaintEngine.clearDirty": ('PySide2.QtGui.QPaintEngine.DirtyFlags',),
- "PySide2.QtGui.QPaintEngine.coordinateOffset": (),
- "PySide2.QtGui.QPaintEngine.drawEllipse": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',)],
- "PySide2.QtGui.QPaintEngine.drawImage": ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QImage', 'PySide2.QtCore.QRectF', 'PySide2.QtCore.Qt.ImageConversionFlags'),
- "PySide2.QtGui.QPaintEngine.drawLines": [('PySide2.QtCore.QLine', 'int'), ('PySide2.QtCore.QLineF', 'int')],
- "PySide2.QtGui.QPaintEngine.drawPath": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPaintEngine.drawPixmap": ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QPixmap', 'PySide2.QtCore.QRectF'),
- "PySide2.QtGui.QPaintEngine.drawPoints": [('PySide2.QtCore.QPoint', 'int'), ('PySide2.QtCore.QPointF', 'int')],
- "PySide2.QtGui.QPaintEngine.drawPolygon": [('PySide2.QtCore.QPoint', 'int', 'PySide2.QtGui.QPaintEngine.PolygonDrawMode'), ('PySide2.QtCore.QPointF', 'int', 'PySide2.QtGui.QPaintEngine.PolygonDrawMode')],
- "PySide2.QtGui.QPaintEngine.drawRects": [('PySide2.QtCore.QRect', 'int'), ('PySide2.QtCore.QRectF', 'int')],
- "PySide2.QtGui.QPaintEngine.drawTextItem": ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QTextItem'),
- "PySide2.QtGui.QPaintEngine.drawTiledPixmap": ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QPixmap', 'PySide2.QtCore.QPointF'),
- "PySide2.QtGui.QPaintEngine.end": (),
- "PySide2.QtGui.QPaintEngine.hasFeature": ('PySide2.QtGui.QPaintEngine.PaintEngineFeatures',),
- "PySide2.QtGui.QPaintEngine.isActive": (),
- "PySide2.QtGui.QPaintEngine.isExtended": (),
- "PySide2.QtGui.QPaintEngine.paintDevice": (),
- "PySide2.QtGui.QPaintEngine.painter": (),
- "PySide2.QtGui.QPaintEngine.setActive": ('bool',),
- "PySide2.QtGui.QPaintEngine.setDirty": ('PySide2.QtGui.QPaintEngine.DirtyFlags',),
- "PySide2.QtGui.QPaintEngine.setSystemClip": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QPaintEngine.setSystemRect": ('PySide2.QtCore.QRect',),
- "PySide2.QtGui.QPaintEngine.syncState": (),
- "PySide2.QtGui.QPaintEngine.systemClip": (),
- "PySide2.QtGui.QPaintEngine.systemRect": (),
- "PySide2.QtGui.QPaintEngine.testDirty": ('PySide2.QtGui.QPaintEngine.DirtyFlags',),
- "PySide2.QtGui.QPaintEngine.type": (),
- "PySide2.QtGui.QPaintEngine.updateState": ('PySide2.QtGui.QPaintEngineState',),
-# class PySide2.QtGui.QPaintEngineState:
- "PySide2.QtGui.QPaintEngineState.__init__": (),
- "PySide2.QtGui.QPaintEngineState.backgroundBrush": (),
- "PySide2.QtGui.QPaintEngineState.backgroundMode": (),
- "PySide2.QtGui.QPaintEngineState.brush": (),
- "PySide2.QtGui.QPaintEngineState.brushNeedsResolving": (),
- "PySide2.QtGui.QPaintEngineState.brushOrigin": (),
- "PySide2.QtGui.QPaintEngineState.clipOperation": (),
- "PySide2.QtGui.QPaintEngineState.clipPath": (),
- "PySide2.QtGui.QPaintEngineState.clipRegion": (),
- "PySide2.QtGui.QPaintEngineState.compositionMode": (),
- "PySide2.QtGui.QPaintEngineState.font": (),
- "PySide2.QtGui.QPaintEngineState.isClipEnabled": (),
- "PySide2.QtGui.QPaintEngineState.matrix": (),
- "PySide2.QtGui.QPaintEngineState.opacity": (),
- "PySide2.QtGui.QPaintEngineState.painter": (),
- "PySide2.QtGui.QPaintEngineState.pen": (),
- "PySide2.QtGui.QPaintEngineState.penNeedsResolving": (),
- "PySide2.QtGui.QPaintEngineState.renderHints": (),
- "PySide2.QtGui.QPaintEngineState.state": (),
- "PySide2.QtGui.QPaintEngineState.transform": (),
-# class PySide2.QtGui.QPaintEvent:
- "PySide2.QtGui.QPaintEvent.__init__": [('PySide2.QtCore.QRect',), ('PySide2.QtGui.QRegion',)],
- "PySide2.QtGui.QPaintEvent.rect": (),
- "PySide2.QtGui.QPaintEvent.region": (),
-# class PySide2.QtGui.QPainter:
-# class PySide2.QtGui.QPainter.CompositionMode:
-# class PySide2.QtGui.QPainter.PixmapFragment:
- "PySide2.QtGui.QPainter.PixmapFragment.__init__": [(), ('PySide2.QtGui.QPainter.PixmapFragment',)],
- "PySide2.QtGui.QPainter.PixmapFragment.__copy__": (),
- "PySide2.QtGui.QPainter.PixmapFragment.create": ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QRectF', 'float', 'float', 'float', 'float'),
-# class PySide2.QtGui.QPainter.PixmapFragmentHint:
-# class PySide2.QtGui.QPainter.PixmapFragmentHints:
-# class PySide2.QtGui.QPainter.RenderHint:
-# class PySide2.QtGui.QPainter.RenderHints:
- "PySide2.QtGui.QPainter.__init__": [(), ('PySide2.QtGui.QPaintDevice',)],
- "PySide2.QtGui.QPainter.background": (),
- "PySide2.QtGui.QPainter.backgroundMode": (),
- "PySide2.QtGui.QPainter.begin": ('PySide2.QtGui.QPaintDevice',),
- "PySide2.QtGui.QPainter.beginNativePainting": (),
- "PySide2.QtGui.QPainter.boundingRect": [('PySide2.QtCore.QRect', 'int', 'str'), ('PySide2.QtCore.QRectF', 'int', 'str'), ('PySide2.QtCore.QRectF', 'str', 'PySide2.QtGui.QTextOption'), ('int', 'int', 'int', 'int', 'int', 'str')],
- "PySide2.QtGui.QPainter.brush": (),
- "PySide2.QtGui.QPainter.brushOrigin": (),
- "PySide2.QtGui.QPainter.clipBoundingRect": (),
- "PySide2.QtGui.QPainter.clipPath": (),
- "PySide2.QtGui.QPainter.clipRegion": (),
- "PySide2.QtGui.QPainter.combinedMatrix": (),
- "PySide2.QtGui.QPainter.combinedTransform": (),
- "PySide2.QtGui.QPainter.compositionMode": (),
- "PySide2.QtGui.QPainter.device": (),
- "PySide2.QtGui.QPainter.deviceMatrix": (),
- "PySide2.QtGui.QPainter.deviceTransform": (),
- "PySide2.QtGui.QPainter.drawArc": [('PySide2.QtCore.QRect', 'int', 'int'), ('PySide2.QtCore.QRectF', 'int', 'int'), ('int', 'int', 'int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.drawChord": [('PySide2.QtCore.QRect', 'int', 'int'), ('PySide2.QtCore.QRectF', 'int', 'int'), ('int', 'int', 'int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.drawConvexPolygon": [('PySide2.QtGui.QPolygon',), ('PySide2.QtGui.QPolygonF',), ('typing.List[PySide2.QtCore.QPointF]',), ('typing.List[PySide2.QtCore.QPoint]',)],
- "PySide2.QtGui.QPainter.drawEllipse": [('PySide2.QtCore.QPoint', 'int', 'int'), ('PySide2.QtCore.QPointF', 'float', 'float'), ('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.drawImage": [('PySide2.QtCore.QPoint', 'PySide2.QtGui.QImage'), ('PySide2.QtCore.QPoint', 'PySide2.QtGui.QImage', 'PySide2.QtCore.QRect', 'PySide2.QtCore.Qt.ImageConversionFlags'), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QImage'), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QImage', 'PySide2.QtCore.QRectF', 'PySide2.QtCore.Qt.ImageConversionFlags'), ('PySide2.QtCore.QRect', 'PySide2.QtGui.QImage'), ('PySide2.QtCore.QRect', 'PySide2.QtGui.QImage', 'PySide2.QtCore.QRect', 'PySide2.QtCore.Qt.ImageConversionFlags'), ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QImage'), ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QImage', 'PySide2.QtCore.QRectF', 'PySide2.QtCore.Qt.ImageConversionFlags'), ('int', 'int', 'PySide2.QtGui.QImage', 'int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.ImageConversionFlags')],
- "PySide2.QtGui.QPainter.drawLine": [('PySide2.QtCore.QLine',), ('PySide2.QtCore.QLineF',), ('PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint'), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.drawLines": [('typing.List[PySide2.QtCore.QLineF]',), ('typing.List[PySide2.QtCore.QLine]',), ('typing.List[PySide2.QtCore.QPointF]',), ('typing.List[PySide2.QtCore.QPoint]',)],
- "PySide2.QtGui.QPainter.drawPath": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainter.drawPicture": [('PySide2.QtCore.QPoint', 'PySide2.QtGui.QPicture'), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QPicture'), ('int', 'int', 'PySide2.QtGui.QPicture')],
- "PySide2.QtGui.QPainter.drawPie": [('PySide2.QtCore.QRect', 'int', 'int'), ('PySide2.QtCore.QRectF', 'int', 'int'), ('int', 'int', 'int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.drawPixmap": [('PySide2.QtCore.QPoint', 'PySide2.QtGui.QPixmap'), ('PySide2.QtCore.QPoint', 'PySide2.QtGui.QPixmap', 'PySide2.QtCore.QRect'), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QPixmap'), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QPixmap', 'PySide2.QtCore.QRectF'), ('PySide2.QtCore.QRect', 'PySide2.QtGui.QPixmap'), ('PySide2.QtCore.QRect', 'PySide2.QtGui.QPixmap', 'PySide2.QtCore.QRect'), ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QPixmap', 'PySide2.QtCore.QRectF'), ('int', 'int', 'PySide2.QtGui.QPixmap'), ('int', 'int', 'PySide2.QtGui.QPixmap', 'int', 'int', 'int', 'int'), ('int', 'int', 'int', 'int', 'PySide2.QtGui.QPixmap'), ('int', 'int', 'int', 'int', 'PySide2.QtGui.QPixmap', 'int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.drawPixmapFragments": ('PySide2.QtGui.QPainter.PixmapFragment', 'int', 'PySide2.QtGui.QPixmap', 'PySide2.QtGui.QPainter.PixmapFragmentHints'),
- "PySide2.QtGui.QPainter.drawPoint": [('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('int', 'int')],
- "PySide2.QtGui.QPainter.drawPoints": [('PySide2.QtGui.QPolygon',), ('PySide2.QtGui.QPolygonF',), ('typing.List[PySide2.QtCore.QPointF]',), ('typing.List[PySide2.QtCore.QPoint]',)],
- "PySide2.QtGui.QPainter.drawPolygon": [('PySide2.QtGui.QPolygon', 'PySide2.QtCore.Qt.FillRule'), ('PySide2.QtGui.QPolygonF', 'PySide2.QtCore.Qt.FillRule'), ('typing.List[PySide2.QtCore.QPointF]', 'PySide2.QtCore.Qt.FillRule'), ('typing.List[PySide2.QtCore.QPoint]', 'PySide2.QtCore.Qt.FillRule')],
- "PySide2.QtGui.QPainter.drawPolyline": [('PySide2.QtGui.QPolygon',), ('PySide2.QtGui.QPolygonF',), ('typing.List[PySide2.QtCore.QPointF]',), ('typing.List[PySide2.QtCore.QPoint]',)],
- "PySide2.QtGui.QPainter.drawRect": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.drawRects": [('typing.List[PySide2.QtCore.QRectF]',), ('typing.List[PySide2.QtCore.QRect]',)],
- "PySide2.QtGui.QPainter.drawRoundRect": [('PySide2.QtCore.QRect', 'int', 'int'), ('PySide2.QtCore.QRectF', 'int', 'int'), ('int', 'int', 'int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.drawRoundedRect": [('PySide2.QtCore.QRect', 'float', 'float', 'PySide2.QtCore.Qt.SizeMode'), ('PySide2.QtCore.QRectF', 'float', 'float', 'PySide2.QtCore.Qt.SizeMode'), ('int', 'int', 'int', 'int', 'float', 'float', 'PySide2.QtCore.Qt.SizeMode')],
- "PySide2.QtGui.QPainter.drawStaticText": [('PySide2.QtCore.QPoint', 'PySide2.QtGui.QStaticText'), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QStaticText'), ('int', 'int', 'PySide2.QtGui.QStaticText')],
- "PySide2.QtGui.QPainter.drawText": [('PySide2.QtCore.QPoint', 'str'), ('PySide2.QtCore.QPointF', 'str'), ('PySide2.QtCore.QRect', 'int', 'str', 'PySide2.QtCore.QRect'), ('PySide2.QtCore.QRectF', 'int', 'str', 'PySide2.QtCore.QRectF'), ('PySide2.QtCore.QRectF', 'str', 'PySide2.QtGui.QTextOption'), ('int', 'int', 'int', 'int', 'int', 'str', 'PySide2.QtCore.QRect'), ('int', 'int', 'str')],
- "PySide2.QtGui.QPainter.drawTextItem": [('PySide2.QtCore.QPoint', 'PySide2.QtGui.QTextItem'), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QTextItem'), ('int', 'int', 'PySide2.QtGui.QTextItem')],
- "PySide2.QtGui.QPainter.drawTiledPixmap": [('PySide2.QtCore.QRect', 'PySide2.QtGui.QPixmap', 'PySide2.QtCore.QPoint'), ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QPixmap', 'PySide2.QtCore.QPointF'), ('int', 'int', 'int', 'int', 'PySide2.QtGui.QPixmap', 'int', 'int')],
- "PySide2.QtGui.QPainter.end": (),
- "PySide2.QtGui.QPainter.endNativePainting": (),
- "PySide2.QtGui.QPainter.eraseRect": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.fillPath": ('PySide2.QtGui.QPainterPath', 'PySide2.QtGui.QBrush'),
- "PySide2.QtGui.QPainter.fillRect": [('PySide2.QtCore.QRect', 'PySide2.QtCore.Qt.BrushStyle'), ('PySide2.QtCore.QRect', 'PySide2.QtCore.Qt.GlobalColor'), ('PySide2.QtCore.QRect', 'PySide2.QtGui.QBrush'), ('PySide2.QtCore.QRect', 'PySide2.QtGui.QColor'), ('PySide2.QtCore.QRect', 'PySide2.QtGui.QGradient.Preset'), ('PySide2.QtCore.QRectF', 'PySide2.QtCore.Qt.BrushStyle'), ('PySide2.QtCore.QRectF', 'PySide2.QtCore.Qt.GlobalColor'), ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QBrush'), ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QColor'), ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QGradient.Preset'), ('int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.BrushStyle'), ('int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.GlobalColor'), ('int', 'int', 'int', 'int', 'PySide2.QtGui.QBrush'), ('int', 'int', 'int', 'int', 'PySide2.QtGui.QColor'), ('int', 'int', 'int', 'int', 'PySide2.QtGui.QGradient.Preset')],
- "PySide2.QtGui.QPainter.font": (),
- "PySide2.QtGui.QPainter.fontInfo": (),
- "PySide2.QtGui.QPainter.fontMetrics": (),
- "PySide2.QtGui.QPainter.hasClipping": (),
- "PySide2.QtGui.QPainter.initFrom": ('PySide2.QtGui.QPaintDevice',),
- "PySide2.QtGui.QPainter.isActive": (),
- "PySide2.QtGui.QPainter.layoutDirection": (),
- "PySide2.QtGui.QPainter.matrix": (),
- "PySide2.QtGui.QPainter.matrixEnabled": (),
- "PySide2.QtGui.QPainter.opacity": (),
- "PySide2.QtGui.QPainter.paintEngine": (),
- "PySide2.QtGui.QPainter.pen": (),
- "PySide2.QtGui.QPainter.redirected": ('PySide2.QtGui.QPaintDevice', 'PySide2.QtCore.QPoint'),
- "PySide2.QtGui.QPainter.renderHints": (),
- "PySide2.QtGui.QPainter.resetMatrix": (),
- "PySide2.QtGui.QPainter.resetTransform": (),
- "PySide2.QtGui.QPainter.restore": (),
- "PySide2.QtGui.QPainter.restoreRedirected": ('PySide2.QtGui.QPaintDevice',),
- "PySide2.QtGui.QPainter.rotate": ('float',),
- "PySide2.QtGui.QPainter.save": (),
- "PySide2.QtGui.QPainter.scale": ('float', 'float'),
- "PySide2.QtGui.QPainter.setBackground": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QPainter.setBackgroundMode": ('PySide2.QtCore.Qt.BGMode',),
- "PySide2.QtGui.QPainter.setBrush": [('PySide2.QtCore.Qt.BrushStyle',), ('PySide2.QtGui.QBrush',)],
- "PySide2.QtGui.QPainter.setBrushOrigin": [('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('int', 'int')],
- "PySide2.QtGui.QPainter.setClipPath": ('PySide2.QtGui.QPainterPath', 'PySide2.QtCore.Qt.ClipOperation'),
- "PySide2.QtGui.QPainter.setClipRect": [('PySide2.QtCore.QRect', 'PySide2.QtCore.Qt.ClipOperation'), ('PySide2.QtCore.QRectF', 'PySide2.QtCore.Qt.ClipOperation'), ('int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.ClipOperation')],
- "PySide2.QtGui.QPainter.setClipRegion": ('PySide2.QtGui.QRegion', 'PySide2.QtCore.Qt.ClipOperation'),
- "PySide2.QtGui.QPainter.setClipping": ('bool',),
- "PySide2.QtGui.QPainter.setCompositionMode": ('PySide2.QtGui.QPainter.CompositionMode',),
- "PySide2.QtGui.QPainter.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtGui.QPainter.setLayoutDirection": ('PySide2.QtCore.Qt.LayoutDirection',),
- "PySide2.QtGui.QPainter.setMatrix": ('PySide2.QtGui.QMatrix', 'bool'),
- "PySide2.QtGui.QPainter.setMatrixEnabled": ('bool',),
- "PySide2.QtGui.QPainter.setOpacity": ('float',),
- "PySide2.QtGui.QPainter.setPen": [('PySide2.QtCore.Qt.PenStyle',), ('PySide2.QtGui.QColor',), ('PySide2.QtGui.QPen',)],
- "PySide2.QtGui.QPainter.setRedirected": ('PySide2.QtGui.QPaintDevice', 'PySide2.QtGui.QPaintDevice', 'PySide2.QtCore.QPoint'),
- "PySide2.QtGui.QPainter.setRenderHint": ('PySide2.QtGui.QPainter.RenderHint', 'bool'),
- "PySide2.QtGui.QPainter.setRenderHints": ('PySide2.QtGui.QPainter.RenderHints', 'bool'),
- "PySide2.QtGui.QPainter.setTransform": ('PySide2.QtGui.QTransform', 'bool'),
- "PySide2.QtGui.QPainter.setViewTransformEnabled": ('bool',),
- "PySide2.QtGui.QPainter.setViewport": [('PySide2.QtCore.QRect',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.setWindow": [('PySide2.QtCore.QRect',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.setWorldMatrix": ('PySide2.QtGui.QMatrix', 'bool'),
- "PySide2.QtGui.QPainter.setWorldMatrixEnabled": ('bool',),
- "PySide2.QtGui.QPainter.setWorldTransform": ('PySide2.QtGui.QTransform', 'bool'),
- "PySide2.QtGui.QPainter.shear": ('float', 'float'),
- "PySide2.QtGui.QPainter.strokePath": ('PySide2.QtGui.QPainterPath', 'PySide2.QtGui.QPen'),
- "PySide2.QtGui.QPainter.testRenderHint": ('PySide2.QtGui.QPainter.RenderHint',),
- "PySide2.QtGui.QPainter.transform": (),
- "PySide2.QtGui.QPainter.translate": [('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QPainter.viewTransformEnabled": (),
- "PySide2.QtGui.QPainter.viewport": (),
- "PySide2.QtGui.QPainter.window": (),
- "PySide2.QtGui.QPainter.worldMatrix": (),
- "PySide2.QtGui.QPainter.worldMatrixEnabled": (),
- "PySide2.QtGui.QPainter.worldTransform": (),
-# class PySide2.QtGui.QPainterPath:
-# class PySide2.QtGui.QPainterPath.Element:
- "PySide2.QtGui.QPainterPath.Element.__init__": [(), ('PySide2.QtGui.QPainterPath.Element',)],
- "PySide2.QtGui.QPainterPath.Element.__copy__": (),
- "PySide2.QtGui.QPainterPath.Element.isCurveTo": (),
- "PySide2.QtGui.QPainterPath.Element.isLineTo": (),
- "PySide2.QtGui.QPainterPath.Element.isMoveTo": (),
-# class PySide2.QtGui.QPainterPath.ElementType:
- "PySide2.QtGui.QPainterPath.__init__": [(), ('PySide2.QtCore.QPointF',), ('PySide2.QtGui.QPainterPath',)],
- "PySide2.QtGui.QPainterPath.__add__": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.__and__": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.__copy__": (),
- "PySide2.QtGui.QPainterPath.__iadd__": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.__iand__": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.__ior__": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.__isub__": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPainterPath.__mul__": [('PySide2.QtGui.QMatrix',), ('PySide2.QtGui.QTransform',)],
- "PySide2.QtGui.QPainterPath.__or__": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPainterPath.__sub__": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.addEllipse": [('PySide2.QtCore.QPointF', 'float', 'float'), ('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtGui.QPainterPath.addPath": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.addPolygon": ('PySide2.QtGui.QPolygonF',),
- "PySide2.QtGui.QPainterPath.addRect": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtGui.QPainterPath.addRegion": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QPainterPath.addRoundRect": [('PySide2.QtCore.QRectF', 'int'), ('PySide2.QtCore.QRectF', 'int', 'int'), ('float', 'float', 'float', 'float', 'int'), ('float', 'float', 'float', 'float', 'int', 'int')],
- "PySide2.QtGui.QPainterPath.addRoundedRect": [('PySide2.QtCore.QRectF', 'float', 'float', 'PySide2.QtCore.Qt.SizeMode'), ('float', 'float', 'float', 'float', 'float', 'float', 'PySide2.QtCore.Qt.SizeMode')],
- "PySide2.QtGui.QPainterPath.addText": [('PySide2.QtCore.QPointF', 'PySide2.QtGui.QFont', 'str'), ('float', 'float', 'PySide2.QtGui.QFont', 'str')],
- "PySide2.QtGui.QPainterPath.angleAtPercent": ('float',),
- "PySide2.QtGui.QPainterPath.arcMoveTo": [('PySide2.QtCore.QRectF', 'float'), ('float', 'float', 'float', 'float', 'float')],
- "PySide2.QtGui.QPainterPath.arcTo": [('PySide2.QtCore.QRectF', 'float', 'float'), ('float', 'float', 'float', 'float', 'float', 'float')],
- "PySide2.QtGui.QPainterPath.boundingRect": (),
- "PySide2.QtGui.QPainterPath.capacity": (),
- "PySide2.QtGui.QPainterPath.clear": (),
- "PySide2.QtGui.QPainterPath.closeSubpath": (),
- "PySide2.QtGui.QPainterPath.connectPath": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.contains": [('PySide2.QtCore.QPointF',), ('PySide2.QtCore.QRectF',), ('PySide2.QtGui.QPainterPath',)],
- "PySide2.QtGui.QPainterPath.controlPointRect": (),
- "PySide2.QtGui.QPainterPath.cubicTo": [('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'), ('float', 'float', 'float', 'float', 'float', 'float')],
- "PySide2.QtGui.QPainterPath.currentPosition": (),
- "PySide2.QtGui.QPainterPath.elementAt": ('int',),
- "PySide2.QtGui.QPainterPath.elementCount": (),
- "PySide2.QtGui.QPainterPath.fillRule": (),
- "PySide2.QtGui.QPainterPath.intersected": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.intersects": [('PySide2.QtCore.QRectF',), ('PySide2.QtGui.QPainterPath',)],
- "PySide2.QtGui.QPainterPath.isEmpty": (),
- "PySide2.QtGui.QPainterPath.length": (),
- "PySide2.QtGui.QPainterPath.lineTo": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QPainterPath.moveTo": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QPainterPath.percentAtLength": ('float',),
- "PySide2.QtGui.QPainterPath.pointAtPercent": ('float',),
- "PySide2.QtGui.QPainterPath.quadTo": [('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'), ('float', 'float', 'float', 'float')],
- "PySide2.QtGui.QPainterPath.reserve": ('int',),
- "PySide2.QtGui.QPainterPath.setElementPositionAt": ('int', 'float', 'float'),
- "PySide2.QtGui.QPainterPath.setFillRule": ('PySide2.QtCore.Qt.FillRule',),
- "PySide2.QtGui.QPainterPath.simplified": (),
- "PySide2.QtGui.QPainterPath.slopeAtPercent": ('float',),
- "PySide2.QtGui.QPainterPath.subtracted": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.subtractedInverted": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.swap": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.toFillPolygon": [('PySide2.QtGui.QMatrix',), ('PySide2.QtGui.QTransform',)],
- "PySide2.QtGui.QPainterPath.toFillPolygons": [('PySide2.QtGui.QMatrix',), ('PySide2.QtGui.QTransform',)],
- "PySide2.QtGui.QPainterPath.toReversed": (),
- "PySide2.QtGui.QPainterPath.toSubpathPolygons": [('PySide2.QtGui.QMatrix',), ('PySide2.QtGui.QTransform',)],
- "PySide2.QtGui.QPainterPath.translate": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QPainterPath.translated": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QPainterPath.united": ('PySide2.QtGui.QPainterPath',),
-# class PySide2.QtGui.QPainterPathStroker:
- "PySide2.QtGui.QPainterPathStroker.__init__": [(), ('PySide2.QtGui.QPen',)],
- "PySide2.QtGui.QPainterPathStroker.capStyle": (),
- "PySide2.QtGui.QPainterPathStroker.createStroke": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPathStroker.curveThreshold": (),
- "PySide2.QtGui.QPainterPathStroker.dashOffset": (),
- "PySide2.QtGui.QPainterPathStroker.dashPattern": (),
- "PySide2.QtGui.QPainterPathStroker.joinStyle": (),
- "PySide2.QtGui.QPainterPathStroker.miterLimit": (),
- "PySide2.QtGui.QPainterPathStroker.setCapStyle": ('PySide2.QtCore.Qt.PenCapStyle',),
- "PySide2.QtGui.QPainterPathStroker.setCurveThreshold": ('float',),
- "PySide2.QtGui.QPainterPathStroker.setDashOffset": ('float',),
- "PySide2.QtGui.QPainterPathStroker.setDashPattern": [('PySide2.QtCore.Qt.PenStyle',), ('typing.List[float]',)],
- "PySide2.QtGui.QPainterPathStroker.setJoinStyle": ('PySide2.QtCore.Qt.PenJoinStyle',),
- "PySide2.QtGui.QPainterPathStroker.setMiterLimit": ('float',),
- "PySide2.QtGui.QPainterPathStroker.setWidth": ('float',),
- "PySide2.QtGui.QPainterPathStroker.width": (),
-# class PySide2.QtGui.QPalette:
-# class PySide2.QtGui.QPalette.ColorGroup:
-# class PySide2.QtGui.QPalette.ColorRole:
- "PySide2.QtGui.QPalette.__init__": [(), ('PySide2.QtCore.Qt.GlobalColor',), ('PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush'), ('PySide2.QtGui.QColor',), ('PySide2.QtGui.QColor', 'PySide2.QtGui.QColor'), ('PySide2.QtGui.QColor', 'PySide2.QtGui.QColor', 'PySide2.QtGui.QColor', 'PySide2.QtGui.QColor', 'PySide2.QtGui.QColor', 'PySide2.QtGui.QColor', 'PySide2.QtGui.QColor'), ('PySide2.QtGui.QPalette',)],
- "PySide2.QtGui.QPalette.__copy__": (),
- "PySide2.QtGui.QPalette.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPalette.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPalette.alternateBase": (),
- "PySide2.QtGui.QPalette.background": (),
- "PySide2.QtGui.QPalette.base": (),
- "PySide2.QtGui.QPalette.brightText": (),
- "PySide2.QtGui.QPalette.brush": [('PySide2.QtGui.QPalette.ColorGroup', 'PySide2.QtGui.QPalette.ColorRole'), ('PySide2.QtGui.QPalette.ColorRole',)],
- "PySide2.QtGui.QPalette.button": (),
- "PySide2.QtGui.QPalette.buttonText": (),
- "PySide2.QtGui.QPalette.cacheKey": (),
- "PySide2.QtGui.QPalette.color": [('PySide2.QtGui.QPalette.ColorGroup', 'PySide2.QtGui.QPalette.ColorRole'), ('PySide2.QtGui.QPalette.ColorRole',)],
- "PySide2.QtGui.QPalette.currentColorGroup": (),
- "PySide2.QtGui.QPalette.dark": (),
- "PySide2.QtGui.QPalette.foreground": (),
- "PySide2.QtGui.QPalette.highlight": (),
- "PySide2.QtGui.QPalette.highlightedText": (),
- "PySide2.QtGui.QPalette.isBrushSet": ('PySide2.QtGui.QPalette.ColorGroup', 'PySide2.QtGui.QPalette.ColorRole'),
- "PySide2.QtGui.QPalette.isCopyOf": ('PySide2.QtGui.QPalette',),
- "PySide2.QtGui.QPalette.isEqual": ('PySide2.QtGui.QPalette.ColorGroup', 'PySide2.QtGui.QPalette.ColorGroup'),
- "PySide2.QtGui.QPalette.light": (),
- "PySide2.QtGui.QPalette.link": (),
- "PySide2.QtGui.QPalette.linkVisited": (),
- "PySide2.QtGui.QPalette.mid": (),
- "PySide2.QtGui.QPalette.midlight": (),
- "PySide2.QtGui.QPalette.placeholderText": (),
- "PySide2.QtGui.QPalette.resolve": [(), ('PySide2.QtGui.QPalette',), ('int',)],
- "PySide2.QtGui.QPalette.setBrush": [('PySide2.QtGui.QPalette.ColorGroup', 'PySide2.QtGui.QPalette.ColorRole', 'PySide2.QtGui.QBrush'), ('PySide2.QtGui.QPalette.ColorRole', 'PySide2.QtGui.QBrush')],
- "PySide2.QtGui.QPalette.setColor": [('PySide2.QtGui.QPalette.ColorGroup', 'PySide2.QtGui.QPalette.ColorRole', 'PySide2.QtGui.QColor'), ('PySide2.QtGui.QPalette.ColorRole', 'PySide2.QtGui.QColor')],
- "PySide2.QtGui.QPalette.setColorGroup": ('PySide2.QtGui.QPalette.ColorGroup', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush'),
- "PySide2.QtGui.QPalette.setCurrentColorGroup": ('PySide2.QtGui.QPalette.ColorGroup',),
- "PySide2.QtGui.QPalette.shadow": (),
- "PySide2.QtGui.QPalette.swap": ('PySide2.QtGui.QPalette',),
- "PySide2.QtGui.QPalette.text": (),
- "PySide2.QtGui.QPalette.toolTipBase": (),
- "PySide2.QtGui.QPalette.toolTipText": (),
- "PySide2.QtGui.QPalette.window": (),
- "PySide2.QtGui.QPalette.windowText": (),
-# class PySide2.QtGui.QPdfWriter:
- "PySide2.QtGui.QPdfWriter.__init__": [('PySide2.QtCore.QIODevice',), ('str',)],
- "PySide2.QtGui.QPdfWriter.creator": (),
- "PySide2.QtGui.QPdfWriter.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtGui.QPdfWriter.newPage": (),
- "PySide2.QtGui.QPdfWriter.paintEngine": (),
- "PySide2.QtGui.QPdfWriter.pdfVersion": (),
- "PySide2.QtGui.QPdfWriter.resolution": (),
- "PySide2.QtGui.QPdfWriter.setCreator": ('str',),
- "PySide2.QtGui.QPdfWriter.setMargins": ('PySide2.QtGui.QPagedPaintDevice.Margins',),
- "PySide2.QtGui.QPdfWriter.setPageSize": ('PySide2.QtGui.QPagedPaintDevice.PageSize',),
- "PySide2.QtGui.QPdfWriter.setPageSizeMM": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtGui.QPdfWriter.setPdfVersion": ('PySide2.QtGui.QPagedPaintDevice.PdfVersion',),
- "PySide2.QtGui.QPdfWriter.setResolution": ('int',),
- "PySide2.QtGui.QPdfWriter.setTitle": ('str',),
- "PySide2.QtGui.QPdfWriter.title": (),
-# class PySide2.QtGui.QPen:
- "PySide2.QtGui.QPen.__init__": [(), ('PySide2.QtCore.Qt.PenStyle',), ('PySide2.QtGui.QBrush', 'float', 'PySide2.QtCore.Qt.PenStyle', 'PySide2.QtCore.Qt.PenCapStyle', 'PySide2.QtCore.Qt.PenJoinStyle'), ('PySide2.QtGui.QColor',), ('PySide2.QtGui.QPen',)],
- "PySide2.QtGui.QPen.__copy__": (),
- "PySide2.QtGui.QPen.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPen.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPen.brush": (),
- "PySide2.QtGui.QPen.capStyle": (),
- "PySide2.QtGui.QPen.color": (),
- "PySide2.QtGui.QPen.dashOffset": (),
- "PySide2.QtGui.QPen.dashPattern": (),
- "PySide2.QtGui.QPen.isCosmetic": (),
- "PySide2.QtGui.QPen.isSolid": (),
- "PySide2.QtGui.QPen.joinStyle": (),
- "PySide2.QtGui.QPen.miterLimit": (),
- "PySide2.QtGui.QPen.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QPen.setCapStyle": ('PySide2.QtCore.Qt.PenCapStyle',),
- "PySide2.QtGui.QPen.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtGui.QPen.setCosmetic": ('bool',),
- "PySide2.QtGui.QPen.setDashOffset": ('float',),
- "PySide2.QtGui.QPen.setDashPattern": ('typing.List[float]',),
- "PySide2.QtGui.QPen.setJoinStyle": ('PySide2.QtCore.Qt.PenJoinStyle',),
- "PySide2.QtGui.QPen.setMiterLimit": ('float',),
- "PySide2.QtGui.QPen.setStyle": ('PySide2.QtCore.Qt.PenStyle',),
- "PySide2.QtGui.QPen.setWidth": ('int',),
- "PySide2.QtGui.QPen.setWidthF": ('float',),
- "PySide2.QtGui.QPen.style": (),
- "PySide2.QtGui.QPen.swap": ('PySide2.QtGui.QPen',),
- "PySide2.QtGui.QPen.width": (),
- "PySide2.QtGui.QPen.widthF": (),
-# class PySide2.QtGui.QPicture:
- "PySide2.QtGui.QPicture.__init__": [('PySide2.QtGui.QPicture',), ('int',)],
- "PySide2.QtGui.QPicture.__copy__": (),
- "PySide2.QtGui.QPicture.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPicture.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPicture.boundingRect": (),
- "PySide2.QtGui.QPicture.data": (),
- "PySide2.QtGui.QPicture.devType": (),
- "PySide2.QtGui.QPicture.inputFormatList": (),
- "PySide2.QtGui.QPicture.inputFormats": (),
- "PySide2.QtGui.QPicture.isNull": (),
- "PySide2.QtGui.QPicture.load": [('PySide2.QtCore.QIODevice', 'str'), ('str', 'str')],
- "PySide2.QtGui.QPicture.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtGui.QPicture.outputFormatList": (),
- "PySide2.QtGui.QPicture.outputFormats": (),
- "PySide2.QtGui.QPicture.paintEngine": (),
- "PySide2.QtGui.QPicture.pictureFormat": ('str',),
- "PySide2.QtGui.QPicture.play": ('PySide2.QtGui.QPainter',),
- "PySide2.QtGui.QPicture.save": [('PySide2.QtCore.QIODevice', 'str'), ('str', 'str')],
- "PySide2.QtGui.QPicture.setBoundingRect": ('PySide2.QtCore.QRect',),
- "PySide2.QtGui.QPicture.setData": ('str', 'int'),
- "PySide2.QtGui.QPicture.size": (),
- "PySide2.QtGui.QPicture.swap": ('PySide2.QtGui.QPicture',),
-# class PySide2.QtGui.QPictureIO:
- "PySide2.QtGui.QPictureIO.__init__": [(), ('PySide2.QtCore.QIODevice', 'str'), ('str', 'str')],
- "PySide2.QtGui.QPictureIO.description": (),
- "PySide2.QtGui.QPictureIO.fileName": (),
- "PySide2.QtGui.QPictureIO.format": (),
- "PySide2.QtGui.QPictureIO.gamma": (),
- "PySide2.QtGui.QPictureIO.inputFormats": (),
- "PySide2.QtGui.QPictureIO.ioDevice": (),
- "PySide2.QtGui.QPictureIO.outputFormats": (),
- "PySide2.QtGui.QPictureIO.parameters": (),
- "PySide2.QtGui.QPictureIO.picture": (),
- "PySide2.QtGui.QPictureIO.pictureFormat": [('PySide2.QtCore.QIODevice',), ('str',)],
- "PySide2.QtGui.QPictureIO.quality": (),
- "PySide2.QtGui.QPictureIO.read": (),
- "PySide2.QtGui.QPictureIO.setDescription": ('str',),
- "PySide2.QtGui.QPictureIO.setFileName": ('str',),
- "PySide2.QtGui.QPictureIO.setFormat": ('str',),
- "PySide2.QtGui.QPictureIO.setGamma": ('float',),
- "PySide2.QtGui.QPictureIO.setIODevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtGui.QPictureIO.setParameters": ('str',),
- "PySide2.QtGui.QPictureIO.setPicture": ('PySide2.QtGui.QPicture',),
- "PySide2.QtGui.QPictureIO.setQuality": ('int',),
- "PySide2.QtGui.QPictureIO.setStatus": ('int',),
- "PySide2.QtGui.QPictureIO.status": (),
- "PySide2.QtGui.QPictureIO.write": (),
-# class PySide2.QtGui.QPixelFormat:
-# class PySide2.QtGui.QPixelFormat.AlphaPosition:
-# class PySide2.QtGui.QPixelFormat.AlphaPremultiplied:
-# class PySide2.QtGui.QPixelFormat.AlphaUsage:
-# class PySide2.QtGui.QPixelFormat.ByteOrder:
-# class PySide2.QtGui.QPixelFormat.ColorModel:
-# class PySide2.QtGui.QPixelFormat.TypeInterpretation:
-# class PySide2.QtGui.QPixelFormat.YUVLayout:
- "PySide2.QtGui.QPixelFormat.__init__": [(), ('PySide2.QtGui.QPixelFormat',), ('PySide2.QtGui.QPixelFormat.ColorModel', 'int', 'int', 'int', 'int', 'int', 'int', 'PySide2.QtGui.QPixelFormat.AlphaUsage', 'PySide2.QtGui.QPixelFormat.AlphaPosition', 'PySide2.QtGui.QPixelFormat.AlphaPremultiplied', 'PySide2.QtGui.QPixelFormat.TypeInterpretation', 'PySide2.QtGui.QPixelFormat.ByteOrder', 'int')],
- "PySide2.QtGui.QPixelFormat.__copy__": (),
- "PySide2.QtGui.QPixelFormat.alphaPosition": (),
- "PySide2.QtGui.QPixelFormat.alphaSize": (),
- "PySide2.QtGui.QPixelFormat.alphaUsage": (),
- "PySide2.QtGui.QPixelFormat.bitsPerPixel": (),
- "PySide2.QtGui.QPixelFormat.blackSize": (),
- "PySide2.QtGui.QPixelFormat.blueSize": (),
- "PySide2.QtGui.QPixelFormat.brightnessSize": (),
- "PySide2.QtGui.QPixelFormat.byteOrder": (),
- "PySide2.QtGui.QPixelFormat.channelCount": (),
- "PySide2.QtGui.QPixelFormat.colorModel": (),
- "PySide2.QtGui.QPixelFormat.cyanSize": (),
- "PySide2.QtGui.QPixelFormat.greenSize": (),
- "PySide2.QtGui.QPixelFormat.hueSize": (),
- "PySide2.QtGui.QPixelFormat.lightnessSize": (),
- "PySide2.QtGui.QPixelFormat.magentaSize": (),
- "PySide2.QtGui.QPixelFormat.premultiplied": (),
- "PySide2.QtGui.QPixelFormat.redSize": (),
- "PySide2.QtGui.QPixelFormat.saturationSize": (),
- "PySide2.QtGui.QPixelFormat.subEnum": (),
- "PySide2.QtGui.QPixelFormat.typeInterpretation": (),
- "PySide2.QtGui.QPixelFormat.yellowSize": (),
- "PySide2.QtGui.QPixelFormat.yuvLayout": (),
-# class PySide2.QtGui.QPixmap:
- "PySide2.QtGui.QPixmap.__init__": [(), ('PySide2.QtCore.QSize',), ('PySide2.QtGui.QImage',), ('PySide2.QtGui.QPixmap',), ('int', 'int'), ('str', 'str', 'PySide2.QtCore.Qt.ImageConversionFlags'), ('typing.Sequence[str]',)],
- "PySide2.QtGui.QPixmap.__copy__": (),
- "PySide2.QtGui.QPixmap.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPixmap.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPixmap.cacheKey": (),
- "PySide2.QtGui.QPixmap.convertFromImage": ('PySide2.QtGui.QImage', 'PySide2.QtCore.Qt.ImageConversionFlags'),
- "PySide2.QtGui.QPixmap.copy": [('PySide2.QtCore.QRect',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPixmap.createHeuristicMask": ('bool',),
- "PySide2.QtGui.QPixmap.createMaskFromColor": ('PySide2.QtGui.QColor', 'PySide2.QtCore.Qt.MaskMode'),
- "PySide2.QtGui.QPixmap.defaultDepth": (),
- "PySide2.QtGui.QPixmap.depth": (),
- "PySide2.QtGui.QPixmap.devType": (),
- "PySide2.QtGui.QPixmap.devicePixelRatio": (),
- "PySide2.QtGui.QPixmap.fill": [('PySide2.QtGui.QColor',), ('PySide2.QtGui.QPaintDevice', 'PySide2.QtCore.QPoint'), ('PySide2.QtGui.QPaintDevice', 'int', 'int')],
- "PySide2.QtGui.QPixmap.fromImage": ('PySide2.QtGui.QImage', 'PySide2.QtCore.Qt.ImageConversionFlags'),
- "PySide2.QtGui.QPixmap.fromImageInPlace": ('PySide2.QtGui.QImage', 'PySide2.QtCore.Qt.ImageConversionFlags'),
- "PySide2.QtGui.QPixmap.fromImageReader": ('PySide2.QtGui.QImageReader', 'PySide2.QtCore.Qt.ImageConversionFlags'),
- "PySide2.QtGui.QPixmap.grabWidget": [('PySide2.QtCore.QObject', 'PySide2.QtCore.QRect'), ('PySide2.QtCore.QObject', 'int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPixmap.grabWindow": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QPixmap.hasAlpha": (),
- "PySide2.QtGui.QPixmap.hasAlphaChannel": (),
- "PySide2.QtGui.QPixmap.height": (),
- "PySide2.QtGui.QPixmap.isNull": (),
- "PySide2.QtGui.QPixmap.isQBitmap": (),
- "PySide2.QtGui.QPixmap.load": ('str', 'str', 'PySide2.QtCore.Qt.ImageConversionFlags'),
- "PySide2.QtGui.QPixmap.loadFromData": [('PySide2.QtCore.QByteArray', 'str', 'PySide2.QtCore.Qt.ImageConversionFlags'), ('str', 'int', 'str', 'PySide2.QtCore.Qt.ImageConversionFlags')],
- "PySide2.QtGui.QPixmap.mask": (),
- "PySide2.QtGui.QPixmap.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtGui.QPixmap.paintEngine": (),
- "PySide2.QtGui.QPixmap.rect": (),
- "PySide2.QtGui.QPixmap.save": [('PySide2.QtCore.QIODevice', 'str', 'int'), ('str', 'str', 'int')],
- "PySide2.QtGui.QPixmap.scaled": [('PySide2.QtCore.QSize', 'PySide2.QtCore.Qt.AspectRatioMode', 'PySide2.QtCore.Qt.TransformationMode'), ('int', 'int', 'PySide2.QtCore.Qt.AspectRatioMode', 'PySide2.QtCore.Qt.TransformationMode')],
- "PySide2.QtGui.QPixmap.scaledToHeight": ('int', 'PySide2.QtCore.Qt.TransformationMode'),
- "PySide2.QtGui.QPixmap.scaledToWidth": ('int', 'PySide2.QtCore.Qt.TransformationMode'),
- "PySide2.QtGui.QPixmap.scroll": [('int', 'int', 'PySide2.QtCore.QRect', 'PySide2.QtGui.QRegion'), ('int', 'int', 'int', 'int', 'int', 'int', 'PySide2.QtGui.QRegion')],
- "PySide2.QtGui.QPixmap.setDevicePixelRatio": ('float',),
- "PySide2.QtGui.QPixmap.setMask": ('PySide2.QtGui.QBitmap',),
- "PySide2.QtGui.QPixmap.size": (),
- "PySide2.QtGui.QPixmap.swap": ('PySide2.QtGui.QPixmap',),
- "PySide2.QtGui.QPixmap.toImage": (),
- "PySide2.QtGui.QPixmap.transformed": [('PySide2.QtGui.QMatrix', 'PySide2.QtCore.Qt.TransformationMode'), ('PySide2.QtGui.QTransform', 'PySide2.QtCore.Qt.TransformationMode')],
- "PySide2.QtGui.QPixmap.trueMatrix": [('PySide2.QtGui.QMatrix', 'int', 'int'), ('PySide2.QtGui.QTransform', 'int', 'int')],
- "PySide2.QtGui.QPixmap.width": (),
-# class PySide2.QtGui.QPixmapCache:
-# class PySide2.QtGui.QPixmapCache.Key:
- "PySide2.QtGui.QPixmapCache.Key.__init__": [(), ('PySide2.QtGui.QPixmapCache.Key',)],
- "PySide2.QtGui.QPixmapCache.Key.__copy__": (),
- "PySide2.QtGui.QPixmapCache.Key.isValid": (),
- "PySide2.QtGui.QPixmapCache.Key.swap": ('PySide2.QtGui.QPixmapCache.Key',),
- "PySide2.QtGui.QPixmapCache.__init__": (),
- "PySide2.QtGui.QPixmapCache.cacheLimit": (),
- "PySide2.QtGui.QPixmapCache.clear": (),
- "PySide2.QtGui.QPixmapCache.find": [('PySide2.QtGui.QPixmapCache.Key',), ('PySide2.QtGui.QPixmapCache.Key', 'PySide2.QtGui.QPixmap'), ('str',), ('str', 'PySide2.QtGui.QPixmap')],
- "PySide2.QtGui.QPixmapCache.insert": [('PySide2.QtGui.QPixmap',), ('str', 'PySide2.QtGui.QPixmap')],
- "PySide2.QtGui.QPixmapCache.remove": [('PySide2.QtGui.QPixmapCache.Key',), ('str',)],
- "PySide2.QtGui.QPixmapCache.replace": ('PySide2.QtGui.QPixmapCache.Key', 'PySide2.QtGui.QPixmap'),
- "PySide2.QtGui.QPixmapCache.setCacheLimit": ('int',),
-# class PySide2.QtGui.QPointingDeviceUniqueId:
- "PySide2.QtGui.QPointingDeviceUniqueId.__init__": [(), ('PySide2.QtGui.QPointingDeviceUniqueId',)],
- "PySide2.QtGui.QPointingDeviceUniqueId.__copy__": (),
- "PySide2.QtGui.QPointingDeviceUniqueId.fromNumericId": ('int',),
- "PySide2.QtGui.QPointingDeviceUniqueId.isValid": (),
- "PySide2.QtGui.QPointingDeviceUniqueId.numericId": (),
-# class PySide2.QtGui.QPolygon:
- "PySide2.QtGui.QPolygon.__init__": [(), ('PySide2.QtCore.QRect', 'bool'), ('PySide2.QtGui.QPolygon',), ('int',), ('typing.List[PySide2.QtCore.QPoint]',)],
- "PySide2.QtGui.QPolygon.__add__": ('typing.List[PySide2.QtCore.QPoint]',),
- "PySide2.QtGui.QPolygon.__copy__": (),
- "PySide2.QtGui.QPolygon.__iadd__": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QPolygon.__lshift__": [('PySide2.QtCore.QDataStream',), ('PySide2.QtCore.QPoint',), ('typing.List[PySide2.QtCore.QPoint]',)],
- "PySide2.QtGui.QPolygon.__mul__": [('PySide2.QtGui.QMatrix',), ('PySide2.QtGui.QTransform',)],
- "PySide2.QtGui.QPolygon.__reduce__": (),
- "PySide2.QtGui.QPolygon.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPolygon.append": [('PySide2.QtCore.QPoint',), ('typing.List[PySide2.QtCore.QPoint]',)],
- "PySide2.QtGui.QPolygon.at": ('int',),
- "PySide2.QtGui.QPolygon.back": (),
- "PySide2.QtGui.QPolygon.boundingRect": (),
- "PySide2.QtGui.QPolygon.capacity": (),
- "PySide2.QtGui.QPolygon.clear": (),
- "PySide2.QtGui.QPolygon.constData": (),
- "PySide2.QtGui.QPolygon.constFirst": (),
- "PySide2.QtGui.QPolygon.constLast": (),
- "PySide2.QtGui.QPolygon.contains": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QPolygon.containsPoint": ('PySide2.QtCore.QPoint', 'PySide2.QtCore.Qt.FillRule'),
- "PySide2.QtGui.QPolygon.count": [(), ('PySide2.QtCore.QPoint',)],
- "PySide2.QtGui.QPolygon.data": (),
- "PySide2.QtGui.QPolygon.empty": (),
- "PySide2.QtGui.QPolygon.endsWith": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QPolygon.fill": ('PySide2.QtCore.QPoint', 'int'),
- "PySide2.QtGui.QPolygon.first": (),
- "PySide2.QtGui.QPolygon.fromList": ('typing.Sequence[PySide2.QtCore.QPoint]',),
- "PySide2.QtGui.QPolygon.front": (),
- "PySide2.QtGui.QPolygon.indexOf": ('PySide2.QtCore.QPoint', 'int'),
- "PySide2.QtGui.QPolygon.insert": [('int', 'PySide2.QtCore.QPoint'), ('int', 'int', 'PySide2.QtCore.QPoint')],
- "PySide2.QtGui.QPolygon.intersected": ('PySide2.QtGui.QPolygon',),
- "PySide2.QtGui.QPolygon.intersects": ('PySide2.QtGui.QPolygon',),
- "PySide2.QtGui.QPolygon.isEmpty": (),
- "PySide2.QtGui.QPolygon.isSharedWith": ('typing.List[PySide2.QtCore.QPoint]',),
- "PySide2.QtGui.QPolygon.last": (),
- "PySide2.QtGui.QPolygon.lastIndexOf": ('PySide2.QtCore.QPoint', 'int'),
- "PySide2.QtGui.QPolygon.length": (),
- "PySide2.QtGui.QPolygon.mid": ('int', 'int'),
- "PySide2.QtGui.QPolygon.move": ('int', 'int'),
- "PySide2.QtGui.QPolygon.pop_back": (),
- "PySide2.QtGui.QPolygon.pop_front": (),
- "PySide2.QtGui.QPolygon.prepend": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QPolygon.push_back": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QPolygon.push_front": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QPolygon.remove": [('int',), ('int', 'int')],
- "PySide2.QtGui.QPolygon.removeAll": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QPolygon.removeAt": ('int',),
- "PySide2.QtGui.QPolygon.removeFirst": (),
- "PySide2.QtGui.QPolygon.removeLast": (),
- "PySide2.QtGui.QPolygon.removeOne": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QPolygon.replace": ('int', 'PySide2.QtCore.QPoint'),
- "PySide2.QtGui.QPolygon.reserve": ('int',),
- "PySide2.QtGui.QPolygon.resize": ('int',),
- "PySide2.QtGui.QPolygon.setSharable": ('bool',),
- "PySide2.QtGui.QPolygon.shrink_to_fit": (),
- "PySide2.QtGui.QPolygon.size": (),
- "PySide2.QtGui.QPolygon.squeeze": (),
- "PySide2.QtGui.QPolygon.startsWith": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QPolygon.subtracted": ('PySide2.QtGui.QPolygon',),
- "PySide2.QtGui.QPolygon.swap": ('PySide2.QtGui.QPolygon',),
- "PySide2.QtGui.QPolygon.swapItemsAt": ('int', 'int'),
- "PySide2.QtGui.QPolygon.takeAt": ('int',),
- "PySide2.QtGui.QPolygon.takeFirst": (),
- "PySide2.QtGui.QPolygon.takeLast": (),
- "PySide2.QtGui.QPolygon.toList": (),
- "PySide2.QtGui.QPolygon.translate": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtGui.QPolygon.translated": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtGui.QPolygon.united": ('PySide2.QtGui.QPolygon',),
- "PySide2.QtGui.QPolygon.value": [('int',), ('int', 'PySide2.QtCore.QPoint')],
-# class PySide2.QtGui.QPolygonF:
- "PySide2.QtGui.QPolygonF.__init__": [(), ('PySide2.QtCore.QRectF',), ('PySide2.QtGui.QPolygon',), ('PySide2.QtGui.QPolygonF',), ('int',), ('typing.List[PySide2.QtCore.QPointF]',)],
- "PySide2.QtGui.QPolygonF.__add__": ('typing.List[PySide2.QtCore.QPointF]',),
- "PySide2.QtGui.QPolygonF.__copy__": (),
- "PySide2.QtGui.QPolygonF.__iadd__": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QPolygonF.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPolygonF.__mul__": [('PySide2.QtGui.QMatrix',), ('PySide2.QtGui.QTransform',)],
- "PySide2.QtGui.QPolygonF.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPolygonF.append": [('PySide2.QtCore.QPointF',), ('typing.List[PySide2.QtCore.QPointF]',)],
- "PySide2.QtGui.QPolygonF.at": ('int',),
- "PySide2.QtGui.QPolygonF.back": (),
- "PySide2.QtGui.QPolygonF.boundingRect": (),
- "PySide2.QtGui.QPolygonF.capacity": (),
- "PySide2.QtGui.QPolygonF.clear": (),
- "PySide2.QtGui.QPolygonF.constData": (),
- "PySide2.QtGui.QPolygonF.constFirst": (),
- "PySide2.QtGui.QPolygonF.constLast": (),
- "PySide2.QtGui.QPolygonF.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QPolygonF.containsPoint": ('PySide2.QtCore.QPointF', 'PySide2.QtCore.Qt.FillRule'),
- "PySide2.QtGui.QPolygonF.count": [(), ('PySide2.QtCore.QPointF',)],
- "PySide2.QtGui.QPolygonF.data": (),
- "PySide2.QtGui.QPolygonF.empty": (),
- "PySide2.QtGui.QPolygonF.endsWith": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QPolygonF.fill": ('PySide2.QtCore.QPointF', 'int'),
- "PySide2.QtGui.QPolygonF.first": (),
- "PySide2.QtGui.QPolygonF.fromList": ('typing.Sequence[PySide2.QtCore.QPointF]',),
- "PySide2.QtGui.QPolygonF.front": (),
- "PySide2.QtGui.QPolygonF.indexOf": ('PySide2.QtCore.QPointF', 'int'),
- "PySide2.QtGui.QPolygonF.insert": [('int', 'PySide2.QtCore.QPointF'), ('int', 'int', 'PySide2.QtCore.QPointF')],
- "PySide2.QtGui.QPolygonF.intersected": ('PySide2.QtGui.QPolygonF',),
- "PySide2.QtGui.QPolygonF.intersects": ('PySide2.QtGui.QPolygonF',),
- "PySide2.QtGui.QPolygonF.isClosed": (),
- "PySide2.QtGui.QPolygonF.isEmpty": (),
- "PySide2.QtGui.QPolygonF.isSharedWith": ('typing.List[PySide2.QtCore.QPointF]',),
- "PySide2.QtGui.QPolygonF.last": (),
- "PySide2.QtGui.QPolygonF.lastIndexOf": ('PySide2.QtCore.QPointF', 'int'),
- "PySide2.QtGui.QPolygonF.length": (),
- "PySide2.QtGui.QPolygonF.mid": ('int', 'int'),
- "PySide2.QtGui.QPolygonF.move": ('int', 'int'),
- "PySide2.QtGui.QPolygonF.pop_back": (),
- "PySide2.QtGui.QPolygonF.pop_front": (),
- "PySide2.QtGui.QPolygonF.prepend": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QPolygonF.push_back": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QPolygonF.push_front": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QPolygonF.remove": [('int',), ('int', 'int')],
- "PySide2.QtGui.QPolygonF.removeAll": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QPolygonF.removeAt": ('int',),
- "PySide2.QtGui.QPolygonF.removeFirst": (),
- "PySide2.QtGui.QPolygonF.removeLast": (),
- "PySide2.QtGui.QPolygonF.removeOne": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QPolygonF.replace": ('int', 'PySide2.QtCore.QPointF'),
- "PySide2.QtGui.QPolygonF.reserve": ('int',),
- "PySide2.QtGui.QPolygonF.resize": ('int',),
- "PySide2.QtGui.QPolygonF.setSharable": ('bool',),
- "PySide2.QtGui.QPolygonF.shrink_to_fit": (),
- "PySide2.QtGui.QPolygonF.size": (),
- "PySide2.QtGui.QPolygonF.squeeze": (),
- "PySide2.QtGui.QPolygonF.startsWith": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QPolygonF.subtracted": ('PySide2.QtGui.QPolygonF',),
- "PySide2.QtGui.QPolygonF.swap": ('PySide2.QtGui.QPolygonF',),
- "PySide2.QtGui.QPolygonF.swapItemsAt": ('int', 'int'),
- "PySide2.QtGui.QPolygonF.takeAt": ('int',),
- "PySide2.QtGui.QPolygonF.takeFirst": (),
- "PySide2.QtGui.QPolygonF.takeLast": (),
- "PySide2.QtGui.QPolygonF.toList": (),
- "PySide2.QtGui.QPolygonF.toPolygon": (),
- "PySide2.QtGui.QPolygonF.translate": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QPolygonF.translated": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QPolygonF.united": ('PySide2.QtGui.QPolygonF',),
- "PySide2.QtGui.QPolygonF.value": [('int',), ('int', 'PySide2.QtCore.QPointF')],
-# class PySide2.QtGui.QPyTextObject:
- "PySide2.QtGui.QPyTextObject.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QPyTextObject.drawObject": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF', 'PySide2.QtGui.QTextDocument', 'int', 'PySide2.QtGui.QTextFormat'),
- "PySide2.QtGui.QPyTextObject.intrinsicSize": ('PySide2.QtGui.QTextDocument', 'int', 'PySide2.QtGui.QTextFormat'),
-# class PySide2.QtGui.QQuaternion:
- "PySide2.QtGui.QQuaternion.__init__": [(), ('PySide2.QtGui.QVector4D',), ('float', 'PySide2.QtGui.QVector3D'), ('float', 'float', 'float', 'float')],
- "PySide2.QtGui.QQuaternion.__add__": ('PySide2.QtGui.QQuaternion',),
- "PySide2.QtGui.QQuaternion.__copy__": (),
- "PySide2.QtGui.QQuaternion.__iadd__": ('PySide2.QtGui.QQuaternion',),
- "PySide2.QtGui.QQuaternion.__imul__": [('PySide2.QtGui.QQuaternion',), ('float',)],
- "PySide2.QtGui.QQuaternion.__isub__": ('PySide2.QtGui.QQuaternion',),
- "PySide2.QtGui.QQuaternion.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QQuaternion.__mul__": [('PySide2.QtGui.QQuaternion',), ('float',)],
- "PySide2.QtGui.QQuaternion.__neg__": (),
- "PySide2.QtGui.QQuaternion.__reduce__": (),
- "PySide2.QtGui.QQuaternion.__repr__": (),
- "PySide2.QtGui.QQuaternion.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QQuaternion.__sub__": ('PySide2.QtGui.QQuaternion',),
- "PySide2.QtGui.QQuaternion.conjugate": (),
- "PySide2.QtGui.QQuaternion.conjugated": (),
- "PySide2.QtGui.QQuaternion.dotProduct": ('PySide2.QtGui.QQuaternion', 'PySide2.QtGui.QQuaternion'),
- "PySide2.QtGui.QQuaternion.fromAxes": ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'),
- "PySide2.QtGui.QQuaternion.fromAxisAndAngle": [('PySide2.QtGui.QVector3D', 'float'), ('float', 'float', 'float', 'float')],
- "PySide2.QtGui.QQuaternion.fromDirection": ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'),
- "PySide2.QtGui.QQuaternion.fromEulerAngles": [('PySide2.QtGui.QVector3D',), ('float', 'float', 'float')],
- "PySide2.QtGui.QQuaternion.fromRotationMatrix": ('PySide2.QtGui.QMatrix3x3',),
- "PySide2.QtGui.QQuaternion.getAxes": ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'),
- "PySide2.QtGui.QQuaternion.inverted": (),
- "PySide2.QtGui.QQuaternion.isIdentity": (),
- "PySide2.QtGui.QQuaternion.isNull": (),
- "PySide2.QtGui.QQuaternion.length": (),
- "PySide2.QtGui.QQuaternion.lengthSquared": (),
- "PySide2.QtGui.QQuaternion.nlerp": ('PySide2.QtGui.QQuaternion', 'PySide2.QtGui.QQuaternion', 'float'),
- "PySide2.QtGui.QQuaternion.normalize": (),
- "PySide2.QtGui.QQuaternion.normalized": (),
- "PySide2.QtGui.QQuaternion.rotatedVector": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtGui.QQuaternion.rotationTo": ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'),
- "PySide2.QtGui.QQuaternion.scalar": (),
- "PySide2.QtGui.QQuaternion.setScalar": ('float',),
- "PySide2.QtGui.QQuaternion.setVector": [('PySide2.QtGui.QVector3D',), ('float', 'float', 'float')],
- "PySide2.QtGui.QQuaternion.setX": ('float',),
- "PySide2.QtGui.QQuaternion.setY": ('float',),
- "PySide2.QtGui.QQuaternion.setZ": ('float',),
- "PySide2.QtGui.QQuaternion.slerp": ('PySide2.QtGui.QQuaternion', 'PySide2.QtGui.QQuaternion', 'float'),
- "PySide2.QtGui.QQuaternion.toEulerAngles": (),
- "PySide2.QtGui.QQuaternion.toRotationMatrix": (),
- "PySide2.QtGui.QQuaternion.toVector4D": (),
- "PySide2.QtGui.QQuaternion.vector": (),
- "PySide2.QtGui.QQuaternion.x": (),
- "PySide2.QtGui.QQuaternion.y": (),
- "PySide2.QtGui.QQuaternion.z": (),
-# class PySide2.QtGui.QRadialGradient:
- "PySide2.QtGui.QRadialGradient.__init__": [(), ('PySide2.QtCore.QPointF', 'float'), ('PySide2.QtCore.QPointF', 'float', 'PySide2.QtCore.QPointF'), ('PySide2.QtCore.QPointF', 'float', 'PySide2.QtCore.QPointF', 'float'), ('PySide2.QtGui.QRadialGradient',), ('float', 'float', 'float'), ('float', 'float', 'float', 'float', 'float'), ('float', 'float', 'float', 'float', 'float', 'float')],
- "PySide2.QtGui.QRadialGradient.__copy__": (),
- "PySide2.QtGui.QRadialGradient.center": (),
- "PySide2.QtGui.QRadialGradient.centerRadius": (),
- "PySide2.QtGui.QRadialGradient.focalPoint": (),
- "PySide2.QtGui.QRadialGradient.focalRadius": (),
- "PySide2.QtGui.QRadialGradient.radius": (),
- "PySide2.QtGui.QRadialGradient.setCenter": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QRadialGradient.setCenterRadius": ('float',),
- "PySide2.QtGui.QRadialGradient.setFocalPoint": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QRadialGradient.setFocalRadius": ('float',),
- "PySide2.QtGui.QRadialGradient.setRadius": ('float',),
-# class PySide2.QtGui.QRasterWindow:
- "PySide2.QtGui.QRasterWindow.__init__": ('PySide2.QtGui.QWindow',),
- "PySide2.QtGui.QRasterWindow.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtGui.QRasterWindow.redirected": ('PySide2.QtCore.QPoint',),
-# class PySide2.QtGui.QRawFont:
-# class PySide2.QtGui.QRawFont.AntialiasingType:
-# class PySide2.QtGui.QRawFont.LayoutFlag:
-# class PySide2.QtGui.QRawFont.LayoutFlags:
- "PySide2.QtGui.QRawFont.__init__": [(), ('PySide2.QtCore.QByteArray', 'float', 'PySide2.QtGui.QFont.HintingPreference'), ('PySide2.QtGui.QRawFont',), ('str', 'float', 'PySide2.QtGui.QFont.HintingPreference')],
- "PySide2.QtGui.QRawFont.__copy__": (),
- "PySide2.QtGui.QRawFont.advancesForGlyphIndexes": [('typing.List[int]',), ('typing.List[int]', 'PySide2.QtGui.QRawFont.LayoutFlags')],
- "PySide2.QtGui.QRawFont.alphaMapForGlyph": ('int', 'PySide2.QtGui.QRawFont.AntialiasingType', 'PySide2.QtGui.QTransform'),
- "PySide2.QtGui.QRawFont.ascent": (),
- "PySide2.QtGui.QRawFont.averageCharWidth": (),
- "PySide2.QtGui.QRawFont.boundingRect": ('int',),
- "PySide2.QtGui.QRawFont.capHeight": (),
- "PySide2.QtGui.QRawFont.descent": (),
- "PySide2.QtGui.QRawFont.familyName": (),
- "PySide2.QtGui.QRawFont.fontTable": ('str',),
- "PySide2.QtGui.QRawFont.fromFont": ('PySide2.QtGui.QFont', 'PySide2.QtGui.QFontDatabase.WritingSystem'),
- "PySide2.QtGui.QRawFont.glyphIndexesForString": ('str',),
- "PySide2.QtGui.QRawFont.hintingPreference": (),
- "PySide2.QtGui.QRawFont.isValid": (),
- "PySide2.QtGui.QRawFont.leading": (),
- "PySide2.QtGui.QRawFont.lineThickness": (),
- "PySide2.QtGui.QRawFont.loadFromData": ('PySide2.QtCore.QByteArray', 'float', 'PySide2.QtGui.QFont.HintingPreference'),
- "PySide2.QtGui.QRawFont.loadFromFile": ('str', 'float', 'PySide2.QtGui.QFont.HintingPreference'),
- "PySide2.QtGui.QRawFont.maxCharWidth": (),
- "PySide2.QtGui.QRawFont.pathForGlyph": ('int',),
- "PySide2.QtGui.QRawFont.pixelSize": (),
- "PySide2.QtGui.QRawFont.setPixelSize": ('float',),
- "PySide2.QtGui.QRawFont.style": (),
- "PySide2.QtGui.QRawFont.styleName": (),
- "PySide2.QtGui.QRawFont.supportedWritingSystems": (),
- "PySide2.QtGui.QRawFont.supportsCharacter": [('int',), ('str',)],
- "PySide2.QtGui.QRawFont.swap": ('PySide2.QtGui.QRawFont',),
- "PySide2.QtGui.QRawFont.underlinePosition": (),
- "PySide2.QtGui.QRawFont.unitsPerEm": (),
- "PySide2.QtGui.QRawFont.weight": (),
- "PySide2.QtGui.QRawFont.xHeight": (),
-# class PySide2.QtGui.QRegExpValidator:
- "PySide2.QtGui.QRegExpValidator.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtCore.QRegExp', 'PySide2.QtCore.QObject')],
- "PySide2.QtGui.QRegExpValidator.regExp": (),
- "PySide2.QtGui.QRegExpValidator.setRegExp": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtGui.QRegExpValidator.validate": ('str', 'int'),
-# class PySide2.QtGui.QRegion:
-# class PySide2.QtGui.QRegion.RegionType:
- "PySide2.QtGui.QRegion.__init__": [(), ('PySide2.QtCore.QRect', 'PySide2.QtGui.QRegion.RegionType'), ('PySide2.QtGui.QBitmap',), ('PySide2.QtGui.QPolygon', 'PySide2.QtCore.Qt.FillRule'), ('PySide2.QtGui.QRegion',), ('int', 'int', 'int', 'int', 'PySide2.QtGui.QRegion.RegionType')],
- "PySide2.QtGui.QRegion.__add__": [('PySide2.QtCore.QRect',), ('PySide2.QtGui.QRegion',)],
- "PySide2.QtGui.QRegion.__and__": [('PySide2.QtCore.QRect',), ('PySide2.QtGui.QRegion',)],
- "PySide2.QtGui.QRegion.__copy__": (),
- "PySide2.QtGui.QRegion.__iadd__": [('PySide2.QtCore.QRect',), ('PySide2.QtGui.QRegion',)],
- "PySide2.QtGui.QRegion.__ior__": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QRegion.__isub__": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QRegion.__ixor__": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QRegion.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QRegion.__mul__": [('PySide2.QtGui.QMatrix',), ('PySide2.QtGui.QTransform',)],
- "PySide2.QtGui.QRegion.__or__": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QRegion.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QRegion.__sub__": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QRegion.__xor__": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QRegion.begin": (),
- "PySide2.QtGui.QRegion.boundingRect": (),
- "PySide2.QtGui.QRegion.cbegin": (),
- "PySide2.QtGui.QRegion.cend": (),
- "PySide2.QtGui.QRegion.contains": [('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QRect',)],
- "PySide2.QtGui.QRegion.end": (),
- "PySide2.QtGui.QRegion.intersected": [('PySide2.QtCore.QRect',), ('PySide2.QtGui.QRegion',)],
- "PySide2.QtGui.QRegion.intersects": [('PySide2.QtCore.QRect',), ('PySide2.QtGui.QRegion',)],
- "PySide2.QtGui.QRegion.isEmpty": (),
- "PySide2.QtGui.QRegion.isNull": (),
- "PySide2.QtGui.QRegion.rectCount": (),
- "PySide2.QtGui.QRegion.rects": (),
- "PySide2.QtGui.QRegion.setRects": ('PySide2.QtCore.QRect', 'int'),
- "PySide2.QtGui.QRegion.subtracted": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QRegion.swap": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QRegion.translate": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtGui.QRegion.translated": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtGui.QRegion.united": [('PySide2.QtCore.QRect',), ('PySide2.QtGui.QRegion',)],
- "PySide2.QtGui.QRegion.xored": ('PySide2.QtGui.QRegion',),
-# class PySide2.QtGui.QResizeEvent:
- "PySide2.QtGui.QResizeEvent.__init__": ('PySide2.QtCore.QSize', 'PySide2.QtCore.QSize'),
- "PySide2.QtGui.QResizeEvent.oldSize": (),
- "PySide2.QtGui.QResizeEvent.size": (),
-# class PySide2.QtGui.QScreen:
- "PySide2.QtGui.QScreen.angleBetween": ('PySide2.QtCore.Qt.ScreenOrientation', 'PySide2.QtCore.Qt.ScreenOrientation'),
- "PySide2.QtGui.QScreen.availableGeometry": (),
- "PySide2.QtGui.QScreen.availableSize": (),
- "PySide2.QtGui.QScreen.availableVirtualGeometry": (),
- "PySide2.QtGui.QScreen.availableVirtualSize": (),
- "PySide2.QtGui.QScreen.depth": (),
- "PySide2.QtGui.QScreen.devicePixelRatio": (),
- "PySide2.QtGui.QScreen.geometry": (),
- "PySide2.QtGui.QScreen.grabWindow": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QScreen.isLandscape": ('PySide2.QtCore.Qt.ScreenOrientation',),
- "PySide2.QtGui.QScreen.isPortrait": ('PySide2.QtCore.Qt.ScreenOrientation',),
- "PySide2.QtGui.QScreen.logicalDotsPerInch": (),
- "PySide2.QtGui.QScreen.logicalDotsPerInchX": (),
- "PySide2.QtGui.QScreen.logicalDotsPerInchY": (),
- "PySide2.QtGui.QScreen.manufacturer": (),
- "PySide2.QtGui.QScreen.mapBetween": ('PySide2.QtCore.Qt.ScreenOrientation', 'PySide2.QtCore.Qt.ScreenOrientation', 'PySide2.QtCore.QRect'),
- "PySide2.QtGui.QScreen.model": (),
- "PySide2.QtGui.QScreen.name": (),
- "PySide2.QtGui.QScreen.nativeOrientation": (),
- "PySide2.QtGui.QScreen.orientation": (),
- "PySide2.QtGui.QScreen.orientationUpdateMask": (),
- "PySide2.QtGui.QScreen.physicalDotsPerInch": (),
- "PySide2.QtGui.QScreen.physicalDotsPerInchX": (),
- "PySide2.QtGui.QScreen.physicalDotsPerInchY": (),
- "PySide2.QtGui.QScreen.physicalSize": (),
- "PySide2.QtGui.QScreen.primaryOrientation": (),
- "PySide2.QtGui.QScreen.refreshRate": (),
- "PySide2.QtGui.QScreen.serialNumber": (),
- "PySide2.QtGui.QScreen.setOrientationUpdateMask": ('PySide2.QtCore.Qt.ScreenOrientations',),
- "PySide2.QtGui.QScreen.size": (),
- "PySide2.QtGui.QScreen.transformBetween": ('PySide2.QtCore.Qt.ScreenOrientation', 'PySide2.QtCore.Qt.ScreenOrientation', 'PySide2.QtCore.QRect'),
- "PySide2.QtGui.QScreen.virtualGeometry": (),
- "PySide2.QtGui.QScreen.virtualSiblings": (),
- "PySide2.QtGui.QScreen.virtualSize": (),
-# class PySide2.QtGui.QScrollEvent:
-# class PySide2.QtGui.QScrollEvent.ScrollState:
- "PySide2.QtGui.QScrollEvent.__init__": ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtGui.QScrollEvent.ScrollState'),
- "PySide2.QtGui.QScrollEvent.contentPos": (),
- "PySide2.QtGui.QScrollEvent.overshootDistance": (),
- "PySide2.QtGui.QScrollEvent.scrollState": (),
-# class PySide2.QtGui.QScrollPrepareEvent:
- "PySide2.QtGui.QScrollPrepareEvent.__init__": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QScrollPrepareEvent.contentPos": (),
- "PySide2.QtGui.QScrollPrepareEvent.contentPosRange": (),
- "PySide2.QtGui.QScrollPrepareEvent.setContentPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QScrollPrepareEvent.setContentPosRange": ('PySide2.QtCore.QRectF',),
- "PySide2.QtGui.QScrollPrepareEvent.setViewportSize": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtGui.QScrollPrepareEvent.startPos": (),
- "PySide2.QtGui.QScrollPrepareEvent.viewportSize": (),
-# class PySide2.QtGui.QSessionManager:
-# class PySide2.QtGui.QSessionManager.RestartHint:
- "PySide2.QtGui.QSessionManager.allowsErrorInteraction": (),
- "PySide2.QtGui.QSessionManager.allowsInteraction": (),
- "PySide2.QtGui.QSessionManager.cancel": (),
- "PySide2.QtGui.QSessionManager.discardCommand": (),
- "PySide2.QtGui.QSessionManager.isPhase2": (),
- "PySide2.QtGui.QSessionManager.release": (),
- "PySide2.QtGui.QSessionManager.requestPhase2": (),
- "PySide2.QtGui.QSessionManager.restartCommand": (),
- "PySide2.QtGui.QSessionManager.restartHint": (),
- "PySide2.QtGui.QSessionManager.sessionId": (),
- "PySide2.QtGui.QSessionManager.sessionKey": (),
- "PySide2.QtGui.QSessionManager.setDiscardCommand": ('typing.Sequence[str]',),
- "PySide2.QtGui.QSessionManager.setManagerProperty": [('str', 'str'), ('str', 'typing.Sequence[str]')],
- "PySide2.QtGui.QSessionManager.setRestartCommand": ('typing.Sequence[str]',),
- "PySide2.QtGui.QSessionManager.setRestartHint": ('PySide2.QtGui.QSessionManager.RestartHint',),
-# class PySide2.QtGui.QShortcutEvent:
- "PySide2.QtGui.QShortcutEvent.__init__": ('PySide2.QtGui.QKeySequence', 'int', 'bool'),
- "PySide2.QtGui.QShortcutEvent.isAmbiguous": (),
- "PySide2.QtGui.QShortcutEvent.key": (),
- "PySide2.QtGui.QShortcutEvent.shortcutId": (),
-# class PySide2.QtGui.QShowEvent:
- "PySide2.QtGui.QShowEvent.__init__": (),
-# class PySide2.QtGui.QStandardItem:
-# class PySide2.QtGui.QStandardItem.ItemType:
- "PySide2.QtGui.QStandardItem.__init__": [(), ('PySide2.QtGui.QIcon', 'str'), ('PySide2.QtGui.QStandardItem',), ('int', 'int'), ('str',)],
- "PySide2.QtGui.QStandardItem.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QStandardItem.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QStandardItem.accessibleDescription": (),
- "PySide2.QtGui.QStandardItem.accessibleText": (),
- "PySide2.QtGui.QStandardItem.appendColumn": ('typing.Sequence[PySide2.QtGui.QStandardItem]',),
- "PySide2.QtGui.QStandardItem.appendRow": [('PySide2.QtGui.QStandardItem',), ('typing.Sequence[PySide2.QtGui.QStandardItem]',)],
- "PySide2.QtGui.QStandardItem.appendRows": ('typing.Sequence[PySide2.QtGui.QStandardItem]',),
- "PySide2.QtGui.QStandardItem.background": (),
- "PySide2.QtGui.QStandardItem.checkState": (),
- "PySide2.QtGui.QStandardItem.child": ('int', 'int'),
- "PySide2.QtGui.QStandardItem.clearData": (),
- "PySide2.QtGui.QStandardItem.clone": (),
- "PySide2.QtGui.QStandardItem.column": (),
- "PySide2.QtGui.QStandardItem.columnCount": (),
- "PySide2.QtGui.QStandardItem.data": ('int',),
- "PySide2.QtGui.QStandardItem.emitDataChanged": (),
- "PySide2.QtGui.QStandardItem.flags": (),
- "PySide2.QtGui.QStandardItem.font": (),
- "PySide2.QtGui.QStandardItem.foreground": (),
- "PySide2.QtGui.QStandardItem.hasChildren": (),
- "PySide2.QtGui.QStandardItem.icon": (),
- "PySide2.QtGui.QStandardItem.index": (),
- "PySide2.QtGui.QStandardItem.insertColumn": ('int', 'typing.Sequence[PySide2.QtGui.QStandardItem]'),
- "PySide2.QtGui.QStandardItem.insertColumns": ('int', 'int'),
- "PySide2.QtGui.QStandardItem.insertRow": [('int', 'PySide2.QtGui.QStandardItem'), ('int', 'typing.Sequence[PySide2.QtGui.QStandardItem]')],
- "PySide2.QtGui.QStandardItem.insertRows": [('int', 'int'), ('int', 'typing.Sequence[PySide2.QtGui.QStandardItem]')],
- "PySide2.QtGui.QStandardItem.isAutoTristate": (),
- "PySide2.QtGui.QStandardItem.isCheckable": (),
- "PySide2.QtGui.QStandardItem.isDragEnabled": (),
- "PySide2.QtGui.QStandardItem.isDropEnabled": (),
- "PySide2.QtGui.QStandardItem.isEditable": (),
- "PySide2.QtGui.QStandardItem.isEnabled": (),
- "PySide2.QtGui.QStandardItem.isSelectable": (),
- "PySide2.QtGui.QStandardItem.isTristate": (),
- "PySide2.QtGui.QStandardItem.isUserTristate": (),
- "PySide2.QtGui.QStandardItem.model": (),
- "PySide2.QtGui.QStandardItem.parent": (),
- "PySide2.QtGui.QStandardItem.read": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QStandardItem.removeColumn": ('int',),
- "PySide2.QtGui.QStandardItem.removeColumns": ('int', 'int'),
- "PySide2.QtGui.QStandardItem.removeRow": ('int',),
- "PySide2.QtGui.QStandardItem.removeRows": ('int', 'int'),
- "PySide2.QtGui.QStandardItem.row": (),
- "PySide2.QtGui.QStandardItem.rowCount": (),
- "PySide2.QtGui.QStandardItem.setAccessibleDescription": ('str',),
- "PySide2.QtGui.QStandardItem.setAccessibleText": ('str',),
- "PySide2.QtGui.QStandardItem.setAutoTristate": ('bool',),
- "PySide2.QtGui.QStandardItem.setBackground": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QStandardItem.setCheckState": ('PySide2.QtCore.Qt.CheckState',),
- "PySide2.QtGui.QStandardItem.setCheckable": ('bool',),
- "PySide2.QtGui.QStandardItem.setChild": [('int', 'PySide2.QtGui.QStandardItem'), ('int', 'int', 'PySide2.QtGui.QStandardItem')],
- "PySide2.QtGui.QStandardItem.setColumnCount": ('int',),
- "PySide2.QtGui.QStandardItem.setData": ('typing.Any', 'int'),
- "PySide2.QtGui.QStandardItem.setDragEnabled": ('bool',),
- "PySide2.QtGui.QStandardItem.setDropEnabled": ('bool',),
- "PySide2.QtGui.QStandardItem.setEditable": ('bool',),
- "PySide2.QtGui.QStandardItem.setEnabled": ('bool',),
- "PySide2.QtGui.QStandardItem.setFlags": ('PySide2.QtCore.Qt.ItemFlags',),
- "PySide2.QtGui.QStandardItem.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtGui.QStandardItem.setForeground": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QStandardItem.setIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtGui.QStandardItem.setRowCount": ('int',),
- "PySide2.QtGui.QStandardItem.setSelectable": ('bool',),
- "PySide2.QtGui.QStandardItem.setSizeHint": ('PySide2.QtCore.QSize',),
- "PySide2.QtGui.QStandardItem.setStatusTip": ('str',),
- "PySide2.QtGui.QStandardItem.setText": ('str',),
- "PySide2.QtGui.QStandardItem.setTextAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtGui.QStandardItem.setToolTip": ('str',),
- "PySide2.QtGui.QStandardItem.setTristate": ('bool',),
- "PySide2.QtGui.QStandardItem.setUserTristate": ('bool',),
- "PySide2.QtGui.QStandardItem.setWhatsThis": ('str',),
- "PySide2.QtGui.QStandardItem.sizeHint": (),
- "PySide2.QtGui.QStandardItem.sortChildren": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtGui.QStandardItem.statusTip": (),
- "PySide2.QtGui.QStandardItem.takeChild": ('int', 'int'),
- "PySide2.QtGui.QStandardItem.takeColumn": ('int',),
- "PySide2.QtGui.QStandardItem.takeRow": ('int',),
- "PySide2.QtGui.QStandardItem.text": (),
- "PySide2.QtGui.QStandardItem.textAlignment": (),
- "PySide2.QtGui.QStandardItem.toolTip": (),
- "PySide2.QtGui.QStandardItem.type": (),
- "PySide2.QtGui.QStandardItem.whatsThis": (),
- "PySide2.QtGui.QStandardItem.write": ('PySide2.QtCore.QDataStream',),
-# class PySide2.QtGui.QStandardItemModel:
- "PySide2.QtGui.QStandardItemModel.__init__": [('PySide2.QtCore.QObject',), ('int', 'int', 'PySide2.QtCore.QObject')],
- "PySide2.QtGui.QStandardItemModel.appendColumn": ('typing.Sequence[PySide2.QtGui.QStandardItem]',),
- "PySide2.QtGui.QStandardItemModel.appendRow": [('PySide2.QtGui.QStandardItem',), ('typing.Sequence[PySide2.QtGui.QStandardItem]',)],
- "PySide2.QtGui.QStandardItemModel.clear": (),
- "PySide2.QtGui.QStandardItemModel.clearItemData": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtGui.QStandardItemModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtGui.QStandardItemModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtGui.QStandardItemModel.dropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtGui.QStandardItemModel.findItems": ('str', 'PySide2.QtCore.Qt.MatchFlags', 'int'),
- "PySide2.QtGui.QStandardItemModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtGui.QStandardItemModel.hasChildren": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtGui.QStandardItemModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtGui.QStandardItemModel.horizontalHeaderItem": ('int',),
- "PySide2.QtGui.QStandardItemModel.index": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtGui.QStandardItemModel.indexFromItem": ('PySide2.QtGui.QStandardItem',),
- "PySide2.QtGui.QStandardItemModel.insertColumn": [('int', 'PySide2.QtCore.QModelIndex'), ('int', 'typing.Sequence[PySide2.QtGui.QStandardItem]')],
- "PySide2.QtGui.QStandardItemModel.insertColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtGui.QStandardItemModel.insertRow": [('int', 'PySide2.QtCore.QModelIndex'), ('int', 'PySide2.QtGui.QStandardItem'), ('int', 'typing.Sequence[PySide2.QtGui.QStandardItem]')],
- "PySide2.QtGui.QStandardItemModel.insertRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtGui.QStandardItemModel.invisibleRootItem": (),
- "PySide2.QtGui.QStandardItemModel.item": ('int', 'int'),
- "PySide2.QtGui.QStandardItemModel.itemData": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtGui.QStandardItemModel.itemFromIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtGui.QStandardItemModel.itemPrototype": (),
- "PySide2.QtGui.QStandardItemModel.mimeData": ('typing.List[int]',),
- "PySide2.QtGui.QStandardItemModel.mimeTypes": (),
- "PySide2.QtGui.QStandardItemModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtGui.QStandardItemModel.removeColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtGui.QStandardItemModel.removeRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtGui.QStandardItemModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtGui.QStandardItemModel.setColumnCount": ('int',),
- "PySide2.QtGui.QStandardItemModel.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
- "PySide2.QtGui.QStandardItemModel.setHeaderData": ('int', 'PySide2.QtCore.Qt.Orientation', 'typing.Any', 'int'),
- "PySide2.QtGui.QStandardItemModel.setHorizontalHeaderItem": ('int', 'PySide2.QtGui.QStandardItem'),
- "PySide2.QtGui.QStandardItemModel.setHorizontalHeaderLabels": ('typing.Sequence[str]',),
- "PySide2.QtGui.QStandardItemModel.setItem": [('int', 'PySide2.QtGui.QStandardItem'), ('int', 'int', 'PySide2.QtGui.QStandardItem')],
- "PySide2.QtGui.QStandardItemModel.setItemData": ('PySide2.QtCore.QModelIndex', 'typing.Dict[int, typing.Any]'),
- "PySide2.QtGui.QStandardItemModel.setItemPrototype": ('PySide2.QtGui.QStandardItem',),
- "PySide2.QtGui.QStandardItemModel.setItemRoleNames": ('typing.Dict[int, PySide2.QtCore.QByteArray]',),
- "PySide2.QtGui.QStandardItemModel.setRowCount": ('int',),
- "PySide2.QtGui.QStandardItemModel.setSortRole": ('int',),
- "PySide2.QtGui.QStandardItemModel.setVerticalHeaderItem": ('int', 'PySide2.QtGui.QStandardItem'),
- "PySide2.QtGui.QStandardItemModel.setVerticalHeaderLabels": ('typing.Sequence[str]',),
- "PySide2.QtGui.QStandardItemModel.sibling": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtGui.QStandardItemModel.sort": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtGui.QStandardItemModel.sortRole": (),
- "PySide2.QtGui.QStandardItemModel.supportedDropActions": (),
- "PySide2.QtGui.QStandardItemModel.takeColumn": ('int',),
- "PySide2.QtGui.QStandardItemModel.takeHorizontalHeaderItem": ('int',),
- "PySide2.QtGui.QStandardItemModel.takeItem": ('int', 'int'),
- "PySide2.QtGui.QStandardItemModel.takeRow": ('int',),
- "PySide2.QtGui.QStandardItemModel.takeVerticalHeaderItem": ('int',),
- "PySide2.QtGui.QStandardItemModel.verticalHeaderItem": ('int',),
-# class PySide2.QtGui.QStaticText:
-# class PySide2.QtGui.QStaticText.PerformanceHint:
- "PySide2.QtGui.QStaticText.__init__": [(), ('PySide2.QtGui.QStaticText',), ('str',)],
- "PySide2.QtGui.QStaticText.__copy__": (),
- "PySide2.QtGui.QStaticText.performanceHint": (),
- "PySide2.QtGui.QStaticText.prepare": ('PySide2.QtGui.QTransform', 'PySide2.QtGui.QFont'),
- "PySide2.QtGui.QStaticText.setPerformanceHint": ('PySide2.QtGui.QStaticText.PerformanceHint',),
- "PySide2.QtGui.QStaticText.setText": ('str',),
- "PySide2.QtGui.QStaticText.setTextFormat": ('PySide2.QtCore.Qt.TextFormat',),
- "PySide2.QtGui.QStaticText.setTextOption": ('PySide2.QtGui.QTextOption',),
- "PySide2.QtGui.QStaticText.setTextWidth": ('float',),
- "PySide2.QtGui.QStaticText.size": (),
- "PySide2.QtGui.QStaticText.swap": ('PySide2.QtGui.QStaticText',),
- "PySide2.QtGui.QStaticText.text": (),
- "PySide2.QtGui.QStaticText.textFormat": (),
- "PySide2.QtGui.QStaticText.textOption": (),
- "PySide2.QtGui.QStaticText.textWidth": (),
-# class PySide2.QtGui.QStatusTipEvent:
- "PySide2.QtGui.QStatusTipEvent.__init__": ('str',),
- "PySide2.QtGui.QStatusTipEvent.tip": (),
-# class PySide2.QtGui.QStyleHints:
- "PySide2.QtGui.QStyleHints.cursorFlashTime": (),
- "PySide2.QtGui.QStyleHints.fontSmoothingGamma": (),
- "PySide2.QtGui.QStyleHints.keyboardAutoRepeatRate": (),
- "PySide2.QtGui.QStyleHints.keyboardInputInterval": (),
- "PySide2.QtGui.QStyleHints.mouseDoubleClickDistance": (),
- "PySide2.QtGui.QStyleHints.mouseDoubleClickInterval": (),
- "PySide2.QtGui.QStyleHints.mousePressAndHoldInterval": (),
- "PySide2.QtGui.QStyleHints.mouseQuickSelectionThreshold": (),
- "PySide2.QtGui.QStyleHints.passwordMaskCharacter": (),
- "PySide2.QtGui.QStyleHints.passwordMaskDelay": (),
- "PySide2.QtGui.QStyleHints.setCursorFlashTime": ('int',),
- "PySide2.QtGui.QStyleHints.setFocusOnTouchRelease": (),
- "PySide2.QtGui.QStyleHints.setKeyboardInputInterval": ('int',),
- "PySide2.QtGui.QStyleHints.setMouseDoubleClickInterval": ('int',),
- "PySide2.QtGui.QStyleHints.setMousePressAndHoldInterval": ('int',),
- "PySide2.QtGui.QStyleHints.setMouseQuickSelectionThreshold": ('int',),
- "PySide2.QtGui.QStyleHints.setShowShortcutsInContextMenus": ('bool',),
- "PySide2.QtGui.QStyleHints.setStartDragDistance": ('int',),
- "PySide2.QtGui.QStyleHints.setStartDragTime": ('int',),
- "PySide2.QtGui.QStyleHints.setTabFocusBehavior": ('PySide2.QtCore.Qt.TabFocusBehavior',),
- "PySide2.QtGui.QStyleHints.setUseHoverEffects": ('bool',),
- "PySide2.QtGui.QStyleHints.setWheelScrollLines": ('int',),
- "PySide2.QtGui.QStyleHints.showIsFullScreen": (),
- "PySide2.QtGui.QStyleHints.showIsMaximized": (),
- "PySide2.QtGui.QStyleHints.showShortcutsInContextMenus": (),
- "PySide2.QtGui.QStyleHints.singleClickActivation": (),
- "PySide2.QtGui.QStyleHints.startDragDistance": (),
- "PySide2.QtGui.QStyleHints.startDragTime": (),
- "PySide2.QtGui.QStyleHints.startDragVelocity": (),
- "PySide2.QtGui.QStyleHints.tabFocusBehavior": (),
- "PySide2.QtGui.QStyleHints.touchDoubleTapDistance": (),
- "PySide2.QtGui.QStyleHints.useHoverEffects": (),
- "PySide2.QtGui.QStyleHints.useRtlExtensions": (),
- "PySide2.QtGui.QStyleHints.wheelScrollLines": (),
-# class PySide2.QtGui.QSurface:
-# class PySide2.QtGui.QSurface.SurfaceClass:
-# class PySide2.QtGui.QSurface.SurfaceType:
- "PySide2.QtGui.QSurface.__init__": ('PySide2.QtGui.QSurface.SurfaceClass',),
- "PySide2.QtGui.QSurface.format": (),
- "PySide2.QtGui.QSurface.size": (),
- "PySide2.QtGui.QSurface.supportsOpenGL": (),
- "PySide2.QtGui.QSurface.surfaceClass": (),
- "PySide2.QtGui.QSurface.surfaceHandle": (),
- "PySide2.QtGui.QSurface.surfaceType": (),
-# class PySide2.QtGui.QSurfaceFormat:
-# class PySide2.QtGui.QSurfaceFormat.ColorSpace:
-# class PySide2.QtGui.QSurfaceFormat.FormatOption:
-# class PySide2.QtGui.QSurfaceFormat.FormatOptions:
-# class PySide2.QtGui.QSurfaceFormat.OpenGLContextProfile:
-# class PySide2.QtGui.QSurfaceFormat.RenderableType:
-# class PySide2.QtGui.QSurfaceFormat.SwapBehavior:
- "PySide2.QtGui.QSurfaceFormat.__init__": [(), ('PySide2.QtGui.QSurfaceFormat',), ('PySide2.QtGui.QSurfaceFormat.FormatOptions',)],
- "PySide2.QtGui.QSurfaceFormat.__copy__": (),
- "PySide2.QtGui.QSurfaceFormat.alphaBufferSize": (),
- "PySide2.QtGui.QSurfaceFormat.blueBufferSize": (),
- "PySide2.QtGui.QSurfaceFormat.colorSpace": (),
- "PySide2.QtGui.QSurfaceFormat.defaultFormat": (),
- "PySide2.QtGui.QSurfaceFormat.depthBufferSize": (),
- "PySide2.QtGui.QSurfaceFormat.greenBufferSize": (),
- "PySide2.QtGui.QSurfaceFormat.hasAlpha": (),
- "PySide2.QtGui.QSurfaceFormat.majorVersion": (),
- "PySide2.QtGui.QSurfaceFormat.minorVersion": (),
- "PySide2.QtGui.QSurfaceFormat.options": (),
- "PySide2.QtGui.QSurfaceFormat.profile": (),
- "PySide2.QtGui.QSurfaceFormat.redBufferSize": (),
- "PySide2.QtGui.QSurfaceFormat.renderableType": (),
- "PySide2.QtGui.QSurfaceFormat.samples": (),
- "PySide2.QtGui.QSurfaceFormat.setAlphaBufferSize": ('int',),
- "PySide2.QtGui.QSurfaceFormat.setBlueBufferSize": ('int',),
- "PySide2.QtGui.QSurfaceFormat.setColorSpace": ('PySide2.QtGui.QSurfaceFormat.ColorSpace',),
- "PySide2.QtGui.QSurfaceFormat.setDefaultFormat": ('PySide2.QtGui.QSurfaceFormat',),
- "PySide2.QtGui.QSurfaceFormat.setDepthBufferSize": ('int',),
- "PySide2.QtGui.QSurfaceFormat.setGreenBufferSize": ('int',),
- "PySide2.QtGui.QSurfaceFormat.setMajorVersion": ('int',),
- "PySide2.QtGui.QSurfaceFormat.setMinorVersion": ('int',),
- "PySide2.QtGui.QSurfaceFormat.setOption": [('PySide2.QtGui.QSurfaceFormat.FormatOption', 'bool'), ('PySide2.QtGui.QSurfaceFormat.FormatOptions',)],
- "PySide2.QtGui.QSurfaceFormat.setOptions": ('PySide2.QtGui.QSurfaceFormat.FormatOptions',),
- "PySide2.QtGui.QSurfaceFormat.setProfile": ('PySide2.QtGui.QSurfaceFormat.OpenGLContextProfile',),
- "PySide2.QtGui.QSurfaceFormat.setRedBufferSize": ('int',),
- "PySide2.QtGui.QSurfaceFormat.setRenderableType": ('PySide2.QtGui.QSurfaceFormat.RenderableType',),
- "PySide2.QtGui.QSurfaceFormat.setSamples": ('int',),
- "PySide2.QtGui.QSurfaceFormat.setStencilBufferSize": ('int',),
- "PySide2.QtGui.QSurfaceFormat.setStereo": ('bool',),
- "PySide2.QtGui.QSurfaceFormat.setSwapBehavior": ('PySide2.QtGui.QSurfaceFormat.SwapBehavior',),
- "PySide2.QtGui.QSurfaceFormat.setSwapInterval": ('int',),
- "PySide2.QtGui.QSurfaceFormat.setVersion": ('int', 'int'),
- "PySide2.QtGui.QSurfaceFormat.stencilBufferSize": (),
- "PySide2.QtGui.QSurfaceFormat.stereo": (),
- "PySide2.QtGui.QSurfaceFormat.swapBehavior": (),
- "PySide2.QtGui.QSurfaceFormat.swapInterval": (),
- "PySide2.QtGui.QSurfaceFormat.testOption": [('PySide2.QtGui.QSurfaceFormat.FormatOption',), ('PySide2.QtGui.QSurfaceFormat.FormatOptions',)],
- "PySide2.QtGui.QSurfaceFormat.version": (),
-# class PySide2.QtGui.QSyntaxHighlighter:
- "PySide2.QtGui.QSyntaxHighlighter.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtGui.QTextDocument',)],
- "PySide2.QtGui.QSyntaxHighlighter.currentBlock": (),
- "PySide2.QtGui.QSyntaxHighlighter.currentBlockState": (),
- "PySide2.QtGui.QSyntaxHighlighter.currentBlockUserData": (),
- "PySide2.QtGui.QSyntaxHighlighter.document": (),
- "PySide2.QtGui.QSyntaxHighlighter.format": ('int',),
- "PySide2.QtGui.QSyntaxHighlighter.highlightBlock": ('str',),
- "PySide2.QtGui.QSyntaxHighlighter.previousBlockState": (),
- "PySide2.QtGui.QSyntaxHighlighter.rehighlight": (),
- "PySide2.QtGui.QSyntaxHighlighter.rehighlightBlock": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtGui.QSyntaxHighlighter.setCurrentBlockState": ('int',),
- "PySide2.QtGui.QSyntaxHighlighter.setCurrentBlockUserData": ('PySide2.QtGui.QTextBlockUserData',),
- "PySide2.QtGui.QSyntaxHighlighter.setDocument": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtGui.QSyntaxHighlighter.setFormat": [('int', 'int', 'PySide2.QtGui.QColor'), ('int', 'int', 'PySide2.QtGui.QFont'), ('int', 'int', 'PySide2.QtGui.QTextCharFormat')],
-# class PySide2.QtGui.QTabletEvent:
-# class PySide2.QtGui.QTabletEvent.PointerType:
-# class PySide2.QtGui.QTabletEvent.TabletDevice:
- "PySide2.QtGui.QTabletEvent.__init__": [('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'int', 'int', 'float', 'int', 'int', 'float', 'float', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'int', 'int', 'float', 'int', 'int', 'float', 'float', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.MouseButtons')],
- "PySide2.QtGui.QTabletEvent.button": (),
- "PySide2.QtGui.QTabletEvent.buttons": (),
- "PySide2.QtGui.QTabletEvent.device": (),
- "PySide2.QtGui.QTabletEvent.globalPos": (),
- "PySide2.QtGui.QTabletEvent.globalPosF": (),
- "PySide2.QtGui.QTabletEvent.globalX": (),
- "PySide2.QtGui.QTabletEvent.global""Y": (),
- "PySide2.QtGui.QTabletEvent.hiResGlobalX": (),
- "PySide2.QtGui.QTabletEvent.hiResGlobal""Y": (),
- "PySide2.QtGui.QTabletEvent.pointerType": (),
- "PySide2.QtGui.QTabletEvent.pos": (),
- "PySide2.QtGui.QTabletEvent.posF": (),
- "PySide2.QtGui.QTabletEvent.pressure": (),
- "PySide2.QtGui.QTabletEvent.rotation": (),
- "PySide2.QtGui.QTabletEvent.tangentialPressure": (),
- "PySide2.QtGui.QTabletEvent.uniqueId": (),
- "PySide2.QtGui.QTabletEvent.x": (),
- "PySide2.QtGui.QTabletEvent.xTilt": (),
- "PySide2.QtGui.QTabletEvent.y": (),
- "PySide2.QtGui.QTabletEvent.yTilt": (),
- "PySide2.QtGui.QTabletEvent.z": (),
-# class PySide2.QtGui.QTextBlock:
-# class PySide2.QtGui.QTextBlock.iterator:
- "PySide2.QtGui.QTextBlock.iterator.__init__": [(), ('PySide2.QtGui.QTextBlock.iterator',)],
- "PySide2.QtGui.QTextBlock.iterator.__copy__": (),
- "PySide2.QtGui.QTextBlock.iterator.__iadd__": ('int',),
- "PySide2.QtGui.QTextBlock.iterator.__isub__": ('int',),
- "PySide2.QtGui.QTextBlock.iterator.__iter__": (),
- "PySide2.QtGui.QTextBlock.iterator.atEnd": (),
- "PySide2.QtGui.QTextBlock.iterator.fragment": (),
- "PySide2.QtGui.QTextBlock.__init__": [(), ('PySide2.QtGui.QTextBlock',)],
- "PySide2.QtGui.QTextBlock.__copy__": (),
- "PySide2.QtGui.QTextBlock.__iter__": (),
- "PySide2.QtGui.QTextBlock.begin": (),
- "PySide2.QtGui.QTextBlock.blockFormat": (),
- "PySide2.QtGui.QTextBlock.blockFormatIndex": (),
- "PySide2.QtGui.QTextBlock.blockNumber": (),
- "PySide2.QtGui.QTextBlock.charFormat": (),
- "PySide2.QtGui.QTextBlock.charFormatIndex": (),
- "PySide2.QtGui.QTextBlock.clearLayout": (),
- "PySide2.QtGui.QTextBlock.contains": ('int',),
- "PySide2.QtGui.QTextBlock.document": (),
- "PySide2.QtGui.QTextBlock.end": (),
- "PySide2.QtGui.QTextBlock.firstLineNumber": (),
- "PySide2.QtGui.QTextBlock.fragmentIndex": (),
- "PySide2.QtGui.QTextBlock.isValid": (),
- "PySide2.QtGui.QTextBlock.isVisible": (),
- "PySide2.QtGui.QTextBlock.layout": (),
- "PySide2.QtGui.QTextBlock.length": (),
- "PySide2.QtGui.QTextBlock.lineCount": (),
- "PySide2.QtGui.QTextBlock.position": (),
- "PySide2.QtGui.QTextBlock.previous": (),
- "PySide2.QtGui.QTextBlock.revision": (),
- "PySide2.QtGui.QTextBlock.setLineCount": ('int',),
- "PySide2.QtGui.QTextBlock.setRevision": ('int',),
- "PySide2.QtGui.QTextBlock.setUserData": ('PySide2.QtGui.QTextBlockUserData',),
- "PySide2.QtGui.QTextBlock.setUserState": ('int',),
- "PySide2.QtGui.QTextBlock.setVisible": ('bool',),
- "PySide2.QtGui.QTextBlock.text": (),
- "PySide2.QtGui.QTextBlock.textDirection": (),
- "PySide2.QtGui.QTextBlock.textFormats": (),
- "PySide2.QtGui.QTextBlock.textList": (),
- "PySide2.QtGui.QTextBlock.userData": (),
- "PySide2.QtGui.QTextBlock.userState": (),
-# class PySide2.QtGui.QTextBlockFormat:
-# class PySide2.QtGui.QTextBlockFormat.LineHeightTypes:
-# class PySide2.QtGui.QTextBlockFormat.MarkerType:
- "PySide2.QtGui.QTextBlockFormat.__init__": [(), ('PySide2.QtGui.QTextBlockFormat',), ('PySide2.QtGui.QTextFormat',)],
- "PySide2.QtGui.QTextBlockFormat.__copy__": (),
- "PySide2.QtGui.QTextBlockFormat.alignment": (),
- "PySide2.QtGui.QTextBlockFormat.bottomMargin": (),
- "PySide2.QtGui.QTextBlockFormat.headingLevel": (),
- "PySide2.QtGui.QTextBlockFormat.indent": (),
- "PySide2.QtGui.QTextBlockFormat.isValid": (),
- "PySide2.QtGui.QTextBlockFormat.leftMargin": (),
- "PySide2.QtGui.QTextBlockFormat.lineHeight": [(), ('float', 'float')],
- "PySide2.QtGui.QTextBlockFormat.lineHeightType": (),
- "PySide2.QtGui.QTextBlockFormat.marker": (),
- "PySide2.QtGui.QTextBlockFormat.nonBreakableLines": (),
- "PySide2.QtGui.QTextBlockFormat.pageBreakPolicy": (),
- "PySide2.QtGui.QTextBlockFormat.rightMargin": (),
- "PySide2.QtGui.QTextBlockFormat.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtGui.QTextBlockFormat.setBottomMargin": ('float',),
- "PySide2.QtGui.QTextBlockFormat.setHeadingLevel": ('int',),
- "PySide2.QtGui.QTextBlockFormat.setIndent": ('int',),
- "PySide2.QtGui.QTextBlockFormat.setLeftMargin": ('float',),
- "PySide2.QtGui.QTextBlockFormat.setLineHeight": ('float', 'int'),
- "PySide2.QtGui.QTextBlockFormat.setMarker": ('PySide2.QtGui.QTextBlockFormat.MarkerType',),
- "PySide2.QtGui.QTextBlockFormat.setNonBreakableLines": ('bool',),
- "PySide2.QtGui.QTextBlockFormat.setPageBreakPolicy": ('PySide2.QtGui.QTextFormat.PageBreakFlags',),
- "PySide2.QtGui.QTextBlockFormat.setRightMargin": ('float',),
- "PySide2.QtGui.QTextBlockFormat.setTabPositions": ('typing.Sequence[PySide2.QtGui.QTextOption.Tab]',),
- "PySide2.QtGui.QTextBlockFormat.setTextIndent": ('float',),
- "PySide2.QtGui.QTextBlockFormat.setTopMargin": ('float',),
- "PySide2.QtGui.QTextBlockFormat.tabPositions": (),
- "PySide2.QtGui.QTextBlockFormat.textIndent": (),
- "PySide2.QtGui.QTextBlockFormat.topMargin": (),
-# class PySide2.QtGui.QTextBlockGroup:
- "PySide2.QtGui.QTextBlockGroup.__init__": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtGui.QTextBlockGroup.blockFormatChanged": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtGui.QTextBlockGroup.blockInserted": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtGui.QTextBlockGroup.blockList": (),
- "PySide2.QtGui.QTextBlockGroup.blockRemoved": ('PySide2.QtGui.QTextBlock',),
-# class PySide2.QtGui.QTextBlockUserData:
- "PySide2.QtGui.QTextBlockUserData.__init__": (),
-# class PySide2.QtGui.QTextCharFormat:
-# class PySide2.QtGui.QTextCharFormat.FontPropertiesInheritanceBehavior:
-# class PySide2.QtGui.QTextCharFormat.UnderlineStyle:
-# class PySide2.QtGui.QTextCharFormat.VerticalAlignment:
- "PySide2.QtGui.QTextCharFormat.__init__": [(), ('PySide2.QtGui.QTextCharFormat',), ('PySide2.QtGui.QTextFormat',)],
- "PySide2.QtGui.QTextCharFormat.__copy__": (),
- "PySide2.QtGui.QTextCharFormat.anchorHref": (),
- "PySide2.QtGui.QTextCharFormat.anchorName": (),
- "PySide2.QtGui.QTextCharFormat.anchorNames": (),
- "PySide2.QtGui.QTextCharFormat.font": (),
- "PySide2.QtGui.QTextCharFormat.fontCapitalization": (),
- "PySide2.QtGui.QTextCharFormat.fontFamilies": (),
- "PySide2.QtGui.QTextCharFormat.fontFamily": (),
- "PySide2.QtGui.QTextCharFormat.fontFixedPitch": (),
- "PySide2.QtGui.QTextCharFormat.fontHintingPreference": (),
- "PySide2.QtGui.QTextCharFormat.fontItalic": (),
- "PySide2.QtGui.QTextCharFormat.fontKerning": (),
- "PySide2.QtGui.QTextCharFormat.fontLetterSpacing": (),
- "PySide2.QtGui.QTextCharFormat.fontLetterSpacingType": (),
- "PySide2.QtGui.QTextCharFormat.fontOverline": (),
- "PySide2.QtGui.QTextCharFormat.fontPointSize": (),
- "PySide2.QtGui.QTextCharFormat.fontStretch": (),
- "PySide2.QtGui.QTextCharFormat.fontStrikeOut": (),
- "PySide2.QtGui.QTextCharFormat.fontStyleHint": (),
- "PySide2.QtGui.QTextCharFormat.fontStyleName": (),
- "PySide2.QtGui.QTextCharFormat.fontStyleStrategy": (),
- "PySide2.QtGui.QTextCharFormat.fontUnderline": (),
- "PySide2.QtGui.QTextCharFormat.fontWeight": (),
- "PySide2.QtGui.QTextCharFormat.fontWordSpacing": (),
- "PySide2.QtGui.QTextCharFormat.isAnchor": (),
- "PySide2.QtGui.QTextCharFormat.isValid": (),
- "PySide2.QtGui.QTextCharFormat.setAnchor": ('bool',),
- "PySide2.QtGui.QTextCharFormat.setAnchorHref": ('str',),
- "PySide2.QtGui.QTextCharFormat.setAnchorName": ('str',),
- "PySide2.QtGui.QTextCharFormat.setAnchorNames": ('typing.Sequence[str]',),
- "PySide2.QtGui.QTextCharFormat.setFont": [('PySide2.QtGui.QFont',), ('PySide2.QtGui.QFont', 'PySide2.QtGui.QTextCharFormat.FontPropertiesInheritanceBehavior')],
- "PySide2.QtGui.QTextCharFormat.setFontCapitalization": ('PySide2.QtGui.QFont.Capitalization',),
- "PySide2.QtGui.QTextCharFormat.setFontFamilies": ('typing.Sequence[str]',),
- "PySide2.QtGui.QTextCharFormat.setFontFamily": ('str',),
- "PySide2.QtGui.QTextCharFormat.setFontFixedPitch": ('bool',),
- "PySide2.QtGui.QTextCharFormat.setFontHintingPreference": ('PySide2.QtGui.QFont.HintingPreference',),
- "PySide2.QtGui.QTextCharFormat.setFontItalic": ('bool',),
- "PySide2.QtGui.QTextCharFormat.setFontKerning": ('bool',),
- "PySide2.QtGui.QTextCharFormat.setFontLetterSpacing": ('float',),
- "PySide2.QtGui.QTextCharFormat.setFontLetterSpacingType": ('PySide2.QtGui.QFont.SpacingType',),
- "PySide2.QtGui.QTextCharFormat.setFontOverline": ('bool',),
- "PySide2.QtGui.QTextCharFormat.setFontPointSize": ('float',),
- "PySide2.QtGui.QTextCharFormat.setFontStretch": ('int',),
- "PySide2.QtGui.QTextCharFormat.setFontStrikeOut": ('bool',),
- "PySide2.QtGui.QTextCharFormat.setFontStyleHint": ('PySide2.QtGui.QFont.StyleHint', 'PySide2.QtGui.QFont.StyleStrategy'),
- "PySide2.QtGui.QTextCharFormat.setFontStyleName": ('str',),
- "PySide2.QtGui.QTextCharFormat.setFontStyleStrategy": ('PySide2.QtGui.QFont.StyleStrategy',),
- "PySide2.QtGui.QTextCharFormat.setFontUnderline": ('bool',),
- "PySide2.QtGui.QTextCharFormat.setFontWeight": ('int',),
- "PySide2.QtGui.QTextCharFormat.setFontWordSpacing": ('float',),
- "PySide2.QtGui.QTextCharFormat.setTableCellColumnSpan": ('int',),
- "PySide2.QtGui.QTextCharFormat.setTableCellRowSpan": ('int',),
- "PySide2.QtGui.QTextCharFormat.setTextOutline": ('PySide2.QtGui.QPen',),
- "PySide2.QtGui.QTextCharFormat.setToolTip": ('str',),
- "PySide2.QtGui.QTextCharFormat.setUnderlineColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtGui.QTextCharFormat.setUnderlineStyle": ('PySide2.QtGui.QTextCharFormat.UnderlineStyle',),
- "PySide2.QtGui.QTextCharFormat.setVerticalAlignment": ('PySide2.QtGui.QTextCharFormat.VerticalAlignment',),
- "PySide2.QtGui.QTextCharFormat.tableCellColumnSpan": (),
- "PySide2.QtGui.QTextCharFormat.tableCellRowSpan": (),
- "PySide2.QtGui.QTextCharFormat.textOutline": (),
- "PySide2.QtGui.QTextCharFormat.toolTip": (),
- "PySide2.QtGui.QTextCharFormat.underlineColor": (),
- "PySide2.QtGui.QTextCharFormat.underlineStyle": (),
- "PySide2.QtGui.QTextCharFormat.verticalAlignment": (),
-# class PySide2.QtGui.QTextCursor:
-# class PySide2.QtGui.QTextCursor.MoveMode:
-# class PySide2.QtGui.QTextCursor.MoveOperation:
-# class PySide2.QtGui.QTextCursor.SelectionType:
- "PySide2.QtGui.QTextCursor.__init__": [(), ('PySide2.QtGui.QTextBlock',), ('PySide2.QtGui.QTextCursor',), ('PySide2.QtGui.QTextDocument',), ('PySide2.QtGui.QTextFrame',)],
- "PySide2.QtGui.QTextCursor.__copy__": (),
- "PySide2.QtGui.QTextCursor.anchor": (),
- "PySide2.QtGui.QTextCursor.atBlockEnd": (),
- "PySide2.QtGui.QTextCursor.atBlockStart": (),
- "PySide2.QtGui.QTextCursor.atEnd": (),
- "PySide2.QtGui.QTextCursor.atStart": (),
- "PySide2.QtGui.QTextCursor.beginEditBlock": (),
- "PySide2.QtGui.QTextCursor.block": (),
- "PySide2.QtGui.QTextCursor.blockCharFormat": (),
- "PySide2.QtGui.QTextCursor.blockFormat": (),
- "PySide2.QtGui.QTextCursor.blockNumber": (),
- "PySide2.QtGui.QTextCursor.charFormat": (),
- "PySide2.QtGui.QTextCursor.clearSelection": (),
- "PySide2.QtGui.QTextCursor.columnNumber": (),
- "PySide2.QtGui.QTextCursor.createList": [('PySide2.QtGui.QTextListFormat',), ('PySide2.QtGui.QTextListFormat.Style',)],
- "PySide2.QtGui.QTextCursor.currentFrame": (),
- "PySide2.QtGui.QTextCursor.currentList": (),
- "PySide2.QtGui.QTextCursor.currentTable": (),
- "PySide2.QtGui.QTextCursor.deleteChar": (),
- "PySide2.QtGui.QTextCursor.deletePreviousChar": (),
- "PySide2.QtGui.QTextCursor.document": (),
- "PySide2.QtGui.QTextCursor.endEditBlock": (),
- "PySide2.QtGui.QTextCursor.hasComplexSelection": (),
- "PySide2.QtGui.QTextCursor.hasSelection": (),
- "PySide2.QtGui.QTextCursor.insertBlock": [(), ('PySide2.QtGui.QTextBlockFormat',), ('PySide2.QtGui.QTextBlockFormat', 'PySide2.QtGui.QTextCharFormat')],
- "PySide2.QtGui.QTextCursor.insertFragment": ('PySide2.QtGui.QTextDocumentFragment',),
- "PySide2.QtGui.QTextCursor.insertFrame": ('PySide2.QtGui.QTextFrameFormat',),
- "PySide2.QtGui.QTextCursor.insertHtml": ('str',),
- "PySide2.QtGui.QTextCursor.insertImage": [('PySide2.QtGui.QImage', 'str'), ('PySide2.QtGui.QTextImageFormat',), ('PySide2.QtGui.QTextImageFormat', 'PySide2.QtGui.QTextFrameFormat.Position'), ('str',)],
- "PySide2.QtGui.QTextCursor.insertList": [('PySide2.QtGui.QTextListFormat',), ('PySide2.QtGui.QTextListFormat.Style',)],
- "PySide2.QtGui.QTextCursor.insertTable": [('int', 'int'), ('int', 'int', 'PySide2.QtGui.QTextTableFormat')],
- "PySide2.QtGui.QTextCursor.insertText": [('str',), ('str', 'PySide2.QtGui.QTextCharFormat')],
- "PySide2.QtGui.QTextCursor.isCopyOf": ('PySide2.QtGui.QTextCursor',),
- "PySide2.QtGui.QTextCursor.isNull": (),
- "PySide2.QtGui.QTextCursor.joinPreviousEditBlock": (),
- "PySide2.QtGui.QTextCursor.keepPositionOnInsert": (),
- "PySide2.QtGui.QTextCursor.mergeBlockCharFormat": ('PySide2.QtGui.QTextCharFormat',),
- "PySide2.QtGui.QTextCursor.mergeBlockFormat": ('PySide2.QtGui.QTextBlockFormat',),
- "PySide2.QtGui.QTextCursor.mergeCharFormat": ('PySide2.QtGui.QTextCharFormat',),
- "PySide2.QtGui.QTextCursor.movePosition": ('PySide2.QtGui.QTextCursor.MoveOperation', 'PySide2.QtGui.QTextCursor.MoveMode', 'int'),
- "PySide2.QtGui.QTextCursor.position": (),
- "PySide2.QtGui.QTextCursor.positionInBlock": (),
- "PySide2.QtGui.QTextCursor.removeSelectedText": (),
- "PySide2.QtGui.QTextCursor.select": ('PySide2.QtGui.QTextCursor.SelectionType',),
- "PySide2.QtGui.QTextCursor.selectedTableCells": (),
- "PySide2.QtGui.QTextCursor.selectedText": (),
- "PySide2.QtGui.QTextCursor.selection": (),
- "PySide2.QtGui.QTextCursor.selectionEnd": (),
- "PySide2.QtGui.QTextCursor.selectionStart": (),
- "PySide2.QtGui.QTextCursor.setBlockCharFormat": ('PySide2.QtGui.QTextCharFormat',),
- "PySide2.QtGui.QTextCursor.setBlockFormat": ('PySide2.QtGui.QTextBlockFormat',),
- "PySide2.QtGui.QTextCursor.setCharFormat": ('PySide2.QtGui.QTextCharFormat',),
- "PySide2.QtGui.QTextCursor.setKeepPositionOnInsert": ('bool',),
- "PySide2.QtGui.QTextCursor.setPosition": ('int', 'PySide2.QtGui.QTextCursor.MoveMode'),
- "PySide2.QtGui.QTextCursor.setVerticalMovementX": ('int',),
- "PySide2.QtGui.QTextCursor.setVisualNavigation": ('bool',),
- "PySide2.QtGui.QTextCursor.swap": ('PySide2.QtGui.QTextCursor',),
- "PySide2.QtGui.QTextCursor.verticalMovementX": (),
- "PySide2.QtGui.QTextCursor.visualNavigation": (),
-# class PySide2.QtGui.QTextDocument:
-# class PySide2.QtGui.QTextDocument.FindFlag:
-# class PySide2.QtGui.QTextDocument.FindFlags:
-# class PySide2.QtGui.QTextDocument.MarkdownFeature:
-# class PySide2.QtGui.QTextDocument.MarkdownFeatures:
-# class PySide2.QtGui.QTextDocument.MetaInformation:
-# class PySide2.QtGui.QTextDocument.ResourceType:
-# class PySide2.QtGui.QTextDocument.Stacks:
- "PySide2.QtGui.QTextDocument.__init__": [('PySide2.QtCore.QObject',), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtGui.QTextDocument.addResource": ('int', 'PySide2.QtCore.QUrl', 'typing.Any'),
- "PySide2.QtGui.QTextDocument.adjustSize": (),
- "PySide2.QtGui.QTextDocument.allFormats": (),
- "PySide2.QtGui.QTextDocument.availableRedoSteps": (),
- "PySide2.QtGui.QTextDocument.availableUndoSteps": (),
- "PySide2.QtGui.QTextDocument.baseUrl": (),
- "PySide2.QtGui.QTextDocument.begin": (),
- "PySide2.QtGui.QTextDocument.blockCount": (),
- "PySide2.QtGui.QTextDocument.characterAt": ('int',),
- "PySide2.QtGui.QTextDocument.characterCount": (),
- "PySide2.QtGui.QTextDocument.clear": (),
- "PySide2.QtGui.QTextDocument.clearUndoRedoStacks": ('PySide2.QtGui.QTextDocument.Stacks',),
- "PySide2.QtGui.QTextDocument.clone": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QTextDocument.createObject": ('PySide2.QtGui.QTextFormat',),
- "PySide2.QtGui.QTextDocument.defaultCursorMoveStyle": (),
- "PySide2.QtGui.QTextDocument.defaultFont": (),
- "PySide2.QtGui.QTextDocument.defaultStyleSheet": (),
- "PySide2.QtGui.QTextDocument.defaultTextOption": (),
- "PySide2.QtGui.QTextDocument.documentLayout": (),
- "PySide2.QtGui.QTextDocument.documentMargin": (),
- "PySide2.QtGui.QTextDocument.drawContents": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF'),
- "PySide2.QtGui.QTextDocument.end": (),
- "PySide2.QtGui.QTextDocument.find": [('PySide2.QtCore.QRegExp', 'PySide2.QtGui.QTextCursor', 'PySide2.QtGui.QTextDocument.FindFlags'), ('PySide2.QtCore.QRegExp', 'int', 'PySide2.QtGui.QTextDocument.FindFlags'), ('PySide2.QtCore.QRegularExpression', 'PySide2.QtGui.QTextCursor', 'PySide2.QtGui.QTextDocument.FindFlags'), ('PySide2.QtCore.QRegularExpression', 'int', 'PySide2.QtGui.QTextDocument.FindFlags'), ('str', 'PySide2.QtGui.QTextCursor', 'PySide2.QtGui.QTextDocument.FindFlags'), ('str', 'int', 'PySide2.QtGui.QTextDocument.FindFlags')],
- "PySide2.QtGui.QTextDocument.findBlock": ('int',),
- "PySide2.QtGui.QTextDocument.findBlockByLineNumber": ('int',),
- "PySide2.QtGui.QTextDocument.findBlockByNumber": ('int',),
- "PySide2.QtGui.QTextDocument.firstBlock": (),
- "PySide2.QtGui.QTextDocument.frameAt": ('int',),
- "PySide2.QtGui.QTextDocument.idealWidth": (),
- "PySide2.QtGui.QTextDocument.indentWidth": (),
- "PySide2.QtGui.QTextDocument.isEmpty": (),
- "PySide2.QtGui.QTextDocument.isModified": (),
- "PySide2.QtGui.QTextDocument.isRedoAvailable": (),
- "PySide2.QtGui.QTextDocument.isUndoAvailable": (),
- "PySide2.QtGui.QTextDocument.isUndoRedoEnabled": (),
- "PySide2.QtGui.QTextDocument.lastBlock": (),
- "PySide2.QtGui.QTextDocument.lineCount": (),
- "PySide2.QtGui.QTextDocument.loadResource": ('int', 'PySide2.QtCore.QUrl'),
- "PySide2.QtGui.QTextDocument.markContentsDirty": ('int', 'int'),
- "PySide2.QtGui.QTextDocument.maximumBlockCount": (),
- "PySide2.QtGui.QTextDocument.metaInformation": ('PySide2.QtGui.QTextDocument.MetaInformation',),
- "PySide2.QtGui.QTextDocument.object": ('int',),
- "PySide2.QtGui.QTextDocument.objectForFormat": ('PySide2.QtGui.QTextFormat',),
- "PySide2.QtGui.QTextDocument.pageCount": (),
- "PySide2.QtGui.QTextDocument.pageSize": (),
- "PySide2.QtGui.QTextDocument.print_": ('PySide2.QtGui.QPagedPaintDevice',),
- "PySide2.QtGui.QTextDocument.redo": [(), ('PySide2.QtGui.QTextCursor',)],
- "PySide2.QtGui.QTextDocument.resource": ('int', 'PySide2.QtCore.QUrl'),
- "PySide2.QtGui.QTextDocument.revision": (),
- "PySide2.QtGui.QTextDocument.rootFrame": (),
- "PySide2.QtGui.QTextDocument.setBaseUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtGui.QTextDocument.setDefaultCursorMoveStyle": ('PySide2.QtCore.Qt.CursorMoveStyle',),
- "PySide2.QtGui.QTextDocument.setDefaultFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtGui.QTextDocument.setDefaultStyleSheet": ('str',),
- "PySide2.QtGui.QTextDocument.setDefaultTextOption": ('PySide2.QtGui.QTextOption',),
- "PySide2.QtGui.QTextDocument.setDocumentLayout": ('PySide2.QtGui.QAbstractTextDocumentLayout',),
- "PySide2.QtGui.QTextDocument.setDocumentMargin": ('float',),
- "PySide2.QtGui.QTextDocument.setHtml": ('str',),
- "PySide2.QtGui.QTextDocument.setIndentWidth": ('float',),
- "PySide2.QtGui.QTextDocument.setMarkdown": ('str', 'PySide2.QtGui.QTextDocument.MarkdownFeatures'),
- "PySide2.QtGui.QTextDocument.setMaximumBlockCount": ('int',),
- "PySide2.QtGui.QTextDocument.setMetaInformation": ('PySide2.QtGui.QTextDocument.MetaInformation', 'str'),
- "PySide2.QtGui.QTextDocument.setModified": ('bool',),
- "PySide2.QtGui.QTextDocument.setPageSize": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtGui.QTextDocument.setPlainText": ('str',),
- "PySide2.QtGui.QTextDocument.setTextWidth": ('float',),
- "PySide2.QtGui.QTextDocument.setUndoRedoEnabled": ('bool',),
- "PySide2.QtGui.QTextDocument.setUseDesignMetrics": ('bool',),
- "PySide2.QtGui.QTextDocument.size": (),
- "PySide2.QtGui.QTextDocument.textWidth": (),
- "PySide2.QtGui.QTextDocument.toHtml": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QTextDocument.toMarkdown": ('PySide2.QtGui.QTextDocument.MarkdownFeatures',),
- "PySide2.QtGui.QTextDocument.toPlainText": (),
- "PySide2.QtGui.QTextDocument.toRawText": (),
- "PySide2.QtGui.QTextDocument.undo": [(), ('PySide2.QtGui.QTextCursor',)],
- "PySide2.QtGui.QTextDocument.useDesignMetrics": (),
-# class PySide2.QtGui.QTextDocumentFragment:
- "PySide2.QtGui.QTextDocumentFragment.__init__": [(), ('PySide2.QtGui.QTextCursor',), ('PySide2.QtGui.QTextDocument',), ('PySide2.QtGui.QTextDocumentFragment',)],
- "PySide2.QtGui.QTextDocumentFragment.__copy__": (),
- "PySide2.QtGui.QTextDocumentFragment.fromHtml": [('str',), ('str', 'PySide2.QtGui.QTextDocument')],
- "PySide2.QtGui.QTextDocumentFragment.fromPlainText": ('str',),
- "PySide2.QtGui.QTextDocumentFragment.isEmpty": (),
- "PySide2.QtGui.QTextDocumentFragment.toHtml": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QTextDocumentFragment.toPlainText": (),
-# class PySide2.QtGui.QTextDocumentWriter:
- "PySide2.QtGui.QTextDocumentWriter.__init__": [(), ('PySide2.QtCore.QIODevice', 'PySide2.QtCore.QByteArray'), ('str', 'PySide2.QtCore.QByteArray')],
- "PySide2.QtGui.QTextDocumentWriter.codec": (),
- "PySide2.QtGui.QTextDocumentWriter.device": (),
- "PySide2.QtGui.QTextDocumentWriter.fileName": (),
- "PySide2.QtGui.QTextDocumentWriter.format": (),
- "PySide2.QtGui.QTextDocumentWriter.setCodec": ('PySide2.QtCore.QTextCodec',),
- "PySide2.QtGui.QTextDocumentWriter.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtGui.QTextDocumentWriter.setFileName": ('str',),
- "PySide2.QtGui.QTextDocumentWriter.setFormat": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QTextDocumentWriter.supportedDocumentFormats": (),
- "PySide2.QtGui.QTextDocumentWriter.write": [('PySide2.QtGui.QTextDocument',), ('PySide2.QtGui.QTextDocumentFragment',)],
-# class PySide2.QtGui.QTextFormat:
-# class PySide2.QtGui.QTextFormat.FormatType:
-# class PySide2.QtGui.QTextFormat.ObjectTypes:
-# class PySide2.QtGui.QTextFormat.PageBreakFlag:
-# class PySide2.QtGui.QTextFormat.PageBreakFlags:
-# class PySide2.QtGui.QTextFormat.Property:
- "PySide2.QtGui.QTextFormat.__init__": [(), ('PySide2.QtGui.QTextFormat',), ('int',)],
- "PySide2.QtGui.QTextFormat.__copy__": (),
- "PySide2.QtGui.QTextFormat.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QTextFormat.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QTextFormat.background": (),
- "PySide2.QtGui.QTextFormat.boolProperty": ('int',),
- "PySide2.QtGui.QTextFormat.brushProperty": ('int',),
- "PySide2.QtGui.QTextFormat.clearBackground": (),
- "PySide2.QtGui.QTextFormat.clearForeground": (),
- "PySide2.QtGui.QTextFormat.clearProperty": ('int',),
- "PySide2.QtGui.QTextFormat.colorProperty": ('int',),
- "PySide2.QtGui.QTextFormat.doubleProperty": ('int',),
- "PySide2.QtGui.QTextFormat.foreground": (),
- "PySide2.QtGui.QTextFormat.hasProperty": ('int',),
- "PySide2.QtGui.QTextFormat.intProperty": ('int',),
- "PySide2.QtGui.QTextFormat.isBlockFormat": (),
- "PySide2.QtGui.QTextFormat.isCharFormat": (),
- "PySide2.QtGui.QTextFormat.isEmpty": (),
- "PySide2.QtGui.QTextFormat.isFrameFormat": (),
- "PySide2.QtGui.QTextFormat.isImageFormat": (),
- "PySide2.QtGui.QTextFormat.isListFormat": (),
- "PySide2.QtGui.QTextFormat.isTableCellFormat": (),
- "PySide2.QtGui.QTextFormat.isTableFormat": (),
- "PySide2.QtGui.QTextFormat.isValid": (),
- "PySide2.QtGui.QTextFormat.layoutDirection": (),
- "PySide2.QtGui.QTextFormat.lengthProperty": ('int',),
- "PySide2.QtGui.QTextFormat.lengthVectorProperty": ('int',),
- "PySide2.QtGui.QTextFormat.merge": ('PySide2.QtGui.QTextFormat',),
- "PySide2.QtGui.QTextFormat.objectIndex": (),
- "PySide2.QtGui.QTextFormat.objectType": (),
- "PySide2.QtGui.QTextFormat.penProperty": ('int',),
- "PySide2.QtGui.QTextFormat.properties": (),
- "PySide2.QtGui.QTextFormat.property": ('int',),
- "PySide2.QtGui.QTextFormat.propertyCount": (),
- "PySide2.QtGui.QTextFormat.setBackground": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QTextFormat.setForeground": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QTextFormat.setLayoutDirection": ('PySide2.QtCore.Qt.LayoutDirection',),
- "PySide2.QtGui.QTextFormat.setObjectIndex": ('int',),
- "PySide2.QtGui.QTextFormat.setObjectType": ('int',),
- "PySide2.QtGui.QTextFormat.setProperty": [('int', 'typing.Any'), ('int', 'typing.List[PySide2.QtGui.QTextLength]')],
- "PySide2.QtGui.QTextFormat.stringProperty": ('int',),
- "PySide2.QtGui.QTextFormat.swap": ('PySide2.QtGui.QTextFormat',),
- "PySide2.QtGui.QTextFormat.toBlockFormat": (),
- "PySide2.QtGui.QTextFormat.toCharFormat": (),
- "PySide2.QtGui.QTextFormat.toFrameFormat": (),
- "PySide2.QtGui.QTextFormat.toImageFormat": (),
- "PySide2.QtGui.QTextFormat.toListFormat": (),
- "PySide2.QtGui.QTextFormat.toTableCellFormat": (),
- "PySide2.QtGui.QTextFormat.toTableFormat": (),
- "PySide2.QtGui.QTextFormat.type": (),
-# class PySide2.QtGui.QTextFragment:
- "PySide2.QtGui.QTextFragment.__init__": [(), ('PySide2.QtGui.QTextFragment',)],
- "PySide2.QtGui.QTextFragment.__copy__": (),
- "PySide2.QtGui.QTextFragment.charFormat": (),
- "PySide2.QtGui.QTextFragment.charFormatIndex": (),
- "PySide2.QtGui.QTextFragment.contains": ('int',),
- "PySide2.QtGui.QTextFragment.isValid": (),
- "PySide2.QtGui.QTextFragment.length": (),
- "PySide2.QtGui.QTextFragment.position": (),
- "PySide2.QtGui.QTextFragment.text": (),
-# class PySide2.QtGui.QTextFrame:
-# class PySide2.QtGui.QTextFrame.iterator:
- "PySide2.QtGui.QTextFrame.iterator.__init__": [(), ('PySide2.QtGui.QTextFrame.iterator',)],
- "PySide2.QtGui.QTextFrame.iterator.__copy__": (),
- "PySide2.QtGui.QTextFrame.iterator.__iadd__": ('int',),
- "PySide2.QtGui.QTextFrame.iterator.__isub__": ('int',),
- "PySide2.QtGui.QTextFrame.iterator.__iter__": (),
- "PySide2.QtGui.QTextFrame.iterator.atEnd": (),
- "PySide2.QtGui.QTextFrame.iterator.currentBlock": (),
- "PySide2.QtGui.QTextFrame.iterator.currentFrame": (),
- "PySide2.QtGui.QTextFrame.iterator.parentFrame": (),
- "PySide2.QtGui.QTextFrame.__init__": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtGui.QTextFrame.__iter__": (),
- "PySide2.QtGui.QTextFrame.begin": (),
- "PySide2.QtGui.QTextFrame.childFrames": (),
- "PySide2.QtGui.QTextFrame.end": (),
- "PySide2.QtGui.QTextFrame.firstCursorPosition": (),
- "PySide2.QtGui.QTextFrame.firstPosition": (),
- "PySide2.QtGui.QTextFrame.frameFormat": (),
- "PySide2.QtGui.QTextFrame.lastCursorPosition": (),
- "PySide2.QtGui.QTextFrame.lastPosition": (),
- "PySide2.QtGui.QTextFrame.parentFrame": (),
- "PySide2.QtGui.QTextFrame.setFrameFormat": ('PySide2.QtGui.QTextFrameFormat',),
-# class PySide2.QtGui.QTextFrameFormat:
-# class PySide2.QtGui.QTextFrameFormat.BorderStyle:
-# class PySide2.QtGui.QTextFrameFormat.Position:
- "PySide2.QtGui.QTextFrameFormat.__init__": [(), ('PySide2.QtGui.QTextFormat',), ('PySide2.QtGui.QTextFrameFormat',)],
- "PySide2.QtGui.QTextFrameFormat.__copy__": (),
- "PySide2.QtGui.QTextFrameFormat.border": (),
- "PySide2.QtGui.QTextFrameFormat.borderBrush": (),
- "PySide2.QtGui.QTextFrameFormat.borderStyle": (),
- "PySide2.QtGui.QTextFrameFormat.bottomMargin": (),
- "PySide2.QtGui.QTextFrameFormat.height": (),
- "PySide2.QtGui.QTextFrameFormat.isValid": (),
- "PySide2.QtGui.QTextFrameFormat.leftMargin": (),
- "PySide2.QtGui.QTextFrameFormat.margin": (),
- "PySide2.QtGui.QTextFrameFormat.padding": (),
- "PySide2.QtGui.QTextFrameFormat.pageBreakPolicy": (),
- "PySide2.QtGui.QTextFrameFormat.position": (),
- "PySide2.QtGui.QTextFrameFormat.rightMargin": (),
- "PySide2.QtGui.QTextFrameFormat.setBorder": ('float',),
- "PySide2.QtGui.QTextFrameFormat.setBorderBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QTextFrameFormat.setBorderStyle": ('PySide2.QtGui.QTextFrameFormat.BorderStyle',),
- "PySide2.QtGui.QTextFrameFormat.setBottomMargin": ('float',),
- "PySide2.QtGui.QTextFrameFormat.setHeight": [('PySide2.QtGui.QTextLength',), ('float',)],
- "PySide2.QtGui.QTextFrameFormat.setLeftMargin": ('float',),
- "PySide2.QtGui.QTextFrameFormat.setMargin": ('float',),
- "PySide2.QtGui.QTextFrameFormat.setPadding": ('float',),
- "PySide2.QtGui.QTextFrameFormat.setPageBreakPolicy": ('PySide2.QtGui.QTextFormat.PageBreakFlags',),
- "PySide2.QtGui.QTextFrameFormat.setPosition": ('PySide2.QtGui.QTextFrameFormat.Position',),
- "PySide2.QtGui.QTextFrameFormat.setRightMargin": ('float',),
- "PySide2.QtGui.QTextFrameFormat.setTopMargin": ('float',),
- "PySide2.QtGui.QTextFrameFormat.setWidth": [('PySide2.QtGui.QTextLength',), ('float',)],
- "PySide2.QtGui.QTextFrameFormat.topMargin": (),
- "PySide2.QtGui.QTextFrameFormat.width": (),
-# class PySide2.QtGui.QTextImageFormat:
- "PySide2.QtGui.QTextImageFormat.__init__": [(), ('PySide2.QtGui.QTextFormat',), ('PySide2.QtGui.QTextImageFormat',)],
- "PySide2.QtGui.QTextImageFormat.__copy__": (),
- "PySide2.QtGui.QTextImageFormat.height": (),
- "PySide2.QtGui.QTextImageFormat.isValid": (),
- "PySide2.QtGui.QTextImageFormat.name": (),
- "PySide2.QtGui.QTextImageFormat.quality": (),
- "PySide2.QtGui.QTextImageFormat.setHeight": ('float',),
- "PySide2.QtGui.QTextImageFormat.setName": ('str',),
- "PySide2.QtGui.QTextImageFormat.setQuality": ('int',),
- "PySide2.QtGui.QTextImageFormat.setWidth": ('float',),
- "PySide2.QtGui.QTextImageFormat.width": (),
-# class PySide2.QtGui.QTextInlineObject:
- "PySide2.QtGui.QTextInlineObject.__init__": (),
- "PySide2.QtGui.QTextInlineObject.__copy__": (),
- "PySide2.QtGui.QTextInlineObject.ascent": (),
- "PySide2.QtGui.QTextInlineObject.descent": (),
- "PySide2.QtGui.QTextInlineObject.format": (),
- "PySide2.QtGui.QTextInlineObject.formatIndex": (),
- "PySide2.QtGui.QTextInlineObject.height": (),
- "PySide2.QtGui.QTextInlineObject.isValid": (),
- "PySide2.QtGui.QTextInlineObject.rect": (),
- "PySide2.QtGui.QTextInlineObject.setAscent": ('float',),
- "PySide2.QtGui.QTextInlineObject.setDescent": ('float',),
- "PySide2.QtGui.QTextInlineObject.setWidth": ('float',),
- "PySide2.QtGui.QTextInlineObject.textDirection": (),
- "PySide2.QtGui.QTextInlineObject.textPosition": (),
- "PySide2.QtGui.QTextInlineObject.width": (),
-# class PySide2.QtGui.QTextItem:
-# class PySide2.QtGui.QTextItem.RenderFlag:
-# class PySide2.QtGui.QTextItem.RenderFlags:
- "PySide2.QtGui.QTextItem.__init__": (),
- "PySide2.QtGui.QTextItem.ascent": (),
- "PySide2.QtGui.QTextItem.descent": (),
- "PySide2.QtGui.QTextItem.font": (),
- "PySide2.QtGui.QTextItem.renderFlags": (),
- "PySide2.QtGui.QTextItem.text": (),
- "PySide2.QtGui.QTextItem.width": (),
-# class PySide2.QtGui.QTextLayout:
-# class PySide2.QtGui.QTextLayout.CursorMode:
-# class PySide2.QtGui.QTextLayout.FormatRange:
- "PySide2.QtGui.QTextLayout.FormatRange.__init__": [(), ('PySide2.QtGui.QTextLayout.FormatRange',)],
- "PySide2.QtGui.QTextLayout.FormatRange.__copy__": (),
- "PySide2.QtGui.QTextLayout.__init__": [(), ('PySide2.QtGui.QTextBlock',), ('str',), ('str', 'PySide2.QtGui.QFont', 'PySide2.QtGui.QPaintDevice')],
- "PySide2.QtGui.QTextLayout.additionalFormats": (),
- "PySide2.QtGui.QTextLayout.beginLayout": (),
- "PySide2.QtGui.QTextLayout.boundingRect": (),
- "PySide2.QtGui.QTextLayout.cacheEnabled": (),
- "PySide2.QtGui.QTextLayout.clearAdditionalFormats": (),
- "PySide2.QtGui.QTextLayout.clearFormats": (),
- "PySide2.QtGui.QTextLayout.clearLayout": (),
- "PySide2.QtGui.QTextLayout.createLine": (),
- "PySide2.QtGui.QTextLayout.cursorMoveStyle": (),
- "PySide2.QtGui.QTextLayout.draw": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QPointF', 'typing.List[PySide2.QtGui.QTextLayout.FormatRange]', 'PySide2.QtCore.QRectF'),
- "PySide2.QtGui.QTextLayout.drawCursor": [('PySide2.QtGui.QPainter', 'PySide2.QtCore.QPointF', 'int'), ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QPointF', 'int', 'int')],
- "PySide2.QtGui.QTextLayout.endLayout": (),
- "PySide2.QtGui.QTextLayout.font": (),
- "PySide2.QtGui.QTextLayout.formats": (),
- "PySide2.QtGui.QTextLayout.isValidCursorPosition": ('int',),
- "PySide2.QtGui.QTextLayout.leftCursorPosition": ('int',),
- "PySide2.QtGui.QTextLayout.lineAt": ('int',),
- "PySide2.QtGui.QTextLayout.lineCount": (),
- "PySide2.QtGui.QTextLayout.lineForTextPosition": ('int',),
- "PySide2.QtGui.QTextLayout.maximumWidth": (),
- "PySide2.QtGui.QTextLayout.minimumWidth": (),
- "PySide2.QtGui.QTextLayout.nextCursorPosition": ('int', 'PySide2.QtGui.QTextLayout.CursorMode'),
- "PySide2.QtGui.QTextLayout.position": (),
- "PySide2.QtGui.QTextLayout.preeditAreaPosition": (),
- "PySide2.QtGui.QTextLayout.preeditAreaText": (),
- "PySide2.QtGui.QTextLayout.previousCursorPosition": ('int', 'PySide2.QtGui.QTextLayout.CursorMode'),
- "PySide2.QtGui.QTextLayout.rightCursorPosition": ('int',),
- "PySide2.QtGui.QTextLayout.setAdditionalFormats": ('typing.Sequence[PySide2.QtGui.QTextLayout.FormatRange]',),
- "PySide2.QtGui.QTextLayout.setCacheEnabled": ('bool',),
- "PySide2.QtGui.QTextLayout.setCursorMoveStyle": ('PySide2.QtCore.Qt.CursorMoveStyle',),
- "PySide2.QtGui.QTextLayout.setFlags": ('int',),
- "PySide2.QtGui.QTextLayout.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtGui.QTextLayout.setFormats": ('typing.List[PySide2.QtGui.QTextLayout.FormatRange]',),
- "PySide2.QtGui.QTextLayout.setPosition": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTextLayout.setPreeditArea": ('int', 'str'),
- "PySide2.QtGui.QTextLayout.setRawFont": ('PySide2.QtGui.QRawFont',),
- "PySide2.QtGui.QTextLayout.setText": ('str',),
- "PySide2.QtGui.QTextLayout.setTextOption": ('PySide2.QtGui.QTextOption',),
- "PySide2.QtGui.QTextLayout.text": (),
- "PySide2.QtGui.QTextLayout.textOption": (),
-# class PySide2.QtGui.QTextLength:
-# class PySide2.QtGui.QTextLength.Type:
- "PySide2.QtGui.QTextLength.__init__": [(), ('PySide2.QtGui.QTextLength',), ('PySide2.QtGui.QTextLength.Type', 'float')],
- "PySide2.QtGui.QTextLength.__copy__": (),
- "PySide2.QtGui.QTextLength.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QTextLength.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QTextLength.rawValue": (),
- "PySide2.QtGui.QTextLength.type": (),
- "PySide2.QtGui.QTextLength.value": ('float',),
-# class PySide2.QtGui.QTextLine:
-# class PySide2.QtGui.QTextLine.CursorPosition:
-# class PySide2.QtGui.QTextLine.Edge:
- "PySide2.QtGui.QTextLine.__init__": (),
- "PySide2.QtGui.QTextLine.__copy__": (),
- "PySide2.QtGui.QTextLine.ascent": (),
- "PySide2.QtGui.QTextLine.cursorToX": ('int', 'PySide2.QtGui.QTextLine.Edge'),
- "PySide2.QtGui.QTextLine.descent": (),
- "PySide2.QtGui.QTextLine.draw": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QPointF', 'PySide2.QtGui.QTextLayout.FormatRange'),
- "PySide2.QtGui.QTextLine.height": (),
- "PySide2.QtGui.QTextLine.horizontalAdvance": (),
- "PySide2.QtGui.QTextLine.isValid": (),
- "PySide2.QtGui.QTextLine.leading": (),
- "PySide2.QtGui.QTextLine.leadingIncluded": (),
- "PySide2.QtGui.QTextLine.lineNumber": (),
- "PySide2.QtGui.QTextLine.naturalTextRect": (),
- "PySide2.QtGui.QTextLine.naturalTextWidth": (),
- "PySide2.QtGui.QTextLine.position": (),
- "PySide2.QtGui.QTextLine.rect": (),
- "PySide2.QtGui.QTextLine.setLeadingIncluded": ('bool',),
- "PySide2.QtGui.QTextLine.setLineWidth": ('float',),
- "PySide2.QtGui.QTextLine.setNumColumns": [('int',), ('int', 'float')],
- "PySide2.QtGui.QTextLine.setPosition": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTextLine.textLength": (),
- "PySide2.QtGui.QTextLine.textStart": (),
- "PySide2.QtGui.QTextLine.width": (),
- "PySide2.QtGui.QTextLine.x": (),
- "PySide2.QtGui.QTextLine.xToCursor": ('float', 'PySide2.QtGui.QTextLine.CursorPosition'),
- "PySide2.QtGui.QTextLine.y": (),
-# class PySide2.QtGui.QTextList:
- "PySide2.QtGui.QTextList.__init__": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtGui.QTextList.add": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtGui.QTextList.count": (),
- "PySide2.QtGui.QTextList.format": (),
- "PySide2.QtGui.QTextList.item": ('int',),
- "PySide2.QtGui.QTextList.itemNumber": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtGui.QTextList.itemText": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtGui.QTextList.remove": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtGui.QTextList.removeItem": ('int',),
- "PySide2.QtGui.QTextList.setFormat": [('PySide2.QtGui.QTextFormat',), ('PySide2.QtGui.QTextListFormat',)],
-# class PySide2.QtGui.QTextListFormat:
-# class PySide2.QtGui.QTextListFormat.Style:
- "PySide2.QtGui.QTextListFormat.__init__": [(), ('PySide2.QtGui.QTextFormat',), ('PySide2.QtGui.QTextListFormat',)],
- "PySide2.QtGui.QTextListFormat.__copy__": (),
- "PySide2.QtGui.QTextListFormat.indent": (),
- "PySide2.QtGui.QTextListFormat.isValid": (),
- "PySide2.QtGui.QTextListFormat.numberPrefix": (),
- "PySide2.QtGui.QTextListFormat.numberSuffix": (),
- "PySide2.QtGui.QTextListFormat.setIndent": ('int',),
- "PySide2.QtGui.QTextListFormat.setNumberPrefix": ('str',),
- "PySide2.QtGui.QTextListFormat.setNumberSuffix": ('str',),
- "PySide2.QtGui.QTextListFormat.setStyle": ('PySide2.QtGui.QTextListFormat.Style',),
- "PySide2.QtGui.QTextListFormat.style": (),
-# class PySide2.QtGui.QTextObject:
- "PySide2.QtGui.QTextObject.__init__": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtGui.QTextObject.document": (),
- "PySide2.QtGui.QTextObject.format": (),
- "PySide2.QtGui.QTextObject.formatIndex": (),
- "PySide2.QtGui.QTextObject.objectIndex": (),
- "PySide2.QtGui.QTextObject.setFormat": ('PySide2.QtGui.QTextFormat',),
-# class PySide2.QtGui.QTextObjectInterface:
- "PySide2.QtGui.QTextObjectInterface.__init__": (),
- "PySide2.QtGui.QTextObjectInterface.drawObject": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF', 'PySide2.QtGui.QTextDocument', 'int', 'PySide2.QtGui.QTextFormat'),
- "PySide2.QtGui.QTextObjectInterface.intrinsicSize": ('PySide2.QtGui.QTextDocument', 'int', 'PySide2.QtGui.QTextFormat'),
-# class PySide2.QtGui.QTextOption:
-# class PySide2.QtGui.QTextOption.Flag:
-# class PySide2.QtGui.QTextOption.Flags:
-# class PySide2.QtGui.QTextOption.Tab:
- "PySide2.QtGui.QTextOption.Tab.__init__": [(), ('PySide2.QtGui.QTextOption.Tab',), ('float', 'PySide2.QtGui.QTextOption.TabType', 'str')],
- "PySide2.QtGui.QTextOption.Tab.__copy__": (),
-# class PySide2.QtGui.QTextOption.TabType:
-# class PySide2.QtGui.QTextOption.WrapMode:
- "PySide2.QtGui.QTextOption.__init__": [(), ('PySide2.QtCore.Qt.Alignment',), ('PySide2.QtGui.QTextOption',)],
- "PySide2.QtGui.QTextOption.__copy__": (),
- "PySide2.QtGui.QTextOption.alignment": (),
- "PySide2.QtGui.QTextOption.flags": (),
- "PySide2.QtGui.QTextOption.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtGui.QTextOption.setFlags": ('PySide2.QtGui.QTextOption.Flags',),
- "PySide2.QtGui.QTextOption.setTabArray": ('typing.Sequence[float]',),
- "PySide2.QtGui.QTextOption.setTabStop": ('float',),
- "PySide2.QtGui.QTextOption.setTabStopDistance": ('float',),
- "PySide2.QtGui.QTextOption.setTabs": ('typing.Sequence[PySide2.QtGui.QTextOption.Tab]',),
- "PySide2.QtGui.QTextOption.setTextDirection": ('PySide2.QtCore.Qt.LayoutDirection',),
- "PySide2.QtGui.QTextOption.setUseDesignMetrics": ('bool',),
- "PySide2.QtGui.QTextOption.setWrapMode": ('PySide2.QtGui.QTextOption.WrapMode',),
- "PySide2.QtGui.QTextOption.tabArray": (),
- "PySide2.QtGui.QTextOption.tabStop": (),
- "PySide2.QtGui.QTextOption.tabStopDistance": (),
- "PySide2.QtGui.QTextOption.tabs": (),
- "PySide2.QtGui.QTextOption.textDirection": (),
- "PySide2.QtGui.QTextOption.useDesignMetrics": (),
- "PySide2.QtGui.QTextOption.wrapMode": (),
-# class PySide2.QtGui.QTextTable:
- "PySide2.QtGui.QTextTable.__init__": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtGui.QTextTable.appendColumns": ('int',),
- "PySide2.QtGui.QTextTable.appendRows": ('int',),
- "PySide2.QtGui.QTextTable.cellAt": [('PySide2.QtGui.QTextCursor',), ('int',), ('int', 'int')],
- "PySide2.QtGui.QTextTable.columns": (),
- "PySide2.QtGui.QTextTable.format": (),
- "PySide2.QtGui.QTextTable.insertColumns": ('int', 'int'),
- "PySide2.QtGui.QTextTable.insertRows": ('int', 'int'),
- "PySide2.QtGui.QTextTable.mergeCells": [('PySide2.QtGui.QTextCursor',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QTextTable.removeColumns": ('int', 'int'),
- "PySide2.QtGui.QTextTable.removeRows": ('int', 'int'),
- "PySide2.QtGui.QTextTable.resize": ('int', 'int'),
- "PySide2.QtGui.QTextTable.rowEnd": ('PySide2.QtGui.QTextCursor',),
- "PySide2.QtGui.QTextTable.rowStart": ('PySide2.QtGui.QTextCursor',),
- "PySide2.QtGui.QTextTable.rows": (),
- "PySide2.QtGui.QTextTable.setFormat": [('PySide2.QtGui.QTextFormat',), ('PySide2.QtGui.QTextTableFormat',)],
- "PySide2.QtGui.QTextTable.splitCell": ('int', 'int', 'int', 'int'),
-# class PySide2.QtGui.QTextTableCell:
- "PySide2.QtGui.QTextTableCell.__init__": [(), ('PySide2.QtGui.QTextTableCell',)],
- "PySide2.QtGui.QTextTableCell.__copy__": (),
- "PySide2.QtGui.QTextTableCell.begin": (),
- "PySide2.QtGui.QTextTableCell.column": (),
- "PySide2.QtGui.QTextTableCell.columnSpan": (),
- "PySide2.QtGui.QTextTableCell.end": (),
- "PySide2.QtGui.QTextTableCell.firstCursorPosition": (),
- "PySide2.QtGui.QTextTableCell.firstPosition": (),
- "PySide2.QtGui.QTextTableCell.format": (),
- "PySide2.QtGui.QTextTableCell.isValid": (),
- "PySide2.QtGui.QTextTableCell.lastCursorPosition": (),
- "PySide2.QtGui.QTextTableCell.lastPosition": (),
- "PySide2.QtGui.QTextTableCell.row": (),
- "PySide2.QtGui.QTextTableCell.rowSpan": (),
- "PySide2.QtGui.QTextTableCell.setFormat": ('PySide2.QtGui.QTextCharFormat',),
- "PySide2.QtGui.QTextTableCell.tableCellFormatIndex": (),
-# class PySide2.QtGui.QTextTableCellFormat:
- "PySide2.QtGui.QTextTableCellFormat.__init__": [(), ('PySide2.QtGui.QTextFormat',), ('PySide2.QtGui.QTextTableCellFormat',)],
- "PySide2.QtGui.QTextTableCellFormat.__copy__": (),
- "PySide2.QtGui.QTextTableCellFormat.bottomBorder": (),
- "PySide2.QtGui.QTextTableCellFormat.bottomBorderBrush": (),
- "PySide2.QtGui.QTextTableCellFormat.bottomBorderStyle": (),
- "PySide2.QtGui.QTextTableCellFormat.bottomPadding": (),
- "PySide2.QtGui.QTextTableCellFormat.isValid": (),
- "PySide2.QtGui.QTextTableCellFormat.leftBorder": (),
- "PySide2.QtGui.QTextTableCellFormat.leftBorderBrush": (),
- "PySide2.QtGui.QTextTableCellFormat.leftBorderStyle": (),
- "PySide2.QtGui.QTextTableCellFormat.leftPadding": (),
- "PySide2.QtGui.QTextTableCellFormat.rightBorder": (),
- "PySide2.QtGui.QTextTableCellFormat.rightBorderBrush": (),
- "PySide2.QtGui.QTextTableCellFormat.rightBorderStyle": (),
- "PySide2.QtGui.QTextTableCellFormat.rightPadding": (),
- "PySide2.QtGui.QTextTableCellFormat.setBorder": ('float',),
- "PySide2.QtGui.QTextTableCellFormat.setBorderBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QTextTableCellFormat.setBorderStyle": ('PySide2.QtGui.QTextFrameFormat.BorderStyle',),
- "PySide2.QtGui.QTextTableCellFormat.setBottomBorder": ('float',),
- "PySide2.QtGui.QTextTableCellFormat.setBottomBorderBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QTextTableCellFormat.setBottomBorderStyle": ('PySide2.QtGui.QTextFrameFormat.BorderStyle',),
- "PySide2.QtGui.QTextTableCellFormat.setBottomPadding": ('float',),
- "PySide2.QtGui.QTextTableCellFormat.setLeftBorder": ('float',),
- "PySide2.QtGui.QTextTableCellFormat.setLeftBorderBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QTextTableCellFormat.setLeftBorderStyle": ('PySide2.QtGui.QTextFrameFormat.BorderStyle',),
- "PySide2.QtGui.QTextTableCellFormat.setLeftPadding": ('float',),
- "PySide2.QtGui.QTextTableCellFormat.setPadding": ('float',),
- "PySide2.QtGui.QTextTableCellFormat.setRightBorder": ('float',),
- "PySide2.QtGui.QTextTableCellFormat.setRightBorderBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QTextTableCellFormat.setRightBorderStyle": ('PySide2.QtGui.QTextFrameFormat.BorderStyle',),
- "PySide2.QtGui.QTextTableCellFormat.setRightPadding": ('float',),
- "PySide2.QtGui.QTextTableCellFormat.setTopBorder": ('float',),
- "PySide2.QtGui.QTextTableCellFormat.setTopBorderBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QTextTableCellFormat.setTopBorderStyle": ('PySide2.QtGui.QTextFrameFormat.BorderStyle',),
- "PySide2.QtGui.QTextTableCellFormat.setTopPadding": ('float',),
- "PySide2.QtGui.QTextTableCellFormat.topBorder": (),
- "PySide2.QtGui.QTextTableCellFormat.topBorderBrush": (),
- "PySide2.QtGui.QTextTableCellFormat.topBorderStyle": (),
- "PySide2.QtGui.QTextTableCellFormat.topPadding": (),
-# class PySide2.QtGui.QTextTableFormat:
- "PySide2.QtGui.QTextTableFormat.__init__": [(), ('PySide2.QtGui.QTextFormat',), ('PySide2.QtGui.QTextTableFormat',)],
- "PySide2.QtGui.QTextTableFormat.__copy__": (),
- "PySide2.QtGui.QTextTableFormat.alignment": (),
- "PySide2.QtGui.QTextTableFormat.borderCollapse": (),
- "PySide2.QtGui.QTextTableFormat.cellPadding": (),
- "PySide2.QtGui.QTextTableFormat.cellSpacing": (),
- "PySide2.QtGui.QTextTableFormat.clearColumnWidthConstraints": (),
- "PySide2.QtGui.QTextTableFormat.columnWidthConstraints": (),
- "PySide2.QtGui.QTextTableFormat.columns": (),
- "PySide2.QtGui.QTextTableFormat.headerRowCount": (),
- "PySide2.QtGui.QTextTableFormat.isValid": (),
- "PySide2.QtGui.QTextTableFormat.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtGui.QTextTableFormat.setBorderCollapse": ('bool',),
- "PySide2.QtGui.QTextTableFormat.setCellPadding": ('float',),
- "PySide2.QtGui.QTextTableFormat.setCellSpacing": ('float',),
- "PySide2.QtGui.QTextTableFormat.setColumnWidthConstraints": ('typing.List[PySide2.QtGui.QTextLength]',),
- "PySide2.QtGui.QTextTableFormat.setColumns": ('int',),
- "PySide2.QtGui.QTextTableFormat.setHeaderRowCount": ('int',),
-# class PySide2.QtGui.QToolBarChangeEvent:
- "PySide2.QtGui.QToolBarChangeEvent.__init__": ('bool',),
- "PySide2.QtGui.QToolBarChangeEvent.toggle": (),
-# class PySide2.QtGui.QTouchDevice:
-# class PySide2.QtGui.QTouchDevice.Capabilities:
-# class PySide2.QtGui.QTouchDevice.CapabilityFlag:
-# class PySide2.QtGui.QTouchDevice.DeviceType:
- "PySide2.QtGui.QTouchDevice.__init__": (),
- "PySide2.QtGui.QTouchDevice.capabilities": (),
- "PySide2.QtGui.QTouchDevice.devices": (),
- "PySide2.QtGui.QTouchDevice.maximumTouchPoints": (),
- "PySide2.QtGui.QTouchDevice.name": (),
- "PySide2.QtGui.QTouchDevice.setCapabilities": ('PySide2.QtGui.QTouchDevice.Capabilities',),
- "PySide2.QtGui.QTouchDevice.setMaximumTouchPoints": ('int',),
- "PySide2.QtGui.QTouchDevice.setName": ('str',),
- "PySide2.QtGui.QTouchDevice.setType": ('PySide2.QtGui.QTouchDevice.DeviceType',),
- "PySide2.QtGui.QTouchDevice.type": (),
-# class PySide2.QtGui.QTouchEvent:
-# class PySide2.QtGui.QTouchEvent.TouchPoint:
-# class PySide2.QtGui.QTouchEvent.TouchPoint.InfoFlag:
-# class PySide2.QtGui.QTouchEvent.TouchPoint.InfoFlags:
- "PySide2.QtGui.QTouchEvent.TouchPoint.__init__": [('PySide2.QtGui.QTouchEvent.TouchPoint',), ('int',)],
- "PySide2.QtGui.QTouchEvent.TouchPoint.__copy__": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.ellipseDiameters": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.flags": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.id": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.lastNormalizedPos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.lastPos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.lastScenePos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.lastScreenPos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.normalizedPos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.pos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.pressure": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.rawScreenPositions": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.rect": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.rotation": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.scenePos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.sceneRect": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.screenPos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.screenRect": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setEllipseDiameters": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setFlags": ('PySide2.QtGui.QTouchEvent.TouchPoint.InfoFlags',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setId": ('int',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setLastNormalizedPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setLastPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setLastScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setLastScreenPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setNormalizedPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setPressure": ('float',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setRawScreenPositions": ('typing.List[PySide2.QtCore.QPointF]',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setRect": ('PySide2.QtCore.QRectF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setRotation": ('float',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setSceneRect": ('PySide2.QtCore.QRectF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setScreenPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setScreenRect": ('PySide2.QtCore.QRectF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setStartNormalizedPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setStartPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setStartScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setStartScreenPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setState": ('PySide2.QtCore.Qt.TouchPointStates',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setUniqueId": ('int',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setVelocity": ('PySide2.QtGui.QVector2D',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.startNormalizedPos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.startPos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.startScenePos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.startScreenPos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.state": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.swap": ('PySide2.QtGui.QTouchEvent.TouchPoint',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.uniqueId": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.velocity": (),
- "PySide2.QtGui.QTouchEvent.__init__": ('PySide2.QtCore.QEvent.Type', 'PySide2.QtGui.QTouchDevice', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.Qt.TouchPointStates', 'typing.Sequence[PySide2.QtGui.QTouchEvent.TouchPoint]'),
- "PySide2.QtGui.QTouchEvent.device": (),
- "PySide2.QtGui.QTouchEvent.setDevice": ('PySide2.QtGui.QTouchDevice',),
- "PySide2.QtGui.QTouchEvent.setTarget": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QTouchEvent.setTouchPointStates": ('PySide2.QtCore.Qt.TouchPointStates',),
- "PySide2.QtGui.QTouchEvent.setTouchPoints": ('typing.Sequence[PySide2.QtGui.QTouchEvent.TouchPoint]',),
- "PySide2.QtGui.QTouchEvent.setWindow": ('PySide2.QtGui.QWindow',),
- "PySide2.QtGui.QTouchEvent.target": (),
- "PySide2.QtGui.QTouchEvent.touchPointStates": (),
- "PySide2.QtGui.QTouchEvent.touchPoints": (),
- "PySide2.QtGui.QTouchEvent.window": (),
-# class PySide2.QtGui.QTransform:
-# class PySide2.QtGui.QTransform.TransformationType:
- "PySide2.QtGui.QTransform.__init__": [(), ('PySide2.QtGui.QMatrix',), ('PySide2.QtGui.QTransform',), ('float', 'float', 'float', 'float', 'float', 'float'), ('float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float')],
- "PySide2.QtGui.QTransform.__add__": ('float',),
- "PySide2.QtGui.QTransform.__copy__": (),
- "PySide2.QtGui.QTransform.__iadd__": ('float',),
- "PySide2.QtGui.QTransform.__imul__": [('PySide2.QtGui.QTransform',), ('float',)],
- "PySide2.QtGui.QTransform.__isub__": ('float',),
- "PySide2.QtGui.QTransform.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QTransform.__mul__": [('PySide2.QtCore.QLine',), ('PySide2.QtCore.QLineF',), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtGui.QTransform',), ('float',)],
- "PySide2.QtGui.QTransform.__reduce__": (),
- "PySide2.QtGui.QTransform.__repr__": (),
- "PySide2.QtGui.QTransform.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QTransform.__sub__": ('float',),
- "PySide2.QtGui.QTransform.adjoint": (),
- "PySide2.QtGui.QTransform.det": (),
- "PySide2.QtGui.QTransform.determinant": (),
- "PySide2.QtGui.QTransform.dx": (),
- "PySide2.QtGui.QTransform.dy": (),
- "PySide2.QtGui.QTransform.fromScale": ('float', 'float'),
- "PySide2.QtGui.QTransform.fromTranslate": ('float', 'float'),
- "PySide2.QtGui.QTransform.inverted": (),
- "PySide2.QtGui.QTransform.isAffine": (),
- "PySide2.QtGui.QTransform.isIdentity": (),
- "PySide2.QtGui.QTransform.isInvertible": (),
- "PySide2.QtGui.QTransform.isRotating": (),
- "PySide2.QtGui.QTransform.isScaling": (),
- "PySide2.QtGui.QTransform.isTranslating": (),
- "PySide2.QtGui.QTransform.m11": (),
- "PySide2.QtGui.QTransform.m12": (),
- "PySide2.QtGui.QTransform.m13": (),
- "PySide2.QtGui.QTransform.m21": (),
- "PySide2.QtGui.QTransform.m22": (),
- "PySide2.QtGui.QTransform.m23": (),
- "PySide2.QtGui.QTransform.m31": (),
- "PySide2.QtGui.QTransform.m32": (),
- "PySide2.QtGui.QTransform.m33": (),
- "PySide2.QtGui.QTransform.map": [('PySide2.QtCore.QLine',), ('PySide2.QtCore.QLineF',), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtGui.QPainterPath',), ('PySide2.QtGui.QPolygon',), ('PySide2.QtGui.QPolygonF',), ('PySide2.QtGui.QRegion',), ('float', 'float')],
- "PySide2.QtGui.QTransform.mapRect": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',)],
- "PySide2.QtGui.QTransform.mapToPolygon": ('PySide2.QtCore.QRect',),
- "PySide2.QtGui.QTransform.quadToQuad": [('PySide2.QtGui.QPolygonF', 'PySide2.QtGui.QPolygonF'), ('PySide2.QtGui.QPolygonF', 'PySide2.QtGui.QPolygonF', 'PySide2.QtGui.QTransform')],
- "PySide2.QtGui.QTransform.quadToSquare": [('PySide2.QtGui.QPolygonF',), ('PySide2.QtGui.QPolygonF', 'PySide2.QtGui.QTransform')],
- "PySide2.QtGui.QTransform.reset": (),
- "PySide2.QtGui.QTransform.rotate": ('float', 'PySide2.QtCore.Qt.Axis'),
- "PySide2.QtGui.QTransform.rotateRadians": ('float', 'PySide2.QtCore.Qt.Axis'),
- "PySide2.QtGui.QTransform.scale": ('float', 'float'),
- "PySide2.QtGui.QTransform.setMatrix": ('float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtGui.QTransform.shear": ('float', 'float'),
- "PySide2.QtGui.QTransform.squareToQuad": [('PySide2.QtGui.QPolygonF',), ('PySide2.QtGui.QPolygonF', 'PySide2.QtGui.QTransform')],
- "PySide2.QtGui.QTransform.toAffine": (),
- "PySide2.QtGui.QTransform.translate": ('float', 'float'),
- "PySide2.QtGui.QTransform.transposed": (),
- "PySide2.QtGui.QTransform.type": (),
-# class PySide2.QtGui.QValidator:
-# class PySide2.QtGui.QValidator.State:
- "PySide2.QtGui.QValidator.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QValidator.fixup": ('str',),
- "PySide2.QtGui.QValidator.locale": (),
- "PySide2.QtGui.QValidator.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtGui.QValidator.validate": ('str', 'int'),
-# class PySide2.QtGui.QVector2D:
- "PySide2.QtGui.QVector2D.__init__": [(), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtGui.QVector3D',), ('PySide2.QtGui.QVector4D',), ('float', 'float')],
- "PySide2.QtGui.QVector2D.__add__": ('PySide2.QtGui.QVector2D',),
- "PySide2.QtGui.QVector2D.__copy__": (),
- "PySide2.QtGui.QVector2D.__iadd__": ('PySide2.QtGui.QVector2D',),
- "PySide2.QtGui.QVector2D.__imul__": [('PySide2.QtGui.QVector2D',), ('float',)],
- "PySide2.QtGui.QVector2D.__isub__": ('PySide2.QtGui.QVector2D',),
- "PySide2.QtGui.QVector2D.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QVector2D.__mul__": [('PySide2.QtGui.QVector2D',), ('float',)],
- "PySide2.QtGui.QVector2D.__neg__": (),
- "PySide2.QtGui.QVector2D.__reduce__": (),
- "PySide2.QtGui.QVector2D.__repr__": (),
- "PySide2.QtGui.QVector2D.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QVector2D.__sub__": ('PySide2.QtGui.QVector2D',),
- "PySide2.QtGui.QVector2D.distanceToLine": ('PySide2.QtGui.QVector2D', 'PySide2.QtGui.QVector2D'),
- "PySide2.QtGui.QVector2D.distanceToPoint": ('PySide2.QtGui.QVector2D',),
- "PySide2.QtGui.QVector2D.dotProduct": ('PySide2.QtGui.QVector2D', 'PySide2.QtGui.QVector2D'),
- "PySide2.QtGui.QVector2D.isNull": (),
- "PySide2.QtGui.QVector2D.length": (),
- "PySide2.QtGui.QVector2D.lengthSquared": (),
- "PySide2.QtGui.QVector2D.normalize": (),
- "PySide2.QtGui.QVector2D.normalized": (),
- "PySide2.QtGui.QVector2D.setX": ('float',),
- "PySide2.QtGui.QVector2D.setY": ('float',),
- "PySide2.QtGui.QVector2D.toPoint": (),
- "PySide2.QtGui.QVector2D.toPointF": (),
- "PySide2.QtGui.QVector2D.toTuple": (),
- "PySide2.QtGui.QVector2D.toVector3D": (),
- "PySide2.QtGui.QVector2D.toVector4D": (),
- "PySide2.QtGui.QVector2D.x": (),
- "PySide2.QtGui.QVector2D.y": (),
-# class PySide2.QtGui.QVector3D:
- "PySide2.QtGui.QVector3D.__init__": [(), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtGui.QVector2D',), ('PySide2.QtGui.QVector2D', 'float'), ('PySide2.QtGui.QVector4D',), ('float', 'float', 'float')],
- "PySide2.QtGui.QVector3D.__add__": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtGui.QVector3D.__copy__": (),
- "PySide2.QtGui.QVector3D.__iadd__": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtGui.QVector3D.__imul__": [('PySide2.QtGui.QVector3D',), ('float',)],
- "PySide2.QtGui.QVector3D.__isub__": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtGui.QVector3D.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QVector3D.__mul__": [('PySide2.QtGui.QMatrix4x4',), ('PySide2.QtGui.QQuaternion',), ('PySide2.QtGui.QVector3D',), ('float',)],
- "PySide2.QtGui.QVector3D.__neg__": (),
- "PySide2.QtGui.QVector3D.__reduce__": (),
- "PySide2.QtGui.QVector3D.__repr__": (),
- "PySide2.QtGui.QVector3D.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QVector3D.__sub__": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtGui.QVector3D.crossProduct": ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'),
- "PySide2.QtGui.QVector3D.distanceToLine": ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'),
- "PySide2.QtGui.QVector3D.distanceToPlane": [('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'), ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D')],
- "PySide2.QtGui.QVector3D.distanceToPoint": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtGui.QVector3D.dotProduct": ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'),
- "PySide2.QtGui.QVector3D.isNull": (),
- "PySide2.QtGui.QVector3D.length": (),
- "PySide2.QtGui.QVector3D.lengthSquared": (),
- "PySide2.QtGui.QVector3D.normal": [('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'), ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D')],
- "PySide2.QtGui.QVector3D.normalize": (),
- "PySide2.QtGui.QVector3D.normalized": (),
- "PySide2.QtGui.QVector3D.project": ('PySide2.QtGui.QMatrix4x4', 'PySide2.QtGui.QMatrix4x4', 'PySide2.QtCore.QRect'),
- "PySide2.QtGui.QVector3D.setX": ('float',),
- "PySide2.QtGui.QVector3D.setY": ('float',),
- "PySide2.QtGui.QVector3D.setZ": ('float',),
- "PySide2.QtGui.QVector3D.toPoint": (),
- "PySide2.QtGui.QVector3D.toPointF": (),
- "PySide2.QtGui.QVector3D.toTuple": (),
- "PySide2.QtGui.QVector3D.toVector2D": (),
- "PySide2.QtGui.QVector3D.toVector4D": (),
- "PySide2.QtGui.QVector3D.unproject": ('PySide2.QtGui.QMatrix4x4', 'PySide2.QtGui.QMatrix4x4', 'PySide2.QtCore.QRect'),
- "PySide2.QtGui.QVector3D.x": (),
- "PySide2.QtGui.QVector3D.y": (),
- "PySide2.QtGui.QVector3D.z": (),
-# class PySide2.QtGui.QVector4D:
- "PySide2.QtGui.QVector4D.__init__": [(), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtGui.QVector2D',), ('PySide2.QtGui.QVector2D', 'float', 'float'), ('PySide2.QtGui.QVector3D',), ('PySide2.QtGui.QVector3D', 'float'), ('float', 'float', 'float', 'float')],
- "PySide2.QtGui.QVector4D.__add__": ('PySide2.QtGui.QVector4D',),
- "PySide2.QtGui.QVector4D.__copy__": (),
- "PySide2.QtGui.QVector4D.__iadd__": ('PySide2.QtGui.QVector4D',),
- "PySide2.QtGui.QVector4D.__imul__": [('PySide2.QtGui.QVector4D',), ('float',)],
- "PySide2.QtGui.QVector4D.__isub__": ('PySide2.QtGui.QVector4D',),
- "PySide2.QtGui.QVector4D.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QVector4D.__mul__": [('PySide2.QtGui.QMatrix4x4',), ('PySide2.QtGui.QVector4D',), ('float',)],
- "PySide2.QtGui.QVector4D.__neg__": (),
- "PySide2.QtGui.QVector4D.__reduce__": (),
- "PySide2.QtGui.QVector4D.__repr__": (),
- "PySide2.QtGui.QVector4D.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QVector4D.__sub__": ('PySide2.QtGui.QVector4D',),
- "PySide2.QtGui.QVector4D.dotProduct": ('PySide2.QtGui.QVector4D', 'PySide2.QtGui.QVector4D'),
- "PySide2.QtGui.QVector4D.isNull": (),
- "PySide2.QtGui.QVector4D.length": (),
- "PySide2.QtGui.QVector4D.lengthSquared": (),
- "PySide2.QtGui.QVector4D.normalize": (),
- "PySide2.QtGui.QVector4D.normalized": (),
- "PySide2.QtGui.QVector4D.setW": ('float',),
- "PySide2.QtGui.QVector4D.setX": ('float',),
- "PySide2.QtGui.QVector4D.setY": ('float',),
- "PySide2.QtGui.QVector4D.setZ": ('float',),
- "PySide2.QtGui.QVector4D.toPoint": (),
- "PySide2.QtGui.QVector4D.toPointF": (),
- "PySide2.QtGui.QVector4D.toTuple": (),
- "PySide2.QtGui.QVector4D.toVector2D": (),
- "PySide2.QtGui.QVector4D.toVector2DAffine": (),
- "PySide2.QtGui.QVector4D.toVector3D": (),
- "PySide2.QtGui.QVector4D.toVector3DAffine": (),
- "PySide2.QtGui.QVector4D.w": (),
- "PySide2.QtGui.QVector4D.x": (),
- "PySide2.QtGui.QVector4D.y": (),
- "PySide2.QtGui.QVector4D.z": (),
-# class PySide2.QtGui.QWhatsThisClickedEvent:
- "PySide2.QtGui.QWhatsThisClickedEvent.__init__": ('str',),
- "PySide2.QtGui.QWhatsThisClickedEvent.href": (),
-# class PySide2.QtGui.QWheelEvent:
- "PySide2.QtGui.QWheelEvent.__init__": [('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.Qt.ScrollPhase', 'bool', 'PySide2.QtCore.Qt.MouseEventSource'), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint', 'int', 'PySide2.QtCore.Qt.Orientation', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers'), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint', 'int', 'PySide2.QtCore.Qt.Orientation', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.Qt.ScrollPhase'), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint', 'int', 'PySide2.QtCore.Qt.Orientation', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.Qt.ScrollPhase', 'PySide2.QtCore.Qt.MouseEventSource'), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint', 'int', 'PySide2.QtCore.Qt.Orientation', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.Qt.ScrollPhase', 'PySide2.QtCore.Qt.MouseEventSource', 'bool'), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'int', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.Qt.Orientation'), ('PySide2.QtCore.QPointF', 'int', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.Qt.Orientation')],
- "PySide2.QtGui.QWheelEvent.angleDelta": (),
- "PySide2.QtGui.QWheelEvent.buttons": (),
- "PySide2.QtGui.QWheelEvent.delta": (),
- "PySide2.QtGui.QWheelEvent.globalPos": (),
- "PySide2.QtGui.QWheelEvent.globalPosF": (),
- "PySide2.QtGui.QWheelEvent.globalPosition": (),
- "PySide2.QtGui.QWheelEvent.globalX": (),
- "PySide2.QtGui.QWheelEvent.global""Y": (),
- "PySide2.QtGui.QWheelEvent.inverted": (),
- "PySide2.QtGui.QWheelEvent.orientation": (),
- "PySide2.QtGui.QWheelEvent.phase": (),
- "PySide2.QtGui.QWheelEvent.pixelDelta": (),
- "PySide2.QtGui.QWheelEvent.pos": (),
- "PySide2.QtGui.QWheelEvent.posF": (),
- "PySide2.QtGui.QWheelEvent.position": (),
- "PySide2.QtGui.QWheelEvent.source": (),
- "PySide2.QtGui.QWheelEvent.x": (),
- "PySide2.QtGui.QWheelEvent.y": (),
-# class PySide2.QtGui.QWindow:
-# class PySide2.QtGui.QWindow.AncestorMode:
-# class PySide2.QtGui.QWindow.Visibility:
- "PySide2.QtGui.QWindow.__init__": [('PySide2.QtGui.QScreen',), ('PySide2.QtGui.QWindow',)],
- "PySide2.QtGui.QWindow.accessibleRoot": (),
- "PySide2.QtGui.QWindow.alert": ('int',),
- "PySide2.QtGui.QWindow.baseSize": (),
- "PySide2.QtGui.QWindow.close": (),
- "PySide2.QtGui.QWindow.contentOrientation": (),
- "PySide2.QtGui.QWindow.create": (),
- "PySide2.QtGui.QWindow.cursor": (),
- "PySide2.QtGui.QWindow.destroy": (),
- "PySide2.QtGui.QWindow.devicePixelRatio": (),
- "PySide2.QtGui.QWindow.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtGui.QWindow.exposeEvent": ('PySide2.QtGui.QExposeEvent',),
- "PySide2.QtGui.QWindow.filePath": (),
- "PySide2.QtGui.QWindow.flags": (),
- "PySide2.QtGui.QWindow.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtGui.QWindow.focusObject": (),
- "PySide2.QtGui.QWindow.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtGui.QWindow.format": (),
- "PySide2.QtGui.QWindow.frameGeometry": (),
- "PySide2.QtGui.QWindow.frameMargins": (),
- "PySide2.QtGui.QWindow.framePosition": (),
- "PySide2.QtGui.QWindow.fromWinId": ('int',),
- "PySide2.QtGui.QWindow.geometry": (),
- "PySide2.QtGui.QWindow.height": (),
- "PySide2.QtGui.QWindow.hide": (),
- "PySide2.QtGui.QWindow.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtGui.QWindow.icon": (),
- "PySide2.QtGui.QWindow.isActive": (),
- "PySide2.QtGui.QWindow.isAncestorOf": ('PySide2.QtGui.QWindow', 'PySide2.QtGui.QWindow.AncestorMode'),
- "PySide2.QtGui.QWindow.isExposed": (),
- "PySide2.QtGui.QWindow.isModal": (),
- "PySide2.QtGui.QWindow.isTopLevel": (),
- "PySide2.QtGui.QWindow.isVisible": (),
- "PySide2.QtGui.QWindow.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtGui.QWindow.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtGui.QWindow.lower": (),
- "PySide2.QtGui.QWindow.mapFromGlobal": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QWindow.mapToGlobal": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QWindow.mask": (),
- "PySide2.QtGui.QWindow.maximumHeight": (),
- "PySide2.QtGui.QWindow.maximumSize": (),
- "PySide2.QtGui.QWindow.maximumWidth": (),
- "PySide2.QtGui.QWindow.minimumHeight": (),
- "PySide2.QtGui.QWindow.minimumSize": (),
- "PySide2.QtGui.QWindow.minimumWidth": (),
- "PySide2.QtGui.QWindow.modality": (),
- "PySide2.QtGui.QWindow.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtGui.QWindow.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtGui.QWindow.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtGui.QWindow.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtGui.QWindow.moveEvent": ('PySide2.QtGui.QMoveEvent',),
- "PySide2.QtGui.QWindow.nativeEvent": ('PySide2.QtCore.QByteArray', 'int'),
- "PySide2.QtGui.QWindow.opacity": (),
- "PySide2.QtGui.QWindow.parent": [(), ('PySide2.QtGui.QWindow.AncestorMode',)],
- "PySide2.QtGui.QWindow.position": (),
- "PySide2.QtGui.QWindow.raise_": (),
- "PySide2.QtGui.QWindow.reportContentOrientationChange": ('PySide2.QtCore.Qt.ScreenOrientation',),
- "PySide2.QtGui.QWindow.requestActivate": (),
- "PySide2.QtGui.QWindow.requestUpdate": (),
- "PySide2.QtGui.QWindow.requestedFormat": (),
- "PySide2.QtGui.QWindow.resize": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtGui.QWindow.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtGui.QWindow.screen": (),
- "PySide2.QtGui.QWindow.setBaseSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtGui.QWindow.setCursor": ('PySide2.QtGui.QCursor',),
- "PySide2.QtGui.QWindow.setFilePath": ('str',),
- "PySide2.QtGui.QWindow.setFlag": ('PySide2.QtCore.Qt.WindowType', 'bool'),
- "PySide2.QtGui.QWindow.setFlags": ('PySide2.QtCore.Qt.WindowFlags',),
- "PySide2.QtGui.QWindow.setFormat": ('PySide2.QtGui.QSurfaceFormat',),
- "PySide2.QtGui.QWindow.setFramePosition": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QWindow.setGeometry": [('PySide2.QtCore.QRect',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QWindow.setHeight": ('int',),
- "PySide2.QtGui.QWindow.setIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtGui.QWindow.setKeyboardGrabEnabled": ('bool',),
- "PySide2.QtGui.QWindow.setMask": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QWindow.setMaximumHeight": ('int',),
- "PySide2.QtGui.QWindow.setMaximumSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtGui.QWindow.setMaximumWidth": ('int',),
- "PySide2.QtGui.QWindow.setMinimumHeight": ('int',),
- "PySide2.QtGui.QWindow.setMinimumSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtGui.QWindow.setMinimumWidth": ('int',),
- "PySide2.QtGui.QWindow.setModality": ('PySide2.QtCore.Qt.WindowModality',),
- "PySide2.QtGui.QWindow.setMouseGrabEnabled": ('bool',),
- "PySide2.QtGui.QWindow.setOpacity": ('float',),
- "PySide2.QtGui.QWindow.setParent": ('PySide2.QtGui.QWindow',),
- "PySide2.QtGui.QWindow.setPosition": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtGui.QWindow.setScreen": ('PySide2.QtGui.QScreen',),
- "PySide2.QtGui.QWindow.setSizeIncrement": ('PySide2.QtCore.QSize',),
- "PySide2.QtGui.QWindow.setSurfaceType": ('PySide2.QtGui.QSurface.SurfaceType',),
- "PySide2.QtGui.QWindow.setTitle": ('str',),
- "PySide2.QtGui.QWindow.setTransientParent": ('PySide2.QtGui.QWindow',),
- "PySide2.QtGui.QWindow.setVisibility": ('PySide2.QtGui.QWindow.Visibility',),
- "PySide2.QtGui.QWindow.setVisible": ('bool',),
- "PySide2.QtGui.QWindow.setWidth": ('int',),
- "PySide2.QtGui.QWindow.setWindowState": ('PySide2.QtCore.Qt.WindowState',),
- "PySide2.QtGui.QWindow.setWindowStates": ('PySide2.QtCore.Qt.WindowStates',),
- "PySide2.QtGui.QWindow.setX": ('int',),
- "PySide2.QtGui.QWindow.setY": ('int',),
- "PySide2.QtGui.QWindow.show": (),
- "PySide2.QtGui.QWindow.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtGui.QWindow.showFullScreen": (),
- "PySide2.QtGui.QWindow.showMaximized": (),
- "PySide2.QtGui.QWindow.showMinimized": (),
- "PySide2.QtGui.QWindow.showNormal": (),
- "PySide2.QtGui.QWindow.size": (),
- "PySide2.QtGui.QWindow.sizeIncrement": (),
- "PySide2.QtGui.QWindow.surfaceHandle": (),
- "PySide2.QtGui.QWindow.surfaceType": (),
- "PySide2.QtGui.QWindow.tabletEvent": ('PySide2.QtGui.QTabletEvent',),
- "PySide2.QtGui.QWindow.title": (),
- "PySide2.QtGui.QWindow.touchEvent": ('PySide2.QtGui.QTouchEvent',),
- "PySide2.QtGui.QWindow.transientParent": (),
- "PySide2.QtGui.QWindow.type": (),
- "PySide2.QtGui.QWindow.unsetCursor": (),
- "PySide2.QtGui.QWindow.visibility": (),
- "PySide2.QtGui.QWindow.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
- "PySide2.QtGui.QWindow.width": (),
- "PySide2.QtGui.QWindow.winId": (),
- "PySide2.QtGui.QWindow.windowState": (),
- "PySide2.QtGui.QWindow.windowStates": (),
- "PySide2.QtGui.QWindow.x": (),
- "PySide2.QtGui.QWindow.y": (),
-# class PySide2.QtGui.QWindowStateChangeEvent:
- "PySide2.QtGui.QWindowStateChangeEvent.__init__": ('PySide2.QtCore.Qt.WindowStates', 'bool'),
- "PySide2.QtGui.QWindowStateChangeEvent.isOverride": (),
- "PySide2.QtGui.QWindowStateChangeEvent.oldState": (),
-# class PySide2.QtGui.Qt:
- "PySide2.QtGui.Qt.codecForHtml": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.Qt.convertFromPlainText": ('str', 'PySide2.QtCore.Qt.WhiteSpaceMode'),
- "PySide2.QtGui.Qt.mightBeRichText": ('str',),
- "PySide2.QtGui.Qt.qAlpha": ('int',),
- "PySide2.QtGui.Qt.qBlue": ('int',),
- "PySide2.QtGui.Qt.qGray": [('int',), ('int', 'int', 'int')],
- "PySide2.QtGui.Qt.qGreen": ('int',),
- "PySide2.QtGui.Qt.qIsGray": ('int',),
- "PySide2.QtGui.Qt.qRed": ('int',),
- "PySide2.QtGui.Qt.qRgb": ('int', 'int', 'int'),
- "PySide2.QtGui.Qt.qRgba": ('int', 'int', 'int', 'int'),
- }) if "PySide2.QtGui" in sys.modules else None
-# Module PySide2.QtWidgets
-sig_dict.update({
-# class PySide2.QtWidgets.QAbstractButton:
- "PySide2.QtWidgets.QAbstractButton.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QAbstractButton.animateClick": ('int',),
- "PySide2.QtWidgets.QAbstractButton.autoExclusive": (),
- "PySide2.QtWidgets.QAbstractButton.autoRepeat": (),
- "PySide2.QtWidgets.QAbstractButton.autoRepeatDelay": (),
- "PySide2.QtWidgets.QAbstractButton.autoRepeatInterval": (),
- "PySide2.QtWidgets.QAbstractButton.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAbstractButton.checkStateSet": (),
- "PySide2.QtWidgets.QAbstractButton.click": (),
- "PySide2.QtWidgets.QAbstractButton.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAbstractButton.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QAbstractButton.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QAbstractButton.group": (),
- "PySide2.QtWidgets.QAbstractButton.hitButton": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QAbstractButton.icon": (),
- "PySide2.QtWidgets.QAbstractButton.iconSize": (),
- "PySide2.QtWidgets.QAbstractButton.isCheckable": (),
- "PySide2.QtWidgets.QAbstractButton.isChecked": (),
- "PySide2.QtWidgets.QAbstractButton.isDown": (),
- "PySide2.QtWidgets.QAbstractButton.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QAbstractButton.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QAbstractButton.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractButton.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractButton.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractButton.nextCheckState": (),
- "PySide2.QtWidgets.QAbstractButton.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QAbstractButton.setAutoExclusive": ('bool',),
- "PySide2.QtWidgets.QAbstractButton.setAutoRepeat": ('bool',),
- "PySide2.QtWidgets.QAbstractButton.setAutoRepeatDelay": ('int',),
- "PySide2.QtWidgets.QAbstractButton.setAutoRepeatInterval": ('int',),
- "PySide2.QtWidgets.QAbstractButton.setCheckable": ('bool',),
- "PySide2.QtWidgets.QAbstractButton.setChecked": ('bool',),
- "PySide2.QtWidgets.QAbstractButton.setDown": ('bool',),
- "PySide2.QtWidgets.QAbstractButton.setIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtWidgets.QAbstractButton.setIconSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QAbstractButton.setShortcut": ('PySide2.QtGui.QKeySequence',),
- "PySide2.QtWidgets.QAbstractButton.setText": ('str',),
- "PySide2.QtWidgets.QAbstractButton.shortcut": (),
- "PySide2.QtWidgets.QAbstractButton.text": (),
- "PySide2.QtWidgets.QAbstractButton.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QAbstractButton.toggle": (),
-# class PySide2.QtWidgets.QAbstractGraphicsShapeItem:
- "PySide2.QtWidgets.QAbstractGraphicsShapeItem.__init__": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QAbstractGraphicsShapeItem.brush": (),
- "PySide2.QtWidgets.QAbstractGraphicsShapeItem.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QAbstractGraphicsShapeItem.opaqueArea": (),
- "PySide2.QtWidgets.QAbstractGraphicsShapeItem.pen": (),
- "PySide2.QtWidgets.QAbstractGraphicsShapeItem.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtWidgets.QAbstractGraphicsShapeItem.setPen": ('PySide2.QtGui.QPen',),
-# class PySide2.QtWidgets.QAbstractItemDelegate:
-# class PySide2.QtWidgets.QAbstractItemDelegate.EndEditHint:
- "PySide2.QtWidgets.QAbstractItemDelegate.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QAbstractItemDelegate.createEditor": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QAbstractItemDelegate.destroyEditor": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QAbstractItemDelegate.editorEvent": ('PySide2.QtCore.QEvent', 'PySide2.QtCore.QAbstractItemModel', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QAbstractItemDelegate.elidedText": ('PySide2.QtGui.QFontMetrics', 'int', 'PySide2.QtCore.Qt.TextElideMode', 'str'),
- "PySide2.QtWidgets.QAbstractItemDelegate.helpEvent": ('PySide2.QtGui.QHelpEvent', 'PySide2.QtWidgets.QAbstractItemView', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QAbstractItemDelegate.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QAbstractItemDelegate.paintingRoles": (),
- "PySide2.QtWidgets.QAbstractItemDelegate.setEditorData": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QAbstractItemDelegate.setModelData": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QAbstractItemModel', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QAbstractItemDelegate.sizeHint": ('PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QAbstractItemDelegate.updateEditorGeometry": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
-# class PySide2.QtWidgets.QAbstractItemView:
-# class PySide2.QtWidgets.QAbstractItemView.CursorAction:
-# class PySide2.QtWidgets.QAbstractItemView.DragDropMode:
-# class PySide2.QtWidgets.QAbstractItemView.DropIndicatorPosition:
-# class PySide2.QtWidgets.QAbstractItemView.EditTrigger:
-# class PySide2.QtWidgets.QAbstractItemView.EditTriggers:
-# class PySide2.QtWidgets.QAbstractItemView.ScrollHint:
-# class PySide2.QtWidgets.QAbstractItemView.ScrollMode:
-# class PySide2.QtWidgets.QAbstractItemView.SelectionBehavior:
-# class PySide2.QtWidgets.QAbstractItemView.SelectionMode:
-# class PySide2.QtWidgets.QAbstractItemView.State:
- "PySide2.QtWidgets.QAbstractItemView.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QAbstractItemView.alternatingRowColors": (),
- "PySide2.QtWidgets.QAbstractItemView.autoScrollMargin": (),
- "PySide2.QtWidgets.QAbstractItemView.clearSelection": (),
- "PySide2.QtWidgets.QAbstractItemView.closeEditor": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QAbstractItemDelegate.EndEditHint'),
- "PySide2.QtWidgets.QAbstractItemView.closePersistentEditor": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QAbstractItemView.commitData": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QAbstractItemView.currentChanged": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QAbstractItemView.currentIndex": (),
- "PySide2.QtWidgets.QAbstractItemView.dataChanged": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex', 'typing.List[int]'),
- "PySide2.QtWidgets.QAbstractItemView.defaultDropAction": (),
- "PySide2.QtWidgets.QAbstractItemView.dirtyRegionOffset": (),
- "PySide2.QtWidgets.QAbstractItemView.doAutoScroll": (),
- "PySide2.QtWidgets.QAbstractItemView.doItemsLayout": (),
- "PySide2.QtWidgets.QAbstractItemView.dragDropMode": (),
- "PySide2.QtWidgets.QAbstractItemView.dragDropOverwriteMode": (),
- "PySide2.QtWidgets.QAbstractItemView.dragEnabled": (),
- "PySide2.QtWidgets.QAbstractItemView.dragEnterEvent": ('PySide2.QtGui.QDragEnterEvent',),
- "PySide2.QtWidgets.QAbstractItemView.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtWidgets.QAbstractItemView.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtWidgets.QAbstractItemView.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QAbstractItemView.dropIndicatorPosition": (),
- "PySide2.QtWidgets.QAbstractItemView.edit": [('PySide2.QtCore.QModelIndex',), ('PySide2.QtCore.QModelIndex', 'PySide2.QtWidgets.QAbstractItemView.EditTrigger', 'PySide2.QtCore.QEvent')],
- "PySide2.QtWidgets.QAbstractItemView.editTriggers": (),
- "PySide2.QtWidgets.QAbstractItemView.editorDestroyed": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QAbstractItemView.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAbstractItemView.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QAbstractItemView.executeDelayedItemsLayout": (),
- "PySide2.QtWidgets.QAbstractItemView.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QAbstractItemView.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QAbstractItemView.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QAbstractItemView.hasAutoScroll": (),
- "PySide2.QtWidgets.QAbstractItemView.horizontalOffset": (),
- "PySide2.QtWidgets.QAbstractItemView.horizontalScrollMode": (),
- "PySide2.QtWidgets.QAbstractItemView.horizontalScrollbarAction": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.horizontalScrollbarValueChanged": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.horizontalStepsPerItem": (),
- "PySide2.QtWidgets.QAbstractItemView.iconSize": (),
- "PySide2.QtWidgets.QAbstractItemView.indexAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QAbstractItemView.indexWidget": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QAbstractItemView.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QAbstractItemView.inputMethodQuery": ('PySide2.QtCore.Qt.InputMethodQuery',),
- "PySide2.QtWidgets.QAbstractItemView.isIndexHidden": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QAbstractItemView.isPersistentEditorOpen": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QAbstractItemView.itemDelegate": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtWidgets.QAbstractItemView.itemDelegateForColumn": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.itemDelegateForRow": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QAbstractItemView.keyboardSearch": ('str',),
- "PySide2.QtWidgets.QAbstractItemView.model": (),
- "PySide2.QtWidgets.QAbstractItemView.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractItemView.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractItemView.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractItemView.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractItemView.moveCursor": ('PySide2.QtWidgets.QAbstractItemView.CursorAction', 'PySide2.QtCore.Qt.KeyboardModifiers'),
- "PySide2.QtWidgets.QAbstractItemView.openPersistentEditor": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QAbstractItemView.reset": (),
- "PySide2.QtWidgets.QAbstractItemView.resetHorizontalScrollMode": (),
- "PySide2.QtWidgets.QAbstractItemView.resetVerticalScrollMode": (),
- "PySide2.QtWidgets.QAbstractItemView.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QAbstractItemView.rootIndex": (),
- "PySide2.QtWidgets.QAbstractItemView.rowsAboutToBeRemoved": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QAbstractItemView.rowsInserted": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QAbstractItemView.scheduleDelayedItemsLayout": (),
- "PySide2.QtWidgets.QAbstractItemView.scrollDirtyRegion": ('int', 'int'),
- "PySide2.QtWidgets.QAbstractItemView.scrollTo": ('PySide2.QtCore.QModelIndex', 'PySide2.QtWidgets.QAbstractItemView.ScrollHint'),
- "PySide2.QtWidgets.QAbstractItemView.scrollToBottom": (),
- "PySide2.QtWidgets.QAbstractItemView.scrollToTop": (),
- "PySide2.QtWidgets.QAbstractItemView.selectAll": (),
- "PySide2.QtWidgets.QAbstractItemView.selectedIndexes": (),
- "PySide2.QtWidgets.QAbstractItemView.selectionBehavior": (),
- "PySide2.QtWidgets.QAbstractItemView.selectionChanged": ('PySide2.QtCore.QItemSelection', 'PySide2.QtCore.QItemSelection'),
- "PySide2.QtWidgets.QAbstractItemView.selectionCommand": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QAbstractItemView.selectionMode": (),
- "PySide2.QtWidgets.QAbstractItemView.selectionModel": (),
- "PySide2.QtWidgets.QAbstractItemView.setAlternatingRowColors": ('bool',),
- "PySide2.QtWidgets.QAbstractItemView.setAutoScroll": ('bool',),
- "PySide2.QtWidgets.QAbstractItemView.setAutoScrollMargin": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.setCurrentIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QAbstractItemView.setDefaultDropAction": ('PySide2.QtCore.Qt.DropAction',),
- "PySide2.QtWidgets.QAbstractItemView.setDirtyRegion": ('PySide2.QtGui.QRegion',),
- "PySide2.QtWidgets.QAbstractItemView.setDragDropMode": ('PySide2.QtWidgets.QAbstractItemView.DragDropMode',),
- "PySide2.QtWidgets.QAbstractItemView.setDragDropOverwriteMode": ('bool',),
- "PySide2.QtWidgets.QAbstractItemView.setDragEnabled": ('bool',),
- "PySide2.QtWidgets.QAbstractItemView.setDropIndicatorShown": ('bool',),
- "PySide2.QtWidgets.QAbstractItemView.setEditTriggers": ('PySide2.QtWidgets.QAbstractItemView.EditTriggers',),
- "PySide2.QtWidgets.QAbstractItemView.setHorizontalScrollMode": ('PySide2.QtWidgets.QAbstractItemView.ScrollMode',),
- "PySide2.QtWidgets.QAbstractItemView.setHorizontalStepsPerItem": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.setIconSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QAbstractItemView.setIndexWidget": ('PySide2.QtCore.QModelIndex', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QAbstractItemView.setItemDelegate": ('PySide2.QtWidgets.QAbstractItemDelegate',),
- "PySide2.QtWidgets.QAbstractItemView.setItemDelegateForColumn": ('int', 'PySide2.QtWidgets.QAbstractItemDelegate'),
- "PySide2.QtWidgets.QAbstractItemView.setItemDelegateForRow": ('int', 'PySide2.QtWidgets.QAbstractItemDelegate'),
- "PySide2.QtWidgets.QAbstractItemView.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QAbstractItemView.setRootIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QAbstractItemView.setSelection": ('PySide2.QtCore.QRect', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags'),
- "PySide2.QtWidgets.QAbstractItemView.setSelectionBehavior": ('PySide2.QtWidgets.QAbstractItemView.SelectionBehavior',),
- "PySide2.QtWidgets.QAbstractItemView.setSelectionMode": ('PySide2.QtWidgets.QAbstractItemView.SelectionMode',),
- "PySide2.QtWidgets.QAbstractItemView.setSelectionModel": ('PySide2.QtCore.QItemSelectionModel',),
- "PySide2.QtWidgets.QAbstractItemView.setState": ('PySide2.QtWidgets.QAbstractItemView.State',),
- "PySide2.QtWidgets.QAbstractItemView.setTabKeyNavigation": ('bool',),
- "PySide2.QtWidgets.QAbstractItemView.setTextElideMode": ('PySide2.QtCore.Qt.TextElideMode',),
- "PySide2.QtWidgets.QAbstractItemView.setVerticalScrollMode": ('PySide2.QtWidgets.QAbstractItemView.ScrollMode',),
- "PySide2.QtWidgets.QAbstractItemView.setVerticalStepsPerItem": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.showDropIndicator": (),
- "PySide2.QtWidgets.QAbstractItemView.sizeHintForColumn": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.sizeHintForIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QAbstractItemView.sizeHintForRow": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.startAutoScroll": (),
- "PySide2.QtWidgets.QAbstractItemView.startDrag": ('PySide2.QtCore.Qt.DropActions',),
- "PySide2.QtWidgets.QAbstractItemView.state": (),
- "PySide2.QtWidgets.QAbstractItemView.stopAutoScroll": (),
- "PySide2.QtWidgets.QAbstractItemView.tabKeyNavigation": (),
- "PySide2.QtWidgets.QAbstractItemView.textElideMode": (),
- "PySide2.QtWidgets.QAbstractItemView.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QAbstractItemView.update": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtWidgets.QAbstractItemView.updateEditorData": (),
- "PySide2.QtWidgets.QAbstractItemView.updateEditorGeometries": (),
- "PySide2.QtWidgets.QAbstractItemView.updateGeometries": (),
- "PySide2.QtWidgets.QAbstractItemView.verticalOffset": (),
- "PySide2.QtWidgets.QAbstractItemView.verticalScrollMode": (),
- "PySide2.QtWidgets.QAbstractItemView.verticalScrollbarAction": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.verticalScrollbarValueChanged": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.verticalStepsPerItem": (),
- "PySide2.QtWidgets.QAbstractItemView.viewOptions": (),
- "PySide2.QtWidgets.QAbstractItemView.viewportEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAbstractItemView.viewportSizeHint": (),
- "PySide2.QtWidgets.QAbstractItemView.visualRect": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QAbstractItemView.visualRegionForSelection": ('PySide2.QtCore.QItemSelection',),
-# class PySide2.QtWidgets.QAbstractScrollArea:
-# class PySide2.QtWidgets.QAbstractScrollArea.SizeAdjustPolicy:
- "PySide2.QtWidgets.QAbstractScrollArea.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QAbstractScrollArea.addScrollBarWidget": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.Alignment'),
- "PySide2.QtWidgets.QAbstractScrollArea.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.cornerWidget": (),
- "PySide2.QtWidgets.QAbstractScrollArea.dragEnterEvent": ('PySide2.QtGui.QDragEnterEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QAbstractScrollArea.horizontalScrollBar": (),
- "PySide2.QtWidgets.QAbstractScrollArea.horizontalScrollBarPolicy": (),
- "PySide2.QtWidgets.QAbstractScrollArea.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.maximumViewportSize": (),
- "PySide2.QtWidgets.QAbstractScrollArea.minimumSizeHint": (),
- "PySide2.QtWidgets.QAbstractScrollArea.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.scrollBarWidgets": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QAbstractScrollArea.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QAbstractScrollArea.setCornerWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QAbstractScrollArea.setHorizontalScrollBar": ('PySide2.QtWidgets.QScrollBar',),
- "PySide2.QtWidgets.QAbstractScrollArea.setHorizontalScrollBarPolicy": ('PySide2.QtCore.Qt.ScrollBarPolicy',),
- "PySide2.QtWidgets.QAbstractScrollArea.setSizeAdjustPolicy": ('PySide2.QtWidgets.QAbstractScrollArea.SizeAdjustPolicy',),
- "PySide2.QtWidgets.QAbstractScrollArea.setVerticalScrollBar": ('PySide2.QtWidgets.QScrollBar',),
- "PySide2.QtWidgets.QAbstractScrollArea.setVerticalScrollBarPolicy": ('PySide2.QtCore.Qt.ScrollBarPolicy',),
- "PySide2.QtWidgets.QAbstractScrollArea.setViewport": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QAbstractScrollArea.setViewportMargins": [('PySide2.QtCore.QMargins',), ('int', 'int', 'int', 'int')],
- "PySide2.QtWidgets.QAbstractScrollArea.setupViewport": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QAbstractScrollArea.sizeAdjustPolicy": (),
- "PySide2.QtWidgets.QAbstractScrollArea.sizeHint": (),
- "PySide2.QtWidgets.QAbstractScrollArea.verticalScrollBar": (),
- "PySide2.QtWidgets.QAbstractScrollArea.verticalScrollBarPolicy": (),
- "PySide2.QtWidgets.QAbstractScrollArea.viewport": (),
- "PySide2.QtWidgets.QAbstractScrollArea.viewportEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.viewportMargins": (),
- "PySide2.QtWidgets.QAbstractScrollArea.viewportSizeHint": (),
- "PySide2.QtWidgets.QAbstractScrollArea.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtWidgets.QAbstractSlider:
-# class PySide2.QtWidgets.QAbstractSlider.SliderAction:
-# class PySide2.QtWidgets.QAbstractSlider.SliderChange:
- "PySide2.QtWidgets.QAbstractSlider.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QAbstractSlider.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAbstractSlider.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAbstractSlider.hasTracking": (),
- "PySide2.QtWidgets.QAbstractSlider.invertedAppearance": (),
- "PySide2.QtWidgets.QAbstractSlider.invertedControls": (),
- "PySide2.QtWidgets.QAbstractSlider.isSliderDown": (),
- "PySide2.QtWidgets.QAbstractSlider.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QAbstractSlider.maximum": (),
- "PySide2.QtWidgets.QAbstractSlider.minimum": (),
- "PySide2.QtWidgets.QAbstractSlider.orientation": (),
- "PySide2.QtWidgets.QAbstractSlider.pageStep": (),
- "PySide2.QtWidgets.QAbstractSlider.repeatAction": (),
- "PySide2.QtWidgets.QAbstractSlider.setInvertedAppearance": ('bool',),
- "PySide2.QtWidgets.QAbstractSlider.setInvertedControls": ('bool',),
- "PySide2.QtWidgets.QAbstractSlider.setMaximum": ('int',),
- "PySide2.QtWidgets.QAbstractSlider.setMinimum": ('int',),
- "PySide2.QtWidgets.QAbstractSlider.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtWidgets.QAbstractSlider.setPageStep": ('int',),
- "PySide2.QtWidgets.QAbstractSlider.setRange": ('int', 'int'),
- "PySide2.QtWidgets.QAbstractSlider.setRepeatAction": ('PySide2.QtWidgets.QAbstractSlider.SliderAction', 'int', 'int'),
- "PySide2.QtWidgets.QAbstractSlider.setSingleStep": ('int',),
- "PySide2.QtWidgets.QAbstractSlider.setSliderDown": ('bool',),
- "PySide2.QtWidgets.QAbstractSlider.setSliderPosition": ('int',),
- "PySide2.QtWidgets.QAbstractSlider.setTracking": ('bool',),
- "PySide2.QtWidgets.QAbstractSlider.setValue": ('int',),
- "PySide2.QtWidgets.QAbstractSlider.singleStep": (),
- "PySide2.QtWidgets.QAbstractSlider.sliderChange": ('PySide2.QtWidgets.QAbstractSlider.SliderChange',),
- "PySide2.QtWidgets.QAbstractSlider.sliderPosition": (),
- "PySide2.QtWidgets.QAbstractSlider.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QAbstractSlider.triggerAction": ('PySide2.QtWidgets.QAbstractSlider.SliderAction',),
- "PySide2.QtWidgets.QAbstractSlider.value": (),
- "PySide2.QtWidgets.QAbstractSlider.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtWidgets.QAbstractSpinBox:
-# class PySide2.QtWidgets.QAbstractSpinBox.ButtonSymbols:
-# class PySide2.QtWidgets.QAbstractSpinBox.CorrectionMode:
-# class PySide2.QtWidgets.QAbstractSpinBox.StepEnabled:
-# class PySide2.QtWidgets.QAbstractSpinBox.StepEnabledFlag:
-# class PySide2.QtWidgets.QAbstractSpinBox.StepType:
- "PySide2.QtWidgets.QAbstractSpinBox.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QAbstractSpinBox.alignment": (),
- "PySide2.QtWidgets.QAbstractSpinBox.buttonSymbols": (),
- "PySide2.QtWidgets.QAbstractSpinBox.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.clear": (),
- "PySide2.QtWidgets.QAbstractSpinBox.closeEvent": ('PySide2.QtGui.QCloseEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.correctionMode": (),
- "PySide2.QtWidgets.QAbstractSpinBox.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.fixup": ('str',),
- "PySide2.QtWidgets.QAbstractSpinBox.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.hasAcceptableInput": (),
- "PySide2.QtWidgets.QAbstractSpinBox.hasFrame": (),
- "PySide2.QtWidgets.QAbstractSpinBox.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.initStyleOption": ('PySide2.QtWidgets.QStyleOptionSpinBox',),
- "PySide2.QtWidgets.QAbstractSpinBox.inputMethodQuery": ('PySide2.QtCore.Qt.InputMethodQuery',),
- "PySide2.QtWidgets.QAbstractSpinBox.interpretText": (),
- "PySide2.QtWidgets.QAbstractSpinBox.isAccelerated": (),
- "PySide2.QtWidgets.QAbstractSpinBox.isGroupSeparatorShown": (),
- "PySide2.QtWidgets.QAbstractSpinBox.isReadOnly": (),
- "PySide2.QtWidgets.QAbstractSpinBox.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.keyboardTracking": (),
- "PySide2.QtWidgets.QAbstractSpinBox.lineEdit": (),
- "PySide2.QtWidgets.QAbstractSpinBox.minimumSizeHint": (),
- "PySide2.QtWidgets.QAbstractSpinBox.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.selectAll": (),
- "PySide2.QtWidgets.QAbstractSpinBox.setAccelerated": ('bool',),
- "PySide2.QtWidgets.QAbstractSpinBox.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QAbstractSpinBox.setButtonSymbols": ('PySide2.QtWidgets.QAbstractSpinBox.ButtonSymbols',),
- "PySide2.QtWidgets.QAbstractSpinBox.setCorrectionMode": ('PySide2.QtWidgets.QAbstractSpinBox.CorrectionMode',),
- "PySide2.QtWidgets.QAbstractSpinBox.setFrame": ('bool',),
- "PySide2.QtWidgets.QAbstractSpinBox.setGroupSeparatorShown": ('bool',),
- "PySide2.QtWidgets.QAbstractSpinBox.setKeyboardTracking": ('bool',),
- "PySide2.QtWidgets.QAbstractSpinBox.setLineEdit": ('PySide2.QtWidgets.QLineEdit',),
- "PySide2.QtWidgets.QAbstractSpinBox.setReadOnly": ('bool',),
- "PySide2.QtWidgets.QAbstractSpinBox.setSpecialValueText": ('str',),
- "PySide2.QtWidgets.QAbstractSpinBox.setWrapping": ('bool',),
- "PySide2.QtWidgets.QAbstractSpinBox.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.sizeHint": (),
- "PySide2.QtWidgets.QAbstractSpinBox.specialValueText": (),
- "PySide2.QtWidgets.QAbstractSpinBox.stepBy": ('int',),
- "PySide2.QtWidgets.QAbstractSpinBox.stepDown": (),
- "PySide2.QtWidgets.QAbstractSpinBox.stepEnabled": (),
- "PySide2.QtWidgets.QAbstractSpinBox.stepUp": (),
- "PySide2.QtWidgets.QAbstractSpinBox.text": (),
- "PySide2.QtWidgets.QAbstractSpinBox.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.validate": ('str', 'int'),
- "PySide2.QtWidgets.QAbstractSpinBox.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.wrapping": (),
-# class PySide2.QtWidgets.QAccessibleWidget:
- "PySide2.QtWidgets.QAccessibleWidget.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtGui.QAccessible.Role', 'str'),
- "PySide2.QtWidgets.QAccessibleWidget.actionNames": (),
- "PySide2.QtWidgets.QAccessibleWidget.addControllingSignal": ('str',),
- "PySide2.QtWidgets.QAccessibleWidget.backgroundColor": (),
- "PySide2.QtWidgets.QAccessibleWidget.child": ('int',),
- "PySide2.QtWidgets.QAccessibleWidget.childCount": (),
- "PySide2.QtWidgets.QAccessibleWidget.doAction": ('str',),
- "PySide2.QtWidgets.QAccessibleWidget.focusChild": (),
- "PySide2.QtWidgets.QAccessibleWidget.foregroundColor": (),
- "PySide2.QtWidgets.QAccessibleWidget.indexOfChild": ('PySide2.QtGui.QAccessibleInterface',),
- "PySide2.QtWidgets.QAccessibleWidget.interface_cast": ('PySide2.QtGui.QAccessible.InterfaceType',),
- "PySide2.QtWidgets.QAccessibleWidget.isValid": (),
- "PySide2.QtWidgets.QAccessibleWidget.keyBindingsForAction": ('str',),
- "PySide2.QtWidgets.QAccessibleWidget.parent": (),
- "PySide2.QtWidgets.QAccessibleWidget.parentObject": (),
- "PySide2.QtWidgets.QAccessibleWidget.rect": (),
- "PySide2.QtWidgets.QAccessibleWidget.relations": ('PySide2.QtGui.QAccessible.Relation',),
- "PySide2.QtWidgets.QAccessibleWidget.role": (),
- "PySide2.QtWidgets.QAccessibleWidget.state": (),
- "PySide2.QtWidgets.QAccessibleWidget.text": ('PySide2.QtGui.QAccessible.Text',),
- "PySide2.QtWidgets.QAccessibleWidget.widget": (),
- "PySide2.QtWidgets.QAccessibleWidget.window": (),
-# class PySide2.QtWidgets.QAction:
-# class PySide2.QtWidgets.QAction.ActionEvent:
-# class PySide2.QtWidgets.QAction.MenuRole:
-# class PySide2.QtWidgets.QAction.Priority:
- "PySide2.QtWidgets.QAction.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtGui.QIcon', 'str', 'PySide2.QtCore.QObject'), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtWidgets.QAction.actionGroup": (),
- "PySide2.QtWidgets.QAction.activate": ('PySide2.QtWidgets.QAction.ActionEvent',),
- "PySide2.QtWidgets.QAction.associatedGraphicsWidgets": (),
- "PySide2.QtWidgets.QAction.associatedWidgets": (),
- "PySide2.QtWidgets.QAction.autoRepeat": (),
- "PySide2.QtWidgets.QAction.data": (),
- "PySide2.QtWidgets.QAction.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAction.font": (),
- "PySide2.QtWidgets.QAction.hover": (),
- "PySide2.QtWidgets.QAction.icon": (),
- "PySide2.QtWidgets.QAction.iconText": (),
- "PySide2.QtWidgets.QAction.isCheckable": (),
- "PySide2.QtWidgets.QAction.isChecked": (),
- "PySide2.QtWidgets.QAction.isEnabled": (),
- "PySide2.QtWidgets.QAction.isIconVisibleInMenu": (),
- "PySide2.QtWidgets.QAction.isSeparator": (),
- "PySide2.QtWidgets.QAction.isShortcutVisibleInContextMenu": (),
- "PySide2.QtWidgets.QAction.isVisible": (),
- "PySide2.QtWidgets.QAction.menu": (),
- "PySide2.QtWidgets.QAction.menuRole": (),
- "PySide2.QtWidgets.QAction.parentWidget": (),
- "PySide2.QtWidgets.QAction.priority": (),
- "PySide2.QtWidgets.QAction.setActionGroup": ('PySide2.QtWidgets.QActionGroup',),
- "PySide2.QtWidgets.QAction.setAutoRepeat": ('bool',),
- "PySide2.QtWidgets.QAction.setCheckable": ('bool',),
- "PySide2.QtWidgets.QAction.setChecked": ('bool',),
- "PySide2.QtWidgets.QAction.setData": ('typing.Any',),
- "PySide2.QtWidgets.QAction.setDisabled": ('bool',),
- "PySide2.QtWidgets.QAction.setEnabled": ('bool',),
- "PySide2.QtWidgets.QAction.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QAction.setIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtWidgets.QAction.setIconText": ('str',),
- "PySide2.QtWidgets.QAction.setIconVisibleInMenu": ('bool',),
- "PySide2.QtWidgets.QAction.setMenu": ('PySide2.QtWidgets.QMenu',),
- "PySide2.QtWidgets.QAction.setMenuRole": ('PySide2.QtWidgets.QAction.MenuRole',),
- "PySide2.QtWidgets.QAction.setPriority": ('PySide2.QtWidgets.QAction.Priority',),
- "PySide2.QtWidgets.QAction.setSeparator": ('bool',),
- "PySide2.QtWidgets.QAction.setShortcut": ('PySide2.QtGui.QKeySequence',),
- "PySide2.QtWidgets.QAction.setShortcutContext": ('PySide2.QtCore.Qt.ShortcutContext',),
- "PySide2.QtWidgets.QAction.setShortcutVisibleInContextMenu": ('bool',),
- "PySide2.QtWidgets.QAction.setShortcuts": [('PySide2.QtGui.QKeySequence.StandardKey',), ('typing.Sequence[PySide2.QtGui.QKeySequence]',)],
- "PySide2.QtWidgets.QAction.setStatusTip": ('str',),
- "PySide2.QtWidgets.QAction.setText": ('str',),
- "PySide2.QtWidgets.QAction.setToolTip": ('str',),
- "PySide2.QtWidgets.QAction.setVisible": ('bool',),
- "PySide2.QtWidgets.QAction.setWhatsThis": ('str',),
- "PySide2.QtWidgets.QAction.shortcut": (),
- "PySide2.QtWidgets.QAction.shortcutContext": (),
- "PySide2.QtWidgets.QAction.shortcuts": (),
- "PySide2.QtWidgets.QAction.showStatusText": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QAction.statusTip": (),
- "PySide2.QtWidgets.QAction.text": (),
- "PySide2.QtWidgets.QAction.toggle": (),
- "PySide2.QtWidgets.QAction.toolTip": (),
- "PySide2.QtWidgets.QAction.trigger": (),
- "PySide2.QtWidgets.QAction.whatsThis": (),
-# class PySide2.QtWidgets.QActionGroup:
-# class PySide2.QtWidgets.QActionGroup.ExclusionPolicy:
- "PySide2.QtWidgets.QActionGroup.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QActionGroup.actions": (),
- "PySide2.QtWidgets.QActionGroup.addAction": [('PySide2.QtGui.QIcon', 'str'), ('PySide2.QtWidgets.QAction',), ('str',)],
- "PySide2.QtWidgets.QActionGroup.checkedAction": (),
- "PySide2.QtWidgets.QActionGroup.exclusionPolicy": (),
- "PySide2.QtWidgets.QActionGroup.isEnabled": (),
- "PySide2.QtWidgets.QActionGroup.isExclusive": (),
- "PySide2.QtWidgets.QActionGroup.isVisible": (),
- "PySide2.QtWidgets.QActionGroup.removeAction": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QActionGroup.setDisabled": ('bool',),
- "PySide2.QtWidgets.QActionGroup.setEnabled": ('bool',),
- "PySide2.QtWidgets.QActionGroup.setExclusionPolicy": ('PySide2.QtWidgets.QActionGroup.ExclusionPolicy',),
- "PySide2.QtWidgets.QActionGroup.setExclusive": ('bool',),
- "PySide2.QtWidgets.QActionGroup.setVisible": ('bool',),
-# class PySide2.QtWidgets.QApplication:
-# class PySide2.QtWidgets.QApplication.ColorSpec:
- "PySide2.QtWidgets.QApplication.__init__": [(), ('typing.Sequence[str]',)],
- "PySide2.QtWidgets.QApplication.aboutQt": (),
- "PySide2.QtWidgets.QApplication.activeModalWidget": (),
- "PySide2.QtWidgets.QApplication.activePopupWidget": (),
- "PySide2.QtWidgets.QApplication.activeWindow": (),
- "PySide2.QtWidgets.QApplication.alert": ('PySide2.QtWidgets.QWidget', 'int'),
- "PySide2.QtWidgets.QApplication.allWidgets": (),
- "PySide2.QtWidgets.QApplication.autoSipEnabled": (),
- "PySide2.QtWidgets.QApplication.beep": (),
- "PySide2.QtWidgets.QApplication.closeAllWindows": (),
- "PySide2.QtWidgets.QApplication.colorSpec": (),
- "PySide2.QtWidgets.QApplication.cursorFlashTime": (),
- "PySide2.QtWidgets.QApplication.desktop": (),
- "PySide2.QtWidgets.QApplication.doubleClickInterval": (),
- "PySide2.QtWidgets.QApplication.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QApplication.exec_": (),
- "PySide2.QtWidgets.QApplication.focusWidget": (),
- "PySide2.QtWidgets.QApplication.font": [(), ('PySide2.QtWidgets.QWidget',), ('str',)],
- "PySide2.QtWidgets.QApplication.fontMetrics": (),
- "PySide2.QtWidgets.QApplication.globalStrut": (),
- "PySide2.QtWidgets.QApplication.isEffectEnabled": ('PySide2.QtCore.Qt.UIEffect',),
- "PySide2.QtWidgets.QApplication.keyboardInputInterval": (),
- "PySide2.QtWidgets.QApplication.notify": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QApplication.palette": [(), ('PySide2.QtWidgets.QWidget',), ('str',)],
- "PySide2.QtWidgets.QApplication.setActiveWindow": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QApplication.setAutoSipEnabled": ('bool',),
- "PySide2.QtWidgets.QApplication.setColorSpec": ('int',),
- "PySide2.QtWidgets.QApplication.setCursorFlashTime": ('int',),
- "PySide2.QtWidgets.QApplication.setDoubleClickInterval": ('int',),
- "PySide2.QtWidgets.QApplication.setEffectEnabled": ('PySide2.QtCore.Qt.UIEffect', 'bool'),
- "PySide2.QtWidgets.QApplication.setFont": [('PySide2.QtGui.QFont',), ('PySide2.QtGui.QFont', 'str')],
- "PySide2.QtWidgets.QApplication.setGlobalStrut": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QApplication.setKeyboardInputInterval": ('int',),
- "PySide2.QtWidgets.QApplication.setPalette": [('PySide2.QtGui.QPalette',), ('PySide2.QtGui.QPalette', 'str')],
- "PySide2.QtWidgets.QApplication.setStartDragDistance": ('int',),
- "PySide2.QtWidgets.QApplication.setStartDragTime": ('int',),
- "PySide2.QtWidgets.QApplication.setStyle": [('PySide2.QtWidgets.QStyle',), ('str',)],
- "PySide2.QtWidgets.QApplication.setStyleSheet": ('str',),
- "PySide2.QtWidgets.QApplication.setWheelScrollLines": ('int',),
- "PySide2.QtWidgets.QApplication.setWindowIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtWidgets.QApplication.startDragDistance": (),
- "PySide2.QtWidgets.QApplication.startDragTime": (),
- "PySide2.QtWidgets.QApplication.style": (),
- "PySide2.QtWidgets.QApplication.styleSheet": (),
- "PySide2.QtWidgets.QApplication.topLevelAt": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtWidgets.QApplication.topLevelWidgets": (),
- "PySide2.QtWidgets.QApplication.wheelScrollLines": (),
- "PySide2.QtWidgets.QApplication.widgetAt": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtWidgets.QApplication.windowIcon": (),
-# class PySide2.QtWidgets.QBoxLayout:
-# class PySide2.QtWidgets.QBoxLayout.Direction:
- "PySide2.QtWidgets.QBoxLayout.__init__": ('PySide2.QtWidgets.QBoxLayout.Direction', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QBoxLayout.addItem": ('PySide2.QtWidgets.QLayoutItem',),
- "PySide2.QtWidgets.QBoxLayout.addLayout": ('PySide2.QtWidgets.QLayout', 'int'),
- "PySide2.QtWidgets.QBoxLayout.addSpacerItem": ('PySide2.QtWidgets.QSpacerItem',),
- "PySide2.QtWidgets.QBoxLayout.addSpacing": ('int',),
- "PySide2.QtWidgets.QBoxLayout.addStretch": ('int',),
- "PySide2.QtWidgets.QBoxLayout.addStrut": ('int',),
- "PySide2.QtWidgets.QBoxLayout.addWidget": [('PySide2.QtWidgets.QWidget',), ('PySide2.QtWidgets.QWidget', 'int', 'PySide2.QtCore.Qt.Alignment')],
- "PySide2.QtWidgets.QBoxLayout.count": (),
- "PySide2.QtWidgets.QBoxLayout.direction": (),
- "PySide2.QtWidgets.QBoxLayout.expandingDirections": (),
- "PySide2.QtWidgets.QBoxLayout.hasHeightForWidth": (),
- "PySide2.QtWidgets.QBoxLayout.heightForWidth": ('int',),
- "PySide2.QtWidgets.QBoxLayout.insertItem": ('int', 'PySide2.QtWidgets.QLayoutItem'),
- "PySide2.QtWidgets.QBoxLayout.insertLayout": ('int', 'PySide2.QtWidgets.QLayout', 'int'),
- "PySide2.QtWidgets.QBoxLayout.insertSpacerItem": ('int', 'PySide2.QtWidgets.QSpacerItem'),
- "PySide2.QtWidgets.QBoxLayout.insertSpacing": ('int', 'int'),
- "PySide2.QtWidgets.QBoxLayout.insertStretch": ('int', 'int'),
- "PySide2.QtWidgets.QBoxLayout.insertWidget": ('int', 'PySide2.QtWidgets.QWidget', 'int', 'PySide2.QtCore.Qt.Alignment'),
- "PySide2.QtWidgets.QBoxLayout.invalidate": (),
- "PySide2.QtWidgets.QBoxLayout.itemAt": ('int',),
- "PySide2.QtWidgets.QBoxLayout.maximumSize": (),
- "PySide2.QtWidgets.QBoxLayout.minimumHeightForWidth": ('int',),
- "PySide2.QtWidgets.QBoxLayout.minimumSize": (),
- "PySide2.QtWidgets.QBoxLayout.setDirection": ('PySide2.QtWidgets.QBoxLayout.Direction',),
- "PySide2.QtWidgets.QBoxLayout.setGeometry": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QBoxLayout.setSpacing": ('int',),
- "PySide2.QtWidgets.QBoxLayout.setStretch": ('int', 'int'),
- "PySide2.QtWidgets.QBoxLayout.setStretchFactor": [('PySide2.QtWidgets.QLayout', 'int'), ('PySide2.QtWidgets.QWidget', 'int')],
- "PySide2.QtWidgets.QBoxLayout.sizeHint": (),
- "PySide2.QtWidgets.QBoxLayout.spacing": (),
- "PySide2.QtWidgets.QBoxLayout.stretch": ('int',),
- "PySide2.QtWidgets.QBoxLayout.takeAt": ('int',),
-# class PySide2.QtWidgets.QButtonGroup:
- "PySide2.QtWidgets.QButtonGroup.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QButtonGroup.addButton": ('PySide2.QtWidgets.QAbstractButton', 'int'),
- "PySide2.QtWidgets.QButtonGroup.button": ('int',),
- "PySide2.QtWidgets.QButtonGroup.buttons": (),
- "PySide2.QtWidgets.QButtonGroup.checkedButton": (),
- "PySide2.QtWidgets.QButtonGroup.checkedId": (),
- "PySide2.QtWidgets.QButtonGroup.exclusive": (),
- "PySide2.QtWidgets.QButtonGroup.id": ('PySide2.QtWidgets.QAbstractButton',),
- "PySide2.QtWidgets.QButtonGroup.removeButton": ('PySide2.QtWidgets.QAbstractButton',),
- "PySide2.QtWidgets.QButtonGroup.setExclusive": ('bool',),
- "PySide2.QtWidgets.QButtonGroup.setId": ('PySide2.QtWidgets.QAbstractButton', 'int'),
-# class PySide2.QtWidgets.QCalendarWidget:
-# class PySide2.QtWidgets.QCalendarWidget.HorizontalHeaderFormat:
-# class PySide2.QtWidgets.QCalendarWidget.SelectionMode:
-# class PySide2.QtWidgets.QCalendarWidget.VerticalHeaderFormat:
- "PySide2.QtWidgets.QCalendarWidget.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QCalendarWidget.calendar": (),
- "PySide2.QtWidgets.QCalendarWidget.dateEditAcceptDelay": (),
- "PySide2.QtWidgets.QCalendarWidget.dateTextFormat": [(), ('PySide2.QtCore.QDate',)],
- "PySide2.QtWidgets.QCalendarWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QCalendarWidget.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QCalendarWidget.firstDayOfWeek": (),
- "PySide2.QtWidgets.QCalendarWidget.headerTextFormat": (),
- "PySide2.QtWidgets.QCalendarWidget.horizontalHeaderFormat": (),
- "PySide2.QtWidgets.QCalendarWidget.isDateEditEnabled": (),
- "PySide2.QtWidgets.QCalendarWidget.isGridVisible": (),
- "PySide2.QtWidgets.QCalendarWidget.isNavigationBarVisible": (),
- "PySide2.QtWidgets.QCalendarWidget.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QCalendarWidget.maximumDate": (),
- "PySide2.QtWidgets.QCalendarWidget.minimumDate": (),
- "PySide2.QtWidgets.QCalendarWidget.minimumSizeHint": (),
- "PySide2.QtWidgets.QCalendarWidget.monthShown": (),
- "PySide2.QtWidgets.QCalendarWidget.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QCalendarWidget.paintCell": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRect', 'PySide2.QtCore.QDate'),
- "PySide2.QtWidgets.QCalendarWidget.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QCalendarWidget.selectedDate": (),
- "PySide2.QtWidgets.QCalendarWidget.selectionMode": (),
- "PySide2.QtWidgets.QCalendarWidget.setCalendar": ('PySide2.QtCore.QCalendar',),
- "PySide2.QtWidgets.QCalendarWidget.setCurrentPage": ('int', 'int'),
- "PySide2.QtWidgets.QCalendarWidget.setDateEditAcceptDelay": ('int',),
- "PySide2.QtWidgets.QCalendarWidget.setDateEditEnabled": ('bool',),
- "PySide2.QtWidgets.QCalendarWidget.setDateRange": ('PySide2.QtCore.QDate', 'PySide2.QtCore.QDate'),
- "PySide2.QtWidgets.QCalendarWidget.setDateTextFormat": ('PySide2.QtCore.QDate', 'PySide2.QtGui.QTextCharFormat'),
- "PySide2.QtWidgets.QCalendarWidget.setFirstDayOfWeek": ('PySide2.QtCore.Qt.DayOfWeek',),
- "PySide2.QtWidgets.QCalendarWidget.setGridVisible": ('bool',),
- "PySide2.QtWidgets.QCalendarWidget.setHeaderTextFormat": ('PySide2.QtGui.QTextCharFormat',),
- "PySide2.QtWidgets.QCalendarWidget.setHorizontalHeaderFormat": ('PySide2.QtWidgets.QCalendarWidget.HorizontalHeaderFormat',),
- "PySide2.QtWidgets.QCalendarWidget.setMaximumDate": ('PySide2.QtCore.QDate',),
- "PySide2.QtWidgets.QCalendarWidget.setMinimumDate": ('PySide2.QtCore.QDate',),
- "PySide2.QtWidgets.QCalendarWidget.setNavigationBarVisible": ('bool',),
- "PySide2.QtWidgets.QCalendarWidget.setSelectedDate": ('PySide2.QtCore.QDate',),
- "PySide2.QtWidgets.QCalendarWidget.setSelectionMode": ('PySide2.QtWidgets.QCalendarWidget.SelectionMode',),
- "PySide2.QtWidgets.QCalendarWidget.setVerticalHeaderFormat": ('PySide2.QtWidgets.QCalendarWidget.VerticalHeaderFormat',),
- "PySide2.QtWidgets.QCalendarWidget.setWeekdayTextFormat": ('PySide2.QtCore.Qt.DayOfWeek', 'PySide2.QtGui.QTextCharFormat'),
- "PySide2.QtWidgets.QCalendarWidget.showNextMonth": (),
- "PySide2.QtWidgets.QCalendarWidget.showNextYear": (),
- "PySide2.QtWidgets.QCalendarWidget.showPreviousMonth": (),
- "PySide2.QtWidgets.QCalendarWidget.showPreviousYear": (),
- "PySide2.QtWidgets.QCalendarWidget.showSelectedDate": (),
- "PySide2.QtWidgets.QCalendarWidget.showToday": (),
- "PySide2.QtWidgets.QCalendarWidget.sizeHint": (),
- "PySide2.QtWidgets.QCalendarWidget.updateCell": ('PySide2.QtCore.QDate',),
- "PySide2.QtWidgets.QCalendarWidget.updateCells": (),
- "PySide2.QtWidgets.QCalendarWidget.verticalHeaderFormat": (),
- "PySide2.QtWidgets.QCalendarWidget.weekdayTextFormat": ('PySide2.QtCore.Qt.DayOfWeek',),
- "PySide2.QtWidgets.QCalendarWidget.yearShown": (),
-# class PySide2.QtWidgets.QCheckBox:
- "PySide2.QtWidgets.QCheckBox.__init__": [('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QCheckBox.checkState": (),
- "PySide2.QtWidgets.QCheckBox.checkStateSet": (),
- "PySide2.QtWidgets.QCheckBox.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QCheckBox.hitButton": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QCheckBox.initStyleOption": ('PySide2.QtWidgets.QStyleOptionButton',),
- "PySide2.QtWidgets.QCheckBox.isTristate": (),
- "PySide2.QtWidgets.QCheckBox.minimumSizeHint": (),
- "PySide2.QtWidgets.QCheckBox.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QCheckBox.nextCheckState": (),
- "PySide2.QtWidgets.QCheckBox.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QCheckBox.setCheckState": ('PySide2.QtCore.Qt.CheckState',),
- "PySide2.QtWidgets.QCheckBox.setTristate": ('bool',),
- "PySide2.QtWidgets.QCheckBox.sizeHint": (),
-# class PySide2.QtWidgets.QColorDialog:
-# class PySide2.QtWidgets.QColorDialog.ColorDialogOption:
-# class PySide2.QtWidgets.QColorDialog.ColorDialogOptions:
- "PySide2.QtWidgets.QColorDialog.__init__": [('PySide2.QtGui.QColor', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QColorDialog.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QColorDialog.currentColor": (),
- "PySide2.QtWidgets.QColorDialog.customColor": ('int',),
- "PySide2.QtWidgets.QColorDialog.customCount": (),
- "PySide2.QtWidgets.QColorDialog.done": ('int',),
- "PySide2.QtWidgets.QColorDialog.getColor": ('PySide2.QtGui.QColor', 'PySide2.QtWidgets.QWidget', 'str', 'PySide2.QtWidgets.QColorDialog.ColorDialogOptions'),
- "PySide2.QtWidgets.QColorDialog.open": [(), ('PySide2.QtCore.QObject', 'str')],
- "PySide2.QtWidgets.QColorDialog.options": (),
- "PySide2.QtWidgets.QColorDialog.selectedColor": (),
- "PySide2.QtWidgets.QColorDialog.setCurrentColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QColorDialog.setCustomColor": ('int', 'PySide2.QtGui.QColor'),
- "PySide2.QtWidgets.QColorDialog.setOption": ('PySide2.QtWidgets.QColorDialog.ColorDialogOption', 'bool'),
- "PySide2.QtWidgets.QColorDialog.setOptions": ('PySide2.QtWidgets.QColorDialog.ColorDialogOptions',),
- "PySide2.QtWidgets.QColorDialog.setStandardColor": ('int', 'PySide2.QtGui.QColor'),
- "PySide2.QtWidgets.QColorDialog.setVisible": ('bool',),
- "PySide2.QtWidgets.QColorDialog.standardColor": ('int',),
- "PySide2.QtWidgets.QColorDialog.testOption": ('PySide2.QtWidgets.QColorDialog.ColorDialogOption',),
-# class PySide2.QtWidgets.QColormap:
-# class PySide2.QtWidgets.QColormap.Mode:
- "PySide2.QtWidgets.QColormap.__init__": ('PySide2.QtWidgets.QColormap',),
- "PySide2.QtWidgets.QColormap.__copy__": (),
- "PySide2.QtWidgets.QColormap.cleanup": (),
- "PySide2.QtWidgets.QColormap.colorAt": ('int',),
- "PySide2.QtWidgets.QColormap.colormap": (),
- "PySide2.QtWidgets.QColormap.depth": (),
- "PySide2.QtWidgets.QColormap.initialize": (),
- "PySide2.QtWidgets.QColormap.instance": ('int',),
- "PySide2.QtWidgets.QColormap.mode": (),
- "PySide2.QtWidgets.QColormap.pixel": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QColormap.size": (),
-# class PySide2.QtWidgets.QColumnView:
- "PySide2.QtWidgets.QColumnView.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QColumnView.columnWidths": (),
- "PySide2.QtWidgets.QColumnView.createColumn": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QColumnView.currentChanged": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QColumnView.horizontalOffset": (),
- "PySide2.QtWidgets.QColumnView.indexAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QColumnView.initializeColumn": ('PySide2.QtWidgets.QAbstractItemView',),
- "PySide2.QtWidgets.QColumnView.isIndexHidden": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QColumnView.moveCursor": ('PySide2.QtWidgets.QAbstractItemView.CursorAction', 'PySide2.QtCore.Qt.KeyboardModifiers'),
- "PySide2.QtWidgets.QColumnView.previewWidget": (),
- "PySide2.QtWidgets.QColumnView.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QColumnView.resizeGripsVisible": (),
- "PySide2.QtWidgets.QColumnView.rowsInserted": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QColumnView.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QColumnView.scrollTo": ('PySide2.QtCore.QModelIndex', 'PySide2.QtWidgets.QAbstractItemView.ScrollHint'),
- "PySide2.QtWidgets.QColumnView.selectAll": (),
- "PySide2.QtWidgets.QColumnView.setColumnWidths": ('typing.Sequence[int]',),
- "PySide2.QtWidgets.QColumnView.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QColumnView.setPreviewWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QColumnView.setResizeGripsVisible": ('bool',),
- "PySide2.QtWidgets.QColumnView.setRootIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QColumnView.setSelection": ('PySide2.QtCore.QRect', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags'),
- "PySide2.QtWidgets.QColumnView.setSelectionModel": ('PySide2.QtCore.QItemSelectionModel',),
- "PySide2.QtWidgets.QColumnView.sizeHint": (),
- "PySide2.QtWidgets.QColumnView.verticalOffset": (),
- "PySide2.QtWidgets.QColumnView.visualRect": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QColumnView.visualRegionForSelection": ('PySide2.QtCore.QItemSelection',),
-# class PySide2.QtWidgets.QComboBox:
-# class PySide2.QtWidgets.QComboBox.InsertPolicy:
-# class PySide2.QtWidgets.QComboBox.SizeAdjustPolicy:
- "PySide2.QtWidgets.QComboBox.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QComboBox.addItem": [('PySide2.QtGui.QIcon', 'str', 'typing.Any'), ('str', 'typing.Any')],
- "PySide2.QtWidgets.QComboBox.addItems": ('typing.Sequence[str]',),
- "PySide2.QtWidgets.QComboBox.autoCompletion": (),
- "PySide2.QtWidgets.QComboBox.autoCompletionCaseSensitivity": (),
- "PySide2.QtWidgets.QComboBox.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QComboBox.clear": (),
- "PySide2.QtWidgets.QComboBox.clearEditText": (),
- "PySide2.QtWidgets.QComboBox.completer": (),
- "PySide2.QtWidgets.QComboBox.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QComboBox.count": (),
- "PySide2.QtWidgets.QComboBox.currentData": ('int',),
- "PySide2.QtWidgets.QComboBox.currentIndex": (),
- "PySide2.QtWidgets.QComboBox.currentText": (),
- "PySide2.QtWidgets.QComboBox.duplicatesEnabled": (),
- "PySide2.QtWidgets.QComboBox.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QComboBox.findData": ('typing.Any', 'int', 'PySide2.QtCore.Qt.MatchFlags'),
- "PySide2.QtWidgets.QComboBox.findText": ('str', 'PySide2.QtCore.Qt.MatchFlags'),
- "PySide2.QtWidgets.QComboBox.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QComboBox.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QComboBox.hasFrame": (),
- "PySide2.QtWidgets.QComboBox.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWidgets.QComboBox.hidePopup": (),
- "PySide2.QtWidgets.QComboBox.iconSize": (),
- "PySide2.QtWidgets.QComboBox.initStyleOption": ('PySide2.QtWidgets.QStyleOptionComboBox',),
- "PySide2.QtWidgets.QComboBox.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QComboBox.inputMethodQuery": [('PySide2.QtCore.Qt.InputMethodQuery',), ('PySide2.QtCore.Qt.InputMethodQuery', 'typing.Any')],
- "PySide2.QtWidgets.QComboBox.insertItem": [('int', 'PySide2.QtGui.QIcon', 'str', 'typing.Any'), ('int', 'str', 'typing.Any')],
- "PySide2.QtWidgets.QComboBox.insertItems": ('int', 'typing.Sequence[str]'),
- "PySide2.QtWidgets.QComboBox.insertPolicy": (),
- "PySide2.QtWidgets.QComboBox.insertSeparator": ('int',),
- "PySide2.QtWidgets.QComboBox.isEditable": (),
- "PySide2.QtWidgets.QComboBox.itemData": ('int', 'int'),
- "PySide2.QtWidgets.QComboBox.itemDelegate": (),
- "PySide2.QtWidgets.QComboBox.itemIcon": ('int',),
- "PySide2.QtWidgets.QComboBox.itemText": ('int',),
- "PySide2.QtWidgets.QComboBox.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QComboBox.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QComboBox.lineEdit": (),
- "PySide2.QtWidgets.QComboBox.maxCount": (),
- "PySide2.QtWidgets.QComboBox.maxVisibleItems": (),
- "PySide2.QtWidgets.QComboBox.minimumContentsLength": (),
- "PySide2.QtWidgets.QComboBox.minimumSizeHint": (),
- "PySide2.QtWidgets.QComboBox.model": (),
- "PySide2.QtWidgets.QComboBox.modelColumn": (),
- "PySide2.QtWidgets.QComboBox.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QComboBox.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QComboBox.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QComboBox.removeItem": ('int',),
- "PySide2.QtWidgets.QComboBox.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QComboBox.rootModelIndex": (),
- "PySide2.QtWidgets.QComboBox.setAutoCompletion": ('bool',),
- "PySide2.QtWidgets.QComboBox.setAutoCompletionCaseSensitivity": ('PySide2.QtCore.Qt.CaseSensitivity',),
- "PySide2.QtWidgets.QComboBox.setCompleter": ('PySide2.QtWidgets.QCompleter',),
- "PySide2.QtWidgets.QComboBox.setCurrentIndex": ('int',),
- "PySide2.QtWidgets.QComboBox.setCurrentText": ('str',),
- "PySide2.QtWidgets.QComboBox.setDuplicatesEnabled": ('bool',),
- "PySide2.QtWidgets.QComboBox.setEditText": ('str',),
- "PySide2.QtWidgets.QComboBox.setEditable": ('bool',),
- "PySide2.QtWidgets.QComboBox.setFrame": ('bool',),
- "PySide2.QtWidgets.QComboBox.setIconSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QComboBox.setInsertPolicy": ('PySide2.QtWidgets.QComboBox.InsertPolicy',),
- "PySide2.QtWidgets.QComboBox.setItemData": ('int', 'typing.Any', 'int'),
- "PySide2.QtWidgets.QComboBox.setItemDelegate": ('PySide2.QtWidgets.QAbstractItemDelegate',),
- "PySide2.QtWidgets.QComboBox.setItemIcon": ('int', 'PySide2.QtGui.QIcon'),
- "PySide2.QtWidgets.QComboBox.setItemText": ('int', 'str'),
- "PySide2.QtWidgets.QComboBox.setLineEdit": ('PySide2.QtWidgets.QLineEdit',),
- "PySide2.QtWidgets.QComboBox.setMaxCount": ('int',),
- "PySide2.QtWidgets.QComboBox.setMaxVisibleItems": ('int',),
- "PySide2.QtWidgets.QComboBox.setMinimumContentsLength": ('int',),
- "PySide2.QtWidgets.QComboBox.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QComboBox.setModelColumn": ('int',),
- "PySide2.QtWidgets.QComboBox.setRootModelIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QComboBox.setSizeAdjustPolicy": ('PySide2.QtWidgets.QComboBox.SizeAdjustPolicy',),
- "PySide2.QtWidgets.QComboBox.setValidator": ('PySide2.QtGui.QValidator',),
- "PySide2.QtWidgets.QComboBox.setView": ('PySide2.QtWidgets.QAbstractItemView',),
- "PySide2.QtWidgets.QComboBox.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QComboBox.showPopup": (),
- "PySide2.QtWidgets.QComboBox.sizeAdjustPolicy": (),
- "PySide2.QtWidgets.QComboBox.sizeHint": (),
- "PySide2.QtWidgets.QComboBox.validator": (),
- "PySide2.QtWidgets.QComboBox.view": (),
- "PySide2.QtWidgets.QComboBox.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtWidgets.QCommandLinkButton:
- "PySide2.QtWidgets.QCommandLinkButton.__init__": [('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget'), ('str', 'str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QCommandLinkButton.description": (),
- "PySide2.QtWidgets.QCommandLinkButton.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QCommandLinkButton.heightForWidth": ('int',),
- "PySide2.QtWidgets.QCommandLinkButton.minimumSizeHint": (),
- "PySide2.QtWidgets.QCommandLinkButton.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QCommandLinkButton.setDescription": ('str',),
- "PySide2.QtWidgets.QCommandLinkButton.sizeHint": (),
-# class PySide2.QtWidgets.QCommonStyle:
- "PySide2.QtWidgets.QCommonStyle.__init__": (),
- "PySide2.QtWidgets.QCommonStyle.drawComplexControl": ('PySide2.QtWidgets.QStyle.ComplexControl', 'PySide2.QtWidgets.QStyleOptionComplex', 'PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.drawControl": ('PySide2.QtWidgets.QStyle.ControlElement', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.drawPrimitive": ('PySide2.QtWidgets.QStyle.PrimitiveElement', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.generatedIconPixmap": ('PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QPixmap', 'PySide2.QtWidgets.QStyleOption'),
- "PySide2.QtWidgets.QCommonStyle.hitTestComplexControl": ('PySide2.QtWidgets.QStyle.ComplexControl', 'PySide2.QtWidgets.QStyleOptionComplex', 'PySide2.QtCore.QPoint', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.layoutSpacing": ('PySide2.QtWidgets.QSizePolicy.ControlType', 'PySide2.QtWidgets.QSizePolicy.ControlType', 'PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.pixelMetric": ('PySide2.QtWidgets.QStyle.PixelMetric', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.polish": [('PySide2.QtGui.QPalette',), ('PySide2.QtWidgets.QApplication',), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QCommonStyle.sizeFromContents": ('PySide2.QtWidgets.QStyle.ContentsType', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtCore.QSize', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.standardIcon": ('PySide2.QtWidgets.QStyle.StandardPixmap', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.standardPixmap": ('PySide2.QtWidgets.QStyle.StandardPixmap', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.styleHint": ('PySide2.QtWidgets.QStyle.StyleHint', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QStyleHintReturn'),
- "PySide2.QtWidgets.QCommonStyle.subControlRect": ('PySide2.QtWidgets.QStyle.ComplexControl', 'PySide2.QtWidgets.QStyleOptionComplex', 'PySide2.QtWidgets.QStyle.SubControl', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.subElementRect": ('PySide2.QtWidgets.QStyle.SubElement', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.unpolish": [('PySide2.QtWidgets.QApplication',), ('PySide2.QtWidgets.QWidget',)],
-# class PySide2.QtWidgets.QCompleter:
-# class PySide2.QtWidgets.QCompleter.CompletionMode:
-# class PySide2.QtWidgets.QCompleter.ModelSorting:
- "PySide2.QtWidgets.QCompleter.__init__": [('PySide2.QtCore.QAbstractItemModel', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QObject',), ('typing.Sequence[str]', 'PySide2.QtCore.QObject')],
- "PySide2.QtWidgets.QCompleter.caseSensitivity": (),
- "PySide2.QtWidgets.QCompleter.complete": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QCompleter.completionColumn": (),
- "PySide2.QtWidgets.QCompleter.completionCount": (),
- "PySide2.QtWidgets.QCompleter.completionMode": (),
- "PySide2.QtWidgets.QCompleter.completionModel": (),
- "PySide2.QtWidgets.QCompleter.completionPrefix": (),
- "PySide2.QtWidgets.QCompleter.completionRole": (),
- "PySide2.QtWidgets.QCompleter.currentCompletion": (),
- "PySide2.QtWidgets.QCompleter.currentIndex": (),
- "PySide2.QtWidgets.QCompleter.currentRow": (),
- "PySide2.QtWidgets.QCompleter.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QCompleter.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QCompleter.filterMode": (),
- "PySide2.QtWidgets.QCompleter.maxVisibleItems": (),
- "PySide2.QtWidgets.QCompleter.model": (),
- "PySide2.QtWidgets.QCompleter.modelSorting": (),
- "PySide2.QtWidgets.QCompleter.pathFromIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QCompleter.popup": (),
- "PySide2.QtWidgets.QCompleter.setCaseSensitivity": ('PySide2.QtCore.Qt.CaseSensitivity',),
- "PySide2.QtWidgets.QCompleter.setCompletionColumn": ('int',),
- "PySide2.QtWidgets.QCompleter.setCompletionMode": ('PySide2.QtWidgets.QCompleter.CompletionMode',),
- "PySide2.QtWidgets.QCompleter.setCompletionPrefix": ('str',),
- "PySide2.QtWidgets.QCompleter.setCompletionRole": ('int',),
- "PySide2.QtWidgets.QCompleter.setCurrentRow": ('int',),
- "PySide2.QtWidgets.QCompleter.setFilterMode": ('PySide2.QtCore.Qt.MatchFlags',),
- "PySide2.QtWidgets.QCompleter.setMaxVisibleItems": ('int',),
- "PySide2.QtWidgets.QCompleter.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QCompleter.setModelSorting": ('PySide2.QtWidgets.QCompleter.ModelSorting',),
- "PySide2.QtWidgets.QCompleter.setPopup": ('PySide2.QtWidgets.QAbstractItemView',),
- "PySide2.QtWidgets.QCompleter.setWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QCompleter.setWrapAround": ('bool',),
- "PySide2.QtWidgets.QCompleter.splitPath": ('str',),
- "PySide2.QtWidgets.QCompleter.widget": (),
- "PySide2.QtWidgets.QCompleter.wrapAround": (),
-# class PySide2.QtWidgets.QDataWidgetMapper:
-# class PySide2.QtWidgets.QDataWidgetMapper.SubmitPolicy:
- "PySide2.QtWidgets.QDataWidgetMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QDataWidgetMapper.addMapping": [('PySide2.QtWidgets.QWidget', 'int'), ('PySide2.QtWidgets.QWidget', 'int', 'PySide2.QtCore.QByteArray')],
- "PySide2.QtWidgets.QDataWidgetMapper.clearMapping": (),
- "PySide2.QtWidgets.QDataWidgetMapper.currentIndex": (),
- "PySide2.QtWidgets.QDataWidgetMapper.itemDelegate": (),
- "PySide2.QtWidgets.QDataWidgetMapper.mappedPropertyName": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QDataWidgetMapper.mappedSection": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QDataWidgetMapper.mappedWidgetAt": ('int',),
- "PySide2.QtWidgets.QDataWidgetMapper.model": (),
- "PySide2.QtWidgets.QDataWidgetMapper.orientation": (),
- "PySide2.QtWidgets.QDataWidgetMapper.removeMapping": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QDataWidgetMapper.revert": (),
- "PySide2.QtWidgets.QDataWidgetMapper.rootIndex": (),
- "PySide2.QtWidgets.QDataWidgetMapper.setCurrentIndex": ('int',),
- "PySide2.QtWidgets.QDataWidgetMapper.setCurrentModelIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDataWidgetMapper.setItemDelegate": ('PySide2.QtWidgets.QAbstractItemDelegate',),
- "PySide2.QtWidgets.QDataWidgetMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QDataWidgetMapper.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtWidgets.QDataWidgetMapper.setRootIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDataWidgetMapper.setSubmitPolicy": ('PySide2.QtWidgets.QDataWidgetMapper.SubmitPolicy',),
- "PySide2.QtWidgets.QDataWidgetMapper.submit": (),
- "PySide2.QtWidgets.QDataWidgetMapper.submitPolicy": (),
- "PySide2.QtWidgets.QDataWidgetMapper.toFirst": (),
- "PySide2.QtWidgets.QDataWidgetMapper.toLast": (),
- "PySide2.QtWidgets.QDataWidgetMapper.toNext": (),
- "PySide2.QtWidgets.QDataWidgetMapper.toPrevious": (),
-# class PySide2.QtWidgets.QDateEdit:
- "PySide2.QtWidgets.QDateEdit.__init__": [('PySide2.QtCore.QDate', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
-# class PySide2.QtWidgets.QDateTimeEdit:
-# class PySide2.QtWidgets.QDateTimeEdit.Section:
-# class PySide2.QtWidgets.QDateTimeEdit.Sections:
- "PySide2.QtWidgets.QDateTimeEdit.__init__": [('PySide2.QtCore.QDate', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtCore.QDateTime', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtCore.QTime', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',), ('typing.Any', 'type', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QDateTimeEdit.calendar": (),
- "PySide2.QtWidgets.QDateTimeEdit.calendarPopup": (),
- "PySide2.QtWidgets.QDateTimeEdit.calendarWidget": (),
- "PySide2.QtWidgets.QDateTimeEdit.clear": (),
- "PySide2.QtWidgets.QDateTimeEdit.clearMaximumDate": (),
- "PySide2.QtWidgets.QDateTimeEdit.clearMaximumDateTime": (),
- "PySide2.QtWidgets.QDateTimeEdit.clearMaximumTime": (),
- "PySide2.QtWidgets.QDateTimeEdit.clearMinimumDate": (),
- "PySide2.QtWidgets.QDateTimeEdit.clearMinimumDateTime": (),
- "PySide2.QtWidgets.QDateTimeEdit.clearMinimumTime": (),
- "PySide2.QtWidgets.QDateTimeEdit.currentSection": (),
- "PySide2.QtWidgets.QDateTimeEdit.currentSectionIndex": (),
- "PySide2.QtWidgets.QDateTimeEdit.date": (),
- "PySide2.QtWidgets.QDateTimeEdit.dateTime": (),
- "PySide2.QtWidgets.QDateTimeEdit.dateTimeFromText": ('str',),
- "PySide2.QtWidgets.QDateTimeEdit.displayFormat": (),
- "PySide2.QtWidgets.QDateTimeEdit.displayedSections": (),
- "PySide2.QtWidgets.QDateTimeEdit.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QDateTimeEdit.fixup": ('str',),
- "PySide2.QtWidgets.QDateTimeEdit.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QDateTimeEdit.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QDateTimeEdit.initStyleOption": ('PySide2.QtWidgets.QStyleOptionSpinBox',),
- "PySide2.QtWidgets.QDateTimeEdit.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QDateTimeEdit.maximumDate": (),
- "PySide2.QtWidgets.QDateTimeEdit.maximumDateTime": (),
- "PySide2.QtWidgets.QDateTimeEdit.maximumTime": (),
- "PySide2.QtWidgets.QDateTimeEdit.minimumDate": (),
- "PySide2.QtWidgets.QDateTimeEdit.minimumDateTime": (),
- "PySide2.QtWidgets.QDateTimeEdit.minimumTime": (),
- "PySide2.QtWidgets.QDateTimeEdit.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QDateTimeEdit.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QDateTimeEdit.sectionAt": ('int',),
- "PySide2.QtWidgets.QDateTimeEdit.sectionCount": (),
- "PySide2.QtWidgets.QDateTimeEdit.sectionText": ('PySide2.QtWidgets.QDateTimeEdit.Section',),
- "PySide2.QtWidgets.QDateTimeEdit.setCalendar": ('PySide2.QtCore.QCalendar',),
- "PySide2.QtWidgets.QDateTimeEdit.setCalendarPopup": ('bool',),
- "PySide2.QtWidgets.QDateTimeEdit.setCalendarWidget": ('PySide2.QtWidgets.QCalendarWidget',),
- "PySide2.QtWidgets.QDateTimeEdit.setCurrentSection": ('PySide2.QtWidgets.QDateTimeEdit.Section',),
- "PySide2.QtWidgets.QDateTimeEdit.setCurrentSectionIndex": ('int',),
- "PySide2.QtWidgets.QDateTimeEdit.setDate": ('PySide2.QtCore.QDate',),
- "PySide2.QtWidgets.QDateTimeEdit.setDateRange": ('PySide2.QtCore.QDate', 'PySide2.QtCore.QDate'),
- "PySide2.QtWidgets.QDateTimeEdit.setDateTime": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtWidgets.QDateTimeEdit.setDateTimeRange": ('PySide2.QtCore.QDateTime', 'PySide2.QtCore.QDateTime'),
- "PySide2.QtWidgets.QDateTimeEdit.setDisplayFormat": ('str',),
- "PySide2.QtWidgets.QDateTimeEdit.setMaximumDate": ('PySide2.QtCore.QDate',),
- "PySide2.QtWidgets.QDateTimeEdit.setMaximumDateTime": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtWidgets.QDateTimeEdit.setMaximumTime": ('PySide2.QtCore.QTime',),
- "PySide2.QtWidgets.QDateTimeEdit.setMinimumDate": ('PySide2.QtCore.QDate',),
- "PySide2.QtWidgets.QDateTimeEdit.setMinimumDateTime": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtWidgets.QDateTimeEdit.setMinimumTime": ('PySide2.QtCore.QTime',),
- "PySide2.QtWidgets.QDateTimeEdit.setSelectedSection": ('PySide2.QtWidgets.QDateTimeEdit.Section',),
- "PySide2.QtWidgets.QDateTimeEdit.setTime": ('PySide2.QtCore.QTime',),
- "PySide2.QtWidgets.QDateTimeEdit.setTimeRange": ('PySide2.QtCore.QTime', 'PySide2.QtCore.QTime'),
- "PySide2.QtWidgets.QDateTimeEdit.setTimeSpec": ('PySide2.QtCore.Qt.TimeSpec',),
- "PySide2.QtWidgets.QDateTimeEdit.sizeHint": (),
- "PySide2.QtWidgets.QDateTimeEdit.stepBy": ('int',),
- "PySide2.QtWidgets.QDateTimeEdit.stepEnabled": (),
- "PySide2.QtWidgets.QDateTimeEdit.textFromDateTime": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtWidgets.QDateTimeEdit.time": (),
- "PySide2.QtWidgets.QDateTimeEdit.timeSpec": (),
- "PySide2.QtWidgets.QDateTimeEdit.validate": ('str', 'int'),
- "PySide2.QtWidgets.QDateTimeEdit.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtWidgets.QDesktopWidget:
- "PySide2.QtWidgets.QDesktopWidget.__init__": (),
- "PySide2.QtWidgets.QDesktopWidget.availableGeometry": [('PySide2.QtCore.QPoint',), ('PySide2.QtWidgets.QWidget',), ('int',)],
- "PySide2.QtWidgets.QDesktopWidget.isVirtualDesktop": (),
- "PySide2.QtWidgets.QDesktopWidget.numScreens": (),
- "PySide2.QtWidgets.QDesktopWidget.primaryScreen": (),
- "PySide2.QtWidgets.QDesktopWidget.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QDesktopWidget.screen": [(), ('int',)],
- "PySide2.QtWidgets.QDesktopWidget.screenCount": (),
- "PySide2.QtWidgets.QDesktopWidget.screenGeometry": [('PySide2.QtCore.QPoint',), ('PySide2.QtWidgets.QWidget',), ('int',)],
- "PySide2.QtWidgets.QDesktopWidget.screenNumber": [('PySide2.QtCore.QPoint',), ('PySide2.QtWidgets.QWidget',)],
-# class PySide2.QtWidgets.QDial:
- "PySide2.QtWidgets.QDial.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QDial.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QDial.initStyleOption": ('PySide2.QtWidgets.QStyleOptionSlider',),
- "PySide2.QtWidgets.QDial.minimumSizeHint": (),
- "PySide2.QtWidgets.QDial.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QDial.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QDial.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QDial.notchSize": (),
- "PySide2.QtWidgets.QDial.notchTarget": (),
- "PySide2.QtWidgets.QDial.notchesVisible": (),
- "PySide2.QtWidgets.QDial.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QDial.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QDial.setNotchTarget": ('float',),
- "PySide2.QtWidgets.QDial.setNotchesVisible": ('bool',),
- "PySide2.QtWidgets.QDial.setWrapping": ('bool',),
- "PySide2.QtWidgets.QDial.sizeHint": (),
- "PySide2.QtWidgets.QDial.sliderChange": ('PySide2.QtWidgets.QAbstractSlider.SliderChange',),
- "PySide2.QtWidgets.QDial.wrapping": (),
-# class PySide2.QtWidgets.QDialog:
-# class PySide2.QtWidgets.QDialog.DialogCode:
- "PySide2.QtWidgets.QDialog.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QDialog.accept": (),
- "PySide2.QtWidgets.QDialog.adjustPosition": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QDialog.closeEvent": ('PySide2.QtGui.QCloseEvent',),
- "PySide2.QtWidgets.QDialog.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QDialog.done": ('int',),
- "PySide2.QtWidgets.QDialog.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QDialog.exec_": (),
- "PySide2.QtWidgets.QDialog.extension": (),
- "PySide2.QtWidgets.QDialog.isSizeGripEnabled": (),
- "PySide2.QtWidgets.QDialog.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QDialog.minimumSizeHint": (),
- "PySide2.QtWidgets.QDialog.open": (),
- "PySide2.QtWidgets.QDialog.orientation": (),
- "PySide2.QtWidgets.QDialog.reject": (),
- "PySide2.QtWidgets.QDialog.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QDialog.result": (),
- "PySide2.QtWidgets.QDialog.setExtension": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QDialog.setModal": ('bool',),
- "PySide2.QtWidgets.QDialog.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtWidgets.QDialog.setResult": ('int',),
- "PySide2.QtWidgets.QDialog.setSizeGripEnabled": ('bool',),
- "PySide2.QtWidgets.QDialog.setVisible": ('bool',),
- "PySide2.QtWidgets.QDialog.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QDialog.showExtension": ('bool',),
- "PySide2.QtWidgets.QDialog.sizeHint": (),
-# class PySide2.QtWidgets.QDialogButtonBox:
-# class PySide2.QtWidgets.QDialogButtonBox.ButtonLayout:
-# class PySide2.QtWidgets.QDialogButtonBox.ButtonRole:
-# class PySide2.QtWidgets.QDialogButtonBox.StandardButton:
-# class PySide2.QtWidgets.QDialogButtonBox.StandardButtons:
- "PySide2.QtWidgets.QDialogButtonBox.__init__": [('PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QDialogButtonBox.StandardButtons', 'PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QDialogButtonBox.StandardButtons', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QDialogButtonBox.addButton": [('PySide2.QtWidgets.QAbstractButton', 'PySide2.QtWidgets.QDialogButtonBox.ButtonRole'), ('PySide2.QtWidgets.QDialogButtonBox.StandardButton',), ('str', 'PySide2.QtWidgets.QDialogButtonBox.ButtonRole')],
- "PySide2.QtWidgets.QDialogButtonBox.button": ('PySide2.QtWidgets.QDialogButtonBox.StandardButton',),
- "PySide2.QtWidgets.QDialogButtonBox.buttonRole": ('PySide2.QtWidgets.QAbstractButton',),
- "PySide2.QtWidgets.QDialogButtonBox.buttons": (),
- "PySide2.QtWidgets.QDialogButtonBox.centerButtons": (),
- "PySide2.QtWidgets.QDialogButtonBox.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QDialogButtonBox.clear": (),
- "PySide2.QtWidgets.QDialogButtonBox.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QDialogButtonBox.orientation": (),
- "PySide2.QtWidgets.QDialogButtonBox.removeButton": ('PySide2.QtWidgets.QAbstractButton',),
- "PySide2.QtWidgets.QDialogButtonBox.setCenterButtons": ('bool',),
- "PySide2.QtWidgets.QDialogButtonBox.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtWidgets.QDialogButtonBox.setStandardButtons": ('PySide2.QtWidgets.QDialogButtonBox.StandardButtons',),
- "PySide2.QtWidgets.QDialogButtonBox.standardButton": ('PySide2.QtWidgets.QAbstractButton',),
- "PySide2.QtWidgets.QDialogButtonBox.standardButtons": (),
-# class PySide2.QtWidgets.QDirModel:
-# class PySide2.QtWidgets.QDirModel.Roles:
- "PySide2.QtWidgets.QDirModel.__init__": [('PySide2.QtCore.QObject',), ('typing.Sequence[str]', 'PySide2.QtCore.QDir.Filters', 'PySide2.QtCore.QDir.SortFlags', 'PySide2.QtCore.QObject')],
- "PySide2.QtWidgets.QDirModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtWidgets.QDirModel.dropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QDirModel.fileIcon": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.fileInfo": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.fileName": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.filePath": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.filter": (),
- "PySide2.QtWidgets.QDirModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.hasChildren": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtWidgets.QDirModel.iconProvider": (),
- "PySide2.QtWidgets.QDirModel.index": [('int', 'int', 'PySide2.QtCore.QModelIndex'), ('str', 'int')],
- "PySide2.QtWidgets.QDirModel.isDir": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.isReadOnly": (),
- "PySide2.QtWidgets.QDirModel.lazyChildCount": (),
- "PySide2.QtWidgets.QDirModel.mimeData": ('typing.List[int]',),
- "PySide2.QtWidgets.QDirModel.mimeTypes": (),
- "PySide2.QtWidgets.QDirModel.mkdir": ('PySide2.QtCore.QModelIndex', 'str'),
- "PySide2.QtWidgets.QDirModel.nameFilters": (),
- "PySide2.QtWidgets.QDirModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtWidgets.QDirModel.refresh": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.remove": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.resolveSymlinks": (),
- "PySide2.QtWidgets.QDirModel.rmdir": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
- "PySide2.QtWidgets.QDirModel.setFilter": ('PySide2.QtCore.QDir.Filters',),
- "PySide2.QtWidgets.QDirModel.setIconProvider": ('PySide2.QtWidgets.QFileIconProvider',),
- "PySide2.QtWidgets.QDirModel.setLazyChildCount": ('bool',),
- "PySide2.QtWidgets.QDirModel.setNameFilters": ('typing.Sequence[str]',),
- "PySide2.QtWidgets.QDirModel.setReadOnly": ('bool',),
- "PySide2.QtWidgets.QDirModel.setResolveSymlinks": ('bool',),
- "PySide2.QtWidgets.QDirModel.setSorting": ('PySide2.QtCore.QDir.SortFlags',),
- "PySide2.QtWidgets.QDirModel.sort": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtWidgets.QDirModel.sorting": (),
- "PySide2.QtWidgets.QDirModel.supportedDropActions": (),
-# class PySide2.QtWidgets.QDockWidget:
-# class PySide2.QtWidgets.QDockWidget.DockWidgetFeature:
-# class PySide2.QtWidgets.QDockWidget.DockWidgetFeatures:
- "PySide2.QtWidgets.QDockWidget.__init__": [('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'), ('str', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags')],
- "PySide2.QtWidgets.QDockWidget.allowedAreas": (),
- "PySide2.QtWidgets.QDockWidget.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QDockWidget.closeEvent": ('PySide2.QtGui.QCloseEvent',),
- "PySide2.QtWidgets.QDockWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QDockWidget.features": (),
- "PySide2.QtWidgets.QDockWidget.initStyleOption": ('PySide2.QtWidgets.QStyleOptionDockWidget',),
- "PySide2.QtWidgets.QDockWidget.isAreaAllowed": ('PySide2.QtCore.Qt.DockWidgetArea',),
- "PySide2.QtWidgets.QDockWidget.isFloating": (),
- "PySide2.QtWidgets.QDockWidget.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QDockWidget.setAllowedAreas": ('PySide2.QtCore.Qt.DockWidgetAreas',),
- "PySide2.QtWidgets.QDockWidget.setFeatures": ('PySide2.QtWidgets.QDockWidget.DockWidgetFeatures',),
- "PySide2.QtWidgets.QDockWidget.setFloating": ('bool',),
- "PySide2.QtWidgets.QDockWidget.setTitleBarWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QDockWidget.setWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QDockWidget.titleBarWidget": (),
- "PySide2.QtWidgets.QDockWidget.toggleViewAction": (),
- "PySide2.QtWidgets.QDockWidget.widget": (),
-# class PySide2.QtWidgets.QDoubleSpinBox:
- "PySide2.QtWidgets.QDoubleSpinBox.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QDoubleSpinBox.cleanText": (),
- "PySide2.QtWidgets.QDoubleSpinBox.decimals": (),
- "PySide2.QtWidgets.QDoubleSpinBox.fixup": ('str',),
- "PySide2.QtWidgets.QDoubleSpinBox.maximum": (),
- "PySide2.QtWidgets.QDoubleSpinBox.minimum": (),
- "PySide2.QtWidgets.QDoubleSpinBox.prefix": (),
- "PySide2.QtWidgets.QDoubleSpinBox.setDecimals": ('int',),
- "PySide2.QtWidgets.QDoubleSpinBox.setMaximum": ('float',),
- "PySide2.QtWidgets.QDoubleSpinBox.setMinimum": ('float',),
- "PySide2.QtWidgets.QDoubleSpinBox.setPrefix": ('str',),
- "PySide2.QtWidgets.QDoubleSpinBox.setRange": ('float', 'float'),
- "PySide2.QtWidgets.QDoubleSpinBox.setSingleStep": ('float',),
- "PySide2.QtWidgets.QDoubleSpinBox.setStepType": ('PySide2.QtWidgets.QAbstractSpinBox.StepType',),
- "PySide2.QtWidgets.QDoubleSpinBox.setSuffix": ('str',),
- "PySide2.QtWidgets.QDoubleSpinBox.setValue": ('float',),
- "PySide2.QtWidgets.QDoubleSpinBox.singleStep": (),
- "PySide2.QtWidgets.QDoubleSpinBox.stepType": (),
- "PySide2.QtWidgets.QDoubleSpinBox.suffix": (),
- "PySide2.QtWidgets.QDoubleSpinBox.textFromValue": ('float',),
- "PySide2.QtWidgets.QDoubleSpinBox.validate": ('str', 'int'),
- "PySide2.QtWidgets.QDoubleSpinBox.value": (),
- "PySide2.QtWidgets.QDoubleSpinBox.valueFromText": ('str',),
-# class PySide2.QtWidgets.QErrorMessage:
- "PySide2.QtWidgets.QErrorMessage.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QErrorMessage.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QErrorMessage.done": ('int',),
- "PySide2.QtWidgets.QErrorMessage.qtHandler": (),
- "PySide2.QtWidgets.QErrorMessage.showMessage": [('str',), ('str', 'str')],
-# class PySide2.QtWidgets.QFileDialog:
-# class PySide2.QtWidgets.QFileDialog.AcceptMode:
-# class PySide2.QtWidgets.QFileDialog.DialogLabel:
-# class PySide2.QtWidgets.QFileDialog.FileMode:
-# class PySide2.QtWidgets.QFileDialog.Option:
-# class PySide2.QtWidgets.QFileDialog.Options:
-# class PySide2.QtWidgets.QFileDialog.ViewMode:
- "PySide2.QtWidgets.QFileDialog.__init__": [('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'), ('PySide2.QtWidgets.QWidget', 'str', 'str', 'str')],
- "PySide2.QtWidgets.QFileDialog.accept": (),
- "PySide2.QtWidgets.QFileDialog.acceptMode": (),
- "PySide2.QtWidgets.QFileDialog.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QFileDialog.confirmOverwrite": (),
- "PySide2.QtWidgets.QFileDialog.defaultSuffix": (),
- "PySide2.QtWidgets.QFileDialog.directory": (),
- "PySide2.QtWidgets.QFileDialog.directoryUrl": (),
- "PySide2.QtWidgets.QFileDialog.done": ('int',),
- "PySide2.QtWidgets.QFileDialog.fileMode": (),
- "PySide2.QtWidgets.QFileDialog.filter": (),
- "PySide2.QtWidgets.QFileDialog.getExistingDirectory": ('PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtWidgets.QFileDialog.Options'),
- "PySide2.QtWidgets.QFileDialog.getExistingDirectoryUrl": ('PySide2.QtWidgets.QWidget', 'str', 'PySide2.QtCore.QUrl', 'PySide2.QtWidgets.QFileDialog.Options', 'typing.Sequence[str]'),
- "PySide2.QtWidgets.QFileDialog.getOpenFileName": ('PySide2.QtWidgets.QWidget', 'str', 'str', 'str', 'PySide2.QtWidgets.QFileDialog.Options'),
- "PySide2.QtWidgets.QFileDialog.getOpenFileNames": ('PySide2.QtWidgets.QWidget', 'str', 'str', 'str', 'PySide2.QtWidgets.QFileDialog.Options'),
- "PySide2.QtWidgets.QFileDialog.getOpenFileUrl": ('PySide2.QtWidgets.QWidget', 'str', 'PySide2.QtCore.QUrl', 'str', 'PySide2.QtWidgets.QFileDialog.Options', 'typing.Sequence[str]'),
- "PySide2.QtWidgets.QFileDialog.getOpenFileUrls": ('PySide2.QtWidgets.QWidget', 'str', 'PySide2.QtCore.QUrl', 'str', 'PySide2.QtWidgets.QFileDialog.Options', 'typing.Sequence[str]'),
- "PySide2.QtWidgets.QFileDialog.getSaveFileName": ('PySide2.QtWidgets.QWidget', 'str', 'str', 'str', 'PySide2.QtWidgets.QFileDialog.Options'),
- "PySide2.QtWidgets.QFileDialog.getSaveFileUrl": ('PySide2.QtWidgets.QWidget', 'str', 'PySide2.QtCore.QUrl', 'str', 'PySide2.QtWidgets.QFileDialog.Options', 'typing.Sequence[str]'),
- "PySide2.QtWidgets.QFileDialog.history": (),
- "PySide2.QtWidgets.QFileDialog.iconProvider": (),
- "PySide2.QtWidgets.QFileDialog.isNameFilterDetailsVisible": (),
- "PySide2.QtWidgets.QFileDialog.isReadOnly": (),
- "PySide2.QtWidgets.QFileDialog.itemDelegate": (),
- "PySide2.QtWidgets.QFileDialog.labelText": ('PySide2.QtWidgets.QFileDialog.DialogLabel',),
- "PySide2.QtWidgets.QFileDialog.mimeTypeFilters": (),
- "PySide2.QtWidgets.QFileDialog.nameFilters": (),
- "PySide2.QtWidgets.QFileDialog.open": [(), ('PySide2.QtCore.QObject', 'str')],
- "PySide2.QtWidgets.QFileDialog.options": (),
- "PySide2.QtWidgets.QFileDialog.proxyModel": (),
- "PySide2.QtWidgets.QFileDialog.resolveSymlinks": (),
- "PySide2.QtWidgets.QFileDialog.restoreState": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWidgets.QFileDialog.saveFileContent": ('PySide2.QtCore.QByteArray', 'str'),
- "PySide2.QtWidgets.QFileDialog.saveState": (),
- "PySide2.QtWidgets.QFileDialog.selectFile": ('str',),
- "PySide2.QtWidgets.QFileDialog.selectMimeTypeFilter": ('str',),
- "PySide2.QtWidgets.QFileDialog.selectNameFilter": ('str',),
- "PySide2.QtWidgets.QFileDialog.selectUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtWidgets.QFileDialog.selectedFiles": (),
- "PySide2.QtWidgets.QFileDialog.selectedMimeTypeFilter": (),
- "PySide2.QtWidgets.QFileDialog.selectedNameFilter": (),
- "PySide2.QtWidgets.QFileDialog.selectedUrls": (),
- "PySide2.QtWidgets.QFileDialog.setAcceptMode": ('PySide2.QtWidgets.QFileDialog.AcceptMode',),
- "PySide2.QtWidgets.QFileDialog.setConfirmOverwrite": ('bool',),
- "PySide2.QtWidgets.QFileDialog.setDefaultSuffix": ('str',),
- "PySide2.QtWidgets.QFileDialog.setDirectory": [('PySide2.QtCore.QDir',), ('str',)],
- "PySide2.QtWidgets.QFileDialog.setDirectoryUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtWidgets.QFileDialog.setFileMode": ('PySide2.QtWidgets.QFileDialog.FileMode',),
- "PySide2.QtWidgets.QFileDialog.setFilter": ('PySide2.QtCore.QDir.Filters',),
- "PySide2.QtWidgets.QFileDialog.setHistory": ('typing.Sequence[str]',),
- "PySide2.QtWidgets.QFileDialog.setIconProvider": ('PySide2.QtWidgets.QFileIconProvider',),
- "PySide2.QtWidgets.QFileDialog.setItemDelegate": ('PySide2.QtWidgets.QAbstractItemDelegate',),
- "PySide2.QtWidgets.QFileDialog.setLabelText": ('PySide2.QtWidgets.QFileDialog.DialogLabel', 'str'),
- "PySide2.QtWidgets.QFileDialog.setMimeTypeFilters": ('typing.Sequence[str]',),
- "PySide2.QtWidgets.QFileDialog.setNameFilter": ('str',),
- "PySide2.QtWidgets.QFileDialog.setNameFilterDetailsVisible": ('bool',),
- "PySide2.QtWidgets.QFileDialog.setNameFilters": ('typing.Sequence[str]',),
- "PySide2.QtWidgets.QFileDialog.setOption": ('PySide2.QtWidgets.QFileDialog.Option', 'bool'),
- "PySide2.QtWidgets.QFileDialog.setOptions": ('PySide2.QtWidgets.QFileDialog.Options',),
- "PySide2.QtWidgets.QFileDialog.setProxyModel": ('PySide2.QtCore.QAbstractProxyModel',),
- "PySide2.QtWidgets.QFileDialog.setReadOnly": ('bool',),
- "PySide2.QtWidgets.QFileDialog.setResolveSymlinks": ('bool',),
- "PySide2.QtWidgets.QFileDialog.setSidebarUrls": ('typing.Sequence[PySide2.QtCore.QUrl]',),
- "PySide2.QtWidgets.QFileDialog.setSupportedSchemes": ('typing.Sequence[str]',),
- "PySide2.QtWidgets.QFileDialog.setViewMode": ('PySide2.QtWidgets.QFileDialog.ViewMode',),
- "PySide2.QtWidgets.QFileDialog.setVisible": ('bool',),
- "PySide2.QtWidgets.QFileDialog.sidebarUrls": (),
- "PySide2.QtWidgets.QFileDialog.supportedSchemes": (),
- "PySide2.QtWidgets.QFileDialog.testOption": ('PySide2.QtWidgets.QFileDialog.Option',),
- "PySide2.QtWidgets.QFileDialog.viewMode": (),
-# class PySide2.QtWidgets.QFileIconProvider:
-# class PySide2.QtWidgets.QFileIconProvider.IconType:
-# class PySide2.QtWidgets.QFileIconProvider.Option:
-# class PySide2.QtWidgets.QFileIconProvider.Options:
- "PySide2.QtWidgets.QFileIconProvider.__init__": (),
- "PySide2.QtWidgets.QFileIconProvider.icon": [('PySide2.QtCore.QFileInfo',), ('PySide2.QtWidgets.QFileIconProvider.IconType',)],
- "PySide2.QtWidgets.QFileIconProvider.options": (),
- "PySide2.QtWidgets.QFileIconProvider.setOptions": ('PySide2.QtWidgets.QFileIconProvider.Options',),
- "PySide2.QtWidgets.QFileIconProvider.type": ('PySide2.QtCore.QFileInfo',),
-# class PySide2.QtWidgets.QFileSystemModel:
-# class PySide2.QtWidgets.QFileSystemModel.Option:
-# class PySide2.QtWidgets.QFileSystemModel.Options:
-# class PySide2.QtWidgets.QFileSystemModel.Roles:
- "PySide2.QtWidgets.QFileSystemModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QFileSystemModel.canFetchMore": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtWidgets.QFileSystemModel.dropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QFileSystemModel.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QFileSystemModel.fetchMore": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.fileIcon": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.fileInfo": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.fileName": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.filePath": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.filter": (),
- "PySide2.QtWidgets.QFileSystemModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.hasChildren": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtWidgets.QFileSystemModel.iconProvider": (),
- "PySide2.QtWidgets.QFileSystemModel.index": [('int', 'int', 'PySide2.QtCore.QModelIndex'), ('str', 'int')],
- "PySide2.QtWidgets.QFileSystemModel.isDir": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.isReadOnly": (),
- "PySide2.QtWidgets.QFileSystemModel.lastModified": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.mimeData": ('typing.List[int]',),
- "PySide2.QtWidgets.QFileSystemModel.mimeTypes": (),
- "PySide2.QtWidgets.QFileSystemModel.mkdir": ('PySide2.QtCore.QModelIndex', 'str'),
- "PySide2.QtWidgets.QFileSystemModel.myComputer": ('int',),
- "PySide2.QtWidgets.QFileSystemModel.nameFilterDisables": (),
- "PySide2.QtWidgets.QFileSystemModel.nameFilters": (),
- "PySide2.QtWidgets.QFileSystemModel.options": (),
- "PySide2.QtWidgets.QFileSystemModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtWidgets.QFileSystemModel.remove": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.resolveSymlinks": (),
- "PySide2.QtWidgets.QFileSystemModel.rmdir": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.rootDirectory": (),
- "PySide2.QtWidgets.QFileSystemModel.rootPath": (),
- "PySide2.QtWidgets.QFileSystemModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
- "PySide2.QtWidgets.QFileSystemModel.setFilter": ('PySide2.QtCore.QDir.Filters',),
- "PySide2.QtWidgets.QFileSystemModel.setIconProvider": ('PySide2.QtWidgets.QFileIconProvider',),
- "PySide2.QtWidgets.QFileSystemModel.setNameFilterDisables": ('bool',),
- "PySide2.QtWidgets.QFileSystemModel.setNameFilters": ('typing.Sequence[str]',),
- "PySide2.QtWidgets.QFileSystemModel.setOption": ('PySide2.QtWidgets.QFileSystemModel.Option', 'bool'),
- "PySide2.QtWidgets.QFileSystemModel.setOptions": ('PySide2.QtWidgets.QFileSystemModel.Options',),
- "PySide2.QtWidgets.QFileSystemModel.setReadOnly": ('bool',),
- "PySide2.QtWidgets.QFileSystemModel.setResolveSymlinks": ('bool',),
- "PySide2.QtWidgets.QFileSystemModel.setRootPath": ('str',),
- "PySide2.QtWidgets.QFileSystemModel.sibling": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QFileSystemModel.size": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.sort": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtWidgets.QFileSystemModel.supportedDropActions": (),
- "PySide2.QtWidgets.QFileSystemModel.testOption": ('PySide2.QtWidgets.QFileSystemModel.Option',),
- "PySide2.QtWidgets.QFileSystemModel.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QFileSystemModel.type": ('PySide2.QtCore.QModelIndex',),
-# class PySide2.QtWidgets.QFocusFrame:
- "PySide2.QtWidgets.QFocusFrame.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QFocusFrame.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QFocusFrame.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QFocusFrame.initStyleOption": ('PySide2.QtWidgets.QStyleOption',),
- "PySide2.QtWidgets.QFocusFrame.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QFocusFrame.setWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QFocusFrame.widget": (),
-# class PySide2.QtWidgets.QFontComboBox:
-# class PySide2.QtWidgets.QFontComboBox.FontFilter:
-# class PySide2.QtWidgets.QFontComboBox.FontFilters:
- "PySide2.QtWidgets.QFontComboBox.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QFontComboBox.currentFont": (),
- "PySide2.QtWidgets.QFontComboBox.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QFontComboBox.fontFilters": (),
- "PySide2.QtWidgets.QFontComboBox.setCurrentFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QFontComboBox.setFontFilters": ('PySide2.QtWidgets.QFontComboBox.FontFilters',),
- "PySide2.QtWidgets.QFontComboBox.setWritingSystem": ('PySide2.QtGui.QFontDatabase.WritingSystem',),
- "PySide2.QtWidgets.QFontComboBox.sizeHint": (),
- "PySide2.QtWidgets.QFontComboBox.writingSystem": (),
-# class PySide2.QtWidgets.QFontDialog:
-# class PySide2.QtWidgets.QFontDialog.FontDialogOption:
-# class PySide2.QtWidgets.QFontDialog.FontDialogOptions:
- "PySide2.QtWidgets.QFontDialog.__init__": [('PySide2.QtGui.QFont', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QFontDialog.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QFontDialog.currentFont": (),
- "PySide2.QtWidgets.QFontDialog.done": ('int',),
- "PySide2.QtWidgets.QFontDialog.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QFontDialog.getFont": [('PySide2.QtGui.QFont', 'PySide2.QtWidgets.QWidget', 'str', 'PySide2.QtWidgets.QFontDialog.FontDialogOptions'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QFontDialog.open": [(), ('PySide2.QtCore.QObject', 'str')],
- "PySide2.QtWidgets.QFontDialog.options": (),
- "PySide2.QtWidgets.QFontDialog.selectedFont": (),
- "PySide2.QtWidgets.QFontDialog.setCurrentFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QFontDialog.setOption": ('PySide2.QtWidgets.QFontDialog.FontDialogOption', 'bool'),
- "PySide2.QtWidgets.QFontDialog.setOptions": ('PySide2.QtWidgets.QFontDialog.FontDialogOptions',),
- "PySide2.QtWidgets.QFontDialog.setVisible": ('bool',),
- "PySide2.QtWidgets.QFontDialog.testOption": ('PySide2.QtWidgets.QFontDialog.FontDialogOption',),
-# class PySide2.QtWidgets.QFormLayout:
-# class PySide2.QtWidgets.QFormLayout.FieldGrowthPolicy:
-# class PySide2.QtWidgets.QFormLayout.ItemRole:
-# class PySide2.QtWidgets.QFormLayout.RowWrapPolicy:
- "PySide2.QtWidgets.QFormLayout.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QFormLayout.addItem": ('PySide2.QtWidgets.QLayoutItem',),
- "PySide2.QtWidgets.QFormLayout.addRow": [('PySide2.QtWidgets.QLayout',), ('PySide2.QtWidgets.QWidget',), ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QLayout'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QWidget'), ('str', 'PySide2.QtWidgets.QLayout'), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QFormLayout.count": (),
- "PySide2.QtWidgets.QFormLayout.expandingDirections": (),
- "PySide2.QtWidgets.QFormLayout.fieldGrowthPolicy": (),
- "PySide2.QtWidgets.QFormLayout.formAlignment": (),
- "PySide2.QtWidgets.QFormLayout.getItemPosition": ('int', 'PySide2.QtWidgets.QFormLayout.ItemRole'),
- "PySide2.QtWidgets.QFormLayout.getLayoutPosition": ('PySide2.QtWidgets.QLayout', 'PySide2.QtWidgets.QFormLayout.ItemRole'),
- "PySide2.QtWidgets.QFormLayout.getWidgetPosition": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QFormLayout.ItemRole'),
- "PySide2.QtWidgets.QFormLayout.hasHeightForWidth": (),
- "PySide2.QtWidgets.QFormLayout.heightForWidth": ('int',),
- "PySide2.QtWidgets.QFormLayout.horizontalSpacing": (),
- "PySide2.QtWidgets.QFormLayout.insertRow": [('int', 'PySide2.QtWidgets.QLayout'), ('int', 'PySide2.QtWidgets.QWidget'), ('int', 'PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QLayout'), ('int', 'PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QWidget'), ('int', 'str', 'PySide2.QtWidgets.QLayout'), ('int', 'str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QFormLayout.invalidate": (),
- "PySide2.QtWidgets.QFormLayout.itemAt": [('int',), ('int', 'PySide2.QtWidgets.QFormLayout.ItemRole')],
- "PySide2.QtWidgets.QFormLayout.labelAlignment": (),
- "PySide2.QtWidgets.QFormLayout.labelForField": [('PySide2.QtWidgets.QLayout',), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QFormLayout.minimumSize": (),
- "PySide2.QtWidgets.QFormLayout.removeRow": [('PySide2.QtWidgets.QLayout',), ('PySide2.QtWidgets.QWidget',), ('int',)],
- "PySide2.QtWidgets.QFormLayout.rowCount": (),
- "PySide2.QtWidgets.QFormLayout.rowWrapPolicy": (),
- "PySide2.QtWidgets.QFormLayout.setFieldGrowthPolicy": ('PySide2.QtWidgets.QFormLayout.FieldGrowthPolicy',),
- "PySide2.QtWidgets.QFormLayout.setFormAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QFormLayout.setGeometry": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QFormLayout.setHorizontalSpacing": ('int',),
- "PySide2.QtWidgets.QFormLayout.setItem": ('int', 'PySide2.QtWidgets.QFormLayout.ItemRole', 'PySide2.QtWidgets.QLayoutItem'),
- "PySide2.QtWidgets.QFormLayout.setLabelAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QFormLayout.setLayout": ('int', 'PySide2.QtWidgets.QFormLayout.ItemRole', 'PySide2.QtWidgets.QLayout'),
- "PySide2.QtWidgets.QFormLayout.setRowWrapPolicy": ('PySide2.QtWidgets.QFormLayout.RowWrapPolicy',),
- "PySide2.QtWidgets.QFormLayout.setSpacing": ('int',),
- "PySide2.QtWidgets.QFormLayout.setVerticalSpacing": ('int',),
- "PySide2.QtWidgets.QFormLayout.setWidget": ('int', 'PySide2.QtWidgets.QFormLayout.ItemRole', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QFormLayout.sizeHint": (),
- "PySide2.QtWidgets.QFormLayout.spacing": (),
- "PySide2.QtWidgets.QFormLayout.takeAt": ('int',),
- "PySide2.QtWidgets.QFormLayout.verticalSpacing": (),
-# class PySide2.QtWidgets.QFrame:
-# class PySide2.QtWidgets.QFrame.Shadow:
-# class PySide2.QtWidgets.QFrame.Shape:
-# class PySide2.QtWidgets.QFrame.StyleMask:
- "PySide2.QtWidgets.QFrame.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QFrame.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QFrame.drawFrame": ('PySide2.QtGui.QPainter',),
- "PySide2.QtWidgets.QFrame.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QFrame.frameRect": (),
- "PySide2.QtWidgets.QFrame.frameShadow": (),
- "PySide2.QtWidgets.QFrame.frameShape": (),
- "PySide2.QtWidgets.QFrame.frameStyle": (),
- "PySide2.QtWidgets.QFrame.frameWidth": (),
- "PySide2.QtWidgets.QFrame.initStyleOption": ('PySide2.QtWidgets.QStyleOptionFrame',),
- "PySide2.QtWidgets.QFrame.lineWidth": (),
- "PySide2.QtWidgets.QFrame.midLineWidth": (),
- "PySide2.QtWidgets.QFrame.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QFrame.setFrameRect": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QFrame.setFrameShadow": ('PySide2.QtWidgets.QFrame.Shadow',),
- "PySide2.QtWidgets.QFrame.setFrameShape": ('PySide2.QtWidgets.QFrame.Shape',),
- "PySide2.QtWidgets.QFrame.setFrameStyle": ('int',),
- "PySide2.QtWidgets.QFrame.setLineWidth": ('int',),
- "PySide2.QtWidgets.QFrame.setMidLineWidth": ('int',),
- "PySide2.QtWidgets.QFrame.sizeHint": (),
-# class PySide2.QtWidgets.QGesture:
-# class PySide2.QtWidgets.QGesture.GestureCancelPolicy:
- "PySide2.QtWidgets.QGesture.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGesture.gestureCancelPolicy": (),
- "PySide2.QtWidgets.QGesture.gestureType": (),
- "PySide2.QtWidgets.QGesture.hasHotSpot": (),
- "PySide2.QtWidgets.QGesture.hotSpot": (),
- "PySide2.QtWidgets.QGesture.setGestureCancelPolicy": ('PySide2.QtWidgets.QGesture.GestureCancelPolicy',),
- "PySide2.QtWidgets.QGesture.setHotSpot": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGesture.state": (),
- "PySide2.QtWidgets.QGesture.unsetHotSpot": (),
-# class PySide2.QtWidgets.QGestureEvent:
- "PySide2.QtWidgets.QGestureEvent.__init__": ('typing.Sequence[PySide2.QtWidgets.QGesture]',),
- "PySide2.QtWidgets.QGestureEvent.accept": [(), ('PySide2.QtCore.Qt.GestureType',), ('PySide2.QtWidgets.QGesture',)],
- "PySide2.QtWidgets.QGestureEvent.activeGestures": (),
- "PySide2.QtWidgets.QGestureEvent.canceledGestures": (),
- "PySide2.QtWidgets.QGestureEvent.gesture": ('PySide2.QtCore.Qt.GestureType',),
- "PySide2.QtWidgets.QGestureEvent.gestures": (),
- "PySide2.QtWidgets.QGestureEvent.ignore": [(), ('PySide2.QtCore.Qt.GestureType',), ('PySide2.QtWidgets.QGesture',)],
- "PySide2.QtWidgets.QGestureEvent.isAccepted": [(), ('PySide2.QtCore.Qt.GestureType',), ('PySide2.QtWidgets.QGesture',)],
- "PySide2.QtWidgets.QGestureEvent.mapToGraphicsScene": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGestureEvent.setAccepted": [('PySide2.QtCore.Qt.GestureType', 'bool'), ('PySide2.QtWidgets.QGesture', 'bool'), ('bool',)],
- "PySide2.QtWidgets.QGestureEvent.setWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QGestureEvent.widget": (),
-# class PySide2.QtWidgets.QGestureRecognizer:
-# class PySide2.QtWidgets.QGestureRecognizer.Result:
-# class PySide2.QtWidgets.QGestureRecognizer.ResultFlag:
- "PySide2.QtWidgets.QGestureRecognizer.__init__": (),
- "PySide2.QtWidgets.QGestureRecognizer.create": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGestureRecognizer.recognize": ('PySide2.QtWidgets.QGesture', 'PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QGestureRecognizer.registerRecognizer": ('PySide2.QtWidgets.QGestureRecognizer',),
- "PySide2.QtWidgets.QGestureRecognizer.reset": ('PySide2.QtWidgets.QGesture',),
- "PySide2.QtWidgets.QGestureRecognizer.unregisterRecognizer": ('PySide2.QtCore.Qt.GestureType',),
-# class PySide2.QtWidgets.QGraphicsAnchor:
- "PySide2.QtWidgets.QGraphicsAnchor.setSizePolicy": ('PySide2.QtWidgets.QSizePolicy.Policy',),
- "PySide2.QtWidgets.QGraphicsAnchor.setSpacing": ('float',),
- "PySide2.QtWidgets.QGraphicsAnchor.sizePolicy": (),
- "PySide2.QtWidgets.QGraphicsAnchor.spacing": (),
- "PySide2.QtWidgets.QGraphicsAnchor.unsetSpacing": (),
-# class PySide2.QtWidgets.QGraphicsAnchorLayout:
- "PySide2.QtWidgets.QGraphicsAnchorLayout.__init__": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.addAnchor": ('PySide2.QtWidgets.QGraphicsLayoutItem', 'PySide2.QtCore.Qt.AnchorPoint', 'PySide2.QtWidgets.QGraphicsLayoutItem', 'PySide2.QtCore.Qt.AnchorPoint'),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.addAnchors": ('PySide2.QtWidgets.QGraphicsLayoutItem', 'PySide2.QtWidgets.QGraphicsLayoutItem', 'PySide2.QtCore.Qt.Orientations'),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.addCornerAnchors": ('PySide2.QtWidgets.QGraphicsLayoutItem', 'PySide2.QtCore.Qt.Corner', 'PySide2.QtWidgets.QGraphicsLayoutItem', 'PySide2.QtCore.Qt.Corner'),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.anchor": ('PySide2.QtWidgets.QGraphicsLayoutItem', 'PySide2.QtCore.Qt.AnchorPoint', 'PySide2.QtWidgets.QGraphicsLayoutItem', 'PySide2.QtCore.Qt.AnchorPoint'),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.count": (),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.horizontalSpacing": (),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.invalidate": (),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.itemAt": ('int',),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.removeAt": ('int',),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.setGeometry": ('PySide2.QtCore.QRectF',),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.setHorizontalSpacing": ('float',),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.setSpacing": ('float',),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.setVerticalSpacing": ('float',),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.sizeHint": ('PySide2.QtCore.Qt.SizeHint', 'PySide2.QtCore.QSizeF'),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.verticalSpacing": (),
-# class PySide2.QtWidgets.QGraphicsBlurEffect:
-# class PySide2.QtWidgets.QGraphicsBlurEffect.BlurHint:
-# class PySide2.QtWidgets.QGraphicsBlurEffect.BlurHints:
- "PySide2.QtWidgets.QGraphicsBlurEffect.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGraphicsBlurEffect.blurHints": (),
- "PySide2.QtWidgets.QGraphicsBlurEffect.blurRadius": (),
- "PySide2.QtWidgets.QGraphicsBlurEffect.boundingRectFor": ('PySide2.QtCore.QRectF',),
- "PySide2.QtWidgets.QGraphicsBlurEffect.draw": ('PySide2.QtGui.QPainter',),
- "PySide2.QtWidgets.QGraphicsBlurEffect.setBlurHints": ('PySide2.QtWidgets.QGraphicsBlurEffect.BlurHints',),
- "PySide2.QtWidgets.QGraphicsBlurEffect.setBlurRadius": ('float',),
-# class PySide2.QtWidgets.QGraphicsColorizeEffect:
- "PySide2.QtWidgets.QGraphicsColorizeEffect.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGraphicsColorizeEffect.color": (),
- "PySide2.QtWidgets.QGraphicsColorizeEffect.draw": ('PySide2.QtGui.QPainter',),
- "PySide2.QtWidgets.QGraphicsColorizeEffect.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QGraphicsColorizeEffect.setStrength": ('float',),
- "PySide2.QtWidgets.QGraphicsColorizeEffect.strength": (),
-# class PySide2.QtWidgets.QGraphicsDropShadowEffect:
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.blurRadius": (),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.boundingRectFor": ('PySide2.QtCore.QRectF',),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.color": (),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.draw": ('PySide2.QtGui.QPainter',),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.offset": (),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.setBlurRadius": ('float',),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.setOffset": [('PySide2.QtCore.QPointF',), ('float',), ('float', 'float')],
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.setXOffset": ('float',),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.setYOffset": ('float',),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.xOffset": (),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.yOffset": (),
-# class PySide2.QtWidgets.QGraphicsEffect:
-# class PySide2.QtWidgets.QGraphicsEffect.ChangeFlag:
-# class PySide2.QtWidgets.QGraphicsEffect.ChangeFlags:
-# class PySide2.QtWidgets.QGraphicsEffect.PixmapPadMode:
- "PySide2.QtWidgets.QGraphicsEffect.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGraphicsEffect.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsEffect.boundingRectFor": ('PySide2.QtCore.QRectF',),
- "PySide2.QtWidgets.QGraphicsEffect.draw": ('PySide2.QtGui.QPainter',),
- "PySide2.QtWidgets.QGraphicsEffect.drawSource": ('PySide2.QtGui.QPainter',),
- "PySide2.QtWidgets.QGraphicsEffect.isEnabled": (),
- "PySide2.QtWidgets.QGraphicsEffect.setEnabled": ('bool',),
- "PySide2.QtWidgets.QGraphicsEffect.sourceBoundingRect": ('PySide2.QtCore.Qt.CoordinateSystem',),
- "PySide2.QtWidgets.QGraphicsEffect.sourceChanged": ('PySide2.QtWidgets.QGraphicsEffect.ChangeFlags',),
- "PySide2.QtWidgets.QGraphicsEffect.sourceIsPixmap": (),
- "PySide2.QtWidgets.QGraphicsEffect.sourcePixmap": ('PySide2.QtCore.Qt.CoordinateSystem', 'PySide2.QtCore.QPoint', 'PySide2.QtWidgets.QGraphicsEffect.PixmapPadMode'),
- "PySide2.QtWidgets.QGraphicsEffect.update": (),
- "PySide2.QtWidgets.QGraphicsEffect.updateBoundingRect": (),
-# class PySide2.QtWidgets.QGraphicsEllipseItem:
- "PySide2.QtWidgets.QGraphicsEllipseItem.__init__": [('PySide2.QtCore.QRectF', 'PySide2.QtWidgets.QGraphicsItem'), ('PySide2.QtWidgets.QGraphicsItem',), ('float', 'float', 'float', 'float', 'PySide2.QtWidgets.QGraphicsItem')],
- "PySide2.QtWidgets.QGraphicsEllipseItem.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsEllipseItem.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsEllipseItem.extension": ('typing.Any',),
- "PySide2.QtWidgets.QGraphicsEllipseItem.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsEllipseItem.opaqueArea": (),
- "PySide2.QtWidgets.QGraphicsEllipseItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsEllipseItem.rect": (),
- "PySide2.QtWidgets.QGraphicsEllipseItem.setRect": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsEllipseItem.setSpanAngle": ('int',),
- "PySide2.QtWidgets.QGraphicsEllipseItem.setStartAngle": ('int',),
- "PySide2.QtWidgets.QGraphicsEllipseItem.shape": (),
- "PySide2.QtWidgets.QGraphicsEllipseItem.spanAngle": (),
- "PySide2.QtWidgets.QGraphicsEllipseItem.startAngle": (),
- "PySide2.QtWidgets.QGraphicsEllipseItem.type": (),
-# class PySide2.QtWidgets.QGraphicsGridLayout:
- "PySide2.QtWidgets.QGraphicsGridLayout.__init__": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
- "PySide2.QtWidgets.QGraphicsGridLayout.addItem": [('PySide2.QtWidgets.QGraphicsLayoutItem', 'int', 'int', 'PySide2.QtCore.Qt.Alignment'), ('PySide2.QtWidgets.QGraphicsLayoutItem', 'int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.Alignment')],
- "PySide2.QtWidgets.QGraphicsGridLayout.alignment": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
- "PySide2.QtWidgets.QGraphicsGridLayout.columnAlignment": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.columnCount": (),
- "PySide2.QtWidgets.QGraphicsGridLayout.columnMaximumWidth": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.columnMinimumWidth": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.columnPreferredWidth": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.columnSpacing": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.columnStretchFactor": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.count": (),
- "PySide2.QtWidgets.QGraphicsGridLayout.horizontalSpacing": (),
- "PySide2.QtWidgets.QGraphicsGridLayout.invalidate": (),
- "PySide2.QtWidgets.QGraphicsGridLayout.itemAt": [('int',), ('int', 'int')],
- "PySide2.QtWidgets.QGraphicsGridLayout.removeAt": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.removeItem": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
- "PySide2.QtWidgets.QGraphicsGridLayout.rowAlignment": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.rowCount": (),
- "PySide2.QtWidgets.QGraphicsGridLayout.rowMaximumHeight": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.rowMinimumHeight": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.rowPreferredHeight": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.rowSpacing": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.rowStretchFactor": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.setAlignment": ('PySide2.QtWidgets.QGraphicsLayoutItem', 'PySide2.QtCore.Qt.Alignment'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setColumnAlignment": ('int', 'PySide2.QtCore.Qt.Alignment'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setColumnFixedWidth": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setColumnMaximumWidth": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setColumnMinimumWidth": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setColumnPreferredWidth": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setColumnSpacing": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setColumnStretchFactor": ('int', 'int'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setGeometry": ('PySide2.QtCore.QRectF',),
- "PySide2.QtWidgets.QGraphicsGridLayout.setHorizontalSpacing": ('float',),
- "PySide2.QtWidgets.QGraphicsGridLayout.setRowAlignment": ('int', 'PySide2.QtCore.Qt.Alignment'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setRowFixedHeight": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setRowMaximumHeight": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setRowMinimumHeight": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setRowPreferredHeight": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setRowSpacing": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setRowStretchFactor": ('int', 'int'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setSpacing": ('float',),
- "PySide2.QtWidgets.QGraphicsGridLayout.setVerticalSpacing": ('float',),
- "PySide2.QtWidgets.QGraphicsGridLayout.sizeHint": ('PySide2.QtCore.Qt.SizeHint', 'PySide2.QtCore.QSizeF'),
- "PySide2.QtWidgets.QGraphicsGridLayout.verticalSpacing": (),
-# class PySide2.QtWidgets.QGraphicsItem:
-# class PySide2.QtWidgets.QGraphicsItem.CacheMode:
-# class PySide2.QtWidgets.QGraphicsItem.Extension:
-# class PySide2.QtWidgets.QGraphicsItem.GraphicsItemChange:
-# class PySide2.QtWidgets.QGraphicsItem.GraphicsItemFlag:
-# class PySide2.QtWidgets.QGraphicsItem.GraphicsItemFlags:
-# class PySide2.QtWidgets.QGraphicsItem.PanelModality:
- "PySide2.QtWidgets.QGraphicsItem.__init__": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.acceptDrops": (),
- "PySide2.QtWidgets.QGraphicsItem.acceptHoverEvents": (),
- "PySide2.QtWidgets.QGraphicsItem.acceptTouchEvents": (),
- "PySide2.QtWidgets.QGraphicsItem.acceptedMouseButtons": (),
- "PySide2.QtWidgets.QGraphicsItem.addToIndex": (),
- "PySide2.QtWidgets.QGraphicsItem.advance": ('int',),
- "PySide2.QtWidgets.QGraphicsItem.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsItem.boundingRegion": ('PySide2.QtGui.QTransform',),
- "PySide2.QtWidgets.QGraphicsItem.boundingRegionGranularity": (),
- "PySide2.QtWidgets.QGraphicsItem.cacheMode": (),
- "PySide2.QtWidgets.QGraphicsItem.childItems": (),
- "PySide2.QtWidgets.QGraphicsItem.childrenBoundingRect": (),
- "PySide2.QtWidgets.QGraphicsItem.clearFocus": (),
- "PySide2.QtWidgets.QGraphicsItem.clipPath": (),
- "PySide2.QtWidgets.QGraphicsItem.collidesWithItem": ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.Qt.ItemSelectionMode'),
- "PySide2.QtWidgets.QGraphicsItem.collidesWithPath": ('PySide2.QtGui.QPainterPath', 'PySide2.QtCore.Qt.ItemSelectionMode'),
- "PySide2.QtWidgets.QGraphicsItem.collidingItems": ('PySide2.QtCore.Qt.ItemSelectionMode',),
- "PySide2.QtWidgets.QGraphicsItem.commonAncestorItem": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsItem.contextMenuEvent": ('PySide2.QtWidgets.QGraphicsSceneContextMenuEvent',),
- "PySide2.QtWidgets.QGraphicsItem.cursor": (),
- "PySide2.QtWidgets.QGraphicsItem.data": ('int',),
- "PySide2.QtWidgets.QGraphicsItem.deviceTransform": ('PySide2.QtGui.QTransform',),
- "PySide2.QtWidgets.QGraphicsItem.dragEnterEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsItem.dragLeaveEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsItem.dragMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsItem.dropEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsItem.effectiveOpacity": (),
- "PySide2.QtWidgets.QGraphicsItem.ensureVisible": [('PySide2.QtCore.QRectF', 'int', 'int'), ('float', 'float', 'float', 'float', 'int', 'int')],
- "PySide2.QtWidgets.QGraphicsItem.extension": ('typing.Any',),
- "PySide2.QtWidgets.QGraphicsItem.filtersChildEvents": (),
- "PySide2.QtWidgets.QGraphicsItem.flags": (),
- "PySide2.QtWidgets.QGraphicsItem.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsItem.focusItem": (),
- "PySide2.QtWidgets.QGraphicsItem.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsItem.focusProxy": (),
- "PySide2.QtWidgets.QGraphicsItem.focusScopeItem": (),
- "PySide2.QtWidgets.QGraphicsItem.grabKeyboard": (),
- "PySide2.QtWidgets.QGraphicsItem.grabMouse": (),
- "PySide2.QtWidgets.QGraphicsItem.graphicsEffect": (),
- "PySide2.QtWidgets.QGraphicsItem.group": (),
- "PySide2.QtWidgets.QGraphicsItem.handlesChildEvents": (),
- "PySide2.QtWidgets.QGraphicsItem.hasCursor": (),
- "PySide2.QtWidgets.QGraphicsItem.hasFocus": (),
- "PySide2.QtWidgets.QGraphicsItem.hide": (),
- "PySide2.QtWidgets.QGraphicsItem.hoverEnterEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsItem.hoverLeaveEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsItem.hoverMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsItem.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QGraphicsItem.inputMethodHints": (),
- "PySide2.QtWidgets.QGraphicsItem.inputMethodQuery": ('PySide2.QtCore.Qt.InputMethodQuery',),
- "PySide2.QtWidgets.QGraphicsItem.installSceneEventFilter": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.isActive": (),
- "PySide2.QtWidgets.QGraphicsItem.isAncestorOf": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.isBlockedByModalPanel": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.isClipped": (),
- "PySide2.QtWidgets.QGraphicsItem.isEnabled": (),
- "PySide2.QtWidgets.QGraphicsItem.isObscured": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.isPanel": (),
- "PySide2.QtWidgets.QGraphicsItem.isSelected": (),
- "PySide2.QtWidgets.QGraphicsItem.isUnderMouse": (),
- "PySide2.QtWidgets.QGraphicsItem.isVisible": (),
- "PySide2.QtWidgets.QGraphicsItem.isVisibleTo": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.isWidget": (),
- "PySide2.QtWidgets.QGraphicsItem.isWindow": (),
- "PySide2.QtWidgets.QGraphicsItem.itemChange": ('PySide2.QtWidgets.QGraphicsItem.GraphicsItemChange', 'typing.Any'),
- "PySide2.QtWidgets.QGraphicsItem.itemTransform": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QGraphicsItem.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QGraphicsItem.mapFromItem": [('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.QPointF'), ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.QRectF'), ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtGui.QPainterPath'), ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtGui.QPolygonF'), ('PySide2.QtWidgets.QGraphicsItem', 'float', 'float'), ('PySide2.QtWidgets.QGraphicsItem', 'float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapFromParent": [('PySide2.QtCore.QPointF',), ('PySide2.QtCore.QRectF',), ('PySide2.QtGui.QPainterPath',), ('PySide2.QtGui.QPolygonF',), ('float', 'float'), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapFromScene": [('PySide2.QtCore.QPointF',), ('PySide2.QtCore.QRectF',), ('PySide2.QtGui.QPainterPath',), ('PySide2.QtGui.QPolygonF',), ('float', 'float'), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapRectFromItem": [('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.QRectF'), ('PySide2.QtWidgets.QGraphicsItem', 'float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapRectFromParent": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapRectFromScene": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapRectToItem": [('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.QRectF'), ('PySide2.QtWidgets.QGraphicsItem', 'float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapRectToParent": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapRectToScene": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapToItem": [('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.QPointF'), ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.QRectF'), ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtGui.QPainterPath'), ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtGui.QPolygonF'), ('PySide2.QtWidgets.QGraphicsItem', 'float', 'float'), ('PySide2.QtWidgets.QGraphicsItem', 'float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapToParent": [('PySide2.QtCore.QPointF',), ('PySide2.QtCore.QRectF',), ('PySide2.QtGui.QPainterPath',), ('PySide2.QtGui.QPolygonF',), ('float', 'float'), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapToScene": [('PySide2.QtCore.QPointF',), ('PySide2.QtCore.QRectF',), ('PySide2.QtGui.QPainterPath',), ('PySide2.QtGui.QPolygonF',), ('float', 'float'), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.matrix": (),
- "PySide2.QtWidgets.QGraphicsItem.mouseDoubleClickEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsItem.mouseMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsItem.mousePressEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsItem.mouseReleaseEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsItem.moveBy": ('float', 'float'),
- "PySide2.QtWidgets.QGraphicsItem.opacity": (),
- "PySide2.QtWidgets.QGraphicsItem.opaqueArea": (),
- "PySide2.QtWidgets.QGraphicsItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsItem.panel": (),
- "PySide2.QtWidgets.QGraphicsItem.panelModality": (),
- "PySide2.QtWidgets.QGraphicsItem.parentItem": (),
- "PySide2.QtWidgets.QGraphicsItem.parentObject": (),
- "PySide2.QtWidgets.QGraphicsItem.parentWidget": (),
- "PySide2.QtWidgets.QGraphicsItem.pos": (),
- "PySide2.QtWidgets.QGraphicsItem.prepareGeometryChange": (),
- "PySide2.QtWidgets.QGraphicsItem.removeFromIndex": (),
- "PySide2.QtWidgets.QGraphicsItem.removeSceneEventFilter": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.resetMatrix": (),
- "PySide2.QtWidgets.QGraphicsItem.resetTransform": (),
- "PySide2.QtWidgets.QGraphicsItem.rotation": (),
- "PySide2.QtWidgets.QGraphicsItem.scale": (),
- "PySide2.QtWidgets.QGraphicsItem.scene": (),
- "PySide2.QtWidgets.QGraphicsItem.sceneBoundingRect": (),
- "PySide2.QtWidgets.QGraphicsItem.sceneEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsItem.sceneEventFilter": ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QGraphicsItem.sceneMatrix": (),
- "PySide2.QtWidgets.QGraphicsItem.scenePos": (),
- "PySide2.QtWidgets.QGraphicsItem.sceneTransform": (),
- "PySide2.QtWidgets.QGraphicsItem.scroll": ('float', 'float', 'PySide2.QtCore.QRectF'),
- "PySide2.QtWidgets.QGraphicsItem.setAcceptDrops": ('bool',),
- "PySide2.QtWidgets.QGraphicsItem.setAcceptHoverEvents": ('bool',),
- "PySide2.QtWidgets.QGraphicsItem.setAcceptTouchEvents": ('bool',),
- "PySide2.QtWidgets.QGraphicsItem.setAcceptedMouseButtons": ('PySide2.QtCore.Qt.MouseButtons',),
- "PySide2.QtWidgets.QGraphicsItem.setActive": ('bool',),
- "PySide2.QtWidgets.QGraphicsItem.setBoundingRegionGranularity": ('float',),
- "PySide2.QtWidgets.QGraphicsItem.setCacheMode": ('PySide2.QtWidgets.QGraphicsItem.CacheMode', 'PySide2.QtCore.QSize'),
- "PySide2.QtWidgets.QGraphicsItem.setCursor": ('PySide2.QtGui.QCursor',),
- "PySide2.QtWidgets.QGraphicsItem.setData": ('int', 'typing.Any'),
- "PySide2.QtWidgets.QGraphicsItem.setEnabled": ('bool',),
- "PySide2.QtWidgets.QGraphicsItem.setFiltersChildEvents": ('bool',),
- "PySide2.QtWidgets.QGraphicsItem.setFlag": ('PySide2.QtWidgets.QGraphicsItem.GraphicsItemFlag', 'bool'),
- "PySide2.QtWidgets.QGraphicsItem.setFlags": ('PySide2.QtWidgets.QGraphicsItem.GraphicsItemFlags',),
- "PySide2.QtWidgets.QGraphicsItem.setFocus": ('PySide2.QtCore.Qt.FocusReason',),
- "PySide2.QtWidgets.QGraphicsItem.setFocusProxy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.setGraphicsEffect": ('PySide2.QtWidgets.QGraphicsEffect',),
- "PySide2.QtWidgets.QGraphicsItem.setGroup": ('PySide2.QtWidgets.QGraphicsItemGroup',),
- "PySide2.QtWidgets.QGraphicsItem.setHandlesChildEvents": ('bool',),
- "PySide2.QtWidgets.QGraphicsItem.setInputMethodHints": ('PySide2.QtCore.Qt.InputMethodHints',),
- "PySide2.QtWidgets.QGraphicsItem.setMatrix": ('PySide2.QtGui.QMatrix', 'bool'),
- "PySide2.QtWidgets.QGraphicsItem.setOpacity": ('float',),
- "PySide2.QtWidgets.QGraphicsItem.setPanelModality": ('PySide2.QtWidgets.QGraphicsItem.PanelModality',),
- "PySide2.QtWidgets.QGraphicsItem.setParentItem": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.setPos": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.setRotation": ('float',),
- "PySide2.QtWidgets.QGraphicsItem.setScale": ('float',),
- "PySide2.QtWidgets.QGraphicsItem.setSelected": ('bool',),
- "PySide2.QtWidgets.QGraphicsItem.setToolTip": ('str',),
- "PySide2.QtWidgets.QGraphicsItem.setTransform": ('PySide2.QtGui.QTransform', 'bool'),
- "PySide2.QtWidgets.QGraphicsItem.setTransformOriginPoint": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.setTransformations": ('typing.Sequence[PySide2.QtWidgets.QGraphicsTransform]',),
- "PySide2.QtWidgets.QGraphicsItem.setVisible": ('bool',),
- "PySide2.QtWidgets.QGraphicsItem.setX": ('float',),
- "PySide2.QtWidgets.QGraphicsItem.setY": ('float',),
- "PySide2.QtWidgets.QGraphicsItem.setZValue": ('float',),
- "PySide2.QtWidgets.QGraphicsItem.shape": (),
- "PySide2.QtWidgets.QGraphicsItem.show": (),
- "PySide2.QtWidgets.QGraphicsItem.stackBefore": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.toGraphicsObject": (),
- "PySide2.QtWidgets.QGraphicsItem.toolTip": (),
- "PySide2.QtWidgets.QGraphicsItem.topLevelItem": (),
- "PySide2.QtWidgets.QGraphicsItem.topLevelWidget": (),
- "PySide2.QtWidgets.QGraphicsItem.transform": (),
- "PySide2.QtWidgets.QGraphicsItem.transformOriginPoint": (),
- "PySide2.QtWidgets.QGraphicsItem.transformations": (),
- "PySide2.QtWidgets.QGraphicsItem.type": (),
- "PySide2.QtWidgets.QGraphicsItem.ungrabKeyboard": (),
- "PySide2.QtWidgets.QGraphicsItem.ungrabMouse": (),
- "PySide2.QtWidgets.QGraphicsItem.unsetCursor": (),
- "PySide2.QtWidgets.QGraphicsItem.update": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.updateMicroFocus": (),
- "PySide2.QtWidgets.QGraphicsItem.wheelEvent": ('PySide2.QtWidgets.QGraphicsSceneWheelEvent',),
- "PySide2.QtWidgets.QGraphicsItem.window": (),
- "PySide2.QtWidgets.QGraphicsItem.x": (),
- "PySide2.QtWidgets.QGraphicsItem.y": (),
- "PySide2.QtWidgets.QGraphicsItem.zValue": (),
-# class PySide2.QtWidgets.QGraphicsItemAnimation:
- "PySide2.QtWidgets.QGraphicsItemAnimation.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.afterAnimationStep": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.beforeAnimationStep": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.clear": (),
- "PySide2.QtWidgets.QGraphicsItemAnimation.horizontalScaleAt": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.horizontalShearAt": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.item": (),
- "PySide2.QtWidgets.QGraphicsItemAnimation.matrixAt": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.posAt": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.posList": (),
- "PySide2.QtWidgets.QGraphicsItemAnimation.reset": (),
- "PySide2.QtWidgets.QGraphicsItemAnimation.rotationAt": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.rotationList": (),
- "PySide2.QtWidgets.QGraphicsItemAnimation.scaleList": (),
- "PySide2.QtWidgets.QGraphicsItemAnimation.setItem": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.setPosAt": ('float', 'PySide2.QtCore.QPointF'),
- "PySide2.QtWidgets.QGraphicsItemAnimation.setRotationAt": ('float', 'float'),
- "PySide2.QtWidgets.QGraphicsItemAnimation.setScaleAt": ('float', 'float', 'float'),
- "PySide2.QtWidgets.QGraphicsItemAnimation.setShearAt": ('float', 'float', 'float'),
- "PySide2.QtWidgets.QGraphicsItemAnimation.setStep": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.setTimeLine": ('PySide2.QtCore.QTimeLine',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.setTranslationAt": ('float', 'float', 'float'),
- "PySide2.QtWidgets.QGraphicsItemAnimation.shearList": (),
- "PySide2.QtWidgets.QGraphicsItemAnimation.timeLine": (),
- "PySide2.QtWidgets.QGraphicsItemAnimation.transformAt": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.translationList": (),
- "PySide2.QtWidgets.QGraphicsItemAnimation.verticalScaleAt": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.verticalShearAt": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.xTranslationAt": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.yTranslationAt": ('float',),
-# class PySide2.QtWidgets.QGraphicsItemGroup:
- "PySide2.QtWidgets.QGraphicsItemGroup.__init__": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItemGroup.addToGroup": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItemGroup.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsItemGroup.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItemGroup.opaqueArea": (),
- "PySide2.QtWidgets.QGraphicsItemGroup.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsItemGroup.removeFromGroup": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItemGroup.type": (),
-# class PySide2.QtWidgets.QGraphicsLayout:
- "PySide2.QtWidgets.QGraphicsLayout.__init__": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
- "PySide2.QtWidgets.QGraphicsLayout.activate": (),
- "PySide2.QtWidgets.QGraphicsLayout.addChildLayoutItem": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
- "PySide2.QtWidgets.QGraphicsLayout.count": (),
- "PySide2.QtWidgets.QGraphicsLayout.getContentsMargins": (),
- "PySide2.QtWidgets.QGraphicsLayout.instantInvalidatePropagation": (),
- "PySide2.QtWidgets.QGraphicsLayout.invalidate": (),
- "PySide2.QtWidgets.QGraphicsLayout.isActivated": (),
- "PySide2.QtWidgets.QGraphicsLayout.itemAt": ('int',),
- "PySide2.QtWidgets.QGraphicsLayout.removeAt": ('int',),
- "PySide2.QtWidgets.QGraphicsLayout.setContentsMargins": ('float', 'float', 'float', 'float'),
- "PySide2.QtWidgets.QGraphicsLayout.setInstantInvalidatePropagation": ('bool',),
- "PySide2.QtWidgets.QGraphicsLayout.updateGeometry": (),
- "PySide2.QtWidgets.QGraphicsLayout.widgetEvent": ('PySide2.QtCore.QEvent',),
-# class PySide2.QtWidgets.QGraphicsLayoutItem:
- "PySide2.QtWidgets.QGraphicsLayoutItem.__init__": ('PySide2.QtWidgets.QGraphicsLayoutItem', 'bool'),
- "PySide2.QtWidgets.QGraphicsLayoutItem.contentsRect": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.effectiveSizeHint": ('PySide2.QtCore.Qt.SizeHint', 'PySide2.QtCore.QSizeF'),
- "PySide2.QtWidgets.QGraphicsLayoutItem.geometry": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.getContentsMargins": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.graphicsItem": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.isLayout": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.maximumHeight": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.maximumSize": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.maximumWidth": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.minimumHeight": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.minimumSize": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.minimumWidth": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.ownedByLayout": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.parentLayoutItem": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.preferredHeight": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.preferredSize": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.preferredWidth": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setGeometry": ('PySide2.QtCore.QRectF',),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setGraphicsItem": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setMaximumHeight": ('float',),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setMaximumSize": [('PySide2.QtCore.QSizeF',), ('float', 'float')],
- "PySide2.QtWidgets.QGraphicsLayoutItem.setMaximumWidth": ('float',),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setMinimumHeight": ('float',),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setMinimumSize": [('PySide2.QtCore.QSizeF',), ('float', 'float')],
- "PySide2.QtWidgets.QGraphicsLayoutItem.setMinimumWidth": ('float',),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setOwnedByLayout": ('bool',),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setParentLayoutItem": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setPreferredHeight": ('float',),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setPreferredSize": [('PySide2.QtCore.QSizeF',), ('float', 'float')],
- "PySide2.QtWidgets.QGraphicsLayoutItem.setPreferredWidth": ('float',),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setSizePolicy": [('PySide2.QtWidgets.QSizePolicy',), ('PySide2.QtWidgets.QSizePolicy.Policy', 'PySide2.QtWidgets.QSizePolicy.Policy', 'PySide2.QtWidgets.QSizePolicy.ControlType')],
- "PySide2.QtWidgets.QGraphicsLayoutItem.sizeHint": ('PySide2.QtCore.Qt.SizeHint', 'PySide2.QtCore.QSizeF'),
- "PySide2.QtWidgets.QGraphicsLayoutItem.sizePolicy": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.updateGeometry": (),
-# class PySide2.QtWidgets.QGraphicsLineItem:
- "PySide2.QtWidgets.QGraphicsLineItem.__init__": [('PySide2.QtCore.QLineF', 'PySide2.QtWidgets.QGraphicsItem'), ('PySide2.QtWidgets.QGraphicsItem',), ('float', 'float', 'float', 'float', 'PySide2.QtWidgets.QGraphicsItem')],
- "PySide2.QtWidgets.QGraphicsLineItem.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsLineItem.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsLineItem.extension": ('typing.Any',),
- "PySide2.QtWidgets.QGraphicsLineItem.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsLineItem.line": (),
- "PySide2.QtWidgets.QGraphicsLineItem.opaqueArea": (),
- "PySide2.QtWidgets.QGraphicsLineItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsLineItem.pen": (),
- "PySide2.QtWidgets.QGraphicsLineItem.setLine": [('PySide2.QtCore.QLineF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsLineItem.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtWidgets.QGraphicsLineItem.shape": (),
- "PySide2.QtWidgets.QGraphicsLineItem.type": (),
-# class PySide2.QtWidgets.QGraphicsLinearLayout:
- "PySide2.QtWidgets.QGraphicsLinearLayout.__init__": [('PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QGraphicsLayoutItem'), ('PySide2.QtWidgets.QGraphicsLayoutItem',)],
- "PySide2.QtWidgets.QGraphicsLinearLayout.addItem": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.addStretch": ('int',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.alignment": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.count": (),
- "PySide2.QtWidgets.QGraphicsLinearLayout.dump": ('int',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.insertItem": ('int', 'PySide2.QtWidgets.QGraphicsLayoutItem'),
- "PySide2.QtWidgets.QGraphicsLinearLayout.insertStretch": ('int', 'int'),
- "PySide2.QtWidgets.QGraphicsLinearLayout.invalidate": (),
- "PySide2.QtWidgets.QGraphicsLinearLayout.itemAt": ('int',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.itemSpacing": ('int',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.orientation": (),
- "PySide2.QtWidgets.QGraphicsLinearLayout.removeAt": ('int',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.removeItem": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.setAlignment": ('PySide2.QtWidgets.QGraphicsLayoutItem', 'PySide2.QtCore.Qt.Alignment'),
- "PySide2.QtWidgets.QGraphicsLinearLayout.setGeometry": ('PySide2.QtCore.QRectF',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.setItemSpacing": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsLinearLayout.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.setSpacing": ('float',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.setStretchFactor": ('PySide2.QtWidgets.QGraphicsLayoutItem', 'int'),
- "PySide2.QtWidgets.QGraphicsLinearLayout.sizeHint": ('PySide2.QtCore.Qt.SizeHint', 'PySide2.QtCore.QSizeF'),
- "PySide2.QtWidgets.QGraphicsLinearLayout.spacing": (),
- "PySide2.QtWidgets.QGraphicsLinearLayout.stretchFactor": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
-# class PySide2.QtWidgets.QGraphicsObject:
- "PySide2.QtWidgets.QGraphicsObject.__init__": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsObject.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsObject.grabGesture": ('PySide2.QtCore.Qt.GestureType', 'PySide2.QtCore.Qt.GestureFlags'),
- "PySide2.QtWidgets.QGraphicsObject.ungrabGesture": ('PySide2.QtCore.Qt.GestureType',),
- "PySide2.QtWidgets.QGraphicsObject.updateMicroFocus": (),
-# class PySide2.QtWidgets.QGraphicsOpacityEffect:
- "PySide2.QtWidgets.QGraphicsOpacityEffect.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGraphicsOpacityEffect.draw": ('PySide2.QtGui.QPainter',),
- "PySide2.QtWidgets.QGraphicsOpacityEffect.opacity": (),
- "PySide2.QtWidgets.QGraphicsOpacityEffect.opacityMask": (),
- "PySide2.QtWidgets.QGraphicsOpacityEffect.setOpacity": ('float',),
- "PySide2.QtWidgets.QGraphicsOpacityEffect.setOpacityMask": ('PySide2.QtGui.QBrush',),
-# class PySide2.QtWidgets.QGraphicsPathItem:
- "PySide2.QtWidgets.QGraphicsPathItem.__init__": [('PySide2.QtGui.QPainterPath', 'PySide2.QtWidgets.QGraphicsItem'), ('PySide2.QtWidgets.QGraphicsItem',)],
- "PySide2.QtWidgets.QGraphicsPathItem.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsPathItem.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsPathItem.extension": ('typing.Any',),
- "PySide2.QtWidgets.QGraphicsPathItem.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsPathItem.opaqueArea": (),
- "PySide2.QtWidgets.QGraphicsPathItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsPathItem.path": (),
- "PySide2.QtWidgets.QGraphicsPathItem.setPath": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtWidgets.QGraphicsPathItem.shape": (),
- "PySide2.QtWidgets.QGraphicsPathItem.type": (),
-# class PySide2.QtWidgets.QGraphicsPixmapItem:
-# class PySide2.QtWidgets.QGraphicsPixmapItem.ShapeMode:
- "PySide2.QtWidgets.QGraphicsPixmapItem.__init__": [('PySide2.QtGui.QPixmap', 'PySide2.QtWidgets.QGraphicsItem'), ('PySide2.QtWidgets.QGraphicsItem',)],
- "PySide2.QtWidgets.QGraphicsPixmapItem.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsPixmapItem.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsPixmapItem.extension": ('typing.Any',),
- "PySide2.QtWidgets.QGraphicsPixmapItem.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsPixmapItem.offset": (),
- "PySide2.QtWidgets.QGraphicsPixmapItem.opaqueArea": (),
- "PySide2.QtWidgets.QGraphicsPixmapItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsPixmapItem.pixmap": (),
- "PySide2.QtWidgets.QGraphicsPixmapItem.setOffset": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtWidgets.QGraphicsPixmapItem.setPixmap": ('PySide2.QtGui.QPixmap',),
- "PySide2.QtWidgets.QGraphicsPixmapItem.setShapeMode": ('PySide2.QtWidgets.QGraphicsPixmapItem.ShapeMode',),
- "PySide2.QtWidgets.QGraphicsPixmapItem.setTransformationMode": ('PySide2.QtCore.Qt.TransformationMode',),
- "PySide2.QtWidgets.QGraphicsPixmapItem.shape": (),
- "PySide2.QtWidgets.QGraphicsPixmapItem.shapeMode": (),
- "PySide2.QtWidgets.QGraphicsPixmapItem.transformationMode": (),
- "PySide2.QtWidgets.QGraphicsPixmapItem.type": (),
-# class PySide2.QtWidgets.QGraphicsPolygonItem:
- "PySide2.QtWidgets.QGraphicsPolygonItem.__init__": [('PySide2.QtGui.QPolygonF', 'PySide2.QtWidgets.QGraphicsItem'), ('PySide2.QtWidgets.QGraphicsItem',)],
- "PySide2.QtWidgets.QGraphicsPolygonItem.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsPolygonItem.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsPolygonItem.extension": ('typing.Any',),
- "PySide2.QtWidgets.QGraphicsPolygonItem.fillRule": (),
- "PySide2.QtWidgets.QGraphicsPolygonItem.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsPolygonItem.opaqueArea": (),
- "PySide2.QtWidgets.QGraphicsPolygonItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsPolygonItem.polygon": (),
- "PySide2.QtWidgets.QGraphicsPolygonItem.setFillRule": ('PySide2.QtCore.Qt.FillRule',),
- "PySide2.QtWidgets.QGraphicsPolygonItem.setPolygon": ('PySide2.QtGui.QPolygonF',),
- "PySide2.QtWidgets.QGraphicsPolygonItem.shape": (),
- "PySide2.QtWidgets.QGraphicsPolygonItem.type": (),
-# class PySide2.QtWidgets.QGraphicsProxyWidget:
- "PySide2.QtWidgets.QGraphicsProxyWidget.__init__": ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QGraphicsProxyWidget.contextMenuEvent": ('PySide2.QtWidgets.QGraphicsSceneContextMenuEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.createProxyForChildWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.dragEnterEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.dragLeaveEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.dragMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.dropEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QGraphicsProxyWidget.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.grabMouseEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.hoverEnterEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.hoverLeaveEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.hoverMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.inputMethodQuery": ('PySide2.QtCore.Qt.InputMethodQuery',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.itemChange": ('PySide2.QtWidgets.QGraphicsItem.GraphicsItemChange', 'typing.Any'),
- "PySide2.QtWidgets.QGraphicsProxyWidget.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.mouseDoubleClickEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.mouseMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.mousePressEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.mouseReleaseEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.newProxyWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsProxyWidget.resizeEvent": ('PySide2.QtWidgets.QGraphicsSceneResizeEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.setGeometry": ('PySide2.QtCore.QRectF',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.setWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.sizeHint": ('PySide2.QtCore.Qt.SizeHint', 'PySide2.QtCore.QSizeF'),
- "PySide2.QtWidgets.QGraphicsProxyWidget.subWidgetRect": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.type": (),
- "PySide2.QtWidgets.QGraphicsProxyWidget.ungrabMouseEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.wheelEvent": ('PySide2.QtWidgets.QGraphicsSceneWheelEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.widget": (),
-# class PySide2.QtWidgets.QGraphicsRectItem:
- "PySide2.QtWidgets.QGraphicsRectItem.__init__": [('PySide2.QtCore.QRectF', 'PySide2.QtWidgets.QGraphicsItem'), ('PySide2.QtWidgets.QGraphicsItem',), ('float', 'float', 'float', 'float', 'PySide2.QtWidgets.QGraphicsItem')],
- "PySide2.QtWidgets.QGraphicsRectItem.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsRectItem.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsRectItem.extension": ('typing.Any',),
- "PySide2.QtWidgets.QGraphicsRectItem.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsRectItem.opaqueArea": (),
- "PySide2.QtWidgets.QGraphicsRectItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsRectItem.rect": (),
- "PySide2.QtWidgets.QGraphicsRectItem.setRect": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsRectItem.shape": (),
- "PySide2.QtWidgets.QGraphicsRectItem.type": (),
-# class PySide2.QtWidgets.QGraphicsRotation:
- "PySide2.QtWidgets.QGraphicsRotation.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGraphicsRotation.angle": (),
- "PySide2.QtWidgets.QGraphicsRotation.applyTo": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtWidgets.QGraphicsRotation.axis": (),
- "PySide2.QtWidgets.QGraphicsRotation.origin": (),
- "PySide2.QtWidgets.QGraphicsRotation.setAngle": ('float',),
- "PySide2.QtWidgets.QGraphicsRotation.setAxis": [('PySide2.QtCore.Qt.Axis',), ('PySide2.QtGui.QVector3D',)],
- "PySide2.QtWidgets.QGraphicsRotation.setOrigin": ('PySide2.QtGui.QVector3D',),
-# class PySide2.QtWidgets.QGraphicsScale:
- "PySide2.QtWidgets.QGraphicsScale.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGraphicsScale.applyTo": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtWidgets.QGraphicsScale.origin": (),
- "PySide2.QtWidgets.QGraphicsScale.setOrigin": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtWidgets.QGraphicsScale.setXScale": ('float',),
- "PySide2.QtWidgets.QGraphicsScale.setYScale": ('float',),
- "PySide2.QtWidgets.QGraphicsScale.setZScale": ('float',),
- "PySide2.QtWidgets.QGraphicsScale.xScale": (),
- "PySide2.QtWidgets.QGraphicsScale.yScale": (),
- "PySide2.QtWidgets.QGraphicsScale.zScale": (),
-# class PySide2.QtWidgets.QGraphicsScene:
-# class PySide2.QtWidgets.QGraphicsScene.ItemIndexMethod:
-# class PySide2.QtWidgets.QGraphicsScene.SceneLayer:
-# class PySide2.QtWidgets.QGraphicsScene.SceneLayers:
- "PySide2.QtWidgets.QGraphicsScene.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtCore.QRectF', 'PySide2.QtCore.QObject'), ('float', 'float', 'float', 'float', 'PySide2.QtCore.QObject')],
- "PySide2.QtWidgets.QGraphicsScene.activePanel": (),
- "PySide2.QtWidgets.QGraphicsScene.activeWindow": (),
- "PySide2.QtWidgets.QGraphicsScene.addEllipse": [('PySide2.QtCore.QRectF', 'PySide2.QtGui.QPen', 'PySide2.QtGui.QBrush'), ('float', 'float', 'float', 'float', 'PySide2.QtGui.QPen', 'PySide2.QtGui.QBrush')],
- "PySide2.QtWidgets.QGraphicsScene.addItem": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsScene.addLine": [('PySide2.QtCore.QLineF', 'PySide2.QtGui.QPen'), ('float', 'float', 'float', 'float', 'PySide2.QtGui.QPen')],
- "PySide2.QtWidgets.QGraphicsScene.addPath": ('PySide2.QtGui.QPainterPath', 'PySide2.QtGui.QPen', 'PySide2.QtGui.QBrush'),
- "PySide2.QtWidgets.QGraphicsScene.addPixmap": ('PySide2.QtGui.QPixmap',),
- "PySide2.QtWidgets.QGraphicsScene.addPolygon": ('PySide2.QtGui.QPolygonF', 'PySide2.QtGui.QPen', 'PySide2.QtGui.QBrush'),
- "PySide2.QtWidgets.QGraphicsScene.addRect": [('PySide2.QtCore.QRectF', 'PySide2.QtGui.QPen', 'PySide2.QtGui.QBrush'), ('float', 'float', 'float', 'float', 'PySide2.QtGui.QPen', 'PySide2.QtGui.QBrush')],
- "PySide2.QtWidgets.QGraphicsScene.addSimpleText": ('str', 'PySide2.QtGui.QFont'),
- "PySide2.QtWidgets.QGraphicsScene.addText": ('str', 'PySide2.QtGui.QFont'),
- "PySide2.QtWidgets.QGraphicsScene.addWidget": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QGraphicsScene.advance": (),
- "PySide2.QtWidgets.QGraphicsScene.backgroundBrush": (),
- "PySide2.QtWidgets.QGraphicsScene.bspTreeDepth": (),
- "PySide2.QtWidgets.QGraphicsScene.clear": (),
- "PySide2.QtWidgets.QGraphicsScene.clearFocus": (),
- "PySide2.QtWidgets.QGraphicsScene.clearSelection": (),
- "PySide2.QtWidgets.QGraphicsScene.collidingItems": ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.Qt.ItemSelectionMode'),
- "PySide2.QtWidgets.QGraphicsScene.contextMenuEvent": ('PySide2.QtWidgets.QGraphicsSceneContextMenuEvent',),
- "PySide2.QtWidgets.QGraphicsScene.createItemGroup": ('typing.Sequence[PySide2.QtWidgets.QGraphicsItem]',),
- "PySide2.QtWidgets.QGraphicsScene.destroyItemGroup": ('PySide2.QtWidgets.QGraphicsItemGroup',),
- "PySide2.QtWidgets.QGraphicsScene.dragEnterEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsScene.dragLeaveEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsScene.dragMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsScene.drawBackground": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF'),
- "PySide2.QtWidgets.QGraphicsScene.drawForeground": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF'),
- "PySide2.QtWidgets.QGraphicsScene.dropEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsScene.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsScene.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QGraphicsScene.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsScene.focusItem": (),
- "PySide2.QtWidgets.QGraphicsScene.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QGraphicsScene.focusOnTouch": (),
- "PySide2.QtWidgets.QGraphicsScene.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsScene.font": (),
- "PySide2.QtWidgets.QGraphicsScene.foregroundBrush": (),
- "PySide2.QtWidgets.QGraphicsScene.hasFocus": (),
- "PySide2.QtWidgets.QGraphicsScene.height": (),
- "PySide2.QtWidgets.QGraphicsScene.helpEvent": ('PySide2.QtWidgets.QGraphicsSceneHelpEvent',),
- "PySide2.QtWidgets.QGraphicsScene.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QGraphicsScene.inputMethodQuery": ('PySide2.QtCore.Qt.InputMethodQuery',),
- "PySide2.QtWidgets.QGraphicsScene.invalidate": [('PySide2.QtCore.QRectF', 'PySide2.QtWidgets.QGraphicsScene.SceneLayers'), ('float', 'float', 'float', 'float', 'PySide2.QtWidgets.QGraphicsScene.SceneLayers')],
- "PySide2.QtWidgets.QGraphicsScene.isActive": (),
- "PySide2.QtWidgets.QGraphicsScene.isSortCacheEnabled": (),
- "PySide2.QtWidgets.QGraphicsScene.itemAt": [('PySide2.QtCore.QPointF', 'PySide2.QtGui.QTransform'), ('float', 'float', 'PySide2.QtGui.QTransform')],
- "PySide2.QtWidgets.QGraphicsScene.itemIndexMethod": (),
- "PySide2.QtWidgets.QGraphicsScene.items": [('PySide2.QtCore.QPointF', 'PySide2.QtCore.Qt.ItemSelectionMode', 'PySide2.QtCore.Qt.SortOrder', 'PySide2.QtGui.QTransform'), ('PySide2.QtCore.QRectF', 'PySide2.QtCore.Qt.ItemSelectionMode', 'PySide2.QtCore.Qt.SortOrder', 'PySide2.QtGui.QTransform'), ('PySide2.QtCore.Qt.SortOrder',), ('PySide2.QtGui.QPainterPath', 'PySide2.QtCore.Qt.ItemSelectionMode', 'PySide2.QtCore.Qt.SortOrder', 'PySide2.QtGui.QTransform'), ('PySide2.QtGui.QPolygonF', 'PySide2.QtCore.Qt.ItemSelectionMode', 'PySide2.QtCore.Qt.SortOrder', 'PySide2.QtGui.QTransform'), ('float', 'float', 'float', 'float', 'PySide2.QtCore.Qt.ItemSelectionMode', 'PySide2.QtCore.Qt.SortOrder', 'PySide2.QtGui.QTransform')],
- "PySide2.QtWidgets.QGraphicsScene.itemsBoundingRect": (),
- "PySide2.QtWidgets.QGraphicsScene.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QGraphicsScene.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QGraphicsScene.minimumRenderSize": (),
- "PySide2.QtWidgets.QGraphicsScene.mouseDoubleClickEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsScene.mouseGrabberItem": (),
- "PySide2.QtWidgets.QGraphicsScene.mouseMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsScene.mousePressEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsScene.mouseReleaseEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsScene.palette": (),
- "PySide2.QtWidgets.QGraphicsScene.removeItem": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsScene.render": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF', 'PySide2.QtCore.QRectF', 'PySide2.QtCore.Qt.AspectRatioMode'),
- "PySide2.QtWidgets.QGraphicsScene.sceneRect": (),
- "PySide2.QtWidgets.QGraphicsScene.selectedItems": (),
- "PySide2.QtWidgets.QGraphicsScene.selectionArea": (),
- "PySide2.QtWidgets.QGraphicsScene.sendEvent": ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QGraphicsScene.setActivePanel": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsScene.setActiveWindow": ('PySide2.QtWidgets.QGraphicsWidget',),
- "PySide2.QtWidgets.QGraphicsScene.setBackgroundBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtWidgets.QGraphicsScene.setBspTreeDepth": ('int',),
- "PySide2.QtWidgets.QGraphicsScene.setFocus": ('PySide2.QtCore.Qt.FocusReason',),
- "PySide2.QtWidgets.QGraphicsScene.setFocusItem": ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.Qt.FocusReason'),
- "PySide2.QtWidgets.QGraphicsScene.setFocusOnTouch": ('bool',),
- "PySide2.QtWidgets.QGraphicsScene.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QGraphicsScene.setForegroundBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtWidgets.QGraphicsScene.setItemIndexMethod": ('PySide2.QtWidgets.QGraphicsScene.ItemIndexMethod',),
- "PySide2.QtWidgets.QGraphicsScene.setMinimumRenderSize": ('float',),
- "PySide2.QtWidgets.QGraphicsScene.setPalette": ('PySide2.QtGui.QPalette',),
- "PySide2.QtWidgets.QGraphicsScene.setSceneRect": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsScene.setSelectionArea": [('PySide2.QtGui.QPainterPath', 'PySide2.QtCore.Qt.ItemSelectionMode', 'PySide2.QtGui.QTransform'), ('PySide2.QtGui.QPainterPath', 'PySide2.QtCore.Qt.ItemSelectionOperation', 'PySide2.QtCore.Qt.ItemSelectionMode', 'PySide2.QtGui.QTransform'), ('PySide2.QtGui.QPainterPath', 'PySide2.QtGui.QTransform')],
- "PySide2.QtWidgets.QGraphicsScene.setSortCacheEnabled": ('bool',),
- "PySide2.QtWidgets.QGraphicsScene.setStickyFocus": ('bool',),
- "PySide2.QtWidgets.QGraphicsScene.setStyle": ('PySide2.QtWidgets.QStyle',),
- "PySide2.QtWidgets.QGraphicsScene.stickyFocus": (),
- "PySide2.QtWidgets.QGraphicsScene.style": (),
- "PySide2.QtWidgets.QGraphicsScene.update": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsScene.views": (),
- "PySide2.QtWidgets.QGraphicsScene.wheelEvent": ('PySide2.QtWidgets.QGraphicsSceneWheelEvent',),
- "PySide2.QtWidgets.QGraphicsScene.width": (),
-# class PySide2.QtWidgets.QGraphicsSceneContextMenuEvent:
-# class PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.Reason:
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.__init__": ('PySide2.QtCore.QEvent.Type',),
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.modifiers": (),
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.pos": (),
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.reason": (),
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.scenePos": (),
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.screenPos": (),
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.setModifiers": ('PySide2.QtCore.Qt.KeyboardModifiers',),
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.setPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.setReason": ('PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.Reason',),
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.setScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.setScreenPos": ('PySide2.QtCore.QPoint',),
-# class PySide2.QtWidgets.QGraphicsSceneDragDropEvent:
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.__init__": ('PySide2.QtCore.QEvent.Type',),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.acceptProposedAction": (),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.buttons": (),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.dropAction": (),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.mimeData": (),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.modifiers": (),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.pos": (),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.possibleActions": (),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.proposedAction": (),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.scenePos": (),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.screenPos": (),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.setButtons": ('PySide2.QtCore.Qt.MouseButtons',),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.setDropAction": ('PySide2.QtCore.Qt.DropAction',),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.setModifiers": ('PySide2.QtCore.Qt.KeyboardModifiers',),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.setPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.setPossibleActions": ('PySide2.QtCore.Qt.DropActions',),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.setProposedAction": ('PySide2.QtCore.Qt.DropAction',),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.setScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.setScreenPos": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.source": (),
-# class PySide2.QtWidgets.QGraphicsSceneEvent:
- "PySide2.QtWidgets.QGraphicsSceneEvent.__init__": ('PySide2.QtCore.QEvent.Type',),
- "PySide2.QtWidgets.QGraphicsSceneEvent.widget": (),
-# class PySide2.QtWidgets.QGraphicsSceneHelpEvent:
- "PySide2.QtWidgets.QGraphicsSceneHelpEvent.__init__": ('PySide2.QtCore.QEvent.Type',),
- "PySide2.QtWidgets.QGraphicsSceneHelpEvent.scenePos": (),
- "PySide2.QtWidgets.QGraphicsSceneHelpEvent.screenPos": (),
- "PySide2.QtWidgets.QGraphicsSceneHelpEvent.setScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneHelpEvent.setScreenPos": ('PySide2.QtCore.QPoint',),
-# class PySide2.QtWidgets.QGraphicsSceneHoverEvent:
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.__init__": ('PySide2.QtCore.QEvent.Type',),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.lastPos": (),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.lastScenePos": (),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.lastScreenPos": (),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.modifiers": (),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.pos": (),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.scenePos": (),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.screenPos": (),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.setLastPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.setLastScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.setLastScreenPos": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.setModifiers": ('PySide2.QtCore.Qt.KeyboardModifiers',),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.setPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.setScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.setScreenPos": ('PySide2.QtCore.QPoint',),
-# class PySide2.QtWidgets.QGraphicsSceneMouseEvent:
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.__init__": ('PySide2.QtCore.QEvent.Type',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.button": (),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.buttonDownPos": ('PySide2.QtCore.Qt.MouseButton',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.buttonDownScenePos": ('PySide2.QtCore.Qt.MouseButton',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.buttonDownScreenPos": ('PySide2.QtCore.Qt.MouseButton',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.buttons": (),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.flags": (),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.lastPos": (),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.lastScenePos": (),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.lastScreenPos": (),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.modifiers": (),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.pos": (),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.scenePos": (),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.screenPos": (),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setButton": ('PySide2.QtCore.Qt.MouseButton',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setButtonDownPos": ('PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.QPointF'),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setButtonDownScenePos": ('PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.QPointF'),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setButtonDownScreenPos": ('PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.QPoint'),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setButtons": ('PySide2.QtCore.Qt.MouseButtons',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setFlags": ('PySide2.QtCore.Qt.MouseEventFlags',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setLastPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setLastScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setLastScreenPos": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setModifiers": ('PySide2.QtCore.Qt.KeyboardModifiers',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setScreenPos": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setSource": ('PySide2.QtCore.Qt.MouseEventSource',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.source": (),
-# class PySide2.QtWidgets.QGraphicsSceneMoveEvent:
- "PySide2.QtWidgets.QGraphicsSceneMoveEvent.__init__": (),
- "PySide2.QtWidgets.QGraphicsSceneMoveEvent.newPos": (),
- "PySide2.QtWidgets.QGraphicsSceneMoveEvent.oldPos": (),
- "PySide2.QtWidgets.QGraphicsSceneMoveEvent.setNewPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneMoveEvent.setOldPos": ('PySide2.QtCore.QPointF',),
-# class PySide2.QtWidgets.QGraphicsSceneResizeEvent:
- "PySide2.QtWidgets.QGraphicsSceneResizeEvent.__init__": (),
- "PySide2.QtWidgets.QGraphicsSceneResizeEvent.newSize": (),
- "PySide2.QtWidgets.QGraphicsSceneResizeEvent.oldSize": (),
- "PySide2.QtWidgets.QGraphicsSceneResizeEvent.setNewSize": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtWidgets.QGraphicsSceneResizeEvent.setOldSize": ('PySide2.QtCore.QSizeF',),
-# class PySide2.QtWidgets.QGraphicsSceneWheelEvent:
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.__init__": ('PySide2.QtCore.QEvent.Type',),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.buttons": (),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.delta": (),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.modifiers": (),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.orientation": (),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.pos": (),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.scenePos": (),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.screenPos": (),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.setButtons": ('PySide2.QtCore.Qt.MouseButtons',),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.setDelta": ('int',),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.setModifiers": ('PySide2.QtCore.Qt.KeyboardModifiers',),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.setPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.setScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.setScreenPos": ('PySide2.QtCore.QPoint',),
-# class PySide2.QtWidgets.QGraphicsSimpleTextItem:
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.__init__": [('PySide2.QtWidgets.QGraphicsItem',), ('str', 'PySide2.QtWidgets.QGraphicsItem')],
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.extension": ('typing.Any',),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.font": (),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.opaqueArea": (),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.setText": ('str',),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.shape": (),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.text": (),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.type": (),
-# class PySide2.QtWidgets.QGraphicsTextItem:
- "PySide2.QtWidgets.QGraphicsTextItem.__init__": [('PySide2.QtWidgets.QGraphicsItem',), ('str', 'PySide2.QtWidgets.QGraphicsItem')],
- "PySide2.QtWidgets.QGraphicsTextItem.adjustSize": (),
- "PySide2.QtWidgets.QGraphicsTextItem.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsTextItem.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsTextItem.contextMenuEvent": ('PySide2.QtWidgets.QGraphicsSceneContextMenuEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.defaultTextColor": (),
- "PySide2.QtWidgets.QGraphicsTextItem.document": (),
- "PySide2.QtWidgets.QGraphicsTextItem.dragEnterEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.dragLeaveEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.dragMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.dropEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.extension": ('typing.Any',),
- "PySide2.QtWidgets.QGraphicsTextItem.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.font": (),
- "PySide2.QtWidgets.QGraphicsTextItem.hoverEnterEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.hoverLeaveEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.hoverMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.inputMethodQuery": ('PySide2.QtCore.Qt.InputMethodQuery',),
- "PySide2.QtWidgets.QGraphicsTextItem.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsTextItem.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.mouseDoubleClickEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.mouseMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.mousePressEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.mouseReleaseEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.opaqueArea": (),
- "PySide2.QtWidgets.QGraphicsTextItem.openExternalLinks": (),
- "PySide2.QtWidgets.QGraphicsTextItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsTextItem.sceneEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.setDefaultTextColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QGraphicsTextItem.setDocument": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtWidgets.QGraphicsTextItem.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QGraphicsTextItem.setHtml": ('str',),
- "PySide2.QtWidgets.QGraphicsTextItem.setOpenExternalLinks": ('bool',),
- "PySide2.QtWidgets.QGraphicsTextItem.setPlainText": ('str',),
- "PySide2.QtWidgets.QGraphicsTextItem.setTabChangesFocus": ('bool',),
- "PySide2.QtWidgets.QGraphicsTextItem.setTextCursor": ('PySide2.QtGui.QTextCursor',),
- "PySide2.QtWidgets.QGraphicsTextItem.setTextInteractionFlags": ('PySide2.QtCore.Qt.TextInteractionFlags',),
- "PySide2.QtWidgets.QGraphicsTextItem.setTextWidth": ('float',),
- "PySide2.QtWidgets.QGraphicsTextItem.shape": (),
- "PySide2.QtWidgets.QGraphicsTextItem.tabChangesFocus": (),
- "PySide2.QtWidgets.QGraphicsTextItem.textCursor": (),
- "PySide2.QtWidgets.QGraphicsTextItem.textInteractionFlags": (),
- "PySide2.QtWidgets.QGraphicsTextItem.textWidth": (),
- "PySide2.QtWidgets.QGraphicsTextItem.toHtml": (),
- "PySide2.QtWidgets.QGraphicsTextItem.toPlainText": (),
- "PySide2.QtWidgets.QGraphicsTextItem.type": (),
-# class PySide2.QtWidgets.QGraphicsTransform:
- "PySide2.QtWidgets.QGraphicsTransform.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGraphicsTransform.applyTo": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtWidgets.QGraphicsTransform.update": (),
-# class PySide2.QtWidgets.QGraphicsView:
-# class PySide2.QtWidgets.QGraphicsView.CacheMode:
-# class PySide2.QtWidgets.QGraphicsView.CacheModeFlag:
-# class PySide2.QtWidgets.QGraphicsView.DragMode:
-# class PySide2.QtWidgets.QGraphicsView.OptimizationFlag:
-# class PySide2.QtWidgets.QGraphicsView.OptimizationFlags:
-# class PySide2.QtWidgets.QGraphicsView.ViewportAnchor:
-# class PySide2.QtWidgets.QGraphicsView.ViewportUpdateMode:
- "PySide2.QtWidgets.QGraphicsView.__init__": [('PySide2.QtWidgets.QGraphicsScene', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QGraphicsView.alignment": (),
- "PySide2.QtWidgets.QGraphicsView.backgroundBrush": (),
- "PySide2.QtWidgets.QGraphicsView.cacheMode": (),
- "PySide2.QtWidgets.QGraphicsView.centerOn": [('PySide2.QtCore.QPointF',), ('PySide2.QtWidgets.QGraphicsItem',), ('float', 'float')],
- "PySide2.QtWidgets.QGraphicsView.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QGraphicsView.dragEnterEvent": ('PySide2.QtGui.QDragEnterEvent',),
- "PySide2.QtWidgets.QGraphicsView.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtWidgets.QGraphicsView.dragMode": (),
- "PySide2.QtWidgets.QGraphicsView.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtWidgets.QGraphicsView.drawBackground": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF'),
- "PySide2.QtWidgets.QGraphicsView.drawForeground": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF'),
- "PySide2.QtWidgets.QGraphicsView.drawItems": ('PySide2.QtGui.QPainter', 'int', 'typing.Sequence[PySide2.QtWidgets.QGraphicsItem]', 'typing.Sequence[PySide2.QtWidgets.QStyleOptionGraphicsItem]'),
- "PySide2.QtWidgets.QGraphicsView.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QGraphicsView.ensureVisible": [('PySide2.QtCore.QRectF', 'int', 'int'), ('PySide2.QtWidgets.QGraphicsItem', 'int', 'int'), ('float', 'float', 'float', 'float', 'int', 'int')],
- "PySide2.QtWidgets.QGraphicsView.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsView.fitInView": [('PySide2.QtCore.QRectF', 'PySide2.QtCore.Qt.AspectRatioMode'), ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.Qt.AspectRatioMode'), ('float', 'float', 'float', 'float', 'PySide2.QtCore.Qt.AspectRatioMode')],
- "PySide2.QtWidgets.QGraphicsView.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsView.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QGraphicsView.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsView.foregroundBrush": (),
- "PySide2.QtWidgets.QGraphicsView.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QGraphicsView.inputMethodQuery": ('PySide2.QtCore.Qt.InputMethodQuery',),
- "PySide2.QtWidgets.QGraphicsView.invalidateScene": ('PySide2.QtCore.QRectF', 'PySide2.QtWidgets.QGraphicsScene.SceneLayers'),
- "PySide2.QtWidgets.QGraphicsView.isInteractive": (),
- "PySide2.QtWidgets.QGraphicsView.isTransformed": (),
- "PySide2.QtWidgets.QGraphicsView.itemAt": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtWidgets.QGraphicsView.items": [(), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QRect', 'PySide2.QtCore.Qt.ItemSelectionMode'), ('PySide2.QtGui.QPainterPath', 'PySide2.QtCore.Qt.ItemSelectionMode'), ('PySide2.QtGui.QPolygon', 'PySide2.QtCore.Qt.ItemSelectionMode'), ('int', 'int'), ('int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.ItemSelectionMode')],
- "PySide2.QtWidgets.QGraphicsView.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QGraphicsView.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QGraphicsView.mapFromScene": [('PySide2.QtCore.QPointF',), ('PySide2.QtCore.QRectF',), ('PySide2.QtGui.QPainterPath',), ('PySide2.QtGui.QPolygonF',), ('float', 'float'), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsView.mapToScene": [('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QRect',), ('PySide2.QtGui.QPainterPath',), ('PySide2.QtGui.QPolygon',), ('int', 'int'), ('int', 'int', 'int', 'int')],
- "PySide2.QtWidgets.QGraphicsView.matrix": (),
- "PySide2.QtWidgets.QGraphicsView.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QGraphicsView.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QGraphicsView.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QGraphicsView.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QGraphicsView.optimizationFlags": (),
- "PySide2.QtWidgets.QGraphicsView.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QGraphicsView.render": [('PySide2.QtGui.QPaintDevice', 'PySide2.QtCore.QPoint', 'PySide2.QtGui.QRegion', 'PySide2.QtWidgets.QWidget.RenderFlags'), ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF', 'PySide2.QtCore.QRect', 'PySide2.QtCore.Qt.AspectRatioMode')],
- "PySide2.QtWidgets.QGraphicsView.renderHints": (),
- "PySide2.QtWidgets.QGraphicsView.resetCachedContent": (),
- "PySide2.QtWidgets.QGraphicsView.resetMatrix": (),
- "PySide2.QtWidgets.QGraphicsView.resetTransform": (),
- "PySide2.QtWidgets.QGraphicsView.resizeAnchor": (),
- "PySide2.QtWidgets.QGraphicsView.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QGraphicsView.rotate": ('float',),
- "PySide2.QtWidgets.QGraphicsView.rubberBandRect": (),
- "PySide2.QtWidgets.QGraphicsView.rubberBandSelectionMode": (),
- "PySide2.QtWidgets.QGraphicsView.scale": ('float', 'float'),
- "PySide2.QtWidgets.QGraphicsView.scene": (),
- "PySide2.QtWidgets.QGraphicsView.sceneRect": (),
- "PySide2.QtWidgets.QGraphicsView.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QGraphicsView.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QGraphicsView.setBackgroundBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtWidgets.QGraphicsView.setCacheMode": ('PySide2.QtWidgets.QGraphicsView.CacheMode',),
- "PySide2.QtWidgets.QGraphicsView.setDragMode": ('PySide2.QtWidgets.QGraphicsView.DragMode',),
- "PySide2.QtWidgets.QGraphicsView.setForegroundBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtWidgets.QGraphicsView.setInteractive": ('bool',),
- "PySide2.QtWidgets.QGraphicsView.setMatrix": ('PySide2.QtGui.QMatrix', 'bool'),
- "PySide2.QtWidgets.QGraphicsView.setOptimizationFlag": ('PySide2.QtWidgets.QGraphicsView.OptimizationFlag', 'bool'),
- "PySide2.QtWidgets.QGraphicsView.setOptimizationFlags": ('PySide2.QtWidgets.QGraphicsView.OptimizationFlags',),
- "PySide2.QtWidgets.QGraphicsView.setRenderHint": ('PySide2.QtGui.QPainter.RenderHint', 'bool'),
- "PySide2.QtWidgets.QGraphicsView.setRenderHints": ('PySide2.QtGui.QPainter.RenderHints',),
- "PySide2.QtWidgets.QGraphicsView.setResizeAnchor": ('PySide2.QtWidgets.QGraphicsView.ViewportAnchor',),
- "PySide2.QtWidgets.QGraphicsView.setRubberBandSelectionMode": ('PySide2.QtCore.Qt.ItemSelectionMode',),
- "PySide2.QtWidgets.QGraphicsView.setScene": ('PySide2.QtWidgets.QGraphicsScene',),
- "PySide2.QtWidgets.QGraphicsView.setSceneRect": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsView.setTransform": ('PySide2.QtGui.QTransform', 'bool'),
- "PySide2.QtWidgets.QGraphicsView.setTransformationAnchor": ('PySide2.QtWidgets.QGraphicsView.ViewportAnchor',),
- "PySide2.QtWidgets.QGraphicsView.setViewportUpdateMode": ('PySide2.QtWidgets.QGraphicsView.ViewportUpdateMode',),
- "PySide2.QtWidgets.QGraphicsView.setupViewport": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QGraphicsView.shear": ('float', 'float'),
- "PySide2.QtWidgets.QGraphicsView.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QGraphicsView.sizeHint": (),
- "PySide2.QtWidgets.QGraphicsView.transform": (),
- "PySide2.QtWidgets.QGraphicsView.transformationAnchor": (),
- "PySide2.QtWidgets.QGraphicsView.translate": ('float', 'float'),
- "PySide2.QtWidgets.QGraphicsView.updateScene": ('typing.Sequence[PySide2.QtCore.QRectF]',),
- "PySide2.QtWidgets.QGraphicsView.updateSceneRect": ('PySide2.QtCore.QRectF',),
- "PySide2.QtWidgets.QGraphicsView.viewportEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsView.viewportTransform": (),
- "PySide2.QtWidgets.QGraphicsView.viewportUpdateMode": (),
- "PySide2.QtWidgets.QGraphicsView.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtWidgets.QGraphicsWidget:
- "PySide2.QtWidgets.QGraphicsWidget.__init__": ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QGraphicsWidget.actions": (),
- "PySide2.QtWidgets.QGraphicsWidget.addAction": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QGraphicsWidget.addActions": ('typing.Sequence[PySide2.QtWidgets.QAction]',),
- "PySide2.QtWidgets.QGraphicsWidget.adjustSize": (),
- "PySide2.QtWidgets.QGraphicsWidget.autoFillBackground": (),
- "PySide2.QtWidgets.QGraphicsWidget.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsWidget.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.close": (),
- "PySide2.QtWidgets.QGraphicsWidget.closeEvent": ('PySide2.QtGui.QCloseEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QGraphicsWidget.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.focusPolicy": (),
- "PySide2.QtWidgets.QGraphicsWidget.focusWidget": (),
- "PySide2.QtWidgets.QGraphicsWidget.font": (),
- "PySide2.QtWidgets.QGraphicsWidget.getContentsMargins": (),
- "PySide2.QtWidgets.QGraphicsWidget.getWindowFrameMargins": (),
- "PySide2.QtWidgets.QGraphicsWidget.grabKeyboardEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.grabMouseEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.grabShortcut": ('PySide2.QtGui.QKeySequence', 'PySide2.QtCore.Qt.ShortcutContext'),
- "PySide2.QtWidgets.QGraphicsWidget.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.hoverLeaveEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.hoverMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.initStyleOption": ('PySide2.QtWidgets.QStyleOption',),
- "PySide2.QtWidgets.QGraphicsWidget.insertAction": ('PySide2.QtWidgets.QAction', 'PySide2.QtWidgets.QAction'),
- "PySide2.QtWidgets.QGraphicsWidget.insertActions": ('PySide2.QtWidgets.QAction', 'typing.Sequence[PySide2.QtWidgets.QAction]'),
- "PySide2.QtWidgets.QGraphicsWidget.isActiveWindow": (),
- "PySide2.QtWidgets.QGraphicsWidget.itemChange": ('PySide2.QtWidgets.QGraphicsItem.GraphicsItemChange', 'typing.Any'),
- "PySide2.QtWidgets.QGraphicsWidget.layout": (),
- "PySide2.QtWidgets.QGraphicsWidget.layoutDirection": (),
- "PySide2.QtWidgets.QGraphicsWidget.moveEvent": ('PySide2.QtWidgets.QGraphicsSceneMoveEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsWidget.paintWindowFrame": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsWidget.palette": (),
- "PySide2.QtWidgets.QGraphicsWidget.polishEvent": (),
- "PySide2.QtWidgets.QGraphicsWidget.propertyChange": ('str', 'typing.Any'),
- "PySide2.QtWidgets.QGraphicsWidget.rect": (),
- "PySide2.QtWidgets.QGraphicsWidget.releaseShortcut": ('int',),
- "PySide2.QtWidgets.QGraphicsWidget.removeAction": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QGraphicsWidget.resize": [('PySide2.QtCore.QSizeF',), ('float', 'float')],
- "PySide2.QtWidgets.QGraphicsWidget.resizeEvent": ('PySide2.QtWidgets.QGraphicsSceneResizeEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.sceneEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.setAttribute": ('PySide2.QtCore.Qt.WidgetAttribute', 'bool'),
- "PySide2.QtWidgets.QGraphicsWidget.setAutoFillBackground": ('bool',),
- "PySide2.QtWidgets.QGraphicsWidget.setContentsMargins": [('PySide2.QtCore.QMarginsF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsWidget.setFocusPolicy": ('PySide2.QtCore.Qt.FocusPolicy',),
- "PySide2.QtWidgets.QGraphicsWidget.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QGraphicsWidget.setGeometry": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsWidget.setLayout": ('PySide2.QtWidgets.QGraphicsLayout',),
- "PySide2.QtWidgets.QGraphicsWidget.setLayoutDirection": ('PySide2.QtCore.Qt.LayoutDirection',),
- "PySide2.QtWidgets.QGraphicsWidget.setPalette": ('PySide2.QtGui.QPalette',),
- "PySide2.QtWidgets.QGraphicsWidget.setShortcutAutoRepeat": ('int', 'bool'),
- "PySide2.QtWidgets.QGraphicsWidget.setShortcutEnabled": ('int', 'bool'),
- "PySide2.QtWidgets.QGraphicsWidget.setStyle": ('PySide2.QtWidgets.QStyle',),
- "PySide2.QtWidgets.QGraphicsWidget.setTabOrder": ('PySide2.QtWidgets.QGraphicsWidget', 'PySide2.QtWidgets.QGraphicsWidget'),
- "PySide2.QtWidgets.QGraphicsWidget.setWindowFlags": ('PySide2.QtCore.Qt.WindowFlags',),
- "PySide2.QtWidgets.QGraphicsWidget.setWindowFrameMargins": [('PySide2.QtCore.QMarginsF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsWidget.setWindowTitle": ('str',),
- "PySide2.QtWidgets.QGraphicsWidget.shape": (),
- "PySide2.QtWidgets.QGraphicsWidget.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.size": (),
- "PySide2.QtWidgets.QGraphicsWidget.sizeHint": ('PySide2.QtCore.Qt.SizeHint', 'PySide2.QtCore.QSizeF'),
- "PySide2.QtWidgets.QGraphicsWidget.style": (),
- "PySide2.QtWidgets.QGraphicsWidget.testAttribute": ('PySide2.QtCore.Qt.WidgetAttribute',),
- "PySide2.QtWidgets.QGraphicsWidget.type": (),
- "PySide2.QtWidgets.QGraphicsWidget.ungrabKeyboardEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.ungrabMouseEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.unsetLayoutDirection": (),
- "PySide2.QtWidgets.QGraphicsWidget.unsetWindowFrameMargins": (),
- "PySide2.QtWidgets.QGraphicsWidget.updateGeometry": (),
- "PySide2.QtWidgets.QGraphicsWidget.windowFlags": (),
- "PySide2.QtWidgets.QGraphicsWidget.windowFrameEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.windowFrameGeometry": (),
- "PySide2.QtWidgets.QGraphicsWidget.windowFrameRect": (),
- "PySide2.QtWidgets.QGraphicsWidget.windowFrameSectionAt": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsWidget.windowTitle": (),
- "PySide2.QtWidgets.QGraphicsWidget.windowType": (),
-# class PySide2.QtWidgets.QGridLayout:
- "PySide2.QtWidgets.QGridLayout.__init__": [(), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QGridLayout.addItem": [('PySide2.QtWidgets.QLayoutItem',), ('PySide2.QtWidgets.QLayoutItem', 'int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.Alignment')],
- "PySide2.QtWidgets.QGridLayout.addLayout": [('PySide2.QtWidgets.QLayout', 'int', 'int', 'PySide2.QtCore.Qt.Alignment'), ('PySide2.QtWidgets.QLayout', 'int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.Alignment')],
- "PySide2.QtWidgets.QGridLayout.addWidget": [('PySide2.QtWidgets.QWidget',), ('PySide2.QtWidgets.QWidget', 'int', 'int', 'PySide2.QtCore.Qt.Alignment'), ('PySide2.QtWidgets.QWidget', 'int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.Alignment')],
- "PySide2.QtWidgets.QGridLayout.cellRect": ('int', 'int'),
- "PySide2.QtWidgets.QGridLayout.columnCount": (),
- "PySide2.QtWidgets.QGridLayout.columnMinimumWidth": ('int',),
- "PySide2.QtWidgets.QGridLayout.columnStretch": ('int',),
- "PySide2.QtWidgets.QGridLayout.count": (),
- "PySide2.QtWidgets.QGridLayout.expandingDirections": (),
- "PySide2.QtWidgets.QGridLayout.getItemPosition": ('int',),
- "PySide2.QtWidgets.QGridLayout.hasHeightForWidth": (),
- "PySide2.QtWidgets.QGridLayout.heightForWidth": ('int',),
- "PySide2.QtWidgets.QGridLayout.horizontalSpacing": (),
- "PySide2.QtWidgets.QGridLayout.invalidate": (),
- "PySide2.QtWidgets.QGridLayout.itemAt": ('int',),
- "PySide2.QtWidgets.QGridLayout.itemAtPosition": ('int', 'int'),
- "PySide2.QtWidgets.QGridLayout.maximumSize": (),
- "PySide2.QtWidgets.QGridLayout.minimumHeightForWidth": ('int',),
- "PySide2.QtWidgets.QGridLayout.minimumSize": (),
- "PySide2.QtWidgets.QGridLayout.originCorner": (),
- "PySide2.QtWidgets.QGridLayout.rowCount": (),
- "PySide2.QtWidgets.QGridLayout.rowMinimumHeight": ('int',),
- "PySide2.QtWidgets.QGridLayout.rowStretch": ('int',),
- "PySide2.QtWidgets.QGridLayout.setColumnMinimumWidth": ('int', 'int'),
- "PySide2.QtWidgets.QGridLayout.setColumnStretch": ('int', 'int'),
- "PySide2.QtWidgets.QGridLayout.setDefaultPositioning": ('int', 'PySide2.QtCore.Qt.Orientation'),
- "PySide2.QtWidgets.QGridLayout.setGeometry": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QGridLayout.setHorizontalSpacing": ('int',),
- "PySide2.QtWidgets.QGridLayout.setOriginCorner": ('PySide2.QtCore.Qt.Corner',),
- "PySide2.QtWidgets.QGridLayout.setRowMinimumHeight": ('int', 'int'),
- "PySide2.QtWidgets.QGridLayout.setRowStretch": ('int', 'int'),
- "PySide2.QtWidgets.QGridLayout.setSpacing": ('int',),
- "PySide2.QtWidgets.QGridLayout.setVerticalSpacing": ('int',),
- "PySide2.QtWidgets.QGridLayout.sizeHint": (),
- "PySide2.QtWidgets.QGridLayout.spacing": (),
- "PySide2.QtWidgets.QGridLayout.takeAt": ('int',),
- "PySide2.QtWidgets.QGridLayout.verticalSpacing": (),
-# class PySide2.QtWidgets.QGroupBox:
- "PySide2.QtWidgets.QGroupBox.__init__": [('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QGroupBox.alignment": (),
- "PySide2.QtWidgets.QGroupBox.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGroupBox.childEvent": ('PySide2.QtCore.QChildEvent',),
- "PySide2.QtWidgets.QGroupBox.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGroupBox.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGroupBox.initStyleOption": ('PySide2.QtWidgets.QStyleOptionGroupBox',),
- "PySide2.QtWidgets.QGroupBox.isCheckable": (),
- "PySide2.QtWidgets.QGroupBox.isChecked": (),
- "PySide2.QtWidgets.QGroupBox.isFlat": (),
- "PySide2.QtWidgets.QGroupBox.minimumSizeHint": (),
- "PySide2.QtWidgets.QGroupBox.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QGroupBox.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QGroupBox.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QGroupBox.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QGroupBox.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QGroupBox.setAlignment": ('int',),
- "PySide2.QtWidgets.QGroupBox.setCheckable": ('bool',),
- "PySide2.QtWidgets.QGroupBox.setChecked": ('bool',),
- "PySide2.QtWidgets.QGroupBox.setFlat": ('bool',),
- "PySide2.QtWidgets.QGroupBox.setTitle": ('str',),
- "PySide2.QtWidgets.QGroupBox.title": (),
-# class PySide2.QtWidgets.QHBoxLayout:
- "PySide2.QtWidgets.QHBoxLayout.__init__": [(), ('PySide2.QtWidgets.QWidget',)],
-# class PySide2.QtWidgets.QHeaderView:
-# class PySide2.QtWidgets.QHeaderView.ResizeMode:
- "PySide2.QtWidgets.QHeaderView.__init__": ('PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QHeaderView.cascadingSectionResizes": (),
- "PySide2.QtWidgets.QHeaderView.count": (),
- "PySide2.QtWidgets.QHeaderView.currentChanged": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QHeaderView.dataChanged": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex', 'typing.List[int]'),
- "PySide2.QtWidgets.QHeaderView.defaultAlignment": (),
- "PySide2.QtWidgets.QHeaderView.defaultSectionSize": (),
- "PySide2.QtWidgets.QHeaderView.doItemsLayout": (),
- "PySide2.QtWidgets.QHeaderView.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QHeaderView.headerDataChanged": ('PySide2.QtCore.Qt.Orientation', 'int', 'int'),
- "PySide2.QtWidgets.QHeaderView.hiddenSectionCount": (),
- "PySide2.QtWidgets.QHeaderView.hideSection": ('int',),
- "PySide2.QtWidgets.QHeaderView.highlightSections": (),
- "PySide2.QtWidgets.QHeaderView.horizontalOffset": (),
- "PySide2.QtWidgets.QHeaderView.indexAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QHeaderView.initStyleOption": [('PySide2.QtWidgets.QStyleOptionFrame',), ('PySide2.QtWidgets.QStyleOptionHeader',)],
- "PySide2.QtWidgets.QHeaderView.initialize": (),
- "PySide2.QtWidgets.QHeaderView.initializeSections": [(), ('int', 'int')],
- "PySide2.QtWidgets.QHeaderView.isFirstSectionMovable": (),
- "PySide2.QtWidgets.QHeaderView.isIndexHidden": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QHeaderView.isSectionHidden": ('int',),
- "PySide2.QtWidgets.QHeaderView.isSortIndicatorShown": (),
- "PySide2.QtWidgets.QHeaderView.length": (),
- "PySide2.QtWidgets.QHeaderView.logicalIndex": ('int',),
- "PySide2.QtWidgets.QHeaderView.logicalIndexAt": [('PySide2.QtCore.QPoint',), ('int',), ('int', 'int')],
- "PySide2.QtWidgets.QHeaderView.maximumSectionSize": (),
- "PySide2.QtWidgets.QHeaderView.minimumSectionSize": (),
- "PySide2.QtWidgets.QHeaderView.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QHeaderView.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QHeaderView.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QHeaderView.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QHeaderView.moveCursor": ('PySide2.QtWidgets.QAbstractItemView.CursorAction', 'PySide2.QtCore.Qt.KeyboardModifiers'),
- "PySide2.QtWidgets.QHeaderView.moveSection": ('int', 'int'),
- "PySide2.QtWidgets.QHeaderView.offset": (),
- "PySide2.QtWidgets.QHeaderView.orientation": (),
- "PySide2.QtWidgets.QHeaderView.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QHeaderView.paintSection": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRect', 'int'),
- "PySide2.QtWidgets.QHeaderView.reset": (),
- "PySide2.QtWidgets.QHeaderView.resetDefaultSectionSize": (),
- "PySide2.QtWidgets.QHeaderView.resizeContentsPrecision": (),
- "PySide2.QtWidgets.QHeaderView.resizeSection": ('int', 'int'),
- "PySide2.QtWidgets.QHeaderView.resizeSections": [(), ('PySide2.QtWidgets.QHeaderView.ResizeMode',)],
- "PySide2.QtWidgets.QHeaderView.restoreState": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWidgets.QHeaderView.rowsInserted": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QHeaderView.saveState": (),
- "PySide2.QtWidgets.QHeaderView.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QHeaderView.scrollTo": ('PySide2.QtCore.QModelIndex', 'PySide2.QtWidgets.QAbstractItemView.ScrollHint'),
- "PySide2.QtWidgets.QHeaderView.sectionPosition": ('int',),
- "PySide2.QtWidgets.QHeaderView.sectionResizeMode": ('int',),
- "PySide2.QtWidgets.QHeaderView.sectionSize": ('int',),
- "PySide2.QtWidgets.QHeaderView.sectionSizeFromContents": ('int',),
- "PySide2.QtWidgets.QHeaderView.sectionSizeHint": ('int',),
- "PySide2.QtWidgets.QHeaderView.sectionViewportPosition": ('int',),
- "PySide2.QtWidgets.QHeaderView.sectionsAboutToBeRemoved": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QHeaderView.sectionsClickable": (),
- "PySide2.QtWidgets.QHeaderView.sectionsHidden": (),
- "PySide2.QtWidgets.QHeaderView.sectionsInserted": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QHeaderView.sectionsMovable": (),
- "PySide2.QtWidgets.QHeaderView.sectionsMoved": (),
- "PySide2.QtWidgets.QHeaderView.setCascadingSectionResizes": ('bool',),
- "PySide2.QtWidgets.QHeaderView.setDefaultAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QHeaderView.setDefaultSectionSize": ('int',),
- "PySide2.QtWidgets.QHeaderView.setFirstSectionMovable": ('bool',),
- "PySide2.QtWidgets.QHeaderView.setHighlightSections": ('bool',),
- "PySide2.QtWidgets.QHeaderView.setMaximumSectionSize": ('int',),
- "PySide2.QtWidgets.QHeaderView.setMinimumSectionSize": ('int',),
- "PySide2.QtWidgets.QHeaderView.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QHeaderView.setOffset": ('int',),
- "PySide2.QtWidgets.QHeaderView.setOffsetToLastSection": (),
- "PySide2.QtWidgets.QHeaderView.setOffsetToSectionPosition": ('int',),
- "PySide2.QtWidgets.QHeaderView.setResizeContentsPrecision": ('int',),
- "PySide2.QtWidgets.QHeaderView.setSectionHidden": ('int', 'bool'),
- "PySide2.QtWidgets.QHeaderView.setSectionResizeMode": [('PySide2.QtWidgets.QHeaderView.ResizeMode',), ('int', 'PySide2.QtWidgets.QHeaderView.ResizeMode')],
- "PySide2.QtWidgets.QHeaderView.setSectionsClickable": ('bool',),
- "PySide2.QtWidgets.QHeaderView.setSectionsMovable": ('bool',),
- "PySide2.QtWidgets.QHeaderView.setSelection": ('PySide2.QtCore.QRect', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags'),
- "PySide2.QtWidgets.QHeaderView.setSortIndicator": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtWidgets.QHeaderView.setSortIndicatorShown": ('bool',),
- "PySide2.QtWidgets.QHeaderView.setStretchLastSection": ('bool',),
- "PySide2.QtWidgets.QHeaderView.setVisible": ('bool',),
- "PySide2.QtWidgets.QHeaderView.showSection": ('int',),
- "PySide2.QtWidgets.QHeaderView.sizeHint": (),
- "PySide2.QtWidgets.QHeaderView.sortIndicatorOrder": (),
- "PySide2.QtWidgets.QHeaderView.sortIndicatorSection": (),
- "PySide2.QtWidgets.QHeaderView.stretchLastSection": (),
- "PySide2.QtWidgets.QHeaderView.stretchSectionCount": (),
- "PySide2.QtWidgets.QHeaderView.swapSections": ('int', 'int'),
- "PySide2.QtWidgets.QHeaderView.updateGeometries": (),
- "PySide2.QtWidgets.QHeaderView.updateSection": ('int',),
- "PySide2.QtWidgets.QHeaderView.verticalOffset": (),
- "PySide2.QtWidgets.QHeaderView.viewportEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QHeaderView.visualIndex": ('int',),
- "PySide2.QtWidgets.QHeaderView.visualIndexAt": ('int',),
- "PySide2.QtWidgets.QHeaderView.visualRect": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QHeaderView.visualRegionForSelection": ('PySide2.QtCore.QItemSelection',),
-# class PySide2.QtWidgets.QInputDialog:
-# class PySide2.QtWidgets.QInputDialog.InputDialogOption:
-# class PySide2.QtWidgets.QInputDialog.InputMode:
- "PySide2.QtWidgets.QInputDialog.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QInputDialog.cancelButtonText": (),
- "PySide2.QtWidgets.QInputDialog.comboBoxItems": (),
- "PySide2.QtWidgets.QInputDialog.done": ('int',),
- "PySide2.QtWidgets.QInputDialog.doubleDecimals": (),
- "PySide2.QtWidgets.QInputDialog.doubleMaximum": (),
- "PySide2.QtWidgets.QInputDialog.doubleMinimum": (),
- "PySide2.QtWidgets.QInputDialog.doubleStep": (),
- "PySide2.QtWidgets.QInputDialog.doubleValue": (),
- "PySide2.QtWidgets.QInputDialog.getDouble": [('PySide2.QtWidgets.QWidget', 'str', 'str', 'float', 'float', 'float', 'int', 'PySide2.QtCore.Qt.WindowFlags'), ('PySide2.QtWidgets.QWidget', 'str', 'str', 'float', 'float', 'float', 'int', 'PySide2.QtCore.Qt.WindowFlags', 'float')],
- "PySide2.QtWidgets.QInputDialog.getInt": ('PySide2.QtWidgets.QWidget', 'str', 'str', 'int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QInputDialog.getItem": ('PySide2.QtWidgets.QWidget', 'str', 'str', 'typing.Sequence[str]', 'int', 'bool', 'PySide2.QtCore.Qt.WindowFlags', 'PySide2.QtCore.Qt.InputMethodHints'),
- "PySide2.QtWidgets.QInputDialog.getMultiLineText": ('PySide2.QtWidgets.QWidget', 'str', 'str', 'str', 'PySide2.QtCore.Qt.WindowFlags', 'PySide2.QtCore.Qt.InputMethodHints'),
- "PySide2.QtWidgets.QInputDialog.getText": ('PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtWidgets.QLineEdit.EchoMode', 'str', 'PySide2.QtCore.Qt.WindowFlags', 'PySide2.QtCore.Qt.InputMethodHints'),
- "PySide2.QtWidgets.QInputDialog.inputMode": (),
- "PySide2.QtWidgets.QInputDialog.intMaximum": (),
- "PySide2.QtWidgets.QInputDialog.intMinimum": (),
- "PySide2.QtWidgets.QInputDialog.intStep": (),
- "PySide2.QtWidgets.QInputDialog.intValue": (),
- "PySide2.QtWidgets.QInputDialog.isComboBoxEditable": (),
- "PySide2.QtWidgets.QInputDialog.labelText": (),
- "PySide2.QtWidgets.QInputDialog.minimumSizeHint": (),
- "PySide2.QtWidgets.QInputDialog.okButtonText": (),
- "PySide2.QtWidgets.QInputDialog.open": [(), ('PySide2.QtCore.QObject', 'str')],
- "PySide2.QtWidgets.QInputDialog.setCancelButtonText": ('str',),
- "PySide2.QtWidgets.QInputDialog.setComboBoxEditable": ('bool',),
- "PySide2.QtWidgets.QInputDialog.setComboBoxItems": ('typing.Sequence[str]',),
- "PySide2.QtWidgets.QInputDialog.setDoubleDecimals": ('int',),
- "PySide2.QtWidgets.QInputDialog.setDoubleMaximum": ('float',),
- "PySide2.QtWidgets.QInputDialog.setDoubleMinimum": ('float',),
- "PySide2.QtWidgets.QInputDialog.setDoubleRange": ('float', 'float'),
- "PySide2.QtWidgets.QInputDialog.setDoubleStep": ('float',),
- "PySide2.QtWidgets.QInputDialog.setDoubleValue": ('float',),
- "PySide2.QtWidgets.QInputDialog.setInputMode": ('PySide2.QtWidgets.QInputDialog.InputMode',),
- "PySide2.QtWidgets.QInputDialog.setIntMaximum": ('int',),
- "PySide2.QtWidgets.QInputDialog.setIntMinimum": ('int',),
- "PySide2.QtWidgets.QInputDialog.setIntRange": ('int', 'int'),
- "PySide2.QtWidgets.QInputDialog.setIntStep": ('int',),
- "PySide2.QtWidgets.QInputDialog.setIntValue": ('int',),
- "PySide2.QtWidgets.QInputDialog.setLabelText": ('str',),
- "PySide2.QtWidgets.QInputDialog.setOkButtonText": ('str',),
- "PySide2.QtWidgets.QInputDialog.setOption": ('PySide2.QtWidgets.QInputDialog.InputDialogOption', 'bool'),
- "PySide2.QtWidgets.QInputDialog.setTextEchoMode": ('PySide2.QtWidgets.QLineEdit.EchoMode',),
- "PySide2.QtWidgets.QInputDialog.setTextValue": ('str',),
- "PySide2.QtWidgets.QInputDialog.setVisible": ('bool',),
- "PySide2.QtWidgets.QInputDialog.sizeHint": (),
- "PySide2.QtWidgets.QInputDialog.testOption": ('PySide2.QtWidgets.QInputDialog.InputDialogOption',),
- "PySide2.QtWidgets.QInputDialog.textEchoMode": (),
- "PySide2.QtWidgets.QInputDialog.textValue": (),
-# class PySide2.QtWidgets.QItemDelegate:
- "PySide2.QtWidgets.QItemDelegate.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QItemDelegate.createEditor": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QItemDelegate.decoration": ('PySide2.QtWidgets.QStyleOptionViewItem', 'typing.Any'),
- "PySide2.QtWidgets.QItemDelegate.doCheck": ('PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QRect', 'typing.Any'),
- "PySide2.QtWidgets.QItemDelegate.drawBackground": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QItemDelegate.drawCheck": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QRect', 'PySide2.QtCore.Qt.CheckState'),
- "PySide2.QtWidgets.QItemDelegate.drawDecoration": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QRect', 'PySide2.QtGui.QPixmap'),
- "PySide2.QtWidgets.QItemDelegate.drawDisplay": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QRect', 'str'),
- "PySide2.QtWidgets.QItemDelegate.drawFocus": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QRect'),
- "PySide2.QtWidgets.QItemDelegate.editorEvent": ('PySide2.QtCore.QEvent', 'PySide2.QtCore.QAbstractItemModel', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QItemDelegate.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QItemDelegate.hasClipping": (),
- "PySide2.QtWidgets.QItemDelegate.itemEditorFactory": (),
- "PySide2.QtWidgets.QItemDelegate.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QItemDelegate.rect": ('PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtWidgets.QItemDelegate.selectedPixmap": ('PySide2.QtGui.QPixmap', 'PySide2.QtGui.QPalette', 'bool'),
- "PySide2.QtWidgets.QItemDelegate.setClipping": ('bool',),
- "PySide2.QtWidgets.QItemDelegate.setEditorData": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QItemDelegate.setItemEditorFactory": ('PySide2.QtWidgets.QItemEditorFactory',),
- "PySide2.QtWidgets.QItemDelegate.setModelData": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QAbstractItemModel', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QItemDelegate.setOptions": ('PySide2.QtCore.QModelIndex', 'PySide2.QtWidgets.QStyleOptionViewItem'),
- "PySide2.QtWidgets.QItemDelegate.sizeHint": ('PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QItemDelegate.textRectangle": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRect', 'PySide2.QtGui.QFont', 'str'),
- "PySide2.QtWidgets.QItemDelegate.updateEditorGeometry": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
-# class PySide2.QtWidgets.QItemEditorCreatorBase:
- "PySide2.QtWidgets.QItemEditorCreatorBase.__init__": (),
- "PySide2.QtWidgets.QItemEditorCreatorBase.createWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QItemEditorCreatorBase.valuePropertyName": (),
-# class PySide2.QtWidgets.QItemEditorFactory:
- "PySide2.QtWidgets.QItemEditorFactory.__init__": (),
- "PySide2.QtWidgets.QItemEditorFactory.createEditor": ('int', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QItemEditorFactory.defaultFactory": (),
- "PySide2.QtWidgets.QItemEditorFactory.registerEditor": ('int', 'PySide2.QtWidgets.QItemEditorCreatorBase'),
- "PySide2.QtWidgets.QItemEditorFactory.setDefaultFactory": ('PySide2.QtWidgets.QItemEditorFactory',),
- "PySide2.QtWidgets.QItemEditorFactory.valuePropertyName": ('int',),
-# class PySide2.QtWidgets.QKeyEventTransition:
- "PySide2.QtWidgets.QKeyEventTransition.__init__": [('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent.Type', 'int', 'PySide2.QtCore.QState'), ('PySide2.QtCore.QState',)],
- "PySide2.QtWidgets.QKeyEventTransition.eventTest": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QKeyEventTransition.key": (),
- "PySide2.QtWidgets.QKeyEventTransition.modifierMask": (),
- "PySide2.QtWidgets.QKeyEventTransition.onTransition": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QKeyEventTransition.setKey": ('int',),
- "PySide2.QtWidgets.QKeyEventTransition.setModifierMask": ('PySide2.QtCore.Qt.KeyboardModifiers',),
-# class PySide2.QtWidgets.QKeySequenceEdit:
- "PySide2.QtWidgets.QKeySequenceEdit.__init__": [('PySide2.QtGui.QKeySequence', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QKeySequenceEdit.clear": (),
- "PySide2.QtWidgets.QKeySequenceEdit.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QKeySequenceEdit.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QKeySequenceEdit.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QKeySequenceEdit.keySequence": (),
- "PySide2.QtWidgets.QKeySequenceEdit.setKeySequence": ('PySide2.QtGui.QKeySequence',),
- "PySide2.QtWidgets.QKeySequenceEdit.timerEvent": ('PySide2.QtCore.QTimerEvent',),
-# class PySide2.QtWidgets.QLCDNumber:
-# class PySide2.QtWidgets.QLCDNumber.Mode:
-# class PySide2.QtWidgets.QLCDNumber.SegmentStyle:
- "PySide2.QtWidgets.QLCDNumber.__init__": [('PySide2.QtWidgets.QWidget',), ('int', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QLCDNumber.checkOverflow": [('float',), ('int',)],
- "PySide2.QtWidgets.QLCDNumber.digitCount": (),
- "PySide2.QtWidgets.QLCDNumber.display": [('float',), ('int',), ('str',)],
- "PySide2.QtWidgets.QLCDNumber.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QLCDNumber.intValue": (),
- "PySide2.QtWidgets.QLCDNumber.mode": (),
- "PySide2.QtWidgets.QLCDNumber.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QLCDNumber.segmentStyle": (),
- "PySide2.QtWidgets.QLCDNumber.setBinMode": (),
- "PySide2.QtWidgets.QLCDNumber.setDecMode": (),
- "PySide2.QtWidgets.QLCDNumber.setDigitCount": ('int',),
- "PySide2.QtWidgets.QLCDNumber.setHexMode": (),
- "PySide2.QtWidgets.QLCDNumber.setMode": ('PySide2.QtWidgets.QLCDNumber.Mode',),
- "PySide2.QtWidgets.QLCDNumber.setOctMode": (),
- "PySide2.QtWidgets.QLCDNumber.setSegmentStyle": ('PySide2.QtWidgets.QLCDNumber.SegmentStyle',),
- "PySide2.QtWidgets.QLCDNumber.setSmallDecimalPoint": ('bool',),
- "PySide2.QtWidgets.QLCDNumber.sizeHint": (),
- "PySide2.QtWidgets.QLCDNumber.smallDecimalPoint": (),
- "PySide2.QtWidgets.QLCDNumber.value": (),
-# class PySide2.QtWidgets.QLabel:
- "PySide2.QtWidgets.QLabel.__init__": [('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'), ('str', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags')],
- "PySide2.QtWidgets.QLabel.alignment": (),
- "PySide2.QtWidgets.QLabel.buddy": (),
- "PySide2.QtWidgets.QLabel.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QLabel.clear": (),
- "PySide2.QtWidgets.QLabel.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QLabel.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QLabel.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QLabel.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QLabel.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QLabel.hasScaledContents": (),
- "PySide2.QtWidgets.QLabel.hasSelectedText": (),
- "PySide2.QtWidgets.QLabel.heightForWidth": ('int',),
- "PySide2.QtWidgets.QLabel.indent": (),
- "PySide2.QtWidgets.QLabel.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QLabel.margin": (),
- "PySide2.QtWidgets.QLabel.minimumSizeHint": (),
- "PySide2.QtWidgets.QLabel.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QLabel.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QLabel.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QLabel.movie": (),
- "PySide2.QtWidgets.QLabel.openExternalLinks": (),
- "PySide2.QtWidgets.QLabel.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QLabel.picture": (),
- "PySide2.QtWidgets.QLabel.pixmap": (),
- "PySide2.QtWidgets.QLabel.selectedText": (),
- "PySide2.QtWidgets.QLabel.selectionStart": (),
- "PySide2.QtWidgets.QLabel.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QLabel.setBuddy": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QLabel.setIndent": ('int',),
- "PySide2.QtWidgets.QLabel.setMargin": ('int',),
- "PySide2.QtWidgets.QLabel.setMovie": ('PySide2.QtGui.QMovie',),
- "PySide2.QtWidgets.QLabel.setNum": [('float',), ('int',)],
- "PySide2.QtWidgets.QLabel.setOpenExternalLinks": ('bool',),
- "PySide2.QtWidgets.QLabel.setPicture": ('PySide2.QtGui.QPicture',),
- "PySide2.QtWidgets.QLabel.setPixmap": ('PySide2.QtGui.QPixmap',),
- "PySide2.QtWidgets.QLabel.setScaledContents": ('bool',),
- "PySide2.QtWidgets.QLabel.setSelection": ('int', 'int'),
- "PySide2.QtWidgets.QLabel.setText": ('str',),
- "PySide2.QtWidgets.QLabel.setTextFormat": ('PySide2.QtCore.Qt.TextFormat',),
- "PySide2.QtWidgets.QLabel.setTextInteractionFlags": ('PySide2.QtCore.Qt.TextInteractionFlags',),
- "PySide2.QtWidgets.QLabel.setWordWrap": ('bool',),
- "PySide2.QtWidgets.QLabel.sizeHint": (),
- "PySide2.QtWidgets.QLabel.text": (),
- "PySide2.QtWidgets.QLabel.textFormat": (),
- "PySide2.QtWidgets.QLabel.textInteractionFlags": (),
- "PySide2.QtWidgets.QLabel.wordWrap": (),
-# class PySide2.QtWidgets.QLayout:
-# class PySide2.QtWidgets.QLayout.SizeConstraint:
- "PySide2.QtWidgets.QLayout.__init__": [(), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QLayout.activate": (),
- "PySide2.QtWidgets.QLayout.addChildLayout": ('PySide2.QtWidgets.QLayout',),
- "PySide2.QtWidgets.QLayout.addChildWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QLayout.addItem": ('PySide2.QtWidgets.QLayoutItem',),
- "PySide2.QtWidgets.QLayout.addWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QLayout.adoptLayout": ('PySide2.QtWidgets.QLayout',),
- "PySide2.QtWidgets.QLayout.alignmentRect": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QLayout.childEvent": ('PySide2.QtCore.QChildEvent',),
- "PySide2.QtWidgets.QLayout.closestAcceptableSize": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QSize'),
- "PySide2.QtWidgets.QLayout.contentsMargins": (),
- "PySide2.QtWidgets.QLayout.contentsRect": (),
- "PySide2.QtWidgets.QLayout.controlTypes": (),
- "PySide2.QtWidgets.QLayout.count": (),
- "PySide2.QtWidgets.QLayout.expandingDirections": (),
- "PySide2.QtWidgets.QLayout.geometry": (),
- "PySide2.QtWidgets.QLayout.getContentsMargins": (),
- "PySide2.QtWidgets.QLayout.indexOf": [('PySide2.QtWidgets.QLayoutItem',), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QLayout.invalidate": (),
- "PySide2.QtWidgets.QLayout.isEmpty": (),
- "PySide2.QtWidgets.QLayout.isEnabled": (),
- "PySide2.QtWidgets.QLayout.itemAt": ('int',),
- "PySide2.QtWidgets.QLayout.layout": (),
- "PySide2.QtWidgets.QLayout.margin": (),
- "PySide2.QtWidgets.QLayout.maximumSize": (),
- "PySide2.QtWidgets.QLayout.menuBar": (),
- "PySide2.QtWidgets.QLayout.minimumSize": (),
- "PySide2.QtWidgets.QLayout.parentWidget": (),
- "PySide2.QtWidgets.QLayout.removeItem": ('PySide2.QtWidgets.QLayoutItem',),
- "PySide2.QtWidgets.QLayout.removeWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QLayout.replaceWidget": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.FindChildOptions'),
- "PySide2.QtWidgets.QLayout.setAlignment": [('PySide2.QtCore.Qt.Alignment',), ('PySide2.QtWidgets.QLayout', 'PySide2.QtCore.Qt.Alignment'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.Alignment')],
- "PySide2.QtWidgets.QLayout.setContentsMargins": [('PySide2.QtCore.QMargins',), ('int', 'int', 'int', 'int')],
- "PySide2.QtWidgets.QLayout.setEnabled": ('bool',),
- "PySide2.QtWidgets.QLayout.setGeometry": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QLayout.setMargin": ('int',),
- "PySide2.QtWidgets.QLayout.setMenuBar": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QLayout.setSizeConstraint": ('PySide2.QtWidgets.QLayout.SizeConstraint',),
- "PySide2.QtWidgets.QLayout.setSpacing": ('int',),
- "PySide2.QtWidgets.QLayout.sizeConstraint": (),
- "PySide2.QtWidgets.QLayout.spacing": (),
- "PySide2.QtWidgets.QLayout.takeAt": ('int',),
- "PySide2.QtWidgets.QLayout.totalHeightForWidth": ('int',),
- "PySide2.QtWidgets.QLayout.totalMaximumSize": (),
- "PySide2.QtWidgets.QLayout.totalMinimumSize": (),
- "PySide2.QtWidgets.QLayout.totalSizeHint": (),
- "PySide2.QtWidgets.QLayout.update": (),
- "PySide2.QtWidgets.QLayout.widgetEvent": ('PySide2.QtCore.QEvent',),
-# class PySide2.QtWidgets.QLayoutItem:
- "PySide2.QtWidgets.QLayoutItem.__init__": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QLayoutItem.alignment": (),
- "PySide2.QtWidgets.QLayoutItem.controlTypes": (),
- "PySide2.QtWidgets.QLayoutItem.expandingDirections": (),
- "PySide2.QtWidgets.QLayoutItem.geometry": (),
- "PySide2.QtWidgets.QLayoutItem.hasHeightForWidth": (),
- "PySide2.QtWidgets.QLayoutItem.heightForWidth": ('int',),
- "PySide2.QtWidgets.QLayoutItem.invalidate": (),
- "PySide2.QtWidgets.QLayoutItem.isEmpty": (),
- "PySide2.QtWidgets.QLayoutItem.layout": (),
- "PySide2.QtWidgets.QLayoutItem.maximumSize": (),
- "PySide2.QtWidgets.QLayoutItem.minimumHeightForWidth": ('int',),
- "PySide2.QtWidgets.QLayoutItem.minimumSize": (),
- "PySide2.QtWidgets.QLayoutItem.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QLayoutItem.setGeometry": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QLayoutItem.sizeHint": (),
- "PySide2.QtWidgets.QLayoutItem.spacerItem": (),
- "PySide2.QtWidgets.QLayoutItem.widget": (),
-# class PySide2.QtWidgets.QLineEdit:
-# class PySide2.QtWidgets.QLineEdit.ActionPosition:
-# class PySide2.QtWidgets.QLineEdit.EchoMode:
- "PySide2.QtWidgets.QLineEdit.__init__": [('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QLineEdit.addAction": [('PySide2.QtGui.QIcon', 'PySide2.QtWidgets.QLineEdit.ActionPosition'), ('PySide2.QtWidgets.QAction',), ('PySide2.QtWidgets.QAction', 'PySide2.QtWidgets.QLineEdit.ActionPosition')],
- "PySide2.QtWidgets.QLineEdit.alignment": (),
- "PySide2.QtWidgets.QLineEdit.backspace": (),
- "PySide2.QtWidgets.QLineEdit.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QLineEdit.clear": (),
- "PySide2.QtWidgets.QLineEdit.completer": (),
- "PySide2.QtWidgets.QLineEdit.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QLineEdit.copy": (),
- "PySide2.QtWidgets.QLineEdit.createStandardContextMenu": (),
- "PySide2.QtWidgets.QLineEdit.cursorBackward": ('bool', 'int'),
- "PySide2.QtWidgets.QLineEdit.cursorForward": ('bool', 'int'),
- "PySide2.QtWidgets.QLineEdit.cursorMoveStyle": (),
- "PySide2.QtWidgets.QLineEdit.cursorPosition": (),
- "PySide2.QtWidgets.QLineEdit.cursorPositionAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QLineEdit.cursorRect": (),
- "PySide2.QtWidgets.QLineEdit.cursorWordBackward": ('bool',),
- "PySide2.QtWidgets.QLineEdit.cursorWordForward": ('bool',),
- "PySide2.QtWidgets.QLineEdit.cut": (),
- "PySide2.QtWidgets.QLineEdit.del_": (),
- "PySide2.QtWidgets.QLineEdit.deselect": (),
- "PySide2.QtWidgets.QLineEdit.displayText": (),
- "PySide2.QtWidgets.QLineEdit.dragEnabled": (),
- "PySide2.QtWidgets.QLineEdit.dragEnterEvent": ('PySide2.QtGui.QDragEnterEvent',),
- "PySide2.QtWidgets.QLineEdit.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtWidgets.QLineEdit.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtWidgets.QLineEdit.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QLineEdit.echoMode": (),
- "PySide2.QtWidgets.QLineEdit.end": ('bool',),
- "PySide2.QtWidgets.QLineEdit.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QLineEdit.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QLineEdit.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QLineEdit.getTextMargins": (),
- "PySide2.QtWidgets.QLineEdit.hasAcceptableInput": (),
- "PySide2.QtWidgets.QLineEdit.hasFrame": (),
- "PySide2.QtWidgets.QLineEdit.hasSelectedText": (),
- "PySide2.QtWidgets.QLineEdit.home": ('bool',),
- "PySide2.QtWidgets.QLineEdit.initStyleOption": ('PySide2.QtWidgets.QStyleOptionFrame',),
- "PySide2.QtWidgets.QLineEdit.inputMask": (),
- "PySide2.QtWidgets.QLineEdit.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QLineEdit.inputMethodQuery": [('PySide2.QtCore.Qt.InputMethodQuery',), ('PySide2.QtCore.Qt.InputMethodQuery', 'typing.Any')],
- "PySide2.QtWidgets.QLineEdit.insert": ('str',),
- "PySide2.QtWidgets.QLineEdit.isClearButtonEnabled": (),
- "PySide2.QtWidgets.QLineEdit.isModified": (),
- "PySide2.QtWidgets.QLineEdit.isReadOnly": (),
- "PySide2.QtWidgets.QLineEdit.isRedoAvailable": (),
- "PySide2.QtWidgets.QLineEdit.isUndoAvailable": (),
- "PySide2.QtWidgets.QLineEdit.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QLineEdit.maxLength": (),
- "PySide2.QtWidgets.QLineEdit.minimumSizeHint": (),
- "PySide2.QtWidgets.QLineEdit.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QLineEdit.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QLineEdit.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QLineEdit.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QLineEdit.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QLineEdit.paste": (),
- "PySide2.QtWidgets.QLineEdit.placeholderText": (),
- "PySide2.QtWidgets.QLineEdit.redo": (),
- "PySide2.QtWidgets.QLineEdit.selectAll": (),
- "PySide2.QtWidgets.QLineEdit.selectedText": (),
- "PySide2.QtWidgets.QLineEdit.selectionEnd": (),
- "PySide2.QtWidgets.QLineEdit.selectionLength": (),
- "PySide2.QtWidgets.QLineEdit.selectionStart": (),
- "PySide2.QtWidgets.QLineEdit.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QLineEdit.setClearButtonEnabled": ('bool',),
- "PySide2.QtWidgets.QLineEdit.setCompleter": ('PySide2.QtWidgets.QCompleter',),
- "PySide2.QtWidgets.QLineEdit.setCursorMoveStyle": ('PySide2.QtCore.Qt.CursorMoveStyle',),
- "PySide2.QtWidgets.QLineEdit.setCursorPosition": ('int',),
- "PySide2.QtWidgets.QLineEdit.setDragEnabled": ('bool',),
- "PySide2.QtWidgets.QLineEdit.setEchoMode": ('PySide2.QtWidgets.QLineEdit.EchoMode',),
- "PySide2.QtWidgets.QLineEdit.setFrame": ('bool',),
- "PySide2.QtWidgets.QLineEdit.setInputMask": ('str',),
- "PySide2.QtWidgets.QLineEdit.setMaxLength": ('int',),
- "PySide2.QtWidgets.QLineEdit.setModified": ('bool',),
- "PySide2.QtWidgets.QLineEdit.setPlaceholderText": ('str',),
- "PySide2.QtWidgets.QLineEdit.setReadOnly": ('bool',),
- "PySide2.QtWidgets.QLineEdit.setSelection": ('int', 'int'),
- "PySide2.QtWidgets.QLineEdit.setText": ('str',),
- "PySide2.QtWidgets.QLineEdit.setTextMargins": [('PySide2.QtCore.QMargins',), ('int', 'int', 'int', 'int')],
- "PySide2.QtWidgets.QLineEdit.setValidator": ('PySide2.QtGui.QValidator',),
- "PySide2.QtWidgets.QLineEdit.sizeHint": (),
- "PySide2.QtWidgets.QLineEdit.text": (),
- "PySide2.QtWidgets.QLineEdit.textMargins": (),
- "PySide2.QtWidgets.QLineEdit.undo": (),
- "PySide2.QtWidgets.QLineEdit.validator": (),
-# class PySide2.QtWidgets.QListView:
-# class PySide2.QtWidgets.QListView.Flow:
-# class PySide2.QtWidgets.QListView.LayoutMode:
-# class PySide2.QtWidgets.QListView.Movement:
-# class PySide2.QtWidgets.QListView.ResizeMode:
-# class PySide2.QtWidgets.QListView.ViewMode:
- "PySide2.QtWidgets.QListView.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QListView.batchSize": (),
- "PySide2.QtWidgets.QListView.clearPropertyFlags": (),
- "PySide2.QtWidgets.QListView.contentsSize": (),
- "PySide2.QtWidgets.QListView.currentChanged": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QListView.dataChanged": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex', 'typing.List[int]'),
- "PySide2.QtWidgets.QListView.doItemsLayout": (),
- "PySide2.QtWidgets.QListView.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtWidgets.QListView.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtWidgets.QListView.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QListView.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QListView.flow": (),
- "PySide2.QtWidgets.QListView.gridSize": (),
- "PySide2.QtWidgets.QListView.horizontalOffset": (),
- "PySide2.QtWidgets.QListView.indexAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QListView.isIndexHidden": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QListView.isRowHidden": ('int',),
- "PySide2.QtWidgets.QListView.isSelectionRectVisible": (),
- "PySide2.QtWidgets.QListView.isWrapping": (),
- "PySide2.QtWidgets.QListView.itemAlignment": (),
- "PySide2.QtWidgets.QListView.layoutMode": (),
- "PySide2.QtWidgets.QListView.modelColumn": (),
- "PySide2.QtWidgets.QListView.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QListView.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QListView.moveCursor": ('PySide2.QtWidgets.QAbstractItemView.CursorAction', 'PySide2.QtCore.Qt.KeyboardModifiers'),
- "PySide2.QtWidgets.QListView.movement": (),
- "PySide2.QtWidgets.QListView.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QListView.rectForIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QListView.reset": (),
- "PySide2.QtWidgets.QListView.resizeContents": ('int', 'int'),
- "PySide2.QtWidgets.QListView.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QListView.resizeMode": (),
- "PySide2.QtWidgets.QListView.rowsAboutToBeRemoved": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QListView.rowsInserted": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QListView.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QListView.scrollTo": ('PySide2.QtCore.QModelIndex', 'PySide2.QtWidgets.QAbstractItemView.ScrollHint'),
- "PySide2.QtWidgets.QListView.selectedIndexes": (),
- "PySide2.QtWidgets.QListView.selectionChanged": ('PySide2.QtCore.QItemSelection', 'PySide2.QtCore.QItemSelection'),
- "PySide2.QtWidgets.QListView.setBatchSize": ('int',),
- "PySide2.QtWidgets.QListView.setFlow": ('PySide2.QtWidgets.QListView.Flow',),
- "PySide2.QtWidgets.QListView.setGridSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QListView.setItemAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QListView.setLayoutMode": ('PySide2.QtWidgets.QListView.LayoutMode',),
- "PySide2.QtWidgets.QListView.setModelColumn": ('int',),
- "PySide2.QtWidgets.QListView.setMovement": ('PySide2.QtWidgets.QListView.Movement',),
- "PySide2.QtWidgets.QListView.setPositionForIndex": ('PySide2.QtCore.QPoint', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QListView.setResizeMode": ('PySide2.QtWidgets.QListView.ResizeMode',),
- "PySide2.QtWidgets.QListView.setRootIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QListView.setRowHidden": ('int', 'bool'),
- "PySide2.QtWidgets.QListView.setSelection": ('PySide2.QtCore.QRect', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags'),
- "PySide2.QtWidgets.QListView.setSelectionRectVisible": ('bool',),
- "PySide2.QtWidgets.QListView.setSpacing": ('int',),
- "PySide2.QtWidgets.QListView.setUniformItemSizes": ('bool',),
- "PySide2.QtWidgets.QListView.setViewMode": ('PySide2.QtWidgets.QListView.ViewMode',),
- "PySide2.QtWidgets.QListView.setWordWrap": ('bool',),
- "PySide2.QtWidgets.QListView.setWrapping": ('bool',),
- "PySide2.QtWidgets.QListView.spacing": (),
- "PySide2.QtWidgets.QListView.startDrag": ('PySide2.QtCore.Qt.DropActions',),
- "PySide2.QtWidgets.QListView.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QListView.uniformItemSizes": (),
- "PySide2.QtWidgets.QListView.updateGeometries": (),
- "PySide2.QtWidgets.QListView.verticalOffset": (),
- "PySide2.QtWidgets.QListView.viewMode": (),
- "PySide2.QtWidgets.QListView.viewOptions": (),
- "PySide2.QtWidgets.QListView.viewportSizeHint": (),
- "PySide2.QtWidgets.QListView.visualRect": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QListView.visualRegionForSelection": ('PySide2.QtCore.QItemSelection',),
- "PySide2.QtWidgets.QListView.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
- "PySide2.QtWidgets.QListView.wordWrap": (),
-# class PySide2.QtWidgets.QListWidget:
- "PySide2.QtWidgets.QListWidget.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QListWidget.addItem": [('PySide2.QtWidgets.QListWidgetItem',), ('str',)],
- "PySide2.QtWidgets.QListWidget.addItems": ('typing.Sequence[str]',),
- "PySide2.QtWidgets.QListWidget.clear": (),
- "PySide2.QtWidgets.QListWidget.closePersistentEditor": [('PySide2.QtCore.QModelIndex',), ('PySide2.QtWidgets.QListWidgetItem',)],
- "PySide2.QtWidgets.QListWidget.count": (),
- "PySide2.QtWidgets.QListWidget.currentItem": (),
- "PySide2.QtWidgets.QListWidget.currentRow": (),
- "PySide2.QtWidgets.QListWidget.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QListWidget.dropMimeData": ('int', 'PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction'),
- "PySide2.QtWidgets.QListWidget.editItem": ('PySide2.QtWidgets.QListWidgetItem',),
- "PySide2.QtWidgets.QListWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QListWidget.findItems": ('str', 'PySide2.QtCore.Qt.MatchFlags'),
- "PySide2.QtWidgets.QListWidget.indexFromItem": ('PySide2.QtWidgets.QListWidgetItem',),
- "PySide2.QtWidgets.QListWidget.insertItem": [('int', 'PySide2.QtWidgets.QListWidgetItem'), ('int', 'str')],
- "PySide2.QtWidgets.QListWidget.insertItems": ('int', 'typing.Sequence[str]'),
- "PySide2.QtWidgets.QListWidget.isItemHidden": ('PySide2.QtWidgets.QListWidgetItem',),
- "PySide2.QtWidgets.QListWidget.isItemSelected": ('PySide2.QtWidgets.QListWidgetItem',),
- "PySide2.QtWidgets.QListWidget.isPersistentEditorOpen": [('PySide2.QtCore.QModelIndex',), ('PySide2.QtWidgets.QListWidgetItem',)],
- "PySide2.QtWidgets.QListWidget.isSortingEnabled": (),
- "PySide2.QtWidgets.QListWidget.item": ('int',),
- "PySide2.QtWidgets.QListWidget.itemAt": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtWidgets.QListWidget.itemFromIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QListWidget.itemWidget": ('PySide2.QtWidgets.QListWidgetItem',),
- "PySide2.QtWidgets.QListWidget.items": ('PySide2.QtCore.QMimeData',),
- "PySide2.QtWidgets.QListWidget.mimeData": ('typing.Sequence[PySide2.QtWidgets.QListWidgetItem]',),
- "PySide2.QtWidgets.QListWidget.mimeTypes": (),
- "PySide2.QtWidgets.QListWidget.openPersistentEditor": [('PySide2.QtCore.QModelIndex',), ('PySide2.QtWidgets.QListWidgetItem',)],
- "PySide2.QtWidgets.QListWidget.removeItemWidget": ('PySide2.QtWidgets.QListWidgetItem',),
- "PySide2.QtWidgets.QListWidget.row": ('PySide2.QtWidgets.QListWidgetItem',),
- "PySide2.QtWidgets.QListWidget.scrollToItem": ('PySide2.QtWidgets.QListWidgetItem', 'PySide2.QtWidgets.QAbstractItemView.ScrollHint'),
- "PySide2.QtWidgets.QListWidget.selectedItems": (),
- "PySide2.QtWidgets.QListWidget.setCurrentItem": [('PySide2.QtWidgets.QListWidgetItem',), ('PySide2.QtWidgets.QListWidgetItem', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags')],
- "PySide2.QtWidgets.QListWidget.setCurrentRow": [('int',), ('int', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags')],
- "PySide2.QtWidgets.QListWidget.setItemHidden": ('PySide2.QtWidgets.QListWidgetItem', 'bool'),
- "PySide2.QtWidgets.QListWidget.setItemSelected": ('PySide2.QtWidgets.QListWidgetItem', 'bool'),
- "PySide2.QtWidgets.QListWidget.setItemWidget": ('PySide2.QtWidgets.QListWidgetItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QListWidget.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QListWidget.setSelectionModel": ('PySide2.QtCore.QItemSelectionModel',),
- "PySide2.QtWidgets.QListWidget.setSortingEnabled": ('bool',),
- "PySide2.QtWidgets.QListWidget.sortItems": ('PySide2.QtCore.Qt.SortOrder',),
- "PySide2.QtWidgets.QListWidget.supportedDropActions": (),
- "PySide2.QtWidgets.QListWidget.takeItem": ('int',),
- "PySide2.QtWidgets.QListWidget.visualItemRect": ('PySide2.QtWidgets.QListWidgetItem',),
-# class PySide2.QtWidgets.QListWidgetItem:
-# class PySide2.QtWidgets.QListWidgetItem.ItemType:
- "PySide2.QtWidgets.QListWidgetItem.__init__": [('PySide2.QtGui.QIcon', 'str', 'PySide2.QtWidgets.QListWidget', 'int'), ('PySide2.QtWidgets.QListWidget', 'int'), ('PySide2.QtWidgets.QListWidgetItem',), ('str', 'PySide2.QtWidgets.QListWidget', 'int')],
- "PySide2.QtWidgets.QListWidgetItem.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QListWidgetItem.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QListWidgetItem.background": (),
- "PySide2.QtWidgets.QListWidgetItem.backgroundColor": (),
- "PySide2.QtWidgets.QListWidgetItem.checkState": (),
- "PySide2.QtWidgets.QListWidgetItem.clone": (),
- "PySide2.QtWidgets.QListWidgetItem.data": ('int',),
- "PySide2.QtWidgets.QListWidgetItem.flags": (),
- "PySide2.QtWidgets.QListWidgetItem.font": (),
- "PySide2.QtWidgets.QListWidgetItem.foreground": (),
- "PySide2.QtWidgets.QListWidgetItem.icon": (),
- "PySide2.QtWidgets.QListWidgetItem.isHidden": (),
- "PySide2.QtWidgets.QListWidgetItem.isSelected": (),
- "PySide2.QtWidgets.QListWidgetItem.listWidget": (),
- "PySide2.QtWidgets.QListWidgetItem.read": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QListWidgetItem.setBackground": ('PySide2.QtGui.QBrush',),
- "PySide2.QtWidgets.QListWidgetItem.setBackgroundColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QListWidgetItem.setCheckState": ('PySide2.QtCore.Qt.CheckState',),
- "PySide2.QtWidgets.QListWidgetItem.setData": ('int', 'typing.Any'),
- "PySide2.QtWidgets.QListWidgetItem.setFlags": ('PySide2.QtCore.Qt.ItemFlags',),
- "PySide2.QtWidgets.QListWidgetItem.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QListWidgetItem.setForeground": ('PySide2.QtGui.QBrush',),
- "PySide2.QtWidgets.QListWidgetItem.setHidden": ('bool',),
- "PySide2.QtWidgets.QListWidgetItem.setIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtWidgets.QListWidgetItem.setSelected": ('bool',),
- "PySide2.QtWidgets.QListWidgetItem.setSizeHint": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QListWidgetItem.setStatusTip": ('str',),
- "PySide2.QtWidgets.QListWidgetItem.setText": ('str',),
- "PySide2.QtWidgets.QListWidgetItem.setTextAlignment": ('int',),
- "PySide2.QtWidgets.QListWidgetItem.setTextColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QListWidgetItem.setToolTip": ('str',),
- "PySide2.QtWidgets.QListWidgetItem.setWhatsThis": ('str',),
- "PySide2.QtWidgets.QListWidgetItem.sizeHint": (),
- "PySide2.QtWidgets.QListWidgetItem.statusTip": (),
- "PySide2.QtWidgets.QListWidgetItem.text": (),
- "PySide2.QtWidgets.QListWidgetItem.textAlignment": (),
- "PySide2.QtWidgets.QListWidgetItem.textColor": (),
- "PySide2.QtWidgets.QListWidgetItem.toolTip": (),
- "PySide2.QtWidgets.QListWidgetItem.type": (),
- "PySide2.QtWidgets.QListWidgetItem.whatsThis": (),
- "PySide2.QtWidgets.QListWidgetItem.write": ('PySide2.QtCore.QDataStream',),
-# class PySide2.QtWidgets.QMainWindow:
-# class PySide2.QtWidgets.QMainWindow.DockOption:
-# class PySide2.QtWidgets.QMainWindow.DockOptions:
- "PySide2.QtWidgets.QMainWindow.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QMainWindow.addDockWidget": [('PySide2.QtCore.Qt.DockWidgetArea', 'PySide2.QtWidgets.QDockWidget'), ('PySide2.QtCore.Qt.DockWidgetArea', 'PySide2.QtWidgets.QDockWidget', 'PySide2.QtCore.Qt.Orientation')],
- "PySide2.QtWidgets.QMainWindow.addToolBar": [('PySide2.QtCore.Qt.ToolBarArea', 'PySide2.QtWidgets.QToolBar'), ('PySide2.QtWidgets.QToolBar',), ('str',)],
- "PySide2.QtWidgets.QMainWindow.addToolBarBreak": ('PySide2.QtCore.Qt.ToolBarArea',),
- "PySide2.QtWidgets.QMainWindow.centralWidget": (),
- "PySide2.QtWidgets.QMainWindow.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QMainWindow.corner": ('PySide2.QtCore.Qt.Corner',),
- "PySide2.QtWidgets.QMainWindow.createPopupMenu": (),
- "PySide2.QtWidgets.QMainWindow.dockOptions": (),
- "PySide2.QtWidgets.QMainWindow.dockWidgetArea": ('PySide2.QtWidgets.QDockWidget',),
- "PySide2.QtWidgets.QMainWindow.documentMode": (),
- "PySide2.QtWidgets.QMainWindow.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMainWindow.iconSize": (),
- "PySide2.QtWidgets.QMainWindow.insertToolBar": ('PySide2.QtWidgets.QToolBar', 'PySide2.QtWidgets.QToolBar'),
- "PySide2.QtWidgets.QMainWindow.insertToolBarBreak": ('PySide2.QtWidgets.QToolBar',),
- "PySide2.QtWidgets.QMainWindow.isAnimated": (),
- "PySide2.QtWidgets.QMainWindow.isDockNestingEnabled": (),
- "PySide2.QtWidgets.QMainWindow.isSeparator": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QMainWindow.menuBar": (),
- "PySide2.QtWidgets.QMainWindow.menuWidget": (),
- "PySide2.QtWidgets.QMainWindow.removeDockWidget": ('PySide2.QtWidgets.QDockWidget',),
- "PySide2.QtWidgets.QMainWindow.removeToolBar": ('PySide2.QtWidgets.QToolBar',),
- "PySide2.QtWidgets.QMainWindow.removeToolBarBreak": ('PySide2.QtWidgets.QToolBar',),
- "PySide2.QtWidgets.QMainWindow.resizeDocks": ('typing.Sequence[PySide2.QtWidgets.QDockWidget]', 'typing.Sequence[int]', 'PySide2.QtCore.Qt.Orientation'),
- "PySide2.QtWidgets.QMainWindow.restoreDockWidget": ('PySide2.QtWidgets.QDockWidget',),
- "PySide2.QtWidgets.QMainWindow.restoreState": ('PySide2.QtCore.QByteArray', 'int'),
- "PySide2.QtWidgets.QMainWindow.saveState": ('int',),
- "PySide2.QtWidgets.QMainWindow.setAnimated": ('bool',),
- "PySide2.QtWidgets.QMainWindow.setCentralWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QMainWindow.setCorner": ('PySide2.QtCore.Qt.Corner', 'PySide2.QtCore.Qt.DockWidgetArea'),
- "PySide2.QtWidgets.QMainWindow.setDockNestingEnabled": ('bool',),
- "PySide2.QtWidgets.QMainWindow.setDockOptions": ('PySide2.QtWidgets.QMainWindow.DockOptions',),
- "PySide2.QtWidgets.QMainWindow.setDocumentMode": ('bool',),
- "PySide2.QtWidgets.QMainWindow.setIconSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QMainWindow.setMenuBar": ('PySide2.QtWidgets.QMenuBar',),
- "PySide2.QtWidgets.QMainWindow.setMenuWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QMainWindow.setStatusBar": ('PySide2.QtWidgets.QStatusBar',),
- "PySide2.QtWidgets.QMainWindow.setTabPosition": ('PySide2.QtCore.Qt.DockWidgetAreas', 'PySide2.QtWidgets.QTabWidget.TabPosition'),
- "PySide2.QtWidgets.QMainWindow.setTabShape": ('PySide2.QtWidgets.QTabWidget.TabShape',),
- "PySide2.QtWidgets.QMainWindow.setToolButtonStyle": ('PySide2.QtCore.Qt.ToolButtonStyle',),
- "PySide2.QtWidgets.QMainWindow.setUnifiedTitleAndToolBarOnMac": ('bool',),
- "PySide2.QtWidgets.QMainWindow.splitDockWidget": ('PySide2.QtWidgets.QDockWidget', 'PySide2.QtWidgets.QDockWidget', 'PySide2.QtCore.Qt.Orientation'),
- "PySide2.QtWidgets.QMainWindow.statusBar": (),
- "PySide2.QtWidgets.QMainWindow.tabPosition": ('PySide2.QtCore.Qt.DockWidgetArea',),
- "PySide2.QtWidgets.QMainWindow.tabShape": (),
- "PySide2.QtWidgets.QMainWindow.tabifiedDockWidgets": ('PySide2.QtWidgets.QDockWidget',),
- "PySide2.QtWidgets.QMainWindow.tabifyDockWidget": ('PySide2.QtWidgets.QDockWidget', 'PySide2.QtWidgets.QDockWidget'),
- "PySide2.QtWidgets.QMainWindow.takeCentralWidget": (),
- "PySide2.QtWidgets.QMainWindow.toolBarArea": ('PySide2.QtWidgets.QToolBar',),
- "PySide2.QtWidgets.QMainWindow.toolBarBreak": ('PySide2.QtWidgets.QToolBar',),
- "PySide2.QtWidgets.QMainWindow.toolButtonStyle": (),
- "PySide2.QtWidgets.QMainWindow.unifiedTitleAndToolBarOnMac": (),
-# class PySide2.QtWidgets.QMdiArea:
-# class PySide2.QtWidgets.QMdiArea.AreaOption:
-# class PySide2.QtWidgets.QMdiArea.AreaOptions:
-# class PySide2.QtWidgets.QMdiArea.ViewMode:
-# class PySide2.QtWidgets.QMdiArea.WindowOrder:
- "PySide2.QtWidgets.QMdiArea.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QMdiArea.activateNextSubWindow": (),
- "PySide2.QtWidgets.QMdiArea.activatePreviousSubWindow": (),
- "PySide2.QtWidgets.QMdiArea.activationOrder": (),
- "PySide2.QtWidgets.QMdiArea.activeSubWindow": (),
- "PySide2.QtWidgets.QMdiArea.addSubWindow": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QMdiArea.background": (),
- "PySide2.QtWidgets.QMdiArea.cascadeSubWindows": (),
- "PySide2.QtWidgets.QMdiArea.childEvent": ('PySide2.QtCore.QChildEvent',),
- "PySide2.QtWidgets.QMdiArea.closeActiveSubWindow": (),
- "PySide2.QtWidgets.QMdiArea.closeAllSubWindows": (),
- "PySide2.QtWidgets.QMdiArea.currentSubWindow": (),
- "PySide2.QtWidgets.QMdiArea.documentMode": (),
- "PySide2.QtWidgets.QMdiArea.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMdiArea.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QMdiArea.minimumSizeHint": (),
- "PySide2.QtWidgets.QMdiArea.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QMdiArea.removeSubWindow": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QMdiArea.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QMdiArea.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QMdiArea.setActivationOrder": ('PySide2.QtWidgets.QMdiArea.WindowOrder',),
- "PySide2.QtWidgets.QMdiArea.setActiveSubWindow": ('PySide2.QtWidgets.QMdiSubWindow',),
- "PySide2.QtWidgets.QMdiArea.setBackground": ('PySide2.QtGui.QBrush',),
- "PySide2.QtWidgets.QMdiArea.setDocumentMode": ('bool',),
- "PySide2.QtWidgets.QMdiArea.setOption": ('PySide2.QtWidgets.QMdiArea.AreaOption', 'bool'),
- "PySide2.QtWidgets.QMdiArea.setTabPosition": ('PySide2.QtWidgets.QTabWidget.TabPosition',),
- "PySide2.QtWidgets.QMdiArea.setTabShape": ('PySide2.QtWidgets.QTabWidget.TabShape',),
- "PySide2.QtWidgets.QMdiArea.setTabsClosable": ('bool',),
- "PySide2.QtWidgets.QMdiArea.setTabsMovable": ('bool',),
- "PySide2.QtWidgets.QMdiArea.setViewMode": ('PySide2.QtWidgets.QMdiArea.ViewMode',),
- "PySide2.QtWidgets.QMdiArea.setupViewport": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QMdiArea.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QMdiArea.sizeHint": (),
- "PySide2.QtWidgets.QMdiArea.subWindowList": ('PySide2.QtWidgets.QMdiArea.WindowOrder',),
- "PySide2.QtWidgets.QMdiArea.tabPosition": (),
- "PySide2.QtWidgets.QMdiArea.tabShape": (),
- "PySide2.QtWidgets.QMdiArea.tabsClosable": (),
- "PySide2.QtWidgets.QMdiArea.tabsMovable": (),
- "PySide2.QtWidgets.QMdiArea.testOption": ('PySide2.QtWidgets.QMdiArea.AreaOption',),
- "PySide2.QtWidgets.QMdiArea.tileSubWindows": (),
- "PySide2.QtWidgets.QMdiArea.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QMdiArea.viewMode": (),
- "PySide2.QtWidgets.QMdiArea.viewportEvent": ('PySide2.QtCore.QEvent',),
-# class PySide2.QtWidgets.QMdiSubWindow:
-# class PySide2.QtWidgets.QMdiSubWindow.SubWindowOption:
-# class PySide2.QtWidgets.QMdiSubWindow.SubWindowOptions:
- "PySide2.QtWidgets.QMdiSubWindow.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QMdiSubWindow.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.childEvent": ('PySide2.QtCore.QChildEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.closeEvent": ('PySide2.QtGui.QCloseEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QMdiSubWindow.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.isShaded": (),
- "PySide2.QtWidgets.QMdiSubWindow.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.keyboardPageStep": (),
- "PySide2.QtWidgets.QMdiSubWindow.keyboardSingleStep": (),
- "PySide2.QtWidgets.QMdiSubWindow.leaveEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.maximizedButtonsWidget": (),
- "PySide2.QtWidgets.QMdiSubWindow.maximizedSystemMenuIconWidget": (),
- "PySide2.QtWidgets.QMdiSubWindow.mdiArea": (),
- "PySide2.QtWidgets.QMdiSubWindow.minimumSizeHint": (),
- "PySide2.QtWidgets.QMdiSubWindow.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.moveEvent": ('PySide2.QtGui.QMoveEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.setKeyboardPageStep": ('int',),
- "PySide2.QtWidgets.QMdiSubWindow.setKeyboardSingleStep": ('int',),
- "PySide2.QtWidgets.QMdiSubWindow.setOption": ('PySide2.QtWidgets.QMdiSubWindow.SubWindowOption', 'bool'),
- "PySide2.QtWidgets.QMdiSubWindow.setSystemMenu": ('PySide2.QtWidgets.QMenu',),
- "PySide2.QtWidgets.QMdiSubWindow.setWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QMdiSubWindow.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.showShaded": (),
- "PySide2.QtWidgets.QMdiSubWindow.showSystemMenu": (),
- "PySide2.QtWidgets.QMdiSubWindow.sizeHint": (),
- "PySide2.QtWidgets.QMdiSubWindow.systemMenu": (),
- "PySide2.QtWidgets.QMdiSubWindow.testOption": ('PySide2.QtWidgets.QMdiSubWindow.SubWindowOption',),
- "PySide2.QtWidgets.QMdiSubWindow.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.widget": (),
-# class PySide2.QtWidgets.QMenu:
- "PySide2.QtWidgets.QMenu.__init__": [('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QMenu.actionAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QMenu.actionEvent": ('PySide2.QtGui.QActionEvent',),
- "PySide2.QtWidgets.QMenu.actionGeometry": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QMenu.activeAction": (),
- "PySide2.QtWidgets.QMenu.addAction": [('PySide2.QtGui.QIcon', 'str'), ('PySide2.QtGui.QIcon', 'str', 'PySide2.QtCore.QObject', 'str', 'PySide2.QtGui.QKeySequence'), ('PySide2.QtGui.QIcon', 'str', 'object', 'PySide2.QtGui.QKeySequence'), ('PySide2.QtWidgets.QAction',), ('str',), ('str', 'PySide2.QtCore.QObject', 'str', 'PySide2.QtGui.QKeySequence'), ('str', 'object', 'PySide2.QtGui.QKeySequence')],
- "PySide2.QtWidgets.QMenu.addMenu": [('PySide2.QtGui.QIcon', 'str'), ('PySide2.QtWidgets.QMenu',), ('str',)],
- "PySide2.QtWidgets.QMenu.addSection": [('PySide2.QtGui.QIcon', 'str'), ('str',)],
- "PySide2.QtWidgets.QMenu.addSeparator": (),
- "PySide2.QtWidgets.QMenu.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMenu.clear": (),
- "PySide2.QtWidgets.QMenu.columnCount": (),
- "PySide2.QtWidgets.QMenu.defaultAction": (),
- "PySide2.QtWidgets.QMenu.enterEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMenu.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMenu.exec_": [(), ('PySide2.QtCore.QPoint', 'PySide2.QtWidgets.QAction'), ('typing.Sequence[PySide2.QtWidgets.QAction]', 'PySide2.QtCore.QPoint', 'PySide2.QtWidgets.QAction', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QMenu.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QMenu.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWidgets.QMenu.hideTearOffMenu": (),
- "PySide2.QtWidgets.QMenu.icon": (),
- "PySide2.QtWidgets.QMenu.initStyleOption": ('PySide2.QtWidgets.QStyleOptionMenuItem', 'PySide2.QtWidgets.QAction'),
- "PySide2.QtWidgets.QMenu.insertMenu": ('PySide2.QtWidgets.QAction', 'PySide2.QtWidgets.QMenu'),
- "PySide2.QtWidgets.QMenu.insertSection": [('PySide2.QtWidgets.QAction', 'PySide2.QtGui.QIcon', 'str'), ('PySide2.QtWidgets.QAction', 'str')],
- "PySide2.QtWidgets.QMenu.insertSeparator": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QMenu.isEmpty": (),
- "PySide2.QtWidgets.QMenu.isTearOffEnabled": (),
- "PySide2.QtWidgets.QMenu.isTearOffMenuVisible": (),
- "PySide2.QtWidgets.QMenu.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QMenu.leaveEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMenu.menuAction": (),
- "PySide2.QtWidgets.QMenu.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QMenu.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QMenu.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QMenu.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QMenu.popup": ('PySide2.QtCore.QPoint', 'PySide2.QtWidgets.QAction'),
- "PySide2.QtWidgets.QMenu.separatorsCollapsible": (),
- "PySide2.QtWidgets.QMenu.setActiveAction": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QMenu.setDefaultAction": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QMenu.setIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtWidgets.QMenu.setSeparatorsCollapsible": ('bool',),
- "PySide2.QtWidgets.QMenu.setTearOffEnabled": ('bool',),
- "PySide2.QtWidgets.QMenu.setTitle": ('str',),
- "PySide2.QtWidgets.QMenu.setToolTipsVisible": ('bool',),
- "PySide2.QtWidgets.QMenu.showTearOffMenu": [(), ('PySide2.QtCore.QPoint',)],
- "PySide2.QtWidgets.QMenu.sizeHint": (),
- "PySide2.QtWidgets.QMenu.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QMenu.title": (),
- "PySide2.QtWidgets.QMenu.toolTipsVisible": (),
- "PySide2.QtWidgets.QMenu.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtWidgets.QMenuBar:
- "PySide2.QtWidgets.QMenuBar.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QMenuBar.actionAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QMenuBar.actionEvent": ('PySide2.QtGui.QActionEvent',),
- "PySide2.QtWidgets.QMenuBar.actionGeometry": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QMenuBar.activeAction": (),
- "PySide2.QtWidgets.QMenuBar.addAction": [('PySide2.QtWidgets.QAction',), ('str',), ('str', 'PySide2.QtCore.QObject', 'str'), ('str', 'object')],
- "PySide2.QtWidgets.QMenuBar.addMenu": [('PySide2.QtGui.QIcon', 'str'), ('PySide2.QtWidgets.QMenu',), ('str',)],
- "PySide2.QtWidgets.QMenuBar.addSeparator": (),
- "PySide2.QtWidgets.QMenuBar.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMenuBar.clear": (),
- "PySide2.QtWidgets.QMenuBar.cornerWidget": ('PySide2.QtCore.Qt.Corner',),
- "PySide2.QtWidgets.QMenuBar.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMenuBar.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QMenuBar.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QMenuBar.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QMenuBar.heightForWidth": ('int',),
- "PySide2.QtWidgets.QMenuBar.initStyleOption": ('PySide2.QtWidgets.QStyleOptionMenuItem', 'PySide2.QtWidgets.QAction'),
- "PySide2.QtWidgets.QMenuBar.insertMenu": ('PySide2.QtWidgets.QAction', 'PySide2.QtWidgets.QMenu'),
- "PySide2.QtWidgets.QMenuBar.insertSeparator": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QMenuBar.isDefaultUp": (),
- "PySide2.QtWidgets.QMenuBar.isNativeMenuBar": (),
- "PySide2.QtWidgets.QMenuBar.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QMenuBar.leaveEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMenuBar.minimumSizeHint": (),
- "PySide2.QtWidgets.QMenuBar.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QMenuBar.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QMenuBar.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QMenuBar.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QMenuBar.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QMenuBar.setActiveAction": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QMenuBar.setCornerWidget": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.Corner'),
- "PySide2.QtWidgets.QMenuBar.setDefaultUp": ('bool',),
- "PySide2.QtWidgets.QMenuBar.setNativeMenuBar": ('bool',),
- "PySide2.QtWidgets.QMenuBar.setVisible": ('bool',),
- "PySide2.QtWidgets.QMenuBar.sizeHint": (),
- "PySide2.QtWidgets.QMenuBar.timerEvent": ('PySide2.QtCore.QTimerEvent',),
-# class PySide2.QtWidgets.QMessageBox:
-# class PySide2.QtWidgets.QMessageBox.ButtonRole:
-# class PySide2.QtWidgets.QMessageBox.Icon:
-# class PySide2.QtWidgets.QMessageBox.StandardButton:
-# class PySide2.QtWidgets.QMessageBox.StandardButtons:
- "PySide2.QtWidgets.QMessageBox.__init__": [('PySide2.QtWidgets.QMessageBox.Icon', 'str', 'str', 'PySide2.QtWidgets.QMessageBox.StandardButtons', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QMessageBox.about": ('PySide2.QtWidgets.QWidget', 'str', 'str'),
- "PySide2.QtWidgets.QMessageBox.aboutQt": ('PySide2.QtWidgets.QWidget', 'str'),
- "PySide2.QtWidgets.QMessageBox.addButton": [('PySide2.QtWidgets.QAbstractButton', 'PySide2.QtWidgets.QMessageBox.ButtonRole'), ('PySide2.QtWidgets.QMessageBox.StandardButton',), ('str', 'PySide2.QtWidgets.QMessageBox.ButtonRole')],
- "PySide2.QtWidgets.QMessageBox.button": ('PySide2.QtWidgets.QMessageBox.StandardButton',),
- "PySide2.QtWidgets.QMessageBox.buttonRole": ('PySide2.QtWidgets.QAbstractButton',),
- "PySide2.QtWidgets.QMessageBox.buttonText": ('int',),
- "PySide2.QtWidgets.QMessageBox.buttons": (),
- "PySide2.QtWidgets.QMessageBox.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMessageBox.checkBox": (),
- "PySide2.QtWidgets.QMessageBox.clickedButton": (),
- "PySide2.QtWidgets.QMessageBox.closeEvent": ('PySide2.QtGui.QCloseEvent',),
- "PySide2.QtWidgets.QMessageBox.critical": [('PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtWidgets.QMessageBox.StandardButton', 'PySide2.QtWidgets.QMessageBox.StandardButton'), ('PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtWidgets.QMessageBox.StandardButtons', 'PySide2.QtWidgets.QMessageBox.StandardButton')],
- "PySide2.QtWidgets.QMessageBox.defaultButton": (),
- "PySide2.QtWidgets.QMessageBox.detailedText": (),
- "PySide2.QtWidgets.QMessageBox.escapeButton": (),
- "PySide2.QtWidgets.QMessageBox.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMessageBox.icon": (),
- "PySide2.QtWidgets.QMessageBox.iconPixmap": (),
- "PySide2.QtWidgets.QMessageBox.information": [('PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtWidgets.QMessageBox.StandardButton', 'PySide2.QtWidgets.QMessageBox.StandardButton'), ('PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtWidgets.QMessageBox.StandardButtons', 'PySide2.QtWidgets.QMessageBox.StandardButton')],
- "PySide2.QtWidgets.QMessageBox.informativeText": (),
- "PySide2.QtWidgets.QMessageBox.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QMessageBox.open": [(), ('PySide2.QtCore.QObject', 'str')],
- "PySide2.QtWidgets.QMessageBox.question": [('PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtWidgets.QMessageBox.StandardButton', 'PySide2.QtWidgets.QMessageBox.StandardButton'), ('PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtWidgets.QMessageBox.StandardButtons', 'PySide2.QtWidgets.QMessageBox.StandardButton')],
- "PySide2.QtWidgets.QMessageBox.removeButton": ('PySide2.QtWidgets.QAbstractButton',),
- "PySide2.QtWidgets.QMessageBox.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QMessageBox.setButtonText": ('int', 'str'),
- "PySide2.QtWidgets.QMessageBox.setCheckBox": ('PySide2.QtWidgets.QCheckBox',),
- "PySide2.QtWidgets.QMessageBox.setDefaultButton": [('PySide2.QtWidgets.QMessageBox.StandardButton',), ('PySide2.QtWidgets.QPushButton',)],
- "PySide2.QtWidgets.QMessageBox.setDetailedText": ('str',),
- "PySide2.QtWidgets.QMessageBox.setEscapeButton": [('PySide2.QtWidgets.QAbstractButton',), ('PySide2.QtWidgets.QMessageBox.StandardButton',)],
- "PySide2.QtWidgets.QMessageBox.setIcon": ('PySide2.QtWidgets.QMessageBox.Icon',),
- "PySide2.QtWidgets.QMessageBox.setIconPixmap": ('PySide2.QtGui.QPixmap',),
- "PySide2.QtWidgets.QMessageBox.setInformativeText": ('str',),
- "PySide2.QtWidgets.QMessageBox.setStandardButtons": ('PySide2.QtWidgets.QMessageBox.StandardButtons',),
- "PySide2.QtWidgets.QMessageBox.setText": ('str',),
- "PySide2.QtWidgets.QMessageBox.setTextFormat": ('PySide2.QtCore.Qt.TextFormat',),
- "PySide2.QtWidgets.QMessageBox.setTextInteractionFlags": ('PySide2.QtCore.Qt.TextInteractionFlags',),
- "PySide2.QtWidgets.QMessageBox.setWindowModality": ('PySide2.QtCore.Qt.WindowModality',),
- "PySide2.QtWidgets.QMessageBox.setWindowTitle": ('str',),
- "PySide2.QtWidgets.QMessageBox.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QMessageBox.standardButton": ('PySide2.QtWidgets.QAbstractButton',),
- "PySide2.QtWidgets.QMessageBox.standardButtons": (),
- "PySide2.QtWidgets.QMessageBox.standardIcon": ('PySide2.QtWidgets.QMessageBox.Icon',),
- "PySide2.QtWidgets.QMessageBox.text": (),
- "PySide2.QtWidgets.QMessageBox.textFormat": (),
- "PySide2.QtWidgets.QMessageBox.textInteractionFlags": (),
- "PySide2.QtWidgets.QMessageBox.warning": [('PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtWidgets.QMessageBox.StandardButton', 'PySide2.QtWidgets.QMessageBox.StandardButton'), ('PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtWidgets.QMessageBox.StandardButtons', 'PySide2.QtWidgets.QMessageBox.StandardButton')],
-# class PySide2.QtWidgets.QMouseEventTransition:
- "PySide2.QtWidgets.QMouseEventTransition.__init__": [('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.QState'), ('PySide2.QtCore.QState',)],
- "PySide2.QtWidgets.QMouseEventTransition.button": (),
- "PySide2.QtWidgets.QMouseEventTransition.eventTest": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMouseEventTransition.hitTestPath": (),
- "PySide2.QtWidgets.QMouseEventTransition.modifierMask": (),
- "PySide2.QtWidgets.QMouseEventTransition.onTransition": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMouseEventTransition.setButton": ('PySide2.QtCore.Qt.MouseButton',),
- "PySide2.QtWidgets.QMouseEventTransition.setHitTestPath": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtWidgets.QMouseEventTransition.setModifierMask": ('PySide2.QtCore.Qt.KeyboardModifiers',),
-# class PySide2.QtWidgets.QOpenGLWidget:
-# class PySide2.QtWidgets.QOpenGLWidget.UpdateBehavior:
- "PySide2.QtWidgets.QOpenGLWidget.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QOpenGLWidget.context": (),
- "PySide2.QtWidgets.QOpenGLWidget.defaultFramebufferObject": (),
- "PySide2.QtWidgets.QOpenGLWidget.doneCurrent": (),
- "PySide2.QtWidgets.QOpenGLWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QOpenGLWidget.format": (),
- "PySide2.QtWidgets.QOpenGLWidget.grabFramebuffer": (),
- "PySide2.QtWidgets.QOpenGLWidget.initializeGL": (),
- "PySide2.QtWidgets.QOpenGLWidget.isValid": (),
- "PySide2.QtWidgets.QOpenGLWidget.makeCurrent": (),
- "PySide2.QtWidgets.QOpenGLWidget.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtWidgets.QOpenGLWidget.paintEngine": (),
- "PySide2.QtWidgets.QOpenGLWidget.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QOpenGLWidget.paintGL": (),
- "PySide2.QtWidgets.QOpenGLWidget.redirected": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QOpenGLWidget.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QOpenGLWidget.resizeGL": ('int', 'int'),
- "PySide2.QtWidgets.QOpenGLWidget.setFormat": ('PySide2.QtGui.QSurfaceFormat',),
- "PySide2.QtWidgets.QOpenGLWidget.setTextureFormat": ('int',),
- "PySide2.QtWidgets.QOpenGLWidget.setUpdateBehavior": ('PySide2.QtWidgets.QOpenGLWidget.UpdateBehavior',),
- "PySide2.QtWidgets.QOpenGLWidget.textureFormat": (),
- "PySide2.QtWidgets.QOpenGLWidget.updateBehavior": (),
-# class PySide2.QtWidgets.QPanGesture:
- "PySide2.QtWidgets.QPanGesture.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QPanGesture.acceleration": (),
- "PySide2.QtWidgets.QPanGesture.delta": (),
- "PySide2.QtWidgets.QPanGesture.lastOffset": (),
- "PySide2.QtWidgets.QPanGesture.offset": (),
- "PySide2.QtWidgets.QPanGesture.setAcceleration": ('float',),
- "PySide2.QtWidgets.QPanGesture.setLastOffset": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QPanGesture.setOffset": ('PySide2.QtCore.QPointF',),
-# class PySide2.QtWidgets.QPinchGesture:
-# class PySide2.QtWidgets.QPinchGesture.ChangeFlag:
-# class PySide2.QtWidgets.QPinchGesture.ChangeFlags:
- "PySide2.QtWidgets.QPinchGesture.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QPinchGesture.centerPoint": (),
- "PySide2.QtWidgets.QPinchGesture.changeFlags": (),
- "PySide2.QtWidgets.QPinchGesture.lastCenterPoint": (),
- "PySide2.QtWidgets.QPinchGesture.lastRotationAngle": (),
- "PySide2.QtWidgets.QPinchGesture.lastScaleFactor": (),
- "PySide2.QtWidgets.QPinchGesture.rotationAngle": (),
- "PySide2.QtWidgets.QPinchGesture.scaleFactor": (),
- "PySide2.QtWidgets.QPinchGesture.setCenterPoint": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QPinchGesture.setChangeFlags": ('PySide2.QtWidgets.QPinchGesture.ChangeFlags',),
- "PySide2.QtWidgets.QPinchGesture.setLastCenterPoint": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QPinchGesture.setLastRotationAngle": ('float',),
- "PySide2.QtWidgets.QPinchGesture.setLastScaleFactor": ('float',),
- "PySide2.QtWidgets.QPinchGesture.setRotationAngle": ('float',),
- "PySide2.QtWidgets.QPinchGesture.setScaleFactor": ('float',),
- "PySide2.QtWidgets.QPinchGesture.setStartCenterPoint": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QPinchGesture.setTotalChangeFlags": ('PySide2.QtWidgets.QPinchGesture.ChangeFlags',),
- "PySide2.QtWidgets.QPinchGesture.setTotalRotationAngle": ('float',),
- "PySide2.QtWidgets.QPinchGesture.setTotalScaleFactor": ('float',),
- "PySide2.QtWidgets.QPinchGesture.startCenterPoint": (),
- "PySide2.QtWidgets.QPinchGesture.totalChangeFlags": (),
- "PySide2.QtWidgets.QPinchGesture.totalRotationAngle": (),
- "PySide2.QtWidgets.QPinchGesture.totalScaleFactor": (),
-# class PySide2.QtWidgets.QPlainTextDocumentLayout:
- "PySide2.QtWidgets.QPlainTextDocumentLayout.__init__": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.blockBoundingRect": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.cursorWidth": (),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.documentChanged": ('int', 'int', 'int'),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.documentSize": (),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.draw": ('PySide2.QtGui.QPainter', 'PySide2.QtGui.QAbstractTextDocumentLayout.PaintContext'),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.ensureBlockLayout": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.frameBoundingRect": ('PySide2.QtGui.QTextFrame',),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.hitTest": ('PySide2.QtCore.QPointF', 'PySide2.QtCore.Qt.HitTestAccuracy'),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.pageCount": (),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.requestUpdate": (),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.setCursorWidth": ('int',),
-# class PySide2.QtWidgets.QPlainTextEdit:
-# class PySide2.QtWidgets.QPlainTextEdit.LineWrapMode:
- "PySide2.QtWidgets.QPlainTextEdit.__init__": [('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QPlainTextEdit.anchorAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QPlainTextEdit.appendHtml": ('str',),
- "PySide2.QtWidgets.QPlainTextEdit.appendPlainText": ('str',),
- "PySide2.QtWidgets.QPlainTextEdit.backgroundVisible": (),
- "PySide2.QtWidgets.QPlainTextEdit.blockBoundingGeometry": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtWidgets.QPlainTextEdit.blockBoundingRect": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtWidgets.QPlainTextEdit.blockCount": (),
- "PySide2.QtWidgets.QPlainTextEdit.canInsertFromMimeData": ('PySide2.QtCore.QMimeData',),
- "PySide2.QtWidgets.QPlainTextEdit.canPaste": (),
- "PySide2.QtWidgets.QPlainTextEdit.centerCursor": (),
- "PySide2.QtWidgets.QPlainTextEdit.centerOnScroll": (),
- "PySide2.QtWidgets.QPlainTextEdit.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.clear": (),
- "PySide2.QtWidgets.QPlainTextEdit.contentOffset": (),
- "PySide2.QtWidgets.QPlainTextEdit.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.copy": (),
- "PySide2.QtWidgets.QPlainTextEdit.createMimeDataFromSelection": (),
- "PySide2.QtWidgets.QPlainTextEdit.createStandardContextMenu": [(), ('PySide2.QtCore.QPoint',)],
- "PySide2.QtWidgets.QPlainTextEdit.currentCharFormat": (),
- "PySide2.QtWidgets.QPlainTextEdit.cursorForPosition": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QPlainTextEdit.cursorRect": [(), ('PySide2.QtGui.QTextCursor',)],
- "PySide2.QtWidgets.QPlainTextEdit.cursorWidth": (),
- "PySide2.QtWidgets.QPlainTextEdit.cut": (),
- "PySide2.QtWidgets.QPlainTextEdit.doSetTextCursor": ('PySide2.QtGui.QTextCursor',),
- "PySide2.QtWidgets.QPlainTextEdit.document": (),
- "PySide2.QtWidgets.QPlainTextEdit.documentTitle": (),
- "PySide2.QtWidgets.QPlainTextEdit.dragEnterEvent": ('PySide2.QtGui.QDragEnterEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.ensureCursorVisible": (),
- "PySide2.QtWidgets.QPlainTextEdit.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.extraSelections": (),
- "PySide2.QtWidgets.QPlainTextEdit.find": [('PySide2.QtCore.QRegExp', 'PySide2.QtGui.QTextDocument.FindFlags'), ('PySide2.QtCore.QRegularExpression', 'PySide2.QtGui.QTextDocument.FindFlags'), ('str', 'PySide2.QtGui.QTextDocument.FindFlags')],
- "PySide2.QtWidgets.QPlainTextEdit.firstVisibleBlock": (),
- "PySide2.QtWidgets.QPlainTextEdit.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QPlainTextEdit.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.getPaintContext": (),
- "PySide2.QtWidgets.QPlainTextEdit.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.inputMethodQuery": [('PySide2.QtCore.Qt.InputMethodQuery',), ('PySide2.QtCore.Qt.InputMethodQuery', 'typing.Any')],
- "PySide2.QtWidgets.QPlainTextEdit.insertFromMimeData": ('PySide2.QtCore.QMimeData',),
- "PySide2.QtWidgets.QPlainTextEdit.insertPlainText": ('str',),
- "PySide2.QtWidgets.QPlainTextEdit.isReadOnly": (),
- "PySide2.QtWidgets.QPlainTextEdit.isUndoRedoEnabled": (),
- "PySide2.QtWidgets.QPlainTextEdit.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.lineWrapMode": (),
- "PySide2.QtWidgets.QPlainTextEdit.loadResource": ('int', 'PySide2.QtCore.QUrl'),
- "PySide2.QtWidgets.QPlainTextEdit.maximumBlockCount": (),
- "PySide2.QtWidgets.QPlainTextEdit.mergeCurrentCharFormat": ('PySide2.QtGui.QTextCharFormat',),
- "PySide2.QtWidgets.QPlainTextEdit.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.moveCursor": ('PySide2.QtGui.QTextCursor.MoveOperation', 'PySide2.QtGui.QTextCursor.MoveMode'),
- "PySide2.QtWidgets.QPlainTextEdit.overwriteMode": (),
- "PySide2.QtWidgets.QPlainTextEdit.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.paste": (),
- "PySide2.QtWidgets.QPlainTextEdit.placeholderText": (),
- "PySide2.QtWidgets.QPlainTextEdit.print_": ('PySide2.QtGui.QPagedPaintDevice',),
- "PySide2.QtWidgets.QPlainTextEdit.redo": (),
- "PySide2.QtWidgets.QPlainTextEdit.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QPlainTextEdit.selectAll": (),
- "PySide2.QtWidgets.QPlainTextEdit.setBackgroundVisible": ('bool',),
- "PySide2.QtWidgets.QPlainTextEdit.setCenterOnScroll": ('bool',),
- "PySide2.QtWidgets.QPlainTextEdit.setCurrentCharFormat": ('PySide2.QtGui.QTextCharFormat',),
- "PySide2.QtWidgets.QPlainTextEdit.setCursorWidth": ('int',),
- "PySide2.QtWidgets.QPlainTextEdit.setDocument": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtWidgets.QPlainTextEdit.setDocumentTitle": ('str',),
- "PySide2.QtWidgets.QPlainTextEdit.setExtraSelections": ('typing.Sequence[PySide2.QtWidgets.QTextEdit.ExtraSelection]',),
- "PySide2.QtWidgets.QPlainTextEdit.setLineWrapMode": ('PySide2.QtWidgets.QPlainTextEdit.LineWrapMode',),
- "PySide2.QtWidgets.QPlainTextEdit.setMaximumBlockCount": ('int',),
- "PySide2.QtWidgets.QPlainTextEdit.setOverwriteMode": ('bool',),
- "PySide2.QtWidgets.QPlainTextEdit.setPlaceholderText": ('str',),
- "PySide2.QtWidgets.QPlainTextEdit.setPlainText": ('str',),
- "PySide2.QtWidgets.QPlainTextEdit.setReadOnly": ('bool',),
- "PySide2.QtWidgets.QPlainTextEdit.setTabChangesFocus": ('bool',),
- "PySide2.QtWidgets.QPlainTextEdit.setTabStopDistance": ('float',),
- "PySide2.QtWidgets.QPlainTextEdit.setTabStopWidth": ('int',),
- "PySide2.QtWidgets.QPlainTextEdit.setTextCursor": ('PySide2.QtGui.QTextCursor',),
- "PySide2.QtWidgets.QPlainTextEdit.setTextInteractionFlags": ('PySide2.QtCore.Qt.TextInteractionFlags',),
- "PySide2.QtWidgets.QPlainTextEdit.setUndoRedoEnabled": ('bool',),
- "PySide2.QtWidgets.QPlainTextEdit.setWordWrapMode": ('PySide2.QtGui.QTextOption.WrapMode',),
- "PySide2.QtWidgets.QPlainTextEdit.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.tabChangesFocus": (),
- "PySide2.QtWidgets.QPlainTextEdit.tabStopDistance": (),
- "PySide2.QtWidgets.QPlainTextEdit.tabStopWidth": (),
- "PySide2.QtWidgets.QPlainTextEdit.textCursor": (),
- "PySide2.QtWidgets.QPlainTextEdit.textInteractionFlags": (),
- "PySide2.QtWidgets.QPlainTextEdit.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.toPlainText": (),
- "PySide2.QtWidgets.QPlainTextEdit.undo": (),
- "PySide2.QtWidgets.QPlainTextEdit.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.wordWrapMode": (),
- "PySide2.QtWidgets.QPlainTextEdit.zoomIn": ('int',),
- "PySide2.QtWidgets.QPlainTextEdit.zoomInF": ('float',),
- "PySide2.QtWidgets.QPlainTextEdit.zoomOut": ('int',),
-# class PySide2.QtWidgets.QProgressBar:
-# class PySide2.QtWidgets.QProgressBar.Direction:
- "PySide2.QtWidgets.QProgressBar.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QProgressBar.alignment": (),
- "PySide2.QtWidgets.QProgressBar.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QProgressBar.format": (),
- "PySide2.QtWidgets.QProgressBar.initStyleOption": ('PySide2.QtWidgets.QStyleOptionProgressBar',),
- "PySide2.QtWidgets.QProgressBar.invertedAppearance": (),
- "PySide2.QtWidgets.QProgressBar.isTextVisible": (),
- "PySide2.QtWidgets.QProgressBar.maximum": (),
- "PySide2.QtWidgets.QProgressBar.minimum": (),
- "PySide2.QtWidgets.QProgressBar.minimumSizeHint": (),
- "PySide2.QtWidgets.QProgressBar.orientation": (),
- "PySide2.QtWidgets.QProgressBar.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QProgressBar.reset": (),
- "PySide2.QtWidgets.QProgressBar.resetFormat": (),
- "PySide2.QtWidgets.QProgressBar.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QProgressBar.setFormat": ('str',),
- "PySide2.QtWidgets.QProgressBar.setInvertedAppearance": ('bool',),
- "PySide2.QtWidgets.QProgressBar.setMaximum": ('int',),
- "PySide2.QtWidgets.QProgressBar.setMinimum": ('int',),
- "PySide2.QtWidgets.QProgressBar.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtWidgets.QProgressBar.setRange": ('int', 'int'),
- "PySide2.QtWidgets.QProgressBar.setTextDirection": ('PySide2.QtWidgets.QProgressBar.Direction',),
- "PySide2.QtWidgets.QProgressBar.setTextVisible": ('bool',),
- "PySide2.QtWidgets.QProgressBar.setValue": ('int',),
- "PySide2.QtWidgets.QProgressBar.sizeHint": (),
- "PySide2.QtWidgets.QProgressBar.text": (),
- "PySide2.QtWidgets.QProgressBar.textDirection": (),
- "PySide2.QtWidgets.QProgressBar.value": (),
-# class PySide2.QtWidgets.QProgressDialog:
- "PySide2.QtWidgets.QProgressDialog.__init__": [('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'), ('str', 'str', 'int', 'int', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags')],
- "PySide2.QtWidgets.QProgressDialog.autoClose": (),
- "PySide2.QtWidgets.QProgressDialog.autoReset": (),
- "PySide2.QtWidgets.QProgressDialog.cancel": (),
- "PySide2.QtWidgets.QProgressDialog.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QProgressDialog.closeEvent": ('PySide2.QtGui.QCloseEvent',),
- "PySide2.QtWidgets.QProgressDialog.forceShow": (),
- "PySide2.QtWidgets.QProgressDialog.labelText": (),
- "PySide2.QtWidgets.QProgressDialog.maximum": (),
- "PySide2.QtWidgets.QProgressDialog.minimum": (),
- "PySide2.QtWidgets.QProgressDialog.minimumDuration": (),
- "PySide2.QtWidgets.QProgressDialog.open": [(), ('PySide2.QtCore.QObject', 'str')],
- "PySide2.QtWidgets.QProgressDialog.reset": (),
- "PySide2.QtWidgets.QProgressDialog.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QProgressDialog.setAutoClose": ('bool',),
- "PySide2.QtWidgets.QProgressDialog.setAutoReset": ('bool',),
- "PySide2.QtWidgets.QProgressDialog.setBar": ('PySide2.QtWidgets.QProgressBar',),
- "PySide2.QtWidgets.QProgressDialog.setCancelButton": ('PySide2.QtWidgets.QPushButton',),
- "PySide2.QtWidgets.QProgressDialog.setCancelButtonText": ('str',),
- "PySide2.QtWidgets.QProgressDialog.setLabel": ('PySide2.QtWidgets.QLabel',),
- "PySide2.QtWidgets.QProgressDialog.setLabelText": ('str',),
- "PySide2.QtWidgets.QProgressDialog.setMaximum": ('int',),
- "PySide2.QtWidgets.QProgressDialog.setMinimum": ('int',),
- "PySide2.QtWidgets.QProgressDialog.setMinimumDuration": ('int',),
- "PySide2.QtWidgets.QProgressDialog.setRange": ('int', 'int'),
- "PySide2.QtWidgets.QProgressDialog.setValue": ('int',),
- "PySide2.QtWidgets.QProgressDialog.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QProgressDialog.sizeHint": (),
- "PySide2.QtWidgets.QProgressDialog.value": (),
- "PySide2.QtWidgets.QProgressDialog.wasCanceled": (),
-# class PySide2.QtWidgets.QProxyStyle:
- "PySide2.QtWidgets.QProxyStyle.__init__": [('PySide2.QtWidgets.QStyle',), ('str',)],
- "PySide2.QtWidgets.QProxyStyle.baseStyle": (),
- "PySide2.QtWidgets.QProxyStyle.drawComplexControl": ('PySide2.QtWidgets.QStyle.ComplexControl', 'PySide2.QtWidgets.QStyleOptionComplex', 'PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.drawControl": ('PySide2.QtWidgets.QStyle.ControlElement', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.drawItemPixmap": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRect', 'int', 'PySide2.QtGui.QPixmap'),
- "PySide2.QtWidgets.QProxyStyle.drawItemText": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRect', 'int', 'PySide2.QtGui.QPalette', 'bool', 'str', 'PySide2.QtGui.QPalette.ColorRole'),
- "PySide2.QtWidgets.QProxyStyle.drawPrimitive": ('PySide2.QtWidgets.QStyle.PrimitiveElement', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QProxyStyle.generatedIconPixmap": ('PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QPixmap', 'PySide2.QtWidgets.QStyleOption'),
- "PySide2.QtWidgets.QProxyStyle.hitTestComplexControl": ('PySide2.QtWidgets.QStyle.ComplexControl', 'PySide2.QtWidgets.QStyleOptionComplex', 'PySide2.QtCore.QPoint', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.itemPixmapRect": ('PySide2.QtCore.QRect', 'int', 'PySide2.QtGui.QPixmap'),
- "PySide2.QtWidgets.QProxyStyle.itemTextRect": ('PySide2.QtGui.QFontMetrics', 'PySide2.QtCore.QRect', 'int', 'bool', 'str'),
- "PySide2.QtWidgets.QProxyStyle.layoutSpacing": ('PySide2.QtWidgets.QSizePolicy.ControlType', 'PySide2.QtWidgets.QSizePolicy.ControlType', 'PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.pixelMetric": ('PySide2.QtWidgets.QStyle.PixelMetric', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.polish": [('PySide2.QtGui.QPalette',), ('PySide2.QtWidgets.QApplication',), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QProxyStyle.setBaseStyle": ('PySide2.QtWidgets.QStyle',),
- "PySide2.QtWidgets.QProxyStyle.sizeFromContents": ('PySide2.QtWidgets.QStyle.ContentsType', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtCore.QSize', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.standardIcon": ('PySide2.QtWidgets.QStyle.StandardPixmap', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.standardPalette": (),
- "PySide2.QtWidgets.QProxyStyle.standardPixmap": ('PySide2.QtWidgets.QStyle.StandardPixmap', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.styleHint": ('PySide2.QtWidgets.QStyle.StyleHint', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QStyleHintReturn'),
- "PySide2.QtWidgets.QProxyStyle.subControlRect": ('PySide2.QtWidgets.QStyle.ComplexControl', 'PySide2.QtWidgets.QStyleOptionComplex', 'PySide2.QtWidgets.QStyle.SubControl', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.subElementRect": ('PySide2.QtWidgets.QStyle.SubElement', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.unpolish": [('PySide2.QtWidgets.QApplication',), ('PySide2.QtWidgets.QWidget',)],
-# class PySide2.QtWidgets.QPushButton:
- "PySide2.QtWidgets.QPushButton.__init__": [('PySide2.QtGui.QIcon', 'str', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QPushButton.autoDefault": (),
- "PySide2.QtWidgets.QPushButton.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QPushButton.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QPushButton.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QPushButton.initStyleOption": ('PySide2.QtWidgets.QStyleOptionButton',),
- "PySide2.QtWidgets.QPushButton.isDefault": (),
- "PySide2.QtWidgets.QPushButton.isFlat": (),
- "PySide2.QtWidgets.QPushButton.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QPushButton.menu": (),
- "PySide2.QtWidgets.QPushButton.minimumSizeHint": (),
- "PySide2.QtWidgets.QPushButton.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QPushButton.setAutoDefault": ('bool',),
- "PySide2.QtWidgets.QPushButton.setDefault": ('bool',),
- "PySide2.QtWidgets.QPushButton.setFlat": ('bool',),
- "PySide2.QtWidgets.QPushButton.setMenu": ('PySide2.QtWidgets.QMenu',),
- "PySide2.QtWidgets.QPushButton.showMenu": (),
- "PySide2.QtWidgets.QPushButton.sizeHint": (),
-# class PySide2.QtWidgets.QRadioButton:
- "PySide2.QtWidgets.QRadioButton.__init__": [('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QRadioButton.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QRadioButton.hitButton": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QRadioButton.initStyleOption": ('PySide2.QtWidgets.QStyleOptionButton',),
- "PySide2.QtWidgets.QRadioButton.minimumSizeHint": (),
- "PySide2.QtWidgets.QRadioButton.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QRadioButton.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QRadioButton.sizeHint": (),
-# class PySide2.QtWidgets.QRubberBand:
-# class PySide2.QtWidgets.QRubberBand.Shape:
- "PySide2.QtWidgets.QRubberBand.__init__": ('PySide2.QtWidgets.QRubberBand.Shape', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QRubberBand.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QRubberBand.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QRubberBand.initStyleOption": ('PySide2.QtWidgets.QStyleOptionRubberBand',),
- "PySide2.QtWidgets.QRubberBand.move": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtWidgets.QRubberBand.moveEvent": ('PySide2.QtGui.QMoveEvent',),
- "PySide2.QtWidgets.QRubberBand.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QRubberBand.resize": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtWidgets.QRubberBand.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QRubberBand.setGeometry": [('PySide2.QtCore.QRect',), ('int', 'int', 'int', 'int')],
- "PySide2.QtWidgets.QRubberBand.shape": (),
- "PySide2.QtWidgets.QRubberBand.showEvent": ('PySide2.QtGui.QShowEvent',),
-# class PySide2.QtWidgets.QScrollArea:
- "PySide2.QtWidgets.QScrollArea.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QScrollArea.alignment": (),
- "PySide2.QtWidgets.QScrollArea.ensureVisible": ('int', 'int', 'int', 'int'),
- "PySide2.QtWidgets.QScrollArea.ensureWidgetVisible": ('PySide2.QtWidgets.QWidget', 'int', 'int'),
- "PySide2.QtWidgets.QScrollArea.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QScrollArea.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QScrollArea.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QScrollArea.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QScrollArea.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QScrollArea.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QScrollArea.setWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QScrollArea.setWidgetResizable": ('bool',),
- "PySide2.QtWidgets.QScrollArea.sizeHint": (),
- "PySide2.QtWidgets.QScrollArea.takeWidget": (),
- "PySide2.QtWidgets.QScrollArea.viewportSizeHint": (),
- "PySide2.QtWidgets.QScrollArea.widget": (),
- "PySide2.QtWidgets.QScrollArea.widgetResizable": (),
-# class PySide2.QtWidgets.QScrollBar:
- "PySide2.QtWidgets.QScrollBar.__init__": [('PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QScrollBar.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QScrollBar.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QScrollBar.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWidgets.QScrollBar.initStyleOption": ('PySide2.QtWidgets.QStyleOptionSlider',),
- "PySide2.QtWidgets.QScrollBar.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QScrollBar.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QScrollBar.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QScrollBar.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QScrollBar.sizeHint": (),
- "PySide2.QtWidgets.QScrollBar.sliderChange": ('PySide2.QtWidgets.QAbstractSlider.SliderChange',),
- "PySide2.QtWidgets.QScrollBar.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtWidgets.QScroller:
-# class PySide2.QtWidgets.QScroller.Input:
-# class PySide2.QtWidgets.QScroller.ScrollerGestureType:
-# class PySide2.QtWidgets.QScroller.State:
- "PySide2.QtWidgets.QScroller.activeScrollers": (),
- "PySide2.QtWidgets.QScroller.ensureVisible": [('PySide2.QtCore.QRectF', 'float', 'float'), ('PySide2.QtCore.QRectF', 'float', 'float', 'int')],
- "PySide2.QtWidgets.QScroller.finalPosition": (),
- "PySide2.QtWidgets.QScroller.grabGesture": ('PySide2.QtCore.QObject', 'PySide2.QtWidgets.QScroller.ScrollerGestureType'),
- "PySide2.QtWidgets.QScroller.grabbedGesture": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QScroller.handleInput": ('PySide2.QtWidgets.QScroller.Input', 'PySide2.QtCore.QPointF', 'int'),
- "PySide2.QtWidgets.QScroller.hasScroller": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QScroller.pixelPerMeter": (),
- "PySide2.QtWidgets.QScroller.resendPrepareEvent": (),
- "PySide2.QtWidgets.QScroller.scrollTo": [('PySide2.QtCore.QPointF',), ('PySide2.QtCore.QPointF', 'int')],
- "PySide2.QtWidgets.QScroller.scroller": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QScroller.scrollerProperties": (),
- "PySide2.QtWidgets.QScroller.setScrollerProperties": ('PySide2.QtWidgets.QScrollerProperties',),
- "PySide2.QtWidgets.QScroller.setSnapPositionsX": [('float', 'float'), ('typing.Sequence[float]',)],
- "PySide2.QtWidgets.QScroller.setSnapPositionsY": [('float', 'float'), ('typing.Sequence[float]',)],
- "PySide2.QtWidgets.QScroller.state": (),
- "PySide2.QtWidgets.QScroller.stop": (),
- "PySide2.QtWidgets.QScroller.target": (),
- "PySide2.QtWidgets.QScroller.ungrabGesture": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QScroller.velocity": (),
-# class PySide2.QtWidgets.QScrollerProperties:
-# class PySide2.QtWidgets.QScrollerProperties.FrameRates:
-# class PySide2.QtWidgets.QScrollerProperties.OvershootPolicy:
-# class PySide2.QtWidgets.QScrollerProperties.ScrollMetric:
- "PySide2.QtWidgets.QScrollerProperties.__init__": [(), ('PySide2.QtWidgets.QScrollerProperties',)],
- "PySide2.QtWidgets.QScrollerProperties.__copy__": (),
- "PySide2.QtWidgets.QScrollerProperties.scrollMetric": ('PySide2.QtWidgets.QScrollerProperties.ScrollMetric',),
- "PySide2.QtWidgets.QScrollerProperties.setDefaultScrollerProperties": ('PySide2.QtWidgets.QScrollerProperties',),
- "PySide2.QtWidgets.QScrollerProperties.setScrollMetric": ('PySide2.QtWidgets.QScrollerProperties.ScrollMetric', 'typing.Any'),
- "PySide2.QtWidgets.QScrollerProperties.unsetDefaultScrollerProperties": (),
-# class PySide2.QtWidgets.QShortcut:
- "PySide2.QtWidgets.QShortcut.__init__": [('PySide2.QtGui.QKeySequence', 'PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtCore.Qt.ShortcutContext'), ('PySide2.QtGui.QKeySequence', 'PySide2.QtWidgets.QWidget', 'typing.Callable', 'PySide2.QtCore.Qt.ShortcutContext'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QShortcut.autoRepeat": (),
- "PySide2.QtWidgets.QShortcut.context": (),
- "PySide2.QtWidgets.QShortcut.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QShortcut.id": (),
- "PySide2.QtWidgets.QShortcut.isEnabled": (),
- "PySide2.QtWidgets.QShortcut.key": (),
- "PySide2.QtWidgets.QShortcut.parentWidget": (),
- "PySide2.QtWidgets.QShortcut.setAutoRepeat": ('bool',),
- "PySide2.QtWidgets.QShortcut.setContext": ('PySide2.QtCore.Qt.ShortcutContext',),
- "PySide2.QtWidgets.QShortcut.setEnabled": ('bool',),
- "PySide2.QtWidgets.QShortcut.setKey": ('PySide2.QtGui.QKeySequence',),
- "PySide2.QtWidgets.QShortcut.setWhatsThis": ('str',),
- "PySide2.QtWidgets.QShortcut.whatsThis": (),
-# class PySide2.QtWidgets.QSizeGrip:
- "PySide2.QtWidgets.QSizeGrip.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QSizeGrip.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QSizeGrip.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QSizeGrip.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWidgets.QSizeGrip.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QSizeGrip.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QSizeGrip.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QSizeGrip.moveEvent": ('PySide2.QtGui.QMoveEvent',),
- "PySide2.QtWidgets.QSizeGrip.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QSizeGrip.setVisible": ('bool',),
- "PySide2.QtWidgets.QSizeGrip.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QSizeGrip.sizeHint": (),
-# class PySide2.QtWidgets.QSizePolicy:
-# class PySide2.QtWidgets.QSizePolicy.ControlType:
-# class PySide2.QtWidgets.QSizePolicy.ControlTypes:
-# class PySide2.QtWidgets.QSizePolicy.Policy:
-# class PySide2.QtWidgets.QSizePolicy.PolicyFlag:
- "PySide2.QtWidgets.QSizePolicy.__init__": [(), ('PySide2.QtWidgets.QSizePolicy.Policy', 'PySide2.QtWidgets.QSizePolicy.Policy', 'PySide2.QtWidgets.QSizePolicy.ControlType')],
- "PySide2.QtWidgets.QSizePolicy.__copy__": (),
- "PySide2.QtWidgets.QSizePolicy.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QSizePolicy.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QSizePolicy.controlType": (),
- "PySide2.QtWidgets.QSizePolicy.expandingDirections": (),
- "PySide2.QtWidgets.QSizePolicy.hasHeightForWidth": (),
- "PySide2.QtWidgets.QSizePolicy.hasWidthForHeight": (),
- "PySide2.QtWidgets.QSizePolicy.horizontalPolicy": (),
- "PySide2.QtWidgets.QSizePolicy.horizontalStretch": (),
- "PySide2.QtWidgets.QSizePolicy.retainSizeWhenHidden": (),
- "PySide2.QtWidgets.QSizePolicy.setControlType": ('PySide2.QtWidgets.QSizePolicy.ControlType',),
- "PySide2.QtWidgets.QSizePolicy.setHeightForWidth": ('bool',),
- "PySide2.QtWidgets.QSizePolicy.setHorizontalPolicy": ('PySide2.QtWidgets.QSizePolicy.Policy',),
- "PySide2.QtWidgets.QSizePolicy.setHorizontalStretch": ('int',),
- "PySide2.QtWidgets.QSizePolicy.setRetainSizeWhenHidden": ('bool',),
- "PySide2.QtWidgets.QSizePolicy.setVerticalPolicy": ('PySide2.QtWidgets.QSizePolicy.Policy',),
- "PySide2.QtWidgets.QSizePolicy.setVerticalStretch": ('int',),
- "PySide2.QtWidgets.QSizePolicy.setWidthForHeight": ('bool',),
- "PySide2.QtWidgets.QSizePolicy.transpose": (),
- "PySide2.QtWidgets.QSizePolicy.transposed": (),
- "PySide2.QtWidgets.QSizePolicy.verticalPolicy": (),
- "PySide2.QtWidgets.QSizePolicy.verticalStretch": (),
-# class PySide2.QtWidgets.QSlider:
-# class PySide2.QtWidgets.QSlider.TickPosition:
- "PySide2.QtWidgets.QSlider.__init__": [('PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QSlider.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QSlider.initStyleOption": ('PySide2.QtWidgets.QStyleOptionSlider',),
- "PySide2.QtWidgets.QSlider.minimumSizeHint": (),
- "PySide2.QtWidgets.QSlider.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QSlider.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QSlider.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QSlider.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QSlider.setTickInterval": ('int',),
- "PySide2.QtWidgets.QSlider.setTickPosition": ('PySide2.QtWidgets.QSlider.TickPosition',),
- "PySide2.QtWidgets.QSlider.sizeHint": (),
- "PySide2.QtWidgets.QSlider.tickInterval": (),
- "PySide2.QtWidgets.QSlider.tickPosition": (),
-# class PySide2.QtWidgets.QSpacerItem:
- "PySide2.QtWidgets.QSpacerItem.__init__": ('int', 'int', 'PySide2.QtWidgets.QSizePolicy.Policy', 'PySide2.QtWidgets.QSizePolicy.Policy'),
- "PySide2.QtWidgets.QSpacerItem.changeSize": ('int', 'int', 'PySide2.QtWidgets.QSizePolicy.Policy', 'PySide2.QtWidgets.QSizePolicy.Policy'),
- "PySide2.QtWidgets.QSpacerItem.expandingDirections": (),
- "PySide2.QtWidgets.QSpacerItem.geometry": (),
- "PySide2.QtWidgets.QSpacerItem.isEmpty": (),
- "PySide2.QtWidgets.QSpacerItem.maximumSize": (),
- "PySide2.QtWidgets.QSpacerItem.minimumSize": (),
- "PySide2.QtWidgets.QSpacerItem.setGeometry": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QSpacerItem.sizeHint": (),
- "PySide2.QtWidgets.QSpacerItem.sizePolicy": (),
- "PySide2.QtWidgets.QSpacerItem.spacerItem": (),
-# class PySide2.QtWidgets.QSpinBox:
- "PySide2.QtWidgets.QSpinBox.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QSpinBox.cleanText": (),
- "PySide2.QtWidgets.QSpinBox.displayIntegerBase": (),
- "PySide2.QtWidgets.QSpinBox.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QSpinBox.fixup": ('str',),
- "PySide2.QtWidgets.QSpinBox.maximum": (),
- "PySide2.QtWidgets.QSpinBox.minimum": (),
- "PySide2.QtWidgets.QSpinBox.prefix": (),
- "PySide2.QtWidgets.QSpinBox.setDisplayIntegerBase": ('int',),
- "PySide2.QtWidgets.QSpinBox.setMaximum": ('int',),
- "PySide2.QtWidgets.QSpinBox.setMinimum": ('int',),
- "PySide2.QtWidgets.QSpinBox.setPrefix": ('str',),
- "PySide2.QtWidgets.QSpinBox.setRange": ('int', 'int'),
- "PySide2.QtWidgets.QSpinBox.setSingleStep": ('int',),
- "PySide2.QtWidgets.QSpinBox.setStepType": ('PySide2.QtWidgets.QAbstractSpinBox.StepType',),
- "PySide2.QtWidgets.QSpinBox.setSuffix": ('str',),
- "PySide2.QtWidgets.QSpinBox.setValue": ('int',),
- "PySide2.QtWidgets.QSpinBox.singleStep": (),
- "PySide2.QtWidgets.QSpinBox.stepType": (),
- "PySide2.QtWidgets.QSpinBox.suffix": (),
- "PySide2.QtWidgets.QSpinBox.textFromValue": ('int',),
- "PySide2.QtWidgets.QSpinBox.validate": ('str', 'int'),
- "PySide2.QtWidgets.QSpinBox.value": (),
- "PySide2.QtWidgets.QSpinBox.valueFromText": ('str',),
-# class PySide2.QtWidgets.QSplashScreen:
- "PySide2.QtWidgets.QSplashScreen.__init__": [('PySide2.QtGui.QPixmap', 'PySide2.QtCore.Qt.WindowFlags'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtGui.QPixmap', 'PySide2.QtCore.Qt.WindowFlags')],
- "PySide2.QtWidgets.QSplashScreen.clearMessage": (),
- "PySide2.QtWidgets.QSplashScreen.drawContents": ('PySide2.QtGui.QPainter',),
- "PySide2.QtWidgets.QSplashScreen.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QSplashScreen.finish": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QSplashScreen.message": (),
- "PySide2.QtWidgets.QSplashScreen.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QSplashScreen.pixmap": (),
- "PySide2.QtWidgets.QSplashScreen.setPixmap": ('PySide2.QtGui.QPixmap',),
- "PySide2.QtWidgets.QSplashScreen.showMessage": ('str', 'int', 'PySide2.QtGui.QColor'),
-# class PySide2.QtWidgets.QSplitter:
- "PySide2.QtWidgets.QSplitter.__init__": [('PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QSplitter.__lshift__": ('PySide2.QtCore.QTextStream',),
- "PySide2.QtWidgets.QSplitter.__rshift__": ('PySide2.QtCore.QTextStream',),
- "PySide2.QtWidgets.QSplitter.addWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QSplitter.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QSplitter.childEvent": ('PySide2.QtCore.QChildEvent',),
- "PySide2.QtWidgets.QSplitter.childrenCollapsible": (),
- "PySide2.QtWidgets.QSplitter.closestLegalPosition": ('int', 'int'),
- "PySide2.QtWidgets.QSplitter.count": (),
- "PySide2.QtWidgets.QSplitter.createHandle": (),
- "PySide2.QtWidgets.QSplitter.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QSplitter.getRange": ('int',),
- "PySide2.QtWidgets.QSplitter.handle": ('int',),
- "PySide2.QtWidgets.QSplitter.handleWidth": (),
- "PySide2.QtWidgets.QSplitter.indexOf": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QSplitter.insertWidget": ('int', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QSplitter.isCollapsible": ('int',),
- "PySide2.QtWidgets.QSplitter.minimumSizeHint": (),
- "PySide2.QtWidgets.QSplitter.moveSplitter": ('int', 'int'),
- "PySide2.QtWidgets.QSplitter.opaqueResize": (),
- "PySide2.QtWidgets.QSplitter.orientation": (),
- "PySide2.QtWidgets.QSplitter.refresh": (),
- "PySide2.QtWidgets.QSplitter.replaceWidget": ('int', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QSplitter.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QSplitter.restoreState": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWidgets.QSplitter.saveState": (),
- "PySide2.QtWidgets.QSplitter.setChildrenCollapsible": ('bool',),
- "PySide2.QtWidgets.QSplitter.setCollapsible": ('int', 'bool'),
- "PySide2.QtWidgets.QSplitter.setHandleWidth": ('int',),
- "PySide2.QtWidgets.QSplitter.setOpaqueResize": ('bool',),
- "PySide2.QtWidgets.QSplitter.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtWidgets.QSplitter.setRubberBand": ('int',),
- "PySide2.QtWidgets.QSplitter.setSizes": ('typing.Sequence[int]',),
- "PySide2.QtWidgets.QSplitter.setStretchFactor": ('int', 'int'),
- "PySide2.QtWidgets.QSplitter.sizeHint": (),
- "PySide2.QtWidgets.QSplitter.sizes": (),
- "PySide2.QtWidgets.QSplitter.widget": ('int',),
-# class PySide2.QtWidgets.QSplitterHandle:
- "PySide2.QtWidgets.QSplitterHandle.__init__": ('PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QSplitter'),
- "PySide2.QtWidgets.QSplitterHandle.closestLegalPosition": ('int',),
- "PySide2.QtWidgets.QSplitterHandle.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QSplitterHandle.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QSplitterHandle.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QSplitterHandle.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QSplitterHandle.moveSplitter": ('int',),
- "PySide2.QtWidgets.QSplitterHandle.opaqueResize": (),
- "PySide2.QtWidgets.QSplitterHandle.orientation": (),
- "PySide2.QtWidgets.QSplitterHandle.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QSplitterHandle.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QSplitterHandle.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtWidgets.QSplitterHandle.sizeHint": (),
- "PySide2.QtWidgets.QSplitterHandle.splitter": (),
-# class PySide2.QtWidgets.QStackedLayout:
-# class PySide2.QtWidgets.QStackedLayout.StackingMode:
- "PySide2.QtWidgets.QStackedLayout.__init__": [(), ('PySide2.QtWidgets.QLayout',), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QStackedLayout.addItem": ('PySide2.QtWidgets.QLayoutItem',),
- "PySide2.QtWidgets.QStackedLayout.addWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QStackedLayout.count": (),
- "PySide2.QtWidgets.QStackedLayout.currentIndex": (),
- "PySide2.QtWidgets.QStackedLayout.currentWidget": (),
- "PySide2.QtWidgets.QStackedLayout.hasHeightForWidth": (),
- "PySide2.QtWidgets.QStackedLayout.heightForWidth": ('int',),
- "PySide2.QtWidgets.QStackedLayout.insertWidget": ('int', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStackedLayout.itemAt": ('int',),
- "PySide2.QtWidgets.QStackedLayout.minimumSize": (),
- "PySide2.QtWidgets.QStackedLayout.setCurrentIndex": ('int',),
- "PySide2.QtWidgets.QStackedLayout.setCurrentWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QStackedLayout.setGeometry": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QStackedLayout.setStackingMode": ('PySide2.QtWidgets.QStackedLayout.StackingMode',),
- "PySide2.QtWidgets.QStackedLayout.sizeHint": (),
- "PySide2.QtWidgets.QStackedLayout.stackingMode": (),
- "PySide2.QtWidgets.QStackedLayout.takeAt": ('int',),
- "PySide2.QtWidgets.QStackedLayout.widget": [(), ('int',)],
-# class PySide2.QtWidgets.QStackedWidget:
- "PySide2.QtWidgets.QStackedWidget.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QStackedWidget.addWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QStackedWidget.count": (),
- "PySide2.QtWidgets.QStackedWidget.currentIndex": (),
- "PySide2.QtWidgets.QStackedWidget.currentWidget": (),
- "PySide2.QtWidgets.QStackedWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QStackedWidget.indexOf": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QStackedWidget.insertWidget": ('int', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStackedWidget.removeWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QStackedWidget.setCurrentIndex": ('int',),
- "PySide2.QtWidgets.QStackedWidget.setCurrentWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QStackedWidget.widget": ('int',),
-# class PySide2.QtWidgets.QStatusBar:
- "PySide2.QtWidgets.QStatusBar.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QStatusBar.addPermanentWidget": ('PySide2.QtWidgets.QWidget', 'int'),
- "PySide2.QtWidgets.QStatusBar.addWidget": ('PySide2.QtWidgets.QWidget', 'int'),
- "PySide2.QtWidgets.QStatusBar.clearMessage": (),
- "PySide2.QtWidgets.QStatusBar.currentMessage": (),
- "PySide2.QtWidgets.QStatusBar.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QStatusBar.hideOrShow": (),
- "PySide2.QtWidgets.QStatusBar.insertPermanentWidget": ('int', 'PySide2.QtWidgets.QWidget', 'int'),
- "PySide2.QtWidgets.QStatusBar.insertWidget": ('int', 'PySide2.QtWidgets.QWidget', 'int'),
- "PySide2.QtWidgets.QStatusBar.isSizeGripEnabled": (),
- "PySide2.QtWidgets.QStatusBar.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QStatusBar.reformat": (),
- "PySide2.QtWidgets.QStatusBar.removeWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QStatusBar.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QStatusBar.setSizeGripEnabled": ('bool',),
- "PySide2.QtWidgets.QStatusBar.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QStatusBar.showMessage": ('str', 'int'),
-# class PySide2.QtWidgets.QStyle:
-# class PySide2.QtWidgets.QStyle.ComplexControl:
-# class PySide2.QtWidgets.QStyle.ContentsType:
-# class PySide2.QtWidgets.QStyle.ControlElement:
-# class PySide2.QtWidgets.QStyle.PixelMetric:
-# class PySide2.QtWidgets.QStyle.PrimitiveElement:
-# class PySide2.QtWidgets.QStyle.RequestSoftwareInputPanel:
-# class PySide2.QtWidgets.QStyle.StandardPixmap:
-# class PySide2.QtWidgets.QStyle.State:
-# class PySide2.QtWidgets.QStyle.StateFlag:
-# class PySide2.QtWidgets.QStyle.StyleHint:
-# class PySide2.QtWidgets.QStyle.SubControl:
-# class PySide2.QtWidgets.QStyle.SubControls:
-# class PySide2.QtWidgets.QStyle.SubElement:
- "PySide2.QtWidgets.QStyle.__init__": (),
- "PySide2.QtWidgets.QStyle.alignedRect": ('PySide2.QtCore.Qt.LayoutDirection', 'PySide2.QtCore.Qt.Alignment', 'PySide2.QtCore.QSize', 'PySide2.QtCore.QRect'),
- "PySide2.QtWidgets.QStyle.combinedLayoutSpacing": ('PySide2.QtWidgets.QSizePolicy.ControlTypes', 'PySide2.QtWidgets.QSizePolicy.ControlTypes', 'PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.drawComplexControl": ('PySide2.QtWidgets.QStyle.ComplexControl', 'PySide2.QtWidgets.QStyleOptionComplex', 'PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.drawControl": ('PySide2.QtWidgets.QStyle.ControlElement', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.drawItemPixmap": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRect', 'int', 'PySide2.QtGui.QPixmap'),
- "PySide2.QtWidgets.QStyle.drawItemText": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRect', 'int', 'PySide2.QtGui.QPalette', 'bool', 'str', 'PySide2.QtGui.QPalette.ColorRole'),
- "PySide2.QtWidgets.QStyle.drawPrimitive": ('PySide2.QtWidgets.QStyle.PrimitiveElement', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.generatedIconPixmap": ('PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QPixmap', 'PySide2.QtWidgets.QStyleOption'),
- "PySide2.QtWidgets.QStyle.hitTestComplexControl": ('PySide2.QtWidgets.QStyle.ComplexControl', 'PySide2.QtWidgets.QStyleOptionComplex', 'PySide2.QtCore.QPoint', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.itemPixmapRect": ('PySide2.QtCore.QRect', 'int', 'PySide2.QtGui.QPixmap'),
- "PySide2.QtWidgets.QStyle.itemTextRect": ('PySide2.QtGui.QFontMetrics', 'PySide2.QtCore.QRect', 'int', 'bool', 'str'),
- "PySide2.QtWidgets.QStyle.layoutSpacing": ('PySide2.QtWidgets.QSizePolicy.ControlType', 'PySide2.QtWidgets.QSizePolicy.ControlType', 'PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.pixelMetric": ('PySide2.QtWidgets.QStyle.PixelMetric', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.polish": [('PySide2.QtGui.QPalette',), ('PySide2.QtWidgets.QApplication',), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QStyle.proxy": (),
- "PySide2.QtWidgets.QStyle.sizeFromContents": ('PySide2.QtWidgets.QStyle.ContentsType', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtCore.QSize', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.sliderPositionFromValue": ('int', 'int', 'int', 'int', 'bool'),
- "PySide2.QtWidgets.QStyle.sliderValueFromPosition": ('int', 'int', 'int', 'int', 'bool'),
- "PySide2.QtWidgets.QStyle.standardIcon": ('PySide2.QtWidgets.QStyle.StandardPixmap', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.standardPalette": (),
- "PySide2.QtWidgets.QStyle.standardPixmap": ('PySide2.QtWidgets.QStyle.StandardPixmap', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.styleHint": ('PySide2.QtWidgets.QStyle.StyleHint', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QStyleHintReturn'),
- "PySide2.QtWidgets.QStyle.subControlRect": ('PySide2.QtWidgets.QStyle.ComplexControl', 'PySide2.QtWidgets.QStyleOptionComplex', 'PySide2.QtWidgets.QStyle.SubControl', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.subElementRect": ('PySide2.QtWidgets.QStyle.SubElement', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.unpolish": [('PySide2.QtWidgets.QApplication',), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QStyle.visualAlignment": ('PySide2.QtCore.Qt.LayoutDirection', 'PySide2.QtCore.Qt.Alignment'),
- "PySide2.QtWidgets.QStyle.visualPos": ('PySide2.QtCore.Qt.LayoutDirection', 'PySide2.QtCore.QRect', 'PySide2.QtCore.QPoint'),
- "PySide2.QtWidgets.QStyle.visualRect": ('PySide2.QtCore.Qt.LayoutDirection', 'PySide2.QtCore.QRect', 'PySide2.QtCore.QRect'),
-# class PySide2.QtWidgets.QStyleFactory:
- "PySide2.QtWidgets.QStyleFactory.__init__": (),
- "PySide2.QtWidgets.QStyleFactory.create": ('str',),
- "PySide2.QtWidgets.QStyleFactory.keys": (),
-# class PySide2.QtWidgets.QStyleHintReturn:
-# class PySide2.QtWidgets.QStyleHintReturn.HintReturnType:
-# class PySide2.QtWidgets.QStyleHintReturn.StyleOptionType:
-# class PySide2.QtWidgets.QStyleHintReturn.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleHintReturn.__init__": ('int', 'int'),
-# class PySide2.QtWidgets.QStyleHintReturnMask:
-# class PySide2.QtWidgets.QStyleHintReturnMask.StyleOptionType:
-# class PySide2.QtWidgets.QStyleHintReturnMask.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleHintReturnMask.__init__": (),
-# class PySide2.QtWidgets.QStyleHintReturnVariant:
-# class PySide2.QtWidgets.QStyleHintReturnVariant.StyleOptionType:
-# class PySide2.QtWidgets.QStyleHintReturnVariant.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleHintReturnVariant.__init__": (),
-# class PySide2.QtWidgets.QStyleOption:
-# class PySide2.QtWidgets.QStyleOption.OptionType:
-# class PySide2.QtWidgets.QStyleOption.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOption.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOption.__init__": [('PySide2.QtWidgets.QStyleOption',), ('int', 'int')],
- "PySide2.QtWidgets.QStyleOption.init": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QStyleOption.initFrom": ('PySide2.QtWidgets.QWidget',),
-# class PySide2.QtWidgets.QStyleOptionButton:
-# class PySide2.QtWidgets.QStyleOptionButton.ButtonFeature:
-# class PySide2.QtWidgets.QStyleOptionButton.ButtonFeatures:
-# class PySide2.QtWidgets.QStyleOptionButton.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionButton.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionButton.__init__": [(), ('PySide2.QtWidgets.QStyleOptionButton',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionComboBox:
-# class PySide2.QtWidgets.QStyleOptionComboBox.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionComboBox.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionComboBox.__init__": [(), ('PySide2.QtWidgets.QStyleOptionComboBox',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionComplex:
-# class PySide2.QtWidgets.QStyleOptionComplex.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionComplex.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionComplex.__init__": [('PySide2.QtWidgets.QStyleOptionComplex',), ('int', 'int')],
-# class PySide2.QtWidgets.QStyleOptionDockWidget:
-# class PySide2.QtWidgets.QStyleOptionDockWidget.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionDockWidget.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionDockWidget.__init__": [(), ('PySide2.QtWidgets.QStyleOptionDockWidget',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionFocusRect:
-# class PySide2.QtWidgets.QStyleOptionFocusRect.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionFocusRect.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionFocusRect.__init__": [(), ('PySide2.QtWidgets.QStyleOptionFocusRect',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionFrame:
-# class PySide2.QtWidgets.QStyleOptionFrame.FrameFeature:
-# class PySide2.QtWidgets.QStyleOptionFrame.FrameFeatures:
-# class PySide2.QtWidgets.QStyleOptionFrame.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionFrame.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionFrame.__init__": [(), ('PySide2.QtWidgets.QStyleOptionFrame',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionGraphicsItem:
-# class PySide2.QtWidgets.QStyleOptionGraphicsItem.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionGraphicsItem.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionGraphicsItem.__init__": [(), ('PySide2.QtWidgets.QStyleOptionGraphicsItem',), ('int',)],
- "PySide2.QtWidgets.QStyleOptionGraphicsItem.levelOfDetailFromTransform": ('PySide2.QtGui.QTransform',),
-# class PySide2.QtWidgets.QStyleOptionGroupBox:
-# class PySide2.QtWidgets.QStyleOptionGroupBox.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionGroupBox.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionGroupBox.__init__": [(), ('PySide2.QtWidgets.QStyleOptionGroupBox',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionHeader:
-# class PySide2.QtWidgets.QStyleOptionHeader.SectionPosition:
-# class PySide2.QtWidgets.QStyleOptionHeader.SelectedPosition:
-# class PySide2.QtWidgets.QStyleOptionHeader.SortIndicator:
-# class PySide2.QtWidgets.QStyleOptionHeader.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionHeader.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionHeader.__init__": [(), ('PySide2.QtWidgets.QStyleOptionHeader',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionMenuItem:
-# class PySide2.QtWidgets.QStyleOptionMenuItem.CheckType:
-# class PySide2.QtWidgets.QStyleOptionMenuItem.MenuItemType:
-# class PySide2.QtWidgets.QStyleOptionMenuItem.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionMenuItem.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionMenuItem.__init__": [(), ('PySide2.QtWidgets.QStyleOptionMenuItem',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionProgressBar:
-# class PySide2.QtWidgets.QStyleOptionProgressBar.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionProgressBar.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionProgressBar.__init__": [(), ('PySide2.QtWidgets.QStyleOptionProgressBar',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionRubberBand:
-# class PySide2.QtWidgets.QStyleOptionRubberBand.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionRubberBand.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionRubberBand.__init__": [(), ('PySide2.QtWidgets.QStyleOptionRubberBand',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionSizeGrip:
-# class PySide2.QtWidgets.QStyleOptionSizeGrip.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionSizeGrip.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionSizeGrip.__init__": [(), ('PySide2.QtWidgets.QStyleOptionSizeGrip',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionSlider:
-# class PySide2.QtWidgets.QStyleOptionSlider.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionSlider.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionSlider.__init__": [(), ('PySide2.QtWidgets.QStyleOptionSlider',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionSpinBox:
-# class PySide2.QtWidgets.QStyleOptionSpinBox.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionSpinBox.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionSpinBox.__init__": [(), ('PySide2.QtWidgets.QStyleOptionSpinBox',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionTab:
-# class PySide2.QtWidgets.QStyleOptionTab.CornerWidget:
-# class PySide2.QtWidgets.QStyleOptionTab.CornerWidgets:
-# class PySide2.QtWidgets.QStyleOptionTab.SelectedPosition:
-# class PySide2.QtWidgets.QStyleOptionTab.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionTab.StyleOptionVersion:
-# class PySide2.QtWidgets.QStyleOptionTab.TabFeature:
-# class PySide2.QtWidgets.QStyleOptionTab.TabFeatures:
-# class PySide2.QtWidgets.QStyleOptionTab.TabPosition:
- "PySide2.QtWidgets.QStyleOptionTab.__init__": [(), ('PySide2.QtWidgets.QStyleOptionTab',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionTabBarBase:
-# class PySide2.QtWidgets.QStyleOptionTabBarBase.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionTabBarBase.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionTabBarBase.__init__": [(), ('PySide2.QtWidgets.QStyleOptionTabBarBase',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionTabWidgetFrame:
-# class PySide2.QtWidgets.QStyleOptionTabWidgetFrame.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionTabWidgetFrame.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionTabWidgetFrame.__init__": [(), ('PySide2.QtWidgets.QStyleOptionTabWidgetFrame',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionTitleBar:
-# class PySide2.QtWidgets.QStyleOptionTitleBar.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionTitleBar.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionTitleBar.__init__": [(), ('PySide2.QtWidgets.QStyleOptionTitleBar',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionToolBar:
-# class PySide2.QtWidgets.QStyleOptionToolBar.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionToolBar.StyleOptionVersion:
-# class PySide2.QtWidgets.QStyleOptionToolBar.ToolBarFeature:
-# class PySide2.QtWidgets.QStyleOptionToolBar.ToolBarFeatures:
-# class PySide2.QtWidgets.QStyleOptionToolBar.ToolBarPosition:
- "PySide2.QtWidgets.QStyleOptionToolBar.__init__": [(), ('PySide2.QtWidgets.QStyleOptionToolBar',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionToolBox:
-# class PySide2.QtWidgets.QStyleOptionToolBox.SelectedPosition:
-# class PySide2.QtWidgets.QStyleOptionToolBox.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionToolBox.StyleOptionVersion:
-# class PySide2.QtWidgets.QStyleOptionToolBox.TabPosition:
- "PySide2.QtWidgets.QStyleOptionToolBox.__init__": [(), ('PySide2.QtWidgets.QStyleOptionToolBox',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionToolButton:
-# class PySide2.QtWidgets.QStyleOptionToolButton.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionToolButton.StyleOptionVersion:
-# class PySide2.QtWidgets.QStyleOptionToolButton.ToolButtonFeature:
-# class PySide2.QtWidgets.QStyleOptionToolButton.ToolButtonFeatures:
- "PySide2.QtWidgets.QStyleOptionToolButton.__init__": [(), ('PySide2.QtWidgets.QStyleOptionToolButton',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionViewItem:
-# class PySide2.QtWidgets.QStyleOptionViewItem.Position:
-# class PySide2.QtWidgets.QStyleOptionViewItem.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionViewItem.StyleOptionVersion:
-# class PySide2.QtWidgets.QStyleOptionViewItem.ViewItemFeature:
-# class PySide2.QtWidgets.QStyleOptionViewItem.ViewItemFeatures:
-# class PySide2.QtWidgets.QStyleOptionViewItem.ViewItemPosition:
- "PySide2.QtWidgets.QStyleOptionViewItem.__init__": [(), ('PySide2.QtWidgets.QStyleOptionViewItem',), ('int',)],
- "PySide2.QtWidgets.QStyleOptionViewItem.__copy__": (),
-# class PySide2.QtWidgets.QStylePainter:
- "PySide2.QtWidgets.QStylePainter.__init__": [(), ('PySide2.QtGui.QPaintDevice', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QStylePainter.begin": [('PySide2.QtGui.QPaintDevice',), ('PySide2.QtGui.QPaintDevice', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QStylePainter.drawComplexControl": ('PySide2.QtWidgets.QStyle.ComplexControl', 'PySide2.QtWidgets.QStyleOptionComplex'),
- "PySide2.QtWidgets.QStylePainter.drawControl": ('PySide2.QtWidgets.QStyle.ControlElement', 'PySide2.QtWidgets.QStyleOption'),
- "PySide2.QtWidgets.QStylePainter.drawItemPixmap": ('PySide2.QtCore.QRect', 'int', 'PySide2.QtGui.QPixmap'),
- "PySide2.QtWidgets.QStylePainter.drawItemText": ('PySide2.QtCore.QRect', 'int', 'PySide2.QtGui.QPalette', 'bool', 'str', 'PySide2.QtGui.QPalette.ColorRole'),
- "PySide2.QtWidgets.QStylePainter.drawPrimitive": ('PySide2.QtWidgets.QStyle.PrimitiveElement', 'PySide2.QtWidgets.QStyleOption'),
- "PySide2.QtWidgets.QStylePainter.style": (),
-# class PySide2.QtWidgets.QStyledItemDelegate:
- "PySide2.QtWidgets.QStyledItemDelegate.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QStyledItemDelegate.createEditor": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QStyledItemDelegate.displayText": ('typing.Any', 'PySide2.QtCore.QLocale'),
- "PySide2.QtWidgets.QStyledItemDelegate.editorEvent": ('PySide2.QtCore.QEvent', 'PySide2.QtCore.QAbstractItemModel', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QStyledItemDelegate.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QStyledItemDelegate.initStyleOption": ('PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QStyledItemDelegate.itemEditorFactory": (),
- "PySide2.QtWidgets.QStyledItemDelegate.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QStyledItemDelegate.setEditorData": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QStyledItemDelegate.setItemEditorFactory": ('PySide2.QtWidgets.QItemEditorFactory',),
- "PySide2.QtWidgets.QStyledItemDelegate.setModelData": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QAbstractItemModel', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QStyledItemDelegate.sizeHint": ('PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QStyledItemDelegate.updateEditorGeometry": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
-# class PySide2.QtWidgets.QSwipeGesture:
-# class PySide2.QtWidgets.QSwipeGesture.SwipeDirection:
- "PySide2.QtWidgets.QSwipeGesture.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QSwipeGesture.horizontalDirection": (),
- "PySide2.QtWidgets.QSwipeGesture.setSwipeAngle": ('float',),
- "PySide2.QtWidgets.QSwipeGesture.swipeAngle": (),
- "PySide2.QtWidgets.QSwipeGesture.verticalDirection": (),
-# class PySide2.QtWidgets.QSystemTrayIcon:
-# class PySide2.QtWidgets.QSystemTrayIcon.ActivationReason:
-# class PySide2.QtWidgets.QSystemTrayIcon.MessageIcon:
- "PySide2.QtWidgets.QSystemTrayIcon.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtGui.QIcon', 'PySide2.QtCore.QObject')],
- "PySide2.QtWidgets.QSystemTrayIcon.contextMenu": (),
- "PySide2.QtWidgets.QSystemTrayIcon.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QSystemTrayIcon.geometry": (),
- "PySide2.QtWidgets.QSystemTrayIcon.hide": (),
- "PySide2.QtWidgets.QSystemTrayIcon.icon": (),
- "PySide2.QtWidgets.QSystemTrayIcon.isSystemTrayAvailable": (),
- "PySide2.QtWidgets.QSystemTrayIcon.isVisible": (),
- "PySide2.QtWidgets.QSystemTrayIcon.setContextMenu": ('PySide2.QtWidgets.QMenu',),
- "PySide2.QtWidgets.QSystemTrayIcon.setIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtWidgets.QSystemTrayIcon.setToolTip": ('str',),
- "PySide2.QtWidgets.QSystemTrayIcon.setVisible": ('bool',),
- "PySide2.QtWidgets.QSystemTrayIcon.show": (),
- "PySide2.QtWidgets.QSystemTrayIcon.showMessage": [('str', 'str', 'PySide2.QtGui.QIcon', 'int'), ('str', 'str', 'PySide2.QtWidgets.QSystemTrayIcon.MessageIcon', 'int')],
- "PySide2.QtWidgets.QSystemTrayIcon.supportsMessages": (),
- "PySide2.QtWidgets.QSystemTrayIcon.toolTip": (),
-# class PySide2.QtWidgets.QTabBar:
-# class PySide2.QtWidgets.QTabBar.ButtonPosition:
-# class PySide2.QtWidgets.QTabBar.SelectionBehavior:
-# class PySide2.QtWidgets.QTabBar.Shape:
- "PySide2.QtWidgets.QTabBar.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QTabBar.accessibleTabName": ('int',),
- "PySide2.QtWidgets.QTabBar.addTab": [('PySide2.QtGui.QIcon', 'str'), ('str',)],
- "PySide2.QtWidgets.QTabBar.autoHide": (),
- "PySide2.QtWidgets.QTabBar.changeCurrentOnDrag": (),
- "PySide2.QtWidgets.QTabBar.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QTabBar.count": (),
- "PySide2.QtWidgets.QTabBar.currentIndex": (),
- "PySide2.QtWidgets.QTabBar.documentMode": (),
- "PySide2.QtWidgets.QTabBar.drawBase": (),
- "PySide2.QtWidgets.QTabBar.elideMode": (),
- "PySide2.QtWidgets.QTabBar.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QTabBar.expanding": (),
- "PySide2.QtWidgets.QTabBar.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWidgets.QTabBar.iconSize": (),
- "PySide2.QtWidgets.QTabBar.initStyleOption": ('PySide2.QtWidgets.QStyleOptionTab', 'int'),
- "PySide2.QtWidgets.QTabBar.insertTab": [('int', 'PySide2.QtGui.QIcon', 'str'), ('int', 'str')],
- "PySide2.QtWidgets.QTabBar.isMovable": (),
- "PySide2.QtWidgets.QTabBar.isTabEnabled": ('int',),
- "PySide2.QtWidgets.QTabBar.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QTabBar.minimumSizeHint": (),
- "PySide2.QtWidgets.QTabBar.minimumTabSizeHint": ('int',),
- "PySide2.QtWidgets.QTabBar.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTabBar.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTabBar.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTabBar.moveTab": ('int', 'int'),
- "PySide2.QtWidgets.QTabBar.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QTabBar.removeTab": ('int',),
- "PySide2.QtWidgets.QTabBar.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QTabBar.selectionBehaviorOnRemove": (),
- "PySide2.QtWidgets.QTabBar.setAccessibleTabName": ('int', 'str'),
- "PySide2.QtWidgets.QTabBar.setAutoHide": ('bool',),
- "PySide2.QtWidgets.QTabBar.setChangeCurrentOnDrag": ('bool',),
- "PySide2.QtWidgets.QTabBar.setCurrentIndex": ('int',),
- "PySide2.QtWidgets.QTabBar.setDocumentMode": ('bool',),
- "PySide2.QtWidgets.QTabBar.setDrawBase": ('bool',),
- "PySide2.QtWidgets.QTabBar.setElideMode": ('PySide2.QtCore.Qt.TextElideMode',),
- "PySide2.QtWidgets.QTabBar.setExpanding": ('bool',),
- "PySide2.QtWidgets.QTabBar.setIconSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QTabBar.setMovable": ('bool',),
- "PySide2.QtWidgets.QTabBar.setSelectionBehaviorOnRemove": ('PySide2.QtWidgets.QTabBar.SelectionBehavior',),
- "PySide2.QtWidgets.QTabBar.setShape": ('PySide2.QtWidgets.QTabBar.Shape',),
- "PySide2.QtWidgets.QTabBar.setTabButton": ('int', 'PySide2.QtWidgets.QTabBar.ButtonPosition', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QTabBar.setTabData": ('int', 'typing.Any'),
- "PySide2.QtWidgets.QTabBar.setTabEnabled": ('int', 'bool'),
- "PySide2.QtWidgets.QTabBar.setTabIcon": ('int', 'PySide2.QtGui.QIcon'),
- "PySide2.QtWidgets.QTabBar.setTabText": ('int', 'str'),
- "PySide2.QtWidgets.QTabBar.setTabTextColor": ('int', 'PySide2.QtGui.QColor'),
- "PySide2.QtWidgets.QTabBar.setTabToolTip": ('int', 'str'),
- "PySide2.QtWidgets.QTabBar.setTabWhatsThis": ('int', 'str'),
- "PySide2.QtWidgets.QTabBar.setTabsClosable": ('bool',),
- "PySide2.QtWidgets.QTabBar.setUsesScrollButtons": ('bool',),
- "PySide2.QtWidgets.QTabBar.shape": (),
- "PySide2.QtWidgets.QTabBar.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QTabBar.sizeHint": (),
- "PySide2.QtWidgets.QTabBar.tabAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QTabBar.tabButton": ('int', 'PySide2.QtWidgets.QTabBar.ButtonPosition'),
- "PySide2.QtWidgets.QTabBar.tabData": ('int',),
- "PySide2.QtWidgets.QTabBar.tabIcon": ('int',),
- "PySide2.QtWidgets.QTabBar.tabInserted": ('int',),
- "PySide2.QtWidgets.QTabBar.tabLayoutChange": (),
- "PySide2.QtWidgets.QTabBar.tabRect": ('int',),
- "PySide2.QtWidgets.QTabBar.tabRemoved": ('int',),
- "PySide2.QtWidgets.QTabBar.tabSizeHint": ('int',),
- "PySide2.QtWidgets.QTabBar.tabText": ('int',),
- "PySide2.QtWidgets.QTabBar.tabTextColor": ('int',),
- "PySide2.QtWidgets.QTabBar.tabToolTip": ('int',),
- "PySide2.QtWidgets.QTabBar.tabWhatsThis": ('int',),
- "PySide2.QtWidgets.QTabBar.tabsClosable": (),
- "PySide2.QtWidgets.QTabBar.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QTabBar.usesScrollButtons": (),
- "PySide2.QtWidgets.QTabBar.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtWidgets.QTabWidget:
-# class PySide2.QtWidgets.QTabWidget.TabPosition:
-# class PySide2.QtWidgets.QTabWidget.TabShape:
- "PySide2.QtWidgets.QTabWidget.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QTabWidget.addTab": [('PySide2.QtWidgets.QWidget', 'PySide2.QtGui.QIcon', 'str'), ('PySide2.QtWidgets.QWidget', 'str')],
- "PySide2.QtWidgets.QTabWidget.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QTabWidget.clear": (),
- "PySide2.QtWidgets.QTabWidget.cornerWidget": ('PySide2.QtCore.Qt.Corner',),
- "PySide2.QtWidgets.QTabWidget.count": (),
- "PySide2.QtWidgets.QTabWidget.currentIndex": (),
- "PySide2.QtWidgets.QTabWidget.currentWidget": (),
- "PySide2.QtWidgets.QTabWidget.documentMode": (),
- "PySide2.QtWidgets.QTabWidget.elideMode": (),
- "PySide2.QtWidgets.QTabWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QTabWidget.hasHeightForWidth": (),
- "PySide2.QtWidgets.QTabWidget.heightForWidth": ('int',),
- "PySide2.QtWidgets.QTabWidget.iconSize": (),
- "PySide2.QtWidgets.QTabWidget.indexOf": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QTabWidget.initStyleOption": ('PySide2.QtWidgets.QStyleOptionTabWidgetFrame',),
- "PySide2.QtWidgets.QTabWidget.insertTab": [('int', 'PySide2.QtWidgets.QWidget', 'PySide2.QtGui.QIcon', 'str'), ('int', 'PySide2.QtWidgets.QWidget', 'str')],
- "PySide2.QtWidgets.QTabWidget.isMovable": (),
- "PySide2.QtWidgets.QTabWidget.isTabEnabled": ('int',),
- "PySide2.QtWidgets.QTabWidget.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QTabWidget.minimumSizeHint": (),
- "PySide2.QtWidgets.QTabWidget.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QTabWidget.removeTab": ('int',),
- "PySide2.QtWidgets.QTabWidget.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QTabWidget.setCornerWidget": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.Corner'),
- "PySide2.QtWidgets.QTabWidget.setCurrentIndex": ('int',),
- "PySide2.QtWidgets.QTabWidget.setCurrentWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QTabWidget.setDocumentMode": ('bool',),
- "PySide2.QtWidgets.QTabWidget.setElideMode": ('PySide2.QtCore.Qt.TextElideMode',),
- "PySide2.QtWidgets.QTabWidget.setIconSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QTabWidget.setMovable": ('bool',),
- "PySide2.QtWidgets.QTabWidget.setTabBar": ('PySide2.QtWidgets.QTabBar',),
- "PySide2.QtWidgets.QTabWidget.setTabBarAutoHide": ('bool',),
- "PySide2.QtWidgets.QTabWidget.setTabEnabled": ('int', 'bool'),
- "PySide2.QtWidgets.QTabWidget.setTabIcon": ('int', 'PySide2.QtGui.QIcon'),
- "PySide2.QtWidgets.QTabWidget.setTabPosition": ('PySide2.QtWidgets.QTabWidget.TabPosition',),
- "PySide2.QtWidgets.QTabWidget.setTabShape": ('PySide2.QtWidgets.QTabWidget.TabShape',),
- "PySide2.QtWidgets.QTabWidget.setTabText": ('int', 'str'),
- "PySide2.QtWidgets.QTabWidget.setTabToolTip": ('int', 'str'),
- "PySide2.QtWidgets.QTabWidget.setTabWhatsThis": ('int', 'str'),
- "PySide2.QtWidgets.QTabWidget.setTabsClosable": ('bool',),
- "PySide2.QtWidgets.QTabWidget.setUsesScrollButtons": ('bool',),
- "PySide2.QtWidgets.QTabWidget.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QTabWidget.sizeHint": (),
- "PySide2.QtWidgets.QTabWidget.tabBar": (),
- "PySide2.QtWidgets.QTabWidget.tabBarAutoHide": (),
- "PySide2.QtWidgets.QTabWidget.tabIcon": ('int',),
- "PySide2.QtWidgets.QTabWidget.tabInserted": ('int',),
- "PySide2.QtWidgets.QTabWidget.tabPosition": (),
- "PySide2.QtWidgets.QTabWidget.tabRemoved": ('int',),
- "PySide2.QtWidgets.QTabWidget.tabShape": (),
- "PySide2.QtWidgets.QTabWidget.tabText": ('int',),
- "PySide2.QtWidgets.QTabWidget.tabToolTip": ('int',),
- "PySide2.QtWidgets.QTabWidget.tabWhatsThis": ('int',),
- "PySide2.QtWidgets.QTabWidget.tabsClosable": (),
- "PySide2.QtWidgets.QTabWidget.usesScrollButtons": (),
- "PySide2.QtWidgets.QTabWidget.widget": ('int',),
-# class PySide2.QtWidgets.QTableView:
- "PySide2.QtWidgets.QTableView.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QTableView.clearSpans": (),
- "PySide2.QtWidgets.QTableView.columnAt": ('int',),
- "PySide2.QtWidgets.QTableView.columnCountChanged": ('int', 'int'),
- "PySide2.QtWidgets.QTableView.columnMoved": ('int', 'int', 'int'),
- "PySide2.QtWidgets.QTableView.columnResized": ('int', 'int', 'int'),
- "PySide2.QtWidgets.QTableView.columnSpan": ('int', 'int'),
- "PySide2.QtWidgets.QTableView.columnViewportPosition": ('int',),
- "PySide2.QtWidgets.QTableView.columnWidth": ('int',),
- "PySide2.QtWidgets.QTableView.currentChanged": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QTableView.doItemsLayout": (),
- "PySide2.QtWidgets.QTableView.gridStyle": (),
- "PySide2.QtWidgets.QTableView.hideColumn": ('int',),
- "PySide2.QtWidgets.QTableView.hideRow": ('int',),
- "PySide2.QtWidgets.QTableView.horizontalHeader": (),
- "PySide2.QtWidgets.QTableView.horizontalOffset": (),
- "PySide2.QtWidgets.QTableView.horizontalScrollbarAction": ('int',),
- "PySide2.QtWidgets.QTableView.indexAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QTableView.isColumnHidden": ('int',),
- "PySide2.QtWidgets.QTableView.isCornerButtonEnabled": (),
- "PySide2.QtWidgets.QTableView.isIndexHidden": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTableView.isRowHidden": ('int',),
- "PySide2.QtWidgets.QTableView.isSortingEnabled": (),
- "PySide2.QtWidgets.QTableView.moveCursor": ('PySide2.QtWidgets.QAbstractItemView.CursorAction', 'PySide2.QtCore.Qt.KeyboardModifiers'),
- "PySide2.QtWidgets.QTableView.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QTableView.resizeColumnToContents": ('int',),
- "PySide2.QtWidgets.QTableView.resizeColumnsToContents": (),
- "PySide2.QtWidgets.QTableView.resizeRowToContents": ('int',),
- "PySide2.QtWidgets.QTableView.resizeRowsToContents": (),
- "PySide2.QtWidgets.QTableView.rowAt": ('int',),
- "PySide2.QtWidgets.QTableView.rowCountChanged": ('int', 'int'),
- "PySide2.QtWidgets.QTableView.rowHeight": ('int',),
- "PySide2.QtWidgets.QTableView.rowMoved": ('int', 'int', 'int'),
- "PySide2.QtWidgets.QTableView.rowResized": ('int', 'int', 'int'),
- "PySide2.QtWidgets.QTableView.rowSpan": ('int', 'int'),
- "PySide2.QtWidgets.QTableView.rowViewportPosition": ('int',),
- "PySide2.QtWidgets.QTableView.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QTableView.scrollTo": ('PySide2.QtCore.QModelIndex', 'PySide2.QtWidgets.QAbstractItemView.ScrollHint'),
- "PySide2.QtWidgets.QTableView.selectColumn": ('int',),
- "PySide2.QtWidgets.QTableView.selectRow": ('int',),
- "PySide2.QtWidgets.QTableView.selectedIndexes": (),
- "PySide2.QtWidgets.QTableView.selectionChanged": ('PySide2.QtCore.QItemSelection', 'PySide2.QtCore.QItemSelection'),
- "PySide2.QtWidgets.QTableView.setColumnHidden": ('int', 'bool'),
- "PySide2.QtWidgets.QTableView.setColumnWidth": ('int', 'int'),
- "PySide2.QtWidgets.QTableView.setCornerButtonEnabled": ('bool',),
- "PySide2.QtWidgets.QTableView.setGridStyle": ('PySide2.QtCore.Qt.PenStyle',),
- "PySide2.QtWidgets.QTableView.setHorizontalHeader": ('PySide2.QtWidgets.QHeaderView',),
- "PySide2.QtWidgets.QTableView.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QTableView.setRootIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTableView.setRowHeight": ('int', 'int'),
- "PySide2.QtWidgets.QTableView.setRowHidden": ('int', 'bool'),
- "PySide2.QtWidgets.QTableView.setSelection": ('PySide2.QtCore.QRect', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags'),
- "PySide2.QtWidgets.QTableView.setSelectionModel": ('PySide2.QtCore.QItemSelectionModel',),
- "PySide2.QtWidgets.QTableView.setShowGrid": ('bool',),
- "PySide2.QtWidgets.QTableView.setSortingEnabled": ('bool',),
- "PySide2.QtWidgets.QTableView.setSpan": ('int', 'int', 'int', 'int'),
- "PySide2.QtWidgets.QTableView.setVerticalHeader": ('PySide2.QtWidgets.QHeaderView',),
- "PySide2.QtWidgets.QTableView.setWordWrap": ('bool',),
- "PySide2.QtWidgets.QTableView.showColumn": ('int',),
- "PySide2.QtWidgets.QTableView.showGrid": (),
- "PySide2.QtWidgets.QTableView.showRow": ('int',),
- "PySide2.QtWidgets.QTableView.sizeHintForColumn": ('int',),
- "PySide2.QtWidgets.QTableView.sizeHintForRow": ('int',),
- "PySide2.QtWidgets.QTableView.sortByColumn": [('int',), ('int', 'PySide2.QtCore.Qt.SortOrder')],
- "PySide2.QtWidgets.QTableView.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QTableView.updateGeometries": (),
- "PySide2.QtWidgets.QTableView.verticalHeader": (),
- "PySide2.QtWidgets.QTableView.verticalOffset": (),
- "PySide2.QtWidgets.QTableView.verticalScrollbarAction": ('int',),
- "PySide2.QtWidgets.QTableView.viewOptions": (),
- "PySide2.QtWidgets.QTableView.viewportSizeHint": (),
- "PySide2.QtWidgets.QTableView.visualRect": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTableView.visualRegionForSelection": ('PySide2.QtCore.QItemSelection',),
- "PySide2.QtWidgets.QTableView.wordWrap": (),
-# class PySide2.QtWidgets.QTableWidget:
- "PySide2.QtWidgets.QTableWidget.__init__": [('PySide2.QtWidgets.QWidget',), ('int', 'int', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QTableWidget.cellWidget": ('int', 'int'),
- "PySide2.QtWidgets.QTableWidget.clear": (),
- "PySide2.QtWidgets.QTableWidget.clearContents": (),
- "PySide2.QtWidgets.QTableWidget.closePersistentEditor": [('PySide2.QtCore.QModelIndex',), ('PySide2.QtWidgets.QTableWidgetItem',)],
- "PySide2.QtWidgets.QTableWidget.column": ('PySide2.QtWidgets.QTableWidgetItem',),
- "PySide2.QtWidgets.QTableWidget.columnCount": (),
- "PySide2.QtWidgets.QTableWidget.currentColumn": (),
- "PySide2.QtWidgets.QTableWidget.currentItem": (),
- "PySide2.QtWidgets.QTableWidget.currentRow": (),
- "PySide2.QtWidgets.QTableWidget.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QTableWidget.dropMimeData": ('int', 'int', 'PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction'),
- "PySide2.QtWidgets.QTableWidget.editItem": ('PySide2.QtWidgets.QTableWidgetItem',),
- "PySide2.QtWidgets.QTableWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QTableWidget.findItems": ('str', 'PySide2.QtCore.Qt.MatchFlags'),
- "PySide2.QtWidgets.QTableWidget.horizontalHeaderItem": ('int',),
- "PySide2.QtWidgets.QTableWidget.indexFromItem": ('PySide2.QtWidgets.QTableWidgetItem',),
- "PySide2.QtWidgets.QTableWidget.insertColumn": ('int',),
- "PySide2.QtWidgets.QTableWidget.insertRow": ('int',),
- "PySide2.QtWidgets.QTableWidget.isItemSelected": ('PySide2.QtWidgets.QTableWidgetItem',),
- "PySide2.QtWidgets.QTableWidget.isPersistentEditorOpen": [('PySide2.QtCore.QModelIndex',), ('PySide2.QtWidgets.QTableWidgetItem',)],
- "PySide2.QtWidgets.QTableWidget.isSortingEnabled": (),
- "PySide2.QtWidgets.QTableWidget.item": ('int', 'int'),
- "PySide2.QtWidgets.QTableWidget.itemAt": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtWidgets.QTableWidget.itemFromIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTableWidget.itemPrototype": (),
- "PySide2.QtWidgets.QTableWidget.items": ('PySide2.QtCore.QMimeData',),
- "PySide2.QtWidgets.QTableWidget.mimeData": ('typing.Sequence[PySide2.QtWidgets.QTableWidgetItem]',),
- "PySide2.QtWidgets.QTableWidget.mimeTypes": (),
- "PySide2.QtWidgets.QTableWidget.openPersistentEditor": [('PySide2.QtCore.QModelIndex',), ('PySide2.QtWidgets.QTableWidgetItem',)],
- "PySide2.QtWidgets.QTableWidget.removeCellWidget": ('int', 'int'),
- "PySide2.QtWidgets.QTableWidget.removeColumn": ('int',),
- "PySide2.QtWidgets.QTableWidget.removeRow": ('int',),
- "PySide2.QtWidgets.QTableWidget.row": ('PySide2.QtWidgets.QTableWidgetItem',),
- "PySide2.QtWidgets.QTableWidget.rowCount": (),
- "PySide2.QtWidgets.QTableWidget.scrollToItem": ('PySide2.QtWidgets.QTableWidgetItem', 'PySide2.QtWidgets.QAbstractItemView.ScrollHint'),
- "PySide2.QtWidgets.QTableWidget.selectedItems": (),
- "PySide2.QtWidgets.QTableWidget.selectedRanges": (),
- "PySide2.QtWidgets.QTableWidget.setCellWidget": ('int', 'int', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QTableWidget.setColumnCount": ('int',),
- "PySide2.QtWidgets.QTableWidget.setCurrentCell": [('int', 'int'), ('int', 'int', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags')],
- "PySide2.QtWidgets.QTableWidget.setCurrentItem": [('PySide2.QtWidgets.QTableWidgetItem',), ('PySide2.QtWidgets.QTableWidgetItem', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags')],
- "PySide2.QtWidgets.QTableWidget.setHorizontalHeaderItem": ('int', 'PySide2.QtWidgets.QTableWidgetItem'),
- "PySide2.QtWidgets.QTableWidget.setHorizontalHeaderLabels": ('typing.Sequence[str]',),
- "PySide2.QtWidgets.QTableWidget.setItem": ('int', 'int', 'PySide2.QtWidgets.QTableWidgetItem'),
- "PySide2.QtWidgets.QTableWidget.setItemPrototype": ('PySide2.QtWidgets.QTableWidgetItem',),
- "PySide2.QtWidgets.QTableWidget.setItemSelected": ('PySide2.QtWidgets.QTableWidgetItem', 'bool'),
- "PySide2.QtWidgets.QTableWidget.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QTableWidget.setRangeSelected": ('PySide2.QtWidgets.QTableWidgetSelectionRange', 'bool'),
- "PySide2.QtWidgets.QTableWidget.setRowCount": ('int',),
- "PySide2.QtWidgets.QTableWidget.setSortingEnabled": ('bool',),
- "PySide2.QtWidgets.QTableWidget.setVerticalHeaderItem": ('int', 'PySide2.QtWidgets.QTableWidgetItem'),
- "PySide2.QtWidgets.QTableWidget.setVerticalHeaderLabels": ('typing.Sequence[str]',),
- "PySide2.QtWidgets.QTableWidget.sortItems": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtWidgets.QTableWidget.supportedDropActions": (),
- "PySide2.QtWidgets.QTableWidget.takeHorizontalHeaderItem": ('int',),
- "PySide2.QtWidgets.QTableWidget.takeItem": ('int', 'int'),
- "PySide2.QtWidgets.QTableWidget.takeVerticalHeaderItem": ('int',),
- "PySide2.QtWidgets.QTableWidget.verticalHeaderItem": ('int',),
- "PySide2.QtWidgets.QTableWidget.visualColumn": ('int',),
- "PySide2.QtWidgets.QTableWidget.visualItemRect": ('PySide2.QtWidgets.QTableWidgetItem',),
- "PySide2.QtWidgets.QTableWidget.visualRow": ('int',),
-# class PySide2.QtWidgets.QTableWidgetItem:
-# class PySide2.QtWidgets.QTableWidgetItem.ItemType:
- "PySide2.QtWidgets.QTableWidgetItem.__init__": [('PySide2.QtGui.QIcon', 'str', 'int'), ('PySide2.QtWidgets.QTableWidgetItem',), ('int',), ('str', 'int')],
- "PySide2.QtWidgets.QTableWidgetItem.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QTableWidgetItem.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QTableWidgetItem.background": (),
- "PySide2.QtWidgets.QTableWidgetItem.backgroundColor": (),
- "PySide2.QtWidgets.QTableWidgetItem.checkState": (),
- "PySide2.QtWidgets.QTableWidgetItem.clone": (),
- "PySide2.QtWidgets.QTableWidgetItem.column": (),
- "PySide2.QtWidgets.QTableWidgetItem.data": ('int',),
- "PySide2.QtWidgets.QTableWidgetItem.flags": (),
- "PySide2.QtWidgets.QTableWidgetItem.font": (),
- "PySide2.QtWidgets.QTableWidgetItem.foreground": (),
- "PySide2.QtWidgets.QTableWidgetItem.icon": (),
- "PySide2.QtWidgets.QTableWidgetItem.isSelected": (),
- "PySide2.QtWidgets.QTableWidgetItem.read": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QTableWidgetItem.row": (),
- "PySide2.QtWidgets.QTableWidgetItem.setBackground": ('PySide2.QtGui.QBrush',),
- "PySide2.QtWidgets.QTableWidgetItem.setBackgroundColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QTableWidgetItem.setCheckState": ('PySide2.QtCore.Qt.CheckState',),
- "PySide2.QtWidgets.QTableWidgetItem.setData": ('int', 'typing.Any'),
- "PySide2.QtWidgets.QTableWidgetItem.setFlags": ('PySide2.QtCore.Qt.ItemFlags',),
- "PySide2.QtWidgets.QTableWidgetItem.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QTableWidgetItem.setForeground": ('PySide2.QtGui.QBrush',),
- "PySide2.QtWidgets.QTableWidgetItem.setIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtWidgets.QTableWidgetItem.setSelected": ('bool',),
- "PySide2.QtWidgets.QTableWidgetItem.setSizeHint": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QTableWidgetItem.setStatusTip": ('str',),
- "PySide2.QtWidgets.QTableWidgetItem.setText": ('str',),
- "PySide2.QtWidgets.QTableWidgetItem.setTextAlignment": ('int',),
- "PySide2.QtWidgets.QTableWidgetItem.setTextColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QTableWidgetItem.setToolTip": ('str',),
- "PySide2.QtWidgets.QTableWidgetItem.setWhatsThis": ('str',),
- "PySide2.QtWidgets.QTableWidgetItem.sizeHint": (),
- "PySide2.QtWidgets.QTableWidgetItem.statusTip": (),
- "PySide2.QtWidgets.QTableWidgetItem.tableWidget": (),
- "PySide2.QtWidgets.QTableWidgetItem.text": (),
- "PySide2.QtWidgets.QTableWidgetItem.textAlignment": (),
- "PySide2.QtWidgets.QTableWidgetItem.textColor": (),
- "PySide2.QtWidgets.QTableWidgetItem.toolTip": (),
- "PySide2.QtWidgets.QTableWidgetItem.type": (),
- "PySide2.QtWidgets.QTableWidgetItem.whatsThis": (),
- "PySide2.QtWidgets.QTableWidgetItem.write": ('PySide2.QtCore.QDataStream',),
-# class PySide2.QtWidgets.QTableWidgetSelectionRange:
- "PySide2.QtWidgets.QTableWidgetSelectionRange.__init__": [(), ('PySide2.QtWidgets.QTableWidgetSelectionRange',), ('int', 'int', 'int', 'int')],
- "PySide2.QtWidgets.QTableWidgetSelectionRange.__copy__": (),
- "PySide2.QtWidgets.QTableWidgetSelectionRange.bottomRow": (),
- "PySide2.QtWidgets.QTableWidgetSelectionRange.columnCount": (),
- "PySide2.QtWidgets.QTableWidgetSelectionRange.leftColumn": (),
- "PySide2.QtWidgets.QTableWidgetSelectionRange.rightColumn": (),
- "PySide2.QtWidgets.QTableWidgetSelectionRange.rowCount": (),
- "PySide2.QtWidgets.QTableWidgetSelectionRange.topRow": (),
-# class PySide2.QtWidgets.QTapAndHoldGesture:
- "PySide2.QtWidgets.QTapAndHoldGesture.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QTapAndHoldGesture.position": (),
- "PySide2.QtWidgets.QTapAndHoldGesture.setPosition": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QTapAndHoldGesture.setTimeout": ('int',),
- "PySide2.QtWidgets.QTapAndHoldGesture.timeout": (),
-# class PySide2.QtWidgets.QTapGesture:
- "PySide2.QtWidgets.QTapGesture.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QTapGesture.position": (),
- "PySide2.QtWidgets.QTapGesture.setPosition": ('PySide2.QtCore.QPointF',),
-# class PySide2.QtWidgets.QTextBrowser:
- "PySide2.QtWidgets.QTextBrowser.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QTextBrowser.backward": (),
- "PySide2.QtWidgets.QTextBrowser.backwardHistoryCount": (),
- "PySide2.QtWidgets.QTextBrowser.clearHistory": (),
- "PySide2.QtWidgets.QTextBrowser.doSetSource": ('PySide2.QtCore.QUrl', 'PySide2.QtGui.QTextDocument.ResourceType'),
- "PySide2.QtWidgets.QTextBrowser.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QTextBrowser.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QTextBrowser.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QTextBrowser.forward": (),
- "PySide2.QtWidgets.QTextBrowser.forwardHistoryCount": (),
- "PySide2.QtWidgets.QTextBrowser.historyTitle": ('int',),
- "PySide2.QtWidgets.QTextBrowser.historyUrl": ('int',),
- "PySide2.QtWidgets.QTextBrowser.home": (),
- "PySide2.QtWidgets.QTextBrowser.isBackwardAvailable": (),
- "PySide2.QtWidgets.QTextBrowser.isForwardAvailable": (),
- "PySide2.QtWidgets.QTextBrowser.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QTextBrowser.loadResource": ('int', 'PySide2.QtCore.QUrl'),
- "PySide2.QtWidgets.QTextBrowser.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTextBrowser.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTextBrowser.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTextBrowser.openExternalLinks": (),
- "PySide2.QtWidgets.QTextBrowser.openLinks": (),
- "PySide2.QtWidgets.QTextBrowser.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QTextBrowser.reload": (),
- "PySide2.QtWidgets.QTextBrowser.searchPaths": (),
- "PySide2.QtWidgets.QTextBrowser.setOpenExternalLinks": ('bool',),
- "PySide2.QtWidgets.QTextBrowser.setOpenLinks": ('bool',),
- "PySide2.QtWidgets.QTextBrowser.setSearchPaths": ('typing.Sequence[str]',),
- "PySide2.QtWidgets.QTextBrowser.setSource": [('PySide2.QtCore.QUrl',), ('PySide2.QtCore.QUrl', 'PySide2.QtGui.QTextDocument.ResourceType')],
- "PySide2.QtWidgets.QTextBrowser.source": (),
- "PySide2.QtWidgets.QTextBrowser.sourceType": (),
-# class PySide2.QtWidgets.QTextEdit:
-# class PySide2.QtWidgets.QTextEdit.AutoFormatting:
-# class PySide2.QtWidgets.QTextEdit.AutoFormattingFlag:
-# class PySide2.QtWidgets.QTextEdit.ExtraSelection:
- "PySide2.QtWidgets.QTextEdit.ExtraSelection.__init__": [(), ('PySide2.QtWidgets.QTextEdit.ExtraSelection',)],
- "PySide2.QtWidgets.QTextEdit.ExtraSelection.__copy__": (),
-# class PySide2.QtWidgets.QTextEdit.LineWrapMode:
- "PySide2.QtWidgets.QTextEdit.__init__": [('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QTextEdit.acceptRichText": (),
- "PySide2.QtWidgets.QTextEdit.alignment": (),
- "PySide2.QtWidgets.QTextEdit.anchorAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QTextEdit.append": ('str',),
- "PySide2.QtWidgets.QTextEdit.autoFormatting": (),
- "PySide2.QtWidgets.QTextEdit.canInsertFromMimeData": ('PySide2.QtCore.QMimeData',),
- "PySide2.QtWidgets.QTextEdit.canPaste": (),
- "PySide2.QtWidgets.QTextEdit.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QTextEdit.clear": (),
- "PySide2.QtWidgets.QTextEdit.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QTextEdit.copy": (),
- "PySide2.QtWidgets.QTextEdit.createMimeDataFromSelection": (),
- "PySide2.QtWidgets.QTextEdit.createStandardContextMenu": [(), ('PySide2.QtCore.QPoint',)],
- "PySide2.QtWidgets.QTextEdit.currentCharFormat": (),
- "PySide2.QtWidgets.QTextEdit.currentFont": (),
- "PySide2.QtWidgets.QTextEdit.cursorForPosition": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QTextEdit.cursorRect": [(), ('PySide2.QtGui.QTextCursor',)],
- "PySide2.QtWidgets.QTextEdit.cursorWidth": (),
- "PySide2.QtWidgets.QTextEdit.cut": (),
- "PySide2.QtWidgets.QTextEdit.doSetTextCursor": ('PySide2.QtGui.QTextCursor',),
- "PySide2.QtWidgets.QTextEdit.document": (),
- "PySide2.QtWidgets.QTextEdit.documentTitle": (),
- "PySide2.QtWidgets.QTextEdit.dragEnterEvent": ('PySide2.QtGui.QDragEnterEvent',),
- "PySide2.QtWidgets.QTextEdit.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtWidgets.QTextEdit.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtWidgets.QTextEdit.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QTextEdit.ensureCursorVisible": (),
- "PySide2.QtWidgets.QTextEdit.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QTextEdit.extraSelections": (),
- "PySide2.QtWidgets.QTextEdit.find": [('PySide2.QtCore.QRegExp', 'PySide2.QtGui.QTextDocument.FindFlags'), ('PySide2.QtCore.QRegularExpression', 'PySide2.QtGui.QTextDocument.FindFlags'), ('str', 'PySide2.QtGui.QTextDocument.FindFlags')],
- "PySide2.QtWidgets.QTextEdit.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QTextEdit.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QTextEdit.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QTextEdit.fontFamily": (),
- "PySide2.QtWidgets.QTextEdit.fontItalic": (),
- "PySide2.QtWidgets.QTextEdit.fontPointSize": (),
- "PySide2.QtWidgets.QTextEdit.fontUnderline": (),
- "PySide2.QtWidgets.QTextEdit.fontWeight": (),
- "PySide2.QtWidgets.QTextEdit.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QTextEdit.inputMethodQuery": [('PySide2.QtCore.Qt.InputMethodQuery',), ('PySide2.QtCore.Qt.InputMethodQuery', 'typing.Any')],
- "PySide2.QtWidgets.QTextEdit.insertFromMimeData": ('PySide2.QtCore.QMimeData',),
- "PySide2.QtWidgets.QTextEdit.insertHtml": ('str',),
- "PySide2.QtWidgets.QTextEdit.insertPlainText": ('str',),
- "PySide2.QtWidgets.QTextEdit.isReadOnly": (),
- "PySide2.QtWidgets.QTextEdit.isUndoRedoEnabled": (),
- "PySide2.QtWidgets.QTextEdit.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QTextEdit.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QTextEdit.lineWrapColumnOrWidth": (),
- "PySide2.QtWidgets.QTextEdit.lineWrapMode": (),
- "PySide2.QtWidgets.QTextEdit.loadResource": ('int', 'PySide2.QtCore.QUrl'),
- "PySide2.QtWidgets.QTextEdit.mergeCurrentCharFormat": ('PySide2.QtGui.QTextCharFormat',),
- "PySide2.QtWidgets.QTextEdit.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTextEdit.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTextEdit.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTextEdit.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTextEdit.moveCursor": ('PySide2.QtGui.QTextCursor.MoveOperation', 'PySide2.QtGui.QTextCursor.MoveMode'),
- "PySide2.QtWidgets.QTextEdit.overwriteMode": (),
- "PySide2.QtWidgets.QTextEdit.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QTextEdit.paste": (),
- "PySide2.QtWidgets.QTextEdit.placeholderText": (),
- "PySide2.QtWidgets.QTextEdit.print_": ('PySide2.QtGui.QPagedPaintDevice',),
- "PySide2.QtWidgets.QTextEdit.redo": (),
- "PySide2.QtWidgets.QTextEdit.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QTextEdit.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QTextEdit.scrollToAnchor": ('str',),
- "PySide2.QtWidgets.QTextEdit.selectAll": (),
- "PySide2.QtWidgets.QTextEdit.setAcceptRichText": ('bool',),
- "PySide2.QtWidgets.QTextEdit.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QTextEdit.setAutoFormatting": ('PySide2.QtWidgets.QTextEdit.AutoFormatting',),
- "PySide2.QtWidgets.QTextEdit.setCurrentCharFormat": ('PySide2.QtGui.QTextCharFormat',),
- "PySide2.QtWidgets.QTextEdit.setCurrentFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QTextEdit.setCursorWidth": ('int',),
- "PySide2.QtWidgets.QTextEdit.setDocument": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtWidgets.QTextEdit.setDocumentTitle": ('str',),
- "PySide2.QtWidgets.QTextEdit.setExtraSelections": ('typing.Sequence[PySide2.QtWidgets.QTextEdit.ExtraSelection]',),
- "PySide2.QtWidgets.QTextEdit.setFontFamily": ('str',),
- "PySide2.QtWidgets.QTextEdit.setFontItalic": ('bool',),
- "PySide2.QtWidgets.QTextEdit.setFontPointSize": ('float',),
- "PySide2.QtWidgets.QTextEdit.setFontUnderline": ('bool',),
- "PySide2.QtWidgets.QTextEdit.setFontWeight": ('int',),
- "PySide2.QtWidgets.QTextEdit.setHtml": ('str',),
- "PySide2.QtWidgets.QTextEdit.setLineWrapColumnOrWidth": ('int',),
- "PySide2.QtWidgets.QTextEdit.setLineWrapMode": ('PySide2.QtWidgets.QTextEdit.LineWrapMode',),
- "PySide2.QtWidgets.QTextEdit.setMarkdown": ('str',),
- "PySide2.QtWidgets.QTextEdit.setOverwriteMode": ('bool',),
- "PySide2.QtWidgets.QTextEdit.setPlaceholderText": ('str',),
- "PySide2.QtWidgets.QTextEdit.setPlainText": ('str',),
- "PySide2.QtWidgets.QTextEdit.setReadOnly": ('bool',),
- "PySide2.QtWidgets.QTextEdit.setTabChangesFocus": ('bool',),
- "PySide2.QtWidgets.QTextEdit.setTabStopDistance": ('float',),
- "PySide2.QtWidgets.QTextEdit.setTabStopWidth": ('int',),
- "PySide2.QtWidgets.QTextEdit.setText": ('str',),
- "PySide2.QtWidgets.QTextEdit.setTextBackgroundColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QTextEdit.setTextColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QTextEdit.setTextCursor": ('PySide2.QtGui.QTextCursor',),
- "PySide2.QtWidgets.QTextEdit.setTextInteractionFlags": ('PySide2.QtCore.Qt.TextInteractionFlags',),
- "PySide2.QtWidgets.QTextEdit.setUndoRedoEnabled": ('bool',),
- "PySide2.QtWidgets.QTextEdit.setWordWrapMode": ('PySide2.QtGui.QTextOption.WrapMode',),
- "PySide2.QtWidgets.QTextEdit.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QTextEdit.tabChangesFocus": (),
- "PySide2.QtWidgets.QTextEdit.tabStopDistance": (),
- "PySide2.QtWidgets.QTextEdit.tabStopWidth": (),
- "PySide2.QtWidgets.QTextEdit.textBackgroundColor": (),
- "PySide2.QtWidgets.QTextEdit.textColor": (),
- "PySide2.QtWidgets.QTextEdit.textCursor": (),
- "PySide2.QtWidgets.QTextEdit.textInteractionFlags": (),
- "PySide2.QtWidgets.QTextEdit.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QTextEdit.toHtml": (),
- "PySide2.QtWidgets.QTextEdit.toMarkdown": ('PySide2.QtGui.QTextDocument.MarkdownFeatures',),
- "PySide2.QtWidgets.QTextEdit.toPlainText": (),
- "PySide2.QtWidgets.QTextEdit.undo": (),
- "PySide2.QtWidgets.QTextEdit.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
- "PySide2.QtWidgets.QTextEdit.wordWrapMode": (),
- "PySide2.QtWidgets.QTextEdit.zoomIn": ('int',),
- "PySide2.QtWidgets.QTextEdit.zoomInF": ('float',),
- "PySide2.QtWidgets.QTextEdit.zoomOut": ('int',),
-# class PySide2.QtWidgets.QTileRules:
- "PySide2.QtWidgets.QTileRules.__init__": [('PySide2.QtCore.Qt.TileRule',), ('PySide2.QtCore.Qt.TileRule', 'PySide2.QtCore.Qt.TileRule'), ('PySide2.QtWidgets.QTileRules',)],
- "PySide2.QtWidgets.QTileRules.__copy__": (),
-# class PySide2.QtWidgets.QTimeEdit:
- "PySide2.QtWidgets.QTimeEdit.__init__": [('PySide2.QtCore.QTime', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
-# class PySide2.QtWidgets.QToolBar:
- "PySide2.QtWidgets.QToolBar.__init__": [('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QToolBar.actionAt": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtWidgets.QToolBar.actionEvent": ('PySide2.QtGui.QActionEvent',),
- "PySide2.QtWidgets.QToolBar.actionGeometry": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QToolBar.addAction": [('PySide2.QtGui.QIcon', 'str'), ('PySide2.QtGui.QIcon', 'str', 'PySide2.QtCore.QObject', 'str'), ('PySide2.QtWidgets.QAction',), ('str',), ('str', 'PySide2.QtCore.QObject', 'str')],
- "PySide2.QtWidgets.QToolBar.addSeparator": (),
- "PySide2.QtWidgets.QToolBar.addWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QToolBar.allowedAreas": (),
- "PySide2.QtWidgets.QToolBar.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QToolBar.clear": (),
- "PySide2.QtWidgets.QToolBar.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QToolBar.iconSize": (),
- "PySide2.QtWidgets.QToolBar.initStyleOption": ('PySide2.QtWidgets.QStyleOptionToolBar',),
- "PySide2.QtWidgets.QToolBar.insertSeparator": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QToolBar.insertWidget": ('PySide2.QtWidgets.QAction', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QToolBar.isAreaAllowed": ('PySide2.QtCore.Qt.ToolBarArea',),
- "PySide2.QtWidgets.QToolBar.isFloatable": (),
- "PySide2.QtWidgets.QToolBar.isFloating": (),
- "PySide2.QtWidgets.QToolBar.isMovable": (),
- "PySide2.QtWidgets.QToolBar.orientation": (),
- "PySide2.QtWidgets.QToolBar.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QToolBar.setAllowedAreas": ('PySide2.QtCore.Qt.ToolBarAreas',),
- "PySide2.QtWidgets.QToolBar.setFloatable": ('bool',),
- "PySide2.QtWidgets.QToolBar.setIconSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QToolBar.setMovable": ('bool',),
- "PySide2.QtWidgets.QToolBar.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtWidgets.QToolBar.setToolButtonStyle": ('PySide2.QtCore.Qt.ToolButtonStyle',),
- "PySide2.QtWidgets.QToolBar.toggleViewAction": (),
- "PySide2.QtWidgets.QToolBar.toolButtonStyle": (),
- "PySide2.QtWidgets.QToolBar.widgetForAction": ('PySide2.QtWidgets.QAction',),
-# class PySide2.QtWidgets.QToolBox:
- "PySide2.QtWidgets.QToolBox.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QToolBox.addItem": [('PySide2.QtWidgets.QWidget', 'PySide2.QtGui.QIcon', 'str'), ('PySide2.QtWidgets.QWidget', 'str')],
- "PySide2.QtWidgets.QToolBox.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QToolBox.count": (),
- "PySide2.QtWidgets.QToolBox.currentIndex": (),
- "PySide2.QtWidgets.QToolBox.currentWidget": (),
- "PySide2.QtWidgets.QToolBox.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QToolBox.indexOf": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QToolBox.insertItem": [('int', 'PySide2.QtWidgets.QWidget', 'PySide2.QtGui.QIcon', 'str'), ('int', 'PySide2.QtWidgets.QWidget', 'str')],
- "PySide2.QtWidgets.QToolBox.isItemEnabled": ('int',),
- "PySide2.QtWidgets.QToolBox.itemIcon": ('int',),
- "PySide2.QtWidgets.QToolBox.itemInserted": ('int',),
- "PySide2.QtWidgets.QToolBox.itemRemoved": ('int',),
- "PySide2.QtWidgets.QToolBox.itemText": ('int',),
- "PySide2.QtWidgets.QToolBox.itemToolTip": ('int',),
- "PySide2.QtWidgets.QToolBox.removeItem": ('int',),
- "PySide2.QtWidgets.QToolBox.setCurrentIndex": ('int',),
- "PySide2.QtWidgets.QToolBox.setCurrentWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QToolBox.setItemEnabled": ('int', 'bool'),
- "PySide2.QtWidgets.QToolBox.setItemIcon": ('int', 'PySide2.QtGui.QIcon'),
- "PySide2.QtWidgets.QToolBox.setItemText": ('int', 'str'),
- "PySide2.QtWidgets.QToolBox.setItemToolTip": ('int', 'str'),
- "PySide2.QtWidgets.QToolBox.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QToolBox.widget": ('int',),
-# class PySide2.QtWidgets.QToolButton:
-# class PySide2.QtWidgets.QToolButton.ToolButtonPopupMode:
- "PySide2.QtWidgets.QToolButton.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QToolButton.actionEvent": ('PySide2.QtGui.QActionEvent',),
- "PySide2.QtWidgets.QToolButton.arrowType": (),
- "PySide2.QtWidgets.QToolButton.autoRaise": (),
- "PySide2.QtWidgets.QToolButton.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QToolButton.defaultAction": (),
- "PySide2.QtWidgets.QToolButton.enterEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QToolButton.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QToolButton.hitButton": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QToolButton.initStyleOption": ('PySide2.QtWidgets.QStyleOptionToolButton',),
- "PySide2.QtWidgets.QToolButton.leaveEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QToolButton.menu": (),
- "PySide2.QtWidgets.QToolButton.minimumSizeHint": (),
- "PySide2.QtWidgets.QToolButton.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QToolButton.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QToolButton.nextCheckState": (),
- "PySide2.QtWidgets.QToolButton.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QToolButton.popupMode": (),
- "PySide2.QtWidgets.QToolButton.setArrowType": ('PySide2.QtCore.Qt.ArrowType',),
- "PySide2.QtWidgets.QToolButton.setAutoRaise": ('bool',),
- "PySide2.QtWidgets.QToolButton.setDefaultAction": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QToolButton.setMenu": ('PySide2.QtWidgets.QMenu',),
- "PySide2.QtWidgets.QToolButton.setPopupMode": ('PySide2.QtWidgets.QToolButton.ToolButtonPopupMode',),
- "PySide2.QtWidgets.QToolButton.setToolButtonStyle": ('PySide2.QtCore.Qt.ToolButtonStyle',),
- "PySide2.QtWidgets.QToolButton.showMenu": (),
- "PySide2.QtWidgets.QToolButton.sizeHint": (),
- "PySide2.QtWidgets.QToolButton.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QToolButton.toolButtonStyle": (),
-# class PySide2.QtWidgets.QToolTip:
- "PySide2.QtWidgets.QToolTip.font": (),
- "PySide2.QtWidgets.QToolTip.hideText": (),
- "PySide2.QtWidgets.QToolTip.isVisible": (),
- "PySide2.QtWidgets.QToolTip.palette": (),
- "PySide2.QtWidgets.QToolTip.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QToolTip.setPalette": ('PySide2.QtGui.QPalette',),
- "PySide2.QtWidgets.QToolTip.showText": [('PySide2.QtCore.QPoint', 'str', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtCore.QPoint', 'str', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QRect'), ('PySide2.QtCore.QPoint', 'str', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QRect', 'int')],
- "PySide2.QtWidgets.QToolTip.text": (),
-# class PySide2.QtWidgets.QTreeView:
- "PySide2.QtWidgets.QTreeView.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QTreeView.allColumnsShowFocus": (),
- "PySide2.QtWidgets.QTreeView.autoExpandDelay": (),
- "PySide2.QtWidgets.QTreeView.collapse": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeView.collapseAll": (),
- "PySide2.QtWidgets.QTreeView.columnAt": ('int',),
- "PySide2.QtWidgets.QTreeView.columnCountChanged": ('int', 'int'),
- "PySide2.QtWidgets.QTreeView.columnMoved": (),
- "PySide2.QtWidgets.QTreeView.columnResized": ('int', 'int', 'int'),
- "PySide2.QtWidgets.QTreeView.columnViewportPosition": ('int',),
- "PySide2.QtWidgets.QTreeView.columnWidth": ('int',),
- "PySide2.QtWidgets.QTreeView.currentChanged": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QTreeView.dataChanged": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex', 'typing.List[int]'),
- "PySide2.QtWidgets.QTreeView.doItemsLayout": (),
- "PySide2.QtWidgets.QTreeView.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtWidgets.QTreeView.drawBranches": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRect', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QTreeView.drawRow": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QTreeView.drawTree": ('PySide2.QtGui.QPainter', 'PySide2.QtGui.QRegion'),
- "PySide2.QtWidgets.QTreeView.expand": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeView.expandAll": (),
- "PySide2.QtWidgets.QTreeView.expandRecursively": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtWidgets.QTreeView.expandToDepth": ('int',),
- "PySide2.QtWidgets.QTreeView.expandsOnDoubleClick": (),
- "PySide2.QtWidgets.QTreeView.header": (),
- "PySide2.QtWidgets.QTreeView.hideColumn": ('int',),
- "PySide2.QtWidgets.QTreeView.horizontalOffset": (),
- "PySide2.QtWidgets.QTreeView.horizontalScrollbarAction": ('int',),
- "PySide2.QtWidgets.QTreeView.indentation": (),
- "PySide2.QtWidgets.QTreeView.indexAbove": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeView.indexAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QTreeView.indexBelow": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeView.indexRowSizeHint": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeView.isAnimated": (),
- "PySide2.QtWidgets.QTreeView.isColumnHidden": ('int',),
- "PySide2.QtWidgets.QTreeView.isExpanded": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeView.isFirstColumnSpanned": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QTreeView.isHeaderHidden": (),
- "PySide2.QtWidgets.QTreeView.isIndexHidden": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeView.isRowHidden": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QTreeView.isSortingEnabled": (),
- "PySide2.QtWidgets.QTreeView.itemsExpandable": (),
- "PySide2.QtWidgets.QTreeView.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QTreeView.keyboardSearch": ('str',),
- "PySide2.QtWidgets.QTreeView.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTreeView.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTreeView.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTreeView.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTreeView.moveCursor": ('PySide2.QtWidgets.QAbstractItemView.CursorAction', 'PySide2.QtCore.Qt.KeyboardModifiers'),
- "PySide2.QtWidgets.QTreeView.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QTreeView.reexpand": (),
- "PySide2.QtWidgets.QTreeView.reset": (),
- "PySide2.QtWidgets.QTreeView.resetIndentation": (),
- "PySide2.QtWidgets.QTreeView.resizeColumnToContents": ('int',),
- "PySide2.QtWidgets.QTreeView.rootIsDecorated": (),
- "PySide2.QtWidgets.QTreeView.rowHeight": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeView.rowsAboutToBeRemoved": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QTreeView.rowsInserted": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QTreeView.rowsRemoved": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QTreeView.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QTreeView.scrollTo": ('PySide2.QtCore.QModelIndex', 'PySide2.QtWidgets.QAbstractItemView.ScrollHint'),
- "PySide2.QtWidgets.QTreeView.selectAll": (),
- "PySide2.QtWidgets.QTreeView.selectedIndexes": (),
- "PySide2.QtWidgets.QTreeView.selectionChanged": ('PySide2.QtCore.QItemSelection', 'PySide2.QtCore.QItemSelection'),
- "PySide2.QtWidgets.QTreeView.setAllColumnsShowFocus": ('bool',),
- "PySide2.QtWidgets.QTreeView.setAnimated": ('bool',),
- "PySide2.QtWidgets.QTreeView.setAutoExpandDelay": ('int',),
- "PySide2.QtWidgets.QTreeView.setColumnHidden": ('int', 'bool'),
- "PySide2.QtWidgets.QTreeView.setColumnWidth": ('int', 'int'),
- "PySide2.QtWidgets.QTreeView.setExpanded": ('PySide2.QtCore.QModelIndex', 'bool'),
- "PySide2.QtWidgets.QTreeView.setExpandsOnDoubleClick": ('bool',),
- "PySide2.QtWidgets.QTreeView.setFirstColumnSpanned": ('int', 'PySide2.QtCore.QModelIndex', 'bool'),
- "PySide2.QtWidgets.QTreeView.setHeader": ('PySide2.QtWidgets.QHeaderView',),
- "PySide2.QtWidgets.QTreeView.setHeaderHidden": ('bool',),
- "PySide2.QtWidgets.QTreeView.setIndentation": ('int',),
- "PySide2.QtWidgets.QTreeView.setItemsExpandable": ('bool',),
- "PySide2.QtWidgets.QTreeView.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QTreeView.setRootIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeView.setRootIsDecorated": ('bool',),
- "PySide2.QtWidgets.QTreeView.setRowHidden": ('int', 'PySide2.QtCore.QModelIndex', 'bool'),
- "PySide2.QtWidgets.QTreeView.setSelection": ('PySide2.QtCore.QRect', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags'),
- "PySide2.QtWidgets.QTreeView.setSelectionModel": ('PySide2.QtCore.QItemSelectionModel',),
- "PySide2.QtWidgets.QTreeView.setSortingEnabled": ('bool',),
- "PySide2.QtWidgets.QTreeView.setTreePosition": ('int',),
- "PySide2.QtWidgets.QTreeView.setUniformRowHeights": ('bool',),
- "PySide2.QtWidgets.QTreeView.setWordWrap": ('bool',),
- "PySide2.QtWidgets.QTreeView.showColumn": ('int',),
- "PySide2.QtWidgets.QTreeView.sizeHintForColumn": ('int',),
- "PySide2.QtWidgets.QTreeView.sortByColumn": [('int',), ('int', 'PySide2.QtCore.Qt.SortOrder')],
- "PySide2.QtWidgets.QTreeView.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QTreeView.treePosition": (),
- "PySide2.QtWidgets.QTreeView.uniformRowHeights": (),
- "PySide2.QtWidgets.QTreeView.updateGeometries": (),
- "PySide2.QtWidgets.QTreeView.verticalOffset": (),
- "PySide2.QtWidgets.QTreeView.verticalScrollbarValueChanged": ('int',),
- "PySide2.QtWidgets.QTreeView.viewportEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QTreeView.viewportSizeHint": (),
- "PySide2.QtWidgets.QTreeView.visualRect": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeView.visualRegionForSelection": ('PySide2.QtCore.QItemSelection',),
- "PySide2.QtWidgets.QTreeView.wordWrap": (),
-# class PySide2.QtWidgets.QTreeWidget:
- "PySide2.QtWidgets.QTreeWidget.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QTreeWidget.addTopLevelItem": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.addTopLevelItems": ('typing.Sequence[PySide2.QtWidgets.QTreeWidgetItem]',),
- "PySide2.QtWidgets.QTreeWidget.clear": (),
- "PySide2.QtWidgets.QTreeWidget.closePersistentEditor": [('PySide2.QtCore.QModelIndex',), ('PySide2.QtWidgets.QTreeWidgetItem', 'int')],
- "PySide2.QtWidgets.QTreeWidget.collapseItem": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.columnCount": (),
- "PySide2.QtWidgets.QTreeWidget.currentColumn": (),
- "PySide2.QtWidgets.QTreeWidget.currentItem": (),
- "PySide2.QtWidgets.QTreeWidget.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QTreeWidget.dropMimeData": ('PySide2.QtWidgets.QTreeWidgetItem', 'int', 'PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction'),
- "PySide2.QtWidgets.QTreeWidget.editItem": ('PySide2.QtWidgets.QTreeWidgetItem', 'int'),
- "PySide2.QtWidgets.QTreeWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QTreeWidget.expandItem": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.findItems": ('str', 'PySide2.QtCore.Qt.MatchFlags', 'int'),
- "PySide2.QtWidgets.QTreeWidget.headerItem": (),
- "PySide2.QtWidgets.QTreeWidget.indexFromItem": ('PySide2.QtWidgets.QTreeWidgetItem', 'int'),
- "PySide2.QtWidgets.QTreeWidget.indexOfTopLevelItem": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.insertTopLevelItem": ('int', 'PySide2.QtWidgets.QTreeWidgetItem'),
- "PySide2.QtWidgets.QTreeWidget.insertTopLevelItems": ('int', 'typing.Sequence[PySide2.QtWidgets.QTreeWidgetItem]'),
- "PySide2.QtWidgets.QTreeWidget.invisibleRootItem": (),
- "PySide2.QtWidgets.QTreeWidget.isFirstItemColumnSpanned": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.isItemExpanded": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.isItemHidden": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.isItemSelected": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.isPersistentEditorOpen": [('PySide2.QtCore.QModelIndex',), ('PySide2.QtWidgets.QTreeWidgetItem', 'int')],
- "PySide2.QtWidgets.QTreeWidget.itemAbove": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.itemAt": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtWidgets.QTreeWidget.itemBelow": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.itemFromIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeWidget.itemWidget": ('PySide2.QtWidgets.QTreeWidgetItem', 'int'),
- "PySide2.QtWidgets.QTreeWidget.items": ('PySide2.QtCore.QMimeData',),
- "PySide2.QtWidgets.QTreeWidget.mimeData": ('typing.Sequence[PySide2.QtWidgets.QTreeWidgetItem]',),
- "PySide2.QtWidgets.QTreeWidget.mimeTypes": (),
- "PySide2.QtWidgets.QTreeWidget.openPersistentEditor": [('PySide2.QtCore.QModelIndex',), ('PySide2.QtWidgets.QTreeWidgetItem', 'int')],
- "PySide2.QtWidgets.QTreeWidget.removeItemWidget": ('PySide2.QtWidgets.QTreeWidgetItem', 'int'),
- "PySide2.QtWidgets.QTreeWidget.scrollToItem": ('PySide2.QtWidgets.QTreeWidgetItem', 'PySide2.QtWidgets.QAbstractItemView.ScrollHint'),
- "PySide2.QtWidgets.QTreeWidget.selectedItems": (),
- "PySide2.QtWidgets.QTreeWidget.setColumnCount": ('int',),
- "PySide2.QtWidgets.QTreeWidget.setCurrentItem": [('PySide2.QtWidgets.QTreeWidgetItem',), ('PySide2.QtWidgets.QTreeWidgetItem', 'int'), ('PySide2.QtWidgets.QTreeWidgetItem', 'int', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags')],
- "PySide2.QtWidgets.QTreeWidget.setFirstItemColumnSpanned": ('PySide2.QtWidgets.QTreeWidgetItem', 'bool'),
- "PySide2.QtWidgets.QTreeWidget.setHeaderItem": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.setHeaderLabel": ('str',),
- "PySide2.QtWidgets.QTreeWidget.setHeaderLabels": ('typing.Sequence[str]',),
- "PySide2.QtWidgets.QTreeWidget.setItemExpanded": ('PySide2.QtWidgets.QTreeWidgetItem', 'bool'),
- "PySide2.QtWidgets.QTreeWidget.setItemHidden": ('PySide2.QtWidgets.QTreeWidgetItem', 'bool'),
- "PySide2.QtWidgets.QTreeWidget.setItemSelected": ('PySide2.QtWidgets.QTreeWidgetItem', 'bool'),
- "PySide2.QtWidgets.QTreeWidget.setItemWidget": ('PySide2.QtWidgets.QTreeWidgetItem', 'int', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QTreeWidget.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QTreeWidget.setSelectionModel": ('PySide2.QtCore.QItemSelectionModel',),
- "PySide2.QtWidgets.QTreeWidget.sortColumn": (),
- "PySide2.QtWidgets.QTreeWidget.sortItems": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtWidgets.QTreeWidget.supportedDropActions": (),
- "PySide2.QtWidgets.QTreeWidget.takeTopLevelItem": ('int',),
- "PySide2.QtWidgets.QTreeWidget.topLevelItem": ('int',),
- "PySide2.QtWidgets.QTreeWidget.topLevelItemCount": (),
- "PySide2.QtWidgets.QTreeWidget.visualItemRect": ('PySide2.QtWidgets.QTreeWidgetItem',),
-# class PySide2.QtWidgets.QTreeWidgetItem:
-# class PySide2.QtWidgets.QTreeWidgetItem.ChildIndicatorPolicy:
-# class PySide2.QtWidgets.QTreeWidgetItem.ItemType:
- "PySide2.QtWidgets.QTreeWidgetItem.__init__": [('PySide2.QtWidgets.QTreeWidget', 'PySide2.QtWidgets.QTreeWidgetItem', 'int'), ('PySide2.QtWidgets.QTreeWidget', 'int'), ('PySide2.QtWidgets.QTreeWidget', 'typing.Sequence[str]', 'int'), ('PySide2.QtWidgets.QTreeWidgetItem',), ('PySide2.QtWidgets.QTreeWidgetItem', 'PySide2.QtWidgets.QTreeWidgetItem', 'int'), ('PySide2.QtWidgets.QTreeWidgetItem', 'int'), ('PySide2.QtWidgets.QTreeWidgetItem', 'typing.Sequence[str]', 'int'), ('int',), ('typing.Sequence[str]', 'int')],
- "PySide2.QtWidgets.QTreeWidgetItem.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QTreeWidgetItem.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QTreeWidgetItem.addChild": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidgetItem.addChildren": ('typing.Sequence[PySide2.QtWidgets.QTreeWidgetItem]',),
- "PySide2.QtWidgets.QTreeWidgetItem.background": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.backgroundColor": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.checkState": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.child": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.childCount": (),
- "PySide2.QtWidgets.QTreeWidgetItem.childIndicatorPolicy": (),
- "PySide2.QtWidgets.QTreeWidgetItem.clone": (),
- "PySide2.QtWidgets.QTreeWidgetItem.columnCount": (),
- "PySide2.QtWidgets.QTreeWidgetItem.data": ('int', 'int'),
- "PySide2.QtWidgets.QTreeWidgetItem.emitDataChanged": (),
- "PySide2.QtWidgets.QTreeWidgetItem.flags": (),
- "PySide2.QtWidgets.QTreeWidgetItem.font": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.foreground": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.icon": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.indexOfChild": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidgetItem.insertChild": ('int', 'PySide2.QtWidgets.QTreeWidgetItem'),
- "PySide2.QtWidgets.QTreeWidgetItem.insertChildren": ('int', 'typing.Sequence[PySide2.QtWidgets.QTreeWidgetItem]'),
- "PySide2.QtWidgets.QTreeWidgetItem.isDisabled": (),
- "PySide2.QtWidgets.QTreeWidgetItem.isExpanded": (),
- "PySide2.QtWidgets.QTreeWidgetItem.isFirstColumnSpanned": (),
- "PySide2.QtWidgets.QTreeWidgetItem.isHidden": (),
- "PySide2.QtWidgets.QTreeWidgetItem.isSelected": (),
- "PySide2.QtWidgets.QTreeWidgetItem.parent": (),
- "PySide2.QtWidgets.QTreeWidgetItem.read": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QTreeWidgetItem.removeChild": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidgetItem.setBackground": ('int', 'PySide2.QtGui.QBrush'),
- "PySide2.QtWidgets.QTreeWidgetItem.setBackgroundColor": ('int', 'PySide2.QtGui.QColor'),
- "PySide2.QtWidgets.QTreeWidgetItem.setCheckState": ('int', 'PySide2.QtCore.Qt.CheckState'),
- "PySide2.QtWidgets.QTreeWidgetItem.setChildIndicatorPolicy": ('PySide2.QtWidgets.QTreeWidgetItem.ChildIndicatorPolicy',),
- "PySide2.QtWidgets.QTreeWidgetItem.setData": ('int', 'int', 'typing.Any'),
- "PySide2.QtWidgets.QTreeWidgetItem.setDisabled": ('bool',),
- "PySide2.QtWidgets.QTreeWidgetItem.setExpanded": ('bool',),
- "PySide2.QtWidgets.QTreeWidgetItem.setFirstColumnSpanned": ('bool',),
- "PySide2.QtWidgets.QTreeWidgetItem.setFlags": ('PySide2.QtCore.Qt.ItemFlags',),
- "PySide2.QtWidgets.QTreeWidgetItem.setFont": ('int', 'PySide2.QtGui.QFont'),
- "PySide2.QtWidgets.QTreeWidgetItem.setForeground": ('int', 'PySide2.QtGui.QBrush'),
- "PySide2.QtWidgets.QTreeWidgetItem.setHidden": ('bool',),
- "PySide2.QtWidgets.QTreeWidgetItem.setIcon": ('int', 'PySide2.QtGui.QIcon'),
- "PySide2.QtWidgets.QTreeWidgetItem.setSelected": ('bool',),
- "PySide2.QtWidgets.QTreeWidgetItem.setSizeHint": ('int', 'PySide2.QtCore.QSize'),
- "PySide2.QtWidgets.QTreeWidgetItem.setStatusTip": ('int', 'str'),
- "PySide2.QtWidgets.QTreeWidgetItem.setText": ('int', 'str'),
- "PySide2.QtWidgets.QTreeWidgetItem.setTextAlignment": ('int', 'int'),
- "PySide2.QtWidgets.QTreeWidgetItem.setTextColor": ('int', 'PySide2.QtGui.QColor'),
- "PySide2.QtWidgets.QTreeWidgetItem.setToolTip": ('int', 'str'),
- "PySide2.QtWidgets.QTreeWidgetItem.setWhatsThis": ('int', 'str'),
- "PySide2.QtWidgets.QTreeWidgetItem.sizeHint": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.sortChildren": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtWidgets.QTreeWidgetItem.statusTip": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.takeChild": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.takeChildren": (),
- "PySide2.QtWidgets.QTreeWidgetItem.text": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.textAlignment": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.textColor": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.toolTip": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.treeWidget": (),
- "PySide2.QtWidgets.QTreeWidgetItem.type": (),
- "PySide2.QtWidgets.QTreeWidgetItem.whatsThis": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.write": ('PySide2.QtCore.QDataStream',),
-# class PySide2.QtWidgets.QTreeWidgetItemIterator:
-# class PySide2.QtWidgets.QTreeWidgetItemIterator.IteratorFlag:
-# class PySide2.QtWidgets.QTreeWidgetItemIterator.IteratorFlags:
- "PySide2.QtWidgets.QTreeWidgetItemIterator.__init__": [('PySide2.QtWidgets.QTreeWidget', 'PySide2.QtWidgets.QTreeWidgetItemIterator.IteratorFlags'), ('PySide2.QtWidgets.QTreeWidgetItem', 'PySide2.QtWidgets.QTreeWidgetItemIterator.IteratorFlags'), ('PySide2.QtWidgets.QTreeWidgetItemIterator',)],
- "PySide2.QtWidgets.QTreeWidgetItemIterator.__copy__": (),
- "PySide2.QtWidgets.QTreeWidgetItemIterator.__iadd__": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItemIterator.__isub__": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItemIterator.__iter__": (),
- "PySide2.QtWidgets.QTreeWidgetItemIterator.value": (),
-# class PySide2.QtWidgets.QUndoCommand:
- "PySide2.QtWidgets.QUndoCommand.__init__": [('PySide2.QtWidgets.QUndoCommand',), ('str', 'PySide2.QtWidgets.QUndoCommand')],
- "PySide2.QtWidgets.QUndoCommand.actionText": (),
- "PySide2.QtWidgets.QUndoCommand.child": ('int',),
- "PySide2.QtWidgets.QUndoCommand.childCount": (),
- "PySide2.QtWidgets.QUndoCommand.id": (),
- "PySide2.QtWidgets.QUndoCommand.isObsolete": (),
- "PySide2.QtWidgets.QUndoCommand.mergeWith": ('PySide2.QtWidgets.QUndoCommand',),
- "PySide2.QtWidgets.QUndoCommand.redo": (),
- "PySide2.QtWidgets.QUndoCommand.setObsolete": ('bool',),
- "PySide2.QtWidgets.QUndoCommand.setText": ('str',),
- "PySide2.QtWidgets.QUndoCommand.text": (),
- "PySide2.QtWidgets.QUndoCommand.undo": (),
-# class PySide2.QtWidgets.QUndoGroup:
- "PySide2.QtWidgets.QUndoGroup.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QUndoGroup.activeStack": (),
- "PySide2.QtWidgets.QUndoGroup.addStack": ('PySide2.QtWidgets.QUndoStack',),
- "PySide2.QtWidgets.QUndoGroup.canRedo": (),
- "PySide2.QtWidgets.QUndoGroup.canUndo": (),
- "PySide2.QtWidgets.QUndoGroup.createRedoAction": ('PySide2.QtCore.QObject', 'str'),
- "PySide2.QtWidgets.QUndoGroup.createUndoAction": ('PySide2.QtCore.QObject', 'str'),
- "PySide2.QtWidgets.QUndoGroup.isClean": (),
- "PySide2.QtWidgets.QUndoGroup.redo": (),
- "PySide2.QtWidgets.QUndoGroup.redoText": (),
- "PySide2.QtWidgets.QUndoGroup.removeStack": ('PySide2.QtWidgets.QUndoStack',),
- "PySide2.QtWidgets.QUndoGroup.setActiveStack": ('PySide2.QtWidgets.QUndoStack',),
- "PySide2.QtWidgets.QUndoGroup.stacks": (),
- "PySide2.QtWidgets.QUndoGroup.undo": (),
- "PySide2.QtWidgets.QUndoGroup.undoText": (),
-# class PySide2.QtWidgets.QUndoStack:
- "PySide2.QtWidgets.QUndoStack.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QUndoStack.beginMacro": ('str',),
- "PySide2.QtWidgets.QUndoStack.canRedo": (),
- "PySide2.QtWidgets.QUndoStack.canUndo": (),
- "PySide2.QtWidgets.QUndoStack.cleanIndex": (),
- "PySide2.QtWidgets.QUndoStack.clear": (),
- "PySide2.QtWidgets.QUndoStack.command": ('int',),
- "PySide2.QtWidgets.QUndoStack.count": (),
- "PySide2.QtWidgets.QUndoStack.createRedoAction": ('PySide2.QtCore.QObject', 'str'),
- "PySide2.QtWidgets.QUndoStack.createUndoAction": ('PySide2.QtCore.QObject', 'str'),
- "PySide2.QtWidgets.QUndoStack.endMacro": (),
- "PySide2.QtWidgets.QUndoStack.index": (),
- "PySide2.QtWidgets.QUndoStack.isActive": (),
- "PySide2.QtWidgets.QUndoStack.isClean": (),
- "PySide2.QtWidgets.QUndoStack.push": ('PySide2.QtWidgets.QUndoCommand',),
- "PySide2.QtWidgets.QUndoStack.redo": (),
- "PySide2.QtWidgets.QUndoStack.redoText": (),
- "PySide2.QtWidgets.QUndoStack.resetClean": (),
- "PySide2.QtWidgets.QUndoStack.setActive": ('bool',),
- "PySide2.QtWidgets.QUndoStack.setClean": (),
- "PySide2.QtWidgets.QUndoStack.setIndex": ('int',),
- "PySide2.QtWidgets.QUndoStack.setUndoLimit": ('int',),
- "PySide2.QtWidgets.QUndoStack.text": ('int',),
- "PySide2.QtWidgets.QUndoStack.undo": (),
- "PySide2.QtWidgets.QUndoStack.undoLimit": (),
- "PySide2.QtWidgets.QUndoStack.undoText": (),
-# class PySide2.QtWidgets.QUndoView:
- "PySide2.QtWidgets.QUndoView.__init__": [('PySide2.QtWidgets.QUndoGroup', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QUndoStack', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QUndoView.cleanIcon": (),
- "PySide2.QtWidgets.QUndoView.emptyLabel": (),
- "PySide2.QtWidgets.QUndoView.group": (),
- "PySide2.QtWidgets.QUndoView.setCleanIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtWidgets.QUndoView.setEmptyLabel": ('str',),
- "PySide2.QtWidgets.QUndoView.setGroup": ('PySide2.QtWidgets.QUndoGroup',),
- "PySide2.QtWidgets.QUndoView.setStack": ('PySide2.QtWidgets.QUndoStack',),
- "PySide2.QtWidgets.QUndoView.stack": (),
-# class PySide2.QtWidgets.QVBoxLayout:
- "PySide2.QtWidgets.QVBoxLayout.__init__": [(), ('PySide2.QtWidgets.QWidget',)],
-# class PySide2.QtWidgets.QWhatsThis:
- "PySide2.QtWidgets.QWhatsThis.createAction": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QWhatsThis.enterWhatsThisMode": (),
- "PySide2.QtWidgets.QWhatsThis.hideText": (),
- "PySide2.QtWidgets.QWhatsThis.inWhatsThisMode": (),
- "PySide2.QtWidgets.QWhatsThis.leaveWhatsThisMode": (),
- "PySide2.QtWidgets.QWhatsThis.showText": ('PySide2.QtCore.QPoint', 'str', 'PySide2.QtWidgets.QWidget'),
-# class PySide2.QtWidgets.QWidget:
-# class PySide2.QtWidgets.QWidget.RenderFlag:
-# class PySide2.QtWidgets.QWidget.RenderFlags:
- "PySide2.QtWidgets.QWidget.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QWidget.acceptDrops": (),
- "PySide2.QtWidgets.QWidget.accessibleDescription": (),
- "PySide2.QtWidgets.QWidget.accessibleName": (),
- "PySide2.QtWidgets.QWidget.actionEvent": ('PySide2.QtGui.QActionEvent',),
- "PySide2.QtWidgets.QWidget.actions": (),
- "PySide2.QtWidgets.QWidget.activateWindow": (),
- "PySide2.QtWidgets.QWidget.addAction": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QWidget.addActions": ('typing.Sequence[PySide2.QtWidgets.QAction]',),
- "PySide2.QtWidgets.QWidget.adjustSize": (),
- "PySide2.QtWidgets.QWidget.autoFillBackground": (),
- "PySide2.QtWidgets.QWidget.backgroundRole": (),
- "PySide2.QtWidgets.QWidget.backingStore": (),
- "PySide2.QtWidgets.QWidget.baseSize": (),
- "PySide2.QtWidgets.QWidget.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QWidget.childAt": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtWidgets.QWidget.childrenRect": (),
- "PySide2.QtWidgets.QWidget.childrenRegion": (),
- "PySide2.QtWidgets.QWidget.clearFocus": (),
- "PySide2.QtWidgets.QWidget.clearMask": (),
- "PySide2.QtWidgets.QWidget.close": (),
- "PySide2.QtWidgets.QWidget.closeEvent": ('PySide2.QtGui.QCloseEvent',),
- "PySide2.QtWidgets.QWidget.contentsMargins": (),
- "PySide2.QtWidgets.QWidget.contentsRect": (),
- "PySide2.QtWidgets.QWidget.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QWidget.contextMenuPolicy": (),
- "PySide2.QtWidgets.QWidget.create": ('int', 'bool', 'bool'),
- "PySide2.QtWidgets.QWidget.createWinId": (),
- "PySide2.QtWidgets.QWidget.createWindowContainer": ('PySide2.QtGui.QWindow', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QWidget.cursor": (),
- "PySide2.QtWidgets.QWidget.destroy": ('bool', 'bool'),
- "PySide2.QtWidgets.QWidget.devType": (),
- "PySide2.QtWidgets.QWidget.dragEnterEvent": ('PySide2.QtGui.QDragEnterEvent',),
- "PySide2.QtWidgets.QWidget.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtWidgets.QWidget.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtWidgets.QWidget.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QWidget.effectiveWinId": (),
- "PySide2.QtWidgets.QWidget.ensurePolished": (),
- "PySide2.QtWidgets.QWidget.enterEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QWidget.find": ('int',),
- "PySide2.QtWidgets.QWidget.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QWidget.focusNextChild": (),
- "PySide2.QtWidgets.QWidget.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QWidget.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QWidget.focusPolicy": (),
- "PySide2.QtWidgets.QWidget.focusPreviousChild": (),
- "PySide2.QtWidgets.QWidget.focusProxy": (),
- "PySide2.QtWidgets.QWidget.focusWidget": (),
- "PySide2.QtWidgets.QWidget.font": (),
- "PySide2.QtWidgets.QWidget.fontInfo": (),
- "PySide2.QtWidgets.QWidget.fontMetrics": (),
- "PySide2.QtWidgets.QWidget.foregroundRole": (),
- "PySide2.QtWidgets.QWidget.frameGeometry": (),
- "PySide2.QtWidgets.QWidget.frameSize": (),
- "PySide2.QtWidgets.QWidget.geometry": (),
- "PySide2.QtWidgets.QWidget.getContentsMargins": (),
- "PySide2.QtWidgets.QWidget.grab": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QWidget.grabGesture": ('PySide2.QtCore.Qt.GestureType', 'PySide2.QtCore.Qt.GestureFlags'),
- "PySide2.QtWidgets.QWidget.grabKeyboard": (),
- "PySide2.QtWidgets.QWidget.grabMouse": [(), ('PySide2.QtGui.QCursor',)],
- "PySide2.QtWidgets.QWidget.grabShortcut": ('PySide2.QtGui.QKeySequence', 'PySide2.QtCore.Qt.ShortcutContext'),
- "PySide2.QtWidgets.QWidget.graphicsEffect": (),
- "PySide2.QtWidgets.QWidget.graphicsProxyWidget": (),
- "PySide2.QtWidgets.QWidget.hasFocus": (),
- "PySide2.QtWidgets.QWidget.hasHeightForWidth": (),
- "PySide2.QtWidgets.QWidget.hasMouseTracking": (),
- "PySide2.QtWidgets.QWidget.hasTabletTracking": (),
- "PySide2.QtWidgets.QWidget.height": (),
- "PySide2.QtWidgets.QWidget.heightForWidth": ('int',),
- "PySide2.QtWidgets.QWidget.hide": (),
- "PySide2.QtWidgets.QWidget.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWidgets.QWidget.initPainter": ('PySide2.QtGui.QPainter',),
- "PySide2.QtWidgets.QWidget.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QWidget.inputMethodHints": (),
- "PySide2.QtWidgets.QWidget.inputMethodQuery": ('PySide2.QtCore.Qt.InputMethodQuery',),
- "PySide2.QtWidgets.QWidget.insertAction": ('PySide2.QtWidgets.QAction', 'PySide2.QtWidgets.QAction'),
- "PySide2.QtWidgets.QWidget.insertActions": ('PySide2.QtWidgets.QAction', 'typing.Sequence[PySide2.QtWidgets.QAction]'),
- "PySide2.QtWidgets.QWidget.internalWinId": (),
- "PySide2.QtWidgets.QWidget.isActiveWindow": (),
- "PySide2.QtWidgets.QWidget.isAncestorOf": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWidget.isEnabled": (),
- "PySide2.QtWidgets.QWidget.isEnabledTo": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWidget.isEnabledToTLW": (),
- "PySide2.QtWidgets.QWidget.isFullScreen": (),
- "PySide2.QtWidgets.QWidget.isHidden": (),
- "PySide2.QtWidgets.QWidget.isLeftToRight": (),
- "PySide2.QtWidgets.QWidget.isMaximized": (),
- "PySide2.QtWidgets.QWidget.isMinimized": (),
- "PySide2.QtWidgets.QWidget.isModal": (),
- "PySide2.QtWidgets.QWidget.isRightToLeft": (),
- "PySide2.QtWidgets.QWidget.isTopLevel": (),
- "PySide2.QtWidgets.QWidget.isVisible": (),
- "PySide2.QtWidgets.QWidget.isVisibleTo": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWidget.isWindow": (),
- "PySide2.QtWidgets.QWidget.isWindowModified": (),
- "PySide2.QtWidgets.QWidget.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QWidget.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QWidget.keyboardGrabber": (),
- "PySide2.QtWidgets.QWidget.layout": (),
- "PySide2.QtWidgets.QWidget.layoutDirection": (),
- "PySide2.QtWidgets.QWidget.leaveEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QWidget.locale": (),
- "PySide2.QtWidgets.QWidget.lower": (),
- "PySide2.QtWidgets.QWidget.mapFrom": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QPoint'),
- "PySide2.QtWidgets.QWidget.mapFromGlobal": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QWidget.mapFromParent": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QWidget.mapTo": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QPoint'),
- "PySide2.QtWidgets.QWidget.mapToGlobal": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QWidget.mapToParent": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QWidget.mask": (),
- "PySide2.QtWidgets.QWidget.maximumHeight": (),
- "PySide2.QtWidgets.QWidget.maximumSize": (),
- "PySide2.QtWidgets.QWidget.maximumWidth": (),
- "PySide2.QtWidgets.QWidget.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtWidgets.QWidget.minimumHeight": (),
- "PySide2.QtWidgets.QWidget.minimumSize": (),
- "PySide2.QtWidgets.QWidget.minimumSizeHint": (),
- "PySide2.QtWidgets.QWidget.minimumWidth": (),
- "PySide2.QtWidgets.QWidget.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QWidget.mouseGrabber": (),
- "PySide2.QtWidgets.QWidget.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QWidget.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QWidget.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QWidget.move": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtWidgets.QWidget.moveEvent": ('PySide2.QtGui.QMoveEvent',),
- "PySide2.QtWidgets.QWidget.nativeEvent": ('PySide2.QtCore.QByteArray', 'int'),
- "PySide2.QtWidgets.QWidget.nativeParentWidget": (),
- "PySide2.QtWidgets.QWidget.nextInFocusChain": (),
- "PySide2.QtWidgets.QWidget.normalGeometry": (),
- "PySide2.QtWidgets.QWidget.overrideWindowFlags": ('PySide2.QtCore.Qt.WindowFlags',),
- "PySide2.QtWidgets.QWidget.overrideWindowState": ('PySide2.QtCore.Qt.WindowStates',),
- "PySide2.QtWidgets.QWidget.paintEngine": (),
- "PySide2.QtWidgets.QWidget.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QWidget.palette": (),
- "PySide2.QtWidgets.QWidget.parentWidget": (),
- "PySide2.QtWidgets.QWidget.pos": (),
- "PySide2.QtWidgets.QWidget.previousInFocusChain": (),
- "PySide2.QtWidgets.QWidget.raise_": (),
- "PySide2.QtWidgets.QWidget.rect": (),
- "PySide2.QtWidgets.QWidget.redirected": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QWidget.releaseKeyboard": (),
- "PySide2.QtWidgets.QWidget.releaseMouse": (),
- "PySide2.QtWidgets.QWidget.releaseShortcut": ('int',),
- "PySide2.QtWidgets.QWidget.removeAction": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QWidget.render": [('PySide2.QtGui.QPaintDevice', 'PySide2.QtCore.QPoint', 'PySide2.QtGui.QRegion', 'PySide2.QtWidgets.QWidget.RenderFlags'), ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QPoint', 'PySide2.QtGui.QRegion', 'PySide2.QtWidgets.QWidget.RenderFlags')],
- "PySide2.QtWidgets.QWidget.repaint": [(), ('PySide2.QtCore.QRect',), ('PySide2.QtGui.QRegion',), ('int', 'int', 'int', 'int')],
- "PySide2.QtWidgets.QWidget.resize": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtWidgets.QWidget.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QWidget.restoreGeometry": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWidgets.QWidget.saveGeometry": (),
- "PySide2.QtWidgets.QWidget.screen": (),
- "PySide2.QtWidgets.QWidget.scroll": [('int', 'int'), ('int', 'int', 'PySide2.QtCore.QRect')],
- "PySide2.QtWidgets.QWidget.setAcceptDrops": ('bool',),
- "PySide2.QtWidgets.QWidget.setAccessibleDescription": ('str',),
- "PySide2.QtWidgets.QWidget.setAccessibleName": ('str',),
- "PySide2.QtWidgets.QWidget.setAttribute": ('PySide2.QtCore.Qt.WidgetAttribute', 'bool'),
- "PySide2.QtWidgets.QWidget.setAutoFillBackground": ('bool',),
- "PySide2.QtWidgets.QWidget.setBackgroundRole": ('PySide2.QtGui.QPalette.ColorRole',),
- "PySide2.QtWidgets.QWidget.setBaseSize": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtWidgets.QWidget.setContentsMargins": [('PySide2.QtCore.QMargins',), ('int', 'int', 'int', 'int')],
- "PySide2.QtWidgets.QWidget.setContextMenuPolicy": ('PySide2.QtCore.Qt.ContextMenuPolicy',),
- "PySide2.QtWidgets.QWidget.setCursor": ('PySide2.QtGui.QCursor',),
- "PySide2.QtWidgets.QWidget.setDisabled": ('bool',),
- "PySide2.QtWidgets.QWidget.setEnabled": ('bool',),
- "PySide2.QtWidgets.QWidget.setFixedHeight": ('int',),
- "PySide2.QtWidgets.QWidget.setFixedSize": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtWidgets.QWidget.setFixedWidth": ('int',),
- "PySide2.QtWidgets.QWidget.setFocus": [(), ('PySide2.QtCore.Qt.FocusReason',)],
- "PySide2.QtWidgets.QWidget.setFocusPolicy": ('PySide2.QtCore.Qt.FocusPolicy',),
- "PySide2.QtWidgets.QWidget.setFocusProxy": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWidget.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QWidget.setForegroundRole": ('PySide2.QtGui.QPalette.ColorRole',),
- "PySide2.QtWidgets.QWidget.setGeometry": [('PySide2.QtCore.QRect',), ('int', 'int', 'int', 'int')],
- "PySide2.QtWidgets.QWidget.setGraphicsEffect": ('PySide2.QtWidgets.QGraphicsEffect',),
- "PySide2.QtWidgets.QWidget.setHidden": ('bool',),
- "PySide2.QtWidgets.QWidget.setInputMethodHints": ('PySide2.QtCore.Qt.InputMethodHints',),
- "PySide2.QtWidgets.QWidget.setLayout": ('PySide2.QtWidgets.QLayout',),
- "PySide2.QtWidgets.QWidget.setLayoutDirection": ('PySide2.QtCore.Qt.LayoutDirection',),
- "PySide2.QtWidgets.QWidget.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtWidgets.QWidget.setMask": [('PySide2.QtGui.QBitmap',), ('PySide2.QtGui.QRegion',)],
- "PySide2.QtWidgets.QWidget.setMaximumHeight": ('int',),
- "PySide2.QtWidgets.QWidget.setMaximumSize": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtWidgets.QWidget.setMaximumWidth": ('int',),
- "PySide2.QtWidgets.QWidget.setMinimumHeight": ('int',),
- "PySide2.QtWidgets.QWidget.setMinimumSize": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtWidgets.QWidget.setMinimumWidth": ('int',),
- "PySide2.QtWidgets.QWidget.setMouseTracking": ('bool',),
- "PySide2.QtWidgets.QWidget.setPalette": ('PySide2.QtGui.QPalette',),
- "PySide2.QtWidgets.QWidget.setParent": [('PySide2.QtWidgets.QWidget',), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags')],
- "PySide2.QtWidgets.QWidget.setShortcutAutoRepeat": ('int', 'bool'),
- "PySide2.QtWidgets.QWidget.setShortcutEnabled": ('int', 'bool'),
- "PySide2.QtWidgets.QWidget.setSizeIncrement": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtWidgets.QWidget.setSizePolicy": [('PySide2.QtWidgets.QSizePolicy',), ('PySide2.QtWidgets.QSizePolicy.Policy', 'PySide2.QtWidgets.QSizePolicy.Policy')],
- "PySide2.QtWidgets.QWidget.setStatusTip": ('str',),
- "PySide2.QtWidgets.QWidget.setStyle": ('PySide2.QtWidgets.QStyle',),
- "PySide2.QtWidgets.QWidget.setStyleSheet": ('str',),
- "PySide2.QtWidgets.QWidget.setTabOrder": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QWidget.setTabletTracking": ('bool',),
- "PySide2.QtWidgets.QWidget.setToolTip": ('str',),
- "PySide2.QtWidgets.QWidget.setToolTipDuration": ('int',),
- "PySide2.QtWidgets.QWidget.setUpdatesEnabled": ('bool',),
- "PySide2.QtWidgets.QWidget.setVisible": ('bool',),
- "PySide2.QtWidgets.QWidget.setWhatsThis": ('str',),
- "PySide2.QtWidgets.QWidget.setWindowFilePath": ('str',),
- "PySide2.QtWidgets.QWidget.setWindowFlag": ('PySide2.QtCore.Qt.WindowType', 'bool'),
- "PySide2.QtWidgets.QWidget.setWindowFlags": ('PySide2.QtCore.Qt.WindowFlags',),
- "PySide2.QtWidgets.QWidget.setWindowIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtWidgets.QWidget.setWindowIconText": ('str',),
- "PySide2.QtWidgets.QWidget.setWindowModality": ('PySide2.QtCore.Qt.WindowModality',),
- "PySide2.QtWidgets.QWidget.setWindowModified": ('bool',),
- "PySide2.QtWidgets.QWidget.setWindowOpacity": ('float',),
- "PySide2.QtWidgets.QWidget.setWindowRole": ('str',),
- "PySide2.QtWidgets.QWidget.setWindowState": ('PySide2.QtCore.Qt.WindowStates',),
- "PySide2.QtWidgets.QWidget.setWindowTitle": ('str',),
- "PySide2.QtWidgets.QWidget.sharedPainter": (),
- "PySide2.QtWidgets.QWidget.show": (),
- "PySide2.QtWidgets.QWidget.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QWidget.showFullScreen": (),
- "PySide2.QtWidgets.QWidget.showMaximized": (),
- "PySide2.QtWidgets.QWidget.showMinimized": (),
- "PySide2.QtWidgets.QWidget.showNormal": (),
- "PySide2.QtWidgets.QWidget.size": (),
- "PySide2.QtWidgets.QWidget.sizeHint": (),
- "PySide2.QtWidgets.QWidget.sizeIncrement": (),
- "PySide2.QtWidgets.QWidget.sizePolicy": (),
- "PySide2.QtWidgets.QWidget.stackUnder": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWidget.statusTip": (),
- "PySide2.QtWidgets.QWidget.style": (),
- "PySide2.QtWidgets.QWidget.styleSheet": (),
- "PySide2.QtWidgets.QWidget.tabletEvent": ('PySide2.QtGui.QTabletEvent',),
- "PySide2.QtWidgets.QWidget.testAttribute": ('PySide2.QtCore.Qt.WidgetAttribute',),
- "PySide2.QtWidgets.QWidget.toolTip": (),
- "PySide2.QtWidgets.QWidget.toolTipDuration": (),
- "PySide2.QtWidgets.QWidget.topLevelWidget": (),
- "PySide2.QtWidgets.QWidget.underMouse": (),
- "PySide2.QtWidgets.QWidget.ungrabGesture": ('PySide2.QtCore.Qt.GestureType',),
- "PySide2.QtWidgets.QWidget.unsetCursor": (),
- "PySide2.QtWidgets.QWidget.unsetLayoutDirection": (),
- "PySide2.QtWidgets.QWidget.unsetLocale": (),
- "PySide2.QtWidgets.QWidget.update": [(), ('PySide2.QtCore.QRect',), ('PySide2.QtGui.QRegion',), ('int', 'int', 'int', 'int')],
- "PySide2.QtWidgets.QWidget.updateGeometry": (),
- "PySide2.QtWidgets.QWidget.updateMicroFocus": (),
- "PySide2.QtWidgets.QWidget.updatesEnabled": (),
- "PySide2.QtWidgets.QWidget.visibleRegion": (),
- "PySide2.QtWidgets.QWidget.whatsThis": (),
- "PySide2.QtWidgets.QWidget.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
- "PySide2.QtWidgets.QWidget.width": (),
- "PySide2.QtWidgets.QWidget.winId": (),
- "PySide2.QtWidgets.QWidget.window": (),
- "PySide2.QtWidgets.QWidget.windowFilePath": (),
- "PySide2.QtWidgets.QWidget.windowFlags": (),
- "PySide2.QtWidgets.QWidget.windowHandle": (),
- "PySide2.QtWidgets.QWidget.windowIcon": (),
- "PySide2.QtWidgets.QWidget.windowIconText": (),
- "PySide2.QtWidgets.QWidget.windowModality": (),
- "PySide2.QtWidgets.QWidget.windowOpacity": (),
- "PySide2.QtWidgets.QWidget.windowRole": (),
- "PySide2.QtWidgets.QWidget.windowState": (),
- "PySide2.QtWidgets.QWidget.windowTitle": (),
- "PySide2.QtWidgets.QWidget.windowType": (),
- "PySide2.QtWidgets.QWidget.x": (),
- "PySide2.QtWidgets.QWidget.y": (),
-# class PySide2.QtWidgets.QWidgetAction:
- "PySide2.QtWidgets.QWidgetAction.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QWidgetAction.createWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWidgetAction.createdWidgets": (),
- "PySide2.QtWidgets.QWidgetAction.defaultWidget": (),
- "PySide2.QtWidgets.QWidgetAction.deleteWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWidgetAction.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QWidgetAction.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QWidgetAction.releaseWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWidgetAction.requestWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWidgetAction.setDefaultWidget": ('PySide2.QtWidgets.QWidget',),
-# class PySide2.QtWidgets.QWidgetItem:
- "PySide2.QtWidgets.QWidgetItem.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWidgetItem.controlTypes": (),
- "PySide2.QtWidgets.QWidgetItem.expandingDirections": (),
- "PySide2.QtWidgets.QWidgetItem.geometry": (),
- "PySide2.QtWidgets.QWidgetItem.hasHeightForWidth": (),
- "PySide2.QtWidgets.QWidgetItem.heightForWidth": ('int',),
- "PySide2.QtWidgets.QWidgetItem.isEmpty": (),
- "PySide2.QtWidgets.QWidgetItem.maximumSize": (),
- "PySide2.QtWidgets.QWidgetItem.minimumSize": (),
- "PySide2.QtWidgets.QWidgetItem.setGeometry": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QWidgetItem.sizeHint": (),
- "PySide2.QtWidgets.QWidgetItem.widget": (),
-# class PySide2.QtWidgets.QWizard:
-# class PySide2.QtWidgets.QWizard.WizardButton:
-# class PySide2.QtWidgets.QWizard.WizardOption:
-# class PySide2.QtWidgets.QWizard.WizardOptions:
-# class PySide2.QtWidgets.QWizard.WizardPixmap:
-# class PySide2.QtWidgets.QWizard.WizardStyle:
- "PySide2.QtWidgets.QWizard.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QWizard.addPage": ('PySide2.QtWidgets.QWizardPage',),
- "PySide2.QtWidgets.QWizard.back": (),
- "PySide2.QtWidgets.QWizard.button": ('PySide2.QtWidgets.QWizard.WizardButton',),
- "PySide2.QtWidgets.QWizard.buttonText": ('PySide2.QtWidgets.QWizard.WizardButton',),
- "PySide2.QtWidgets.QWizard.cleanupPage": ('int',),
- "PySide2.QtWidgets.QWizard.currentId": (),
- "PySide2.QtWidgets.QWizard.currentPage": (),
- "PySide2.QtWidgets.QWizard.done": ('int',),
- "PySide2.QtWidgets.QWizard.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QWizard.field": ('str',),
- "PySide2.QtWidgets.QWizard.hasVisitedPage": ('int',),
- "PySide2.QtWidgets.QWizard.initializePage": ('int',),
- "PySide2.QtWidgets.QWizard.nextId": (),
- "PySide2.QtWidgets.QWizard.options": (),
- "PySide2.QtWidgets.QWizard.page": ('int',),
- "PySide2.QtWidgets.QWizard.pageIds": (),
- "PySide2.QtWidgets.QWizard.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QWizard.pixmap": ('PySide2.QtWidgets.QWizard.WizardPixmap',),
- "PySide2.QtWidgets.QWizard.removePage": ('int',),
- "PySide2.QtWidgets.QWizard.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QWizard.restart": (),
- "PySide2.QtWidgets.QWizard.setButton": ('PySide2.QtWidgets.QWizard.WizardButton', 'PySide2.QtWidgets.QAbstractButton'),
- "PySide2.QtWidgets.QWizard.setButtonLayout": ('typing.Sequence[PySide2.QtWidgets.QWizard.WizardButton]',),
- "PySide2.QtWidgets.QWizard.setButtonText": ('PySide2.QtWidgets.QWizard.WizardButton', 'str'),
- "PySide2.QtWidgets.QWizard.setDefaultProperty": ('str', 'str', 'str'),
- "PySide2.QtWidgets.QWizard.setField": ('str', 'typing.Any'),
- "PySide2.QtWidgets.QWizard.setOption": ('PySide2.QtWidgets.QWizard.WizardOption', 'bool'),
- "PySide2.QtWidgets.QWizard.setOptions": ('PySide2.QtWidgets.QWizard.WizardOptions',),
- "PySide2.QtWidgets.QWizard.setPage": ('int', 'PySide2.QtWidgets.QWizardPage'),
- "PySide2.QtWidgets.QWizard.setPixmap": ('PySide2.QtWidgets.QWizard.WizardPixmap', 'PySide2.QtGui.QPixmap'),
- "PySide2.QtWidgets.QWizard.setSideWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWizard.setStartId": ('int',),
- "PySide2.QtWidgets.QWizard.setSubTitleFormat": ('PySide2.QtCore.Qt.TextFormat',),
- "PySide2.QtWidgets.QWizard.setTitleFormat": ('PySide2.QtCore.Qt.TextFormat',),
- "PySide2.QtWidgets.QWizard.setVisible": ('bool',),
- "PySide2.QtWidgets.QWizard.setWizardStyle": ('PySide2.QtWidgets.QWizard.WizardStyle',),
- "PySide2.QtWidgets.QWizard.sideWidget": (),
- "PySide2.QtWidgets.QWizard.sizeHint": (),
- "PySide2.QtWidgets.QWizard.startId": (),
- "PySide2.QtWidgets.QWizard.subTitleFormat": (),
- "PySide2.QtWidgets.QWizard.testOption": ('PySide2.QtWidgets.QWizard.WizardOption',),
- "PySide2.QtWidgets.QWizard.titleFormat": (),
- "PySide2.QtWidgets.QWizard.validateCurrentPage": (),
- "PySide2.QtWidgets.QWizard.visitedPages": (),
- "PySide2.QtWidgets.QWizard.wizardStyle": (),
-# class PySide2.QtWidgets.QWizardPage:
- "PySide2.QtWidgets.QWizardPage.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWizardPage.buttonText": ('PySide2.QtWidgets.QWizard.WizardButton',),
- "PySide2.QtWidgets.QWizardPage.cleanupPage": (),
- "PySide2.QtWidgets.QWizardPage.field": ('str',),
- "PySide2.QtWidgets.QWizardPage.initializePage": (),
- "PySide2.QtWidgets.QWizardPage.isCommitPage": (),
- "PySide2.QtWidgets.QWizardPage.isComplete": (),
- "PySide2.QtWidgets.QWizardPage.isFinalPage": (),
- "PySide2.QtWidgets.QWizardPage.nextId": (),
- "PySide2.QtWidgets.QWizardPage.pixmap": ('PySide2.QtWidgets.QWizard.WizardPixmap',),
- "PySide2.QtWidgets.QWizardPage.registerField": ('str', 'PySide2.QtWidgets.QWidget', 'str', 'str'),
- "PySide2.QtWidgets.QWizardPage.setButtonText": ('PySide2.QtWidgets.QWizard.WizardButton', 'str'),
- "PySide2.QtWidgets.QWizardPage.setCommitPage": ('bool',),
- "PySide2.QtWidgets.QWizardPage.setField": ('str', 'typing.Any'),
- "PySide2.QtWidgets.QWizardPage.setFinalPage": ('bool',),
- "PySide2.QtWidgets.QWizardPage.setPixmap": ('PySide2.QtWidgets.QWizard.WizardPixmap', 'PySide2.QtGui.QPixmap'),
- "PySide2.QtWidgets.QWizardPage.setSubTitle": ('str',),
- "PySide2.QtWidgets.QWizardPage.setTitle": ('str',),
- "PySide2.QtWidgets.QWizardPage.subTitle": (),
- "PySide2.QtWidgets.QWizardPage.title": (),
- "PySide2.QtWidgets.QWizardPage.validatePage": (),
- "PySide2.QtWidgets.QWizardPage.wizard": (),
- }) if "PySide2.QtWidgets" in sys.modules else None
-# Module PySide2.QtPrintSupport
-sig_dict.update({
-# class PySide2.QtPrintSupport.QAbstractPrintDialog:
-# class PySide2.QtPrintSupport.QAbstractPrintDialog.PrintDialogOption:
-# class PySide2.QtPrintSupport.QAbstractPrintDialog.PrintDialogOptions:
-# class PySide2.QtPrintSupport.QAbstractPrintDialog.PrintRange:
- "PySide2.QtPrintSupport.QAbstractPrintDialog.__init__": ('PySide2.QtPrintSupport.QPrinter', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.addEnabledOption": ('PySide2.QtPrintSupport.QAbstractPrintDialog.PrintDialogOption',),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.enabledOptions": (),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.fromPage": (),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.isOptionEnabled": ('PySide2.QtPrintSupport.QAbstractPrintDialog.PrintDialogOption',),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.maxPage": (),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.minPage": (),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.printRange": (),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.printer": (),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.setEnabledOptions": ('PySide2.QtPrintSupport.QAbstractPrintDialog.PrintDialogOptions',),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.setFromTo": ('int', 'int'),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.setMinMax": ('int', 'int'),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.setOptionTabs": ('typing.Sequence[PySide2.QtWidgets.QWidget]',),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.setPrintRange": ('PySide2.QtPrintSupport.QAbstractPrintDialog.PrintRange',),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.toPage": (),
-# class PySide2.QtPrintSupport.QPageSetupDialog:
- "PySide2.QtPrintSupport.QPageSetupDialog.__init__": [('PySide2.QtPrintSupport.QPrinter', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtPrintSupport.QPageSetupDialog.done": ('int',),
- "PySide2.QtPrintSupport.QPageSetupDialog.exec_": (),
- "PySide2.QtPrintSupport.QPageSetupDialog.open": [(), ('PySide2.QtCore.QObject', 'str')],
- "PySide2.QtPrintSupport.QPageSetupDialog.printer": (),
-# class PySide2.QtPrintSupport.QPrintDialog:
- "PySide2.QtPrintSupport.QPrintDialog.__init__": [('PySide2.QtPrintSupport.QPrinter', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtPrintSupport.QPrintDialog.accept": (),
- "PySide2.QtPrintSupport.QPrintDialog.done": ('int',),
- "PySide2.QtPrintSupport.QPrintDialog.exec_": (),
- "PySide2.QtPrintSupport.QPrintDialog.open": [(), ('PySide2.QtCore.QObject', 'str')],
- "PySide2.QtPrintSupport.QPrintDialog.options": (),
- "PySide2.QtPrintSupport.QPrintDialog.setOption": ('PySide2.QtPrintSupport.QAbstractPrintDialog.PrintDialogOption', 'bool'),
- "PySide2.QtPrintSupport.QPrintDialog.setOptions": ('PySide2.QtPrintSupport.QAbstractPrintDialog.PrintDialogOptions',),
- "PySide2.QtPrintSupport.QPrintDialog.setVisible": ('bool',),
- "PySide2.QtPrintSupport.QPrintDialog.testOption": ('PySide2.QtPrintSupport.QAbstractPrintDialog.PrintDialogOption',),
-# class PySide2.QtPrintSupport.QPrintEngine:
-# class PySide2.QtPrintSupport.QPrintEngine.PrintEnginePropertyKey:
- "PySide2.QtPrintSupport.QPrintEngine.__init__": (),
- "PySide2.QtPrintSupport.QPrintEngine.abort": (),
- "PySide2.QtPrintSupport.QPrintEngine.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtPrintSupport.QPrintEngine.newPage": (),
- "PySide2.QtPrintSupport.QPrintEngine.printerState": (),
- "PySide2.QtPrintSupport.QPrintEngine.property": ('PySide2.QtPrintSupport.QPrintEngine.PrintEnginePropertyKey',),
- "PySide2.QtPrintSupport.QPrintEngine.setProperty": ('PySide2.QtPrintSupport.QPrintEngine.PrintEnginePropertyKey', 'typing.Any'),
-# class PySide2.QtPrintSupport.QPrintPreviewDialog:
- "PySide2.QtPrintSupport.QPrintPreviewDialog.__init__": [('PySide2.QtPrintSupport.QPrinter', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags')],
- "PySide2.QtPrintSupport.QPrintPreviewDialog.done": ('int',),
- "PySide2.QtPrintSupport.QPrintPreviewDialog.open": [(), ('PySide2.QtCore.QObject', 'str')],
- "PySide2.QtPrintSupport.QPrintPreviewDialog.printer": (),
- "PySide2.QtPrintSupport.QPrintPreviewDialog.setVisible": ('bool',),
-# class PySide2.QtPrintSupport.QPrintPreviewWidget:
-# class PySide2.QtPrintSupport.QPrintPreviewWidget.ViewMode:
-# class PySide2.QtPrintSupport.QPrintPreviewWidget.ZoomMode:
- "PySide2.QtPrintSupport.QPrintPreviewWidget.__init__": [('PySide2.QtPrintSupport.QPrinter', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags')],
- "PySide2.QtPrintSupport.QPrintPreviewWidget.currentPage": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.fitInView": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.fitToWidth": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.orientation": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.pageCount": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.print_": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setAllPagesViewMode": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setCurrentPage": ('int',),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setFacingPagesViewMode": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setLandscapeOrientation": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setOrientation": ('PySide2.QtPrintSupport.QPrinter.Orientation',),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setPortraitOrientation": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setSinglePageViewMode": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setViewMode": ('PySide2.QtPrintSupport.QPrintPreviewWidget.ViewMode',),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setVisible": ('bool',),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setZoomFactor": ('float',),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setZoomMode": ('PySide2.QtPrintSupport.QPrintPreviewWidget.ZoomMode',),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.updatePreview": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.viewMode": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.zoomFactor": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.zoomIn": ('float',),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.zoomMode": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.zoomOut": ('float',),
-# class PySide2.QtPrintSupport.QPrinter:
-# class PySide2.QtPrintSupport.QPrinter.ColorMode:
-# class PySide2.QtPrintSupport.QPrinter.DuplexMode:
-# class PySide2.QtPrintSupport.QPrinter.Orientation:
-# class PySide2.QtPrintSupport.QPrinter.OutputFormat:
-# class PySide2.QtPrintSupport.QPrinter.PageOrder:
-# class PySide2.QtPrintSupport.QPrinter.PaperSource:
-# class PySide2.QtPrintSupport.QPrinter.PrintRange:
-# class PySide2.QtPrintSupport.QPrinter.PrinterMode:
-# class PySide2.QtPrintSupport.QPrinter.PrinterState:
-# class PySide2.QtPrintSupport.QPrinter.Unit:
- "PySide2.QtPrintSupport.QPrinter.__init__": [('PySide2.QtPrintSupport.QPrinter.PrinterMode',), ('PySide2.QtPrintSupport.QPrinterInfo', 'PySide2.QtPrintSupport.QPrinter.PrinterMode')],
- "PySide2.QtPrintSupport.QPrinter.abort": (),
- "PySide2.QtPrintSupport.QPrinter.actualNumCopies": (),
- "PySide2.QtPrintSupport.QPrinter.collateCopies": (),
- "PySide2.QtPrintSupport.QPrinter.colorMode": (),
- "PySide2.QtPrintSupport.QPrinter.copyCount": (),
- "PySide2.QtPrintSupport.QPrinter.creator": (),
- "PySide2.QtPrintSupport.QPrinter.devType": (),
- "PySide2.QtPrintSupport.QPrinter.docName": (),
- "PySide2.QtPrintSupport.QPrinter.doubleSidedPrinting": (),
- "PySide2.QtPrintSupport.QPrinter.duplex": (),
- "PySide2.QtPrintSupport.QPrinter.fontEmbeddingEnabled": (),
- "PySide2.QtPrintSupport.QPrinter.fromPage": (),
- "PySide2.QtPrintSupport.QPrinter.fullPage": (),
- "PySide2.QtPrintSupport.QPrinter.getPageMargins": ('PySide2.QtPrintSupport.QPrinter.Unit',),
- "PySide2.QtPrintSupport.QPrinter.isValid": (),
- "PySide2.QtPrintSupport.QPrinter.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtPrintSupport.QPrinter.newPage": (),
- "PySide2.QtPrintSupport.QPrinter.numCopies": (),
- "PySide2.QtPrintSupport.QPrinter.orientation": (),
- "PySide2.QtPrintSupport.QPrinter.outputFileName": (),
- "PySide2.QtPrintSupport.QPrinter.outputFormat": (),
- "PySide2.QtPrintSupport.QPrinter.pageOrder": (),
- "PySide2.QtPrintSupport.QPrinter.pageRect": [(), ('PySide2.QtPrintSupport.QPrinter.Unit',)],
- "PySide2.QtPrintSupport.QPrinter.pageSize": (),
- "PySide2.QtPrintSupport.QPrinter.paintEngine": (),
- "PySide2.QtPrintSupport.QPrinter.paperName": (),
- "PySide2.QtPrintSupport.QPrinter.paperRect": [(), ('PySide2.QtPrintSupport.QPrinter.Unit',)],
- "PySide2.QtPrintSupport.QPrinter.paperSize": [(), ('PySide2.QtPrintSupport.QPrinter.Unit',)],
- "PySide2.QtPrintSupport.QPrinter.paperSource": (),
- "PySide2.QtPrintSupport.QPrinter.pdfVersion": (),
- "PySide2.QtPrintSupport.QPrinter.printEngine": (),
- "PySide2.QtPrintSupport.QPrinter.printProgram": (),
- "PySide2.QtPrintSupport.QPrinter.printRange": (),
- "PySide2.QtPrintSupport.QPrinter.printerName": (),
- "PySide2.QtPrintSupport.QPrinter.printerState": (),
- "PySide2.QtPrintSupport.QPrinter.resolution": (),
- "PySide2.QtPrintSupport.QPrinter.setCollateCopies": ('bool',),
- "PySide2.QtPrintSupport.QPrinter.setColorMode": ('PySide2.QtPrintSupport.QPrinter.ColorMode',),
- "PySide2.QtPrintSupport.QPrinter.setCopyCount": ('int',),
- "PySide2.QtPrintSupport.QPrinter.setCreator": ('str',),
- "PySide2.QtPrintSupport.QPrinter.setDocName": ('str',),
- "PySide2.QtPrintSupport.QPrinter.setDoubleSidedPrinting": ('bool',),
- "PySide2.QtPrintSupport.QPrinter.setDuplex": ('PySide2.QtPrintSupport.QPrinter.DuplexMode',),
- "PySide2.QtPrintSupport.QPrinter.setEngines": ('PySide2.QtPrintSupport.QPrintEngine', 'PySide2.QtGui.QPaintEngine'),
- "PySide2.QtPrintSupport.QPrinter.setFontEmbeddingEnabled": ('bool',),
- "PySide2.QtPrintSupport.QPrinter.setFromTo": ('int', 'int'),
- "PySide2.QtPrintSupport.QPrinter.setFullPage": ('bool',),
- "PySide2.QtPrintSupport.QPrinter.setMargins": ('PySide2.QtGui.QPagedPaintDevice.Margins',),
- "PySide2.QtPrintSupport.QPrinter.setNumCopies": ('int',),
- "PySide2.QtPrintSupport.QPrinter.setOrientation": ('PySide2.QtPrintSupport.QPrinter.Orientation',),
- "PySide2.QtPrintSupport.QPrinter.setOutputFileName": ('str',),
- "PySide2.QtPrintSupport.QPrinter.setOutputFormat": ('PySide2.QtPrintSupport.QPrinter.OutputFormat',),
- "PySide2.QtPrintSupport.QPrinter.setPageMargins": [('PySide2.QtCore.QMarginsF',), ('float', 'float', 'float', 'float', 'PySide2.QtPrintSupport.QPrinter.Unit')],
- "PySide2.QtPrintSupport.QPrinter.setPageOrder": ('PySide2.QtPrintSupport.QPrinter.PageOrder',),
- "PySide2.QtPrintSupport.QPrinter.setPageSize": [('PySide2.QtGui.QPageSize',), ('PySide2.QtGui.QPagedPaintDevice.PageSize',)],
- "PySide2.QtPrintSupport.QPrinter.setPageSizeMM": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtPrintSupport.QPrinter.setPaperName": ('str',),
- "PySide2.QtPrintSupport.QPrinter.setPaperSize": [('PySide2.QtCore.QSizeF', 'PySide2.QtPrintSupport.QPrinter.Unit'), ('PySide2.QtGui.QPagedPaintDevice.PageSize',)],
- "PySide2.QtPrintSupport.QPrinter.setPaperSource": ('PySide2.QtPrintSupport.QPrinter.PaperSource',),
- "PySide2.QtPrintSupport.QPrinter.setPdfVersion": ('PySide2.QtGui.QPagedPaintDevice.PdfVersion',),
- "PySide2.QtPrintSupport.QPrinter.setPrintProgram": ('str',),
- "PySide2.QtPrintSupport.QPrinter.setPrintRange": ('PySide2.QtPrintSupport.QPrinter.PrintRange',),
- "PySide2.QtPrintSupport.QPrinter.setPrinterName": ('str',),
- "PySide2.QtPrintSupport.QPrinter.setResolution": ('int',),
- "PySide2.QtPrintSupport.QPrinter.setWinPageSize": ('int',),
- "PySide2.QtPrintSupport.QPrinter.supportedResolutions": (),
- "PySide2.QtPrintSupport.QPrinter.supportsMultipleCopies": (),
- "PySide2.QtPrintSupport.QPrinter.toPage": (),
- "PySide2.QtPrintSupport.QPrinter.winPageSize": (),
-# class PySide2.QtPrintSupport.QPrinterInfo:
- "PySide2.QtPrintSupport.QPrinterInfo.__init__": [(), ('PySide2.QtPrintSupport.QPrinter',), ('PySide2.QtPrintSupport.QPrinterInfo',)],
- "PySide2.QtPrintSupport.QPrinterInfo.__copy__": (),
- "PySide2.QtPrintSupport.QPrinterInfo.availablePrinterNames": (),
- "PySide2.QtPrintSupport.QPrinterInfo.availablePrinters": (),
- "PySide2.QtPrintSupport.QPrinterInfo.defaultColorMode": (),
- "PySide2.QtPrintSupport.QPrinterInfo.defaultDuplexMode": (),
- "PySide2.QtPrintSupport.QPrinterInfo.defaultPageSize": (),
- "PySide2.QtPrintSupport.QPrinterInfo.defaultPrinter": (),
- "PySide2.QtPrintSupport.QPrinterInfo.defaultPrinterName": (),
- "PySide2.QtPrintSupport.QPrinterInfo.description": (),
- "PySide2.QtPrintSupport.QPrinterInfo.isDefault": (),
- "PySide2.QtPrintSupport.QPrinterInfo.isNull": (),
- "PySide2.QtPrintSupport.QPrinterInfo.isRemote": (),
- "PySide2.QtPrintSupport.QPrinterInfo.location": (),
- "PySide2.QtPrintSupport.QPrinterInfo.makeAndModel": (),
- "PySide2.QtPrintSupport.QPrinterInfo.maximumPhysicalPageSize": (),
- "PySide2.QtPrintSupport.QPrinterInfo.minimumPhysicalPageSize": (),
- "PySide2.QtPrintSupport.QPrinterInfo.printerInfo": ('str',),
- "PySide2.QtPrintSupport.QPrinterInfo.printerName": (),
- "PySide2.QtPrintSupport.QPrinterInfo.state": (),
- "PySide2.QtPrintSupport.QPrinterInfo.supportedColorModes": (),
- "PySide2.QtPrintSupport.QPrinterInfo.supportedDuplexModes": (),
- "PySide2.QtPrintSupport.QPrinterInfo.supportedPageSizes": (),
- "PySide2.QtPrintSupport.QPrinterInfo.supportedPaperSizes": (),
- "PySide2.QtPrintSupport.QPrinterInfo.supportedResolutions": (),
- "PySide2.QtPrintSupport.QPrinterInfo.supportedSizesWithNames": (),
- "PySide2.QtPrintSupport.QPrinterInfo.supportsCustomPageSizes": (),
- }) if "PySide2.QtPrintSupport" in sys.modules else None
-# Module PySide2.QtSql
-sig_dict.update({
-# class PySide2.QtSql.QSql:
-# class PySide2.QtSql.QSql.Location:
-# class PySide2.QtSql.QSql.NumericalPrecisionPolicy:
-# class PySide2.QtSql.QSql.ParamType:
-# class PySide2.QtSql.QSql.ParamTypeFlag:
-# class PySide2.QtSql.QSql.TableType:
-# class PySide2.QtSql.QSqlDatabase:
- "PySide2.QtSql.QSqlDatabase.__init__": [(), ('PySide2.QtSql.QSqlDatabase',), ('PySide2.QtSql.QSqlDriver',), ('str',)],
- "PySide2.QtSql.QSqlDatabase.__copy__": (),
- "PySide2.QtSql.QSqlDatabase.addDatabase": [('PySide2.QtSql.QSqlDriver', 'str'), ('str', 'str')],
- "PySide2.QtSql.QSqlDatabase.cloneDatabase": [('PySide2.QtSql.QSqlDatabase', 'str'), ('str', 'str')],
- "PySide2.QtSql.QSqlDatabase.close": (),
- "PySide2.QtSql.QSqlDatabase.commit": (),
- "PySide2.QtSql.QSqlDatabase.connectOptions": (),
- "PySide2.QtSql.QSqlDatabase.connectionName": (),
- "PySide2.QtSql.QSqlDatabase.connectionNames": (),
- "PySide2.QtSql.QSqlDatabase.contains": ('str',),
- "PySide2.QtSql.QSqlDatabase.database": ('str', 'bool'),
- "PySide2.QtSql.QSqlDatabase.databaseName": (),
- "PySide2.QtSql.QSqlDatabase.driver": (),
- "PySide2.QtSql.QSqlDatabase.driverName": (),
- "PySide2.QtSql.QSqlDatabase.drivers": (),
- "PySide2.QtSql.QSqlDatabase.exec_": ('str',),
- "PySide2.QtSql.QSqlDatabase.hostName": (),
- "PySide2.QtSql.QSqlDatabase.isDriverAvailable": ('str',),
- "PySide2.QtSql.QSqlDatabase.isOpen": (),
- "PySide2.QtSql.QSqlDatabase.isOpenError": (),
- "PySide2.QtSql.QSqlDatabase.isValid": (),
- "PySide2.QtSql.QSqlDatabase.lastError": (),
- "PySide2.QtSql.QSqlDatabase.numericalPrecisionPolicy": (),
- "PySide2.QtSql.QSqlDatabase.open": [(), ('str', 'str')],
- "PySide2.QtSql.QSqlDatabase.password": (),
- "PySide2.QtSql.QSqlDatabase.port": (),
- "PySide2.QtSql.QSqlDatabase.primaryIndex": ('str',),
- "PySide2.QtSql.QSqlDatabase.record": ('str',),
- "PySide2.QtSql.QSqlDatabase.registerSqlDriver": ('str', 'PySide2.QtSql.QSqlDriverCreatorBase'),
- "PySide2.QtSql.QSqlDatabase.removeDatabase": ('str',),
- "PySide2.QtSql.QSqlDatabase.rollback": (),
- "PySide2.QtSql.QSqlDatabase.setConnectOptions": ('str',),
- "PySide2.QtSql.QSqlDatabase.setDatabaseName": ('str',),
- "PySide2.QtSql.QSqlDatabase.setHostName": ('str',),
- "PySide2.QtSql.QSqlDatabase.setNumericalPrecisionPolicy": ('PySide2.QtSql.QSql.NumericalPrecisionPolicy',),
- "PySide2.QtSql.QSqlDatabase.setPassword": ('str',),
- "PySide2.QtSql.QSqlDatabase.setPort": ('int',),
- "PySide2.QtSql.QSqlDatabase.setUserName": ('str',),
- "PySide2.QtSql.QSqlDatabase.tables": ('PySide2.QtSql.QSql.TableType',),
- "PySide2.QtSql.QSqlDatabase.transaction": (),
- "PySide2.QtSql.QSqlDatabase.userName": (),
-# class PySide2.QtSql.QSqlDriver:
-# class PySide2.QtSql.QSqlDriver.DbmsType:
-# class PySide2.QtSql.QSqlDriver.DriverFeature:
-# class PySide2.QtSql.QSqlDriver.IdentifierType:
-# class PySide2.QtSql.QSqlDriver.NotificationSource:
-# class PySide2.QtSql.QSqlDriver.StatementType:
- "PySide2.QtSql.QSqlDriver.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSql.QSqlDriver.beginTransaction": (),
- "PySide2.QtSql.QSqlDriver.cancelQuery": (),
- "PySide2.QtSql.QSqlDriver.close": (),
- "PySide2.QtSql.QSqlDriver.commitTransaction": (),
- "PySide2.QtSql.QSqlDriver.createResult": (),
- "PySide2.QtSql.QSqlDriver.dbmsType": (),
- "PySide2.QtSql.QSqlDriver.escapeIdentifier": ('str', 'PySide2.QtSql.QSqlDriver.IdentifierType'),
- "PySide2.QtSql.QSqlDriver.formatValue": ('PySide2.QtSql.QSqlField', 'bool'),
- "PySide2.QtSql.QSqlDriver.hasFeature": ('PySide2.QtSql.QSqlDriver.DriverFeature',),
- "PySide2.QtSql.QSqlDriver.isIdentifierEscaped": ('str', 'PySide2.QtSql.QSqlDriver.IdentifierType'),
- "PySide2.QtSql.QSqlDriver.isOpen": (),
- "PySide2.QtSql.QSqlDriver.isOpenError": (),
- "PySide2.QtSql.QSqlDriver.lastError": (),
- "PySide2.QtSql.QSqlDriver.numericalPrecisionPolicy": (),
- "PySide2.QtSql.QSqlDriver.open": ('str', 'str', 'str', 'str', 'int', 'str'),
- "PySide2.QtSql.QSqlDriver.primaryIndex": ('str',),
- "PySide2.QtSql.QSqlDriver.record": ('str',),
- "PySide2.QtSql.QSqlDriver.rollbackTransaction": (),
- "PySide2.QtSql.QSqlDriver.setLastError": ('PySide2.QtSql.QSqlError',),
- "PySide2.QtSql.QSqlDriver.setNumericalPrecisionPolicy": ('PySide2.QtSql.QSql.NumericalPrecisionPolicy',),
- "PySide2.QtSql.QSqlDriver.setOpen": ('bool',),
- "PySide2.QtSql.QSqlDriver.setOpenError": ('bool',),
- "PySide2.QtSql.QSqlDriver.sqlStatement": ('PySide2.QtSql.QSqlDriver.StatementType', 'str', 'PySide2.QtSql.QSqlRecord', 'bool'),
- "PySide2.QtSql.QSqlDriver.stripDelimiters": ('str', 'PySide2.QtSql.QSqlDriver.IdentifierType'),
- "PySide2.QtSql.QSqlDriver.subscribeToNotification": ('str',),
- "PySide2.QtSql.QSqlDriver.subscribedToNotifications": (),
- "PySide2.QtSql.QSqlDriver.tables": ('PySide2.QtSql.QSql.TableType',),
- "PySide2.QtSql.QSqlDriver.unsubscribeFromNotification": ('str',),
-# class PySide2.QtSql.QSqlDriverCreatorBase:
- "PySide2.QtSql.QSqlDriverCreatorBase.__init__": (),
- "PySide2.QtSql.QSqlDriverCreatorBase.createObject": (),
-# class PySide2.QtSql.QSqlError:
-# class PySide2.QtSql.QSqlError.ErrorType:
- "PySide2.QtSql.QSqlError.__init__": [('PySide2.QtSql.QSqlError',), ('str', 'str', 'PySide2.QtSql.QSqlError.ErrorType', 'int'), ('str', 'str', 'PySide2.QtSql.QSqlError.ErrorType', 'str')],
- "PySide2.QtSql.QSqlError.__copy__": (),
- "PySide2.QtSql.QSqlError.databaseText": (),
- "PySide2.QtSql.QSqlError.driverText": (),
- "PySide2.QtSql.QSqlError.isValid": (),
- "PySide2.QtSql.QSqlError.nativeErrorCode": (),
- "PySide2.QtSql.QSqlError.number": (),
- "PySide2.QtSql.QSqlError.setDatabaseText": ('str',),
- "PySide2.QtSql.QSqlError.setDriverText": ('str',),
- "PySide2.QtSql.QSqlError.setNumber": ('int',),
- "PySide2.QtSql.QSqlError.setType": ('PySide2.QtSql.QSqlError.ErrorType',),
- "PySide2.QtSql.QSqlError.swap": ('PySide2.QtSql.QSqlError',),
- "PySide2.QtSql.QSqlError.text": (),
- "PySide2.QtSql.QSqlError.type": (),
-# class PySide2.QtSql.QSqlField:
-# class PySide2.QtSql.QSqlField.RequiredStatus:
- "PySide2.QtSql.QSqlField.__init__": [('PySide2.QtSql.QSqlField',), ('str', 'type'), ('str', 'type', 'str')],
- "PySide2.QtSql.QSqlField.__copy__": (),
- "PySide2.QtSql.QSqlField.clear": (),
- "PySide2.QtSql.QSqlField.defaultValue": (),
- "PySide2.QtSql.QSqlField.isAutoValue": (),
- "PySide2.QtSql.QSqlField.isGenerated": (),
- "PySide2.QtSql.QSqlField.isNull": (),
- "PySide2.QtSql.QSqlField.isReadOnly": (),
- "PySide2.QtSql.QSqlField.isValid": (),
- "PySide2.QtSql.QSqlField.length": (),
- "PySide2.QtSql.QSqlField.name": (),
- "PySide2.QtSql.QSqlField.precision": (),
- "PySide2.QtSql.QSqlField.requiredStatus": (),
- "PySide2.QtSql.QSqlField.setAutoValue": ('bool',),
- "PySide2.QtSql.QSqlField.setDefaultValue": ('typing.Any',),
- "PySide2.QtSql.QSqlField.setGenerated": ('bool',),
- "PySide2.QtSql.QSqlField.setLength": ('int',),
- "PySide2.QtSql.QSqlField.setName": ('str',),
- "PySide2.QtSql.QSqlField.setPrecision": ('int',),
- "PySide2.QtSql.QSqlField.setReadOnly": ('bool',),
- "PySide2.QtSql.QSqlField.setRequired": ('bool',),
- "PySide2.QtSql.QSqlField.setRequiredStatus": ('PySide2.QtSql.QSqlField.RequiredStatus',),
- "PySide2.QtSql.QSqlField.setSqlType": ('int',),
- "PySide2.QtSql.QSqlField.setTableName": ('str',),
- "PySide2.QtSql.QSqlField.setType": ('type',),
- "PySide2.QtSql.QSqlField.setValue": ('typing.Any',),
- "PySide2.QtSql.QSqlField.tableName": (),
- "PySide2.QtSql.QSqlField.type": (),
- "PySide2.QtSql.QSqlField.typeID": (),
- "PySide2.QtSql.QSqlField.value": (),
-# class PySide2.QtSql.QSqlIndex:
- "PySide2.QtSql.QSqlIndex.__init__": [('PySide2.QtSql.QSqlIndex',), ('str', 'str')],
- "PySide2.QtSql.QSqlIndex.__copy__": (),
- "PySide2.QtSql.QSqlIndex.append": [('PySide2.QtSql.QSqlField',), ('PySide2.QtSql.QSqlField', 'bool')],
- "PySide2.QtSql.QSqlIndex.cursorName": (),
- "PySide2.QtSql.QSqlIndex.isDescending": ('int',),
- "PySide2.QtSql.QSqlIndex.name": (),
- "PySide2.QtSql.QSqlIndex.setCursorName": ('str',),
- "PySide2.QtSql.QSqlIndex.setDescending": ('int', 'bool'),
- "PySide2.QtSql.QSqlIndex.setName": ('str',),
-# class PySide2.QtSql.QSqlQuery:
-# class PySide2.QtSql.QSqlQuery.BatchExecutionMode:
- "PySide2.QtSql.QSqlQuery.__init__": [('PySide2.QtSql.QSqlDatabase',), ('PySide2.QtSql.QSqlQuery',), ('PySide2.QtSql.QSqlResult',), ('str', 'PySide2.QtSql.QSqlDatabase')],
- "PySide2.QtSql.QSqlQuery.__copy__": (),
- "PySide2.QtSql.QSqlQuery.addBindValue": ('typing.Any', 'PySide2.QtSql.QSql.ParamType'),
- "PySide2.QtSql.QSqlQuery.at": (),
- "PySide2.QtSql.QSqlQuery.bindValue": [('int', 'typing.Any', 'PySide2.QtSql.QSql.ParamType'), ('str', 'typing.Any', 'PySide2.QtSql.QSql.ParamType')],
- "PySide2.QtSql.QSqlQuery.boundValue": [('int',), ('str',)],
- "PySide2.QtSql.QSqlQuery.boundValues": (),
- "PySide2.QtSql.QSqlQuery.clear": (),
- "PySide2.QtSql.QSqlQuery.driver": (),
- "PySide2.QtSql.QSqlQuery.execBatch": ('PySide2.QtSql.QSqlQuery.BatchExecutionMode',),
- "PySide2.QtSql.QSqlQuery.exec_": [(), ('str',)],
- "PySide2.QtSql.QSqlQuery.executedQuery": (),
- "PySide2.QtSql.QSqlQuery.finish": (),
- "PySide2.QtSql.QSqlQuery.first": (),
- "PySide2.QtSql.QSqlQuery.isActive": (),
- "PySide2.QtSql.QSqlQuery.isForwardOnly": (),
- "PySide2.QtSql.QSqlQuery.isNull": [('int',), ('str',)],
- "PySide2.QtSql.QSqlQuery.isSelect": (),
- "PySide2.QtSql.QSqlQuery.isValid": (),
- "PySide2.QtSql.QSqlQuery.last": (),
- "PySide2.QtSql.QSqlQuery.lastError": (),
- "PySide2.QtSql.QSqlQuery.lastInsertId": (),
- "PySide2.QtSql.QSqlQuery.lastQuery": (),
- "PySide2.QtSql.QSqlQuery.nextResult": (),
- "PySide2.QtSql.QSqlQuery.numRowsAffected": (),
- "PySide2.QtSql.QSqlQuery.numericalPrecisionPolicy": (),
- "PySide2.QtSql.QSqlQuery.prepare": ('str',),
- "PySide2.QtSql.QSqlQuery.previous": (),
- "PySide2.QtSql.QSqlQuery.record": (),
- "PySide2.QtSql.QSqlQuery.result": (),
- "PySide2.QtSql.QSqlQuery.seek": ('int', 'bool'),
- "PySide2.QtSql.QSqlQuery.setForwardOnly": ('bool',),
- "PySide2.QtSql.QSqlQuery.setNumericalPrecisionPolicy": ('PySide2.QtSql.QSql.NumericalPrecisionPolicy',),
- "PySide2.QtSql.QSqlQuery.size": (),
- "PySide2.QtSql.QSqlQuery.value": [('int',), ('str',)],
-# class PySide2.QtSql.QSqlQueryModel:
- "PySide2.QtSql.QSqlQueryModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSql.QSqlQueryModel.beginInsertColumns": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtSql.QSqlQueryModel.beginInsertRows": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtSql.QSqlQueryModel.beginRemoveColumns": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtSql.QSqlQueryModel.beginRemoveRows": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtSql.QSqlQueryModel.beginResetModel": (),
- "PySide2.QtSql.QSqlQueryModel.canFetchMore": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtSql.QSqlQueryModel.clear": (),
- "PySide2.QtSql.QSqlQueryModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtSql.QSqlQueryModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtSql.QSqlQueryModel.endInsertColumns": (),
- "PySide2.QtSql.QSqlQueryModel.endInsertRows": (),
- "PySide2.QtSql.QSqlQueryModel.endRemoveColumns": (),
- "PySide2.QtSql.QSqlQueryModel.endRemoveRows": (),
- "PySide2.QtSql.QSqlQueryModel.endResetModel": (),
- "PySide2.QtSql.QSqlQueryModel.fetchMore": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtSql.QSqlQueryModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtSql.QSqlQueryModel.indexInQuery": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtSql.QSqlQueryModel.insertColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtSql.QSqlQueryModel.lastError": (),
- "PySide2.QtSql.QSqlQueryModel.query": (),
- "PySide2.QtSql.QSqlQueryModel.queryChange": (),
- "PySide2.QtSql.QSqlQueryModel.record": [(), ('int',)],
- "PySide2.QtSql.QSqlQueryModel.removeColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtSql.QSqlQueryModel.roleNames": (),
- "PySide2.QtSql.QSqlQueryModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtSql.QSqlQueryModel.setHeaderData": ('int', 'PySide2.QtCore.Qt.Orientation', 'typing.Any', 'int'),
- "PySide2.QtSql.QSqlQueryModel.setLastError": ('PySide2.QtSql.QSqlError',),
- "PySide2.QtSql.QSqlQueryModel.setQuery": [('PySide2.QtSql.QSqlQuery',), ('str', 'PySide2.QtSql.QSqlDatabase')],
-# class PySide2.QtSql.QSqlRecord:
- "PySide2.QtSql.QSqlRecord.__init__": [(), ('PySide2.QtSql.QSqlRecord',)],
- "PySide2.QtSql.QSqlRecord.__copy__": (),
- "PySide2.QtSql.QSqlRecord.append": ('PySide2.QtSql.QSqlField',),
- "PySide2.QtSql.QSqlRecord.clear": (),
- "PySide2.QtSql.QSqlRecord.clearValues": (),
- "PySide2.QtSql.QSqlRecord.contains": ('str',),
- "PySide2.QtSql.QSqlRecord.count": (),
- "PySide2.QtSql.QSqlRecord.field": [('int',), ('str',)],
- "PySide2.QtSql.QSqlRecord.fieldName": ('int',),
- "PySide2.QtSql.QSqlRecord.indexOf": ('str',),
- "PySide2.QtSql.QSqlRecord.insert": ('int', 'PySide2.QtSql.QSqlField'),
- "PySide2.QtSql.QSqlRecord.isEmpty": (),
- "PySide2.QtSql.QSqlRecord.isGenerated": [('int',), ('str',)],
- "PySide2.QtSql.QSqlRecord.isNull": [('int',), ('str',)],
- "PySide2.QtSql.QSqlRecord.keyValues": ('PySide2.QtSql.QSqlRecord',),
- "PySide2.QtSql.QSqlRecord.remove": ('int',),
- "PySide2.QtSql.QSqlRecord.replace": ('int', 'PySide2.QtSql.QSqlField'),
- "PySide2.QtSql.QSqlRecord.setGenerated": [('int', 'bool'), ('str', 'bool')],
- "PySide2.QtSql.QSqlRecord.setNull": [('int',), ('str',)],
- "PySide2.QtSql.QSqlRecord.setValue": [('int', 'typing.Any'), ('str', 'typing.Any')],
- "PySide2.QtSql.QSqlRecord.value": [('int',), ('str',)],
-# class PySide2.QtSql.QSqlRelation:
- "PySide2.QtSql.QSqlRelation.__init__": [(), ('PySide2.QtSql.QSqlRelation',), ('str', 'str', 'str')],
- "PySide2.QtSql.QSqlRelation.__copy__": (),
- "PySide2.QtSql.QSqlRelation.displayColumn": (),
- "PySide2.QtSql.QSqlRelation.indexColumn": (),
- "PySide2.QtSql.QSqlRelation.isValid": (),
- "PySide2.QtSql.QSqlRelation.swap": ('PySide2.QtSql.QSqlRelation',),
- "PySide2.QtSql.QSqlRelation.tableName": (),
-# class PySide2.QtSql.QSqlRelationalDelegate:
- "PySide2.QtSql.QSqlRelationalDelegate.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSql.QSqlRelationalDelegate.createEditor": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtSql.QSqlRelationalDelegate.setEditorData": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtSql.QSqlRelationalDelegate.setModelData": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QAbstractItemModel', 'PySide2.QtCore.QModelIndex'),
-# class PySide2.QtSql.QSqlRelationalTableModel:
-# class PySide2.QtSql.QSqlRelationalTableModel.JoinMode:
- "PySide2.QtSql.QSqlRelationalTableModel.__init__": ('PySide2.QtCore.QObject', 'PySide2.QtSql.QSqlDatabase'),
- "PySide2.QtSql.QSqlRelationalTableModel.clear": (),
- "PySide2.QtSql.QSqlRelationalTableModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtSql.QSqlRelationalTableModel.insertRowIntoTable": ('PySide2.QtSql.QSqlRecord',),
- "PySide2.QtSql.QSqlRelationalTableModel.orderByClause": (),
- "PySide2.QtSql.QSqlRelationalTableModel.relation": ('int',),
- "PySide2.QtSql.QSqlRelationalTableModel.relationModel": ('int',),
- "PySide2.QtSql.QSqlRelationalTableModel.removeColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtSql.QSqlRelationalTableModel.revertRow": ('int',),
- "PySide2.QtSql.QSqlRelationalTableModel.select": (),
- "PySide2.QtSql.QSqlRelationalTableModel.selectStatement": (),
- "PySide2.QtSql.QSqlRelationalTableModel.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
- "PySide2.QtSql.QSqlRelationalTableModel.setJoinMode": ('PySide2.QtSql.QSqlRelationalTableModel.JoinMode',),
- "PySide2.QtSql.QSqlRelationalTableModel.setRelation": ('int', 'PySide2.QtSql.QSqlRelation'),
- "PySide2.QtSql.QSqlRelationalTableModel.setTable": ('str',),
- "PySide2.QtSql.QSqlRelationalTableModel.updateRowInTable": ('int', 'PySide2.QtSql.QSqlRecord'),
-# class PySide2.QtSql.QSqlResult:
-# class PySide2.QtSql.QSqlResult.BindingSyntax:
- "PySide2.QtSql.QSqlResult.__init__": ('PySide2.QtSql.QSqlDriver',),
- "PySide2.QtSql.QSqlResult.addBindValue": ('typing.Any', 'PySide2.QtSql.QSql.ParamType'),
- "PySide2.QtSql.QSqlResult.at": (),
- "PySide2.QtSql.QSqlResult.bindValue": [('int', 'typing.Any', 'PySide2.QtSql.QSql.ParamType'), ('str', 'typing.Any', 'PySide2.QtSql.QSql.ParamType')],
- "PySide2.QtSql.QSqlResult.bindValueType": [('int',), ('str',)],
- "PySide2.QtSql.QSqlResult.bindingSyntax": (),
- "PySide2.QtSql.QSqlResult.boundValue": [('int',), ('str',)],
- "PySide2.QtSql.QSqlResult.boundValueCount": (),
- "PySide2.QtSql.QSqlResult.boundValueName": ('int',),
- "PySide2.QtSql.QSqlResult.boundValues": (),
- "PySide2.QtSql.QSqlResult.clear": (),
- "PySide2.QtSql.QSqlResult.data": ('int',),
- "PySide2.QtSql.QSqlResult.detachFromResultSet": (),
- "PySide2.QtSql.QSqlResult.driver": (),
- "PySide2.QtSql.QSqlResult.execBatch": ('bool',),
- "PySide2.QtSql.QSqlResult.exec_": (),
- "PySide2.QtSql.QSqlResult.executedQuery": (),
- "PySide2.QtSql.QSqlResult.fetch": ('int',),
- "PySide2.QtSql.QSqlResult.fetchFirst": (),
- "PySide2.QtSql.QSqlResult.fetchLast": (),
- "PySide2.QtSql.QSqlResult.fetchNext": (),
- "PySide2.QtSql.QSqlResult.fetchPrevious": (),
- "PySide2.QtSql.QSqlResult.handle": (),
- "PySide2.QtSql.QSqlResult.hasOutValues": (),
- "PySide2.QtSql.QSqlResult.isActive": (),
- "PySide2.QtSql.QSqlResult.isForwardOnly": (),
- "PySide2.QtSql.QSqlResult.isNull": ('int',),
- "PySide2.QtSql.QSqlResult.isSelect": (),
- "PySide2.QtSql.QSqlResult.isValid": (),
- "PySide2.QtSql.QSqlResult.lastError": (),
- "PySide2.QtSql.QSqlResult.lastInsertId": (),
- "PySide2.QtSql.QSqlResult.lastQuery": (),
- "PySide2.QtSql.QSqlResult.nextResult": (),
- "PySide2.QtSql.QSqlResult.numRowsAffected": (),
- "PySide2.QtSql.QSqlResult.numericalPrecisionPolicy": (),
- "PySide2.QtSql.QSqlResult.prepare": ('str',),
- "PySide2.QtSql.QSqlResult.record": (),
- "PySide2.QtSql.QSqlResult.reset": ('str',),
- "PySide2.QtSql.QSqlResult.resetBindCount": (),
- "PySide2.QtSql.QSqlResult.savePrepare": ('str',),
- "PySide2.QtSql.QSqlResult.setActive": ('bool',),
- "PySide2.QtSql.QSqlResult.setAt": ('int',),
- "PySide2.QtSql.QSqlResult.setForwardOnly": ('bool',),
- "PySide2.QtSql.QSqlResult.setLastError": ('PySide2.QtSql.QSqlError',),
- "PySide2.QtSql.QSqlResult.setNumericalPrecisionPolicy": ('PySide2.QtSql.QSql.NumericalPrecisionPolicy',),
- "PySide2.QtSql.QSqlResult.setQuery": ('str',),
- "PySide2.QtSql.QSqlResult.setSelect": ('bool',),
- "PySide2.QtSql.QSqlResult.size": (),
-# class PySide2.QtSql.QSqlTableModel:
-# class PySide2.QtSql.QSqlTableModel.EditStrategy:
- "PySide2.QtSql.QSqlTableModel.__init__": ('PySide2.QtCore.QObject', 'PySide2.QtSql.QSqlDatabase'),
- "PySide2.QtSql.QSqlTableModel.clear": (),
- "PySide2.QtSql.QSqlTableModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtSql.QSqlTableModel.database": (),
- "PySide2.QtSql.QSqlTableModel.deleteRowFromTable": ('int',),
- "PySide2.QtSql.QSqlTableModel.editStrategy": (),
- "PySide2.QtSql.QSqlTableModel.fieldIndex": ('str',),
- "PySide2.QtSql.QSqlTableModel.filter": (),
- "PySide2.QtSql.QSqlTableModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtSql.QSqlTableModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtSql.QSqlTableModel.indexInQuery": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtSql.QSqlTableModel.insertRecord": ('int', 'PySide2.QtSql.QSqlRecord'),
- "PySide2.QtSql.QSqlTableModel.insertRowIntoTable": ('PySide2.QtSql.QSqlRecord',),
- "PySide2.QtSql.QSqlTableModel.insertRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtSql.QSqlTableModel.isDirty": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtSql.QSqlTableModel.orderByClause": (),
- "PySide2.QtSql.QSqlTableModel.primaryKey": (),
- "PySide2.QtSql.QSqlTableModel.primaryValues": ('int',),
- "PySide2.QtSql.QSqlTableModel.record": [(), ('int',)],
- "PySide2.QtSql.QSqlTableModel.removeColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtSql.QSqlTableModel.removeRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtSql.QSqlTableModel.revert": (),
- "PySide2.QtSql.QSqlTableModel.revertAll": (),
- "PySide2.QtSql.QSqlTableModel.revertRow": ('int',),
- "PySide2.QtSql.QSqlTableModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtSql.QSqlTableModel.select": (),
- "PySide2.QtSql.QSqlTableModel.selectRow": ('int',),
- "PySide2.QtSql.QSqlTableModel.selectStatement": (),
- "PySide2.QtSql.QSqlTableModel.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
- "PySide2.QtSql.QSqlTableModel.setEditStrategy": ('PySide2.QtSql.QSqlTableModel.EditStrategy',),
- "PySide2.QtSql.QSqlTableModel.setFilter": ('str',),
- "PySide2.QtSql.QSqlTableModel.setPrimaryKey": ('PySide2.QtSql.QSqlIndex',),
- "PySide2.QtSql.QSqlTableModel.setQuery": ('PySide2.QtSql.QSqlQuery',),
- "PySide2.QtSql.QSqlTableModel.setRecord": ('int', 'PySide2.QtSql.QSqlRecord'),
- "PySide2.QtSql.QSqlTableModel.setSort": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtSql.QSqlTableModel.setTable": ('str',),
- "PySide2.QtSql.QSqlTableModel.sort": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtSql.QSqlTableModel.submit": (),
- "PySide2.QtSql.QSqlTableModel.submitAll": (),
- "PySide2.QtSql.QSqlTableModel.tableName": (),
- "PySide2.QtSql.QSqlTableModel.updateRowInTable": ('int', 'PySide2.QtSql.QSqlRecord'),
- }) if "PySide2.QtSql" in sys.modules else None
-# Module PySide2.QtNetwork
-sig_dict.update({
-# class PySide2.QtNetwork.QAbstractNetworkCache:
- "PySide2.QtNetwork.QAbstractNetworkCache.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QAbstractNetworkCache.cacheSize": (),
- "PySide2.QtNetwork.QAbstractNetworkCache.clear": (),
- "PySide2.QtNetwork.QAbstractNetworkCache.data": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QAbstractNetworkCache.insert": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtNetwork.QAbstractNetworkCache.metaData": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QAbstractNetworkCache.prepare": ('PySide2.QtNetwork.QNetworkCacheMetaData',),
- "PySide2.QtNetwork.QAbstractNetworkCache.remove": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QAbstractNetworkCache.updateMetaData": ('PySide2.QtNetwork.QNetworkCacheMetaData',),
-# class PySide2.QtNetwork.QAbstractSocket:
-# class PySide2.QtNetwork.QAbstractSocket.BindFlag:
-# class PySide2.QtNetwork.QAbstractSocket.BindMode:
-# class PySide2.QtNetwork.QAbstractSocket.NetworkLayerProtocol:
-# class PySide2.QtNetwork.QAbstractSocket.PauseMode:
-# class PySide2.QtNetwork.QAbstractSocket.PauseModes:
-# class PySide2.QtNetwork.QAbstractSocket.SocketError:
-# class PySide2.QtNetwork.QAbstractSocket.SocketOption:
-# class PySide2.QtNetwork.QAbstractSocket.SocketState:
-# class PySide2.QtNetwork.QAbstractSocket.SocketType:
- "PySide2.QtNetwork.QAbstractSocket.__init__": ('PySide2.QtNetwork.QAbstractSocket.SocketType', 'PySide2.QtCore.QObject'),
- "PySide2.QtNetwork.QAbstractSocket.abort": (),
- "PySide2.QtNetwork.QAbstractSocket.atEnd": (),
- "PySide2.QtNetwork.QAbstractSocket.bind": [('PySide2.QtNetwork.QHostAddress', 'int', 'PySide2.QtNetwork.QAbstractSocket.BindMode'), ('int', 'PySide2.QtNetwork.QAbstractSocket.BindMode')],
- "PySide2.QtNetwork.QAbstractSocket.bytesAvailable": (),
- "PySide2.QtNetwork.QAbstractSocket.bytesToWrite": (),
- "PySide2.QtNetwork.QAbstractSocket.canReadLine": (),
- "PySide2.QtNetwork.QAbstractSocket.close": (),
- "PySide2.QtNetwork.QAbstractSocket.connectToHost": [('PySide2.QtNetwork.QHostAddress', 'int', 'PySide2.QtCore.QIODevice.OpenMode'), ('str', 'int', 'PySide2.QtCore.QIODevice.OpenMode', 'PySide2.QtNetwork.QAbstractSocket.NetworkLayerProtocol')],
- "PySide2.QtNetwork.QAbstractSocket.disconnectFromHost": (),
- "PySide2.QtNetwork.QAbstractSocket.error": (),
- "PySide2.QtNetwork.QAbstractSocket.flush": (),
- "PySide2.QtNetwork.QAbstractSocket.isSequential": (),
- "PySide2.QtNetwork.QAbstractSocket.isValid": (),
- "PySide2.QtNetwork.QAbstractSocket.localAddress": (),
- "PySide2.QtNetwork.QAbstractSocket.localPort": (),
- "PySide2.QtNetwork.QAbstractSocket.pauseMode": (),
- "PySide2.QtNetwork.QAbstractSocket.peerAddress": (),
- "PySide2.QtNetwork.QAbstractSocket.peerName": (),
- "PySide2.QtNetwork.QAbstractSocket.peerPort": (),
- "PySide2.QtNetwork.QAbstractSocket.protocolTag": (),
- "PySide2.QtNetwork.QAbstractSocket.proxy": (),
- "PySide2.QtNetwork.QAbstractSocket.readBufferSize": (),
- "PySide2.QtNetwork.QAbstractSocket.readData": ('str', 'int'),
- "PySide2.QtNetwork.QAbstractSocket.readLineData": ('str', 'int'),
- "PySide2.QtNetwork.QAbstractSocket.resume": (),
- "PySide2.QtNetwork.QAbstractSocket.setLocalAddress": ('PySide2.QtNetwork.QHostAddress',),
- "PySide2.QtNetwork.QAbstractSocket.setLocalPort": ('int',),
- "PySide2.QtNetwork.QAbstractSocket.setPauseMode": ('PySide2.QtNetwork.QAbstractSocket.PauseModes',),
- "PySide2.QtNetwork.QAbstractSocket.setPeerAddress": ('PySide2.QtNetwork.QHostAddress',),
- "PySide2.QtNetwork.QAbstractSocket.setPeerName": ('str',),
- "PySide2.QtNetwork.QAbstractSocket.setPeerPort": ('int',),
- "PySide2.QtNetwork.QAbstractSocket.setProtocolTag": ('str',),
- "PySide2.QtNetwork.QAbstractSocket.setProxy": ('PySide2.QtNetwork.QNetworkProxy',),
- "PySide2.QtNetwork.QAbstractSocket.setReadBufferSize": ('int',),
- "PySide2.QtNetwork.QAbstractSocket.setSocketDescriptor": ('int', 'PySide2.QtNetwork.QAbstractSocket.SocketState', 'PySide2.QtCore.QIODevice.OpenMode'),
- "PySide2.QtNetwork.QAbstractSocket.setSocketError": ('PySide2.QtNetwork.QAbstractSocket.SocketError',),
- "PySide2.QtNetwork.QAbstractSocket.setSocketOption": ('PySide2.QtNetwork.QAbstractSocket.SocketOption', 'typing.Any'),
- "PySide2.QtNetwork.QAbstractSocket.setSocketState": ('PySide2.QtNetwork.QAbstractSocket.SocketState',),
- "PySide2.QtNetwork.QAbstractSocket.socketDescriptor": (),
- "PySide2.QtNetwork.QAbstractSocket.socketOption": ('PySide2.QtNetwork.QAbstractSocket.SocketOption',),
- "PySide2.QtNetwork.QAbstractSocket.socketType": (),
- "PySide2.QtNetwork.QAbstractSocket.state": (),
- "PySide2.QtNetwork.QAbstractSocket.waitForBytesWritten": ('int',),
- "PySide2.QtNetwork.QAbstractSocket.waitForConnected": ('int',),
- "PySide2.QtNetwork.QAbstractSocket.waitForDisconnected": ('int',),
- "PySide2.QtNetwork.QAbstractSocket.waitForReadyRead": ('int',),
- "PySide2.QtNetwork.QAbstractSocket.writeData": ('str', 'int'),
-# class PySide2.QtNetwork.QAuthenticator:
- "PySide2.QtNetwork.QAuthenticator.__init__": [(), ('PySide2.QtNetwork.QAuthenticator',)],
- "PySide2.QtNetwork.QAuthenticator.__copy__": (),
- "PySide2.QtNetwork.QAuthenticator.isNull": (),
- "PySide2.QtNetwork.QAuthenticator.option": ('str',),
- "PySide2.QtNetwork.QAuthenticator.options": (),
- "PySide2.QtNetwork.QAuthenticator.password": (),
- "PySide2.QtNetwork.QAuthenticator.realm": (),
- "PySide2.QtNetwork.QAuthenticator.setOption": ('str', 'typing.Any'),
- "PySide2.QtNetwork.QAuthenticator.setPassword": ('str',),
- "PySide2.QtNetwork.QAuthenticator.setRealm": ('str',),
- "PySide2.QtNetwork.QAuthenticator.setUser": ('str',),
- "PySide2.QtNetwork.QAuthenticator.user": (),
-# class PySide2.QtNetwork.QDnsDomainNameRecord:
- "PySide2.QtNetwork.QDnsDomainNameRecord.__init__": [(), ('PySide2.QtNetwork.QDnsDomainNameRecord',)],
- "PySide2.QtNetwork.QDnsDomainNameRecord.__copy__": (),
- "PySide2.QtNetwork.QDnsDomainNameRecord.name": (),
- "PySide2.QtNetwork.QDnsDomainNameRecord.swap": ('PySide2.QtNetwork.QDnsDomainNameRecord',),
- "PySide2.QtNetwork.QDnsDomainNameRecord.timeToLive": (),
- "PySide2.QtNetwork.QDnsDomainNameRecord.value": (),
-# class PySide2.QtNetwork.QDnsHostAddressRecord:
- "PySide2.QtNetwork.QDnsHostAddressRecord.__init__": [(), ('PySide2.QtNetwork.QDnsHostAddressRecord',)],
- "PySide2.QtNetwork.QDnsHostAddressRecord.__copy__": (),
- "PySide2.QtNetwork.QDnsHostAddressRecord.name": (),
- "PySide2.QtNetwork.QDnsHostAddressRecord.swap": ('PySide2.QtNetwork.QDnsHostAddressRecord',),
- "PySide2.QtNetwork.QDnsHostAddressRecord.timeToLive": (),
- "PySide2.QtNetwork.QDnsHostAddressRecord.value": (),
-# class PySide2.QtNetwork.QDnsLookup:
-# class PySide2.QtNetwork.QDnsLookup.Error:
-# class PySide2.QtNetwork.QDnsLookup.Type:
- "PySide2.QtNetwork.QDnsLookup.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtNetwork.QDnsLookup.Type', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtNetwork.QDnsLookup.Type', 'str', 'PySide2.QtNetwork.QHostAddress', 'PySide2.QtCore.QObject')],
- "PySide2.QtNetwork.QDnsLookup.abort": (),
- "PySide2.QtNetwork.QDnsLookup.canonicalNameRecords": (),
- "PySide2.QtNetwork.QDnsLookup.error": (),
- "PySide2.QtNetwork.QDnsLookup.errorString": (),
- "PySide2.QtNetwork.QDnsLookup.hostAddressRecords": (),
- "PySide2.QtNetwork.QDnsLookup.isFinished": (),
- "PySide2.QtNetwork.QDnsLookup.lookup": (),
- "PySide2.QtNetwork.QDnsLookup.mailExchangeRecords": (),
- "PySide2.QtNetwork.QDnsLookup.name": (),
- "PySide2.QtNetwork.QDnsLookup.nameServerRecords": (),
- "PySide2.QtNetwork.QDnsLookup.nameserver": (),
- "PySide2.QtNetwork.QDnsLookup.pointerRecords": (),
- "PySide2.QtNetwork.QDnsLookup.serviceRecords": (),
- "PySide2.QtNetwork.QDnsLookup.setName": ('str',),
- "PySide2.QtNetwork.QDnsLookup.setNameserver": ('PySide2.QtNetwork.QHostAddress',),
- "PySide2.QtNetwork.QDnsLookup.setType": ('PySide2.QtNetwork.QDnsLookup.Type',),
- "PySide2.QtNetwork.QDnsLookup.textRecords": (),
- "PySide2.QtNetwork.QDnsLookup.type": (),
-# class PySide2.QtNetwork.QDnsMailExchangeRecord:
- "PySide2.QtNetwork.QDnsMailExchangeRecord.__init__": [(), ('PySide2.QtNetwork.QDnsMailExchangeRecord',)],
- "PySide2.QtNetwork.QDnsMailExchangeRecord.__copy__": (),
- "PySide2.QtNetwork.QDnsMailExchangeRecord.exchange": (),
- "PySide2.QtNetwork.QDnsMailExchangeRecord.name": (),
- "PySide2.QtNetwork.QDnsMailExchangeRecord.preference": (),
- "PySide2.QtNetwork.QDnsMailExchangeRecord.swap": ('PySide2.QtNetwork.QDnsMailExchangeRecord',),
- "PySide2.QtNetwork.QDnsMailExchangeRecord.timeToLive": (),
-# class PySide2.QtNetwork.QDnsServiceRecord:
- "PySide2.QtNetwork.QDnsServiceRecord.__init__": [(), ('PySide2.QtNetwork.QDnsServiceRecord',)],
- "PySide2.QtNetwork.QDnsServiceRecord.__copy__": (),
- "PySide2.QtNetwork.QDnsServiceRecord.name": (),
- "PySide2.QtNetwork.QDnsServiceRecord.port": (),
- "PySide2.QtNetwork.QDnsServiceRecord.priority": (),
- "PySide2.QtNetwork.QDnsServiceRecord.swap": ('PySide2.QtNetwork.QDnsServiceRecord',),
- "PySide2.QtNetwork.QDnsServiceRecord.target": (),
- "PySide2.QtNetwork.QDnsServiceRecord.timeToLive": (),
- "PySide2.QtNetwork.QDnsServiceRecord.weight": (),
-# class PySide2.QtNetwork.QDnsTextRecord:
- "PySide2.QtNetwork.QDnsTextRecord.__init__": [(), ('PySide2.QtNetwork.QDnsTextRecord',)],
- "PySide2.QtNetwork.QDnsTextRecord.__copy__": (),
- "PySide2.QtNetwork.QDnsTextRecord.name": (),
- "PySide2.QtNetwork.QDnsTextRecord.swap": ('PySide2.QtNetwork.QDnsTextRecord',),
- "PySide2.QtNetwork.QDnsTextRecord.timeToLive": (),
- "PySide2.QtNetwork.QDnsTextRecord.values": (),
-# class PySide2.QtNetwork.QDtls:
-# class PySide2.QtNetwork.QDtls.HandshakeState:
- "PySide2.QtNetwork.QDtls.__init__": ('PySide2.QtNetwork.QSslSocket.SslMode', 'PySide2.QtCore.QObject'),
- "PySide2.QtNetwork.QDtls.abortHandshake": ('PySide2.QtNetwork.QUdpSocket',),
- "PySide2.QtNetwork.QDtls.decryptDatagram": ('PySide2.QtNetwork.QUdpSocket', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtNetwork.QDtls.doHandshake": ('PySide2.QtNetwork.QUdpSocket', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtNetwork.QDtls.dtlsConfiguration": (),
- "PySide2.QtNetwork.QDtls.dtlsError": (),
- "PySide2.QtNetwork.QDtls.dtlsErrorString": (),
- "PySide2.QtNetwork.QDtls.handleTimeout": ('PySide2.QtNetwork.QUdpSocket',),
- "PySide2.QtNetwork.QDtls.handshakeState": (),
- "PySide2.QtNetwork.QDtls.ignoreVerificationErrors": ('typing.List[PySide2.QtNetwork.QSslError]',),
- "PySide2.QtNetwork.QDtls.isConnectionEncrypted": (),
- "PySide2.QtNetwork.QDtls.mtuHint": (),
- "PySide2.QtNetwork.QDtls.peerAddress": (),
- "PySide2.QtNetwork.QDtls.peerPort": (),
- "PySide2.QtNetwork.QDtls.peerVerificationErrors": (),
- "PySide2.QtNetwork.QDtls.peerVerificationName": (),
- "PySide2.QtNetwork.QDtls.resumeHandshake": ('PySide2.QtNetwork.QUdpSocket',),
- "PySide2.QtNetwork.QDtls.sessionCipher": (),
- "PySide2.QtNetwork.QDtls.sessionProtocol": (),
- "PySide2.QtNetwork.QDtls.setDtlsConfiguration": ('PySide2.QtNetwork.QSslConfiguration',),
- "PySide2.QtNetwork.QDtls.setMtuHint": ('int',),
- "PySide2.QtNetwork.QDtls.setPeer": ('PySide2.QtNetwork.QHostAddress', 'int', 'str'),
- "PySide2.QtNetwork.QDtls.setPeerVerificationName": ('str',),
- "PySide2.QtNetwork.QDtls.shutdown": ('PySide2.QtNetwork.QUdpSocket',),
- "PySide2.QtNetwork.QDtls.sslMode": (),
- "PySide2.QtNetwork.QDtls.writeDatagramEncrypted": ('PySide2.QtNetwork.QUdpSocket', 'PySide2.QtCore.QByteArray'),
-# class PySide2.QtNetwork.QDtlsError:
-# class PySide2.QtNetwork.QHostAddress:
-# class PySide2.QtNetwork.QHostAddress.ConversionMode:
-# class PySide2.QtNetwork.QHostAddress.ConversionModeFlag:
-# class PySide2.QtNetwork.QHostAddress.SpecialAddress:
- "PySide2.QtNetwork.QHostAddress.__init__": [(), ('PySide2.QtNetwork.QHostAddress',), ('PySide2.QtNetwork.QHostAddress.SpecialAddress',), ('PySide2.QtNetwork.QIPv6Address',), ('int',), ('str',)],
- "PySide2.QtNetwork.QHostAddress.__copy__": (),
- "PySide2.QtNetwork.QHostAddress.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtNetwork.QHostAddress.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtNetwork.QHostAddress.clear": (),
- "PySide2.QtNetwork.QHostAddress.isBroadcast": (),
- "PySide2.QtNetwork.QHostAddress.isEqual": ('PySide2.QtNetwork.QHostAddress', 'PySide2.QtNetwork.QHostAddress.ConversionMode'),
- "PySide2.QtNetwork.QHostAddress.isGlobal": (),
- "PySide2.QtNetwork.QHostAddress.isInSubnet": [('PySide2.QtNetwork.QHostAddress', 'int'), ('typing.Tuple[PySide2.QtNetwork.QHostAddress, int]',)],
- "PySide2.QtNetwork.QHostAddress.isLinkLocal": (),
- "PySide2.QtNetwork.QHostAddress.isLoopback": (),
- "PySide2.QtNetwork.QHostAddress.isMulticast": (),
- "PySide2.QtNetwork.QHostAddress.isNull": (),
- "PySide2.QtNetwork.QHostAddress.isSiteLocal": (),
- "PySide2.QtNetwork.QHostAddress.isUniqueLocalUnicast": (),
- "PySide2.QtNetwork.QHostAddress.parseSubnet": ('str',),
- "PySide2.QtNetwork.QHostAddress.protocol": (),
- "PySide2.QtNetwork.QHostAddress.scopeId": (),
- "PySide2.QtNetwork.QHostAddress.setAddress": [('PySide2.QtNetwork.QHostAddress.SpecialAddress',), ('PySide2.QtNetwork.QIPv6Address',), ('int',), ('str',)],
- "PySide2.QtNetwork.QHostAddress.setScopeId": ('str',),
- "PySide2.QtNetwork.QHostAddress.swap": ('PySide2.QtNetwork.QHostAddress',),
- "PySide2.QtNetwork.QHostAddress.toIPv4Address": (),
- "PySide2.QtNetwork.QHostAddress.toIPv6Address": (),
- "PySide2.QtNetwork.QHostAddress.toString": (),
-# class PySide2.QtNetwork.QHostInfo:
-# class PySide2.QtNetwork.QHostInfo.HostInfoError:
- "PySide2.QtNetwork.QHostInfo.__init__": [('PySide2.QtNetwork.QHostInfo',), ('int',)],
- "PySide2.QtNetwork.QHostInfo.__copy__": (),
- "PySide2.QtNetwork.QHostInfo.abortHostLookup": ('int',),
- "PySide2.QtNetwork.QHostInfo.addresses": (),
- "PySide2.QtNetwork.QHostInfo.error": (),
- "PySide2.QtNetwork.QHostInfo.errorString": (),
- "PySide2.QtNetwork.QHostInfo.fromName": ('str',),
- "PySide2.QtNetwork.QHostInfo.hostName": (),
- "PySide2.QtNetwork.QHostInfo.localDomainName": (),
- "PySide2.QtNetwork.QHostInfo.localHostName": (),
- "PySide2.QtNetwork.QHostInfo.lookupId": (),
- "PySide2.QtNetwork.QHostInfo.setAddresses": ('typing.Sequence[PySide2.QtNetwork.QHostAddress]',),
- "PySide2.QtNetwork.QHostInfo.setError": ('PySide2.QtNetwork.QHostInfo.HostInfoError',),
- "PySide2.QtNetwork.QHostInfo.setErrorString": ('str',),
- "PySide2.QtNetwork.QHostInfo.setHostName": ('str',),
- "PySide2.QtNetwork.QHostInfo.setLookupId": ('int',),
- "PySide2.QtNetwork.QHostInfo.swap": ('PySide2.QtNetwork.QHostInfo',),
-# class PySide2.QtNetwork.QHstsPolicy:
-# class PySide2.QtNetwork.QHstsPolicy.PolicyFlag:
-# class PySide2.QtNetwork.QHstsPolicy.PolicyFlags:
- "PySide2.QtNetwork.QHstsPolicy.__init__": [(), ('PySide2.QtCore.QDateTime', 'PySide2.QtNetwork.QHstsPolicy.PolicyFlags', 'str', 'PySide2.QtCore.QUrl.ParsingMode'), ('PySide2.QtNetwork.QHstsPolicy',)],
- "PySide2.QtNetwork.QHstsPolicy.__copy__": (),
- "PySide2.QtNetwork.QHstsPolicy.expiry": (),
- "PySide2.QtNetwork.QHstsPolicy.host": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtNetwork.QHstsPolicy.includesSubDomains": (),
- "PySide2.QtNetwork.QHstsPolicy.isExpired": (),
- "PySide2.QtNetwork.QHstsPolicy.setExpiry": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtNetwork.QHstsPolicy.setHost": ('str', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtNetwork.QHstsPolicy.setIncludesSubDomains": ('bool',),
- "PySide2.QtNetwork.QHstsPolicy.swap": ('PySide2.QtNetwork.QHstsPolicy',),
-# class PySide2.QtNetwork.QHttpMultiPart:
-# class PySide2.QtNetwork.QHttpMultiPart.ContentType:
- "PySide2.QtNetwork.QHttpMultiPart.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtNetwork.QHttpMultiPart.ContentType', 'PySide2.QtCore.QObject')],
- "PySide2.QtNetwork.QHttpMultiPart.append": ('PySide2.QtNetwork.QHttpPart',),
- "PySide2.QtNetwork.QHttpMultiPart.boundary": (),
- "PySide2.QtNetwork.QHttpMultiPart.setBoundary": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QHttpMultiPart.setContentType": ('PySide2.QtNetwork.QHttpMultiPart.ContentType',),
-# class PySide2.QtNetwork.QHttpPart:
- "PySide2.QtNetwork.QHttpPart.__init__": [(), ('PySide2.QtNetwork.QHttpPart',)],
- "PySide2.QtNetwork.QHttpPart.__copy__": (),
- "PySide2.QtNetwork.QHttpPart.setBody": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QHttpPart.setBodyDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtNetwork.QHttpPart.setHeader": ('PySide2.QtNetwork.QNetworkRequest.KnownHeaders', 'typing.Any'),
- "PySide2.QtNetwork.QHttpPart.setRawHeader": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtNetwork.QHttpPart.swap": ('PySide2.QtNetwork.QHttpPart',),
-# class PySide2.QtNetwork.QIPv6Address:
- "PySide2.QtNetwork.QIPv6Address.__init__": [(), ('PySide2.QtNetwork.QIPv6Address',)],
- "PySide2.QtNetwork.QIPv6Address.__copy__": (),
-# class PySide2.QtNetwork.QLocalServer:
-# class PySide2.QtNetwork.QLocalServer.SocketOption:
-# class PySide2.QtNetwork.QLocalServer.SocketOptions:
- "PySide2.QtNetwork.QLocalServer.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QLocalServer.close": (),
- "PySide2.QtNetwork.QLocalServer.errorString": (),
- "PySide2.QtNetwork.QLocalServer.fullServerName": (),
- "PySide2.QtNetwork.QLocalServer.hasPendingConnections": (),
- "PySide2.QtNetwork.QLocalServer.incomingConnection": ('int',),
- "PySide2.QtNetwork.QLocalServer.isListening": (),
- "PySide2.QtNetwork.QLocalServer.listen": [('int',), ('str',)],
- "PySide2.QtNetwork.QLocalServer.maxPendingConnections": (),
- "PySide2.QtNetwork.QLocalServer.nextPendingConnection": (),
- "PySide2.QtNetwork.QLocalServer.removeServer": ('str',),
- "PySide2.QtNetwork.QLocalServer.serverError": (),
- "PySide2.QtNetwork.QLocalServer.serverName": (),
- "PySide2.QtNetwork.QLocalServer.setMaxPendingConnections": ('int',),
- "PySide2.QtNetwork.QLocalServer.setSocketOptions": ('PySide2.QtNetwork.QLocalServer.SocketOptions',),
- "PySide2.QtNetwork.QLocalServer.socketDescriptor": (),
- "PySide2.QtNetwork.QLocalServer.socketOptions": (),
- "PySide2.QtNetwork.QLocalServer.waitForNewConnection": ('int',),
-# class PySide2.QtNetwork.QLocalSocket:
-# class PySide2.QtNetwork.QLocalSocket.LocalSocketError:
-# class PySide2.QtNetwork.QLocalSocket.LocalSocketState:
- "PySide2.QtNetwork.QLocalSocket.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QLocalSocket.abort": (),
- "PySide2.QtNetwork.QLocalSocket.bytesAvailable": (),
- "PySide2.QtNetwork.QLocalSocket.bytesToWrite": (),
- "PySide2.QtNetwork.QLocalSocket.canReadLine": (),
- "PySide2.QtNetwork.QLocalSocket.close": (),
- "PySide2.QtNetwork.QLocalSocket.connectToServer": [('PySide2.QtCore.QIODevice.OpenMode',), ('str', 'PySide2.QtCore.QIODevice.OpenMode')],
- "PySide2.QtNetwork.QLocalSocket.disconnectFromServer": (),
- "PySide2.QtNetwork.QLocalSocket.error": (),
- "PySide2.QtNetwork.QLocalSocket.flush": (),
- "PySide2.QtNetwork.QLocalSocket.fullServerName": (),
- "PySide2.QtNetwork.QLocalSocket.isSequential": (),
- "PySide2.QtNetwork.QLocalSocket.isValid": (),
- "PySide2.QtNetwork.QLocalSocket.open": ('PySide2.QtCore.QIODevice.OpenMode',),
- "PySide2.QtNetwork.QLocalSocket.readBufferSize": (),
- "PySide2.QtNetwork.QLocalSocket.readData": ('str', 'int'),
- "PySide2.QtNetwork.QLocalSocket.serverName": (),
- "PySide2.QtNetwork.QLocalSocket.setReadBufferSize": ('int',),
- "PySide2.QtNetwork.QLocalSocket.setServerName": ('str',),
- "PySide2.QtNetwork.QLocalSocket.setSocketDescriptor": ('int', 'PySide2.QtNetwork.QLocalSocket.LocalSocketState', 'PySide2.QtCore.QIODevice.OpenMode'),
- "PySide2.QtNetwork.QLocalSocket.socketDescriptor": (),
- "PySide2.QtNetwork.QLocalSocket.state": (),
- "PySide2.QtNetwork.QLocalSocket.waitForBytesWritten": ('int',),
- "PySide2.QtNetwork.QLocalSocket.waitForConnected": ('int',),
- "PySide2.QtNetwork.QLocalSocket.waitForDisconnected": ('int',),
- "PySide2.QtNetwork.QLocalSocket.waitForReadyRead": ('int',),
- "PySide2.QtNetwork.QLocalSocket.writeData": ('str', 'int'),
-# class PySide2.QtNetwork.QNetworkAccessManager:
-# class PySide2.QtNetwork.QNetworkAccessManager.NetworkAccessibility:
-# class PySide2.QtNetwork.QNetworkAccessManager.Operation:
- "PySide2.QtNetwork.QNetworkAccessManager.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QNetworkAccessManager.activeConfiguration": (),
- "PySide2.QtNetwork.QNetworkAccessManager.addStrictTransportSecurityHosts": ('typing.List[PySide2.QtNetwork.QHstsPolicy]',),
- "PySide2.QtNetwork.QNetworkAccessManager.autoDeleteReplies": (),
- "PySide2.QtNetwork.QNetworkAccessManager.cache": (),
- "PySide2.QtNetwork.QNetworkAccessManager.clearAccessCache": (),
- "PySide2.QtNetwork.QNetworkAccessManager.clearConnectionCache": (),
- "PySide2.QtNetwork.QNetworkAccessManager.configuration": (),
- "PySide2.QtNetwork.QNetworkAccessManager.connectToHost": ('str', 'int'),
- "PySide2.QtNetwork.QNetworkAccessManager.connectToHostEncrypted": [('str', 'int', 'PySide2.QtNetwork.QSslConfiguration'), ('str', 'int', 'PySide2.QtNetwork.QSslConfiguration', 'str')],
- "PySide2.QtNetwork.QNetworkAccessManager.cookieJar": (),
- "PySide2.QtNetwork.QNetworkAccessManager.createRequest": ('PySide2.QtNetwork.QNetworkAccessManager.Operation', 'PySide2.QtNetwork.QNetworkRequest', 'PySide2.QtCore.QIODevice'),
- "PySide2.QtNetwork.QNetworkAccessManager.deleteResource": ('PySide2.QtNetwork.QNetworkRequest',),
- "PySide2.QtNetwork.QNetworkAccessManager.enableStrictTransportSecurityStore": ('bool', 'str'),
- "PySide2.QtNetwork.QNetworkAccessManager.get": ('PySide2.QtNetwork.QNetworkRequest',),
- "PySide2.QtNetwork.QNetworkAccessManager.head": ('PySide2.QtNetwork.QNetworkRequest',),
- "PySide2.QtNetwork.QNetworkAccessManager.isStrictTransportSecurityEnabled": (),
- "PySide2.QtNetwork.QNetworkAccessManager.isStrictTransportSecurityStoreEnabled": (),
- "PySide2.QtNetwork.QNetworkAccessManager.networkAccessible": (),
- "PySide2.QtNetwork.QNetworkAccessManager.post": [('PySide2.QtNetwork.QNetworkRequest', 'PySide2.QtCore.QByteArray'), ('PySide2.QtNetwork.QNetworkRequest', 'PySide2.QtCore.QIODevice'), ('PySide2.QtNetwork.QNetworkRequest', 'PySide2.QtNetwork.QHttpMultiPart')],
- "PySide2.QtNetwork.QNetworkAccessManager.proxy": (),
- "PySide2.QtNetwork.QNetworkAccessManager.proxyFactory": (),
- "PySide2.QtNetwork.QNetworkAccessManager.put": [('PySide2.QtNetwork.QNetworkRequest', 'PySide2.QtCore.QByteArray'), ('PySide2.QtNetwork.QNetworkRequest', 'PySide2.QtCore.QIODevice'), ('PySide2.QtNetwork.QNetworkRequest', 'PySide2.QtNetwork.QHttpMultiPart')],
- "PySide2.QtNetwork.QNetworkAccessManager.redirectPolicy": (),
- "PySide2.QtNetwork.QNetworkAccessManager.sendCustomRequest": [('PySide2.QtNetwork.QNetworkRequest', 'PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'), ('PySide2.QtNetwork.QNetworkRequest', 'PySide2.QtCore.QByteArray', 'PySide2.QtCore.QIODevice'), ('PySide2.QtNetwork.QNetworkRequest', 'PySide2.QtCore.QByteArray', 'PySide2.QtNetwork.QHttpMultiPart')],
- "PySide2.QtNetwork.QNetworkAccessManager.setAutoDeleteReplies": ('bool',),
- "PySide2.QtNetwork.QNetworkAccessManager.setCache": ('PySide2.QtNetwork.QAbstractNetworkCache',),
- "PySide2.QtNetwork.QNetworkAccessManager.setConfiguration": ('PySide2.QtNetwork.QNetworkConfiguration',),
- "PySide2.QtNetwork.QNetworkAccessManager.setCookieJar": ('PySide2.QtNetwork.QNetworkCookieJar',),
- "PySide2.QtNetwork.QNetworkAccessManager.setNetworkAccessible": ('PySide2.QtNetwork.QNetworkAccessManager.NetworkAccessibility',),
- "PySide2.QtNetwork.QNetworkAccessManager.setProxy": ('PySide2.QtNetwork.QNetworkProxy',),
- "PySide2.QtNetwork.QNetworkAccessManager.setProxyFactory": ('PySide2.QtNetwork.QNetworkProxyFactory',),
- "PySide2.QtNetwork.QNetworkAccessManager.setRedirectPolicy": ('PySide2.QtNetwork.QNetworkRequest.RedirectPolicy',),
- "PySide2.QtNetwork.QNetworkAccessManager.setStrictTransportSecurityEnabled": ('bool',),
- "PySide2.QtNetwork.QNetworkAccessManager.strictTransportSecurityHosts": (),
- "PySide2.QtNetwork.QNetworkAccessManager.supportedSchemes": (),
- "PySide2.QtNetwork.QNetworkAccessManager.supportedSchemesImplementation": (),
-# class PySide2.QtNetwork.QNetworkAddressEntry:
-# class PySide2.QtNetwork.QNetworkAddressEntry.DnsEligibilityStatus:
- "PySide2.QtNetwork.QNetworkAddressEntry.__init__": [(), ('PySide2.QtNetwork.QNetworkAddressEntry',)],
- "PySide2.QtNetwork.QNetworkAddressEntry.__copy__": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.broadcast": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.clearAddressLifetime": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.dnsEligibility": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.ip": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.isLifetimeKnown": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.isPermanent": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.isTemporary": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.netmask": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.preferredLifetime": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.prefixLength": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.setAddressLifetime": ('PySide2.QtCore.QDeadlineTimer', 'PySide2.QtCore.QDeadlineTimer'),
- "PySide2.QtNetwork.QNetworkAddressEntry.setBroadcast": ('PySide2.QtNetwork.QHostAddress',),
- "PySide2.QtNetwork.QNetworkAddressEntry.setDnsEligibility": ('PySide2.QtNetwork.QNetworkAddressEntry.DnsEligibilityStatus',),
- "PySide2.QtNetwork.QNetworkAddressEntry.setIp": ('PySide2.QtNetwork.QHostAddress',),
- "PySide2.QtNetwork.QNetworkAddressEntry.setNetmask": ('PySide2.QtNetwork.QHostAddress',),
- "PySide2.QtNetwork.QNetworkAddressEntry.setPrefixLength": ('int',),
- "PySide2.QtNetwork.QNetworkAddressEntry.swap": ('PySide2.QtNetwork.QNetworkAddressEntry',),
- "PySide2.QtNetwork.QNetworkAddressEntry.validityLifetime": (),
-# class PySide2.QtNetwork.QNetworkCacheMetaData:
- "PySide2.QtNetwork.QNetworkCacheMetaData.__init__": [(), ('PySide2.QtNetwork.QNetworkCacheMetaData',)],
- "PySide2.QtNetwork.QNetworkCacheMetaData.__copy__": (),
- "PySide2.QtNetwork.QNetworkCacheMetaData.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtNetwork.QNetworkCacheMetaData.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtNetwork.QNetworkCacheMetaData.attributes": (),
- "PySide2.QtNetwork.QNetworkCacheMetaData.expirationDate": (),
- "PySide2.QtNetwork.QNetworkCacheMetaData.isValid": (),
- "PySide2.QtNetwork.QNetworkCacheMetaData.lastModified": (),
- "PySide2.QtNetwork.QNetworkCacheMetaData.rawHeaders": (),
- "PySide2.QtNetwork.QNetworkCacheMetaData.saveToDisk": (),
- "PySide2.QtNetwork.QNetworkCacheMetaData.setAttributes": ('typing.Dict[PySide2.QtNetwork.QNetworkRequest.Attribute, typing.Any]',),
- "PySide2.QtNetwork.QNetworkCacheMetaData.setExpirationDate": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtNetwork.QNetworkCacheMetaData.setLastModified": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtNetwork.QNetworkCacheMetaData.setRawHeaders": ('typing.Sequence[typing.Tuple]',),
- "PySide2.QtNetwork.QNetworkCacheMetaData.setSaveToDisk": ('bool',),
- "PySide2.QtNetwork.QNetworkCacheMetaData.setUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QNetworkCacheMetaData.swap": ('PySide2.QtNetwork.QNetworkCacheMetaData',),
- "PySide2.QtNetwork.QNetworkCacheMetaData.url": (),
-# class PySide2.QtNetwork.QNetworkConfiguration:
-# class PySide2.QtNetwork.QNetworkConfiguration.BearerType:
-# class PySide2.QtNetwork.QNetworkConfiguration.Purpose:
-# class PySide2.QtNetwork.QNetworkConfiguration.StateFlag:
-# class PySide2.QtNetwork.QNetworkConfiguration.StateFlags:
-# class PySide2.QtNetwork.QNetworkConfiguration.Type:
- "PySide2.QtNetwork.QNetworkConfiguration.__init__": [(), ('PySide2.QtNetwork.QNetworkConfiguration',)],
- "PySide2.QtNetwork.QNetworkConfiguration.__copy__": (),
- "PySide2.QtNetwork.QNetworkConfiguration.bearerType": (),
- "PySide2.QtNetwork.QNetworkConfiguration.bearerTypeFamily": (),
- "PySide2.QtNetwork.QNetworkConfiguration.bearerTypeName": (),
- "PySide2.QtNetwork.QNetworkConfiguration.children": (),
- "PySide2.QtNetwork.QNetworkConfiguration.connectTimeout": (),
- "PySide2.QtNetwork.QNetworkConfiguration.identifier": (),
- "PySide2.QtNetwork.QNetworkConfiguration.isRoamingAvailable": (),
- "PySide2.QtNetwork.QNetworkConfiguration.isValid": (),
- "PySide2.QtNetwork.QNetworkConfiguration.name": (),
- "PySide2.QtNetwork.QNetworkConfiguration.purpose": (),
- "PySide2.QtNetwork.QNetworkConfiguration.setConnectTimeout": ('int',),
- "PySide2.QtNetwork.QNetworkConfiguration.state": (),
- "PySide2.QtNetwork.QNetworkConfiguration.swap": ('PySide2.QtNetwork.QNetworkConfiguration',),
- "PySide2.QtNetwork.QNetworkConfiguration.type": (),
-# class PySide2.QtNetwork.QNetworkConfigurationManager:
-# class PySide2.QtNetwork.QNetworkConfigurationManager.Capabilities:
-# class PySide2.QtNetwork.QNetworkConfigurationManager.Capability:
- "PySide2.QtNetwork.QNetworkConfigurationManager.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QNetworkConfigurationManager.allConfigurations": ('PySide2.QtNetwork.QNetworkConfiguration.StateFlags',),
- "PySide2.QtNetwork.QNetworkConfigurationManager.capabilities": (),
- "PySide2.QtNetwork.QNetworkConfigurationManager.configurationFromIdentifier": ('str',),
- "PySide2.QtNetwork.QNetworkConfigurationManager.defaultConfiguration": (),
- "PySide2.QtNetwork.QNetworkConfigurationManager.isOnline": (),
- "PySide2.QtNetwork.QNetworkConfigurationManager.updateConfigurations": (),
-# class PySide2.QtNetwork.QNetworkCookie:
-# class PySide2.QtNetwork.QNetworkCookie.RawForm:
- "PySide2.QtNetwork.QNetworkCookie.__init__": [('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'), ('PySide2.QtNetwork.QNetworkCookie',)],
- "PySide2.QtNetwork.QNetworkCookie.__copy__": (),
- "PySide2.QtNetwork.QNetworkCookie.domain": (),
- "PySide2.QtNetwork.QNetworkCookie.expirationDate": (),
- "PySide2.QtNetwork.QNetworkCookie.hasSameIdentifier": ('PySide2.QtNetwork.QNetworkCookie',),
- "PySide2.QtNetwork.QNetworkCookie.isHttpOnly": (),
- "PySide2.QtNetwork.QNetworkCookie.isSecure": (),
- "PySide2.QtNetwork.QNetworkCookie.isSessionCookie": (),
- "PySide2.QtNetwork.QNetworkCookie.name": (),
- "PySide2.QtNetwork.QNetworkCookie.normalize": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QNetworkCookie.parseCookies": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkCookie.path": (),
- "PySide2.QtNetwork.QNetworkCookie.setDomain": ('str',),
- "PySide2.QtNetwork.QNetworkCookie.setExpirationDate": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtNetwork.QNetworkCookie.setHttpOnly": ('bool',),
- "PySide2.QtNetwork.QNetworkCookie.setName": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkCookie.setPath": ('str',),
- "PySide2.QtNetwork.QNetworkCookie.setSecure": ('bool',),
- "PySide2.QtNetwork.QNetworkCookie.setValue": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkCookie.swap": ('PySide2.QtNetwork.QNetworkCookie',),
- "PySide2.QtNetwork.QNetworkCookie.toRawForm": ('PySide2.QtNetwork.QNetworkCookie.RawForm',),
- "PySide2.QtNetwork.QNetworkCookie.value": (),
-# class PySide2.QtNetwork.QNetworkCookieJar:
- "PySide2.QtNetwork.QNetworkCookieJar.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QNetworkCookieJar.allCookies": (),
- "PySide2.QtNetwork.QNetworkCookieJar.cookiesForUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QNetworkCookieJar.deleteCookie": ('PySide2.QtNetwork.QNetworkCookie',),
- "PySide2.QtNetwork.QNetworkCookieJar.insertCookie": ('PySide2.QtNetwork.QNetworkCookie',),
- "PySide2.QtNetwork.QNetworkCookieJar.setAllCookies": ('typing.Sequence[PySide2.QtNetwork.QNetworkCookie]',),
- "PySide2.QtNetwork.QNetworkCookieJar.setCookiesFromUrl": ('typing.Sequence[PySide2.QtNetwork.QNetworkCookie]', 'PySide2.QtCore.QUrl'),
- "PySide2.QtNetwork.QNetworkCookieJar.updateCookie": ('PySide2.QtNetwork.QNetworkCookie',),
- "PySide2.QtNetwork.QNetworkCookieJar.validateCookie": ('PySide2.QtNetwork.QNetworkCookie', 'PySide2.QtCore.QUrl'),
-# class PySide2.QtNetwork.QNetworkDatagram:
- "PySide2.QtNetwork.QNetworkDatagram.__init__": [(), ('PySide2.QtCore.QByteArray', 'PySide2.QtNetwork.QHostAddress', 'int'), ('PySide2.QtNetwork.QNetworkDatagram',)],
- "PySide2.QtNetwork.QNetworkDatagram.__copy__": (),
- "PySide2.QtNetwork.QNetworkDatagram.clear": (),
- "PySide2.QtNetwork.QNetworkDatagram.data": (),
- "PySide2.QtNetwork.QNetworkDatagram.destinationAddress": (),
- "PySide2.QtNetwork.QNetworkDatagram.destinationPort": (),
- "PySide2.QtNetwork.QNetworkDatagram.hopLimit": (),
- "PySide2.QtNetwork.QNetworkDatagram.interfaceIndex": (),
- "PySide2.QtNetwork.QNetworkDatagram.isNull": (),
- "PySide2.QtNetwork.QNetworkDatagram.isValid": (),
- "PySide2.QtNetwork.QNetworkDatagram.makeReply": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkDatagram.senderAddress": (),
- "PySide2.QtNetwork.QNetworkDatagram.senderPort": (),
- "PySide2.QtNetwork.QNetworkDatagram.setData": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkDatagram.setDestination": ('PySide2.QtNetwork.QHostAddress', 'int'),
- "PySide2.QtNetwork.QNetworkDatagram.setHopLimit": ('int',),
- "PySide2.QtNetwork.QNetworkDatagram.setInterfaceIndex": ('int',),
- "PySide2.QtNetwork.QNetworkDatagram.setSender": ('PySide2.QtNetwork.QHostAddress', 'int'),
- "PySide2.QtNetwork.QNetworkDatagram.swap": ('PySide2.QtNetwork.QNetworkDatagram',),
-# class PySide2.QtNetwork.QNetworkDiskCache:
- "PySide2.QtNetwork.QNetworkDiskCache.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QNetworkDiskCache.cacheDirectory": (),
- "PySide2.QtNetwork.QNetworkDiskCache.cacheSize": (),
- "PySide2.QtNetwork.QNetworkDiskCache.clear": (),
- "PySide2.QtNetwork.QNetworkDiskCache.data": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QNetworkDiskCache.expire": (),
- "PySide2.QtNetwork.QNetworkDiskCache.fileMetaData": ('str',),
- "PySide2.QtNetwork.QNetworkDiskCache.insert": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtNetwork.QNetworkDiskCache.maximumCacheSize": (),
- "PySide2.QtNetwork.QNetworkDiskCache.metaData": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QNetworkDiskCache.prepare": ('PySide2.QtNetwork.QNetworkCacheMetaData',),
- "PySide2.QtNetwork.QNetworkDiskCache.remove": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QNetworkDiskCache.setCacheDirectory": ('str',),
- "PySide2.QtNetwork.QNetworkDiskCache.setMaximumCacheSize": ('int',),
- "PySide2.QtNetwork.QNetworkDiskCache.updateMetaData": ('PySide2.QtNetwork.QNetworkCacheMetaData',),
-# class PySide2.QtNetwork.QNetworkInterface:
-# class PySide2.QtNetwork.QNetworkInterface.InterfaceFlag:
-# class PySide2.QtNetwork.QNetworkInterface.InterfaceFlags:
-# class PySide2.QtNetwork.QNetworkInterface.InterfaceType:
- "PySide2.QtNetwork.QNetworkInterface.__init__": [(), ('PySide2.QtNetwork.QNetworkInterface',)],
- "PySide2.QtNetwork.QNetworkInterface.__copy__": (),
- "PySide2.QtNetwork.QNetworkInterface.addressEntries": (),
- "PySide2.QtNetwork.QNetworkInterface.allAddresses": (),
- "PySide2.QtNetwork.QNetworkInterface.allInterfaces": (),
- "PySide2.QtNetwork.QNetworkInterface.flags": (),
- "PySide2.QtNetwork.QNetworkInterface.hardwareAddress": (),
- "PySide2.QtNetwork.QNetworkInterface.humanReadableName": (),
- "PySide2.QtNetwork.QNetworkInterface.index": (),
- "PySide2.QtNetwork.QNetworkInterface.interfaceFromIndex": ('int',),
- "PySide2.QtNetwork.QNetworkInterface.interfaceFromName": ('str',),
- "PySide2.QtNetwork.QNetworkInterface.interfaceIndexFromName": ('str',),
- "PySide2.QtNetwork.QNetworkInterface.interfaceNameFromIndex": ('int',),
- "PySide2.QtNetwork.QNetworkInterface.isValid": (),
- "PySide2.QtNetwork.QNetworkInterface.maximumTransmissionUnit": (),
- "PySide2.QtNetwork.QNetworkInterface.name": (),
- "PySide2.QtNetwork.QNetworkInterface.swap": ('PySide2.QtNetwork.QNetworkInterface',),
- "PySide2.QtNetwork.QNetworkInterface.type": (),
-# class PySide2.QtNetwork.QNetworkProxy:
-# class PySide2.QtNetwork.QNetworkProxy.Capabilities:
-# class PySide2.QtNetwork.QNetworkProxy.Capability:
-# class PySide2.QtNetwork.QNetworkProxy.ProxyType:
- "PySide2.QtNetwork.QNetworkProxy.__init__": [(), ('PySide2.QtNetwork.QNetworkProxy',), ('PySide2.QtNetwork.QNetworkProxy.ProxyType', 'str', 'int', 'str', 'str')],
- "PySide2.QtNetwork.QNetworkProxy.__copy__": (),
- "PySide2.QtNetwork.QNetworkProxy.applicationProxy": (),
- "PySide2.QtNetwork.QNetworkProxy.capabilities": (),
- "PySide2.QtNetwork.QNetworkProxy.hasRawHeader": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkProxy.header": ('PySide2.QtNetwork.QNetworkRequest.KnownHeaders',),
- "PySide2.QtNetwork.QNetworkProxy.hostName": (),
- "PySide2.QtNetwork.QNetworkProxy.isCachingProxy": (),
- "PySide2.QtNetwork.QNetworkProxy.isTransparentProxy": (),
- "PySide2.QtNetwork.QNetworkProxy.password": (),
- "PySide2.QtNetwork.QNetworkProxy.port": (),
- "PySide2.QtNetwork.QNetworkProxy.rawHeader": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkProxy.rawHeaderList": (),
- "PySide2.QtNetwork.QNetworkProxy.setApplicationProxy": ('PySide2.QtNetwork.QNetworkProxy',),
- "PySide2.QtNetwork.QNetworkProxy.setCapabilities": ('PySide2.QtNetwork.QNetworkProxy.Capabilities',),
- "PySide2.QtNetwork.QNetworkProxy.setHeader": ('PySide2.QtNetwork.QNetworkRequest.KnownHeaders', 'typing.Any'),
- "PySide2.QtNetwork.QNetworkProxy.setHostName": ('str',),
- "PySide2.QtNetwork.QNetworkProxy.setPassword": ('str',),
- "PySide2.QtNetwork.QNetworkProxy.setPort": ('int',),
- "PySide2.QtNetwork.QNetworkProxy.setRawHeader": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtNetwork.QNetworkProxy.setType": ('PySide2.QtNetwork.QNetworkProxy.ProxyType',),
- "PySide2.QtNetwork.QNetworkProxy.setUser": ('str',),
- "PySide2.QtNetwork.QNetworkProxy.swap": ('PySide2.QtNetwork.QNetworkProxy',),
- "PySide2.QtNetwork.QNetworkProxy.type": (),
- "PySide2.QtNetwork.QNetworkProxy.user": (),
-# class PySide2.QtNetwork.QNetworkProxyFactory:
- "PySide2.QtNetwork.QNetworkProxyFactory.__init__": (),
- "PySide2.QtNetwork.QNetworkProxyFactory.proxyForQuery": ('PySide2.QtNetwork.QNetworkProxyQuery',),
- "PySide2.QtNetwork.QNetworkProxyFactory.queryProxy": ('PySide2.QtNetwork.QNetworkProxyQuery',),
- "PySide2.QtNetwork.QNetworkProxyFactory.setApplicationProxyFactory": ('PySide2.QtNetwork.QNetworkProxyFactory',),
- "PySide2.QtNetwork.QNetworkProxyFactory.setUseSystemConfiguration": ('bool',),
- "PySide2.QtNetwork.QNetworkProxyFactory.systemProxyForQuery": ('PySide2.QtNetwork.QNetworkProxyQuery',),
- "PySide2.QtNetwork.QNetworkProxyFactory.usesSystemConfiguration": (),
-# class PySide2.QtNetwork.QNetworkProxyQuery:
-# class PySide2.QtNetwork.QNetworkProxyQuery.QueryType:
- "PySide2.QtNetwork.QNetworkProxyQuery.__init__": [(), ('PySide2.QtCore.QUrl', 'PySide2.QtNetwork.QNetworkProxyQuery.QueryType'), ('PySide2.QtNetwork.QNetworkConfiguration', 'PySide2.QtCore.QUrl', 'PySide2.QtNetwork.QNetworkProxyQuery.QueryType'), ('PySide2.QtNetwork.QNetworkConfiguration', 'int', 'str', 'PySide2.QtNetwork.QNetworkProxyQuery.QueryType'), ('PySide2.QtNetwork.QNetworkConfiguration', 'str', 'int', 'str', 'PySide2.QtNetwork.QNetworkProxyQuery.QueryType'), ('PySide2.QtNetwork.QNetworkProxyQuery',), ('int', 'str', 'PySide2.QtNetwork.QNetworkProxyQuery.QueryType'), ('str', 'int', 'str', 'PySide2.QtNetwork.QNetworkProxyQuery.QueryType')],
- "PySide2.QtNetwork.QNetworkProxyQuery.__copy__": (),
- "PySide2.QtNetwork.QNetworkProxyQuery.localPort": (),
- "PySide2.QtNetwork.QNetworkProxyQuery.networkConfiguration": (),
- "PySide2.QtNetwork.QNetworkProxyQuery.peerHostName": (),
- "PySide2.QtNetwork.QNetworkProxyQuery.peerPort": (),
- "PySide2.QtNetwork.QNetworkProxyQuery.protocolTag": (),
- "PySide2.QtNetwork.QNetworkProxyQuery.queryType": (),
- "PySide2.QtNetwork.QNetworkProxyQuery.setLocalPort": ('int',),
- "PySide2.QtNetwork.QNetworkProxyQuery.setNetworkConfiguration": ('PySide2.QtNetwork.QNetworkConfiguration',),
- "PySide2.QtNetwork.QNetworkProxyQuery.setPeerHostName": ('str',),
- "PySide2.QtNetwork.QNetworkProxyQuery.setPeerPort": ('int',),
- "PySide2.QtNetwork.QNetworkProxyQuery.setProtocolTag": ('str',),
- "PySide2.QtNetwork.QNetworkProxyQuery.setQueryType": ('PySide2.QtNetwork.QNetworkProxyQuery.QueryType',),
- "PySide2.QtNetwork.QNetworkProxyQuery.setUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QNetworkProxyQuery.swap": ('PySide2.QtNetwork.QNetworkProxyQuery',),
- "PySide2.QtNetwork.QNetworkProxyQuery.url": (),
-# class PySide2.QtNetwork.QNetworkReply:
-# class PySide2.QtNetwork.QNetworkReply.NetworkError:
- "PySide2.QtNetwork.QNetworkReply.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QNetworkReply.abort": (),
- "PySide2.QtNetwork.QNetworkReply.attribute": ('PySide2.QtNetwork.QNetworkRequest.Attribute',),
- "PySide2.QtNetwork.QNetworkReply.close": (),
- "PySide2.QtNetwork.QNetworkReply.error": (),
- "PySide2.QtNetwork.QNetworkReply.hasRawHeader": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkReply.header": ('PySide2.QtNetwork.QNetworkRequest.KnownHeaders',),
- "PySide2.QtNetwork.QNetworkReply.ignoreSslErrors": [(), ('typing.Sequence[PySide2.QtNetwork.QSslError]',)],
- "PySide2.QtNetwork.QNetworkReply.ignoreSslErrorsImplementation": ('typing.Sequence[PySide2.QtNetwork.QSslError]',),
- "PySide2.QtNetwork.QNetworkReply.isFinished": (),
- "PySide2.QtNetwork.QNetworkReply.isRunning": (),
- "PySide2.QtNetwork.QNetworkReply.isSequential": (),
- "PySide2.QtNetwork.QNetworkReply.manager": (),
- "PySide2.QtNetwork.QNetworkReply.operation": (),
- "PySide2.QtNetwork.QNetworkReply.rawHeader": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkReply.rawHeaderList": (),
- "PySide2.QtNetwork.QNetworkReply.rawHeaderPairs": (),
- "PySide2.QtNetwork.QNetworkReply.readBufferSize": (),
- "PySide2.QtNetwork.QNetworkReply.request": (),
- "PySide2.QtNetwork.QNetworkReply.setAttribute": ('PySide2.QtNetwork.QNetworkRequest.Attribute', 'typing.Any'),
- "PySide2.QtNetwork.QNetworkReply.setError": ('PySide2.QtNetwork.QNetworkReply.NetworkError', 'str'),
- "PySide2.QtNetwork.QNetworkReply.setFinished": ('bool',),
- "PySide2.QtNetwork.QNetworkReply.setHeader": ('PySide2.QtNetwork.QNetworkRequest.KnownHeaders', 'typing.Any'),
- "PySide2.QtNetwork.QNetworkReply.setOperation": ('PySide2.QtNetwork.QNetworkAccessManager.Operation',),
- "PySide2.QtNetwork.QNetworkReply.setRawHeader": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtNetwork.QNetworkReply.setReadBufferSize": ('int',),
- "PySide2.QtNetwork.QNetworkReply.setRequest": ('PySide2.QtNetwork.QNetworkRequest',),
- "PySide2.QtNetwork.QNetworkReply.setSslConfiguration": ('PySide2.QtNetwork.QSslConfiguration',),
- "PySide2.QtNetwork.QNetworkReply.setSslConfigurationImplementation": ('PySide2.QtNetwork.QSslConfiguration',),
- "PySide2.QtNetwork.QNetworkReply.setUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QNetworkReply.sslConfiguration": (),
- "PySide2.QtNetwork.QNetworkReply.sslConfigurationImplementation": ('PySide2.QtNetwork.QSslConfiguration',),
- "PySide2.QtNetwork.QNetworkReply.url": (),
- "PySide2.QtNetwork.QNetworkReply.writeData": ('str', 'int'),
-# class PySide2.QtNetwork.QNetworkRequest:
-# class PySide2.QtNetwork.QNetworkRequest.Attribute:
-# class PySide2.QtNetwork.QNetworkRequest.CacheLoadControl:
-# class PySide2.QtNetwork.QNetworkRequest.KnownHeaders:
-# class PySide2.QtNetwork.QNetworkRequest.LoadControl:
-# class PySide2.QtNetwork.QNetworkRequest.Priority:
-# class PySide2.QtNetwork.QNetworkRequest.RedirectPolicy:
- "PySide2.QtNetwork.QNetworkRequest.__init__": [(), ('PySide2.QtCore.QUrl',), ('PySide2.QtNetwork.QNetworkRequest',)],
- "PySide2.QtNetwork.QNetworkRequest.__copy__": (),
- "PySide2.QtNetwork.QNetworkRequest.attribute": ('PySide2.QtNetwork.QNetworkRequest.Attribute', 'typing.Any'),
- "PySide2.QtNetwork.QNetworkRequest.hasRawHeader": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkRequest.header": ('PySide2.QtNetwork.QNetworkRequest.KnownHeaders',),
- "PySide2.QtNetwork.QNetworkRequest.maximumRedirectsAllowed": (),
- "PySide2.QtNetwork.QNetworkRequest.originatingObject": (),
- "PySide2.QtNetwork.QNetworkRequest.peerVerifyName": (),
- "PySide2.QtNetwork.QNetworkRequest.priority": (),
- "PySide2.QtNetwork.QNetworkRequest.rawHeader": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkRequest.rawHeaderList": (),
- "PySide2.QtNetwork.QNetworkRequest.setAttribute": ('PySide2.QtNetwork.QNetworkRequest.Attribute', 'typing.Any'),
- "PySide2.QtNetwork.QNetworkRequest.setHeader": ('PySide2.QtNetwork.QNetworkRequest.KnownHeaders', 'typing.Any'),
- "PySide2.QtNetwork.QNetworkRequest.setMaximumRedirectsAllowed": ('int',),
- "PySide2.QtNetwork.QNetworkRequest.setOriginatingObject": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QNetworkRequest.setPeerVerifyName": ('str',),
- "PySide2.QtNetwork.QNetworkRequest.setPriority": ('PySide2.QtNetwork.QNetworkRequest.Priority',),
- "PySide2.QtNetwork.QNetworkRequest.setRawHeader": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtNetwork.QNetworkRequest.setSslConfiguration": ('PySide2.QtNetwork.QSslConfiguration',),
- "PySide2.QtNetwork.QNetworkRequest.setUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QNetworkRequest.sslConfiguration": (),
- "PySide2.QtNetwork.QNetworkRequest.swap": ('PySide2.QtNetwork.QNetworkRequest',),
- "PySide2.QtNetwork.QNetworkRequest.url": (),
-# class PySide2.QtNetwork.QNetworkSession:
-# class PySide2.QtNetwork.QNetworkSession.SessionError:
-# class PySide2.QtNetwork.QNetworkSession.State:
-# class PySide2.QtNetwork.QNetworkSession.UsagePolicies:
-# class PySide2.QtNetwork.QNetworkSession.UsagePolicy:
- "PySide2.QtNetwork.QNetworkSession.__init__": ('PySide2.QtNetwork.QNetworkConfiguration', 'PySide2.QtCore.QObject'),
- "PySide2.QtNetwork.QNetworkSession.accept": (),
- "PySide2.QtNetwork.QNetworkSession.activeTime": (),
- "PySide2.QtNetwork.QNetworkSession.bytesReceived": (),
- "PySide2.QtNetwork.QNetworkSession.bytesWritten": (),
- "PySide2.QtNetwork.QNetworkSession.close": (),
- "PySide2.QtNetwork.QNetworkSession.configuration": (),
- "PySide2.QtNetwork.QNetworkSession.connectNotify": ('PySide2.QtCore.QMetaMethod',),
- "PySide2.QtNetwork.QNetworkSession.disconnectNotify": ('PySide2.QtCore.QMetaMethod',),
- "PySide2.QtNetwork.QNetworkSession.error": (),
- "PySide2.QtNetwork.QNetworkSession.errorString": (),
- "PySide2.QtNetwork.QNetworkSession.ignore": (),
- "PySide2.QtNetwork.QNetworkSession.interface": (),
- "PySide2.QtNetwork.QNetworkSession.isOpen": (),
- "PySide2.QtNetwork.QNetworkSession.migrate": (),
- "PySide2.QtNetwork.QNetworkSession.open": (),
- "PySide2.QtNetwork.QNetworkSession.reject": (),
- "PySide2.QtNetwork.QNetworkSession.sessionProperty": ('str',),
- "PySide2.QtNetwork.QNetworkSession.setSessionProperty": ('str', 'typing.Any'),
- "PySide2.QtNetwork.QNetworkSession.state": (),
- "PySide2.QtNetwork.QNetworkSession.stop": (),
- "PySide2.QtNetwork.QNetworkSession.usagePolicies": (),
- "PySide2.QtNetwork.QNetworkSession.waitForOpened": ('int',),
-# class PySide2.QtNetwork.QOcspCertificateStatus:
-# class PySide2.QtNetwork.QOcspResponse:
- "PySide2.QtNetwork.QOcspResponse.__init__": [(), ('PySide2.QtNetwork.QOcspResponse',)],
- "PySide2.QtNetwork.QOcspResponse.__copy__": (),
- "PySide2.QtNetwork.QOcspResponse.certificateStatus": (),
- "PySide2.QtNetwork.QOcspResponse.revocationReason": (),
- "PySide2.QtNetwork.QOcspResponse.subject": (),
- "PySide2.QtNetwork.QOcspResponse.swap": ('PySide2.QtNetwork.QOcspResponse',),
-# class PySide2.QtNetwork.QOcspRevocationReason:
-# class PySide2.QtNetwork.QPasswordDigestor:
- "PySide2.QtNetwork.QPasswordDigestor.deriveKeyPbkdf1": ('PySide2.QtCore.QCryptographicHash.Algorithm', 'PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray', 'int', 'int'),
- "PySide2.QtNetwork.QPasswordDigestor.deriveKeyPbkdf2": ('PySide2.QtCore.QCryptographicHash.Algorithm', 'PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray', 'int', 'int'),
-# class PySide2.QtNetwork.QSsl:
-# class PySide2.QtNetwork.QSsl.AlternativeNameEntryType:
-# class PySide2.QtNetwork.QSsl.EncodingFormat:
-# class PySide2.QtNetwork.QSsl.KeyAlgorithm:
-# class PySide2.QtNetwork.QSsl.KeyType:
-# class PySide2.QtNetwork.QSsl.SslOption:
-# class PySide2.QtNetwork.QSsl.SslOptions:
-# class PySide2.QtNetwork.QSsl.SslProtocol:
-# class PySide2.QtNetwork.QSslCertificate:
-# class PySide2.QtNetwork.QSslCertificate.SubjectInfo:
- "PySide2.QtNetwork.QSslCertificate.__init__": [('PySide2.QtCore.QByteArray', 'PySide2.QtNetwork.QSsl.EncodingFormat'), ('PySide2.QtCore.QIODevice', 'PySide2.QtNetwork.QSsl.EncodingFormat'), ('PySide2.QtNetwork.QSslCertificate',)],
- "PySide2.QtNetwork.QSslCertificate.__copy__": (),
- "PySide2.QtNetwork.QSslCertificate.clear": (),
- "PySide2.QtNetwork.QSslCertificate.digest": ('PySide2.QtCore.QCryptographicHash.Algorithm',),
- "PySide2.QtNetwork.QSslCertificate.effectiveDate": (),
- "PySide2.QtNetwork.QSslCertificate.expiryDate": (),
- "PySide2.QtNetwork.QSslCertificate.extensions": (),
- "PySide2.QtNetwork.QSslCertificate.fromData": ('PySide2.QtCore.QByteArray', 'PySide2.QtNetwork.QSsl.EncodingFormat'),
- "PySide2.QtNetwork.QSslCertificate.fromDevice": ('PySide2.QtCore.QIODevice', 'PySide2.QtNetwork.QSsl.EncodingFormat'),
- "PySide2.QtNetwork.QSslCertificate.fromPath": ('str', 'PySide2.QtNetwork.QSsl.EncodingFormat', 'PySide2.QtCore.QRegExp.PatternSyntax'),
- "PySide2.QtNetwork.QSslCertificate.handle": (),
- "PySide2.QtNetwork.QSslCertificate.importPkcs12": ('PySide2.QtCore.QIODevice', 'PySide2.QtNetwork.QSslKey', 'PySide2.QtNetwork.QSslCertificate', 'typing.Sequence[PySide2.QtNetwork.QSslCertificate]', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtNetwork.QSslCertificate.isBlacklisted": (),
- "PySide2.QtNetwork.QSslCertificate.isNull": (),
- "PySide2.QtNetwork.QSslCertificate.isSelfSigned": (),
- "PySide2.QtNetwork.QSslCertificate.issuerDisplayName": (),
- "PySide2.QtNetwork.QSslCertificate.issuerInfo": [('PySide2.QtCore.QByteArray',), ('PySide2.QtNetwork.QSslCertificate.SubjectInfo',)],
- "PySide2.QtNetwork.QSslCertificate.issuerInfoAttributes": (),
- "PySide2.QtNetwork.QSslCertificate.publicKey": (),
- "PySide2.QtNetwork.QSslCertificate.serialNumber": (),
- "PySide2.QtNetwork.QSslCertificate.subjectAlternativeNames": (),
- "PySide2.QtNetwork.QSslCertificate.subjectDisplayName": (),
- "PySide2.QtNetwork.QSslCertificate.subjectInfo": [('PySide2.QtCore.QByteArray',), ('PySide2.QtNetwork.QSslCertificate.SubjectInfo',)],
- "PySide2.QtNetwork.QSslCertificate.subjectInfoAttributes": (),
- "PySide2.QtNetwork.QSslCertificate.swap": ('PySide2.QtNetwork.QSslCertificate',),
- "PySide2.QtNetwork.QSslCertificate.toDer": (),
- "PySide2.QtNetwork.QSslCertificate.toPem": (),
- "PySide2.QtNetwork.QSslCertificate.toText": (),
- "PySide2.QtNetwork.QSslCertificate.verify": ('typing.Sequence[PySide2.QtNetwork.QSslCertificate]', 'str'),
- "PySide2.QtNetwork.QSslCertificate.version": (),
-# class PySide2.QtNetwork.QSslCertificateExtension:
- "PySide2.QtNetwork.QSslCertificateExtension.__init__": [(), ('PySide2.QtNetwork.QSslCertificateExtension',)],
- "PySide2.QtNetwork.QSslCertificateExtension.__copy__": (),
- "PySide2.QtNetwork.QSslCertificateExtension.isCritical": (),
- "PySide2.QtNetwork.QSslCertificateExtension.isSupported": (),
- "PySide2.QtNetwork.QSslCertificateExtension.name": (),
- "PySide2.QtNetwork.QSslCertificateExtension.oid": (),
- "PySide2.QtNetwork.QSslCertificateExtension.swap": ('PySide2.QtNetwork.QSslCertificateExtension',),
- "PySide2.QtNetwork.QSslCertificateExtension.value": (),
-# class PySide2.QtNetwork.QSslCipher:
- "PySide2.QtNetwork.QSslCipher.__init__": [(), ('PySide2.QtNetwork.QSslCipher',), ('str',), ('str', 'PySide2.QtNetwork.QSsl.SslProtocol')],
- "PySide2.QtNetwork.QSslCipher.__copy__": (),
- "PySide2.QtNetwork.QSslCipher.authenticationMethod": (),
- "PySide2.QtNetwork.QSslCipher.encryptionMethod": (),
- "PySide2.QtNetwork.QSslCipher.isNull": (),
- "PySide2.QtNetwork.QSslCipher.keyExchangeMethod": (),
- "PySide2.QtNetwork.QSslCipher.name": (),
- "PySide2.QtNetwork.QSslCipher.protocol": (),
- "PySide2.QtNetwork.QSslCipher.protocolString": (),
- "PySide2.QtNetwork.QSslCipher.supportedBits": (),
- "PySide2.QtNetwork.QSslCipher.swap": ('PySide2.QtNetwork.QSslCipher',),
- "PySide2.QtNetwork.QSslCipher.usedBits": (),
-# class PySide2.QtNetwork.QSslConfiguration:
-# class PySide2.QtNetwork.QSslConfiguration.NextProtocolNegotiationStatus:
- "PySide2.QtNetwork.QSslConfiguration.__init__": [(), ('PySide2.QtNetwork.QSslConfiguration',)],
- "PySide2.QtNetwork.QSslConfiguration.__copy__": (),
- "PySide2.QtNetwork.QSslConfiguration.allowedNextProtocols": (),
- "PySide2.QtNetwork.QSslConfiguration.backendConfiguration": (),
- "PySide2.QtNetwork.QSslConfiguration.caCertificates": (),
- "PySide2.QtNetwork.QSslConfiguration.ciphers": (),
- "PySide2.QtNetwork.QSslConfiguration.defaultConfiguration": (),
- "PySide2.QtNetwork.QSslConfiguration.defaultDtlsConfiguration": (),
- "PySide2.QtNetwork.QSslConfiguration.diffieHellmanParameters": (),
- "PySide2.QtNetwork.QSslConfiguration.dtlsCookieVerificationEnabled": (),
- "PySide2.QtNetwork.QSslConfiguration.ephemeralServerKey": (),
- "PySide2.QtNetwork.QSslConfiguration.isNull": (),
- "PySide2.QtNetwork.QSslConfiguration.localCertificate": (),
- "PySide2.QtNetwork.QSslConfiguration.localCertificateChain": (),
- "PySide2.QtNetwork.QSslConfiguration.nextNegotiatedProtocol": (),
- "PySide2.QtNetwork.QSslConfiguration.nextProtocolNegotiationStatus": (),
- "PySide2.QtNetwork.QSslConfiguration.ocspStaplingEnabled": (),
- "PySide2.QtNetwork.QSslConfiguration.peerCertificate": (),
- "PySide2.QtNetwork.QSslConfiguration.peerCertificateChain": (),
- "PySide2.QtNetwork.QSslConfiguration.peerVerifyDepth": (),
- "PySide2.QtNetwork.QSslConfiguration.peerVerifyMode": (),
- "PySide2.QtNetwork.QSslConfiguration.preSharedKeyIdentityHint": (),
- "PySide2.QtNetwork.QSslConfiguration.privateKey": (),
- "PySide2.QtNetwork.QSslConfiguration.protocol": (),
- "PySide2.QtNetwork.QSslConfiguration.sessionCipher": (),
- "PySide2.QtNetwork.QSslConfiguration.sessionProtocol": (),
- "PySide2.QtNetwork.QSslConfiguration.sessionTicket": (),
- "PySide2.QtNetwork.QSslConfiguration.sessionTicketLifeTimeHint": (),
- "PySide2.QtNetwork.QSslConfiguration.setAllowedNextProtocols": ('typing.Sequence[PySide2.QtCore.QByteArray]',),
- "PySide2.QtNetwork.QSslConfiguration.setBackendConfiguration": ('typing.Dict[PySide2.QtCore.QByteArray, typing.Any]',),
- "PySide2.QtNetwork.QSslConfiguration.setBackendConfigurationOption": ('PySide2.QtCore.QByteArray', 'typing.Any'),
- "PySide2.QtNetwork.QSslConfiguration.setCaCertificates": ('typing.Sequence[PySide2.QtNetwork.QSslCertificate]',),
- "PySide2.QtNetwork.QSslConfiguration.setCiphers": ('typing.Sequence[PySide2.QtNetwork.QSslCipher]',),
- "PySide2.QtNetwork.QSslConfiguration.setDefaultConfiguration": ('PySide2.QtNetwork.QSslConfiguration',),
- "PySide2.QtNetwork.QSslConfiguration.setDefaultDtlsConfiguration": ('PySide2.QtNetwork.QSslConfiguration',),
- "PySide2.QtNetwork.QSslConfiguration.setDiffieHellmanParameters": ('PySide2.QtNetwork.QSslDiffieHellmanParameters',),
- "PySide2.QtNetwork.QSslConfiguration.setDtlsCookieVerificationEnabled": ('bool',),
- "PySide2.QtNetwork.QSslConfiguration.setLocalCertificate": ('PySide2.QtNetwork.QSslCertificate',),
- "PySide2.QtNetwork.QSslConfiguration.setLocalCertificateChain": ('typing.Sequence[PySide2.QtNetwork.QSslCertificate]',),
- "PySide2.QtNetwork.QSslConfiguration.setOcspStaplingEnabled": ('bool',),
- "PySide2.QtNetwork.QSslConfiguration.setPeerVerifyDepth": ('int',),
- "PySide2.QtNetwork.QSslConfiguration.setPeerVerifyMode": ('PySide2.QtNetwork.QSslSocket.PeerVerifyMode',),
- "PySide2.QtNetwork.QSslConfiguration.setPreSharedKeyIdentityHint": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QSslConfiguration.setPrivateKey": ('PySide2.QtNetwork.QSslKey',),
- "PySide2.QtNetwork.QSslConfiguration.setProtocol": ('PySide2.QtNetwork.QSsl.SslProtocol',),
- "PySide2.QtNetwork.QSslConfiguration.setSessionTicket": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QSslConfiguration.setSslOption": ('PySide2.QtNetwork.QSsl.SslOption', 'bool'),
- "PySide2.QtNetwork.QSslConfiguration.supportedCiphers": (),
- "PySide2.QtNetwork.QSslConfiguration.swap": ('PySide2.QtNetwork.QSslConfiguration',),
- "PySide2.QtNetwork.QSslConfiguration.systemCaCertificates": (),
- "PySide2.QtNetwork.QSslConfiguration.testSslOption": ('PySide2.QtNetwork.QSsl.SslOption',),
-# class PySide2.QtNetwork.QSslDiffieHellmanParameters:
-# class PySide2.QtNetwork.QSslDiffieHellmanParameters.Error:
- "PySide2.QtNetwork.QSslDiffieHellmanParameters.__init__": [(), ('PySide2.QtNetwork.QSslDiffieHellmanParameters',)],
- "PySide2.QtNetwork.QSslDiffieHellmanParameters.__copy__": (),
- "PySide2.QtNetwork.QSslDiffieHellmanParameters.defaultParameters": (),
- "PySide2.QtNetwork.QSslDiffieHellmanParameters.error": (),
- "PySide2.QtNetwork.QSslDiffieHellmanParameters.errorString": (),
- "PySide2.QtNetwork.QSslDiffieHellmanParameters.fromEncoded": [('PySide2.QtCore.QByteArray', 'PySide2.QtNetwork.QSsl.EncodingFormat'), ('PySide2.QtCore.QIODevice', 'PySide2.QtNetwork.QSsl.EncodingFormat')],
- "PySide2.QtNetwork.QSslDiffieHellmanParameters.isEmpty": (),
- "PySide2.QtNetwork.QSslDiffieHellmanParameters.isValid": (),
- "PySide2.QtNetwork.QSslDiffieHellmanParameters.swap": ('PySide2.QtNetwork.QSslDiffieHellmanParameters',),
-# class PySide2.QtNetwork.QSslError:
-# class PySide2.QtNetwork.QSslError.SslError:
- "PySide2.QtNetwork.QSslError.__init__": [(), ('PySide2.QtNetwork.QSslError',), ('PySide2.QtNetwork.QSslError.SslError',), ('PySide2.QtNetwork.QSslError.SslError', 'PySide2.QtNetwork.QSslCertificate')],
- "PySide2.QtNetwork.QSslError.__copy__": (),
- "PySide2.QtNetwork.QSslError.certificate": (),
- "PySide2.QtNetwork.QSslError.error": (),
- "PySide2.QtNetwork.QSslError.errorString": (),
- "PySide2.QtNetwork.QSslError.swap": ('PySide2.QtNetwork.QSslError',),
-# class PySide2.QtNetwork.QSslKey:
- "PySide2.QtNetwork.QSslKey.__init__": [(), ('PySide2.QtCore.QByteArray', 'PySide2.QtNetwork.QSsl.KeyAlgorithm', 'PySide2.QtNetwork.QSsl.EncodingFormat', 'PySide2.QtNetwork.QSsl.KeyType', 'PySide2.QtCore.QByteArray'), ('PySide2.QtCore.QIODevice', 'PySide2.QtNetwork.QSsl.KeyAlgorithm', 'PySide2.QtNetwork.QSsl.EncodingFormat', 'PySide2.QtNetwork.QSsl.KeyType', 'PySide2.QtCore.QByteArray'), ('PySide2.QtNetwork.QSslKey',), ('int', 'PySide2.QtNetwork.QSsl.KeyType')],
- "PySide2.QtNetwork.QSslKey.__copy__": (),
- "PySide2.QtNetwork.QSslKey.algorithm": (),
- "PySide2.QtNetwork.QSslKey.clear": (),
- "PySide2.QtNetwork.QSslKey.handle": (),
- "PySide2.QtNetwork.QSslKey.isNull": (),
- "PySide2.QtNetwork.QSslKey.length": (),
- "PySide2.QtNetwork.QSslKey.swap": ('PySide2.QtNetwork.QSslKey',),
- "PySide2.QtNetwork.QSslKey.toDer": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QSslKey.toPem": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QSslKey.type": (),
-# class PySide2.QtNetwork.QSslPreSharedKeyAuthenticator:
- "PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.__init__": [(), ('PySide2.QtNetwork.QSslPreSharedKeyAuthenticator',)],
- "PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.__copy__": (),
- "PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.identity": (),
- "PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.identityHint": (),
- "PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.maximumIdentityLength": (),
- "PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.maximumPreSharedKeyLength": (),
- "PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.preSharedKey": (),
- "PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.setIdentity": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.setPreSharedKey": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.swap": ('PySide2.QtNetwork.QSslPreSharedKeyAuthenticator',),
-# class PySide2.QtNetwork.QSslSocket:
-# class PySide2.QtNetwork.QSslSocket.PeerVerifyMode:
-# class PySide2.QtNetwork.QSslSocket.SslMode:
- "PySide2.QtNetwork.QSslSocket.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QSslSocket.abort": (),
- "PySide2.QtNetwork.QSslSocket.addCaCertificate": ('PySide2.QtNetwork.QSslCertificate',),
- "PySide2.QtNetwork.QSslSocket.addCaCertificates": [('str', 'PySide2.QtNetwork.QSsl.EncodingFormat', 'PySide2.QtCore.QRegExp.PatternSyntax'), ('typing.Sequence[PySide2.QtNetwork.QSslCertificate]',)],
- "PySide2.QtNetwork.QSslSocket.addDefaultCaCertificate": ('PySide2.QtNetwork.QSslCertificate',),
- "PySide2.QtNetwork.QSslSocket.addDefaultCaCertificates": [('str', 'PySide2.QtNetwork.QSsl.EncodingFormat', 'PySide2.QtCore.QRegExp.PatternSyntax'), ('typing.Sequence[PySide2.QtNetwork.QSslCertificate]',)],
- "PySide2.QtNetwork.QSslSocket.atEnd": (),
- "PySide2.QtNetwork.QSslSocket.bytesAvailable": (),
- "PySide2.QtNetwork.QSslSocket.bytesToWrite": (),
- "PySide2.QtNetwork.QSslSocket.caCertificates": (),
- "PySide2.QtNetwork.QSslSocket.canReadLine": (),
- "PySide2.QtNetwork.QSslSocket.ciphers": (),
- "PySide2.QtNetwork.QSslSocket.close": (),
- "PySide2.QtNetwork.QSslSocket.connectToHost": [('PySide2.QtNetwork.QHostAddress', 'int', 'PySide2.QtCore.QIODevice.OpenMode'), ('str', 'int', 'PySide2.QtCore.QIODevice.OpenMode', 'PySide2.QtNetwork.QAbstractSocket.NetworkLayerProtocol')],
- "PySide2.QtNetwork.QSslSocket.connectToHostEncrypted": [('str', 'int', 'PySide2.QtCore.QIODevice.OpenMode', 'PySide2.QtNetwork.QAbstractSocket.NetworkLayerProtocol'), ('str', 'int', 'str', 'PySide2.QtCore.QIODevice.OpenMode', 'PySide2.QtNetwork.QAbstractSocket.NetworkLayerProtocol')],
- "PySide2.QtNetwork.QSslSocket.defaultCaCertificates": (),
- "PySide2.QtNetwork.QSslSocket.defaultCiphers": (),
- "PySide2.QtNetwork.QSslSocket.disconnectFromHost": (),
- "PySide2.QtNetwork.QSslSocket.encryptedBytesAvailable": (),
- "PySide2.QtNetwork.QSslSocket.encryptedBytesToWrite": (),
- "PySide2.QtNetwork.QSslSocket.flush": (),
- "PySide2.QtNetwork.QSslSocket.ignoreSslErrors": [(), ('typing.Sequence[PySide2.QtNetwork.QSslError]',)],
- "PySide2.QtNetwork.QSslSocket.isEncrypted": (),
- "PySide2.QtNetwork.QSslSocket.localCertificate": (),
- "PySide2.QtNetwork.QSslSocket.localCertificateChain": (),
- "PySide2.QtNetwork.QSslSocket.mode": (),
- "PySide2.QtNetwork.QSslSocket.ocspResponses": (),
- "PySide2.QtNetwork.QSslSocket.peerCertificate": (),
- "PySide2.QtNetwork.QSslSocket.peerCertificateChain": (),
- "PySide2.QtNetwork.QSslSocket.peerVerifyDepth": (),
- "PySide2.QtNetwork.QSslSocket.peerVerifyMode": (),
- "PySide2.QtNetwork.QSslSocket.peerVerifyName": (),
- "PySide2.QtNetwork.QSslSocket.privateKey": (),
- "PySide2.QtNetwork.QSslSocket.protocol": (),
- "PySide2.QtNetwork.QSslSocket.readData": ('str', 'int'),
- "PySide2.QtNetwork.QSslSocket.resume": (),
- "PySide2.QtNetwork.QSslSocket.sessionCipher": (),
- "PySide2.QtNetwork.QSslSocket.sessionProtocol": (),
- "PySide2.QtNetwork.QSslSocket.setCaCertificates": ('typing.Sequence[PySide2.QtNetwork.QSslCertificate]',),
- "PySide2.QtNetwork.QSslSocket.setCiphers": [('str',), ('typing.Sequence[PySide2.QtNetwork.QSslCipher]',)],
- "PySide2.QtNetwork.QSslSocket.setDefaultCaCertificates": ('typing.Sequence[PySide2.QtNetwork.QSslCertificate]',),
- "PySide2.QtNetwork.QSslSocket.setDefaultCiphers": ('typing.Sequence[PySide2.QtNetwork.QSslCipher]',),
- "PySide2.QtNetwork.QSslSocket.setLocalCertificate": [('PySide2.QtNetwork.QSslCertificate',), ('str', 'PySide2.QtNetwork.QSsl.EncodingFormat')],
- "PySide2.QtNetwork.QSslSocket.setLocalCertificateChain": ('typing.Sequence[PySide2.QtNetwork.QSslCertificate]',),
- "PySide2.QtNetwork.QSslSocket.setPeerVerifyDepth": ('int',),
- "PySide2.QtNetwork.QSslSocket.setPeerVerifyMode": ('PySide2.QtNetwork.QSslSocket.PeerVerifyMode',),
- "PySide2.QtNetwork.QSslSocket.setPeerVerifyName": ('str',),
- "PySide2.QtNetwork.QSslSocket.setPrivateKey": [('PySide2.QtNetwork.QSslKey',), ('str', 'PySide2.QtNetwork.QSsl.KeyAlgorithm', 'PySide2.QtNetwork.QSsl.EncodingFormat', 'PySide2.QtCore.QByteArray')],
- "PySide2.QtNetwork.QSslSocket.setProtocol": ('PySide2.QtNetwork.QSsl.SslProtocol',),
- "PySide2.QtNetwork.QSslSocket.setReadBufferSize": ('int',),
- "PySide2.QtNetwork.QSslSocket.setSocketDescriptor": ('int', 'PySide2.QtNetwork.QAbstractSocket.SocketState', 'PySide2.QtCore.QIODevice.OpenMode'),
- "PySide2.QtNetwork.QSslSocket.setSocketOption": ('PySide2.QtNetwork.QAbstractSocket.SocketOption', 'typing.Any'),
- "PySide2.QtNetwork.QSslSocket.setSslConfiguration": ('PySide2.QtNetwork.QSslConfiguration',),
- "PySide2.QtNetwork.QSslSocket.socketOption": ('PySide2.QtNetwork.QAbstractSocket.SocketOption',),
- "PySide2.QtNetwork.QSslSocket.sslConfiguration": (),
- "PySide2.QtNetwork.QSslSocket.sslErrors": (),
- "PySide2.QtNetwork.QSslSocket.sslLibraryBuildVersionNumber": (),
- "PySide2.QtNetwork.QSslSocket.sslLibraryBuildVersionString": (),
- "PySide2.QtNetwork.QSslSocket.sslLibraryVersionNumber": (),
- "PySide2.QtNetwork.QSslSocket.sslLibraryVersionString": (),
- "PySide2.QtNetwork.QSslSocket.startClientEncryption": (),
- "PySide2.QtNetwork.QSslSocket.startServerEncryption": (),
- "PySide2.QtNetwork.QSslSocket.supportedCiphers": (),
- "PySide2.QtNetwork.QSslSocket.supportsSsl": (),
- "PySide2.QtNetwork.QSslSocket.systemCaCertificates": (),
- "PySide2.QtNetwork.QSslSocket.waitForBytesWritten": ('int',),
- "PySide2.QtNetwork.QSslSocket.waitForConnected": ('int',),
- "PySide2.QtNetwork.QSslSocket.waitForDisconnected": ('int',),
- "PySide2.QtNetwork.QSslSocket.waitForEncrypted": ('int',),
- "PySide2.QtNetwork.QSslSocket.waitForReadyRead": ('int',),
- "PySide2.QtNetwork.QSslSocket.writeData": ('str', 'int'),
-# class PySide2.QtNetwork.QTcpServer:
- "PySide2.QtNetwork.QTcpServer.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QTcpServer.addPendingConnection": ('PySide2.QtNetwork.QTcpSocket',),
- "PySide2.QtNetwork.QTcpServer.close": (),
- "PySide2.QtNetwork.QTcpServer.errorString": (),
- "PySide2.QtNetwork.QTcpServer.hasPendingConnections": (),
- "PySide2.QtNetwork.QTcpServer.incomingConnection": ('int',),
- "PySide2.QtNetwork.QTcpServer.isListening": (),
- "PySide2.QtNetwork.QTcpServer.listen": ('PySide2.QtNetwork.QHostAddress', 'int'),
- "PySide2.QtNetwork.QTcpServer.maxPendingConnections": (),
- "PySide2.QtNetwork.QTcpServer.nextPendingConnection": (),
- "PySide2.QtNetwork.QTcpServer.pauseAccepting": (),
- "PySide2.QtNetwork.QTcpServer.proxy": (),
- "PySide2.QtNetwork.QTcpServer.resumeAccepting": (),
- "PySide2.QtNetwork.QTcpServer.serverAddress": (),
- "PySide2.QtNetwork.QTcpServer.serverError": (),
- "PySide2.QtNetwork.QTcpServer.serverPort": (),
- "PySide2.QtNetwork.QTcpServer.setMaxPendingConnections": ('int',),
- "PySide2.QtNetwork.QTcpServer.setProxy": ('PySide2.QtNetwork.QNetworkProxy',),
- "PySide2.QtNetwork.QTcpServer.setSocketDescriptor": ('int',),
- "PySide2.QtNetwork.QTcpServer.socketDescriptor": (),
- "PySide2.QtNetwork.QTcpServer.waitForNewConnection": ('int',),
-# class PySide2.QtNetwork.QTcpSocket:
- "PySide2.QtNetwork.QTcpSocket.__init__": ('PySide2.QtCore.QObject',),
-# class PySide2.QtNetwork.QUdpSocket:
- "PySide2.QtNetwork.QUdpSocket.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QUdpSocket.hasPendingDatagrams": (),
- "PySide2.QtNetwork.QUdpSocket.joinMulticastGroup": [('PySide2.QtNetwork.QHostAddress',), ('PySide2.QtNetwork.QHostAddress', 'PySide2.QtNetwork.QNetworkInterface')],
- "PySide2.QtNetwork.QUdpSocket.leaveMulticastGroup": [('PySide2.QtNetwork.QHostAddress',), ('PySide2.QtNetwork.QHostAddress', 'PySide2.QtNetwork.QNetworkInterface')],
- "PySide2.QtNetwork.QUdpSocket.multicastInterface": (),
- "PySide2.QtNetwork.QUdpSocket.pendingDatagramSize": (),
- "PySide2.QtNetwork.QUdpSocket.readDatagram": ('str', 'int', 'PySide2.QtNetwork.QHostAddress'),
- "PySide2.QtNetwork.QUdpSocket.receiveDatagram": ('int',),
- "PySide2.QtNetwork.QUdpSocket.setMulticastInterface": ('PySide2.QtNetwork.QNetworkInterface',),
- "PySide2.QtNetwork.QUdpSocket.writeDatagram": [('PySide2.QtCore.QByteArray', 'PySide2.QtNetwork.QHostAddress', 'int'), ('PySide2.QtNetwork.QNetworkDatagram',)],
- }) if "PySide2.QtNetwork" in sys.modules else None
-# Module PySide2.QtTest
-sig_dict.update({
-# class PySide2.QtTest.QTest:
-# class PySide2.QtTest.QTest.KeyAction:
-# class PySide2.QtTest.QTest.MouseAction:
-# class PySide2.QtTest.QTest.QBenchmarkMetric:
-# class PySide2.QtTest.QTest.QTouchEventSequence:
- "PySide2.QtTest.QTest.QTouchEventSequence.commit": ('bool',),
- "PySide2.QtTest.QTest.QTouchEventSequence.move": [('int', 'PySide2.QtCore.QPoint', 'PySide2.QtGui.QWindow'), ('int', 'PySide2.QtCore.QPoint', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtTest.QTest.QTouchEventSequence.press": [('int', 'PySide2.QtCore.QPoint', 'PySide2.QtGui.QWindow'), ('int', 'PySide2.QtCore.QPoint', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtTest.QTest.QTouchEventSequence.release": [('int', 'PySide2.QtCore.QPoint', 'PySide2.QtGui.QWindow'), ('int', 'PySide2.QtCore.QPoint', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtTest.QTest.QTouchEventSequence.stationary": ('int',),
-# class PySide2.QtTest.QTest.TestFailMode:
- "PySide2.QtTest.QTest.addColumnInternal": ('int', 'str'),
- "PySide2.QtTest.QTest.asciiToKey": ('int',),
- "PySide2.QtTest.QTest.compare_ptr_helper": ('int', 'int', 'str', 'str', 'str', 'int'),
- "PySide2.QtTest.QTest.compare_string_helper": ('str', 'str', 'str', 'str', 'str', 'int'),
- "PySide2.QtTest.QTest.createTouchDevice": ('PySide2.QtGui.QTouchDevice.DeviceType',),
- "PySide2.QtTest.QTest.currentAppName": (),
- "PySide2.QtTest.QTest.currentDataTag": (),
- "PySide2.QtTest.QTest.currentTestFailed": (),
- "PySide2.QtTest.QTest.currentTestFunction": (),
- "PySide2.QtTest.QTest.ignoreMessage": [('PySide2.QtCore.QtMsgType', 'PySide2.QtCore.QRegularExpression'), ('PySide2.QtCore.QtMsgType', 'str')],
- "PySide2.QtTest.QTest.keyClick": [('PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.Key', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtGui.QWindow', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.Key', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtWidgets.QWidget', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int')],
- "PySide2.QtTest.QTest.keyClicks": ('PySide2.QtWidgets.QWidget', 'str', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'),
- "PySide2.QtTest.QTest.keyEvent": [('PySide2.QtTest.QTest.KeyAction', 'PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.Key', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtTest.QTest.KeyAction', 'PySide2.QtGui.QWindow', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtTest.QTest.KeyAction', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.Key', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtTest.QTest.KeyAction', 'PySide2.QtWidgets.QWidget', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int')],
- "PySide2.QtTest.QTest.keyPress": [('PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.Key', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtGui.QWindow', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.Key', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtWidgets.QWidget', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int')],
- "PySide2.QtTest.QTest.keyRelease": [('PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.Key', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtGui.QWindow', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.Key', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtWidgets.QWidget', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int')],
- "PySide2.QtTest.QTest.keySequence": [('PySide2.QtGui.QWindow', 'PySide2.QtGui.QKeySequence'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtGui.QKeySequence')],
- "PySide2.QtTest.QTest.keyToAscii": ('PySide2.QtCore.Qt.Key',),
- "PySide2.QtTest.QTest.mouseClick": [('PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QPoint', 'int'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QPoint', 'int')],
- "PySide2.QtTest.QTest.mouseDClick": [('PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QPoint', 'int'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QPoint', 'int')],
- "PySide2.QtTest.QTest.mouseEvent": [('PySide2.QtTest.QTest.MouseAction', 'PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QPoint', 'int'), ('PySide2.QtTest.QTest.MouseAction', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QPoint', 'int')],
- "PySide2.QtTest.QTest.mouseMove": [('PySide2.QtGui.QWindow', 'PySide2.QtCore.QPoint', 'int'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QPoint', 'int')],
- "PySide2.QtTest.QTest.mousePress": [('PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QPoint', 'int'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QPoint', 'int')],
- "PySide2.QtTest.QTest.mouseRelease": [('PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QPoint', 'int'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QPoint', 'int')],
- "PySide2.QtTest.QTest.qCleanup": (),
- "PySide2.QtTest.QTest.qElementData": ('str', 'int'),
- "PySide2.QtTest.QTest.qExpectFail": ('str', 'str', 'PySide2.QtTest.QTest.TestFailMode', 'str', 'int'),
- "PySide2.QtTest.QTest.qFindTestData": ('str', 'str', 'int', 'str'),
- "PySide2.QtTest.QTest.qGlobalData": ('str', 'int'),
- "PySide2.QtTest.QTest.qRun": (),
- "PySide2.QtTest.QTest.qSkip": ('str', 'str', 'int'),
- "PySide2.QtTest.QTest.qWaitForWindowActive": ('PySide2.QtWidgets.QWidget', 'int'),
- "PySide2.QtTest.QTest.qWaitForWindowExposed": ('PySide2.QtWidgets.QWidget', 'int'),
- "PySide2.QtTest.QTest.sendKeyEvent": [('PySide2.QtTest.QTest.KeyAction', 'PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.Key', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtTest.QTest.KeyAction', 'PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.Key', 'str', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtTest.QTest.KeyAction', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.Key', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtTest.QTest.KeyAction', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.Key', 'str', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int')],
- "PySide2.QtTest.QTest.setBenchmarkResult": ('float', 'PySide2.QtTest.QTest.QBenchmarkMetric'),
- "PySide2.QtTest.QTest.setMainSourcePath": ('str', 'str'),
- "PySide2.QtTest.QTest.simulateEvent": [('PySide2.QtGui.QWindow', 'bool', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'str', 'bool', 'int'), ('PySide2.QtWidgets.QWidget', 'bool', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'str', 'bool', 'int')],
- "PySide2.QtTest.QTest.testObject": (),
- "PySide2.QtTest.QTest.toPrettyCString": ('str', 'int'),
- "PySide2.QtTest.QTest.touchEvent": [('PySide2.QtGui.QWindow', 'PySide2.QtGui.QTouchDevice', 'bool'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtGui.QTouchDevice', 'bool')],
- }) if "PySide2.QtTest" in sys.modules else None
-# Module PySide2.QtConcurrent
-sig_dict.update({
-# class PySide2.QtConcurrent.QtConcurrent:
-# class PySide2.QtConcurrent.QtConcurrent.ReduceOption:
-# class PySide2.QtConcurrent.QtConcurrent.ReduceOptions:
-# class PySide2.QtConcurrent.QtConcurrent.ThreadFunctionResult:
- }) if "PySide2.QtConcurrent" in sys.modules else None
-# Module PySide2.QtX11Extras
-sig_dict.update({
-# class PySide2.QtX11Extras.QX11Info:
-# class PySide2.QtX11Extras.QX11Info.PeekOption:
-# class PySide2.QtX11Extras.QX11Info.PeekOptions:
- "PySide2.QtX11Extras.QX11Info.appDpiX": ('int',),
- "PySide2.QtX11Extras.QX11Info.appDpiY": ('int',),
- "PySide2.QtX11Extras.QX11Info.appRootWindow": ('int',),
- "PySide2.QtX11Extras.QX11Info.appScreen": (),
- "PySide2.QtX11Extras.QX11Info.appTime": (),
- "PySide2.QtX11Extras.QX11Info.appUserTime": (),
- "PySide2.QtX11Extras.QX11Info.generatePeekerId": (),
- "PySide2.QtX11Extras.QX11Info.getTimestamp": (),
- "PySide2.QtX11Extras.QX11Info.isCompositingManagerRunning": ('int',),
- "PySide2.QtX11Extras.QX11Info.isPlatformX11": (),
- "PySide2.QtX11Extras.QX11Info.nextStartupId": (),
- "PySide2.QtX11Extras.QX11Info.removePeekerId": ('int',),
- "PySide2.QtX11Extras.QX11Info.setAppTime": ('int',),
- "PySide2.QtX11Extras.QX11Info.setAppUserTime": ('int',),
- "PySide2.QtX11Extras.QX11Info.setNextStartupId": ('PySide2.QtCore.QByteArray',),
- }) if "PySide2.QtX11Extras" in sys.modules else None
-# Module PySide2.QtXml
-sig_dict.update({
-# class PySide2.QtXml.QDomAttr:
- "PySide2.QtXml.QDomAttr.__init__": [(), ('PySide2.QtXml.QDomAttr',)],
- "PySide2.QtXml.QDomAttr.__copy__": (),
- "PySide2.QtXml.QDomAttr.name": (),
- "PySide2.QtXml.QDomAttr.nodeType": (),
- "PySide2.QtXml.QDomAttr.ownerElement": (),
- "PySide2.QtXml.QDomAttr.setValue": ('str',),
- "PySide2.QtXml.QDomAttr.specified": (),
- "PySide2.QtXml.QDomAttr.value": (),
-# class PySide2.QtXml.QDomCDATASection:
- "PySide2.QtXml.QDomCDATASection.__init__": [(), ('PySide2.QtXml.QDomCDATASection',)],
- "PySide2.QtXml.QDomCDATASection.__copy__": (),
- "PySide2.QtXml.QDomCDATASection.nodeType": (),
-# class PySide2.QtXml.QDomCharacterData:
- "PySide2.QtXml.QDomCharacterData.__init__": [(), ('PySide2.QtXml.QDomCharacterData',)],
- "PySide2.QtXml.QDomCharacterData.__copy__": (),
- "PySide2.QtXml.QDomCharacterData.appendData": ('str',),
- "PySide2.QtXml.QDomCharacterData.data": (),
- "PySide2.QtXml.QDomCharacterData.deleteData": ('int', 'int'),
- "PySide2.QtXml.QDomCharacterData.insertData": ('int', 'str'),
- "PySide2.QtXml.QDomCharacterData.length": (),
- "PySide2.QtXml.QDomCharacterData.nodeType": (),
- "PySide2.QtXml.QDomCharacterData.replaceData": ('int', 'int', 'str'),
- "PySide2.QtXml.QDomCharacterData.setData": ('str',),
- "PySide2.QtXml.QDomCharacterData.substringData": ('int', 'int'),
-# class PySide2.QtXml.QDomComment:
- "PySide2.QtXml.QDomComment.__init__": [(), ('PySide2.QtXml.QDomComment',)],
- "PySide2.QtXml.QDomComment.__copy__": (),
- "PySide2.QtXml.QDomComment.nodeType": (),
-# class PySide2.QtXml.QDomDocument:
- "PySide2.QtXml.QDomDocument.__init__": [(), ('PySide2.QtXml.QDomDocument',), ('PySide2.QtXml.QDomDocumentType',), ('str',)],
- "PySide2.QtXml.QDomDocument.__copy__": (),
- "PySide2.QtXml.QDomDocument.createAttribute": ('str',),
- "PySide2.QtXml.QDomDocument.createAttributeNS": ('str', 'str'),
- "PySide2.QtXml.QDomDocument.createCDATASection": ('str',),
- "PySide2.QtXml.QDomDocument.createComment": ('str',),
- "PySide2.QtXml.QDomDocument.createDocumentFragment": (),
- "PySide2.QtXml.QDomDocument.createElement": ('str',),
- "PySide2.QtXml.QDomDocument.createElementNS": ('str', 'str'),
- "PySide2.QtXml.QDomDocument.createEntityReference": ('str',),
- "PySide2.QtXml.QDomDocument.createProcessingInstruction": ('str', 'str'),
- "PySide2.QtXml.QDomDocument.createTextNode": ('str',),
- "PySide2.QtXml.QDomDocument.doctype": (),
- "PySide2.QtXml.QDomDocument.documentElement": (),
- "PySide2.QtXml.QDomDocument.elementById": ('str',),
- "PySide2.QtXml.QDomDocument.elementsByTagName": ('str',),
- "PySide2.QtXml.QDomDocument.elementsByTagNameNS": ('str', 'str'),
- "PySide2.QtXml.QDomDocument.implementation": (),
- "PySide2.QtXml.QDomDocument.importNode": ('PySide2.QtXml.QDomNode', 'bool'),
- "PySide2.QtXml.QDomDocument.nodeType": (),
- "PySide2.QtXml.QDomDocument.setContent": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QByteArray', 'bool'), ('PySide2.QtCore.QIODevice',), ('PySide2.QtCore.QIODevice', 'bool'), ('PySide2.QtXml.QXmlInputSource', 'PySide2.QtXml.QXmlReader'), ('PySide2.QtXml.QXmlInputSource', 'bool'), ('str',), ('str', 'bool')],
- "PySide2.QtXml.QDomDocument.toByteArray": ('int',),
- "PySide2.QtXml.QDomDocument.toString": ('int',),
-# class PySide2.QtXml.QDomDocumentFragment:
- "PySide2.QtXml.QDomDocumentFragment.__init__": [(), ('PySide2.QtXml.QDomDocumentFragment',)],
- "PySide2.QtXml.QDomDocumentFragment.__copy__": (),
- "PySide2.QtXml.QDomDocumentFragment.nodeType": (),
-# class PySide2.QtXml.QDomDocumentType:
- "PySide2.QtXml.QDomDocumentType.__init__": [(), ('PySide2.QtXml.QDomDocumentType',)],
- "PySide2.QtXml.QDomDocumentType.__copy__": (),
- "PySide2.QtXml.QDomDocumentType.entities": (),
- "PySide2.QtXml.QDomDocumentType.internalSubset": (),
- "PySide2.QtXml.QDomDocumentType.name": (),
- "PySide2.QtXml.QDomDocumentType.nodeType": (),
- "PySide2.QtXml.QDomDocumentType.notations": (),
- "PySide2.QtXml.QDomDocumentType.publicId": (),
- "PySide2.QtXml.QDomDocumentType.systemId": (),
-# class PySide2.QtXml.QDomElement:
- "PySide2.QtXml.QDomElement.__init__": [(), ('PySide2.QtXml.QDomElement',)],
- "PySide2.QtXml.QDomElement.__copy__": (),
- "PySide2.QtXml.QDomElement.attribute": ('str', 'str'),
- "PySide2.QtXml.QDomElement.attributeNS": ('str', 'str', 'str'),
- "PySide2.QtXml.QDomElement.attributeNode": ('str',),
- "PySide2.QtXml.QDomElement.attributeNodeNS": ('str', 'str'),
- "PySide2.QtXml.QDomElement.attributes": (),
- "PySide2.QtXml.QDomElement.elementsByTagName": ('str',),
- "PySide2.QtXml.QDomElement.elementsByTagNameNS": ('str', 'str'),
- "PySide2.QtXml.QDomElement.hasAttribute": ('str',),
- "PySide2.QtXml.QDomElement.hasAttributeNS": ('str', 'str'),
- "PySide2.QtXml.QDomElement.nodeType": (),
- "PySide2.QtXml.QDomElement.removeAttribute": ('str',),
- "PySide2.QtXml.QDomElement.removeAttributeNS": ('str', 'str'),
- "PySide2.QtXml.QDomElement.removeAttributeNode": ('PySide2.QtXml.QDomAttr',),
- "PySide2.QtXml.QDomElement.setAttribute": [('str', 'float'), ('str', 'int'), ('str', 'str')],
- "PySide2.QtXml.QDomElement.setAttributeNS": [('str', 'str', 'float'), ('str', 'str', 'int'), ('str', 'str', 'str')],
- "PySide2.QtXml.QDomElement.setAttributeNode": ('PySide2.QtXml.QDomAttr',),
- "PySide2.QtXml.QDomElement.setAttributeNodeNS": ('PySide2.QtXml.QDomAttr',),
- "PySide2.QtXml.QDomElement.setTagName": ('str',),
- "PySide2.QtXml.QDomElement.tagName": (),
- "PySide2.QtXml.QDomElement.text": (),
-# class PySide2.QtXml.QDomEntity:
- "PySide2.QtXml.QDomEntity.__init__": [(), ('PySide2.QtXml.QDomEntity',)],
- "PySide2.QtXml.QDomEntity.__copy__": (),
- "PySide2.QtXml.QDomEntity.nodeType": (),
- "PySide2.QtXml.QDomEntity.notationName": (),
- "PySide2.QtXml.QDomEntity.publicId": (),
- "PySide2.QtXml.QDomEntity.systemId": (),
-# class PySide2.QtXml.QDomEntityReference:
- "PySide2.QtXml.QDomEntityReference.__init__": [(), ('PySide2.QtXml.QDomEntityReference',)],
- "PySide2.QtXml.QDomEntityReference.__copy__": (),
- "PySide2.QtXml.QDomEntityReference.nodeType": (),
-# class PySide2.QtXml.QDomImplementation:
-# class PySide2.QtXml.QDomImplementation.InvalidDataPolicy:
- "PySide2.QtXml.QDomImplementation.__init__": [(), ('PySide2.QtXml.QDomImplementation',)],
- "PySide2.QtXml.QDomImplementation.__copy__": (),
- "PySide2.QtXml.QDomImplementation.createDocument": ('str', 'str', 'PySide2.QtXml.QDomDocumentType'),
- "PySide2.QtXml.QDomImplementation.createDocumentType": ('str', 'str', 'str'),
- "PySide2.QtXml.QDomImplementation.hasFeature": ('str', 'str'),
- "PySide2.QtXml.QDomImplementation.invalidDataPolicy": (),
- "PySide2.QtXml.QDomImplementation.isNull": (),
- "PySide2.QtXml.QDomImplementation.setInvalidDataPolicy": ('PySide2.QtXml.QDomImplementation.InvalidDataPolicy',),
-# class PySide2.QtXml.QDomNamedNodeMap:
- "PySide2.QtXml.QDomNamedNodeMap.__init__": [(), ('PySide2.QtXml.QDomNamedNodeMap',)],
- "PySide2.QtXml.QDomNamedNodeMap.__copy__": (),
- "PySide2.QtXml.QDomNamedNodeMap.contains": ('str',),
- "PySide2.QtXml.QDomNamedNodeMap.count": (),
- "PySide2.QtXml.QDomNamedNodeMap.isEmpty": (),
- "PySide2.QtXml.QDomNamedNodeMap.item": ('int',),
- "PySide2.QtXml.QDomNamedNodeMap.length": (),
- "PySide2.QtXml.QDomNamedNodeMap.namedItem": ('str',),
- "PySide2.QtXml.QDomNamedNodeMap.namedItemNS": ('str', 'str'),
- "PySide2.QtXml.QDomNamedNodeMap.removeNamedItem": ('str',),
- "PySide2.QtXml.QDomNamedNodeMap.removeNamedItemNS": ('str', 'str'),
- "PySide2.QtXml.QDomNamedNodeMap.setNamedItem": ('PySide2.QtXml.QDomNode',),
- "PySide2.QtXml.QDomNamedNodeMap.setNamedItemNS": ('PySide2.QtXml.QDomNode',),
- "PySide2.QtXml.QDomNamedNodeMap.size": (),
-# class PySide2.QtXml.QDomNode:
-# class PySide2.QtXml.QDomNode.EncodingPolicy:
-# class PySide2.QtXml.QDomNode.NodeType:
- "PySide2.QtXml.QDomNode.__init__": [(), ('PySide2.QtXml.QDomNode',)],
- "PySide2.QtXml.QDomNode.__copy__": (),
- "PySide2.QtXml.QDomNode.__lshift__": ('PySide2.QtCore.QTextStream',),
- "PySide2.QtXml.QDomNode.appendChild": ('PySide2.QtXml.QDomNode',),
- "PySide2.QtXml.QDomNode.attributes": (),
- "PySide2.QtXml.QDomNode.childNodes": (),
- "PySide2.QtXml.QDomNode.clear": (),
- "PySide2.QtXml.QDomNode.cloneNode": ('bool',),
- "PySide2.QtXml.QDomNode.columnNumber": (),
- "PySide2.QtXml.QDomNode.firstChild": (),
- "PySide2.QtXml.QDomNode.firstChildElement": ('str',),
- "PySide2.QtXml.QDomNode.hasAttributes": (),
- "PySide2.QtXml.QDomNode.hasChildNodes": (),
- "PySide2.QtXml.QDomNode.insertAfter": ('PySide2.QtXml.QDomNode', 'PySide2.QtXml.QDomNode'),
- "PySide2.QtXml.QDomNode.insertBefore": ('PySide2.QtXml.QDomNode', 'PySide2.QtXml.QDomNode'),
- "PySide2.QtXml.QDomNode.isAttr": (),
- "PySide2.QtXml.QDomNode.isCDATASection": (),
- "PySide2.QtXml.QDomNode.isCharacterData": (),
- "PySide2.QtXml.QDomNode.isComment": (),
- "PySide2.QtXml.QDomNode.isDocument": (),
- "PySide2.QtXml.QDomNode.isDocumentFragment": (),
- "PySide2.QtXml.QDomNode.isDocumentType": (),
- "PySide2.QtXml.QDomNode.isElement": (),
- "PySide2.QtXml.QDomNode.isEntity": (),
- "PySide2.QtXml.QDomNode.isEntityReference": (),
- "PySide2.QtXml.QDomNode.isNotation": (),
- "PySide2.QtXml.QDomNode.isNull": (),
- "PySide2.QtXml.QDomNode.isProcessingInstruction": (),
- "PySide2.QtXml.QDomNode.isSupported": ('str', 'str'),
- "PySide2.QtXml.QDomNode.isText": (),
- "PySide2.QtXml.QDomNode.lastChild": (),
- "PySide2.QtXml.QDomNode.lastChildElement": ('str',),
- "PySide2.QtXml.QDomNode.lineNumber": (),
- "PySide2.QtXml.QDomNode.localName": (),
- "PySide2.QtXml.QDomNode.namedItem": ('str',),
- "PySide2.QtXml.QDomNode.namespaceURI": (),
- "PySide2.QtXml.QDomNode.nextSibling": (),
- "PySide2.QtXml.QDomNode.nextSiblingElement": ('str',),
- "PySide2.QtXml.QDomNode.nodeName": (),
- "PySide2.QtXml.QDomNode.nodeType": (),
- "PySide2.QtXml.QDomNode.nodeValue": (),
- "PySide2.QtXml.QDomNode.normalize": (),
- "PySide2.QtXml.QDomNode.ownerDocument": (),
- "PySide2.QtXml.QDomNode.parentNode": (),
- "PySide2.QtXml.QDomNode.prefix": (),
- "PySide2.QtXml.QDomNode.previousSibling": (),
- "PySide2.QtXml.QDomNode.previousSiblingElement": ('str',),
- "PySide2.QtXml.QDomNode.removeChild": ('PySide2.QtXml.QDomNode',),
- "PySide2.QtXml.QDomNode.replaceChild": ('PySide2.QtXml.QDomNode', 'PySide2.QtXml.QDomNode'),
- "PySide2.QtXml.QDomNode.save": ('PySide2.QtCore.QTextStream', 'int', 'PySide2.QtXml.QDomNode.EncodingPolicy'),
- "PySide2.QtXml.QDomNode.setNodeValue": ('str',),
- "PySide2.QtXml.QDomNode.setPrefix": ('str',),
- "PySide2.QtXml.QDomNode.toAttr": (),
- "PySide2.QtXml.QDomNode.toCDATASection": (),
- "PySide2.QtXml.QDomNode.toCharacterData": (),
- "PySide2.QtXml.QDomNode.toComment": (),
- "PySide2.QtXml.QDomNode.toDocument": (),
- "PySide2.QtXml.QDomNode.toDocumentFragment": (),
- "PySide2.QtXml.QDomNode.toDocumentType": (),
- "PySide2.QtXml.QDomNode.toElement": (),
- "PySide2.QtXml.QDomNode.toEntity": (),
- "PySide2.QtXml.QDomNode.toEntityReference": (),
- "PySide2.QtXml.QDomNode.toNotation": (),
- "PySide2.QtXml.QDomNode.toProcessingInstruction": (),
- "PySide2.QtXml.QDomNode.toText": (),
-# class PySide2.QtXml.QDomNodeList:
- "PySide2.QtXml.QDomNodeList.__init__": [(), ('PySide2.QtXml.QDomNodeList',)],
- "PySide2.QtXml.QDomNodeList.__copy__": (),
- "PySide2.QtXml.QDomNodeList.at": ('int',),
- "PySide2.QtXml.QDomNodeList.count": (),
- "PySide2.QtXml.QDomNodeList.isEmpty": (),
- "PySide2.QtXml.QDomNodeList.item": ('int',),
- "PySide2.QtXml.QDomNodeList.length": (),
- "PySide2.QtXml.QDomNodeList.size": (),
-# class PySide2.QtXml.QDomNotation:
- "PySide2.QtXml.QDomNotation.__init__": [(), ('PySide2.QtXml.QDomNotation',)],
- "PySide2.QtXml.QDomNotation.__copy__": (),
- "PySide2.QtXml.QDomNotation.nodeType": (),
- "PySide2.QtXml.QDomNotation.publicId": (),
- "PySide2.QtXml.QDomNotation.systemId": (),
-# class PySide2.QtXml.QDomProcessingInstruction:
- "PySide2.QtXml.QDomProcessingInstruction.__init__": [(), ('PySide2.QtXml.QDomProcessingInstruction',)],
- "PySide2.QtXml.QDomProcessingInstruction.__copy__": (),
- "PySide2.QtXml.QDomProcessingInstruction.data": (),
- "PySide2.QtXml.QDomProcessingInstruction.nodeType": (),
- "PySide2.QtXml.QDomProcessingInstruction.setData": ('str',),
- "PySide2.QtXml.QDomProcessingInstruction.target": (),
-# class PySide2.QtXml.QDomText:
- "PySide2.QtXml.QDomText.__init__": [(), ('PySide2.QtXml.QDomText',)],
- "PySide2.QtXml.QDomText.__copy__": (),
- "PySide2.QtXml.QDomText.nodeType": (),
- "PySide2.QtXml.QDomText.splitText": ('int',),
-# class PySide2.QtXml.QXmlAttributes:
- "PySide2.QtXml.QXmlAttributes.__init__": [(), ('PySide2.QtXml.QXmlAttributes',)],
- "PySide2.QtXml.QXmlAttributes.__copy__": (),
- "PySide2.QtXml.QXmlAttributes.append": ('str', 'str', 'str', 'str'),
- "PySide2.QtXml.QXmlAttributes.clear": (),
- "PySide2.QtXml.QXmlAttributes.count": (),
- "PySide2.QtXml.QXmlAttributes.index": [('str',), ('str', 'str')],
- "PySide2.QtXml.QXmlAttributes.length": (),
- "PySide2.QtXml.QXmlAttributes.localName": ('int',),
- "PySide2.QtXml.QXmlAttributes.qName": ('int',),
- "PySide2.QtXml.QXmlAttributes.swap": ('PySide2.QtXml.QXmlAttributes',),
- "PySide2.QtXml.QXmlAttributes.type": [('int',), ('str',), ('str', 'str')],
- "PySide2.QtXml.QXmlAttributes.uri": ('int',),
- "PySide2.QtXml.QXmlAttributes.value": [('int',), ('str',), ('str', 'str')],
-# class PySide2.QtXml.QXmlContentHandler:
- "PySide2.QtXml.QXmlContentHandler.__init__": (),
- "PySide2.QtXml.QXmlContentHandler.characters": ('str',),
- "PySide2.QtXml.QXmlContentHandler.endDocument": (),
- "PySide2.QtXml.QXmlContentHandler.endElement": ('str', 'str', 'str'),
- "PySide2.QtXml.QXmlContentHandler.endPrefixMapping": ('str',),
- "PySide2.QtXml.QXmlContentHandler.errorString": (),
- "PySide2.QtXml.QXmlContentHandler.ignorableWhitespace": ('str',),
- "PySide2.QtXml.QXmlContentHandler.processingInstruction": ('str', 'str'),
- "PySide2.QtXml.QXmlContentHandler.setDocumentLocator": ('PySide2.QtXml.QXmlLocator',),
- "PySide2.QtXml.QXmlContentHandler.skippedEntity": ('str',),
- "PySide2.QtXml.QXmlContentHandler.startDocument": (),
- "PySide2.QtXml.QXmlContentHandler.startElement": ('str', 'str', 'str', 'PySide2.QtXml.QXmlAttributes'),
- "PySide2.QtXml.QXmlContentHandler.startPrefixMapping": ('str', 'str'),
-# class PySide2.QtXml.QXmlDTDHandler:
- "PySide2.QtXml.QXmlDTDHandler.__init__": (),
- "PySide2.QtXml.QXmlDTDHandler.errorString": (),
- "PySide2.QtXml.QXmlDTDHandler.notationDecl": ('str', 'str', 'str'),
- "PySide2.QtXml.QXmlDTDHandler.unparsedEntityDecl": ('str', 'str', 'str', 'str'),
-# class PySide2.QtXml.QXmlDeclHandler:
- "PySide2.QtXml.QXmlDeclHandler.__init__": (),
- "PySide2.QtXml.QXmlDeclHandler.attributeDecl": ('str', 'str', 'str', 'str', 'str'),
- "PySide2.QtXml.QXmlDeclHandler.errorString": (),
- "PySide2.QtXml.QXmlDeclHandler.externalEntityDecl": ('str', 'str', 'str'),
- "PySide2.QtXml.QXmlDeclHandler.internalEntityDecl": ('str', 'str'),
-# class PySide2.QtXml.QXmlDefaultHandler:
- "PySide2.QtXml.QXmlDefaultHandler.__init__": (),
- "PySide2.QtXml.QXmlDefaultHandler.attributeDecl": ('str', 'str', 'str', 'str', 'str'),
- "PySide2.QtXml.QXmlDefaultHandler.characters": ('str',),
- "PySide2.QtXml.QXmlDefaultHandler.comment": ('str',),
- "PySide2.QtXml.QXmlDefaultHandler.endCDATA": (),
- "PySide2.QtXml.QXmlDefaultHandler.endDTD": (),
- "PySide2.QtXml.QXmlDefaultHandler.endDocument": (),
- "PySide2.QtXml.QXmlDefaultHandler.endElement": ('str', 'str', 'str'),
- "PySide2.QtXml.QXmlDefaultHandler.endEntity": ('str',),
- "PySide2.QtXml.QXmlDefaultHandler.endPrefixMapping": ('str',),
- "PySide2.QtXml.QXmlDefaultHandler.error": ('PySide2.QtXml.QXmlParseException',),
- "PySide2.QtXml.QXmlDefaultHandler.errorString": (),
- "PySide2.QtXml.QXmlDefaultHandler.externalEntityDecl": ('str', 'str', 'str'),
- "PySide2.QtXml.QXmlDefaultHandler.fatalError": ('PySide2.QtXml.QXmlParseException',),
- "PySide2.QtXml.QXmlDefaultHandler.ignorableWhitespace": ('str',),
- "PySide2.QtXml.QXmlDefaultHandler.internalEntityDecl": ('str', 'str'),
- "PySide2.QtXml.QXmlDefaultHandler.notationDecl": ('str', 'str', 'str'),
- "PySide2.QtXml.QXmlDefaultHandler.processingInstruction": ('str', 'str'),
- "PySide2.QtXml.QXmlDefaultHandler.resolveEntity": ('str', 'str', 'PySide2.QtXml.QXmlInputSource'),
- "PySide2.QtXml.QXmlDefaultHandler.setDocumentLocator": ('PySide2.QtXml.QXmlLocator',),
- "PySide2.QtXml.QXmlDefaultHandler.skippedEntity": ('str',),
- "PySide2.QtXml.QXmlDefaultHandler.startCDATA": (),
- "PySide2.QtXml.QXmlDefaultHandler.startDTD": ('str', 'str', 'str'),
- "PySide2.QtXml.QXmlDefaultHandler.startDocument": (),
- "PySide2.QtXml.QXmlDefaultHandler.startElement": ('str', 'str', 'str', 'PySide2.QtXml.QXmlAttributes'),
- "PySide2.QtXml.QXmlDefaultHandler.startEntity": ('str',),
- "PySide2.QtXml.QXmlDefaultHandler.startPrefixMapping": ('str', 'str'),
- "PySide2.QtXml.QXmlDefaultHandler.unparsedEntityDecl": ('str', 'str', 'str', 'str'),
- "PySide2.QtXml.QXmlDefaultHandler.warning": ('PySide2.QtXml.QXmlParseException',),
-# class PySide2.QtXml.QXmlEntityResolver:
- "PySide2.QtXml.QXmlEntityResolver.__init__": (),
- "PySide2.QtXml.QXmlEntityResolver.errorString": (),
- "PySide2.QtXml.QXmlEntityResolver.resolveEntity": ('str', 'str', 'PySide2.QtXml.QXmlInputSource'),
-# class PySide2.QtXml.QXmlErrorHandler:
- "PySide2.QtXml.QXmlErrorHandler.__init__": (),
- "PySide2.QtXml.QXmlErrorHandler.error": ('PySide2.QtXml.QXmlParseException',),
- "PySide2.QtXml.QXmlErrorHandler.errorString": (),
- "PySide2.QtXml.QXmlErrorHandler.fatalError": ('PySide2.QtXml.QXmlParseException',),
- "PySide2.QtXml.QXmlErrorHandler.warning": ('PySide2.QtXml.QXmlParseException',),
-# class PySide2.QtXml.QXmlInputSource:
- "PySide2.QtXml.QXmlInputSource.__init__": [(), ('PySide2.QtCore.QIODevice',)],
- "PySide2.QtXml.QXmlInputSource.data": (),
- "PySide2.QtXml.QXmlInputSource.fetchData": (),
- "PySide2.QtXml.QXmlInputSource.fromRawData": ('PySide2.QtCore.QByteArray', 'bool'),
- "PySide2.QtXml.QXmlInputSource.reset": (),
- "PySide2.QtXml.QXmlInputSource.setData": [('PySide2.QtCore.QByteArray',), ('str',)],
-# class PySide2.QtXml.QXmlLexicalHandler:
- "PySide2.QtXml.QXmlLexicalHandler.__init__": (),
- "PySide2.QtXml.QXmlLexicalHandler.comment": ('str',),
- "PySide2.QtXml.QXmlLexicalHandler.endCDATA": (),
- "PySide2.QtXml.QXmlLexicalHandler.endDTD": (),
- "PySide2.QtXml.QXmlLexicalHandler.endEntity": ('str',),
- "PySide2.QtXml.QXmlLexicalHandler.errorString": (),
- "PySide2.QtXml.QXmlLexicalHandler.startCDATA": (),
- "PySide2.QtXml.QXmlLexicalHandler.startDTD": ('str', 'str', 'str'),
- "PySide2.QtXml.QXmlLexicalHandler.startEntity": ('str',),
-# class PySide2.QtXml.QXmlLocator:
- "PySide2.QtXml.QXmlLocator.__init__": (),
- "PySide2.QtXml.QXmlLocator.columnNumber": (),
- "PySide2.QtXml.QXmlLocator.lineNumber": (),
-# class PySide2.QtXml.QXmlNamespaceSupport:
- "PySide2.QtXml.QXmlNamespaceSupport.__init__": (),
- "PySide2.QtXml.QXmlNamespaceSupport.popContext": (),
- "PySide2.QtXml.QXmlNamespaceSupport.prefix": ('str',),
- "PySide2.QtXml.QXmlNamespaceSupport.prefixes": [(), ('str',)],
- "PySide2.QtXml.QXmlNamespaceSupport.processName": ('str', 'bool', 'str', 'str'),
- "PySide2.QtXml.QXmlNamespaceSupport.pushContext": (),
- "PySide2.QtXml.QXmlNamespaceSupport.reset": (),
- "PySide2.QtXml.QXmlNamespaceSupport.setPrefix": ('str', 'str'),
- "PySide2.QtXml.QXmlNamespaceSupport.splitName": ('str', 'str', 'str'),
- "PySide2.QtXml.QXmlNamespaceSupport.uri": ('str',),
-# class PySide2.QtXml.QXmlParseException:
- "PySide2.QtXml.QXmlParseException.__init__": [('PySide2.QtXml.QXmlParseException',), ('str', 'int', 'int', 'str', 'str')],
- "PySide2.QtXml.QXmlParseException.columnNumber": (),
- "PySide2.QtXml.QXmlParseException.lineNumber": (),
- "PySide2.QtXml.QXmlParseException.message": (),
- "PySide2.QtXml.QXmlParseException.publicId": (),
- "PySide2.QtXml.QXmlParseException.systemId": (),
-# class PySide2.QtXml.QXmlReader:
- "PySide2.QtXml.QXmlReader.__init__": (),
- "PySide2.QtXml.QXmlReader.DTDHandler": (),
- "PySide2.QtXml.QXmlReader.contentHandler": (),
- "PySide2.QtXml.QXmlReader.declHandler": (),
- "PySide2.QtXml.QXmlReader.entityResolver": (),
- "PySide2.QtXml.QXmlReader.errorHandler": (),
- "PySide2.QtXml.QXmlReader.feature": ('str',),
- "PySide2.QtXml.QXmlReader.hasFeature": ('str',),
- "PySide2.QtXml.QXmlReader.hasProperty": ('str',),
- "PySide2.QtXml.QXmlReader.lexicalHandler": (),
- "PySide2.QtXml.QXmlReader.parse": ('PySide2.QtXml.QXmlInputSource',),
- "PySide2.QtXml.QXmlReader.property": ('str',),
- "PySide2.QtXml.QXmlReader.setContentHandler": ('PySide2.QtXml.QXmlContentHandler',),
- "PySide2.QtXml.QXmlReader.setDTDHandler": ('PySide2.QtXml.QXmlDTDHandler',),
- "PySide2.QtXml.QXmlReader.setDeclHandler": ('PySide2.QtXml.QXmlDeclHandler',),
- "PySide2.QtXml.QXmlReader.setEntityResolver": ('PySide2.QtXml.QXmlEntityResolver',),
- "PySide2.QtXml.QXmlReader.setErrorHandler": ('PySide2.QtXml.QXmlErrorHandler',),
- "PySide2.QtXml.QXmlReader.setFeature": ('str', 'bool'),
- "PySide2.QtXml.QXmlReader.setLexicalHandler": ('PySide2.QtXml.QXmlLexicalHandler',),
- "PySide2.QtXml.QXmlReader.setProperty": ('str', 'int'),
-# class PySide2.QtXml.QXmlSimpleReader:
- "PySide2.QtXml.QXmlSimpleReader.__init__": (),
- "PySide2.QtXml.QXmlSimpleReader.DTDHandler": (),
- "PySide2.QtXml.QXmlSimpleReader.contentHandler": (),
- "PySide2.QtXml.QXmlSimpleReader.declHandler": (),
- "PySide2.QtXml.QXmlSimpleReader.entityResolver": (),
- "PySide2.QtXml.QXmlSimpleReader.errorHandler": (),
- "PySide2.QtXml.QXmlSimpleReader.feature": ('str',),
- "PySide2.QtXml.QXmlSimpleReader.hasFeature": ('str',),
- "PySide2.QtXml.QXmlSimpleReader.hasProperty": ('str',),
- "PySide2.QtXml.QXmlSimpleReader.lexicalHandler": (),
- "PySide2.QtXml.QXmlSimpleReader.parse": [('PySide2.QtXml.QXmlInputSource',), ('PySide2.QtXml.QXmlInputSource', 'bool')],
- "PySide2.QtXml.QXmlSimpleReader.parseContinue": (),
- "PySide2.QtXml.QXmlSimpleReader.property": ('str',),
- "PySide2.QtXml.QXmlSimpleReader.setContentHandler": ('PySide2.QtXml.QXmlContentHandler',),
- "PySide2.QtXml.QXmlSimpleReader.setDTDHandler": ('PySide2.QtXml.QXmlDTDHandler',),
- "PySide2.QtXml.QXmlSimpleReader.setDeclHandler": ('PySide2.QtXml.QXmlDeclHandler',),
- "PySide2.QtXml.QXmlSimpleReader.setEntityResolver": ('PySide2.QtXml.QXmlEntityResolver',),
- "PySide2.QtXml.QXmlSimpleReader.setErrorHandler": ('PySide2.QtXml.QXmlErrorHandler',),
- "PySide2.QtXml.QXmlSimpleReader.setFeature": ('str', 'bool'),
- "PySide2.QtXml.QXmlSimpleReader.setLexicalHandler": ('PySide2.QtXml.QXmlLexicalHandler',),
- "PySide2.QtXml.QXmlSimpleReader.setProperty": ('str', 'int'),
- }) if "PySide2.QtXml" in sys.modules else None
-# Module PySide2.QtXmlPatterns
-sig_dict.update({
-# class PySide2.QtXmlPatterns.QAbstractMessageHandler:
- "PySide2.QtXmlPatterns.QAbstractMessageHandler.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtXmlPatterns.QAbstractMessageHandler.handleMessage": ('PySide2.QtCore.QtMsgType', 'str', 'PySide2.QtCore.QUrl', 'PySide2.QtXmlPatterns.QSourceLocation'),
- "PySide2.QtXmlPatterns.QAbstractMessageHandler.message": ('PySide2.QtCore.QtMsgType', 'str', 'PySide2.QtCore.QUrl', 'PySide2.QtXmlPatterns.QSourceLocation'),
-# class PySide2.QtXmlPatterns.QAbstractUriResolver:
- "PySide2.QtXmlPatterns.QAbstractUriResolver.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtXmlPatterns.QAbstractUriResolver.resolve": ('PySide2.QtCore.QUrl', 'PySide2.QtCore.QUrl'),
-# class PySide2.QtXmlPatterns.QAbstractXmlNodeModel:
-# class PySide2.QtXmlPatterns.QAbstractXmlNodeModel.NodeCopySetting:
-# class PySide2.QtXmlPatterns.QAbstractXmlNodeModel.SimpleAxis:
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.__init__": (),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.attributes": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.baseUri": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.compareOrder": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex', 'PySide2.QtXmlPatterns.QXmlNodeModelIndex'),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.createIndex": [('int',), ('int', 'int')],
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.documentUri": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.elementById": ('PySide2.QtXmlPatterns.QXmlName',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.isDeepEqual": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex', 'PySide2.QtXmlPatterns.QXmlNodeModelIndex'),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.kind": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.name": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.namespaceBindings": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.namespaceForPrefix": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex', 'Missing("PySide2.QtXmlPatterns.QXmlName.PrefixCode")'),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.nextFromSimpleAxis": ('PySide2.QtXmlPatterns.QAbstractXmlNodeModel.SimpleAxis', 'PySide2.QtXmlPatterns.QXmlNodeModelIndex'),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.nodesByIdref": ('PySide2.QtXmlPatterns.QXmlName',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.root": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.sendNamespaces": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex', 'PySide2.QtXmlPatterns.QAbstractXmlReceiver'),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.sourceLocation": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.stringValue": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.typedValue": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',),
-# class PySide2.QtXmlPatterns.QAbstractXmlReceiver:
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.__init__": (),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.atomicValue": ('typing.Any',),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.attribute": ('PySide2.QtXmlPatterns.QXmlName', 'str'),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.characters": ('str',),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.comment": ('str',),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.endDocument": (),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.endElement": (),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.endOfSequence": (),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.namespaceBinding": ('PySide2.QtXmlPatterns.QXmlName',),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.processingInstruction": ('PySide2.QtXmlPatterns.QXmlName', 'str'),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.startDocument": (),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.startElement": ('PySide2.QtXmlPatterns.QXmlName',),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.startOfSequence": (),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.whitespaceOnly": ('str',),
-# class PySide2.QtXmlPatterns.QSourceLocation:
- "PySide2.QtXmlPatterns.QSourceLocation.__init__": [(), ('PySide2.QtCore.QUrl', 'int', 'int'), ('PySide2.QtXmlPatterns.QSourceLocation',)],
- "PySide2.QtXmlPatterns.QSourceLocation.__copy__": (),
- "PySide2.QtXmlPatterns.QSourceLocation.column": (),
- "PySide2.QtXmlPatterns.QSourceLocation.isNull": (),
- "PySide2.QtXmlPatterns.QSourceLocation.line": (),
- "PySide2.QtXmlPatterns.QSourceLocation.setColumn": ('int',),
- "PySide2.QtXmlPatterns.QSourceLocation.setLine": ('int',),
- "PySide2.QtXmlPatterns.QSourceLocation.setUri": ('PySide2.QtCore.QUrl',),
- "PySide2.QtXmlPatterns.QSourceLocation.uri": (),
-# class PySide2.QtXmlPatterns.QXmlFormatter:
- "PySide2.QtXmlPatterns.QXmlFormatter.__init__": ('PySide2.QtXmlPatterns.QXmlQuery', 'PySide2.QtCore.QIODevice'),
- "PySide2.QtXmlPatterns.QXmlFormatter.atomicValue": ('typing.Any',),
- "PySide2.QtXmlPatterns.QXmlFormatter.attribute": ('PySide2.QtXmlPatterns.QXmlName', 'str'),
- "PySide2.QtXmlPatterns.QXmlFormatter.characters": ('str',),
- "PySide2.QtXmlPatterns.QXmlFormatter.comment": ('str',),
- "PySide2.QtXmlPatterns.QXmlFormatter.endDocument": (),
- "PySide2.QtXmlPatterns.QXmlFormatter.endElement": (),
- "PySide2.QtXmlPatterns.QXmlFormatter.endOfSequence": (),
- "PySide2.QtXmlPatterns.QXmlFormatter.indentationDepth": (),
- "PySide2.QtXmlPatterns.QXmlFormatter.processingInstruction": ('PySide2.QtXmlPatterns.QXmlName', 'str'),
- "PySide2.QtXmlPatterns.QXmlFormatter.setIndentationDepth": ('int',),
- "PySide2.QtXmlPatterns.QXmlFormatter.startDocument": (),
- "PySide2.QtXmlPatterns.QXmlFormatter.startElement": ('PySide2.QtXmlPatterns.QXmlName',),
- "PySide2.QtXmlPatterns.QXmlFormatter.startOfSequence": (),
-# class PySide2.QtXmlPatterns.QXmlItem:
- "PySide2.QtXmlPatterns.QXmlItem.__init__": [(), ('PySide2.QtXmlPatterns.QXmlItem',), ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',), ('typing.Any',)],
- "PySide2.QtXmlPatterns.QXmlItem.__copy__": (),
- "PySide2.QtXmlPatterns.QXmlItem.isAtomicValue": (),
- "PySide2.QtXmlPatterns.QXmlItem.isNode": (),
- "PySide2.QtXmlPatterns.QXmlItem.isNull": (),
- "PySide2.QtXmlPatterns.QXmlItem.toAtomicValue": (),
- "PySide2.QtXmlPatterns.QXmlItem.toNodeModelIndex": (),
-# class PySide2.QtXmlPatterns.QXmlName:
- "PySide2.QtXmlPatterns.QXmlName.__init__": [(), ('PySide2.QtXmlPatterns.QXmlName',), ('PySide2.QtXmlPatterns.QXmlNamePool', 'str', 'str', 'str')],
- "PySide2.QtXmlPatterns.QXmlName.__copy__": (),
- "PySide2.QtXmlPatterns.QXmlName.fromClarkName": ('str', 'PySide2.QtXmlPatterns.QXmlNamePool'),
- "PySide2.QtXmlPatterns.QXmlName.isNCName": ('str',),
- "PySide2.QtXmlPatterns.QXmlName.isNull": (),
- "PySide2.QtXmlPatterns.QXmlName.localName": ('PySide2.QtXmlPatterns.QXmlNamePool',),
- "PySide2.QtXmlPatterns.QXmlName.namespaceUri": ('PySide2.QtXmlPatterns.QXmlNamePool',),
- "PySide2.QtXmlPatterns.QXmlName.prefix": ('PySide2.QtXmlPatterns.QXmlNamePool',),
- "PySide2.QtXmlPatterns.QXmlName.toClarkName": ('PySide2.QtXmlPatterns.QXmlNamePool',),
-# class PySide2.QtXmlPatterns.QXmlNamePool:
- "PySide2.QtXmlPatterns.QXmlNamePool.__init__": [(), ('PySide2.QtXmlPatterns.QXmlNamePool',)],
- "PySide2.QtXmlPatterns.QXmlNamePool.__copy__": (),
-# class PySide2.QtXmlPatterns.QXmlNodeModelIndex:
-# class PySide2.QtXmlPatterns.QXmlNodeModelIndex.DocumentOrder:
-# class PySide2.QtXmlPatterns.QXmlNodeModelIndex.NodeKind:
- "PySide2.QtXmlPatterns.QXmlNodeModelIndex.__init__": [(), ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',)],
- "PySide2.QtXmlPatterns.QXmlNodeModelIndex.__copy__": (),
- "PySide2.QtXmlPatterns.QXmlNodeModelIndex.additionalData": (),
- "PySide2.QtXmlPatterns.QXmlNodeModelIndex.data": (),
- "PySide2.QtXmlPatterns.QXmlNodeModelIndex.internalPointer": (),
- "PySide2.QtXmlPatterns.QXmlNodeModelIndex.isNull": (),
- "PySide2.QtXmlPatterns.QXmlNodeModelIndex.model": (),
-# class PySide2.QtXmlPatterns.QXmlQuery:
-# class PySide2.QtXmlPatterns.QXmlQuery.QueryLanguage:
- "PySide2.QtXmlPatterns.QXmlQuery.__init__": [(), ('PySide2.QtXmlPatterns.QXmlNamePool',), ('PySide2.QtXmlPatterns.QXmlQuery',), ('PySide2.QtXmlPatterns.QXmlQuery.QueryLanguage', 'PySide2.QtXmlPatterns.QXmlNamePool')],
- "PySide2.QtXmlPatterns.QXmlQuery.__copy__": (),
- "PySide2.QtXmlPatterns.QXmlQuery.bindVariable": [('PySide2.QtXmlPatterns.QXmlName', 'PySide2.QtCore.QIODevice'), ('PySide2.QtXmlPatterns.QXmlName', 'PySide2.QtXmlPatterns.QXmlItem'), ('PySide2.QtXmlPatterns.QXmlName', 'PySide2.QtXmlPatterns.QXmlQuery'), ('str', 'PySide2.QtCore.QIODevice'), ('str', 'PySide2.QtXmlPatterns.QXmlItem'), ('str', 'PySide2.QtXmlPatterns.QXmlQuery')],
- "PySide2.QtXmlPatterns.QXmlQuery.evaluateTo": [('PySide2.QtCore.QIODevice',), ('PySide2.QtXmlPatterns.QAbstractXmlReceiver',), ('PySide2.QtXmlPatterns.QXmlResultItems',)],
- "PySide2.QtXmlPatterns.QXmlQuery.initialTemplateName": (),
- "PySide2.QtXmlPatterns.QXmlQuery.isValid": (),
- "PySide2.QtXmlPatterns.QXmlQuery.messageHandler": (),
- "PySide2.QtXmlPatterns.QXmlQuery.namePool": (),
- "PySide2.QtXmlPatterns.QXmlQuery.queryLanguage": (),
- "PySide2.QtXmlPatterns.QXmlQuery.setFocus": [('PySide2.QtCore.QIODevice',), ('PySide2.QtCore.QUrl',), ('PySide2.QtXmlPatterns.QXmlItem',), ('str',)],
- "PySide2.QtXmlPatterns.QXmlQuery.setInitialTemplateName": [('PySide2.QtXmlPatterns.QXmlName',), ('str',)],
- "PySide2.QtXmlPatterns.QXmlQuery.setMessageHandler": ('PySide2.QtXmlPatterns.QAbstractMessageHandler',),
- "PySide2.QtXmlPatterns.QXmlQuery.setQuery": [('PySide2.QtCore.QIODevice', 'PySide2.QtCore.QUrl'), ('PySide2.QtCore.QUrl', 'PySide2.QtCore.QUrl'), ('str', 'PySide2.QtCore.QUrl')],
- "PySide2.QtXmlPatterns.QXmlQuery.setUriResolver": ('PySide2.QtXmlPatterns.QAbstractUriResolver',),
- "PySide2.QtXmlPatterns.QXmlQuery.uriResolver": (),
-# class PySide2.QtXmlPatterns.QXmlResultItems:
- "PySide2.QtXmlPatterns.QXmlResultItems.__init__": (),
- "PySide2.QtXmlPatterns.QXmlResultItems.current": (),
- "PySide2.QtXmlPatterns.QXmlResultItems.hasError": (),
-# class PySide2.QtXmlPatterns.QXmlSchema:
- "PySide2.QtXmlPatterns.QXmlSchema.__init__": [(), ('PySide2.QtXmlPatterns.QXmlSchema',)],
- "PySide2.QtXmlPatterns.QXmlSchema.documentUri": (),
- "PySide2.QtXmlPatterns.QXmlSchema.isValid": (),
- "PySide2.QtXmlPatterns.QXmlSchema.load": [('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QUrl'), ('PySide2.QtCore.QIODevice', 'PySide2.QtCore.QUrl'), ('PySide2.QtCore.QUrl',)],
- "PySide2.QtXmlPatterns.QXmlSchema.messageHandler": (),
- "PySide2.QtXmlPatterns.QXmlSchema.namePool": (),
- "PySide2.QtXmlPatterns.QXmlSchema.setMessageHandler": ('PySide2.QtXmlPatterns.QAbstractMessageHandler',),
- "PySide2.QtXmlPatterns.QXmlSchema.setUriResolver": ('PySide2.QtXmlPatterns.QAbstractUriResolver',),
- "PySide2.QtXmlPatterns.QXmlSchema.uriResolver": (),
-# class PySide2.QtXmlPatterns.QXmlSchemaValidator:
- "PySide2.QtXmlPatterns.QXmlSchemaValidator.__init__": [(), ('PySide2.QtXmlPatterns.QXmlSchema',)],
- "PySide2.QtXmlPatterns.QXmlSchemaValidator.messageHandler": (),
- "PySide2.QtXmlPatterns.QXmlSchemaValidator.namePool": (),
- "PySide2.QtXmlPatterns.QXmlSchemaValidator.schema": (),
- "PySide2.QtXmlPatterns.QXmlSchemaValidator.setMessageHandler": ('PySide2.QtXmlPatterns.QAbstractMessageHandler',),
- "PySide2.QtXmlPatterns.QXmlSchemaValidator.setSchema": ('PySide2.QtXmlPatterns.QXmlSchema',),
- "PySide2.QtXmlPatterns.QXmlSchemaValidator.setUriResolver": ('PySide2.QtXmlPatterns.QAbstractUriResolver',),
- "PySide2.QtXmlPatterns.QXmlSchemaValidator.uriResolver": (),
- "PySide2.QtXmlPatterns.QXmlSchemaValidator.validate": [('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QUrl'), ('PySide2.QtCore.QIODevice', 'PySide2.QtCore.QUrl'), ('PySide2.QtCore.QUrl',)],
-# class PySide2.QtXmlPatterns.QXmlSerializer:
- "PySide2.QtXmlPatterns.QXmlSerializer.__init__": ('PySide2.QtXmlPatterns.QXmlQuery', 'PySide2.QtCore.QIODevice'),
- "PySide2.QtXmlPatterns.QXmlSerializer.atomicValue": ('typing.Any',),
- "PySide2.QtXmlPatterns.QXmlSerializer.attribute": ('PySide2.QtXmlPatterns.QXmlName', 'str'),
- "PySide2.QtXmlPatterns.QXmlSerializer.characters": ('str',),
- "PySide2.QtXmlPatterns.QXmlSerializer.codec": (),
- "PySide2.QtXmlPatterns.QXmlSerializer.comment": ('str',),
- "PySide2.QtXmlPatterns.QXmlSerializer.endDocument": (),
- "PySide2.QtXmlPatterns.QXmlSerializer.endElement": (),
- "PySide2.QtXmlPatterns.QXmlSerializer.endOfSequence": (),
- "PySide2.QtXmlPatterns.QXmlSerializer.namespaceBinding": ('PySide2.QtXmlPatterns.QXmlName',),
- "PySide2.QtXmlPatterns.QXmlSerializer.outputDevice": (),
- "PySide2.QtXmlPatterns.QXmlSerializer.processingInstruction": ('PySide2.QtXmlPatterns.QXmlName', 'str'),
- "PySide2.QtXmlPatterns.QXmlSerializer.setCodec": ('PySide2.QtCore.QTextCodec',),
- "PySide2.QtXmlPatterns.QXmlSerializer.startDocument": (),
- "PySide2.QtXmlPatterns.QXmlSerializer.startElement": ('PySide2.QtXmlPatterns.QXmlName',),
- "PySide2.QtXmlPatterns.QXmlSerializer.startOfSequence": (),
- }) if "PySide2.QtXmlPatterns" in sys.modules else None
-# Module PySide2.QtHelp
-sig_dict.update({
-# class PySide2.QtHelp.QCompressedHelpInfo:
- "PySide2.QtHelp.QCompressedHelpInfo.__init__": [(), ('PySide2.QtHelp.QCompressedHelpInfo',)],
- "PySide2.QtHelp.QCompressedHelpInfo.__copy__": (),
- "PySide2.QtHelp.QCompressedHelpInfo.component": (),
- "PySide2.QtHelp.QCompressedHelpInfo.fromCompressedHelpFile": ('str',),
- "PySide2.QtHelp.QCompressedHelpInfo.namespaceName": (),
- "PySide2.QtHelp.QCompressedHelpInfo.swap": ('PySide2.QtHelp.QCompressedHelpInfo',),
- "PySide2.QtHelp.QCompressedHelpInfo.version": (),
-# class PySide2.QtHelp.QHelpContentItem:
- "PySide2.QtHelp.QHelpContentItem.__copy__": (),
- "PySide2.QtHelp.QHelpContentItem.child": ('int',),
- "PySide2.QtHelp.QHelpContentItem.childCount": (),
- "PySide2.QtHelp.QHelpContentItem.childPosition": ('PySide2.QtHelp.QHelpContentItem',),
- "PySide2.QtHelp.QHelpContentItem.parent": (),
- "PySide2.QtHelp.QHelpContentItem.row": (),
- "PySide2.QtHelp.QHelpContentItem.title": (),
- "PySide2.QtHelp.QHelpContentItem.url": (),
-# class PySide2.QtHelp.QHelpContentModel:
- "PySide2.QtHelp.QHelpContentModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtHelp.QHelpContentModel.contentItemAt": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtHelp.QHelpContentModel.createContents": ('str',),
- "PySide2.QtHelp.QHelpContentModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtHelp.QHelpContentModel.index": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtHelp.QHelpContentModel.isCreatingContents": (),
- "PySide2.QtHelp.QHelpContentModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtHelp.QHelpContentModel.rowCount": ('PySide2.QtCore.QModelIndex',),
-# class PySide2.QtHelp.QHelpContentWidget:
- "PySide2.QtHelp.QHelpContentWidget.indexOf": ('PySide2.QtCore.QUrl',),
-# class PySide2.QtHelp.QHelpEngine:
- "PySide2.QtHelp.QHelpEngine.__init__": ('str', 'PySide2.QtCore.QObject'),
- "PySide2.QtHelp.QHelpEngine.contentModel": (),
- "PySide2.QtHelp.QHelpEngine.contentWidget": (),
- "PySide2.QtHelp.QHelpEngine.indexModel": (),
- "PySide2.QtHelp.QHelpEngine.indexWidget": (),
- "PySide2.QtHelp.QHelpEngine.searchEngine": (),
-# class PySide2.QtHelp.QHelpEngineCore:
- "PySide2.QtHelp.QHelpEngineCore.__init__": ('str', 'PySide2.QtCore.QObject'),
- "PySide2.QtHelp.QHelpEngineCore.addCustomFilter": ('str', 'typing.Sequence[str]'),
- "PySide2.QtHelp.QHelpEngineCore.autoSaveFilter": (),
- "PySide2.QtHelp.QHelpEngineCore.collectionFile": (),
- "PySide2.QtHelp.QHelpEngineCore.copyCollectionFile": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.currentFilter": (),
- "PySide2.QtHelp.QHelpEngineCore.customFilters": (),
- "PySide2.QtHelp.QHelpEngineCore.customValue": ('str', 'typing.Any'),
- "PySide2.QtHelp.QHelpEngineCore.documentationFileName": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.error": (),
- "PySide2.QtHelp.QHelpEngineCore.fileData": ('PySide2.QtCore.QUrl',),
- "PySide2.QtHelp.QHelpEngineCore.files": [('str', 'str', 'str'), ('str', 'typing.Sequence[str]', 'str')],
- "PySide2.QtHelp.QHelpEngineCore.filterAttributeSets": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.filterAttributes": [(), ('str',)],
- "PySide2.QtHelp.QHelpEngineCore.filterEngine": (),
- "PySide2.QtHelp.QHelpEngineCore.findFile": ('PySide2.QtCore.QUrl',),
- "PySide2.QtHelp.QHelpEngineCore.linksForIdentifier": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.linksForKeyword": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.metaData": ('str', 'str'),
- "PySide2.QtHelp.QHelpEngineCore.namespaceName": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.registerDocumentation": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.registeredDocumentations": (),
- "PySide2.QtHelp.QHelpEngineCore.removeCustomFilter": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.removeCustomValue": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.setAutoSaveFilter": ('bool',),
- "PySide2.QtHelp.QHelpEngineCore.setCollectionFile": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.setCurrentFilter": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.setCustomValue": ('str', 'typing.Any'),
- "PySide2.QtHelp.QHelpEngineCore.setUsesFilterEngine": ('bool',),
- "PySide2.QtHelp.QHelpEngineCore.setupData": (),
- "PySide2.QtHelp.QHelpEngineCore.unregisterDocumentation": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.usesFilterEngine": (),
-# class PySide2.QtHelp.QHelpFilterData:
- "PySide2.QtHelp.QHelpFilterData.__init__": [(), ('PySide2.QtHelp.QHelpFilterData',)],
- "PySide2.QtHelp.QHelpFilterData.__copy__": (),
- "PySide2.QtHelp.QHelpFilterData.components": (),
- "PySide2.QtHelp.QHelpFilterData.setComponents": ('typing.Sequence[str]',),
- "PySide2.QtHelp.QHelpFilterData.setVersions": ('typing.Sequence[PySide2.QtCore.QVersionNumber]',),
- "PySide2.QtHelp.QHelpFilterData.swap": ('PySide2.QtHelp.QHelpFilterData',),
- "PySide2.QtHelp.QHelpFilterData.versions": (),
-# class PySide2.QtHelp.QHelpFilterEngine:
- "PySide2.QtHelp.QHelpFilterEngine.__init__": ('PySide2.QtHelp.QHelpEngineCore',),
- "PySide2.QtHelp.QHelpFilterEngine.activeFilter": (),
- "PySide2.QtHelp.QHelpFilterEngine.availableComponents": (),
- "PySide2.QtHelp.QHelpFilterEngine.filterData": ('str',),
- "PySide2.QtHelp.QHelpFilterEngine.filters": (),
- "PySide2.QtHelp.QHelpFilterEngine.namespaceToComponent": (),
- "PySide2.QtHelp.QHelpFilterEngine.namespaceToVersion": (),
- "PySide2.QtHelp.QHelpFilterEngine.namespacesForFilter": ('str',),
- "PySide2.QtHelp.QHelpFilterEngine.removeFilter": ('str',),
- "PySide2.QtHelp.QHelpFilterEngine.setActiveFilter": ('str',),
- "PySide2.QtHelp.QHelpFilterEngine.setFilterData": ('str', 'PySide2.QtHelp.QHelpFilterData'),
-# class PySide2.QtHelp.QHelpIndexModel:
- "PySide2.QtHelp.QHelpIndexModel.createIndex": [('int', 'int', 'int'), ('int', 'int', 'object'), ('str',)],
- "PySide2.QtHelp.QHelpIndexModel.filter": ('str', 'str'),
- "PySide2.QtHelp.QHelpIndexModel.isCreatingIndex": (),
- "PySide2.QtHelp.QHelpIndexModel.linksForKeyword": ('str',),
-# class PySide2.QtHelp.QHelpIndexWidget:
- "PySide2.QtHelp.QHelpIndexWidget.activateCurrentItem": (),
- "PySide2.QtHelp.QHelpIndexWidget.filterIndices": ('str', 'str'),
-# class PySide2.QtHelp.QHelpSearchEngine:
- "PySide2.QtHelp.QHelpSearchEngine.__init__": ('PySide2.QtHelp.QHelpEngineCore', 'PySide2.QtCore.QObject'),
- "PySide2.QtHelp.QHelpSearchEngine.cancelIndexing": (),
- "PySide2.QtHelp.QHelpSearchEngine.cancelSearching": (),
- "PySide2.QtHelp.QHelpSearchEngine.hitCount": (),
- "PySide2.QtHelp.QHelpSearchEngine.hits": ('int', 'int'),
- "PySide2.QtHelp.QHelpSearchEngine.hitsCount": (),
- "PySide2.QtHelp.QHelpSearchEngine.query": (),
- "PySide2.QtHelp.QHelpSearchEngine.queryWidget": (),
- "PySide2.QtHelp.QHelpSearchEngine.reindexDocumentation": (),
- "PySide2.QtHelp.QHelpSearchEngine.resultWidget": (),
- "PySide2.QtHelp.QHelpSearchEngine.scheduleIndexDocumentation": (),
- "PySide2.QtHelp.QHelpSearchEngine.search": [('str',), ('typing.Sequence[PySide2.QtHelp.QHelpSearchQuery]',)],
- "PySide2.QtHelp.QHelpSearchEngine.searchInput": (),
- "PySide2.QtHelp.QHelpSearchEngine.searchResultCount": (),
- "PySide2.QtHelp.QHelpSearchEngine.searchResults": ('int', 'int'),
-# class PySide2.QtHelp.QHelpSearchQuery:
-# class PySide2.QtHelp.QHelpSearchQuery.FieldName:
- "PySide2.QtHelp.QHelpSearchQuery.__init__": [(), ('PySide2.QtHelp.QHelpSearchQuery',), ('PySide2.QtHelp.QHelpSearchQuery.FieldName', 'typing.Sequence[str]')],
- "PySide2.QtHelp.QHelpSearchQuery.__copy__": (),
-# class PySide2.QtHelp.QHelpSearchQueryWidget:
- "PySide2.QtHelp.QHelpSearchQueryWidget.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtHelp.QHelpSearchQueryWidget.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtHelp.QHelpSearchQueryWidget.collapseExtendedSearch": (),
- "PySide2.QtHelp.QHelpSearchQueryWidget.expandExtendedSearch": (),
- "PySide2.QtHelp.QHelpSearchQueryWidget.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtHelp.QHelpSearchQueryWidget.isCompactMode": (),
- "PySide2.QtHelp.QHelpSearchQueryWidget.query": (),
- "PySide2.QtHelp.QHelpSearchQueryWidget.searchInput": (),
- "PySide2.QtHelp.QHelpSearchQueryWidget.setCompactMode": ('bool',),
- "PySide2.QtHelp.QHelpSearchQueryWidget.setQuery": ('typing.Sequence[PySide2.QtHelp.QHelpSearchQuery]',),
- "PySide2.QtHelp.QHelpSearchQueryWidget.setSearchInput": ('str',),
-# class PySide2.QtHelp.QHelpSearchResult:
- "PySide2.QtHelp.QHelpSearchResult.__init__": [(), ('PySide2.QtCore.QUrl', 'str', 'str'), ('PySide2.QtHelp.QHelpSearchResult',)],
- "PySide2.QtHelp.QHelpSearchResult.snippet": (),
- "PySide2.QtHelp.QHelpSearchResult.title": (),
- "PySide2.QtHelp.QHelpSearchResult.url": (),
-# class PySide2.QtHelp.QHelpSearchResultWidget:
- "PySide2.QtHelp.QHelpSearchResultWidget.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtHelp.QHelpSearchResultWidget.linkAt": ('PySide2.QtCore.QPoint',),
- }) if "PySide2.QtHelp" in sys.modules else None
-# Module PySide2.QtMultimedia
-sig_dict.update({
-# class PySide2.QtMultimedia.QAbstractAudioDeviceInfo:
- "PySide2.QtMultimedia.QAbstractAudioDeviceInfo.__init__": (),
- "PySide2.QtMultimedia.QAbstractAudioDeviceInfo.deviceName": (),
- "PySide2.QtMultimedia.QAbstractAudioDeviceInfo.isFormatSupported": ('PySide2.QtMultimedia.QAudioFormat',),
- "PySide2.QtMultimedia.QAbstractAudioDeviceInfo.preferredFormat": (),
- "PySide2.QtMultimedia.QAbstractAudioDeviceInfo.supportedByteOrders": (),
- "PySide2.QtMultimedia.QAbstractAudioDeviceInfo.supportedChannelCounts": (),
- "PySide2.QtMultimedia.QAbstractAudioDeviceInfo.supportedCodecs": (),
- "PySide2.QtMultimedia.QAbstractAudioDeviceInfo.supportedSampleRates": (),
- "PySide2.QtMultimedia.QAbstractAudioDeviceInfo.supportedSampleSizes": (),
- "PySide2.QtMultimedia.QAbstractAudioDeviceInfo.supportedSampleTypes": (),
-# class PySide2.QtMultimedia.QAbstractAudioInput:
- "PySide2.QtMultimedia.QAbstractAudioInput.__init__": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.bufferSize": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.bytesReady": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.elapsedUSecs": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.error": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.format": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.notifyInterval": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.periodSize": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.processedUSecs": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.reset": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.resume": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.setBufferSize": ('int',),
- "PySide2.QtMultimedia.QAbstractAudioInput.setFormat": ('PySide2.QtMultimedia.QAudioFormat',),
- "PySide2.QtMultimedia.QAbstractAudioInput.setNotifyInterval": ('int',),
- "PySide2.QtMultimedia.QAbstractAudioInput.setVolume": ('float',),
- "PySide2.QtMultimedia.QAbstractAudioInput.start": [(), ('PySide2.QtCore.QIODevice',)],
- "PySide2.QtMultimedia.QAbstractAudioInput.state": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.stop": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.suspend": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.volume": (),
-# class PySide2.QtMultimedia.QAbstractAudioOutput:
- "PySide2.QtMultimedia.QAbstractAudioOutput.__init__": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.bufferSize": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.bytesFree": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.category": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.elapsedUSecs": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.error": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.format": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.notifyInterval": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.periodSize": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.processedUSecs": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.reset": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.resume": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.setBufferSize": ('int',),
- "PySide2.QtMultimedia.QAbstractAudioOutput.setCategory": ('str',),
- "PySide2.QtMultimedia.QAbstractAudioOutput.setFormat": ('PySide2.QtMultimedia.QAudioFormat',),
- "PySide2.QtMultimedia.QAbstractAudioOutput.setNotifyInterval": ('int',),
- "PySide2.QtMultimedia.QAbstractAudioOutput.setVolume": ('float',),
- "PySide2.QtMultimedia.QAbstractAudioOutput.start": [(), ('PySide2.QtCore.QIODevice',)],
- "PySide2.QtMultimedia.QAbstractAudioOutput.state": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.stop": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.suspend": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.volume": (),
-# class PySide2.QtMultimedia.QAbstractVideoBuffer:
-# class PySide2.QtMultimedia.QAbstractVideoBuffer.HandleType:
-# class PySide2.QtMultimedia.QAbstractVideoBuffer.MapMode:
- "PySide2.QtMultimedia.QAbstractVideoBuffer.__init__": ('PySide2.QtMultimedia.QAbstractVideoBuffer.HandleType',),
- "PySide2.QtMultimedia.QAbstractVideoBuffer.handle": (),
- "PySide2.QtMultimedia.QAbstractVideoBuffer.handleType": (),
- "PySide2.QtMultimedia.QAbstractVideoBuffer.mapMode": (),
- "PySide2.QtMultimedia.QAbstractVideoBuffer.release": (),
- "PySide2.QtMultimedia.QAbstractVideoBuffer.unmap": (),
-# class PySide2.QtMultimedia.QAbstractVideoFilter:
- "PySide2.QtMultimedia.QAbstractVideoFilter.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAbstractVideoFilter.createFilterRunnable": (),
- "PySide2.QtMultimedia.QAbstractVideoFilter.isActive": (),
- "PySide2.QtMultimedia.QAbstractVideoFilter.setActive": ('bool',),
-# class PySide2.QtMultimedia.QAbstractVideoSurface:
-# class PySide2.QtMultimedia.QAbstractVideoSurface.Error:
- "PySide2.QtMultimedia.QAbstractVideoSurface.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAbstractVideoSurface.error": (),
- "PySide2.QtMultimedia.QAbstractVideoSurface.isActive": (),
- "PySide2.QtMultimedia.QAbstractVideoSurface.isFormatSupported": ('PySide2.QtMultimedia.QVideoSurfaceFormat',),
- "PySide2.QtMultimedia.QAbstractVideoSurface.nativeResolution": (),
- "PySide2.QtMultimedia.QAbstractVideoSurface.nearestFormat": ('PySide2.QtMultimedia.QVideoSurfaceFormat',),
- "PySide2.QtMultimedia.QAbstractVideoSurface.present": ('PySide2.QtMultimedia.QVideoFrame',),
- "PySide2.QtMultimedia.QAbstractVideoSurface.setError": ('PySide2.QtMultimedia.QAbstractVideoSurface.Error',),
- "PySide2.QtMultimedia.QAbstractVideoSurface.setNativeResolution": ('PySide2.QtCore.QSize',),
- "PySide2.QtMultimedia.QAbstractVideoSurface.start": ('PySide2.QtMultimedia.QVideoSurfaceFormat',),
- "PySide2.QtMultimedia.QAbstractVideoSurface.stop": (),
- "PySide2.QtMultimedia.QAbstractVideoSurface.supportedPixelFormats": ('PySide2.QtMultimedia.QAbstractVideoBuffer.HandleType',),
- "PySide2.QtMultimedia.QAbstractVideoSurface.surfaceFormat": (),
-# class PySide2.QtMultimedia.QAudio:
-# class PySide2.QtMultimedia.QAudio.Error:
-# class PySide2.QtMultimedia.QAudio.Mode:
-# class PySide2.QtMultimedia.QAudio.Role:
-# class PySide2.QtMultimedia.QAudio.State:
-# class PySide2.QtMultimedia.QAudio.VolumeScale:
- "PySide2.QtMultimedia.QAudio.convertVolume": ('float', 'PySide2.QtMultimedia.QAudio.VolumeScale', 'PySide2.QtMultimedia.QAudio.VolumeScale'),
-# class PySide2.QtMultimedia.QAudioBuffer:
- "PySide2.QtMultimedia.QAudioBuffer.__init__": [(), ('PySide2.QtCore.QByteArray', 'PySide2.QtMultimedia.QAudioFormat', 'int'), ('PySide2.QtMultimedia.QAudioBuffer',), ('int', 'PySide2.QtMultimedia.QAudioFormat', 'int')],
- "PySide2.QtMultimedia.QAudioBuffer.__copy__": (),
- "PySide2.QtMultimedia.QAudioBuffer.byteCount": (),
- "PySide2.QtMultimedia.QAudioBuffer.constData": (),
- "PySide2.QtMultimedia.QAudioBuffer.data": (),
- "PySide2.QtMultimedia.QAudioBuffer.duration": (),
- "PySide2.QtMultimedia.QAudioBuffer.format": (),
- "PySide2.QtMultimedia.QAudioBuffer.frameCount": (),
- "PySide2.QtMultimedia.QAudioBuffer.isValid": (),
- "PySide2.QtMultimedia.QAudioBuffer.sampleCount": (),
- "PySide2.QtMultimedia.QAudioBuffer.startTime": (),
-# class PySide2.QtMultimedia.QAudioDecoder:
-# class PySide2.QtMultimedia.QAudioDecoder.Error:
-# class PySide2.QtMultimedia.QAudioDecoder.State:
- "PySide2.QtMultimedia.QAudioDecoder.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAudioDecoder.audioFormat": (),
- "PySide2.QtMultimedia.QAudioDecoder.bind": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAudioDecoder.bufferAvailable": (),
- "PySide2.QtMultimedia.QAudioDecoder.duration": (),
- "PySide2.QtMultimedia.QAudioDecoder.error": (),
- "PySide2.QtMultimedia.QAudioDecoder.errorString": (),
- "PySide2.QtMultimedia.QAudioDecoder.hasSupport": ('str', 'typing.Sequence[str]'),
- "PySide2.QtMultimedia.QAudioDecoder.position": (),
- "PySide2.QtMultimedia.QAudioDecoder.read": (),
- "PySide2.QtMultimedia.QAudioDecoder.setAudioFormat": ('PySide2.QtMultimedia.QAudioFormat',),
- "PySide2.QtMultimedia.QAudioDecoder.setSourceDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtMultimedia.QAudioDecoder.setSourceFilename": ('str',),
- "PySide2.QtMultimedia.QAudioDecoder.sourceDevice": (),
- "PySide2.QtMultimedia.QAudioDecoder.sourceFilename": (),
- "PySide2.QtMultimedia.QAudioDecoder.start": (),
- "PySide2.QtMultimedia.QAudioDecoder.state": (),
- "PySide2.QtMultimedia.QAudioDecoder.stop": (),
- "PySide2.QtMultimedia.QAudioDecoder.unbind": ('PySide2.QtCore.QObject',),
-# class PySide2.QtMultimedia.QAudioDecoderControl:
- "PySide2.QtMultimedia.QAudioDecoderControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAudioDecoderControl.audioFormat": (),
- "PySide2.QtMultimedia.QAudioDecoderControl.bufferAvailable": (),
- "PySide2.QtMultimedia.QAudioDecoderControl.duration": (),
- "PySide2.QtMultimedia.QAudioDecoderControl.position": (),
- "PySide2.QtMultimedia.QAudioDecoderControl.read": (),
- "PySide2.QtMultimedia.QAudioDecoderControl.setAudioFormat": ('PySide2.QtMultimedia.QAudioFormat',),
- "PySide2.QtMultimedia.QAudioDecoderControl.setSourceDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtMultimedia.QAudioDecoderControl.setSourceFilename": ('str',),
- "PySide2.QtMultimedia.QAudioDecoderControl.sourceDevice": (),
- "PySide2.QtMultimedia.QAudioDecoderControl.sourceFilename": (),
- "PySide2.QtMultimedia.QAudioDecoderControl.start": (),
- "PySide2.QtMultimedia.QAudioDecoderControl.state": (),
- "PySide2.QtMultimedia.QAudioDecoderControl.stop": (),
-# class PySide2.QtMultimedia.QAudioDeviceInfo:
- "PySide2.QtMultimedia.QAudioDeviceInfo.__init__": [(), ('PySide2.QtMultimedia.QAudioDeviceInfo',)],
- "PySide2.QtMultimedia.QAudioDeviceInfo.__copy__": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.availableDevices": ('PySide2.QtMultimedia.QAudio.Mode',),
- "PySide2.QtMultimedia.QAudioDeviceInfo.defaultInputDevice": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.defaultOutputDevice": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.deviceName": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.isFormatSupported": ('PySide2.QtMultimedia.QAudioFormat',),
- "PySide2.QtMultimedia.QAudioDeviceInfo.isNull": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.nearestFormat": ('PySide2.QtMultimedia.QAudioFormat',),
- "PySide2.QtMultimedia.QAudioDeviceInfo.preferredFormat": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.realm": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.supportedByteOrders": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.supportedChannelCounts": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.supportedCodecs": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.supportedSampleRates": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.supportedSampleSizes": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.supportedSampleTypes": (),
-# class PySide2.QtMultimedia.QAudioEncoderSettings:
- "PySide2.QtMultimedia.QAudioEncoderSettings.__init__": [(), ('PySide2.QtMultimedia.QAudioEncoderSettings',)],
- "PySide2.QtMultimedia.QAudioEncoderSettings.__copy__": (),
- "PySide2.QtMultimedia.QAudioEncoderSettings.bitRate": (),
- "PySide2.QtMultimedia.QAudioEncoderSettings.channelCount": (),
- "PySide2.QtMultimedia.QAudioEncoderSettings.codec": (),
- "PySide2.QtMultimedia.QAudioEncoderSettings.encodingMode": (),
- "PySide2.QtMultimedia.QAudioEncoderSettings.encodingOption": ('str',),
- "PySide2.QtMultimedia.QAudioEncoderSettings.encodingOptions": (),
- "PySide2.QtMultimedia.QAudioEncoderSettings.isNull": (),
- "PySide2.QtMultimedia.QAudioEncoderSettings.quality": (),
- "PySide2.QtMultimedia.QAudioEncoderSettings.sampleRate": (),
- "PySide2.QtMultimedia.QAudioEncoderSettings.setBitRate": ('int',),
- "PySide2.QtMultimedia.QAudioEncoderSettings.setChannelCount": ('int',),
- "PySide2.QtMultimedia.QAudioEncoderSettings.setCodec": ('str',),
- "PySide2.QtMultimedia.QAudioEncoderSettings.setEncodingMode": ('PySide2.QtMultimedia.QMultimedia.EncodingMode',),
- "PySide2.QtMultimedia.QAudioEncoderSettings.setEncodingOption": ('str', 'typing.Any'),
- "PySide2.QtMultimedia.QAudioEncoderSettings.setEncodingOptions": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtMultimedia.QAudioEncoderSettings.setQuality": ('PySide2.QtMultimedia.QMultimedia.EncodingQuality',),
- "PySide2.QtMultimedia.QAudioEncoderSettings.setSampleRate": ('int',),
-# class PySide2.QtMultimedia.QAudioEncoderSettingsControl:
- "PySide2.QtMultimedia.QAudioEncoderSettingsControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAudioEncoderSettingsControl.audioSettings": (),
- "PySide2.QtMultimedia.QAudioEncoderSettingsControl.codecDescription": ('str',),
- "PySide2.QtMultimedia.QAudioEncoderSettingsControl.setAudioSettings": ('PySide2.QtMultimedia.QAudioEncoderSettings',),
- "PySide2.QtMultimedia.QAudioEncoderSettingsControl.supportedAudioCodecs": (),
-# class PySide2.QtMultimedia.QAudioFormat:
-# class PySide2.QtMultimedia.QAudioFormat.Endian:
-# class PySide2.QtMultimedia.QAudioFormat.SampleType:
- "PySide2.QtMultimedia.QAudioFormat.__init__": [(), ('PySide2.QtMultimedia.QAudioFormat',)],
- "PySide2.QtMultimedia.QAudioFormat.__copy__": (),
- "PySide2.QtMultimedia.QAudioFormat.byteOrder": (),
- "PySide2.QtMultimedia.QAudioFormat.bytesForDuration": ('int',),
- "PySide2.QtMultimedia.QAudioFormat.bytesForFrames": ('int',),
- "PySide2.QtMultimedia.QAudioFormat.bytesPerFrame": (),
- "PySide2.QtMultimedia.QAudioFormat.channelCount": (),
- "PySide2.QtMultimedia.QAudioFormat.codec": (),
- "PySide2.QtMultimedia.QAudioFormat.durationForBytes": ('int',),
- "PySide2.QtMultimedia.QAudioFormat.durationForFrames": ('int',),
- "PySide2.QtMultimedia.QAudioFormat.framesForBytes": ('int',),
- "PySide2.QtMultimedia.QAudioFormat.framesForDuration": ('int',),
- "PySide2.QtMultimedia.QAudioFormat.isValid": (),
- "PySide2.QtMultimedia.QAudioFormat.sampleRate": (),
- "PySide2.QtMultimedia.QAudioFormat.sampleSize": (),
- "PySide2.QtMultimedia.QAudioFormat.sampleType": (),
- "PySide2.QtMultimedia.QAudioFormat.setByteOrder": ('PySide2.QtMultimedia.QAudioFormat.Endian',),
- "PySide2.QtMultimedia.QAudioFormat.setChannelCount": ('int',),
- "PySide2.QtMultimedia.QAudioFormat.setCodec": ('str',),
- "PySide2.QtMultimedia.QAudioFormat.setSampleRate": ('int',),
- "PySide2.QtMultimedia.QAudioFormat.setSampleSize": ('int',),
- "PySide2.QtMultimedia.QAudioFormat.setSampleType": ('PySide2.QtMultimedia.QAudioFormat.SampleType',),
-# class PySide2.QtMultimedia.QAudioInput:
- "PySide2.QtMultimedia.QAudioInput.__init__": [('PySide2.QtMultimedia.QAudioDeviceInfo', 'PySide2.QtMultimedia.QAudioFormat', 'PySide2.QtCore.QObject'), ('PySide2.QtMultimedia.QAudioFormat', 'PySide2.QtCore.QObject')],
- "PySide2.QtMultimedia.QAudioInput.bufferSize": (),
- "PySide2.QtMultimedia.QAudioInput.bytesReady": (),
- "PySide2.QtMultimedia.QAudioInput.elapsedUSecs": (),
- "PySide2.QtMultimedia.QAudioInput.error": (),
- "PySide2.QtMultimedia.QAudioInput.format": (),
- "PySide2.QtMultimedia.QAudioInput.notifyInterval": (),
- "PySide2.QtMultimedia.QAudioInput.periodSize": (),
- "PySide2.QtMultimedia.QAudioInput.processedUSecs": (),
- "PySide2.QtMultimedia.QAudioInput.reset": (),
- "PySide2.QtMultimedia.QAudioInput.resume": (),
- "PySide2.QtMultimedia.QAudioInput.setBufferSize": ('int',),
- "PySide2.QtMultimedia.QAudioInput.setNotifyInterval": ('int',),
- "PySide2.QtMultimedia.QAudioInput.setVolume": ('float',),
- "PySide2.QtMultimedia.QAudioInput.start": [(), ('PySide2.QtCore.QIODevice',)],
- "PySide2.QtMultimedia.QAudioInput.state": (),
- "PySide2.QtMultimedia.QAudioInput.stop": (),
- "PySide2.QtMultimedia.QAudioInput.suspend": (),
- "PySide2.QtMultimedia.QAudioInput.volume": (),
-# class PySide2.QtMultimedia.QAudioInputSelectorControl:
- "PySide2.QtMultimedia.QAudioInputSelectorControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAudioInputSelectorControl.activeInput": (),
- "PySide2.QtMultimedia.QAudioInputSelectorControl.availableInputs": (),
- "PySide2.QtMultimedia.QAudioInputSelectorControl.defaultInput": (),
- "PySide2.QtMultimedia.QAudioInputSelectorControl.inputDescription": ('str',),
- "PySide2.QtMultimedia.QAudioInputSelectorControl.setActiveInput": ('str',),
-# class PySide2.QtMultimedia.QAudioOutput:
- "PySide2.QtMultimedia.QAudioOutput.__init__": [('PySide2.QtMultimedia.QAudioDeviceInfo', 'PySide2.QtMultimedia.QAudioFormat', 'PySide2.QtCore.QObject'), ('PySide2.QtMultimedia.QAudioFormat', 'PySide2.QtCore.QObject')],
- "PySide2.QtMultimedia.QAudioOutput.bufferSize": (),
- "PySide2.QtMultimedia.QAudioOutput.bytesFree": (),
- "PySide2.QtMultimedia.QAudioOutput.category": (),
- "PySide2.QtMultimedia.QAudioOutput.elapsedUSecs": (),
- "PySide2.QtMultimedia.QAudioOutput.error": (),
- "PySide2.QtMultimedia.QAudioOutput.format": (),
- "PySide2.QtMultimedia.QAudioOutput.notifyInterval": (),
- "PySide2.QtMultimedia.QAudioOutput.periodSize": (),
- "PySide2.QtMultimedia.QAudioOutput.processedUSecs": (),
- "PySide2.QtMultimedia.QAudioOutput.reset": (),
- "PySide2.QtMultimedia.QAudioOutput.resume": (),
- "PySide2.QtMultimedia.QAudioOutput.setBufferSize": ('int',),
- "PySide2.QtMultimedia.QAudioOutput.setCategory": ('str',),
- "PySide2.QtMultimedia.QAudioOutput.setNotifyInterval": ('int',),
- "PySide2.QtMultimedia.QAudioOutput.setVolume": ('float',),
- "PySide2.QtMultimedia.QAudioOutput.start": [(), ('PySide2.QtCore.QIODevice',)],
- "PySide2.QtMultimedia.QAudioOutput.state": (),
- "PySide2.QtMultimedia.QAudioOutput.stop": (),
- "PySide2.QtMultimedia.QAudioOutput.suspend": (),
- "PySide2.QtMultimedia.QAudioOutput.volume": (),
-# class PySide2.QtMultimedia.QAudioOutputSelectorControl:
- "PySide2.QtMultimedia.QAudioOutputSelectorControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAudioOutputSelectorControl.activeOutput": (),
- "PySide2.QtMultimedia.QAudioOutputSelectorControl.availableOutputs": (),
- "PySide2.QtMultimedia.QAudioOutputSelectorControl.defaultOutput": (),
- "PySide2.QtMultimedia.QAudioOutputSelectorControl.outputDescription": ('str',),
- "PySide2.QtMultimedia.QAudioOutputSelectorControl.setActiveOutput": ('str',),
-# class PySide2.QtMultimedia.QAudioProbe:
- "PySide2.QtMultimedia.QAudioProbe.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAudioProbe.isActive": (),
- "PySide2.QtMultimedia.QAudioProbe.setSource": [('PySide2.QtMultimedia.QMediaObject',), ('PySide2.QtMultimedia.QMediaRecorder',)],
-# class PySide2.QtMultimedia.QAudioRecorder:
- "PySide2.QtMultimedia.QAudioRecorder.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAudioRecorder.audioInput": (),
- "PySide2.QtMultimedia.QAudioRecorder.audioInputDescription": ('str',),
- "PySide2.QtMultimedia.QAudioRecorder.audioInputs": (),
- "PySide2.QtMultimedia.QAudioRecorder.defaultAudioInput": (),
- "PySide2.QtMultimedia.QAudioRecorder.setAudioInput": ('str',),
-# class PySide2.QtMultimedia.QAudioRoleControl:
- "PySide2.QtMultimedia.QAudioRoleControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAudioRoleControl.audioRole": (),
- "PySide2.QtMultimedia.QAudioRoleControl.setAudioRole": ('PySide2.QtMultimedia.QAudio.Role',),
- "PySide2.QtMultimedia.QAudioRoleControl.supportedAudioRoles": (),
-# class PySide2.QtMultimedia.QCamera:
-# class PySide2.QtMultimedia.QCamera.CaptureMode:
-# class PySide2.QtMultimedia.QCamera.CaptureModes:
-# class PySide2.QtMultimedia.QCamera.Error:
-# class PySide2.QtMultimedia.QCamera.FrameRateRange:
- "PySide2.QtMultimedia.QCamera.FrameRateRange.__init__": [(), ('PySide2.QtMultimedia.QCamera.FrameRateRange',), ('float', 'float')],
- "PySide2.QtMultimedia.QCamera.FrameRateRange.__copy__": (),
-# class PySide2.QtMultimedia.QCamera.LockChangeReason:
-# class PySide2.QtMultimedia.QCamera.LockStatus:
-# class PySide2.QtMultimedia.QCamera.LockType:
-# class PySide2.QtMultimedia.QCamera.LockTypes:
-# class PySide2.QtMultimedia.QCamera.Position:
-# class PySide2.QtMultimedia.QCamera.State:
-# class PySide2.QtMultimedia.QCamera.Status:
- "PySide2.QtMultimedia.QCamera.__init__": [('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QObject',), ('PySide2.QtMultimedia.QCamera.Position', 'PySide2.QtCore.QObject'), ('PySide2.QtMultimedia.QCameraInfo', 'PySide2.QtCore.QObject')],
- "PySide2.QtMultimedia.QCamera.availability": (),
- "PySide2.QtMultimedia.QCamera.availableDevices": (),
- "PySide2.QtMultimedia.QCamera.captureMode": (),
- "PySide2.QtMultimedia.QCamera.deviceDescription": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtMultimedia.QCamera.error": (),
- "PySide2.QtMultimedia.QCamera.errorString": (),
- "PySide2.QtMultimedia.QCamera.exposure": (),
- "PySide2.QtMultimedia.QCamera.focus": (),
- "PySide2.QtMultimedia.QCamera.imageProcessing": (),
- "PySide2.QtMultimedia.QCamera.isCaptureModeSupported": ('PySide2.QtMultimedia.QCamera.CaptureModes',),
- "PySide2.QtMultimedia.QCamera.load": (),
- "PySide2.QtMultimedia.QCamera.lockStatus": [(), ('PySide2.QtMultimedia.QCamera.LockType',)],
- "PySide2.QtMultimedia.QCamera.requestedLocks": (),
- "PySide2.QtMultimedia.QCamera.searchAndLock": [(), ('PySide2.QtMultimedia.QCamera.LockTypes',)],
- "PySide2.QtMultimedia.QCamera.setCaptureMode": ('PySide2.QtMultimedia.QCamera.CaptureModes',),
- "PySide2.QtMultimedia.QCamera.setViewfinder": [('PySide2.QtMultimedia.QAbstractVideoSurface',), ('PySide2.QtMultimediaWidgets.QGraphicsVideoItem',), ('PySide2.QtMultimediaWidgets.QVideoWidget',)],
- "PySide2.QtMultimedia.QCamera.setViewfinderSettings": ('PySide2.QtMultimedia.QCameraViewfinderSettings',),
- "PySide2.QtMultimedia.QCamera.start": (),
- "PySide2.QtMultimedia.QCamera.state": (),
- "PySide2.QtMultimedia.QCamera.status": (),
- "PySide2.QtMultimedia.QCamera.stop": (),
- "PySide2.QtMultimedia.QCamera.supportedLocks": (),
- "PySide2.QtMultimedia.QCamera.supportedViewfinderFrameRateRanges": ('PySide2.QtMultimedia.QCameraViewfinderSettings',),
- "PySide2.QtMultimedia.QCamera.supportedViewfinderPixelFormats": ('PySide2.QtMultimedia.QCameraViewfinderSettings',),
- "PySide2.QtMultimedia.QCamera.supportedViewfinderResolutions": ('PySide2.QtMultimedia.QCameraViewfinderSettings',),
- "PySide2.QtMultimedia.QCamera.supportedViewfinderSettings": ('PySide2.QtMultimedia.QCameraViewfinderSettings',),
- "PySide2.QtMultimedia.QCamera.unload": (),
- "PySide2.QtMultimedia.QCamera.unlock": [(), ('PySide2.QtMultimedia.QCamera.LockTypes',)],
- "PySide2.QtMultimedia.QCamera.viewfinderSettings": (),
-# class PySide2.QtMultimedia.QCameraCaptureBufferFormatControl:
- "PySide2.QtMultimedia.QCameraCaptureBufferFormatControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraCaptureBufferFormatControl.bufferFormat": (),
- "PySide2.QtMultimedia.QCameraCaptureBufferFormatControl.setBufferFormat": ('PySide2.QtMultimedia.QVideoFrame.PixelFormat',),
- "PySide2.QtMultimedia.QCameraCaptureBufferFormatControl.supportedBufferFormats": (),
-# class PySide2.QtMultimedia.QCameraCaptureDestinationControl:
- "PySide2.QtMultimedia.QCameraCaptureDestinationControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraCaptureDestinationControl.captureDestination": (),
- "PySide2.QtMultimedia.QCameraCaptureDestinationControl.isCaptureDestinationSupported": ('PySide2.QtMultimedia.QCameraImageCapture.CaptureDestinations',),
- "PySide2.QtMultimedia.QCameraCaptureDestinationControl.setCaptureDestination": ('PySide2.QtMultimedia.QCameraImageCapture.CaptureDestinations',),
-# class PySide2.QtMultimedia.QCameraControl:
-# class PySide2.QtMultimedia.QCameraControl.PropertyChangeType:
- "PySide2.QtMultimedia.QCameraControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraControl.canChangeProperty": ('PySide2.QtMultimedia.QCameraControl.PropertyChangeType', 'PySide2.QtMultimedia.QCamera.Status'),
- "PySide2.QtMultimedia.QCameraControl.captureMode": (),
- "PySide2.QtMultimedia.QCameraControl.isCaptureModeSupported": ('PySide2.QtMultimedia.QCamera.CaptureModes',),
- "PySide2.QtMultimedia.QCameraControl.setCaptureMode": ('PySide2.QtMultimedia.QCamera.CaptureModes',),
- "PySide2.QtMultimedia.QCameraControl.setState": ('PySide2.QtMultimedia.QCamera.State',),
- "PySide2.QtMultimedia.QCameraControl.state": (),
- "PySide2.QtMultimedia.QCameraControl.status": (),
-# class PySide2.QtMultimedia.QCameraExposure:
-# class PySide2.QtMultimedia.QCameraExposure.ExposureMode:
-# class PySide2.QtMultimedia.QCameraExposure.FlashMode:
-# class PySide2.QtMultimedia.QCameraExposure.FlashModes:
-# class PySide2.QtMultimedia.QCameraExposure.MeteringMode:
- "PySide2.QtMultimedia.QCameraExposure.aperture": (),
- "PySide2.QtMultimedia.QCameraExposure.exposureCompensation": (),
- "PySide2.QtMultimedia.QCameraExposure.exposureMode": (),
- "PySide2.QtMultimedia.QCameraExposure.flashMode": (),
- "PySide2.QtMultimedia.QCameraExposure.isAvailable": (),
- "PySide2.QtMultimedia.QCameraExposure.isExposureModeSupported": ('PySide2.QtMultimedia.QCameraExposure.ExposureMode',),
- "PySide2.QtMultimedia.QCameraExposure.isFlashModeSupported": ('PySide2.QtMultimedia.QCameraExposure.FlashModes',),
- "PySide2.QtMultimedia.QCameraExposure.isFlashReady": (),
- "PySide2.QtMultimedia.QCameraExposure.isMeteringModeSupported": ('PySide2.QtMultimedia.QCameraExposure.MeteringMode',),
- "PySide2.QtMultimedia.QCameraExposure.isoSensitivity": (),
- "PySide2.QtMultimedia.QCameraExposure.meteringMode": (),
- "PySide2.QtMultimedia.QCameraExposure.requestedAperture": (),
- "PySide2.QtMultimedia.QCameraExposure.requestedIsoSensitivity": (),
- "PySide2.QtMultimedia.QCameraExposure.requestedShutterSpeed": (),
- "PySide2.QtMultimedia.QCameraExposure.setAutoAperture": (),
- "PySide2.QtMultimedia.QCameraExposure.setAutoIsoSensitivity": (),
- "PySide2.QtMultimedia.QCameraExposure.setAutoShutterSpeed": (),
- "PySide2.QtMultimedia.QCameraExposure.setExposureCompensation": ('float',),
- "PySide2.QtMultimedia.QCameraExposure.setExposureMode": ('PySide2.QtMultimedia.QCameraExposure.ExposureMode',),
- "PySide2.QtMultimedia.QCameraExposure.setFlashMode": ('PySide2.QtMultimedia.QCameraExposure.FlashModes',),
- "PySide2.QtMultimedia.QCameraExposure.setManualAperture": ('float',),
- "PySide2.QtMultimedia.QCameraExposure.setManualIsoSensitivity": ('int',),
- "PySide2.QtMultimedia.QCameraExposure.setManualShutterSpeed": ('float',),
- "PySide2.QtMultimedia.QCameraExposure.setMeteringMode": ('PySide2.QtMultimedia.QCameraExposure.MeteringMode',),
- "PySide2.QtMultimedia.QCameraExposure.setSpotMeteringPoint": ('PySide2.QtCore.QPointF',),
- "PySide2.QtMultimedia.QCameraExposure.shutterSpeed": (),
- "PySide2.QtMultimedia.QCameraExposure.spotMeteringPoint": (),
-# class PySide2.QtMultimedia.QCameraExposureControl:
-# class PySide2.QtMultimedia.QCameraExposureControl.ExposureParameter:
- "PySide2.QtMultimedia.QCameraExposureControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraExposureControl.actualValue": ('PySide2.QtMultimedia.QCameraExposureControl.ExposureParameter',),
- "PySide2.QtMultimedia.QCameraExposureControl.isParameterSupported": ('PySide2.QtMultimedia.QCameraExposureControl.ExposureParameter',),
- "PySide2.QtMultimedia.QCameraExposureControl.requestedValue": ('PySide2.QtMultimedia.QCameraExposureControl.ExposureParameter',),
- "PySide2.QtMultimedia.QCameraExposureControl.setValue": ('PySide2.QtMultimedia.QCameraExposureControl.ExposureParameter', 'typing.Any'),
-# class PySide2.QtMultimedia.QCameraFeedbackControl:
-# class PySide2.QtMultimedia.QCameraFeedbackControl.EventType:
- "PySide2.QtMultimedia.QCameraFeedbackControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraFeedbackControl.isEventFeedbackEnabled": ('PySide2.QtMultimedia.QCameraFeedbackControl.EventType',),
- "PySide2.QtMultimedia.QCameraFeedbackControl.isEventFeedbackLocked": ('PySide2.QtMultimedia.QCameraFeedbackControl.EventType',),
- "PySide2.QtMultimedia.QCameraFeedbackControl.resetEventFeedback": ('PySide2.QtMultimedia.QCameraFeedbackControl.EventType',),
- "PySide2.QtMultimedia.QCameraFeedbackControl.setEventFeedbackEnabled": ('PySide2.QtMultimedia.QCameraFeedbackControl.EventType', 'bool'),
- "PySide2.QtMultimedia.QCameraFeedbackControl.setEventFeedbackSound": ('PySide2.QtMultimedia.QCameraFeedbackControl.EventType', 'str'),
-# class PySide2.QtMultimedia.QCameraFlashControl:
- "PySide2.QtMultimedia.QCameraFlashControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraFlashControl.flashMode": (),
- "PySide2.QtMultimedia.QCameraFlashControl.isFlashModeSupported": ('PySide2.QtMultimedia.QCameraExposure.FlashModes',),
- "PySide2.QtMultimedia.QCameraFlashControl.isFlashReady": (),
- "PySide2.QtMultimedia.QCameraFlashControl.setFlashMode": ('PySide2.QtMultimedia.QCameraExposure.FlashModes',),
-# class PySide2.QtMultimedia.QCameraFocus:
-# class PySide2.QtMultimedia.QCameraFocus.FocusMode:
-# class PySide2.QtMultimedia.QCameraFocus.FocusModes:
-# class PySide2.QtMultimedia.QCameraFocus.FocusPointMode:
- "PySide2.QtMultimedia.QCameraFocus.customFocusPoint": (),
- "PySide2.QtMultimedia.QCameraFocus.digitalZoom": (),
- "PySide2.QtMultimedia.QCameraFocus.focusMode": (),
- "PySide2.QtMultimedia.QCameraFocus.focusPointMode": (),
- "PySide2.QtMultimedia.QCameraFocus.focusZones": (),
- "PySide2.QtMultimedia.QCameraFocus.isAvailable": (),
- "PySide2.QtMultimedia.QCameraFocus.isFocusModeSupported": ('PySide2.QtMultimedia.QCameraFocus.FocusModes',),
- "PySide2.QtMultimedia.QCameraFocus.isFocusPointModeSupported": ('PySide2.QtMultimedia.QCameraFocus.FocusPointMode',),
- "PySide2.QtMultimedia.QCameraFocus.maximumDigitalZoom": (),
- "PySide2.QtMultimedia.QCameraFocus.maximumOpticalZoom": (),
- "PySide2.QtMultimedia.QCameraFocus.opticalZoom": (),
- "PySide2.QtMultimedia.QCameraFocus.setCustomFocusPoint": ('PySide2.QtCore.QPointF',),
- "PySide2.QtMultimedia.QCameraFocus.setFocusMode": ('PySide2.QtMultimedia.QCameraFocus.FocusModes',),
- "PySide2.QtMultimedia.QCameraFocus.setFocusPointMode": ('PySide2.QtMultimedia.QCameraFocus.FocusPointMode',),
- "PySide2.QtMultimedia.QCameraFocus.zoomTo": ('float', 'float'),
-# class PySide2.QtMultimedia.QCameraFocusControl:
- "PySide2.QtMultimedia.QCameraFocusControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraFocusControl.customFocusPoint": (),
- "PySide2.QtMultimedia.QCameraFocusControl.focusMode": (),
- "PySide2.QtMultimedia.QCameraFocusControl.focusPointMode": (),
- "PySide2.QtMultimedia.QCameraFocusControl.focusZones": (),
- "PySide2.QtMultimedia.QCameraFocusControl.isFocusModeSupported": ('PySide2.QtMultimedia.QCameraFocus.FocusModes',),
- "PySide2.QtMultimedia.QCameraFocusControl.isFocusPointModeSupported": ('PySide2.QtMultimedia.QCameraFocus.FocusPointMode',),
- "PySide2.QtMultimedia.QCameraFocusControl.setCustomFocusPoint": ('PySide2.QtCore.QPointF',),
- "PySide2.QtMultimedia.QCameraFocusControl.setFocusMode": ('PySide2.QtMultimedia.QCameraFocus.FocusModes',),
- "PySide2.QtMultimedia.QCameraFocusControl.setFocusPointMode": ('PySide2.QtMultimedia.QCameraFocus.FocusPointMode',),
-# class PySide2.QtMultimedia.QCameraFocusZone:
-# class PySide2.QtMultimedia.QCameraFocusZone.FocusZoneStatus:
- "PySide2.QtMultimedia.QCameraFocusZone.__init__": [(), ('PySide2.QtCore.QRectF', 'PySide2.QtMultimedia.QCameraFocusZone.FocusZoneStatus'), ('PySide2.QtMultimedia.QCameraFocusZone',)],
- "PySide2.QtMultimedia.QCameraFocusZone.__copy__": (),
- "PySide2.QtMultimedia.QCameraFocusZone.area": (),
- "PySide2.QtMultimedia.QCameraFocusZone.isValid": (),
- "PySide2.QtMultimedia.QCameraFocusZone.setStatus": ('PySide2.QtMultimedia.QCameraFocusZone.FocusZoneStatus',),
- "PySide2.QtMultimedia.QCameraFocusZone.status": (),
-# class PySide2.QtMultimedia.QCameraImageCapture:
-# class PySide2.QtMultimedia.QCameraImageCapture.CaptureDestination:
-# class PySide2.QtMultimedia.QCameraImageCapture.CaptureDestinations:
-# class PySide2.QtMultimedia.QCameraImageCapture.DriveMode:
-# class PySide2.QtMultimedia.QCameraImageCapture.Error:
- "PySide2.QtMultimedia.QCameraImageCapture.__init__": ('PySide2.QtMultimedia.QMediaObject', 'PySide2.QtCore.QObject'),
- "PySide2.QtMultimedia.QCameraImageCapture.availability": (),
- "PySide2.QtMultimedia.QCameraImageCapture.bufferFormat": (),
- "PySide2.QtMultimedia.QCameraImageCapture.cancelCapture": (),
- "PySide2.QtMultimedia.QCameraImageCapture.capture": ('str',),
- "PySide2.QtMultimedia.QCameraImageCapture.captureDestination": (),
- "PySide2.QtMultimedia.QCameraImageCapture.encodingSettings": (),
- "PySide2.QtMultimedia.QCameraImageCapture.error": (),
- "PySide2.QtMultimedia.QCameraImageCapture.errorString": (),
- "PySide2.QtMultimedia.QCameraImageCapture.imageCodecDescription": ('str',),
- "PySide2.QtMultimedia.QCameraImageCapture.isAvailable": (),
- "PySide2.QtMultimedia.QCameraImageCapture.isCaptureDestinationSupported": ('PySide2.QtMultimedia.QCameraImageCapture.CaptureDestinations',),
- "PySide2.QtMultimedia.QCameraImageCapture.isReadyForCapture": (),
- "PySide2.QtMultimedia.QCameraImageCapture.mediaObject": (),
- "PySide2.QtMultimedia.QCameraImageCapture.setBufferFormat": ('PySide2.QtMultimedia.QVideoFrame.PixelFormat',),
- "PySide2.QtMultimedia.QCameraImageCapture.setCaptureDestination": ('PySide2.QtMultimedia.QCameraImageCapture.CaptureDestinations',),
- "PySide2.QtMultimedia.QCameraImageCapture.setEncodingSettings": ('PySide2.QtMultimedia.QImageEncoderSettings',),
- "PySide2.QtMultimedia.QCameraImageCapture.setMediaObject": ('PySide2.QtMultimedia.QMediaObject',),
- "PySide2.QtMultimedia.QCameraImageCapture.supportedBufferFormats": (),
- "PySide2.QtMultimedia.QCameraImageCapture.supportedImageCodecs": (),
-# class PySide2.QtMultimedia.QCameraImageCaptureControl:
- "PySide2.QtMultimedia.QCameraImageCaptureControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraImageCaptureControl.cancelCapture": (),
- "PySide2.QtMultimedia.QCameraImageCaptureControl.capture": ('str',),
- "PySide2.QtMultimedia.QCameraImageCaptureControl.driveMode": (),
- "PySide2.QtMultimedia.QCameraImageCaptureControl.isReadyForCapture": (),
- "PySide2.QtMultimedia.QCameraImageCaptureControl.setDriveMode": ('PySide2.QtMultimedia.QCameraImageCapture.DriveMode',),
-# class PySide2.QtMultimedia.QCameraImageProcessing:
-# class PySide2.QtMultimedia.QCameraImageProcessing.ColorFilter:
-# class PySide2.QtMultimedia.QCameraImageProcessing.WhiteBalanceMode:
- "PySide2.QtMultimedia.QCameraImageProcessing.brightness": (),
- "PySide2.QtMultimedia.QCameraImageProcessing.colorFilter": (),
- "PySide2.QtMultimedia.QCameraImageProcessing.contrast": (),
- "PySide2.QtMultimedia.QCameraImageProcessing.denoisingLevel": (),
- "PySide2.QtMultimedia.QCameraImageProcessing.isAvailable": (),
- "PySide2.QtMultimedia.QCameraImageProcessing.isColorFilterSupported": ('PySide2.QtMultimedia.QCameraImageProcessing.ColorFilter',),
- "PySide2.QtMultimedia.QCameraImageProcessing.isWhiteBalanceModeSupported": ('PySide2.QtMultimedia.QCameraImageProcessing.WhiteBalanceMode',),
- "PySide2.QtMultimedia.QCameraImageProcessing.manualWhiteBalance": (),
- "PySide2.QtMultimedia.QCameraImageProcessing.saturation": (),
- "PySide2.QtMultimedia.QCameraImageProcessing.setBrightness": ('float',),
- "PySide2.QtMultimedia.QCameraImageProcessing.setColorFilter": ('PySide2.QtMultimedia.QCameraImageProcessing.ColorFilter',),
- "PySide2.QtMultimedia.QCameraImageProcessing.setContrast": ('float',),
- "PySide2.QtMultimedia.QCameraImageProcessing.setDenoisingLevel": ('float',),
- "PySide2.QtMultimedia.QCameraImageProcessing.setManualWhiteBalance": ('float',),
- "PySide2.QtMultimedia.QCameraImageProcessing.setSaturation": ('float',),
- "PySide2.QtMultimedia.QCameraImageProcessing.setSharpeningLevel": ('float',),
- "PySide2.QtMultimedia.QCameraImageProcessing.setWhiteBalanceMode": ('PySide2.QtMultimedia.QCameraImageProcessing.WhiteBalanceMode',),
- "PySide2.QtMultimedia.QCameraImageProcessing.sharpeningLevel": (),
- "PySide2.QtMultimedia.QCameraImageProcessing.whiteBalanceMode": (),
-# class PySide2.QtMultimedia.QCameraImageProcessingControl:
-# class PySide2.QtMultimedia.QCameraImageProcessingControl.ProcessingParameter:
- "PySide2.QtMultimedia.QCameraImageProcessingControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraImageProcessingControl.isParameterSupported": ('PySide2.QtMultimedia.QCameraImageProcessingControl.ProcessingParameter',),
- "PySide2.QtMultimedia.QCameraImageProcessingControl.isParameterValueSupported": ('PySide2.QtMultimedia.QCameraImageProcessingControl.ProcessingParameter', 'typing.Any'),
- "PySide2.QtMultimedia.QCameraImageProcessingControl.parameter": ('PySide2.QtMultimedia.QCameraImageProcessingControl.ProcessingParameter',),
- "PySide2.QtMultimedia.QCameraImageProcessingControl.setParameter": ('PySide2.QtMultimedia.QCameraImageProcessingControl.ProcessingParameter', 'typing.Any'),
-# class PySide2.QtMultimedia.QCameraInfo:
- "PySide2.QtMultimedia.QCameraInfo.__init__": [('PySide2.QtCore.QByteArray',), ('PySide2.QtMultimedia.QCamera',), ('PySide2.QtMultimedia.QCameraInfo',)],
- "PySide2.QtMultimedia.QCameraInfo.__copy__": (),
- "PySide2.QtMultimedia.QCameraInfo.availableCameras": ('PySide2.QtMultimedia.QCamera.Position',),
- "PySide2.QtMultimedia.QCameraInfo.defaultCamera": (),
- "PySide2.QtMultimedia.QCameraInfo.description": (),
- "PySide2.QtMultimedia.QCameraInfo.deviceName": (),
- "PySide2.QtMultimedia.QCameraInfo.isNull": (),
- "PySide2.QtMultimedia.QCameraInfo.orientation": (),
- "PySide2.QtMultimedia.QCameraInfo.position": (),
-# class PySide2.QtMultimedia.QCameraInfoControl:
- "PySide2.QtMultimedia.QCameraInfoControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraInfoControl.cameraOrientation": ('str',),
- "PySide2.QtMultimedia.QCameraInfoControl.cameraPosition": ('str',),
-# class PySide2.QtMultimedia.QCameraLocksControl:
- "PySide2.QtMultimedia.QCameraLocksControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraLocksControl.lockStatus": ('PySide2.QtMultimedia.QCamera.LockType',),
- "PySide2.QtMultimedia.QCameraLocksControl.searchAndLock": ('PySide2.QtMultimedia.QCamera.LockTypes',),
- "PySide2.QtMultimedia.QCameraLocksControl.supportedLocks": (),
- "PySide2.QtMultimedia.QCameraLocksControl.unlock": ('PySide2.QtMultimedia.QCamera.LockTypes',),
-# class PySide2.QtMultimedia.QCameraViewfinderSettings:
- "PySide2.QtMultimedia.QCameraViewfinderSettings.__init__": [(), ('PySide2.QtMultimedia.QCameraViewfinderSettings',)],
- "PySide2.QtMultimedia.QCameraViewfinderSettings.__copy__": (),
- "PySide2.QtMultimedia.QCameraViewfinderSettings.isNull": (),
- "PySide2.QtMultimedia.QCameraViewfinderSettings.maximumFrameRate": (),
- "PySide2.QtMultimedia.QCameraViewfinderSettings.minimumFrameRate": (),
- "PySide2.QtMultimedia.QCameraViewfinderSettings.pixelAspectRatio": (),
- "PySide2.QtMultimedia.QCameraViewfinderSettings.pixelFormat": (),
- "PySide2.QtMultimedia.QCameraViewfinderSettings.resolution": (),
- "PySide2.QtMultimedia.QCameraViewfinderSettings.setMaximumFrameRate": ('float',),
- "PySide2.QtMultimedia.QCameraViewfinderSettings.setMinimumFrameRate": ('float',),
- "PySide2.QtMultimedia.QCameraViewfinderSettings.setPixelAspectRatio": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtMultimedia.QCameraViewfinderSettings.setPixelFormat": ('PySide2.QtMultimedia.QVideoFrame.PixelFormat',),
- "PySide2.QtMultimedia.QCameraViewfinderSettings.setResolution": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtMultimedia.QCameraViewfinderSettings.swap": ('PySide2.QtMultimedia.QCameraViewfinderSettings',),
-# class PySide2.QtMultimedia.QCameraViewfinderSettingsControl:
-# class PySide2.QtMultimedia.QCameraViewfinderSettingsControl.ViewfinderParameter:
- "PySide2.QtMultimedia.QCameraViewfinderSettingsControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraViewfinderSettingsControl.isViewfinderParameterSupported": ('PySide2.QtMultimedia.QCameraViewfinderSettingsControl.ViewfinderParameter',),
- "PySide2.QtMultimedia.QCameraViewfinderSettingsControl.setViewfinderParameter": ('PySide2.QtMultimedia.QCameraViewfinderSettingsControl.ViewfinderParameter', 'typing.Any'),
- "PySide2.QtMultimedia.QCameraViewfinderSettingsControl.viewfinderParameter": ('PySide2.QtMultimedia.QCameraViewfinderSettingsControl.ViewfinderParameter',),
-# class PySide2.QtMultimedia.QCameraViewfinderSettingsControl2:
- "PySide2.QtMultimedia.QCameraViewfinderSettingsControl2.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraViewfinderSettingsControl2.setViewfinderSettings": ('PySide2.QtMultimedia.QCameraViewfinderSettings',),
- "PySide2.QtMultimedia.QCameraViewfinderSettingsControl2.supportedViewfinderSettings": (),
- "PySide2.QtMultimedia.QCameraViewfinderSettingsControl2.viewfinderSettings": (),
-# class PySide2.QtMultimedia.QCameraZoomControl:
- "PySide2.QtMultimedia.QCameraZoomControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraZoomControl.currentDigitalZoom": (),
- "PySide2.QtMultimedia.QCameraZoomControl.currentOpticalZoom": (),
- "PySide2.QtMultimedia.QCameraZoomControl.maximumDigitalZoom": (),
- "PySide2.QtMultimedia.QCameraZoomControl.maximumOpticalZoom": (),
- "PySide2.QtMultimedia.QCameraZoomControl.requestedDigitalZoom": (),
- "PySide2.QtMultimedia.QCameraZoomControl.requestedOpticalZoom": (),
- "PySide2.QtMultimedia.QCameraZoomControl.zoomTo": ('float', 'float'),
-# class PySide2.QtMultimedia.QCustomAudioRoleControl:
- "PySide2.QtMultimedia.QCustomAudioRoleControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCustomAudioRoleControl.customAudioRole": (),
- "PySide2.QtMultimedia.QCustomAudioRoleControl.setCustomAudioRole": ('str',),
- "PySide2.QtMultimedia.QCustomAudioRoleControl.supportedCustomAudioRoles": (),
-# class PySide2.QtMultimedia.QImageEncoderControl:
- "PySide2.QtMultimedia.QImageEncoderControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QImageEncoderControl.imageCodecDescription": ('str',),
- "PySide2.QtMultimedia.QImageEncoderControl.imageSettings": (),
- "PySide2.QtMultimedia.QImageEncoderControl.setImageSettings": ('PySide2.QtMultimedia.QImageEncoderSettings',),
- "PySide2.QtMultimedia.QImageEncoderControl.supportedImageCodecs": (),
-# class PySide2.QtMultimedia.QImageEncoderSettings:
- "PySide2.QtMultimedia.QImageEncoderSettings.__init__": [(), ('PySide2.QtMultimedia.QImageEncoderSettings',)],
- "PySide2.QtMultimedia.QImageEncoderSettings.__copy__": (),
- "PySide2.QtMultimedia.QImageEncoderSettings.codec": (),
- "PySide2.QtMultimedia.QImageEncoderSettings.encodingOption": ('str',),
- "PySide2.QtMultimedia.QImageEncoderSettings.encodingOptions": (),
- "PySide2.QtMultimedia.QImageEncoderSettings.isNull": (),
- "PySide2.QtMultimedia.QImageEncoderSettings.quality": (),
- "PySide2.QtMultimedia.QImageEncoderSettings.resolution": (),
- "PySide2.QtMultimedia.QImageEncoderSettings.setCodec": ('str',),
- "PySide2.QtMultimedia.QImageEncoderSettings.setEncodingOption": ('str', 'typing.Any'),
- "PySide2.QtMultimedia.QImageEncoderSettings.setEncodingOptions": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtMultimedia.QImageEncoderSettings.setQuality": ('PySide2.QtMultimedia.QMultimedia.EncodingQuality',),
- "PySide2.QtMultimedia.QImageEncoderSettings.setResolution": [('PySide2.QtCore.QSize',), ('int', 'int')],
-# class PySide2.QtMultimedia.QMediaAudioProbeControl:
- "PySide2.QtMultimedia.QMediaAudioProbeControl.__init__": ('PySide2.QtCore.QObject',),
-# class PySide2.QtMultimedia.QMediaAvailabilityControl:
- "PySide2.QtMultimedia.QMediaAvailabilityControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaAvailabilityControl.availability": (),
-# class PySide2.QtMultimedia.QMediaBindableInterface:
- "PySide2.QtMultimedia.QMediaBindableInterface.__init__": (),
- "PySide2.QtMultimedia.QMediaBindableInterface.mediaObject": (),
- "PySide2.QtMultimedia.QMediaBindableInterface.setMediaObject": ('PySide2.QtMultimedia.QMediaObject',),
-# class PySide2.QtMultimedia.QMediaContainerControl:
- "PySide2.QtMultimedia.QMediaContainerControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaContainerControl.containerDescription": ('str',),
- "PySide2.QtMultimedia.QMediaContainerControl.containerFormat": (),
- "PySide2.QtMultimedia.QMediaContainerControl.setContainerFormat": ('str',),
- "PySide2.QtMultimedia.QMediaContainerControl.supportedContainers": (),
-# class PySide2.QtMultimedia.QMediaContent:
- "PySide2.QtMultimedia.QMediaContent.__init__": [(), ('PySide2.QtCore.QUrl',), ('PySide2.QtMultimedia.QMediaContent',), ('PySide2.QtMultimedia.QMediaPlaylist', 'PySide2.QtCore.QUrl', 'bool'), ('PySide2.QtMultimedia.QMediaResource',), ('PySide2.QtNetwork.QNetworkRequest',), ('typing.Sequence[PySide2.QtMultimedia.QMediaResource]',)],
- "PySide2.QtMultimedia.QMediaContent.__copy__": (),
- "PySide2.QtMultimedia.QMediaContent.canonicalRequest": (),
- "PySide2.QtMultimedia.QMediaContent.canonicalResource": (),
- "PySide2.QtMultimedia.QMediaContent.canonicalUrl": (),
- "PySide2.QtMultimedia.QMediaContent.isNull": (),
- "PySide2.QtMultimedia.QMediaContent.playlist": (),
- "PySide2.QtMultimedia.QMediaContent.request": (),
- "PySide2.QtMultimedia.QMediaContent.resources": (),
-# class PySide2.QtMultimedia.QMediaControl:
- "PySide2.QtMultimedia.QMediaControl.__init__": ('PySide2.QtCore.QObject',),
-# class PySide2.QtMultimedia.QMediaGaplessPlaybackControl:
- "PySide2.QtMultimedia.QMediaGaplessPlaybackControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaGaplessPlaybackControl.crossfadeTime": (),
- "PySide2.QtMultimedia.QMediaGaplessPlaybackControl.isCrossfadeSupported": (),
- "PySide2.QtMultimedia.QMediaGaplessPlaybackControl.nextMedia": (),
- "PySide2.QtMultimedia.QMediaGaplessPlaybackControl.setCrossfadeTime": ('float',),
- "PySide2.QtMultimedia.QMediaGaplessPlaybackControl.setNextMedia": ('PySide2.QtMultimedia.QMediaContent',),
-# class PySide2.QtMultimedia.QMediaNetworkAccessControl:
- "PySide2.QtMultimedia.QMediaNetworkAccessControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaNetworkAccessControl.currentConfiguration": (),
- "PySide2.QtMultimedia.QMediaNetworkAccessControl.setConfigurations": ('typing.Sequence[PySide2.QtNetwork.QNetworkConfiguration]',),
-# class PySide2.QtMultimedia.QMediaObject:
- "PySide2.QtMultimedia.QMediaObject.__init__": ('PySide2.QtCore.QObject', 'PySide2.QtMultimedia.QMediaService'),
- "PySide2.QtMultimedia.QMediaObject.addPropertyWatch": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtMultimedia.QMediaObject.availability": (),
- "PySide2.QtMultimedia.QMediaObject.availableMetaData": (),
- "PySide2.QtMultimedia.QMediaObject.bind": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaObject.isAvailable": (),
- "PySide2.QtMultimedia.QMediaObject.isMetaDataAvailable": (),
- "PySide2.QtMultimedia.QMediaObject.metaData": ('str',),
- "PySide2.QtMultimedia.QMediaObject.notifyInterval": (),
- "PySide2.QtMultimedia.QMediaObject.removePropertyWatch": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtMultimedia.QMediaObject.service": (),
- "PySide2.QtMultimedia.QMediaObject.setNotifyInterval": ('int',),
- "PySide2.QtMultimedia.QMediaObject.unbind": ('PySide2.QtCore.QObject',),
-# class PySide2.QtMultimedia.QMediaPlayer:
-# class PySide2.QtMultimedia.QMediaPlayer.Error:
-# class PySide2.QtMultimedia.QMediaPlayer.Flag:
-# class PySide2.QtMultimedia.QMediaPlayer.Flags:
-# class PySide2.QtMultimedia.QMediaPlayer.MediaStatus:
-# class PySide2.QtMultimedia.QMediaPlayer.State:
- "PySide2.QtMultimedia.QMediaPlayer.__init__": ('PySide2.QtCore.QObject', 'PySide2.QtMultimedia.QMediaPlayer.Flags'),
- "PySide2.QtMultimedia.QMediaPlayer.audioRole": (),
- "PySide2.QtMultimedia.QMediaPlayer.availability": (),
- "PySide2.QtMultimedia.QMediaPlayer.bind": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaPlayer.bufferStatus": (),
- "PySide2.QtMultimedia.QMediaPlayer.currentMedia": (),
- "PySide2.QtMultimedia.QMediaPlayer.currentNetworkConfiguration": (),
- "PySide2.QtMultimedia.QMediaPlayer.customAudioRole": (),
- "PySide2.QtMultimedia.QMediaPlayer.duration": (),
- "PySide2.QtMultimedia.QMediaPlayer.error": (),
- "PySide2.QtMultimedia.QMediaPlayer.errorString": (),
- "PySide2.QtMultimedia.QMediaPlayer.hasSupport": ('str', 'typing.Sequence[str]', 'PySide2.QtMultimedia.QMediaPlayer.Flags'),
- "PySide2.QtMultimedia.QMediaPlayer.isAudioAvailable": (),
- "PySide2.QtMultimedia.QMediaPlayer.isMuted": (),
- "PySide2.QtMultimedia.QMediaPlayer.isSeekable": (),
- "PySide2.QtMultimedia.QMediaPlayer.isVideoAvailable": (),
- "PySide2.QtMultimedia.QMediaPlayer.media": (),
- "PySide2.QtMultimedia.QMediaPlayer.mediaStatus": (),
- "PySide2.QtMultimedia.QMediaPlayer.mediaStream": (),
- "PySide2.QtMultimedia.QMediaPlayer.pause": (),
- "PySide2.QtMultimedia.QMediaPlayer.play": (),
- "PySide2.QtMultimedia.QMediaPlayer.playbackRate": (),
- "PySide2.QtMultimedia.QMediaPlayer.playlist": (),
- "PySide2.QtMultimedia.QMediaPlayer.position": (),
- "PySide2.QtMultimedia.QMediaPlayer.setAudioRole": ('PySide2.QtMultimedia.QAudio.Role',),
- "PySide2.QtMultimedia.QMediaPlayer.setCustomAudioRole": ('str',),
- "PySide2.QtMultimedia.QMediaPlayer.setMedia": ('PySide2.QtMultimedia.QMediaContent', 'PySide2.QtCore.QIODevice'),
- "PySide2.QtMultimedia.QMediaPlayer.setMuted": ('bool',),
- "PySide2.QtMultimedia.QMediaPlayer.setNetworkConfigurations": ('typing.Sequence[PySide2.QtNetwork.QNetworkConfiguration]',),
- "PySide2.QtMultimedia.QMediaPlayer.setPlaybackRate": ('float',),
- "PySide2.QtMultimedia.QMediaPlayer.setPlaylist": ('PySide2.QtMultimedia.QMediaPlaylist',),
- "PySide2.QtMultimedia.QMediaPlayer.setPosition": ('int',),
- "PySide2.QtMultimedia.QMediaPlayer.setVideoOutput": [('PySide2.QtMultimedia.QAbstractVideoSurface',), ('PySide2.QtMultimediaWidgets.QGraphicsVideoItem',), ('PySide2.QtMultimediaWidgets.QVideoWidget',)],
- "PySide2.QtMultimedia.QMediaPlayer.setVolume": ('int',),
- "PySide2.QtMultimedia.QMediaPlayer.state": (),
- "PySide2.QtMultimedia.QMediaPlayer.stop": (),
- "PySide2.QtMultimedia.QMediaPlayer.supportedAudioRoles": (),
- "PySide2.QtMultimedia.QMediaPlayer.supportedCustomAudioRoles": (),
- "PySide2.QtMultimedia.QMediaPlayer.supportedMimeTypes": ('PySide2.QtMultimedia.QMediaPlayer.Flags',),
- "PySide2.QtMultimedia.QMediaPlayer.unbind": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaPlayer.volume": (),
-# class PySide2.QtMultimedia.QMediaPlayerControl:
- "PySide2.QtMultimedia.QMediaPlayerControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaPlayerControl.availablePlaybackRanges": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.bufferStatus": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.duration": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.isAudioAvailable": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.isMuted": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.isSeekable": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.isVideoAvailable": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.media": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.mediaStatus": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.mediaStream": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.pause": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.play": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.playbackRate": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.position": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.setMedia": ('PySide2.QtMultimedia.QMediaContent', 'PySide2.QtCore.QIODevice'),
- "PySide2.QtMultimedia.QMediaPlayerControl.setMuted": ('bool',),
- "PySide2.QtMultimedia.QMediaPlayerControl.setPlaybackRate": ('float',),
- "PySide2.QtMultimedia.QMediaPlayerControl.setPosition": ('int',),
- "PySide2.QtMultimedia.QMediaPlayerControl.setVolume": ('int',),
- "PySide2.QtMultimedia.QMediaPlayerControl.state": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.stop": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.volume": (),
-# class PySide2.QtMultimedia.QMediaPlaylist:
-# class PySide2.QtMultimedia.QMediaPlaylist.Error:
-# class PySide2.QtMultimedia.QMediaPlaylist.PlaybackMode:
- "PySide2.QtMultimedia.QMediaPlaylist.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaPlaylist.addMedia": [('PySide2.QtMultimedia.QMediaContent',), ('typing.Sequence[PySide2.QtMultimedia.QMediaContent]',)],
- "PySide2.QtMultimedia.QMediaPlaylist.clear": (),
- "PySide2.QtMultimedia.QMediaPlaylist.currentIndex": (),
- "PySide2.QtMultimedia.QMediaPlaylist.currentMedia": (),
- "PySide2.QtMultimedia.QMediaPlaylist.error": (),
- "PySide2.QtMultimedia.QMediaPlaylist.errorString": (),
- "PySide2.QtMultimedia.QMediaPlaylist.insertMedia": [('int', 'PySide2.QtMultimedia.QMediaContent'), ('int', 'typing.Sequence[PySide2.QtMultimedia.QMediaContent]')],
- "PySide2.QtMultimedia.QMediaPlaylist.isEmpty": (),
- "PySide2.QtMultimedia.QMediaPlaylist.isReadOnly": (),
- "PySide2.QtMultimedia.QMediaPlaylist.load": [('PySide2.QtCore.QIODevice', 'str'), ('PySide2.QtCore.QUrl', 'str'), ('PySide2.QtNetwork.QNetworkRequest', 'str')],
- "PySide2.QtMultimedia.QMediaPlaylist.media": ('int',),
- "PySide2.QtMultimedia.QMediaPlaylist.mediaCount": (),
- "PySide2.QtMultimedia.QMediaPlaylist.mediaObject": (),
- "PySide2.QtMultimedia.QMediaPlaylist.moveMedia": ('int', 'int'),
- "PySide2.QtMultimedia.QMediaPlaylist.nextIndex": ('int',),
- "PySide2.QtMultimedia.QMediaPlaylist.playbackMode": (),
- "PySide2.QtMultimedia.QMediaPlaylist.previous": (),
- "PySide2.QtMultimedia.QMediaPlaylist.previousIndex": ('int',),
- "PySide2.QtMultimedia.QMediaPlaylist.removeMedia": [('int',), ('int', 'int')],
- "PySide2.QtMultimedia.QMediaPlaylist.save": [('PySide2.QtCore.QIODevice', 'str'), ('PySide2.QtCore.QUrl', 'str')],
- "PySide2.QtMultimedia.QMediaPlaylist.setCurrentIndex": ('int',),
- "PySide2.QtMultimedia.QMediaPlaylist.setMediaObject": ('PySide2.QtMultimedia.QMediaObject',),
- "PySide2.QtMultimedia.QMediaPlaylist.setPlaybackMode": ('PySide2.QtMultimedia.QMediaPlaylist.PlaybackMode',),
- "PySide2.QtMultimedia.QMediaPlaylist.shuffle": (),
-# class PySide2.QtMultimedia.QMediaRecorder:
-# class PySide2.QtMultimedia.QMediaRecorder.Error:
-# class PySide2.QtMultimedia.QMediaRecorder.State:
-# class PySide2.QtMultimedia.QMediaRecorder.Status:
- "PySide2.QtMultimedia.QMediaRecorder.__init__": ('PySide2.QtMultimedia.QMediaObject', 'PySide2.QtCore.QObject'),
- "PySide2.QtMultimedia.QMediaRecorder.actualLocation": (),
- "PySide2.QtMultimedia.QMediaRecorder.audioCodecDescription": ('str',),
- "PySide2.QtMultimedia.QMediaRecorder.audioSettings": (),
- "PySide2.QtMultimedia.QMediaRecorder.availability": (),
- "PySide2.QtMultimedia.QMediaRecorder.availableMetaData": (),
- "PySide2.QtMultimedia.QMediaRecorder.containerDescription": ('str',),
- "PySide2.QtMultimedia.QMediaRecorder.containerFormat": (),
- "PySide2.QtMultimedia.QMediaRecorder.duration": (),
- "PySide2.QtMultimedia.QMediaRecorder.error": (),
- "PySide2.QtMultimedia.QMediaRecorder.errorString": (),
- "PySide2.QtMultimedia.QMediaRecorder.isAvailable": (),
- "PySide2.QtMultimedia.QMediaRecorder.isMetaDataAvailable": (),
- "PySide2.QtMultimedia.QMediaRecorder.isMetaDataWritable": (),
- "PySide2.QtMultimedia.QMediaRecorder.isMuted": (),
- "PySide2.QtMultimedia.QMediaRecorder.mediaObject": (),
- "PySide2.QtMultimedia.QMediaRecorder.metaData": ('str',),
- "PySide2.QtMultimedia.QMediaRecorder.outputLocation": (),
- "PySide2.QtMultimedia.QMediaRecorder.pause": (),
- "PySide2.QtMultimedia.QMediaRecorder.record": (),
- "PySide2.QtMultimedia.QMediaRecorder.setAudioSettings": ('PySide2.QtMultimedia.QAudioEncoderSettings',),
- "PySide2.QtMultimedia.QMediaRecorder.setContainerFormat": ('str',),
- "PySide2.QtMultimedia.QMediaRecorder.setEncodingSettings": ('PySide2.QtMultimedia.QAudioEncoderSettings', 'PySide2.QtMultimedia.QVideoEncoderSettings', 'str'),
- "PySide2.QtMultimedia.QMediaRecorder.setMediaObject": ('PySide2.QtMultimedia.QMediaObject',),
- "PySide2.QtMultimedia.QMediaRecorder.setMetaData": ('str', 'typing.Any'),
- "PySide2.QtMultimedia.QMediaRecorder.setMuted": ('bool',),
- "PySide2.QtMultimedia.QMediaRecorder.setOutputLocation": ('PySide2.QtCore.QUrl',),
- "PySide2.QtMultimedia.QMediaRecorder.setVideoSettings": ('PySide2.QtMultimedia.QVideoEncoderSettings',),
- "PySide2.QtMultimedia.QMediaRecorder.setVolume": ('float',),
- "PySide2.QtMultimedia.QMediaRecorder.state": (),
- "PySide2.QtMultimedia.QMediaRecorder.status": (),
- "PySide2.QtMultimedia.QMediaRecorder.stop": (),
- "PySide2.QtMultimedia.QMediaRecorder.supportedAudioCodecs": (),
- "PySide2.QtMultimedia.QMediaRecorder.supportedContainers": (),
- "PySide2.QtMultimedia.QMediaRecorder.supportedVideoCodecs": (),
- "PySide2.QtMultimedia.QMediaRecorder.videoCodecDescription": ('str',),
- "PySide2.QtMultimedia.QMediaRecorder.videoSettings": (),
- "PySide2.QtMultimedia.QMediaRecorder.volume": (),
-# class PySide2.QtMultimedia.QMediaRecorderControl:
- "PySide2.QtMultimedia.QMediaRecorderControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaRecorderControl.applySettings": (),
- "PySide2.QtMultimedia.QMediaRecorderControl.duration": (),
- "PySide2.QtMultimedia.QMediaRecorderControl.isMuted": (),
- "PySide2.QtMultimedia.QMediaRecorderControl.outputLocation": (),
- "PySide2.QtMultimedia.QMediaRecorderControl.setMuted": ('bool',),
- "PySide2.QtMultimedia.QMediaRecorderControl.setOutputLocation": ('PySide2.QtCore.QUrl',),
- "PySide2.QtMultimedia.QMediaRecorderControl.setState": ('PySide2.QtMultimedia.QMediaRecorder.State',),
- "PySide2.QtMultimedia.QMediaRecorderControl.setVolume": ('float',),
- "PySide2.QtMultimedia.QMediaRecorderControl.state": (),
- "PySide2.QtMultimedia.QMediaRecorderControl.status": (),
- "PySide2.QtMultimedia.QMediaRecorderControl.volume": (),
-# class PySide2.QtMultimedia.QMediaResource:
- "PySide2.QtMultimedia.QMediaResource.__init__": [(), ('PySide2.QtCore.QUrl', 'str'), ('PySide2.QtMultimedia.QMediaResource',), ('PySide2.QtNetwork.QNetworkRequest', 'str')],
- "PySide2.QtMultimedia.QMediaResource.__copy__": (),
- "PySide2.QtMultimedia.QMediaResource.audioBitRate": (),
- "PySide2.QtMultimedia.QMediaResource.audioCodec": (),
- "PySide2.QtMultimedia.QMediaResource.channelCount": (),
- "PySide2.QtMultimedia.QMediaResource.dataSize": (),
- "PySide2.QtMultimedia.QMediaResource.isNull": (),
- "PySide2.QtMultimedia.QMediaResource.language": (),
- "PySide2.QtMultimedia.QMediaResource.mimeType": (),
- "PySide2.QtMultimedia.QMediaResource.request": (),
- "PySide2.QtMultimedia.QMediaResource.resolution": (),
- "PySide2.QtMultimedia.QMediaResource.sampleRate": (),
- "PySide2.QtMultimedia.QMediaResource.setAudioBitRate": ('int',),
- "PySide2.QtMultimedia.QMediaResource.setAudioCodec": ('str',),
- "PySide2.QtMultimedia.QMediaResource.setChannelCount": ('int',),
- "PySide2.QtMultimedia.QMediaResource.setDataSize": ('int',),
- "PySide2.QtMultimedia.QMediaResource.setLanguage": ('str',),
- "PySide2.QtMultimedia.QMediaResource.setResolution": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtMultimedia.QMediaResource.setSampleRate": ('int',),
- "PySide2.QtMultimedia.QMediaResource.setVideoBitRate": ('int',),
- "PySide2.QtMultimedia.QMediaResource.setVideoCodec": ('str',),
- "PySide2.QtMultimedia.QMediaResource.url": (),
- "PySide2.QtMultimedia.QMediaResource.videoBitRate": (),
- "PySide2.QtMultimedia.QMediaResource.videoCodec": (),
-# class PySide2.QtMultimedia.QMediaService:
- "PySide2.QtMultimedia.QMediaService.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaService.releaseControl": ('PySide2.QtMultimedia.QMediaControl',),
- "PySide2.QtMultimedia.QMediaService.requestControl": ('str',),
-# class PySide2.QtMultimedia.QMediaServiceCameraInfoInterface:
- "PySide2.QtMultimedia.QMediaServiceCameraInfoInterface.__init__": (),
- "PySide2.QtMultimedia.QMediaServiceCameraInfoInterface.cameraOrientation": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtMultimedia.QMediaServiceCameraInfoInterface.cameraPosition": ('PySide2.QtCore.QByteArray',),
-# class PySide2.QtMultimedia.QMediaServiceDefaultDeviceInterface:
- "PySide2.QtMultimedia.QMediaServiceDefaultDeviceInterface.__init__": (),
- "PySide2.QtMultimedia.QMediaServiceDefaultDeviceInterface.defaultDevice": ('PySide2.QtCore.QByteArray',),
-# class PySide2.QtMultimedia.QMediaServiceFeaturesInterface:
- "PySide2.QtMultimedia.QMediaServiceFeaturesInterface.__init__": (),
- "PySide2.QtMultimedia.QMediaServiceFeaturesInterface.supportedFeatures": ('PySide2.QtCore.QByteArray',),
-# class PySide2.QtMultimedia.QMediaServiceProviderHint:
-# class PySide2.QtMultimedia.QMediaServiceProviderHint.Feature:
-# class PySide2.QtMultimedia.QMediaServiceProviderHint.Features:
-# class PySide2.QtMultimedia.QMediaServiceProviderHint.Type:
- "PySide2.QtMultimedia.QMediaServiceProviderHint.__init__": [(), ('PySide2.QtCore.QByteArray',), ('PySide2.QtMultimedia.QCamera.Position',), ('PySide2.QtMultimedia.QMediaServiceProviderHint',), ('PySide2.QtMultimedia.QMediaServiceProviderHint.Features',), ('str', 'typing.Sequence[str]')],
- "PySide2.QtMultimedia.QMediaServiceProviderHint.__copy__": (),
- "PySide2.QtMultimedia.QMediaServiceProviderHint.cameraPosition": (),
- "PySide2.QtMultimedia.QMediaServiceProviderHint.codecs": (),
- "PySide2.QtMultimedia.QMediaServiceProviderHint.device": (),
- "PySide2.QtMultimedia.QMediaServiceProviderHint.features": (),
- "PySide2.QtMultimedia.QMediaServiceProviderHint.isNull": (),
- "PySide2.QtMultimedia.QMediaServiceProviderHint.mimeType": (),
- "PySide2.QtMultimedia.QMediaServiceProviderHint.type": (),
-# class PySide2.QtMultimedia.QMediaServiceSupportedDevicesInterface:
- "PySide2.QtMultimedia.QMediaServiceSupportedDevicesInterface.__init__": (),
- "PySide2.QtMultimedia.QMediaServiceSupportedDevicesInterface.deviceDescription": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtMultimedia.QMediaServiceSupportedDevicesInterface.devices": ('PySide2.QtCore.QByteArray',),
-# class PySide2.QtMultimedia.QMediaServiceSupportedFormatsInterface:
- "PySide2.QtMultimedia.QMediaServiceSupportedFormatsInterface.__init__": (),
- "PySide2.QtMultimedia.QMediaServiceSupportedFormatsInterface.hasSupport": ('str', 'typing.Sequence[str]'),
- "PySide2.QtMultimedia.QMediaServiceSupportedFormatsInterface.supportedMimeTypes": (),
-# class PySide2.QtMultimedia.QMediaStreamsControl:
-# class PySide2.QtMultimedia.QMediaStreamsControl.StreamType:
- "PySide2.QtMultimedia.QMediaStreamsControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaStreamsControl.isActive": ('int',),
- "PySide2.QtMultimedia.QMediaStreamsControl.metaData": ('int', 'str'),
- "PySide2.QtMultimedia.QMediaStreamsControl.setActive": ('int', 'bool'),
- "PySide2.QtMultimedia.QMediaStreamsControl.streamCount": (),
- "PySide2.QtMultimedia.QMediaStreamsControl.streamType": ('int',),
-# class PySide2.QtMultimedia.QMediaTimeInterval:
- "PySide2.QtMultimedia.QMediaTimeInterval.__init__": [(), ('PySide2.QtMultimedia.QMediaTimeInterval',), ('int', 'int')],
- "PySide2.QtMultimedia.QMediaTimeInterval.__copy__": (),
- "PySide2.QtMultimedia.QMediaTimeInterval.contains": ('int',),
- "PySide2.QtMultimedia.QMediaTimeInterval.end": (),
- "PySide2.QtMultimedia.QMediaTimeInterval.isNormal": (),
- "PySide2.QtMultimedia.QMediaTimeInterval.normalized": (),
- "PySide2.QtMultimedia.QMediaTimeInterval.start": (),
- "PySide2.QtMultimedia.QMediaTimeInterval.translated": ('int',),
-# class PySide2.QtMultimedia.QMediaTimeRange:
- "PySide2.QtMultimedia.QMediaTimeRange.__init__": [(), ('PySide2.QtMultimedia.QMediaTimeInterval',), ('PySide2.QtMultimedia.QMediaTimeRange',), ('int', 'int')],
- "PySide2.QtMultimedia.QMediaTimeRange.__add__": ('PySide2.QtMultimedia.QMediaTimeRange',),
- "PySide2.QtMultimedia.QMediaTimeRange.__copy__": (),
- "PySide2.QtMultimedia.QMediaTimeRange.__iadd__": [('PySide2.QtMultimedia.QMediaTimeInterval',), ('PySide2.QtMultimedia.QMediaTimeRange',)],
- "PySide2.QtMultimedia.QMediaTimeRange.__isub__": [('PySide2.QtMultimedia.QMediaTimeInterval',), ('PySide2.QtMultimedia.QMediaTimeRange',)],
- "PySide2.QtMultimedia.QMediaTimeRange.__sub__": ('PySide2.QtMultimedia.QMediaTimeRange',),
- "PySide2.QtMultimedia.QMediaTimeRange.addInterval": [('PySide2.QtMultimedia.QMediaTimeInterval',), ('int', 'int')],
- "PySide2.QtMultimedia.QMediaTimeRange.addTimeRange": ('PySide2.QtMultimedia.QMediaTimeRange',),
- "PySide2.QtMultimedia.QMediaTimeRange.clear": (),
- "PySide2.QtMultimedia.QMediaTimeRange.contains": ('int',),
- "PySide2.QtMultimedia.QMediaTimeRange.earliestTime": (),
- "PySide2.QtMultimedia.QMediaTimeRange.intervals": (),
- "PySide2.QtMultimedia.QMediaTimeRange.isContinuous": (),
- "PySide2.QtMultimedia.QMediaTimeRange.isEmpty": (),
- "PySide2.QtMultimedia.QMediaTimeRange.latestTime": (),
- "PySide2.QtMultimedia.QMediaTimeRange.removeInterval": [('PySide2.QtMultimedia.QMediaTimeInterval',), ('int', 'int')],
- "PySide2.QtMultimedia.QMediaTimeRange.removeTimeRange": ('PySide2.QtMultimedia.QMediaTimeRange',),
-# class PySide2.QtMultimedia.QMediaVideoProbeControl:
- "PySide2.QtMultimedia.QMediaVideoProbeControl.__init__": ('PySide2.QtCore.QObject',),
-# class PySide2.QtMultimedia.QMetaDataReaderControl:
- "PySide2.QtMultimedia.QMetaDataReaderControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMetaDataReaderControl.availableMetaData": (),
- "PySide2.QtMultimedia.QMetaDataReaderControl.isMetaDataAvailable": (),
- "PySide2.QtMultimedia.QMetaDataReaderControl.metaData": ('str',),
-# class PySide2.QtMultimedia.QMetaDataWriterControl:
- "PySide2.QtMultimedia.QMetaDataWriterControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMetaDataWriterControl.availableMetaData": (),
- "PySide2.QtMultimedia.QMetaDataWriterControl.isMetaDataAvailable": (),
- "PySide2.QtMultimedia.QMetaDataWriterControl.isWritable": (),
- "PySide2.QtMultimedia.QMetaDataWriterControl.metaData": ('str',),
- "PySide2.QtMultimedia.QMetaDataWriterControl.setMetaData": ('str', 'typing.Any'),
-# class PySide2.QtMultimedia.QMultimedia:
-# class PySide2.QtMultimedia.QMultimedia.AvailabilityStatus:
-# class PySide2.QtMultimedia.QMultimedia.EncodingMode:
-# class PySide2.QtMultimedia.QMultimedia.EncodingQuality:
-# class PySide2.QtMultimedia.QMultimedia.SupportEstimate:
-# class PySide2.QtMultimedia.QRadioData:
-# class PySide2.QtMultimedia.QRadioData.Error:
-# class PySide2.QtMultimedia.QRadioData.ProgramType:
- "PySide2.QtMultimedia.QRadioData.__init__": ('PySide2.QtMultimedia.QMediaObject', 'PySide2.QtCore.QObject'),
- "PySide2.QtMultimedia.QRadioData.availability": (),
- "PySide2.QtMultimedia.QRadioData.error": (),
- "PySide2.QtMultimedia.QRadioData.errorString": (),
- "PySide2.QtMultimedia.QRadioData.isAlternativeFrequenciesEnabled": (),
- "PySide2.QtMultimedia.QRadioData.mediaObject": (),
- "PySide2.QtMultimedia.QRadioData.programType": (),
- "PySide2.QtMultimedia.QRadioData.programTypeName": (),
- "PySide2.QtMultimedia.QRadioData.radioText": (),
- "PySide2.QtMultimedia.QRadioData.setAlternativeFrequenciesEnabled": ('bool',),
- "PySide2.QtMultimedia.QRadioData.setMediaObject": ('PySide2.QtMultimedia.QMediaObject',),
- "PySide2.QtMultimedia.QRadioData.stationId": (),
- "PySide2.QtMultimedia.QRadioData.stationName": (),
-# class PySide2.QtMultimedia.QRadioDataControl:
- "PySide2.QtMultimedia.QRadioDataControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QRadioDataControl.error": (),
- "PySide2.QtMultimedia.QRadioDataControl.errorString": (),
- "PySide2.QtMultimedia.QRadioDataControl.isAlternativeFrequenciesEnabled": (),
- "PySide2.QtMultimedia.QRadioDataControl.programType": (),
- "PySide2.QtMultimedia.QRadioDataControl.programTypeName": (),
- "PySide2.QtMultimedia.QRadioDataControl.radioText": (),
- "PySide2.QtMultimedia.QRadioDataControl.setAlternativeFrequenciesEnabled": ('bool',),
- "PySide2.QtMultimedia.QRadioDataControl.stationId": (),
- "PySide2.QtMultimedia.QRadioDataControl.stationName": (),
-# class PySide2.QtMultimedia.QRadioTuner:
-# class PySide2.QtMultimedia.QRadioTuner.Band:
-# class PySide2.QtMultimedia.QRadioTuner.Error:
-# class PySide2.QtMultimedia.QRadioTuner.SearchMode:
-# class PySide2.QtMultimedia.QRadioTuner.State:
-# class PySide2.QtMultimedia.QRadioTuner.StereoMode:
- "PySide2.QtMultimedia.QRadioTuner.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QRadioTuner.availability": (),
- "PySide2.QtMultimedia.QRadioTuner.band": (),
- "PySide2.QtMultimedia.QRadioTuner.cancelSearch": (),
- "PySide2.QtMultimedia.QRadioTuner.error": (),
- "PySide2.QtMultimedia.QRadioTuner.errorString": (),
- "PySide2.QtMultimedia.QRadioTuner.frequency": (),
- "PySide2.QtMultimedia.QRadioTuner.frequencyRange": ('PySide2.QtMultimedia.QRadioTuner.Band',),
- "PySide2.QtMultimedia.QRadioTuner.frequencyStep": ('PySide2.QtMultimedia.QRadioTuner.Band',),
- "PySide2.QtMultimedia.QRadioTuner.isAntennaConnected": (),
- "PySide2.QtMultimedia.QRadioTuner.isBandSupported": ('PySide2.QtMultimedia.QRadioTuner.Band',),
- "PySide2.QtMultimedia.QRadioTuner.isMuted": (),
- "PySide2.QtMultimedia.QRadioTuner.isSearching": (),
- "PySide2.QtMultimedia.QRadioTuner.isStereo": (),
- "PySide2.QtMultimedia.QRadioTuner.radioData": (),
- "PySide2.QtMultimedia.QRadioTuner.searchAllStations": ('PySide2.QtMultimedia.QRadioTuner.SearchMode',),
- "PySide2.QtMultimedia.QRadioTuner.searchBackward": (),
- "PySide2.QtMultimedia.QRadioTuner.searchForward": (),
- "PySide2.QtMultimedia.QRadioTuner.setBand": ('PySide2.QtMultimedia.QRadioTuner.Band',),
- "PySide2.QtMultimedia.QRadioTuner.setFrequency": ('int',),
- "PySide2.QtMultimedia.QRadioTuner.setMuted": ('bool',),
- "PySide2.QtMultimedia.QRadioTuner.setStereoMode": ('PySide2.QtMultimedia.QRadioTuner.StereoMode',),
- "PySide2.QtMultimedia.QRadioTuner.setVolume": ('int',),
- "PySide2.QtMultimedia.QRadioTuner.signalStrength": (),
- "PySide2.QtMultimedia.QRadioTuner.start": (),
- "PySide2.QtMultimedia.QRadioTuner.state": (),
- "PySide2.QtMultimedia.QRadioTuner.stereoMode": (),
- "PySide2.QtMultimedia.QRadioTuner.stop": (),
- "PySide2.QtMultimedia.QRadioTuner.volume": (),
-# class PySide2.QtMultimedia.QRadioTunerControl:
- "PySide2.QtMultimedia.QRadioTunerControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QRadioTunerControl.band": (),
- "PySide2.QtMultimedia.QRadioTunerControl.cancelSearch": (),
- "PySide2.QtMultimedia.QRadioTunerControl.error": (),
- "PySide2.QtMultimedia.QRadioTunerControl.errorString": (),
- "PySide2.QtMultimedia.QRadioTunerControl.frequency": (),
- "PySide2.QtMultimedia.QRadioTunerControl.frequencyRange": ('PySide2.QtMultimedia.QRadioTuner.Band',),
- "PySide2.QtMultimedia.QRadioTunerControl.frequencyStep": ('PySide2.QtMultimedia.QRadioTuner.Band',),
- "PySide2.QtMultimedia.QRadioTunerControl.isAntennaConnected": (),
- "PySide2.QtMultimedia.QRadioTunerControl.isBandSupported": ('PySide2.QtMultimedia.QRadioTuner.Band',),
- "PySide2.QtMultimedia.QRadioTunerControl.isMuted": (),
- "PySide2.QtMultimedia.QRadioTunerControl.isSearching": (),
- "PySide2.QtMultimedia.QRadioTunerControl.isStereo": (),
- "PySide2.QtMultimedia.QRadioTunerControl.searchAllStations": ('PySide2.QtMultimedia.QRadioTuner.SearchMode',),
- "PySide2.QtMultimedia.QRadioTunerControl.searchBackward": (),
- "PySide2.QtMultimedia.QRadioTunerControl.searchForward": (),
- "PySide2.QtMultimedia.QRadioTunerControl.setBand": ('PySide2.QtMultimedia.QRadioTuner.Band',),
- "PySide2.QtMultimedia.QRadioTunerControl.setFrequency": ('int',),
- "PySide2.QtMultimedia.QRadioTunerControl.setMuted": ('bool',),
- "PySide2.QtMultimedia.QRadioTunerControl.setStereoMode": ('PySide2.QtMultimedia.QRadioTuner.StereoMode',),
- "PySide2.QtMultimedia.QRadioTunerControl.setVolume": ('int',),
- "PySide2.QtMultimedia.QRadioTunerControl.signalStrength": (),
- "PySide2.QtMultimedia.QRadioTunerControl.start": (),
- "PySide2.QtMultimedia.QRadioTunerControl.state": (),
- "PySide2.QtMultimedia.QRadioTunerControl.stereoMode": (),
- "PySide2.QtMultimedia.QRadioTunerControl.stop": (),
- "PySide2.QtMultimedia.QRadioTunerControl.volume": (),
-# class PySide2.QtMultimedia.QSound:
-# class PySide2.QtMultimedia.QSound.Loop:
- "PySide2.QtMultimedia.QSound.__init__": ('str', 'PySide2.QtCore.QObject'),
- "PySide2.QtMultimedia.QSound.fileName": (),
- "PySide2.QtMultimedia.QSound.isFinished": (),
- "PySide2.QtMultimedia.QSound.loops": (),
- "PySide2.QtMultimedia.QSound.loopsRemaining": (),
- "PySide2.QtMultimedia.QSound.play": [(), ('str',)],
- "PySide2.QtMultimedia.QSound.setLoops": ('int',),
- "PySide2.QtMultimedia.QSound.stop": (),
-# class PySide2.QtMultimedia.QSoundEffect:
-# class PySide2.QtMultimedia.QSoundEffect.Loop:
-# class PySide2.QtMultimedia.QSoundEffect.Status:
- "PySide2.QtMultimedia.QSoundEffect.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtMultimedia.QAudioDeviceInfo', 'PySide2.QtCore.QObject')],
- "PySide2.QtMultimedia.QSoundEffect.category": (),
- "PySide2.QtMultimedia.QSoundEffect.isLoaded": (),
- "PySide2.QtMultimedia.QSoundEffect.isMuted": (),
- "PySide2.QtMultimedia.QSoundEffect.isPlaying": (),
- "PySide2.QtMultimedia.QSoundEffect.loopCount": (),
- "PySide2.QtMultimedia.QSoundEffect.loopsRemaining": (),
- "PySide2.QtMultimedia.QSoundEffect.play": (),
- "PySide2.QtMultimedia.QSoundEffect.setCategory": ('str',),
- "PySide2.QtMultimedia.QSoundEffect.setLoopCount": ('int',),
- "PySide2.QtMultimedia.QSoundEffect.setMuted": ('bool',),
- "PySide2.QtMultimedia.QSoundEffect.setSource": ('PySide2.QtCore.QUrl',),
- "PySide2.QtMultimedia.QSoundEffect.setVolume": ('float',),
- "PySide2.QtMultimedia.QSoundEffect.source": (),
- "PySide2.QtMultimedia.QSoundEffect.status": (),
- "PySide2.QtMultimedia.QSoundEffect.stop": (),
- "PySide2.QtMultimedia.QSoundEffect.supportedMimeTypes": (),
- "PySide2.QtMultimedia.QSoundEffect.volume": (),
-# class PySide2.QtMultimedia.QVideoDeviceSelectorControl:
- "PySide2.QtMultimedia.QVideoDeviceSelectorControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QVideoDeviceSelectorControl.defaultDevice": (),
- "PySide2.QtMultimedia.QVideoDeviceSelectorControl.deviceCount": (),
- "PySide2.QtMultimedia.QVideoDeviceSelectorControl.deviceDescription": ('int',),
- "PySide2.QtMultimedia.QVideoDeviceSelectorControl.deviceName": ('int',),
- "PySide2.QtMultimedia.QVideoDeviceSelectorControl.selectedDevice": (),
- "PySide2.QtMultimedia.QVideoDeviceSelectorControl.setSelectedDevice": ('int',),
-# class PySide2.QtMultimedia.QVideoEncoderSettings:
- "PySide2.QtMultimedia.QVideoEncoderSettings.__init__": [(), ('PySide2.QtMultimedia.QVideoEncoderSettings',)],
- "PySide2.QtMultimedia.QVideoEncoderSettings.__copy__": (),
- "PySide2.QtMultimedia.QVideoEncoderSettings.bitRate": (),
- "PySide2.QtMultimedia.QVideoEncoderSettings.codec": (),
- "PySide2.QtMultimedia.QVideoEncoderSettings.encodingMode": (),
- "PySide2.QtMultimedia.QVideoEncoderSettings.encodingOption": ('str',),
- "PySide2.QtMultimedia.QVideoEncoderSettings.encodingOptions": (),
- "PySide2.QtMultimedia.QVideoEncoderSettings.frameRate": (),
- "PySide2.QtMultimedia.QVideoEncoderSettings.isNull": (),
- "PySide2.QtMultimedia.QVideoEncoderSettings.quality": (),
- "PySide2.QtMultimedia.QVideoEncoderSettings.resolution": (),
- "PySide2.QtMultimedia.QVideoEncoderSettings.setBitRate": ('int',),
- "PySide2.QtMultimedia.QVideoEncoderSettings.setCodec": ('str',),
- "PySide2.QtMultimedia.QVideoEncoderSettings.setEncodingMode": ('PySide2.QtMultimedia.QMultimedia.EncodingMode',),
- "PySide2.QtMultimedia.QVideoEncoderSettings.setEncodingOption": ('str', 'typing.Any'),
- "PySide2.QtMultimedia.QVideoEncoderSettings.setEncodingOptions": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtMultimedia.QVideoEncoderSettings.setFrameRate": ('float',),
- "PySide2.QtMultimedia.QVideoEncoderSettings.setQuality": ('PySide2.QtMultimedia.QMultimedia.EncodingQuality',),
- "PySide2.QtMultimedia.QVideoEncoderSettings.setResolution": [('PySide2.QtCore.QSize',), ('int', 'int')],
-# class PySide2.QtMultimedia.QVideoEncoderSettingsControl:
- "PySide2.QtMultimedia.QVideoEncoderSettingsControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QVideoEncoderSettingsControl.setVideoSettings": ('PySide2.QtMultimedia.QVideoEncoderSettings',),
- "PySide2.QtMultimedia.QVideoEncoderSettingsControl.supportedVideoCodecs": (),
- "PySide2.QtMultimedia.QVideoEncoderSettingsControl.videoCodecDescription": ('str',),
- "PySide2.QtMultimedia.QVideoEncoderSettingsControl.videoSettings": (),
-# class PySide2.QtMultimedia.QVideoFilterRunnable:
-# class PySide2.QtMultimedia.QVideoFilterRunnable.RunFlag:
-# class PySide2.QtMultimedia.QVideoFilterRunnable.RunFlags:
- "PySide2.QtMultimedia.QVideoFilterRunnable.__init__": (),
- "PySide2.QtMultimedia.QVideoFilterRunnable.run": ('PySide2.QtMultimedia.QVideoFrame', 'PySide2.QtMultimedia.QVideoSurfaceFormat', 'PySide2.QtMultimedia.QVideoFilterRunnable.RunFlags'),
-# class PySide2.QtMultimedia.QVideoFrame:
-# class PySide2.QtMultimedia.QVideoFrame.FieldType:
-# class PySide2.QtMultimedia.QVideoFrame.PixelFormat:
- "PySide2.QtMultimedia.QVideoFrame.__init__": [(), ('PySide2.QtGui.QImage',), ('PySide2.QtMultimedia.QAbstractVideoBuffer', 'PySide2.QtCore.QSize', 'PySide2.QtMultimedia.QVideoFrame.PixelFormat'), ('PySide2.QtMultimedia.QVideoFrame',), ('int', 'PySide2.QtCore.QSize', 'int', 'PySide2.QtMultimedia.QVideoFrame.PixelFormat')],
- "PySide2.QtMultimedia.QVideoFrame.__copy__": (),
- "PySide2.QtMultimedia.QVideoFrame.availableMetaData": (),
- "PySide2.QtMultimedia.QVideoFrame.bits": (),
- "PySide2.QtMultimedia.QVideoFrame.buffer": (),
- "PySide2.QtMultimedia.QVideoFrame.bytesPerLine": [(), ('int',)],
- "PySide2.QtMultimedia.QVideoFrame.endTime": (),
- "PySide2.QtMultimedia.QVideoFrame.fieldType": (),
- "PySide2.QtMultimedia.QVideoFrame.handle": (),
- "PySide2.QtMultimedia.QVideoFrame.handleType": (),
- "PySide2.QtMultimedia.QVideoFrame.height": (),
- "PySide2.QtMultimedia.QVideoFrame.imageFormatFromPixelFormat": ('PySide2.QtMultimedia.QVideoFrame.PixelFormat',),
- "PySide2.QtMultimedia.QVideoFrame.isMapped": (),
- "PySide2.QtMultimedia.QVideoFrame.isReadable": (),
- "PySide2.QtMultimedia.QVideoFrame.isValid": (),
- "PySide2.QtMultimedia.QVideoFrame.isWritable": (),
- "PySide2.QtMultimedia.QVideoFrame.map": ('PySide2.QtMultimedia.QAbstractVideoBuffer.MapMode',),
- "PySide2.QtMultimedia.QVideoFrame.mapMode": (),
- "PySide2.QtMultimedia.QVideoFrame.mappedBytes": (),
- "PySide2.QtMultimedia.QVideoFrame.metaData": ('str',),
- "PySide2.QtMultimedia.QVideoFrame.pixelFormat": (),
- "PySide2.QtMultimedia.QVideoFrame.pixelFormatFromImageFormat": ('PySide2.QtGui.QImage.Format',),
- "PySide2.QtMultimedia.QVideoFrame.planeCount": (),
- "PySide2.QtMultimedia.QVideoFrame.setEndTime": ('int',),
- "PySide2.QtMultimedia.QVideoFrame.setFieldType": ('PySide2.QtMultimedia.QVideoFrame.FieldType',),
- "PySide2.QtMultimedia.QVideoFrame.setMetaData": ('str', 'typing.Any'),
- "PySide2.QtMultimedia.QVideoFrame.setStartTime": ('int',),
- "PySide2.QtMultimedia.QVideoFrame.size": (),
- "PySide2.QtMultimedia.QVideoFrame.startTime": (),
- "PySide2.QtMultimedia.QVideoFrame.unmap": (),
- "PySide2.QtMultimedia.QVideoFrame.width": (),
-# class PySide2.QtMultimedia.QVideoProbe:
- "PySide2.QtMultimedia.QVideoProbe.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QVideoProbe.isActive": (),
- "PySide2.QtMultimedia.QVideoProbe.setSource": [('PySide2.QtMultimedia.QMediaObject',), ('PySide2.QtMultimedia.QMediaRecorder',)],
-# class PySide2.QtMultimedia.QVideoRendererControl:
- "PySide2.QtMultimedia.QVideoRendererControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QVideoRendererControl.setSurface": ('PySide2.QtMultimedia.QAbstractVideoSurface',),
- "PySide2.QtMultimedia.QVideoRendererControl.surface": (),
-# class PySide2.QtMultimedia.QVideoSurfaceFormat:
-# class PySide2.QtMultimedia.QVideoSurfaceFormat.Direction:
-# class PySide2.QtMultimedia.QVideoSurfaceFormat.YCbCrColorSpace:
- "PySide2.QtMultimedia.QVideoSurfaceFormat.__init__": [(), ('PySide2.QtCore.QSize', 'PySide2.QtMultimedia.QVideoFrame.PixelFormat', 'PySide2.QtMultimedia.QAbstractVideoBuffer.HandleType'), ('PySide2.QtMultimedia.QVideoSurfaceFormat',)],
- "PySide2.QtMultimedia.QVideoSurfaceFormat.__copy__": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.frameHeight": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.frameRate": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.frameSize": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.frameWidth": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.handleType": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.isMirrored": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.isValid": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.pixelAspectRatio": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.pixelFormat": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.property": ('str',),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.propertyNames": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.scanLineDirection": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.setFrameRate": ('float',),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.setFrameSize": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtMultimedia.QVideoSurfaceFormat.setMirrored": ('bool',),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.setPixelAspectRatio": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtMultimedia.QVideoSurfaceFormat.setProperty": ('str', 'typing.Any'),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.setScanLineDirection": ('PySide2.QtMultimedia.QVideoSurfaceFormat.Direction',),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.setViewport": ('PySide2.QtCore.QRect',),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.setYCbCrColorSpace": ('PySide2.QtMultimedia.QVideoSurfaceFormat.YCbCrColorSpace',),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.sizeHint": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.viewport": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.yCbCrColorSpace": (),
-# class PySide2.QtMultimedia.QVideoWindowControl:
- "PySide2.QtMultimedia.QVideoWindowControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QVideoWindowControl.aspectRatioMode": (),
- "PySide2.QtMultimedia.QVideoWindowControl.brightness": (),
- "PySide2.QtMultimedia.QVideoWindowControl.contrast": (),
- "PySide2.QtMultimedia.QVideoWindowControl.displayRect": (),
- "PySide2.QtMultimedia.QVideoWindowControl.hue": (),
- "PySide2.QtMultimedia.QVideoWindowControl.isFullScreen": (),
- "PySide2.QtMultimedia.QVideoWindowControl.nativeSize": (),
- "PySide2.QtMultimedia.QVideoWindowControl.repaint": (),
- "PySide2.QtMultimedia.QVideoWindowControl.saturation": (),
- "PySide2.QtMultimedia.QVideoWindowControl.setAspectRatioMode": ('PySide2.QtCore.Qt.AspectRatioMode',),
- "PySide2.QtMultimedia.QVideoWindowControl.setBrightness": ('int',),
- "PySide2.QtMultimedia.QVideoWindowControl.setContrast": ('int',),
- "PySide2.QtMultimedia.QVideoWindowControl.setDisplayRect": ('PySide2.QtCore.QRect',),
- "PySide2.QtMultimedia.QVideoWindowControl.setFullScreen": ('bool',),
- "PySide2.QtMultimedia.QVideoWindowControl.setHue": ('int',),
- "PySide2.QtMultimedia.QVideoWindowControl.setSaturation": ('int',),
- "PySide2.QtMultimedia.QVideoWindowControl.setWinId": ('int',),
- "PySide2.QtMultimedia.QVideoWindowControl.winId": (),
- }) if "PySide2.QtMultimedia" in sys.modules else None
-# Module PySide2.QtMultimediaWidgets
-sig_dict.update({
-# class PySide2.QtMultimediaWidgets.QCameraViewfinder:
- "PySide2.QtMultimediaWidgets.QCameraViewfinder.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtMultimediaWidgets.QCameraViewfinder.mediaObject": (),
- "PySide2.QtMultimediaWidgets.QCameraViewfinder.setMediaObject": ('PySide2.QtMultimedia.QMediaObject',),
-# class PySide2.QtMultimediaWidgets.QGraphicsVideoItem:
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.__init__": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.aspectRatioMode": (),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.boundingRect": (),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.itemChange": ('PySide2.QtWidgets.QGraphicsItem.GraphicsItemChange', 'typing.Any'),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.mediaObject": (),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.nativeSize": (),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.offset": (),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.setAspectRatioMode": ('PySide2.QtCore.Qt.AspectRatioMode',),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.setMediaObject": ('PySide2.QtMultimedia.QMediaObject',),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.setOffset": ('PySide2.QtCore.QPointF',),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.setSize": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.size": (),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.timerEvent": ('PySide2.QtCore.QTimerEvent',),
-# class PySide2.QtMultimediaWidgets.QVideoWidget:
- "PySide2.QtMultimediaWidgets.QVideoWidget.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.aspectRatioMode": (),
- "PySide2.QtMultimediaWidgets.QVideoWidget.brightness": (),
- "PySide2.QtMultimediaWidgets.QVideoWidget.contrast": (),
- "PySide2.QtMultimediaWidgets.QVideoWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.hue": (),
- "PySide2.QtMultimediaWidgets.QVideoWidget.mediaObject": (),
- "PySide2.QtMultimediaWidgets.QVideoWidget.moveEvent": ('PySide2.QtGui.QMoveEvent',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.saturation": (),
- "PySide2.QtMultimediaWidgets.QVideoWidget.setAspectRatioMode": ('PySide2.QtCore.Qt.AspectRatioMode',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.setBrightness": ('int',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.setContrast": ('int',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.setFullScreen": ('bool',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.setHue": ('int',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.setMediaObject": ('PySide2.QtMultimedia.QMediaObject',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.setSaturation": ('int',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.sizeHint": (),
-# class PySide2.QtMultimediaWidgets.QVideoWidgetControl:
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.aspectRatioMode": (),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.brightness": (),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.contrast": (),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.hue": (),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.isFullScreen": (),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.saturation": (),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.setAspectRatioMode": ('PySide2.QtCore.Qt.AspectRatioMode',),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.setBrightness": ('int',),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.setContrast": ('int',),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.setFullScreen": ('bool',),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.setHue": ('int',),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.setSaturation": ('int',),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.videoWidget": (),
- }) if "PySide2.QtMultimediaWidgets" in sys.modules else None
-# Module PySide2.QtOpenGL
-sig_dict.update({
-# class PySide2.QtOpenGL.QGL:
-# class PySide2.QtOpenGL.QGL.FormatOption:
-# class PySide2.QtOpenGL.QGL.FormatOptions:
-# class PySide2.QtOpenGL.QGLBuffer:
-# class PySide2.QtOpenGL.QGLBuffer.Access:
-# class PySide2.QtOpenGL.QGLBuffer.Type:
-# class PySide2.QtOpenGL.QGLBuffer.UsagePattern:
- "PySide2.QtOpenGL.QGLBuffer.__init__": [(), ('PySide2.QtOpenGL.QGLBuffer',), ('PySide2.QtOpenGL.QGLBuffer.Type',)],
- "PySide2.QtOpenGL.QGLBuffer.allocate": [('int',), ('int', 'int')],
- "PySide2.QtOpenGL.QGLBuffer.bind": (),
- "PySide2.QtOpenGL.QGLBuffer.bufferId": (),
- "PySide2.QtOpenGL.QGLBuffer.create": (),
- "PySide2.QtOpenGL.QGLBuffer.destroy": (),
- "PySide2.QtOpenGL.QGLBuffer.isCreated": (),
- "PySide2.QtOpenGL.QGLBuffer.map": ('PySide2.QtOpenGL.QGLBuffer.Access',),
- "PySide2.QtOpenGL.QGLBuffer.read": ('int', 'int', 'int'),
- "PySide2.QtOpenGL.QGLBuffer.release": [(), ('PySide2.QtOpenGL.QGLBuffer.Type',)],
- "PySide2.QtOpenGL.QGLBuffer.setUsagePattern": ('PySide2.QtOpenGL.QGLBuffer.UsagePattern',),
- "PySide2.QtOpenGL.QGLBuffer.size": (),
- "PySide2.QtOpenGL.QGLBuffer.type": (),
- "PySide2.QtOpenGL.QGLBuffer.unmap": (),
- "PySide2.QtOpenGL.QGLBuffer.usagePattern": (),
- "PySide2.QtOpenGL.QGLBuffer.write": ('int', 'int', 'int'),
-# class PySide2.QtOpenGL.QGLColormap:
- "PySide2.QtOpenGL.QGLColormap.__init__": [(), ('PySide2.QtOpenGL.QGLColormap',)],
- "PySide2.QtOpenGL.QGLColormap.__copy__": (),
- "PySide2.QtOpenGL.QGLColormap.entryColor": ('int',),
- "PySide2.QtOpenGL.QGLColormap.entryRgb": ('int',),
- "PySide2.QtOpenGL.QGLColormap.find": ('int',),
- "PySide2.QtOpenGL.QGLColormap.findNearest": ('int',),
- "PySide2.QtOpenGL.QGLColormap.handle": (),
- "PySide2.QtOpenGL.QGLColormap.isEmpty": (),
- "PySide2.QtOpenGL.QGLColormap.setEntry": [('int', 'PySide2.QtGui.QColor'), ('int', 'int')],
- "PySide2.QtOpenGL.QGLColormap.setHandle": ('int',),
- "PySide2.QtOpenGL.QGLColormap.size": (),
-# class PySide2.QtOpenGL.QGLContext:
-# class PySide2.QtOpenGL.QGLContext.BindOption:
-# class PySide2.QtOpenGL.QGLContext.BindOptions:
- "PySide2.QtOpenGL.QGLContext.__init__": ('PySide2.QtOpenGL.QGLFormat',),
- "PySide2.QtOpenGL.QGLContext.areSharing": ('PySide2.QtOpenGL.QGLContext', 'PySide2.QtOpenGL.QGLContext'),
- "PySide2.QtOpenGL.QGLContext.bindTexture": [('PySide2.QtGui.QImage', 'int', 'int'), ('PySide2.QtGui.QImage', 'int', 'int', 'PySide2.QtOpenGL.QGLContext.BindOptions'), ('PySide2.QtGui.QPixmap', 'int', 'int'), ('PySide2.QtGui.QPixmap', 'int', 'int', 'PySide2.QtOpenGL.QGLContext.BindOptions'), ('str',)],
- "PySide2.QtOpenGL.QGLContext.chooseContext": ('PySide2.QtOpenGL.QGLContext',),
- "PySide2.QtOpenGL.QGLContext.colorIndex": ('PySide2.QtGui.QColor',),
- "PySide2.QtOpenGL.QGLContext.contextHandle": (),
- "PySide2.QtOpenGL.QGLContext.create": ('PySide2.QtOpenGL.QGLContext',),
- "PySide2.QtOpenGL.QGLContext.currentContext": (),
- "PySide2.QtOpenGL.QGLContext.deleteTexture": ('int',),
- "PySide2.QtOpenGL.QGLContext.device": (),
- "PySide2.QtOpenGL.QGLContext.deviceIsPixmap": (),
- "PySide2.QtOpenGL.QGLContext.doneCurrent": (),
- "PySide2.QtOpenGL.QGLContext.drawTexture": [('PySide2.QtCore.QPointF', 'int', 'int'), ('PySide2.QtCore.QRectF', 'int', 'int')],
- "PySide2.QtOpenGL.QGLContext.format": (),
- "PySide2.QtOpenGL.QGLContext.fromOpenGLContext": ('PySide2.QtGui.QOpenGLContext',),
- "PySide2.QtOpenGL.QGLContext.initialized": (),
- "PySide2.QtOpenGL.QGLContext.isSharing": (),
- "PySide2.QtOpenGL.QGLContext.isValid": (),
- "PySide2.QtOpenGL.QGLContext.makeCurrent": (),
- "PySide2.QtOpenGL.QGLContext.moveToThread": ('PySide2.QtCore.QThread',),
- "PySide2.QtOpenGL.QGLContext.overlayTransparentColor": (),
- "PySide2.QtOpenGL.QGLContext.requestedFormat": (),
- "PySide2.QtOpenGL.QGLContext.reset": (),
- "PySide2.QtOpenGL.QGLContext.setDevice": ('PySide2.QtGui.QPaintDevice',),
- "PySide2.QtOpenGL.QGLContext.setFormat": ('PySide2.QtOpenGL.QGLFormat',),
- "PySide2.QtOpenGL.QGLContext.setInitialized": ('bool',),
- "PySide2.QtOpenGL.QGLContext.setTextureCacheLimit": ('int',),
- "PySide2.QtOpenGL.QGLContext.setValid": ('bool',),
- "PySide2.QtOpenGL.QGLContext.setWindowCreated": ('bool',),
- "PySide2.QtOpenGL.QGLContext.swapBuffers": (),
- "PySide2.QtOpenGL.QGLContext.textureCacheLimit": (),
- "PySide2.QtOpenGL.QGLContext.windowCreated": (),
-# class PySide2.QtOpenGL.QGLFormat:
-# class PySide2.QtOpenGL.QGLFormat.OpenGLContextProfile:
-# class PySide2.QtOpenGL.QGLFormat.OpenGLVersionFlag:
-# class PySide2.QtOpenGL.QGLFormat.OpenGLVersionFlags:
- "PySide2.QtOpenGL.QGLFormat.__init__": [(), ('PySide2.QtOpenGL.QGL.FormatOptions', 'int'), ('PySide2.QtOpenGL.QGLFormat',)],
- "PySide2.QtOpenGL.QGLFormat.__copy__": (),
- "PySide2.QtOpenGL.QGLFormat.accum": (),
- "PySide2.QtOpenGL.QGLFormat.accumBufferSize": (),
- "PySide2.QtOpenGL.QGLFormat.alpha": (),
- "PySide2.QtOpenGL.QGLFormat.alphaBufferSize": (),
- "PySide2.QtOpenGL.QGLFormat.blueBufferSize": (),
- "PySide2.QtOpenGL.QGLFormat.defaultFormat": (),
- "PySide2.QtOpenGL.QGLFormat.defaultOverlayFormat": (),
- "PySide2.QtOpenGL.QGLFormat.depth": (),
- "PySide2.QtOpenGL.QGLFormat.depthBufferSize": (),
- "PySide2.QtOpenGL.QGLFormat.directRendering": (),
- "PySide2.QtOpenGL.QGLFormat.doubleBuffer": (),
- "PySide2.QtOpenGL.QGLFormat.fromSurfaceFormat": ('PySide2.QtGui.QSurfaceFormat',),
- "PySide2.QtOpenGL.QGLFormat.greenBufferSize": (),
- "PySide2.QtOpenGL.QGLFormat.hasOpenGL": (),
- "PySide2.QtOpenGL.QGLFormat.hasOpenGLOverlays": (),
- "PySide2.QtOpenGL.QGLFormat.hasOverlay": (),
- "PySide2.QtOpenGL.QGLFormat.majorVersion": (),
- "PySide2.QtOpenGL.QGLFormat.minorVersion": (),
- "PySide2.QtOpenGL.QGLFormat.openGLVersionFlags": (),
- "PySide2.QtOpenGL.QGLFormat.plane": (),
- "PySide2.QtOpenGL.QGLFormat.profile": (),
- "PySide2.QtOpenGL.QGLFormat.redBufferSize": (),
- "PySide2.QtOpenGL.QGLFormat.rgba": (),
- "PySide2.QtOpenGL.QGLFormat.sampleBuffers": (),
- "PySide2.QtOpenGL.QGLFormat.samples": (),
- "PySide2.QtOpenGL.QGLFormat.setAccum": ('bool',),
- "PySide2.QtOpenGL.QGLFormat.setAccumBufferSize": ('int',),
- "PySide2.QtOpenGL.QGLFormat.setAlpha": ('bool',),
- "PySide2.QtOpenGL.QGLFormat.setAlphaBufferSize": ('int',),
- "PySide2.QtOpenGL.QGLFormat.setBlueBufferSize": ('int',),
- "PySide2.QtOpenGL.QGLFormat.setDefaultFormat": ('PySide2.QtOpenGL.QGLFormat',),
- "PySide2.QtOpenGL.QGLFormat.setDefaultOverlayFormat": ('PySide2.QtOpenGL.QGLFormat',),
- "PySide2.QtOpenGL.QGLFormat.setDepth": ('bool',),
- "PySide2.QtOpenGL.QGLFormat.setDepthBufferSize": ('int',),
- "PySide2.QtOpenGL.QGLFormat.setDirectRendering": ('bool',),
- "PySide2.QtOpenGL.QGLFormat.setDoubleBuffer": ('bool',),
- "PySide2.QtOpenGL.QGLFormat.setGreenBufferSize": ('int',),
- "PySide2.QtOpenGL.QGLFormat.setOption": ('PySide2.QtOpenGL.QGL.FormatOptions',),
- "PySide2.QtOpenGL.QGLFormat.setOverlay": ('bool',),
- "PySide2.QtOpenGL.QGLFormat.setPlane": ('int',),
- "PySide2.QtOpenGL.QGLFormat.setProfile": ('PySide2.QtOpenGL.QGLFormat.OpenGLContextProfile',),
- "PySide2.QtOpenGL.QGLFormat.setRedBufferSize": ('int',),
- "PySide2.QtOpenGL.QGLFormat.setRgba": ('bool',),
- "PySide2.QtOpenGL.QGLFormat.setSampleBuffers": ('bool',),
- "PySide2.QtOpenGL.QGLFormat.setSamples": ('int',),
- "PySide2.QtOpenGL.QGLFormat.setStencil": ('bool',),
- "PySide2.QtOpenGL.QGLFormat.setStencilBufferSize": ('int',),
- "PySide2.QtOpenGL.QGLFormat.setStereo": ('bool',),
- "PySide2.QtOpenGL.QGLFormat.setSwapInterval": ('int',),
- "PySide2.QtOpenGL.QGLFormat.setVersion": ('int', 'int'),
- "PySide2.QtOpenGL.QGLFormat.stencil": (),
- "PySide2.QtOpenGL.QGLFormat.stencilBufferSize": (),
- "PySide2.QtOpenGL.QGLFormat.stereo": (),
- "PySide2.QtOpenGL.QGLFormat.swapInterval": (),
- "PySide2.QtOpenGL.QGLFormat.testOption": ('PySide2.QtOpenGL.QGL.FormatOptions',),
- "PySide2.QtOpenGL.QGLFormat.toSurfaceFormat": ('PySide2.QtOpenGL.QGLFormat',),
-# class PySide2.QtOpenGL.QGLFramebufferObject:
-# class PySide2.QtOpenGL.QGLFramebufferObject.Attachment:
- "PySide2.QtOpenGL.QGLFramebufferObject.__init__": [('PySide2.QtCore.QSize', 'PySide2.QtOpenGL.QGLFramebufferObject.Attachment', 'int', 'int'), ('PySide2.QtCore.QSize', 'PySide2.QtOpenGL.QGLFramebufferObjectFormat'), ('PySide2.QtCore.QSize', 'int'), ('int', 'int', 'PySide2.QtOpenGL.QGLFramebufferObject.Attachment', 'int', 'int'), ('int', 'int', 'PySide2.QtOpenGL.QGLFramebufferObjectFormat'), ('int', 'int', 'int')],
- "PySide2.QtOpenGL.QGLFramebufferObject.attachment": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.bind": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.bindDefault": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.blitFramebuffer": ('PySide2.QtOpenGL.QGLFramebufferObject', 'PySide2.QtCore.QRect', 'PySide2.QtOpenGL.QGLFramebufferObject', 'PySide2.QtCore.QRect', 'int', 'int'),
- "PySide2.QtOpenGL.QGLFramebufferObject.devType": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.drawTexture": [('PySide2.QtCore.QPointF', 'int', 'int'), ('PySide2.QtCore.QRectF', 'int', 'int')],
- "PySide2.QtOpenGL.QGLFramebufferObject.format": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.handle": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.hasOpenGLFramebufferBlit": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.hasOpenGLFramebufferObjects": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.isBound": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.isValid": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtOpenGL.QGLFramebufferObject.paintEngine": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.release": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.size": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.texture": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.toImage": (),
-# class PySide2.QtOpenGL.QGLFramebufferObjectFormat:
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.__init__": [(), ('PySide2.QtOpenGL.QGLFramebufferObjectFormat',)],
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.__copy__": (),
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.attachment": (),
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.internalTextureFormat": (),
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.mipmap": (),
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.samples": (),
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.setAttachment": ('PySide2.QtOpenGL.QGLFramebufferObject.Attachment',),
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.setInternalTextureFormat": ('int',),
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.setMipmap": ('bool',),
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.setSamples": ('int',),
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.setTextureTarget": ('int',),
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.textureTarget": (),
-# class PySide2.QtOpenGL.QGLPixelBuffer:
- "PySide2.QtOpenGL.QGLPixelBuffer.__init__": [('PySide2.QtCore.QSize', 'PySide2.QtOpenGL.QGLFormat', 'PySide2.QtOpenGL.QGLWidget'), ('int', 'int', 'PySide2.QtOpenGL.QGLFormat', 'PySide2.QtOpenGL.QGLWidget')],
- "PySide2.QtOpenGL.QGLPixelBuffer.bindTexture": [('PySide2.QtGui.QImage', 'int'), ('PySide2.QtGui.QPixmap', 'int'), ('str',)],
- "PySide2.QtOpenGL.QGLPixelBuffer.bindToDynamicTexture": ('int',),
- "PySide2.QtOpenGL.QGLPixelBuffer.context": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.deleteTexture": ('int',),
- "PySide2.QtOpenGL.QGLPixelBuffer.devType": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.doneCurrent": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.drawTexture": [('PySide2.QtCore.QPointF', 'int', 'int'), ('PySide2.QtCore.QRectF', 'int', 'int')],
- "PySide2.QtOpenGL.QGLPixelBuffer.format": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.generateDynamicTexture": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.handle": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.hasOpenGLPbuffers": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.isValid": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.makeCurrent": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtOpenGL.QGLPixelBuffer.paintEngine": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.releaseFromDynamicTexture": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.size": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.toImage": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.updateDynamicTexture": ('int',),
-# class PySide2.QtOpenGL.QGLShader:
-# class PySide2.QtOpenGL.QGLShader.ShaderType:
-# class PySide2.QtOpenGL.QGLShader.ShaderTypeBit:
- "PySide2.QtOpenGL.QGLShader.__init__": [('PySide2.QtOpenGL.QGLShader.ShaderType', 'PySide2.QtCore.QObject'), ('PySide2.QtOpenGL.QGLShader.ShaderType', 'PySide2.QtOpenGL.QGLContext', 'PySide2.QtCore.QObject')],
- "PySide2.QtOpenGL.QGLShader.compileSourceCode": [('PySide2.QtCore.QByteArray',), ('str',)],
- "PySide2.QtOpenGL.QGLShader.compileSourceFile": ('str',),
- "PySide2.QtOpenGL.QGLShader.hasOpenGLShaders": ('PySide2.QtOpenGL.QGLShader.ShaderType', 'PySide2.QtOpenGL.QGLContext'),
- "PySide2.QtOpenGL.QGLShader.isCompiled": (),
- "PySide2.QtOpenGL.QGLShader.log": (),
- "PySide2.QtOpenGL.QGLShader.shaderId": (),
- "PySide2.QtOpenGL.QGLShader.shaderType": (),
- "PySide2.QtOpenGL.QGLShader.sourceCode": (),
-# class PySide2.QtOpenGL.QGLShaderProgram:
- "PySide2.QtOpenGL.QGLShaderProgram.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtOpenGL.QGLContext', 'PySide2.QtCore.QObject')],
- "PySide2.QtOpenGL.QGLShaderProgram.addShader": ('PySide2.QtOpenGL.QGLShader',),
- "PySide2.QtOpenGL.QGLShaderProgram.addShaderFromSourceCode": [('PySide2.QtOpenGL.QGLShader.ShaderType', 'PySide2.QtCore.QByteArray'), ('PySide2.QtOpenGL.QGLShader.ShaderType', 'str')],
- "PySide2.QtOpenGL.QGLShaderProgram.addShaderFromSourceFile": ('PySide2.QtOpenGL.QGLShader.ShaderType', 'str'),
- "PySide2.QtOpenGL.QGLShaderProgram.attributeLocation": [('PySide2.QtCore.QByteArray',), ('str',)],
- "PySide2.QtOpenGL.QGLShaderProgram.bind": (),
- "PySide2.QtOpenGL.QGLShaderProgram.bindAttributeLocation": [('PySide2.QtCore.QByteArray', 'int'), ('str', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.disableAttributeArray": [('int',), ('str',)],
- "PySide2.QtOpenGL.QGLShaderProgram.enableAttributeArray": [('int',), ('str',)],
- "PySide2.QtOpenGL.QGLShaderProgram.geometryInputType": (),
- "PySide2.QtOpenGL.QGLShaderProgram.geometryOutputType": (),
- "PySide2.QtOpenGL.QGLShaderProgram.geometryOutputVertexCount": (),
- "PySide2.QtOpenGL.QGLShaderProgram.hasOpenGLShaderPrograms": ('PySide2.QtOpenGL.QGLContext',),
- "PySide2.QtOpenGL.QGLShaderProgram.isLinked": (),
- "PySide2.QtOpenGL.QGLShaderProgram.link": (),
- "PySide2.QtOpenGL.QGLShaderProgram.log": (),
- "PySide2.QtOpenGL.QGLShaderProgram.maxGeometryOutputVertices": (),
- "PySide2.QtOpenGL.QGLShaderProgram.programId": (),
- "PySide2.QtOpenGL.QGLShaderProgram.release": (),
- "PySide2.QtOpenGL.QGLShaderProgram.removeAllShaders": (),
- "PySide2.QtOpenGL.QGLShaderProgram.removeShader": ('PySide2.QtOpenGL.QGLShader',),
- "PySide2.QtOpenGL.QGLShaderProgram.setAttributeArray2D": [('int', 'PySide2.QtGui.QVector2D', 'int'), ('str', 'PySide2.QtGui.QVector2D', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setAttributeArray3D": [('int', 'PySide2.QtGui.QVector3D', 'int'), ('str', 'PySide2.QtGui.QVector3D', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setAttributeArray4D": [('int', 'PySide2.QtGui.QVector4D', 'int'), ('str', 'PySide2.QtGui.QVector4D', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setAttributeBuffer": [('int', 'int', 'int', 'int', 'int'), ('str', 'int', 'int', 'int', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setAttributeValue": [('int', 'PySide2.QtGui.QColor'), ('int', 'PySide2.QtGui.QVector2D'), ('int', 'PySide2.QtGui.QVector3D'), ('int', 'PySide2.QtGui.QVector4D'), ('int', 'float'), ('int', 'float', 'float'), ('int', 'float', 'float', 'float'), ('int', 'float', 'float', 'float', 'float'), ('str', 'PySide2.QtGui.QColor'), ('str', 'PySide2.QtGui.QVector2D'), ('str', 'PySide2.QtGui.QVector3D'), ('str', 'PySide2.QtGui.QVector4D'), ('str', 'float'), ('str', 'float', 'float'), ('str', 'float', 'float', 'float'), ('str', 'float', 'float', 'float', 'float')],
- "PySide2.QtOpenGL.QGLShaderProgram.setGeometryInputType": ('int',),
- "PySide2.QtOpenGL.QGLShaderProgram.setGeometryOutputType": ('int',),
- "PySide2.QtOpenGL.QGLShaderProgram.setGeometryOutputVertexCount": ('int',),
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValue": [('int', 'PySide2.QtCore.QPoint'), ('int', 'PySide2.QtCore.QPointF'), ('int', 'PySide2.QtCore.QSize'), ('int', 'PySide2.QtCore.QSizeF'), ('int', 'PySide2.QtGui.QColor'), ('int', 'PySide2.QtGui.QMatrix2x2'), ('int', 'PySide2.QtGui.QMatrix2x3'), ('int', 'PySide2.QtGui.QMatrix2x4'), ('int', 'PySide2.QtGui.QMatrix3x2'), ('int', 'PySide2.QtGui.QMatrix3x3'), ('int', 'PySide2.QtGui.QMatrix3x4'), ('int', 'PySide2.QtGui.QMatrix4x2'), ('int', 'PySide2.QtGui.QMatrix4x3'), ('int', 'PySide2.QtGui.QMatrix4x4'), ('int', 'PySide2.QtGui.QTransform'), ('int', 'PySide2.QtGui.QVector2D'), ('int', 'PySide2.QtGui.QVector3D'), ('int', 'PySide2.QtGui.QVector4D'), ('int', 'float'), ('int', 'float', 'float'), ('int', 'float', 'float', 'float'), ('int', 'float', 'float', 'float', 'float'), ('int', 'int'), ('str', 'PySide2.QtCore.QPoint'), ('str', 'PySide2.QtCore.QPointF'), ('str', 'PySide2.QtCore.QSize'), ('str', 'PySide2.QtCore.QSizeF'), ('str', 'PySide2.QtGui.QColor'), ('str', 'PySide2.QtGui.QMatrix2x2'), ('str', 'PySide2.QtGui.QMatrix2x3'), ('str', 'PySide2.QtGui.QMatrix2x4'), ('str', 'PySide2.QtGui.QMatrix3x2'), ('str', 'PySide2.QtGui.QMatrix3x3'), ('str', 'PySide2.QtGui.QMatrix3x4'), ('str', 'PySide2.QtGui.QMatrix4x2'), ('str', 'PySide2.QtGui.QMatrix4x3'), ('str', 'PySide2.QtGui.QMatrix4x4'), ('str', 'PySide2.QtGui.QTransform'), ('str', 'PySide2.QtGui.QVector2D'), ('str', 'PySide2.QtGui.QVector3D'), ('str', 'PySide2.QtGui.QVector4D'), ('str', 'float'), ('str', 'float', 'float'), ('str', 'float', 'float', 'float'), ('str', 'float', 'float', 'float', 'float'), ('str', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray2D": [('int', 'PySide2.QtGui.QVector2D', 'int'), ('str', 'PySide2.QtGui.QVector2D', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray2x2": [('int', 'PySide2.QtGui.QMatrix2x2', 'int'), ('str', 'PySide2.QtGui.QMatrix2x2', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray2x3": [('int', 'PySide2.QtGui.QMatrix2x3', 'int'), ('str', 'PySide2.QtGui.QMatrix2x3', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray2x4": [('int', 'PySide2.QtGui.QMatrix2x4', 'int'), ('str', 'PySide2.QtGui.QMatrix2x4', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray3D": [('int', 'PySide2.QtGui.QVector3D', 'int'), ('str', 'PySide2.QtGui.QVector3D', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray3x2": [('int', 'PySide2.QtGui.QMatrix3x2', 'int'), ('str', 'PySide2.QtGui.QMatrix3x2', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray3x3": [('int', 'PySide2.QtGui.QMatrix3x3', 'int'), ('str', 'PySide2.QtGui.QMatrix3x3', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray3x4": [('int', 'PySide2.QtGui.QMatrix3x4', 'int'), ('str', 'PySide2.QtGui.QMatrix3x4', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray4D": [('int', 'PySide2.QtGui.QVector4D', 'int'), ('str', 'PySide2.QtGui.QVector4D', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray4x2": [('int', 'PySide2.QtGui.QMatrix4x2', 'int'), ('str', 'PySide2.QtGui.QMatrix4x2', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray4x3": [('int', 'PySide2.QtGui.QMatrix4x3', 'int'), ('str', 'PySide2.QtGui.QMatrix4x3', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray4x4": [('int', 'PySide2.QtGui.QMatrix4x4', 'int'), ('str', 'PySide2.QtGui.QMatrix4x4', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArrayInt": [('int', 'typing.Sequence[int]', 'int'), ('str', 'typing.Sequence[int]', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArrayUint": [('int', 'typing.Sequence[int]', 'int'), ('str', 'typing.Sequence[int]', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.shaders": (),
- "PySide2.QtOpenGL.QGLShaderProgram.uniformLocation": [('PySide2.QtCore.QByteArray',), ('str',)],
-# class PySide2.QtOpenGL.QGLWidget:
- "PySide2.QtOpenGL.QGLWidget.__init__": [('PySide2.QtOpenGL.QGLContext', 'PySide2.QtWidgets.QWidget', 'PySide2.QtOpenGL.QGLWidget', 'PySide2.QtCore.Qt.WindowFlags'), ('PySide2.QtOpenGL.QGLFormat', 'PySide2.QtWidgets.QWidget', 'PySide2.QtOpenGL.QGLWidget', 'PySide2.QtCore.Qt.WindowFlags'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtOpenGL.QGLWidget', 'PySide2.QtCore.Qt.WindowFlags')],
- "PySide2.QtOpenGL.QGLWidget.autoBufferSwap": (),
- "PySide2.QtOpenGL.QGLWidget.bindTexture": [('PySide2.QtGui.QImage', 'int', 'int'), ('PySide2.QtGui.QImage', 'int', 'int', 'PySide2.QtOpenGL.QGLContext.BindOptions'), ('PySide2.QtGui.QPixmap', 'int', 'int'), ('PySide2.QtGui.QPixmap', 'int', 'int', 'PySide2.QtOpenGL.QGLContext.BindOptions'), ('str',)],
- "PySide2.QtOpenGL.QGLWidget.colormap": (),
- "PySide2.QtOpenGL.QGLWidget.context": (),
- "PySide2.QtOpenGL.QGLWidget.convertToGLFormat": ('PySide2.QtGui.QImage',),
- "PySide2.QtOpenGL.QGLWidget.deleteTexture": ('int',),
- "PySide2.QtOpenGL.QGLWidget.doneCurrent": (),
- "PySide2.QtOpenGL.QGLWidget.doubleBuffer": (),
- "PySide2.QtOpenGL.QGLWidget.drawTexture": [('PySide2.QtCore.QPointF', 'int', 'int'), ('PySide2.QtCore.QRectF', 'int', 'int')],
- "PySide2.QtOpenGL.QGLWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtOpenGL.QGLWidget.format": (),
- "PySide2.QtOpenGL.QGLWidget.glDraw": (),
- "PySide2.QtOpenGL.QGLWidget.glInit": (),
- "PySide2.QtOpenGL.QGLWidget.grabFrameBuffer": ('bool',),
- "PySide2.QtOpenGL.QGLWidget.initializeGL": (),
- "PySide2.QtOpenGL.QGLWidget.initializeOverlayGL": (),
- "PySide2.QtOpenGL.QGLWidget.isSharing": (),
- "PySide2.QtOpenGL.QGLWidget.isValid": (),
- "PySide2.QtOpenGL.QGLWidget.makeCurrent": (),
- "PySide2.QtOpenGL.QGLWidget.makeOverlayCurrent": (),
- "PySide2.QtOpenGL.QGLWidget.overlayContext": (),
- "PySide2.QtOpenGL.QGLWidget.paintEngine": (),
- "PySide2.QtOpenGL.QGLWidget.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtOpenGL.QGLWidget.paintGL": (),
- "PySide2.QtOpenGL.QGLWidget.paintOverlayGL": (),
- "PySide2.QtOpenGL.QGLWidget.qglClearColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtOpenGL.QGLWidget.qglColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtOpenGL.QGLWidget.renderPixmap": ('int', 'int', 'bool'),
- "PySide2.QtOpenGL.QGLWidget.renderText": [('float', 'float', 'float', 'str', 'PySide2.QtGui.QFont'), ('int', 'int', 'str', 'PySide2.QtGui.QFont')],
- "PySide2.QtOpenGL.QGLWidget.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtOpenGL.QGLWidget.resizeGL": ('int', 'int'),
- "PySide2.QtOpenGL.QGLWidget.resizeOverlayGL": ('int', 'int'),
- "PySide2.QtOpenGL.QGLWidget.setAutoBufferSwap": ('bool',),
- "PySide2.QtOpenGL.QGLWidget.setColormap": ('PySide2.QtOpenGL.QGLColormap',),
- "PySide2.QtOpenGL.QGLWidget.swapBuffers": (),
- "PySide2.QtOpenGL.QGLWidget.updateGL": (),
- "PySide2.QtOpenGL.QGLWidget.updateOverlayGL": (),
- }) if "PySide2.QtOpenGL" in sys.modules else None
-# Module PySide2.QtOpenGLFunctions
-sig_dict.update({
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFogCoorddv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFogCoordfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFogCoorddv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFogCoordfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFogCoorddv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFogCoordfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4Nbv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4Niv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4Nsv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4Nubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4Nuiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4Nusv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFogCoorddv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFogCoordfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4Nbv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4Niv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4Nsv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4Nubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4Nuiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4Nusv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFogCoorddv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFogCoordfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4Nbv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4Niv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4Nsv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4Nubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4Nuiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4Nusv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFogCoorddv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFogCoordfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4Nbv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4Niv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4Nsv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4Nubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4Nuiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4Nusv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFogCoorddv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFogCoordfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormalP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoordP1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoordP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoordP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoordP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4Nbv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4Niv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4Nsv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4Nubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4Nuiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4Nusv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glColorP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glNormalP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glSecondaryColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexCoordP1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexCoordP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexCoordP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexCoordP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteTransformFeedbacks": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFogCoorddv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFogCoordfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGetSubroutineIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGetSubroutineUniformLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormalP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPatchParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoordP1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoordP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoordP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoordP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform1dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform2dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform3dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform4dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4Nbv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4Niv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4Nsv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4Nubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4Nuiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4Nusv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glColorP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDeleteTransformFeedbacks": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGetSubroutineIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGetSubroutineUniformLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glNormalP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPatchParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glSecondaryColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexCoordP1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexCoordP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexCoordP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexCoordP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform1dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform2dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform3dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform4dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClearDepthf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteProgramPipelines": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteTransformFeedbacks": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDepthRangeArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDepthRangeIndexed": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDepthRangef": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFogCoorddv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFogCoordfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGetSubroutineIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGetSubroutineUniformLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormalP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPatchParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform1d": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform1dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform2d": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform3d": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform4d": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix2x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix2x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix3x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix3x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix4x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix4x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glReleaseShaderCompiler": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glScissorArrayv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glScissorIndexed": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glScissorIndexedv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glShaderBinary": ('int', 'typing.Sequence[int]', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoordP1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoordP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoordP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoordP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform1dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform2dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform3dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform4dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glValidateProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4Nbv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4Niv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4Nsv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4Nubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4Nuiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4Nusv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribL1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribL1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribL2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribL2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribL3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribL3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribL4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribL4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribLPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glViewportArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glViewportIndexedf": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glViewportIndexedfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glClearDepthf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glColorP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteProgramPipelines": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteTransformFeedbacks": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDepthRangeArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDepthRangeIndexed": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDepthRangef": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGetSubroutineIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGetSubroutineUniformLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glNormalP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPatchParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform1d": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform1dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform2d": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform3d": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform4d": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix2x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix2x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix3x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix3x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix4x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix4x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glReleaseShaderCompiler": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glScissorArrayv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glScissorIndexed": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glScissorIndexedv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glSecondaryColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glShaderBinary": ('int', 'typing.Sequence[int]', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexCoordP1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexCoordP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexCoordP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexCoordP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform1dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform2dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform3dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform4dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glValidateProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribL1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribL1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribL2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribL2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribL3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribL3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribL4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribL4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribLPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glViewportArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glViewportIndexedf": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glViewportIndexedfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindImageTexture": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClearDepthf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteProgramPipelines": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteTransformFeedbacks": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDepthRangeArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDepthRangeIndexed": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDepthRangef": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawArraysInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawElementsInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawElementsInstancedBaseVertexBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawTransformFeedbackInstanced": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawTransformFeedbackStreamInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFogCoorddv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFogCoordfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGetSubroutineIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGetSubroutineUniformLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMemoryBarrier": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormalP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPatchParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform1d": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform1dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform2d": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform3d": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform4d": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix2x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix2x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix3x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix3x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix4x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix4x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glReleaseShaderCompiler": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glScissorArrayv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glScissorIndexed": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glScissorIndexedv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glShaderBinary": ('int', 'typing.Sequence[int]', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoordP1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoordP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoordP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoordP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexStorage1D": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform1dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform2dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform3dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform4dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glValidateProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4Nbv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4Niv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4Nsv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4Nubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4Nuiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4Nusv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribL1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribL1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribL2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribL2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribL3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribL3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribL4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribL4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribLPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glViewportArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glViewportIndexedf": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glViewportIndexedfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindImageTexture": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glClearDepthf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glColorP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteProgramPipelines": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteTransformFeedbacks": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDepthRangeArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDepthRangeIndexed": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDepthRangef": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawArraysInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawElementsInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawElementsInstancedBaseVertexBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawTransformFeedbackInstanced": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawTransformFeedbackStreamInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGetSubroutineIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGetSubroutineUniformLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMemoryBarrier": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glNormalP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPatchParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform1d": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform1dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform2d": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform3d": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform4d": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix2x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix2x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix3x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix3x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix4x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix4x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glReleaseShaderCompiler": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glScissorArrayv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glScissorIndexed": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glScissorIndexedv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glSecondaryColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glShaderBinary": ('int', 'typing.Sequence[int]', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexCoordP1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexCoordP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexCoordP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexCoordP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexStorage1D": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform1dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform2dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform3dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform4dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glValidateProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribL1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribL1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribL2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribL2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribL3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribL3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribL4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribL4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribLPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glViewportArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glViewportIndexedf": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glViewportIndexedfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindImageTexture": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearBufferData": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearDepthf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyImageSubData": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteProgramPipelines": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteTransformFeedbacks": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDepthRangeArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDepthRangeIndexed": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDepthRangef": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDispatchCompute": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawArraysInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawElementsInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawElementsInstancedBaseVertexBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawTransformFeedbackInstanced": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawTransformFeedbackStreamInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFogCoorddv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFogCoordfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFramebufferParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetProgramResourceIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetProgramResourceLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetProgramResourceLocationIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetSubroutineIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetSubroutineUniformLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glInvalidateBufferData": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glInvalidateFramebuffer": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glInvalidateSubFramebuffer": ('int', 'int', 'typing.Sequence[int]', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glInvalidateTexImage": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glInvalidateTexSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMemoryBarrier": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiDrawArraysIndirect": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormalP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPatchParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform1d": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform1dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform2d": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform3d": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform4d": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix2x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix2x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix3x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix3x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix4x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix4x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glReleaseShaderCompiler": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glScissorArrayv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glScissorIndexed": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glScissorIndexedv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glShaderBinary": ('int', 'typing.Sequence[int]', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glShaderStorageBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoordP1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoordP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoordP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoordP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexStorage1D": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexStorage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexStorage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTextureView": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform1dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform2dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform3dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform4dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glValidateProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4Nbv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4Niv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4Nsv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4Nubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4Nuiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4Nusv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribBinding": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribIFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribL1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribL1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribL2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribL2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribL3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribL3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribL4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribL4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribLFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribLPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexBindingDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glViewportArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glViewportIndexedf": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glViewportIndexedfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindImageTexture": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClearBufferData": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClearDepthf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glColorP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCopyImageSubData": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteProgramPipelines": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteTransformFeedbacks": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDepthRangeArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDepthRangeIndexed": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDepthRangef": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDispatchCompute": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawArraysInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawElementsInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawElementsInstancedBaseVertexBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawTransformFeedbackInstanced": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawTransformFeedbackStreamInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glFramebufferParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetProgramResourceIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetProgramResourceLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetProgramResourceLocationIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetSubroutineIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetSubroutineUniformLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glInvalidateBufferData": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glInvalidateFramebuffer": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glInvalidateSubFramebuffer": ('int', 'int', 'typing.Sequence[int]', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glInvalidateTexImage": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glInvalidateTexSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMemoryBarrier": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMultiDrawArraysIndirect": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glNormalP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPatchParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform1d": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform1dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform2d": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform3d": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform4d": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix2x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix2x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix3x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix3x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix4x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix4x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glReleaseShaderCompiler": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glScissorArrayv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glScissorIndexed": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glScissorIndexedv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glSecondaryColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glShaderBinary": ('int', 'typing.Sequence[int]', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glShaderStorageBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexCoordP1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexCoordP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexCoordP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexCoordP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexStorage1D": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexStorage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexStorage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTextureView": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform1dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform2dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform3dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform4dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glValidateProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribBinding": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribIFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribL1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribL1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribL2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribL2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribL3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribL3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribL4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribL4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribLFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribLPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexBindingDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glViewportArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glViewportIndexedf": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glViewportIndexedfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindBuffersBase": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindBuffersRange": ('int', 'int', 'int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindImageTexture": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindImageTextures": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindSamplers": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindTextures": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindVertexBuffers": ('int', 'int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearBufferData": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearDepthf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearTexImage": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearTexSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyImageSubData": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDebugMessageControl": ('int', 'int', 'int', 'int', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDebugMessageInsert": ('int', 'int', 'int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteProgramPipelines": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteTransformFeedbacks": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDepthRangeArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDepthRangeIndexed": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDepthRangef": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDispatchCompute": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawArraysInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawElementsInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawElementsInstancedBaseVertexBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawTransformFeedbackInstanced": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawTransformFeedbackStreamInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFogCoorddv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFogCoordfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFramebufferParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetColorTable": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetCompressedTexImage": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetConvolutionFilter": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetHistogram": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetMinmax": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetProgramResourceIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetProgramResourceLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetProgramResourceLocationIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetSeparableFilter": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetSubroutineIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetSubroutineUniformLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetTexImage": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glInvalidateBufferData": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glInvalidateFramebuffer": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glInvalidateSubFramebuffer": ('int', 'int', 'typing.Sequence[int]', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glInvalidateTexImage": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glInvalidateTexSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMemoryBarrier": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiDrawArraysIndirect": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormalP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glObjectLabel": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glObjectPtrLabel": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPatchParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPopDebugGroup": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform1d": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform1dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform2d": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform3d": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform4d": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix2x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix2x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix3x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix3x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix4x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix4x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPushDebugGroup": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glReadPixels": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glReleaseShaderCompiler": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glScissorArrayv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glScissorIndexed": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glScissorIndexedv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glShaderBinary": ('int', 'typing.Sequence[int]', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glShaderStorageBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoordP1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoordP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoordP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoordP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexStorage1D": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexStorage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexStorage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTextureView": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform1dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform2dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform3dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform4dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glValidateProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4Nbv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4Niv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4Nsv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4Nubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4Nuiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4Nusv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribBinding": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribIFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribL1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribL1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribL2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribL2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribL3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribL3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribL4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribL4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribLFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribLPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexBindingDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glViewportArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glViewportIndexedf": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glViewportIndexedfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindBuffersBase": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindBuffersRange": ('int', 'int', 'int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindImageTexture": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindImageTextures": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindSamplers": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindTextures": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindVertexBuffers": ('int', 'int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearBufferData": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearDepthf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearTexImage": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearTexSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCopyImageSubData": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDebugMessageControl": ('int', 'int', 'int', 'int', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDebugMessageInsert": ('int', 'int', 'int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteProgramPipelines": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteTransformFeedbacks": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDepthRangeArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDepthRangeIndexed": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDepthRangef": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDispatchCompute": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawArraysInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawElementsInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawElementsInstancedBaseVertexBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawTransformFeedbackInstanced": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawTransformFeedbackStreamInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glFramebufferParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetCompressedTexImage": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetProgramResourceIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetProgramResourceLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetProgramResourceLocationIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetSubroutineIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetSubroutineUniformLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetTexImage": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glInvalidateBufferData": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glInvalidateFramebuffer": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glInvalidateSubFramebuffer": ('int', 'int', 'typing.Sequence[int]', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glInvalidateTexImage": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glInvalidateTexSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glMemoryBarrier": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glMultiDrawArraysIndirect": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glObjectLabel": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glObjectPtrLabel": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPatchParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPopDebugGroup": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform1d": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform1dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform2d": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform3d": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform4d": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix2x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix2x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix3x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix3x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix4x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix4x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPushDebugGroup": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glReadPixels": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glReleaseShaderCompiler": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glScissorArrayv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glScissorIndexed": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glScissorIndexedv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glShaderBinary": ('int', 'typing.Sequence[int]', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glShaderStorageBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexStorage1D": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexStorage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexStorage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTextureView": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform1dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform2dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform3dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform4dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glValidateProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4Nbv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4Niv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4Nsv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4Nubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4Nuiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4Nusv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribBinding": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribIFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribL1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribL1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribL2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribL2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribL3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribL3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribL4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribL4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribLFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribLPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexBindingDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glViewportArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glViewportIndexedf": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glViewportIndexedfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindBuffersBase": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindBuffersRange": ('int', 'int', 'int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindImageTexture": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindImageTextures": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindSamplers": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindTextureUnit": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindTextures": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindVertexBuffers": ('int', 'int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlitNamedFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCheckNamedFramebufferStatus": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearBufferData": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearDepthf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearNamedBufferData": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearNamedFramebufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearNamedFramebufferfv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearNamedFramebufferiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearNamedFramebufferuiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearTexImage": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearTexSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClipControl": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCompressedTextureSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCompressedTextureSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCompressedTextureSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyImageSubData": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyTextureSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyTextureSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyTextureSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDebugMessageControl": ('int', 'int', 'int', 'int', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDebugMessageInsert": ('int', 'int', 'int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteProgramPipelines": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteTransformFeedbacks": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDepthRangeArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDepthRangeIndexed": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDepthRangef": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDisableVertexArrayAttrib": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDispatchCompute": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawArraysInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawElementsInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawElementsInstancedBaseVertexBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawTransformFeedbackInstanced": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawTransformFeedbackStreamInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEnableVertexArrayAttrib": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFogCoorddv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFogCoordfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFramebufferParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGenerateTextureMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetColorTable": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetCompressedTexImage": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetCompressedTextureImage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetCompressedTextureSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetConvolutionFilter": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetGraphicsResetStatus": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetHistogram": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetMinmax": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetProgramResourceIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetProgramResourceLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetProgramResourceLocationIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetSeparableFilter": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetSubroutineIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetSubroutineUniformLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetTexImage": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetTextureImage": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetTextureSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetnColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetnCompressedTexImage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetnConvolutionFilter": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetnHistogram": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetnMinmax": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetnSeparableFilter": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetnTexImage": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glInvalidateBufferData": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glInvalidateFramebuffer": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glInvalidateNamedFramebufferData": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glInvalidateNamedFramebufferSubData": ('int', 'int', 'typing.Sequence[int]', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glInvalidateSubFramebuffer": ('int', 'int', 'typing.Sequence[int]', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glInvalidateTexImage": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glInvalidateTexSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMapNamedBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMemoryBarrier": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMemoryBarrierByRegion": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiDrawArraysIndirect": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedBufferData": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedBufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedFramebufferDrawBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedFramebufferDrawBuffers": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedFramebufferParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedFramebufferReadBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormalP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glObjectLabel": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glObjectPtrLabel": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPatchParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPopDebugGroup": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform1d": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform1dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform2d": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform3d": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform4d": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix2x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix2x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix3x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix3x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix4x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix4x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPushDebugGroup": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glReadPixels": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glReadnPixels": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glReleaseShaderCompiler": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glScissorArrayv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glScissorIndexed": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glScissorIndexedv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glShaderBinary": ('int', 'typing.Sequence[int]', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glShaderStorageBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoordP1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoordP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoordP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoordP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexStorage1D": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexStorage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexStorage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureBarrier": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureStorage1D": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureStorage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureStorage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureView": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTransformFeedbackBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform1dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform2dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform3dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform4dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUnmapNamedBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glValidateProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexArrayAttribBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexArrayAttribFormat": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexArrayAttribIFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexArrayAttribLFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexArrayBindingDivisor": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexArrayElementBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexArrayVertexBuffers": ('int', 'int', 'int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4Nbv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4Niv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4Nsv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4Nubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4Nuiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4Nusv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribBinding": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribIFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribL1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribL1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribL2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribL2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribL3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribL3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribL4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribL4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribLFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribLPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexBindingDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glViewportArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glViewportIndexedf": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glViewportIndexedfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindBuffersBase": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindBuffersRange": ('int', 'int', 'int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindImageTexture": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindImageTextures": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindSamplers": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindTextureUnit": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindTextures": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindVertexBuffers": ('int', 'int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlitNamedFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCheckNamedFramebufferStatus": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearBufferData": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearDepthf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearNamedBufferData": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearNamedFramebufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearNamedFramebufferfv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearNamedFramebufferiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearNamedFramebufferuiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearTexImage": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearTexSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClipControl": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCompressedTextureSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCompressedTextureSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCompressedTextureSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCopyImageSubData": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCopyTextureSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCopyTextureSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCopyTextureSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDebugMessageControl": ('int', 'int', 'int', 'int', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDebugMessageInsert": ('int', 'int', 'int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteProgramPipelines": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteTransformFeedbacks": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDepthRangeArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDepthRangeIndexed": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDepthRangef": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDisableVertexArrayAttrib": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDispatchCompute": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawArraysInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawElementsInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawElementsInstancedBaseVertexBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawTransformFeedbackInstanced": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawTransformFeedbackStreamInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glEnableVertexArrayAttrib": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glFramebufferParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGenerateTextureMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetCompressedTexImage": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetCompressedTextureImage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetCompressedTextureSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetGraphicsResetStatus": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetProgramResourceIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetProgramResourceLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetProgramResourceLocationIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetSubroutineIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetSubroutineUniformLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetTexImage": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetTextureImage": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetTextureSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetnCompressedTexImage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetnTexImage": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glInvalidateBufferData": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glInvalidateFramebuffer": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glInvalidateNamedFramebufferData": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glInvalidateNamedFramebufferSubData": ('int', 'int', 'typing.Sequence[int]', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glInvalidateSubFramebuffer": ('int', 'int', 'typing.Sequence[int]', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glInvalidateTexImage": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glInvalidateTexSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glMapNamedBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glMemoryBarrier": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glMemoryBarrierByRegion": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glMultiDrawArraysIndirect": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedBufferData": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedBufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedFramebufferDrawBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedFramebufferDrawBuffers": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedFramebufferParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedFramebufferReadBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glObjectLabel": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glObjectPtrLabel": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPatchParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPopDebugGroup": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform1d": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform1dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform2d": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform3d": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform4d": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix2x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix2x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix3x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix3x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix4x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix4x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPushDebugGroup": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glReadPixels": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glReadnPixels": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glReleaseShaderCompiler": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glScissorArrayv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glScissorIndexed": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glScissorIndexedv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glShaderBinary": ('int', 'typing.Sequence[int]', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glShaderStorageBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexStorage1D": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexStorage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexStorage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureBarrier": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureStorage1D": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureStorage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureStorage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureView": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTransformFeedbackBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform1dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform2dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform3dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform4dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUnmapNamedBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glValidateProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexArrayAttribBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexArrayAttribFormat": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexArrayAttribIFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexArrayAttribLFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexArrayBindingDivisor": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexArrayElementBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexArrayVertexBuffers": ('int', 'int', 'int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4Nbv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4Niv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4Nsv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4Nubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4Nuiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4Nusv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribBinding": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribIFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribL1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribL1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribL2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribL2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribL3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribL3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribL4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribL4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribLFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribLPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexBindingDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glViewportArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glViewportIndexedf": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glViewportIndexedfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.initializeOpenGLFunctions": (),
- }) if "PySide2.QtOpenGLFunctions" in sys.modules else None
-# Module PySide2.QtPositioning
-sig_dict.update({
-# class PySide2.QtPositioning.QGeoAddress:
- "PySide2.QtPositioning.QGeoAddress.__init__": [(), ('PySide2.QtPositioning.QGeoAddress',)],
- "PySide2.QtPositioning.QGeoAddress.__copy__": (),
- "PySide2.QtPositioning.QGeoAddress.city": (),
- "PySide2.QtPositioning.QGeoAddress.clear": (),
- "PySide2.QtPositioning.QGeoAddress.country": (),
- "PySide2.QtPositioning.QGeoAddress.countryCode": (),
- "PySide2.QtPositioning.QGeoAddress.county": (),
- "PySide2.QtPositioning.QGeoAddress.district": (),
- "PySide2.QtPositioning.QGeoAddress.isEmpty": (),
- "PySide2.QtPositioning.QGeoAddress.isTextGenerated": (),
- "PySide2.QtPositioning.QGeoAddress.postalCode": (),
- "PySide2.QtPositioning.QGeoAddress.setCity": ('str',),
- "PySide2.QtPositioning.QGeoAddress.setCountry": ('str',),
- "PySide2.QtPositioning.QGeoAddress.setCountryCode": ('str',),
- "PySide2.QtPositioning.QGeoAddress.setCounty": ('str',),
- "PySide2.QtPositioning.QGeoAddress.setDistrict": ('str',),
- "PySide2.QtPositioning.QGeoAddress.setPostalCode": ('str',),
- "PySide2.QtPositioning.QGeoAddress.setState": ('str',),
- "PySide2.QtPositioning.QGeoAddress.setStreet": ('str',),
- "PySide2.QtPositioning.QGeoAddress.setText": ('str',),
- "PySide2.QtPositioning.QGeoAddress.state": (),
- "PySide2.QtPositioning.QGeoAddress.street": (),
- "PySide2.QtPositioning.QGeoAddress.text": (),
-# class PySide2.QtPositioning.QGeoAreaMonitorInfo:
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.__init__": [('PySide2.QtPositioning.QGeoAreaMonitorInfo',), ('str',)],
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.__copy__": (),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.area": (),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.expiration": (),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.identifier": (),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.isPersistent": (),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.isValid": (),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.name": (),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.notificationParameters": (),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.setArea": ('PySide2.QtPositioning.QGeoShape',),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.setExpiration": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.setName": ('str',),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.setNotificationParameters": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.setPersistent": ('bool',),
-# class PySide2.QtPositioning.QGeoAreaMonitorSource:
-# class PySide2.QtPositioning.QGeoAreaMonitorSource.AreaMonitorFeature:
-# class PySide2.QtPositioning.QGeoAreaMonitorSource.AreaMonitorFeatures:
-# class PySide2.QtPositioning.QGeoAreaMonitorSource.Error:
- "PySide2.QtPositioning.QGeoAreaMonitorSource.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.activeMonitors": [(), ('PySide2.QtPositioning.QGeoShape',)],
- "PySide2.QtPositioning.QGeoAreaMonitorSource.availableSources": (),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.createDefaultSource": ('PySide2.QtCore.QObject',),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.createSource": ('str', 'PySide2.QtCore.QObject'),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.error": (),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.positionInfoSource": (),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.requestUpdate": ('PySide2.QtPositioning.QGeoAreaMonitorInfo', 'str'),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.setPositionInfoSource": ('PySide2.QtPositioning.QGeoPositionInfoSource',),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.sourceName": (),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.startMonitoring": ('PySide2.QtPositioning.QGeoAreaMonitorInfo',),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.stopMonitoring": ('PySide2.QtPositioning.QGeoAreaMonitorInfo',),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.supportedAreaMonitorFeatures": (),
-# class PySide2.QtPositioning.QGeoCircle:
- "PySide2.QtPositioning.QGeoCircle.__init__": [(), ('PySide2.QtPositioning.QGeoCircle',), ('PySide2.QtPositioning.QGeoCoordinate', 'float'), ('PySide2.QtPositioning.QGeoShape',)],
- "PySide2.QtPositioning.QGeoCircle.__copy__": (),
- "PySide2.QtPositioning.QGeoCircle.center": (),
- "PySide2.QtPositioning.QGeoCircle.extendCircle": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoCircle.radius": (),
- "PySide2.QtPositioning.QGeoCircle.setCenter": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoCircle.setRadius": ('float',),
- "PySide2.QtPositioning.QGeoCircle.toString": (),
- "PySide2.QtPositioning.QGeoCircle.translate": ('float', 'float'),
- "PySide2.QtPositioning.QGeoCircle.translated": ('float', 'float'),
-# class PySide2.QtPositioning.QGeoCoordinate:
-# class PySide2.QtPositioning.QGeoCoordinate.CoordinateFormat:
-# class PySide2.QtPositioning.QGeoCoordinate.CoordinateType:
- "PySide2.QtPositioning.QGeoCoordinate.__init__": [(), ('PySide2.QtPositioning.QGeoCoordinate',), ('float', 'float'), ('float', 'float', 'float')],
- "PySide2.QtPositioning.QGeoCoordinate.__copy__": (),
- "PySide2.QtPositioning.QGeoCoordinate.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtPositioning.QGeoCoordinate.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtPositioning.QGeoCoordinate.altitude": (),
- "PySide2.QtPositioning.QGeoCoordinate.atDistanceAndAzimuth": ('float', 'float', 'float'),
- "PySide2.QtPositioning.QGeoCoordinate.azimuthTo": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoCoordinate.distanceTo": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoCoordinate.isValid": (),
- "PySide2.QtPositioning.QGeoCoordinate.latitude": (),
- "PySide2.QtPositioning.QGeoCoordinate.longitude": (),
- "PySide2.QtPositioning.QGeoCoordinate.setAltitude": ('float',),
- "PySide2.QtPositioning.QGeoCoordinate.setLatitude": ('float',),
- "PySide2.QtPositioning.QGeoCoordinate.setLongitude": ('float',),
- "PySide2.QtPositioning.QGeoCoordinate.toString": ('PySide2.QtPositioning.QGeoCoordinate.CoordinateFormat',),
- "PySide2.QtPositioning.QGeoCoordinate.type": (),
-# class PySide2.QtPositioning.QGeoLocation:
- "PySide2.QtPositioning.QGeoLocation.__init__": [(), ('PySide2.QtPositioning.QGeoLocation',)],
- "PySide2.QtPositioning.QGeoLocation.__copy__": (),
- "PySide2.QtPositioning.QGeoLocation.address": (),
- "PySide2.QtPositioning.QGeoLocation.boundingBox": (),
- "PySide2.QtPositioning.QGeoLocation.coordinate": (),
- "PySide2.QtPositioning.QGeoLocation.extendedAttributes": (),
- "PySide2.QtPositioning.QGeoLocation.isEmpty": (),
- "PySide2.QtPositioning.QGeoLocation.setAddress": ('PySide2.QtPositioning.QGeoAddress',),
- "PySide2.QtPositioning.QGeoLocation.setBoundingBox": ('PySide2.QtPositioning.QGeoRectangle',),
- "PySide2.QtPositioning.QGeoLocation.setCoordinate": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoLocation.setExtendedAttributes": ('typing.Dict[str, typing.Any]',),
-# class PySide2.QtPositioning.QGeoPath:
- "PySide2.QtPositioning.QGeoPath.__init__": [(), ('PySide2.QtPositioning.QGeoPath',), ('PySide2.QtPositioning.QGeoShape',), ('typing.Sequence[PySide2.QtPositioning.QGeoCoordinate]', 'float')],
- "PySide2.QtPositioning.QGeoPath.__copy__": (),
- "PySide2.QtPositioning.QGeoPath.addCoordinate": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoPath.clearPath": (),
- "PySide2.QtPositioning.QGeoPath.containsCoordinate": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoPath.coordinateAt": ('int',),
- "PySide2.QtPositioning.QGeoPath.insertCoordinate": ('int', 'PySide2.QtPositioning.QGeoCoordinate'),
- "PySide2.QtPositioning.QGeoPath.length": ('int', 'int'),
- "PySide2.QtPositioning.QGeoPath.path": (),
- "PySide2.QtPositioning.QGeoPath.removeCoordinate": [('PySide2.QtPositioning.QGeoCoordinate',), ('int',)],
- "PySide2.QtPositioning.QGeoPath.replaceCoordinate": ('int', 'PySide2.QtPositioning.QGeoCoordinate'),
- "PySide2.QtPositioning.QGeoPath.setPath": ('typing.Sequence[PySide2.QtPositioning.QGeoCoordinate]',),
- "PySide2.QtPositioning.QGeoPath.setVariantPath": ('typing.Sequence[typing.Any]',),
- "PySide2.QtPositioning.QGeoPath.setWidth": ('float',),
- "PySide2.QtPositioning.QGeoPath.size": (),
- "PySide2.QtPositioning.QGeoPath.toString": (),
- "PySide2.QtPositioning.QGeoPath.translate": ('float', 'float'),
- "PySide2.QtPositioning.QGeoPath.translated": ('float', 'float'),
- "PySide2.QtPositioning.QGeoPath.variantPath": (),
- "PySide2.QtPositioning.QGeoPath.width": (),
-# class PySide2.QtPositioning.QGeoPolygon:
- "PySide2.QtPositioning.QGeoPolygon.__init__": [(), ('PySide2.QtPositioning.QGeoPolygon',), ('PySide2.QtPositioning.QGeoShape',), ('typing.Sequence[PySide2.QtPositioning.QGeoCoordinate]',)],
- "PySide2.QtPositioning.QGeoPolygon.__copy__": (),
- "PySide2.QtPositioning.QGeoPolygon.addCoordinate": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoPolygon.addHole": [('typing.Any',), ('typing.Sequence[PySide2.QtPositioning.QGeoCoordinate]',)],
- "PySide2.QtPositioning.QGeoPolygon.containsCoordinate": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoPolygon.coordinateAt": ('int',),
- "PySide2.QtPositioning.QGeoPolygon.hole": ('int',),
- "PySide2.QtPositioning.QGeoPolygon.holePath": ('int',),
- "PySide2.QtPositioning.QGeoPolygon.holesCount": (),
- "PySide2.QtPositioning.QGeoPolygon.insertCoordinate": ('int', 'PySide2.QtPositioning.QGeoCoordinate'),
- "PySide2.QtPositioning.QGeoPolygon.length": ('int', 'int'),
- "PySide2.QtPositioning.QGeoPolygon.path": (),
- "PySide2.QtPositioning.QGeoPolygon.perimeter": (),
- "PySide2.QtPositioning.QGeoPolygon.removeCoordinate": [('PySide2.QtPositioning.QGeoCoordinate',), ('int',)],
- "PySide2.QtPositioning.QGeoPolygon.removeHole": ('int',),
- "PySide2.QtPositioning.QGeoPolygon.replaceCoordinate": ('int', 'PySide2.QtPositioning.QGeoCoordinate'),
- "PySide2.QtPositioning.QGeoPolygon.setPath": ('typing.Sequence[PySide2.QtPositioning.QGeoCoordinate]',),
- "PySide2.QtPositioning.QGeoPolygon.setPerimeter": ('typing.Sequence[typing.Any]',),
- "PySide2.QtPositioning.QGeoPolygon.size": (),
- "PySide2.QtPositioning.QGeoPolygon.toString": (),
- "PySide2.QtPositioning.QGeoPolygon.translate": ('float', 'float'),
- "PySide2.QtPositioning.QGeoPolygon.translated": ('float', 'float'),
-# class PySide2.QtPositioning.QGeoPositionInfo:
-# class PySide2.QtPositioning.QGeoPositionInfo.Attribute:
- "PySide2.QtPositioning.QGeoPositionInfo.__init__": [(), ('PySide2.QtPositioning.QGeoCoordinate', 'PySide2.QtCore.QDateTime'), ('PySide2.QtPositioning.QGeoPositionInfo',)],
- "PySide2.QtPositioning.QGeoPositionInfo.__copy__": (),
- "PySide2.QtPositioning.QGeoPositionInfo.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtPositioning.QGeoPositionInfo.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtPositioning.QGeoPositionInfo.attribute": ('PySide2.QtPositioning.QGeoPositionInfo.Attribute',),
- "PySide2.QtPositioning.QGeoPositionInfo.coordinate": (),
- "PySide2.QtPositioning.QGeoPositionInfo.hasAttribute": ('PySide2.QtPositioning.QGeoPositionInfo.Attribute',),
- "PySide2.QtPositioning.QGeoPositionInfo.isValid": (),
- "PySide2.QtPositioning.QGeoPositionInfo.removeAttribute": ('PySide2.QtPositioning.QGeoPositionInfo.Attribute',),
- "PySide2.QtPositioning.QGeoPositionInfo.setAttribute": ('PySide2.QtPositioning.QGeoPositionInfo.Attribute', 'float'),
- "PySide2.QtPositioning.QGeoPositionInfo.setCoordinate": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoPositionInfo.setTimestamp": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtPositioning.QGeoPositionInfo.timestamp": (),
-# class PySide2.QtPositioning.QGeoPositionInfoSource:
-# class PySide2.QtPositioning.QGeoPositionInfoSource.Error:
-# class PySide2.QtPositioning.QGeoPositionInfoSource.PositioningMethod:
-# class PySide2.QtPositioning.QGeoPositionInfoSource.PositioningMethods:
- "PySide2.QtPositioning.QGeoPositionInfoSource.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtPositioning.QGeoPositionInfoSource.availableSources": (),
- "PySide2.QtPositioning.QGeoPositionInfoSource.backendProperty": ('str',),
- "PySide2.QtPositioning.QGeoPositionInfoSource.createDefaultSource": [('PySide2.QtCore.QObject',), ('typing.Dict[str, typing.Any]', 'PySide2.QtCore.QObject')],
- "PySide2.QtPositioning.QGeoPositionInfoSource.createSource": [('str', 'PySide2.QtCore.QObject'), ('str', 'typing.Dict[str, typing.Any]', 'PySide2.QtCore.QObject')],
- "PySide2.QtPositioning.QGeoPositionInfoSource.error": (),
- "PySide2.QtPositioning.QGeoPositionInfoSource.lastKnownPosition": ('bool',),
- "PySide2.QtPositioning.QGeoPositionInfoSource.minimumUpdateInterval": (),
- "PySide2.QtPositioning.QGeoPositionInfoSource.preferredPositioningMethods": (),
- "PySide2.QtPositioning.QGeoPositionInfoSource.requestUpdate": ('int',),
- "PySide2.QtPositioning.QGeoPositionInfoSource.setBackendProperty": ('str', 'typing.Any'),
- "PySide2.QtPositioning.QGeoPositionInfoSource.setPreferredPositioningMethods": ('PySide2.QtPositioning.QGeoPositionInfoSource.PositioningMethods',),
- "PySide2.QtPositioning.QGeoPositionInfoSource.setUpdateInterval": ('int',),
- "PySide2.QtPositioning.QGeoPositionInfoSource.sourceName": (),
- "PySide2.QtPositioning.QGeoPositionInfoSource.startUpdates": (),
- "PySide2.QtPositioning.QGeoPositionInfoSource.stopUpdates": (),
- "PySide2.QtPositioning.QGeoPositionInfoSource.supportedPositioningMethods": (),
- "PySide2.QtPositioning.QGeoPositionInfoSource.updateInterval": (),
-# class PySide2.QtPositioning.QGeoPositionInfoSourceFactory:
- "PySide2.QtPositioning.QGeoPositionInfoSourceFactory.__init__": (),
- "PySide2.QtPositioning.QGeoPositionInfoSourceFactory.areaMonitor": ('PySide2.QtCore.QObject',),
- "PySide2.QtPositioning.QGeoPositionInfoSourceFactory.positionInfoSource": ('PySide2.QtCore.QObject',),
- "PySide2.QtPositioning.QGeoPositionInfoSourceFactory.satelliteInfoSource": ('PySide2.QtCore.QObject',),
-# class PySide2.QtPositioning.QGeoRectangle:
- "PySide2.QtPositioning.QGeoRectangle.__init__": [(), ('PySide2.QtPositioning.QGeoCoordinate', 'PySide2.QtPositioning.QGeoCoordinate'), ('PySide2.QtPositioning.QGeoCoordinate', 'float', 'float'), ('PySide2.QtPositioning.QGeoRectangle',), ('PySide2.QtPositioning.QGeoShape',), ('typing.Sequence[PySide2.QtPositioning.QGeoCoordinate]',)],
- "PySide2.QtPositioning.QGeoRectangle.__copy__": (),
- "PySide2.QtPositioning.QGeoRectangle.__ior__": ('PySide2.QtPositioning.QGeoRectangle',),
- "PySide2.QtPositioning.QGeoRectangle.__or__": ('PySide2.QtPositioning.QGeoRectangle',),
- "PySide2.QtPositioning.QGeoRectangle.bottomLeft": (),
- "PySide2.QtPositioning.QGeoRectangle.bottomRight": (),
- "PySide2.QtPositioning.QGeoRectangle.center": (),
- "PySide2.QtPositioning.QGeoRectangle.contains": [('PySide2.QtPositioning.QGeoCoordinate',), ('PySide2.QtPositioning.QGeoRectangle',)],
- "PySide2.QtPositioning.QGeoRectangle.extendRectangle": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoRectangle.height": (),
- "PySide2.QtPositioning.QGeoRectangle.intersects": ('PySide2.QtPositioning.QGeoRectangle',),
- "PySide2.QtPositioning.QGeoRectangle.setBottomLeft": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoRectangle.setBottomRight": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoRectangle.setCenter": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoRectangle.setHeight": ('float',),
- "PySide2.QtPositioning.QGeoRectangle.setTopLeft": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoRectangle.setTopRight": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoRectangle.setWidth": ('float',),
- "PySide2.QtPositioning.QGeoRectangle.toString": (),
- "PySide2.QtPositioning.QGeoRectangle.topLeft": (),
- "PySide2.QtPositioning.QGeoRectangle.topRight": (),
- "PySide2.QtPositioning.QGeoRectangle.translate": ('float', 'float'),
- "PySide2.QtPositioning.QGeoRectangle.translated": ('float', 'float'),
- "PySide2.QtPositioning.QGeoRectangle.united": ('PySide2.QtPositioning.QGeoRectangle',),
- "PySide2.QtPositioning.QGeoRectangle.width": (),
-# class PySide2.QtPositioning.QGeoSatelliteInfo:
-# class PySide2.QtPositioning.QGeoSatelliteInfo.Attribute:
-# class PySide2.QtPositioning.QGeoSatelliteInfo.SatelliteSystem:
- "PySide2.QtPositioning.QGeoSatelliteInfo.__init__": [(), ('PySide2.QtPositioning.QGeoSatelliteInfo',)],
- "PySide2.QtPositioning.QGeoSatelliteInfo.__copy__": (),
- "PySide2.QtPositioning.QGeoSatelliteInfo.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtPositioning.QGeoSatelliteInfo.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtPositioning.QGeoSatelliteInfo.attribute": ('PySide2.QtPositioning.QGeoSatelliteInfo.Attribute',),
- "PySide2.QtPositioning.QGeoSatelliteInfo.hasAttribute": ('PySide2.QtPositioning.QGeoSatelliteInfo.Attribute',),
- "PySide2.QtPositioning.QGeoSatelliteInfo.removeAttribute": ('PySide2.QtPositioning.QGeoSatelliteInfo.Attribute',),
- "PySide2.QtPositioning.QGeoSatelliteInfo.satelliteIdentifier": (),
- "PySide2.QtPositioning.QGeoSatelliteInfo.satelliteSystem": (),
- "PySide2.QtPositioning.QGeoSatelliteInfo.setAttribute": ('PySide2.QtPositioning.QGeoSatelliteInfo.Attribute', 'float'),
- "PySide2.QtPositioning.QGeoSatelliteInfo.setSatelliteIdentifier": ('int',),
- "PySide2.QtPositioning.QGeoSatelliteInfo.setSatelliteSystem": ('PySide2.QtPositioning.QGeoSatelliteInfo.SatelliteSystem',),
- "PySide2.QtPositioning.QGeoSatelliteInfo.setSignalStrength": ('int',),
- "PySide2.QtPositioning.QGeoSatelliteInfo.signalStrength": (),
-# class PySide2.QtPositioning.QGeoSatelliteInfoSource:
-# class PySide2.QtPositioning.QGeoSatelliteInfoSource.Error:
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.availableSources": (),
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.createDefaultSource": [('PySide2.QtCore.QObject',), ('typing.Dict[str, typing.Any]', 'PySide2.QtCore.QObject')],
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.createSource": [('str', 'PySide2.QtCore.QObject'), ('str', 'typing.Dict[str, typing.Any]', 'PySide2.QtCore.QObject')],
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.error": (),
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.minimumUpdateInterval": (),
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.requestUpdate": ('int',),
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.setUpdateInterval": ('int',),
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.sourceName": (),
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.startUpdates": (),
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.stopUpdates": (),
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.updateInterval": (),
-# class PySide2.QtPositioning.QGeoShape:
-# class PySide2.QtPositioning.QGeoShape.ShapeType:
- "PySide2.QtPositioning.QGeoShape.__init__": [(), ('PySide2.QtPositioning.QGeoShape',)],
- "PySide2.QtPositioning.QGeoShape.__copy__": (),
- "PySide2.QtPositioning.QGeoShape.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtPositioning.QGeoShape.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtPositioning.QGeoShape.boundingGeoRectangle": (),
- "PySide2.QtPositioning.QGeoShape.center": (),
- "PySide2.QtPositioning.QGeoShape.contains": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoShape.extendShape": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoShape.isEmpty": (),
- "PySide2.QtPositioning.QGeoShape.isValid": (),
- "PySide2.QtPositioning.QGeoShape.toString": (),
- "PySide2.QtPositioning.QGeoShape.type": (),
-# class PySide2.QtPositioning.QNmeaPositionInfoSource:
-# class PySide2.QtPositioning.QNmeaPositionInfoSource.UpdateMode:
- "PySide2.QtPositioning.QNmeaPositionInfoSource.__init__": ('PySide2.QtPositioning.QNmeaPositionInfoSource.UpdateMode', 'PySide2.QtCore.QObject'),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.device": (),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.error": (),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.lastKnownPosition": ('bool',),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.minimumUpdateInterval": (),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.parsePosInfoFromNmeaData": ('str', 'int', 'PySide2.QtPositioning.QGeoPositionInfo'),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.requestUpdate": ('int',),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.setUpdateInterval": ('int',),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.setUserEquivalentRangeError": ('float',),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.startUpdates": (),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.stopUpdates": (),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.supportedPositioningMethods": (),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.updateMode": (),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.userEquivalentRangeError": (),
- }) if "PySide2.QtPositioning" in sys.modules else None
-# Module PySide2.QtLocation
-sig_dict.update({
-# class PySide2.QtLocation.QGeoCodeReply:
-# class PySide2.QtLocation.QGeoCodeReply.Error:
- "PySide2.QtLocation.QGeoCodeReply.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtLocation.QGeoCodeReply.Error', 'str', 'PySide2.QtCore.QObject')],
- "PySide2.QtLocation.QGeoCodeReply.abort": (),
- "PySide2.QtLocation.QGeoCodeReply.addLocation": ('PySide2.QtPositioning.QGeoLocation',),
- "PySide2.QtLocation.QGeoCodeReply.error": (),
- "PySide2.QtLocation.QGeoCodeReply.errorString": (),
- "PySide2.QtLocation.QGeoCodeReply.isFinished": (),
- "PySide2.QtLocation.QGeoCodeReply.limit": (),
- "PySide2.QtLocation.QGeoCodeReply.locations": (),
- "PySide2.QtLocation.QGeoCodeReply.offset": (),
- "PySide2.QtLocation.QGeoCodeReply.setError": ('PySide2.QtLocation.QGeoCodeReply.Error', 'str'),
- "PySide2.QtLocation.QGeoCodeReply.setFinished": ('bool',),
- "PySide2.QtLocation.QGeoCodeReply.setLimit": ('int',),
- "PySide2.QtLocation.QGeoCodeReply.setLocations": ('typing.Sequence[PySide2.QtPositioning.QGeoLocation]',),
- "PySide2.QtLocation.QGeoCodeReply.setOffset": ('int',),
- "PySide2.QtLocation.QGeoCodeReply.setViewport": ('PySide2.QtPositioning.QGeoShape',),
- "PySide2.QtLocation.QGeoCodeReply.viewport": (),
-# class PySide2.QtLocation.QGeoCodingManager:
- "PySide2.QtLocation.QGeoCodingManager.geocode": [('PySide2.QtPositioning.QGeoAddress', 'PySide2.QtPositioning.QGeoShape'), ('str', 'int', 'int', 'PySide2.QtPositioning.QGeoShape')],
- "PySide2.QtLocation.QGeoCodingManager.locale": (),
- "PySide2.QtLocation.QGeoCodingManager.managerName": (),
- "PySide2.QtLocation.QGeoCodingManager.managerVersion": (),
- "PySide2.QtLocation.QGeoCodingManager.reverseGeocode": ('PySide2.QtPositioning.QGeoCoordinate', 'PySide2.QtPositioning.QGeoShape'),
- "PySide2.QtLocation.QGeoCodingManager.setLocale": ('PySide2.QtCore.QLocale',),
-# class PySide2.QtLocation.QGeoCodingManagerEngine:
- "PySide2.QtLocation.QGeoCodingManagerEngine.__init__": ('typing.Dict[str, typing.Any]', 'PySide2.QtCore.QObject'),
- "PySide2.QtLocation.QGeoCodingManagerEngine.geocode": [('PySide2.QtPositioning.QGeoAddress', 'PySide2.QtPositioning.QGeoShape'), ('str', 'int', 'int', 'PySide2.QtPositioning.QGeoShape')],
- "PySide2.QtLocation.QGeoCodingManagerEngine.locale": (),
- "PySide2.QtLocation.QGeoCodingManagerEngine.managerName": (),
- "PySide2.QtLocation.QGeoCodingManagerEngine.managerVersion": (),
- "PySide2.QtLocation.QGeoCodingManagerEngine.reverseGeocode": ('PySide2.QtPositioning.QGeoCoordinate', 'PySide2.QtPositioning.QGeoShape'),
- "PySide2.QtLocation.QGeoCodingManagerEngine.setLocale": ('PySide2.QtCore.QLocale',),
-# class PySide2.QtLocation.QGeoManeuver:
-# class PySide2.QtLocation.QGeoManeuver.InstructionDirection:
- "PySide2.QtLocation.QGeoManeuver.__init__": [(), ('PySide2.QtLocation.QGeoManeuver',)],
- "PySide2.QtLocation.QGeoManeuver.__copy__": (),
- "PySide2.QtLocation.QGeoManeuver.direction": (),
- "PySide2.QtLocation.QGeoManeuver.distanceToNextInstruction": (),
- "PySide2.QtLocation.QGeoManeuver.extendedAttributes": (),
- "PySide2.QtLocation.QGeoManeuver.instructionText": (),
- "PySide2.QtLocation.QGeoManeuver.isValid": (),
- "PySide2.QtLocation.QGeoManeuver.position": (),
- "PySide2.QtLocation.QGeoManeuver.setDirection": ('PySide2.QtLocation.QGeoManeuver.InstructionDirection',),
- "PySide2.QtLocation.QGeoManeuver.setDistanceToNextInstruction": ('float',),
- "PySide2.QtLocation.QGeoManeuver.setExtendedAttributes": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtLocation.QGeoManeuver.setInstructionText": ('str',),
- "PySide2.QtLocation.QGeoManeuver.setPosition": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtLocation.QGeoManeuver.setTimeToNextInstruction": ('int',),
- "PySide2.QtLocation.QGeoManeuver.setWaypoint": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtLocation.QGeoManeuver.timeToNextInstruction": (),
- "PySide2.QtLocation.QGeoManeuver.waypoint": (),
-# class PySide2.QtLocation.QGeoRoute:
- "PySide2.QtLocation.QGeoRoute.__init__": [(), ('PySide2.QtLocation.QGeoRoute',)],
- "PySide2.QtLocation.QGeoRoute.__copy__": (),
- "PySide2.QtLocation.QGeoRoute.bounds": (),
- "PySide2.QtLocation.QGeoRoute.distance": (),
- "PySide2.QtLocation.QGeoRoute.extendedAttributes": (),
- "PySide2.QtLocation.QGeoRoute.firstRouteSegment": (),
- "PySide2.QtLocation.QGeoRoute.path": (),
- "PySide2.QtLocation.QGeoRoute.request": (),
- "PySide2.QtLocation.QGeoRoute.routeId": (),
- "PySide2.QtLocation.QGeoRoute.setBounds": ('PySide2.QtPositioning.QGeoRectangle',),
- "PySide2.QtLocation.QGeoRoute.setDistance": ('float',),
- "PySide2.QtLocation.QGeoRoute.setExtendedAttributes": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtLocation.QGeoRoute.setFirstRouteSegment": ('PySide2.QtLocation.QGeoRouteSegment',),
- "PySide2.QtLocation.QGeoRoute.setPath": ('typing.Sequence[PySide2.QtPositioning.QGeoCoordinate]',),
- "PySide2.QtLocation.QGeoRoute.setRequest": ('PySide2.QtLocation.QGeoRouteRequest',),
- "PySide2.QtLocation.QGeoRoute.setRouteId": ('str',),
- "PySide2.QtLocation.QGeoRoute.setTravelMode": ('PySide2.QtLocation.QGeoRouteRequest.TravelMode',),
- "PySide2.QtLocation.QGeoRoute.setTravelTime": ('int',),
- "PySide2.QtLocation.QGeoRoute.travelMode": (),
- "PySide2.QtLocation.QGeoRoute.travelTime": (),
-# class PySide2.QtLocation.QGeoRouteReply:
-# class PySide2.QtLocation.QGeoRouteReply.Error:
- "PySide2.QtLocation.QGeoRouteReply.__init__": [('PySide2.QtLocation.QGeoRouteReply.Error', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtLocation.QGeoRouteRequest', 'PySide2.QtCore.QObject')],
- "PySide2.QtLocation.QGeoRouteReply.abort": (),
- "PySide2.QtLocation.QGeoRouteReply.addRoutes": ('typing.Sequence[PySide2.QtLocation.QGeoRoute]',),
- "PySide2.QtLocation.QGeoRouteReply.error": (),
- "PySide2.QtLocation.QGeoRouteReply.errorString": (),
- "PySide2.QtLocation.QGeoRouteReply.isFinished": (),
- "PySide2.QtLocation.QGeoRouteReply.request": (),
- "PySide2.QtLocation.QGeoRouteReply.routes": (),
- "PySide2.QtLocation.QGeoRouteReply.setError": ('PySide2.QtLocation.QGeoRouteReply.Error', 'str'),
- "PySide2.QtLocation.QGeoRouteReply.setFinished": ('bool',),
- "PySide2.QtLocation.QGeoRouteReply.setRoutes": ('typing.Sequence[PySide2.QtLocation.QGeoRoute]',),
-# class PySide2.QtLocation.QGeoRouteRequest:
-# class PySide2.QtLocation.QGeoRouteRequest.FeatureType:
-# class PySide2.QtLocation.QGeoRouteRequest.FeatureTypes:
-# class PySide2.QtLocation.QGeoRouteRequest.FeatureWeight:
-# class PySide2.QtLocation.QGeoRouteRequest.FeatureWeights:
-# class PySide2.QtLocation.QGeoRouteRequest.ManeuverDetail:
-# class PySide2.QtLocation.QGeoRouteRequest.ManeuverDetails:
-# class PySide2.QtLocation.QGeoRouteRequest.RouteOptimization:
-# class PySide2.QtLocation.QGeoRouteRequest.RouteOptimizations:
-# class PySide2.QtLocation.QGeoRouteRequest.SegmentDetail:
-# class PySide2.QtLocation.QGeoRouteRequest.SegmentDetails:
-# class PySide2.QtLocation.QGeoRouteRequest.TravelMode:
-# class PySide2.QtLocation.QGeoRouteRequest.TravelModes:
- "PySide2.QtLocation.QGeoRouteRequest.__init__": [('PySide2.QtLocation.QGeoRouteRequest',), ('PySide2.QtPositioning.QGeoCoordinate', 'PySide2.QtPositioning.QGeoCoordinate'), ('typing.Sequence[PySide2.QtPositioning.QGeoCoordinate]',)],
- "PySide2.QtLocation.QGeoRouteRequest.departureTime": (),
- "PySide2.QtLocation.QGeoRouteRequest.excludeAreas": (),
- "PySide2.QtLocation.QGeoRouteRequest.extraParameters": (),
- "PySide2.QtLocation.QGeoRouteRequest.featureTypes": (),
- "PySide2.QtLocation.QGeoRouteRequest.featureWeight": ('PySide2.QtLocation.QGeoRouteRequest.FeatureType',),
- "PySide2.QtLocation.QGeoRouteRequest.maneuverDetail": (),
- "PySide2.QtLocation.QGeoRouteRequest.numberAlternativeRoutes": (),
- "PySide2.QtLocation.QGeoRouteRequest.routeOptimization": (),
- "PySide2.QtLocation.QGeoRouteRequest.segmentDetail": (),
- "PySide2.QtLocation.QGeoRouteRequest.setDepartureTime": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtLocation.QGeoRouteRequest.setExcludeAreas": ('typing.Sequence[PySide2.QtPositioning.QGeoRectangle]',),
- "PySide2.QtLocation.QGeoRouteRequest.setExtraParameters": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtLocation.QGeoRouteRequest.setFeatureWeight": ('PySide2.QtLocation.QGeoRouteRequest.FeatureType', 'PySide2.QtLocation.QGeoRouteRequest.FeatureWeight'),
- "PySide2.QtLocation.QGeoRouteRequest.setManeuverDetail": ('PySide2.QtLocation.QGeoRouteRequest.ManeuverDetail',),
- "PySide2.QtLocation.QGeoRouteRequest.setNumberAlternativeRoutes": ('int',),
- "PySide2.QtLocation.QGeoRouteRequest.setRouteOptimization": ('PySide2.QtLocation.QGeoRouteRequest.RouteOptimizations',),
- "PySide2.QtLocation.QGeoRouteRequest.setSegmentDetail": ('PySide2.QtLocation.QGeoRouteRequest.SegmentDetail',),
- "PySide2.QtLocation.QGeoRouteRequest.setTravelModes": ('PySide2.QtLocation.QGeoRouteRequest.TravelModes',),
- "PySide2.QtLocation.QGeoRouteRequest.setWaypoints": ('typing.Sequence[PySide2.QtPositioning.QGeoCoordinate]',),
- "PySide2.QtLocation.QGeoRouteRequest.setWaypointsMetadata": ('typing.Sequence[typing.Dict]',),
- "PySide2.QtLocation.QGeoRouteRequest.travelModes": (),
- "PySide2.QtLocation.QGeoRouteRequest.waypoints": (),
- "PySide2.QtLocation.QGeoRouteRequest.waypointsMetadata": (),
-# class PySide2.QtLocation.QGeoRouteSegment:
- "PySide2.QtLocation.QGeoRouteSegment.__init__": [(), ('PySide2.QtLocation.QGeoRouteSegment',)],
- "PySide2.QtLocation.QGeoRouteSegment.__copy__": (),
- "PySide2.QtLocation.QGeoRouteSegment.distance": (),
- "PySide2.QtLocation.QGeoRouteSegment.isLegLastSegment": (),
- "PySide2.QtLocation.QGeoRouteSegment.isValid": (),
- "PySide2.QtLocation.QGeoRouteSegment.maneuver": (),
- "PySide2.QtLocation.QGeoRouteSegment.nextRouteSegment": (),
- "PySide2.QtLocation.QGeoRouteSegment.path": (),
- "PySide2.QtLocation.QGeoRouteSegment.setDistance": ('float',),
- "PySide2.QtLocation.QGeoRouteSegment.setManeuver": ('PySide2.QtLocation.QGeoManeuver',),
- "PySide2.QtLocation.QGeoRouteSegment.setNextRouteSegment": ('PySide2.QtLocation.QGeoRouteSegment',),
- "PySide2.QtLocation.QGeoRouteSegment.setPath": ('typing.Sequence[PySide2.QtPositioning.QGeoCoordinate]',),
- "PySide2.QtLocation.QGeoRouteSegment.setTravelTime": ('int',),
- "PySide2.QtLocation.QGeoRouteSegment.travelTime": (),
-# class PySide2.QtLocation.QGeoRoutingManager:
- "PySide2.QtLocation.QGeoRoutingManager.calculateRoute": ('PySide2.QtLocation.QGeoRouteRequest',),
- "PySide2.QtLocation.QGeoRoutingManager.locale": (),
- "PySide2.QtLocation.QGeoRoutingManager.managerName": (),
- "PySide2.QtLocation.QGeoRoutingManager.managerVersion": (),
- "PySide2.QtLocation.QGeoRoutingManager.measurementSystem": (),
- "PySide2.QtLocation.QGeoRoutingManager.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtLocation.QGeoRoutingManager.setMeasurementSystem": ('PySide2.QtCore.QLocale.MeasurementSystem',),
- "PySide2.QtLocation.QGeoRoutingManager.supportedFeatureTypes": (),
- "PySide2.QtLocation.QGeoRoutingManager.supportedFeatureWeights": (),
- "PySide2.QtLocation.QGeoRoutingManager.supportedManeuverDetails": (),
- "PySide2.QtLocation.QGeoRoutingManager.supportedRouteOptimizations": (),
- "PySide2.QtLocation.QGeoRoutingManager.supportedSegmentDetails": (),
- "PySide2.QtLocation.QGeoRoutingManager.supportedTravelModes": (),
- "PySide2.QtLocation.QGeoRoutingManager.updateRoute": ('PySide2.QtLocation.QGeoRoute', 'PySide2.QtPositioning.QGeoCoordinate'),
-# class PySide2.QtLocation.QGeoRoutingManagerEngine:
- "PySide2.QtLocation.QGeoRoutingManagerEngine.__init__": ('typing.Dict[str, typing.Any]', 'PySide2.QtCore.QObject'),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.calculateRoute": ('PySide2.QtLocation.QGeoRouteRequest',),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.locale": (),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.managerName": (),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.managerVersion": (),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.measurementSystem": (),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.setMeasurementSystem": ('PySide2.QtCore.QLocale.MeasurementSystem',),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.setSupportedFeatureTypes": ('PySide2.QtLocation.QGeoRouteRequest.FeatureTypes',),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.setSupportedFeatureWeights": ('PySide2.QtLocation.QGeoRouteRequest.FeatureWeights',),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.setSupportedManeuverDetails": ('PySide2.QtLocation.QGeoRouteRequest.ManeuverDetails',),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.setSupportedRouteOptimizations": ('PySide2.QtLocation.QGeoRouteRequest.RouteOptimizations',),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.setSupportedSegmentDetails": ('PySide2.QtLocation.QGeoRouteRequest.SegmentDetails',),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.setSupportedTravelModes": ('PySide2.QtLocation.QGeoRouteRequest.TravelModes',),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.supportedFeatureTypes": (),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.supportedFeatureWeights": (),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.supportedManeuverDetails": (),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.supportedRouteOptimizations": (),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.supportedSegmentDetails": (),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.supportedTravelModes": (),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.updateRoute": ('PySide2.QtLocation.QGeoRoute', 'PySide2.QtPositioning.QGeoCoordinate'),
-# class PySide2.QtLocation.QGeoServiceProvider:
-# class PySide2.QtLocation.QGeoServiceProvider.Error:
-# class PySide2.QtLocation.QGeoServiceProvider.GeocodingFeature:
-# class PySide2.QtLocation.QGeoServiceProvider.GeocodingFeatures:
-# class PySide2.QtLocation.QGeoServiceProvider.MappingFeature:
-# class PySide2.QtLocation.QGeoServiceProvider.MappingFeatures:
-# class PySide2.QtLocation.QGeoServiceProvider.NavigationFeature:
-# class PySide2.QtLocation.QGeoServiceProvider.NavigationFeatures:
-# class PySide2.QtLocation.QGeoServiceProvider.PlacesFeature:
-# class PySide2.QtLocation.QGeoServiceProvider.PlacesFeatures:
-# class PySide2.QtLocation.QGeoServiceProvider.RoutingFeature:
-# class PySide2.QtLocation.QGeoServiceProvider.RoutingFeatures:
- "PySide2.QtLocation.QGeoServiceProvider.__init__": ('str', 'typing.Dict[str, typing.Any]', 'bool'),
- "PySide2.QtLocation.QGeoServiceProvider.availableServiceProviders": (),
- "PySide2.QtLocation.QGeoServiceProvider.error": (),
- "PySide2.QtLocation.QGeoServiceProvider.errorString": (),
- "PySide2.QtLocation.QGeoServiceProvider.geocodingError": (),
- "PySide2.QtLocation.QGeoServiceProvider.geocodingErrorString": (),
- "PySide2.QtLocation.QGeoServiceProvider.geocodingFeatures": (),
- "PySide2.QtLocation.QGeoServiceProvider.geocodingManager": (),
- "PySide2.QtLocation.QGeoServiceProvider.mappingError": (),
- "PySide2.QtLocation.QGeoServiceProvider.mappingErrorString": (),
- "PySide2.QtLocation.QGeoServiceProvider.mappingFeatures": (),
- "PySide2.QtLocation.QGeoServiceProvider.navigationError": (),
- "PySide2.QtLocation.QGeoServiceProvider.navigationErrorString": (),
- "PySide2.QtLocation.QGeoServiceProvider.navigationFeatures": (),
- "PySide2.QtLocation.QGeoServiceProvider.placeManager": (),
- "PySide2.QtLocation.QGeoServiceProvider.placesError": (),
- "PySide2.QtLocation.QGeoServiceProvider.placesErrorString": (),
- "PySide2.QtLocation.QGeoServiceProvider.placesFeatures": (),
- "PySide2.QtLocation.QGeoServiceProvider.routingError": (),
- "PySide2.QtLocation.QGeoServiceProvider.routingErrorString": (),
- "PySide2.QtLocation.QGeoServiceProvider.routingFeatures": (),
- "PySide2.QtLocation.QGeoServiceProvider.routingManager": (),
- "PySide2.QtLocation.QGeoServiceProvider.setAllowExperimental": ('bool',),
- "PySide2.QtLocation.QGeoServiceProvider.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtLocation.QGeoServiceProvider.setParameters": ('typing.Dict[str, typing.Any]',),
-# class PySide2.QtLocation.QGeoServiceProviderFactory:
- "PySide2.QtLocation.QGeoServiceProviderFactory.__init__": (),
- "PySide2.QtLocation.QGeoServiceProviderFactory.createGeocodingManagerEngine": ('typing.Dict[str, typing.Any]', 'PySide2.QtLocation.QGeoServiceProvider.Error'),
- "PySide2.QtLocation.QGeoServiceProviderFactory.createPlaceManagerEngine": ('typing.Dict[str, typing.Any]', 'PySide2.QtLocation.QGeoServiceProvider.Error'),
- "PySide2.QtLocation.QGeoServiceProviderFactory.createRoutingManagerEngine": ('typing.Dict[str, typing.Any]', 'PySide2.QtLocation.QGeoServiceProvider.Error'),
-# class PySide2.QtLocation.QGeoServiceProviderFactoryV2:
- "PySide2.QtLocation.QGeoServiceProviderFactoryV2.__init__": (),
-# class PySide2.QtLocation.QPlace:
- "PySide2.QtLocation.QPlace.__init__": [(), ('PySide2.QtLocation.QPlace',)],
- "PySide2.QtLocation.QPlace.__copy__": (),
- "PySide2.QtLocation.QPlace.appendContactDetail": ('str', 'PySide2.QtLocation.QPlaceContactDetail'),
- "PySide2.QtLocation.QPlace.attribution": (),
- "PySide2.QtLocation.QPlace.categories": (),
- "PySide2.QtLocation.QPlace.contactDetails": ('str',),
- "PySide2.QtLocation.QPlace.contactTypes": (),
- "PySide2.QtLocation.QPlace.content": ('PySide2.QtLocation.QPlaceContent.Type',),
- "PySide2.QtLocation.QPlace.detailsFetched": (),
- "PySide2.QtLocation.QPlace.extendedAttribute": ('str',),
- "PySide2.QtLocation.QPlace.extendedAttributeTypes": (),
- "PySide2.QtLocation.QPlace.icon": (),
- "PySide2.QtLocation.QPlace.insertContent": ('PySide2.QtLocation.QPlaceContent.Type', 'typing.Dict[int, PySide2.QtLocation.QPlaceContent]'),
- "PySide2.QtLocation.QPlace.isEmpty": (),
- "PySide2.QtLocation.QPlace.location": (),
- "PySide2.QtLocation.QPlace.name": (),
- "PySide2.QtLocation.QPlace.placeId": (),
- "PySide2.QtLocation.QPlace.primaryEmail": (),
- "PySide2.QtLocation.QPlace.primaryFax": (),
- "PySide2.QtLocation.QPlace.primaryPhone": (),
- "PySide2.QtLocation.QPlace.primaryWebsite": (),
- "PySide2.QtLocation.QPlace.ratings": (),
- "PySide2.QtLocation.QPlace.removeContactDetails": ('str',),
- "PySide2.QtLocation.QPlace.removeExtendedAttribute": ('str',),
- "PySide2.QtLocation.QPlace.setAttribution": ('str',),
- "PySide2.QtLocation.QPlace.setCategories": ('typing.Sequence[PySide2.QtLocation.QPlaceCategory]',),
- "PySide2.QtLocation.QPlace.setCategory": ('PySide2.QtLocation.QPlaceCategory',),
- "PySide2.QtLocation.QPlace.setContactDetails": ('str', 'typing.Sequence[PySide2.QtLocation.QPlaceContactDetail]'),
- "PySide2.QtLocation.QPlace.setContent": ('PySide2.QtLocation.QPlaceContent.Type', 'typing.Dict[int, PySide2.QtLocation.QPlaceContent]'),
- "PySide2.QtLocation.QPlace.setDetailsFetched": ('bool',),
- "PySide2.QtLocation.QPlace.setExtendedAttribute": ('str', 'PySide2.QtLocation.QPlaceAttribute'),
- "PySide2.QtLocation.QPlace.setIcon": ('PySide2.QtLocation.QPlaceIcon',),
- "PySide2.QtLocation.QPlace.setLocation": ('PySide2.QtPositioning.QGeoLocation',),
- "PySide2.QtLocation.QPlace.setName": ('str',),
- "PySide2.QtLocation.QPlace.setPlaceId": ('str',),
- "PySide2.QtLocation.QPlace.setRatings": ('PySide2.QtLocation.QPlaceRatings',),
- "PySide2.QtLocation.QPlace.setSupplier": ('PySide2.QtLocation.QPlaceSupplier',),
- "PySide2.QtLocation.QPlace.setTotalContentCount": ('PySide2.QtLocation.QPlaceContent.Type', 'int'),
- "PySide2.QtLocation.QPlace.supplier": (),
- "PySide2.QtLocation.QPlace.totalContentCount": ('PySide2.QtLocation.QPlaceContent.Type',),
-# class PySide2.QtLocation.QPlaceAttribute:
- "PySide2.QtLocation.QPlaceAttribute.__init__": [(), ('PySide2.QtLocation.QPlaceAttribute',)],
- "PySide2.QtLocation.QPlaceAttribute.__copy__": (),
- "PySide2.QtLocation.QPlaceAttribute.isEmpty": (),
- "PySide2.QtLocation.QPlaceAttribute.label": (),
- "PySide2.QtLocation.QPlaceAttribute.setLabel": ('str',),
- "PySide2.QtLocation.QPlaceAttribute.setText": ('str',),
- "PySide2.QtLocation.QPlaceAttribute.text": (),
-# class PySide2.QtLocation.QPlaceCategory:
- "PySide2.QtLocation.QPlaceCategory.__init__": [(), ('PySide2.QtLocation.QPlaceCategory',)],
- "PySide2.QtLocation.QPlaceCategory.__copy__": (),
- "PySide2.QtLocation.QPlaceCategory.categoryId": (),
- "PySide2.QtLocation.QPlaceCategory.icon": (),
- "PySide2.QtLocation.QPlaceCategory.isEmpty": (),
- "PySide2.QtLocation.QPlaceCategory.name": (),
- "PySide2.QtLocation.QPlaceCategory.setCategoryId": ('str',),
- "PySide2.QtLocation.QPlaceCategory.setIcon": ('PySide2.QtLocation.QPlaceIcon',),
- "PySide2.QtLocation.QPlaceCategory.setName": ('str',),
-# class PySide2.QtLocation.QPlaceContactDetail:
- "PySide2.QtLocation.QPlaceContactDetail.__init__": [(), ('PySide2.QtLocation.QPlaceContactDetail',)],
- "PySide2.QtLocation.QPlaceContactDetail.__copy__": (),
- "PySide2.QtLocation.QPlaceContactDetail.clear": (),
- "PySide2.QtLocation.QPlaceContactDetail.label": (),
- "PySide2.QtLocation.QPlaceContactDetail.setLabel": ('str',),
- "PySide2.QtLocation.QPlaceContactDetail.setValue": ('str',),
- "PySide2.QtLocation.QPlaceContactDetail.value": (),
-# class PySide2.QtLocation.QPlaceContent:
-# class PySide2.QtLocation.QPlaceContent.Type:
- "PySide2.QtLocation.QPlaceContent.__init__": [(), ('PySide2.QtLocation.QPlaceContent',)],
- "PySide2.QtLocation.QPlaceContent.__copy__": (),
- "PySide2.QtLocation.QPlaceContent.attribution": (),
- "PySide2.QtLocation.QPlaceContent.setAttribution": ('str',),
- "PySide2.QtLocation.QPlaceContent.setSupplier": ('PySide2.QtLocation.QPlaceSupplier',),
- "PySide2.QtLocation.QPlaceContent.setUser": ('PySide2.QtLocation.QPlaceUser',),
- "PySide2.QtLocation.QPlaceContent.supplier": (),
- "PySide2.QtLocation.QPlaceContent.type": (),
- "PySide2.QtLocation.QPlaceContent.user": (),
-# class PySide2.QtLocation.QPlaceContentReply:
- "PySide2.QtLocation.QPlaceContentReply.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtLocation.QPlaceContentReply.content": (),
- "PySide2.QtLocation.QPlaceContentReply.nextPageRequest": (),
- "PySide2.QtLocation.QPlaceContentReply.previousPageRequest": (),
- "PySide2.QtLocation.QPlaceContentReply.request": (),
- "PySide2.QtLocation.QPlaceContentReply.setContent": ('typing.Dict[int, PySide2.QtLocation.QPlaceContent]',),
- "PySide2.QtLocation.QPlaceContentReply.setNextPageRequest": ('PySide2.QtLocation.QPlaceContentRequest',),
- "PySide2.QtLocation.QPlaceContentReply.setPreviousPageRequest": ('PySide2.QtLocation.QPlaceContentRequest',),
- "PySide2.QtLocation.QPlaceContentReply.setRequest": ('PySide2.QtLocation.QPlaceContentRequest',),
- "PySide2.QtLocation.QPlaceContentReply.setTotalCount": ('int',),
- "PySide2.QtLocation.QPlaceContentReply.totalCount": (),
- "PySide2.QtLocation.QPlaceContentReply.type": (),
-# class PySide2.QtLocation.QPlaceContentRequest:
- "PySide2.QtLocation.QPlaceContentRequest.__init__": [(), ('PySide2.QtLocation.QPlaceContentRequest',)],
- "PySide2.QtLocation.QPlaceContentRequest.__copy__": (),
- "PySide2.QtLocation.QPlaceContentRequest.clear": (),
- "PySide2.QtLocation.QPlaceContentRequest.contentContext": (),
- "PySide2.QtLocation.QPlaceContentRequest.contentType": (),
- "PySide2.QtLocation.QPlaceContentRequest.limit": (),
- "PySide2.QtLocation.QPlaceContentRequest.placeId": (),
- "PySide2.QtLocation.QPlaceContentRequest.setContentContext": ('typing.Any',),
- "PySide2.QtLocation.QPlaceContentRequest.setContentType": ('PySide2.QtLocation.QPlaceContent.Type',),
- "PySide2.QtLocation.QPlaceContentRequest.setLimit": ('int',),
- "PySide2.QtLocation.QPlaceContentRequest.setPlaceId": ('str',),
-# class PySide2.QtLocation.QPlaceDetailsReply:
- "PySide2.QtLocation.QPlaceDetailsReply.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtLocation.QPlaceDetailsReply.place": (),
- "PySide2.QtLocation.QPlaceDetailsReply.setPlace": ('PySide2.QtLocation.QPlace',),
- "PySide2.QtLocation.QPlaceDetailsReply.type": (),
-# class PySide2.QtLocation.QPlaceEditorial:
- "PySide2.QtLocation.QPlaceEditorial.__init__": [(), ('PySide2.QtLocation.QPlaceContent',)],
- "PySide2.QtLocation.QPlaceEditorial.language": (),
- "PySide2.QtLocation.QPlaceEditorial.setLanguage": ('str',),
- "PySide2.QtLocation.QPlaceEditorial.setText": ('str',),
- "PySide2.QtLocation.QPlaceEditorial.setTitle": ('str',),
- "PySide2.QtLocation.QPlaceEditorial.text": (),
- "PySide2.QtLocation.QPlaceEditorial.title": (),
-# class PySide2.QtLocation.QPlaceIcon:
- "PySide2.QtLocation.QPlaceIcon.__init__": [(), ('PySide2.QtLocation.QPlaceIcon',)],
- "PySide2.QtLocation.QPlaceIcon.__copy__": (),
- "PySide2.QtLocation.QPlaceIcon.isEmpty": (),
- "PySide2.QtLocation.QPlaceIcon.manager": (),
- "PySide2.QtLocation.QPlaceIcon.parameters": (),
- "PySide2.QtLocation.QPlaceIcon.setManager": ('PySide2.QtLocation.QPlaceManager',),
- "PySide2.QtLocation.QPlaceIcon.setParameters": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtLocation.QPlaceIcon.url": ('PySide2.QtCore.QSize',),
-# class PySide2.QtLocation.QPlaceIdReply:
-# class PySide2.QtLocation.QPlaceIdReply.OperationType:
- "PySide2.QtLocation.QPlaceIdReply.__init__": ('PySide2.QtLocation.QPlaceIdReply.OperationType', 'PySide2.QtCore.QObject'),
- "PySide2.QtLocation.QPlaceIdReply.id": (),
- "PySide2.QtLocation.QPlaceIdReply.operationType": (),
- "PySide2.QtLocation.QPlaceIdReply.setId": ('str',),
- "PySide2.QtLocation.QPlaceIdReply.type": (),
-# class PySide2.QtLocation.QPlaceImage:
- "PySide2.QtLocation.QPlaceImage.__init__": [(), ('PySide2.QtLocation.QPlaceContent',)],
- "PySide2.QtLocation.QPlaceImage.imageId": (),
- "PySide2.QtLocation.QPlaceImage.mimeType": (),
- "PySide2.QtLocation.QPlaceImage.setImageId": ('str',),
- "PySide2.QtLocation.QPlaceImage.setMimeType": ('str',),
- "PySide2.QtLocation.QPlaceImage.setUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtLocation.QPlaceImage.url": (),
-# class PySide2.QtLocation.QPlaceManager:
- "PySide2.QtLocation.QPlaceManager.category": ('str',),
- "PySide2.QtLocation.QPlaceManager.childCategories": ('str',),
- "PySide2.QtLocation.QPlaceManager.childCategoryIds": ('str',),
- "PySide2.QtLocation.QPlaceManager.compatiblePlace": ('PySide2.QtLocation.QPlace',),
- "PySide2.QtLocation.QPlaceManager.getPlaceContent": ('PySide2.QtLocation.QPlaceContentRequest',),
- "PySide2.QtLocation.QPlaceManager.getPlaceDetails": ('str',),
- "PySide2.QtLocation.QPlaceManager.initializeCategories": (),
- "PySide2.QtLocation.QPlaceManager.locales": (),
- "PySide2.QtLocation.QPlaceManager.managerName": (),
- "PySide2.QtLocation.QPlaceManager.managerVersion": (),
- "PySide2.QtLocation.QPlaceManager.matchingPlaces": ('PySide2.QtLocation.QPlaceMatchRequest',),
- "PySide2.QtLocation.QPlaceManager.parentCategoryId": ('str',),
- "PySide2.QtLocation.QPlaceManager.removeCategory": ('str',),
- "PySide2.QtLocation.QPlaceManager.removePlace": ('str',),
- "PySide2.QtLocation.QPlaceManager.saveCategory": ('PySide2.QtLocation.QPlaceCategory', 'str'),
- "PySide2.QtLocation.QPlaceManager.savePlace": ('PySide2.QtLocation.QPlace',),
- "PySide2.QtLocation.QPlaceManager.search": ('PySide2.QtLocation.QPlaceSearchRequest',),
- "PySide2.QtLocation.QPlaceManager.searchSuggestions": ('PySide2.QtLocation.QPlaceSearchRequest',),
- "PySide2.QtLocation.QPlaceManager.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtLocation.QPlaceManager.setLocales": ('typing.Sequence[PySide2.QtCore.QLocale]',),
-# class PySide2.QtLocation.QPlaceManagerEngine:
- "PySide2.QtLocation.QPlaceManagerEngine.__init__": ('typing.Dict[str, typing.Any]', 'PySide2.QtCore.QObject'),
- "PySide2.QtLocation.QPlaceManagerEngine.category": ('str',),
- "PySide2.QtLocation.QPlaceManagerEngine.childCategories": ('str',),
- "PySide2.QtLocation.QPlaceManagerEngine.childCategoryIds": ('str',),
- "PySide2.QtLocation.QPlaceManagerEngine.compatiblePlace": ('PySide2.QtLocation.QPlace',),
- "PySide2.QtLocation.QPlaceManagerEngine.constructIconUrl": ('PySide2.QtLocation.QPlaceIcon', 'PySide2.QtCore.QSize'),
- "PySide2.QtLocation.QPlaceManagerEngine.getPlaceContent": ('PySide2.QtLocation.QPlaceContentRequest',),
- "PySide2.QtLocation.QPlaceManagerEngine.getPlaceDetails": ('str',),
- "PySide2.QtLocation.QPlaceManagerEngine.initializeCategories": (),
- "PySide2.QtLocation.QPlaceManagerEngine.locales": (),
- "PySide2.QtLocation.QPlaceManagerEngine.manager": (),
- "PySide2.QtLocation.QPlaceManagerEngine.managerName": (),
- "PySide2.QtLocation.QPlaceManagerEngine.managerVersion": (),
- "PySide2.QtLocation.QPlaceManagerEngine.matchingPlaces": ('PySide2.QtLocation.QPlaceMatchRequest',),
- "PySide2.QtLocation.QPlaceManagerEngine.parentCategoryId": ('str',),
- "PySide2.QtLocation.QPlaceManagerEngine.removeCategory": ('str',),
- "PySide2.QtLocation.QPlaceManagerEngine.removePlace": ('str',),
- "PySide2.QtLocation.QPlaceManagerEngine.saveCategory": ('PySide2.QtLocation.QPlaceCategory', 'str'),
- "PySide2.QtLocation.QPlaceManagerEngine.savePlace": ('PySide2.QtLocation.QPlace',),
- "PySide2.QtLocation.QPlaceManagerEngine.search": ('PySide2.QtLocation.QPlaceSearchRequest',),
- "PySide2.QtLocation.QPlaceManagerEngine.searchSuggestions": ('PySide2.QtLocation.QPlaceSearchRequest',),
- "PySide2.QtLocation.QPlaceManagerEngine.setLocales": ('typing.Sequence[PySide2.QtCore.QLocale]',),
-# class PySide2.QtLocation.QPlaceMatchReply:
- "PySide2.QtLocation.QPlaceMatchReply.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtLocation.QPlaceMatchReply.places": (),
- "PySide2.QtLocation.QPlaceMatchReply.request": (),
- "PySide2.QtLocation.QPlaceMatchReply.setPlaces": ('typing.Sequence[PySide2.QtLocation.QPlace]',),
- "PySide2.QtLocation.QPlaceMatchReply.setRequest": ('PySide2.QtLocation.QPlaceMatchRequest',),
- "PySide2.QtLocation.QPlaceMatchReply.type": (),
-# class PySide2.QtLocation.QPlaceMatchRequest:
- "PySide2.QtLocation.QPlaceMatchRequest.__init__": [(), ('PySide2.QtLocation.QPlaceMatchRequest',)],
- "PySide2.QtLocation.QPlaceMatchRequest.__copy__": (),
- "PySide2.QtLocation.QPlaceMatchRequest.clear": (),
- "PySide2.QtLocation.QPlaceMatchRequest.parameters": (),
- "PySide2.QtLocation.QPlaceMatchRequest.places": (),
- "PySide2.QtLocation.QPlaceMatchRequest.setParameters": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtLocation.QPlaceMatchRequest.setPlaces": ('typing.Sequence[PySide2.QtLocation.QPlace]',),
- "PySide2.QtLocation.QPlaceMatchRequest.setResults": ('typing.Sequence[PySide2.QtLocation.QPlaceSearchResult]',),
-# class PySide2.QtLocation.QPlaceProposedSearchResult:
- "PySide2.QtLocation.QPlaceProposedSearchResult.__init__": [(), ('PySide2.QtLocation.QPlaceSearchResult',)],
- "PySide2.QtLocation.QPlaceProposedSearchResult.searchRequest": (),
- "PySide2.QtLocation.QPlaceProposedSearchResult.setSearchRequest": ('PySide2.QtLocation.QPlaceSearchRequest',),
-# class PySide2.QtLocation.QPlaceRatings:
- "PySide2.QtLocation.QPlaceRatings.__init__": [(), ('PySide2.QtLocation.QPlaceRatings',)],
- "PySide2.QtLocation.QPlaceRatings.__copy__": (),
- "PySide2.QtLocation.QPlaceRatings.average": (),
- "PySide2.QtLocation.QPlaceRatings.count": (),
- "PySide2.QtLocation.QPlaceRatings.isEmpty": (),
- "PySide2.QtLocation.QPlaceRatings.maximum": (),
- "PySide2.QtLocation.QPlaceRatings.setAverage": ('float',),
- "PySide2.QtLocation.QPlaceRatings.setCount": ('int',),
- "PySide2.QtLocation.QPlaceRatings.setMaximum": ('float',),
-# class PySide2.QtLocation.QPlaceReply:
-# class PySide2.QtLocation.QPlaceReply.Error:
-# class PySide2.QtLocation.QPlaceReply.Type:
- "PySide2.QtLocation.QPlaceReply.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtLocation.QPlaceReply.abort": (),
- "PySide2.QtLocation.QPlaceReply.error": (),
- "PySide2.QtLocation.QPlaceReply.errorString": (),
- "PySide2.QtLocation.QPlaceReply.isFinished": (),
- "PySide2.QtLocation.QPlaceReply.setError": ('PySide2.QtLocation.QPlaceReply.Error', 'str'),
- "PySide2.QtLocation.QPlaceReply.setFinished": ('bool',),
- "PySide2.QtLocation.QPlaceReply.type": (),
-# class PySide2.QtLocation.QPlaceResult:
- "PySide2.QtLocation.QPlaceResult.__init__": [(), ('PySide2.QtLocation.QPlaceSearchResult',)],
- "PySide2.QtLocation.QPlaceResult.distance": (),
- "PySide2.QtLocation.QPlaceResult.isSponsored": (),
- "PySide2.QtLocation.QPlaceResult.place": (),
- "PySide2.QtLocation.QPlaceResult.setDistance": ('float',),
- "PySide2.QtLocation.QPlaceResult.setPlace": ('PySide2.QtLocation.QPlace',),
- "PySide2.QtLocation.QPlaceResult.setSponsored": ('bool',),
-# class PySide2.QtLocation.QPlaceReview:
- "PySide2.QtLocation.QPlaceReview.__init__": [(), ('PySide2.QtLocation.QPlaceContent',)],
- "PySide2.QtLocation.QPlaceReview.dateTime": (),
- "PySide2.QtLocation.QPlaceReview.language": (),
- "PySide2.QtLocation.QPlaceReview.rating": (),
- "PySide2.QtLocation.QPlaceReview.reviewId": (),
- "PySide2.QtLocation.QPlaceReview.setDateTime": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtLocation.QPlaceReview.setLanguage": ('str',),
- "PySide2.QtLocation.QPlaceReview.setRating": ('float',),
- "PySide2.QtLocation.QPlaceReview.setReviewId": ('str',),
- "PySide2.QtLocation.QPlaceReview.setText": ('str',),
- "PySide2.QtLocation.QPlaceReview.setTitle": ('str',),
- "PySide2.QtLocation.QPlaceReview.text": (),
- "PySide2.QtLocation.QPlaceReview.title": (),
-# class PySide2.QtLocation.QPlaceSearchReply:
- "PySide2.QtLocation.QPlaceSearchReply.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtLocation.QPlaceSearchReply.nextPageRequest": (),
- "PySide2.QtLocation.QPlaceSearchReply.previousPageRequest": (),
- "PySide2.QtLocation.QPlaceSearchReply.request": (),
- "PySide2.QtLocation.QPlaceSearchReply.results": (),
- "PySide2.QtLocation.QPlaceSearchReply.setNextPageRequest": ('PySide2.QtLocation.QPlaceSearchRequest',),
- "PySide2.QtLocation.QPlaceSearchReply.setPreviousPageRequest": ('PySide2.QtLocation.QPlaceSearchRequest',),
- "PySide2.QtLocation.QPlaceSearchReply.setRequest": ('PySide2.QtLocation.QPlaceSearchRequest',),
- "PySide2.QtLocation.QPlaceSearchReply.setResults": ('typing.Sequence[PySide2.QtLocation.QPlaceSearchResult]',),
- "PySide2.QtLocation.QPlaceSearchReply.type": (),
-# class PySide2.QtLocation.QPlaceSearchRequest:
-# class PySide2.QtLocation.QPlaceSearchRequest.RelevanceHint:
- "PySide2.QtLocation.QPlaceSearchRequest.__init__": [(), ('PySide2.QtLocation.QPlaceSearchRequest',)],
- "PySide2.QtLocation.QPlaceSearchRequest.categories": (),
- "PySide2.QtLocation.QPlaceSearchRequest.clear": (),
- "PySide2.QtLocation.QPlaceSearchRequest.limit": (),
- "PySide2.QtLocation.QPlaceSearchRequest.recommendationId": (),
- "PySide2.QtLocation.QPlaceSearchRequest.relevanceHint": (),
- "PySide2.QtLocation.QPlaceSearchRequest.searchArea": (),
- "PySide2.QtLocation.QPlaceSearchRequest.searchContext": (),
- "PySide2.QtLocation.QPlaceSearchRequest.searchTerm": (),
- "PySide2.QtLocation.QPlaceSearchRequest.setCategories": ('typing.Sequence[PySide2.QtLocation.QPlaceCategory]',),
- "PySide2.QtLocation.QPlaceSearchRequest.setCategory": ('PySide2.QtLocation.QPlaceCategory',),
- "PySide2.QtLocation.QPlaceSearchRequest.setLimit": ('int',),
- "PySide2.QtLocation.QPlaceSearchRequest.setRecommendationId": ('str',),
- "PySide2.QtLocation.QPlaceSearchRequest.setRelevanceHint": ('PySide2.QtLocation.QPlaceSearchRequest.RelevanceHint',),
- "PySide2.QtLocation.QPlaceSearchRequest.setSearchArea": ('PySide2.QtPositioning.QGeoShape',),
- "PySide2.QtLocation.QPlaceSearchRequest.setSearchContext": ('typing.Any',),
- "PySide2.QtLocation.QPlaceSearchRequest.setSearchTerm": ('str',),
-# class PySide2.QtLocation.QPlaceSearchResult:
-# class PySide2.QtLocation.QPlaceSearchResult.SearchResultType:
- "PySide2.QtLocation.QPlaceSearchResult.__init__": [(), ('PySide2.QtLocation.QPlaceSearchResult',)],
- "PySide2.QtLocation.QPlaceSearchResult.icon": (),
- "PySide2.QtLocation.QPlaceSearchResult.setIcon": ('PySide2.QtLocation.QPlaceIcon',),
- "PySide2.QtLocation.QPlaceSearchResult.setTitle": ('str',),
- "PySide2.QtLocation.QPlaceSearchResult.title": (),
- "PySide2.QtLocation.QPlaceSearchResult.type": (),
-# class PySide2.QtLocation.QPlaceSearchSuggestionReply:
- "PySide2.QtLocation.QPlaceSearchSuggestionReply.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtLocation.QPlaceSearchSuggestionReply.setSuggestions": ('typing.Sequence[str]',),
- "PySide2.QtLocation.QPlaceSearchSuggestionReply.suggestions": (),
- "PySide2.QtLocation.QPlaceSearchSuggestionReply.type": (),
-# class PySide2.QtLocation.QPlaceSupplier:
- "PySide2.QtLocation.QPlaceSupplier.__init__": [(), ('PySide2.QtLocation.QPlaceSupplier',)],
- "PySide2.QtLocation.QPlaceSupplier.__copy__": (),
- "PySide2.QtLocation.QPlaceSupplier.icon": (),
- "PySide2.QtLocation.QPlaceSupplier.isEmpty": (),
- "PySide2.QtLocation.QPlaceSupplier.name": (),
- "PySide2.QtLocation.QPlaceSupplier.setIcon": ('PySide2.QtLocation.QPlaceIcon',),
- "PySide2.QtLocation.QPlaceSupplier.setName": ('str',),
- "PySide2.QtLocation.QPlaceSupplier.setSupplierId": ('str',),
- "PySide2.QtLocation.QPlaceSupplier.setUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtLocation.QPlaceSupplier.supplierId": (),
- "PySide2.QtLocation.QPlaceSupplier.url": (),
-# class PySide2.QtLocation.QPlaceUser:
- "PySide2.QtLocation.QPlaceUser.__init__": [(), ('PySide2.QtLocation.QPlaceUser',)],
- "PySide2.QtLocation.QPlaceUser.__copy__": (),
- "PySide2.QtLocation.QPlaceUser.name": (),
- "PySide2.QtLocation.QPlaceUser.setName": ('str',),
- "PySide2.QtLocation.QPlaceUser.setUserId": ('str',),
- "PySide2.QtLocation.QPlaceUser.userId": (),
- }) if "PySide2.QtLocation" in sys.modules else None
-# Module PySide2.QtQml
-sig_dict.update({
-# class PySide2.QtQml.ListProperty:
- "PySide2.QtQml.ListProperty.__init__": ('type', 'typing.Callable', 'typing.Callable', 'typing.Callable', 'typing.Callable'),
-# class PySide2.QtQml.QJSEngine:
-# class PySide2.QtQml.QJSEngine.Extension:
-# class PySide2.QtQml.QJSEngine.Extensions:
- "PySide2.QtQml.QJSEngine.__init__": [(), ('PySide2.QtCore.QObject',)],
- "PySide2.QtQml.QJSEngine.collectGarbage": (),
- "PySide2.QtQml.QJSEngine.evaluate": ('str', 'str', 'int'),
- "PySide2.QtQml.QJSEngine.globalObject": (),
- "PySide2.QtQml.QJSEngine.importModule": ('str',),
- "PySide2.QtQml.QJSEngine.installExtensions": ('PySide2.QtQml.QJSEngine.Extensions', 'PySide2.QtQml.QJSValue'),
- "PySide2.QtQml.QJSEngine.installTranslatorFunctions": ('PySide2.QtQml.QJSValue',),
- "PySide2.QtQml.QJSEngine.isInterrupted": (),
- "PySide2.QtQml.QJSEngine.newArray": ('int',),
- "PySide2.QtQml.QJSEngine.newErrorObject": ('PySide2.QtQml.QJSValue.ErrorType', 'str'),
- "PySide2.QtQml.QJSEngine.newObject": (),
- "PySide2.QtQml.QJSEngine.newQMetaObject": ('PySide2.QtCore.QMetaObject',),
- "PySide2.QtQml.QJSEngine.newQObject": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QJSEngine.setInterrupted": ('bool',),
- "PySide2.QtQml.QJSEngine.throwError": [('PySide2.QtQml.QJSValue.ErrorType', 'str'), ('str',)],
- "PySide2.QtQml.QJSEngine.toScriptValue": ('typing.Any',),
-# class PySide2.QtQml.QJSValue:
-# class PySide2.QtQml.QJSValue.ErrorType:
-# class PySide2.QtQml.QJSValue.SpecialValue:
- "PySide2.QtQml.QJSValue.__init__": [('PySide2.QtQml.QJSValue',), ('PySide2.QtQml.QJSValue.SpecialValue',), ('bool',), ('float',), ('int',), ('str',)],
- "PySide2.QtQml.QJSValue.__copy__": (),
- "PySide2.QtQml.QJSValue.call": ('typing.Sequence[PySide2.QtQml.QJSValue]',),
- "PySide2.QtQml.QJSValue.callAsConstructor": ('typing.Sequence[PySide2.QtQml.QJSValue]',),
- "PySide2.QtQml.QJSValue.callWithInstance": ('PySide2.QtQml.QJSValue', 'typing.Sequence[PySide2.QtQml.QJSValue]'),
- "PySide2.QtQml.QJSValue.deleteProperty": ('str',),
- "PySide2.QtQml.QJSValue.engine": (),
- "PySide2.QtQml.QJSValue.equals": ('PySide2.QtQml.QJSValue',),
- "PySide2.QtQml.QJSValue.errorType": (),
- "PySide2.QtQml.QJSValue.hasOwnProperty": ('str',),
- "PySide2.QtQml.QJSValue.hasProperty": ('str',),
- "PySide2.QtQml.QJSValue.isArray": (),
- "PySide2.QtQml.QJSValue.isBool": (),
- "PySide2.QtQml.QJSValue.isCallable": (),
- "PySide2.QtQml.QJSValue.isDate": (),
- "PySide2.QtQml.QJSValue.isError": (),
- "PySide2.QtQml.QJSValue.isNull": (),
- "PySide2.QtQml.QJSValue.isNumber": (),
- "PySide2.QtQml.QJSValue.isObject": (),
- "PySide2.QtQml.QJSValue.isQMetaObject": (),
- "PySide2.QtQml.QJSValue.isQObject": (),
- "PySide2.QtQml.QJSValue.isRegExp": (),
- "PySide2.QtQml.QJSValue.isString": (),
- "PySide2.QtQml.QJSValue.isUndefined": (),
- "PySide2.QtQml.QJSValue.isVariant": (),
- "PySide2.QtQml.QJSValue.property": [('int',), ('str',)],
- "PySide2.QtQml.QJSValue.prototype": (),
- "PySide2.QtQml.QJSValue.setProperty": [('int', 'PySide2.QtQml.QJSValue'), ('str', 'PySide2.QtQml.QJSValue')],
- "PySide2.QtQml.QJSValue.setPrototype": ('PySide2.QtQml.QJSValue',),
- "PySide2.QtQml.QJSValue.strictlyEquals": ('PySide2.QtQml.QJSValue',),
- "PySide2.QtQml.QJSValue.toBool": (),
- "PySide2.QtQml.QJSValue.toDateTime": (),
- "PySide2.QtQml.QJSValue.toInt": (),
- "PySide2.QtQml.QJSValue.toNumber": (),
- "PySide2.QtQml.QJSValue.toQMetaObject": (),
- "PySide2.QtQml.QJSValue.toQObject": (),
- "PySide2.QtQml.QJSValue.toString": (),
- "PySide2.QtQml.QJSValue.toUInt": (),
- "PySide2.QtQml.QJSValue.toVariant": (),
-# class PySide2.QtQml.QJSValueIterator:
- "PySide2.QtQml.QJSValueIterator.__init__": ('PySide2.QtQml.QJSValue',),
- "PySide2.QtQml.QJSValueIterator.hasNext": (),
- "PySide2.QtQml.QJSValueIterator.name": (),
- "PySide2.QtQml.QJSValueIterator.value": (),
-# class PySide2.QtQml.QQmlAbstractUrlInterceptor:
-# class PySide2.QtQml.QQmlAbstractUrlInterceptor.DataType:
- "PySide2.QtQml.QQmlAbstractUrlInterceptor.__init__": (),
- "PySide2.QtQml.QQmlAbstractUrlInterceptor.intercept": ('PySide2.QtCore.QUrl', 'PySide2.QtQml.QQmlAbstractUrlInterceptor.DataType'),
-# class PySide2.QtQml.QQmlApplicationEngine:
- "PySide2.QtQml.QQmlApplicationEngine.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtCore.QUrl', 'PySide2.QtCore.QObject'), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtQml.QQmlApplicationEngine.load": [('PySide2.QtCore.QUrl',), ('str',)],
- "PySide2.QtQml.QQmlApplicationEngine.loadData": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QUrl'),
- "PySide2.QtQml.QQmlApplicationEngine.rootObjects": (),
- "PySide2.QtQml.QQmlApplicationEngine.setInitialProperties": ('typing.Dict[str, typing.Any]',),
-# class PySide2.QtQml.QQmlComponent:
-# class PySide2.QtQml.QQmlComponent.CompilationMode:
-# class PySide2.QtQml.QQmlComponent.Status:
- "PySide2.QtQml.QQmlComponent.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtQml.QQmlEngine', 'PySide2.QtCore.QObject'), ('PySide2.QtQml.QQmlEngine', 'PySide2.QtCore.QUrl', 'PySide2.QtCore.QObject'), ('PySide2.QtQml.QQmlEngine', 'PySide2.QtCore.QUrl', 'PySide2.QtQml.QQmlComponent.CompilationMode', 'PySide2.QtCore.QObject'), ('PySide2.QtQml.QQmlEngine', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtQml.QQmlEngine', 'str', 'PySide2.QtQml.QQmlComponent.CompilationMode', 'PySide2.QtCore.QObject')],
- "PySide2.QtQml.QQmlComponent.beginCreate": ('PySide2.QtQml.QQmlContext',),
- "PySide2.QtQml.QQmlComponent.completeCreate": (),
- "PySide2.QtQml.QQmlComponent.create": [('PySide2.QtQml.QQmlContext',), ('PySide2.QtQml.QQmlIncubator', 'PySide2.QtQml.QQmlContext', 'PySide2.QtQml.QQmlContext')],
- "PySide2.QtQml.QQmlComponent.createWithInitialProperties": ('typing.Dict[str, typing.Any]', 'PySide2.QtQml.QQmlContext'),
- "PySide2.QtQml.QQmlComponent.creationContext": (),
- "PySide2.QtQml.QQmlComponent.engine": (),
- "PySide2.QtQml.QQmlComponent.errorString": (),
- "PySide2.QtQml.QQmlComponent.errors": (),
- "PySide2.QtQml.QQmlComponent.isError": (),
- "PySide2.QtQml.QQmlComponent.isLoading": (),
- "PySide2.QtQml.QQmlComponent.isNull": (),
- "PySide2.QtQml.QQmlComponent.isReady": (),
- "PySide2.QtQml.QQmlComponent.loadUrl": [('PySide2.QtCore.QUrl',), ('PySide2.QtCore.QUrl', 'PySide2.QtQml.QQmlComponent.CompilationMode')],
- "PySide2.QtQml.QQmlComponent.progress": (),
- "PySide2.QtQml.QQmlComponent.setData": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QUrl'),
- "PySide2.QtQml.QQmlComponent.setInitialProperties": ('PySide2.QtCore.QObject', 'typing.Dict[str, typing.Any]'),
- "PySide2.QtQml.QQmlComponent.status": (),
- "PySide2.QtQml.QQmlComponent.url": (),
-# class PySide2.QtQml.QQmlContext:
- "PySide2.QtQml.QQmlContext.__init__": [('PySide2.QtQml.QQmlContext', 'PySide2.QtCore.QObject'), ('PySide2.QtQml.QQmlEngine', 'PySide2.QtCore.QObject')],
- "PySide2.QtQml.QQmlContext.baseUrl": (),
- "PySide2.QtQml.QQmlContext.contextObject": (),
- "PySide2.QtQml.QQmlContext.contextProperty": ('str',),
- "PySide2.QtQml.QQmlContext.engine": (),
- "PySide2.QtQml.QQmlContext.isValid": (),
- "PySide2.QtQml.QQmlContext.nameForObject": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QQmlContext.parentContext": (),
- "PySide2.QtQml.QQmlContext.resolvedUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtQml.QQmlContext.setBaseUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtQml.QQmlContext.setContextObject": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QQmlContext.setContextProperty": [('str', 'PySide2.QtCore.QObject'), ('str', 'typing.Any')],
-# class PySide2.QtQml.QQmlDebuggingEnabler:
-# class PySide2.QtQml.QQmlDebuggingEnabler.StartMode:
- "PySide2.QtQml.QQmlDebuggingEnabler.__init__": ('bool',),
- "PySide2.QtQml.QQmlDebuggingEnabler.connectToLocalDebugger": ('str', 'PySide2.QtQml.QQmlDebuggingEnabler.StartMode'),
- "PySide2.QtQml.QQmlDebuggingEnabler.debuggerServices": (),
- "PySide2.QtQml.QQmlDebuggingEnabler.inspectorServices": (),
- "PySide2.QtQml.QQmlDebuggingEnabler.nativeDebuggerServices": (),
- "PySide2.QtQml.QQmlDebuggingEnabler.profilerServices": (),
- "PySide2.QtQml.QQmlDebuggingEnabler.setServices": ('typing.Sequence[str]',),
- "PySide2.QtQml.QQmlDebuggingEnabler.startDebugConnector": ('str', 'typing.Dict[str, typing.Any]'),
- "PySide2.QtQml.QQmlDebuggingEnabler.startTcpDebugServer": ('int', 'PySide2.QtQml.QQmlDebuggingEnabler.StartMode', 'str'),
-# class PySide2.QtQml.QQmlEngine:
-# class PySide2.QtQml.QQmlEngine.ObjectOwnership:
- "PySide2.QtQml.QQmlEngine.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QQmlEngine.addImageProvider": ('str', 'PySide2.QtQml.QQmlImageProviderBase'),
- "PySide2.QtQml.QQmlEngine.addImportPath": ('str',),
- "PySide2.QtQml.QQmlEngine.addNamedBundle": ('str', 'str'),
- "PySide2.QtQml.QQmlEngine.addPluginPath": ('str',),
- "PySide2.QtQml.QQmlEngine.baseUrl": (),
- "PySide2.QtQml.QQmlEngine.clearComponentCache": (),
- "PySide2.QtQml.QQmlEngine.contextForObject": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QQmlEngine.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtQml.QQmlEngine.imageProvider": ('str',),
- "PySide2.QtQml.QQmlEngine.importPathList": (),
- "PySide2.QtQml.QQmlEngine.importPlugin": ('str', 'str', 'typing.Sequence[PySide2.QtQml.QQmlError]'),
- "PySide2.QtQml.QQmlEngine.incubationController": (),
- "PySide2.QtQml.QQmlEngine.networkAccessManager": (),
- "PySide2.QtQml.QQmlEngine.networkAccessManagerFactory": (),
- "PySide2.QtQml.QQmlEngine.objectOwnership": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QQmlEngine.offlineStorageDatabaseFilePath": ('str',),
- "PySide2.QtQml.QQmlEngine.offlineStoragePath": (),
- "PySide2.QtQml.QQmlEngine.outputWarningsToStandardError": (),
- "PySide2.QtQml.QQmlEngine.pluginPathList": (),
- "PySide2.QtQml.QQmlEngine.removeImageProvider": ('str',),
- "PySide2.QtQml.QQmlEngine.retranslate": (),
- "PySide2.QtQml.QQmlEngine.rootContext": (),
- "PySide2.QtQml.QQmlEngine.setBaseUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtQml.QQmlEngine.setContextForObject": ('PySide2.QtCore.QObject', 'PySide2.QtQml.QQmlContext'),
- "PySide2.QtQml.QQmlEngine.setImportPathList": ('typing.Sequence[str]',),
- "PySide2.QtQml.QQmlEngine.setIncubationController": ('PySide2.QtQml.QQmlIncubationController',),
- "PySide2.QtQml.QQmlEngine.setNetworkAccessManagerFactory": ('PySide2.QtQml.QQmlNetworkAccessManagerFactory',),
- "PySide2.QtQml.QQmlEngine.setObjectOwnership": ('PySide2.QtCore.QObject', 'PySide2.QtQml.QQmlEngine.ObjectOwnership'),
- "PySide2.QtQml.QQmlEngine.setOfflineStoragePath": ('str',),
- "PySide2.QtQml.QQmlEngine.setOutputWarningsToStandardError": ('bool',),
- "PySide2.QtQml.QQmlEngine.setPluginPathList": ('typing.Sequence[str]',),
- "PySide2.QtQml.QQmlEngine.setUrlInterceptor": ('PySide2.QtQml.QQmlAbstractUrlInterceptor',),
- "PySide2.QtQml.QQmlEngine.trimComponentCache": (),
- "PySide2.QtQml.QQmlEngine.urlInterceptor": (),
-# class PySide2.QtQml.QQmlError:
- "PySide2.QtQml.QQmlError.__init__": [(), ('PySide2.QtQml.QQmlError',)],
- "PySide2.QtQml.QQmlError.__copy__": (),
- "PySide2.QtQml.QQmlError.column": (),
- "PySide2.QtQml.QQmlError.description": (),
- "PySide2.QtQml.QQmlError.isValid": (),
- "PySide2.QtQml.QQmlError.line": (),
- "PySide2.QtQml.QQmlError.messageType": (),
- "PySide2.QtQml.QQmlError.object": (),
- "PySide2.QtQml.QQmlError.setColumn": ('int',),
- "PySide2.QtQml.QQmlError.setDescription": ('str',),
- "PySide2.QtQml.QQmlError.setLine": ('int',),
- "PySide2.QtQml.QQmlError.setMessageType": ('PySide2.QtCore.QtMsgType',),
- "PySide2.QtQml.QQmlError.setObject": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QQmlError.setUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtQml.QQmlError.toString": (),
- "PySide2.QtQml.QQmlError.url": (),
-# class PySide2.QtQml.QQmlExpression:
- "PySide2.QtQml.QQmlExpression.__init__": [(), ('PySide2.QtQml.QQmlContext', 'PySide2.QtCore.QObject', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtQml.QQmlScriptString', 'PySide2.QtQml.QQmlContext', 'PySide2.QtCore.QObject', 'PySide2.QtCore.QObject')],
- "PySide2.QtQml.QQmlExpression.clearError": (),
- "PySide2.QtQml.QQmlExpression.columnNumber": (),
- "PySide2.QtQml.QQmlExpression.context": (),
- "PySide2.QtQml.QQmlExpression.engine": (),
- "PySide2.QtQml.QQmlExpression.error": (),
- "PySide2.QtQml.QQmlExpression.evaluate": (),
- "PySide2.QtQml.QQmlExpression.expression": (),
- "PySide2.QtQml.QQmlExpression.hasError": (),
- "PySide2.QtQml.QQmlExpression.lineNumber": (),
- "PySide2.QtQml.QQmlExpression.notifyOnValueChanged": (),
- "PySide2.QtQml.QQmlExpression.scopeObject": (),
- "PySide2.QtQml.QQmlExpression.setExpression": ('str',),
- "PySide2.QtQml.QQmlExpression.setNotifyOnValueChanged": ('bool',),
- "PySide2.QtQml.QQmlExpression.setSourceLocation": ('str', 'int', 'int'),
- "PySide2.QtQml.QQmlExpression.sourceFile": (),
-# class PySide2.QtQml.QQmlExtensionInterface:
- "PySide2.QtQml.QQmlExtensionInterface.__init__": (),
- "PySide2.QtQml.QQmlExtensionInterface.initializeEngine": ('PySide2.QtQml.QQmlEngine', 'str'),
-# class PySide2.QtQml.QQmlExtensionPlugin:
- "PySide2.QtQml.QQmlExtensionPlugin.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QQmlExtensionPlugin.baseUrl": (),
- "PySide2.QtQml.QQmlExtensionPlugin.initializeEngine": ('PySide2.QtQml.QQmlEngine', 'str'),
- "PySide2.QtQml.QQmlExtensionPlugin.registerTypes": ('str',),
-# class PySide2.QtQml.QQmlFile:
-# class PySide2.QtQml.QQmlFile.Status:
- "PySide2.QtQml.QQmlFile.__init__": [(), ('PySide2.QtQml.QQmlEngine', 'PySide2.QtCore.QUrl'), ('PySide2.QtQml.QQmlEngine', 'str')],
- "PySide2.QtQml.QQmlFile.clear": [(), ('PySide2.QtCore.QObject',)],
- "PySide2.QtQml.QQmlFile.connectDownloadProgress": [('PySide2.QtCore.QObject', 'int'), ('PySide2.QtCore.QObject', 'str')],
- "PySide2.QtQml.QQmlFile.connectFinished": [('PySide2.QtCore.QObject', 'int'), ('PySide2.QtCore.QObject', 'str')],
- "PySide2.QtQml.QQmlFile.data": (),
- "PySide2.QtQml.QQmlFile.dataByteArray": (),
- "PySide2.QtQml.QQmlFile.error": (),
- "PySide2.QtQml.QQmlFile.isError": (),
- "PySide2.QtQml.QQmlFile.isLoading": (),
- "PySide2.QtQml.QQmlFile.isLocalFile": [('PySide2.QtCore.QUrl',), ('str',)],
- "PySide2.QtQml.QQmlFile.isNull": (),
- "PySide2.QtQml.QQmlFile.isReady": (),
- "PySide2.QtQml.QQmlFile.isSynchronous": [('PySide2.QtCore.QUrl',), ('str',)],
- "PySide2.QtQml.QQmlFile.load": [('PySide2.QtQml.QQmlEngine', 'PySide2.QtCore.QUrl'), ('PySide2.QtQml.QQmlEngine', 'str')],
- "PySide2.QtQml.QQmlFile.size": (),
- "PySide2.QtQml.QQmlFile.status": (),
- "PySide2.QtQml.QQmlFile.url": (),
- "PySide2.QtQml.QQmlFile.urlToLocalFileOrQrc": [('PySide2.QtCore.QUrl',), ('str',)],
-# class PySide2.QtQml.QQmlFileSelector:
- "PySide2.QtQml.QQmlFileSelector.__init__": ('PySide2.QtQml.QQmlEngine', 'PySide2.QtCore.QObject'),
- "PySide2.QtQml.QQmlFileSelector.get": ('PySide2.QtQml.QQmlEngine',),
- "PySide2.QtQml.QQmlFileSelector.selector": (),
- "PySide2.QtQml.QQmlFileSelector.setExtraSelectors": ('typing.Sequence[str]',),
- "PySide2.QtQml.QQmlFileSelector.setSelector": ('PySide2.QtCore.QFileSelector',),
-# class PySide2.QtQml.QQmlImageProviderBase:
-# class PySide2.QtQml.QQmlImageProviderBase.Flag:
-# class PySide2.QtQml.QQmlImageProviderBase.Flags:
-# class PySide2.QtQml.QQmlImageProviderBase.ImageType:
- "PySide2.QtQml.QQmlImageProviderBase.flags": (),
- "PySide2.QtQml.QQmlImageProviderBase.imageType": (),
-# class PySide2.QtQml.QQmlIncubationController:
- "PySide2.QtQml.QQmlIncubationController.__init__": (),
- "PySide2.QtQml.QQmlIncubationController.engine": (),
- "PySide2.QtQml.QQmlIncubationController.incubateFor": ('int',),
- "PySide2.QtQml.QQmlIncubationController.incubateWhile": ('int',),
- "PySide2.QtQml.QQmlIncubationController.incubatingObjectCount": (),
- "PySide2.QtQml.QQmlIncubationController.incubatingObjectCountChanged": ('int',),
-# class PySide2.QtQml.QQmlIncubator:
-# class PySide2.QtQml.QQmlIncubator.IncubationMode:
-# class PySide2.QtQml.QQmlIncubator.Status:
- "PySide2.QtQml.QQmlIncubator.__init__": ('PySide2.QtQml.QQmlIncubator.IncubationMode',),
- "PySide2.QtQml.QQmlIncubator.clear": (),
- "PySide2.QtQml.QQmlIncubator.errors": (),
- "PySide2.QtQml.QQmlIncubator.forceCompletion": (),
- "PySide2.QtQml.QQmlIncubator.incubationMode": (),
- "PySide2.QtQml.QQmlIncubator.isError": (),
- "PySide2.QtQml.QQmlIncubator.isLoading": (),
- "PySide2.QtQml.QQmlIncubator.isNull": (),
- "PySide2.QtQml.QQmlIncubator.isReady": (),
- "PySide2.QtQml.QQmlIncubator.object": (),
- "PySide2.QtQml.QQmlIncubator.setInitialState": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QQmlIncubator.status": (),
- "PySide2.QtQml.QQmlIncubator.statusChanged": ('PySide2.QtQml.QQmlIncubator.Status',),
-# class PySide2.QtQml.QQmlListReference:
- "PySide2.QtQml.QQmlListReference.__init__": [(), ('PySide2.QtCore.QObject', 'str', 'PySide2.QtQml.QQmlEngine'), ('PySide2.QtQml.QQmlListReference',)],
- "PySide2.QtQml.QQmlListReference.__copy__": (),
- "PySide2.QtQml.QQmlListReference.append": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QQmlListReference.at": ('int',),
- "PySide2.QtQml.QQmlListReference.canAppend": (),
- "PySide2.QtQml.QQmlListReference.canAt": (),
- "PySide2.QtQml.QQmlListReference.canClear": (),
- "PySide2.QtQml.QQmlListReference.canCount": (),
- "PySide2.QtQml.QQmlListReference.clear": (),
- "PySide2.QtQml.QQmlListReference.count": (),
- "PySide2.QtQml.QQmlListReference.isManipulable": (),
- "PySide2.QtQml.QQmlListReference.isReadable": (),
- "PySide2.QtQml.QQmlListReference.isValid": (),
- "PySide2.QtQml.QQmlListReference.listElementType": (),
- "PySide2.QtQml.QQmlListReference.object": (),
-# class PySide2.QtQml.QQmlNetworkAccessManagerFactory:
- "PySide2.QtQml.QQmlNetworkAccessManagerFactory.__init__": (),
- "PySide2.QtQml.QQmlNetworkAccessManagerFactory.create": ('PySide2.QtCore.QObject',),
-# class PySide2.QtQml.QQmlParserStatus:
- "PySide2.QtQml.QQmlParserStatus.__init__": (),
- "PySide2.QtQml.QQmlParserStatus.classBegin": (),
- "PySide2.QtQml.QQmlParserStatus.componentComplete": (),
-# class PySide2.QtQml.QQmlProperty:
-# class PySide2.QtQml.QQmlProperty.PropertyTypeCategory:
-# class PySide2.QtQml.QQmlProperty.Type:
- "PySide2.QtQml.QQmlProperty.__init__": [(), ('PySide2.QtCore.QObject',), ('PySide2.QtCore.QObject', 'PySide2.QtQml.QQmlContext'), ('PySide2.QtCore.QObject', 'PySide2.QtQml.QQmlEngine'), ('PySide2.QtCore.QObject', 'str'), ('PySide2.QtCore.QObject', 'str', 'PySide2.QtQml.QQmlContext'), ('PySide2.QtCore.QObject', 'str', 'PySide2.QtQml.QQmlEngine'), ('PySide2.QtQml.QQmlProperty',)],
- "PySide2.QtQml.QQmlProperty.__copy__": (),
- "PySide2.QtQml.QQmlProperty.connectNotifySignal": [('PySide2.QtCore.QObject', 'int'), ('PySide2.QtCore.QObject', 'str')],
- "PySide2.QtQml.QQmlProperty.hasNotifySignal": (),
- "PySide2.QtQml.QQmlProperty.index": (),
- "PySide2.QtQml.QQmlProperty.isDesignable": (),
- "PySide2.QtQml.QQmlProperty.isProperty": (),
- "PySide2.QtQml.QQmlProperty.isResettable": (),
- "PySide2.QtQml.QQmlProperty.isSignalProperty": (),
- "PySide2.QtQml.QQmlProperty.isValid": (),
- "PySide2.QtQml.QQmlProperty.isWritable": (),
- "PySide2.QtQml.QQmlProperty.method": (),
- "PySide2.QtQml.QQmlProperty.name": (),
- "PySide2.QtQml.QQmlProperty.needsNotifySignal": (),
- "PySide2.QtQml.QQmlProperty.object": (),
- "PySide2.QtQml.QQmlProperty.property": (),
- "PySide2.QtQml.QQmlProperty.propertyType": (),
- "PySide2.QtQml.QQmlProperty.propertyTypeCategory": (),
- "PySide2.QtQml.QQmlProperty.propertyTypeName": (),
- "PySide2.QtQml.QQmlProperty.read": [(), ('PySide2.QtCore.QObject', 'str'), ('PySide2.QtCore.QObject', 'str', 'PySide2.QtQml.QQmlContext'), ('PySide2.QtCore.QObject', 'str', 'PySide2.QtQml.QQmlEngine')],
- "PySide2.QtQml.QQmlProperty.reset": (),
- "PySide2.QtQml.QQmlProperty.type": (),
- "PySide2.QtQml.QQmlProperty.write": [('PySide2.QtCore.QObject', 'str', 'typing.Any'), ('PySide2.QtCore.QObject', 'str', 'typing.Any', 'PySide2.QtQml.QQmlContext'), ('PySide2.QtCore.QObject', 'str', 'typing.Any', 'PySide2.QtQml.QQmlEngine'), ('typing.Any',)],
-# class PySide2.QtQml.QQmlPropertyMap:
- "PySide2.QtQml.QQmlPropertyMap.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QQmlPropertyMap.clear": ('str',),
- "PySide2.QtQml.QQmlPropertyMap.contains": ('str',),
- "PySide2.QtQml.QQmlPropertyMap.count": (),
- "PySide2.QtQml.QQmlPropertyMap.insert": ('str', 'typing.Any'),
- "PySide2.QtQml.QQmlPropertyMap.isEmpty": (),
- "PySide2.QtQml.QQmlPropertyMap.keys": (),
- "PySide2.QtQml.QQmlPropertyMap.size": (),
- "PySide2.QtQml.QQmlPropertyMap.updateValue": ('str', 'typing.Any'),
- "PySide2.QtQml.QQmlPropertyMap.value": ('str',),
-# class PySide2.QtQml.QQmlPropertyValueSource:
- "PySide2.QtQml.QQmlPropertyValueSource.__init__": (),
- "PySide2.QtQml.QQmlPropertyValueSource.setTarget": ('PySide2.QtQml.QQmlProperty',),
-# class PySide2.QtQml.QQmlScriptString:
- "PySide2.QtQml.QQmlScriptString.__init__": [(), ('PySide2.QtQml.QQmlScriptString',)],
- "PySide2.QtQml.QQmlScriptString.__copy__": (),
- "PySide2.QtQml.QQmlScriptString.booleanLiteral": (),
- "PySide2.QtQml.QQmlScriptString.isEmpty": (),
- "PySide2.QtQml.QQmlScriptString.isNullLiteral": (),
- "PySide2.QtQml.QQmlScriptString.isUndefinedLiteral": (),
- "PySide2.QtQml.QQmlScriptString.numberLiteral": (),
- "PySide2.QtQml.QQmlScriptString.stringLiteral": (),
-# class PySide2.QtQml.QQmlTypesExtensionInterface:
- "PySide2.QtQml.QQmlTypesExtensionInterface.__init__": (),
- "PySide2.QtQml.QQmlTypesExtensionInterface.registerTypes": ('str',),
-# class PySide2.QtQml.QtQml:
- "PySide2.QtQml.QtQml.qmlAttachedPropertiesObject": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QMetaObject', 'bool'),
- "PySide2.QtQml.QtQml.qmlAttachedPropertiesObjectById": ('int', 'PySide2.QtCore.QObject', 'bool'),
- "PySide2.QtQml.QtQml.qmlContext": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QtQml.qmlEngine": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QtQml.qmlExecuteDeferred": ('PySide2.QtCore.QObject',),
-# class PySide2.QtQml.VolatileBool:
- "PySide2.QtQml.VolatileBool.get": (),
- "PySide2.QtQml.VolatileBool.set": ('object',),
- "PySide2.QtQml.VolatileBool.qmlRegisterType": ('type', 'str', 'int', 'int', 'str'),
- }) if "PySide2.QtQml" in sys.modules else None
-# Module PySide2.QtQuick
-sig_dict.update({
-# class PySide2.QtQuick.QQuickAsyncImageProvider:
- "PySide2.QtQuick.QQuickAsyncImageProvider.__init__": (),
- "PySide2.QtQuick.QQuickAsyncImageProvider.requestImageResponse": ('str', 'PySide2.QtCore.QSize'),
-# class PySide2.QtQuick.QQuickFramebufferObject:
-# class PySide2.QtQuick.QQuickFramebufferObject.Renderer:
- "PySide2.QtQuick.QQuickFramebufferObject.Renderer.__init__": (),
- "PySide2.QtQuick.QQuickFramebufferObject.Renderer.createFramebufferObject": ('PySide2.QtCore.QSize',),
- "PySide2.QtQuick.QQuickFramebufferObject.Renderer.framebufferObject": (),
- "PySide2.QtQuick.QQuickFramebufferObject.Renderer.invalidateFramebufferObject": (),
- "PySide2.QtQuick.QQuickFramebufferObject.Renderer.render": (),
- "PySide2.QtQuick.QQuickFramebufferObject.Renderer.synchronize": ('PySide2.QtQuick.QQuickFramebufferObject',),
- "PySide2.QtQuick.QQuickFramebufferObject.Renderer.update": (),
- "PySide2.QtQuick.QQuickFramebufferObject.__init__": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickFramebufferObject.createRenderer": (),
- "PySide2.QtQuick.QQuickFramebufferObject.geometryChanged": ('PySide2.QtCore.QRectF', 'PySide2.QtCore.QRectF'),
- "PySide2.QtQuick.QQuickFramebufferObject.isTextureProvider": (),
- "PySide2.QtQuick.QQuickFramebufferObject.mirrorVertically": (),
- "PySide2.QtQuick.QQuickFramebufferObject.releaseResources": (),
- "PySide2.QtQuick.QQuickFramebufferObject.setMirrorVertically": ('bool',),
- "PySide2.QtQuick.QQuickFramebufferObject.setTextureFollowsItemSize": ('bool',),
- "PySide2.QtQuick.QQuickFramebufferObject.textureFollowsItemSize": (),
- "PySide2.QtQuick.QQuickFramebufferObject.textureProvider": (),
- "PySide2.QtQuick.QQuickFramebufferObject.updatePaintNode": ('PySide2.QtQuick.QSGNode', 'PySide2.QtQuick.QQuickItem.UpdatePaintNodeData'),
-# class PySide2.QtQuick.QQuickImageProvider:
- "PySide2.QtQuick.QQuickImageProvider.__init__": ('PySide2.QtQml.QQmlImageProviderBase.ImageType', 'PySide2.QtQml.QQmlImageProviderBase.Flags'),
- "PySide2.QtQuick.QQuickImageProvider.flags": (),
- "PySide2.QtQuick.QQuickImageProvider.imageType": (),
- "PySide2.QtQuick.QQuickImageProvider.requestImage": ('str', 'PySide2.QtCore.QSize', 'PySide2.QtCore.QSize'),
- "PySide2.QtQuick.QQuickImageProvider.requestPixmap": ('str', 'PySide2.QtCore.QSize', 'PySide2.QtCore.QSize'),
- "PySide2.QtQuick.QQuickImageProvider.requestTexture": ('str', 'PySide2.QtCore.QSize', 'PySide2.QtCore.QSize'),
-# class PySide2.QtQuick.QQuickImageResponse:
- "PySide2.QtQuick.QQuickImageResponse.__init__": (),
- "PySide2.QtQuick.QQuickImageResponse.cancel": (),
- "PySide2.QtQuick.QQuickImageResponse.errorString": (),
- "PySide2.QtQuick.QQuickImageResponse.textureFactory": (),
-# class PySide2.QtQuick.QQuickItem:
-# class PySide2.QtQuick.QQuickItem.Flag:
-# class PySide2.QtQuick.QQuickItem.Flags:
-# class PySide2.QtQuick.QQuickItem.ItemChange:
-# class PySide2.QtQuick.QQuickItem.TransformOrigin:
-# class PySide2.QtQuick.QQuickItem.UpdatePaintNodeData:
- "PySide2.QtQuick.QQuickItem.UpdatePaintNodeData.__copy__": (),
- "PySide2.QtQuick.QQuickItem.__init__": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickItem.acceptHoverEvents": (),
- "PySide2.QtQuick.QQuickItem.acceptTouchEvents": (),
- "PySide2.QtQuick.QQuickItem.acceptedMouseButtons": (),
- "PySide2.QtQuick.QQuickItem.activeFocusOnTab": (),
- "PySide2.QtQuick.QQuickItem.antialiasing": (),
- "PySide2.QtQuick.QQuickItem.baselineOffset": (),
- "PySide2.QtQuick.QQuickItem.boundingRect": (),
- "PySide2.QtQuick.QQuickItem.childAt": ('float', 'float'),
- "PySide2.QtQuick.QQuickItem.childItems": (),
- "PySide2.QtQuick.QQuickItem.childMouseEventFilter": ('PySide2.QtQuick.QQuickItem', 'PySide2.QtCore.QEvent'),
- "PySide2.QtQuick.QQuickItem.childrenRect": (),
- "PySide2.QtQuick.QQuickItem.classBegin": (),
- "PySide2.QtQuick.QQuickItem.clip": (),
- "PySide2.QtQuick.QQuickItem.clipRect": (),
- "PySide2.QtQuick.QQuickItem.componentComplete": (),
- "PySide2.QtQuick.QQuickItem.containmentMask": (),
- "PySide2.QtQuick.QQuickItem.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtQuick.QQuickItem.cursor": (),
- "PySide2.QtQuick.QQuickItem.dragEnterEvent": ('PySide2.QtGui.QDragEnterEvent',),
- "PySide2.QtQuick.QQuickItem.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtQuick.QQuickItem.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtQuick.QQuickItem.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtQuick.QQuickItem.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtQuick.QQuickItem.filtersChildMouseEvents": (),
- "PySide2.QtQuick.QQuickItem.flags": (),
- "PySide2.QtQuick.QQuickItem.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtQuick.QQuickItem.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtQuick.QQuickItem.forceActiveFocus": [(), ('PySide2.QtCore.Qt.FocusReason',)],
- "PySide2.QtQuick.QQuickItem.geometryChanged": ('PySide2.QtCore.QRectF', 'PySide2.QtCore.QRectF'),
- "PySide2.QtQuick.QQuickItem.grabMouse": (),
- "PySide2.QtQuick.QQuickItem.grabToImage": [('PySide2.QtCore.QSize',), ('PySide2.QtQml.QJSValue', 'PySide2.QtCore.QSize')],
- "PySide2.QtQuick.QQuickItem.grabTouchPoints": ('typing.List[int]',),
- "PySide2.QtQuick.QQuickItem.hasActiveFocus": (),
- "PySide2.QtQuick.QQuickItem.hasFocus": (),
- "PySide2.QtQuick.QQuickItem.height": (),
- "PySide2.QtQuick.QQuickItem.heightValid": (),
- "PySide2.QtQuick.QQuickItem.hoverEnterEvent": ('PySide2.QtGui.QHoverEvent',),
- "PySide2.QtQuick.QQuickItem.hoverLeaveEvent": ('PySide2.QtGui.QHoverEvent',),
- "PySide2.QtQuick.QQuickItem.hoverMoveEvent": ('PySide2.QtGui.QHoverEvent',),
- "PySide2.QtQuick.QQuickItem.implicitHeight": (),
- "PySide2.QtQuick.QQuickItem.implicitWidth": (),
- "PySide2.QtQuick.QQuickItem.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtQuick.QQuickItem.inputMethodQuery": ('PySide2.QtCore.Qt.InputMethodQuery',),
- "PySide2.QtQuick.QQuickItem.isAncestorOf": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickItem.isComponentComplete": (),
- "PySide2.QtQuick.QQuickItem.isEnabled": (),
- "PySide2.QtQuick.QQuickItem.isFocusScope": (),
- "PySide2.QtQuick.QQuickItem.isTextureProvider": (),
- "PySide2.QtQuick.QQuickItem.isUnderMouse": (),
- "PySide2.QtQuick.QQuickItem.isVisible": (),
- "PySide2.QtQuick.QQuickItem.itemTransform": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickItem.keepMouseGrab": (),
- "PySide2.QtQuick.QQuickItem.keepTouchGrab": (),
- "PySide2.QtQuick.QQuickItem.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtQuick.QQuickItem.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtQuick.QQuickItem.mapFromGlobal": ('PySide2.QtCore.QPointF',),
- "PySide2.QtQuick.QQuickItem.mapFromItem": ('PySide2.QtQuick.QQuickItem', 'PySide2.QtCore.QPointF'),
- "PySide2.QtQuick.QQuickItem.mapFromScene": ('PySide2.QtCore.QPointF',),
- "PySide2.QtQuick.QQuickItem.mapRectFromItem": ('PySide2.QtQuick.QQuickItem', 'PySide2.QtCore.QRectF'),
- "PySide2.QtQuick.QQuickItem.mapRectFromScene": ('PySide2.QtCore.QRectF',),
- "PySide2.QtQuick.QQuickItem.mapRectToItem": ('PySide2.QtQuick.QQuickItem', 'PySide2.QtCore.QRectF'),
- "PySide2.QtQuick.QQuickItem.mapRectToScene": ('PySide2.QtCore.QRectF',),
- "PySide2.QtQuick.QQuickItem.mapToGlobal": ('PySide2.QtCore.QPointF',),
- "PySide2.QtQuick.QQuickItem.mapToItem": ('PySide2.QtQuick.QQuickItem', 'PySide2.QtCore.QPointF'),
- "PySide2.QtQuick.QQuickItem.mapToScene": ('PySide2.QtCore.QPointF',),
- "PySide2.QtQuick.QQuickItem.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickItem.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickItem.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickItem.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickItem.mouseUngrabEvent": (),
- "PySide2.QtQuick.QQuickItem.nextItemInFocusChain": ('bool',),
- "PySide2.QtQuick.QQuickItem.opacity": (),
- "PySide2.QtQuick.QQuickItem.parentItem": (),
- "PySide2.QtQuick.QQuickItem.polish": (),
- "PySide2.QtQuick.QQuickItem.position": (),
- "PySide2.QtQuick.QQuickItem.releaseResources": (),
- "PySide2.QtQuick.QQuickItem.resetAntialiasing": (),
- "PySide2.QtQuick.QQuickItem.resetHeight": (),
- "PySide2.QtQuick.QQuickItem.resetWidth": (),
- "PySide2.QtQuick.QQuickItem.rotation": (),
- "PySide2.QtQuick.QQuickItem.scale": (),
- "PySide2.QtQuick.QQuickItem.scopedFocusItem": (),
- "PySide2.QtQuick.QQuickItem.setAcceptHoverEvents": ('bool',),
- "PySide2.QtQuick.QQuickItem.setAcceptTouchEvents": ('bool',),
- "PySide2.QtQuick.QQuickItem.setAcceptedMouseButtons": ('PySide2.QtCore.Qt.MouseButtons',),
- "PySide2.QtQuick.QQuickItem.setActiveFocusOnTab": ('bool',),
- "PySide2.QtQuick.QQuickItem.setAntialiasing": ('bool',),
- "PySide2.QtQuick.QQuickItem.setBaselineOffset": ('float',),
- "PySide2.QtQuick.QQuickItem.setClip": ('bool',),
- "PySide2.QtQuick.QQuickItem.setContainmentMask": ('PySide2.QtCore.QObject',),
- "PySide2.QtQuick.QQuickItem.setCursor": ('PySide2.QtGui.QCursor',),
- "PySide2.QtQuick.QQuickItem.setEnabled": ('bool',),
- "PySide2.QtQuick.QQuickItem.setFiltersChildMouseEvents": ('bool',),
- "PySide2.QtQuick.QQuickItem.setFlag": ('PySide2.QtQuick.QQuickItem.Flag', 'bool'),
- "PySide2.QtQuick.QQuickItem.setFlags": ('PySide2.QtQuick.QQuickItem.Flags',),
- "PySide2.QtQuick.QQuickItem.setFocus": [('bool',), ('bool', 'PySide2.QtCore.Qt.FocusReason')],
- "PySide2.QtQuick.QQuickItem.setHeight": ('float',),
- "PySide2.QtQuick.QQuickItem.setImplicitHeight": ('float',),
- "PySide2.QtQuick.QQuickItem.setImplicitSize": ('float', 'float'),
- "PySide2.QtQuick.QQuickItem.setImplicitWidth": ('float',),
- "PySide2.QtQuick.QQuickItem.setKeepMouseGrab": ('bool',),
- "PySide2.QtQuick.QQuickItem.setKeepTouchGrab": ('bool',),
- "PySide2.QtQuick.QQuickItem.setOpacity": ('float',),
- "PySide2.QtQuick.QQuickItem.setParentItem": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickItem.setPosition": ('PySide2.QtCore.QPointF',),
- "PySide2.QtQuick.QQuickItem.setRotation": ('float',),
- "PySide2.QtQuick.QQuickItem.setScale": ('float',),
- "PySide2.QtQuick.QQuickItem.setSize": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtQuick.QQuickItem.setSmooth": ('bool',),
- "PySide2.QtQuick.QQuickItem.setState": ('str',),
- "PySide2.QtQuick.QQuickItem.setTransformOrigin": ('PySide2.QtQuick.QQuickItem.TransformOrigin',),
- "PySide2.QtQuick.QQuickItem.setTransformOriginPoint": ('PySide2.QtCore.QPointF',),
- "PySide2.QtQuick.QQuickItem.setVisible": ('bool',),
- "PySide2.QtQuick.QQuickItem.setWidth": ('float',),
- "PySide2.QtQuick.QQuickItem.setX": ('float',),
- "PySide2.QtQuick.QQuickItem.setY": ('float',),
- "PySide2.QtQuick.QQuickItem.setZ": ('float',),
- "PySide2.QtQuick.QQuickItem.size": (),
- "PySide2.QtQuick.QQuickItem.smooth": (),
- "PySide2.QtQuick.QQuickItem.stackAfter": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickItem.stackBefore": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickItem.state": (),
- "PySide2.QtQuick.QQuickItem.textureProvider": (),
- "PySide2.QtQuick.QQuickItem.touchEvent": ('PySide2.QtGui.QTouchEvent',),
- "PySide2.QtQuick.QQuickItem.touchUngrabEvent": (),
- "PySide2.QtQuick.QQuickItem.transformOrigin": (),
- "PySide2.QtQuick.QQuickItem.transformOriginPoint": (),
- "PySide2.QtQuick.QQuickItem.ungrabMouse": (),
- "PySide2.QtQuick.QQuickItem.ungrabTouchPoints": (),
- "PySide2.QtQuick.QQuickItem.unsetCursor": (),
- "PySide2.QtQuick.QQuickItem.update": (),
- "PySide2.QtQuick.QQuickItem.updateInputMethod": ('PySide2.QtCore.Qt.InputMethodQueries',),
- "PySide2.QtQuick.QQuickItem.updatePaintNode": ('PySide2.QtQuick.QSGNode', 'PySide2.QtQuick.QQuickItem.UpdatePaintNodeData'),
- "PySide2.QtQuick.QQuickItem.updatePolish": (),
- "PySide2.QtQuick.QQuickItem.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
- "PySide2.QtQuick.QQuickItem.width": (),
- "PySide2.QtQuick.QQuickItem.widthValid": (),
- "PySide2.QtQuick.QQuickItem.window": (),
- "PySide2.QtQuick.QQuickItem.windowDeactivateEvent": (),
- "PySide2.QtQuick.QQuickItem.x": (),
- "PySide2.QtQuick.QQuickItem.y": (),
- "PySide2.QtQuick.QQuickItem.z": (),
-# class PySide2.QtQuick.QQuickItemGrabResult:
- "PySide2.QtQuick.QQuickItemGrabResult.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtQuick.QQuickItemGrabResult.image": (),
- "PySide2.QtQuick.QQuickItemGrabResult.saveToFile": ('str',),
- "PySide2.QtQuick.QQuickItemGrabResult.url": (),
-# class PySide2.QtQuick.QQuickPaintedItem:
-# class PySide2.QtQuick.QQuickPaintedItem.PerformanceHint:
-# class PySide2.QtQuick.QQuickPaintedItem.PerformanceHints:
-# class PySide2.QtQuick.QQuickPaintedItem.RenderTarget:
- "PySide2.QtQuick.QQuickPaintedItem.__init__": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickPaintedItem.antialiasing": (),
- "PySide2.QtQuick.QQuickPaintedItem.contentsBoundingRect": (),
- "PySide2.QtQuick.QQuickPaintedItem.contentsScale": (),
- "PySide2.QtQuick.QQuickPaintedItem.contentsSize": (),
- "PySide2.QtQuick.QQuickPaintedItem.fillColor": (),
- "PySide2.QtQuick.QQuickPaintedItem.isTextureProvider": (),
- "PySide2.QtQuick.QQuickPaintedItem.mipmap": (),
- "PySide2.QtQuick.QQuickPaintedItem.opaquePainting": (),
- "PySide2.QtQuick.QQuickPaintedItem.paint": ('PySide2.QtGui.QPainter',),
- "PySide2.QtQuick.QQuickPaintedItem.performanceHints": (),
- "PySide2.QtQuick.QQuickPaintedItem.releaseResources": (),
- "PySide2.QtQuick.QQuickPaintedItem.renderTarget": (),
- "PySide2.QtQuick.QQuickPaintedItem.resetContentsSize": (),
- "PySide2.QtQuick.QQuickPaintedItem.setAntialiasing": ('bool',),
- "PySide2.QtQuick.QQuickPaintedItem.setContentsScale": ('float',),
- "PySide2.QtQuick.QQuickPaintedItem.setContentsSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtQuick.QQuickPaintedItem.setFillColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtQuick.QQuickPaintedItem.setMipmap": ('bool',),
- "PySide2.QtQuick.QQuickPaintedItem.setOpaquePainting": ('bool',),
- "PySide2.QtQuick.QQuickPaintedItem.setPerformanceHint": ('PySide2.QtQuick.QQuickPaintedItem.PerformanceHint', 'bool'),
- "PySide2.QtQuick.QQuickPaintedItem.setPerformanceHints": ('PySide2.QtQuick.QQuickPaintedItem.PerformanceHints',),
- "PySide2.QtQuick.QQuickPaintedItem.setRenderTarget": ('PySide2.QtQuick.QQuickPaintedItem.RenderTarget',),
- "PySide2.QtQuick.QQuickPaintedItem.setTextureSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtQuick.QQuickPaintedItem.textureProvider": (),
- "PySide2.QtQuick.QQuickPaintedItem.textureSize": (),
- "PySide2.QtQuick.QQuickPaintedItem.update": [(), ('PySide2.QtCore.QRect',)],
- "PySide2.QtQuick.QQuickPaintedItem.updatePaintNode": ('PySide2.QtQuick.QSGNode', 'PySide2.QtQuick.QQuickItem.UpdatePaintNodeData'),
-# class PySide2.QtQuick.QQuickRenderControl:
- "PySide2.QtQuick.QQuickRenderControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtQuick.QQuickRenderControl.grab": (),
- "PySide2.QtQuick.QQuickRenderControl.initialize": ('PySide2.QtGui.QOpenGLContext',),
- "PySide2.QtQuick.QQuickRenderControl.invalidate": (),
- "PySide2.QtQuick.QQuickRenderControl.polishItems": (),
- "PySide2.QtQuick.QQuickRenderControl.prepareThread": ('PySide2.QtCore.QThread',),
- "PySide2.QtQuick.QQuickRenderControl.render": (),
- "PySide2.QtQuick.QQuickRenderControl.renderWindow": ('PySide2.QtCore.QPoint',),
- "PySide2.QtQuick.QQuickRenderControl.renderWindowFor": ('PySide2.QtQuick.QQuickWindow', 'PySide2.QtCore.QPoint'),
- "PySide2.QtQuick.QQuickRenderControl.sync": (),
-# class PySide2.QtQuick.QQuickTextDocument:
- "PySide2.QtQuick.QQuickTextDocument.__init__": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickTextDocument.textDocument": (),
-# class PySide2.QtQuick.QQuickTextureFactory:
- "PySide2.QtQuick.QQuickTextureFactory.__init__": (),
- "PySide2.QtQuick.QQuickTextureFactory.createTexture": ('PySide2.QtQuick.QQuickWindow',),
- "PySide2.QtQuick.QQuickTextureFactory.image": (),
- "PySide2.QtQuick.QQuickTextureFactory.textureByteCount": (),
- "PySide2.QtQuick.QQuickTextureFactory.textureFactoryForImage": ('PySide2.QtGui.QImage',),
- "PySide2.QtQuick.QQuickTextureFactory.textureSize": (),
-# class PySide2.QtQuick.QQuickTransform:
- "PySide2.QtQuick.QQuickTransform.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtQuick.QQuickTransform.appendToItem": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickTransform.applyTo": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtQuick.QQuickTransform.prependToItem": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickTransform.update": (),
-# class PySide2.QtQuick.QQuickView:
-# class PySide2.QtQuick.QQuickView.ResizeMode:
-# class PySide2.QtQuick.QQuickView.Status:
- "PySide2.QtQuick.QQuickView.__init__": [('PySide2.QtCore.QUrl', 'PySide2.QtGui.QWindow'), ('PySide2.QtCore.QUrl', 'PySide2.QtQuick.QQuickRenderControl'), ('PySide2.QtGui.QWindow',), ('PySide2.QtQml.QQmlEngine', 'PySide2.QtGui.QWindow')],
- "PySide2.QtQuick.QQuickView.engine": (),
- "PySide2.QtQuick.QQuickView.errors": (),
- "PySide2.QtQuick.QQuickView.initialSize": (),
- "PySide2.QtQuick.QQuickView.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtQuick.QQuickView.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtQuick.QQuickView.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickView.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickView.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickView.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtQuick.QQuickView.resizeMode": (),
- "PySide2.QtQuick.QQuickView.rootContext": (),
- "PySide2.QtQuick.QQuickView.rootObject": (),
- "PySide2.QtQuick.QQuickView.setContent": ('PySide2.QtCore.QUrl', 'PySide2.QtQml.QQmlComponent', 'PySide2.QtCore.QObject'),
- "PySide2.QtQuick.QQuickView.setInitialProperties": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtQuick.QQuickView.setResizeMode": ('PySide2.QtQuick.QQuickView.ResizeMode',),
- "PySide2.QtQuick.QQuickView.setSource": ('PySide2.QtCore.QUrl',),
- "PySide2.QtQuick.QQuickView.sizeHint": (),
- "PySide2.QtQuick.QQuickView.source": (),
- "PySide2.QtQuick.QQuickView.status": (),
- "PySide2.QtQuick.QQuickView.timerEvent": ('PySide2.QtCore.QTimerEvent',),
-# class PySide2.QtQuick.QQuickWindow:
-# class PySide2.QtQuick.QQuickWindow.CreateTextureOption:
-# class PySide2.QtQuick.QQuickWindow.CreateTextureOptions:
-# class PySide2.QtQuick.QQuickWindow.NativeObjectType:
-# class PySide2.QtQuick.QQuickWindow.RenderStage:
-# class PySide2.QtQuick.QQuickWindow.SceneGraphError:
-# class PySide2.QtQuick.QQuickWindow.TextRenderType:
- "PySide2.QtQuick.QQuickWindow.__init__": [('PySide2.QtGui.QWindow',), ('PySide2.QtQuick.QQuickRenderControl',)],
- "PySide2.QtQuick.QQuickWindow.accessibleRoot": (),
- "PySide2.QtQuick.QQuickWindow.activeFocusItem": (),
- "PySide2.QtQuick.QQuickWindow.beginExternalCommands": (),
- "PySide2.QtQuick.QQuickWindow.clearBeforeRendering": (),
- "PySide2.QtQuick.QQuickWindow.color": (),
- "PySide2.QtQuick.QQuickWindow.contentItem": (),
- "PySide2.QtQuick.QQuickWindow.createTextureFromId": ('int', 'PySide2.QtCore.QSize', 'PySide2.QtQuick.QQuickWindow.CreateTextureOptions'),
- "PySide2.QtQuick.QQuickWindow.createTextureFromImage": [('PySide2.QtGui.QImage',), ('PySide2.QtGui.QImage', 'PySide2.QtQuick.QQuickWindow.CreateTextureOptions')],
- "PySide2.QtQuick.QQuickWindow.createTextureFromNativeObject": ('PySide2.QtQuick.QQuickWindow.NativeObjectType', 'int', 'int', 'PySide2.QtCore.QSize', 'PySide2.QtQuick.QQuickWindow.CreateTextureOptions'),
- "PySide2.QtQuick.QQuickWindow.effectiveDevicePixelRatio": (),
- "PySide2.QtQuick.QQuickWindow.endExternalCommands": (),
- "PySide2.QtQuick.QQuickWindow.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtQuick.QQuickWindow.exposeEvent": ('PySide2.QtGui.QExposeEvent',),
- "PySide2.QtQuick.QQuickWindow.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtQuick.QQuickWindow.focusObject": (),
- "PySide2.QtQuick.QQuickWindow.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtQuick.QQuickWindow.grabWindow": (),
- "PySide2.QtQuick.QQuickWindow.hasDefaultAlphaBuffer": (),
- "PySide2.QtQuick.QQuickWindow.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtQuick.QQuickWindow.incubationController": (),
- "PySide2.QtQuick.QQuickWindow.isPersistentOpenGLContext": (),
- "PySide2.QtQuick.QQuickWindow.isPersistentSceneGraph": (),
- "PySide2.QtQuick.QQuickWindow.isSceneGraphInitialized": (),
- "PySide2.QtQuick.QQuickWindow.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtQuick.QQuickWindow.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtQuick.QQuickWindow.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickWindow.mouseGrabberItem": (),
- "PySide2.QtQuick.QQuickWindow.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickWindow.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickWindow.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickWindow.openglContext": (),
- "PySide2.QtQuick.QQuickWindow.releaseResources": (),
- "PySide2.QtQuick.QQuickWindow.renderTarget": (),
- "PySide2.QtQuick.QQuickWindow.renderTargetId": (),
- "PySide2.QtQuick.QQuickWindow.renderTargetSize": (),
- "PySide2.QtQuick.QQuickWindow.resetOpenGLState": (),
- "PySide2.QtQuick.QQuickWindow.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtQuick.QQuickWindow.sceneGraphBackend": (),
- "PySide2.QtQuick.QQuickWindow.scheduleRenderJob": ('PySide2.QtCore.QRunnable', 'PySide2.QtQuick.QQuickWindow.RenderStage'),
- "PySide2.QtQuick.QQuickWindow.sendEvent": ('PySide2.QtQuick.QQuickItem', 'PySide2.QtCore.QEvent'),
- "PySide2.QtQuick.QQuickWindow.setClearBeforeRendering": ('bool',),
- "PySide2.QtQuick.QQuickWindow.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtQuick.QQuickWindow.setDefaultAlphaBuffer": ('bool',),
- "PySide2.QtQuick.QQuickWindow.setPersistentOpenGLContext": ('bool',),
- "PySide2.QtQuick.QQuickWindow.setPersistentSceneGraph": ('bool',),
- "PySide2.QtQuick.QQuickWindow.setRenderTarget": [('PySide2.QtGui.QOpenGLFramebufferObject',), ('int', 'PySide2.QtCore.QSize')],
- "PySide2.QtQuick.QQuickWindow.setSceneGraphBackend": ('str',),
- "PySide2.QtQuick.QQuickWindow.setTextRenderType": ('PySide2.QtQuick.QQuickWindow.TextRenderType',),
- "PySide2.QtQuick.QQuickWindow.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtQuick.QQuickWindow.textRenderType": (),
- "PySide2.QtQuick.QQuickWindow.update": (),
- "PySide2.QtQuick.QQuickWindow.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtQuick.QSGAbstractRenderer:
-# class PySide2.QtQuick.QSGAbstractRenderer.ClearMode:
-# class PySide2.QtQuick.QSGAbstractRenderer.ClearModeBit:
-# class PySide2.QtQuick.QSGAbstractRenderer.MatrixTransformFlag:
-# class PySide2.QtQuick.QSGAbstractRenderer.MatrixTransformFlags:
- "PySide2.QtQuick.QSGAbstractRenderer.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtQuick.QSGAbstractRenderer.clearColor": (),
- "PySide2.QtQuick.QSGAbstractRenderer.clearMode": (),
- "PySide2.QtQuick.QSGAbstractRenderer.deviceRect": (),
- "PySide2.QtQuick.QSGAbstractRenderer.nodeChanged": ('PySide2.QtQuick.QSGNode', 'PySide2.QtQuick.QSGNode.DirtyState'),
- "PySide2.QtQuick.QSGAbstractRenderer.projectionMatrix": (),
- "PySide2.QtQuick.QSGAbstractRenderer.projectionMatrixWithNativeNDC": (),
- "PySide2.QtQuick.QSGAbstractRenderer.renderScene": ('int',),
- "PySide2.QtQuick.QSGAbstractRenderer.setClearColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtQuick.QSGAbstractRenderer.setClearMode": ('PySide2.QtQuick.QSGAbstractRenderer.ClearMode',),
- "PySide2.QtQuick.QSGAbstractRenderer.setDeviceRect": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QSize',)],
- "PySide2.QtQuick.QSGAbstractRenderer.setProjectionMatrix": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtQuick.QSGAbstractRenderer.setProjectionMatrixToRect": [('PySide2.QtCore.QRectF',), ('PySide2.QtCore.QRectF', 'PySide2.QtQuick.QSGAbstractRenderer.MatrixTransformFlags')],
- "PySide2.QtQuick.QSGAbstractRenderer.setProjectionMatrixWithNativeNDC": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtQuick.QSGAbstractRenderer.setViewportRect": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QSize',)],
- "PySide2.QtQuick.QSGAbstractRenderer.viewportRect": (),
-# class PySide2.QtQuick.QSGBasicGeometryNode:
- "PySide2.QtQuick.QSGBasicGeometryNode.__init__": ('PySide2.QtQuick.QSGNode.NodeType',),
- "PySide2.QtQuick.QSGBasicGeometryNode.clipList": (),
- "PySide2.QtQuick.QSGBasicGeometryNode.geometry": (),
- "PySide2.QtQuick.QSGBasicGeometryNode.matrix": (),
- "PySide2.QtQuick.QSGBasicGeometryNode.setGeometry": ('PySide2.QtQuick.QSGGeometry',),
- "PySide2.QtQuick.QSGBasicGeometryNode.setRendererClipList": ('PySide2.QtQuick.QSGClipNode',),
- "PySide2.QtQuick.QSGBasicGeometryNode.setRendererMatrix": ('PySide2.QtGui.QMatrix4x4',),
-# class PySide2.QtQuick.QSGClipNode:
- "PySide2.QtQuick.QSGClipNode.__init__": (),
- "PySide2.QtQuick.QSGClipNode.clipRect": (),
- "PySide2.QtQuick.QSGClipNode.isRectangular": (),
- "PySide2.QtQuick.QSGClipNode.setClipRect": ('PySide2.QtCore.QRectF',),
- "PySide2.QtQuick.QSGClipNode.setIsRectangular": ('bool',),
-# class PySide2.QtQuick.QSGDynamicTexture:
- "PySide2.QtQuick.QSGDynamicTexture.__init__": (),
- "PySide2.QtQuick.QSGDynamicTexture.updateTexture": (),
-# class PySide2.QtQuick.QSGEngine:
-# class PySide2.QtQuick.QSGEngine.CreateTextureOption:
-# class PySide2.QtQuick.QSGEngine.CreateTextureOptions:
- "PySide2.QtQuick.QSGEngine.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtQuick.QSGEngine.createRenderer": (),
- "PySide2.QtQuick.QSGEngine.createTextureFromId": ('int', 'PySide2.QtCore.QSize', 'PySide2.QtQuick.QSGEngine.CreateTextureOptions'),
- "PySide2.QtQuick.QSGEngine.createTextureFromImage": ('PySide2.QtGui.QImage', 'PySide2.QtQuick.QSGEngine.CreateTextureOptions'),
- "PySide2.QtQuick.QSGEngine.initialize": ('PySide2.QtGui.QOpenGLContext',),
- "PySide2.QtQuick.QSGEngine.invalidate": (),
-# class PySide2.QtQuick.QSGGeometry:
-# class PySide2.QtQuick.QSGGeometry.Attribute:
- "PySide2.QtQuick.QSGGeometry.Attribute.__init__": [(), ('PySide2.QtQuick.QSGGeometry.Attribute',)],
- "PySide2.QtQuick.QSGGeometry.Attribute.__copy__": (),
- "PySide2.QtQuick.QSGGeometry.Attribute.create": ('int', 'int', 'int', 'bool'),
- "PySide2.QtQuick.QSGGeometry.Attribute.createWithAttributeType": ('int', 'int', 'int', 'PySide2.QtQuick.QSGGeometry.AttributeType'),
-# class PySide2.QtQuick.QSGGeometry.AttributeSet:
- "PySide2.QtQuick.QSGGeometry.AttributeSet.__init__": [(), ('PySide2.QtQuick.QSGGeometry.AttributeSet',)],
- "PySide2.QtQuick.QSGGeometry.AttributeSet.__copy__": (),
-# class PySide2.QtQuick.QSGGeometry.AttributeType:
-# class PySide2.QtQuick.QSGGeometry.ColoredPoint2D:
- "PySide2.QtQuick.QSGGeometry.ColoredPoint2D.__init__": [(), ('PySide2.QtQuick.QSGGeometry.ColoredPoint2D',)],
- "PySide2.QtQuick.QSGGeometry.ColoredPoint2D.__copy__": (),
- "PySide2.QtQuick.QSGGeometry.ColoredPoint2D.set": ('float', 'float', 'int', 'int', 'int', 'int'),
-# class PySide2.QtQuick.QSGGeometry.DataPattern:
-# class PySide2.QtQuick.QSGGeometry.DrawingMode:
-# class PySide2.QtQuick.QSGGeometry.Point2D:
- "PySide2.QtQuick.QSGGeometry.Point2D.__init__": [(), ('PySide2.QtQuick.QSGGeometry.Point2D',)],
- "PySide2.QtQuick.QSGGeometry.Point2D.__copy__": (),
- "PySide2.QtQuick.QSGGeometry.Point2D.set": ('float', 'float'),
-# class PySide2.QtQuick.QSGGeometry.TexturedPoint2D:
- "PySide2.QtQuick.QSGGeometry.TexturedPoint2D.__init__": [(), ('PySide2.QtQuick.QSGGeometry.TexturedPoint2D',)],
- "PySide2.QtQuick.QSGGeometry.TexturedPoint2D.__copy__": (),
- "PySide2.QtQuick.QSGGeometry.TexturedPoint2D.set": ('float', 'float', 'float', 'float'),
-# class PySide2.QtQuick.QSGGeometry.Type:
- "PySide2.QtQuick.QSGGeometry.__init__": ('PySide2.QtQuick.QSGGeometry.AttributeSet', 'int', 'int', 'int'),
- "PySide2.QtQuick.QSGGeometry.allocate": ('int', 'int'),
- "PySide2.QtQuick.QSGGeometry.attributeCount": (),
- "PySide2.QtQuick.QSGGeometry.attributes": (),
- "PySide2.QtQuick.QSGGeometry.defaultAttributes_ColoredPoint2D": (),
- "PySide2.QtQuick.QSGGeometry.defaultAttributes_Point2D": (),
- "PySide2.QtQuick.QSGGeometry.defaultAttributes_TexturedPoint2D": (),
- "PySide2.QtQuick.QSGGeometry.drawingMode": (),
- "PySide2.QtQuick.QSGGeometry.indexCount": (),
- "PySide2.QtQuick.QSGGeometry.indexData": (),
- "PySide2.QtQuick.QSGGeometry.indexDataAsUInt": (),
- "PySide2.QtQuick.QSGGeometry.indexDataAsUShort": (),
- "PySide2.QtQuick.QSGGeometry.indexDataPattern": (),
- "PySide2.QtQuick.QSGGeometry.indexType": (),
- "PySide2.QtQuick.QSGGeometry.lineWidth": (),
- "PySide2.QtQuick.QSGGeometry.markIndexDataDirty": (),
- "PySide2.QtQuick.QSGGeometry.markVertexDataDirty": (),
- "PySide2.QtQuick.QSGGeometry.setDrawingMode": ('int',),
- "PySide2.QtQuick.QSGGeometry.setIndexDataPattern": ('PySide2.QtQuick.QSGGeometry.DataPattern',),
- "PySide2.QtQuick.QSGGeometry.setLineWidth": ('float',),
- "PySide2.QtQuick.QSGGeometry.setVertexDataPattern": ('PySide2.QtQuick.QSGGeometry.DataPattern',),
- "PySide2.QtQuick.QSGGeometry.sizeOfIndex": (),
- "PySide2.QtQuick.QSGGeometry.sizeOfVertex": (),
- "PySide2.QtQuick.QSGGeometry.updateColoredRectGeometry": ('PySide2.QtQuick.QSGGeometry', 'PySide2.QtCore.QRectF'),
- "PySide2.QtQuick.QSGGeometry.updateRectGeometry": ('PySide2.QtQuick.QSGGeometry', 'PySide2.QtCore.QRectF'),
- "PySide2.QtQuick.QSGGeometry.updateTexturedRectGeometry": ('PySide2.QtQuick.QSGGeometry', 'PySide2.QtCore.QRectF', 'PySide2.QtCore.QRectF'),
- "PySide2.QtQuick.QSGGeometry.vertexCount": (),
- "PySide2.QtQuick.QSGGeometry.vertexData": (),
- "PySide2.QtQuick.QSGGeometry.vertexDataAsColoredPoint2D": (),
- "PySide2.QtQuick.QSGGeometry.vertexDataAsPoint2D": (),
- "PySide2.QtQuick.QSGGeometry.vertexDataAsTexturedPoint2D": (),
- "PySide2.QtQuick.QSGGeometry.vertexDataPattern": (),
-# class PySide2.QtQuick.QSGGeometryNode:
- "PySide2.QtQuick.QSGGeometryNode.__init__": (),
- "PySide2.QtQuick.QSGGeometryNode.inheritedOpacity": (),
- "PySide2.QtQuick.QSGGeometryNode.renderOrder": (),
- "PySide2.QtQuick.QSGGeometryNode.setInheritedOpacity": ('float',),
- "PySide2.QtQuick.QSGGeometryNode.setRenderOrder": ('int',),
-# class PySide2.QtQuick.QSGMaterialType:
- "PySide2.QtQuick.QSGMaterialType.__init__": (),
-# class PySide2.QtQuick.QSGNode:
-# class PySide2.QtQuick.QSGNode.DirtyState:
-# class PySide2.QtQuick.QSGNode.DirtyStateBit:
-# class PySide2.QtQuick.QSGNode.Flag:
-# class PySide2.QtQuick.QSGNode.Flags:
-# class PySide2.QtQuick.QSGNode.NodeType:
- "PySide2.QtQuick.QSGNode.__init__": [(), ('PySide2.QtQuick.QSGNode.NodeType',)],
- "PySide2.QtQuick.QSGNode.appendChildNode": ('PySide2.QtQuick.QSGNode',),
- "PySide2.QtQuick.QSGNode.childAtIndex": ('int',),
- "PySide2.QtQuick.QSGNode.childCount": (),
- "PySide2.QtQuick.QSGNode.clearDirty": (),
- "PySide2.QtQuick.QSGNode.dirtyState": (),
- "PySide2.QtQuick.QSGNode.firstChild": (),
- "PySide2.QtQuick.QSGNode.flags": (),
- "PySide2.QtQuick.QSGNode.insertChildNodeAfter": ('PySide2.QtQuick.QSGNode', 'PySide2.QtQuick.QSGNode'),
- "PySide2.QtQuick.QSGNode.insertChildNodeBefore": ('PySide2.QtQuick.QSGNode', 'PySide2.QtQuick.QSGNode'),
- "PySide2.QtQuick.QSGNode.isSubtreeBlocked": (),
- "PySide2.QtQuick.QSGNode.lastChild": (),
- "PySide2.QtQuick.QSGNode.markDirty": ('PySide2.QtQuick.QSGNode.DirtyState',),
- "PySide2.QtQuick.QSGNode.nextSibling": (),
- "PySide2.QtQuick.QSGNode.parent": (),
- "PySide2.QtQuick.QSGNode.prependChildNode": ('PySide2.QtQuick.QSGNode',),
- "PySide2.QtQuick.QSGNode.preprocess": (),
- "PySide2.QtQuick.QSGNode.previousSibling": (),
- "PySide2.QtQuick.QSGNode.removeAllChildNodes": (),
- "PySide2.QtQuick.QSGNode.removeChildNode": ('PySide2.QtQuick.QSGNode',),
- "PySide2.QtQuick.QSGNode.reparentChildNodesTo": ('PySide2.QtQuick.QSGNode',),
- "PySide2.QtQuick.QSGNode.setFlag": ('PySide2.QtQuick.QSGNode.Flag', 'bool'),
- "PySide2.QtQuick.QSGNode.setFlags": ('PySide2.QtQuick.QSGNode.Flags', 'bool'),
- "PySide2.QtQuick.QSGNode.type": (),
-# class PySide2.QtQuick.QSGOpacityNode:
- "PySide2.QtQuick.QSGOpacityNode.__init__": (),
- "PySide2.QtQuick.QSGOpacityNode.combinedOpacity": (),
- "PySide2.QtQuick.QSGOpacityNode.isSubtreeBlocked": (),
- "PySide2.QtQuick.QSGOpacityNode.opacity": (),
- "PySide2.QtQuick.QSGOpacityNode.setCombinedOpacity": ('float',),
- "PySide2.QtQuick.QSGOpacityNode.setOpacity": ('float',),
-# class PySide2.QtQuick.QSGSimpleRectNode:
- "PySide2.QtQuick.QSGSimpleRectNode.__init__": [(), ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QColor')],
- "PySide2.QtQuick.QSGSimpleRectNode.color": (),
- "PySide2.QtQuick.QSGSimpleRectNode.rect": (),
- "PySide2.QtQuick.QSGSimpleRectNode.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtQuick.QSGSimpleRectNode.setRect": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
-# class PySide2.QtQuick.QSGSimpleTextureNode:
-# class PySide2.QtQuick.QSGSimpleTextureNode.TextureCoordinatesTransformFlag:
-# class PySide2.QtQuick.QSGSimpleTextureNode.TextureCoordinatesTransformMode:
- "PySide2.QtQuick.QSGSimpleTextureNode.__init__": (),
- "PySide2.QtQuick.QSGSimpleTextureNode.filtering": (),
- "PySide2.QtQuick.QSGSimpleTextureNode.ownsTexture": (),
- "PySide2.QtQuick.QSGSimpleTextureNode.rect": (),
- "PySide2.QtQuick.QSGSimpleTextureNode.setFiltering": ('PySide2.QtQuick.QSGTexture.Filtering',),
- "PySide2.QtQuick.QSGSimpleTextureNode.setOwnsTexture": ('bool',),
- "PySide2.QtQuick.QSGSimpleTextureNode.setRect": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtQuick.QSGSimpleTextureNode.setSourceRect": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtQuick.QSGSimpleTextureNode.setTexture": ('PySide2.QtQuick.QSGTexture',),
- "PySide2.QtQuick.QSGSimpleTextureNode.setTextureCoordinatesTransform": ('PySide2.QtQuick.QSGSimpleTextureNode.TextureCoordinatesTransformMode',),
- "PySide2.QtQuick.QSGSimpleTextureNode.sourceRect": (),
- "PySide2.QtQuick.QSGSimpleTextureNode.texture": (),
- "PySide2.QtQuick.QSGSimpleTextureNode.textureCoordinatesTransform": (),
-# class PySide2.QtQuick.QSGTexture:
-# class PySide2.QtQuick.QSGTexture.AnisotropyLevel:
-# class PySide2.QtQuick.QSGTexture.Filtering:
-# class PySide2.QtQuick.QSGTexture.WrapMode:
- "PySide2.QtQuick.QSGTexture.__init__": (),
- "PySide2.QtQuick.QSGTexture.anisotropyLevel": (),
- "PySide2.QtQuick.QSGTexture.bind": (),
- "PySide2.QtQuick.QSGTexture.comparisonKey": (),
- "PySide2.QtQuick.QSGTexture.convertToNormalizedSourceRect": ('PySide2.QtCore.QRectF',),
- "PySide2.QtQuick.QSGTexture.filtering": (),
- "PySide2.QtQuick.QSGTexture.hasAlphaChannel": (),
- "PySide2.QtQuick.QSGTexture.hasMipmaps": (),
- "PySide2.QtQuick.QSGTexture.horizontalWrapMode": (),
- "PySide2.QtQuick.QSGTexture.isAtlasTexture": (),
- "PySide2.QtQuick.QSGTexture.mipmapFiltering": (),
- "PySide2.QtQuick.QSGTexture.normalizedTextureSubRect": (),
- "PySide2.QtQuick.QSGTexture.removedFromAtlas": (),
- "PySide2.QtQuick.QSGTexture.setAnisotropyLevel": ('PySide2.QtQuick.QSGTexture.AnisotropyLevel',),
- "PySide2.QtQuick.QSGTexture.setFiltering": ('PySide2.QtQuick.QSGTexture.Filtering',),
- "PySide2.QtQuick.QSGTexture.setHorizontalWrapMode": ('PySide2.QtQuick.QSGTexture.WrapMode',),
- "PySide2.QtQuick.QSGTexture.setMipmapFiltering": ('PySide2.QtQuick.QSGTexture.Filtering',),
- "PySide2.QtQuick.QSGTexture.setVerticalWrapMode": ('PySide2.QtQuick.QSGTexture.WrapMode',),
- "PySide2.QtQuick.QSGTexture.textureId": (),
- "PySide2.QtQuick.QSGTexture.textureSize": (),
- "PySide2.QtQuick.QSGTexture.updateBindOptions": ('bool',),
- "PySide2.QtQuick.QSGTexture.verticalWrapMode": (),
-# class PySide2.QtQuick.QSGTextureProvider:
- "PySide2.QtQuick.QSGTextureProvider.__init__": (),
- "PySide2.QtQuick.QSGTextureProvider.texture": (),
-# class PySide2.QtQuick.QSGTransformNode:
- "PySide2.QtQuick.QSGTransformNode.__init__": (),
- "PySide2.QtQuick.QSGTransformNode.combinedMatrix": (),
- "PySide2.QtQuick.QSGTransformNode.matrix": (),
- "PySide2.QtQuick.QSGTransformNode.setCombinedMatrix": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtQuick.QSGTransformNode.setMatrix": ('PySide2.QtGui.QMatrix4x4',),
-# class PySide2.QtQuick.QSharedPointer<QQuickItemGrabResult >:
- "PySide2.QtQuick.QSharedPointer<QQuickItemGrabResult >.__copy__": (),
- "PySide2.QtQuick.QSharedPointer<QQuickItemGrabResult >.data": (),
- }) if "PySide2.QtQuick" in sys.modules else None
-# Module PySide2.QtQuickWidgets
-sig_dict.update({
-# class PySide2.QtQuickWidgets.QQuickWidget:
-# class PySide2.QtQuickWidgets.QQuickWidget.ResizeMode:
-# class PySide2.QtQuickWidgets.QQuickWidget.Status:
- "PySide2.QtQuickWidgets.QQuickWidget.__init__": [('PySide2.QtCore.QUrl', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtQml.QQmlEngine', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtQuickWidgets.QQuickWidget.dragEnterEvent": ('PySide2.QtGui.QDragEnterEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.engine": (),
- "PySide2.QtQuickWidgets.QQuickWidget.errors": (),
- "PySide2.QtQuickWidgets.QQuickWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.focusNextPrevChild": ('bool',),
- "PySide2.QtQuickWidgets.QQuickWidget.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.format": (),
- "PySide2.QtQuickWidgets.QQuickWidget.grabFramebuffer": (),
- "PySide2.QtQuickWidgets.QQuickWidget.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.initialSize": (),
- "PySide2.QtQuickWidgets.QQuickWidget.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.quickWindow": (),
- "PySide2.QtQuickWidgets.QQuickWidget.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.resizeMode": (),
- "PySide2.QtQuickWidgets.QQuickWidget.rootContext": (),
- "PySide2.QtQuickWidgets.QQuickWidget.rootObject": (),
- "PySide2.QtQuickWidgets.QQuickWidget.setClearColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtQuickWidgets.QQuickWidget.setContent": ('PySide2.QtCore.QUrl', 'PySide2.QtQml.QQmlComponent', 'PySide2.QtCore.QObject'),
- "PySide2.QtQuickWidgets.QQuickWidget.setFormat": ('PySide2.QtGui.QSurfaceFormat',),
- "PySide2.QtQuickWidgets.QQuickWidget.setResizeMode": ('PySide2.QtQuickWidgets.QQuickWidget.ResizeMode',),
- "PySide2.QtQuickWidgets.QQuickWidget.setSource": ('PySide2.QtCore.QUrl',),
- "PySide2.QtQuickWidgets.QQuickWidget.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.sizeHint": (),
- "PySide2.QtQuickWidgets.QQuickWidget.source": (),
- "PySide2.QtQuickWidgets.QQuickWidget.status": (),
- "PySide2.QtQuickWidgets.QQuickWidget.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
- }) if "PySide2.QtQuickWidgets" in sys.modules else None
-# Module PySide2.QtRemoteObjects
-sig_dict.update({
-# class PySide2.QtRemoteObjects.QAbstractItemModelReplica:
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.availableRoles": (),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.hasChildren": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.hasData": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.index": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.isInitialized": (),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.roleNames": (),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.selectionModel": (),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
-# class PySide2.QtRemoteObjects.QRemoteObjectAbstractPersistedStore:
- "PySide2.QtRemoteObjects.QRemoteObjectAbstractPersistedStore.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtRemoteObjects.QRemoteObjectAbstractPersistedStore.restoreProperties": ('str', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtRemoteObjects.QRemoteObjectAbstractPersistedStore.saveProperties": ('str', 'PySide2.QtCore.QByteArray', 'typing.Sequence[typing.Any]'),
-# class PySide2.QtRemoteObjects.QRemoteObjectDynamicReplica:
-# class PySide2.QtRemoteObjects.QRemoteObjectHost:
- "PySide2.QtRemoteObjects.QRemoteObjectHost.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtCore.QUrl', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QUrl', 'PySide2.QtCore.QUrl', 'PySide2.QtRemoteObjects.QRemoteObjectHostBase.AllowedSchemas', 'PySide2.QtCore.QObject')],
- "PySide2.QtRemoteObjects.QRemoteObjectHost.hostUrl": (),
- "PySide2.QtRemoteObjects.QRemoteObjectHost.setHostUrl": ('PySide2.QtCore.QUrl', 'PySide2.QtRemoteObjects.QRemoteObjectHostBase.AllowedSchemas'),
-# class PySide2.QtRemoteObjects.QRemoteObjectHostBase:
-# class PySide2.QtRemoteObjects.QRemoteObjectHostBase.AllowedSchemas:
- "PySide2.QtRemoteObjects.QRemoteObjectHostBase.addHostSideConnection": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtRemoteObjects.QRemoteObjectHostBase.disableRemoting": ('PySide2.QtCore.QObject',),
- "PySide2.QtRemoteObjects.QRemoteObjectHostBase.enableRemoting": [('PySide2.QtCore.QAbstractItemModel', 'str', 'typing.List[int]', 'PySide2.QtCore.QItemSelectionModel'), ('PySide2.QtCore.QObject', 'str')],
- "PySide2.QtRemoteObjects.QRemoteObjectHostBase.hostUrl": (),
- "PySide2.QtRemoteObjects.QRemoteObjectHostBase.proxy": ('PySide2.QtCore.QUrl', 'PySide2.QtCore.QUrl'),
- "PySide2.QtRemoteObjects.QRemoteObjectHostBase.reverseProxy": (),
- "PySide2.QtRemoteObjects.QRemoteObjectHostBase.setHostUrl": ('PySide2.QtCore.QUrl', 'PySide2.QtRemoteObjects.QRemoteObjectHostBase.AllowedSchemas'),
- "PySide2.QtRemoteObjects.QRemoteObjectHostBase.setName": ('str',),
-# class PySide2.QtRemoteObjects.QRemoteObjectNode:
-# class PySide2.QtRemoteObjects.QRemoteObjectNode.ErrorCode:
- "PySide2.QtRemoteObjects.QRemoteObjectNode.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtCore.QUrl', 'PySide2.QtCore.QObject')],
- "PySide2.QtRemoteObjects.QRemoteObjectNode.acquireDynamic": ('str',),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.acquireModel": ('str',),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.addClientSideConnection": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.connectToNode": ('PySide2.QtCore.QUrl',),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.heartbeatInterval": (),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.instances": ('str',),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.lastError": (),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.persistedStore": (),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.registry": (),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.registryUrl": (),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.setHeartbeatInterval": ('int',),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.setName": ('str',),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.setPersistedStore": ('PySide2.QtRemoteObjects.QRemoteObjectAbstractPersistedStore',),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.setRegistryUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.waitForRegistry": ('int',),
-# class PySide2.QtRemoteObjects.QRemoteObjectPendingCall:
-# class PySide2.QtRemoteObjects.QRemoteObjectPendingCall.Error:
- "PySide2.QtRemoteObjects.QRemoteObjectPendingCall.__init__": [(), ('PySide2.QtRemoteObjects.QRemoteObjectPendingCall',)],
- "PySide2.QtRemoteObjects.QRemoteObjectPendingCall.error": (),
- "PySide2.QtRemoteObjects.QRemoteObjectPendingCall.fromCompletedCall": ('typing.Any',),
- "PySide2.QtRemoteObjects.QRemoteObjectPendingCall.isFinished": (),
- "PySide2.QtRemoteObjects.QRemoteObjectPendingCall.returnValue": (),
- "PySide2.QtRemoteObjects.QRemoteObjectPendingCall.waitForFinished": ('int',),
-# class PySide2.QtRemoteObjects.QRemoteObjectPendingCallWatcher:
- "PySide2.QtRemoteObjects.QRemoteObjectPendingCallWatcher.__init__": ('PySide2.QtRemoteObjects.QRemoteObjectPendingCall', 'PySide2.QtCore.QObject'),
- "PySide2.QtRemoteObjects.QRemoteObjectPendingCallWatcher.isFinished": (),
- "PySide2.QtRemoteObjects.QRemoteObjectPendingCallWatcher.waitForFinished": [(), ('int',)],
-# class PySide2.QtRemoteObjects.QRemoteObjectRegistry:
- "PySide2.QtRemoteObjects.QRemoteObjectRegistry.initialize": (),
- "PySide2.QtRemoteObjects.QRemoteObjectRegistry.pushToRegistryIfNeeded": (),
- "PySide2.QtRemoteObjects.QRemoteObjectRegistry.registerMetatypes": (),
-# class PySide2.QtRemoteObjects.QRemoteObjectRegistryHost:
- "PySide2.QtRemoteObjects.QRemoteObjectRegistryHost.__init__": ('PySide2.QtCore.QUrl', 'PySide2.QtCore.QObject'),
- "PySide2.QtRemoteObjects.QRemoteObjectRegistryHost.setRegistryUrl": ('PySide2.QtCore.QUrl',),
-# class PySide2.QtRemoteObjects.QRemoteObjectReplica:
-# class PySide2.QtRemoteObjects.QRemoteObjectReplica.State:
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.__init__": (),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.initialize": (),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.initializeNode": ('PySide2.QtRemoteObjects.QRemoteObjectNode', 'str'),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.isInitialized": (),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.isReplicaValid": (),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.node": (),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.persistProperties": ('str', 'PySide2.QtCore.QByteArray', 'typing.Sequence[typing.Any]'),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.propAsVariant": ('int',),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.retrieveProperties": ('str', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.send": ('PySide2.QtCore.QMetaObject.Call', 'int', 'typing.Sequence[typing.Any]'),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.sendWithReply": ('PySide2.QtCore.QMetaObject.Call', 'int', 'typing.Sequence[typing.Any]'),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.setChild": ('int', 'typing.Any'),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.setNode": ('PySide2.QtRemoteObjects.QRemoteObjectNode',),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.setProperties": ('typing.Sequence[typing.Any]',),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.state": (),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.waitForSource": ('int',),
-# class PySide2.QtRemoteObjects.QRemoteObjectSettingsStore:
- "PySide2.QtRemoteObjects.QRemoteObjectSettingsStore.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtRemoteObjects.QRemoteObjectSettingsStore.restoreProperties": ('str', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtRemoteObjects.QRemoteObjectSettingsStore.saveProperties": ('str', 'PySide2.QtCore.QByteArray', 'typing.Sequence[typing.Any]'),
- }) if "PySide2.QtRemoteObjects" in sys.modules else None
-# Module PySide2.QtScxml
-sig_dict.update({
-# class PySide2.QtScxml.QScxmlCompiler:
-# class PySide2.QtScxml.QScxmlCompiler.Loader:
- "PySide2.QtScxml.QScxmlCompiler.Loader.__init__": (),
- "PySide2.QtScxml.QScxmlCompiler.Loader.load": ('str', 'str'),
- "PySide2.QtScxml.QScxmlCompiler.__init__": ('PySide2.QtCore.QXmlStreamReader',),
- "PySide2.QtScxml.QScxmlCompiler.compile": (),
- "PySide2.QtScxml.QScxmlCompiler.errors": (),
- "PySide2.QtScxml.QScxmlCompiler.fileName": (),
- "PySide2.QtScxml.QScxmlCompiler.loader": (),
- "PySide2.QtScxml.QScxmlCompiler.setFileName": ('str',),
- "PySide2.QtScxml.QScxmlCompiler.setLoader": ('PySide2.QtScxml.QScxmlCompiler.Loader',),
-# class PySide2.QtScxml.QScxmlCppDataModel:
- "PySide2.QtScxml.QScxmlCppDataModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtScxml.QScxmlCppDataModel.evaluateAssignment": ('int',),
- "PySide2.QtScxml.QScxmlCppDataModel.evaluateForeach": ('int', 'PySide2.QtScxml.QScxmlDataModel.ForeachLoopBody'),
- "PySide2.QtScxml.QScxmlCppDataModel.evaluateInitialization": ('int',),
- "PySide2.QtScxml.QScxmlCppDataModel.hasScxmlProperty": ('str',),
- "PySide2.QtScxml.QScxmlCppDataModel.inState": ('str',),
- "PySide2.QtScxml.QScxmlCppDataModel.scxmlEvent": (),
- "PySide2.QtScxml.QScxmlCppDataModel.scxmlProperty": ('str',),
- "PySide2.QtScxml.QScxmlCppDataModel.setScxmlEvent": ('PySide2.QtScxml.QScxmlEvent',),
- "PySide2.QtScxml.QScxmlCppDataModel.setScxmlProperty": ('str', 'typing.Any', 'str'),
- "PySide2.QtScxml.QScxmlCppDataModel.setup": ('typing.Dict[str, typing.Any]',),
-# class PySide2.QtScxml.QScxmlDataModel:
-# class PySide2.QtScxml.QScxmlDataModel.ForeachLoopBody:
- "PySide2.QtScxml.QScxmlDataModel.ForeachLoopBody.__init__": (),
- "PySide2.QtScxml.QScxmlDataModel.ForeachLoopBody.run": (),
- "PySide2.QtScxml.QScxmlDataModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtScxml.QScxmlDataModel.evaluateAssignment": ('int',),
- "PySide2.QtScxml.QScxmlDataModel.evaluateForeach": ('int', 'PySide2.QtScxml.QScxmlDataModel.ForeachLoopBody'),
- "PySide2.QtScxml.QScxmlDataModel.evaluateInitialization": ('int',),
- "PySide2.QtScxml.QScxmlDataModel.evaluateToBool": ('int',),
- "PySide2.QtScxml.QScxmlDataModel.evaluateToString": ('int',),
- "PySide2.QtScxml.QScxmlDataModel.evaluateToVariant": ('int',),
- "PySide2.QtScxml.QScxmlDataModel.evaluateToVoid": ('int',),
- "PySide2.QtScxml.QScxmlDataModel.hasScxmlProperty": ('str',),
- "PySide2.QtScxml.QScxmlDataModel.scxmlProperty": ('str',),
- "PySide2.QtScxml.QScxmlDataModel.setScxmlEvent": ('PySide2.QtScxml.QScxmlEvent',),
- "PySide2.QtScxml.QScxmlDataModel.setScxmlProperty": ('str', 'typing.Any', 'str'),
- "PySide2.QtScxml.QScxmlDataModel.setStateMachine": ('PySide2.QtScxml.QScxmlStateMachine',),
- "PySide2.QtScxml.QScxmlDataModel.setup": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtScxml.QScxmlDataModel.stateMachine": (),
-# class PySide2.QtScxml.QScxmlDynamicScxmlServiceFactory:
- "PySide2.QtScxml.QScxmlDynamicScxmlServiceFactory.__init__": ('PySide2.QtScxml.QScxmlExecutableContent.InvokeInfo', 'typing.List[int]', 'typing.List[PySide2.QtScxml.QScxmlExecutableContent.ParameterInfo]', 'PySide2.QtCore.QObject'),
- "PySide2.QtScxml.QScxmlDynamicScxmlServiceFactory.invoke": ('PySide2.QtScxml.QScxmlStateMachine',),
-# class PySide2.QtScxml.QScxmlEcmaScriptDataModel:
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.evaluateAssignment": ('int',),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.evaluateForeach": ('int', 'PySide2.QtScxml.QScxmlDataModel.ForeachLoopBody'),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.evaluateInitialization": ('int',),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.evaluateToBool": ('int',),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.evaluateToString": ('int',),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.evaluateToVariant": ('int',),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.evaluateToVoid": ('int',),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.hasScxmlProperty": ('str',),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.scxmlProperty": ('str',),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.setScxmlEvent": ('PySide2.QtScxml.QScxmlEvent',),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.setScxmlProperty": ('str', 'typing.Any', 'str'),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.setup": ('typing.Dict[str, typing.Any]',),
-# class PySide2.QtScxml.QScxmlError:
- "PySide2.QtScxml.QScxmlError.__init__": [(), ('PySide2.QtScxml.QScxmlError',), ('str', 'int', 'int', 'str')],
- "PySide2.QtScxml.QScxmlError.__copy__": (),
- "PySide2.QtScxml.QScxmlError.column": (),
- "PySide2.QtScxml.QScxmlError.description": (),
- "PySide2.QtScxml.QScxmlError.fileName": (),
- "PySide2.QtScxml.QScxmlError.isValid": (),
- "PySide2.QtScxml.QScxmlError.line": (),
- "PySide2.QtScxml.QScxmlError.toString": (),
-# class PySide2.QtScxml.QScxmlEvent:
-# class PySide2.QtScxml.QScxmlEvent.EventType:
- "PySide2.QtScxml.QScxmlEvent.__init__": [(), ('PySide2.QtScxml.QScxmlEvent',)],
- "PySide2.QtScxml.QScxmlEvent.clear": (),
- "PySide2.QtScxml.QScxmlEvent.data": (),
- "PySide2.QtScxml.QScxmlEvent.delay": (),
- "PySide2.QtScxml.QScxmlEvent.errorMessage": (),
- "PySide2.QtScxml.QScxmlEvent.eventType": (),
- "PySide2.QtScxml.QScxmlEvent.invokeId": (),
- "PySide2.QtScxml.QScxmlEvent.isErrorEvent": (),
- "PySide2.QtScxml.QScxmlEvent.name": (),
- "PySide2.QtScxml.QScxmlEvent.origin": (),
- "PySide2.QtScxml.QScxmlEvent.originType": (),
- "PySide2.QtScxml.QScxmlEvent.scxmlType": (),
- "PySide2.QtScxml.QScxmlEvent.sendId": (),
- "PySide2.QtScxml.QScxmlEvent.setData": ('typing.Any',),
- "PySide2.QtScxml.QScxmlEvent.setDelay": ('int',),
- "PySide2.QtScxml.QScxmlEvent.setErrorMessage": ('str',),
- "PySide2.QtScxml.QScxmlEvent.setEventType": ('PySide2.QtScxml.QScxmlEvent.EventType',),
- "PySide2.QtScxml.QScxmlEvent.setInvokeId": ('str',),
- "PySide2.QtScxml.QScxmlEvent.setName": ('str',),
- "PySide2.QtScxml.QScxmlEvent.setOrigin": ('str',),
- "PySide2.QtScxml.QScxmlEvent.setOriginType": ('str',),
- "PySide2.QtScxml.QScxmlEvent.setSendId": ('str',),
-# class PySide2.QtScxml.QScxmlExecutableContent:
-# class PySide2.QtScxml.QScxmlExecutableContent.AssignmentInfo:
- "PySide2.QtScxml.QScxmlExecutableContent.AssignmentInfo.__init__": [(), ('PySide2.QtScxml.QScxmlExecutableContent.AssignmentInfo',)],
- "PySide2.QtScxml.QScxmlExecutableContent.AssignmentInfo.__copy__": (),
-# class PySide2.QtScxml.QScxmlExecutableContent.EvaluatorInfo:
- "PySide2.QtScxml.QScxmlExecutableContent.EvaluatorInfo.__init__": [(), ('PySide2.QtScxml.QScxmlExecutableContent.EvaluatorInfo',)],
- "PySide2.QtScxml.QScxmlExecutableContent.EvaluatorInfo.__copy__": (),
-# class PySide2.QtScxml.QScxmlExecutableContent.ForeachInfo:
- "PySide2.QtScxml.QScxmlExecutableContent.ForeachInfo.__init__": [(), ('PySide2.QtScxml.QScxmlExecutableContent.ForeachInfo',)],
- "PySide2.QtScxml.QScxmlExecutableContent.ForeachInfo.__copy__": (),
-# class PySide2.QtScxml.QScxmlExecutableContent.InvokeInfo:
- "PySide2.QtScxml.QScxmlExecutableContent.InvokeInfo.__init__": [(), ('PySide2.QtScxml.QScxmlExecutableContent.InvokeInfo',)],
- "PySide2.QtScxml.QScxmlExecutableContent.InvokeInfo.__copy__": (),
-# class PySide2.QtScxml.QScxmlExecutableContent.ParameterInfo:
- "PySide2.QtScxml.QScxmlExecutableContent.ParameterInfo.__init__": [(), ('PySide2.QtScxml.QScxmlExecutableContent.ParameterInfo',)],
- "PySide2.QtScxml.QScxmlExecutableContent.ParameterInfo.__copy__": (),
-# class PySide2.QtScxml.QScxmlInvokableService:
- "PySide2.QtScxml.QScxmlInvokableService.__init__": ('PySide2.QtScxml.QScxmlStateMachine', 'PySide2.QtScxml.QScxmlInvokableServiceFactory'),
- "PySide2.QtScxml.QScxmlInvokableService.id": (),
- "PySide2.QtScxml.QScxmlInvokableService.name": (),
- "PySide2.QtScxml.QScxmlInvokableService.parentStateMachine": (),
- "PySide2.QtScxml.QScxmlInvokableService.postEvent": ('PySide2.QtScxml.QScxmlEvent',),
- "PySide2.QtScxml.QScxmlInvokableService.start": (),
-# class PySide2.QtScxml.QScxmlInvokableServiceFactory:
- "PySide2.QtScxml.QScxmlInvokableServiceFactory.__init__": ('PySide2.QtScxml.QScxmlExecutableContent.InvokeInfo', 'typing.List[int]', 'typing.List[PySide2.QtScxml.QScxmlExecutableContent.ParameterInfo]', 'PySide2.QtCore.QObject'),
- "PySide2.QtScxml.QScxmlInvokableServiceFactory.invoke": ('PySide2.QtScxml.QScxmlStateMachine',),
- "PySide2.QtScxml.QScxmlInvokableServiceFactory.invokeInfo": (),
- "PySide2.QtScxml.QScxmlInvokableServiceFactory.names": (),
- "PySide2.QtScxml.QScxmlInvokableServiceFactory.parameters": (),
-# class PySide2.QtScxml.QScxmlNullDataModel:
- "PySide2.QtScxml.QScxmlNullDataModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtScxml.QScxmlNullDataModel.evaluateAssignment": ('int',),
- "PySide2.QtScxml.QScxmlNullDataModel.evaluateForeach": ('int', 'PySide2.QtScxml.QScxmlDataModel.ForeachLoopBody'),
- "PySide2.QtScxml.QScxmlNullDataModel.evaluateInitialization": ('int',),
- "PySide2.QtScxml.QScxmlNullDataModel.evaluateToBool": ('int',),
- "PySide2.QtScxml.QScxmlNullDataModel.evaluateToString": ('int',),
- "PySide2.QtScxml.QScxmlNullDataModel.evaluateToVariant": ('int',),
- "PySide2.QtScxml.QScxmlNullDataModel.evaluateToVoid": ('int',),
- "PySide2.QtScxml.QScxmlNullDataModel.hasScxmlProperty": ('str',),
- "PySide2.QtScxml.QScxmlNullDataModel.scxmlProperty": ('str',),
- "PySide2.QtScxml.QScxmlNullDataModel.setScxmlEvent": ('PySide2.QtScxml.QScxmlEvent',),
- "PySide2.QtScxml.QScxmlNullDataModel.setScxmlProperty": ('str', 'typing.Any', 'str'),
- "PySide2.QtScxml.QScxmlNullDataModel.setup": ('typing.Dict[str, typing.Any]',),
-# class PySide2.QtScxml.QScxmlStateMachine:
- "PySide2.QtScxml.QScxmlStateMachine.__init__": ('PySide2.QtCore.QMetaObject', 'PySide2.QtCore.QObject'),
- "PySide2.QtScxml.QScxmlStateMachine.activeStateNames": ('bool',),
- "PySide2.QtScxml.QScxmlStateMachine.cancelDelayedEvent": ('str',),
- "PySide2.QtScxml.QScxmlStateMachine.connectToEvent": ('str', 'PySide2.QtCore.QObject', 'str', 'PySide2.QtCore.Qt.ConnectionType'),
- "PySide2.QtScxml.QScxmlStateMachine.connectToState": ('str', 'PySide2.QtCore.QObject', 'str', 'PySide2.QtCore.Qt.ConnectionType'),
- "PySide2.QtScxml.QScxmlStateMachine.dataModel": (),
- "PySide2.QtScxml.QScxmlStateMachine.fromData": ('PySide2.QtCore.QIODevice', 'str'),
- "PySide2.QtScxml.QScxmlStateMachine.fromFile": ('str',),
- "PySide2.QtScxml.QScxmlStateMachine.init": (),
- "PySide2.QtScxml.QScxmlStateMachine.initialValues": (),
- "PySide2.QtScxml.QScxmlStateMachine.invokedServices": (),
- "PySide2.QtScxml.QScxmlStateMachine.isActive": [('int',), ('str',)],
- "PySide2.QtScxml.QScxmlStateMachine.isDispatchableTarget": ('str',),
- "PySide2.QtScxml.QScxmlStateMachine.isInitialized": (),
- "PySide2.QtScxml.QScxmlStateMachine.isInvoked": (),
- "PySide2.QtScxml.QScxmlStateMachine.isRunning": (),
- "PySide2.QtScxml.QScxmlStateMachine.loader": (),
- "PySide2.QtScxml.QScxmlStateMachine.name": (),
- "PySide2.QtScxml.QScxmlStateMachine.parseErrors": (),
- "PySide2.QtScxml.QScxmlStateMachine.sessionId": (),
- "PySide2.QtScxml.QScxmlStateMachine.setDataModel": ('PySide2.QtScxml.QScxmlDataModel',),
- "PySide2.QtScxml.QScxmlStateMachine.setInitialValues": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtScxml.QScxmlStateMachine.setLoader": ('PySide2.QtScxml.QScxmlCompiler.Loader',),
- "PySide2.QtScxml.QScxmlStateMachine.setRunning": ('bool',),
- "PySide2.QtScxml.QScxmlStateMachine.setTableData": ('PySide2.QtScxml.QScxmlTableData',),
- "PySide2.QtScxml.QScxmlStateMachine.start": (),
- "PySide2.QtScxml.QScxmlStateMachine.stateNames": ('bool',),
- "PySide2.QtScxml.QScxmlStateMachine.stop": (),
- "PySide2.QtScxml.QScxmlStateMachine.submitEvent": [('PySide2.QtScxml.QScxmlEvent',), ('str',), ('str', 'typing.Any')],
- "PySide2.QtScxml.QScxmlStateMachine.tableData": (),
-# class PySide2.QtScxml.QScxmlStaticScxmlServiceFactory:
- "PySide2.QtScxml.QScxmlStaticScxmlServiceFactory.__init__": ('PySide2.QtCore.QMetaObject', 'PySide2.QtScxml.QScxmlExecutableContent.InvokeInfo', 'typing.List[int]', 'typing.List[PySide2.QtScxml.QScxmlExecutableContent.ParameterInfo]', 'PySide2.QtCore.QObject'),
- "PySide2.QtScxml.QScxmlStaticScxmlServiceFactory.invoke": ('PySide2.QtScxml.QScxmlStateMachine',),
-# class PySide2.QtScxml.QScxmlTableData:
- "PySide2.QtScxml.QScxmlTableData.__init__": (),
- "PySide2.QtScxml.QScxmlTableData.assignmentInfo": ('int',),
- "PySide2.QtScxml.QScxmlTableData.dataNames": (),
- "PySide2.QtScxml.QScxmlTableData.evaluatorInfo": ('int',),
- "PySide2.QtScxml.QScxmlTableData.foreachInfo": ('int',),
- "PySide2.QtScxml.QScxmlTableData.initialSetup": (),
- "PySide2.QtScxml.QScxmlTableData.instructions": (),
- "PySide2.QtScxml.QScxmlTableData.name": (),
- "PySide2.QtScxml.QScxmlTableData.serviceFactory": ('int',),
- "PySide2.QtScxml.QScxmlTableData.stateMachineTable": (),
- "PySide2.QtScxml.QScxmlTableData.string": ('int',),
- }) if "PySide2.QtScxml" in sys.modules else None
-# Module PySide2.QtScript
-sig_dict.update({
-# class PySide2.QtScript.QScriptClass:
-# class PySide2.QtScript.QScriptClass.Extension:
-# class PySide2.QtScript.QScriptClass.QueryFlag:
- "PySide2.QtScript.QScriptClass.__init__": ('PySide2.QtScript.QScriptEngine',),
- "PySide2.QtScript.QScriptClass.engine": (),
- "PySide2.QtScript.QScriptClass.extension": ('PySide2.QtScript.QScriptClass.Extension', 'typing.Any'),
- "PySide2.QtScript.QScriptClass.name": (),
- "PySide2.QtScript.QScriptClass.newIterator": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptClass.property": ('PySide2.QtScript.QScriptValue', 'PySide2.QtScript.QScriptString', 'int'),
- "PySide2.QtScript.QScriptClass.propertyFlags": ('PySide2.QtScript.QScriptValue', 'PySide2.QtScript.QScriptString', 'int'),
- "PySide2.QtScript.QScriptClass.prototype": (),
- "PySide2.QtScript.QScriptClass.setProperty": ('PySide2.QtScript.QScriptValue', 'PySide2.QtScript.QScriptString', 'int', 'PySide2.QtScript.QScriptValue'),
- "PySide2.QtScript.QScriptClass.supportsExtension": ('PySide2.QtScript.QScriptClass.Extension',),
-# class PySide2.QtScript.QScriptClassPropertyIterator:
- "PySide2.QtScript.QScriptClassPropertyIterator.__init__": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptClassPropertyIterator.flags": (),
- "PySide2.QtScript.QScriptClassPropertyIterator.hasNext": (),
- "PySide2.QtScript.QScriptClassPropertyIterator.hasPrevious": (),
- "PySide2.QtScript.QScriptClassPropertyIterator.id": (),
- "PySide2.QtScript.QScriptClassPropertyIterator.name": (),
- "PySide2.QtScript.QScriptClassPropertyIterator.object": (),
- "PySide2.QtScript.QScriptClassPropertyIterator.previous": (),
- "PySide2.QtScript.QScriptClassPropertyIterator.toBack": (),
- "PySide2.QtScript.QScriptClassPropertyIterator.toFront": (),
-# class PySide2.QtScript.QScriptContext:
-# class PySide2.QtScript.QScriptContext.Error:
-# class PySide2.QtScript.QScriptContext.ExecutionState:
- "PySide2.QtScript.QScriptContext.activationObject": (),
- "PySide2.QtScript.QScriptContext.argument": ('int',),
- "PySide2.QtScript.QScriptContext.argumentCount": (),
- "PySide2.QtScript.QScriptContext.argumentsObject": (),
- "PySide2.QtScript.QScriptContext.backtrace": (),
- "PySide2.QtScript.QScriptContext.callee": (),
- "PySide2.QtScript.QScriptContext.engine": (),
- "PySide2.QtScript.QScriptContext.isCalledAsConstructor": (),
- "PySide2.QtScript.QScriptContext.parentContext": (),
- "PySide2.QtScript.QScriptContext.popScope": (),
- "PySide2.QtScript.QScriptContext.pushScope": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptContext.returnValue": (),
- "PySide2.QtScript.QScriptContext.scopeChain": (),
- "PySide2.QtScript.QScriptContext.setActivationObject": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptContext.setReturnValue": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptContext.setThisObject": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptContext.state": (),
- "PySide2.QtScript.QScriptContext.thisObject": (),
- "PySide2.QtScript.QScriptContext.throwError": [('PySide2.QtScript.QScriptContext.Error', 'str'), ('str',)],
- "PySide2.QtScript.QScriptContext.throwValue": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptContext.toString": (),
-# class PySide2.QtScript.QScriptContextInfo:
-# class PySide2.QtScript.QScriptContextInfo.FunctionType:
- "PySide2.QtScript.QScriptContextInfo.__init__": [(), ('PySide2.QtScript.QScriptContext',), ('PySide2.QtScript.QScriptContextInfo',)],
- "PySide2.QtScript.QScriptContextInfo.__copy__": (),
- "PySide2.QtScript.QScriptContextInfo.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtScript.QScriptContextInfo.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtScript.QScriptContextInfo.columnNumber": (),
- "PySide2.QtScript.QScriptContextInfo.fileName": (),
- "PySide2.QtScript.QScriptContextInfo.functionEndLineNumber": (),
- "PySide2.QtScript.QScriptContextInfo.functionMetaIndex": (),
- "PySide2.QtScript.QScriptContextInfo.functionName": (),
- "PySide2.QtScript.QScriptContextInfo.functionParameterNames": (),
- "PySide2.QtScript.QScriptContextInfo.functionStartLineNumber": (),
- "PySide2.QtScript.QScriptContextInfo.functionType": (),
- "PySide2.QtScript.QScriptContextInfo.isNull": (),
- "PySide2.QtScript.QScriptContextInfo.lineNumber": (),
- "PySide2.QtScript.QScriptContextInfo.scriptId": (),
-# class PySide2.QtScript.QScriptEngine:
-# class PySide2.QtScript.QScriptEngine.QObjectWrapOption:
-# class PySide2.QtScript.QScriptEngine.QObjectWrapOptions:
-# class PySide2.QtScript.QScriptEngine.ValueOwnership:
- "PySide2.QtScript.QScriptEngine.__init__": [(), ('PySide2.QtCore.QObject',)],
- "PySide2.QtScript.QScriptEngine.abortEvaluation": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptEngine.agent": (),
- "PySide2.QtScript.QScriptEngine.availableExtensions": (),
- "PySide2.QtScript.QScriptEngine.canEvaluate": ('str',),
- "PySide2.QtScript.QScriptEngine.clearExceptions": (),
- "PySide2.QtScript.QScriptEngine.collectGarbage": (),
- "PySide2.QtScript.QScriptEngine.currentContext": (),
- "PySide2.QtScript.QScriptEngine.defaultPrototype": ('int',),
- "PySide2.QtScript.QScriptEngine.evaluate": [('PySide2.QtScript.QScriptProgram',), ('str', 'str', 'int')],
- "PySide2.QtScript.QScriptEngine.globalObject": (),
- "PySide2.QtScript.QScriptEngine.hasUncaughtException": (),
- "PySide2.QtScript.QScriptEngine.importExtension": ('str',),
- "PySide2.QtScript.QScriptEngine.importedExtensions": (),
- "PySide2.QtScript.QScriptEngine.installTranslatorFunctions": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptEngine.isEvaluating": (),
- "PySide2.QtScript.QScriptEngine.newActivationObject": (),
- "PySide2.QtScript.QScriptEngine.newArray": ('int',),
- "PySide2.QtScript.QScriptEngine.newDate": [('PySide2.QtCore.QDateTime',), ('float',)],
- "PySide2.QtScript.QScriptEngine.newObject": [(), ('PySide2.QtScript.QScriptClass', 'PySide2.QtScript.QScriptValue')],
- "PySide2.QtScript.QScriptEngine.newQMetaObject": ('PySide2.QtCore.QMetaObject', 'PySide2.QtScript.QScriptValue'),
- "PySide2.QtScript.QScriptEngine.newQObject": [('PySide2.QtCore.QObject', 'PySide2.QtScript.QScriptEngine.ValueOwnership', 'PySide2.QtScript.QScriptEngine.QObjectWrapOptions'), ('PySide2.QtScript.QScriptValue', 'PySide2.QtCore.QObject', 'PySide2.QtScript.QScriptEngine.ValueOwnership', 'PySide2.QtScript.QScriptEngine.QObjectWrapOptions')],
- "PySide2.QtScript.QScriptEngine.newRegExp": [('PySide2.QtCore.QRegExp',), ('str', 'str')],
- "PySide2.QtScript.QScriptEngine.newVariant": [('PySide2.QtScript.QScriptValue', 'typing.Any'), ('typing.Any',)],
- "PySide2.QtScript.QScriptEngine.nullValue": (),
- "PySide2.QtScript.QScriptEngine.objectById": ('int',),
- "PySide2.QtScript.QScriptEngine.popContext": (),
- "PySide2.QtScript.QScriptEngine.processEventsInterval": (),
- "PySide2.QtScript.QScriptEngine.pushContext": (),
- "PySide2.QtScript.QScriptEngine.reportAdditionalMemoryCost": ('int',),
- "PySide2.QtScript.QScriptEngine.setAgent": ('PySide2.QtScript.QScriptEngineAgent',),
- "PySide2.QtScript.QScriptEngine.setDefaultPrototype": ('int', 'PySide2.QtScript.QScriptValue'),
- "PySide2.QtScript.QScriptEngine.setGlobalObject": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptEngine.setProcessEventsInterval": ('int',),
- "PySide2.QtScript.QScriptEngine.toObject": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptEngine.toStringHandle": ('str',),
- "PySide2.QtScript.QScriptEngine.uncaughtException": (),
- "PySide2.QtScript.QScriptEngine.uncaughtExceptionBacktrace": (),
- "PySide2.QtScript.QScriptEngine.uncaughtExceptionLineNumber": (),
- "PySide2.QtScript.QScriptEngine.undefinedValue": (),
-# class PySide2.QtScript.QScriptEngineAgent:
-# class PySide2.QtScript.QScriptEngineAgent.Extension:
- "PySide2.QtScript.QScriptEngineAgent.__init__": ('PySide2.QtScript.QScriptEngine',),
- "PySide2.QtScript.QScriptEngineAgent.contextPop": (),
- "PySide2.QtScript.QScriptEngineAgent.contextPush": (),
- "PySide2.QtScript.QScriptEngineAgent.engine": (),
- "PySide2.QtScript.QScriptEngineAgent.exceptionCatch": ('int', 'PySide2.QtScript.QScriptValue'),
- "PySide2.QtScript.QScriptEngineAgent.exceptionThrow": ('int', 'PySide2.QtScript.QScriptValue', 'bool'),
- "PySide2.QtScript.QScriptEngineAgent.extension": ('PySide2.QtScript.QScriptEngineAgent.Extension', 'typing.Any'),
- "PySide2.QtScript.QScriptEngineAgent.functionEntry": ('int',),
- "PySide2.QtScript.QScriptEngineAgent.functionExit": ('int', 'PySide2.QtScript.QScriptValue'),
- "PySide2.QtScript.QScriptEngineAgent.positionChange": ('int', 'int', 'int'),
- "PySide2.QtScript.QScriptEngineAgent.scriptLoad": ('int', 'str', 'str', 'int'),
- "PySide2.QtScript.QScriptEngineAgent.scriptUnload": ('int',),
- "PySide2.QtScript.QScriptEngineAgent.supportsExtension": ('PySide2.QtScript.QScriptEngineAgent.Extension',),
-# class PySide2.QtScript.QScriptExtensionInterface:
- "PySide2.QtScript.QScriptExtensionInterface.__init__": (),
- "PySide2.QtScript.QScriptExtensionInterface.initialize": ('str', 'PySide2.QtScript.QScriptEngine'),
-# class PySide2.QtScript.QScriptExtensionPlugin:
- "PySide2.QtScript.QScriptExtensionPlugin.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtScript.QScriptExtensionPlugin.initialize": ('str', 'PySide2.QtScript.QScriptEngine'),
- "PySide2.QtScript.QScriptExtensionPlugin.keys": (),
- "PySide2.QtScript.QScriptExtensionPlugin.setupPackage": ('str', 'PySide2.QtScript.QScriptEngine'),
-# class PySide2.QtScript.QScriptProgram:
- "PySide2.QtScript.QScriptProgram.__init__": [(), ('PySide2.QtScript.QScriptProgram',), ('str', 'str', 'int')],
- "PySide2.QtScript.QScriptProgram.__copy__": (),
- "PySide2.QtScript.QScriptProgram.fileName": (),
- "PySide2.QtScript.QScriptProgram.firstLineNumber": (),
- "PySide2.QtScript.QScriptProgram.isNull": (),
- "PySide2.QtScript.QScriptProgram.sourceCode": (),
-# class PySide2.QtScript.QScriptString:
- "PySide2.QtScript.QScriptString.__init__": [(), ('PySide2.QtScript.QScriptString',)],
- "PySide2.QtScript.QScriptString.__copy__": (),
- "PySide2.QtScript.QScriptString.isValid": (),
- "PySide2.QtScript.QScriptString.toArrayIndex": (),
- "PySide2.QtScript.QScriptString.toString": (),
-# class PySide2.QtScript.QScriptValue:
-# class PySide2.QtScript.QScriptValue.PropertyFlag:
-# class PySide2.QtScript.QScriptValue.PropertyFlags:
-# class PySide2.QtScript.QScriptValue.ResolveFlag:
-# class PySide2.QtScript.QScriptValue.ResolveFlags:
-# class PySide2.QtScript.QScriptValue.SpecialValue:
- "PySide2.QtScript.QScriptValue.__init__": [(), ('PySide2.QtScript.QScriptEngine', 'PySide2.QtScript.QScriptValue.SpecialValue'), ('PySide2.QtScript.QScriptEngine', 'bool'), ('PySide2.QtScript.QScriptEngine', 'float'), ('PySide2.QtScript.QScriptEngine', 'int'), ('PySide2.QtScript.QScriptEngine', 'str'), ('PySide2.QtScript.QScriptValue',), ('PySide2.QtScript.QScriptValue.SpecialValue',), ('bool',), ('float',), ('int',), ('str',)],
- "PySide2.QtScript.QScriptValue.__copy__": (),
- "PySide2.QtScript.QScriptValue.__iter__": (),
- "PySide2.QtScript.QScriptValue.__repr__": (),
- "PySide2.QtScript.QScriptValue.call": [('PySide2.QtScript.QScriptValue', 'PySide2.QtScript.QScriptValue'), ('PySide2.QtScript.QScriptValue', 'typing.Sequence[PySide2.QtScript.QScriptValue]')],
- "PySide2.QtScript.QScriptValue.construct": [('PySide2.QtScript.QScriptValue',), ('typing.Sequence[PySide2.QtScript.QScriptValue]',)],
- "PySide2.QtScript.QScriptValue.data": (),
- "PySide2.QtScript.QScriptValue.engine": (),
- "PySide2.QtScript.QScriptValue.equals": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptValue.instanceOf": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptValue.isArray": (),
- "PySide2.QtScript.QScriptValue.isBool": (),
- "PySide2.QtScript.QScriptValue.isBoolean": (),
- "PySide2.QtScript.QScriptValue.isDate": (),
- "PySide2.QtScript.QScriptValue.isError": (),
- "PySide2.QtScript.QScriptValue.isFunction": (),
- "PySide2.QtScript.QScriptValue.isNull": (),
- "PySide2.QtScript.QScriptValue.isNumber": (),
- "PySide2.QtScript.QScriptValue.isObject": (),
- "PySide2.QtScript.QScriptValue.isQMetaObject": (),
- "PySide2.QtScript.QScriptValue.isQObject": (),
- "PySide2.QtScript.QScriptValue.isRegExp": (),
- "PySide2.QtScript.QScriptValue.isString": (),
- "PySide2.QtScript.QScriptValue.isUndefined": (),
- "PySide2.QtScript.QScriptValue.isValid": (),
- "PySide2.QtScript.QScriptValue.isVariant": (),
- "PySide2.QtScript.QScriptValue.lessThan": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptValue.objectId": (),
- "PySide2.QtScript.QScriptValue.property": [('PySide2.QtScript.QScriptString', 'PySide2.QtScript.QScriptValue.ResolveFlags'), ('int', 'PySide2.QtScript.QScriptValue.ResolveFlags'), ('str', 'PySide2.QtScript.QScriptValue.ResolveFlags')],
- "PySide2.QtScript.QScriptValue.propertyFlags": [('PySide2.QtScript.QScriptString', 'PySide2.QtScript.QScriptValue.ResolveFlags'), ('str', 'PySide2.QtScript.QScriptValue.ResolveFlags')],
- "PySide2.QtScript.QScriptValue.prototype": (),
- "PySide2.QtScript.QScriptValue.scope": (),
- "PySide2.QtScript.QScriptValue.scriptClass": (),
- "PySide2.QtScript.QScriptValue.setData": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptValue.setProperty": [('PySide2.QtScript.QScriptString', 'PySide2.QtScript.QScriptValue', 'PySide2.QtScript.QScriptValue.PropertyFlags'), ('int', 'PySide2.QtScript.QScriptValue', 'PySide2.QtScript.QScriptValue.PropertyFlags'), ('str', 'PySide2.QtScript.QScriptValue', 'PySide2.QtScript.QScriptValue.PropertyFlags')],
- "PySide2.QtScript.QScriptValue.setPrototype": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptValue.setScope": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptValue.setScriptClass": ('PySide2.QtScript.QScriptClass',),
- "PySide2.QtScript.QScriptValue.strictlyEquals": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptValue.toBool": (),
- "PySide2.QtScript.QScriptValue.toBoolean": (),
- "PySide2.QtScript.QScriptValue.toDateTime": (),
- "PySide2.QtScript.QScriptValue.toInt32": (),
- "PySide2.QtScript.QScriptValue.toInteger": (),
- "PySide2.QtScript.QScriptValue.toNumber": (),
- "PySide2.QtScript.QScriptValue.toObject": (),
- "PySide2.QtScript.QScriptValue.toQMetaObject": (),
- "PySide2.QtScript.QScriptValue.toQObject": (),
- "PySide2.QtScript.QScriptValue.toRegExp": (),
- "PySide2.QtScript.QScriptValue.toString": (),
- "PySide2.QtScript.QScriptValue.toUInt16": (),
- "PySide2.QtScript.QScriptValue.toUInt32": (),
- "PySide2.QtScript.QScriptValue.toVariant": (),
-# class PySide2.QtScript.QScriptValueIterator:
- "PySide2.QtScript.QScriptValueIterator.__init__": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptValueIterator.__iter__": (),
- "PySide2.QtScript.QScriptValueIterator.flags": (),
- "PySide2.QtScript.QScriptValueIterator.hasNext": (),
- "PySide2.QtScript.QScriptValueIterator.hasPrevious": (),
- "PySide2.QtScript.QScriptValueIterator.name": (),
- "PySide2.QtScript.QScriptValueIterator.previous": (),
- "PySide2.QtScript.QScriptValueIterator.remove": (),
- "PySide2.QtScript.QScriptValueIterator.scriptName": (),
- "PySide2.QtScript.QScriptValueIterator.setValue": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptValueIterator.toBack": (),
- "PySide2.QtScript.QScriptValueIterator.toFront": (),
- "PySide2.QtScript.QScriptValueIterator.value": (),
-# class PySide2.QtScript.QScriptable:
- "PySide2.QtScript.QScriptable.__init__": (),
- "PySide2.QtScript.QScriptable.argument": ('int',),
- "PySide2.QtScript.QScriptable.argumentCount": (),
- "PySide2.QtScript.QScriptable.context": (),
- "PySide2.QtScript.QScriptable.engine": (),
- "PySide2.QtScript.QScriptable.thisObject": (),
- }) if "PySide2.QtScript" in sys.modules else None
-# Module PySide2.QtScriptTools
-sig_dict.update({
-# class PySide2.QtScriptTools.QScriptEngineDebugger:
-# class PySide2.QtScriptTools.QScriptEngineDebugger.DebuggerAction:
-# class PySide2.QtScriptTools.QScriptEngineDebugger.DebuggerState:
-# class PySide2.QtScriptTools.QScriptEngineDebugger.DebuggerWidget:
- "PySide2.QtScriptTools.QScriptEngineDebugger.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtScriptTools.QScriptEngineDebugger.action": ('PySide2.QtScriptTools.QScriptEngineDebugger.DebuggerAction',),
- "PySide2.QtScriptTools.QScriptEngineDebugger.attachTo": ('PySide2.QtScript.QScriptEngine',),
- "PySide2.QtScriptTools.QScriptEngineDebugger.autoShowStandardWindow": (),
- "PySide2.QtScriptTools.QScriptEngineDebugger.createStandardMenu": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtScriptTools.QScriptEngineDebugger.createStandardToolBar": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtScriptTools.QScriptEngineDebugger.setAutoShowStandardWindow": ('bool',),
- "PySide2.QtScriptTools.QScriptEngineDebugger.standardWindow": (),
- "PySide2.QtScriptTools.QScriptEngineDebugger.state": (),
- "PySide2.QtScriptTools.QScriptEngineDebugger.widget": ('PySide2.QtScriptTools.QScriptEngineDebugger.DebuggerWidget',),
- }) if "PySide2.QtScriptTools" in sys.modules else None
-# Module PySide2.QtSensors
-sig_dict.update({
-# class PySide2.QtSensors.QAccelerometer:
-# class PySide2.QtSensors.QAccelerometer.AccelerationMode:
- "PySide2.QtSensors.QAccelerometer.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QAccelerometer.accelerationMode": (),
- "PySide2.QtSensors.QAccelerometer.reading": (),
- "PySide2.QtSensors.QAccelerometer.setAccelerationMode": ('PySide2.QtSensors.QAccelerometer.AccelerationMode',),
-# class PySide2.QtSensors.QAccelerometerFilter:
- "PySide2.QtSensors.QAccelerometerFilter.__init__": (),
- "PySide2.QtSensors.QAccelerometerFilter.filter": [('PySide2.QtSensors.QAccelerometerReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QAccelerometerReading:
- "PySide2.QtSensors.QAccelerometerReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QAccelerometerReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QAccelerometerReading.setX": ('float',),
- "PySide2.QtSensors.QAccelerometerReading.setY": ('float',),
- "PySide2.QtSensors.QAccelerometerReading.setZ": ('float',),
- "PySide2.QtSensors.QAccelerometerReading.x": (),
- "PySide2.QtSensors.QAccelerometerReading.y": (),
- "PySide2.QtSensors.QAccelerometerReading.z": (),
-# class PySide2.QtSensors.QAltimeter:
- "PySide2.QtSensors.QAltimeter.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QAltimeter.reading": (),
-# class PySide2.QtSensors.QAltimeterFilter:
- "PySide2.QtSensors.QAltimeterFilter.__init__": (),
- "PySide2.QtSensors.QAltimeterFilter.filter": [('PySide2.QtSensors.QAltimeterReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QAltimeterReading:
- "PySide2.QtSensors.QAltimeterReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QAltimeterReading.altitude": (),
- "PySide2.QtSensors.QAltimeterReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QAltimeterReading.setAltitude": ('float',),
-# class PySide2.QtSensors.QAmbientLightFilter:
- "PySide2.QtSensors.QAmbientLightFilter.__init__": (),
- "PySide2.QtSensors.QAmbientLightFilter.filter": [('PySide2.QtSensors.QAmbientLightReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QAmbientLightReading:
-# class PySide2.QtSensors.QAmbientLightReading.LightLevel:
- "PySide2.QtSensors.QAmbientLightReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QAmbientLightReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QAmbientLightReading.lightLevel": (),
- "PySide2.QtSensors.QAmbientLightReading.setLightLevel": ('PySide2.QtSensors.QAmbientLightReading.LightLevel',),
-# class PySide2.QtSensors.QAmbientLightSensor:
- "PySide2.QtSensors.QAmbientLightSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QAmbientLightSensor.reading": (),
-# class PySide2.QtSensors.QAmbientTemperatureFilter:
- "PySide2.QtSensors.QAmbientTemperatureFilter.__init__": (),
- "PySide2.QtSensors.QAmbientTemperatureFilter.filter": [('PySide2.QtSensors.QAmbientTemperatureReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QAmbientTemperatureReading:
- "PySide2.QtSensors.QAmbientTemperatureReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QAmbientTemperatureReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QAmbientTemperatureReading.setTemperature": ('float',),
- "PySide2.QtSensors.QAmbientTemperatureReading.temperature": (),
-# class PySide2.QtSensors.QAmbientTemperatureSensor:
- "PySide2.QtSensors.QAmbientTemperatureSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QAmbientTemperatureSensor.reading": (),
-# class PySide2.QtSensors.QCompass:
- "PySide2.QtSensors.QCompass.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QCompass.reading": (),
-# class PySide2.QtSensors.QCompassFilter:
- "PySide2.QtSensors.QCompassFilter.__init__": (),
- "PySide2.QtSensors.QCompassFilter.filter": [('PySide2.QtSensors.QCompassReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QCompassReading:
- "PySide2.QtSensors.QCompassReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QCompassReading.azimuth": (),
- "PySide2.QtSensors.QCompassReading.calibrationLevel": (),
- "PySide2.QtSensors.QCompassReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QCompassReading.setAzimuth": ('float',),
- "PySide2.QtSensors.QCompassReading.setCalibrationLevel": ('float',),
-# class PySide2.QtSensors.QDistanceFilter:
- "PySide2.QtSensors.QDistanceFilter.__init__": (),
- "PySide2.QtSensors.QDistanceFilter.filter": [('PySide2.QtSensors.QDistanceReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QDistanceReading:
- "PySide2.QtSensors.QDistanceReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QDistanceReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QDistanceReading.distance": (),
- "PySide2.QtSensors.QDistanceReading.setDistance": ('float',),
-# class PySide2.QtSensors.QDistanceSensor:
- "PySide2.QtSensors.QDistanceSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QDistanceSensor.reading": (),
-# class PySide2.QtSensors.QGyroscope:
- "PySide2.QtSensors.QGyroscope.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QGyroscope.reading": (),
-# class PySide2.QtSensors.QGyroscopeFilter:
- "PySide2.QtSensors.QGyroscopeFilter.__init__": (),
- "PySide2.QtSensors.QGyroscopeFilter.filter": [('PySide2.QtSensors.QGyroscopeReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QGyroscopeReading:
- "PySide2.QtSensors.QGyroscopeReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QGyroscopeReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QGyroscopeReading.setX": ('float',),
- "PySide2.QtSensors.QGyroscopeReading.setY": ('float',),
- "PySide2.QtSensors.QGyroscopeReading.setZ": ('float',),
- "PySide2.QtSensors.QGyroscopeReading.x": (),
- "PySide2.QtSensors.QGyroscopeReading.y": (),
- "PySide2.QtSensors.QGyroscopeReading.z": (),
-# class PySide2.QtSensors.QHolsterFilter:
- "PySide2.QtSensors.QHolsterFilter.__init__": (),
- "PySide2.QtSensors.QHolsterFilter.filter": [('PySide2.QtSensors.QHolsterReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QHolsterReading:
- "PySide2.QtSensors.QHolsterReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QHolsterReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QHolsterReading.holstered": (),
- "PySide2.QtSensors.QHolsterReading.setHolstered": ('bool',),
-# class PySide2.QtSensors.QHolsterSensor:
- "PySide2.QtSensors.QHolsterSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QHolsterSensor.reading": (),
-# class PySide2.QtSensors.QHumidityFilter:
- "PySide2.QtSensors.QHumidityFilter.__init__": (),
- "PySide2.QtSensors.QHumidityFilter.filter": [('PySide2.QtSensors.QHumidityReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QHumidityReading:
- "PySide2.QtSensors.QHumidityReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QHumidityReading.absoluteHumidity": (),
- "PySide2.QtSensors.QHumidityReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QHumidityReading.relativeHumidity": (),
- "PySide2.QtSensors.QHumidityReading.setAbsoluteHumidity": ('float',),
- "PySide2.QtSensors.QHumidityReading.setRelativeHumidity": ('float',),
-# class PySide2.QtSensors.QHumiditySensor:
- "PySide2.QtSensors.QHumiditySensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QHumiditySensor.reading": (),
-# class PySide2.QtSensors.QIRProximityFilter:
- "PySide2.QtSensors.QIRProximityFilter.__init__": (),
- "PySide2.QtSensors.QIRProximityFilter.filter": [('PySide2.QtSensors.QIRProximityReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QIRProximityReading:
- "PySide2.QtSensors.QIRProximityReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QIRProximityReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QIRProximityReading.reflectance": (),
- "PySide2.QtSensors.QIRProximityReading.setReflectance": ('float',),
-# class PySide2.QtSensors.QIRProximitySensor:
- "PySide2.QtSensors.QIRProximitySensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QIRProximitySensor.reading": (),
-# class PySide2.QtSensors.QLidFilter:
- "PySide2.QtSensors.QLidFilter.__init__": (),
- "PySide2.QtSensors.QLidFilter.filter": [('PySide2.QtSensors.QLidReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QLidReading:
- "PySide2.QtSensors.QLidReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QLidReading.backLidClosed": (),
- "PySide2.QtSensors.QLidReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QLidReading.frontLidClosed": (),
- "PySide2.QtSensors.QLidReading.setBackLidClosed": ('bool',),
- "PySide2.QtSensors.QLidReading.setFrontLidClosed": ('bool',),
-# class PySide2.QtSensors.QLidSensor:
- "PySide2.QtSensors.QLidSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QLidSensor.reading": (),
-# class PySide2.QtSensors.QLightFilter:
- "PySide2.QtSensors.QLightFilter.__init__": (),
- "PySide2.QtSensors.QLightFilter.filter": [('PySide2.QtSensors.QLightReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QLightReading:
- "PySide2.QtSensors.QLightReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QLightReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QLightReading.lux": (),
- "PySide2.QtSensors.QLightReading.setLux": ('float',),
-# class PySide2.QtSensors.QLightSensor:
- "PySide2.QtSensors.QLightSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QLightSensor.fieldOfView": (),
- "PySide2.QtSensors.QLightSensor.reading": (),
- "PySide2.QtSensors.QLightSensor.setFieldOfView": ('float',),
-# class PySide2.QtSensors.QMagnetometer:
- "PySide2.QtSensors.QMagnetometer.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QMagnetometer.reading": (),
- "PySide2.QtSensors.QMagnetometer.returnGeoValues": (),
- "PySide2.QtSensors.QMagnetometer.setReturnGeoValues": ('bool',),
-# class PySide2.QtSensors.QMagnetometerFilter:
- "PySide2.QtSensors.QMagnetometerFilter.__init__": (),
- "PySide2.QtSensors.QMagnetometerFilter.filter": [('PySide2.QtSensors.QMagnetometerReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QMagnetometerReading:
- "PySide2.QtSensors.QMagnetometerReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QMagnetometerReading.calibrationLevel": (),
- "PySide2.QtSensors.QMagnetometerReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QMagnetometerReading.setCalibrationLevel": ('float',),
- "PySide2.QtSensors.QMagnetometerReading.setX": ('float',),
- "PySide2.QtSensors.QMagnetometerReading.setY": ('float',),
- "PySide2.QtSensors.QMagnetometerReading.setZ": ('float',),
- "PySide2.QtSensors.QMagnetometerReading.x": (),
- "PySide2.QtSensors.QMagnetometerReading.y": (),
- "PySide2.QtSensors.QMagnetometerReading.z": (),
-# class PySide2.QtSensors.QOrientationFilter:
- "PySide2.QtSensors.QOrientationFilter.__init__": (),
- "PySide2.QtSensors.QOrientationFilter.filter": [('PySide2.QtSensors.QOrientationReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QOrientationReading:
-# class PySide2.QtSensors.QOrientationReading.Orientation:
- "PySide2.QtSensors.QOrientationReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QOrientationReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QOrientationReading.orientation": (),
- "PySide2.QtSensors.QOrientationReading.setOrientation": ('PySide2.QtSensors.QOrientationReading.Orientation',),
-# class PySide2.QtSensors.QOrientationSensor:
- "PySide2.QtSensors.QOrientationSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QOrientationSensor.reading": (),
-# class PySide2.QtSensors.QPressureFilter:
- "PySide2.QtSensors.QPressureFilter.__init__": (),
- "PySide2.QtSensors.QPressureFilter.filter": [('PySide2.QtSensors.QPressureReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QPressureReading:
- "PySide2.QtSensors.QPressureReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QPressureReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QPressureReading.pressure": (),
- "PySide2.QtSensors.QPressureReading.setPressure": ('float',),
- "PySide2.QtSensors.QPressureReading.setTemperature": ('float',),
- "PySide2.QtSensors.QPressureReading.temperature": (),
-# class PySide2.QtSensors.QPressureSensor:
- "PySide2.QtSensors.QPressureSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QPressureSensor.reading": (),
-# class PySide2.QtSensors.QProximityFilter:
- "PySide2.QtSensors.QProximityFilter.__init__": (),
- "PySide2.QtSensors.QProximityFilter.filter": [('PySide2.QtSensors.QProximityReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QProximityReading:
- "PySide2.QtSensors.QProximityReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QProximityReading.close": (),
- "PySide2.QtSensors.QProximityReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QProximityReading.setClose": ('bool',),
-# class PySide2.QtSensors.QProximitySensor:
- "PySide2.QtSensors.QProximitySensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QProximitySensor.reading": (),
-# class PySide2.QtSensors.QRotationFilter:
- "PySide2.QtSensors.QRotationFilter.__init__": (),
- "PySide2.QtSensors.QRotationFilter.filter": [('PySide2.QtSensors.QRotationReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QRotationReading:
- "PySide2.QtSensors.QRotationReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QRotationReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QRotationReading.setFromEuler": ('float', 'float', 'float'),
- "PySide2.QtSensors.QRotationReading.x": (),
- "PySide2.QtSensors.QRotationReading.y": (),
- "PySide2.QtSensors.QRotationReading.z": (),
-# class PySide2.QtSensors.QRotationSensor:
- "PySide2.QtSensors.QRotationSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QRotationSensor.hasZ": (),
- "PySide2.QtSensors.QRotationSensor.reading": (),
- "PySide2.QtSensors.QRotationSensor.setHasZ": ('bool',),
-# class PySide2.QtSensors.QSensor:
-# class PySide2.QtSensors.QSensor.AxesOrientationMode:
-# class PySide2.QtSensors.QSensor.Feature:
- "PySide2.QtSensors.QSensor.__init__": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QObject'),
- "PySide2.QtSensors.QSensor.addFilter": ('PySide2.QtSensors.QSensorFilter',),
- "PySide2.QtSensors.QSensor.availableDataRates": (),
- "PySide2.QtSensors.QSensor.axesOrientationMode": (),
- "PySide2.QtSensors.QSensor.backend": (),
- "PySide2.QtSensors.QSensor.bufferSize": (),
- "PySide2.QtSensors.QSensor.connectToBackend": (),
- "PySide2.QtSensors.QSensor.currentOrientation": (),
- "PySide2.QtSensors.QSensor.dataRate": (),
- "PySide2.QtSensors.QSensor.defaultSensorForType": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtSensors.QSensor.description": (),
- "PySide2.QtSensors.QSensor.efficientBufferSize": (),
- "PySide2.QtSensors.QSensor.error": (),
- "PySide2.QtSensors.QSensor.filters": (),
- "PySide2.QtSensors.QSensor.identifier": (),
- "PySide2.QtSensors.QSensor.isActive": (),
- "PySide2.QtSensors.QSensor.isAlwaysOn": (),
- "PySide2.QtSensors.QSensor.isBusy": (),
- "PySide2.QtSensors.QSensor.isConnectedToBackend": (),
- "PySide2.QtSensors.QSensor.isFeatureSupported": ('PySide2.QtSensors.QSensor.Feature',),
- "PySide2.QtSensors.QSensor.maxBufferSize": (),
- "PySide2.QtSensors.QSensor.outputRange": (),
- "PySide2.QtSensors.QSensor.outputRanges": (),
- "PySide2.QtSensors.QSensor.reading": (),
- "PySide2.QtSensors.QSensor.removeFilter": ('PySide2.QtSensors.QSensorFilter',),
- "PySide2.QtSensors.QSensor.sensorTypes": (),
- "PySide2.QtSensors.QSensor.sensorsForType": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtSensors.QSensor.setActive": ('bool',),
- "PySide2.QtSensors.QSensor.setAlwaysOn": ('bool',),
- "PySide2.QtSensors.QSensor.setAxesOrientationMode": ('PySide2.QtSensors.QSensor.AxesOrientationMode',),
- "PySide2.QtSensors.QSensor.setBufferSize": ('int',),
- "PySide2.QtSensors.QSensor.setCurrentOrientation": ('int',),
- "PySide2.QtSensors.QSensor.setDataRate": ('int',),
- "PySide2.QtSensors.QSensor.setEfficientBufferSize": ('int',),
- "PySide2.QtSensors.QSensor.setIdentifier": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtSensors.QSensor.setMaxBufferSize": ('int',),
- "PySide2.QtSensors.QSensor.setOutputRange": ('int',),
- "PySide2.QtSensors.QSensor.setSkipDuplicates": ('bool',),
- "PySide2.QtSensors.QSensor.setUserOrientation": ('int',),
- "PySide2.QtSensors.QSensor.skipDuplicates": (),
- "PySide2.QtSensors.QSensor.start": (),
- "PySide2.QtSensors.QSensor.stop": (),
- "PySide2.QtSensors.QSensor.type": (),
- "PySide2.QtSensors.QSensor.userOrientation": (),
-# class PySide2.QtSensors.QSensorBackend:
- "PySide2.QtSensors.QSensorBackend.__init__": ('PySide2.QtSensors.QSensor', 'PySide2.QtCore.QObject'),
- "PySide2.QtSensors.QSensorBackend.addDataRate": ('float', 'float'),
- "PySide2.QtSensors.QSensorBackend.addOutputRange": ('float', 'float', 'float'),
- "PySide2.QtSensors.QSensorBackend.isFeatureSupported": ('PySide2.QtSensors.QSensor.Feature',),
- "PySide2.QtSensors.QSensorBackend.newReadingAvailable": (),
- "PySide2.QtSensors.QSensorBackend.reading": (),
- "PySide2.QtSensors.QSensorBackend.sensor": (),
- "PySide2.QtSensors.QSensorBackend.sensorBusy": (),
- "PySide2.QtSensors.QSensorBackend.sensorError": ('int',),
- "PySide2.QtSensors.QSensorBackend.sensorStopped": (),
- "PySide2.QtSensors.QSensorBackend.setDataRates": ('PySide2.QtSensors.QSensor',),
- "PySide2.QtSensors.QSensorBackend.setDescription": ('str',),
- "PySide2.QtSensors.QSensorBackend.start": (),
- "PySide2.QtSensors.QSensorBackend.stop": (),
-# class PySide2.QtSensors.QSensorBackendFactory:
- "PySide2.QtSensors.QSensorBackendFactory.__init__": (),
- "PySide2.QtSensors.QSensorBackendFactory.createBackend": ('PySide2.QtSensors.QSensor',),
-# class PySide2.QtSensors.QSensorChangesInterface:
- "PySide2.QtSensors.QSensorChangesInterface.__init__": (),
- "PySide2.QtSensors.QSensorChangesInterface.sensorsChanged": (),
-# class PySide2.QtSensors.QSensorFilter:
- "PySide2.QtSensors.QSensorFilter.__init__": (),
- "PySide2.QtSensors.QSensorFilter.filter": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QSensorFilter.setSensor": ('PySide2.QtSensors.QSensor',),
-# class PySide2.QtSensors.QSensorGestureManager:
- "PySide2.QtSensors.QSensorGestureManager.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QSensorGestureManager.gestureIds": (),
- "PySide2.QtSensors.QSensorGestureManager.recognizerSignals": ('str',),
- "PySide2.QtSensors.QSensorGestureManager.registerSensorGestureRecognizer": ('PySide2.QtSensors.QSensorGestureRecognizer',),
- "PySide2.QtSensors.QSensorGestureManager.sensorGestureRecognizer": ('str',),
-# class PySide2.QtSensors.QSensorGesturePluginInterface:
- "PySide2.QtSensors.QSensorGesturePluginInterface.__init__": (),
- "PySide2.QtSensors.QSensorGesturePluginInterface.createRecognizers": (),
- "PySide2.QtSensors.QSensorGesturePluginInterface.name": (),
- "PySide2.QtSensors.QSensorGesturePluginInterface.supportedIds": (),
-# class PySide2.QtSensors.QSensorGestureRecognizer:
- "PySide2.QtSensors.QSensorGestureRecognizer.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QSensorGestureRecognizer.create": (),
- "PySide2.QtSensors.QSensorGestureRecognizer.createBackend": (),
- "PySide2.QtSensors.QSensorGestureRecognizer.gestureSignals": (),
- "PySide2.QtSensors.QSensorGestureRecognizer.id": (),
- "PySide2.QtSensors.QSensorGestureRecognizer.isActive": (),
- "PySide2.QtSensors.QSensorGestureRecognizer.start": (),
- "PySide2.QtSensors.QSensorGestureRecognizer.startBackend": (),
- "PySide2.QtSensors.QSensorGestureRecognizer.stop": (),
- "PySide2.QtSensors.QSensorGestureRecognizer.stopBackend": (),
-# class PySide2.QtSensors.QSensorManager:
- "PySide2.QtSensors.QSensorManager.__init__": (),
- "PySide2.QtSensors.QSensorManager.createBackend": ('PySide2.QtSensors.QSensor',),
- "PySide2.QtSensors.QSensorManager.isBackendRegistered": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtSensors.QSensorManager.registerBackend": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray', 'PySide2.QtSensors.QSensorBackendFactory'),
- "PySide2.QtSensors.QSensorManager.setDefaultBackend": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtSensors.QSensorManager.unregisterBackend": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
-# class PySide2.QtSensors.QSensorPluginInterface:
- "PySide2.QtSensors.QSensorPluginInterface.__init__": (),
- "PySide2.QtSensors.QSensorPluginInterface.registerSensors": (),
-# class PySide2.QtSensors.QSensorReading:
- "PySide2.QtSensors.QSensorReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QSensorReading.setTimestamp": ('int',),
- "PySide2.QtSensors.QSensorReading.timestamp": (),
- "PySide2.QtSensors.QSensorReading.value": ('int',),
- "PySide2.QtSensors.QSensorReading.valueCount": (),
-# class PySide2.QtSensors.QTapFilter:
- "PySide2.QtSensors.QTapFilter.__init__": (),
- "PySide2.QtSensors.QTapFilter.filter": [('PySide2.QtSensors.QSensorReading',), ('PySide2.QtSensors.QTapReading',)],
-# class PySide2.QtSensors.QTapReading:
-# class PySide2.QtSensors.QTapReading.TapDirection:
- "PySide2.QtSensors.QTapReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QTapReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QTapReading.isDoubleTap": (),
- "PySide2.QtSensors.QTapReading.setDoubleTap": ('bool',),
- "PySide2.QtSensors.QTapReading.setTapDirection": ('PySide2.QtSensors.QTapReading.TapDirection',),
- "PySide2.QtSensors.QTapReading.tapDirection": (),
-# class PySide2.QtSensors.QTapSensor:
- "PySide2.QtSensors.QTapSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QTapSensor.reading": (),
- "PySide2.QtSensors.QTapSensor.returnDoubleTapEvents": (),
- "PySide2.QtSensors.QTapSensor.setReturnDoubleTapEvents": ('bool',),
-# class PySide2.QtSensors.QTiltFilter:
- "PySide2.QtSensors.QTiltFilter.__init__": (),
- "PySide2.QtSensors.QTiltFilter.filter": [('PySide2.QtSensors.QSensorReading',), ('PySide2.QtSensors.QTiltReading',)],
-# class PySide2.QtSensors.QTiltReading:
- "PySide2.QtSensors.QTiltReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QTiltReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QTiltReading.setXRotation": ('float',),
- "PySide2.QtSensors.QTiltReading.setYRotation": ('float',),
- "PySide2.QtSensors.QTiltReading.xRotation": (),
- "PySide2.QtSensors.QTiltReading.yRotation": (),
-# class PySide2.QtSensors.QTiltSensor:
- "PySide2.QtSensors.QTiltSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QTiltSensor.calibrate": (),
- "PySide2.QtSensors.QTiltSensor.reading": (),
-# class PySide2.QtSensors.qoutputrange:
- "PySide2.QtSensors.qoutputrange.__init__": [(), ('PySide2.QtSensors.qoutputrange',)],
- "PySide2.QtSensors.qoutputrange.__copy__": (),
- }) if "PySide2.QtSensors" in sys.modules else None
-# Module PySide2.QtTextToSpeech
-sig_dict.update({
-# class PySide2.QtTextToSpeech.QTextToSpeech:
-# class PySide2.QtTextToSpeech.QTextToSpeech.State:
- "PySide2.QtTextToSpeech.QTextToSpeech.__init__": [('PySide2.QtCore.QObject',), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtTextToSpeech.QTextToSpeech.availableEngines": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.availableLocales": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.availableVoices": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.locale": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.pause": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.pitch": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.rate": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.resume": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.say": ('str',),
- "PySide2.QtTextToSpeech.QTextToSpeech.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtTextToSpeech.QTextToSpeech.setPitch": ('float',),
- "PySide2.QtTextToSpeech.QTextToSpeech.setRate": ('float',),
- "PySide2.QtTextToSpeech.QTextToSpeech.setVoice": ('PySide2.QtTextToSpeech.QVoice',),
- "PySide2.QtTextToSpeech.QTextToSpeech.setVolume": ('float',),
- "PySide2.QtTextToSpeech.QTextToSpeech.state": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.stop": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.voice": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.volume": (),
-# class PySide2.QtTextToSpeech.QTextToSpeechEngine:
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.availableLocales": (),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.availableVoices": (),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.createVoice": ('str', 'PySide2.QtTextToSpeech.QVoice.Gender', 'PySide2.QtTextToSpeech.QVoice.Age', 'typing.Any'),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.locale": (),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.pause": (),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.pitch": (),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.rate": (),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.resume": (),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.say": ('str',),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.setPitch": ('float',),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.setRate": ('float',),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.setVoice": ('PySide2.QtTextToSpeech.QVoice',),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.setVolume": ('float',),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.state": (),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.stop": (),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.voice": (),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.voiceData": ('PySide2.QtTextToSpeech.QVoice',),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.volume": (),
-# class PySide2.QtTextToSpeech.QVoice:
-# class PySide2.QtTextToSpeech.QVoice.Age:
-# class PySide2.QtTextToSpeech.QVoice.Gender:
- "PySide2.QtTextToSpeech.QVoice.__init__": [(), ('PySide2.QtTextToSpeech.QVoice',)],
- "PySide2.QtTextToSpeech.QVoice.__copy__": (),
- "PySide2.QtTextToSpeech.QVoice.age": (),
- "PySide2.QtTextToSpeech.QVoice.ageName": ('PySide2.QtTextToSpeech.QVoice.Age',),
- "PySide2.QtTextToSpeech.QVoice.gender": (),
- "PySide2.QtTextToSpeech.QVoice.genderName": ('PySide2.QtTextToSpeech.QVoice.Gender',),
- "PySide2.QtTextToSpeech.QVoice.name": (),
- }) if "PySide2.QtTextToSpeech" in sys.modules else None
-# Module PySide2.QtCharts
-sig_dict.update({
-# class PySide2.QtCharts.QtCharts:
-# class PySide2.QtCharts.QtCharts.QAbstractAxis:
-# class PySide2.QtCharts.QtCharts.QAbstractAxis.AxisType:
- "PySide2.QtCharts.QtCharts.QAbstractAxis.alignment": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.gridLineColor": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.gridLinePen": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.hide": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.isGridLineVisible": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.isLineVisible": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.isMinorGridLineVisible": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.isReverse": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.isTitleVisible": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.isVisible": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.labelsAngle": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.labelsBrush": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.labelsColor": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.labelsEditable": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.labelsFont": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.labelsVisible": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.linePen": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.linePenColor": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.minorGridLineColor": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.minorGridLinePen": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.orientation": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setGridLineColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setGridLinePen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setGridLineVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setLabelsAngle": ('int',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setLabelsBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setLabelsColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setLabelsEditable": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setLabelsFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setLabelsVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setLinePen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setLinePenColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setLineVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setMax": ('typing.Any',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setMin": ('typing.Any',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setMinorGridLineColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setMinorGridLinePen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setMinorGridLineVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setRange": ('typing.Any', 'typing.Any'),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setReverse": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setShadesBorderColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setShadesBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setShadesColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setShadesPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setShadesVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setTitleBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setTitleFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setTitleText": ('str',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setTitleVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.shadesBorderColor": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.shadesBrush": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.shadesColor": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.shadesPen": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.shadesVisible": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.show": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.titleBrush": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.titleFont": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.titleText": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.type": (),
-# class PySide2.QtCharts.QtCharts.QAbstractBarSeries:
-# class PySide2.QtCharts.QtCharts.QAbstractBarSeries.LabelsPosition:
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.append": [('PySide2.QtCharts.QtCharts.QBarSet',), ('typing.Sequence[PySide2.QtCharts.QtCharts.QBarSet]',)],
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.barSets": (),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.barWidth": (),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.clear": (),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.count": (),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.insert": ('int', 'PySide2.QtCharts.QtCharts.QBarSet'),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.isLabelsVisible": (),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.labelsAngle": (),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.labelsFormat": (),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.labelsPosition": (),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.labelsPrecision": (),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.remove": ('PySide2.QtCharts.QtCharts.QBarSet',),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.setBarWidth": ('float',),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.setLabelsAngle": ('float',),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.setLabelsFormat": ('str',),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.setLabelsPosition": ('PySide2.QtCharts.QtCharts.QAbstractBarSeries.LabelsPosition',),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.setLabelsPrecision": ('int',),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.setLabelsVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.take": ('PySide2.QtCharts.QtCharts.QBarSet',),
-# class PySide2.QtCharts.QtCharts.QAbstractSeries:
-# class PySide2.QtCharts.QtCharts.QAbstractSeries.SeriesType:
- "PySide2.QtCharts.QtCharts.QAbstractSeries.attachAxis": ('PySide2.QtCharts.QtCharts.QAbstractAxis',),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.attachedAxes": (),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.chart": (),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.detachAxis": ('PySide2.QtCharts.QtCharts.QAbstractAxis',),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.hide": (),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.isVisible": (),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.name": (),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.opacity": (),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.setName": ('str',),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.setOpacity": ('float',),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.setUseOpenGL": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.setVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.show": (),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.type": (),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.useOpenGL": (),
-# class PySide2.QtCharts.QtCharts.QAreaLegendMarker:
- "PySide2.QtCharts.QtCharts.QAreaLegendMarker.__init__": ('PySide2.QtCharts.QtCharts.QAreaSeries', 'PySide2.QtCharts.QtCharts.QLegend', 'PySide2.QtCore.QObject'),
- "PySide2.QtCharts.QtCharts.QAreaLegendMarker.series": (),
- "PySide2.QtCharts.QtCharts.QAreaLegendMarker.type": (),
-# class PySide2.QtCharts.QtCharts.QAreaSeries:
- "PySide2.QtCharts.QtCharts.QAreaSeries.__init__": [('PySide2.QtCharts.QtCharts.QLineSeries', 'PySide2.QtCharts.QtCharts.QLineSeries'), ('PySide2.QtCore.QObject',)],
- "PySide2.QtCharts.QtCharts.QAreaSeries.borderColor": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.brush": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.color": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.lowerSeries": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.pen": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.pointLabelsClipping": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.pointLabelsColor": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.pointLabelsFont": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.pointLabelsFormat": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.pointLabelsVisible": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.pointsVisible": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setBorderColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setLowerSeries": ('PySide2.QtCharts.QtCharts.QLineSeries',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setPointLabelsClipping": ('bool',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setPointLabelsColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setPointLabelsFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setPointLabelsFormat": ('str',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setPointLabelsVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setPointsVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setUpperSeries": ('PySide2.QtCharts.QtCharts.QLineSeries',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.type": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.upperSeries": (),
-# class PySide2.QtCharts.QtCharts.QBarCategoryAxis:
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.append": [('str',), ('typing.Sequence[str]',)],
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.at": ('int',),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.categories": (),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.clear": (),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.count": (),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.insert": ('int', 'str'),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.max": (),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.min": (),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.remove": ('str',),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.replace": ('str', 'str'),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.setCategories": ('typing.Sequence[str]',),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.setMax": [('str',), ('typing.Any',)],
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.setMin": [('str',), ('typing.Any',)],
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.setRange": [('str', 'str'), ('typing.Any', 'typing.Any')],
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.type": (),
-# class PySide2.QtCharts.QtCharts.QBarLegendMarker:
- "PySide2.QtCharts.QtCharts.QBarLegendMarker.__init__": ('PySide2.QtCharts.QtCharts.QAbstractBarSeries', 'PySide2.QtCharts.QtCharts.QBarSet', 'PySide2.QtCharts.QtCharts.QLegend', 'PySide2.QtCore.QObject'),
- "PySide2.QtCharts.QtCharts.QBarLegendMarker.barset": (),
- "PySide2.QtCharts.QtCharts.QBarLegendMarker.series": (),
- "PySide2.QtCharts.QtCharts.QBarLegendMarker.type": (),
-# class PySide2.QtCharts.QtCharts.QBarModelMapper:
- "PySide2.QtCharts.QtCharts.QBarModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.count": (),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.first": (),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.firstBarSetSection": (),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.lastBarSetSection": (),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.orientation": (),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.setCount": ('int',),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.setFirst": ('int',),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.setFirstBarSetSection": ('int',),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.setLastBarSetSection": ('int',),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QAbstractBarSeries',),
-# class PySide2.QtCharts.QtCharts.QBarSeries:
- "PySide2.QtCharts.QtCharts.QBarSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QBarSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QBarSet:
- "PySide2.QtCharts.QtCharts.QBarSet.__init__": ('str', 'PySide2.QtCore.QObject'),
- "PySide2.QtCharts.QtCharts.QBarSet.__lshift__": ('float',),
- "PySide2.QtCharts.QtCharts.QBarSet.append": [('float',), ('typing.Sequence[float]',)],
- "PySide2.QtCharts.QtCharts.QBarSet.at": ('int',),
- "PySide2.QtCharts.QtCharts.QBarSet.borderColor": (),
- "PySide2.QtCharts.QtCharts.QBarSet.brush": (),
- "PySide2.QtCharts.QtCharts.QBarSet.color": (),
- "PySide2.QtCharts.QtCharts.QBarSet.count": (),
- "PySide2.QtCharts.QtCharts.QBarSet.insert": ('int', 'float'),
- "PySide2.QtCharts.QtCharts.QBarSet.label": (),
- "PySide2.QtCharts.QtCharts.QBarSet.labelBrush": (),
- "PySide2.QtCharts.QtCharts.QBarSet.labelColor": (),
- "PySide2.QtCharts.QtCharts.QBarSet.labelFont": (),
- "PySide2.QtCharts.QtCharts.QBarSet.pen": (),
- "PySide2.QtCharts.QtCharts.QBarSet.remove": ('int', 'int'),
- "PySide2.QtCharts.QtCharts.QBarSet.replace": ('int', 'float'),
- "PySide2.QtCharts.QtCharts.QBarSet.setBorderColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QBarSet.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QBarSet.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QBarSet.setLabel": ('str',),
- "PySide2.QtCharts.QtCharts.QBarSet.setLabelBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QBarSet.setLabelColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QBarSet.setLabelFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtCharts.QtCharts.QBarSet.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QBarSet.sum": (),
-# class PySide2.QtCharts.QtCharts.QBoxPlotLegendMarker:
- "PySide2.QtCharts.QtCharts.QBoxPlotLegendMarker.__init__": ('PySide2.QtCharts.QtCharts.QBoxPlotSeries', 'PySide2.QtCharts.QtCharts.QLegend', 'PySide2.QtCore.QObject'),
- "PySide2.QtCharts.QtCharts.QBoxPlotLegendMarker.series": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotLegendMarker.type": (),
-# class PySide2.QtCharts.QtCharts.QBoxPlotModelMapper:
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.count": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.first": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.firstBoxSetSection": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.lastBoxSetSection": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.orientation": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.setCount": ('int',),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.setFirst": ('int',),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.setFirstBoxSetSection": ('int',),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.setLastBoxSetSection": ('int',),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QBoxPlotSeries',),
-# class PySide2.QtCharts.QtCharts.QBoxPlotSeries:
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.append": [('PySide2.QtCharts.QtCharts.QBoxSet',), ('typing.Sequence[PySide2.QtCharts.QtCharts.QBoxSet]',)],
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.boxOutlineVisible": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.boxSets": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.boxWidth": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.brush": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.clear": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.count": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.insert": ('int', 'PySide2.QtCharts.QtCharts.QBoxSet'),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.pen": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.remove": ('PySide2.QtCharts.QtCharts.QBoxSet',),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.setBoxOutlineVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.setBoxWidth": ('float',),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.take": ('PySide2.QtCharts.QtCharts.QBoxSet',),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QBoxSet:
-# class PySide2.QtCharts.QtCharts.QBoxSet.ValuePositions:
- "PySide2.QtCharts.QtCharts.QBoxSet.__init__": [('float', 'float', 'float', 'float', 'float', 'str', 'PySide2.QtCore.QObject'), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtCharts.QtCharts.QBoxSet.__lshift__": ('float',),
- "PySide2.QtCharts.QtCharts.QBoxSet.append": [('float',), ('typing.Sequence[float]',)],
- "PySide2.QtCharts.QtCharts.QBoxSet.at": ('int',),
- "PySide2.QtCharts.QtCharts.QBoxSet.brush": (),
- "PySide2.QtCharts.QtCharts.QBoxSet.clear": (),
- "PySide2.QtCharts.QtCharts.QBoxSet.count": (),
- "PySide2.QtCharts.QtCharts.QBoxSet.label": (),
- "PySide2.QtCharts.QtCharts.QBoxSet.pen": (),
- "PySide2.QtCharts.QtCharts.QBoxSet.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QBoxSet.setLabel": ('str',),
- "PySide2.QtCharts.QtCharts.QBoxSet.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QBoxSet.setValue": ('int', 'float'),
-# class PySide2.QtCharts.QtCharts.QCandlestickLegendMarker:
- "PySide2.QtCharts.QtCharts.QCandlestickLegendMarker.__init__": ('PySide2.QtCharts.QtCharts.QCandlestickSeries', 'PySide2.QtCharts.QtCharts.QLegend', 'PySide2.QtCore.QObject'),
- "PySide2.QtCharts.QtCharts.QCandlestickLegendMarker.series": (),
- "PySide2.QtCharts.QtCharts.QCandlestickLegendMarker.type": (),
-# class PySide2.QtCharts.QtCharts.QCandlestickModelMapper:
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.close": (),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.firstSetSection": (),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.high": (),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.lastSetSection": (),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.low": (),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.open": (),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.orientation": (),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.setClose": ('int',),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.setFirstSetSection": ('int',),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.setHigh": ('int',),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.setLastSetSection": ('int',),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.setLow": ('int',),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.setOpen": ('int',),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QCandlestickSeries',),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.setTimestamp": ('int',),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.timestamp": (),
-# class PySide2.QtCharts.QtCharts.QCandlestickSeries:
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.append": [('PySide2.QtCharts.QtCharts.QCandlestickSet',), ('typing.Sequence[PySide2.QtCharts.QtCharts.QCandlestickSet]',)],
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.bodyOutlineVisible": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.bodyWidth": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.brush": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.capsVisible": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.capsWidth": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.clear": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.count": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.decreasingColor": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.increasingColor": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.insert": ('int', 'PySide2.QtCharts.QtCharts.QCandlestickSet'),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.maximumColumnWidth": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.minimumColumnWidth": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.pen": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.remove": [('PySide2.QtCharts.QtCharts.QCandlestickSet',), ('typing.Sequence[PySide2.QtCharts.QtCharts.QCandlestickSet]',)],
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.setBodyOutlineVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.setBodyWidth": ('float',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.setCapsVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.setCapsWidth": ('float',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.setDecreasingColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.setIncreasingColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.setMaximumColumnWidth": ('float',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.setMinimumColumnWidth": ('float',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.sets": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.take": ('PySide2.QtCharts.QtCharts.QCandlestickSet',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QCandlestickSet:
- "PySide2.QtCharts.QtCharts.QCandlestickSet.__init__": [('float', 'PySide2.QtCore.QObject'), ('float', 'float', 'float', 'float', 'float', 'PySide2.QtCore.QObject')],
- "PySide2.QtCharts.QtCharts.QCandlestickSet.brush": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.close": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.high": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.low": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.open": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.pen": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.setClose": ('float',),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.setHigh": ('float',),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.setLow": ('float',),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.setOpen": ('float',),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.setTimestamp": ('float',),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.timestamp": (),
-# class PySide2.QtCharts.QtCharts.QCategoryAxis:
-# class PySide2.QtCharts.QtCharts.QCategoryAxis.AxisLabelsPosition:
- "PySide2.QtCharts.QtCharts.QCategoryAxis.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.append": ('str', 'float'),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.categoriesLabels": (),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.count": (),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.endValue": ('str',),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.labelsPosition": (),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.remove": ('str',),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.replaceLabel": ('str', 'str'),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.setLabelsPosition": ('PySide2.QtCharts.QtCharts.QCategoryAxis.AxisLabelsPosition',),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.setStartValue": ('float',),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.startValue": ('str',),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.type": (),
-# class PySide2.QtCharts.QtCharts.QChart:
-# class PySide2.QtCharts.QtCharts.QChart.AnimationOption:
-# class PySide2.QtCharts.QtCharts.QChart.AnimationOptions:
-# class PySide2.QtCharts.QtCharts.QChart.ChartTheme:
-# class PySide2.QtCharts.QtCharts.QChart.ChartType:
- "PySide2.QtCharts.QtCharts.QChart.__init__": [('PySide2.QtCharts.QtCharts.QChart.ChartType', 'PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.Qt.WindowFlags'), ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.Qt.WindowFlags')],
- "PySide2.QtCharts.QtCharts.QChart.addAxis": ('PySide2.QtCharts.QtCharts.QAbstractAxis', 'PySide2.QtCore.Qt.Alignment'),
- "PySide2.QtCharts.QtCharts.QChart.addSeries": ('PySide2.QtCharts.QtCharts.QAbstractSeries',),
- "PySide2.QtCharts.QtCharts.QChart.animationDuration": (),
- "PySide2.QtCharts.QtCharts.QChart.animationEasingCurve": (),
- "PySide2.QtCharts.QtCharts.QChart.animationOptions": (),
- "PySide2.QtCharts.QtCharts.QChart.axes": ('PySide2.QtCore.Qt.Orientations', 'PySide2.QtCharts.QtCharts.QAbstractSeries'),
- "PySide2.QtCharts.QtCharts.QChart.axisX": ('PySide2.QtCharts.QtCharts.QAbstractSeries',),
- "PySide2.QtCharts.QtCharts.QChart.axisY": ('PySide2.QtCharts.QtCharts.QAbstractSeries',),
- "PySide2.QtCharts.QtCharts.QChart.backgroundBrush": (),
- "PySide2.QtCharts.QtCharts.QChart.backgroundPen": (),
- "PySide2.QtCharts.QtCharts.QChart.backgroundRoundness": (),
- "PySide2.QtCharts.QtCharts.QChart.chartType": (),
- "PySide2.QtCharts.QtCharts.QChart.createDefaultAxes": (),
- "PySide2.QtCharts.QtCharts.QChart.isBackgroundVisible": (),
- "PySide2.QtCharts.QtCharts.QChart.isDropShadowEnabled": (),
- "PySide2.QtCharts.QtCharts.QChart.isPlotAreaBackgroundVisible": (),
- "PySide2.QtCharts.QtCharts.QChart.isZoomed": (),
- "PySide2.QtCharts.QtCharts.QChart.legend": (),
- "PySide2.QtCharts.QtCharts.QChart.locale": (),
- "PySide2.QtCharts.QtCharts.QChart.localizeNumbers": (),
- "PySide2.QtCharts.QtCharts.QChart.mapToPosition": ('PySide2.QtCore.QPointF', 'PySide2.QtCharts.QtCharts.QAbstractSeries'),
- "PySide2.QtCharts.QtCharts.QChart.mapToValue": ('PySide2.QtCore.QPointF', 'PySide2.QtCharts.QtCharts.QAbstractSeries'),
- "PySide2.QtCharts.QtCharts.QChart.margins": (),
- "PySide2.QtCharts.QtCharts.QChart.plotArea": (),
- "PySide2.QtCharts.QtCharts.QChart.plotAreaBackgroundBrush": (),
- "PySide2.QtCharts.QtCharts.QChart.plotAreaBackgroundPen": (),
- "PySide2.QtCharts.QtCharts.QChart.removeAllSeries": (),
- "PySide2.QtCharts.QtCharts.QChart.removeAxis": ('PySide2.QtCharts.QtCharts.QAbstractAxis',),
- "PySide2.QtCharts.QtCharts.QChart.removeSeries": ('PySide2.QtCharts.QtCharts.QAbstractSeries',),
- "PySide2.QtCharts.QtCharts.QChart.scroll": ('float', 'float'),
- "PySide2.QtCharts.QtCharts.QChart.series": (),
- "PySide2.QtCharts.QtCharts.QChart.setAnimationDuration": ('int',),
- "PySide2.QtCharts.QtCharts.QChart.setAnimationEasingCurve": ('PySide2.QtCore.QEasingCurve',),
- "PySide2.QtCharts.QtCharts.QChart.setAnimationOptions": ('PySide2.QtCharts.QtCharts.QChart.AnimationOptions',),
- "PySide2.QtCharts.QtCharts.QChart.setAxisX": ('PySide2.QtCharts.QtCharts.QAbstractAxis', 'PySide2.QtCharts.QtCharts.QAbstractSeries'),
- "PySide2.QtCharts.QtCharts.QChart.setAxisY": ('PySide2.QtCharts.QtCharts.QAbstractAxis', 'PySide2.QtCharts.QtCharts.QAbstractSeries'),
- "PySide2.QtCharts.QtCharts.QChart.setBackgroundBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QChart.setBackgroundPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QChart.setBackgroundRoundness": ('float',),
- "PySide2.QtCharts.QtCharts.QChart.setBackgroundVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QChart.setDropShadowEnabled": ('bool',),
- "PySide2.QtCharts.QtCharts.QChart.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtCharts.QtCharts.QChart.setLocalizeNumbers": ('bool',),
- "PySide2.QtCharts.QtCharts.QChart.setMargins": ('PySide2.QtCore.QMargins',),
- "PySide2.QtCharts.QtCharts.QChart.setPlotArea": ('PySide2.QtCore.QRectF',),
- "PySide2.QtCharts.QtCharts.QChart.setPlotAreaBackgroundBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QChart.setPlotAreaBackgroundPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QChart.setPlotAreaBackgroundVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QChart.setTheme": ('PySide2.QtCharts.QtCharts.QChart.ChartTheme',),
- "PySide2.QtCharts.QtCharts.QChart.setTitle": ('str',),
- "PySide2.QtCharts.QtCharts.QChart.setTitleBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QChart.setTitleFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtCharts.QtCharts.QChart.theme": (),
- "PySide2.QtCharts.QtCharts.QChart.title": (),
- "PySide2.QtCharts.QtCharts.QChart.titleBrush": (),
- "PySide2.QtCharts.QtCharts.QChart.titleFont": (),
- "PySide2.QtCharts.QtCharts.QChart.zoom": ('float',),
- "PySide2.QtCharts.QtCharts.QChart.zoomIn": [(), ('PySide2.QtCore.QRectF',)],
- "PySide2.QtCharts.QtCharts.QChart.zoomOut": (),
- "PySide2.QtCharts.QtCharts.QChart.zoomReset": (),
-# class PySide2.QtCharts.QtCharts.QChartView:
-# class PySide2.QtCharts.QtCharts.QChartView.RubberBand:
-# class PySide2.QtCharts.QtCharts.QChartView.RubberBands:
- "PySide2.QtCharts.QtCharts.QChartView.__init__": [('PySide2.QtCharts.QtCharts.QChart', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtCharts.QtCharts.QChartView.chart": (),
- "PySide2.QtCharts.QtCharts.QChartView.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtCharts.QtCharts.QChartView.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtCharts.QtCharts.QChartView.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtCharts.QtCharts.QChartView.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtCharts.QtCharts.QChartView.rubberBand": (),
- "PySide2.QtCharts.QtCharts.QChartView.setChart": ('PySide2.QtCharts.QtCharts.QChart',),
- "PySide2.QtCharts.QtCharts.QChartView.setRubberBand": ('PySide2.QtCharts.QtCharts.QChartView.RubberBands',),
-# class PySide2.QtCharts.QtCharts.QDateTimeAxis:
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.format": (),
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.max": (),
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.min": (),
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.setFormat": ('str',),
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.setMax": [('PySide2.QtCore.QDateTime',), ('typing.Any',)],
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.setMin": [('PySide2.QtCore.QDateTime',), ('typing.Any',)],
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.setRange": [('PySide2.QtCore.QDateTime', 'PySide2.QtCore.QDateTime'), ('typing.Any', 'typing.Any')],
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.setTickCount": ('int',),
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.tickCount": (),
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.type": (),
-# class PySide2.QtCharts.QtCharts.QHBarModelMapper:
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.columnCount": (),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.firstBarSetRow": (),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.firstColumn": (),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.lastBarSetRow": (),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.setColumnCount": ('int',),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.setFirstBarSetRow": ('int',),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.setFirstColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.setLastBarSetRow": ('int',),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QAbstractBarSeries',),
-# class PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper:
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.columnCount": (),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.firstBoxSetRow": (),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.firstColumn": (),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.lastBoxSetRow": (),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.setColumnCount": ('int',),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.setFirstBoxSetRow": ('int',),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.setFirstColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.setLastBoxSetRow": ('int',),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QBoxPlotSeries',),
-# class PySide2.QtCharts.QtCharts.QHCandlestickModelMapper:
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.closeColumn": (),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.firstSetRow": (),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.highColumn": (),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.lastSetRow": (),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.lowColumn": (),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.openColumn": (),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.orientation": (),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.setCloseColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.setFirstSetRow": ('int',),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.setHighColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.setLastSetRow": ('int',),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.setLowColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.setOpenColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.setTimestampColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.timestampColumn": (),
-# class PySide2.QtCharts.QtCharts.QHPieModelMapper:
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.columnCount": (),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.firstColumn": (),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.labelsRow": (),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.setColumnCount": ('int',),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.setFirstColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.setLabelsRow": ('int',),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QPieSeries',),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.setValuesRow": ('int',),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.valuesRow": (),
-# class PySide2.QtCharts.QtCharts.QHXYModelMapper:
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.columnCount": (),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.firstColumn": (),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.setColumnCount": ('int',),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.setFirstColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QXYSeries',),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.setXRow": ('int',),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.setYRow": ('int',),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.xRow": (),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.yRow": (),
-# class PySide2.QtCharts.QtCharts.QHorizontalBarSeries:
- "PySide2.QtCharts.QtCharts.QHorizontalBarSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QHorizontalBarSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QHorizontalPercentBarSeries:
- "PySide2.QtCharts.QtCharts.QHorizontalPercentBarSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QHorizontalPercentBarSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QHorizontalStackedBarSeries:
- "PySide2.QtCharts.QtCharts.QHorizontalStackedBarSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QHorizontalStackedBarSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QLegend:
-# class PySide2.QtCharts.QtCharts.QLegend.MarkerShape:
- "PySide2.QtCharts.QtCharts.QLegend.alignment": (),
- "PySide2.QtCharts.QtCharts.QLegend.attachToChart": (),
- "PySide2.QtCharts.QtCharts.QLegend.borderColor": (),
- "PySide2.QtCharts.QtCharts.QLegend.brush": (),
- "PySide2.QtCharts.QtCharts.QLegend.color": (),
- "PySide2.QtCharts.QtCharts.QLegend.detachFromChart": (),
- "PySide2.QtCharts.QtCharts.QLegend.font": (),
- "PySide2.QtCharts.QtCharts.QLegend.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtCharts.QtCharts.QLegend.isAttachedToChart": (),
- "PySide2.QtCharts.QtCharts.QLegend.isBackgroundVisible": (),
- "PySide2.QtCharts.QtCharts.QLegend.labelBrush": (),
- "PySide2.QtCharts.QtCharts.QLegend.labelColor": (),
- "PySide2.QtCharts.QtCharts.QLegend.markerShape": (),
- "PySide2.QtCharts.QtCharts.QLegend.markers": ('PySide2.QtCharts.QtCharts.QAbstractSeries',),
- "PySide2.QtCharts.QtCharts.QLegend.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtCharts.QtCharts.QLegend.pen": (),
- "PySide2.QtCharts.QtCharts.QLegend.reverseMarkers": (),
- "PySide2.QtCharts.QtCharts.QLegend.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtCharts.QtCharts.QLegend.setBackgroundVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QLegend.setBorderColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QLegend.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QLegend.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QLegend.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtCharts.QtCharts.QLegend.setLabelBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QLegend.setLabelColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QLegend.setMarkerShape": ('PySide2.QtCharts.QtCharts.QLegend.MarkerShape',),
- "PySide2.QtCharts.QtCharts.QLegend.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QLegend.setReverseMarkers": ('bool',),
- "PySide2.QtCharts.QtCharts.QLegend.setShowToolTips": ('bool',),
- "PySide2.QtCharts.QtCharts.QLegend.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtCharts.QtCharts.QLegend.showToolTips": (),
-# class PySide2.QtCharts.QtCharts.QLegendMarker:
-# class PySide2.QtCharts.QtCharts.QLegendMarker.LegendMarkerType:
- "PySide2.QtCharts.QtCharts.QLegendMarker.brush": (),
- "PySide2.QtCharts.QtCharts.QLegendMarker.font": (),
- "PySide2.QtCharts.QtCharts.QLegendMarker.isVisible": (),
- "PySide2.QtCharts.QtCharts.QLegendMarker.label": (),
- "PySide2.QtCharts.QtCharts.QLegendMarker.labelBrush": (),
- "PySide2.QtCharts.QtCharts.QLegendMarker.pen": (),
- "PySide2.QtCharts.QtCharts.QLegendMarker.series": (),
- "PySide2.QtCharts.QtCharts.QLegendMarker.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QLegendMarker.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtCharts.QtCharts.QLegendMarker.setLabel": ('str',),
- "PySide2.QtCharts.QtCharts.QLegendMarker.setLabelBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QLegendMarker.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QLegendMarker.setShape": ('PySide2.QtCharts.QtCharts.QLegend.MarkerShape',),
- "PySide2.QtCharts.QtCharts.QLegendMarker.setVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QLegendMarker.shape": (),
- "PySide2.QtCharts.QtCharts.QLegendMarker.type": (),
-# class PySide2.QtCharts.QtCharts.QLineSeries:
- "PySide2.QtCharts.QtCharts.QLineSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QLineSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QLogValueAxis:
- "PySide2.QtCharts.QtCharts.QLogValueAxis.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QLogValueAxis.base": (),
- "PySide2.QtCharts.QtCharts.QLogValueAxis.labelFormat": (),
- "PySide2.QtCharts.QtCharts.QLogValueAxis.max": (),
- "PySide2.QtCharts.QtCharts.QLogValueAxis.min": (),
- "PySide2.QtCharts.QtCharts.QLogValueAxis.minorTickCount": (),
- "PySide2.QtCharts.QtCharts.QLogValueAxis.setBase": ('float',),
- "PySide2.QtCharts.QtCharts.QLogValueAxis.setLabelFormat": ('str',),
- "PySide2.QtCharts.QtCharts.QLogValueAxis.setMax": [('float',), ('typing.Any',)],
- "PySide2.QtCharts.QtCharts.QLogValueAxis.setMin": [('float',), ('typing.Any',)],
- "PySide2.QtCharts.QtCharts.QLogValueAxis.setMinorTickCount": ('int',),
- "PySide2.QtCharts.QtCharts.QLogValueAxis.setRange": [('float', 'float'), ('typing.Any', 'typing.Any')],
- "PySide2.QtCharts.QtCharts.QLogValueAxis.tickCount": (),
- "PySide2.QtCharts.QtCharts.QLogValueAxis.type": (),
-# class PySide2.QtCharts.QtCharts.QPercentBarSeries:
- "PySide2.QtCharts.QtCharts.QPercentBarSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QPercentBarSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QPieLegendMarker:
- "PySide2.QtCharts.QtCharts.QPieLegendMarker.__init__": ('PySide2.QtCharts.QtCharts.QPieSeries', 'PySide2.QtCharts.QtCharts.QPieSlice', 'PySide2.QtCharts.QtCharts.QLegend', 'PySide2.QtCore.QObject'),
- "PySide2.QtCharts.QtCharts.QPieLegendMarker.series": (),
- "PySide2.QtCharts.QtCharts.QPieLegendMarker.slice": (),
- "PySide2.QtCharts.QtCharts.QPieLegendMarker.type": (),
-# class PySide2.QtCharts.QtCharts.QPieModelMapper:
- "PySide2.QtCharts.QtCharts.QPieModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.count": (),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.first": (),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.labelsSection": (),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.orientation": (),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.setCount": ('int',),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.setFirst": ('int',),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.setLabelsSection": ('int',),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QPieSeries',),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.setValuesSection": ('int',),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.valuesSection": (),
-# class PySide2.QtCharts.QtCharts.QPieSeries:
- "PySide2.QtCharts.QtCharts.QPieSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QPieSeries.__lshift__": ('PySide2.QtCharts.QtCharts.QPieSlice',),
- "PySide2.QtCharts.QtCharts.QPieSeries.append": [('PySide2.QtCharts.QtCharts.QPieSlice',), ('str', 'float'), ('typing.Sequence[PySide2.QtCharts.QtCharts.QPieSlice]',)],
- "PySide2.QtCharts.QtCharts.QPieSeries.clear": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.count": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.holeSize": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.horizontalPosition": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.insert": ('int', 'PySide2.QtCharts.QtCharts.QPieSlice'),
- "PySide2.QtCharts.QtCharts.QPieSeries.isEmpty": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.pieEndAngle": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.pieSize": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.pieStartAngle": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.remove": ('PySide2.QtCharts.QtCharts.QPieSlice',),
- "PySide2.QtCharts.QtCharts.QPieSeries.setHoleSize": ('float',),
- "PySide2.QtCharts.QtCharts.QPieSeries.setHorizontalPosition": ('float',),
- "PySide2.QtCharts.QtCharts.QPieSeries.setLabelsPosition": ('PySide2.QtCharts.QtCharts.QPieSlice.LabelPosition',),
- "PySide2.QtCharts.QtCharts.QPieSeries.setLabelsVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QPieSeries.setPieEndAngle": ('float',),
- "PySide2.QtCharts.QtCharts.QPieSeries.setPieSize": ('float',),
- "PySide2.QtCharts.QtCharts.QPieSeries.setPieStartAngle": ('float',),
- "PySide2.QtCharts.QtCharts.QPieSeries.setVerticalPosition": ('float',),
- "PySide2.QtCharts.QtCharts.QPieSeries.slices": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.sum": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.take": ('PySide2.QtCharts.QtCharts.QPieSlice',),
- "PySide2.QtCharts.QtCharts.QPieSeries.type": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.verticalPosition": (),
-# class PySide2.QtCharts.QtCharts.QPieSlice:
-# class PySide2.QtCharts.QtCharts.QPieSlice.LabelPosition:
- "PySide2.QtCharts.QtCharts.QPieSlice.__init__": [('PySide2.QtCore.QObject',), ('str', 'float', 'PySide2.QtCore.QObject')],
- "PySide2.QtCharts.QtCharts.QPieSlice.angleSpan": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.borderColor": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.borderWidth": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.brush": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.color": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.explodeDistanceFactor": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.isExploded": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.isLabelVisible": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.label": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.labelArmLengthFactor": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.labelBrush": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.labelColor": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.labelFont": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.labelPosition": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.pen": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.percentage": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.series": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.setBorderColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setBorderWidth": ('int',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setExplodeDistanceFactor": ('float',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setExploded": ('bool',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setLabel": ('str',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setLabelArmLengthFactor": ('float',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setLabelBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setLabelColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setLabelFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setLabelPosition": ('PySide2.QtCharts.QtCharts.QPieSlice.LabelPosition',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setLabelVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setValue": ('float',),
- "PySide2.QtCharts.QtCharts.QPieSlice.startAngle": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.value": (),
-# class PySide2.QtCharts.QtCharts.QPolarChart:
-# class PySide2.QtCharts.QtCharts.QPolarChart.PolarOrientation:
-# class PySide2.QtCharts.QtCharts.QPolarChart.PolarOrientations:
- "PySide2.QtCharts.QtCharts.QPolarChart.__init__": ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtCharts.QtCharts.QPolarChart.addAxis": [('PySide2.QtCharts.QtCharts.QAbstractAxis', 'PySide2.QtCharts.QtCharts.QPolarChart.PolarOrientation'), ('PySide2.QtCharts.QtCharts.QAbstractAxis', 'PySide2.QtCore.Qt.Alignment')],
- "PySide2.QtCharts.QtCharts.QPolarChart.axisPolarOrientation": ('PySide2.QtCharts.QtCharts.QAbstractAxis',),
-# class PySide2.QtCharts.QtCharts.QScatterSeries:
-# class PySide2.QtCharts.QtCharts.QScatterSeries.MarkerShape:
- "PySide2.QtCharts.QtCharts.QScatterSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QScatterSeries.borderColor": (),
- "PySide2.QtCharts.QtCharts.QScatterSeries.brush": (),
- "PySide2.QtCharts.QtCharts.QScatterSeries.color": (),
- "PySide2.QtCharts.QtCharts.QScatterSeries.markerShape": (),
- "PySide2.QtCharts.QtCharts.QScatterSeries.markerSize": (),
- "PySide2.QtCharts.QtCharts.QScatterSeries.setBorderColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QScatterSeries.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QScatterSeries.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QScatterSeries.setMarkerShape": ('PySide2.QtCharts.QtCharts.QScatterSeries.MarkerShape',),
- "PySide2.QtCharts.QtCharts.QScatterSeries.setMarkerSize": ('float',),
- "PySide2.QtCharts.QtCharts.QScatterSeries.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QScatterSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QSplineSeries:
- "PySide2.QtCharts.QtCharts.QSplineSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QSplineSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QStackedBarSeries:
- "PySide2.QtCharts.QtCharts.QStackedBarSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QStackedBarSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QVBarModelMapper:
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.firstBarSetColumn": (),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.firstRow": (),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.lastBarSetColumn": (),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.rowCount": (),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.setFirstBarSetColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.setFirstRow": ('int',),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.setLastBarSetColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.setRowCount": ('int',),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QAbstractBarSeries',),
-# class PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper:
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.firstBoxSetColumn": (),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.firstRow": (),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.lastBoxSetColumn": (),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.rowCount": (),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.setFirstBoxSetColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.setFirstRow": ('int',),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.setLastBoxSetColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.setRowCount": ('int',),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QBoxPlotSeries',),
-# class PySide2.QtCharts.QtCharts.QVCandlestickModelMapper:
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.closeRow": (),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.firstSetColumn": (),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.highRow": (),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.lastSetColumn": (),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.lowRow": (),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.openRow": (),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.orientation": (),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.setCloseRow": ('int',),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.setFirstSetColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.setHighRow": ('int',),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.setLastSetColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.setLowRow": ('int',),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.setOpenRow": ('int',),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.setTimestampRow": ('int',),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.timestampRow": (),
-# class PySide2.QtCharts.QtCharts.QVPieModelMapper:
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.firstRow": (),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.labelsColumn": (),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.rowCount": (),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.setFirstRow": ('int',),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.setLabelsColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.setRowCount": ('int',),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QPieSeries',),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.setValuesColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.valuesColumn": (),
-# class PySide2.QtCharts.QtCharts.QVXYModelMapper:
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.firstRow": (),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.rowCount": (),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.setFirstRow": ('int',),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.setRowCount": ('int',),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QXYSeries',),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.setXColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.setYColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.xColumn": (),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.yColumn": (),
-# class PySide2.QtCharts.QtCharts.QValueAxis:
- "PySide2.QtCharts.QtCharts.QValueAxis.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QValueAxis.applyNiceNumbers": (),
- "PySide2.QtCharts.QtCharts.QValueAxis.labelFormat": (),
- "PySide2.QtCharts.QtCharts.QValueAxis.max": (),
- "PySide2.QtCharts.QtCharts.QValueAxis.min": (),
- "PySide2.QtCharts.QtCharts.QValueAxis.minorTickCount": (),
- "PySide2.QtCharts.QtCharts.QValueAxis.setLabelFormat": ('str',),
- "PySide2.QtCharts.QtCharts.QValueAxis.setMax": [('float',), ('typing.Any',)],
- "PySide2.QtCharts.QtCharts.QValueAxis.setMin": [('float',), ('typing.Any',)],
- "PySide2.QtCharts.QtCharts.QValueAxis.setMinorTickCount": ('int',),
- "PySide2.QtCharts.QtCharts.QValueAxis.setRange": [('float', 'float'), ('typing.Any', 'typing.Any')],
- "PySide2.QtCharts.QtCharts.QValueAxis.setTickAnchor": ('float',),
- "PySide2.QtCharts.QtCharts.QValueAxis.setTickCount": ('int',),
- "PySide2.QtCharts.QtCharts.QValueAxis.setTickInterval": ('float',),
- "PySide2.QtCharts.QtCharts.QValueAxis.tickAnchor": (),
- "PySide2.QtCharts.QtCharts.QValueAxis.tickCount": (),
- "PySide2.QtCharts.QtCharts.QValueAxis.tickInterval": (),
- "PySide2.QtCharts.QtCharts.QValueAxis.type": (),
-# class PySide2.QtCharts.QtCharts.QXYLegendMarker:
- "PySide2.QtCharts.QtCharts.QXYLegendMarker.__init__": ('PySide2.QtCharts.QtCharts.QXYSeries', 'PySide2.QtCharts.QtCharts.QLegend', 'PySide2.QtCore.QObject'),
- "PySide2.QtCharts.QtCharts.QXYLegendMarker.series": (),
- "PySide2.QtCharts.QtCharts.QXYLegendMarker.type": (),
-# class PySide2.QtCharts.QtCharts.QXYModelMapper:
- "PySide2.QtCharts.QtCharts.QXYModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.count": (),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.first": (),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.orientation": (),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.setCount": ('int',),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.setFirst": ('int',),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QXYSeries',),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.setXSection": ('int',),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.setYSection": ('int',),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.xSection": (),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.ySection": (),
-# class PySide2.QtCharts.QtCharts.QXYSeries:
- "PySide2.QtCharts.QtCharts.QXYSeries.__lshift__": [('PySide2.QtCore.QPointF',), ('typing.Sequence[PySide2.QtCore.QPointF]',)],
- "PySide2.QtCharts.QtCharts.QXYSeries.append": [('PySide2.QtCore.QPointF',), ('float', 'float'), ('typing.Sequence[PySide2.QtCore.QPointF]',)],
- "PySide2.QtCharts.QtCharts.QXYSeries.at": ('int',),
- "PySide2.QtCharts.QtCharts.QXYSeries.brush": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.clear": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.color": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.count": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.insert": ('int', 'PySide2.QtCore.QPointF'),
- "PySide2.QtCharts.QtCharts.QXYSeries.pen": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.pointLabelsClipping": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.pointLabelsColor": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.pointLabelsFont": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.pointLabelsFormat": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.pointLabelsVisible": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.points": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.pointsVector": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.pointsVisible": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.remove": [('PySide2.QtCore.QPointF',), ('float', 'float'), ('int',)],
- "PySide2.QtCharts.QtCharts.QXYSeries.removePoints": ('int', 'int'),
- "PySide2.QtCharts.QtCharts.QXYSeries.replace": [('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'), ('float', 'float', 'float', 'float'), ('int', 'PySide2.QtCore.QPointF'), ('int', 'float', 'float'), ('typing.List[PySide2.QtCore.QPointF]',), ('typing.Sequence[PySide2.QtCore.QPointF]',)],
- "PySide2.QtCharts.QtCharts.QXYSeries.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QXYSeries.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QXYSeries.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QXYSeries.setPointLabelsClipping": ('bool',),
- "PySide2.QtCharts.QtCharts.QXYSeries.setPointLabelsColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QXYSeries.setPointLabelsFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtCharts.QtCharts.QXYSeries.setPointLabelsFormat": ('str',),
- "PySide2.QtCharts.QtCharts.QXYSeries.setPointLabelsVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QXYSeries.setPointsVisible": ('bool',),
- }) if "PySide2.QtCharts" in sys.modules else None
-# Module PySide2.QtSvg
-sig_dict.update({
-# class PySide2.QtSvg.QGraphicsSvgItem:
- "PySide2.QtSvg.QGraphicsSvgItem.__init__": [('PySide2.QtWidgets.QGraphicsItem',), ('str', 'PySide2.QtWidgets.QGraphicsItem')],
- "PySide2.QtSvg.QGraphicsSvgItem.boundingRect": (),
- "PySide2.QtSvg.QGraphicsSvgItem.elementId": (),
- "PySide2.QtSvg.QGraphicsSvgItem.isCachingEnabled": (),
- "PySide2.QtSvg.QGraphicsSvgItem.maximumCacheSize": (),
- "PySide2.QtSvg.QGraphicsSvgItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtSvg.QGraphicsSvgItem.renderer": (),
- "PySide2.QtSvg.QGraphicsSvgItem.setCachingEnabled": ('bool',),
- "PySide2.QtSvg.QGraphicsSvgItem.setElementId": ('str',),
- "PySide2.QtSvg.QGraphicsSvgItem.setMaximumCacheSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtSvg.QGraphicsSvgItem.setSharedRenderer": ('PySide2.QtSvg.QSvgRenderer',),
- "PySide2.QtSvg.QGraphicsSvgItem.type": (),
-# class PySide2.QtSvg.QSvgGenerator:
- "PySide2.QtSvg.QSvgGenerator.__init__": (),
- "PySide2.QtSvg.QSvgGenerator.description": (),
- "PySide2.QtSvg.QSvgGenerator.fileName": (),
- "PySide2.QtSvg.QSvgGenerator.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtSvg.QSvgGenerator.outputDevice": (),
- "PySide2.QtSvg.QSvgGenerator.paintEngine": (),
- "PySide2.QtSvg.QSvgGenerator.resolution": (),
- "PySide2.QtSvg.QSvgGenerator.setDescription": ('str',),
- "PySide2.QtSvg.QSvgGenerator.setFileName": ('str',),
- "PySide2.QtSvg.QSvgGenerator.setOutputDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtSvg.QSvgGenerator.setResolution": ('int',),
- "PySide2.QtSvg.QSvgGenerator.setSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtSvg.QSvgGenerator.setTitle": ('str',),
- "PySide2.QtSvg.QSvgGenerator.setViewBox": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',)],
- "PySide2.QtSvg.QSvgGenerator.size": (),
- "PySide2.QtSvg.QSvgGenerator.title": (),
- "PySide2.QtSvg.QSvgGenerator.viewBox": (),
- "PySide2.QtSvg.QSvgGenerator.viewBoxF": (),
-# class PySide2.QtSvg.QSvgRenderer:
- "PySide2.QtSvg.QSvgRenderer.__init__": [('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QObject',), ('PySide2.QtCore.QXmlStreamReader', 'PySide2.QtCore.QObject'), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtSvg.QSvgRenderer.animated": (),
- "PySide2.QtSvg.QSvgRenderer.animationDuration": (),
- "PySide2.QtSvg.QSvgRenderer.boundsOnElement": ('str',),
- "PySide2.QtSvg.QSvgRenderer.currentFrame": (),
- "PySide2.QtSvg.QSvgRenderer.defaultSize": (),
- "PySide2.QtSvg.QSvgRenderer.elementExists": ('str',),
- "PySide2.QtSvg.QSvgRenderer.framesPerSecond": (),
- "PySide2.QtSvg.QSvgRenderer.isValid": (),
- "PySide2.QtSvg.QSvgRenderer.load": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QXmlStreamReader',), ('str',)],
- "PySide2.QtSvg.QSvgRenderer.matrixForElement": ('str',),
- "PySide2.QtSvg.QSvgRenderer.render": [('PySide2.QtGui.QPainter',), ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF'), ('PySide2.QtGui.QPainter', 'str', 'PySide2.QtCore.QRectF')],
- "PySide2.QtSvg.QSvgRenderer.setCurrentFrame": ('int',),
- "PySide2.QtSvg.QSvgRenderer.setFramesPerSecond": ('int',),
- "PySide2.QtSvg.QSvgRenderer.setViewBox": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',)],
- "PySide2.QtSvg.QSvgRenderer.viewBox": (),
- "PySide2.QtSvg.QSvgRenderer.viewBoxF": (),
-# class PySide2.QtSvg.QSvgWidget:
- "PySide2.QtSvg.QSvgWidget.__init__": [('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtSvg.QSvgWidget.load": [('PySide2.QtCore.QByteArray',), ('str',)],
- "PySide2.QtSvg.QSvgWidget.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtSvg.QSvgWidget.renderer": (),
- "PySide2.QtSvg.QSvgWidget.sizeHint": (),
- }) if "PySide2.QtSvg" in sys.modules else None
-# Module PySide2.QtDataVisualization
-sig_dict.update({
-# class PySide2.QtDataVisualization.QtDataVisualization:
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DBars:
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.__init__": ('PySide2.QtGui.QSurfaceFormat', 'PySide2.QtGui.QWindow'),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.addAxis": ('PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.addSeries": ('PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.axes": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.barSpacing": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.barThickness": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.columnAxis": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.floorLevel": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.insertSeries": ('int', 'PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries'),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.isBarSpacingRelative": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.isMultiSeriesUniform": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.primarySeries": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.releaseAxis": ('PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.removeSeries": ('PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.rowAxis": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.selectedSeries": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.seriesList": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.setBarSpacing": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.setBarSpacingRelative": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.setBarThickness": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.setColumnAxis": ('PySide2.QtDataVisualization.QtDataVisualization.QCategory3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.setFloorLevel": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.setMultiSeriesUniform": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.setPrimarySeries": ('PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.setRowAxis": ('PySide2.QtDataVisualization.QtDataVisualization.QCategory3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.setValueAxis": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.valueAxis": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera:
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.CameraPreset:
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.cameraPreset": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.copyValuesFrom": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.maxZoomLevel": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.minZoomLevel": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.setCameraPosition": ('float', 'float', 'float'),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.setCameraPreset": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.CameraPreset',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.setMaxZoomLevel": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.setMinZoomLevel": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.setTarget": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.setWrapXRotation": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.setWrapYRotation": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.setXRotation": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.setYRotation": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.setZoomLevel": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.target": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.wrapXRotation": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.wrapYRotation": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.xRotation": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.yRotation": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.zoomLevel": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler:
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.isRotationEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.isSelectionEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.isZoomAtTargetEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.isZoomEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent', 'PySide2.QtCore.QPoint'),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.mousePressEvent": ('PySide2.QtGui.QMouseEvent', 'PySide2.QtCore.QPoint'),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent', 'PySide2.QtCore.QPoint'),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.setRotationEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.setSelectionEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.setZoomAtTargetEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.setZoomEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DLight:
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DLight.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DLight.isAutoPosition": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DLight.setAutoPosition": ('bool',),
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DObject:
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DObject.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DObject.copyValuesFrom": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DObject.isDirty": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DObject.parentScene": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DObject.position": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DObject.setDirty": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DObject.setPosition": ('PySide2.QtGui.QVector3D',),
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter:
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.__init__": ('PySide2.QtGui.QSurfaceFormat', 'PySide2.QtGui.QWindow'),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.addAxis": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.addSeries": ('PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.axes": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.axisX": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.axisY": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.axisZ": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.releaseAxis": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.removeSeries": ('PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.selectedSeries": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.seriesList": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.setAxisX": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.setAxisY": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.setAxisZ": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DScene:
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.activeCamera": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.activeLight": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.devicePixelRatio": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.graphPositionQuery": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.invalidSelectionPoint": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.isPointInPrimarySubView": ('PySide2.QtCore.QPoint',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.isPointInSecondarySubView": ('PySide2.QtCore.QPoint',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.isSecondarySubviewOnTop": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.isSlicingActive": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.primarySubViewport": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.secondarySubViewport": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.selectionQueryPosition": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.setActiveCamera": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.setActiveLight": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DLight',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.setDevicePixelRatio": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.setGraphPositionQuery": ('PySide2.QtCore.QPoint',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.setPrimarySubViewport": ('PySide2.QtCore.QRect',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.setSecondarySubViewport": ('PySide2.QtCore.QRect',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.setSecondarySubviewOnTop": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.setSelectionQueryPosition": ('PySide2.QtCore.QPoint',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.setSlicingActive": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.viewport": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface:
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.__init__": ('PySide2.QtGui.QSurfaceFormat', 'PySide2.QtGui.QWindow'),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.addAxis": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.addSeries": ('PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.axes": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.axisX": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.axisY": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.axisZ": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.flipHorizontalGrid": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.releaseAxis": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.removeSeries": ('PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.selectedSeries": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.seriesList": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.setAxisX": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.setAxisY": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.setAxisZ": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.setFlipHorizontalGrid": ('bool',),
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme:
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.ColorStyle:
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.Theme:
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.Theme', 'PySide2.QtCore.QObject')],
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.ambientLightStrength": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.backgroundColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.baseColors": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.baseGradients": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.colorStyle": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.font": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.gridLineColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.highlightLightStrength": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.isBackgroundEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.isGridEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.isLabelBackgroundEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.isLabelBorderEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.labelBackgroundColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.labelTextColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.lightColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.lightStrength": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.multiHighlightColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.multiHighlightGradient": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setAmbientLightStrength": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setBackgroundColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setBackgroundEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setBaseColors": ('typing.Sequence[PySide2.QtGui.QColor]',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setBaseGradients": ('typing.Sequence[PySide2.QtGui.QLinearGradient]',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setColorStyle": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.ColorStyle',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setGridEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setGridLineColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setHighlightLightStrength": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setLabelBackgroundColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setLabelBackgroundEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setLabelBorderEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setLabelTextColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setLightColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setLightStrength": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setMultiHighlightColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setMultiHighlightGradient": ('PySide2.QtGui.QLinearGradient',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setSingleHighlightColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setSingleHighlightGradient": ('PySide2.QtGui.QLinearGradient',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setType": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.Theme',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setWindowColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.singleHighlightColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.singleHighlightGradient": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.type": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.windowColor": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.AxisOrientation:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.AxisType:
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.isAutoAdjustRange": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.isTitleFixed": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.isTitleVisible": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.labelAutoRotation": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.labels": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.max": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.min": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.orientation": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.setAutoAdjustRange": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.setLabelAutoRotation": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.setLabels": ('typing.Sequence[str]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.setMax": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.setMin": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.setRange": ('float', 'float'),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.setTitle": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.setTitleFixed": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.setTitleVisible": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.title": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.type": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.ElementType:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.OptimizationHint:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.OptimizationHints:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.SelectionFlag:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.SelectionFlags:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.ShadowQuality:
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.activeInputHandler": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.activeTheme": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.addCustomItem": ('PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.addInputHandler": ('PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.addTheme": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.aspectRatio": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.clearSelection": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.currentFps": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.customItems": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.exposeEvent": ('PySide2.QtGui.QExposeEvent',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.hasContext": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.horizontalAspectRatio": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.inputHandlers": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.isOrthoProjection": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.isPolar": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.isReflection": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.locale": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.margin": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.measureFps": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.optimizationHints": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.queriedGraphPosition": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.radialLabelOffset": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.reflectivity": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.releaseCustomItem": ('PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.releaseInputHandler": ('PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.releaseTheme": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.removeCustomItem": ('PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.removeCustomItemAt": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.removeCustomItems": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.renderToImage": ('int', 'PySide2.QtCore.QSize'),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.scene": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.selectedAxis": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.selectedCustomItem": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.selectedCustomItemIndex": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.selectedElement": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.selectedLabelIndex": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.selectionMode": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setActiveInputHandler": ('PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setActiveTheme": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setAspectRatio": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setHorizontalAspectRatio": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setMargin": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setMeasureFps": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setOptimizationHints": ('PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.OptimizationHints',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setOrthoProjection": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setPolar": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setRadialLabelOffset": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setReflection": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setReflectivity": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setSelectionMode": ('PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.SelectionFlags',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setShadowQuality": ('PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.ShadowQuality',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.shadowQuality": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.shadowsSupported": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.themes": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.touchEvent": ('PySide2.QtGui.QTouchEvent',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.InputView:
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.inputPosition": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.inputView": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent', 'PySide2.QtCore.QPoint'),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.mousePressEvent": ('PySide2.QtGui.QMouseEvent', 'PySide2.QtCore.QPoint'),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent', 'PySide2.QtCore.QPoint'),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.prevDistance": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.previousInputPos": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.scene": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.setInputPosition": ('PySide2.QtCore.QPoint',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.setInputView": ('PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.InputView',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.setPrevDistance": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.setPreviousInputPos": ('PySide2.QtCore.QPoint',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.setScene": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DScene',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.touchEvent": ('PySide2.QtGui.QTouchEvent',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.Mesh:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.SeriesType:
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.baseColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.baseGradient": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.colorStyle": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.isItemLabelVisible": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.isMeshSmooth": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.isVisible": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.itemLabel": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.itemLabelFormat": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.mesh": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.meshRotation": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.multiHighlightColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.multiHighlightGradient": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.name": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setBaseColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setBaseGradient": ('PySide2.QtGui.QLinearGradient',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setColorStyle": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.ColorStyle',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setItemLabelFormat": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setItemLabelVisible": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setMesh": ('PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.Mesh',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setMeshAxisAndAngle": ('PySide2.QtGui.QVector3D', 'float'),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setMeshRotation": ('PySide2.QtGui.QQuaternion',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setMeshSmooth": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setMultiHighlightColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setMultiHighlightGradient": ('PySide2.QtGui.QLinearGradient',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setName": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setSingleHighlightColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setSingleHighlightGradient": ('PySide2.QtGui.QLinearGradient',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setUserDefinedMesh": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setVisible": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.singleHighlightColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.singleHighlightGradient": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.type": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.userDefinedMesh": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstractDataProxy:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstractDataProxy.DataType:
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstractDataProxy.type": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries:
- "PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy', 'PySide2.QtCore.QObject')],
- "PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries.dataProxy": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries.invalidSelectionPosition": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries.meshAngle": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries.selectedBar": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries.setDataProxy": ('PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy',),
- "PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries.setMeshAngle": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries.setSelectedBar": ('PySide2.QtCore.QPoint',),
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataArray:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataArray.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataArray.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataArray.__origin__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataArray.__origin__.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataArray.__origin__.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataArray._gorg:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataArray._gorg.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataArray._gorg.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem:
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem.__init__": [(), ('PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem',), ('float',), ('float', 'float')],
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem.__copy__": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem.createExtraData": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem.rotation": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem.setRotation": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem.setValue": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem.value": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy:
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.addRow": [('typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]',), ('typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]', 'str')],
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.addRows": [('typing.List[typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]]',), ('typing.List[typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]]', 'typing.Sequence[str]')],
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.array": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.columnLabels": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.insertRow": [('int', 'typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]'), ('int', 'typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]', 'str')],
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.insertRows": [('int', 'typing.List[typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]]'), ('int', 'typing.List[typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]]', 'typing.Sequence[str]')],
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.itemAt": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.removeRows": ('int', 'int', 'bool'),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.resetArray": [(), ('typing.List[typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]]',), ('typing.List[typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]]', 'typing.Sequence[str]', 'typing.Sequence[str]')],
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.rowAt": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.rowCount": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.rowLabels": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.series": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.setColumnLabels": ('typing.Sequence[str]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.setItem": [('PySide2.QtCore.QPoint', 'PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem'), ('int', 'int', 'PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem')],
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.setRow": [('int', 'typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]'), ('int', 'typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]', 'str')],
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.setRowLabels": ('typing.Sequence[str]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.setRows": [('int', 'typing.List[typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]]'), ('int', 'typing.List[typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]]', 'typing.Sequence[str]')],
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataRow:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataRow.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataRow.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataRow.__origin__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataRow.__origin__.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataRow.__origin__.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataRow._gorg:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataRow._gorg.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataRow._gorg.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QCategory3DAxis:
- "PySide2.QtDataVisualization.QtDataVisualization.QCategory3DAxis.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCategory3DAxis.labels": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCategory3DAxis.setLabels": ('typing.Sequence[str]',),
-# class PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem:
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.__init__": [('PySide2.QtCore.QObject',), ('str', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QQuaternion', 'PySide2.QtGui.QImage', 'PySide2.QtCore.QObject')],
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.isPositionAbsolute": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.isScalingAbsolute": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.isShadowCasting": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.isVisible": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.meshFile": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.position": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.rotation": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.scaling": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setMeshFile": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setPosition": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setPositionAbsolute": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setRotation": ('PySide2.QtGui.QQuaternion',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setRotationAxisAndAngle": ('PySide2.QtGui.QVector3D', 'float'),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setScaling": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setScalingAbsolute": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setShadowCasting": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setTextureFile": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setTextureImage": ('PySide2.QtGui.QImage',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setVisible": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.textureFile": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel:
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.__init__": [('PySide2.QtCore.QObject',), ('str', 'PySide2.QtGui.QFont', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QQuaternion', 'PySide2.QtCore.QObject')],
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.backgroundColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.font": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.isBackgroundEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.isBorderEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.isFacingCamera": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.setBackgroundColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.setBackgroundEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.setBorderEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.setFacingCamera": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.setText": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.setTextColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.text": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.textColor": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume:
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QQuaternion', 'int', 'int', 'int', 'typing.List[int]', 'PySide2.QtGui.QImage.Format', 'typing.List[int]', 'PySide2.QtCore.QObject')],
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.alphaMultiplier": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.colorTable": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.createTextureData": ('typing.List[PySide2.QtGui.QImage]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.drawSliceFrames": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.drawSlices": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.preserveOpacity": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.renderSlice": ('PySide2.QtCore.Qt.Axis', 'int'),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setAlphaMultiplier": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setColorTable": ('typing.List[int]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setDrawSliceFrames": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setDrawSlices": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setPreserveOpacity": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setSliceFrameColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setSliceFrameGaps": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setSliceFrameThicknesses": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setSliceFrameWidths": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setSliceIndexX": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setSliceIndexY": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setSliceIndexZ": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setSliceIndices": ('int', 'int', 'int'),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setSubTextureData": [('PySide2.QtCore.Qt.Axis', 'int', 'PySide2.QtGui.QImage'), ('PySide2.QtCore.Qt.Axis', 'int', 'str')],
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setTextureData": ('typing.List[int]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setTextureDepth": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setTextureDimensions": ('int', 'int', 'int'),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setTextureFormat": ('PySide2.QtGui.QImage.Format',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setTextureHeight": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setTextureWidth": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setUseHighDefShader": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.sliceFrameColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.sliceFrameGaps": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.sliceFrameThicknesses": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.sliceFrameWidths": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.sliceIndexX": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.sliceIndexY": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.sliceIndexZ": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.textureData": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.textureDataWidth": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.textureDepth": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.textureFormat": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.textureHeight": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.textureWidth": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.useHighDefShader": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy:
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtGui.QImage', 'PySide2.QtCore.QObject'), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.heightMap": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.heightMapFile": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.maxXValue": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.maxZValue": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.minXValue": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.minZValue": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.setHeightMap": ('PySide2.QtGui.QImage',),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.setHeightMapFile": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.setMaxXValue": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.setMaxZValue": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.setMinXValue": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.setMinZValue": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.setValueRanges": ('float', 'float', 'float', 'float'),
-# class PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy:
-# class PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.MultiMatchBehavior:
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.__init__": [('PySide2.QtCore.QAbstractItemModel', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'str', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'str', 'str', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'str', 'str', 'str', 'typing.Sequence[str]', 'typing.Sequence[str]', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'str', 'str', 'typing.Sequence[str]', 'typing.Sequence[str]', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QObject',)],
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.autoColumnCategories": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.autoRowCategories": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.columnCategories": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.columnCategoryIndex": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.columnRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.columnRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.columnRoleReplace": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.itemModel": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.multiMatchBehavior": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.remap": ('str', 'str', 'str', 'str', 'typing.Sequence[str]', 'typing.Sequence[str]'),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.rotationRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.rotationRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.rotationRoleReplace": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.rowCategories": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.rowCategoryIndex": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.rowRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.rowRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.rowRoleReplace": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setAutoColumnCategories": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setAutoRowCategories": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setColumnCategories": ('typing.Sequence[str]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setColumnRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setColumnRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setColumnRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setItemModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setMultiMatchBehavior": ('PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.MultiMatchBehavior',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setRotationRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setRotationRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setRotationRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setRowCategories": ('typing.Sequence[str]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setRowRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setRowRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setRowRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setUseModelCategories": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setValueRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setValueRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setValueRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.useModelCategories": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.valueRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.valueRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.valueRoleReplace": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy:
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.__init__": [('PySide2.QtCore.QAbstractItemModel', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'str', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'str', 'str', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QObject',)],
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.itemModel": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.remap": ('str', 'str', 'str', 'str'),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.rotationRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.rotationRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.rotationRoleReplace": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setItemModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setRotationRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setRotationRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setRotationRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setXPosRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setXPosRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setXPosRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setYPosRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setYPosRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setYPosRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setZPosRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setZPosRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setZPosRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.xPosRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.xPosRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.xPosRoleReplace": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.yPosRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.yPosRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.yPosRoleReplace": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.zPosRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.zPosRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.zPosRoleReplace": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy:
-# class PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.MultiMatchBehavior:
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.__init__": [('PySide2.QtCore.QAbstractItemModel', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'str', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'str', 'str', 'str', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'str', 'str', 'str', 'str', 'typing.Sequence[str]', 'typing.Sequence[str]', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'str', 'str', 'typing.Sequence[str]', 'typing.Sequence[str]', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QObject',)],
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.autoColumnCategories": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.autoRowCategories": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.columnCategories": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.columnCategoryIndex": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.columnRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.columnRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.columnRoleReplace": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.itemModel": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.multiMatchBehavior": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.remap": ('str', 'str', 'str', 'str', 'str', 'typing.Sequence[str]', 'typing.Sequence[str]'),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.rowCategories": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.rowCategoryIndex": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.rowRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.rowRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.rowRoleReplace": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setAutoColumnCategories": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setAutoRowCategories": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setColumnCategories": ('typing.Sequence[str]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setColumnRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setColumnRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setColumnRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setItemModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setMultiMatchBehavior": ('PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.MultiMatchBehavior',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setRowCategories": ('typing.Sequence[str]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setRowRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setRowRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setRowRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setUseModelCategories": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setXPosRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setXPosRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setXPosRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setYPosRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setYPosRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setYPosRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setZPosRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setZPosRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setZPosRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.useModelCategories": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.xPosRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.xPosRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.xPosRoleReplace": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.yPosRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.yPosRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.yPosRoleReplace": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.zPosRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.zPosRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.zPosRoleReplace": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter:
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.autoSubGrid": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.base": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.createNewInstance": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.populateCopy": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter',),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.positionAt": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.recalculate": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.setAutoSubGrid": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.setBase": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.setShowEdgeLabels": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.showEdgeLabels": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.valueAt": ('float',),
-# class PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries:
- "PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy', 'PySide2.QtCore.QObject')],
- "PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries.dataProxy": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries.invalidSelectionIndex": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries.itemSize": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries.selectedItem": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries.setDataProxy": ('PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries.setItemSize": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries.setSelectedItem": ('int',),
-# class PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem:
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.__init__": [(), ('PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem',), ('PySide2.QtGui.QVector3D',), ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QQuaternion')],
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.__copy__": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.createExtraData": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.position": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.rotation": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.setPosition": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.setRotation": ('PySide2.QtGui.QQuaternion',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.setX": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.setY": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.setZ": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.x": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.y": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.z": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy:
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.addItem": ('PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.addItems": ('typing.List[PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.array": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.insertItem": ('int', 'PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem'),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.insertItems": ('int', 'typing.List[PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem]'),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.itemAt": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.itemCount": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.removeItems": ('int', 'int'),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.resetArray": ('typing.List[PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.series": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.setItem": ('int', 'PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem'),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.setItems": ('int', 'typing.List[PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem]'),
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.DrawFlag:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.DrawFlags:
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy', 'PySide2.QtCore.QObject')],
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.dataProxy": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.drawMode": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.invalidSelectionPosition": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.isFlatShadingEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.isFlatShadingSupported": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.selectedPoint": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.setDataProxy": ('PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.setDrawMode": ('PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.DrawFlags',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.setFlatShadingEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.setSelectedPoint": ('PySide2.QtCore.QPoint',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.setTexture": ('PySide2.QtGui.QImage',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.setTextureFile": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.texture": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.textureFile": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataArray:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataArray.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataArray.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataArray.__origin__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataArray.__origin__.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataArray.__origin__.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataArray._gorg:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataArray._gorg.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataArray._gorg.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem:
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.__init__": [(), ('PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem',), ('PySide2.QtGui.QVector3D',)],
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.__copy__": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.createExtraData": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.position": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.setPosition": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.setX": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.setY": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.setZ": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.x": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.y": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.z": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy:
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.addRow": ('typing.List[PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.addRows": ('typing.List[typing.List[PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem]]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.array": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.columnCount": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.insertRow": ('int', 'typing.List[PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem]'),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.insertRows": ('int', 'typing.List[typing.List[PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem]]'),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.itemAt": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.removeRows": ('int', 'int'),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.resetArray": ('typing.List[typing.List[PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem]]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.rowCount": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.series": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.setItem": [('PySide2.QtCore.QPoint', 'PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem'), ('int', 'int', 'PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem')],
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.setRow": ('int', 'typing.List[PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem]'),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.setRows": ('int', 'typing.List[typing.List[PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem]]'),
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataRow:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataRow.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataRow.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataRow.__origin__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataRow.__origin__.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataRow.__origin__.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataRow._gorg:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataRow._gorg.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataRow._gorg.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QTouch3DInputHandler:
- "PySide2.QtDataVisualization.QtDataVisualization.QTouch3DInputHandler.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.QTouch3DInputHandler.touchEvent": ('PySide2.QtGui.QTouchEvent',),
-# class PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis:
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.formatter": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.labelFormat": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.reversed": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.segmentCount": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.setFormatter": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.setLabelFormat": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.setReversed": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.setSegmentCount": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.setSubSegmentCount": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.subSegmentCount": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter:
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.allowNegatives": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.allowZero": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.axis": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.createNewInstance": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.gridPositions": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.labelPositions": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.labelStrings": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.locale": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.markDirty": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.populateCopy": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.positionAt": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.recalculate": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.setAllowNegatives": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.setAllowZero": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.stringForValue": ('float', 'str'),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.subGridPositions": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.valueAt": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.qDefaultSurfaceFormat": ('bool',),
- }) if "PySide2.QtDataVisualization" in sys.modules else None
-# Module PySide2.QtUiTools
-sig_dict.update({
-# class PySide2.QtUiTools.QUiLoader:
- "PySide2.QtUiTools.QUiLoader.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtUiTools.QUiLoader.addPluginPath": ('str',),
- "PySide2.QtUiTools.QUiLoader.availableLayouts": (),
- "PySide2.QtUiTools.QUiLoader.availableWidgets": (),
- "PySide2.QtUiTools.QUiLoader.clearPluginPaths": (),
- "PySide2.QtUiTools.QUiLoader.createAction": ('PySide2.QtCore.QObject', 'str'),
- "PySide2.QtUiTools.QUiLoader.createActionGroup": ('PySide2.QtCore.QObject', 'str'),
- "PySide2.QtUiTools.QUiLoader.createLayout": ('str', 'PySide2.QtCore.QObject', 'str'),
- "PySide2.QtUiTools.QUiLoader.createWidget": ('str', 'PySide2.QtWidgets.QWidget', 'str'),
- "PySide2.QtUiTools.QUiLoader.errorString": (),
- "PySide2.QtUiTools.QUiLoader.isLanguageChangeEnabled": (),
- "PySide2.QtUiTools.QUiLoader.isTranslationEnabled": (),
- "PySide2.QtUiTools.QUiLoader.load": [('PySide2.QtCore.QIODevice', 'PySide2.QtWidgets.QWidget'), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtUiTools.QUiLoader.pluginPaths": (),
- "PySide2.QtUiTools.QUiLoader.registerCustomWidget": ('object',),
- "PySide2.QtUiTools.QUiLoader.setLanguageChangeEnabled": ('bool',),
- "PySide2.QtUiTools.QUiLoader.setTranslationEnabled": ('bool',),
- "PySide2.QtUiTools.QUiLoader.setWorkingDirectory": ('PySide2.QtCore.QDir',),
- "PySide2.QtUiTools.QUiLoader.workingDirectory": (),
- }) if "PySide2.QtUiTools" in sys.modules else None
-# Module PySide2.QtWebChannel
-sig_dict.update({
-# class PySide2.QtWebChannel.QWebChannel:
- "PySide2.QtWebChannel.QWebChannel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWebChannel.QWebChannel.blockUpdates": (),
- "PySide2.QtWebChannel.QWebChannel.connectTo": ('PySide2.QtWebChannel.QWebChannelAbstractTransport',),
- "PySide2.QtWebChannel.QWebChannel.deregisterObject": ('PySide2.QtCore.QObject',),
- "PySide2.QtWebChannel.QWebChannel.disconnectFrom": ('PySide2.QtWebChannel.QWebChannelAbstractTransport',),
- "PySide2.QtWebChannel.QWebChannel.registerObject": ('str', 'PySide2.QtCore.QObject'),
- "PySide2.QtWebChannel.QWebChannel.registerObjects": ('typing.Dict[str, PySide2.QtCore.QObject]',),
- "PySide2.QtWebChannel.QWebChannel.registeredObjects": (),
- "PySide2.QtWebChannel.QWebChannel.setBlockUpdates": ('bool',),
-# class PySide2.QtWebChannel.QWebChannelAbstractTransport:
- "PySide2.QtWebChannel.QWebChannelAbstractTransport.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWebChannel.QWebChannelAbstractTransport.sendMessage": ('typing.Dict[str, PySide2.QtCore.QJsonValue]',),
- }) if "PySide2.QtWebChannel" in sys.modules else None
-# Module PySide2.QtWebEngineCore
-sig_dict.update({
-# class PySide2.QtWebEngineCore.QWebEngineCookieStore:
- "PySide2.QtWebEngineCore.QWebEngineCookieStore.deleteAllCookies": (),
- "PySide2.QtWebEngineCore.QWebEngineCookieStore.deleteSessionCookies": (),
- "PySide2.QtWebEngineCore.QWebEngineCookieStore.loadAllCookies": (),
-# class PySide2.QtWebEngineCore.QWebEngineHttpRequest:
-# class PySide2.QtWebEngineCore.QWebEngineHttpRequest.Method:
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.__init__": [('PySide2.QtCore.QUrl', 'PySide2.QtWebEngineCore.QWebEngineHttpRequest.Method'), ('PySide2.QtWebEngineCore.QWebEngineHttpRequest',)],
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.hasHeader": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.header": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.headers": (),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.method": (),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.postData": (),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.postRequest": ('PySide2.QtCore.QUrl', 'typing.Dict[str, str]'),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.setHeader": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.setMethod": ('PySide2.QtWebEngineCore.QWebEngineHttpRequest.Method',),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.setPostData": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.setUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.swap": ('PySide2.QtWebEngineCore.QWebEngineHttpRequest',),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.unsetHeader": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.url": (),
-# class PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo:
-# class PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.NavigationType:
-# class PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType:
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.block": ('bool',),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.changed": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.firstPartyUrl": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.initiator": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.navigationType": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.redirect": ('PySide2.QtCore.QUrl',),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.requestMethod": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.requestUrl": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.resourceType": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.setHttpHeader": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
-# class PySide2.QtWebEngineCore.QWebEngineUrlRequestInterceptor:
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInterceptor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInterceptor.interceptRequest": ('PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo',),
-# class PySide2.QtWebEngineCore.QWebEngineUrlRequestJob:
-# class PySide2.QtWebEngineCore.QWebEngineUrlRequestJob.Error:
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestJob.fail": ('PySide2.QtWebEngineCore.QWebEngineUrlRequestJob.Error',),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestJob.initiator": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestJob.redirect": ('PySide2.QtCore.QUrl',),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestJob.reply": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QIODevice'),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestJob.requestHeaders": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestJob.requestMethod": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestJob.requestUrl": (),
-# class PySide2.QtWebEngineCore.QWebEngineUrlScheme:
-# class PySide2.QtWebEngineCore.QWebEngineUrlScheme.Flag:
-# class PySide2.QtWebEngineCore.QWebEngineUrlScheme.Flags:
-# class PySide2.QtWebEngineCore.QWebEngineUrlScheme.SpecialPort:
-# class PySide2.QtWebEngineCore.QWebEngineUrlScheme.Syntax:
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.__init__": [(), ('PySide2.QtCore.QByteArray',), ('PySide2.QtWebEngineCore.QWebEngineUrlScheme',)],
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.__copy__": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.defaultPort": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.flags": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.name": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.registerScheme": ('PySide2.QtWebEngineCore.QWebEngineUrlScheme',),
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.schemeByName": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.setDefaultPort": ('int',),
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.setFlags": ('PySide2.QtWebEngineCore.QWebEngineUrlScheme.Flags',),
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.setName": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.setSyntax": ('PySide2.QtWebEngineCore.QWebEngineUrlScheme.Syntax',),
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.syntax": (),
-# class PySide2.QtWebEngineCore.QWebEngineUrlSchemeHandler:
- "PySide2.QtWebEngineCore.QWebEngineUrlSchemeHandler.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWebEngineCore.QWebEngineUrlSchemeHandler.requestStarted": ('PySide2.QtWebEngineCore.QWebEngineUrlRequestJob',),
- }) if "PySide2.QtWebEngineCore" in sys.modules else None
-# Module PySide2.QtWebEngine
-sig_dict.update({
-# class PySide2.QtWebEngine.QtWebEngine:
- "PySide2.QtWebEngine.QtWebEngine.initialize": (),
- }) if "PySide2.QtWebEngine" in sys.modules else None
-# Module PySide2.QtWebEngineWidgets
-sig_dict.update({
-# class PySide2.QtWebEngineWidgets.QWebEngineCertificateError:
-# class PySide2.QtWebEngineWidgets.QWebEngineCertificateError.Error:
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.__init__": [('PySide2.QtWebEngineWidgets.QWebEngineCertificateError',), ('int', 'PySide2.QtCore.QUrl', 'bool', 'str')],
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.answered": (),
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.certificateChain": (),
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.defer": (),
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.deferred": (),
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.error": (),
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.errorDescription": (),
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.ignoreCertificateError": (),
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.isOverridable": (),
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.rejectCertificate": (),
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.url": (),
-# class PySide2.QtWebEngineWidgets.QWebEngineContextMenuData:
-# class PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.EditFlag:
-# class PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.EditFlags:
-# class PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.MediaFlag:
-# class PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.MediaFlags:
-# class PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.MediaType:
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.__init__": [(), ('PySide2.QtWebEngineWidgets.QWebEngineContextMenuData',)],
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.__copy__": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.editFlags": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.isContentEditable": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.isValid": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.linkText": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.linkUrl": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.mediaFlags": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.mediaType": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.mediaUrl": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.misspelledWord": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.position": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.selectedText": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.spellCheckerSuggestions": (),
-# class PySide2.QtWebEngineWidgets.QWebEngineDownloadItem:
-# class PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.DownloadInterruptReason:
-# class PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.DownloadState:
-# class PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.DownloadType:
-# class PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.SavePageFormat:
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.accept": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.cancel": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.downloadDirectory": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.downloadFileName": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.id": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.interruptReason": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.interruptReasonString": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.isFinished": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.isPaused": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.isSavePageDownload": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.mimeType": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.page": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.path": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.pause": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.receivedBytes": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.resume": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.savePageFormat": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.setDownloadDirectory": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.setDownloadFileName": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.setPath": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.setSavePageFormat": ('PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.SavePageFormat',),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.state": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.suggestedFileName": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.totalBytes": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.type": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.url": (),
-# class PySide2.QtWebEngineWidgets.QWebEngineFullScreenRequest:
- "PySide2.QtWebEngineWidgets.QWebEngineFullScreenRequest.accept": (),
- "PySide2.QtWebEngineWidgets.QWebEngineFullScreenRequest.origin": (),
- "PySide2.QtWebEngineWidgets.QWebEngineFullScreenRequest.reject": (),
- "PySide2.QtWebEngineWidgets.QWebEngineFullScreenRequest.toggleOn": (),
-# class PySide2.QtWebEngineWidgets.QWebEngineHistory:
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.back": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.backItem": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.backItems": ('int',),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.canGoBack": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.canGoForward": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.clear": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.count": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.currentItem": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.currentItemIndex": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.forward": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.forwardItem": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.forwardItems": ('int',),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.goToItem": ('PySide2.QtWebEngineWidgets.QWebEngineHistoryItem',),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.itemAt": ('int',),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.items": (),
-# class PySide2.QtWebEngineWidgets.QWebEngineHistoryItem:
- "PySide2.QtWebEngineWidgets.QWebEngineHistoryItem.__init__": ('PySide2.QtWebEngineWidgets.QWebEngineHistoryItem',),
- "PySide2.QtWebEngineWidgets.QWebEngineHistoryItem.__copy__": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistoryItem.iconUrl": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistoryItem.isValid": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistoryItem.lastVisited": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistoryItem.originalUrl": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistoryItem.swap": ('PySide2.QtWebEngineWidgets.QWebEngineHistoryItem',),
- "PySide2.QtWebEngineWidgets.QWebEngineHistoryItem.title": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistoryItem.url": (),
-# class PySide2.QtWebEngineWidgets.QWebEnginePage:
-# class PySide2.QtWebEngineWidgets.QWebEnginePage.Feature:
-# class PySide2.QtWebEngineWidgets.QWebEnginePage.FileSelectionMode:
-# class PySide2.QtWebEngineWidgets.QWebEnginePage.FindFlag:
-# class PySide2.QtWebEngineWidgets.QWebEnginePage.FindFlags:
-# class PySide2.QtWebEngineWidgets.QWebEnginePage.JavaScriptConsoleMessageLevel:
-# class PySide2.QtWebEngineWidgets.QWebEnginePage.NavigationType:
-# class PySide2.QtWebEngineWidgets.QWebEnginePage.PermissionPolicy:
-# class PySide2.QtWebEngineWidgets.QWebEnginePage.RenderProcessTerminationStatus:
-# class PySide2.QtWebEngineWidgets.QWebEnginePage.WebAction:
-# class PySide2.QtWebEngineWidgets.QWebEnginePage.WebWindowType:
- "PySide2.QtWebEngineWidgets.QWebEnginePage.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtWebEngineWidgets.QWebEngineProfile', 'PySide2.QtCore.QObject')],
- "PySide2.QtWebEngineWidgets.QWebEnginePage.acceptNavigationRequest": ('PySide2.QtCore.QUrl', 'PySide2.QtWebEngineWidgets.QWebEnginePage.NavigationType', 'bool'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.action": ('PySide2.QtWebEngineWidgets.QWebEnginePage.WebAction',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.backgroundColor": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.certificateError": ('PySide2.QtWebEngineWidgets.QWebEngineCertificateError',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.chooseFiles": ('PySide2.QtWebEngineWidgets.QWebEnginePage.FileSelectionMode', 'typing.Sequence[str]', 'typing.Sequence[str]'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.contentsSize": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.contextMenuData": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.createStandardContextMenu": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.createWindow": ('PySide2.QtWebEngineWidgets.QWebEnginePage.WebWindowType',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.devToolsPage": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.download": ('PySide2.QtCore.QUrl', 'str'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.findText": [('str', 'PySide2.QtWebEngineWidgets.QWebEnginePage.FindFlags'), ('str', 'PySide2.QtWebEngineWidgets.QWebEnginePage.FindFlags', 'object')],
- "PySide2.QtWebEngineWidgets.QWebEnginePage.hasSelection": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.history": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.icon": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.iconUrl": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.inspectedPage": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.isAudioMuted": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.isVisible": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.javaScriptAlert": ('PySide2.QtCore.QUrl', 'str'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.javaScriptConfirm": ('PySide2.QtCore.QUrl', 'str'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.javaScriptConsoleMessage": ('PySide2.QtWebEngineWidgets.QWebEnginePage.JavaScriptConsoleMessageLevel', 'str', 'int', 'str'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.javaScriptPrompt": ('PySide2.QtCore.QUrl', 'str', 'str'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.load": [('PySide2.QtCore.QUrl',), ('PySide2.QtWebEngineCore.QWebEngineHttpRequest',)],
- "PySide2.QtWebEngineWidgets.QWebEnginePage.printToPdf": [('object', 'PySide2.QtGui.QPageLayout'), ('str', 'PySide2.QtGui.QPageLayout')],
- "PySide2.QtWebEngineWidgets.QWebEnginePage.profile": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.recentlyAudible": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.replaceMisspelledWord": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.requestedUrl": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.runJavaScript": [('str',), ('str', 'int'), ('str', 'int', 'object')],
- "PySide2.QtWebEngineWidgets.QWebEnginePage.save": ('str', 'PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.SavePageFormat'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.scripts": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.scrollPosition": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.selectedText": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setAudioMuted": ('bool',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setBackgroundColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setContent": ('PySide2.QtCore.QByteArray', 'str', 'PySide2.QtCore.QUrl'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setDevToolsPage": ('PySide2.QtWebEngineWidgets.QWebEnginePage',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setFeaturePermission": ('PySide2.QtCore.QUrl', 'PySide2.QtWebEngineWidgets.QWebEnginePage.Feature', 'PySide2.QtWebEngineWidgets.QWebEnginePage.PermissionPolicy'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setHtml": ('str', 'PySide2.QtCore.QUrl'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setInspectedPage": ('PySide2.QtWebEngineWidgets.QWebEnginePage',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setUrlRequestInterceptor": ('PySide2.QtWebEngineCore.QWebEngineUrlRequestInterceptor',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setView": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setVisible": ('bool',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setWebChannel": [('PySide2.QtWebChannel.QWebChannel',), ('PySide2.QtWebChannel.QWebChannel', 'int')],
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setZoomFactor": ('float',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.settings": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.title": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.toHtml": ('object',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.toPlainText": ('object',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.triggerAction": ('PySide2.QtWebEngineWidgets.QWebEnginePage.WebAction', 'bool'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.url": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.view": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.webChannel": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.zoomFactor": (),
-# class PySide2.QtWebEngineWidgets.QWebEngineProfile:
-# class PySide2.QtWebEngineWidgets.QWebEngineProfile.HttpCacheType:
-# class PySide2.QtWebEngineWidgets.QWebEngineProfile.PersistentCookiesPolicy:
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.__init__": [('PySide2.QtCore.QObject',), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.cachePath": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.clearAllVisitedLinks": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.clearHttpCache": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.clearVisitedLinks": ('typing.Sequence[PySide2.QtCore.QUrl]',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.cookieStore": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.defaultProfile": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.downloadPath": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.httpAcceptLanguage": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.httpCacheMaximumSize": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.httpCacheType": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.httpUserAgent": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.installUrlSchemeHandler": ('PySide2.QtCore.QByteArray', 'PySide2.QtWebEngineCore.QWebEngineUrlSchemeHandler'),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.isOffTheRecord": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.isSpellCheckEnabled": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.isUsedForGlobalCertificateVerification": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.persistentCookiesPolicy": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.persistentStoragePath": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.removeAllUrlSchemeHandlers": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.removeUrlScheme": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.removeUrlSchemeHandler": ('PySide2.QtWebEngineCore.QWebEngineUrlSchemeHandler',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.scripts": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setCachePath": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setDownloadPath": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setHttpAcceptLanguage": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setHttpCacheMaximumSize": ('int',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setHttpCacheType": ('PySide2.QtWebEngineWidgets.QWebEngineProfile.HttpCacheType',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setHttpUserAgent": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setPersistentCookiesPolicy": ('PySide2.QtWebEngineWidgets.QWebEngineProfile.PersistentCookiesPolicy',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setPersistentStoragePath": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setRequestInterceptor": ('PySide2.QtWebEngineCore.QWebEngineUrlRequestInterceptor',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setSpellCheckEnabled": ('bool',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setSpellCheckLanguages": ('typing.Sequence[str]',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setUrlRequestInterceptor": ('PySide2.QtWebEngineCore.QWebEngineUrlRequestInterceptor',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setUseForGlobalCertificateVerification": ('bool',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.settings": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.spellCheckLanguages": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.storageName": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.urlSchemeHandler": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.visitedLinksContainsUrl": ('PySide2.QtCore.QUrl',),
-# class PySide2.QtWebEngineWidgets.QWebEngineScript:
-# class PySide2.QtWebEngineWidgets.QWebEngineScript.InjectionPoint:
-# class PySide2.QtWebEngineWidgets.QWebEngineScript.ScriptWorldId:
- "PySide2.QtWebEngineWidgets.QWebEngineScript.__init__": [(), ('PySide2.QtWebEngineWidgets.QWebEngineScript',)],
- "PySide2.QtWebEngineWidgets.QWebEngineScript.__copy__": (),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.injectionPoint": (),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.isNull": (),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.name": (),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.runsOnSubFrames": (),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.setInjectionPoint": ('PySide2.QtWebEngineWidgets.QWebEngineScript.InjectionPoint',),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.setName": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.setRunsOnSubFrames": ('bool',),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.setSourceCode": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.setWorldId": ('int',),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.sourceCode": (),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.swap": ('PySide2.QtWebEngineWidgets.QWebEngineScript',),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.worldId": (),
-# class PySide2.QtWebEngineWidgets.QWebEngineScriptCollection:
- "PySide2.QtWebEngineWidgets.QWebEngineScriptCollection.clear": (),
- "PySide2.QtWebEngineWidgets.QWebEngineScriptCollection.contains": ('PySide2.QtWebEngineWidgets.QWebEngineScript',),
- "PySide2.QtWebEngineWidgets.QWebEngineScriptCollection.count": (),
- "PySide2.QtWebEngineWidgets.QWebEngineScriptCollection.findScript": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineScriptCollection.findScripts": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineScriptCollection.insert": [('PySide2.QtWebEngineWidgets.QWebEngineScript',), ('typing.Sequence[PySide2.QtWebEngineWidgets.QWebEngineScript]',)],
- "PySide2.QtWebEngineWidgets.QWebEngineScriptCollection.isEmpty": (),
- "PySide2.QtWebEngineWidgets.QWebEngineScriptCollection.remove": ('PySide2.QtWebEngineWidgets.QWebEngineScript',),
- "PySide2.QtWebEngineWidgets.QWebEngineScriptCollection.size": (),
- "PySide2.QtWebEngineWidgets.QWebEngineScriptCollection.toList": (),
-# class PySide2.QtWebEngineWidgets.QWebEngineSettings:
-# class PySide2.QtWebEngineWidgets.QWebEngineSettings.FontFamily:
-# class PySide2.QtWebEngineWidgets.QWebEngineSettings.FontSize:
-# class PySide2.QtWebEngineWidgets.QWebEngineSettings.UnknownUrlSchemePolicy:
-# class PySide2.QtWebEngineWidgets.QWebEngineSettings.WebAttribute:
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.defaultSettings": (),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.defaultTextEncoding": (),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.fontFamily": ('PySide2.QtWebEngineWidgets.QWebEngineSettings.FontFamily',),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.fontSize": ('PySide2.QtWebEngineWidgets.QWebEngineSettings.FontSize',),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.globalSettings": (),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.resetAttribute": ('PySide2.QtWebEngineWidgets.QWebEngineSettings.WebAttribute',),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.resetFontFamily": ('PySide2.QtWebEngineWidgets.QWebEngineSettings.FontFamily',),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.resetFontSize": ('PySide2.QtWebEngineWidgets.QWebEngineSettings.FontSize',),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.resetUnknownUrlSchemePolicy": (),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.setAttribute": ('PySide2.QtWebEngineWidgets.QWebEngineSettings.WebAttribute', 'bool'),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.setDefaultTextEncoding": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.setFontFamily": ('PySide2.QtWebEngineWidgets.QWebEngineSettings.FontFamily', 'str'),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.setFontSize": ('PySide2.QtWebEngineWidgets.QWebEngineSettings.FontSize', 'int'),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.setUnknownUrlSchemePolicy": ('PySide2.QtWebEngineWidgets.QWebEngineSettings.UnknownUrlSchemePolicy',),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.testAttribute": ('PySide2.QtWebEngineWidgets.QWebEngineSettings.WebAttribute',),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.unknownUrlSchemePolicy": (),
-# class PySide2.QtWebEngineWidgets.QWebEngineView:
- "PySide2.QtWebEngineWidgets.QWebEngineView.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.back": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.closeEvent": ('PySide2.QtGui.QCloseEvent',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.createWindow": ('PySide2.QtWebEngineWidgets.QWebEnginePage.WebWindowType',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.dragEnterEvent": ('PySide2.QtGui.QDragEnterEvent',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.findText": [('str', 'PySide2.QtWebEngineWidgets.QWebEnginePage.FindFlags'), ('str', 'PySide2.QtWebEngineWidgets.QWebEnginePage.FindFlags', 'object')],
- "PySide2.QtWebEngineWidgets.QWebEngineView.forward": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.hasSelection": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.history": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.icon": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.iconUrl": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.load": [('PySide2.QtCore.QUrl',), ('PySide2.QtWebEngineCore.QWebEngineHttpRequest',)],
- "PySide2.QtWebEngineWidgets.QWebEngineView.page": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.pageAction": ('PySide2.QtWebEngineWidgets.QWebEnginePage.WebAction',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.reload": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.selectedText": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.setContent": ('PySide2.QtCore.QByteArray', 'str', 'PySide2.QtCore.QUrl'),
- "PySide2.QtWebEngineWidgets.QWebEngineView.setHtml": ('str', 'PySide2.QtCore.QUrl'),
- "PySide2.QtWebEngineWidgets.QWebEngineView.setPage": ('PySide2.QtWebEngineWidgets.QWebEnginePage',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.setUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.setZoomFactor": ('float',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.settings": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.sizeHint": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.stop": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.title": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.triggerPageAction": ('PySide2.QtWebEngineWidgets.QWebEnginePage.WebAction', 'bool'),
- "PySide2.QtWebEngineWidgets.QWebEngineView.url": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.zoomFactor": (),
- }) if "PySide2.QtWebEngineWidgets" in sys.modules else None
-# Module PySide2.QtWebSockets
-sig_dict.update({
-# class PySide2.QtWebSockets.QMaskGenerator:
- "PySide2.QtWebSockets.QMaskGenerator.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWebSockets.QMaskGenerator.nextMask": (),
- "PySide2.QtWebSockets.QMaskGenerator.seed": (),
-# class PySide2.QtWebSockets.QWebSocket:
- "PySide2.QtWebSockets.QWebSocket.__init__": ('str', 'PySide2.QtWebSockets.QWebSocketProtocol.Version', 'PySide2.QtCore.QObject'),
- "PySide2.QtWebSockets.QWebSocket.abort": (),
- "PySide2.QtWebSockets.QWebSocket.bytesToWrite": (),
- "PySide2.QtWebSockets.QWebSocket.close": ('PySide2.QtWebSockets.QWebSocketProtocol.CloseCode', 'str'),
- "PySide2.QtWebSockets.QWebSocket.closeCode": (),
- "PySide2.QtWebSockets.QWebSocket.closeReason": (),
- "PySide2.QtWebSockets.QWebSocket.error": (),
- "PySide2.QtWebSockets.QWebSocket.errorString": (),
- "PySide2.QtWebSockets.QWebSocket.flush": (),
- "PySide2.QtWebSockets.QWebSocket.isValid": (),
- "PySide2.QtWebSockets.QWebSocket.localAddress": (),
- "PySide2.QtWebSockets.QWebSocket.localPort": (),
- "PySide2.QtWebSockets.QWebSocket.maskGenerator": (),
- "PySide2.QtWebSockets.QWebSocket.open": [('PySide2.QtCore.QUrl',), ('PySide2.QtNetwork.QNetworkRequest',)],
- "PySide2.QtWebSockets.QWebSocket.origin": (),
- "PySide2.QtWebSockets.QWebSocket.pauseMode": (),
- "PySide2.QtWebSockets.QWebSocket.peerAddress": (),
- "PySide2.QtWebSockets.QWebSocket.peerName": (),
- "PySide2.QtWebSockets.QWebSocket.peerPort": (),
- "PySide2.QtWebSockets.QWebSocket.ping": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWebSockets.QWebSocket.proxy": (),
- "PySide2.QtWebSockets.QWebSocket.readBufferSize": (),
- "PySide2.QtWebSockets.QWebSocket.request": (),
- "PySide2.QtWebSockets.QWebSocket.requestUrl": (),
- "PySide2.QtWebSockets.QWebSocket.resourceName": (),
- "PySide2.QtWebSockets.QWebSocket.resume": (),
- "PySide2.QtWebSockets.QWebSocket.sendBinaryMessage": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWebSockets.QWebSocket.sendTextMessage": ('str',),
- "PySide2.QtWebSockets.QWebSocket.setMaskGenerator": ('PySide2.QtWebSockets.QMaskGenerator',),
- "PySide2.QtWebSockets.QWebSocket.setPauseMode": ('PySide2.QtNetwork.QAbstractSocket.PauseModes',),
- "PySide2.QtWebSockets.QWebSocket.setProxy": ('PySide2.QtNetwork.QNetworkProxy',),
- "PySide2.QtWebSockets.QWebSocket.setReadBufferSize": ('int',),
- "PySide2.QtWebSockets.QWebSocket.state": (),
- "PySide2.QtWebSockets.QWebSocket.version": (),
-# class PySide2.QtWebSockets.QWebSocketCorsAuthenticator:
- "PySide2.QtWebSockets.QWebSocketCorsAuthenticator.__init__": [('PySide2.QtWebSockets.QWebSocketCorsAuthenticator',), ('str',)],
- "PySide2.QtWebSockets.QWebSocketCorsAuthenticator.allowed": (),
- "PySide2.QtWebSockets.QWebSocketCorsAuthenticator.origin": (),
- "PySide2.QtWebSockets.QWebSocketCorsAuthenticator.setAllowed": ('bool',),
- "PySide2.QtWebSockets.QWebSocketCorsAuthenticator.swap": ('PySide2.QtWebSockets.QWebSocketCorsAuthenticator',),
-# class PySide2.QtWebSockets.QWebSocketProtocol:
-# class PySide2.QtWebSockets.QWebSocketProtocol.CloseCode:
-# class PySide2.QtWebSockets.QWebSocketProtocol.Version:
-# class PySide2.QtWebSockets.QWebSocketServer:
-# class PySide2.QtWebSockets.QWebSocketServer.SslMode:
- "PySide2.QtWebSockets.QWebSocketServer.__init__": ('str', 'PySide2.QtWebSockets.QWebSocketServer.SslMode', 'PySide2.QtCore.QObject'),
- "PySide2.QtWebSockets.QWebSocketServer.close": (),
- "PySide2.QtWebSockets.QWebSocketServer.error": (),
- "PySide2.QtWebSockets.QWebSocketServer.errorString": (),
- "PySide2.QtWebSockets.QWebSocketServer.handleConnection": ('PySide2.QtNetwork.QTcpSocket',),
- "PySide2.QtWebSockets.QWebSocketServer.handshakeTimeoutMS": (),
- "PySide2.QtWebSockets.QWebSocketServer.hasPendingConnections": (),
- "PySide2.QtWebSockets.QWebSocketServer.isListening": (),
- "PySide2.QtWebSockets.QWebSocketServer.listen": ('PySide2.QtNetwork.QHostAddress', 'int'),
- "PySide2.QtWebSockets.QWebSocketServer.maxPendingConnections": (),
- "PySide2.QtWebSockets.QWebSocketServer.nativeDescriptor": (),
- "PySide2.QtWebSockets.QWebSocketServer.nextPendingConnection": (),
- "PySide2.QtWebSockets.QWebSocketServer.pauseAccepting": (),
- "PySide2.QtWebSockets.QWebSocketServer.proxy": (),
- "PySide2.QtWebSockets.QWebSocketServer.resumeAccepting": (),
- "PySide2.QtWebSockets.QWebSocketServer.secureMode": (),
- "PySide2.QtWebSockets.QWebSocketServer.serverAddress": (),
- "PySide2.QtWebSockets.QWebSocketServer.serverName": (),
- "PySide2.QtWebSockets.QWebSocketServer.serverPort": (),
- "PySide2.QtWebSockets.QWebSocketServer.serverUrl": (),
- "PySide2.QtWebSockets.QWebSocketServer.setHandshakeTimeout": ('int',),
- "PySide2.QtWebSockets.QWebSocketServer.setMaxPendingConnections": ('int',),
- "PySide2.QtWebSockets.QWebSocketServer.setNativeDescriptor": ('int',),
- "PySide2.QtWebSockets.QWebSocketServer.setProxy": ('PySide2.QtNetwork.QNetworkProxy',),
- "PySide2.QtWebSockets.QWebSocketServer.setServerName": ('str',),
- "PySide2.QtWebSockets.QWebSocketServer.setSocketDescriptor": ('int',),
- "PySide2.QtWebSockets.QWebSocketServer.socketDescriptor": (),
- "PySide2.QtWebSockets.QWebSocketServer.supportedVersions": (),
- }) if "PySide2.QtWebSockets" in sys.modules else None
-# Module PySide2.Qt3DCore
-sig_dict.update({
-# class PySide2.Qt3DCore.Qt3DCore:
-# class PySide2.Qt3DCore.Qt3DCore.ChangeFlag:
-# class PySide2.Qt3DCore.Qt3DCore.ChangeFlags:
-# class PySide2.Qt3DCore.Qt3DCore.QAbstractAspect:
- "PySide2.Qt3DCore.Qt3DCore.QAbstractAspect.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DCore.Qt3DCore.QAbstractAspect.rootEntityId": (),
- "PySide2.Qt3DCore.Qt3DCore.QAbstractAspect.unregisterBackendType": ('PySide2.QtCore.QMetaObject',),
-# class PySide2.Qt3DCore.Qt3DCore.QAbstractSkeleton:
- "PySide2.Qt3DCore.Qt3DCore.QAbstractSkeleton.jointCount": (),
-# class PySide2.Qt3DCore.Qt3DCore.QArmature:
- "PySide2.Qt3DCore.Qt3DCore.QArmature.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DCore.Qt3DCore.QArmature.setSkeleton": ('PySide2.Qt3DCore.Qt3DCore.QAbstractSkeleton',),
- "PySide2.Qt3DCore.Qt3DCore.QArmature.skeleton": (),
-# class PySide2.Qt3DCore.Qt3DCore.QAspectEngine:
-# class PySide2.Qt3DCore.Qt3DCore.QAspectEngine.RunMode:
- "PySide2.Qt3DCore.Qt3DCore.QAspectEngine.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DCore.Qt3DCore.QAspectEngine.aspects": (),
- "PySide2.Qt3DCore.Qt3DCore.QAspectEngine.executeCommand": ('str',),
- "PySide2.Qt3DCore.Qt3DCore.QAspectEngine.processFrame": (),
- "PySide2.Qt3DCore.Qt3DCore.QAspectEngine.registerAspect": [('PySide2.Qt3DCore.Qt3DCore.QAbstractAspect',), ('str',)],
- "PySide2.Qt3DCore.Qt3DCore.QAspectEngine.runMode": (),
- "PySide2.Qt3DCore.Qt3DCore.QAspectEngine.setRunMode": ('PySide2.Qt3DCore.Qt3DCore.QAspectEngine.RunMode',),
- "PySide2.Qt3DCore.Qt3DCore.QAspectEngine.unregisterAspect": [('PySide2.Qt3DCore.Qt3DCore.QAbstractAspect',), ('str',)],
-# class PySide2.Qt3DCore.Qt3DCore.QAspectJob:
- "PySide2.Qt3DCore.Qt3DCore.QAspectJob.__init__": (),
- "PySide2.Qt3DCore.Qt3DCore.QAspectJob.run": (),
-# class PySide2.Qt3DCore.Qt3DCore.QBackendNode:
-# class PySide2.Qt3DCore.Qt3DCore.QBackendNode.Mode:
- "PySide2.Qt3DCore.Qt3DCore.QBackendNode.__init__": ('PySide2.Qt3DCore.Qt3DCore.QBackendNode.Mode',),
- "PySide2.Qt3DCore.Qt3DCore.QBackendNode.isEnabled": (),
- "PySide2.Qt3DCore.Qt3DCore.QBackendNode.mode": (),
- "PySide2.Qt3DCore.Qt3DCore.QBackendNode.peerId": (),
- "PySide2.Qt3DCore.Qt3DCore.QBackendNode.setEnabled": ('bool',),
-# class PySide2.Qt3DCore.Qt3DCore.QComponent:
- "PySide2.Qt3DCore.Qt3DCore.QComponent.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DCore.Qt3DCore.QComponent.entities": (),
- "PySide2.Qt3DCore.Qt3DCore.QComponent.isShareable": (),
- "PySide2.Qt3DCore.Qt3DCore.QComponent.setShareable": ('bool',),
-# class PySide2.Qt3DCore.Qt3DCore.QComponentAddedChange:
- "PySide2.Qt3DCore.Qt3DCore.QComponentAddedChange.__init__": [('PySide2.Qt3DCore.Qt3DCore.QComponent', 'PySide2.Qt3DCore.Qt3DCore.QEntity'), ('PySide2.Qt3DCore.Qt3DCore.QEntity', 'PySide2.Qt3DCore.Qt3DCore.QComponent')],
- "PySide2.Qt3DCore.Qt3DCore.QComponentAddedChange.componentId": (),
- "PySide2.Qt3DCore.Qt3DCore.QComponentAddedChange.componentMetaObject": (),
- "PySide2.Qt3DCore.Qt3DCore.QComponentAddedChange.entityId": (),
-# class PySide2.Qt3DCore.Qt3DCore.QComponentRemovedChange:
- "PySide2.Qt3DCore.Qt3DCore.QComponentRemovedChange.__init__": [('PySide2.Qt3DCore.Qt3DCore.QComponent', 'PySide2.Qt3DCore.Qt3DCore.QEntity'), ('PySide2.Qt3DCore.Qt3DCore.QEntity', 'PySide2.Qt3DCore.Qt3DCore.QComponent')],
- "PySide2.Qt3DCore.Qt3DCore.QComponentRemovedChange.componentId": (),
- "PySide2.Qt3DCore.Qt3DCore.QComponentRemovedChange.componentMetaObject": (),
- "PySide2.Qt3DCore.Qt3DCore.QComponentRemovedChange.entityId": (),
-# class PySide2.Qt3DCore.Qt3DCore.QDynamicPropertyUpdatedChange:
- "PySide2.Qt3DCore.Qt3DCore.QDynamicPropertyUpdatedChange.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
- "PySide2.Qt3DCore.Qt3DCore.QDynamicPropertyUpdatedChange.propertyName": (),
- "PySide2.Qt3DCore.Qt3DCore.QDynamicPropertyUpdatedChange.setPropertyName": ('PySide2.QtCore.QByteArray',),
- "PySide2.Qt3DCore.Qt3DCore.QDynamicPropertyUpdatedChange.setValue": ('typing.Any',),
- "PySide2.Qt3DCore.Qt3DCore.QDynamicPropertyUpdatedChange.value": (),
-# class PySide2.Qt3DCore.Qt3DCore.QEntity:
- "PySide2.Qt3DCore.Qt3DCore.QEntity.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DCore.Qt3DCore.QEntity.addComponent": ('PySide2.Qt3DCore.Qt3DCore.QComponent',),
- "PySide2.Qt3DCore.Qt3DCore.QEntity.components": (),
- "PySide2.Qt3DCore.Qt3DCore.QEntity.parentEntity": (),
- "PySide2.Qt3DCore.Qt3DCore.QEntity.removeComponent": ('PySide2.Qt3DCore.Qt3DCore.QComponent',),
-# class PySide2.Qt3DCore.Qt3DCore.QJoint:
- "PySide2.Qt3DCore.Qt3DCore.QJoint.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.addChildJoint": ('PySide2.Qt3DCore.Qt3DCore.QJoint',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.childJoints": (),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.inverseBindMatrix": (),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.name": (),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.removeChildJoint": ('PySide2.Qt3DCore.Qt3DCore.QJoint',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.rotation": (),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.rotationX": (),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.rotationY": (),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.rotationZ": (),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.scale": (),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.setInverseBindMatrix": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.setName": ('str',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.setRotation": ('PySide2.QtGui.QQuaternion',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.setRotationX": ('float',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.setRotationY": ('float',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.setRotationZ": ('float',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.setScale": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.setToIdentity": (),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.setTranslation": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.translation": (),
-# class PySide2.Qt3DCore.Qt3DCore.QNode:
-# class PySide2.Qt3DCore.Qt3DCore.QNode.PropertyTrackingMode:
- "PySide2.Qt3DCore.Qt3DCore.QNode.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DCore.Qt3DCore.QNode.blockNotifications": ('bool',),
- "PySide2.Qt3DCore.Qt3DCore.QNode.childNodes": (),
- "PySide2.Qt3DCore.Qt3DCore.QNode.clearPropertyTracking": ('str',),
- "PySide2.Qt3DCore.Qt3DCore.QNode.clearPropertyTrackings": (),
- "PySide2.Qt3DCore.Qt3DCore.QNode.defaultPropertyTrackingMode": (),
- "PySide2.Qt3DCore.Qt3DCore.QNode.id": (),
- "PySide2.Qt3DCore.Qt3DCore.QNode.isEnabled": (),
- "PySide2.Qt3DCore.Qt3DCore.QNode.notificationsBlocked": (),
- "PySide2.Qt3DCore.Qt3DCore.QNode.parentNode": (),
- "PySide2.Qt3DCore.Qt3DCore.QNode.propertyTracking": ('str',),
- "PySide2.Qt3DCore.Qt3DCore.QNode.setDefaultPropertyTrackingMode": ('PySide2.Qt3DCore.Qt3DCore.QNode.PropertyTrackingMode',),
- "PySide2.Qt3DCore.Qt3DCore.QNode.setEnabled": ('bool',),
- "PySide2.Qt3DCore.Qt3DCore.QNode.setParent": [('PySide2.Qt3DCore.Qt3DCore.QNode',), ('PySide2.QtCore.QObject',)],
- "PySide2.Qt3DCore.Qt3DCore.QNode.setPropertyTracking": ('str', 'PySide2.Qt3DCore.Qt3DCore.QNode.PropertyTrackingMode'),
-# class PySide2.Qt3DCore.Qt3DCore.QNodeCommand:
- "PySide2.Qt3DCore.Qt3DCore.QNodeCommand.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
- "PySide2.Qt3DCore.Qt3DCore.QNodeCommand.commandId": (),
- "PySide2.Qt3DCore.Qt3DCore.QNodeCommand.data": (),
- "PySide2.Qt3DCore.Qt3DCore.QNodeCommand.inReplyTo": (),
- "PySide2.Qt3DCore.Qt3DCore.QNodeCommand.name": (),
- "PySide2.Qt3DCore.Qt3DCore.QNodeCommand.setData": ('typing.Any',),
- "PySide2.Qt3DCore.Qt3DCore.QNodeCommand.setName": ('str',),
- "PySide2.Qt3DCore.Qt3DCore.QNodeCommand.setReplyToCommandId": ('int',),
-# class PySide2.Qt3DCore.Qt3DCore.QNodeCreatedChangeBase:
- "PySide2.Qt3DCore.Qt3DCore.QNodeCreatedChangeBase.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DCore.Qt3DCore.QNodeCreatedChangeBase.isNodeEnabled": (),
- "PySide2.Qt3DCore.Qt3DCore.QNodeCreatedChangeBase.parentId": (),
-# class PySide2.Qt3DCore.Qt3DCore.QNodeDestroyedChange:
- "PySide2.Qt3DCore.Qt3DCore.QNodeDestroyedChange.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode', 'typing.List[PySide2.Qt3DCore.Qt3DCore.QNodeIdTypePair]'),
- "PySide2.Qt3DCore.Qt3DCore.QNodeDestroyedChange.subtreeIdsAndTypes": (),
-# class PySide2.Qt3DCore.Qt3DCore.QNodeId:
- "PySide2.Qt3DCore.Qt3DCore.QNodeId.__init__": [(), ('PySide2.Qt3DCore.Qt3DCore.QNodeId',)],
- "PySide2.Qt3DCore.Qt3DCore.QNodeId.__copy__": (),
- "PySide2.Qt3DCore.Qt3DCore.QNodeId.createId": (),
- "PySide2.Qt3DCore.Qt3DCore.QNodeId.id": (),
- "PySide2.Qt3DCore.Qt3DCore.QNodeId.isNull": (),
-# class PySide2.Qt3DCore.Qt3DCore.QNodeIdTypePair:
- "PySide2.Qt3DCore.Qt3DCore.QNodeIdTypePair.__init__": [(), ('PySide2.Qt3DCore.Qt3DCore.QNodeId', 'PySide2.QtCore.QMetaObject'), ('PySide2.Qt3DCore.Qt3DCore.QNodeIdTypePair',)],
- "PySide2.Qt3DCore.Qt3DCore.QNodeIdTypePair.__copy__": (),
-# class PySide2.Qt3DCore.Qt3DCore.QPropertyNodeAddedChange:
- "PySide2.Qt3DCore.Qt3DCore.QPropertyNodeAddedChange.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId', 'PySide2.Qt3DCore.Qt3DCore.QNode'),
- "PySide2.Qt3DCore.Qt3DCore.QPropertyNodeAddedChange.addedNodeId": (),
-# class PySide2.Qt3DCore.Qt3DCore.QPropertyNodeRemovedChange:
- "PySide2.Qt3DCore.Qt3DCore.QPropertyNodeRemovedChange.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId', 'PySide2.Qt3DCore.Qt3DCore.QNode'),
- "PySide2.Qt3DCore.Qt3DCore.QPropertyNodeRemovedChange.removedNodeId": (),
-# class PySide2.Qt3DCore.Qt3DCore.QPropertyUpdatedChange:
- "PySide2.Qt3DCore.Qt3DCore.QPropertyUpdatedChange.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
- "PySide2.Qt3DCore.Qt3DCore.QPropertyUpdatedChange.setValue": ('typing.Any',),
- "PySide2.Qt3DCore.Qt3DCore.QPropertyUpdatedChange.value": (),
-# class PySide2.Qt3DCore.Qt3DCore.QPropertyUpdatedChangeBase:
- "PySide2.Qt3DCore.Qt3DCore.QPropertyUpdatedChangeBase.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
-# class PySide2.Qt3DCore.Qt3DCore.QPropertyValueAddedChange:
- "PySide2.Qt3DCore.Qt3DCore.QPropertyValueAddedChange.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
- "PySide2.Qt3DCore.Qt3DCore.QPropertyValueAddedChange.addedValue": (),
- "PySide2.Qt3DCore.Qt3DCore.QPropertyValueAddedChange.setAddedValue": ('typing.Any',),
-# class PySide2.Qt3DCore.Qt3DCore.QPropertyValueAddedChangeBase:
- "PySide2.Qt3DCore.Qt3DCore.QPropertyValueAddedChangeBase.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
-# class PySide2.Qt3DCore.Qt3DCore.QPropertyValueRemovedChange:
- "PySide2.Qt3DCore.Qt3DCore.QPropertyValueRemovedChange.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
- "PySide2.Qt3DCore.Qt3DCore.QPropertyValueRemovedChange.removedValue": (),
- "PySide2.Qt3DCore.Qt3DCore.QPropertyValueRemovedChange.setRemovedValue": ('typing.Any',),
-# class PySide2.Qt3DCore.Qt3DCore.QPropertyValueRemovedChangeBase:
- "PySide2.Qt3DCore.Qt3DCore.QPropertyValueRemovedChangeBase.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
-# class PySide2.Qt3DCore.Qt3DCore.QSceneChange:
-# class PySide2.Qt3DCore.Qt3DCore.QSceneChange.DeliveryFlag:
-# class PySide2.Qt3DCore.Qt3DCore.QSceneChange.DeliveryFlags:
- "PySide2.Qt3DCore.Qt3DCore.QSceneChange.__init__": ('PySide2.Qt3DCore.Qt3DCore.ChangeFlag', 'PySide2.Qt3DCore.Qt3DCore.QNodeId'),
- "PySide2.Qt3DCore.Qt3DCore.QSceneChange.deliveryFlags": (),
- "PySide2.Qt3DCore.Qt3DCore.QSceneChange.setDeliveryFlags": ('PySide2.Qt3DCore.Qt3DCore.QSceneChange.DeliveryFlags',),
- "PySide2.Qt3DCore.Qt3DCore.QSceneChange.subjectId": (),
- "PySide2.Qt3DCore.Qt3DCore.QSceneChange.type": (),
-# class PySide2.Qt3DCore.Qt3DCore.QSkeleton:
- "PySide2.Qt3DCore.Qt3DCore.QSkeleton.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DCore.Qt3DCore.QSkeleton.rootJoint": (),
- "PySide2.Qt3DCore.Qt3DCore.QSkeleton.setRootJoint": ('PySide2.Qt3DCore.Qt3DCore.QJoint',),
-# class PySide2.Qt3DCore.Qt3DCore.QSkeletonLoader:
-# class PySide2.Qt3DCore.Qt3DCore.QSkeletonLoader.Status:
- "PySide2.Qt3DCore.Qt3DCore.QSkeletonLoader.__init__": [('PySide2.Qt3DCore.Qt3DCore.QNode',), ('PySide2.QtCore.QUrl', 'PySide2.Qt3DCore.Qt3DCore.QNode')],
- "PySide2.Qt3DCore.Qt3DCore.QSkeletonLoader.isCreateJointsEnabled": (),
- "PySide2.Qt3DCore.Qt3DCore.QSkeletonLoader.rootJoint": (),
- "PySide2.Qt3DCore.Qt3DCore.QSkeletonLoader.setCreateJointsEnabled": ('bool',),
- "PySide2.Qt3DCore.Qt3DCore.QSkeletonLoader.setSource": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DCore.Qt3DCore.QSkeletonLoader.source": (),
- "PySide2.Qt3DCore.Qt3DCore.QSkeletonLoader.status": (),
-# class PySide2.Qt3DCore.Qt3DCore.QStaticPropertyUpdatedChangeBase:
- "PySide2.Qt3DCore.Qt3DCore.QStaticPropertyUpdatedChangeBase.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
- "PySide2.Qt3DCore.Qt3DCore.QStaticPropertyUpdatedChangeBase.propertyName": (),
- "PySide2.Qt3DCore.Qt3DCore.QStaticPropertyUpdatedChangeBase.setPropertyName": ('str',),
-# class PySide2.Qt3DCore.Qt3DCore.QStaticPropertyValueAddedChangeBase:
- "PySide2.Qt3DCore.Qt3DCore.QStaticPropertyValueAddedChangeBase.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
- "PySide2.Qt3DCore.Qt3DCore.QStaticPropertyValueAddedChangeBase.propertyName": (),
- "PySide2.Qt3DCore.Qt3DCore.QStaticPropertyValueAddedChangeBase.setPropertyName": ('str',),
-# class PySide2.Qt3DCore.Qt3DCore.QStaticPropertyValueRemovedChangeBase:
- "PySide2.Qt3DCore.Qt3DCore.QStaticPropertyValueRemovedChangeBase.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
- "PySide2.Qt3DCore.Qt3DCore.QStaticPropertyValueRemovedChangeBase.propertyName": (),
- "PySide2.Qt3DCore.Qt3DCore.QStaticPropertyValueRemovedChangeBase.setPropertyName": ('str',),
-# class PySide2.Qt3DCore.Qt3DCore.QTransform:
- "PySide2.Qt3DCore.Qt3DCore.QTransform.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.fromAxes": ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.fromAxesAndAngles": [('PySide2.QtGui.QVector3D', 'float', 'PySide2.QtGui.QVector3D', 'float'), ('PySide2.QtGui.QVector3D', 'float', 'PySide2.QtGui.QVector3D', 'float', 'PySide2.QtGui.QVector3D', 'float')],
- "PySide2.Qt3DCore.Qt3DCore.QTransform.fromAxisAndAngle": [('PySide2.QtGui.QVector3D', 'float'), ('float', 'float', 'float', 'float')],
- "PySide2.Qt3DCore.Qt3DCore.QTransform.fromEulerAngles": [('PySide2.QtGui.QVector3D',), ('float', 'float', 'float')],
- "PySide2.Qt3DCore.Qt3DCore.QTransform.matrix": (),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.rotateAround": ('PySide2.QtGui.QVector3D', 'float', 'PySide2.QtGui.QVector3D'),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.rotateFromAxes": ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.rotation": (),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.rotationX": (),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.rotationY": (),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.rotationZ": (),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.scale": (),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.scale3D": (),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.setMatrix": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.setRotation": ('PySide2.QtGui.QQuaternion',),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.setRotationX": ('float',),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.setRotationY": ('float',),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.setRotationZ": ('float',),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.setScale": ('float',),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.setScale3D": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.setTranslation": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.translation": (),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.worldMatrix": (),
- "PySide2.Qt3DCore.Qt3DCore.qHash": ('PySide2.Qt3DCore.Qt3DCore.QNodeId', 'int'),
- "PySide2.Qt3DCore.Qt3DCore.qIdForNode": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- }) if "PySide2.Qt3DCore" in sys.modules else None
-# Module PySide2.Qt3DRender
-sig_dict.update({
-# class PySide2.Qt3DRender.Qt3DRender:
-# class PySide2.Qt3DRender.Qt3DRender.PropertyReaderInterface:
- "PySide2.Qt3DRender.Qt3DRender.PropertyReaderInterface.__init__": (),
- "PySide2.Qt3DRender.Qt3DRender.PropertyReaderInterface.readProperty": ('typing.Any',),
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractFunctor:
- "PySide2.Qt3DRender.Qt3DRender.QAbstractFunctor.__init__": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractFunctor.id": (),
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractLight:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractLight.Type:
- "PySide2.Qt3DRender.Qt3DRender.QAbstractLight.color": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractLight.intensity": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractLight.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractLight.setIntensity": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractLight.type": (),
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.FilterMode:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.RunMode:
- "PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.addLayer": ('PySide2.Qt3DRender.Qt3DRender.QLayer',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.filterMode": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.hits": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.layers": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.removeLayer": ('PySide2.Qt3DRender.Qt3DRender.QLayer',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.runMode": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.setFilterMode": ('PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.FilterMode',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.setRunMode": ('PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.RunMode',),
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractTexture:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.ComparisonFunction:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.ComparisonMode:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.CubeMapFace:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.Filter:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.HandleType:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.Status:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.Target:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.TextureFormat:
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.__init__": [('PySide2.Qt3DCore.Qt3DCore.QNode',), ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.Target', 'PySide2.Qt3DCore.Qt3DCore.QNode')],
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.addTextureImage": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTextureImage',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.comparisonFunction": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.comparisonMode": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.depth": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.format": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.generateMipMaps": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.handle": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.handleType": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.height": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.layers": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.magnificationFilter": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.maximumAnisotropy": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.minificationFilter": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.removeTextureImage": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTextureImage',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.samples": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setComparisonFunction": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.ComparisonFunction',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setComparisonMode": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.ComparisonMode',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setDepth": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setFormat": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.TextureFormat',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setGenerateMipMaps": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setHandle": ('typing.Any',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setHandleType": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.HandleType',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setHeight": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setLayers": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setMagnificationFilter": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.Filter',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setMaximumAnisotropy": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setMinificationFilter": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.Filter',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setSamples": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setSize": ('int', 'int', 'int'),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setStatus": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.Status',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setWidth": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setWrapMode": ('PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.status": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.target": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.textureImages": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.width": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.wrapMode": (),
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractTextureImage:
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTextureImage.face": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTextureImage.layer": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTextureImage.mipLevel": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTextureImage.notifyDataGeneratorChanged": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTextureImage.setFace": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.CubeMapFace',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTextureImage.setLayer": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTextureImage.setMipLevel": ('int',),
-# class PySide2.Qt3DRender.Qt3DRender.QAlphaCoverage:
- "PySide2.Qt3DRender.Qt3DRender.QAlphaCoverage.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QAlphaTest:
-# class PySide2.Qt3DRender.Qt3DRender.QAlphaTest.AlphaFunction:
- "PySide2.Qt3DRender.Qt3DRender.QAlphaTest.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QAlphaTest.alphaFunction": (),
- "PySide2.Qt3DRender.Qt3DRender.QAlphaTest.referenceValue": (),
- "PySide2.Qt3DRender.Qt3DRender.QAlphaTest.setAlphaFunction": ('PySide2.Qt3DRender.Qt3DRender.QAlphaTest.AlphaFunction',),
- "PySide2.Qt3DRender.Qt3DRender.QAlphaTest.setReferenceValue": ('float',),
-# class PySide2.Qt3DRender.Qt3DRender.QAttribute:
-# class PySide2.Qt3DRender.Qt3DRender.QAttribute.AttributeType:
-# class PySide2.Qt3DRender.Qt3DRender.QAttribute.VertexBaseType:
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.__init__": [('PySide2.Qt3DCore.Qt3DCore.QNode',), ('PySide2.Qt3DRender.Qt3DRender.QBuffer', 'PySide2.Qt3DRender.Qt3DRender.QAttribute.VertexBaseType', 'int', 'int', 'int', 'int', 'PySide2.Qt3DCore.Qt3DCore.QNode'), ('PySide2.Qt3DRender.Qt3DRender.QBuffer', 'str', 'PySide2.Qt3DRender.Qt3DRender.QAttribute.VertexBaseType', 'int', 'int', 'int', 'int', 'PySide2.Qt3DCore.Qt3DCore.QNode')],
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.attributeType": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.buffer": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.byteOffset": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.byteStride": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.count": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.defaultColorAttributeName": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.defaultJointIndicesAttributeName": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.defaultJointWeightsAttributeName": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.defaultNormalAttributeName": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.defaultPositionAttributeName": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.defaultTangentAttributeName": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.defaultTextureCoordinate1AttributeName": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.defaultTextureCoordinate2AttributeName": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.defaultTextureCoordinateAttributeName": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.divisor": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.name": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setAttributeType": ('PySide2.Qt3DRender.Qt3DRender.QAttribute.AttributeType',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setBuffer": ('PySide2.Qt3DRender.Qt3DRender.QBuffer',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setByteOffset": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setByteStride": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setCount": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setDataSize": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setDataType": ('PySide2.Qt3DRender.Qt3DRender.QAttribute.VertexBaseType',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setDivisor": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setName": ('str',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setVertexBaseType": ('PySide2.Qt3DRender.Qt3DRender.QAttribute.VertexBaseType',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setVertexSize": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.vertexBaseType": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.vertexSize": (),
-# class PySide2.Qt3DRender.Qt3DRender.QBlendEquation:
-# class PySide2.Qt3DRender.Qt3DRender.QBlendEquation.BlendFunction:
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquation.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquation.blendFunction": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquation.setBlendFunction": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquation.BlendFunction',),
-# class PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments:
-# class PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending:
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.bufferIndex": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.destinationAlpha": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.destinationRgb": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.setBufferIndex": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.setDestinationAlpha": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending',),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.setDestinationRgb": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending',),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.setDestinationRgba": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending',),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.setSourceAlpha": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending',),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.setSourceRgb": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending',),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.setSourceRgba": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending',),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.sourceAlpha": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.sourceRgb": (),
-# class PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer:
-# class PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.InterpolationMethod:
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.destination": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.destinationAttachmentPoint": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.destinationRect": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.interpolationMethod": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.setDestination": ('PySide2.Qt3DRender.Qt3DRender.QRenderTarget',),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.setDestinationAttachmentPoint": ('PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.AttachmentPoint',),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.setDestinationRect": ('PySide2.QtCore.QRectF',),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.setInterpolationMethod": ('PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.InterpolationMethod',),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.setSource": ('PySide2.Qt3DRender.Qt3DRender.QRenderTarget',),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.setSourceAttachmentPoint": ('PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.AttachmentPoint',),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.setSourceRect": ('PySide2.QtCore.QRectF',),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.source": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.sourceAttachmentPoint": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.sourceRect": (),
-# class PySide2.Qt3DRender.Qt3DRender.QBuffer:
-# class PySide2.Qt3DRender.Qt3DRender.QBuffer.AccessType:
-# class PySide2.Qt3DRender.Qt3DRender.QBuffer.BufferType:
-# class PySide2.Qt3DRender.Qt3DRender.QBuffer.UsageType:
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.__init__": [('PySide2.Qt3DCore.Qt3DCore.QNode',), ('PySide2.Qt3DRender.Qt3DRender.QBuffer.BufferType', 'PySide2.Qt3DCore.Qt3DCore.QNode')],
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.accessType": (),
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.data": (),
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.isSyncData": (),
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.setAccessType": ('PySide2.Qt3DRender.Qt3DRender.QBuffer.AccessType',),
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.setData": ('PySide2.QtCore.QByteArray',),
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.setSyncData": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.setType": ('PySide2.Qt3DRender.Qt3DRender.QBuffer.BufferType',),
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.setUsage": ('PySide2.Qt3DRender.Qt3DRender.QBuffer.UsageType',),
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.type": (),
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.updateData": ('int', 'PySide2.QtCore.QByteArray'),
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.usage": (),
-# class PySide2.Qt3DRender.Qt3DRender.QBufferCapture:
- "PySide2.Qt3DRender.Qt3DRender.QBufferCapture.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QBufferDataGenerator:
- "PySide2.Qt3DRender.Qt3DRender.QBufferDataGenerator.__init__": (),
-# class PySide2.Qt3DRender.Qt3DRender.QCamera:
-# class PySide2.Qt3DRender.Qt3DRender.QCamera.CameraTranslationOption:
- "PySide2.Qt3DRender.Qt3DRender.QCamera.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.aspectRatio": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.bottom": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.exposure": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.farPlane": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.fieldOfView": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.left": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.lens": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.nearPlane": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.pan": [('float',), ('float', 'PySide2.QtGui.QVector3D')],
- "PySide2.Qt3DRender.Qt3DRender.QCamera.panAboutViewCenter": [('float',), ('float', 'PySide2.QtGui.QVector3D')],
- "PySide2.Qt3DRender.Qt3DRender.QCamera.panRotation": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.position": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.projectionMatrix": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.projectionType": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.right": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.roll": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.rollAboutViewCenter": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.rollRotation": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.rotate": ('PySide2.QtGui.QQuaternion',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.rotateAboutViewCenter": ('PySide2.QtGui.QQuaternion',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.rotation": ('float', 'PySide2.QtGui.QVector3D'),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setAspectRatio": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setBottom": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setExposure": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setFarPlane": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setFieldOfView": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setLeft": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setNearPlane": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setPosition": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setProjectionMatrix": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setProjectionType": ('PySide2.Qt3DRender.Qt3DRender.QCameraLens.ProjectionType',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setRight": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setTop": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setUpVector": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setViewCenter": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.tilt": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.tiltAboutViewCenter": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.tiltRotation": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.top": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.transform": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.translate": ('PySide2.QtGui.QVector3D', 'PySide2.Qt3DRender.Qt3DRender.QCamera.CameraTranslationOption'),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.translateWorld": ('PySide2.QtGui.QVector3D', 'PySide2.Qt3DRender.Qt3DRender.QCamera.CameraTranslationOption'),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.upVector": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.viewAll": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.viewCenter": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.viewEntity": ('PySide2.Qt3DCore.Qt3DCore.QEntity',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.viewMatrix": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.viewSphere": ('PySide2.QtGui.QVector3D', 'float'),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.viewVector": (),
-# class PySide2.Qt3DRender.Qt3DRender.QCameraLens:
-# class PySide2.Qt3DRender.Qt3DRender.QCameraLens.ProjectionType:
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.aspectRatio": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.bottom": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.exposure": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.farPlane": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.fieldOfView": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.left": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.nearPlane": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.projectionMatrix": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.projectionType": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.right": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setAspectRatio": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setBottom": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setExposure": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setFarPlane": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setFieldOfView": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setFrustumProjection": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setLeft": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setNearPlane": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setOrthographicProjection": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setPerspectiveProjection": ('float', 'float', 'float', 'float'),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setProjectionMatrix": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setProjectionType": ('PySide2.Qt3DRender.Qt3DRender.QCameraLens.ProjectionType',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setRight": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setTop": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.top": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.viewAll": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.viewEntity": ('PySide2.Qt3DCore.Qt3DCore.QNodeId', 'PySide2.Qt3DCore.Qt3DCore.QNodeId'),
-# class PySide2.Qt3DRender.Qt3DRender.QCameraSelector:
- "PySide2.Qt3DRender.Qt3DRender.QCameraSelector.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraSelector.camera": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraSelector.setCamera": ('PySide2.Qt3DCore.Qt3DCore.QEntity',),
-# class PySide2.Qt3DRender.Qt3DRender.QClearBuffers:
-# class PySide2.Qt3DRender.Qt3DRender.QClearBuffers.BufferType:
-# class PySide2.Qt3DRender.Qt3DRender.QClearBuffers.BufferTypeFlags:
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.buffers": (),
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.clearColor": (),
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.clearDepthValue": (),
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.clearStencilValue": (),
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.colorBuffer": (),
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.setBuffers": ('PySide2.Qt3DRender.Qt3DRender.QClearBuffers.BufferType',),
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.setClearColor": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.setClearDepthValue": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.setClearStencilValue": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.setColorBuffer": ('PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput',),
-# class PySide2.Qt3DRender.Qt3DRender.QClipPlane:
- "PySide2.Qt3DRender.Qt3DRender.QClipPlane.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QClipPlane.distance": (),
- "PySide2.Qt3DRender.Qt3DRender.QClipPlane.normal": (),
- "PySide2.Qt3DRender.Qt3DRender.QClipPlane.planeIndex": (),
- "PySide2.Qt3DRender.Qt3DRender.QClipPlane.setDistance": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QClipPlane.setNormal": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DRender.Qt3DRender.QClipPlane.setPlaneIndex": ('int',),
-# class PySide2.Qt3DRender.Qt3DRender.QColorMask:
- "PySide2.Qt3DRender.Qt3DRender.QColorMask.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QColorMask.isAlphaMasked": (),
- "PySide2.Qt3DRender.Qt3DRender.QColorMask.isBlueMasked": (),
- "PySide2.Qt3DRender.Qt3DRender.QColorMask.isGreenMasked": (),
- "PySide2.Qt3DRender.Qt3DRender.QColorMask.isRedMasked": (),
- "PySide2.Qt3DRender.Qt3DRender.QColorMask.setAlphaMasked": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QColorMask.setBlueMasked": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QColorMask.setGreenMasked": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QColorMask.setRedMasked": ('bool',),
-# class PySide2.Qt3DRender.Qt3DRender.QComputeCommand:
-# class PySide2.Qt3DRender.Qt3DRender.QComputeCommand.RunType:
- "PySide2.Qt3DRender.Qt3DRender.QComputeCommand.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QComputeCommand.runType": (),
- "PySide2.Qt3DRender.Qt3DRender.QComputeCommand.setRunType": ('PySide2.Qt3DRender.Qt3DRender.QComputeCommand.RunType',),
- "PySide2.Qt3DRender.Qt3DRender.QComputeCommand.setWorkGroupX": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QComputeCommand.setWorkGroupY": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QComputeCommand.setWorkGroupZ": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QComputeCommand.trigger": [('int',), ('int', 'int', 'int', 'int')],
- "PySide2.Qt3DRender.Qt3DRender.QComputeCommand.workGroupX": (),
- "PySide2.Qt3DRender.Qt3DRender.QComputeCommand.workGroupY": (),
- "PySide2.Qt3DRender.Qt3DRender.QComputeCommand.workGroupZ": (),
-# class PySide2.Qt3DRender.Qt3DRender.QCullFace:
-# class PySide2.Qt3DRender.Qt3DRender.QCullFace.CullingMode:
- "PySide2.Qt3DRender.Qt3DRender.QCullFace.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QCullFace.mode": (),
- "PySide2.Qt3DRender.Qt3DRender.QCullFace.setMode": ('PySide2.Qt3DRender.Qt3DRender.QCullFace.CullingMode',),
-# class PySide2.Qt3DRender.Qt3DRender.QDepthTest:
-# class PySide2.Qt3DRender.Qt3DRender.QDepthTest.DepthFunction:
- "PySide2.Qt3DRender.Qt3DRender.QDepthTest.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QDepthTest.depthFunction": (),
- "PySide2.Qt3DRender.Qt3DRender.QDepthTest.setDepthFunction": ('PySide2.Qt3DRender.Qt3DRender.QDepthTest.DepthFunction',),
-# class PySide2.Qt3DRender.Qt3DRender.QDirectionalLight:
- "PySide2.Qt3DRender.Qt3DRender.QDirectionalLight.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QDirectionalLight.setWorldDirection": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DRender.Qt3DRender.QDirectionalLight.worldDirection": (),
-# class PySide2.Qt3DRender.Qt3DRender.QDispatchCompute:
- "PySide2.Qt3DRender.Qt3DRender.QDispatchCompute.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QDispatchCompute.setWorkGroupX": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QDispatchCompute.setWorkGroupY": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QDispatchCompute.setWorkGroupZ": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QDispatchCompute.workGroupX": (),
- "PySide2.Qt3DRender.Qt3DRender.QDispatchCompute.workGroupY": (),
- "PySide2.Qt3DRender.Qt3DRender.QDispatchCompute.workGroupZ": (),
-# class PySide2.Qt3DRender.Qt3DRender.QDithering:
- "PySide2.Qt3DRender.Qt3DRender.QDithering.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QEffect:
- "PySide2.Qt3DRender.Qt3DRender.QEffect.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QEffect.addParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
- "PySide2.Qt3DRender.Qt3DRender.QEffect.addTechnique": ('PySide2.Qt3DRender.Qt3DRender.QTechnique',),
- "PySide2.Qt3DRender.Qt3DRender.QEffect.parameters": (),
- "PySide2.Qt3DRender.Qt3DRender.QEffect.removeParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
- "PySide2.Qt3DRender.Qt3DRender.QEffect.removeTechnique": ('PySide2.Qt3DRender.Qt3DRender.QTechnique',),
- "PySide2.Qt3DRender.Qt3DRender.QEffect.techniques": (),
-# class PySide2.Qt3DRender.Qt3DRender.QEnvironmentLight:
- "PySide2.Qt3DRender.Qt3DRender.QEnvironmentLight.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QEnvironmentLight.irradiance": (),
- "PySide2.Qt3DRender.Qt3DRender.QEnvironmentLight.setIrradiance": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DRender.Qt3DRender.QEnvironmentLight.setSpecular": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DRender.Qt3DRender.QEnvironmentLight.specular": (),
-# class PySide2.Qt3DRender.Qt3DRender.QFilterKey:
- "PySide2.Qt3DRender.Qt3DRender.QFilterKey.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QFilterKey.name": (),
- "PySide2.Qt3DRender.Qt3DRender.QFilterKey.setName": ('str',),
- "PySide2.Qt3DRender.Qt3DRender.QFilterKey.setValue": ('typing.Any',),
- "PySide2.Qt3DRender.Qt3DRender.QFilterKey.value": (),
-# class PySide2.Qt3DRender.Qt3DRender.QFrameGraphNode:
- "PySide2.Qt3DRender.Qt3DRender.QFrameGraphNode.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QFrameGraphNode.parentFrameGraphNode": (),
-# class PySide2.Qt3DRender.Qt3DRender.QFrameGraphNodeCreatedChangeBase:
- "PySide2.Qt3DRender.Qt3DRender.QFrameGraphNodeCreatedChangeBase.__init__": ('PySide2.Qt3DRender.Qt3DRender.QFrameGraphNode',),
- "PySide2.Qt3DRender.Qt3DRender.QFrameGraphNodeCreatedChangeBase.parentFrameGraphNodeId": (),
-# class PySide2.Qt3DRender.Qt3DRender.QFrontFace:
-# class PySide2.Qt3DRender.Qt3DRender.QFrontFace.WindingDirection:
- "PySide2.Qt3DRender.Qt3DRender.QFrontFace.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QFrontFace.direction": (),
- "PySide2.Qt3DRender.Qt3DRender.QFrontFace.setDirection": ('PySide2.Qt3DRender.Qt3DRender.QFrontFace.WindingDirection',),
-# class PySide2.Qt3DRender.Qt3DRender.QFrustumCulling:
- "PySide2.Qt3DRender.Qt3DRender.QFrustumCulling.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QGeometry:
- "PySide2.Qt3DRender.Qt3DRender.QGeometry.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometry.addAttribute": ('PySide2.Qt3DRender.Qt3DRender.QAttribute',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometry.attributes": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometry.boundingVolumePositionAttribute": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometry.maxExtent": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometry.minExtent": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometry.removeAttribute": ('PySide2.Qt3DRender.Qt3DRender.QAttribute',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometry.setBoundingVolumePositionAttribute": ('PySide2.Qt3DRender.Qt3DRender.QAttribute',),
-# class PySide2.Qt3DRender.Qt3DRender.QGeometryFactory:
- "PySide2.Qt3DRender.Qt3DRender.QGeometryFactory.__init__": (),
-# class PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer:
-# class PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.PrimitiveType:
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.firstInstance": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.firstVertex": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.geometry": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.indexBufferByteOffset": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.indexOffset": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.instanceCount": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.primitiveRestartEnabled": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.primitiveType": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.restartIndexValue": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setFirstInstance": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setFirstVertex": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setGeometry": ('PySide2.Qt3DRender.Qt3DRender.QGeometry',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setIndexBufferByteOffset": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setIndexOffset": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setInstanceCount": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setPrimitiveRestartEnabled": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setPrimitiveType": ('PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.PrimitiveType',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setRestartIndexValue": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setVertexCount": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setVerticesPerPatch": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.vertexCount": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.verticesPerPatch": (),
-# class PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter:
-# class PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.Api:
-# class PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.OpenGLProfile:
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.api": (),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.extensions": (),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.majorVersion": (),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.minorVersion": (),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.profile": (),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.setApi": ('PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.Api',),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.setExtensions": ('typing.Sequence[str]',),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.setMajorVersion": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.setMinorVersion": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.setProfile": ('PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.OpenGLProfile',),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.setVendor": ('str',),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.vendor": (),
-# class PySide2.Qt3DRender.Qt3DRender.QLayer:
- "PySide2.Qt3DRender.Qt3DRender.QLayer.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QLayer.recursive": (),
- "PySide2.Qt3DRender.Qt3DRender.QLayer.setRecursive": ('bool',),
-# class PySide2.Qt3DRender.Qt3DRender.QLayerFilter:
-# class PySide2.Qt3DRender.Qt3DRender.QLayerFilter.FilterMode:
- "PySide2.Qt3DRender.Qt3DRender.QLayerFilter.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QLayerFilter.addLayer": ('PySide2.Qt3DRender.Qt3DRender.QLayer',),
- "PySide2.Qt3DRender.Qt3DRender.QLayerFilter.filterMode": (),
- "PySide2.Qt3DRender.Qt3DRender.QLayerFilter.layers": (),
- "PySide2.Qt3DRender.Qt3DRender.QLayerFilter.removeLayer": ('PySide2.Qt3DRender.Qt3DRender.QLayer',),
- "PySide2.Qt3DRender.Qt3DRender.QLayerFilter.setFilterMode": ('PySide2.Qt3DRender.Qt3DRender.QLayerFilter.FilterMode',),
-# class PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail:
-# class PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.ThresholdType:
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.camera": (),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.createBoundingSphere": ('PySide2.QtGui.QVector3D', 'float'),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.currentIndex": (),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.setCamera": ('PySide2.Qt3DRender.Qt3DRender.QCamera',),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.setCurrentIndex": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.setThresholdType": ('PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.ThresholdType',),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.setThresholds": ('typing.List[float]',),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.setVolumeOverride": ('PySide2.Qt3DRender.Qt3DRender.QLevelOfDetailBoundingSphere',),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.thresholdType": (),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.thresholds": (),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.volumeOverride": (),
-# class PySide2.Qt3DRender.Qt3DRender.QLevelOfDetailBoundingSphere:
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetailBoundingSphere.__init__": [('PySide2.Qt3DRender.Qt3DRender.QLevelOfDetailBoundingSphere',), ('PySide2.QtGui.QVector3D', 'float')],
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetailBoundingSphere.center": (),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetailBoundingSphere.isEmpty": (),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetailBoundingSphere.radius": (),
-# class PySide2.Qt3DRender.Qt3DRender.QLevelOfDetailSwitch:
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetailSwitch.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QLineWidth:
- "PySide2.Qt3DRender.Qt3DRender.QLineWidth.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QLineWidth.setSmooth": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QLineWidth.setValue": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QLineWidth.smooth": (),
- "PySide2.Qt3DRender.Qt3DRender.QLineWidth.value": (),
-# class PySide2.Qt3DRender.Qt3DRender.QMaterial:
- "PySide2.Qt3DRender.Qt3DRender.QMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QMaterial.addParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
- "PySide2.Qt3DRender.Qt3DRender.QMaterial.effect": (),
- "PySide2.Qt3DRender.Qt3DRender.QMaterial.parameters": (),
- "PySide2.Qt3DRender.Qt3DRender.QMaterial.removeParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
- "PySide2.Qt3DRender.Qt3DRender.QMaterial.setEffect": ('PySide2.Qt3DRender.Qt3DRender.QEffect',),
-# class PySide2.Qt3DRender.Qt3DRender.QMemoryBarrier:
-# class PySide2.Qt3DRender.Qt3DRender.QMemoryBarrier.Operation:
-# class PySide2.Qt3DRender.Qt3DRender.QMemoryBarrier.Operations:
- "PySide2.Qt3DRender.Qt3DRender.QMemoryBarrier.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QMemoryBarrier.setWaitOperations": ('PySide2.Qt3DRender.Qt3DRender.QMemoryBarrier.Operations',),
- "PySide2.Qt3DRender.Qt3DRender.QMemoryBarrier.waitOperations": (),
-# class PySide2.Qt3DRender.Qt3DRender.QMesh:
-# class PySide2.Qt3DRender.Qt3DRender.QMesh.Status:
- "PySide2.Qt3DRender.Qt3DRender.QMesh.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QMesh.meshName": (),
- "PySide2.Qt3DRender.Qt3DRender.QMesh.setMeshName": ('str',),
- "PySide2.Qt3DRender.Qt3DRender.QMesh.setSource": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QMesh.source": (),
- "PySide2.Qt3DRender.Qt3DRender.QMesh.status": (),
-# class PySide2.Qt3DRender.Qt3DRender.QMultiSampleAntiAliasing:
- "PySide2.Qt3DRender.Qt3DRender.QMultiSampleAntiAliasing.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QNoDepthMask:
- "PySide2.Qt3DRender.Qt3DRender.QNoDepthMask.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QNoDraw:
- "PySide2.Qt3DRender.Qt3DRender.QNoDraw.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QNoPicking:
- "PySide2.Qt3DRender.Qt3DRender.QNoPicking.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QObjectPicker:
- "PySide2.Qt3DRender.Qt3DRender.QObjectPicker.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QObjectPicker.containsMouse": (),
- "PySide2.Qt3DRender.Qt3DRender.QObjectPicker.isDragEnabled": (),
- "PySide2.Qt3DRender.Qt3DRender.QObjectPicker.isHoverEnabled": (),
- "PySide2.Qt3DRender.Qt3DRender.QObjectPicker.isPressed": (),
- "PySide2.Qt3DRender.Qt3DRender.QObjectPicker.priority": (),
- "PySide2.Qt3DRender.Qt3DRender.QObjectPicker.setDragEnabled": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QObjectPicker.setHoverEnabled": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QObjectPicker.setPriority": ('int',),
-# class PySide2.Qt3DRender.Qt3DRender.QPaintedTextureImage:
- "PySide2.Qt3DRender.Qt3DRender.QPaintedTextureImage.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QPaintedTextureImage.height": (),
- "PySide2.Qt3DRender.Qt3DRender.QPaintedTextureImage.paint": ('PySide2.QtGui.QPainter',),
- "PySide2.Qt3DRender.Qt3DRender.QPaintedTextureImage.setHeight": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QPaintedTextureImage.setSize": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DRender.Qt3DRender.QPaintedTextureImage.setWidth": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QPaintedTextureImage.size": (),
- "PySide2.Qt3DRender.Qt3DRender.QPaintedTextureImage.update": ('PySide2.QtCore.QRect',),
- "PySide2.Qt3DRender.Qt3DRender.QPaintedTextureImage.width": (),
-# class PySide2.Qt3DRender.Qt3DRender.QParameter:
- "PySide2.Qt3DRender.Qt3DRender.QParameter.__init__": [('PySide2.Qt3DCore.Qt3DCore.QNode',), ('str', 'PySide2.Qt3DRender.Qt3DRender.QAbstractTexture', 'PySide2.Qt3DCore.Qt3DCore.QNode'), ('str', 'typing.Any', 'PySide2.Qt3DCore.Qt3DCore.QNode')],
- "PySide2.Qt3DRender.Qt3DRender.QParameter.name": (),
- "PySide2.Qt3DRender.Qt3DRender.QParameter.setName": ('str',),
- "PySide2.Qt3DRender.Qt3DRender.QParameter.setValue": ('typing.Any',),
- "PySide2.Qt3DRender.Qt3DRender.QParameter.value": (),
-# class PySide2.Qt3DRender.Qt3DRender.QPickEvent:
-# class PySide2.Qt3DRender.Qt3DRender.QPickEvent.Buttons:
-# class PySide2.Qt3DRender.Qt3DRender.QPickEvent.Modifiers:
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.__init__": [(), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'float'), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'float', 'PySide2.Qt3DRender.Qt3DRender.QPickEvent.Buttons', 'int', 'int')],
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.button": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.buttons": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.distance": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.entity": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.isAccepted": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.localIntersection": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.modifiers": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.position": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.setAccepted": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.viewport": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.worldIntersection": (),
-# class PySide2.Qt3DRender.Qt3DRender.QPickLineEvent:
- "PySide2.Qt3DRender.Qt3DRender.QPickLineEvent.__init__": [(), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'float', 'int', 'int', 'int', 'PySide2.Qt3DRender.Qt3DRender.QPickEvent.Buttons', 'int', 'int')],
- "PySide2.Qt3DRender.Qt3DRender.QPickLineEvent.edgeIndex": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickLineEvent.vertex1Index": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickLineEvent.vertex2Index": (),
-# class PySide2.Qt3DRender.Qt3DRender.QPickPointEvent:
- "PySide2.Qt3DRender.Qt3DRender.QPickPointEvent.__init__": [(), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'float', 'int', 'PySide2.Qt3DRender.Qt3DRender.QPickEvent.Buttons', 'int', 'int')],
- "PySide2.Qt3DRender.Qt3DRender.QPickPointEvent.pointIndex": (),
-# class PySide2.Qt3DRender.Qt3DRender.QPickTriangleEvent:
- "PySide2.Qt3DRender.Qt3DRender.QPickTriangleEvent.__init__": [(), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'float', 'int', 'int', 'int', 'int'), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'float', 'int', 'int', 'int', 'int', 'PySide2.Qt3DRender.Qt3DRender.QPickEvent.Buttons', 'int', 'int', 'PySide2.QtGui.QVector3D')],
- "PySide2.Qt3DRender.Qt3DRender.QPickTriangleEvent.triangleIndex": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickTriangleEvent.uvw": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickTriangleEvent.vertex1Index": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickTriangleEvent.vertex2Index": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickTriangleEvent.vertex3Index": (),
-# class PySide2.Qt3DRender.Qt3DRender.QPickingSettings:
-# class PySide2.Qt3DRender.Qt3DRender.QPickingSettings.FaceOrientationPickingMode:
-# class PySide2.Qt3DRender.Qt3DRender.QPickingSettings.PickMethod:
-# class PySide2.Qt3DRender.Qt3DRender.QPickingSettings.PickResultMode:
- "PySide2.Qt3DRender.Qt3DRender.QPickingSettings.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QPickingSettings.faceOrientationPickingMode": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickingSettings.pickMethod": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickingSettings.pickResultMode": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickingSettings.setFaceOrientationPickingMode": ('PySide2.Qt3DRender.Qt3DRender.QPickingSettings.FaceOrientationPickingMode',),
- "PySide2.Qt3DRender.Qt3DRender.QPickingSettings.setPickMethod": ('PySide2.Qt3DRender.Qt3DRender.QPickingSettings.PickMethod',),
- "PySide2.Qt3DRender.Qt3DRender.QPickingSettings.setPickResultMode": ('PySide2.Qt3DRender.Qt3DRender.QPickingSettings.PickResultMode',),
- "PySide2.Qt3DRender.Qt3DRender.QPickingSettings.setWorldSpaceTolerance": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QPickingSettings.worldSpaceTolerance": (),
-# class PySide2.Qt3DRender.Qt3DRender.QPointLight:
- "PySide2.Qt3DRender.Qt3DRender.QPointLight.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QPointLight.constantAttenuation": (),
- "PySide2.Qt3DRender.Qt3DRender.QPointLight.linearAttenuation": (),
- "PySide2.Qt3DRender.Qt3DRender.QPointLight.quadraticAttenuation": (),
- "PySide2.Qt3DRender.Qt3DRender.QPointLight.setConstantAttenuation": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QPointLight.setLinearAttenuation": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QPointLight.setQuadraticAttenuation": ('float',),
-# class PySide2.Qt3DRender.Qt3DRender.QPointSize:
-# class PySide2.Qt3DRender.Qt3DRender.QPointSize.SizeMode:
- "PySide2.Qt3DRender.Qt3DRender.QPointSize.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QPointSize.setSizeMode": ('PySide2.Qt3DRender.Qt3DRender.QPointSize.SizeMode',),
- "PySide2.Qt3DRender.Qt3DRender.QPointSize.setValue": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QPointSize.sizeMode": (),
- "PySide2.Qt3DRender.Qt3DRender.QPointSize.value": (),
-# class PySide2.Qt3DRender.Qt3DRender.QPolygonOffset:
- "PySide2.Qt3DRender.Qt3DRender.QPolygonOffset.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QPolygonOffset.depthSteps": (),
- "PySide2.Qt3DRender.Qt3DRender.QPolygonOffset.scaleFactor": (),
- "PySide2.Qt3DRender.Qt3DRender.QPolygonOffset.setDepthSteps": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QPolygonOffset.setScaleFactor": ('float',),
-# class PySide2.Qt3DRender.Qt3DRender.QProximityFilter:
- "PySide2.Qt3DRender.Qt3DRender.QProximityFilter.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QProximityFilter.distanceThreshold": (),
- "PySide2.Qt3DRender.Qt3DRender.QProximityFilter.entity": (),
- "PySide2.Qt3DRender.Qt3DRender.QProximityFilter.setDistanceThreshold": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QProximityFilter.setEntity": ('PySide2.Qt3DCore.Qt3DCore.QEntity',),
-# class PySide2.Qt3DRender.Qt3DRender.QRayCaster:
- "PySide2.Qt3DRender.Qt3DRender.QRayCaster.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRayCaster.direction": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCaster.length": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCaster.origin": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCaster.setDirection": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DRender.Qt3DRender.QRayCaster.setLength": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QRayCaster.setOrigin": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DRender.Qt3DRender.QRayCaster.trigger": [(), ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'float')],
-# class PySide2.Qt3DRender.Qt3DRender.QRayCasterHit:
-# class PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.HitType:
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.__init__": [(), ('PySide2.Qt3DRender.Qt3DRender.QRayCasterHit',), ('PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.HitType', 'PySide2.Qt3DCore.Qt3DCore.QNodeId', 'float', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'int', 'int', 'int', 'int')],
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.__copy__": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.distance": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.entity": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.entityId": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.localIntersection": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.primitiveIndex": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.type": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.vertex1Index": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.vertex2Index": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.vertex3Index": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.worldIntersection": (),
-# class PySide2.Qt3DRender.Qt3DRender.QRenderAspect:
-# class PySide2.Qt3DRender.Qt3DRender.QRenderAspect.RenderType:
- "PySide2.Qt3DRender.Qt3DRender.QRenderAspect.__init__": [('PySide2.Qt3DRender.Qt3DRender.QRenderAspect.RenderType', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QObject',)],
-# class PySide2.Qt3DRender.Qt3DRender.QRenderCapture:
- "PySide2.Qt3DRender.Qt3DRender.QRenderCapture.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderCapture.requestCapture": [(), ('PySide2.QtCore.QRect',), ('int',)],
-# class PySide2.Qt3DRender.Qt3DRender.QRenderCaptureReply:
- "PySide2.Qt3DRender.Qt3DRender.QRenderCaptureReply.captureId": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderCaptureReply.image": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderCaptureReply.isComplete": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderCaptureReply.saveImage": ('str',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderCaptureReply.saveToFile": ('str',),
-# class PySide2.Qt3DRender.Qt3DRender.QRenderPass:
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.addFilterKey": ('PySide2.Qt3DRender.Qt3DRender.QFilterKey',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.addParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.addRenderState": ('PySide2.Qt3DRender.Qt3DRender.QRenderState',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.filterKeys": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.parameters": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.removeFilterKey": ('PySide2.Qt3DRender.Qt3DRender.QFilterKey',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.removeParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.removeRenderState": ('PySide2.Qt3DRender.Qt3DRender.QRenderState',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.renderStates": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.setShaderProgram": ('PySide2.Qt3DRender.Qt3DRender.QShaderProgram',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.shaderProgram": (),
-# class PySide2.Qt3DRender.Qt3DRender.QRenderPassFilter:
- "PySide2.Qt3DRender.Qt3DRender.QRenderPassFilter.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPassFilter.addMatch": ('PySide2.Qt3DRender.Qt3DRender.QFilterKey',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPassFilter.addParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPassFilter.matchAny": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPassFilter.parameters": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPassFilter.removeMatch": ('PySide2.Qt3DRender.Qt3DRender.QFilterKey',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPassFilter.removeParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
-# class PySide2.Qt3DRender.Qt3DRender.QRenderSettings:
-# class PySide2.Qt3DRender.Qt3DRender.QRenderSettings.RenderPolicy:
- "PySide2.Qt3DRender.Qt3DRender.QRenderSettings.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSettings.activeFrameGraph": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSettings.pickingSettings": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSettings.renderPolicy": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSettings.setActiveFrameGraph": ('PySide2.Qt3DRender.Qt3DRender.QFrameGraphNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSettings.setRenderPolicy": ('PySide2.Qt3DRender.Qt3DRender.QRenderSettings.RenderPolicy',),
-# class PySide2.Qt3DRender.Qt3DRender.QRenderState:
-# class PySide2.Qt3DRender.Qt3DRender.QRenderStateSet:
- "PySide2.Qt3DRender.Qt3DRender.QRenderStateSet.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderStateSet.addRenderState": ('PySide2.Qt3DRender.Qt3DRender.QRenderState',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderStateSet.removeRenderState": ('PySide2.Qt3DRender.Qt3DRender.QRenderState',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderStateSet.renderStates": (),
-# class PySide2.Qt3DRender.Qt3DRender.QRenderSurfaceSelector:
- "PySide2.Qt3DRender.Qt3DRender.QRenderSurfaceSelector.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSurfaceSelector.externalRenderTargetSize": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSurfaceSelector.setExternalRenderTargetSize": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSurfaceSelector.setSurface": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSurfaceSelector.setSurfacePixelRatio": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSurfaceSelector.surface": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSurfaceSelector.surfacePixelRatio": (),
-# class PySide2.Qt3DRender.Qt3DRender.QRenderTarget:
- "PySide2.Qt3DRender.Qt3DRender.QRenderTarget.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTarget.addOutput": ('PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTarget.outputs": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTarget.removeOutput": ('PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput',),
-# class PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput:
-# class PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.AttachmentPoint:
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.attachmentPoint": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.face": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.layer": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.mipLevel": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.setAttachmentPoint": ('PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.AttachmentPoint',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.setFace": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.CubeMapFace',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.setLayer": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.setMipLevel": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.setTexture": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.texture": (),
-# class PySide2.Qt3DRender.Qt3DRender.QRenderTargetSelector:
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetSelector.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetSelector.outputs": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetSelector.setOutputs": ('typing.List[PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.AttachmentPoint]',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetSelector.setTarget": ('PySide2.Qt3DRender.Qt3DRender.QRenderTarget',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetSelector.target": (),
-# class PySide2.Qt3DRender.Qt3DRender.QSceneLoader:
-# class PySide2.Qt3DRender.Qt3DRender.QSceneLoader.ComponentType:
-# class PySide2.Qt3DRender.Qt3DRender.QSceneLoader.Status:
- "PySide2.Qt3DRender.Qt3DRender.QSceneLoader.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QSceneLoader.component": ('str', 'PySide2.Qt3DRender.Qt3DRender.QSceneLoader.ComponentType'),
- "PySide2.Qt3DRender.Qt3DRender.QSceneLoader.entity": ('str',),
- "PySide2.Qt3DRender.Qt3DRender.QSceneLoader.entityNames": (),
- "PySide2.Qt3DRender.Qt3DRender.QSceneLoader.setSource": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QSceneLoader.setStatus": ('PySide2.Qt3DRender.Qt3DRender.QSceneLoader.Status',),
- "PySide2.Qt3DRender.Qt3DRender.QSceneLoader.source": (),
- "PySide2.Qt3DRender.Qt3DRender.QSceneLoader.status": (),
-# class PySide2.Qt3DRender.Qt3DRender.QScissorTest:
- "PySide2.Qt3DRender.Qt3DRender.QScissorTest.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QScissorTest.bottom": (),
- "PySide2.Qt3DRender.Qt3DRender.QScissorTest.height": (),
- "PySide2.Qt3DRender.Qt3DRender.QScissorTest.left": (),
- "PySide2.Qt3DRender.Qt3DRender.QScissorTest.setBottom": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QScissorTest.setHeight": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QScissorTest.setLeft": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QScissorTest.setWidth": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QScissorTest.width": (),
-# class PySide2.Qt3DRender.Qt3DRender.QScreenRayCaster:
- "PySide2.Qt3DRender.Qt3DRender.QScreenRayCaster.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QScreenRayCaster.position": (),
- "PySide2.Qt3DRender.Qt3DRender.QScreenRayCaster.setPosition": ('PySide2.QtCore.QPoint',),
- "PySide2.Qt3DRender.Qt3DRender.QScreenRayCaster.trigger": [(), ('PySide2.QtCore.QPoint',)],
-# class PySide2.Qt3DRender.Qt3DRender.QSeamlessCubemap:
- "PySide2.Qt3DRender.Qt3DRender.QSeamlessCubemap.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QSetFence:
-# class PySide2.Qt3DRender.Qt3DRender.QSetFence.HandleType:
- "PySide2.Qt3DRender.Qt3DRender.QSetFence.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QSetFence.handle": (),
- "PySide2.Qt3DRender.Qt3DRender.QSetFence.handleType": (),
-# class PySide2.Qt3DRender.Qt3DRender.QShaderData:
- "PySide2.Qt3DRender.Qt3DRender.QShaderData.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderData.event": ('PySide2.QtCore.QEvent',),
-# class PySide2.Qt3DRender.Qt3DRender.QShaderImage:
-# class PySide2.Qt3DRender.Qt3DRender.QShaderImage.Access:
-# class PySide2.Qt3DRender.Qt3DRender.QShaderImage.ImageFormat:
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.access": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.format": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.layer": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.layered": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.mipLevel": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.setAccess": ('PySide2.Qt3DRender.Qt3DRender.QShaderImage.Access',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.setFormat": ('PySide2.Qt3DRender.Qt3DRender.QShaderImage.ImageFormat',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.setLayer": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.setLayered": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.setMipLevel": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.setTexture": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.texture": (),
-# class PySide2.Qt3DRender.Qt3DRender.QShaderProgram:
-# class PySide2.Qt3DRender.Qt3DRender.QShaderProgram.ShaderType:
-# class PySide2.Qt3DRender.Qt3DRender.QShaderProgram.Status:
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.computeShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.fragmentShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.geometryShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.loadSource": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.log": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.setComputeShaderCode": ('PySide2.QtCore.QByteArray',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.setFragmentShaderCode": ('PySide2.QtCore.QByteArray',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.setGeometryShaderCode": ('PySide2.QtCore.QByteArray',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.setShaderCode": ('PySide2.Qt3DRender.Qt3DRender.QShaderProgram.ShaderType', 'PySide2.QtCore.QByteArray'),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.setTessellationControlShaderCode": ('PySide2.QtCore.QByteArray',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.setTessellationEvaluationShaderCode": ('PySide2.QtCore.QByteArray',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.setVertexShaderCode": ('PySide2.QtCore.QByteArray',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.shaderCode": ('PySide2.Qt3DRender.Qt3DRender.QShaderProgram.ShaderType',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.status": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.tessellationControlShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.tessellationEvaluationShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.vertexShaderCode": (),
-# class PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder:
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.computeShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.computeShaderGraph": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.enabledLayers": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.fragmentShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.fragmentShaderGraph": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.geometryShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.geometryShaderGraph": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.setComputeShaderGraph": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.setEnabledLayers": ('typing.Sequence[str]',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.setFragmentShaderGraph": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.setGeometryShaderGraph": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.setShaderProgram": ('PySide2.Qt3DRender.Qt3DRender.QShaderProgram',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.setTessellationControlShaderGraph": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.setTessellationEvaluationShaderGraph": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.setVertexShaderGraph": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.shaderProgram": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.tessellationControlShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.tessellationControlShaderGraph": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.tessellationEvaluationShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.tessellationEvaluationShaderGraph": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.vertexShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.vertexShaderGraph": (),
-# class PySide2.Qt3DRender.Qt3DRender.QSharedGLTexture:
- "PySide2.Qt3DRender.Qt3DRender.QSharedGLTexture.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QSharedGLTexture.setTextureId": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QSharedGLTexture.textureId": (),
-# class PySide2.Qt3DRender.Qt3DRender.QSortPolicy:
-# class PySide2.Qt3DRender.Qt3DRender.QSortPolicy.SortType:
- "PySide2.Qt3DRender.Qt3DRender.QSortPolicy.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QSortPolicy.setSortTypes": [('typing.List[PySide2.Qt3DRender.Qt3DRender.QSortPolicy.SortType]',), ('typing.List[int]',)],
- "PySide2.Qt3DRender.Qt3DRender.QSortPolicy.sortTypes": (),
- "PySide2.Qt3DRender.Qt3DRender.QSortPolicy.sortTypesInt": (),
-# class PySide2.Qt3DRender.Qt3DRender.QSpotLight:
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.constantAttenuation": (),
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.cutOffAngle": (),
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.linearAttenuation": (),
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.localDirection": (),
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.quadraticAttenuation": (),
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.setConstantAttenuation": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.setCutOffAngle": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.setLinearAttenuation": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.setLocalDirection": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.setQuadraticAttenuation": ('float',),
-# class PySide2.Qt3DRender.Qt3DRender.QStencilMask:
- "PySide2.Qt3DRender.Qt3DRender.QStencilMask.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QStencilMask.backOutputMask": (),
- "PySide2.Qt3DRender.Qt3DRender.QStencilMask.frontOutputMask": (),
- "PySide2.Qt3DRender.Qt3DRender.QStencilMask.setBackOutputMask": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QStencilMask.setFrontOutputMask": ('int',),
-# class PySide2.Qt3DRender.Qt3DRender.QStencilOperation:
- "PySide2.Qt3DRender.Qt3DRender.QStencilOperation.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QStencilOperation.back": (),
- "PySide2.Qt3DRender.Qt3DRender.QStencilOperation.front": (),
-# class PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments:
-# class PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.FaceMode:
-# class PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.Operation:
- "PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.allTestsPassOperation": (),
- "PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.depthTestFailureOperation": (),
- "PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.faceMode": (),
- "PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.setAllTestsPassOperation": ('PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.Operation',),
- "PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.setDepthTestFailureOperation": ('PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.Operation',),
- "PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.setStencilTestFailureOperation": ('PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.Operation',),
- "PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.stencilTestFailureOperation": (),
-# class PySide2.Qt3DRender.Qt3DRender.QStencilTest:
- "PySide2.Qt3DRender.Qt3DRender.QStencilTest.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QStencilTest.back": (),
- "PySide2.Qt3DRender.Qt3DRender.QStencilTest.front": (),
-# class PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments:
-# class PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments.StencilFaceMode:
-# class PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments.StencilFunction:
- "PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments.comparisonMask": (),
- "PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments.faceMode": (),
- "PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments.referenceValue": (),
- "PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments.setComparisonMask": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments.setReferenceValue": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments.setStencilFunction": ('PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments.StencilFunction',),
- "PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments.stencilFunction": (),
-# class PySide2.Qt3DRender.Qt3DRender.QTechnique:
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.addFilterKey": ('PySide2.Qt3DRender.Qt3DRender.QFilterKey',),
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.addParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.addRenderPass": ('PySide2.Qt3DRender.Qt3DRender.QRenderPass',),
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.filterKeys": (),
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.graphicsApiFilter": (),
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.parameters": (),
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.removeFilterKey": ('PySide2.Qt3DRender.Qt3DRender.QFilterKey',),
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.removeParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.removeRenderPass": ('PySide2.Qt3DRender.Qt3DRender.QRenderPass',),
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.renderPasses": (),
-# class PySide2.Qt3DRender.Qt3DRender.QTechniqueFilter:
- "PySide2.Qt3DRender.Qt3DRender.QTechniqueFilter.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QTechniqueFilter.addMatch": ('PySide2.Qt3DRender.Qt3DRender.QFilterKey',),
- "PySide2.Qt3DRender.Qt3DRender.QTechniqueFilter.addParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
- "PySide2.Qt3DRender.Qt3DRender.QTechniqueFilter.matchAll": (),
- "PySide2.Qt3DRender.Qt3DRender.QTechniqueFilter.parameters": (),
- "PySide2.Qt3DRender.Qt3DRender.QTechniqueFilter.removeMatch": ('PySide2.Qt3DRender.Qt3DRender.QFilterKey',),
- "PySide2.Qt3DRender.Qt3DRender.QTechniqueFilter.removeParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
-# class PySide2.Qt3DRender.Qt3DRender.QTexture1D:
- "PySide2.Qt3DRender.Qt3DRender.QTexture1D.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTexture1DArray:
- "PySide2.Qt3DRender.Qt3DRender.QTexture1DArray.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTexture2D:
- "PySide2.Qt3DRender.Qt3DRender.QTexture2D.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTexture2DArray:
- "PySide2.Qt3DRender.Qt3DRender.QTexture2DArray.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTexture2DMultisample:
- "PySide2.Qt3DRender.Qt3DRender.QTexture2DMultisample.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTexture2DMultisampleArray:
- "PySide2.Qt3DRender.Qt3DRender.QTexture2DMultisampleArray.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTexture3D:
- "PySide2.Qt3DRender.Qt3DRender.QTexture3D.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTextureBuffer:
- "PySide2.Qt3DRender.Qt3DRender.QTextureBuffer.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTextureCubeMap:
- "PySide2.Qt3DRender.Qt3DRender.QTextureCubeMap.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTextureCubeMapArray:
- "PySide2.Qt3DRender.Qt3DRender.QTextureCubeMapArray.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTextureData:
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.__init__": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.comparisonFunction": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.comparisonMode": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.depth": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.format": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.height": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.isAutoMipMapGenerationEnabled": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.layers": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.magnificationFilter": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.maximumAnisotropy": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.minificationFilter": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setAutoMipMapGenerationEnabled": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setComparisonFunction": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.ComparisonFunction',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setComparisonMode": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.ComparisonMode',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setDepth": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setFormat": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.TextureFormat',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setHeight": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setLayers": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setMagnificationFilter": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.Filter',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setMaximumAnisotropy": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setMinificationFilter": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.Filter',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setTarget": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.Target',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setWidth": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setWrapModeX": ('PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setWrapModeY": ('PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setWrapModeZ": ('PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.target": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.width": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.wrapModeX": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.wrapModeY": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.wrapModeZ": (),
-# class PySide2.Qt3DRender.Qt3DRender.QTextureGenerator:
-# class PySide2.Qt3DRender.Qt3DRender.QTextureImage:
-# class PySide2.Qt3DRender.Qt3DRender.QTextureImage.Status:
- "PySide2.Qt3DRender.Qt3DRender.QTextureImage.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImage.isMirrored": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImage.setMirrored": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImage.setSource": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImage.setStatus": ('PySide2.Qt3DRender.Qt3DRender.QTextureImage.Status',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImage.source": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImage.status": (),
-# class PySide2.Qt3DRender.Qt3DRender.QTextureImageData:
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.__init__": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.cleanup": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.data": ('int', 'int', 'int'),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.depth": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.faces": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.format": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.height": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.isCompressed": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.layers": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.mipLevels": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.pixelFormat": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.pixelType": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setData": ('PySide2.QtCore.QByteArray', 'int', 'bool'),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setDepth": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setFaces": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setFormat": ('PySide2.QtGui.QOpenGLTexture.TextureFormat',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setHeight": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setImage": ('PySide2.QtGui.QImage',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setLayers": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setMipLevels": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setPixelFormat": ('PySide2.QtGui.QOpenGLTexture.PixelFormat',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setPixelType": ('PySide2.QtGui.QOpenGLTexture.PixelType',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setTarget": ('PySide2.QtGui.QOpenGLTexture.Target',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setWidth": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.target": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.width": (),
-# class PySide2.Qt3DRender.Qt3DRender.QTextureImageDataGenerator:
-# class PySide2.Qt3DRender.Qt3DRender.QTextureLoader:
- "PySide2.Qt3DRender.Qt3DRender.QTextureLoader.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureLoader.isMirrored": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureLoader.setMirrored": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureLoader.setSource": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureLoader.source": (),
-# class PySide2.Qt3DRender.Qt3DRender.QTextureRectangle:
- "PySide2.Qt3DRender.Qt3DRender.QTextureRectangle.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode:
-# class PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode:
- "PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.__init__": [('PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode', 'PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode', 'PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode', 'PySide2.QtCore.QObject'), ('PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode', 'PySide2.QtCore.QObject')],
- "PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.setX": ('PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.setY": ('PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.setZ": ('PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.x": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.y": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.z": (),
-# class PySide2.Qt3DRender.Qt3DRender.QViewport:
- "PySide2.Qt3DRender.Qt3DRender.QViewport.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QViewport.gamma": (),
- "PySide2.Qt3DRender.Qt3DRender.QViewport.normalizedRect": (),
- "PySide2.Qt3DRender.Qt3DRender.QViewport.setGamma": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QViewport.setNormalizedRect": ('PySide2.QtCore.QRectF',),
-# class PySide2.Qt3DRender.Qt3DRender.QWaitFence:
-# class PySide2.Qt3DRender.Qt3DRender.QWaitFence.HandleType:
- "PySide2.Qt3DRender.Qt3DRender.QWaitFence.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QWaitFence.handle": (),
- "PySide2.Qt3DRender.Qt3DRender.QWaitFence.handleType": (),
- "PySide2.Qt3DRender.Qt3DRender.QWaitFence.setHandle": ('typing.Any',),
- "PySide2.Qt3DRender.Qt3DRender.QWaitFence.setHandleType": ('PySide2.Qt3DRender.Qt3DRender.QWaitFence.HandleType',),
- "PySide2.Qt3DRender.Qt3DRender.QWaitFence.setTimeout": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QWaitFence.setWaitOnCPU": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QWaitFence.timeout": (),
- "PySide2.Qt3DRender.Qt3DRender.QWaitFence.waitOnCPU": (),
- }) if "PySide2.Qt3DRender" in sys.modules else None
-# Module PySide2.Qt3DInput
-sig_dict.update({
-# class PySide2.Qt3DInput.Qt3DInput:
-# class PySide2.Qt3DInput.Qt3DInput.QAbstractActionInput:
-# class PySide2.Qt3DInput.Qt3DInput.QAbstractAxisInput:
- "PySide2.Qt3DInput.Qt3DInput.QAbstractAxisInput.setSourceDevice": ('PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice',),
- "PySide2.Qt3DInput.Qt3DInput.QAbstractAxisInput.sourceDevice": (),
-# class PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice:
- "PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice.addAxisSetting": ('PySide2.Qt3DInput.Qt3DInput.QAxisSetting',),
- "PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice.axisCount": (),
- "PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice.axisIdentifier": ('str',),
- "PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice.axisNames": (),
- "PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice.axisSettings": (),
- "PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice.buttonCount": (),
- "PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice.buttonIdentifier": ('str',),
- "PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice.buttonNames": (),
- "PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice.removeAxisSetting": ('PySide2.Qt3DInput.Qt3DInput.QAxisSetting',),
-# class PySide2.Qt3DInput.Qt3DInput.QAction:
- "PySide2.Qt3DInput.Qt3DInput.QAction.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QAction.addInput": ('PySide2.Qt3DInput.Qt3DInput.QAbstractActionInput',),
- "PySide2.Qt3DInput.Qt3DInput.QAction.inputs": (),
- "PySide2.Qt3DInput.Qt3DInput.QAction.isActive": (),
- "PySide2.Qt3DInput.Qt3DInput.QAction.removeInput": ('PySide2.Qt3DInput.Qt3DInput.QAbstractActionInput',),
-# class PySide2.Qt3DInput.Qt3DInput.QActionInput:
- "PySide2.Qt3DInput.Qt3DInput.QActionInput.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QActionInput.buttons": (),
- "PySide2.Qt3DInput.Qt3DInput.QActionInput.setButtons": ('typing.List[int]',),
- "PySide2.Qt3DInput.Qt3DInput.QActionInput.setSourceDevice": ('PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice',),
- "PySide2.Qt3DInput.Qt3DInput.QActionInput.sourceDevice": (),
-# class PySide2.Qt3DInput.Qt3DInput.QAnalogAxisInput:
- "PySide2.Qt3DInput.Qt3DInput.QAnalogAxisInput.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QAnalogAxisInput.axis": (),
- "PySide2.Qt3DInput.Qt3DInput.QAnalogAxisInput.setAxis": ('int',),
-# class PySide2.Qt3DInput.Qt3DInput.QAxis:
- "PySide2.Qt3DInput.Qt3DInput.QAxis.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QAxis.addInput": ('PySide2.Qt3DInput.Qt3DInput.QAbstractAxisInput',),
- "PySide2.Qt3DInput.Qt3DInput.QAxis.inputs": (),
- "PySide2.Qt3DInput.Qt3DInput.QAxis.removeInput": ('PySide2.Qt3DInput.Qt3DInput.QAbstractAxisInput',),
- "PySide2.Qt3DInput.Qt3DInput.QAxis.value": (),
-# class PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator:
-# class PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.SourceAxisType:
- "PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.scale": (),
- "PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.setScale": ('float',),
- "PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.setSourceAxis": ('PySide2.Qt3DInput.Qt3DInput.QAxis',),
- "PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.setSourceAxisType": ('PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.SourceAxisType',),
- "PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.sourceAxis": (),
- "PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.sourceAxisType": (),
- "PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.value": (),
- "PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.velocity": (),
-# class PySide2.Qt3DInput.Qt3DInput.QAxisSetting:
- "PySide2.Qt3DInput.Qt3DInput.QAxisSetting.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QAxisSetting.axes": (),
- "PySide2.Qt3DInput.Qt3DInput.QAxisSetting.deadZoneRadius": (),
- "PySide2.Qt3DInput.Qt3DInput.QAxisSetting.isSmoothEnabled": (),
- "PySide2.Qt3DInput.Qt3DInput.QAxisSetting.setAxes": ('typing.List[int]',),
- "PySide2.Qt3DInput.Qt3DInput.QAxisSetting.setDeadZoneRadius": ('float',),
- "PySide2.Qt3DInput.Qt3DInput.QAxisSetting.setSmoothEnabled": ('bool',),
-# class PySide2.Qt3DInput.Qt3DInput.QButtonAxisInput:
- "PySide2.Qt3DInput.Qt3DInput.QButtonAxisInput.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QButtonAxisInput.acceleration": (),
- "PySide2.Qt3DInput.Qt3DInput.QButtonAxisInput.buttons": (),
- "PySide2.Qt3DInput.Qt3DInput.QButtonAxisInput.deceleration": (),
- "PySide2.Qt3DInput.Qt3DInput.QButtonAxisInput.scale": (),
- "PySide2.Qt3DInput.Qt3DInput.QButtonAxisInput.setAcceleration": ('float',),
- "PySide2.Qt3DInput.Qt3DInput.QButtonAxisInput.setButtons": ('typing.List[int]',),
- "PySide2.Qt3DInput.Qt3DInput.QButtonAxisInput.setDeceleration": ('float',),
- "PySide2.Qt3DInput.Qt3DInput.QButtonAxisInput.setScale": ('float',),
-# class PySide2.Qt3DInput.Qt3DInput.QInputAspect:
- "PySide2.Qt3DInput.Qt3DInput.QInputAspect.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DInput.Qt3DInput.QInputAspect.availablePhysicalDevices": (),
- "PySide2.Qt3DInput.Qt3DInput.QInputAspect.createPhysicalDevice": ('str',),
-# class PySide2.Qt3DInput.Qt3DInput.QInputChord:
- "PySide2.Qt3DInput.Qt3DInput.QInputChord.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QInputChord.addChord": ('PySide2.Qt3DInput.Qt3DInput.QAbstractActionInput',),
- "PySide2.Qt3DInput.Qt3DInput.QInputChord.chords": (),
- "PySide2.Qt3DInput.Qt3DInput.QInputChord.removeChord": ('PySide2.Qt3DInput.Qt3DInput.QAbstractActionInput',),
- "PySide2.Qt3DInput.Qt3DInput.QInputChord.setTimeout": ('int',),
- "PySide2.Qt3DInput.Qt3DInput.QInputChord.timeout": (),
-# class PySide2.Qt3DInput.Qt3DInput.QInputSequence:
- "PySide2.Qt3DInput.Qt3DInput.QInputSequence.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QInputSequence.addSequence": ('PySide2.Qt3DInput.Qt3DInput.QAbstractActionInput',),
- "PySide2.Qt3DInput.Qt3DInput.QInputSequence.buttonInterval": (),
- "PySide2.Qt3DInput.Qt3DInput.QInputSequence.removeSequence": ('PySide2.Qt3DInput.Qt3DInput.QAbstractActionInput',),
- "PySide2.Qt3DInput.Qt3DInput.QInputSequence.sequences": (),
- "PySide2.Qt3DInput.Qt3DInput.QInputSequence.setButtonInterval": ('int',),
- "PySide2.Qt3DInput.Qt3DInput.QInputSequence.setTimeout": ('int',),
- "PySide2.Qt3DInput.Qt3DInput.QInputSequence.timeout": (),
-# class PySide2.Qt3DInput.Qt3DInput.QInputSettings:
- "PySide2.Qt3DInput.Qt3DInput.QInputSettings.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QInputSettings.eventSource": (),
- "PySide2.Qt3DInput.Qt3DInput.QInputSettings.setEventSource": ('PySide2.QtCore.QObject',),
-# class PySide2.Qt3DInput.Qt3DInput.QKeyEvent:
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.__init__": ('PySide2.QtCore.QEvent.Type', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'str', 'bool', 'int'),
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.count": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.isAccepted": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.isAutoRepeat": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.key": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.matches": ('PySide2.QtGui.QKeySequence.StandardKey',),
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.modifiers": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.nativeScanCode": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.setAccepted": ('bool',),
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.text": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.type": (),
-# class PySide2.Qt3DInput.Qt3DInput.QKeyboardDevice:
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardDevice.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardDevice.activeInput": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardDevice.axisCount": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardDevice.axisIdentifier": ('str',),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardDevice.axisNames": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardDevice.buttonCount": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardDevice.buttonIdentifier": ('str',),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardDevice.buttonNames": (),
-# class PySide2.Qt3DInput.Qt3DInput.QKeyboardHandler:
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardHandler.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardHandler.focus": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardHandler.setFocus": ('bool',),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardHandler.setSourceDevice": ('PySide2.Qt3DInput.Qt3DInput.QKeyboardDevice',),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardHandler.sourceDevice": (),
-# class PySide2.Qt3DInput.Qt3DInput.QLogicalDevice:
- "PySide2.Qt3DInput.Qt3DInput.QLogicalDevice.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QLogicalDevice.actions": (),
- "PySide2.Qt3DInput.Qt3DInput.QLogicalDevice.addAction": ('PySide2.Qt3DInput.Qt3DInput.QAction',),
- "PySide2.Qt3DInput.Qt3DInput.QLogicalDevice.addAxis": ('PySide2.Qt3DInput.Qt3DInput.QAxis',),
- "PySide2.Qt3DInput.Qt3DInput.QLogicalDevice.axes": (),
- "PySide2.Qt3DInput.Qt3DInput.QLogicalDevice.removeAction": ('PySide2.Qt3DInput.Qt3DInput.QAction',),
- "PySide2.Qt3DInput.Qt3DInput.QLogicalDevice.removeAxis": ('PySide2.Qt3DInput.Qt3DInput.QAxis',),
-# class PySide2.Qt3DInput.Qt3DInput.QMouseDevice:
-# class PySide2.Qt3DInput.Qt3DInput.QMouseDevice.Axis:
- "PySide2.Qt3DInput.Qt3DInput.QMouseDevice.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QMouseDevice.axisCount": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseDevice.axisIdentifier": ('str',),
- "PySide2.Qt3DInput.Qt3DInput.QMouseDevice.axisNames": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseDevice.buttonCount": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseDevice.buttonIdentifier": ('str',),
- "PySide2.Qt3DInput.Qt3DInput.QMouseDevice.buttonNames": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseDevice.sensitivity": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseDevice.setSensitivity": ('float',),
-# class PySide2.Qt3DInput.Qt3DInput.QMouseEvent:
-# class PySide2.Qt3DInput.Qt3DInput.QMouseEvent.Buttons:
-# class PySide2.Qt3DInput.Qt3DInput.QMouseEvent.Modifiers:
- "PySide2.Qt3DInput.Qt3DInput.QMouseEvent.button": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseEvent.buttons": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseEvent.isAccepted": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseEvent.modifiers": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseEvent.setAccepted": ('bool',),
- "PySide2.Qt3DInput.Qt3DInput.QMouseEvent.type": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseEvent.wasHeld": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseEvent.x": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseEvent.y": (),
-# class PySide2.Qt3DInput.Qt3DInput.QMouseHandler:
- "PySide2.Qt3DInput.Qt3DInput.QMouseHandler.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QMouseHandler.containsMouse": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseHandler.setContainsMouse": ('bool',),
- "PySide2.Qt3DInput.Qt3DInput.QMouseHandler.setSourceDevice": ('PySide2.Qt3DInput.Qt3DInput.QMouseDevice',),
- "PySide2.Qt3DInput.Qt3DInput.QMouseHandler.sourceDevice": (),
-# class PySide2.Qt3DInput.Qt3DInput.QWheelEvent:
-# class PySide2.Qt3DInput.Qt3DInput.QWheelEvent.Buttons:
-# class PySide2.Qt3DInput.Qt3DInput.QWheelEvent.Modifiers:
- "PySide2.Qt3DInput.Qt3DInput.QWheelEvent.angleDelta": (),
- "PySide2.Qt3DInput.Qt3DInput.QWheelEvent.buttons": (),
- "PySide2.Qt3DInput.Qt3DInput.QWheelEvent.isAccepted": (),
- "PySide2.Qt3DInput.Qt3DInput.QWheelEvent.modifiers": (),
- "PySide2.Qt3DInput.Qt3DInput.QWheelEvent.setAccepted": ('bool',),
- "PySide2.Qt3DInput.Qt3DInput.QWheelEvent.type": (),
- "PySide2.Qt3DInput.Qt3DInput.QWheelEvent.x": (),
- "PySide2.Qt3DInput.Qt3DInput.QWheelEvent.y": (),
- }) if "PySide2.Qt3DInput" in sys.modules else None
-# Module PySide2.Qt3DLogic
-sig_dict.update({
-# class PySide2.Qt3DLogic.Qt3DLogic:
-# class PySide2.Qt3DLogic.Qt3DLogic.QFrameAction:
- "PySide2.Qt3DLogic.Qt3DLogic.QFrameAction.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DLogic.Qt3DLogic.QLogicAspect:
- "PySide2.Qt3DLogic.Qt3DLogic.QLogicAspect.__init__": ('PySide2.QtCore.QObject',),
- }) if "PySide2.Qt3DLogic" in sys.modules else None
-# Module PySide2.Qt3DAnimation
-sig_dict.update({
-# class PySide2.Qt3DAnimation.Qt3DAnimation:
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation:
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation.AnimationType:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation.animationName": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation.animationType": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation.duration": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation.position": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation.setAnimationName": ('str',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation.setDuration": ('float',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation.setPosition": ('float',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimationClip:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimationClip.duration": (),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractChannelMapping:
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator:
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.Loops:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.clock": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.isRunning": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.loopCount": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.normalizedTime": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.setClock": ('PySide2.Qt3DAnimation.Qt3DAnimation.QClock',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.setLoopCount": ('int',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.setNormalizedTime": ('float',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.setRunning": ('bool',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.start": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.stop": (),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipBlendNode:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipBlendNode.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAdditiveClipBlend:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAdditiveClipBlend.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAdditiveClipBlend.additiveClip": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAdditiveClipBlend.additiveFactor": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAdditiveClipBlend.baseClip": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAdditiveClipBlend.setAdditiveClip": ('PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipBlendNode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAdditiveClipBlend.setAdditiveFactor": ('float',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAdditiveClipBlend.setBaseClip": ('PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipBlendNode',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationAspect:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationAspect.__init__": ('PySide2.QtCore.QObject',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationCallback:
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationCallback.Flag:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationCallback.__init__": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationCallback.valueChanged": ('typing.Any',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationClip:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationClip.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationClipLoader:
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationClipLoader.Status:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationClipLoader.__init__": [('PySide2.Qt3DCore.Qt3DCore.QNode',), ('PySide2.QtCore.QUrl', 'PySide2.Qt3DCore.Qt3DCore.QNode')],
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationClipLoader.setSource": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationClipLoader.source": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationClipLoader.status": (),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.activeAnimationGroup": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.addAnimationGroup": ('PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.animationGroupList": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.entity": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.getAnimationIndex": ('str',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.getGroup": ('int',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.position": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.positionOffset": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.positionScale": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.recursive": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.removeAnimationGroup": ('PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.setActiveAnimationGroup": ('int',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.setAnimationGroups": ('typing.List[PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup]',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.setEntity": ('PySide2.Qt3DCore.Qt3DCore.QEntity',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.setPosition": ('float',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.setPositionOffset": ('float',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.setPositionScale": ('float',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.setRecursive": ('bool',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup.addAnimation": ('PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup.animationList": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup.duration": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup.name": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup.position": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup.removeAnimation": ('PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup.setAnimations": ('typing.List[PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation]',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup.setName": ('str',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup.setPosition": ('float',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QBlendedClipAnimator:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QBlendedClipAnimator.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QBlendedClipAnimator.blendTree": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QBlendedClipAnimator.setBlendTree": ('PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipBlendNode',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QClipAnimator:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QClipAnimator.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QClipAnimator.clip": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QClipAnimator.setClip": ('PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimationClip',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QClock:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QClock.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QClock.playbackRate": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QClock.setPlaybackRate": ('float',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame:
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.InterpolationType:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.__init__": [(), ('PySide2.QtGui.QVector2D',), ('PySide2.QtGui.QVector2D', 'PySide2.QtGui.QVector2D', 'PySide2.QtGui.QVector2D')],
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.coordinates": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.interpolationType": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.leftControlPoint": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.rightControlPoint": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.setCoordinates": ('PySide2.QtGui.QVector2D',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.setInterpolationType": ('PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.InterpolationType',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.setLeftControlPoint": ('PySide2.QtGui.QVector2D',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.setRightControlPoint": ('PySide2.QtGui.QVector2D',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation:
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.RepeatMode:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.addKeyframe": ('PySide2.Qt3DCore.Qt3DCore.QTransform',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.easing": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.endMode": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.framePositions": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.keyframeList": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.removeKeyframe": ('PySide2.Qt3DCore.Qt3DCore.QTransform',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.setEasing": ('PySide2.QtCore.QEasingCurve',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.setEndMode": ('PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.RepeatMode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.setFramePositions": ('typing.List[float]',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.setKeyframes": ('typing.List[PySide2.Qt3DCore.Qt3DCore.QTransform]',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.setStartMode": ('PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.RepeatMode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.setTarget": ('PySide2.Qt3DCore.Qt3DCore.QTransform',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.setTargetName": ('str',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.startMode": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.target": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.targetName": (),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QLerpClipBlend:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QLerpClipBlend.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QLerpClipBlend.blendFactor": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QLerpClipBlend.endClip": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QLerpClipBlend.setBlendFactor": ('float',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QLerpClipBlend.setEndClip": ('PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipBlendNode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QLerpClipBlend.setStartClip": ('PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipBlendNode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QLerpClipBlend.startClip": (),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget.addAttribute": ('PySide2.Qt3DRender.Qt3DRender.QAttribute',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget.attributeList": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget.attributeNames": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget.fromGeometry": ('PySide2.Qt3DRender.Qt3DRender.QGeometry', 'typing.Sequence[str]'),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget.removeAttribute": ('PySide2.Qt3DRender.Qt3DRender.QAttribute',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget.setAttributes": ('typing.List[PySide2.Qt3DRender.Qt3DRender.QAttribute]',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation:
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.Method:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.addMorphTarget": ('PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.easing": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.getWeights": ('int',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.interpolator": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.method": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.morphTargetList": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.removeMorphTarget": ('PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.setEasing": ('PySide2.QtCore.QEasingCurve',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.setMethod": ('PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.Method',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.setMorphTargets": ('typing.List[PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget]',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.setTarget": ('PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.setTargetName": ('str',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.setTargetPositions": ('typing.List[float]',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.setWeights": ('int', 'typing.List[float]'),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.target": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.targetName": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.targetPositions": (),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QSkeletonMapping:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QSkeletonMapping.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QSkeletonMapping.setSkeleton": ('PySide2.Qt3DCore.Qt3DCore.QAbstractSkeleton',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QSkeletonMapping.skeleton": (),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.addMorphTarget": ('PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.interpolator": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.morphTargetList": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.removeMorphTarget": ('PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.setMorphTargets": ('typing.List[PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget]',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.setTarget": ('PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.setTargetName": ('str',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.setTargetPositions": ('typing.List[float]',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.target": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.targetName": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.targetPositions": (),
- }) if "PySide2.Qt3DAnimation" in sys.modules else None
-# Module PySide2.Qt3DExtras
-sig_dict.update({
-# class PySide2.Qt3DExtras.Qt3DExtras:
-# class PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController:
-# class PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.InputState:
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.InputState.__init__": [(), ('PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.InputState',)],
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.InputState.__copy__": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.acceleration": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.camera": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.deceleration": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.linearSpeed": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.lookSpeed": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.setAcceleration": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.setCamera": ('PySide2.Qt3DRender.Qt3DRender.QCamera',),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.setDeceleration": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.setLinearSpeed": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.setLookSpeed": ('float',),
-# class PySide2.Qt3DExtras.Qt3DExtras.QAbstractSpriteSheet:
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractSpriteSheet.currentIndex": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractSpriteSheet.setCurrentIndex": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractSpriteSheet.setTexture": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractSpriteSheet.texture": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractSpriteSheet.textureTransform": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry:
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.bottomRadius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.hasBottomEndcap": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.hasTopEndcap": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.indexAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.length": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.normalAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.positionAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.rings": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.setBottomRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.setHasBottomEndcap": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.setHasTopEndcap": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.setLength": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.setRings": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.setSlices": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.setTopRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.slices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.texCoordAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.topRadius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.updateIndices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.updateVertices": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QConeMesh:
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.bottomRadius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.hasBottomEndcap": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.hasTopEndcap": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.length": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.rings": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setBottomRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setFirstInstance": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setGeometry": ('PySide2.Qt3DRender.Qt3DRender.QGeometry',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setHasBottomEndcap": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setHasTopEndcap": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setIndexOffset": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setInstanceCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setLength": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setPrimitiveRestartEnabled": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setPrimitiveType": ('PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.PrimitiveType',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setRestartIndexValue": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setRings": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setSlices": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setTopRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setVertexCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.slices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.topRadius": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry:
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.indexAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.normalAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.positionAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.setXExtent": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.setXYMeshResolution": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.setXZMeshResolution": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.setYExtent": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.setYZMeshResolution": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.setZExtent": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.tangentAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.texCoordAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.updateIndices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.updateVertices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.xExtent": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.xyMeshResolution": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.xzMeshResolution": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.yExtent": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.yzMeshResolution": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.zExtent": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh:
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setFirstInstance": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setGeometry": ('PySide2.Qt3DRender.Qt3DRender.QGeometry',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setIndexOffset": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setInstanceCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setPrimitiveRestartEnabled": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setPrimitiveType": ('PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.PrimitiveType',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setRestartIndexValue": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setVertexCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setXExtent": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setXYMeshResolution": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setXZMeshResolution": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setYExtent": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setYZMeshResolution": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setZExtent": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.xExtent": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.xyMeshResolution": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.xzMeshResolution": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.yExtent": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.yzMeshResolution": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.zExtent": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry:
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.indexAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.length": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.normalAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.positionAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.radius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.rings": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.setLength": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.setRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.setRings": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.setSlices": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.slices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.texCoordAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.updateIndices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.updateVertices": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh:
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.length": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.radius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.rings": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setFirstInstance": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setGeometry": ('PySide2.Qt3DRender.Qt3DRender.QGeometry',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setIndexOffset": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setInstanceCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setLength": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setPrimitiveRestartEnabled": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setPrimitiveType": ('PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.PrimitiveType',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setRestartIndexValue": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setRings": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setSlices": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setVertexCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.slices": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.ambient": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.diffuse": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.setAmbient": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.setDiffuse": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.setShininess": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.setSpecular": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.setTextureScale": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.shininess": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.specular": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.textureScale": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.ambient": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.diffuse": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.setAmbient": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.setDiffuse": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.setShininess": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.setSpecular": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.setTextureScale": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.shininess": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.specular": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.textureScale": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.ambient": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.diffuse": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.isAlphaBlendingEnabled": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.normal": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.setAlphaBlendingEnabled": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.setAmbient": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.setDiffuse": ('typing.Any',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.setNormal": ('typing.Any',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.setShininess": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.setSpecular": ('typing.Any',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.setTextureScale": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.shininess": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.specular": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.textureScale": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry:
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry.extrusionLength": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry.font": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry.indexAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry.normalAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry.positionAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry.setDepth": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry.setText": ('str',),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry.text": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextMesh:
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextMesh.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextMesh.depth": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextMesh.font": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextMesh.setDepth": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextMesh.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextMesh.setText": ('str',),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextMesh.text": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QFirstPersonCameraController:
- "PySide2.Qt3DExtras.Qt3DExtras.QFirstPersonCameraController.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer:
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.buffersToClear": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.camera": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.clearColor": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.externalRenderTargetSize": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.gamma": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.isFrustumCullingEnabled": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.setBuffersToClear": ('PySide2.Qt3DRender.Qt3DRender.QClearBuffers.BufferType',),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.setCamera": ('PySide2.Qt3DCore.Qt3DCore.QEntity',),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.setClearColor": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.setExternalRenderTargetSize": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.setFrustumCullingEnabled": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.setGamma": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.setSurface": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.setViewportRect": ('PySide2.QtCore.QRectF',),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.surface": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.viewportRect": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.alpha": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.beta": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.cool": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.diffuse": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.setAlpha": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.setBeta": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.setCool": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.setDiffuse": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.setShininess": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.setSpecular": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.setWarm": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.shininess": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.specular": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.warm": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.ambientOcclusion": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.baseColor": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.metalness": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.normal": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.roughness": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.setAmbientOcclusion": ('typing.Any',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.setBaseColor": ('typing.Any',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.setMetalness": ('typing.Any',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.setNormal": ('typing.Any',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.setRoughness": ('typing.Any',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.setTextureScale": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.textureScale": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.ambient": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.diffuse": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.interpolator": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.setAmbient": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.setDiffuse": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.setInterpolator": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.setShininess": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.setSpecular": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.shininess": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.specular": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.ambient": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.diffuse": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.normal": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.setAmbient": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.setDiffuse": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.setNormal": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.setShininess": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.setSpecular": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.setTextureScale": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.shininess": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.specular": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.textureScale": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.ambient": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.diffuse": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.normal": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.setAmbient": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.setDiffuse": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.setNormal": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.setShininess": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.setSpecular": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.setTextureScale": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.shininess": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.specular": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.textureScale": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QOrbitCameraController:
- "PySide2.Qt3DExtras.Qt3DExtras.QOrbitCameraController.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QOrbitCameraController.setZoomInLimit": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QOrbitCameraController.zoomInLimit": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QPerVertexColorMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QPerVertexColorMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.alpha": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.ambient": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.blendFunctionArg": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.destinationAlphaArg": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.destinationRgbArg": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.diffuse": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.setAlpha": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.setAmbient": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.setBlendFunctionArg": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquation.BlendFunction',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.setDestinationAlphaArg": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.setDestinationRgbArg": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.setDiffuse": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.setShininess": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.setSourceAlphaArg": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.setSourceRgbArg": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.setSpecular": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.shininess": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.sourceAlphaArg": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.sourceRgbArg": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.specular": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QPhongMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongMaterial.ambient": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongMaterial.diffuse": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongMaterial.setAmbient": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongMaterial.setDiffuse": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongMaterial.setShininess": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongMaterial.setSpecular": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongMaterial.shininess": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongMaterial.specular": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry:
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.height": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.indexAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.mirrored": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.normalAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.positionAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.resolution": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.setHeight": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.setMirrored": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.setResolution": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.setWidth": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.tangentAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.texCoordAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.updateIndices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.updateVertices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.width": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh:
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.height": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.meshResolution": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.mirrored": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setFirstInstance": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setGeometry": ('PySide2.Qt3DRender.Qt3DRender.QGeometry',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setHeight": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setIndexOffset": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setInstanceCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setMeshResolution": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setMirrored": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setPrimitiveRestartEnabled": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setPrimitiveType": ('PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.PrimitiveType',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setRestartIndexValue": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setVertexCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setWidth": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.width": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QSkyboxEntity:
- "PySide2.Qt3DExtras.Qt3DExtras.QSkyboxEntity.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSkyboxEntity.baseName": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSkyboxEntity.extension": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSkyboxEntity.isGammaCorrectEnabled": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSkyboxEntity.setBaseName": ('str',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSkyboxEntity.setExtension": ('str',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSkyboxEntity.setGammaCorrectEnabled": ('bool',),
-# class PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry:
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.generateTangents": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.indexAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.normalAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.positionAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.radius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.rings": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.setGenerateTangents": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.setRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.setRings": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.setSlices": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.slices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.tangentAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.texCoordAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.updateIndices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.updateVertices": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh:
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.generateTangents": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.radius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.rings": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setFirstInstance": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setGenerateTangents": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setGeometry": ('PySide2.Qt3DRender.Qt3DRender.QGeometry',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setIndexOffset": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setPrimitiveRestartEnabled": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setPrimitiveType": ('PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.PrimitiveType',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setRestartIndexValue": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setRings": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setSlices": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setVertexCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.slices": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QSpriteGrid:
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteGrid.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteGrid.columns": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteGrid.rows": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteGrid.setColumns": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteGrid.setRows": ('int',),
-# class PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheet:
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheet.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheet.addSprite": [('PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem',), ('int', 'int', 'int', 'int')],
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheet.removeSprite": ('PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheet.setSprites": ('typing.List[PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem]',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheet.sprites": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem:
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem.height": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem.setHeight": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem.setWidth": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem.setX": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem.setY": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem.width": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem.x": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem.y": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity:
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.color": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.font": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.height": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.setHeight": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.setText": ('str',),
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.setWidth": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.text": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.width": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QTextureMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QTextureMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTextureMaterial.isAlphaBlendingEnabled": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTextureMaterial.setAlphaBlendingEnabled": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTextureMaterial.setTexture": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTextureMaterial.setTextureOffset": ('PySide2.QtGui.QVector2D',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTextureMaterial.setTextureTransform": ('PySide2.QtGui.QMatrix3x3',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTextureMaterial.texture": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTextureMaterial.textureOffset": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTextureMaterial.textureTransform": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry:
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.indexAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.minorRadius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.normalAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.positionAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.radius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.rings": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.setMinorRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.setRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.setRings": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.setSlices": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.slices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.texCoordAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.updateIndices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.updateVertices": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh:
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.minorRadius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.radius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.rings": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setFirstInstance": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setGeometry": ('PySide2.Qt3DRender.Qt3DRender.QGeometry',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setIndexOffset": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setInstanceCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setMinorRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setPrimitiveRestartEnabled": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setPrimitiveType": ('PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.PrimitiveType',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setRestartIndexValue": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setRings": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setSlices": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setVertexCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.slices": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow:
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.__init__": ('PySide2.QtGui.QScreen',),
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.activeFrameGraph": (),
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.camera": (),
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.defaultFrameGraph": (),
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.event": ('PySide2.QtCore.QEvent',),
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.registerAspect": [('PySide2.Qt3DCore.Qt3DCore.QAbstractAspect',), ('str',)],
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.renderSettings": (),
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.setActiveFrameGraph": ('PySide2.Qt3DRender.Qt3DRender.QFrameGraphNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.setRootEntity": ('PySide2.Qt3DCore.Qt3DCore.QEntity',),
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.showEvent": ('PySide2.QtGui.QShowEvent',),
- }) if "PySide2.Qt3DExtras" in sys.modules else None
-# Module testbinding
-sig_dict.update({
-# class testbinding.Enum1:
-# class testbinding.IntValue:
- "testbinding.IntValue.__init__": [(), ('int',), ('testbinding.IntValue',)],
- "testbinding.IntValue.__copy__": (),
-# class testbinding.PySideCPP:
-# class testbinding.PySideCPP.TestObject2WithNamespace:
- "testbinding.PySideCPP.TestObject2WithNamespace.__init__": ('PySide2.QtCore.QObject',),
- "testbinding.PySideCPP.TestObject2WithNamespace.__repr__": (),
- "testbinding.PySideCPP.TestObject2WithNamespace.name": (),
-# class testbinding.PySideCPP.TestObjectWithNamespace:
- "testbinding.PySideCPP.TestObjectWithNamespace.__init__": ('PySide2.QtCore.QObject',),
- "testbinding.PySideCPP.TestObjectWithNamespace.callSignal": ('testbinding.PySideCPP.TestObjectWithNamespace',),
- "testbinding.PySideCPP.TestObjectWithNamespace.callSignalWithNamespace": ('testbinding.PySideCPP.TestObjectWithNamespace',),
- "testbinding.PySideCPP.TestObjectWithNamespace.callSignalWithTypedef": ('int',),
- "testbinding.PySideCPP.TestObjectWithNamespace.name": (),
-# class testbinding.TestObject:
- "testbinding.TestObject.__init__": ('int', 'PySide2.QtCore.QObject'),
- "testbinding.TestObject.addChild": ('PySide2.QtCore.QObject',),
- "testbinding.TestObject.checkType": ('typing.Any',),
- "testbinding.TestObject.createApp": (),
- "testbinding.TestObject.emitIdValueSignal": (),
- "testbinding.TestObject.emitSignalWithDefaultValue_bool": (),
- "testbinding.TestObject.emitSignalWithDefaultValue_void": (),
- "testbinding.TestObject.emitSignalWithTypedefValue": ('int',),
- "testbinding.TestObject.emitStaticMethodDoubleSignal": (),
- "testbinding.TestObject.idValue": (),
- "testbinding.TestObject.staticMethodDouble": ('int',),
-# class testbinding.TestObjectWithoutNamespace:
-# class testbinding.TestObjectWithoutNamespace.Enum2:
- "testbinding.TestObjectWithoutNamespace.__init__": ('PySide2.QtCore.QObject',),
- "testbinding.TestObjectWithoutNamespace.callSignal": ('testbinding.PySideCPP2.TestObjectWithoutNamespace',),
- "testbinding.TestObjectWithoutNamespace.callSignalWithNamespace": ('testbinding.PySideCPP2.TestObjectWithoutNamespace',),
- "testbinding.TestObjectWithoutNamespace.callSignalWithTypedef": ('int',),
- "testbinding.TestObjectWithoutNamespace.name": (),
-# class testbinding.TestView:
- "testbinding.TestView.__init__": ('PySide2.QtCore.QAbstractListModel', 'PySide2.QtCore.QObject'),
- "testbinding.TestView.getData": (),
- "testbinding.TestView.getEditorWidgetFromItemDelegate": (),
- "testbinding.TestView.model": (),
- "testbinding.TestView.setItemDelegate": ('PySide2.QtWidgets.QAbstractItemDelegate',),
- "testbinding.TestView.getHiddenObject": (),
- }) if "testbinding" in sys.modules else None
-# Module Shiboken
-sig_dict.update({
-# class Shiboken.VoidPtr:
- }) if "Shiboken" in sys.modules else None
-# Module minimal
-sig_dict.update({
-# class minimal.ListUser:
- "minimal.ListUser.__init__": [(), ('minimal.ListUser',)],
- "minimal.ListUser.__copy__": (),
- "minimal.ListUser.callCreateIntList": ('int',),
- "minimal.ListUser.callCreateListOfIntLists": ('int',),
- "minimal.ListUser.callCreateMinBoolList": ('bool', 'bool'),
- "minimal.ListUser.callCreateObjList": ('minimal.Obj', 'minimal.Obj'),
- "minimal.ListUser.callCreateValList": ('int',),
- "minimal.ListUser.callOredMinBoolList": ('typing.List[bool]',),
- "minimal.ListUser.callSumIntList": ('typing.List[int]',),
- "minimal.ListUser.callSumListOfIntLists": ('typing.List[typing.List]',),
- "minimal.ListUser.callSumObjList": ('typing.List[minimal.Obj]',),
- "minimal.ListUser.callSumValList": ('typing.List[minimal.Val]',),
- "minimal.ListUser.createIntList": ('int',),
- "minimal.ListUser.createListOfIntLists": ('int',),
- "minimal.ListUser.createMinBoolList": ('bool', 'bool'),
- "minimal.ListUser.createObjList": ('minimal.Obj', 'minimal.Obj'),
- "minimal.ListUser.createValList": ('int',),
- "minimal.ListUser.oredMinBoolList": ('typing.List[bool]',),
- "minimal.ListUser.sumIntList": ('typing.List[int]',),
- "minimal.ListUser.sumListOfIntLists": ('typing.List[typing.List]',),
- "minimal.ListUser.sumObjList": ('typing.List[minimal.Obj]',),
- "minimal.ListUser.sumValList": ('typing.List[minimal.Val]',),
-# class minimal.MinBoolUser:
- "minimal.MinBoolUser.__init__": [(), ('minimal.MinBoolUser',)],
- "minimal.MinBoolUser.__copy__": (),
- "minimal.MinBoolUser.callInvertedMinBool": (),
- "minimal.MinBoolUser.invertedMinBool": (),
- "minimal.MinBoolUser.minBool": (),
- "minimal.MinBoolUser.setMinBool": ('bool',),
-# class minimal.Obj:
- "minimal.Obj.__init__": ('int',),
- "minimal.Obj.callPassObjectType": ('minimal.Obj',),
- "minimal.Obj.callPassObjectTypeReference": ('minimal.Obj',),
- "minimal.Obj.callVirtualMethod": ('int',),
- "minimal.Obj.objId": (),
- "minimal.Obj.passObjectType": ('minimal.Obj',),
- "minimal.Obj.passObjectTypeReference": ('minimal.Obj',),
- "minimal.Obj.setObjId": ('int',),
- "minimal.Obj.virtualMethod": ('int',),
-# class minimal.Val:
-# class minimal.Val.ValEnum:
- "minimal.Val.__init__": [('int',), ('minimal.Val',)],
- "minimal.Val.__copy__": (),
- "minimal.Val.callPassValueType": ('minimal.Val',),
- "minimal.Val.callPassValueTypePointer": ('minimal.Val',),
- "minimal.Val.callPassValueTypeReference": ('minimal.Val',),
- "minimal.Val.oneOrTheOtherEnumValue": ('minimal.Val.ValEnum',),
- "minimal.Val.passValueType": ('minimal.Val',),
- "minimal.Val.passValueTypePointer": ('minimal.Val',),
- "minimal.Val.passValueTypeReference": ('minimal.Val',),
- "minimal.Val.setValId": ('int',),
- "minimal.Val.valId": (),
- "minimal.Val.arrayFunc": ('typing.List[int]',),
- "minimal.Val.arrayFuncInt": ('typing.List[int]',),
- "minimal.Val.arrayFuncIntReturn": ('int',),
- "minimal.Val.arrayFuncIntReturnTypedef": ('int',),
- "minimal.Val.arrayFuncIntTypedef": ('typing.List[int]',),
- "minimal.Val.arrayFuncReturn": ('int',),
- "minimal.Val.arrayFuncReturnTypedef": ('int',),
- "minimal.Val.arrayFuncTypedef": ('typing.List[int]',),
- }) if "minimal" in sys.modules else None
-# Module sample
-sig_dict.update({
-# class sample.Abstract:
-# class sample.Abstract.PrintFormat:
-# class sample.Abstract.Type:
- "sample.Abstract.__init__": ('int',),
- "sample.Abstract.callPureVirtual": (),
- "sample.Abstract.callUnpureVirtual": (),
- "sample.Abstract.callVirtualGettingEnum": ('sample.Abstract.PrintFormat',),
- "sample.Abstract.className": (),
- "sample.Abstract.createObject": (),
- "sample.Abstract.getObjectId": ('sample.Abstract',),
- "sample.Abstract.id_": (),
- "sample.Abstract.pureVirtual": (),
- "sample.Abstract.pureVirtualReturningVoidPtr": (),
- "sample.Abstract.returnAnEnum": (),
- "sample.Abstract.show": ('sample.Abstract.PrintFormat',),
- "sample.Abstract.type": (),
- "sample.Abstract.unpureVirtual": (),
- "sample.Abstract.virtualGettingAEnum": ('sample.Abstract.PrintFormat',),
-# class sample.AbstractModifications:
- "sample.AbstractModifications.__init__": (),
- "sample.AbstractModifications.invert": ('bool',),
- "sample.AbstractModifications.pointlessPureVirtualMethod": (),
-# class sample.ArrayModifyTest:
- "sample.ArrayModifyTest.__init__": [(), ('sample.ArrayModifyTest',)],
- "sample.ArrayModifyTest.__copy__": (),
- "sample.ArrayModifyTest.sumIntArray": ('int', 'typing.Sequence[int]'),
-# class sample.Base1:
- "sample.Base1.__init__": (),
- "sample.Base1.base1Method": (),
- "sample.Base1.publicMethod": (),
-# class sample.Base2:
- "sample.Base2.__init__": (),
- "sample.Base2.base2Method": (),
-# class sample.Base3:
- "sample.Base3.__init__": ('int',),
- "sample.Base3.base3Method": (),
-# class sample.Base4:
- "sample.Base4.__init__": (),
- "sample.Base4.base4Method": (),
-# class sample.Base5:
- "sample.Base5.__init__": (),
- "sample.Base5.base5Method": (),
-# class sample.Base6:
- "sample.Base6.__init__": (),
- "sample.Base6.base6Method": (),
-# class sample.BlackBox:
- "sample.BlackBox.__init__": [(), ('sample.BlackBox',)],
- "sample.BlackBox.__copy__": (),
- "sample.BlackBox.disposeObjectType": ('int',),
- "sample.BlackBox.disposePoint": ('int',),
- "sample.BlackBox.keepObjectType": ('object',),
- "sample.BlackBox.keepPoint": ('typing.Tuple[float, float]',),
- "sample.BlackBox.objects": (),
- "sample.BlackBox.points": (),
- "sample.BlackBox.referenceToObjectPointer": ('object',),
- "sample.BlackBox.referenceToValuePointer": ('typing.Tuple[float, float]',),
- "sample.BlackBox.retrieveObjectType": ('int',),
- "sample.BlackBox.retrievePoint": ('int',),
-# class sample.Bucket:
- "sample.Bucket.__init__": (),
- "sample.Bucket.callVirtualBlockerMethodButYouDontKnowThis": (),
- "sample.Bucket.empty": (),
- "sample.Bucket.lock": (),
- "sample.Bucket.locked": (),
- "sample.Bucket.pop": (),
- "sample.Bucket.push": ('int',),
- "sample.Bucket.unlock": (),
- "sample.Bucket.virtualBlockerMethod": (),
-# class sample.ByteArray:
- "sample.ByteArray.__init__": [(), ('int',), ('sample.ByteArray',)],
- "sample.ByteArray.__add__": [('int',), ('sample.ByteArray',), ('str',), ('unicode',)],
- "sample.ByteArray.__copy__": (),
- "sample.ByteArray.__iadd__": [('int',), ('sample.ByteArray',)],
- "sample.ByteArray.__repr__": (),
- "sample.ByteArray.__str__": (),
- "sample.ByteArray.append": [('int',), ('sample.ByteArray',)],
- "sample.ByteArray.at": ('int',),
- "sample.ByteArray.data": (),
- "sample.ByteArray.size": (),
-# class sample.CVListUser:
- "sample.CVListUser.__init__": [(), ('sample.CVListUser',)],
- "sample.CVListUser.__copy__": (),
- "sample.CVListUser.consume": ('typing.List[sample.CVValueType]',),
- "sample.CVListUser.produce": (),
-# class sample.CVValueType:
- "sample.CVValueType.__copy__": (),
-# class sample.ClassWithFunctionPointer:
- "sample.ClassWithFunctionPointer.__init__": [(), ('sample.ClassWithFunctionPointer',)],
- "sample.ClassWithFunctionPointer.__copy__": (),
- "sample.ClassWithFunctionPointer.doNothing": ('int',),
-# class sample.Collector:
- "sample.Collector.__init__": (),
- "sample.Collector.__lshift__": [('Missing("sample.ObjectType.Identifier")',), ('object',), ('sample.IntWrapper',)],
- "sample.Collector.clear": (),
- "sample.Collector.items": (),
- "sample.Collector.size": (),
-# class sample.Color:
- "sample.Color.__init__": [(), ('int',), ('sample.Color',), ('sample.SampleNamespace.InValue',)],
- "sample.Color.__copy__": (),
- "sample.Color.isNull": (),
-# class sample.CtorConvRule:
- "sample.CtorConvRule.__init__": [('int',), ('sample.CtorConvRule',)],
- "sample.CtorConvRule.__copy__": (),
- "sample.CtorConvRule.dummyVirtualMethod": (),
- "sample.CtorConvRule.value": (),
-# class sample.Data:
-# class sample.Data.Field:
- "sample.Data.__init__": [('sample.Data',), ('sample.Data.Field', 'str')],
- "sample.Data.__and__": ('sample.Union',),
- "sample.Data.__copy__": (),
- "sample.Data.field": (),
- "sample.Data.value": (),
-# class sample.Derived:
-# class sample.Derived.OtherOverloadedFuncEnum:
-# class sample.Derived.SomeInnerClass:
- "sample.Derived.SomeInnerClass.__init__": [(), ('sample.Derived.SomeInnerClass',)],
- "sample.Derived.SomeInnerClass.__add__": ('sample.Derived.SomeInnerClass',),
- "sample.Derived.SomeInnerClass.__copy__": (),
- "sample.Derived.SomeInnerClass.uselessMethod": (),
- "sample.Derived.__init__": ('int',),
- "sample.Derived.className": (),
- "sample.Derived.createObject": (),
- "sample.Derived.defaultValue": ('int',),
- "sample.Derived.getClassName": (),
- "sample.Derived.otherOverloaded": [('int', 'float'), ('int', 'int', 'bool', 'float')],
- "sample.Derived.overloaded": [('float',), ('int', 'int')],
- "sample.Derived.pureVirtual": (),
- "sample.Derived.pureVirtualReturningVoidPtr": (),
- "sample.Derived.returnAnEnum": (),
- "sample.Derived.returnMyParameter": ('sample.Derived.SomeInnerClass',),
- "sample.Derived.singleArgument": ('bool',),
- "sample.Derived.triggerAnotherImpossibleTypeDiscovery": (),
- "sample.Derived.triggerImpossibleTypeDiscovery": (),
- "sample.Derived.type": (),
- "sample.Derived.unpureVirtual": (),
-# class sample.Echo:
- "sample.Echo.__init__": [(), ('sample.Echo',)],
- "sample.Echo.__call__": ('sample.Str', 'int'),
- "sample.Echo.__copy__": (),
- "sample.Echo.__lshift__": [('int',), ('object',), ('sample.Str',)],
- "sample.Echo.doNothingWithConstBool": ('bool',),
- "sample.Echo.echo": ('str',),
- "sample.Echo.methodWithNamedArg": ('sample.Str',),
-# class sample.EnumOnNamespace:
-# class sample.Event:
-# class sample.Event.EventType:
-# class sample.Event.EventTypeClass:
- "sample.Event.__init__": [('sample.Event',), ('sample.Event.EventType',)],
- "sample.Event.__copy__": (),
- "sample.Event.eventType": (),
- "sample.Event.setEventType": ('sample.Event.EventType',),
- "sample.Event.setEventTypeByConstRef": ('sample.Event.EventType',),
-# class sample.ExceptionTest:
- "sample.ExceptionTest.__init__": (),
- "sample.ExceptionTest.intThrowInt": ('bool',),
- "sample.ExceptionTest.intThrowStdException": ('bool',),
- "sample.ExceptionTest.voidThrowInt": ('bool',),
- "sample.ExceptionTest.voidThrowStdException": ('bool',),
-# class sample.Expression:
- "sample.Expression.__init__": [('int',), ('sample.Expression',)],
- "sample.Expression.__add__": ('sample.Expression',),
- "sample.Expression.__copy__": (),
- "sample.Expression.__sub__": ('sample.Expression',),
- "sample.Expression.toString": (),
-# class sample.Filter:
- "sample.Filter.__init__": [(), ('sample.Filter',)],
- "sample.Filter.__copy__": (),
-# class sample.FriendOfOnlyCopy:
- "sample.FriendOfOnlyCopy.__init__": [(), ('sample.FriendOfOnlyCopy',)],
- "sample.FriendOfOnlyCopy.__copy__": (),
- "sample.FriendOfOnlyCopy.createListOfOnlyCopy": ('int',),
- "sample.FriendOfOnlyCopy.createOnlyCopy": ('int',),
-# class sample.GlobalEnum:
-# class sample.GlobalOverloadFuncEnum:
-# class sample.HandleHolder:
- "sample.HandleHolder.__init__": ('int',),
- "sample.HandleHolder.compare": ('sample.HandleHolder',),
- "sample.HandleHolder.compare2": ('sample.HandleHolder',),
- "sample.HandleHolder.createHandle": (),
- "sample.HandleHolder.handle": (),
- "sample.HandleHolder.handle2": (),
- "sample.HandleHolder.set": ('int',),
-# class sample.ImplicitBase:
- "sample.ImplicitBase.__init__": [(), ('sample.ImplicitBase',), ('sample.ImplicitTarget',)],
- "sample.ImplicitBase.__copy__": (),
-# class sample.ImplicitConv:
-# class sample.ImplicitConv.CtorEnum:
-# class sample.ImplicitConv.ICOverloadedFuncEnum:
- "sample.ImplicitConv.__init__": [(), ('None',), ('float', 'bool'), ('int',), ('object',), ('sample.ImplicitConv',), ('sample.ImplicitConv.CtorEnum',)],
- "sample.ImplicitConv.__copy__": (),
- "sample.ImplicitConv.ctorEnum": (),
- "sample.ImplicitConv.implicitConvCommon": ('sample.ImplicitConv',),
- "sample.ImplicitConv.implicitConvDefault": ('sample.ImplicitConv',),
- "sample.ImplicitConv.implicitConvOverloading": [('int',), ('sample.ImplicitConv', 'bool'), ('sample.ImplicitConv', 'int'), ('sample.ImplicitConv.CtorEnum',)],
- "sample.ImplicitConv.objId": (),
- "sample.ImplicitConv.value": (),
-# class sample.ImplicitTarget:
- "sample.ImplicitTarget.__init__": [(), ('sample.ImplicitTarget',)],
- "sample.ImplicitTarget.__copy__": (),
-# class sample.InjectCode:
- "sample.InjectCode.__init__": [(), ('sample.InjectCode',)],
- "sample.InjectCode.__copy__": (),
- "sample.InjectCode.arrayMethod": ('int',),
- "sample.InjectCode.callArrayMethod": ('int',),
- "sample.InjectCode.overloadedMethod": [('int', 'bool'), ('int', 'float'), ('int', 'typing.List[str]')],
- "sample.InjectCode.simpleMethod1": ('int', 'int'),
- "sample.InjectCode.simpleMethod2": (),
- "sample.InjectCode.simpleMethod3": ('int', 'typing.List[str]'),
- "sample.InjectCode.sumArrayAndLength": (),
- "sample.InjectCode.virtualMethod": ('int',),
-# class sample.IntArray2:
- "sample.IntArray2.__init__": [('int',), ('sample.IntArray2',), ('typing.Sequence[int]',)],
- "sample.IntArray2.__copy__": (),
- "sample.IntArray2.sum": (),
-# class sample.IntArray3:
- "sample.IntArray3.__init__": [('int',), ('sample.IntArray3',), ('typing.Sequence[int]',)],
- "sample.IntArray3.__copy__": (),
- "sample.IntArray3.sum": (),
-# class sample.IntList:
-# class sample.IntList.CtorEnum:
- "sample.IntList.__init__": [(), ('int',), ('sample.IntList',), ('typing.Sequence[int]',)],
- "sample.IntList.__copy__": (),
- "sample.IntList.append": ('int',),
- "sample.IntList.constructorUsed": (),
-# class sample.IntWrapper:
- "sample.IntWrapper.__init__": [('int',), ('sample.IntWrapper',)],
- "sample.IntWrapper.__copy__": (),
-# class sample.Intersection:
- "sample.Intersection.__init__": [(), ('sample.Data',), ('sample.Intersection',), ('sample.Union',)],
- "sample.Intersection.__and__": ('sample.Intersection',),
- "sample.Intersection.__copy__": (),
- "sample.Intersection.addFilter": ('sample.Filter',),
- "sample.Intersection.filters": (),
-# class sample.ListUser:
-# class sample.ListUser.ListOfSomething:
- "sample.ListUser.__init__": [(), ('sample.ListUser',)],
- "sample.ListUser.__copy__": (),
- "sample.ListUser.callCreateList": (),
- "sample.ListUser.createComplexList": ('complex', 'complex'),
- "sample.ListUser.createList": (),
- "sample.ListUser.getList": (),
- "sample.ListUser.listOfPoints": [('typing.List[sample.PointF]',), ('typing.List[typing.Tuple]',)],
- "sample.ListUser.multiplyPointList": ('typing.List[typing.Tuple]', 'float'),
- "sample.ListUser.setList": ('typing.List[int]',),
- "sample.ListUser.sumList": [('typing.List[float]',), ('typing.List[int]',)],
-# class sample.MDerived1:
- "sample.MDerived1.__init__": (),
- "sample.MDerived1.base1Method": (),
- "sample.MDerived1.base2Method": (),
- "sample.MDerived1.castToBase1": (),
- "sample.MDerived1.castToBase2": (),
- "sample.MDerived1.mderived1Method": (),
- "sample.MDerived1.publicMethod": (),
- "sample.MDerived1.transformFromBase1": ('sample.Base1',),
- "sample.MDerived1.transformFromBase2": ('sample.Base2',),
-# class sample.MDerived2:
- "sample.MDerived2.__init__": (),
- "sample.MDerived2.base4Method": (),
- "sample.MDerived2.castToBase3": (),
- "sample.MDerived2.castToBase4": (),
- "sample.MDerived2.castToBase5": (),
- "sample.MDerived2.castToBase6": (),
- "sample.MDerived2.mderived2Method": (),
-# class sample.MDerived3:
- "sample.MDerived3.__init__": (),
- "sample.MDerived3.castToBase3": (),
- "sample.MDerived3.castToMDerived1": (),
- "sample.MDerived3.castToMDerived2": (),
- "sample.MDerived3.mderived3Method": (),
-# class sample.MDerived4:
- "sample.MDerived4.__init__": (),
- "sample.MDerived4.castToBase3": (),
- "sample.MDerived4.castToBase4": (),
- "sample.MDerived4.justDummyMethod": (),
- "sample.MDerived4.mderived4Method": (),
-# class sample.MDerived5:
- "sample.MDerived5.__init__": (),
- "sample.MDerived5.castToBase3": (),
- "sample.MDerived5.castToBase4": (),
- "sample.MDerived5.mderived5Method": (),
-# class sample.MapUser:
- "sample.MapUser.__init__": [(), ('sample.MapUser',)],
- "sample.MapUser.__copy__": (),
- "sample.MapUser.callCreateMap": (),
- "sample.MapUser.createMap": (),
- "sample.MapUser.foo": (),
- "sample.MapUser.getMap": (),
- "sample.MapUser.passMapIntValueType": ('typing.Dict[int, sample.ByteArray]',),
- "sample.MapUser.pointerToMap": ('typing.Dict[str, str]',),
- "sample.MapUser.referenceToMap": ('typing.Dict[str, str]',),
- "sample.MapUser.setMap": ('typing.Dict[str, typing.List]',),
- "sample.MapUser.showMap": ('typing.Dict[str, int]',),
-# class sample.ModelIndex:
- "sample.ModelIndex.__init__": [(), ('sample.ModelIndex',)],
- "sample.ModelIndex.__copy__": (),
- "sample.ModelIndex.getValue": ('sample.ModelIndex',),
- "sample.ModelIndex.setValue": ('int',),
- "sample.ModelIndex.value": (),
-# class sample.Modifications:
-# class sample.Modifications.OverloadedModFunc:
-# class sample.Modifications.TestEnum:
- "sample.Modifications.__init__": (),
- "sample.Modifications.argRemoval0": [('int', 'bool', 'int', 'bool'), ('int', 'bool', 'int', 'int')],
- "sample.Modifications.argRemoval1": [('int', 'bool', 'int', 'bool'), ('int', 'bool', 'typing.Tuple[float, float]', 'typing.Tuple[float, float]', 'int')],
- "sample.Modifications.argRemoval2": ('int', 'bool', 'typing.Tuple[float, float]', 'typing.Tuple[float, float]', 'int'),
- "sample.Modifications.argRemoval3": ('int', 'typing.Tuple[float, float]', 'bool', 'typing.Tuple[float, float]', 'int'),
- "sample.Modifications.argRemoval4": ('int', 'typing.Tuple[float, float]', 'bool', 'typing.Tuple[float, float]', 'int'),
- "sample.Modifications.argRemoval5": [('int', 'bool', 'int', 'bool'), ('int', 'bool', 'typing.Tuple[float, float]', 'typing.Tuple[float, float]', 'int')],
- "sample.Modifications.calculateArea": ('int', 'int'),
- "sample.Modifications.callDifferenceOfPointCoordinates": ('typing.Tuple[float, float]',),
- "sample.Modifications.defaultEnumValue": (),
- "sample.Modifications.differenceOfPointCoordinates": ('typing.Tuple[float, float]',),
- "sample.Modifications.doublePlus": ('int', 'int'),
- "sample.Modifications.enumValue": (),
- "sample.Modifications.getObject": (),
- "sample.Modifications.getSize": ('int', 'int'),
- "sample.Modifications.increment": ('int',),
- "sample.Modifications.invertBoolean": ('bool',),
- "sample.Modifications.multiplyPointCoordsPlusValue": ('typing.Tuple[float, float]', 'float'),
- "sample.Modifications.name": (),
- "sample.Modifications.nonConversionRuleForArgumentWithDefaultValue": ('object',),
- "sample.Modifications.over": ('int', 'bool', 'typing.Tuple[float, float]', 'typing.Tuple[float, float]'),
- "sample.Modifications.overloaded": [('int', 'bool', 'int', 'bool'), ('int', 'bool', 'int', 'float'), ('int', 'bool', 'int', 'int'), ('int', 'bool', 'int', 'typing.Tuple[float, float]')],
- "sample.Modifications.pointToPair": ('typing.Tuple[float, float]',),
- "sample.Modifications.power": ('int', 'int'),
- "sample.Modifications.setEnumValue": ('sample.Modifications.TestEnum',),
- "sample.Modifications.sumPointArray": ('int', 'typing.Sequence[typing.Tuple]'),
- "sample.Modifications.sumPointCoordinates": ('typing.Tuple[float, float]',),
- "sample.Modifications.timesTen": ('int',),
-# class sample.ModifiedConstructor:
- "sample.ModifiedConstructor.__init__": ('int',),
- "sample.ModifiedConstructor.retrieveValue": (),
-# class sample.NoImplicitConversion:
- "sample.NoImplicitConversion.__init__": [('int',), ('sample.NoImplicitConversion',)],
- "sample.NoImplicitConversion.__copy__": (),
- "sample.NoImplicitConversion.objId": (),
- "sample.NoImplicitConversion.receivesNoImplicitConversionByPointer": ('sample.NoImplicitConversion',),
- "sample.NoImplicitConversion.receivesNoImplicitConversionByReference": ('sample.NoImplicitConversion',),
- "sample.NoImplicitConversion.receivesNoImplicitConversionByValue": ('sample.NoImplicitConversion',),
-# class sample.NonDefaultCtor:
- "sample.NonDefaultCtor.__init__": [('int',), ('sample.NonDefaultCtor',)],
- "sample.NonDefaultCtor.__copy__": (),
- "sample.NonDefaultCtor.callReturnMyselfVirtual": (),
- "sample.NonDefaultCtor.returnMyself": [(), ('int',), ('int', 'sample.NonDefaultCtor')],
- "sample.NonDefaultCtor.returnMyselfVirtual": (),
- "sample.NonDefaultCtor.value": (),
-# class sample.ObjTypeReference:
- "sample.ObjTypeReference.__init__": [(), ('sample.ObjTypeReference',)],
- "sample.ObjTypeReference.justAPureVirtualFunc": ('sample.ObjTypeReference',),
- "sample.ObjTypeReference.returnMyFirstArg": ('sample.ObjTypeReference',),
- "sample.ObjTypeReference.returnMySecondArg": ('int', 'sample.ObjTypeReference'),
-# class sample.ObjectModel:
-# class sample.ObjectModel.MethodCalled:
- "sample.ObjectModel.__init__": ('object',),
- "sample.ObjectModel.data": (),
- "sample.ObjectModel.receivesObjectTypeFamily": [('object',), ('sample.ObjectModel',)],
- "sample.ObjectModel.setData": ('object',),
-# class sample.ObjectType:
- "sample.ObjectType.__init__": ('object',),
- "sample.ObjectType.callId": (),
- "sample.ObjectType.callInvalidateEvent": ('sample.Event',),
- "sample.ObjectType.callVirtualCreateChild": (),
- "sample.ObjectType.callWithEnum": [('sample.Str', 'int'), ('sample.Str', 'sample.Event.EventType', 'int')],
- "sample.ObjectType.causeEvent": ('sample.Event.EventType',),
- "sample.ObjectType.children": (),
- "sample.ObjectType.create": (),
- "sample.ObjectType.createChild": ('object',),
- "sample.ObjectType.createObjectType": (),
- "sample.ObjectType.createWithChild": (),
- "sample.ObjectType.deprecatedFunction": (),
- "sample.ObjectType.destroyCppParent": (),
- "sample.ObjectType.event": ('sample.Event',),
- "sample.ObjectType.findChild": ('sample.Str',),
- "sample.ObjectType.getCppParent": (),
- "sample.ObjectType.identifier": (),
- "sample.ObjectType.invalidateEvent": ('sample.Event',),
- "sample.ObjectType.isLayoutType": (),
- "sample.ObjectType.isPython": (),
- "sample.ObjectType.killChild": ('sample.Str',),
- "sample.ObjectType.layout": (),
- "sample.ObjectType.nextInFocusChain": (),
- "sample.ObjectType.objectName": (),
- "sample.ObjectType.parent": (),
- "sample.ObjectType.processEvent": ('typing.List[object]', 'sample.Event'),
- "sample.ObjectType.removeChild": ('object',),
- "sample.ObjectType.setLayout": ('sample.ObjectTypeLayout',),
- "sample.ObjectType.setNullObject": ('None',),
- "sample.ObjectType.setObject": ('object',),
- "sample.ObjectType.setObjectName": ('sample.Str',),
- "sample.ObjectType.setObjectNameWithSize": [('sample.Str', 'int'), ('str', 'int', 'sample.Str')],
- "sample.ObjectType.setObjectSplittedName": ('str', 'sample.Str', 'sample.Str'),
- "sample.ObjectType.setParent": ('object',),
- "sample.ObjectType.takeChild": [('object',), ('sample.Str',)],
-# class sample.ObjectTypeByValue:
- "sample.ObjectTypeByValue.__init__": (),
- "sample.ObjectTypeByValue.acceptKindOfMeAsValue": ('sample.ObjectTypeByValue',),
- "sample.ObjectTypeByValue.acceptListOfObjectTypeByValue": ('typing.List[sample.ObjectTypeByValue]',),
- "sample.ObjectTypeByValue.returnSomeKindOfMe": (),
-# class sample.ObjectTypeDerived:
- "sample.ObjectTypeDerived.__init__": (),
- "sample.ObjectTypeDerived.event": ('sample.Event',),
-# class sample.ObjectTypeHolder:
- "sample.ObjectTypeHolder.__init__": [('sample.ObjectTypeHolder',), ('str',)],
- "sample.ObjectTypeHolder.__copy__": (),
- "sample.ObjectTypeHolder.callPassObjectTypeAsReference": (),
- "sample.ObjectTypeHolder.getObjecType": (),
- "sample.ObjectTypeHolder.passObjectTypeAsReference": ('object',),
-# class sample.ObjectTypeLayout:
- "sample.ObjectTypeLayout.__init__": (),
- "sample.ObjectTypeLayout.addObject": ('object',),
- "sample.ObjectTypeLayout.create": (),
- "sample.ObjectTypeLayout.isLayoutType": (),
- "sample.ObjectTypeLayout.objects": (),
- "sample.ObjectTypeLayout.takeChild": [('object',), ('sample.Str',)],
-# class sample.ObjectTypeOperators:
- "sample.ObjectTypeOperators.__init__": ('str',),
- "sample.ObjectTypeOperators.__add__": ('str',),
- "sample.ObjectTypeOperators.key": (),
-# class sample.ObjectTypePtrList:
-# class sample.ObjectTypePtrList.CtorEnum:
- "sample.ObjectTypePtrList.__init__": [(), ('object',), ('sample.ObjectTypePtrList',), ('typing.Sequence[object]',)],
- "sample.ObjectTypePtrList.__copy__": (),
- "sample.ObjectTypePtrList.append": ('object',),
- "sample.ObjectTypePtrList.constructorUsed": (),
-# class sample.ObjectView:
- "sample.ObjectView.__init__": ('sample.ObjectModel', 'object'),
- "sample.ObjectView.displayModelData": (),
- "sample.ObjectView.getRawModelData": (),
- "sample.ObjectView.model": (),
- "sample.ObjectView.modifyModelData": ('sample.Str',),
- "sample.ObjectView.setModel": ('sample.ObjectModel',),
-# class sample.OddBoolUser:
- "sample.OddBoolUser.__init__": [(), ('bool',), ('sample.OddBoolUser',)],
- "sample.OddBoolUser.__copy__": (),
- "sample.OddBoolUser.callInvertedOddBool": (),
- "sample.OddBoolUser.getOddBool": ('sample.OddBoolUser',),
- "sample.OddBoolUser.invertedOddBool": (),
- "sample.OddBoolUser.oddBool": (),
- "sample.OddBoolUser.setOddBool": ('bool',),
-# class sample.OnlyCopy:
- "sample.OnlyCopy.__init__": ('sample.OnlyCopy',),
- "sample.OnlyCopy.__copy__": (),
- "sample.OnlyCopy.getValue": ('sample.OnlyCopy',),
- "sample.OnlyCopy.getValueFromReference": ('sample.OnlyCopy',),
- "sample.OnlyCopy.value": (),
-# class sample.OtherBase:
- "sample.OtherBase.__init__": (),
-# class sample.Overload:
-# class sample.Overload.FunctionEnum:
-# class sample.Overload.ParamEnum:
- "sample.Overload.__init__": (),
- "sample.Overload.acceptSequence": [(), ('int',), ('int', 'int'), ('sample.Size',), ('sample.Str', 'sample.Overload.ParamEnum'), ('typing.Sequence[str]',)],
- "sample.Overload.differentReturnTypes": [('sample.Overload.ParamEnum',), ('sample.Overload.ParamEnum', 'int')],
- "sample.Overload.drawText": [('int', 'int', 'int', 'int', 'int', 'sample.Str'), ('int', 'int', 'sample.Str'), ('sample.PointF', 'sample.Str'), ('sample.Rect', 'int', 'sample.Str'), ('sample.RectF', 'int', 'sample.Str'), ('sample.RectF', 'sample.Str', 'sample.Echo'), ('typing.Tuple[float, float]', 'sample.Str')],
- "sample.Overload.drawText2": [('int', 'int', 'int', 'int', 'int', 'sample.Str'), ('int', 'int', 'sample.Str'), ('sample.PointF', 'sample.Str'), ('sample.Rect', 'int', 'sample.Str'), ('sample.RectF', 'int', 'sample.Str'), ('sample.RectF', 'sample.Str', 'sample.Echo'), ('typing.Tuple[float, float]', 'sample.Str')],
- "sample.Overload.drawText3": [('int', 'int', 'int', 'int', 'int'), ('sample.Str', 'sample.Str', 'sample.Str')],
- "sample.Overload.drawText4": [('int', 'int', 'int'), ('int', 'int', 'int', 'int', 'int')],
- "sample.Overload.intDoubleOverloads": [('float', 'float'), ('int', 'int')],
- "sample.Overload.intOverloads": [('int', 'int'), ('int', 'int', 'float'), ('typing.Tuple[float, float]', 'float')],
- "sample.Overload.overloaded": [(), ('sample.Size',), ('typing.Tuple[float, float]',), ('typing.Tuple[float, float]', 'sample.Overload.ParamEnum')],
- "sample.Overload.singleOverload": [(), ('typing.Tuple[float, float]',)],
- "sample.Overload.strBufferOverloads": [(), ('sample.Str', 'int'), ('sample.Str', 'str', 'bool'), ('str', 'int')],
- "sample.Overload.wrapperIntIntOverloads": [('sample.Polygon', 'int', 'int'), ('typing.Tuple[float, float]', 'int', 'int')],
-# class sample.Overload2:
- "sample.Overload2.__init__": (),
- "sample.Overload2.doNothingInPublic": [(), ('int',)],
- "sample.Overload2.doNothingInPublic2": [(), ('int',)],
- "sample.Overload2.doNothingInPublic3": [(), ('int',)],
-# class sample.OverloadedFuncEnum:
-# class sample.PairUser:
- "sample.PairUser.__init__": [(), ('sample.PairUser',)],
- "sample.PairUser.__copy__": (),
- "sample.PairUser.callCreatePair": (),
- "sample.PairUser.createComplexPair": ('complex', 'complex'),
- "sample.PairUser.createPair": (),
- "sample.PairUser.getPair": (),
- "sample.PairUser.setPair": ('typing.Tuple[int, int]',),
- "sample.PairUser.sumPair": ('typing.Tuple[int, float]',),
-# class sample.Pen:
- "sample.Pen.__init__": [(), ('sample.Color',), ('sample.Pen',), ('sample.SampleNamespace.Option',)],
- "sample.Pen.__copy__": (),
- "sample.Pen.ctorType": (),
-# class sample.PersistentModelIndex:
- "sample.PersistentModelIndex.__init__": [(), ('sample.ModelIndex',), ('sample.PersistentModelIndex',)],
- "sample.PersistentModelIndex.__copy__": (),
- "sample.PersistentModelIndex.setValue": ('int',),
- "sample.PersistentModelIndex.value": (),
-# class sample.Photon:
-# class sample.Photon.Base:
- "sample.Photon.Base.__init__": [('int',), ('sample.Photon.Base',)],
- "sample.Photon.Base.__copy__": (),
- "sample.Photon.Base.isType": ('sample.Photon.ClassType',),
- "sample.Photon.Base.setValue": ('int',),
- "sample.Photon.Base.type": (),
- "sample.Photon.Base.value": (),
-# class sample.Photon.ClassType:
-# class sample.Photon.ValueDuplicator:
- "sample.Photon.ValueDuplicator.__init__": [('int',), ('sample.Photon.ValueDuplicator',)],
- "sample.Photon.ValueDuplicator.__copy__": (),
- "sample.Photon.ValueDuplicator.calculate": (),
- "sample.Photon.ValueDuplicator.classType": (),
- "sample.Photon.ValueDuplicator.getListOfThisTemplateBase": (),
- "sample.Photon.ValueDuplicator.multiplicator": (),
- "sample.Photon.ValueDuplicator.passPointerThrough": ('sample.Photon.ValueDuplicator',),
- "sample.Photon.ValueDuplicator.sumValueUsingPointer": ('sample.Photon.ValueDuplicator',),
- "sample.Photon.ValueDuplicator.sumValueUsingReference": ('sample.Photon.ValueDuplicator',),
- "sample.Photon.ValueDuplicator.type": (),
-# class sample.Photon.ValueIdentity:
- "sample.Photon.ValueIdentity.__init__": [('int',), ('sample.Photon.ValueIdentity',)],
- "sample.Photon.ValueIdentity.__copy__": (),
- "sample.Photon.ValueIdentity.calculate": (),
- "sample.Photon.ValueIdentity.classType": (),
- "sample.Photon.ValueIdentity.getListOfThisTemplateBase": (),
- "sample.Photon.ValueIdentity.multiplicator": (),
- "sample.Photon.ValueIdentity.passPointerThrough": ('sample.Photon.ValueIdentity',),
- "sample.Photon.ValueIdentity.sumValueUsingPointer": ('sample.Photon.ValueIdentity',),
- "sample.Photon.ValueIdentity.sumValueUsingReference": ('sample.Photon.ValueIdentity',),
- "sample.Photon.ValueIdentity.type": (),
- "sample.Photon.callCalculateForValueDuplicatorPointer": ('sample.Photon.ValueDuplicator',),
- "sample.Photon.callCalculateForValueDuplicatorReference": ('sample.Photon.ValueDuplicator',),
- "sample.Photon.countValueDuplicators": ('typing.List[sample.Photon.ValueDuplicator]',),
- "sample.Photon.countValueIdentities": ('typing.List[sample.Photon.ValueIdentity]',),
-# class sample.Point:
- "sample.Point.__init__": [('float', 'float'), ('int', 'int'), ('typing.Tuple[float, float]',)],
- "sample.Point.__add__": ('typing.Tuple[float, float]',),
- "sample.Point.__copy__": (),
- "sample.Point.__iadd__": ('typing.Tuple[float, float]',),
- "sample.Point.__isub__": ('typing.Tuple[float, float]',),
- "sample.Point.__mul__": [('float',), ('int',)],
- "sample.Point.__neg__": (),
- "sample.Point.__reduce__": (),
- "sample.Point.__repr__": (),
- "sample.Point.__str__": (),
- "sample.Point.__sub__": [('typing.Tuple[float, float]',), ('unicode',)],
- "sample.Point.copy": (),
- "sample.Point.getConstReferenceToSelf": (),
- "sample.Point.getSelf": (),
- "sample.Point.midpoint": ('typing.Tuple[float, float]', 'typing.Tuple[float, float]'),
- "sample.Point.setX": ('float',),
- "sample.Point.setXAsUint": ('int',),
- "sample.Point.setY": ('float',),
- "sample.Point.setYAsUint": ('int',),
- "sample.Point.show": (),
- "sample.Point.x": (),
- "sample.Point.y": (),
-# class sample.PointF:
- "sample.PointF.__init__": [('float', 'float'), ('sample.PointF',), ('typing.Tuple[float, float]',)],
- "sample.PointF.__add__": ('sample.PointF',),
- "sample.PointF.__copy__": (),
- "sample.PointF.__iadd__": ('sample.PointF',),
- "sample.PointF.__isub__": ('sample.PointF',),
- "sample.PointF.__mul__": [('float',), ('int',)],
- "sample.PointF.__neg__": (),
- "sample.PointF.__reduce__": (),
- "sample.PointF.__repr__": (),
- "sample.PointF.__str__": (),
- "sample.PointF.__sub__": ('sample.PointF',),
- "sample.PointF.midpoint": ('sample.PointF', 'sample.PointF'),
- "sample.PointF.setX": ('float',),
- "sample.PointF.setY": ('float',),
- "sample.PointF.show": (),
- "sample.PointF.x": (),
- "sample.PointF.y": (),
-# class sample.PointValueList:
-# class sample.PointValueList.CtorEnum:
- "sample.PointValueList.__init__": [(), ('sample.PointValueList',), ('typing.Sequence[typing.Tuple]',), ('typing.Tuple[float, float]',)],
- "sample.PointValueList.__copy__": (),
- "sample.PointValueList.append": ('typing.Tuple[float, float]',),
- "sample.PointValueList.constructorUsed": (),
-# class sample.PointerHolder:
- "sample.PointerHolder.__init__": [('object',), ('sample.PointerHolder',)],
- "sample.PointerHolder.__copy__": (),
- "sample.PointerHolder.pointer": (),
-# class sample.Polygon:
- "sample.Polygon.__init__": [(), ('float', 'float'), ('sample.Polygon',), ('typing.List[typing.Tuple]',), ('typing.Tuple[float, float]',)],
- "sample.Polygon.__copy__": (),
- "sample.Polygon.addPoint": ('typing.Tuple[float, float]',),
- "sample.Polygon.doublePolygonScale": ('sample.Polygon',),
- "sample.Polygon.points": (),
- "sample.Polygon.stealOwnershipFromPython": [('sample.Polygon',), ('typing.Tuple[float, float]',)],
-# class sample.PrimitiveStructPointerHolder:
- "sample.PrimitiveStructPointerHolder.__init__": [(), ('sample.PrimitiveStructPointerHolder',)],
- "sample.PrimitiveStructPointerHolder.__copy__": (),
-# class sample.PrivateCtor:
- "sample.PrivateCtor.instance": (),
- "sample.PrivateCtor.instanceCalls": (),
-# class sample.PrivateDtor:
- "sample.PrivateDtor.instance": (),
- "sample.PrivateDtor.instanceCalls": (),
- "sample.PrivateDtor.protectedInstanceCalls": (),
-# class sample.ProtectedEnumClass:
-# class sample.ProtectedEnumClass.ProtectedEnum:
-# class sample.ProtectedEnumClass.PublicEnum:
- "sample.ProtectedEnumClass.__init__": (),
- "sample.ProtectedEnumClass.callProtectedEnumMethod": ('sample.ProtectedEnumClass.ProtectedEnum',),
- "sample.ProtectedEnumClass.callPublicEnumMethod": ('sample.ProtectedEnumClass.PublicEnum',),
- "sample.ProtectedEnumClass.protectedEnumMethod": ('sample.ProtectedEnumClass.ProtectedEnum',),
- "sample.ProtectedEnumClass.publicEnumMethod": ('sample.ProtectedEnumClass.PublicEnum',),
-# class sample.ProtectedNonPolymorphic:
- "sample.ProtectedNonPolymorphic.__init__": [('sample.ProtectedNonPolymorphic',), ('str',)],
- "sample.ProtectedNonPolymorphic.__copy__": (),
- "sample.ProtectedNonPolymorphic.create": (),
- "sample.ProtectedNonPolymorphic.dataTypeName": [('int',), ('object',)],
- "sample.ProtectedNonPolymorphic.modifiedProtectedSum": ('int', 'int'),
- "sample.ProtectedNonPolymorphic.protectedName": (),
- "sample.ProtectedNonPolymorphic.protectedStatic": (),
- "sample.ProtectedNonPolymorphic.protectedSum": ('int', 'int'),
- "sample.ProtectedNonPolymorphic.publicName": (),
-# class sample.ProtectedPolymorphic:
- "sample.ProtectedPolymorphic.__init__": [('sample.ProtectedPolymorphic',), ('str',)],
- "sample.ProtectedPolymorphic.__copy__": (),
- "sample.ProtectedPolymorphic.callProtectedName": (),
- "sample.ProtectedPolymorphic.create": (),
- "sample.ProtectedPolymorphic.protectedName": (),
- "sample.ProtectedPolymorphic.publicName": (),
-# class sample.ProtectedPolymorphicDaughter:
- "sample.ProtectedPolymorphicDaughter.__init__": [('sample.ProtectedPolymorphicDaughter',), ('str',)],
- "sample.ProtectedPolymorphicDaughter.__copy__": (),
- "sample.ProtectedPolymorphicDaughter.create": (),
-# class sample.ProtectedPolymorphicGrandDaughter:
- "sample.ProtectedPolymorphicGrandDaughter.__init__": [('sample.ProtectedPolymorphicGrandDaughter',), ('str',)],
- "sample.ProtectedPolymorphicGrandDaughter.__copy__": (),
- "sample.ProtectedPolymorphicGrandDaughter.create": (),
-# class sample.ProtectedProperty:
- "sample.ProtectedProperty.__init__": [(), ('sample.ProtectedProperty',)],
- "sample.ProtectedProperty.__copy__": (),
-# class sample.ProtectedVirtualDestructor:
- "sample.ProtectedVirtualDestructor.__init__": (),
- "sample.ProtectedVirtualDestructor.create": (),
- "sample.ProtectedVirtualDestructor.dtorCalled": (),
- "sample.ProtectedVirtualDestructor.resetDtorCounter": (),
-# class sample.Rect:
- "sample.Rect.__init__": [(), ('int', 'int', 'int', 'int'), ('sample.Rect',)],
- "sample.Rect.__copy__": (),
- "sample.Rect.bottom": (),
- "sample.Rect.left": (),
- "sample.Rect.right": (),
- "sample.Rect.top": (),
-# class sample.RectF:
- "sample.RectF.__init__": [(), ('int', 'int', 'int', 'int'), ('sample.Rect',), ('sample.RectF',)],
- "sample.RectF.__copy__": (),
- "sample.RectF.bottom": (),
- "sample.RectF.left": (),
- "sample.RectF.right": (),
- "sample.RectF.top": (),
-# class sample.Reference:
- "sample.Reference.__init__": [('int',), ('sample.Reference',)],
- "sample.Reference.__copy__": (),
- "sample.Reference.alterReferenceIdVirtual": ('sample.Reference',),
- "sample.Reference.callAlterReferenceIdVirtual": ('sample.Reference',),
- "sample.Reference.callUsesConstReferenceVirtual": ('sample.Reference', 'int'),
- "sample.Reference.callUsesReferenceVirtual": ('sample.Reference', 'int'),
- "sample.Reference.multiplier": (),
- "sample.Reference.objId": (),
- "sample.Reference.returnMyFirstArg": ('sample.Reference',),
- "sample.Reference.returnMySecondArg": ('int', 'sample.Reference'),
- "sample.Reference.setObjId": ('int',),
- "sample.Reference.show": (),
- "sample.Reference.usesConstReference": ('sample.Reference',),
- "sample.Reference.usesConstReferenceVirtual": ('sample.Reference', 'int'),
- "sample.Reference.usesReference": ('sample.Reference',),
- "sample.Reference.usesReferenceVirtual": ('sample.Reference', 'int'),
-# class sample.ReferentModelIndex:
- "sample.ReferentModelIndex.__init__": [(), ('sample.ModelIndex',), ('sample.ReferentModelIndex',)],
- "sample.ReferentModelIndex.__copy__": (),
- "sample.ReferentModelIndex.setValue": ('int',),
- "sample.ReferentModelIndex.value": (),
-# class sample.RemovedNamespace1_Enum:
-# class sample.RemovedNamespace2_Enum:
-# class sample.SampleNamespace:
-# class sample.SampleNamespace.DerivedFromNamespace:
- "sample.SampleNamespace.DerivedFromNamespace.__init__": (),
- "sample.SampleNamespace.DerivedFromNamespace.methodReturningTypeFromParentScope": (),
- "sample.SampleNamespace.DerivedFromNamespace.someVirtualMethod": ('sample.SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough',),
-# class sample.SampleNamespace.InValue:
-# class sample.SampleNamespace.Option:
-# class sample.SampleNamespace.OutValue:
-# class sample.SampleNamespace.SomeClass:
-# class sample.SampleNamespace.SomeClass.ProtectedEnum:
-# class sample.SampleNamespace.SomeClass.PublicScopedEnum:
-# class sample.SampleNamespace.SomeClass.SomeInnerClass:
-# class sample.SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough:
-# class sample.SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough.NiceEnum:
-# class sample.SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough.NiceEnumClass:
- "sample.SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough.__init__": (),
- "sample.SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough.someMethod": ('sample.SampleNamespace.SomeClass.SomeInnerClass',),
- "sample.SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough.someVirtualMethod": ('sample.SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough',),
-# class sample.SampleNamespace.SomeClass.SomeInnerClass.ProtectedEnum:
- "sample.SampleNamespace.SomeClass.SomeInnerClass.__init__": [(), ('sample.SampleNamespace.SomeClass.SomeInnerClass',)],
- "sample.SampleNamespace.SomeClass.SomeInnerClass.__copy__": (),
-# class sample.SampleNamespace.SomeClass.SomeOtherInnerClass:
- "sample.SampleNamespace.SomeClass.SomeOtherInnerClass.__init__": [(), ('sample.SampleNamespace.SomeClass.SomeOtherInnerClass',)],
- "sample.SampleNamespace.SomeClass.SomeOtherInnerClass.__copy__": (),
- "sample.SampleNamespace.SomeClass.__init__": [(), ('sample.SampleNamespace.SomeClass',)],
- "sample.SampleNamespace.SomeClass.__copy__": (),
- "sample.SampleNamespace.SomeClass.protectedMethodReturningPublicScopedEnum": (),
- "sample.SampleNamespace.ImInsideANamespace": ('int', 'int'),
- "sample.SampleNamespace.doSomethingWithArray": ('str', 'int', 'str'),
- "sample.SampleNamespace.enumArgumentWithDefaultValue": ('sample.SampleNamespace.Option',),
- "sample.SampleNamespace.enumInEnumOut": ('sample.SampleNamespace.InValue',),
- "sample.SampleNamespace.enumItemAsDefaultValueToIntArgument": ('int',),
- "sample.SampleNamespace.forceDecisorSideA": [('object',), ('typing.Tuple[float, float]', 'sample.Str', 'object')],
- "sample.SampleNamespace.forceDecisorSideB": [('int', 'object'), ('int', 'typing.Tuple[float, float]', 'sample.Str', 'object')],
- "sample.SampleNamespace.getNumber": ('sample.SampleNamespace.Option',),
- "sample.SampleNamespace.passReferenceToObjectType": [('object',), ('object', 'int')],
- "sample.SampleNamespace.passReferenceToValueType": [('typing.Tuple[float, float]',), ('typing.Tuple[float, float]', 'float')],
- "sample.SampleNamespace.powerOfTwo": ('float',),
-# class sample.SbkDate:
- "sample.SbkDate.__init__": [('int', 'int', 'int'), ('sample.SbkDate',)],
- "sample.SbkDate.__copy__": (),
- "sample.SbkDate.day": (),
- "sample.SbkDate.month": (),
- "sample.SbkDate.toPython": (),
- "sample.SbkDate.year": (),
-# class sample.SimpleFile:
- "sample.SimpleFile.__init__": [('sample.SimpleFile',), ('str',)],
- "sample.SimpleFile.__copy__": (),
- "sample.SimpleFile.close": (),
- "sample.SimpleFile.exists": [(), ('str',)],
- "sample.SimpleFile.filename": (),
- "sample.SimpleFile.open": (),
- "sample.SimpleFile.size": (),
-# class sample.Size:
- "sample.Size.__init__": [('float', 'float'), ('sample.Size',), ('str',)],
- "sample.Size.__add__": ('sample.Size',),
- "sample.Size.__copy__": (),
- "sample.Size.__iadd__": ('sample.Size',),
- "sample.Size.__imul__": ('float',),
- "sample.Size.__isub__": ('sample.Size',),
- "sample.Size.__mul__": ('float',),
- "sample.Size.__sub__": ('sample.Size',),
- "sample.Size.calculateArea": (),
- "sample.Size.height": (),
- "sample.Size.setHeight": ('float',),
- "sample.Size.setWidth": ('float',),
- "sample.Size.show": (),
- "sample.Size.width": (),
-# class sample.SizeF:
- "sample.SizeF.__init__": [('float', 'float'), ('sample.SizeF',)],
- "sample.SizeF.__copy__": (),
- "sample.SizeF.height": (),
- "sample.SizeF.passTypedefOfUnsignedShort": ('int',),
- "sample.SizeF.width": (),
-# class sample.SonOfMDerived1:
- "sample.SonOfMDerived1.__init__": (),
- "sample.SonOfMDerived1.castToMDerived1": (),
- "sample.SonOfMDerived1.sonOfMDerived1Method": (),
-# class sample.SortedOverload:
- "sample.SortedOverload.__init__": [(), ('sample.SortedOverload',)],
- "sample.SortedOverload.__copy__": (),
- "sample.SortedOverload.implicit_overload": ('sample.ImplicitBase',),
- "sample.SortedOverload.overload": [('float',), ('int',), ('object',), ('sample.ImplicitBase',), ('sample.ImplicitTarget',), ('typing.List[sample.ImplicitBase]',)],
- "sample.SortedOverload.overloadDeep": [('int', 'object'), ('int', 'sample.ImplicitBase')],
- "sample.SortedOverload.pyObjOverload": [('int', 'int'), ('str', 'int')],
-# class sample.Str:
- "sample.Str.__init__": [('int',), ('sample.Str',), ('str',)],
- "sample.Str.__add__": ('int',),
- "sample.Str.__copy__": (),
- "sample.Str.__str__": (),
- "sample.Str.append": ('sample.Str',),
- "sample.Str.arg": ('sample.Str',),
- "sample.Str.cstring": (),
- "sample.Str.get_char": ('int',),
- "sample.Str.prepend": ('sample.Str',),
- "sample.Str.set_char": ('int', 'int'),
- "sample.Str.show": (),
- "sample.Str.size": (),
- "sample.Str.toInt": ('int',),
-# class sample.StrList:
-# class sample.StrList.CtorEnum:
- "sample.StrList.__init__": [(), ('sample.Str',), ('sample.StrList',), ('typing.List[sample.Str]',)],
- "sample.StrList.__copy__": (),
- "sample.StrList.append": ('sample.Str',),
- "sample.StrList.constructorUsed": (),
- "sample.StrList.join": ('sample.Str',),
-# class sample.TemplatePtr:
- "sample.TemplatePtr.__init__": (),
- "sample.TemplatePtr.dummy_method": ('typing.List[typing.Tuple]',),
-# class sample.Time:
-# class sample.Time.NumArgs:
- "sample.Time.__init__": [(), ('int', 'int', 'int', 'int'), ('sample.Time',)],
- "sample.Time.__copy__": (),
- "sample.Time.hour": (),
- "sample.Time.isNull": (),
- "sample.Time.minute": (),
- "sample.Time.msec": (),
- "sample.Time.second": (),
- "sample.Time.setTime": [(), ('int', 'int', 'int', 'int')],
- "sample.Time.somethingCompletelyDifferent": [(), ('int', 'int', 'sample.ImplicitConv', 'object')],
- "sample.Time.toString": (),
-# class sample.Union:
- "sample.Union.__init__": [(), ('sample.Data',), ('sample.Intersection',), ('sample.Union',)],
- "sample.Union.__and__": ('sample.Data',),
- "sample.Union.__copy__": (),
- "sample.Union.addFilter": ('sample.Filter',),
- "sample.Union.filters": (),
-# class sample.UnremovedNamespace:
-# class sample.UnremovedNamespace.RemovedNamespace3_Enum:
-# class sample.ValueAndVirtual:
- "sample.ValueAndVirtual.__init__": [('int',), ('sample.ValueAndVirtual',)],
- "sample.ValueAndVirtual.__call__": ('int', 'int'),
- "sample.ValueAndVirtual.__copy__": (),
- "sample.ValueAndVirtual.id": (),
-# class sample.VirtualDaughter:
- "sample.VirtualDaughter.__init__": [(), ('sample.Str',), ('sample.VirtualDaughter',)],
- "sample.VirtualDaughter.__copy__": (),
-# class sample.VirtualDaughter2:
- "sample.VirtualDaughter2.__init__": (),
- "sample.VirtualDaughter2.sumThree": ('int', 'int', 'int'),
- "sample.VirtualDaughter2.virtualMethod0": ('typing.Tuple[float, float]', 'int', 'complex', 'bool'),
-# class sample.VirtualDtor:
- "sample.VirtualDtor.__init__": [(), ('sample.VirtualDtor',)],
- "sample.VirtualDtor.__copy__": (),
- "sample.VirtualDtor.create": (),
- "sample.VirtualDtor.dtorCalled": (),
- "sample.VirtualDtor.resetDtorCounter": (),
-# class sample.VirtualFinalDaughter:
- "sample.VirtualFinalDaughter.__init__": (),
- "sample.VirtualFinalDaughter.sumThree": ('int', 'int', 'int'),
- "sample.VirtualFinalDaughter.virtualMethod0": ('typing.Tuple[float, float]', 'int', 'complex', 'bool'),
-# class sample.VirtualMethods:
- "sample.VirtualMethods.__init__": [('sample.Str',), ('sample.VirtualMethods',)],
- "sample.VirtualMethods.__copy__": (),
- "sample.VirtualMethods.callCallMe": (),
- "sample.VirtualMethods.callCreateStr": ('str', 'sample.Str'),
- "sample.VirtualMethods.callGetMargins": (),
- "sample.VirtualMethods.callMe": (),
- "sample.VirtualMethods.callName": (),
- "sample.VirtualMethods.callRecursionOnModifiedVirtual": ('sample.Str',),
- "sample.VirtualMethods.callStrListToStdList": ('sample.StrList',),
- "sample.VirtualMethods.callSum0": ('int', 'int', 'int'),
- "sample.VirtualMethods.callSum1": ('int', 'int', 'int'),
- "sample.VirtualMethods.callSum2": ('int', 'int', 'int'),
- "sample.VirtualMethods.callSum3": ('int', 'int', 'int'),
- "sample.VirtualMethods.callSum4": ('int', 'int', 'int'),
- "sample.VirtualMethods.callVirtualMethod0": ('typing.Tuple[float, float]', 'int', 'complex', 'bool'),
- "sample.VirtualMethods.createStr": ('str', 'sample.Str'),
- "sample.VirtualMethods.getMargins": (),
- "sample.VirtualMethods.name": (),
- "sample.VirtualMethods.recursionOnModifiedVirtual": ('sample.Str',),
- "sample.VirtualMethods.setMargins": ('int', 'int', 'int', 'int'),
- "sample.VirtualMethods.strListToStdList": ('sample.StrList',),
- "sample.VirtualMethods.sum1": ('int', 'int', 'int'),
- "sample.VirtualMethods.sum2": ('int', 'int', 'int'),
- "sample.VirtualMethods.sum3": ('int', 'int', 'int'),
- "sample.VirtualMethods.sum4": ('int', 'int', 'int'),
- "sample.VirtualMethods.sumThree": ('int', 'int', 'int'),
- "sample.VirtualMethods.virtualMethod0": ('typing.Tuple[float, float]', 'int', 'complex', 'bool'),
-# class sample.VoidHolder:
- "sample.VoidHolder.__init__": [('int',), ('sample.VoidHolder',)],
- "sample.VoidHolder.__copy__": (),
- "sample.VoidHolder.gimmeMeSomeVoidPointer": (),
- "sample.VoidHolder.takeVoidPointer": ('int',),
- "sample.VoidHolder.voidPointer": (),
-# class sample.sample:
-# class sample.sample.sample:
- "sample.sample.sample.__init__": [('int',), ('sample.sample.sample',)],
- "sample.sample.sample.__copy__": (),
- "sample.sample.sample.value": (),
- "sample.sample.acceptDouble": ('float',),
- "sample.sample.acceptInt": ('int',),
- "sample.sample.acceptIntReference": ('int',),
- "sample.sample.acceptLong": ('int',),
- "sample.sample.acceptOddBoolReference": ('bool',),
- "sample.sample.acceptUInt": ('int',),
- "sample.sample.acceptULong": ('int',),
- "sample.sample.applyHomogeneousTransform": ('typing.Tuple[float, float]', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float'),
- "sample.sample.cacheSize": (),
- "sample.sample.changePStr": ('str',),
- "sample.sample.convertIntegersToCppAndThenToPython": ('int', 'int'),
- "sample.sample.convertListOfIntegersToCppAndThenToPython": ('typing.List[int]',),
- "sample.sample.convertObjectTypeToCppAndThenToPython": ('object', 'object'),
- "sample.sample.convertValueTypeToCppAndThenToPython": ('typing.Tuple[float, float]', 'typing.Tuple[float, float]', 'typing.Tuple[float, float]'),
- "sample.sample.countCharacters": ('str',),
- "sample.sample.countVarargs": ('int', 'None'),
- "sample.sample.cppTypeIsObjectType": ('str',),
- "sample.sample.cppTypeIsValueType": ('str',),
- "sample.sample.createListOfPStr": ('str', 'str'),
- "sample.sample.createPStrList": ('str', 'str'),
- "sample.sample.createProtectedProperty": (),
- "sample.sample.doubleLongLong": ('int',),
- "sample.sample.doubleShort": ('int',),
- "sample.sample.doubleUnsignedInt": ('int',),
- "sample.sample.doubleUnsignedLongLong": ('int',),
- "sample.sample.duplicatePStr": (),
- "sample.sample.getConversionTypeString": ('str',),
- "sample.sample.getPythonType": ('str',),
- "sample.sample.gimmeComplexList": (),
- "sample.sample.gimmeDouble": (),
- "sample.sample.gimmeInt": (),
- "sample.sample.makeCString": (),
- "sample.sample.multiplyPair": ('typing.Tuple[float, float]',),
- "sample.sample.multiplyString": ('str', 'int'),
- "sample.sample.overloadedFunc": [('float',), ('int',)],
- "sample.sample.returnCString": (),
- "sample.sample.returnNullObjectTypePointer": (),
- "sample.sample.returnNullPrimitivePointer": (),
- "sample.sample.returnNullValueTypePointer": (),
- "sample.sample.sum2d": ('typing.List[typing.List]',),
- "sample.sample.sumComplexPair": ('typing.Tuple[complex, complex]',),
- "sample.sample.sumDoubleArray": ('typing.Tuple[float, float, float, float]',),
- "sample.sample.sumDoubleMatrix": ('typing.Tuple[typing.Tuple, typing.Tuple, typing.Tuple]',),
- "sample.sample.sumIntArray": ('typing.Tuple[int, int, int, int]',),
- "sample.sample.sumIntMatrix": ('typing.Tuple[typing.Tuple, typing.Tuple, typing.Tuple]',),
- "sample.sample.sumproduct": ('typing.List[typing.Tuple]',),
- "sample.sample.transmuteComplexIntoPoint": ('complex',),
- "sample.sample.transmutePointIntoComplex": ('typing.Tuple[float, float]',),
- }) if "sample" in sys.modules else None
-# Module other
-sig_dict.update({
-# class other.ExtendsNoImplicitConversion:
- "other.ExtendsNoImplicitConversion.__init__": [('Missing("other.ExtendsNoImplicitConversion")',), ('int',)],
- "other.ExtendsNoImplicitConversion.__copy__": (),
- "other.ExtendsNoImplicitConversion.objId": (),
-# class other.Number:
- "other.Number.__init__": [('int',), ('numbers.Number',)],
- "other.Number.__copy__": (),
- "other.Number.__mul__": ('typing.Tuple[float, float]',),
- "other.Number.fromComplex": ('complex',),
- "other.Number.toComplex": (),
- "other.Number.toStr": (),
- "other.Number.value": (),
-# class other.OtherDerived:
- "other.OtherDerived.__init__": ('int',),
- "other.OtherDerived.className": (),
- "other.OtherDerived.createObject": (),
- "other.OtherDerived.getClassName": (),
- "other.OtherDerived.pureVirtual": (),
- "other.OtherDerived.pureVirtualReturningVoidPtr": (),
- "other.OtherDerived.returnAnEnum": (),
- "other.OtherDerived.unpureVirtual": (),
- "other.OtherDerived.useEnumTypeFromOtherModule": ('sample.OverloadedFuncEnum',),
- "other.OtherDerived.useObjectTypeFromOtherModule": ('object',),
- "other.OtherDerived.useValueTypeFromOtherModule": [('complex',), ('sample.Event',)],
-# class other.OtherMultipleDerived:
- "other.OtherMultipleDerived.__init__": (),
- "other.OtherMultipleDerived.createObject": ('str',),
- "other.OtherMultipleDerived.returnUselessClass": (),
-# class other.OtherObjectType:
- "other.OtherObjectType.__init__": (),
- "other.OtherObjectType.__lshift__": ('sample.Collector',),
- }) if "other" in sys.modules else None
-# Module smart
-sig_dict.update({
-# class smart.Integer:
- "smart.Integer.__init__": [(), ('smart.Integer',)],
- "smart.Integer.__copy__": (),
- "smart.Integer.printInteger": (),
-# class smart.Integer2:
- "smart.Integer2.__init__": [(), ('int',)],
- "smart.Integer2.__copy__": (),
-# class smart.Obj:
- "smart.Obj.__init__": (),
- "smart.Obj.giveSharedPtrToInteger": (),
- "smart.Obj.giveSharedPtrToInteger2": (),
- "smart.Obj.giveSharedPtrToObj": (),
- "smart.Obj.giveSharedPtrToObjList": ('int',),
- "smart.Obj.printObj": (),
- "smart.Obj.takeInteger": ('smart.Integer',),
- "smart.Obj.takeSharedPtrToInteger": ('smart.SharedPtr',),
- "smart.Obj.takeSharedPtrToObj": ('smart.SharedPtr',),
-# class smart.Registry:
- "smart.Registry.__init__": (),
- "smart.Registry.add": [('smart.Integer',), ('smart.Obj',)],
- "smart.Registry.countIntegers": (),
- "smart.Registry.countObjects": (),
- "smart.Registry.getInstance": (),
- "smart.Registry.remove": [('smart.Integer',), ('smart.Obj',)],
- "smart.Registry.setShouldPrint": ('bool',),
- "smart.Registry.shouldPrint": (),
-# class smart.SharedPtr:
-# class smart.SharedPtr.__next_in_mro__:
-# class smart.SharedPtr<Integer >:
- "smart.SharedPtr<Integer >.__copy__": (),
- "smart.SharedPtr<Integer >.data": (),
- "smart.SharedPtr<Integer >.useCount": (),
-# class smart.SharedPtr<Obj >:
- "smart.SharedPtr<Obj >.__copy__": (),
- "smart.SharedPtr<Obj >.data": (),
- "smart.SharedPtr<Obj >.useCount": (),
-# class smart.SharedPtr<Smart::Integer2 >:
- "smart.SharedPtr<Smart::Integer2 >.__copy__": (),
- "smart.SharedPtr<Smart::Integer2 >.data": (),
- "smart.SharedPtr<Smart::Integer2 >.useCount": (),
- }) if "smart" in sys.modules else None
-# eof
diff --git a/sources/pyside6/tests/registry/exists_win32_5_14_2_ci.py b/sources/pyside6/tests/registry/exists_win32_5_14_2_ci.py
deleted file mode 100644
index 7b79c5c56..000000000
--- a/sources/pyside6/tests/registry/exists_win32_5_14_2_ci.py
+++ /dev/null
@@ -1,37964 +0,0 @@
-#recreate # uncomment this to enforce generation
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-"""
-This file contains the simplified signatures for all functions in PySide
-for module 'exists_win32_5_14_2_ci' using
-Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 18:41:36) [MSC v.1900 64 bit (AMD64)]
-Qt 5.14.2 (x86_64-little_endian-llp64 shared (dynamic) release build; by MSVC 2017)
-There are no default values, no variable names and no self
-parameter. Only types are present after simplification. The
-functions 'next' resp. '__next__' are removed to make the output
-identical for Python 2 and 3. '__div__' is also removed,
-since it exists in Python 2, only.
-"""
-import sys
-sig_dict = {}
-# Module PySide2.QtCore
-sig_dict.update({
-# class PySide2.QtCore.ClassInfo:
- "PySide2.QtCore.ClassInfo.__init__": ('typing.Dict',),
-# class PySide2.QtCore.MetaFunction:
- "PySide2.QtCore.MetaFunction.__call__": ('typing.Any',),
-# class PySide2.QtCore.MetaSignal:
- "PySide2.QtCore.MetaSignal.__instancecheck__": ('object',),
-# class PySide2.QtCore.Property:
- "PySide2.QtCore.Property.__init__": ('type', 'typing.Callable', 'typing.Callable', 'typing.Callable', 'typing.Callable', 'str', 'typing.Callable', 'bool', 'bool', 'bool', 'bool', 'bool', 'bool'),
- "PySide2.QtCore.Property.getter": ('typing.Callable',),
- "PySide2.QtCore.Property.read": ('typing.Callable',),
- "PySide2.QtCore.Property.setter": ('typing.Callable',),
- "PySide2.QtCore.Property.write": ('typing.Callable',),
-# class PySide2.QtCore.QAbstractAnimation:
-# class PySide2.QtCore.QAbstractAnimation.DeletionPolicy:
-# class PySide2.QtCore.QAbstractAnimation.Direction:
-# class PySide2.QtCore.QAbstractAnimation.State:
- "PySide2.QtCore.QAbstractAnimation.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QAbstractAnimation.currentLoop": (),
- "PySide2.QtCore.QAbstractAnimation.currentLoopTime": (),
- "PySide2.QtCore.QAbstractAnimation.currentTime": (),
- "PySide2.QtCore.QAbstractAnimation.direction": (),
- "PySide2.QtCore.QAbstractAnimation.duration": (),
- "PySide2.QtCore.QAbstractAnimation.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QAbstractAnimation.group": (),
- "PySide2.QtCore.QAbstractAnimation.loopCount": (),
- "PySide2.QtCore.QAbstractAnimation.pause": (),
- "PySide2.QtCore.QAbstractAnimation.resume": (),
- "PySide2.QtCore.QAbstractAnimation.setCurrentTime": ('int',),
- "PySide2.QtCore.QAbstractAnimation.setDirection": ('PySide2.QtCore.QAbstractAnimation.Direction',),
- "PySide2.QtCore.QAbstractAnimation.setLoopCount": ('int',),
- "PySide2.QtCore.QAbstractAnimation.setPaused": ('bool',),
- "PySide2.QtCore.QAbstractAnimation.start": ('PySide2.QtCore.QAbstractAnimation.DeletionPolicy',),
- "PySide2.QtCore.QAbstractAnimation.state": (),
- "PySide2.QtCore.QAbstractAnimation.stop": (),
- "PySide2.QtCore.QAbstractAnimation.totalDuration": (),
- "PySide2.QtCore.QAbstractAnimation.updateCurrentTime": ('int',),
- "PySide2.QtCore.QAbstractAnimation.updateDirection": ('PySide2.QtCore.QAbstractAnimation.Direction',),
- "PySide2.QtCore.QAbstractAnimation.updateState": ('PySide2.QtCore.QAbstractAnimation.State', 'PySide2.QtCore.QAbstractAnimation.State'),
-# class PySide2.QtCore.QAbstractEventDispatcher:
-# class PySide2.QtCore.QAbstractEventDispatcher.TimerInfo:
- "PySide2.QtCore.QAbstractEventDispatcher.TimerInfo.__init__": ('int', 'int', 'PySide2.QtCore.Qt.TimerType'),
- "PySide2.QtCore.QAbstractEventDispatcher.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QAbstractEventDispatcher.closingDown": (),
- "PySide2.QtCore.QAbstractEventDispatcher.filterNativeEvent": ('PySide2.QtCore.QByteArray', 'int'),
- "PySide2.QtCore.QAbstractEventDispatcher.flush": (),
- "PySide2.QtCore.QAbstractEventDispatcher.hasPendingEvents": (),
- "PySide2.QtCore.QAbstractEventDispatcher.installNativeEventFilter": ('PySide2.QtCore.QAbstractNativeEventFilter',),
- "PySide2.QtCore.QAbstractEventDispatcher.instance": ('PySide2.QtCore.QThread',),
- "PySide2.QtCore.QAbstractEventDispatcher.interrupt": (),
- "PySide2.QtCore.QAbstractEventDispatcher.processEvents": ('PySide2.QtCore.QEventLoop.ProcessEventsFlags',),
- "PySide2.QtCore.QAbstractEventDispatcher.registerEventNotifier": ('PySide2.QtCore.QWinEventNotifier',),
- "PySide2.QtCore.QAbstractEventDispatcher.registerSocketNotifier": ('PySide2.QtCore.QSocketNotifier',),
- "PySide2.QtCore.QAbstractEventDispatcher.registerTimer": [('int', 'PySide2.QtCore.Qt.TimerType', 'PySide2.QtCore.QObject'), ('int', 'int', 'PySide2.QtCore.Qt.TimerType', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QAbstractEventDispatcher.registeredTimers": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QAbstractEventDispatcher.remainingTime": ('int',),
- "PySide2.QtCore.QAbstractEventDispatcher.removeNativeEventFilter": ('PySide2.QtCore.QAbstractNativeEventFilter',),
- "PySide2.QtCore.QAbstractEventDispatcher.startingUp": (),
- "PySide2.QtCore.QAbstractEventDispatcher.unregisterEventNotifier": ('PySide2.QtCore.QWinEventNotifier',),
- "PySide2.QtCore.QAbstractEventDispatcher.unregisterSocketNotifier": ('PySide2.QtCore.QSocketNotifier',),
- "PySide2.QtCore.QAbstractEventDispatcher.unregisterTimer": ('int',),
- "PySide2.QtCore.QAbstractEventDispatcher.unregisterTimers": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QAbstractEventDispatcher.wakeUp": (),
-# class PySide2.QtCore.QAbstractItemModel:
-# class PySide2.QtCore.QAbstractItemModel.CheckIndexOption:
-# class PySide2.QtCore.QAbstractItemModel.CheckIndexOptions:
-# class PySide2.QtCore.QAbstractItemModel.LayoutChangeHint:
- "PySide2.QtCore.QAbstractItemModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QAbstractItemModel.beginInsertColumns": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtCore.QAbstractItemModel.beginInsertRows": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtCore.QAbstractItemModel.beginMoveColumns": ('PySide2.QtCore.QModelIndex', 'int', 'int', 'PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QAbstractItemModel.beginMoveRows": ('PySide2.QtCore.QModelIndex', 'int', 'int', 'PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QAbstractItemModel.beginRemoveColumns": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtCore.QAbstractItemModel.beginRemoveRows": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtCore.QAbstractItemModel.beginResetModel": (),
- "PySide2.QtCore.QAbstractItemModel.buddy": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractItemModel.canDropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.canFetchMore": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractItemModel.changePersistentIndex": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.changePersistentIndexList": ('typing.List', 'typing.List'),
- "PySide2.QtCore.QAbstractItemModel.checkIndex": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QAbstractItemModel.CheckIndexOptions'),
- "PySide2.QtCore.QAbstractItemModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractItemModel.createIndex": [('int', 'int', 'int'), ('int', 'int', 'object')],
- "PySide2.QtCore.QAbstractItemModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QAbstractItemModel.decodeData": ('int', 'int', 'PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QDataStream'),
- "PySide2.QtCore.QAbstractItemModel.dropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.encodeData": ('typing.List', 'PySide2.QtCore.QDataStream'),
- "PySide2.QtCore.QAbstractItemModel.endInsertColumns": (),
- "PySide2.QtCore.QAbstractItemModel.endInsertRows": (),
- "PySide2.QtCore.QAbstractItemModel.endMoveColumns": (),
- "PySide2.QtCore.QAbstractItemModel.endMoveRows": (),
- "PySide2.QtCore.QAbstractItemModel.endRemoveColumns": (),
- "PySide2.QtCore.QAbstractItemModel.endRemoveRows": (),
- "PySide2.QtCore.QAbstractItemModel.endResetModel": (),
- "PySide2.QtCore.QAbstractItemModel.fetchMore": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractItemModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractItemModel.hasChildren": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractItemModel.hasIndex": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtCore.QAbstractItemModel.index": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.insertColumn": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.insertColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.insertRow": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.insertRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.itemData": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractItemModel.match": ('PySide2.QtCore.QModelIndex', 'int', 'typing.Any', 'int', 'PySide2.QtCore.Qt.MatchFlags'),
- "PySide2.QtCore.QAbstractItemModel.mimeData": ('typing.List',),
- "PySide2.QtCore.QAbstractItemModel.mimeTypes": (),
- "PySide2.QtCore.QAbstractItemModel.moveColumn": ('PySide2.QtCore.QModelIndex', 'int', 'PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QAbstractItemModel.moveColumns": ('PySide2.QtCore.QModelIndex', 'int', 'int', 'PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QAbstractItemModel.moveRow": ('PySide2.QtCore.QModelIndex', 'int', 'PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QAbstractItemModel.moveRows": ('PySide2.QtCore.QModelIndex', 'int', 'int', 'PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QAbstractItemModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtCore.QAbstractItemModel.persistentIndexList": (),
- "PySide2.QtCore.QAbstractItemModel.removeColumn": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.removeColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.removeRow": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.removeRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.resetInternalData": (),
- "PySide2.QtCore.QAbstractItemModel.revert": (),
- "PySide2.QtCore.QAbstractItemModel.roleNames": (),
- "PySide2.QtCore.QAbstractItemModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractItemModel.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
- "PySide2.QtCore.QAbstractItemModel.setHeaderData": ('int', 'PySide2.QtCore.Qt.Orientation', 'typing.Any', 'int'),
- "PySide2.QtCore.QAbstractItemModel.setItemData": ('PySide2.QtCore.QModelIndex', 'typing.Dict'),
- "PySide2.QtCore.QAbstractItemModel.sibling": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.sort": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtCore.QAbstractItemModel.span": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractItemModel.submit": (),
- "PySide2.QtCore.QAbstractItemModel.supportedDragActions": (),
- "PySide2.QtCore.QAbstractItemModel.supportedDropActions": (),
-# class PySide2.QtCore.QAbstractListModel:
- "PySide2.QtCore.QAbstractListModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QAbstractListModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractListModel.dropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractListModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractListModel.hasChildren": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractListModel.index": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractListModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtCore.QAbstractListModel.sibling": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
-# class PySide2.QtCore.QAbstractNativeEventFilter:
- "PySide2.QtCore.QAbstractNativeEventFilter.__init__": (),
- "PySide2.QtCore.QAbstractNativeEventFilter.nativeEventFilter": ('PySide2.QtCore.QByteArray', 'int'),
-# class PySide2.QtCore.QAbstractProxyModel:
- "PySide2.QtCore.QAbstractProxyModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QAbstractProxyModel.buddy": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractProxyModel.canDropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractProxyModel.canFetchMore": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractProxyModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QAbstractProxyModel.dropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractProxyModel.fetchMore": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractProxyModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractProxyModel.hasChildren": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractProxyModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtCore.QAbstractProxyModel.itemData": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractProxyModel.mapFromSource": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractProxyModel.mapSelectionFromSource": ('PySide2.QtCore.QItemSelection',),
- "PySide2.QtCore.QAbstractProxyModel.mapSelectionToSource": ('PySide2.QtCore.QItemSelection',),
- "PySide2.QtCore.QAbstractProxyModel.mapToSource": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractProxyModel.mimeData": ('typing.List',),
- "PySide2.QtCore.QAbstractProxyModel.mimeTypes": (),
- "PySide2.QtCore.QAbstractProxyModel.resetInternalData": (),
- "PySide2.QtCore.QAbstractProxyModel.revert": (),
- "PySide2.QtCore.QAbstractProxyModel.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
- "PySide2.QtCore.QAbstractProxyModel.setHeaderData": ('int', 'PySide2.QtCore.Qt.Orientation', 'typing.Any', 'int'),
- "PySide2.QtCore.QAbstractProxyModel.setItemData": ('PySide2.QtCore.QModelIndex', 'typing.Dict'),
- "PySide2.QtCore.QAbstractProxyModel.setSourceModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCore.QAbstractProxyModel.sibling": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractProxyModel.sort": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtCore.QAbstractProxyModel.sourceModel": (),
- "PySide2.QtCore.QAbstractProxyModel.span": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractProxyModel.submit": (),
- "PySide2.QtCore.QAbstractProxyModel.supportedDragActions": (),
- "PySide2.QtCore.QAbstractProxyModel.supportedDropActions": (),
-# class PySide2.QtCore.QAbstractState:
- "PySide2.QtCore.QAbstractState.__init__": ('PySide2.QtCore.QState',),
- "PySide2.QtCore.QAbstractState.active": (),
- "PySide2.QtCore.QAbstractState.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QAbstractState.machine": (),
- "PySide2.QtCore.QAbstractState.onEntry": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QAbstractState.onExit": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QAbstractState.parentState": (),
-# class PySide2.QtCore.QAbstractTableModel:
- "PySide2.QtCore.QAbstractTableModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QAbstractTableModel.dropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractTableModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractTableModel.hasChildren": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractTableModel.index": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractTableModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtCore.QAbstractTableModel.sibling": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
-# class PySide2.QtCore.QAbstractTransition:
-# class PySide2.QtCore.QAbstractTransition.TransitionType:
- "PySide2.QtCore.QAbstractTransition.__init__": ('PySide2.QtCore.QState',),
- "PySide2.QtCore.QAbstractTransition.addAnimation": ('PySide2.QtCore.QAbstractAnimation',),
- "PySide2.QtCore.QAbstractTransition.animations": (),
- "PySide2.QtCore.QAbstractTransition.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QAbstractTransition.eventTest": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QAbstractTransition.machine": (),
- "PySide2.QtCore.QAbstractTransition.onTransition": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QAbstractTransition.removeAnimation": ('PySide2.QtCore.QAbstractAnimation',),
- "PySide2.QtCore.QAbstractTransition.setTargetState": ('PySide2.QtCore.QAbstractState',),
- "PySide2.QtCore.QAbstractTransition.setTargetStates": ('typing.Sequence',),
- "PySide2.QtCore.QAbstractTransition.setTransitionType": ('PySide2.QtCore.QAbstractTransition.TransitionType',),
- "PySide2.QtCore.QAbstractTransition.sourceState": (),
- "PySide2.QtCore.QAbstractTransition.targetState": (),
- "PySide2.QtCore.QAbstractTransition.targetStates": (),
- "PySide2.QtCore.QAbstractTransition.transitionType": (),
-# class PySide2.QtCore.QAnimationGroup:
- "PySide2.QtCore.QAnimationGroup.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QAnimationGroup.addAnimation": ('PySide2.QtCore.QAbstractAnimation',),
- "PySide2.QtCore.QAnimationGroup.animationAt": ('int',),
- "PySide2.QtCore.QAnimationGroup.animationCount": (),
- "PySide2.QtCore.QAnimationGroup.clear": (),
- "PySide2.QtCore.QAnimationGroup.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QAnimationGroup.indexOfAnimation": ('PySide2.QtCore.QAbstractAnimation',),
- "PySide2.QtCore.QAnimationGroup.insertAnimation": ('int', 'PySide2.QtCore.QAbstractAnimation'),
- "PySide2.QtCore.QAnimationGroup.removeAnimation": ('PySide2.QtCore.QAbstractAnimation',),
- "PySide2.QtCore.QAnimationGroup.takeAnimation": ('int',),
-# class PySide2.QtCore.QBasicMutex:
- "PySide2.QtCore.QBasicMutex.__init__": (),
- "PySide2.QtCore.QBasicMutex.isRecursive": (),
- "PySide2.QtCore.QBasicMutex.lock": (),
- "PySide2.QtCore.QBasicMutex.tryLock": (),
- "PySide2.QtCore.QBasicMutex.try_lock": (),
- "PySide2.QtCore.QBasicMutex.unlock": (),
-# class PySide2.QtCore.QBasicTimer:
- "PySide2.QtCore.QBasicTimer.__init__": [(), ('PySide2.QtCore.QBasicTimer',)],
- "PySide2.QtCore.QBasicTimer.__copy__": (),
- "PySide2.QtCore.QBasicTimer.isActive": (),
- "PySide2.QtCore.QBasicTimer.start": [('int', 'PySide2.QtCore.QObject'), ('int', 'PySide2.QtCore.Qt.TimerType', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QBasicTimer.stop": (),
- "PySide2.QtCore.QBasicTimer.swap": ('PySide2.QtCore.QBasicTimer',),
- "PySide2.QtCore.QBasicTimer.timerId": (),
-# class PySide2.QtCore.QBitArray:
- "PySide2.QtCore.QBitArray.__init__": [(), ('PySide2.QtCore.QBitArray',), ('int', 'bool')],
- "PySide2.QtCore.QBitArray.__and__": ('PySide2.QtCore.QBitArray',),
- "PySide2.QtCore.QBitArray.__copy__": (),
- "PySide2.QtCore.QBitArray.__iand__": ('PySide2.QtCore.QBitArray',),
- "PySide2.QtCore.QBitArray.__invert__": (),
- "PySide2.QtCore.QBitArray.__ior__": ('PySide2.QtCore.QBitArray',),
- "PySide2.QtCore.QBitArray.__ixor__": ('PySide2.QtCore.QBitArray',),
- "PySide2.QtCore.QBitArray.__or__": ('PySide2.QtCore.QBitArray',),
- "PySide2.QtCore.QBitArray.__xor__": ('PySide2.QtCore.QBitArray',),
- "PySide2.QtCore.QBitArray.at": ('int',),
- "PySide2.QtCore.QBitArray.bits": (),
- "PySide2.QtCore.QBitArray.clear": (),
- "PySide2.QtCore.QBitArray.clearBit": ('int',),
- "PySide2.QtCore.QBitArray.count": [(), ('bool',)],
- "PySide2.QtCore.QBitArray.fill": [('bool', 'int'), ('bool', 'int', 'int')],
- "PySide2.QtCore.QBitArray.fromBits": ('bytes', 'int'),
- "PySide2.QtCore.QBitArray.isEmpty": (),
- "PySide2.QtCore.QBitArray.isNull": (),
- "PySide2.QtCore.QBitArray.resize": ('int',),
- "PySide2.QtCore.QBitArray.setBit": [('int',), ('int', 'bool')],
- "PySide2.QtCore.QBitArray.size": (),
- "PySide2.QtCore.QBitArray.swap": ('PySide2.QtCore.QBitArray',),
- "PySide2.QtCore.QBitArray.testBit": ('int',),
- "PySide2.QtCore.QBitArray.toggleBit": ('int',),
- "PySide2.QtCore.QBitArray.truncate": ('int',),
-# class PySide2.QtCore.QBuffer:
- "PySide2.QtCore.QBuffer.__init__": [('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QObject',)],
- "PySide2.QtCore.QBuffer.atEnd": (),
- "PySide2.QtCore.QBuffer.buffer": (),
- "PySide2.QtCore.QBuffer.canReadLine": (),
- "PySide2.QtCore.QBuffer.close": (),
- "PySide2.QtCore.QBuffer.connectNotify": ('PySide2.QtCore.QMetaMethod',),
- "PySide2.QtCore.QBuffer.data": (),
- "PySide2.QtCore.QBuffer.disconnectNotify": ('PySide2.QtCore.QMetaMethod',),
- "PySide2.QtCore.QBuffer.open": ('PySide2.QtCore.QIODevice.OpenMode',),
- "PySide2.QtCore.QBuffer.pos": (),
- "PySide2.QtCore.QBuffer.readData": ('bytes', 'int'),
- "PySide2.QtCore.QBuffer.seek": ('int',),
- "PySide2.QtCore.QBuffer.setBuffer": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QBuffer.setData": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QBuffer.size": (),
- "PySide2.QtCore.QBuffer.writeData": ('bytes', 'int'),
-# class PySide2.QtCore.QByteArray:
-# class PySide2.QtCore.QByteArray.Base64Option:
-# class PySide2.QtCore.QByteArray.Base64Options:
- "PySide2.QtCore.QByteArray.__init__": [(), ('PySide2.QtCore.QByteArray',), ('bytearray',), ('bytes',), ('int', 'int')],
- "PySide2.QtCore.QByteArray.__add__": [('PySide2.QtCore.QByteArray',), ('bytearray',), ('bytes',), ('int',)],
- "PySide2.QtCore.QByteArray.__copy__": (),
- "PySide2.QtCore.QByteArray.__iadd__": [('PySide2.QtCore.QByteArray',), ('bytearray',), ('int',)],
- "PySide2.QtCore.QByteArray.__reduce__": (),
- "PySide2.QtCore.QByteArray.__repr__": (),
- "PySide2.QtCore.QByteArray.__str__": (),
- "PySide2.QtCore.QByteArray.append": [('PySide2.QtCore.QByteArray',), ('int',), ('int', 'int')],
- "PySide2.QtCore.QByteArray.at": ('int',),
- "PySide2.QtCore.QByteArray.back": (),
- "PySide2.QtCore.QByteArray.capacity": (),
- "PySide2.QtCore.QByteArray.cbegin": (),
- "PySide2.QtCore.QByteArray.cend": (),
- "PySide2.QtCore.QByteArray.chop": ('int',),
- "PySide2.QtCore.QByteArray.chopped": ('int',),
- "PySide2.QtCore.QByteArray.clear": (),
- "PySide2.QtCore.QByteArray.compare": [('PySide2.QtCore.QByteArray', 'PySide2.QtCore.Qt.CaseSensitivity'), ('bytes', 'PySide2.QtCore.Qt.CaseSensitivity')],
- "PySide2.QtCore.QByteArray.contains": [('PySide2.QtCore.QByteArray',), ('int',)],
- "PySide2.QtCore.QByteArray.count": [(), ('PySide2.QtCore.QByteArray',), ('int',)],
- "PySide2.QtCore.QByteArray.data": (),
- "PySide2.QtCore.QByteArray.endsWith": [('PySide2.QtCore.QByteArray',), ('int',)],
- "PySide2.QtCore.QByteArray.fill": ('int', 'int'),
- "PySide2.QtCore.QByteArray.fromBase64": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray.Base64Options')],
- "PySide2.QtCore.QByteArray.fromHex": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QByteArray.fromPercentEncoding": ('PySide2.QtCore.QByteArray', 'int'),
- "PySide2.QtCore.QByteArray.fromRawData": ('bytes', 'int'),
- "PySide2.QtCore.QByteArray.front": (),
- "PySide2.QtCore.QByteArray.indexOf": ('PySide2.QtCore.QByteArray', 'int'),
- "PySide2.QtCore.QByteArray.insert": [('int', 'PySide2.QtCore.QByteArray'), ('int', 'int', 'int')],
- "PySide2.QtCore.QByteArray.isEmpty": (),
- "PySide2.QtCore.QByteArray.isLower": (),
- "PySide2.QtCore.QByteArray.isNull": (),
- "PySide2.QtCore.QByteArray.isSharedWith": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QByteArray.isUpper": (),
- "PySide2.QtCore.QByteArray.lastIndexOf": ('PySide2.QtCore.QByteArray', 'int'),
- "PySide2.QtCore.QByteArray.left": ('int',),
- "PySide2.QtCore.QByteArray.leftJustified": ('int', 'int', 'bool'),
- "PySide2.QtCore.QByteArray.length": (),
- "PySide2.QtCore.QByteArray.mid": ('int', 'int'),
- "PySide2.QtCore.QByteArray.number": [('float', 'int', 'int'), ('int', 'int')],
- "PySide2.QtCore.QByteArray.prepend": [('PySide2.QtCore.QByteArray',), ('int',), ('int', 'int')],
- "PySide2.QtCore.QByteArray.remove": ('int', 'int'),
- "PySide2.QtCore.QByteArray.repeated": ('int',),
- "PySide2.QtCore.QByteArray.replace": [('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'), ('int', 'PySide2.QtCore.QByteArray'), ('int', 'int'), ('int', 'int', 'PySide2.QtCore.QByteArray'), ('str', 'PySide2.QtCore.QByteArray')],
- "PySide2.QtCore.QByteArray.reserve": ('int',),
- "PySide2.QtCore.QByteArray.resize": ('int',),
- "PySide2.QtCore.QByteArray.right": ('int',),
- "PySide2.QtCore.QByteArray.rightJustified": ('int', 'int', 'bool'),
- "PySide2.QtCore.QByteArray.setNum": [('float', 'int', 'int'), ('int', 'int')],
- "PySide2.QtCore.QByteArray.setRawData": ('bytes', 'int'),
- "PySide2.QtCore.QByteArray.shrink_to_fit": (),
- "PySide2.QtCore.QByteArray.simplified": (),
- "PySide2.QtCore.QByteArray.size": (),
- "PySide2.QtCore.QByteArray.split": ('int',),
- "PySide2.QtCore.QByteArray.squeeze": (),
- "PySide2.QtCore.QByteArray.startsWith": [('PySide2.QtCore.QByteArray',), ('int',)],
- "PySide2.QtCore.QByteArray.swap": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QByteArray.toBase64": [(), ('PySide2.QtCore.QByteArray.Base64Options',)],
- "PySide2.QtCore.QByteArray.toDouble": (),
- "PySide2.QtCore.QByteArray.toFloat": (),
- "PySide2.QtCore.QByteArray.toHex": [(), ('int',)],
- "PySide2.QtCore.QByteArray.toInt": ('int',),
- "PySide2.QtCore.QByteArray.toLong": ('int',),
- "PySide2.QtCore.QByteArray.toLongLong": ('int',),
- "PySide2.QtCore.QByteArray.toLower": (),
- "PySide2.QtCore.QByteArray.toPercentEncoding": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray', 'int'),
- "PySide2.QtCore.QByteArray.toShort": ('int',),
- "PySide2.QtCore.QByteArray.toUInt": ('int',),
- "PySide2.QtCore.QByteArray.toULong": ('int',),
- "PySide2.QtCore.QByteArray.toULongLong": ('int',),
- "PySide2.QtCore.QByteArray.toUShort": ('int',),
- "PySide2.QtCore.QByteArray.toUpper": (),
- "PySide2.QtCore.QByteArray.trimmed": (),
- "PySide2.QtCore.QByteArray.truncate": ('int',),
-# class PySide2.QtCore.QByteArrayMatcher:
- "PySide2.QtCore.QByteArrayMatcher.__init__": [(), ('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QByteArrayMatcher',), ('bytes', 'int')],
- "PySide2.QtCore.QByteArrayMatcher.__copy__": (),
- "PySide2.QtCore.QByteArrayMatcher.indexIn": [('PySide2.QtCore.QByteArray', 'int'), ('bytes', 'int', 'int')],
- "PySide2.QtCore.QByteArrayMatcher.pattern": (),
- "PySide2.QtCore.QByteArrayMatcher.setPattern": ('PySide2.QtCore.QByteArray',),
-# class PySide2.QtCore.QCalendar:
-# class PySide2.QtCore.QCalendar.System:
-# class PySide2.QtCore.QCalendar.YearMonthDay:
- "PySide2.QtCore.QCalendar.YearMonthDay.__init__": [(), ('PySide2.QtCore.QCalendar.YearMonthDay',), ('int', 'int', 'int')],
- "PySide2.QtCore.QCalendar.YearMonthDay.__copy__": (),
- "PySide2.QtCore.QCalendar.YearMonthDay.isValid": (),
- "PySide2.QtCore.QCalendar.__init__": [(), ('PySide2.QtCore.QCalendar.System',)],
- "PySide2.QtCore.QCalendar.__copy__": (),
- "PySide2.QtCore.QCalendar.availableCalendars": (),
- "PySide2.QtCore.QCalendar.dateFromParts": [('PySide2.QtCore.QCalendar.YearMonthDay',), ('int', 'int', 'int')],
- "PySide2.QtCore.QCalendar.dayOfWeek": ('PySide2.QtCore.QDate',),
- "PySide2.QtCore.QCalendar.daysInMonth": ('int', 'int'),
- "PySide2.QtCore.QCalendar.daysInYear": ('int',),
- "PySide2.QtCore.QCalendar.hasYearZero": (),
- "PySide2.QtCore.QCalendar.isDateValid": ('int', 'int', 'int'),
- "PySide2.QtCore.QCalendar.isGregorian": (),
- "PySide2.QtCore.QCalendar.isLeapYear": ('int',),
- "PySide2.QtCore.QCalendar.isLunar": (),
- "PySide2.QtCore.QCalendar.isLuniSolar": (),
- "PySide2.QtCore.QCalendar.isProleptic": (),
- "PySide2.QtCore.QCalendar.isSolar": (),
- "PySide2.QtCore.QCalendar.isValid": (),
- "PySide2.QtCore.QCalendar.maximumDaysInMonth": (),
- "PySide2.QtCore.QCalendar.maximumMonthsInYear": (),
- "PySide2.QtCore.QCalendar.minimumDaysInMonth": (),
- "PySide2.QtCore.QCalendar.monthName": ('PySide2.QtCore.QLocale', 'int', 'int', 'PySide2.QtCore.QLocale.FormatType'),
- "PySide2.QtCore.QCalendar.monthsInYear": ('int',),
- "PySide2.QtCore.QCalendar.name": (),
- "PySide2.QtCore.QCalendar.partsFromDate": ('PySide2.QtCore.QDate',),
- "PySide2.QtCore.QCalendar.standaloneMonthName": ('PySide2.QtCore.QLocale', 'int', 'int', 'PySide2.QtCore.QLocale.FormatType'),
- "PySide2.QtCore.QCalendar.standaloneWeekDayName": ('PySide2.QtCore.QLocale', 'int', 'PySide2.QtCore.QLocale.FormatType'),
- "PySide2.QtCore.QCalendar.weekDayName": ('PySide2.QtCore.QLocale', 'int', 'PySide2.QtCore.QLocale.FormatType'),
-# class PySide2.QtCore.QCborArray:
- "PySide2.QtCore.QCborArray.__init__": [(), ('PySide2.QtCore.QCborArray',)],
- "PySide2.QtCore.QCborArray.__add__": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborArray.__copy__": (),
- "PySide2.QtCore.QCborArray.__iadd__": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborArray.__lshift__": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborArray.append": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborArray.at": ('int',),
- "PySide2.QtCore.QCborArray.clear": (),
- "PySide2.QtCore.QCborArray.compare": ('PySide2.QtCore.QCborArray',),
- "PySide2.QtCore.QCborArray.contains": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborArray.empty": (),
- "PySide2.QtCore.QCborArray.first": (),
- "PySide2.QtCore.QCborArray.fromJsonArray": ('PySide2.QtCore.QJsonArray',),
- "PySide2.QtCore.QCborArray.fromStringList": ('typing.Sequence',),
- "PySide2.QtCore.QCborArray.fromVariantList": ('typing.Sequence',),
- "PySide2.QtCore.QCborArray.insert": ('int', 'PySide2.QtCore.QCborValue'),
- "PySide2.QtCore.QCborArray.isEmpty": (),
- "PySide2.QtCore.QCborArray.last": (),
- "PySide2.QtCore.QCborArray.pop_back": (),
- "PySide2.QtCore.QCborArray.pop_front": (),
- "PySide2.QtCore.QCborArray.prepend": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborArray.push_back": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborArray.push_front": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborArray.removeAt": ('int',),
- "PySide2.QtCore.QCborArray.removeFirst": (),
- "PySide2.QtCore.QCborArray.removeLast": (),
- "PySide2.QtCore.QCborArray.size": (),
- "PySide2.QtCore.QCborArray.swap": ('PySide2.QtCore.QCborArray',),
- "PySide2.QtCore.QCborArray.takeAt": ('int',),
- "PySide2.QtCore.QCborArray.takeFirst": (),
- "PySide2.QtCore.QCborArray.takeLast": (),
- "PySide2.QtCore.QCborArray.toCborValue": (),
- "PySide2.QtCore.QCborArray.toJsonArray": (),
- "PySide2.QtCore.QCborArray.toVariantList": (),
-# class PySide2.QtCore.QCborError:
-# class PySide2.QtCore.QCborError.Code:
- "PySide2.QtCore.QCborError.__init__": [(), ('PySide2.QtCore.QCborError',)],
- "PySide2.QtCore.QCborError.__copy__": (),
- "PySide2.QtCore.QCborError.toString": (),
-# class PySide2.QtCore.QCborKnownTags:
-# class PySide2.QtCore.QCborMap:
- "PySide2.QtCore.QCborMap.__init__": [(), ('PySide2.QtCore.QCborMap',)],
- "PySide2.QtCore.QCborMap.__copy__": (),
- "PySide2.QtCore.QCborMap.clear": (),
- "PySide2.QtCore.QCborMap.compare": ('PySide2.QtCore.QCborMap',),
- "PySide2.QtCore.QCborMap.contains": [('PySide2.QtCore.QCborValue',), ('int',), ('str',)],
- "PySide2.QtCore.QCborMap.empty": (),
- "PySide2.QtCore.QCborMap.fromJsonObject": ('typing.Dict',),
- "PySide2.QtCore.QCborMap.fromVariantHash": ('typing.Dict',),
- "PySide2.QtCore.QCborMap.fromVariantMap": ('typing.Dict',),
- "PySide2.QtCore.QCborMap.isEmpty": (),
- "PySide2.QtCore.QCborMap.keys": (),
- "PySide2.QtCore.QCborMap.remove": [('PySide2.QtCore.QCborValue',), ('int',), ('str',)],
- "PySide2.QtCore.QCborMap.size": (),
- "PySide2.QtCore.QCborMap.swap": ('PySide2.QtCore.QCborMap',),
- "PySide2.QtCore.QCborMap.take": [('PySide2.QtCore.QCborValue',), ('int',), ('str',)],
- "PySide2.QtCore.QCborMap.toCborValue": (),
- "PySide2.QtCore.QCborMap.toJsonObject": (),
- "PySide2.QtCore.QCborMap.toVariantHash": (),
- "PySide2.QtCore.QCborMap.toVariantMap": (),
- "PySide2.QtCore.QCborMap.value": [('PySide2.QtCore.QCborValue',), ('int',), ('str',)],
-# class PySide2.QtCore.QCborParserError:
- "PySide2.QtCore.QCborParserError.__init__": [(), ('PySide2.QtCore.QCborParserError',)],
- "PySide2.QtCore.QCborParserError.__copy__": (),
- "PySide2.QtCore.QCborParserError.errorString": (),
-# class PySide2.QtCore.QCborSimpleType:
-# class PySide2.QtCore.QCborStreamReader:
-# class PySide2.QtCore.QCborStreamReader.StringResultCode:
-# class PySide2.QtCore.QCborStreamReader.Type:
- "PySide2.QtCore.QCborStreamReader.__init__": [(), ('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QIODevice',), ('bytearray', 'int'), ('bytes', 'int')],
- "PySide2.QtCore.QCborStreamReader.addData": [('PySide2.QtCore.QByteArray',), ('bytearray', 'int'), ('bytes', 'int')],
- "PySide2.QtCore.QCborStreamReader.clear": (),
- "PySide2.QtCore.QCborStreamReader.containerDepth": (),
- "PySide2.QtCore.QCborStreamReader.currentOffset": (),
- "PySide2.QtCore.QCborStreamReader.currentStringChunkSize": (),
- "PySide2.QtCore.QCborStreamReader.device": (),
- "PySide2.QtCore.QCborStreamReader.enterContainer": (),
- "PySide2.QtCore.QCborStreamReader.hasNext": (),
- "PySide2.QtCore.QCborStreamReader.isArray": (),
- "PySide2.QtCore.QCborStreamReader.isBool": (),
- "PySide2.QtCore.QCborStreamReader.isByteArray": (),
- "PySide2.QtCore.QCborStreamReader.isContainer": (),
- "PySide2.QtCore.QCborStreamReader.isDouble": (),
- "PySide2.QtCore.QCborStreamReader.isFalse": (),
- "PySide2.QtCore.QCborStreamReader.isFloat": (),
- "PySide2.QtCore.QCborStreamReader.isFloat16": (),
- "PySide2.QtCore.QCborStreamReader.isInteger": (),
- "PySide2.QtCore.QCborStreamReader.isInvalid": (),
- "PySide2.QtCore.QCborStreamReader.isLengthKnown": (),
- "PySide2.QtCore.QCborStreamReader.isMap": (),
- "PySide2.QtCore.QCborStreamReader.isNegativeInteger": (),
- "PySide2.QtCore.QCborStreamReader.isNull": (),
- "PySide2.QtCore.QCborStreamReader.isSimpleType": [(), ('PySide2.QtCore.QCborSimpleType',)],
- "PySide2.QtCore.QCborStreamReader.isString": (),
- "PySide2.QtCore.QCborStreamReader.isTag": (),
- "PySide2.QtCore.QCborStreamReader.isTrue": (),
- "PySide2.QtCore.QCborStreamReader.isUndefined": (),
- "PySide2.QtCore.QCborStreamReader.isUnsignedInteger": (),
- "PySide2.QtCore.QCborStreamReader.isValid": (),
- "PySide2.QtCore.QCborStreamReader.lastError": (),
- "PySide2.QtCore.QCborStreamReader.leaveContainer": (),
- "PySide2.QtCore.QCborStreamReader.length": (),
- "PySide2.QtCore.QCborStreamReader.parentContainerType": (),
- "PySide2.QtCore.QCborStreamReader.readByteArray": (),
- "PySide2.QtCore.QCborStreamReader.readString": (),
- "PySide2.QtCore.QCborStreamReader.reparse": (),
- "PySide2.QtCore.QCborStreamReader.reset": (),
- "PySide2.QtCore.QCborStreamReader.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtCore.QCborStreamReader.toBool": (),
- "PySide2.QtCore.QCborStreamReader.toDouble": (),
- "PySide2.QtCore.QCborStreamReader.toFloat": (),
- "PySide2.QtCore.QCborStreamReader.toInteger": (),
- "PySide2.QtCore.QCborStreamReader.toSimpleType": (),
- "PySide2.QtCore.QCborStreamReader.toUnsignedInteger": (),
- "PySide2.QtCore.QCborStreamReader.type": (),
-# class PySide2.QtCore.QCborStreamWriter:
- "PySide2.QtCore.QCborStreamWriter.__init__": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QIODevice',)],
- "PySide2.QtCore.QCborStreamWriter.append": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QCborKnownTags',), ('PySide2.QtCore.QCborSimpleType',), ('bool',), ('bytes', 'int'), ('float',), ('int',)],
- "PySide2.QtCore.QCborStreamWriter.appendByteString": ('bytes', 'int'),
- "PySide2.QtCore.QCborStreamWriter.appendNull": (),
- "PySide2.QtCore.QCborStreamWriter.appendTextString": ('bytes', 'int'),
- "PySide2.QtCore.QCborStreamWriter.appendUndefined": (),
- "PySide2.QtCore.QCborStreamWriter.device": (),
- "PySide2.QtCore.QCborStreamWriter.endArray": (),
- "PySide2.QtCore.QCborStreamWriter.endMap": (),
- "PySide2.QtCore.QCborStreamWriter.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtCore.QCborStreamWriter.startArray": [(), ('int',)],
- "PySide2.QtCore.QCborStreamWriter.startMap": [(), ('int',)],
-# class PySide2.QtCore.QCborStringResultByteArray:
- "PySide2.QtCore.QCborStringResultByteArray.__init__": [(), ('PySide2.QtCore.QCborStringResultByteArray',)],
- "PySide2.QtCore.QCborStringResultByteArray.__copy__": (),
-# class PySide2.QtCore.QCborStringResultString:
- "PySide2.QtCore.QCborStringResultString.__init__": [(), ('PySide2.QtCore.QCborStringResultString',)],
- "PySide2.QtCore.QCborStringResultString.__copy__": (),
-# class PySide2.QtCore.QCborValue:
-# class PySide2.QtCore.QCborValue.DiagnosticNotationOption:
-# class PySide2.QtCore.QCborValue.DiagnosticNotationOptions:
-# class PySide2.QtCore.QCborValue.EncodingOption:
-# class PySide2.QtCore.QCborValue.EncodingOptions:
-# class PySide2.QtCore.QCborValue.Type:
- "PySide2.QtCore.QCborValue.__init__": [(), ('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QCborArray',), ('PySide2.QtCore.QCborKnownTags', 'PySide2.QtCore.QCborValue'), ('PySide2.QtCore.QCborMap',), ('PySide2.QtCore.QCborSimpleType',), ('PySide2.QtCore.QCborValue',), ('PySide2.QtCore.QCborValue.Type',), ('PySide2.QtCore.QDateTime',), ('PySide2.QtCore.QRegularExpression',), ('PySide2.QtCore.QUrl',), ('PySide2.QtCore.QUuid',), ('bool',), ('bytes',), ('float',), ('int',), ('str',)],
- "PySide2.QtCore.QCborValue.__copy__": (),
- "PySide2.QtCore.QCborValue.compare": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborValue.fromCbor": [('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QCborParserError'), ('PySide2.QtCore.QCborStreamReader',), ('bytearray', 'int', 'PySide2.QtCore.QCborParserError'), ('bytes', 'int', 'PySide2.QtCore.QCborParserError')],
- "PySide2.QtCore.QCborValue.fromJsonValue": ('PySide2.QtCore.QJsonValue',),
- "PySide2.QtCore.QCborValue.fromVariant": ('typing.Any',),
- "PySide2.QtCore.QCborValue.isArray": (),
- "PySide2.QtCore.QCborValue.isBool": (),
- "PySide2.QtCore.QCborValue.isByteArray": (),
- "PySide2.QtCore.QCborValue.isContainer": (),
- "PySide2.QtCore.QCborValue.isDateTime": (),
- "PySide2.QtCore.QCborValue.isDouble": (),
- "PySide2.QtCore.QCborValue.isFalse": (),
- "PySide2.QtCore.QCborValue.isInteger": (),
- "PySide2.QtCore.QCborValue.isInvalid": (),
- "PySide2.QtCore.QCborValue.isMap": (),
- "PySide2.QtCore.QCborValue.isNull": (),
- "PySide2.QtCore.QCborValue.isRegularExpression": (),
- "PySide2.QtCore.QCborValue.isSimpleType": [(), ('PySide2.QtCore.QCborSimpleType',)],
- "PySide2.QtCore.QCborValue.isString": (),
- "PySide2.QtCore.QCborValue.isTag": (),
- "PySide2.QtCore.QCborValue.isTrue": (),
- "PySide2.QtCore.QCborValue.isUndefined": (),
- "PySide2.QtCore.QCborValue.isUrl": (),
- "PySide2.QtCore.QCborValue.isUuid": (),
- "PySide2.QtCore.QCborValue.swap": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborValue.taggedValue": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborValue.toArray": [(), ('PySide2.QtCore.QCborArray',)],
- "PySide2.QtCore.QCborValue.toBool": ('bool',),
- "PySide2.QtCore.QCborValue.toByteArray": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QCborValue.toCbor": [('PySide2.QtCore.QCborStreamWriter', 'PySide2.QtCore.QCborValue.EncodingOptions'), ('PySide2.QtCore.QCborValue.EncodingOptions',)],
- "PySide2.QtCore.QCborValue.toDateTime": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QCborValue.toDiagnosticNotation": ('PySide2.QtCore.QCborValue.DiagnosticNotationOptions',),
- "PySide2.QtCore.QCborValue.toDouble": ('float',),
- "PySide2.QtCore.QCborValue.toInteger": ('int',),
- "PySide2.QtCore.QCborValue.toJsonValue": (),
- "PySide2.QtCore.QCborValue.toMap": [(), ('PySide2.QtCore.QCborMap',)],
- "PySide2.QtCore.QCborValue.toRegularExpression": ('PySide2.QtCore.QRegularExpression',),
- "PySide2.QtCore.QCborValue.toSimpleType": ('PySide2.QtCore.QCborSimpleType',),
- "PySide2.QtCore.QCborValue.toString": ('str',),
- "PySide2.QtCore.QCborValue.toUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtCore.QCborValue.toUuid": ('PySide2.QtCore.QUuid',),
- "PySide2.QtCore.QCborValue.toVariant": (),
- "PySide2.QtCore.QCborValue.type": (),
-# class PySide2.QtCore.QChildEvent:
- "PySide2.QtCore.QChildEvent.__init__": ('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.QObject'),
- "PySide2.QtCore.QChildEvent.added": (),
- "PySide2.QtCore.QChildEvent.child": (),
- "PySide2.QtCore.QChildEvent.polished": (),
- "PySide2.QtCore.QChildEvent.removed": (),
-# class PySide2.QtCore.QCollator:
- "PySide2.QtCore.QCollator.__init__": [(), ('PySide2.QtCore.QCollator',), ('PySide2.QtCore.QLocale',)],
- "PySide2.QtCore.QCollator.__call__": ('str', 'str'),
- "PySide2.QtCore.QCollator.caseSensitivity": (),
- "PySide2.QtCore.QCollator.compare": [('bytes', 'int', 'bytes', 'int'), ('str', 'str')],
- "PySide2.QtCore.QCollator.ignorePunctuation": (),
- "PySide2.QtCore.QCollator.locale": (),
- "PySide2.QtCore.QCollator.numericMode": (),
- "PySide2.QtCore.QCollator.setCaseSensitivity": ('PySide2.QtCore.Qt.CaseSensitivity',),
- "PySide2.QtCore.QCollator.setIgnorePunctuation": ('bool',),
- "PySide2.QtCore.QCollator.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtCore.QCollator.setNumericMode": ('bool',),
- "PySide2.QtCore.QCollator.sortKey": ('str',),
- "PySide2.QtCore.QCollator.swap": ('PySide2.QtCore.QCollator',),
-# class PySide2.QtCore.QCollatorSortKey:
- "PySide2.QtCore.QCollatorSortKey.__init__": ('PySide2.QtCore.QCollatorSortKey',),
- "PySide2.QtCore.QCollatorSortKey.compare": ('PySide2.QtCore.QCollatorSortKey',),
- "PySide2.QtCore.QCollatorSortKey.swap": ('PySide2.QtCore.QCollatorSortKey',),
-# class PySide2.QtCore.QCommandLineOption:
-# class PySide2.QtCore.QCommandLineOption.Flag:
-# class PySide2.QtCore.QCommandLineOption.Flags:
- "PySide2.QtCore.QCommandLineOption.__init__": [('PySide2.QtCore.QCommandLineOption',), ('str',), ('str', 'str', 'str', 'str'), ('typing.Sequence',), ('typing.Sequence', 'str', 'str', 'str')],
- "PySide2.QtCore.QCommandLineOption.defaultValues": (),
- "PySide2.QtCore.QCommandLineOption.description": (),
- "PySide2.QtCore.QCommandLineOption.flags": (),
- "PySide2.QtCore.QCommandLineOption.isHidden": (),
- "PySide2.QtCore.QCommandLineOption.names": (),
- "PySide2.QtCore.QCommandLineOption.setDefaultValue": ('str',),
- "PySide2.QtCore.QCommandLineOption.setDefaultValues": ('typing.Sequence',),
- "PySide2.QtCore.QCommandLineOption.setDescription": ('str',),
- "PySide2.QtCore.QCommandLineOption.setFlags": ('PySide2.QtCore.QCommandLineOption.Flags',),
- "PySide2.QtCore.QCommandLineOption.setHidden": ('bool',),
- "PySide2.QtCore.QCommandLineOption.setValueName": ('str',),
- "PySide2.QtCore.QCommandLineOption.swap": ('PySide2.QtCore.QCommandLineOption',),
- "PySide2.QtCore.QCommandLineOption.valueName": (),
-# class PySide2.QtCore.QCommandLineParser:
-# class PySide2.QtCore.QCommandLineParser.OptionsAfterPositionalArgumentsMode:
-# class PySide2.QtCore.QCommandLineParser.SingleDashWordOptionMode:
- "PySide2.QtCore.QCommandLineParser.__init__": (),
- "PySide2.QtCore.QCommandLineParser.addHelpOption": (),
- "PySide2.QtCore.QCommandLineParser.addOption": ('PySide2.QtCore.QCommandLineOption',),
- "PySide2.QtCore.QCommandLineParser.addOptions": ('typing.Sequence',),
- "PySide2.QtCore.QCommandLineParser.addPositionalArgument": ('str', 'str', 'str'),
- "PySide2.QtCore.QCommandLineParser.addVersionOption": (),
- "PySide2.QtCore.QCommandLineParser.applicationDescription": (),
- "PySide2.QtCore.QCommandLineParser.clearPositionalArguments": (),
- "PySide2.QtCore.QCommandLineParser.errorText": (),
- "PySide2.QtCore.QCommandLineParser.helpText": (),
- "PySide2.QtCore.QCommandLineParser.isSet": [('PySide2.QtCore.QCommandLineOption',), ('str',)],
- "PySide2.QtCore.QCommandLineParser.optionNames": (),
- "PySide2.QtCore.QCommandLineParser.parse": ('typing.Sequence',),
- "PySide2.QtCore.QCommandLineParser.positionalArguments": (),
- "PySide2.QtCore.QCommandLineParser.process": [('PySide2.QtCore.QCoreApplication',), ('typing.Sequence',)],
- "PySide2.QtCore.QCommandLineParser.setApplicationDescription": ('str',),
- "PySide2.QtCore.QCommandLineParser.setOptionsAfterPositionalArgumentsMode": ('PySide2.QtCore.QCommandLineParser.OptionsAfterPositionalArgumentsMode',),
- "PySide2.QtCore.QCommandLineParser.setSingleDashWordOptionMode": ('PySide2.QtCore.QCommandLineParser.SingleDashWordOptionMode',),
- "PySide2.QtCore.QCommandLineParser.showHelp": ('int',),
- "PySide2.QtCore.QCommandLineParser.showVersion": (),
- "PySide2.QtCore.QCommandLineParser.unknownOptionNames": (),
- "PySide2.QtCore.QCommandLineParser.value": [('PySide2.QtCore.QCommandLineOption',), ('str',)],
- "PySide2.QtCore.QCommandLineParser.values": [('PySide2.QtCore.QCommandLineOption',), ('str',)],
-# class PySide2.QtCore.QConcatenateTablesProxyModel:
- "PySide2.QtCore.QConcatenateTablesProxyModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QConcatenateTablesProxyModel.addSourceModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCore.QConcatenateTablesProxyModel.canDropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QConcatenateTablesProxyModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QConcatenateTablesProxyModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QConcatenateTablesProxyModel.dropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QConcatenateTablesProxyModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QConcatenateTablesProxyModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtCore.QConcatenateTablesProxyModel.index": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QConcatenateTablesProxyModel.itemData": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QConcatenateTablesProxyModel.mapFromSource": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QConcatenateTablesProxyModel.mapToSource": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QConcatenateTablesProxyModel.mimeData": ('typing.List',),
- "PySide2.QtCore.QConcatenateTablesProxyModel.mimeTypes": (),
- "PySide2.QtCore.QConcatenateTablesProxyModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtCore.QConcatenateTablesProxyModel.removeSourceModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCore.QConcatenateTablesProxyModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QConcatenateTablesProxyModel.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
- "PySide2.QtCore.QConcatenateTablesProxyModel.setItemData": ('PySide2.QtCore.QModelIndex', 'typing.Dict'),
- "PySide2.QtCore.QConcatenateTablesProxyModel.span": ('PySide2.QtCore.QModelIndex',),
-# class PySide2.QtCore.QCoreApplication:
- "PySide2.QtCore.QCoreApplication.__init__": [(), ('typing.Sequence',)],
- "PySide2.QtCore.QCoreApplication.addLibraryPath": ('str',),
- "PySide2.QtCore.QCoreApplication.applicationDirPath": (),
- "PySide2.QtCore.QCoreApplication.applicationFilePath": (),
- "PySide2.QtCore.QCoreApplication.applicationName": (),
- "PySide2.QtCore.QCoreApplication.applicationPid": (),
- "PySide2.QtCore.QCoreApplication.applicationVersion": (),
- "PySide2.QtCore.QCoreApplication.arguments": (),
- "PySide2.QtCore.QCoreApplication.closingDown": (),
- "PySide2.QtCore.QCoreApplication.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QCoreApplication.eventDispatcher": (),
- "PySide2.QtCore.QCoreApplication.exec_": (),
- "PySide2.QtCore.QCoreApplication.exit": ('int',),
- "PySide2.QtCore.QCoreApplication.flush": (),
- "PySide2.QtCore.QCoreApplication.hasPendingEvents": (),
- "PySide2.QtCore.QCoreApplication.installNativeEventFilter": ('PySide2.QtCore.QAbstractNativeEventFilter',),
- "PySide2.QtCore.QCoreApplication.installTranslator": ('PySide2.QtCore.QTranslator',),
- "PySide2.QtCore.QCoreApplication.instance": (),
- "PySide2.QtCore.QCoreApplication.isQuitLockEnabled": (),
- "PySide2.QtCore.QCoreApplication.isSetuidAllowed": (),
- "PySide2.QtCore.QCoreApplication.libraryPaths": (),
- "PySide2.QtCore.QCoreApplication.notify": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtCore.QCoreApplication.organizationDomain": (),
- "PySide2.QtCore.QCoreApplication.organizationName": (),
- "PySide2.QtCore.QCoreApplication.postEvent": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent', 'int'),
- "PySide2.QtCore.QCoreApplication.processEvents": [('PySide2.QtCore.QEventLoop.ProcessEventsFlags',), ('PySide2.QtCore.QEventLoop.ProcessEventsFlags', 'int')],
- "PySide2.QtCore.QCoreApplication.quit": (),
- "PySide2.QtCore.QCoreApplication.removeLibraryPath": ('str',),
- "PySide2.QtCore.QCoreApplication.removeNativeEventFilter": ('PySide2.QtCore.QAbstractNativeEventFilter',),
- "PySide2.QtCore.QCoreApplication.removePostedEvents": ('PySide2.QtCore.QObject', 'int'),
- "PySide2.QtCore.QCoreApplication.removeTranslator": ('PySide2.QtCore.QTranslator',),
- "PySide2.QtCore.QCoreApplication.sendEvent": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtCore.QCoreApplication.sendPostedEvents": ('PySide2.QtCore.QObject', 'int'),
- "PySide2.QtCore.QCoreApplication.setApplicationName": ('str',),
- "PySide2.QtCore.QCoreApplication.setApplicationVersion": ('str',),
- "PySide2.QtCore.QCoreApplication.setAttribute": ('PySide2.QtCore.Qt.ApplicationAttribute', 'bool'),
- "PySide2.QtCore.QCoreApplication.setEventDispatcher": ('PySide2.QtCore.QAbstractEventDispatcher',),
- "PySide2.QtCore.QCoreApplication.setLibraryPaths": ('typing.Sequence',),
- "PySide2.QtCore.QCoreApplication.setOrganizationDomain": ('str',),
- "PySide2.QtCore.QCoreApplication.setOrganizationName": ('str',),
- "PySide2.QtCore.QCoreApplication.setQuitLockEnabled": ('bool',),
- "PySide2.QtCore.QCoreApplication.setSetuidAllowed": ('bool',),
- "PySide2.QtCore.QCoreApplication.shutdown": (),
- "PySide2.QtCore.QCoreApplication.startingUp": (),
- "PySide2.QtCore.QCoreApplication.testAttribute": ('PySide2.QtCore.Qt.ApplicationAttribute',),
- "PySide2.QtCore.QCoreApplication.translate": ('bytes', 'bytes', 'bytes', 'int'),
-# class PySide2.QtCore.QCryptographicHash:
-# class PySide2.QtCore.QCryptographicHash.Algorithm:
- "PySide2.QtCore.QCryptographicHash.__init__": ('PySide2.QtCore.QCryptographicHash.Algorithm',),
- "PySide2.QtCore.QCryptographicHash.addData": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QIODevice',), ('bytes', 'int')],
- "PySide2.QtCore.QCryptographicHash.hash": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QCryptographicHash.Algorithm'),
- "PySide2.QtCore.QCryptographicHash.hashLength": ('PySide2.QtCore.QCryptographicHash.Algorithm',),
- "PySide2.QtCore.QCryptographicHash.reset": (),
- "PySide2.QtCore.QCryptographicHash.result": (),
-# class PySide2.QtCore.QDataStream:
-# class PySide2.QtCore.QDataStream.ByteOrder:
-# class PySide2.QtCore.QDataStream.FloatingPointPrecision:
-# class PySide2.QtCore.QDataStream.Status:
-# class PySide2.QtCore.QDataStream.Version:
- "PySide2.QtCore.QDataStream.__init__": [(), ('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QIODevice.OpenMode'), ('PySide2.QtCore.QIODevice',)],
- "PySide2.QtCore.QDataStream.__lshift__": [('PySide2.QtCore.QBitArray',), ('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QCborArray',), ('PySide2.QtCore.QCborMap',), ('PySide2.QtCore.QCborValue',), ('PySide2.QtCore.QDate',), ('PySide2.QtCore.QDateTime',), ('PySide2.QtCore.QEasingCurve',), ('PySide2.QtCore.QJsonArray',), ('PySide2.QtCore.QJsonDocument',), ('PySide2.QtCore.QJsonValue',), ('PySide2.QtCore.QLine',), ('PySide2.QtCore.QLineF',), ('PySide2.QtCore.QLocale',), ('PySide2.QtCore.QMargins',), ('PySide2.QtCore.QMarginsF',), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',), ('PySide2.QtCore.QRegExp',), ('PySide2.QtCore.QRegularExpression',), ('PySide2.QtCore.QSize',), ('PySide2.QtCore.QSizeF',), ('PySide2.QtCore.QTime',), ('PySide2.QtCore.QTimeZone',), ('PySide2.QtCore.QUrl',), ('PySide2.QtCore.QUuid',), ('PySide2.QtCore.QVersionNumber',), ('str',)],
- "PySide2.QtCore.QDataStream.__rshift__": [('PySide2.QtCore.QBitArray',), ('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QCborArray',), ('PySide2.QtCore.QCborMap',), ('PySide2.QtCore.QCborValue',), ('PySide2.QtCore.QDate',), ('PySide2.QtCore.QDateTime',), ('PySide2.QtCore.QEasingCurve',), ('PySide2.QtCore.QJsonArray',), ('PySide2.QtCore.QJsonDocument',), ('PySide2.QtCore.QJsonValue',), ('PySide2.QtCore.QLine',), ('PySide2.QtCore.QLineF',), ('PySide2.QtCore.QLocale',), ('PySide2.QtCore.QMargins',), ('PySide2.QtCore.QMarginsF',), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',), ('PySide2.QtCore.QRegExp',), ('PySide2.QtCore.QRegularExpression',), ('PySide2.QtCore.QSize',), ('PySide2.QtCore.QSizeF',), ('PySide2.QtCore.QTime',), ('PySide2.QtCore.QTimeZone',), ('PySide2.QtCore.QUrl',), ('PySide2.QtCore.QUuid',), ('PySide2.QtCore.QVersionNumber',)],
- "PySide2.QtCore.QDataStream.abortTransaction": (),
- "PySide2.QtCore.QDataStream.atEnd": (),
- "PySide2.QtCore.QDataStream.byteOrder": (),
- "PySide2.QtCore.QDataStream.commitTransaction": (),
- "PySide2.QtCore.QDataStream.device": (),
- "PySide2.QtCore.QDataStream.floatingPointPrecision": (),
- "PySide2.QtCore.QDataStream.readBool": (),
- "PySide2.QtCore.QDataStream.readDouble": (),
- "PySide2.QtCore.QDataStream.readFloat": (),
- "PySide2.QtCore.QDataStream.readInt16": (),
- "PySide2.QtCore.QDataStream.readInt32": (),
- "PySide2.QtCore.QDataStream.readInt64": (),
- "PySide2.QtCore.QDataStream.readInt8": (),
- "PySide2.QtCore.QDataStream.readQChar": (),
- "PySide2.QtCore.QDataStream.readQString": (),
- "PySide2.QtCore.QDataStream.readQStringList": (),
- "PySide2.QtCore.QDataStream.readQVariant": (),
- "PySide2.QtCore.QDataStream.readRawData": ('bytes', 'int'),
- "PySide2.QtCore.QDataStream.readString": (),
- "PySide2.QtCore.QDataStream.readUInt16": (),
- "PySide2.QtCore.QDataStream.readUInt32": (),
- "PySide2.QtCore.QDataStream.readUInt64": (),
- "PySide2.QtCore.QDataStream.readUInt8": (),
- "PySide2.QtCore.QDataStream.resetStatus": (),
- "PySide2.QtCore.QDataStream.rollbackTransaction": (),
- "PySide2.QtCore.QDataStream.setByteOrder": ('PySide2.QtCore.QDataStream.ByteOrder',),
- "PySide2.QtCore.QDataStream.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtCore.QDataStream.setFloatingPointPrecision": ('PySide2.QtCore.QDataStream.FloatingPointPrecision',),
- "PySide2.QtCore.QDataStream.setStatus": ('PySide2.QtCore.QDataStream.Status',),
- "PySide2.QtCore.QDataStream.setVersion": ('int',),
- "PySide2.QtCore.QDataStream.skipRawData": ('int',),
- "PySide2.QtCore.QDataStream.startTransaction": (),
- "PySide2.QtCore.QDataStream.status": (),
- "PySide2.QtCore.QDataStream.unsetDevice": (),
- "PySide2.QtCore.QDataStream.version": (),
- "PySide2.QtCore.QDataStream.writeBool": ('bool',),
- "PySide2.QtCore.QDataStream.writeDouble": ('float',),
- "PySide2.QtCore.QDataStream.writeFloat": ('float',),
- "PySide2.QtCore.QDataStream.writeInt16": ('int',),
- "PySide2.QtCore.QDataStream.writeInt32": ('int',),
- "PySide2.QtCore.QDataStream.writeInt64": ('int',),
- "PySide2.QtCore.QDataStream.writeInt8": ('int',),
- "PySide2.QtCore.QDataStream.writeQChar": ('str',),
- "PySide2.QtCore.QDataStream.writeQString": ('str',),
- "PySide2.QtCore.QDataStream.writeQStringList": ('typing.Sequence',),
- "PySide2.QtCore.QDataStream.writeQVariant": ('typing.Any',),
- "PySide2.QtCore.QDataStream.writeRawData": ('bytes', 'int'),
- "PySide2.QtCore.QDataStream.writeString": ('str',),
- "PySide2.QtCore.QDataStream.writeUInt16": ('int',),
- "PySide2.QtCore.QDataStream.writeUInt32": ('int',),
- "PySide2.QtCore.QDataStream.writeUInt64": ('int',),
- "PySide2.QtCore.QDataStream.writeUInt8": ('int',),
-# class PySide2.QtCore.QDate:
-# class PySide2.QtCore.QDate.MonthNameType:
- "PySide2.QtCore.QDate.__init__": [(), ('PySide2.QtCore.QDate',), ('int', 'int', 'int'), ('int', 'int', 'int', 'PySide2.QtCore.QCalendar')],
- "PySide2.QtCore.QDate.__copy__": (),
- "PySide2.QtCore.QDate.__reduce__": (),
- "PySide2.QtCore.QDate.__repr__": (),
- "PySide2.QtCore.QDate.addDays": ('int',),
- "PySide2.QtCore.QDate.addMonths": [('int',), ('int', 'PySide2.QtCore.QCalendar')],
- "PySide2.QtCore.QDate.addYears": [('int',), ('int', 'PySide2.QtCore.QCalendar')],
- "PySide2.QtCore.QDate.currentDate": (),
- "PySide2.QtCore.QDate.day": [(), ('PySide2.QtCore.QCalendar',)],
- "PySide2.QtCore.QDate.dayOfWeek": [(), ('PySide2.QtCore.QCalendar',)],
- "PySide2.QtCore.QDate.dayOfYear": [(), ('PySide2.QtCore.QCalendar',)],
- "PySide2.QtCore.QDate.daysInMonth": [(), ('PySide2.QtCore.QCalendar',)],
- "PySide2.QtCore.QDate.daysInYear": [(), ('PySide2.QtCore.QCalendar',)],
- "PySide2.QtCore.QDate.daysTo": ('PySide2.QtCore.QDate',),
- "PySide2.QtCore.QDate.endOfDay": [('PySide2.QtCore.QTimeZone',), ('PySide2.QtCore.Qt.TimeSpec', 'int')],
- "PySide2.QtCore.QDate.fromJulianDay": ('int',),
- "PySide2.QtCore.QDate.fromString": [('str', 'PySide2.QtCore.Qt.DateFormat'), ('str', 'str'), ('str', 'str', 'PySide2.QtCore.QCalendar')],
- "PySide2.QtCore.QDate.getDate": (),
- "PySide2.QtCore.QDate.isLeapYear": ('int',),
- "PySide2.QtCore.QDate.isNull": (),
- "PySide2.QtCore.QDate.isValid": [(), ('int', 'int', 'int')],
- "PySide2.QtCore.QDate.longDayName": ('int', 'PySide2.QtCore.QDate.MonthNameType'),
- "PySide2.QtCore.QDate.longMonthName": ('int', 'PySide2.QtCore.QDate.MonthNameType'),
- "PySide2.QtCore.QDate.month": [(), ('PySide2.QtCore.QCalendar',)],
- "PySide2.QtCore.QDate.setDate": [('int', 'int', 'int'), ('int', 'int', 'int', 'PySide2.QtCore.QCalendar')],
- "PySide2.QtCore.QDate.shortDayName": ('int', 'PySide2.QtCore.QDate.MonthNameType'),
- "PySide2.QtCore.QDate.shortMonthName": ('int', 'PySide2.QtCore.QDate.MonthNameType'),
- "PySide2.QtCore.QDate.startOfDay": [('PySide2.QtCore.QTimeZone',), ('PySide2.QtCore.Qt.TimeSpec', 'int')],
- "PySide2.QtCore.QDate.toJulianDay": (),
- "PySide2.QtCore.QDate.toPython": (),
- "PySide2.QtCore.QDate.toString": [('PySide2.QtCore.Qt.DateFormat',), ('PySide2.QtCore.Qt.DateFormat', 'PySide2.QtCore.QCalendar'), ('str',), ('str', 'PySide2.QtCore.QCalendar')],
- "PySide2.QtCore.QDate.weekNumber": (),
- "PySide2.QtCore.QDate.year": [(), ('PySide2.QtCore.QCalendar',)],
-# class PySide2.QtCore.QDateTime:
-# class PySide2.QtCore.QDateTime.YearRange:
- "PySide2.QtCore.QDateTime.__init__": [(), ('PySide2.QtCore.QDate',), ('PySide2.QtCore.QDate', 'PySide2.QtCore.QTime', 'PySide2.QtCore.QTimeZone'), ('PySide2.QtCore.QDate', 'PySide2.QtCore.QTime', 'PySide2.QtCore.Qt.TimeSpec'), ('PySide2.QtCore.QDate', 'PySide2.QtCore.QTime', 'PySide2.QtCore.Qt.TimeSpec', 'int'), ('PySide2.QtCore.QDateTime',), ('int', 'int', 'int', 'int', 'int', 'int'), ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int')],
- "PySide2.QtCore.QDateTime.__copy__": (),
- "PySide2.QtCore.QDateTime.__reduce__": (),
- "PySide2.QtCore.QDateTime.__repr__": (),
- "PySide2.QtCore.QDateTime.addDays": ('int',),
- "PySide2.QtCore.QDateTime.addMSecs": ('int',),
- "PySide2.QtCore.QDateTime.addMonths": ('int',),
- "PySide2.QtCore.QDateTime.addSecs": ('int',),
- "PySide2.QtCore.QDateTime.addYears": ('int',),
- "PySide2.QtCore.QDateTime.currentDateTime": (),
- "PySide2.QtCore.QDateTime.currentDateTimeUtc": (),
- "PySide2.QtCore.QDateTime.currentMSecsSinceEpoch": (),
- "PySide2.QtCore.QDateTime.currentSecsSinceEpoch": (),
- "PySide2.QtCore.QDateTime.date": (),
- "PySide2.QtCore.QDateTime.daysTo": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QDateTime.fromMSecsSinceEpoch": [('int',), ('int', 'PySide2.QtCore.QTimeZone'), ('int', 'PySide2.QtCore.Qt.TimeSpec', 'int')],
- "PySide2.QtCore.QDateTime.fromSecsSinceEpoch": [('int', 'PySide2.QtCore.QTimeZone'), ('int', 'PySide2.QtCore.Qt.TimeSpec', 'int')],
- "PySide2.QtCore.QDateTime.fromString": [('str', 'PySide2.QtCore.Qt.DateFormat'), ('str', 'str'), ('str', 'str', 'PySide2.QtCore.QCalendar')],
- "PySide2.QtCore.QDateTime.fromTime_t": [('int',), ('int', 'PySide2.QtCore.QTimeZone'), ('int', 'PySide2.QtCore.Qt.TimeSpec', 'int')],
- "PySide2.QtCore.QDateTime.isDaylightTime": (),
- "PySide2.QtCore.QDateTime.isNull": (),
- "PySide2.QtCore.QDateTime.isValid": (),
- "PySide2.QtCore.QDateTime.msecsTo": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QDateTime.offsetFromUtc": (),
- "PySide2.QtCore.QDateTime.secsTo": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QDateTime.setDate": ('PySide2.QtCore.QDate',),
- "PySide2.QtCore.QDateTime.setMSecsSinceEpoch": ('int',),
- "PySide2.QtCore.QDateTime.setOffsetFromUtc": ('int',),
- "PySide2.QtCore.QDateTime.setSecsSinceEpoch": ('int',),
- "PySide2.QtCore.QDateTime.setTime": ('PySide2.QtCore.QTime',),
- "PySide2.QtCore.QDateTime.setTimeSpec": ('PySide2.QtCore.Qt.TimeSpec',),
- "PySide2.QtCore.QDateTime.setTimeZone": ('PySide2.QtCore.QTimeZone',),
- "PySide2.QtCore.QDateTime.setTime_t": ('int',),
- "PySide2.QtCore.QDateTime.setUtcOffset": ('int',),
- "PySide2.QtCore.QDateTime.swap": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QDateTime.time": (),
- "PySide2.QtCore.QDateTime.timeSpec": (),
- "PySide2.QtCore.QDateTime.timeZone": (),
- "PySide2.QtCore.QDateTime.timeZoneAbbreviation": (),
- "PySide2.QtCore.QDateTime.toLocalTime": (),
- "PySide2.QtCore.QDateTime.toMSecsSinceEpoch": (),
- "PySide2.QtCore.QDateTime.toOffsetFromUtc": ('int',),
- "PySide2.QtCore.QDateTime.toPython": (),
- "PySide2.QtCore.QDateTime.toSecsSinceEpoch": (),
- "PySide2.QtCore.QDateTime.toString": [('PySide2.QtCore.Qt.DateFormat',), ('str',)],
- "PySide2.QtCore.QDateTime.toTimeSpec": ('PySide2.QtCore.Qt.TimeSpec',),
- "PySide2.QtCore.QDateTime.toTimeZone": ('PySide2.QtCore.QTimeZone',),
- "PySide2.QtCore.QDateTime.toTime_t": (),
- "PySide2.QtCore.QDateTime.toUTC": (),
- "PySide2.QtCore.QDateTime.utcOffset": (),
-# class PySide2.QtCore.QDeadlineTimer:
-# class PySide2.QtCore.QDeadlineTimer.ForeverConstant:
- "PySide2.QtCore.QDeadlineTimer.__init__": [('PySide2.QtCore.QDeadlineTimer',), ('PySide2.QtCore.QDeadlineTimer.ForeverConstant', 'PySide2.QtCore.Qt.TimerType'), ('PySide2.QtCore.Qt.TimerType',), ('int', 'PySide2.QtCore.Qt.TimerType')],
- "PySide2.QtCore.QDeadlineTimer.__copy__": (),
- "PySide2.QtCore.QDeadlineTimer.__iadd__": ('int',),
- "PySide2.QtCore.QDeadlineTimer.__isub__": ('int',),
- "PySide2.QtCore.QDeadlineTimer._q_data": (),
- "PySide2.QtCore.QDeadlineTimer.addNSecs": ('PySide2.QtCore.QDeadlineTimer', 'int'),
- "PySide2.QtCore.QDeadlineTimer.current": ('PySide2.QtCore.Qt.TimerType',),
- "PySide2.QtCore.QDeadlineTimer.deadline": (),
- "PySide2.QtCore.QDeadlineTimer.deadlineNSecs": (),
- "PySide2.QtCore.QDeadlineTimer.hasExpired": (),
- "PySide2.QtCore.QDeadlineTimer.isForever": (),
- "PySide2.QtCore.QDeadlineTimer.remainingTime": (),
- "PySide2.QtCore.QDeadlineTimer.remainingTimeNSecs": (),
- "PySide2.QtCore.QDeadlineTimer.setDeadline": ('int', 'PySide2.QtCore.Qt.TimerType'),
- "PySide2.QtCore.QDeadlineTimer.setPreciseDeadline": ('int', 'int', 'PySide2.QtCore.Qt.TimerType'),
- "PySide2.QtCore.QDeadlineTimer.setPreciseRemainingTime": ('int', 'int', 'PySide2.QtCore.Qt.TimerType'),
- "PySide2.QtCore.QDeadlineTimer.setRemainingTime": ('int', 'PySide2.QtCore.Qt.TimerType'),
- "PySide2.QtCore.QDeadlineTimer.setTimerType": ('PySide2.QtCore.Qt.TimerType',),
- "PySide2.QtCore.QDeadlineTimer.swap": ('PySide2.QtCore.QDeadlineTimer',),
- "PySide2.QtCore.QDeadlineTimer.timerType": (),
-# class PySide2.QtCore.QDir:
-# class PySide2.QtCore.QDir.Filter:
-# class PySide2.QtCore.QDir.Filters:
-# class PySide2.QtCore.QDir.SortFlag:
-# class PySide2.QtCore.QDir.SortFlags:
- "PySide2.QtCore.QDir.__init__": [('PySide2.QtCore.QDir',), ('str',), ('str', 'str', 'PySide2.QtCore.QDir.SortFlags', 'PySide2.QtCore.QDir.Filters')],
- "PySide2.QtCore.QDir.__copy__": (),
- "PySide2.QtCore.QDir.__reduce__": (),
- "PySide2.QtCore.QDir.absoluteFilePath": ('str',),
- "PySide2.QtCore.QDir.absolutePath": (),
- "PySide2.QtCore.QDir.addResourceSearchPath": ('str',),
- "PySide2.QtCore.QDir.addSearchPath": ('str', 'str'),
- "PySide2.QtCore.QDir.canonicalPath": (),
- "PySide2.QtCore.QDir.cd": ('str',),
- "PySide2.QtCore.QDir.cdUp": (),
- "PySide2.QtCore.QDir.cleanPath": ('str',),
- "PySide2.QtCore.QDir.count": (),
- "PySide2.QtCore.QDir.current": (),
- "PySide2.QtCore.QDir.currentPath": (),
- "PySide2.QtCore.QDir.dirName": (),
- "PySide2.QtCore.QDir.drives": (),
- "PySide2.QtCore.QDir.entryInfoList": [('PySide2.QtCore.QDir.Filters', 'PySide2.QtCore.QDir.SortFlags'), ('typing.Sequence', 'PySide2.QtCore.QDir.Filters', 'PySide2.QtCore.QDir.SortFlags')],
- "PySide2.QtCore.QDir.entryList": [('PySide2.QtCore.QDir.Filters', 'PySide2.QtCore.QDir.SortFlags'), ('typing.Sequence', 'PySide2.QtCore.QDir.Filters', 'PySide2.QtCore.QDir.SortFlags')],
- "PySide2.QtCore.QDir.exists": [(), ('str',)],
- "PySide2.QtCore.QDir.filePath": ('str',),
- "PySide2.QtCore.QDir.filter": (),
- "PySide2.QtCore.QDir.fromNativeSeparators": ('str',),
- "PySide2.QtCore.QDir.home": (),
- "PySide2.QtCore.QDir.homePath": (),
- "PySide2.QtCore.QDir.isAbsolute": (),
- "PySide2.QtCore.QDir.isAbsolutePath": ('str',),
- "PySide2.QtCore.QDir.isEmpty": ('PySide2.QtCore.QDir.Filters',),
- "PySide2.QtCore.QDir.isReadable": (),
- "PySide2.QtCore.QDir.isRelative": (),
- "PySide2.QtCore.QDir.isRelativePath": ('str',),
- "PySide2.QtCore.QDir.isRoot": (),
- "PySide2.QtCore.QDir.listSeparator": (),
- "PySide2.QtCore.QDir.makeAbsolute": (),
- "PySide2.QtCore.QDir.match": [('str', 'str'), ('typing.Sequence', 'str')],
- "PySide2.QtCore.QDir.mkdir": ('str',),
- "PySide2.QtCore.QDir.mkpath": ('str',),
- "PySide2.QtCore.QDir.nameFilters": (),
- "PySide2.QtCore.QDir.nameFiltersFromString": ('str',),
- "PySide2.QtCore.QDir.path": (),
- "PySide2.QtCore.QDir.refresh": (),
- "PySide2.QtCore.QDir.relativeFilePath": ('str',),
- "PySide2.QtCore.QDir.remove": ('str',),
- "PySide2.QtCore.QDir.removeRecursively": (),
- "PySide2.QtCore.QDir.rename": ('str', 'str'),
- "PySide2.QtCore.QDir.rmdir": ('str',),
- "PySide2.QtCore.QDir.rmpath": ('str',),
- "PySide2.QtCore.QDir.root": (),
- "PySide2.QtCore.QDir.rootPath": (),
- "PySide2.QtCore.QDir.searchPaths": ('str',),
- "PySide2.QtCore.QDir.separator": (),
- "PySide2.QtCore.QDir.setCurrent": ('str',),
- "PySide2.QtCore.QDir.setFilter": ('PySide2.QtCore.QDir.Filters',),
- "PySide2.QtCore.QDir.setNameFilters": ('typing.Sequence',),
- "PySide2.QtCore.QDir.setPath": ('str',),
- "PySide2.QtCore.QDir.setSearchPaths": ('str', 'typing.Sequence'),
- "PySide2.QtCore.QDir.setSorting": ('PySide2.QtCore.QDir.SortFlags',),
- "PySide2.QtCore.QDir.sorting": (),
- "PySide2.QtCore.QDir.swap": ('PySide2.QtCore.QDir',),
- "PySide2.QtCore.QDir.temp": (),
- "PySide2.QtCore.QDir.tempPath": (),
- "PySide2.QtCore.QDir.toNativeSeparators": ('str',),
-# class PySide2.QtCore.QDirIterator:
-# class PySide2.QtCore.QDirIterator.IteratorFlag:
-# class PySide2.QtCore.QDirIterator.IteratorFlags:
- "PySide2.QtCore.QDirIterator.__init__": [('PySide2.QtCore.QDir', 'PySide2.QtCore.QDirIterator.IteratorFlags'), ('str', 'PySide2.QtCore.QDir.Filters', 'PySide2.QtCore.QDirIterator.IteratorFlags'), ('str', 'PySide2.QtCore.QDirIterator.IteratorFlags'), ('str', 'typing.Sequence', 'PySide2.QtCore.QDir.Filters', 'PySide2.QtCore.QDirIterator.IteratorFlags')],
- "PySide2.QtCore.QDirIterator.fileInfo": (),
- "PySide2.QtCore.QDirIterator.fileName": (),
- "PySide2.QtCore.QDirIterator.filePath": (),
- "PySide2.QtCore.QDirIterator.hasNext": (),
- "PySide2.QtCore.QDirIterator.path": (),
-# class PySide2.QtCore.QDynamicPropertyChangeEvent:
- "PySide2.QtCore.QDynamicPropertyChangeEvent.__init__": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QDynamicPropertyChangeEvent.propertyName": (),
-# class PySide2.QtCore.QEasingCurve:
-# class PySide2.QtCore.QEasingCurve.Type:
- "PySide2.QtCore.QEasingCurve.__init__": [('PySide2.QtCore.QEasingCurve',), ('PySide2.QtCore.QEasingCurve.Type',)],
- "PySide2.QtCore.QEasingCurve.__copy__": (),
- "PySide2.QtCore.QEasingCurve.addCubicBezierSegment": ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'),
- "PySide2.QtCore.QEasingCurve.addTCBSegment": ('PySide2.QtCore.QPointF', 'float', 'float', 'float'),
- "PySide2.QtCore.QEasingCurve.amplitude": (),
- "PySide2.QtCore.QEasingCurve.customType": (),
- "PySide2.QtCore.QEasingCurve.overshoot": (),
- "PySide2.QtCore.QEasingCurve.period": (),
- "PySide2.QtCore.QEasingCurve.setAmplitude": ('float',),
- "PySide2.QtCore.QEasingCurve.setCustomType": ('object',),
- "PySide2.QtCore.QEasingCurve.setOvershoot": ('float',),
- "PySide2.QtCore.QEasingCurve.setPeriod": ('float',),
- "PySide2.QtCore.QEasingCurve.setType": ('PySide2.QtCore.QEasingCurve.Type',),
- "PySide2.QtCore.QEasingCurve.swap": ('PySide2.QtCore.QEasingCurve',),
- "PySide2.QtCore.QEasingCurve.toCubicSpline": (),
- "PySide2.QtCore.QEasingCurve.type": (),
- "PySide2.QtCore.QEasingCurve.valueForProgress": ('float',),
-# class PySide2.QtCore.QElapsedTimer:
-# class PySide2.QtCore.QElapsedTimer.ClockType:
- "PySide2.QtCore.QElapsedTimer.__init__": [(), ('PySide2.QtCore.QElapsedTimer',)],
- "PySide2.QtCore.QElapsedTimer.__copy__": (),
- "PySide2.QtCore.QElapsedTimer.clockType": (),
- "PySide2.QtCore.QElapsedTimer.elapsed": (),
- "PySide2.QtCore.QElapsedTimer.hasExpired": ('int',),
- "PySide2.QtCore.QElapsedTimer.invalidate": (),
- "PySide2.QtCore.QElapsedTimer.isMonotonic": (),
- "PySide2.QtCore.QElapsedTimer.isValid": (),
- "PySide2.QtCore.QElapsedTimer.msecsSinceReference": (),
- "PySide2.QtCore.QElapsedTimer.msecsTo": ('PySide2.QtCore.QElapsedTimer',),
- "PySide2.QtCore.QElapsedTimer.nsecsElapsed": (),
- "PySide2.QtCore.QElapsedTimer.restart": (),
- "PySide2.QtCore.QElapsedTimer.secsTo": ('PySide2.QtCore.QElapsedTimer',),
- "PySide2.QtCore.QElapsedTimer.start": (),
-# class PySide2.QtCore.QEvent:
-# class PySide2.QtCore.QEvent.Type:
- "PySide2.QtCore.QEvent.__init__": [('PySide2.QtCore.QEvent',), ('PySide2.QtCore.QEvent.Type',)],
- "PySide2.QtCore.QEvent.accept": (),
- "PySide2.QtCore.QEvent.ignore": (),
- "PySide2.QtCore.QEvent.isAccepted": (),
- "PySide2.QtCore.QEvent.registerEventType": ('int',),
- "PySide2.QtCore.QEvent.setAccepted": ('bool',),
- "PySide2.QtCore.QEvent.spontaneous": (),
- "PySide2.QtCore.QEvent.type": (),
-# class PySide2.QtCore.QEventLoop:
-# class PySide2.QtCore.QEventLoop.ProcessEventsFlag:
-# class PySide2.QtCore.QEventLoop.ProcessEventsFlags:
- "PySide2.QtCore.QEventLoop.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QEventLoop.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QEventLoop.exec_": ('PySide2.QtCore.QEventLoop.ProcessEventsFlags',),
- "PySide2.QtCore.QEventLoop.exit": ('int',),
- "PySide2.QtCore.QEventLoop.isRunning": (),
- "PySide2.QtCore.QEventLoop.processEvents": [('PySide2.QtCore.QEventLoop.ProcessEventsFlags',), ('PySide2.QtCore.QEventLoop.ProcessEventsFlags', 'int')],
- "PySide2.QtCore.QEventLoop.quit": (),
- "PySide2.QtCore.QEventLoop.wakeUp": (),
-# class PySide2.QtCore.QEventTransition:
- "PySide2.QtCore.QEventTransition.__init__": [('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.QState'), ('PySide2.QtCore.QState',)],
- "PySide2.QtCore.QEventTransition.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QEventTransition.eventSource": (),
- "PySide2.QtCore.QEventTransition.eventTest": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QEventTransition.eventType": (),
- "PySide2.QtCore.QEventTransition.onTransition": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QEventTransition.setEventSource": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QEventTransition.setEventType": ('PySide2.QtCore.QEvent.Type',),
-# class PySide2.QtCore.QFactoryInterface:
- "PySide2.QtCore.QFactoryInterface.__init__": (),
- "PySide2.QtCore.QFactoryInterface.keys": (),
-# class PySide2.QtCore.QFile:
- "PySide2.QtCore.QFile.__init__": [(), ('PySide2.QtCore.QObject',), ('str',), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QFile.copy": [('str',), ('str', 'str')],
- "PySide2.QtCore.QFile.decodeName": [('PySide2.QtCore.QByteArray',), ('bytes',)],
- "PySide2.QtCore.QFile.encodeName": ('str',),
- "PySide2.QtCore.QFile.exists": [(), ('str',)],
- "PySide2.QtCore.QFile.fileName": (),
- "PySide2.QtCore.QFile.link": [('str',), ('str', 'str')],
- "PySide2.QtCore.QFile.open": [('PySide2.QtCore.QIODevice.OpenMode',), ('int', 'PySide2.QtCore.QIODevice.OpenMode', 'PySide2.QtCore.QFileDevice.FileHandleFlags')],
- "PySide2.QtCore.QFile.permissions": [(), ('str',)],
- "PySide2.QtCore.QFile.readLink": [(), ('str',)],
- "PySide2.QtCore.QFile.remove": [(), ('str',)],
- "PySide2.QtCore.QFile.rename": [('str',), ('str', 'str')],
- "PySide2.QtCore.QFile.resize": [('int',), ('str', 'int')],
- "PySide2.QtCore.QFile.setFileName": ('str',),
- "PySide2.QtCore.QFile.setPermissions": [('PySide2.QtCore.QFileDevice.Permissions',), ('str', 'PySide2.QtCore.QFileDevice.Permissions')],
- "PySide2.QtCore.QFile.size": (),
- "PySide2.QtCore.QFile.symLinkTarget": [(), ('str',)],
-# class PySide2.QtCore.QFileDevice:
-# class PySide2.QtCore.QFileDevice.FileError:
-# class PySide2.QtCore.QFileDevice.FileHandleFlag:
-# class PySide2.QtCore.QFileDevice.FileHandleFlags:
-# class PySide2.QtCore.QFileDevice.FileTime:
-# class PySide2.QtCore.QFileDevice.MemoryMapFlags:
-# class PySide2.QtCore.QFileDevice.Permission:
-# class PySide2.QtCore.QFileDevice.Permissions:
- "PySide2.QtCore.QFileDevice.__init__": [(), ('PySide2.QtCore.QObject',)],
- "PySide2.QtCore.QFileDevice.atEnd": (),
- "PySide2.QtCore.QFileDevice.close": (),
- "PySide2.QtCore.QFileDevice.error": (),
- "PySide2.QtCore.QFileDevice.fileName": (),
- "PySide2.QtCore.QFileDevice.fileTime": ('PySide2.QtCore.QFileDevice.FileTime',),
- "PySide2.QtCore.QFileDevice.flush": (),
- "PySide2.QtCore.QFileDevice.handle": (),
- "PySide2.QtCore.QFileDevice.isSequential": (),
- "PySide2.QtCore.QFileDevice.map": ('int', 'int', 'PySide2.QtCore.QFileDevice.MemoryMapFlags'),
- "PySide2.QtCore.QFileDevice.permissions": (),
- "PySide2.QtCore.QFileDevice.pos": (),
- "PySide2.QtCore.QFileDevice.readData": ('bytes', 'int'),
- "PySide2.QtCore.QFileDevice.readLineData": ('bytes', 'int'),
- "PySide2.QtCore.QFileDevice.resize": ('int',),
- "PySide2.QtCore.QFileDevice.seek": ('int',),
- "PySide2.QtCore.QFileDevice.setFileTime": ('PySide2.QtCore.QDateTime', 'PySide2.QtCore.QFileDevice.FileTime'),
- "PySide2.QtCore.QFileDevice.setPermissions": ('PySide2.QtCore.QFileDevice.Permissions',),
- "PySide2.QtCore.QFileDevice.size": (),
- "PySide2.QtCore.QFileDevice.unmap": ('bytes',),
- "PySide2.QtCore.QFileDevice.unsetError": (),
- "PySide2.QtCore.QFileDevice.writeData": ('bytes', 'int'),
-# class PySide2.QtCore.QFileInfo:
- "PySide2.QtCore.QFileInfo.__init__": [(), ('PySide2.QtCore.QDir', 'str'), ('PySide2.QtCore.QFile',), ('PySide2.QtCore.QFileInfo',), ('str',)],
- "PySide2.QtCore.QFileInfo.__copy__": (),
- "PySide2.QtCore.QFileInfo.__reduce__": (),
- "PySide2.QtCore.QFileInfo.absoluteDir": (),
- "PySide2.QtCore.QFileInfo.absoluteFilePath": (),
- "PySide2.QtCore.QFileInfo.absolutePath": (),
- "PySide2.QtCore.QFileInfo.baseName": (),
- "PySide2.QtCore.QFileInfo.birthTime": (),
- "PySide2.QtCore.QFileInfo.bundleName": (),
- "PySide2.QtCore.QFileInfo.caching": (),
- "PySide2.QtCore.QFileInfo.canonicalFilePath": (),
- "PySide2.QtCore.QFileInfo.canonicalPath": (),
- "PySide2.QtCore.QFileInfo.completeBaseName": (),
- "PySide2.QtCore.QFileInfo.completeSuffix": (),
- "PySide2.QtCore.QFileInfo.created": (),
- "PySide2.QtCore.QFileInfo.dir": (),
- "PySide2.QtCore.QFileInfo.exists": [(), ('str',)],
- "PySide2.QtCore.QFileInfo.fileName": (),
- "PySide2.QtCore.QFileInfo.filePath": (),
- "PySide2.QtCore.QFileInfo.group": (),
- "PySide2.QtCore.QFileInfo.groupId": (),
- "PySide2.QtCore.QFileInfo.isAbsolute": (),
- "PySide2.QtCore.QFileInfo.isBundle": (),
- "PySide2.QtCore.QFileInfo.isDir": (),
- "PySide2.QtCore.QFileInfo.isExecutable": (),
- "PySide2.QtCore.QFileInfo.isFile": (),
- "PySide2.QtCore.QFileInfo.isHidden": (),
- "PySide2.QtCore.QFileInfo.isNativePath": (),
- "PySide2.QtCore.QFileInfo.isReadable": (),
- "PySide2.QtCore.QFileInfo.isRelative": (),
- "PySide2.QtCore.QFileInfo.isRoot": (),
- "PySide2.QtCore.QFileInfo.isShortcut": (),
- "PySide2.QtCore.QFileInfo.isSymLink": (),
- "PySide2.QtCore.QFileInfo.isSymbolicLink": (),
- "PySide2.QtCore.QFileInfo.isWritable": (),
- "PySide2.QtCore.QFileInfo.lastModified": (),
- "PySide2.QtCore.QFileInfo.lastRead": (),
- "PySide2.QtCore.QFileInfo.makeAbsolute": (),
- "PySide2.QtCore.QFileInfo.metadataChangeTime": (),
- "PySide2.QtCore.QFileInfo.owner": (),
- "PySide2.QtCore.QFileInfo.ownerId": (),
- "PySide2.QtCore.QFileInfo.path": (),
- "PySide2.QtCore.QFileInfo.readLink": (),
- "PySide2.QtCore.QFileInfo.refresh": (),
- "PySide2.QtCore.QFileInfo.setCaching": ('bool',),
- "PySide2.QtCore.QFileInfo.setFile": [('PySide2.QtCore.QDir', 'str'), ('PySide2.QtCore.QFile',), ('str',)],
- "PySide2.QtCore.QFileInfo.size": (),
- "PySide2.QtCore.QFileInfo.suffix": (),
- "PySide2.QtCore.QFileInfo.swap": ('PySide2.QtCore.QFileInfo',),
- "PySide2.QtCore.QFileInfo.symLinkTarget": (),
-# class PySide2.QtCore.QFileSelector:
- "PySide2.QtCore.QFileSelector.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QFileSelector.allSelectors": (),
- "PySide2.QtCore.QFileSelector.extraSelectors": (),
- "PySide2.QtCore.QFileSelector.select": [('PySide2.QtCore.QUrl',), ('str',)],
- "PySide2.QtCore.QFileSelector.setExtraSelectors": ('typing.Sequence',),
-# class PySide2.QtCore.QFileSystemWatcher:
- "PySide2.QtCore.QFileSystemWatcher.__init__": [('PySide2.QtCore.QObject',), ('typing.Sequence', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QFileSystemWatcher.addPath": ('str',),
- "PySide2.QtCore.QFileSystemWatcher.addPaths": ('typing.Sequence',),
- "PySide2.QtCore.QFileSystemWatcher.directories": (),
- "PySide2.QtCore.QFileSystemWatcher.files": (),
- "PySide2.QtCore.QFileSystemWatcher.removePath": ('str',),
- "PySide2.QtCore.QFileSystemWatcher.removePaths": ('typing.Sequence',),
-# class PySide2.QtCore.QFinalState:
- "PySide2.QtCore.QFinalState.__init__": ('PySide2.QtCore.QState',),
- "PySide2.QtCore.QFinalState.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QFinalState.onEntry": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QFinalState.onExit": ('PySide2.QtCore.QEvent',),
-# class PySide2.QtCore.QGenericArgument:
- "PySide2.QtCore.QGenericArgument.__init__": [('PySide2.QtCore.QGenericArgument',), ('bytes', 'int')],
- "PySide2.QtCore.QGenericArgument.__copy__": (),
- "PySide2.QtCore.QGenericArgument.data": (),
- "PySide2.QtCore.QGenericArgument.name": (),
-# class PySide2.QtCore.QGenericReturnArgument:
- "PySide2.QtCore.QGenericReturnArgument.__init__": [('PySide2.QtCore.QGenericReturnArgument',), ('bytes', 'int')],
- "PySide2.QtCore.QGenericReturnArgument.__copy__": (),
-# class PySide2.QtCore.QHistoryState:
-# class PySide2.QtCore.QHistoryState.HistoryType:
- "PySide2.QtCore.QHistoryState.__init__": [('PySide2.QtCore.QHistoryState.HistoryType', 'PySide2.QtCore.QState'), ('PySide2.QtCore.QState',)],
- "PySide2.QtCore.QHistoryState.defaultState": (),
- "PySide2.QtCore.QHistoryState.defaultTransition": (),
- "PySide2.QtCore.QHistoryState.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QHistoryState.historyType": (),
- "PySide2.QtCore.QHistoryState.onEntry": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QHistoryState.onExit": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QHistoryState.setDefaultState": ('PySide2.QtCore.QAbstractState',),
- "PySide2.QtCore.QHistoryState.setDefaultTransition": ('PySide2.QtCore.QAbstractTransition',),
- "PySide2.QtCore.QHistoryState.setHistoryType": ('PySide2.QtCore.QHistoryState.HistoryType',),
-# class PySide2.QtCore.QIODevice:
-# class PySide2.QtCore.QIODevice.OpenMode:
-# class PySide2.QtCore.QIODevice.OpenModeFlag:
- "PySide2.QtCore.QIODevice.__init__": [(), ('PySide2.QtCore.QObject',)],
- "PySide2.QtCore.QIODevice.atEnd": (),
- "PySide2.QtCore.QIODevice.bytesAvailable": (),
- "PySide2.QtCore.QIODevice.bytesToWrite": (),
- "PySide2.QtCore.QIODevice.canReadLine": (),
- "PySide2.QtCore.QIODevice.close": (),
- "PySide2.QtCore.QIODevice.commitTransaction": (),
- "PySide2.QtCore.QIODevice.currentReadChannel": (),
- "PySide2.QtCore.QIODevice.currentWriteChannel": (),
- "PySide2.QtCore.QIODevice.errorString": (),
- "PySide2.QtCore.QIODevice.getChar": ('bytes',),
- "PySide2.QtCore.QIODevice.isOpen": (),
- "PySide2.QtCore.QIODevice.isReadable": (),
- "PySide2.QtCore.QIODevice.isSequential": (),
- "PySide2.QtCore.QIODevice.isTextModeEnabled": (),
- "PySide2.QtCore.QIODevice.isTransactionStarted": (),
- "PySide2.QtCore.QIODevice.isWritable": (),
- "PySide2.QtCore.QIODevice.open": ('PySide2.QtCore.QIODevice.OpenMode',),
- "PySide2.QtCore.QIODevice.openMode": (),
- "PySide2.QtCore.QIODevice.peek": ('int',),
- "PySide2.QtCore.QIODevice.pos": (),
- "PySide2.QtCore.QIODevice.putChar": ('int',),
- "PySide2.QtCore.QIODevice.read": ('int',),
- "PySide2.QtCore.QIODevice.readAll": (),
- "PySide2.QtCore.QIODevice.readChannelCount": (),
- "PySide2.QtCore.QIODevice.readData": ('bytes', 'int'),
- "PySide2.QtCore.QIODevice.readLine": ('int',),
- "PySide2.QtCore.QIODevice.readLineData": ('bytes', 'int'),
- "PySide2.QtCore.QIODevice.reset": (),
- "PySide2.QtCore.QIODevice.rollbackTransaction": (),
- "PySide2.QtCore.QIODevice.seek": ('int',),
- "PySide2.QtCore.QIODevice.setCurrentReadChannel": ('int',),
- "PySide2.QtCore.QIODevice.setCurrentWriteChannel": ('int',),
- "PySide2.QtCore.QIODevice.setErrorString": ('str',),
- "PySide2.QtCore.QIODevice.setOpenMode": ('PySide2.QtCore.QIODevice.OpenMode',),
- "PySide2.QtCore.QIODevice.setTextModeEnabled": ('bool',),
- "PySide2.QtCore.QIODevice.size": (),
- "PySide2.QtCore.QIODevice.skip": ('int',),
- "PySide2.QtCore.QIODevice.startTransaction": (),
- "PySide2.QtCore.QIODevice.ungetChar": ('int',),
- "PySide2.QtCore.QIODevice.waitForBytesWritten": ('int',),
- "PySide2.QtCore.QIODevice.waitForReadyRead": ('int',),
- "PySide2.QtCore.QIODevice.write": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QIODevice.writeChannelCount": (),
- "PySide2.QtCore.QIODevice.writeData": ('bytes', 'int'),
-# class PySide2.QtCore.QIdentityProxyModel:
- "PySide2.QtCore.QIdentityProxyModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QIdentityProxyModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QIdentityProxyModel.dropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QIdentityProxyModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtCore.QIdentityProxyModel.index": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QIdentityProxyModel.insertColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QIdentityProxyModel.insertRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QIdentityProxyModel.mapFromSource": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QIdentityProxyModel.mapSelectionFromSource": ('PySide2.QtCore.QItemSelection',),
- "PySide2.QtCore.QIdentityProxyModel.mapSelectionToSource": ('PySide2.QtCore.QItemSelection',),
- "PySide2.QtCore.QIdentityProxyModel.mapToSource": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QIdentityProxyModel.match": ('PySide2.QtCore.QModelIndex', 'int', 'typing.Any', 'int', 'PySide2.QtCore.Qt.MatchFlags'),
- "PySide2.QtCore.QIdentityProxyModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtCore.QIdentityProxyModel.removeColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QIdentityProxyModel.removeRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QIdentityProxyModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QIdentityProxyModel.setSourceModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCore.QIdentityProxyModel.sibling": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
-# class PySide2.QtCore.QItemSelection:
- "PySide2.QtCore.QItemSelection.__init__": [(), ('PySide2.QtCore.QItemSelection',), ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex')],
- "PySide2.QtCore.QItemSelection.__add__": ('typing.Sequence',),
- "PySide2.QtCore.QItemSelection.__copy__": (),
- "PySide2.QtCore.QItemSelection.__iadd__": [('PySide2.QtCore.QItemSelectionRange',), ('typing.Sequence',)],
- "PySide2.QtCore.QItemSelection.__lshift__": [('PySide2.QtCore.QItemSelectionRange',), ('typing.Sequence',)],
- "PySide2.QtCore.QItemSelection.append": [('PySide2.QtCore.QItemSelectionRange',), ('typing.Sequence',)],
- "PySide2.QtCore.QItemSelection.at": ('int',),
- "PySide2.QtCore.QItemSelection.back": (),
- "PySide2.QtCore.QItemSelection.clear": (),
- "PySide2.QtCore.QItemSelection.constFirst": (),
- "PySide2.QtCore.QItemSelection.constLast": (),
- "PySide2.QtCore.QItemSelection.contains": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QItemSelection.count": [(), ('PySide2.QtCore.QItemSelectionRange',)],
- "PySide2.QtCore.QItemSelection.detachShared": (),
- "PySide2.QtCore.QItemSelection.empty": (),
- "PySide2.QtCore.QItemSelection.endsWith": ('PySide2.QtCore.QItemSelectionRange',),
- "PySide2.QtCore.QItemSelection.first": (),
- "PySide2.QtCore.QItemSelection.fromSet": ('typing.Set',),
- "PySide2.QtCore.QItemSelection.fromVector": ('typing.List',),
- "PySide2.QtCore.QItemSelection.front": (),
- "PySide2.QtCore.QItemSelection.indexOf": ('PySide2.QtCore.QItemSelectionRange', 'int'),
- "PySide2.QtCore.QItemSelection.indexes": (),
- "PySide2.QtCore.QItemSelection.insert": ('int', 'PySide2.QtCore.QItemSelectionRange'),
- "PySide2.QtCore.QItemSelection.isEmpty": (),
- "PySide2.QtCore.QItemSelection.isSharedWith": ('typing.Sequence',),
- "PySide2.QtCore.QItemSelection.last": (),
- "PySide2.QtCore.QItemSelection.lastIndexOf": ('PySide2.QtCore.QItemSelectionRange', 'int'),
- "PySide2.QtCore.QItemSelection.length": (),
- "PySide2.QtCore.QItemSelection.merge": ('PySide2.QtCore.QItemSelection', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags'),
- "PySide2.QtCore.QItemSelection.mid": ('int', 'int'),
- "PySide2.QtCore.QItemSelection.move": ('int', 'int'),
- "PySide2.QtCore.QItemSelection.pop_back": (),
- "PySide2.QtCore.QItemSelection.pop_front": (),
- "PySide2.QtCore.QItemSelection.prepend": ('PySide2.QtCore.QItemSelectionRange',),
- "PySide2.QtCore.QItemSelection.push_back": ('PySide2.QtCore.QItemSelectionRange',),
- "PySide2.QtCore.QItemSelection.push_front": ('PySide2.QtCore.QItemSelectionRange',),
- "PySide2.QtCore.QItemSelection.removeAll": ('PySide2.QtCore.QItemSelectionRange',),
- "PySide2.QtCore.QItemSelection.removeAt": ('int',),
- "PySide2.QtCore.QItemSelection.removeFirst": (),
- "PySide2.QtCore.QItemSelection.removeLast": (),
- "PySide2.QtCore.QItemSelection.removeOne": ('PySide2.QtCore.QItemSelectionRange',),
- "PySide2.QtCore.QItemSelection.replace": ('int', 'PySide2.QtCore.QItemSelectionRange'),
- "PySide2.QtCore.QItemSelection.reserve": ('int',),
- "PySide2.QtCore.QItemSelection.select": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QItemSelection.setSharable": ('bool',),
- "PySide2.QtCore.QItemSelection.size": (),
- "PySide2.QtCore.QItemSelection.split": ('PySide2.QtCore.QItemSelectionRange', 'PySide2.QtCore.QItemSelectionRange', 'PySide2.QtCore.QItemSelection'),
- "PySide2.QtCore.QItemSelection.startsWith": ('PySide2.QtCore.QItemSelectionRange',),
- "PySide2.QtCore.QItemSelection.swap": [('int', 'int'), ('typing.Sequence',)],
- "PySide2.QtCore.QItemSelection.swapItemsAt": ('int', 'int'),
- "PySide2.QtCore.QItemSelection.takeAt": ('int',),
- "PySide2.QtCore.QItemSelection.takeFirst": (),
- "PySide2.QtCore.QItemSelection.takeLast": (),
- "PySide2.QtCore.QItemSelection.toSet": (),
- "PySide2.QtCore.QItemSelection.toVector": (),
- "PySide2.QtCore.QItemSelection.value": [('int',), ('int', 'PySide2.QtCore.QItemSelectionRange')],
-# class PySide2.QtCore.QItemSelectionModel:
-# class PySide2.QtCore.QItemSelectionModel.SelectionFlag:
-# class PySide2.QtCore.QItemSelectionModel.SelectionFlags:
- "PySide2.QtCore.QItemSelectionModel.__init__": [('PySide2.QtCore.QAbstractItemModel',), ('PySide2.QtCore.QAbstractItemModel', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QItemSelectionModel.clear": (),
- "PySide2.QtCore.QItemSelectionModel.clearCurrentIndex": (),
- "PySide2.QtCore.QItemSelectionModel.clearSelection": (),
- "PySide2.QtCore.QItemSelectionModel.columnIntersectsSelection": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QItemSelectionModel.currentIndex": (),
- "PySide2.QtCore.QItemSelectionModel.emitSelectionChanged": ('PySide2.QtCore.QItemSelection', 'PySide2.QtCore.QItemSelection'),
- "PySide2.QtCore.QItemSelectionModel.hasSelection": (),
- "PySide2.QtCore.QItemSelectionModel.isColumnSelected": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QItemSelectionModel.isRowSelected": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QItemSelectionModel.isSelected": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QItemSelectionModel.model": (),
- "PySide2.QtCore.QItemSelectionModel.reset": (),
- "PySide2.QtCore.QItemSelectionModel.rowIntersectsSelection": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QItemSelectionModel.select": [('PySide2.QtCore.QItemSelection', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags'), ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags')],
- "PySide2.QtCore.QItemSelectionModel.selectedColumns": ('int',),
- "PySide2.QtCore.QItemSelectionModel.selectedIndexes": (),
- "PySide2.QtCore.QItemSelectionModel.selectedRows": ('int',),
- "PySide2.QtCore.QItemSelectionModel.selection": (),
- "PySide2.QtCore.QItemSelectionModel.setCurrentIndex": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags'),
- "PySide2.QtCore.QItemSelectionModel.setModel": ('PySide2.QtCore.QAbstractItemModel',),
-# class PySide2.QtCore.QItemSelectionRange:
- "PySide2.QtCore.QItemSelectionRange.__init__": [(), ('PySide2.QtCore.QItemSelectionRange',), ('PySide2.QtCore.QModelIndex',), ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex')],
- "PySide2.QtCore.QItemSelectionRange.__copy__": (),
- "PySide2.QtCore.QItemSelectionRange.bottom": (),
- "PySide2.QtCore.QItemSelectionRange.bottomRight": (),
- "PySide2.QtCore.QItemSelectionRange.contains": [('PySide2.QtCore.QModelIndex',), ('int', 'int', 'PySide2.QtCore.QModelIndex')],
- "PySide2.QtCore.QItemSelectionRange.height": (),
- "PySide2.QtCore.QItemSelectionRange.indexes": (),
- "PySide2.QtCore.QItemSelectionRange.intersected": ('PySide2.QtCore.QItemSelectionRange',),
- "PySide2.QtCore.QItemSelectionRange.intersects": ('PySide2.QtCore.QItemSelectionRange',),
- "PySide2.QtCore.QItemSelectionRange.isEmpty": (),
- "PySide2.QtCore.QItemSelectionRange.isValid": (),
- "PySide2.QtCore.QItemSelectionRange.left": (),
- "PySide2.QtCore.QItemSelectionRange.model": (),
- "PySide2.QtCore.QItemSelectionRange.parent": (),
- "PySide2.QtCore.QItemSelectionRange.right": (),
- "PySide2.QtCore.QItemSelectionRange.swap": ('PySide2.QtCore.QItemSelectionRange',),
- "PySide2.QtCore.QItemSelectionRange.top": (),
- "PySide2.QtCore.QItemSelectionRange.topLeft": (),
- "PySide2.QtCore.QItemSelectionRange.width": (),
-# class PySide2.QtCore.QJsonArray:
- "PySide2.QtCore.QJsonArray.__init__": [(), ('PySide2.QtCore.QJsonArray',)],
- "PySide2.QtCore.QJsonArray.__add__": ('PySide2.QtCore.QJsonValue',),
- "PySide2.QtCore.QJsonArray.__copy__": (),
- "PySide2.QtCore.QJsonArray.__iadd__": ('PySide2.QtCore.QJsonValue',),
- "PySide2.QtCore.QJsonArray.__lshift__": ('PySide2.QtCore.QJsonValue',),
- "PySide2.QtCore.QJsonArray.append": ('PySide2.QtCore.QJsonValue',),
- "PySide2.QtCore.QJsonArray.at": ('int',),
- "PySide2.QtCore.QJsonArray.contains": ('PySide2.QtCore.QJsonValue',),
- "PySide2.QtCore.QJsonArray.count": (),
- "PySide2.QtCore.QJsonArray.empty": (),
- "PySide2.QtCore.QJsonArray.first": (),
- "PySide2.QtCore.QJsonArray.fromStringList": ('typing.Sequence',),
- "PySide2.QtCore.QJsonArray.fromVariantList": ('typing.Sequence',),
- "PySide2.QtCore.QJsonArray.insert": ('int', 'PySide2.QtCore.QJsonValue'),
- "PySide2.QtCore.QJsonArray.isEmpty": (),
- "PySide2.QtCore.QJsonArray.last": (),
- "PySide2.QtCore.QJsonArray.pop_back": (),
- "PySide2.QtCore.QJsonArray.pop_front": (),
- "PySide2.QtCore.QJsonArray.prepend": ('PySide2.QtCore.QJsonValue',),
- "PySide2.QtCore.QJsonArray.push_back": ('PySide2.QtCore.QJsonValue',),
- "PySide2.QtCore.QJsonArray.push_front": ('PySide2.QtCore.QJsonValue',),
- "PySide2.QtCore.QJsonArray.removeAt": ('int',),
- "PySide2.QtCore.QJsonArray.removeFirst": (),
- "PySide2.QtCore.QJsonArray.removeLast": (),
- "PySide2.QtCore.QJsonArray.replace": ('int', 'PySide2.QtCore.QJsonValue'),
- "PySide2.QtCore.QJsonArray.size": (),
- "PySide2.QtCore.QJsonArray.swap": ('PySide2.QtCore.QJsonArray',),
- "PySide2.QtCore.QJsonArray.takeAt": ('int',),
- "PySide2.QtCore.QJsonArray.toVariantList": (),
-# class PySide2.QtCore.QJsonDocument:
-# class PySide2.QtCore.QJsonDocument.DataValidation:
-# class PySide2.QtCore.QJsonDocument.JsonFormat:
- "PySide2.QtCore.QJsonDocument.__init__": [(), ('PySide2.QtCore.QJsonArray',), ('PySide2.QtCore.QJsonDocument',), ('typing.Dict',)],
- "PySide2.QtCore.QJsonDocument.__copy__": (),
- "PySide2.QtCore.QJsonDocument.array": (),
- "PySide2.QtCore.QJsonDocument.fromBinaryData": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QJsonDocument.DataValidation'),
- "PySide2.QtCore.QJsonDocument.fromJson": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QJsonParseError'),
- "PySide2.QtCore.QJsonDocument.fromRawData": ('bytes', 'int', 'PySide2.QtCore.QJsonDocument.DataValidation'),
- "PySide2.QtCore.QJsonDocument.fromVariant": ('typing.Any',),
- "PySide2.QtCore.QJsonDocument.isArray": (),
- "PySide2.QtCore.QJsonDocument.isEmpty": (),
- "PySide2.QtCore.QJsonDocument.isNull": (),
- "PySide2.QtCore.QJsonDocument.isObject": (),
- "PySide2.QtCore.QJsonDocument.object": (),
- "PySide2.QtCore.QJsonDocument.rawData": (),
- "PySide2.QtCore.QJsonDocument.setArray": ('PySide2.QtCore.QJsonArray',),
- "PySide2.QtCore.QJsonDocument.setObject": ('typing.Dict',),
- "PySide2.QtCore.QJsonDocument.swap": ('PySide2.QtCore.QJsonDocument',),
- "PySide2.QtCore.QJsonDocument.toBinaryData": (),
- "PySide2.QtCore.QJsonDocument.toJson": [(), ('PySide2.QtCore.QJsonDocument.JsonFormat',)],
- "PySide2.QtCore.QJsonDocument.toVariant": (),
-# class PySide2.QtCore.QJsonParseError:
-# class PySide2.QtCore.QJsonParseError.ParseError:
- "PySide2.QtCore.QJsonParseError.__init__": [(), ('PySide2.QtCore.QJsonParseError',)],
- "PySide2.QtCore.QJsonParseError.__copy__": (),
- "PySide2.QtCore.QJsonParseError.errorString": (),
-# class PySide2.QtCore.QJsonValue:
-# class PySide2.QtCore.QJsonValue.Type:
- "PySide2.QtCore.QJsonValue.__init__": [('PySide2.QtCore.QJsonArray',), ('PySide2.QtCore.QJsonValue',), ('PySide2.QtCore.QJsonValue.Type',), ('bool',), ('bytes',), ('float',), ('int',), ('str',), ('typing.Dict',)],
- "PySide2.QtCore.QJsonValue.__copy__": (),
- "PySide2.QtCore.QJsonValue.fromVariant": ('typing.Any',),
- "PySide2.QtCore.QJsonValue.isArray": (),
- "PySide2.QtCore.QJsonValue.isBool": (),
- "PySide2.QtCore.QJsonValue.isDouble": (),
- "PySide2.QtCore.QJsonValue.isNull": (),
- "PySide2.QtCore.QJsonValue.isObject": (),
- "PySide2.QtCore.QJsonValue.isString": (),
- "PySide2.QtCore.QJsonValue.isUndefined": (),
- "PySide2.QtCore.QJsonValue.swap": ('PySide2.QtCore.QJsonValue',),
- "PySide2.QtCore.QJsonValue.toArray": [(), ('PySide2.QtCore.QJsonArray',)],
- "PySide2.QtCore.QJsonValue.toBool": ('bool',),
- "PySide2.QtCore.QJsonValue.toDouble": ('float',),
- "PySide2.QtCore.QJsonValue.toInt": ('int',),
- "PySide2.QtCore.QJsonValue.toObject": [(), ('typing.Dict',)],
- "PySide2.QtCore.QJsonValue.toString": [(), ('str',)],
- "PySide2.QtCore.QJsonValue.toVariant": (),
- "PySide2.QtCore.QJsonValue.type": (),
-# class PySide2.QtCore.QLibraryInfo:
-# class PySide2.QtCore.QLibraryInfo.LibraryLocation:
- "PySide2.QtCore.QLibraryInfo.build": (),
- "PySide2.QtCore.QLibraryInfo.buildDate": (),
- "PySide2.QtCore.QLibraryInfo.isDebugBuild": (),
- "PySide2.QtCore.QLibraryInfo.licensedProducts": (),
- "PySide2.QtCore.QLibraryInfo.licensee": (),
- "PySide2.QtCore.QLibraryInfo.location": ('PySide2.QtCore.QLibraryInfo.LibraryLocation',),
- "PySide2.QtCore.QLibraryInfo.platformPluginArguments": ('str',),
- "PySide2.QtCore.QLibraryInfo.version": (),
-# class PySide2.QtCore.QLine:
- "PySide2.QtCore.QLine.__init__": [(), ('PySide2.QtCore.QLine',), ('PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint'), ('int', 'int', 'int', 'int')],
- "PySide2.QtCore.QLine.__copy__": (),
- "PySide2.QtCore.QLine.__reduce__": (),
- "PySide2.QtCore.QLine.__repr__": (),
- "PySide2.QtCore.QLine.center": (),
- "PySide2.QtCore.QLine.dx": (),
- "PySide2.QtCore.QLine.dy": (),
- "PySide2.QtCore.QLine.isNull": (),
- "PySide2.QtCore.QLine.p1": (),
- "PySide2.QtCore.QLine.p2": (),
- "PySide2.QtCore.QLine.setLine": ('int', 'int', 'int', 'int'),
- "PySide2.QtCore.QLine.setP1": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QLine.setP2": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QLine.setPoints": ('PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint'),
- "PySide2.QtCore.QLine.toTuple": (),
- "PySide2.QtCore.QLine.translate": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtCore.QLine.translated": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtCore.QLine.x1": (),
- "PySide2.QtCore.QLine.x2": (),
- "PySide2.QtCore.QLine.y1": (),
- "PySide2.QtCore.QLine.y2": (),
-# class PySide2.QtCore.QLineF:
-# class PySide2.QtCore.QLineF.IntersectType:
- "PySide2.QtCore.QLineF.__init__": [(), ('PySide2.QtCore.QLine',), ('PySide2.QtCore.QLineF',), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'), ('float', 'float', 'float', 'float')],
- "PySide2.QtCore.QLineF.__copy__": (),
- "PySide2.QtCore.QLineF.__reduce__": (),
- "PySide2.QtCore.QLineF.__repr__": (),
- "PySide2.QtCore.QLineF.angle": [(), ('PySide2.QtCore.QLineF',)],
- "PySide2.QtCore.QLineF.angleTo": ('PySide2.QtCore.QLineF',),
- "PySide2.QtCore.QLineF.center": (),
- "PySide2.QtCore.QLineF.dx": (),
- "PySide2.QtCore.QLineF.dy": (),
- "PySide2.QtCore.QLineF.fromPolar": ('float', 'float'),
- "PySide2.QtCore.QLineF.intersect": ('PySide2.QtCore.QLineF', 'PySide2.QtCore.QPointF'),
- "PySide2.QtCore.QLineF.intersects": ('PySide2.QtCore.QLineF', 'PySide2.QtCore.QPointF'),
- "PySide2.QtCore.QLineF.isNull": (),
- "PySide2.QtCore.QLineF.length": (),
- "PySide2.QtCore.QLineF.normalVector": (),
- "PySide2.QtCore.QLineF.p1": (),
- "PySide2.QtCore.QLineF.p2": (),
- "PySide2.QtCore.QLineF.pointAt": ('float',),
- "PySide2.QtCore.QLineF.setAngle": ('float',),
- "PySide2.QtCore.QLineF.setLength": ('float',),
- "PySide2.QtCore.QLineF.setLine": ('float', 'float', 'float', 'float'),
- "PySide2.QtCore.QLineF.setP1": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QLineF.setP2": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QLineF.setPoints": ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'),
- "PySide2.QtCore.QLineF.toLine": (),
- "PySide2.QtCore.QLineF.toTuple": (),
- "PySide2.QtCore.QLineF.translate": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtCore.QLineF.translated": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtCore.QLineF.unitVector": (),
- "PySide2.QtCore.QLineF.x1": (),
- "PySide2.QtCore.QLineF.x2": (),
- "PySide2.QtCore.QLineF.y1": (),
- "PySide2.QtCore.QLineF.y2": (),
-# class PySide2.QtCore.QLocale:
-# class PySide2.QtCore.QLocale.Country:
-# class PySide2.QtCore.QLocale.CurrencySymbolFormat:
-# class PySide2.QtCore.QLocale.DataSizeFormat:
-# class PySide2.QtCore.QLocale.DataSizeFormats:
-# class PySide2.QtCore.QLocale.FloatingPointPrecisionOption:
-# class PySide2.QtCore.QLocale.FormatType:
-# class PySide2.QtCore.QLocale.Language:
-# class PySide2.QtCore.QLocale.MeasurementSystem:
-# class PySide2.QtCore.QLocale.NumberOption:
-# class PySide2.QtCore.QLocale.NumberOptions:
-# class PySide2.QtCore.QLocale.QuotationStyle:
-# class PySide2.QtCore.QLocale.Script:
- "PySide2.QtCore.QLocale.__init__": [(), ('PySide2.QtCore.QLocale',), ('PySide2.QtCore.QLocale.Language', 'PySide2.QtCore.QLocale.Country'), ('PySide2.QtCore.QLocale.Language', 'PySide2.QtCore.QLocale.Script', 'PySide2.QtCore.QLocale.Country'), ('str',)],
- "PySide2.QtCore.QLocale.__copy__": (),
- "PySide2.QtCore.QLocale.amText": (),
- "PySide2.QtCore.QLocale.bcp47Name": (),
- "PySide2.QtCore.QLocale.c": (),
- "PySide2.QtCore.QLocale.collation": (),
- "PySide2.QtCore.QLocale.countriesForLanguage": ('PySide2.QtCore.QLocale.Language',),
- "PySide2.QtCore.QLocale.country": (),
- "PySide2.QtCore.QLocale.countryToString": ('PySide2.QtCore.QLocale.Country',),
- "PySide2.QtCore.QLocale.createSeparatedList": ('typing.Sequence',),
- "PySide2.QtCore.QLocale.currencySymbol": ('PySide2.QtCore.QLocale.CurrencySymbolFormat',),
- "PySide2.QtCore.QLocale.dateFormat": ('PySide2.QtCore.QLocale.FormatType',),
- "PySide2.QtCore.QLocale.dateTimeFormat": ('PySide2.QtCore.QLocale.FormatType',),
- "PySide2.QtCore.QLocale.dayName": ('int', 'PySide2.QtCore.QLocale.FormatType'),
- "PySide2.QtCore.QLocale.decimalPoint": (),
- "PySide2.QtCore.QLocale.exponential": (),
- "PySide2.QtCore.QLocale.firstDayOfWeek": (),
- "PySide2.QtCore.QLocale.formattedDataSize": ('int', 'int', 'PySide2.QtCore.QLocale.DataSizeFormats'),
- "PySide2.QtCore.QLocale.groupSeparator": (),
- "PySide2.QtCore.QLocale.language": (),
- "PySide2.QtCore.QLocale.languageToString": ('PySide2.QtCore.QLocale.Language',),
- "PySide2.QtCore.QLocale.matchingLocales": ('PySide2.QtCore.QLocale.Language', 'PySide2.QtCore.QLocale.Script', 'PySide2.QtCore.QLocale.Country'),
- "PySide2.QtCore.QLocale.measurementSystem": (),
- "PySide2.QtCore.QLocale.monthName": ('int', 'PySide2.QtCore.QLocale.FormatType'),
- "PySide2.QtCore.QLocale.name": (),
- "PySide2.QtCore.QLocale.nativeCountryName": (),
- "PySide2.QtCore.QLocale.nativeLanguageName": (),
- "PySide2.QtCore.QLocale.negativeSign": (),
- "PySide2.QtCore.QLocale.numberOptions": (),
- "PySide2.QtCore.QLocale.percent": (),
- "PySide2.QtCore.QLocale.pmText": (),
- "PySide2.QtCore.QLocale.positiveSign": (),
- "PySide2.QtCore.QLocale.quoteString": ('str', 'PySide2.QtCore.QLocale.QuotationStyle'),
- "PySide2.QtCore.QLocale.script": (),
- "PySide2.QtCore.QLocale.scriptToString": ('PySide2.QtCore.QLocale.Script',),
- "PySide2.QtCore.QLocale.setDefault": ('PySide2.QtCore.QLocale',),
- "PySide2.QtCore.QLocale.setNumberOptions": ('PySide2.QtCore.QLocale.NumberOptions',),
- "PySide2.QtCore.QLocale.standaloneDayName": ('int', 'PySide2.QtCore.QLocale.FormatType'),
- "PySide2.QtCore.QLocale.standaloneMonthName": ('int', 'PySide2.QtCore.QLocale.FormatType'),
- "PySide2.QtCore.QLocale.swap": ('PySide2.QtCore.QLocale',),
- "PySide2.QtCore.QLocale.system": (),
- "PySide2.QtCore.QLocale.textDirection": (),
- "PySide2.QtCore.QLocale.timeFormat": ('PySide2.QtCore.QLocale.FormatType',),
- "PySide2.QtCore.QLocale.toCurrencyString": [('float', 'str'), ('float', 'str', 'int'), ('int', 'str')],
- "PySide2.QtCore.QLocale.toDate": [('str', 'PySide2.QtCore.QLocale.FormatType'), ('str', 'PySide2.QtCore.QLocale.FormatType', 'PySide2.QtCore.QCalendar'), ('str', 'str'), ('str', 'str', 'PySide2.QtCore.QCalendar')],
- "PySide2.QtCore.QLocale.toDateTime": [('str', 'PySide2.QtCore.QLocale.FormatType'), ('str', 'PySide2.QtCore.QLocale.FormatType', 'PySide2.QtCore.QCalendar'), ('str', 'str'), ('str', 'str', 'PySide2.QtCore.QCalendar')],
- "PySide2.QtCore.QLocale.toDouble": ('str',),
- "PySide2.QtCore.QLocale.toFloat": ('str',),
- "PySide2.QtCore.QLocale.toInt": ('str',),
- "PySide2.QtCore.QLocale.toLong": ('str',),
- "PySide2.QtCore.QLocale.toLongLong": ('str',),
- "PySide2.QtCore.QLocale.toLower": ('str',),
- "PySide2.QtCore.QLocale.toShort": ('str',),
- "PySide2.QtCore.QLocale.toString": [('PySide2.QtCore.QDate', 'PySide2.QtCore.QLocale.FormatType'), ('PySide2.QtCore.QDate', 'PySide2.QtCore.QLocale.FormatType', 'PySide2.QtCore.QCalendar'), ('PySide2.QtCore.QDate', 'str'), ('PySide2.QtCore.QDateTime', 'PySide2.QtCore.QLocale.FormatType'), ('PySide2.QtCore.QDateTime', 'PySide2.QtCore.QLocale.FormatType', 'PySide2.QtCore.QCalendar'), ('PySide2.QtCore.QDateTime', 'str'), ('PySide2.QtCore.QTime', 'PySide2.QtCore.QLocale.FormatType'), ('PySide2.QtCore.QTime', 'str'), ('float', 'int', 'int'), ('int',)],
- "PySide2.QtCore.QLocale.toTime": [('str', 'PySide2.QtCore.QLocale.FormatType'), ('str', 'PySide2.QtCore.QLocale.FormatType', 'PySide2.QtCore.QCalendar'), ('str', 'str'), ('str', 'str', 'PySide2.QtCore.QCalendar')],
- "PySide2.QtCore.QLocale.toUInt": ('str',),
- "PySide2.QtCore.QLocale.toULong": ('str',),
- "PySide2.QtCore.QLocale.toULongLong": ('str',),
- "PySide2.QtCore.QLocale.toUShort": ('str',),
- "PySide2.QtCore.QLocale.toUpper": ('str',),
- "PySide2.QtCore.QLocale.uiLanguages": (),
- "PySide2.QtCore.QLocale.weekdays": (),
- "PySide2.QtCore.QLocale.zeroDigit": (),
-# class PySide2.QtCore.QLockFile:
-# class PySide2.QtCore.QLockFile.LockError:
- "PySide2.QtCore.QLockFile.__init__": ('str',),
- "PySide2.QtCore.QLockFile.error": (),
- "PySide2.QtCore.QLockFile.getLockInfo": (),
- "PySide2.QtCore.QLockFile.isLocked": (),
- "PySide2.QtCore.QLockFile.lock": (),
- "PySide2.QtCore.QLockFile.removeStaleLockFile": (),
- "PySide2.QtCore.QLockFile.setStaleLockTime": ('int',),
- "PySide2.QtCore.QLockFile.staleLockTime": (),
- "PySide2.QtCore.QLockFile.tryLock": ('int',),
- "PySide2.QtCore.QLockFile.unlock": (),
-# class PySide2.QtCore.QMargins:
- "PySide2.QtCore.QMargins.__init__": [(), ('PySide2.QtCore.QMargins',), ('int', 'int', 'int', 'int')],
- "PySide2.QtCore.QMargins.__add__": [('PySide2.QtCore.QMargins',), ('int',)],
- "PySide2.QtCore.QMargins.__copy__": (),
- "PySide2.QtCore.QMargins.__iadd__": [('PySide2.QtCore.QMargins',), ('int',)],
- "PySide2.QtCore.QMargins.__imul__": [('float',), ('int',)],
- "PySide2.QtCore.QMargins.__isub__": [('PySide2.QtCore.QMargins',), ('int',)],
- "PySide2.QtCore.QMargins.__mul__": [('float',), ('int',)],
- "PySide2.QtCore.QMargins.__neg__": (),
- "PySide2.QtCore.QMargins.__pos__": (),
- "PySide2.QtCore.QMargins.__sub__": [('PySide2.QtCore.QMargins',), ('int',)],
- "PySide2.QtCore.QMargins.bottom": (),
- "PySide2.QtCore.QMargins.isNull": (),
- "PySide2.QtCore.QMargins.left": (),
- "PySide2.QtCore.QMargins.right": (),
- "PySide2.QtCore.QMargins.setBottom": ('int',),
- "PySide2.QtCore.QMargins.setLeft": ('int',),
- "PySide2.QtCore.QMargins.setRight": ('int',),
- "PySide2.QtCore.QMargins.setTop": ('int',),
- "PySide2.QtCore.QMargins.top": (),
-# class PySide2.QtCore.QMarginsF:
- "PySide2.QtCore.QMarginsF.__init__": [(), ('PySide2.QtCore.QMargins',), ('PySide2.QtCore.QMarginsF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtCore.QMarginsF.__add__": [('PySide2.QtCore.QMarginsF',), ('float',)],
- "PySide2.QtCore.QMarginsF.__copy__": (),
- "PySide2.QtCore.QMarginsF.__iadd__": [('PySide2.QtCore.QMarginsF',), ('float',)],
- "PySide2.QtCore.QMarginsF.__imul__": ('float',),
- "PySide2.QtCore.QMarginsF.__isub__": [('PySide2.QtCore.QMarginsF',), ('float',)],
- "PySide2.QtCore.QMarginsF.__mul__": ('float',),
- "PySide2.QtCore.QMarginsF.__neg__": (),
- "PySide2.QtCore.QMarginsF.__pos__": (),
- "PySide2.QtCore.QMarginsF.__sub__": [('PySide2.QtCore.QMarginsF',), ('float',)],
- "PySide2.QtCore.QMarginsF.bottom": (),
- "PySide2.QtCore.QMarginsF.isNull": (),
- "PySide2.QtCore.QMarginsF.left": (),
- "PySide2.QtCore.QMarginsF.right": (),
- "PySide2.QtCore.QMarginsF.setBottom": ('float',),
- "PySide2.QtCore.QMarginsF.setLeft": ('float',),
- "PySide2.QtCore.QMarginsF.setRight": ('float',),
- "PySide2.QtCore.QMarginsF.setTop": ('float',),
- "PySide2.QtCore.QMarginsF.toMargins": (),
- "PySide2.QtCore.QMarginsF.top": (),
-# class PySide2.QtCore.QMessageAuthenticationCode:
- "PySide2.QtCore.QMessageAuthenticationCode.__init__": ('PySide2.QtCore.QCryptographicHash.Algorithm', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtCore.QMessageAuthenticationCode.addData": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QIODevice',), ('bytes', 'int')],
- "PySide2.QtCore.QMessageAuthenticationCode.hash": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray', 'PySide2.QtCore.QCryptographicHash.Algorithm'),
- "PySide2.QtCore.QMessageAuthenticationCode.reset": (),
- "PySide2.QtCore.QMessageAuthenticationCode.result": (),
- "PySide2.QtCore.QMessageAuthenticationCode.setKey": ('PySide2.QtCore.QByteArray',),
-# class PySide2.QtCore.QMessageLogContext:
- "PySide2.QtCore.QMessageLogContext.__init__": [(), ('bytes', 'int', 'bytes', 'bytes')],
-# class PySide2.QtCore.QMetaClassInfo:
- "PySide2.QtCore.QMetaClassInfo.__init__": [(), ('PySide2.QtCore.QMetaClassInfo',)],
- "PySide2.QtCore.QMetaClassInfo.__copy__": (),
- "PySide2.QtCore.QMetaClassInfo.name": (),
- "PySide2.QtCore.QMetaClassInfo.value": (),
-# class PySide2.QtCore.QMetaEnum:
- "PySide2.QtCore.QMetaEnum.__init__": [(), ('PySide2.QtCore.QMetaEnum',)],
- "PySide2.QtCore.QMetaEnum.__copy__": (),
- "PySide2.QtCore.QMetaEnum.enumName": (),
- "PySide2.QtCore.QMetaEnum.isFlag": (),
- "PySide2.QtCore.QMetaEnum.isScoped": (),
- "PySide2.QtCore.QMetaEnum.isValid": (),
- "PySide2.QtCore.QMetaEnum.key": ('int',),
- "PySide2.QtCore.QMetaEnum.keyCount": (),
- "PySide2.QtCore.QMetaEnum.keyToValue": ('bytes',),
- "PySide2.QtCore.QMetaEnum.keysToValue": ('bytes',),
- "PySide2.QtCore.QMetaEnum.name": (),
- "PySide2.QtCore.QMetaEnum.scope": (),
- "PySide2.QtCore.QMetaEnum.value": ('int',),
- "PySide2.QtCore.QMetaEnum.valueToKey": ('int',),
- "PySide2.QtCore.QMetaEnum.valueToKeys": ('int',),
-# class PySide2.QtCore.QMetaMethod:
-# class PySide2.QtCore.QMetaMethod.Access:
-# class PySide2.QtCore.QMetaMethod.MethodType:
- "PySide2.QtCore.QMetaMethod.__init__": [(), ('PySide2.QtCore.QMetaMethod',)],
- "PySide2.QtCore.QMetaMethod.__copy__": (),
- "PySide2.QtCore.QMetaMethod.access": (),
- "PySide2.QtCore.QMetaMethod.enclosingMetaObject": (),
- "PySide2.QtCore.QMetaMethod.invoke": [('PySide2.QtCore.QObject', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument'), ('PySide2.QtCore.QObject', 'PySide2.QtCore.QGenericReturnArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument'), ('PySide2.QtCore.QObject', 'PySide2.QtCore.Qt.ConnectionType', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument'), ('PySide2.QtCore.QObject', 'PySide2.QtCore.Qt.ConnectionType', 'PySide2.QtCore.QGenericReturnArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument')],
- "PySide2.QtCore.QMetaMethod.invokeOnGadget": [('int', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument'), ('int', 'PySide2.QtCore.QGenericReturnArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument')],
- "PySide2.QtCore.QMetaMethod.isValid": (),
- "PySide2.QtCore.QMetaMethod.methodIndex": (),
- "PySide2.QtCore.QMetaMethod.methodSignature": (),
- "PySide2.QtCore.QMetaMethod.methodType": (),
- "PySide2.QtCore.QMetaMethod.name": (),
- "PySide2.QtCore.QMetaMethod.parameterCount": (),
- "PySide2.QtCore.QMetaMethod.parameterNames": (),
- "PySide2.QtCore.QMetaMethod.parameterType": ('int',),
- "PySide2.QtCore.QMetaMethod.parameterTypes": (),
- "PySide2.QtCore.QMetaMethod.returnType": (),
- "PySide2.QtCore.QMetaMethod.revision": (),
- "PySide2.QtCore.QMetaMethod.tag": (),
- "PySide2.QtCore.QMetaMethod.typeName": (),
-# class PySide2.QtCore.QMetaObject:
-# class PySide2.QtCore.QMetaObject.Call:
-# class PySide2.QtCore.QMetaObject.Connection:
- "PySide2.QtCore.QMetaObject.Connection.__init__": [(), ('PySide2.QtCore.QMetaObject.Connection',)],
- "PySide2.QtCore.QMetaObject.__init__": (),
- "PySide2.QtCore.QMetaObject.cast": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QMetaObject.checkConnectArgs": [('PySide2.QtCore.QMetaMethod', 'PySide2.QtCore.QMetaMethod'), ('bytes', 'bytes')],
- "PySide2.QtCore.QMetaObject.classInfo": ('int',),
- "PySide2.QtCore.QMetaObject.classInfoCount": (),
- "PySide2.QtCore.QMetaObject.classInfoOffset": (),
- "PySide2.QtCore.QMetaObject.className": (),
- "PySide2.QtCore.QMetaObject.connectSlotsByName": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QMetaObject.constructor": ('int',),
- "PySide2.QtCore.QMetaObject.constructorCount": (),
- "PySide2.QtCore.QMetaObject.disconnect": ('PySide2.QtCore.QObject', 'int', 'PySide2.QtCore.QObject', 'int'),
- "PySide2.QtCore.QMetaObject.disconnectOne": ('PySide2.QtCore.QObject', 'int', 'PySide2.QtCore.QObject', 'int'),
- "PySide2.QtCore.QMetaObject.enumerator": ('int',),
- "PySide2.QtCore.QMetaObject.enumeratorCount": (),
- "PySide2.QtCore.QMetaObject.enumeratorOffset": (),
- "PySide2.QtCore.QMetaObject.indexOfClassInfo": ('bytes',),
- "PySide2.QtCore.QMetaObject.indexOfConstructor": ('bytes',),
- "PySide2.QtCore.QMetaObject.indexOfEnumerator": ('bytes',),
- "PySide2.QtCore.QMetaObject.indexOfMethod": ('bytes',),
- "PySide2.QtCore.QMetaObject.indexOfProperty": ('bytes',),
- "PySide2.QtCore.QMetaObject.indexOfSignal": ('bytes',),
- "PySide2.QtCore.QMetaObject.indexOfSlot": ('bytes',),
- "PySide2.QtCore.QMetaObject.inherits": ('PySide2.QtCore.QMetaObject',),
- "PySide2.QtCore.QMetaObject.invokeMethod": [('PySide2.QtCore.QObject', 'bytes', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument'), ('PySide2.QtCore.QObject', 'bytes', 'PySide2.QtCore.QGenericReturnArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument'), ('PySide2.QtCore.QObject', 'bytes', 'PySide2.QtCore.Qt.ConnectionType', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument'), ('PySide2.QtCore.QObject', 'bytes', 'PySide2.QtCore.Qt.ConnectionType', 'PySide2.QtCore.QGenericReturnArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument')],
- "PySide2.QtCore.QMetaObject.method": ('int',),
- "PySide2.QtCore.QMetaObject.methodCount": (),
- "PySide2.QtCore.QMetaObject.methodOffset": (),
- "PySide2.QtCore.QMetaObject.newInstance": ('PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument'),
- "PySide2.QtCore.QMetaObject.normalizedSignature": ('bytes',),
- "PySide2.QtCore.QMetaObject.normalizedType": ('bytes',),
- "PySide2.QtCore.QMetaObject.property": ('int',),
- "PySide2.QtCore.QMetaObject.propertyCount": (),
- "PySide2.QtCore.QMetaObject.propertyOffset": (),
- "PySide2.QtCore.QMetaObject.superClass": (),
- "PySide2.QtCore.QMetaObject.userProperty": (),
-# class PySide2.QtCore.QMetaProperty:
- "PySide2.QtCore.QMetaProperty.__init__": [(), ('PySide2.QtCore.QMetaProperty',)],
- "PySide2.QtCore.QMetaProperty.__copy__": (),
- "PySide2.QtCore.QMetaProperty.enumerator": (),
- "PySide2.QtCore.QMetaProperty.hasNotifySignal": (),
- "PySide2.QtCore.QMetaProperty.hasStdCppSet": (),
- "PySide2.QtCore.QMetaProperty.isConstant": (),
- "PySide2.QtCore.QMetaProperty.isDesignable": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QMetaProperty.isEditable": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QMetaProperty.isEnumType": (),
- "PySide2.QtCore.QMetaProperty.isFinal": (),
- "PySide2.QtCore.QMetaProperty.isFlagType": (),
- "PySide2.QtCore.QMetaProperty.isReadable": (),
- "PySide2.QtCore.QMetaProperty.isResettable": (),
- "PySide2.QtCore.QMetaProperty.isScriptable": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QMetaProperty.isStored": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QMetaProperty.isUser": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QMetaProperty.isValid": (),
- "PySide2.QtCore.QMetaProperty.isWritable": (),
- "PySide2.QtCore.QMetaProperty.name": (),
- "PySide2.QtCore.QMetaProperty.notifySignal": (),
- "PySide2.QtCore.QMetaProperty.notifySignalIndex": (),
- "PySide2.QtCore.QMetaProperty.propertyIndex": (),
- "PySide2.QtCore.QMetaProperty.read": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QMetaProperty.readOnGadget": ('int',),
- "PySide2.QtCore.QMetaProperty.relativePropertyIndex": (),
- "PySide2.QtCore.QMetaProperty.reset": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QMetaProperty.resetOnGadget": ('int',),
- "PySide2.QtCore.QMetaProperty.revision": (),
- "PySide2.QtCore.QMetaProperty.type": (),
- "PySide2.QtCore.QMetaProperty.typeName": (),
- "PySide2.QtCore.QMetaProperty.userType": (),
- "PySide2.QtCore.QMetaProperty.write": ('PySide2.QtCore.QObject', 'typing.Any'),
- "PySide2.QtCore.QMetaProperty.writeOnGadget": ('int', 'typing.Any'),
-# class PySide2.QtCore.QMimeData:
- "PySide2.QtCore.QMimeData.__init__": (),
- "PySide2.QtCore.QMimeData.clear": (),
- "PySide2.QtCore.QMimeData.colorData": (),
- "PySide2.QtCore.QMimeData.data": ('str',),
- "PySide2.QtCore.QMimeData.formats": (),
- "PySide2.QtCore.QMimeData.hasColor": (),
- "PySide2.QtCore.QMimeData.hasFormat": ('str',),
- "PySide2.QtCore.QMimeData.hasHtml": (),
- "PySide2.QtCore.QMimeData.hasImage": (),
- "PySide2.QtCore.QMimeData.hasText": (),
- "PySide2.QtCore.QMimeData.hasUrls": (),
- "PySide2.QtCore.QMimeData.html": (),
- "PySide2.QtCore.QMimeData.imageData": (),
- "PySide2.QtCore.QMimeData.removeFormat": ('str',),
- "PySide2.QtCore.QMimeData.retrieveData": ('str', 'type'),
- "PySide2.QtCore.QMimeData.setColorData": ('typing.Any',),
- "PySide2.QtCore.QMimeData.setData": ('str', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtCore.QMimeData.setHtml": ('str',),
- "PySide2.QtCore.QMimeData.setImageData": ('typing.Any',),
- "PySide2.QtCore.QMimeData.setText": ('str',),
- "PySide2.QtCore.QMimeData.setUrls": ('typing.Sequence',),
- "PySide2.QtCore.QMimeData.text": (),
- "PySide2.QtCore.QMimeData.urls": (),
-# class PySide2.QtCore.QMimeDatabase:
-# class PySide2.QtCore.QMimeDatabase.MatchMode:
- "PySide2.QtCore.QMimeDatabase.__init__": (),
- "PySide2.QtCore.QMimeDatabase.allMimeTypes": (),
- "PySide2.QtCore.QMimeDatabase.mimeTypeForData": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QIODevice',)],
- "PySide2.QtCore.QMimeDatabase.mimeTypeForFile": [('PySide2.QtCore.QFileInfo', 'PySide2.QtCore.QMimeDatabase.MatchMode'), ('str', 'PySide2.QtCore.QMimeDatabase.MatchMode')],
- "PySide2.QtCore.QMimeDatabase.mimeTypeForFileNameAndData": [('str', 'PySide2.QtCore.QByteArray'), ('str', 'PySide2.QtCore.QIODevice')],
- "PySide2.QtCore.QMimeDatabase.mimeTypeForName": ('str',),
- "PySide2.QtCore.QMimeDatabase.mimeTypeForUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtCore.QMimeDatabase.mimeTypesForFileName": ('str',),
- "PySide2.QtCore.QMimeDatabase.suffixForFileName": ('str',),
-# class PySide2.QtCore.QMimeType:
- "PySide2.QtCore.QMimeType.__init__": [(), ('PySide2.QtCore.QMimeType',)],
- "PySide2.QtCore.QMimeType.__copy__": (),
- "PySide2.QtCore.QMimeType.aliases": (),
- "PySide2.QtCore.QMimeType.allAncestors": (),
- "PySide2.QtCore.QMimeType.comment": (),
- "PySide2.QtCore.QMimeType.filterString": (),
- "PySide2.QtCore.QMimeType.genericIconName": (),
- "PySide2.QtCore.QMimeType.globPatterns": (),
- "PySide2.QtCore.QMimeType.iconName": (),
- "PySide2.QtCore.QMimeType.inherits": ('str',),
- "PySide2.QtCore.QMimeType.isDefault": (),
- "PySide2.QtCore.QMimeType.isValid": (),
- "PySide2.QtCore.QMimeType.name": (),
- "PySide2.QtCore.QMimeType.parentMimeTypes": (),
- "PySide2.QtCore.QMimeType.preferredSuffix": (),
- "PySide2.QtCore.QMimeType.suffixes": (),
- "PySide2.QtCore.QMimeType.swap": ('PySide2.QtCore.QMimeType',),
-# class PySide2.QtCore.QModelIndex:
- "PySide2.QtCore.QModelIndex.__init__": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtCore.QModelIndex.__copy__": (),
- "PySide2.QtCore.QModelIndex.child": ('int', 'int'),
- "PySide2.QtCore.QModelIndex.column": (),
- "PySide2.QtCore.QModelIndex.data": ('int',),
- "PySide2.QtCore.QModelIndex.flags": (),
- "PySide2.QtCore.QModelIndex.internalId": (),
- "PySide2.QtCore.QModelIndex.internalPointer": (),
- "PySide2.QtCore.QModelIndex.isValid": (),
- "PySide2.QtCore.QModelIndex.model": (),
- "PySide2.QtCore.QModelIndex.parent": (),
- "PySide2.QtCore.QModelIndex.row": (),
- "PySide2.QtCore.QModelIndex.sibling": ('int', 'int'),
- "PySide2.QtCore.QModelIndex.siblingAtColumn": ('int',),
- "PySide2.QtCore.QModelIndex.siblingAtRow": ('int',),
-# class PySide2.QtCore.QMutex:
-# class PySide2.QtCore.QMutex.RecursionMode:
- "PySide2.QtCore.QMutex.__init__": [(), ('PySide2.QtCore.QMutex.RecursionMode',)],
- "PySide2.QtCore.QMutex.isRecursive": (),
- "PySide2.QtCore.QMutex.lock": (),
- "PySide2.QtCore.QMutex.tryLock": [(), ('int',)],
- "PySide2.QtCore.QMutex.try_lock": (),
- "PySide2.QtCore.QMutex.unlock": (),
-# class PySide2.QtCore.QMutexLocker:
- "PySide2.QtCore.QMutexLocker.__init__": [('PySide2.QtCore.QBasicMutex',), ('PySide2.QtCore.QRecursiveMutex',)],
- "PySide2.QtCore.QMutexLocker.__enter__": (),
- "PySide2.QtCore.QMutexLocker.__exit__": ('object', 'object', 'object'),
- "PySide2.QtCore.QMutexLocker.mutex": (),
- "PySide2.QtCore.QMutexLocker.relock": (),
- "PySide2.QtCore.QMutexLocker.unlock": (),
-# class PySide2.QtCore.QObject:
- "PySide2.QtCore.QObject.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QObject.blockSignals": ('bool',),
- "PySide2.QtCore.QObject.childEvent": ('PySide2.QtCore.QChildEvent',),
- "PySide2.QtCore.QObject.children": (),
- "PySide2.QtCore.QObject.connect": [('PySide2.QtCore.QObject', 'PySide2.QtCore.QMetaMethod', 'PySide2.QtCore.QObject', 'PySide2.QtCore.QMetaMethod', 'PySide2.QtCore.Qt.ConnectionType'), ('PySide2.QtCore.QObject', 'bytes', 'PySide2.QtCore.QObject', 'bytes', 'PySide2.QtCore.Qt.ConnectionType'), ('PySide2.QtCore.QObject', 'bytes', 'bytes', 'PySide2.QtCore.Qt.ConnectionType'), ('PySide2.QtCore.QObject', 'bytes', 'typing.Callable', 'PySide2.QtCore.Qt.ConnectionType'), ('bytes', 'PySide2.QtCore.QObject', 'bytes', 'PySide2.QtCore.Qt.ConnectionType'), ('bytes', 'typing.Callable', 'PySide2.QtCore.Qt.ConnectionType')],
- "PySide2.QtCore.QObject.connectNotify": ('PySide2.QtCore.QMetaMethod',),
- "PySide2.QtCore.QObject.customEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QObject.deleteLater": (),
- "PySide2.QtCore.QObject.disconnect": [('PySide2.QtCore.QMetaObject.Connection',), ('PySide2.QtCore.QObject', 'PySide2.QtCore.QMetaMethod', 'PySide2.QtCore.QObject', 'PySide2.QtCore.QMetaMethod'), ('PySide2.QtCore.QObject', 'bytes'), ('PySide2.QtCore.QObject', 'bytes', 'PySide2.QtCore.QObject', 'bytes'), ('PySide2.QtCore.QObject', 'bytes', 'typing.Callable'), ('bytes', 'PySide2.QtCore.QObject', 'bytes'), ('bytes', 'typing.Callable')],
- "PySide2.QtCore.QObject.disconnectNotify": ('PySide2.QtCore.QMetaMethod',),
- "PySide2.QtCore.QObject.dumpObjectInfo": (),
- "PySide2.QtCore.QObject.dumpObjectTree": (),
- "PySide2.QtCore.QObject.dynamicPropertyNames": (),
- "PySide2.QtCore.QObject.emit": ('bytes', 'None'),
- "PySide2.QtCore.QObject.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QObject.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtCore.QObject.findChild": ('type', 'str'),
- "PySide2.QtCore.QObject.findChildren": [('type', 'PySide2.QtCore.QRegExp'), ('type', 'str')],
- "PySide2.QtCore.QObject.inherits": ('bytes',),
- "PySide2.QtCore.QObject.installEventFilter": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QObject.isSignalConnected": ('PySide2.QtCore.QMetaMethod',),
- "PySide2.QtCore.QObject.isWidgetType": (),
- "PySide2.QtCore.QObject.isWindowType": (),
- "PySide2.QtCore.QObject.killTimer": ('int',),
- "PySide2.QtCore.QObject.metaObject": (),
- "PySide2.QtCore.QObject.moveToThread": ('PySide2.QtCore.QThread',),
- "PySide2.QtCore.QObject.objectName": (),
- "PySide2.QtCore.QObject.parent": (),
- "PySide2.QtCore.QObject.property": ('bytes',),
- "PySide2.QtCore.QObject.receivers": ('bytes',),
- "PySide2.QtCore.QObject.registerUserData": (),
- "PySide2.QtCore.QObject.removeEventFilter": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QObject.sender": (),
- "PySide2.QtCore.QObject.senderSignalIndex": (),
- "PySide2.QtCore.QObject.setObjectName": ('str',),
- "PySide2.QtCore.QObject.setParent": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QObject.setProperty": ('bytes', 'typing.Any'),
- "PySide2.QtCore.QObject.signalsBlocked": (),
- "PySide2.QtCore.QObject.startTimer": ('int', 'PySide2.QtCore.Qt.TimerType'),
- "PySide2.QtCore.QObject.thread": (),
- "PySide2.QtCore.QObject.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtCore.QObject.tr": ('bytes', 'bytes', 'int'),
-# class PySide2.QtCore.QOperatingSystemVersion:
-# class PySide2.QtCore.QOperatingSystemVersion.OSType:
- "PySide2.QtCore.QOperatingSystemVersion.__init__": [('PySide2.QtCore.QOperatingSystemVersion',), ('PySide2.QtCore.QOperatingSystemVersion.OSType', 'int', 'int', 'int')],
- "PySide2.QtCore.QOperatingSystemVersion.__copy__": (),
- "PySide2.QtCore.QOperatingSystemVersion.current": (),
- "PySide2.QtCore.QOperatingSystemVersion.currentType": (),
- "PySide2.QtCore.QOperatingSystemVersion.majorVersion": (),
- "PySide2.QtCore.QOperatingSystemVersion.microVersion": (),
- "PySide2.QtCore.QOperatingSystemVersion.minorVersion": (),
- "PySide2.QtCore.QOperatingSystemVersion.name": (),
- "PySide2.QtCore.QOperatingSystemVersion.segmentCount": (),
- "PySide2.QtCore.QOperatingSystemVersion.type": (),
-# class PySide2.QtCore.QParallelAnimationGroup:
- "PySide2.QtCore.QParallelAnimationGroup.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QParallelAnimationGroup.duration": (),
- "PySide2.QtCore.QParallelAnimationGroup.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QParallelAnimationGroup.updateCurrentTime": ('int',),
- "PySide2.QtCore.QParallelAnimationGroup.updateDirection": ('PySide2.QtCore.QAbstractAnimation.Direction',),
- "PySide2.QtCore.QParallelAnimationGroup.updateState": ('PySide2.QtCore.QAbstractAnimation.State', 'PySide2.QtCore.QAbstractAnimation.State'),
-# class PySide2.QtCore.QPauseAnimation:
- "PySide2.QtCore.QPauseAnimation.__init__": [('PySide2.QtCore.QObject',), ('int', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QPauseAnimation.duration": (),
- "PySide2.QtCore.QPauseAnimation.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QPauseAnimation.setDuration": ('int',),
- "PySide2.QtCore.QPauseAnimation.updateCurrentTime": ('int',),
-# class PySide2.QtCore.QPersistentModelIndex:
- "PySide2.QtCore.QPersistentModelIndex.__init__": [(), ('PySide2.QtCore.QModelIndex',), ('PySide2.QtCore.QPersistentModelIndex',)],
- "PySide2.QtCore.QPersistentModelIndex.__copy__": (),
- "PySide2.QtCore.QPersistentModelIndex.child": ('int', 'int'),
- "PySide2.QtCore.QPersistentModelIndex.column": (),
- "PySide2.QtCore.QPersistentModelIndex.data": ('int',),
- "PySide2.QtCore.QPersistentModelIndex.flags": (),
- "PySide2.QtCore.QPersistentModelIndex.internalId": (),
- "PySide2.QtCore.QPersistentModelIndex.internalPointer": (),
- "PySide2.QtCore.QPersistentModelIndex.isValid": (),
- "PySide2.QtCore.QPersistentModelIndex.model": (),
- "PySide2.QtCore.QPersistentModelIndex.parent": (),
- "PySide2.QtCore.QPersistentModelIndex.row": (),
- "PySide2.QtCore.QPersistentModelIndex.sibling": ('int', 'int'),
- "PySide2.QtCore.QPersistentModelIndex.swap": ('PySide2.QtCore.QPersistentModelIndex',),
-# class PySide2.QtCore.QPluginLoader:
- "PySide2.QtCore.QPluginLoader.__init__": [('PySide2.QtCore.QObject',), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QPluginLoader.errorString": (),
- "PySide2.QtCore.QPluginLoader.fileName": (),
- "PySide2.QtCore.QPluginLoader.instance": (),
- "PySide2.QtCore.QPluginLoader.isLoaded": (),
- "PySide2.QtCore.QPluginLoader.load": (),
- "PySide2.QtCore.QPluginLoader.metaData": (),
- "PySide2.QtCore.QPluginLoader.setFileName": ('str',),
- "PySide2.QtCore.QPluginLoader.staticInstances": (),
- "PySide2.QtCore.QPluginLoader.unload": (),
-# class PySide2.QtCore.QPoint:
- "PySide2.QtCore.QPoint.__init__": [(), ('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtCore.QPoint.__add__": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QPoint.__copy__": (),
- "PySide2.QtCore.QPoint.__iadd__": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QPoint.__imul__": [('float',), ('int',)],
- "PySide2.QtCore.QPoint.__isub__": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QPoint.__mul__": [('float',), ('int',)],
- "PySide2.QtCore.QPoint.__neg__": (),
- "PySide2.QtCore.QPoint.__pos__": (),
- "PySide2.QtCore.QPoint.__reduce__": (),
- "PySide2.QtCore.QPoint.__repr__": (),
- "PySide2.QtCore.QPoint.__sub__": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QPoint.dotProduct": ('PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint'),
- "PySide2.QtCore.QPoint.isNull": (),
- "PySide2.QtCore.QPoint.manhattanLength": (),
- "PySide2.QtCore.QPoint.setX": ('int',),
- "PySide2.QtCore.QPoint.setY": ('int',),
- "PySide2.QtCore.QPoint.toTuple": (),
- "PySide2.QtCore.QPoint.transposed": (),
- "PySide2.QtCore.QPoint.x": (),
- "PySide2.QtCore.QPoint.y": (),
-# class PySide2.QtCore.QPointF:
- "PySide2.QtCore.QPointF.__init__": [(), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtCore.QPointF.__add__": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QPointF.__copy__": (),
- "PySide2.QtCore.QPointF.__iadd__": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QPointF.__imul__": ('float',),
- "PySide2.QtCore.QPointF.__isub__": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QPointF.__mul__": ('float',),
- "PySide2.QtCore.QPointF.__neg__": (),
- "PySide2.QtCore.QPointF.__pos__": (),
- "PySide2.QtCore.QPointF.__reduce__": (),
- "PySide2.QtCore.QPointF.__repr__": (),
- "PySide2.QtCore.QPointF.__sub__": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QPointF.dotProduct": ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'),
- "PySide2.QtCore.QPointF.isNull": (),
- "PySide2.QtCore.QPointF.manhattanLength": (),
- "PySide2.QtCore.QPointF.setX": ('float',),
- "PySide2.QtCore.QPointF.setY": ('float',),
- "PySide2.QtCore.QPointF.toPoint": (),
- "PySide2.QtCore.QPointF.toTuple": (),
- "PySide2.QtCore.QPointF.transposed": (),
- "PySide2.QtCore.QPointF.x": (),
- "PySide2.QtCore.QPointF.y": (),
-# class PySide2.QtCore.QProcess:
-# class PySide2.QtCore.QProcess.ExitStatus:
-# class PySide2.QtCore.QProcess.InputChannelMode:
-# class PySide2.QtCore.QProcess.ProcessChannel:
-# class PySide2.QtCore.QProcess.ProcessChannelMode:
-# class PySide2.QtCore.QProcess.ProcessError:
-# class PySide2.QtCore.QProcess.ProcessState:
- "PySide2.QtCore.QProcess.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QProcess.arguments": (),
- "PySide2.QtCore.QProcess.atEnd": (),
- "PySide2.QtCore.QProcess.bytesAvailable": (),
- "PySide2.QtCore.QProcess.bytesToWrite": (),
- "PySide2.QtCore.QProcess.canReadLine": (),
- "PySide2.QtCore.QProcess.close": (),
- "PySide2.QtCore.QProcess.closeReadChannel": ('PySide2.QtCore.QProcess.ProcessChannel',),
- "PySide2.QtCore.QProcess.closeWriteChannel": (),
- "PySide2.QtCore.QProcess.environment": (),
- "PySide2.QtCore.QProcess.error": (),
- "PySide2.QtCore.QProcess.execute": [('str',), ('str', 'typing.Sequence')],
- "PySide2.QtCore.QProcess.exitCode": (),
- "PySide2.QtCore.QProcess.exitStatus": (),
- "PySide2.QtCore.QProcess.inputChannelMode": (),
- "PySide2.QtCore.QProcess.isSequential": (),
- "PySide2.QtCore.QProcess.kill": (),
- "PySide2.QtCore.QProcess.nativeArguments": (),
- "PySide2.QtCore.QProcess.nullDevice": (),
- "PySide2.QtCore.QProcess.open": ('PySide2.QtCore.QIODevice.OpenMode',),
- "PySide2.QtCore.QProcess.pid": (),
- "PySide2.QtCore.QProcess.processChannelMode": (),
- "PySide2.QtCore.QProcess.processEnvironment": (),
- "PySide2.QtCore.QProcess.processId": (),
- "PySide2.QtCore.QProcess.program": (),
- "PySide2.QtCore.QProcess.readAllStandardError": (),
- "PySide2.QtCore.QProcess.readAllStandardOutput": (),
- "PySide2.QtCore.QProcess.readChannel": (),
- "PySide2.QtCore.QProcess.readData": ('bytes', 'int'),
- "PySide2.QtCore.QProcess.setArguments": ('typing.Sequence',),
- "PySide2.QtCore.QProcess.setEnvironment": ('typing.Sequence',),
- "PySide2.QtCore.QProcess.setInputChannelMode": ('PySide2.QtCore.QProcess.InputChannelMode',),
- "PySide2.QtCore.QProcess.setNativeArguments": ('str',),
- "PySide2.QtCore.QProcess.setProcessChannelMode": ('PySide2.QtCore.QProcess.ProcessChannelMode',),
- "PySide2.QtCore.QProcess.setProcessEnvironment": ('PySide2.QtCore.QProcessEnvironment',),
- "PySide2.QtCore.QProcess.setProcessState": ('PySide2.QtCore.QProcess.ProcessState',),
- "PySide2.QtCore.QProcess.setProgram": ('str',),
- "PySide2.QtCore.QProcess.setReadChannel": ('PySide2.QtCore.QProcess.ProcessChannel',),
- "PySide2.QtCore.QProcess.setStandardErrorFile": ('str', 'PySide2.QtCore.QIODevice.OpenMode'),
- "PySide2.QtCore.QProcess.setStandardInputFile": ('str',),
- "PySide2.QtCore.QProcess.setStandardOutputFile": ('str', 'PySide2.QtCore.QIODevice.OpenMode'),
- "PySide2.QtCore.QProcess.setStandardOutputProcess": ('PySide2.QtCore.QProcess',),
- "PySide2.QtCore.QProcess.setWorkingDirectory": ('str',),
- "PySide2.QtCore.QProcess.setupChildProcess": (),
- "PySide2.QtCore.QProcess.start": [('PySide2.QtCore.QIODevice.OpenMode',), ('str', 'PySide2.QtCore.QIODevice.OpenMode'), ('str', 'typing.Sequence', 'PySide2.QtCore.QIODevice.OpenMode')],
- "PySide2.QtCore.QProcess.startDetached": [(), ('str',), ('str', 'typing.Sequence'), ('str', 'typing.Sequence', 'str')],
- "PySide2.QtCore.QProcess.state": (),
- "PySide2.QtCore.QProcess.systemEnvironment": (),
- "PySide2.QtCore.QProcess.terminate": (),
- "PySide2.QtCore.QProcess.waitForBytesWritten": ('int',),
- "PySide2.QtCore.QProcess.waitForFinished": ('int',),
- "PySide2.QtCore.QProcess.waitForReadyRead": ('int',),
- "PySide2.QtCore.QProcess.waitForStarted": ('int',),
- "PySide2.QtCore.QProcess.workingDirectory": (),
- "PySide2.QtCore.QProcess.writeData": ('bytes', 'int'),
-# class PySide2.QtCore.QProcessEnvironment:
- "PySide2.QtCore.QProcessEnvironment.__init__": [(), ('PySide2.QtCore.QProcessEnvironment',)],
- "PySide2.QtCore.QProcessEnvironment.__copy__": (),
- "PySide2.QtCore.QProcessEnvironment.clear": (),
- "PySide2.QtCore.QProcessEnvironment.contains": ('str',),
- "PySide2.QtCore.QProcessEnvironment.insert": [('PySide2.QtCore.QProcessEnvironment',), ('str', 'str')],
- "PySide2.QtCore.QProcessEnvironment.isEmpty": (),
- "PySide2.QtCore.QProcessEnvironment.keys": (),
- "PySide2.QtCore.QProcessEnvironment.remove": ('str',),
- "PySide2.QtCore.QProcessEnvironment.swap": ('PySide2.QtCore.QProcessEnvironment',),
- "PySide2.QtCore.QProcessEnvironment.systemEnvironment": (),
- "PySide2.QtCore.QProcessEnvironment.toStringList": (),
- "PySide2.QtCore.QProcessEnvironment.value": ('str', 'str'),
-# class PySide2.QtCore.QPropertyAnimation:
- "PySide2.QtCore.QPropertyAnimation.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtCore.QObject', 'PySide2.QtCore.QByteArray', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QPropertyAnimation.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QPropertyAnimation.propertyName": (),
- "PySide2.QtCore.QPropertyAnimation.setPropertyName": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QPropertyAnimation.setTargetObject": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QPropertyAnimation.targetObject": (),
- "PySide2.QtCore.QPropertyAnimation.updateCurrentValue": ('typing.Any',),
- "PySide2.QtCore.QPropertyAnimation.updateState": ('PySide2.QtCore.QAbstractAnimation.State', 'PySide2.QtCore.QAbstractAnimation.State'),
-# class PySide2.QtCore.QRandomGenerator:
- "PySide2.QtCore.QRandomGenerator.__init__": [('PySide2.QtCore.QRandomGenerator',), ('int',), ('int', 'int')],
- "PySide2.QtCore.QRandomGenerator.bounded": [('float',), ('int',), ('int', 'int')],
- "PySide2.QtCore.QRandomGenerator.discard": ('int',),
- "PySide2.QtCore.QRandomGenerator.generate": (),
- "PySide2.QtCore.QRandomGenerator.generate64": (),
- "PySide2.QtCore.QRandomGenerator.generateDouble": (),
- "PySide2.QtCore.QRandomGenerator.global_": (),
- "PySide2.QtCore.QRandomGenerator.max": (),
- "PySide2.QtCore.QRandomGenerator.min": (),
- "PySide2.QtCore.QRandomGenerator.securelySeeded": (),
- "PySide2.QtCore.QRandomGenerator.seed": ('int',),
- "PySide2.QtCore.QRandomGenerator.system": (),
-# class PySide2.QtCore.QRandomGenerator64:
- "PySide2.QtCore.QRandomGenerator64.__init__": [('PySide2.QtCore.QRandomGenerator',), ('int',), ('int', 'int')],
- "PySide2.QtCore.QRandomGenerator64.discard": ('int',),
- "PySide2.QtCore.QRandomGenerator64.generate": (),
- "PySide2.QtCore.QRandomGenerator64.global_": (),
- "PySide2.QtCore.QRandomGenerator64.max": (),
- "PySide2.QtCore.QRandomGenerator64.min": (),
- "PySide2.QtCore.QRandomGenerator64.securelySeeded": (),
- "PySide2.QtCore.QRandomGenerator64.system": (),
-# class PySide2.QtCore.QReadLocker:
- "PySide2.QtCore.QReadLocker.__init__": ('PySide2.QtCore.QReadWriteLock',),
- "PySide2.QtCore.QReadLocker.__enter__": (),
- "PySide2.QtCore.QReadLocker.__exit__": ('object', 'object', 'object'),
- "PySide2.QtCore.QReadLocker.readWriteLock": (),
- "PySide2.QtCore.QReadLocker.relock": (),
- "PySide2.QtCore.QReadLocker.unlock": (),
-# class PySide2.QtCore.QReadWriteLock:
-# class PySide2.QtCore.QReadWriteLock.RecursionMode:
- "PySide2.QtCore.QReadWriteLock.__init__": ('PySide2.QtCore.QReadWriteLock.RecursionMode',),
- "PySide2.QtCore.QReadWriteLock.lockForRead": (),
- "PySide2.QtCore.QReadWriteLock.lockForWrite": (),
- "PySide2.QtCore.QReadWriteLock.tryLockForRead": [(), ('int',)],
- "PySide2.QtCore.QReadWriteLock.tryLockForWrite": [(), ('int',)],
- "PySide2.QtCore.QReadWriteLock.unlock": (),
-# class PySide2.QtCore.QRect:
- "PySide2.QtCore.QRect.__init__": [(), ('PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint'), ('PySide2.QtCore.QPoint', 'PySide2.QtCore.QSize'), ('PySide2.QtCore.QRect',), ('int', 'int', 'int', 'int')],
- "PySide2.QtCore.QRect.__add__": ('PySide2.QtCore.QMargins',),
- "PySide2.QtCore.QRect.__and__": ('PySide2.QtCore.QRect',),
- "PySide2.QtCore.QRect.__copy__": (),
- "PySide2.QtCore.QRect.__iadd__": ('PySide2.QtCore.QMargins',),
- "PySide2.QtCore.QRect.__iand__": ('PySide2.QtCore.QRect',),
- "PySide2.QtCore.QRect.__ior__": ('PySide2.QtCore.QRect',),
- "PySide2.QtCore.QRect.__isub__": ('PySide2.QtCore.QMargins',),
- "PySide2.QtCore.QRect.__or__": ('PySide2.QtCore.QRect',),
- "PySide2.QtCore.QRect.__reduce__": (),
- "PySide2.QtCore.QRect.__repr__": (),
- "PySide2.QtCore.QRect.__sub__": ('PySide2.QtCore.QMargins',),
- "PySide2.QtCore.QRect.adjust": ('int', 'int', 'int', 'int'),
- "PySide2.QtCore.QRect.adjusted": ('int', 'int', 'int', 'int'),
- "PySide2.QtCore.QRect.bottom": (),
- "PySide2.QtCore.QRect.bottomLeft": (),
- "PySide2.QtCore.QRect.bottomRight": (),
- "PySide2.QtCore.QRect.center": (),
- "PySide2.QtCore.QRect.contains": [('PySide2.QtCore.QPoint', 'bool'), ('PySide2.QtCore.QRect', 'bool'), ('int', 'int'), ('int', 'int', 'bool')],
- "PySide2.QtCore.QRect.getCoords": (),
- "PySide2.QtCore.QRect.getRect": (),
- "PySide2.QtCore.QRect.height": (),
- "PySide2.QtCore.QRect.intersected": ('PySide2.QtCore.QRect',),
- "PySide2.QtCore.QRect.intersects": ('PySide2.QtCore.QRect',),
- "PySide2.QtCore.QRect.isEmpty": (),
- "PySide2.QtCore.QRect.isNull": (),
- "PySide2.QtCore.QRect.isValid": (),
- "PySide2.QtCore.QRect.left": (),
- "PySide2.QtCore.QRect.marginsAdded": ('PySide2.QtCore.QMargins',),
- "PySide2.QtCore.QRect.marginsRemoved": ('PySide2.QtCore.QMargins',),
- "PySide2.QtCore.QRect.moveBottom": ('int',),
- "PySide2.QtCore.QRect.moveBottomLeft": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QRect.moveBottomRight": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QRect.moveCenter": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QRect.moveLeft": ('int',),
- "PySide2.QtCore.QRect.moveRight": ('int',),
- "PySide2.QtCore.QRect.moveTo": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtCore.QRect.moveTop": ('int',),
- "PySide2.QtCore.QRect.moveTopLeft": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QRect.moveTopRight": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QRect.normalized": (),
- "PySide2.QtCore.QRect.right": (),
- "PySide2.QtCore.QRect.setBottom": ('int',),
- "PySide2.QtCore.QRect.setBottomLeft": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QRect.setBottomRight": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QRect.setCoords": ('int', 'int', 'int', 'int'),
- "PySide2.QtCore.QRect.setHeight": ('int',),
- "PySide2.QtCore.QRect.setLeft": ('int',),
- "PySide2.QtCore.QRect.setRect": ('int', 'int', 'int', 'int'),
- "PySide2.QtCore.QRect.setRight": ('int',),
- "PySide2.QtCore.QRect.setSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtCore.QRect.setTop": ('int',),
- "PySide2.QtCore.QRect.setTopLeft": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QRect.setTopRight": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QRect.setWidth": ('int',),
- "PySide2.QtCore.QRect.setX": ('int',),
- "PySide2.QtCore.QRect.setY": ('int',),
- "PySide2.QtCore.QRect.size": (),
- "PySide2.QtCore.QRect.top": (),
- "PySide2.QtCore.QRect.topLeft": (),
- "PySide2.QtCore.QRect.topRight": (),
- "PySide2.QtCore.QRect.translate": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtCore.QRect.translated": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtCore.QRect.transposed": (),
- "PySide2.QtCore.QRect.united": ('PySide2.QtCore.QRect',),
- "PySide2.QtCore.QRect.width": (),
- "PySide2.QtCore.QRect.x": (),
- "PySide2.QtCore.QRect.y": (),
-# class PySide2.QtCore.QRectF:
- "PySide2.QtCore.QRectF.__init__": [(), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QSizeF'), ('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtCore.QRectF.__add__": ('PySide2.QtCore.QMarginsF',),
- "PySide2.QtCore.QRectF.__and__": ('PySide2.QtCore.QRectF',),
- "PySide2.QtCore.QRectF.__copy__": (),
- "PySide2.QtCore.QRectF.__iadd__": ('PySide2.QtCore.QMarginsF',),
- "PySide2.QtCore.QRectF.__iand__": ('PySide2.QtCore.QRectF',),
- "PySide2.QtCore.QRectF.__ior__": ('PySide2.QtCore.QRectF',),
- "PySide2.QtCore.QRectF.__isub__": ('PySide2.QtCore.QMarginsF',),
- "PySide2.QtCore.QRectF.__or__": ('PySide2.QtCore.QRectF',),
- "PySide2.QtCore.QRectF.__reduce__": (),
- "PySide2.QtCore.QRectF.__repr__": (),
- "PySide2.QtCore.QRectF.__sub__": ('PySide2.QtCore.QMarginsF',),
- "PySide2.QtCore.QRectF.adjust": ('float', 'float', 'float', 'float'),
- "PySide2.QtCore.QRectF.adjusted": ('float', 'float', 'float', 'float'),
- "PySide2.QtCore.QRectF.bottom": (),
- "PySide2.QtCore.QRectF.bottomLeft": (),
- "PySide2.QtCore.QRectF.bottomRight": (),
- "PySide2.QtCore.QRectF.center": (),
- "PySide2.QtCore.QRectF.contains": [('PySide2.QtCore.QPointF',), ('PySide2.QtCore.QRectF',), ('float', 'float')],
- "PySide2.QtCore.QRectF.getCoords": (),
- "PySide2.QtCore.QRectF.getRect": (),
- "PySide2.QtCore.QRectF.height": (),
- "PySide2.QtCore.QRectF.intersected": ('PySide2.QtCore.QRectF',),
- "PySide2.QtCore.QRectF.intersects": ('PySide2.QtCore.QRectF',),
- "PySide2.QtCore.QRectF.isEmpty": (),
- "PySide2.QtCore.QRectF.isNull": (),
- "PySide2.QtCore.QRectF.isValid": (),
- "PySide2.QtCore.QRectF.left": (),
- "PySide2.QtCore.QRectF.marginsAdded": ('PySide2.QtCore.QMarginsF',),
- "PySide2.QtCore.QRectF.marginsRemoved": ('PySide2.QtCore.QMarginsF',),
- "PySide2.QtCore.QRectF.moveBottom": ('float',),
- "PySide2.QtCore.QRectF.moveBottomLeft": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QRectF.moveBottomRight": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QRectF.moveCenter": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QRectF.moveLeft": ('float',),
- "PySide2.QtCore.QRectF.moveRight": ('float',),
- "PySide2.QtCore.QRectF.moveTo": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtCore.QRectF.moveTop": ('float',),
- "PySide2.QtCore.QRectF.moveTopLeft": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QRectF.moveTopRight": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QRectF.normalized": (),
- "PySide2.QtCore.QRectF.right": (),
- "PySide2.QtCore.QRectF.setBottom": ('float',),
- "PySide2.QtCore.QRectF.setBottomLeft": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QRectF.setBottomRight": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QRectF.setCoords": ('float', 'float', 'float', 'float'),
- "PySide2.QtCore.QRectF.setHeight": ('float',),
- "PySide2.QtCore.QRectF.setLeft": ('float',),
- "PySide2.QtCore.QRectF.setRect": ('float', 'float', 'float', 'float'),
- "PySide2.QtCore.QRectF.setRight": ('float',),
- "PySide2.QtCore.QRectF.setSize": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtCore.QRectF.setTop": ('float',),
- "PySide2.QtCore.QRectF.setTopLeft": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QRectF.setTopRight": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QRectF.setWidth": ('float',),
- "PySide2.QtCore.QRectF.setX": ('float',),
- "PySide2.QtCore.QRectF.setY": ('float',),
- "PySide2.QtCore.QRectF.size": (),
- "PySide2.QtCore.QRectF.toAlignedRect": (),
- "PySide2.QtCore.QRectF.toRect": (),
- "PySide2.QtCore.QRectF.top": (),
- "PySide2.QtCore.QRectF.topLeft": (),
- "PySide2.QtCore.QRectF.topRight": (),
- "PySide2.QtCore.QRectF.translate": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtCore.QRectF.translated": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtCore.QRectF.transposed": (),
- "PySide2.QtCore.QRectF.united": ('PySide2.QtCore.QRectF',),
- "PySide2.QtCore.QRectF.width": (),
- "PySide2.QtCore.QRectF.x": (),
- "PySide2.QtCore.QRectF.y": (),
-# class PySide2.QtCore.QRecursiveMutex:
- "PySide2.QtCore.QRecursiveMutex.__init__": (),
-# class PySide2.QtCore.QRegExp:
-# class PySide2.QtCore.QRegExp.CaretMode:
-# class PySide2.QtCore.QRegExp.PatternSyntax:
- "PySide2.QtCore.QRegExp.__init__": [(), ('PySide2.QtCore.QRegExp',), ('str', 'PySide2.QtCore.Qt.CaseSensitivity', 'PySide2.QtCore.QRegExp.PatternSyntax')],
- "PySide2.QtCore.QRegExp.__copy__": (),
- "PySide2.QtCore.QRegExp.__reduce__": (),
- "PySide2.QtCore.QRegExp.__repr__": (),
- "PySide2.QtCore.QRegExp.cap": ('int',),
- "PySide2.QtCore.QRegExp.captureCount": (),
- "PySide2.QtCore.QRegExp.capturedTexts": (),
- "PySide2.QtCore.QRegExp.caseSensitivity": (),
- "PySide2.QtCore.QRegExp.errorString": (),
- "PySide2.QtCore.QRegExp.escape": ('str',),
- "PySide2.QtCore.QRegExp.exactMatch": ('str',),
- "PySide2.QtCore.QRegExp.indexIn": ('str', 'int', 'PySide2.QtCore.QRegExp.CaretMode'),
- "PySide2.QtCore.QRegExp.isEmpty": (),
- "PySide2.QtCore.QRegExp.isMinimal": (),
- "PySide2.QtCore.QRegExp.isValid": (),
- "PySide2.QtCore.QRegExp.lastIndexIn": ('str', 'int', 'PySide2.QtCore.QRegExp.CaretMode'),
- "PySide2.QtCore.QRegExp.matchedLength": (),
- "PySide2.QtCore.QRegExp.pattern": (),
- "PySide2.QtCore.QRegExp.patternSyntax": (),
- "PySide2.QtCore.QRegExp.pos": ('int',),
- "PySide2.QtCore.QRegExp.replace": ('str', 'str'),
- "PySide2.QtCore.QRegExp.setCaseSensitivity": ('PySide2.QtCore.Qt.CaseSensitivity',),
- "PySide2.QtCore.QRegExp.setMinimal": ('bool',),
- "PySide2.QtCore.QRegExp.setPattern": ('str',),
- "PySide2.QtCore.QRegExp.setPatternSyntax": ('PySide2.QtCore.QRegExp.PatternSyntax',),
- "PySide2.QtCore.QRegExp.swap": ('PySide2.QtCore.QRegExp',),
-# class PySide2.QtCore.QRegularExpression:
-# class PySide2.QtCore.QRegularExpression.MatchOption:
-# class PySide2.QtCore.QRegularExpression.MatchOptions:
-# class PySide2.QtCore.QRegularExpression.MatchType:
-# class PySide2.QtCore.QRegularExpression.PatternOption:
-# class PySide2.QtCore.QRegularExpression.PatternOptions:
- "PySide2.QtCore.QRegularExpression.__init__": [(), ('PySide2.QtCore.QRegularExpression',), ('str', 'PySide2.QtCore.QRegularExpression.PatternOptions')],
- "PySide2.QtCore.QRegularExpression.__copy__": (),
- "PySide2.QtCore.QRegularExpression.anchoredPattern": ('str',),
- "PySide2.QtCore.QRegularExpression.captureCount": (),
- "PySide2.QtCore.QRegularExpression.errorString": (),
- "PySide2.QtCore.QRegularExpression.escape": ('str',),
- "PySide2.QtCore.QRegularExpression.globalMatch": ('str', 'int', 'PySide2.QtCore.QRegularExpression.MatchType', 'PySide2.QtCore.QRegularExpression.MatchOptions'),
- "PySide2.QtCore.QRegularExpression.isValid": (),
- "PySide2.QtCore.QRegularExpression.match": ('str', 'int', 'PySide2.QtCore.QRegularExpression.MatchType', 'PySide2.QtCore.QRegularExpression.MatchOptions'),
- "PySide2.QtCore.QRegularExpression.namedCaptureGroups": (),
- "PySide2.QtCore.QRegularExpression.optimize": (),
- "PySide2.QtCore.QRegularExpression.pattern": (),
- "PySide2.QtCore.QRegularExpression.patternErrorOffset": (),
- "PySide2.QtCore.QRegularExpression.patternOptions": (),
- "PySide2.QtCore.QRegularExpression.setPattern": ('str',),
- "PySide2.QtCore.QRegularExpression.setPatternOptions": ('PySide2.QtCore.QRegularExpression.PatternOptions',),
- "PySide2.QtCore.QRegularExpression.swap": ('PySide2.QtCore.QRegularExpression',),
- "PySide2.QtCore.QRegularExpression.wildcardToRegularExpression": ('str',),
-# class PySide2.QtCore.QRegularExpressionMatch:
- "PySide2.QtCore.QRegularExpressionMatch.__init__": [(), ('PySide2.QtCore.QRegularExpressionMatch',)],
- "PySide2.QtCore.QRegularExpressionMatch.__copy__": (),
- "PySide2.QtCore.QRegularExpressionMatch.captured": [('int',), ('str',)],
- "PySide2.QtCore.QRegularExpressionMatch.capturedEnd": [('int',), ('str',)],
- "PySide2.QtCore.QRegularExpressionMatch.capturedLength": [('int',), ('str',)],
- "PySide2.QtCore.QRegularExpressionMatch.capturedRef": [('int',), ('str',)],
- "PySide2.QtCore.QRegularExpressionMatch.capturedStart": [('int',), ('str',)],
- "PySide2.QtCore.QRegularExpressionMatch.capturedTexts": (),
- "PySide2.QtCore.QRegularExpressionMatch.hasMatch": (),
- "PySide2.QtCore.QRegularExpressionMatch.hasPartialMatch": (),
- "PySide2.QtCore.QRegularExpressionMatch.isValid": (),
- "PySide2.QtCore.QRegularExpressionMatch.lastCapturedIndex": (),
- "PySide2.QtCore.QRegularExpressionMatch.matchOptions": (),
- "PySide2.QtCore.QRegularExpressionMatch.matchType": (),
- "PySide2.QtCore.QRegularExpressionMatch.regularExpression": (),
- "PySide2.QtCore.QRegularExpressionMatch.swap": ('PySide2.QtCore.QRegularExpressionMatch',),
-# class PySide2.QtCore.QRegularExpressionMatchIterator:
- "PySide2.QtCore.QRegularExpressionMatchIterator.__init__": [(), ('PySide2.QtCore.QRegularExpressionMatchIterator',)],
- "PySide2.QtCore.QRegularExpressionMatchIterator.__copy__": (),
- "PySide2.QtCore.QRegularExpressionMatchIterator.hasNext": (),
- "PySide2.QtCore.QRegularExpressionMatchIterator.isValid": (),
- "PySide2.QtCore.QRegularExpressionMatchIterator.matchOptions": (),
- "PySide2.QtCore.QRegularExpressionMatchIterator.matchType": (),
- "PySide2.QtCore.QRegularExpressionMatchIterator.peekNext": (),
- "PySide2.QtCore.QRegularExpressionMatchIterator.regularExpression": (),
- "PySide2.QtCore.QRegularExpressionMatchIterator.swap": ('PySide2.QtCore.QRegularExpressionMatchIterator',),
-# class PySide2.QtCore.QResource:
-# class PySide2.QtCore.QResource.Compression:
- "PySide2.QtCore.QResource.__init__": ('str', 'PySide2.QtCore.QLocale'),
- "PySide2.QtCore.QResource.absoluteFilePath": (),
- "PySide2.QtCore.QResource.addSearchPath": ('str',),
- "PySide2.QtCore.QResource.children": (),
- "PySide2.QtCore.QResource.compressionAlgorithm": (),
- "PySide2.QtCore.QResource.data": (),
- "PySide2.QtCore.QResource.fileName": (),
- "PySide2.QtCore.QResource.isCompressed": (),
- "PySide2.QtCore.QResource.isDir": (),
- "PySide2.QtCore.QResource.isFile": (),
- "PySide2.QtCore.QResource.isValid": (),
- "PySide2.QtCore.QResource.lastModified": (),
- "PySide2.QtCore.QResource.locale": (),
- "PySide2.QtCore.QResource.registerResource": ('str', 'str'),
- "PySide2.QtCore.QResource.registerResourceData": ('bytes', 'str'),
- "PySide2.QtCore.QResource.searchPaths": (),
- "PySide2.QtCore.QResource.setFileName": ('str',),
- "PySide2.QtCore.QResource.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtCore.QResource.size": (),
- "PySide2.QtCore.QResource.unregisterResource": ('str', 'str'),
- "PySide2.QtCore.QResource.unregisterResourceData": ('bytes', 'str'),
-# class PySide2.QtCore.QRunnable:
- "PySide2.QtCore.QRunnable.__init__": (),
- "PySide2.QtCore.QRunnable.autoDelete": (),
- "PySide2.QtCore.QRunnable.run": (),
- "PySide2.QtCore.QRunnable.setAutoDelete": ('bool',),
-# class PySide2.QtCore.QSaveFile:
- "PySide2.QtCore.QSaveFile.__init__": [('PySide2.QtCore.QObject',), ('str',), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QSaveFile.cancelWriting": (),
- "PySide2.QtCore.QSaveFile.close": (),
- "PySide2.QtCore.QSaveFile.commit": (),
- "PySide2.QtCore.QSaveFile.directWriteFallback": (),
- "PySide2.QtCore.QSaveFile.fileName": (),
- "PySide2.QtCore.QSaveFile.open": ('PySide2.QtCore.QIODevice.OpenMode',),
- "PySide2.QtCore.QSaveFile.setDirectWriteFallback": ('bool',),
- "PySide2.QtCore.QSaveFile.setFileName": ('str',),
- "PySide2.QtCore.QSaveFile.writeData": ('bytes', 'int'),
-# class PySide2.QtCore.QSemaphore:
- "PySide2.QtCore.QSemaphore.__init__": ('int',),
- "PySide2.QtCore.QSemaphore.acquire": ('int',),
- "PySide2.QtCore.QSemaphore.available": (),
- "PySide2.QtCore.QSemaphore.release": ('int',),
- "PySide2.QtCore.QSemaphore.tryAcquire": [('int',), ('int', 'int')],
-# class PySide2.QtCore.QSemaphoreReleaser:
- "PySide2.QtCore.QSemaphoreReleaser.__init__": [(), ('PySide2.QtCore.QSemaphore', 'int')],
- "PySide2.QtCore.QSemaphoreReleaser.cancel": (),
- "PySide2.QtCore.QSemaphoreReleaser.semaphore": (),
- "PySide2.QtCore.QSemaphoreReleaser.swap": ('PySide2.QtCore.QSemaphoreReleaser',),
-# class PySide2.QtCore.QSequentialAnimationGroup:
- "PySide2.QtCore.QSequentialAnimationGroup.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QSequentialAnimationGroup.addPause": ('int',),
- "PySide2.QtCore.QSequentialAnimationGroup.currentAnimation": (),
- "PySide2.QtCore.QSequentialAnimationGroup.duration": (),
- "PySide2.QtCore.QSequentialAnimationGroup.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QSequentialAnimationGroup.insertPause": ('int', 'int'),
- "PySide2.QtCore.QSequentialAnimationGroup.updateCurrentTime": ('int',),
- "PySide2.QtCore.QSequentialAnimationGroup.updateDirection": ('PySide2.QtCore.QAbstractAnimation.Direction',),
- "PySide2.QtCore.QSequentialAnimationGroup.updateState": ('PySide2.QtCore.QAbstractAnimation.State', 'PySide2.QtCore.QAbstractAnimation.State'),
-# class PySide2.QtCore.QSettings:
-# class PySide2.QtCore.QSettings.Format:
-# class PySide2.QtCore.QSettings.Scope:
-# class PySide2.QtCore.QSettings.Status:
- "PySide2.QtCore.QSettings.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtCore.QSettings.Format', 'PySide2.QtCore.QSettings.Scope', 'str', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QSettings.Scope', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QSettings.Scope', 'str', 'str', 'PySide2.QtCore.QObject'), ('str', 'PySide2.QtCore.QSettings.Format', 'PySide2.QtCore.QObject'), ('str', 'str', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QSettings.allKeys": (),
- "PySide2.QtCore.QSettings.applicationName": (),
- "PySide2.QtCore.QSettings.beginGroup": ('str',),
- "PySide2.QtCore.QSettings.beginReadArray": ('str',),
- "PySide2.QtCore.QSettings.beginWriteArray": ('str', 'int'),
- "PySide2.QtCore.QSettings.childGroups": (),
- "PySide2.QtCore.QSettings.childKeys": (),
- "PySide2.QtCore.QSettings.clear": (),
- "PySide2.QtCore.QSettings.contains": ('str',),
- "PySide2.QtCore.QSettings.defaultFormat": (),
- "PySide2.QtCore.QSettings.endArray": (),
- "PySide2.QtCore.QSettings.endGroup": (),
- "PySide2.QtCore.QSettings.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QSettings.fallbacksEnabled": (),
- "PySide2.QtCore.QSettings.fileName": (),
- "PySide2.QtCore.QSettings.format": (),
- "PySide2.QtCore.QSettings.group": (),
- "PySide2.QtCore.QSettings.iniCodec": (),
- "PySide2.QtCore.QSettings.isAtomicSyncRequired": (),
- "PySide2.QtCore.QSettings.isWritable": (),
- "PySide2.QtCore.QSettings.organizationName": (),
- "PySide2.QtCore.QSettings.remove": ('str',),
- "PySide2.QtCore.QSettings.scope": (),
- "PySide2.QtCore.QSettings.setArrayIndex": ('int',),
- "PySide2.QtCore.QSettings.setAtomicSyncRequired": ('bool',),
- "PySide2.QtCore.QSettings.setDefaultFormat": ('PySide2.QtCore.QSettings.Format',),
- "PySide2.QtCore.QSettings.setFallbacksEnabled": ('bool',),
- "PySide2.QtCore.QSettings.setIniCodec": [('PySide2.QtCore.QTextCodec',), ('bytes',)],
- "PySide2.QtCore.QSettings.setPath": ('PySide2.QtCore.QSettings.Format', 'PySide2.QtCore.QSettings.Scope', 'str'),
- "PySide2.QtCore.QSettings.setValue": ('str', 'typing.Any'),
- "PySide2.QtCore.QSettings.status": (),
- "PySide2.QtCore.QSettings.sync": (),
- "PySide2.QtCore.QSettings.value": ('str', 'typing.Any', 'object'),
-# class PySide2.QtCore.QSignalBlocker:
- "PySide2.QtCore.QSignalBlocker.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QSignalBlocker.reblock": (),
- "PySide2.QtCore.QSignalBlocker.unblock": (),
-# class PySide2.QtCore.QSignalMapper:
- "PySide2.QtCore.QSignalMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QSignalMapper.map": [(), ('PySide2.QtCore.QObject',)],
- "PySide2.QtCore.QSignalMapper.mapping": [('PySide2.QtCore.QObject',), ('int',), ('str',)],
- "PySide2.QtCore.QSignalMapper.removeMappings": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QSignalMapper.setMapping": [('PySide2.QtCore.QObject', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QObject', 'int'), ('PySide2.QtCore.QObject', 'str')],
-# class PySide2.QtCore.QSignalTransition:
- "PySide2.QtCore.QSignalTransition.__init__": [('PySide2.QtCore.QObject', 'bytes', 'PySide2.QtCore.QState'), ('PySide2.QtCore.QState',), ('object', 'PySide2.QtCore.QState')],
- "PySide2.QtCore.QSignalTransition.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QSignalTransition.eventTest": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QSignalTransition.onTransition": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QSignalTransition.senderObject": (),
- "PySide2.QtCore.QSignalTransition.setSenderObject": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QSignalTransition.setSignal": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QSignalTransition.signal": (),
-# class PySide2.QtCore.QSize:
- "PySide2.QtCore.QSize.__init__": [(), ('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtCore.QSize.__add__": ('PySide2.QtCore.QSize',),
- "PySide2.QtCore.QSize.__copy__": (),
- "PySide2.QtCore.QSize.__iadd__": ('PySide2.QtCore.QSize',),
- "PySide2.QtCore.QSize.__imul__": ('float',),
- "PySide2.QtCore.QSize.__isub__": ('PySide2.QtCore.QSize',),
- "PySide2.QtCore.QSize.__mul__": ('float',),
- "PySide2.QtCore.QSize.__reduce__": (),
- "PySide2.QtCore.QSize.__repr__": (),
- "PySide2.QtCore.QSize.__sub__": ('PySide2.QtCore.QSize',),
- "PySide2.QtCore.QSize.boundedTo": ('PySide2.QtCore.QSize',),
- "PySide2.QtCore.QSize.expandedTo": ('PySide2.QtCore.QSize',),
- "PySide2.QtCore.QSize.grownBy": ('PySide2.QtCore.QMargins',),
- "PySide2.QtCore.QSize.height": (),
- "PySide2.QtCore.QSize.isEmpty": (),
- "PySide2.QtCore.QSize.isNull": (),
- "PySide2.QtCore.QSize.isValid": (),
- "PySide2.QtCore.QSize.scale": [('PySide2.QtCore.QSize', 'PySide2.QtCore.Qt.AspectRatioMode'), ('int', 'int', 'PySide2.QtCore.Qt.AspectRatioMode')],
- "PySide2.QtCore.QSize.scaled": [('PySide2.QtCore.QSize', 'PySide2.QtCore.Qt.AspectRatioMode'), ('int', 'int', 'PySide2.QtCore.Qt.AspectRatioMode')],
- "PySide2.QtCore.QSize.setHeight": ('int',),
- "PySide2.QtCore.QSize.setWidth": ('int',),
- "PySide2.QtCore.QSize.shrunkBy": ('PySide2.QtCore.QMargins',),
- "PySide2.QtCore.QSize.toTuple": (),
- "PySide2.QtCore.QSize.transpose": (),
- "PySide2.QtCore.QSize.transposed": (),
- "PySide2.QtCore.QSize.width": (),
-# class PySide2.QtCore.QSizeF:
- "PySide2.QtCore.QSizeF.__init__": [(), ('PySide2.QtCore.QSize',), ('PySide2.QtCore.QSizeF',), ('float', 'float')],
- "PySide2.QtCore.QSizeF.__add__": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtCore.QSizeF.__copy__": (),
- "PySide2.QtCore.QSizeF.__iadd__": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtCore.QSizeF.__imul__": ('float',),
- "PySide2.QtCore.QSizeF.__isub__": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtCore.QSizeF.__mul__": ('float',),
- "PySide2.QtCore.QSizeF.__reduce__": (),
- "PySide2.QtCore.QSizeF.__repr__": (),
- "PySide2.QtCore.QSizeF.__sub__": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtCore.QSizeF.boundedTo": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtCore.QSizeF.expandedTo": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtCore.QSizeF.grownBy": ('PySide2.QtCore.QMarginsF',),
- "PySide2.QtCore.QSizeF.height": (),
- "PySide2.QtCore.QSizeF.isEmpty": (),
- "PySide2.QtCore.QSizeF.isNull": (),
- "PySide2.QtCore.QSizeF.isValid": (),
- "PySide2.QtCore.QSizeF.scale": [('PySide2.QtCore.QSizeF', 'PySide2.QtCore.Qt.AspectRatioMode'), ('float', 'float', 'PySide2.QtCore.Qt.AspectRatioMode')],
- "PySide2.QtCore.QSizeF.scaled": [('PySide2.QtCore.QSizeF', 'PySide2.QtCore.Qt.AspectRatioMode'), ('float', 'float', 'PySide2.QtCore.Qt.AspectRatioMode')],
- "PySide2.QtCore.QSizeF.setHeight": ('float',),
- "PySide2.QtCore.QSizeF.setWidth": ('float',),
- "PySide2.QtCore.QSizeF.shrunkBy": ('PySide2.QtCore.QMarginsF',),
- "PySide2.QtCore.QSizeF.toSize": (),
- "PySide2.QtCore.QSizeF.toTuple": (),
- "PySide2.QtCore.QSizeF.transpose": (),
- "PySide2.QtCore.QSizeF.transposed": (),
- "PySide2.QtCore.QSizeF.width": (),
-# class PySide2.QtCore.QSocketNotifier:
-# class PySide2.QtCore.QSocketNotifier.Type:
- "PySide2.QtCore.QSocketNotifier.__init__": [('int', 'PySide2.QtCore.QSocketNotifier.Type', 'PySide2.QtCore.QObject'), ('object', 'PySide2.QtCore.QSocketNotifier.Type', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QSocketNotifier.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QSocketNotifier.isEnabled": (),
- "PySide2.QtCore.QSocketNotifier.setEnabled": ('bool',),
- "PySide2.QtCore.QSocketNotifier.socket": (),
- "PySide2.QtCore.QSocketNotifier.type": (),
-# class PySide2.QtCore.QSortFilterProxyModel:
- "PySide2.QtCore.QSortFilterProxyModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QSortFilterProxyModel.buddy": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QSortFilterProxyModel.canFetchMore": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QSortFilterProxyModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QSortFilterProxyModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QSortFilterProxyModel.dropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QSortFilterProxyModel.dynamicSortFilter": (),
- "PySide2.QtCore.QSortFilterProxyModel.fetchMore": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QSortFilterProxyModel.filterAcceptsColumn": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QSortFilterProxyModel.filterAcceptsRow": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QSortFilterProxyModel.filterCaseSensitivity": (),
- "PySide2.QtCore.QSortFilterProxyModel.filterKeyColumn": (),
- "PySide2.QtCore.QSortFilterProxyModel.filterRegExp": (),
- "PySide2.QtCore.QSortFilterProxyModel.filterRegularExpression": (),
- "PySide2.QtCore.QSortFilterProxyModel.filterRole": (),
- "PySide2.QtCore.QSortFilterProxyModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QSortFilterProxyModel.hasChildren": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QSortFilterProxyModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtCore.QSortFilterProxyModel.index": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QSortFilterProxyModel.insertColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QSortFilterProxyModel.insertRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QSortFilterProxyModel.invalidate": (),
- "PySide2.QtCore.QSortFilterProxyModel.invalidateFilter": (),
- "PySide2.QtCore.QSortFilterProxyModel.isRecursiveFilteringEnabled": (),
- "PySide2.QtCore.QSortFilterProxyModel.isSortLocaleAware": (),
- "PySide2.QtCore.QSortFilterProxyModel.lessThan": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QSortFilterProxyModel.mapFromSource": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QSortFilterProxyModel.mapSelectionFromSource": ('PySide2.QtCore.QItemSelection',),
- "PySide2.QtCore.QSortFilterProxyModel.mapSelectionToSource": ('PySide2.QtCore.QItemSelection',),
- "PySide2.QtCore.QSortFilterProxyModel.mapToSource": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QSortFilterProxyModel.match": ('PySide2.QtCore.QModelIndex', 'int', 'typing.Any', 'int', 'PySide2.QtCore.Qt.MatchFlags'),
- "PySide2.QtCore.QSortFilterProxyModel.mimeData": ('typing.List',),
- "PySide2.QtCore.QSortFilterProxyModel.mimeTypes": (),
- "PySide2.QtCore.QSortFilterProxyModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtCore.QSortFilterProxyModel.removeColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QSortFilterProxyModel.removeRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QSortFilterProxyModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QSortFilterProxyModel.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
- "PySide2.QtCore.QSortFilterProxyModel.setDynamicSortFilter": ('bool',),
- "PySide2.QtCore.QSortFilterProxyModel.setFilterCaseSensitivity": ('PySide2.QtCore.Qt.CaseSensitivity',),
- "PySide2.QtCore.QSortFilterProxyModel.setFilterFixedString": ('str',),
- "PySide2.QtCore.QSortFilterProxyModel.setFilterKeyColumn": ('int',),
- "PySide2.QtCore.QSortFilterProxyModel.setFilterRegExp": [('PySide2.QtCore.QRegExp',), ('str',)],
- "PySide2.QtCore.QSortFilterProxyModel.setFilterRegularExpression": [('PySide2.QtCore.QRegularExpression',), ('str',)],
- "PySide2.QtCore.QSortFilterProxyModel.setFilterRole": ('int',),
- "PySide2.QtCore.QSortFilterProxyModel.setFilterWildcard": ('str',),
- "PySide2.QtCore.QSortFilterProxyModel.setHeaderData": ('int', 'PySide2.QtCore.Qt.Orientation', 'typing.Any', 'int'),
- "PySide2.QtCore.QSortFilterProxyModel.setRecursiveFilteringEnabled": ('bool',),
- "PySide2.QtCore.QSortFilterProxyModel.setSortCaseSensitivity": ('PySide2.QtCore.Qt.CaseSensitivity',),
- "PySide2.QtCore.QSortFilterProxyModel.setSortLocaleAware": ('bool',),
- "PySide2.QtCore.QSortFilterProxyModel.setSortRole": ('int',),
- "PySide2.QtCore.QSortFilterProxyModel.setSourceModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCore.QSortFilterProxyModel.sibling": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QSortFilterProxyModel.sort": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtCore.QSortFilterProxyModel.sortCaseSensitivity": (),
- "PySide2.QtCore.QSortFilterProxyModel.sortColumn": (),
- "PySide2.QtCore.QSortFilterProxyModel.sortOrder": (),
- "PySide2.QtCore.QSortFilterProxyModel.sortRole": (),
- "PySide2.QtCore.QSortFilterProxyModel.span": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QSortFilterProxyModel.supportedDropActions": (),
-# class PySide2.QtCore.QStandardPaths:
-# class PySide2.QtCore.QStandardPaths.LocateOption:
-# class PySide2.QtCore.QStandardPaths.LocateOptions:
-# class PySide2.QtCore.QStandardPaths.StandardLocation:
- "PySide2.QtCore.QStandardPaths.displayName": ('PySide2.QtCore.QStandardPaths.StandardLocation',),
- "PySide2.QtCore.QStandardPaths.enableTestMode": ('bool',),
- "PySide2.QtCore.QStandardPaths.findExecutable": ('str', 'typing.Sequence'),
- "PySide2.QtCore.QStandardPaths.isTestModeEnabled": (),
- "PySide2.QtCore.QStandardPaths.locate": ('PySide2.QtCore.QStandardPaths.StandardLocation', 'str', 'PySide2.QtCore.QStandardPaths.LocateOptions'),
- "PySide2.QtCore.QStandardPaths.locateAll": ('PySide2.QtCore.QStandardPaths.StandardLocation', 'str', 'PySide2.QtCore.QStandardPaths.LocateOptions'),
- "PySide2.QtCore.QStandardPaths.setTestModeEnabled": ('bool',),
- "PySide2.QtCore.QStandardPaths.standardLocations": ('PySide2.QtCore.QStandardPaths.StandardLocation',),
- "PySide2.QtCore.QStandardPaths.writableLocation": ('PySide2.QtCore.QStandardPaths.StandardLocation',),
-# class PySide2.QtCore.QState:
-# class PySide2.QtCore.QState.ChildMode:
-# class PySide2.QtCore.QState.RestorePolicy:
- "PySide2.QtCore.QState.__init__": [('PySide2.QtCore.QState',), ('PySide2.QtCore.QState.ChildMode', 'PySide2.QtCore.QState')],
- "PySide2.QtCore.QState.addTransition": [('PySide2.QtCore.QAbstractState',), ('PySide2.QtCore.QAbstractTransition',), ('PySide2.QtCore.QObject', 'bytes', 'PySide2.QtCore.QAbstractState'), ('object', 'PySide2.QtCore.QAbstractState')],
- "PySide2.QtCore.QState.assignProperty": ('PySide2.QtCore.QObject', 'bytes', 'typing.Any'),
- "PySide2.QtCore.QState.childMode": (),
- "PySide2.QtCore.QState.errorState": (),
- "PySide2.QtCore.QState.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QState.initialState": (),
- "PySide2.QtCore.QState.onEntry": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QState.onExit": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QState.removeTransition": ('PySide2.QtCore.QAbstractTransition',),
- "PySide2.QtCore.QState.setChildMode": ('PySide2.QtCore.QState.ChildMode',),
- "PySide2.QtCore.QState.setErrorState": ('PySide2.QtCore.QAbstractState',),
- "PySide2.QtCore.QState.setInitialState": ('PySide2.QtCore.QAbstractState',),
- "PySide2.QtCore.QState.transitions": (),
-# class PySide2.QtCore.QStateMachine:
-# class PySide2.QtCore.QStateMachine.Error:
-# class PySide2.QtCore.QStateMachine.EventPriority:
-# class PySide2.QtCore.QStateMachine.SignalEvent:
- "PySide2.QtCore.QStateMachine.SignalEvent.__init__": [('PySide2.QtCore.QObject', 'int', 'typing.Sequence'), ('PySide2.QtCore.QStateMachine.SignalEvent',)],
- "PySide2.QtCore.QStateMachine.SignalEvent.__copy__": (),
- "PySide2.QtCore.QStateMachine.SignalEvent.arguments": (),
- "PySide2.QtCore.QStateMachine.SignalEvent.sender": (),
- "PySide2.QtCore.QStateMachine.SignalEvent.signalIndex": (),
-# class PySide2.QtCore.QStateMachine.WrappedEvent:
- "PySide2.QtCore.QStateMachine.WrappedEvent.__init__": [('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'), ('PySide2.QtCore.QStateMachine.WrappedEvent',)],
- "PySide2.QtCore.QStateMachine.WrappedEvent.__copy__": (),
- "PySide2.QtCore.QStateMachine.WrappedEvent.event": (),
- "PySide2.QtCore.QStateMachine.WrappedEvent.object": (),
- "PySide2.QtCore.QStateMachine.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtCore.QState.ChildMode', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QStateMachine.addDefaultAnimation": ('PySide2.QtCore.QAbstractAnimation',),
- "PySide2.QtCore.QStateMachine.addState": ('PySide2.QtCore.QAbstractState',),
- "PySide2.QtCore.QStateMachine.beginMicrostep": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QStateMachine.beginSelectTransitions": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QStateMachine.cancelDelayedEvent": ('int',),
- "PySide2.QtCore.QStateMachine.clearError": (),
- "PySide2.QtCore.QStateMachine.configuration": (),
- "PySide2.QtCore.QStateMachine.defaultAnimations": (),
- "PySide2.QtCore.QStateMachine.endMicrostep": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QStateMachine.endSelectTransitions": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QStateMachine.error": (),
- "PySide2.QtCore.QStateMachine.errorString": (),
- "PySide2.QtCore.QStateMachine.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QStateMachine.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtCore.QStateMachine.globalRestorePolicy": (),
- "PySide2.QtCore.QStateMachine.isAnimated": (),
- "PySide2.QtCore.QStateMachine.isRunning": (),
- "PySide2.QtCore.QStateMachine.onEntry": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QStateMachine.onExit": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QStateMachine.postDelayedEvent": ('PySide2.QtCore.QEvent', 'int'),
- "PySide2.QtCore.QStateMachine.postEvent": ('PySide2.QtCore.QEvent', 'PySide2.QtCore.QStateMachine.EventPriority'),
- "PySide2.QtCore.QStateMachine.removeDefaultAnimation": ('PySide2.QtCore.QAbstractAnimation',),
- "PySide2.QtCore.QStateMachine.removeState": ('PySide2.QtCore.QAbstractState',),
- "PySide2.QtCore.QStateMachine.setAnimated": ('bool',),
- "PySide2.QtCore.QStateMachine.setGlobalRestorePolicy": ('PySide2.QtCore.QState.RestorePolicy',),
- "PySide2.QtCore.QStateMachine.setRunning": ('bool',),
- "PySide2.QtCore.QStateMachine.start": (),
- "PySide2.QtCore.QStateMachine.stop": (),
-# class PySide2.QtCore.QStorageInfo:
- "PySide2.QtCore.QStorageInfo.__init__": [(), ('PySide2.QtCore.QDir',), ('PySide2.QtCore.QStorageInfo',), ('str',)],
- "PySide2.QtCore.QStorageInfo.__copy__": (),
- "PySide2.QtCore.QStorageInfo.blockSize": (),
- "PySide2.QtCore.QStorageInfo.bytesAvailable": (),
- "PySide2.QtCore.QStorageInfo.bytesFree": (),
- "PySide2.QtCore.QStorageInfo.bytesTotal": (),
- "PySide2.QtCore.QStorageInfo.device": (),
- "PySide2.QtCore.QStorageInfo.displayName": (),
- "PySide2.QtCore.QStorageInfo.fileSystemType": (),
- "PySide2.QtCore.QStorageInfo.isReadOnly": (),
- "PySide2.QtCore.QStorageInfo.isReady": (),
- "PySide2.QtCore.QStorageInfo.isRoot": (),
- "PySide2.QtCore.QStorageInfo.isValid": (),
- "PySide2.QtCore.QStorageInfo.mountedVolumes": (),
- "PySide2.QtCore.QStorageInfo.name": (),
- "PySide2.QtCore.QStorageInfo.refresh": (),
- "PySide2.QtCore.QStorageInfo.root": (),
- "PySide2.QtCore.QStorageInfo.rootPath": (),
- "PySide2.QtCore.QStorageInfo.setPath": ('str',),
- "PySide2.QtCore.QStorageInfo.subvolume": (),
- "PySide2.QtCore.QStorageInfo.swap": ('PySide2.QtCore.QStorageInfo',),
-# class PySide2.QtCore.QStringListModel:
- "PySide2.QtCore.QStringListModel.__init__": [('PySide2.QtCore.QObject',), ('typing.Sequence', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QStringListModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QStringListModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QStringListModel.insertRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QStringListModel.itemData": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QStringListModel.moveRows": ('PySide2.QtCore.QModelIndex', 'int', 'int', 'PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QStringListModel.removeRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QStringListModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QStringListModel.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
- "PySide2.QtCore.QStringListModel.setItemData": ('PySide2.QtCore.QModelIndex', 'typing.Dict'),
- "PySide2.QtCore.QStringListModel.setStringList": ('typing.Sequence',),
- "PySide2.QtCore.QStringListModel.sibling": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QStringListModel.sort": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtCore.QStringListModel.stringList": (),
- "PySide2.QtCore.QStringListModel.supportedDropActions": (),
-# class PySide2.QtCore.QSysInfo:
-# class PySide2.QtCore.QSysInfo.Endian:
-# class PySide2.QtCore.QSysInfo.Sizes:
-# class PySide2.QtCore.QSysInfo.WinVersion:
- "PySide2.QtCore.QSysInfo.__init__": (),
- "PySide2.QtCore.QSysInfo.bootUniqueId": (),
- "PySide2.QtCore.QSysInfo.buildAbi": (),
- "PySide2.QtCore.QSysInfo.buildCpuArchitecture": (),
- "PySide2.QtCore.QSysInfo.currentCpuArchitecture": (),
- "PySide2.QtCore.QSysInfo.kernelType": (),
- "PySide2.QtCore.QSysInfo.kernelVersion": (),
- "PySide2.QtCore.QSysInfo.machineHostName": (),
- "PySide2.QtCore.QSysInfo.machineUniqueId": (),
- "PySide2.QtCore.QSysInfo.prettyProductName": (),
- "PySide2.QtCore.QSysInfo.productType": (),
- "PySide2.QtCore.QSysInfo.productVersion": (),
- "PySide2.QtCore.QSysInfo.windowsVersion": (),
-# class PySide2.QtCore.QSystemSemaphore:
-# class PySide2.QtCore.QSystemSemaphore.AccessMode:
-# class PySide2.QtCore.QSystemSemaphore.SystemSemaphoreError:
- "PySide2.QtCore.QSystemSemaphore.__init__": ('str', 'int', 'PySide2.QtCore.QSystemSemaphore.AccessMode'),
- "PySide2.QtCore.QSystemSemaphore.acquire": (),
- "PySide2.QtCore.QSystemSemaphore.error": (),
- "PySide2.QtCore.QSystemSemaphore.errorString": (),
- "PySide2.QtCore.QSystemSemaphore.key": (),
- "PySide2.QtCore.QSystemSemaphore.release": ('int',),
- "PySide2.QtCore.QSystemSemaphore.setKey": ('str', 'int', 'PySide2.QtCore.QSystemSemaphore.AccessMode'),
-# class PySide2.QtCore.QTemporaryDir:
- "PySide2.QtCore.QTemporaryDir.__init__": [(), ('str',)],
- "PySide2.QtCore.QTemporaryDir.autoRemove": (),
- "PySide2.QtCore.QTemporaryDir.errorString": (),
- "PySide2.QtCore.QTemporaryDir.filePath": ('str',),
- "PySide2.QtCore.QTemporaryDir.isValid": (),
- "PySide2.QtCore.QTemporaryDir.path": (),
- "PySide2.QtCore.QTemporaryDir.remove": (),
- "PySide2.QtCore.QTemporaryDir.setAutoRemove": ('bool',),
-# class PySide2.QtCore.QTemporaryFile:
- "PySide2.QtCore.QTemporaryFile.__init__": [(), ('PySide2.QtCore.QObject',), ('str',), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QTemporaryFile.autoRemove": (),
- "PySide2.QtCore.QTemporaryFile.createLocalFile": [('PySide2.QtCore.QFile',), ('str',)],
- "PySide2.QtCore.QTemporaryFile.createNativeFile": [('PySide2.QtCore.QFile',), ('str',)],
- "PySide2.QtCore.QTemporaryFile.fileName": (),
- "PySide2.QtCore.QTemporaryFile.fileTemplate": (),
- "PySide2.QtCore.QTemporaryFile.open": [(), ('PySide2.QtCore.QIODevice.OpenMode',)],
- "PySide2.QtCore.QTemporaryFile.rename": ('str',),
- "PySide2.QtCore.QTemporaryFile.setAutoRemove": ('bool',),
- "PySide2.QtCore.QTemporaryFile.setFileTemplate": ('str',),
-# class PySide2.QtCore.QTextBoundaryFinder:
-# class PySide2.QtCore.QTextBoundaryFinder.BoundaryReason:
-# class PySide2.QtCore.QTextBoundaryFinder.BoundaryReasons:
-# class PySide2.QtCore.QTextBoundaryFinder.BoundaryType:
- "PySide2.QtCore.QTextBoundaryFinder.__init__": [(), ('PySide2.QtCore.QTextBoundaryFinder',), ('PySide2.QtCore.QTextBoundaryFinder.BoundaryType', 'str')],
- "PySide2.QtCore.QTextBoundaryFinder.__copy__": (),
- "PySide2.QtCore.QTextBoundaryFinder.boundaryReasons": (),
- "PySide2.QtCore.QTextBoundaryFinder.isAtBoundary": (),
- "PySide2.QtCore.QTextBoundaryFinder.isValid": (),
- "PySide2.QtCore.QTextBoundaryFinder.position": (),
- "PySide2.QtCore.QTextBoundaryFinder.setPosition": ('int',),
- "PySide2.QtCore.QTextBoundaryFinder.string": (),
- "PySide2.QtCore.QTextBoundaryFinder.toEnd": (),
- "PySide2.QtCore.QTextBoundaryFinder.toNextBoundary": (),
- "PySide2.QtCore.QTextBoundaryFinder.toPreviousBoundary": (),
- "PySide2.QtCore.QTextBoundaryFinder.toStart": (),
- "PySide2.QtCore.QTextBoundaryFinder.type": (),
-# class PySide2.QtCore.QTextCodec:
-# class PySide2.QtCore.QTextCodec.ConversionFlag:
-# class PySide2.QtCore.QTextCodec.ConversionFlags:
-# class PySide2.QtCore.QTextCodec.ConverterState:
- "PySide2.QtCore.QTextCodec.ConverterState.__init__": ('PySide2.QtCore.QTextCodec.ConversionFlags',),
- "PySide2.QtCore.QTextCodec.__init__": (),
- "PySide2.QtCore.QTextCodec.aliases": (),
- "PySide2.QtCore.QTextCodec.availableCodecs": (),
- "PySide2.QtCore.QTextCodec.availableMibs": (),
- "PySide2.QtCore.QTextCodec.canEncode": ('str',),
- "PySide2.QtCore.QTextCodec.codecForHtml": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QTextCodec')],
- "PySide2.QtCore.QTextCodec.codecForLocale": (),
- "PySide2.QtCore.QTextCodec.codecForMib": ('int',),
- "PySide2.QtCore.QTextCodec.codecForName": [('PySide2.QtCore.QByteArray',), ('bytes',)],
- "PySide2.QtCore.QTextCodec.codecForUtfText": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QTextCodec')],
- "PySide2.QtCore.QTextCodec.convertToUnicode": ('bytes', 'int', 'PySide2.QtCore.QTextCodec.ConverterState'),
- "PySide2.QtCore.QTextCodec.fromUnicode": ('str',),
- "PySide2.QtCore.QTextCodec.makeDecoder": ('PySide2.QtCore.QTextCodec.ConversionFlags',),
- "PySide2.QtCore.QTextCodec.makeEncoder": ('PySide2.QtCore.QTextCodec.ConversionFlags',),
- "PySide2.QtCore.QTextCodec.mibEnum": (),
- "PySide2.QtCore.QTextCodec.name": (),
- "PySide2.QtCore.QTextCodec.setCodecForLocale": ('PySide2.QtCore.QTextCodec',),
- "PySide2.QtCore.QTextCodec.toUnicode": [('PySide2.QtCore.QByteArray',), ('bytes',), ('bytes', 'int', 'PySide2.QtCore.QTextCodec.ConverterState')],
-# class PySide2.QtCore.QTextDecoder:
- "PySide2.QtCore.QTextDecoder.__init__": [('PySide2.QtCore.QTextCodec',), ('PySide2.QtCore.QTextCodec', 'PySide2.QtCore.QTextCodec.ConversionFlags')],
- "PySide2.QtCore.QTextDecoder.hasFailure": (),
- "PySide2.QtCore.QTextDecoder.needsMoreData": (),
- "PySide2.QtCore.QTextDecoder.toUnicode": ('PySide2.QtCore.QByteArray',),
-# class PySide2.QtCore.QTextEncoder:
- "PySide2.QtCore.QTextEncoder.__init__": [('PySide2.QtCore.QTextCodec',), ('PySide2.QtCore.QTextCodec', 'PySide2.QtCore.QTextCodec.ConversionFlags')],
- "PySide2.QtCore.QTextEncoder.fromUnicode": ('str',),
- "PySide2.QtCore.QTextEncoder.hasFailure": (),
-# class PySide2.QtCore.QTextStream:
-# class PySide2.QtCore.QTextStream.FieldAlignment:
-# class PySide2.QtCore.QTextStream.NumberFlag:
-# class PySide2.QtCore.QTextStream.NumberFlags:
-# class PySide2.QtCore.QTextStream.RealNumberNotation:
-# class PySide2.QtCore.QTextStream.Status:
- "PySide2.QtCore.QTextStream.__init__": [(), ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QIODevice.OpenMode'), ('PySide2.QtCore.QIODevice',)],
- "PySide2.QtCore.QTextStream.__lshift__": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QTextStreamManipulator',), ('float',), ('int',), ('str',)],
- "PySide2.QtCore.QTextStream.__rshift__": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QTextStream.atEnd": (),
- "PySide2.QtCore.QTextStream.autoDetectUnicode": (),
- "PySide2.QtCore.QTextStream.codec": (),
- "PySide2.QtCore.QTextStream.device": (),
- "PySide2.QtCore.QTextStream.fieldAlignment": (),
- "PySide2.QtCore.QTextStream.fieldWidth": (),
- "PySide2.QtCore.QTextStream.flush": (),
- "PySide2.QtCore.QTextStream.generateByteOrderMark": (),
- "PySide2.QtCore.QTextStream.integerBase": (),
- "PySide2.QtCore.QTextStream.locale": (),
- "PySide2.QtCore.QTextStream.numberFlags": (),
- "PySide2.QtCore.QTextStream.padChar": (),
- "PySide2.QtCore.QTextStream.pos": (),
- "PySide2.QtCore.QTextStream.read": ('int',),
- "PySide2.QtCore.QTextStream.readAll": (),
- "PySide2.QtCore.QTextStream.readLine": ('int',),
- "PySide2.QtCore.QTextStream.realNumberNotation": (),
- "PySide2.QtCore.QTextStream.realNumberPrecision": (),
- "PySide2.QtCore.QTextStream.reset": (),
- "PySide2.QtCore.QTextStream.resetStatus": (),
- "PySide2.QtCore.QTextStream.seek": ('int',),
- "PySide2.QtCore.QTextStream.setAutoDetectUnicode": ('bool',),
- "PySide2.QtCore.QTextStream.setCodec": [('PySide2.QtCore.QTextCodec',), ('bytes',)],
- "PySide2.QtCore.QTextStream.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtCore.QTextStream.setFieldAlignment": ('PySide2.QtCore.QTextStream.FieldAlignment',),
- "PySide2.QtCore.QTextStream.setFieldWidth": ('int',),
- "PySide2.QtCore.QTextStream.setGenerateByteOrderMark": ('bool',),
- "PySide2.QtCore.QTextStream.setIntegerBase": ('int',),
- "PySide2.QtCore.QTextStream.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtCore.QTextStream.setNumberFlags": ('PySide2.QtCore.QTextStream.NumberFlags',),
- "PySide2.QtCore.QTextStream.setPadChar": ('str',),
- "PySide2.QtCore.QTextStream.setRealNumberNotation": ('PySide2.QtCore.QTextStream.RealNumberNotation',),
- "PySide2.QtCore.QTextStream.setRealNumberPrecision": ('int',),
- "PySide2.QtCore.QTextStream.setStatus": ('PySide2.QtCore.QTextStream.Status',),
- "PySide2.QtCore.QTextStream.skipWhiteSpace": (),
- "PySide2.QtCore.QTextStream.status": (),
- "PySide2.QtCore.QTextStream.string": (),
-# class PySide2.QtCore.QTextStreamManipulator:
- "PySide2.QtCore.QTextStreamManipulator.__copy__": (),
- "PySide2.QtCore.QTextStreamManipulator.exec_": ('PySide2.QtCore.QTextStream',),
-# class PySide2.QtCore.QThread:
-# class PySide2.QtCore.QThread.Priority:
- "PySide2.QtCore.QThread.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QThread.currentThread": (),
- "PySide2.QtCore.QThread.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QThread.eventDispatcher": (),
- "PySide2.QtCore.QThread.exec_": (),
- "PySide2.QtCore.QThread.exit": ('int',),
- "PySide2.QtCore.QThread.idealThreadCount": (),
- "PySide2.QtCore.QThread.isFinished": (),
- "PySide2.QtCore.QThread.isInterruptionRequested": (),
- "PySide2.QtCore.QThread.isRunning": (),
- "PySide2.QtCore.QThread.loopLevel": (),
- "PySide2.QtCore.QThread.msleep": ('int',),
- "PySide2.QtCore.QThread.priority": (),
- "PySide2.QtCore.QThread.quit": (),
- "PySide2.QtCore.QThread.requestInterruption": (),
- "PySide2.QtCore.QThread.run": (),
- "PySide2.QtCore.QThread.setEventDispatcher": ('PySide2.QtCore.QAbstractEventDispatcher',),
- "PySide2.QtCore.QThread.setPriority": ('PySide2.QtCore.QThread.Priority',),
- "PySide2.QtCore.QThread.setStackSize": ('int',),
- "PySide2.QtCore.QThread.setTerminationEnabled": ('bool',),
- "PySide2.QtCore.QThread.sleep": ('int',),
- "PySide2.QtCore.QThread.stackSize": (),
- "PySide2.QtCore.QThread.start": ('PySide2.QtCore.QThread.Priority',),
- "PySide2.QtCore.QThread.terminate": (),
- "PySide2.QtCore.QThread.usleep": ('int',),
- "PySide2.QtCore.QThread.wait": ('int',),
- "PySide2.QtCore.QThread.yieldCurrentThread": (),
-# class PySide2.QtCore.QThreadPool:
- "PySide2.QtCore.QThreadPool.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QThreadPool.activeThreadCount": (),
- "PySide2.QtCore.QThreadPool.cancel": ('PySide2.QtCore.QRunnable',),
- "PySide2.QtCore.QThreadPool.clear": (),
- "PySide2.QtCore.QThreadPool.expiryTimeout": (),
- "PySide2.QtCore.QThreadPool.globalInstance": (),
- "PySide2.QtCore.QThreadPool.maxThreadCount": (),
- "PySide2.QtCore.QThreadPool.releaseThread": (),
- "PySide2.QtCore.QThreadPool.reserveThread": (),
- "PySide2.QtCore.QThreadPool.setExpiryTimeout": ('int',),
- "PySide2.QtCore.QThreadPool.setMaxThreadCount": ('int',),
- "PySide2.QtCore.QThreadPool.setStackSize": ('int',),
- "PySide2.QtCore.QThreadPool.stackSize": (),
- "PySide2.QtCore.QThreadPool.start": ('PySide2.QtCore.QRunnable', 'int'),
- "PySide2.QtCore.QThreadPool.tryStart": ('PySide2.QtCore.QRunnable',),
- "PySide2.QtCore.QThreadPool.tryTake": ('PySide2.QtCore.QRunnable',),
- "PySide2.QtCore.QThreadPool.waitForDone": ('int',),
-# class PySide2.QtCore.QTime:
- "PySide2.QtCore.QTime.__init__": [(), ('PySide2.QtCore.QTime',), ('int', 'int', 'int', 'int')],
- "PySide2.QtCore.QTime.__copy__": (),
- "PySide2.QtCore.QTime.__reduce__": (),
- "PySide2.QtCore.QTime.__repr__": (),
- "PySide2.QtCore.QTime.addMSecs": ('int',),
- "PySide2.QtCore.QTime.addSecs": ('int',),
- "PySide2.QtCore.QTime.currentTime": (),
- "PySide2.QtCore.QTime.elapsed": (),
- "PySide2.QtCore.QTime.fromMSecsSinceStartOfDay": ('int',),
- "PySide2.QtCore.QTime.fromString": [('str', 'PySide2.QtCore.Qt.DateFormat'), ('str', 'str')],
- "PySide2.QtCore.QTime.hour": (),
- "PySide2.QtCore.QTime.isNull": (),
- "PySide2.QtCore.QTime.isValid": [(), ('int', 'int', 'int', 'int')],
- "PySide2.QtCore.QTime.minute": (),
- "PySide2.QtCore.QTime.msec": (),
- "PySide2.QtCore.QTime.msecsSinceStartOfDay": (),
- "PySide2.QtCore.QTime.msecsTo": ('PySide2.QtCore.QTime',),
- "PySide2.QtCore.QTime.restart": (),
- "PySide2.QtCore.QTime.second": (),
- "PySide2.QtCore.QTime.secsTo": ('PySide2.QtCore.QTime',),
- "PySide2.QtCore.QTime.setHMS": ('int', 'int', 'int', 'int'),
- "PySide2.QtCore.QTime.start": (),
- "PySide2.QtCore.QTime.toPython": (),
- "PySide2.QtCore.QTime.toString": [('PySide2.QtCore.Qt.DateFormat',), ('str',)],
-# class PySide2.QtCore.QTimeLine:
-# class PySide2.QtCore.QTimeLine.CurveShape:
-# class PySide2.QtCore.QTimeLine.Direction:
-# class PySide2.QtCore.QTimeLine.State:
- "PySide2.QtCore.QTimeLine.__init__": ('int', 'PySide2.QtCore.QObject'),
- "PySide2.QtCore.QTimeLine.currentFrame": (),
- "PySide2.QtCore.QTimeLine.currentTime": (),
- "PySide2.QtCore.QTimeLine.currentValue": (),
- "PySide2.QtCore.QTimeLine.curveShape": (),
- "PySide2.QtCore.QTimeLine.direction": (),
- "PySide2.QtCore.QTimeLine.duration": (),
- "PySide2.QtCore.QTimeLine.easingCurve": (),
- "PySide2.QtCore.QTimeLine.endFrame": (),
- "PySide2.QtCore.QTimeLine.frameForTime": ('int',),
- "PySide2.QtCore.QTimeLine.loopCount": (),
- "PySide2.QtCore.QTimeLine.resume": (),
- "PySide2.QtCore.QTimeLine.setCurrentTime": ('int',),
- "PySide2.QtCore.QTimeLine.setCurveShape": ('PySide2.QtCore.QTimeLine.CurveShape',),
- "PySide2.QtCore.QTimeLine.setDirection": ('PySide2.QtCore.QTimeLine.Direction',),
- "PySide2.QtCore.QTimeLine.setDuration": ('int',),
- "PySide2.QtCore.QTimeLine.setEasingCurve": ('PySide2.QtCore.QEasingCurve',),
- "PySide2.QtCore.QTimeLine.setEndFrame": ('int',),
- "PySide2.QtCore.QTimeLine.setFrameRange": ('int', 'int'),
- "PySide2.QtCore.QTimeLine.setLoopCount": ('int',),
- "PySide2.QtCore.QTimeLine.setPaused": ('bool',),
- "PySide2.QtCore.QTimeLine.setStartFrame": ('int',),
- "PySide2.QtCore.QTimeLine.setUpdateInterval": ('int',),
- "PySide2.QtCore.QTimeLine.start": (),
- "PySide2.QtCore.QTimeLine.startFrame": (),
- "PySide2.QtCore.QTimeLine.state": (),
- "PySide2.QtCore.QTimeLine.stop": (),
- "PySide2.QtCore.QTimeLine.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtCore.QTimeLine.toggleDirection": (),
- "PySide2.QtCore.QTimeLine.updateInterval": (),
- "PySide2.QtCore.QTimeLine.valueForTime": ('int',),
-# class PySide2.QtCore.QTimeZone:
-# class PySide2.QtCore.QTimeZone.NameType:
-# class PySide2.QtCore.QTimeZone.OffsetData:
- "PySide2.QtCore.QTimeZone.OffsetData.__init__": [(), ('PySide2.QtCore.QTimeZone.OffsetData',)],
- "PySide2.QtCore.QTimeZone.OffsetData.__copy__": (),
-# class PySide2.QtCore.QTimeZone.TimeType:
- "PySide2.QtCore.QTimeZone.__init__": [(), ('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QByteArray', 'int', 'str', 'str', 'PySide2.QtCore.QLocale.Country', 'str'), ('PySide2.QtCore.QTimeZone',), ('int',)],
- "PySide2.QtCore.QTimeZone.__copy__": (),
- "PySide2.QtCore.QTimeZone.abbreviation": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QTimeZone.availableTimeZoneIds": [(), ('PySide2.QtCore.QLocale.Country',), ('int',)],
- "PySide2.QtCore.QTimeZone.comment": (),
- "PySide2.QtCore.QTimeZone.country": (),
- "PySide2.QtCore.QTimeZone.daylightTimeOffset": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QTimeZone.displayName": [('PySide2.QtCore.QDateTime', 'PySide2.QtCore.QTimeZone.NameType', 'PySide2.QtCore.QLocale'), ('PySide2.QtCore.QTimeZone.TimeType', 'PySide2.QtCore.QTimeZone.NameType', 'PySide2.QtCore.QLocale')],
- "PySide2.QtCore.QTimeZone.hasDaylightTime": (),
- "PySide2.QtCore.QTimeZone.hasTransitions": (),
- "PySide2.QtCore.QTimeZone.ianaIdToWindowsId": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QTimeZone.id": (),
- "PySide2.QtCore.QTimeZone.isDaylightTime": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QTimeZone.isTimeZoneIdAvailable": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QTimeZone.isValid": (),
- "PySide2.QtCore.QTimeZone.nextTransition": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QTimeZone.offsetData": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QTimeZone.offsetFromUtc": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QTimeZone.previousTransition": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QTimeZone.standardTimeOffset": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QTimeZone.swap": ('PySide2.QtCore.QTimeZone',),
- "PySide2.QtCore.QTimeZone.systemTimeZone": (),
- "PySide2.QtCore.QTimeZone.systemTimeZoneId": (),
- "PySide2.QtCore.QTimeZone.transitions": ('PySide2.QtCore.QDateTime', 'PySide2.QtCore.QDateTime'),
- "PySide2.QtCore.QTimeZone.utc": (),
- "PySide2.QtCore.QTimeZone.windowsIdToDefaultIanaId": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QLocale.Country')],
- "PySide2.QtCore.QTimeZone.windowsIdToIanaIds": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QLocale.Country')],
-# class PySide2.QtCore.QTimer:
- "PySide2.QtCore.QTimer.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QTimer.interval": (),
- "PySide2.QtCore.QTimer.isActive": (),
- "PySide2.QtCore.QTimer.isSingleShot": (),
- "PySide2.QtCore.QTimer.killTimer": ('int',),
- "PySide2.QtCore.QTimer.remainingTime": (),
- "PySide2.QtCore.QTimer.setInterval": ('int',),
- "PySide2.QtCore.QTimer.setSingleShot": ('bool',),
- "PySide2.QtCore.QTimer.setTimerType": ('PySide2.QtCore.Qt.TimerType',),
- "PySide2.QtCore.QTimer.singleShot": [('int', 'PySide2.QtCore.QObject', 'bytes'), ('int', 'PySide2.QtCore.Qt.TimerType', 'PySide2.QtCore.QObject', 'bytes'), ('int', 'typing.Callable')],
- "PySide2.QtCore.QTimer.start": [(), ('int',)],
- "PySide2.QtCore.QTimer.stop": (),
- "PySide2.QtCore.QTimer.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtCore.QTimer.timerId": (),
- "PySide2.QtCore.QTimer.timerType": (),
-# class PySide2.QtCore.QTimerEvent:
- "PySide2.QtCore.QTimerEvent.__init__": ('int',),
- "PySide2.QtCore.QTimerEvent.timerId": (),
-# class PySide2.QtCore.QTranslator:
- "PySide2.QtCore.QTranslator.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QTranslator.isEmpty": (),
- "PySide2.QtCore.QTranslator.load": [('PySide2.QtCore.QLocale', 'str', 'str', 'str', 'str'), ('bytes', 'int', 'str'), ('str', 'str', 'str', 'str')],
- "PySide2.QtCore.QTranslator.translate": ('bytes', 'bytes', 'bytes', 'int'),
-# class PySide2.QtCore.QTransposeProxyModel:
- "PySide2.QtCore.QTransposeProxyModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QTransposeProxyModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QTransposeProxyModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtCore.QTransposeProxyModel.index": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QTransposeProxyModel.insertColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QTransposeProxyModel.insertRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QTransposeProxyModel.itemData": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QTransposeProxyModel.mapFromSource": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QTransposeProxyModel.mapToSource": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QTransposeProxyModel.moveColumns": ('PySide2.QtCore.QModelIndex', 'int', 'int', 'PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QTransposeProxyModel.moveRows": ('PySide2.QtCore.QModelIndex', 'int', 'int', 'PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QTransposeProxyModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtCore.QTransposeProxyModel.removeColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QTransposeProxyModel.removeRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QTransposeProxyModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QTransposeProxyModel.setHeaderData": ('int', 'PySide2.QtCore.Qt.Orientation', 'typing.Any', 'int'),
- "PySide2.QtCore.QTransposeProxyModel.setItemData": ('PySide2.QtCore.QModelIndex', 'typing.Dict'),
- "PySide2.QtCore.QTransposeProxyModel.setSourceModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCore.QTransposeProxyModel.sort": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtCore.QTransposeProxyModel.span": ('PySide2.QtCore.QModelIndex',),
-# class PySide2.QtCore.QUrl:
-# class PySide2.QtCore.QUrl.ComponentFormattingOption:
-# class PySide2.QtCore.QUrl.FormattingOptions:
-# class PySide2.QtCore.QUrl.ParsingMode:
-# class PySide2.QtCore.QUrl.UrlFormattingOption:
-# class PySide2.QtCore.QUrl.UserInputResolutionOption:
-# class PySide2.QtCore.QUrl.UserInputResolutionOptions:
- "PySide2.QtCore.QUrl.__init__": [(), ('PySide2.QtCore.QUrl',), ('str', 'PySide2.QtCore.QUrl.ParsingMode')],
- "PySide2.QtCore.QUrl.__copy__": (),
- "PySide2.QtCore.QUrl.__reduce__": (),
- "PySide2.QtCore.QUrl.__repr__": (),
- "PySide2.QtCore.QUrl.adjusted": ('PySide2.QtCore.QUrl.FormattingOptions',),
- "PySide2.QtCore.QUrl.authority": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrl.clear": (),
- "PySide2.QtCore.QUrl.errorString": (),
- "PySide2.QtCore.QUrl.fileName": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrl.fragment": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrl.fromAce": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QUrl.fromEncoded": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtCore.QUrl.fromLocalFile": ('str',),
- "PySide2.QtCore.QUrl.fromPercentEncoding": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QUrl.fromStringList": ('typing.Sequence', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtCore.QUrl.fromUserInput": [('str',), ('str', 'str', 'PySide2.QtCore.QUrl.UserInputResolutionOptions')],
- "PySide2.QtCore.QUrl.hasFragment": (),
- "PySide2.QtCore.QUrl.hasQuery": (),
- "PySide2.QtCore.QUrl.host": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrl.idnWhitelist": (),
- "PySide2.QtCore.QUrl.isEmpty": (),
- "PySide2.QtCore.QUrl.isLocalFile": (),
- "PySide2.QtCore.QUrl.isParentOf": ('PySide2.QtCore.QUrl',),
- "PySide2.QtCore.QUrl.isRelative": (),
- "PySide2.QtCore.QUrl.isValid": (),
- "PySide2.QtCore.QUrl.matches": ('PySide2.QtCore.QUrl', 'PySide2.QtCore.QUrl.FormattingOptions'),
- "PySide2.QtCore.QUrl.password": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrl.path": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrl.port": ('int',),
- "PySide2.QtCore.QUrl.query": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrl.resolved": ('PySide2.QtCore.QUrl',),
- "PySide2.QtCore.QUrl.scheme": (),
- "PySide2.QtCore.QUrl.setAuthority": ('str', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtCore.QUrl.setFragment": ('str', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtCore.QUrl.setHost": ('str', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtCore.QUrl.setIdnWhitelist": ('typing.Sequence',),
- "PySide2.QtCore.QUrl.setPassword": ('str', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtCore.QUrl.setPath": ('str', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtCore.QUrl.setPort": ('int',),
- "PySide2.QtCore.QUrl.setQuery": [('PySide2.QtCore.QUrlQuery',), ('str', 'PySide2.QtCore.QUrl.ParsingMode')],
- "PySide2.QtCore.QUrl.setScheme": ('str',),
- "PySide2.QtCore.QUrl.setUrl": ('str', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtCore.QUrl.setUserInfo": ('str', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtCore.QUrl.setUserName": ('str', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtCore.QUrl.swap": ('PySide2.QtCore.QUrl',),
- "PySide2.QtCore.QUrl.toAce": ('str',),
- "PySide2.QtCore.QUrl.toDisplayString": ('PySide2.QtCore.QUrl.FormattingOptions',),
- "PySide2.QtCore.QUrl.toEncoded": ('PySide2.QtCore.QUrl.FormattingOptions',),
- "PySide2.QtCore.QUrl.toLocalFile": (),
- "PySide2.QtCore.QUrl.toPercentEncoding": ('str', 'PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtCore.QUrl.toString": ('PySide2.QtCore.QUrl.FormattingOptions',),
- "PySide2.QtCore.QUrl.toStringList": ('typing.Sequence', 'PySide2.QtCore.QUrl.FormattingOptions'),
- "PySide2.QtCore.QUrl.topLevelDomain": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrl.url": ('PySide2.QtCore.QUrl.FormattingOptions',),
- "PySide2.QtCore.QUrl.userInfo": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrl.userName": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
-# class PySide2.QtCore.QUrlQuery:
- "PySide2.QtCore.QUrlQuery.__init__": [(), ('PySide2.QtCore.QUrl',), ('PySide2.QtCore.QUrlQuery',), ('str',)],
- "PySide2.QtCore.QUrlQuery.__copy__": (),
- "PySide2.QtCore.QUrlQuery.addQueryItem": ('str', 'str'),
- "PySide2.QtCore.QUrlQuery.allQueryItemValues": ('str', 'PySide2.QtCore.QUrl.ComponentFormattingOption'),
- "PySide2.QtCore.QUrlQuery.clear": (),
- "PySide2.QtCore.QUrlQuery.defaultQueryPairDelimiter": (),
- "PySide2.QtCore.QUrlQuery.defaultQueryValueDelimiter": (),
- "PySide2.QtCore.QUrlQuery.hasQueryItem": ('str',),
- "PySide2.QtCore.QUrlQuery.isEmpty": (),
- "PySide2.QtCore.QUrlQuery.query": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrlQuery.queryItemValue": ('str', 'PySide2.QtCore.QUrl.ComponentFormattingOption'),
- "PySide2.QtCore.QUrlQuery.queryItems": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrlQuery.queryPairDelimiter": (),
- "PySide2.QtCore.QUrlQuery.queryValueDelimiter": (),
- "PySide2.QtCore.QUrlQuery.removeAllQueryItems": ('str',),
- "PySide2.QtCore.QUrlQuery.removeQueryItem": ('str',),
- "PySide2.QtCore.QUrlQuery.setQuery": ('str',),
- "PySide2.QtCore.QUrlQuery.setQueryDelimiters": ('str', 'str'),
- "PySide2.QtCore.QUrlQuery.setQueryItems": ('typing.Sequence',),
- "PySide2.QtCore.QUrlQuery.swap": ('PySide2.QtCore.QUrlQuery',),
- "PySide2.QtCore.QUrlQuery.toString": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
-# class PySide2.QtCore.QUuid:
-# class PySide2.QtCore.QUuid.StringFormat:
-# class PySide2.QtCore.QUuid.Variant:
-# class PySide2.QtCore.QUuid.Version:
- "PySide2.QtCore.QUuid.__init__": [(), ('PySide2.QtCore.QByteArray',), ('bytes',), ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'), ('str',)],
- "PySide2.QtCore.QUuid.__copy__": (),
- "PySide2.QtCore.QUuid.__reduce__": (),
- "PySide2.QtCore.QUuid.__repr__": (),
- "PySide2.QtCore.QUuid.createUuid": (),
- "PySide2.QtCore.QUuid.createUuidV3": [('PySide2.QtCore.QUuid', 'PySide2.QtCore.QByteArray'), ('PySide2.QtCore.QUuid', 'str')],
- "PySide2.QtCore.QUuid.createUuidV5": [('PySide2.QtCore.QUuid', 'PySide2.QtCore.QByteArray'), ('PySide2.QtCore.QUuid', 'str')],
- "PySide2.QtCore.QUuid.fromRfc4122": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QUuid.isNull": (),
- "PySide2.QtCore.QUuid.toByteArray": [(), ('PySide2.QtCore.QUuid.StringFormat',)],
- "PySide2.QtCore.QUuid.toRfc4122": (),
- "PySide2.QtCore.QUuid.toString": [(), ('PySide2.QtCore.QUuid.StringFormat',)],
- "PySide2.QtCore.QUuid.variant": (),
- "PySide2.QtCore.QUuid.version": (),
-# class PySide2.QtCore.QVariantAnimation:
- "PySide2.QtCore.QVariantAnimation.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QVariantAnimation.currentValue": (),
- "PySide2.QtCore.QVariantAnimation.duration": (),
- "PySide2.QtCore.QVariantAnimation.easingCurve": (),
- "PySide2.QtCore.QVariantAnimation.endValue": (),
- "PySide2.QtCore.QVariantAnimation.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QVariantAnimation.interpolated": ('typing.Any', 'typing.Any', 'float'),
- "PySide2.QtCore.QVariantAnimation.keyValueAt": ('float',),
- "PySide2.QtCore.QVariantAnimation.keyValues": (),
- "PySide2.QtCore.QVariantAnimation.setDuration": ('int',),
- "PySide2.QtCore.QVariantAnimation.setEasingCurve": ('PySide2.QtCore.QEasingCurve',),
- "PySide2.QtCore.QVariantAnimation.setEndValue": ('typing.Any',),
- "PySide2.QtCore.QVariantAnimation.setKeyValueAt": ('float', 'typing.Any'),
- "PySide2.QtCore.QVariantAnimation.setKeyValues": ('typing.List',),
- "PySide2.QtCore.QVariantAnimation.setStartValue": ('typing.Any',),
- "PySide2.QtCore.QVariantAnimation.startValue": (),
- "PySide2.QtCore.QVariantAnimation.updateCurrentTime": ('int',),
- "PySide2.QtCore.QVariantAnimation.updateCurrentValue": ('typing.Any',),
- "PySide2.QtCore.QVariantAnimation.updateState": ('PySide2.QtCore.QAbstractAnimation.State', 'PySide2.QtCore.QAbstractAnimation.State'),
-# class PySide2.QtCore.QVersionNumber:
- "PySide2.QtCore.QVersionNumber.__init__": [(), ('int',), ('int', 'int'), ('int', 'int', 'int'), ('typing.List',)],
- "PySide2.QtCore.QVersionNumber.__copy__": (),
- "PySide2.QtCore.QVersionNumber.commonPrefix": ('PySide2.QtCore.QVersionNumber', 'PySide2.QtCore.QVersionNumber'),
- "PySide2.QtCore.QVersionNumber.compare": ('PySide2.QtCore.QVersionNumber', 'PySide2.QtCore.QVersionNumber'),
- "PySide2.QtCore.QVersionNumber.fromString": ('str',),
- "PySide2.QtCore.QVersionNumber.isNormalized": (),
- "PySide2.QtCore.QVersionNumber.isNull": (),
- "PySide2.QtCore.QVersionNumber.isPrefixOf": ('PySide2.QtCore.QVersionNumber',),
- "PySide2.QtCore.QVersionNumber.majorVersion": (),
- "PySide2.QtCore.QVersionNumber.microVersion": (),
- "PySide2.QtCore.QVersionNumber.minorVersion": (),
- "PySide2.QtCore.QVersionNumber.normalized": (),
- "PySide2.QtCore.QVersionNumber.segmentAt": ('int',),
- "PySide2.QtCore.QVersionNumber.segmentCount": (),
- "PySide2.QtCore.QVersionNumber.segments": (),
- "PySide2.QtCore.QVersionNumber.toString": (),
-# class PySide2.QtCore.QWaitCondition:
- "PySide2.QtCore.QWaitCondition.__init__": (),
- "PySide2.QtCore.QWaitCondition.notify_all": (),
- "PySide2.QtCore.QWaitCondition.notify_one": (),
- "PySide2.QtCore.QWaitCondition.wait": [('PySide2.QtCore.QMutex', 'PySide2.QtCore.QDeadlineTimer'), ('PySide2.QtCore.QMutex', 'int'), ('PySide2.QtCore.QReadWriteLock', 'PySide2.QtCore.QDeadlineTimer'), ('PySide2.QtCore.QReadWriteLock', 'int')],
- "PySide2.QtCore.QWaitCondition.wakeAll": (),
- "PySide2.QtCore.QWaitCondition.wakeOne": (),
-# class PySide2.QtCore.QWinEventNotifier:
- "PySide2.QtCore.QWinEventNotifier.__init__": [('PySide2.QtCore.QObject',), ('int', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QWinEventNotifier.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QWinEventNotifier.handle": (),
- "PySide2.QtCore.QWinEventNotifier.isEnabled": (),
- "PySide2.QtCore.QWinEventNotifier.setEnabled": ('bool',),
- "PySide2.QtCore.QWinEventNotifier.setHandle": ('int',),
-# class PySide2.QtCore.QWriteLocker:
- "PySide2.QtCore.QWriteLocker.__init__": ('PySide2.QtCore.QReadWriteLock',),
- "PySide2.QtCore.QWriteLocker.__enter__": (),
- "PySide2.QtCore.QWriteLocker.__exit__": ('object', 'object', 'object'),
- "PySide2.QtCore.QWriteLocker.readWriteLock": (),
- "PySide2.QtCore.QWriteLocker.relock": (),
- "PySide2.QtCore.QWriteLocker.unlock": (),
-# class PySide2.QtCore.QXmlStreamAttribute:
- "PySide2.QtCore.QXmlStreamAttribute.__init__": [(), ('PySide2.QtCore.QXmlStreamAttribute',), ('str', 'str'), ('str', 'str', 'str')],
- "PySide2.QtCore.QXmlStreamAttribute.__copy__": (),
- "PySide2.QtCore.QXmlStreamAttribute.isDefault": (),
- "PySide2.QtCore.QXmlStreamAttribute.name": (),
- "PySide2.QtCore.QXmlStreamAttribute.namespaceUri": (),
- "PySide2.QtCore.QXmlStreamAttribute.prefix": (),
- "PySide2.QtCore.QXmlStreamAttribute.qualifiedName": (),
- "PySide2.QtCore.QXmlStreamAttribute.value": (),
-# class PySide2.QtCore.QXmlStreamAttributes:
- "PySide2.QtCore.QXmlStreamAttributes.__init__": [(), ('PySide2.QtCore.QXmlStreamAttributes',)],
- "PySide2.QtCore.QXmlStreamAttributes.__add__": ('typing.List',),
- "PySide2.QtCore.QXmlStreamAttributes.__copy__": (),
- "PySide2.QtCore.QXmlStreamAttributes.__iadd__": ('PySide2.QtCore.QXmlStreamAttribute',),
- "PySide2.QtCore.QXmlStreamAttributes.__lshift__": [('PySide2.QtCore.QXmlStreamAttribute',), ('typing.List',)],
- "PySide2.QtCore.QXmlStreamAttributes.append": [('str', 'str'), ('str', 'str', 'str')],
- "PySide2.QtCore.QXmlStreamAttributes.at": ('int',),
- "PySide2.QtCore.QXmlStreamAttributes.back": (),
- "PySide2.QtCore.QXmlStreamAttributes.capacity": (),
- "PySide2.QtCore.QXmlStreamAttributes.clear": (),
- "PySide2.QtCore.QXmlStreamAttributes.constData": (),
- "PySide2.QtCore.QXmlStreamAttributes.constFirst": (),
- "PySide2.QtCore.QXmlStreamAttributes.constLast": (),
- "PySide2.QtCore.QXmlStreamAttributes.contains": ('PySide2.QtCore.QXmlStreamAttribute',),
- "PySide2.QtCore.QXmlStreamAttributes.count": [(), ('PySide2.QtCore.QXmlStreamAttribute',)],
- "PySide2.QtCore.QXmlStreamAttributes.data": (),
- "PySide2.QtCore.QXmlStreamAttributes.empty": (),
- "PySide2.QtCore.QXmlStreamAttributes.endsWith": ('PySide2.QtCore.QXmlStreamAttribute',),
- "PySide2.QtCore.QXmlStreamAttributes.fill": ('PySide2.QtCore.QXmlStreamAttribute', 'int'),
- "PySide2.QtCore.QXmlStreamAttributes.first": (),
- "PySide2.QtCore.QXmlStreamAttributes.front": (),
- "PySide2.QtCore.QXmlStreamAttributes.hasAttribute": [('str',), ('str', 'str')],
- "PySide2.QtCore.QXmlStreamAttributes.indexOf": ('PySide2.QtCore.QXmlStreamAttribute', 'int'),
- "PySide2.QtCore.QXmlStreamAttributes.insert": [('int', 'PySide2.QtCore.QXmlStreamAttribute'), ('int', 'int', 'PySide2.QtCore.QXmlStreamAttribute')],
- "PySide2.QtCore.QXmlStreamAttributes.isEmpty": (),
- "PySide2.QtCore.QXmlStreamAttributes.isSharedWith": ('typing.List',),
- "PySide2.QtCore.QXmlStreamAttributes.last": (),
- "PySide2.QtCore.QXmlStreamAttributes.lastIndexOf": ('PySide2.QtCore.QXmlStreamAttribute', 'int'),
- "PySide2.QtCore.QXmlStreamAttributes.length": (),
- "PySide2.QtCore.QXmlStreamAttributes.mid": ('int', 'int'),
- "PySide2.QtCore.QXmlStreamAttributes.move": ('int', 'int'),
- "PySide2.QtCore.QXmlStreamAttributes.prepend": ('PySide2.QtCore.QXmlStreamAttribute',),
- "PySide2.QtCore.QXmlStreamAttributes.remove": [('int',), ('int', 'int')],
- "PySide2.QtCore.QXmlStreamAttributes.removeAll": ('PySide2.QtCore.QXmlStreamAttribute',),
- "PySide2.QtCore.QXmlStreamAttributes.removeAt": ('int',),
- "PySide2.QtCore.QXmlStreamAttributes.removeFirst": (),
- "PySide2.QtCore.QXmlStreamAttributes.removeLast": (),
- "PySide2.QtCore.QXmlStreamAttributes.removeOne": ('PySide2.QtCore.QXmlStreamAttribute',),
- "PySide2.QtCore.QXmlStreamAttributes.replace": ('int', 'PySide2.QtCore.QXmlStreamAttribute'),
- "PySide2.QtCore.QXmlStreamAttributes.reserve": ('int',),
- "PySide2.QtCore.QXmlStreamAttributes.resize": ('int',),
- "PySide2.QtCore.QXmlStreamAttributes.setSharable": ('bool',),
- "PySide2.QtCore.QXmlStreamAttributes.shrink_to_fit": (),
- "PySide2.QtCore.QXmlStreamAttributes.size": (),
- "PySide2.QtCore.QXmlStreamAttributes.squeeze": (),
- "PySide2.QtCore.QXmlStreamAttributes.startsWith": ('PySide2.QtCore.QXmlStreamAttribute',),
- "PySide2.QtCore.QXmlStreamAttributes.swap": ('typing.List',),
- "PySide2.QtCore.QXmlStreamAttributes.swapItemsAt": ('int', 'int'),
- "PySide2.QtCore.QXmlStreamAttributes.takeAt": ('int',),
- "PySide2.QtCore.QXmlStreamAttributes.takeFirst": (),
- "PySide2.QtCore.QXmlStreamAttributes.takeLast": (),
- "PySide2.QtCore.QXmlStreamAttributes.value": [('str',), ('str', 'str')],
-# class PySide2.QtCore.QXmlStreamEntityDeclaration:
- "PySide2.QtCore.QXmlStreamEntityDeclaration.__init__": [(), ('PySide2.QtCore.QXmlStreamEntityDeclaration',)],
- "PySide2.QtCore.QXmlStreamEntityDeclaration.__copy__": (),
- "PySide2.QtCore.QXmlStreamEntityDeclaration.name": (),
- "PySide2.QtCore.QXmlStreamEntityDeclaration.notationName": (),
- "PySide2.QtCore.QXmlStreamEntityDeclaration.publicId": (),
- "PySide2.QtCore.QXmlStreamEntityDeclaration.systemId": (),
- "PySide2.QtCore.QXmlStreamEntityDeclaration.value": (),
-# class PySide2.QtCore.QXmlStreamEntityResolver:
- "PySide2.QtCore.QXmlStreamEntityResolver.__init__": (),
- "PySide2.QtCore.QXmlStreamEntityResolver.resolveEntity": ('str', 'str'),
- "PySide2.QtCore.QXmlStreamEntityResolver.resolveUndeclaredEntity": ('str',),
-# class PySide2.QtCore.QXmlStreamNamespaceDeclaration:
- "PySide2.QtCore.QXmlStreamNamespaceDeclaration.__init__": [(), ('PySide2.QtCore.QXmlStreamNamespaceDeclaration',), ('str', 'str')],
- "PySide2.QtCore.QXmlStreamNamespaceDeclaration.__copy__": (),
- "PySide2.QtCore.QXmlStreamNamespaceDeclaration.namespaceUri": (),
- "PySide2.QtCore.QXmlStreamNamespaceDeclaration.prefix": (),
-# class PySide2.QtCore.QXmlStreamNotationDeclaration:
- "PySide2.QtCore.QXmlStreamNotationDeclaration.__init__": [(), ('PySide2.QtCore.QXmlStreamNotationDeclaration',)],
- "PySide2.QtCore.QXmlStreamNotationDeclaration.__copy__": (),
- "PySide2.QtCore.QXmlStreamNotationDeclaration.name": (),
- "PySide2.QtCore.QXmlStreamNotationDeclaration.publicId": (),
- "PySide2.QtCore.QXmlStreamNotationDeclaration.systemId": (),
-# class PySide2.QtCore.QXmlStreamReader:
-# class PySide2.QtCore.QXmlStreamReader.Error:
-# class PySide2.QtCore.QXmlStreamReader.ReadElementTextBehaviour:
-# class PySide2.QtCore.QXmlStreamReader.TokenType:
- "PySide2.QtCore.QXmlStreamReader.__init__": [(), ('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QIODevice',), ('bytes',), ('str',)],
- "PySide2.QtCore.QXmlStreamReader.addData": [('PySide2.QtCore.QByteArray',), ('bytes',), ('str',)],
- "PySide2.QtCore.QXmlStreamReader.addExtraNamespaceDeclaration": ('PySide2.QtCore.QXmlStreamNamespaceDeclaration',),
- "PySide2.QtCore.QXmlStreamReader.addExtraNamespaceDeclarations": ('typing.List',),
- "PySide2.QtCore.QXmlStreamReader.atEnd": (),
- "PySide2.QtCore.QXmlStreamReader.attributes": (),
- "PySide2.QtCore.QXmlStreamReader.characterOffset": (),
- "PySide2.QtCore.QXmlStreamReader.clear": (),
- "PySide2.QtCore.QXmlStreamReader.columnNumber": (),
- "PySide2.QtCore.QXmlStreamReader.device": (),
- "PySide2.QtCore.QXmlStreamReader.documentEncoding": (),
- "PySide2.QtCore.QXmlStreamReader.documentVersion": (),
- "PySide2.QtCore.QXmlStreamReader.dtdName": (),
- "PySide2.QtCore.QXmlStreamReader.dtdPublicId": (),
- "PySide2.QtCore.QXmlStreamReader.dtdSystemId": (),
- "PySide2.QtCore.QXmlStreamReader.entityDeclarations": (),
- "PySide2.QtCore.QXmlStreamReader.entityResolver": (),
- "PySide2.QtCore.QXmlStreamReader.error": (),
- "PySide2.QtCore.QXmlStreamReader.errorString": (),
- "PySide2.QtCore.QXmlStreamReader.hasError": (),
- "PySide2.QtCore.QXmlStreamReader.isCDATA": (),
- "PySide2.QtCore.QXmlStreamReader.isCharacters": (),
- "PySide2.QtCore.QXmlStreamReader.isComment": (),
- "PySide2.QtCore.QXmlStreamReader.isDTD": (),
- "PySide2.QtCore.QXmlStreamReader.isEndDocument": (),
- "PySide2.QtCore.QXmlStreamReader.isEndElement": (),
- "PySide2.QtCore.QXmlStreamReader.isEntityReference": (),
- "PySide2.QtCore.QXmlStreamReader.isProcessingInstruction": (),
- "PySide2.QtCore.QXmlStreamReader.isStandaloneDocument": (),
- "PySide2.QtCore.QXmlStreamReader.isStartDocument": (),
- "PySide2.QtCore.QXmlStreamReader.isStartElement": (),
- "PySide2.QtCore.QXmlStreamReader.isWhitespace": (),
- "PySide2.QtCore.QXmlStreamReader.lineNumber": (),
- "PySide2.QtCore.QXmlStreamReader.name": (),
- "PySide2.QtCore.QXmlStreamReader.namespaceDeclarations": (),
- "PySide2.QtCore.QXmlStreamReader.namespaceProcessing": (),
- "PySide2.QtCore.QXmlStreamReader.namespaceUri": (),
- "PySide2.QtCore.QXmlStreamReader.notationDeclarations": (),
- "PySide2.QtCore.QXmlStreamReader.prefix": (),
- "PySide2.QtCore.QXmlStreamReader.processingInstructionData": (),
- "PySide2.QtCore.QXmlStreamReader.processingInstructionTarget": (),
- "PySide2.QtCore.QXmlStreamReader.qualifiedName": (),
- "PySide2.QtCore.QXmlStreamReader.raiseError": ('str',),
- "PySide2.QtCore.QXmlStreamReader.readElementText": ('PySide2.QtCore.QXmlStreamReader.ReadElementTextBehaviour',),
- "PySide2.QtCore.QXmlStreamReader.readNext": (),
- "PySide2.QtCore.QXmlStreamReader.readNextStartElement": (),
- "PySide2.QtCore.QXmlStreamReader.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtCore.QXmlStreamReader.setEntityResolver": ('PySide2.QtCore.QXmlStreamEntityResolver',),
- "PySide2.QtCore.QXmlStreamReader.setNamespaceProcessing": ('bool',),
- "PySide2.QtCore.QXmlStreamReader.skipCurrentElement": (),
- "PySide2.QtCore.QXmlStreamReader.text": (),
- "PySide2.QtCore.QXmlStreamReader.tokenString": (),
- "PySide2.QtCore.QXmlStreamReader.tokenType": (),
-# class PySide2.QtCore.QXmlStreamWriter:
- "PySide2.QtCore.QXmlStreamWriter.__init__": [(), ('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QIODevice',)],
- "PySide2.QtCore.QXmlStreamWriter.autoFormatting": (),
- "PySide2.QtCore.QXmlStreamWriter.autoFormattingIndent": (),
- "PySide2.QtCore.QXmlStreamWriter.codec": (),
- "PySide2.QtCore.QXmlStreamWriter.device": (),
- "PySide2.QtCore.QXmlStreamWriter.hasError": (),
- "PySide2.QtCore.QXmlStreamWriter.setAutoFormatting": ('bool',),
- "PySide2.QtCore.QXmlStreamWriter.setAutoFormattingIndent": ('int',),
- "PySide2.QtCore.QXmlStreamWriter.setCodec": [('PySide2.QtCore.QTextCodec',), ('bytes',)],
- "PySide2.QtCore.QXmlStreamWriter.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtCore.QXmlStreamWriter.writeAttribute": [('PySide2.QtCore.QXmlStreamAttribute',), ('str', 'str'), ('str', 'str', 'str')],
- "PySide2.QtCore.QXmlStreamWriter.writeAttributes": ('PySide2.QtCore.QXmlStreamAttributes',),
- "PySide2.QtCore.QXmlStreamWriter.writeCDATA": ('str',),
- "PySide2.QtCore.QXmlStreamWriter.writeCharacters": ('str',),
- "PySide2.QtCore.QXmlStreamWriter.writeComment": ('str',),
- "PySide2.QtCore.QXmlStreamWriter.writeCurrentToken": ('PySide2.QtCore.QXmlStreamReader',),
- "PySide2.QtCore.QXmlStreamWriter.writeDTD": ('str',),
- "PySide2.QtCore.QXmlStreamWriter.writeDefaultNamespace": ('str',),
- "PySide2.QtCore.QXmlStreamWriter.writeEmptyElement": [('str',), ('str', 'str')],
- "PySide2.QtCore.QXmlStreamWriter.writeEndDocument": (),
- "PySide2.QtCore.QXmlStreamWriter.writeEndElement": (),
- "PySide2.QtCore.QXmlStreamWriter.writeEntityReference": ('str',),
- "PySide2.QtCore.QXmlStreamWriter.writeNamespace": ('str', 'str'),
- "PySide2.QtCore.QXmlStreamWriter.writeProcessingInstruction": ('str', 'str'),
- "PySide2.QtCore.QXmlStreamWriter.writeStartDocument": [(), ('str',), ('str', 'bool')],
- "PySide2.QtCore.QXmlStreamWriter.writeStartElement": [('str',), ('str', 'str')],
- "PySide2.QtCore.QXmlStreamWriter.writeTextElement": [('str', 'str'), ('str', 'str', 'str')],
-# class PySide2.QtCore.Qt:
-# class PySide2.QtCore.Qt.Alignment:
-# class PySide2.QtCore.Qt.AlignmentFlag:
-# class PySide2.QtCore.Qt.AnchorPoint:
-# class PySide2.QtCore.Qt.ApplicationAttribute:
-# class PySide2.QtCore.Qt.ApplicationState:
-# class PySide2.QtCore.Qt.ApplicationStates:
-# class PySide2.QtCore.Qt.ArrowType:
-# class PySide2.QtCore.Qt.AspectRatioMode:
-# class PySide2.QtCore.Qt.Axis:
-# class PySide2.QtCore.Qt.BGMode:
-# class PySide2.QtCore.Qt.BrushStyle:
-# class PySide2.QtCore.Qt.CaseSensitivity:
-# class PySide2.QtCore.Qt.CheckState:
-# class PySide2.QtCore.Qt.ChecksumType:
-# class PySide2.QtCore.Qt.ClipOperation:
-# class PySide2.QtCore.Qt.ConnectionType:
-# class PySide2.QtCore.Qt.ContextMenuPolicy:
-# class PySide2.QtCore.Qt.CoordinateSystem:
-# class PySide2.QtCore.Qt.Corner:
-# class PySide2.QtCore.Qt.CursorMoveStyle:
-# class PySide2.QtCore.Qt.CursorShape:
-# class PySide2.QtCore.Qt.DateFormat:
-# class PySide2.QtCore.Qt.DayOfWeek:
-# class PySide2.QtCore.Qt.DockWidgetArea:
-# class PySide2.QtCore.Qt.DockWidgetAreaSizes:
-# class PySide2.QtCore.Qt.DockWidgetAreas:
-# class PySide2.QtCore.Qt.DropAction:
-# class PySide2.QtCore.Qt.DropActions:
-# class PySide2.QtCore.Qt.Edge:
-# class PySide2.QtCore.Qt.Edges:
-# class PySide2.QtCore.Qt.EnterKeyType:
-# class PySide2.QtCore.Qt.EventPriority:
-# class PySide2.QtCore.Qt.FillRule:
-# class PySide2.QtCore.Qt.FindChildOption:
-# class PySide2.QtCore.Qt.FindChildOptions:
-# class PySide2.QtCore.Qt.FocusPolicy:
-# class PySide2.QtCore.Qt.FocusReason:
-# class PySide2.QtCore.Qt.GestureFlag:
-# class PySide2.QtCore.Qt.GestureFlags:
-# class PySide2.QtCore.Qt.GestureState:
-# class PySide2.QtCore.Qt.GestureType:
-# class PySide2.QtCore.Qt.GlobalColor:
-# class PySide2.QtCore.Qt.HighDpiScaleFactorRoundingPolicy:
-# class PySide2.QtCore.Qt.HitTestAccuracy:
-# class PySide2.QtCore.Qt.ImageConversionFlag:
-# class PySide2.QtCore.Qt.ImageConversionFlags:
-# class PySide2.QtCore.Qt.InputMethodHint:
-# class PySide2.QtCore.Qt.InputMethodHints:
-# class PySide2.QtCore.Qt.InputMethodQueries:
-# class PySide2.QtCore.Qt.InputMethodQuery:
-# class PySide2.QtCore.Qt.ItemDataRole:
-# class PySide2.QtCore.Qt.ItemFlag:
-# class PySide2.QtCore.Qt.ItemFlags:
-# class PySide2.QtCore.Qt.ItemSelectionMode:
-# class PySide2.QtCore.Qt.ItemSelectionOperation:
-# class PySide2.QtCore.Qt.Key:
-# class PySide2.QtCore.Qt.KeyboardModifier:
-# class PySide2.QtCore.Qt.KeyboardModifiers:
-# class PySide2.QtCore.Qt.LayoutDirection:
-# class PySide2.QtCore.Qt.MaskMode:
-# class PySide2.QtCore.Qt.MatchFlag:
-# class PySide2.QtCore.Qt.MatchFlags:
-# class PySide2.QtCore.Qt.Modifier:
-# class PySide2.QtCore.Qt.MouseButton:
-# class PySide2.QtCore.Qt.MouseButtons:
-# class PySide2.QtCore.Qt.MouseEventFlag:
-# class PySide2.QtCore.Qt.MouseEventFlags:
-# class PySide2.QtCore.Qt.MouseEventSource:
-# class PySide2.QtCore.Qt.NativeGestureType:
-# class PySide2.QtCore.Qt.NavigationMode:
-# class PySide2.QtCore.Qt.Orientation:
-# class PySide2.QtCore.Qt.Orientations:
-# class PySide2.QtCore.Qt.PenCapStyle:
-# class PySide2.QtCore.Qt.PenJoinStyle:
-# class PySide2.QtCore.Qt.PenStyle:
-# class PySide2.QtCore.Qt.ScreenOrientation:
-# class PySide2.QtCore.Qt.ScreenOrientations:
-# class PySide2.QtCore.Qt.ScrollBarPolicy:
-# class PySide2.QtCore.Qt.ScrollPhase:
-# class PySide2.QtCore.Qt.ShortcutContext:
-# class PySide2.QtCore.Qt.SizeHint:
-# class PySide2.QtCore.Qt.SizeMode:
-# class PySide2.QtCore.Qt.SortOrder:
-# class PySide2.QtCore.Qt.SplitBehavior:
-# class PySide2.QtCore.Qt.SplitBehaviorFlags:
-# class PySide2.QtCore.Qt.TabFocusBehavior:
-# class PySide2.QtCore.Qt.TextElideMode:
-# class PySide2.QtCore.Qt.TextFlag:
-# class PySide2.QtCore.Qt.TextFormat:
-# class PySide2.QtCore.Qt.TextInteractionFlag:
-# class PySide2.QtCore.Qt.TextInteractionFlags:
-# class PySide2.QtCore.Qt.TileRule:
-# class PySide2.QtCore.Qt.TimeSpec:
-# class PySide2.QtCore.Qt.TimerType:
-# class PySide2.QtCore.Qt.ToolBarArea:
-# class PySide2.QtCore.Qt.ToolBarAreaSizes:
-# class PySide2.QtCore.Qt.ToolBarAreas:
-# class PySide2.QtCore.Qt.ToolButtonStyle:
-# class PySide2.QtCore.Qt.TouchPointState:
-# class PySide2.QtCore.Qt.TouchPointStates:
-# class PySide2.QtCore.Qt.TransformationMode:
-# class PySide2.QtCore.Qt.UIEffect:
-# class PySide2.QtCore.Qt.WhiteSpaceMode:
-# class PySide2.QtCore.Qt.WidgetAttribute:
-# class PySide2.QtCore.Qt.WindowFlags:
-# class PySide2.QtCore.Qt.WindowFrameSection:
-# class PySide2.QtCore.Qt.WindowModality:
-# class PySide2.QtCore.Qt.WindowState:
-# class PySide2.QtCore.Qt.WindowStates:
-# class PySide2.QtCore.Qt.WindowType:
-# class PySide2.QtCore.QtMsgType:
-# class PySide2.QtCore.Signal:
- "PySide2.QtCore.Signal.__init__": ('type', 'str', 'str'),
-# class PySide2.QtCore.SignalInstance:
- "PySide2.QtCore.SignalInstance.connect": ('object', 'type'),
- "PySide2.QtCore.SignalInstance.disconnect": ('object',),
- "PySide2.QtCore.SignalInstance.emit": ('typing.Any',),
-# class PySide2.QtCore.Slot:
- "PySide2.QtCore.Slot.__init__": ('type', 'str', 'str'),
- "PySide2.QtCore.Slot.QT_TRANSLATE_NOOP": ('object', 'object'),
- "PySide2.QtCore.Slot.QT_TRANSLATE_NOOP3": ('object', 'object', 'object'),
- "PySide2.QtCore.Slot.QT_TRANSLATE_NOOP_UTF8": ('object',),
- "PySide2.QtCore.Slot.QT_TR_NOOP": ('object',),
- "PySide2.QtCore.Slot.QT_TR_NOOP_UTF8": ('object',),
- "PySide2.QtCore.Slot.SIGNAL": ('bytes',),
- "PySide2.QtCore.Slot.SLOT": ('bytes',),
- "PySide2.QtCore.Slot.__moduleShutdown": (),
- "PySide2.QtCore.Slot.qAbs": ('float',),
- "PySide2.QtCore.Slot.qAcos": ('float',),
- "PySide2.QtCore.Slot.qAddPostRoutine": ('object',),
- "PySide2.QtCore.Slot.qAsin": ('float',),
- "PySide2.QtCore.Slot.qAtan": ('float',),
- "PySide2.QtCore.Slot.qAtan2": ('float', 'float'),
- "PySide2.QtCore.Slot.qChecksum": ('bytes', 'int'),
- "PySide2.QtCore.Slot.qCompress": [('PySide2.QtCore.QByteArray', 'int'), ('bytes', 'int', 'int')],
- "PySide2.QtCore.Slot.qCritical": ('bytes',),
- "PySide2.QtCore.Slot.qDebug": ('bytes',),
- "PySide2.QtCore.Slot.qExp": ('float',),
- "PySide2.QtCore.Slot.qFabs": ('float',),
- "PySide2.QtCore.Slot.qFastCos": ('float',),
- "PySide2.QtCore.Slot.qFastSin": ('float',),
- "PySide2.QtCore.Slot.qFatal": ('bytes',),
- "PySide2.QtCore.Slot.qFuzzyCompare": ('float', 'float'),
- "PySide2.QtCore.Slot.qFuzzyIsNull": ('float',),
- "PySide2.QtCore.Slot.qInstallMessageHandler": ('object',),
- "PySide2.QtCore.Slot.qIsFinite": ('float',),
- "PySide2.QtCore.Slot.qIsInf": ('float',),
- "PySide2.QtCore.Slot.qIsNaN": ('float',),
- "PySide2.QtCore.Slot.qIsNull": ('float',),
- "PySide2.QtCore.Slot.qRegisterResourceData": ('int', 'bytes', 'bytes', 'bytes'),
- "PySide2.QtCore.Slot.qTan": ('float',),
- "PySide2.QtCore.Slot.qUncompress": [('PySide2.QtCore.QByteArray',), ('bytes', 'int')],
- "PySide2.QtCore.Slot.qUnregisterResourceData": ('int', 'bytes', 'bytes', 'bytes'),
- "PySide2.QtCore.Slot.qVersion": (),
- "PySide2.QtCore.Slot.qWarning": ('bytes',),
- "PySide2.QtCore.Slot.qrand": (),
- "PySide2.QtCore.Slot.qsrand": ('int',),
- "PySide2.QtCore.Slot.qtTrId": ('bytes', 'int'),
- }) if "PySide2.QtCore" in sys.modules else None
-# Module PySide2.QtGui
-sig_dict.update({
-# class PySide2.QtGui.QAbstractOpenGLFunctions:
- "PySide2.QtGui.QAbstractOpenGLFunctions.__init__": (),
- "PySide2.QtGui.QAbstractOpenGLFunctions.initializeOpenGLFunctions": (),
- "PySide2.QtGui.QAbstractOpenGLFunctions.isInitialized": (),
- "PySide2.QtGui.QAbstractOpenGLFunctions.owningContext": (),
- "PySide2.QtGui.QAbstractOpenGLFunctions.setOwningContext": ('PySide2.QtGui.QOpenGLContext',),
-# class PySide2.QtGui.QAbstractTextDocumentLayout:
-# class PySide2.QtGui.QAbstractTextDocumentLayout.PaintContext:
- "PySide2.QtGui.QAbstractTextDocumentLayout.PaintContext.__init__": [(), ('PySide2.QtGui.QAbstractTextDocumentLayout.PaintContext',)],
- "PySide2.QtGui.QAbstractTextDocumentLayout.PaintContext.__copy__": (),
-# class PySide2.QtGui.QAbstractTextDocumentLayout.Selection:
- "PySide2.QtGui.QAbstractTextDocumentLayout.Selection.__init__": [(), ('PySide2.QtGui.QAbstractTextDocumentLayout.Selection',)],
- "PySide2.QtGui.QAbstractTextDocumentLayout.Selection.__copy__": (),
- "PySide2.QtGui.QAbstractTextDocumentLayout.__init__": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.anchorAt": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.blockBoundingRect": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.blockWithMarkerAt": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.document": (),
- "PySide2.QtGui.QAbstractTextDocumentLayout.documentChanged": ('int', 'int', 'int'),
- "PySide2.QtGui.QAbstractTextDocumentLayout.documentSize": (),
- "PySide2.QtGui.QAbstractTextDocumentLayout.draw": ('PySide2.QtGui.QPainter', 'PySide2.QtGui.QAbstractTextDocumentLayout.PaintContext'),
- "PySide2.QtGui.QAbstractTextDocumentLayout.drawInlineObject": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF', 'PySide2.QtGui.QTextInlineObject', 'int', 'PySide2.QtGui.QTextFormat'),
- "PySide2.QtGui.QAbstractTextDocumentLayout.format": ('int',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.formatAt": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.formatIndex": ('int',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.frameBoundingRect": ('PySide2.QtGui.QTextFrame',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.handlerForObject": ('int',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.hitTest": ('PySide2.QtCore.QPointF', 'PySide2.QtCore.Qt.HitTestAccuracy'),
- "PySide2.QtGui.QAbstractTextDocumentLayout.imageAt": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.pageCount": (),
- "PySide2.QtGui.QAbstractTextDocumentLayout.paintDevice": (),
- "PySide2.QtGui.QAbstractTextDocumentLayout.positionInlineObject": ('PySide2.QtGui.QTextInlineObject', 'int', 'PySide2.QtGui.QTextFormat'),
- "PySide2.QtGui.QAbstractTextDocumentLayout.registerHandler": ('int', 'PySide2.QtCore.QObject'),
- "PySide2.QtGui.QAbstractTextDocumentLayout.resizeInlineObject": ('PySide2.QtGui.QTextInlineObject', 'int', 'PySide2.QtGui.QTextFormat'),
- "PySide2.QtGui.QAbstractTextDocumentLayout.setPaintDevice": ('PySide2.QtGui.QPaintDevice',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.unregisterHandler": ('int', 'PySide2.QtCore.QObject'),
-# class PySide2.QtGui.QAccessible:
-# class PySide2.QtGui.QAccessible.Event:
-# class PySide2.QtGui.QAccessible.InterfaceType:
-# class PySide2.QtGui.QAccessible.Relation:
-# class PySide2.QtGui.QAccessible.RelationFlag:
-# class PySide2.QtGui.QAccessible.Role:
-# class PySide2.QtGui.QAccessible.State:
- "PySide2.QtGui.QAccessible.State.__init__": [(), ('PySide2.QtGui.QAccessible.State',)],
- "PySide2.QtGui.QAccessible.State.__copy__": (),
-# class PySide2.QtGui.QAccessible.Text:
-# class PySide2.QtGui.QAccessible.TextBoundaryType:
- "PySide2.QtGui.QAccessible.__copy__": (),
- "PySide2.QtGui.QAccessible.accessibleInterface": ('int',),
- "PySide2.QtGui.QAccessible.cleanup": (),
- "PySide2.QtGui.QAccessible.deleteAccessibleInterface": ('int',),
- "PySide2.QtGui.QAccessible.isActive": (),
- "PySide2.QtGui.QAccessible.qAccessibleTextBoundaryHelper": ('PySide2.QtGui.QTextCursor', 'PySide2.QtGui.QAccessible.TextBoundaryType'),
- "PySide2.QtGui.QAccessible.queryAccessibleInterface": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QAccessible.registerAccessibleInterface": ('PySide2.QtGui.QAccessibleInterface',),
- "PySide2.QtGui.QAccessible.setActive": ('bool',),
- "PySide2.QtGui.QAccessible.setRootObject": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QAccessible.uniqueId": ('PySide2.QtGui.QAccessibleInterface',),
- "PySide2.QtGui.QAccessible.updateAccessibility": ('PySide2.QtGui.QAccessibleEvent',),
-# class PySide2.QtGui.QAccessibleEditableTextInterface:
- "PySide2.QtGui.QAccessibleEditableTextInterface.__init__": (),
- "PySide2.QtGui.QAccessibleEditableTextInterface.deleteText": ('int', 'int'),
- "PySide2.QtGui.QAccessibleEditableTextInterface.insertText": ('int', 'str'),
- "PySide2.QtGui.QAccessibleEditableTextInterface.replaceText": ('int', 'int', 'str'),
-# class PySide2.QtGui.QAccessibleEvent:
- "PySide2.QtGui.QAccessibleEvent.__init__": [('PySide2.QtCore.QObject', 'PySide2.QtGui.QAccessible.Event'), ('PySide2.QtGui.QAccessibleInterface', 'PySide2.QtGui.QAccessible.Event')],
- "PySide2.QtGui.QAccessibleEvent.accessibleInterface": (),
- "PySide2.QtGui.QAccessibleEvent.child": (),
- "PySide2.QtGui.QAccessibleEvent.object": (),
- "PySide2.QtGui.QAccessibleEvent.setChild": ('int',),
- "PySide2.QtGui.QAccessibleEvent.type": (),
- "PySide2.QtGui.QAccessibleEvent.uniqueId": (),
-# class PySide2.QtGui.QAccessibleInterface:
- "PySide2.QtGui.QAccessibleInterface.__init__": (),
- "PySide2.QtGui.QAccessibleInterface.backgroundColor": (),
- "PySide2.QtGui.QAccessibleInterface.child": ('int',),
- "PySide2.QtGui.QAccessibleInterface.childAt": ('int', 'int'),
- "PySide2.QtGui.QAccessibleInterface.childCount": (),
- "PySide2.QtGui.QAccessibleInterface.editableTextInterface": (),
- "PySide2.QtGui.QAccessibleInterface.focusChild": (),
- "PySide2.QtGui.QAccessibleInterface.foregroundColor": (),
- "PySide2.QtGui.QAccessibleInterface.indexOfChild": ('PySide2.QtGui.QAccessibleInterface',),
- "PySide2.QtGui.QAccessibleInterface.interface_cast": ('PySide2.QtGui.QAccessible.InterfaceType',),
- "PySide2.QtGui.QAccessibleInterface.isValid": (),
- "PySide2.QtGui.QAccessibleInterface.object": (),
- "PySide2.QtGui.QAccessibleInterface.parent": (),
- "PySide2.QtGui.QAccessibleInterface.rect": (),
- "PySide2.QtGui.QAccessibleInterface.relations": ('PySide2.QtGui.QAccessible.Relation',),
- "PySide2.QtGui.QAccessibleInterface.role": (),
- "PySide2.QtGui.QAccessibleInterface.setText": ('PySide2.QtGui.QAccessible.Text', 'str'),
- "PySide2.QtGui.QAccessibleInterface.state": (),
- "PySide2.QtGui.QAccessibleInterface.tableCellInterface": (),
- "PySide2.QtGui.QAccessibleInterface.text": ('PySide2.QtGui.QAccessible.Text',),
- "PySide2.QtGui.QAccessibleInterface.textInterface": (),
- "PySide2.QtGui.QAccessibleInterface.valueInterface": (),
- "PySide2.QtGui.QAccessibleInterface.virtual_hook": ('int', 'int'),
- "PySide2.QtGui.QAccessibleInterface.window": (),
-# class PySide2.QtGui.QAccessibleObject:
- "PySide2.QtGui.QAccessibleObject.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QAccessibleObject.childAt": ('int', 'int'),
- "PySide2.QtGui.QAccessibleObject.isValid": (),
- "PySide2.QtGui.QAccessibleObject.object": (),
- "PySide2.QtGui.QAccessibleObject.rect": (),
- "PySide2.QtGui.QAccessibleObject.setText": ('PySide2.QtGui.QAccessible.Text', 'str'),
-# class PySide2.QtGui.QAccessibleStateChangeEvent:
- "PySide2.QtGui.QAccessibleStateChangeEvent.__init__": [('PySide2.QtCore.QObject', 'PySide2.QtGui.QAccessible.State'), ('PySide2.QtGui.QAccessibleInterface', 'PySide2.QtGui.QAccessible.State')],
- "PySide2.QtGui.QAccessibleStateChangeEvent.changedStates": (),
-# class PySide2.QtGui.QAccessibleTableCellInterface:
- "PySide2.QtGui.QAccessibleTableCellInterface.__init__": (),
- "PySide2.QtGui.QAccessibleTableCellInterface.columnExtent": (),
- "PySide2.QtGui.QAccessibleTableCellInterface.columnHeaderCells": (),
- "PySide2.QtGui.QAccessibleTableCellInterface.columnIndex": (),
- "PySide2.QtGui.QAccessibleTableCellInterface.isSelected": (),
- "PySide2.QtGui.QAccessibleTableCellInterface.rowExtent": (),
- "PySide2.QtGui.QAccessibleTableCellInterface.rowHeaderCells": (),
- "PySide2.QtGui.QAccessibleTableCellInterface.rowIndex": (),
- "PySide2.QtGui.QAccessibleTableCellInterface.table": (),
-# class PySide2.QtGui.QAccessibleTableModelChangeEvent:
-# class PySide2.QtGui.QAccessibleTableModelChangeEvent.ModelChangeType:
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.__init__": [('PySide2.QtCore.QObject', 'PySide2.QtGui.QAccessibleTableModelChangeEvent.ModelChangeType'), ('PySide2.QtGui.QAccessibleInterface', 'PySide2.QtGui.QAccessibleTableModelChangeEvent.ModelChangeType')],
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.firstColumn": (),
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.firstRow": (),
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.lastColumn": (),
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.lastRow": (),
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.modelChangeType": (),
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.setFirstColumn": ('int',),
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.setFirstRow": ('int',),
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.setLastColumn": ('int',),
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.setLastRow": ('int',),
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.setModelChangeType": ('PySide2.QtGui.QAccessibleTableModelChangeEvent.ModelChangeType',),
-# class PySide2.QtGui.QAccessibleTextCursorEvent:
- "PySide2.QtGui.QAccessibleTextCursorEvent.__init__": [('PySide2.QtCore.QObject', 'int'), ('PySide2.QtGui.QAccessibleInterface', 'int')],
- "PySide2.QtGui.QAccessibleTextCursorEvent.cursorPosition": (),
- "PySide2.QtGui.QAccessibleTextCursorEvent.setCursorPosition": ('int',),
-# class PySide2.QtGui.QAccessibleTextInsertEvent:
- "PySide2.QtGui.QAccessibleTextInsertEvent.__init__": [('PySide2.QtCore.QObject', 'int', 'str'), ('PySide2.QtGui.QAccessibleInterface', 'int', 'str')],
- "PySide2.QtGui.QAccessibleTextInsertEvent.changePosition": (),
- "PySide2.QtGui.QAccessibleTextInsertEvent.textInserted": (),
-# class PySide2.QtGui.QAccessibleTextInterface:
- "PySide2.QtGui.QAccessibleTextInterface.__init__": (),
- "PySide2.QtGui.QAccessibleTextInterface.addSelection": ('int', 'int'),
- "PySide2.QtGui.QAccessibleTextInterface.attributes": ('int',),
- "PySide2.QtGui.QAccessibleTextInterface.characterCount": (),
- "PySide2.QtGui.QAccessibleTextInterface.characterRect": ('int',),
- "PySide2.QtGui.QAccessibleTextInterface.cursorPosition": (),
- "PySide2.QtGui.QAccessibleTextInterface.offsetAtPoint": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QAccessibleTextInterface.removeSelection": ('int',),
- "PySide2.QtGui.QAccessibleTextInterface.scrollToSubstring": ('int', 'int'),
- "PySide2.QtGui.QAccessibleTextInterface.selection": ('int',),
- "PySide2.QtGui.QAccessibleTextInterface.selectionCount": (),
- "PySide2.QtGui.QAccessibleTextInterface.setCursorPosition": ('int',),
- "PySide2.QtGui.QAccessibleTextInterface.setSelection": ('int', 'int', 'int'),
- "PySide2.QtGui.QAccessibleTextInterface.text": ('int', 'int'),
- "PySide2.QtGui.QAccessibleTextInterface.textAfterOffset": ('int', 'PySide2.QtGui.QAccessible.TextBoundaryType'),
- "PySide2.QtGui.QAccessibleTextInterface.textAtOffset": ('int', 'PySide2.QtGui.QAccessible.TextBoundaryType'),
- "PySide2.QtGui.QAccessibleTextInterface.textBeforeOffset": ('int', 'PySide2.QtGui.QAccessible.TextBoundaryType'),
-# class PySide2.QtGui.QAccessibleTextRemoveEvent:
- "PySide2.QtGui.QAccessibleTextRemoveEvent.__init__": [('PySide2.QtCore.QObject', 'int', 'str'), ('PySide2.QtGui.QAccessibleInterface', 'int', 'str')],
- "PySide2.QtGui.QAccessibleTextRemoveEvent.changePosition": (),
- "PySide2.QtGui.QAccessibleTextRemoveEvent.textRemoved": (),
-# class PySide2.QtGui.QAccessibleTextSelectionEvent:
- "PySide2.QtGui.QAccessibleTextSelectionEvent.__init__": [('PySide2.QtCore.QObject', 'int', 'int'), ('PySide2.QtGui.QAccessibleInterface', 'int', 'int')],
- "PySide2.QtGui.QAccessibleTextSelectionEvent.selectionEnd": (),
- "PySide2.QtGui.QAccessibleTextSelectionEvent.selectionStart": (),
- "PySide2.QtGui.QAccessibleTextSelectionEvent.setSelection": ('int', 'int'),
-# class PySide2.QtGui.QAccessibleTextUpdateEvent:
- "PySide2.QtGui.QAccessibleTextUpdateEvent.__init__": [('PySide2.QtCore.QObject', 'int', 'str', 'str'), ('PySide2.QtGui.QAccessibleInterface', 'int', 'str', 'str')],
- "PySide2.QtGui.QAccessibleTextUpdateEvent.changePosition": (),
- "PySide2.QtGui.QAccessibleTextUpdateEvent.textInserted": (),
- "PySide2.QtGui.QAccessibleTextUpdateEvent.textRemoved": (),
-# class PySide2.QtGui.QAccessibleValueChangeEvent:
- "PySide2.QtGui.QAccessibleValueChangeEvent.__init__": [('PySide2.QtCore.QObject', 'typing.Any'), ('PySide2.QtGui.QAccessibleInterface', 'typing.Any')],
- "PySide2.QtGui.QAccessibleValueChangeEvent.setValue": ('typing.Any',),
- "PySide2.QtGui.QAccessibleValueChangeEvent.value": (),
-# class PySide2.QtGui.QAccessibleValueInterface:
- "PySide2.QtGui.QAccessibleValueInterface.__init__": (),
- "PySide2.QtGui.QAccessibleValueInterface.currentValue": (),
- "PySide2.QtGui.QAccessibleValueInterface.maximumValue": (),
- "PySide2.QtGui.QAccessibleValueInterface.minimumStepSize": (),
- "PySide2.QtGui.QAccessibleValueInterface.minimumValue": (),
- "PySide2.QtGui.QAccessibleValueInterface.setCurrentValue": ('typing.Any',),
-# class PySide2.QtGui.QActionEvent:
-# class PySide2.QtGui.QBackingStore:
- "PySide2.QtGui.QBackingStore.__init__": ('PySide2.QtGui.QWindow',),
- "PySide2.QtGui.QBackingStore.beginPaint": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QBackingStore.endPaint": (),
- "PySide2.QtGui.QBackingStore.flush": ('PySide2.QtGui.QRegion', 'PySide2.QtGui.QWindow', 'PySide2.QtCore.QPoint'),
- "PySide2.QtGui.QBackingStore.hasStaticContents": (),
- "PySide2.QtGui.QBackingStore.paintDevice": (),
- "PySide2.QtGui.QBackingStore.resize": ('PySide2.QtCore.QSize',),
- "PySide2.QtGui.QBackingStore.scroll": ('PySide2.QtGui.QRegion', 'int', 'int'),
- "PySide2.QtGui.QBackingStore.setStaticContents": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QBackingStore.size": (),
- "PySide2.QtGui.QBackingStore.staticContents": (),
- "PySide2.QtGui.QBackingStore.window": (),
-# class PySide2.QtGui.QBitmap:
- "PySide2.QtGui.QBitmap.__init__": [(), ('PySide2.QtCore.QSize',), ('PySide2.QtGui.QBitmap',), ('PySide2.QtGui.QPixmap',), ('int', 'int'), ('str', 'bytes')],
- "PySide2.QtGui.QBitmap.__copy__": (),
- "PySide2.QtGui.QBitmap.clear": (),
- "PySide2.QtGui.QBitmap.fromData": ('PySide2.QtCore.QSize', 'bytes', 'PySide2.QtGui.QImage.Format'),
- "PySide2.QtGui.QBitmap.fromImage": ('PySide2.QtGui.QImage', 'PySide2.QtCore.Qt.ImageConversionFlags'),
- "PySide2.QtGui.QBitmap.swap": [('PySide2.QtGui.QBitmap',), ('PySide2.QtGui.QPixmap',)],
- "PySide2.QtGui.QBitmap.transformed": [('PySide2.QtGui.QMatrix',), ('PySide2.QtGui.QMatrix', 'PySide2.QtCore.Qt.TransformationMode'), ('PySide2.QtGui.QTransform',)],
-# class PySide2.QtGui.QBrush:
- "PySide2.QtGui.QBrush.__init__": [(), ('PySide2.QtCore.Qt.BrushStyle',), ('PySide2.QtCore.Qt.GlobalColor', 'PySide2.QtCore.Qt.BrushStyle'), ('PySide2.QtCore.Qt.GlobalColor', 'PySide2.QtGui.QPixmap'), ('PySide2.QtGui.QBrush',), ('PySide2.QtGui.QColor', 'PySide2.QtCore.Qt.BrushStyle'), ('PySide2.QtGui.QColor', 'PySide2.QtGui.QPixmap'), ('PySide2.QtGui.QGradient',), ('PySide2.QtGui.QImage',), ('PySide2.QtGui.QPixmap',)],
- "PySide2.QtGui.QBrush.__copy__": (),
- "PySide2.QtGui.QBrush.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QBrush.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QBrush.color": (),
- "PySide2.QtGui.QBrush.gradient": (),
- "PySide2.QtGui.QBrush.isOpaque": (),
- "PySide2.QtGui.QBrush.matrix": (),
- "PySide2.QtGui.QBrush.setColor": [('PySide2.QtCore.Qt.GlobalColor',), ('PySide2.QtGui.QColor',)],
- "PySide2.QtGui.QBrush.setMatrix": ('PySide2.QtGui.QMatrix',),
- "PySide2.QtGui.QBrush.setStyle": ('PySide2.QtCore.Qt.BrushStyle',),
- "PySide2.QtGui.QBrush.setTexture": ('PySide2.QtGui.QPixmap',),
- "PySide2.QtGui.QBrush.setTextureImage": ('PySide2.QtGui.QImage',),
- "PySide2.QtGui.QBrush.setTransform": ('PySide2.QtGui.QTransform',),
- "PySide2.QtGui.QBrush.style": (),
- "PySide2.QtGui.QBrush.swap": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QBrush.texture": (),
- "PySide2.QtGui.QBrush.textureImage": (),
- "PySide2.QtGui.QBrush.transform": (),
-# class PySide2.QtGui.QClipboard:
-# class PySide2.QtGui.QClipboard.Mode:
- "PySide2.QtGui.QClipboard.clear": ('PySide2.QtGui.QClipboard.Mode',),
- "PySide2.QtGui.QClipboard.image": ('PySide2.QtGui.QClipboard.Mode',),
- "PySide2.QtGui.QClipboard.mimeData": ('PySide2.QtGui.QClipboard.Mode',),
- "PySide2.QtGui.QClipboard.ownsClipboard": (),
- "PySide2.QtGui.QClipboard.ownsFindBuffer": (),
- "PySide2.QtGui.QClipboard.ownsSelection": (),
- "PySide2.QtGui.QClipboard.pixmap": ('PySide2.QtGui.QClipboard.Mode',),
- "PySide2.QtGui.QClipboard.setImage": ('PySide2.QtGui.QImage', 'PySide2.QtGui.QClipboard.Mode'),
- "PySide2.QtGui.QClipboard.setMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtGui.QClipboard.Mode'),
- "PySide2.QtGui.QClipboard.setPixmap": ('PySide2.QtGui.QPixmap', 'PySide2.QtGui.QClipboard.Mode'),
- "PySide2.QtGui.QClipboard.setText": ('str', 'PySide2.QtGui.QClipboard.Mode'),
- "PySide2.QtGui.QClipboard.supportsFindBuffer": (),
- "PySide2.QtGui.QClipboard.supportsSelection": (),
- "PySide2.QtGui.QClipboard.text": [('PySide2.QtGui.QClipboard.Mode',), ('str', 'PySide2.QtGui.QClipboard.Mode')],
-# class PySide2.QtGui.QCloseEvent:
- "PySide2.QtGui.QCloseEvent.__init__": (),
-# class PySide2.QtGui.QColor:
-# class PySide2.QtGui.QColor.NameFormat:
-# class PySide2.QtGui.QColor.Spec:
- "PySide2.QtGui.QColor.__init__": [(), ('PySide2.QtCore.Qt.GlobalColor',), ('PySide2.QtGui.QColor',), ('int',), ('int', 'int', 'int', 'int'), ('str',), ('typing.Any',)],
- "PySide2.QtGui.QColor.__copy__": (),
- "PySide2.QtGui.QColor.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QColor.__reduce__": (),
- "PySide2.QtGui.QColor.__repr__": (),
- "PySide2.QtGui.QColor.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QColor.__setstate__": ('object',),
- "PySide2.QtGui.QColor.__str__": (),
- "PySide2.QtGui.QColor.alpha": (),
- "PySide2.QtGui.QColor.alphaF": (),
- "PySide2.QtGui.QColor.black": (),
- "PySide2.QtGui.QColor.blackF": (),
- "PySide2.QtGui.QColor.blue": (),
- "PySide2.QtGui.QColor.blueF": (),
- "PySide2.QtGui.QColor.colorNames": (),
- "PySide2.QtGui.QColor.convertTo": ('PySide2.QtGui.QColor.Spec',),
- "PySide2.QtGui.QColor.cyan": (),
- "PySide2.QtGui.QColor.cyanF": (),
- "PySide2.QtGui.QColor.dark": ('int',),
- "PySide2.QtGui.QColor.darker": ('int',),
- "PySide2.QtGui.QColor.fromCmyk": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QColor.fromCmykF": ('float', 'float', 'float', 'float', 'float'),
- "PySide2.QtGui.QColor.fromHsl": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QColor.fromHslF": ('float', 'float', 'float', 'float'),
- "PySide2.QtGui.QColor.fromHsv": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QColor.fromHsvF": ('float', 'float', 'float', 'float'),
- "PySide2.QtGui.QColor.fromRgb": [('int',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QColor.fromRgbF": ('float', 'float', 'float', 'float'),
- "PySide2.QtGui.QColor.fromRgba": ('int',),
- "PySide2.QtGui.QColor.fromRgba64": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QColor.getCmyk": (),
- "PySide2.QtGui.QColor.getCmykF": (),
- "PySide2.QtGui.QColor.getHsl": (),
- "PySide2.QtGui.QColor.getHslF": (),
- "PySide2.QtGui.QColor.getHsv": (),
- "PySide2.QtGui.QColor.getHsvF": (),
- "PySide2.QtGui.QColor.getRgb": (),
- "PySide2.QtGui.QColor.getRgbF": (),
- "PySide2.QtGui.QColor.green": (),
- "PySide2.QtGui.QColor.greenF": (),
- "PySide2.QtGui.QColor.hslHue": (),
- "PySide2.QtGui.QColor.hslHueF": (),
- "PySide2.QtGui.QColor.hslSaturation": (),
- "PySide2.QtGui.QColor.hslSaturationF": (),
- "PySide2.QtGui.QColor.hsvHue": (),
- "PySide2.QtGui.QColor.hsvHueF": (),
- "PySide2.QtGui.QColor.hsvSaturation": (),
- "PySide2.QtGui.QColor.hsvSaturationF": (),
- "PySide2.QtGui.QColor.hue": (),
- "PySide2.QtGui.QColor.hueF": (),
- "PySide2.QtGui.QColor.isValid": (),
- "PySide2.QtGui.QColor.isValidColor": ('str',),
- "PySide2.QtGui.QColor.light": ('int',),
- "PySide2.QtGui.QColor.lighter": ('int',),
- "PySide2.QtGui.QColor.lightness": (),
- "PySide2.QtGui.QColor.lightnessF": (),
- "PySide2.QtGui.QColor.magenta": (),
- "PySide2.QtGui.QColor.magentaF": (),
- "PySide2.QtGui.QColor.name": [(), ('PySide2.QtGui.QColor.NameFormat',)],
- "PySide2.QtGui.QColor.red": (),
- "PySide2.QtGui.QColor.redF": (),
- "PySide2.QtGui.QColor.rgb": (),
- "PySide2.QtGui.QColor.rgba": (),
- "PySide2.QtGui.QColor.saturation": (),
- "PySide2.QtGui.QColor.saturationF": (),
- "PySide2.QtGui.QColor.setAlpha": ('int',),
- "PySide2.QtGui.QColor.setAlphaF": ('float',),
- "PySide2.QtGui.QColor.setBlue": ('int',),
- "PySide2.QtGui.QColor.setBlueF": ('float',),
- "PySide2.QtGui.QColor.setCmyk": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QColor.setCmykF": ('float', 'float', 'float', 'float', 'float'),
- "PySide2.QtGui.QColor.setGreen": ('int',),
- "PySide2.QtGui.QColor.setGreenF": ('float',),
- "PySide2.QtGui.QColor.setHsl": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QColor.setHslF": ('float', 'float', 'float', 'float'),
- "PySide2.QtGui.QColor.setHsv": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QColor.setHsvF": ('float', 'float', 'float', 'float'),
- "PySide2.QtGui.QColor.setNamedColor": ('str',),
- "PySide2.QtGui.QColor.setRed": ('int',),
- "PySide2.QtGui.QColor.setRedF": ('float',),
- "PySide2.QtGui.QColor.setRgb": [('int',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QColor.setRgbF": ('float', 'float', 'float', 'float'),
- "PySide2.QtGui.QColor.setRgba": ('int',),
- "PySide2.QtGui.QColor.spec": (),
- "PySide2.QtGui.QColor.toCmyk": (),
- "PySide2.QtGui.QColor.toExtendedRgb": (),
- "PySide2.QtGui.QColor.toHsl": (),
- "PySide2.QtGui.QColor.toHsv": (),
- "PySide2.QtGui.QColor.toRgb": (),
- "PySide2.QtGui.QColor.toTuple": (),
- "PySide2.QtGui.QColor.value": (),
- "PySide2.QtGui.QColor.valueF": (),
- "PySide2.QtGui.QColor.yellow": (),
- "PySide2.QtGui.QColor.yellowF": (),
-# class PySide2.QtGui.QColorSpace:
-# class PySide2.QtGui.QColorSpace.NamedColorSpace:
-# class PySide2.QtGui.QColorSpace.Primaries:
-# class PySide2.QtGui.QColorSpace.TransferFunction:
- "PySide2.QtGui.QColorSpace.__init__": [(), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtGui.QColorSpace.TransferFunction', 'float'), ('PySide2.QtGui.QColorSpace',), ('PySide2.QtGui.QColorSpace.NamedColorSpace',), ('PySide2.QtGui.QColorSpace.Primaries', 'PySide2.QtGui.QColorSpace.TransferFunction', 'float'), ('PySide2.QtGui.QColorSpace.Primaries', 'float')],
- "PySide2.QtGui.QColorSpace.__copy__": (),
- "PySide2.QtGui.QColorSpace.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QColorSpace.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QColorSpace.fromIccProfile": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QColorSpace.gamma": (),
- "PySide2.QtGui.QColorSpace.iccProfile": (),
- "PySide2.QtGui.QColorSpace.isValid": (),
- "PySide2.QtGui.QColorSpace.primaries": (),
- "PySide2.QtGui.QColorSpace.setPrimaries": [('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'), ('PySide2.QtGui.QColorSpace.Primaries',)],
- "PySide2.QtGui.QColorSpace.setTransferFunction": ('PySide2.QtGui.QColorSpace.TransferFunction', 'float'),
- "PySide2.QtGui.QColorSpace.swap": ('PySide2.QtGui.QColorSpace',),
- "PySide2.QtGui.QColorSpace.transferFunction": (),
- "PySide2.QtGui.QColorSpace.withTransferFunction": ('PySide2.QtGui.QColorSpace.TransferFunction', 'float'),
-# class PySide2.QtGui.QConicalGradient:
- "PySide2.QtGui.QConicalGradient.__init__": [(), ('PySide2.QtCore.QPointF', 'float'), ('PySide2.QtGui.QConicalGradient',), ('float', 'float', 'float')],
- "PySide2.QtGui.QConicalGradient.__copy__": (),
- "PySide2.QtGui.QConicalGradient.angle": (),
- "PySide2.QtGui.QConicalGradient.center": (),
- "PySide2.QtGui.QConicalGradient.setAngle": ('float',),
- "PySide2.QtGui.QConicalGradient.setCenter": [('PySide2.QtCore.QPointF',), ('float', 'float')],
-# class PySide2.QtGui.QContextMenuEvent:
-# class PySide2.QtGui.QContextMenuEvent.Reason:
- "PySide2.QtGui.QContextMenuEvent.__init__": [('PySide2.QtGui.QContextMenuEvent.Reason', 'PySide2.QtCore.QPoint'), ('PySide2.QtGui.QContextMenuEvent.Reason', 'PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint'), ('PySide2.QtGui.QContextMenuEvent.Reason', 'PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint', 'PySide2.QtCore.Qt.KeyboardModifiers')],
- "PySide2.QtGui.QContextMenuEvent.globalPos": (),
- "PySide2.QtGui.QContextMenuEvent.globalX": (),
- "PySide2.QtGui.QContextMenuEvent.global""Y": (),
- "PySide2.QtGui.QContextMenuEvent.pos": (),
- "PySide2.QtGui.QContextMenuEvent.reason": (),
- "PySide2.QtGui.QContextMenuEvent.x": (),
- "PySide2.QtGui.QContextMenuEvent.y": (),
-# class PySide2.QtGui.QCursor:
- "PySide2.QtGui.QCursor.__init__": [(), ('PySide2.QtCore.Qt.CursorShape',), ('PySide2.QtGui.QBitmap', 'PySide2.QtGui.QBitmap', 'int', 'int'), ('PySide2.QtGui.QCursor',), ('PySide2.QtGui.QPixmap', 'int', 'int')],
- "PySide2.QtGui.QCursor.__copy__": (),
- "PySide2.QtGui.QCursor.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QCursor.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QCursor.bitmap": (),
- "PySide2.QtGui.QCursor.hotSpot": (),
- "PySide2.QtGui.QCursor.mask": (),
- "PySide2.QtGui.QCursor.pixmap": (),
- "PySide2.QtGui.QCursor.pos": [(), ('PySide2.QtGui.QScreen',)],
- "PySide2.QtGui.QCursor.setPos": [('PySide2.QtCore.QPoint',), ('PySide2.QtGui.QScreen', 'PySide2.QtCore.QPoint'), ('PySide2.QtGui.QScreen', 'int', 'int'), ('int', 'int')],
- "PySide2.QtGui.QCursor.setShape": ('PySide2.QtCore.Qt.CursorShape',),
- "PySide2.QtGui.QCursor.shape": (),
- "PySide2.QtGui.QCursor.swap": ('PySide2.QtGui.QCursor',),
-# class PySide2.QtGui.QDesktopServices:
- "PySide2.QtGui.QDesktopServices.__init__": (),
- "PySide2.QtGui.QDesktopServices.openUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtGui.QDesktopServices.setUrlHandler": ('str', 'PySide2.QtCore.QObject', 'bytes'),
- "PySide2.QtGui.QDesktopServices.unsetUrlHandler": ('str',),
-# class PySide2.QtGui.QDoubleValidator:
-# class PySide2.QtGui.QDoubleValidator.Notation:
- "PySide2.QtGui.QDoubleValidator.__init__": [('PySide2.QtCore.QObject',), ('float', 'float', 'int', 'PySide2.QtCore.QObject')],
- "PySide2.QtGui.QDoubleValidator.bottom": (),
- "PySide2.QtGui.QDoubleValidator.decimals": (),
- "PySide2.QtGui.QDoubleValidator.notation": (),
- "PySide2.QtGui.QDoubleValidator.setBottom": ('float',),
- "PySide2.QtGui.QDoubleValidator.setDecimals": ('int',),
- "PySide2.QtGui.QDoubleValidator.setNotation": ('PySide2.QtGui.QDoubleValidator.Notation',),
- "PySide2.QtGui.QDoubleValidator.setRange": ('float', 'float', 'int'),
- "PySide2.QtGui.QDoubleValidator.setTop": ('float',),
- "PySide2.QtGui.QDoubleValidator.top": (),
- "PySide2.QtGui.QDoubleValidator.validate": ('str', 'int'),
-# class PySide2.QtGui.QDrag:
- "PySide2.QtGui.QDrag.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QDrag.cancel": (),
- "PySide2.QtGui.QDrag.defaultAction": (),
- "PySide2.QtGui.QDrag.dragCursor": ('PySide2.QtCore.Qt.DropAction',),
- "PySide2.QtGui.QDrag.exec_": [('PySide2.QtCore.Qt.DropActions',), ('PySide2.QtCore.Qt.DropActions', 'PySide2.QtCore.Qt.DropAction')],
- "PySide2.QtGui.QDrag.hotSpot": (),
- "PySide2.QtGui.QDrag.mimeData": (),
- "PySide2.QtGui.QDrag.pixmap": (),
- "PySide2.QtGui.QDrag.setDragCursor": ('PySide2.QtGui.QPixmap', 'PySide2.QtCore.Qt.DropAction'),
- "PySide2.QtGui.QDrag.setHotSpot": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QDrag.setMimeData": ('PySide2.QtCore.QMimeData',),
- "PySide2.QtGui.QDrag.setPixmap": ('PySide2.QtGui.QPixmap',),
- "PySide2.QtGui.QDrag.source": (),
- "PySide2.QtGui.QDrag.start": ('PySide2.QtCore.Qt.DropActions',),
- "PySide2.QtGui.QDrag.supportedActions": (),
- "PySide2.QtGui.QDrag.target": (),
-# class PySide2.QtGui.QDragEnterEvent:
- "PySide2.QtGui.QDragEnterEvent.__init__": ('PySide2.QtCore.QPoint', 'PySide2.QtCore.Qt.DropActions', 'PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers'),
-# class PySide2.QtGui.QDragLeaveEvent:
- "PySide2.QtGui.QDragLeaveEvent.__init__": (),
-# class PySide2.QtGui.QDragMoveEvent:
- "PySide2.QtGui.QDragMoveEvent.__init__": ('PySide2.QtCore.QPoint', 'PySide2.QtCore.Qt.DropActions', 'PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QEvent.Type'),
- "PySide2.QtGui.QDragMoveEvent.accept": [(), ('PySide2.QtCore.QRect',)],
- "PySide2.QtGui.QDragMoveEvent.answerRect": (),
- "PySide2.QtGui.QDragMoveEvent.ignore": [(), ('PySide2.QtCore.QRect',)],
-# class PySide2.QtGui.QDropEvent:
- "PySide2.QtGui.QDropEvent.__init__": ('PySide2.QtCore.QPointF', 'PySide2.QtCore.Qt.DropActions', 'PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QEvent.Type'),
- "PySide2.QtGui.QDropEvent.acceptProposedAction": (),
- "PySide2.QtGui.QDropEvent.dropAction": (),
- "PySide2.QtGui.QDropEvent.keyboardModifiers": (),
- "PySide2.QtGui.QDropEvent.mimeData": (),
- "PySide2.QtGui.QDropEvent.mouseButtons": (),
- "PySide2.QtGui.QDropEvent.pos": (),
- "PySide2.QtGui.QDropEvent.posF": (),
- "PySide2.QtGui.QDropEvent.possibleActions": (),
- "PySide2.QtGui.QDropEvent.proposedAction": (),
- "PySide2.QtGui.QDropEvent.setDropAction": ('PySide2.QtCore.Qt.DropAction',),
- "PySide2.QtGui.QDropEvent.source": (),
-# class PySide2.QtGui.QEnterEvent:
- "PySide2.QtGui.QEnterEvent.__init__": ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'),
- "PySide2.QtGui.QEnterEvent.globalPos": (),
- "PySide2.QtGui.QEnterEvent.globalX": (),
- "PySide2.QtGui.QEnterEvent.global""Y": (),
- "PySide2.QtGui.QEnterEvent.localPos": (),
- "PySide2.QtGui.QEnterEvent.pos": (),
- "PySide2.QtGui.QEnterEvent.screenPos": (),
- "PySide2.QtGui.QEnterEvent.windowPos": (),
- "PySide2.QtGui.QEnterEvent.x": (),
- "PySide2.QtGui.QEnterEvent.y": (),
-# class PySide2.QtGui.QExposeEvent:
- "PySide2.QtGui.QExposeEvent.__init__": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QExposeEvent.region": (),
-# class PySide2.QtGui.QFileOpenEvent:
- "PySide2.QtGui.QFileOpenEvent.__init__": [('PySide2.QtCore.QUrl',), ('str',)],
- "PySide2.QtGui.QFileOpenEvent.file": (),
- "PySide2.QtGui.QFileOpenEvent.openFile": ('PySide2.QtCore.QFile', 'PySide2.QtCore.QIODevice.OpenMode'),
- "PySide2.QtGui.QFileOpenEvent.url": (),
-# class PySide2.QtGui.QFocusEvent:
- "PySide2.QtGui.QFocusEvent.__init__": ('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.Qt.FocusReason'),
- "PySide2.QtGui.QFocusEvent.gotFocus": (),
- "PySide2.QtGui.QFocusEvent.lostFocus": (),
- "PySide2.QtGui.QFocusEvent.reason": (),
-# class PySide2.QtGui.QFont:
-# class PySide2.QtGui.QFont.Capitalization:
-# class PySide2.QtGui.QFont.HintingPreference:
-# class PySide2.QtGui.QFont.SpacingType:
-# class PySide2.QtGui.QFont.Stretch:
-# class PySide2.QtGui.QFont.Style:
-# class PySide2.QtGui.QFont.StyleHint:
-# class PySide2.QtGui.QFont.StyleStrategy:
-# class PySide2.QtGui.QFont.Weight:
- "PySide2.QtGui.QFont.__init__": [(), ('PySide2.QtGui.QFont',), ('PySide2.QtGui.QFont', 'PySide2.QtGui.QPaintDevice'), ('str', 'int', 'int', 'bool')],
- "PySide2.QtGui.QFont.__copy__": (),
- "PySide2.QtGui.QFont.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QFont.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QFont.bold": (),
- "PySide2.QtGui.QFont.cacheStatistics": (),
- "PySide2.QtGui.QFont.capitalization": (),
- "PySide2.QtGui.QFont.cleanup": (),
- "PySide2.QtGui.QFont.defaultFamily": (),
- "PySide2.QtGui.QFont.exactMatch": (),
- "PySide2.QtGui.QFont.families": (),
- "PySide2.QtGui.QFont.family": (),
- "PySide2.QtGui.QFont.fixedPitch": (),
- "PySide2.QtGui.QFont.fromString": ('str',),
- "PySide2.QtGui.QFont.hintingPreference": (),
- "PySide2.QtGui.QFont.initialize": (),
- "PySide2.QtGui.QFont.insertSubstitution": ('str', 'str'),
- "PySide2.QtGui.QFont.insertSubstitutions": ('str', 'typing.Sequence'),
- "PySide2.QtGui.QFont.isCopyOf": ('PySide2.QtGui.QFont',),
- "PySide2.QtGui.QFont.italic": (),
- "PySide2.QtGui.QFont.kerning": (),
- "PySide2.QtGui.QFont.key": (),
- "PySide2.QtGui.QFont.lastResortFamily": (),
- "PySide2.QtGui.QFont.lastResortFont": (),
- "PySide2.QtGui.QFont.letterSpacing": (),
- "PySide2.QtGui.QFont.letterSpacingType": (),
- "PySide2.QtGui.QFont.overline": (),
- "PySide2.QtGui.QFont.pixelSize": (),
- "PySide2.QtGui.QFont.pointSize": (),
- "PySide2.QtGui.QFont.pointSizeF": (),
- "PySide2.QtGui.QFont.rawMode": (),
- "PySide2.QtGui.QFont.rawName": (),
- "PySide2.QtGui.QFont.removeSubstitutions": ('str',),
- "PySide2.QtGui.QFont.resolve": [(), ('PySide2.QtGui.QFont',), ('int',)],
- "PySide2.QtGui.QFont.setBold": ('bool',),
- "PySide2.QtGui.QFont.setCapitalization": ('PySide2.QtGui.QFont.Capitalization',),
- "PySide2.QtGui.QFont.setFamilies": ('typing.Sequence',),
- "PySide2.QtGui.QFont.setFamily": ('str',),
- "PySide2.QtGui.QFont.setFixedPitch": ('bool',),
- "PySide2.QtGui.QFont.setHintingPreference": ('PySide2.QtGui.QFont.HintingPreference',),
- "PySide2.QtGui.QFont.setItalic": ('bool',),
- "PySide2.QtGui.QFont.setKerning": ('bool',),
- "PySide2.QtGui.QFont.setLetterSpacing": ('PySide2.QtGui.QFont.SpacingType', 'float'),
- "PySide2.QtGui.QFont.setOverline": ('bool',),
- "PySide2.QtGui.QFont.setPixelSize": ('int',),
- "PySide2.QtGui.QFont.setPointSize": ('int',),
- "PySide2.QtGui.QFont.setPointSizeF": ('float',),
- "PySide2.QtGui.QFont.setRawMode": ('bool',),
- "PySide2.QtGui.QFont.setRawName": ('str',),
- "PySide2.QtGui.QFont.setStretch": ('int',),
- "PySide2.QtGui.QFont.setStrikeOut": ('bool',),
- "PySide2.QtGui.QFont.setStyle": ('PySide2.QtGui.QFont.Style',),
- "PySide2.QtGui.QFont.setStyleHint": ('PySide2.QtGui.QFont.StyleHint', 'PySide2.QtGui.QFont.StyleStrategy'),
- "PySide2.QtGui.QFont.setStyleName": ('str',),
- "PySide2.QtGui.QFont.setStyleStrategy": ('PySide2.QtGui.QFont.StyleStrategy',),
- "PySide2.QtGui.QFont.setUnderline": ('bool',),
- "PySide2.QtGui.QFont.setWeight": ('int',),
- "PySide2.QtGui.QFont.setWordSpacing": ('float',),
- "PySide2.QtGui.QFont.stretch": (),
- "PySide2.QtGui.QFont.strikeOut": (),
- "PySide2.QtGui.QFont.style": (),
- "PySide2.QtGui.QFont.styleHint": (),
- "PySide2.QtGui.QFont.styleName": (),
- "PySide2.QtGui.QFont.styleStrategy": (),
- "PySide2.QtGui.QFont.substitute": ('str',),
- "PySide2.QtGui.QFont.substitutes": ('str',),
- "PySide2.QtGui.QFont.substitutions": (),
- "PySide2.QtGui.QFont.swap": ('PySide2.QtGui.QFont',),
- "PySide2.QtGui.QFont.toString": (),
- "PySide2.QtGui.QFont.underline": (),
- "PySide2.QtGui.QFont.weight": (),
- "PySide2.QtGui.QFont.wordSpacing": (),
-# class PySide2.QtGui.QFontDatabase:
-# class PySide2.QtGui.QFontDatabase.SystemFont:
-# class PySide2.QtGui.QFontDatabase.WritingSystem:
- "PySide2.QtGui.QFontDatabase.__init__": [(), ('PySide2.QtGui.QFontDatabase',)],
- "PySide2.QtGui.QFontDatabase.__copy__": (),
- "PySide2.QtGui.QFontDatabase.addApplicationFont": ('str',),
- "PySide2.QtGui.QFontDatabase.addApplicationFontFromData": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QFontDatabase.applicationFontFamilies": ('int',),
- "PySide2.QtGui.QFontDatabase.bold": ('str', 'str'),
- "PySide2.QtGui.QFontDatabase.families": ('PySide2.QtGui.QFontDatabase.WritingSystem',),
- "PySide2.QtGui.QFontDatabase.font": ('str', 'str', 'int'),
- "PySide2.QtGui.QFontDatabase.hasFamily": ('str',),
- "PySide2.QtGui.QFontDatabase.isBitmapScalable": ('str', 'str'),
- "PySide2.QtGui.QFontDatabase.isFixedPitch": ('str', 'str'),
- "PySide2.QtGui.QFontDatabase.isPrivateFamily": ('str',),
- "PySide2.QtGui.QFontDatabase.isScalable": ('str', 'str'),
- "PySide2.QtGui.QFontDatabase.isSmoothlyScalable": ('str', 'str'),
- "PySide2.QtGui.QFontDatabase.italic": ('str', 'str'),
- "PySide2.QtGui.QFontDatabase.pointSizes": ('str', 'str'),
- "PySide2.QtGui.QFontDatabase.removeAllApplicationFonts": (),
- "PySide2.QtGui.QFontDatabase.removeApplicationFont": ('int',),
- "PySide2.QtGui.QFontDatabase.smoothSizes": ('str', 'str'),
- "PySide2.QtGui.QFontDatabase.standardSizes": (),
- "PySide2.QtGui.QFontDatabase.styleString": [('PySide2.QtGui.QFont',), ('PySide2.QtGui.QFontInfo',)],
- "PySide2.QtGui.QFontDatabase.styles": ('str',),
- "PySide2.QtGui.QFontDatabase.supportsThreadedFontRendering": (),
- "PySide2.QtGui.QFontDatabase.systemFont": ('PySide2.QtGui.QFontDatabase.SystemFont',),
- "PySide2.QtGui.QFontDatabase.weight": ('str', 'str'),
- "PySide2.QtGui.QFontDatabase.writingSystemName": ('PySide2.QtGui.QFontDatabase.WritingSystem',),
- "PySide2.QtGui.QFontDatabase.writingSystemSample": ('PySide2.QtGui.QFontDatabase.WritingSystem',),
- "PySide2.QtGui.QFontDatabase.writingSystems": [(), ('str',)],
-# class PySide2.QtGui.QFontInfo:
- "PySide2.QtGui.QFontInfo.__init__": [('PySide2.QtGui.QFont',), ('PySide2.QtGui.QFontInfo',)],
- "PySide2.QtGui.QFontInfo.__copy__": (),
- "PySide2.QtGui.QFontInfo.bold": (),
- "PySide2.QtGui.QFontInfo.exactMatch": (),
- "PySide2.QtGui.QFontInfo.family": (),
- "PySide2.QtGui.QFontInfo.fixedPitch": (),
- "PySide2.QtGui.QFontInfo.italic": (),
- "PySide2.QtGui.QFontInfo.overline": (),
- "PySide2.QtGui.QFontInfo.pixelSize": (),
- "PySide2.QtGui.QFontInfo.pointSize": (),
- "PySide2.QtGui.QFontInfo.pointSizeF": (),
- "PySide2.QtGui.QFontInfo.rawMode": (),
- "PySide2.QtGui.QFontInfo.strikeOut": (),
- "PySide2.QtGui.QFontInfo.style": (),
- "PySide2.QtGui.QFontInfo.styleHint": (),
- "PySide2.QtGui.QFontInfo.styleName": (),
- "PySide2.QtGui.QFontInfo.swap": ('PySide2.QtGui.QFontInfo',),
- "PySide2.QtGui.QFontInfo.underline": (),
- "PySide2.QtGui.QFontInfo.weight": (),
-# class PySide2.QtGui.QFontMetrics:
- "PySide2.QtGui.QFontMetrics.__init__": [('PySide2.QtGui.QFont',), ('PySide2.QtGui.QFont', 'PySide2.QtGui.QPaintDevice'), ('PySide2.QtGui.QFontMetrics',)],
- "PySide2.QtGui.QFontMetrics.__copy__": (),
- "PySide2.QtGui.QFontMetrics.ascent": (),
- "PySide2.QtGui.QFontMetrics.averageCharWidth": (),
- "PySide2.QtGui.QFontMetrics.boundingRect": [('PySide2.QtCore.QRect', 'int', 'str', 'int', 'typing.Sequence'), ('int', 'int', 'int', 'int', 'int', 'str', 'int', 'typing.Sequence'), ('str',)],
- "PySide2.QtGui.QFontMetrics.boundingRectChar": ('str',),
- "PySide2.QtGui.QFontMetrics.capHeight": (),
- "PySide2.QtGui.QFontMetrics.charWidth": ('str', 'int'),
- "PySide2.QtGui.QFontMetrics.descent": (),
- "PySide2.QtGui.QFontMetrics.elidedText": ('str', 'PySide2.QtCore.Qt.TextElideMode', 'int', 'int'),
- "PySide2.QtGui.QFontMetrics.fontDpi": (),
- "PySide2.QtGui.QFontMetrics.height": (),
- "PySide2.QtGui.QFontMetrics.horizontalAdvance": [('str',), ('str', 'int')],
- "PySide2.QtGui.QFontMetrics.inFont": ('str',),
- "PySide2.QtGui.QFontMetrics.inFontUcs4": ('int',),
- "PySide2.QtGui.QFontMetrics.leading": (),
- "PySide2.QtGui.QFontMetrics.leftBearing": ('str',),
- "PySide2.QtGui.QFontMetrics.lineSpacing": (),
- "PySide2.QtGui.QFontMetrics.lineWidth": (),
- "PySide2.QtGui.QFontMetrics.maxWidth": (),
- "PySide2.QtGui.QFontMetrics.minLeftBearing": (),
- "PySide2.QtGui.QFontMetrics.minRightBearing": (),
- "PySide2.QtGui.QFontMetrics.overlinePos": (),
- "PySide2.QtGui.QFontMetrics.rightBearing": ('str',),
- "PySide2.QtGui.QFontMetrics.size": ('int', 'str', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QFontMetrics.strikeOutPos": (),
- "PySide2.QtGui.QFontMetrics.swap": ('PySide2.QtGui.QFontMetrics',),
- "PySide2.QtGui.QFontMetrics.tightBoundingRect": ('str',),
- "PySide2.QtGui.QFontMetrics.underlinePos": (),
- "PySide2.QtGui.QFontMetrics.width": [('str', 'int'), ('str', 'int', 'int')],
- "PySide2.QtGui.QFontMetrics.widthChar": ('str',),
- "PySide2.QtGui.QFontMetrics.xHeight": (),
-# class PySide2.QtGui.QFontMetricsF:
- "PySide2.QtGui.QFontMetricsF.__init__": [('PySide2.QtGui.QFont',), ('PySide2.QtGui.QFont', 'PySide2.QtGui.QPaintDevice'), ('PySide2.QtGui.QFontMetrics',), ('PySide2.QtGui.QFontMetricsF',)],
- "PySide2.QtGui.QFontMetricsF.__copy__": (),
- "PySide2.QtGui.QFontMetricsF.ascent": (),
- "PySide2.QtGui.QFontMetricsF.averageCharWidth": (),
- "PySide2.QtGui.QFontMetricsF.boundingRect": [('PySide2.QtCore.QRectF', 'int', 'str', 'int', 'typing.Sequence'), ('str',)],
- "PySide2.QtGui.QFontMetricsF.boundingRectChar": ('str',),
- "PySide2.QtGui.QFontMetricsF.capHeight": (),
- "PySide2.QtGui.QFontMetricsF.descent": (),
- "PySide2.QtGui.QFontMetricsF.elidedText": ('str', 'PySide2.QtCore.Qt.TextElideMode', 'float', 'int'),
- "PySide2.QtGui.QFontMetricsF.fontDpi": (),
- "PySide2.QtGui.QFontMetricsF.height": (),
- "PySide2.QtGui.QFontMetricsF.horizontalAdvance": [('str',), ('str', 'int')],
- "PySide2.QtGui.QFontMetricsF.inFont": ('str',),
- "PySide2.QtGui.QFontMetricsF.inFontUcs4": ('int',),
- "PySide2.QtGui.QFontMetricsF.leading": (),
- "PySide2.QtGui.QFontMetricsF.leftBearing": ('str',),
- "PySide2.QtGui.QFontMetricsF.lineSpacing": (),
- "PySide2.QtGui.QFontMetricsF.lineWidth": (),
- "PySide2.QtGui.QFontMetricsF.maxWidth": (),
- "PySide2.QtGui.QFontMetricsF.minLeftBearing": (),
- "PySide2.QtGui.QFontMetricsF.minRightBearing": (),
- "PySide2.QtGui.QFontMetricsF.overlinePos": (),
- "PySide2.QtGui.QFontMetricsF.rightBearing": ('str',),
- "PySide2.QtGui.QFontMetricsF.size": ('int', 'str', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QFontMetricsF.strikeOutPos": (),
- "PySide2.QtGui.QFontMetricsF.swap": ('PySide2.QtGui.QFontMetricsF',),
- "PySide2.QtGui.QFontMetricsF.tightBoundingRect": ('str',),
- "PySide2.QtGui.QFontMetricsF.underlinePos": (),
- "PySide2.QtGui.QFontMetricsF.width": ('str',),
- "PySide2.QtGui.QFontMetricsF.widthChar": ('str',),
- "PySide2.QtGui.QFontMetricsF.xHeight": (),
-# class PySide2.QtGui.QGradient:
-# class PySide2.QtGui.QGradient.CoordinateMode:
-# class PySide2.QtGui.QGradient.InterpolationMode:
-# class PySide2.QtGui.QGradient.Preset:
-# class PySide2.QtGui.QGradient.Spread:
-# class PySide2.QtGui.QGradient.Type:
- "PySide2.QtGui.QGradient.__init__": [(), ('PySide2.QtGui.QGradient',), ('PySide2.QtGui.QGradient.Preset',)],
- "PySide2.QtGui.QGradient.__copy__": (),
- "PySide2.QtGui.QGradient.coordinateMode": (),
- "PySide2.QtGui.QGradient.interpolationMode": (),
- "PySide2.QtGui.QGradient.setColorAt": ('float', 'PySide2.QtGui.QColor'),
- "PySide2.QtGui.QGradient.setCoordinateMode": ('PySide2.QtGui.QGradient.CoordinateMode',),
- "PySide2.QtGui.QGradient.setInterpolationMode": ('PySide2.QtGui.QGradient.InterpolationMode',),
- "PySide2.QtGui.QGradient.setSpread": ('PySide2.QtGui.QGradient.Spread',),
- "PySide2.QtGui.QGradient.setStops": ('typing.List',),
- "PySide2.QtGui.QGradient.spread": (),
- "PySide2.QtGui.QGradient.stops": (),
- "PySide2.QtGui.QGradient.type": (),
-# class PySide2.QtGui.QGuiApplication:
- "PySide2.QtGui.QGuiApplication.__init__": [(), ('typing.Sequence',)],
- "PySide2.QtGui.QGuiApplication.allWindows": (),
- "PySide2.QtGui.QGuiApplication.applicationDisplayName": (),
- "PySide2.QtGui.QGuiApplication.applicationState": (),
- "PySide2.QtGui.QGuiApplication.changeOverrideCursor": ('PySide2.QtGui.QCursor',),
- "PySide2.QtGui.QGuiApplication.clipboard": (),
- "PySide2.QtGui.QGuiApplication.desktopFileName": (),
- "PySide2.QtGui.QGuiApplication.desktopSettingsAware": (),
- "PySide2.QtGui.QGuiApplication.devicePixelRatio": (),
- "PySide2.QtGui.QGuiApplication.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtGui.QGuiApplication.exec_": (),
- "PySide2.QtGui.QGuiApplication.focusObject": (),
- "PySide2.QtGui.QGuiApplication.focusWindow": (),
- "PySide2.QtGui.QGuiApplication.font": (),
- "PySide2.QtGui.QGuiApplication.highDpiScaleFactorRoundingPolicy": (),
- "PySide2.QtGui.QGuiApplication.inputMethod": (),
- "PySide2.QtGui.QGuiApplication.isFallbackSessionManagementEnabled": (),
- "PySide2.QtGui.QGuiApplication.isLeftToRight": (),
- "PySide2.QtGui.QGuiApplication.isRightToLeft": (),
- "PySide2.QtGui.QGuiApplication.isSavingSession": (),
- "PySide2.QtGui.QGuiApplication.isSessionRestored": (),
- "PySide2.QtGui.QGuiApplication.keyboardModifiers": (),
- "PySide2.QtGui.QGuiApplication.layoutDirection": (),
- "PySide2.QtGui.QGuiApplication.modalWindow": (),
- "PySide2.QtGui.QGuiApplication.mouseButtons": (),
- "PySide2.QtGui.QGuiApplication.notify": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtGui.QGuiApplication.overrideCursor": (),
- "PySide2.QtGui.QGuiApplication.palette": (),
- "PySide2.QtGui.QGuiApplication.platformName": (),
- "PySide2.QtGui.QGuiApplication.primaryScreen": (),
- "PySide2.QtGui.QGuiApplication.queryKeyboardModifiers": (),
- "PySide2.QtGui.QGuiApplication.quitOnLastWindowClosed": (),
- "PySide2.QtGui.QGuiApplication.restoreOverrideCursor": (),
- "PySide2.QtGui.QGuiApplication.screenAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QGuiApplication.screens": (),
- "PySide2.QtGui.QGuiApplication.sessionId": (),
- "PySide2.QtGui.QGuiApplication.sessionKey": (),
- "PySide2.QtGui.QGuiApplication.setApplicationDisplayName": ('str',),
- "PySide2.QtGui.QGuiApplication.setDesktopFileName": ('str',),
- "PySide2.QtGui.QGuiApplication.setDesktopSettingsAware": ('bool',),
- "PySide2.QtGui.QGuiApplication.setFallbackSessionManagementEnabled": ('bool',),
- "PySide2.QtGui.QGuiApplication.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtGui.QGuiApplication.setHighDpiScaleFactorRoundingPolicy": ('PySide2.QtCore.Qt.HighDpiScaleFactorRoundingPolicy',),
- "PySide2.QtGui.QGuiApplication.setLayoutDirection": ('PySide2.QtCore.Qt.LayoutDirection',),
- "PySide2.QtGui.QGuiApplication.setOverrideCursor": ('PySide2.QtGui.QCursor',),
- "PySide2.QtGui.QGuiApplication.setPalette": ('PySide2.QtGui.QPalette',),
- "PySide2.QtGui.QGuiApplication.setQuitOnLastWindowClosed": ('bool',),
- "PySide2.QtGui.QGuiApplication.setWindowIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtGui.QGuiApplication.styleHints": (),
- "PySide2.QtGui.QGuiApplication.sync": (),
- "PySide2.QtGui.QGuiApplication.topLevelAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QGuiApplication.topLevelWindows": (),
- "PySide2.QtGui.QGuiApplication.windowIcon": (),
-# class PySide2.QtGui.QHelpEvent:
- "PySide2.QtGui.QHelpEvent.__init__": ('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint'),
- "PySide2.QtGui.QHelpEvent.globalPos": (),
- "PySide2.QtGui.QHelpEvent.globalX": (),
- "PySide2.QtGui.QHelpEvent.global""Y": (),
- "PySide2.QtGui.QHelpEvent.pos": (),
- "PySide2.QtGui.QHelpEvent.x": (),
- "PySide2.QtGui.QHelpEvent.y": (),
-# class PySide2.QtGui.QHideEvent:
- "PySide2.QtGui.QHideEvent.__init__": (),
-# class PySide2.QtGui.QHoverEvent:
- "PySide2.QtGui.QHoverEvent.__init__": ('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.Qt.KeyboardModifiers'),
- "PySide2.QtGui.QHoverEvent.oldPos": (),
- "PySide2.QtGui.QHoverEvent.oldPosF": (),
- "PySide2.QtGui.QHoverEvent.pos": (),
- "PySide2.QtGui.QHoverEvent.posF": (),
-# class PySide2.QtGui.QIcon:
-# class PySide2.QtGui.QIcon.Mode:
-# class PySide2.QtGui.QIcon.State:
- "PySide2.QtGui.QIcon.__init__": [(), ('PySide2.QtGui.QIcon',), ('PySide2.QtGui.QIconEngine',), ('PySide2.QtGui.QPixmap',), ('str',)],
- "PySide2.QtGui.QIcon.__copy__": (),
- "PySide2.QtGui.QIcon.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QIcon.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QIcon.actualSize": [('PySide2.QtCore.QSize', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'), ('PySide2.QtGui.QWindow', 'PySide2.QtCore.QSize', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State')],
- "PySide2.QtGui.QIcon.addFile": ('str', 'PySide2.QtCore.QSize', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'),
- "PySide2.QtGui.QIcon.addPixmap": ('PySide2.QtGui.QPixmap', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'),
- "PySide2.QtGui.QIcon.availableSizes": ('PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'),
- "PySide2.QtGui.QIcon.cacheKey": (),
- "PySide2.QtGui.QIcon.fallbackSearchPaths": (),
- "PySide2.QtGui.QIcon.fallbackThemeName": (),
- "PySide2.QtGui.QIcon.fromTheme": [('str',), ('str', 'PySide2.QtGui.QIcon')],
- "PySide2.QtGui.QIcon.hasThemeIcon": ('str',),
- "PySide2.QtGui.QIcon.isMask": (),
- "PySide2.QtGui.QIcon.isNull": (),
- "PySide2.QtGui.QIcon.name": (),
- "PySide2.QtGui.QIcon.paint": [('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRect', 'PySide2.QtCore.Qt.Alignment', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'), ('PySide2.QtGui.QPainter', 'int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.Alignment', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State')],
- "PySide2.QtGui.QIcon.pixmap": [('PySide2.QtCore.QSize', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'), ('PySide2.QtGui.QWindow', 'PySide2.QtCore.QSize', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'), ('int', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'), ('int', 'int', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State')],
- "PySide2.QtGui.QIcon.setFallbackSearchPaths": ('typing.Sequence',),
- "PySide2.QtGui.QIcon.setFallbackThemeName": ('str',),
- "PySide2.QtGui.QIcon.setIsMask": ('bool',),
- "PySide2.QtGui.QIcon.setThemeName": ('str',),
- "PySide2.QtGui.QIcon.setThemeSearchPaths": ('typing.Sequence',),
- "PySide2.QtGui.QIcon.swap": ('PySide2.QtGui.QIcon',),
- "PySide2.QtGui.QIcon.themeName": (),
- "PySide2.QtGui.QIcon.themeSearchPaths": (),
-# class PySide2.QtGui.QIconDragEvent:
- "PySide2.QtGui.QIconDragEvent.__init__": (),
-# class PySide2.QtGui.QIconEngine:
-# class PySide2.QtGui.QIconEngine.AvailableSizesArgument:
- "PySide2.QtGui.QIconEngine.AvailableSizesArgument.__init__": (),
-# class PySide2.QtGui.QIconEngine.IconEngineHook:
- "PySide2.QtGui.QIconEngine.__init__": [(), ('PySide2.QtGui.QIconEngine',)],
- "PySide2.QtGui.QIconEngine.actualSize": ('PySide2.QtCore.QSize', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'),
- "PySide2.QtGui.QIconEngine.addFile": ('str', 'PySide2.QtCore.QSize', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'),
- "PySide2.QtGui.QIconEngine.addPixmap": ('PySide2.QtGui.QPixmap', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'),
- "PySide2.QtGui.QIconEngine.availableSizes": ('PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'),
- "PySide2.QtGui.QIconEngine.clone": (),
- "PySide2.QtGui.QIconEngine.iconName": (),
- "PySide2.QtGui.QIconEngine.isNull": (),
- "PySide2.QtGui.QIconEngine.key": (),
- "PySide2.QtGui.QIconEngine.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRect', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'),
- "PySide2.QtGui.QIconEngine.pixmap": ('PySide2.QtCore.QSize', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'),
- "PySide2.QtGui.QIconEngine.read": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QIconEngine.scaledPixmap": ('PySide2.QtCore.QSize', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State', 'float'),
- "PySide2.QtGui.QIconEngine.write": ('PySide2.QtCore.QDataStream',),
-# class PySide2.QtGui.QImage:
-# class PySide2.QtGui.QImage.Format:
-# class PySide2.QtGui.QImage.InvertMode:
- "PySide2.QtGui.QImage.__init__": [(), ('PySide2.QtCore.QSize', 'PySide2.QtGui.QImage.Format'), ('PySide2.QtGui.QImage',), ('bytes', 'int', 'int', 'PySide2.QtGui.QImage.Format', 'typing.Callable', 'int'), ('bytes', 'int', 'int', 'int', 'PySide2.QtGui.QImage.Format', 'typing.Callable', 'int'), ('int', 'int', 'PySide2.QtGui.QImage.Format'), ('str', 'bytes'), ('str', 'int', 'int', 'PySide2.QtGui.QImage.Format'), ('str', 'int', 'int', 'int', 'PySide2.QtGui.QImage.Format'), ('typing.Sequence',)],
- "PySide2.QtGui.QImage.__copy__": (),
- "PySide2.QtGui.QImage.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QImage.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QImage.allGray": (),
- "PySide2.QtGui.QImage.alphaChannel": (),
- "PySide2.QtGui.QImage.bitPlaneCount": (),
- "PySide2.QtGui.QImage.bits": (),
- "PySide2.QtGui.QImage.byteCount": (),
- "PySide2.QtGui.QImage.bytesPerLine": (),
- "PySide2.QtGui.QImage.cacheKey": (),
- "PySide2.QtGui.QImage.color": ('int',),
- "PySide2.QtGui.QImage.colorCount": (),
- "PySide2.QtGui.QImage.colorSpace": (),
- "PySide2.QtGui.QImage.colorTable": (),
- "PySide2.QtGui.QImage.constBits": (),
- "PySide2.QtGui.QImage.constScanLine": ('int',),
- "PySide2.QtGui.QImage.convertTo": ('PySide2.QtGui.QImage.Format', 'PySide2.QtCore.Qt.ImageConversionFlags'),
- "PySide2.QtGui.QImage.convertToColorSpace": ('PySide2.QtGui.QColorSpace',),
- "PySide2.QtGui.QImage.convertToFormat": [('PySide2.QtGui.QImage.Format', 'PySide2.QtCore.Qt.ImageConversionFlags'), ('PySide2.QtGui.QImage.Format', 'typing.List', 'PySide2.QtCore.Qt.ImageConversionFlags')],
- "PySide2.QtGui.QImage.convertToFormat_helper": ('PySide2.QtGui.QImage.Format', 'PySide2.QtCore.Qt.ImageConversionFlags'),
- "PySide2.QtGui.QImage.convertToFormat_inplace": ('PySide2.QtGui.QImage.Format', 'PySide2.QtCore.Qt.ImageConversionFlags'),
- "PySide2.QtGui.QImage.convertedToColorSpace": ('PySide2.QtGui.QColorSpace',),
- "PySide2.QtGui.QImage.copy": [('PySide2.QtCore.QRect',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QImage.createAlphaMask": ('PySide2.QtCore.Qt.ImageConversionFlags',),
- "PySide2.QtGui.QImage.createHeuristicMask": ('bool',),
- "PySide2.QtGui.QImage.createMaskFromColor": ('int', 'PySide2.QtCore.Qt.MaskMode'),
- "PySide2.QtGui.QImage.depth": (),
- "PySide2.QtGui.QImage.devType": (),
- "PySide2.QtGui.QImage.devicePixelRatio": (),
- "PySide2.QtGui.QImage.dotsPerMeterX": (),
- "PySide2.QtGui.QImage.dotsPerMeterY": (),
- "PySide2.QtGui.QImage.fill": [('PySide2.QtCore.Qt.GlobalColor',), ('PySide2.QtGui.QColor',), ('int',)],
- "PySide2.QtGui.QImage.format": (),
- "PySide2.QtGui.QImage.fromData": ('PySide2.QtCore.QByteArray', 'bytes'),
- "PySide2.QtGui.QImage.hasAlphaChannel": (),
- "PySide2.QtGui.QImage.height": (),
- "PySide2.QtGui.QImage.invertPixels": ('PySide2.QtGui.QImage.InvertMode',),
- "PySide2.QtGui.QImage.isGrayscale": (),
- "PySide2.QtGui.QImage.isNull": (),
- "PySide2.QtGui.QImage.load": [('PySide2.QtCore.QIODevice', 'bytes'), ('str', 'bytes')],
- "PySide2.QtGui.QImage.loadFromData": ('PySide2.QtCore.QByteArray', 'bytes'),
- "PySide2.QtGui.QImage.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtGui.QImage.mirrored": ('bool', 'bool'),
- "PySide2.QtGui.QImage.mirrored_helper": ('bool', 'bool'),
- "PySide2.QtGui.QImage.mirrored_inplace": ('bool', 'bool'),
- "PySide2.QtGui.QImage.offset": (),
- "PySide2.QtGui.QImage.paintEngine": (),
- "PySide2.QtGui.QImage.pixel": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtGui.QImage.pixelColor": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtGui.QImage.pixelFormat": (),
- "PySide2.QtGui.QImage.pixelIndex": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtGui.QImage.rect": (),
- "PySide2.QtGui.QImage.reinterpretAsFormat": ('PySide2.QtGui.QImage.Format',),
- "PySide2.QtGui.QImage.rgbSwapped": (),
- "PySide2.QtGui.QImage.rgbSwapped_helper": (),
- "PySide2.QtGui.QImage.rgbSwapped_inplace": (),
- "PySide2.QtGui.QImage.save": [('PySide2.QtCore.QIODevice', 'bytes', 'int'), ('str', 'bytes', 'int')],
- "PySide2.QtGui.QImage.scaled": [('PySide2.QtCore.QSize', 'PySide2.QtCore.Qt.AspectRatioMode', 'PySide2.QtCore.Qt.TransformationMode'), ('int', 'int', 'PySide2.QtCore.Qt.AspectRatioMode', 'PySide2.QtCore.Qt.TransformationMode')],
- "PySide2.QtGui.QImage.scaledToHeight": ('int', 'PySide2.QtCore.Qt.TransformationMode'),
- "PySide2.QtGui.QImage.scaledToWidth": ('int', 'PySide2.QtCore.Qt.TransformationMode'),
- "PySide2.QtGui.QImage.scanLine": ('int',),
- "PySide2.QtGui.QImage.setAlphaChannel": ('PySide2.QtGui.QImage',),
- "PySide2.QtGui.QImage.setColor": ('int', 'int'),
- "PySide2.QtGui.QImage.setColorCount": ('int',),
- "PySide2.QtGui.QImage.setColorSpace": ('PySide2.QtGui.QColorSpace',),
- "PySide2.QtGui.QImage.setColorTable": ('typing.List',),
- "PySide2.QtGui.QImage.setDevicePixelRatio": ('float',),
- "PySide2.QtGui.QImage.setDotsPerMeterX": ('int',),
- "PySide2.QtGui.QImage.setDotsPerMeterY": ('int',),
- "PySide2.QtGui.QImage.setOffset": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QImage.setPixel": [('PySide2.QtCore.QPoint', 'int'), ('int', 'int', 'int')],
- "PySide2.QtGui.QImage.setPixelColor": [('PySide2.QtCore.QPoint', 'PySide2.QtGui.QColor'), ('int', 'int', 'PySide2.QtGui.QColor')],
- "PySide2.QtGui.QImage.setText": ('str', 'str'),
- "PySide2.QtGui.QImage.size": (),
- "PySide2.QtGui.QImage.sizeInBytes": (),
- "PySide2.QtGui.QImage.smoothScaled": ('int', 'int'),
- "PySide2.QtGui.QImage.swap": ('PySide2.QtGui.QImage',),
- "PySide2.QtGui.QImage.text": ('str',),
- "PySide2.QtGui.QImage.textKeys": (),
- "PySide2.QtGui.QImage.toImageFormat": ('PySide2.QtGui.QPixelFormat',),
- "PySide2.QtGui.QImage.toPixelFormat": ('PySide2.QtGui.QImage.Format',),
- "PySide2.QtGui.QImage.transformed": [('PySide2.QtGui.QMatrix', 'PySide2.QtCore.Qt.TransformationMode'), ('PySide2.QtGui.QTransform', 'PySide2.QtCore.Qt.TransformationMode')],
- "PySide2.QtGui.QImage.trueMatrix": [('PySide2.QtGui.QMatrix', 'int', 'int'), ('PySide2.QtGui.QTransform', 'int', 'int')],
- "PySide2.QtGui.QImage.valid": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtGui.QImage.width": (),
-# class PySide2.QtGui.QImageIOHandler:
-# class PySide2.QtGui.QImageIOHandler.ImageOption:
-# class PySide2.QtGui.QImageIOHandler.Transformation:
-# class PySide2.QtGui.QImageIOHandler.Transformations:
- "PySide2.QtGui.QImageIOHandler.__init__": (),
- "PySide2.QtGui.QImageIOHandler.canRead": (),
- "PySide2.QtGui.QImageIOHandler.currentImageNumber": (),
- "PySide2.QtGui.QImageIOHandler.currentImageRect": (),
- "PySide2.QtGui.QImageIOHandler.device": (),
- "PySide2.QtGui.QImageIOHandler.format": (),
- "PySide2.QtGui.QImageIOHandler.imageCount": (),
- "PySide2.QtGui.QImageIOHandler.jumpToImage": ('int',),
- "PySide2.QtGui.QImageIOHandler.jumpToNextImage": (),
- "PySide2.QtGui.QImageIOHandler.loopCount": (),
- "PySide2.QtGui.QImageIOHandler.name": (),
- "PySide2.QtGui.QImageIOHandler.nextImageDelay": (),
- "PySide2.QtGui.QImageIOHandler.option": ('PySide2.QtGui.QImageIOHandler.ImageOption',),
- "PySide2.QtGui.QImageIOHandler.read": ('PySide2.QtGui.QImage',),
- "PySide2.QtGui.QImageIOHandler.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtGui.QImageIOHandler.setFormat": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QImageIOHandler.setOption": ('PySide2.QtGui.QImageIOHandler.ImageOption', 'typing.Any'),
- "PySide2.QtGui.QImageIOHandler.supportsOption": ('PySide2.QtGui.QImageIOHandler.ImageOption',),
- "PySide2.QtGui.QImageIOHandler.write": ('PySide2.QtGui.QImage',),
-# class PySide2.QtGui.QImageReader:
-# class PySide2.QtGui.QImageReader.ImageReaderError:
- "PySide2.QtGui.QImageReader.__init__": [(), ('PySide2.QtCore.QIODevice', 'PySide2.QtCore.QByteArray'), ('str', 'PySide2.QtCore.QByteArray')],
- "PySide2.QtGui.QImageReader.autoDetectImageFormat": (),
- "PySide2.QtGui.QImageReader.autoTransform": (),
- "PySide2.QtGui.QImageReader.backgroundColor": (),
- "PySide2.QtGui.QImageReader.canRead": (),
- "PySide2.QtGui.QImageReader.clipRect": (),
- "PySide2.QtGui.QImageReader.currentImageNumber": (),
- "PySide2.QtGui.QImageReader.currentImageRect": (),
- "PySide2.QtGui.QImageReader.decideFormatFromContent": (),
- "PySide2.QtGui.QImageReader.device": (),
- "PySide2.QtGui.QImageReader.error": (),
- "PySide2.QtGui.QImageReader.errorString": (),
- "PySide2.QtGui.QImageReader.fileName": (),
- "PySide2.QtGui.QImageReader.format": (),
- "PySide2.QtGui.QImageReader.gamma": (),
- "PySide2.QtGui.QImageReader.imageCount": (),
- "PySide2.QtGui.QImageReader.imageFormat": [(), ('PySide2.QtCore.QIODevice',), ('str',)],
- "PySide2.QtGui.QImageReader.imageFormatsForMimeType": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QImageReader.jumpToImage": ('int',),
- "PySide2.QtGui.QImageReader.jumpToNextImage": (),
- "PySide2.QtGui.QImageReader.loopCount": (),
- "PySide2.QtGui.QImageReader.nextImageDelay": (),
- "PySide2.QtGui.QImageReader.quality": (),
- "PySide2.QtGui.QImageReader.read": (),
- "PySide2.QtGui.QImageReader.scaledClipRect": (),
- "PySide2.QtGui.QImageReader.scaledSize": (),
- "PySide2.QtGui.QImageReader.setAutoDetectImageFormat": ('bool',),
- "PySide2.QtGui.QImageReader.setAutoTransform": ('bool',),
- "PySide2.QtGui.QImageReader.setBackgroundColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtGui.QImageReader.setClipRect": ('PySide2.QtCore.QRect',),
- "PySide2.QtGui.QImageReader.setDecideFormatFromContent": ('bool',),
- "PySide2.QtGui.QImageReader.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtGui.QImageReader.setFileName": ('str',),
- "PySide2.QtGui.QImageReader.setFormat": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QImageReader.setGamma": ('float',),
- "PySide2.QtGui.QImageReader.setQuality": ('int',),
- "PySide2.QtGui.QImageReader.setScaledClipRect": ('PySide2.QtCore.QRect',),
- "PySide2.QtGui.QImageReader.setScaledSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtGui.QImageReader.size": (),
- "PySide2.QtGui.QImageReader.subType": (),
- "PySide2.QtGui.QImageReader.supportedImageFormats": (),
- "PySide2.QtGui.QImageReader.supportedMimeTypes": (),
- "PySide2.QtGui.QImageReader.supportedSubTypes": (),
- "PySide2.QtGui.QImageReader.supportsAnimation": (),
- "PySide2.QtGui.QImageReader.supportsOption": ('PySide2.QtGui.QImageIOHandler.ImageOption',),
- "PySide2.QtGui.QImageReader.text": ('str',),
- "PySide2.QtGui.QImageReader.textKeys": (),
- "PySide2.QtGui.QImageReader.transformation": (),
-# class PySide2.QtGui.QImageWriter:
-# class PySide2.QtGui.QImageWriter.ImageWriterError:
- "PySide2.QtGui.QImageWriter.__init__": [(), ('PySide2.QtCore.QIODevice', 'PySide2.QtCore.QByteArray'), ('str', 'PySide2.QtCore.QByteArray')],
- "PySide2.QtGui.QImageWriter.canWrite": (),
- "PySide2.QtGui.QImageWriter.compression": (),
- "PySide2.QtGui.QImageWriter.description": (),
- "PySide2.QtGui.QImageWriter.device": (),
- "PySide2.QtGui.QImageWriter.error": (),
- "PySide2.QtGui.QImageWriter.errorString": (),
- "PySide2.QtGui.QImageWriter.fileName": (),
- "PySide2.QtGui.QImageWriter.format": (),
- "PySide2.QtGui.QImageWriter.gamma": (),
- "PySide2.QtGui.QImageWriter.imageFormatsForMimeType": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QImageWriter.optimizedWrite": (),
- "PySide2.QtGui.QImageWriter.progressiveScanWrite": (),
- "PySide2.QtGui.QImageWriter.quality": (),
- "PySide2.QtGui.QImageWriter.setCompression": ('int',),
- "PySide2.QtGui.QImageWriter.setDescription": ('str',),
- "PySide2.QtGui.QImageWriter.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtGui.QImageWriter.setFileName": ('str',),
- "PySide2.QtGui.QImageWriter.setFormat": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QImageWriter.setGamma": ('float',),
- "PySide2.QtGui.QImageWriter.setOptimizedWrite": ('bool',),
- "PySide2.QtGui.QImageWriter.setProgressiveScanWrite": ('bool',),
- "PySide2.QtGui.QImageWriter.setQuality": ('int',),
- "PySide2.QtGui.QImageWriter.setSubType": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QImageWriter.setText": ('str', 'str'),
- "PySide2.QtGui.QImageWriter.setTransformation": ('PySide2.QtGui.QImageIOHandler.Transformations',),
- "PySide2.QtGui.QImageWriter.subType": (),
- "PySide2.QtGui.QImageWriter.supportedImageFormats": (),
- "PySide2.QtGui.QImageWriter.supportedMimeTypes": (),
- "PySide2.QtGui.QImageWriter.supportedSubTypes": (),
- "PySide2.QtGui.QImageWriter.supportsOption": ('PySide2.QtGui.QImageIOHandler.ImageOption',),
- "PySide2.QtGui.QImageWriter.transformation": (),
- "PySide2.QtGui.QImageWriter.write": ('PySide2.QtGui.QImage',),
-# class PySide2.QtGui.QInputEvent:
- "PySide2.QtGui.QInputEvent.__init__": ('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.Qt.KeyboardModifiers'),
- "PySide2.QtGui.QInputEvent.modifiers": (),
- "PySide2.QtGui.QInputEvent.setModifiers": ('PySide2.QtCore.Qt.KeyboardModifiers',),
- "PySide2.QtGui.QInputEvent.setTimestamp": ('int',),
- "PySide2.QtGui.QInputEvent.timestamp": (),
-# class PySide2.QtGui.QInputMethod:
-# class PySide2.QtGui.QInputMethod.Action:
- "PySide2.QtGui.QInputMethod.anchorRectangle": (),
- "PySide2.QtGui.QInputMethod.commit": (),
- "PySide2.QtGui.QInputMethod.cursorRectangle": (),
- "PySide2.QtGui.QInputMethod.hide": (),
- "PySide2.QtGui.QInputMethod.inputDirection": (),
- "PySide2.QtGui.QInputMethod.inputItemClipRectangle": (),
- "PySide2.QtGui.QInputMethod.inputItemRectangle": (),
- "PySide2.QtGui.QInputMethod.inputItemTransform": (),
- "PySide2.QtGui.QInputMethod.invokeAction": ('PySide2.QtGui.QInputMethod.Action', 'int'),
- "PySide2.QtGui.QInputMethod.isAnimating": (),
- "PySide2.QtGui.QInputMethod.isVisible": (),
- "PySide2.QtGui.QInputMethod.keyboardRectangle": (),
- "PySide2.QtGui.QInputMethod.locale": (),
- "PySide2.QtGui.QInputMethod.queryFocusObject": ('PySide2.QtCore.Qt.InputMethodQuery', 'typing.Any'),
- "PySide2.QtGui.QInputMethod.reset": (),
- "PySide2.QtGui.QInputMethod.setInputItemRectangle": ('PySide2.QtCore.QRectF',),
- "PySide2.QtGui.QInputMethod.setInputItemTransform": ('PySide2.QtGui.QTransform',),
- "PySide2.QtGui.QInputMethod.setVisible": ('bool',),
- "PySide2.QtGui.QInputMethod.show": (),
- "PySide2.QtGui.QInputMethod.update": ('PySide2.QtCore.Qt.InputMethodQueries',),
-# class PySide2.QtGui.QInputMethodEvent:
-# class PySide2.QtGui.QInputMethodEvent.Attribute:
- "PySide2.QtGui.QInputMethodEvent.Attribute.__init__": [('PySide2.QtGui.QInputMethodEvent.Attribute',), ('PySide2.QtGui.QInputMethodEvent.AttributeType', 'int', 'int'), ('PySide2.QtGui.QInputMethodEvent.AttributeType', 'int', 'int', 'typing.Any')],
- "PySide2.QtGui.QInputMethodEvent.Attribute.__copy__": (),
-# class PySide2.QtGui.QInputMethodEvent.AttributeType:
- "PySide2.QtGui.QInputMethodEvent.__init__": [(), ('PySide2.QtGui.QInputMethodEvent',), ('str', 'typing.Sequence')],
- "PySide2.QtGui.QInputMethodEvent.attributes": (),
- "PySide2.QtGui.QInputMethodEvent.commitString": (),
- "PySide2.QtGui.QInputMethodEvent.preeditString": (),
- "PySide2.QtGui.QInputMethodEvent.replacementLength": (),
- "PySide2.QtGui.QInputMethodEvent.replacementStart": (),
- "PySide2.QtGui.QInputMethodEvent.setCommitString": ('str', 'int', 'int'),
-# class PySide2.QtGui.QInputMethodQueryEvent:
- "PySide2.QtGui.QInputMethodQueryEvent.__init__": ('PySide2.QtCore.Qt.InputMethodQueries',),
- "PySide2.QtGui.QInputMethodQueryEvent.queries": (),
- "PySide2.QtGui.QInputMethodQueryEvent.setValue": ('PySide2.QtCore.Qt.InputMethodQuery', 'typing.Any'),
- "PySide2.QtGui.QInputMethodQueryEvent.value": ('PySide2.QtCore.Qt.InputMethodQuery',),
-# class PySide2.QtGui.QIntValidator:
- "PySide2.QtGui.QIntValidator.__init__": [('PySide2.QtCore.QObject',), ('int', 'int', 'PySide2.QtCore.QObject')],
- "PySide2.QtGui.QIntValidator.bottom": (),
- "PySide2.QtGui.QIntValidator.fixup": ('str',),
- "PySide2.QtGui.QIntValidator.setBottom": ('int',),
- "PySide2.QtGui.QIntValidator.setRange": ('int', 'int'),
- "PySide2.QtGui.QIntValidator.setTop": ('int',),
- "PySide2.QtGui.QIntValidator.top": (),
- "PySide2.QtGui.QIntValidator.validate": ('str', 'int'),
-# class PySide2.QtGui.QKeyEvent:
- "PySide2.QtGui.QKeyEvent.__init__": [('PySide2.QtCore.QEvent.Type', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int', 'int', 'int', 'str', 'bool', 'int'), ('PySide2.QtCore.QEvent.Type', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'str', 'bool', 'int')],
- "PySide2.QtGui.QKeyEvent.count": (),
- "PySide2.QtGui.QKeyEvent.isAutoRepeat": (),
- "PySide2.QtGui.QKeyEvent.key": (),
- "PySide2.QtGui.QKeyEvent.matches": ('PySide2.QtGui.QKeySequence.StandardKey',),
- "PySide2.QtGui.QKeyEvent.modifiers": (),
- "PySide2.QtGui.QKeyEvent.nativeModifiers": (),
- "PySide2.QtGui.QKeyEvent.nativeScanCode": (),
- "PySide2.QtGui.QKeyEvent.nativeVirtualKey": (),
- "PySide2.QtGui.QKeyEvent.text": (),
-# class PySide2.QtGui.QKeySequence:
-# class PySide2.QtGui.QKeySequence.SequenceFormat:
-# class PySide2.QtGui.QKeySequence.SequenceMatch:
-# class PySide2.QtGui.QKeySequence.StandardKey:
- "PySide2.QtGui.QKeySequence.__init__": [(), ('PySide2.QtGui.QKeySequence',), ('PySide2.QtGui.QKeySequence.StandardKey',), ('int', 'int', 'int', 'int'), ('str', 'PySide2.QtGui.QKeySequence.SequenceFormat')],
- "PySide2.QtGui.QKeySequence.__copy__": (),
- "PySide2.QtGui.QKeySequence.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QKeySequence.__reduce__": (),
- "PySide2.QtGui.QKeySequence.__repr__": (),
- "PySide2.QtGui.QKeySequence.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QKeySequence.count": (),
- "PySide2.QtGui.QKeySequence.fromString": ('str', 'PySide2.QtGui.QKeySequence.SequenceFormat'),
- "PySide2.QtGui.QKeySequence.isEmpty": (),
- "PySide2.QtGui.QKeySequence.keyBindings": ('PySide2.QtGui.QKeySequence.StandardKey',),
- "PySide2.QtGui.QKeySequence.listFromString": ('str', 'PySide2.QtGui.QKeySequence.SequenceFormat'),
- "PySide2.QtGui.QKeySequence.listToString": ('typing.Sequence', 'PySide2.QtGui.QKeySequence.SequenceFormat'),
- "PySide2.QtGui.QKeySequence.matches": ('PySide2.QtGui.QKeySequence',),
- "PySide2.QtGui.QKeySequence.mnemonic": ('str',),
- "PySide2.QtGui.QKeySequence.swap": ('PySide2.QtGui.QKeySequence',),
- "PySide2.QtGui.QKeySequence.toString": ('PySide2.QtGui.QKeySequence.SequenceFormat',),
-# class PySide2.QtGui.QLinearGradient:
- "PySide2.QtGui.QLinearGradient.__init__": [(), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'), ('PySide2.QtGui.QLinearGradient',), ('float', 'float', 'float', 'float')],
- "PySide2.QtGui.QLinearGradient.__copy__": (),
- "PySide2.QtGui.QLinearGradient.finalStop": (),
- "PySide2.QtGui.QLinearGradient.setFinalStop": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QLinearGradient.setStart": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QLinearGradient.start": (),
-# class PySide2.QtGui.QMatrix:
- "PySide2.QtGui.QMatrix.__init__": [(), ('PySide2.QtGui.QMatrix',), ('float', 'float', 'float', 'float', 'float', 'float')],
- "PySide2.QtGui.QMatrix.__copy__": (),
- "PySide2.QtGui.QMatrix.__imul__": ('PySide2.QtGui.QMatrix',),
- "PySide2.QtGui.QMatrix.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QMatrix.__mul__": [('PySide2.QtCore.QLine',), ('PySide2.QtCore.QLineF',), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtGui.QMatrix',)],
- "PySide2.QtGui.QMatrix.__reduce__": (),
- "PySide2.QtGui.QMatrix.__repr__": (),
- "PySide2.QtGui.QMatrix.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QMatrix.determinant": (),
- "PySide2.QtGui.QMatrix.dx": (),
- "PySide2.QtGui.QMatrix.dy": (),
- "PySide2.QtGui.QMatrix.inverted": (),
- "PySide2.QtGui.QMatrix.isIdentity": (),
- "PySide2.QtGui.QMatrix.isInvertible": (),
- "PySide2.QtGui.QMatrix.m11": (),
- "PySide2.QtGui.QMatrix.m12": (),
- "PySide2.QtGui.QMatrix.m21": (),
- "PySide2.QtGui.QMatrix.m22": (),
- "PySide2.QtGui.QMatrix.map": [('PySide2.QtCore.QLine',), ('PySide2.QtCore.QLineF',), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtGui.QPainterPath',), ('PySide2.QtGui.QPolygon',), ('PySide2.QtGui.QPolygonF',), ('PySide2.QtGui.QRegion',), ('float', 'float'), ('int', 'int')],
- "PySide2.QtGui.QMatrix.mapRect": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',)],
- "PySide2.QtGui.QMatrix.mapToPolygon": ('PySide2.QtCore.QRect',),
- "PySide2.QtGui.QMatrix.reset": (),
- "PySide2.QtGui.QMatrix.rotate": ('float',),
- "PySide2.QtGui.QMatrix.scale": ('float', 'float'),
- "PySide2.QtGui.QMatrix.setMatrix": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtGui.QMatrix.shear": ('float', 'float'),
- "PySide2.QtGui.QMatrix.translate": ('float', 'float'),
-# class PySide2.QtGui.QMatrix2x2:
- "PySide2.QtGui.QMatrix2x2.__init__": [(), ('PySide2.QtGui.QMatrix2x2',), ('typing.Iterable',)],
- "PySide2.QtGui.QMatrix2x2.__call__": ('int', 'int'),
- "PySide2.QtGui.QMatrix2x2.__copy__": (),
- "PySide2.QtGui.QMatrix2x2.__iadd__": ('PySide2.QtGui.QMatrix2x2',),
- "PySide2.QtGui.QMatrix2x2.__imul__": ('float',),
- "PySide2.QtGui.QMatrix2x2.__isub__": ('PySide2.QtGui.QMatrix2x2',),
- "PySide2.QtGui.QMatrix2x2.__reduce__": (),
- "PySide2.QtGui.QMatrix2x2.__repr__": (),
- "PySide2.QtGui.QMatrix2x2.data": (),
- "PySide2.QtGui.QMatrix2x2.fill": ('float',),
- "PySide2.QtGui.QMatrix2x2.isIdentity": (),
- "PySide2.QtGui.QMatrix2x2.setToIdentity": (),
- "PySide2.QtGui.QMatrix2x2.transposed": (),
-# class PySide2.QtGui.QMatrix2x3:
- "PySide2.QtGui.QMatrix2x3.__init__": [(), ('PySide2.QtGui.QMatrix2x3',), ('typing.Iterable',)],
- "PySide2.QtGui.QMatrix2x3.__call__": ('int', 'int'),
- "PySide2.QtGui.QMatrix2x3.__copy__": (),
- "PySide2.QtGui.QMatrix2x3.__iadd__": ('PySide2.QtGui.QMatrix2x3',),
- "PySide2.QtGui.QMatrix2x3.__imul__": ('float',),
- "PySide2.QtGui.QMatrix2x3.__isub__": ('PySide2.QtGui.QMatrix2x3',),
- "PySide2.QtGui.QMatrix2x3.__reduce__": (),
- "PySide2.QtGui.QMatrix2x3.__repr__": (),
- "PySide2.QtGui.QMatrix2x3.data": (),
- "PySide2.QtGui.QMatrix2x3.fill": ('float',),
- "PySide2.QtGui.QMatrix2x3.isIdentity": (),
- "PySide2.QtGui.QMatrix2x3.setToIdentity": (),
- "PySide2.QtGui.QMatrix2x3.transposed": (),
-# class PySide2.QtGui.QMatrix2x4:
- "PySide2.QtGui.QMatrix2x4.__init__": [(), ('PySide2.QtGui.QMatrix2x4',), ('typing.Iterable',)],
- "PySide2.QtGui.QMatrix2x4.__call__": ('int', 'int'),
- "PySide2.QtGui.QMatrix2x4.__copy__": (),
- "PySide2.QtGui.QMatrix2x4.__iadd__": ('PySide2.QtGui.QMatrix2x4',),
- "PySide2.QtGui.QMatrix2x4.__imul__": ('float',),
- "PySide2.QtGui.QMatrix2x4.__isub__": ('PySide2.QtGui.QMatrix2x4',),
- "PySide2.QtGui.QMatrix2x4.__reduce__": (),
- "PySide2.QtGui.QMatrix2x4.__repr__": (),
- "PySide2.QtGui.QMatrix2x4.data": (),
- "PySide2.QtGui.QMatrix2x4.fill": ('float',),
- "PySide2.QtGui.QMatrix2x4.isIdentity": (),
- "PySide2.QtGui.QMatrix2x4.setToIdentity": (),
- "PySide2.QtGui.QMatrix2x4.transposed": (),
-# class PySide2.QtGui.QMatrix3x2:
- "PySide2.QtGui.QMatrix3x2.__init__": [(), ('PySide2.QtGui.QMatrix3x2',), ('typing.Iterable',)],
- "PySide2.QtGui.QMatrix3x2.__call__": ('int', 'int'),
- "PySide2.QtGui.QMatrix3x2.__copy__": (),
- "PySide2.QtGui.QMatrix3x2.__iadd__": ('PySide2.QtGui.QMatrix3x2',),
- "PySide2.QtGui.QMatrix3x2.__imul__": ('float',),
- "PySide2.QtGui.QMatrix3x2.__isub__": ('PySide2.QtGui.QMatrix3x2',),
- "PySide2.QtGui.QMatrix3x2.__reduce__": (),
- "PySide2.QtGui.QMatrix3x2.__repr__": (),
- "PySide2.QtGui.QMatrix3x2.data": (),
- "PySide2.QtGui.QMatrix3x2.fill": ('float',),
- "PySide2.QtGui.QMatrix3x2.isIdentity": (),
- "PySide2.QtGui.QMatrix3x2.setToIdentity": (),
- "PySide2.QtGui.QMatrix3x2.transposed": (),
-# class PySide2.QtGui.QMatrix3x3:
- "PySide2.QtGui.QMatrix3x3.__init__": [(), ('PySide2.QtGui.QMatrix3x3',), ('typing.Iterable',)],
- "PySide2.QtGui.QMatrix3x3.__call__": ('int', 'int'),
- "PySide2.QtGui.QMatrix3x3.__copy__": (),
- "PySide2.QtGui.QMatrix3x3.__iadd__": ('PySide2.QtGui.QMatrix3x3',),
- "PySide2.QtGui.QMatrix3x3.__imul__": ('float',),
- "PySide2.QtGui.QMatrix3x3.__isub__": ('PySide2.QtGui.QMatrix3x3',),
- "PySide2.QtGui.QMatrix3x3.__reduce__": (),
- "PySide2.QtGui.QMatrix3x3.__repr__": (),
- "PySide2.QtGui.QMatrix3x3.data": (),
- "PySide2.QtGui.QMatrix3x3.fill": ('float',),
- "PySide2.QtGui.QMatrix3x3.isIdentity": (),
- "PySide2.QtGui.QMatrix3x3.setToIdentity": (),
- "PySide2.QtGui.QMatrix3x3.transposed": (),
-# class PySide2.QtGui.QMatrix3x4:
- "PySide2.QtGui.QMatrix3x4.__init__": [(), ('PySide2.QtGui.QMatrix3x4',), ('typing.Iterable',)],
- "PySide2.QtGui.QMatrix3x4.__call__": ('int', 'int'),
- "PySide2.QtGui.QMatrix3x4.__copy__": (),
- "PySide2.QtGui.QMatrix3x4.__iadd__": ('PySide2.QtGui.QMatrix3x4',),
- "PySide2.QtGui.QMatrix3x4.__imul__": ('float',),
- "PySide2.QtGui.QMatrix3x4.__isub__": ('PySide2.QtGui.QMatrix3x4',),
- "PySide2.QtGui.QMatrix3x4.__reduce__": (),
- "PySide2.QtGui.QMatrix3x4.__repr__": (),
- "PySide2.QtGui.QMatrix3x4.data": (),
- "PySide2.QtGui.QMatrix3x4.fill": ('float',),
- "PySide2.QtGui.QMatrix3x4.isIdentity": (),
- "PySide2.QtGui.QMatrix3x4.setToIdentity": (),
- "PySide2.QtGui.QMatrix3x4.transposed": (),
-# class PySide2.QtGui.QMatrix4x2:
- "PySide2.QtGui.QMatrix4x2.__init__": [(), ('PySide2.QtGui.QMatrix4x2',), ('typing.Iterable',)],
- "PySide2.QtGui.QMatrix4x2.__call__": ('int', 'int'),
- "PySide2.QtGui.QMatrix4x2.__copy__": (),
- "PySide2.QtGui.QMatrix4x2.__iadd__": ('PySide2.QtGui.QMatrix4x2',),
- "PySide2.QtGui.QMatrix4x2.__imul__": ('float',),
- "PySide2.QtGui.QMatrix4x2.__isub__": ('PySide2.QtGui.QMatrix4x2',),
- "PySide2.QtGui.QMatrix4x2.__reduce__": (),
- "PySide2.QtGui.QMatrix4x2.__repr__": (),
- "PySide2.QtGui.QMatrix4x2.data": (),
- "PySide2.QtGui.QMatrix4x2.fill": ('float',),
- "PySide2.QtGui.QMatrix4x2.isIdentity": (),
- "PySide2.QtGui.QMatrix4x2.setToIdentity": (),
- "PySide2.QtGui.QMatrix4x2.transposed": (),
-# class PySide2.QtGui.QMatrix4x3:
- "PySide2.QtGui.QMatrix4x3.__init__": [(), ('PySide2.QtGui.QMatrix4x3',), ('typing.Iterable',)],
- "PySide2.QtGui.QMatrix4x3.__call__": ('int', 'int'),
- "PySide2.QtGui.QMatrix4x3.__copy__": (),
- "PySide2.QtGui.QMatrix4x3.__iadd__": ('PySide2.QtGui.QMatrix4x3',),
- "PySide2.QtGui.QMatrix4x3.__imul__": ('float',),
- "PySide2.QtGui.QMatrix4x3.__isub__": ('PySide2.QtGui.QMatrix4x3',),
- "PySide2.QtGui.QMatrix4x3.__reduce__": (),
- "PySide2.QtGui.QMatrix4x3.__repr__": (),
- "PySide2.QtGui.QMatrix4x3.data": (),
- "PySide2.QtGui.QMatrix4x3.fill": ('float',),
- "PySide2.QtGui.QMatrix4x3.isIdentity": (),
- "PySide2.QtGui.QMatrix4x3.setToIdentity": (),
- "PySide2.QtGui.QMatrix4x3.transposed": (),
-# class PySide2.QtGui.QMatrix4x4:
- "PySide2.QtGui.QMatrix4x4.__init__": [(), ('PySide2.QtGui.QMatrix',), ('PySide2.QtGui.QTransform',), ('float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float'), ('typing.Sequence',)],
- "PySide2.QtGui.QMatrix4x4.__add__": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtGui.QMatrix4x4.__copy__": (),
- "PySide2.QtGui.QMatrix4x4.__dummy": ('typing.Sequence',),
- "PySide2.QtGui.QMatrix4x4.__iadd__": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtGui.QMatrix4x4.__imul__": [('PySide2.QtGui.QMatrix4x4',), ('float',)],
- "PySide2.QtGui.QMatrix4x4.__isub__": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtGui.QMatrix4x4.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QMatrix4x4.__mul__": [('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtGui.QMatrix4x4',), ('float',)],
- "PySide2.QtGui.QMatrix4x4.__neg__": (),
- "PySide2.QtGui.QMatrix4x4.__reduce__": (),
- "PySide2.QtGui.QMatrix4x4.__repr__": (),
- "PySide2.QtGui.QMatrix4x4.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QMatrix4x4.__sub__": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtGui.QMatrix4x4.column": ('int',),
- "PySide2.QtGui.QMatrix4x4.copyDataTo": (),
- "PySide2.QtGui.QMatrix4x4.data": (),
- "PySide2.QtGui.QMatrix4x4.determinant": (),
- "PySide2.QtGui.QMatrix4x4.fill": ('float',),
- "PySide2.QtGui.QMatrix4x4.flipCoordinates": (),
- "PySide2.QtGui.QMatrix4x4.frustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtGui.QMatrix4x4.inverted": (),
- "PySide2.QtGui.QMatrix4x4.isAffine": (),
- "PySide2.QtGui.QMatrix4x4.isIdentity": (),
- "PySide2.QtGui.QMatrix4x4.lookAt": ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'),
- "PySide2.QtGui.QMatrix4x4.map": [('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtGui.QVector3D',), ('PySide2.QtGui.QVector4D',)],
- "PySide2.QtGui.QMatrix4x4.mapRect": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',)],
- "PySide2.QtGui.QMatrix4x4.mapVector": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtGui.QMatrix4x4.normalMatrix": (),
- "PySide2.QtGui.QMatrix4x4.optimize": (),
- "PySide2.QtGui.QMatrix4x4.ortho": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float', 'float', 'float')],
- "PySide2.QtGui.QMatrix4x4.perspective": ('float', 'float', 'float', 'float'),
- "PySide2.QtGui.QMatrix4x4.rotate": [('PySide2.QtGui.QQuaternion',), ('float', 'PySide2.QtGui.QVector3D'), ('float', 'float', 'float', 'float')],
- "PySide2.QtGui.QMatrix4x4.row": ('int',),
- "PySide2.QtGui.QMatrix4x4.scale": [('PySide2.QtGui.QVector3D',), ('float',), ('float', 'float'), ('float', 'float', 'float')],
- "PySide2.QtGui.QMatrix4x4.setColumn": ('int', 'PySide2.QtGui.QVector4D'),
- "PySide2.QtGui.QMatrix4x4.setRow": ('int', 'PySide2.QtGui.QVector4D'),
- "PySide2.QtGui.QMatrix4x4.setToIdentity": (),
- "PySide2.QtGui.QMatrix4x4.toAffine": (),
- "PySide2.QtGui.QMatrix4x4.toTransform": [(), ('float',)],
- "PySide2.QtGui.QMatrix4x4.translate": [('PySide2.QtGui.QVector3D',), ('float', 'float'), ('float', 'float', 'float')],
- "PySide2.QtGui.QMatrix4x4.transposed": (),
- "PySide2.QtGui.QMatrix4x4.viewport": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float', 'float', 'float')],
-# class PySide2.QtGui.QMouseEvent:
- "PySide2.QtGui.QMouseEvent.__init__": [('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers'), ('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.Qt.MouseEventSource'), ('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers'), ('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers')],
- "PySide2.QtGui.QMouseEvent.button": (),
- "PySide2.QtGui.QMouseEvent.buttons": (),
- "PySide2.QtGui.QMouseEvent.flags": (),
- "PySide2.QtGui.QMouseEvent.globalPos": (),
- "PySide2.QtGui.QMouseEvent.globalX": (),
- "PySide2.QtGui.QMouseEvent.global""Y": (),
- "PySide2.QtGui.QMouseEvent.localPos": (),
- "PySide2.QtGui.QMouseEvent.pos": (),
- "PySide2.QtGui.QMouseEvent.screenPos": (),
- "PySide2.QtGui.QMouseEvent.setLocalPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QMouseEvent.source": (),
- "PySide2.QtGui.QMouseEvent.windowPos": (),
- "PySide2.QtGui.QMouseEvent.x": (),
- "PySide2.QtGui.QMouseEvent.y": (),
-# class PySide2.QtGui.QMoveEvent:
- "PySide2.QtGui.QMoveEvent.__init__": ('PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint'),
- "PySide2.QtGui.QMoveEvent.oldPos": (),
- "PySide2.QtGui.QMoveEvent.pos": (),
-# class PySide2.QtGui.QMovie:
-# class PySide2.QtGui.QMovie.CacheMode:
-# class PySide2.QtGui.QMovie.MovieState:
- "PySide2.QtGui.QMovie.__init__": [('PySide2.QtCore.QIODevice', 'PySide2.QtCore.QByteArray', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QObject',), ('str', 'PySide2.QtCore.QByteArray', 'PySide2.QtCore.QObject')],
- "PySide2.QtGui.QMovie.backgroundColor": (),
- "PySide2.QtGui.QMovie.cacheMode": (),
- "PySide2.QtGui.QMovie.currentFrameNumber": (),
- "PySide2.QtGui.QMovie.currentImage": (),
- "PySide2.QtGui.QMovie.currentPixmap": (),
- "PySide2.QtGui.QMovie.device": (),
- "PySide2.QtGui.QMovie.fileName": (),
- "PySide2.QtGui.QMovie.format": (),
- "PySide2.QtGui.QMovie.frameCount": (),
- "PySide2.QtGui.QMovie.frameRect": (),
- "PySide2.QtGui.QMovie.isValid": (),
- "PySide2.QtGui.QMovie.jumpToFrame": ('int',),
- "PySide2.QtGui.QMovie.jumpToNextFrame": (),
- "PySide2.QtGui.QMovie.lastError": (),
- "PySide2.QtGui.QMovie.lastErrorString": (),
- "PySide2.QtGui.QMovie.loopCount": (),
- "PySide2.QtGui.QMovie.nextFrameDelay": (),
- "PySide2.QtGui.QMovie.scaledSize": (),
- "PySide2.QtGui.QMovie.setBackgroundColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtGui.QMovie.setCacheMode": ('PySide2.QtGui.QMovie.CacheMode',),
- "PySide2.QtGui.QMovie.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtGui.QMovie.setFileName": ('str',),
- "PySide2.QtGui.QMovie.setFormat": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QMovie.setPaused": ('bool',),
- "PySide2.QtGui.QMovie.setScaledSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtGui.QMovie.setSpeed": ('int',),
- "PySide2.QtGui.QMovie.speed": (),
- "PySide2.QtGui.QMovie.start": (),
- "PySide2.QtGui.QMovie.state": (),
- "PySide2.QtGui.QMovie.stop": (),
- "PySide2.QtGui.QMovie.supportedFormats": (),
-# class PySide2.QtGui.QNativeGestureEvent:
- "PySide2.QtGui.QNativeGestureEvent.__init__": [('PySide2.QtCore.Qt.NativeGestureType', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'float', 'int', 'int'), ('PySide2.QtCore.Qt.NativeGestureType', 'PySide2.QtGui.QTouchDevice', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'float', 'int', 'int')],
- "PySide2.QtGui.QNativeGestureEvent.device": (),
- "PySide2.QtGui.QNativeGestureEvent.gestureType": (),
- "PySide2.QtGui.QNativeGestureEvent.globalPos": (),
- "PySide2.QtGui.QNativeGestureEvent.localPos": (),
- "PySide2.QtGui.QNativeGestureEvent.pos": (),
- "PySide2.QtGui.QNativeGestureEvent.screenPos": (),
- "PySide2.QtGui.QNativeGestureEvent.value": (),
- "PySide2.QtGui.QNativeGestureEvent.windowPos": (),
-# class PySide2.QtGui.QOffscreenSurface:
- "PySide2.QtGui.QOffscreenSurface.__init__": [('PySide2.QtGui.QScreen',), ('PySide2.QtGui.QScreen', 'PySide2.QtCore.QObject')],
- "PySide2.QtGui.QOffscreenSurface.create": (),
- "PySide2.QtGui.QOffscreenSurface.destroy": (),
- "PySide2.QtGui.QOffscreenSurface.format": (),
- "PySide2.QtGui.QOffscreenSurface.isValid": (),
- "PySide2.QtGui.QOffscreenSurface.nativeHandle": (),
- "PySide2.QtGui.QOffscreenSurface.requestedFormat": (),
- "PySide2.QtGui.QOffscreenSurface.screen": (),
- "PySide2.QtGui.QOffscreenSurface.setFormat": ('PySide2.QtGui.QSurfaceFormat',),
- "PySide2.QtGui.QOffscreenSurface.setNativeHandle": ('int',),
- "PySide2.QtGui.QOffscreenSurface.setScreen": ('PySide2.QtGui.QScreen',),
- "PySide2.QtGui.QOffscreenSurface.size": (),
- "PySide2.QtGui.QOffscreenSurface.surfaceHandle": (),
- "PySide2.QtGui.QOffscreenSurface.surfaceType": (),
-# class PySide2.QtGui.QOpenGLBuffer:
-# class PySide2.QtGui.QOpenGLBuffer.Access:
-# class PySide2.QtGui.QOpenGLBuffer.RangeAccessFlag:
-# class PySide2.QtGui.QOpenGLBuffer.RangeAccessFlags:
-# class PySide2.QtGui.QOpenGLBuffer.Type:
-# class PySide2.QtGui.QOpenGLBuffer.UsagePattern:
- "PySide2.QtGui.QOpenGLBuffer.__init__": [(), ('PySide2.QtGui.QOpenGLBuffer',), ('PySide2.QtGui.QOpenGLBuffer.Type',)],
- "PySide2.QtGui.QOpenGLBuffer.allocate": [('int',), ('int', 'int')],
- "PySide2.QtGui.QOpenGLBuffer.bind": (),
- "PySide2.QtGui.QOpenGLBuffer.bufferId": (),
- "PySide2.QtGui.QOpenGLBuffer.create": (),
- "PySide2.QtGui.QOpenGLBuffer.destroy": (),
- "PySide2.QtGui.QOpenGLBuffer.isCreated": (),
- "PySide2.QtGui.QOpenGLBuffer.map": ('PySide2.QtGui.QOpenGLBuffer.Access',),
- "PySide2.QtGui.QOpenGLBuffer.mapRange": ('int', 'int', 'PySide2.QtGui.QOpenGLBuffer.RangeAccessFlags'),
- "PySide2.QtGui.QOpenGLBuffer.read": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLBuffer.release": [(), ('PySide2.QtGui.QOpenGLBuffer.Type',)],
- "PySide2.QtGui.QOpenGLBuffer.setUsagePattern": ('PySide2.QtGui.QOpenGLBuffer.UsagePattern',),
- "PySide2.QtGui.QOpenGLBuffer.size": (),
- "PySide2.QtGui.QOpenGLBuffer.type": (),
- "PySide2.QtGui.QOpenGLBuffer.unmap": (),
- "PySide2.QtGui.QOpenGLBuffer.usagePattern": (),
- "PySide2.QtGui.QOpenGLBuffer.write": ('int', 'int', 'int'),
-# class PySide2.QtGui.QOpenGLContext:
-# class PySide2.QtGui.QOpenGLContext.OpenGLModuleType:
- "PySide2.QtGui.QOpenGLContext.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QOpenGLContext.areSharing": ('PySide2.QtGui.QOpenGLContext', 'PySide2.QtGui.QOpenGLContext'),
- "PySide2.QtGui.QOpenGLContext.create": (),
- "PySide2.QtGui.QOpenGLContext.currentContext": (),
- "PySide2.QtGui.QOpenGLContext.defaultFramebufferObject": (),
- "PySide2.QtGui.QOpenGLContext.doneCurrent": (),
- "PySide2.QtGui.QOpenGLContext.extensions": (),
- "PySide2.QtGui.QOpenGLContext.extraFunctions": (),
- "PySide2.QtGui.QOpenGLContext.format": (),
- "PySide2.QtGui.QOpenGLContext.functions": (),
- "PySide2.QtGui.QOpenGLContext.globalShareContext": (),
- "PySide2.QtGui.QOpenGLContext.hasExtension": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QOpenGLContext.isOpenGLES": (),
- "PySide2.QtGui.QOpenGLContext.isValid": (),
- "PySide2.QtGui.QOpenGLContext.makeCurrent": ('PySide2.QtGui.QSurface',),
- "PySide2.QtGui.QOpenGLContext.nativeHandle": (),
- "PySide2.QtGui.QOpenGLContext.openGLModuleHandle": (),
- "PySide2.QtGui.QOpenGLContext.openGLModuleType": (),
- "PySide2.QtGui.QOpenGLContext.screen": (),
- "PySide2.QtGui.QOpenGLContext.setFormat": ('PySide2.QtGui.QSurfaceFormat',),
- "PySide2.QtGui.QOpenGLContext.setNativeHandle": ('typing.Any',),
- "PySide2.QtGui.QOpenGLContext.setScreen": ('PySide2.QtGui.QScreen',),
- "PySide2.QtGui.QOpenGLContext.setShareContext": ('PySide2.QtGui.QOpenGLContext',),
- "PySide2.QtGui.QOpenGLContext.shareContext": (),
- "PySide2.QtGui.QOpenGLContext.shareGroup": (),
- "PySide2.QtGui.QOpenGLContext.supportsThreadedOpenGL": (),
- "PySide2.QtGui.QOpenGLContext.surface": (),
- "PySide2.QtGui.QOpenGLContext.swapBuffers": ('PySide2.QtGui.QSurface',),
- "PySide2.QtGui.QOpenGLContext.versionFunctions": ('PySide2.QtGui.QOpenGLVersionProfile',),
-# class PySide2.QtGui.QOpenGLContextGroup:
- "PySide2.QtGui.QOpenGLContextGroup.currentContextGroup": (),
- "PySide2.QtGui.QOpenGLContextGroup.shares": (),
-# class PySide2.QtGui.QOpenGLDebugLogger:
-# class PySide2.QtGui.QOpenGLDebugLogger.LoggingMode:
- "PySide2.QtGui.QOpenGLDebugLogger.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QOpenGLDebugLogger.disableMessages": [('PySide2.QtGui.QOpenGLDebugMessage.Sources', 'PySide2.QtGui.QOpenGLDebugMessage.Types', 'PySide2.QtGui.QOpenGLDebugMessage.Severities'), ('typing.List', 'PySide2.QtGui.QOpenGLDebugMessage.Sources', 'PySide2.QtGui.QOpenGLDebugMessage.Types')],
- "PySide2.QtGui.QOpenGLDebugLogger.enableMessages": [('PySide2.QtGui.QOpenGLDebugMessage.Sources', 'PySide2.QtGui.QOpenGLDebugMessage.Types', 'PySide2.QtGui.QOpenGLDebugMessage.Severities'), ('typing.List', 'PySide2.QtGui.QOpenGLDebugMessage.Sources', 'PySide2.QtGui.QOpenGLDebugMessage.Types')],
- "PySide2.QtGui.QOpenGLDebugLogger.initialize": (),
- "PySide2.QtGui.QOpenGLDebugLogger.isLogging": (),
- "PySide2.QtGui.QOpenGLDebugLogger.logMessage": ('PySide2.QtGui.QOpenGLDebugMessage',),
- "PySide2.QtGui.QOpenGLDebugLogger.loggedMessages": (),
- "PySide2.QtGui.QOpenGLDebugLogger.loggingMode": (),
- "PySide2.QtGui.QOpenGLDebugLogger.maximumMessageLength": (),
- "PySide2.QtGui.QOpenGLDebugLogger.popGroup": (),
- "PySide2.QtGui.QOpenGLDebugLogger.pushGroup": ('str', 'int', 'PySide2.QtGui.QOpenGLDebugMessage.Source'),
- "PySide2.QtGui.QOpenGLDebugLogger.startLogging": ('PySide2.QtGui.QOpenGLDebugLogger.LoggingMode',),
- "PySide2.QtGui.QOpenGLDebugLogger.stopLogging": (),
-# class PySide2.QtGui.QOpenGLDebugMessage:
-# class PySide2.QtGui.QOpenGLDebugMessage.Severities:
-# class PySide2.QtGui.QOpenGLDebugMessage.Severity:
-# class PySide2.QtGui.QOpenGLDebugMessage.Source:
-# class PySide2.QtGui.QOpenGLDebugMessage.Sources:
-# class PySide2.QtGui.QOpenGLDebugMessage.Type:
-# class PySide2.QtGui.QOpenGLDebugMessage.Types:
- "PySide2.QtGui.QOpenGLDebugMessage.__init__": [(), ('PySide2.QtGui.QOpenGLDebugMessage',)],
- "PySide2.QtGui.QOpenGLDebugMessage.__copy__": (),
- "PySide2.QtGui.QOpenGLDebugMessage.createApplicationMessage": ('str', 'int', 'PySide2.QtGui.QOpenGLDebugMessage.Severity', 'PySide2.QtGui.QOpenGLDebugMessage.Type'),
- "PySide2.QtGui.QOpenGLDebugMessage.createThirdPartyMessage": ('str', 'int', 'PySide2.QtGui.QOpenGLDebugMessage.Severity', 'PySide2.QtGui.QOpenGLDebugMessage.Type'),
- "PySide2.QtGui.QOpenGLDebugMessage.id": (),
- "PySide2.QtGui.QOpenGLDebugMessage.message": (),
- "PySide2.QtGui.QOpenGLDebugMessage.severity": (),
- "PySide2.QtGui.QOpenGLDebugMessage.source": (),
- "PySide2.QtGui.QOpenGLDebugMessage.swap": ('PySide2.QtGui.QOpenGLDebugMessage',),
- "PySide2.QtGui.QOpenGLDebugMessage.type": (),
-# class PySide2.QtGui.QOpenGLExtraFunctions:
- "PySide2.QtGui.QOpenGLExtraFunctions.__init__": [(), ('PySide2.QtGui.QOpenGLContext',)],
- "PySide2.QtGui.QOpenGLExtraFunctions.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBeginQuery": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBeginTransformFeedback": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBindImageTexture": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBindProgramPipeline": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBindSampler": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBindVertexArray": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBlendBarrier": (),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBlendEquationi": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glClearBufferfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glClearBufferiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glClearBufferuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glCopyImageSubData": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDebugMessageControl": ('int', 'int', 'int', 'int', 'typing.Sequence', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDebugMessageInsert": ('int', 'int', 'int', 'int', 'int', 'bytes'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDeleteProgramPipelines": ('int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDeleteQueries": ('int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDeleteSamplers": ('int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDeleteTransformFeedbacks": ('int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDeleteVertexArrays": ('int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDisablei": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDispatchCompute": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDrawBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glEnablei": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glEndQuery": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glFramebufferParameteri": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGenProgramPipelines": ('int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGenQueries": ('int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGenSamplers": ('int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGenTransformFeedbacks": ('int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGenVertexArrays": ('int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetActiveUniformBlockiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetActiveUniformsiv": ('int', 'int', 'typing.Sequence', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetBufferParameteri64v": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetFragDataLocation": ('int', 'bytes'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetFramebufferParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetGraphicsResetStatus": (),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetInteger64i_v": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetInteger64v": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetIntegeri_v": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetInternalformativ": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetMultisamplefv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetProgramBinary": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetProgramInterfaceiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetProgramPipelineiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetProgramResourceIndex": ('int', 'int', 'bytes'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetProgramResourceLocation": ('int', 'int', 'bytes'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetProgramResourceiv": ('int', 'int', 'int', 'int', 'typing.Sequence', 'int', 'typing.Sequence', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetQueryObjectuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetQueryiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetSamplerParameterIiv": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetSamplerParameterIuiv": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetSamplerParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetSamplerParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetStringi": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetTexLevelParameterfv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetTexLevelParameteriv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetTexParameterIiv": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetTexParameterIuiv": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetUniformBlockIndex": ('int', 'bytes'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetUniformuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetVertexAttribIiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetVertexAttribIuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetnUniformfv": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetnUniformiv": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetnUniformuiv": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glInvalidateFramebuffer": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glInvalidateSubFramebuffer": ('int', 'int', 'typing.Sequence', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glIsEnabledi": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glIsProgramPipeline": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glIsQuery": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glIsSampler": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glIsTransformFeedback": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glIsVertexArray": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glMemoryBarrier": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glMemoryBarrierByRegion": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glMinSampleShading": ('float',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glObjectLabel": ('int', 'int', 'int', 'bytes'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glObjectPtrLabel": ('int', 'int', 'bytes'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glPatchParameteri": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glPopDebugGroup": (),
- "PySide2.QtGui.QOpenGLExtraFunctions.glPrimitiveBoundingBox": ('float', 'float', 'float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glPushDebugGroup": ('int', 'int', 'int', 'bytes'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glReadBuffer": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glReadnPixels": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glSampleMaski": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glSamplerParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glSamplerParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glTexParameterIiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glTexParameterIuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glTexStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glTexStorage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glTexStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glTexStorage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniform1ui": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniform1uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniform2uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniform3uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniform4uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUnmapBuffer": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glValidateProgramPipeline": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glVertexAttribBinding": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glVertexAttribFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glVertexAttribI4iv": ('int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glVertexAttribI4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glVertexAttribIFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glVertexBindingDivisor": ('int', 'int'),
-# class PySide2.QtGui.QOpenGLFramebufferObject:
-# class PySide2.QtGui.QOpenGLFramebufferObject.Attachment:
-# class PySide2.QtGui.QOpenGLFramebufferObject.FramebufferRestorePolicy:
- "PySide2.QtGui.QOpenGLFramebufferObject.__init__": [('PySide2.QtCore.QSize', 'PySide2.QtGui.QOpenGLFramebufferObject.Attachment', 'int', 'int'), ('PySide2.QtCore.QSize', 'PySide2.QtGui.QOpenGLFramebufferObjectFormat'), ('PySide2.QtCore.QSize', 'int'), ('int', 'int', 'PySide2.QtGui.QOpenGLFramebufferObject.Attachment', 'int', 'int'), ('int', 'int', 'PySide2.QtGui.QOpenGLFramebufferObjectFormat'), ('int', 'int', 'int')],
- "PySide2.QtGui.QOpenGLFramebufferObject.addColorAttachment": [('PySide2.QtCore.QSize', 'int'), ('int', 'int', 'int')],
- "PySide2.QtGui.QOpenGLFramebufferObject.attachment": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.bind": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.bindDefault": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.blitFramebuffer": [('PySide2.QtGui.QOpenGLFramebufferObject', 'PySide2.QtCore.QRect', 'PySide2.QtGui.QOpenGLFramebufferObject', 'PySide2.QtCore.QRect', 'int', 'int'), ('PySide2.QtGui.QOpenGLFramebufferObject', 'PySide2.QtCore.QRect', 'PySide2.QtGui.QOpenGLFramebufferObject', 'PySide2.QtCore.QRect', 'int', 'int', 'int', 'int'), ('PySide2.QtGui.QOpenGLFramebufferObject', 'PySide2.QtCore.QRect', 'PySide2.QtGui.QOpenGLFramebufferObject', 'PySide2.QtCore.QRect', 'int', 'int', 'int', 'int', 'PySide2.QtGui.QOpenGLFramebufferObject.FramebufferRestorePolicy'), ('PySide2.QtGui.QOpenGLFramebufferObject', 'PySide2.QtGui.QOpenGLFramebufferObject', 'int', 'int')],
- "PySide2.QtGui.QOpenGLFramebufferObject.format": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.handle": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.hasOpenGLFramebufferBlit": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.hasOpenGLFramebufferObjects": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.height": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.isBound": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.isValid": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.release": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.setAttachment": ('PySide2.QtGui.QOpenGLFramebufferObject.Attachment',),
- "PySide2.QtGui.QOpenGLFramebufferObject.size": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.sizes": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.takeTexture": [(), ('int',)],
- "PySide2.QtGui.QOpenGLFramebufferObject.texture": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.textures": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.toImage": [(), ('bool',), ('bool', 'int')],
- "PySide2.QtGui.QOpenGLFramebufferObject.width": (),
-# class PySide2.QtGui.QOpenGLFramebufferObjectFormat:
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.__init__": [(), ('PySide2.QtGui.QOpenGLFramebufferObjectFormat',)],
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.__copy__": (),
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.attachment": (),
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.internalTextureFormat": (),
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.mipmap": (),
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.samples": (),
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.setAttachment": ('PySide2.QtGui.QOpenGLFramebufferObject.Attachment',),
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.setInternalTextureFormat": ('int',),
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.setMipmap": ('bool',),
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.setSamples": ('int',),
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.setTextureTarget": ('int',),
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.textureTarget": (),
-# class PySide2.QtGui.QOpenGLFunctions:
-# class PySide2.QtGui.QOpenGLFunctions.OpenGLFeature:
-# class PySide2.QtGui.QOpenGLFunctions.OpenGLFeatures:
- "PySide2.QtGui.QOpenGLFunctions.__init__": [(), ('PySide2.QtGui.QOpenGLContext',)],
- "PySide2.QtGui.QOpenGLFunctions.glActiveTexture": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glAttachShader": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glBindAttribLocation": ('int', 'int', 'bytes'),
- "PySide2.QtGui.QOpenGLFunctions.glBindBuffer": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glBindTexture": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glBlendEquation": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glBlendFunc": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glCheckFramebufferStatus": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glClear": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glClearDepthf": ('float',),
- "PySide2.QtGui.QOpenGLFunctions.glClearStencil": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glCompileShader": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glCreateProgram": (),
- "PySide2.QtGui.QOpenGLFunctions.glCreateShader": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glCullFace": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glDeleteBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glDeleteFramebuffers": ('int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glDeleteProgram": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glDeleteRenderbuffers": ('int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glDeleteShader": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glDeleteTextures": ('int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glDepthFunc": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glDepthMask": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glDepthRangef": ('float', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glDetachShader": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glDisable": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glDisableVertexAttribArray": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glEnable": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glEnableVertexAttribArray": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glFinish": (),
- "PySide2.QtGui.QOpenGLFunctions.glFlush": (),
- "PySide2.QtGui.QOpenGLFunctions.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glFrontFace": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glGenBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGenFramebuffers": ('int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGenRenderbuffers": ('int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGenTextures": ('int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGenerateMipmap": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glGetAttachedShaders": ('int', 'int', 'typing.Sequence', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetAttribLocation": ('int', 'bytes'),
- "PySide2.QtGui.QOpenGLFunctions.glGetBufferParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetError": (),
- "PySide2.QtGui.QOpenGLFunctions.glGetFloatv": ('int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetFramebufferAttachmentParameteriv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetIntegerv": ('int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetProgramiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetRenderbufferParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetShaderPrecisionFormat": ('int', 'int', 'typing.Sequence', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetShaderiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetString": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glGetTexParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetTexParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetUniformLocation": ('int', 'bytes'),
- "PySide2.QtGui.QOpenGLFunctions.glGetUniformfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetUniformiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetVertexAttribfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetVertexAttribiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glHint": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glIsBuffer": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glIsEnabled": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glIsFramebuffer": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glIsProgram": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glIsRenderbuffer": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glIsShader": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glIsTexture": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glLineWidth": ('float',),
- "PySide2.QtGui.QOpenGLFunctions.glLinkProgram": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glPixelStorei": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glPolygonOffset": ('float', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glReadPixels": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glReleaseShaderCompiler": (),
- "PySide2.QtGui.QOpenGLFunctions.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glSampleCoverage": ('float', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glShaderBinary": ('int', 'typing.Sequence', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glStencilMask": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glTexParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glTexParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform1f": ('int', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform1fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform1i": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform1iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform2fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform2iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform3fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform3iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform4fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform4iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glUseProgram": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glValidateProgram": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glVertexAttrib1fv": ('int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glVertexAttrib2fv": ('int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glVertexAttrib3fv": ('int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glVertexAttrib4fv": ('int', 'typing.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.hasOpenGLFeature": ('PySide2.QtGui.QOpenGLFunctions.OpenGLFeature',),
- "PySide2.QtGui.QOpenGLFunctions.initializeOpenGLFunctions": (),
- "PySide2.QtGui.QOpenGLFunctions.openGLFeatures": (),
-# class PySide2.QtGui.QOpenGLPixelTransferOptions:
- "PySide2.QtGui.QOpenGLPixelTransferOptions.__init__": [(), ('PySide2.QtGui.QOpenGLPixelTransferOptions',)],
- "PySide2.QtGui.QOpenGLPixelTransferOptions.__copy__": (),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.alignment": (),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.imageHeight": (),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.isLeastSignificantBitFirst": (),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.isSwapBytesEnabled": (),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.rowLength": (),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.setAlignment": ('int',),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.setImageHeight": ('int',),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.setLeastSignificantByteFirst": ('bool',),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.setRowLength": ('int',),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.setSkipImages": ('int',),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.setSkipPixels": ('int',),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.setSkipRows": ('int',),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.setSwapBytesEnabled": ('bool',),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.skipImages": (),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.skipPixels": (),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.skipRows": (),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.swap": ('PySide2.QtGui.QOpenGLPixelTransferOptions',),
-# class PySide2.QtGui.QOpenGLShader:
-# class PySide2.QtGui.QOpenGLShader.ShaderType:
-# class PySide2.QtGui.QOpenGLShader.ShaderTypeBit:
- "PySide2.QtGui.QOpenGLShader.__init__": ('PySide2.QtGui.QOpenGLShader.ShaderType', 'PySide2.QtCore.QObject'),
- "PySide2.QtGui.QOpenGLShader.compileSourceCode": [('PySide2.QtCore.QByteArray',), ('bytes',), ('str',)],
- "PySide2.QtGui.QOpenGLShader.compileSourceFile": ('str',),
- "PySide2.QtGui.QOpenGLShader.hasOpenGLShaders": ('PySide2.QtGui.QOpenGLShader.ShaderType', 'PySide2.QtGui.QOpenGLContext'),
- "PySide2.QtGui.QOpenGLShader.isCompiled": (),
- "PySide2.QtGui.QOpenGLShader.log": (),
- "PySide2.QtGui.QOpenGLShader.shaderId": (),
- "PySide2.QtGui.QOpenGLShader.shaderType": (),
- "PySide2.QtGui.QOpenGLShader.sourceCode": (),
-# class PySide2.QtGui.QOpenGLShaderProgram:
- "PySide2.QtGui.QOpenGLShaderProgram.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QOpenGLShaderProgram.addCacheableShaderFromSourceCode": [('PySide2.QtGui.QOpenGLShader.ShaderType', 'PySide2.QtCore.QByteArray'), ('PySide2.QtGui.QOpenGLShader.ShaderType', 'bytes'), ('PySide2.QtGui.QOpenGLShader.ShaderType', 'str')],
- "PySide2.QtGui.QOpenGLShaderProgram.addCacheableShaderFromSourceFile": ('PySide2.QtGui.QOpenGLShader.ShaderType', 'str'),
- "PySide2.QtGui.QOpenGLShaderProgram.addShader": ('PySide2.QtGui.QOpenGLShader',),
- "PySide2.QtGui.QOpenGLShaderProgram.addShaderFromSourceCode": [('PySide2.QtGui.QOpenGLShader.ShaderType', 'PySide2.QtCore.QByteArray'), ('PySide2.QtGui.QOpenGLShader.ShaderType', 'bytes'), ('PySide2.QtGui.QOpenGLShader.ShaderType', 'str')],
- "PySide2.QtGui.QOpenGLShaderProgram.addShaderFromSourceFile": ('PySide2.QtGui.QOpenGLShader.ShaderType', 'str'),
- "PySide2.QtGui.QOpenGLShaderProgram.attributeLocation": [('PySide2.QtCore.QByteArray',), ('bytes',), ('str',)],
- "PySide2.QtGui.QOpenGLShaderProgram.bind": (),
- "PySide2.QtGui.QOpenGLShaderProgram.bindAttributeLocation": [('PySide2.QtCore.QByteArray', 'int'), ('bytes', 'int'), ('str', 'int')],
- "PySide2.QtGui.QOpenGLShaderProgram.create": (),
- "PySide2.QtGui.QOpenGLShaderProgram.defaultInnerTessellationLevels": (),
- "PySide2.QtGui.QOpenGLShaderProgram.defaultOuterTessellationLevels": (),
- "PySide2.QtGui.QOpenGLShaderProgram.disableAttributeArray": [('bytes',), ('int',)],
- "PySide2.QtGui.QOpenGLShaderProgram.enableAttributeArray": [('bytes',), ('int',)],
- "PySide2.QtGui.QOpenGLShaderProgram.hasOpenGLShaderPrograms": ('PySide2.QtGui.QOpenGLContext',),
- "PySide2.QtGui.QOpenGLShaderProgram.isLinked": (),
- "PySide2.QtGui.QOpenGLShaderProgram.link": (),
- "PySide2.QtGui.QOpenGLShaderProgram.log": (),
- "PySide2.QtGui.QOpenGLShaderProgram.maxGeometryOutputVertices": (),
- "PySide2.QtGui.QOpenGLShaderProgram.patchVertexCount": (),
- "PySide2.QtGui.QOpenGLShaderProgram.programId": (),
- "PySide2.QtGui.QOpenGLShaderProgram.release": (),
- "PySide2.QtGui.QOpenGLShaderProgram.removeAllShaders": (),
- "PySide2.QtGui.QOpenGLShaderProgram.removeShader": ('PySide2.QtGui.QOpenGLShader',),
- "PySide2.QtGui.QOpenGLShaderProgram.setAttributeArray": [('bytes', 'int', 'int', 'int', 'int'), ('bytes', 'typing.Sequence', 'int', 'int'), ('int', 'int', 'int', 'int', 'int'), ('int', 'typing.Sequence', 'int', 'int')],
- "PySide2.QtGui.QOpenGLShaderProgram.setAttributeBuffer": [('bytes', 'int', 'int', 'int', 'int'), ('int', 'int', 'int', 'int', 'int')],
- "PySide2.QtGui.QOpenGLShaderProgram.setAttributeValue": [('bytes', 'PySide2.QtGui.QColor'), ('bytes', 'PySide2.QtGui.QVector2D'), ('bytes', 'PySide2.QtGui.QVector3D'), ('bytes', 'PySide2.QtGui.QVector4D'), ('bytes', 'float'), ('bytes', 'float', 'float'), ('bytes', 'float', 'float', 'float'), ('bytes', 'float', 'float', 'float', 'float'), ('bytes', 'typing.Sequence', 'int', 'int'), ('int', 'PySide2.QtGui.QColor'), ('int', 'PySide2.QtGui.QVector2D'), ('int', 'PySide2.QtGui.QVector3D'), ('int', 'PySide2.QtGui.QVector4D'), ('int', 'float'), ('int', 'float', 'float'), ('int', 'float', 'float', 'float'), ('int', 'float', 'float', 'float', 'float'), ('int', 'typing.Sequence', 'int', 'int')],
- "PySide2.QtGui.QOpenGLShaderProgram.setDefaultInnerTessellationLevels": ('typing.List',),
- "PySide2.QtGui.QOpenGLShaderProgram.setDefaultOuterTessellationLevels": ('typing.List',),
- "PySide2.QtGui.QOpenGLShaderProgram.setPatchVertexCount": ('int',),
- "PySide2.QtGui.QOpenGLShaderProgram.setUniformValue": [('bytes', 'PySide2.QtCore.QPoint'), ('bytes', 'PySide2.QtCore.QPointF'), ('bytes', 'PySide2.QtCore.QSize'), ('bytes', 'PySide2.QtCore.QSizeF'), ('bytes', 'PySide2.QtGui.QColor'), ('bytes', 'PySide2.QtGui.QMatrix2x2'), ('bytes', 'PySide2.QtGui.QMatrix2x3'), ('bytes', 'PySide2.QtGui.QMatrix2x4'), ('bytes', 'PySide2.QtGui.QMatrix3x2'), ('bytes', 'PySide2.QtGui.QMatrix3x3'), ('bytes', 'PySide2.QtGui.QMatrix3x4'), ('bytes', 'PySide2.QtGui.QMatrix4x2'), ('bytes', 'PySide2.QtGui.QMatrix4x3'), ('bytes', 'PySide2.QtGui.QMatrix4x4'), ('bytes', 'PySide2.QtGui.QTransform'), ('bytes', 'PySide2.QtGui.QVector2D'), ('bytes', 'PySide2.QtGui.QVector3D'), ('bytes', 'PySide2.QtGui.QVector4D'), ('bytes', 'float', 'float'), ('bytes', 'float', 'float', 'float'), ('bytes', 'float', 'float', 'float', 'float'), ('bytes', 'typing.Tuple'), ('int', 'PySide2.QtCore.QPoint'), ('int', 'PySide2.QtCore.QPointF'), ('int', 'PySide2.QtCore.QSize'), ('int', 'PySide2.QtCore.QSizeF'), ('int', 'PySide2.QtGui.QColor'), ('int', 'PySide2.QtGui.QMatrix2x2'), ('int', 'PySide2.QtGui.QMatrix2x3'), ('int', 'PySide2.QtGui.QMatrix2x4'), ('int', 'PySide2.QtGui.QMatrix3x2'), ('int', 'PySide2.QtGui.QMatrix3x3'), ('int', 'PySide2.QtGui.QMatrix3x4'), ('int', 'PySide2.QtGui.QMatrix4x2'), ('int', 'PySide2.QtGui.QMatrix4x3'), ('int', 'PySide2.QtGui.QMatrix4x4'), ('int', 'PySide2.QtGui.QTransform'), ('int', 'PySide2.QtGui.QVector2D'), ('int', 'PySide2.QtGui.QVector3D'), ('int', 'PySide2.QtGui.QVector4D'), ('int', 'float'), ('int', 'float', 'float'), ('int', 'float', 'float', 'float'), ('int', 'float', 'float', 'float', 'float'), ('int', 'int'), ('int', 'typing.Tuple')],
- "PySide2.QtGui.QOpenGLShaderProgram.setUniformValue1f": [('bytes', 'float'), ('int', 'float')],
- "PySide2.QtGui.QOpenGLShaderProgram.setUniformValue1i": [('bytes', 'int'), ('int', 'int')],
- "PySide2.QtGui.QOpenGLShaderProgram.setUniformValueArray": [('bytes', 'typing.Sequence', 'int'), ('bytes', 'typing.Sequence', 'int', 'int'), ('int', 'typing.Sequence', 'int'), ('int', 'typing.Sequence', 'int', 'int')],
- "PySide2.QtGui.QOpenGLShaderProgram.shaders": (),
- "PySide2.QtGui.QOpenGLShaderProgram.uniformLocation": [('PySide2.QtCore.QByteArray',), ('bytes',), ('str',)],
-# class PySide2.QtGui.QOpenGLTexture:
-# class PySide2.QtGui.QOpenGLTexture.BindingTarget:
-# class PySide2.QtGui.QOpenGLTexture.ComparisonFunction:
-# class PySide2.QtGui.QOpenGLTexture.ComparisonMode:
-# class PySide2.QtGui.QOpenGLTexture.CoordinateDirection:
-# class PySide2.QtGui.QOpenGLTexture.CubeMapFace:
-# class PySide2.QtGui.QOpenGLTexture.DepthStencilMode:
-# class PySide2.QtGui.QOpenGLTexture.Feature:
-# class PySide2.QtGui.QOpenGLTexture.Features:
-# class PySide2.QtGui.QOpenGLTexture.Filter:
-# class PySide2.QtGui.QOpenGLTexture.MipMapGeneration:
-# class PySide2.QtGui.QOpenGLTexture.PixelFormat:
-# class PySide2.QtGui.QOpenGLTexture.PixelType:
-# class PySide2.QtGui.QOpenGLTexture.SwizzleComponent:
-# class PySide2.QtGui.QOpenGLTexture.SwizzleValue:
-# class PySide2.QtGui.QOpenGLTexture.Target:
-# class PySide2.QtGui.QOpenGLTexture.TextureFormat:
-# class PySide2.QtGui.QOpenGLTexture.TextureFormatClass:
-# class PySide2.QtGui.QOpenGLTexture.TextureUnitReset:
-# class PySide2.QtGui.QOpenGLTexture.WrapMode:
- "PySide2.QtGui.QOpenGLTexture.__init__": [('PySide2.QtGui.QImage', 'PySide2.QtGui.QOpenGLTexture.MipMapGeneration'), ('PySide2.QtGui.QOpenGLTexture.Target',)],
- "PySide2.QtGui.QOpenGLTexture.allocateStorage": [(), ('PySide2.QtGui.QOpenGLTexture.PixelFormat', 'PySide2.QtGui.QOpenGLTexture.PixelType')],
- "PySide2.QtGui.QOpenGLTexture.bind": [(), ('int', 'PySide2.QtGui.QOpenGLTexture.TextureUnitReset')],
- "PySide2.QtGui.QOpenGLTexture.borderColor": (),
- "PySide2.QtGui.QOpenGLTexture.boundTextureId": [('PySide2.QtGui.QOpenGLTexture.BindingTarget',), ('int', 'PySide2.QtGui.QOpenGLTexture.BindingTarget')],
- "PySide2.QtGui.QOpenGLTexture.comparisonFunction": (),
- "PySide2.QtGui.QOpenGLTexture.comparisonMode": (),
- "PySide2.QtGui.QOpenGLTexture.create": (),
- "PySide2.QtGui.QOpenGLTexture.createTextureView": ('PySide2.QtGui.QOpenGLTexture.Target', 'PySide2.QtGui.QOpenGLTexture.TextureFormat', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLTexture.depth": (),
- "PySide2.QtGui.QOpenGLTexture.depthStencilMode": (),
- "PySide2.QtGui.QOpenGLTexture.destroy": (),
- "PySide2.QtGui.QOpenGLTexture.faces": (),
- "PySide2.QtGui.QOpenGLTexture.format": (),
- "PySide2.QtGui.QOpenGLTexture.generateMipMaps": [(), ('int', 'bool')],
- "PySide2.QtGui.QOpenGLTexture.hasFeature": ('PySide2.QtGui.QOpenGLTexture.Feature',),
- "PySide2.QtGui.QOpenGLTexture.height": (),
- "PySide2.QtGui.QOpenGLTexture.isAutoMipMapGenerationEnabled": (),
- "PySide2.QtGui.QOpenGLTexture.isBound": [(), ('int',)],
- "PySide2.QtGui.QOpenGLTexture.isCreated": (),
- "PySide2.QtGui.QOpenGLTexture.isFixedSamplePositions": (),
- "PySide2.QtGui.QOpenGLTexture.isStorageAllocated": (),
- "PySide2.QtGui.QOpenGLTexture.isTextureView": (),
- "PySide2.QtGui.QOpenGLTexture.layers": (),
- "PySide2.QtGui.QOpenGLTexture.levelOfDetailRange": (),
- "PySide2.QtGui.QOpenGLTexture.levelofDetailBias": (),
- "PySide2.QtGui.QOpenGLTexture.magnificationFilter": (),
- "PySide2.QtGui.QOpenGLTexture.maximumAnisotropy": (),
- "PySide2.QtGui.QOpenGLTexture.maximumLevelOfDetail": (),
- "PySide2.QtGui.QOpenGLTexture.maximumMipLevels": (),
- "PySide2.QtGui.QOpenGLTexture.minMagFilters": (),
- "PySide2.QtGui.QOpenGLTexture.minificationFilter": (),
- "PySide2.QtGui.QOpenGLTexture.minimumLevelOfDetail": (),
- "PySide2.QtGui.QOpenGLTexture.mipBaseLevel": (),
- "PySide2.QtGui.QOpenGLTexture.mipLevelRange": (),
- "PySide2.QtGui.QOpenGLTexture.mipLevels": (),
- "PySide2.QtGui.QOpenGLTexture.mipMaxLevel": (),
- "PySide2.QtGui.QOpenGLTexture.release": [(), ('int', 'PySide2.QtGui.QOpenGLTexture.TextureUnitReset')],
- "PySide2.QtGui.QOpenGLTexture.samples": (),
- "PySide2.QtGui.QOpenGLTexture.setAutoMipMapGenerationEnabled": ('bool',),
- "PySide2.QtGui.QOpenGLTexture.setBorderColor": [('PySide2.QtGui.QColor',), ('float', 'float', 'float', 'float'), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QOpenGLTexture.setComparisonFunction": ('PySide2.QtGui.QOpenGLTexture.ComparisonFunction',),
- "PySide2.QtGui.QOpenGLTexture.setComparisonMode": ('PySide2.QtGui.QOpenGLTexture.ComparisonMode',),
- "PySide2.QtGui.QOpenGLTexture.setCompressedData": [('int', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'PySide2.QtGui.QOpenGLTexture.CubeMapFace', 'int', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'int', 'PySide2.QtGui.QOpenGLTexture.CubeMapFace', 'int', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'int', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions')],
- "PySide2.QtGui.QOpenGLTexture.setData": [('PySide2.QtGui.QImage', 'PySide2.QtGui.QOpenGLTexture.MipMapGeneration'), ('PySide2.QtGui.QOpenGLTexture.PixelFormat', 'PySide2.QtGui.QOpenGLTexture.PixelType', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'PySide2.QtGui.QOpenGLTexture.PixelFormat', 'PySide2.QtGui.QOpenGLTexture.PixelType', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'PySide2.QtGui.QOpenGLTexture.CubeMapFace', 'PySide2.QtGui.QOpenGLTexture.PixelFormat', 'PySide2.QtGui.QOpenGLTexture.PixelType', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'PySide2.QtGui.QOpenGLTexture.PixelFormat', 'PySide2.QtGui.QOpenGLTexture.PixelType', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'int', 'PySide2.QtGui.QOpenGLTexture.CubeMapFace', 'PySide2.QtGui.QOpenGLTexture.PixelFormat', 'PySide2.QtGui.QOpenGLTexture.PixelType', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'int', 'int', 'int', 'int', 'PySide2.QtGui.QOpenGLTexture.PixelFormat', 'PySide2.QtGui.QOpenGLTexture.PixelType', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'PySide2.QtGui.QOpenGLTexture.CubeMapFace', 'PySide2.QtGui.QOpenGLTexture.PixelFormat', 'PySide2.QtGui.QOpenGLTexture.PixelType', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'PySide2.QtGui.QOpenGLTexture.CubeMapFace', 'int', 'PySide2.QtGui.QOpenGLTexture.PixelFormat', 'PySide2.QtGui.QOpenGLTexture.PixelType', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'PySide2.QtGui.QOpenGLTexture.PixelFormat', 'PySide2.QtGui.QOpenGLTexture.PixelType', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions')],
- "PySide2.QtGui.QOpenGLTexture.setDepthStencilMode": ('PySide2.QtGui.QOpenGLTexture.DepthStencilMode',),
- "PySide2.QtGui.QOpenGLTexture.setFixedSamplePositions": ('bool',),
- "PySide2.QtGui.QOpenGLTexture.setFormat": ('PySide2.QtGui.QOpenGLTexture.TextureFormat',),
- "PySide2.QtGui.QOpenGLTexture.setLayers": ('int',),
- "PySide2.QtGui.QOpenGLTexture.setLevelOfDetailRange": ('float', 'float'),
- "PySide2.QtGui.QOpenGLTexture.setLevelofDetailBias": ('float',),
- "PySide2.QtGui.QOpenGLTexture.setMagnificationFilter": ('PySide2.QtGui.QOpenGLTexture.Filter',),
- "PySide2.QtGui.QOpenGLTexture.setMaximumAnisotropy": ('float',),
- "PySide2.QtGui.QOpenGLTexture.setMaximumLevelOfDetail": ('float',),
- "PySide2.QtGui.QOpenGLTexture.setMinMagFilters": ('PySide2.QtGui.QOpenGLTexture.Filter', 'PySide2.QtGui.QOpenGLTexture.Filter'),
- "PySide2.QtGui.QOpenGLTexture.setMinificationFilter": ('PySide2.QtGui.QOpenGLTexture.Filter',),
- "PySide2.QtGui.QOpenGLTexture.setMinimumLevelOfDetail": ('float',),
- "PySide2.QtGui.QOpenGLTexture.setMipBaseLevel": ('int',),
- "PySide2.QtGui.QOpenGLTexture.setMipLevelRange": ('int', 'int'),
- "PySide2.QtGui.QOpenGLTexture.setMipLevels": ('int',),
- "PySide2.QtGui.QOpenGLTexture.setMipMaxLevel": ('int',),
- "PySide2.QtGui.QOpenGLTexture.setSamples": ('int',),
- "PySide2.QtGui.QOpenGLTexture.setSize": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLTexture.setSwizzleMask": [('PySide2.QtGui.QOpenGLTexture.SwizzleComponent', 'PySide2.QtGui.QOpenGLTexture.SwizzleValue'), ('PySide2.QtGui.QOpenGLTexture.SwizzleValue', 'PySide2.QtGui.QOpenGLTexture.SwizzleValue', 'PySide2.QtGui.QOpenGLTexture.SwizzleValue', 'PySide2.QtGui.QOpenGLTexture.SwizzleValue')],
- "PySide2.QtGui.QOpenGLTexture.setWrapMode": [('PySide2.QtGui.QOpenGLTexture.CoordinateDirection', 'PySide2.QtGui.QOpenGLTexture.WrapMode'), ('PySide2.QtGui.QOpenGLTexture.WrapMode',)],
- "PySide2.QtGui.QOpenGLTexture.swizzleMask": ('PySide2.QtGui.QOpenGLTexture.SwizzleComponent',),
- "PySide2.QtGui.QOpenGLTexture.target": (),
- "PySide2.QtGui.QOpenGLTexture.textureId": (),
- "PySide2.QtGui.QOpenGLTexture.width": (),
- "PySide2.QtGui.QOpenGLTexture.wrapMode": ('PySide2.QtGui.QOpenGLTexture.CoordinateDirection',),
-# class PySide2.QtGui.QOpenGLTextureBlitter:
-# class PySide2.QtGui.QOpenGLTextureBlitter.Origin:
- "PySide2.QtGui.QOpenGLTextureBlitter.__init__": (),
- "PySide2.QtGui.QOpenGLTextureBlitter.bind": ('int',),
- "PySide2.QtGui.QOpenGLTextureBlitter.blit": [('int', 'PySide2.QtGui.QMatrix4x4', 'PySide2.QtGui.QMatrix3x3'), ('int', 'PySide2.QtGui.QMatrix4x4', 'PySide2.QtGui.QOpenGLTextureBlitter.Origin')],
- "PySide2.QtGui.QOpenGLTextureBlitter.create": (),
- "PySide2.QtGui.QOpenGLTextureBlitter.destroy": (),
- "PySide2.QtGui.QOpenGLTextureBlitter.isCreated": (),
- "PySide2.QtGui.QOpenGLTextureBlitter.release": (),
- "PySide2.QtGui.QOpenGLTextureBlitter.setOpacity": ('float',),
- "PySide2.QtGui.QOpenGLTextureBlitter.setRedBlueSwizzle": ('bool',),
- "PySide2.QtGui.QOpenGLTextureBlitter.sourceTransform": ('PySide2.QtCore.QRectF', 'PySide2.QtCore.QSize', 'PySide2.QtGui.QOpenGLTextureBlitter.Origin'),
- "PySide2.QtGui.QOpenGLTextureBlitter.supportsExternalOESTarget": (),
- "PySide2.QtGui.QOpenGLTextureBlitter.targetTransform": ('PySide2.QtCore.QRectF', 'PySide2.QtCore.QRect'),
-# class PySide2.QtGui.QOpenGLTimeMonitor:
- "PySide2.QtGui.QOpenGLTimeMonitor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QOpenGLTimeMonitor.create": (),
- "PySide2.QtGui.QOpenGLTimeMonitor.destroy": (),
- "PySide2.QtGui.QOpenGLTimeMonitor.isCreated": (),
- "PySide2.QtGui.QOpenGLTimeMonitor.isResultAvailable": (),
- "PySide2.QtGui.QOpenGLTimeMonitor.objectIds": (),
- "PySide2.QtGui.QOpenGLTimeMonitor.recordSample": (),
- "PySide2.QtGui.QOpenGLTimeMonitor.reset": (),
- "PySide2.QtGui.QOpenGLTimeMonitor.sampleCount": (),
- "PySide2.QtGui.QOpenGLTimeMonitor.setSampleCount": ('int',),
- "PySide2.QtGui.QOpenGLTimeMonitor.waitForIntervals": (),
- "PySide2.QtGui.QOpenGLTimeMonitor.waitForSamples": (),
-# class PySide2.QtGui.QOpenGLTimerQuery:
- "PySide2.QtGui.QOpenGLTimerQuery.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QOpenGLTimerQuery.begin": (),
- "PySide2.QtGui.QOpenGLTimerQuery.create": (),
- "PySide2.QtGui.QOpenGLTimerQuery.destroy": (),
- "PySide2.QtGui.QOpenGLTimerQuery.end": (),
- "PySide2.QtGui.QOpenGLTimerQuery.isCreated": (),
- "PySide2.QtGui.QOpenGLTimerQuery.isResultAvailable": (),
- "PySide2.QtGui.QOpenGLTimerQuery.objectId": (),
- "PySide2.QtGui.QOpenGLTimerQuery.recordTimestamp": (),
- "PySide2.QtGui.QOpenGLTimerQuery.waitForResult": (),
- "PySide2.QtGui.QOpenGLTimerQuery.waitForTimestamp": (),
-# class PySide2.QtGui.QOpenGLVersionProfile:
- "PySide2.QtGui.QOpenGLVersionProfile.__init__": [(), ('PySide2.QtGui.QOpenGLVersionProfile',), ('PySide2.QtGui.QSurfaceFormat',)],
- "PySide2.QtGui.QOpenGLVersionProfile.__copy__": (),
- "PySide2.QtGui.QOpenGLVersionProfile.hasProfiles": (),
- "PySide2.QtGui.QOpenGLVersionProfile.isLegacyVersion": (),
- "PySide2.QtGui.QOpenGLVersionProfile.isValid": (),
- "PySide2.QtGui.QOpenGLVersionProfile.profile": (),
- "PySide2.QtGui.QOpenGLVersionProfile.setProfile": ('PySide2.QtGui.QSurfaceFormat.OpenGLContextProfile',),
- "PySide2.QtGui.QOpenGLVersionProfile.setVersion": ('int', 'int'),
- "PySide2.QtGui.QOpenGLVersionProfile.version": (),
-# class PySide2.QtGui.QOpenGLVertexArrayObject:
-# class PySide2.QtGui.QOpenGLVertexArrayObject.Binder:
- "PySide2.QtGui.QOpenGLVertexArrayObject.Binder.__init__": ('PySide2.QtGui.QOpenGLVertexArrayObject',),
- "PySide2.QtGui.QOpenGLVertexArrayObject.Binder.rebind": (),
- "PySide2.QtGui.QOpenGLVertexArrayObject.Binder.release": (),
- "PySide2.QtGui.QOpenGLVertexArrayObject.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QOpenGLVertexArrayObject.bind": (),
- "PySide2.QtGui.QOpenGLVertexArrayObject.create": (),
- "PySide2.QtGui.QOpenGLVertexArrayObject.destroy": (),
- "PySide2.QtGui.QOpenGLVertexArrayObject.isCreated": (),
- "PySide2.QtGui.QOpenGLVertexArrayObject.objectId": (),
- "PySide2.QtGui.QOpenGLVertexArrayObject.release": (),
-# class PySide2.QtGui.QOpenGLWindow:
-# class PySide2.QtGui.QOpenGLWindow.UpdateBehavior:
- "PySide2.QtGui.QOpenGLWindow.__init__": [('PySide2.QtGui.QOpenGLContext', 'PySide2.QtGui.QOpenGLWindow.UpdateBehavior', 'PySide2.QtGui.QWindow'), ('PySide2.QtGui.QOpenGLWindow.UpdateBehavior', 'PySide2.QtGui.QWindow')],
- "PySide2.QtGui.QOpenGLWindow.context": (),
- "PySide2.QtGui.QOpenGLWindow.defaultFramebufferObject": (),
- "PySide2.QtGui.QOpenGLWindow.doneCurrent": (),
- "PySide2.QtGui.QOpenGLWindow.grabFramebuffer": (),
- "PySide2.QtGui.QOpenGLWindow.initializeGL": (),
- "PySide2.QtGui.QOpenGLWindow.isValid": (),
- "PySide2.QtGui.QOpenGLWindow.makeCurrent": (),
- "PySide2.QtGui.QOpenGLWindow.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtGui.QOpenGLWindow.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtGui.QOpenGLWindow.paintGL": (),
- "PySide2.QtGui.QOpenGLWindow.paintOverGL": (),
- "PySide2.QtGui.QOpenGLWindow.paintUnderGL": (),
- "PySide2.QtGui.QOpenGLWindow.redirected": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QOpenGLWindow.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtGui.QOpenGLWindow.resizeGL": ('int', 'int'),
- "PySide2.QtGui.QOpenGLWindow.shareContext": (),
- "PySide2.QtGui.QOpenGLWindow.updateBehavior": (),
-# class PySide2.QtGui.QPageLayout:
-# class PySide2.QtGui.QPageLayout.Mode:
-# class PySide2.QtGui.QPageLayout.Orientation:
-# class PySide2.QtGui.QPageLayout.Unit:
- "PySide2.QtGui.QPageLayout.__init__": [(), ('PySide2.QtGui.QPageLayout',), ('PySide2.QtGui.QPageSize', 'PySide2.QtGui.QPageLayout.Orientation', 'PySide2.QtCore.QMarginsF', 'PySide2.QtGui.QPageLayout.Unit', 'PySide2.QtCore.QMarginsF')],
- "PySide2.QtGui.QPageLayout.__copy__": (),
- "PySide2.QtGui.QPageLayout.fullRect": [(), ('PySide2.QtGui.QPageLayout.Unit',)],
- "PySide2.QtGui.QPageLayout.fullRectPixels": ('int',),
- "PySide2.QtGui.QPageLayout.fullRectPoints": (),
- "PySide2.QtGui.QPageLayout.isEquivalentTo": ('PySide2.QtGui.QPageLayout',),
- "PySide2.QtGui.QPageLayout.isValid": (),
- "PySide2.QtGui.QPageLayout.margins": [(), ('PySide2.QtGui.QPageLayout.Unit',)],
- "PySide2.QtGui.QPageLayout.marginsPixels": ('int',),
- "PySide2.QtGui.QPageLayout.marginsPoints": (),
- "PySide2.QtGui.QPageLayout.maximumMargins": (),
- "PySide2.QtGui.QPageLayout.minimumMargins": (),
- "PySide2.QtGui.QPageLayout.mode": (),
- "PySide2.QtGui.QPageLayout.orientation": (),
- "PySide2.QtGui.QPageLayout.pageSize": (),
- "PySide2.QtGui.QPageLayout.paintRect": [(), ('PySide2.QtGui.QPageLayout.Unit',)],
- "PySide2.QtGui.QPageLayout.paintRectPixels": ('int',),
- "PySide2.QtGui.QPageLayout.paintRectPoints": (),
- "PySide2.QtGui.QPageLayout.setBottomMargin": ('float',),
- "PySide2.QtGui.QPageLayout.setLeftMargin": ('float',),
- "PySide2.QtGui.QPageLayout.setMargins": ('PySide2.QtCore.QMarginsF',),
- "PySide2.QtGui.QPageLayout.setMinimumMargins": ('PySide2.QtCore.QMarginsF',),
- "PySide2.QtGui.QPageLayout.setMode": ('PySide2.QtGui.QPageLayout.Mode',),
- "PySide2.QtGui.QPageLayout.setOrientation": ('PySide2.QtGui.QPageLayout.Orientation',),
- "PySide2.QtGui.QPageLayout.setPageSize": ('PySide2.QtGui.QPageSize', 'PySide2.QtCore.QMarginsF'),
- "PySide2.QtGui.QPageLayout.setRightMargin": ('float',),
- "PySide2.QtGui.QPageLayout.setTopMargin": ('float',),
- "PySide2.QtGui.QPageLayout.setUnits": ('PySide2.QtGui.QPageLayout.Unit',),
- "PySide2.QtGui.QPageLayout.swap": ('PySide2.QtGui.QPageLayout',),
- "PySide2.QtGui.QPageLayout.units": (),
-# class PySide2.QtGui.QPageSize:
-# class PySide2.QtGui.QPageSize.PageSizeId:
-# class PySide2.QtGui.QPageSize.SizeMatchPolicy:
-# class PySide2.QtGui.QPageSize.Unit:
- "PySide2.QtGui.QPageSize.__init__": [(), ('PySide2.QtCore.QSize', 'str', 'PySide2.QtGui.QPageSize.SizeMatchPolicy'), ('PySide2.QtCore.QSizeF', 'PySide2.QtGui.QPageSize.Unit', 'str', 'PySide2.QtGui.QPageSize.SizeMatchPolicy'), ('PySide2.QtGui.QPageSize',), ('PySide2.QtGui.QPageSize.PageSizeId',)],
- "PySide2.QtGui.QPageSize.__copy__": (),
- "PySide2.QtGui.QPageSize.definitionSize": [(), ('PySide2.QtGui.QPageSize.PageSizeId',)],
- "PySide2.QtGui.QPageSize.definitionUnits": [(), ('PySide2.QtGui.QPageSize.PageSizeId',)],
- "PySide2.QtGui.QPageSize.id": [(), ('PySide2.QtCore.QSize', 'PySide2.QtGui.QPageSize.SizeMatchPolicy'), ('PySide2.QtCore.QSizeF', 'PySide2.QtGui.QPageSize.Unit', 'PySide2.QtGui.QPageSize.SizeMatchPolicy'), ('int',)],
- "PySide2.QtGui.QPageSize.isEquivalentTo": ('PySide2.QtGui.QPageSize',),
- "PySide2.QtGui.QPageSize.isValid": (),
- "PySide2.QtGui.QPageSize.key": [(), ('PySide2.QtGui.QPageSize.PageSizeId',)],
- "PySide2.QtGui.QPageSize.name": [(), ('PySide2.QtGui.QPageSize.PageSizeId',)],
- "PySide2.QtGui.QPageSize.rect": ('PySide2.QtGui.QPageSize.Unit',),
- "PySide2.QtGui.QPageSize.rectPixels": ('int',),
- "PySide2.QtGui.QPageSize.rectPoints": (),
- "PySide2.QtGui.QPageSize.size": [('PySide2.QtGui.QPageSize.PageSizeId', 'PySide2.QtGui.QPageSize.Unit'), ('PySide2.QtGui.QPageSize.Unit',)],
- "PySide2.QtGui.QPageSize.sizePixels": [('PySide2.QtGui.QPageSize.PageSizeId', 'int'), ('int',)],
- "PySide2.QtGui.QPageSize.sizePoints": [(), ('PySide2.QtGui.QPageSize.PageSizeId',)],
- "PySide2.QtGui.QPageSize.swap": ('PySide2.QtGui.QPageSize',),
- "PySide2.QtGui.QPageSize.windowsId": [(), ('PySide2.QtGui.QPageSize.PageSizeId',)],
-# class PySide2.QtGui.QPagedPaintDevice:
-# class PySide2.QtGui.QPagedPaintDevice.Margins:
- "PySide2.QtGui.QPagedPaintDevice.Margins.__init__": [(), ('PySide2.QtGui.QPagedPaintDevice.Margins',)],
- "PySide2.QtGui.QPagedPaintDevice.Margins.__copy__": (),
-# class PySide2.QtGui.QPagedPaintDevice.PageSize:
-# class PySide2.QtGui.QPagedPaintDevice.PdfVersion:
- "PySide2.QtGui.QPagedPaintDevice.__init__": (),
- "PySide2.QtGui.QPagedPaintDevice.devicePageLayout": (),
- "PySide2.QtGui.QPagedPaintDevice.margins": (),
- "PySide2.QtGui.QPagedPaintDevice.newPage": (),
- "PySide2.QtGui.QPagedPaintDevice.pageLayout": (),
- "PySide2.QtGui.QPagedPaintDevice.pageSize": (),
- "PySide2.QtGui.QPagedPaintDevice.pageSizeMM": (),
- "PySide2.QtGui.QPagedPaintDevice.setMargins": ('PySide2.QtGui.QPagedPaintDevice.Margins',),
- "PySide2.QtGui.QPagedPaintDevice.setPageLayout": ('PySide2.QtGui.QPageLayout',),
- "PySide2.QtGui.QPagedPaintDevice.setPageMargins": [('PySide2.QtCore.QMarginsF',), ('PySide2.QtCore.QMarginsF', 'PySide2.QtGui.QPageLayout.Unit')],
- "PySide2.QtGui.QPagedPaintDevice.setPageOrientation": ('PySide2.QtGui.QPageLayout.Orientation',),
- "PySide2.QtGui.QPagedPaintDevice.setPageSize": [('PySide2.QtGui.QPageSize',), ('PySide2.QtGui.QPagedPaintDevice.PageSize',)],
- "PySide2.QtGui.QPagedPaintDevice.setPageSizeMM": ('PySide2.QtCore.QSizeF',),
-# class PySide2.QtGui.QPaintDevice:
-# class PySide2.QtGui.QPaintDevice.PaintDeviceMetric:
- "PySide2.QtGui.QPaintDevice.__init__": (),
- "PySide2.QtGui.QPaintDevice.colorCount": (),
- "PySide2.QtGui.QPaintDevice.depth": (),
- "PySide2.QtGui.QPaintDevice.devType": (),
- "PySide2.QtGui.QPaintDevice.devicePixelRatio": (),
- "PySide2.QtGui.QPaintDevice.devicePixelRatioF": (),
- "PySide2.QtGui.QPaintDevice.devicePixelRatioFScale": (),
- "PySide2.QtGui.QPaintDevice.height": (),
- "PySide2.QtGui.QPaintDevice.heightMM": (),
- "PySide2.QtGui.QPaintDevice.initPainter": ('PySide2.QtGui.QPainter',),
- "PySide2.QtGui.QPaintDevice.logicalDpiX": (),
- "PySide2.QtGui.QPaintDevice.logicalDpiY": (),
- "PySide2.QtGui.QPaintDevice.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtGui.QPaintDevice.paintEngine": (),
- "PySide2.QtGui.QPaintDevice.paintingActive": (),
- "PySide2.QtGui.QPaintDevice.physicalDpiX": (),
- "PySide2.QtGui.QPaintDevice.physicalDpiY": (),
- "PySide2.QtGui.QPaintDevice.redirected": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QPaintDevice.sharedPainter": (),
- "PySide2.QtGui.QPaintDevice.width": (),
- "PySide2.QtGui.QPaintDevice.widthMM": (),
-# class PySide2.QtGui.QPaintDeviceWindow:
- "PySide2.QtGui.QPaintDeviceWindow.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtGui.QPaintDeviceWindow.exposeEvent": ('PySide2.QtGui.QExposeEvent',),
- "PySide2.QtGui.QPaintDeviceWindow.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtGui.QPaintDeviceWindow.paintEngine": (),
- "PySide2.QtGui.QPaintDeviceWindow.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtGui.QPaintDeviceWindow.update": [(), ('PySide2.QtCore.QRect',), ('PySide2.QtGui.QRegion',)],
-# class PySide2.QtGui.QPaintEngine:
-# class PySide2.QtGui.QPaintEngine.DirtyFlag:
-# class PySide2.QtGui.QPaintEngine.DirtyFlags:
-# class PySide2.QtGui.QPaintEngine.PaintEngineFeature:
-# class PySide2.QtGui.QPaintEngine.PaintEngineFeatures:
-# class PySide2.QtGui.QPaintEngine.PolygonDrawMode:
-# class PySide2.QtGui.QPaintEngine.Type:
- "PySide2.QtGui.QPaintEngine.__init__": ('PySide2.QtGui.QPaintEngine.PaintEngineFeatures',),
- "PySide2.QtGui.QPaintEngine.begin": ('PySide2.QtGui.QPaintDevice',),
- "PySide2.QtGui.QPaintEngine.clearDirty": ('PySide2.QtGui.QPaintEngine.DirtyFlags',),
- "PySide2.QtGui.QPaintEngine.coordinateOffset": (),
- "PySide2.QtGui.QPaintEngine.drawEllipse": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',)],
- "PySide2.QtGui.QPaintEngine.drawImage": ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QImage', 'PySide2.QtCore.QRectF', 'PySide2.QtCore.Qt.ImageConversionFlags'),
- "PySide2.QtGui.QPaintEngine.drawLines": [('PySide2.QtCore.QLine', 'int'), ('PySide2.QtCore.QLineF', 'int')],
- "PySide2.QtGui.QPaintEngine.drawPath": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPaintEngine.drawPixmap": ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QPixmap', 'PySide2.QtCore.QRectF'),
- "PySide2.QtGui.QPaintEngine.drawPoints": [('PySide2.QtCore.QPoint', 'int'), ('PySide2.QtCore.QPointF', 'int')],
- "PySide2.QtGui.QPaintEngine.drawPolygon": [('PySide2.QtCore.QPoint', 'int', 'PySide2.QtGui.QPaintEngine.PolygonDrawMode'), ('PySide2.QtCore.QPointF', 'int', 'PySide2.QtGui.QPaintEngine.PolygonDrawMode')],
- "PySide2.QtGui.QPaintEngine.drawRects": [('PySide2.QtCore.QRect', 'int'), ('PySide2.QtCore.QRectF', 'int')],
- "PySide2.QtGui.QPaintEngine.drawTextItem": ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QTextItem'),
- "PySide2.QtGui.QPaintEngine.drawTiledPixmap": ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QPixmap', 'PySide2.QtCore.QPointF'),
- "PySide2.QtGui.QPaintEngine.end": (),
- "PySide2.QtGui.QPaintEngine.hasFeature": ('PySide2.QtGui.QPaintEngine.PaintEngineFeatures',),
- "PySide2.QtGui.QPaintEngine.isActive": (),
- "PySide2.QtGui.QPaintEngine.isExtended": (),
- "PySide2.QtGui.QPaintEngine.paintDevice": (),
- "PySide2.QtGui.QPaintEngine.painter": (),
- "PySide2.QtGui.QPaintEngine.setActive": ('bool',),
- "PySide2.QtGui.QPaintEngine.setDirty": ('PySide2.QtGui.QPaintEngine.DirtyFlags',),
- "PySide2.QtGui.QPaintEngine.setSystemClip": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QPaintEngine.setSystemRect": ('PySide2.QtCore.QRect',),
- "PySide2.QtGui.QPaintEngine.syncState": (),
- "PySide2.QtGui.QPaintEngine.systemClip": (),
- "PySide2.QtGui.QPaintEngine.systemRect": (),
- "PySide2.QtGui.QPaintEngine.testDirty": ('PySide2.QtGui.QPaintEngine.DirtyFlags',),
- "PySide2.QtGui.QPaintEngine.type": (),
- "PySide2.QtGui.QPaintEngine.updateState": ('PySide2.QtGui.QPaintEngineState',),
-# class PySide2.QtGui.QPaintEngineState:
- "PySide2.QtGui.QPaintEngineState.__init__": (),
- "PySide2.QtGui.QPaintEngineState.backgroundBrush": (),
- "PySide2.QtGui.QPaintEngineState.backgroundMode": (),
- "PySide2.QtGui.QPaintEngineState.brush": (),
- "PySide2.QtGui.QPaintEngineState.brushNeedsResolving": (),
- "PySide2.QtGui.QPaintEngineState.brushOrigin": (),
- "PySide2.QtGui.QPaintEngineState.clipOperation": (),
- "PySide2.QtGui.QPaintEngineState.clipPath": (),
- "PySide2.QtGui.QPaintEngineState.clipRegion": (),
- "PySide2.QtGui.QPaintEngineState.compositionMode": (),
- "PySide2.QtGui.QPaintEngineState.font": (),
- "PySide2.QtGui.QPaintEngineState.isClipEnabled": (),
- "PySide2.QtGui.QPaintEngineState.matrix": (),
- "PySide2.QtGui.QPaintEngineState.opacity": (),
- "PySide2.QtGui.QPaintEngineState.painter": (),
- "PySide2.QtGui.QPaintEngineState.pen": (),
- "PySide2.QtGui.QPaintEngineState.penNeedsResolving": (),
- "PySide2.QtGui.QPaintEngineState.renderHints": (),
- "PySide2.QtGui.QPaintEngineState.state": (),
- "PySide2.QtGui.QPaintEngineState.transform": (),
-# class PySide2.QtGui.QPaintEvent:
- "PySide2.QtGui.QPaintEvent.__init__": [('PySide2.QtCore.QRect',), ('PySide2.QtGui.QRegion',)],
- "PySide2.QtGui.QPaintEvent.rect": (),
- "PySide2.QtGui.QPaintEvent.region": (),
-# class PySide2.QtGui.QPainter:
-# class PySide2.QtGui.QPainter.CompositionMode:
-# class PySide2.QtGui.QPainter.PixmapFragment:
- "PySide2.QtGui.QPainter.PixmapFragment.__init__": [(), ('PySide2.QtGui.QPainter.PixmapFragment',)],
- "PySide2.QtGui.QPainter.PixmapFragment.__copy__": (),
- "PySide2.QtGui.QPainter.PixmapFragment.create": ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QRectF', 'float', 'float', 'float', 'float'),
-# class PySide2.QtGui.QPainter.PixmapFragmentHint:
-# class PySide2.QtGui.QPainter.PixmapFragmentHints:
-# class PySide2.QtGui.QPainter.RenderHint:
-# class PySide2.QtGui.QPainter.RenderHints:
- "PySide2.QtGui.QPainter.__init__": [(), ('PySide2.QtGui.QPaintDevice',)],
- "PySide2.QtGui.QPainter.background": (),
- "PySide2.QtGui.QPainter.backgroundMode": (),
- "PySide2.QtGui.QPainter.begin": ('PySide2.QtGui.QPaintDevice',),
- "PySide2.QtGui.QPainter.beginNativePainting": (),
- "PySide2.QtGui.QPainter.boundingRect": [('PySide2.QtCore.QRect', 'int', 'str'), ('PySide2.QtCore.QRectF', 'int', 'str'), ('PySide2.QtCore.QRectF', 'str', 'PySide2.QtGui.QTextOption'), ('int', 'int', 'int', 'int', 'int', 'str')],
- "PySide2.QtGui.QPainter.brush": (),
- "PySide2.QtGui.QPainter.brushOrigin": (),
- "PySide2.QtGui.QPainter.clipBoundingRect": (),
- "PySide2.QtGui.QPainter.clipPath": (),
- "PySide2.QtGui.QPainter.clipRegion": (),
- "PySide2.QtGui.QPainter.combinedMatrix": (),
- "PySide2.QtGui.QPainter.combinedTransform": (),
- "PySide2.QtGui.QPainter.compositionMode": (),
- "PySide2.QtGui.QPainter.device": (),
- "PySide2.QtGui.QPainter.deviceMatrix": (),
- "PySide2.QtGui.QPainter.deviceTransform": (),
- "PySide2.QtGui.QPainter.drawArc": [('PySide2.QtCore.QRect', 'int', 'int'), ('PySide2.QtCore.QRectF', 'int', 'int'), ('int', 'int', 'int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.drawChord": [('PySide2.QtCore.QRect', 'int', 'int'), ('PySide2.QtCore.QRectF', 'int', 'int'), ('int', 'int', 'int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.drawConvexPolygon": [('PySide2.QtGui.QPolygon',), ('PySide2.QtGui.QPolygonF',), ('typing.List',)],
- "PySide2.QtGui.QPainter.drawEllipse": [('PySide2.QtCore.QPoint', 'int', 'int'), ('PySide2.QtCore.QPointF', 'float', 'float'), ('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.drawImage": [('PySide2.QtCore.QPoint', 'PySide2.QtGui.QImage'), ('PySide2.QtCore.QPoint', 'PySide2.QtGui.QImage', 'PySide2.QtCore.QRect', 'PySide2.QtCore.Qt.ImageConversionFlags'), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QImage'), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QImage', 'PySide2.QtCore.QRectF', 'PySide2.QtCore.Qt.ImageConversionFlags'), ('PySide2.QtCore.QRect', 'PySide2.QtGui.QImage'), ('PySide2.QtCore.QRect', 'PySide2.QtGui.QImage', 'PySide2.QtCore.QRect', 'PySide2.QtCore.Qt.ImageConversionFlags'), ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QImage'), ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QImage', 'PySide2.QtCore.QRectF', 'PySide2.QtCore.Qt.ImageConversionFlags'), ('int', 'int', 'PySide2.QtGui.QImage', 'int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.ImageConversionFlags')],
- "PySide2.QtGui.QPainter.drawLine": [('PySide2.QtCore.QLine',), ('PySide2.QtCore.QLineF',), ('PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint'), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.drawLines": ('typing.List',),
- "PySide2.QtGui.QPainter.drawPath": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainter.drawPicture": [('PySide2.QtCore.QPoint', 'PySide2.QtGui.QPicture'), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QPicture'), ('int', 'int', 'PySide2.QtGui.QPicture')],
- "PySide2.QtGui.QPainter.drawPie": [('PySide2.QtCore.QRect', 'int', 'int'), ('PySide2.QtCore.QRectF', 'int', 'int'), ('int', 'int', 'int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.drawPixmap": [('PySide2.QtCore.QPoint', 'PySide2.QtGui.QPixmap'), ('PySide2.QtCore.QPoint', 'PySide2.QtGui.QPixmap', 'PySide2.QtCore.QRect'), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QPixmap'), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QPixmap', 'PySide2.QtCore.QRectF'), ('PySide2.QtCore.QRect', 'PySide2.QtGui.QPixmap'), ('PySide2.QtCore.QRect', 'PySide2.QtGui.QPixmap', 'PySide2.QtCore.QRect'), ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QPixmap', 'PySide2.QtCore.QRectF'), ('int', 'int', 'PySide2.QtGui.QPixmap'), ('int', 'int', 'PySide2.QtGui.QPixmap', 'int', 'int', 'int', 'int'), ('int', 'int', 'int', 'int', 'PySide2.QtGui.QPixmap'), ('int', 'int', 'int', 'int', 'PySide2.QtGui.QPixmap', 'int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.drawPixmapFragments": ('PySide2.QtGui.QPainter.PixmapFragment', 'int', 'PySide2.QtGui.QPixmap', 'PySide2.QtGui.QPainter.PixmapFragmentHints'),
- "PySide2.QtGui.QPainter.drawPoint": [('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('int', 'int')],
- "PySide2.QtGui.QPainter.drawPoints": [('PySide2.QtGui.QPolygon',), ('PySide2.QtGui.QPolygonF',), ('typing.List',)],
- "PySide2.QtGui.QPainter.drawPolygon": [('PySide2.QtGui.QPolygon', 'PySide2.QtCore.Qt.FillRule'), ('PySide2.QtGui.QPolygonF', 'PySide2.QtCore.Qt.FillRule'), ('typing.List', 'PySide2.QtCore.Qt.FillRule')],
- "PySide2.QtGui.QPainter.drawPolyline": [('PySide2.QtGui.QPolygon',), ('PySide2.QtGui.QPolygonF',), ('typing.List',)],
- "PySide2.QtGui.QPainter.drawRect": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.drawRects": ('typing.List',),
- "PySide2.QtGui.QPainter.drawRoundRect": [('PySide2.QtCore.QRect', 'int', 'int'), ('PySide2.QtCore.QRectF', 'int', 'int'), ('int', 'int', 'int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.drawRoundedRect": [('PySide2.QtCore.QRect', 'float', 'float', 'PySide2.QtCore.Qt.SizeMode'), ('PySide2.QtCore.QRectF', 'float', 'float', 'PySide2.QtCore.Qt.SizeMode'), ('int', 'int', 'int', 'int', 'float', 'float', 'PySide2.QtCore.Qt.SizeMode')],
- "PySide2.QtGui.QPainter.drawStaticText": [('PySide2.QtCore.QPoint', 'PySide2.QtGui.QStaticText'), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QStaticText'), ('int', 'int', 'PySide2.QtGui.QStaticText')],
- "PySide2.QtGui.QPainter.drawText": [('PySide2.QtCore.QPoint', 'str'), ('PySide2.QtCore.QPointF', 'str'), ('PySide2.QtCore.QRect', 'int', 'str', 'PySide2.QtCore.QRect'), ('PySide2.QtCore.QRectF', 'int', 'str', 'PySide2.QtCore.QRectF'), ('PySide2.QtCore.QRectF', 'str', 'PySide2.QtGui.QTextOption'), ('int', 'int', 'int', 'int', 'int', 'str', 'PySide2.QtCore.QRect'), ('int', 'int', 'str')],
- "PySide2.QtGui.QPainter.drawTextItem": [('PySide2.QtCore.QPoint', 'PySide2.QtGui.QTextItem'), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QTextItem'), ('int', 'int', 'PySide2.QtGui.QTextItem')],
- "PySide2.QtGui.QPainter.drawTiledPixmap": [('PySide2.QtCore.QRect', 'PySide2.QtGui.QPixmap', 'PySide2.QtCore.QPoint'), ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QPixmap', 'PySide2.QtCore.QPointF'), ('int', 'int', 'int', 'int', 'PySide2.QtGui.QPixmap', 'int', 'int')],
- "PySide2.QtGui.QPainter.end": (),
- "PySide2.QtGui.QPainter.endNativePainting": (),
- "PySide2.QtGui.QPainter.eraseRect": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.fillPath": ('PySide2.QtGui.QPainterPath', 'PySide2.QtGui.QBrush'),
- "PySide2.QtGui.QPainter.fillRect": [('PySide2.QtCore.QRect', 'PySide2.QtCore.Qt.BrushStyle'), ('PySide2.QtCore.QRect', 'PySide2.QtCore.Qt.GlobalColor'), ('PySide2.QtCore.QRect', 'PySide2.QtGui.QBrush'), ('PySide2.QtCore.QRect', 'PySide2.QtGui.QColor'), ('PySide2.QtCore.QRect', 'PySide2.QtGui.QGradient.Preset'), ('PySide2.QtCore.QRectF', 'PySide2.QtCore.Qt.BrushStyle'), ('PySide2.QtCore.QRectF', 'PySide2.QtCore.Qt.GlobalColor'), ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QBrush'), ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QColor'), ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QGradient.Preset'), ('int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.BrushStyle'), ('int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.GlobalColor'), ('int', 'int', 'int', 'int', 'PySide2.QtGui.QBrush'), ('int', 'int', 'int', 'int', 'PySide2.QtGui.QColor'), ('int', 'int', 'int', 'int', 'PySide2.QtGui.QGradient.Preset')],
- "PySide2.QtGui.QPainter.font": (),
- "PySide2.QtGui.QPainter.fontInfo": (),
- "PySide2.QtGui.QPainter.fontMetrics": (),
- "PySide2.QtGui.QPainter.hasClipping": (),
- "PySide2.QtGui.QPainter.initFrom": ('PySide2.QtGui.QPaintDevice',),
- "PySide2.QtGui.QPainter.isActive": (),
- "PySide2.QtGui.QPainter.layoutDirection": (),
- "PySide2.QtGui.QPainter.matrix": (),
- "PySide2.QtGui.QPainter.matrixEnabled": (),
- "PySide2.QtGui.QPainter.opacity": (),
- "PySide2.QtGui.QPainter.paintEngine": (),
- "PySide2.QtGui.QPainter.pen": (),
- "PySide2.QtGui.QPainter.redirected": ('PySide2.QtGui.QPaintDevice', 'PySide2.QtCore.QPoint'),
- "PySide2.QtGui.QPainter.renderHints": (),
- "PySide2.QtGui.QPainter.resetMatrix": (),
- "PySide2.QtGui.QPainter.resetTransform": (),
- "PySide2.QtGui.QPainter.restore": (),
- "PySide2.QtGui.QPainter.restoreRedirected": ('PySide2.QtGui.QPaintDevice',),
- "PySide2.QtGui.QPainter.rotate": ('float',),
- "PySide2.QtGui.QPainter.save": (),
- "PySide2.QtGui.QPainter.scale": ('float', 'float'),
- "PySide2.QtGui.QPainter.setBackground": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QPainter.setBackgroundMode": ('PySide2.QtCore.Qt.BGMode',),
- "PySide2.QtGui.QPainter.setBrush": [('PySide2.QtCore.Qt.BrushStyle',), ('PySide2.QtGui.QBrush',)],
- "PySide2.QtGui.QPainter.setBrushOrigin": [('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('int', 'int')],
- "PySide2.QtGui.QPainter.setClipPath": ('PySide2.QtGui.QPainterPath', 'PySide2.QtCore.Qt.ClipOperation'),
- "PySide2.QtGui.QPainter.setClipRect": [('PySide2.QtCore.QRect', 'PySide2.QtCore.Qt.ClipOperation'), ('PySide2.QtCore.QRectF', 'PySide2.QtCore.Qt.ClipOperation'), ('int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.ClipOperation')],
- "PySide2.QtGui.QPainter.setClipRegion": ('PySide2.QtGui.QRegion', 'PySide2.QtCore.Qt.ClipOperation'),
- "PySide2.QtGui.QPainter.setClipping": ('bool',),
- "PySide2.QtGui.QPainter.setCompositionMode": ('PySide2.QtGui.QPainter.CompositionMode',),
- "PySide2.QtGui.QPainter.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtGui.QPainter.setLayoutDirection": ('PySide2.QtCore.Qt.LayoutDirection',),
- "PySide2.QtGui.QPainter.setMatrix": ('PySide2.QtGui.QMatrix', 'bool'),
- "PySide2.QtGui.QPainter.setMatrixEnabled": ('bool',),
- "PySide2.QtGui.QPainter.setOpacity": ('float',),
- "PySide2.QtGui.QPainter.setPen": [('PySide2.QtCore.Qt.PenStyle',), ('PySide2.QtGui.QColor',), ('PySide2.QtGui.QPen',)],
- "PySide2.QtGui.QPainter.setRedirected": ('PySide2.QtGui.QPaintDevice', 'PySide2.QtGui.QPaintDevice', 'PySide2.QtCore.QPoint'),
- "PySide2.QtGui.QPainter.setRenderHint": ('PySide2.QtGui.QPainter.RenderHint', 'bool'),
- "PySide2.QtGui.QPainter.setRenderHints": ('PySide2.QtGui.QPainter.RenderHints', 'bool'),
- "PySide2.QtGui.QPainter.setTransform": ('PySide2.QtGui.QTransform', 'bool'),
- "PySide2.QtGui.QPainter.setViewTransformEnabled": ('bool',),
- "PySide2.QtGui.QPainter.setViewport": [('PySide2.QtCore.QRect',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.setWindow": [('PySide2.QtCore.QRect',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.setWorldMatrix": ('PySide2.QtGui.QMatrix', 'bool'),
- "PySide2.QtGui.QPainter.setWorldMatrixEnabled": ('bool',),
- "PySide2.QtGui.QPainter.setWorldTransform": ('PySide2.QtGui.QTransform', 'bool'),
- "PySide2.QtGui.QPainter.shear": ('float', 'float'),
- "PySide2.QtGui.QPainter.strokePath": ('PySide2.QtGui.QPainterPath', 'PySide2.QtGui.QPen'),
- "PySide2.QtGui.QPainter.testRenderHint": ('PySide2.QtGui.QPainter.RenderHint',),
- "PySide2.QtGui.QPainter.transform": (),
- "PySide2.QtGui.QPainter.translate": [('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QPainter.viewTransformEnabled": (),
- "PySide2.QtGui.QPainter.viewport": (),
- "PySide2.QtGui.QPainter.window": (),
- "PySide2.QtGui.QPainter.worldMatrix": (),
- "PySide2.QtGui.QPainter.worldMatrixEnabled": (),
- "PySide2.QtGui.QPainter.worldTransform": (),
-# class PySide2.QtGui.QPainterPath:
-# class PySide2.QtGui.QPainterPath.Element:
- "PySide2.QtGui.QPainterPath.Element.__init__": [(), ('PySide2.QtGui.QPainterPath.Element',)],
- "PySide2.QtGui.QPainterPath.Element.__copy__": (),
- "PySide2.QtGui.QPainterPath.Element.isCurveTo": (),
- "PySide2.QtGui.QPainterPath.Element.isLineTo": (),
- "PySide2.QtGui.QPainterPath.Element.isMoveTo": (),
-# class PySide2.QtGui.QPainterPath.ElementType:
- "PySide2.QtGui.QPainterPath.__init__": [(), ('PySide2.QtCore.QPointF',), ('PySide2.QtGui.QPainterPath',)],
- "PySide2.QtGui.QPainterPath.__add__": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.__and__": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.__copy__": (),
- "PySide2.QtGui.QPainterPath.__iadd__": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.__iand__": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.__ior__": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.__isub__": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPainterPath.__mul__": [('PySide2.QtGui.QMatrix',), ('PySide2.QtGui.QTransform',)],
- "PySide2.QtGui.QPainterPath.__or__": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPainterPath.__sub__": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.addEllipse": [('PySide2.QtCore.QPointF', 'float', 'float'), ('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtGui.QPainterPath.addPath": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.addPolygon": ('PySide2.QtGui.QPolygonF',),
- "PySide2.QtGui.QPainterPath.addRect": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtGui.QPainterPath.addRegion": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QPainterPath.addRoundRect": [('PySide2.QtCore.QRectF', 'int'), ('PySide2.QtCore.QRectF', 'int', 'int'), ('float', 'float', 'float', 'float', 'int'), ('float', 'float', 'float', 'float', 'int', 'int')],
- "PySide2.QtGui.QPainterPath.addRoundedRect": [('PySide2.QtCore.QRectF', 'float', 'float', 'PySide2.QtCore.Qt.SizeMode'), ('float', 'float', 'float', 'float', 'float', 'float', 'PySide2.QtCore.Qt.SizeMode')],
- "PySide2.QtGui.QPainterPath.addText": [('PySide2.QtCore.QPointF', 'PySide2.QtGui.QFont', 'str'), ('float', 'float', 'PySide2.QtGui.QFont', 'str')],
- "PySide2.QtGui.QPainterPath.angleAtPercent": ('float',),
- "PySide2.QtGui.QPainterPath.arcMoveTo": [('PySide2.QtCore.QRectF', 'float'), ('float', 'float', 'float', 'float', 'float')],
- "PySide2.QtGui.QPainterPath.arcTo": [('PySide2.QtCore.QRectF', 'float', 'float'), ('float', 'float', 'float', 'float', 'float', 'float')],
- "PySide2.QtGui.QPainterPath.boundingRect": (),
- "PySide2.QtGui.QPainterPath.capacity": (),
- "PySide2.QtGui.QPainterPath.clear": (),
- "PySide2.QtGui.QPainterPath.closeSubpath": (),
- "PySide2.QtGui.QPainterPath.connectPath": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.contains": [('PySide2.QtCore.QPointF',), ('PySide2.QtCore.QRectF',), ('PySide2.QtGui.QPainterPath',)],
- "PySide2.QtGui.QPainterPath.controlPointRect": (),
- "PySide2.QtGui.QPainterPath.cubicTo": [('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'), ('float', 'float', 'float', 'float', 'float', 'float')],
- "PySide2.QtGui.QPainterPath.currentPosition": (),
- "PySide2.QtGui.QPainterPath.elementAt": ('int',),
- "PySide2.QtGui.QPainterPath.elementCount": (),
- "PySide2.QtGui.QPainterPath.fillRule": (),
- "PySide2.QtGui.QPainterPath.intersected": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.intersects": [('PySide2.QtCore.QRectF',), ('PySide2.QtGui.QPainterPath',)],
- "PySide2.QtGui.QPainterPath.isEmpty": (),
- "PySide2.QtGui.QPainterPath.length": (),
- "PySide2.QtGui.QPainterPath.lineTo": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QPainterPath.moveTo": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QPainterPath.percentAtLength": ('float',),
- "PySide2.QtGui.QPainterPath.pointAtPercent": ('float',),
- "PySide2.QtGui.QPainterPath.quadTo": [('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'), ('float', 'float', 'float', 'float')],
- "PySide2.QtGui.QPainterPath.reserve": ('int',),
- "PySide2.QtGui.QPainterPath.setElementPositionAt": ('int', 'float', 'float'),
- "PySide2.QtGui.QPainterPath.setFillRule": ('PySide2.QtCore.Qt.FillRule',),
- "PySide2.QtGui.QPainterPath.simplified": (),
- "PySide2.QtGui.QPainterPath.slopeAtPercent": ('float',),
- "PySide2.QtGui.QPainterPath.subtracted": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.subtractedInverted": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.swap": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.toFillPolygon": [('PySide2.QtGui.QMatrix',), ('PySide2.QtGui.QTransform',)],
- "PySide2.QtGui.QPainterPath.toFillPolygons": [('PySide2.QtGui.QMatrix',), ('PySide2.QtGui.QTransform',)],
- "PySide2.QtGui.QPainterPath.toReversed": (),
- "PySide2.QtGui.QPainterPath.toSubpathPolygons": [('PySide2.QtGui.QMatrix',), ('PySide2.QtGui.QTransform',)],
- "PySide2.QtGui.QPainterPath.translate": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QPainterPath.translated": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QPainterPath.united": ('PySide2.QtGui.QPainterPath',),
-# class PySide2.QtGui.QPainterPathStroker:
- "PySide2.QtGui.QPainterPathStroker.__init__": [(), ('PySide2.QtGui.QPen',)],
- "PySide2.QtGui.QPainterPathStroker.capStyle": (),
- "PySide2.QtGui.QPainterPathStroker.createStroke": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPathStroker.curveThreshold": (),
- "PySide2.QtGui.QPainterPathStroker.dashOffset": (),
- "PySide2.QtGui.QPainterPathStroker.dashPattern": (),
- "PySide2.QtGui.QPainterPathStroker.joinStyle": (),
- "PySide2.QtGui.QPainterPathStroker.miterLimit": (),
- "PySide2.QtGui.QPainterPathStroker.setCapStyle": ('PySide2.QtCore.Qt.PenCapStyle',),
- "PySide2.QtGui.QPainterPathStroker.setCurveThreshold": ('float',),
- "PySide2.QtGui.QPainterPathStroker.setDashOffset": ('float',),
- "PySide2.QtGui.QPainterPathStroker.setDashPattern": [('PySide2.QtCore.Qt.PenStyle',), ('typing.List',)],
- "PySide2.QtGui.QPainterPathStroker.setJoinStyle": ('PySide2.QtCore.Qt.PenJoinStyle',),
- "PySide2.QtGui.QPainterPathStroker.setMiterLimit": ('float',),
- "PySide2.QtGui.QPainterPathStroker.setWidth": ('float',),
- "PySide2.QtGui.QPainterPathStroker.width": (),
-# class PySide2.QtGui.QPalette:
-# class PySide2.QtGui.QPalette.ColorGroup:
-# class PySide2.QtGui.QPalette.ColorRole:
- "PySide2.QtGui.QPalette.__init__": [(), ('PySide2.QtCore.Qt.GlobalColor',), ('PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush'), ('PySide2.QtGui.QColor',), ('PySide2.QtGui.QColor', 'PySide2.QtGui.QColor'), ('PySide2.QtGui.QColor', 'PySide2.QtGui.QColor', 'PySide2.QtGui.QColor', 'PySide2.QtGui.QColor', 'PySide2.QtGui.QColor', 'PySide2.QtGui.QColor', 'PySide2.QtGui.QColor'), ('PySide2.QtGui.QPalette',)],
- "PySide2.QtGui.QPalette.__copy__": (),
- "PySide2.QtGui.QPalette.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPalette.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPalette.alternateBase": (),
- "PySide2.QtGui.QPalette.background": (),
- "PySide2.QtGui.QPalette.base": (),
- "PySide2.QtGui.QPalette.brightText": (),
- "PySide2.QtGui.QPalette.brush": [('PySide2.QtGui.QPalette.ColorGroup', 'PySide2.QtGui.QPalette.ColorRole'), ('PySide2.QtGui.QPalette.ColorRole',)],
- "PySide2.QtGui.QPalette.button": (),
- "PySide2.QtGui.QPalette.buttonText": (),
- "PySide2.QtGui.QPalette.cacheKey": (),
- "PySide2.QtGui.QPalette.color": [('PySide2.QtGui.QPalette.ColorGroup', 'PySide2.QtGui.QPalette.ColorRole'), ('PySide2.QtGui.QPalette.ColorRole',)],
- "PySide2.QtGui.QPalette.currentColorGroup": (),
- "PySide2.QtGui.QPalette.dark": (),
- "PySide2.QtGui.QPalette.foreground": (),
- "PySide2.QtGui.QPalette.highlight": (),
- "PySide2.QtGui.QPalette.highlightedText": (),
- "PySide2.QtGui.QPalette.isBrushSet": ('PySide2.QtGui.QPalette.ColorGroup', 'PySide2.QtGui.QPalette.ColorRole'),
- "PySide2.QtGui.QPalette.isCopyOf": ('PySide2.QtGui.QPalette',),
- "PySide2.QtGui.QPalette.isEqual": ('PySide2.QtGui.QPalette.ColorGroup', 'PySide2.QtGui.QPalette.ColorGroup'),
- "PySide2.QtGui.QPalette.light": (),
- "PySide2.QtGui.QPalette.link": (),
- "PySide2.QtGui.QPalette.linkVisited": (),
- "PySide2.QtGui.QPalette.mid": (),
- "PySide2.QtGui.QPalette.midlight": (),
- "PySide2.QtGui.QPalette.placeholderText": (),
- "PySide2.QtGui.QPalette.resolve": [(), ('PySide2.QtGui.QPalette',), ('int',)],
- "PySide2.QtGui.QPalette.setBrush": [('PySide2.QtGui.QPalette.ColorGroup', 'PySide2.QtGui.QPalette.ColorRole', 'PySide2.QtGui.QBrush'), ('PySide2.QtGui.QPalette.ColorRole', 'PySide2.QtGui.QBrush')],
- "PySide2.QtGui.QPalette.setColor": [('PySide2.QtGui.QPalette.ColorGroup', 'PySide2.QtGui.QPalette.ColorRole', 'PySide2.QtGui.QColor'), ('PySide2.QtGui.QPalette.ColorRole', 'PySide2.QtGui.QColor')],
- "PySide2.QtGui.QPalette.setColorGroup": ('PySide2.QtGui.QPalette.ColorGroup', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush'),
- "PySide2.QtGui.QPalette.setCurrentColorGroup": ('PySide2.QtGui.QPalette.ColorGroup',),
- "PySide2.QtGui.QPalette.shadow": (),
- "PySide2.QtGui.QPalette.swap": ('PySide2.QtGui.QPalette',),
- "PySide2.QtGui.QPalette.text": (),
- "PySide2.QtGui.QPalette.toolTipBase": (),
- "PySide2.QtGui.QPalette.toolTipText": (),
- "PySide2.QtGui.QPalette.window": (),
- "PySide2.QtGui.QPalette.windowText": (),
-# class PySide2.QtGui.QPdfWriter:
- "PySide2.QtGui.QPdfWriter.__init__": [('PySide2.QtCore.QIODevice',), ('str',)],
- "PySide2.QtGui.QPdfWriter.creator": (),
- "PySide2.QtGui.QPdfWriter.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtGui.QPdfWriter.newPage": (),
- "PySide2.QtGui.QPdfWriter.paintEngine": (),
- "PySide2.QtGui.QPdfWriter.pdfVersion": (),
- "PySide2.QtGui.QPdfWriter.resolution": (),
- "PySide2.QtGui.QPdfWriter.setCreator": ('str',),
- "PySide2.QtGui.QPdfWriter.setMargins": ('PySide2.QtGui.QPagedPaintDevice.Margins',),
- "PySide2.QtGui.QPdfWriter.setPageSize": ('PySide2.QtGui.QPagedPaintDevice.PageSize',),
- "PySide2.QtGui.QPdfWriter.setPageSizeMM": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtGui.QPdfWriter.setPdfVersion": ('PySide2.QtGui.QPagedPaintDevice.PdfVersion',),
- "PySide2.QtGui.QPdfWriter.setResolution": ('int',),
- "PySide2.QtGui.QPdfWriter.setTitle": ('str',),
- "PySide2.QtGui.QPdfWriter.title": (),
-# class PySide2.QtGui.QPen:
- "PySide2.QtGui.QPen.__init__": [(), ('PySide2.QtCore.Qt.PenStyle',), ('PySide2.QtGui.QBrush', 'float', 'PySide2.QtCore.Qt.PenStyle', 'PySide2.QtCore.Qt.PenCapStyle', 'PySide2.QtCore.Qt.PenJoinStyle'), ('PySide2.QtGui.QColor',), ('PySide2.QtGui.QPen',)],
- "PySide2.QtGui.QPen.__copy__": (),
- "PySide2.QtGui.QPen.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPen.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPen.brush": (),
- "PySide2.QtGui.QPen.capStyle": (),
- "PySide2.QtGui.QPen.color": (),
- "PySide2.QtGui.QPen.dashOffset": (),
- "PySide2.QtGui.QPen.dashPattern": (),
- "PySide2.QtGui.QPen.isCosmetic": (),
- "PySide2.QtGui.QPen.isSolid": (),
- "PySide2.QtGui.QPen.joinStyle": (),
- "PySide2.QtGui.QPen.miterLimit": (),
- "PySide2.QtGui.QPen.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QPen.setCapStyle": ('PySide2.QtCore.Qt.PenCapStyle',),
- "PySide2.QtGui.QPen.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtGui.QPen.setCosmetic": ('bool',),
- "PySide2.QtGui.QPen.setDashOffset": ('float',),
- "PySide2.QtGui.QPen.setDashPattern": ('typing.List',),
- "PySide2.QtGui.QPen.setJoinStyle": ('PySide2.QtCore.Qt.PenJoinStyle',),
- "PySide2.QtGui.QPen.setMiterLimit": ('float',),
- "PySide2.QtGui.QPen.setStyle": ('PySide2.QtCore.Qt.PenStyle',),
- "PySide2.QtGui.QPen.setWidth": ('int',),
- "PySide2.QtGui.QPen.setWidthF": ('float',),
- "PySide2.QtGui.QPen.style": (),
- "PySide2.QtGui.QPen.swap": ('PySide2.QtGui.QPen',),
- "PySide2.QtGui.QPen.width": (),
- "PySide2.QtGui.QPen.widthF": (),
-# class PySide2.QtGui.QPicture:
- "PySide2.QtGui.QPicture.__init__": [('PySide2.QtGui.QPicture',), ('int',)],
- "PySide2.QtGui.QPicture.__copy__": (),
- "PySide2.QtGui.QPicture.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPicture.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPicture.boundingRect": (),
- "PySide2.QtGui.QPicture.data": (),
- "PySide2.QtGui.QPicture.devType": (),
- "PySide2.QtGui.QPicture.inputFormatList": (),
- "PySide2.QtGui.QPicture.inputFormats": (),
- "PySide2.QtGui.QPicture.isNull": (),
- "PySide2.QtGui.QPicture.load": [('PySide2.QtCore.QIODevice', 'bytes'), ('str', 'bytes')],
- "PySide2.QtGui.QPicture.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtGui.QPicture.outputFormatList": (),
- "PySide2.QtGui.QPicture.outputFormats": (),
- "PySide2.QtGui.QPicture.paintEngine": (),
- "PySide2.QtGui.QPicture.pictureFormat": ('str',),
- "PySide2.QtGui.QPicture.play": ('PySide2.QtGui.QPainter',),
- "PySide2.QtGui.QPicture.save": [('PySide2.QtCore.QIODevice', 'bytes'), ('str', 'bytes')],
- "PySide2.QtGui.QPicture.setBoundingRect": ('PySide2.QtCore.QRect',),
- "PySide2.QtGui.QPicture.setData": ('bytes', 'int'),
- "PySide2.QtGui.QPicture.size": (),
- "PySide2.QtGui.QPicture.swap": ('PySide2.QtGui.QPicture',),
-# class PySide2.QtGui.QPictureIO:
- "PySide2.QtGui.QPictureIO.__init__": [(), ('PySide2.QtCore.QIODevice', 'bytes'), ('str', 'bytes')],
- "PySide2.QtGui.QPictureIO.description": (),
- "PySide2.QtGui.QPictureIO.fileName": (),
- "PySide2.QtGui.QPictureIO.format": (),
- "PySide2.QtGui.QPictureIO.gamma": (),
- "PySide2.QtGui.QPictureIO.inputFormats": (),
- "PySide2.QtGui.QPictureIO.ioDevice": (),
- "PySide2.QtGui.QPictureIO.outputFormats": (),
- "PySide2.QtGui.QPictureIO.parameters": (),
- "PySide2.QtGui.QPictureIO.picture": (),
- "PySide2.QtGui.QPictureIO.pictureFormat": [('PySide2.QtCore.QIODevice',), ('str',)],
- "PySide2.QtGui.QPictureIO.quality": (),
- "PySide2.QtGui.QPictureIO.read": (),
- "PySide2.QtGui.QPictureIO.setDescription": ('str',),
- "PySide2.QtGui.QPictureIO.setFileName": ('str',),
- "PySide2.QtGui.QPictureIO.setFormat": ('bytes',),
- "PySide2.QtGui.QPictureIO.setGamma": ('float',),
- "PySide2.QtGui.QPictureIO.setIODevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtGui.QPictureIO.setParameters": ('bytes',),
- "PySide2.QtGui.QPictureIO.setPicture": ('PySide2.QtGui.QPicture',),
- "PySide2.QtGui.QPictureIO.setQuality": ('int',),
- "PySide2.QtGui.QPictureIO.setStatus": ('int',),
- "PySide2.QtGui.QPictureIO.status": (),
- "PySide2.QtGui.QPictureIO.write": (),
-# class PySide2.QtGui.QPixelFormat:
-# class PySide2.QtGui.QPixelFormat.AlphaPosition:
-# class PySide2.QtGui.QPixelFormat.AlphaPremultiplied:
-# class PySide2.QtGui.QPixelFormat.AlphaUsage:
-# class PySide2.QtGui.QPixelFormat.ByteOrder:
-# class PySide2.QtGui.QPixelFormat.ColorModel:
-# class PySide2.QtGui.QPixelFormat.TypeInterpretation:
-# class PySide2.QtGui.QPixelFormat.YUVLayout:
- "PySide2.QtGui.QPixelFormat.__init__": [(), ('PySide2.QtGui.QPixelFormat',), ('PySide2.QtGui.QPixelFormat.ColorModel', 'int', 'int', 'int', 'int', 'int', 'int', 'PySide2.QtGui.QPixelFormat.AlphaUsage', 'PySide2.QtGui.QPixelFormat.AlphaPosition', 'PySide2.QtGui.QPixelFormat.AlphaPremultiplied', 'PySide2.QtGui.QPixelFormat.TypeInterpretation', 'PySide2.QtGui.QPixelFormat.ByteOrder', 'int')],
- "PySide2.QtGui.QPixelFormat.__copy__": (),
- "PySide2.QtGui.QPixelFormat.alphaPosition": (),
- "PySide2.QtGui.QPixelFormat.alphaSize": (),
- "PySide2.QtGui.QPixelFormat.alphaUsage": (),
- "PySide2.QtGui.QPixelFormat.bitsPerPixel": (),
- "PySide2.QtGui.QPixelFormat.blackSize": (),
- "PySide2.QtGui.QPixelFormat.blueSize": (),
- "PySide2.QtGui.QPixelFormat.brightnessSize": (),
- "PySide2.QtGui.QPixelFormat.byteOrder": (),
- "PySide2.QtGui.QPixelFormat.channelCount": (),
- "PySide2.QtGui.QPixelFormat.colorModel": (),
- "PySide2.QtGui.QPixelFormat.cyanSize": (),
- "PySide2.QtGui.QPixelFormat.greenSize": (),
- "PySide2.QtGui.QPixelFormat.hueSize": (),
- "PySide2.QtGui.QPixelFormat.lightnessSize": (),
- "PySide2.QtGui.QPixelFormat.magentaSize": (),
- "PySide2.QtGui.QPixelFormat.premultiplied": (),
- "PySide2.QtGui.QPixelFormat.redSize": (),
- "PySide2.QtGui.QPixelFormat.saturationSize": (),
- "PySide2.QtGui.QPixelFormat.subEnum": (),
- "PySide2.QtGui.QPixelFormat.typeInterpretation": (),
- "PySide2.QtGui.QPixelFormat.yellowSize": (),
- "PySide2.QtGui.QPixelFormat.yuvLayout": (),
-# class PySide2.QtGui.QPixmap:
- "PySide2.QtGui.QPixmap.__init__": [(), ('PySide2.QtCore.QSize',), ('PySide2.QtGui.QImage',), ('PySide2.QtGui.QPixmap',), ('int', 'int'), ('str', 'bytes', 'PySide2.QtCore.Qt.ImageConversionFlags'), ('typing.Sequence',)],
- "PySide2.QtGui.QPixmap.__copy__": (),
- "PySide2.QtGui.QPixmap.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPixmap.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPixmap.cacheKey": (),
- "PySide2.QtGui.QPixmap.convertFromImage": ('PySide2.QtGui.QImage', 'PySide2.QtCore.Qt.ImageConversionFlags'),
- "PySide2.QtGui.QPixmap.copy": [('PySide2.QtCore.QRect',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPixmap.createHeuristicMask": ('bool',),
- "PySide2.QtGui.QPixmap.createMaskFromColor": ('PySide2.QtGui.QColor', 'PySide2.QtCore.Qt.MaskMode'),
- "PySide2.QtGui.QPixmap.defaultDepth": (),
- "PySide2.QtGui.QPixmap.depth": (),
- "PySide2.QtGui.QPixmap.devType": (),
- "PySide2.QtGui.QPixmap.devicePixelRatio": (),
- "PySide2.QtGui.QPixmap.fill": [('PySide2.QtGui.QColor',), ('PySide2.QtGui.QPaintDevice', 'PySide2.QtCore.QPoint'), ('PySide2.QtGui.QPaintDevice', 'int', 'int')],
- "PySide2.QtGui.QPixmap.fromImage": ('PySide2.QtGui.QImage', 'PySide2.QtCore.Qt.ImageConversionFlags'),
- "PySide2.QtGui.QPixmap.fromImageInPlace": ('PySide2.QtGui.QImage', 'PySide2.QtCore.Qt.ImageConversionFlags'),
- "PySide2.QtGui.QPixmap.fromImageReader": ('PySide2.QtGui.QImageReader', 'PySide2.QtCore.Qt.ImageConversionFlags'),
- "PySide2.QtGui.QPixmap.grabWidget": [('PySide2.QtCore.QObject', 'PySide2.QtCore.QRect'), ('PySide2.QtCore.QObject', 'int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPixmap.grabWindow": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QPixmap.hasAlpha": (),
- "PySide2.QtGui.QPixmap.hasAlphaChannel": (),
- "PySide2.QtGui.QPixmap.height": (),
- "PySide2.QtGui.QPixmap.isNull": (),
- "PySide2.QtGui.QPixmap.isQBitmap": (),
- "PySide2.QtGui.QPixmap.load": ('str', 'bytes', 'PySide2.QtCore.Qt.ImageConversionFlags'),
- "PySide2.QtGui.QPixmap.loadFromData": [('PySide2.QtCore.QByteArray', 'bytes', 'PySide2.QtCore.Qt.ImageConversionFlags'), ('bytes', 'int', 'bytes', 'PySide2.QtCore.Qt.ImageConversionFlags')],
- "PySide2.QtGui.QPixmap.mask": (),
- "PySide2.QtGui.QPixmap.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtGui.QPixmap.paintEngine": (),
- "PySide2.QtGui.QPixmap.rect": (),
- "PySide2.QtGui.QPixmap.save": [('PySide2.QtCore.QIODevice', 'bytes', 'int'), ('str', 'bytes', 'int')],
- "PySide2.QtGui.QPixmap.scaled": [('PySide2.QtCore.QSize', 'PySide2.QtCore.Qt.AspectRatioMode', 'PySide2.QtCore.Qt.TransformationMode'), ('int', 'int', 'PySide2.QtCore.Qt.AspectRatioMode', 'PySide2.QtCore.Qt.TransformationMode')],
- "PySide2.QtGui.QPixmap.scaledToHeight": ('int', 'PySide2.QtCore.Qt.TransformationMode'),
- "PySide2.QtGui.QPixmap.scaledToWidth": ('int', 'PySide2.QtCore.Qt.TransformationMode'),
- "PySide2.QtGui.QPixmap.scroll": [('int', 'int', 'PySide2.QtCore.QRect', 'PySide2.QtGui.QRegion'), ('int', 'int', 'int', 'int', 'int', 'int', 'PySide2.QtGui.QRegion')],
- "PySide2.QtGui.QPixmap.setDevicePixelRatio": ('float',),
- "PySide2.QtGui.QPixmap.setMask": ('PySide2.QtGui.QBitmap',),
- "PySide2.QtGui.QPixmap.size": (),
- "PySide2.QtGui.QPixmap.swap": ('PySide2.QtGui.QPixmap',),
- "PySide2.QtGui.QPixmap.toImage": (),
- "PySide2.QtGui.QPixmap.transformed": [('PySide2.QtGui.QMatrix', 'PySide2.QtCore.Qt.TransformationMode'), ('PySide2.QtGui.QTransform', 'PySide2.QtCore.Qt.TransformationMode')],
- "PySide2.QtGui.QPixmap.trueMatrix": [('PySide2.QtGui.QMatrix', 'int', 'int'), ('PySide2.QtGui.QTransform', 'int', 'int')],
- "PySide2.QtGui.QPixmap.width": (),
-# class PySide2.QtGui.QPixmapCache:
-# class PySide2.QtGui.QPixmapCache.Key:
- "PySide2.QtGui.QPixmapCache.Key.__init__": [(), ('PySide2.QtGui.QPixmapCache.Key',)],
- "PySide2.QtGui.QPixmapCache.Key.__copy__": (),
- "PySide2.QtGui.QPixmapCache.Key.isValid": (),
- "PySide2.QtGui.QPixmapCache.Key.swap": ('PySide2.QtGui.QPixmapCache.Key',),
- "PySide2.QtGui.QPixmapCache.__init__": (),
- "PySide2.QtGui.QPixmapCache.cacheLimit": (),
- "PySide2.QtGui.QPixmapCache.clear": (),
- "PySide2.QtGui.QPixmapCache.find": [('PySide2.QtGui.QPixmapCache.Key',), ('PySide2.QtGui.QPixmapCache.Key', 'PySide2.QtGui.QPixmap'), ('str',), ('str', 'PySide2.QtGui.QPixmap')],
- "PySide2.QtGui.QPixmapCache.insert": [('PySide2.QtGui.QPixmap',), ('str', 'PySide2.QtGui.QPixmap')],
- "PySide2.QtGui.QPixmapCache.remove": [('PySide2.QtGui.QPixmapCache.Key',), ('str',)],
- "PySide2.QtGui.QPixmapCache.replace": ('PySide2.QtGui.QPixmapCache.Key', 'PySide2.QtGui.QPixmap'),
- "PySide2.QtGui.QPixmapCache.setCacheLimit": ('int',),
-# class PySide2.QtGui.QPointingDeviceUniqueId:
- "PySide2.QtGui.QPointingDeviceUniqueId.__init__": [(), ('PySide2.QtGui.QPointingDeviceUniqueId',)],
- "PySide2.QtGui.QPointingDeviceUniqueId.__copy__": (),
- "PySide2.QtGui.QPointingDeviceUniqueId.fromNumericId": ('int',),
- "PySide2.QtGui.QPointingDeviceUniqueId.isValid": (),
- "PySide2.QtGui.QPointingDeviceUniqueId.numericId": (),
-# class PySide2.QtGui.QPolygon:
- "PySide2.QtGui.QPolygon.__init__": [(), ('PySide2.QtCore.QRect', 'bool'), ('PySide2.QtGui.QPolygon',), ('int',), ('typing.List',)],
- "PySide2.QtGui.QPolygon.__add__": ('typing.List',),
- "PySide2.QtGui.QPolygon.__copy__": (),
- "PySide2.QtGui.QPolygon.__iadd__": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QPolygon.__lshift__": [('PySide2.QtCore.QDataStream',), ('PySide2.QtCore.QPoint',), ('typing.List',)],
- "PySide2.QtGui.QPolygon.__mul__": [('PySide2.QtGui.QMatrix',), ('PySide2.QtGui.QTransform',)],
- "PySide2.QtGui.QPolygon.__reduce__": (),
- "PySide2.QtGui.QPolygon.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPolygon.append": [('PySide2.QtCore.QPoint',), ('typing.List',)],
- "PySide2.QtGui.QPolygon.at": ('int',),
- "PySide2.QtGui.QPolygon.back": (),
- "PySide2.QtGui.QPolygon.boundingRect": (),
- "PySide2.QtGui.QPolygon.capacity": (),
- "PySide2.QtGui.QPolygon.clear": (),
- "PySide2.QtGui.QPolygon.constData": (),
- "PySide2.QtGui.QPolygon.constFirst": (),
- "PySide2.QtGui.QPolygon.constLast": (),
- "PySide2.QtGui.QPolygon.contains": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QPolygon.containsPoint": ('PySide2.QtCore.QPoint', 'PySide2.QtCore.Qt.FillRule'),
- "PySide2.QtGui.QPolygon.count": [(), ('PySide2.QtCore.QPoint',)],
- "PySide2.QtGui.QPolygon.data": (),
- "PySide2.QtGui.QPolygon.empty": (),
- "PySide2.QtGui.QPolygon.endsWith": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QPolygon.fill": ('PySide2.QtCore.QPoint', 'int'),
- "PySide2.QtGui.QPolygon.first": (),
- "PySide2.QtGui.QPolygon.fromList": ('typing.Sequence',),
- "PySide2.QtGui.QPolygon.front": (),
- "PySide2.QtGui.QPolygon.indexOf": ('PySide2.QtCore.QPoint', 'int'),
- "PySide2.QtGui.QPolygon.insert": [('int', 'PySide2.QtCore.QPoint'), ('int', 'int', 'PySide2.QtCore.QPoint')],
- "PySide2.QtGui.QPolygon.intersected": ('PySide2.QtGui.QPolygon',),
- "PySide2.QtGui.QPolygon.intersects": ('PySide2.QtGui.QPolygon',),
- "PySide2.QtGui.QPolygon.isEmpty": (),
- "PySide2.QtGui.QPolygon.isSharedWith": ('typing.List',),
- "PySide2.QtGui.QPolygon.last": (),
- "PySide2.QtGui.QPolygon.lastIndexOf": ('PySide2.QtCore.QPoint', 'int'),
- "PySide2.QtGui.QPolygon.length": (),
- "PySide2.QtGui.QPolygon.mid": ('int', 'int'),
- "PySide2.QtGui.QPolygon.move": ('int', 'int'),
- "PySide2.QtGui.QPolygon.pop_back": (),
- "PySide2.QtGui.QPolygon.pop_front": (),
- "PySide2.QtGui.QPolygon.prepend": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QPolygon.push_back": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QPolygon.push_front": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QPolygon.remove": [('int',), ('int', 'int')],
- "PySide2.QtGui.QPolygon.removeAll": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QPolygon.removeAt": ('int',),
- "PySide2.QtGui.QPolygon.removeFirst": (),
- "PySide2.QtGui.QPolygon.removeLast": (),
- "PySide2.QtGui.QPolygon.removeOne": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QPolygon.replace": ('int', 'PySide2.QtCore.QPoint'),
- "PySide2.QtGui.QPolygon.reserve": ('int',),
- "PySide2.QtGui.QPolygon.resize": ('int',),
- "PySide2.QtGui.QPolygon.setSharable": ('bool',),
- "PySide2.QtGui.QPolygon.shrink_to_fit": (),
- "PySide2.QtGui.QPolygon.size": (),
- "PySide2.QtGui.QPolygon.squeeze": (),
- "PySide2.QtGui.QPolygon.startsWith": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QPolygon.subtracted": ('PySide2.QtGui.QPolygon',),
- "PySide2.QtGui.QPolygon.swap": ('PySide2.QtGui.QPolygon',),
- "PySide2.QtGui.QPolygon.swapItemsAt": ('int', 'int'),
- "PySide2.QtGui.QPolygon.takeAt": ('int',),
- "PySide2.QtGui.QPolygon.takeFirst": (),
- "PySide2.QtGui.QPolygon.takeLast": (),
- "PySide2.QtGui.QPolygon.toList": (),
- "PySide2.QtGui.QPolygon.translate": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtGui.QPolygon.translated": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtGui.QPolygon.united": ('PySide2.QtGui.QPolygon',),
- "PySide2.QtGui.QPolygon.value": [('int',), ('int', 'PySide2.QtCore.QPoint')],
-# class PySide2.QtGui.QPolygonF:
- "PySide2.QtGui.QPolygonF.__init__": [(), ('PySide2.QtCore.QRectF',), ('PySide2.QtGui.QPolygon',), ('PySide2.QtGui.QPolygonF',), ('int',), ('typing.List',)],
- "PySide2.QtGui.QPolygonF.__add__": ('typing.List',),
- "PySide2.QtGui.QPolygonF.__copy__": (),
- "PySide2.QtGui.QPolygonF.__iadd__": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QPolygonF.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPolygonF.__mul__": [('PySide2.QtGui.QMatrix',), ('PySide2.QtGui.QTransform',)],
- "PySide2.QtGui.QPolygonF.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPolygonF.append": [('PySide2.QtCore.QPointF',), ('typing.List',)],
- "PySide2.QtGui.QPolygonF.at": ('int',),
- "PySide2.QtGui.QPolygonF.back": (),
- "PySide2.QtGui.QPolygonF.boundingRect": (),
- "PySide2.QtGui.QPolygonF.capacity": (),
- "PySide2.QtGui.QPolygonF.clear": (),
- "PySide2.QtGui.QPolygonF.constData": (),
- "PySide2.QtGui.QPolygonF.constFirst": (),
- "PySide2.QtGui.QPolygonF.constLast": (),
- "PySide2.QtGui.QPolygonF.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QPolygonF.containsPoint": ('PySide2.QtCore.QPointF', 'PySide2.QtCore.Qt.FillRule'),
- "PySide2.QtGui.QPolygonF.count": [(), ('PySide2.QtCore.QPointF',)],
- "PySide2.QtGui.QPolygonF.data": (),
- "PySide2.QtGui.QPolygonF.empty": (),
- "PySide2.QtGui.QPolygonF.endsWith": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QPolygonF.fill": ('PySide2.QtCore.QPointF', 'int'),
- "PySide2.QtGui.QPolygonF.first": (),
- "PySide2.QtGui.QPolygonF.fromList": ('typing.Sequence',),
- "PySide2.QtGui.QPolygonF.front": (),
- "PySide2.QtGui.QPolygonF.indexOf": ('PySide2.QtCore.QPointF', 'int'),
- "PySide2.QtGui.QPolygonF.insert": [('int', 'PySide2.QtCore.QPointF'), ('int', 'int', 'PySide2.QtCore.QPointF')],
- "PySide2.QtGui.QPolygonF.intersected": ('PySide2.QtGui.QPolygonF',),
- "PySide2.QtGui.QPolygonF.intersects": ('PySide2.QtGui.QPolygonF',),
- "PySide2.QtGui.QPolygonF.isClosed": (),
- "PySide2.QtGui.QPolygonF.isEmpty": (),
- "PySide2.QtGui.QPolygonF.isSharedWith": ('typing.List',),
- "PySide2.QtGui.QPolygonF.last": (),
- "PySide2.QtGui.QPolygonF.lastIndexOf": ('PySide2.QtCore.QPointF', 'int'),
- "PySide2.QtGui.QPolygonF.length": (),
- "PySide2.QtGui.QPolygonF.mid": ('int', 'int'),
- "PySide2.QtGui.QPolygonF.move": ('int', 'int'),
- "PySide2.QtGui.QPolygonF.pop_back": (),
- "PySide2.QtGui.QPolygonF.pop_front": (),
- "PySide2.QtGui.QPolygonF.prepend": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QPolygonF.push_back": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QPolygonF.push_front": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QPolygonF.remove": [('int',), ('int', 'int')],
- "PySide2.QtGui.QPolygonF.removeAll": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QPolygonF.removeAt": ('int',),
- "PySide2.QtGui.QPolygonF.removeFirst": (),
- "PySide2.QtGui.QPolygonF.removeLast": (),
- "PySide2.QtGui.QPolygonF.removeOne": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QPolygonF.replace": ('int', 'PySide2.QtCore.QPointF'),
- "PySide2.QtGui.QPolygonF.reserve": ('int',),
- "PySide2.QtGui.QPolygonF.resize": ('int',),
- "PySide2.QtGui.QPolygonF.setSharable": ('bool',),
- "PySide2.QtGui.QPolygonF.shrink_to_fit": (),
- "PySide2.QtGui.QPolygonF.size": (),
- "PySide2.QtGui.QPolygonF.squeeze": (),
- "PySide2.QtGui.QPolygonF.startsWith": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QPolygonF.subtracted": ('PySide2.QtGui.QPolygonF',),
- "PySide2.QtGui.QPolygonF.swap": ('PySide2.QtGui.QPolygonF',),
- "PySide2.QtGui.QPolygonF.swapItemsAt": ('int', 'int'),
- "PySide2.QtGui.QPolygonF.takeAt": ('int',),
- "PySide2.QtGui.QPolygonF.takeFirst": (),
- "PySide2.QtGui.QPolygonF.takeLast": (),
- "PySide2.QtGui.QPolygonF.toList": (),
- "PySide2.QtGui.QPolygonF.toPolygon": (),
- "PySide2.QtGui.QPolygonF.translate": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QPolygonF.translated": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QPolygonF.united": ('PySide2.QtGui.QPolygonF',),
- "PySide2.QtGui.QPolygonF.value": [('int',), ('int', 'PySide2.QtCore.QPointF')],
-# class PySide2.QtGui.QPyTextObject:
- "PySide2.QtGui.QPyTextObject.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QPyTextObject.drawObject": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF', 'PySide2.QtGui.QTextDocument', 'int', 'PySide2.QtGui.QTextFormat'),
- "PySide2.QtGui.QPyTextObject.intrinsicSize": ('PySide2.QtGui.QTextDocument', 'int', 'PySide2.QtGui.QTextFormat'),
-# class PySide2.QtGui.QQuaternion:
- "PySide2.QtGui.QQuaternion.__init__": [(), ('PySide2.QtGui.QVector4D',), ('float', 'PySide2.QtGui.QVector3D'), ('float', 'float', 'float', 'float')],
- "PySide2.QtGui.QQuaternion.__add__": ('PySide2.QtGui.QQuaternion',),
- "PySide2.QtGui.QQuaternion.__copy__": (),
- "PySide2.QtGui.QQuaternion.__iadd__": ('PySide2.QtGui.QQuaternion',),
- "PySide2.QtGui.QQuaternion.__imul__": [('PySide2.QtGui.QQuaternion',), ('float',)],
- "PySide2.QtGui.QQuaternion.__isub__": ('PySide2.QtGui.QQuaternion',),
- "PySide2.QtGui.QQuaternion.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QQuaternion.__mul__": [('PySide2.QtGui.QQuaternion',), ('float',)],
- "PySide2.QtGui.QQuaternion.__neg__": (),
- "PySide2.QtGui.QQuaternion.__reduce__": (),
- "PySide2.QtGui.QQuaternion.__repr__": (),
- "PySide2.QtGui.QQuaternion.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QQuaternion.__sub__": ('PySide2.QtGui.QQuaternion',),
- "PySide2.QtGui.QQuaternion.conjugate": (),
- "PySide2.QtGui.QQuaternion.conjugated": (),
- "PySide2.QtGui.QQuaternion.dotProduct": ('PySide2.QtGui.QQuaternion', 'PySide2.QtGui.QQuaternion'),
- "PySide2.QtGui.QQuaternion.fromAxes": ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'),
- "PySide2.QtGui.QQuaternion.fromAxisAndAngle": [('PySide2.QtGui.QVector3D', 'float'), ('float', 'float', 'float', 'float')],
- "PySide2.QtGui.QQuaternion.fromDirection": ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'),
- "PySide2.QtGui.QQuaternion.fromEulerAngles": [('PySide2.QtGui.QVector3D',), ('float', 'float', 'float')],
- "PySide2.QtGui.QQuaternion.fromRotationMatrix": ('PySide2.QtGui.QMatrix3x3',),
- "PySide2.QtGui.QQuaternion.getAxes": ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'),
- "PySide2.QtGui.QQuaternion.inverted": (),
- "PySide2.QtGui.QQuaternion.isIdentity": (),
- "PySide2.QtGui.QQuaternion.isNull": (),
- "PySide2.QtGui.QQuaternion.length": (),
- "PySide2.QtGui.QQuaternion.lengthSquared": (),
- "PySide2.QtGui.QQuaternion.nlerp": ('PySide2.QtGui.QQuaternion', 'PySide2.QtGui.QQuaternion', 'float'),
- "PySide2.QtGui.QQuaternion.normalize": (),
- "PySide2.QtGui.QQuaternion.normalized": (),
- "PySide2.QtGui.QQuaternion.rotatedVector": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtGui.QQuaternion.rotationTo": ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'),
- "PySide2.QtGui.QQuaternion.scalar": (),
- "PySide2.QtGui.QQuaternion.setScalar": ('float',),
- "PySide2.QtGui.QQuaternion.setVector": [('PySide2.QtGui.QVector3D',), ('float', 'float', 'float')],
- "PySide2.QtGui.QQuaternion.setX": ('float',),
- "PySide2.QtGui.QQuaternion.setY": ('float',),
- "PySide2.QtGui.QQuaternion.setZ": ('float',),
- "PySide2.QtGui.QQuaternion.slerp": ('PySide2.QtGui.QQuaternion', 'PySide2.QtGui.QQuaternion', 'float'),
- "PySide2.QtGui.QQuaternion.toEulerAngles": (),
- "PySide2.QtGui.QQuaternion.toRotationMatrix": (),
- "PySide2.QtGui.QQuaternion.toVector4D": (),
- "PySide2.QtGui.QQuaternion.vector": (),
- "PySide2.QtGui.QQuaternion.x": (),
- "PySide2.QtGui.QQuaternion.y": (),
- "PySide2.QtGui.QQuaternion.z": (),
-# class PySide2.QtGui.QRadialGradient:
- "PySide2.QtGui.QRadialGradient.__init__": [(), ('PySide2.QtCore.QPointF', 'float'), ('PySide2.QtCore.QPointF', 'float', 'PySide2.QtCore.QPointF'), ('PySide2.QtCore.QPointF', 'float', 'PySide2.QtCore.QPointF', 'float'), ('PySide2.QtGui.QRadialGradient',), ('float', 'float', 'float'), ('float', 'float', 'float', 'float', 'float'), ('float', 'float', 'float', 'float', 'float', 'float')],
- "PySide2.QtGui.QRadialGradient.__copy__": (),
- "PySide2.QtGui.QRadialGradient.center": (),
- "PySide2.QtGui.QRadialGradient.centerRadius": (),
- "PySide2.QtGui.QRadialGradient.focalPoint": (),
- "PySide2.QtGui.QRadialGradient.focalRadius": (),
- "PySide2.QtGui.QRadialGradient.radius": (),
- "PySide2.QtGui.QRadialGradient.setCenter": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QRadialGradient.setCenterRadius": ('float',),
- "PySide2.QtGui.QRadialGradient.setFocalPoint": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QRadialGradient.setFocalRadius": ('float',),
- "PySide2.QtGui.QRadialGradient.setRadius": ('float',),
-# class PySide2.QtGui.QRasterWindow:
- "PySide2.QtGui.QRasterWindow.__init__": ('PySide2.QtGui.QWindow',),
- "PySide2.QtGui.QRasterWindow.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtGui.QRasterWindow.redirected": ('PySide2.QtCore.QPoint',),
-# class PySide2.QtGui.QRawFont:
-# class PySide2.QtGui.QRawFont.AntialiasingType:
-# class PySide2.QtGui.QRawFont.LayoutFlag:
-# class PySide2.QtGui.QRawFont.LayoutFlags:
- "PySide2.QtGui.QRawFont.__init__": [(), ('PySide2.QtCore.QByteArray', 'float', 'PySide2.QtGui.QFont.HintingPreference'), ('PySide2.QtGui.QRawFont',), ('str', 'float', 'PySide2.QtGui.QFont.HintingPreference')],
- "PySide2.QtGui.QRawFont.__copy__": (),
- "PySide2.QtGui.QRawFont.advancesForGlyphIndexes": [('typing.List',), ('typing.List', 'PySide2.QtGui.QRawFont.LayoutFlags')],
- "PySide2.QtGui.QRawFont.alphaMapForGlyph": ('int', 'PySide2.QtGui.QRawFont.AntialiasingType', 'PySide2.QtGui.QTransform'),
- "PySide2.QtGui.QRawFont.ascent": (),
- "PySide2.QtGui.QRawFont.averageCharWidth": (),
- "PySide2.QtGui.QRawFont.boundingRect": ('int',),
- "PySide2.QtGui.QRawFont.capHeight": (),
- "PySide2.QtGui.QRawFont.descent": (),
- "PySide2.QtGui.QRawFont.familyName": (),
- "PySide2.QtGui.QRawFont.fontTable": ('bytes',),
- "PySide2.QtGui.QRawFont.fromFont": ('PySide2.QtGui.QFont', 'PySide2.QtGui.QFontDatabase.WritingSystem'),
- "PySide2.QtGui.QRawFont.glyphIndexesForString": ('str',),
- "PySide2.QtGui.QRawFont.hintingPreference": (),
- "PySide2.QtGui.QRawFont.isValid": (),
- "PySide2.QtGui.QRawFont.leading": (),
- "PySide2.QtGui.QRawFont.lineThickness": (),
- "PySide2.QtGui.QRawFont.loadFromData": ('PySide2.QtCore.QByteArray', 'float', 'PySide2.QtGui.QFont.HintingPreference'),
- "PySide2.QtGui.QRawFont.loadFromFile": ('str', 'float', 'PySide2.QtGui.QFont.HintingPreference'),
- "PySide2.QtGui.QRawFont.maxCharWidth": (),
- "PySide2.QtGui.QRawFont.pathForGlyph": ('int',),
- "PySide2.QtGui.QRawFont.pixelSize": (),
- "PySide2.QtGui.QRawFont.setPixelSize": ('float',),
- "PySide2.QtGui.QRawFont.style": (),
- "PySide2.QtGui.QRawFont.styleName": (),
- "PySide2.QtGui.QRawFont.supportedWritingSystems": (),
- "PySide2.QtGui.QRawFont.supportsCharacter": [('int',), ('str',)],
- "PySide2.QtGui.QRawFont.swap": ('PySide2.QtGui.QRawFont',),
- "PySide2.QtGui.QRawFont.underlinePosition": (),
- "PySide2.QtGui.QRawFont.unitsPerEm": (),
- "PySide2.QtGui.QRawFont.weight": (),
- "PySide2.QtGui.QRawFont.xHeight": (),
-# class PySide2.QtGui.QRegExpValidator:
- "PySide2.QtGui.QRegExpValidator.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtCore.QRegExp', 'PySide2.QtCore.QObject')],
- "PySide2.QtGui.QRegExpValidator.regExp": (),
- "PySide2.QtGui.QRegExpValidator.setRegExp": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtGui.QRegExpValidator.validate": ('str', 'int'),
-# class PySide2.QtGui.QRegion:
-# class PySide2.QtGui.QRegion.RegionType:
- "PySide2.QtGui.QRegion.__init__": [(), ('PySide2.QtCore.QRect', 'PySide2.QtGui.QRegion.RegionType'), ('PySide2.QtGui.QBitmap',), ('PySide2.QtGui.QPolygon', 'PySide2.QtCore.Qt.FillRule'), ('PySide2.QtGui.QRegion',), ('int', 'int', 'int', 'int', 'PySide2.QtGui.QRegion.RegionType')],
- "PySide2.QtGui.QRegion.__add__": [('PySide2.QtCore.QRect',), ('PySide2.QtGui.QRegion',)],
- "PySide2.QtGui.QRegion.__and__": [('PySide2.QtCore.QRect',), ('PySide2.QtGui.QRegion',)],
- "PySide2.QtGui.QRegion.__copy__": (),
- "PySide2.QtGui.QRegion.__iadd__": [('PySide2.QtCore.QRect',), ('PySide2.QtGui.QRegion',)],
- "PySide2.QtGui.QRegion.__ior__": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QRegion.__isub__": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QRegion.__ixor__": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QRegion.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QRegion.__mul__": [('PySide2.QtGui.QMatrix',), ('PySide2.QtGui.QTransform',)],
- "PySide2.QtGui.QRegion.__or__": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QRegion.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QRegion.__sub__": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QRegion.__xor__": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QRegion.begin": (),
- "PySide2.QtGui.QRegion.boundingRect": (),
- "PySide2.QtGui.QRegion.cbegin": (),
- "PySide2.QtGui.QRegion.cend": (),
- "PySide2.QtGui.QRegion.contains": [('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QRect',)],
- "PySide2.QtGui.QRegion.end": (),
- "PySide2.QtGui.QRegion.intersected": [('PySide2.QtCore.QRect',), ('PySide2.QtGui.QRegion',)],
- "PySide2.QtGui.QRegion.intersects": [('PySide2.QtCore.QRect',), ('PySide2.QtGui.QRegion',)],
- "PySide2.QtGui.QRegion.isEmpty": (),
- "PySide2.QtGui.QRegion.isNull": (),
- "PySide2.QtGui.QRegion.rectCount": (),
- "PySide2.QtGui.QRegion.rects": (),
- "PySide2.QtGui.QRegion.setRects": ('PySide2.QtCore.QRect', 'int'),
- "PySide2.QtGui.QRegion.subtracted": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QRegion.swap": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QRegion.translate": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtGui.QRegion.translated": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtGui.QRegion.united": [('PySide2.QtCore.QRect',), ('PySide2.QtGui.QRegion',)],
- "PySide2.QtGui.QRegion.xored": ('PySide2.QtGui.QRegion',),
-# class PySide2.QtGui.QResizeEvent:
- "PySide2.QtGui.QResizeEvent.__init__": ('PySide2.QtCore.QSize', 'PySide2.QtCore.QSize'),
- "PySide2.QtGui.QResizeEvent.oldSize": (),
- "PySide2.QtGui.QResizeEvent.size": (),
-# class PySide2.QtGui.QScreen:
- "PySide2.QtGui.QScreen.angleBetween": ('PySide2.QtCore.Qt.ScreenOrientation', 'PySide2.QtCore.Qt.ScreenOrientation'),
- "PySide2.QtGui.QScreen.availableGeometry": (),
- "PySide2.QtGui.QScreen.availableSize": (),
- "PySide2.QtGui.QScreen.availableVirtualGeometry": (),
- "PySide2.QtGui.QScreen.availableVirtualSize": (),
- "PySide2.QtGui.QScreen.depth": (),
- "PySide2.QtGui.QScreen.devicePixelRatio": (),
- "PySide2.QtGui.QScreen.geometry": (),
- "PySide2.QtGui.QScreen.grabWindow": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QScreen.isLandscape": ('PySide2.QtCore.Qt.ScreenOrientation',),
- "PySide2.QtGui.QScreen.isPortrait": ('PySide2.QtCore.Qt.ScreenOrientation',),
- "PySide2.QtGui.QScreen.logicalDotsPerInch": (),
- "PySide2.QtGui.QScreen.logicalDotsPerInchX": (),
- "PySide2.QtGui.QScreen.logicalDotsPerInchY": (),
- "PySide2.QtGui.QScreen.manufacturer": (),
- "PySide2.QtGui.QScreen.mapBetween": ('PySide2.QtCore.Qt.ScreenOrientation', 'PySide2.QtCore.Qt.ScreenOrientation', 'PySide2.QtCore.QRect'),
- "PySide2.QtGui.QScreen.model": (),
- "PySide2.QtGui.QScreen.name": (),
- "PySide2.QtGui.QScreen.nativeOrientation": (),
- "PySide2.QtGui.QScreen.orientation": (),
- "PySide2.QtGui.QScreen.orientationUpdateMask": (),
- "PySide2.QtGui.QScreen.physicalDotsPerInch": (),
- "PySide2.QtGui.QScreen.physicalDotsPerInchX": (),
- "PySide2.QtGui.QScreen.physicalDotsPerInchY": (),
- "PySide2.QtGui.QScreen.physicalSize": (),
- "PySide2.QtGui.QScreen.primaryOrientation": (),
- "PySide2.QtGui.QScreen.refreshRate": (),
- "PySide2.QtGui.QScreen.serialNumber": (),
- "PySide2.QtGui.QScreen.setOrientationUpdateMask": ('PySide2.QtCore.Qt.ScreenOrientations',),
- "PySide2.QtGui.QScreen.size": (),
- "PySide2.QtGui.QScreen.transformBetween": ('PySide2.QtCore.Qt.ScreenOrientation', 'PySide2.QtCore.Qt.ScreenOrientation', 'PySide2.QtCore.QRect'),
- "PySide2.QtGui.QScreen.virtualGeometry": (),
- "PySide2.QtGui.QScreen.virtualSiblings": (),
- "PySide2.QtGui.QScreen.virtualSize": (),
-# class PySide2.QtGui.QScrollEvent:
-# class PySide2.QtGui.QScrollEvent.ScrollState:
- "PySide2.QtGui.QScrollEvent.__init__": ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtGui.QScrollEvent.ScrollState'),
- "PySide2.QtGui.QScrollEvent.contentPos": (),
- "PySide2.QtGui.QScrollEvent.overshootDistance": (),
- "PySide2.QtGui.QScrollEvent.scrollState": (),
-# class PySide2.QtGui.QScrollPrepareEvent:
- "PySide2.QtGui.QScrollPrepareEvent.__init__": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QScrollPrepareEvent.contentPos": (),
- "PySide2.QtGui.QScrollPrepareEvent.contentPosRange": (),
- "PySide2.QtGui.QScrollPrepareEvent.setContentPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QScrollPrepareEvent.setContentPosRange": ('PySide2.QtCore.QRectF',),
- "PySide2.QtGui.QScrollPrepareEvent.setViewportSize": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtGui.QScrollPrepareEvent.startPos": (),
- "PySide2.QtGui.QScrollPrepareEvent.viewportSize": (),
-# class PySide2.QtGui.QSessionManager:
-# class PySide2.QtGui.QSessionManager.RestartHint:
- "PySide2.QtGui.QSessionManager.allowsErrorInteraction": (),
- "PySide2.QtGui.QSessionManager.allowsInteraction": (),
- "PySide2.QtGui.QSessionManager.cancel": (),
- "PySide2.QtGui.QSessionManager.discardCommand": (),
- "PySide2.QtGui.QSessionManager.isPhase2": (),
- "PySide2.QtGui.QSessionManager.release": (),
- "PySide2.QtGui.QSessionManager.requestPhase2": (),
- "PySide2.QtGui.QSessionManager.restartCommand": (),
- "PySide2.QtGui.QSessionManager.restartHint": (),
- "PySide2.QtGui.QSessionManager.sessionId": (),
- "PySide2.QtGui.QSessionManager.sessionKey": (),
- "PySide2.QtGui.QSessionManager.setDiscardCommand": ('typing.Sequence',),
- "PySide2.QtGui.QSessionManager.setManagerProperty": [('str', 'str'), ('str', 'typing.Sequence')],
- "PySide2.QtGui.QSessionManager.setRestartCommand": ('typing.Sequence',),
- "PySide2.QtGui.QSessionManager.setRestartHint": ('PySide2.QtGui.QSessionManager.RestartHint',),
-# class PySide2.QtGui.QShortcutEvent:
- "PySide2.QtGui.QShortcutEvent.__init__": ('PySide2.QtGui.QKeySequence', 'int', 'bool'),
- "PySide2.QtGui.QShortcutEvent.isAmbiguous": (),
- "PySide2.QtGui.QShortcutEvent.key": (),
- "PySide2.QtGui.QShortcutEvent.shortcutId": (),
-# class PySide2.QtGui.QShowEvent:
- "PySide2.QtGui.QShowEvent.__init__": (),
-# class PySide2.QtGui.QStandardItem:
-# class PySide2.QtGui.QStandardItem.ItemType:
- "PySide2.QtGui.QStandardItem.__init__": [(), ('PySide2.QtGui.QIcon', 'str'), ('PySide2.QtGui.QStandardItem',), ('int', 'int'), ('str',)],
- "PySide2.QtGui.QStandardItem.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QStandardItem.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QStandardItem.accessibleDescription": (),
- "PySide2.QtGui.QStandardItem.accessibleText": (),
- "PySide2.QtGui.QStandardItem.appendColumn": ('typing.Sequence',),
- "PySide2.QtGui.QStandardItem.appendRow": [('PySide2.QtGui.QStandardItem',), ('typing.Sequence',)],
- "PySide2.QtGui.QStandardItem.appendRows": ('typing.Sequence',),
- "PySide2.QtGui.QStandardItem.background": (),
- "PySide2.QtGui.QStandardItem.checkState": (),
- "PySide2.QtGui.QStandardItem.child": ('int', 'int'),
- "PySide2.QtGui.QStandardItem.clearData": (),
- "PySide2.QtGui.QStandardItem.clone": (),
- "PySide2.QtGui.QStandardItem.column": (),
- "PySide2.QtGui.QStandardItem.columnCount": (),
- "PySide2.QtGui.QStandardItem.data": ('int',),
- "PySide2.QtGui.QStandardItem.emitDataChanged": (),
- "PySide2.QtGui.QStandardItem.flags": (),
- "PySide2.QtGui.QStandardItem.font": (),
- "PySide2.QtGui.QStandardItem.foreground": (),
- "PySide2.QtGui.QStandardItem.hasChildren": (),
- "PySide2.QtGui.QStandardItem.icon": (),
- "PySide2.QtGui.QStandardItem.index": (),
- "PySide2.QtGui.QStandardItem.insertColumn": ('int', 'typing.Sequence'),
- "PySide2.QtGui.QStandardItem.insertColumns": ('int', 'int'),
- "PySide2.QtGui.QStandardItem.insertRow": [('int', 'PySide2.QtGui.QStandardItem'), ('int', 'typing.Sequence')],
- "PySide2.QtGui.QStandardItem.insertRows": [('int', 'int'), ('int', 'typing.Sequence')],
- "PySide2.QtGui.QStandardItem.isAutoTristate": (),
- "PySide2.QtGui.QStandardItem.isCheckable": (),
- "PySide2.QtGui.QStandardItem.isDragEnabled": (),
- "PySide2.QtGui.QStandardItem.isDropEnabled": (),
- "PySide2.QtGui.QStandardItem.isEditable": (),
- "PySide2.QtGui.QStandardItem.isEnabled": (),
- "PySide2.QtGui.QStandardItem.isSelectable": (),
- "PySide2.QtGui.QStandardItem.isTristate": (),
- "PySide2.QtGui.QStandardItem.isUserTristate": (),
- "PySide2.QtGui.QStandardItem.model": (),
- "PySide2.QtGui.QStandardItem.parent": (),
- "PySide2.QtGui.QStandardItem.read": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QStandardItem.removeColumn": ('int',),
- "PySide2.QtGui.QStandardItem.removeColumns": ('int', 'int'),
- "PySide2.QtGui.QStandardItem.removeRow": ('int',),
- "PySide2.QtGui.QStandardItem.removeRows": ('int', 'int'),
- "PySide2.QtGui.QStandardItem.row": (),
- "PySide2.QtGui.QStandardItem.rowCount": (),
- "PySide2.QtGui.QStandardItem.setAccessibleDescription": ('str',),
- "PySide2.QtGui.QStandardItem.setAccessibleText": ('str',),
- "PySide2.QtGui.QStandardItem.setAutoTristate": ('bool',),
- "PySide2.QtGui.QStandardItem.setBackground": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QStandardItem.setCheckState": ('PySide2.QtCore.Qt.CheckState',),
- "PySide2.QtGui.QStandardItem.setCheckable": ('bool',),
- "PySide2.QtGui.QStandardItem.setChild": [('int', 'PySide2.QtGui.QStandardItem'), ('int', 'int', 'PySide2.QtGui.QStandardItem')],
- "PySide2.QtGui.QStandardItem.setColumnCount": ('int',),
- "PySide2.QtGui.QStandardItem.setData": ('typing.Any', 'int'),
- "PySide2.QtGui.QStandardItem.setDragEnabled": ('bool',),
- "PySide2.QtGui.QStandardItem.setDropEnabled": ('bool',),
- "PySide2.QtGui.QStandardItem.setEditable": ('bool',),
- "PySide2.QtGui.QStandardItem.setEnabled": ('bool',),
- "PySide2.QtGui.QStandardItem.setFlags": ('PySide2.QtCore.Qt.ItemFlags',),
- "PySide2.QtGui.QStandardItem.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtGui.QStandardItem.setForeground": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QStandardItem.setIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtGui.QStandardItem.setRowCount": ('int',),
- "PySide2.QtGui.QStandardItem.setSelectable": ('bool',),
- "PySide2.QtGui.QStandardItem.setSizeHint": ('PySide2.QtCore.QSize',),
- "PySide2.QtGui.QStandardItem.setStatusTip": ('str',),
- "PySide2.QtGui.QStandardItem.setText": ('str',),
- "PySide2.QtGui.QStandardItem.setTextAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtGui.QStandardItem.setToolTip": ('str',),
- "PySide2.QtGui.QStandardItem.setTristate": ('bool',),
- "PySide2.QtGui.QStandardItem.setUserTristate": ('bool',),
- "PySide2.QtGui.QStandardItem.setWhatsThis": ('str',),
- "PySide2.QtGui.QStandardItem.sizeHint": (),
- "PySide2.QtGui.QStandardItem.sortChildren": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtGui.QStandardItem.statusTip": (),
- "PySide2.QtGui.QStandardItem.takeChild": ('int', 'int'),
- "PySide2.QtGui.QStandardItem.takeColumn": ('int',),
- "PySide2.QtGui.QStandardItem.takeRow": ('int',),
- "PySide2.QtGui.QStandardItem.text": (),
- "PySide2.QtGui.QStandardItem.textAlignment": (),
- "PySide2.QtGui.QStandardItem.toolTip": (),
- "PySide2.QtGui.QStandardItem.type": (),
- "PySide2.QtGui.QStandardItem.whatsThis": (),
- "PySide2.QtGui.QStandardItem.write": ('PySide2.QtCore.QDataStream',),
-# class PySide2.QtGui.QStandardItemModel:
- "PySide2.QtGui.QStandardItemModel.__init__": [('PySide2.QtCore.QObject',), ('int', 'int', 'PySide2.QtCore.QObject')],
- "PySide2.QtGui.QStandardItemModel.appendColumn": ('typing.Sequence',),
- "PySide2.QtGui.QStandardItemModel.appendRow": [('PySide2.QtGui.QStandardItem',), ('typing.Sequence',)],
- "PySide2.QtGui.QStandardItemModel.clear": (),
- "PySide2.QtGui.QStandardItemModel.clearItemData": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtGui.QStandardItemModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtGui.QStandardItemModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtGui.QStandardItemModel.dropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtGui.QStandardItemModel.findItems": ('str', 'PySide2.QtCore.Qt.MatchFlags', 'int'),
- "PySide2.QtGui.QStandardItemModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtGui.QStandardItemModel.hasChildren": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtGui.QStandardItemModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtGui.QStandardItemModel.horizontalHeaderItem": ('int',),
- "PySide2.QtGui.QStandardItemModel.index": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtGui.QStandardItemModel.indexFromItem": ('PySide2.QtGui.QStandardItem',),
- "PySide2.QtGui.QStandardItemModel.insertColumn": [('int', 'PySide2.QtCore.QModelIndex'), ('int', 'typing.Sequence')],
- "PySide2.QtGui.QStandardItemModel.insertColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtGui.QStandardItemModel.insertRow": [('int', 'PySide2.QtCore.QModelIndex'), ('int', 'PySide2.QtGui.QStandardItem'), ('int', 'typing.Sequence')],
- "PySide2.QtGui.QStandardItemModel.insertRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtGui.QStandardItemModel.invisibleRootItem": (),
- "PySide2.QtGui.QStandardItemModel.item": ('int', 'int'),
- "PySide2.QtGui.QStandardItemModel.itemData": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtGui.QStandardItemModel.itemFromIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtGui.QStandardItemModel.itemPrototype": (),
- "PySide2.QtGui.QStandardItemModel.mimeData": ('typing.List',),
- "PySide2.QtGui.QStandardItemModel.mimeTypes": (),
- "PySide2.QtGui.QStandardItemModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtGui.QStandardItemModel.removeColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtGui.QStandardItemModel.removeRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtGui.QStandardItemModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtGui.QStandardItemModel.setColumnCount": ('int',),
- "PySide2.QtGui.QStandardItemModel.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
- "PySide2.QtGui.QStandardItemModel.setHeaderData": ('int', 'PySide2.QtCore.Qt.Orientation', 'typing.Any', 'int'),
- "PySide2.QtGui.QStandardItemModel.setHorizontalHeaderItem": ('int', 'PySide2.QtGui.QStandardItem'),
- "PySide2.QtGui.QStandardItemModel.setHorizontalHeaderLabels": ('typing.Sequence',),
- "PySide2.QtGui.QStandardItemModel.setItem": [('int', 'PySide2.QtGui.QStandardItem'), ('int', 'int', 'PySide2.QtGui.QStandardItem')],
- "PySide2.QtGui.QStandardItemModel.setItemData": ('PySide2.QtCore.QModelIndex', 'typing.Dict'),
- "PySide2.QtGui.QStandardItemModel.setItemPrototype": ('PySide2.QtGui.QStandardItem',),
- "PySide2.QtGui.QStandardItemModel.setItemRoleNames": ('typing.Dict',),
- "PySide2.QtGui.QStandardItemModel.setRowCount": ('int',),
- "PySide2.QtGui.QStandardItemModel.setSortRole": ('int',),
- "PySide2.QtGui.QStandardItemModel.setVerticalHeaderItem": ('int', 'PySide2.QtGui.QStandardItem'),
- "PySide2.QtGui.QStandardItemModel.setVerticalHeaderLabels": ('typing.Sequence',),
- "PySide2.QtGui.QStandardItemModel.sibling": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtGui.QStandardItemModel.sort": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtGui.QStandardItemModel.sortRole": (),
- "PySide2.QtGui.QStandardItemModel.supportedDropActions": (),
- "PySide2.QtGui.QStandardItemModel.takeColumn": ('int',),
- "PySide2.QtGui.QStandardItemModel.takeHorizontalHeaderItem": ('int',),
- "PySide2.QtGui.QStandardItemModel.takeItem": ('int', 'int'),
- "PySide2.QtGui.QStandardItemModel.takeRow": ('int',),
- "PySide2.QtGui.QStandardItemModel.takeVerticalHeaderItem": ('int',),
- "PySide2.QtGui.QStandardItemModel.verticalHeaderItem": ('int',),
-# class PySide2.QtGui.QStaticText:
-# class PySide2.QtGui.QStaticText.PerformanceHint:
- "PySide2.QtGui.QStaticText.__init__": [(), ('PySide2.QtGui.QStaticText',), ('str',)],
- "PySide2.QtGui.QStaticText.__copy__": (),
- "PySide2.QtGui.QStaticText.performanceHint": (),
- "PySide2.QtGui.QStaticText.prepare": ('PySide2.QtGui.QTransform', 'PySide2.QtGui.QFont'),
- "PySide2.QtGui.QStaticText.setPerformanceHint": ('PySide2.QtGui.QStaticText.PerformanceHint',),
- "PySide2.QtGui.QStaticText.setText": ('str',),
- "PySide2.QtGui.QStaticText.setTextFormat": ('PySide2.QtCore.Qt.TextFormat',),
- "PySide2.QtGui.QStaticText.setTextOption": ('PySide2.QtGui.QTextOption',),
- "PySide2.QtGui.QStaticText.setTextWidth": ('float',),
- "PySide2.QtGui.QStaticText.size": (),
- "PySide2.QtGui.QStaticText.swap": ('PySide2.QtGui.QStaticText',),
- "PySide2.QtGui.QStaticText.text": (),
- "PySide2.QtGui.QStaticText.textFormat": (),
- "PySide2.QtGui.QStaticText.textOption": (),
- "PySide2.QtGui.QStaticText.textWidth": (),
-# class PySide2.QtGui.QStatusTipEvent:
- "PySide2.QtGui.QStatusTipEvent.__init__": ('str',),
- "PySide2.QtGui.QStatusTipEvent.tip": (),
-# class PySide2.QtGui.QStyleHints:
- "PySide2.QtGui.QStyleHints.cursorFlashTime": (),
- "PySide2.QtGui.QStyleHints.fontSmoothingGamma": (),
- "PySide2.QtGui.QStyleHints.keyboardAutoRepeatRate": (),
- "PySide2.QtGui.QStyleHints.keyboardInputInterval": (),
- "PySide2.QtGui.QStyleHints.mouseDoubleClickDistance": (),
- "PySide2.QtGui.QStyleHints.mouseDoubleClickInterval": (),
- "PySide2.QtGui.QStyleHints.mousePressAndHoldInterval": (),
- "PySide2.QtGui.QStyleHints.mouseQuickSelectionThreshold": (),
- "PySide2.QtGui.QStyleHints.passwordMaskCharacter": (),
- "PySide2.QtGui.QStyleHints.passwordMaskDelay": (),
- "PySide2.QtGui.QStyleHints.setCursorFlashTime": ('int',),
- "PySide2.QtGui.QStyleHints.setFocusOnTouchRelease": (),
- "PySide2.QtGui.QStyleHints.setKeyboardInputInterval": ('int',),
- "PySide2.QtGui.QStyleHints.setMouseDoubleClickInterval": ('int',),
- "PySide2.QtGui.QStyleHints.setMousePressAndHoldInterval": ('int',),
- "PySide2.QtGui.QStyleHints.setMouseQuickSelectionThreshold": ('int',),
- "PySide2.QtGui.QStyleHints.setShowShortcutsInContextMenus": ('bool',),
- "PySide2.QtGui.QStyleHints.setStartDragDistance": ('int',),
- "PySide2.QtGui.QStyleHints.setStartDragTime": ('int',),
- "PySide2.QtGui.QStyleHints.setTabFocusBehavior": ('PySide2.QtCore.Qt.TabFocusBehavior',),
- "PySide2.QtGui.QStyleHints.setUseHoverEffects": ('bool',),
- "PySide2.QtGui.QStyleHints.setWheelScrollLines": ('int',),
- "PySide2.QtGui.QStyleHints.showIsFullScreen": (),
- "PySide2.QtGui.QStyleHints.showIsMaximized": (),
- "PySide2.QtGui.QStyleHints.showShortcutsInContextMenus": (),
- "PySide2.QtGui.QStyleHints.singleClickActivation": (),
- "PySide2.QtGui.QStyleHints.startDragDistance": (),
- "PySide2.QtGui.QStyleHints.startDragTime": (),
- "PySide2.QtGui.QStyleHints.startDragVelocity": (),
- "PySide2.QtGui.QStyleHints.tabFocusBehavior": (),
- "PySide2.QtGui.QStyleHints.touchDoubleTapDistance": (),
- "PySide2.QtGui.QStyleHints.useHoverEffects": (),
- "PySide2.QtGui.QStyleHints.useRtlExtensions": (),
- "PySide2.QtGui.QStyleHints.wheelScrollLines": (),
-# class PySide2.QtGui.QSurface:
-# class PySide2.QtGui.QSurface.SurfaceClass:
-# class PySide2.QtGui.QSurface.SurfaceType:
- "PySide2.QtGui.QSurface.__init__": ('PySide2.QtGui.QSurface.SurfaceClass',),
- "PySide2.QtGui.QSurface.format": (),
- "PySide2.QtGui.QSurface.size": (),
- "PySide2.QtGui.QSurface.supportsOpenGL": (),
- "PySide2.QtGui.QSurface.surfaceClass": (),
- "PySide2.QtGui.QSurface.surfaceHandle": (),
- "PySide2.QtGui.QSurface.surfaceType": (),
-# class PySide2.QtGui.QSurfaceFormat:
-# class PySide2.QtGui.QSurfaceFormat.ColorSpace:
-# class PySide2.QtGui.QSurfaceFormat.FormatOption:
-# class PySide2.QtGui.QSurfaceFormat.FormatOptions:
-# class PySide2.QtGui.QSurfaceFormat.OpenGLContextProfile:
-# class PySide2.QtGui.QSurfaceFormat.RenderableType:
-# class PySide2.QtGui.QSurfaceFormat.SwapBehavior:
- "PySide2.QtGui.QSurfaceFormat.__init__": [(), ('PySide2.QtGui.QSurfaceFormat',), ('PySide2.QtGui.QSurfaceFormat.FormatOptions',)],
- "PySide2.QtGui.QSurfaceFormat.__copy__": (),
- "PySide2.QtGui.QSurfaceFormat.alphaBufferSize": (),
- "PySide2.QtGui.QSurfaceFormat.blueBufferSize": (),
- "PySide2.QtGui.QSurfaceFormat.colorSpace": (),
- "PySide2.QtGui.QSurfaceFormat.defaultFormat": (),
- "PySide2.QtGui.QSurfaceFormat.depthBufferSize": (),
- "PySide2.QtGui.QSurfaceFormat.greenBufferSize": (),
- "PySide2.QtGui.QSurfaceFormat.hasAlpha": (),
- "PySide2.QtGui.QSurfaceFormat.majorVersion": (),
- "PySide2.QtGui.QSurfaceFormat.minorVersion": (),
- "PySide2.QtGui.QSurfaceFormat.options": (),
- "PySide2.QtGui.QSurfaceFormat.profile": (),
- "PySide2.QtGui.QSurfaceFormat.redBufferSize": (),
- "PySide2.QtGui.QSurfaceFormat.renderableType": (),
- "PySide2.QtGui.QSurfaceFormat.samples": (),
- "PySide2.QtGui.QSurfaceFormat.setAlphaBufferSize": ('int',),
- "PySide2.QtGui.QSurfaceFormat.setBlueBufferSize": ('int',),
- "PySide2.QtGui.QSurfaceFormat.setColorSpace": ('PySide2.QtGui.QSurfaceFormat.ColorSpace',),
- "PySide2.QtGui.QSurfaceFormat.setDefaultFormat": ('PySide2.QtGui.QSurfaceFormat',),
- "PySide2.QtGui.QSurfaceFormat.setDepthBufferSize": ('int',),
- "PySide2.QtGui.QSurfaceFormat.setGreenBufferSize": ('int',),
- "PySide2.QtGui.QSurfaceFormat.setMajorVersion": ('int',),
- "PySide2.QtGui.QSurfaceFormat.setMinorVersion": ('int',),
- "PySide2.QtGui.QSurfaceFormat.setOption": [('PySide2.QtGui.QSurfaceFormat.FormatOption', 'bool'), ('PySide2.QtGui.QSurfaceFormat.FormatOptions',)],
- "PySide2.QtGui.QSurfaceFormat.setOptions": ('PySide2.QtGui.QSurfaceFormat.FormatOptions',),
- "PySide2.QtGui.QSurfaceFormat.setProfile": ('PySide2.QtGui.QSurfaceFormat.OpenGLContextProfile',),
- "PySide2.QtGui.QSurfaceFormat.setRedBufferSize": ('int',),
- "PySide2.QtGui.QSurfaceFormat.setRenderableType": ('PySide2.QtGui.QSurfaceFormat.RenderableType',),
- "PySide2.QtGui.QSurfaceFormat.setSamples": ('int',),
- "PySide2.QtGui.QSurfaceFormat.setStencilBufferSize": ('int',),
- "PySide2.QtGui.QSurfaceFormat.setStereo": ('bool',),
- "PySide2.QtGui.QSurfaceFormat.setSwapBehavior": ('PySide2.QtGui.QSurfaceFormat.SwapBehavior',),
- "PySide2.QtGui.QSurfaceFormat.setSwapInterval": ('int',),
- "PySide2.QtGui.QSurfaceFormat.setVersion": ('int', 'int'),
- "PySide2.QtGui.QSurfaceFormat.stencilBufferSize": (),
- "PySide2.QtGui.QSurfaceFormat.stereo": (),
- "PySide2.QtGui.QSurfaceFormat.swapBehavior": (),
- "PySide2.QtGui.QSurfaceFormat.swapInterval": (),
- "PySide2.QtGui.QSurfaceFormat.testOption": [('PySide2.QtGui.QSurfaceFormat.FormatOption',), ('PySide2.QtGui.QSurfaceFormat.FormatOptions',)],
- "PySide2.QtGui.QSurfaceFormat.version": (),
-# class PySide2.QtGui.QSyntaxHighlighter:
- "PySide2.QtGui.QSyntaxHighlighter.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtGui.QTextDocument',)],
- "PySide2.QtGui.QSyntaxHighlighter.currentBlock": (),
- "PySide2.QtGui.QSyntaxHighlighter.currentBlockState": (),
- "PySide2.QtGui.QSyntaxHighlighter.currentBlockUserData": (),
- "PySide2.QtGui.QSyntaxHighlighter.document": (),
- "PySide2.QtGui.QSyntaxHighlighter.format": ('int',),
- "PySide2.QtGui.QSyntaxHighlighter.highlightBlock": ('str',),
- "PySide2.QtGui.QSyntaxHighlighter.previousBlockState": (),
- "PySide2.QtGui.QSyntaxHighlighter.rehighlight": (),
- "PySide2.QtGui.QSyntaxHighlighter.rehighlightBlock": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtGui.QSyntaxHighlighter.setCurrentBlockState": ('int',),
- "PySide2.QtGui.QSyntaxHighlighter.setCurrentBlockUserData": ('PySide2.QtGui.QTextBlockUserData',),
- "PySide2.QtGui.QSyntaxHighlighter.setDocument": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtGui.QSyntaxHighlighter.setFormat": [('int', 'int', 'PySide2.QtGui.QColor'), ('int', 'int', 'PySide2.QtGui.QFont'), ('int', 'int', 'PySide2.QtGui.QTextCharFormat')],
-# class PySide2.QtGui.QTabletEvent:
-# class PySide2.QtGui.QTabletEvent.PointerType:
-# class PySide2.QtGui.QTabletEvent.TabletDevice:
- "PySide2.QtGui.QTabletEvent.__init__": [('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'int', 'int', 'float', 'int', 'int', 'float', 'float', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'int', 'int', 'float', 'int', 'int', 'float', 'float', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.MouseButtons')],
- "PySide2.QtGui.QTabletEvent.button": (),
- "PySide2.QtGui.QTabletEvent.buttons": (),
- "PySide2.QtGui.QTabletEvent.device": (),
- "PySide2.QtGui.QTabletEvent.globalPos": (),
- "PySide2.QtGui.QTabletEvent.globalPosF": (),
- "PySide2.QtGui.QTabletEvent.globalX": (),
- "PySide2.QtGui.QTabletEvent.global""Y": (),
- "PySide2.QtGui.QTabletEvent.hiResGlobalX": (),
- "PySide2.QtGui.QTabletEvent.hiResGlobal""Y": (),
- "PySide2.QtGui.QTabletEvent.pointerType": (),
- "PySide2.QtGui.QTabletEvent.pos": (),
- "PySide2.QtGui.QTabletEvent.posF": (),
- "PySide2.QtGui.QTabletEvent.pressure": (),
- "PySide2.QtGui.QTabletEvent.rotation": (),
- "PySide2.QtGui.QTabletEvent.tangentialPressure": (),
- "PySide2.QtGui.QTabletEvent.uniqueId": (),
- "PySide2.QtGui.QTabletEvent.x": (),
- "PySide2.QtGui.QTabletEvent.xTilt": (),
- "PySide2.QtGui.QTabletEvent.y": (),
- "PySide2.QtGui.QTabletEvent.yTilt": (),
- "PySide2.QtGui.QTabletEvent.z": (),
-# class PySide2.QtGui.QTextBlock:
-# class PySide2.QtGui.QTextBlock.iterator:
- "PySide2.QtGui.QTextBlock.iterator.__init__": [(), ('PySide2.QtGui.QTextBlock.iterator',)],
- "PySide2.QtGui.QTextBlock.iterator.__copy__": (),
- "PySide2.QtGui.QTextBlock.iterator.__iadd__": ('int',),
- "PySide2.QtGui.QTextBlock.iterator.__isub__": ('int',),
- "PySide2.QtGui.QTextBlock.iterator.__iter__": (),
- "PySide2.QtGui.QTextBlock.iterator.atEnd": (),
- "PySide2.QtGui.QTextBlock.iterator.fragment": (),
- "PySide2.QtGui.QTextBlock.__init__": [(), ('PySide2.QtGui.QTextBlock',)],
- "PySide2.QtGui.QTextBlock.__copy__": (),
- "PySide2.QtGui.QTextBlock.__iter__": (),
- "PySide2.QtGui.QTextBlock.begin": (),
- "PySide2.QtGui.QTextBlock.blockFormat": (),
- "PySide2.QtGui.QTextBlock.blockFormatIndex": (),
- "PySide2.QtGui.QTextBlock.blockNumber": (),
- "PySide2.QtGui.QTextBlock.charFormat": (),
- "PySide2.QtGui.QTextBlock.charFormatIndex": (),
- "PySide2.QtGui.QTextBlock.clearLayout": (),
- "PySide2.QtGui.QTextBlock.contains": ('int',),
- "PySide2.QtGui.QTextBlock.document": (),
- "PySide2.QtGui.QTextBlock.end": (),
- "PySide2.QtGui.QTextBlock.firstLineNumber": (),
- "PySide2.QtGui.QTextBlock.fragmentIndex": (),
- "PySide2.QtGui.QTextBlock.isValid": (),
- "PySide2.QtGui.QTextBlock.isVisible": (),
- "PySide2.QtGui.QTextBlock.layout": (),
- "PySide2.QtGui.QTextBlock.length": (),
- "PySide2.QtGui.QTextBlock.lineCount": (),
- "PySide2.QtGui.QTextBlock.position": (),
- "PySide2.QtGui.QTextBlock.previous": (),
- "PySide2.QtGui.QTextBlock.revision": (),
- "PySide2.QtGui.QTextBlock.setLineCount": ('int',),
- "PySide2.QtGui.QTextBlock.setRevision": ('int',),
- "PySide2.QtGui.QTextBlock.setUserData": ('PySide2.QtGui.QTextBlockUserData',),
- "PySide2.QtGui.QTextBlock.setUserState": ('int',),
- "PySide2.QtGui.QTextBlock.setVisible": ('bool',),
- "PySide2.QtGui.QTextBlock.text": (),
- "PySide2.QtGui.QTextBlock.textDirection": (),
- "PySide2.QtGui.QTextBlock.textFormats": (),
- "PySide2.QtGui.QTextBlock.textList": (),
- "PySide2.QtGui.QTextBlock.userData": (),
- "PySide2.QtGui.QTextBlock.userState": (),
-# class PySide2.QtGui.QTextBlockFormat:
-# class PySide2.QtGui.QTextBlockFormat.LineHeightTypes:
-# class PySide2.QtGui.QTextBlockFormat.MarkerType:
- "PySide2.QtGui.QTextBlockFormat.__init__": [(), ('PySide2.QtGui.QTextBlockFormat',), ('PySide2.QtGui.QTextFormat',)],
- "PySide2.QtGui.QTextBlockFormat.__copy__": (),
- "PySide2.QtGui.QTextBlockFormat.alignment": (),
- "PySide2.QtGui.QTextBlockFormat.bottomMargin": (),
- "PySide2.QtGui.QTextBlockFormat.headingLevel": (),
- "PySide2.QtGui.QTextBlockFormat.indent": (),
- "PySide2.QtGui.QTextBlockFormat.isValid": (),
- "PySide2.QtGui.QTextBlockFormat.leftMargin": (),
- "PySide2.QtGui.QTextBlockFormat.lineHeight": [(), ('float', 'float')],
- "PySide2.QtGui.QTextBlockFormat.lineHeightType": (),
- "PySide2.QtGui.QTextBlockFormat.marker": (),
- "PySide2.QtGui.QTextBlockFormat.nonBreakableLines": (),
- "PySide2.QtGui.QTextBlockFormat.pageBreakPolicy": (),
- "PySide2.QtGui.QTextBlockFormat.rightMargin": (),
- "PySide2.QtGui.QTextBlockFormat.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtGui.QTextBlockFormat.setBottomMargin": ('float',),
- "PySide2.QtGui.QTextBlockFormat.setHeadingLevel": ('int',),
- "PySide2.QtGui.QTextBlockFormat.setIndent": ('int',),
- "PySide2.QtGui.QTextBlockFormat.setLeftMargin": ('float',),
- "PySide2.QtGui.QTextBlockFormat.setLineHeight": ('float', 'int'),
- "PySide2.QtGui.QTextBlockFormat.setMarker": ('PySide2.QtGui.QTextBlockFormat.MarkerType',),
- "PySide2.QtGui.QTextBlockFormat.setNonBreakableLines": ('bool',),
- "PySide2.QtGui.QTextBlockFormat.setPageBreakPolicy": ('PySide2.QtGui.QTextFormat.PageBreakFlags',),
- "PySide2.QtGui.QTextBlockFormat.setRightMargin": ('float',),
- "PySide2.QtGui.QTextBlockFormat.setTabPositions": ('typing.Sequence',),
- "PySide2.QtGui.QTextBlockFormat.setTextIndent": ('float',),
- "PySide2.QtGui.QTextBlockFormat.setTopMargin": ('float',),
- "PySide2.QtGui.QTextBlockFormat.tabPositions": (),
- "PySide2.QtGui.QTextBlockFormat.textIndent": (),
- "PySide2.QtGui.QTextBlockFormat.topMargin": (),
-# class PySide2.QtGui.QTextBlockGroup:
- "PySide2.QtGui.QTextBlockGroup.__init__": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtGui.QTextBlockGroup.blockFormatChanged": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtGui.QTextBlockGroup.blockInserted": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtGui.QTextBlockGroup.blockList": (),
- "PySide2.QtGui.QTextBlockGroup.blockRemoved": ('PySide2.QtGui.QTextBlock',),
-# class PySide2.QtGui.QTextBlockUserData:
- "PySide2.QtGui.QTextBlockUserData.__init__": (),
-# class PySide2.QtGui.QTextCharFormat:
-# class PySide2.QtGui.QTextCharFormat.FontPropertiesInheritanceBehavior:
-# class PySide2.QtGui.QTextCharFormat.UnderlineStyle:
-# class PySide2.QtGui.QTextCharFormat.VerticalAlignment:
- "PySide2.QtGui.QTextCharFormat.__init__": [(), ('PySide2.QtGui.QTextCharFormat',), ('PySide2.QtGui.QTextFormat',)],
- "PySide2.QtGui.QTextCharFormat.__copy__": (),
- "PySide2.QtGui.QTextCharFormat.anchorHref": (),
- "PySide2.QtGui.QTextCharFormat.anchorName": (),
- "PySide2.QtGui.QTextCharFormat.anchorNames": (),
- "PySide2.QtGui.QTextCharFormat.font": (),
- "PySide2.QtGui.QTextCharFormat.fontCapitalization": (),
- "PySide2.QtGui.QTextCharFormat.fontFamilies": (),
- "PySide2.QtGui.QTextCharFormat.fontFamily": (),
- "PySide2.QtGui.QTextCharFormat.fontFixedPitch": (),
- "PySide2.QtGui.QTextCharFormat.fontHintingPreference": (),
- "PySide2.QtGui.QTextCharFormat.fontItalic": (),
- "PySide2.QtGui.QTextCharFormat.fontKerning": (),
- "PySide2.QtGui.QTextCharFormat.fontLetterSpacing": (),
- "PySide2.QtGui.QTextCharFormat.fontLetterSpacingType": (),
- "PySide2.QtGui.QTextCharFormat.fontOverline": (),
- "PySide2.QtGui.QTextCharFormat.fontPointSize": (),
- "PySide2.QtGui.QTextCharFormat.fontStretch": (),
- "PySide2.QtGui.QTextCharFormat.fontStrikeOut": (),
- "PySide2.QtGui.QTextCharFormat.fontStyleHint": (),
- "PySide2.QtGui.QTextCharFormat.fontStyleName": (),
- "PySide2.QtGui.QTextCharFormat.fontStyleStrategy": (),
- "PySide2.QtGui.QTextCharFormat.fontUnderline": (),
- "PySide2.QtGui.QTextCharFormat.fontWeight": (),
- "PySide2.QtGui.QTextCharFormat.fontWordSpacing": (),
- "PySide2.QtGui.QTextCharFormat.isAnchor": (),
- "PySide2.QtGui.QTextCharFormat.isValid": (),
- "PySide2.QtGui.QTextCharFormat.setAnchor": ('bool',),
- "PySide2.QtGui.QTextCharFormat.setAnchorHref": ('str',),
- "PySide2.QtGui.QTextCharFormat.setAnchorName": ('str',),
- "PySide2.QtGui.QTextCharFormat.setAnchorNames": ('typing.Sequence',),
- "PySide2.QtGui.QTextCharFormat.setFont": [('PySide2.QtGui.QFont',), ('PySide2.QtGui.QFont', 'PySide2.QtGui.QTextCharFormat.FontPropertiesInheritanceBehavior')],
- "PySide2.QtGui.QTextCharFormat.setFontCapitalization": ('PySide2.QtGui.QFont.Capitalization',),
- "PySide2.QtGui.QTextCharFormat.setFontFamilies": ('typing.Sequence',),
- "PySide2.QtGui.QTextCharFormat.setFontFamily": ('str',),
- "PySide2.QtGui.QTextCharFormat.setFontFixedPitch": ('bool',),
- "PySide2.QtGui.QTextCharFormat.setFontHintingPreference": ('PySide2.QtGui.QFont.HintingPreference',),
- "PySide2.QtGui.QTextCharFormat.setFontItalic": ('bool',),
- "PySide2.QtGui.QTextCharFormat.setFontKerning": ('bool',),
- "PySide2.QtGui.QTextCharFormat.setFontLetterSpacing": ('float',),
- "PySide2.QtGui.QTextCharFormat.setFontLetterSpacingType": ('PySide2.QtGui.QFont.SpacingType',),
- "PySide2.QtGui.QTextCharFormat.setFontOverline": ('bool',),
- "PySide2.QtGui.QTextCharFormat.setFontPointSize": ('float',),
- "PySide2.QtGui.QTextCharFormat.setFontStretch": ('int',),
- "PySide2.QtGui.QTextCharFormat.setFontStrikeOut": ('bool',),
- "PySide2.QtGui.QTextCharFormat.setFontStyleHint": ('PySide2.QtGui.QFont.StyleHint', 'PySide2.QtGui.QFont.StyleStrategy'),
- "PySide2.QtGui.QTextCharFormat.setFontStyleName": ('str',),
- "PySide2.QtGui.QTextCharFormat.setFontStyleStrategy": ('PySide2.QtGui.QFont.StyleStrategy',),
- "PySide2.QtGui.QTextCharFormat.setFontUnderline": ('bool',),
- "PySide2.QtGui.QTextCharFormat.setFontWeight": ('int',),
- "PySide2.QtGui.QTextCharFormat.setFontWordSpacing": ('float',),
- "PySide2.QtGui.QTextCharFormat.setTableCellColumnSpan": ('int',),
- "PySide2.QtGui.QTextCharFormat.setTableCellRowSpan": ('int',),
- "PySide2.QtGui.QTextCharFormat.setTextOutline": ('PySide2.QtGui.QPen',),
- "PySide2.QtGui.QTextCharFormat.setToolTip": ('str',),
- "PySide2.QtGui.QTextCharFormat.setUnderlineColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtGui.QTextCharFormat.setUnderlineStyle": ('PySide2.QtGui.QTextCharFormat.UnderlineStyle',),
- "PySide2.QtGui.QTextCharFormat.setVerticalAlignment": ('PySide2.QtGui.QTextCharFormat.VerticalAlignment',),
- "PySide2.QtGui.QTextCharFormat.tableCellColumnSpan": (),
- "PySide2.QtGui.QTextCharFormat.tableCellRowSpan": (),
- "PySide2.QtGui.QTextCharFormat.textOutline": (),
- "PySide2.QtGui.QTextCharFormat.toolTip": (),
- "PySide2.QtGui.QTextCharFormat.underlineColor": (),
- "PySide2.QtGui.QTextCharFormat.underlineStyle": (),
- "PySide2.QtGui.QTextCharFormat.verticalAlignment": (),
-# class PySide2.QtGui.QTextCursor:
-# class PySide2.QtGui.QTextCursor.MoveMode:
-# class PySide2.QtGui.QTextCursor.MoveOperation:
-# class PySide2.QtGui.QTextCursor.SelectionType:
- "PySide2.QtGui.QTextCursor.__init__": [(), ('PySide2.QtGui.QTextBlock',), ('PySide2.QtGui.QTextCursor',), ('PySide2.QtGui.QTextDocument',), ('PySide2.QtGui.QTextFrame',)],
- "PySide2.QtGui.QTextCursor.__copy__": (),
- "PySide2.QtGui.QTextCursor.anchor": (),
- "PySide2.QtGui.QTextCursor.atBlockEnd": (),
- "PySide2.QtGui.QTextCursor.atBlockStart": (),
- "PySide2.QtGui.QTextCursor.atEnd": (),
- "PySide2.QtGui.QTextCursor.atStart": (),
- "PySide2.QtGui.QTextCursor.beginEditBlock": (),
- "PySide2.QtGui.QTextCursor.block": (),
- "PySide2.QtGui.QTextCursor.blockCharFormat": (),
- "PySide2.QtGui.QTextCursor.blockFormat": (),
- "PySide2.QtGui.QTextCursor.blockNumber": (),
- "PySide2.QtGui.QTextCursor.charFormat": (),
- "PySide2.QtGui.QTextCursor.clearSelection": (),
- "PySide2.QtGui.QTextCursor.columnNumber": (),
- "PySide2.QtGui.QTextCursor.createList": [('PySide2.QtGui.QTextListFormat',), ('PySide2.QtGui.QTextListFormat.Style',)],
- "PySide2.QtGui.QTextCursor.currentFrame": (),
- "PySide2.QtGui.QTextCursor.currentList": (),
- "PySide2.QtGui.QTextCursor.currentTable": (),
- "PySide2.QtGui.QTextCursor.deleteChar": (),
- "PySide2.QtGui.QTextCursor.deletePreviousChar": (),
- "PySide2.QtGui.QTextCursor.document": (),
- "PySide2.QtGui.QTextCursor.endEditBlock": (),
- "PySide2.QtGui.QTextCursor.hasComplexSelection": (),
- "PySide2.QtGui.QTextCursor.hasSelection": (),
- "PySide2.QtGui.QTextCursor.insertBlock": [(), ('PySide2.QtGui.QTextBlockFormat',), ('PySide2.QtGui.QTextBlockFormat', 'PySide2.QtGui.QTextCharFormat')],
- "PySide2.QtGui.QTextCursor.insertFragment": ('PySide2.QtGui.QTextDocumentFragment',),
- "PySide2.QtGui.QTextCursor.insertFrame": ('PySide2.QtGui.QTextFrameFormat',),
- "PySide2.QtGui.QTextCursor.insertHtml": ('str',),
- "PySide2.QtGui.QTextCursor.insertImage": [('PySide2.QtGui.QImage', 'str'), ('PySide2.QtGui.QTextImageFormat',), ('PySide2.QtGui.QTextImageFormat', 'PySide2.QtGui.QTextFrameFormat.Position'), ('str',)],
- "PySide2.QtGui.QTextCursor.insertList": [('PySide2.QtGui.QTextListFormat',), ('PySide2.QtGui.QTextListFormat.Style',)],
- "PySide2.QtGui.QTextCursor.insertTable": [('int', 'int'), ('int', 'int', 'PySide2.QtGui.QTextTableFormat')],
- "PySide2.QtGui.QTextCursor.insertText": [('str',), ('str', 'PySide2.QtGui.QTextCharFormat')],
- "PySide2.QtGui.QTextCursor.isCopyOf": ('PySide2.QtGui.QTextCursor',),
- "PySide2.QtGui.QTextCursor.isNull": (),
- "PySide2.QtGui.QTextCursor.joinPreviousEditBlock": (),
- "PySide2.QtGui.QTextCursor.keepPositionOnInsert": (),
- "PySide2.QtGui.QTextCursor.mergeBlockCharFormat": ('PySide2.QtGui.QTextCharFormat',),
- "PySide2.QtGui.QTextCursor.mergeBlockFormat": ('PySide2.QtGui.QTextBlockFormat',),
- "PySide2.QtGui.QTextCursor.mergeCharFormat": ('PySide2.QtGui.QTextCharFormat',),
- "PySide2.QtGui.QTextCursor.movePosition": ('PySide2.QtGui.QTextCursor.MoveOperation', 'PySide2.QtGui.QTextCursor.MoveMode', 'int'),
- "PySide2.QtGui.QTextCursor.position": (),
- "PySide2.QtGui.QTextCursor.positionInBlock": (),
- "PySide2.QtGui.QTextCursor.removeSelectedText": (),
- "PySide2.QtGui.QTextCursor.select": ('PySide2.QtGui.QTextCursor.SelectionType',),
- "PySide2.QtGui.QTextCursor.selectedTableCells": (),
- "PySide2.QtGui.QTextCursor.selectedText": (),
- "PySide2.QtGui.QTextCursor.selection": (),
- "PySide2.QtGui.QTextCursor.selectionEnd": (),
- "PySide2.QtGui.QTextCursor.selectionStart": (),
- "PySide2.QtGui.QTextCursor.setBlockCharFormat": ('PySide2.QtGui.QTextCharFormat',),
- "PySide2.QtGui.QTextCursor.setBlockFormat": ('PySide2.QtGui.QTextBlockFormat',),
- "PySide2.QtGui.QTextCursor.setCharFormat": ('PySide2.QtGui.QTextCharFormat',),
- "PySide2.QtGui.QTextCursor.setKeepPositionOnInsert": ('bool',),
- "PySide2.QtGui.QTextCursor.setPosition": ('int', 'PySide2.QtGui.QTextCursor.MoveMode'),
- "PySide2.QtGui.QTextCursor.setVerticalMovementX": ('int',),
- "PySide2.QtGui.QTextCursor.setVisualNavigation": ('bool',),
- "PySide2.QtGui.QTextCursor.swap": ('PySide2.QtGui.QTextCursor',),
- "PySide2.QtGui.QTextCursor.verticalMovementX": (),
- "PySide2.QtGui.QTextCursor.visualNavigation": (),
-# class PySide2.QtGui.QTextDocument:
-# class PySide2.QtGui.QTextDocument.FindFlag:
-# class PySide2.QtGui.QTextDocument.FindFlags:
-# class PySide2.QtGui.QTextDocument.MarkdownFeature:
-# class PySide2.QtGui.QTextDocument.MarkdownFeatures:
-# class PySide2.QtGui.QTextDocument.MetaInformation:
-# class PySide2.QtGui.QTextDocument.ResourceType:
-# class PySide2.QtGui.QTextDocument.Stacks:
- "PySide2.QtGui.QTextDocument.__init__": [('PySide2.QtCore.QObject',), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtGui.QTextDocument.addResource": ('int', 'PySide2.QtCore.QUrl', 'typing.Any'),
- "PySide2.QtGui.QTextDocument.adjustSize": (),
- "PySide2.QtGui.QTextDocument.allFormats": (),
- "PySide2.QtGui.QTextDocument.availableRedoSteps": (),
- "PySide2.QtGui.QTextDocument.availableUndoSteps": (),
- "PySide2.QtGui.QTextDocument.baseUrl": (),
- "PySide2.QtGui.QTextDocument.begin": (),
- "PySide2.QtGui.QTextDocument.blockCount": (),
- "PySide2.QtGui.QTextDocument.characterAt": ('int',),
- "PySide2.QtGui.QTextDocument.characterCount": (),
- "PySide2.QtGui.QTextDocument.clear": (),
- "PySide2.QtGui.QTextDocument.clearUndoRedoStacks": ('PySide2.QtGui.QTextDocument.Stacks',),
- "PySide2.QtGui.QTextDocument.clone": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QTextDocument.createObject": ('PySide2.QtGui.QTextFormat',),
- "PySide2.QtGui.QTextDocument.defaultCursorMoveStyle": (),
- "PySide2.QtGui.QTextDocument.defaultFont": (),
- "PySide2.QtGui.QTextDocument.defaultStyleSheet": (),
- "PySide2.QtGui.QTextDocument.defaultTextOption": (),
- "PySide2.QtGui.QTextDocument.documentLayout": (),
- "PySide2.QtGui.QTextDocument.documentMargin": (),
- "PySide2.QtGui.QTextDocument.drawContents": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF'),
- "PySide2.QtGui.QTextDocument.end": (),
- "PySide2.QtGui.QTextDocument.find": [('PySide2.QtCore.QRegExp', 'PySide2.QtGui.QTextCursor', 'PySide2.QtGui.QTextDocument.FindFlags'), ('PySide2.QtCore.QRegExp', 'int', 'PySide2.QtGui.QTextDocument.FindFlags'), ('PySide2.QtCore.QRegularExpression', 'PySide2.QtGui.QTextCursor', 'PySide2.QtGui.QTextDocument.FindFlags'), ('PySide2.QtCore.QRegularExpression', 'int', 'PySide2.QtGui.QTextDocument.FindFlags'), ('str', 'PySide2.QtGui.QTextCursor', 'PySide2.QtGui.QTextDocument.FindFlags'), ('str', 'int', 'PySide2.QtGui.QTextDocument.FindFlags')],
- "PySide2.QtGui.QTextDocument.findBlock": ('int',),
- "PySide2.QtGui.QTextDocument.findBlockByLineNumber": ('int',),
- "PySide2.QtGui.QTextDocument.findBlockByNumber": ('int',),
- "PySide2.QtGui.QTextDocument.firstBlock": (),
- "PySide2.QtGui.QTextDocument.frameAt": ('int',),
- "PySide2.QtGui.QTextDocument.idealWidth": (),
- "PySide2.QtGui.QTextDocument.indentWidth": (),
- "PySide2.QtGui.QTextDocument.isEmpty": (),
- "PySide2.QtGui.QTextDocument.isModified": (),
- "PySide2.QtGui.QTextDocument.isRedoAvailable": (),
- "PySide2.QtGui.QTextDocument.isUndoAvailable": (),
- "PySide2.QtGui.QTextDocument.isUndoRedoEnabled": (),
- "PySide2.QtGui.QTextDocument.lastBlock": (),
- "PySide2.QtGui.QTextDocument.lineCount": (),
- "PySide2.QtGui.QTextDocument.loadResource": ('int', 'PySide2.QtCore.QUrl'),
- "PySide2.QtGui.QTextDocument.markContentsDirty": ('int', 'int'),
- "PySide2.QtGui.QTextDocument.maximumBlockCount": (),
- "PySide2.QtGui.QTextDocument.metaInformation": ('PySide2.QtGui.QTextDocument.MetaInformation',),
- "PySide2.QtGui.QTextDocument.object": ('int',),
- "PySide2.QtGui.QTextDocument.objectForFormat": ('PySide2.QtGui.QTextFormat',),
- "PySide2.QtGui.QTextDocument.pageCount": (),
- "PySide2.QtGui.QTextDocument.pageSize": (),
- "PySide2.QtGui.QTextDocument.print_": ('PySide2.QtGui.QPagedPaintDevice',),
- "PySide2.QtGui.QTextDocument.redo": [(), ('PySide2.QtGui.QTextCursor',)],
- "PySide2.QtGui.QTextDocument.resource": ('int', 'PySide2.QtCore.QUrl'),
- "PySide2.QtGui.QTextDocument.revision": (),
- "PySide2.QtGui.QTextDocument.rootFrame": (),
- "PySide2.QtGui.QTextDocument.setBaseUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtGui.QTextDocument.setDefaultCursorMoveStyle": ('PySide2.QtCore.Qt.CursorMoveStyle',),
- "PySide2.QtGui.QTextDocument.setDefaultFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtGui.QTextDocument.setDefaultStyleSheet": ('str',),
- "PySide2.QtGui.QTextDocument.setDefaultTextOption": ('PySide2.QtGui.QTextOption',),
- "PySide2.QtGui.QTextDocument.setDocumentLayout": ('PySide2.QtGui.QAbstractTextDocumentLayout',),
- "PySide2.QtGui.QTextDocument.setDocumentMargin": ('float',),
- "PySide2.QtGui.QTextDocument.setHtml": ('str',),
- "PySide2.QtGui.QTextDocument.setIndentWidth": ('float',),
- "PySide2.QtGui.QTextDocument.setMarkdown": ('str', 'PySide2.QtGui.QTextDocument.MarkdownFeatures'),
- "PySide2.QtGui.QTextDocument.setMaximumBlockCount": ('int',),
- "PySide2.QtGui.QTextDocument.setMetaInformation": ('PySide2.QtGui.QTextDocument.MetaInformation', 'str'),
- "PySide2.QtGui.QTextDocument.setModified": ('bool',),
- "PySide2.QtGui.QTextDocument.setPageSize": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtGui.QTextDocument.setPlainText": ('str',),
- "PySide2.QtGui.QTextDocument.setTextWidth": ('float',),
- "PySide2.QtGui.QTextDocument.setUndoRedoEnabled": ('bool',),
- "PySide2.QtGui.QTextDocument.setUseDesignMetrics": ('bool',),
- "PySide2.QtGui.QTextDocument.size": (),
- "PySide2.QtGui.QTextDocument.textWidth": (),
- "PySide2.QtGui.QTextDocument.toHtml": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QTextDocument.toMarkdown": ('PySide2.QtGui.QTextDocument.MarkdownFeatures',),
- "PySide2.QtGui.QTextDocument.toPlainText": (),
- "PySide2.QtGui.QTextDocument.toRawText": (),
- "PySide2.QtGui.QTextDocument.undo": [(), ('PySide2.QtGui.QTextCursor',)],
- "PySide2.QtGui.QTextDocument.useDesignMetrics": (),
-# class PySide2.QtGui.QTextDocumentFragment:
- "PySide2.QtGui.QTextDocumentFragment.__init__": [(), ('PySide2.QtGui.QTextCursor',), ('PySide2.QtGui.QTextDocument',), ('PySide2.QtGui.QTextDocumentFragment',)],
- "PySide2.QtGui.QTextDocumentFragment.__copy__": (),
- "PySide2.QtGui.QTextDocumentFragment.fromHtml": [('str',), ('str', 'PySide2.QtGui.QTextDocument')],
- "PySide2.QtGui.QTextDocumentFragment.fromPlainText": ('str',),
- "PySide2.QtGui.QTextDocumentFragment.isEmpty": (),
- "PySide2.QtGui.QTextDocumentFragment.toHtml": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QTextDocumentFragment.toPlainText": (),
-# class PySide2.QtGui.QTextDocumentWriter:
- "PySide2.QtGui.QTextDocumentWriter.__init__": [(), ('PySide2.QtCore.QIODevice', 'PySide2.QtCore.QByteArray'), ('str', 'PySide2.QtCore.QByteArray')],
- "PySide2.QtGui.QTextDocumentWriter.codec": (),
- "PySide2.QtGui.QTextDocumentWriter.device": (),
- "PySide2.QtGui.QTextDocumentWriter.fileName": (),
- "PySide2.QtGui.QTextDocumentWriter.format": (),
- "PySide2.QtGui.QTextDocumentWriter.setCodec": ('PySide2.QtCore.QTextCodec',),
- "PySide2.QtGui.QTextDocumentWriter.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtGui.QTextDocumentWriter.setFileName": ('str',),
- "PySide2.QtGui.QTextDocumentWriter.setFormat": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QTextDocumentWriter.supportedDocumentFormats": (),
- "PySide2.QtGui.QTextDocumentWriter.write": [('PySide2.QtGui.QTextDocument',), ('PySide2.QtGui.QTextDocumentFragment',)],
-# class PySide2.QtGui.QTextFormat:
-# class PySide2.QtGui.QTextFormat.FormatType:
-# class PySide2.QtGui.QTextFormat.ObjectTypes:
-# class PySide2.QtGui.QTextFormat.PageBreakFlag:
-# class PySide2.QtGui.QTextFormat.PageBreakFlags:
-# class PySide2.QtGui.QTextFormat.Property:
- "PySide2.QtGui.QTextFormat.__init__": [(), ('PySide2.QtGui.QTextFormat',), ('int',)],
- "PySide2.QtGui.QTextFormat.__copy__": (),
- "PySide2.QtGui.QTextFormat.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QTextFormat.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QTextFormat.background": (),
- "PySide2.QtGui.QTextFormat.boolProperty": ('int',),
- "PySide2.QtGui.QTextFormat.brushProperty": ('int',),
- "PySide2.QtGui.QTextFormat.clearBackground": (),
- "PySide2.QtGui.QTextFormat.clearForeground": (),
- "PySide2.QtGui.QTextFormat.clearProperty": ('int',),
- "PySide2.QtGui.QTextFormat.colorProperty": ('int',),
- "PySide2.QtGui.QTextFormat.doubleProperty": ('int',),
- "PySide2.QtGui.QTextFormat.foreground": (),
- "PySide2.QtGui.QTextFormat.hasProperty": ('int',),
- "PySide2.QtGui.QTextFormat.intProperty": ('int',),
- "PySide2.QtGui.QTextFormat.isBlockFormat": (),
- "PySide2.QtGui.QTextFormat.isCharFormat": (),
- "PySide2.QtGui.QTextFormat.isEmpty": (),
- "PySide2.QtGui.QTextFormat.isFrameFormat": (),
- "PySide2.QtGui.QTextFormat.isImageFormat": (),
- "PySide2.QtGui.QTextFormat.isListFormat": (),
- "PySide2.QtGui.QTextFormat.isTableCellFormat": (),
- "PySide2.QtGui.QTextFormat.isTableFormat": (),
- "PySide2.QtGui.QTextFormat.isValid": (),
- "PySide2.QtGui.QTextFormat.layoutDirection": (),
- "PySide2.QtGui.QTextFormat.lengthProperty": ('int',),
- "PySide2.QtGui.QTextFormat.lengthVectorProperty": ('int',),
- "PySide2.QtGui.QTextFormat.merge": ('PySide2.QtGui.QTextFormat',),
- "PySide2.QtGui.QTextFormat.objectIndex": (),
- "PySide2.QtGui.QTextFormat.objectType": (),
- "PySide2.QtGui.QTextFormat.penProperty": ('int',),
- "PySide2.QtGui.QTextFormat.properties": (),
- "PySide2.QtGui.QTextFormat.property": ('int',),
- "PySide2.QtGui.QTextFormat.propertyCount": (),
- "PySide2.QtGui.QTextFormat.setBackground": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QTextFormat.setForeground": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QTextFormat.setLayoutDirection": ('PySide2.QtCore.Qt.LayoutDirection',),
- "PySide2.QtGui.QTextFormat.setObjectIndex": ('int',),
- "PySide2.QtGui.QTextFormat.setObjectType": ('int',),
- "PySide2.QtGui.QTextFormat.setProperty": [('int', 'typing.Any'), ('int', 'typing.List')],
- "PySide2.QtGui.QTextFormat.stringProperty": ('int',),
- "PySide2.QtGui.QTextFormat.swap": ('PySide2.QtGui.QTextFormat',),
- "PySide2.QtGui.QTextFormat.toBlockFormat": (),
- "PySide2.QtGui.QTextFormat.toCharFormat": (),
- "PySide2.QtGui.QTextFormat.toFrameFormat": (),
- "PySide2.QtGui.QTextFormat.toImageFormat": (),
- "PySide2.QtGui.QTextFormat.toListFormat": (),
- "PySide2.QtGui.QTextFormat.toTableCellFormat": (),
- "PySide2.QtGui.QTextFormat.toTableFormat": (),
- "PySide2.QtGui.QTextFormat.type": (),
-# class PySide2.QtGui.QTextFragment:
- "PySide2.QtGui.QTextFragment.__init__": [(), ('PySide2.QtGui.QTextFragment',)],
- "PySide2.QtGui.QTextFragment.__copy__": (),
- "PySide2.QtGui.QTextFragment.charFormat": (),
- "PySide2.QtGui.QTextFragment.charFormatIndex": (),
- "PySide2.QtGui.QTextFragment.contains": ('int',),
- "PySide2.QtGui.QTextFragment.isValid": (),
- "PySide2.QtGui.QTextFragment.length": (),
- "PySide2.QtGui.QTextFragment.position": (),
- "PySide2.QtGui.QTextFragment.text": (),
-# class PySide2.QtGui.QTextFrame:
-# class PySide2.QtGui.QTextFrame.iterator:
- "PySide2.QtGui.QTextFrame.iterator.__init__": [(), ('PySide2.QtGui.QTextFrame.iterator',)],
- "PySide2.QtGui.QTextFrame.iterator.__copy__": (),
- "PySide2.QtGui.QTextFrame.iterator.__iadd__": ('int',),
- "PySide2.QtGui.QTextFrame.iterator.__isub__": ('int',),
- "PySide2.QtGui.QTextFrame.iterator.__iter__": (),
- "PySide2.QtGui.QTextFrame.iterator.atEnd": (),
- "PySide2.QtGui.QTextFrame.iterator.currentBlock": (),
- "PySide2.QtGui.QTextFrame.iterator.currentFrame": (),
- "PySide2.QtGui.QTextFrame.iterator.parentFrame": (),
- "PySide2.QtGui.QTextFrame.__init__": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtGui.QTextFrame.__iter__": (),
- "PySide2.QtGui.QTextFrame.begin": (),
- "PySide2.QtGui.QTextFrame.childFrames": (),
- "PySide2.QtGui.QTextFrame.end": (),
- "PySide2.QtGui.QTextFrame.firstCursorPosition": (),
- "PySide2.QtGui.QTextFrame.firstPosition": (),
- "PySide2.QtGui.QTextFrame.frameFormat": (),
- "PySide2.QtGui.QTextFrame.lastCursorPosition": (),
- "PySide2.QtGui.QTextFrame.lastPosition": (),
- "PySide2.QtGui.QTextFrame.parentFrame": (),
- "PySide2.QtGui.QTextFrame.setFrameFormat": ('PySide2.QtGui.QTextFrameFormat',),
-# class PySide2.QtGui.QTextFrameFormat:
-# class PySide2.QtGui.QTextFrameFormat.BorderStyle:
-# class PySide2.QtGui.QTextFrameFormat.Position:
- "PySide2.QtGui.QTextFrameFormat.__init__": [(), ('PySide2.QtGui.QTextFormat',), ('PySide2.QtGui.QTextFrameFormat',)],
- "PySide2.QtGui.QTextFrameFormat.__copy__": (),
- "PySide2.QtGui.QTextFrameFormat.border": (),
- "PySide2.QtGui.QTextFrameFormat.borderBrush": (),
- "PySide2.QtGui.QTextFrameFormat.borderStyle": (),
- "PySide2.QtGui.QTextFrameFormat.bottomMargin": (),
- "PySide2.QtGui.QTextFrameFormat.height": (),
- "PySide2.QtGui.QTextFrameFormat.isValid": (),
- "PySide2.QtGui.QTextFrameFormat.leftMargin": (),
- "PySide2.QtGui.QTextFrameFormat.margin": (),
- "PySide2.QtGui.QTextFrameFormat.padding": (),
- "PySide2.QtGui.QTextFrameFormat.pageBreakPolicy": (),
- "PySide2.QtGui.QTextFrameFormat.position": (),
- "PySide2.QtGui.QTextFrameFormat.rightMargin": (),
- "PySide2.QtGui.QTextFrameFormat.setBorder": ('float',),
- "PySide2.QtGui.QTextFrameFormat.setBorderBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QTextFrameFormat.setBorderStyle": ('PySide2.QtGui.QTextFrameFormat.BorderStyle',),
- "PySide2.QtGui.QTextFrameFormat.setBottomMargin": ('float',),
- "PySide2.QtGui.QTextFrameFormat.setHeight": [('PySide2.QtGui.QTextLength',), ('float',)],
- "PySide2.QtGui.QTextFrameFormat.setLeftMargin": ('float',),
- "PySide2.QtGui.QTextFrameFormat.setMargin": ('float',),
- "PySide2.QtGui.QTextFrameFormat.setPadding": ('float',),
- "PySide2.QtGui.QTextFrameFormat.setPageBreakPolicy": ('PySide2.QtGui.QTextFormat.PageBreakFlags',),
- "PySide2.QtGui.QTextFrameFormat.setPosition": ('PySide2.QtGui.QTextFrameFormat.Position',),
- "PySide2.QtGui.QTextFrameFormat.setRightMargin": ('float',),
- "PySide2.QtGui.QTextFrameFormat.setTopMargin": ('float',),
- "PySide2.QtGui.QTextFrameFormat.setWidth": [('PySide2.QtGui.QTextLength',), ('float',)],
- "PySide2.QtGui.QTextFrameFormat.topMargin": (),
- "PySide2.QtGui.QTextFrameFormat.width": (),
-# class PySide2.QtGui.QTextImageFormat:
- "PySide2.QtGui.QTextImageFormat.__init__": [(), ('PySide2.QtGui.QTextFormat',), ('PySide2.QtGui.QTextImageFormat',)],
- "PySide2.QtGui.QTextImageFormat.__copy__": (),
- "PySide2.QtGui.QTextImageFormat.height": (),
- "PySide2.QtGui.QTextImageFormat.isValid": (),
- "PySide2.QtGui.QTextImageFormat.name": (),
- "PySide2.QtGui.QTextImageFormat.quality": (),
- "PySide2.QtGui.QTextImageFormat.setHeight": ('float',),
- "PySide2.QtGui.QTextImageFormat.setName": ('str',),
- "PySide2.QtGui.QTextImageFormat.setQuality": ('int',),
- "PySide2.QtGui.QTextImageFormat.setWidth": ('float',),
- "PySide2.QtGui.QTextImageFormat.width": (),
-# class PySide2.QtGui.QTextInlineObject:
- "PySide2.QtGui.QTextInlineObject.__init__": (),
- "PySide2.QtGui.QTextInlineObject.__copy__": (),
- "PySide2.QtGui.QTextInlineObject.ascent": (),
- "PySide2.QtGui.QTextInlineObject.descent": (),
- "PySide2.QtGui.QTextInlineObject.format": (),
- "PySide2.QtGui.QTextInlineObject.formatIndex": (),
- "PySide2.QtGui.QTextInlineObject.height": (),
- "PySide2.QtGui.QTextInlineObject.isValid": (),
- "PySide2.QtGui.QTextInlineObject.rect": (),
- "PySide2.QtGui.QTextInlineObject.setAscent": ('float',),
- "PySide2.QtGui.QTextInlineObject.setDescent": ('float',),
- "PySide2.QtGui.QTextInlineObject.setWidth": ('float',),
- "PySide2.QtGui.QTextInlineObject.textDirection": (),
- "PySide2.QtGui.QTextInlineObject.textPosition": (),
- "PySide2.QtGui.QTextInlineObject.width": (),
-# class PySide2.QtGui.QTextItem:
-# class PySide2.QtGui.QTextItem.RenderFlag:
-# class PySide2.QtGui.QTextItem.RenderFlags:
- "PySide2.QtGui.QTextItem.__init__": (),
- "PySide2.QtGui.QTextItem.ascent": (),
- "PySide2.QtGui.QTextItem.descent": (),
- "PySide2.QtGui.QTextItem.font": (),
- "PySide2.QtGui.QTextItem.renderFlags": (),
- "PySide2.QtGui.QTextItem.text": (),
- "PySide2.QtGui.QTextItem.width": (),
-# class PySide2.QtGui.QTextLayout:
-# class PySide2.QtGui.QTextLayout.CursorMode:
-# class PySide2.QtGui.QTextLayout.FormatRange:
- "PySide2.QtGui.QTextLayout.FormatRange.__init__": [(), ('PySide2.QtGui.QTextLayout.FormatRange',)],
- "PySide2.QtGui.QTextLayout.FormatRange.__copy__": (),
- "PySide2.QtGui.QTextLayout.__init__": [(), ('PySide2.QtGui.QTextBlock',), ('str',), ('str', 'PySide2.QtGui.QFont', 'PySide2.QtGui.QPaintDevice')],
- "PySide2.QtGui.QTextLayout.additionalFormats": (),
- "PySide2.QtGui.QTextLayout.beginLayout": (),
- "PySide2.QtGui.QTextLayout.boundingRect": (),
- "PySide2.QtGui.QTextLayout.cacheEnabled": (),
- "PySide2.QtGui.QTextLayout.clearAdditionalFormats": (),
- "PySide2.QtGui.QTextLayout.clearFormats": (),
- "PySide2.QtGui.QTextLayout.clearLayout": (),
- "PySide2.QtGui.QTextLayout.createLine": (),
- "PySide2.QtGui.QTextLayout.cursorMoveStyle": (),
- "PySide2.QtGui.QTextLayout.draw": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QPointF', 'typing.List', 'PySide2.QtCore.QRectF'),
- "PySide2.QtGui.QTextLayout.drawCursor": [('PySide2.QtGui.QPainter', 'PySide2.QtCore.QPointF', 'int'), ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QPointF', 'int', 'int')],
- "PySide2.QtGui.QTextLayout.endLayout": (),
- "PySide2.QtGui.QTextLayout.font": (),
- "PySide2.QtGui.QTextLayout.formats": (),
- "PySide2.QtGui.QTextLayout.isValidCursorPosition": ('int',),
- "PySide2.QtGui.QTextLayout.leftCursorPosition": ('int',),
- "PySide2.QtGui.QTextLayout.lineAt": ('int',),
- "PySide2.QtGui.QTextLayout.lineCount": (),
- "PySide2.QtGui.QTextLayout.lineForTextPosition": ('int',),
- "PySide2.QtGui.QTextLayout.maximumWidth": (),
- "PySide2.QtGui.QTextLayout.minimumWidth": (),
- "PySide2.QtGui.QTextLayout.nextCursorPosition": ('int', 'PySide2.QtGui.QTextLayout.CursorMode'),
- "PySide2.QtGui.QTextLayout.position": (),
- "PySide2.QtGui.QTextLayout.preeditAreaPosition": (),
- "PySide2.QtGui.QTextLayout.preeditAreaText": (),
- "PySide2.QtGui.QTextLayout.previousCursorPosition": ('int', 'PySide2.QtGui.QTextLayout.CursorMode'),
- "PySide2.QtGui.QTextLayout.rightCursorPosition": ('int',),
- "PySide2.QtGui.QTextLayout.setAdditionalFormats": ('typing.Sequence',),
- "PySide2.QtGui.QTextLayout.setCacheEnabled": ('bool',),
- "PySide2.QtGui.QTextLayout.setCursorMoveStyle": ('PySide2.QtCore.Qt.CursorMoveStyle',),
- "PySide2.QtGui.QTextLayout.setFlags": ('int',),
- "PySide2.QtGui.QTextLayout.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtGui.QTextLayout.setFormats": ('typing.List',),
- "PySide2.QtGui.QTextLayout.setPosition": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTextLayout.setPreeditArea": ('int', 'str'),
- "PySide2.QtGui.QTextLayout.setRawFont": ('PySide2.QtGui.QRawFont',),
- "PySide2.QtGui.QTextLayout.setText": ('str',),
- "PySide2.QtGui.QTextLayout.setTextOption": ('PySide2.QtGui.QTextOption',),
- "PySide2.QtGui.QTextLayout.text": (),
- "PySide2.QtGui.QTextLayout.textOption": (),
-# class PySide2.QtGui.QTextLength:
-# class PySide2.QtGui.QTextLength.Type:
- "PySide2.QtGui.QTextLength.__init__": [(), ('PySide2.QtGui.QTextLength',), ('PySide2.QtGui.QTextLength.Type', 'float')],
- "PySide2.QtGui.QTextLength.__copy__": (),
- "PySide2.QtGui.QTextLength.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QTextLength.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QTextLength.rawValue": (),
- "PySide2.QtGui.QTextLength.type": (),
- "PySide2.QtGui.QTextLength.value": ('float',),
-# class PySide2.QtGui.QTextLine:
-# class PySide2.QtGui.QTextLine.CursorPosition:
-# class PySide2.QtGui.QTextLine.Edge:
- "PySide2.QtGui.QTextLine.__init__": (),
- "PySide2.QtGui.QTextLine.__copy__": (),
- "PySide2.QtGui.QTextLine.ascent": (),
- "PySide2.QtGui.QTextLine.cursorToX": ('int', 'PySide2.QtGui.QTextLine.Edge'),
- "PySide2.QtGui.QTextLine.descent": (),
- "PySide2.QtGui.QTextLine.draw": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QPointF', 'PySide2.QtGui.QTextLayout.FormatRange'),
- "PySide2.QtGui.QTextLine.height": (),
- "PySide2.QtGui.QTextLine.horizontalAdvance": (),
- "PySide2.QtGui.QTextLine.isValid": (),
- "PySide2.QtGui.QTextLine.leading": (),
- "PySide2.QtGui.QTextLine.leadingIncluded": (),
- "PySide2.QtGui.QTextLine.lineNumber": (),
- "PySide2.QtGui.QTextLine.naturalTextRect": (),
- "PySide2.QtGui.QTextLine.naturalTextWidth": (),
- "PySide2.QtGui.QTextLine.position": (),
- "PySide2.QtGui.QTextLine.rect": (),
- "PySide2.QtGui.QTextLine.setLeadingIncluded": ('bool',),
- "PySide2.QtGui.QTextLine.setLineWidth": ('float',),
- "PySide2.QtGui.QTextLine.setNumColumns": [('int',), ('int', 'float')],
- "PySide2.QtGui.QTextLine.setPosition": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTextLine.textLength": (),
- "PySide2.QtGui.QTextLine.textStart": (),
- "PySide2.QtGui.QTextLine.width": (),
- "PySide2.QtGui.QTextLine.x": (),
- "PySide2.QtGui.QTextLine.xToCursor": ('float', 'PySide2.QtGui.QTextLine.CursorPosition'),
- "PySide2.QtGui.QTextLine.y": (),
-# class PySide2.QtGui.QTextList:
- "PySide2.QtGui.QTextList.__init__": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtGui.QTextList.add": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtGui.QTextList.count": (),
- "PySide2.QtGui.QTextList.format": (),
- "PySide2.QtGui.QTextList.item": ('int',),
- "PySide2.QtGui.QTextList.itemNumber": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtGui.QTextList.itemText": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtGui.QTextList.remove": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtGui.QTextList.removeItem": ('int',),
- "PySide2.QtGui.QTextList.setFormat": [('PySide2.QtGui.QTextFormat',), ('PySide2.QtGui.QTextListFormat',)],
-# class PySide2.QtGui.QTextListFormat:
-# class PySide2.QtGui.QTextListFormat.Style:
- "PySide2.QtGui.QTextListFormat.__init__": [(), ('PySide2.QtGui.QTextFormat',), ('PySide2.QtGui.QTextListFormat',)],
- "PySide2.QtGui.QTextListFormat.__copy__": (),
- "PySide2.QtGui.QTextListFormat.indent": (),
- "PySide2.QtGui.QTextListFormat.isValid": (),
- "PySide2.QtGui.QTextListFormat.numberPrefix": (),
- "PySide2.QtGui.QTextListFormat.numberSuffix": (),
- "PySide2.QtGui.QTextListFormat.setIndent": ('int',),
- "PySide2.QtGui.QTextListFormat.setNumberPrefix": ('str',),
- "PySide2.QtGui.QTextListFormat.setNumberSuffix": ('str',),
- "PySide2.QtGui.QTextListFormat.setStyle": ('PySide2.QtGui.QTextListFormat.Style',),
- "PySide2.QtGui.QTextListFormat.style": (),
-# class PySide2.QtGui.QTextObject:
- "PySide2.QtGui.QTextObject.__init__": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtGui.QTextObject.document": (),
- "PySide2.QtGui.QTextObject.format": (),
- "PySide2.QtGui.QTextObject.formatIndex": (),
- "PySide2.QtGui.QTextObject.objectIndex": (),
- "PySide2.QtGui.QTextObject.setFormat": ('PySide2.QtGui.QTextFormat',),
-# class PySide2.QtGui.QTextObjectInterface:
- "PySide2.QtGui.QTextObjectInterface.__init__": (),
- "PySide2.QtGui.QTextObjectInterface.drawObject": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF', 'PySide2.QtGui.QTextDocument', 'int', 'PySide2.QtGui.QTextFormat'),
- "PySide2.QtGui.QTextObjectInterface.intrinsicSize": ('PySide2.QtGui.QTextDocument', 'int', 'PySide2.QtGui.QTextFormat'),
-# class PySide2.QtGui.QTextOption:
-# class PySide2.QtGui.QTextOption.Flag:
-# class PySide2.QtGui.QTextOption.Flags:
-# class PySide2.QtGui.QTextOption.Tab:
- "PySide2.QtGui.QTextOption.Tab.__init__": [(), ('PySide2.QtGui.QTextOption.Tab',), ('float', 'PySide2.QtGui.QTextOption.TabType', 'str')],
- "PySide2.QtGui.QTextOption.Tab.__copy__": (),
-# class PySide2.QtGui.QTextOption.TabType:
-# class PySide2.QtGui.QTextOption.WrapMode:
- "PySide2.QtGui.QTextOption.__init__": [(), ('PySide2.QtCore.Qt.Alignment',), ('PySide2.QtGui.QTextOption',)],
- "PySide2.QtGui.QTextOption.__copy__": (),
- "PySide2.QtGui.QTextOption.alignment": (),
- "PySide2.QtGui.QTextOption.flags": (),
- "PySide2.QtGui.QTextOption.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtGui.QTextOption.setFlags": ('PySide2.QtGui.QTextOption.Flags',),
- "PySide2.QtGui.QTextOption.setTabArray": ('typing.Sequence',),
- "PySide2.QtGui.QTextOption.setTabStop": ('float',),
- "PySide2.QtGui.QTextOption.setTabStopDistance": ('float',),
- "PySide2.QtGui.QTextOption.setTabs": ('typing.Sequence',),
- "PySide2.QtGui.QTextOption.setTextDirection": ('PySide2.QtCore.Qt.LayoutDirection',),
- "PySide2.QtGui.QTextOption.setUseDesignMetrics": ('bool',),
- "PySide2.QtGui.QTextOption.setWrapMode": ('PySide2.QtGui.QTextOption.WrapMode',),
- "PySide2.QtGui.QTextOption.tabArray": (),
- "PySide2.QtGui.QTextOption.tabStop": (),
- "PySide2.QtGui.QTextOption.tabStopDistance": (),
- "PySide2.QtGui.QTextOption.tabs": (),
- "PySide2.QtGui.QTextOption.textDirection": (),
- "PySide2.QtGui.QTextOption.useDesignMetrics": (),
- "PySide2.QtGui.QTextOption.wrapMode": (),
-# class PySide2.QtGui.QTextTable:
- "PySide2.QtGui.QTextTable.__init__": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtGui.QTextTable.appendColumns": ('int',),
- "PySide2.QtGui.QTextTable.appendRows": ('int',),
- "PySide2.QtGui.QTextTable.cellAt": [('PySide2.QtGui.QTextCursor',), ('int',), ('int', 'int')],
- "PySide2.QtGui.QTextTable.columns": (),
- "PySide2.QtGui.QTextTable.format": (),
- "PySide2.QtGui.QTextTable.insertColumns": ('int', 'int'),
- "PySide2.QtGui.QTextTable.insertRows": ('int', 'int'),
- "PySide2.QtGui.QTextTable.mergeCells": [('PySide2.QtGui.QTextCursor',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QTextTable.removeColumns": ('int', 'int'),
- "PySide2.QtGui.QTextTable.removeRows": ('int', 'int'),
- "PySide2.QtGui.QTextTable.resize": ('int', 'int'),
- "PySide2.QtGui.QTextTable.rowEnd": ('PySide2.QtGui.QTextCursor',),
- "PySide2.QtGui.QTextTable.rowStart": ('PySide2.QtGui.QTextCursor',),
- "PySide2.QtGui.QTextTable.rows": (),
- "PySide2.QtGui.QTextTable.setFormat": [('PySide2.QtGui.QTextFormat',), ('PySide2.QtGui.QTextTableFormat',)],
- "PySide2.QtGui.QTextTable.splitCell": ('int', 'int', 'int', 'int'),
-# class PySide2.QtGui.QTextTableCell:
- "PySide2.QtGui.QTextTableCell.__init__": [(), ('PySide2.QtGui.QTextTableCell',)],
- "PySide2.QtGui.QTextTableCell.__copy__": (),
- "PySide2.QtGui.QTextTableCell.begin": (),
- "PySide2.QtGui.QTextTableCell.column": (),
- "PySide2.QtGui.QTextTableCell.columnSpan": (),
- "PySide2.QtGui.QTextTableCell.end": (),
- "PySide2.QtGui.QTextTableCell.firstCursorPosition": (),
- "PySide2.QtGui.QTextTableCell.firstPosition": (),
- "PySide2.QtGui.QTextTableCell.format": (),
- "PySide2.QtGui.QTextTableCell.isValid": (),
- "PySide2.QtGui.QTextTableCell.lastCursorPosition": (),
- "PySide2.QtGui.QTextTableCell.lastPosition": (),
- "PySide2.QtGui.QTextTableCell.row": (),
- "PySide2.QtGui.QTextTableCell.rowSpan": (),
- "PySide2.QtGui.QTextTableCell.setFormat": ('PySide2.QtGui.QTextCharFormat',),
- "PySide2.QtGui.QTextTableCell.tableCellFormatIndex": (),
-# class PySide2.QtGui.QTextTableCellFormat:
- "PySide2.QtGui.QTextTableCellFormat.__init__": [(), ('PySide2.QtGui.QTextFormat',), ('PySide2.QtGui.QTextTableCellFormat',)],
- "PySide2.QtGui.QTextTableCellFormat.__copy__": (),
- "PySide2.QtGui.QTextTableCellFormat.bottomBorder": (),
- "PySide2.QtGui.QTextTableCellFormat.bottomBorderBrush": (),
- "PySide2.QtGui.QTextTableCellFormat.bottomBorderStyle": (),
- "PySide2.QtGui.QTextTableCellFormat.bottomPadding": (),
- "PySide2.QtGui.QTextTableCellFormat.isValid": (),
- "PySide2.QtGui.QTextTableCellFormat.leftBorder": (),
- "PySide2.QtGui.QTextTableCellFormat.leftBorderBrush": (),
- "PySide2.QtGui.QTextTableCellFormat.leftBorderStyle": (),
- "PySide2.QtGui.QTextTableCellFormat.leftPadding": (),
- "PySide2.QtGui.QTextTableCellFormat.rightBorder": (),
- "PySide2.QtGui.QTextTableCellFormat.rightBorderBrush": (),
- "PySide2.QtGui.QTextTableCellFormat.rightBorderStyle": (),
- "PySide2.QtGui.QTextTableCellFormat.rightPadding": (),
- "PySide2.QtGui.QTextTableCellFormat.setBorder": ('float',),
- "PySide2.QtGui.QTextTableCellFormat.setBorderBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QTextTableCellFormat.setBorderStyle": ('PySide2.QtGui.QTextFrameFormat.BorderStyle',),
- "PySide2.QtGui.QTextTableCellFormat.setBottomBorder": ('float',),
- "PySide2.QtGui.QTextTableCellFormat.setBottomBorderBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QTextTableCellFormat.setBottomBorderStyle": ('PySide2.QtGui.QTextFrameFormat.BorderStyle',),
- "PySide2.QtGui.QTextTableCellFormat.setBottomPadding": ('float',),
- "PySide2.QtGui.QTextTableCellFormat.setLeftBorder": ('float',),
- "PySide2.QtGui.QTextTableCellFormat.setLeftBorderBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QTextTableCellFormat.setLeftBorderStyle": ('PySide2.QtGui.QTextFrameFormat.BorderStyle',),
- "PySide2.QtGui.QTextTableCellFormat.setLeftPadding": ('float',),
- "PySide2.QtGui.QTextTableCellFormat.setPadding": ('float',),
- "PySide2.QtGui.QTextTableCellFormat.setRightBorder": ('float',),
- "PySide2.QtGui.QTextTableCellFormat.setRightBorderBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QTextTableCellFormat.setRightBorderStyle": ('PySide2.QtGui.QTextFrameFormat.BorderStyle',),
- "PySide2.QtGui.QTextTableCellFormat.setRightPadding": ('float',),
- "PySide2.QtGui.QTextTableCellFormat.setTopBorder": ('float',),
- "PySide2.QtGui.QTextTableCellFormat.setTopBorderBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QTextTableCellFormat.setTopBorderStyle": ('PySide2.QtGui.QTextFrameFormat.BorderStyle',),
- "PySide2.QtGui.QTextTableCellFormat.setTopPadding": ('float',),
- "PySide2.QtGui.QTextTableCellFormat.topBorder": (),
- "PySide2.QtGui.QTextTableCellFormat.topBorderBrush": (),
- "PySide2.QtGui.QTextTableCellFormat.topBorderStyle": (),
- "PySide2.QtGui.QTextTableCellFormat.topPadding": (),
-# class PySide2.QtGui.QTextTableFormat:
- "PySide2.QtGui.QTextTableFormat.__init__": [(), ('PySide2.QtGui.QTextFormat',), ('PySide2.QtGui.QTextTableFormat',)],
- "PySide2.QtGui.QTextTableFormat.__copy__": (),
- "PySide2.QtGui.QTextTableFormat.alignment": (),
- "PySide2.QtGui.QTextTableFormat.borderCollapse": (),
- "PySide2.QtGui.QTextTableFormat.cellPadding": (),
- "PySide2.QtGui.QTextTableFormat.cellSpacing": (),
- "PySide2.QtGui.QTextTableFormat.clearColumnWidthConstraints": (),
- "PySide2.QtGui.QTextTableFormat.columnWidthConstraints": (),
- "PySide2.QtGui.QTextTableFormat.columns": (),
- "PySide2.QtGui.QTextTableFormat.headerRowCount": (),
- "PySide2.QtGui.QTextTableFormat.isValid": (),
- "PySide2.QtGui.QTextTableFormat.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtGui.QTextTableFormat.setBorderCollapse": ('bool',),
- "PySide2.QtGui.QTextTableFormat.setCellPadding": ('float',),
- "PySide2.QtGui.QTextTableFormat.setCellSpacing": ('float',),
- "PySide2.QtGui.QTextTableFormat.setColumnWidthConstraints": ('typing.List',),
- "PySide2.QtGui.QTextTableFormat.setColumns": ('int',),
- "PySide2.QtGui.QTextTableFormat.setHeaderRowCount": ('int',),
-# class PySide2.QtGui.QToolBarChangeEvent:
- "PySide2.QtGui.QToolBarChangeEvent.__init__": ('bool',),
- "PySide2.QtGui.QToolBarChangeEvent.toggle": (),
-# class PySide2.QtGui.QTouchDevice:
-# class PySide2.QtGui.QTouchDevice.Capabilities:
-# class PySide2.QtGui.QTouchDevice.CapabilityFlag:
-# class PySide2.QtGui.QTouchDevice.DeviceType:
- "PySide2.QtGui.QTouchDevice.__init__": (),
- "PySide2.QtGui.QTouchDevice.capabilities": (),
- "PySide2.QtGui.QTouchDevice.devices": (),
- "PySide2.QtGui.QTouchDevice.maximumTouchPoints": (),
- "PySide2.QtGui.QTouchDevice.name": (),
- "PySide2.QtGui.QTouchDevice.setCapabilities": ('PySide2.QtGui.QTouchDevice.Capabilities',),
- "PySide2.QtGui.QTouchDevice.setMaximumTouchPoints": ('int',),
- "PySide2.QtGui.QTouchDevice.setName": ('str',),
- "PySide2.QtGui.QTouchDevice.setType": ('PySide2.QtGui.QTouchDevice.DeviceType',),
- "PySide2.QtGui.QTouchDevice.type": (),
-# class PySide2.QtGui.QTouchEvent:
-# class PySide2.QtGui.QTouchEvent.TouchPoint:
-# class PySide2.QtGui.QTouchEvent.TouchPoint.InfoFlag:
-# class PySide2.QtGui.QTouchEvent.TouchPoint.InfoFlags:
- "PySide2.QtGui.QTouchEvent.TouchPoint.__init__": [('PySide2.QtGui.QTouchEvent.TouchPoint',), ('int',)],
- "PySide2.QtGui.QTouchEvent.TouchPoint.__copy__": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.ellipseDiameters": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.flags": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.id": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.lastNormalizedPos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.lastPos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.lastScenePos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.lastScreenPos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.normalizedPos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.pos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.pressure": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.rawScreenPositions": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.rect": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.rotation": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.scenePos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.sceneRect": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.screenPos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.screenRect": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setEllipseDiameters": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setFlags": ('PySide2.QtGui.QTouchEvent.TouchPoint.InfoFlags',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setId": ('int',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setLastNormalizedPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setLastPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setLastScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setLastScreenPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setNormalizedPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setPressure": ('float',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setRawScreenPositions": ('typing.List',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setRect": ('PySide2.QtCore.QRectF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setRotation": ('float',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setSceneRect": ('PySide2.QtCore.QRectF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setScreenPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setScreenRect": ('PySide2.QtCore.QRectF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setStartNormalizedPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setStartPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setStartScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setStartScreenPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setState": ('PySide2.QtCore.Qt.TouchPointStates',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setUniqueId": ('int',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setVelocity": ('PySide2.QtGui.QVector2D',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.startNormalizedPos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.startPos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.startScenePos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.startScreenPos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.state": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.swap": ('PySide2.QtGui.QTouchEvent.TouchPoint',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.uniqueId": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.velocity": (),
- "PySide2.QtGui.QTouchEvent.__init__": ('PySide2.QtCore.QEvent.Type', 'PySide2.QtGui.QTouchDevice', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.Qt.TouchPointStates', 'typing.Sequence'),
- "PySide2.QtGui.QTouchEvent.device": (),
- "PySide2.QtGui.QTouchEvent.setDevice": ('PySide2.QtGui.QTouchDevice',),
- "PySide2.QtGui.QTouchEvent.setTarget": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QTouchEvent.setTouchPointStates": ('PySide2.QtCore.Qt.TouchPointStates',),
- "PySide2.QtGui.QTouchEvent.setTouchPoints": ('typing.Sequence',),
- "PySide2.QtGui.QTouchEvent.setWindow": ('PySide2.QtGui.QWindow',),
- "PySide2.QtGui.QTouchEvent.target": (),
- "PySide2.QtGui.QTouchEvent.touchPointStates": (),
- "PySide2.QtGui.QTouchEvent.touchPoints": (),
- "PySide2.QtGui.QTouchEvent.window": (),
-# class PySide2.QtGui.QTransform:
-# class PySide2.QtGui.QTransform.TransformationType:
- "PySide2.QtGui.QTransform.__init__": [(), ('PySide2.QtGui.QMatrix',), ('PySide2.QtGui.QTransform',), ('float', 'float', 'float', 'float', 'float', 'float'), ('float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float')],
- "PySide2.QtGui.QTransform.__add__": ('float',),
- "PySide2.QtGui.QTransform.__copy__": (),
- "PySide2.QtGui.QTransform.__iadd__": ('float',),
- "PySide2.QtGui.QTransform.__imul__": [('PySide2.QtGui.QTransform',), ('float',)],
- "PySide2.QtGui.QTransform.__isub__": ('float',),
- "PySide2.QtGui.QTransform.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QTransform.__mul__": [('PySide2.QtCore.QLine',), ('PySide2.QtCore.QLineF',), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtGui.QTransform',), ('float',)],
- "PySide2.QtGui.QTransform.__reduce__": (),
- "PySide2.QtGui.QTransform.__repr__": (),
- "PySide2.QtGui.QTransform.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QTransform.__sub__": ('float',),
- "PySide2.QtGui.QTransform.adjoint": (),
- "PySide2.QtGui.QTransform.det": (),
- "PySide2.QtGui.QTransform.determinant": (),
- "PySide2.QtGui.QTransform.dx": (),
- "PySide2.QtGui.QTransform.dy": (),
- "PySide2.QtGui.QTransform.fromScale": ('float', 'float'),
- "PySide2.QtGui.QTransform.fromTranslate": ('float', 'float'),
- "PySide2.QtGui.QTransform.inverted": (),
- "PySide2.QtGui.QTransform.isAffine": (),
- "PySide2.QtGui.QTransform.isIdentity": (),
- "PySide2.QtGui.QTransform.isInvertible": (),
- "PySide2.QtGui.QTransform.isRotating": (),
- "PySide2.QtGui.QTransform.isScaling": (),
- "PySide2.QtGui.QTransform.isTranslating": (),
- "PySide2.QtGui.QTransform.m11": (),
- "PySide2.QtGui.QTransform.m12": (),
- "PySide2.QtGui.QTransform.m13": (),
- "PySide2.QtGui.QTransform.m21": (),
- "PySide2.QtGui.QTransform.m22": (),
- "PySide2.QtGui.QTransform.m23": (),
- "PySide2.QtGui.QTransform.m31": (),
- "PySide2.QtGui.QTransform.m32": (),
- "PySide2.QtGui.QTransform.m33": (),
- "PySide2.QtGui.QTransform.map": [('PySide2.QtCore.QLine',), ('PySide2.QtCore.QLineF',), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtGui.QPainterPath',), ('PySide2.QtGui.QPolygon',), ('PySide2.QtGui.QPolygonF',), ('PySide2.QtGui.QRegion',), ('float', 'float')],
- "PySide2.QtGui.QTransform.mapRect": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',)],
- "PySide2.QtGui.QTransform.mapToPolygon": ('PySide2.QtCore.QRect',),
- "PySide2.QtGui.QTransform.quadToQuad": [('PySide2.QtGui.QPolygonF', 'PySide2.QtGui.QPolygonF'), ('PySide2.QtGui.QPolygonF', 'PySide2.QtGui.QPolygonF', 'PySide2.QtGui.QTransform')],
- "PySide2.QtGui.QTransform.quadToSquare": [('PySide2.QtGui.QPolygonF',), ('PySide2.QtGui.QPolygonF', 'PySide2.QtGui.QTransform')],
- "PySide2.QtGui.QTransform.reset": (),
- "PySide2.QtGui.QTransform.rotate": ('float', 'PySide2.QtCore.Qt.Axis'),
- "PySide2.QtGui.QTransform.rotateRadians": ('float', 'PySide2.QtCore.Qt.Axis'),
- "PySide2.QtGui.QTransform.scale": ('float', 'float'),
- "PySide2.QtGui.QTransform.setMatrix": ('float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtGui.QTransform.shear": ('float', 'float'),
- "PySide2.QtGui.QTransform.squareToQuad": [('PySide2.QtGui.QPolygonF',), ('PySide2.QtGui.QPolygonF', 'PySide2.QtGui.QTransform')],
- "PySide2.QtGui.QTransform.toAffine": (),
- "PySide2.QtGui.QTransform.translate": ('float', 'float'),
- "PySide2.QtGui.QTransform.transposed": (),
- "PySide2.QtGui.QTransform.type": (),
-# class PySide2.QtGui.QValidator:
-# class PySide2.QtGui.QValidator.State:
- "PySide2.QtGui.QValidator.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QValidator.fixup": ('str',),
- "PySide2.QtGui.QValidator.locale": (),
- "PySide2.QtGui.QValidator.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtGui.QValidator.validate": ('str', 'int'),
-# class PySide2.QtGui.QVector2D:
- "PySide2.QtGui.QVector2D.__init__": [(), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtGui.QVector3D',), ('PySide2.QtGui.QVector4D',), ('float', 'float')],
- "PySide2.QtGui.QVector2D.__add__": ('PySide2.QtGui.QVector2D',),
- "PySide2.QtGui.QVector2D.__copy__": (),
- "PySide2.QtGui.QVector2D.__iadd__": ('PySide2.QtGui.QVector2D',),
- "PySide2.QtGui.QVector2D.__imul__": [('PySide2.QtGui.QVector2D',), ('float',)],
- "PySide2.QtGui.QVector2D.__isub__": ('PySide2.QtGui.QVector2D',),
- "PySide2.QtGui.QVector2D.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QVector2D.__mul__": [('PySide2.QtGui.QVector2D',), ('float',)],
- "PySide2.QtGui.QVector2D.__neg__": (),
- "PySide2.QtGui.QVector2D.__reduce__": (),
- "PySide2.QtGui.QVector2D.__repr__": (),
- "PySide2.QtGui.QVector2D.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QVector2D.__sub__": ('PySide2.QtGui.QVector2D',),
- "PySide2.QtGui.QVector2D.distanceToLine": ('PySide2.QtGui.QVector2D', 'PySide2.QtGui.QVector2D'),
- "PySide2.QtGui.QVector2D.distanceToPoint": ('PySide2.QtGui.QVector2D',),
- "PySide2.QtGui.QVector2D.dotProduct": ('PySide2.QtGui.QVector2D', 'PySide2.QtGui.QVector2D'),
- "PySide2.QtGui.QVector2D.isNull": (),
- "PySide2.QtGui.QVector2D.length": (),
- "PySide2.QtGui.QVector2D.lengthSquared": (),
- "PySide2.QtGui.QVector2D.normalize": (),
- "PySide2.QtGui.QVector2D.normalized": (),
- "PySide2.QtGui.QVector2D.setX": ('float',),
- "PySide2.QtGui.QVector2D.setY": ('float',),
- "PySide2.QtGui.QVector2D.toPoint": (),
- "PySide2.QtGui.QVector2D.toPointF": (),
- "PySide2.QtGui.QVector2D.toTuple": (),
- "PySide2.QtGui.QVector2D.toVector3D": (),
- "PySide2.QtGui.QVector2D.toVector4D": (),
- "PySide2.QtGui.QVector2D.x": (),
- "PySide2.QtGui.QVector2D.y": (),
-# class PySide2.QtGui.QVector3D:
- "PySide2.QtGui.QVector3D.__init__": [(), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtGui.QVector2D',), ('PySide2.QtGui.QVector2D', 'float'), ('PySide2.QtGui.QVector4D',), ('float', 'float', 'float')],
- "PySide2.QtGui.QVector3D.__add__": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtGui.QVector3D.__copy__": (),
- "PySide2.QtGui.QVector3D.__iadd__": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtGui.QVector3D.__imul__": [('PySide2.QtGui.QVector3D',), ('float',)],
- "PySide2.QtGui.QVector3D.__isub__": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtGui.QVector3D.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QVector3D.__mul__": [('PySide2.QtGui.QMatrix4x4',), ('PySide2.QtGui.QQuaternion',), ('PySide2.QtGui.QVector3D',), ('float',)],
- "PySide2.QtGui.QVector3D.__neg__": (),
- "PySide2.QtGui.QVector3D.__reduce__": (),
- "PySide2.QtGui.QVector3D.__repr__": (),
- "PySide2.QtGui.QVector3D.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QVector3D.__sub__": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtGui.QVector3D.crossProduct": ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'),
- "PySide2.QtGui.QVector3D.distanceToLine": ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'),
- "PySide2.QtGui.QVector3D.distanceToPlane": [('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'), ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D')],
- "PySide2.QtGui.QVector3D.distanceToPoint": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtGui.QVector3D.dotProduct": ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'),
- "PySide2.QtGui.QVector3D.isNull": (),
- "PySide2.QtGui.QVector3D.length": (),
- "PySide2.QtGui.QVector3D.lengthSquared": (),
- "PySide2.QtGui.QVector3D.normal": [('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'), ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D')],
- "PySide2.QtGui.QVector3D.normalize": (),
- "PySide2.QtGui.QVector3D.normalized": (),
- "PySide2.QtGui.QVector3D.project": ('PySide2.QtGui.QMatrix4x4', 'PySide2.QtGui.QMatrix4x4', 'PySide2.QtCore.QRect'),
- "PySide2.QtGui.QVector3D.setX": ('float',),
- "PySide2.QtGui.QVector3D.setY": ('float',),
- "PySide2.QtGui.QVector3D.setZ": ('float',),
- "PySide2.QtGui.QVector3D.toPoint": (),
- "PySide2.QtGui.QVector3D.toPointF": (),
- "PySide2.QtGui.QVector3D.toTuple": (),
- "PySide2.QtGui.QVector3D.toVector2D": (),
- "PySide2.QtGui.QVector3D.toVector4D": (),
- "PySide2.QtGui.QVector3D.unproject": ('PySide2.QtGui.QMatrix4x4', 'PySide2.QtGui.QMatrix4x4', 'PySide2.QtCore.QRect'),
- "PySide2.QtGui.QVector3D.x": (),
- "PySide2.QtGui.QVector3D.y": (),
- "PySide2.QtGui.QVector3D.z": (),
-# class PySide2.QtGui.QVector4D:
- "PySide2.QtGui.QVector4D.__init__": [(), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtGui.QVector2D',), ('PySide2.QtGui.QVector2D', 'float', 'float'), ('PySide2.QtGui.QVector3D',), ('PySide2.QtGui.QVector3D', 'float'), ('float', 'float', 'float', 'float')],
- "PySide2.QtGui.QVector4D.__add__": ('PySide2.QtGui.QVector4D',),
- "PySide2.QtGui.QVector4D.__copy__": (),
- "PySide2.QtGui.QVector4D.__iadd__": ('PySide2.QtGui.QVector4D',),
- "PySide2.QtGui.QVector4D.__imul__": [('PySide2.QtGui.QVector4D',), ('float',)],
- "PySide2.QtGui.QVector4D.__isub__": ('PySide2.QtGui.QVector4D',),
- "PySide2.QtGui.QVector4D.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QVector4D.__mul__": [('PySide2.QtGui.QMatrix4x4',), ('PySide2.QtGui.QVector4D',), ('float',)],
- "PySide2.QtGui.QVector4D.__neg__": (),
- "PySide2.QtGui.QVector4D.__reduce__": (),
- "PySide2.QtGui.QVector4D.__repr__": (),
- "PySide2.QtGui.QVector4D.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QVector4D.__sub__": ('PySide2.QtGui.QVector4D',),
- "PySide2.QtGui.QVector4D.dotProduct": ('PySide2.QtGui.QVector4D', 'PySide2.QtGui.QVector4D'),
- "PySide2.QtGui.QVector4D.isNull": (),
- "PySide2.QtGui.QVector4D.length": (),
- "PySide2.QtGui.QVector4D.lengthSquared": (),
- "PySide2.QtGui.QVector4D.normalize": (),
- "PySide2.QtGui.QVector4D.normalized": (),
- "PySide2.QtGui.QVector4D.setW": ('float',),
- "PySide2.QtGui.QVector4D.setX": ('float',),
- "PySide2.QtGui.QVector4D.setY": ('float',),
- "PySide2.QtGui.QVector4D.setZ": ('float',),
- "PySide2.QtGui.QVector4D.toPoint": (),
- "PySide2.QtGui.QVector4D.toPointF": (),
- "PySide2.QtGui.QVector4D.toTuple": (),
- "PySide2.QtGui.QVector4D.toVector2D": (),
- "PySide2.QtGui.QVector4D.toVector2DAffine": (),
- "PySide2.QtGui.QVector4D.toVector3D": (),
- "PySide2.QtGui.QVector4D.toVector3DAffine": (),
- "PySide2.QtGui.QVector4D.w": (),
- "PySide2.QtGui.QVector4D.x": (),
- "PySide2.QtGui.QVector4D.y": (),
- "PySide2.QtGui.QVector4D.z": (),
-# class PySide2.QtGui.QWhatsThisClickedEvent:
- "PySide2.QtGui.QWhatsThisClickedEvent.__init__": ('str',),
- "PySide2.QtGui.QWhatsThisClickedEvent.href": (),
-# class PySide2.QtGui.QWheelEvent:
- "PySide2.QtGui.QWheelEvent.__init__": [('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.Qt.ScrollPhase', 'bool', 'PySide2.QtCore.Qt.MouseEventSource'), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint', 'int', 'PySide2.QtCore.Qt.Orientation', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers'), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint', 'int', 'PySide2.QtCore.Qt.Orientation', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.Qt.ScrollPhase'), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint', 'int', 'PySide2.QtCore.Qt.Orientation', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.Qt.ScrollPhase', 'PySide2.QtCore.Qt.MouseEventSource'), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint', 'int', 'PySide2.QtCore.Qt.Orientation', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.Qt.ScrollPhase', 'PySide2.QtCore.Qt.MouseEventSource', 'bool'), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'int', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.Qt.Orientation'), ('PySide2.QtCore.QPointF', 'int', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.Qt.Orientation')],
- "PySide2.QtGui.QWheelEvent.angleDelta": (),
- "PySide2.QtGui.QWheelEvent.buttons": (),
- "PySide2.QtGui.QWheelEvent.delta": (),
- "PySide2.QtGui.QWheelEvent.globalPos": (),
- "PySide2.QtGui.QWheelEvent.globalPosF": (),
- "PySide2.QtGui.QWheelEvent.globalPosition": (),
- "PySide2.QtGui.QWheelEvent.globalX": (),
- "PySide2.QtGui.QWheelEvent.global""Y": (),
- "PySide2.QtGui.QWheelEvent.inverted": (),
- "PySide2.QtGui.QWheelEvent.orientation": (),
- "PySide2.QtGui.QWheelEvent.phase": (),
- "PySide2.QtGui.QWheelEvent.pixelDelta": (),
- "PySide2.QtGui.QWheelEvent.pos": (),
- "PySide2.QtGui.QWheelEvent.posF": (),
- "PySide2.QtGui.QWheelEvent.position": (),
- "PySide2.QtGui.QWheelEvent.source": (),
- "PySide2.QtGui.QWheelEvent.x": (),
- "PySide2.QtGui.QWheelEvent.y": (),
-# class PySide2.QtGui.QWindow:
-# class PySide2.QtGui.QWindow.AncestorMode:
-# class PySide2.QtGui.QWindow.Visibility:
- "PySide2.QtGui.QWindow.__init__": [('PySide2.QtGui.QScreen',), ('PySide2.QtGui.QWindow',)],
- "PySide2.QtGui.QWindow.accessibleRoot": (),
- "PySide2.QtGui.QWindow.alert": ('int',),
- "PySide2.QtGui.QWindow.baseSize": (),
- "PySide2.QtGui.QWindow.close": (),
- "PySide2.QtGui.QWindow.contentOrientation": (),
- "PySide2.QtGui.QWindow.create": (),
- "PySide2.QtGui.QWindow.cursor": (),
- "PySide2.QtGui.QWindow.destroy": (),
- "PySide2.QtGui.QWindow.devicePixelRatio": (),
- "PySide2.QtGui.QWindow.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtGui.QWindow.exposeEvent": ('PySide2.QtGui.QExposeEvent',),
- "PySide2.QtGui.QWindow.filePath": (),
- "PySide2.QtGui.QWindow.flags": (),
- "PySide2.QtGui.QWindow.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtGui.QWindow.focusObject": (),
- "PySide2.QtGui.QWindow.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtGui.QWindow.format": (),
- "PySide2.QtGui.QWindow.frameGeometry": (),
- "PySide2.QtGui.QWindow.frameMargins": (),
- "PySide2.QtGui.QWindow.framePosition": (),
- "PySide2.QtGui.QWindow.fromWinId": ('int',),
- "PySide2.QtGui.QWindow.geometry": (),
- "PySide2.QtGui.QWindow.height": (),
- "PySide2.QtGui.QWindow.hide": (),
- "PySide2.QtGui.QWindow.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtGui.QWindow.icon": (),
- "PySide2.QtGui.QWindow.isActive": (),
- "PySide2.QtGui.QWindow.isAncestorOf": ('PySide2.QtGui.QWindow', 'PySide2.QtGui.QWindow.AncestorMode'),
- "PySide2.QtGui.QWindow.isExposed": (),
- "PySide2.QtGui.QWindow.isModal": (),
- "PySide2.QtGui.QWindow.isTopLevel": (),
- "PySide2.QtGui.QWindow.isVisible": (),
- "PySide2.QtGui.QWindow.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtGui.QWindow.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtGui.QWindow.lower": (),
- "PySide2.QtGui.QWindow.mapFromGlobal": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QWindow.mapToGlobal": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QWindow.mask": (),
- "PySide2.QtGui.QWindow.maximumHeight": (),
- "PySide2.QtGui.QWindow.maximumSize": (),
- "PySide2.QtGui.QWindow.maximumWidth": (),
- "PySide2.QtGui.QWindow.minimumHeight": (),
- "PySide2.QtGui.QWindow.minimumSize": (),
- "PySide2.QtGui.QWindow.minimumWidth": (),
- "PySide2.QtGui.QWindow.modality": (),
- "PySide2.QtGui.QWindow.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtGui.QWindow.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtGui.QWindow.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtGui.QWindow.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtGui.QWindow.moveEvent": ('PySide2.QtGui.QMoveEvent',),
- "PySide2.QtGui.QWindow.nativeEvent": ('PySide2.QtCore.QByteArray', 'int'),
- "PySide2.QtGui.QWindow.opacity": (),
- "PySide2.QtGui.QWindow.parent": [(), ('PySide2.QtGui.QWindow.AncestorMode',)],
- "PySide2.QtGui.QWindow.position": (),
- "PySide2.QtGui.QWindow.raise_": (),
- "PySide2.QtGui.QWindow.reportContentOrientationChange": ('PySide2.QtCore.Qt.ScreenOrientation',),
- "PySide2.QtGui.QWindow.requestActivate": (),
- "PySide2.QtGui.QWindow.requestUpdate": (),
- "PySide2.QtGui.QWindow.requestedFormat": (),
- "PySide2.QtGui.QWindow.resize": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtGui.QWindow.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtGui.QWindow.screen": (),
- "PySide2.QtGui.QWindow.setBaseSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtGui.QWindow.setCursor": ('PySide2.QtGui.QCursor',),
- "PySide2.QtGui.QWindow.setFilePath": ('str',),
- "PySide2.QtGui.QWindow.setFlag": ('PySide2.QtCore.Qt.WindowType', 'bool'),
- "PySide2.QtGui.QWindow.setFlags": ('PySide2.QtCore.Qt.WindowFlags',),
- "PySide2.QtGui.QWindow.setFormat": ('PySide2.QtGui.QSurfaceFormat',),
- "PySide2.QtGui.QWindow.setFramePosition": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QWindow.setGeometry": [('PySide2.QtCore.QRect',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QWindow.setHeight": ('int',),
- "PySide2.QtGui.QWindow.setIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtGui.QWindow.setKeyboardGrabEnabled": ('bool',),
- "PySide2.QtGui.QWindow.setMask": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QWindow.setMaximumHeight": ('int',),
- "PySide2.QtGui.QWindow.setMaximumSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtGui.QWindow.setMaximumWidth": ('int',),
- "PySide2.QtGui.QWindow.setMinimumHeight": ('int',),
- "PySide2.QtGui.QWindow.setMinimumSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtGui.QWindow.setMinimumWidth": ('int',),
- "PySide2.QtGui.QWindow.setModality": ('PySide2.QtCore.Qt.WindowModality',),
- "PySide2.QtGui.QWindow.setMouseGrabEnabled": ('bool',),
- "PySide2.QtGui.QWindow.setOpacity": ('float',),
- "PySide2.QtGui.QWindow.setParent": ('PySide2.QtGui.QWindow',),
- "PySide2.QtGui.QWindow.setPosition": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtGui.QWindow.setScreen": ('PySide2.QtGui.QScreen',),
- "PySide2.QtGui.QWindow.setSizeIncrement": ('PySide2.QtCore.QSize',),
- "PySide2.QtGui.QWindow.setSurfaceType": ('PySide2.QtGui.QSurface.SurfaceType',),
- "PySide2.QtGui.QWindow.setTitle": ('str',),
- "PySide2.QtGui.QWindow.setTransientParent": ('PySide2.QtGui.QWindow',),
- "PySide2.QtGui.QWindow.setVisibility": ('PySide2.QtGui.QWindow.Visibility',),
- "PySide2.QtGui.QWindow.setVisible": ('bool',),
- "PySide2.QtGui.QWindow.setWidth": ('int',),
- "PySide2.QtGui.QWindow.setWindowState": ('PySide2.QtCore.Qt.WindowState',),
- "PySide2.QtGui.QWindow.setWindowStates": ('PySide2.QtCore.Qt.WindowStates',),
- "PySide2.QtGui.QWindow.setX": ('int',),
- "PySide2.QtGui.QWindow.setY": ('int',),
- "PySide2.QtGui.QWindow.show": (),
- "PySide2.QtGui.QWindow.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtGui.QWindow.showFullScreen": (),
- "PySide2.QtGui.QWindow.showMaximized": (),
- "PySide2.QtGui.QWindow.showMinimized": (),
- "PySide2.QtGui.QWindow.showNormal": (),
- "PySide2.QtGui.QWindow.size": (),
- "PySide2.QtGui.QWindow.sizeIncrement": (),
- "PySide2.QtGui.QWindow.surfaceHandle": (),
- "PySide2.QtGui.QWindow.surfaceType": (),
- "PySide2.QtGui.QWindow.tabletEvent": ('PySide2.QtGui.QTabletEvent',),
- "PySide2.QtGui.QWindow.title": (),
- "PySide2.QtGui.QWindow.touchEvent": ('PySide2.QtGui.QTouchEvent',),
- "PySide2.QtGui.QWindow.transientParent": (),
- "PySide2.QtGui.QWindow.type": (),
- "PySide2.QtGui.QWindow.unsetCursor": (),
- "PySide2.QtGui.QWindow.visibility": (),
- "PySide2.QtGui.QWindow.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
- "PySide2.QtGui.QWindow.width": (),
- "PySide2.QtGui.QWindow.winId": (),
- "PySide2.QtGui.QWindow.windowState": (),
- "PySide2.QtGui.QWindow.windowStates": (),
- "PySide2.QtGui.QWindow.x": (),
- "PySide2.QtGui.QWindow.y": (),
-# class PySide2.QtGui.QWindowStateChangeEvent:
- "PySide2.QtGui.QWindowStateChangeEvent.__init__": ('PySide2.QtCore.Qt.WindowStates', 'bool'),
- "PySide2.QtGui.QWindowStateChangeEvent.isOverride": (),
- "PySide2.QtGui.QWindowStateChangeEvent.oldState": (),
-# class PySide2.QtGui.Qt:
- "PySide2.QtGui.Qt.codecForHtml": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.Qt.convertFromPlainText": ('str', 'PySide2.QtCore.Qt.WhiteSpaceMode'),
- "PySide2.QtGui.Qt.mightBeRichText": ('str',),
- "PySide2.QtGui.Qt.qAlpha": ('int',),
- "PySide2.QtGui.Qt.qBlue": ('int',),
- "PySide2.QtGui.Qt.qGray": [('int',), ('int', 'int', 'int')],
- "PySide2.QtGui.Qt.qGreen": ('int',),
- "PySide2.QtGui.Qt.qIsGray": ('int',),
- "PySide2.QtGui.Qt.qRed": ('int',),
- "PySide2.QtGui.Qt.qRgb": ('int', 'int', 'int'),
- "PySide2.QtGui.Qt.qRgba": ('int', 'int', 'int', 'int'),
- }) if "PySide2.QtGui" in sys.modules else None
-# Module PySide2.QtWidgets
-sig_dict.update({
-# class PySide2.QtWidgets.QAbstractButton:
- "PySide2.QtWidgets.QAbstractButton.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QAbstractButton.animateClick": ('int',),
- "PySide2.QtWidgets.QAbstractButton.autoExclusive": (),
- "PySide2.QtWidgets.QAbstractButton.autoRepeat": (),
- "PySide2.QtWidgets.QAbstractButton.autoRepeatDelay": (),
- "PySide2.QtWidgets.QAbstractButton.autoRepeatInterval": (),
- "PySide2.QtWidgets.QAbstractButton.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAbstractButton.checkStateSet": (),
- "PySide2.QtWidgets.QAbstractButton.click": (),
- "PySide2.QtWidgets.QAbstractButton.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAbstractButton.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QAbstractButton.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QAbstractButton.group": (),
- "PySide2.QtWidgets.QAbstractButton.hitButton": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QAbstractButton.icon": (),
- "PySide2.QtWidgets.QAbstractButton.iconSize": (),
- "PySide2.QtWidgets.QAbstractButton.isCheckable": (),
- "PySide2.QtWidgets.QAbstractButton.isChecked": (),
- "PySide2.QtWidgets.QAbstractButton.isDown": (),
- "PySide2.QtWidgets.QAbstractButton.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QAbstractButton.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QAbstractButton.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractButton.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractButton.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractButton.nextCheckState": (),
- "PySide2.QtWidgets.QAbstractButton.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QAbstractButton.setAutoExclusive": ('bool',),
- "PySide2.QtWidgets.QAbstractButton.setAutoRepeat": ('bool',),
- "PySide2.QtWidgets.QAbstractButton.setAutoRepeatDelay": ('int',),
- "PySide2.QtWidgets.QAbstractButton.setAutoRepeatInterval": ('int',),
- "PySide2.QtWidgets.QAbstractButton.setCheckable": ('bool',),
- "PySide2.QtWidgets.QAbstractButton.setChecked": ('bool',),
- "PySide2.QtWidgets.QAbstractButton.setDown": ('bool',),
- "PySide2.QtWidgets.QAbstractButton.setIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtWidgets.QAbstractButton.setIconSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QAbstractButton.setShortcut": ('PySide2.QtGui.QKeySequence',),
- "PySide2.QtWidgets.QAbstractButton.setText": ('str',),
- "PySide2.QtWidgets.QAbstractButton.shortcut": (),
- "PySide2.QtWidgets.QAbstractButton.text": (),
- "PySide2.QtWidgets.QAbstractButton.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QAbstractButton.toggle": (),
-# class PySide2.QtWidgets.QAbstractGraphicsShapeItem:
- "PySide2.QtWidgets.QAbstractGraphicsShapeItem.__init__": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QAbstractGraphicsShapeItem.brush": (),
- "PySide2.QtWidgets.QAbstractGraphicsShapeItem.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QAbstractGraphicsShapeItem.opaqueArea": (),
- "PySide2.QtWidgets.QAbstractGraphicsShapeItem.pen": (),
- "PySide2.QtWidgets.QAbstractGraphicsShapeItem.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtWidgets.QAbstractGraphicsShapeItem.setPen": ('PySide2.QtGui.QPen',),
-# class PySide2.QtWidgets.QAbstractItemDelegate:
-# class PySide2.QtWidgets.QAbstractItemDelegate.EndEditHint:
- "PySide2.QtWidgets.QAbstractItemDelegate.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QAbstractItemDelegate.createEditor": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QAbstractItemDelegate.destroyEditor": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QAbstractItemDelegate.editorEvent": ('PySide2.QtCore.QEvent', 'PySide2.QtCore.QAbstractItemModel', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QAbstractItemDelegate.elidedText": ('PySide2.QtGui.QFontMetrics', 'int', 'PySide2.QtCore.Qt.TextElideMode', 'str'),
- "PySide2.QtWidgets.QAbstractItemDelegate.helpEvent": ('PySide2.QtGui.QHelpEvent', 'PySide2.QtWidgets.QAbstractItemView', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QAbstractItemDelegate.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QAbstractItemDelegate.paintingRoles": (),
- "PySide2.QtWidgets.QAbstractItemDelegate.setEditorData": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QAbstractItemDelegate.setModelData": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QAbstractItemModel', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QAbstractItemDelegate.sizeHint": ('PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QAbstractItemDelegate.updateEditorGeometry": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
-# class PySide2.QtWidgets.QAbstractItemView:
-# class PySide2.QtWidgets.QAbstractItemView.CursorAction:
-# class PySide2.QtWidgets.QAbstractItemView.DragDropMode:
-# class PySide2.QtWidgets.QAbstractItemView.DropIndicatorPosition:
-# class PySide2.QtWidgets.QAbstractItemView.EditTrigger:
-# class PySide2.QtWidgets.QAbstractItemView.EditTriggers:
-# class PySide2.QtWidgets.QAbstractItemView.ScrollHint:
-# class PySide2.QtWidgets.QAbstractItemView.ScrollMode:
-# class PySide2.QtWidgets.QAbstractItemView.SelectionBehavior:
-# class PySide2.QtWidgets.QAbstractItemView.SelectionMode:
-# class PySide2.QtWidgets.QAbstractItemView.State:
- "PySide2.QtWidgets.QAbstractItemView.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QAbstractItemView.alternatingRowColors": (),
- "PySide2.QtWidgets.QAbstractItemView.autoScrollMargin": (),
- "PySide2.QtWidgets.QAbstractItemView.clearSelection": (),
- "PySide2.QtWidgets.QAbstractItemView.closeEditor": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QAbstractItemDelegate.EndEditHint'),
- "PySide2.QtWidgets.QAbstractItemView.closePersistentEditor": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QAbstractItemView.commitData": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QAbstractItemView.currentChanged": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QAbstractItemView.currentIndex": (),
- "PySide2.QtWidgets.QAbstractItemView.dataChanged": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex', 'typing.List'),
- "PySide2.QtWidgets.QAbstractItemView.defaultDropAction": (),
- "PySide2.QtWidgets.QAbstractItemView.dirtyRegionOffset": (),
- "PySide2.QtWidgets.QAbstractItemView.doAutoScroll": (),
- "PySide2.QtWidgets.QAbstractItemView.doItemsLayout": (),
- "PySide2.QtWidgets.QAbstractItemView.dragDropMode": (),
- "PySide2.QtWidgets.QAbstractItemView.dragDropOverwriteMode": (),
- "PySide2.QtWidgets.QAbstractItemView.dragEnabled": (),
- "PySide2.QtWidgets.QAbstractItemView.dragEnterEvent": ('PySide2.QtGui.QDragEnterEvent',),
- "PySide2.QtWidgets.QAbstractItemView.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtWidgets.QAbstractItemView.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtWidgets.QAbstractItemView.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QAbstractItemView.dropIndicatorPosition": (),
- "PySide2.QtWidgets.QAbstractItemView.edit": [('PySide2.QtCore.QModelIndex',), ('PySide2.QtCore.QModelIndex', 'PySide2.QtWidgets.QAbstractItemView.EditTrigger', 'PySide2.QtCore.QEvent')],
- "PySide2.QtWidgets.QAbstractItemView.editTriggers": (),
- "PySide2.QtWidgets.QAbstractItemView.editorDestroyed": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QAbstractItemView.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAbstractItemView.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QAbstractItemView.executeDelayedItemsLayout": (),
- "PySide2.QtWidgets.QAbstractItemView.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QAbstractItemView.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QAbstractItemView.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QAbstractItemView.hasAutoScroll": (),
- "PySide2.QtWidgets.QAbstractItemView.horizontalOffset": (),
- "PySide2.QtWidgets.QAbstractItemView.horizontalScrollMode": (),
- "PySide2.QtWidgets.QAbstractItemView.horizontalScrollbarAction": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.horizontalScrollbarValueChanged": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.horizontalStepsPerItem": (),
- "PySide2.QtWidgets.QAbstractItemView.iconSize": (),
- "PySide2.QtWidgets.QAbstractItemView.indexAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QAbstractItemView.indexWidget": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QAbstractItemView.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QAbstractItemView.inputMethodQuery": ('PySide2.QtCore.Qt.InputMethodQuery',),
- "PySide2.QtWidgets.QAbstractItemView.isIndexHidden": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QAbstractItemView.isPersistentEditorOpen": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QAbstractItemView.itemDelegate": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtWidgets.QAbstractItemView.itemDelegateForColumn": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.itemDelegateForRow": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QAbstractItemView.keyboardSearch": ('str',),
- "PySide2.QtWidgets.QAbstractItemView.model": (),
- "PySide2.QtWidgets.QAbstractItemView.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractItemView.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractItemView.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractItemView.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractItemView.moveCursor": ('PySide2.QtWidgets.QAbstractItemView.CursorAction', 'PySide2.QtCore.Qt.KeyboardModifiers'),
- "PySide2.QtWidgets.QAbstractItemView.openPersistentEditor": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QAbstractItemView.reset": (),
- "PySide2.QtWidgets.QAbstractItemView.resetHorizontalScrollMode": (),
- "PySide2.QtWidgets.QAbstractItemView.resetVerticalScrollMode": (),
- "PySide2.QtWidgets.QAbstractItemView.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QAbstractItemView.rootIndex": (),
- "PySide2.QtWidgets.QAbstractItemView.rowsAboutToBeRemoved": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QAbstractItemView.rowsInserted": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QAbstractItemView.scheduleDelayedItemsLayout": (),
- "PySide2.QtWidgets.QAbstractItemView.scrollDirtyRegion": ('int', 'int'),
- "PySide2.QtWidgets.QAbstractItemView.scrollTo": ('PySide2.QtCore.QModelIndex', 'PySide2.QtWidgets.QAbstractItemView.ScrollHint'),
- "PySide2.QtWidgets.QAbstractItemView.scrollToBottom": (),
- "PySide2.QtWidgets.QAbstractItemView.scrollToTop": (),
- "PySide2.QtWidgets.QAbstractItemView.selectAll": (),
- "PySide2.QtWidgets.QAbstractItemView.selectedIndexes": (),
- "PySide2.QtWidgets.QAbstractItemView.selectionBehavior": (),
- "PySide2.QtWidgets.QAbstractItemView.selectionChanged": ('PySide2.QtCore.QItemSelection', 'PySide2.QtCore.QItemSelection'),
- "PySide2.QtWidgets.QAbstractItemView.selectionCommand": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QAbstractItemView.selectionMode": (),
- "PySide2.QtWidgets.QAbstractItemView.selectionModel": (),
- "PySide2.QtWidgets.QAbstractItemView.setAlternatingRowColors": ('bool',),
- "PySide2.QtWidgets.QAbstractItemView.setAutoScroll": ('bool',),
- "PySide2.QtWidgets.QAbstractItemView.setAutoScrollMargin": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.setCurrentIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QAbstractItemView.setDefaultDropAction": ('PySide2.QtCore.Qt.DropAction',),
- "PySide2.QtWidgets.QAbstractItemView.setDirtyRegion": ('PySide2.QtGui.QRegion',),
- "PySide2.QtWidgets.QAbstractItemView.setDragDropMode": ('PySide2.QtWidgets.QAbstractItemView.DragDropMode',),
- "PySide2.QtWidgets.QAbstractItemView.setDragDropOverwriteMode": ('bool',),
- "PySide2.QtWidgets.QAbstractItemView.setDragEnabled": ('bool',),
- "PySide2.QtWidgets.QAbstractItemView.setDropIndicatorShown": ('bool',),
- "PySide2.QtWidgets.QAbstractItemView.setEditTriggers": ('PySide2.QtWidgets.QAbstractItemView.EditTriggers',),
- "PySide2.QtWidgets.QAbstractItemView.setHorizontalScrollMode": ('PySide2.QtWidgets.QAbstractItemView.ScrollMode',),
- "PySide2.QtWidgets.QAbstractItemView.setHorizontalStepsPerItem": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.setIconSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QAbstractItemView.setIndexWidget": ('PySide2.QtCore.QModelIndex', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QAbstractItemView.setItemDelegate": ('PySide2.QtWidgets.QAbstractItemDelegate',),
- "PySide2.QtWidgets.QAbstractItemView.setItemDelegateForColumn": ('int', 'PySide2.QtWidgets.QAbstractItemDelegate'),
- "PySide2.QtWidgets.QAbstractItemView.setItemDelegateForRow": ('int', 'PySide2.QtWidgets.QAbstractItemDelegate'),
- "PySide2.QtWidgets.QAbstractItemView.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QAbstractItemView.setRootIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QAbstractItemView.setSelection": ('PySide2.QtCore.QRect', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags'),
- "PySide2.QtWidgets.QAbstractItemView.setSelectionBehavior": ('PySide2.QtWidgets.QAbstractItemView.SelectionBehavior',),
- "PySide2.QtWidgets.QAbstractItemView.setSelectionMode": ('PySide2.QtWidgets.QAbstractItemView.SelectionMode',),
- "PySide2.QtWidgets.QAbstractItemView.setSelectionModel": ('PySide2.QtCore.QItemSelectionModel',),
- "PySide2.QtWidgets.QAbstractItemView.setState": ('PySide2.QtWidgets.QAbstractItemView.State',),
- "PySide2.QtWidgets.QAbstractItemView.setTabKeyNavigation": ('bool',),
- "PySide2.QtWidgets.QAbstractItemView.setTextElideMode": ('PySide2.QtCore.Qt.TextElideMode',),
- "PySide2.QtWidgets.QAbstractItemView.setVerticalScrollMode": ('PySide2.QtWidgets.QAbstractItemView.ScrollMode',),
- "PySide2.QtWidgets.QAbstractItemView.setVerticalStepsPerItem": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.showDropIndicator": (),
- "PySide2.QtWidgets.QAbstractItemView.sizeHintForColumn": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.sizeHintForIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QAbstractItemView.sizeHintForRow": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.startAutoScroll": (),
- "PySide2.QtWidgets.QAbstractItemView.startDrag": ('PySide2.QtCore.Qt.DropActions',),
- "PySide2.QtWidgets.QAbstractItemView.state": (),
- "PySide2.QtWidgets.QAbstractItemView.stopAutoScroll": (),
- "PySide2.QtWidgets.QAbstractItemView.tabKeyNavigation": (),
- "PySide2.QtWidgets.QAbstractItemView.textElideMode": (),
- "PySide2.QtWidgets.QAbstractItemView.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QAbstractItemView.update": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtWidgets.QAbstractItemView.updateEditorData": (),
- "PySide2.QtWidgets.QAbstractItemView.updateEditorGeometries": (),
- "PySide2.QtWidgets.QAbstractItemView.updateGeometries": (),
- "PySide2.QtWidgets.QAbstractItemView.verticalOffset": (),
- "PySide2.QtWidgets.QAbstractItemView.verticalScrollMode": (),
- "PySide2.QtWidgets.QAbstractItemView.verticalScrollbarAction": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.verticalScrollbarValueChanged": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.verticalStepsPerItem": (),
- "PySide2.QtWidgets.QAbstractItemView.viewOptions": (),
- "PySide2.QtWidgets.QAbstractItemView.viewportEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAbstractItemView.viewportSizeHint": (),
- "PySide2.QtWidgets.QAbstractItemView.visualRect": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QAbstractItemView.visualRegionForSelection": ('PySide2.QtCore.QItemSelection',),
-# class PySide2.QtWidgets.QAbstractScrollArea:
-# class PySide2.QtWidgets.QAbstractScrollArea.SizeAdjustPolicy:
- "PySide2.QtWidgets.QAbstractScrollArea.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QAbstractScrollArea.addScrollBarWidget": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.Alignment'),
- "PySide2.QtWidgets.QAbstractScrollArea.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.cornerWidget": (),
- "PySide2.QtWidgets.QAbstractScrollArea.dragEnterEvent": ('PySide2.QtGui.QDragEnterEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QAbstractScrollArea.horizontalScrollBar": (),
- "PySide2.QtWidgets.QAbstractScrollArea.horizontalScrollBarPolicy": (),
- "PySide2.QtWidgets.QAbstractScrollArea.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.maximumViewportSize": (),
- "PySide2.QtWidgets.QAbstractScrollArea.minimumSizeHint": (),
- "PySide2.QtWidgets.QAbstractScrollArea.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.scrollBarWidgets": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QAbstractScrollArea.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QAbstractScrollArea.setCornerWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QAbstractScrollArea.setHorizontalScrollBar": ('PySide2.QtWidgets.QScrollBar',),
- "PySide2.QtWidgets.QAbstractScrollArea.setHorizontalScrollBarPolicy": ('PySide2.QtCore.Qt.ScrollBarPolicy',),
- "PySide2.QtWidgets.QAbstractScrollArea.setSizeAdjustPolicy": ('PySide2.QtWidgets.QAbstractScrollArea.SizeAdjustPolicy',),
- "PySide2.QtWidgets.QAbstractScrollArea.setVerticalScrollBar": ('PySide2.QtWidgets.QScrollBar',),
- "PySide2.QtWidgets.QAbstractScrollArea.setVerticalScrollBarPolicy": ('PySide2.QtCore.Qt.ScrollBarPolicy',),
- "PySide2.QtWidgets.QAbstractScrollArea.setViewport": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QAbstractScrollArea.setViewportMargins": [('PySide2.QtCore.QMargins',), ('int', 'int', 'int', 'int')],
- "PySide2.QtWidgets.QAbstractScrollArea.setupViewport": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QAbstractScrollArea.sizeAdjustPolicy": (),
- "PySide2.QtWidgets.QAbstractScrollArea.sizeHint": (),
- "PySide2.QtWidgets.QAbstractScrollArea.verticalScrollBar": (),
- "PySide2.QtWidgets.QAbstractScrollArea.verticalScrollBarPolicy": (),
- "PySide2.QtWidgets.QAbstractScrollArea.viewport": (),
- "PySide2.QtWidgets.QAbstractScrollArea.viewportEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.viewportMargins": (),
- "PySide2.QtWidgets.QAbstractScrollArea.viewportSizeHint": (),
- "PySide2.QtWidgets.QAbstractScrollArea.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtWidgets.QAbstractSlider:
-# class PySide2.QtWidgets.QAbstractSlider.SliderAction:
-# class PySide2.QtWidgets.QAbstractSlider.SliderChange:
- "PySide2.QtWidgets.QAbstractSlider.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QAbstractSlider.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAbstractSlider.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAbstractSlider.hasTracking": (),
- "PySide2.QtWidgets.QAbstractSlider.invertedAppearance": (),
- "PySide2.QtWidgets.QAbstractSlider.invertedControls": (),
- "PySide2.QtWidgets.QAbstractSlider.isSliderDown": (),
- "PySide2.QtWidgets.QAbstractSlider.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QAbstractSlider.maximum": (),
- "PySide2.QtWidgets.QAbstractSlider.minimum": (),
- "PySide2.QtWidgets.QAbstractSlider.orientation": (),
- "PySide2.QtWidgets.QAbstractSlider.pageStep": (),
- "PySide2.QtWidgets.QAbstractSlider.repeatAction": (),
- "PySide2.QtWidgets.QAbstractSlider.setInvertedAppearance": ('bool',),
- "PySide2.QtWidgets.QAbstractSlider.setInvertedControls": ('bool',),
- "PySide2.QtWidgets.QAbstractSlider.setMaximum": ('int',),
- "PySide2.QtWidgets.QAbstractSlider.setMinimum": ('int',),
- "PySide2.QtWidgets.QAbstractSlider.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtWidgets.QAbstractSlider.setPageStep": ('int',),
- "PySide2.QtWidgets.QAbstractSlider.setRange": ('int', 'int'),
- "PySide2.QtWidgets.QAbstractSlider.setRepeatAction": ('PySide2.QtWidgets.QAbstractSlider.SliderAction', 'int', 'int'),
- "PySide2.QtWidgets.QAbstractSlider.setSingleStep": ('int',),
- "PySide2.QtWidgets.QAbstractSlider.setSliderDown": ('bool',),
- "PySide2.QtWidgets.QAbstractSlider.setSliderPosition": ('int',),
- "PySide2.QtWidgets.QAbstractSlider.setTracking": ('bool',),
- "PySide2.QtWidgets.QAbstractSlider.setValue": ('int',),
- "PySide2.QtWidgets.QAbstractSlider.singleStep": (),
- "PySide2.QtWidgets.QAbstractSlider.sliderChange": ('PySide2.QtWidgets.QAbstractSlider.SliderChange',),
- "PySide2.QtWidgets.QAbstractSlider.sliderPosition": (),
- "PySide2.QtWidgets.QAbstractSlider.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QAbstractSlider.triggerAction": ('PySide2.QtWidgets.QAbstractSlider.SliderAction',),
- "PySide2.QtWidgets.QAbstractSlider.value": (),
- "PySide2.QtWidgets.QAbstractSlider.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtWidgets.QAbstractSpinBox:
-# class PySide2.QtWidgets.QAbstractSpinBox.ButtonSymbols:
-# class PySide2.QtWidgets.QAbstractSpinBox.CorrectionMode:
-# class PySide2.QtWidgets.QAbstractSpinBox.StepEnabled:
-# class PySide2.QtWidgets.QAbstractSpinBox.StepEnabledFlag:
-# class PySide2.QtWidgets.QAbstractSpinBox.StepType:
- "PySide2.QtWidgets.QAbstractSpinBox.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QAbstractSpinBox.alignment": (),
- "PySide2.QtWidgets.QAbstractSpinBox.buttonSymbols": (),
- "PySide2.QtWidgets.QAbstractSpinBox.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.clear": (),
- "PySide2.QtWidgets.QAbstractSpinBox.closeEvent": ('PySide2.QtGui.QCloseEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.correctionMode": (),
- "PySide2.QtWidgets.QAbstractSpinBox.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.fixup": ('str',),
- "PySide2.QtWidgets.QAbstractSpinBox.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.hasAcceptableInput": (),
- "PySide2.QtWidgets.QAbstractSpinBox.hasFrame": (),
- "PySide2.QtWidgets.QAbstractSpinBox.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.initStyleOption": ('PySide2.QtWidgets.QStyleOptionSpinBox',),
- "PySide2.QtWidgets.QAbstractSpinBox.inputMethodQuery": ('PySide2.QtCore.Qt.InputMethodQuery',),
- "PySide2.QtWidgets.QAbstractSpinBox.interpretText": (),
- "PySide2.QtWidgets.QAbstractSpinBox.isAccelerated": (),
- "PySide2.QtWidgets.QAbstractSpinBox.isGroupSeparatorShown": (),
- "PySide2.QtWidgets.QAbstractSpinBox.isReadOnly": (),
- "PySide2.QtWidgets.QAbstractSpinBox.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.keyboardTracking": (),
- "PySide2.QtWidgets.QAbstractSpinBox.lineEdit": (),
- "PySide2.QtWidgets.QAbstractSpinBox.minimumSizeHint": (),
- "PySide2.QtWidgets.QAbstractSpinBox.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.selectAll": (),
- "PySide2.QtWidgets.QAbstractSpinBox.setAccelerated": ('bool',),
- "PySide2.QtWidgets.QAbstractSpinBox.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QAbstractSpinBox.setButtonSymbols": ('PySide2.QtWidgets.QAbstractSpinBox.ButtonSymbols',),
- "PySide2.QtWidgets.QAbstractSpinBox.setCorrectionMode": ('PySide2.QtWidgets.QAbstractSpinBox.CorrectionMode',),
- "PySide2.QtWidgets.QAbstractSpinBox.setFrame": ('bool',),
- "PySide2.QtWidgets.QAbstractSpinBox.setGroupSeparatorShown": ('bool',),
- "PySide2.QtWidgets.QAbstractSpinBox.setKeyboardTracking": ('bool',),
- "PySide2.QtWidgets.QAbstractSpinBox.setLineEdit": ('PySide2.QtWidgets.QLineEdit',),
- "PySide2.QtWidgets.QAbstractSpinBox.setReadOnly": ('bool',),
- "PySide2.QtWidgets.QAbstractSpinBox.setSpecialValueText": ('str',),
- "PySide2.QtWidgets.QAbstractSpinBox.setWrapping": ('bool',),
- "PySide2.QtWidgets.QAbstractSpinBox.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.sizeHint": (),
- "PySide2.QtWidgets.QAbstractSpinBox.specialValueText": (),
- "PySide2.QtWidgets.QAbstractSpinBox.stepBy": ('int',),
- "PySide2.QtWidgets.QAbstractSpinBox.stepDown": (),
- "PySide2.QtWidgets.QAbstractSpinBox.stepEnabled": (),
- "PySide2.QtWidgets.QAbstractSpinBox.stepUp": (),
- "PySide2.QtWidgets.QAbstractSpinBox.text": (),
- "PySide2.QtWidgets.QAbstractSpinBox.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.validate": ('str', 'int'),
- "PySide2.QtWidgets.QAbstractSpinBox.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.wrapping": (),
-# class PySide2.QtWidgets.QAccessibleWidget:
- "PySide2.QtWidgets.QAccessibleWidget.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtGui.QAccessible.Role', 'str'),
- "PySide2.QtWidgets.QAccessibleWidget.actionNames": (),
- "PySide2.QtWidgets.QAccessibleWidget.addControllingSignal": ('str',),
- "PySide2.QtWidgets.QAccessibleWidget.backgroundColor": (),
- "PySide2.QtWidgets.QAccessibleWidget.child": ('int',),
- "PySide2.QtWidgets.QAccessibleWidget.childCount": (),
- "PySide2.QtWidgets.QAccessibleWidget.doAction": ('str',),
- "PySide2.QtWidgets.QAccessibleWidget.focusChild": (),
- "PySide2.QtWidgets.QAccessibleWidget.foregroundColor": (),
- "PySide2.QtWidgets.QAccessibleWidget.indexOfChild": ('PySide2.QtGui.QAccessibleInterface',),
- "PySide2.QtWidgets.QAccessibleWidget.interface_cast": ('PySide2.QtGui.QAccessible.InterfaceType',),
- "PySide2.QtWidgets.QAccessibleWidget.isValid": (),
- "PySide2.QtWidgets.QAccessibleWidget.keyBindingsForAction": ('str',),
- "PySide2.QtWidgets.QAccessibleWidget.parent": (),
- "PySide2.QtWidgets.QAccessibleWidget.parentObject": (),
- "PySide2.QtWidgets.QAccessibleWidget.rect": (),
- "PySide2.QtWidgets.QAccessibleWidget.relations": ('PySide2.QtGui.QAccessible.Relation',),
- "PySide2.QtWidgets.QAccessibleWidget.role": (),
- "PySide2.QtWidgets.QAccessibleWidget.state": (),
- "PySide2.QtWidgets.QAccessibleWidget.text": ('PySide2.QtGui.QAccessible.Text',),
- "PySide2.QtWidgets.QAccessibleWidget.widget": (),
- "PySide2.QtWidgets.QAccessibleWidget.window": (),
-# class PySide2.QtWidgets.QAction:
-# class PySide2.QtWidgets.QAction.ActionEvent:
-# class PySide2.QtWidgets.QAction.MenuRole:
-# class PySide2.QtWidgets.QAction.Priority:
- "PySide2.QtWidgets.QAction.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtGui.QIcon', 'str', 'PySide2.QtCore.QObject'), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtWidgets.QAction.actionGroup": (),
- "PySide2.QtWidgets.QAction.activate": ('PySide2.QtWidgets.QAction.ActionEvent',),
- "PySide2.QtWidgets.QAction.associatedGraphicsWidgets": (),
- "PySide2.QtWidgets.QAction.associatedWidgets": (),
- "PySide2.QtWidgets.QAction.autoRepeat": (),
- "PySide2.QtWidgets.QAction.data": (),
- "PySide2.QtWidgets.QAction.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAction.font": (),
- "PySide2.QtWidgets.QAction.hover": (),
- "PySide2.QtWidgets.QAction.icon": (),
- "PySide2.QtWidgets.QAction.iconText": (),
- "PySide2.QtWidgets.QAction.isCheckable": (),
- "PySide2.QtWidgets.QAction.isChecked": (),
- "PySide2.QtWidgets.QAction.isEnabled": (),
- "PySide2.QtWidgets.QAction.isIconVisibleInMenu": (),
- "PySide2.QtWidgets.QAction.isSeparator": (),
- "PySide2.QtWidgets.QAction.isShortcutVisibleInContextMenu": (),
- "PySide2.QtWidgets.QAction.isVisible": (),
- "PySide2.QtWidgets.QAction.menu": (),
- "PySide2.QtWidgets.QAction.menuRole": (),
- "PySide2.QtWidgets.QAction.parentWidget": (),
- "PySide2.QtWidgets.QAction.priority": (),
- "PySide2.QtWidgets.QAction.setActionGroup": ('PySide2.QtWidgets.QActionGroup',),
- "PySide2.QtWidgets.QAction.setAutoRepeat": ('bool',),
- "PySide2.QtWidgets.QAction.setCheckable": ('bool',),
- "PySide2.QtWidgets.QAction.setChecked": ('bool',),
- "PySide2.QtWidgets.QAction.setData": ('typing.Any',),
- "PySide2.QtWidgets.QAction.setDisabled": ('bool',),
- "PySide2.QtWidgets.QAction.setEnabled": ('bool',),
- "PySide2.QtWidgets.QAction.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QAction.setIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtWidgets.QAction.setIconText": ('str',),
- "PySide2.QtWidgets.QAction.setIconVisibleInMenu": ('bool',),
- "PySide2.QtWidgets.QAction.setMenu": ('PySide2.QtWidgets.QMenu',),
- "PySide2.QtWidgets.QAction.setMenuRole": ('PySide2.QtWidgets.QAction.MenuRole',),
- "PySide2.QtWidgets.QAction.setPriority": ('PySide2.QtWidgets.QAction.Priority',),
- "PySide2.QtWidgets.QAction.setSeparator": ('bool',),
- "PySide2.QtWidgets.QAction.setShortcut": ('PySide2.QtGui.QKeySequence',),
- "PySide2.QtWidgets.QAction.setShortcutContext": ('PySide2.QtCore.Qt.ShortcutContext',),
- "PySide2.QtWidgets.QAction.setShortcutVisibleInContextMenu": ('bool',),
- "PySide2.QtWidgets.QAction.setShortcuts": [('PySide2.QtGui.QKeySequence.StandardKey',), ('typing.Sequence',)],
- "PySide2.QtWidgets.QAction.setStatusTip": ('str',),
- "PySide2.QtWidgets.QAction.setText": ('str',),
- "PySide2.QtWidgets.QAction.setToolTip": ('str',),
- "PySide2.QtWidgets.QAction.setVisible": ('bool',),
- "PySide2.QtWidgets.QAction.setWhatsThis": ('str',),
- "PySide2.QtWidgets.QAction.shortcut": (),
- "PySide2.QtWidgets.QAction.shortcutContext": (),
- "PySide2.QtWidgets.QAction.shortcuts": (),
- "PySide2.QtWidgets.QAction.showStatusText": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QAction.statusTip": (),
- "PySide2.QtWidgets.QAction.text": (),
- "PySide2.QtWidgets.QAction.toggle": (),
- "PySide2.QtWidgets.QAction.toolTip": (),
- "PySide2.QtWidgets.QAction.trigger": (),
- "PySide2.QtWidgets.QAction.whatsThis": (),
-# class PySide2.QtWidgets.QActionGroup:
-# class PySide2.QtWidgets.QActionGroup.ExclusionPolicy:
- "PySide2.QtWidgets.QActionGroup.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QActionGroup.actions": (),
- "PySide2.QtWidgets.QActionGroup.addAction": [('PySide2.QtGui.QIcon', 'str'), ('PySide2.QtWidgets.QAction',), ('str',)],
- "PySide2.QtWidgets.QActionGroup.checkedAction": (),
- "PySide2.QtWidgets.QActionGroup.exclusionPolicy": (),
- "PySide2.QtWidgets.QActionGroup.isEnabled": (),
- "PySide2.QtWidgets.QActionGroup.isExclusive": (),
- "PySide2.QtWidgets.QActionGroup.isVisible": (),
- "PySide2.QtWidgets.QActionGroup.removeAction": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QActionGroup.setDisabled": ('bool',),
- "PySide2.QtWidgets.QActionGroup.setEnabled": ('bool',),
- "PySide2.QtWidgets.QActionGroup.setExclusionPolicy": ('PySide2.QtWidgets.QActionGroup.ExclusionPolicy',),
- "PySide2.QtWidgets.QActionGroup.setExclusive": ('bool',),
- "PySide2.QtWidgets.QActionGroup.setVisible": ('bool',),
-# class PySide2.QtWidgets.QApplication:
-# class PySide2.QtWidgets.QApplication.ColorSpec:
- "PySide2.QtWidgets.QApplication.__init__": [(), ('typing.Sequence',)],
- "PySide2.QtWidgets.QApplication.aboutQt": (),
- "PySide2.QtWidgets.QApplication.activeModalWidget": (),
- "PySide2.QtWidgets.QApplication.activePopupWidget": (),
- "PySide2.QtWidgets.QApplication.activeWindow": (),
- "PySide2.QtWidgets.QApplication.alert": ('PySide2.QtWidgets.QWidget', 'int'),
- "PySide2.QtWidgets.QApplication.allWidgets": (),
- "PySide2.QtWidgets.QApplication.autoSipEnabled": (),
- "PySide2.QtWidgets.QApplication.beep": (),
- "PySide2.QtWidgets.QApplication.closeAllWindows": (),
- "PySide2.QtWidgets.QApplication.colorSpec": (),
- "PySide2.QtWidgets.QApplication.cursorFlashTime": (),
- "PySide2.QtWidgets.QApplication.desktop": (),
- "PySide2.QtWidgets.QApplication.doubleClickInterval": (),
- "PySide2.QtWidgets.QApplication.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QApplication.exec_": (),
- "PySide2.QtWidgets.QApplication.focusWidget": (),
- "PySide2.QtWidgets.QApplication.font": [(), ('PySide2.QtWidgets.QWidget',), ('bytes',)],
- "PySide2.QtWidgets.QApplication.fontMetrics": (),
- "PySide2.QtWidgets.QApplication.globalStrut": (),
- "PySide2.QtWidgets.QApplication.isEffectEnabled": ('PySide2.QtCore.Qt.UIEffect',),
- "PySide2.QtWidgets.QApplication.keyboardInputInterval": (),
- "PySide2.QtWidgets.QApplication.notify": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QApplication.palette": [(), ('PySide2.QtWidgets.QWidget',), ('bytes',)],
- "PySide2.QtWidgets.QApplication.setActiveWindow": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QApplication.setAutoSipEnabled": ('bool',),
- "PySide2.QtWidgets.QApplication.setColorSpec": ('int',),
- "PySide2.QtWidgets.QApplication.setCursorFlashTime": ('int',),
- "PySide2.QtWidgets.QApplication.setDoubleClickInterval": ('int',),
- "PySide2.QtWidgets.QApplication.setEffectEnabled": ('PySide2.QtCore.Qt.UIEffect', 'bool'),
- "PySide2.QtWidgets.QApplication.setFont": [('PySide2.QtGui.QFont',), ('PySide2.QtGui.QFont', 'bytes')],
- "PySide2.QtWidgets.QApplication.setGlobalStrut": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QApplication.setKeyboardInputInterval": ('int',),
- "PySide2.QtWidgets.QApplication.setPalette": [('PySide2.QtGui.QPalette',), ('PySide2.QtGui.QPalette', 'bytes')],
- "PySide2.QtWidgets.QApplication.setStartDragDistance": ('int',),
- "PySide2.QtWidgets.QApplication.setStartDragTime": ('int',),
- "PySide2.QtWidgets.QApplication.setStyle": [('PySide2.QtWidgets.QStyle',), ('str',)],
- "PySide2.QtWidgets.QApplication.setStyleSheet": ('str',),
- "PySide2.QtWidgets.QApplication.setWheelScrollLines": ('int',),
- "PySide2.QtWidgets.QApplication.setWindowIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtWidgets.QApplication.startDragDistance": (),
- "PySide2.QtWidgets.QApplication.startDragTime": (),
- "PySide2.QtWidgets.QApplication.style": (),
- "PySide2.QtWidgets.QApplication.styleSheet": (),
- "PySide2.QtWidgets.QApplication.topLevelAt": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtWidgets.QApplication.topLevelWidgets": (),
- "PySide2.QtWidgets.QApplication.wheelScrollLines": (),
- "PySide2.QtWidgets.QApplication.widgetAt": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtWidgets.QApplication.windowIcon": (),
-# class PySide2.QtWidgets.QBoxLayout:
-# class PySide2.QtWidgets.QBoxLayout.Direction:
- "PySide2.QtWidgets.QBoxLayout.__init__": ('PySide2.QtWidgets.QBoxLayout.Direction', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QBoxLayout.addItem": ('PySide2.QtWidgets.QLayoutItem',),
- "PySide2.QtWidgets.QBoxLayout.addLayout": ('PySide2.QtWidgets.QLayout', 'int'),
- "PySide2.QtWidgets.QBoxLayout.addSpacerItem": ('PySide2.QtWidgets.QSpacerItem',),
- "PySide2.QtWidgets.QBoxLayout.addSpacing": ('int',),
- "PySide2.QtWidgets.QBoxLayout.addStretch": ('int',),
- "PySide2.QtWidgets.QBoxLayout.addStrut": ('int',),
- "PySide2.QtWidgets.QBoxLayout.addWidget": [('PySide2.QtWidgets.QWidget',), ('PySide2.QtWidgets.QWidget', 'int', 'PySide2.QtCore.Qt.Alignment')],
- "PySide2.QtWidgets.QBoxLayout.count": (),
- "PySide2.QtWidgets.QBoxLayout.direction": (),
- "PySide2.QtWidgets.QBoxLayout.expandingDirections": (),
- "PySide2.QtWidgets.QBoxLayout.hasHeightForWidth": (),
- "PySide2.QtWidgets.QBoxLayout.heightForWidth": ('int',),
- "PySide2.QtWidgets.QBoxLayout.insertItem": ('int', 'PySide2.QtWidgets.QLayoutItem'),
- "PySide2.QtWidgets.QBoxLayout.insertLayout": ('int', 'PySide2.QtWidgets.QLayout', 'int'),
- "PySide2.QtWidgets.QBoxLayout.insertSpacerItem": ('int', 'PySide2.QtWidgets.QSpacerItem'),
- "PySide2.QtWidgets.QBoxLayout.insertSpacing": ('int', 'int'),
- "PySide2.QtWidgets.QBoxLayout.insertStretch": ('int', 'int'),
- "PySide2.QtWidgets.QBoxLayout.insertWidget": ('int', 'PySide2.QtWidgets.QWidget', 'int', 'PySide2.QtCore.Qt.Alignment'),
- "PySide2.QtWidgets.QBoxLayout.invalidate": (),
- "PySide2.QtWidgets.QBoxLayout.itemAt": ('int',),
- "PySide2.QtWidgets.QBoxLayout.maximumSize": (),
- "PySide2.QtWidgets.QBoxLayout.minimumHeightForWidth": ('int',),
- "PySide2.QtWidgets.QBoxLayout.minimumSize": (),
- "PySide2.QtWidgets.QBoxLayout.setDirection": ('PySide2.QtWidgets.QBoxLayout.Direction',),
- "PySide2.QtWidgets.QBoxLayout.setGeometry": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QBoxLayout.setSpacing": ('int',),
- "PySide2.QtWidgets.QBoxLayout.setStretch": ('int', 'int'),
- "PySide2.QtWidgets.QBoxLayout.setStretchFactor": [('PySide2.QtWidgets.QLayout', 'int'), ('PySide2.QtWidgets.QWidget', 'int')],
- "PySide2.QtWidgets.QBoxLayout.sizeHint": (),
- "PySide2.QtWidgets.QBoxLayout.spacing": (),
- "PySide2.QtWidgets.QBoxLayout.stretch": ('int',),
- "PySide2.QtWidgets.QBoxLayout.takeAt": ('int',),
-# class PySide2.QtWidgets.QButtonGroup:
- "PySide2.QtWidgets.QButtonGroup.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QButtonGroup.addButton": ('PySide2.QtWidgets.QAbstractButton', 'int'),
- "PySide2.QtWidgets.QButtonGroup.button": ('int',),
- "PySide2.QtWidgets.QButtonGroup.buttons": (),
- "PySide2.QtWidgets.QButtonGroup.checkedButton": (),
- "PySide2.QtWidgets.QButtonGroup.checkedId": (),
- "PySide2.QtWidgets.QButtonGroup.exclusive": (),
- "PySide2.QtWidgets.QButtonGroup.id": ('PySide2.QtWidgets.QAbstractButton',),
- "PySide2.QtWidgets.QButtonGroup.removeButton": ('PySide2.QtWidgets.QAbstractButton',),
- "PySide2.QtWidgets.QButtonGroup.setExclusive": ('bool',),
- "PySide2.QtWidgets.QButtonGroup.setId": ('PySide2.QtWidgets.QAbstractButton', 'int'),
-# class PySide2.QtWidgets.QCalendarWidget:
-# class PySide2.QtWidgets.QCalendarWidget.HorizontalHeaderFormat:
-# class PySide2.QtWidgets.QCalendarWidget.SelectionMode:
-# class PySide2.QtWidgets.QCalendarWidget.VerticalHeaderFormat:
- "PySide2.QtWidgets.QCalendarWidget.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QCalendarWidget.calendar": (),
- "PySide2.QtWidgets.QCalendarWidget.dateEditAcceptDelay": (),
- "PySide2.QtWidgets.QCalendarWidget.dateTextFormat": [(), ('PySide2.QtCore.QDate',)],
- "PySide2.QtWidgets.QCalendarWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QCalendarWidget.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QCalendarWidget.firstDayOfWeek": (),
- "PySide2.QtWidgets.QCalendarWidget.headerTextFormat": (),
- "PySide2.QtWidgets.QCalendarWidget.horizontalHeaderFormat": (),
- "PySide2.QtWidgets.QCalendarWidget.isDateEditEnabled": (),
- "PySide2.QtWidgets.QCalendarWidget.isGridVisible": (),
- "PySide2.QtWidgets.QCalendarWidget.isNavigationBarVisible": (),
- "PySide2.QtWidgets.QCalendarWidget.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QCalendarWidget.maximumDate": (),
- "PySide2.QtWidgets.QCalendarWidget.minimumDate": (),
- "PySide2.QtWidgets.QCalendarWidget.minimumSizeHint": (),
- "PySide2.QtWidgets.QCalendarWidget.monthShown": (),
- "PySide2.QtWidgets.QCalendarWidget.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QCalendarWidget.paintCell": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRect', 'PySide2.QtCore.QDate'),
- "PySide2.QtWidgets.QCalendarWidget.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QCalendarWidget.selectedDate": (),
- "PySide2.QtWidgets.QCalendarWidget.selectionMode": (),
- "PySide2.QtWidgets.QCalendarWidget.setCalendar": ('PySide2.QtCore.QCalendar',),
- "PySide2.QtWidgets.QCalendarWidget.setCurrentPage": ('int', 'int'),
- "PySide2.QtWidgets.QCalendarWidget.setDateEditAcceptDelay": ('int',),
- "PySide2.QtWidgets.QCalendarWidget.setDateEditEnabled": ('bool',),
- "PySide2.QtWidgets.QCalendarWidget.setDateRange": ('PySide2.QtCore.QDate', 'PySide2.QtCore.QDate'),
- "PySide2.QtWidgets.QCalendarWidget.setDateTextFormat": ('PySide2.QtCore.QDate', 'PySide2.QtGui.QTextCharFormat'),
- "PySide2.QtWidgets.QCalendarWidget.setFirstDayOfWeek": ('PySide2.QtCore.Qt.DayOfWeek',),
- "PySide2.QtWidgets.QCalendarWidget.setGridVisible": ('bool',),
- "PySide2.QtWidgets.QCalendarWidget.setHeaderTextFormat": ('PySide2.QtGui.QTextCharFormat',),
- "PySide2.QtWidgets.QCalendarWidget.setHorizontalHeaderFormat": ('PySide2.QtWidgets.QCalendarWidget.HorizontalHeaderFormat',),
- "PySide2.QtWidgets.QCalendarWidget.setMaximumDate": ('PySide2.QtCore.QDate',),
- "PySide2.QtWidgets.QCalendarWidget.setMinimumDate": ('PySide2.QtCore.QDate',),
- "PySide2.QtWidgets.QCalendarWidget.setNavigationBarVisible": ('bool',),
- "PySide2.QtWidgets.QCalendarWidget.setSelectedDate": ('PySide2.QtCore.QDate',),
- "PySide2.QtWidgets.QCalendarWidget.setSelectionMode": ('PySide2.QtWidgets.QCalendarWidget.SelectionMode',),
- "PySide2.QtWidgets.QCalendarWidget.setVerticalHeaderFormat": ('PySide2.QtWidgets.QCalendarWidget.VerticalHeaderFormat',),
- "PySide2.QtWidgets.QCalendarWidget.setWeekdayTextFormat": ('PySide2.QtCore.Qt.DayOfWeek', 'PySide2.QtGui.QTextCharFormat'),
- "PySide2.QtWidgets.QCalendarWidget.showNextMonth": (),
- "PySide2.QtWidgets.QCalendarWidget.showNextYear": (),
- "PySide2.QtWidgets.QCalendarWidget.showPreviousMonth": (),
- "PySide2.QtWidgets.QCalendarWidget.showPreviousYear": (),
- "PySide2.QtWidgets.QCalendarWidget.showSelectedDate": (),
- "PySide2.QtWidgets.QCalendarWidget.showToday": (),
- "PySide2.QtWidgets.QCalendarWidget.sizeHint": (),
- "PySide2.QtWidgets.QCalendarWidget.updateCell": ('PySide2.QtCore.QDate',),
- "PySide2.QtWidgets.QCalendarWidget.updateCells": (),
- "PySide2.QtWidgets.QCalendarWidget.verticalHeaderFormat": (),
- "PySide2.QtWidgets.QCalendarWidget.weekdayTextFormat": ('PySide2.QtCore.Qt.DayOfWeek',),
- "PySide2.QtWidgets.QCalendarWidget.yearShown": (),
-# class PySide2.QtWidgets.QCheckBox:
- "PySide2.QtWidgets.QCheckBox.__init__": [('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QCheckBox.checkState": (),
- "PySide2.QtWidgets.QCheckBox.checkStateSet": (),
- "PySide2.QtWidgets.QCheckBox.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QCheckBox.hitButton": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QCheckBox.initStyleOption": ('PySide2.QtWidgets.QStyleOptionButton',),
- "PySide2.QtWidgets.QCheckBox.isTristate": (),
- "PySide2.QtWidgets.QCheckBox.minimumSizeHint": (),
- "PySide2.QtWidgets.QCheckBox.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QCheckBox.nextCheckState": (),
- "PySide2.QtWidgets.QCheckBox.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QCheckBox.setCheckState": ('PySide2.QtCore.Qt.CheckState',),
- "PySide2.QtWidgets.QCheckBox.setTristate": ('bool',),
- "PySide2.QtWidgets.QCheckBox.sizeHint": (),
-# class PySide2.QtWidgets.QColorDialog:
-# class PySide2.QtWidgets.QColorDialog.ColorDialogOption:
-# class PySide2.QtWidgets.QColorDialog.ColorDialogOptions:
- "PySide2.QtWidgets.QColorDialog.__init__": [('PySide2.QtGui.QColor', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QColorDialog.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QColorDialog.currentColor": (),
- "PySide2.QtWidgets.QColorDialog.customColor": ('int',),
- "PySide2.QtWidgets.QColorDialog.customCount": (),
- "PySide2.QtWidgets.QColorDialog.done": ('int',),
- "PySide2.QtWidgets.QColorDialog.getColor": ('PySide2.QtGui.QColor', 'PySide2.QtWidgets.QWidget', 'str', 'PySide2.QtWidgets.QColorDialog.ColorDialogOptions'),
- "PySide2.QtWidgets.QColorDialog.open": [(), ('PySide2.QtCore.QObject', 'bytes')],
- "PySide2.QtWidgets.QColorDialog.options": (),
- "PySide2.QtWidgets.QColorDialog.selectedColor": (),
- "PySide2.QtWidgets.QColorDialog.setCurrentColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QColorDialog.setCustomColor": ('int', 'PySide2.QtGui.QColor'),
- "PySide2.QtWidgets.QColorDialog.setOption": ('PySide2.QtWidgets.QColorDialog.ColorDialogOption', 'bool'),
- "PySide2.QtWidgets.QColorDialog.setOptions": ('PySide2.QtWidgets.QColorDialog.ColorDialogOptions',),
- "PySide2.QtWidgets.QColorDialog.setStandardColor": ('int', 'PySide2.QtGui.QColor'),
- "PySide2.QtWidgets.QColorDialog.setVisible": ('bool',),
- "PySide2.QtWidgets.QColorDialog.standardColor": ('int',),
- "PySide2.QtWidgets.QColorDialog.testOption": ('PySide2.QtWidgets.QColorDialog.ColorDialogOption',),
-# class PySide2.QtWidgets.QColormap:
-# class PySide2.QtWidgets.QColormap.Mode:
- "PySide2.QtWidgets.QColormap.__init__": ('PySide2.QtWidgets.QColormap',),
- "PySide2.QtWidgets.QColormap.__copy__": (),
- "PySide2.QtWidgets.QColormap.cleanup": (),
- "PySide2.QtWidgets.QColormap.colorAt": ('int',),
- "PySide2.QtWidgets.QColormap.colormap": (),
- "PySide2.QtWidgets.QColormap.depth": (),
- "PySide2.QtWidgets.QColormap.initialize": (),
- "PySide2.QtWidgets.QColormap.instance": ('int',),
- "PySide2.QtWidgets.QColormap.mode": (),
- "PySide2.QtWidgets.QColormap.pixel": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QColormap.size": (),
-# class PySide2.QtWidgets.QColumnView:
- "PySide2.QtWidgets.QColumnView.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QColumnView.columnWidths": (),
- "PySide2.QtWidgets.QColumnView.createColumn": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QColumnView.currentChanged": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QColumnView.horizontalOffset": (),
- "PySide2.QtWidgets.QColumnView.indexAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QColumnView.initializeColumn": ('PySide2.QtWidgets.QAbstractItemView',),
- "PySide2.QtWidgets.QColumnView.isIndexHidden": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QColumnView.moveCursor": ('PySide2.QtWidgets.QAbstractItemView.CursorAction', 'PySide2.QtCore.Qt.KeyboardModifiers'),
- "PySide2.QtWidgets.QColumnView.previewWidget": (),
- "PySide2.QtWidgets.QColumnView.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QColumnView.resizeGripsVisible": (),
- "PySide2.QtWidgets.QColumnView.rowsInserted": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QColumnView.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QColumnView.scrollTo": ('PySide2.QtCore.QModelIndex', 'PySide2.QtWidgets.QAbstractItemView.ScrollHint'),
- "PySide2.QtWidgets.QColumnView.selectAll": (),
- "PySide2.QtWidgets.QColumnView.setColumnWidths": ('typing.Sequence',),
- "PySide2.QtWidgets.QColumnView.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QColumnView.setPreviewWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QColumnView.setResizeGripsVisible": ('bool',),
- "PySide2.QtWidgets.QColumnView.setRootIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QColumnView.setSelection": ('PySide2.QtCore.QRect', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags'),
- "PySide2.QtWidgets.QColumnView.setSelectionModel": ('PySide2.QtCore.QItemSelectionModel',),
- "PySide2.QtWidgets.QColumnView.sizeHint": (),
- "PySide2.QtWidgets.QColumnView.verticalOffset": (),
- "PySide2.QtWidgets.QColumnView.visualRect": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QColumnView.visualRegionForSelection": ('PySide2.QtCore.QItemSelection',),
-# class PySide2.QtWidgets.QComboBox:
-# class PySide2.QtWidgets.QComboBox.InsertPolicy:
-# class PySide2.QtWidgets.QComboBox.SizeAdjustPolicy:
- "PySide2.QtWidgets.QComboBox.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QComboBox.addItem": [('PySide2.QtGui.QIcon', 'str', 'typing.Any'), ('str', 'typing.Any')],
- "PySide2.QtWidgets.QComboBox.addItems": ('typing.Sequence',),
- "PySide2.QtWidgets.QComboBox.autoCompletion": (),
- "PySide2.QtWidgets.QComboBox.autoCompletionCaseSensitivity": (),
- "PySide2.QtWidgets.QComboBox.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QComboBox.clear": (),
- "PySide2.QtWidgets.QComboBox.clearEditText": (),
- "PySide2.QtWidgets.QComboBox.completer": (),
- "PySide2.QtWidgets.QComboBox.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QComboBox.count": (),
- "PySide2.QtWidgets.QComboBox.currentData": ('int',),
- "PySide2.QtWidgets.QComboBox.currentIndex": (),
- "PySide2.QtWidgets.QComboBox.currentText": (),
- "PySide2.QtWidgets.QComboBox.duplicatesEnabled": (),
- "PySide2.QtWidgets.QComboBox.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QComboBox.findData": ('typing.Any', 'int', 'PySide2.QtCore.Qt.MatchFlags'),
- "PySide2.QtWidgets.QComboBox.findText": ('str', 'PySide2.QtCore.Qt.MatchFlags'),
- "PySide2.QtWidgets.QComboBox.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QComboBox.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QComboBox.hasFrame": (),
- "PySide2.QtWidgets.QComboBox.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWidgets.QComboBox.hidePopup": (),
- "PySide2.QtWidgets.QComboBox.iconSize": (),
- "PySide2.QtWidgets.QComboBox.initStyleOption": ('PySide2.QtWidgets.QStyleOptionComboBox',),
- "PySide2.QtWidgets.QComboBox.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QComboBox.inputMethodQuery": [('PySide2.QtCore.Qt.InputMethodQuery',), ('PySide2.QtCore.Qt.InputMethodQuery', 'typing.Any')],
- "PySide2.QtWidgets.QComboBox.insertItem": [('int', 'PySide2.QtGui.QIcon', 'str', 'typing.Any'), ('int', 'str', 'typing.Any')],
- "PySide2.QtWidgets.QComboBox.insertItems": ('int', 'typing.Sequence'),
- "PySide2.QtWidgets.QComboBox.insertPolicy": (),
- "PySide2.QtWidgets.QComboBox.insertSeparator": ('int',),
- "PySide2.QtWidgets.QComboBox.isEditable": (),
- "PySide2.QtWidgets.QComboBox.itemData": ('int', 'int'),
- "PySide2.QtWidgets.QComboBox.itemDelegate": (),
- "PySide2.QtWidgets.QComboBox.itemIcon": ('int',),
- "PySide2.QtWidgets.QComboBox.itemText": ('int',),
- "PySide2.QtWidgets.QComboBox.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QComboBox.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QComboBox.lineEdit": (),
- "PySide2.QtWidgets.QComboBox.maxCount": (),
- "PySide2.QtWidgets.QComboBox.maxVisibleItems": (),
- "PySide2.QtWidgets.QComboBox.minimumContentsLength": (),
- "PySide2.QtWidgets.QComboBox.minimumSizeHint": (),
- "PySide2.QtWidgets.QComboBox.model": (),
- "PySide2.QtWidgets.QComboBox.modelColumn": (),
- "PySide2.QtWidgets.QComboBox.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QComboBox.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QComboBox.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QComboBox.removeItem": ('int',),
- "PySide2.QtWidgets.QComboBox.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QComboBox.rootModelIndex": (),
- "PySide2.QtWidgets.QComboBox.setAutoCompletion": ('bool',),
- "PySide2.QtWidgets.QComboBox.setAutoCompletionCaseSensitivity": ('PySide2.QtCore.Qt.CaseSensitivity',),
- "PySide2.QtWidgets.QComboBox.setCompleter": ('PySide2.QtWidgets.QCompleter',),
- "PySide2.QtWidgets.QComboBox.setCurrentIndex": ('int',),
- "PySide2.QtWidgets.QComboBox.setCurrentText": ('str',),
- "PySide2.QtWidgets.QComboBox.setDuplicatesEnabled": ('bool',),
- "PySide2.QtWidgets.QComboBox.setEditText": ('str',),
- "PySide2.QtWidgets.QComboBox.setEditable": ('bool',),
- "PySide2.QtWidgets.QComboBox.setFrame": ('bool',),
- "PySide2.QtWidgets.QComboBox.setIconSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QComboBox.setInsertPolicy": ('PySide2.QtWidgets.QComboBox.InsertPolicy',),
- "PySide2.QtWidgets.QComboBox.setItemData": ('int', 'typing.Any', 'int'),
- "PySide2.QtWidgets.QComboBox.setItemDelegate": ('PySide2.QtWidgets.QAbstractItemDelegate',),
- "PySide2.QtWidgets.QComboBox.setItemIcon": ('int', 'PySide2.QtGui.QIcon'),
- "PySide2.QtWidgets.QComboBox.setItemText": ('int', 'str'),
- "PySide2.QtWidgets.QComboBox.setLineEdit": ('PySide2.QtWidgets.QLineEdit',),
- "PySide2.QtWidgets.QComboBox.setMaxCount": ('int',),
- "PySide2.QtWidgets.QComboBox.setMaxVisibleItems": ('int',),
- "PySide2.QtWidgets.QComboBox.setMinimumContentsLength": ('int',),
- "PySide2.QtWidgets.QComboBox.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QComboBox.setModelColumn": ('int',),
- "PySide2.QtWidgets.QComboBox.setRootModelIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QComboBox.setSizeAdjustPolicy": ('PySide2.QtWidgets.QComboBox.SizeAdjustPolicy',),
- "PySide2.QtWidgets.QComboBox.setValidator": ('PySide2.QtGui.QValidator',),
- "PySide2.QtWidgets.QComboBox.setView": ('PySide2.QtWidgets.QAbstractItemView',),
- "PySide2.QtWidgets.QComboBox.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QComboBox.showPopup": (),
- "PySide2.QtWidgets.QComboBox.sizeAdjustPolicy": (),
- "PySide2.QtWidgets.QComboBox.sizeHint": (),
- "PySide2.QtWidgets.QComboBox.validator": (),
- "PySide2.QtWidgets.QComboBox.view": (),
- "PySide2.QtWidgets.QComboBox.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtWidgets.QCommandLinkButton:
- "PySide2.QtWidgets.QCommandLinkButton.__init__": [('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget'), ('str', 'str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QCommandLinkButton.description": (),
- "PySide2.QtWidgets.QCommandLinkButton.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QCommandLinkButton.heightForWidth": ('int',),
- "PySide2.QtWidgets.QCommandLinkButton.minimumSizeHint": (),
- "PySide2.QtWidgets.QCommandLinkButton.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QCommandLinkButton.setDescription": ('str',),
- "PySide2.QtWidgets.QCommandLinkButton.sizeHint": (),
-# class PySide2.QtWidgets.QCommonStyle:
- "PySide2.QtWidgets.QCommonStyle.__init__": (),
- "PySide2.QtWidgets.QCommonStyle.drawComplexControl": ('PySide2.QtWidgets.QStyle.ComplexControl', 'PySide2.QtWidgets.QStyleOptionComplex', 'PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.drawControl": ('PySide2.QtWidgets.QStyle.ControlElement', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.drawPrimitive": ('PySide2.QtWidgets.QStyle.PrimitiveElement', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.generatedIconPixmap": ('PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QPixmap', 'PySide2.QtWidgets.QStyleOption'),
- "PySide2.QtWidgets.QCommonStyle.hitTestComplexControl": ('PySide2.QtWidgets.QStyle.ComplexControl', 'PySide2.QtWidgets.QStyleOptionComplex', 'PySide2.QtCore.QPoint', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.layoutSpacing": ('PySide2.QtWidgets.QSizePolicy.ControlType', 'PySide2.QtWidgets.QSizePolicy.ControlType', 'PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.pixelMetric": ('PySide2.QtWidgets.QStyle.PixelMetric', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.polish": [('PySide2.QtGui.QPalette',), ('PySide2.QtWidgets.QApplication',), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QCommonStyle.sizeFromContents": ('PySide2.QtWidgets.QStyle.ContentsType', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtCore.QSize', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.standardIcon": ('PySide2.QtWidgets.QStyle.StandardPixmap', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.standardPixmap": ('PySide2.QtWidgets.QStyle.StandardPixmap', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.styleHint": ('PySide2.QtWidgets.QStyle.StyleHint', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QStyleHintReturn'),
- "PySide2.QtWidgets.QCommonStyle.subControlRect": ('PySide2.QtWidgets.QStyle.ComplexControl', 'PySide2.QtWidgets.QStyleOptionComplex', 'PySide2.QtWidgets.QStyle.SubControl', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.subElementRect": ('PySide2.QtWidgets.QStyle.SubElement', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.unpolish": [('PySide2.QtWidgets.QApplication',), ('PySide2.QtWidgets.QWidget',)],
-# class PySide2.QtWidgets.QCompleter:
-# class PySide2.QtWidgets.QCompleter.CompletionMode:
-# class PySide2.QtWidgets.QCompleter.ModelSorting:
- "PySide2.QtWidgets.QCompleter.__init__": [('PySide2.QtCore.QAbstractItemModel', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QObject',), ('typing.Sequence', 'PySide2.QtCore.QObject')],
- "PySide2.QtWidgets.QCompleter.caseSensitivity": (),
- "PySide2.QtWidgets.QCompleter.complete": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QCompleter.completionColumn": (),
- "PySide2.QtWidgets.QCompleter.completionCount": (),
- "PySide2.QtWidgets.QCompleter.completionMode": (),
- "PySide2.QtWidgets.QCompleter.completionModel": (),
- "PySide2.QtWidgets.QCompleter.completionPrefix": (),
- "PySide2.QtWidgets.QCompleter.completionRole": (),
- "PySide2.QtWidgets.QCompleter.currentCompletion": (),
- "PySide2.QtWidgets.QCompleter.currentIndex": (),
- "PySide2.QtWidgets.QCompleter.currentRow": (),
- "PySide2.QtWidgets.QCompleter.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QCompleter.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QCompleter.filterMode": (),
- "PySide2.QtWidgets.QCompleter.maxVisibleItems": (),
- "PySide2.QtWidgets.QCompleter.model": (),
- "PySide2.QtWidgets.QCompleter.modelSorting": (),
- "PySide2.QtWidgets.QCompleter.pathFromIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QCompleter.popup": (),
- "PySide2.QtWidgets.QCompleter.setCaseSensitivity": ('PySide2.QtCore.Qt.CaseSensitivity',),
- "PySide2.QtWidgets.QCompleter.setCompletionColumn": ('int',),
- "PySide2.QtWidgets.QCompleter.setCompletionMode": ('PySide2.QtWidgets.QCompleter.CompletionMode',),
- "PySide2.QtWidgets.QCompleter.setCompletionPrefix": ('str',),
- "PySide2.QtWidgets.QCompleter.setCompletionRole": ('int',),
- "PySide2.QtWidgets.QCompleter.setCurrentRow": ('int',),
- "PySide2.QtWidgets.QCompleter.setFilterMode": ('PySide2.QtCore.Qt.MatchFlags',),
- "PySide2.QtWidgets.QCompleter.setMaxVisibleItems": ('int',),
- "PySide2.QtWidgets.QCompleter.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QCompleter.setModelSorting": ('PySide2.QtWidgets.QCompleter.ModelSorting',),
- "PySide2.QtWidgets.QCompleter.setPopup": ('PySide2.QtWidgets.QAbstractItemView',),
- "PySide2.QtWidgets.QCompleter.setWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QCompleter.setWrapAround": ('bool',),
- "PySide2.QtWidgets.QCompleter.splitPath": ('str',),
- "PySide2.QtWidgets.QCompleter.widget": (),
- "PySide2.QtWidgets.QCompleter.wrapAround": (),
-# class PySide2.QtWidgets.QDataWidgetMapper:
-# class PySide2.QtWidgets.QDataWidgetMapper.SubmitPolicy:
- "PySide2.QtWidgets.QDataWidgetMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QDataWidgetMapper.addMapping": [('PySide2.QtWidgets.QWidget', 'int'), ('PySide2.QtWidgets.QWidget', 'int', 'PySide2.QtCore.QByteArray')],
- "PySide2.QtWidgets.QDataWidgetMapper.clearMapping": (),
- "PySide2.QtWidgets.QDataWidgetMapper.currentIndex": (),
- "PySide2.QtWidgets.QDataWidgetMapper.itemDelegate": (),
- "PySide2.QtWidgets.QDataWidgetMapper.mappedPropertyName": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QDataWidgetMapper.mappedSection": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QDataWidgetMapper.mappedWidgetAt": ('int',),
- "PySide2.QtWidgets.QDataWidgetMapper.model": (),
- "PySide2.QtWidgets.QDataWidgetMapper.orientation": (),
- "PySide2.QtWidgets.QDataWidgetMapper.removeMapping": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QDataWidgetMapper.revert": (),
- "PySide2.QtWidgets.QDataWidgetMapper.rootIndex": (),
- "PySide2.QtWidgets.QDataWidgetMapper.setCurrentIndex": ('int',),
- "PySide2.QtWidgets.QDataWidgetMapper.setCurrentModelIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDataWidgetMapper.setItemDelegate": ('PySide2.QtWidgets.QAbstractItemDelegate',),
- "PySide2.QtWidgets.QDataWidgetMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QDataWidgetMapper.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtWidgets.QDataWidgetMapper.setRootIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDataWidgetMapper.setSubmitPolicy": ('PySide2.QtWidgets.QDataWidgetMapper.SubmitPolicy',),
- "PySide2.QtWidgets.QDataWidgetMapper.submit": (),
- "PySide2.QtWidgets.QDataWidgetMapper.submitPolicy": (),
- "PySide2.QtWidgets.QDataWidgetMapper.toFirst": (),
- "PySide2.QtWidgets.QDataWidgetMapper.toLast": (),
- "PySide2.QtWidgets.QDataWidgetMapper.toNext": (),
- "PySide2.QtWidgets.QDataWidgetMapper.toPrevious": (),
-# class PySide2.QtWidgets.QDateEdit:
- "PySide2.QtWidgets.QDateEdit.__init__": [('PySide2.QtCore.QDate', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
-# class PySide2.QtWidgets.QDateTimeEdit:
-# class PySide2.QtWidgets.QDateTimeEdit.Section:
-# class PySide2.QtWidgets.QDateTimeEdit.Sections:
- "PySide2.QtWidgets.QDateTimeEdit.__init__": [('PySide2.QtCore.QDate', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtCore.QDateTime', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtCore.QTime', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',), ('typing.Any', 'type', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QDateTimeEdit.calendar": (),
- "PySide2.QtWidgets.QDateTimeEdit.calendarPopup": (),
- "PySide2.QtWidgets.QDateTimeEdit.calendarWidget": (),
- "PySide2.QtWidgets.QDateTimeEdit.clear": (),
- "PySide2.QtWidgets.QDateTimeEdit.clearMaximumDate": (),
- "PySide2.QtWidgets.QDateTimeEdit.clearMaximumDateTime": (),
- "PySide2.QtWidgets.QDateTimeEdit.clearMaximumTime": (),
- "PySide2.QtWidgets.QDateTimeEdit.clearMinimumDate": (),
- "PySide2.QtWidgets.QDateTimeEdit.clearMinimumDateTime": (),
- "PySide2.QtWidgets.QDateTimeEdit.clearMinimumTime": (),
- "PySide2.QtWidgets.QDateTimeEdit.currentSection": (),
- "PySide2.QtWidgets.QDateTimeEdit.currentSectionIndex": (),
- "PySide2.QtWidgets.QDateTimeEdit.date": (),
- "PySide2.QtWidgets.QDateTimeEdit.dateTime": (),
- "PySide2.QtWidgets.QDateTimeEdit.dateTimeFromText": ('str',),
- "PySide2.QtWidgets.QDateTimeEdit.displayFormat": (),
- "PySide2.QtWidgets.QDateTimeEdit.displayedSections": (),
- "PySide2.QtWidgets.QDateTimeEdit.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QDateTimeEdit.fixup": ('str',),
- "PySide2.QtWidgets.QDateTimeEdit.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QDateTimeEdit.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QDateTimeEdit.initStyleOption": ('PySide2.QtWidgets.QStyleOptionSpinBox',),
- "PySide2.QtWidgets.QDateTimeEdit.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QDateTimeEdit.maximumDate": (),
- "PySide2.QtWidgets.QDateTimeEdit.maximumDateTime": (),
- "PySide2.QtWidgets.QDateTimeEdit.maximumTime": (),
- "PySide2.QtWidgets.QDateTimeEdit.minimumDate": (),
- "PySide2.QtWidgets.QDateTimeEdit.minimumDateTime": (),
- "PySide2.QtWidgets.QDateTimeEdit.minimumTime": (),
- "PySide2.QtWidgets.QDateTimeEdit.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QDateTimeEdit.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QDateTimeEdit.sectionAt": ('int',),
- "PySide2.QtWidgets.QDateTimeEdit.sectionCount": (),
- "PySide2.QtWidgets.QDateTimeEdit.sectionText": ('PySide2.QtWidgets.QDateTimeEdit.Section',),
- "PySide2.QtWidgets.QDateTimeEdit.setCalendar": ('PySide2.QtCore.QCalendar',),
- "PySide2.QtWidgets.QDateTimeEdit.setCalendarPopup": ('bool',),
- "PySide2.QtWidgets.QDateTimeEdit.setCalendarWidget": ('PySide2.QtWidgets.QCalendarWidget',),
- "PySide2.QtWidgets.QDateTimeEdit.setCurrentSection": ('PySide2.QtWidgets.QDateTimeEdit.Section',),
- "PySide2.QtWidgets.QDateTimeEdit.setCurrentSectionIndex": ('int',),
- "PySide2.QtWidgets.QDateTimeEdit.setDate": ('PySide2.QtCore.QDate',),
- "PySide2.QtWidgets.QDateTimeEdit.setDateRange": ('PySide2.QtCore.QDate', 'PySide2.QtCore.QDate'),
- "PySide2.QtWidgets.QDateTimeEdit.setDateTime": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtWidgets.QDateTimeEdit.setDateTimeRange": ('PySide2.QtCore.QDateTime', 'PySide2.QtCore.QDateTime'),
- "PySide2.QtWidgets.QDateTimeEdit.setDisplayFormat": ('str',),
- "PySide2.QtWidgets.QDateTimeEdit.setMaximumDate": ('PySide2.QtCore.QDate',),
- "PySide2.QtWidgets.QDateTimeEdit.setMaximumDateTime": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtWidgets.QDateTimeEdit.setMaximumTime": ('PySide2.QtCore.QTime',),
- "PySide2.QtWidgets.QDateTimeEdit.setMinimumDate": ('PySide2.QtCore.QDate',),
- "PySide2.QtWidgets.QDateTimeEdit.setMinimumDateTime": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtWidgets.QDateTimeEdit.setMinimumTime": ('PySide2.QtCore.QTime',),
- "PySide2.QtWidgets.QDateTimeEdit.setSelectedSection": ('PySide2.QtWidgets.QDateTimeEdit.Section',),
- "PySide2.QtWidgets.QDateTimeEdit.setTime": ('PySide2.QtCore.QTime',),
- "PySide2.QtWidgets.QDateTimeEdit.setTimeRange": ('PySide2.QtCore.QTime', 'PySide2.QtCore.QTime'),
- "PySide2.QtWidgets.QDateTimeEdit.setTimeSpec": ('PySide2.QtCore.Qt.TimeSpec',),
- "PySide2.QtWidgets.QDateTimeEdit.sizeHint": (),
- "PySide2.QtWidgets.QDateTimeEdit.stepBy": ('int',),
- "PySide2.QtWidgets.QDateTimeEdit.stepEnabled": (),
- "PySide2.QtWidgets.QDateTimeEdit.textFromDateTime": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtWidgets.QDateTimeEdit.time": (),
- "PySide2.QtWidgets.QDateTimeEdit.timeSpec": (),
- "PySide2.QtWidgets.QDateTimeEdit.validate": ('str', 'int'),
- "PySide2.QtWidgets.QDateTimeEdit.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtWidgets.QDesktopWidget:
- "PySide2.QtWidgets.QDesktopWidget.__init__": (),
- "PySide2.QtWidgets.QDesktopWidget.availableGeometry": [('PySide2.QtCore.QPoint',), ('PySide2.QtWidgets.QWidget',), ('int',)],
- "PySide2.QtWidgets.QDesktopWidget.isVirtualDesktop": (),
- "PySide2.QtWidgets.QDesktopWidget.numScreens": (),
- "PySide2.QtWidgets.QDesktopWidget.primaryScreen": (),
- "PySide2.QtWidgets.QDesktopWidget.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QDesktopWidget.screen": [(), ('int',)],
- "PySide2.QtWidgets.QDesktopWidget.screenCount": (),
- "PySide2.QtWidgets.QDesktopWidget.screenGeometry": [('PySide2.QtCore.QPoint',), ('PySide2.QtWidgets.QWidget',), ('int',)],
- "PySide2.QtWidgets.QDesktopWidget.screenNumber": [('PySide2.QtCore.QPoint',), ('PySide2.QtWidgets.QWidget',)],
-# class PySide2.QtWidgets.QDial:
- "PySide2.QtWidgets.QDial.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QDial.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QDial.initStyleOption": ('PySide2.QtWidgets.QStyleOptionSlider',),
- "PySide2.QtWidgets.QDial.minimumSizeHint": (),
- "PySide2.QtWidgets.QDial.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QDial.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QDial.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QDial.notchSize": (),
- "PySide2.QtWidgets.QDial.notchTarget": (),
- "PySide2.QtWidgets.QDial.notchesVisible": (),
- "PySide2.QtWidgets.QDial.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QDial.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QDial.setNotchTarget": ('float',),
- "PySide2.QtWidgets.QDial.setNotchesVisible": ('bool',),
- "PySide2.QtWidgets.QDial.setWrapping": ('bool',),
- "PySide2.QtWidgets.QDial.sizeHint": (),
- "PySide2.QtWidgets.QDial.sliderChange": ('PySide2.QtWidgets.QAbstractSlider.SliderChange',),
- "PySide2.QtWidgets.QDial.wrapping": (),
-# class PySide2.QtWidgets.QDialog:
-# class PySide2.QtWidgets.QDialog.DialogCode:
- "PySide2.QtWidgets.QDialog.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QDialog.accept": (),
- "PySide2.QtWidgets.QDialog.adjustPosition": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QDialog.closeEvent": ('PySide2.QtGui.QCloseEvent',),
- "PySide2.QtWidgets.QDialog.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QDialog.done": ('int',),
- "PySide2.QtWidgets.QDialog.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QDialog.exec_": (),
- "PySide2.QtWidgets.QDialog.extension": (),
- "PySide2.QtWidgets.QDialog.isSizeGripEnabled": (),
- "PySide2.QtWidgets.QDialog.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QDialog.minimumSizeHint": (),
- "PySide2.QtWidgets.QDialog.open": (),
- "PySide2.QtWidgets.QDialog.orientation": (),
- "PySide2.QtWidgets.QDialog.reject": (),
- "PySide2.QtWidgets.QDialog.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QDialog.result": (),
- "PySide2.QtWidgets.QDialog.setExtension": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QDialog.setModal": ('bool',),
- "PySide2.QtWidgets.QDialog.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtWidgets.QDialog.setResult": ('int',),
- "PySide2.QtWidgets.QDialog.setSizeGripEnabled": ('bool',),
- "PySide2.QtWidgets.QDialog.setVisible": ('bool',),
- "PySide2.QtWidgets.QDialog.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QDialog.showExtension": ('bool',),
- "PySide2.QtWidgets.QDialog.sizeHint": (),
-# class PySide2.QtWidgets.QDialogButtonBox:
-# class PySide2.QtWidgets.QDialogButtonBox.ButtonLayout:
-# class PySide2.QtWidgets.QDialogButtonBox.ButtonRole:
-# class PySide2.QtWidgets.QDialogButtonBox.StandardButton:
-# class PySide2.QtWidgets.QDialogButtonBox.StandardButtons:
- "PySide2.QtWidgets.QDialogButtonBox.__init__": [('PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QDialogButtonBox.StandardButtons', 'PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QDialogButtonBox.StandardButtons', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QDialogButtonBox.addButton": [('PySide2.QtWidgets.QAbstractButton', 'PySide2.QtWidgets.QDialogButtonBox.ButtonRole'), ('PySide2.QtWidgets.QDialogButtonBox.StandardButton',), ('str', 'PySide2.QtWidgets.QDialogButtonBox.ButtonRole')],
- "PySide2.QtWidgets.QDialogButtonBox.button": ('PySide2.QtWidgets.QDialogButtonBox.StandardButton',),
- "PySide2.QtWidgets.QDialogButtonBox.buttonRole": ('PySide2.QtWidgets.QAbstractButton',),
- "PySide2.QtWidgets.QDialogButtonBox.buttons": (),
- "PySide2.QtWidgets.QDialogButtonBox.centerButtons": (),
- "PySide2.QtWidgets.QDialogButtonBox.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QDialogButtonBox.clear": (),
- "PySide2.QtWidgets.QDialogButtonBox.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QDialogButtonBox.orientation": (),
- "PySide2.QtWidgets.QDialogButtonBox.removeButton": ('PySide2.QtWidgets.QAbstractButton',),
- "PySide2.QtWidgets.QDialogButtonBox.setCenterButtons": ('bool',),
- "PySide2.QtWidgets.QDialogButtonBox.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtWidgets.QDialogButtonBox.setStandardButtons": ('PySide2.QtWidgets.QDialogButtonBox.StandardButtons',),
- "PySide2.QtWidgets.QDialogButtonBox.standardButton": ('PySide2.QtWidgets.QAbstractButton',),
- "PySide2.QtWidgets.QDialogButtonBox.standardButtons": (),
-# class PySide2.QtWidgets.QDirModel:
-# class PySide2.QtWidgets.QDirModel.Roles:
- "PySide2.QtWidgets.QDirModel.__init__": [('PySide2.QtCore.QObject',), ('typing.Sequence', 'PySide2.QtCore.QDir.Filters', 'PySide2.QtCore.QDir.SortFlags', 'PySide2.QtCore.QObject')],
- "PySide2.QtWidgets.QDirModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtWidgets.QDirModel.dropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QDirModel.fileIcon": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.fileInfo": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.fileName": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.filePath": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.filter": (),
- "PySide2.QtWidgets.QDirModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.hasChildren": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtWidgets.QDirModel.iconProvider": (),
- "PySide2.QtWidgets.QDirModel.index": [('int', 'int', 'PySide2.QtCore.QModelIndex'), ('str', 'int')],
- "PySide2.QtWidgets.QDirModel.isDir": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.isReadOnly": (),
- "PySide2.QtWidgets.QDirModel.lazyChildCount": (),
- "PySide2.QtWidgets.QDirModel.mimeData": ('typing.List',),
- "PySide2.QtWidgets.QDirModel.mimeTypes": (),
- "PySide2.QtWidgets.QDirModel.mkdir": ('PySide2.QtCore.QModelIndex', 'str'),
- "PySide2.QtWidgets.QDirModel.nameFilters": (),
- "PySide2.QtWidgets.QDirModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtWidgets.QDirModel.refresh": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.remove": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.resolveSymlinks": (),
- "PySide2.QtWidgets.QDirModel.rmdir": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
- "PySide2.QtWidgets.QDirModel.setFilter": ('PySide2.QtCore.QDir.Filters',),
- "PySide2.QtWidgets.QDirModel.setIconProvider": ('PySide2.QtWidgets.QFileIconProvider',),
- "PySide2.QtWidgets.QDirModel.setLazyChildCount": ('bool',),
- "PySide2.QtWidgets.QDirModel.setNameFilters": ('typing.Sequence',),
- "PySide2.QtWidgets.QDirModel.setReadOnly": ('bool',),
- "PySide2.QtWidgets.QDirModel.setResolveSymlinks": ('bool',),
- "PySide2.QtWidgets.QDirModel.setSorting": ('PySide2.QtCore.QDir.SortFlags',),
- "PySide2.QtWidgets.QDirModel.sort": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtWidgets.QDirModel.sorting": (),
- "PySide2.QtWidgets.QDirModel.supportedDropActions": (),
-# class PySide2.QtWidgets.QDockWidget:
-# class PySide2.QtWidgets.QDockWidget.DockWidgetFeature:
-# class PySide2.QtWidgets.QDockWidget.DockWidgetFeatures:
- "PySide2.QtWidgets.QDockWidget.__init__": [('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'), ('str', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags')],
- "PySide2.QtWidgets.QDockWidget.allowedAreas": (),
- "PySide2.QtWidgets.QDockWidget.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QDockWidget.closeEvent": ('PySide2.QtGui.QCloseEvent',),
- "PySide2.QtWidgets.QDockWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QDockWidget.features": (),
- "PySide2.QtWidgets.QDockWidget.initStyleOption": ('PySide2.QtWidgets.QStyleOptionDockWidget',),
- "PySide2.QtWidgets.QDockWidget.isAreaAllowed": ('PySide2.QtCore.Qt.DockWidgetArea',),
- "PySide2.QtWidgets.QDockWidget.isFloating": (),
- "PySide2.QtWidgets.QDockWidget.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QDockWidget.setAllowedAreas": ('PySide2.QtCore.Qt.DockWidgetAreas',),
- "PySide2.QtWidgets.QDockWidget.setFeatures": ('PySide2.QtWidgets.QDockWidget.DockWidgetFeatures',),
- "PySide2.QtWidgets.QDockWidget.setFloating": ('bool',),
- "PySide2.QtWidgets.QDockWidget.setTitleBarWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QDockWidget.setWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QDockWidget.titleBarWidget": (),
- "PySide2.QtWidgets.QDockWidget.toggleViewAction": (),
- "PySide2.QtWidgets.QDockWidget.widget": (),
-# class PySide2.QtWidgets.QDoubleSpinBox:
- "PySide2.QtWidgets.QDoubleSpinBox.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QDoubleSpinBox.cleanText": (),
- "PySide2.QtWidgets.QDoubleSpinBox.decimals": (),
- "PySide2.QtWidgets.QDoubleSpinBox.fixup": ('str',),
- "PySide2.QtWidgets.QDoubleSpinBox.maximum": (),
- "PySide2.QtWidgets.QDoubleSpinBox.minimum": (),
- "PySide2.QtWidgets.QDoubleSpinBox.prefix": (),
- "PySide2.QtWidgets.QDoubleSpinBox.setDecimals": ('int',),
- "PySide2.QtWidgets.QDoubleSpinBox.setMaximum": ('float',),
- "PySide2.QtWidgets.QDoubleSpinBox.setMinimum": ('float',),
- "PySide2.QtWidgets.QDoubleSpinBox.setPrefix": ('str',),
- "PySide2.QtWidgets.QDoubleSpinBox.setRange": ('float', 'float'),
- "PySide2.QtWidgets.QDoubleSpinBox.setSingleStep": ('float',),
- "PySide2.QtWidgets.QDoubleSpinBox.setStepType": ('PySide2.QtWidgets.QAbstractSpinBox.StepType',),
- "PySide2.QtWidgets.QDoubleSpinBox.setSuffix": ('str',),
- "PySide2.QtWidgets.QDoubleSpinBox.setValue": ('float',),
- "PySide2.QtWidgets.QDoubleSpinBox.singleStep": (),
- "PySide2.QtWidgets.QDoubleSpinBox.stepType": (),
- "PySide2.QtWidgets.QDoubleSpinBox.suffix": (),
- "PySide2.QtWidgets.QDoubleSpinBox.textFromValue": ('float',),
- "PySide2.QtWidgets.QDoubleSpinBox.validate": ('str', 'int'),
- "PySide2.QtWidgets.QDoubleSpinBox.value": (),
- "PySide2.QtWidgets.QDoubleSpinBox.valueFromText": ('str',),
-# class PySide2.QtWidgets.QErrorMessage:
- "PySide2.QtWidgets.QErrorMessage.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QErrorMessage.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QErrorMessage.done": ('int',),
- "PySide2.QtWidgets.QErrorMessage.qtHandler": (),
- "PySide2.QtWidgets.QErrorMessage.showMessage": [('str',), ('str', 'str')],
-# class PySide2.QtWidgets.QFileDialog:
-# class PySide2.QtWidgets.QFileDialog.AcceptMode:
-# class PySide2.QtWidgets.QFileDialog.DialogLabel:
-# class PySide2.QtWidgets.QFileDialog.FileMode:
-# class PySide2.QtWidgets.QFileDialog.Option:
-# class PySide2.QtWidgets.QFileDialog.Options:
-# class PySide2.QtWidgets.QFileDialog.ViewMode:
- "PySide2.QtWidgets.QFileDialog.__init__": [('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'), ('PySide2.QtWidgets.QWidget', 'str', 'str', 'str')],
- "PySide2.QtWidgets.QFileDialog.accept": (),
- "PySide2.QtWidgets.QFileDialog.acceptMode": (),
- "PySide2.QtWidgets.QFileDialog.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QFileDialog.confirmOverwrite": (),
- "PySide2.QtWidgets.QFileDialog.defaultSuffix": (),
- "PySide2.QtWidgets.QFileDialog.directory": (),
- "PySide2.QtWidgets.QFileDialog.directoryUrl": (),
- "PySide2.QtWidgets.QFileDialog.done": ('int',),
- "PySide2.QtWidgets.QFileDialog.fileMode": (),
- "PySide2.QtWidgets.QFileDialog.filter": (),
- "PySide2.QtWidgets.QFileDialog.getExistingDirectory": ('PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtWidgets.QFileDialog.Options'),
- "PySide2.QtWidgets.QFileDialog.getExistingDirectoryUrl": ('PySide2.QtWidgets.QWidget', 'str', 'PySide2.QtCore.QUrl', 'PySide2.QtWidgets.QFileDialog.Options', 'typing.Sequence'),
- "PySide2.QtWidgets.QFileDialog.getOpenFileName": ('PySide2.QtWidgets.QWidget', 'str', 'str', 'str', 'PySide2.QtWidgets.QFileDialog.Options'),
- "PySide2.QtWidgets.QFileDialog.getOpenFileNames": ('PySide2.QtWidgets.QWidget', 'str', 'str', 'str', 'PySide2.QtWidgets.QFileDialog.Options'),
- "PySide2.QtWidgets.QFileDialog.getOpenFileUrl": ('PySide2.QtWidgets.QWidget', 'str', 'PySide2.QtCore.QUrl', 'str', 'PySide2.QtWidgets.QFileDialog.Options', 'typing.Sequence'),
- "PySide2.QtWidgets.QFileDialog.getOpenFileUrls": ('PySide2.QtWidgets.QWidget', 'str', 'PySide2.QtCore.QUrl', 'str', 'PySide2.QtWidgets.QFileDialog.Options', 'typing.Sequence'),
- "PySide2.QtWidgets.QFileDialog.getSaveFileName": ('PySide2.QtWidgets.QWidget', 'str', 'str', 'str', 'PySide2.QtWidgets.QFileDialog.Options'),
- "PySide2.QtWidgets.QFileDialog.getSaveFileUrl": ('PySide2.QtWidgets.QWidget', 'str', 'PySide2.QtCore.QUrl', 'str', 'PySide2.QtWidgets.QFileDialog.Options', 'typing.Sequence'),
- "PySide2.QtWidgets.QFileDialog.history": (),
- "PySide2.QtWidgets.QFileDialog.iconProvider": (),
- "PySide2.QtWidgets.QFileDialog.isNameFilterDetailsVisible": (),
- "PySide2.QtWidgets.QFileDialog.isReadOnly": (),
- "PySide2.QtWidgets.QFileDialog.itemDelegate": (),
- "PySide2.QtWidgets.QFileDialog.labelText": ('PySide2.QtWidgets.QFileDialog.DialogLabel',),
- "PySide2.QtWidgets.QFileDialog.mimeTypeFilters": (),
- "PySide2.QtWidgets.QFileDialog.nameFilters": (),
- "PySide2.QtWidgets.QFileDialog.open": [(), ('PySide2.QtCore.QObject', 'bytes')],
- "PySide2.QtWidgets.QFileDialog.options": (),
- "PySide2.QtWidgets.QFileDialog.proxyModel": (),
- "PySide2.QtWidgets.QFileDialog.resolveSymlinks": (),
- "PySide2.QtWidgets.QFileDialog.restoreState": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWidgets.QFileDialog.saveFileContent": ('PySide2.QtCore.QByteArray', 'str'),
- "PySide2.QtWidgets.QFileDialog.saveState": (),
- "PySide2.QtWidgets.QFileDialog.selectFile": ('str',),
- "PySide2.QtWidgets.QFileDialog.selectMimeTypeFilter": ('str',),
- "PySide2.QtWidgets.QFileDialog.selectNameFilter": ('str',),
- "PySide2.QtWidgets.QFileDialog.selectUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtWidgets.QFileDialog.selectedFiles": (),
- "PySide2.QtWidgets.QFileDialog.selectedMimeTypeFilter": (),
- "PySide2.QtWidgets.QFileDialog.selectedNameFilter": (),
- "PySide2.QtWidgets.QFileDialog.selectedUrls": (),
- "PySide2.QtWidgets.QFileDialog.setAcceptMode": ('PySide2.QtWidgets.QFileDialog.AcceptMode',),
- "PySide2.QtWidgets.QFileDialog.setConfirmOverwrite": ('bool',),
- "PySide2.QtWidgets.QFileDialog.setDefaultSuffix": ('str',),
- "PySide2.QtWidgets.QFileDialog.setDirectory": [('PySide2.QtCore.QDir',), ('str',)],
- "PySide2.QtWidgets.QFileDialog.setDirectoryUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtWidgets.QFileDialog.setFileMode": ('PySide2.QtWidgets.QFileDialog.FileMode',),
- "PySide2.QtWidgets.QFileDialog.setFilter": ('PySide2.QtCore.QDir.Filters',),
- "PySide2.QtWidgets.QFileDialog.setHistory": ('typing.Sequence',),
- "PySide2.QtWidgets.QFileDialog.setIconProvider": ('PySide2.QtWidgets.QFileIconProvider',),
- "PySide2.QtWidgets.QFileDialog.setItemDelegate": ('PySide2.QtWidgets.QAbstractItemDelegate',),
- "PySide2.QtWidgets.QFileDialog.setLabelText": ('PySide2.QtWidgets.QFileDialog.DialogLabel', 'str'),
- "PySide2.QtWidgets.QFileDialog.setMimeTypeFilters": ('typing.Sequence',),
- "PySide2.QtWidgets.QFileDialog.setNameFilter": ('str',),
- "PySide2.QtWidgets.QFileDialog.setNameFilterDetailsVisible": ('bool',),
- "PySide2.QtWidgets.QFileDialog.setNameFilters": ('typing.Sequence',),
- "PySide2.QtWidgets.QFileDialog.setOption": ('PySide2.QtWidgets.QFileDialog.Option', 'bool'),
- "PySide2.QtWidgets.QFileDialog.setOptions": ('PySide2.QtWidgets.QFileDialog.Options',),
- "PySide2.QtWidgets.QFileDialog.setProxyModel": ('PySide2.QtCore.QAbstractProxyModel',),
- "PySide2.QtWidgets.QFileDialog.setReadOnly": ('bool',),
- "PySide2.QtWidgets.QFileDialog.setResolveSymlinks": ('bool',),
- "PySide2.QtWidgets.QFileDialog.setSidebarUrls": ('typing.Sequence',),
- "PySide2.QtWidgets.QFileDialog.setSupportedSchemes": ('typing.Sequence',),
- "PySide2.QtWidgets.QFileDialog.setViewMode": ('PySide2.QtWidgets.QFileDialog.ViewMode',),
- "PySide2.QtWidgets.QFileDialog.setVisible": ('bool',),
- "PySide2.QtWidgets.QFileDialog.sidebarUrls": (),
- "PySide2.QtWidgets.QFileDialog.supportedSchemes": (),
- "PySide2.QtWidgets.QFileDialog.testOption": ('PySide2.QtWidgets.QFileDialog.Option',),
- "PySide2.QtWidgets.QFileDialog.viewMode": (),
-# class PySide2.QtWidgets.QFileIconProvider:
-# class PySide2.QtWidgets.QFileIconProvider.IconType:
-# class PySide2.QtWidgets.QFileIconProvider.Option:
-# class PySide2.QtWidgets.QFileIconProvider.Options:
- "PySide2.QtWidgets.QFileIconProvider.__init__": (),
- "PySide2.QtWidgets.QFileIconProvider.icon": [('PySide2.QtCore.QFileInfo',), ('PySide2.QtWidgets.QFileIconProvider.IconType',)],
- "PySide2.QtWidgets.QFileIconProvider.options": (),
- "PySide2.QtWidgets.QFileIconProvider.setOptions": ('PySide2.QtWidgets.QFileIconProvider.Options',),
- "PySide2.QtWidgets.QFileIconProvider.type": ('PySide2.QtCore.QFileInfo',),
-# class PySide2.QtWidgets.QFileSystemModel:
-# class PySide2.QtWidgets.QFileSystemModel.Option:
-# class PySide2.QtWidgets.QFileSystemModel.Options:
-# class PySide2.QtWidgets.QFileSystemModel.Roles:
- "PySide2.QtWidgets.QFileSystemModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QFileSystemModel.canFetchMore": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtWidgets.QFileSystemModel.dropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QFileSystemModel.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QFileSystemModel.fetchMore": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.fileIcon": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.fileInfo": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.fileName": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.filePath": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.filter": (),
- "PySide2.QtWidgets.QFileSystemModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.hasChildren": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtWidgets.QFileSystemModel.iconProvider": (),
- "PySide2.QtWidgets.QFileSystemModel.index": [('int', 'int', 'PySide2.QtCore.QModelIndex'), ('str', 'int')],
- "PySide2.QtWidgets.QFileSystemModel.isDir": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.isReadOnly": (),
- "PySide2.QtWidgets.QFileSystemModel.lastModified": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.mimeData": ('typing.List',),
- "PySide2.QtWidgets.QFileSystemModel.mimeTypes": (),
- "PySide2.QtWidgets.QFileSystemModel.mkdir": ('PySide2.QtCore.QModelIndex', 'str'),
- "PySide2.QtWidgets.QFileSystemModel.myComputer": ('int',),
- "PySide2.QtWidgets.QFileSystemModel.nameFilterDisables": (),
- "PySide2.QtWidgets.QFileSystemModel.nameFilters": (),
- "PySide2.QtWidgets.QFileSystemModel.options": (),
- "PySide2.QtWidgets.QFileSystemModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtWidgets.QFileSystemModel.remove": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.resolveSymlinks": (),
- "PySide2.QtWidgets.QFileSystemModel.rmdir": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.rootDirectory": (),
- "PySide2.QtWidgets.QFileSystemModel.rootPath": (),
- "PySide2.QtWidgets.QFileSystemModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
- "PySide2.QtWidgets.QFileSystemModel.setFilter": ('PySide2.QtCore.QDir.Filters',),
- "PySide2.QtWidgets.QFileSystemModel.setIconProvider": ('PySide2.QtWidgets.QFileIconProvider',),
- "PySide2.QtWidgets.QFileSystemModel.setNameFilterDisables": ('bool',),
- "PySide2.QtWidgets.QFileSystemModel.setNameFilters": ('typing.Sequence',),
- "PySide2.QtWidgets.QFileSystemModel.setOption": ('PySide2.QtWidgets.QFileSystemModel.Option', 'bool'),
- "PySide2.QtWidgets.QFileSystemModel.setOptions": ('PySide2.QtWidgets.QFileSystemModel.Options',),
- "PySide2.QtWidgets.QFileSystemModel.setReadOnly": ('bool',),
- "PySide2.QtWidgets.QFileSystemModel.setResolveSymlinks": ('bool',),
- "PySide2.QtWidgets.QFileSystemModel.setRootPath": ('str',),
- "PySide2.QtWidgets.QFileSystemModel.sibling": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QFileSystemModel.size": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.sort": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtWidgets.QFileSystemModel.supportedDropActions": (),
- "PySide2.QtWidgets.QFileSystemModel.testOption": ('PySide2.QtWidgets.QFileSystemModel.Option',),
- "PySide2.QtWidgets.QFileSystemModel.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QFileSystemModel.type": ('PySide2.QtCore.QModelIndex',),
-# class PySide2.QtWidgets.QFocusFrame:
- "PySide2.QtWidgets.QFocusFrame.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QFocusFrame.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QFocusFrame.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QFocusFrame.initStyleOption": ('PySide2.QtWidgets.QStyleOption',),
- "PySide2.QtWidgets.QFocusFrame.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QFocusFrame.setWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QFocusFrame.widget": (),
-# class PySide2.QtWidgets.QFontComboBox:
-# class PySide2.QtWidgets.QFontComboBox.FontFilter:
-# class PySide2.QtWidgets.QFontComboBox.FontFilters:
- "PySide2.QtWidgets.QFontComboBox.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QFontComboBox.currentFont": (),
- "PySide2.QtWidgets.QFontComboBox.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QFontComboBox.fontFilters": (),
- "PySide2.QtWidgets.QFontComboBox.setCurrentFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QFontComboBox.setFontFilters": ('PySide2.QtWidgets.QFontComboBox.FontFilters',),
- "PySide2.QtWidgets.QFontComboBox.setWritingSystem": ('PySide2.QtGui.QFontDatabase.WritingSystem',),
- "PySide2.QtWidgets.QFontComboBox.sizeHint": (),
- "PySide2.QtWidgets.QFontComboBox.writingSystem": (),
-# class PySide2.QtWidgets.QFontDialog:
-# class PySide2.QtWidgets.QFontDialog.FontDialogOption:
-# class PySide2.QtWidgets.QFontDialog.FontDialogOptions:
- "PySide2.QtWidgets.QFontDialog.__init__": [('PySide2.QtGui.QFont', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QFontDialog.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QFontDialog.currentFont": (),
- "PySide2.QtWidgets.QFontDialog.done": ('int',),
- "PySide2.QtWidgets.QFontDialog.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QFontDialog.getFont": [('PySide2.QtGui.QFont', 'PySide2.QtWidgets.QWidget', 'str', 'PySide2.QtWidgets.QFontDialog.FontDialogOptions'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QFontDialog.open": [(), ('PySide2.QtCore.QObject', 'bytes')],
- "PySide2.QtWidgets.QFontDialog.options": (),
- "PySide2.QtWidgets.QFontDialog.selectedFont": (),
- "PySide2.QtWidgets.QFontDialog.setCurrentFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QFontDialog.setOption": ('PySide2.QtWidgets.QFontDialog.FontDialogOption', 'bool'),
- "PySide2.QtWidgets.QFontDialog.setOptions": ('PySide2.QtWidgets.QFontDialog.FontDialogOptions',),
- "PySide2.QtWidgets.QFontDialog.setVisible": ('bool',),
- "PySide2.QtWidgets.QFontDialog.testOption": ('PySide2.QtWidgets.QFontDialog.FontDialogOption',),
-# class PySide2.QtWidgets.QFormLayout:
-# class PySide2.QtWidgets.QFormLayout.FieldGrowthPolicy:
-# class PySide2.QtWidgets.QFormLayout.ItemRole:
-# class PySide2.QtWidgets.QFormLayout.RowWrapPolicy:
- "PySide2.QtWidgets.QFormLayout.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QFormLayout.addItem": ('PySide2.QtWidgets.QLayoutItem',),
- "PySide2.QtWidgets.QFormLayout.addRow": [('PySide2.QtWidgets.QLayout',), ('PySide2.QtWidgets.QWidget',), ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QLayout'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QWidget'), ('str', 'PySide2.QtWidgets.QLayout'), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QFormLayout.count": (),
- "PySide2.QtWidgets.QFormLayout.expandingDirections": (),
- "PySide2.QtWidgets.QFormLayout.fieldGrowthPolicy": (),
- "PySide2.QtWidgets.QFormLayout.formAlignment": (),
- "PySide2.QtWidgets.QFormLayout.getItemPosition": ('int', 'PySide2.QtWidgets.QFormLayout.ItemRole'),
- "PySide2.QtWidgets.QFormLayout.getLayoutPosition": ('PySide2.QtWidgets.QLayout', 'PySide2.QtWidgets.QFormLayout.ItemRole'),
- "PySide2.QtWidgets.QFormLayout.getWidgetPosition": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QFormLayout.ItemRole'),
- "PySide2.QtWidgets.QFormLayout.hasHeightForWidth": (),
- "PySide2.QtWidgets.QFormLayout.heightForWidth": ('int',),
- "PySide2.QtWidgets.QFormLayout.horizontalSpacing": (),
- "PySide2.QtWidgets.QFormLayout.insertRow": [('int', 'PySide2.QtWidgets.QLayout'), ('int', 'PySide2.QtWidgets.QWidget'), ('int', 'PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QLayout'), ('int', 'PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QWidget'), ('int', 'str', 'PySide2.QtWidgets.QLayout'), ('int', 'str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QFormLayout.invalidate": (),
- "PySide2.QtWidgets.QFormLayout.itemAt": [('int',), ('int', 'PySide2.QtWidgets.QFormLayout.ItemRole')],
- "PySide2.QtWidgets.QFormLayout.labelAlignment": (),
- "PySide2.QtWidgets.QFormLayout.labelForField": [('PySide2.QtWidgets.QLayout',), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QFormLayout.minimumSize": (),
- "PySide2.QtWidgets.QFormLayout.removeRow": [('PySide2.QtWidgets.QLayout',), ('PySide2.QtWidgets.QWidget',), ('int',)],
- "PySide2.QtWidgets.QFormLayout.rowCount": (),
- "PySide2.QtWidgets.QFormLayout.rowWrapPolicy": (),
- "PySide2.QtWidgets.QFormLayout.setFieldGrowthPolicy": ('PySide2.QtWidgets.QFormLayout.FieldGrowthPolicy',),
- "PySide2.QtWidgets.QFormLayout.setFormAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QFormLayout.setGeometry": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QFormLayout.setHorizontalSpacing": ('int',),
- "PySide2.QtWidgets.QFormLayout.setItem": ('int', 'PySide2.QtWidgets.QFormLayout.ItemRole', 'PySide2.QtWidgets.QLayoutItem'),
- "PySide2.QtWidgets.QFormLayout.setLabelAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QFormLayout.setLayout": ('int', 'PySide2.QtWidgets.QFormLayout.ItemRole', 'PySide2.QtWidgets.QLayout'),
- "PySide2.QtWidgets.QFormLayout.setRowWrapPolicy": ('PySide2.QtWidgets.QFormLayout.RowWrapPolicy',),
- "PySide2.QtWidgets.QFormLayout.setSpacing": ('int',),
- "PySide2.QtWidgets.QFormLayout.setVerticalSpacing": ('int',),
- "PySide2.QtWidgets.QFormLayout.setWidget": ('int', 'PySide2.QtWidgets.QFormLayout.ItemRole', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QFormLayout.sizeHint": (),
- "PySide2.QtWidgets.QFormLayout.spacing": (),
- "PySide2.QtWidgets.QFormLayout.takeAt": ('int',),
- "PySide2.QtWidgets.QFormLayout.verticalSpacing": (),
-# class PySide2.QtWidgets.QFrame:
-# class PySide2.QtWidgets.QFrame.Shadow:
-# class PySide2.QtWidgets.QFrame.Shape:
-# class PySide2.QtWidgets.QFrame.StyleMask:
- "PySide2.QtWidgets.QFrame.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QFrame.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QFrame.drawFrame": ('PySide2.QtGui.QPainter',),
- "PySide2.QtWidgets.QFrame.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QFrame.frameRect": (),
- "PySide2.QtWidgets.QFrame.frameShadow": (),
- "PySide2.QtWidgets.QFrame.frameShape": (),
- "PySide2.QtWidgets.QFrame.frameStyle": (),
- "PySide2.QtWidgets.QFrame.frameWidth": (),
- "PySide2.QtWidgets.QFrame.initStyleOption": ('PySide2.QtWidgets.QStyleOptionFrame',),
- "PySide2.QtWidgets.QFrame.lineWidth": (),
- "PySide2.QtWidgets.QFrame.midLineWidth": (),
- "PySide2.QtWidgets.QFrame.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QFrame.setFrameRect": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QFrame.setFrameShadow": ('PySide2.QtWidgets.QFrame.Shadow',),
- "PySide2.QtWidgets.QFrame.setFrameShape": ('PySide2.QtWidgets.QFrame.Shape',),
- "PySide2.QtWidgets.QFrame.setFrameStyle": ('int',),
- "PySide2.QtWidgets.QFrame.setLineWidth": ('int',),
- "PySide2.QtWidgets.QFrame.setMidLineWidth": ('int',),
- "PySide2.QtWidgets.QFrame.sizeHint": (),
-# class PySide2.QtWidgets.QGesture:
-# class PySide2.QtWidgets.QGesture.GestureCancelPolicy:
- "PySide2.QtWidgets.QGesture.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGesture.gestureCancelPolicy": (),
- "PySide2.QtWidgets.QGesture.gestureType": (),
- "PySide2.QtWidgets.QGesture.hasHotSpot": (),
- "PySide2.QtWidgets.QGesture.hotSpot": (),
- "PySide2.QtWidgets.QGesture.setGestureCancelPolicy": ('PySide2.QtWidgets.QGesture.GestureCancelPolicy',),
- "PySide2.QtWidgets.QGesture.setHotSpot": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGesture.state": (),
- "PySide2.QtWidgets.QGesture.unsetHotSpot": (),
-# class PySide2.QtWidgets.QGestureEvent:
- "PySide2.QtWidgets.QGestureEvent.__init__": ('typing.Sequence',),
- "PySide2.QtWidgets.QGestureEvent.accept": [(), ('PySide2.QtCore.Qt.GestureType',), ('PySide2.QtWidgets.QGesture',)],
- "PySide2.QtWidgets.QGestureEvent.activeGestures": (),
- "PySide2.QtWidgets.QGestureEvent.canceledGestures": (),
- "PySide2.QtWidgets.QGestureEvent.gesture": ('PySide2.QtCore.Qt.GestureType',),
- "PySide2.QtWidgets.QGestureEvent.gestures": (),
- "PySide2.QtWidgets.QGestureEvent.ignore": [(), ('PySide2.QtCore.Qt.GestureType',), ('PySide2.QtWidgets.QGesture',)],
- "PySide2.QtWidgets.QGestureEvent.isAccepted": [(), ('PySide2.QtCore.Qt.GestureType',), ('PySide2.QtWidgets.QGesture',)],
- "PySide2.QtWidgets.QGestureEvent.mapToGraphicsScene": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGestureEvent.setAccepted": [('PySide2.QtCore.Qt.GestureType', 'bool'), ('PySide2.QtWidgets.QGesture', 'bool'), ('bool',)],
- "PySide2.QtWidgets.QGestureEvent.setWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QGestureEvent.widget": (),
-# class PySide2.QtWidgets.QGestureRecognizer:
-# class PySide2.QtWidgets.QGestureRecognizer.Result:
-# class PySide2.QtWidgets.QGestureRecognizer.ResultFlag:
- "PySide2.QtWidgets.QGestureRecognizer.__init__": (),
- "PySide2.QtWidgets.QGestureRecognizer.create": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGestureRecognizer.recognize": ('PySide2.QtWidgets.QGesture', 'PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QGestureRecognizer.registerRecognizer": ('PySide2.QtWidgets.QGestureRecognizer',),
- "PySide2.QtWidgets.QGestureRecognizer.reset": ('PySide2.QtWidgets.QGesture',),
- "PySide2.QtWidgets.QGestureRecognizer.unregisterRecognizer": ('PySide2.QtCore.Qt.GestureType',),
-# class PySide2.QtWidgets.QGraphicsAnchor:
- "PySide2.QtWidgets.QGraphicsAnchor.setSizePolicy": ('PySide2.QtWidgets.QSizePolicy.Policy',),
- "PySide2.QtWidgets.QGraphicsAnchor.setSpacing": ('float',),
- "PySide2.QtWidgets.QGraphicsAnchor.sizePolicy": (),
- "PySide2.QtWidgets.QGraphicsAnchor.spacing": (),
- "PySide2.QtWidgets.QGraphicsAnchor.unsetSpacing": (),
-# class PySide2.QtWidgets.QGraphicsAnchorLayout:
- "PySide2.QtWidgets.QGraphicsAnchorLayout.__init__": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.addAnchor": ('PySide2.QtWidgets.QGraphicsLayoutItem', 'PySide2.QtCore.Qt.AnchorPoint', 'PySide2.QtWidgets.QGraphicsLayoutItem', 'PySide2.QtCore.Qt.AnchorPoint'),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.addAnchors": ('PySide2.QtWidgets.QGraphicsLayoutItem', 'PySide2.QtWidgets.QGraphicsLayoutItem', 'PySide2.QtCore.Qt.Orientations'),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.addCornerAnchors": ('PySide2.QtWidgets.QGraphicsLayoutItem', 'PySide2.QtCore.Qt.Corner', 'PySide2.QtWidgets.QGraphicsLayoutItem', 'PySide2.QtCore.Qt.Corner'),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.anchor": ('PySide2.QtWidgets.QGraphicsLayoutItem', 'PySide2.QtCore.Qt.AnchorPoint', 'PySide2.QtWidgets.QGraphicsLayoutItem', 'PySide2.QtCore.Qt.AnchorPoint'),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.count": (),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.horizontalSpacing": (),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.invalidate": (),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.itemAt": ('int',),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.removeAt": ('int',),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.setGeometry": ('PySide2.QtCore.QRectF',),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.setHorizontalSpacing": ('float',),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.setSpacing": ('float',),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.setVerticalSpacing": ('float',),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.sizeHint": ('PySide2.QtCore.Qt.SizeHint', 'PySide2.QtCore.QSizeF'),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.verticalSpacing": (),
-# class PySide2.QtWidgets.QGraphicsBlurEffect:
-# class PySide2.QtWidgets.QGraphicsBlurEffect.BlurHint:
-# class PySide2.QtWidgets.QGraphicsBlurEffect.BlurHints:
- "PySide2.QtWidgets.QGraphicsBlurEffect.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGraphicsBlurEffect.blurHints": (),
- "PySide2.QtWidgets.QGraphicsBlurEffect.blurRadius": (),
- "PySide2.QtWidgets.QGraphicsBlurEffect.boundingRectFor": ('PySide2.QtCore.QRectF',),
- "PySide2.QtWidgets.QGraphicsBlurEffect.draw": ('PySide2.QtGui.QPainter',),
- "PySide2.QtWidgets.QGraphicsBlurEffect.setBlurHints": ('PySide2.QtWidgets.QGraphicsBlurEffect.BlurHints',),
- "PySide2.QtWidgets.QGraphicsBlurEffect.setBlurRadius": ('float',),
-# class PySide2.QtWidgets.QGraphicsColorizeEffect:
- "PySide2.QtWidgets.QGraphicsColorizeEffect.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGraphicsColorizeEffect.color": (),
- "PySide2.QtWidgets.QGraphicsColorizeEffect.draw": ('PySide2.QtGui.QPainter',),
- "PySide2.QtWidgets.QGraphicsColorizeEffect.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QGraphicsColorizeEffect.setStrength": ('float',),
- "PySide2.QtWidgets.QGraphicsColorizeEffect.strength": (),
-# class PySide2.QtWidgets.QGraphicsDropShadowEffect:
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.blurRadius": (),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.boundingRectFor": ('PySide2.QtCore.QRectF',),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.color": (),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.draw": ('PySide2.QtGui.QPainter',),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.offset": (),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.setBlurRadius": ('float',),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.setOffset": [('PySide2.QtCore.QPointF',), ('float',), ('float', 'float')],
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.setXOffset": ('float',),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.setYOffset": ('float',),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.xOffset": (),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.yOffset": (),
-# class PySide2.QtWidgets.QGraphicsEffect:
-# class PySide2.QtWidgets.QGraphicsEffect.ChangeFlag:
-# class PySide2.QtWidgets.QGraphicsEffect.ChangeFlags:
-# class PySide2.QtWidgets.QGraphicsEffect.PixmapPadMode:
- "PySide2.QtWidgets.QGraphicsEffect.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGraphicsEffect.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsEffect.boundingRectFor": ('PySide2.QtCore.QRectF',),
- "PySide2.QtWidgets.QGraphicsEffect.draw": ('PySide2.QtGui.QPainter',),
- "PySide2.QtWidgets.QGraphicsEffect.drawSource": ('PySide2.QtGui.QPainter',),
- "PySide2.QtWidgets.QGraphicsEffect.isEnabled": (),
- "PySide2.QtWidgets.QGraphicsEffect.setEnabled": ('bool',),
- "PySide2.QtWidgets.QGraphicsEffect.sourceBoundingRect": ('PySide2.QtCore.Qt.CoordinateSystem',),
- "PySide2.QtWidgets.QGraphicsEffect.sourceChanged": ('PySide2.QtWidgets.QGraphicsEffect.ChangeFlags',),
- "PySide2.QtWidgets.QGraphicsEffect.sourceIsPixmap": (),
- "PySide2.QtWidgets.QGraphicsEffect.sourcePixmap": ('PySide2.QtCore.Qt.CoordinateSystem', 'PySide2.QtCore.QPoint', 'PySide2.QtWidgets.QGraphicsEffect.PixmapPadMode'),
- "PySide2.QtWidgets.QGraphicsEffect.update": (),
- "PySide2.QtWidgets.QGraphicsEffect.updateBoundingRect": (),
-# class PySide2.QtWidgets.QGraphicsEllipseItem:
- "PySide2.QtWidgets.QGraphicsEllipseItem.__init__": [('PySide2.QtCore.QRectF', 'PySide2.QtWidgets.QGraphicsItem'), ('PySide2.QtWidgets.QGraphicsItem',), ('float', 'float', 'float', 'float', 'PySide2.QtWidgets.QGraphicsItem')],
- "PySide2.QtWidgets.QGraphicsEllipseItem.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsEllipseItem.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsEllipseItem.extension": ('typing.Any',),
- "PySide2.QtWidgets.QGraphicsEllipseItem.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsEllipseItem.opaqueArea": (),
- "PySide2.QtWidgets.QGraphicsEllipseItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsEllipseItem.rect": (),
- "PySide2.QtWidgets.QGraphicsEllipseItem.setRect": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsEllipseItem.setSpanAngle": ('int',),
- "PySide2.QtWidgets.QGraphicsEllipseItem.setStartAngle": ('int',),
- "PySide2.QtWidgets.QGraphicsEllipseItem.shape": (),
- "PySide2.QtWidgets.QGraphicsEllipseItem.spanAngle": (),
- "PySide2.QtWidgets.QGraphicsEllipseItem.startAngle": (),
- "PySide2.QtWidgets.QGraphicsEllipseItem.type": (),
-# class PySide2.QtWidgets.QGraphicsGridLayout:
- "PySide2.QtWidgets.QGraphicsGridLayout.__init__": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
- "PySide2.QtWidgets.QGraphicsGridLayout.addItem": [('PySide2.QtWidgets.QGraphicsLayoutItem', 'int', 'int', 'PySide2.QtCore.Qt.Alignment'), ('PySide2.QtWidgets.QGraphicsLayoutItem', 'int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.Alignment')],
- "PySide2.QtWidgets.QGraphicsGridLayout.alignment": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
- "PySide2.QtWidgets.QGraphicsGridLayout.columnAlignment": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.columnCount": (),
- "PySide2.QtWidgets.QGraphicsGridLayout.columnMaximumWidth": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.columnMinimumWidth": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.columnPreferredWidth": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.columnSpacing": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.columnStretchFactor": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.count": (),
- "PySide2.QtWidgets.QGraphicsGridLayout.horizontalSpacing": (),
- "PySide2.QtWidgets.QGraphicsGridLayout.invalidate": (),
- "PySide2.QtWidgets.QGraphicsGridLayout.itemAt": [('int',), ('int', 'int')],
- "PySide2.QtWidgets.QGraphicsGridLayout.removeAt": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.removeItem": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
- "PySide2.QtWidgets.QGraphicsGridLayout.rowAlignment": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.rowCount": (),
- "PySide2.QtWidgets.QGraphicsGridLayout.rowMaximumHeight": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.rowMinimumHeight": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.rowPreferredHeight": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.rowSpacing": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.rowStretchFactor": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.setAlignment": ('PySide2.QtWidgets.QGraphicsLayoutItem', 'PySide2.QtCore.Qt.Alignment'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setColumnAlignment": ('int', 'PySide2.QtCore.Qt.Alignment'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setColumnFixedWidth": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setColumnMaximumWidth": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setColumnMinimumWidth": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setColumnPreferredWidth": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setColumnSpacing": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setColumnStretchFactor": ('int', 'int'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setGeometry": ('PySide2.QtCore.QRectF',),
- "PySide2.QtWidgets.QGraphicsGridLayout.setHorizontalSpacing": ('float',),
- "PySide2.QtWidgets.QGraphicsGridLayout.setRowAlignment": ('int', 'PySide2.QtCore.Qt.Alignment'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setRowFixedHeight": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setRowMaximumHeight": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setRowMinimumHeight": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setRowPreferredHeight": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setRowSpacing": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setRowStretchFactor": ('int', 'int'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setSpacing": ('float',),
- "PySide2.QtWidgets.QGraphicsGridLayout.setVerticalSpacing": ('float',),
- "PySide2.QtWidgets.QGraphicsGridLayout.sizeHint": ('PySide2.QtCore.Qt.SizeHint', 'PySide2.QtCore.QSizeF'),
- "PySide2.QtWidgets.QGraphicsGridLayout.verticalSpacing": (),
-# class PySide2.QtWidgets.QGraphicsItem:
-# class PySide2.QtWidgets.QGraphicsItem.CacheMode:
-# class PySide2.QtWidgets.QGraphicsItem.Extension:
-# class PySide2.QtWidgets.QGraphicsItem.GraphicsItemChange:
-# class PySide2.QtWidgets.QGraphicsItem.GraphicsItemFlag:
-# class PySide2.QtWidgets.QGraphicsItem.GraphicsItemFlags:
-# class PySide2.QtWidgets.QGraphicsItem.PanelModality:
- "PySide2.QtWidgets.QGraphicsItem.__init__": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.acceptDrops": (),
- "PySide2.QtWidgets.QGraphicsItem.acceptHoverEvents": (),
- "PySide2.QtWidgets.QGraphicsItem.acceptTouchEvents": (),
- "PySide2.QtWidgets.QGraphicsItem.acceptedMouseButtons": (),
- "PySide2.QtWidgets.QGraphicsItem.addToIndex": (),
- "PySide2.QtWidgets.QGraphicsItem.advance": ('int',),
- "PySide2.QtWidgets.QGraphicsItem.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsItem.boundingRegion": ('PySide2.QtGui.QTransform',),
- "PySide2.QtWidgets.QGraphicsItem.boundingRegionGranularity": (),
- "PySide2.QtWidgets.QGraphicsItem.cacheMode": (),
- "PySide2.QtWidgets.QGraphicsItem.childItems": (),
- "PySide2.QtWidgets.QGraphicsItem.childrenBoundingRect": (),
- "PySide2.QtWidgets.QGraphicsItem.clearFocus": (),
- "PySide2.QtWidgets.QGraphicsItem.clipPath": (),
- "PySide2.QtWidgets.QGraphicsItem.collidesWithItem": ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.Qt.ItemSelectionMode'),
- "PySide2.QtWidgets.QGraphicsItem.collidesWithPath": ('PySide2.QtGui.QPainterPath', 'PySide2.QtCore.Qt.ItemSelectionMode'),
- "PySide2.QtWidgets.QGraphicsItem.collidingItems": ('PySide2.QtCore.Qt.ItemSelectionMode',),
- "PySide2.QtWidgets.QGraphicsItem.commonAncestorItem": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsItem.contextMenuEvent": ('PySide2.QtWidgets.QGraphicsSceneContextMenuEvent',),
- "PySide2.QtWidgets.QGraphicsItem.cursor": (),
- "PySide2.QtWidgets.QGraphicsItem.data": ('int',),
- "PySide2.QtWidgets.QGraphicsItem.deviceTransform": ('PySide2.QtGui.QTransform',),
- "PySide2.QtWidgets.QGraphicsItem.dragEnterEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsItem.dragLeaveEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsItem.dragMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsItem.dropEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsItem.effectiveOpacity": (),
- "PySide2.QtWidgets.QGraphicsItem.ensureVisible": [('PySide2.QtCore.QRectF', 'int', 'int'), ('float', 'float', 'float', 'float', 'int', 'int')],
- "PySide2.QtWidgets.QGraphicsItem.extension": ('typing.Any',),
- "PySide2.QtWidgets.QGraphicsItem.filtersChildEvents": (),
- "PySide2.QtWidgets.QGraphicsItem.flags": (),
- "PySide2.QtWidgets.QGraphicsItem.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsItem.focusItem": (),
- "PySide2.QtWidgets.QGraphicsItem.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsItem.focusProxy": (),
- "PySide2.QtWidgets.QGraphicsItem.focusScopeItem": (),
- "PySide2.QtWidgets.QGraphicsItem.grabKeyboard": (),
- "PySide2.QtWidgets.QGraphicsItem.grabMouse": (),
- "PySide2.QtWidgets.QGraphicsItem.graphicsEffect": (),
- "PySide2.QtWidgets.QGraphicsItem.group": (),
- "PySide2.QtWidgets.QGraphicsItem.handlesChildEvents": (),
- "PySide2.QtWidgets.QGraphicsItem.hasCursor": (),
- "PySide2.QtWidgets.QGraphicsItem.hasFocus": (),
- "PySide2.QtWidgets.QGraphicsItem.hide": (),
- "PySide2.QtWidgets.QGraphicsItem.hoverEnterEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsItem.hoverLeaveEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsItem.hoverMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsItem.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QGraphicsItem.inputMethodHints": (),
- "PySide2.QtWidgets.QGraphicsItem.inputMethodQuery": ('PySide2.QtCore.Qt.InputMethodQuery',),
- "PySide2.QtWidgets.QGraphicsItem.installSceneEventFilter": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.isActive": (),
- "PySide2.QtWidgets.QGraphicsItem.isAncestorOf": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.isBlockedByModalPanel": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.isClipped": (),
- "PySide2.QtWidgets.QGraphicsItem.isEnabled": (),
- "PySide2.QtWidgets.QGraphicsItem.isObscured": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.isPanel": (),
- "PySide2.QtWidgets.QGraphicsItem.isSelected": (),
- "PySide2.QtWidgets.QGraphicsItem.isUnderMouse": (),
- "PySide2.QtWidgets.QGraphicsItem.isVisible": (),
- "PySide2.QtWidgets.QGraphicsItem.isVisibleTo": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.isWidget": (),
- "PySide2.QtWidgets.QGraphicsItem.isWindow": (),
- "PySide2.QtWidgets.QGraphicsItem.itemChange": ('PySide2.QtWidgets.QGraphicsItem.GraphicsItemChange', 'typing.Any'),
- "PySide2.QtWidgets.QGraphicsItem.itemTransform": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QGraphicsItem.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QGraphicsItem.mapFromItem": [('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.QPointF'), ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.QRectF'), ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtGui.QPainterPath'), ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtGui.QPolygonF'), ('PySide2.QtWidgets.QGraphicsItem', 'float', 'float'), ('PySide2.QtWidgets.QGraphicsItem', 'float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapFromParent": [('PySide2.QtCore.QPointF',), ('PySide2.QtCore.QRectF',), ('PySide2.QtGui.QPainterPath',), ('PySide2.QtGui.QPolygonF',), ('float', 'float'), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapFromScene": [('PySide2.QtCore.QPointF',), ('PySide2.QtCore.QRectF',), ('PySide2.QtGui.QPainterPath',), ('PySide2.QtGui.QPolygonF',), ('float', 'float'), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapRectFromItem": [('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.QRectF'), ('PySide2.QtWidgets.QGraphicsItem', 'float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapRectFromParent": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapRectFromScene": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapRectToItem": [('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.QRectF'), ('PySide2.QtWidgets.QGraphicsItem', 'float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapRectToParent": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapRectToScene": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapToItem": [('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.QPointF'), ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.QRectF'), ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtGui.QPainterPath'), ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtGui.QPolygonF'), ('PySide2.QtWidgets.QGraphicsItem', 'float', 'float'), ('PySide2.QtWidgets.QGraphicsItem', 'float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapToParent": [('PySide2.QtCore.QPointF',), ('PySide2.QtCore.QRectF',), ('PySide2.QtGui.QPainterPath',), ('PySide2.QtGui.QPolygonF',), ('float', 'float'), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapToScene": [('PySide2.QtCore.QPointF',), ('PySide2.QtCore.QRectF',), ('PySide2.QtGui.QPainterPath',), ('PySide2.QtGui.QPolygonF',), ('float', 'float'), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.matrix": (),
- "PySide2.QtWidgets.QGraphicsItem.mouseDoubleClickEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsItem.mouseMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsItem.mousePressEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsItem.mouseReleaseEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsItem.moveBy": ('float', 'float'),
- "PySide2.QtWidgets.QGraphicsItem.opacity": (),
- "PySide2.QtWidgets.QGraphicsItem.opaqueArea": (),
- "PySide2.QtWidgets.QGraphicsItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsItem.panel": (),
- "PySide2.QtWidgets.QGraphicsItem.panelModality": (),
- "PySide2.QtWidgets.QGraphicsItem.parentItem": (),
- "PySide2.QtWidgets.QGraphicsItem.parentObject": (),
- "PySide2.QtWidgets.QGraphicsItem.parentWidget": (),
- "PySide2.QtWidgets.QGraphicsItem.pos": (),
- "PySide2.QtWidgets.QGraphicsItem.prepareGeometryChange": (),
- "PySide2.QtWidgets.QGraphicsItem.removeFromIndex": (),
- "PySide2.QtWidgets.QGraphicsItem.removeSceneEventFilter": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.resetMatrix": (),
- "PySide2.QtWidgets.QGraphicsItem.resetTransform": (),
- "PySide2.QtWidgets.QGraphicsItem.rotation": (),
- "PySide2.QtWidgets.QGraphicsItem.scale": (),
- "PySide2.QtWidgets.QGraphicsItem.scene": (),
- "PySide2.QtWidgets.QGraphicsItem.sceneBoundingRect": (),
- "PySide2.QtWidgets.QGraphicsItem.sceneEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsItem.sceneEventFilter": ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QGraphicsItem.sceneMatrix": (),
- "PySide2.QtWidgets.QGraphicsItem.scenePos": (),
- "PySide2.QtWidgets.QGraphicsItem.sceneTransform": (),
- "PySide2.QtWidgets.QGraphicsItem.scroll": ('float', 'float', 'PySide2.QtCore.QRectF'),
- "PySide2.QtWidgets.QGraphicsItem.setAcceptDrops": ('bool',),
- "PySide2.QtWidgets.QGraphicsItem.setAcceptHoverEvents": ('bool',),
- "PySide2.QtWidgets.QGraphicsItem.setAcceptTouchEvents": ('bool',),
- "PySide2.QtWidgets.QGraphicsItem.setAcceptedMouseButtons": ('PySide2.QtCore.Qt.MouseButtons',),
- "PySide2.QtWidgets.QGraphicsItem.setActive": ('bool',),
- "PySide2.QtWidgets.QGraphicsItem.setBoundingRegionGranularity": ('float',),
- "PySide2.QtWidgets.QGraphicsItem.setCacheMode": ('PySide2.QtWidgets.QGraphicsItem.CacheMode', 'PySide2.QtCore.QSize'),
- "PySide2.QtWidgets.QGraphicsItem.setCursor": ('PySide2.QtGui.QCursor',),
- "PySide2.QtWidgets.QGraphicsItem.setData": ('int', 'typing.Any'),
- "PySide2.QtWidgets.QGraphicsItem.setEnabled": ('bool',),
- "PySide2.QtWidgets.QGraphicsItem.setFiltersChildEvents": ('bool',),
- "PySide2.QtWidgets.QGraphicsItem.setFlag": ('PySide2.QtWidgets.QGraphicsItem.GraphicsItemFlag', 'bool'),
- "PySide2.QtWidgets.QGraphicsItem.setFlags": ('PySide2.QtWidgets.QGraphicsItem.GraphicsItemFlags',),
- "PySide2.QtWidgets.QGraphicsItem.setFocus": ('PySide2.QtCore.Qt.FocusReason',),
- "PySide2.QtWidgets.QGraphicsItem.setFocusProxy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.setGraphicsEffect": ('PySide2.QtWidgets.QGraphicsEffect',),
- "PySide2.QtWidgets.QGraphicsItem.setGroup": ('PySide2.QtWidgets.QGraphicsItemGroup',),
- "PySide2.QtWidgets.QGraphicsItem.setHandlesChildEvents": ('bool',),
- "PySide2.QtWidgets.QGraphicsItem.setInputMethodHints": ('PySide2.QtCore.Qt.InputMethodHints',),
- "PySide2.QtWidgets.QGraphicsItem.setMatrix": ('PySide2.QtGui.QMatrix', 'bool'),
- "PySide2.QtWidgets.QGraphicsItem.setOpacity": ('float',),
- "PySide2.QtWidgets.QGraphicsItem.setPanelModality": ('PySide2.QtWidgets.QGraphicsItem.PanelModality',),
- "PySide2.QtWidgets.QGraphicsItem.setParentItem": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.setPos": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.setRotation": ('float',),
- "PySide2.QtWidgets.QGraphicsItem.setScale": ('float',),
- "PySide2.QtWidgets.QGraphicsItem.setSelected": ('bool',),
- "PySide2.QtWidgets.QGraphicsItem.setToolTip": ('str',),
- "PySide2.QtWidgets.QGraphicsItem.setTransform": ('PySide2.QtGui.QTransform', 'bool'),
- "PySide2.QtWidgets.QGraphicsItem.setTransformOriginPoint": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.setTransformations": ('typing.Sequence',),
- "PySide2.QtWidgets.QGraphicsItem.setVisible": ('bool',),
- "PySide2.QtWidgets.QGraphicsItem.setX": ('float',),
- "PySide2.QtWidgets.QGraphicsItem.setY": ('float',),
- "PySide2.QtWidgets.QGraphicsItem.setZValue": ('float',),
- "PySide2.QtWidgets.QGraphicsItem.shape": (),
- "PySide2.QtWidgets.QGraphicsItem.show": (),
- "PySide2.QtWidgets.QGraphicsItem.stackBefore": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.toGraphicsObject": (),
- "PySide2.QtWidgets.QGraphicsItem.toolTip": (),
- "PySide2.QtWidgets.QGraphicsItem.topLevelItem": (),
- "PySide2.QtWidgets.QGraphicsItem.topLevelWidget": (),
- "PySide2.QtWidgets.QGraphicsItem.transform": (),
- "PySide2.QtWidgets.QGraphicsItem.transformOriginPoint": (),
- "PySide2.QtWidgets.QGraphicsItem.transformations": (),
- "PySide2.QtWidgets.QGraphicsItem.type": (),
- "PySide2.QtWidgets.QGraphicsItem.ungrabKeyboard": (),
- "PySide2.QtWidgets.QGraphicsItem.ungrabMouse": (),
- "PySide2.QtWidgets.QGraphicsItem.unsetCursor": (),
- "PySide2.QtWidgets.QGraphicsItem.update": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.updateMicroFocus": (),
- "PySide2.QtWidgets.QGraphicsItem.wheelEvent": ('PySide2.QtWidgets.QGraphicsSceneWheelEvent',),
- "PySide2.QtWidgets.QGraphicsItem.window": (),
- "PySide2.QtWidgets.QGraphicsItem.x": (),
- "PySide2.QtWidgets.QGraphicsItem.y": (),
- "PySide2.QtWidgets.QGraphicsItem.zValue": (),
-# class PySide2.QtWidgets.QGraphicsItemAnimation:
- "PySide2.QtWidgets.QGraphicsItemAnimation.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.afterAnimationStep": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.beforeAnimationStep": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.clear": (),
- "PySide2.QtWidgets.QGraphicsItemAnimation.horizontalScaleAt": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.horizontalShearAt": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.item": (),
- "PySide2.QtWidgets.QGraphicsItemAnimation.matrixAt": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.posAt": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.posList": (),
- "PySide2.QtWidgets.QGraphicsItemAnimation.reset": (),
- "PySide2.QtWidgets.QGraphicsItemAnimation.rotationAt": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.rotationList": (),
- "PySide2.QtWidgets.QGraphicsItemAnimation.scaleList": (),
- "PySide2.QtWidgets.QGraphicsItemAnimation.setItem": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.setPosAt": ('float', 'PySide2.QtCore.QPointF'),
- "PySide2.QtWidgets.QGraphicsItemAnimation.setRotationAt": ('float', 'float'),
- "PySide2.QtWidgets.QGraphicsItemAnimation.setScaleAt": ('float', 'float', 'float'),
- "PySide2.QtWidgets.QGraphicsItemAnimation.setShearAt": ('float', 'float', 'float'),
- "PySide2.QtWidgets.QGraphicsItemAnimation.setStep": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.setTimeLine": ('PySide2.QtCore.QTimeLine',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.setTranslationAt": ('float', 'float', 'float'),
- "PySide2.QtWidgets.QGraphicsItemAnimation.shearList": (),
- "PySide2.QtWidgets.QGraphicsItemAnimation.timeLine": (),
- "PySide2.QtWidgets.QGraphicsItemAnimation.transformAt": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.translationList": (),
- "PySide2.QtWidgets.QGraphicsItemAnimation.verticalScaleAt": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.verticalShearAt": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.xTranslationAt": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.yTranslationAt": ('float',),
-# class PySide2.QtWidgets.QGraphicsItemGroup:
- "PySide2.QtWidgets.QGraphicsItemGroup.__init__": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItemGroup.addToGroup": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItemGroup.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsItemGroup.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItemGroup.opaqueArea": (),
- "PySide2.QtWidgets.QGraphicsItemGroup.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsItemGroup.removeFromGroup": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItemGroup.type": (),
-# class PySide2.QtWidgets.QGraphicsLayout:
- "PySide2.QtWidgets.QGraphicsLayout.__init__": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
- "PySide2.QtWidgets.QGraphicsLayout.activate": (),
- "PySide2.QtWidgets.QGraphicsLayout.addChildLayoutItem": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
- "PySide2.QtWidgets.QGraphicsLayout.count": (),
- "PySide2.QtWidgets.QGraphicsLayout.getContentsMargins": (),
- "PySide2.QtWidgets.QGraphicsLayout.instantInvalidatePropagation": (),
- "PySide2.QtWidgets.QGraphicsLayout.invalidate": (),
- "PySide2.QtWidgets.QGraphicsLayout.isActivated": (),
- "PySide2.QtWidgets.QGraphicsLayout.itemAt": ('int',),
- "PySide2.QtWidgets.QGraphicsLayout.removeAt": ('int',),
- "PySide2.QtWidgets.QGraphicsLayout.setContentsMargins": ('float', 'float', 'float', 'float'),
- "PySide2.QtWidgets.QGraphicsLayout.setInstantInvalidatePropagation": ('bool',),
- "PySide2.QtWidgets.QGraphicsLayout.updateGeometry": (),
- "PySide2.QtWidgets.QGraphicsLayout.widgetEvent": ('PySide2.QtCore.QEvent',),
-# class PySide2.QtWidgets.QGraphicsLayoutItem:
- "PySide2.QtWidgets.QGraphicsLayoutItem.__init__": ('PySide2.QtWidgets.QGraphicsLayoutItem', 'bool'),
- "PySide2.QtWidgets.QGraphicsLayoutItem.contentsRect": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.effectiveSizeHint": ('PySide2.QtCore.Qt.SizeHint', 'PySide2.QtCore.QSizeF'),
- "PySide2.QtWidgets.QGraphicsLayoutItem.geometry": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.getContentsMargins": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.graphicsItem": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.isLayout": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.maximumHeight": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.maximumSize": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.maximumWidth": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.minimumHeight": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.minimumSize": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.minimumWidth": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.ownedByLayout": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.parentLayoutItem": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.preferredHeight": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.preferredSize": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.preferredWidth": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setGeometry": ('PySide2.QtCore.QRectF',),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setGraphicsItem": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setMaximumHeight": ('float',),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setMaximumSize": [('PySide2.QtCore.QSizeF',), ('float', 'float')],
- "PySide2.QtWidgets.QGraphicsLayoutItem.setMaximumWidth": ('float',),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setMinimumHeight": ('float',),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setMinimumSize": [('PySide2.QtCore.QSizeF',), ('float', 'float')],
- "PySide2.QtWidgets.QGraphicsLayoutItem.setMinimumWidth": ('float',),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setOwnedByLayout": ('bool',),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setParentLayoutItem": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setPreferredHeight": ('float',),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setPreferredSize": [('PySide2.QtCore.QSizeF',), ('float', 'float')],
- "PySide2.QtWidgets.QGraphicsLayoutItem.setPreferredWidth": ('float',),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setSizePolicy": [('PySide2.QtWidgets.QSizePolicy',), ('PySide2.QtWidgets.QSizePolicy.Policy', 'PySide2.QtWidgets.QSizePolicy.Policy', 'PySide2.QtWidgets.QSizePolicy.ControlType')],
- "PySide2.QtWidgets.QGraphicsLayoutItem.sizeHint": ('PySide2.QtCore.Qt.SizeHint', 'PySide2.QtCore.QSizeF'),
- "PySide2.QtWidgets.QGraphicsLayoutItem.sizePolicy": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.updateGeometry": (),
-# class PySide2.QtWidgets.QGraphicsLineItem:
- "PySide2.QtWidgets.QGraphicsLineItem.__init__": [('PySide2.QtCore.QLineF', 'PySide2.QtWidgets.QGraphicsItem'), ('PySide2.QtWidgets.QGraphicsItem',), ('float', 'float', 'float', 'float', 'PySide2.QtWidgets.QGraphicsItem')],
- "PySide2.QtWidgets.QGraphicsLineItem.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsLineItem.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsLineItem.extension": ('typing.Any',),
- "PySide2.QtWidgets.QGraphicsLineItem.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsLineItem.line": (),
- "PySide2.QtWidgets.QGraphicsLineItem.opaqueArea": (),
- "PySide2.QtWidgets.QGraphicsLineItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsLineItem.pen": (),
- "PySide2.QtWidgets.QGraphicsLineItem.setLine": [('PySide2.QtCore.QLineF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsLineItem.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtWidgets.QGraphicsLineItem.shape": (),
- "PySide2.QtWidgets.QGraphicsLineItem.type": (),
-# class PySide2.QtWidgets.QGraphicsLinearLayout:
- "PySide2.QtWidgets.QGraphicsLinearLayout.__init__": [('PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QGraphicsLayoutItem'), ('PySide2.QtWidgets.QGraphicsLayoutItem',)],
- "PySide2.QtWidgets.QGraphicsLinearLayout.addItem": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.addStretch": ('int',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.alignment": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.count": (),
- "PySide2.QtWidgets.QGraphicsLinearLayout.dump": ('int',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.insertItem": ('int', 'PySide2.QtWidgets.QGraphicsLayoutItem'),
- "PySide2.QtWidgets.QGraphicsLinearLayout.insertStretch": ('int', 'int'),
- "PySide2.QtWidgets.QGraphicsLinearLayout.invalidate": (),
- "PySide2.QtWidgets.QGraphicsLinearLayout.itemAt": ('int',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.itemSpacing": ('int',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.orientation": (),
- "PySide2.QtWidgets.QGraphicsLinearLayout.removeAt": ('int',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.removeItem": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.setAlignment": ('PySide2.QtWidgets.QGraphicsLayoutItem', 'PySide2.QtCore.Qt.Alignment'),
- "PySide2.QtWidgets.QGraphicsLinearLayout.setGeometry": ('PySide2.QtCore.QRectF',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.setItemSpacing": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsLinearLayout.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.setSpacing": ('float',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.setStretchFactor": ('PySide2.QtWidgets.QGraphicsLayoutItem', 'int'),
- "PySide2.QtWidgets.QGraphicsLinearLayout.sizeHint": ('PySide2.QtCore.Qt.SizeHint', 'PySide2.QtCore.QSizeF'),
- "PySide2.QtWidgets.QGraphicsLinearLayout.spacing": (),
- "PySide2.QtWidgets.QGraphicsLinearLayout.stretchFactor": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
-# class PySide2.QtWidgets.QGraphicsObject:
- "PySide2.QtWidgets.QGraphicsObject.__init__": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsObject.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsObject.grabGesture": ('PySide2.QtCore.Qt.GestureType', 'PySide2.QtCore.Qt.GestureFlags'),
- "PySide2.QtWidgets.QGraphicsObject.ungrabGesture": ('PySide2.QtCore.Qt.GestureType',),
- "PySide2.QtWidgets.QGraphicsObject.updateMicroFocus": (),
-# class PySide2.QtWidgets.QGraphicsOpacityEffect:
- "PySide2.QtWidgets.QGraphicsOpacityEffect.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGraphicsOpacityEffect.draw": ('PySide2.QtGui.QPainter',),
- "PySide2.QtWidgets.QGraphicsOpacityEffect.opacity": (),
- "PySide2.QtWidgets.QGraphicsOpacityEffect.opacityMask": (),
- "PySide2.QtWidgets.QGraphicsOpacityEffect.setOpacity": ('float',),
- "PySide2.QtWidgets.QGraphicsOpacityEffect.setOpacityMask": ('PySide2.QtGui.QBrush',),
-# class PySide2.QtWidgets.QGraphicsPathItem:
- "PySide2.QtWidgets.QGraphicsPathItem.__init__": [('PySide2.QtGui.QPainterPath', 'PySide2.QtWidgets.QGraphicsItem'), ('PySide2.QtWidgets.QGraphicsItem',)],
- "PySide2.QtWidgets.QGraphicsPathItem.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsPathItem.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsPathItem.extension": ('typing.Any',),
- "PySide2.QtWidgets.QGraphicsPathItem.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsPathItem.opaqueArea": (),
- "PySide2.QtWidgets.QGraphicsPathItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsPathItem.path": (),
- "PySide2.QtWidgets.QGraphicsPathItem.setPath": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtWidgets.QGraphicsPathItem.shape": (),
- "PySide2.QtWidgets.QGraphicsPathItem.type": (),
-# class PySide2.QtWidgets.QGraphicsPixmapItem:
-# class PySide2.QtWidgets.QGraphicsPixmapItem.ShapeMode:
- "PySide2.QtWidgets.QGraphicsPixmapItem.__init__": [('PySide2.QtGui.QPixmap', 'PySide2.QtWidgets.QGraphicsItem'), ('PySide2.QtWidgets.QGraphicsItem',)],
- "PySide2.QtWidgets.QGraphicsPixmapItem.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsPixmapItem.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsPixmapItem.extension": ('typing.Any',),
- "PySide2.QtWidgets.QGraphicsPixmapItem.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsPixmapItem.offset": (),
- "PySide2.QtWidgets.QGraphicsPixmapItem.opaqueArea": (),
- "PySide2.QtWidgets.QGraphicsPixmapItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsPixmapItem.pixmap": (),
- "PySide2.QtWidgets.QGraphicsPixmapItem.setOffset": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtWidgets.QGraphicsPixmapItem.setPixmap": ('PySide2.QtGui.QPixmap',),
- "PySide2.QtWidgets.QGraphicsPixmapItem.setShapeMode": ('PySide2.QtWidgets.QGraphicsPixmapItem.ShapeMode',),
- "PySide2.QtWidgets.QGraphicsPixmapItem.setTransformationMode": ('PySide2.QtCore.Qt.TransformationMode',),
- "PySide2.QtWidgets.QGraphicsPixmapItem.shape": (),
- "PySide2.QtWidgets.QGraphicsPixmapItem.shapeMode": (),
- "PySide2.QtWidgets.QGraphicsPixmapItem.transformationMode": (),
- "PySide2.QtWidgets.QGraphicsPixmapItem.type": (),
-# class PySide2.QtWidgets.QGraphicsPolygonItem:
- "PySide2.QtWidgets.QGraphicsPolygonItem.__init__": [('PySide2.QtGui.QPolygonF', 'PySide2.QtWidgets.QGraphicsItem'), ('PySide2.QtWidgets.QGraphicsItem',)],
- "PySide2.QtWidgets.QGraphicsPolygonItem.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsPolygonItem.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsPolygonItem.extension": ('typing.Any',),
- "PySide2.QtWidgets.QGraphicsPolygonItem.fillRule": (),
- "PySide2.QtWidgets.QGraphicsPolygonItem.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsPolygonItem.opaqueArea": (),
- "PySide2.QtWidgets.QGraphicsPolygonItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsPolygonItem.polygon": (),
- "PySide2.QtWidgets.QGraphicsPolygonItem.setFillRule": ('PySide2.QtCore.Qt.FillRule',),
- "PySide2.QtWidgets.QGraphicsPolygonItem.setPolygon": ('PySide2.QtGui.QPolygonF',),
- "PySide2.QtWidgets.QGraphicsPolygonItem.shape": (),
- "PySide2.QtWidgets.QGraphicsPolygonItem.type": (),
-# class PySide2.QtWidgets.QGraphicsProxyWidget:
- "PySide2.QtWidgets.QGraphicsProxyWidget.__init__": ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QGraphicsProxyWidget.contextMenuEvent": ('PySide2.QtWidgets.QGraphicsSceneContextMenuEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.createProxyForChildWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.dragEnterEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.dragLeaveEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.dragMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.dropEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QGraphicsProxyWidget.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.grabMouseEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.hoverEnterEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.hoverLeaveEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.hoverMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.inputMethodQuery": ('PySide2.QtCore.Qt.InputMethodQuery',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.itemChange": ('PySide2.QtWidgets.QGraphicsItem.GraphicsItemChange', 'typing.Any'),
- "PySide2.QtWidgets.QGraphicsProxyWidget.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.mouseDoubleClickEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.mouseMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.mousePressEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.mouseReleaseEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.newProxyWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsProxyWidget.resizeEvent": ('PySide2.QtWidgets.QGraphicsSceneResizeEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.setGeometry": ('PySide2.QtCore.QRectF',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.setWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.sizeHint": ('PySide2.QtCore.Qt.SizeHint', 'PySide2.QtCore.QSizeF'),
- "PySide2.QtWidgets.QGraphicsProxyWidget.subWidgetRect": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.type": (),
- "PySide2.QtWidgets.QGraphicsProxyWidget.ungrabMouseEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.wheelEvent": ('PySide2.QtWidgets.QGraphicsSceneWheelEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.widget": (),
-# class PySide2.QtWidgets.QGraphicsRectItem:
- "PySide2.QtWidgets.QGraphicsRectItem.__init__": [('PySide2.QtCore.QRectF', 'PySide2.QtWidgets.QGraphicsItem'), ('PySide2.QtWidgets.QGraphicsItem',), ('float', 'float', 'float', 'float', 'PySide2.QtWidgets.QGraphicsItem')],
- "PySide2.QtWidgets.QGraphicsRectItem.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsRectItem.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsRectItem.extension": ('typing.Any',),
- "PySide2.QtWidgets.QGraphicsRectItem.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsRectItem.opaqueArea": (),
- "PySide2.QtWidgets.QGraphicsRectItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsRectItem.rect": (),
- "PySide2.QtWidgets.QGraphicsRectItem.setRect": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsRectItem.shape": (),
- "PySide2.QtWidgets.QGraphicsRectItem.type": (),
-# class PySide2.QtWidgets.QGraphicsRotation:
- "PySide2.QtWidgets.QGraphicsRotation.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGraphicsRotation.angle": (),
- "PySide2.QtWidgets.QGraphicsRotation.applyTo": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtWidgets.QGraphicsRotation.axis": (),
- "PySide2.QtWidgets.QGraphicsRotation.origin": (),
- "PySide2.QtWidgets.QGraphicsRotation.setAngle": ('float',),
- "PySide2.QtWidgets.QGraphicsRotation.setAxis": [('PySide2.QtCore.Qt.Axis',), ('PySide2.QtGui.QVector3D',)],
- "PySide2.QtWidgets.QGraphicsRotation.setOrigin": ('PySide2.QtGui.QVector3D',),
-# class PySide2.QtWidgets.QGraphicsScale:
- "PySide2.QtWidgets.QGraphicsScale.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGraphicsScale.applyTo": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtWidgets.QGraphicsScale.origin": (),
- "PySide2.QtWidgets.QGraphicsScale.setOrigin": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtWidgets.QGraphicsScale.setXScale": ('float',),
- "PySide2.QtWidgets.QGraphicsScale.setYScale": ('float',),
- "PySide2.QtWidgets.QGraphicsScale.setZScale": ('float',),
- "PySide2.QtWidgets.QGraphicsScale.xScale": (),
- "PySide2.QtWidgets.QGraphicsScale.yScale": (),
- "PySide2.QtWidgets.QGraphicsScale.zScale": (),
-# class PySide2.QtWidgets.QGraphicsScene:
-# class PySide2.QtWidgets.QGraphicsScene.ItemIndexMethod:
-# class PySide2.QtWidgets.QGraphicsScene.SceneLayer:
-# class PySide2.QtWidgets.QGraphicsScene.SceneLayers:
- "PySide2.QtWidgets.QGraphicsScene.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtCore.QRectF', 'PySide2.QtCore.QObject'), ('float', 'float', 'float', 'float', 'PySide2.QtCore.QObject')],
- "PySide2.QtWidgets.QGraphicsScene.activePanel": (),
- "PySide2.QtWidgets.QGraphicsScene.activeWindow": (),
- "PySide2.QtWidgets.QGraphicsScene.addEllipse": [('PySide2.QtCore.QRectF', 'PySide2.QtGui.QPen', 'PySide2.QtGui.QBrush'), ('float', 'float', 'float', 'float', 'PySide2.QtGui.QPen', 'PySide2.QtGui.QBrush')],
- "PySide2.QtWidgets.QGraphicsScene.addItem": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsScene.addLine": [('PySide2.QtCore.QLineF', 'PySide2.QtGui.QPen'), ('float', 'float', 'float', 'float', 'PySide2.QtGui.QPen')],
- "PySide2.QtWidgets.QGraphicsScene.addPath": ('PySide2.QtGui.QPainterPath', 'PySide2.QtGui.QPen', 'PySide2.QtGui.QBrush'),
- "PySide2.QtWidgets.QGraphicsScene.addPixmap": ('PySide2.QtGui.QPixmap',),
- "PySide2.QtWidgets.QGraphicsScene.addPolygon": ('PySide2.QtGui.QPolygonF', 'PySide2.QtGui.QPen', 'PySide2.QtGui.QBrush'),
- "PySide2.QtWidgets.QGraphicsScene.addRect": [('PySide2.QtCore.QRectF', 'PySide2.QtGui.QPen', 'PySide2.QtGui.QBrush'), ('float', 'float', 'float', 'float', 'PySide2.QtGui.QPen', 'PySide2.QtGui.QBrush')],
- "PySide2.QtWidgets.QGraphicsScene.addSimpleText": ('str', 'PySide2.QtGui.QFont'),
- "PySide2.QtWidgets.QGraphicsScene.addText": ('str', 'PySide2.QtGui.QFont'),
- "PySide2.QtWidgets.QGraphicsScene.addWidget": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QGraphicsScene.advance": (),
- "PySide2.QtWidgets.QGraphicsScene.backgroundBrush": (),
- "PySide2.QtWidgets.QGraphicsScene.bspTreeDepth": (),
- "PySide2.QtWidgets.QGraphicsScene.clear": (),
- "PySide2.QtWidgets.QGraphicsScene.clearFocus": (),
- "PySide2.QtWidgets.QGraphicsScene.clearSelection": (),
- "PySide2.QtWidgets.QGraphicsScene.collidingItems": ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.Qt.ItemSelectionMode'),
- "PySide2.QtWidgets.QGraphicsScene.contextMenuEvent": ('PySide2.QtWidgets.QGraphicsSceneContextMenuEvent',),
- "PySide2.QtWidgets.QGraphicsScene.createItemGroup": ('typing.Sequence',),
- "PySide2.QtWidgets.QGraphicsScene.destroyItemGroup": ('PySide2.QtWidgets.QGraphicsItemGroup',),
- "PySide2.QtWidgets.QGraphicsScene.dragEnterEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsScene.dragLeaveEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsScene.dragMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsScene.drawBackground": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF'),
- "PySide2.QtWidgets.QGraphicsScene.drawForeground": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF'),
- "PySide2.QtWidgets.QGraphicsScene.dropEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsScene.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsScene.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QGraphicsScene.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsScene.focusItem": (),
- "PySide2.QtWidgets.QGraphicsScene.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QGraphicsScene.focusOnTouch": (),
- "PySide2.QtWidgets.QGraphicsScene.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsScene.font": (),
- "PySide2.QtWidgets.QGraphicsScene.foregroundBrush": (),
- "PySide2.QtWidgets.QGraphicsScene.hasFocus": (),
- "PySide2.QtWidgets.QGraphicsScene.height": (),
- "PySide2.QtWidgets.QGraphicsScene.helpEvent": ('PySide2.QtWidgets.QGraphicsSceneHelpEvent',),
- "PySide2.QtWidgets.QGraphicsScene.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QGraphicsScene.inputMethodQuery": ('PySide2.QtCore.Qt.InputMethodQuery',),
- "PySide2.QtWidgets.QGraphicsScene.invalidate": [('PySide2.QtCore.QRectF', 'PySide2.QtWidgets.QGraphicsScene.SceneLayers'), ('float', 'float', 'float', 'float', 'PySide2.QtWidgets.QGraphicsScene.SceneLayers')],
- "PySide2.QtWidgets.QGraphicsScene.isActive": (),
- "PySide2.QtWidgets.QGraphicsScene.isSortCacheEnabled": (),
- "PySide2.QtWidgets.QGraphicsScene.itemAt": [('PySide2.QtCore.QPointF', 'PySide2.QtGui.QTransform'), ('float', 'float', 'PySide2.QtGui.QTransform')],
- "PySide2.QtWidgets.QGraphicsScene.itemIndexMethod": (),
- "PySide2.QtWidgets.QGraphicsScene.items": [('PySide2.QtCore.QPointF', 'PySide2.QtCore.Qt.ItemSelectionMode', 'PySide2.QtCore.Qt.SortOrder', 'PySide2.QtGui.QTransform'), ('PySide2.QtCore.QRectF', 'PySide2.QtCore.Qt.ItemSelectionMode', 'PySide2.QtCore.Qt.SortOrder', 'PySide2.QtGui.QTransform'), ('PySide2.QtCore.Qt.SortOrder',), ('PySide2.QtGui.QPainterPath', 'PySide2.QtCore.Qt.ItemSelectionMode', 'PySide2.QtCore.Qt.SortOrder', 'PySide2.QtGui.QTransform'), ('PySide2.QtGui.QPolygonF', 'PySide2.QtCore.Qt.ItemSelectionMode', 'PySide2.QtCore.Qt.SortOrder', 'PySide2.QtGui.QTransform'), ('float', 'float', 'float', 'float', 'PySide2.QtCore.Qt.ItemSelectionMode', 'PySide2.QtCore.Qt.SortOrder', 'PySide2.QtGui.QTransform')],
- "PySide2.QtWidgets.QGraphicsScene.itemsBoundingRect": (),
- "PySide2.QtWidgets.QGraphicsScene.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QGraphicsScene.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QGraphicsScene.minimumRenderSize": (),
- "PySide2.QtWidgets.QGraphicsScene.mouseDoubleClickEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsScene.mouseGrabberItem": (),
- "PySide2.QtWidgets.QGraphicsScene.mouseMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsScene.mousePressEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsScene.mouseReleaseEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsScene.palette": (),
- "PySide2.QtWidgets.QGraphicsScene.removeItem": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsScene.render": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF', 'PySide2.QtCore.QRectF', 'PySide2.QtCore.Qt.AspectRatioMode'),
- "PySide2.QtWidgets.QGraphicsScene.sceneRect": (),
- "PySide2.QtWidgets.QGraphicsScene.selectedItems": (),
- "PySide2.QtWidgets.QGraphicsScene.selectionArea": (),
- "PySide2.QtWidgets.QGraphicsScene.sendEvent": ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QGraphicsScene.setActivePanel": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsScene.setActiveWindow": ('PySide2.QtWidgets.QGraphicsWidget',),
- "PySide2.QtWidgets.QGraphicsScene.setBackgroundBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtWidgets.QGraphicsScene.setBspTreeDepth": ('int',),
- "PySide2.QtWidgets.QGraphicsScene.setFocus": ('PySide2.QtCore.Qt.FocusReason',),
- "PySide2.QtWidgets.QGraphicsScene.setFocusItem": ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.Qt.FocusReason'),
- "PySide2.QtWidgets.QGraphicsScene.setFocusOnTouch": ('bool',),
- "PySide2.QtWidgets.QGraphicsScene.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QGraphicsScene.setForegroundBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtWidgets.QGraphicsScene.setItemIndexMethod": ('PySide2.QtWidgets.QGraphicsScene.ItemIndexMethod',),
- "PySide2.QtWidgets.QGraphicsScene.setMinimumRenderSize": ('float',),
- "PySide2.QtWidgets.QGraphicsScene.setPalette": ('PySide2.QtGui.QPalette',),
- "PySide2.QtWidgets.QGraphicsScene.setSceneRect": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsScene.setSelectionArea": [('PySide2.QtGui.QPainterPath', 'PySide2.QtCore.Qt.ItemSelectionMode', 'PySide2.QtGui.QTransform'), ('PySide2.QtGui.QPainterPath', 'PySide2.QtCore.Qt.ItemSelectionOperation', 'PySide2.QtCore.Qt.ItemSelectionMode', 'PySide2.QtGui.QTransform'), ('PySide2.QtGui.QPainterPath', 'PySide2.QtGui.QTransform')],
- "PySide2.QtWidgets.QGraphicsScene.setSortCacheEnabled": ('bool',),
- "PySide2.QtWidgets.QGraphicsScene.setStickyFocus": ('bool',),
- "PySide2.QtWidgets.QGraphicsScene.setStyle": ('PySide2.QtWidgets.QStyle',),
- "PySide2.QtWidgets.QGraphicsScene.stickyFocus": (),
- "PySide2.QtWidgets.QGraphicsScene.style": (),
- "PySide2.QtWidgets.QGraphicsScene.update": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsScene.views": (),
- "PySide2.QtWidgets.QGraphicsScene.wheelEvent": ('PySide2.QtWidgets.QGraphicsSceneWheelEvent',),
- "PySide2.QtWidgets.QGraphicsScene.width": (),
-# class PySide2.QtWidgets.QGraphicsSceneContextMenuEvent:
-# class PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.Reason:
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.__init__": ('PySide2.QtCore.QEvent.Type',),
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.modifiers": (),
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.pos": (),
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.reason": (),
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.scenePos": (),
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.screenPos": (),
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.setModifiers": ('PySide2.QtCore.Qt.KeyboardModifiers',),
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.setPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.setReason": ('PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.Reason',),
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.setScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.setScreenPos": ('PySide2.QtCore.QPoint',),
-# class PySide2.QtWidgets.QGraphicsSceneDragDropEvent:
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.__init__": ('PySide2.QtCore.QEvent.Type',),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.acceptProposedAction": (),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.buttons": (),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.dropAction": (),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.mimeData": (),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.modifiers": (),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.pos": (),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.possibleActions": (),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.proposedAction": (),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.scenePos": (),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.screenPos": (),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.setButtons": ('PySide2.QtCore.Qt.MouseButtons',),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.setDropAction": ('PySide2.QtCore.Qt.DropAction',),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.setModifiers": ('PySide2.QtCore.Qt.KeyboardModifiers',),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.setPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.setPossibleActions": ('PySide2.QtCore.Qt.DropActions',),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.setProposedAction": ('PySide2.QtCore.Qt.DropAction',),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.setScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.setScreenPos": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.source": (),
-# class PySide2.QtWidgets.QGraphicsSceneEvent:
- "PySide2.QtWidgets.QGraphicsSceneEvent.__init__": ('PySide2.QtCore.QEvent.Type',),
- "PySide2.QtWidgets.QGraphicsSceneEvent.widget": (),
-# class PySide2.QtWidgets.QGraphicsSceneHelpEvent:
- "PySide2.QtWidgets.QGraphicsSceneHelpEvent.__init__": ('PySide2.QtCore.QEvent.Type',),
- "PySide2.QtWidgets.QGraphicsSceneHelpEvent.scenePos": (),
- "PySide2.QtWidgets.QGraphicsSceneHelpEvent.screenPos": (),
- "PySide2.QtWidgets.QGraphicsSceneHelpEvent.setScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneHelpEvent.setScreenPos": ('PySide2.QtCore.QPoint',),
-# class PySide2.QtWidgets.QGraphicsSceneHoverEvent:
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.__init__": ('PySide2.QtCore.QEvent.Type',),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.lastPos": (),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.lastScenePos": (),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.lastScreenPos": (),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.modifiers": (),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.pos": (),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.scenePos": (),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.screenPos": (),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.setLastPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.setLastScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.setLastScreenPos": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.setModifiers": ('PySide2.QtCore.Qt.KeyboardModifiers',),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.setPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.setScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.setScreenPos": ('PySide2.QtCore.QPoint',),
-# class PySide2.QtWidgets.QGraphicsSceneMouseEvent:
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.__init__": ('PySide2.QtCore.QEvent.Type',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.button": (),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.buttonDownPos": ('PySide2.QtCore.Qt.MouseButton',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.buttonDownScenePos": ('PySide2.QtCore.Qt.MouseButton',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.buttonDownScreenPos": ('PySide2.QtCore.Qt.MouseButton',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.buttons": (),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.flags": (),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.lastPos": (),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.lastScenePos": (),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.lastScreenPos": (),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.modifiers": (),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.pos": (),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.scenePos": (),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.screenPos": (),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setButton": ('PySide2.QtCore.Qt.MouseButton',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setButtonDownPos": ('PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.QPointF'),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setButtonDownScenePos": ('PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.QPointF'),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setButtonDownScreenPos": ('PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.QPoint'),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setButtons": ('PySide2.QtCore.Qt.MouseButtons',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setFlags": ('PySide2.QtCore.Qt.MouseEventFlags',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setLastPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setLastScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setLastScreenPos": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setModifiers": ('PySide2.QtCore.Qt.KeyboardModifiers',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setScreenPos": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setSource": ('PySide2.QtCore.Qt.MouseEventSource',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.source": (),
-# class PySide2.QtWidgets.QGraphicsSceneMoveEvent:
- "PySide2.QtWidgets.QGraphicsSceneMoveEvent.__init__": (),
- "PySide2.QtWidgets.QGraphicsSceneMoveEvent.newPos": (),
- "PySide2.QtWidgets.QGraphicsSceneMoveEvent.oldPos": (),
- "PySide2.QtWidgets.QGraphicsSceneMoveEvent.setNewPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneMoveEvent.setOldPos": ('PySide2.QtCore.QPointF',),
-# class PySide2.QtWidgets.QGraphicsSceneResizeEvent:
- "PySide2.QtWidgets.QGraphicsSceneResizeEvent.__init__": (),
- "PySide2.QtWidgets.QGraphicsSceneResizeEvent.newSize": (),
- "PySide2.QtWidgets.QGraphicsSceneResizeEvent.oldSize": (),
- "PySide2.QtWidgets.QGraphicsSceneResizeEvent.setNewSize": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtWidgets.QGraphicsSceneResizeEvent.setOldSize": ('PySide2.QtCore.QSizeF',),
-# class PySide2.QtWidgets.QGraphicsSceneWheelEvent:
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.__init__": ('PySide2.QtCore.QEvent.Type',),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.buttons": (),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.delta": (),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.modifiers": (),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.orientation": (),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.pos": (),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.scenePos": (),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.screenPos": (),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.setButtons": ('PySide2.QtCore.Qt.MouseButtons',),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.setDelta": ('int',),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.setModifiers": ('PySide2.QtCore.Qt.KeyboardModifiers',),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.setPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.setScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.setScreenPos": ('PySide2.QtCore.QPoint',),
-# class PySide2.QtWidgets.QGraphicsSimpleTextItem:
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.__init__": [('PySide2.QtWidgets.QGraphicsItem',), ('str', 'PySide2.QtWidgets.QGraphicsItem')],
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.extension": ('typing.Any',),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.font": (),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.opaqueArea": (),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.setText": ('str',),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.shape": (),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.text": (),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.type": (),
-# class PySide2.QtWidgets.QGraphicsTextItem:
- "PySide2.QtWidgets.QGraphicsTextItem.__init__": [('PySide2.QtWidgets.QGraphicsItem',), ('str', 'PySide2.QtWidgets.QGraphicsItem')],
- "PySide2.QtWidgets.QGraphicsTextItem.adjustSize": (),
- "PySide2.QtWidgets.QGraphicsTextItem.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsTextItem.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsTextItem.contextMenuEvent": ('PySide2.QtWidgets.QGraphicsSceneContextMenuEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.defaultTextColor": (),
- "PySide2.QtWidgets.QGraphicsTextItem.document": (),
- "PySide2.QtWidgets.QGraphicsTextItem.dragEnterEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.dragLeaveEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.dragMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.dropEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.extension": ('typing.Any',),
- "PySide2.QtWidgets.QGraphicsTextItem.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.font": (),
- "PySide2.QtWidgets.QGraphicsTextItem.hoverEnterEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.hoverLeaveEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.hoverMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.inputMethodQuery": ('PySide2.QtCore.Qt.InputMethodQuery',),
- "PySide2.QtWidgets.QGraphicsTextItem.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsTextItem.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.mouseDoubleClickEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.mouseMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.mousePressEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.mouseReleaseEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.opaqueArea": (),
- "PySide2.QtWidgets.QGraphicsTextItem.openExternalLinks": (),
- "PySide2.QtWidgets.QGraphicsTextItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsTextItem.sceneEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.setDefaultTextColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QGraphicsTextItem.setDocument": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtWidgets.QGraphicsTextItem.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QGraphicsTextItem.setHtml": ('str',),
- "PySide2.QtWidgets.QGraphicsTextItem.setOpenExternalLinks": ('bool',),
- "PySide2.QtWidgets.QGraphicsTextItem.setPlainText": ('str',),
- "PySide2.QtWidgets.QGraphicsTextItem.setTabChangesFocus": ('bool',),
- "PySide2.QtWidgets.QGraphicsTextItem.setTextCursor": ('PySide2.QtGui.QTextCursor',),
- "PySide2.QtWidgets.QGraphicsTextItem.setTextInteractionFlags": ('PySide2.QtCore.Qt.TextInteractionFlags',),
- "PySide2.QtWidgets.QGraphicsTextItem.setTextWidth": ('float',),
- "PySide2.QtWidgets.QGraphicsTextItem.shape": (),
- "PySide2.QtWidgets.QGraphicsTextItem.tabChangesFocus": (),
- "PySide2.QtWidgets.QGraphicsTextItem.textCursor": (),
- "PySide2.QtWidgets.QGraphicsTextItem.textInteractionFlags": (),
- "PySide2.QtWidgets.QGraphicsTextItem.textWidth": (),
- "PySide2.QtWidgets.QGraphicsTextItem.toHtml": (),
- "PySide2.QtWidgets.QGraphicsTextItem.toPlainText": (),
- "PySide2.QtWidgets.QGraphicsTextItem.type": (),
-# class PySide2.QtWidgets.QGraphicsTransform:
- "PySide2.QtWidgets.QGraphicsTransform.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGraphicsTransform.applyTo": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtWidgets.QGraphicsTransform.update": (),
-# class PySide2.QtWidgets.QGraphicsView:
-# class PySide2.QtWidgets.QGraphicsView.CacheMode:
-# class PySide2.QtWidgets.QGraphicsView.CacheModeFlag:
-# class PySide2.QtWidgets.QGraphicsView.DragMode:
-# class PySide2.QtWidgets.QGraphicsView.OptimizationFlag:
-# class PySide2.QtWidgets.QGraphicsView.OptimizationFlags:
-# class PySide2.QtWidgets.QGraphicsView.ViewportAnchor:
-# class PySide2.QtWidgets.QGraphicsView.ViewportUpdateMode:
- "PySide2.QtWidgets.QGraphicsView.__init__": [('PySide2.QtWidgets.QGraphicsScene', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QGraphicsView.alignment": (),
- "PySide2.QtWidgets.QGraphicsView.backgroundBrush": (),
- "PySide2.QtWidgets.QGraphicsView.cacheMode": (),
- "PySide2.QtWidgets.QGraphicsView.centerOn": [('PySide2.QtCore.QPointF',), ('PySide2.QtWidgets.QGraphicsItem',), ('float', 'float')],
- "PySide2.QtWidgets.QGraphicsView.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QGraphicsView.dragEnterEvent": ('PySide2.QtGui.QDragEnterEvent',),
- "PySide2.QtWidgets.QGraphicsView.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtWidgets.QGraphicsView.dragMode": (),
- "PySide2.QtWidgets.QGraphicsView.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtWidgets.QGraphicsView.drawBackground": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF'),
- "PySide2.QtWidgets.QGraphicsView.drawForeground": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF'),
- "PySide2.QtWidgets.QGraphicsView.drawItems": ('PySide2.QtGui.QPainter', 'int', 'typing.Sequence', 'typing.Sequence'),
- "PySide2.QtWidgets.QGraphicsView.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QGraphicsView.ensureVisible": [('PySide2.QtCore.QRectF', 'int', 'int'), ('PySide2.QtWidgets.QGraphicsItem', 'int', 'int'), ('float', 'float', 'float', 'float', 'int', 'int')],
- "PySide2.QtWidgets.QGraphicsView.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsView.fitInView": [('PySide2.QtCore.QRectF', 'PySide2.QtCore.Qt.AspectRatioMode'), ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.Qt.AspectRatioMode'), ('float', 'float', 'float', 'float', 'PySide2.QtCore.Qt.AspectRatioMode')],
- "PySide2.QtWidgets.QGraphicsView.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsView.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QGraphicsView.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsView.foregroundBrush": (),
- "PySide2.QtWidgets.QGraphicsView.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QGraphicsView.inputMethodQuery": ('PySide2.QtCore.Qt.InputMethodQuery',),
- "PySide2.QtWidgets.QGraphicsView.invalidateScene": ('PySide2.QtCore.QRectF', 'PySide2.QtWidgets.QGraphicsScene.SceneLayers'),
- "PySide2.QtWidgets.QGraphicsView.isInteractive": (),
- "PySide2.QtWidgets.QGraphicsView.isTransformed": (),
- "PySide2.QtWidgets.QGraphicsView.itemAt": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtWidgets.QGraphicsView.items": [(), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QRect', 'PySide2.QtCore.Qt.ItemSelectionMode'), ('PySide2.QtGui.QPainterPath', 'PySide2.QtCore.Qt.ItemSelectionMode'), ('PySide2.QtGui.QPolygon', 'PySide2.QtCore.Qt.ItemSelectionMode'), ('int', 'int'), ('int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.ItemSelectionMode')],
- "PySide2.QtWidgets.QGraphicsView.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QGraphicsView.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QGraphicsView.mapFromScene": [('PySide2.QtCore.QPointF',), ('PySide2.QtCore.QRectF',), ('PySide2.QtGui.QPainterPath',), ('PySide2.QtGui.QPolygonF',), ('float', 'float'), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsView.mapToScene": [('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QRect',), ('PySide2.QtGui.QPainterPath',), ('PySide2.QtGui.QPolygon',), ('int', 'int'), ('int', 'int', 'int', 'int')],
- "PySide2.QtWidgets.QGraphicsView.matrix": (),
- "PySide2.QtWidgets.QGraphicsView.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QGraphicsView.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QGraphicsView.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QGraphicsView.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QGraphicsView.optimizationFlags": (),
- "PySide2.QtWidgets.QGraphicsView.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QGraphicsView.render": [('PySide2.QtGui.QPaintDevice', 'PySide2.QtCore.QPoint', 'PySide2.QtGui.QRegion', 'PySide2.QtWidgets.QWidget.RenderFlags'), ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF', 'PySide2.QtCore.QRect', 'PySide2.QtCore.Qt.AspectRatioMode')],
- "PySide2.QtWidgets.QGraphicsView.renderHints": (),
- "PySide2.QtWidgets.QGraphicsView.resetCachedContent": (),
- "PySide2.QtWidgets.QGraphicsView.resetMatrix": (),
- "PySide2.QtWidgets.QGraphicsView.resetTransform": (),
- "PySide2.QtWidgets.QGraphicsView.resizeAnchor": (),
- "PySide2.QtWidgets.QGraphicsView.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QGraphicsView.rotate": ('float',),
- "PySide2.QtWidgets.QGraphicsView.rubberBandRect": (),
- "PySide2.QtWidgets.QGraphicsView.rubberBandSelectionMode": (),
- "PySide2.QtWidgets.QGraphicsView.scale": ('float', 'float'),
- "PySide2.QtWidgets.QGraphicsView.scene": (),
- "PySide2.QtWidgets.QGraphicsView.sceneRect": (),
- "PySide2.QtWidgets.QGraphicsView.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QGraphicsView.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QGraphicsView.setBackgroundBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtWidgets.QGraphicsView.setCacheMode": ('PySide2.QtWidgets.QGraphicsView.CacheMode',),
- "PySide2.QtWidgets.QGraphicsView.setDragMode": ('PySide2.QtWidgets.QGraphicsView.DragMode',),
- "PySide2.QtWidgets.QGraphicsView.setForegroundBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtWidgets.QGraphicsView.setInteractive": ('bool',),
- "PySide2.QtWidgets.QGraphicsView.setMatrix": ('PySide2.QtGui.QMatrix', 'bool'),
- "PySide2.QtWidgets.QGraphicsView.setOptimizationFlag": ('PySide2.QtWidgets.QGraphicsView.OptimizationFlag', 'bool'),
- "PySide2.QtWidgets.QGraphicsView.setOptimizationFlags": ('PySide2.QtWidgets.QGraphicsView.OptimizationFlags',),
- "PySide2.QtWidgets.QGraphicsView.setRenderHint": ('PySide2.QtGui.QPainter.RenderHint', 'bool'),
- "PySide2.QtWidgets.QGraphicsView.setRenderHints": ('PySide2.QtGui.QPainter.RenderHints',),
- "PySide2.QtWidgets.QGraphicsView.setResizeAnchor": ('PySide2.QtWidgets.QGraphicsView.ViewportAnchor',),
- "PySide2.QtWidgets.QGraphicsView.setRubberBandSelectionMode": ('PySide2.QtCore.Qt.ItemSelectionMode',),
- "PySide2.QtWidgets.QGraphicsView.setScene": ('PySide2.QtWidgets.QGraphicsScene',),
- "PySide2.QtWidgets.QGraphicsView.setSceneRect": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsView.setTransform": ('PySide2.QtGui.QTransform', 'bool'),
- "PySide2.QtWidgets.QGraphicsView.setTransformationAnchor": ('PySide2.QtWidgets.QGraphicsView.ViewportAnchor',),
- "PySide2.QtWidgets.QGraphicsView.setViewportUpdateMode": ('PySide2.QtWidgets.QGraphicsView.ViewportUpdateMode',),
- "PySide2.QtWidgets.QGraphicsView.setupViewport": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QGraphicsView.shear": ('float', 'float'),
- "PySide2.QtWidgets.QGraphicsView.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QGraphicsView.sizeHint": (),
- "PySide2.QtWidgets.QGraphicsView.transform": (),
- "PySide2.QtWidgets.QGraphicsView.transformationAnchor": (),
- "PySide2.QtWidgets.QGraphicsView.translate": ('float', 'float'),
- "PySide2.QtWidgets.QGraphicsView.updateScene": ('typing.Sequence',),
- "PySide2.QtWidgets.QGraphicsView.updateSceneRect": ('PySide2.QtCore.QRectF',),
- "PySide2.QtWidgets.QGraphicsView.viewportEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsView.viewportTransform": (),
- "PySide2.QtWidgets.QGraphicsView.viewportUpdateMode": (),
- "PySide2.QtWidgets.QGraphicsView.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtWidgets.QGraphicsWidget:
- "PySide2.QtWidgets.QGraphicsWidget.__init__": ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QGraphicsWidget.actions": (),
- "PySide2.QtWidgets.QGraphicsWidget.addAction": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QGraphicsWidget.addActions": ('typing.Sequence',),
- "PySide2.QtWidgets.QGraphicsWidget.adjustSize": (),
- "PySide2.QtWidgets.QGraphicsWidget.autoFillBackground": (),
- "PySide2.QtWidgets.QGraphicsWidget.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsWidget.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.close": (),
- "PySide2.QtWidgets.QGraphicsWidget.closeEvent": ('PySide2.QtGui.QCloseEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QGraphicsWidget.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.focusPolicy": (),
- "PySide2.QtWidgets.QGraphicsWidget.focusWidget": (),
- "PySide2.QtWidgets.QGraphicsWidget.font": (),
- "PySide2.QtWidgets.QGraphicsWidget.getContentsMargins": (),
- "PySide2.QtWidgets.QGraphicsWidget.getWindowFrameMargins": (),
- "PySide2.QtWidgets.QGraphicsWidget.grabKeyboardEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.grabMouseEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.grabShortcut": ('PySide2.QtGui.QKeySequence', 'PySide2.QtCore.Qt.ShortcutContext'),
- "PySide2.QtWidgets.QGraphicsWidget.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.hoverLeaveEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.hoverMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.initStyleOption": ('PySide2.QtWidgets.QStyleOption',),
- "PySide2.QtWidgets.QGraphicsWidget.insertAction": ('PySide2.QtWidgets.QAction', 'PySide2.QtWidgets.QAction'),
- "PySide2.QtWidgets.QGraphicsWidget.insertActions": ('PySide2.QtWidgets.QAction', 'typing.Sequence'),
- "PySide2.QtWidgets.QGraphicsWidget.isActiveWindow": (),
- "PySide2.QtWidgets.QGraphicsWidget.itemChange": ('PySide2.QtWidgets.QGraphicsItem.GraphicsItemChange', 'typing.Any'),
- "PySide2.QtWidgets.QGraphicsWidget.layout": (),
- "PySide2.QtWidgets.QGraphicsWidget.layoutDirection": (),
- "PySide2.QtWidgets.QGraphicsWidget.moveEvent": ('PySide2.QtWidgets.QGraphicsSceneMoveEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsWidget.paintWindowFrame": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsWidget.palette": (),
- "PySide2.QtWidgets.QGraphicsWidget.polishEvent": (),
- "PySide2.QtWidgets.QGraphicsWidget.propertyChange": ('str', 'typing.Any'),
- "PySide2.QtWidgets.QGraphicsWidget.rect": (),
- "PySide2.QtWidgets.QGraphicsWidget.releaseShortcut": ('int',),
- "PySide2.QtWidgets.QGraphicsWidget.removeAction": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QGraphicsWidget.resize": [('PySide2.QtCore.QSizeF',), ('float', 'float')],
- "PySide2.QtWidgets.QGraphicsWidget.resizeEvent": ('PySide2.QtWidgets.QGraphicsSceneResizeEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.sceneEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.setAttribute": ('PySide2.QtCore.Qt.WidgetAttribute', 'bool'),
- "PySide2.QtWidgets.QGraphicsWidget.setAutoFillBackground": ('bool',),
- "PySide2.QtWidgets.QGraphicsWidget.setContentsMargins": [('PySide2.QtCore.QMarginsF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsWidget.setFocusPolicy": ('PySide2.QtCore.Qt.FocusPolicy',),
- "PySide2.QtWidgets.QGraphicsWidget.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QGraphicsWidget.setGeometry": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsWidget.setLayout": ('PySide2.QtWidgets.QGraphicsLayout',),
- "PySide2.QtWidgets.QGraphicsWidget.setLayoutDirection": ('PySide2.QtCore.Qt.LayoutDirection',),
- "PySide2.QtWidgets.QGraphicsWidget.setPalette": ('PySide2.QtGui.QPalette',),
- "PySide2.QtWidgets.QGraphicsWidget.setShortcutAutoRepeat": ('int', 'bool'),
- "PySide2.QtWidgets.QGraphicsWidget.setShortcutEnabled": ('int', 'bool'),
- "PySide2.QtWidgets.QGraphicsWidget.setStyle": ('PySide2.QtWidgets.QStyle',),
- "PySide2.QtWidgets.QGraphicsWidget.setTabOrder": ('PySide2.QtWidgets.QGraphicsWidget', 'PySide2.QtWidgets.QGraphicsWidget'),
- "PySide2.QtWidgets.QGraphicsWidget.setWindowFlags": ('PySide2.QtCore.Qt.WindowFlags',),
- "PySide2.QtWidgets.QGraphicsWidget.setWindowFrameMargins": [('PySide2.QtCore.QMarginsF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsWidget.setWindowTitle": ('str',),
- "PySide2.QtWidgets.QGraphicsWidget.shape": (),
- "PySide2.QtWidgets.QGraphicsWidget.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.size": (),
- "PySide2.QtWidgets.QGraphicsWidget.sizeHint": ('PySide2.QtCore.Qt.SizeHint', 'PySide2.QtCore.QSizeF'),
- "PySide2.QtWidgets.QGraphicsWidget.style": (),
- "PySide2.QtWidgets.QGraphicsWidget.testAttribute": ('PySide2.QtCore.Qt.WidgetAttribute',),
- "PySide2.QtWidgets.QGraphicsWidget.type": (),
- "PySide2.QtWidgets.QGraphicsWidget.ungrabKeyboardEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.ungrabMouseEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.unsetLayoutDirection": (),
- "PySide2.QtWidgets.QGraphicsWidget.unsetWindowFrameMargins": (),
- "PySide2.QtWidgets.QGraphicsWidget.updateGeometry": (),
- "PySide2.QtWidgets.QGraphicsWidget.windowFlags": (),
- "PySide2.QtWidgets.QGraphicsWidget.windowFrameEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.windowFrameGeometry": (),
- "PySide2.QtWidgets.QGraphicsWidget.windowFrameRect": (),
- "PySide2.QtWidgets.QGraphicsWidget.windowFrameSectionAt": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsWidget.windowTitle": (),
- "PySide2.QtWidgets.QGraphicsWidget.windowType": (),
-# class PySide2.QtWidgets.QGridLayout:
- "PySide2.QtWidgets.QGridLayout.__init__": [(), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QGridLayout.addItem": [('PySide2.QtWidgets.QLayoutItem',), ('PySide2.QtWidgets.QLayoutItem', 'int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.Alignment')],
- "PySide2.QtWidgets.QGridLayout.addLayout": [('PySide2.QtWidgets.QLayout', 'int', 'int', 'PySide2.QtCore.Qt.Alignment'), ('PySide2.QtWidgets.QLayout', 'int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.Alignment')],
- "PySide2.QtWidgets.QGridLayout.addWidget": [('PySide2.QtWidgets.QWidget',), ('PySide2.QtWidgets.QWidget', 'int', 'int', 'PySide2.QtCore.Qt.Alignment'), ('PySide2.QtWidgets.QWidget', 'int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.Alignment')],
- "PySide2.QtWidgets.QGridLayout.cellRect": ('int', 'int'),
- "PySide2.QtWidgets.QGridLayout.columnCount": (),
- "PySide2.QtWidgets.QGridLayout.columnMinimumWidth": ('int',),
- "PySide2.QtWidgets.QGridLayout.columnStretch": ('int',),
- "PySide2.QtWidgets.QGridLayout.count": (),
- "PySide2.QtWidgets.QGridLayout.expandingDirections": (),
- "PySide2.QtWidgets.QGridLayout.getItemPosition": ('int',),
- "PySide2.QtWidgets.QGridLayout.hasHeightForWidth": (),
- "PySide2.QtWidgets.QGridLayout.heightForWidth": ('int',),
- "PySide2.QtWidgets.QGridLayout.horizontalSpacing": (),
- "PySide2.QtWidgets.QGridLayout.invalidate": (),
- "PySide2.QtWidgets.QGridLayout.itemAt": ('int',),
- "PySide2.QtWidgets.QGridLayout.itemAtPosition": ('int', 'int'),
- "PySide2.QtWidgets.QGridLayout.maximumSize": (),
- "PySide2.QtWidgets.QGridLayout.minimumHeightForWidth": ('int',),
- "PySide2.QtWidgets.QGridLayout.minimumSize": (),
- "PySide2.QtWidgets.QGridLayout.originCorner": (),
- "PySide2.QtWidgets.QGridLayout.rowCount": (),
- "PySide2.QtWidgets.QGridLayout.rowMinimumHeight": ('int',),
- "PySide2.QtWidgets.QGridLayout.rowStretch": ('int',),
- "PySide2.QtWidgets.QGridLayout.setColumnMinimumWidth": ('int', 'int'),
- "PySide2.QtWidgets.QGridLayout.setColumnStretch": ('int', 'int'),
- "PySide2.QtWidgets.QGridLayout.setDefaultPositioning": ('int', 'PySide2.QtCore.Qt.Orientation'),
- "PySide2.QtWidgets.QGridLayout.setGeometry": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QGridLayout.setHorizontalSpacing": ('int',),
- "PySide2.QtWidgets.QGridLayout.setOriginCorner": ('PySide2.QtCore.Qt.Corner',),
- "PySide2.QtWidgets.QGridLayout.setRowMinimumHeight": ('int', 'int'),
- "PySide2.QtWidgets.QGridLayout.setRowStretch": ('int', 'int'),
- "PySide2.QtWidgets.QGridLayout.setSpacing": ('int',),
- "PySide2.QtWidgets.QGridLayout.setVerticalSpacing": ('int',),
- "PySide2.QtWidgets.QGridLayout.sizeHint": (),
- "PySide2.QtWidgets.QGridLayout.spacing": (),
- "PySide2.QtWidgets.QGridLayout.takeAt": ('int',),
- "PySide2.QtWidgets.QGridLayout.verticalSpacing": (),
-# class PySide2.QtWidgets.QGroupBox:
- "PySide2.QtWidgets.QGroupBox.__init__": [('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QGroupBox.alignment": (),
- "PySide2.QtWidgets.QGroupBox.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGroupBox.childEvent": ('PySide2.QtCore.QChildEvent',),
- "PySide2.QtWidgets.QGroupBox.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGroupBox.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGroupBox.initStyleOption": ('PySide2.QtWidgets.QStyleOptionGroupBox',),
- "PySide2.QtWidgets.QGroupBox.isCheckable": (),
- "PySide2.QtWidgets.QGroupBox.isChecked": (),
- "PySide2.QtWidgets.QGroupBox.isFlat": (),
- "PySide2.QtWidgets.QGroupBox.minimumSizeHint": (),
- "PySide2.QtWidgets.QGroupBox.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QGroupBox.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QGroupBox.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QGroupBox.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QGroupBox.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QGroupBox.setAlignment": ('int',),
- "PySide2.QtWidgets.QGroupBox.setCheckable": ('bool',),
- "PySide2.QtWidgets.QGroupBox.setChecked": ('bool',),
- "PySide2.QtWidgets.QGroupBox.setFlat": ('bool',),
- "PySide2.QtWidgets.QGroupBox.setTitle": ('str',),
- "PySide2.QtWidgets.QGroupBox.title": (),
-# class PySide2.QtWidgets.QHBoxLayout:
- "PySide2.QtWidgets.QHBoxLayout.__init__": [(), ('PySide2.QtWidgets.QWidget',)],
-# class PySide2.QtWidgets.QHeaderView:
-# class PySide2.QtWidgets.QHeaderView.ResizeMode:
- "PySide2.QtWidgets.QHeaderView.__init__": ('PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QHeaderView.cascadingSectionResizes": (),
- "PySide2.QtWidgets.QHeaderView.count": (),
- "PySide2.QtWidgets.QHeaderView.currentChanged": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QHeaderView.dataChanged": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex', 'typing.List'),
- "PySide2.QtWidgets.QHeaderView.defaultAlignment": (),
- "PySide2.QtWidgets.QHeaderView.defaultSectionSize": (),
- "PySide2.QtWidgets.QHeaderView.doItemsLayout": (),
- "PySide2.QtWidgets.QHeaderView.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QHeaderView.headerDataChanged": ('PySide2.QtCore.Qt.Orientation', 'int', 'int'),
- "PySide2.QtWidgets.QHeaderView.hiddenSectionCount": (),
- "PySide2.QtWidgets.QHeaderView.hideSection": ('int',),
- "PySide2.QtWidgets.QHeaderView.highlightSections": (),
- "PySide2.QtWidgets.QHeaderView.horizontalOffset": (),
- "PySide2.QtWidgets.QHeaderView.indexAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QHeaderView.initStyleOption": [('PySide2.QtWidgets.QStyleOptionFrame',), ('PySide2.QtWidgets.QStyleOptionHeader',)],
- "PySide2.QtWidgets.QHeaderView.initialize": (),
- "PySide2.QtWidgets.QHeaderView.initializeSections": [(), ('int', 'int')],
- "PySide2.QtWidgets.QHeaderView.isFirstSectionMovable": (),
- "PySide2.QtWidgets.QHeaderView.isIndexHidden": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QHeaderView.isSectionHidden": ('int',),
- "PySide2.QtWidgets.QHeaderView.isSortIndicatorShown": (),
- "PySide2.QtWidgets.QHeaderView.length": (),
- "PySide2.QtWidgets.QHeaderView.logicalIndex": ('int',),
- "PySide2.QtWidgets.QHeaderView.logicalIndexAt": [('PySide2.QtCore.QPoint',), ('int',), ('int', 'int')],
- "PySide2.QtWidgets.QHeaderView.maximumSectionSize": (),
- "PySide2.QtWidgets.QHeaderView.minimumSectionSize": (),
- "PySide2.QtWidgets.QHeaderView.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QHeaderView.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QHeaderView.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QHeaderView.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QHeaderView.moveCursor": ('PySide2.QtWidgets.QAbstractItemView.CursorAction', 'PySide2.QtCore.Qt.KeyboardModifiers'),
- "PySide2.QtWidgets.QHeaderView.moveSection": ('int', 'int'),
- "PySide2.QtWidgets.QHeaderView.offset": (),
- "PySide2.QtWidgets.QHeaderView.orientation": (),
- "PySide2.QtWidgets.QHeaderView.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QHeaderView.paintSection": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRect', 'int'),
- "PySide2.QtWidgets.QHeaderView.reset": (),
- "PySide2.QtWidgets.QHeaderView.resetDefaultSectionSize": (),
- "PySide2.QtWidgets.QHeaderView.resizeContentsPrecision": (),
- "PySide2.QtWidgets.QHeaderView.resizeSection": ('int', 'int'),
- "PySide2.QtWidgets.QHeaderView.resizeSections": [(), ('PySide2.QtWidgets.QHeaderView.ResizeMode',)],
- "PySide2.QtWidgets.QHeaderView.restoreState": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWidgets.QHeaderView.rowsInserted": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QHeaderView.saveState": (),
- "PySide2.QtWidgets.QHeaderView.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QHeaderView.scrollTo": ('PySide2.QtCore.QModelIndex', 'PySide2.QtWidgets.QAbstractItemView.ScrollHint'),
- "PySide2.QtWidgets.QHeaderView.sectionPosition": ('int',),
- "PySide2.QtWidgets.QHeaderView.sectionResizeMode": ('int',),
- "PySide2.QtWidgets.QHeaderView.sectionSize": ('int',),
- "PySide2.QtWidgets.QHeaderView.sectionSizeFromContents": ('int',),
- "PySide2.QtWidgets.QHeaderView.sectionSizeHint": ('int',),
- "PySide2.QtWidgets.QHeaderView.sectionViewportPosition": ('int',),
- "PySide2.QtWidgets.QHeaderView.sectionsAboutToBeRemoved": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QHeaderView.sectionsClickable": (),
- "PySide2.QtWidgets.QHeaderView.sectionsHidden": (),
- "PySide2.QtWidgets.QHeaderView.sectionsInserted": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QHeaderView.sectionsMovable": (),
- "PySide2.QtWidgets.QHeaderView.sectionsMoved": (),
- "PySide2.QtWidgets.QHeaderView.setCascadingSectionResizes": ('bool',),
- "PySide2.QtWidgets.QHeaderView.setDefaultAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QHeaderView.setDefaultSectionSize": ('int',),
- "PySide2.QtWidgets.QHeaderView.setFirstSectionMovable": ('bool',),
- "PySide2.QtWidgets.QHeaderView.setHighlightSections": ('bool',),
- "PySide2.QtWidgets.QHeaderView.setMaximumSectionSize": ('int',),
- "PySide2.QtWidgets.QHeaderView.setMinimumSectionSize": ('int',),
- "PySide2.QtWidgets.QHeaderView.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QHeaderView.setOffset": ('int',),
- "PySide2.QtWidgets.QHeaderView.setOffsetToLastSection": (),
- "PySide2.QtWidgets.QHeaderView.setOffsetToSectionPosition": ('int',),
- "PySide2.QtWidgets.QHeaderView.setResizeContentsPrecision": ('int',),
- "PySide2.QtWidgets.QHeaderView.setSectionHidden": ('int', 'bool'),
- "PySide2.QtWidgets.QHeaderView.setSectionResizeMode": [('PySide2.QtWidgets.QHeaderView.ResizeMode',), ('int', 'PySide2.QtWidgets.QHeaderView.ResizeMode')],
- "PySide2.QtWidgets.QHeaderView.setSectionsClickable": ('bool',),
- "PySide2.QtWidgets.QHeaderView.setSectionsMovable": ('bool',),
- "PySide2.QtWidgets.QHeaderView.setSelection": ('PySide2.QtCore.QRect', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags'),
- "PySide2.QtWidgets.QHeaderView.setSortIndicator": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtWidgets.QHeaderView.setSortIndicatorShown": ('bool',),
- "PySide2.QtWidgets.QHeaderView.setStretchLastSection": ('bool',),
- "PySide2.QtWidgets.QHeaderView.setVisible": ('bool',),
- "PySide2.QtWidgets.QHeaderView.showSection": ('int',),
- "PySide2.QtWidgets.QHeaderView.sizeHint": (),
- "PySide2.QtWidgets.QHeaderView.sortIndicatorOrder": (),
- "PySide2.QtWidgets.QHeaderView.sortIndicatorSection": (),
- "PySide2.QtWidgets.QHeaderView.stretchLastSection": (),
- "PySide2.QtWidgets.QHeaderView.stretchSectionCount": (),
- "PySide2.QtWidgets.QHeaderView.swapSections": ('int', 'int'),
- "PySide2.QtWidgets.QHeaderView.updateGeometries": (),
- "PySide2.QtWidgets.QHeaderView.updateSection": ('int',),
- "PySide2.QtWidgets.QHeaderView.verticalOffset": (),
- "PySide2.QtWidgets.QHeaderView.viewportEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QHeaderView.visualIndex": ('int',),
- "PySide2.QtWidgets.QHeaderView.visualIndexAt": ('int',),
- "PySide2.QtWidgets.QHeaderView.visualRect": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QHeaderView.visualRegionForSelection": ('PySide2.QtCore.QItemSelection',),
-# class PySide2.QtWidgets.QInputDialog:
-# class PySide2.QtWidgets.QInputDialog.InputDialogOption:
-# class PySide2.QtWidgets.QInputDialog.InputMode:
- "PySide2.QtWidgets.QInputDialog.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QInputDialog.cancelButtonText": (),
- "PySide2.QtWidgets.QInputDialog.comboBoxItems": (),
- "PySide2.QtWidgets.QInputDialog.done": ('int',),
- "PySide2.QtWidgets.QInputDialog.doubleDecimals": (),
- "PySide2.QtWidgets.QInputDialog.doubleMaximum": (),
- "PySide2.QtWidgets.QInputDialog.doubleMinimum": (),
- "PySide2.QtWidgets.QInputDialog.doubleStep": (),
- "PySide2.QtWidgets.QInputDialog.doubleValue": (),
- "PySide2.QtWidgets.QInputDialog.getDouble": [('PySide2.QtWidgets.QWidget', 'str', 'str', 'float', 'float', 'float', 'int', 'PySide2.QtCore.Qt.WindowFlags'), ('PySide2.QtWidgets.QWidget', 'str', 'str', 'float', 'float', 'float', 'int', 'PySide2.QtCore.Qt.WindowFlags', 'float')],
- "PySide2.QtWidgets.QInputDialog.getInt": ('PySide2.QtWidgets.QWidget', 'str', 'str', 'int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QInputDialog.getItem": ('PySide2.QtWidgets.QWidget', 'str', 'str', 'typing.Sequence', 'int', 'bool', 'PySide2.QtCore.Qt.WindowFlags', 'PySide2.QtCore.Qt.InputMethodHints'),
- "PySide2.QtWidgets.QInputDialog.getMultiLineText": ('PySide2.QtWidgets.QWidget', 'str', 'str', 'str', 'PySide2.QtCore.Qt.WindowFlags', 'PySide2.QtCore.Qt.InputMethodHints'),
- "PySide2.QtWidgets.QInputDialog.getText": ('PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtWidgets.QLineEdit.EchoMode', 'str', 'PySide2.QtCore.Qt.WindowFlags', 'PySide2.QtCore.Qt.InputMethodHints'),
- "PySide2.QtWidgets.QInputDialog.inputMode": (),
- "PySide2.QtWidgets.QInputDialog.intMaximum": (),
- "PySide2.QtWidgets.QInputDialog.intMinimum": (),
- "PySide2.QtWidgets.QInputDialog.intStep": (),
- "PySide2.QtWidgets.QInputDialog.intValue": (),
- "PySide2.QtWidgets.QInputDialog.isComboBoxEditable": (),
- "PySide2.QtWidgets.QInputDialog.labelText": (),
- "PySide2.QtWidgets.QInputDialog.minimumSizeHint": (),
- "PySide2.QtWidgets.QInputDialog.okButtonText": (),
- "PySide2.QtWidgets.QInputDialog.open": [(), ('PySide2.QtCore.QObject', 'bytes')],
- "PySide2.QtWidgets.QInputDialog.setCancelButtonText": ('str',),
- "PySide2.QtWidgets.QInputDialog.setComboBoxEditable": ('bool',),
- "PySide2.QtWidgets.QInputDialog.setComboBoxItems": ('typing.Sequence',),
- "PySide2.QtWidgets.QInputDialog.setDoubleDecimals": ('int',),
- "PySide2.QtWidgets.QInputDialog.setDoubleMaximum": ('float',),
- "PySide2.QtWidgets.QInputDialog.setDoubleMinimum": ('float',),
- "PySide2.QtWidgets.QInputDialog.setDoubleRange": ('float', 'float'),
- "PySide2.QtWidgets.QInputDialog.setDoubleStep": ('float',),
- "PySide2.QtWidgets.QInputDialog.setDoubleValue": ('float',),
- "PySide2.QtWidgets.QInputDialog.setInputMode": ('PySide2.QtWidgets.QInputDialog.InputMode',),
- "PySide2.QtWidgets.QInputDialog.setIntMaximum": ('int',),
- "PySide2.QtWidgets.QInputDialog.setIntMinimum": ('int',),
- "PySide2.QtWidgets.QInputDialog.setIntRange": ('int', 'int'),
- "PySide2.QtWidgets.QInputDialog.setIntStep": ('int',),
- "PySide2.QtWidgets.QInputDialog.setIntValue": ('int',),
- "PySide2.QtWidgets.QInputDialog.setLabelText": ('str',),
- "PySide2.QtWidgets.QInputDialog.setOkButtonText": ('str',),
- "PySide2.QtWidgets.QInputDialog.setOption": ('PySide2.QtWidgets.QInputDialog.InputDialogOption', 'bool'),
- "PySide2.QtWidgets.QInputDialog.setTextEchoMode": ('PySide2.QtWidgets.QLineEdit.EchoMode',),
- "PySide2.QtWidgets.QInputDialog.setTextValue": ('str',),
- "PySide2.QtWidgets.QInputDialog.setVisible": ('bool',),
- "PySide2.QtWidgets.QInputDialog.sizeHint": (),
- "PySide2.QtWidgets.QInputDialog.testOption": ('PySide2.QtWidgets.QInputDialog.InputDialogOption',),
- "PySide2.QtWidgets.QInputDialog.textEchoMode": (),
- "PySide2.QtWidgets.QInputDialog.textValue": (),
-# class PySide2.QtWidgets.QItemDelegate:
- "PySide2.QtWidgets.QItemDelegate.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QItemDelegate.createEditor": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QItemDelegate.decoration": ('PySide2.QtWidgets.QStyleOptionViewItem', 'typing.Any'),
- "PySide2.QtWidgets.QItemDelegate.doCheck": ('PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QRect', 'typing.Any'),
- "PySide2.QtWidgets.QItemDelegate.drawBackground": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QItemDelegate.drawCheck": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QRect', 'PySide2.QtCore.Qt.CheckState'),
- "PySide2.QtWidgets.QItemDelegate.drawDecoration": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QRect', 'PySide2.QtGui.QPixmap'),
- "PySide2.QtWidgets.QItemDelegate.drawDisplay": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QRect', 'str'),
- "PySide2.QtWidgets.QItemDelegate.drawFocus": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QRect'),
- "PySide2.QtWidgets.QItemDelegate.editorEvent": ('PySide2.QtCore.QEvent', 'PySide2.QtCore.QAbstractItemModel', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QItemDelegate.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QItemDelegate.hasClipping": (),
- "PySide2.QtWidgets.QItemDelegate.itemEditorFactory": (),
- "PySide2.QtWidgets.QItemDelegate.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QItemDelegate.rect": ('PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtWidgets.QItemDelegate.selectedPixmap": ('PySide2.QtGui.QPixmap', 'PySide2.QtGui.QPalette', 'bool'),
- "PySide2.QtWidgets.QItemDelegate.setClipping": ('bool',),
- "PySide2.QtWidgets.QItemDelegate.setEditorData": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QItemDelegate.setItemEditorFactory": ('PySide2.QtWidgets.QItemEditorFactory',),
- "PySide2.QtWidgets.QItemDelegate.setModelData": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QAbstractItemModel', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QItemDelegate.setOptions": ('PySide2.QtCore.QModelIndex', 'PySide2.QtWidgets.QStyleOptionViewItem'),
- "PySide2.QtWidgets.QItemDelegate.sizeHint": ('PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QItemDelegate.textRectangle": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRect', 'PySide2.QtGui.QFont', 'str'),
- "PySide2.QtWidgets.QItemDelegate.updateEditorGeometry": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
-# class PySide2.QtWidgets.QItemEditorCreatorBase:
- "PySide2.QtWidgets.QItemEditorCreatorBase.__init__": (),
- "PySide2.QtWidgets.QItemEditorCreatorBase.createWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QItemEditorCreatorBase.valuePropertyName": (),
-# class PySide2.QtWidgets.QItemEditorFactory:
- "PySide2.QtWidgets.QItemEditorFactory.__init__": (),
- "PySide2.QtWidgets.QItemEditorFactory.createEditor": ('int', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QItemEditorFactory.defaultFactory": (),
- "PySide2.QtWidgets.QItemEditorFactory.registerEditor": ('int', 'PySide2.QtWidgets.QItemEditorCreatorBase'),
- "PySide2.QtWidgets.QItemEditorFactory.setDefaultFactory": ('PySide2.QtWidgets.QItemEditorFactory',),
- "PySide2.QtWidgets.QItemEditorFactory.valuePropertyName": ('int',),
-# class PySide2.QtWidgets.QKeyEventTransition:
- "PySide2.QtWidgets.QKeyEventTransition.__init__": [('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent.Type', 'int', 'PySide2.QtCore.QState'), ('PySide2.QtCore.QState',)],
- "PySide2.QtWidgets.QKeyEventTransition.eventTest": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QKeyEventTransition.key": (),
- "PySide2.QtWidgets.QKeyEventTransition.modifierMask": (),
- "PySide2.QtWidgets.QKeyEventTransition.onTransition": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QKeyEventTransition.setKey": ('int',),
- "PySide2.QtWidgets.QKeyEventTransition.setModifierMask": ('PySide2.QtCore.Qt.KeyboardModifiers',),
-# class PySide2.QtWidgets.QKeySequenceEdit:
- "PySide2.QtWidgets.QKeySequenceEdit.__init__": [('PySide2.QtGui.QKeySequence', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QKeySequenceEdit.clear": (),
- "PySide2.QtWidgets.QKeySequenceEdit.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QKeySequenceEdit.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QKeySequenceEdit.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QKeySequenceEdit.keySequence": (),
- "PySide2.QtWidgets.QKeySequenceEdit.setKeySequence": ('PySide2.QtGui.QKeySequence',),
- "PySide2.QtWidgets.QKeySequenceEdit.timerEvent": ('PySide2.QtCore.QTimerEvent',),
-# class PySide2.QtWidgets.QLCDNumber:
-# class PySide2.QtWidgets.QLCDNumber.Mode:
-# class PySide2.QtWidgets.QLCDNumber.SegmentStyle:
- "PySide2.QtWidgets.QLCDNumber.__init__": [('PySide2.QtWidgets.QWidget',), ('int', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QLCDNumber.checkOverflow": [('float',), ('int',)],
- "PySide2.QtWidgets.QLCDNumber.digitCount": (),
- "PySide2.QtWidgets.QLCDNumber.display": [('float',), ('int',), ('str',)],
- "PySide2.QtWidgets.QLCDNumber.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QLCDNumber.intValue": (),
- "PySide2.QtWidgets.QLCDNumber.mode": (),
- "PySide2.QtWidgets.QLCDNumber.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QLCDNumber.segmentStyle": (),
- "PySide2.QtWidgets.QLCDNumber.setBinMode": (),
- "PySide2.QtWidgets.QLCDNumber.setDecMode": (),
- "PySide2.QtWidgets.QLCDNumber.setDigitCount": ('int',),
- "PySide2.QtWidgets.QLCDNumber.setHexMode": (),
- "PySide2.QtWidgets.QLCDNumber.setMode": ('PySide2.QtWidgets.QLCDNumber.Mode',),
- "PySide2.QtWidgets.QLCDNumber.setOctMode": (),
- "PySide2.QtWidgets.QLCDNumber.setSegmentStyle": ('PySide2.QtWidgets.QLCDNumber.SegmentStyle',),
- "PySide2.QtWidgets.QLCDNumber.setSmallDecimalPoint": ('bool',),
- "PySide2.QtWidgets.QLCDNumber.sizeHint": (),
- "PySide2.QtWidgets.QLCDNumber.smallDecimalPoint": (),
- "PySide2.QtWidgets.QLCDNumber.value": (),
-# class PySide2.QtWidgets.QLabel:
- "PySide2.QtWidgets.QLabel.__init__": [('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'), ('str', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags')],
- "PySide2.QtWidgets.QLabel.alignment": (),
- "PySide2.QtWidgets.QLabel.buddy": (),
- "PySide2.QtWidgets.QLabel.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QLabel.clear": (),
- "PySide2.QtWidgets.QLabel.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QLabel.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QLabel.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QLabel.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QLabel.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QLabel.hasScaledContents": (),
- "PySide2.QtWidgets.QLabel.hasSelectedText": (),
- "PySide2.QtWidgets.QLabel.heightForWidth": ('int',),
- "PySide2.QtWidgets.QLabel.indent": (),
- "PySide2.QtWidgets.QLabel.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QLabel.margin": (),
- "PySide2.QtWidgets.QLabel.minimumSizeHint": (),
- "PySide2.QtWidgets.QLabel.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QLabel.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QLabel.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QLabel.movie": (),
- "PySide2.QtWidgets.QLabel.openExternalLinks": (),
- "PySide2.QtWidgets.QLabel.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QLabel.picture": (),
- "PySide2.QtWidgets.QLabel.pixmap": (),
- "PySide2.QtWidgets.QLabel.selectedText": (),
- "PySide2.QtWidgets.QLabel.selectionStart": (),
- "PySide2.QtWidgets.QLabel.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QLabel.setBuddy": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QLabel.setIndent": ('int',),
- "PySide2.QtWidgets.QLabel.setMargin": ('int',),
- "PySide2.QtWidgets.QLabel.setMovie": ('PySide2.QtGui.QMovie',),
- "PySide2.QtWidgets.QLabel.setNum": [('float',), ('int',)],
- "PySide2.QtWidgets.QLabel.setOpenExternalLinks": ('bool',),
- "PySide2.QtWidgets.QLabel.setPicture": ('PySide2.QtGui.QPicture',),
- "PySide2.QtWidgets.QLabel.setPixmap": ('PySide2.QtGui.QPixmap',),
- "PySide2.QtWidgets.QLabel.setScaledContents": ('bool',),
- "PySide2.QtWidgets.QLabel.setSelection": ('int', 'int'),
- "PySide2.QtWidgets.QLabel.setText": ('str',),
- "PySide2.QtWidgets.QLabel.setTextFormat": ('PySide2.QtCore.Qt.TextFormat',),
- "PySide2.QtWidgets.QLabel.setTextInteractionFlags": ('PySide2.QtCore.Qt.TextInteractionFlags',),
- "PySide2.QtWidgets.QLabel.setWordWrap": ('bool',),
- "PySide2.QtWidgets.QLabel.sizeHint": (),
- "PySide2.QtWidgets.QLabel.text": (),
- "PySide2.QtWidgets.QLabel.textFormat": (),
- "PySide2.QtWidgets.QLabel.textInteractionFlags": (),
- "PySide2.QtWidgets.QLabel.wordWrap": (),
-# class PySide2.QtWidgets.QLayout:
-# class PySide2.QtWidgets.QLayout.SizeConstraint:
- "PySide2.QtWidgets.QLayout.__init__": [(), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QLayout.activate": (),
- "PySide2.QtWidgets.QLayout.addChildLayout": ('PySide2.QtWidgets.QLayout',),
- "PySide2.QtWidgets.QLayout.addChildWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QLayout.addItem": ('PySide2.QtWidgets.QLayoutItem',),
- "PySide2.QtWidgets.QLayout.addWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QLayout.adoptLayout": ('PySide2.QtWidgets.QLayout',),
- "PySide2.QtWidgets.QLayout.alignmentRect": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QLayout.childEvent": ('PySide2.QtCore.QChildEvent',),
- "PySide2.QtWidgets.QLayout.closestAcceptableSize": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QSize'),
- "PySide2.QtWidgets.QLayout.contentsMargins": (),
- "PySide2.QtWidgets.QLayout.contentsRect": (),
- "PySide2.QtWidgets.QLayout.controlTypes": (),
- "PySide2.QtWidgets.QLayout.count": (),
- "PySide2.QtWidgets.QLayout.expandingDirections": (),
- "PySide2.QtWidgets.QLayout.geometry": (),
- "PySide2.QtWidgets.QLayout.getContentsMargins": (),
- "PySide2.QtWidgets.QLayout.indexOf": [('PySide2.QtWidgets.QLayoutItem',), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QLayout.invalidate": (),
- "PySide2.QtWidgets.QLayout.isEmpty": (),
- "PySide2.QtWidgets.QLayout.isEnabled": (),
- "PySide2.QtWidgets.QLayout.itemAt": ('int',),
- "PySide2.QtWidgets.QLayout.layout": (),
- "PySide2.QtWidgets.QLayout.margin": (),
- "PySide2.QtWidgets.QLayout.maximumSize": (),
- "PySide2.QtWidgets.QLayout.menuBar": (),
- "PySide2.QtWidgets.QLayout.minimumSize": (),
- "PySide2.QtWidgets.QLayout.parentWidget": (),
- "PySide2.QtWidgets.QLayout.removeItem": ('PySide2.QtWidgets.QLayoutItem',),
- "PySide2.QtWidgets.QLayout.removeWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QLayout.replaceWidget": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.FindChildOptions'),
- "PySide2.QtWidgets.QLayout.setAlignment": [('PySide2.QtCore.Qt.Alignment',), ('PySide2.QtWidgets.QLayout', 'PySide2.QtCore.Qt.Alignment'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.Alignment')],
- "PySide2.QtWidgets.QLayout.setContentsMargins": [('PySide2.QtCore.QMargins',), ('int', 'int', 'int', 'int')],
- "PySide2.QtWidgets.QLayout.setEnabled": ('bool',),
- "PySide2.QtWidgets.QLayout.setGeometry": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QLayout.setMargin": ('int',),
- "PySide2.QtWidgets.QLayout.setMenuBar": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QLayout.setSizeConstraint": ('PySide2.QtWidgets.QLayout.SizeConstraint',),
- "PySide2.QtWidgets.QLayout.setSpacing": ('int',),
- "PySide2.QtWidgets.QLayout.sizeConstraint": (),
- "PySide2.QtWidgets.QLayout.spacing": (),
- "PySide2.QtWidgets.QLayout.takeAt": ('int',),
- "PySide2.QtWidgets.QLayout.totalHeightForWidth": ('int',),
- "PySide2.QtWidgets.QLayout.totalMaximumSize": (),
- "PySide2.QtWidgets.QLayout.totalMinimumSize": (),
- "PySide2.QtWidgets.QLayout.totalSizeHint": (),
- "PySide2.QtWidgets.QLayout.update": (),
- "PySide2.QtWidgets.QLayout.widgetEvent": ('PySide2.QtCore.QEvent',),
-# class PySide2.QtWidgets.QLayoutItem:
- "PySide2.QtWidgets.QLayoutItem.__init__": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QLayoutItem.alignment": (),
- "PySide2.QtWidgets.QLayoutItem.controlTypes": (),
- "PySide2.QtWidgets.QLayoutItem.expandingDirections": (),
- "PySide2.QtWidgets.QLayoutItem.geometry": (),
- "PySide2.QtWidgets.QLayoutItem.hasHeightForWidth": (),
- "PySide2.QtWidgets.QLayoutItem.heightForWidth": ('int',),
- "PySide2.QtWidgets.QLayoutItem.invalidate": (),
- "PySide2.QtWidgets.QLayoutItem.isEmpty": (),
- "PySide2.QtWidgets.QLayoutItem.layout": (),
- "PySide2.QtWidgets.QLayoutItem.maximumSize": (),
- "PySide2.QtWidgets.QLayoutItem.minimumHeightForWidth": ('int',),
- "PySide2.QtWidgets.QLayoutItem.minimumSize": (),
- "PySide2.QtWidgets.QLayoutItem.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QLayoutItem.setGeometry": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QLayoutItem.sizeHint": (),
- "PySide2.QtWidgets.QLayoutItem.spacerItem": (),
- "PySide2.QtWidgets.QLayoutItem.widget": (),
-# class PySide2.QtWidgets.QLineEdit:
-# class PySide2.QtWidgets.QLineEdit.ActionPosition:
-# class PySide2.QtWidgets.QLineEdit.EchoMode:
- "PySide2.QtWidgets.QLineEdit.__init__": [('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QLineEdit.addAction": [('PySide2.QtGui.QIcon', 'PySide2.QtWidgets.QLineEdit.ActionPosition'), ('PySide2.QtWidgets.QAction',), ('PySide2.QtWidgets.QAction', 'PySide2.QtWidgets.QLineEdit.ActionPosition')],
- "PySide2.QtWidgets.QLineEdit.alignment": (),
- "PySide2.QtWidgets.QLineEdit.backspace": (),
- "PySide2.QtWidgets.QLineEdit.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QLineEdit.clear": (),
- "PySide2.QtWidgets.QLineEdit.completer": (),
- "PySide2.QtWidgets.QLineEdit.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QLineEdit.copy": (),
- "PySide2.QtWidgets.QLineEdit.createStandardContextMenu": (),
- "PySide2.QtWidgets.QLineEdit.cursorBackward": ('bool', 'int'),
- "PySide2.QtWidgets.QLineEdit.cursorForward": ('bool', 'int'),
- "PySide2.QtWidgets.QLineEdit.cursorMoveStyle": (),
- "PySide2.QtWidgets.QLineEdit.cursorPosition": (),
- "PySide2.QtWidgets.QLineEdit.cursorPositionAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QLineEdit.cursorRect": (),
- "PySide2.QtWidgets.QLineEdit.cursorWordBackward": ('bool',),
- "PySide2.QtWidgets.QLineEdit.cursorWordForward": ('bool',),
- "PySide2.QtWidgets.QLineEdit.cut": (),
- "PySide2.QtWidgets.QLineEdit.del_": (),
- "PySide2.QtWidgets.QLineEdit.deselect": (),
- "PySide2.QtWidgets.QLineEdit.displayText": (),
- "PySide2.QtWidgets.QLineEdit.dragEnabled": (),
- "PySide2.QtWidgets.QLineEdit.dragEnterEvent": ('PySide2.QtGui.QDragEnterEvent',),
- "PySide2.QtWidgets.QLineEdit.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtWidgets.QLineEdit.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtWidgets.QLineEdit.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QLineEdit.echoMode": (),
- "PySide2.QtWidgets.QLineEdit.end": ('bool',),
- "PySide2.QtWidgets.QLineEdit.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QLineEdit.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QLineEdit.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QLineEdit.getTextMargins": (),
- "PySide2.QtWidgets.QLineEdit.hasAcceptableInput": (),
- "PySide2.QtWidgets.QLineEdit.hasFrame": (),
- "PySide2.QtWidgets.QLineEdit.hasSelectedText": (),
- "PySide2.QtWidgets.QLineEdit.home": ('bool',),
- "PySide2.QtWidgets.QLineEdit.initStyleOption": ('PySide2.QtWidgets.QStyleOptionFrame',),
- "PySide2.QtWidgets.QLineEdit.inputMask": (),
- "PySide2.QtWidgets.QLineEdit.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QLineEdit.inputMethodQuery": [('PySide2.QtCore.Qt.InputMethodQuery',), ('PySide2.QtCore.Qt.InputMethodQuery', 'typing.Any')],
- "PySide2.QtWidgets.QLineEdit.insert": ('str',),
- "PySide2.QtWidgets.QLineEdit.isClearButtonEnabled": (),
- "PySide2.QtWidgets.QLineEdit.isModified": (),
- "PySide2.QtWidgets.QLineEdit.isReadOnly": (),
- "PySide2.QtWidgets.QLineEdit.isRedoAvailable": (),
- "PySide2.QtWidgets.QLineEdit.isUndoAvailable": (),
- "PySide2.QtWidgets.QLineEdit.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QLineEdit.maxLength": (),
- "PySide2.QtWidgets.QLineEdit.minimumSizeHint": (),
- "PySide2.QtWidgets.QLineEdit.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QLineEdit.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QLineEdit.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QLineEdit.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QLineEdit.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QLineEdit.paste": (),
- "PySide2.QtWidgets.QLineEdit.placeholderText": (),
- "PySide2.QtWidgets.QLineEdit.redo": (),
- "PySide2.QtWidgets.QLineEdit.selectAll": (),
- "PySide2.QtWidgets.QLineEdit.selectedText": (),
- "PySide2.QtWidgets.QLineEdit.selectionEnd": (),
- "PySide2.QtWidgets.QLineEdit.selectionLength": (),
- "PySide2.QtWidgets.QLineEdit.selectionStart": (),
- "PySide2.QtWidgets.QLineEdit.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QLineEdit.setClearButtonEnabled": ('bool',),
- "PySide2.QtWidgets.QLineEdit.setCompleter": ('PySide2.QtWidgets.QCompleter',),
- "PySide2.QtWidgets.QLineEdit.setCursorMoveStyle": ('PySide2.QtCore.Qt.CursorMoveStyle',),
- "PySide2.QtWidgets.QLineEdit.setCursorPosition": ('int',),
- "PySide2.QtWidgets.QLineEdit.setDragEnabled": ('bool',),
- "PySide2.QtWidgets.QLineEdit.setEchoMode": ('PySide2.QtWidgets.QLineEdit.EchoMode',),
- "PySide2.QtWidgets.QLineEdit.setFrame": ('bool',),
- "PySide2.QtWidgets.QLineEdit.setInputMask": ('str',),
- "PySide2.QtWidgets.QLineEdit.setMaxLength": ('int',),
- "PySide2.QtWidgets.QLineEdit.setModified": ('bool',),
- "PySide2.QtWidgets.QLineEdit.setPlaceholderText": ('str',),
- "PySide2.QtWidgets.QLineEdit.setReadOnly": ('bool',),
- "PySide2.QtWidgets.QLineEdit.setSelection": ('int', 'int'),
- "PySide2.QtWidgets.QLineEdit.setText": ('str',),
- "PySide2.QtWidgets.QLineEdit.setTextMargins": [('PySide2.QtCore.QMargins',), ('int', 'int', 'int', 'int')],
- "PySide2.QtWidgets.QLineEdit.setValidator": ('PySide2.QtGui.QValidator',),
- "PySide2.QtWidgets.QLineEdit.sizeHint": (),
- "PySide2.QtWidgets.QLineEdit.text": (),
- "PySide2.QtWidgets.QLineEdit.textMargins": (),
- "PySide2.QtWidgets.QLineEdit.undo": (),
- "PySide2.QtWidgets.QLineEdit.validator": (),
-# class PySide2.QtWidgets.QListView:
-# class PySide2.QtWidgets.QListView.Flow:
-# class PySide2.QtWidgets.QListView.LayoutMode:
-# class PySide2.QtWidgets.QListView.Movement:
-# class PySide2.QtWidgets.QListView.ResizeMode:
-# class PySide2.QtWidgets.QListView.ViewMode:
- "PySide2.QtWidgets.QListView.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QListView.batchSize": (),
- "PySide2.QtWidgets.QListView.clearPropertyFlags": (),
- "PySide2.QtWidgets.QListView.contentsSize": (),
- "PySide2.QtWidgets.QListView.currentChanged": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QListView.dataChanged": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex', 'typing.List'),
- "PySide2.QtWidgets.QListView.doItemsLayout": (),
- "PySide2.QtWidgets.QListView.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtWidgets.QListView.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtWidgets.QListView.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QListView.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QListView.flow": (),
- "PySide2.QtWidgets.QListView.gridSize": (),
- "PySide2.QtWidgets.QListView.horizontalOffset": (),
- "PySide2.QtWidgets.QListView.indexAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QListView.isIndexHidden": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QListView.isRowHidden": ('int',),
- "PySide2.QtWidgets.QListView.isSelectionRectVisible": (),
- "PySide2.QtWidgets.QListView.isWrapping": (),
- "PySide2.QtWidgets.QListView.itemAlignment": (),
- "PySide2.QtWidgets.QListView.layoutMode": (),
- "PySide2.QtWidgets.QListView.modelColumn": (),
- "PySide2.QtWidgets.QListView.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QListView.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QListView.moveCursor": ('PySide2.QtWidgets.QAbstractItemView.CursorAction', 'PySide2.QtCore.Qt.KeyboardModifiers'),
- "PySide2.QtWidgets.QListView.movement": (),
- "PySide2.QtWidgets.QListView.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QListView.rectForIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QListView.reset": (),
- "PySide2.QtWidgets.QListView.resizeContents": ('int', 'int'),
- "PySide2.QtWidgets.QListView.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QListView.resizeMode": (),
- "PySide2.QtWidgets.QListView.rowsAboutToBeRemoved": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QListView.rowsInserted": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QListView.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QListView.scrollTo": ('PySide2.QtCore.QModelIndex', 'PySide2.QtWidgets.QAbstractItemView.ScrollHint'),
- "PySide2.QtWidgets.QListView.selectedIndexes": (),
- "PySide2.QtWidgets.QListView.selectionChanged": ('PySide2.QtCore.QItemSelection', 'PySide2.QtCore.QItemSelection'),
- "PySide2.QtWidgets.QListView.setBatchSize": ('int',),
- "PySide2.QtWidgets.QListView.setFlow": ('PySide2.QtWidgets.QListView.Flow',),
- "PySide2.QtWidgets.QListView.setGridSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QListView.setItemAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QListView.setLayoutMode": ('PySide2.QtWidgets.QListView.LayoutMode',),
- "PySide2.QtWidgets.QListView.setModelColumn": ('int',),
- "PySide2.QtWidgets.QListView.setMovement": ('PySide2.QtWidgets.QListView.Movement',),
- "PySide2.QtWidgets.QListView.setPositionForIndex": ('PySide2.QtCore.QPoint', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QListView.setResizeMode": ('PySide2.QtWidgets.QListView.ResizeMode',),
- "PySide2.QtWidgets.QListView.setRootIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QListView.setRowHidden": ('int', 'bool'),
- "PySide2.QtWidgets.QListView.setSelection": ('PySide2.QtCore.QRect', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags'),
- "PySide2.QtWidgets.QListView.setSelectionRectVisible": ('bool',),
- "PySide2.QtWidgets.QListView.setSpacing": ('int',),
- "PySide2.QtWidgets.QListView.setUniformItemSizes": ('bool',),
- "PySide2.QtWidgets.QListView.setViewMode": ('PySide2.QtWidgets.QListView.ViewMode',),
- "PySide2.QtWidgets.QListView.setWordWrap": ('bool',),
- "PySide2.QtWidgets.QListView.setWrapping": ('bool',),
- "PySide2.QtWidgets.QListView.spacing": (),
- "PySide2.QtWidgets.QListView.startDrag": ('PySide2.QtCore.Qt.DropActions',),
- "PySide2.QtWidgets.QListView.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QListView.uniformItemSizes": (),
- "PySide2.QtWidgets.QListView.updateGeometries": (),
- "PySide2.QtWidgets.QListView.verticalOffset": (),
- "PySide2.QtWidgets.QListView.viewMode": (),
- "PySide2.QtWidgets.QListView.viewOptions": (),
- "PySide2.QtWidgets.QListView.viewportSizeHint": (),
- "PySide2.QtWidgets.QListView.visualRect": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QListView.visualRegionForSelection": ('PySide2.QtCore.QItemSelection',),
- "PySide2.QtWidgets.QListView.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
- "PySide2.QtWidgets.QListView.wordWrap": (),
-# class PySide2.QtWidgets.QListWidget:
- "PySide2.QtWidgets.QListWidget.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QListWidget.addItem": [('PySide2.QtWidgets.QListWidgetItem',), ('str',)],
- "PySide2.QtWidgets.QListWidget.addItems": ('typing.Sequence',),
- "PySide2.QtWidgets.QListWidget.clear": (),
- "PySide2.QtWidgets.QListWidget.closePersistentEditor": [('PySide2.QtCore.QModelIndex',), ('PySide2.QtWidgets.QListWidgetItem',)],
- "PySide2.QtWidgets.QListWidget.count": (),
- "PySide2.QtWidgets.QListWidget.currentItem": (),
- "PySide2.QtWidgets.QListWidget.currentRow": (),
- "PySide2.QtWidgets.QListWidget.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QListWidget.dropMimeData": ('int', 'PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction'),
- "PySide2.QtWidgets.QListWidget.editItem": ('PySide2.QtWidgets.QListWidgetItem',),
- "PySide2.QtWidgets.QListWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QListWidget.findItems": ('str', 'PySide2.QtCore.Qt.MatchFlags'),
- "PySide2.QtWidgets.QListWidget.indexFromItem": ('PySide2.QtWidgets.QListWidgetItem',),
- "PySide2.QtWidgets.QListWidget.insertItem": [('int', 'PySide2.QtWidgets.QListWidgetItem'), ('int', 'str')],
- "PySide2.QtWidgets.QListWidget.insertItems": ('int', 'typing.Sequence'),
- "PySide2.QtWidgets.QListWidget.isItemHidden": ('PySide2.QtWidgets.QListWidgetItem',),
- "PySide2.QtWidgets.QListWidget.isItemSelected": ('PySide2.QtWidgets.QListWidgetItem',),
- "PySide2.QtWidgets.QListWidget.isPersistentEditorOpen": [('PySide2.QtCore.QModelIndex',), ('PySide2.QtWidgets.QListWidgetItem',)],
- "PySide2.QtWidgets.QListWidget.isSortingEnabled": (),
- "PySide2.QtWidgets.QListWidget.item": ('int',),
- "PySide2.QtWidgets.QListWidget.itemAt": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtWidgets.QListWidget.itemFromIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QListWidget.itemWidget": ('PySide2.QtWidgets.QListWidgetItem',),
- "PySide2.QtWidgets.QListWidget.items": ('PySide2.QtCore.QMimeData',),
- "PySide2.QtWidgets.QListWidget.mimeData": ('typing.Sequence',),
- "PySide2.QtWidgets.QListWidget.mimeTypes": (),
- "PySide2.QtWidgets.QListWidget.openPersistentEditor": [('PySide2.QtCore.QModelIndex',), ('PySide2.QtWidgets.QListWidgetItem',)],
- "PySide2.QtWidgets.QListWidget.removeItemWidget": ('PySide2.QtWidgets.QListWidgetItem',),
- "PySide2.QtWidgets.QListWidget.row": ('PySide2.QtWidgets.QListWidgetItem',),
- "PySide2.QtWidgets.QListWidget.scrollToItem": ('PySide2.QtWidgets.QListWidgetItem', 'PySide2.QtWidgets.QAbstractItemView.ScrollHint'),
- "PySide2.QtWidgets.QListWidget.selectedItems": (),
- "PySide2.QtWidgets.QListWidget.setCurrentItem": [('PySide2.QtWidgets.QListWidgetItem',), ('PySide2.QtWidgets.QListWidgetItem', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags')],
- "PySide2.QtWidgets.QListWidget.setCurrentRow": [('int',), ('int', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags')],
- "PySide2.QtWidgets.QListWidget.setItemHidden": ('PySide2.QtWidgets.QListWidgetItem', 'bool'),
- "PySide2.QtWidgets.QListWidget.setItemSelected": ('PySide2.QtWidgets.QListWidgetItem', 'bool'),
- "PySide2.QtWidgets.QListWidget.setItemWidget": ('PySide2.QtWidgets.QListWidgetItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QListWidget.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QListWidget.setSelectionModel": ('PySide2.QtCore.QItemSelectionModel',),
- "PySide2.QtWidgets.QListWidget.setSortingEnabled": ('bool',),
- "PySide2.QtWidgets.QListWidget.sortItems": ('PySide2.QtCore.Qt.SortOrder',),
- "PySide2.QtWidgets.QListWidget.supportedDropActions": (),
- "PySide2.QtWidgets.QListWidget.takeItem": ('int',),
- "PySide2.QtWidgets.QListWidget.visualItemRect": ('PySide2.QtWidgets.QListWidgetItem',),
-# class PySide2.QtWidgets.QListWidgetItem:
-# class PySide2.QtWidgets.QListWidgetItem.ItemType:
- "PySide2.QtWidgets.QListWidgetItem.__init__": [('PySide2.QtGui.QIcon', 'str', 'PySide2.QtWidgets.QListWidget', 'int'), ('PySide2.QtWidgets.QListWidget', 'int'), ('PySide2.QtWidgets.QListWidgetItem',), ('str', 'PySide2.QtWidgets.QListWidget', 'int')],
- "PySide2.QtWidgets.QListWidgetItem.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QListWidgetItem.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QListWidgetItem.background": (),
- "PySide2.QtWidgets.QListWidgetItem.backgroundColor": (),
- "PySide2.QtWidgets.QListWidgetItem.checkState": (),
- "PySide2.QtWidgets.QListWidgetItem.clone": (),
- "PySide2.QtWidgets.QListWidgetItem.data": ('int',),
- "PySide2.QtWidgets.QListWidgetItem.flags": (),
- "PySide2.QtWidgets.QListWidgetItem.font": (),
- "PySide2.QtWidgets.QListWidgetItem.foreground": (),
- "PySide2.QtWidgets.QListWidgetItem.icon": (),
- "PySide2.QtWidgets.QListWidgetItem.isHidden": (),
- "PySide2.QtWidgets.QListWidgetItem.isSelected": (),
- "PySide2.QtWidgets.QListWidgetItem.listWidget": (),
- "PySide2.QtWidgets.QListWidgetItem.read": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QListWidgetItem.setBackground": ('PySide2.QtGui.QBrush',),
- "PySide2.QtWidgets.QListWidgetItem.setBackgroundColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QListWidgetItem.setCheckState": ('PySide2.QtCore.Qt.CheckState',),
- "PySide2.QtWidgets.QListWidgetItem.setData": ('int', 'typing.Any'),
- "PySide2.QtWidgets.QListWidgetItem.setFlags": ('PySide2.QtCore.Qt.ItemFlags',),
- "PySide2.QtWidgets.QListWidgetItem.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QListWidgetItem.setForeground": ('PySide2.QtGui.QBrush',),
- "PySide2.QtWidgets.QListWidgetItem.setHidden": ('bool',),
- "PySide2.QtWidgets.QListWidgetItem.setIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtWidgets.QListWidgetItem.setSelected": ('bool',),
- "PySide2.QtWidgets.QListWidgetItem.setSizeHint": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QListWidgetItem.setStatusTip": ('str',),
- "PySide2.QtWidgets.QListWidgetItem.setText": ('str',),
- "PySide2.QtWidgets.QListWidgetItem.setTextAlignment": ('int',),
- "PySide2.QtWidgets.QListWidgetItem.setTextColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QListWidgetItem.setToolTip": ('str',),
- "PySide2.QtWidgets.QListWidgetItem.setWhatsThis": ('str',),
- "PySide2.QtWidgets.QListWidgetItem.sizeHint": (),
- "PySide2.QtWidgets.QListWidgetItem.statusTip": (),
- "PySide2.QtWidgets.QListWidgetItem.text": (),
- "PySide2.QtWidgets.QListWidgetItem.textAlignment": (),
- "PySide2.QtWidgets.QListWidgetItem.textColor": (),
- "PySide2.QtWidgets.QListWidgetItem.toolTip": (),
- "PySide2.QtWidgets.QListWidgetItem.type": (),
- "PySide2.QtWidgets.QListWidgetItem.whatsThis": (),
- "PySide2.QtWidgets.QListWidgetItem.write": ('PySide2.QtCore.QDataStream',),
-# class PySide2.QtWidgets.QMainWindow:
-# class PySide2.QtWidgets.QMainWindow.DockOption:
-# class PySide2.QtWidgets.QMainWindow.DockOptions:
- "PySide2.QtWidgets.QMainWindow.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QMainWindow.addDockWidget": [('PySide2.QtCore.Qt.DockWidgetArea', 'PySide2.QtWidgets.QDockWidget'), ('PySide2.QtCore.Qt.DockWidgetArea', 'PySide2.QtWidgets.QDockWidget', 'PySide2.QtCore.Qt.Orientation')],
- "PySide2.QtWidgets.QMainWindow.addToolBar": [('PySide2.QtCore.Qt.ToolBarArea', 'PySide2.QtWidgets.QToolBar'), ('PySide2.QtWidgets.QToolBar',), ('str',)],
- "PySide2.QtWidgets.QMainWindow.addToolBarBreak": ('PySide2.QtCore.Qt.ToolBarArea',),
- "PySide2.QtWidgets.QMainWindow.centralWidget": (),
- "PySide2.QtWidgets.QMainWindow.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QMainWindow.corner": ('PySide2.QtCore.Qt.Corner',),
- "PySide2.QtWidgets.QMainWindow.createPopupMenu": (),
- "PySide2.QtWidgets.QMainWindow.dockOptions": (),
- "PySide2.QtWidgets.QMainWindow.dockWidgetArea": ('PySide2.QtWidgets.QDockWidget',),
- "PySide2.QtWidgets.QMainWindow.documentMode": (),
- "PySide2.QtWidgets.QMainWindow.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMainWindow.iconSize": (),
- "PySide2.QtWidgets.QMainWindow.insertToolBar": ('PySide2.QtWidgets.QToolBar', 'PySide2.QtWidgets.QToolBar'),
- "PySide2.QtWidgets.QMainWindow.insertToolBarBreak": ('PySide2.QtWidgets.QToolBar',),
- "PySide2.QtWidgets.QMainWindow.isAnimated": (),
- "PySide2.QtWidgets.QMainWindow.isDockNestingEnabled": (),
- "PySide2.QtWidgets.QMainWindow.isSeparator": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QMainWindow.menuBar": (),
- "PySide2.QtWidgets.QMainWindow.menuWidget": (),
- "PySide2.QtWidgets.QMainWindow.removeDockWidget": ('PySide2.QtWidgets.QDockWidget',),
- "PySide2.QtWidgets.QMainWindow.removeToolBar": ('PySide2.QtWidgets.QToolBar',),
- "PySide2.QtWidgets.QMainWindow.removeToolBarBreak": ('PySide2.QtWidgets.QToolBar',),
- "PySide2.QtWidgets.QMainWindow.resizeDocks": ('typing.Sequence', 'typing.Sequence', 'PySide2.QtCore.Qt.Orientation'),
- "PySide2.QtWidgets.QMainWindow.restoreDockWidget": ('PySide2.QtWidgets.QDockWidget',),
- "PySide2.QtWidgets.QMainWindow.restoreState": ('PySide2.QtCore.QByteArray', 'int'),
- "PySide2.QtWidgets.QMainWindow.saveState": ('int',),
- "PySide2.QtWidgets.QMainWindow.setAnimated": ('bool',),
- "PySide2.QtWidgets.QMainWindow.setCentralWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QMainWindow.setCorner": ('PySide2.QtCore.Qt.Corner', 'PySide2.QtCore.Qt.DockWidgetArea'),
- "PySide2.QtWidgets.QMainWindow.setDockNestingEnabled": ('bool',),
- "PySide2.QtWidgets.QMainWindow.setDockOptions": ('PySide2.QtWidgets.QMainWindow.DockOptions',),
- "PySide2.QtWidgets.QMainWindow.setDocumentMode": ('bool',),
- "PySide2.QtWidgets.QMainWindow.setIconSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QMainWindow.setMenuBar": ('PySide2.QtWidgets.QMenuBar',),
- "PySide2.QtWidgets.QMainWindow.setMenuWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QMainWindow.setStatusBar": ('PySide2.QtWidgets.QStatusBar',),
- "PySide2.QtWidgets.QMainWindow.setTabPosition": ('PySide2.QtCore.Qt.DockWidgetAreas', 'PySide2.QtWidgets.QTabWidget.TabPosition'),
- "PySide2.QtWidgets.QMainWindow.setTabShape": ('PySide2.QtWidgets.QTabWidget.TabShape',),
- "PySide2.QtWidgets.QMainWindow.setToolButtonStyle": ('PySide2.QtCore.Qt.ToolButtonStyle',),
- "PySide2.QtWidgets.QMainWindow.setUnifiedTitleAndToolBarOnMac": ('bool',),
- "PySide2.QtWidgets.QMainWindow.splitDockWidget": ('PySide2.QtWidgets.QDockWidget', 'PySide2.QtWidgets.QDockWidget', 'PySide2.QtCore.Qt.Orientation'),
- "PySide2.QtWidgets.QMainWindow.statusBar": (),
- "PySide2.QtWidgets.QMainWindow.tabPosition": ('PySide2.QtCore.Qt.DockWidgetArea',),
- "PySide2.QtWidgets.QMainWindow.tabShape": (),
- "PySide2.QtWidgets.QMainWindow.tabifiedDockWidgets": ('PySide2.QtWidgets.QDockWidget',),
- "PySide2.QtWidgets.QMainWindow.tabifyDockWidget": ('PySide2.QtWidgets.QDockWidget', 'PySide2.QtWidgets.QDockWidget'),
- "PySide2.QtWidgets.QMainWindow.takeCentralWidget": (),
- "PySide2.QtWidgets.QMainWindow.toolBarArea": ('PySide2.QtWidgets.QToolBar',),
- "PySide2.QtWidgets.QMainWindow.toolBarBreak": ('PySide2.QtWidgets.QToolBar',),
- "PySide2.QtWidgets.QMainWindow.toolButtonStyle": (),
- "PySide2.QtWidgets.QMainWindow.unifiedTitleAndToolBarOnMac": (),
-# class PySide2.QtWidgets.QMdiArea:
-# class PySide2.QtWidgets.QMdiArea.AreaOption:
-# class PySide2.QtWidgets.QMdiArea.AreaOptions:
-# class PySide2.QtWidgets.QMdiArea.ViewMode:
-# class PySide2.QtWidgets.QMdiArea.WindowOrder:
- "PySide2.QtWidgets.QMdiArea.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QMdiArea.activateNextSubWindow": (),
- "PySide2.QtWidgets.QMdiArea.activatePreviousSubWindow": (),
- "PySide2.QtWidgets.QMdiArea.activationOrder": (),
- "PySide2.QtWidgets.QMdiArea.activeSubWindow": (),
- "PySide2.QtWidgets.QMdiArea.addSubWindow": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QMdiArea.background": (),
- "PySide2.QtWidgets.QMdiArea.cascadeSubWindows": (),
- "PySide2.QtWidgets.QMdiArea.childEvent": ('PySide2.QtCore.QChildEvent',),
- "PySide2.QtWidgets.QMdiArea.closeActiveSubWindow": (),
- "PySide2.QtWidgets.QMdiArea.closeAllSubWindows": (),
- "PySide2.QtWidgets.QMdiArea.currentSubWindow": (),
- "PySide2.QtWidgets.QMdiArea.documentMode": (),
- "PySide2.QtWidgets.QMdiArea.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMdiArea.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QMdiArea.minimumSizeHint": (),
- "PySide2.QtWidgets.QMdiArea.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QMdiArea.removeSubWindow": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QMdiArea.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QMdiArea.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QMdiArea.setActivationOrder": ('PySide2.QtWidgets.QMdiArea.WindowOrder',),
- "PySide2.QtWidgets.QMdiArea.setActiveSubWindow": ('PySide2.QtWidgets.QMdiSubWindow',),
- "PySide2.QtWidgets.QMdiArea.setBackground": ('PySide2.QtGui.QBrush',),
- "PySide2.QtWidgets.QMdiArea.setDocumentMode": ('bool',),
- "PySide2.QtWidgets.QMdiArea.setOption": ('PySide2.QtWidgets.QMdiArea.AreaOption', 'bool'),
- "PySide2.QtWidgets.QMdiArea.setTabPosition": ('PySide2.QtWidgets.QTabWidget.TabPosition',),
- "PySide2.QtWidgets.QMdiArea.setTabShape": ('PySide2.QtWidgets.QTabWidget.TabShape',),
- "PySide2.QtWidgets.QMdiArea.setTabsClosable": ('bool',),
- "PySide2.QtWidgets.QMdiArea.setTabsMovable": ('bool',),
- "PySide2.QtWidgets.QMdiArea.setViewMode": ('PySide2.QtWidgets.QMdiArea.ViewMode',),
- "PySide2.QtWidgets.QMdiArea.setupViewport": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QMdiArea.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QMdiArea.sizeHint": (),
- "PySide2.QtWidgets.QMdiArea.subWindowList": ('PySide2.QtWidgets.QMdiArea.WindowOrder',),
- "PySide2.QtWidgets.QMdiArea.tabPosition": (),
- "PySide2.QtWidgets.QMdiArea.tabShape": (),
- "PySide2.QtWidgets.QMdiArea.tabsClosable": (),
- "PySide2.QtWidgets.QMdiArea.tabsMovable": (),
- "PySide2.QtWidgets.QMdiArea.testOption": ('PySide2.QtWidgets.QMdiArea.AreaOption',),
- "PySide2.QtWidgets.QMdiArea.tileSubWindows": (),
- "PySide2.QtWidgets.QMdiArea.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QMdiArea.viewMode": (),
- "PySide2.QtWidgets.QMdiArea.viewportEvent": ('PySide2.QtCore.QEvent',),
-# class PySide2.QtWidgets.QMdiSubWindow:
-# class PySide2.QtWidgets.QMdiSubWindow.SubWindowOption:
-# class PySide2.QtWidgets.QMdiSubWindow.SubWindowOptions:
- "PySide2.QtWidgets.QMdiSubWindow.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QMdiSubWindow.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.childEvent": ('PySide2.QtCore.QChildEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.closeEvent": ('PySide2.QtGui.QCloseEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QMdiSubWindow.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.isShaded": (),
- "PySide2.QtWidgets.QMdiSubWindow.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.keyboardPageStep": (),
- "PySide2.QtWidgets.QMdiSubWindow.keyboardSingleStep": (),
- "PySide2.QtWidgets.QMdiSubWindow.leaveEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.maximizedButtonsWidget": (),
- "PySide2.QtWidgets.QMdiSubWindow.maximizedSystemMenuIconWidget": (),
- "PySide2.QtWidgets.QMdiSubWindow.mdiArea": (),
- "PySide2.QtWidgets.QMdiSubWindow.minimumSizeHint": (),
- "PySide2.QtWidgets.QMdiSubWindow.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.moveEvent": ('PySide2.QtGui.QMoveEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.setKeyboardPageStep": ('int',),
- "PySide2.QtWidgets.QMdiSubWindow.setKeyboardSingleStep": ('int',),
- "PySide2.QtWidgets.QMdiSubWindow.setOption": ('PySide2.QtWidgets.QMdiSubWindow.SubWindowOption', 'bool'),
- "PySide2.QtWidgets.QMdiSubWindow.setSystemMenu": ('PySide2.QtWidgets.QMenu',),
- "PySide2.QtWidgets.QMdiSubWindow.setWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QMdiSubWindow.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.showShaded": (),
- "PySide2.QtWidgets.QMdiSubWindow.showSystemMenu": (),
- "PySide2.QtWidgets.QMdiSubWindow.sizeHint": (),
- "PySide2.QtWidgets.QMdiSubWindow.systemMenu": (),
- "PySide2.QtWidgets.QMdiSubWindow.testOption": ('PySide2.QtWidgets.QMdiSubWindow.SubWindowOption',),
- "PySide2.QtWidgets.QMdiSubWindow.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.widget": (),
-# class PySide2.QtWidgets.QMenu:
- "PySide2.QtWidgets.QMenu.__init__": [('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QMenu.actionAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QMenu.actionEvent": ('PySide2.QtGui.QActionEvent',),
- "PySide2.QtWidgets.QMenu.actionGeometry": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QMenu.activeAction": (),
- "PySide2.QtWidgets.QMenu.addAction": [('PySide2.QtGui.QIcon', 'str'), ('PySide2.QtGui.QIcon', 'str', 'PySide2.QtCore.QObject', 'bytes', 'PySide2.QtGui.QKeySequence'), ('PySide2.QtGui.QIcon', 'str', 'object', 'PySide2.QtGui.QKeySequence'), ('PySide2.QtWidgets.QAction',), ('str',), ('str', 'PySide2.QtCore.QObject', 'bytes', 'PySide2.QtGui.QKeySequence'), ('str', 'object', 'PySide2.QtGui.QKeySequence')],
- "PySide2.QtWidgets.QMenu.addMenu": [('PySide2.QtGui.QIcon', 'str'), ('PySide2.QtWidgets.QMenu',), ('str',)],
- "PySide2.QtWidgets.QMenu.addSection": [('PySide2.QtGui.QIcon', 'str'), ('str',)],
- "PySide2.QtWidgets.QMenu.addSeparator": (),
- "PySide2.QtWidgets.QMenu.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMenu.clear": (),
- "PySide2.QtWidgets.QMenu.columnCount": (),
- "PySide2.QtWidgets.QMenu.defaultAction": (),
- "PySide2.QtWidgets.QMenu.enterEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMenu.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMenu.exec_": [(), ('PySide2.QtCore.QPoint', 'PySide2.QtWidgets.QAction'), ('typing.Sequence', 'PySide2.QtCore.QPoint', 'PySide2.QtWidgets.QAction', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QMenu.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QMenu.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWidgets.QMenu.hideTearOffMenu": (),
- "PySide2.QtWidgets.QMenu.icon": (),
- "PySide2.QtWidgets.QMenu.initStyleOption": ('PySide2.QtWidgets.QStyleOptionMenuItem', 'PySide2.QtWidgets.QAction'),
- "PySide2.QtWidgets.QMenu.insertMenu": ('PySide2.QtWidgets.QAction', 'PySide2.QtWidgets.QMenu'),
- "PySide2.QtWidgets.QMenu.insertSection": [('PySide2.QtWidgets.QAction', 'PySide2.QtGui.QIcon', 'str'), ('PySide2.QtWidgets.QAction', 'str')],
- "PySide2.QtWidgets.QMenu.insertSeparator": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QMenu.isEmpty": (),
- "PySide2.QtWidgets.QMenu.isTearOffEnabled": (),
- "PySide2.QtWidgets.QMenu.isTearOffMenuVisible": (),
- "PySide2.QtWidgets.QMenu.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QMenu.leaveEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMenu.menuAction": (),
- "PySide2.QtWidgets.QMenu.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QMenu.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QMenu.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QMenu.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QMenu.popup": ('PySide2.QtCore.QPoint', 'PySide2.QtWidgets.QAction'),
- "PySide2.QtWidgets.QMenu.separatorsCollapsible": (),
- "PySide2.QtWidgets.QMenu.setActiveAction": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QMenu.setDefaultAction": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QMenu.setIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtWidgets.QMenu.setSeparatorsCollapsible": ('bool',),
- "PySide2.QtWidgets.QMenu.setTearOffEnabled": ('bool',),
- "PySide2.QtWidgets.QMenu.setTitle": ('str',),
- "PySide2.QtWidgets.QMenu.setToolTipsVisible": ('bool',),
- "PySide2.QtWidgets.QMenu.showTearOffMenu": [(), ('PySide2.QtCore.QPoint',)],
- "PySide2.QtWidgets.QMenu.sizeHint": (),
- "PySide2.QtWidgets.QMenu.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QMenu.title": (),
- "PySide2.QtWidgets.QMenu.toolTipsVisible": (),
- "PySide2.QtWidgets.QMenu.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtWidgets.QMenuBar:
- "PySide2.QtWidgets.QMenuBar.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QMenuBar.actionAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QMenuBar.actionEvent": ('PySide2.QtGui.QActionEvent',),
- "PySide2.QtWidgets.QMenuBar.actionGeometry": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QMenuBar.activeAction": (),
- "PySide2.QtWidgets.QMenuBar.addAction": [('PySide2.QtWidgets.QAction',), ('str',), ('str', 'PySide2.QtCore.QObject', 'bytes'), ('str', 'object')],
- "PySide2.QtWidgets.QMenuBar.addMenu": [('PySide2.QtGui.QIcon', 'str'), ('PySide2.QtWidgets.QMenu',), ('str',)],
- "PySide2.QtWidgets.QMenuBar.addSeparator": (),
- "PySide2.QtWidgets.QMenuBar.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMenuBar.clear": (),
- "PySide2.QtWidgets.QMenuBar.cornerWidget": ('PySide2.QtCore.Qt.Corner',),
- "PySide2.QtWidgets.QMenuBar.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMenuBar.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QMenuBar.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QMenuBar.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QMenuBar.heightForWidth": ('int',),
- "PySide2.QtWidgets.QMenuBar.initStyleOption": ('PySide2.QtWidgets.QStyleOptionMenuItem', 'PySide2.QtWidgets.QAction'),
- "PySide2.QtWidgets.QMenuBar.insertMenu": ('PySide2.QtWidgets.QAction', 'PySide2.QtWidgets.QMenu'),
- "PySide2.QtWidgets.QMenuBar.insertSeparator": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QMenuBar.isDefaultUp": (),
- "PySide2.QtWidgets.QMenuBar.isNativeMenuBar": (),
- "PySide2.QtWidgets.QMenuBar.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QMenuBar.leaveEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMenuBar.minimumSizeHint": (),
- "PySide2.QtWidgets.QMenuBar.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QMenuBar.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QMenuBar.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QMenuBar.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QMenuBar.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QMenuBar.setActiveAction": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QMenuBar.setCornerWidget": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.Corner'),
- "PySide2.QtWidgets.QMenuBar.setDefaultUp": ('bool',),
- "PySide2.QtWidgets.QMenuBar.setNativeMenuBar": ('bool',),
- "PySide2.QtWidgets.QMenuBar.setVisible": ('bool',),
- "PySide2.QtWidgets.QMenuBar.sizeHint": (),
- "PySide2.QtWidgets.QMenuBar.timerEvent": ('PySide2.QtCore.QTimerEvent',),
-# class PySide2.QtWidgets.QMessageBox:
-# class PySide2.QtWidgets.QMessageBox.ButtonRole:
-# class PySide2.QtWidgets.QMessageBox.Icon:
-# class PySide2.QtWidgets.QMessageBox.StandardButton:
-# class PySide2.QtWidgets.QMessageBox.StandardButtons:
- "PySide2.QtWidgets.QMessageBox.__init__": [('PySide2.QtWidgets.QMessageBox.Icon', 'str', 'str', 'PySide2.QtWidgets.QMessageBox.StandardButtons', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QMessageBox.about": ('PySide2.QtWidgets.QWidget', 'str', 'str'),
- "PySide2.QtWidgets.QMessageBox.aboutQt": ('PySide2.QtWidgets.QWidget', 'str'),
- "PySide2.QtWidgets.QMessageBox.addButton": [('PySide2.QtWidgets.QAbstractButton', 'PySide2.QtWidgets.QMessageBox.ButtonRole'), ('PySide2.QtWidgets.QMessageBox.StandardButton',), ('str', 'PySide2.QtWidgets.QMessageBox.ButtonRole')],
- "PySide2.QtWidgets.QMessageBox.button": ('PySide2.QtWidgets.QMessageBox.StandardButton',),
- "PySide2.QtWidgets.QMessageBox.buttonRole": ('PySide2.QtWidgets.QAbstractButton',),
- "PySide2.QtWidgets.QMessageBox.buttonText": ('int',),
- "PySide2.QtWidgets.QMessageBox.buttons": (),
- "PySide2.QtWidgets.QMessageBox.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMessageBox.checkBox": (),
- "PySide2.QtWidgets.QMessageBox.clickedButton": (),
- "PySide2.QtWidgets.QMessageBox.closeEvent": ('PySide2.QtGui.QCloseEvent',),
- "PySide2.QtWidgets.QMessageBox.critical": [('PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtWidgets.QMessageBox.StandardButton', 'PySide2.QtWidgets.QMessageBox.StandardButton'), ('PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtWidgets.QMessageBox.StandardButtons', 'PySide2.QtWidgets.QMessageBox.StandardButton')],
- "PySide2.QtWidgets.QMessageBox.defaultButton": (),
- "PySide2.QtWidgets.QMessageBox.detailedText": (),
- "PySide2.QtWidgets.QMessageBox.escapeButton": (),
- "PySide2.QtWidgets.QMessageBox.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMessageBox.icon": (),
- "PySide2.QtWidgets.QMessageBox.iconPixmap": (),
- "PySide2.QtWidgets.QMessageBox.information": [('PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtWidgets.QMessageBox.StandardButton', 'PySide2.QtWidgets.QMessageBox.StandardButton'), ('PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtWidgets.QMessageBox.StandardButtons', 'PySide2.QtWidgets.QMessageBox.StandardButton')],
- "PySide2.QtWidgets.QMessageBox.informativeText": (),
- "PySide2.QtWidgets.QMessageBox.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QMessageBox.open": [(), ('PySide2.QtCore.QObject', 'bytes')],
- "PySide2.QtWidgets.QMessageBox.question": [('PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtWidgets.QMessageBox.StandardButton', 'PySide2.QtWidgets.QMessageBox.StandardButton'), ('PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtWidgets.QMessageBox.StandardButtons', 'PySide2.QtWidgets.QMessageBox.StandardButton')],
- "PySide2.QtWidgets.QMessageBox.removeButton": ('PySide2.QtWidgets.QAbstractButton',),
- "PySide2.QtWidgets.QMessageBox.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QMessageBox.setButtonText": ('int', 'str'),
- "PySide2.QtWidgets.QMessageBox.setCheckBox": ('PySide2.QtWidgets.QCheckBox',),
- "PySide2.QtWidgets.QMessageBox.setDefaultButton": [('PySide2.QtWidgets.QMessageBox.StandardButton',), ('PySide2.QtWidgets.QPushButton',)],
- "PySide2.QtWidgets.QMessageBox.setDetailedText": ('str',),
- "PySide2.QtWidgets.QMessageBox.setEscapeButton": [('PySide2.QtWidgets.QAbstractButton',), ('PySide2.QtWidgets.QMessageBox.StandardButton',)],
- "PySide2.QtWidgets.QMessageBox.setIcon": ('PySide2.QtWidgets.QMessageBox.Icon',),
- "PySide2.QtWidgets.QMessageBox.setIconPixmap": ('PySide2.QtGui.QPixmap',),
- "PySide2.QtWidgets.QMessageBox.setInformativeText": ('str',),
- "PySide2.QtWidgets.QMessageBox.setStandardButtons": ('PySide2.QtWidgets.QMessageBox.StandardButtons',),
- "PySide2.QtWidgets.QMessageBox.setText": ('str',),
- "PySide2.QtWidgets.QMessageBox.setTextFormat": ('PySide2.QtCore.Qt.TextFormat',),
- "PySide2.QtWidgets.QMessageBox.setTextInteractionFlags": ('PySide2.QtCore.Qt.TextInteractionFlags',),
- "PySide2.QtWidgets.QMessageBox.setWindowModality": ('PySide2.QtCore.Qt.WindowModality',),
- "PySide2.QtWidgets.QMessageBox.setWindowTitle": ('str',),
- "PySide2.QtWidgets.QMessageBox.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QMessageBox.standardButton": ('PySide2.QtWidgets.QAbstractButton',),
- "PySide2.QtWidgets.QMessageBox.standardButtons": (),
- "PySide2.QtWidgets.QMessageBox.standardIcon": ('PySide2.QtWidgets.QMessageBox.Icon',),
- "PySide2.QtWidgets.QMessageBox.text": (),
- "PySide2.QtWidgets.QMessageBox.textFormat": (),
- "PySide2.QtWidgets.QMessageBox.textInteractionFlags": (),
- "PySide2.QtWidgets.QMessageBox.warning": [('PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtWidgets.QMessageBox.StandardButton', 'PySide2.QtWidgets.QMessageBox.StandardButton'), ('PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtWidgets.QMessageBox.StandardButtons', 'PySide2.QtWidgets.QMessageBox.StandardButton')],
-# class PySide2.QtWidgets.QMouseEventTransition:
- "PySide2.QtWidgets.QMouseEventTransition.__init__": [('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.QState'), ('PySide2.QtCore.QState',)],
- "PySide2.QtWidgets.QMouseEventTransition.button": (),
- "PySide2.QtWidgets.QMouseEventTransition.eventTest": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMouseEventTransition.hitTestPath": (),
- "PySide2.QtWidgets.QMouseEventTransition.modifierMask": (),
- "PySide2.QtWidgets.QMouseEventTransition.onTransition": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMouseEventTransition.setButton": ('PySide2.QtCore.Qt.MouseButton',),
- "PySide2.QtWidgets.QMouseEventTransition.setHitTestPath": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtWidgets.QMouseEventTransition.setModifierMask": ('PySide2.QtCore.Qt.KeyboardModifiers',),
-# class PySide2.QtWidgets.QOpenGLWidget:
-# class PySide2.QtWidgets.QOpenGLWidget.UpdateBehavior:
- "PySide2.QtWidgets.QOpenGLWidget.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QOpenGLWidget.context": (),
- "PySide2.QtWidgets.QOpenGLWidget.defaultFramebufferObject": (),
- "PySide2.QtWidgets.QOpenGLWidget.doneCurrent": (),
- "PySide2.QtWidgets.QOpenGLWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QOpenGLWidget.format": (),
- "PySide2.QtWidgets.QOpenGLWidget.grabFramebuffer": (),
- "PySide2.QtWidgets.QOpenGLWidget.initializeGL": (),
- "PySide2.QtWidgets.QOpenGLWidget.isValid": (),
- "PySide2.QtWidgets.QOpenGLWidget.makeCurrent": (),
- "PySide2.QtWidgets.QOpenGLWidget.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtWidgets.QOpenGLWidget.paintEngine": (),
- "PySide2.QtWidgets.QOpenGLWidget.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QOpenGLWidget.paintGL": (),
- "PySide2.QtWidgets.QOpenGLWidget.redirected": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QOpenGLWidget.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QOpenGLWidget.resizeGL": ('int', 'int'),
- "PySide2.QtWidgets.QOpenGLWidget.setFormat": ('PySide2.QtGui.QSurfaceFormat',),
- "PySide2.QtWidgets.QOpenGLWidget.setTextureFormat": ('int',),
- "PySide2.QtWidgets.QOpenGLWidget.setUpdateBehavior": ('PySide2.QtWidgets.QOpenGLWidget.UpdateBehavior',),
- "PySide2.QtWidgets.QOpenGLWidget.textureFormat": (),
- "PySide2.QtWidgets.QOpenGLWidget.updateBehavior": (),
-# class PySide2.QtWidgets.QPanGesture:
- "PySide2.QtWidgets.QPanGesture.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QPanGesture.acceleration": (),
- "PySide2.QtWidgets.QPanGesture.delta": (),
- "PySide2.QtWidgets.QPanGesture.lastOffset": (),
- "PySide2.QtWidgets.QPanGesture.offset": (),
- "PySide2.QtWidgets.QPanGesture.setAcceleration": ('float',),
- "PySide2.QtWidgets.QPanGesture.setLastOffset": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QPanGesture.setOffset": ('PySide2.QtCore.QPointF',),
-# class PySide2.QtWidgets.QPinchGesture:
-# class PySide2.QtWidgets.QPinchGesture.ChangeFlag:
-# class PySide2.QtWidgets.QPinchGesture.ChangeFlags:
- "PySide2.QtWidgets.QPinchGesture.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QPinchGesture.centerPoint": (),
- "PySide2.QtWidgets.QPinchGesture.changeFlags": (),
- "PySide2.QtWidgets.QPinchGesture.lastCenterPoint": (),
- "PySide2.QtWidgets.QPinchGesture.lastRotationAngle": (),
- "PySide2.QtWidgets.QPinchGesture.lastScaleFactor": (),
- "PySide2.QtWidgets.QPinchGesture.rotationAngle": (),
- "PySide2.QtWidgets.QPinchGesture.scaleFactor": (),
- "PySide2.QtWidgets.QPinchGesture.setCenterPoint": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QPinchGesture.setChangeFlags": ('PySide2.QtWidgets.QPinchGesture.ChangeFlags',),
- "PySide2.QtWidgets.QPinchGesture.setLastCenterPoint": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QPinchGesture.setLastRotationAngle": ('float',),
- "PySide2.QtWidgets.QPinchGesture.setLastScaleFactor": ('float',),
- "PySide2.QtWidgets.QPinchGesture.setRotationAngle": ('float',),
- "PySide2.QtWidgets.QPinchGesture.setScaleFactor": ('float',),
- "PySide2.QtWidgets.QPinchGesture.setStartCenterPoint": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QPinchGesture.setTotalChangeFlags": ('PySide2.QtWidgets.QPinchGesture.ChangeFlags',),
- "PySide2.QtWidgets.QPinchGesture.setTotalRotationAngle": ('float',),
- "PySide2.QtWidgets.QPinchGesture.setTotalScaleFactor": ('float',),
- "PySide2.QtWidgets.QPinchGesture.startCenterPoint": (),
- "PySide2.QtWidgets.QPinchGesture.totalChangeFlags": (),
- "PySide2.QtWidgets.QPinchGesture.totalRotationAngle": (),
- "PySide2.QtWidgets.QPinchGesture.totalScaleFactor": (),
-# class PySide2.QtWidgets.QPlainTextDocumentLayout:
- "PySide2.QtWidgets.QPlainTextDocumentLayout.__init__": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.blockBoundingRect": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.cursorWidth": (),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.documentChanged": ('int', 'int', 'int'),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.documentSize": (),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.draw": ('PySide2.QtGui.QPainter', 'PySide2.QtGui.QAbstractTextDocumentLayout.PaintContext'),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.ensureBlockLayout": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.frameBoundingRect": ('PySide2.QtGui.QTextFrame',),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.hitTest": ('PySide2.QtCore.QPointF', 'PySide2.QtCore.Qt.HitTestAccuracy'),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.pageCount": (),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.requestUpdate": (),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.setCursorWidth": ('int',),
-# class PySide2.QtWidgets.QPlainTextEdit:
-# class PySide2.QtWidgets.QPlainTextEdit.LineWrapMode:
- "PySide2.QtWidgets.QPlainTextEdit.__init__": [('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QPlainTextEdit.anchorAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QPlainTextEdit.appendHtml": ('str',),
- "PySide2.QtWidgets.QPlainTextEdit.appendPlainText": ('str',),
- "PySide2.QtWidgets.QPlainTextEdit.backgroundVisible": (),
- "PySide2.QtWidgets.QPlainTextEdit.blockBoundingGeometry": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtWidgets.QPlainTextEdit.blockBoundingRect": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtWidgets.QPlainTextEdit.blockCount": (),
- "PySide2.QtWidgets.QPlainTextEdit.canInsertFromMimeData": ('PySide2.QtCore.QMimeData',),
- "PySide2.QtWidgets.QPlainTextEdit.canPaste": (),
- "PySide2.QtWidgets.QPlainTextEdit.centerCursor": (),
- "PySide2.QtWidgets.QPlainTextEdit.centerOnScroll": (),
- "PySide2.QtWidgets.QPlainTextEdit.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.clear": (),
- "PySide2.QtWidgets.QPlainTextEdit.contentOffset": (),
- "PySide2.QtWidgets.QPlainTextEdit.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.copy": (),
- "PySide2.QtWidgets.QPlainTextEdit.createMimeDataFromSelection": (),
- "PySide2.QtWidgets.QPlainTextEdit.createStandardContextMenu": [(), ('PySide2.QtCore.QPoint',)],
- "PySide2.QtWidgets.QPlainTextEdit.currentCharFormat": (),
- "PySide2.QtWidgets.QPlainTextEdit.cursorForPosition": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QPlainTextEdit.cursorRect": [(), ('PySide2.QtGui.QTextCursor',)],
- "PySide2.QtWidgets.QPlainTextEdit.cursorWidth": (),
- "PySide2.QtWidgets.QPlainTextEdit.cut": (),
- "PySide2.QtWidgets.QPlainTextEdit.doSetTextCursor": ('PySide2.QtGui.QTextCursor',),
- "PySide2.QtWidgets.QPlainTextEdit.document": (),
- "PySide2.QtWidgets.QPlainTextEdit.documentTitle": (),
- "PySide2.QtWidgets.QPlainTextEdit.dragEnterEvent": ('PySide2.QtGui.QDragEnterEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.ensureCursorVisible": (),
- "PySide2.QtWidgets.QPlainTextEdit.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.extraSelections": (),
- "PySide2.QtWidgets.QPlainTextEdit.find": [('PySide2.QtCore.QRegExp', 'PySide2.QtGui.QTextDocument.FindFlags'), ('PySide2.QtCore.QRegularExpression', 'PySide2.QtGui.QTextDocument.FindFlags'), ('str', 'PySide2.QtGui.QTextDocument.FindFlags')],
- "PySide2.QtWidgets.QPlainTextEdit.firstVisibleBlock": (),
- "PySide2.QtWidgets.QPlainTextEdit.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QPlainTextEdit.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.getPaintContext": (),
- "PySide2.QtWidgets.QPlainTextEdit.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.inputMethodQuery": [('PySide2.QtCore.Qt.InputMethodQuery',), ('PySide2.QtCore.Qt.InputMethodQuery', 'typing.Any')],
- "PySide2.QtWidgets.QPlainTextEdit.insertFromMimeData": ('PySide2.QtCore.QMimeData',),
- "PySide2.QtWidgets.QPlainTextEdit.insertPlainText": ('str',),
- "PySide2.QtWidgets.QPlainTextEdit.isReadOnly": (),
- "PySide2.QtWidgets.QPlainTextEdit.isUndoRedoEnabled": (),
- "PySide2.QtWidgets.QPlainTextEdit.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.lineWrapMode": (),
- "PySide2.QtWidgets.QPlainTextEdit.loadResource": ('int', 'PySide2.QtCore.QUrl'),
- "PySide2.QtWidgets.QPlainTextEdit.maximumBlockCount": (),
- "PySide2.QtWidgets.QPlainTextEdit.mergeCurrentCharFormat": ('PySide2.QtGui.QTextCharFormat',),
- "PySide2.QtWidgets.QPlainTextEdit.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.moveCursor": ('PySide2.QtGui.QTextCursor.MoveOperation', 'PySide2.QtGui.QTextCursor.MoveMode'),
- "PySide2.QtWidgets.QPlainTextEdit.overwriteMode": (),
- "PySide2.QtWidgets.QPlainTextEdit.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.paste": (),
- "PySide2.QtWidgets.QPlainTextEdit.placeholderText": (),
- "PySide2.QtWidgets.QPlainTextEdit.print_": ('PySide2.QtGui.QPagedPaintDevice',),
- "PySide2.QtWidgets.QPlainTextEdit.redo": (),
- "PySide2.QtWidgets.QPlainTextEdit.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QPlainTextEdit.selectAll": (),
- "PySide2.QtWidgets.QPlainTextEdit.setBackgroundVisible": ('bool',),
- "PySide2.QtWidgets.QPlainTextEdit.setCenterOnScroll": ('bool',),
- "PySide2.QtWidgets.QPlainTextEdit.setCurrentCharFormat": ('PySide2.QtGui.QTextCharFormat',),
- "PySide2.QtWidgets.QPlainTextEdit.setCursorWidth": ('int',),
- "PySide2.QtWidgets.QPlainTextEdit.setDocument": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtWidgets.QPlainTextEdit.setDocumentTitle": ('str',),
- "PySide2.QtWidgets.QPlainTextEdit.setExtraSelections": ('typing.Sequence',),
- "PySide2.QtWidgets.QPlainTextEdit.setLineWrapMode": ('PySide2.QtWidgets.QPlainTextEdit.LineWrapMode',),
- "PySide2.QtWidgets.QPlainTextEdit.setMaximumBlockCount": ('int',),
- "PySide2.QtWidgets.QPlainTextEdit.setOverwriteMode": ('bool',),
- "PySide2.QtWidgets.QPlainTextEdit.setPlaceholderText": ('str',),
- "PySide2.QtWidgets.QPlainTextEdit.setPlainText": ('str',),
- "PySide2.QtWidgets.QPlainTextEdit.setReadOnly": ('bool',),
- "PySide2.QtWidgets.QPlainTextEdit.setTabChangesFocus": ('bool',),
- "PySide2.QtWidgets.QPlainTextEdit.setTabStopDistance": ('float',),
- "PySide2.QtWidgets.QPlainTextEdit.setTabStopWidth": ('int',),
- "PySide2.QtWidgets.QPlainTextEdit.setTextCursor": ('PySide2.QtGui.QTextCursor',),
- "PySide2.QtWidgets.QPlainTextEdit.setTextInteractionFlags": ('PySide2.QtCore.Qt.TextInteractionFlags',),
- "PySide2.QtWidgets.QPlainTextEdit.setUndoRedoEnabled": ('bool',),
- "PySide2.QtWidgets.QPlainTextEdit.setWordWrapMode": ('PySide2.QtGui.QTextOption.WrapMode',),
- "PySide2.QtWidgets.QPlainTextEdit.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.tabChangesFocus": (),
- "PySide2.QtWidgets.QPlainTextEdit.tabStopDistance": (),
- "PySide2.QtWidgets.QPlainTextEdit.tabStopWidth": (),
- "PySide2.QtWidgets.QPlainTextEdit.textCursor": (),
- "PySide2.QtWidgets.QPlainTextEdit.textInteractionFlags": (),
- "PySide2.QtWidgets.QPlainTextEdit.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.toPlainText": (),
- "PySide2.QtWidgets.QPlainTextEdit.undo": (),
- "PySide2.QtWidgets.QPlainTextEdit.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.wordWrapMode": (),
- "PySide2.QtWidgets.QPlainTextEdit.zoomIn": ('int',),
- "PySide2.QtWidgets.QPlainTextEdit.zoomInF": ('float',),
- "PySide2.QtWidgets.QPlainTextEdit.zoomOut": ('int',),
-# class PySide2.QtWidgets.QProgressBar:
-# class PySide2.QtWidgets.QProgressBar.Direction:
- "PySide2.QtWidgets.QProgressBar.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QProgressBar.alignment": (),
- "PySide2.QtWidgets.QProgressBar.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QProgressBar.format": (),
- "PySide2.QtWidgets.QProgressBar.initStyleOption": ('PySide2.QtWidgets.QStyleOptionProgressBar',),
- "PySide2.QtWidgets.QProgressBar.invertedAppearance": (),
- "PySide2.QtWidgets.QProgressBar.isTextVisible": (),
- "PySide2.QtWidgets.QProgressBar.maximum": (),
- "PySide2.QtWidgets.QProgressBar.minimum": (),
- "PySide2.QtWidgets.QProgressBar.minimumSizeHint": (),
- "PySide2.QtWidgets.QProgressBar.orientation": (),
- "PySide2.QtWidgets.QProgressBar.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QProgressBar.reset": (),
- "PySide2.QtWidgets.QProgressBar.resetFormat": (),
- "PySide2.QtWidgets.QProgressBar.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QProgressBar.setFormat": ('str',),
- "PySide2.QtWidgets.QProgressBar.setInvertedAppearance": ('bool',),
- "PySide2.QtWidgets.QProgressBar.setMaximum": ('int',),
- "PySide2.QtWidgets.QProgressBar.setMinimum": ('int',),
- "PySide2.QtWidgets.QProgressBar.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtWidgets.QProgressBar.setRange": ('int', 'int'),
- "PySide2.QtWidgets.QProgressBar.setTextDirection": ('PySide2.QtWidgets.QProgressBar.Direction',),
- "PySide2.QtWidgets.QProgressBar.setTextVisible": ('bool',),
- "PySide2.QtWidgets.QProgressBar.setValue": ('int',),
- "PySide2.QtWidgets.QProgressBar.sizeHint": (),
- "PySide2.QtWidgets.QProgressBar.text": (),
- "PySide2.QtWidgets.QProgressBar.textDirection": (),
- "PySide2.QtWidgets.QProgressBar.value": (),
-# class PySide2.QtWidgets.QProgressDialog:
- "PySide2.QtWidgets.QProgressDialog.__init__": [('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'), ('str', 'str', 'int', 'int', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags')],
- "PySide2.QtWidgets.QProgressDialog.autoClose": (),
- "PySide2.QtWidgets.QProgressDialog.autoReset": (),
- "PySide2.QtWidgets.QProgressDialog.cancel": (),
- "PySide2.QtWidgets.QProgressDialog.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QProgressDialog.closeEvent": ('PySide2.QtGui.QCloseEvent',),
- "PySide2.QtWidgets.QProgressDialog.forceShow": (),
- "PySide2.QtWidgets.QProgressDialog.labelText": (),
- "PySide2.QtWidgets.QProgressDialog.maximum": (),
- "PySide2.QtWidgets.QProgressDialog.minimum": (),
- "PySide2.QtWidgets.QProgressDialog.minimumDuration": (),
- "PySide2.QtWidgets.QProgressDialog.open": [(), ('PySide2.QtCore.QObject', 'bytes')],
- "PySide2.QtWidgets.QProgressDialog.reset": (),
- "PySide2.QtWidgets.QProgressDialog.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QProgressDialog.setAutoClose": ('bool',),
- "PySide2.QtWidgets.QProgressDialog.setAutoReset": ('bool',),
- "PySide2.QtWidgets.QProgressDialog.setBar": ('PySide2.QtWidgets.QProgressBar',),
- "PySide2.QtWidgets.QProgressDialog.setCancelButton": ('PySide2.QtWidgets.QPushButton',),
- "PySide2.QtWidgets.QProgressDialog.setCancelButtonText": ('str',),
- "PySide2.QtWidgets.QProgressDialog.setLabel": ('PySide2.QtWidgets.QLabel',),
- "PySide2.QtWidgets.QProgressDialog.setLabelText": ('str',),
- "PySide2.QtWidgets.QProgressDialog.setMaximum": ('int',),
- "PySide2.QtWidgets.QProgressDialog.setMinimum": ('int',),
- "PySide2.QtWidgets.QProgressDialog.setMinimumDuration": ('int',),
- "PySide2.QtWidgets.QProgressDialog.setRange": ('int', 'int'),
- "PySide2.QtWidgets.QProgressDialog.setValue": ('int',),
- "PySide2.QtWidgets.QProgressDialog.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QProgressDialog.sizeHint": (),
- "PySide2.QtWidgets.QProgressDialog.value": (),
- "PySide2.QtWidgets.QProgressDialog.wasCanceled": (),
-# class PySide2.QtWidgets.QProxyStyle:
- "PySide2.QtWidgets.QProxyStyle.__init__": [('PySide2.QtWidgets.QStyle',), ('str',)],
- "PySide2.QtWidgets.QProxyStyle.baseStyle": (),
- "PySide2.QtWidgets.QProxyStyle.drawComplexControl": ('PySide2.QtWidgets.QStyle.ComplexControl', 'PySide2.QtWidgets.QStyleOptionComplex', 'PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.drawControl": ('PySide2.QtWidgets.QStyle.ControlElement', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.drawItemPixmap": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRect', 'int', 'PySide2.QtGui.QPixmap'),
- "PySide2.QtWidgets.QProxyStyle.drawItemText": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRect', 'int', 'PySide2.QtGui.QPalette', 'bool', 'str', 'PySide2.QtGui.QPalette.ColorRole'),
- "PySide2.QtWidgets.QProxyStyle.drawPrimitive": ('PySide2.QtWidgets.QStyle.PrimitiveElement', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QProxyStyle.generatedIconPixmap": ('PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QPixmap', 'PySide2.QtWidgets.QStyleOption'),
- "PySide2.QtWidgets.QProxyStyle.hitTestComplexControl": ('PySide2.QtWidgets.QStyle.ComplexControl', 'PySide2.QtWidgets.QStyleOptionComplex', 'PySide2.QtCore.QPoint', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.itemPixmapRect": ('PySide2.QtCore.QRect', 'int', 'PySide2.QtGui.QPixmap'),
- "PySide2.QtWidgets.QProxyStyle.itemTextRect": ('PySide2.QtGui.QFontMetrics', 'PySide2.QtCore.QRect', 'int', 'bool', 'str'),
- "PySide2.QtWidgets.QProxyStyle.layoutSpacing": ('PySide2.QtWidgets.QSizePolicy.ControlType', 'PySide2.QtWidgets.QSizePolicy.ControlType', 'PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.pixelMetric": ('PySide2.QtWidgets.QStyle.PixelMetric', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.polish": [('PySide2.QtGui.QPalette',), ('PySide2.QtWidgets.QApplication',), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QProxyStyle.setBaseStyle": ('PySide2.QtWidgets.QStyle',),
- "PySide2.QtWidgets.QProxyStyle.sizeFromContents": ('PySide2.QtWidgets.QStyle.ContentsType', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtCore.QSize', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.standardIcon": ('PySide2.QtWidgets.QStyle.StandardPixmap', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.standardPalette": (),
- "PySide2.QtWidgets.QProxyStyle.standardPixmap": ('PySide2.QtWidgets.QStyle.StandardPixmap', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.styleHint": ('PySide2.QtWidgets.QStyle.StyleHint', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QStyleHintReturn'),
- "PySide2.QtWidgets.QProxyStyle.subControlRect": ('PySide2.QtWidgets.QStyle.ComplexControl', 'PySide2.QtWidgets.QStyleOptionComplex', 'PySide2.QtWidgets.QStyle.SubControl', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.subElementRect": ('PySide2.QtWidgets.QStyle.SubElement', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.unpolish": [('PySide2.QtWidgets.QApplication',), ('PySide2.QtWidgets.QWidget',)],
-# class PySide2.QtWidgets.QPushButton:
- "PySide2.QtWidgets.QPushButton.__init__": [('PySide2.QtGui.QIcon', 'str', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QPushButton.autoDefault": (),
- "PySide2.QtWidgets.QPushButton.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QPushButton.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QPushButton.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QPushButton.initStyleOption": ('PySide2.QtWidgets.QStyleOptionButton',),
- "PySide2.QtWidgets.QPushButton.isDefault": (),
- "PySide2.QtWidgets.QPushButton.isFlat": (),
- "PySide2.QtWidgets.QPushButton.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QPushButton.menu": (),
- "PySide2.QtWidgets.QPushButton.minimumSizeHint": (),
- "PySide2.QtWidgets.QPushButton.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QPushButton.setAutoDefault": ('bool',),
- "PySide2.QtWidgets.QPushButton.setDefault": ('bool',),
- "PySide2.QtWidgets.QPushButton.setFlat": ('bool',),
- "PySide2.QtWidgets.QPushButton.setMenu": ('PySide2.QtWidgets.QMenu',),
- "PySide2.QtWidgets.QPushButton.showMenu": (),
- "PySide2.QtWidgets.QPushButton.sizeHint": (),
-# class PySide2.QtWidgets.QRadioButton:
- "PySide2.QtWidgets.QRadioButton.__init__": [('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QRadioButton.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QRadioButton.hitButton": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QRadioButton.initStyleOption": ('PySide2.QtWidgets.QStyleOptionButton',),
- "PySide2.QtWidgets.QRadioButton.minimumSizeHint": (),
- "PySide2.QtWidgets.QRadioButton.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QRadioButton.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QRadioButton.sizeHint": (),
-# class PySide2.QtWidgets.QRubberBand:
-# class PySide2.QtWidgets.QRubberBand.Shape:
- "PySide2.QtWidgets.QRubberBand.__init__": ('PySide2.QtWidgets.QRubberBand.Shape', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QRubberBand.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QRubberBand.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QRubberBand.initStyleOption": ('PySide2.QtWidgets.QStyleOptionRubberBand',),
- "PySide2.QtWidgets.QRubberBand.move": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtWidgets.QRubberBand.moveEvent": ('PySide2.QtGui.QMoveEvent',),
- "PySide2.QtWidgets.QRubberBand.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QRubberBand.resize": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtWidgets.QRubberBand.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QRubberBand.setGeometry": [('PySide2.QtCore.QRect',), ('int', 'int', 'int', 'int')],
- "PySide2.QtWidgets.QRubberBand.shape": (),
- "PySide2.QtWidgets.QRubberBand.showEvent": ('PySide2.QtGui.QShowEvent',),
-# class PySide2.QtWidgets.QScrollArea:
- "PySide2.QtWidgets.QScrollArea.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QScrollArea.alignment": (),
- "PySide2.QtWidgets.QScrollArea.ensureVisible": ('int', 'int', 'int', 'int'),
- "PySide2.QtWidgets.QScrollArea.ensureWidgetVisible": ('PySide2.QtWidgets.QWidget', 'int', 'int'),
- "PySide2.QtWidgets.QScrollArea.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QScrollArea.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QScrollArea.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QScrollArea.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QScrollArea.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QScrollArea.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QScrollArea.setWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QScrollArea.setWidgetResizable": ('bool',),
- "PySide2.QtWidgets.QScrollArea.sizeHint": (),
- "PySide2.QtWidgets.QScrollArea.takeWidget": (),
- "PySide2.QtWidgets.QScrollArea.viewportSizeHint": (),
- "PySide2.QtWidgets.QScrollArea.widget": (),
- "PySide2.QtWidgets.QScrollArea.widgetResizable": (),
-# class PySide2.QtWidgets.QScrollBar:
- "PySide2.QtWidgets.QScrollBar.__init__": [('PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QScrollBar.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QScrollBar.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QScrollBar.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWidgets.QScrollBar.initStyleOption": ('PySide2.QtWidgets.QStyleOptionSlider',),
- "PySide2.QtWidgets.QScrollBar.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QScrollBar.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QScrollBar.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QScrollBar.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QScrollBar.sizeHint": (),
- "PySide2.QtWidgets.QScrollBar.sliderChange": ('PySide2.QtWidgets.QAbstractSlider.SliderChange',),
- "PySide2.QtWidgets.QScrollBar.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtWidgets.QScroller:
-# class PySide2.QtWidgets.QScroller.Input:
-# class PySide2.QtWidgets.QScroller.ScrollerGestureType:
-# class PySide2.QtWidgets.QScroller.State:
- "PySide2.QtWidgets.QScroller.activeScrollers": (),
- "PySide2.QtWidgets.QScroller.ensureVisible": [('PySide2.QtCore.QRectF', 'float', 'float'), ('PySide2.QtCore.QRectF', 'float', 'float', 'int')],
- "PySide2.QtWidgets.QScroller.finalPosition": (),
- "PySide2.QtWidgets.QScroller.grabGesture": ('PySide2.QtCore.QObject', 'PySide2.QtWidgets.QScroller.ScrollerGestureType'),
- "PySide2.QtWidgets.QScroller.grabbedGesture": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QScroller.handleInput": ('PySide2.QtWidgets.QScroller.Input', 'PySide2.QtCore.QPointF', 'int'),
- "PySide2.QtWidgets.QScroller.hasScroller": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QScroller.pixelPerMeter": (),
- "PySide2.QtWidgets.QScroller.resendPrepareEvent": (),
- "PySide2.QtWidgets.QScroller.scrollTo": [('PySide2.QtCore.QPointF',), ('PySide2.QtCore.QPointF', 'int')],
- "PySide2.QtWidgets.QScroller.scroller": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QScroller.scrollerProperties": (),
- "PySide2.QtWidgets.QScroller.setScrollerProperties": ('PySide2.QtWidgets.QScrollerProperties',),
- "PySide2.QtWidgets.QScroller.setSnapPositionsX": [('float', 'float'), ('typing.Sequence',)],
- "PySide2.QtWidgets.QScroller.setSnapPositionsY": [('float', 'float'), ('typing.Sequence',)],
- "PySide2.QtWidgets.QScroller.state": (),
- "PySide2.QtWidgets.QScroller.stop": (),
- "PySide2.QtWidgets.QScroller.target": (),
- "PySide2.QtWidgets.QScroller.ungrabGesture": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QScroller.velocity": (),
-# class PySide2.QtWidgets.QScrollerProperties:
-# class PySide2.QtWidgets.QScrollerProperties.FrameRates:
-# class PySide2.QtWidgets.QScrollerProperties.OvershootPolicy:
-# class PySide2.QtWidgets.QScrollerProperties.ScrollMetric:
- "PySide2.QtWidgets.QScrollerProperties.__init__": [(), ('PySide2.QtWidgets.QScrollerProperties',)],
- "PySide2.QtWidgets.QScrollerProperties.__copy__": (),
- "PySide2.QtWidgets.QScrollerProperties.scrollMetric": ('PySide2.QtWidgets.QScrollerProperties.ScrollMetric',),
- "PySide2.QtWidgets.QScrollerProperties.setDefaultScrollerProperties": ('PySide2.QtWidgets.QScrollerProperties',),
- "PySide2.QtWidgets.QScrollerProperties.setScrollMetric": ('PySide2.QtWidgets.QScrollerProperties.ScrollMetric', 'typing.Any'),
- "PySide2.QtWidgets.QScrollerProperties.unsetDefaultScrollerProperties": (),
-# class PySide2.QtWidgets.QShortcut:
- "PySide2.QtWidgets.QShortcut.__init__": [('PySide2.QtGui.QKeySequence', 'PySide2.QtWidgets.QWidget', 'bytes', 'bytes', 'PySide2.QtCore.Qt.ShortcutContext'), ('PySide2.QtGui.QKeySequence', 'PySide2.QtWidgets.QWidget', 'typing.Callable', 'PySide2.QtCore.Qt.ShortcutContext'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QShortcut.autoRepeat": (),
- "PySide2.QtWidgets.QShortcut.context": (),
- "PySide2.QtWidgets.QShortcut.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QShortcut.id": (),
- "PySide2.QtWidgets.QShortcut.isEnabled": (),
- "PySide2.QtWidgets.QShortcut.key": (),
- "PySide2.QtWidgets.QShortcut.parentWidget": (),
- "PySide2.QtWidgets.QShortcut.setAutoRepeat": ('bool',),
- "PySide2.QtWidgets.QShortcut.setContext": ('PySide2.QtCore.Qt.ShortcutContext',),
- "PySide2.QtWidgets.QShortcut.setEnabled": ('bool',),
- "PySide2.QtWidgets.QShortcut.setKey": ('PySide2.QtGui.QKeySequence',),
- "PySide2.QtWidgets.QShortcut.setWhatsThis": ('str',),
- "PySide2.QtWidgets.QShortcut.whatsThis": (),
-# class PySide2.QtWidgets.QSizeGrip:
- "PySide2.QtWidgets.QSizeGrip.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QSizeGrip.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QSizeGrip.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QSizeGrip.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWidgets.QSizeGrip.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QSizeGrip.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QSizeGrip.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QSizeGrip.moveEvent": ('PySide2.QtGui.QMoveEvent',),
- "PySide2.QtWidgets.QSizeGrip.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QSizeGrip.setVisible": ('bool',),
- "PySide2.QtWidgets.QSizeGrip.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QSizeGrip.sizeHint": (),
-# class PySide2.QtWidgets.QSizePolicy:
-# class PySide2.QtWidgets.QSizePolicy.ControlType:
-# class PySide2.QtWidgets.QSizePolicy.ControlTypes:
-# class PySide2.QtWidgets.QSizePolicy.Policy:
-# class PySide2.QtWidgets.QSizePolicy.PolicyFlag:
- "PySide2.QtWidgets.QSizePolicy.__init__": [(), ('PySide2.QtWidgets.QSizePolicy.Policy', 'PySide2.QtWidgets.QSizePolicy.Policy', 'PySide2.QtWidgets.QSizePolicy.ControlType')],
- "PySide2.QtWidgets.QSizePolicy.__copy__": (),
- "PySide2.QtWidgets.QSizePolicy.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QSizePolicy.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QSizePolicy.controlType": (),
- "PySide2.QtWidgets.QSizePolicy.expandingDirections": (),
- "PySide2.QtWidgets.QSizePolicy.hasHeightForWidth": (),
- "PySide2.QtWidgets.QSizePolicy.hasWidthForHeight": (),
- "PySide2.QtWidgets.QSizePolicy.horizontalPolicy": (),
- "PySide2.QtWidgets.QSizePolicy.horizontalStretch": (),
- "PySide2.QtWidgets.QSizePolicy.retainSizeWhenHidden": (),
- "PySide2.QtWidgets.QSizePolicy.setControlType": ('PySide2.QtWidgets.QSizePolicy.ControlType',),
- "PySide2.QtWidgets.QSizePolicy.setHeightForWidth": ('bool',),
- "PySide2.QtWidgets.QSizePolicy.setHorizontalPolicy": ('PySide2.QtWidgets.QSizePolicy.Policy',),
- "PySide2.QtWidgets.QSizePolicy.setHorizontalStretch": ('int',),
- "PySide2.QtWidgets.QSizePolicy.setRetainSizeWhenHidden": ('bool',),
- "PySide2.QtWidgets.QSizePolicy.setVerticalPolicy": ('PySide2.QtWidgets.QSizePolicy.Policy',),
- "PySide2.QtWidgets.QSizePolicy.setVerticalStretch": ('int',),
- "PySide2.QtWidgets.QSizePolicy.setWidthForHeight": ('bool',),
- "PySide2.QtWidgets.QSizePolicy.transpose": (),
- "PySide2.QtWidgets.QSizePolicy.transposed": (),
- "PySide2.QtWidgets.QSizePolicy.verticalPolicy": (),
- "PySide2.QtWidgets.QSizePolicy.verticalStretch": (),
-# class PySide2.QtWidgets.QSlider:
-# class PySide2.QtWidgets.QSlider.TickPosition:
- "PySide2.QtWidgets.QSlider.__init__": [('PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QSlider.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QSlider.initStyleOption": ('PySide2.QtWidgets.QStyleOptionSlider',),
- "PySide2.QtWidgets.QSlider.minimumSizeHint": (),
- "PySide2.QtWidgets.QSlider.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QSlider.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QSlider.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QSlider.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QSlider.setTickInterval": ('int',),
- "PySide2.QtWidgets.QSlider.setTickPosition": ('PySide2.QtWidgets.QSlider.TickPosition',),
- "PySide2.QtWidgets.QSlider.sizeHint": (),
- "PySide2.QtWidgets.QSlider.tickInterval": (),
- "PySide2.QtWidgets.QSlider.tickPosition": (),
-# class PySide2.QtWidgets.QSpacerItem:
- "PySide2.QtWidgets.QSpacerItem.__init__": ('int', 'int', 'PySide2.QtWidgets.QSizePolicy.Policy', 'PySide2.QtWidgets.QSizePolicy.Policy'),
- "PySide2.QtWidgets.QSpacerItem.changeSize": ('int', 'int', 'PySide2.QtWidgets.QSizePolicy.Policy', 'PySide2.QtWidgets.QSizePolicy.Policy'),
- "PySide2.QtWidgets.QSpacerItem.expandingDirections": (),
- "PySide2.QtWidgets.QSpacerItem.geometry": (),
- "PySide2.QtWidgets.QSpacerItem.isEmpty": (),
- "PySide2.QtWidgets.QSpacerItem.maximumSize": (),
- "PySide2.QtWidgets.QSpacerItem.minimumSize": (),
- "PySide2.QtWidgets.QSpacerItem.setGeometry": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QSpacerItem.sizeHint": (),
- "PySide2.QtWidgets.QSpacerItem.sizePolicy": (),
- "PySide2.QtWidgets.QSpacerItem.spacerItem": (),
-# class PySide2.QtWidgets.QSpinBox:
- "PySide2.QtWidgets.QSpinBox.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QSpinBox.cleanText": (),
- "PySide2.QtWidgets.QSpinBox.displayIntegerBase": (),
- "PySide2.QtWidgets.QSpinBox.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QSpinBox.fixup": ('str',),
- "PySide2.QtWidgets.QSpinBox.maximum": (),
- "PySide2.QtWidgets.QSpinBox.minimum": (),
- "PySide2.QtWidgets.QSpinBox.prefix": (),
- "PySide2.QtWidgets.QSpinBox.setDisplayIntegerBase": ('int',),
- "PySide2.QtWidgets.QSpinBox.setMaximum": ('int',),
- "PySide2.QtWidgets.QSpinBox.setMinimum": ('int',),
- "PySide2.QtWidgets.QSpinBox.setPrefix": ('str',),
- "PySide2.QtWidgets.QSpinBox.setRange": ('int', 'int'),
- "PySide2.QtWidgets.QSpinBox.setSingleStep": ('int',),
- "PySide2.QtWidgets.QSpinBox.setStepType": ('PySide2.QtWidgets.QAbstractSpinBox.StepType',),
- "PySide2.QtWidgets.QSpinBox.setSuffix": ('str',),
- "PySide2.QtWidgets.QSpinBox.setValue": ('int',),
- "PySide2.QtWidgets.QSpinBox.singleStep": (),
- "PySide2.QtWidgets.QSpinBox.stepType": (),
- "PySide2.QtWidgets.QSpinBox.suffix": (),
- "PySide2.QtWidgets.QSpinBox.textFromValue": ('int',),
- "PySide2.QtWidgets.QSpinBox.validate": ('str', 'int'),
- "PySide2.QtWidgets.QSpinBox.value": (),
- "PySide2.QtWidgets.QSpinBox.valueFromText": ('str',),
-# class PySide2.QtWidgets.QSplashScreen:
- "PySide2.QtWidgets.QSplashScreen.__init__": [('PySide2.QtGui.QPixmap', 'PySide2.QtCore.Qt.WindowFlags'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtGui.QPixmap', 'PySide2.QtCore.Qt.WindowFlags')],
- "PySide2.QtWidgets.QSplashScreen.clearMessage": (),
- "PySide2.QtWidgets.QSplashScreen.drawContents": ('PySide2.QtGui.QPainter',),
- "PySide2.QtWidgets.QSplashScreen.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QSplashScreen.finish": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QSplashScreen.message": (),
- "PySide2.QtWidgets.QSplashScreen.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QSplashScreen.pixmap": (),
- "PySide2.QtWidgets.QSplashScreen.setPixmap": ('PySide2.QtGui.QPixmap',),
- "PySide2.QtWidgets.QSplashScreen.showMessage": ('str', 'int', 'PySide2.QtGui.QColor'),
-# class PySide2.QtWidgets.QSplitter:
- "PySide2.QtWidgets.QSplitter.__init__": [('PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QSplitter.__lshift__": ('PySide2.QtCore.QTextStream',),
- "PySide2.QtWidgets.QSplitter.__rshift__": ('PySide2.QtCore.QTextStream',),
- "PySide2.QtWidgets.QSplitter.addWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QSplitter.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QSplitter.childEvent": ('PySide2.QtCore.QChildEvent',),
- "PySide2.QtWidgets.QSplitter.childrenCollapsible": (),
- "PySide2.QtWidgets.QSplitter.closestLegalPosition": ('int', 'int'),
- "PySide2.QtWidgets.QSplitter.count": (),
- "PySide2.QtWidgets.QSplitter.createHandle": (),
- "PySide2.QtWidgets.QSplitter.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QSplitter.getRange": ('int',),
- "PySide2.QtWidgets.QSplitter.handle": ('int',),
- "PySide2.QtWidgets.QSplitter.handleWidth": (),
- "PySide2.QtWidgets.QSplitter.indexOf": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QSplitter.insertWidget": ('int', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QSplitter.isCollapsible": ('int',),
- "PySide2.QtWidgets.QSplitter.minimumSizeHint": (),
- "PySide2.QtWidgets.QSplitter.moveSplitter": ('int', 'int'),
- "PySide2.QtWidgets.QSplitter.opaqueResize": (),
- "PySide2.QtWidgets.QSplitter.orientation": (),
- "PySide2.QtWidgets.QSplitter.refresh": (),
- "PySide2.QtWidgets.QSplitter.replaceWidget": ('int', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QSplitter.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QSplitter.restoreState": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWidgets.QSplitter.saveState": (),
- "PySide2.QtWidgets.QSplitter.setChildrenCollapsible": ('bool',),
- "PySide2.QtWidgets.QSplitter.setCollapsible": ('int', 'bool'),
- "PySide2.QtWidgets.QSplitter.setHandleWidth": ('int',),
- "PySide2.QtWidgets.QSplitter.setOpaqueResize": ('bool',),
- "PySide2.QtWidgets.QSplitter.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtWidgets.QSplitter.setRubberBand": ('int',),
- "PySide2.QtWidgets.QSplitter.setSizes": ('typing.Sequence',),
- "PySide2.QtWidgets.QSplitter.setStretchFactor": ('int', 'int'),
- "PySide2.QtWidgets.QSplitter.sizeHint": (),
- "PySide2.QtWidgets.QSplitter.sizes": (),
- "PySide2.QtWidgets.QSplitter.widget": ('int',),
-# class PySide2.QtWidgets.QSplitterHandle:
- "PySide2.QtWidgets.QSplitterHandle.__init__": ('PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QSplitter'),
- "PySide2.QtWidgets.QSplitterHandle.closestLegalPosition": ('int',),
- "PySide2.QtWidgets.QSplitterHandle.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QSplitterHandle.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QSplitterHandle.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QSplitterHandle.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QSplitterHandle.moveSplitter": ('int',),
- "PySide2.QtWidgets.QSplitterHandle.opaqueResize": (),
- "PySide2.QtWidgets.QSplitterHandle.orientation": (),
- "PySide2.QtWidgets.QSplitterHandle.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QSplitterHandle.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QSplitterHandle.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtWidgets.QSplitterHandle.sizeHint": (),
- "PySide2.QtWidgets.QSplitterHandle.splitter": (),
-# class PySide2.QtWidgets.QStackedLayout:
-# class PySide2.QtWidgets.QStackedLayout.StackingMode:
- "PySide2.QtWidgets.QStackedLayout.__init__": [(), ('PySide2.QtWidgets.QLayout',), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QStackedLayout.addItem": ('PySide2.QtWidgets.QLayoutItem',),
- "PySide2.QtWidgets.QStackedLayout.addWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QStackedLayout.count": (),
- "PySide2.QtWidgets.QStackedLayout.currentIndex": (),
- "PySide2.QtWidgets.QStackedLayout.currentWidget": (),
- "PySide2.QtWidgets.QStackedLayout.hasHeightForWidth": (),
- "PySide2.QtWidgets.QStackedLayout.heightForWidth": ('int',),
- "PySide2.QtWidgets.QStackedLayout.insertWidget": ('int', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStackedLayout.itemAt": ('int',),
- "PySide2.QtWidgets.QStackedLayout.minimumSize": (),
- "PySide2.QtWidgets.QStackedLayout.setCurrentIndex": ('int',),
- "PySide2.QtWidgets.QStackedLayout.setCurrentWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QStackedLayout.setGeometry": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QStackedLayout.setStackingMode": ('PySide2.QtWidgets.QStackedLayout.StackingMode',),
- "PySide2.QtWidgets.QStackedLayout.sizeHint": (),
- "PySide2.QtWidgets.QStackedLayout.stackingMode": (),
- "PySide2.QtWidgets.QStackedLayout.takeAt": ('int',),
- "PySide2.QtWidgets.QStackedLayout.widget": [(), ('int',)],
-# class PySide2.QtWidgets.QStackedWidget:
- "PySide2.QtWidgets.QStackedWidget.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QStackedWidget.addWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QStackedWidget.count": (),
- "PySide2.QtWidgets.QStackedWidget.currentIndex": (),
- "PySide2.QtWidgets.QStackedWidget.currentWidget": (),
- "PySide2.QtWidgets.QStackedWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QStackedWidget.indexOf": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QStackedWidget.insertWidget": ('int', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStackedWidget.removeWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QStackedWidget.setCurrentIndex": ('int',),
- "PySide2.QtWidgets.QStackedWidget.setCurrentWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QStackedWidget.widget": ('int',),
-# class PySide2.QtWidgets.QStatusBar:
- "PySide2.QtWidgets.QStatusBar.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QStatusBar.addPermanentWidget": ('PySide2.QtWidgets.QWidget', 'int'),
- "PySide2.QtWidgets.QStatusBar.addWidget": ('PySide2.QtWidgets.QWidget', 'int'),
- "PySide2.QtWidgets.QStatusBar.clearMessage": (),
- "PySide2.QtWidgets.QStatusBar.currentMessage": (),
- "PySide2.QtWidgets.QStatusBar.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QStatusBar.hideOrShow": (),
- "PySide2.QtWidgets.QStatusBar.insertPermanentWidget": ('int', 'PySide2.QtWidgets.QWidget', 'int'),
- "PySide2.QtWidgets.QStatusBar.insertWidget": ('int', 'PySide2.QtWidgets.QWidget', 'int'),
- "PySide2.QtWidgets.QStatusBar.isSizeGripEnabled": (),
- "PySide2.QtWidgets.QStatusBar.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QStatusBar.reformat": (),
- "PySide2.QtWidgets.QStatusBar.removeWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QStatusBar.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QStatusBar.setSizeGripEnabled": ('bool',),
- "PySide2.QtWidgets.QStatusBar.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QStatusBar.showMessage": ('str', 'int'),
-# class PySide2.QtWidgets.QStyle:
-# class PySide2.QtWidgets.QStyle.ComplexControl:
-# class PySide2.QtWidgets.QStyle.ContentsType:
-# class PySide2.QtWidgets.QStyle.ControlElement:
-# class PySide2.QtWidgets.QStyle.PixelMetric:
-# class PySide2.QtWidgets.QStyle.PrimitiveElement:
-# class PySide2.QtWidgets.QStyle.RequestSoftwareInputPanel:
-# class PySide2.QtWidgets.QStyle.StandardPixmap:
-# class PySide2.QtWidgets.QStyle.State:
-# class PySide2.QtWidgets.QStyle.StateFlag:
-# class PySide2.QtWidgets.QStyle.StyleHint:
-# class PySide2.QtWidgets.QStyle.SubControl:
-# class PySide2.QtWidgets.QStyle.SubControls:
-# class PySide2.QtWidgets.QStyle.SubElement:
- "PySide2.QtWidgets.QStyle.__init__": (),
- "PySide2.QtWidgets.QStyle.alignedRect": ('PySide2.QtCore.Qt.LayoutDirection', 'PySide2.QtCore.Qt.Alignment', 'PySide2.QtCore.QSize', 'PySide2.QtCore.QRect'),
- "PySide2.QtWidgets.QStyle.combinedLayoutSpacing": ('PySide2.QtWidgets.QSizePolicy.ControlTypes', 'PySide2.QtWidgets.QSizePolicy.ControlTypes', 'PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.drawComplexControl": ('PySide2.QtWidgets.QStyle.ComplexControl', 'PySide2.QtWidgets.QStyleOptionComplex', 'PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.drawControl": ('PySide2.QtWidgets.QStyle.ControlElement', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.drawItemPixmap": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRect', 'int', 'PySide2.QtGui.QPixmap'),
- "PySide2.QtWidgets.QStyle.drawItemText": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRect', 'int', 'PySide2.QtGui.QPalette', 'bool', 'str', 'PySide2.QtGui.QPalette.ColorRole'),
- "PySide2.QtWidgets.QStyle.drawPrimitive": ('PySide2.QtWidgets.QStyle.PrimitiveElement', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.generatedIconPixmap": ('PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QPixmap', 'PySide2.QtWidgets.QStyleOption'),
- "PySide2.QtWidgets.QStyle.hitTestComplexControl": ('PySide2.QtWidgets.QStyle.ComplexControl', 'PySide2.QtWidgets.QStyleOptionComplex', 'PySide2.QtCore.QPoint', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.itemPixmapRect": ('PySide2.QtCore.QRect', 'int', 'PySide2.QtGui.QPixmap'),
- "PySide2.QtWidgets.QStyle.itemTextRect": ('PySide2.QtGui.QFontMetrics', 'PySide2.QtCore.QRect', 'int', 'bool', 'str'),
- "PySide2.QtWidgets.QStyle.layoutSpacing": ('PySide2.QtWidgets.QSizePolicy.ControlType', 'PySide2.QtWidgets.QSizePolicy.ControlType', 'PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.pixelMetric": ('PySide2.QtWidgets.QStyle.PixelMetric', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.polish": [('PySide2.QtGui.QPalette',), ('PySide2.QtWidgets.QApplication',), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QStyle.proxy": (),
- "PySide2.QtWidgets.QStyle.sizeFromContents": ('PySide2.QtWidgets.QStyle.ContentsType', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtCore.QSize', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.sliderPositionFromValue": ('int', 'int', 'int', 'int', 'bool'),
- "PySide2.QtWidgets.QStyle.sliderValueFromPosition": ('int', 'int', 'int', 'int', 'bool'),
- "PySide2.QtWidgets.QStyle.standardIcon": ('PySide2.QtWidgets.QStyle.StandardPixmap', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.standardPalette": (),
- "PySide2.QtWidgets.QStyle.standardPixmap": ('PySide2.QtWidgets.QStyle.StandardPixmap', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.styleHint": ('PySide2.QtWidgets.QStyle.StyleHint', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QStyleHintReturn'),
- "PySide2.QtWidgets.QStyle.subControlRect": ('PySide2.QtWidgets.QStyle.ComplexControl', 'PySide2.QtWidgets.QStyleOptionComplex', 'PySide2.QtWidgets.QStyle.SubControl', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.subElementRect": ('PySide2.QtWidgets.QStyle.SubElement', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.unpolish": [('PySide2.QtWidgets.QApplication',), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QStyle.visualAlignment": ('PySide2.QtCore.Qt.LayoutDirection', 'PySide2.QtCore.Qt.Alignment'),
- "PySide2.QtWidgets.QStyle.visualPos": ('PySide2.QtCore.Qt.LayoutDirection', 'PySide2.QtCore.QRect', 'PySide2.QtCore.QPoint'),
- "PySide2.QtWidgets.QStyle.visualRect": ('PySide2.QtCore.Qt.LayoutDirection', 'PySide2.QtCore.QRect', 'PySide2.QtCore.QRect'),
-# class PySide2.QtWidgets.QStyleFactory:
- "PySide2.QtWidgets.QStyleFactory.__init__": (),
- "PySide2.QtWidgets.QStyleFactory.create": ('str',),
- "PySide2.QtWidgets.QStyleFactory.keys": (),
-# class PySide2.QtWidgets.QStyleHintReturn:
-# class PySide2.QtWidgets.QStyleHintReturn.HintReturnType:
-# class PySide2.QtWidgets.QStyleHintReturn.StyleOptionType:
-# class PySide2.QtWidgets.QStyleHintReturn.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleHintReturn.__init__": ('int', 'int'),
-# class PySide2.QtWidgets.QStyleHintReturnMask:
-# class PySide2.QtWidgets.QStyleHintReturnMask.StyleOptionType:
-# class PySide2.QtWidgets.QStyleHintReturnMask.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleHintReturnMask.__init__": (),
-# class PySide2.QtWidgets.QStyleHintReturnVariant:
-# class PySide2.QtWidgets.QStyleHintReturnVariant.StyleOptionType:
-# class PySide2.QtWidgets.QStyleHintReturnVariant.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleHintReturnVariant.__init__": (),
-# class PySide2.QtWidgets.QStyleOption:
-# class PySide2.QtWidgets.QStyleOption.OptionType:
-# class PySide2.QtWidgets.QStyleOption.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOption.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOption.__init__": [('PySide2.QtWidgets.QStyleOption',), ('int', 'int')],
- "PySide2.QtWidgets.QStyleOption.init": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QStyleOption.initFrom": ('PySide2.QtWidgets.QWidget',),
-# class PySide2.QtWidgets.QStyleOptionButton:
-# class PySide2.QtWidgets.QStyleOptionButton.ButtonFeature:
-# class PySide2.QtWidgets.QStyleOptionButton.ButtonFeatures:
-# class PySide2.QtWidgets.QStyleOptionButton.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionButton.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionButton.__init__": [(), ('PySide2.QtWidgets.QStyleOptionButton',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionComboBox:
-# class PySide2.QtWidgets.QStyleOptionComboBox.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionComboBox.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionComboBox.__init__": [(), ('PySide2.QtWidgets.QStyleOptionComboBox',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionComplex:
-# class PySide2.QtWidgets.QStyleOptionComplex.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionComplex.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionComplex.__init__": [('PySide2.QtWidgets.QStyleOptionComplex',), ('int', 'int')],
-# class PySide2.QtWidgets.QStyleOptionDockWidget:
-# class PySide2.QtWidgets.QStyleOptionDockWidget.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionDockWidget.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionDockWidget.__init__": [(), ('PySide2.QtWidgets.QStyleOptionDockWidget',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionFocusRect:
-# class PySide2.QtWidgets.QStyleOptionFocusRect.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionFocusRect.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionFocusRect.__init__": [(), ('PySide2.QtWidgets.QStyleOptionFocusRect',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionFrame:
-# class PySide2.QtWidgets.QStyleOptionFrame.FrameFeature:
-# class PySide2.QtWidgets.QStyleOptionFrame.FrameFeatures:
-# class PySide2.QtWidgets.QStyleOptionFrame.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionFrame.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionFrame.__init__": [(), ('PySide2.QtWidgets.QStyleOptionFrame',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionGraphicsItem:
-# class PySide2.QtWidgets.QStyleOptionGraphicsItem.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionGraphicsItem.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionGraphicsItem.__init__": [(), ('PySide2.QtWidgets.QStyleOptionGraphicsItem',), ('int',)],
- "PySide2.QtWidgets.QStyleOptionGraphicsItem.levelOfDetailFromTransform": ('PySide2.QtGui.QTransform',),
-# class PySide2.QtWidgets.QStyleOptionGroupBox:
-# class PySide2.QtWidgets.QStyleOptionGroupBox.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionGroupBox.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionGroupBox.__init__": [(), ('PySide2.QtWidgets.QStyleOptionGroupBox',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionHeader:
-# class PySide2.QtWidgets.QStyleOptionHeader.SectionPosition:
-# class PySide2.QtWidgets.QStyleOptionHeader.SelectedPosition:
-# class PySide2.QtWidgets.QStyleOptionHeader.SortIndicator:
-# class PySide2.QtWidgets.QStyleOptionHeader.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionHeader.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionHeader.__init__": [(), ('PySide2.QtWidgets.QStyleOptionHeader',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionMenuItem:
-# class PySide2.QtWidgets.QStyleOptionMenuItem.CheckType:
-# class PySide2.QtWidgets.QStyleOptionMenuItem.MenuItemType:
-# class PySide2.QtWidgets.QStyleOptionMenuItem.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionMenuItem.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionMenuItem.__init__": [(), ('PySide2.QtWidgets.QStyleOptionMenuItem',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionProgressBar:
-# class PySide2.QtWidgets.QStyleOptionProgressBar.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionProgressBar.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionProgressBar.__init__": [(), ('PySide2.QtWidgets.QStyleOptionProgressBar',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionRubberBand:
-# class PySide2.QtWidgets.QStyleOptionRubberBand.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionRubberBand.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionRubberBand.__init__": [(), ('PySide2.QtWidgets.QStyleOptionRubberBand',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionSizeGrip:
-# class PySide2.QtWidgets.QStyleOptionSizeGrip.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionSizeGrip.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionSizeGrip.__init__": [(), ('PySide2.QtWidgets.QStyleOptionSizeGrip',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionSlider:
-# class PySide2.QtWidgets.QStyleOptionSlider.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionSlider.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionSlider.__init__": [(), ('PySide2.QtWidgets.QStyleOptionSlider',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionSpinBox:
-# class PySide2.QtWidgets.QStyleOptionSpinBox.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionSpinBox.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionSpinBox.__init__": [(), ('PySide2.QtWidgets.QStyleOptionSpinBox',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionTab:
-# class PySide2.QtWidgets.QStyleOptionTab.CornerWidget:
-# class PySide2.QtWidgets.QStyleOptionTab.CornerWidgets:
-# class PySide2.QtWidgets.QStyleOptionTab.SelectedPosition:
-# class PySide2.QtWidgets.QStyleOptionTab.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionTab.StyleOptionVersion:
-# class PySide2.QtWidgets.QStyleOptionTab.TabFeature:
-# class PySide2.QtWidgets.QStyleOptionTab.TabFeatures:
-# class PySide2.QtWidgets.QStyleOptionTab.TabPosition:
- "PySide2.QtWidgets.QStyleOptionTab.__init__": [(), ('PySide2.QtWidgets.QStyleOptionTab',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionTabBarBase:
-# class PySide2.QtWidgets.QStyleOptionTabBarBase.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionTabBarBase.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionTabBarBase.__init__": [(), ('PySide2.QtWidgets.QStyleOptionTabBarBase',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionTabWidgetFrame:
-# class PySide2.QtWidgets.QStyleOptionTabWidgetFrame.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionTabWidgetFrame.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionTabWidgetFrame.__init__": [(), ('PySide2.QtWidgets.QStyleOptionTabWidgetFrame',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionTitleBar:
-# class PySide2.QtWidgets.QStyleOptionTitleBar.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionTitleBar.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionTitleBar.__init__": [(), ('PySide2.QtWidgets.QStyleOptionTitleBar',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionToolBar:
-# class PySide2.QtWidgets.QStyleOptionToolBar.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionToolBar.StyleOptionVersion:
-# class PySide2.QtWidgets.QStyleOptionToolBar.ToolBarFeature:
-# class PySide2.QtWidgets.QStyleOptionToolBar.ToolBarFeatures:
-# class PySide2.QtWidgets.QStyleOptionToolBar.ToolBarPosition:
- "PySide2.QtWidgets.QStyleOptionToolBar.__init__": [(), ('PySide2.QtWidgets.QStyleOptionToolBar',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionToolBox:
-# class PySide2.QtWidgets.QStyleOptionToolBox.SelectedPosition:
-# class PySide2.QtWidgets.QStyleOptionToolBox.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionToolBox.StyleOptionVersion:
-# class PySide2.QtWidgets.QStyleOptionToolBox.TabPosition:
- "PySide2.QtWidgets.QStyleOptionToolBox.__init__": [(), ('PySide2.QtWidgets.QStyleOptionToolBox',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionToolButton:
-# class PySide2.QtWidgets.QStyleOptionToolButton.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionToolButton.StyleOptionVersion:
-# class PySide2.QtWidgets.QStyleOptionToolButton.ToolButtonFeature:
-# class PySide2.QtWidgets.QStyleOptionToolButton.ToolButtonFeatures:
- "PySide2.QtWidgets.QStyleOptionToolButton.__init__": [(), ('PySide2.QtWidgets.QStyleOptionToolButton',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionViewItem:
-# class PySide2.QtWidgets.QStyleOptionViewItem.Position:
-# class PySide2.QtWidgets.QStyleOptionViewItem.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionViewItem.StyleOptionVersion:
-# class PySide2.QtWidgets.QStyleOptionViewItem.ViewItemFeature:
-# class PySide2.QtWidgets.QStyleOptionViewItem.ViewItemFeatures:
-# class PySide2.QtWidgets.QStyleOptionViewItem.ViewItemPosition:
- "PySide2.QtWidgets.QStyleOptionViewItem.__init__": [(), ('PySide2.QtWidgets.QStyleOptionViewItem',), ('int',)],
- "PySide2.QtWidgets.QStyleOptionViewItem.__copy__": (),
-# class PySide2.QtWidgets.QStylePainter:
- "PySide2.QtWidgets.QStylePainter.__init__": [(), ('PySide2.QtGui.QPaintDevice', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QStylePainter.begin": [('PySide2.QtGui.QPaintDevice',), ('PySide2.QtGui.QPaintDevice', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QStylePainter.drawComplexControl": ('PySide2.QtWidgets.QStyle.ComplexControl', 'PySide2.QtWidgets.QStyleOptionComplex'),
- "PySide2.QtWidgets.QStylePainter.drawControl": ('PySide2.QtWidgets.QStyle.ControlElement', 'PySide2.QtWidgets.QStyleOption'),
- "PySide2.QtWidgets.QStylePainter.drawItemPixmap": ('PySide2.QtCore.QRect', 'int', 'PySide2.QtGui.QPixmap'),
- "PySide2.QtWidgets.QStylePainter.drawItemText": ('PySide2.QtCore.QRect', 'int', 'PySide2.QtGui.QPalette', 'bool', 'str', 'PySide2.QtGui.QPalette.ColorRole'),
- "PySide2.QtWidgets.QStylePainter.drawPrimitive": ('PySide2.QtWidgets.QStyle.PrimitiveElement', 'PySide2.QtWidgets.QStyleOption'),
- "PySide2.QtWidgets.QStylePainter.style": (),
-# class PySide2.QtWidgets.QStyledItemDelegate:
- "PySide2.QtWidgets.QStyledItemDelegate.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QStyledItemDelegate.createEditor": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QStyledItemDelegate.displayText": ('typing.Any', 'PySide2.QtCore.QLocale'),
- "PySide2.QtWidgets.QStyledItemDelegate.editorEvent": ('PySide2.QtCore.QEvent', 'PySide2.QtCore.QAbstractItemModel', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QStyledItemDelegate.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QStyledItemDelegate.initStyleOption": ('PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QStyledItemDelegate.itemEditorFactory": (),
- "PySide2.QtWidgets.QStyledItemDelegate.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QStyledItemDelegate.setEditorData": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QStyledItemDelegate.setItemEditorFactory": ('PySide2.QtWidgets.QItemEditorFactory',),
- "PySide2.QtWidgets.QStyledItemDelegate.setModelData": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QAbstractItemModel', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QStyledItemDelegate.sizeHint": ('PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QStyledItemDelegate.updateEditorGeometry": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
-# class PySide2.QtWidgets.QSwipeGesture:
-# class PySide2.QtWidgets.QSwipeGesture.SwipeDirection:
- "PySide2.QtWidgets.QSwipeGesture.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QSwipeGesture.horizontalDirection": (),
- "PySide2.QtWidgets.QSwipeGesture.setSwipeAngle": ('float',),
- "PySide2.QtWidgets.QSwipeGesture.swipeAngle": (),
- "PySide2.QtWidgets.QSwipeGesture.verticalDirection": (),
-# class PySide2.QtWidgets.QSystemTrayIcon:
-# class PySide2.QtWidgets.QSystemTrayIcon.ActivationReason:
-# class PySide2.QtWidgets.QSystemTrayIcon.MessageIcon:
- "PySide2.QtWidgets.QSystemTrayIcon.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtGui.QIcon', 'PySide2.QtCore.QObject')],
- "PySide2.QtWidgets.QSystemTrayIcon.contextMenu": (),
- "PySide2.QtWidgets.QSystemTrayIcon.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QSystemTrayIcon.geometry": (),
- "PySide2.QtWidgets.QSystemTrayIcon.hide": (),
- "PySide2.QtWidgets.QSystemTrayIcon.icon": (),
- "PySide2.QtWidgets.QSystemTrayIcon.isSystemTrayAvailable": (),
- "PySide2.QtWidgets.QSystemTrayIcon.isVisible": (),
- "PySide2.QtWidgets.QSystemTrayIcon.setContextMenu": ('PySide2.QtWidgets.QMenu',),
- "PySide2.QtWidgets.QSystemTrayIcon.setIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtWidgets.QSystemTrayIcon.setToolTip": ('str',),
- "PySide2.QtWidgets.QSystemTrayIcon.setVisible": ('bool',),
- "PySide2.QtWidgets.QSystemTrayIcon.show": (),
- "PySide2.QtWidgets.QSystemTrayIcon.showMessage": [('str', 'str', 'PySide2.QtGui.QIcon', 'int'), ('str', 'str', 'PySide2.QtWidgets.QSystemTrayIcon.MessageIcon', 'int')],
- "PySide2.QtWidgets.QSystemTrayIcon.supportsMessages": (),
- "PySide2.QtWidgets.QSystemTrayIcon.toolTip": (),
-# class PySide2.QtWidgets.QTabBar:
-# class PySide2.QtWidgets.QTabBar.ButtonPosition:
-# class PySide2.QtWidgets.QTabBar.SelectionBehavior:
-# class PySide2.QtWidgets.QTabBar.Shape:
- "PySide2.QtWidgets.QTabBar.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QTabBar.accessibleTabName": ('int',),
- "PySide2.QtWidgets.QTabBar.addTab": [('PySide2.QtGui.QIcon', 'str'), ('str',)],
- "PySide2.QtWidgets.QTabBar.autoHide": (),
- "PySide2.QtWidgets.QTabBar.changeCurrentOnDrag": (),
- "PySide2.QtWidgets.QTabBar.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QTabBar.count": (),
- "PySide2.QtWidgets.QTabBar.currentIndex": (),
- "PySide2.QtWidgets.QTabBar.documentMode": (),
- "PySide2.QtWidgets.QTabBar.drawBase": (),
- "PySide2.QtWidgets.QTabBar.elideMode": (),
- "PySide2.QtWidgets.QTabBar.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QTabBar.expanding": (),
- "PySide2.QtWidgets.QTabBar.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWidgets.QTabBar.iconSize": (),
- "PySide2.QtWidgets.QTabBar.initStyleOption": ('PySide2.QtWidgets.QStyleOptionTab', 'int'),
- "PySide2.QtWidgets.QTabBar.insertTab": [('int', 'PySide2.QtGui.QIcon', 'str'), ('int', 'str')],
- "PySide2.QtWidgets.QTabBar.isMovable": (),
- "PySide2.QtWidgets.QTabBar.isTabEnabled": ('int',),
- "PySide2.QtWidgets.QTabBar.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QTabBar.minimumSizeHint": (),
- "PySide2.QtWidgets.QTabBar.minimumTabSizeHint": ('int',),
- "PySide2.QtWidgets.QTabBar.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTabBar.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTabBar.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTabBar.moveTab": ('int', 'int'),
- "PySide2.QtWidgets.QTabBar.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QTabBar.removeTab": ('int',),
- "PySide2.QtWidgets.QTabBar.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QTabBar.selectionBehaviorOnRemove": (),
- "PySide2.QtWidgets.QTabBar.setAccessibleTabName": ('int', 'str'),
- "PySide2.QtWidgets.QTabBar.setAutoHide": ('bool',),
- "PySide2.QtWidgets.QTabBar.setChangeCurrentOnDrag": ('bool',),
- "PySide2.QtWidgets.QTabBar.setCurrentIndex": ('int',),
- "PySide2.QtWidgets.QTabBar.setDocumentMode": ('bool',),
- "PySide2.QtWidgets.QTabBar.setDrawBase": ('bool',),
- "PySide2.QtWidgets.QTabBar.setElideMode": ('PySide2.QtCore.Qt.TextElideMode',),
- "PySide2.QtWidgets.QTabBar.setExpanding": ('bool',),
- "PySide2.QtWidgets.QTabBar.setIconSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QTabBar.setMovable": ('bool',),
- "PySide2.QtWidgets.QTabBar.setSelectionBehaviorOnRemove": ('PySide2.QtWidgets.QTabBar.SelectionBehavior',),
- "PySide2.QtWidgets.QTabBar.setShape": ('PySide2.QtWidgets.QTabBar.Shape',),
- "PySide2.QtWidgets.QTabBar.setTabButton": ('int', 'PySide2.QtWidgets.QTabBar.ButtonPosition', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QTabBar.setTabData": ('int', 'typing.Any'),
- "PySide2.QtWidgets.QTabBar.setTabEnabled": ('int', 'bool'),
- "PySide2.QtWidgets.QTabBar.setTabIcon": ('int', 'PySide2.QtGui.QIcon'),
- "PySide2.QtWidgets.QTabBar.setTabText": ('int', 'str'),
- "PySide2.QtWidgets.QTabBar.setTabTextColor": ('int', 'PySide2.QtGui.QColor'),
- "PySide2.QtWidgets.QTabBar.setTabToolTip": ('int', 'str'),
- "PySide2.QtWidgets.QTabBar.setTabWhatsThis": ('int', 'str'),
- "PySide2.QtWidgets.QTabBar.setTabsClosable": ('bool',),
- "PySide2.QtWidgets.QTabBar.setUsesScrollButtons": ('bool',),
- "PySide2.QtWidgets.QTabBar.shape": (),
- "PySide2.QtWidgets.QTabBar.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QTabBar.sizeHint": (),
- "PySide2.QtWidgets.QTabBar.tabAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QTabBar.tabButton": ('int', 'PySide2.QtWidgets.QTabBar.ButtonPosition'),
- "PySide2.QtWidgets.QTabBar.tabData": ('int',),
- "PySide2.QtWidgets.QTabBar.tabIcon": ('int',),
- "PySide2.QtWidgets.QTabBar.tabInserted": ('int',),
- "PySide2.QtWidgets.QTabBar.tabLayoutChange": (),
- "PySide2.QtWidgets.QTabBar.tabRect": ('int',),
- "PySide2.QtWidgets.QTabBar.tabRemoved": ('int',),
- "PySide2.QtWidgets.QTabBar.tabSizeHint": ('int',),
- "PySide2.QtWidgets.QTabBar.tabText": ('int',),
- "PySide2.QtWidgets.QTabBar.tabTextColor": ('int',),
- "PySide2.QtWidgets.QTabBar.tabToolTip": ('int',),
- "PySide2.QtWidgets.QTabBar.tabWhatsThis": ('int',),
- "PySide2.QtWidgets.QTabBar.tabsClosable": (),
- "PySide2.QtWidgets.QTabBar.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QTabBar.usesScrollButtons": (),
- "PySide2.QtWidgets.QTabBar.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtWidgets.QTabWidget:
-# class PySide2.QtWidgets.QTabWidget.TabPosition:
-# class PySide2.QtWidgets.QTabWidget.TabShape:
- "PySide2.QtWidgets.QTabWidget.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QTabWidget.addTab": [('PySide2.QtWidgets.QWidget', 'PySide2.QtGui.QIcon', 'str'), ('PySide2.QtWidgets.QWidget', 'str')],
- "PySide2.QtWidgets.QTabWidget.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QTabWidget.clear": (),
- "PySide2.QtWidgets.QTabWidget.cornerWidget": ('PySide2.QtCore.Qt.Corner',),
- "PySide2.QtWidgets.QTabWidget.count": (),
- "PySide2.QtWidgets.QTabWidget.currentIndex": (),
- "PySide2.QtWidgets.QTabWidget.currentWidget": (),
- "PySide2.QtWidgets.QTabWidget.documentMode": (),
- "PySide2.QtWidgets.QTabWidget.elideMode": (),
- "PySide2.QtWidgets.QTabWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QTabWidget.hasHeightForWidth": (),
- "PySide2.QtWidgets.QTabWidget.heightForWidth": ('int',),
- "PySide2.QtWidgets.QTabWidget.iconSize": (),
- "PySide2.QtWidgets.QTabWidget.indexOf": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QTabWidget.initStyleOption": ('PySide2.QtWidgets.QStyleOptionTabWidgetFrame',),
- "PySide2.QtWidgets.QTabWidget.insertTab": [('int', 'PySide2.QtWidgets.QWidget', 'PySide2.QtGui.QIcon', 'str'), ('int', 'PySide2.QtWidgets.QWidget', 'str')],
- "PySide2.QtWidgets.QTabWidget.isMovable": (),
- "PySide2.QtWidgets.QTabWidget.isTabEnabled": ('int',),
- "PySide2.QtWidgets.QTabWidget.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QTabWidget.minimumSizeHint": (),
- "PySide2.QtWidgets.QTabWidget.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QTabWidget.removeTab": ('int',),
- "PySide2.QtWidgets.QTabWidget.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QTabWidget.setCornerWidget": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.Corner'),
- "PySide2.QtWidgets.QTabWidget.setCurrentIndex": ('int',),
- "PySide2.QtWidgets.QTabWidget.setCurrentWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QTabWidget.setDocumentMode": ('bool',),
- "PySide2.QtWidgets.QTabWidget.setElideMode": ('PySide2.QtCore.Qt.TextElideMode',),
- "PySide2.QtWidgets.QTabWidget.setIconSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QTabWidget.setMovable": ('bool',),
- "PySide2.QtWidgets.QTabWidget.setTabBar": ('PySide2.QtWidgets.QTabBar',),
- "PySide2.QtWidgets.QTabWidget.setTabBarAutoHide": ('bool',),
- "PySide2.QtWidgets.QTabWidget.setTabEnabled": ('int', 'bool'),
- "PySide2.QtWidgets.QTabWidget.setTabIcon": ('int', 'PySide2.QtGui.QIcon'),
- "PySide2.QtWidgets.QTabWidget.setTabPosition": ('PySide2.QtWidgets.QTabWidget.TabPosition',),
- "PySide2.QtWidgets.QTabWidget.setTabShape": ('PySide2.QtWidgets.QTabWidget.TabShape',),
- "PySide2.QtWidgets.QTabWidget.setTabText": ('int', 'str'),
- "PySide2.QtWidgets.QTabWidget.setTabToolTip": ('int', 'str'),
- "PySide2.QtWidgets.QTabWidget.setTabWhatsThis": ('int', 'str'),
- "PySide2.QtWidgets.QTabWidget.setTabsClosable": ('bool',),
- "PySide2.QtWidgets.QTabWidget.setUsesScrollButtons": ('bool',),
- "PySide2.QtWidgets.QTabWidget.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QTabWidget.sizeHint": (),
- "PySide2.QtWidgets.QTabWidget.tabBar": (),
- "PySide2.QtWidgets.QTabWidget.tabBarAutoHide": (),
- "PySide2.QtWidgets.QTabWidget.tabIcon": ('int',),
- "PySide2.QtWidgets.QTabWidget.tabInserted": ('int',),
- "PySide2.QtWidgets.QTabWidget.tabPosition": (),
- "PySide2.QtWidgets.QTabWidget.tabRemoved": ('int',),
- "PySide2.QtWidgets.QTabWidget.tabShape": (),
- "PySide2.QtWidgets.QTabWidget.tabText": ('int',),
- "PySide2.QtWidgets.QTabWidget.tabToolTip": ('int',),
- "PySide2.QtWidgets.QTabWidget.tabWhatsThis": ('int',),
- "PySide2.QtWidgets.QTabWidget.tabsClosable": (),
- "PySide2.QtWidgets.QTabWidget.usesScrollButtons": (),
- "PySide2.QtWidgets.QTabWidget.widget": ('int',),
-# class PySide2.QtWidgets.QTableView:
- "PySide2.QtWidgets.QTableView.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QTableView.clearSpans": (),
- "PySide2.QtWidgets.QTableView.columnAt": ('int',),
- "PySide2.QtWidgets.QTableView.columnCountChanged": ('int', 'int'),
- "PySide2.QtWidgets.QTableView.columnMoved": ('int', 'int', 'int'),
- "PySide2.QtWidgets.QTableView.columnResized": ('int', 'int', 'int'),
- "PySide2.QtWidgets.QTableView.columnSpan": ('int', 'int'),
- "PySide2.QtWidgets.QTableView.columnViewportPosition": ('int',),
- "PySide2.QtWidgets.QTableView.columnWidth": ('int',),
- "PySide2.QtWidgets.QTableView.currentChanged": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QTableView.doItemsLayout": (),
- "PySide2.QtWidgets.QTableView.gridStyle": (),
- "PySide2.QtWidgets.QTableView.hideColumn": ('int',),
- "PySide2.QtWidgets.QTableView.hideRow": ('int',),
- "PySide2.QtWidgets.QTableView.horizontalHeader": (),
- "PySide2.QtWidgets.QTableView.horizontalOffset": (),
- "PySide2.QtWidgets.QTableView.horizontalScrollbarAction": ('int',),
- "PySide2.QtWidgets.QTableView.indexAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QTableView.isColumnHidden": ('int',),
- "PySide2.QtWidgets.QTableView.isCornerButtonEnabled": (),
- "PySide2.QtWidgets.QTableView.isIndexHidden": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTableView.isRowHidden": ('int',),
- "PySide2.QtWidgets.QTableView.isSortingEnabled": (),
- "PySide2.QtWidgets.QTableView.moveCursor": ('PySide2.QtWidgets.QAbstractItemView.CursorAction', 'PySide2.QtCore.Qt.KeyboardModifiers'),
- "PySide2.QtWidgets.QTableView.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QTableView.resizeColumnToContents": ('int',),
- "PySide2.QtWidgets.QTableView.resizeColumnsToContents": (),
- "PySide2.QtWidgets.QTableView.resizeRowToContents": ('int',),
- "PySide2.QtWidgets.QTableView.resizeRowsToContents": (),
- "PySide2.QtWidgets.QTableView.rowAt": ('int',),
- "PySide2.QtWidgets.QTableView.rowCountChanged": ('int', 'int'),
- "PySide2.QtWidgets.QTableView.rowHeight": ('int',),
- "PySide2.QtWidgets.QTableView.rowMoved": ('int', 'int', 'int'),
- "PySide2.QtWidgets.QTableView.rowResized": ('int', 'int', 'int'),
- "PySide2.QtWidgets.QTableView.rowSpan": ('int', 'int'),
- "PySide2.QtWidgets.QTableView.rowViewportPosition": ('int',),
- "PySide2.QtWidgets.QTableView.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QTableView.scrollTo": ('PySide2.QtCore.QModelIndex', 'PySide2.QtWidgets.QAbstractItemView.ScrollHint'),
- "PySide2.QtWidgets.QTableView.selectColumn": ('int',),
- "PySide2.QtWidgets.QTableView.selectRow": ('int',),
- "PySide2.QtWidgets.QTableView.selectedIndexes": (),
- "PySide2.QtWidgets.QTableView.selectionChanged": ('PySide2.QtCore.QItemSelection', 'PySide2.QtCore.QItemSelection'),
- "PySide2.QtWidgets.QTableView.setColumnHidden": ('int', 'bool'),
- "PySide2.QtWidgets.QTableView.setColumnWidth": ('int', 'int'),
- "PySide2.QtWidgets.QTableView.setCornerButtonEnabled": ('bool',),
- "PySide2.QtWidgets.QTableView.setGridStyle": ('PySide2.QtCore.Qt.PenStyle',),
- "PySide2.QtWidgets.QTableView.setHorizontalHeader": ('PySide2.QtWidgets.QHeaderView',),
- "PySide2.QtWidgets.QTableView.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QTableView.setRootIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTableView.setRowHeight": ('int', 'int'),
- "PySide2.QtWidgets.QTableView.setRowHidden": ('int', 'bool'),
- "PySide2.QtWidgets.QTableView.setSelection": ('PySide2.QtCore.QRect', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags'),
- "PySide2.QtWidgets.QTableView.setSelectionModel": ('PySide2.QtCore.QItemSelectionModel',),
- "PySide2.QtWidgets.QTableView.setShowGrid": ('bool',),
- "PySide2.QtWidgets.QTableView.setSortingEnabled": ('bool',),
- "PySide2.QtWidgets.QTableView.setSpan": ('int', 'int', 'int', 'int'),
- "PySide2.QtWidgets.QTableView.setVerticalHeader": ('PySide2.QtWidgets.QHeaderView',),
- "PySide2.QtWidgets.QTableView.setWordWrap": ('bool',),
- "PySide2.QtWidgets.QTableView.showColumn": ('int',),
- "PySide2.QtWidgets.QTableView.showGrid": (),
- "PySide2.QtWidgets.QTableView.showRow": ('int',),
- "PySide2.QtWidgets.QTableView.sizeHintForColumn": ('int',),
- "PySide2.QtWidgets.QTableView.sizeHintForRow": ('int',),
- "PySide2.QtWidgets.QTableView.sortByColumn": [('int',), ('int', 'PySide2.QtCore.Qt.SortOrder')],
- "PySide2.QtWidgets.QTableView.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QTableView.updateGeometries": (),
- "PySide2.QtWidgets.QTableView.verticalHeader": (),
- "PySide2.QtWidgets.QTableView.verticalOffset": (),
- "PySide2.QtWidgets.QTableView.verticalScrollbarAction": ('int',),
- "PySide2.QtWidgets.QTableView.viewOptions": (),
- "PySide2.QtWidgets.QTableView.viewportSizeHint": (),
- "PySide2.QtWidgets.QTableView.visualRect": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTableView.visualRegionForSelection": ('PySide2.QtCore.QItemSelection',),
- "PySide2.QtWidgets.QTableView.wordWrap": (),
-# class PySide2.QtWidgets.QTableWidget:
- "PySide2.QtWidgets.QTableWidget.__init__": [('PySide2.QtWidgets.QWidget',), ('int', 'int', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QTableWidget.cellWidget": ('int', 'int'),
- "PySide2.QtWidgets.QTableWidget.clear": (),
- "PySide2.QtWidgets.QTableWidget.clearContents": (),
- "PySide2.QtWidgets.QTableWidget.closePersistentEditor": [('PySide2.QtCore.QModelIndex',), ('PySide2.QtWidgets.QTableWidgetItem',)],
- "PySide2.QtWidgets.QTableWidget.column": ('PySide2.QtWidgets.QTableWidgetItem',),
- "PySide2.QtWidgets.QTableWidget.columnCount": (),
- "PySide2.QtWidgets.QTableWidget.currentColumn": (),
- "PySide2.QtWidgets.QTableWidget.currentItem": (),
- "PySide2.QtWidgets.QTableWidget.currentRow": (),
- "PySide2.QtWidgets.QTableWidget.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QTableWidget.dropMimeData": ('int', 'int', 'PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction'),
- "PySide2.QtWidgets.QTableWidget.editItem": ('PySide2.QtWidgets.QTableWidgetItem',),
- "PySide2.QtWidgets.QTableWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QTableWidget.findItems": ('str', 'PySide2.QtCore.Qt.MatchFlags'),
- "PySide2.QtWidgets.QTableWidget.horizontalHeaderItem": ('int',),
- "PySide2.QtWidgets.QTableWidget.indexFromItem": ('PySide2.QtWidgets.QTableWidgetItem',),
- "PySide2.QtWidgets.QTableWidget.insertColumn": ('int',),
- "PySide2.QtWidgets.QTableWidget.insertRow": ('int',),
- "PySide2.QtWidgets.QTableWidget.isItemSelected": ('PySide2.QtWidgets.QTableWidgetItem',),
- "PySide2.QtWidgets.QTableWidget.isPersistentEditorOpen": [('PySide2.QtCore.QModelIndex',), ('PySide2.QtWidgets.QTableWidgetItem',)],
- "PySide2.QtWidgets.QTableWidget.isSortingEnabled": (),
- "PySide2.QtWidgets.QTableWidget.item": ('int', 'int'),
- "PySide2.QtWidgets.QTableWidget.itemAt": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtWidgets.QTableWidget.itemFromIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTableWidget.itemPrototype": (),
- "PySide2.QtWidgets.QTableWidget.items": ('PySide2.QtCore.QMimeData',),
- "PySide2.QtWidgets.QTableWidget.mimeData": ('typing.Sequence',),
- "PySide2.QtWidgets.QTableWidget.mimeTypes": (),
- "PySide2.QtWidgets.QTableWidget.openPersistentEditor": [('PySide2.QtCore.QModelIndex',), ('PySide2.QtWidgets.QTableWidgetItem',)],
- "PySide2.QtWidgets.QTableWidget.removeCellWidget": ('int', 'int'),
- "PySide2.QtWidgets.QTableWidget.removeColumn": ('int',),
- "PySide2.QtWidgets.QTableWidget.removeRow": ('int',),
- "PySide2.QtWidgets.QTableWidget.row": ('PySide2.QtWidgets.QTableWidgetItem',),
- "PySide2.QtWidgets.QTableWidget.rowCount": (),
- "PySide2.QtWidgets.QTableWidget.scrollToItem": ('PySide2.QtWidgets.QTableWidgetItem', 'PySide2.QtWidgets.QAbstractItemView.ScrollHint'),
- "PySide2.QtWidgets.QTableWidget.selectedItems": (),
- "PySide2.QtWidgets.QTableWidget.selectedRanges": (),
- "PySide2.QtWidgets.QTableWidget.setCellWidget": ('int', 'int', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QTableWidget.setColumnCount": ('int',),
- "PySide2.QtWidgets.QTableWidget.setCurrentCell": [('int', 'int'), ('int', 'int', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags')],
- "PySide2.QtWidgets.QTableWidget.setCurrentItem": [('PySide2.QtWidgets.QTableWidgetItem',), ('PySide2.QtWidgets.QTableWidgetItem', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags')],
- "PySide2.QtWidgets.QTableWidget.setHorizontalHeaderItem": ('int', 'PySide2.QtWidgets.QTableWidgetItem'),
- "PySide2.QtWidgets.QTableWidget.setHorizontalHeaderLabels": ('typing.Sequence',),
- "PySide2.QtWidgets.QTableWidget.setItem": ('int', 'int', 'PySide2.QtWidgets.QTableWidgetItem'),
- "PySide2.QtWidgets.QTableWidget.setItemPrototype": ('PySide2.QtWidgets.QTableWidgetItem',),
- "PySide2.QtWidgets.QTableWidget.setItemSelected": ('PySide2.QtWidgets.QTableWidgetItem', 'bool'),
- "PySide2.QtWidgets.QTableWidget.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QTableWidget.setRangeSelected": ('PySide2.QtWidgets.QTableWidgetSelectionRange', 'bool'),
- "PySide2.QtWidgets.QTableWidget.setRowCount": ('int',),
- "PySide2.QtWidgets.QTableWidget.setSortingEnabled": ('bool',),
- "PySide2.QtWidgets.QTableWidget.setVerticalHeaderItem": ('int', 'PySide2.QtWidgets.QTableWidgetItem'),
- "PySide2.QtWidgets.QTableWidget.setVerticalHeaderLabels": ('typing.Sequence',),
- "PySide2.QtWidgets.QTableWidget.sortItems": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtWidgets.QTableWidget.supportedDropActions": (),
- "PySide2.QtWidgets.QTableWidget.takeHorizontalHeaderItem": ('int',),
- "PySide2.QtWidgets.QTableWidget.takeItem": ('int', 'int'),
- "PySide2.QtWidgets.QTableWidget.takeVerticalHeaderItem": ('int',),
- "PySide2.QtWidgets.QTableWidget.verticalHeaderItem": ('int',),
- "PySide2.QtWidgets.QTableWidget.visualColumn": ('int',),
- "PySide2.QtWidgets.QTableWidget.visualItemRect": ('PySide2.QtWidgets.QTableWidgetItem',),
- "PySide2.QtWidgets.QTableWidget.visualRow": ('int',),
-# class PySide2.QtWidgets.QTableWidgetItem:
-# class PySide2.QtWidgets.QTableWidgetItem.ItemType:
- "PySide2.QtWidgets.QTableWidgetItem.__init__": [('PySide2.QtGui.QIcon', 'str', 'int'), ('PySide2.QtWidgets.QTableWidgetItem',), ('int',), ('str', 'int')],
- "PySide2.QtWidgets.QTableWidgetItem.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QTableWidgetItem.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QTableWidgetItem.background": (),
- "PySide2.QtWidgets.QTableWidgetItem.backgroundColor": (),
- "PySide2.QtWidgets.QTableWidgetItem.checkState": (),
- "PySide2.QtWidgets.QTableWidgetItem.clone": (),
- "PySide2.QtWidgets.QTableWidgetItem.column": (),
- "PySide2.QtWidgets.QTableWidgetItem.data": ('int',),
- "PySide2.QtWidgets.QTableWidgetItem.flags": (),
- "PySide2.QtWidgets.QTableWidgetItem.font": (),
- "PySide2.QtWidgets.QTableWidgetItem.foreground": (),
- "PySide2.QtWidgets.QTableWidgetItem.icon": (),
- "PySide2.QtWidgets.QTableWidgetItem.isSelected": (),
- "PySide2.QtWidgets.QTableWidgetItem.read": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QTableWidgetItem.row": (),
- "PySide2.QtWidgets.QTableWidgetItem.setBackground": ('PySide2.QtGui.QBrush',),
- "PySide2.QtWidgets.QTableWidgetItem.setBackgroundColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QTableWidgetItem.setCheckState": ('PySide2.QtCore.Qt.CheckState',),
- "PySide2.QtWidgets.QTableWidgetItem.setData": ('int', 'typing.Any'),
- "PySide2.QtWidgets.QTableWidgetItem.setFlags": ('PySide2.QtCore.Qt.ItemFlags',),
- "PySide2.QtWidgets.QTableWidgetItem.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QTableWidgetItem.setForeground": ('PySide2.QtGui.QBrush',),
- "PySide2.QtWidgets.QTableWidgetItem.setIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtWidgets.QTableWidgetItem.setSelected": ('bool',),
- "PySide2.QtWidgets.QTableWidgetItem.setSizeHint": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QTableWidgetItem.setStatusTip": ('str',),
- "PySide2.QtWidgets.QTableWidgetItem.setText": ('str',),
- "PySide2.QtWidgets.QTableWidgetItem.setTextAlignment": ('int',),
- "PySide2.QtWidgets.QTableWidgetItem.setTextColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QTableWidgetItem.setToolTip": ('str',),
- "PySide2.QtWidgets.QTableWidgetItem.setWhatsThis": ('str',),
- "PySide2.QtWidgets.QTableWidgetItem.sizeHint": (),
- "PySide2.QtWidgets.QTableWidgetItem.statusTip": (),
- "PySide2.QtWidgets.QTableWidgetItem.tableWidget": (),
- "PySide2.QtWidgets.QTableWidgetItem.text": (),
- "PySide2.QtWidgets.QTableWidgetItem.textAlignment": (),
- "PySide2.QtWidgets.QTableWidgetItem.textColor": (),
- "PySide2.QtWidgets.QTableWidgetItem.toolTip": (),
- "PySide2.QtWidgets.QTableWidgetItem.type": (),
- "PySide2.QtWidgets.QTableWidgetItem.whatsThis": (),
- "PySide2.QtWidgets.QTableWidgetItem.write": ('PySide2.QtCore.QDataStream',),
-# class PySide2.QtWidgets.QTableWidgetSelectionRange:
- "PySide2.QtWidgets.QTableWidgetSelectionRange.__init__": [(), ('PySide2.QtWidgets.QTableWidgetSelectionRange',), ('int', 'int', 'int', 'int')],
- "PySide2.QtWidgets.QTableWidgetSelectionRange.__copy__": (),
- "PySide2.QtWidgets.QTableWidgetSelectionRange.bottomRow": (),
- "PySide2.QtWidgets.QTableWidgetSelectionRange.columnCount": (),
- "PySide2.QtWidgets.QTableWidgetSelectionRange.leftColumn": (),
- "PySide2.QtWidgets.QTableWidgetSelectionRange.rightColumn": (),
- "PySide2.QtWidgets.QTableWidgetSelectionRange.rowCount": (),
- "PySide2.QtWidgets.QTableWidgetSelectionRange.topRow": (),
-# class PySide2.QtWidgets.QTapAndHoldGesture:
- "PySide2.QtWidgets.QTapAndHoldGesture.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QTapAndHoldGesture.position": (),
- "PySide2.QtWidgets.QTapAndHoldGesture.setPosition": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QTapAndHoldGesture.setTimeout": ('int',),
- "PySide2.QtWidgets.QTapAndHoldGesture.timeout": (),
-# class PySide2.QtWidgets.QTapGesture:
- "PySide2.QtWidgets.QTapGesture.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QTapGesture.position": (),
- "PySide2.QtWidgets.QTapGesture.setPosition": ('PySide2.QtCore.QPointF',),
-# class PySide2.QtWidgets.QTextBrowser:
- "PySide2.QtWidgets.QTextBrowser.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QTextBrowser.backward": (),
- "PySide2.QtWidgets.QTextBrowser.backwardHistoryCount": (),
- "PySide2.QtWidgets.QTextBrowser.clearHistory": (),
- "PySide2.QtWidgets.QTextBrowser.doSetSource": ('PySide2.QtCore.QUrl', 'PySide2.QtGui.QTextDocument.ResourceType'),
- "PySide2.QtWidgets.QTextBrowser.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QTextBrowser.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QTextBrowser.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QTextBrowser.forward": (),
- "PySide2.QtWidgets.QTextBrowser.forwardHistoryCount": (),
- "PySide2.QtWidgets.QTextBrowser.historyTitle": ('int',),
- "PySide2.QtWidgets.QTextBrowser.historyUrl": ('int',),
- "PySide2.QtWidgets.QTextBrowser.home": (),
- "PySide2.QtWidgets.QTextBrowser.isBackwardAvailable": (),
- "PySide2.QtWidgets.QTextBrowser.isForwardAvailable": (),
- "PySide2.QtWidgets.QTextBrowser.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QTextBrowser.loadResource": ('int', 'PySide2.QtCore.QUrl'),
- "PySide2.QtWidgets.QTextBrowser.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTextBrowser.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTextBrowser.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTextBrowser.openExternalLinks": (),
- "PySide2.QtWidgets.QTextBrowser.openLinks": (),
- "PySide2.QtWidgets.QTextBrowser.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QTextBrowser.reload": (),
- "PySide2.QtWidgets.QTextBrowser.searchPaths": (),
- "PySide2.QtWidgets.QTextBrowser.setOpenExternalLinks": ('bool',),
- "PySide2.QtWidgets.QTextBrowser.setOpenLinks": ('bool',),
- "PySide2.QtWidgets.QTextBrowser.setSearchPaths": ('typing.Sequence',),
- "PySide2.QtWidgets.QTextBrowser.setSource": [('PySide2.QtCore.QUrl',), ('PySide2.QtCore.QUrl', 'PySide2.QtGui.QTextDocument.ResourceType')],
- "PySide2.QtWidgets.QTextBrowser.source": (),
- "PySide2.QtWidgets.QTextBrowser.sourceType": (),
-# class PySide2.QtWidgets.QTextEdit:
-# class PySide2.QtWidgets.QTextEdit.AutoFormatting:
-# class PySide2.QtWidgets.QTextEdit.AutoFormattingFlag:
-# class PySide2.QtWidgets.QTextEdit.ExtraSelection:
- "PySide2.QtWidgets.QTextEdit.ExtraSelection.__init__": [(), ('PySide2.QtWidgets.QTextEdit.ExtraSelection',)],
- "PySide2.QtWidgets.QTextEdit.ExtraSelection.__copy__": (),
-# class PySide2.QtWidgets.QTextEdit.LineWrapMode:
- "PySide2.QtWidgets.QTextEdit.__init__": [('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QTextEdit.acceptRichText": (),
- "PySide2.QtWidgets.QTextEdit.alignment": (),
- "PySide2.QtWidgets.QTextEdit.anchorAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QTextEdit.append": ('str',),
- "PySide2.QtWidgets.QTextEdit.autoFormatting": (),
- "PySide2.QtWidgets.QTextEdit.canInsertFromMimeData": ('PySide2.QtCore.QMimeData',),
- "PySide2.QtWidgets.QTextEdit.canPaste": (),
- "PySide2.QtWidgets.QTextEdit.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QTextEdit.clear": (),
- "PySide2.QtWidgets.QTextEdit.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QTextEdit.copy": (),
- "PySide2.QtWidgets.QTextEdit.createMimeDataFromSelection": (),
- "PySide2.QtWidgets.QTextEdit.createStandardContextMenu": [(), ('PySide2.QtCore.QPoint',)],
- "PySide2.QtWidgets.QTextEdit.currentCharFormat": (),
- "PySide2.QtWidgets.QTextEdit.currentFont": (),
- "PySide2.QtWidgets.QTextEdit.cursorForPosition": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QTextEdit.cursorRect": [(), ('PySide2.QtGui.QTextCursor',)],
- "PySide2.QtWidgets.QTextEdit.cursorWidth": (),
- "PySide2.QtWidgets.QTextEdit.cut": (),
- "PySide2.QtWidgets.QTextEdit.doSetTextCursor": ('PySide2.QtGui.QTextCursor',),
- "PySide2.QtWidgets.QTextEdit.document": (),
- "PySide2.QtWidgets.QTextEdit.documentTitle": (),
- "PySide2.QtWidgets.QTextEdit.dragEnterEvent": ('PySide2.QtGui.QDragEnterEvent',),
- "PySide2.QtWidgets.QTextEdit.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtWidgets.QTextEdit.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtWidgets.QTextEdit.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QTextEdit.ensureCursorVisible": (),
- "PySide2.QtWidgets.QTextEdit.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QTextEdit.extraSelections": (),
- "PySide2.QtWidgets.QTextEdit.find": [('PySide2.QtCore.QRegExp', 'PySide2.QtGui.QTextDocument.FindFlags'), ('PySide2.QtCore.QRegularExpression', 'PySide2.QtGui.QTextDocument.FindFlags'), ('str', 'PySide2.QtGui.QTextDocument.FindFlags')],
- "PySide2.QtWidgets.QTextEdit.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QTextEdit.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QTextEdit.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QTextEdit.fontFamily": (),
- "PySide2.QtWidgets.QTextEdit.fontItalic": (),
- "PySide2.QtWidgets.QTextEdit.fontPointSize": (),
- "PySide2.QtWidgets.QTextEdit.fontUnderline": (),
- "PySide2.QtWidgets.QTextEdit.fontWeight": (),
- "PySide2.QtWidgets.QTextEdit.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QTextEdit.inputMethodQuery": [('PySide2.QtCore.Qt.InputMethodQuery',), ('PySide2.QtCore.Qt.InputMethodQuery', 'typing.Any')],
- "PySide2.QtWidgets.QTextEdit.insertFromMimeData": ('PySide2.QtCore.QMimeData',),
- "PySide2.QtWidgets.QTextEdit.insertHtml": ('str',),
- "PySide2.QtWidgets.QTextEdit.insertPlainText": ('str',),
- "PySide2.QtWidgets.QTextEdit.isReadOnly": (),
- "PySide2.QtWidgets.QTextEdit.isUndoRedoEnabled": (),
- "PySide2.QtWidgets.QTextEdit.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QTextEdit.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QTextEdit.lineWrapColumnOrWidth": (),
- "PySide2.QtWidgets.QTextEdit.lineWrapMode": (),
- "PySide2.QtWidgets.QTextEdit.loadResource": ('int', 'PySide2.QtCore.QUrl'),
- "PySide2.QtWidgets.QTextEdit.mergeCurrentCharFormat": ('PySide2.QtGui.QTextCharFormat',),
- "PySide2.QtWidgets.QTextEdit.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTextEdit.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTextEdit.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTextEdit.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTextEdit.moveCursor": ('PySide2.QtGui.QTextCursor.MoveOperation', 'PySide2.QtGui.QTextCursor.MoveMode'),
- "PySide2.QtWidgets.QTextEdit.overwriteMode": (),
- "PySide2.QtWidgets.QTextEdit.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QTextEdit.paste": (),
- "PySide2.QtWidgets.QTextEdit.placeholderText": (),
- "PySide2.QtWidgets.QTextEdit.print_": ('PySide2.QtGui.QPagedPaintDevice',),
- "PySide2.QtWidgets.QTextEdit.redo": (),
- "PySide2.QtWidgets.QTextEdit.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QTextEdit.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QTextEdit.scrollToAnchor": ('str',),
- "PySide2.QtWidgets.QTextEdit.selectAll": (),
- "PySide2.QtWidgets.QTextEdit.setAcceptRichText": ('bool',),
- "PySide2.QtWidgets.QTextEdit.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QTextEdit.setAutoFormatting": ('PySide2.QtWidgets.QTextEdit.AutoFormatting',),
- "PySide2.QtWidgets.QTextEdit.setCurrentCharFormat": ('PySide2.QtGui.QTextCharFormat',),
- "PySide2.QtWidgets.QTextEdit.setCurrentFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QTextEdit.setCursorWidth": ('int',),
- "PySide2.QtWidgets.QTextEdit.setDocument": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtWidgets.QTextEdit.setDocumentTitle": ('str',),
- "PySide2.QtWidgets.QTextEdit.setExtraSelections": ('typing.Sequence',),
- "PySide2.QtWidgets.QTextEdit.setFontFamily": ('str',),
- "PySide2.QtWidgets.QTextEdit.setFontItalic": ('bool',),
- "PySide2.QtWidgets.QTextEdit.setFontPointSize": ('float',),
- "PySide2.QtWidgets.QTextEdit.setFontUnderline": ('bool',),
- "PySide2.QtWidgets.QTextEdit.setFontWeight": ('int',),
- "PySide2.QtWidgets.QTextEdit.setHtml": ('str',),
- "PySide2.QtWidgets.QTextEdit.setLineWrapColumnOrWidth": ('int',),
- "PySide2.QtWidgets.QTextEdit.setLineWrapMode": ('PySide2.QtWidgets.QTextEdit.LineWrapMode',),
- "PySide2.QtWidgets.QTextEdit.setMarkdown": ('str',),
- "PySide2.QtWidgets.QTextEdit.setOverwriteMode": ('bool',),
- "PySide2.QtWidgets.QTextEdit.setPlaceholderText": ('str',),
- "PySide2.QtWidgets.QTextEdit.setPlainText": ('str',),
- "PySide2.QtWidgets.QTextEdit.setReadOnly": ('bool',),
- "PySide2.QtWidgets.QTextEdit.setTabChangesFocus": ('bool',),
- "PySide2.QtWidgets.QTextEdit.setTabStopDistance": ('float',),
- "PySide2.QtWidgets.QTextEdit.setTabStopWidth": ('int',),
- "PySide2.QtWidgets.QTextEdit.setText": ('str',),
- "PySide2.QtWidgets.QTextEdit.setTextBackgroundColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QTextEdit.setTextColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QTextEdit.setTextCursor": ('PySide2.QtGui.QTextCursor',),
- "PySide2.QtWidgets.QTextEdit.setTextInteractionFlags": ('PySide2.QtCore.Qt.TextInteractionFlags',),
- "PySide2.QtWidgets.QTextEdit.setUndoRedoEnabled": ('bool',),
- "PySide2.QtWidgets.QTextEdit.setWordWrapMode": ('PySide2.QtGui.QTextOption.WrapMode',),
- "PySide2.QtWidgets.QTextEdit.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QTextEdit.tabChangesFocus": (),
- "PySide2.QtWidgets.QTextEdit.tabStopDistance": (),
- "PySide2.QtWidgets.QTextEdit.tabStopWidth": (),
- "PySide2.QtWidgets.QTextEdit.textBackgroundColor": (),
- "PySide2.QtWidgets.QTextEdit.textColor": (),
- "PySide2.QtWidgets.QTextEdit.textCursor": (),
- "PySide2.QtWidgets.QTextEdit.textInteractionFlags": (),
- "PySide2.QtWidgets.QTextEdit.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QTextEdit.toHtml": (),
- "PySide2.QtWidgets.QTextEdit.toMarkdown": ('PySide2.QtGui.QTextDocument.MarkdownFeatures',),
- "PySide2.QtWidgets.QTextEdit.toPlainText": (),
- "PySide2.QtWidgets.QTextEdit.undo": (),
- "PySide2.QtWidgets.QTextEdit.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
- "PySide2.QtWidgets.QTextEdit.wordWrapMode": (),
- "PySide2.QtWidgets.QTextEdit.zoomIn": ('int',),
- "PySide2.QtWidgets.QTextEdit.zoomInF": ('float',),
- "PySide2.QtWidgets.QTextEdit.zoomOut": ('int',),
-# class PySide2.QtWidgets.QTileRules:
- "PySide2.QtWidgets.QTileRules.__init__": [('PySide2.QtCore.Qt.TileRule',), ('PySide2.QtCore.Qt.TileRule', 'PySide2.QtCore.Qt.TileRule'), ('PySide2.QtWidgets.QTileRules',)],
- "PySide2.QtWidgets.QTileRules.__copy__": (),
-# class PySide2.QtWidgets.QTimeEdit:
- "PySide2.QtWidgets.QTimeEdit.__init__": [('PySide2.QtCore.QTime', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
-# class PySide2.QtWidgets.QToolBar:
- "PySide2.QtWidgets.QToolBar.__init__": [('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QToolBar.actionAt": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtWidgets.QToolBar.actionEvent": ('PySide2.QtGui.QActionEvent',),
- "PySide2.QtWidgets.QToolBar.actionGeometry": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QToolBar.addAction": [('PySide2.QtGui.QIcon', 'str'), ('PySide2.QtGui.QIcon', 'str', 'PySide2.QtCore.QObject', 'bytes'), ('PySide2.QtWidgets.QAction',), ('str',), ('str', 'PySide2.QtCore.QObject', 'bytes')],
- "PySide2.QtWidgets.QToolBar.addSeparator": (),
- "PySide2.QtWidgets.QToolBar.addWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QToolBar.allowedAreas": (),
- "PySide2.QtWidgets.QToolBar.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QToolBar.clear": (),
- "PySide2.QtWidgets.QToolBar.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QToolBar.iconSize": (),
- "PySide2.QtWidgets.QToolBar.initStyleOption": ('PySide2.QtWidgets.QStyleOptionToolBar',),
- "PySide2.QtWidgets.QToolBar.insertSeparator": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QToolBar.insertWidget": ('PySide2.QtWidgets.QAction', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QToolBar.isAreaAllowed": ('PySide2.QtCore.Qt.ToolBarArea',),
- "PySide2.QtWidgets.QToolBar.isFloatable": (),
- "PySide2.QtWidgets.QToolBar.isFloating": (),
- "PySide2.QtWidgets.QToolBar.isMovable": (),
- "PySide2.QtWidgets.QToolBar.orientation": (),
- "PySide2.QtWidgets.QToolBar.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QToolBar.setAllowedAreas": ('PySide2.QtCore.Qt.ToolBarAreas',),
- "PySide2.QtWidgets.QToolBar.setFloatable": ('bool',),
- "PySide2.QtWidgets.QToolBar.setIconSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QToolBar.setMovable": ('bool',),
- "PySide2.QtWidgets.QToolBar.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtWidgets.QToolBar.setToolButtonStyle": ('PySide2.QtCore.Qt.ToolButtonStyle',),
- "PySide2.QtWidgets.QToolBar.toggleViewAction": (),
- "PySide2.QtWidgets.QToolBar.toolButtonStyle": (),
- "PySide2.QtWidgets.QToolBar.widgetForAction": ('PySide2.QtWidgets.QAction',),
-# class PySide2.QtWidgets.QToolBox:
- "PySide2.QtWidgets.QToolBox.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QToolBox.addItem": [('PySide2.QtWidgets.QWidget', 'PySide2.QtGui.QIcon', 'str'), ('PySide2.QtWidgets.QWidget', 'str')],
- "PySide2.QtWidgets.QToolBox.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QToolBox.count": (),
- "PySide2.QtWidgets.QToolBox.currentIndex": (),
- "PySide2.QtWidgets.QToolBox.currentWidget": (),
- "PySide2.QtWidgets.QToolBox.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QToolBox.indexOf": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QToolBox.insertItem": [('int', 'PySide2.QtWidgets.QWidget', 'PySide2.QtGui.QIcon', 'str'), ('int', 'PySide2.QtWidgets.QWidget', 'str')],
- "PySide2.QtWidgets.QToolBox.isItemEnabled": ('int',),
- "PySide2.QtWidgets.QToolBox.itemIcon": ('int',),
- "PySide2.QtWidgets.QToolBox.itemInserted": ('int',),
- "PySide2.QtWidgets.QToolBox.itemRemoved": ('int',),
- "PySide2.QtWidgets.QToolBox.itemText": ('int',),
- "PySide2.QtWidgets.QToolBox.itemToolTip": ('int',),
- "PySide2.QtWidgets.QToolBox.removeItem": ('int',),
- "PySide2.QtWidgets.QToolBox.setCurrentIndex": ('int',),
- "PySide2.QtWidgets.QToolBox.setCurrentWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QToolBox.setItemEnabled": ('int', 'bool'),
- "PySide2.QtWidgets.QToolBox.setItemIcon": ('int', 'PySide2.QtGui.QIcon'),
- "PySide2.QtWidgets.QToolBox.setItemText": ('int', 'str'),
- "PySide2.QtWidgets.QToolBox.setItemToolTip": ('int', 'str'),
- "PySide2.QtWidgets.QToolBox.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QToolBox.widget": ('int',),
-# class PySide2.QtWidgets.QToolButton:
-# class PySide2.QtWidgets.QToolButton.ToolButtonPopupMode:
- "PySide2.QtWidgets.QToolButton.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QToolButton.actionEvent": ('PySide2.QtGui.QActionEvent',),
- "PySide2.QtWidgets.QToolButton.arrowType": (),
- "PySide2.QtWidgets.QToolButton.autoRaise": (),
- "PySide2.QtWidgets.QToolButton.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QToolButton.defaultAction": (),
- "PySide2.QtWidgets.QToolButton.enterEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QToolButton.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QToolButton.hitButton": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QToolButton.initStyleOption": ('PySide2.QtWidgets.QStyleOptionToolButton',),
- "PySide2.QtWidgets.QToolButton.leaveEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QToolButton.menu": (),
- "PySide2.QtWidgets.QToolButton.minimumSizeHint": (),
- "PySide2.QtWidgets.QToolButton.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QToolButton.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QToolButton.nextCheckState": (),
- "PySide2.QtWidgets.QToolButton.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QToolButton.popupMode": (),
- "PySide2.QtWidgets.QToolButton.setArrowType": ('PySide2.QtCore.Qt.ArrowType',),
- "PySide2.QtWidgets.QToolButton.setAutoRaise": ('bool',),
- "PySide2.QtWidgets.QToolButton.setDefaultAction": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QToolButton.setMenu": ('PySide2.QtWidgets.QMenu',),
- "PySide2.QtWidgets.QToolButton.setPopupMode": ('PySide2.QtWidgets.QToolButton.ToolButtonPopupMode',),
- "PySide2.QtWidgets.QToolButton.setToolButtonStyle": ('PySide2.QtCore.Qt.ToolButtonStyle',),
- "PySide2.QtWidgets.QToolButton.showMenu": (),
- "PySide2.QtWidgets.QToolButton.sizeHint": (),
- "PySide2.QtWidgets.QToolButton.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QToolButton.toolButtonStyle": (),
-# class PySide2.QtWidgets.QToolTip:
- "PySide2.QtWidgets.QToolTip.font": (),
- "PySide2.QtWidgets.QToolTip.hideText": (),
- "PySide2.QtWidgets.QToolTip.isVisible": (),
- "PySide2.QtWidgets.QToolTip.palette": (),
- "PySide2.QtWidgets.QToolTip.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QToolTip.setPalette": ('PySide2.QtGui.QPalette',),
- "PySide2.QtWidgets.QToolTip.showText": [('PySide2.QtCore.QPoint', 'str', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtCore.QPoint', 'str', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QRect'), ('PySide2.QtCore.QPoint', 'str', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QRect', 'int')],
- "PySide2.QtWidgets.QToolTip.text": (),
-# class PySide2.QtWidgets.QTreeView:
- "PySide2.QtWidgets.QTreeView.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QTreeView.allColumnsShowFocus": (),
- "PySide2.QtWidgets.QTreeView.autoExpandDelay": (),
- "PySide2.QtWidgets.QTreeView.collapse": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeView.collapseAll": (),
- "PySide2.QtWidgets.QTreeView.columnAt": ('int',),
- "PySide2.QtWidgets.QTreeView.columnCountChanged": ('int', 'int'),
- "PySide2.QtWidgets.QTreeView.columnMoved": (),
- "PySide2.QtWidgets.QTreeView.columnResized": ('int', 'int', 'int'),
- "PySide2.QtWidgets.QTreeView.columnViewportPosition": ('int',),
- "PySide2.QtWidgets.QTreeView.columnWidth": ('int',),
- "PySide2.QtWidgets.QTreeView.currentChanged": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QTreeView.dataChanged": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex', 'typing.List'),
- "PySide2.QtWidgets.QTreeView.doItemsLayout": (),
- "PySide2.QtWidgets.QTreeView.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtWidgets.QTreeView.drawBranches": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRect', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QTreeView.drawRow": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QTreeView.drawTree": ('PySide2.QtGui.QPainter', 'PySide2.QtGui.QRegion'),
- "PySide2.QtWidgets.QTreeView.expand": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeView.expandAll": (),
- "PySide2.QtWidgets.QTreeView.expandRecursively": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtWidgets.QTreeView.expandToDepth": ('int',),
- "PySide2.QtWidgets.QTreeView.expandsOnDoubleClick": (),
- "PySide2.QtWidgets.QTreeView.header": (),
- "PySide2.QtWidgets.QTreeView.hideColumn": ('int',),
- "PySide2.QtWidgets.QTreeView.horizontalOffset": (),
- "PySide2.QtWidgets.QTreeView.horizontalScrollbarAction": ('int',),
- "PySide2.QtWidgets.QTreeView.indentation": (),
- "PySide2.QtWidgets.QTreeView.indexAbove": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeView.indexAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QTreeView.indexBelow": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeView.indexRowSizeHint": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeView.isAnimated": (),
- "PySide2.QtWidgets.QTreeView.isColumnHidden": ('int',),
- "PySide2.QtWidgets.QTreeView.isExpanded": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeView.isFirstColumnSpanned": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QTreeView.isHeaderHidden": (),
- "PySide2.QtWidgets.QTreeView.isIndexHidden": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeView.isRowHidden": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QTreeView.isSortingEnabled": (),
- "PySide2.QtWidgets.QTreeView.itemsExpandable": (),
- "PySide2.QtWidgets.QTreeView.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QTreeView.keyboardSearch": ('str',),
- "PySide2.QtWidgets.QTreeView.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTreeView.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTreeView.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTreeView.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTreeView.moveCursor": ('PySide2.QtWidgets.QAbstractItemView.CursorAction', 'PySide2.QtCore.Qt.KeyboardModifiers'),
- "PySide2.QtWidgets.QTreeView.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QTreeView.reexpand": (),
- "PySide2.QtWidgets.QTreeView.reset": (),
- "PySide2.QtWidgets.QTreeView.resetIndentation": (),
- "PySide2.QtWidgets.QTreeView.resizeColumnToContents": ('int',),
- "PySide2.QtWidgets.QTreeView.rootIsDecorated": (),
- "PySide2.QtWidgets.QTreeView.rowHeight": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeView.rowsAboutToBeRemoved": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QTreeView.rowsInserted": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QTreeView.rowsRemoved": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QTreeView.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QTreeView.scrollTo": ('PySide2.QtCore.QModelIndex', 'PySide2.QtWidgets.QAbstractItemView.ScrollHint'),
- "PySide2.QtWidgets.QTreeView.selectAll": (),
- "PySide2.QtWidgets.QTreeView.selectedIndexes": (),
- "PySide2.QtWidgets.QTreeView.selectionChanged": ('PySide2.QtCore.QItemSelection', 'PySide2.QtCore.QItemSelection'),
- "PySide2.QtWidgets.QTreeView.setAllColumnsShowFocus": ('bool',),
- "PySide2.QtWidgets.QTreeView.setAnimated": ('bool',),
- "PySide2.QtWidgets.QTreeView.setAutoExpandDelay": ('int',),
- "PySide2.QtWidgets.QTreeView.setColumnHidden": ('int', 'bool'),
- "PySide2.QtWidgets.QTreeView.setColumnWidth": ('int', 'int'),
- "PySide2.QtWidgets.QTreeView.setExpanded": ('PySide2.QtCore.QModelIndex', 'bool'),
- "PySide2.QtWidgets.QTreeView.setExpandsOnDoubleClick": ('bool',),
- "PySide2.QtWidgets.QTreeView.setFirstColumnSpanned": ('int', 'PySide2.QtCore.QModelIndex', 'bool'),
- "PySide2.QtWidgets.QTreeView.setHeader": ('PySide2.QtWidgets.QHeaderView',),
- "PySide2.QtWidgets.QTreeView.setHeaderHidden": ('bool',),
- "PySide2.QtWidgets.QTreeView.setIndentation": ('int',),
- "PySide2.QtWidgets.QTreeView.setItemsExpandable": ('bool',),
- "PySide2.QtWidgets.QTreeView.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QTreeView.setRootIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeView.setRootIsDecorated": ('bool',),
- "PySide2.QtWidgets.QTreeView.setRowHidden": ('int', 'PySide2.QtCore.QModelIndex', 'bool'),
- "PySide2.QtWidgets.QTreeView.setSelection": ('PySide2.QtCore.QRect', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags'),
- "PySide2.QtWidgets.QTreeView.setSelectionModel": ('PySide2.QtCore.QItemSelectionModel',),
- "PySide2.QtWidgets.QTreeView.setSortingEnabled": ('bool',),
- "PySide2.QtWidgets.QTreeView.setTreePosition": ('int',),
- "PySide2.QtWidgets.QTreeView.setUniformRowHeights": ('bool',),
- "PySide2.QtWidgets.QTreeView.setWordWrap": ('bool',),
- "PySide2.QtWidgets.QTreeView.showColumn": ('int',),
- "PySide2.QtWidgets.QTreeView.sizeHintForColumn": ('int',),
- "PySide2.QtWidgets.QTreeView.sortByColumn": [('int',), ('int', 'PySide2.QtCore.Qt.SortOrder')],
- "PySide2.QtWidgets.QTreeView.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QTreeView.treePosition": (),
- "PySide2.QtWidgets.QTreeView.uniformRowHeights": (),
- "PySide2.QtWidgets.QTreeView.updateGeometries": (),
- "PySide2.QtWidgets.QTreeView.verticalOffset": (),
- "PySide2.QtWidgets.QTreeView.verticalScrollbarValueChanged": ('int',),
- "PySide2.QtWidgets.QTreeView.viewportEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QTreeView.viewportSizeHint": (),
- "PySide2.QtWidgets.QTreeView.visualRect": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeView.visualRegionForSelection": ('PySide2.QtCore.QItemSelection',),
- "PySide2.QtWidgets.QTreeView.wordWrap": (),
-# class PySide2.QtWidgets.QTreeWidget:
- "PySide2.QtWidgets.QTreeWidget.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QTreeWidget.addTopLevelItem": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.addTopLevelItems": ('typing.Sequence',),
- "PySide2.QtWidgets.QTreeWidget.clear": (),
- "PySide2.QtWidgets.QTreeWidget.closePersistentEditor": [('PySide2.QtCore.QModelIndex',), ('PySide2.QtWidgets.QTreeWidgetItem', 'int')],
- "PySide2.QtWidgets.QTreeWidget.collapseItem": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.columnCount": (),
- "PySide2.QtWidgets.QTreeWidget.currentColumn": (),
- "PySide2.QtWidgets.QTreeWidget.currentItem": (),
- "PySide2.QtWidgets.QTreeWidget.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QTreeWidget.dropMimeData": ('PySide2.QtWidgets.QTreeWidgetItem', 'int', 'PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction'),
- "PySide2.QtWidgets.QTreeWidget.editItem": ('PySide2.QtWidgets.QTreeWidgetItem', 'int'),
- "PySide2.QtWidgets.QTreeWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QTreeWidget.expandItem": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.findItems": ('str', 'PySide2.QtCore.Qt.MatchFlags', 'int'),
- "PySide2.QtWidgets.QTreeWidget.headerItem": (),
- "PySide2.QtWidgets.QTreeWidget.indexFromItem": ('PySide2.QtWidgets.QTreeWidgetItem', 'int'),
- "PySide2.QtWidgets.QTreeWidget.indexOfTopLevelItem": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.insertTopLevelItem": ('int', 'PySide2.QtWidgets.QTreeWidgetItem'),
- "PySide2.QtWidgets.QTreeWidget.insertTopLevelItems": ('int', 'typing.Sequence'),
- "PySide2.QtWidgets.QTreeWidget.invisibleRootItem": (),
- "PySide2.QtWidgets.QTreeWidget.isFirstItemColumnSpanned": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.isItemExpanded": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.isItemHidden": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.isItemSelected": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.isPersistentEditorOpen": [('PySide2.QtCore.QModelIndex',), ('PySide2.QtWidgets.QTreeWidgetItem', 'int')],
- "PySide2.QtWidgets.QTreeWidget.itemAbove": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.itemAt": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtWidgets.QTreeWidget.itemBelow": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.itemFromIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeWidget.itemWidget": ('PySide2.QtWidgets.QTreeWidgetItem', 'int'),
- "PySide2.QtWidgets.QTreeWidget.items": ('PySide2.QtCore.QMimeData',),
- "PySide2.QtWidgets.QTreeWidget.mimeData": ('typing.Sequence',),
- "PySide2.QtWidgets.QTreeWidget.mimeTypes": (),
- "PySide2.QtWidgets.QTreeWidget.openPersistentEditor": [('PySide2.QtCore.QModelIndex',), ('PySide2.QtWidgets.QTreeWidgetItem', 'int')],
- "PySide2.QtWidgets.QTreeWidget.removeItemWidget": ('PySide2.QtWidgets.QTreeWidgetItem', 'int'),
- "PySide2.QtWidgets.QTreeWidget.scrollToItem": ('PySide2.QtWidgets.QTreeWidgetItem', 'PySide2.QtWidgets.QAbstractItemView.ScrollHint'),
- "PySide2.QtWidgets.QTreeWidget.selectedItems": (),
- "PySide2.QtWidgets.QTreeWidget.setColumnCount": ('int',),
- "PySide2.QtWidgets.QTreeWidget.setCurrentItem": [('PySide2.QtWidgets.QTreeWidgetItem',), ('PySide2.QtWidgets.QTreeWidgetItem', 'int'), ('PySide2.QtWidgets.QTreeWidgetItem', 'int', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags')],
- "PySide2.QtWidgets.QTreeWidget.setFirstItemColumnSpanned": ('PySide2.QtWidgets.QTreeWidgetItem', 'bool'),
- "PySide2.QtWidgets.QTreeWidget.setHeaderItem": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.setHeaderLabel": ('str',),
- "PySide2.QtWidgets.QTreeWidget.setHeaderLabels": ('typing.Sequence',),
- "PySide2.QtWidgets.QTreeWidget.setItemExpanded": ('PySide2.QtWidgets.QTreeWidgetItem', 'bool'),
- "PySide2.QtWidgets.QTreeWidget.setItemHidden": ('PySide2.QtWidgets.QTreeWidgetItem', 'bool'),
- "PySide2.QtWidgets.QTreeWidget.setItemSelected": ('PySide2.QtWidgets.QTreeWidgetItem', 'bool'),
- "PySide2.QtWidgets.QTreeWidget.setItemWidget": ('PySide2.QtWidgets.QTreeWidgetItem', 'int', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QTreeWidget.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QTreeWidget.setSelectionModel": ('PySide2.QtCore.QItemSelectionModel',),
- "PySide2.QtWidgets.QTreeWidget.sortColumn": (),
- "PySide2.QtWidgets.QTreeWidget.sortItems": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtWidgets.QTreeWidget.supportedDropActions": (),
- "PySide2.QtWidgets.QTreeWidget.takeTopLevelItem": ('int',),
- "PySide2.QtWidgets.QTreeWidget.topLevelItem": ('int',),
- "PySide2.QtWidgets.QTreeWidget.topLevelItemCount": (),
- "PySide2.QtWidgets.QTreeWidget.visualItemRect": ('PySide2.QtWidgets.QTreeWidgetItem',),
-# class PySide2.QtWidgets.QTreeWidgetItem:
-# class PySide2.QtWidgets.QTreeWidgetItem.ChildIndicatorPolicy:
-# class PySide2.QtWidgets.QTreeWidgetItem.ItemType:
- "PySide2.QtWidgets.QTreeWidgetItem.__init__": [('PySide2.QtWidgets.QTreeWidget', 'PySide2.QtWidgets.QTreeWidgetItem', 'int'), ('PySide2.QtWidgets.QTreeWidget', 'int'), ('PySide2.QtWidgets.QTreeWidget', 'typing.Sequence', 'int'), ('PySide2.QtWidgets.QTreeWidgetItem',), ('PySide2.QtWidgets.QTreeWidgetItem', 'PySide2.QtWidgets.QTreeWidgetItem', 'int'), ('PySide2.QtWidgets.QTreeWidgetItem', 'int'), ('PySide2.QtWidgets.QTreeWidgetItem', 'typing.Sequence', 'int'), ('int',), ('typing.Sequence', 'int')],
- "PySide2.QtWidgets.QTreeWidgetItem.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QTreeWidgetItem.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QTreeWidgetItem.addChild": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidgetItem.addChildren": ('typing.Sequence',),
- "PySide2.QtWidgets.QTreeWidgetItem.background": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.backgroundColor": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.checkState": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.child": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.childCount": (),
- "PySide2.QtWidgets.QTreeWidgetItem.childIndicatorPolicy": (),
- "PySide2.QtWidgets.QTreeWidgetItem.clone": (),
- "PySide2.QtWidgets.QTreeWidgetItem.columnCount": (),
- "PySide2.QtWidgets.QTreeWidgetItem.data": ('int', 'int'),
- "PySide2.QtWidgets.QTreeWidgetItem.emitDataChanged": (),
- "PySide2.QtWidgets.QTreeWidgetItem.flags": (),
- "PySide2.QtWidgets.QTreeWidgetItem.font": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.foreground": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.icon": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.indexOfChild": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidgetItem.insertChild": ('int', 'PySide2.QtWidgets.QTreeWidgetItem'),
- "PySide2.QtWidgets.QTreeWidgetItem.insertChildren": ('int', 'typing.Sequence'),
- "PySide2.QtWidgets.QTreeWidgetItem.isDisabled": (),
- "PySide2.QtWidgets.QTreeWidgetItem.isExpanded": (),
- "PySide2.QtWidgets.QTreeWidgetItem.isFirstColumnSpanned": (),
- "PySide2.QtWidgets.QTreeWidgetItem.isHidden": (),
- "PySide2.QtWidgets.QTreeWidgetItem.isSelected": (),
- "PySide2.QtWidgets.QTreeWidgetItem.parent": (),
- "PySide2.QtWidgets.QTreeWidgetItem.read": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QTreeWidgetItem.removeChild": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidgetItem.setBackground": ('int', 'PySide2.QtGui.QBrush'),
- "PySide2.QtWidgets.QTreeWidgetItem.setBackgroundColor": ('int', 'PySide2.QtGui.QColor'),
- "PySide2.QtWidgets.QTreeWidgetItem.setCheckState": ('int', 'PySide2.QtCore.Qt.CheckState'),
- "PySide2.QtWidgets.QTreeWidgetItem.setChildIndicatorPolicy": ('PySide2.QtWidgets.QTreeWidgetItem.ChildIndicatorPolicy',),
- "PySide2.QtWidgets.QTreeWidgetItem.setData": ('int', 'int', 'typing.Any'),
- "PySide2.QtWidgets.QTreeWidgetItem.setDisabled": ('bool',),
- "PySide2.QtWidgets.QTreeWidgetItem.setExpanded": ('bool',),
- "PySide2.QtWidgets.QTreeWidgetItem.setFirstColumnSpanned": ('bool',),
- "PySide2.QtWidgets.QTreeWidgetItem.setFlags": ('PySide2.QtCore.Qt.ItemFlags',),
- "PySide2.QtWidgets.QTreeWidgetItem.setFont": ('int', 'PySide2.QtGui.QFont'),
- "PySide2.QtWidgets.QTreeWidgetItem.setForeground": ('int', 'PySide2.QtGui.QBrush'),
- "PySide2.QtWidgets.QTreeWidgetItem.setHidden": ('bool',),
- "PySide2.QtWidgets.QTreeWidgetItem.setIcon": ('int', 'PySide2.QtGui.QIcon'),
- "PySide2.QtWidgets.QTreeWidgetItem.setSelected": ('bool',),
- "PySide2.QtWidgets.QTreeWidgetItem.setSizeHint": ('int', 'PySide2.QtCore.QSize'),
- "PySide2.QtWidgets.QTreeWidgetItem.setStatusTip": ('int', 'str'),
- "PySide2.QtWidgets.QTreeWidgetItem.setText": ('int', 'str'),
- "PySide2.QtWidgets.QTreeWidgetItem.setTextAlignment": ('int', 'int'),
- "PySide2.QtWidgets.QTreeWidgetItem.setTextColor": ('int', 'PySide2.QtGui.QColor'),
- "PySide2.QtWidgets.QTreeWidgetItem.setToolTip": ('int', 'str'),
- "PySide2.QtWidgets.QTreeWidgetItem.setWhatsThis": ('int', 'str'),
- "PySide2.QtWidgets.QTreeWidgetItem.sizeHint": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.sortChildren": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtWidgets.QTreeWidgetItem.statusTip": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.takeChild": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.takeChildren": (),
- "PySide2.QtWidgets.QTreeWidgetItem.text": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.textAlignment": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.textColor": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.toolTip": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.treeWidget": (),
- "PySide2.QtWidgets.QTreeWidgetItem.type": (),
- "PySide2.QtWidgets.QTreeWidgetItem.whatsThis": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.write": ('PySide2.QtCore.QDataStream',),
-# class PySide2.QtWidgets.QTreeWidgetItemIterator:
-# class PySide2.QtWidgets.QTreeWidgetItemIterator.IteratorFlag:
-# class PySide2.QtWidgets.QTreeWidgetItemIterator.IteratorFlags:
- "PySide2.QtWidgets.QTreeWidgetItemIterator.__init__": [('PySide2.QtWidgets.QTreeWidget', 'PySide2.QtWidgets.QTreeWidgetItemIterator.IteratorFlags'), ('PySide2.QtWidgets.QTreeWidgetItem', 'PySide2.QtWidgets.QTreeWidgetItemIterator.IteratorFlags'), ('PySide2.QtWidgets.QTreeWidgetItemIterator',)],
- "PySide2.QtWidgets.QTreeWidgetItemIterator.__copy__": (),
- "PySide2.QtWidgets.QTreeWidgetItemIterator.__iadd__": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItemIterator.__isub__": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItemIterator.__iter__": (),
- "PySide2.QtWidgets.QTreeWidgetItemIterator.value": (),
-# class PySide2.QtWidgets.QUndoCommand:
- "PySide2.QtWidgets.QUndoCommand.__init__": [('PySide2.QtWidgets.QUndoCommand',), ('str', 'PySide2.QtWidgets.QUndoCommand')],
- "PySide2.QtWidgets.QUndoCommand.actionText": (),
- "PySide2.QtWidgets.QUndoCommand.child": ('int',),
- "PySide2.QtWidgets.QUndoCommand.childCount": (),
- "PySide2.QtWidgets.QUndoCommand.id": (),
- "PySide2.QtWidgets.QUndoCommand.isObsolete": (),
- "PySide2.QtWidgets.QUndoCommand.mergeWith": ('PySide2.QtWidgets.QUndoCommand',),
- "PySide2.QtWidgets.QUndoCommand.redo": (),
- "PySide2.QtWidgets.QUndoCommand.setObsolete": ('bool',),
- "PySide2.QtWidgets.QUndoCommand.setText": ('str',),
- "PySide2.QtWidgets.QUndoCommand.text": (),
- "PySide2.QtWidgets.QUndoCommand.undo": (),
-# class PySide2.QtWidgets.QUndoGroup:
- "PySide2.QtWidgets.QUndoGroup.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QUndoGroup.activeStack": (),
- "PySide2.QtWidgets.QUndoGroup.addStack": ('PySide2.QtWidgets.QUndoStack',),
- "PySide2.QtWidgets.QUndoGroup.canRedo": (),
- "PySide2.QtWidgets.QUndoGroup.canUndo": (),
- "PySide2.QtWidgets.QUndoGroup.createRedoAction": ('PySide2.QtCore.QObject', 'str'),
- "PySide2.QtWidgets.QUndoGroup.createUndoAction": ('PySide2.QtCore.QObject', 'str'),
- "PySide2.QtWidgets.QUndoGroup.isClean": (),
- "PySide2.QtWidgets.QUndoGroup.redo": (),
- "PySide2.QtWidgets.QUndoGroup.redoText": (),
- "PySide2.QtWidgets.QUndoGroup.removeStack": ('PySide2.QtWidgets.QUndoStack',),
- "PySide2.QtWidgets.QUndoGroup.setActiveStack": ('PySide2.QtWidgets.QUndoStack',),
- "PySide2.QtWidgets.QUndoGroup.stacks": (),
- "PySide2.QtWidgets.QUndoGroup.undo": (),
- "PySide2.QtWidgets.QUndoGroup.undoText": (),
-# class PySide2.QtWidgets.QUndoStack:
- "PySide2.QtWidgets.QUndoStack.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QUndoStack.beginMacro": ('str',),
- "PySide2.QtWidgets.QUndoStack.canRedo": (),
- "PySide2.QtWidgets.QUndoStack.canUndo": (),
- "PySide2.QtWidgets.QUndoStack.cleanIndex": (),
- "PySide2.QtWidgets.QUndoStack.clear": (),
- "PySide2.QtWidgets.QUndoStack.command": ('int',),
- "PySide2.QtWidgets.QUndoStack.count": (),
- "PySide2.QtWidgets.QUndoStack.createRedoAction": ('PySide2.QtCore.QObject', 'str'),
- "PySide2.QtWidgets.QUndoStack.createUndoAction": ('PySide2.QtCore.QObject', 'str'),
- "PySide2.QtWidgets.QUndoStack.endMacro": (),
- "PySide2.QtWidgets.QUndoStack.index": (),
- "PySide2.QtWidgets.QUndoStack.isActive": (),
- "PySide2.QtWidgets.QUndoStack.isClean": (),
- "PySide2.QtWidgets.QUndoStack.push": ('PySide2.QtWidgets.QUndoCommand',),
- "PySide2.QtWidgets.QUndoStack.redo": (),
- "PySide2.QtWidgets.QUndoStack.redoText": (),
- "PySide2.QtWidgets.QUndoStack.resetClean": (),
- "PySide2.QtWidgets.QUndoStack.setActive": ('bool',),
- "PySide2.QtWidgets.QUndoStack.setClean": (),
- "PySide2.QtWidgets.QUndoStack.setIndex": ('int',),
- "PySide2.QtWidgets.QUndoStack.setUndoLimit": ('int',),
- "PySide2.QtWidgets.QUndoStack.text": ('int',),
- "PySide2.QtWidgets.QUndoStack.undo": (),
- "PySide2.QtWidgets.QUndoStack.undoLimit": (),
- "PySide2.QtWidgets.QUndoStack.undoText": (),
-# class PySide2.QtWidgets.QUndoView:
- "PySide2.QtWidgets.QUndoView.__init__": [('PySide2.QtWidgets.QUndoGroup', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QUndoStack', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QUndoView.cleanIcon": (),
- "PySide2.QtWidgets.QUndoView.emptyLabel": (),
- "PySide2.QtWidgets.QUndoView.group": (),
- "PySide2.QtWidgets.QUndoView.setCleanIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtWidgets.QUndoView.setEmptyLabel": ('str',),
- "PySide2.QtWidgets.QUndoView.setGroup": ('PySide2.QtWidgets.QUndoGroup',),
- "PySide2.QtWidgets.QUndoView.setStack": ('PySide2.QtWidgets.QUndoStack',),
- "PySide2.QtWidgets.QUndoView.stack": (),
-# class PySide2.QtWidgets.QVBoxLayout:
- "PySide2.QtWidgets.QVBoxLayout.__init__": [(), ('PySide2.QtWidgets.QWidget',)],
-# class PySide2.QtWidgets.QWhatsThis:
- "PySide2.QtWidgets.QWhatsThis.createAction": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QWhatsThis.enterWhatsThisMode": (),
- "PySide2.QtWidgets.QWhatsThis.hideText": (),
- "PySide2.QtWidgets.QWhatsThis.inWhatsThisMode": (),
- "PySide2.QtWidgets.QWhatsThis.leaveWhatsThisMode": (),
- "PySide2.QtWidgets.QWhatsThis.showText": ('PySide2.QtCore.QPoint', 'str', 'PySide2.QtWidgets.QWidget'),
-# class PySide2.QtWidgets.QWidget:
-# class PySide2.QtWidgets.QWidget.RenderFlag:
-# class PySide2.QtWidgets.QWidget.RenderFlags:
- "PySide2.QtWidgets.QWidget.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QWidget.acceptDrops": (),
- "PySide2.QtWidgets.QWidget.accessibleDescription": (),
- "PySide2.QtWidgets.QWidget.accessibleName": (),
- "PySide2.QtWidgets.QWidget.actionEvent": ('PySide2.QtGui.QActionEvent',),
- "PySide2.QtWidgets.QWidget.actions": (),
- "PySide2.QtWidgets.QWidget.activateWindow": (),
- "PySide2.QtWidgets.QWidget.addAction": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QWidget.addActions": ('typing.Sequence',),
- "PySide2.QtWidgets.QWidget.adjustSize": (),
- "PySide2.QtWidgets.QWidget.autoFillBackground": (),
- "PySide2.QtWidgets.QWidget.backgroundRole": (),
- "PySide2.QtWidgets.QWidget.backingStore": (),
- "PySide2.QtWidgets.QWidget.baseSize": (),
- "PySide2.QtWidgets.QWidget.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QWidget.childAt": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtWidgets.QWidget.childrenRect": (),
- "PySide2.QtWidgets.QWidget.childrenRegion": (),
- "PySide2.QtWidgets.QWidget.clearFocus": (),
- "PySide2.QtWidgets.QWidget.clearMask": (),
- "PySide2.QtWidgets.QWidget.close": (),
- "PySide2.QtWidgets.QWidget.closeEvent": ('PySide2.QtGui.QCloseEvent',),
- "PySide2.QtWidgets.QWidget.contentsMargins": (),
- "PySide2.QtWidgets.QWidget.contentsRect": (),
- "PySide2.QtWidgets.QWidget.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QWidget.contextMenuPolicy": (),
- "PySide2.QtWidgets.QWidget.create": ('int', 'bool', 'bool'),
- "PySide2.QtWidgets.QWidget.createWinId": (),
- "PySide2.QtWidgets.QWidget.createWindowContainer": ('PySide2.QtGui.QWindow', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QWidget.cursor": (),
- "PySide2.QtWidgets.QWidget.destroy": ('bool', 'bool'),
- "PySide2.QtWidgets.QWidget.devType": (),
- "PySide2.QtWidgets.QWidget.dragEnterEvent": ('PySide2.QtGui.QDragEnterEvent',),
- "PySide2.QtWidgets.QWidget.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtWidgets.QWidget.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtWidgets.QWidget.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QWidget.effectiveWinId": (),
- "PySide2.QtWidgets.QWidget.ensurePolished": (),
- "PySide2.QtWidgets.QWidget.enterEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QWidget.find": ('int',),
- "PySide2.QtWidgets.QWidget.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QWidget.focusNextChild": (),
- "PySide2.QtWidgets.QWidget.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QWidget.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QWidget.focusPolicy": (),
- "PySide2.QtWidgets.QWidget.focusPreviousChild": (),
- "PySide2.QtWidgets.QWidget.focusProxy": (),
- "PySide2.QtWidgets.QWidget.focusWidget": (),
- "PySide2.QtWidgets.QWidget.font": (),
- "PySide2.QtWidgets.QWidget.fontInfo": (),
- "PySide2.QtWidgets.QWidget.fontMetrics": (),
- "PySide2.QtWidgets.QWidget.foregroundRole": (),
- "PySide2.QtWidgets.QWidget.frameGeometry": (),
- "PySide2.QtWidgets.QWidget.frameSize": (),
- "PySide2.QtWidgets.QWidget.geometry": (),
- "PySide2.QtWidgets.QWidget.getContentsMargins": (),
- "PySide2.QtWidgets.QWidget.grab": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QWidget.grabGesture": ('PySide2.QtCore.Qt.GestureType', 'PySide2.QtCore.Qt.GestureFlags'),
- "PySide2.QtWidgets.QWidget.grabKeyboard": (),
- "PySide2.QtWidgets.QWidget.grabMouse": [(), ('PySide2.QtGui.QCursor',)],
- "PySide2.QtWidgets.QWidget.grabShortcut": ('PySide2.QtGui.QKeySequence', 'PySide2.QtCore.Qt.ShortcutContext'),
- "PySide2.QtWidgets.QWidget.graphicsEffect": (),
- "PySide2.QtWidgets.QWidget.graphicsProxyWidget": (),
- "PySide2.QtWidgets.QWidget.hasFocus": (),
- "PySide2.QtWidgets.QWidget.hasHeightForWidth": (),
- "PySide2.QtWidgets.QWidget.hasMouseTracking": (),
- "PySide2.QtWidgets.QWidget.hasTabletTracking": (),
- "PySide2.QtWidgets.QWidget.height": (),
- "PySide2.QtWidgets.QWidget.heightForWidth": ('int',),
- "PySide2.QtWidgets.QWidget.hide": (),
- "PySide2.QtWidgets.QWidget.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWidgets.QWidget.initPainter": ('PySide2.QtGui.QPainter',),
- "PySide2.QtWidgets.QWidget.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QWidget.inputMethodHints": (),
- "PySide2.QtWidgets.QWidget.inputMethodQuery": ('PySide2.QtCore.Qt.InputMethodQuery',),
- "PySide2.QtWidgets.QWidget.insertAction": ('PySide2.QtWidgets.QAction', 'PySide2.QtWidgets.QAction'),
- "PySide2.QtWidgets.QWidget.insertActions": ('PySide2.QtWidgets.QAction', 'typing.Sequence'),
- "PySide2.QtWidgets.QWidget.internalWinId": (),
- "PySide2.QtWidgets.QWidget.isActiveWindow": (),
- "PySide2.QtWidgets.QWidget.isAncestorOf": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWidget.isEnabled": (),
- "PySide2.QtWidgets.QWidget.isEnabledTo": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWidget.isEnabledToTLW": (),
- "PySide2.QtWidgets.QWidget.isFullScreen": (),
- "PySide2.QtWidgets.QWidget.isHidden": (),
- "PySide2.QtWidgets.QWidget.isLeftToRight": (),
- "PySide2.QtWidgets.QWidget.isMaximized": (),
- "PySide2.QtWidgets.QWidget.isMinimized": (),
- "PySide2.QtWidgets.QWidget.isModal": (),
- "PySide2.QtWidgets.QWidget.isRightToLeft": (),
- "PySide2.QtWidgets.QWidget.isTopLevel": (),
- "PySide2.QtWidgets.QWidget.isVisible": (),
- "PySide2.QtWidgets.QWidget.isVisibleTo": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWidget.isWindow": (),
- "PySide2.QtWidgets.QWidget.isWindowModified": (),
- "PySide2.QtWidgets.QWidget.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QWidget.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QWidget.keyboardGrabber": (),
- "PySide2.QtWidgets.QWidget.layout": (),
- "PySide2.QtWidgets.QWidget.layoutDirection": (),
- "PySide2.QtWidgets.QWidget.leaveEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QWidget.locale": (),
- "PySide2.QtWidgets.QWidget.lower": (),
- "PySide2.QtWidgets.QWidget.mapFrom": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QPoint'),
- "PySide2.QtWidgets.QWidget.mapFromGlobal": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QWidget.mapFromParent": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QWidget.mapTo": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QPoint'),
- "PySide2.QtWidgets.QWidget.mapToGlobal": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QWidget.mapToParent": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QWidget.mask": (),
- "PySide2.QtWidgets.QWidget.maximumHeight": (),
- "PySide2.QtWidgets.QWidget.maximumSize": (),
- "PySide2.QtWidgets.QWidget.maximumWidth": (),
- "PySide2.QtWidgets.QWidget.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtWidgets.QWidget.minimumHeight": (),
- "PySide2.QtWidgets.QWidget.minimumSize": (),
- "PySide2.QtWidgets.QWidget.minimumSizeHint": (),
- "PySide2.QtWidgets.QWidget.minimumWidth": (),
- "PySide2.QtWidgets.QWidget.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QWidget.mouseGrabber": (),
- "PySide2.QtWidgets.QWidget.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QWidget.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QWidget.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QWidget.move": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtWidgets.QWidget.moveEvent": ('PySide2.QtGui.QMoveEvent',),
- "PySide2.QtWidgets.QWidget.nativeEvent": ('PySide2.QtCore.QByteArray', 'int'),
- "PySide2.QtWidgets.QWidget.nativeParentWidget": (),
- "PySide2.QtWidgets.QWidget.nextInFocusChain": (),
- "PySide2.QtWidgets.QWidget.normalGeometry": (),
- "PySide2.QtWidgets.QWidget.overrideWindowFlags": ('PySide2.QtCore.Qt.WindowFlags',),
- "PySide2.QtWidgets.QWidget.overrideWindowState": ('PySide2.QtCore.Qt.WindowStates',),
- "PySide2.QtWidgets.QWidget.paintEngine": (),
- "PySide2.QtWidgets.QWidget.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QWidget.palette": (),
- "PySide2.QtWidgets.QWidget.parentWidget": (),
- "PySide2.QtWidgets.QWidget.pos": (),
- "PySide2.QtWidgets.QWidget.previousInFocusChain": (),
- "PySide2.QtWidgets.QWidget.raise_": (),
- "PySide2.QtWidgets.QWidget.rect": (),
- "PySide2.QtWidgets.QWidget.redirected": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QWidget.releaseKeyboard": (),
- "PySide2.QtWidgets.QWidget.releaseMouse": (),
- "PySide2.QtWidgets.QWidget.releaseShortcut": ('int',),
- "PySide2.QtWidgets.QWidget.removeAction": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QWidget.render": [('PySide2.QtGui.QPaintDevice', 'PySide2.QtCore.QPoint', 'PySide2.QtGui.QRegion', 'PySide2.QtWidgets.QWidget.RenderFlags'), ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QPoint', 'PySide2.QtGui.QRegion', 'PySide2.QtWidgets.QWidget.RenderFlags')],
- "PySide2.QtWidgets.QWidget.repaint": [(), ('PySide2.QtCore.QRect',), ('PySide2.QtGui.QRegion',), ('int', 'int', 'int', 'int')],
- "PySide2.QtWidgets.QWidget.resize": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtWidgets.QWidget.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QWidget.restoreGeometry": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWidgets.QWidget.saveGeometry": (),
- "PySide2.QtWidgets.QWidget.screen": (),
- "PySide2.QtWidgets.QWidget.scroll": [('int', 'int'), ('int', 'int', 'PySide2.QtCore.QRect')],
- "PySide2.QtWidgets.QWidget.setAcceptDrops": ('bool',),
- "PySide2.QtWidgets.QWidget.setAccessibleDescription": ('str',),
- "PySide2.QtWidgets.QWidget.setAccessibleName": ('str',),
- "PySide2.QtWidgets.QWidget.setAttribute": ('PySide2.QtCore.Qt.WidgetAttribute', 'bool'),
- "PySide2.QtWidgets.QWidget.setAutoFillBackground": ('bool',),
- "PySide2.QtWidgets.QWidget.setBackgroundRole": ('PySide2.QtGui.QPalette.ColorRole',),
- "PySide2.QtWidgets.QWidget.setBaseSize": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtWidgets.QWidget.setContentsMargins": [('PySide2.QtCore.QMargins',), ('int', 'int', 'int', 'int')],
- "PySide2.QtWidgets.QWidget.setContextMenuPolicy": ('PySide2.QtCore.Qt.ContextMenuPolicy',),
- "PySide2.QtWidgets.QWidget.setCursor": ('PySide2.QtGui.QCursor',),
- "PySide2.QtWidgets.QWidget.setDisabled": ('bool',),
- "PySide2.QtWidgets.QWidget.setEnabled": ('bool',),
- "PySide2.QtWidgets.QWidget.setFixedHeight": ('int',),
- "PySide2.QtWidgets.QWidget.setFixedSize": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtWidgets.QWidget.setFixedWidth": ('int',),
- "PySide2.QtWidgets.QWidget.setFocus": [(), ('PySide2.QtCore.Qt.FocusReason',)],
- "PySide2.QtWidgets.QWidget.setFocusPolicy": ('PySide2.QtCore.Qt.FocusPolicy',),
- "PySide2.QtWidgets.QWidget.setFocusProxy": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWidget.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QWidget.setForegroundRole": ('PySide2.QtGui.QPalette.ColorRole',),
- "PySide2.QtWidgets.QWidget.setGeometry": [('PySide2.QtCore.QRect',), ('int', 'int', 'int', 'int')],
- "PySide2.QtWidgets.QWidget.setGraphicsEffect": ('PySide2.QtWidgets.QGraphicsEffect',),
- "PySide2.QtWidgets.QWidget.setHidden": ('bool',),
- "PySide2.QtWidgets.QWidget.setInputMethodHints": ('PySide2.QtCore.Qt.InputMethodHints',),
- "PySide2.QtWidgets.QWidget.setLayout": ('PySide2.QtWidgets.QLayout',),
- "PySide2.QtWidgets.QWidget.setLayoutDirection": ('PySide2.QtCore.Qt.LayoutDirection',),
- "PySide2.QtWidgets.QWidget.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtWidgets.QWidget.setMask": [('PySide2.QtGui.QBitmap',), ('PySide2.QtGui.QRegion',)],
- "PySide2.QtWidgets.QWidget.setMaximumHeight": ('int',),
- "PySide2.QtWidgets.QWidget.setMaximumSize": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtWidgets.QWidget.setMaximumWidth": ('int',),
- "PySide2.QtWidgets.QWidget.setMinimumHeight": ('int',),
- "PySide2.QtWidgets.QWidget.setMinimumSize": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtWidgets.QWidget.setMinimumWidth": ('int',),
- "PySide2.QtWidgets.QWidget.setMouseTracking": ('bool',),
- "PySide2.QtWidgets.QWidget.setPalette": ('PySide2.QtGui.QPalette',),
- "PySide2.QtWidgets.QWidget.setParent": [('PySide2.QtWidgets.QWidget',), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags')],
- "PySide2.QtWidgets.QWidget.setShortcutAutoRepeat": ('int', 'bool'),
- "PySide2.QtWidgets.QWidget.setShortcutEnabled": ('int', 'bool'),
- "PySide2.QtWidgets.QWidget.setSizeIncrement": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtWidgets.QWidget.setSizePolicy": [('PySide2.QtWidgets.QSizePolicy',), ('PySide2.QtWidgets.QSizePolicy.Policy', 'PySide2.QtWidgets.QSizePolicy.Policy')],
- "PySide2.QtWidgets.QWidget.setStatusTip": ('str',),
- "PySide2.QtWidgets.QWidget.setStyle": ('PySide2.QtWidgets.QStyle',),
- "PySide2.QtWidgets.QWidget.setStyleSheet": ('str',),
- "PySide2.QtWidgets.QWidget.setTabOrder": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QWidget.setTabletTracking": ('bool',),
- "PySide2.QtWidgets.QWidget.setToolTip": ('str',),
- "PySide2.QtWidgets.QWidget.setToolTipDuration": ('int',),
- "PySide2.QtWidgets.QWidget.setUpdatesEnabled": ('bool',),
- "PySide2.QtWidgets.QWidget.setVisible": ('bool',),
- "PySide2.QtWidgets.QWidget.setWhatsThis": ('str',),
- "PySide2.QtWidgets.QWidget.setWindowFilePath": ('str',),
- "PySide2.QtWidgets.QWidget.setWindowFlag": ('PySide2.QtCore.Qt.WindowType', 'bool'),
- "PySide2.QtWidgets.QWidget.setWindowFlags": ('PySide2.QtCore.Qt.WindowFlags',),
- "PySide2.QtWidgets.QWidget.setWindowIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtWidgets.QWidget.setWindowIconText": ('str',),
- "PySide2.QtWidgets.QWidget.setWindowModality": ('PySide2.QtCore.Qt.WindowModality',),
- "PySide2.QtWidgets.QWidget.setWindowModified": ('bool',),
- "PySide2.QtWidgets.QWidget.setWindowOpacity": ('float',),
- "PySide2.QtWidgets.QWidget.setWindowRole": ('str',),
- "PySide2.QtWidgets.QWidget.setWindowState": ('PySide2.QtCore.Qt.WindowStates',),
- "PySide2.QtWidgets.QWidget.setWindowTitle": ('str',),
- "PySide2.QtWidgets.QWidget.sharedPainter": (),
- "PySide2.QtWidgets.QWidget.show": (),
- "PySide2.QtWidgets.QWidget.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QWidget.showFullScreen": (),
- "PySide2.QtWidgets.QWidget.showMaximized": (),
- "PySide2.QtWidgets.QWidget.showMinimized": (),
- "PySide2.QtWidgets.QWidget.showNormal": (),
- "PySide2.QtWidgets.QWidget.size": (),
- "PySide2.QtWidgets.QWidget.sizeHint": (),
- "PySide2.QtWidgets.QWidget.sizeIncrement": (),
- "PySide2.QtWidgets.QWidget.sizePolicy": (),
- "PySide2.QtWidgets.QWidget.stackUnder": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWidget.statusTip": (),
- "PySide2.QtWidgets.QWidget.style": (),
- "PySide2.QtWidgets.QWidget.styleSheet": (),
- "PySide2.QtWidgets.QWidget.tabletEvent": ('PySide2.QtGui.QTabletEvent',),
- "PySide2.QtWidgets.QWidget.testAttribute": ('PySide2.QtCore.Qt.WidgetAttribute',),
- "PySide2.QtWidgets.QWidget.toolTip": (),
- "PySide2.QtWidgets.QWidget.toolTipDuration": (),
- "PySide2.QtWidgets.QWidget.topLevelWidget": (),
- "PySide2.QtWidgets.QWidget.underMouse": (),
- "PySide2.QtWidgets.QWidget.ungrabGesture": ('PySide2.QtCore.Qt.GestureType',),
- "PySide2.QtWidgets.QWidget.unsetCursor": (),
- "PySide2.QtWidgets.QWidget.unsetLayoutDirection": (),
- "PySide2.QtWidgets.QWidget.unsetLocale": (),
- "PySide2.QtWidgets.QWidget.update": [(), ('PySide2.QtCore.QRect',), ('PySide2.QtGui.QRegion',), ('int', 'int', 'int', 'int')],
- "PySide2.QtWidgets.QWidget.updateGeometry": (),
- "PySide2.QtWidgets.QWidget.updateMicroFocus": (),
- "PySide2.QtWidgets.QWidget.updatesEnabled": (),
- "PySide2.QtWidgets.QWidget.visibleRegion": (),
- "PySide2.QtWidgets.QWidget.whatsThis": (),
- "PySide2.QtWidgets.QWidget.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
- "PySide2.QtWidgets.QWidget.width": (),
- "PySide2.QtWidgets.QWidget.winId": (),
- "PySide2.QtWidgets.QWidget.window": (),
- "PySide2.QtWidgets.QWidget.windowFilePath": (),
- "PySide2.QtWidgets.QWidget.windowFlags": (),
- "PySide2.QtWidgets.QWidget.windowHandle": (),
- "PySide2.QtWidgets.QWidget.windowIcon": (),
- "PySide2.QtWidgets.QWidget.windowIconText": (),
- "PySide2.QtWidgets.QWidget.windowModality": (),
- "PySide2.QtWidgets.QWidget.windowOpacity": (),
- "PySide2.QtWidgets.QWidget.windowRole": (),
- "PySide2.QtWidgets.QWidget.windowState": (),
- "PySide2.QtWidgets.QWidget.windowTitle": (),
- "PySide2.QtWidgets.QWidget.windowType": (),
- "PySide2.QtWidgets.QWidget.x": (),
- "PySide2.QtWidgets.QWidget.y": (),
-# class PySide2.QtWidgets.QWidgetAction:
- "PySide2.QtWidgets.QWidgetAction.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QWidgetAction.createWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWidgetAction.createdWidgets": (),
- "PySide2.QtWidgets.QWidgetAction.defaultWidget": (),
- "PySide2.QtWidgets.QWidgetAction.deleteWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWidgetAction.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QWidgetAction.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QWidgetAction.releaseWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWidgetAction.requestWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWidgetAction.setDefaultWidget": ('PySide2.QtWidgets.QWidget',),
-# class PySide2.QtWidgets.QWidgetItem:
- "PySide2.QtWidgets.QWidgetItem.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWidgetItem.controlTypes": (),
- "PySide2.QtWidgets.QWidgetItem.expandingDirections": (),
- "PySide2.QtWidgets.QWidgetItem.geometry": (),
- "PySide2.QtWidgets.QWidgetItem.hasHeightForWidth": (),
- "PySide2.QtWidgets.QWidgetItem.heightForWidth": ('int',),
- "PySide2.QtWidgets.QWidgetItem.isEmpty": (),
- "PySide2.QtWidgets.QWidgetItem.maximumSize": (),
- "PySide2.QtWidgets.QWidgetItem.minimumSize": (),
- "PySide2.QtWidgets.QWidgetItem.setGeometry": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QWidgetItem.sizeHint": (),
- "PySide2.QtWidgets.QWidgetItem.widget": (),
-# class PySide2.QtWidgets.QWizard:
-# class PySide2.QtWidgets.QWizard.WizardButton:
-# class PySide2.QtWidgets.QWizard.WizardOption:
-# class PySide2.QtWidgets.QWizard.WizardOptions:
-# class PySide2.QtWidgets.QWizard.WizardPixmap:
-# class PySide2.QtWidgets.QWizard.WizardStyle:
- "PySide2.QtWidgets.QWizard.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QWizard.addPage": ('PySide2.QtWidgets.QWizardPage',),
- "PySide2.QtWidgets.QWizard.back": (),
- "PySide2.QtWidgets.QWizard.button": ('PySide2.QtWidgets.QWizard.WizardButton',),
- "PySide2.QtWidgets.QWizard.buttonText": ('PySide2.QtWidgets.QWizard.WizardButton',),
- "PySide2.QtWidgets.QWizard.cleanupPage": ('int',),
- "PySide2.QtWidgets.QWizard.currentId": (),
- "PySide2.QtWidgets.QWizard.currentPage": (),
- "PySide2.QtWidgets.QWizard.done": ('int',),
- "PySide2.QtWidgets.QWizard.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QWizard.field": ('str',),
- "PySide2.QtWidgets.QWizard.hasVisitedPage": ('int',),
- "PySide2.QtWidgets.QWizard.initializePage": ('int',),
- "PySide2.QtWidgets.QWizard.nativeEvent": ('PySide2.QtCore.QByteArray', 'int'),
- "PySide2.QtWidgets.QWizard.nextId": (),
- "PySide2.QtWidgets.QWizard.options": (),
- "PySide2.QtWidgets.QWizard.page": ('int',),
- "PySide2.QtWidgets.QWizard.pageIds": (),
- "PySide2.QtWidgets.QWizard.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QWizard.pixmap": ('PySide2.QtWidgets.QWizard.WizardPixmap',),
- "PySide2.QtWidgets.QWizard.removePage": ('int',),
- "PySide2.QtWidgets.QWizard.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QWizard.restart": (),
- "PySide2.QtWidgets.QWizard.setButton": ('PySide2.QtWidgets.QWizard.WizardButton', 'PySide2.QtWidgets.QAbstractButton'),
- "PySide2.QtWidgets.QWizard.setButtonLayout": ('typing.Sequence',),
- "PySide2.QtWidgets.QWizard.setButtonText": ('PySide2.QtWidgets.QWizard.WizardButton', 'str'),
- "PySide2.QtWidgets.QWizard.setDefaultProperty": ('bytes', 'bytes', 'bytes'),
- "PySide2.QtWidgets.QWizard.setField": ('str', 'typing.Any'),
- "PySide2.QtWidgets.QWizard.setOption": ('PySide2.QtWidgets.QWizard.WizardOption', 'bool'),
- "PySide2.QtWidgets.QWizard.setOptions": ('PySide2.QtWidgets.QWizard.WizardOptions',),
- "PySide2.QtWidgets.QWizard.setPage": ('int', 'PySide2.QtWidgets.QWizardPage'),
- "PySide2.QtWidgets.QWizard.setPixmap": ('PySide2.QtWidgets.QWizard.WizardPixmap', 'PySide2.QtGui.QPixmap'),
- "PySide2.QtWidgets.QWizard.setSideWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWizard.setStartId": ('int',),
- "PySide2.QtWidgets.QWizard.setSubTitleFormat": ('PySide2.QtCore.Qt.TextFormat',),
- "PySide2.QtWidgets.QWizard.setTitleFormat": ('PySide2.QtCore.Qt.TextFormat',),
- "PySide2.QtWidgets.QWizard.setVisible": ('bool',),
- "PySide2.QtWidgets.QWizard.setWizardStyle": ('PySide2.QtWidgets.QWizard.WizardStyle',),
- "PySide2.QtWidgets.QWizard.sideWidget": (),
- "PySide2.QtWidgets.QWizard.sizeHint": (),
- "PySide2.QtWidgets.QWizard.startId": (),
- "PySide2.QtWidgets.QWizard.subTitleFormat": (),
- "PySide2.QtWidgets.QWizard.testOption": ('PySide2.QtWidgets.QWizard.WizardOption',),
- "PySide2.QtWidgets.QWizard.titleFormat": (),
- "PySide2.QtWidgets.QWizard.validateCurrentPage": (),
- "PySide2.QtWidgets.QWizard.visitedPages": (),
- "PySide2.QtWidgets.QWizard.wizardStyle": (),
-# class PySide2.QtWidgets.QWizardPage:
- "PySide2.QtWidgets.QWizardPage.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWizardPage.buttonText": ('PySide2.QtWidgets.QWizard.WizardButton',),
- "PySide2.QtWidgets.QWizardPage.cleanupPage": (),
- "PySide2.QtWidgets.QWizardPage.field": ('str',),
- "PySide2.QtWidgets.QWizardPage.initializePage": (),
- "PySide2.QtWidgets.QWizardPage.isCommitPage": (),
- "PySide2.QtWidgets.QWizardPage.isComplete": (),
- "PySide2.QtWidgets.QWizardPage.isFinalPage": (),
- "PySide2.QtWidgets.QWizardPage.nextId": (),
- "PySide2.QtWidgets.QWizardPage.pixmap": ('PySide2.QtWidgets.QWizard.WizardPixmap',),
- "PySide2.QtWidgets.QWizardPage.registerField": ('str', 'PySide2.QtWidgets.QWidget', 'bytes', 'bytes'),
- "PySide2.QtWidgets.QWizardPage.setButtonText": ('PySide2.QtWidgets.QWizard.WizardButton', 'str'),
- "PySide2.QtWidgets.QWizardPage.setCommitPage": ('bool',),
- "PySide2.QtWidgets.QWizardPage.setField": ('str', 'typing.Any'),
- "PySide2.QtWidgets.QWizardPage.setFinalPage": ('bool',),
- "PySide2.QtWidgets.QWizardPage.setPixmap": ('PySide2.QtWidgets.QWizard.WizardPixmap', 'PySide2.QtGui.QPixmap'),
- "PySide2.QtWidgets.QWizardPage.setSubTitle": ('str',),
- "PySide2.QtWidgets.QWizardPage.setTitle": ('str',),
- "PySide2.QtWidgets.QWizardPage.subTitle": (),
- "PySide2.QtWidgets.QWizardPage.title": (),
- "PySide2.QtWidgets.QWizardPage.validatePage": (),
- "PySide2.QtWidgets.QWizardPage.wizard": (),
- }) if "PySide2.QtWidgets" in sys.modules else None
-# Module PySide2.QtPrintSupport
-sig_dict.update({
-# class PySide2.QtPrintSupport.QAbstractPrintDialog:
-# class PySide2.QtPrintSupport.QAbstractPrintDialog.PrintDialogOption:
-# class PySide2.QtPrintSupport.QAbstractPrintDialog.PrintDialogOptions:
-# class PySide2.QtPrintSupport.QAbstractPrintDialog.PrintRange:
- "PySide2.QtPrintSupport.QAbstractPrintDialog.__init__": ('PySide2.QtPrintSupport.QPrinter', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.addEnabledOption": ('PySide2.QtPrintSupport.QAbstractPrintDialog.PrintDialogOption',),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.enabledOptions": (),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.fromPage": (),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.isOptionEnabled": ('PySide2.QtPrintSupport.QAbstractPrintDialog.PrintDialogOption',),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.maxPage": (),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.minPage": (),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.printRange": (),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.printer": (),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.setEnabledOptions": ('PySide2.QtPrintSupport.QAbstractPrintDialog.PrintDialogOptions',),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.setFromTo": ('int', 'int'),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.setMinMax": ('int', 'int'),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.setOptionTabs": ('typing.Sequence',),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.setPrintRange": ('PySide2.QtPrintSupport.QAbstractPrintDialog.PrintRange',),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.toPage": (),
-# class PySide2.QtPrintSupport.QPageSetupDialog:
- "PySide2.QtPrintSupport.QPageSetupDialog.__init__": [('PySide2.QtPrintSupport.QPrinter', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtPrintSupport.QPageSetupDialog.done": ('int',),
- "PySide2.QtPrintSupport.QPageSetupDialog.exec_": (),
- "PySide2.QtPrintSupport.QPageSetupDialog.open": [(), ('PySide2.QtCore.QObject', 'bytes')],
- "PySide2.QtPrintSupport.QPageSetupDialog.printer": (),
- "PySide2.QtPrintSupport.QPageSetupDialog.setVisible": ('bool',),
-# class PySide2.QtPrintSupport.QPrintDialog:
- "PySide2.QtPrintSupport.QPrintDialog.__init__": [('PySide2.QtPrintSupport.QPrinter', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtPrintSupport.QPrintDialog.done": ('int',),
- "PySide2.QtPrintSupport.QPrintDialog.exec_": (),
- "PySide2.QtPrintSupport.QPrintDialog.open": [(), ('PySide2.QtCore.QObject', 'bytes')],
- "PySide2.QtPrintSupport.QPrintDialog.options": (),
- "PySide2.QtPrintSupport.QPrintDialog.setOption": ('PySide2.QtPrintSupport.QAbstractPrintDialog.PrintDialogOption', 'bool'),
- "PySide2.QtPrintSupport.QPrintDialog.setOptions": ('PySide2.QtPrintSupport.QAbstractPrintDialog.PrintDialogOptions',),
- "PySide2.QtPrintSupport.QPrintDialog.setVisible": ('bool',),
- "PySide2.QtPrintSupport.QPrintDialog.testOption": ('PySide2.QtPrintSupport.QAbstractPrintDialog.PrintDialogOption',),
-# class PySide2.QtPrintSupport.QPrintEngine:
-# class PySide2.QtPrintSupport.QPrintEngine.PrintEnginePropertyKey:
- "PySide2.QtPrintSupport.QPrintEngine.__init__": (),
- "PySide2.QtPrintSupport.QPrintEngine.abort": (),
- "PySide2.QtPrintSupport.QPrintEngine.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtPrintSupport.QPrintEngine.newPage": (),
- "PySide2.QtPrintSupport.QPrintEngine.printerState": (),
- "PySide2.QtPrintSupport.QPrintEngine.property": ('PySide2.QtPrintSupport.QPrintEngine.PrintEnginePropertyKey',),
- "PySide2.QtPrintSupport.QPrintEngine.setProperty": ('PySide2.QtPrintSupport.QPrintEngine.PrintEnginePropertyKey', 'typing.Any'),
-# class PySide2.QtPrintSupport.QPrintPreviewDialog:
- "PySide2.QtPrintSupport.QPrintPreviewDialog.__init__": [('PySide2.QtPrintSupport.QPrinter', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags')],
- "PySide2.QtPrintSupport.QPrintPreviewDialog.done": ('int',),
- "PySide2.QtPrintSupport.QPrintPreviewDialog.open": [(), ('PySide2.QtCore.QObject', 'bytes')],
- "PySide2.QtPrintSupport.QPrintPreviewDialog.printer": (),
- "PySide2.QtPrintSupport.QPrintPreviewDialog.setVisible": ('bool',),
-# class PySide2.QtPrintSupport.QPrintPreviewWidget:
-# class PySide2.QtPrintSupport.QPrintPreviewWidget.ViewMode:
-# class PySide2.QtPrintSupport.QPrintPreviewWidget.ZoomMode:
- "PySide2.QtPrintSupport.QPrintPreviewWidget.__init__": [('PySide2.QtPrintSupport.QPrinter', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags')],
- "PySide2.QtPrintSupport.QPrintPreviewWidget.currentPage": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.fitInView": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.fitToWidth": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.orientation": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.pageCount": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.print_": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setAllPagesViewMode": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setCurrentPage": ('int',),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setFacingPagesViewMode": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setLandscapeOrientation": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setOrientation": ('PySide2.QtPrintSupport.QPrinter.Orientation',),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setPortraitOrientation": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setSinglePageViewMode": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setViewMode": ('PySide2.QtPrintSupport.QPrintPreviewWidget.ViewMode',),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setVisible": ('bool',),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setZoomFactor": ('float',),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setZoomMode": ('PySide2.QtPrintSupport.QPrintPreviewWidget.ZoomMode',),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.updatePreview": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.viewMode": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.zoomFactor": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.zoomIn": ('float',),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.zoomMode": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.zoomOut": ('float',),
-# class PySide2.QtPrintSupport.QPrinter:
-# class PySide2.QtPrintSupport.QPrinter.ColorMode:
-# class PySide2.QtPrintSupport.QPrinter.DuplexMode:
-# class PySide2.QtPrintSupport.QPrinter.Orientation:
-# class PySide2.QtPrintSupport.QPrinter.OutputFormat:
-# class PySide2.QtPrintSupport.QPrinter.PageOrder:
-# class PySide2.QtPrintSupport.QPrinter.PaperSource:
-# class PySide2.QtPrintSupport.QPrinter.PrintRange:
-# class PySide2.QtPrintSupport.QPrinter.PrinterMode:
-# class PySide2.QtPrintSupport.QPrinter.PrinterState:
-# class PySide2.QtPrintSupport.QPrinter.Unit:
- "PySide2.QtPrintSupport.QPrinter.__init__": [('PySide2.QtPrintSupport.QPrinter.PrinterMode',), ('PySide2.QtPrintSupport.QPrinterInfo', 'PySide2.QtPrintSupport.QPrinter.PrinterMode')],
- "PySide2.QtPrintSupport.QPrinter.abort": (),
- "PySide2.QtPrintSupport.QPrinter.actualNumCopies": (),
- "PySide2.QtPrintSupport.QPrinter.collateCopies": (),
- "PySide2.QtPrintSupport.QPrinter.colorMode": (),
- "PySide2.QtPrintSupport.QPrinter.copyCount": (),
- "PySide2.QtPrintSupport.QPrinter.creator": (),
- "PySide2.QtPrintSupport.QPrinter.devType": (),
- "PySide2.QtPrintSupport.QPrinter.docName": (),
- "PySide2.QtPrintSupport.QPrinter.doubleSidedPrinting": (),
- "PySide2.QtPrintSupport.QPrinter.duplex": (),
- "PySide2.QtPrintSupport.QPrinter.fontEmbeddingEnabled": (),
- "PySide2.QtPrintSupport.QPrinter.fromPage": (),
- "PySide2.QtPrintSupport.QPrinter.fullPage": (),
- "PySide2.QtPrintSupport.QPrinter.getPageMargins": ('PySide2.QtPrintSupport.QPrinter.Unit',),
- "PySide2.QtPrintSupport.QPrinter.isValid": (),
- "PySide2.QtPrintSupport.QPrinter.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtPrintSupport.QPrinter.newPage": (),
- "PySide2.QtPrintSupport.QPrinter.numCopies": (),
- "PySide2.QtPrintSupport.QPrinter.orientation": (),
- "PySide2.QtPrintSupport.QPrinter.outputFileName": (),
- "PySide2.QtPrintSupport.QPrinter.outputFormat": (),
- "PySide2.QtPrintSupport.QPrinter.pageOrder": (),
- "PySide2.QtPrintSupport.QPrinter.pageRect": [(), ('PySide2.QtPrintSupport.QPrinter.Unit',)],
- "PySide2.QtPrintSupport.QPrinter.pageSize": (),
- "PySide2.QtPrintSupport.QPrinter.paintEngine": (),
- "PySide2.QtPrintSupport.QPrinter.paperName": (),
- "PySide2.QtPrintSupport.QPrinter.paperRect": [(), ('PySide2.QtPrintSupport.QPrinter.Unit',)],
- "PySide2.QtPrintSupport.QPrinter.paperSize": [(), ('PySide2.QtPrintSupport.QPrinter.Unit',)],
- "PySide2.QtPrintSupport.QPrinter.paperSource": (),
- "PySide2.QtPrintSupport.QPrinter.pdfVersion": (),
- "PySide2.QtPrintSupport.QPrinter.printEngine": (),
- "PySide2.QtPrintSupport.QPrinter.printProgram": (),
- "PySide2.QtPrintSupport.QPrinter.printRange": (),
- "PySide2.QtPrintSupport.QPrinter.printerName": (),
- "PySide2.QtPrintSupport.QPrinter.printerState": (),
- "PySide2.QtPrintSupport.QPrinter.resolution": (),
- "PySide2.QtPrintSupport.QPrinter.setCollateCopies": ('bool',),
- "PySide2.QtPrintSupport.QPrinter.setColorMode": ('PySide2.QtPrintSupport.QPrinter.ColorMode',),
- "PySide2.QtPrintSupport.QPrinter.setCopyCount": ('int',),
- "PySide2.QtPrintSupport.QPrinter.setCreator": ('str',),
- "PySide2.QtPrintSupport.QPrinter.setDocName": ('str',),
- "PySide2.QtPrintSupport.QPrinter.setDoubleSidedPrinting": ('bool',),
- "PySide2.QtPrintSupport.QPrinter.setDuplex": ('PySide2.QtPrintSupport.QPrinter.DuplexMode',),
- "PySide2.QtPrintSupport.QPrinter.setEngines": ('PySide2.QtPrintSupport.QPrintEngine', 'PySide2.QtGui.QPaintEngine'),
- "PySide2.QtPrintSupport.QPrinter.setFontEmbeddingEnabled": ('bool',),
- "PySide2.QtPrintSupport.QPrinter.setFromTo": ('int', 'int'),
- "PySide2.QtPrintSupport.QPrinter.setFullPage": ('bool',),
- "PySide2.QtPrintSupport.QPrinter.setMargins": ('PySide2.QtGui.QPagedPaintDevice.Margins',),
- "PySide2.QtPrintSupport.QPrinter.setNumCopies": ('int',),
- "PySide2.QtPrintSupport.QPrinter.setOrientation": ('PySide2.QtPrintSupport.QPrinter.Orientation',),
- "PySide2.QtPrintSupport.QPrinter.setOutputFileName": ('str',),
- "PySide2.QtPrintSupport.QPrinter.setOutputFormat": ('PySide2.QtPrintSupport.QPrinter.OutputFormat',),
- "PySide2.QtPrintSupport.QPrinter.setPageMargins": [('PySide2.QtCore.QMarginsF',), ('float', 'float', 'float', 'float', 'PySide2.QtPrintSupport.QPrinter.Unit')],
- "PySide2.QtPrintSupport.QPrinter.setPageOrder": ('PySide2.QtPrintSupport.QPrinter.PageOrder',),
- "PySide2.QtPrintSupport.QPrinter.setPageSize": [('PySide2.QtGui.QPageSize',), ('PySide2.QtGui.QPagedPaintDevice.PageSize',)],
- "PySide2.QtPrintSupport.QPrinter.setPageSizeMM": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtPrintSupport.QPrinter.setPaperName": ('str',),
- "PySide2.QtPrintSupport.QPrinter.setPaperSize": [('PySide2.QtCore.QSizeF', 'PySide2.QtPrintSupport.QPrinter.Unit'), ('PySide2.QtGui.QPagedPaintDevice.PageSize',)],
- "PySide2.QtPrintSupport.QPrinter.setPaperSource": ('PySide2.QtPrintSupport.QPrinter.PaperSource',),
- "PySide2.QtPrintSupport.QPrinter.setPdfVersion": ('PySide2.QtGui.QPagedPaintDevice.PdfVersion',),
- "PySide2.QtPrintSupport.QPrinter.setPrintProgram": ('str',),
- "PySide2.QtPrintSupport.QPrinter.setPrintRange": ('PySide2.QtPrintSupport.QPrinter.PrintRange',),
- "PySide2.QtPrintSupport.QPrinter.setPrinterName": ('str',),
- "PySide2.QtPrintSupport.QPrinter.setResolution": ('int',),
- "PySide2.QtPrintSupport.QPrinter.setWinPageSize": ('int',),
- "PySide2.QtPrintSupport.QPrinter.supportedPaperSources": (),
- "PySide2.QtPrintSupport.QPrinter.supportedResolutions": (),
- "PySide2.QtPrintSupport.QPrinter.supportsMultipleCopies": (),
- "PySide2.QtPrintSupport.QPrinter.toPage": (),
- "PySide2.QtPrintSupport.QPrinter.winPageSize": (),
-# class PySide2.QtPrintSupport.QPrinterInfo:
- "PySide2.QtPrintSupport.QPrinterInfo.__init__": [(), ('PySide2.QtPrintSupport.QPrinter',), ('PySide2.QtPrintSupport.QPrinterInfo',)],
- "PySide2.QtPrintSupport.QPrinterInfo.__copy__": (),
- "PySide2.QtPrintSupport.QPrinterInfo.availablePrinterNames": (),
- "PySide2.QtPrintSupport.QPrinterInfo.availablePrinters": (),
- "PySide2.QtPrintSupport.QPrinterInfo.defaultColorMode": (),
- "PySide2.QtPrintSupport.QPrinterInfo.defaultDuplexMode": (),
- "PySide2.QtPrintSupport.QPrinterInfo.defaultPageSize": (),
- "PySide2.QtPrintSupport.QPrinterInfo.defaultPrinter": (),
- "PySide2.QtPrintSupport.QPrinterInfo.defaultPrinterName": (),
- "PySide2.QtPrintSupport.QPrinterInfo.description": (),
- "PySide2.QtPrintSupport.QPrinterInfo.isDefault": (),
- "PySide2.QtPrintSupport.QPrinterInfo.isNull": (),
- "PySide2.QtPrintSupport.QPrinterInfo.isRemote": (),
- "PySide2.QtPrintSupport.QPrinterInfo.location": (),
- "PySide2.QtPrintSupport.QPrinterInfo.makeAndModel": (),
- "PySide2.QtPrintSupport.QPrinterInfo.maximumPhysicalPageSize": (),
- "PySide2.QtPrintSupport.QPrinterInfo.minimumPhysicalPageSize": (),
- "PySide2.QtPrintSupport.QPrinterInfo.printerInfo": ('str',),
- "PySide2.QtPrintSupport.QPrinterInfo.printerName": (),
- "PySide2.QtPrintSupport.QPrinterInfo.state": (),
- "PySide2.QtPrintSupport.QPrinterInfo.supportedColorModes": (),
- "PySide2.QtPrintSupport.QPrinterInfo.supportedDuplexModes": (),
- "PySide2.QtPrintSupport.QPrinterInfo.supportedPageSizes": (),
- "PySide2.QtPrintSupport.QPrinterInfo.supportedPaperSizes": (),
- "PySide2.QtPrintSupport.QPrinterInfo.supportedResolutions": (),
- "PySide2.QtPrintSupport.QPrinterInfo.supportedSizesWithNames": (),
- "PySide2.QtPrintSupport.QPrinterInfo.supportsCustomPageSizes": (),
- }) if "PySide2.QtPrintSupport" in sys.modules else None
-# Module PySide2.QtSql
-sig_dict.update({
-# class PySide2.QtSql.QSql:
-# class PySide2.QtSql.QSql.Location:
-# class PySide2.QtSql.QSql.NumericalPrecisionPolicy:
-# class PySide2.QtSql.QSql.ParamType:
-# class PySide2.QtSql.QSql.ParamTypeFlag:
-# class PySide2.QtSql.QSql.TableType:
-# class PySide2.QtSql.QSqlDatabase:
- "PySide2.QtSql.QSqlDatabase.__init__": [(), ('PySide2.QtSql.QSqlDatabase',), ('PySide2.QtSql.QSqlDriver',), ('str',)],
- "PySide2.QtSql.QSqlDatabase.__copy__": (),
- "PySide2.QtSql.QSqlDatabase.addDatabase": [('PySide2.QtSql.QSqlDriver', 'str'), ('str', 'str')],
- "PySide2.QtSql.QSqlDatabase.cloneDatabase": [('PySide2.QtSql.QSqlDatabase', 'str'), ('str', 'str')],
- "PySide2.QtSql.QSqlDatabase.close": (),
- "PySide2.QtSql.QSqlDatabase.commit": (),
- "PySide2.QtSql.QSqlDatabase.connectOptions": (),
- "PySide2.QtSql.QSqlDatabase.connectionName": (),
- "PySide2.QtSql.QSqlDatabase.connectionNames": (),
- "PySide2.QtSql.QSqlDatabase.contains": ('str',),
- "PySide2.QtSql.QSqlDatabase.database": ('str', 'bool'),
- "PySide2.QtSql.QSqlDatabase.databaseName": (),
- "PySide2.QtSql.QSqlDatabase.driver": (),
- "PySide2.QtSql.QSqlDatabase.driverName": (),
- "PySide2.QtSql.QSqlDatabase.drivers": (),
- "PySide2.QtSql.QSqlDatabase.exec_": ('str',),
- "PySide2.QtSql.QSqlDatabase.hostName": (),
- "PySide2.QtSql.QSqlDatabase.isDriverAvailable": ('str',),
- "PySide2.QtSql.QSqlDatabase.isOpen": (),
- "PySide2.QtSql.QSqlDatabase.isOpenError": (),
- "PySide2.QtSql.QSqlDatabase.isValid": (),
- "PySide2.QtSql.QSqlDatabase.lastError": (),
- "PySide2.QtSql.QSqlDatabase.numericalPrecisionPolicy": (),
- "PySide2.QtSql.QSqlDatabase.open": [(), ('str', 'str')],
- "PySide2.QtSql.QSqlDatabase.password": (),
- "PySide2.QtSql.QSqlDatabase.port": (),
- "PySide2.QtSql.QSqlDatabase.primaryIndex": ('str',),
- "PySide2.QtSql.QSqlDatabase.record": ('str',),
- "PySide2.QtSql.QSqlDatabase.registerSqlDriver": ('str', 'PySide2.QtSql.QSqlDriverCreatorBase'),
- "PySide2.QtSql.QSqlDatabase.removeDatabase": ('str',),
- "PySide2.QtSql.QSqlDatabase.rollback": (),
- "PySide2.QtSql.QSqlDatabase.setConnectOptions": ('str',),
- "PySide2.QtSql.QSqlDatabase.setDatabaseName": ('str',),
- "PySide2.QtSql.QSqlDatabase.setHostName": ('str',),
- "PySide2.QtSql.QSqlDatabase.setNumericalPrecisionPolicy": ('PySide2.QtSql.QSql.NumericalPrecisionPolicy',),
- "PySide2.QtSql.QSqlDatabase.setPassword": ('str',),
- "PySide2.QtSql.QSqlDatabase.setPort": ('int',),
- "PySide2.QtSql.QSqlDatabase.setUserName": ('str',),
- "PySide2.QtSql.QSqlDatabase.tables": ('PySide2.QtSql.QSql.TableType',),
- "PySide2.QtSql.QSqlDatabase.transaction": (),
- "PySide2.QtSql.QSqlDatabase.userName": (),
-# class PySide2.QtSql.QSqlDriver:
-# class PySide2.QtSql.QSqlDriver.DbmsType:
-# class PySide2.QtSql.QSqlDriver.DriverFeature:
-# class PySide2.QtSql.QSqlDriver.IdentifierType:
-# class PySide2.QtSql.QSqlDriver.NotificationSource:
-# class PySide2.QtSql.QSqlDriver.StatementType:
- "PySide2.QtSql.QSqlDriver.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSql.QSqlDriver.beginTransaction": (),
- "PySide2.QtSql.QSqlDriver.cancelQuery": (),
- "PySide2.QtSql.QSqlDriver.close": (),
- "PySide2.QtSql.QSqlDriver.commitTransaction": (),
- "PySide2.QtSql.QSqlDriver.createResult": (),
- "PySide2.QtSql.QSqlDriver.dbmsType": (),
- "PySide2.QtSql.QSqlDriver.escapeIdentifier": ('str', 'PySide2.QtSql.QSqlDriver.IdentifierType'),
- "PySide2.QtSql.QSqlDriver.formatValue": ('PySide2.QtSql.QSqlField', 'bool'),
- "PySide2.QtSql.QSqlDriver.hasFeature": ('PySide2.QtSql.QSqlDriver.DriverFeature',),
- "PySide2.QtSql.QSqlDriver.isIdentifierEscaped": ('str', 'PySide2.QtSql.QSqlDriver.IdentifierType'),
- "PySide2.QtSql.QSqlDriver.isOpen": (),
- "PySide2.QtSql.QSqlDriver.isOpenError": (),
- "PySide2.QtSql.QSqlDriver.lastError": (),
- "PySide2.QtSql.QSqlDriver.numericalPrecisionPolicy": (),
- "PySide2.QtSql.QSqlDriver.open": ('str', 'str', 'str', 'str', 'int', 'str'),
- "PySide2.QtSql.QSqlDriver.primaryIndex": ('str',),
- "PySide2.QtSql.QSqlDriver.record": ('str',),
- "PySide2.QtSql.QSqlDriver.rollbackTransaction": (),
- "PySide2.QtSql.QSqlDriver.setLastError": ('PySide2.QtSql.QSqlError',),
- "PySide2.QtSql.QSqlDriver.setNumericalPrecisionPolicy": ('PySide2.QtSql.QSql.NumericalPrecisionPolicy',),
- "PySide2.QtSql.QSqlDriver.setOpen": ('bool',),
- "PySide2.QtSql.QSqlDriver.setOpenError": ('bool',),
- "PySide2.QtSql.QSqlDriver.sqlStatement": ('PySide2.QtSql.QSqlDriver.StatementType', 'str', 'PySide2.QtSql.QSqlRecord', 'bool'),
- "PySide2.QtSql.QSqlDriver.stripDelimiters": ('str', 'PySide2.QtSql.QSqlDriver.IdentifierType'),
- "PySide2.QtSql.QSqlDriver.subscribeToNotification": ('str',),
- "PySide2.QtSql.QSqlDriver.subscribedToNotifications": (),
- "PySide2.QtSql.QSqlDriver.tables": ('PySide2.QtSql.QSql.TableType',),
- "PySide2.QtSql.QSqlDriver.unsubscribeFromNotification": ('str',),
-# class PySide2.QtSql.QSqlDriverCreatorBase:
- "PySide2.QtSql.QSqlDriverCreatorBase.__init__": (),
- "PySide2.QtSql.QSqlDriverCreatorBase.createObject": (),
-# class PySide2.QtSql.QSqlError:
-# class PySide2.QtSql.QSqlError.ErrorType:
- "PySide2.QtSql.QSqlError.__init__": [('PySide2.QtSql.QSqlError',), ('str', 'str', 'PySide2.QtSql.QSqlError.ErrorType', 'int'), ('str', 'str', 'PySide2.QtSql.QSqlError.ErrorType', 'str')],
- "PySide2.QtSql.QSqlError.__copy__": (),
- "PySide2.QtSql.QSqlError.databaseText": (),
- "PySide2.QtSql.QSqlError.driverText": (),
- "PySide2.QtSql.QSqlError.isValid": (),
- "PySide2.QtSql.QSqlError.nativeErrorCode": (),
- "PySide2.QtSql.QSqlError.number": (),
- "PySide2.QtSql.QSqlError.setDatabaseText": ('str',),
- "PySide2.QtSql.QSqlError.setDriverText": ('str',),
- "PySide2.QtSql.QSqlError.setNumber": ('int',),
- "PySide2.QtSql.QSqlError.setType": ('PySide2.QtSql.QSqlError.ErrorType',),
- "PySide2.QtSql.QSqlError.swap": ('PySide2.QtSql.QSqlError',),
- "PySide2.QtSql.QSqlError.text": (),
- "PySide2.QtSql.QSqlError.type": (),
-# class PySide2.QtSql.QSqlField:
-# class PySide2.QtSql.QSqlField.RequiredStatus:
- "PySide2.QtSql.QSqlField.__init__": [('PySide2.QtSql.QSqlField',), ('str', 'type'), ('str', 'type', 'str')],
- "PySide2.QtSql.QSqlField.__copy__": (),
- "PySide2.QtSql.QSqlField.clear": (),
- "PySide2.QtSql.QSqlField.defaultValue": (),
- "PySide2.QtSql.QSqlField.isAutoValue": (),
- "PySide2.QtSql.QSqlField.isGenerated": (),
- "PySide2.QtSql.QSqlField.isNull": (),
- "PySide2.QtSql.QSqlField.isReadOnly": (),
- "PySide2.QtSql.QSqlField.isValid": (),
- "PySide2.QtSql.QSqlField.length": (),
- "PySide2.QtSql.QSqlField.name": (),
- "PySide2.QtSql.QSqlField.precision": (),
- "PySide2.QtSql.QSqlField.requiredStatus": (),
- "PySide2.QtSql.QSqlField.setAutoValue": ('bool',),
- "PySide2.QtSql.QSqlField.setDefaultValue": ('typing.Any',),
- "PySide2.QtSql.QSqlField.setGenerated": ('bool',),
- "PySide2.QtSql.QSqlField.setLength": ('int',),
- "PySide2.QtSql.QSqlField.setName": ('str',),
- "PySide2.QtSql.QSqlField.setPrecision": ('int',),
- "PySide2.QtSql.QSqlField.setReadOnly": ('bool',),
- "PySide2.QtSql.QSqlField.setRequired": ('bool',),
- "PySide2.QtSql.QSqlField.setRequiredStatus": ('PySide2.QtSql.QSqlField.RequiredStatus',),
- "PySide2.QtSql.QSqlField.setSqlType": ('int',),
- "PySide2.QtSql.QSqlField.setTableName": ('str',),
- "PySide2.QtSql.QSqlField.setType": ('type',),
- "PySide2.QtSql.QSqlField.setValue": ('typing.Any',),
- "PySide2.QtSql.QSqlField.tableName": (),
- "PySide2.QtSql.QSqlField.type": (),
- "PySide2.QtSql.QSqlField.typeID": (),
- "PySide2.QtSql.QSqlField.value": (),
-# class PySide2.QtSql.QSqlIndex:
- "PySide2.QtSql.QSqlIndex.__init__": [('PySide2.QtSql.QSqlIndex',), ('str', 'str')],
- "PySide2.QtSql.QSqlIndex.__copy__": (),
- "PySide2.QtSql.QSqlIndex.append": [('PySide2.QtSql.QSqlField',), ('PySide2.QtSql.QSqlField', 'bool')],
- "PySide2.QtSql.QSqlIndex.cursorName": (),
- "PySide2.QtSql.QSqlIndex.isDescending": ('int',),
- "PySide2.QtSql.QSqlIndex.name": (),
- "PySide2.QtSql.QSqlIndex.setCursorName": ('str',),
- "PySide2.QtSql.QSqlIndex.setDescending": ('int', 'bool'),
- "PySide2.QtSql.QSqlIndex.setName": ('str',),
-# class PySide2.QtSql.QSqlQuery:
-# class PySide2.QtSql.QSqlQuery.BatchExecutionMode:
- "PySide2.QtSql.QSqlQuery.__init__": [('PySide2.QtSql.QSqlDatabase',), ('PySide2.QtSql.QSqlQuery',), ('PySide2.QtSql.QSqlResult',), ('str', 'PySide2.QtSql.QSqlDatabase')],
- "PySide2.QtSql.QSqlQuery.__copy__": (),
- "PySide2.QtSql.QSqlQuery.addBindValue": ('typing.Any', 'PySide2.QtSql.QSql.ParamType'),
- "PySide2.QtSql.QSqlQuery.at": (),
- "PySide2.QtSql.QSqlQuery.bindValue": [('int', 'typing.Any', 'PySide2.QtSql.QSql.ParamType'), ('str', 'typing.Any', 'PySide2.QtSql.QSql.ParamType')],
- "PySide2.QtSql.QSqlQuery.boundValue": [('int',), ('str',)],
- "PySide2.QtSql.QSqlQuery.boundValues": (),
- "PySide2.QtSql.QSqlQuery.clear": (),
- "PySide2.QtSql.QSqlQuery.driver": (),
- "PySide2.QtSql.QSqlQuery.execBatch": ('PySide2.QtSql.QSqlQuery.BatchExecutionMode',),
- "PySide2.QtSql.QSqlQuery.exec_": [(), ('str',)],
- "PySide2.QtSql.QSqlQuery.executedQuery": (),
- "PySide2.QtSql.QSqlQuery.finish": (),
- "PySide2.QtSql.QSqlQuery.first": (),
- "PySide2.QtSql.QSqlQuery.isActive": (),
- "PySide2.QtSql.QSqlQuery.isForwardOnly": (),
- "PySide2.QtSql.QSqlQuery.isNull": [('int',), ('str',)],
- "PySide2.QtSql.QSqlQuery.isSelect": (),
- "PySide2.QtSql.QSqlQuery.isValid": (),
- "PySide2.QtSql.QSqlQuery.last": (),
- "PySide2.QtSql.QSqlQuery.lastError": (),
- "PySide2.QtSql.QSqlQuery.lastInsertId": (),
- "PySide2.QtSql.QSqlQuery.lastQuery": (),
- "PySide2.QtSql.QSqlQuery.nextResult": (),
- "PySide2.QtSql.QSqlQuery.numRowsAffected": (),
- "PySide2.QtSql.QSqlQuery.numericalPrecisionPolicy": (),
- "PySide2.QtSql.QSqlQuery.prepare": ('str',),
- "PySide2.QtSql.QSqlQuery.previous": (),
- "PySide2.QtSql.QSqlQuery.record": (),
- "PySide2.QtSql.QSqlQuery.result": (),
- "PySide2.QtSql.QSqlQuery.seek": ('int', 'bool'),
- "PySide2.QtSql.QSqlQuery.setForwardOnly": ('bool',),
- "PySide2.QtSql.QSqlQuery.setNumericalPrecisionPolicy": ('PySide2.QtSql.QSql.NumericalPrecisionPolicy',),
- "PySide2.QtSql.QSqlQuery.size": (),
- "PySide2.QtSql.QSqlQuery.value": [('int',), ('str',)],
-# class PySide2.QtSql.QSqlQueryModel:
- "PySide2.QtSql.QSqlQueryModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSql.QSqlQueryModel.beginInsertColumns": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtSql.QSqlQueryModel.beginInsertRows": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtSql.QSqlQueryModel.beginRemoveColumns": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtSql.QSqlQueryModel.beginRemoveRows": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtSql.QSqlQueryModel.beginResetModel": (),
- "PySide2.QtSql.QSqlQueryModel.canFetchMore": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtSql.QSqlQueryModel.clear": (),
- "PySide2.QtSql.QSqlQueryModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtSql.QSqlQueryModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtSql.QSqlQueryModel.endInsertColumns": (),
- "PySide2.QtSql.QSqlQueryModel.endInsertRows": (),
- "PySide2.QtSql.QSqlQueryModel.endRemoveColumns": (),
- "PySide2.QtSql.QSqlQueryModel.endRemoveRows": (),
- "PySide2.QtSql.QSqlQueryModel.endResetModel": (),
- "PySide2.QtSql.QSqlQueryModel.fetchMore": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtSql.QSqlQueryModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtSql.QSqlQueryModel.indexInQuery": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtSql.QSqlQueryModel.insertColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtSql.QSqlQueryModel.lastError": (),
- "PySide2.QtSql.QSqlQueryModel.query": (),
- "PySide2.QtSql.QSqlQueryModel.queryChange": (),
- "PySide2.QtSql.QSqlQueryModel.record": [(), ('int',)],
- "PySide2.QtSql.QSqlQueryModel.removeColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtSql.QSqlQueryModel.roleNames": (),
- "PySide2.QtSql.QSqlQueryModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtSql.QSqlQueryModel.setHeaderData": ('int', 'PySide2.QtCore.Qt.Orientation', 'typing.Any', 'int'),
- "PySide2.QtSql.QSqlQueryModel.setLastError": ('PySide2.QtSql.QSqlError',),
- "PySide2.QtSql.QSqlQueryModel.setQuery": [('PySide2.QtSql.QSqlQuery',), ('str', 'PySide2.QtSql.QSqlDatabase')],
-# class PySide2.QtSql.QSqlRecord:
- "PySide2.QtSql.QSqlRecord.__init__": [(), ('PySide2.QtSql.QSqlRecord',)],
- "PySide2.QtSql.QSqlRecord.__copy__": (),
- "PySide2.QtSql.QSqlRecord.append": ('PySide2.QtSql.QSqlField',),
- "PySide2.QtSql.QSqlRecord.clear": (),
- "PySide2.QtSql.QSqlRecord.clearValues": (),
- "PySide2.QtSql.QSqlRecord.contains": ('str',),
- "PySide2.QtSql.QSqlRecord.count": (),
- "PySide2.QtSql.QSqlRecord.field": [('int',), ('str',)],
- "PySide2.QtSql.QSqlRecord.fieldName": ('int',),
- "PySide2.QtSql.QSqlRecord.indexOf": ('str',),
- "PySide2.QtSql.QSqlRecord.insert": ('int', 'PySide2.QtSql.QSqlField'),
- "PySide2.QtSql.QSqlRecord.isEmpty": (),
- "PySide2.QtSql.QSqlRecord.isGenerated": [('int',), ('str',)],
- "PySide2.QtSql.QSqlRecord.isNull": [('int',), ('str',)],
- "PySide2.QtSql.QSqlRecord.keyValues": ('PySide2.QtSql.QSqlRecord',),
- "PySide2.QtSql.QSqlRecord.remove": ('int',),
- "PySide2.QtSql.QSqlRecord.replace": ('int', 'PySide2.QtSql.QSqlField'),
- "PySide2.QtSql.QSqlRecord.setGenerated": [('int', 'bool'), ('str', 'bool')],
- "PySide2.QtSql.QSqlRecord.setNull": [('int',), ('str',)],
- "PySide2.QtSql.QSqlRecord.setValue": [('int', 'typing.Any'), ('str', 'typing.Any')],
- "PySide2.QtSql.QSqlRecord.value": [('int',), ('str',)],
-# class PySide2.QtSql.QSqlRelation:
- "PySide2.QtSql.QSqlRelation.__init__": [(), ('PySide2.QtSql.QSqlRelation',), ('str', 'str', 'str')],
- "PySide2.QtSql.QSqlRelation.__copy__": (),
- "PySide2.QtSql.QSqlRelation.displayColumn": (),
- "PySide2.QtSql.QSqlRelation.indexColumn": (),
- "PySide2.QtSql.QSqlRelation.isValid": (),
- "PySide2.QtSql.QSqlRelation.swap": ('PySide2.QtSql.QSqlRelation',),
- "PySide2.QtSql.QSqlRelation.tableName": (),
-# class PySide2.QtSql.QSqlRelationalDelegate:
- "PySide2.QtSql.QSqlRelationalDelegate.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSql.QSqlRelationalDelegate.createEditor": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtSql.QSqlRelationalDelegate.setEditorData": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtSql.QSqlRelationalDelegate.setModelData": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QAbstractItemModel', 'PySide2.QtCore.QModelIndex'),
-# class PySide2.QtSql.QSqlRelationalTableModel:
-# class PySide2.QtSql.QSqlRelationalTableModel.JoinMode:
- "PySide2.QtSql.QSqlRelationalTableModel.__init__": ('PySide2.QtCore.QObject', 'PySide2.QtSql.QSqlDatabase'),
- "PySide2.QtSql.QSqlRelationalTableModel.clear": (),
- "PySide2.QtSql.QSqlRelationalTableModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtSql.QSqlRelationalTableModel.insertRowIntoTable": ('PySide2.QtSql.QSqlRecord',),
- "PySide2.QtSql.QSqlRelationalTableModel.orderByClause": (),
- "PySide2.QtSql.QSqlRelationalTableModel.relation": ('int',),
- "PySide2.QtSql.QSqlRelationalTableModel.relationModel": ('int',),
- "PySide2.QtSql.QSqlRelationalTableModel.removeColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtSql.QSqlRelationalTableModel.revertRow": ('int',),
- "PySide2.QtSql.QSqlRelationalTableModel.select": (),
- "PySide2.QtSql.QSqlRelationalTableModel.selectStatement": (),
- "PySide2.QtSql.QSqlRelationalTableModel.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
- "PySide2.QtSql.QSqlRelationalTableModel.setJoinMode": ('PySide2.QtSql.QSqlRelationalTableModel.JoinMode',),
- "PySide2.QtSql.QSqlRelationalTableModel.setRelation": ('int', 'PySide2.QtSql.QSqlRelation'),
- "PySide2.QtSql.QSqlRelationalTableModel.setTable": ('str',),
- "PySide2.QtSql.QSqlRelationalTableModel.updateRowInTable": ('int', 'PySide2.QtSql.QSqlRecord'),
-# class PySide2.QtSql.QSqlResult:
-# class PySide2.QtSql.QSqlResult.BindingSyntax:
- "PySide2.QtSql.QSqlResult.__init__": ('PySide2.QtSql.QSqlDriver',),
- "PySide2.QtSql.QSqlResult.addBindValue": ('typing.Any', 'PySide2.QtSql.QSql.ParamType'),
- "PySide2.QtSql.QSqlResult.at": (),
- "PySide2.QtSql.QSqlResult.bindValue": [('int', 'typing.Any', 'PySide2.QtSql.QSql.ParamType'), ('str', 'typing.Any', 'PySide2.QtSql.QSql.ParamType')],
- "PySide2.QtSql.QSqlResult.bindValueType": [('int',), ('str',)],
- "PySide2.QtSql.QSqlResult.bindingSyntax": (),
- "PySide2.QtSql.QSqlResult.boundValue": [('int',), ('str',)],
- "PySide2.QtSql.QSqlResult.boundValueCount": (),
- "PySide2.QtSql.QSqlResult.boundValueName": ('int',),
- "PySide2.QtSql.QSqlResult.boundValues": (),
- "PySide2.QtSql.QSqlResult.clear": (),
- "PySide2.QtSql.QSqlResult.data": ('int',),
- "PySide2.QtSql.QSqlResult.detachFromResultSet": (),
- "PySide2.QtSql.QSqlResult.driver": (),
- "PySide2.QtSql.QSqlResult.execBatch": ('bool',),
- "PySide2.QtSql.QSqlResult.exec_": (),
- "PySide2.QtSql.QSqlResult.executedQuery": (),
- "PySide2.QtSql.QSqlResult.fetch": ('int',),
- "PySide2.QtSql.QSqlResult.fetchFirst": (),
- "PySide2.QtSql.QSqlResult.fetchLast": (),
- "PySide2.QtSql.QSqlResult.fetchNext": (),
- "PySide2.QtSql.QSqlResult.fetchPrevious": (),
- "PySide2.QtSql.QSqlResult.handle": (),
- "PySide2.QtSql.QSqlResult.hasOutValues": (),
- "PySide2.QtSql.QSqlResult.isActive": (),
- "PySide2.QtSql.QSqlResult.isForwardOnly": (),
- "PySide2.QtSql.QSqlResult.isNull": ('int',),
- "PySide2.QtSql.QSqlResult.isSelect": (),
- "PySide2.QtSql.QSqlResult.isValid": (),
- "PySide2.QtSql.QSqlResult.lastError": (),
- "PySide2.QtSql.QSqlResult.lastInsertId": (),
- "PySide2.QtSql.QSqlResult.lastQuery": (),
- "PySide2.QtSql.QSqlResult.nextResult": (),
- "PySide2.QtSql.QSqlResult.numRowsAffected": (),
- "PySide2.QtSql.QSqlResult.numericalPrecisionPolicy": (),
- "PySide2.QtSql.QSqlResult.prepare": ('str',),
- "PySide2.QtSql.QSqlResult.record": (),
- "PySide2.QtSql.QSqlResult.reset": ('str',),
- "PySide2.QtSql.QSqlResult.resetBindCount": (),
- "PySide2.QtSql.QSqlResult.savePrepare": ('str',),
- "PySide2.QtSql.QSqlResult.setActive": ('bool',),
- "PySide2.QtSql.QSqlResult.setAt": ('int',),
- "PySide2.QtSql.QSqlResult.setForwardOnly": ('bool',),
- "PySide2.QtSql.QSqlResult.setLastError": ('PySide2.QtSql.QSqlError',),
- "PySide2.QtSql.QSqlResult.setNumericalPrecisionPolicy": ('PySide2.QtSql.QSql.NumericalPrecisionPolicy',),
- "PySide2.QtSql.QSqlResult.setQuery": ('str',),
- "PySide2.QtSql.QSqlResult.setSelect": ('bool',),
- "PySide2.QtSql.QSqlResult.size": (),
-# class PySide2.QtSql.QSqlTableModel:
-# class PySide2.QtSql.QSqlTableModel.EditStrategy:
- "PySide2.QtSql.QSqlTableModel.__init__": ('PySide2.QtCore.QObject', 'PySide2.QtSql.QSqlDatabase'),
- "PySide2.QtSql.QSqlTableModel.clear": (),
- "PySide2.QtSql.QSqlTableModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtSql.QSqlTableModel.database": (),
- "PySide2.QtSql.QSqlTableModel.deleteRowFromTable": ('int',),
- "PySide2.QtSql.QSqlTableModel.editStrategy": (),
- "PySide2.QtSql.QSqlTableModel.fieldIndex": ('str',),
- "PySide2.QtSql.QSqlTableModel.filter": (),
- "PySide2.QtSql.QSqlTableModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtSql.QSqlTableModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtSql.QSqlTableModel.indexInQuery": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtSql.QSqlTableModel.insertRecord": ('int', 'PySide2.QtSql.QSqlRecord'),
- "PySide2.QtSql.QSqlTableModel.insertRowIntoTable": ('PySide2.QtSql.QSqlRecord',),
- "PySide2.QtSql.QSqlTableModel.insertRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtSql.QSqlTableModel.isDirty": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtSql.QSqlTableModel.orderByClause": (),
- "PySide2.QtSql.QSqlTableModel.primaryKey": (),
- "PySide2.QtSql.QSqlTableModel.primaryValues": ('int',),
- "PySide2.QtSql.QSqlTableModel.record": [(), ('int',)],
- "PySide2.QtSql.QSqlTableModel.removeColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtSql.QSqlTableModel.removeRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtSql.QSqlTableModel.revert": (),
- "PySide2.QtSql.QSqlTableModel.revertAll": (),
- "PySide2.QtSql.QSqlTableModel.revertRow": ('int',),
- "PySide2.QtSql.QSqlTableModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtSql.QSqlTableModel.select": (),
- "PySide2.QtSql.QSqlTableModel.selectRow": ('int',),
- "PySide2.QtSql.QSqlTableModel.selectStatement": (),
- "PySide2.QtSql.QSqlTableModel.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
- "PySide2.QtSql.QSqlTableModel.setEditStrategy": ('PySide2.QtSql.QSqlTableModel.EditStrategy',),
- "PySide2.QtSql.QSqlTableModel.setFilter": ('str',),
- "PySide2.QtSql.QSqlTableModel.setPrimaryKey": ('PySide2.QtSql.QSqlIndex',),
- "PySide2.QtSql.QSqlTableModel.setQuery": ('PySide2.QtSql.QSqlQuery',),
- "PySide2.QtSql.QSqlTableModel.setRecord": ('int', 'PySide2.QtSql.QSqlRecord'),
- "PySide2.QtSql.QSqlTableModel.setSort": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtSql.QSqlTableModel.setTable": ('str',),
- "PySide2.QtSql.QSqlTableModel.sort": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtSql.QSqlTableModel.submit": (),
- "PySide2.QtSql.QSqlTableModel.submitAll": (),
- "PySide2.QtSql.QSqlTableModel.tableName": (),
- "PySide2.QtSql.QSqlTableModel.updateRowInTable": ('int', 'PySide2.QtSql.QSqlRecord'),
- }) if "PySide2.QtSql" in sys.modules else None
-# Module PySide2.QtNetwork
-sig_dict.update({
-# class PySide2.QtNetwork.QAbstractNetworkCache:
- "PySide2.QtNetwork.QAbstractNetworkCache.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QAbstractNetworkCache.cacheSize": (),
- "PySide2.QtNetwork.QAbstractNetworkCache.clear": (),
- "PySide2.QtNetwork.QAbstractNetworkCache.data": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QAbstractNetworkCache.insert": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtNetwork.QAbstractNetworkCache.metaData": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QAbstractNetworkCache.prepare": ('PySide2.QtNetwork.QNetworkCacheMetaData',),
- "PySide2.QtNetwork.QAbstractNetworkCache.remove": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QAbstractNetworkCache.updateMetaData": ('PySide2.QtNetwork.QNetworkCacheMetaData',),
-# class PySide2.QtNetwork.QAbstractSocket:
-# class PySide2.QtNetwork.QAbstractSocket.BindFlag:
-# class PySide2.QtNetwork.QAbstractSocket.BindMode:
-# class PySide2.QtNetwork.QAbstractSocket.NetworkLayerProtocol:
-# class PySide2.QtNetwork.QAbstractSocket.PauseMode:
-# class PySide2.QtNetwork.QAbstractSocket.PauseModes:
-# class PySide2.QtNetwork.QAbstractSocket.SocketError:
-# class PySide2.QtNetwork.QAbstractSocket.SocketOption:
-# class PySide2.QtNetwork.QAbstractSocket.SocketState:
-# class PySide2.QtNetwork.QAbstractSocket.SocketType:
- "PySide2.QtNetwork.QAbstractSocket.__init__": ('PySide2.QtNetwork.QAbstractSocket.SocketType', 'PySide2.QtCore.QObject'),
- "PySide2.QtNetwork.QAbstractSocket.abort": (),
- "PySide2.QtNetwork.QAbstractSocket.atEnd": (),
- "PySide2.QtNetwork.QAbstractSocket.bind": [('PySide2.QtNetwork.QHostAddress', 'int', 'PySide2.QtNetwork.QAbstractSocket.BindMode'), ('int', 'PySide2.QtNetwork.QAbstractSocket.BindMode')],
- "PySide2.QtNetwork.QAbstractSocket.bytesAvailable": (),
- "PySide2.QtNetwork.QAbstractSocket.bytesToWrite": (),
- "PySide2.QtNetwork.QAbstractSocket.canReadLine": (),
- "PySide2.QtNetwork.QAbstractSocket.close": (),
- "PySide2.QtNetwork.QAbstractSocket.connectToHost": [('PySide2.QtNetwork.QHostAddress', 'int', 'PySide2.QtCore.QIODevice.OpenMode'), ('str', 'int', 'PySide2.QtCore.QIODevice.OpenMode', 'PySide2.QtNetwork.QAbstractSocket.NetworkLayerProtocol')],
- "PySide2.QtNetwork.QAbstractSocket.disconnectFromHost": (),
- "PySide2.QtNetwork.QAbstractSocket.error": (),
- "PySide2.QtNetwork.QAbstractSocket.flush": (),
- "PySide2.QtNetwork.QAbstractSocket.isSequential": (),
- "PySide2.QtNetwork.QAbstractSocket.isValid": (),
- "PySide2.QtNetwork.QAbstractSocket.localAddress": (),
- "PySide2.QtNetwork.QAbstractSocket.localPort": (),
- "PySide2.QtNetwork.QAbstractSocket.pauseMode": (),
- "PySide2.QtNetwork.QAbstractSocket.peerAddress": (),
- "PySide2.QtNetwork.QAbstractSocket.peerName": (),
- "PySide2.QtNetwork.QAbstractSocket.peerPort": (),
- "PySide2.QtNetwork.QAbstractSocket.protocolTag": (),
- "PySide2.QtNetwork.QAbstractSocket.proxy": (),
- "PySide2.QtNetwork.QAbstractSocket.readBufferSize": (),
- "PySide2.QtNetwork.QAbstractSocket.readData": ('bytes', 'int'),
- "PySide2.QtNetwork.QAbstractSocket.readLineData": ('bytes', 'int'),
- "PySide2.QtNetwork.QAbstractSocket.resume": (),
- "PySide2.QtNetwork.QAbstractSocket.setLocalAddress": ('PySide2.QtNetwork.QHostAddress',),
- "PySide2.QtNetwork.QAbstractSocket.setLocalPort": ('int',),
- "PySide2.QtNetwork.QAbstractSocket.setPauseMode": ('PySide2.QtNetwork.QAbstractSocket.PauseModes',),
- "PySide2.QtNetwork.QAbstractSocket.setPeerAddress": ('PySide2.QtNetwork.QHostAddress',),
- "PySide2.QtNetwork.QAbstractSocket.setPeerName": ('str',),
- "PySide2.QtNetwork.QAbstractSocket.setPeerPort": ('int',),
- "PySide2.QtNetwork.QAbstractSocket.setProtocolTag": ('str',),
- "PySide2.QtNetwork.QAbstractSocket.setProxy": ('PySide2.QtNetwork.QNetworkProxy',),
- "PySide2.QtNetwork.QAbstractSocket.setReadBufferSize": ('int',),
- "PySide2.QtNetwork.QAbstractSocket.setSocketDescriptor": ('int', 'PySide2.QtNetwork.QAbstractSocket.SocketState', 'PySide2.QtCore.QIODevice.OpenMode'),
- "PySide2.QtNetwork.QAbstractSocket.setSocketError": ('PySide2.QtNetwork.QAbstractSocket.SocketError',),
- "PySide2.QtNetwork.QAbstractSocket.setSocketOption": ('PySide2.QtNetwork.QAbstractSocket.SocketOption', 'typing.Any'),
- "PySide2.QtNetwork.QAbstractSocket.setSocketState": ('PySide2.QtNetwork.QAbstractSocket.SocketState',),
- "PySide2.QtNetwork.QAbstractSocket.socketDescriptor": (),
- "PySide2.QtNetwork.QAbstractSocket.socketOption": ('PySide2.QtNetwork.QAbstractSocket.SocketOption',),
- "PySide2.QtNetwork.QAbstractSocket.socketType": (),
- "PySide2.QtNetwork.QAbstractSocket.state": (),
- "PySide2.QtNetwork.QAbstractSocket.waitForBytesWritten": ('int',),
- "PySide2.QtNetwork.QAbstractSocket.waitForConnected": ('int',),
- "PySide2.QtNetwork.QAbstractSocket.waitForDisconnected": ('int',),
- "PySide2.QtNetwork.QAbstractSocket.waitForReadyRead": ('int',),
- "PySide2.QtNetwork.QAbstractSocket.writeData": ('bytes', 'int'),
-# class PySide2.QtNetwork.QAuthenticator:
- "PySide2.QtNetwork.QAuthenticator.__init__": [(), ('PySide2.QtNetwork.QAuthenticator',)],
- "PySide2.QtNetwork.QAuthenticator.__copy__": (),
- "PySide2.QtNetwork.QAuthenticator.isNull": (),
- "PySide2.QtNetwork.QAuthenticator.option": ('str',),
- "PySide2.QtNetwork.QAuthenticator.options": (),
- "PySide2.QtNetwork.QAuthenticator.password": (),
- "PySide2.QtNetwork.QAuthenticator.realm": (),
- "PySide2.QtNetwork.QAuthenticator.setOption": ('str', 'typing.Any'),
- "PySide2.QtNetwork.QAuthenticator.setPassword": ('str',),
- "PySide2.QtNetwork.QAuthenticator.setRealm": ('str',),
- "PySide2.QtNetwork.QAuthenticator.setUser": ('str',),
- "PySide2.QtNetwork.QAuthenticator.user": (),
-# class PySide2.QtNetwork.QDnsDomainNameRecord:
- "PySide2.QtNetwork.QDnsDomainNameRecord.__init__": [(), ('PySide2.QtNetwork.QDnsDomainNameRecord',)],
- "PySide2.QtNetwork.QDnsDomainNameRecord.__copy__": (),
- "PySide2.QtNetwork.QDnsDomainNameRecord.name": (),
- "PySide2.QtNetwork.QDnsDomainNameRecord.swap": ('PySide2.QtNetwork.QDnsDomainNameRecord',),
- "PySide2.QtNetwork.QDnsDomainNameRecord.timeToLive": (),
- "PySide2.QtNetwork.QDnsDomainNameRecord.value": (),
-# class PySide2.QtNetwork.QDnsHostAddressRecord:
- "PySide2.QtNetwork.QDnsHostAddressRecord.__init__": [(), ('PySide2.QtNetwork.QDnsHostAddressRecord',)],
- "PySide2.QtNetwork.QDnsHostAddressRecord.__copy__": (),
- "PySide2.QtNetwork.QDnsHostAddressRecord.name": (),
- "PySide2.QtNetwork.QDnsHostAddressRecord.swap": ('PySide2.QtNetwork.QDnsHostAddressRecord',),
- "PySide2.QtNetwork.QDnsHostAddressRecord.timeToLive": (),
- "PySide2.QtNetwork.QDnsHostAddressRecord.value": (),
-# class PySide2.QtNetwork.QDnsLookup:
-# class PySide2.QtNetwork.QDnsLookup.Error:
-# class PySide2.QtNetwork.QDnsLookup.Type:
- "PySide2.QtNetwork.QDnsLookup.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtNetwork.QDnsLookup.Type', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtNetwork.QDnsLookup.Type', 'str', 'PySide2.QtNetwork.QHostAddress', 'PySide2.QtCore.QObject')],
- "PySide2.QtNetwork.QDnsLookup.abort": (),
- "PySide2.QtNetwork.QDnsLookup.canonicalNameRecords": (),
- "PySide2.QtNetwork.QDnsLookup.error": (),
- "PySide2.QtNetwork.QDnsLookup.errorString": (),
- "PySide2.QtNetwork.QDnsLookup.hostAddressRecords": (),
- "PySide2.QtNetwork.QDnsLookup.isFinished": (),
- "PySide2.QtNetwork.QDnsLookup.lookup": (),
- "PySide2.QtNetwork.QDnsLookup.mailExchangeRecords": (),
- "PySide2.QtNetwork.QDnsLookup.name": (),
- "PySide2.QtNetwork.QDnsLookup.nameServerRecords": (),
- "PySide2.QtNetwork.QDnsLookup.nameserver": (),
- "PySide2.QtNetwork.QDnsLookup.pointerRecords": (),
- "PySide2.QtNetwork.QDnsLookup.serviceRecords": (),
- "PySide2.QtNetwork.QDnsLookup.setName": ('str',),
- "PySide2.QtNetwork.QDnsLookup.setNameserver": ('PySide2.QtNetwork.QHostAddress',),
- "PySide2.QtNetwork.QDnsLookup.setType": ('PySide2.QtNetwork.QDnsLookup.Type',),
- "PySide2.QtNetwork.QDnsLookup.textRecords": (),
- "PySide2.QtNetwork.QDnsLookup.type": (),
-# class PySide2.QtNetwork.QDnsMailExchangeRecord:
- "PySide2.QtNetwork.QDnsMailExchangeRecord.__init__": [(), ('PySide2.QtNetwork.QDnsMailExchangeRecord',)],
- "PySide2.QtNetwork.QDnsMailExchangeRecord.__copy__": (),
- "PySide2.QtNetwork.QDnsMailExchangeRecord.exchange": (),
- "PySide2.QtNetwork.QDnsMailExchangeRecord.name": (),
- "PySide2.QtNetwork.QDnsMailExchangeRecord.preference": (),
- "PySide2.QtNetwork.QDnsMailExchangeRecord.swap": ('PySide2.QtNetwork.QDnsMailExchangeRecord',),
- "PySide2.QtNetwork.QDnsMailExchangeRecord.timeToLive": (),
-# class PySide2.QtNetwork.QDnsServiceRecord:
- "PySide2.QtNetwork.QDnsServiceRecord.__init__": [(), ('PySide2.QtNetwork.QDnsServiceRecord',)],
- "PySide2.QtNetwork.QDnsServiceRecord.__copy__": (),
- "PySide2.QtNetwork.QDnsServiceRecord.name": (),
- "PySide2.QtNetwork.QDnsServiceRecord.port": (),
- "PySide2.QtNetwork.QDnsServiceRecord.priority": (),
- "PySide2.QtNetwork.QDnsServiceRecord.swap": ('PySide2.QtNetwork.QDnsServiceRecord',),
- "PySide2.QtNetwork.QDnsServiceRecord.target": (),
- "PySide2.QtNetwork.QDnsServiceRecord.timeToLive": (),
- "PySide2.QtNetwork.QDnsServiceRecord.weight": (),
-# class PySide2.QtNetwork.QDnsTextRecord:
- "PySide2.QtNetwork.QDnsTextRecord.__init__": [(), ('PySide2.QtNetwork.QDnsTextRecord',)],
- "PySide2.QtNetwork.QDnsTextRecord.__copy__": (),
- "PySide2.QtNetwork.QDnsTextRecord.name": (),
- "PySide2.QtNetwork.QDnsTextRecord.swap": ('PySide2.QtNetwork.QDnsTextRecord',),
- "PySide2.QtNetwork.QDnsTextRecord.timeToLive": (),
- "PySide2.QtNetwork.QDnsTextRecord.values": (),
-# class PySide2.QtNetwork.QDtls:
-# class PySide2.QtNetwork.QDtls.HandshakeState:
- "PySide2.QtNetwork.QDtls.__init__": ('PySide2.QtNetwork.QSslSocket.SslMode', 'PySide2.QtCore.QObject'),
- "PySide2.QtNetwork.QDtls.abortHandshake": ('PySide2.QtNetwork.QUdpSocket',),
- "PySide2.QtNetwork.QDtls.decryptDatagram": ('PySide2.QtNetwork.QUdpSocket', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtNetwork.QDtls.doHandshake": ('PySide2.QtNetwork.QUdpSocket', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtNetwork.QDtls.dtlsConfiguration": (),
- "PySide2.QtNetwork.QDtls.dtlsError": (),
- "PySide2.QtNetwork.QDtls.dtlsErrorString": (),
- "PySide2.QtNetwork.QDtls.handleTimeout": ('PySide2.QtNetwork.QUdpSocket',),
- "PySide2.QtNetwork.QDtls.handshakeState": (),
- "PySide2.QtNetwork.QDtls.ignoreVerificationErrors": ('typing.List',),
- "PySide2.QtNetwork.QDtls.isConnectionEncrypted": (),
- "PySide2.QtNetwork.QDtls.mtuHint": (),
- "PySide2.QtNetwork.QDtls.peerAddress": (),
- "PySide2.QtNetwork.QDtls.peerPort": (),
- "PySide2.QtNetwork.QDtls.peerVerificationErrors": (),
- "PySide2.QtNetwork.QDtls.peerVerificationName": (),
- "PySide2.QtNetwork.QDtls.resumeHandshake": ('PySide2.QtNetwork.QUdpSocket',),
- "PySide2.QtNetwork.QDtls.sessionCipher": (),
- "PySide2.QtNetwork.QDtls.sessionProtocol": (),
- "PySide2.QtNetwork.QDtls.setDtlsConfiguration": ('PySide2.QtNetwork.QSslConfiguration',),
- "PySide2.QtNetwork.QDtls.setMtuHint": ('int',),
- "PySide2.QtNetwork.QDtls.setPeer": ('PySide2.QtNetwork.QHostAddress', 'int', 'str'),
- "PySide2.QtNetwork.QDtls.setPeerVerificationName": ('str',),
- "PySide2.QtNetwork.QDtls.shutdown": ('PySide2.QtNetwork.QUdpSocket',),
- "PySide2.QtNetwork.QDtls.sslMode": (),
- "PySide2.QtNetwork.QDtls.writeDatagramEncrypted": ('PySide2.QtNetwork.QUdpSocket', 'PySide2.QtCore.QByteArray'),
-# class PySide2.QtNetwork.QDtlsError:
-# class PySide2.QtNetwork.QHostAddress:
-# class PySide2.QtNetwork.QHostAddress.ConversionMode:
-# class PySide2.QtNetwork.QHostAddress.ConversionModeFlag:
-# class PySide2.QtNetwork.QHostAddress.SpecialAddress:
- "PySide2.QtNetwork.QHostAddress.__init__": [(), ('PySide2.QtNetwork.QHostAddress',), ('PySide2.QtNetwork.QHostAddress.SpecialAddress',), ('PySide2.QtNetwork.QIPv6Address',), ('int',), ('str',)],
- "PySide2.QtNetwork.QHostAddress.__copy__": (),
- "PySide2.QtNetwork.QHostAddress.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtNetwork.QHostAddress.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtNetwork.QHostAddress.clear": (),
- "PySide2.QtNetwork.QHostAddress.isBroadcast": (),
- "PySide2.QtNetwork.QHostAddress.isEqual": ('PySide2.QtNetwork.QHostAddress', 'PySide2.QtNetwork.QHostAddress.ConversionMode'),
- "PySide2.QtNetwork.QHostAddress.isGlobal": (),
- "PySide2.QtNetwork.QHostAddress.isInSubnet": [('PySide2.QtNetwork.QHostAddress', 'int'), ('typing.Tuple',)],
- "PySide2.QtNetwork.QHostAddress.isLinkLocal": (),
- "PySide2.QtNetwork.QHostAddress.isLoopback": (),
- "PySide2.QtNetwork.QHostAddress.isMulticast": (),
- "PySide2.QtNetwork.QHostAddress.isNull": (),
- "PySide2.QtNetwork.QHostAddress.isSiteLocal": (),
- "PySide2.QtNetwork.QHostAddress.isUniqueLocalUnicast": (),
- "PySide2.QtNetwork.QHostAddress.parseSubnet": ('str',),
- "PySide2.QtNetwork.QHostAddress.protocol": (),
- "PySide2.QtNetwork.QHostAddress.scopeId": (),
- "PySide2.QtNetwork.QHostAddress.setAddress": [('PySide2.QtNetwork.QHostAddress.SpecialAddress',), ('PySide2.QtNetwork.QIPv6Address',), ('int',), ('str',)],
- "PySide2.QtNetwork.QHostAddress.setScopeId": ('str',),
- "PySide2.QtNetwork.QHostAddress.swap": ('PySide2.QtNetwork.QHostAddress',),
- "PySide2.QtNetwork.QHostAddress.toIPv4Address": (),
- "PySide2.QtNetwork.QHostAddress.toIPv6Address": (),
- "PySide2.QtNetwork.QHostAddress.toString": (),
-# class PySide2.QtNetwork.QHostInfo:
-# class PySide2.QtNetwork.QHostInfo.HostInfoError:
- "PySide2.QtNetwork.QHostInfo.__init__": [('PySide2.QtNetwork.QHostInfo',), ('int',)],
- "PySide2.QtNetwork.QHostInfo.__copy__": (),
- "PySide2.QtNetwork.QHostInfo.abortHostLookup": ('int',),
- "PySide2.QtNetwork.QHostInfo.addresses": (),
- "PySide2.QtNetwork.QHostInfo.error": (),
- "PySide2.QtNetwork.QHostInfo.errorString": (),
- "PySide2.QtNetwork.QHostInfo.fromName": ('str',),
- "PySide2.QtNetwork.QHostInfo.hostName": (),
- "PySide2.QtNetwork.QHostInfo.localDomainName": (),
- "PySide2.QtNetwork.QHostInfo.localHostName": (),
- "PySide2.QtNetwork.QHostInfo.lookupId": (),
- "PySide2.QtNetwork.QHostInfo.setAddresses": ('typing.Sequence',),
- "PySide2.QtNetwork.QHostInfo.setError": ('PySide2.QtNetwork.QHostInfo.HostInfoError',),
- "PySide2.QtNetwork.QHostInfo.setErrorString": ('str',),
- "PySide2.QtNetwork.QHostInfo.setHostName": ('str',),
- "PySide2.QtNetwork.QHostInfo.setLookupId": ('int',),
- "PySide2.QtNetwork.QHostInfo.swap": ('PySide2.QtNetwork.QHostInfo',),
-# class PySide2.QtNetwork.QHstsPolicy:
-# class PySide2.QtNetwork.QHstsPolicy.PolicyFlag:
-# class PySide2.QtNetwork.QHstsPolicy.PolicyFlags:
- "PySide2.QtNetwork.QHstsPolicy.__init__": [(), ('PySide2.QtCore.QDateTime', 'PySide2.QtNetwork.QHstsPolicy.PolicyFlags', 'str', 'PySide2.QtCore.QUrl.ParsingMode'), ('PySide2.QtNetwork.QHstsPolicy',)],
- "PySide2.QtNetwork.QHstsPolicy.__copy__": (),
- "PySide2.QtNetwork.QHstsPolicy.expiry": (),
- "PySide2.QtNetwork.QHstsPolicy.host": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtNetwork.QHstsPolicy.includesSubDomains": (),
- "PySide2.QtNetwork.QHstsPolicy.isExpired": (),
- "PySide2.QtNetwork.QHstsPolicy.setExpiry": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtNetwork.QHstsPolicy.setHost": ('str', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtNetwork.QHstsPolicy.setIncludesSubDomains": ('bool',),
- "PySide2.QtNetwork.QHstsPolicy.swap": ('PySide2.QtNetwork.QHstsPolicy',),
-# class PySide2.QtNetwork.QHttpMultiPart:
-# class PySide2.QtNetwork.QHttpMultiPart.ContentType:
- "PySide2.QtNetwork.QHttpMultiPart.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtNetwork.QHttpMultiPart.ContentType', 'PySide2.QtCore.QObject')],
- "PySide2.QtNetwork.QHttpMultiPart.append": ('PySide2.QtNetwork.QHttpPart',),
- "PySide2.QtNetwork.QHttpMultiPart.boundary": (),
- "PySide2.QtNetwork.QHttpMultiPart.setBoundary": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QHttpMultiPart.setContentType": ('PySide2.QtNetwork.QHttpMultiPart.ContentType',),
-# class PySide2.QtNetwork.QHttpPart:
- "PySide2.QtNetwork.QHttpPart.__init__": [(), ('PySide2.QtNetwork.QHttpPart',)],
- "PySide2.QtNetwork.QHttpPart.__copy__": (),
- "PySide2.QtNetwork.QHttpPart.setBody": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QHttpPart.setBodyDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtNetwork.QHttpPart.setHeader": ('PySide2.QtNetwork.QNetworkRequest.KnownHeaders', 'typing.Any'),
- "PySide2.QtNetwork.QHttpPart.setRawHeader": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtNetwork.QHttpPart.swap": ('PySide2.QtNetwork.QHttpPart',),
-# class PySide2.QtNetwork.QIPv6Address:
- "PySide2.QtNetwork.QIPv6Address.__init__": [(), ('PySide2.QtNetwork.QIPv6Address',)],
- "PySide2.QtNetwork.QIPv6Address.__copy__": (),
-# class PySide2.QtNetwork.QLocalServer:
-# class PySide2.QtNetwork.QLocalServer.SocketOption:
-# class PySide2.QtNetwork.QLocalServer.SocketOptions:
- "PySide2.QtNetwork.QLocalServer.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QLocalServer.close": (),
- "PySide2.QtNetwork.QLocalServer.errorString": (),
- "PySide2.QtNetwork.QLocalServer.fullServerName": (),
- "PySide2.QtNetwork.QLocalServer.hasPendingConnections": (),
- "PySide2.QtNetwork.QLocalServer.incomingConnection": ('int',),
- "PySide2.QtNetwork.QLocalServer.isListening": (),
- "PySide2.QtNetwork.QLocalServer.listen": [('int',), ('str',)],
- "PySide2.QtNetwork.QLocalServer.maxPendingConnections": (),
- "PySide2.QtNetwork.QLocalServer.nextPendingConnection": (),
- "PySide2.QtNetwork.QLocalServer.removeServer": ('str',),
- "PySide2.QtNetwork.QLocalServer.serverError": (),
- "PySide2.QtNetwork.QLocalServer.serverName": (),
- "PySide2.QtNetwork.QLocalServer.setMaxPendingConnections": ('int',),
- "PySide2.QtNetwork.QLocalServer.setSocketOptions": ('PySide2.QtNetwork.QLocalServer.SocketOptions',),
- "PySide2.QtNetwork.QLocalServer.socketDescriptor": (),
- "PySide2.QtNetwork.QLocalServer.socketOptions": (),
- "PySide2.QtNetwork.QLocalServer.waitForNewConnection": ('int',),
-# class PySide2.QtNetwork.QLocalSocket:
-# class PySide2.QtNetwork.QLocalSocket.LocalSocketError:
-# class PySide2.QtNetwork.QLocalSocket.LocalSocketState:
- "PySide2.QtNetwork.QLocalSocket.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QLocalSocket.abort": (),
- "PySide2.QtNetwork.QLocalSocket.bytesAvailable": (),
- "PySide2.QtNetwork.QLocalSocket.bytesToWrite": (),
- "PySide2.QtNetwork.QLocalSocket.canReadLine": (),
- "PySide2.QtNetwork.QLocalSocket.close": (),
- "PySide2.QtNetwork.QLocalSocket.connectToServer": [('PySide2.QtCore.QIODevice.OpenMode',), ('str', 'PySide2.QtCore.QIODevice.OpenMode')],
- "PySide2.QtNetwork.QLocalSocket.disconnectFromServer": (),
- "PySide2.QtNetwork.QLocalSocket.error": (),
- "PySide2.QtNetwork.QLocalSocket.flush": (),
- "PySide2.QtNetwork.QLocalSocket.fullServerName": (),
- "PySide2.QtNetwork.QLocalSocket.isSequential": (),
- "PySide2.QtNetwork.QLocalSocket.isValid": (),
- "PySide2.QtNetwork.QLocalSocket.open": ('PySide2.QtCore.QIODevice.OpenMode',),
- "PySide2.QtNetwork.QLocalSocket.readBufferSize": (),
- "PySide2.QtNetwork.QLocalSocket.readData": ('bytes', 'int'),
- "PySide2.QtNetwork.QLocalSocket.serverName": (),
- "PySide2.QtNetwork.QLocalSocket.setReadBufferSize": ('int',),
- "PySide2.QtNetwork.QLocalSocket.setServerName": ('str',),
- "PySide2.QtNetwork.QLocalSocket.setSocketDescriptor": ('int', 'PySide2.QtNetwork.QLocalSocket.LocalSocketState', 'PySide2.QtCore.QIODevice.OpenMode'),
- "PySide2.QtNetwork.QLocalSocket.socketDescriptor": (),
- "PySide2.QtNetwork.QLocalSocket.state": (),
- "PySide2.QtNetwork.QLocalSocket.waitForBytesWritten": ('int',),
- "PySide2.QtNetwork.QLocalSocket.waitForConnected": ('int',),
- "PySide2.QtNetwork.QLocalSocket.waitForDisconnected": ('int',),
- "PySide2.QtNetwork.QLocalSocket.waitForReadyRead": ('int',),
- "PySide2.QtNetwork.QLocalSocket.writeData": ('bytes', 'int'),
-# class PySide2.QtNetwork.QNetworkAccessManager:
-# class PySide2.QtNetwork.QNetworkAccessManager.NetworkAccessibility:
-# class PySide2.QtNetwork.QNetworkAccessManager.Operation:
- "PySide2.QtNetwork.QNetworkAccessManager.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QNetworkAccessManager.activeConfiguration": (),
- "PySide2.QtNetwork.QNetworkAccessManager.addStrictTransportSecurityHosts": ('typing.List',),
- "PySide2.QtNetwork.QNetworkAccessManager.autoDeleteReplies": (),
- "PySide2.QtNetwork.QNetworkAccessManager.cache": (),
- "PySide2.QtNetwork.QNetworkAccessManager.clearAccessCache": (),
- "PySide2.QtNetwork.QNetworkAccessManager.clearConnectionCache": (),
- "PySide2.QtNetwork.QNetworkAccessManager.configuration": (),
- "PySide2.QtNetwork.QNetworkAccessManager.connectToHost": ('str', 'int'),
- "PySide2.QtNetwork.QNetworkAccessManager.connectToHostEncrypted": [('str', 'int', 'PySide2.QtNetwork.QSslConfiguration'), ('str', 'int', 'PySide2.QtNetwork.QSslConfiguration', 'str')],
- "PySide2.QtNetwork.QNetworkAccessManager.cookieJar": (),
- "PySide2.QtNetwork.QNetworkAccessManager.createRequest": ('PySide2.QtNetwork.QNetworkAccessManager.Operation', 'PySide2.QtNetwork.QNetworkRequest', 'PySide2.QtCore.QIODevice'),
- "PySide2.QtNetwork.QNetworkAccessManager.deleteResource": ('PySide2.QtNetwork.QNetworkRequest',),
- "PySide2.QtNetwork.QNetworkAccessManager.enableStrictTransportSecurityStore": ('bool', 'str'),
- "PySide2.QtNetwork.QNetworkAccessManager.get": ('PySide2.QtNetwork.QNetworkRequest',),
- "PySide2.QtNetwork.QNetworkAccessManager.head": ('PySide2.QtNetwork.QNetworkRequest',),
- "PySide2.QtNetwork.QNetworkAccessManager.isStrictTransportSecurityEnabled": (),
- "PySide2.QtNetwork.QNetworkAccessManager.isStrictTransportSecurityStoreEnabled": (),
- "PySide2.QtNetwork.QNetworkAccessManager.networkAccessible": (),
- "PySide2.QtNetwork.QNetworkAccessManager.post": [('PySide2.QtNetwork.QNetworkRequest', 'PySide2.QtCore.QByteArray'), ('PySide2.QtNetwork.QNetworkRequest', 'PySide2.QtCore.QIODevice'), ('PySide2.QtNetwork.QNetworkRequest', 'PySide2.QtNetwork.QHttpMultiPart')],
- "PySide2.QtNetwork.QNetworkAccessManager.proxy": (),
- "PySide2.QtNetwork.QNetworkAccessManager.proxyFactory": (),
- "PySide2.QtNetwork.QNetworkAccessManager.put": [('PySide2.QtNetwork.QNetworkRequest', 'PySide2.QtCore.QByteArray'), ('PySide2.QtNetwork.QNetworkRequest', 'PySide2.QtCore.QIODevice'), ('PySide2.QtNetwork.QNetworkRequest', 'PySide2.QtNetwork.QHttpMultiPart')],
- "PySide2.QtNetwork.QNetworkAccessManager.redirectPolicy": (),
- "PySide2.QtNetwork.QNetworkAccessManager.sendCustomRequest": [('PySide2.QtNetwork.QNetworkRequest', 'PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'), ('PySide2.QtNetwork.QNetworkRequest', 'PySide2.QtCore.QByteArray', 'PySide2.QtCore.QIODevice'), ('PySide2.QtNetwork.QNetworkRequest', 'PySide2.QtCore.QByteArray', 'PySide2.QtNetwork.QHttpMultiPart')],
- "PySide2.QtNetwork.QNetworkAccessManager.setAutoDeleteReplies": ('bool',),
- "PySide2.QtNetwork.QNetworkAccessManager.setCache": ('PySide2.QtNetwork.QAbstractNetworkCache',),
- "PySide2.QtNetwork.QNetworkAccessManager.setConfiguration": ('PySide2.QtNetwork.QNetworkConfiguration',),
- "PySide2.QtNetwork.QNetworkAccessManager.setCookieJar": ('PySide2.QtNetwork.QNetworkCookieJar',),
- "PySide2.QtNetwork.QNetworkAccessManager.setNetworkAccessible": ('PySide2.QtNetwork.QNetworkAccessManager.NetworkAccessibility',),
- "PySide2.QtNetwork.QNetworkAccessManager.setProxy": ('PySide2.QtNetwork.QNetworkProxy',),
- "PySide2.QtNetwork.QNetworkAccessManager.setProxyFactory": ('PySide2.QtNetwork.QNetworkProxyFactory',),
- "PySide2.QtNetwork.QNetworkAccessManager.setRedirectPolicy": ('PySide2.QtNetwork.QNetworkRequest.RedirectPolicy',),
- "PySide2.QtNetwork.QNetworkAccessManager.setStrictTransportSecurityEnabled": ('bool',),
- "PySide2.QtNetwork.QNetworkAccessManager.strictTransportSecurityHosts": (),
- "PySide2.QtNetwork.QNetworkAccessManager.supportedSchemes": (),
- "PySide2.QtNetwork.QNetworkAccessManager.supportedSchemesImplementation": (),
-# class PySide2.QtNetwork.QNetworkAddressEntry:
-# class PySide2.QtNetwork.QNetworkAddressEntry.DnsEligibilityStatus:
- "PySide2.QtNetwork.QNetworkAddressEntry.__init__": [(), ('PySide2.QtNetwork.QNetworkAddressEntry',)],
- "PySide2.QtNetwork.QNetworkAddressEntry.__copy__": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.broadcast": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.clearAddressLifetime": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.dnsEligibility": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.ip": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.isLifetimeKnown": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.isPermanent": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.isTemporary": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.netmask": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.preferredLifetime": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.prefixLength": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.setAddressLifetime": ('PySide2.QtCore.QDeadlineTimer', 'PySide2.QtCore.QDeadlineTimer'),
- "PySide2.QtNetwork.QNetworkAddressEntry.setBroadcast": ('PySide2.QtNetwork.QHostAddress',),
- "PySide2.QtNetwork.QNetworkAddressEntry.setDnsEligibility": ('PySide2.QtNetwork.QNetworkAddressEntry.DnsEligibilityStatus',),
- "PySide2.QtNetwork.QNetworkAddressEntry.setIp": ('PySide2.QtNetwork.QHostAddress',),
- "PySide2.QtNetwork.QNetworkAddressEntry.setNetmask": ('PySide2.QtNetwork.QHostAddress',),
- "PySide2.QtNetwork.QNetworkAddressEntry.setPrefixLength": ('int',),
- "PySide2.QtNetwork.QNetworkAddressEntry.swap": ('PySide2.QtNetwork.QNetworkAddressEntry',),
- "PySide2.QtNetwork.QNetworkAddressEntry.validityLifetime": (),
-# class PySide2.QtNetwork.QNetworkCacheMetaData:
- "PySide2.QtNetwork.QNetworkCacheMetaData.__init__": [(), ('PySide2.QtNetwork.QNetworkCacheMetaData',)],
- "PySide2.QtNetwork.QNetworkCacheMetaData.__copy__": (),
- "PySide2.QtNetwork.QNetworkCacheMetaData.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtNetwork.QNetworkCacheMetaData.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtNetwork.QNetworkCacheMetaData.attributes": (),
- "PySide2.QtNetwork.QNetworkCacheMetaData.expirationDate": (),
- "PySide2.QtNetwork.QNetworkCacheMetaData.isValid": (),
- "PySide2.QtNetwork.QNetworkCacheMetaData.lastModified": (),
- "PySide2.QtNetwork.QNetworkCacheMetaData.rawHeaders": (),
- "PySide2.QtNetwork.QNetworkCacheMetaData.saveToDisk": (),
- "PySide2.QtNetwork.QNetworkCacheMetaData.setAttributes": ('typing.Dict',),
- "PySide2.QtNetwork.QNetworkCacheMetaData.setExpirationDate": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtNetwork.QNetworkCacheMetaData.setLastModified": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtNetwork.QNetworkCacheMetaData.setRawHeaders": ('typing.Sequence',),
- "PySide2.QtNetwork.QNetworkCacheMetaData.setSaveToDisk": ('bool',),
- "PySide2.QtNetwork.QNetworkCacheMetaData.setUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QNetworkCacheMetaData.swap": ('PySide2.QtNetwork.QNetworkCacheMetaData',),
- "PySide2.QtNetwork.QNetworkCacheMetaData.url": (),
-# class PySide2.QtNetwork.QNetworkConfiguration:
-# class PySide2.QtNetwork.QNetworkConfiguration.BearerType:
-# class PySide2.QtNetwork.QNetworkConfiguration.Purpose:
-# class PySide2.QtNetwork.QNetworkConfiguration.StateFlag:
-# class PySide2.QtNetwork.QNetworkConfiguration.StateFlags:
-# class PySide2.QtNetwork.QNetworkConfiguration.Type:
- "PySide2.QtNetwork.QNetworkConfiguration.__init__": [(), ('PySide2.QtNetwork.QNetworkConfiguration',)],
- "PySide2.QtNetwork.QNetworkConfiguration.__copy__": (),
- "PySide2.QtNetwork.QNetworkConfiguration.bearerType": (),
- "PySide2.QtNetwork.QNetworkConfiguration.bearerTypeFamily": (),
- "PySide2.QtNetwork.QNetworkConfiguration.bearerTypeName": (),
- "PySide2.QtNetwork.QNetworkConfiguration.children": (),
- "PySide2.QtNetwork.QNetworkConfiguration.connectTimeout": (),
- "PySide2.QtNetwork.QNetworkConfiguration.identifier": (),
- "PySide2.QtNetwork.QNetworkConfiguration.isRoamingAvailable": (),
- "PySide2.QtNetwork.QNetworkConfiguration.isValid": (),
- "PySide2.QtNetwork.QNetworkConfiguration.name": (),
- "PySide2.QtNetwork.QNetworkConfiguration.purpose": (),
- "PySide2.QtNetwork.QNetworkConfiguration.setConnectTimeout": ('int',),
- "PySide2.QtNetwork.QNetworkConfiguration.state": (),
- "PySide2.QtNetwork.QNetworkConfiguration.swap": ('PySide2.QtNetwork.QNetworkConfiguration',),
- "PySide2.QtNetwork.QNetworkConfiguration.type": (),
-# class PySide2.QtNetwork.QNetworkConfigurationManager:
-# class PySide2.QtNetwork.QNetworkConfigurationManager.Capabilities:
-# class PySide2.QtNetwork.QNetworkConfigurationManager.Capability:
- "PySide2.QtNetwork.QNetworkConfigurationManager.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QNetworkConfigurationManager.allConfigurations": ('PySide2.QtNetwork.QNetworkConfiguration.StateFlags',),
- "PySide2.QtNetwork.QNetworkConfigurationManager.capabilities": (),
- "PySide2.QtNetwork.QNetworkConfigurationManager.configurationFromIdentifier": ('str',),
- "PySide2.QtNetwork.QNetworkConfigurationManager.defaultConfiguration": (),
- "PySide2.QtNetwork.QNetworkConfigurationManager.isOnline": (),
- "PySide2.QtNetwork.QNetworkConfigurationManager.updateConfigurations": (),
-# class PySide2.QtNetwork.QNetworkCookie:
-# class PySide2.QtNetwork.QNetworkCookie.RawForm:
- "PySide2.QtNetwork.QNetworkCookie.__init__": [('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'), ('PySide2.QtNetwork.QNetworkCookie',)],
- "PySide2.QtNetwork.QNetworkCookie.__copy__": (),
- "PySide2.QtNetwork.QNetworkCookie.domain": (),
- "PySide2.QtNetwork.QNetworkCookie.expirationDate": (),
- "PySide2.QtNetwork.QNetworkCookie.hasSameIdentifier": ('PySide2.QtNetwork.QNetworkCookie',),
- "PySide2.QtNetwork.QNetworkCookie.isHttpOnly": (),
- "PySide2.QtNetwork.QNetworkCookie.isSecure": (),
- "PySide2.QtNetwork.QNetworkCookie.isSessionCookie": (),
- "PySide2.QtNetwork.QNetworkCookie.name": (),
- "PySide2.QtNetwork.QNetworkCookie.normalize": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QNetworkCookie.parseCookies": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkCookie.path": (),
- "PySide2.QtNetwork.QNetworkCookie.setDomain": ('str',),
- "PySide2.QtNetwork.QNetworkCookie.setExpirationDate": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtNetwork.QNetworkCookie.setHttpOnly": ('bool',),
- "PySide2.QtNetwork.QNetworkCookie.setName": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkCookie.setPath": ('str',),
- "PySide2.QtNetwork.QNetworkCookie.setSecure": ('bool',),
- "PySide2.QtNetwork.QNetworkCookie.setValue": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkCookie.swap": ('PySide2.QtNetwork.QNetworkCookie',),
- "PySide2.QtNetwork.QNetworkCookie.toRawForm": ('PySide2.QtNetwork.QNetworkCookie.RawForm',),
- "PySide2.QtNetwork.QNetworkCookie.value": (),
-# class PySide2.QtNetwork.QNetworkCookieJar:
- "PySide2.QtNetwork.QNetworkCookieJar.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QNetworkCookieJar.allCookies": (),
- "PySide2.QtNetwork.QNetworkCookieJar.cookiesForUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QNetworkCookieJar.deleteCookie": ('PySide2.QtNetwork.QNetworkCookie',),
- "PySide2.QtNetwork.QNetworkCookieJar.insertCookie": ('PySide2.QtNetwork.QNetworkCookie',),
- "PySide2.QtNetwork.QNetworkCookieJar.setAllCookies": ('typing.Sequence',),
- "PySide2.QtNetwork.QNetworkCookieJar.setCookiesFromUrl": ('typing.Sequence', 'PySide2.QtCore.QUrl'),
- "PySide2.QtNetwork.QNetworkCookieJar.updateCookie": ('PySide2.QtNetwork.QNetworkCookie',),
- "PySide2.QtNetwork.QNetworkCookieJar.validateCookie": ('PySide2.QtNetwork.QNetworkCookie', 'PySide2.QtCore.QUrl'),
-# class PySide2.QtNetwork.QNetworkDatagram:
- "PySide2.QtNetwork.QNetworkDatagram.__init__": [(), ('PySide2.QtCore.QByteArray', 'PySide2.QtNetwork.QHostAddress', 'int'), ('PySide2.QtNetwork.QNetworkDatagram',)],
- "PySide2.QtNetwork.QNetworkDatagram.__copy__": (),
- "PySide2.QtNetwork.QNetworkDatagram.clear": (),
- "PySide2.QtNetwork.QNetworkDatagram.data": (),
- "PySide2.QtNetwork.QNetworkDatagram.destinationAddress": (),
- "PySide2.QtNetwork.QNetworkDatagram.destinationPort": (),
- "PySide2.QtNetwork.QNetworkDatagram.hopLimit": (),
- "PySide2.QtNetwork.QNetworkDatagram.interfaceIndex": (),
- "PySide2.QtNetwork.QNetworkDatagram.isNull": (),
- "PySide2.QtNetwork.QNetworkDatagram.isValid": (),
- "PySide2.QtNetwork.QNetworkDatagram.makeReply": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkDatagram.senderAddress": (),
- "PySide2.QtNetwork.QNetworkDatagram.senderPort": (),
- "PySide2.QtNetwork.QNetworkDatagram.setData": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkDatagram.setDestination": ('PySide2.QtNetwork.QHostAddress', 'int'),
- "PySide2.QtNetwork.QNetworkDatagram.setHopLimit": ('int',),
- "PySide2.QtNetwork.QNetworkDatagram.setInterfaceIndex": ('int',),
- "PySide2.QtNetwork.QNetworkDatagram.setSender": ('PySide2.QtNetwork.QHostAddress', 'int'),
- "PySide2.QtNetwork.QNetworkDatagram.swap": ('PySide2.QtNetwork.QNetworkDatagram',),
-# class PySide2.QtNetwork.QNetworkDiskCache:
- "PySide2.QtNetwork.QNetworkDiskCache.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QNetworkDiskCache.cacheDirectory": (),
- "PySide2.QtNetwork.QNetworkDiskCache.cacheSize": (),
- "PySide2.QtNetwork.QNetworkDiskCache.clear": (),
- "PySide2.QtNetwork.QNetworkDiskCache.data": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QNetworkDiskCache.expire": (),
- "PySide2.QtNetwork.QNetworkDiskCache.fileMetaData": ('str',),
- "PySide2.QtNetwork.QNetworkDiskCache.insert": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtNetwork.QNetworkDiskCache.maximumCacheSize": (),
- "PySide2.QtNetwork.QNetworkDiskCache.metaData": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QNetworkDiskCache.prepare": ('PySide2.QtNetwork.QNetworkCacheMetaData',),
- "PySide2.QtNetwork.QNetworkDiskCache.remove": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QNetworkDiskCache.setCacheDirectory": ('str',),
- "PySide2.QtNetwork.QNetworkDiskCache.setMaximumCacheSize": ('int',),
- "PySide2.QtNetwork.QNetworkDiskCache.updateMetaData": ('PySide2.QtNetwork.QNetworkCacheMetaData',),
-# class PySide2.QtNetwork.QNetworkInterface:
-# class PySide2.QtNetwork.QNetworkInterface.InterfaceFlag:
-# class PySide2.QtNetwork.QNetworkInterface.InterfaceFlags:
-# class PySide2.QtNetwork.QNetworkInterface.InterfaceType:
- "PySide2.QtNetwork.QNetworkInterface.__init__": [(), ('PySide2.QtNetwork.QNetworkInterface',)],
- "PySide2.QtNetwork.QNetworkInterface.__copy__": (),
- "PySide2.QtNetwork.QNetworkInterface.addressEntries": (),
- "PySide2.QtNetwork.QNetworkInterface.allAddresses": (),
- "PySide2.QtNetwork.QNetworkInterface.allInterfaces": (),
- "PySide2.QtNetwork.QNetworkInterface.flags": (),
- "PySide2.QtNetwork.QNetworkInterface.hardwareAddress": (),
- "PySide2.QtNetwork.QNetworkInterface.humanReadableName": (),
- "PySide2.QtNetwork.QNetworkInterface.index": (),
- "PySide2.QtNetwork.QNetworkInterface.interfaceFromIndex": ('int',),
- "PySide2.QtNetwork.QNetworkInterface.interfaceFromName": ('str',),
- "PySide2.QtNetwork.QNetworkInterface.interfaceIndexFromName": ('str',),
- "PySide2.QtNetwork.QNetworkInterface.interfaceNameFromIndex": ('int',),
- "PySide2.QtNetwork.QNetworkInterface.isValid": (),
- "PySide2.QtNetwork.QNetworkInterface.maximumTransmissionUnit": (),
- "PySide2.QtNetwork.QNetworkInterface.name": (),
- "PySide2.QtNetwork.QNetworkInterface.swap": ('PySide2.QtNetwork.QNetworkInterface',),
- "PySide2.QtNetwork.QNetworkInterface.type": (),
-# class PySide2.QtNetwork.QNetworkProxy:
-# class PySide2.QtNetwork.QNetworkProxy.Capabilities:
-# class PySide2.QtNetwork.QNetworkProxy.Capability:
-# class PySide2.QtNetwork.QNetworkProxy.ProxyType:
- "PySide2.QtNetwork.QNetworkProxy.__init__": [(), ('PySide2.QtNetwork.QNetworkProxy',), ('PySide2.QtNetwork.QNetworkProxy.ProxyType', 'str', 'int', 'str', 'str')],
- "PySide2.QtNetwork.QNetworkProxy.__copy__": (),
- "PySide2.QtNetwork.QNetworkProxy.applicationProxy": (),
- "PySide2.QtNetwork.QNetworkProxy.capabilities": (),
- "PySide2.QtNetwork.QNetworkProxy.hasRawHeader": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkProxy.header": ('PySide2.QtNetwork.QNetworkRequest.KnownHeaders',),
- "PySide2.QtNetwork.QNetworkProxy.hostName": (),
- "PySide2.QtNetwork.QNetworkProxy.isCachingProxy": (),
- "PySide2.QtNetwork.QNetworkProxy.isTransparentProxy": (),
- "PySide2.QtNetwork.QNetworkProxy.password": (),
- "PySide2.QtNetwork.QNetworkProxy.port": (),
- "PySide2.QtNetwork.QNetworkProxy.rawHeader": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkProxy.rawHeaderList": (),
- "PySide2.QtNetwork.QNetworkProxy.setApplicationProxy": ('PySide2.QtNetwork.QNetworkProxy',),
- "PySide2.QtNetwork.QNetworkProxy.setCapabilities": ('PySide2.QtNetwork.QNetworkProxy.Capabilities',),
- "PySide2.QtNetwork.QNetworkProxy.setHeader": ('PySide2.QtNetwork.QNetworkRequest.KnownHeaders', 'typing.Any'),
- "PySide2.QtNetwork.QNetworkProxy.setHostName": ('str',),
- "PySide2.QtNetwork.QNetworkProxy.setPassword": ('str',),
- "PySide2.QtNetwork.QNetworkProxy.setPort": ('int',),
- "PySide2.QtNetwork.QNetworkProxy.setRawHeader": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtNetwork.QNetworkProxy.setType": ('PySide2.QtNetwork.QNetworkProxy.ProxyType',),
- "PySide2.QtNetwork.QNetworkProxy.setUser": ('str',),
- "PySide2.QtNetwork.QNetworkProxy.swap": ('PySide2.QtNetwork.QNetworkProxy',),
- "PySide2.QtNetwork.QNetworkProxy.type": (),
- "PySide2.QtNetwork.QNetworkProxy.user": (),
-# class PySide2.QtNetwork.QNetworkProxyFactory:
- "PySide2.QtNetwork.QNetworkProxyFactory.__init__": (),
- "PySide2.QtNetwork.QNetworkProxyFactory.proxyForQuery": ('PySide2.QtNetwork.QNetworkProxyQuery',),
- "PySide2.QtNetwork.QNetworkProxyFactory.queryProxy": ('PySide2.QtNetwork.QNetworkProxyQuery',),
- "PySide2.QtNetwork.QNetworkProxyFactory.setApplicationProxyFactory": ('PySide2.QtNetwork.QNetworkProxyFactory',),
- "PySide2.QtNetwork.QNetworkProxyFactory.setUseSystemConfiguration": ('bool',),
- "PySide2.QtNetwork.QNetworkProxyFactory.systemProxyForQuery": ('PySide2.QtNetwork.QNetworkProxyQuery',),
- "PySide2.QtNetwork.QNetworkProxyFactory.usesSystemConfiguration": (),
-# class PySide2.QtNetwork.QNetworkProxyQuery:
-# class PySide2.QtNetwork.QNetworkProxyQuery.QueryType:
- "PySide2.QtNetwork.QNetworkProxyQuery.__init__": [(), ('PySide2.QtCore.QUrl', 'PySide2.QtNetwork.QNetworkProxyQuery.QueryType'), ('PySide2.QtNetwork.QNetworkConfiguration', 'PySide2.QtCore.QUrl', 'PySide2.QtNetwork.QNetworkProxyQuery.QueryType'), ('PySide2.QtNetwork.QNetworkConfiguration', 'int', 'str', 'PySide2.QtNetwork.QNetworkProxyQuery.QueryType'), ('PySide2.QtNetwork.QNetworkConfiguration', 'str', 'int', 'str', 'PySide2.QtNetwork.QNetworkProxyQuery.QueryType'), ('PySide2.QtNetwork.QNetworkProxyQuery',), ('int', 'str', 'PySide2.QtNetwork.QNetworkProxyQuery.QueryType'), ('str', 'int', 'str', 'PySide2.QtNetwork.QNetworkProxyQuery.QueryType')],
- "PySide2.QtNetwork.QNetworkProxyQuery.__copy__": (),
- "PySide2.QtNetwork.QNetworkProxyQuery.localPort": (),
- "PySide2.QtNetwork.QNetworkProxyQuery.networkConfiguration": (),
- "PySide2.QtNetwork.QNetworkProxyQuery.peerHostName": (),
- "PySide2.QtNetwork.QNetworkProxyQuery.peerPort": (),
- "PySide2.QtNetwork.QNetworkProxyQuery.protocolTag": (),
- "PySide2.QtNetwork.QNetworkProxyQuery.queryType": (),
- "PySide2.QtNetwork.QNetworkProxyQuery.setLocalPort": ('int',),
- "PySide2.QtNetwork.QNetworkProxyQuery.setNetworkConfiguration": ('PySide2.QtNetwork.QNetworkConfiguration',),
- "PySide2.QtNetwork.QNetworkProxyQuery.setPeerHostName": ('str',),
- "PySide2.QtNetwork.QNetworkProxyQuery.setPeerPort": ('int',),
- "PySide2.QtNetwork.QNetworkProxyQuery.setProtocolTag": ('str',),
- "PySide2.QtNetwork.QNetworkProxyQuery.setQueryType": ('PySide2.QtNetwork.QNetworkProxyQuery.QueryType',),
- "PySide2.QtNetwork.QNetworkProxyQuery.setUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QNetworkProxyQuery.swap": ('PySide2.QtNetwork.QNetworkProxyQuery',),
- "PySide2.QtNetwork.QNetworkProxyQuery.url": (),
-# class PySide2.QtNetwork.QNetworkReply:
-# class PySide2.QtNetwork.QNetworkReply.NetworkError:
- "PySide2.QtNetwork.QNetworkReply.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QNetworkReply.abort": (),
- "PySide2.QtNetwork.QNetworkReply.attribute": ('PySide2.QtNetwork.QNetworkRequest.Attribute',),
- "PySide2.QtNetwork.QNetworkReply.close": (),
- "PySide2.QtNetwork.QNetworkReply.error": (),
- "PySide2.QtNetwork.QNetworkReply.hasRawHeader": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkReply.header": ('PySide2.QtNetwork.QNetworkRequest.KnownHeaders',),
- "PySide2.QtNetwork.QNetworkReply.ignoreSslErrors": [(), ('typing.Sequence',)],
- "PySide2.QtNetwork.QNetworkReply.ignoreSslErrorsImplementation": ('typing.Sequence',),
- "PySide2.QtNetwork.QNetworkReply.isFinished": (),
- "PySide2.QtNetwork.QNetworkReply.isRunning": (),
- "PySide2.QtNetwork.QNetworkReply.isSequential": (),
- "PySide2.QtNetwork.QNetworkReply.manager": (),
- "PySide2.QtNetwork.QNetworkReply.operation": (),
- "PySide2.QtNetwork.QNetworkReply.rawHeader": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkReply.rawHeaderList": (),
- "PySide2.QtNetwork.QNetworkReply.rawHeaderPairs": (),
- "PySide2.QtNetwork.QNetworkReply.readBufferSize": (),
- "PySide2.QtNetwork.QNetworkReply.request": (),
- "PySide2.QtNetwork.QNetworkReply.setAttribute": ('PySide2.QtNetwork.QNetworkRequest.Attribute', 'typing.Any'),
- "PySide2.QtNetwork.QNetworkReply.setError": ('PySide2.QtNetwork.QNetworkReply.NetworkError', 'str'),
- "PySide2.QtNetwork.QNetworkReply.setFinished": ('bool',),
- "PySide2.QtNetwork.QNetworkReply.setHeader": ('PySide2.QtNetwork.QNetworkRequest.KnownHeaders', 'typing.Any'),
- "PySide2.QtNetwork.QNetworkReply.setOperation": ('PySide2.QtNetwork.QNetworkAccessManager.Operation',),
- "PySide2.QtNetwork.QNetworkReply.setRawHeader": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtNetwork.QNetworkReply.setReadBufferSize": ('int',),
- "PySide2.QtNetwork.QNetworkReply.setRequest": ('PySide2.QtNetwork.QNetworkRequest',),
- "PySide2.QtNetwork.QNetworkReply.setSslConfiguration": ('PySide2.QtNetwork.QSslConfiguration',),
- "PySide2.QtNetwork.QNetworkReply.setSslConfigurationImplementation": ('PySide2.QtNetwork.QSslConfiguration',),
- "PySide2.QtNetwork.QNetworkReply.setUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QNetworkReply.sslConfiguration": (),
- "PySide2.QtNetwork.QNetworkReply.sslConfigurationImplementation": ('PySide2.QtNetwork.QSslConfiguration',),
- "PySide2.QtNetwork.QNetworkReply.url": (),
- "PySide2.QtNetwork.QNetworkReply.writeData": ('bytes', 'int'),
-# class PySide2.QtNetwork.QNetworkRequest:
-# class PySide2.QtNetwork.QNetworkRequest.Attribute:
-# class PySide2.QtNetwork.QNetworkRequest.CacheLoadControl:
-# class PySide2.QtNetwork.QNetworkRequest.KnownHeaders:
-# class PySide2.QtNetwork.QNetworkRequest.LoadControl:
-# class PySide2.QtNetwork.QNetworkRequest.Priority:
-# class PySide2.QtNetwork.QNetworkRequest.RedirectPolicy:
- "PySide2.QtNetwork.QNetworkRequest.__init__": [(), ('PySide2.QtCore.QUrl',), ('PySide2.QtNetwork.QNetworkRequest',)],
- "PySide2.QtNetwork.QNetworkRequest.__copy__": (),
- "PySide2.QtNetwork.QNetworkRequest.attribute": ('PySide2.QtNetwork.QNetworkRequest.Attribute', 'typing.Any'),
- "PySide2.QtNetwork.QNetworkRequest.hasRawHeader": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkRequest.header": ('PySide2.QtNetwork.QNetworkRequest.KnownHeaders',),
- "PySide2.QtNetwork.QNetworkRequest.maximumRedirectsAllowed": (),
- "PySide2.QtNetwork.QNetworkRequest.originatingObject": (),
- "PySide2.QtNetwork.QNetworkRequest.peerVerifyName": (),
- "PySide2.QtNetwork.QNetworkRequest.priority": (),
- "PySide2.QtNetwork.QNetworkRequest.rawHeader": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkRequest.rawHeaderList": (),
- "PySide2.QtNetwork.QNetworkRequest.setAttribute": ('PySide2.QtNetwork.QNetworkRequest.Attribute', 'typing.Any'),
- "PySide2.QtNetwork.QNetworkRequest.setHeader": ('PySide2.QtNetwork.QNetworkRequest.KnownHeaders', 'typing.Any'),
- "PySide2.QtNetwork.QNetworkRequest.setMaximumRedirectsAllowed": ('int',),
- "PySide2.QtNetwork.QNetworkRequest.setOriginatingObject": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QNetworkRequest.setPeerVerifyName": ('str',),
- "PySide2.QtNetwork.QNetworkRequest.setPriority": ('PySide2.QtNetwork.QNetworkRequest.Priority',),
- "PySide2.QtNetwork.QNetworkRequest.setRawHeader": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtNetwork.QNetworkRequest.setSslConfiguration": ('PySide2.QtNetwork.QSslConfiguration',),
- "PySide2.QtNetwork.QNetworkRequest.setUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QNetworkRequest.sslConfiguration": (),
- "PySide2.QtNetwork.QNetworkRequest.swap": ('PySide2.QtNetwork.QNetworkRequest',),
- "PySide2.QtNetwork.QNetworkRequest.url": (),
-# class PySide2.QtNetwork.QNetworkSession:
-# class PySide2.QtNetwork.QNetworkSession.SessionError:
-# class PySide2.QtNetwork.QNetworkSession.State:
-# class PySide2.QtNetwork.QNetworkSession.UsagePolicies:
-# class PySide2.QtNetwork.QNetworkSession.UsagePolicy:
- "PySide2.QtNetwork.QNetworkSession.__init__": ('PySide2.QtNetwork.QNetworkConfiguration', 'PySide2.QtCore.QObject'),
- "PySide2.QtNetwork.QNetworkSession.accept": (),
- "PySide2.QtNetwork.QNetworkSession.activeTime": (),
- "PySide2.QtNetwork.QNetworkSession.bytesReceived": (),
- "PySide2.QtNetwork.QNetworkSession.bytesWritten": (),
- "PySide2.QtNetwork.QNetworkSession.close": (),
- "PySide2.QtNetwork.QNetworkSession.configuration": (),
- "PySide2.QtNetwork.QNetworkSession.connectNotify": ('PySide2.QtCore.QMetaMethod',),
- "PySide2.QtNetwork.QNetworkSession.disconnectNotify": ('PySide2.QtCore.QMetaMethod',),
- "PySide2.QtNetwork.QNetworkSession.error": (),
- "PySide2.QtNetwork.QNetworkSession.errorString": (),
- "PySide2.QtNetwork.QNetworkSession.ignore": (),
- "PySide2.QtNetwork.QNetworkSession.interface": (),
- "PySide2.QtNetwork.QNetworkSession.isOpen": (),
- "PySide2.QtNetwork.QNetworkSession.migrate": (),
- "PySide2.QtNetwork.QNetworkSession.open": (),
- "PySide2.QtNetwork.QNetworkSession.reject": (),
- "PySide2.QtNetwork.QNetworkSession.sessionProperty": ('str',),
- "PySide2.QtNetwork.QNetworkSession.setSessionProperty": ('str', 'typing.Any'),
- "PySide2.QtNetwork.QNetworkSession.state": (),
- "PySide2.QtNetwork.QNetworkSession.stop": (),
- "PySide2.QtNetwork.QNetworkSession.usagePolicies": (),
- "PySide2.QtNetwork.QNetworkSession.waitForOpened": ('int',),
-# class PySide2.QtNetwork.QOcspCertificateStatus:
-# class PySide2.QtNetwork.QOcspResponse:
- "PySide2.QtNetwork.QOcspResponse.__init__": [(), ('PySide2.QtNetwork.QOcspResponse',)],
- "PySide2.QtNetwork.QOcspResponse.__copy__": (),
- "PySide2.QtNetwork.QOcspResponse.certificateStatus": (),
- "PySide2.QtNetwork.QOcspResponse.revocationReason": (),
- "PySide2.QtNetwork.QOcspResponse.subject": (),
- "PySide2.QtNetwork.QOcspResponse.swap": ('PySide2.QtNetwork.QOcspResponse',),
-# class PySide2.QtNetwork.QOcspRevocationReason:
-# class PySide2.QtNetwork.QPasswordDigestor:
- "PySide2.QtNetwork.QPasswordDigestor.deriveKeyPbkdf1": ('PySide2.QtCore.QCryptographicHash.Algorithm', 'PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray', 'int', 'int'),
- "PySide2.QtNetwork.QPasswordDigestor.deriveKeyPbkdf2": ('PySide2.QtCore.QCryptographicHash.Algorithm', 'PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray', 'int', 'int'),
-# class PySide2.QtNetwork.QSsl:
-# class PySide2.QtNetwork.QSsl.AlternativeNameEntryType:
-# class PySide2.QtNetwork.QSsl.EncodingFormat:
-# class PySide2.QtNetwork.QSsl.KeyAlgorithm:
-# class PySide2.QtNetwork.QSsl.KeyType:
-# class PySide2.QtNetwork.QSsl.SslOption:
-# class PySide2.QtNetwork.QSsl.SslOptions:
-# class PySide2.QtNetwork.QSsl.SslProtocol:
-# class PySide2.QtNetwork.QSslCertificate:
-# class PySide2.QtNetwork.QSslCertificate.SubjectInfo:
- "PySide2.QtNetwork.QSslCertificate.__init__": [('PySide2.QtCore.QByteArray', 'PySide2.QtNetwork.QSsl.EncodingFormat'), ('PySide2.QtCore.QIODevice', 'PySide2.QtNetwork.QSsl.EncodingFormat'), ('PySide2.QtNetwork.QSslCertificate',)],
- "PySide2.QtNetwork.QSslCertificate.__copy__": (),
- "PySide2.QtNetwork.QSslCertificate.clear": (),
- "PySide2.QtNetwork.QSslCertificate.digest": ('PySide2.QtCore.QCryptographicHash.Algorithm',),
- "PySide2.QtNetwork.QSslCertificate.effectiveDate": (),
- "PySide2.QtNetwork.QSslCertificate.expiryDate": (),
- "PySide2.QtNetwork.QSslCertificate.extensions": (),
- "PySide2.QtNetwork.QSslCertificate.fromData": ('PySide2.QtCore.QByteArray', 'PySide2.QtNetwork.QSsl.EncodingFormat'),
- "PySide2.QtNetwork.QSslCertificate.fromDevice": ('PySide2.QtCore.QIODevice', 'PySide2.QtNetwork.QSsl.EncodingFormat'),
- "PySide2.QtNetwork.QSslCertificate.fromPath": ('str', 'PySide2.QtNetwork.QSsl.EncodingFormat', 'PySide2.QtCore.QRegExp.PatternSyntax'),
- "PySide2.QtNetwork.QSslCertificate.handle": (),
- "PySide2.QtNetwork.QSslCertificate.importPkcs12": ('PySide2.QtCore.QIODevice', 'PySide2.QtNetwork.QSslKey', 'PySide2.QtNetwork.QSslCertificate', 'typing.Sequence', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtNetwork.QSslCertificate.isBlacklisted": (),
- "PySide2.QtNetwork.QSslCertificate.isNull": (),
- "PySide2.QtNetwork.QSslCertificate.isSelfSigned": (),
- "PySide2.QtNetwork.QSslCertificate.issuerDisplayName": (),
- "PySide2.QtNetwork.QSslCertificate.issuerInfo": [('PySide2.QtCore.QByteArray',), ('PySide2.QtNetwork.QSslCertificate.SubjectInfo',)],
- "PySide2.QtNetwork.QSslCertificate.issuerInfoAttributes": (),
- "PySide2.QtNetwork.QSslCertificate.publicKey": (),
- "PySide2.QtNetwork.QSslCertificate.serialNumber": (),
- "PySide2.QtNetwork.QSslCertificate.subjectAlternativeNames": (),
- "PySide2.QtNetwork.QSslCertificate.subjectDisplayName": (),
- "PySide2.QtNetwork.QSslCertificate.subjectInfo": [('PySide2.QtCore.QByteArray',), ('PySide2.QtNetwork.QSslCertificate.SubjectInfo',)],
- "PySide2.QtNetwork.QSslCertificate.subjectInfoAttributes": (),
- "PySide2.QtNetwork.QSslCertificate.swap": ('PySide2.QtNetwork.QSslCertificate',),
- "PySide2.QtNetwork.QSslCertificate.toDer": (),
- "PySide2.QtNetwork.QSslCertificate.toPem": (),
- "PySide2.QtNetwork.QSslCertificate.toText": (),
- "PySide2.QtNetwork.QSslCertificate.verify": ('typing.Sequence', 'str'),
- "PySide2.QtNetwork.QSslCertificate.version": (),
-# class PySide2.QtNetwork.QSslCertificateExtension:
- "PySide2.QtNetwork.QSslCertificateExtension.__init__": [(), ('PySide2.QtNetwork.QSslCertificateExtension',)],
- "PySide2.QtNetwork.QSslCertificateExtension.__copy__": (),
- "PySide2.QtNetwork.QSslCertificateExtension.isCritical": (),
- "PySide2.QtNetwork.QSslCertificateExtension.isSupported": (),
- "PySide2.QtNetwork.QSslCertificateExtension.name": (),
- "PySide2.QtNetwork.QSslCertificateExtension.oid": (),
- "PySide2.QtNetwork.QSslCertificateExtension.swap": ('PySide2.QtNetwork.QSslCertificateExtension',),
- "PySide2.QtNetwork.QSslCertificateExtension.value": (),
-# class PySide2.QtNetwork.QSslCipher:
- "PySide2.QtNetwork.QSslCipher.__init__": [(), ('PySide2.QtNetwork.QSslCipher',), ('str',), ('str', 'PySide2.QtNetwork.QSsl.SslProtocol')],
- "PySide2.QtNetwork.QSslCipher.__copy__": (),
- "PySide2.QtNetwork.QSslCipher.authenticationMethod": (),
- "PySide2.QtNetwork.QSslCipher.encryptionMethod": (),
- "PySide2.QtNetwork.QSslCipher.isNull": (),
- "PySide2.QtNetwork.QSslCipher.keyExchangeMethod": (),
- "PySide2.QtNetwork.QSslCipher.name": (),
- "PySide2.QtNetwork.QSslCipher.protocol": (),
- "PySide2.QtNetwork.QSslCipher.protocolString": (),
- "PySide2.QtNetwork.QSslCipher.supportedBits": (),
- "PySide2.QtNetwork.QSslCipher.swap": ('PySide2.QtNetwork.QSslCipher',),
- "PySide2.QtNetwork.QSslCipher.usedBits": (),
-# class PySide2.QtNetwork.QSslConfiguration:
-# class PySide2.QtNetwork.QSslConfiguration.NextProtocolNegotiationStatus:
- "PySide2.QtNetwork.QSslConfiguration.__init__": [(), ('PySide2.QtNetwork.QSslConfiguration',)],
- "PySide2.QtNetwork.QSslConfiguration.__copy__": (),
- "PySide2.QtNetwork.QSslConfiguration.allowedNextProtocols": (),
- "PySide2.QtNetwork.QSslConfiguration.backendConfiguration": (),
- "PySide2.QtNetwork.QSslConfiguration.caCertificates": (),
- "PySide2.QtNetwork.QSslConfiguration.ciphers": (),
- "PySide2.QtNetwork.QSslConfiguration.defaultConfiguration": (),
- "PySide2.QtNetwork.QSslConfiguration.defaultDtlsConfiguration": (),
- "PySide2.QtNetwork.QSslConfiguration.diffieHellmanParameters": (),
- "PySide2.QtNetwork.QSslConfiguration.dtlsCookieVerificationEnabled": (),
- "PySide2.QtNetwork.QSslConfiguration.ephemeralServerKey": (),
- "PySide2.QtNetwork.QSslConfiguration.isNull": (),
- "PySide2.QtNetwork.QSslConfiguration.localCertificate": (),
- "PySide2.QtNetwork.QSslConfiguration.localCertificateChain": (),
- "PySide2.QtNetwork.QSslConfiguration.nextNegotiatedProtocol": (),
- "PySide2.QtNetwork.QSslConfiguration.nextProtocolNegotiationStatus": (),
- "PySide2.QtNetwork.QSslConfiguration.ocspStaplingEnabled": (),
- "PySide2.QtNetwork.QSslConfiguration.peerCertificate": (),
- "PySide2.QtNetwork.QSslConfiguration.peerCertificateChain": (),
- "PySide2.QtNetwork.QSslConfiguration.peerVerifyDepth": (),
- "PySide2.QtNetwork.QSslConfiguration.peerVerifyMode": (),
- "PySide2.QtNetwork.QSslConfiguration.preSharedKeyIdentityHint": (),
- "PySide2.QtNetwork.QSslConfiguration.privateKey": (),
- "PySide2.QtNetwork.QSslConfiguration.protocol": (),
- "PySide2.QtNetwork.QSslConfiguration.sessionCipher": (),
- "PySide2.QtNetwork.QSslConfiguration.sessionProtocol": (),
- "PySide2.QtNetwork.QSslConfiguration.sessionTicket": (),
- "PySide2.QtNetwork.QSslConfiguration.sessionTicketLifeTimeHint": (),
- "PySide2.QtNetwork.QSslConfiguration.setAllowedNextProtocols": ('typing.Sequence',),
- "PySide2.QtNetwork.QSslConfiguration.setBackendConfiguration": ('typing.Dict',),
- "PySide2.QtNetwork.QSslConfiguration.setBackendConfigurationOption": ('PySide2.QtCore.QByteArray', 'typing.Any'),
- "PySide2.QtNetwork.QSslConfiguration.setCaCertificates": ('typing.Sequence',),
- "PySide2.QtNetwork.QSslConfiguration.setCiphers": ('typing.Sequence',),
- "PySide2.QtNetwork.QSslConfiguration.setDefaultConfiguration": ('PySide2.QtNetwork.QSslConfiguration',),
- "PySide2.QtNetwork.QSslConfiguration.setDefaultDtlsConfiguration": ('PySide2.QtNetwork.QSslConfiguration',),
- "PySide2.QtNetwork.QSslConfiguration.setDiffieHellmanParameters": ('PySide2.QtNetwork.QSslDiffieHellmanParameters',),
- "PySide2.QtNetwork.QSslConfiguration.setDtlsCookieVerificationEnabled": ('bool',),
- "PySide2.QtNetwork.QSslConfiguration.setLocalCertificate": ('PySide2.QtNetwork.QSslCertificate',),
- "PySide2.QtNetwork.QSslConfiguration.setLocalCertificateChain": ('typing.Sequence',),
- "PySide2.QtNetwork.QSslConfiguration.setOcspStaplingEnabled": ('bool',),
- "PySide2.QtNetwork.QSslConfiguration.setPeerVerifyDepth": ('int',),
- "PySide2.QtNetwork.QSslConfiguration.setPeerVerifyMode": ('PySide2.QtNetwork.QSslSocket.PeerVerifyMode',),
- "PySide2.QtNetwork.QSslConfiguration.setPreSharedKeyIdentityHint": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QSslConfiguration.setPrivateKey": ('PySide2.QtNetwork.QSslKey',),
- "PySide2.QtNetwork.QSslConfiguration.setProtocol": ('PySide2.QtNetwork.QSsl.SslProtocol',),
- "PySide2.QtNetwork.QSslConfiguration.setSessionTicket": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QSslConfiguration.setSslOption": ('PySide2.QtNetwork.QSsl.SslOption', 'bool'),
- "PySide2.QtNetwork.QSslConfiguration.supportedCiphers": (),
- "PySide2.QtNetwork.QSslConfiguration.swap": ('PySide2.QtNetwork.QSslConfiguration',),
- "PySide2.QtNetwork.QSslConfiguration.systemCaCertificates": (),
- "PySide2.QtNetwork.QSslConfiguration.testSslOption": ('PySide2.QtNetwork.QSsl.SslOption',),
-# class PySide2.QtNetwork.QSslDiffieHellmanParameters:
-# class PySide2.QtNetwork.QSslDiffieHellmanParameters.Error:
- "PySide2.QtNetwork.QSslDiffieHellmanParameters.__init__": [(), ('PySide2.QtNetwork.QSslDiffieHellmanParameters',)],
- "PySide2.QtNetwork.QSslDiffieHellmanParameters.__copy__": (),
- "PySide2.QtNetwork.QSslDiffieHellmanParameters.defaultParameters": (),
- "PySide2.QtNetwork.QSslDiffieHellmanParameters.error": (),
- "PySide2.QtNetwork.QSslDiffieHellmanParameters.errorString": (),
- "PySide2.QtNetwork.QSslDiffieHellmanParameters.fromEncoded": [('PySide2.QtCore.QByteArray', 'PySide2.QtNetwork.QSsl.EncodingFormat'), ('PySide2.QtCore.QIODevice', 'PySide2.QtNetwork.QSsl.EncodingFormat')],
- "PySide2.QtNetwork.QSslDiffieHellmanParameters.isEmpty": (),
- "PySide2.QtNetwork.QSslDiffieHellmanParameters.isValid": (),
- "PySide2.QtNetwork.QSslDiffieHellmanParameters.swap": ('PySide2.QtNetwork.QSslDiffieHellmanParameters',),
-# class PySide2.QtNetwork.QSslError:
-# class PySide2.QtNetwork.QSslError.SslError:
- "PySide2.QtNetwork.QSslError.__init__": [(), ('PySide2.QtNetwork.QSslError',), ('PySide2.QtNetwork.QSslError.SslError',), ('PySide2.QtNetwork.QSslError.SslError', 'PySide2.QtNetwork.QSslCertificate')],
- "PySide2.QtNetwork.QSslError.__copy__": (),
- "PySide2.QtNetwork.QSslError.certificate": (),
- "PySide2.QtNetwork.QSslError.error": (),
- "PySide2.QtNetwork.QSslError.errorString": (),
- "PySide2.QtNetwork.QSslError.swap": ('PySide2.QtNetwork.QSslError',),
-# class PySide2.QtNetwork.QSslKey:
- "PySide2.QtNetwork.QSslKey.__init__": [(), ('PySide2.QtCore.QByteArray', 'PySide2.QtNetwork.QSsl.KeyAlgorithm', 'PySide2.QtNetwork.QSsl.EncodingFormat', 'PySide2.QtNetwork.QSsl.KeyType', 'PySide2.QtCore.QByteArray'), ('PySide2.QtCore.QIODevice', 'PySide2.QtNetwork.QSsl.KeyAlgorithm', 'PySide2.QtNetwork.QSsl.EncodingFormat', 'PySide2.QtNetwork.QSsl.KeyType', 'PySide2.QtCore.QByteArray'), ('PySide2.QtNetwork.QSslKey',), ('int', 'PySide2.QtNetwork.QSsl.KeyType')],
- "PySide2.QtNetwork.QSslKey.__copy__": (),
- "PySide2.QtNetwork.QSslKey.algorithm": (),
- "PySide2.QtNetwork.QSslKey.clear": (),
- "PySide2.QtNetwork.QSslKey.handle": (),
- "PySide2.QtNetwork.QSslKey.isNull": (),
- "PySide2.QtNetwork.QSslKey.length": (),
- "PySide2.QtNetwork.QSslKey.swap": ('PySide2.QtNetwork.QSslKey',),
- "PySide2.QtNetwork.QSslKey.toDer": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QSslKey.toPem": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QSslKey.type": (),
-# class PySide2.QtNetwork.QSslPreSharedKeyAuthenticator:
- "PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.__init__": [(), ('PySide2.QtNetwork.QSslPreSharedKeyAuthenticator',)],
- "PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.__copy__": (),
- "PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.identity": (),
- "PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.identityHint": (),
- "PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.maximumIdentityLength": (),
- "PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.maximumPreSharedKeyLength": (),
- "PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.preSharedKey": (),
- "PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.setIdentity": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.setPreSharedKey": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.swap": ('PySide2.QtNetwork.QSslPreSharedKeyAuthenticator',),
-# class PySide2.QtNetwork.QSslSocket:
-# class PySide2.QtNetwork.QSslSocket.PeerVerifyMode:
-# class PySide2.QtNetwork.QSslSocket.SslMode:
- "PySide2.QtNetwork.QSslSocket.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QSslSocket.abort": (),
- "PySide2.QtNetwork.QSslSocket.addCaCertificate": ('PySide2.QtNetwork.QSslCertificate',),
- "PySide2.QtNetwork.QSslSocket.addCaCertificates": [('str', 'PySide2.QtNetwork.QSsl.EncodingFormat', 'PySide2.QtCore.QRegExp.PatternSyntax'), ('typing.Sequence',)],
- "PySide2.QtNetwork.QSslSocket.addDefaultCaCertificate": ('PySide2.QtNetwork.QSslCertificate',),
- "PySide2.QtNetwork.QSslSocket.addDefaultCaCertificates": [('str', 'PySide2.QtNetwork.QSsl.EncodingFormat', 'PySide2.QtCore.QRegExp.PatternSyntax'), ('typing.Sequence',)],
- "PySide2.QtNetwork.QSslSocket.atEnd": (),
- "PySide2.QtNetwork.QSslSocket.bytesAvailable": (),
- "PySide2.QtNetwork.QSslSocket.bytesToWrite": (),
- "PySide2.QtNetwork.QSslSocket.caCertificates": (),
- "PySide2.QtNetwork.QSslSocket.canReadLine": (),
- "PySide2.QtNetwork.QSslSocket.ciphers": (),
- "PySide2.QtNetwork.QSslSocket.close": (),
- "PySide2.QtNetwork.QSslSocket.connectToHost": [('PySide2.QtNetwork.QHostAddress', 'int', 'PySide2.QtCore.QIODevice.OpenMode'), ('str', 'int', 'PySide2.QtCore.QIODevice.OpenMode', 'PySide2.QtNetwork.QAbstractSocket.NetworkLayerProtocol')],
- "PySide2.QtNetwork.QSslSocket.connectToHostEncrypted": [('str', 'int', 'PySide2.QtCore.QIODevice.OpenMode', 'PySide2.QtNetwork.QAbstractSocket.NetworkLayerProtocol'), ('str', 'int', 'str', 'PySide2.QtCore.QIODevice.OpenMode', 'PySide2.QtNetwork.QAbstractSocket.NetworkLayerProtocol')],
- "PySide2.QtNetwork.QSslSocket.defaultCaCertificates": (),
- "PySide2.QtNetwork.QSslSocket.defaultCiphers": (),
- "PySide2.QtNetwork.QSslSocket.disconnectFromHost": (),
- "PySide2.QtNetwork.QSslSocket.encryptedBytesAvailable": (),
- "PySide2.QtNetwork.QSslSocket.encryptedBytesToWrite": (),
- "PySide2.QtNetwork.QSslSocket.flush": (),
- "PySide2.QtNetwork.QSslSocket.ignoreSslErrors": [(), ('typing.Sequence',)],
- "PySide2.QtNetwork.QSslSocket.isEncrypted": (),
- "PySide2.QtNetwork.QSslSocket.localCertificate": (),
- "PySide2.QtNetwork.QSslSocket.localCertificateChain": (),
- "PySide2.QtNetwork.QSslSocket.mode": (),
- "PySide2.QtNetwork.QSslSocket.ocspResponses": (),
- "PySide2.QtNetwork.QSslSocket.peerCertificate": (),
- "PySide2.QtNetwork.QSslSocket.peerCertificateChain": (),
- "PySide2.QtNetwork.QSslSocket.peerVerifyDepth": (),
- "PySide2.QtNetwork.QSslSocket.peerVerifyMode": (),
- "PySide2.QtNetwork.QSslSocket.peerVerifyName": (),
- "PySide2.QtNetwork.QSslSocket.privateKey": (),
- "PySide2.QtNetwork.QSslSocket.protocol": (),
- "PySide2.QtNetwork.QSslSocket.readData": ('bytes', 'int'),
- "PySide2.QtNetwork.QSslSocket.resume": (),
- "PySide2.QtNetwork.QSslSocket.sessionCipher": (),
- "PySide2.QtNetwork.QSslSocket.sessionProtocol": (),
- "PySide2.QtNetwork.QSslSocket.setCaCertificates": ('typing.Sequence',),
- "PySide2.QtNetwork.QSslSocket.setCiphers": [('str',), ('typing.Sequence',)],
- "PySide2.QtNetwork.QSslSocket.setDefaultCaCertificates": ('typing.Sequence',),
- "PySide2.QtNetwork.QSslSocket.setDefaultCiphers": ('typing.Sequence',),
- "PySide2.QtNetwork.QSslSocket.setLocalCertificate": [('PySide2.QtNetwork.QSslCertificate',), ('str', 'PySide2.QtNetwork.QSsl.EncodingFormat')],
- "PySide2.QtNetwork.QSslSocket.setLocalCertificateChain": ('typing.Sequence',),
- "PySide2.QtNetwork.QSslSocket.setPeerVerifyDepth": ('int',),
- "PySide2.QtNetwork.QSslSocket.setPeerVerifyMode": ('PySide2.QtNetwork.QSslSocket.PeerVerifyMode',),
- "PySide2.QtNetwork.QSslSocket.setPeerVerifyName": ('str',),
- "PySide2.QtNetwork.QSslSocket.setPrivateKey": [('PySide2.QtNetwork.QSslKey',), ('str', 'PySide2.QtNetwork.QSsl.KeyAlgorithm', 'PySide2.QtNetwork.QSsl.EncodingFormat', 'PySide2.QtCore.QByteArray')],
- "PySide2.QtNetwork.QSslSocket.setProtocol": ('PySide2.QtNetwork.QSsl.SslProtocol',),
- "PySide2.QtNetwork.QSslSocket.setReadBufferSize": ('int',),
- "PySide2.QtNetwork.QSslSocket.setSocketDescriptor": ('int', 'PySide2.QtNetwork.QAbstractSocket.SocketState', 'PySide2.QtCore.QIODevice.OpenMode'),
- "PySide2.QtNetwork.QSslSocket.setSocketOption": ('PySide2.QtNetwork.QAbstractSocket.SocketOption', 'typing.Any'),
- "PySide2.QtNetwork.QSslSocket.setSslConfiguration": ('PySide2.QtNetwork.QSslConfiguration',),
- "PySide2.QtNetwork.QSslSocket.socketOption": ('PySide2.QtNetwork.QAbstractSocket.SocketOption',),
- "PySide2.QtNetwork.QSslSocket.sslConfiguration": (),
- "PySide2.QtNetwork.QSslSocket.sslErrors": (),
- "PySide2.QtNetwork.QSslSocket.sslLibraryBuildVersionNumber": (),
- "PySide2.QtNetwork.QSslSocket.sslLibraryBuildVersionString": (),
- "PySide2.QtNetwork.QSslSocket.sslLibraryVersionNumber": (),
- "PySide2.QtNetwork.QSslSocket.sslLibraryVersionString": (),
- "PySide2.QtNetwork.QSslSocket.startClientEncryption": (),
- "PySide2.QtNetwork.QSslSocket.startServerEncryption": (),
- "PySide2.QtNetwork.QSslSocket.supportedCiphers": (),
- "PySide2.QtNetwork.QSslSocket.supportsSsl": (),
- "PySide2.QtNetwork.QSslSocket.systemCaCertificates": (),
- "PySide2.QtNetwork.QSslSocket.waitForBytesWritten": ('int',),
- "PySide2.QtNetwork.QSslSocket.waitForConnected": ('int',),
- "PySide2.QtNetwork.QSslSocket.waitForDisconnected": ('int',),
- "PySide2.QtNetwork.QSslSocket.waitForEncrypted": ('int',),
- "PySide2.QtNetwork.QSslSocket.waitForReadyRead": ('int',),
- "PySide2.QtNetwork.QSslSocket.writeData": ('bytes', 'int'),
-# class PySide2.QtNetwork.QTcpServer:
- "PySide2.QtNetwork.QTcpServer.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QTcpServer.addPendingConnection": ('PySide2.QtNetwork.QTcpSocket',),
- "PySide2.QtNetwork.QTcpServer.close": (),
- "PySide2.QtNetwork.QTcpServer.errorString": (),
- "PySide2.QtNetwork.QTcpServer.hasPendingConnections": (),
- "PySide2.QtNetwork.QTcpServer.incomingConnection": ('int',),
- "PySide2.QtNetwork.QTcpServer.isListening": (),
- "PySide2.QtNetwork.QTcpServer.listen": ('PySide2.QtNetwork.QHostAddress', 'int'),
- "PySide2.QtNetwork.QTcpServer.maxPendingConnections": (),
- "PySide2.QtNetwork.QTcpServer.nextPendingConnection": (),
- "PySide2.QtNetwork.QTcpServer.pauseAccepting": (),
- "PySide2.QtNetwork.QTcpServer.proxy": (),
- "PySide2.QtNetwork.QTcpServer.resumeAccepting": (),
- "PySide2.QtNetwork.QTcpServer.serverAddress": (),
- "PySide2.QtNetwork.QTcpServer.serverError": (),
- "PySide2.QtNetwork.QTcpServer.serverPort": (),
- "PySide2.QtNetwork.QTcpServer.setMaxPendingConnections": ('int',),
- "PySide2.QtNetwork.QTcpServer.setProxy": ('PySide2.QtNetwork.QNetworkProxy',),
- "PySide2.QtNetwork.QTcpServer.setSocketDescriptor": ('int',),
- "PySide2.QtNetwork.QTcpServer.socketDescriptor": (),
- "PySide2.QtNetwork.QTcpServer.waitForNewConnection": ('int',),
-# class PySide2.QtNetwork.QTcpSocket:
- "PySide2.QtNetwork.QTcpSocket.__init__": ('PySide2.QtCore.QObject',),
-# class PySide2.QtNetwork.QUdpSocket:
- "PySide2.QtNetwork.QUdpSocket.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QUdpSocket.hasPendingDatagrams": (),
- "PySide2.QtNetwork.QUdpSocket.joinMulticastGroup": [('PySide2.QtNetwork.QHostAddress',), ('PySide2.QtNetwork.QHostAddress', 'PySide2.QtNetwork.QNetworkInterface')],
- "PySide2.QtNetwork.QUdpSocket.leaveMulticastGroup": [('PySide2.QtNetwork.QHostAddress',), ('PySide2.QtNetwork.QHostAddress', 'PySide2.QtNetwork.QNetworkInterface')],
- "PySide2.QtNetwork.QUdpSocket.multicastInterface": (),
- "PySide2.QtNetwork.QUdpSocket.pendingDatagramSize": (),
- "PySide2.QtNetwork.QUdpSocket.readDatagram": ('bytes', 'int', 'PySide2.QtNetwork.QHostAddress'),
- "PySide2.QtNetwork.QUdpSocket.receiveDatagram": ('int',),
- "PySide2.QtNetwork.QUdpSocket.setMulticastInterface": ('PySide2.QtNetwork.QNetworkInterface',),
- "PySide2.QtNetwork.QUdpSocket.writeDatagram": [('PySide2.QtCore.QByteArray', 'PySide2.QtNetwork.QHostAddress', 'int'), ('PySide2.QtNetwork.QNetworkDatagram',)],
- }) if "PySide2.QtNetwork" in sys.modules else None
-# Module PySide2.QtTest
-sig_dict.update({
-# class PySide2.QtTest.QTest:
-# class PySide2.QtTest.QTest.KeyAction:
-# class PySide2.QtTest.QTest.MouseAction:
-# class PySide2.QtTest.QTest.QBenchmarkMetric:
-# class PySide2.QtTest.QTest.QTouchEventSequence:
- "PySide2.QtTest.QTest.QTouchEventSequence.commit": ('bool',),
- "PySide2.QtTest.QTest.QTouchEventSequence.move": [('int', 'PySide2.QtCore.QPoint', 'PySide2.QtGui.QWindow'), ('int', 'PySide2.QtCore.QPoint', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtTest.QTest.QTouchEventSequence.press": [('int', 'PySide2.QtCore.QPoint', 'PySide2.QtGui.QWindow'), ('int', 'PySide2.QtCore.QPoint', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtTest.QTest.QTouchEventSequence.release": [('int', 'PySide2.QtCore.QPoint', 'PySide2.QtGui.QWindow'), ('int', 'PySide2.QtCore.QPoint', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtTest.QTest.QTouchEventSequence.stationary": ('int',),
-# class PySide2.QtTest.QTest.TestFailMode:
- "PySide2.QtTest.QTest.addColumnInternal": ('int', 'bytes'),
- "PySide2.QtTest.QTest.asciiToKey": ('int',),
- "PySide2.QtTest.QTest.compare_ptr_helper": ('int', 'int', 'bytes', 'bytes', 'bytes', 'int'),
- "PySide2.QtTest.QTest.compare_string_helper": ('bytes', 'bytes', 'bytes', 'bytes', 'bytes', 'int'),
- "PySide2.QtTest.QTest.createTouchDevice": ('PySide2.QtGui.QTouchDevice.DeviceType',),
- "PySide2.QtTest.QTest.currentAppName": (),
- "PySide2.QtTest.QTest.currentDataTag": (),
- "PySide2.QtTest.QTest.currentTestFailed": (),
- "PySide2.QtTest.QTest.currentTestFunction": (),
- "PySide2.QtTest.QTest.ignoreMessage": [('PySide2.QtCore.QtMsgType', 'PySide2.QtCore.QRegularExpression'), ('PySide2.QtCore.QtMsgType', 'bytes')],
- "PySide2.QtTest.QTest.keyClick": [('PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.Key', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtGui.QWindow', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.Key', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtWidgets.QWidget', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int')],
- "PySide2.QtTest.QTest.keyClicks": ('PySide2.QtWidgets.QWidget', 'str', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'),
- "PySide2.QtTest.QTest.keyEvent": [('PySide2.QtTest.QTest.KeyAction', 'PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.Key', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtTest.QTest.KeyAction', 'PySide2.QtGui.QWindow', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtTest.QTest.KeyAction', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.Key', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtTest.QTest.KeyAction', 'PySide2.QtWidgets.QWidget', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int')],
- "PySide2.QtTest.QTest.keyPress": [('PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.Key', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtGui.QWindow', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.Key', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtWidgets.QWidget', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int')],
- "PySide2.QtTest.QTest.keyRelease": [('PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.Key', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtGui.QWindow', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.Key', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtWidgets.QWidget', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int')],
- "PySide2.QtTest.QTest.keySequence": [('PySide2.QtGui.QWindow', 'PySide2.QtGui.QKeySequence'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtGui.QKeySequence')],
- "PySide2.QtTest.QTest.keyToAscii": ('PySide2.QtCore.Qt.Key',),
- "PySide2.QtTest.QTest.mouseClick": [('PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QPoint', 'int'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QPoint', 'int')],
- "PySide2.QtTest.QTest.mouseDClick": [('PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QPoint', 'int'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QPoint', 'int')],
- "PySide2.QtTest.QTest.mouseEvent": [('PySide2.QtTest.QTest.MouseAction', 'PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QPoint', 'int'), ('PySide2.QtTest.QTest.MouseAction', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QPoint', 'int')],
- "PySide2.QtTest.QTest.mouseMove": [('PySide2.QtGui.QWindow', 'PySide2.QtCore.QPoint', 'int'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QPoint', 'int')],
- "PySide2.QtTest.QTest.mousePress": [('PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QPoint', 'int'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QPoint', 'int')],
- "PySide2.QtTest.QTest.mouseRelease": [('PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QPoint', 'int'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QPoint', 'int')],
- "PySide2.QtTest.QTest.qCleanup": (),
- "PySide2.QtTest.QTest.qElementData": ('bytes', 'int'),
- "PySide2.QtTest.QTest.qExpectFail": ('bytes', 'bytes', 'PySide2.QtTest.QTest.TestFailMode', 'bytes', 'int'),
- "PySide2.QtTest.QTest.qFindTestData": [('bytes', 'bytes', 'int', 'bytes'), ('str', 'bytes', 'int', 'bytes')],
- "PySide2.QtTest.QTest.qGlobalData": ('bytes', 'int'),
- "PySide2.QtTest.QTest.qRun": (),
- "PySide2.QtTest.QTest.qSkip": ('bytes', 'bytes', 'int'),
- "PySide2.QtTest.QTest.qWaitForWindowActive": ('PySide2.QtWidgets.QWidget', 'int'),
- "PySide2.QtTest.QTest.qWaitForWindowExposed": ('PySide2.QtWidgets.QWidget', 'int'),
- "PySide2.QtTest.QTest.sendKeyEvent": [('PySide2.QtTest.QTest.KeyAction', 'PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.Key', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtTest.QTest.KeyAction', 'PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.Key', 'str', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtTest.QTest.KeyAction', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.Key', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtTest.QTest.KeyAction', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.Key', 'str', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int')],
- "PySide2.QtTest.QTest.setBenchmarkResult": ('float', 'PySide2.QtTest.QTest.QBenchmarkMetric'),
- "PySide2.QtTest.QTest.setMainSourcePath": ('bytes', 'bytes'),
- "PySide2.QtTest.QTest.simulateEvent": [('PySide2.QtGui.QWindow', 'bool', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'str', 'bool', 'int'), ('PySide2.QtWidgets.QWidget', 'bool', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'str', 'bool', 'int')],
- "PySide2.QtTest.QTest.testObject": (),
- "PySide2.QtTest.QTest.toPrettyCString": ('bytes', 'int'),
- "PySide2.QtTest.QTest.touchEvent": [('PySide2.QtGui.QWindow', 'PySide2.QtGui.QTouchDevice', 'bool'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtGui.QTouchDevice', 'bool')],
- }) if "PySide2.QtTest" in sys.modules else None
-# Module PySide2.QtConcurrent
-sig_dict.update({
-# class PySide2.QtConcurrent.QtConcurrent:
-# class PySide2.QtConcurrent.QtConcurrent.ReduceOption:
-# class PySide2.QtConcurrent.QtConcurrent.ReduceOptions:
-# class PySide2.QtConcurrent.QtConcurrent.ThreadFunctionResult:
- }) if "PySide2.QtConcurrent" in sys.modules else None
-# Module PySide2.QtWinExtras
-sig_dict.update({
-# class PySide2.QtWinExtras.QWinColorizationChangeEvent:
- "PySide2.QtWinExtras.QWinColorizationChangeEvent.__init__": ('int', 'bool'),
- "PySide2.QtWinExtras.QWinColorizationChangeEvent.color": (),
- "PySide2.QtWinExtras.QWinColorizationChangeEvent.opaqueBlend": (),
-# class PySide2.QtWinExtras.QWinCompositionChangeEvent:
- "PySide2.QtWinExtras.QWinCompositionChangeEvent.__init__": ('bool',),
- "PySide2.QtWinExtras.QWinCompositionChangeEvent.isCompositionEnabled": (),
-# class PySide2.QtWinExtras.QWinEvent:
- "PySide2.QtWinExtras.QWinEvent.__init__": ('int',),
-# class PySide2.QtWinExtras.QWinJumpList:
- "PySide2.QtWinExtras.QWinJumpList.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWinExtras.QWinJumpList.addCategory": [('PySide2.QtWinExtras.QWinJumpListCategory',), ('str', 'typing.Sequence')],
- "PySide2.QtWinExtras.QWinJumpList.categories": (),
- "PySide2.QtWinExtras.QWinJumpList.clear": (),
- "PySide2.QtWinExtras.QWinJumpList.frequent": (),
- "PySide2.QtWinExtras.QWinJumpList.identifier": (),
- "PySide2.QtWinExtras.QWinJumpList.recent": (),
- "PySide2.QtWinExtras.QWinJumpList.setIdentifier": ('str',),
- "PySide2.QtWinExtras.QWinJumpList.tasks": (),
-# class PySide2.QtWinExtras.QWinJumpListCategory:
-# class PySide2.QtWinExtras.QWinJumpListCategory.Type:
- "PySide2.QtWinExtras.QWinJumpListCategory.__init__": ('str',),
- "PySide2.QtWinExtras.QWinJumpListCategory.addDestination": ('str',),
- "PySide2.QtWinExtras.QWinJumpListCategory.addItem": ('PySide2.QtWinExtras.QWinJumpListItem',),
- "PySide2.QtWinExtras.QWinJumpListCategory.addLink": [('PySide2.QtGui.QIcon', 'str', 'str', 'typing.Sequence'), ('str', 'str', 'typing.Sequence')],
- "PySide2.QtWinExtras.QWinJumpListCategory.addSeparator": (),
- "PySide2.QtWinExtras.QWinJumpListCategory.clear": (),
- "PySide2.QtWinExtras.QWinJumpListCategory.count": (),
- "PySide2.QtWinExtras.QWinJumpListCategory.isEmpty": (),
- "PySide2.QtWinExtras.QWinJumpListCategory.isVisible": (),
- "PySide2.QtWinExtras.QWinJumpListCategory.items": (),
- "PySide2.QtWinExtras.QWinJumpListCategory.setTitle": ('str',),
- "PySide2.QtWinExtras.QWinJumpListCategory.setVisible": ('bool',),
- "PySide2.QtWinExtras.QWinJumpListCategory.title": (),
- "PySide2.QtWinExtras.QWinJumpListCategory.type": (),
-# class PySide2.QtWinExtras.QWinJumpListItem:
-# class PySide2.QtWinExtras.QWinJumpListItem.Type:
- "PySide2.QtWinExtras.QWinJumpListItem.__init__": ('PySide2.QtWinExtras.QWinJumpListItem.Type',),
- "PySide2.QtWinExtras.QWinJumpListItem.arguments": (),
- "PySide2.QtWinExtras.QWinJumpListItem.description": (),
- "PySide2.QtWinExtras.QWinJumpListItem.filePath": (),
- "PySide2.QtWinExtras.QWinJumpListItem.icon": (),
- "PySide2.QtWinExtras.QWinJumpListItem.setArguments": ('typing.Sequence',),
- "PySide2.QtWinExtras.QWinJumpListItem.setDescription": ('str',),
- "PySide2.QtWinExtras.QWinJumpListItem.setFilePath": ('str',),
- "PySide2.QtWinExtras.QWinJumpListItem.setIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtWinExtras.QWinJumpListItem.setTitle": ('str',),
- "PySide2.QtWinExtras.QWinJumpListItem.setType": ('PySide2.QtWinExtras.QWinJumpListItem.Type',),
- "PySide2.QtWinExtras.QWinJumpListItem.setWorkingDirectory": ('str',),
- "PySide2.QtWinExtras.QWinJumpListItem.title": (),
- "PySide2.QtWinExtras.QWinJumpListItem.type": (),
- "PySide2.QtWinExtras.QWinJumpListItem.workingDirectory": (),
-# class PySide2.QtWinExtras.QWinTaskbarButton:
- "PySide2.QtWinExtras.QWinTaskbarButton.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWinExtras.QWinTaskbarButton.clearOverlayIcon": (),
- "PySide2.QtWinExtras.QWinTaskbarButton.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWinExtras.QWinTaskbarButton.overlayAccessibleDescription": (),
- "PySide2.QtWinExtras.QWinTaskbarButton.overlayIcon": (),
- "PySide2.QtWinExtras.QWinTaskbarButton.progress": (),
- "PySide2.QtWinExtras.QWinTaskbarButton.setOverlayAccessibleDescription": ('str',),
- "PySide2.QtWinExtras.QWinTaskbarButton.setOverlayIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtWinExtras.QWinTaskbarButton.setWindow": ('PySide2.QtGui.QWindow',),
- "PySide2.QtWinExtras.QWinTaskbarButton.window": (),
-# class PySide2.QtWinExtras.QWinTaskbarProgress:
- "PySide2.QtWinExtras.QWinTaskbarProgress.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWinExtras.QWinTaskbarProgress.hide": (),
- "PySide2.QtWinExtras.QWinTaskbarProgress.isPaused": (),
- "PySide2.QtWinExtras.QWinTaskbarProgress.isStopped": (),
- "PySide2.QtWinExtras.QWinTaskbarProgress.isVisible": (),
- "PySide2.QtWinExtras.QWinTaskbarProgress.maximum": (),
- "PySide2.QtWinExtras.QWinTaskbarProgress.minimum": (),
- "PySide2.QtWinExtras.QWinTaskbarProgress.pause": (),
- "PySide2.QtWinExtras.QWinTaskbarProgress.reset": (),
- "PySide2.QtWinExtras.QWinTaskbarProgress.resume": (),
- "PySide2.QtWinExtras.QWinTaskbarProgress.setMaximum": ('int',),
- "PySide2.QtWinExtras.QWinTaskbarProgress.setMinimum": ('int',),
- "PySide2.QtWinExtras.QWinTaskbarProgress.setPaused": ('bool',),
- "PySide2.QtWinExtras.QWinTaskbarProgress.setRange": ('int', 'int'),
- "PySide2.QtWinExtras.QWinTaskbarProgress.setValue": ('int',),
- "PySide2.QtWinExtras.QWinTaskbarProgress.setVisible": ('bool',),
- "PySide2.QtWinExtras.QWinTaskbarProgress.show": (),
- "PySide2.QtWinExtras.QWinTaskbarProgress.stop": (),
- "PySide2.QtWinExtras.QWinTaskbarProgress.value": (),
-# class PySide2.QtWinExtras.QWinThumbnailToolBar:
- "PySide2.QtWinExtras.QWinThumbnailToolBar.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWinExtras.QWinThumbnailToolBar.addButton": ('PySide2.QtWinExtras.QWinThumbnailToolButton',),
- "PySide2.QtWinExtras.QWinThumbnailToolBar.buttons": (),
- "PySide2.QtWinExtras.QWinThumbnailToolBar.clear": (),
- "PySide2.QtWinExtras.QWinThumbnailToolBar.count": (),
- "PySide2.QtWinExtras.QWinThumbnailToolBar.iconicLivePreviewPixmap": (),
- "PySide2.QtWinExtras.QWinThumbnailToolBar.iconicPixmapNotificationsEnabled": (),
- "PySide2.QtWinExtras.QWinThumbnailToolBar.iconicThumbnailPixmap": (),
- "PySide2.QtWinExtras.QWinThumbnailToolBar.removeButton": ('PySide2.QtWinExtras.QWinThumbnailToolButton',),
- "PySide2.QtWinExtras.QWinThumbnailToolBar.setButtons": ('typing.Sequence',),
- "PySide2.QtWinExtras.QWinThumbnailToolBar.setIconicLivePreviewPixmap": ('PySide2.QtGui.QPixmap',),
- "PySide2.QtWinExtras.QWinThumbnailToolBar.setIconicPixmapNotificationsEnabled": ('bool',),
- "PySide2.QtWinExtras.QWinThumbnailToolBar.setIconicThumbnailPixmap": ('PySide2.QtGui.QPixmap',),
- "PySide2.QtWinExtras.QWinThumbnailToolBar.setWindow": ('PySide2.QtGui.QWindow',),
- "PySide2.QtWinExtras.QWinThumbnailToolBar.window": (),
-# class PySide2.QtWinExtras.QWinThumbnailToolButton:
- "PySide2.QtWinExtras.QWinThumbnailToolButton.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWinExtras.QWinThumbnailToolButton.click": (),
- "PySide2.QtWinExtras.QWinThumbnailToolButton.dismissOnClick": (),
- "PySide2.QtWinExtras.QWinThumbnailToolButton.icon": (),
- "PySide2.QtWinExtras.QWinThumbnailToolButton.isEnabled": (),
- "PySide2.QtWinExtras.QWinThumbnailToolButton.isFlat": (),
- "PySide2.QtWinExtras.QWinThumbnailToolButton.isInteractive": (),
- "PySide2.QtWinExtras.QWinThumbnailToolButton.isVisible": (),
- "PySide2.QtWinExtras.QWinThumbnailToolButton.setDismissOnClick": ('bool',),
- "PySide2.QtWinExtras.QWinThumbnailToolButton.setEnabled": ('bool',),
- "PySide2.QtWinExtras.QWinThumbnailToolButton.setFlat": ('bool',),
- "PySide2.QtWinExtras.QWinThumbnailToolButton.setIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtWinExtras.QWinThumbnailToolButton.setInteractive": ('bool',),
- "PySide2.QtWinExtras.QWinThumbnailToolButton.setToolTip": ('str',),
- "PySide2.QtWinExtras.QWinThumbnailToolButton.setVisible": ('bool',),
- "PySide2.QtWinExtras.QWinThumbnailToolButton.toolTip": (),
-# class PySide2.QtWinExtras.QtWin:
-# class PySide2.QtWinExtras.QtWin.HBitmapFormat:
-# class PySide2.QtWinExtras.QtWin.WindowFlip3DPolicy:
- "PySide2.QtWinExtras.QtWin.colorizationColor": (),
- "PySide2.QtWinExtras.QtWin.disableBlurBehindWindow": ('PySide2.QtGui.QWindow',),
- "PySide2.QtWinExtras.QtWin.enableBlurBehindWindow": [('PySide2.QtGui.QWindow',), ('PySide2.QtGui.QWindow', 'PySide2.QtGui.QRegion')],
- "PySide2.QtWinExtras.QtWin.errorStringFromHresult": ('int',),
- "PySide2.QtWinExtras.QtWin.extendFrameIntoClientArea": [('PySide2.QtGui.QWindow', 'PySide2.QtCore.QMargins'), ('PySide2.QtGui.QWindow', 'int', 'int', 'int', 'int')],
- "PySide2.QtWinExtras.QtWin.isCompositionEnabled": (),
- "PySide2.QtWinExtras.QtWin.isCompositionOpaque": (),
- "PySide2.QtWinExtras.QtWin.isWindowExcludedFromPeek": ('PySide2.QtGui.QWindow',),
- "PySide2.QtWinExtras.QtWin.isWindowPeekDisallowed": ('PySide2.QtGui.QWindow',),
- "PySide2.QtWinExtras.QtWin.markFullscreenWindow": ('PySide2.QtGui.QWindow', 'bool'),
- "PySide2.QtWinExtras.QtWin.realColorizationColor": (),
- "PySide2.QtWinExtras.QtWin.resetExtendedFrame": ('PySide2.QtGui.QWindow',),
- "PySide2.QtWinExtras.QtWin.setCompositionEnabled": ('bool',),
- "PySide2.QtWinExtras.QtWin.setCurrentProcessExplicitAppUserModelID": ('str',),
- "PySide2.QtWinExtras.QtWin.setWindowDisallowPeek": ('PySide2.QtGui.QWindow', 'bool'),
- "PySide2.QtWinExtras.QtWin.setWindowExcludedFromPeek": ('PySide2.QtGui.QWindow', 'bool'),
- "PySide2.QtWinExtras.QtWin.setWindowFlip3DPolicy": ('PySide2.QtGui.QWindow', 'PySide2.QtWinExtras.QtWin.WindowFlip3DPolicy'),
- "PySide2.QtWinExtras.QtWin.stringFromHresult": ('int',),
- "PySide2.QtWinExtras.QtWin.taskbarActivateTab": ('PySide2.QtGui.QWindow',),
- "PySide2.QtWinExtras.QtWin.taskbarActivateTabAlt": ('PySide2.QtGui.QWindow',),
- "PySide2.QtWinExtras.QtWin.taskbarAddTab": ('PySide2.QtGui.QWindow',),
- "PySide2.QtWinExtras.QtWin.taskbarDeleteTab": ('PySide2.QtGui.QWindow',),
- "PySide2.QtWinExtras.QtWin.windowFlip3DPolicy": ('PySide2.QtGui.QWindow',),
- }) if "PySide2.QtWinExtras" in sys.modules else None
-# Module PySide2.QtXml
-sig_dict.update({
-# class PySide2.QtXml.QDomAttr:
- "PySide2.QtXml.QDomAttr.__init__": [(), ('PySide2.QtXml.QDomAttr',)],
- "PySide2.QtXml.QDomAttr.__copy__": (),
- "PySide2.QtXml.QDomAttr.name": (),
- "PySide2.QtXml.QDomAttr.nodeType": (),
- "PySide2.QtXml.QDomAttr.ownerElement": (),
- "PySide2.QtXml.QDomAttr.setValue": ('str',),
- "PySide2.QtXml.QDomAttr.specified": (),
- "PySide2.QtXml.QDomAttr.value": (),
-# class PySide2.QtXml.QDomCDATASection:
- "PySide2.QtXml.QDomCDATASection.__init__": [(), ('PySide2.QtXml.QDomCDATASection',)],
- "PySide2.QtXml.QDomCDATASection.__copy__": (),
- "PySide2.QtXml.QDomCDATASection.nodeType": (),
-# class PySide2.QtXml.QDomCharacterData:
- "PySide2.QtXml.QDomCharacterData.__init__": [(), ('PySide2.QtXml.QDomCharacterData',)],
- "PySide2.QtXml.QDomCharacterData.__copy__": (),
- "PySide2.QtXml.QDomCharacterData.appendData": ('str',),
- "PySide2.QtXml.QDomCharacterData.data": (),
- "PySide2.QtXml.QDomCharacterData.deleteData": ('int', 'int'),
- "PySide2.QtXml.QDomCharacterData.insertData": ('int', 'str'),
- "PySide2.QtXml.QDomCharacterData.length": (),
- "PySide2.QtXml.QDomCharacterData.nodeType": (),
- "PySide2.QtXml.QDomCharacterData.replaceData": ('int', 'int', 'str'),
- "PySide2.QtXml.QDomCharacterData.setData": ('str',),
- "PySide2.QtXml.QDomCharacterData.substringData": ('int', 'int'),
-# class PySide2.QtXml.QDomComment:
- "PySide2.QtXml.QDomComment.__init__": [(), ('PySide2.QtXml.QDomComment',)],
- "PySide2.QtXml.QDomComment.__copy__": (),
- "PySide2.QtXml.QDomComment.nodeType": (),
-# class PySide2.QtXml.QDomDocument:
- "PySide2.QtXml.QDomDocument.__init__": [(), ('PySide2.QtXml.QDomDocument',), ('PySide2.QtXml.QDomDocumentType',), ('str',)],
- "PySide2.QtXml.QDomDocument.__copy__": (),
- "PySide2.QtXml.QDomDocument.createAttribute": ('str',),
- "PySide2.QtXml.QDomDocument.createAttributeNS": ('str', 'str'),
- "PySide2.QtXml.QDomDocument.createCDATASection": ('str',),
- "PySide2.QtXml.QDomDocument.createComment": ('str',),
- "PySide2.QtXml.QDomDocument.createDocumentFragment": (),
- "PySide2.QtXml.QDomDocument.createElement": ('str',),
- "PySide2.QtXml.QDomDocument.createElementNS": ('str', 'str'),
- "PySide2.QtXml.QDomDocument.createEntityReference": ('str',),
- "PySide2.QtXml.QDomDocument.createProcessingInstruction": ('str', 'str'),
- "PySide2.QtXml.QDomDocument.createTextNode": ('str',),
- "PySide2.QtXml.QDomDocument.doctype": (),
- "PySide2.QtXml.QDomDocument.documentElement": (),
- "PySide2.QtXml.QDomDocument.elementById": ('str',),
- "PySide2.QtXml.QDomDocument.elementsByTagName": ('str',),
- "PySide2.QtXml.QDomDocument.elementsByTagNameNS": ('str', 'str'),
- "PySide2.QtXml.QDomDocument.implementation": (),
- "PySide2.QtXml.QDomDocument.importNode": ('PySide2.QtXml.QDomNode', 'bool'),
- "PySide2.QtXml.QDomDocument.nodeType": (),
- "PySide2.QtXml.QDomDocument.setContent": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QByteArray', 'bool'), ('PySide2.QtCore.QIODevice',), ('PySide2.QtCore.QIODevice', 'bool'), ('PySide2.QtXml.QXmlInputSource', 'PySide2.QtXml.QXmlReader'), ('PySide2.QtXml.QXmlInputSource', 'bool'), ('str',), ('str', 'bool')],
- "PySide2.QtXml.QDomDocument.toByteArray": ('int',),
- "PySide2.QtXml.QDomDocument.toString": ('int',),
-# class PySide2.QtXml.QDomDocumentFragment:
- "PySide2.QtXml.QDomDocumentFragment.__init__": [(), ('PySide2.QtXml.QDomDocumentFragment',)],
- "PySide2.QtXml.QDomDocumentFragment.__copy__": (),
- "PySide2.QtXml.QDomDocumentFragment.nodeType": (),
-# class PySide2.QtXml.QDomDocumentType:
- "PySide2.QtXml.QDomDocumentType.__init__": [(), ('PySide2.QtXml.QDomDocumentType',)],
- "PySide2.QtXml.QDomDocumentType.__copy__": (),
- "PySide2.QtXml.QDomDocumentType.entities": (),
- "PySide2.QtXml.QDomDocumentType.internalSubset": (),
- "PySide2.QtXml.QDomDocumentType.name": (),
- "PySide2.QtXml.QDomDocumentType.nodeType": (),
- "PySide2.QtXml.QDomDocumentType.notations": (),
- "PySide2.QtXml.QDomDocumentType.publicId": (),
- "PySide2.QtXml.QDomDocumentType.systemId": (),
-# class PySide2.QtXml.QDomElement:
- "PySide2.QtXml.QDomElement.__init__": [(), ('PySide2.QtXml.QDomElement',)],
- "PySide2.QtXml.QDomElement.__copy__": (),
- "PySide2.QtXml.QDomElement.attribute": ('str', 'str'),
- "PySide2.QtXml.QDomElement.attributeNS": ('str', 'str', 'str'),
- "PySide2.QtXml.QDomElement.attributeNode": ('str',),
- "PySide2.QtXml.QDomElement.attributeNodeNS": ('str', 'str'),
- "PySide2.QtXml.QDomElement.attributes": (),
- "PySide2.QtXml.QDomElement.elementsByTagName": ('str',),
- "PySide2.QtXml.QDomElement.elementsByTagNameNS": ('str', 'str'),
- "PySide2.QtXml.QDomElement.hasAttribute": ('str',),
- "PySide2.QtXml.QDomElement.hasAttributeNS": ('str', 'str'),
- "PySide2.QtXml.QDomElement.nodeType": (),
- "PySide2.QtXml.QDomElement.removeAttribute": ('str',),
- "PySide2.QtXml.QDomElement.removeAttributeNS": ('str', 'str'),
- "PySide2.QtXml.QDomElement.removeAttributeNode": ('PySide2.QtXml.QDomAttr',),
- "PySide2.QtXml.QDomElement.setAttribute": [('str', 'float'), ('str', 'int'), ('str', 'str')],
- "PySide2.QtXml.QDomElement.setAttributeNS": [('str', 'str', 'float'), ('str', 'str', 'int'), ('str', 'str', 'str')],
- "PySide2.QtXml.QDomElement.setAttributeNode": ('PySide2.QtXml.QDomAttr',),
- "PySide2.QtXml.QDomElement.setAttributeNodeNS": ('PySide2.QtXml.QDomAttr',),
- "PySide2.QtXml.QDomElement.setTagName": ('str',),
- "PySide2.QtXml.QDomElement.tagName": (),
- "PySide2.QtXml.QDomElement.text": (),
-# class PySide2.QtXml.QDomEntity:
- "PySide2.QtXml.QDomEntity.__init__": [(), ('PySide2.QtXml.QDomEntity',)],
- "PySide2.QtXml.QDomEntity.__copy__": (),
- "PySide2.QtXml.QDomEntity.nodeType": (),
- "PySide2.QtXml.QDomEntity.notationName": (),
- "PySide2.QtXml.QDomEntity.publicId": (),
- "PySide2.QtXml.QDomEntity.systemId": (),
-# class PySide2.QtXml.QDomEntityReference:
- "PySide2.QtXml.QDomEntityReference.__init__": [(), ('PySide2.QtXml.QDomEntityReference',)],
- "PySide2.QtXml.QDomEntityReference.__copy__": (),
- "PySide2.QtXml.QDomEntityReference.nodeType": (),
-# class PySide2.QtXml.QDomImplementation:
-# class PySide2.QtXml.QDomImplementation.InvalidDataPolicy:
- "PySide2.QtXml.QDomImplementation.__init__": [(), ('PySide2.QtXml.QDomImplementation',)],
- "PySide2.QtXml.QDomImplementation.__copy__": (),
- "PySide2.QtXml.QDomImplementation.createDocument": ('str', 'str', 'PySide2.QtXml.QDomDocumentType'),
- "PySide2.QtXml.QDomImplementation.createDocumentType": ('str', 'str', 'str'),
- "PySide2.QtXml.QDomImplementation.hasFeature": ('str', 'str'),
- "PySide2.QtXml.QDomImplementation.invalidDataPolicy": (),
- "PySide2.QtXml.QDomImplementation.isNull": (),
- "PySide2.QtXml.QDomImplementation.setInvalidDataPolicy": ('PySide2.QtXml.QDomImplementation.InvalidDataPolicy',),
-# class PySide2.QtXml.QDomNamedNodeMap:
- "PySide2.QtXml.QDomNamedNodeMap.__init__": [(), ('PySide2.QtXml.QDomNamedNodeMap',)],
- "PySide2.QtXml.QDomNamedNodeMap.__copy__": (),
- "PySide2.QtXml.QDomNamedNodeMap.contains": ('str',),
- "PySide2.QtXml.QDomNamedNodeMap.count": (),
- "PySide2.QtXml.QDomNamedNodeMap.isEmpty": (),
- "PySide2.QtXml.QDomNamedNodeMap.item": ('int',),
- "PySide2.QtXml.QDomNamedNodeMap.length": (),
- "PySide2.QtXml.QDomNamedNodeMap.namedItem": ('str',),
- "PySide2.QtXml.QDomNamedNodeMap.namedItemNS": ('str', 'str'),
- "PySide2.QtXml.QDomNamedNodeMap.removeNamedItem": ('str',),
- "PySide2.QtXml.QDomNamedNodeMap.removeNamedItemNS": ('str', 'str'),
- "PySide2.QtXml.QDomNamedNodeMap.setNamedItem": ('PySide2.QtXml.QDomNode',),
- "PySide2.QtXml.QDomNamedNodeMap.setNamedItemNS": ('PySide2.QtXml.QDomNode',),
- "PySide2.QtXml.QDomNamedNodeMap.size": (),
-# class PySide2.QtXml.QDomNode:
-# class PySide2.QtXml.QDomNode.EncodingPolicy:
-# class PySide2.QtXml.QDomNode.NodeType:
- "PySide2.QtXml.QDomNode.__init__": [(), ('PySide2.QtXml.QDomNode',)],
- "PySide2.QtXml.QDomNode.__copy__": (),
- "PySide2.QtXml.QDomNode.__lshift__": ('PySide2.QtCore.QTextStream',),
- "PySide2.QtXml.QDomNode.appendChild": ('PySide2.QtXml.QDomNode',),
- "PySide2.QtXml.QDomNode.attributes": (),
- "PySide2.QtXml.QDomNode.childNodes": (),
- "PySide2.QtXml.QDomNode.clear": (),
- "PySide2.QtXml.QDomNode.cloneNode": ('bool',),
- "PySide2.QtXml.QDomNode.columnNumber": (),
- "PySide2.QtXml.QDomNode.firstChild": (),
- "PySide2.QtXml.QDomNode.firstChildElement": ('str',),
- "PySide2.QtXml.QDomNode.hasAttributes": (),
- "PySide2.QtXml.QDomNode.hasChildNodes": (),
- "PySide2.QtXml.QDomNode.insertAfter": ('PySide2.QtXml.QDomNode', 'PySide2.QtXml.QDomNode'),
- "PySide2.QtXml.QDomNode.insertBefore": ('PySide2.QtXml.QDomNode', 'PySide2.QtXml.QDomNode'),
- "PySide2.QtXml.QDomNode.isAttr": (),
- "PySide2.QtXml.QDomNode.isCDATASection": (),
- "PySide2.QtXml.QDomNode.isCharacterData": (),
- "PySide2.QtXml.QDomNode.isComment": (),
- "PySide2.QtXml.QDomNode.isDocument": (),
- "PySide2.QtXml.QDomNode.isDocumentFragment": (),
- "PySide2.QtXml.QDomNode.isDocumentType": (),
- "PySide2.QtXml.QDomNode.isElement": (),
- "PySide2.QtXml.QDomNode.isEntity": (),
- "PySide2.QtXml.QDomNode.isEntityReference": (),
- "PySide2.QtXml.QDomNode.isNotation": (),
- "PySide2.QtXml.QDomNode.isNull": (),
- "PySide2.QtXml.QDomNode.isProcessingInstruction": (),
- "PySide2.QtXml.QDomNode.isSupported": ('str', 'str'),
- "PySide2.QtXml.QDomNode.isText": (),
- "PySide2.QtXml.QDomNode.lastChild": (),
- "PySide2.QtXml.QDomNode.lastChildElement": ('str',),
- "PySide2.QtXml.QDomNode.lineNumber": (),
- "PySide2.QtXml.QDomNode.localName": (),
- "PySide2.QtXml.QDomNode.namedItem": ('str',),
- "PySide2.QtXml.QDomNode.namespaceURI": (),
- "PySide2.QtXml.QDomNode.nextSibling": (),
- "PySide2.QtXml.QDomNode.nextSiblingElement": ('str',),
- "PySide2.QtXml.QDomNode.nodeName": (),
- "PySide2.QtXml.QDomNode.nodeType": (),
- "PySide2.QtXml.QDomNode.nodeValue": (),
- "PySide2.QtXml.QDomNode.normalize": (),
- "PySide2.QtXml.QDomNode.ownerDocument": (),
- "PySide2.QtXml.QDomNode.parentNode": (),
- "PySide2.QtXml.QDomNode.prefix": (),
- "PySide2.QtXml.QDomNode.previousSibling": (),
- "PySide2.QtXml.QDomNode.previousSiblingElement": ('str',),
- "PySide2.QtXml.QDomNode.removeChild": ('PySide2.QtXml.QDomNode',),
- "PySide2.QtXml.QDomNode.replaceChild": ('PySide2.QtXml.QDomNode', 'PySide2.QtXml.QDomNode'),
- "PySide2.QtXml.QDomNode.save": ('PySide2.QtCore.QTextStream', 'int', 'PySide2.QtXml.QDomNode.EncodingPolicy'),
- "PySide2.QtXml.QDomNode.setNodeValue": ('str',),
- "PySide2.QtXml.QDomNode.setPrefix": ('str',),
- "PySide2.QtXml.QDomNode.toAttr": (),
- "PySide2.QtXml.QDomNode.toCDATASection": (),
- "PySide2.QtXml.QDomNode.toCharacterData": (),
- "PySide2.QtXml.QDomNode.toComment": (),
- "PySide2.QtXml.QDomNode.toDocument": (),
- "PySide2.QtXml.QDomNode.toDocumentFragment": (),
- "PySide2.QtXml.QDomNode.toDocumentType": (),
- "PySide2.QtXml.QDomNode.toElement": (),
- "PySide2.QtXml.QDomNode.toEntity": (),
- "PySide2.QtXml.QDomNode.toEntityReference": (),
- "PySide2.QtXml.QDomNode.toNotation": (),
- "PySide2.QtXml.QDomNode.toProcessingInstruction": (),
- "PySide2.QtXml.QDomNode.toText": (),
-# class PySide2.QtXml.QDomNodeList:
- "PySide2.QtXml.QDomNodeList.__init__": [(), ('PySide2.QtXml.QDomNodeList',)],
- "PySide2.QtXml.QDomNodeList.__copy__": (),
- "PySide2.QtXml.QDomNodeList.at": ('int',),
- "PySide2.QtXml.QDomNodeList.count": (),
- "PySide2.QtXml.QDomNodeList.isEmpty": (),
- "PySide2.QtXml.QDomNodeList.item": ('int',),
- "PySide2.QtXml.QDomNodeList.length": (),
- "PySide2.QtXml.QDomNodeList.size": (),
-# class PySide2.QtXml.QDomNotation:
- "PySide2.QtXml.QDomNotation.__init__": [(), ('PySide2.QtXml.QDomNotation',)],
- "PySide2.QtXml.QDomNotation.__copy__": (),
- "PySide2.QtXml.QDomNotation.nodeType": (),
- "PySide2.QtXml.QDomNotation.publicId": (),
- "PySide2.QtXml.QDomNotation.systemId": (),
-# class PySide2.QtXml.QDomProcessingInstruction:
- "PySide2.QtXml.QDomProcessingInstruction.__init__": [(), ('PySide2.QtXml.QDomProcessingInstruction',)],
- "PySide2.QtXml.QDomProcessingInstruction.__copy__": (),
- "PySide2.QtXml.QDomProcessingInstruction.data": (),
- "PySide2.QtXml.QDomProcessingInstruction.nodeType": (),
- "PySide2.QtXml.QDomProcessingInstruction.setData": ('str',),
- "PySide2.QtXml.QDomProcessingInstruction.target": (),
-# class PySide2.QtXml.QDomText:
- "PySide2.QtXml.QDomText.__init__": [(), ('PySide2.QtXml.QDomText',)],
- "PySide2.QtXml.QDomText.__copy__": (),
- "PySide2.QtXml.QDomText.nodeType": (),
- "PySide2.QtXml.QDomText.splitText": ('int',),
-# class PySide2.QtXml.QXmlAttributes:
- "PySide2.QtXml.QXmlAttributes.__init__": [(), ('PySide2.QtXml.QXmlAttributes',)],
- "PySide2.QtXml.QXmlAttributes.__copy__": (),
- "PySide2.QtXml.QXmlAttributes.append": ('str', 'str', 'str', 'str'),
- "PySide2.QtXml.QXmlAttributes.clear": (),
- "PySide2.QtXml.QXmlAttributes.count": (),
- "PySide2.QtXml.QXmlAttributes.index": [('str',), ('str', 'str')],
- "PySide2.QtXml.QXmlAttributes.length": (),
- "PySide2.QtXml.QXmlAttributes.localName": ('int',),
- "PySide2.QtXml.QXmlAttributes.qName": ('int',),
- "PySide2.QtXml.QXmlAttributes.swap": ('PySide2.QtXml.QXmlAttributes',),
- "PySide2.QtXml.QXmlAttributes.type": [('int',), ('str',), ('str', 'str')],
- "PySide2.QtXml.QXmlAttributes.uri": ('int',),
- "PySide2.QtXml.QXmlAttributes.value": [('int',), ('str',), ('str', 'str')],
-# class PySide2.QtXml.QXmlContentHandler:
- "PySide2.QtXml.QXmlContentHandler.__init__": (),
- "PySide2.QtXml.QXmlContentHandler.characters": ('str',),
- "PySide2.QtXml.QXmlContentHandler.endDocument": (),
- "PySide2.QtXml.QXmlContentHandler.endElement": ('str', 'str', 'str'),
- "PySide2.QtXml.QXmlContentHandler.endPrefixMapping": ('str',),
- "PySide2.QtXml.QXmlContentHandler.errorString": (),
- "PySide2.QtXml.QXmlContentHandler.ignorableWhitespace": ('str',),
- "PySide2.QtXml.QXmlContentHandler.processingInstruction": ('str', 'str'),
- "PySide2.QtXml.QXmlContentHandler.setDocumentLocator": ('PySide2.QtXml.QXmlLocator',),
- "PySide2.QtXml.QXmlContentHandler.skippedEntity": ('str',),
- "PySide2.QtXml.QXmlContentHandler.startDocument": (),
- "PySide2.QtXml.QXmlContentHandler.startElement": ('str', 'str', 'str', 'PySide2.QtXml.QXmlAttributes'),
- "PySide2.QtXml.QXmlContentHandler.startPrefixMapping": ('str', 'str'),
-# class PySide2.QtXml.QXmlDTDHandler:
- "PySide2.QtXml.QXmlDTDHandler.__init__": (),
- "PySide2.QtXml.QXmlDTDHandler.errorString": (),
- "PySide2.QtXml.QXmlDTDHandler.notationDecl": ('str', 'str', 'str'),
- "PySide2.QtXml.QXmlDTDHandler.unparsedEntityDecl": ('str', 'str', 'str', 'str'),
-# class PySide2.QtXml.QXmlDeclHandler:
- "PySide2.QtXml.QXmlDeclHandler.__init__": (),
- "PySide2.QtXml.QXmlDeclHandler.attributeDecl": ('str', 'str', 'str', 'str', 'str'),
- "PySide2.QtXml.QXmlDeclHandler.errorString": (),
- "PySide2.QtXml.QXmlDeclHandler.externalEntityDecl": ('str', 'str', 'str'),
- "PySide2.QtXml.QXmlDeclHandler.internalEntityDecl": ('str', 'str'),
-# class PySide2.QtXml.QXmlDefaultHandler:
- "PySide2.QtXml.QXmlDefaultHandler.__init__": (),
- "PySide2.QtXml.QXmlDefaultHandler.attributeDecl": ('str', 'str', 'str', 'str', 'str'),
- "PySide2.QtXml.QXmlDefaultHandler.characters": ('str',),
- "PySide2.QtXml.QXmlDefaultHandler.comment": ('str',),
- "PySide2.QtXml.QXmlDefaultHandler.endCDATA": (),
- "PySide2.QtXml.QXmlDefaultHandler.endDTD": (),
- "PySide2.QtXml.QXmlDefaultHandler.endDocument": (),
- "PySide2.QtXml.QXmlDefaultHandler.endElement": ('str', 'str', 'str'),
- "PySide2.QtXml.QXmlDefaultHandler.endEntity": ('str',),
- "PySide2.QtXml.QXmlDefaultHandler.endPrefixMapping": ('str',),
- "PySide2.QtXml.QXmlDefaultHandler.error": ('PySide2.QtXml.QXmlParseException',),
- "PySide2.QtXml.QXmlDefaultHandler.errorString": (),
- "PySide2.QtXml.QXmlDefaultHandler.externalEntityDecl": ('str', 'str', 'str'),
- "PySide2.QtXml.QXmlDefaultHandler.fatalError": ('PySide2.QtXml.QXmlParseException',),
- "PySide2.QtXml.QXmlDefaultHandler.ignorableWhitespace": ('str',),
- "PySide2.QtXml.QXmlDefaultHandler.internalEntityDecl": ('str', 'str'),
- "PySide2.QtXml.QXmlDefaultHandler.notationDecl": ('str', 'str', 'str'),
- "PySide2.QtXml.QXmlDefaultHandler.processingInstruction": ('str', 'str'),
- "PySide2.QtXml.QXmlDefaultHandler.resolveEntity": ('str', 'str', 'PySide2.QtXml.QXmlInputSource'),
- "PySide2.QtXml.QXmlDefaultHandler.setDocumentLocator": ('PySide2.QtXml.QXmlLocator',),
- "PySide2.QtXml.QXmlDefaultHandler.skippedEntity": ('str',),
- "PySide2.QtXml.QXmlDefaultHandler.startCDATA": (),
- "PySide2.QtXml.QXmlDefaultHandler.startDTD": ('str', 'str', 'str'),
- "PySide2.QtXml.QXmlDefaultHandler.startDocument": (),
- "PySide2.QtXml.QXmlDefaultHandler.startElement": ('str', 'str', 'str', 'PySide2.QtXml.QXmlAttributes'),
- "PySide2.QtXml.QXmlDefaultHandler.startEntity": ('str',),
- "PySide2.QtXml.QXmlDefaultHandler.startPrefixMapping": ('str', 'str'),
- "PySide2.QtXml.QXmlDefaultHandler.unparsedEntityDecl": ('str', 'str', 'str', 'str'),
- "PySide2.QtXml.QXmlDefaultHandler.warning": ('PySide2.QtXml.QXmlParseException',),
-# class PySide2.QtXml.QXmlEntityResolver:
- "PySide2.QtXml.QXmlEntityResolver.__init__": (),
- "PySide2.QtXml.QXmlEntityResolver.errorString": (),
- "PySide2.QtXml.QXmlEntityResolver.resolveEntity": ('str', 'str', 'PySide2.QtXml.QXmlInputSource'),
-# class PySide2.QtXml.QXmlErrorHandler:
- "PySide2.QtXml.QXmlErrorHandler.__init__": (),
- "PySide2.QtXml.QXmlErrorHandler.error": ('PySide2.QtXml.QXmlParseException',),
- "PySide2.QtXml.QXmlErrorHandler.errorString": (),
- "PySide2.QtXml.QXmlErrorHandler.fatalError": ('PySide2.QtXml.QXmlParseException',),
- "PySide2.QtXml.QXmlErrorHandler.warning": ('PySide2.QtXml.QXmlParseException',),
-# class PySide2.QtXml.QXmlInputSource:
- "PySide2.QtXml.QXmlInputSource.__init__": [(), ('PySide2.QtCore.QIODevice',)],
- "PySide2.QtXml.QXmlInputSource.data": (),
- "PySide2.QtXml.QXmlInputSource.fetchData": (),
- "PySide2.QtXml.QXmlInputSource.fromRawData": ('PySide2.QtCore.QByteArray', 'bool'),
- "PySide2.QtXml.QXmlInputSource.reset": (),
- "PySide2.QtXml.QXmlInputSource.setData": [('PySide2.QtCore.QByteArray',), ('str',)],
-# class PySide2.QtXml.QXmlLexicalHandler:
- "PySide2.QtXml.QXmlLexicalHandler.__init__": (),
- "PySide2.QtXml.QXmlLexicalHandler.comment": ('str',),
- "PySide2.QtXml.QXmlLexicalHandler.endCDATA": (),
- "PySide2.QtXml.QXmlLexicalHandler.endDTD": (),
- "PySide2.QtXml.QXmlLexicalHandler.endEntity": ('str',),
- "PySide2.QtXml.QXmlLexicalHandler.errorString": (),
- "PySide2.QtXml.QXmlLexicalHandler.startCDATA": (),
- "PySide2.QtXml.QXmlLexicalHandler.startDTD": ('str', 'str', 'str'),
- "PySide2.QtXml.QXmlLexicalHandler.startEntity": ('str',),
-# class PySide2.QtXml.QXmlLocator:
- "PySide2.QtXml.QXmlLocator.__init__": (),
- "PySide2.QtXml.QXmlLocator.columnNumber": (),
- "PySide2.QtXml.QXmlLocator.lineNumber": (),
-# class PySide2.QtXml.QXmlNamespaceSupport:
- "PySide2.QtXml.QXmlNamespaceSupport.__init__": (),
- "PySide2.QtXml.QXmlNamespaceSupport.popContext": (),
- "PySide2.QtXml.QXmlNamespaceSupport.prefix": ('str',),
- "PySide2.QtXml.QXmlNamespaceSupport.prefixes": [(), ('str',)],
- "PySide2.QtXml.QXmlNamespaceSupport.processName": ('str', 'bool', 'str', 'str'),
- "PySide2.QtXml.QXmlNamespaceSupport.pushContext": (),
- "PySide2.QtXml.QXmlNamespaceSupport.reset": (),
- "PySide2.QtXml.QXmlNamespaceSupport.setPrefix": ('str', 'str'),
- "PySide2.QtXml.QXmlNamespaceSupport.splitName": ('str', 'str', 'str'),
- "PySide2.QtXml.QXmlNamespaceSupport.uri": ('str',),
-# class PySide2.QtXml.QXmlParseException:
- "PySide2.QtXml.QXmlParseException.__init__": [('PySide2.QtXml.QXmlParseException',), ('str', 'int', 'int', 'str', 'str')],
- "PySide2.QtXml.QXmlParseException.columnNumber": (),
- "PySide2.QtXml.QXmlParseException.lineNumber": (),
- "PySide2.QtXml.QXmlParseException.message": (),
- "PySide2.QtXml.QXmlParseException.publicId": (),
- "PySide2.QtXml.QXmlParseException.systemId": (),
-# class PySide2.QtXml.QXmlReader:
- "PySide2.QtXml.QXmlReader.__init__": (),
- "PySide2.QtXml.QXmlReader.DTDHandler": (),
- "PySide2.QtXml.QXmlReader.contentHandler": (),
- "PySide2.QtXml.QXmlReader.declHandler": (),
- "PySide2.QtXml.QXmlReader.entityResolver": (),
- "PySide2.QtXml.QXmlReader.errorHandler": (),
- "PySide2.QtXml.QXmlReader.feature": ('str',),
- "PySide2.QtXml.QXmlReader.hasFeature": ('str',),
- "PySide2.QtXml.QXmlReader.hasProperty": ('str',),
- "PySide2.QtXml.QXmlReader.lexicalHandler": (),
- "PySide2.QtXml.QXmlReader.parse": ('PySide2.QtXml.QXmlInputSource',),
- "PySide2.QtXml.QXmlReader.property": ('str',),
- "PySide2.QtXml.QXmlReader.setContentHandler": ('PySide2.QtXml.QXmlContentHandler',),
- "PySide2.QtXml.QXmlReader.setDTDHandler": ('PySide2.QtXml.QXmlDTDHandler',),
- "PySide2.QtXml.QXmlReader.setDeclHandler": ('PySide2.QtXml.QXmlDeclHandler',),
- "PySide2.QtXml.QXmlReader.setEntityResolver": ('PySide2.QtXml.QXmlEntityResolver',),
- "PySide2.QtXml.QXmlReader.setErrorHandler": ('PySide2.QtXml.QXmlErrorHandler',),
- "PySide2.QtXml.QXmlReader.setFeature": ('str', 'bool'),
- "PySide2.QtXml.QXmlReader.setLexicalHandler": ('PySide2.QtXml.QXmlLexicalHandler',),
- "PySide2.QtXml.QXmlReader.setProperty": ('str', 'int'),
-# class PySide2.QtXml.QXmlSimpleReader:
- "PySide2.QtXml.QXmlSimpleReader.__init__": (),
- "PySide2.QtXml.QXmlSimpleReader.DTDHandler": (),
- "PySide2.QtXml.QXmlSimpleReader.contentHandler": (),
- "PySide2.QtXml.QXmlSimpleReader.declHandler": (),
- "PySide2.QtXml.QXmlSimpleReader.entityResolver": (),
- "PySide2.QtXml.QXmlSimpleReader.errorHandler": (),
- "PySide2.QtXml.QXmlSimpleReader.feature": ('str',),
- "PySide2.QtXml.QXmlSimpleReader.hasFeature": ('str',),
- "PySide2.QtXml.QXmlSimpleReader.hasProperty": ('str',),
- "PySide2.QtXml.QXmlSimpleReader.lexicalHandler": (),
- "PySide2.QtXml.QXmlSimpleReader.parse": [('PySide2.QtXml.QXmlInputSource',), ('PySide2.QtXml.QXmlInputSource', 'bool')],
- "PySide2.QtXml.QXmlSimpleReader.parseContinue": (),
- "PySide2.QtXml.QXmlSimpleReader.property": ('str',),
- "PySide2.QtXml.QXmlSimpleReader.setContentHandler": ('PySide2.QtXml.QXmlContentHandler',),
- "PySide2.QtXml.QXmlSimpleReader.setDTDHandler": ('PySide2.QtXml.QXmlDTDHandler',),
- "PySide2.QtXml.QXmlSimpleReader.setDeclHandler": ('PySide2.QtXml.QXmlDeclHandler',),
- "PySide2.QtXml.QXmlSimpleReader.setEntityResolver": ('PySide2.QtXml.QXmlEntityResolver',),
- "PySide2.QtXml.QXmlSimpleReader.setErrorHandler": ('PySide2.QtXml.QXmlErrorHandler',),
- "PySide2.QtXml.QXmlSimpleReader.setFeature": ('str', 'bool'),
- "PySide2.QtXml.QXmlSimpleReader.setLexicalHandler": ('PySide2.QtXml.QXmlLexicalHandler',),
- "PySide2.QtXml.QXmlSimpleReader.setProperty": ('str', 'int'),
- }) if "PySide2.QtXml" in sys.modules else None
-# Module PySide2.QtXmlPatterns
-sig_dict.update({
-# class PySide2.QtXmlPatterns.QAbstractMessageHandler:
- "PySide2.QtXmlPatterns.QAbstractMessageHandler.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtXmlPatterns.QAbstractMessageHandler.handleMessage": ('PySide2.QtCore.QtMsgType', 'str', 'PySide2.QtCore.QUrl', 'PySide2.QtXmlPatterns.QSourceLocation'),
- "PySide2.QtXmlPatterns.QAbstractMessageHandler.message": ('PySide2.QtCore.QtMsgType', 'str', 'PySide2.QtCore.QUrl', 'PySide2.QtXmlPatterns.QSourceLocation'),
-# class PySide2.QtXmlPatterns.QAbstractUriResolver:
- "PySide2.QtXmlPatterns.QAbstractUriResolver.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtXmlPatterns.QAbstractUriResolver.resolve": ('PySide2.QtCore.QUrl', 'PySide2.QtCore.QUrl'),
-# class PySide2.QtXmlPatterns.QAbstractXmlNodeModel:
-# class PySide2.QtXmlPatterns.QAbstractXmlNodeModel.NodeCopySetting:
-# class PySide2.QtXmlPatterns.QAbstractXmlNodeModel.SimpleAxis:
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.__init__": (),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.attributes": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.baseUri": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.compareOrder": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex', 'PySide2.QtXmlPatterns.QXmlNodeModelIndex'),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.createIndex": [('int',), ('int', 'int')],
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.documentUri": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.elementById": ('PySide2.QtXmlPatterns.QXmlName',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.isDeepEqual": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex', 'PySide2.QtXmlPatterns.QXmlNodeModelIndex'),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.kind": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.name": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.namespaceBindings": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.namespaceForPrefix": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex', 'Missing("PySide2.QtXmlPatterns.QXmlName.PrefixCode")'),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.nextFromSimpleAxis": ('PySide2.QtXmlPatterns.QAbstractXmlNodeModel.SimpleAxis', 'PySide2.QtXmlPatterns.QXmlNodeModelIndex'),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.nodesByIdref": ('PySide2.QtXmlPatterns.QXmlName',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.root": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.sendNamespaces": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex', 'PySide2.QtXmlPatterns.QAbstractXmlReceiver'),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.sourceLocation": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.stringValue": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.typedValue": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',),
-# class PySide2.QtXmlPatterns.QAbstractXmlReceiver:
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.__init__": (),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.atomicValue": ('typing.Any',),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.attribute": ('PySide2.QtXmlPatterns.QXmlName', 'str'),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.characters": ('str',),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.comment": ('str',),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.endDocument": (),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.endElement": (),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.endOfSequence": (),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.namespaceBinding": ('PySide2.QtXmlPatterns.QXmlName',),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.processingInstruction": ('PySide2.QtXmlPatterns.QXmlName', 'str'),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.startDocument": (),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.startElement": ('PySide2.QtXmlPatterns.QXmlName',),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.startOfSequence": (),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.whitespaceOnly": ('str',),
-# class PySide2.QtXmlPatterns.QSourceLocation:
- "PySide2.QtXmlPatterns.QSourceLocation.__init__": [(), ('PySide2.QtCore.QUrl', 'int', 'int'), ('PySide2.QtXmlPatterns.QSourceLocation',)],
- "PySide2.QtXmlPatterns.QSourceLocation.__copy__": (),
- "PySide2.QtXmlPatterns.QSourceLocation.column": (),
- "PySide2.QtXmlPatterns.QSourceLocation.isNull": (),
- "PySide2.QtXmlPatterns.QSourceLocation.line": (),
- "PySide2.QtXmlPatterns.QSourceLocation.setColumn": ('int',),
- "PySide2.QtXmlPatterns.QSourceLocation.setLine": ('int',),
- "PySide2.QtXmlPatterns.QSourceLocation.setUri": ('PySide2.QtCore.QUrl',),
- "PySide2.QtXmlPatterns.QSourceLocation.uri": (),
-# class PySide2.QtXmlPatterns.QXmlFormatter:
- "PySide2.QtXmlPatterns.QXmlFormatter.__init__": ('PySide2.QtXmlPatterns.QXmlQuery', 'PySide2.QtCore.QIODevice'),
- "PySide2.QtXmlPatterns.QXmlFormatter.atomicValue": ('typing.Any',),
- "PySide2.QtXmlPatterns.QXmlFormatter.attribute": ('PySide2.QtXmlPatterns.QXmlName', 'str'),
- "PySide2.QtXmlPatterns.QXmlFormatter.characters": ('str',),
- "PySide2.QtXmlPatterns.QXmlFormatter.comment": ('str',),
- "PySide2.QtXmlPatterns.QXmlFormatter.endDocument": (),
- "PySide2.QtXmlPatterns.QXmlFormatter.endElement": (),
- "PySide2.QtXmlPatterns.QXmlFormatter.endOfSequence": (),
- "PySide2.QtXmlPatterns.QXmlFormatter.indentationDepth": (),
- "PySide2.QtXmlPatterns.QXmlFormatter.processingInstruction": ('PySide2.QtXmlPatterns.QXmlName', 'str'),
- "PySide2.QtXmlPatterns.QXmlFormatter.setIndentationDepth": ('int',),
- "PySide2.QtXmlPatterns.QXmlFormatter.startDocument": (),
- "PySide2.QtXmlPatterns.QXmlFormatter.startElement": ('PySide2.QtXmlPatterns.QXmlName',),
- "PySide2.QtXmlPatterns.QXmlFormatter.startOfSequence": (),
-# class PySide2.QtXmlPatterns.QXmlItem:
- "PySide2.QtXmlPatterns.QXmlItem.__init__": [(), ('PySide2.QtXmlPatterns.QXmlItem',), ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',), ('typing.Any',)],
- "PySide2.QtXmlPatterns.QXmlItem.__copy__": (),
- "PySide2.QtXmlPatterns.QXmlItem.isAtomicValue": (),
- "PySide2.QtXmlPatterns.QXmlItem.isNode": (),
- "PySide2.QtXmlPatterns.QXmlItem.isNull": (),
- "PySide2.QtXmlPatterns.QXmlItem.toAtomicValue": (),
- "PySide2.QtXmlPatterns.QXmlItem.toNodeModelIndex": (),
-# class PySide2.QtXmlPatterns.QXmlName:
- "PySide2.QtXmlPatterns.QXmlName.__init__": [(), ('PySide2.QtXmlPatterns.QXmlName',), ('PySide2.QtXmlPatterns.QXmlNamePool', 'str', 'str', 'str')],
- "PySide2.QtXmlPatterns.QXmlName.__copy__": (),
- "PySide2.QtXmlPatterns.QXmlName.fromClarkName": ('str', 'PySide2.QtXmlPatterns.QXmlNamePool'),
- "PySide2.QtXmlPatterns.QXmlName.isNCName": ('str',),
- "PySide2.QtXmlPatterns.QXmlName.isNull": (),
- "PySide2.QtXmlPatterns.QXmlName.localName": ('PySide2.QtXmlPatterns.QXmlNamePool',),
- "PySide2.QtXmlPatterns.QXmlName.namespaceUri": ('PySide2.QtXmlPatterns.QXmlNamePool',),
- "PySide2.QtXmlPatterns.QXmlName.prefix": ('PySide2.QtXmlPatterns.QXmlNamePool',),
- "PySide2.QtXmlPatterns.QXmlName.toClarkName": ('PySide2.QtXmlPatterns.QXmlNamePool',),
-# class PySide2.QtXmlPatterns.QXmlNamePool:
- "PySide2.QtXmlPatterns.QXmlNamePool.__init__": [(), ('PySide2.QtXmlPatterns.QXmlNamePool',)],
- "PySide2.QtXmlPatterns.QXmlNamePool.__copy__": (),
-# class PySide2.QtXmlPatterns.QXmlNodeModelIndex:
-# class PySide2.QtXmlPatterns.QXmlNodeModelIndex.DocumentOrder:
-# class PySide2.QtXmlPatterns.QXmlNodeModelIndex.NodeKind:
- "PySide2.QtXmlPatterns.QXmlNodeModelIndex.__init__": [(), ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',)],
- "PySide2.QtXmlPatterns.QXmlNodeModelIndex.__copy__": (),
- "PySide2.QtXmlPatterns.QXmlNodeModelIndex.additionalData": (),
- "PySide2.QtXmlPatterns.QXmlNodeModelIndex.data": (),
- "PySide2.QtXmlPatterns.QXmlNodeModelIndex.internalPointer": (),
- "PySide2.QtXmlPatterns.QXmlNodeModelIndex.isNull": (),
- "PySide2.QtXmlPatterns.QXmlNodeModelIndex.model": (),
-# class PySide2.QtXmlPatterns.QXmlQuery:
-# class PySide2.QtXmlPatterns.QXmlQuery.QueryLanguage:
- "PySide2.QtXmlPatterns.QXmlQuery.__init__": [(), ('PySide2.QtXmlPatterns.QXmlNamePool',), ('PySide2.QtXmlPatterns.QXmlQuery',), ('PySide2.QtXmlPatterns.QXmlQuery.QueryLanguage', 'PySide2.QtXmlPatterns.QXmlNamePool')],
- "PySide2.QtXmlPatterns.QXmlQuery.__copy__": (),
- "PySide2.QtXmlPatterns.QXmlQuery.bindVariable": [('PySide2.QtXmlPatterns.QXmlName', 'PySide2.QtCore.QIODevice'), ('PySide2.QtXmlPatterns.QXmlName', 'PySide2.QtXmlPatterns.QXmlItem'), ('PySide2.QtXmlPatterns.QXmlName', 'PySide2.QtXmlPatterns.QXmlQuery'), ('str', 'PySide2.QtCore.QIODevice'), ('str', 'PySide2.QtXmlPatterns.QXmlItem'), ('str', 'PySide2.QtXmlPatterns.QXmlQuery')],
- "PySide2.QtXmlPatterns.QXmlQuery.evaluateTo": [('PySide2.QtCore.QIODevice',), ('PySide2.QtXmlPatterns.QAbstractXmlReceiver',), ('PySide2.QtXmlPatterns.QXmlResultItems',)],
- "PySide2.QtXmlPatterns.QXmlQuery.initialTemplateName": (),
- "PySide2.QtXmlPatterns.QXmlQuery.isValid": (),
- "PySide2.QtXmlPatterns.QXmlQuery.messageHandler": (),
- "PySide2.QtXmlPatterns.QXmlQuery.namePool": (),
- "PySide2.QtXmlPatterns.QXmlQuery.queryLanguage": (),
- "PySide2.QtXmlPatterns.QXmlQuery.setFocus": [('PySide2.QtCore.QIODevice',), ('PySide2.QtCore.QUrl',), ('PySide2.QtXmlPatterns.QXmlItem',), ('str',)],
- "PySide2.QtXmlPatterns.QXmlQuery.setInitialTemplateName": [('PySide2.QtXmlPatterns.QXmlName',), ('str',)],
- "PySide2.QtXmlPatterns.QXmlQuery.setMessageHandler": ('PySide2.QtXmlPatterns.QAbstractMessageHandler',),
- "PySide2.QtXmlPatterns.QXmlQuery.setQuery": [('PySide2.QtCore.QIODevice', 'PySide2.QtCore.QUrl'), ('PySide2.QtCore.QUrl', 'PySide2.QtCore.QUrl'), ('str', 'PySide2.QtCore.QUrl')],
- "PySide2.QtXmlPatterns.QXmlQuery.setUriResolver": ('PySide2.QtXmlPatterns.QAbstractUriResolver',),
- "PySide2.QtXmlPatterns.QXmlQuery.uriResolver": (),
-# class PySide2.QtXmlPatterns.QXmlResultItems:
- "PySide2.QtXmlPatterns.QXmlResultItems.__init__": (),
- "PySide2.QtXmlPatterns.QXmlResultItems.current": (),
- "PySide2.QtXmlPatterns.QXmlResultItems.hasError": (),
-# class PySide2.QtXmlPatterns.QXmlSchema:
- "PySide2.QtXmlPatterns.QXmlSchema.__init__": [(), ('PySide2.QtXmlPatterns.QXmlSchema',)],
- "PySide2.QtXmlPatterns.QXmlSchema.documentUri": (),
- "PySide2.QtXmlPatterns.QXmlSchema.isValid": (),
- "PySide2.QtXmlPatterns.QXmlSchema.load": [('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QUrl'), ('PySide2.QtCore.QIODevice', 'PySide2.QtCore.QUrl'), ('PySide2.QtCore.QUrl',)],
- "PySide2.QtXmlPatterns.QXmlSchema.messageHandler": (),
- "PySide2.QtXmlPatterns.QXmlSchema.namePool": (),
- "PySide2.QtXmlPatterns.QXmlSchema.setMessageHandler": ('PySide2.QtXmlPatterns.QAbstractMessageHandler',),
- "PySide2.QtXmlPatterns.QXmlSchema.setUriResolver": ('PySide2.QtXmlPatterns.QAbstractUriResolver',),
- "PySide2.QtXmlPatterns.QXmlSchema.uriResolver": (),
-# class PySide2.QtXmlPatterns.QXmlSchemaValidator:
- "PySide2.QtXmlPatterns.QXmlSchemaValidator.__init__": [(), ('PySide2.QtXmlPatterns.QXmlSchema',)],
- "PySide2.QtXmlPatterns.QXmlSchemaValidator.messageHandler": (),
- "PySide2.QtXmlPatterns.QXmlSchemaValidator.namePool": (),
- "PySide2.QtXmlPatterns.QXmlSchemaValidator.schema": (),
- "PySide2.QtXmlPatterns.QXmlSchemaValidator.setMessageHandler": ('PySide2.QtXmlPatterns.QAbstractMessageHandler',),
- "PySide2.QtXmlPatterns.QXmlSchemaValidator.setSchema": ('PySide2.QtXmlPatterns.QXmlSchema',),
- "PySide2.QtXmlPatterns.QXmlSchemaValidator.setUriResolver": ('PySide2.QtXmlPatterns.QAbstractUriResolver',),
- "PySide2.QtXmlPatterns.QXmlSchemaValidator.uriResolver": (),
- "PySide2.QtXmlPatterns.QXmlSchemaValidator.validate": [('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QUrl'), ('PySide2.QtCore.QIODevice', 'PySide2.QtCore.QUrl'), ('PySide2.QtCore.QUrl',)],
-# class PySide2.QtXmlPatterns.QXmlSerializer:
- "PySide2.QtXmlPatterns.QXmlSerializer.__init__": ('PySide2.QtXmlPatterns.QXmlQuery', 'PySide2.QtCore.QIODevice'),
- "PySide2.QtXmlPatterns.QXmlSerializer.atomicValue": ('typing.Any',),
- "PySide2.QtXmlPatterns.QXmlSerializer.attribute": ('PySide2.QtXmlPatterns.QXmlName', 'str'),
- "PySide2.QtXmlPatterns.QXmlSerializer.characters": ('str',),
- "PySide2.QtXmlPatterns.QXmlSerializer.codec": (),
- "PySide2.QtXmlPatterns.QXmlSerializer.comment": ('str',),
- "PySide2.QtXmlPatterns.QXmlSerializer.endDocument": (),
- "PySide2.QtXmlPatterns.QXmlSerializer.endElement": (),
- "PySide2.QtXmlPatterns.QXmlSerializer.endOfSequence": (),
- "PySide2.QtXmlPatterns.QXmlSerializer.namespaceBinding": ('PySide2.QtXmlPatterns.QXmlName',),
- "PySide2.QtXmlPatterns.QXmlSerializer.outputDevice": (),
- "PySide2.QtXmlPatterns.QXmlSerializer.processingInstruction": ('PySide2.QtXmlPatterns.QXmlName', 'str'),
- "PySide2.QtXmlPatterns.QXmlSerializer.setCodec": ('PySide2.QtCore.QTextCodec',),
- "PySide2.QtXmlPatterns.QXmlSerializer.startDocument": (),
- "PySide2.QtXmlPatterns.QXmlSerializer.startElement": ('PySide2.QtXmlPatterns.QXmlName',),
- "PySide2.QtXmlPatterns.QXmlSerializer.startOfSequence": (),
- }) if "PySide2.QtXmlPatterns" in sys.modules else None
-# Module PySide2.QtHelp
-sig_dict.update({
-# class PySide2.QtHelp.QCompressedHelpInfo:
- "PySide2.QtHelp.QCompressedHelpInfo.__init__": [(), ('PySide2.QtHelp.QCompressedHelpInfo',)],
- "PySide2.QtHelp.QCompressedHelpInfo.__copy__": (),
- "PySide2.QtHelp.QCompressedHelpInfo.component": (),
- "PySide2.QtHelp.QCompressedHelpInfo.fromCompressedHelpFile": ('str',),
- "PySide2.QtHelp.QCompressedHelpInfo.namespaceName": (),
- "PySide2.QtHelp.QCompressedHelpInfo.swap": ('PySide2.QtHelp.QCompressedHelpInfo',),
- "PySide2.QtHelp.QCompressedHelpInfo.version": (),
-# class PySide2.QtHelp.QHelpContentItem:
- "PySide2.QtHelp.QHelpContentItem.__copy__": (),
- "PySide2.QtHelp.QHelpContentItem.child": ('int',),
- "PySide2.QtHelp.QHelpContentItem.childCount": (),
- "PySide2.QtHelp.QHelpContentItem.childPosition": ('PySide2.QtHelp.QHelpContentItem',),
- "PySide2.QtHelp.QHelpContentItem.parent": (),
- "PySide2.QtHelp.QHelpContentItem.row": (),
- "PySide2.QtHelp.QHelpContentItem.title": (),
- "PySide2.QtHelp.QHelpContentItem.url": (),
-# class PySide2.QtHelp.QHelpContentModel:
- "PySide2.QtHelp.QHelpContentModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtHelp.QHelpContentModel.contentItemAt": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtHelp.QHelpContentModel.createContents": ('str',),
- "PySide2.QtHelp.QHelpContentModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtHelp.QHelpContentModel.index": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtHelp.QHelpContentModel.isCreatingContents": (),
- "PySide2.QtHelp.QHelpContentModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtHelp.QHelpContentModel.rowCount": ('PySide2.QtCore.QModelIndex',),
-# class PySide2.QtHelp.QHelpContentWidget:
- "PySide2.QtHelp.QHelpContentWidget.indexOf": ('PySide2.QtCore.QUrl',),
-# class PySide2.QtHelp.QHelpEngine:
- "PySide2.QtHelp.QHelpEngine.__init__": ('str', 'PySide2.QtCore.QObject'),
- "PySide2.QtHelp.QHelpEngine.contentModel": (),
- "PySide2.QtHelp.QHelpEngine.contentWidget": (),
- "PySide2.QtHelp.QHelpEngine.indexModel": (),
- "PySide2.QtHelp.QHelpEngine.indexWidget": (),
- "PySide2.QtHelp.QHelpEngine.searchEngine": (),
-# class PySide2.QtHelp.QHelpEngineCore:
- "PySide2.QtHelp.QHelpEngineCore.__init__": ('str', 'PySide2.QtCore.QObject'),
- "PySide2.QtHelp.QHelpEngineCore.addCustomFilter": ('str', 'typing.Sequence'),
- "PySide2.QtHelp.QHelpEngineCore.autoSaveFilter": (),
- "PySide2.QtHelp.QHelpEngineCore.collectionFile": (),
- "PySide2.QtHelp.QHelpEngineCore.copyCollectionFile": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.currentFilter": (),
- "PySide2.QtHelp.QHelpEngineCore.customFilters": (),
- "PySide2.QtHelp.QHelpEngineCore.customValue": ('str', 'typing.Any'),
- "PySide2.QtHelp.QHelpEngineCore.documentationFileName": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.error": (),
- "PySide2.QtHelp.QHelpEngineCore.fileData": ('PySide2.QtCore.QUrl',),
- "PySide2.QtHelp.QHelpEngineCore.files": [('str', 'str', 'str'), ('str', 'typing.Sequence', 'str')],
- "PySide2.QtHelp.QHelpEngineCore.filterAttributeSets": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.filterAttributes": [(), ('str',)],
- "PySide2.QtHelp.QHelpEngineCore.filterEngine": (),
- "PySide2.QtHelp.QHelpEngineCore.findFile": ('PySide2.QtCore.QUrl',),
- "PySide2.QtHelp.QHelpEngineCore.linksForIdentifier": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.linksForKeyword": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.metaData": ('str', 'str'),
- "PySide2.QtHelp.QHelpEngineCore.namespaceName": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.registerDocumentation": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.registeredDocumentations": (),
- "PySide2.QtHelp.QHelpEngineCore.removeCustomFilter": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.removeCustomValue": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.setAutoSaveFilter": ('bool',),
- "PySide2.QtHelp.QHelpEngineCore.setCollectionFile": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.setCurrentFilter": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.setCustomValue": ('str', 'typing.Any'),
- "PySide2.QtHelp.QHelpEngineCore.setUsesFilterEngine": ('bool',),
- "PySide2.QtHelp.QHelpEngineCore.setupData": (),
- "PySide2.QtHelp.QHelpEngineCore.unregisterDocumentation": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.usesFilterEngine": (),
-# class PySide2.QtHelp.QHelpFilterData:
- "PySide2.QtHelp.QHelpFilterData.__init__": [(), ('PySide2.QtHelp.QHelpFilterData',)],
- "PySide2.QtHelp.QHelpFilterData.__copy__": (),
- "PySide2.QtHelp.QHelpFilterData.components": (),
- "PySide2.QtHelp.QHelpFilterData.setComponents": ('typing.Sequence',),
- "PySide2.QtHelp.QHelpFilterData.setVersions": ('typing.Sequence',),
- "PySide2.QtHelp.QHelpFilterData.swap": ('PySide2.QtHelp.QHelpFilterData',),
- "PySide2.QtHelp.QHelpFilterData.versions": (),
-# class PySide2.QtHelp.QHelpFilterEngine:
- "PySide2.QtHelp.QHelpFilterEngine.__init__": ('PySide2.QtHelp.QHelpEngineCore',),
- "PySide2.QtHelp.QHelpFilterEngine.activeFilter": (),
- "PySide2.QtHelp.QHelpFilterEngine.availableComponents": (),
- "PySide2.QtHelp.QHelpFilterEngine.filterData": ('str',),
- "PySide2.QtHelp.QHelpFilterEngine.filters": (),
- "PySide2.QtHelp.QHelpFilterEngine.namespaceToComponent": (),
- "PySide2.QtHelp.QHelpFilterEngine.namespaceToVersion": (),
- "PySide2.QtHelp.QHelpFilterEngine.namespacesForFilter": ('str',),
- "PySide2.QtHelp.QHelpFilterEngine.removeFilter": ('str',),
- "PySide2.QtHelp.QHelpFilterEngine.setActiveFilter": ('str',),
- "PySide2.QtHelp.QHelpFilterEngine.setFilterData": ('str', 'PySide2.QtHelp.QHelpFilterData'),
-# class PySide2.QtHelp.QHelpIndexModel:
- "PySide2.QtHelp.QHelpIndexModel.createIndex": [('int', 'int', 'int'), ('int', 'int', 'object'), ('str',)],
- "PySide2.QtHelp.QHelpIndexModel.filter": ('str', 'str'),
- "PySide2.QtHelp.QHelpIndexModel.isCreatingIndex": (),
- "PySide2.QtHelp.QHelpIndexModel.linksForKeyword": ('str',),
-# class PySide2.QtHelp.QHelpIndexWidget:
- "PySide2.QtHelp.QHelpIndexWidget.activateCurrentItem": (),
- "PySide2.QtHelp.QHelpIndexWidget.filterIndices": ('str', 'str'),
-# class PySide2.QtHelp.QHelpSearchEngine:
- "PySide2.QtHelp.QHelpSearchEngine.__init__": ('PySide2.QtHelp.QHelpEngineCore', 'PySide2.QtCore.QObject'),
- "PySide2.QtHelp.QHelpSearchEngine.cancelIndexing": (),
- "PySide2.QtHelp.QHelpSearchEngine.cancelSearching": (),
- "PySide2.QtHelp.QHelpSearchEngine.hitCount": (),
- "PySide2.QtHelp.QHelpSearchEngine.hits": ('int', 'int'),
- "PySide2.QtHelp.QHelpSearchEngine.hitsCount": (),
- "PySide2.QtHelp.QHelpSearchEngine.query": (),
- "PySide2.QtHelp.QHelpSearchEngine.queryWidget": (),
- "PySide2.QtHelp.QHelpSearchEngine.reindexDocumentation": (),
- "PySide2.QtHelp.QHelpSearchEngine.resultWidget": (),
- "PySide2.QtHelp.QHelpSearchEngine.scheduleIndexDocumentation": (),
- "PySide2.QtHelp.QHelpSearchEngine.search": [('str',), ('typing.Sequence',)],
- "PySide2.QtHelp.QHelpSearchEngine.searchInput": (),
- "PySide2.QtHelp.QHelpSearchEngine.searchResultCount": (),
- "PySide2.QtHelp.QHelpSearchEngine.searchResults": ('int', 'int'),
-# class PySide2.QtHelp.QHelpSearchQuery:
-# class PySide2.QtHelp.QHelpSearchQuery.FieldName:
- "PySide2.QtHelp.QHelpSearchQuery.__init__": [(), ('PySide2.QtHelp.QHelpSearchQuery',), ('PySide2.QtHelp.QHelpSearchQuery.FieldName', 'typing.Sequence')],
- "PySide2.QtHelp.QHelpSearchQuery.__copy__": (),
-# class PySide2.QtHelp.QHelpSearchQueryWidget:
- "PySide2.QtHelp.QHelpSearchQueryWidget.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtHelp.QHelpSearchQueryWidget.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtHelp.QHelpSearchQueryWidget.collapseExtendedSearch": (),
- "PySide2.QtHelp.QHelpSearchQueryWidget.expandExtendedSearch": (),
- "PySide2.QtHelp.QHelpSearchQueryWidget.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtHelp.QHelpSearchQueryWidget.isCompactMode": (),
- "PySide2.QtHelp.QHelpSearchQueryWidget.query": (),
- "PySide2.QtHelp.QHelpSearchQueryWidget.searchInput": (),
- "PySide2.QtHelp.QHelpSearchQueryWidget.setCompactMode": ('bool',),
- "PySide2.QtHelp.QHelpSearchQueryWidget.setQuery": ('typing.Sequence',),
- "PySide2.QtHelp.QHelpSearchQueryWidget.setSearchInput": ('str',),
-# class PySide2.QtHelp.QHelpSearchResult:
- "PySide2.QtHelp.QHelpSearchResult.__init__": [(), ('PySide2.QtCore.QUrl', 'str', 'str'), ('PySide2.QtHelp.QHelpSearchResult',)],
- "PySide2.QtHelp.QHelpSearchResult.snippet": (),
- "PySide2.QtHelp.QHelpSearchResult.title": (),
- "PySide2.QtHelp.QHelpSearchResult.url": (),
-# class PySide2.QtHelp.QHelpSearchResultWidget:
- "PySide2.QtHelp.QHelpSearchResultWidget.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtHelp.QHelpSearchResultWidget.linkAt": ('PySide2.QtCore.QPoint',),
- }) if "PySide2.QtHelp" in sys.modules else None
-# Module PySide2.QtMultimedia
-sig_dict.update({
-# class PySide2.QtMultimedia.QAbstractAudioDeviceInfo:
- "PySide2.QtMultimedia.QAbstractAudioDeviceInfo.__init__": (),
- "PySide2.QtMultimedia.QAbstractAudioDeviceInfo.deviceName": (),
- "PySide2.QtMultimedia.QAbstractAudioDeviceInfo.isFormatSupported": ('PySide2.QtMultimedia.QAudioFormat',),
- "PySide2.QtMultimedia.QAbstractAudioDeviceInfo.preferredFormat": (),
- "PySide2.QtMultimedia.QAbstractAudioDeviceInfo.supportedByteOrders": (),
- "PySide2.QtMultimedia.QAbstractAudioDeviceInfo.supportedChannelCounts": (),
- "PySide2.QtMultimedia.QAbstractAudioDeviceInfo.supportedCodecs": (),
- "PySide2.QtMultimedia.QAbstractAudioDeviceInfo.supportedSampleRates": (),
- "PySide2.QtMultimedia.QAbstractAudioDeviceInfo.supportedSampleSizes": (),
- "PySide2.QtMultimedia.QAbstractAudioDeviceInfo.supportedSampleTypes": (),
-# class PySide2.QtMultimedia.QAbstractAudioInput:
- "PySide2.QtMultimedia.QAbstractAudioInput.__init__": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.bufferSize": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.bytesReady": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.elapsedUSecs": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.error": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.format": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.notifyInterval": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.periodSize": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.processedUSecs": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.reset": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.resume": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.setBufferSize": ('int',),
- "PySide2.QtMultimedia.QAbstractAudioInput.setFormat": ('PySide2.QtMultimedia.QAudioFormat',),
- "PySide2.QtMultimedia.QAbstractAudioInput.setNotifyInterval": ('int',),
- "PySide2.QtMultimedia.QAbstractAudioInput.setVolume": ('float',),
- "PySide2.QtMultimedia.QAbstractAudioInput.start": [(), ('PySide2.QtCore.QIODevice',)],
- "PySide2.QtMultimedia.QAbstractAudioInput.state": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.stop": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.suspend": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.volume": (),
-# class PySide2.QtMultimedia.QAbstractAudioOutput:
- "PySide2.QtMultimedia.QAbstractAudioOutput.__init__": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.bufferSize": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.bytesFree": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.category": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.elapsedUSecs": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.error": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.format": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.notifyInterval": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.periodSize": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.processedUSecs": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.reset": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.resume": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.setBufferSize": ('int',),
- "PySide2.QtMultimedia.QAbstractAudioOutput.setCategory": ('str',),
- "PySide2.QtMultimedia.QAbstractAudioOutput.setFormat": ('PySide2.QtMultimedia.QAudioFormat',),
- "PySide2.QtMultimedia.QAbstractAudioOutput.setNotifyInterval": ('int',),
- "PySide2.QtMultimedia.QAbstractAudioOutput.setVolume": ('float',),
- "PySide2.QtMultimedia.QAbstractAudioOutput.start": [(), ('PySide2.QtCore.QIODevice',)],
- "PySide2.QtMultimedia.QAbstractAudioOutput.state": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.stop": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.suspend": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.volume": (),
-# class PySide2.QtMultimedia.QAbstractVideoBuffer:
-# class PySide2.QtMultimedia.QAbstractVideoBuffer.HandleType:
-# class PySide2.QtMultimedia.QAbstractVideoBuffer.MapMode:
- "PySide2.QtMultimedia.QAbstractVideoBuffer.__init__": ('PySide2.QtMultimedia.QAbstractVideoBuffer.HandleType',),
- "PySide2.QtMultimedia.QAbstractVideoBuffer.handle": (),
- "PySide2.QtMultimedia.QAbstractVideoBuffer.handleType": (),
- "PySide2.QtMultimedia.QAbstractVideoBuffer.mapMode": (),
- "PySide2.QtMultimedia.QAbstractVideoBuffer.release": (),
- "PySide2.QtMultimedia.QAbstractVideoBuffer.unmap": (),
-# class PySide2.QtMultimedia.QAbstractVideoFilter:
- "PySide2.QtMultimedia.QAbstractVideoFilter.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAbstractVideoFilter.createFilterRunnable": (),
- "PySide2.QtMultimedia.QAbstractVideoFilter.isActive": (),
- "PySide2.QtMultimedia.QAbstractVideoFilter.setActive": ('bool',),
-# class PySide2.QtMultimedia.QAbstractVideoSurface:
-# class PySide2.QtMultimedia.QAbstractVideoSurface.Error:
- "PySide2.QtMultimedia.QAbstractVideoSurface.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAbstractVideoSurface.error": (),
- "PySide2.QtMultimedia.QAbstractVideoSurface.isActive": (),
- "PySide2.QtMultimedia.QAbstractVideoSurface.isFormatSupported": ('PySide2.QtMultimedia.QVideoSurfaceFormat',),
- "PySide2.QtMultimedia.QAbstractVideoSurface.nativeResolution": (),
- "PySide2.QtMultimedia.QAbstractVideoSurface.nearestFormat": ('PySide2.QtMultimedia.QVideoSurfaceFormat',),
- "PySide2.QtMultimedia.QAbstractVideoSurface.present": ('PySide2.QtMultimedia.QVideoFrame',),
- "PySide2.QtMultimedia.QAbstractVideoSurface.setError": ('PySide2.QtMultimedia.QAbstractVideoSurface.Error',),
- "PySide2.QtMultimedia.QAbstractVideoSurface.setNativeResolution": ('PySide2.QtCore.QSize',),
- "PySide2.QtMultimedia.QAbstractVideoSurface.start": ('PySide2.QtMultimedia.QVideoSurfaceFormat',),
- "PySide2.QtMultimedia.QAbstractVideoSurface.stop": (),
- "PySide2.QtMultimedia.QAbstractVideoSurface.supportedPixelFormats": ('PySide2.QtMultimedia.QAbstractVideoBuffer.HandleType',),
- "PySide2.QtMultimedia.QAbstractVideoSurface.surfaceFormat": (),
-# class PySide2.QtMultimedia.QAudio:
-# class PySide2.QtMultimedia.QAudio.Error:
-# class PySide2.QtMultimedia.QAudio.Mode:
-# class PySide2.QtMultimedia.QAudio.Role:
-# class PySide2.QtMultimedia.QAudio.State:
-# class PySide2.QtMultimedia.QAudio.VolumeScale:
- "PySide2.QtMultimedia.QAudio.convertVolume": ('float', 'PySide2.QtMultimedia.QAudio.VolumeScale', 'PySide2.QtMultimedia.QAudio.VolumeScale'),
-# class PySide2.QtMultimedia.QAudioBuffer:
- "PySide2.QtMultimedia.QAudioBuffer.__init__": [(), ('PySide2.QtCore.QByteArray', 'PySide2.QtMultimedia.QAudioFormat', 'int'), ('PySide2.QtMultimedia.QAudioBuffer',), ('int', 'PySide2.QtMultimedia.QAudioFormat', 'int')],
- "PySide2.QtMultimedia.QAudioBuffer.__copy__": (),
- "PySide2.QtMultimedia.QAudioBuffer.byteCount": (),
- "PySide2.QtMultimedia.QAudioBuffer.constData": (),
- "PySide2.QtMultimedia.QAudioBuffer.data": (),
- "PySide2.QtMultimedia.QAudioBuffer.duration": (),
- "PySide2.QtMultimedia.QAudioBuffer.format": (),
- "PySide2.QtMultimedia.QAudioBuffer.frameCount": (),
- "PySide2.QtMultimedia.QAudioBuffer.isValid": (),
- "PySide2.QtMultimedia.QAudioBuffer.sampleCount": (),
- "PySide2.QtMultimedia.QAudioBuffer.startTime": (),
-# class PySide2.QtMultimedia.QAudioDecoder:
-# class PySide2.QtMultimedia.QAudioDecoder.Error:
-# class PySide2.QtMultimedia.QAudioDecoder.State:
- "PySide2.QtMultimedia.QAudioDecoder.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAudioDecoder.audioFormat": (),
- "PySide2.QtMultimedia.QAudioDecoder.bind": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAudioDecoder.bufferAvailable": (),
- "PySide2.QtMultimedia.QAudioDecoder.duration": (),
- "PySide2.QtMultimedia.QAudioDecoder.error": (),
- "PySide2.QtMultimedia.QAudioDecoder.errorString": (),
- "PySide2.QtMultimedia.QAudioDecoder.hasSupport": ('str', 'typing.Sequence'),
- "PySide2.QtMultimedia.QAudioDecoder.position": (),
- "PySide2.QtMultimedia.QAudioDecoder.read": (),
- "PySide2.QtMultimedia.QAudioDecoder.setAudioFormat": ('PySide2.QtMultimedia.QAudioFormat',),
- "PySide2.QtMultimedia.QAudioDecoder.setSourceDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtMultimedia.QAudioDecoder.setSourceFilename": ('str',),
- "PySide2.QtMultimedia.QAudioDecoder.sourceDevice": (),
- "PySide2.QtMultimedia.QAudioDecoder.sourceFilename": (),
- "PySide2.QtMultimedia.QAudioDecoder.start": (),
- "PySide2.QtMultimedia.QAudioDecoder.state": (),
- "PySide2.QtMultimedia.QAudioDecoder.stop": (),
- "PySide2.QtMultimedia.QAudioDecoder.unbind": ('PySide2.QtCore.QObject',),
-# class PySide2.QtMultimedia.QAudioDecoderControl:
- "PySide2.QtMultimedia.QAudioDecoderControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAudioDecoderControl.audioFormat": (),
- "PySide2.QtMultimedia.QAudioDecoderControl.bufferAvailable": (),
- "PySide2.QtMultimedia.QAudioDecoderControl.duration": (),
- "PySide2.QtMultimedia.QAudioDecoderControl.position": (),
- "PySide2.QtMultimedia.QAudioDecoderControl.read": (),
- "PySide2.QtMultimedia.QAudioDecoderControl.setAudioFormat": ('PySide2.QtMultimedia.QAudioFormat',),
- "PySide2.QtMultimedia.QAudioDecoderControl.setSourceDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtMultimedia.QAudioDecoderControl.setSourceFilename": ('str',),
- "PySide2.QtMultimedia.QAudioDecoderControl.sourceDevice": (),
- "PySide2.QtMultimedia.QAudioDecoderControl.sourceFilename": (),
- "PySide2.QtMultimedia.QAudioDecoderControl.start": (),
- "PySide2.QtMultimedia.QAudioDecoderControl.state": (),
- "PySide2.QtMultimedia.QAudioDecoderControl.stop": (),
-# class PySide2.QtMultimedia.QAudioDeviceInfo:
- "PySide2.QtMultimedia.QAudioDeviceInfo.__init__": [(), ('PySide2.QtMultimedia.QAudioDeviceInfo',)],
- "PySide2.QtMultimedia.QAudioDeviceInfo.__copy__": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.availableDevices": ('PySide2.QtMultimedia.QAudio.Mode',),
- "PySide2.QtMultimedia.QAudioDeviceInfo.defaultInputDevice": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.defaultOutputDevice": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.deviceName": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.isFormatSupported": ('PySide2.QtMultimedia.QAudioFormat',),
- "PySide2.QtMultimedia.QAudioDeviceInfo.isNull": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.nearestFormat": ('PySide2.QtMultimedia.QAudioFormat',),
- "PySide2.QtMultimedia.QAudioDeviceInfo.preferredFormat": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.realm": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.supportedByteOrders": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.supportedChannelCounts": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.supportedCodecs": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.supportedSampleRates": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.supportedSampleSizes": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.supportedSampleTypes": (),
-# class PySide2.QtMultimedia.QAudioEncoderSettings:
- "PySide2.QtMultimedia.QAudioEncoderSettings.__init__": [(), ('PySide2.QtMultimedia.QAudioEncoderSettings',)],
- "PySide2.QtMultimedia.QAudioEncoderSettings.__copy__": (),
- "PySide2.QtMultimedia.QAudioEncoderSettings.bitRate": (),
- "PySide2.QtMultimedia.QAudioEncoderSettings.channelCount": (),
- "PySide2.QtMultimedia.QAudioEncoderSettings.codec": (),
- "PySide2.QtMultimedia.QAudioEncoderSettings.encodingMode": (),
- "PySide2.QtMultimedia.QAudioEncoderSettings.encodingOption": ('str',),
- "PySide2.QtMultimedia.QAudioEncoderSettings.encodingOptions": (),
- "PySide2.QtMultimedia.QAudioEncoderSettings.isNull": (),
- "PySide2.QtMultimedia.QAudioEncoderSettings.quality": (),
- "PySide2.QtMultimedia.QAudioEncoderSettings.sampleRate": (),
- "PySide2.QtMultimedia.QAudioEncoderSettings.setBitRate": ('int',),
- "PySide2.QtMultimedia.QAudioEncoderSettings.setChannelCount": ('int',),
- "PySide2.QtMultimedia.QAudioEncoderSettings.setCodec": ('str',),
- "PySide2.QtMultimedia.QAudioEncoderSettings.setEncodingMode": ('PySide2.QtMultimedia.QMultimedia.EncodingMode',),
- "PySide2.QtMultimedia.QAudioEncoderSettings.setEncodingOption": ('str', 'typing.Any'),
- "PySide2.QtMultimedia.QAudioEncoderSettings.setEncodingOptions": ('typing.Dict',),
- "PySide2.QtMultimedia.QAudioEncoderSettings.setQuality": ('PySide2.QtMultimedia.QMultimedia.EncodingQuality',),
- "PySide2.QtMultimedia.QAudioEncoderSettings.setSampleRate": ('int',),
-# class PySide2.QtMultimedia.QAudioEncoderSettingsControl:
- "PySide2.QtMultimedia.QAudioEncoderSettingsControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAudioEncoderSettingsControl.audioSettings": (),
- "PySide2.QtMultimedia.QAudioEncoderSettingsControl.codecDescription": ('str',),
- "PySide2.QtMultimedia.QAudioEncoderSettingsControl.setAudioSettings": ('PySide2.QtMultimedia.QAudioEncoderSettings',),
- "PySide2.QtMultimedia.QAudioEncoderSettingsControl.supportedAudioCodecs": (),
-# class PySide2.QtMultimedia.QAudioFormat:
-# class PySide2.QtMultimedia.QAudioFormat.Endian:
-# class PySide2.QtMultimedia.QAudioFormat.SampleType:
- "PySide2.QtMultimedia.QAudioFormat.__init__": [(), ('PySide2.QtMultimedia.QAudioFormat',)],
- "PySide2.QtMultimedia.QAudioFormat.__copy__": (),
- "PySide2.QtMultimedia.QAudioFormat.byteOrder": (),
- "PySide2.QtMultimedia.QAudioFormat.bytesForDuration": ('int',),
- "PySide2.QtMultimedia.QAudioFormat.bytesForFrames": ('int',),
- "PySide2.QtMultimedia.QAudioFormat.bytesPerFrame": (),
- "PySide2.QtMultimedia.QAudioFormat.channelCount": (),
- "PySide2.QtMultimedia.QAudioFormat.codec": (),
- "PySide2.QtMultimedia.QAudioFormat.durationForBytes": ('int',),
- "PySide2.QtMultimedia.QAudioFormat.durationForFrames": ('int',),
- "PySide2.QtMultimedia.QAudioFormat.framesForBytes": ('int',),
- "PySide2.QtMultimedia.QAudioFormat.framesForDuration": ('int',),
- "PySide2.QtMultimedia.QAudioFormat.isValid": (),
- "PySide2.QtMultimedia.QAudioFormat.sampleRate": (),
- "PySide2.QtMultimedia.QAudioFormat.sampleSize": (),
- "PySide2.QtMultimedia.QAudioFormat.sampleType": (),
- "PySide2.QtMultimedia.QAudioFormat.setByteOrder": ('PySide2.QtMultimedia.QAudioFormat.Endian',),
- "PySide2.QtMultimedia.QAudioFormat.setChannelCount": ('int',),
- "PySide2.QtMultimedia.QAudioFormat.setCodec": ('str',),
- "PySide2.QtMultimedia.QAudioFormat.setSampleRate": ('int',),
- "PySide2.QtMultimedia.QAudioFormat.setSampleSize": ('int',),
- "PySide2.QtMultimedia.QAudioFormat.setSampleType": ('PySide2.QtMultimedia.QAudioFormat.SampleType',),
-# class PySide2.QtMultimedia.QAudioInput:
- "PySide2.QtMultimedia.QAudioInput.__init__": [('PySide2.QtMultimedia.QAudioDeviceInfo', 'PySide2.QtMultimedia.QAudioFormat', 'PySide2.QtCore.QObject'), ('PySide2.QtMultimedia.QAudioFormat', 'PySide2.QtCore.QObject')],
- "PySide2.QtMultimedia.QAudioInput.bufferSize": (),
- "PySide2.QtMultimedia.QAudioInput.bytesReady": (),
- "PySide2.QtMultimedia.QAudioInput.elapsedUSecs": (),
- "PySide2.QtMultimedia.QAudioInput.error": (),
- "PySide2.QtMultimedia.QAudioInput.format": (),
- "PySide2.QtMultimedia.QAudioInput.notifyInterval": (),
- "PySide2.QtMultimedia.QAudioInput.periodSize": (),
- "PySide2.QtMultimedia.QAudioInput.processedUSecs": (),
- "PySide2.QtMultimedia.QAudioInput.reset": (),
- "PySide2.QtMultimedia.QAudioInput.resume": (),
- "PySide2.QtMultimedia.QAudioInput.setBufferSize": ('int',),
- "PySide2.QtMultimedia.QAudioInput.setNotifyInterval": ('int',),
- "PySide2.QtMultimedia.QAudioInput.setVolume": ('float',),
- "PySide2.QtMultimedia.QAudioInput.start": [(), ('PySide2.QtCore.QIODevice',)],
- "PySide2.QtMultimedia.QAudioInput.state": (),
- "PySide2.QtMultimedia.QAudioInput.stop": (),
- "PySide2.QtMultimedia.QAudioInput.suspend": (),
- "PySide2.QtMultimedia.QAudioInput.volume": (),
-# class PySide2.QtMultimedia.QAudioInputSelectorControl:
- "PySide2.QtMultimedia.QAudioInputSelectorControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAudioInputSelectorControl.activeInput": (),
- "PySide2.QtMultimedia.QAudioInputSelectorControl.availableInputs": (),
- "PySide2.QtMultimedia.QAudioInputSelectorControl.defaultInput": (),
- "PySide2.QtMultimedia.QAudioInputSelectorControl.inputDescription": ('str',),
- "PySide2.QtMultimedia.QAudioInputSelectorControl.setActiveInput": ('str',),
-# class PySide2.QtMultimedia.QAudioOutput:
- "PySide2.QtMultimedia.QAudioOutput.__init__": [('PySide2.QtMultimedia.QAudioDeviceInfo', 'PySide2.QtMultimedia.QAudioFormat', 'PySide2.QtCore.QObject'), ('PySide2.QtMultimedia.QAudioFormat', 'PySide2.QtCore.QObject')],
- "PySide2.QtMultimedia.QAudioOutput.bufferSize": (),
- "PySide2.QtMultimedia.QAudioOutput.bytesFree": (),
- "PySide2.QtMultimedia.QAudioOutput.category": (),
- "PySide2.QtMultimedia.QAudioOutput.elapsedUSecs": (),
- "PySide2.QtMultimedia.QAudioOutput.error": (),
- "PySide2.QtMultimedia.QAudioOutput.format": (),
- "PySide2.QtMultimedia.QAudioOutput.notifyInterval": (),
- "PySide2.QtMultimedia.QAudioOutput.periodSize": (),
- "PySide2.QtMultimedia.QAudioOutput.processedUSecs": (),
- "PySide2.QtMultimedia.QAudioOutput.reset": (),
- "PySide2.QtMultimedia.QAudioOutput.resume": (),
- "PySide2.QtMultimedia.QAudioOutput.setBufferSize": ('int',),
- "PySide2.QtMultimedia.QAudioOutput.setCategory": ('str',),
- "PySide2.QtMultimedia.QAudioOutput.setNotifyInterval": ('int',),
- "PySide2.QtMultimedia.QAudioOutput.setVolume": ('float',),
- "PySide2.QtMultimedia.QAudioOutput.start": [(), ('PySide2.QtCore.QIODevice',)],
- "PySide2.QtMultimedia.QAudioOutput.state": (),
- "PySide2.QtMultimedia.QAudioOutput.stop": (),
- "PySide2.QtMultimedia.QAudioOutput.suspend": (),
- "PySide2.QtMultimedia.QAudioOutput.volume": (),
-# class PySide2.QtMultimedia.QAudioOutputSelectorControl:
- "PySide2.QtMultimedia.QAudioOutputSelectorControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAudioOutputSelectorControl.activeOutput": (),
- "PySide2.QtMultimedia.QAudioOutputSelectorControl.availableOutputs": (),
- "PySide2.QtMultimedia.QAudioOutputSelectorControl.defaultOutput": (),
- "PySide2.QtMultimedia.QAudioOutputSelectorControl.outputDescription": ('str',),
- "PySide2.QtMultimedia.QAudioOutputSelectorControl.setActiveOutput": ('str',),
-# class PySide2.QtMultimedia.QAudioProbe:
- "PySide2.QtMultimedia.QAudioProbe.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAudioProbe.isActive": (),
- "PySide2.QtMultimedia.QAudioProbe.setSource": [('PySide2.QtMultimedia.QMediaObject',), ('PySide2.QtMultimedia.QMediaRecorder',)],
-# class PySide2.QtMultimedia.QAudioRecorder:
- "PySide2.QtMultimedia.QAudioRecorder.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAudioRecorder.audioInput": (),
- "PySide2.QtMultimedia.QAudioRecorder.audioInputDescription": ('str',),
- "PySide2.QtMultimedia.QAudioRecorder.audioInputs": (),
- "PySide2.QtMultimedia.QAudioRecorder.defaultAudioInput": (),
- "PySide2.QtMultimedia.QAudioRecorder.setAudioInput": ('str',),
-# class PySide2.QtMultimedia.QAudioRoleControl:
- "PySide2.QtMultimedia.QAudioRoleControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAudioRoleControl.audioRole": (),
- "PySide2.QtMultimedia.QAudioRoleControl.setAudioRole": ('PySide2.QtMultimedia.QAudio.Role',),
- "PySide2.QtMultimedia.QAudioRoleControl.supportedAudioRoles": (),
-# class PySide2.QtMultimedia.QCamera:
-# class PySide2.QtMultimedia.QCamera.CaptureMode:
-# class PySide2.QtMultimedia.QCamera.CaptureModes:
-# class PySide2.QtMultimedia.QCamera.Error:
-# class PySide2.QtMultimedia.QCamera.FrameRateRange:
- "PySide2.QtMultimedia.QCamera.FrameRateRange.__init__": [(), ('PySide2.QtMultimedia.QCamera.FrameRateRange',), ('float', 'float')],
- "PySide2.QtMultimedia.QCamera.FrameRateRange.__copy__": (),
-# class PySide2.QtMultimedia.QCamera.LockChangeReason:
-# class PySide2.QtMultimedia.QCamera.LockStatus:
-# class PySide2.QtMultimedia.QCamera.LockType:
-# class PySide2.QtMultimedia.QCamera.LockTypes:
-# class PySide2.QtMultimedia.QCamera.Position:
-# class PySide2.QtMultimedia.QCamera.State:
-# class PySide2.QtMultimedia.QCamera.Status:
- "PySide2.QtMultimedia.QCamera.__init__": [('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QObject',), ('PySide2.QtMultimedia.QCamera.Position', 'PySide2.QtCore.QObject'), ('PySide2.QtMultimedia.QCameraInfo', 'PySide2.QtCore.QObject')],
- "PySide2.QtMultimedia.QCamera.availability": (),
- "PySide2.QtMultimedia.QCamera.availableDevices": (),
- "PySide2.QtMultimedia.QCamera.captureMode": (),
- "PySide2.QtMultimedia.QCamera.deviceDescription": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtMultimedia.QCamera.error": (),
- "PySide2.QtMultimedia.QCamera.errorString": (),
- "PySide2.QtMultimedia.QCamera.exposure": (),
- "PySide2.QtMultimedia.QCamera.focus": (),
- "PySide2.QtMultimedia.QCamera.imageProcessing": (),
- "PySide2.QtMultimedia.QCamera.isCaptureModeSupported": ('PySide2.QtMultimedia.QCamera.CaptureModes',),
- "PySide2.QtMultimedia.QCamera.load": (),
- "PySide2.QtMultimedia.QCamera.lockStatus": [(), ('PySide2.QtMultimedia.QCamera.LockType',)],
- "PySide2.QtMultimedia.QCamera.requestedLocks": (),
- "PySide2.QtMultimedia.QCamera.searchAndLock": [(), ('PySide2.QtMultimedia.QCamera.LockTypes',)],
- "PySide2.QtMultimedia.QCamera.setCaptureMode": ('PySide2.QtMultimedia.QCamera.CaptureModes',),
- "PySide2.QtMultimedia.QCamera.setViewfinder": [('PySide2.QtMultimedia.QAbstractVideoSurface',), ('PySide2.QtMultimediaWidgets.QGraphicsVideoItem',), ('PySide2.QtMultimediaWidgets.QVideoWidget',)],
- "PySide2.QtMultimedia.QCamera.setViewfinderSettings": ('PySide2.QtMultimedia.QCameraViewfinderSettings',),
- "PySide2.QtMultimedia.QCamera.start": (),
- "PySide2.QtMultimedia.QCamera.state": (),
- "PySide2.QtMultimedia.QCamera.status": (),
- "PySide2.QtMultimedia.QCamera.stop": (),
- "PySide2.QtMultimedia.QCamera.supportedLocks": (),
- "PySide2.QtMultimedia.QCamera.supportedViewfinderFrameRateRanges": ('PySide2.QtMultimedia.QCameraViewfinderSettings',),
- "PySide2.QtMultimedia.QCamera.supportedViewfinderPixelFormats": ('PySide2.QtMultimedia.QCameraViewfinderSettings',),
- "PySide2.QtMultimedia.QCamera.supportedViewfinderResolutions": ('PySide2.QtMultimedia.QCameraViewfinderSettings',),
- "PySide2.QtMultimedia.QCamera.supportedViewfinderSettings": ('PySide2.QtMultimedia.QCameraViewfinderSettings',),
- "PySide2.QtMultimedia.QCamera.unload": (),
- "PySide2.QtMultimedia.QCamera.unlock": [(), ('PySide2.QtMultimedia.QCamera.LockTypes',)],
- "PySide2.QtMultimedia.QCamera.viewfinderSettings": (),
-# class PySide2.QtMultimedia.QCameraCaptureBufferFormatControl:
- "PySide2.QtMultimedia.QCameraCaptureBufferFormatControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraCaptureBufferFormatControl.bufferFormat": (),
- "PySide2.QtMultimedia.QCameraCaptureBufferFormatControl.setBufferFormat": ('PySide2.QtMultimedia.QVideoFrame.PixelFormat',),
- "PySide2.QtMultimedia.QCameraCaptureBufferFormatControl.supportedBufferFormats": (),
-# class PySide2.QtMultimedia.QCameraCaptureDestinationControl:
- "PySide2.QtMultimedia.QCameraCaptureDestinationControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraCaptureDestinationControl.captureDestination": (),
- "PySide2.QtMultimedia.QCameraCaptureDestinationControl.isCaptureDestinationSupported": ('PySide2.QtMultimedia.QCameraImageCapture.CaptureDestinations',),
- "PySide2.QtMultimedia.QCameraCaptureDestinationControl.setCaptureDestination": ('PySide2.QtMultimedia.QCameraImageCapture.CaptureDestinations',),
-# class PySide2.QtMultimedia.QCameraControl:
-# class PySide2.QtMultimedia.QCameraControl.PropertyChangeType:
- "PySide2.QtMultimedia.QCameraControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraControl.canChangeProperty": ('PySide2.QtMultimedia.QCameraControl.PropertyChangeType', 'PySide2.QtMultimedia.QCamera.Status'),
- "PySide2.QtMultimedia.QCameraControl.captureMode": (),
- "PySide2.QtMultimedia.QCameraControl.isCaptureModeSupported": ('PySide2.QtMultimedia.QCamera.CaptureModes',),
- "PySide2.QtMultimedia.QCameraControl.setCaptureMode": ('PySide2.QtMultimedia.QCamera.CaptureModes',),
- "PySide2.QtMultimedia.QCameraControl.setState": ('PySide2.QtMultimedia.QCamera.State',),
- "PySide2.QtMultimedia.QCameraControl.state": (),
- "PySide2.QtMultimedia.QCameraControl.status": (),
-# class PySide2.QtMultimedia.QCameraExposure:
-# class PySide2.QtMultimedia.QCameraExposure.ExposureMode:
-# class PySide2.QtMultimedia.QCameraExposure.FlashMode:
-# class PySide2.QtMultimedia.QCameraExposure.FlashModes:
-# class PySide2.QtMultimedia.QCameraExposure.MeteringMode:
- "PySide2.QtMultimedia.QCameraExposure.aperture": (),
- "PySide2.QtMultimedia.QCameraExposure.exposureCompensation": (),
- "PySide2.QtMultimedia.QCameraExposure.exposureMode": (),
- "PySide2.QtMultimedia.QCameraExposure.flashMode": (),
- "PySide2.QtMultimedia.QCameraExposure.isAvailable": (),
- "PySide2.QtMultimedia.QCameraExposure.isExposureModeSupported": ('PySide2.QtMultimedia.QCameraExposure.ExposureMode',),
- "PySide2.QtMultimedia.QCameraExposure.isFlashModeSupported": ('PySide2.QtMultimedia.QCameraExposure.FlashModes',),
- "PySide2.QtMultimedia.QCameraExposure.isFlashReady": (),
- "PySide2.QtMultimedia.QCameraExposure.isMeteringModeSupported": ('PySide2.QtMultimedia.QCameraExposure.MeteringMode',),
- "PySide2.QtMultimedia.QCameraExposure.isoSensitivity": (),
- "PySide2.QtMultimedia.QCameraExposure.meteringMode": (),
- "PySide2.QtMultimedia.QCameraExposure.requestedAperture": (),
- "PySide2.QtMultimedia.QCameraExposure.requestedIsoSensitivity": (),
- "PySide2.QtMultimedia.QCameraExposure.requestedShutterSpeed": (),
- "PySide2.QtMultimedia.QCameraExposure.setAutoAperture": (),
- "PySide2.QtMultimedia.QCameraExposure.setAutoIsoSensitivity": (),
- "PySide2.QtMultimedia.QCameraExposure.setAutoShutterSpeed": (),
- "PySide2.QtMultimedia.QCameraExposure.setExposureCompensation": ('float',),
- "PySide2.QtMultimedia.QCameraExposure.setExposureMode": ('PySide2.QtMultimedia.QCameraExposure.ExposureMode',),
- "PySide2.QtMultimedia.QCameraExposure.setFlashMode": ('PySide2.QtMultimedia.QCameraExposure.FlashModes',),
- "PySide2.QtMultimedia.QCameraExposure.setManualAperture": ('float',),
- "PySide2.QtMultimedia.QCameraExposure.setManualIsoSensitivity": ('int',),
- "PySide2.QtMultimedia.QCameraExposure.setManualShutterSpeed": ('float',),
- "PySide2.QtMultimedia.QCameraExposure.setMeteringMode": ('PySide2.QtMultimedia.QCameraExposure.MeteringMode',),
- "PySide2.QtMultimedia.QCameraExposure.setSpotMeteringPoint": ('PySide2.QtCore.QPointF',),
- "PySide2.QtMultimedia.QCameraExposure.shutterSpeed": (),
- "PySide2.QtMultimedia.QCameraExposure.spotMeteringPoint": (),
-# class PySide2.QtMultimedia.QCameraExposureControl:
-# class PySide2.QtMultimedia.QCameraExposureControl.ExposureParameter:
- "PySide2.QtMultimedia.QCameraExposureControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraExposureControl.actualValue": ('PySide2.QtMultimedia.QCameraExposureControl.ExposureParameter',),
- "PySide2.QtMultimedia.QCameraExposureControl.isParameterSupported": ('PySide2.QtMultimedia.QCameraExposureControl.ExposureParameter',),
- "PySide2.QtMultimedia.QCameraExposureControl.requestedValue": ('PySide2.QtMultimedia.QCameraExposureControl.ExposureParameter',),
- "PySide2.QtMultimedia.QCameraExposureControl.setValue": ('PySide2.QtMultimedia.QCameraExposureControl.ExposureParameter', 'typing.Any'),
-# class PySide2.QtMultimedia.QCameraFeedbackControl:
-# class PySide2.QtMultimedia.QCameraFeedbackControl.EventType:
- "PySide2.QtMultimedia.QCameraFeedbackControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraFeedbackControl.isEventFeedbackEnabled": ('PySide2.QtMultimedia.QCameraFeedbackControl.EventType',),
- "PySide2.QtMultimedia.QCameraFeedbackControl.isEventFeedbackLocked": ('PySide2.QtMultimedia.QCameraFeedbackControl.EventType',),
- "PySide2.QtMultimedia.QCameraFeedbackControl.resetEventFeedback": ('PySide2.QtMultimedia.QCameraFeedbackControl.EventType',),
- "PySide2.QtMultimedia.QCameraFeedbackControl.setEventFeedbackEnabled": ('PySide2.QtMultimedia.QCameraFeedbackControl.EventType', 'bool'),
- "PySide2.QtMultimedia.QCameraFeedbackControl.setEventFeedbackSound": ('PySide2.QtMultimedia.QCameraFeedbackControl.EventType', 'str'),
-# class PySide2.QtMultimedia.QCameraFlashControl:
- "PySide2.QtMultimedia.QCameraFlashControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraFlashControl.flashMode": (),
- "PySide2.QtMultimedia.QCameraFlashControl.isFlashModeSupported": ('PySide2.QtMultimedia.QCameraExposure.FlashModes',),
- "PySide2.QtMultimedia.QCameraFlashControl.isFlashReady": (),
- "PySide2.QtMultimedia.QCameraFlashControl.setFlashMode": ('PySide2.QtMultimedia.QCameraExposure.FlashModes',),
-# class PySide2.QtMultimedia.QCameraFocus:
-# class PySide2.QtMultimedia.QCameraFocus.FocusMode:
-# class PySide2.QtMultimedia.QCameraFocus.FocusModes:
-# class PySide2.QtMultimedia.QCameraFocus.FocusPointMode:
- "PySide2.QtMultimedia.QCameraFocus.customFocusPoint": (),
- "PySide2.QtMultimedia.QCameraFocus.digitalZoom": (),
- "PySide2.QtMultimedia.QCameraFocus.focusMode": (),
- "PySide2.QtMultimedia.QCameraFocus.focusPointMode": (),
- "PySide2.QtMultimedia.QCameraFocus.focusZones": (),
- "PySide2.QtMultimedia.QCameraFocus.isAvailable": (),
- "PySide2.QtMultimedia.QCameraFocus.isFocusModeSupported": ('PySide2.QtMultimedia.QCameraFocus.FocusModes',),
- "PySide2.QtMultimedia.QCameraFocus.isFocusPointModeSupported": ('PySide2.QtMultimedia.QCameraFocus.FocusPointMode',),
- "PySide2.QtMultimedia.QCameraFocus.maximumDigitalZoom": (),
- "PySide2.QtMultimedia.QCameraFocus.maximumOpticalZoom": (),
- "PySide2.QtMultimedia.QCameraFocus.opticalZoom": (),
- "PySide2.QtMultimedia.QCameraFocus.setCustomFocusPoint": ('PySide2.QtCore.QPointF',),
- "PySide2.QtMultimedia.QCameraFocus.setFocusMode": ('PySide2.QtMultimedia.QCameraFocus.FocusModes',),
- "PySide2.QtMultimedia.QCameraFocus.setFocusPointMode": ('PySide2.QtMultimedia.QCameraFocus.FocusPointMode',),
- "PySide2.QtMultimedia.QCameraFocus.zoomTo": ('float', 'float'),
-# class PySide2.QtMultimedia.QCameraFocusControl:
- "PySide2.QtMultimedia.QCameraFocusControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraFocusControl.customFocusPoint": (),
- "PySide2.QtMultimedia.QCameraFocusControl.focusMode": (),
- "PySide2.QtMultimedia.QCameraFocusControl.focusPointMode": (),
- "PySide2.QtMultimedia.QCameraFocusControl.focusZones": (),
- "PySide2.QtMultimedia.QCameraFocusControl.isFocusModeSupported": ('PySide2.QtMultimedia.QCameraFocus.FocusModes',),
- "PySide2.QtMultimedia.QCameraFocusControl.isFocusPointModeSupported": ('PySide2.QtMultimedia.QCameraFocus.FocusPointMode',),
- "PySide2.QtMultimedia.QCameraFocusControl.setCustomFocusPoint": ('PySide2.QtCore.QPointF',),
- "PySide2.QtMultimedia.QCameraFocusControl.setFocusMode": ('PySide2.QtMultimedia.QCameraFocus.FocusModes',),
- "PySide2.QtMultimedia.QCameraFocusControl.setFocusPointMode": ('PySide2.QtMultimedia.QCameraFocus.FocusPointMode',),
-# class PySide2.QtMultimedia.QCameraFocusZone:
-# class PySide2.QtMultimedia.QCameraFocusZone.FocusZoneStatus:
- "PySide2.QtMultimedia.QCameraFocusZone.__init__": [(), ('PySide2.QtCore.QRectF', 'PySide2.QtMultimedia.QCameraFocusZone.FocusZoneStatus'), ('PySide2.QtMultimedia.QCameraFocusZone',)],
- "PySide2.QtMultimedia.QCameraFocusZone.__copy__": (),
- "PySide2.QtMultimedia.QCameraFocusZone.area": (),
- "PySide2.QtMultimedia.QCameraFocusZone.isValid": (),
- "PySide2.QtMultimedia.QCameraFocusZone.setStatus": ('PySide2.QtMultimedia.QCameraFocusZone.FocusZoneStatus',),
- "PySide2.QtMultimedia.QCameraFocusZone.status": (),
-# class PySide2.QtMultimedia.QCameraImageCapture:
-# class PySide2.QtMultimedia.QCameraImageCapture.CaptureDestination:
-# class PySide2.QtMultimedia.QCameraImageCapture.CaptureDestinations:
-# class PySide2.QtMultimedia.QCameraImageCapture.DriveMode:
-# class PySide2.QtMultimedia.QCameraImageCapture.Error:
- "PySide2.QtMultimedia.QCameraImageCapture.__init__": ('PySide2.QtMultimedia.QMediaObject', 'PySide2.QtCore.QObject'),
- "PySide2.QtMultimedia.QCameraImageCapture.availability": (),
- "PySide2.QtMultimedia.QCameraImageCapture.bufferFormat": (),
- "PySide2.QtMultimedia.QCameraImageCapture.cancelCapture": (),
- "PySide2.QtMultimedia.QCameraImageCapture.capture": ('str',),
- "PySide2.QtMultimedia.QCameraImageCapture.captureDestination": (),
- "PySide2.QtMultimedia.QCameraImageCapture.encodingSettings": (),
- "PySide2.QtMultimedia.QCameraImageCapture.error": (),
- "PySide2.QtMultimedia.QCameraImageCapture.errorString": (),
- "PySide2.QtMultimedia.QCameraImageCapture.imageCodecDescription": ('str',),
- "PySide2.QtMultimedia.QCameraImageCapture.isAvailable": (),
- "PySide2.QtMultimedia.QCameraImageCapture.isCaptureDestinationSupported": ('PySide2.QtMultimedia.QCameraImageCapture.CaptureDestinations',),
- "PySide2.QtMultimedia.QCameraImageCapture.isReadyForCapture": (),
- "PySide2.QtMultimedia.QCameraImageCapture.mediaObject": (),
- "PySide2.QtMultimedia.QCameraImageCapture.setBufferFormat": ('PySide2.QtMultimedia.QVideoFrame.PixelFormat',),
- "PySide2.QtMultimedia.QCameraImageCapture.setCaptureDestination": ('PySide2.QtMultimedia.QCameraImageCapture.CaptureDestinations',),
- "PySide2.QtMultimedia.QCameraImageCapture.setEncodingSettings": ('PySide2.QtMultimedia.QImageEncoderSettings',),
- "PySide2.QtMultimedia.QCameraImageCapture.setMediaObject": ('PySide2.QtMultimedia.QMediaObject',),
- "PySide2.QtMultimedia.QCameraImageCapture.supportedBufferFormats": (),
- "PySide2.QtMultimedia.QCameraImageCapture.supportedImageCodecs": (),
-# class PySide2.QtMultimedia.QCameraImageCaptureControl:
- "PySide2.QtMultimedia.QCameraImageCaptureControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraImageCaptureControl.cancelCapture": (),
- "PySide2.QtMultimedia.QCameraImageCaptureControl.capture": ('str',),
- "PySide2.QtMultimedia.QCameraImageCaptureControl.driveMode": (),
- "PySide2.QtMultimedia.QCameraImageCaptureControl.isReadyForCapture": (),
- "PySide2.QtMultimedia.QCameraImageCaptureControl.setDriveMode": ('PySide2.QtMultimedia.QCameraImageCapture.DriveMode',),
-# class PySide2.QtMultimedia.QCameraImageProcessing:
-# class PySide2.QtMultimedia.QCameraImageProcessing.ColorFilter:
-# class PySide2.QtMultimedia.QCameraImageProcessing.WhiteBalanceMode:
- "PySide2.QtMultimedia.QCameraImageProcessing.brightness": (),
- "PySide2.QtMultimedia.QCameraImageProcessing.colorFilter": (),
- "PySide2.QtMultimedia.QCameraImageProcessing.contrast": (),
- "PySide2.QtMultimedia.QCameraImageProcessing.denoisingLevel": (),
- "PySide2.QtMultimedia.QCameraImageProcessing.isAvailable": (),
- "PySide2.QtMultimedia.QCameraImageProcessing.isColorFilterSupported": ('PySide2.QtMultimedia.QCameraImageProcessing.ColorFilter',),
- "PySide2.QtMultimedia.QCameraImageProcessing.isWhiteBalanceModeSupported": ('PySide2.QtMultimedia.QCameraImageProcessing.WhiteBalanceMode',),
- "PySide2.QtMultimedia.QCameraImageProcessing.manualWhiteBalance": (),
- "PySide2.QtMultimedia.QCameraImageProcessing.saturation": (),
- "PySide2.QtMultimedia.QCameraImageProcessing.setBrightness": ('float',),
- "PySide2.QtMultimedia.QCameraImageProcessing.setColorFilter": ('PySide2.QtMultimedia.QCameraImageProcessing.ColorFilter',),
- "PySide2.QtMultimedia.QCameraImageProcessing.setContrast": ('float',),
- "PySide2.QtMultimedia.QCameraImageProcessing.setDenoisingLevel": ('float',),
- "PySide2.QtMultimedia.QCameraImageProcessing.setManualWhiteBalance": ('float',),
- "PySide2.QtMultimedia.QCameraImageProcessing.setSaturation": ('float',),
- "PySide2.QtMultimedia.QCameraImageProcessing.setSharpeningLevel": ('float',),
- "PySide2.QtMultimedia.QCameraImageProcessing.setWhiteBalanceMode": ('PySide2.QtMultimedia.QCameraImageProcessing.WhiteBalanceMode',),
- "PySide2.QtMultimedia.QCameraImageProcessing.sharpeningLevel": (),
- "PySide2.QtMultimedia.QCameraImageProcessing.whiteBalanceMode": (),
-# class PySide2.QtMultimedia.QCameraImageProcessingControl:
-# class PySide2.QtMultimedia.QCameraImageProcessingControl.ProcessingParameter:
- "PySide2.QtMultimedia.QCameraImageProcessingControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraImageProcessingControl.isParameterSupported": ('PySide2.QtMultimedia.QCameraImageProcessingControl.ProcessingParameter',),
- "PySide2.QtMultimedia.QCameraImageProcessingControl.isParameterValueSupported": ('PySide2.QtMultimedia.QCameraImageProcessingControl.ProcessingParameter', 'typing.Any'),
- "PySide2.QtMultimedia.QCameraImageProcessingControl.parameter": ('PySide2.QtMultimedia.QCameraImageProcessingControl.ProcessingParameter',),
- "PySide2.QtMultimedia.QCameraImageProcessingControl.setParameter": ('PySide2.QtMultimedia.QCameraImageProcessingControl.ProcessingParameter', 'typing.Any'),
-# class PySide2.QtMultimedia.QCameraInfo:
- "PySide2.QtMultimedia.QCameraInfo.__init__": [('PySide2.QtCore.QByteArray',), ('PySide2.QtMultimedia.QCamera',), ('PySide2.QtMultimedia.QCameraInfo',)],
- "PySide2.QtMultimedia.QCameraInfo.__copy__": (),
- "PySide2.QtMultimedia.QCameraInfo.availableCameras": ('PySide2.QtMultimedia.QCamera.Position',),
- "PySide2.QtMultimedia.QCameraInfo.defaultCamera": (),
- "PySide2.QtMultimedia.QCameraInfo.description": (),
- "PySide2.QtMultimedia.QCameraInfo.deviceName": (),
- "PySide2.QtMultimedia.QCameraInfo.isNull": (),
- "PySide2.QtMultimedia.QCameraInfo.orientation": (),
- "PySide2.QtMultimedia.QCameraInfo.position": (),
-# class PySide2.QtMultimedia.QCameraInfoControl:
- "PySide2.QtMultimedia.QCameraInfoControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraInfoControl.cameraOrientation": ('str',),
- "PySide2.QtMultimedia.QCameraInfoControl.cameraPosition": ('str',),
-# class PySide2.QtMultimedia.QCameraLocksControl:
- "PySide2.QtMultimedia.QCameraLocksControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraLocksControl.lockStatus": ('PySide2.QtMultimedia.QCamera.LockType',),
- "PySide2.QtMultimedia.QCameraLocksControl.searchAndLock": ('PySide2.QtMultimedia.QCamera.LockTypes',),
- "PySide2.QtMultimedia.QCameraLocksControl.supportedLocks": (),
- "PySide2.QtMultimedia.QCameraLocksControl.unlock": ('PySide2.QtMultimedia.QCamera.LockTypes',),
-# class PySide2.QtMultimedia.QCameraViewfinderSettings:
- "PySide2.QtMultimedia.QCameraViewfinderSettings.__init__": [(), ('PySide2.QtMultimedia.QCameraViewfinderSettings',)],
- "PySide2.QtMultimedia.QCameraViewfinderSettings.__copy__": (),
- "PySide2.QtMultimedia.QCameraViewfinderSettings.isNull": (),
- "PySide2.QtMultimedia.QCameraViewfinderSettings.maximumFrameRate": (),
- "PySide2.QtMultimedia.QCameraViewfinderSettings.minimumFrameRate": (),
- "PySide2.QtMultimedia.QCameraViewfinderSettings.pixelAspectRatio": (),
- "PySide2.QtMultimedia.QCameraViewfinderSettings.pixelFormat": (),
- "PySide2.QtMultimedia.QCameraViewfinderSettings.resolution": (),
- "PySide2.QtMultimedia.QCameraViewfinderSettings.setMaximumFrameRate": ('float',),
- "PySide2.QtMultimedia.QCameraViewfinderSettings.setMinimumFrameRate": ('float',),
- "PySide2.QtMultimedia.QCameraViewfinderSettings.setPixelAspectRatio": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtMultimedia.QCameraViewfinderSettings.setPixelFormat": ('PySide2.QtMultimedia.QVideoFrame.PixelFormat',),
- "PySide2.QtMultimedia.QCameraViewfinderSettings.setResolution": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtMultimedia.QCameraViewfinderSettings.swap": ('PySide2.QtMultimedia.QCameraViewfinderSettings',),
-# class PySide2.QtMultimedia.QCameraViewfinderSettingsControl:
-# class PySide2.QtMultimedia.QCameraViewfinderSettingsControl.ViewfinderParameter:
- "PySide2.QtMultimedia.QCameraViewfinderSettingsControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraViewfinderSettingsControl.isViewfinderParameterSupported": ('PySide2.QtMultimedia.QCameraViewfinderSettingsControl.ViewfinderParameter',),
- "PySide2.QtMultimedia.QCameraViewfinderSettingsControl.setViewfinderParameter": ('PySide2.QtMultimedia.QCameraViewfinderSettingsControl.ViewfinderParameter', 'typing.Any'),
- "PySide2.QtMultimedia.QCameraViewfinderSettingsControl.viewfinderParameter": ('PySide2.QtMultimedia.QCameraViewfinderSettingsControl.ViewfinderParameter',),
-# class PySide2.QtMultimedia.QCameraViewfinderSettingsControl2:
- "PySide2.QtMultimedia.QCameraViewfinderSettingsControl2.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraViewfinderSettingsControl2.setViewfinderSettings": ('PySide2.QtMultimedia.QCameraViewfinderSettings',),
- "PySide2.QtMultimedia.QCameraViewfinderSettingsControl2.supportedViewfinderSettings": (),
- "PySide2.QtMultimedia.QCameraViewfinderSettingsControl2.viewfinderSettings": (),
-# class PySide2.QtMultimedia.QCameraZoomControl:
- "PySide2.QtMultimedia.QCameraZoomControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraZoomControl.currentDigitalZoom": (),
- "PySide2.QtMultimedia.QCameraZoomControl.currentOpticalZoom": (),
- "PySide2.QtMultimedia.QCameraZoomControl.maximumDigitalZoom": (),
- "PySide2.QtMultimedia.QCameraZoomControl.maximumOpticalZoom": (),
- "PySide2.QtMultimedia.QCameraZoomControl.requestedDigitalZoom": (),
- "PySide2.QtMultimedia.QCameraZoomControl.requestedOpticalZoom": (),
- "PySide2.QtMultimedia.QCameraZoomControl.zoomTo": ('float', 'float'),
-# class PySide2.QtMultimedia.QCustomAudioRoleControl:
- "PySide2.QtMultimedia.QCustomAudioRoleControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCustomAudioRoleControl.customAudioRole": (),
- "PySide2.QtMultimedia.QCustomAudioRoleControl.setCustomAudioRole": ('str',),
- "PySide2.QtMultimedia.QCustomAudioRoleControl.supportedCustomAudioRoles": (),
-# class PySide2.QtMultimedia.QImageEncoderControl:
- "PySide2.QtMultimedia.QImageEncoderControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QImageEncoderControl.imageCodecDescription": ('str',),
- "PySide2.QtMultimedia.QImageEncoderControl.imageSettings": (),
- "PySide2.QtMultimedia.QImageEncoderControl.setImageSettings": ('PySide2.QtMultimedia.QImageEncoderSettings',),
- "PySide2.QtMultimedia.QImageEncoderControl.supportedImageCodecs": (),
-# class PySide2.QtMultimedia.QImageEncoderSettings:
- "PySide2.QtMultimedia.QImageEncoderSettings.__init__": [(), ('PySide2.QtMultimedia.QImageEncoderSettings',)],
- "PySide2.QtMultimedia.QImageEncoderSettings.__copy__": (),
- "PySide2.QtMultimedia.QImageEncoderSettings.codec": (),
- "PySide2.QtMultimedia.QImageEncoderSettings.encodingOption": ('str',),
- "PySide2.QtMultimedia.QImageEncoderSettings.encodingOptions": (),
- "PySide2.QtMultimedia.QImageEncoderSettings.isNull": (),
- "PySide2.QtMultimedia.QImageEncoderSettings.quality": (),
- "PySide2.QtMultimedia.QImageEncoderSettings.resolution": (),
- "PySide2.QtMultimedia.QImageEncoderSettings.setCodec": ('str',),
- "PySide2.QtMultimedia.QImageEncoderSettings.setEncodingOption": ('str', 'typing.Any'),
- "PySide2.QtMultimedia.QImageEncoderSettings.setEncodingOptions": ('typing.Dict',),
- "PySide2.QtMultimedia.QImageEncoderSettings.setQuality": ('PySide2.QtMultimedia.QMultimedia.EncodingQuality',),
- "PySide2.QtMultimedia.QImageEncoderSettings.setResolution": [('PySide2.QtCore.QSize',), ('int', 'int')],
-# class PySide2.QtMultimedia.QMediaAudioProbeControl:
- "PySide2.QtMultimedia.QMediaAudioProbeControl.__init__": ('PySide2.QtCore.QObject',),
-# class PySide2.QtMultimedia.QMediaAvailabilityControl:
- "PySide2.QtMultimedia.QMediaAvailabilityControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaAvailabilityControl.availability": (),
-# class PySide2.QtMultimedia.QMediaBindableInterface:
- "PySide2.QtMultimedia.QMediaBindableInterface.__init__": (),
- "PySide2.QtMultimedia.QMediaBindableInterface.mediaObject": (),
- "PySide2.QtMultimedia.QMediaBindableInterface.setMediaObject": ('PySide2.QtMultimedia.QMediaObject',),
-# class PySide2.QtMultimedia.QMediaContainerControl:
- "PySide2.QtMultimedia.QMediaContainerControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaContainerControl.containerDescription": ('str',),
- "PySide2.QtMultimedia.QMediaContainerControl.containerFormat": (),
- "PySide2.QtMultimedia.QMediaContainerControl.setContainerFormat": ('str',),
- "PySide2.QtMultimedia.QMediaContainerControl.supportedContainers": (),
-# class PySide2.QtMultimedia.QMediaContent:
- "PySide2.QtMultimedia.QMediaContent.__init__": [(), ('PySide2.QtCore.QUrl',), ('PySide2.QtMultimedia.QMediaContent',), ('PySide2.QtMultimedia.QMediaPlaylist', 'PySide2.QtCore.QUrl', 'bool'), ('PySide2.QtMultimedia.QMediaResource',), ('PySide2.QtNetwork.QNetworkRequest',), ('typing.Sequence',)],
- "PySide2.QtMultimedia.QMediaContent.__copy__": (),
- "PySide2.QtMultimedia.QMediaContent.canonicalRequest": (),
- "PySide2.QtMultimedia.QMediaContent.canonicalResource": (),
- "PySide2.QtMultimedia.QMediaContent.canonicalUrl": (),
- "PySide2.QtMultimedia.QMediaContent.isNull": (),
- "PySide2.QtMultimedia.QMediaContent.playlist": (),
- "PySide2.QtMultimedia.QMediaContent.request": (),
- "PySide2.QtMultimedia.QMediaContent.resources": (),
-# class PySide2.QtMultimedia.QMediaControl:
- "PySide2.QtMultimedia.QMediaControl.__init__": ('PySide2.QtCore.QObject',),
-# class PySide2.QtMultimedia.QMediaGaplessPlaybackControl:
- "PySide2.QtMultimedia.QMediaGaplessPlaybackControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaGaplessPlaybackControl.crossfadeTime": (),
- "PySide2.QtMultimedia.QMediaGaplessPlaybackControl.isCrossfadeSupported": (),
- "PySide2.QtMultimedia.QMediaGaplessPlaybackControl.nextMedia": (),
- "PySide2.QtMultimedia.QMediaGaplessPlaybackControl.setCrossfadeTime": ('float',),
- "PySide2.QtMultimedia.QMediaGaplessPlaybackControl.setNextMedia": ('PySide2.QtMultimedia.QMediaContent',),
-# class PySide2.QtMultimedia.QMediaNetworkAccessControl:
- "PySide2.QtMultimedia.QMediaNetworkAccessControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaNetworkAccessControl.currentConfiguration": (),
- "PySide2.QtMultimedia.QMediaNetworkAccessControl.setConfigurations": ('typing.Sequence',),
-# class PySide2.QtMultimedia.QMediaObject:
- "PySide2.QtMultimedia.QMediaObject.__init__": ('PySide2.QtCore.QObject', 'PySide2.QtMultimedia.QMediaService'),
- "PySide2.QtMultimedia.QMediaObject.addPropertyWatch": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtMultimedia.QMediaObject.availability": (),
- "PySide2.QtMultimedia.QMediaObject.availableMetaData": (),
- "PySide2.QtMultimedia.QMediaObject.bind": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaObject.isAvailable": (),
- "PySide2.QtMultimedia.QMediaObject.isMetaDataAvailable": (),
- "PySide2.QtMultimedia.QMediaObject.metaData": ('str',),
- "PySide2.QtMultimedia.QMediaObject.notifyInterval": (),
- "PySide2.QtMultimedia.QMediaObject.removePropertyWatch": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtMultimedia.QMediaObject.service": (),
- "PySide2.QtMultimedia.QMediaObject.setNotifyInterval": ('int',),
- "PySide2.QtMultimedia.QMediaObject.unbind": ('PySide2.QtCore.QObject',),
-# class PySide2.QtMultimedia.QMediaPlayer:
-# class PySide2.QtMultimedia.QMediaPlayer.Error:
-# class PySide2.QtMultimedia.QMediaPlayer.Flag:
-# class PySide2.QtMultimedia.QMediaPlayer.Flags:
-# class PySide2.QtMultimedia.QMediaPlayer.MediaStatus:
-# class PySide2.QtMultimedia.QMediaPlayer.State:
- "PySide2.QtMultimedia.QMediaPlayer.__init__": ('PySide2.QtCore.QObject', 'PySide2.QtMultimedia.QMediaPlayer.Flags'),
- "PySide2.QtMultimedia.QMediaPlayer.audioRole": (),
- "PySide2.QtMultimedia.QMediaPlayer.availability": (),
- "PySide2.QtMultimedia.QMediaPlayer.bind": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaPlayer.bufferStatus": (),
- "PySide2.QtMultimedia.QMediaPlayer.currentMedia": (),
- "PySide2.QtMultimedia.QMediaPlayer.currentNetworkConfiguration": (),
- "PySide2.QtMultimedia.QMediaPlayer.customAudioRole": (),
- "PySide2.QtMultimedia.QMediaPlayer.duration": (),
- "PySide2.QtMultimedia.QMediaPlayer.error": (),
- "PySide2.QtMultimedia.QMediaPlayer.errorString": (),
- "PySide2.QtMultimedia.QMediaPlayer.hasSupport": ('str', 'typing.Sequence', 'PySide2.QtMultimedia.QMediaPlayer.Flags'),
- "PySide2.QtMultimedia.QMediaPlayer.isAudioAvailable": (),
- "PySide2.QtMultimedia.QMediaPlayer.isMuted": (),
- "PySide2.QtMultimedia.QMediaPlayer.isSeekable": (),
- "PySide2.QtMultimedia.QMediaPlayer.isVideoAvailable": (),
- "PySide2.QtMultimedia.QMediaPlayer.media": (),
- "PySide2.QtMultimedia.QMediaPlayer.mediaStatus": (),
- "PySide2.QtMultimedia.QMediaPlayer.mediaStream": (),
- "PySide2.QtMultimedia.QMediaPlayer.pause": (),
- "PySide2.QtMultimedia.QMediaPlayer.play": (),
- "PySide2.QtMultimedia.QMediaPlayer.playbackRate": (),
- "PySide2.QtMultimedia.QMediaPlayer.playlist": (),
- "PySide2.QtMultimedia.QMediaPlayer.position": (),
- "PySide2.QtMultimedia.QMediaPlayer.setAudioRole": ('PySide2.QtMultimedia.QAudio.Role',),
- "PySide2.QtMultimedia.QMediaPlayer.setCustomAudioRole": ('str',),
- "PySide2.QtMultimedia.QMediaPlayer.setMedia": ('PySide2.QtMultimedia.QMediaContent', 'PySide2.QtCore.QIODevice'),
- "PySide2.QtMultimedia.QMediaPlayer.setMuted": ('bool',),
- "PySide2.QtMultimedia.QMediaPlayer.setNetworkConfigurations": ('typing.Sequence',),
- "PySide2.QtMultimedia.QMediaPlayer.setPlaybackRate": ('float',),
- "PySide2.QtMultimedia.QMediaPlayer.setPlaylist": ('PySide2.QtMultimedia.QMediaPlaylist',),
- "PySide2.QtMultimedia.QMediaPlayer.setPosition": ('int',),
- "PySide2.QtMultimedia.QMediaPlayer.setVideoOutput": [('PySide2.QtMultimedia.QAbstractVideoSurface',), ('PySide2.QtMultimediaWidgets.QGraphicsVideoItem',), ('PySide2.QtMultimediaWidgets.QVideoWidget',)],
- "PySide2.QtMultimedia.QMediaPlayer.setVolume": ('int',),
- "PySide2.QtMultimedia.QMediaPlayer.state": (),
- "PySide2.QtMultimedia.QMediaPlayer.stop": (),
- "PySide2.QtMultimedia.QMediaPlayer.supportedAudioRoles": (),
- "PySide2.QtMultimedia.QMediaPlayer.supportedCustomAudioRoles": (),
- "PySide2.QtMultimedia.QMediaPlayer.supportedMimeTypes": ('PySide2.QtMultimedia.QMediaPlayer.Flags',),
- "PySide2.QtMultimedia.QMediaPlayer.unbind": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaPlayer.volume": (),
-# class PySide2.QtMultimedia.QMediaPlayerControl:
- "PySide2.QtMultimedia.QMediaPlayerControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaPlayerControl.availablePlaybackRanges": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.bufferStatus": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.duration": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.isAudioAvailable": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.isMuted": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.isSeekable": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.isVideoAvailable": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.media": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.mediaStatus": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.mediaStream": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.pause": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.play": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.playbackRate": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.position": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.setMedia": ('PySide2.QtMultimedia.QMediaContent', 'PySide2.QtCore.QIODevice'),
- "PySide2.QtMultimedia.QMediaPlayerControl.setMuted": ('bool',),
- "PySide2.QtMultimedia.QMediaPlayerControl.setPlaybackRate": ('float',),
- "PySide2.QtMultimedia.QMediaPlayerControl.setPosition": ('int',),
- "PySide2.QtMultimedia.QMediaPlayerControl.setVolume": ('int',),
- "PySide2.QtMultimedia.QMediaPlayerControl.state": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.stop": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.volume": (),
-# class PySide2.QtMultimedia.QMediaPlaylist:
-# class PySide2.QtMultimedia.QMediaPlaylist.Error:
-# class PySide2.QtMultimedia.QMediaPlaylist.PlaybackMode:
- "PySide2.QtMultimedia.QMediaPlaylist.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaPlaylist.addMedia": [('PySide2.QtMultimedia.QMediaContent',), ('typing.Sequence',)],
- "PySide2.QtMultimedia.QMediaPlaylist.clear": (),
- "PySide2.QtMultimedia.QMediaPlaylist.currentIndex": (),
- "PySide2.QtMultimedia.QMediaPlaylist.currentMedia": (),
- "PySide2.QtMultimedia.QMediaPlaylist.error": (),
- "PySide2.QtMultimedia.QMediaPlaylist.errorString": (),
- "PySide2.QtMultimedia.QMediaPlaylist.insertMedia": [('int', 'PySide2.QtMultimedia.QMediaContent'), ('int', 'typing.Sequence')],
- "PySide2.QtMultimedia.QMediaPlaylist.isEmpty": (),
- "PySide2.QtMultimedia.QMediaPlaylist.isReadOnly": (),
- "PySide2.QtMultimedia.QMediaPlaylist.load": [('PySide2.QtCore.QIODevice', 'bytes'), ('PySide2.QtCore.QUrl', 'bytes'), ('PySide2.QtNetwork.QNetworkRequest', 'bytes')],
- "PySide2.QtMultimedia.QMediaPlaylist.media": ('int',),
- "PySide2.QtMultimedia.QMediaPlaylist.mediaCount": (),
- "PySide2.QtMultimedia.QMediaPlaylist.mediaObject": (),
- "PySide2.QtMultimedia.QMediaPlaylist.moveMedia": ('int', 'int'),
- "PySide2.QtMultimedia.QMediaPlaylist.nextIndex": ('int',),
- "PySide2.QtMultimedia.QMediaPlaylist.playbackMode": (),
- "PySide2.QtMultimedia.QMediaPlaylist.previous": (),
- "PySide2.QtMultimedia.QMediaPlaylist.previousIndex": ('int',),
- "PySide2.QtMultimedia.QMediaPlaylist.removeMedia": [('int',), ('int', 'int')],
- "PySide2.QtMultimedia.QMediaPlaylist.save": [('PySide2.QtCore.QIODevice', 'bytes'), ('PySide2.QtCore.QUrl', 'bytes')],
- "PySide2.QtMultimedia.QMediaPlaylist.setCurrentIndex": ('int',),
- "PySide2.QtMultimedia.QMediaPlaylist.setMediaObject": ('PySide2.QtMultimedia.QMediaObject',),
- "PySide2.QtMultimedia.QMediaPlaylist.setPlaybackMode": ('PySide2.QtMultimedia.QMediaPlaylist.PlaybackMode',),
- "PySide2.QtMultimedia.QMediaPlaylist.shuffle": (),
-# class PySide2.QtMultimedia.QMediaRecorder:
-# class PySide2.QtMultimedia.QMediaRecorder.Error:
-# class PySide2.QtMultimedia.QMediaRecorder.State:
-# class PySide2.QtMultimedia.QMediaRecorder.Status:
- "PySide2.QtMultimedia.QMediaRecorder.__init__": ('PySide2.QtMultimedia.QMediaObject', 'PySide2.QtCore.QObject'),
- "PySide2.QtMultimedia.QMediaRecorder.actualLocation": (),
- "PySide2.QtMultimedia.QMediaRecorder.audioCodecDescription": ('str',),
- "PySide2.QtMultimedia.QMediaRecorder.audioSettings": (),
- "PySide2.QtMultimedia.QMediaRecorder.availability": (),
- "PySide2.QtMultimedia.QMediaRecorder.availableMetaData": (),
- "PySide2.QtMultimedia.QMediaRecorder.containerDescription": ('str',),
- "PySide2.QtMultimedia.QMediaRecorder.containerFormat": (),
- "PySide2.QtMultimedia.QMediaRecorder.duration": (),
- "PySide2.QtMultimedia.QMediaRecorder.error": (),
- "PySide2.QtMultimedia.QMediaRecorder.errorString": (),
- "PySide2.QtMultimedia.QMediaRecorder.isAvailable": (),
- "PySide2.QtMultimedia.QMediaRecorder.isMetaDataAvailable": (),
- "PySide2.QtMultimedia.QMediaRecorder.isMetaDataWritable": (),
- "PySide2.QtMultimedia.QMediaRecorder.isMuted": (),
- "PySide2.QtMultimedia.QMediaRecorder.mediaObject": (),
- "PySide2.QtMultimedia.QMediaRecorder.metaData": ('str',),
- "PySide2.QtMultimedia.QMediaRecorder.outputLocation": (),
- "PySide2.QtMultimedia.QMediaRecorder.pause": (),
- "PySide2.QtMultimedia.QMediaRecorder.record": (),
- "PySide2.QtMultimedia.QMediaRecorder.setAudioSettings": ('PySide2.QtMultimedia.QAudioEncoderSettings',),
- "PySide2.QtMultimedia.QMediaRecorder.setContainerFormat": ('str',),
- "PySide2.QtMultimedia.QMediaRecorder.setEncodingSettings": ('PySide2.QtMultimedia.QAudioEncoderSettings', 'PySide2.QtMultimedia.QVideoEncoderSettings', 'str'),
- "PySide2.QtMultimedia.QMediaRecorder.setMediaObject": ('PySide2.QtMultimedia.QMediaObject',),
- "PySide2.QtMultimedia.QMediaRecorder.setMetaData": ('str', 'typing.Any'),
- "PySide2.QtMultimedia.QMediaRecorder.setMuted": ('bool',),
- "PySide2.QtMultimedia.QMediaRecorder.setOutputLocation": ('PySide2.QtCore.QUrl',),
- "PySide2.QtMultimedia.QMediaRecorder.setVideoSettings": ('PySide2.QtMultimedia.QVideoEncoderSettings',),
- "PySide2.QtMultimedia.QMediaRecorder.setVolume": ('float',),
- "PySide2.QtMultimedia.QMediaRecorder.state": (),
- "PySide2.QtMultimedia.QMediaRecorder.status": (),
- "PySide2.QtMultimedia.QMediaRecorder.stop": (),
- "PySide2.QtMultimedia.QMediaRecorder.supportedAudioCodecs": (),
- "PySide2.QtMultimedia.QMediaRecorder.supportedContainers": (),
- "PySide2.QtMultimedia.QMediaRecorder.supportedVideoCodecs": (),
- "PySide2.QtMultimedia.QMediaRecorder.videoCodecDescription": ('str',),
- "PySide2.QtMultimedia.QMediaRecorder.videoSettings": (),
- "PySide2.QtMultimedia.QMediaRecorder.volume": (),
-# class PySide2.QtMultimedia.QMediaRecorderControl:
- "PySide2.QtMultimedia.QMediaRecorderControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaRecorderControl.applySettings": (),
- "PySide2.QtMultimedia.QMediaRecorderControl.duration": (),
- "PySide2.QtMultimedia.QMediaRecorderControl.isMuted": (),
- "PySide2.QtMultimedia.QMediaRecorderControl.outputLocation": (),
- "PySide2.QtMultimedia.QMediaRecorderControl.setMuted": ('bool',),
- "PySide2.QtMultimedia.QMediaRecorderControl.setOutputLocation": ('PySide2.QtCore.QUrl',),
- "PySide2.QtMultimedia.QMediaRecorderControl.setState": ('PySide2.QtMultimedia.QMediaRecorder.State',),
- "PySide2.QtMultimedia.QMediaRecorderControl.setVolume": ('float',),
- "PySide2.QtMultimedia.QMediaRecorderControl.state": (),
- "PySide2.QtMultimedia.QMediaRecorderControl.status": (),
- "PySide2.QtMultimedia.QMediaRecorderControl.volume": (),
-# class PySide2.QtMultimedia.QMediaResource:
- "PySide2.QtMultimedia.QMediaResource.__init__": [(), ('PySide2.QtCore.QUrl', 'str'), ('PySide2.QtMultimedia.QMediaResource',), ('PySide2.QtNetwork.QNetworkRequest', 'str')],
- "PySide2.QtMultimedia.QMediaResource.__copy__": (),
- "PySide2.QtMultimedia.QMediaResource.audioBitRate": (),
- "PySide2.QtMultimedia.QMediaResource.audioCodec": (),
- "PySide2.QtMultimedia.QMediaResource.channelCount": (),
- "PySide2.QtMultimedia.QMediaResource.dataSize": (),
- "PySide2.QtMultimedia.QMediaResource.isNull": (),
- "PySide2.QtMultimedia.QMediaResource.language": (),
- "PySide2.QtMultimedia.QMediaResource.mimeType": (),
- "PySide2.QtMultimedia.QMediaResource.request": (),
- "PySide2.QtMultimedia.QMediaResource.resolution": (),
- "PySide2.QtMultimedia.QMediaResource.sampleRate": (),
- "PySide2.QtMultimedia.QMediaResource.setAudioBitRate": ('int',),
- "PySide2.QtMultimedia.QMediaResource.setAudioCodec": ('str',),
- "PySide2.QtMultimedia.QMediaResource.setChannelCount": ('int',),
- "PySide2.QtMultimedia.QMediaResource.setDataSize": ('int',),
- "PySide2.QtMultimedia.QMediaResource.setLanguage": ('str',),
- "PySide2.QtMultimedia.QMediaResource.setResolution": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtMultimedia.QMediaResource.setSampleRate": ('int',),
- "PySide2.QtMultimedia.QMediaResource.setVideoBitRate": ('int',),
- "PySide2.QtMultimedia.QMediaResource.setVideoCodec": ('str',),
- "PySide2.QtMultimedia.QMediaResource.url": (),
- "PySide2.QtMultimedia.QMediaResource.videoBitRate": (),
- "PySide2.QtMultimedia.QMediaResource.videoCodec": (),
-# class PySide2.QtMultimedia.QMediaService:
- "PySide2.QtMultimedia.QMediaService.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaService.releaseControl": ('PySide2.QtMultimedia.QMediaControl',),
- "PySide2.QtMultimedia.QMediaService.requestControl": ('bytes',),
-# class PySide2.QtMultimedia.QMediaServiceCameraInfoInterface:
- "PySide2.QtMultimedia.QMediaServiceCameraInfoInterface.__init__": (),
- "PySide2.QtMultimedia.QMediaServiceCameraInfoInterface.cameraOrientation": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtMultimedia.QMediaServiceCameraInfoInterface.cameraPosition": ('PySide2.QtCore.QByteArray',),
-# class PySide2.QtMultimedia.QMediaServiceDefaultDeviceInterface:
- "PySide2.QtMultimedia.QMediaServiceDefaultDeviceInterface.__init__": (),
- "PySide2.QtMultimedia.QMediaServiceDefaultDeviceInterface.defaultDevice": ('PySide2.QtCore.QByteArray',),
-# class PySide2.QtMultimedia.QMediaServiceFeaturesInterface:
- "PySide2.QtMultimedia.QMediaServiceFeaturesInterface.__init__": (),
- "PySide2.QtMultimedia.QMediaServiceFeaturesInterface.supportedFeatures": ('PySide2.QtCore.QByteArray',),
-# class PySide2.QtMultimedia.QMediaServiceProviderHint:
-# class PySide2.QtMultimedia.QMediaServiceProviderHint.Feature:
-# class PySide2.QtMultimedia.QMediaServiceProviderHint.Features:
-# class PySide2.QtMultimedia.QMediaServiceProviderHint.Type:
- "PySide2.QtMultimedia.QMediaServiceProviderHint.__init__": [(), ('PySide2.QtCore.QByteArray',), ('PySide2.QtMultimedia.QCamera.Position',), ('PySide2.QtMultimedia.QMediaServiceProviderHint',), ('PySide2.QtMultimedia.QMediaServiceProviderHint.Features',), ('str', 'typing.Sequence')],
- "PySide2.QtMultimedia.QMediaServiceProviderHint.__copy__": (),
- "PySide2.QtMultimedia.QMediaServiceProviderHint.cameraPosition": (),
- "PySide2.QtMultimedia.QMediaServiceProviderHint.codecs": (),
- "PySide2.QtMultimedia.QMediaServiceProviderHint.device": (),
- "PySide2.QtMultimedia.QMediaServiceProviderHint.features": (),
- "PySide2.QtMultimedia.QMediaServiceProviderHint.isNull": (),
- "PySide2.QtMultimedia.QMediaServiceProviderHint.mimeType": (),
- "PySide2.QtMultimedia.QMediaServiceProviderHint.type": (),
-# class PySide2.QtMultimedia.QMediaServiceSupportedDevicesInterface:
- "PySide2.QtMultimedia.QMediaServiceSupportedDevicesInterface.__init__": (),
- "PySide2.QtMultimedia.QMediaServiceSupportedDevicesInterface.deviceDescription": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtMultimedia.QMediaServiceSupportedDevicesInterface.devices": ('PySide2.QtCore.QByteArray',),
-# class PySide2.QtMultimedia.QMediaServiceSupportedFormatsInterface:
- "PySide2.QtMultimedia.QMediaServiceSupportedFormatsInterface.__init__": (),
- "PySide2.QtMultimedia.QMediaServiceSupportedFormatsInterface.hasSupport": ('str', 'typing.Sequence'),
- "PySide2.QtMultimedia.QMediaServiceSupportedFormatsInterface.supportedMimeTypes": (),
-# class PySide2.QtMultimedia.QMediaStreamsControl:
-# class PySide2.QtMultimedia.QMediaStreamsControl.StreamType:
- "PySide2.QtMultimedia.QMediaStreamsControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaStreamsControl.isActive": ('int',),
- "PySide2.QtMultimedia.QMediaStreamsControl.metaData": ('int', 'str'),
- "PySide2.QtMultimedia.QMediaStreamsControl.setActive": ('int', 'bool'),
- "PySide2.QtMultimedia.QMediaStreamsControl.streamCount": (),
- "PySide2.QtMultimedia.QMediaStreamsControl.streamType": ('int',),
-# class PySide2.QtMultimedia.QMediaTimeInterval:
- "PySide2.QtMultimedia.QMediaTimeInterval.__init__": [(), ('PySide2.QtMultimedia.QMediaTimeInterval',), ('int', 'int')],
- "PySide2.QtMultimedia.QMediaTimeInterval.__copy__": (),
- "PySide2.QtMultimedia.QMediaTimeInterval.contains": ('int',),
- "PySide2.QtMultimedia.QMediaTimeInterval.end": (),
- "PySide2.QtMultimedia.QMediaTimeInterval.isNormal": (),
- "PySide2.QtMultimedia.QMediaTimeInterval.normalized": (),
- "PySide2.QtMultimedia.QMediaTimeInterval.start": (),
- "PySide2.QtMultimedia.QMediaTimeInterval.translated": ('int',),
-# class PySide2.QtMultimedia.QMediaTimeRange:
- "PySide2.QtMultimedia.QMediaTimeRange.__init__": [(), ('PySide2.QtMultimedia.QMediaTimeInterval',), ('PySide2.QtMultimedia.QMediaTimeRange',), ('int', 'int')],
- "PySide2.QtMultimedia.QMediaTimeRange.__add__": ('PySide2.QtMultimedia.QMediaTimeRange',),
- "PySide2.QtMultimedia.QMediaTimeRange.__copy__": (),
- "PySide2.QtMultimedia.QMediaTimeRange.__iadd__": [('PySide2.QtMultimedia.QMediaTimeInterval',), ('PySide2.QtMultimedia.QMediaTimeRange',)],
- "PySide2.QtMultimedia.QMediaTimeRange.__isub__": [('PySide2.QtMultimedia.QMediaTimeInterval',), ('PySide2.QtMultimedia.QMediaTimeRange',)],
- "PySide2.QtMultimedia.QMediaTimeRange.__sub__": ('PySide2.QtMultimedia.QMediaTimeRange',),
- "PySide2.QtMultimedia.QMediaTimeRange.addInterval": [('PySide2.QtMultimedia.QMediaTimeInterval',), ('int', 'int')],
- "PySide2.QtMultimedia.QMediaTimeRange.addTimeRange": ('PySide2.QtMultimedia.QMediaTimeRange',),
- "PySide2.QtMultimedia.QMediaTimeRange.clear": (),
- "PySide2.QtMultimedia.QMediaTimeRange.contains": ('int',),
- "PySide2.QtMultimedia.QMediaTimeRange.earliestTime": (),
- "PySide2.QtMultimedia.QMediaTimeRange.intervals": (),
- "PySide2.QtMultimedia.QMediaTimeRange.isContinuous": (),
- "PySide2.QtMultimedia.QMediaTimeRange.isEmpty": (),
- "PySide2.QtMultimedia.QMediaTimeRange.latestTime": (),
- "PySide2.QtMultimedia.QMediaTimeRange.removeInterval": [('PySide2.QtMultimedia.QMediaTimeInterval',), ('int', 'int')],
- "PySide2.QtMultimedia.QMediaTimeRange.removeTimeRange": ('PySide2.QtMultimedia.QMediaTimeRange',),
-# class PySide2.QtMultimedia.QMediaVideoProbeControl:
- "PySide2.QtMultimedia.QMediaVideoProbeControl.__init__": ('PySide2.QtCore.QObject',),
-# class PySide2.QtMultimedia.QMetaDataReaderControl:
- "PySide2.QtMultimedia.QMetaDataReaderControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMetaDataReaderControl.availableMetaData": (),
- "PySide2.QtMultimedia.QMetaDataReaderControl.isMetaDataAvailable": (),
- "PySide2.QtMultimedia.QMetaDataReaderControl.metaData": ('str',),
-# class PySide2.QtMultimedia.QMetaDataWriterControl:
- "PySide2.QtMultimedia.QMetaDataWriterControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMetaDataWriterControl.availableMetaData": (),
- "PySide2.QtMultimedia.QMetaDataWriterControl.isMetaDataAvailable": (),
- "PySide2.QtMultimedia.QMetaDataWriterControl.isWritable": (),
- "PySide2.QtMultimedia.QMetaDataWriterControl.metaData": ('str',),
- "PySide2.QtMultimedia.QMetaDataWriterControl.setMetaData": ('str', 'typing.Any'),
-# class PySide2.QtMultimedia.QMultimedia:
-# class PySide2.QtMultimedia.QMultimedia.AvailabilityStatus:
-# class PySide2.QtMultimedia.QMultimedia.EncodingMode:
-# class PySide2.QtMultimedia.QMultimedia.EncodingQuality:
-# class PySide2.QtMultimedia.QMultimedia.SupportEstimate:
-# class PySide2.QtMultimedia.QRadioData:
-# class PySide2.QtMultimedia.QRadioData.Error:
-# class PySide2.QtMultimedia.QRadioData.ProgramType:
- "PySide2.QtMultimedia.QRadioData.__init__": ('PySide2.QtMultimedia.QMediaObject', 'PySide2.QtCore.QObject'),
- "PySide2.QtMultimedia.QRadioData.availability": (),
- "PySide2.QtMultimedia.QRadioData.error": (),
- "PySide2.QtMultimedia.QRadioData.errorString": (),
- "PySide2.QtMultimedia.QRadioData.isAlternativeFrequenciesEnabled": (),
- "PySide2.QtMultimedia.QRadioData.mediaObject": (),
- "PySide2.QtMultimedia.QRadioData.programType": (),
- "PySide2.QtMultimedia.QRadioData.programTypeName": (),
- "PySide2.QtMultimedia.QRadioData.radioText": (),
- "PySide2.QtMultimedia.QRadioData.setAlternativeFrequenciesEnabled": ('bool',),
- "PySide2.QtMultimedia.QRadioData.setMediaObject": ('PySide2.QtMultimedia.QMediaObject',),
- "PySide2.QtMultimedia.QRadioData.stationId": (),
- "PySide2.QtMultimedia.QRadioData.stationName": (),
-# class PySide2.QtMultimedia.QRadioDataControl:
- "PySide2.QtMultimedia.QRadioDataControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QRadioDataControl.error": (),
- "PySide2.QtMultimedia.QRadioDataControl.errorString": (),
- "PySide2.QtMultimedia.QRadioDataControl.isAlternativeFrequenciesEnabled": (),
- "PySide2.QtMultimedia.QRadioDataControl.programType": (),
- "PySide2.QtMultimedia.QRadioDataControl.programTypeName": (),
- "PySide2.QtMultimedia.QRadioDataControl.radioText": (),
- "PySide2.QtMultimedia.QRadioDataControl.setAlternativeFrequenciesEnabled": ('bool',),
- "PySide2.QtMultimedia.QRadioDataControl.stationId": (),
- "PySide2.QtMultimedia.QRadioDataControl.stationName": (),
-# class PySide2.QtMultimedia.QRadioTuner:
-# class PySide2.QtMultimedia.QRadioTuner.Band:
-# class PySide2.QtMultimedia.QRadioTuner.Error:
-# class PySide2.QtMultimedia.QRadioTuner.SearchMode:
-# class PySide2.QtMultimedia.QRadioTuner.State:
-# class PySide2.QtMultimedia.QRadioTuner.StereoMode:
- "PySide2.QtMultimedia.QRadioTuner.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QRadioTuner.availability": (),
- "PySide2.QtMultimedia.QRadioTuner.band": (),
- "PySide2.QtMultimedia.QRadioTuner.cancelSearch": (),
- "PySide2.QtMultimedia.QRadioTuner.error": (),
- "PySide2.QtMultimedia.QRadioTuner.errorString": (),
- "PySide2.QtMultimedia.QRadioTuner.frequency": (),
- "PySide2.QtMultimedia.QRadioTuner.frequencyRange": ('PySide2.QtMultimedia.QRadioTuner.Band',),
- "PySide2.QtMultimedia.QRadioTuner.frequencyStep": ('PySide2.QtMultimedia.QRadioTuner.Band',),
- "PySide2.QtMultimedia.QRadioTuner.isAntennaConnected": (),
- "PySide2.QtMultimedia.QRadioTuner.isBandSupported": ('PySide2.QtMultimedia.QRadioTuner.Band',),
- "PySide2.QtMultimedia.QRadioTuner.isMuted": (),
- "PySide2.QtMultimedia.QRadioTuner.isSearching": (),
- "PySide2.QtMultimedia.QRadioTuner.isStereo": (),
- "PySide2.QtMultimedia.QRadioTuner.radioData": (),
- "PySide2.QtMultimedia.QRadioTuner.searchAllStations": ('PySide2.QtMultimedia.QRadioTuner.SearchMode',),
- "PySide2.QtMultimedia.QRadioTuner.searchBackward": (),
- "PySide2.QtMultimedia.QRadioTuner.searchForward": (),
- "PySide2.QtMultimedia.QRadioTuner.setBand": ('PySide2.QtMultimedia.QRadioTuner.Band',),
- "PySide2.QtMultimedia.QRadioTuner.setFrequency": ('int',),
- "PySide2.QtMultimedia.QRadioTuner.setMuted": ('bool',),
- "PySide2.QtMultimedia.QRadioTuner.setStereoMode": ('PySide2.QtMultimedia.QRadioTuner.StereoMode',),
- "PySide2.QtMultimedia.QRadioTuner.setVolume": ('int',),
- "PySide2.QtMultimedia.QRadioTuner.signalStrength": (),
- "PySide2.QtMultimedia.QRadioTuner.start": (),
- "PySide2.QtMultimedia.QRadioTuner.state": (),
- "PySide2.QtMultimedia.QRadioTuner.stereoMode": (),
- "PySide2.QtMultimedia.QRadioTuner.stop": (),
- "PySide2.QtMultimedia.QRadioTuner.volume": (),
-# class PySide2.QtMultimedia.QRadioTunerControl:
- "PySide2.QtMultimedia.QRadioTunerControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QRadioTunerControl.band": (),
- "PySide2.QtMultimedia.QRadioTunerControl.cancelSearch": (),
- "PySide2.QtMultimedia.QRadioTunerControl.error": (),
- "PySide2.QtMultimedia.QRadioTunerControl.errorString": (),
- "PySide2.QtMultimedia.QRadioTunerControl.frequency": (),
- "PySide2.QtMultimedia.QRadioTunerControl.frequencyRange": ('PySide2.QtMultimedia.QRadioTuner.Band',),
- "PySide2.QtMultimedia.QRadioTunerControl.frequencyStep": ('PySide2.QtMultimedia.QRadioTuner.Band',),
- "PySide2.QtMultimedia.QRadioTunerControl.isAntennaConnected": (),
- "PySide2.QtMultimedia.QRadioTunerControl.isBandSupported": ('PySide2.QtMultimedia.QRadioTuner.Band',),
- "PySide2.QtMultimedia.QRadioTunerControl.isMuted": (),
- "PySide2.QtMultimedia.QRadioTunerControl.isSearching": (),
- "PySide2.QtMultimedia.QRadioTunerControl.isStereo": (),
- "PySide2.QtMultimedia.QRadioTunerControl.searchAllStations": ('PySide2.QtMultimedia.QRadioTuner.SearchMode',),
- "PySide2.QtMultimedia.QRadioTunerControl.searchBackward": (),
- "PySide2.QtMultimedia.QRadioTunerControl.searchForward": (),
- "PySide2.QtMultimedia.QRadioTunerControl.setBand": ('PySide2.QtMultimedia.QRadioTuner.Band',),
- "PySide2.QtMultimedia.QRadioTunerControl.setFrequency": ('int',),
- "PySide2.QtMultimedia.QRadioTunerControl.setMuted": ('bool',),
- "PySide2.QtMultimedia.QRadioTunerControl.setStereoMode": ('PySide2.QtMultimedia.QRadioTuner.StereoMode',),
- "PySide2.QtMultimedia.QRadioTunerControl.setVolume": ('int',),
- "PySide2.QtMultimedia.QRadioTunerControl.signalStrength": (),
- "PySide2.QtMultimedia.QRadioTunerControl.start": (),
- "PySide2.QtMultimedia.QRadioTunerControl.state": (),
- "PySide2.QtMultimedia.QRadioTunerControl.stereoMode": (),
- "PySide2.QtMultimedia.QRadioTunerControl.stop": (),
- "PySide2.QtMultimedia.QRadioTunerControl.volume": (),
-# class PySide2.QtMultimedia.QSound:
-# class PySide2.QtMultimedia.QSound.Loop:
- "PySide2.QtMultimedia.QSound.__init__": ('str', 'PySide2.QtCore.QObject'),
- "PySide2.QtMultimedia.QSound.fileName": (),
- "PySide2.QtMultimedia.QSound.isFinished": (),
- "PySide2.QtMultimedia.QSound.loops": (),
- "PySide2.QtMultimedia.QSound.loopsRemaining": (),
- "PySide2.QtMultimedia.QSound.play": [(), ('str',)],
- "PySide2.QtMultimedia.QSound.setLoops": ('int',),
- "PySide2.QtMultimedia.QSound.stop": (),
-# class PySide2.QtMultimedia.QSoundEffect:
-# class PySide2.QtMultimedia.QSoundEffect.Loop:
-# class PySide2.QtMultimedia.QSoundEffect.Status:
- "PySide2.QtMultimedia.QSoundEffect.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtMultimedia.QAudioDeviceInfo', 'PySide2.QtCore.QObject')],
- "PySide2.QtMultimedia.QSoundEffect.category": (),
- "PySide2.QtMultimedia.QSoundEffect.isLoaded": (),
- "PySide2.QtMultimedia.QSoundEffect.isMuted": (),
- "PySide2.QtMultimedia.QSoundEffect.isPlaying": (),
- "PySide2.QtMultimedia.QSoundEffect.loopCount": (),
- "PySide2.QtMultimedia.QSoundEffect.loopsRemaining": (),
- "PySide2.QtMultimedia.QSoundEffect.play": (),
- "PySide2.QtMultimedia.QSoundEffect.setCategory": ('str',),
- "PySide2.QtMultimedia.QSoundEffect.setLoopCount": ('int',),
- "PySide2.QtMultimedia.QSoundEffect.setMuted": ('bool',),
- "PySide2.QtMultimedia.QSoundEffect.setSource": ('PySide2.QtCore.QUrl',),
- "PySide2.QtMultimedia.QSoundEffect.setVolume": ('float',),
- "PySide2.QtMultimedia.QSoundEffect.source": (),
- "PySide2.QtMultimedia.QSoundEffect.status": (),
- "PySide2.QtMultimedia.QSoundEffect.stop": (),
- "PySide2.QtMultimedia.QSoundEffect.supportedMimeTypes": (),
- "PySide2.QtMultimedia.QSoundEffect.volume": (),
-# class PySide2.QtMultimedia.QVideoDeviceSelectorControl:
- "PySide2.QtMultimedia.QVideoDeviceSelectorControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QVideoDeviceSelectorControl.defaultDevice": (),
- "PySide2.QtMultimedia.QVideoDeviceSelectorControl.deviceCount": (),
- "PySide2.QtMultimedia.QVideoDeviceSelectorControl.deviceDescription": ('int',),
- "PySide2.QtMultimedia.QVideoDeviceSelectorControl.deviceName": ('int',),
- "PySide2.QtMultimedia.QVideoDeviceSelectorControl.selectedDevice": (),
- "PySide2.QtMultimedia.QVideoDeviceSelectorControl.setSelectedDevice": ('int',),
-# class PySide2.QtMultimedia.QVideoEncoderSettings:
- "PySide2.QtMultimedia.QVideoEncoderSettings.__init__": [(), ('PySide2.QtMultimedia.QVideoEncoderSettings',)],
- "PySide2.QtMultimedia.QVideoEncoderSettings.__copy__": (),
- "PySide2.QtMultimedia.QVideoEncoderSettings.bitRate": (),
- "PySide2.QtMultimedia.QVideoEncoderSettings.codec": (),
- "PySide2.QtMultimedia.QVideoEncoderSettings.encodingMode": (),
- "PySide2.QtMultimedia.QVideoEncoderSettings.encodingOption": ('str',),
- "PySide2.QtMultimedia.QVideoEncoderSettings.encodingOptions": (),
- "PySide2.QtMultimedia.QVideoEncoderSettings.frameRate": (),
- "PySide2.QtMultimedia.QVideoEncoderSettings.isNull": (),
- "PySide2.QtMultimedia.QVideoEncoderSettings.quality": (),
- "PySide2.QtMultimedia.QVideoEncoderSettings.resolution": (),
- "PySide2.QtMultimedia.QVideoEncoderSettings.setBitRate": ('int',),
- "PySide2.QtMultimedia.QVideoEncoderSettings.setCodec": ('str',),
- "PySide2.QtMultimedia.QVideoEncoderSettings.setEncodingMode": ('PySide2.QtMultimedia.QMultimedia.EncodingMode',),
- "PySide2.QtMultimedia.QVideoEncoderSettings.setEncodingOption": ('str', 'typing.Any'),
- "PySide2.QtMultimedia.QVideoEncoderSettings.setEncodingOptions": ('typing.Dict',),
- "PySide2.QtMultimedia.QVideoEncoderSettings.setFrameRate": ('float',),
- "PySide2.QtMultimedia.QVideoEncoderSettings.setQuality": ('PySide2.QtMultimedia.QMultimedia.EncodingQuality',),
- "PySide2.QtMultimedia.QVideoEncoderSettings.setResolution": [('PySide2.QtCore.QSize',), ('int', 'int')],
-# class PySide2.QtMultimedia.QVideoEncoderSettingsControl:
- "PySide2.QtMultimedia.QVideoEncoderSettingsControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QVideoEncoderSettingsControl.setVideoSettings": ('PySide2.QtMultimedia.QVideoEncoderSettings',),
- "PySide2.QtMultimedia.QVideoEncoderSettingsControl.supportedVideoCodecs": (),
- "PySide2.QtMultimedia.QVideoEncoderSettingsControl.videoCodecDescription": ('str',),
- "PySide2.QtMultimedia.QVideoEncoderSettingsControl.videoSettings": (),
-# class PySide2.QtMultimedia.QVideoFilterRunnable:
-# class PySide2.QtMultimedia.QVideoFilterRunnable.RunFlag:
-# class PySide2.QtMultimedia.QVideoFilterRunnable.RunFlags:
- "PySide2.QtMultimedia.QVideoFilterRunnable.__init__": (),
- "PySide2.QtMultimedia.QVideoFilterRunnable.run": ('PySide2.QtMultimedia.QVideoFrame', 'PySide2.QtMultimedia.QVideoSurfaceFormat', 'PySide2.QtMultimedia.QVideoFilterRunnable.RunFlags'),
-# class PySide2.QtMultimedia.QVideoFrame:
-# class PySide2.QtMultimedia.QVideoFrame.FieldType:
-# class PySide2.QtMultimedia.QVideoFrame.PixelFormat:
- "PySide2.QtMultimedia.QVideoFrame.__init__": [(), ('PySide2.QtGui.QImage',), ('PySide2.QtMultimedia.QAbstractVideoBuffer', 'PySide2.QtCore.QSize', 'PySide2.QtMultimedia.QVideoFrame.PixelFormat'), ('PySide2.QtMultimedia.QVideoFrame',), ('int', 'PySide2.QtCore.QSize', 'int', 'PySide2.QtMultimedia.QVideoFrame.PixelFormat')],
- "PySide2.QtMultimedia.QVideoFrame.__copy__": (),
- "PySide2.QtMultimedia.QVideoFrame.availableMetaData": (),
- "PySide2.QtMultimedia.QVideoFrame.bits": (),
- "PySide2.QtMultimedia.QVideoFrame.buffer": (),
- "PySide2.QtMultimedia.QVideoFrame.bytesPerLine": [(), ('int',)],
- "PySide2.QtMultimedia.QVideoFrame.endTime": (),
- "PySide2.QtMultimedia.QVideoFrame.fieldType": (),
- "PySide2.QtMultimedia.QVideoFrame.handle": (),
- "PySide2.QtMultimedia.QVideoFrame.handleType": (),
- "PySide2.QtMultimedia.QVideoFrame.height": (),
- "PySide2.QtMultimedia.QVideoFrame.imageFormatFromPixelFormat": ('PySide2.QtMultimedia.QVideoFrame.PixelFormat',),
- "PySide2.QtMultimedia.QVideoFrame.isMapped": (),
- "PySide2.QtMultimedia.QVideoFrame.isReadable": (),
- "PySide2.QtMultimedia.QVideoFrame.isValid": (),
- "PySide2.QtMultimedia.QVideoFrame.isWritable": (),
- "PySide2.QtMultimedia.QVideoFrame.map": ('PySide2.QtMultimedia.QAbstractVideoBuffer.MapMode',),
- "PySide2.QtMultimedia.QVideoFrame.mapMode": (),
- "PySide2.QtMultimedia.QVideoFrame.mappedBytes": (),
- "PySide2.QtMultimedia.QVideoFrame.metaData": ('str',),
- "PySide2.QtMultimedia.QVideoFrame.pixelFormat": (),
- "PySide2.QtMultimedia.QVideoFrame.pixelFormatFromImageFormat": ('PySide2.QtGui.QImage.Format',),
- "PySide2.QtMultimedia.QVideoFrame.planeCount": (),
- "PySide2.QtMultimedia.QVideoFrame.setEndTime": ('int',),
- "PySide2.QtMultimedia.QVideoFrame.setFieldType": ('PySide2.QtMultimedia.QVideoFrame.FieldType',),
- "PySide2.QtMultimedia.QVideoFrame.setMetaData": ('str', 'typing.Any'),
- "PySide2.QtMultimedia.QVideoFrame.setStartTime": ('int',),
- "PySide2.QtMultimedia.QVideoFrame.size": (),
- "PySide2.QtMultimedia.QVideoFrame.startTime": (),
- "PySide2.QtMultimedia.QVideoFrame.unmap": (),
- "PySide2.QtMultimedia.QVideoFrame.width": (),
-# class PySide2.QtMultimedia.QVideoProbe:
- "PySide2.QtMultimedia.QVideoProbe.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QVideoProbe.isActive": (),
- "PySide2.QtMultimedia.QVideoProbe.setSource": [('PySide2.QtMultimedia.QMediaObject',), ('PySide2.QtMultimedia.QMediaRecorder',)],
-# class PySide2.QtMultimedia.QVideoRendererControl:
- "PySide2.QtMultimedia.QVideoRendererControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QVideoRendererControl.setSurface": ('PySide2.QtMultimedia.QAbstractVideoSurface',),
- "PySide2.QtMultimedia.QVideoRendererControl.surface": (),
-# class PySide2.QtMultimedia.QVideoSurfaceFormat:
-# class PySide2.QtMultimedia.QVideoSurfaceFormat.Direction:
-# class PySide2.QtMultimedia.QVideoSurfaceFormat.YCbCrColorSpace:
- "PySide2.QtMultimedia.QVideoSurfaceFormat.__init__": [(), ('PySide2.QtCore.QSize', 'PySide2.QtMultimedia.QVideoFrame.PixelFormat', 'PySide2.QtMultimedia.QAbstractVideoBuffer.HandleType'), ('PySide2.QtMultimedia.QVideoSurfaceFormat',)],
- "PySide2.QtMultimedia.QVideoSurfaceFormat.__copy__": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.frameHeight": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.frameRate": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.frameSize": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.frameWidth": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.handleType": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.isMirrored": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.isValid": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.pixelAspectRatio": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.pixelFormat": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.property": ('bytes',),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.propertyNames": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.scanLineDirection": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.setFrameRate": ('float',),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.setFrameSize": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtMultimedia.QVideoSurfaceFormat.setMirrored": ('bool',),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.setPixelAspectRatio": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtMultimedia.QVideoSurfaceFormat.setProperty": ('bytes', 'typing.Any'),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.setScanLineDirection": ('PySide2.QtMultimedia.QVideoSurfaceFormat.Direction',),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.setViewport": ('PySide2.QtCore.QRect',),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.setYCbCrColorSpace": ('PySide2.QtMultimedia.QVideoSurfaceFormat.YCbCrColorSpace',),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.sizeHint": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.viewport": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.yCbCrColorSpace": (),
-# class PySide2.QtMultimedia.QVideoWindowControl:
- "PySide2.QtMultimedia.QVideoWindowControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QVideoWindowControl.aspectRatioMode": (),
- "PySide2.QtMultimedia.QVideoWindowControl.brightness": (),
- "PySide2.QtMultimedia.QVideoWindowControl.contrast": (),
- "PySide2.QtMultimedia.QVideoWindowControl.displayRect": (),
- "PySide2.QtMultimedia.QVideoWindowControl.hue": (),
- "PySide2.QtMultimedia.QVideoWindowControl.isFullScreen": (),
- "PySide2.QtMultimedia.QVideoWindowControl.nativeSize": (),
- "PySide2.QtMultimedia.QVideoWindowControl.repaint": (),
- "PySide2.QtMultimedia.QVideoWindowControl.saturation": (),
- "PySide2.QtMultimedia.QVideoWindowControl.setAspectRatioMode": ('PySide2.QtCore.Qt.AspectRatioMode',),
- "PySide2.QtMultimedia.QVideoWindowControl.setBrightness": ('int',),
- "PySide2.QtMultimedia.QVideoWindowControl.setContrast": ('int',),
- "PySide2.QtMultimedia.QVideoWindowControl.setDisplayRect": ('PySide2.QtCore.QRect',),
- "PySide2.QtMultimedia.QVideoWindowControl.setFullScreen": ('bool',),
- "PySide2.QtMultimedia.QVideoWindowControl.setHue": ('int',),
- "PySide2.QtMultimedia.QVideoWindowControl.setSaturation": ('int',),
- "PySide2.QtMultimedia.QVideoWindowControl.setWinId": ('int',),
- "PySide2.QtMultimedia.QVideoWindowControl.winId": (),
- }) if "PySide2.QtMultimedia" in sys.modules else None
-# Module PySide2.QtMultimediaWidgets
-sig_dict.update({
-# class PySide2.QtMultimediaWidgets.QCameraViewfinder:
- "PySide2.QtMultimediaWidgets.QCameraViewfinder.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtMultimediaWidgets.QCameraViewfinder.mediaObject": (),
- "PySide2.QtMultimediaWidgets.QCameraViewfinder.setMediaObject": ('PySide2.QtMultimedia.QMediaObject',),
-# class PySide2.QtMultimediaWidgets.QGraphicsVideoItem:
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.__init__": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.aspectRatioMode": (),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.boundingRect": (),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.itemChange": ('PySide2.QtWidgets.QGraphicsItem.GraphicsItemChange', 'typing.Any'),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.mediaObject": (),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.nativeSize": (),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.offset": (),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.setAspectRatioMode": ('PySide2.QtCore.Qt.AspectRatioMode',),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.setMediaObject": ('PySide2.QtMultimedia.QMediaObject',),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.setOffset": ('PySide2.QtCore.QPointF',),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.setSize": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.size": (),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.timerEvent": ('PySide2.QtCore.QTimerEvent',),
-# class PySide2.QtMultimediaWidgets.QVideoWidget:
- "PySide2.QtMultimediaWidgets.QVideoWidget.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.aspectRatioMode": (),
- "PySide2.QtMultimediaWidgets.QVideoWidget.brightness": (),
- "PySide2.QtMultimediaWidgets.QVideoWidget.contrast": (),
- "PySide2.QtMultimediaWidgets.QVideoWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.hue": (),
- "PySide2.QtMultimediaWidgets.QVideoWidget.mediaObject": (),
- "PySide2.QtMultimediaWidgets.QVideoWidget.moveEvent": ('PySide2.QtGui.QMoveEvent',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.nativeEvent": ('PySide2.QtCore.QByteArray', 'int'),
- "PySide2.QtMultimediaWidgets.QVideoWidget.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.saturation": (),
- "PySide2.QtMultimediaWidgets.QVideoWidget.setAspectRatioMode": ('PySide2.QtCore.Qt.AspectRatioMode',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.setBrightness": ('int',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.setContrast": ('int',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.setFullScreen": ('bool',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.setHue": ('int',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.setMediaObject": ('PySide2.QtMultimedia.QMediaObject',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.setSaturation": ('int',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.sizeHint": (),
-# class PySide2.QtMultimediaWidgets.QVideoWidgetControl:
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.aspectRatioMode": (),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.brightness": (),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.contrast": (),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.hue": (),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.isFullScreen": (),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.saturation": (),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.setAspectRatioMode": ('PySide2.QtCore.Qt.AspectRatioMode',),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.setBrightness": ('int',),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.setContrast": ('int',),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.setFullScreen": ('bool',),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.setHue": ('int',),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.setSaturation": ('int',),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.videoWidget": (),
- }) if "PySide2.QtMultimediaWidgets" in sys.modules else None
-# Module PySide2.QtOpenGL
-sig_dict.update({
-# class PySide2.QtOpenGL.QGL:
-# class PySide2.QtOpenGL.QGL.FormatOption:
-# class PySide2.QtOpenGL.QGL.FormatOptions:
-# class PySide2.QtOpenGL.QGLBuffer:
-# class PySide2.QtOpenGL.QGLBuffer.Access:
-# class PySide2.QtOpenGL.QGLBuffer.Type:
-# class PySide2.QtOpenGL.QGLBuffer.UsagePattern:
- "PySide2.QtOpenGL.QGLBuffer.__init__": [(), ('PySide2.QtOpenGL.QGLBuffer',), ('PySide2.QtOpenGL.QGLBuffer.Type',)],
- "PySide2.QtOpenGL.QGLBuffer.allocate": [('int',), ('int', 'int')],
- "PySide2.QtOpenGL.QGLBuffer.bind": (),
- "PySide2.QtOpenGL.QGLBuffer.bufferId": (),
- "PySide2.QtOpenGL.QGLBuffer.create": (),
- "PySide2.QtOpenGL.QGLBuffer.destroy": (),
- "PySide2.QtOpenGL.QGLBuffer.isCreated": (),
- "PySide2.QtOpenGL.QGLBuffer.map": ('PySide2.QtOpenGL.QGLBuffer.Access',),
- "PySide2.QtOpenGL.QGLBuffer.read": ('int', 'int', 'int'),
- "PySide2.QtOpenGL.QGLBuffer.release": [(), ('PySide2.QtOpenGL.QGLBuffer.Type',)],
- "PySide2.QtOpenGL.QGLBuffer.setUsagePattern": ('PySide2.QtOpenGL.QGLBuffer.UsagePattern',),
- "PySide2.QtOpenGL.QGLBuffer.size": (),
- "PySide2.QtOpenGL.QGLBuffer.type": (),
- "PySide2.QtOpenGL.QGLBuffer.unmap": (),
- "PySide2.QtOpenGL.QGLBuffer.usagePattern": (),
- "PySide2.QtOpenGL.QGLBuffer.write": ('int', 'int', 'int'),
-# class PySide2.QtOpenGL.QGLColormap:
- "PySide2.QtOpenGL.QGLColormap.__init__": [(), ('PySide2.QtOpenGL.QGLColormap',)],
- "PySide2.QtOpenGL.QGLColormap.__copy__": (),
- "PySide2.QtOpenGL.QGLColormap.entryColor": ('int',),
- "PySide2.QtOpenGL.QGLColormap.entryRgb": ('int',),
- "PySide2.QtOpenGL.QGLColormap.find": ('int',),
- "PySide2.QtOpenGL.QGLColormap.findNearest": ('int',),
- "PySide2.QtOpenGL.QGLColormap.handle": (),
- "PySide2.QtOpenGL.QGLColormap.isEmpty": (),
- "PySide2.QtOpenGL.QGLColormap.setEntry": [('int', 'PySide2.QtGui.QColor'), ('int', 'int')],
- "PySide2.QtOpenGL.QGLColormap.setHandle": ('int',),
- "PySide2.QtOpenGL.QGLColormap.size": (),
-# class PySide2.QtOpenGL.QGLContext:
-# class PySide2.QtOpenGL.QGLContext.BindOption:
-# class PySide2.QtOpenGL.QGLContext.BindOptions:
- "PySide2.QtOpenGL.QGLContext.__init__": ('PySide2.QtOpenGL.QGLFormat',),
- "PySide2.QtOpenGL.QGLContext.areSharing": ('PySide2.QtOpenGL.QGLContext', 'PySide2.QtOpenGL.QGLContext'),
- "PySide2.QtOpenGL.QGLContext.bindTexture": [('PySide2.QtGui.QImage', 'int', 'int'), ('PySide2.QtGui.QImage', 'int', 'int', 'PySide2.QtOpenGL.QGLContext.BindOptions'), ('PySide2.QtGui.QPixmap', 'int', 'int'), ('PySide2.QtGui.QPixmap', 'int', 'int', 'PySide2.QtOpenGL.QGLContext.BindOptions'), ('str',)],
- "PySide2.QtOpenGL.QGLContext.chooseContext": ('PySide2.QtOpenGL.QGLContext',),
- "PySide2.QtOpenGL.QGLContext.colorIndex": ('PySide2.QtGui.QColor',),
- "PySide2.QtOpenGL.QGLContext.contextHandle": (),
- "PySide2.QtOpenGL.QGLContext.create": ('PySide2.QtOpenGL.QGLContext',),
- "PySide2.QtOpenGL.QGLContext.currentContext": (),
- "PySide2.QtOpenGL.QGLContext.deleteTexture": ('int',),
- "PySide2.QtOpenGL.QGLContext.device": (),
- "PySide2.QtOpenGL.QGLContext.deviceIsPixmap": (),
- "PySide2.QtOpenGL.QGLContext.doneCurrent": (),
- "PySide2.QtOpenGL.QGLContext.drawTexture": [('PySide2.QtCore.QPointF', 'int', 'int'), ('PySide2.QtCore.QRectF', 'int', 'int')],
- "PySide2.QtOpenGL.QGLContext.format": (),
- "PySide2.QtOpenGL.QGLContext.fromOpenGLContext": ('PySide2.QtGui.QOpenGLContext',),
- "PySide2.QtOpenGL.QGLContext.initialized": (),
- "PySide2.QtOpenGL.QGLContext.isSharing": (),
- "PySide2.QtOpenGL.QGLContext.isValid": (),
- "PySide2.QtOpenGL.QGLContext.makeCurrent": (),
- "PySide2.QtOpenGL.QGLContext.moveToThread": ('PySide2.QtCore.QThread',),
- "PySide2.QtOpenGL.QGLContext.overlayTransparentColor": (),
- "PySide2.QtOpenGL.QGLContext.requestedFormat": (),
- "PySide2.QtOpenGL.QGLContext.reset": (),
- "PySide2.QtOpenGL.QGLContext.setDevice": ('PySide2.QtGui.QPaintDevice',),
- "PySide2.QtOpenGL.QGLContext.setFormat": ('PySide2.QtOpenGL.QGLFormat',),
- "PySide2.QtOpenGL.QGLContext.setInitialized": ('bool',),
- "PySide2.QtOpenGL.QGLContext.setTextureCacheLimit": ('int',),
- "PySide2.QtOpenGL.QGLContext.setValid": ('bool',),
- "PySide2.QtOpenGL.QGLContext.setWindowCreated": ('bool',),
- "PySide2.QtOpenGL.QGLContext.swapBuffers": (),
- "PySide2.QtOpenGL.QGLContext.textureCacheLimit": (),
- "PySide2.QtOpenGL.QGLContext.windowCreated": (),
-# class PySide2.QtOpenGL.QGLFormat:
-# class PySide2.QtOpenGL.QGLFormat.OpenGLContextProfile:
-# class PySide2.QtOpenGL.QGLFormat.OpenGLVersionFlag:
-# class PySide2.QtOpenGL.QGLFormat.OpenGLVersionFlags:
- "PySide2.QtOpenGL.QGLFormat.__init__": [(), ('PySide2.QtOpenGL.QGL.FormatOptions', 'int'), ('PySide2.QtOpenGL.QGLFormat',)],
- "PySide2.QtOpenGL.QGLFormat.__copy__": (),
- "PySide2.QtOpenGL.QGLFormat.accum": (),
- "PySide2.QtOpenGL.QGLFormat.accumBufferSize": (),
- "PySide2.QtOpenGL.QGLFormat.alpha": (),
- "PySide2.QtOpenGL.QGLFormat.alphaBufferSize": (),
- "PySide2.QtOpenGL.QGLFormat.blueBufferSize": (),
- "PySide2.QtOpenGL.QGLFormat.defaultFormat": (),
- "PySide2.QtOpenGL.QGLFormat.defaultOverlayFormat": (),
- "PySide2.QtOpenGL.QGLFormat.depth": (),
- "PySide2.QtOpenGL.QGLFormat.depthBufferSize": (),
- "PySide2.QtOpenGL.QGLFormat.directRendering": (),
- "PySide2.QtOpenGL.QGLFormat.doubleBuffer": (),
- "PySide2.QtOpenGL.QGLFormat.fromSurfaceFormat": ('PySide2.QtGui.QSurfaceFormat',),
- "PySide2.QtOpenGL.QGLFormat.greenBufferSize": (),
- "PySide2.QtOpenGL.QGLFormat.hasOpenGL": (),
- "PySide2.QtOpenGL.QGLFormat.hasOpenGLOverlays": (),
- "PySide2.QtOpenGL.QGLFormat.hasOverlay": (),
- "PySide2.QtOpenGL.QGLFormat.majorVersion": (),
- "PySide2.QtOpenGL.QGLFormat.minorVersion": (),
- "PySide2.QtOpenGL.QGLFormat.openGLVersionFlags": (),
- "PySide2.QtOpenGL.QGLFormat.plane": (),
- "PySide2.QtOpenGL.QGLFormat.profile": (),
- "PySide2.QtOpenGL.QGLFormat.redBufferSize": (),
- "PySide2.QtOpenGL.QGLFormat.rgba": (),
- "PySide2.QtOpenGL.QGLFormat.sampleBuffers": (),
- "PySide2.QtOpenGL.QGLFormat.samples": (),
- "PySide2.QtOpenGL.QGLFormat.setAccum": ('bool',),
- "PySide2.QtOpenGL.QGLFormat.setAccumBufferSize": ('int',),
- "PySide2.QtOpenGL.QGLFormat.setAlpha": ('bool',),
- "PySide2.QtOpenGL.QGLFormat.setAlphaBufferSize": ('int',),
- "PySide2.QtOpenGL.QGLFormat.setBlueBufferSize": ('int',),
- "PySide2.QtOpenGL.QGLFormat.setDefaultFormat": ('PySide2.QtOpenGL.QGLFormat',),
- "PySide2.QtOpenGL.QGLFormat.setDefaultOverlayFormat": ('PySide2.QtOpenGL.QGLFormat',),
- "PySide2.QtOpenGL.QGLFormat.setDepth": ('bool',),
- "PySide2.QtOpenGL.QGLFormat.setDepthBufferSize": ('int',),
- "PySide2.QtOpenGL.QGLFormat.setDirectRendering": ('bool',),
- "PySide2.QtOpenGL.QGLFormat.setDoubleBuffer": ('bool',),
- "PySide2.QtOpenGL.QGLFormat.setGreenBufferSize": ('int',),
- "PySide2.QtOpenGL.QGLFormat.setOption": ('PySide2.QtOpenGL.QGL.FormatOptions',),
- "PySide2.QtOpenGL.QGLFormat.setOverlay": ('bool',),
- "PySide2.QtOpenGL.QGLFormat.setPlane": ('int',),
- "PySide2.QtOpenGL.QGLFormat.setProfile": ('PySide2.QtOpenGL.QGLFormat.OpenGLContextProfile',),
- "PySide2.QtOpenGL.QGLFormat.setRedBufferSize": ('int',),
- "PySide2.QtOpenGL.QGLFormat.setRgba": ('bool',),
- "PySide2.QtOpenGL.QGLFormat.setSampleBuffers": ('bool',),
- "PySide2.QtOpenGL.QGLFormat.setSamples": ('int',),
- "PySide2.QtOpenGL.QGLFormat.setStencil": ('bool',),
- "PySide2.QtOpenGL.QGLFormat.setStencilBufferSize": ('int',),
- "PySide2.QtOpenGL.QGLFormat.setStereo": ('bool',),
- "PySide2.QtOpenGL.QGLFormat.setSwapInterval": ('int',),
- "PySide2.QtOpenGL.QGLFormat.setVersion": ('int', 'int'),
- "PySide2.QtOpenGL.QGLFormat.stencil": (),
- "PySide2.QtOpenGL.QGLFormat.stencilBufferSize": (),
- "PySide2.QtOpenGL.QGLFormat.stereo": (),
- "PySide2.QtOpenGL.QGLFormat.swapInterval": (),
- "PySide2.QtOpenGL.QGLFormat.testOption": ('PySide2.QtOpenGL.QGL.FormatOptions',),
- "PySide2.QtOpenGL.QGLFormat.toSurfaceFormat": ('PySide2.QtOpenGL.QGLFormat',),
-# class PySide2.QtOpenGL.QGLFramebufferObject:
-# class PySide2.QtOpenGL.QGLFramebufferObject.Attachment:
- "PySide2.QtOpenGL.QGLFramebufferObject.__init__": [('PySide2.QtCore.QSize', 'PySide2.QtOpenGL.QGLFramebufferObject.Attachment', 'int', 'int'), ('PySide2.QtCore.QSize', 'PySide2.QtOpenGL.QGLFramebufferObjectFormat'), ('PySide2.QtCore.QSize', 'int'), ('int', 'int', 'PySide2.QtOpenGL.QGLFramebufferObject.Attachment', 'int', 'int'), ('int', 'int', 'PySide2.QtOpenGL.QGLFramebufferObjectFormat'), ('int', 'int', 'int')],
- "PySide2.QtOpenGL.QGLFramebufferObject.attachment": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.bind": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.bindDefault": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.blitFramebuffer": ('PySide2.QtOpenGL.QGLFramebufferObject', 'PySide2.QtCore.QRect', 'PySide2.QtOpenGL.QGLFramebufferObject', 'PySide2.QtCore.QRect', 'int', 'int'),
- "PySide2.QtOpenGL.QGLFramebufferObject.devType": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.drawTexture": [('PySide2.QtCore.QPointF', 'int', 'int'), ('PySide2.QtCore.QRectF', 'int', 'int')],
- "PySide2.QtOpenGL.QGLFramebufferObject.format": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.handle": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.hasOpenGLFramebufferBlit": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.hasOpenGLFramebufferObjects": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.isBound": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.isValid": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtOpenGL.QGLFramebufferObject.paintEngine": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.release": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.size": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.texture": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.toImage": (),
-# class PySide2.QtOpenGL.QGLFramebufferObjectFormat:
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.__init__": [(), ('PySide2.QtOpenGL.QGLFramebufferObjectFormat',)],
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.__copy__": (),
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.attachment": (),
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.internalTextureFormat": (),
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.mipmap": (),
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.samples": (),
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.setAttachment": ('PySide2.QtOpenGL.QGLFramebufferObject.Attachment',),
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.setInternalTextureFormat": ('int',),
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.setMipmap": ('bool',),
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.setSamples": ('int',),
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.setTextureTarget": ('int',),
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.textureTarget": (),
-# class PySide2.QtOpenGL.QGLPixelBuffer:
- "PySide2.QtOpenGL.QGLPixelBuffer.__init__": [('PySide2.QtCore.QSize', 'PySide2.QtOpenGL.QGLFormat', 'PySide2.QtOpenGL.QGLWidget'), ('int', 'int', 'PySide2.QtOpenGL.QGLFormat', 'PySide2.QtOpenGL.QGLWidget')],
- "PySide2.QtOpenGL.QGLPixelBuffer.bindTexture": [('PySide2.QtGui.QImage', 'int'), ('PySide2.QtGui.QPixmap', 'int'), ('str',)],
- "PySide2.QtOpenGL.QGLPixelBuffer.bindToDynamicTexture": ('int',),
- "PySide2.QtOpenGL.QGLPixelBuffer.context": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.deleteTexture": ('int',),
- "PySide2.QtOpenGL.QGLPixelBuffer.devType": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.doneCurrent": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.drawTexture": [('PySide2.QtCore.QPointF', 'int', 'int'), ('PySide2.QtCore.QRectF', 'int', 'int')],
- "PySide2.QtOpenGL.QGLPixelBuffer.format": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.generateDynamicTexture": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.handle": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.hasOpenGLPbuffers": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.isValid": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.makeCurrent": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtOpenGL.QGLPixelBuffer.paintEngine": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.releaseFromDynamicTexture": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.size": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.toImage": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.updateDynamicTexture": ('int',),
-# class PySide2.QtOpenGL.QGLShader:
-# class PySide2.QtOpenGL.QGLShader.ShaderType:
-# class PySide2.QtOpenGL.QGLShader.ShaderTypeBit:
- "PySide2.QtOpenGL.QGLShader.__init__": [('PySide2.QtOpenGL.QGLShader.ShaderType', 'PySide2.QtCore.QObject'), ('PySide2.QtOpenGL.QGLShader.ShaderType', 'PySide2.QtOpenGL.QGLContext', 'PySide2.QtCore.QObject')],
- "PySide2.QtOpenGL.QGLShader.compileSourceCode": [('PySide2.QtCore.QByteArray',), ('bytes',), ('str',)],
- "PySide2.QtOpenGL.QGLShader.compileSourceFile": ('str',),
- "PySide2.QtOpenGL.QGLShader.hasOpenGLShaders": ('PySide2.QtOpenGL.QGLShader.ShaderType', 'PySide2.QtOpenGL.QGLContext'),
- "PySide2.QtOpenGL.QGLShader.isCompiled": (),
- "PySide2.QtOpenGL.QGLShader.log": (),
- "PySide2.QtOpenGL.QGLShader.shaderId": (),
- "PySide2.QtOpenGL.QGLShader.shaderType": (),
- "PySide2.QtOpenGL.QGLShader.sourceCode": (),
-# class PySide2.QtOpenGL.QGLShaderProgram:
- "PySide2.QtOpenGL.QGLShaderProgram.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtOpenGL.QGLContext', 'PySide2.QtCore.QObject')],
- "PySide2.QtOpenGL.QGLShaderProgram.addShader": ('PySide2.QtOpenGL.QGLShader',),
- "PySide2.QtOpenGL.QGLShaderProgram.addShaderFromSourceCode": [('PySide2.QtOpenGL.QGLShader.ShaderType', 'PySide2.QtCore.QByteArray'), ('PySide2.QtOpenGL.QGLShader.ShaderType', 'bytes'), ('PySide2.QtOpenGL.QGLShader.ShaderType', 'str')],
- "PySide2.QtOpenGL.QGLShaderProgram.addShaderFromSourceFile": ('PySide2.QtOpenGL.QGLShader.ShaderType', 'str'),
- "PySide2.QtOpenGL.QGLShaderProgram.attributeLocation": [('PySide2.QtCore.QByteArray',), ('bytes',), ('str',)],
- "PySide2.QtOpenGL.QGLShaderProgram.bind": (),
- "PySide2.QtOpenGL.QGLShaderProgram.bindAttributeLocation": [('PySide2.QtCore.QByteArray', 'int'), ('bytes', 'int'), ('str', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.disableAttributeArray": [('bytes',), ('int',)],
- "PySide2.QtOpenGL.QGLShaderProgram.enableAttributeArray": [('bytes',), ('int',)],
- "PySide2.QtOpenGL.QGLShaderProgram.geometryInputType": (),
- "PySide2.QtOpenGL.QGLShaderProgram.geometryOutputType": (),
- "PySide2.QtOpenGL.QGLShaderProgram.geometryOutputVertexCount": (),
- "PySide2.QtOpenGL.QGLShaderProgram.hasOpenGLShaderPrograms": ('PySide2.QtOpenGL.QGLContext',),
- "PySide2.QtOpenGL.QGLShaderProgram.isLinked": (),
- "PySide2.QtOpenGL.QGLShaderProgram.link": (),
- "PySide2.QtOpenGL.QGLShaderProgram.log": (),
- "PySide2.QtOpenGL.QGLShaderProgram.maxGeometryOutputVertices": (),
- "PySide2.QtOpenGL.QGLShaderProgram.programId": (),
- "PySide2.QtOpenGL.QGLShaderProgram.release": (),
- "PySide2.QtOpenGL.QGLShaderProgram.removeAllShaders": (),
- "PySide2.QtOpenGL.QGLShaderProgram.removeShader": ('PySide2.QtOpenGL.QGLShader',),
- "PySide2.QtOpenGL.QGLShaderProgram.setAttributeArray2D": [('bytes', 'PySide2.QtGui.QVector2D', 'int'), ('int', 'PySide2.QtGui.QVector2D', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setAttributeArray3D": [('bytes', 'PySide2.QtGui.QVector3D', 'int'), ('int', 'PySide2.QtGui.QVector3D', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setAttributeArray4D": [('bytes', 'PySide2.QtGui.QVector4D', 'int'), ('int', 'PySide2.QtGui.QVector4D', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setAttributeBuffer": [('bytes', 'int', 'int', 'int', 'int'), ('int', 'int', 'int', 'int', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setAttributeValue": [('bytes', 'PySide2.QtGui.QColor'), ('bytes', 'PySide2.QtGui.QVector2D'), ('bytes', 'PySide2.QtGui.QVector3D'), ('bytes', 'PySide2.QtGui.QVector4D'), ('bytes', 'float'), ('bytes', 'float', 'float'), ('bytes', 'float', 'float', 'float'), ('bytes', 'float', 'float', 'float', 'float'), ('int', 'PySide2.QtGui.QColor'), ('int', 'PySide2.QtGui.QVector2D'), ('int', 'PySide2.QtGui.QVector3D'), ('int', 'PySide2.QtGui.QVector4D'), ('int', 'float'), ('int', 'float', 'float'), ('int', 'float', 'float', 'float'), ('int', 'float', 'float', 'float', 'float')],
- "PySide2.QtOpenGL.QGLShaderProgram.setGeometryInputType": ('int',),
- "PySide2.QtOpenGL.QGLShaderProgram.setGeometryOutputType": ('int',),
- "PySide2.QtOpenGL.QGLShaderProgram.setGeometryOutputVertexCount": ('int',),
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValue": [('bytes', 'PySide2.QtCore.QPoint'), ('bytes', 'PySide2.QtCore.QPointF'), ('bytes', 'PySide2.QtCore.QSize'), ('bytes', 'PySide2.QtCore.QSizeF'), ('bytes', 'PySide2.QtGui.QColor'), ('bytes', 'PySide2.QtGui.QMatrix2x2'), ('bytes', 'PySide2.QtGui.QMatrix2x3'), ('bytes', 'PySide2.QtGui.QMatrix2x4'), ('bytes', 'PySide2.QtGui.QMatrix3x2'), ('bytes', 'PySide2.QtGui.QMatrix3x3'), ('bytes', 'PySide2.QtGui.QMatrix3x4'), ('bytes', 'PySide2.QtGui.QMatrix4x2'), ('bytes', 'PySide2.QtGui.QMatrix4x3'), ('bytes', 'PySide2.QtGui.QMatrix4x4'), ('bytes', 'PySide2.QtGui.QTransform'), ('bytes', 'PySide2.QtGui.QVector2D'), ('bytes', 'PySide2.QtGui.QVector3D'), ('bytes', 'PySide2.QtGui.QVector4D'), ('bytes', 'float'), ('bytes', 'float', 'float'), ('bytes', 'float', 'float', 'float'), ('bytes', 'float', 'float', 'float', 'float'), ('bytes', 'int'), ('int', 'PySide2.QtCore.QPoint'), ('int', 'PySide2.QtCore.QPointF'), ('int', 'PySide2.QtCore.QSize'), ('int', 'PySide2.QtCore.QSizeF'), ('int', 'PySide2.QtGui.QColor'), ('int', 'PySide2.QtGui.QMatrix2x2'), ('int', 'PySide2.QtGui.QMatrix2x3'), ('int', 'PySide2.QtGui.QMatrix2x4'), ('int', 'PySide2.QtGui.QMatrix3x2'), ('int', 'PySide2.QtGui.QMatrix3x3'), ('int', 'PySide2.QtGui.QMatrix3x4'), ('int', 'PySide2.QtGui.QMatrix4x2'), ('int', 'PySide2.QtGui.QMatrix4x3'), ('int', 'PySide2.QtGui.QMatrix4x4'), ('int', 'PySide2.QtGui.QTransform'), ('int', 'PySide2.QtGui.QVector2D'), ('int', 'PySide2.QtGui.QVector3D'), ('int', 'PySide2.QtGui.QVector4D'), ('int', 'float'), ('int', 'float', 'float'), ('int', 'float', 'float', 'float'), ('int', 'float', 'float', 'float', 'float'), ('int', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray2D": [('bytes', 'PySide2.QtGui.QVector2D', 'int'), ('int', 'PySide2.QtGui.QVector2D', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray2x2": [('bytes', 'PySide2.QtGui.QMatrix2x2', 'int'), ('int', 'PySide2.QtGui.QMatrix2x2', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray2x3": [('bytes', 'PySide2.QtGui.QMatrix2x3', 'int'), ('int', 'PySide2.QtGui.QMatrix2x3', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray2x4": [('bytes', 'PySide2.QtGui.QMatrix2x4', 'int'), ('int', 'PySide2.QtGui.QMatrix2x4', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray3D": [('bytes', 'PySide2.QtGui.QVector3D', 'int'), ('int', 'PySide2.QtGui.QVector3D', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray3x2": [('bytes', 'PySide2.QtGui.QMatrix3x2', 'int'), ('int', 'PySide2.QtGui.QMatrix3x2', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray3x3": [('bytes', 'PySide2.QtGui.QMatrix3x3', 'int'), ('int', 'PySide2.QtGui.QMatrix3x3', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray3x4": [('bytes', 'PySide2.QtGui.QMatrix3x4', 'int'), ('int', 'PySide2.QtGui.QMatrix3x4', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray4D": [('bytes', 'PySide2.QtGui.QVector4D', 'int'), ('int', 'PySide2.QtGui.QVector4D', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray4x2": [('bytes', 'PySide2.QtGui.QMatrix4x2', 'int'), ('int', 'PySide2.QtGui.QMatrix4x2', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray4x3": [('bytes', 'PySide2.QtGui.QMatrix4x3', 'int'), ('int', 'PySide2.QtGui.QMatrix4x3', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray4x4": [('bytes', 'PySide2.QtGui.QMatrix4x4', 'int'), ('int', 'PySide2.QtGui.QMatrix4x4', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArrayInt": [('bytes', 'typing.Sequence', 'int'), ('int', 'typing.Sequence', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArrayUint": [('bytes', 'typing.Sequence', 'int'), ('int', 'typing.Sequence', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.shaders": (),
- "PySide2.QtOpenGL.QGLShaderProgram.uniformLocation": [('PySide2.QtCore.QByteArray',), ('bytes',), ('str',)],
-# class PySide2.QtOpenGL.QGLWidget:
- "PySide2.QtOpenGL.QGLWidget.__init__": [('PySide2.QtOpenGL.QGLContext', 'PySide2.QtWidgets.QWidget', 'PySide2.QtOpenGL.QGLWidget', 'PySide2.QtCore.Qt.WindowFlags'), ('PySide2.QtOpenGL.QGLFormat', 'PySide2.QtWidgets.QWidget', 'PySide2.QtOpenGL.QGLWidget', 'PySide2.QtCore.Qt.WindowFlags'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtOpenGL.QGLWidget', 'PySide2.QtCore.Qt.WindowFlags')],
- "PySide2.QtOpenGL.QGLWidget.autoBufferSwap": (),
- "PySide2.QtOpenGL.QGLWidget.bindTexture": [('PySide2.QtGui.QImage', 'int', 'int'), ('PySide2.QtGui.QImage', 'int', 'int', 'PySide2.QtOpenGL.QGLContext.BindOptions'), ('PySide2.QtGui.QPixmap', 'int', 'int'), ('PySide2.QtGui.QPixmap', 'int', 'int', 'PySide2.QtOpenGL.QGLContext.BindOptions'), ('str',)],
- "PySide2.QtOpenGL.QGLWidget.colormap": (),
- "PySide2.QtOpenGL.QGLWidget.context": (),
- "PySide2.QtOpenGL.QGLWidget.convertToGLFormat": ('PySide2.QtGui.QImage',),
- "PySide2.QtOpenGL.QGLWidget.deleteTexture": ('int',),
- "PySide2.QtOpenGL.QGLWidget.doneCurrent": (),
- "PySide2.QtOpenGL.QGLWidget.doubleBuffer": (),
- "PySide2.QtOpenGL.QGLWidget.drawTexture": [('PySide2.QtCore.QPointF', 'int', 'int'), ('PySide2.QtCore.QRectF', 'int', 'int')],
- "PySide2.QtOpenGL.QGLWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtOpenGL.QGLWidget.format": (),
- "PySide2.QtOpenGL.QGLWidget.glDraw": (),
- "PySide2.QtOpenGL.QGLWidget.glInit": (),
- "PySide2.QtOpenGL.QGLWidget.grabFrameBuffer": ('bool',),
- "PySide2.QtOpenGL.QGLWidget.initializeGL": (),
- "PySide2.QtOpenGL.QGLWidget.initializeOverlayGL": (),
- "PySide2.QtOpenGL.QGLWidget.isSharing": (),
- "PySide2.QtOpenGL.QGLWidget.isValid": (),
- "PySide2.QtOpenGL.QGLWidget.makeCurrent": (),
- "PySide2.QtOpenGL.QGLWidget.makeOverlayCurrent": (),
- "PySide2.QtOpenGL.QGLWidget.overlayContext": (),
- "PySide2.QtOpenGL.QGLWidget.paintEngine": (),
- "PySide2.QtOpenGL.QGLWidget.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtOpenGL.QGLWidget.paintGL": (),
- "PySide2.QtOpenGL.QGLWidget.paintOverlayGL": (),
- "PySide2.QtOpenGL.QGLWidget.qglClearColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtOpenGL.QGLWidget.qglColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtOpenGL.QGLWidget.renderPixmap": ('int', 'int', 'bool'),
- "PySide2.QtOpenGL.QGLWidget.renderText": [('float', 'float', 'float', 'str', 'PySide2.QtGui.QFont'), ('int', 'int', 'str', 'PySide2.QtGui.QFont')],
- "PySide2.QtOpenGL.QGLWidget.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtOpenGL.QGLWidget.resizeGL": ('int', 'int'),
- "PySide2.QtOpenGL.QGLWidget.resizeOverlayGL": ('int', 'int'),
- "PySide2.QtOpenGL.QGLWidget.setAutoBufferSwap": ('bool',),
- "PySide2.QtOpenGL.QGLWidget.setColormap": ('PySide2.QtOpenGL.QGLColormap',),
- "PySide2.QtOpenGL.QGLWidget.swapBuffers": (),
- "PySide2.QtOpenGL.QGLWidget.updateGL": (),
- "PySide2.QtOpenGL.QGLWidget.updateOverlayGL": (),
- }) if "PySide2.QtOpenGL" in sys.modules else None
-# Module PySide2.QtOpenGLFunctions
-sig_dict.update({
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glClipPlane": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalCoord1dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalCoord1fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalCoord2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalCoord2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glFogfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glFogiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIndexdv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIndexfv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIndexiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIndexsv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLightModelfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLightModeliv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLightfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLightiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLoadMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLoadMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMaterialfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMaterialiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMultMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMultMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNormal3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNormal3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNormal3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNormal3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNormal3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPixelMapfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPixelMapuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPixelMapusv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRectdv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRectfv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRectiv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRectsv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord1dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord1fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord1iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord1sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexEnvfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexEnviv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexGendv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexGenfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexGeniv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glClipPlane": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDeleteTextures": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalCoord1dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalCoord1fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalCoord2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalCoord2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glFogfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glFogiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexdv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexfv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexsv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLightModelfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLightModeliv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLightfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLightiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLoadMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLoadMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMaterialfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMaterialiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMultMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMultMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormal3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormal3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormal3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormal3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormal3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPixelMapfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPixelMapuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPixelMapusv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPrioritizeTextures": ('int', 'typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRectdv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRectfv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRectiv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRectsv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord1dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord1fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord1iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord1sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexEnvfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexEnviv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexGendv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexGenfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexGeniv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glClipPlane": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColorTableParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColorTableParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDeleteTextures": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalCoord1dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalCoord1fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalCoord2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalCoord2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glFogfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glFogiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexdv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexfv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexsv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLightModelfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLightModeliv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLightfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLightiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLoadMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLoadMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMaterialfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMaterialiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMultMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMultMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormal3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormal3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormal3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormal3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormal3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPixelMapfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPixelMapuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPixelMapusv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPrioritizeTextures": ('int', 'typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRectdv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRectfv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRectiv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRectsv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord1dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord1fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord1iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord1sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexEnvfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexEnviv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexGendv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexGenfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexGeniv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glClipPlane": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColorTableParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColorTableParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDeleteTextures": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalCoord1dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalCoord1fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalCoord2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalCoord2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glFogfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glFogiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexdv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexfv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexsv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLightModelfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLightModeliv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLightfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLightiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLoadMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLoadMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLoadTransposeMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLoadTransposeMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMaterialfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMaterialiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultTransposeMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultTransposeMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord1dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord1fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord1iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord1sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord2dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord2fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord2iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord2sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord3dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord3fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord3iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord3sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord4dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord4fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord4iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord4sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormal3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormal3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormal3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormal3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormal3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPixelMapfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPixelMapuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPixelMapusv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPrioritizeTextures": ('int', 'typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRectdv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRectfv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRectiv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRectsv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord1dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord1fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord1iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord1sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexEnvfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexEnviv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexGendv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexGenfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexGeniv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glClipPlane": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColorTableParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColorTableParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDeleteTextures": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalCoord1dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalCoord1fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalCoord2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalCoord2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFogCoorddv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFogCoordfv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFogfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFogiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexdv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexfv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexsv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLightModelfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLightModeliv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLightfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLightiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLoadMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLoadMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLoadTransposeMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLoadTransposeMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMaterialfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMaterialiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultTransposeMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultTransposeMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiDrawArrays": ('int', 'typing.Sequence', 'typing.Sequence', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord1dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord1fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord1iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord1sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord2dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord2fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord2iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord2sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord3dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord3fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord3iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord3sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord4dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord4fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord4iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord4sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormal3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormal3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormal3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormal3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormal3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPixelMapfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPixelMapuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPixelMapusv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPointParameterfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPointParameteriv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPrioritizeTextures": ('int', 'typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRectdv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRectfv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRectiv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRectsv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord1dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord1fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord1iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord1sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexEnvfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexEnviv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexGendv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexGenfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexGeniv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glClipPlane": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColorTableParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColorTableParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDeleteBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDeleteQueries": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDeleteTextures": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalCoord1dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalCoord1fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalCoord2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalCoord2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFogCoorddv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFogCoordfv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFogfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFogiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexdv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexfv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexsv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLightModelfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLightModeliv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLightfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLightiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLoadMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLoadMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLoadTransposeMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLoadTransposeMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMaterialfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMaterialiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultTransposeMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultTransposeMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiDrawArrays": ('int', 'typing.Sequence', 'typing.Sequence', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord1dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord1fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord1iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord1sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord2dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord2fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord2iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord2sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord3dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord3fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord3iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord3sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord4dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord4fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord4iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord4sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormal3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormal3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormal3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormal3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormal3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPixelMapfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPixelMapuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPixelMapusv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPointParameterfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPointParameteriv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPrioritizeTextures": ('int', 'typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRectdv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRectfv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRectiv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRectsv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord1dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord1fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord1iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord1sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexEnvfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexEnviv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexGendv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexGenfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexGeniv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glBindAttribLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glClipPlane": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColorTableParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColorTableParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDeleteBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDeleteQueries": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDeleteTextures": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDrawBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalCoord1dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalCoord1fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalCoord2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalCoord2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFogCoorddv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFogCoordfv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFogfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFogiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glGetAttribLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glGetUniformLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexdv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexfv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexsv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLightModelfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLightModeliv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLightfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLightiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLoadMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLoadMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLoadTransposeMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLoadTransposeMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMaterialfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMaterialiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultTransposeMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultTransposeMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiDrawArrays": ('int', 'typing.Sequence', 'typing.Sequence', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord1dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord1fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord1iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord1sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord2dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord2fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord2iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord2sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord3dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord3fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord3iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord3sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord4dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord4fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord4iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord4sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormal3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormal3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormal3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormal3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormal3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPixelMapfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPixelMapuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPixelMapusv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPointParameterfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPointParameteriv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPrioritizeTextures": ('int', 'typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRectdv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRectfv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRectiv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRectsv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord1dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord1fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord1iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord1sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexEnvfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexEnviv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexGendv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexGenfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexGeniv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform1fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform1iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform2fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform2iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform3fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform3iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform4fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform4iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib1dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib1fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib1sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib2dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib2fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib2sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib3dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib3fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib3sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4Nbv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4Niv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4Nsv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4Nubv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4Nuiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4Nusv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4bv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4ubv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4usv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glBindAttribLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glClipPlane": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColorTableParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColorTableParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDeleteBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDeleteQueries": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDeleteTextures": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDrawBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalCoord1dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalCoord1fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalCoord2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalCoord2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFogCoorddv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFogCoordfv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFogfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFogiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glGetAttribLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glGetUniformLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexdv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexfv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexsv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLightModelfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLightModeliv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLightfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLightiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLoadMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLoadMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLoadTransposeMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLoadTransposeMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMaterialfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMaterialiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultTransposeMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultTransposeMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiDrawArrays": ('int', 'typing.Sequence', 'typing.Sequence', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord1dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord1fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord1iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord1sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord2dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord2fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord2iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord2sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord3dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord3fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord3iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord3sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord4dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord4fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord4iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord4sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormal3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormal3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormal3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormal3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormal3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPixelMapfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPixelMapuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPixelMapusv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPointParameterfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPointParameteriv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPrioritizeTextures": ('int', 'typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRectdv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRectfv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRectiv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRectsv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord1dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord1fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord1iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord1sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexEnvfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexEnviv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexGendv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexGenfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexGeniv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform1fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform1iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform2fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform2iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform3fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform3iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform4fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform4iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib1dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib1fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib1sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib2dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib2fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib2sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib3dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib3fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib3sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4Nbv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4Niv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4Nsv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4Nubv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4Nuiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4Nusv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4bv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4ubv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4usv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBindAttribLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBindFragDataLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClearBufferfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClearBufferiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClearBufferuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClipPlane": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColorTableParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColorTableParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDeleteBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDeleteFramebuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDeleteQueries": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDeleteRenderbuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDeleteTextures": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDeleteVertexArrays": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDrawBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalCoord1dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalCoord1fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalCoord2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalCoord2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFogCoorddv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFogCoordfv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFogfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFogiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glGetAttribLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glGetFragDataLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glGetUniformLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexdv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexfv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexsv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLightModelfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLightModeliv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLightfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLightiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLoadMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLoadMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLoadTransposeMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLoadTransposeMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMaterialfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMaterialiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultTransposeMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultTransposeMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiDrawArrays": ('int', 'typing.Sequence', 'typing.Sequence', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord1dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord1fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord1iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord1sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord2dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord2fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord2iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord2sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord3dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord3fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord3iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord3sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord4dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord4fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord4iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord4sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormal3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormal3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormal3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormal3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormal3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPixelMapfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPixelMapuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPixelMapusv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPointParameterfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPointParameteriv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPrioritizeTextures": ('int', 'typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRectdv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRectfv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRectiv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRectsv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord1dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord1fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord1iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord1sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexEnvfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexEnviv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexGendv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexGenfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexGeniv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexParameterIiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexParameterIuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform1fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform1iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform1uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform2fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform2iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform2uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform3fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform3iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform3uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform4fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform4iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform4uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib1dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib1fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib1sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib2dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib2fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib2sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib3dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib3fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib3sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4Nbv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4Niv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4Nsv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4Nubv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4Nuiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4Nusv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4bv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4ubv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4usv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI1iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI1uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI2iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI2uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI3iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI4bv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI4iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI4sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI4ubv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI4usv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBindAttribLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBindFragDataLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glClearBufferfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glClearBufferiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glClearBufferuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDeleteBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDeleteFramebuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDeleteQueries": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDeleteRenderbuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDeleteTextures": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDeleteVertexArrays": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDrawBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glGetAttribLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glGetFragDataLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glGetUniformBlockIndex": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glGetUniformLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIndexubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glMultiDrawArrays": ('int', 'typing.Sequence', 'typing.Sequence', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glPointParameterfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glPointParameteriv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexParameterIiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexParameterIuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform1fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform1iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform1uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform2fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform2iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform2uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform3fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform3iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform3uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform4fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform4iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform4uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBindAttribLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBindFragDataLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClearBufferfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClearBufferiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClearBufferuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClipPlane": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColorTableParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColorTableParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDeleteBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDeleteFramebuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDeleteQueries": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDeleteRenderbuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDeleteTextures": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDeleteVertexArrays": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalCoord1dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalCoord1fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalCoord2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalCoord2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFogCoorddv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFogCoordfv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFogfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFogiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glGetAttribLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glGetFragDataLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glGetUniformBlockIndex": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glGetUniformLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexdv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexfv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexsv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLightModelfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLightModeliv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLightfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLightiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLoadMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLoadMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLoadTransposeMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLoadTransposeMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMaterialfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMaterialiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultTransposeMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultTransposeMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiDrawArrays": ('int', 'typing.Sequence', 'typing.Sequence', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord1dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord1fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord1iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord1sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord2dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord2fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord2iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord2sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord3dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord3fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord3iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord3sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord4dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord4fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord4iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord4sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormal3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormal3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormal3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormal3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormal3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPixelMapfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPixelMapuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPixelMapusv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPointParameterfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPointParameteriv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPrioritizeTextures": ('int', 'typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRectdv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRectfv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRectiv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRectsv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord1dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord1fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord1iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord1sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexEnvfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexEnviv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexGendv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexGenfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexGeniv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexParameterIiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexParameterIuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform1fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform1iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform1uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform2fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform2iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform2uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform3fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform3iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform3uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform4fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform4iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform4uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib1dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib1fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib1sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib2dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib2fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib2sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib3dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib3fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib3sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4Nbv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4Niv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4Nsv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4Nubv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4Nuiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4Nusv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4bv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4ubv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4usv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI1iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI1uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI2iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI2uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI3iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI4bv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI4iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI4sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI4ubv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI4usv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBindAttribLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBindFragDataLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glClearBufferfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glClearBufferiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glClearBufferuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDeleteBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDeleteFramebuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDeleteQueries": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDeleteRenderbuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDeleteTextures": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDeleteVertexArrays": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDrawBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glGetAttribLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glGetFragDataLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glGetUniformBlockIndex": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glGetUniformLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIndexubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glMultiDrawArrays": ('int', 'typing.Sequence', 'typing.Sequence', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glPointParameterfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glPointParameteriv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexParameterIiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexParameterIuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform1fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform1iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform1uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform2fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform2iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform2uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform3fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform3iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform3uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform4fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform4iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform4uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBindAttribLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBindFragDataLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClearBufferfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClearBufferiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClearBufferuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClipPlane": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorP4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorTableParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorTableParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDeleteBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDeleteFramebuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDeleteQueries": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDeleteRenderbuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDeleteSamplers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDeleteTextures": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDeleteVertexArrays": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalCoord1dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalCoord1fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalCoord2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalCoord2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFogCoorddv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFogCoordfv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFogfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFogiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glGetAttribLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glGetFragDataIndex": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glGetFragDataLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glGetUniformBlockIndex": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glGetUniformLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexdv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexfv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexsv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLightModelfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLightModeliv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLightfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLightiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLoadMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLoadMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLoadTransposeMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLoadTransposeMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMaterialfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMaterialiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultTransposeMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultTransposeMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiDrawArrays": ('int', 'typing.Sequence', 'typing.Sequence', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord1dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord1fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord1iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord1sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord2dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord2fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord2iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord2sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord3dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord3fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord3iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord3sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord4dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord4fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord4iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord4sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormal3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormal3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormal3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormal3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormal3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormalP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPixelMapfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPixelMapuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPixelMapusv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPointParameterfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPointParameteriv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPrioritizeTextures": ('int', 'typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRectdv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRectfv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRectiv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRectsv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSamplerParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSamplerParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColorP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord1dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord1fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord1iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord1sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoordP1uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoordP2uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoordP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoordP4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexEnvfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexEnviv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexGendv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexGenfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexGeniv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexParameterIiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexParameterIuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform1fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform1iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform1uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform2fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform2iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform2uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform3fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform3iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform3uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform4fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform4iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform4uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib1dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib1fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib1sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib2dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib2fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib2sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib3dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib3fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib3sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4Nbv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4Niv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4Nsv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4Nubv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4Nuiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4Nusv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4bv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4ubv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4usv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI1iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI1uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI2iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI2uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI3iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI4bv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI4iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI4sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI4ubv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI4usv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexP2uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexP4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBindAttribLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBindFragDataLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glClearBufferfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glClearBufferiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glClearBufferuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glColorP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glColorP4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDeleteBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDeleteFramebuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDeleteQueries": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDeleteRenderbuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDeleteSamplers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDeleteTextures": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDeleteVertexArrays": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDrawBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glGetAttribLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glGetFragDataIndex": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glGetFragDataLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glGetUniformBlockIndex": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glGetUniformLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIndexubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glMultiDrawArrays": ('int', 'typing.Sequence', 'typing.Sequence', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glNormalP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glPointParameterfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glPointParameteriv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glSamplerParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glSamplerParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glSecondaryColorP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexCoordP1uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexCoordP2uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexCoordP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexCoordP4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexParameterIiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexParameterIuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform1fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform1iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform1uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform2fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform2iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform2uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform3fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform3iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform3uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform4fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform4iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform4uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexP2uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexP4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindAttribLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindFragDataLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClearBufferfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClearBufferiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClearBufferuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClipPlane": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorP4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorTableParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorTableParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteFramebuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteQueries": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteRenderbuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteSamplers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteTextures": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteTransformFeedbacks": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteVertexArrays": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalCoord1dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalCoord1fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalCoord2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalCoord2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFogCoorddv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFogCoordfv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFogfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFogiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGetAttribLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGetFragDataIndex": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGetFragDataLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGetSubroutineIndex": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGetSubroutineUniformLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGetUniformBlockIndex": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGetUniformLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexdv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexfv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexsv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLightModelfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLightModeliv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLightfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLightiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLoadMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLoadMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLoadTransposeMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLoadTransposeMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMaterialfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMaterialiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultTransposeMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultTransposeMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiDrawArrays": ('int', 'typing.Sequence', 'typing.Sequence', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord1dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord1fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord1iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord1sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord2dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord2fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord2iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord2sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord3dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord3fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord3iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord3sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord4dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord4fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord4iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord4sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormal3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormal3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormal3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormal3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormal3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormalP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPatchParameterfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPixelMapfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPixelMapuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPixelMapusv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPointParameterfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPointParameteriv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPrioritizeTextures": ('int', 'typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRectdv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRectfv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRectiv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRectsv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSamplerParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSamplerParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColorP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord1dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord1fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord1iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord1sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoordP1uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoordP2uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoordP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoordP4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexEnvfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexEnviv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexGendv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexGenfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexGeniv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexParameterIiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexParameterIuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform1dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform1fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform1iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform1uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform2dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform2fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform2iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform2uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform3dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform3fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform3iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform3uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform4dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform4fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform4iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform4uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib1dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib1fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib1sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib2dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib2fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib2sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib3dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib3fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib3sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4Nbv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4Niv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4Nsv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4Nubv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4Nuiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4Nusv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4bv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4ubv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4usv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI1iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI1uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI2iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI2uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI3iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI4bv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI4iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI4sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI4ubv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI4usv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexP2uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexP4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindAttribLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindFragDataLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glClearBufferfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glClearBufferiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glClearBufferuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glColorP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glColorP4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDeleteBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDeleteFramebuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDeleteQueries": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDeleteRenderbuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDeleteSamplers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDeleteTextures": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDeleteTransformFeedbacks": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDeleteVertexArrays": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGetAttribLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGetFragDataIndex": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGetFragDataLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGetSubroutineIndex": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGetSubroutineUniformLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGetUniformBlockIndex": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGetUniformLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIndexubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMultiDrawArrays": ('int', 'typing.Sequence', 'typing.Sequence', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glNormalP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPatchParameterfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPointParameterfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPointParameteriv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glSamplerParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glSamplerParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glSecondaryColorP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexCoordP1uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexCoordP2uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexCoordP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexCoordP4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexParameterIiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexParameterIuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform1dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform1fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform1iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform1uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform2dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform2fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform2iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform2uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform3dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform3fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform3iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform3uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform4dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform4fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform4iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform4uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexP2uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexP4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindAttribLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindFragDataLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClearBufferfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClearBufferiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClearBufferuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClearDepthf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClipPlane": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorP4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorTableParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorTableParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteFramebuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteProgramPipelines": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteQueries": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteRenderbuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteSamplers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteTextures": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteTransformFeedbacks": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteVertexArrays": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDepthRangeArrayv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDepthRangeIndexed": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDepthRangef": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalCoord1dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalCoord1fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalCoord2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalCoord2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFogCoorddv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFogCoordfv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFogfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFogiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGetAttribLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGetFragDataIndex": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGetFragDataLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGetSubroutineIndex": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGetSubroutineUniformLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGetUniformBlockIndex": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGetUniformLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexdv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexfv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexsv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLightModelfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLightModeliv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLightfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLightiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLoadMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLoadMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLoadTransposeMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLoadTransposeMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMaterialfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMaterialiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultTransposeMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultTransposeMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiDrawArrays": ('int', 'typing.Sequence', 'typing.Sequence', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord1dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord1fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord1iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord1sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord2dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord2fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord2iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord2sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord3dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord3fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord3iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord3sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord4dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord4fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord4iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord4sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormal3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormal3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormal3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormal3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormal3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormalP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPatchParameterfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPixelMapfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPixelMapuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPixelMapusv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPointParameterfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPointParameteriv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPrioritizeTextures": ('int', 'typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform1d": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform1dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform2d": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform3d": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform4d": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix2dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix2x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix2x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix3dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix3x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix3x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix4dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix4x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix4x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRectdv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRectfv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRectiv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRectsv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glReleaseShaderCompiler": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSamplerParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSamplerParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glScissorArrayv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glScissorIndexed": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glScissorIndexedv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColorP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glShaderBinary": ('int', 'typing.Sequence', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord1dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord1fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord1iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord1sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoordP1uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoordP2uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoordP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoordP4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexEnvfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexEnviv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexGendv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexGenfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexGeniv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexParameterIiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexParameterIuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform1dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform1fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform1iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform1uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform2dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform2fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform2iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform2uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform3dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform3fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform3iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform3uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform4dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform4fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform4iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform4uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glValidateProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib1dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib1fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib1sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib2dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib2fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib2sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib3dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib3fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib3sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4Nbv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4Niv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4Nsv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4Nubv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4Nuiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4Nusv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4bv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4ubv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4usv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI1iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI1uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI2iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI2uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI3iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI4bv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI4iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI4sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI4ubv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI4usv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribL1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribL1dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribL2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribL2dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribL3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribL3dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribL4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribL4dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribLPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexP2uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexP4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glViewportArrayv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glViewportIndexedf": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glViewportIndexedfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindAttribLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindFragDataLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glClearBufferfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glClearBufferiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glClearBufferuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glClearDepthf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glColorP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glColorP4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteFramebuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteProgramPipelines": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteQueries": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteRenderbuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteSamplers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteTextures": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteTransformFeedbacks": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteVertexArrays": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDepthRangeArrayv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDepthRangeIndexed": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDepthRangef": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGetAttribLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGetFragDataIndex": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGetFragDataLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGetSubroutineIndex": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGetSubroutineUniformLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGetUniformBlockIndex": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGetUniformLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIndexubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMultiDrawArrays": ('int', 'typing.Sequence', 'typing.Sequence', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glNormalP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPatchParameterfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPointParameterfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPointParameteriv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform1d": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform1dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform2d": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform3d": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform4d": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix2dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix2x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix2x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix3dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix3x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix3x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix4dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix4x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix4x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glReleaseShaderCompiler": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glSamplerParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glSamplerParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glScissorArrayv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glScissorIndexed": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glScissorIndexedv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glSecondaryColorP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glShaderBinary": ('int', 'typing.Sequence', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexCoordP1uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexCoordP2uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexCoordP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexCoordP4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexParameterIiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexParameterIuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform1dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform1fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform1iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform1uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform2dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform2fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform2iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform2uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform3dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform3fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform3iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform3uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform4dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform4fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform4iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform4uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glValidateProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribL1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribL1dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribL2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribL2dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribL3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribL3dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribL4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribL4dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribLPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexP2uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexP4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glViewportArrayv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glViewportIndexedf": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glViewportIndexedfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindAttribLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindFragDataLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindImageTexture": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClearBufferfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClearBufferiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClearBufferuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClearDepthf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClipPlane": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorP4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorTableParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorTableParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteFramebuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteProgramPipelines": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteQueries": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteRenderbuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteSamplers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteTextures": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteTransformFeedbacks": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteVertexArrays": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDepthRangeArrayv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDepthRangeIndexed": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDepthRangef": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawArraysInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawElementsInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawElementsInstancedBaseVertexBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawTransformFeedbackInstanced": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawTransformFeedbackStreamInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalCoord1dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalCoord1fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalCoord2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalCoord2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFogCoorddv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFogCoordfv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFogfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFogiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGetAttribLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGetFragDataIndex": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGetFragDataLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGetSubroutineIndex": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGetSubroutineUniformLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGetUniformBlockIndex": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGetUniformLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexdv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexfv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexsv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLightModelfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLightModeliv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLightfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLightiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLoadMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLoadMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLoadTransposeMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLoadTransposeMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMaterialfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMaterialiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMemoryBarrier": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultTransposeMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultTransposeMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiDrawArrays": ('int', 'typing.Sequence', 'typing.Sequence', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord1dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord1fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord1iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord1sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord2dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord2fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord2iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord2sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord3dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord3fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord3iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord3sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord4dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord4fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord4iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord4sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormal3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormal3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormal3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormal3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormal3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormalP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPatchParameterfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPixelMapfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPixelMapuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPixelMapusv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPointParameterfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPointParameteriv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPrioritizeTextures": ('int', 'typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform1d": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform1dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform2d": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform3d": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform4d": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix2dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix2x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix2x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix3dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix3x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix3x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix4dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix4x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix4x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRectdv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRectfv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRectiv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRectsv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glReleaseShaderCompiler": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSamplerParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSamplerParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glScissorArrayv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glScissorIndexed": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glScissorIndexedv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColorP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glShaderBinary": ('int', 'typing.Sequence', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord1dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord1fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord1iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord1sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoordP1uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoordP2uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoordP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoordP4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexEnvfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexEnviv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexGendv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexGenfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexGeniv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexParameterIiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexParameterIuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexStorage1D": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform1dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform1fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform1iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform1uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform2dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform2fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform2iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform2uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform3dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform3fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform3iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform3uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform4dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform4fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform4iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform4uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glValidateProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib1dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib1fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib1sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib2dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib2fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib2sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib3dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib3fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib3sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4Nbv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4Niv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4Nsv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4Nubv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4Nuiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4Nusv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4bv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4ubv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4usv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI1iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI1uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI2iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI2uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI3iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI4bv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI4iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI4sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI4ubv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI4usv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribL1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribL1dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribL2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribL2dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribL3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribL3dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribL4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribL4dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribLPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexP2uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexP4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glViewportArrayv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glViewportIndexedf": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glViewportIndexedfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindAttribLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindFragDataLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindImageTexture": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glClearBufferfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glClearBufferiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glClearBufferuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glClearDepthf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glColorP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glColorP4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteFramebuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteProgramPipelines": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteQueries": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteRenderbuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteSamplers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteTextures": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteTransformFeedbacks": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteVertexArrays": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDepthRangeArrayv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDepthRangeIndexed": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDepthRangef": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawArraysInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawElementsInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawElementsInstancedBaseVertexBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawTransformFeedbackInstanced": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawTransformFeedbackStreamInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGetAttribLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGetFragDataIndex": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGetFragDataLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGetSubroutineIndex": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGetSubroutineUniformLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGetUniformBlockIndex": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGetUniformLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIndexubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMemoryBarrier": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMultiDrawArrays": ('int', 'typing.Sequence', 'typing.Sequence', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glNormalP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPatchParameterfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPointParameterfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPointParameteriv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform1d": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform1dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform2d": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform3d": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform4d": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix2dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix2x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix2x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix3dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix3x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix3x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix4dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix4x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix4x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glReleaseShaderCompiler": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glSamplerParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glSamplerParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glScissorArrayv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glScissorIndexed": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glScissorIndexedv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glSecondaryColorP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glShaderBinary": ('int', 'typing.Sequence', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexCoordP1uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexCoordP2uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexCoordP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexCoordP4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexParameterIiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexParameterIuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexStorage1D": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform1dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform1fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform1iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform1uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform2dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform2fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform2iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform2uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform3dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform3fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform3iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform3uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform4dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform4fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform4iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform4uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glValidateProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribL1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribL1dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribL2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribL2dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribL3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribL3dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribL4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribL4dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribLPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexP2uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexP4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glViewportArrayv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glViewportIndexedf": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glViewportIndexedfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindAttribLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindFragDataLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindImageTexture": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearBufferData": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearBufferfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearBufferiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearBufferuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearDepthf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClipPlane": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorP4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorTableParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorTableParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyImageSubData": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteFramebuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteProgramPipelines": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteQueries": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteRenderbuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteSamplers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteTextures": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteTransformFeedbacks": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteVertexArrays": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDepthRangeArrayv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDepthRangeIndexed": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDepthRangef": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDispatchCompute": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawArraysInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawElementsInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawElementsInstancedBaseVertexBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawTransformFeedbackInstanced": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawTransformFeedbackStreamInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalCoord1dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalCoord1fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalCoord2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalCoord2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFogCoorddv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFogCoordfv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFogfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFogiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFramebufferParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetAttribLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetFragDataIndex": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetFragDataLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetProgramResourceIndex": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetProgramResourceLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetProgramResourceLocationIndex": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetSubroutineIndex": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetSubroutineUniformLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetUniformBlockIndex": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetUniformLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexdv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexfv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexsv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glInvalidateBufferData": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glInvalidateFramebuffer": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glInvalidateSubFramebuffer": ('int', 'int', 'typing.Sequence', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glInvalidateTexImage": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glInvalidateTexSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLightModelfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLightModeliv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLightfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLightiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLoadMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLoadMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLoadTransposeMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLoadTransposeMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMaterialfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMaterialiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMemoryBarrier": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultTransposeMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultTransposeMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiDrawArrays": ('int', 'typing.Sequence', 'typing.Sequence', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiDrawArraysIndirect": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord1dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord1fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord1iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord1sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord2dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord2fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord2iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord2sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord3dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord3fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord3iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord3sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord4dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord4fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord4iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord4sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormal3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormal3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormal3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormal3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormal3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormalP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPatchParameterfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPixelMapfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPixelMapuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPixelMapusv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPointParameterfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPointParameteriv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPrioritizeTextures": ('int', 'typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform1d": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform1dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform2d": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform3d": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform4d": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix2dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix2x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix2x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix3dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix3x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix3x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix4dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix4x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix4x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRectdv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRectfv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRectiv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRectsv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glReleaseShaderCompiler": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSamplerParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSamplerParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glScissorArrayv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glScissorIndexed": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glScissorIndexedv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColorP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glShaderBinary": ('int', 'typing.Sequence', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glShaderStorageBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord1dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord1fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord1iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord1sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoordP1uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoordP2uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoordP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoordP4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexEnvfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexEnviv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexGendv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexGenfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexGeniv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexParameterIiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexParameterIuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexStorage1D": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexStorage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexStorage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTextureView": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform1dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform1fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform1iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform1uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform2dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform2fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform2iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform2uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform3dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform3fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform3iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform3uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform4dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform4fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform4iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform4uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glValidateProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib1dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib1fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib1sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib2dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib2fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib2sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib3dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib3fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib3sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4Nbv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4Niv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4Nsv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4Nubv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4Nuiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4Nusv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4bv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4ubv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4usv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribBinding": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI1iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI1uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI2iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI2uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI3iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI4bv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI4iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI4sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI4ubv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI4usv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribIFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribL1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribL1dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribL2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribL2dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribL3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribL3dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribL4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribL4dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribLFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribLPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexBindingDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexP2uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexP4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glViewportArrayv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glViewportIndexedf": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glViewportIndexedfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindAttribLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindFragDataLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindImageTexture": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClearBufferData": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClearBufferfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClearBufferiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClearBufferuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClearDepthf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glColorP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glColorP4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCopyImageSubData": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteFramebuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteProgramPipelines": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteQueries": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteRenderbuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteSamplers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteTextures": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteTransformFeedbacks": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteVertexArrays": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDepthRangeArrayv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDepthRangeIndexed": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDepthRangef": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDispatchCompute": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawArraysInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawElementsInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawElementsInstancedBaseVertexBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawTransformFeedbackInstanced": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawTransformFeedbackStreamInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glFramebufferParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetAttribLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetFragDataIndex": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetFragDataLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetProgramResourceIndex": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetProgramResourceLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetProgramResourceLocationIndex": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetSubroutineIndex": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetSubroutineUniformLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetUniformBlockIndex": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetUniformLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIndexubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glInvalidateBufferData": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glInvalidateFramebuffer": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glInvalidateSubFramebuffer": ('int', 'int', 'typing.Sequence', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glInvalidateTexImage": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glInvalidateTexSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMemoryBarrier": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMultiDrawArrays": ('int', 'typing.Sequence', 'typing.Sequence', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMultiDrawArraysIndirect": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glNormalP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPatchParameterfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPointParameterfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPointParameteriv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform1d": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform1dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform2d": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform3d": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform4d": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix2dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix2x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix2x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix3dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix3x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix3x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix4dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix4x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix4x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glReleaseShaderCompiler": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glSamplerParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glSamplerParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glScissorArrayv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glScissorIndexed": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glScissorIndexedv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glSecondaryColorP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glShaderBinary": ('int', 'typing.Sequence', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glShaderStorageBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexCoordP1uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexCoordP2uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexCoordP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexCoordP4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexParameterIiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexParameterIuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexStorage1D": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexStorage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexStorage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTextureView": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform1dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform1fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform1iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform1uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform2dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform2fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform2iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform2uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform3dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform3fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform3iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform3uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform4dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform4fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform4iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform4uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glValidateProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribBinding": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribIFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribL1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribL1dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribL2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribL2dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribL3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribL3dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribL4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribL4dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribLFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribLPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexBindingDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexP2uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexP4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glViewportArrayv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glViewportIndexedf": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glViewportIndexedfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindAttribLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindBuffersBase": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindBuffersRange": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindFragDataLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindImageTexture": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindImageTextures": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindSamplers": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindTextures": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindVertexBuffers": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearBufferData": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearBufferfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearBufferiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearBufferuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearDepthf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearTexImage": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearTexSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClipPlane": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorP4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorTableParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorTableParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyImageSubData": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDebugMessageControl": ('int', 'int', 'int', 'int', 'typing.Sequence', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDebugMessageInsert": ('int', 'int', 'int', 'int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteFramebuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteProgramPipelines": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteQueries": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteRenderbuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteSamplers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteTextures": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteTransformFeedbacks": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteVertexArrays": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDepthRangeArrayv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDepthRangeIndexed": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDepthRangef": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDispatchCompute": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawArraysInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawElementsInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawElementsInstancedBaseVertexBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawTransformFeedbackInstanced": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawTransformFeedbackStreamInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalCoord1dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalCoord1fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalCoord2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalCoord2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFogCoorddv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFogCoordfv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFogfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFogiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFramebufferParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetAttribLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetColorTable": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetCompressedTexImage": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetConvolutionFilter": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetFragDataIndex": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetFragDataLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetHistogram": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetMinmax": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetProgramResourceIndex": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetProgramResourceLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetProgramResourceLocationIndex": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetSeparableFilter": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetSubroutineIndex": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetSubroutineUniformLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetTexImage": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetUniformBlockIndex": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetUniformLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexdv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexfv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexsv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glInvalidateBufferData": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glInvalidateFramebuffer": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glInvalidateSubFramebuffer": ('int', 'int', 'typing.Sequence', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glInvalidateTexImage": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glInvalidateTexSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLightModelfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLightModeliv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLightfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLightiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLoadMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLoadMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLoadTransposeMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLoadTransposeMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMaterialfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMaterialiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMemoryBarrier": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultTransposeMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultTransposeMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiDrawArrays": ('int', 'typing.Sequence', 'typing.Sequence', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiDrawArraysIndirect": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord1dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord1fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord1iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord1sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord2dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord2fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord2iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord2sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord3dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord3fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord3iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord3sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord4dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord4fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord4iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord4sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormal3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormal3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormal3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormal3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormal3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormalP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glObjectLabel": ('int', 'int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glObjectPtrLabel": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPatchParameterfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPixelMapfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPixelMapuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPixelMapusv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPointParameterfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPointParameteriv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPopDebugGroup": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPrioritizeTextures": ('int', 'typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform1d": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform1dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform2d": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform3d": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform4d": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix2dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix2x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix2x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix3dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix3x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix3x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix4dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix4x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix4x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPushDebugGroup": ('int', 'int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glReadPixels": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRectdv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRectfv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRectiv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRectsv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glReleaseShaderCompiler": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSamplerParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSamplerParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glScissorArrayv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glScissorIndexed": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glScissorIndexedv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColorP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glShaderBinary": ('int', 'typing.Sequence', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glShaderStorageBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord1dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord1fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord1iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord1sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoordP1uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoordP2uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoordP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoordP4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexEnvfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexEnviv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexGendv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexGenfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexGeniv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexParameterIiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexParameterIuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexStorage1D": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexStorage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexStorage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTextureView": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform1dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform1fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform1iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform1uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform2dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform2fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform2iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform2uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform3dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform3fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform3iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform3uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform4dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform4fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform4iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform4uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glValidateProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib1dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib1fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib1sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib2dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib2fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib2sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib3dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib3fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib3sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4Nbv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4Niv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4Nsv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4Nubv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4Nuiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4Nusv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4bv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4ubv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4usv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribBinding": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI1iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI1uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI2iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI2uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI3iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI4bv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI4iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI4sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI4ubv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI4usv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribIFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribL1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribL1dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribL2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribL2dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribL3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribL3dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribL4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribL4dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribLFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribLPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexBindingDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexP2uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexP4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glViewportArrayv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glViewportIndexedf": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glViewportIndexedfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindAttribLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindBuffersBase": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindBuffersRange": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindFragDataLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindImageTexture": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindImageTextures": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindSamplers": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindTextures": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindVertexBuffers": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearBufferData": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearBufferfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearBufferiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearBufferuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearDepthf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearTexImage": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearTexSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCopyImageSubData": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDebugMessageControl": ('int', 'int', 'int', 'int', 'typing.Sequence', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDebugMessageInsert": ('int', 'int', 'int', 'int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteFramebuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteProgramPipelines": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteQueries": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteRenderbuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteSamplers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteTextures": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteTransformFeedbacks": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteVertexArrays": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDepthRangeArrayv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDepthRangeIndexed": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDepthRangef": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDispatchCompute": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawArraysInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawElementsInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawElementsInstancedBaseVertexBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawTransformFeedbackInstanced": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawTransformFeedbackStreamInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glFramebufferParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetAttribLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetCompressedTexImage": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetFragDataIndex": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetFragDataLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetProgramResourceIndex": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetProgramResourceLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetProgramResourceLocationIndex": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetSubroutineIndex": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetSubroutineUniformLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetTexImage": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetUniformBlockIndex": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetUniformLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glInvalidateBufferData": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glInvalidateFramebuffer": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glInvalidateSubFramebuffer": ('int', 'int', 'typing.Sequence', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glInvalidateTexImage": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glInvalidateTexSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glMemoryBarrier": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glMultiDrawArrays": ('int', 'typing.Sequence', 'typing.Sequence', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glMultiDrawArraysIndirect": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glObjectLabel": ('int', 'int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glObjectPtrLabel": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPatchParameterfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPointParameterfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPointParameteriv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPopDebugGroup": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform1d": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform1dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform2d": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform3d": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform4d": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix2dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix2x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix2x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix3dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix3x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix3x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix4dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix4x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix4x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPushDebugGroup": ('int', 'int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glReadPixels": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glReleaseShaderCompiler": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glSamplerParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glSamplerParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glScissorArrayv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glScissorIndexed": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glScissorIndexedv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glShaderBinary": ('int', 'typing.Sequence', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glShaderStorageBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexParameterIiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexParameterIuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexStorage1D": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexStorage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexStorage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTextureView": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform1dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform1fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform1iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform1uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform2dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform2fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform2iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform2uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform3dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform3fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform3iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform3uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform4dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform4fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform4iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform4uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glValidateProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib1dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib1fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib1sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib2dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib2fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib2sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib3dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib3fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib3sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4Nbv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4Niv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4Nsv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4Nubv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4Nuiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4Nusv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4bv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4ubv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4usv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribBinding": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI1iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI1uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI2iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI2uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI3iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI4bv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI4iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI4sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI4ubv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI4usv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribIFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribL1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribL1dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribL2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribL2dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribL3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribL3dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribL4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribL4dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribLFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribLPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexBindingDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glViewportArrayv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glViewportIndexedf": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glViewportIndexedfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindAttribLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindBuffersBase": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindBuffersRange": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindFragDataLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindImageTexture": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindImageTextures": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindSamplers": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindTextureUnit": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindTextures": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindVertexBuffers": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlitNamedFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCheckNamedFramebufferStatus": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearBufferData": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearBufferfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearBufferiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearBufferuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearDepthf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearNamedBufferData": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearNamedFramebufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearNamedFramebufferfv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearNamedFramebufferiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearNamedFramebufferuiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearTexImage": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearTexSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClipControl": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClipPlane": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorP4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorTableParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorTableParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCompressedTextureSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCompressedTextureSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCompressedTextureSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyImageSubData": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyTextureSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyTextureSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyTextureSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDebugMessageControl": ('int', 'int', 'int', 'int', 'typing.Sequence', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDebugMessageInsert": ('int', 'int', 'int', 'int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteFramebuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteProgramPipelines": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteQueries": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteRenderbuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteSamplers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteTextures": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteTransformFeedbacks": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteVertexArrays": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDepthRangeArrayv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDepthRangeIndexed": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDepthRangef": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDisableVertexArrayAttrib": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDispatchCompute": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawArraysInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawElementsInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawElementsInstancedBaseVertexBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawTransformFeedbackInstanced": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawTransformFeedbackStreamInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEnableVertexArrayAttrib": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalCoord1dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalCoord1fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalCoord2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalCoord2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFogCoorddv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFogCoordfv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFogfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFogiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFramebufferParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGenerateTextureMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetAttribLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetColorTable": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetCompressedTexImage": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetCompressedTextureImage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetCompressedTextureSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetConvolutionFilter": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetFragDataIndex": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetFragDataLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetGraphicsResetStatus": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetHistogram": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetMinmax": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetProgramResourceIndex": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetProgramResourceLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetProgramResourceLocationIndex": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetSeparableFilter": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetSubroutineIndex": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetSubroutineUniformLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetTexImage": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetTextureImage": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetTextureSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetUniformBlockIndex": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetUniformLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetnColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetnCompressedTexImage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetnConvolutionFilter": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetnHistogram": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetnMinmax": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetnSeparableFilter": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetnTexImage": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexdv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexfv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexsv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glInvalidateBufferData": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glInvalidateFramebuffer": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glInvalidateNamedFramebufferData": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glInvalidateNamedFramebufferSubData": ('int', 'int', 'typing.Sequence', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glInvalidateSubFramebuffer": ('int', 'int', 'typing.Sequence', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glInvalidateTexImage": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glInvalidateTexSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLightModelfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLightModeliv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLightfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLightiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLoadMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLoadMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLoadTransposeMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLoadTransposeMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMapNamedBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMaterialfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMaterialiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMemoryBarrier": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMemoryBarrierByRegion": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultTransposeMatrixd": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultTransposeMatrixf": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiDrawArrays": ('int', 'typing.Sequence', 'typing.Sequence', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiDrawArraysIndirect": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord1dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord1fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord1iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord1sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord2dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord2fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord2iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord2sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord3dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord3fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord3iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord3sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord4dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord4fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord4iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord4sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedBufferData": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedBufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedFramebufferDrawBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedFramebufferDrawBuffers": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedFramebufferParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedFramebufferReadBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormal3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormal3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormal3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormal3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormal3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormalP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glObjectLabel": ('int', 'int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glObjectPtrLabel": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPatchParameterfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPixelMapfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPixelMapuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPixelMapusv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPointParameterfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPointParameteriv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPopDebugGroup": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPrioritizeTextures": ('int', 'typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform1d": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform1dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform2d": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform3d": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform4d": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix2dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix2x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix2x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix3dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix3x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix3x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix4dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix4x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix4x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPushDebugGroup": ('int', 'int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glReadPixels": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glReadnPixels": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRectdv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRectfv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRectiv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRectsv": ('typing.Sequence', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glReleaseShaderCompiler": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSamplerParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSamplerParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glScissorArrayv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glScissorIndexed": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glScissorIndexedv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3bv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3ubv": ('bytes',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3uiv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3usv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColorP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glShaderBinary": ('int', 'typing.Sequence', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glShaderStorageBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord1dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord1fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord1iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord1sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoordP1uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoordP2uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoordP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoordP4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexEnvfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexEnviv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexGendv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexGenfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexGeniv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexParameterIiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexParameterIuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexStorage1D": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexStorage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexStorage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureBarrier": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureParameterIiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureParameterIuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureStorage1D": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureStorage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureStorage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureView": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTransformFeedbackBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform1dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform1fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform1iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform1uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform2dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform2fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform2iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform2uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform3dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform3fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform3iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform3uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform4dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform4fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform4iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform4uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUnmapNamedBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glValidateProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex4dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex4fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex4iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex4sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexArrayAttribBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexArrayAttribFormat": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexArrayAttribIFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexArrayAttribLFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexArrayBindingDivisor": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexArrayElementBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexArrayVertexBuffers": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib1dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib1fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib1sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib2dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib2fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib2sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib3dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib3fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib3sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4Nbv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4Niv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4Nsv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4Nubv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4Nuiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4Nusv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4bv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4ubv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4usv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribBinding": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI1iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI1uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI2iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI2uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI3iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI4bv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI4iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI4sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI4ubv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI4usv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribIFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribL1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribL1dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribL2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribL2dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribL3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribL3dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribL4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribL4dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribLFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribLPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexBindingDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexP2uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexP3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexP4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glViewportArrayv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glViewportIndexedf": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glViewportIndexedfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos2dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos2fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos2iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos2sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos3dv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos3fv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos3iv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos3sv": ('typing.Sequence',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindAttribLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindBuffersBase": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindBuffersRange": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindFragDataLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindImageTexture": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindImageTextures": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindSamplers": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindTextureUnit": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindTextures": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindVertexBuffers": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlitNamedFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCheckNamedFramebufferStatus": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearBufferData": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearBufferfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearBufferiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearBufferuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearDepthf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearNamedBufferData": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearNamedFramebufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearNamedFramebufferfv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearNamedFramebufferiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearNamedFramebufferuiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearTexImage": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearTexSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClipControl": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCompressedTextureSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCompressedTextureSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCompressedTextureSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCopyImageSubData": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCopyTextureSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCopyTextureSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCopyTextureSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDebugMessageControl": ('int', 'int', 'int', 'int', 'typing.Sequence', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDebugMessageInsert": ('int', 'int', 'int', 'int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteFramebuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteProgramPipelines": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteQueries": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteRenderbuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteSamplers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteTextures": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteTransformFeedbacks": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteVertexArrays": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDepthRangeArrayv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDepthRangeIndexed": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDepthRangef": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDisableVertexArrayAttrib": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDispatchCompute": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawArraysInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawBuffers": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawElementsInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawElementsInstancedBaseVertexBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawTransformFeedbackInstanced": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawTransformFeedbackStreamInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glEnableVertexArrayAttrib": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glFramebufferParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGenerateTextureMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetAttribLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetCompressedTexImage": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetCompressedTextureImage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetCompressedTextureSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetFragDataIndex": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetFragDataLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetGraphicsResetStatus": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetProgramResourceIndex": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetProgramResourceLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetProgramResourceLocationIndex": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetSubroutineIndex": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetSubroutineUniformLocation": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetTexImage": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetTextureImage": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetTextureSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetUniformBlockIndex": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetUniformLocation": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetnCompressedTexImage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetnTexImage": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glInvalidateBufferData": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glInvalidateFramebuffer": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glInvalidateNamedFramebufferData": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glInvalidateNamedFramebufferSubData": ('int', 'int', 'typing.Sequence', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glInvalidateSubFramebuffer": ('int', 'int', 'typing.Sequence', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glInvalidateTexImage": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glInvalidateTexSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glMapNamedBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glMemoryBarrier": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glMemoryBarrierByRegion": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glMultiDrawArrays": ('int', 'typing.Sequence', 'typing.Sequence', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glMultiDrawArraysIndirect": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedBufferData": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedBufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedFramebufferDrawBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedFramebufferDrawBuffers": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedFramebufferParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedFramebufferReadBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glObjectLabel": ('int', 'int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glObjectPtrLabel": ('int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPatchParameterfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPointParameterfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPointParameteriv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPopDebugGroup": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform1d": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform1dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform2d": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform3d": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform4d": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix2dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix2x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix2x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix3dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix3x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix3x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix4dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix4x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix4x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPushDebugGroup": ('int', 'int', 'int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glReadPixels": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glReadnPixels": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glReleaseShaderCompiler": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glSamplerParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glSamplerParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glScissorArrayv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glScissorIndexed": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glScissorIndexedv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glShaderBinary": ('int', 'typing.Sequence', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glShaderStorageBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexParameterIiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexParameterIuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexStorage1D": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexStorage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexStorage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureBarrier": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureParameterIiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureParameterIuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureParameterfv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureParameteriv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureStorage1D": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureStorage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureStorage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureView": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTransformFeedbackBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform1dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform1fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform1iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform1uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform2dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform2fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform2iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform2uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform3dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform3fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform3iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform3uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform4dv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform4fv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform4iv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform4uiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUnmapNamedBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glValidateProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexArrayAttribBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexArrayAttribFormat": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexArrayAttribIFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexArrayAttribLFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexArrayBindingDivisor": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexArrayElementBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexArrayVertexBuffers": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib1dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib1fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib1sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib2dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib2fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib2sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib3dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib3fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib3sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4Nbv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4Niv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4Nsv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4Nubv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4Nuiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4Nusv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4bv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4fv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4ubv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4usv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribBinding": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI1iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI1uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI2iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI2uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI3iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI3uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI4bv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI4iv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI4sv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI4ubv": ('int', 'bytes'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI4uiv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI4usv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribIFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribL1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribL1dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribL2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribL2dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribL3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribL3dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribL4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribL4dv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribLFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribLPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexBindingDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glViewportArrayv": ('int', 'int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glViewportIndexedf": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glViewportIndexedfv": ('int', 'typing.Sequence'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.initializeOpenGLFunctions": (),
- }) if "PySide2.QtOpenGLFunctions" in sys.modules else None
-# Module PySide2.QtPositioning
-sig_dict.update({
-# class PySide2.QtPositioning.QGeoAddress:
- "PySide2.QtPositioning.QGeoAddress.__init__": [(), ('PySide2.QtPositioning.QGeoAddress',)],
- "PySide2.QtPositioning.QGeoAddress.__copy__": (),
- "PySide2.QtPositioning.QGeoAddress.city": (),
- "PySide2.QtPositioning.QGeoAddress.clear": (),
- "PySide2.QtPositioning.QGeoAddress.country": (),
- "PySide2.QtPositioning.QGeoAddress.countryCode": (),
- "PySide2.QtPositioning.QGeoAddress.county": (),
- "PySide2.QtPositioning.QGeoAddress.district": (),
- "PySide2.QtPositioning.QGeoAddress.isEmpty": (),
- "PySide2.QtPositioning.QGeoAddress.isTextGenerated": (),
- "PySide2.QtPositioning.QGeoAddress.postalCode": (),
- "PySide2.QtPositioning.QGeoAddress.setCity": ('str',),
- "PySide2.QtPositioning.QGeoAddress.setCountry": ('str',),
- "PySide2.QtPositioning.QGeoAddress.setCountryCode": ('str',),
- "PySide2.QtPositioning.QGeoAddress.setCounty": ('str',),
- "PySide2.QtPositioning.QGeoAddress.setDistrict": ('str',),
- "PySide2.QtPositioning.QGeoAddress.setPostalCode": ('str',),
- "PySide2.QtPositioning.QGeoAddress.setState": ('str',),
- "PySide2.QtPositioning.QGeoAddress.setStreet": ('str',),
- "PySide2.QtPositioning.QGeoAddress.setText": ('str',),
- "PySide2.QtPositioning.QGeoAddress.state": (),
- "PySide2.QtPositioning.QGeoAddress.street": (),
- "PySide2.QtPositioning.QGeoAddress.text": (),
-# class PySide2.QtPositioning.QGeoAreaMonitorInfo:
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.__init__": [('PySide2.QtPositioning.QGeoAreaMonitorInfo',), ('str',)],
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.__copy__": (),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.area": (),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.expiration": (),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.identifier": (),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.isPersistent": (),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.isValid": (),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.name": (),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.notificationParameters": (),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.setArea": ('PySide2.QtPositioning.QGeoShape',),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.setExpiration": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.setName": ('str',),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.setNotificationParameters": ('typing.Dict',),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.setPersistent": ('bool',),
-# class PySide2.QtPositioning.QGeoAreaMonitorSource:
-# class PySide2.QtPositioning.QGeoAreaMonitorSource.AreaMonitorFeature:
-# class PySide2.QtPositioning.QGeoAreaMonitorSource.AreaMonitorFeatures:
-# class PySide2.QtPositioning.QGeoAreaMonitorSource.Error:
- "PySide2.QtPositioning.QGeoAreaMonitorSource.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.activeMonitors": [(), ('PySide2.QtPositioning.QGeoShape',)],
- "PySide2.QtPositioning.QGeoAreaMonitorSource.availableSources": (),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.createDefaultSource": ('PySide2.QtCore.QObject',),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.createSource": ('str', 'PySide2.QtCore.QObject'),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.error": (),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.positionInfoSource": (),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.requestUpdate": ('PySide2.QtPositioning.QGeoAreaMonitorInfo', 'bytes'),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.setPositionInfoSource": ('PySide2.QtPositioning.QGeoPositionInfoSource',),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.sourceName": (),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.startMonitoring": ('PySide2.QtPositioning.QGeoAreaMonitorInfo',),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.stopMonitoring": ('PySide2.QtPositioning.QGeoAreaMonitorInfo',),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.supportedAreaMonitorFeatures": (),
-# class PySide2.QtPositioning.QGeoCircle:
- "PySide2.QtPositioning.QGeoCircle.__init__": [(), ('PySide2.QtPositioning.QGeoCircle',), ('PySide2.QtPositioning.QGeoCoordinate', 'float'), ('PySide2.QtPositioning.QGeoShape',)],
- "PySide2.QtPositioning.QGeoCircle.__copy__": (),
- "PySide2.QtPositioning.QGeoCircle.center": (),
- "PySide2.QtPositioning.QGeoCircle.extendCircle": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoCircle.radius": (),
- "PySide2.QtPositioning.QGeoCircle.setCenter": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoCircle.setRadius": ('float',),
- "PySide2.QtPositioning.QGeoCircle.toString": (),
- "PySide2.QtPositioning.QGeoCircle.translate": ('float', 'float'),
- "PySide2.QtPositioning.QGeoCircle.translated": ('float', 'float'),
-# class PySide2.QtPositioning.QGeoCoordinate:
-# class PySide2.QtPositioning.QGeoCoordinate.CoordinateFormat:
-# class PySide2.QtPositioning.QGeoCoordinate.CoordinateType:
- "PySide2.QtPositioning.QGeoCoordinate.__init__": [(), ('PySide2.QtPositioning.QGeoCoordinate',), ('float', 'float'), ('float', 'float', 'float')],
- "PySide2.QtPositioning.QGeoCoordinate.__copy__": (),
- "PySide2.QtPositioning.QGeoCoordinate.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtPositioning.QGeoCoordinate.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtPositioning.QGeoCoordinate.altitude": (),
- "PySide2.QtPositioning.QGeoCoordinate.atDistanceAndAzimuth": ('float', 'float', 'float'),
- "PySide2.QtPositioning.QGeoCoordinate.azimuthTo": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoCoordinate.distanceTo": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoCoordinate.isValid": (),
- "PySide2.QtPositioning.QGeoCoordinate.latitude": (),
- "PySide2.QtPositioning.QGeoCoordinate.longitude": (),
- "PySide2.QtPositioning.QGeoCoordinate.setAltitude": ('float',),
- "PySide2.QtPositioning.QGeoCoordinate.setLatitude": ('float',),
- "PySide2.QtPositioning.QGeoCoordinate.setLongitude": ('float',),
- "PySide2.QtPositioning.QGeoCoordinate.toString": ('PySide2.QtPositioning.QGeoCoordinate.CoordinateFormat',),
- "PySide2.QtPositioning.QGeoCoordinate.type": (),
-# class PySide2.QtPositioning.QGeoLocation:
- "PySide2.QtPositioning.QGeoLocation.__init__": [(), ('PySide2.QtPositioning.QGeoLocation',)],
- "PySide2.QtPositioning.QGeoLocation.__copy__": (),
- "PySide2.QtPositioning.QGeoLocation.address": (),
- "PySide2.QtPositioning.QGeoLocation.boundingBox": (),
- "PySide2.QtPositioning.QGeoLocation.coordinate": (),
- "PySide2.QtPositioning.QGeoLocation.extendedAttributes": (),
- "PySide2.QtPositioning.QGeoLocation.isEmpty": (),
- "PySide2.QtPositioning.QGeoLocation.setAddress": ('PySide2.QtPositioning.QGeoAddress',),
- "PySide2.QtPositioning.QGeoLocation.setBoundingBox": ('PySide2.QtPositioning.QGeoRectangle',),
- "PySide2.QtPositioning.QGeoLocation.setCoordinate": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoLocation.setExtendedAttributes": ('typing.Dict',),
-# class PySide2.QtPositioning.QGeoPath:
- "PySide2.QtPositioning.QGeoPath.__init__": [(), ('PySide2.QtPositioning.QGeoPath',), ('PySide2.QtPositioning.QGeoShape',), ('typing.Sequence', 'float')],
- "PySide2.QtPositioning.QGeoPath.__copy__": (),
- "PySide2.QtPositioning.QGeoPath.addCoordinate": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoPath.clearPath": (),
- "PySide2.QtPositioning.QGeoPath.containsCoordinate": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoPath.coordinateAt": ('int',),
- "PySide2.QtPositioning.QGeoPath.insertCoordinate": ('int', 'PySide2.QtPositioning.QGeoCoordinate'),
- "PySide2.QtPositioning.QGeoPath.length": ('int', 'int'),
- "PySide2.QtPositioning.QGeoPath.path": (),
- "PySide2.QtPositioning.QGeoPath.removeCoordinate": [('PySide2.QtPositioning.QGeoCoordinate',), ('int',)],
- "PySide2.QtPositioning.QGeoPath.replaceCoordinate": ('int', 'PySide2.QtPositioning.QGeoCoordinate'),
- "PySide2.QtPositioning.QGeoPath.setPath": ('typing.Sequence',),
- "PySide2.QtPositioning.QGeoPath.setVariantPath": ('typing.Sequence',),
- "PySide2.QtPositioning.QGeoPath.setWidth": ('float',),
- "PySide2.QtPositioning.QGeoPath.size": (),
- "PySide2.QtPositioning.QGeoPath.toString": (),
- "PySide2.QtPositioning.QGeoPath.translate": ('float', 'float'),
- "PySide2.QtPositioning.QGeoPath.translated": ('float', 'float'),
- "PySide2.QtPositioning.QGeoPath.variantPath": (),
- "PySide2.QtPositioning.QGeoPath.width": (),
-# class PySide2.QtPositioning.QGeoPolygon:
- "PySide2.QtPositioning.QGeoPolygon.__init__": [(), ('PySide2.QtPositioning.QGeoPolygon',), ('PySide2.QtPositioning.QGeoShape',), ('typing.Sequence',)],
- "PySide2.QtPositioning.QGeoPolygon.__copy__": (),
- "PySide2.QtPositioning.QGeoPolygon.addCoordinate": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoPolygon.addHole": [('typing.Any',), ('typing.Sequence',)],
- "PySide2.QtPositioning.QGeoPolygon.containsCoordinate": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoPolygon.coordinateAt": ('int',),
- "PySide2.QtPositioning.QGeoPolygon.hole": ('int',),
- "PySide2.QtPositioning.QGeoPolygon.holePath": ('int',),
- "PySide2.QtPositioning.QGeoPolygon.holesCount": (),
- "PySide2.QtPositioning.QGeoPolygon.insertCoordinate": ('int', 'PySide2.QtPositioning.QGeoCoordinate'),
- "PySide2.QtPositioning.QGeoPolygon.length": ('int', 'int'),
- "PySide2.QtPositioning.QGeoPolygon.path": (),
- "PySide2.QtPositioning.QGeoPolygon.perimeter": (),
- "PySide2.QtPositioning.QGeoPolygon.removeCoordinate": [('PySide2.QtPositioning.QGeoCoordinate',), ('int',)],
- "PySide2.QtPositioning.QGeoPolygon.removeHole": ('int',),
- "PySide2.QtPositioning.QGeoPolygon.replaceCoordinate": ('int', 'PySide2.QtPositioning.QGeoCoordinate'),
- "PySide2.QtPositioning.QGeoPolygon.setPath": ('typing.Sequence',),
- "PySide2.QtPositioning.QGeoPolygon.setPerimeter": ('typing.Sequence',),
- "PySide2.QtPositioning.QGeoPolygon.size": (),
- "PySide2.QtPositioning.QGeoPolygon.toString": (),
- "PySide2.QtPositioning.QGeoPolygon.translate": ('float', 'float'),
- "PySide2.QtPositioning.QGeoPolygon.translated": ('float', 'float'),
-# class PySide2.QtPositioning.QGeoPositionInfo:
-# class PySide2.QtPositioning.QGeoPositionInfo.Attribute:
- "PySide2.QtPositioning.QGeoPositionInfo.__init__": [(), ('PySide2.QtPositioning.QGeoCoordinate', 'PySide2.QtCore.QDateTime'), ('PySide2.QtPositioning.QGeoPositionInfo',)],
- "PySide2.QtPositioning.QGeoPositionInfo.__copy__": (),
- "PySide2.QtPositioning.QGeoPositionInfo.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtPositioning.QGeoPositionInfo.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtPositioning.QGeoPositionInfo.attribute": ('PySide2.QtPositioning.QGeoPositionInfo.Attribute',),
- "PySide2.QtPositioning.QGeoPositionInfo.coordinate": (),
- "PySide2.QtPositioning.QGeoPositionInfo.hasAttribute": ('PySide2.QtPositioning.QGeoPositionInfo.Attribute',),
- "PySide2.QtPositioning.QGeoPositionInfo.isValid": (),
- "PySide2.QtPositioning.QGeoPositionInfo.removeAttribute": ('PySide2.QtPositioning.QGeoPositionInfo.Attribute',),
- "PySide2.QtPositioning.QGeoPositionInfo.setAttribute": ('PySide2.QtPositioning.QGeoPositionInfo.Attribute', 'float'),
- "PySide2.QtPositioning.QGeoPositionInfo.setCoordinate": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoPositionInfo.setTimestamp": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtPositioning.QGeoPositionInfo.timestamp": (),
-# class PySide2.QtPositioning.QGeoPositionInfoSource:
-# class PySide2.QtPositioning.QGeoPositionInfoSource.Error:
-# class PySide2.QtPositioning.QGeoPositionInfoSource.PositioningMethod:
-# class PySide2.QtPositioning.QGeoPositionInfoSource.PositioningMethods:
- "PySide2.QtPositioning.QGeoPositionInfoSource.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtPositioning.QGeoPositionInfoSource.availableSources": (),
- "PySide2.QtPositioning.QGeoPositionInfoSource.backendProperty": ('str',),
- "PySide2.QtPositioning.QGeoPositionInfoSource.createDefaultSource": [('PySide2.QtCore.QObject',), ('typing.Dict', 'PySide2.QtCore.QObject')],
- "PySide2.QtPositioning.QGeoPositionInfoSource.createSource": [('str', 'PySide2.QtCore.QObject'), ('str', 'typing.Dict', 'PySide2.QtCore.QObject')],
- "PySide2.QtPositioning.QGeoPositionInfoSource.error": (),
- "PySide2.QtPositioning.QGeoPositionInfoSource.lastKnownPosition": ('bool',),
- "PySide2.QtPositioning.QGeoPositionInfoSource.minimumUpdateInterval": (),
- "PySide2.QtPositioning.QGeoPositionInfoSource.preferredPositioningMethods": (),
- "PySide2.QtPositioning.QGeoPositionInfoSource.requestUpdate": ('int',),
- "PySide2.QtPositioning.QGeoPositionInfoSource.setBackendProperty": ('str', 'typing.Any'),
- "PySide2.QtPositioning.QGeoPositionInfoSource.setPreferredPositioningMethods": ('PySide2.QtPositioning.QGeoPositionInfoSource.PositioningMethods',),
- "PySide2.QtPositioning.QGeoPositionInfoSource.setUpdateInterval": ('int',),
- "PySide2.QtPositioning.QGeoPositionInfoSource.sourceName": (),
- "PySide2.QtPositioning.QGeoPositionInfoSource.startUpdates": (),
- "PySide2.QtPositioning.QGeoPositionInfoSource.stopUpdates": (),
- "PySide2.QtPositioning.QGeoPositionInfoSource.supportedPositioningMethods": (),
- "PySide2.QtPositioning.QGeoPositionInfoSource.updateInterval": (),
-# class PySide2.QtPositioning.QGeoPositionInfoSourceFactory:
- "PySide2.QtPositioning.QGeoPositionInfoSourceFactory.__init__": (),
- "PySide2.QtPositioning.QGeoPositionInfoSourceFactory.areaMonitor": ('PySide2.QtCore.QObject',),
- "PySide2.QtPositioning.QGeoPositionInfoSourceFactory.positionInfoSource": ('PySide2.QtCore.QObject',),
- "PySide2.QtPositioning.QGeoPositionInfoSourceFactory.satelliteInfoSource": ('PySide2.QtCore.QObject',),
-# class PySide2.QtPositioning.QGeoRectangle:
- "PySide2.QtPositioning.QGeoRectangle.__init__": [(), ('PySide2.QtPositioning.QGeoCoordinate', 'PySide2.QtPositioning.QGeoCoordinate'), ('PySide2.QtPositioning.QGeoCoordinate', 'float', 'float'), ('PySide2.QtPositioning.QGeoRectangle',), ('PySide2.QtPositioning.QGeoShape',), ('typing.Sequence',)],
- "PySide2.QtPositioning.QGeoRectangle.__copy__": (),
- "PySide2.QtPositioning.QGeoRectangle.__ior__": ('PySide2.QtPositioning.QGeoRectangle',),
- "PySide2.QtPositioning.QGeoRectangle.__or__": ('PySide2.QtPositioning.QGeoRectangle',),
- "PySide2.QtPositioning.QGeoRectangle.bottomLeft": (),
- "PySide2.QtPositioning.QGeoRectangle.bottomRight": (),
- "PySide2.QtPositioning.QGeoRectangle.center": (),
- "PySide2.QtPositioning.QGeoRectangle.contains": [('PySide2.QtPositioning.QGeoCoordinate',), ('PySide2.QtPositioning.QGeoRectangle',)],
- "PySide2.QtPositioning.QGeoRectangle.extendRectangle": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoRectangle.height": (),
- "PySide2.QtPositioning.QGeoRectangle.intersects": ('PySide2.QtPositioning.QGeoRectangle',),
- "PySide2.QtPositioning.QGeoRectangle.setBottomLeft": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoRectangle.setBottomRight": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoRectangle.setCenter": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoRectangle.setHeight": ('float',),
- "PySide2.QtPositioning.QGeoRectangle.setTopLeft": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoRectangle.setTopRight": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoRectangle.setWidth": ('float',),
- "PySide2.QtPositioning.QGeoRectangle.toString": (),
- "PySide2.QtPositioning.QGeoRectangle.topLeft": (),
- "PySide2.QtPositioning.QGeoRectangle.topRight": (),
- "PySide2.QtPositioning.QGeoRectangle.translate": ('float', 'float'),
- "PySide2.QtPositioning.QGeoRectangle.translated": ('float', 'float'),
- "PySide2.QtPositioning.QGeoRectangle.united": ('PySide2.QtPositioning.QGeoRectangle',),
- "PySide2.QtPositioning.QGeoRectangle.width": (),
-# class PySide2.QtPositioning.QGeoSatelliteInfo:
-# class PySide2.QtPositioning.QGeoSatelliteInfo.Attribute:
-# class PySide2.QtPositioning.QGeoSatelliteInfo.SatelliteSystem:
- "PySide2.QtPositioning.QGeoSatelliteInfo.__init__": [(), ('PySide2.QtPositioning.QGeoSatelliteInfo',)],
- "PySide2.QtPositioning.QGeoSatelliteInfo.__copy__": (),
- "PySide2.QtPositioning.QGeoSatelliteInfo.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtPositioning.QGeoSatelliteInfo.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtPositioning.QGeoSatelliteInfo.attribute": ('PySide2.QtPositioning.QGeoSatelliteInfo.Attribute',),
- "PySide2.QtPositioning.QGeoSatelliteInfo.hasAttribute": ('PySide2.QtPositioning.QGeoSatelliteInfo.Attribute',),
- "PySide2.QtPositioning.QGeoSatelliteInfo.removeAttribute": ('PySide2.QtPositioning.QGeoSatelliteInfo.Attribute',),
- "PySide2.QtPositioning.QGeoSatelliteInfo.satelliteIdentifier": (),
- "PySide2.QtPositioning.QGeoSatelliteInfo.satelliteSystem": (),
- "PySide2.QtPositioning.QGeoSatelliteInfo.setAttribute": ('PySide2.QtPositioning.QGeoSatelliteInfo.Attribute', 'float'),
- "PySide2.QtPositioning.QGeoSatelliteInfo.setSatelliteIdentifier": ('int',),
- "PySide2.QtPositioning.QGeoSatelliteInfo.setSatelliteSystem": ('PySide2.QtPositioning.QGeoSatelliteInfo.SatelliteSystem',),
- "PySide2.QtPositioning.QGeoSatelliteInfo.setSignalStrength": ('int',),
- "PySide2.QtPositioning.QGeoSatelliteInfo.signalStrength": (),
-# class PySide2.QtPositioning.QGeoSatelliteInfoSource:
-# class PySide2.QtPositioning.QGeoSatelliteInfoSource.Error:
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.availableSources": (),
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.createDefaultSource": [('PySide2.QtCore.QObject',), ('typing.Dict', 'PySide2.QtCore.QObject')],
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.createSource": [('str', 'PySide2.QtCore.QObject'), ('str', 'typing.Dict', 'PySide2.QtCore.QObject')],
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.error": (),
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.minimumUpdateInterval": (),
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.requestUpdate": ('int',),
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.setUpdateInterval": ('int',),
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.sourceName": (),
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.startUpdates": (),
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.stopUpdates": (),
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.updateInterval": (),
-# class PySide2.QtPositioning.QGeoShape:
-# class PySide2.QtPositioning.QGeoShape.ShapeType:
- "PySide2.QtPositioning.QGeoShape.__init__": [(), ('PySide2.QtPositioning.QGeoShape',)],
- "PySide2.QtPositioning.QGeoShape.__copy__": (),
- "PySide2.QtPositioning.QGeoShape.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtPositioning.QGeoShape.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtPositioning.QGeoShape.boundingGeoRectangle": (),
- "PySide2.QtPositioning.QGeoShape.center": (),
- "PySide2.QtPositioning.QGeoShape.contains": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoShape.extendShape": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoShape.isEmpty": (),
- "PySide2.QtPositioning.QGeoShape.isValid": (),
- "PySide2.QtPositioning.QGeoShape.toString": (),
- "PySide2.QtPositioning.QGeoShape.type": (),
-# class PySide2.QtPositioning.QNmeaPositionInfoSource:
-# class PySide2.QtPositioning.QNmeaPositionInfoSource.UpdateMode:
- "PySide2.QtPositioning.QNmeaPositionInfoSource.__init__": ('PySide2.QtPositioning.QNmeaPositionInfoSource.UpdateMode', 'PySide2.QtCore.QObject'),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.device": (),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.error": (),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.lastKnownPosition": ('bool',),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.minimumUpdateInterval": (),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.parsePosInfoFromNmeaData": ('bytes', 'int', 'PySide2.QtPositioning.QGeoPositionInfo'),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.requestUpdate": ('int',),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.setUpdateInterval": ('int',),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.setUserEquivalentRangeError": ('float',),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.startUpdates": (),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.stopUpdates": (),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.supportedPositioningMethods": (),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.updateMode": (),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.userEquivalentRangeError": (),
- }) if "PySide2.QtPositioning" in sys.modules else None
-# Module PySide2.QtLocation
-sig_dict.update({
-# class PySide2.QtLocation.QGeoCodeReply:
-# class PySide2.QtLocation.QGeoCodeReply.Error:
- "PySide2.QtLocation.QGeoCodeReply.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtLocation.QGeoCodeReply.Error', 'str', 'PySide2.QtCore.QObject')],
- "PySide2.QtLocation.QGeoCodeReply.abort": (),
- "PySide2.QtLocation.QGeoCodeReply.addLocation": ('PySide2.QtPositioning.QGeoLocation',),
- "PySide2.QtLocation.QGeoCodeReply.error": (),
- "PySide2.QtLocation.QGeoCodeReply.errorString": (),
- "PySide2.QtLocation.QGeoCodeReply.isFinished": (),
- "PySide2.QtLocation.QGeoCodeReply.limit": (),
- "PySide2.QtLocation.QGeoCodeReply.locations": (),
- "PySide2.QtLocation.QGeoCodeReply.offset": (),
- "PySide2.QtLocation.QGeoCodeReply.setError": ('PySide2.QtLocation.QGeoCodeReply.Error', 'str'),
- "PySide2.QtLocation.QGeoCodeReply.setFinished": ('bool',),
- "PySide2.QtLocation.QGeoCodeReply.setLimit": ('int',),
- "PySide2.QtLocation.QGeoCodeReply.setLocations": ('typing.Sequence',),
- "PySide2.QtLocation.QGeoCodeReply.setOffset": ('int',),
- "PySide2.QtLocation.QGeoCodeReply.setViewport": ('PySide2.QtPositioning.QGeoShape',),
- "PySide2.QtLocation.QGeoCodeReply.viewport": (),
-# class PySide2.QtLocation.QGeoCodingManager:
- "PySide2.QtLocation.QGeoCodingManager.geocode": [('PySide2.QtPositioning.QGeoAddress', 'PySide2.QtPositioning.QGeoShape'), ('str', 'int', 'int', 'PySide2.QtPositioning.QGeoShape')],
- "PySide2.QtLocation.QGeoCodingManager.locale": (),
- "PySide2.QtLocation.QGeoCodingManager.managerName": (),
- "PySide2.QtLocation.QGeoCodingManager.managerVersion": (),
- "PySide2.QtLocation.QGeoCodingManager.reverseGeocode": ('PySide2.QtPositioning.QGeoCoordinate', 'PySide2.QtPositioning.QGeoShape'),
- "PySide2.QtLocation.QGeoCodingManager.setLocale": ('PySide2.QtCore.QLocale',),
-# class PySide2.QtLocation.QGeoCodingManagerEngine:
- "PySide2.QtLocation.QGeoCodingManagerEngine.__init__": ('typing.Dict', 'PySide2.QtCore.QObject'),
- "PySide2.QtLocation.QGeoCodingManagerEngine.geocode": [('PySide2.QtPositioning.QGeoAddress', 'PySide2.QtPositioning.QGeoShape'), ('str', 'int', 'int', 'PySide2.QtPositioning.QGeoShape')],
- "PySide2.QtLocation.QGeoCodingManagerEngine.locale": (),
- "PySide2.QtLocation.QGeoCodingManagerEngine.managerName": (),
- "PySide2.QtLocation.QGeoCodingManagerEngine.managerVersion": (),
- "PySide2.QtLocation.QGeoCodingManagerEngine.reverseGeocode": ('PySide2.QtPositioning.QGeoCoordinate', 'PySide2.QtPositioning.QGeoShape'),
- "PySide2.QtLocation.QGeoCodingManagerEngine.setLocale": ('PySide2.QtCore.QLocale',),
-# class PySide2.QtLocation.QGeoManeuver:
-# class PySide2.QtLocation.QGeoManeuver.InstructionDirection:
- "PySide2.QtLocation.QGeoManeuver.__init__": [(), ('PySide2.QtLocation.QGeoManeuver',)],
- "PySide2.QtLocation.QGeoManeuver.__copy__": (),
- "PySide2.QtLocation.QGeoManeuver.direction": (),
- "PySide2.QtLocation.QGeoManeuver.distanceToNextInstruction": (),
- "PySide2.QtLocation.QGeoManeuver.extendedAttributes": (),
- "PySide2.QtLocation.QGeoManeuver.instructionText": (),
- "PySide2.QtLocation.QGeoManeuver.isValid": (),
- "PySide2.QtLocation.QGeoManeuver.position": (),
- "PySide2.QtLocation.QGeoManeuver.setDirection": ('PySide2.QtLocation.QGeoManeuver.InstructionDirection',),
- "PySide2.QtLocation.QGeoManeuver.setDistanceToNextInstruction": ('float',),
- "PySide2.QtLocation.QGeoManeuver.setExtendedAttributes": ('typing.Dict',),
- "PySide2.QtLocation.QGeoManeuver.setInstructionText": ('str',),
- "PySide2.QtLocation.QGeoManeuver.setPosition": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtLocation.QGeoManeuver.setTimeToNextInstruction": ('int',),
- "PySide2.QtLocation.QGeoManeuver.setWaypoint": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtLocation.QGeoManeuver.timeToNextInstruction": (),
- "PySide2.QtLocation.QGeoManeuver.waypoint": (),
-# class PySide2.QtLocation.QGeoRoute:
- "PySide2.QtLocation.QGeoRoute.__init__": [(), ('PySide2.QtLocation.QGeoRoute',)],
- "PySide2.QtLocation.QGeoRoute.__copy__": (),
- "PySide2.QtLocation.QGeoRoute.bounds": (),
- "PySide2.QtLocation.QGeoRoute.distance": (),
- "PySide2.QtLocation.QGeoRoute.extendedAttributes": (),
- "PySide2.QtLocation.QGeoRoute.firstRouteSegment": (),
- "PySide2.QtLocation.QGeoRoute.path": (),
- "PySide2.QtLocation.QGeoRoute.request": (),
- "PySide2.QtLocation.QGeoRoute.routeId": (),
- "PySide2.QtLocation.QGeoRoute.setBounds": ('PySide2.QtPositioning.QGeoRectangle',),
- "PySide2.QtLocation.QGeoRoute.setDistance": ('float',),
- "PySide2.QtLocation.QGeoRoute.setExtendedAttributes": ('typing.Dict',),
- "PySide2.QtLocation.QGeoRoute.setFirstRouteSegment": ('PySide2.QtLocation.QGeoRouteSegment',),
- "PySide2.QtLocation.QGeoRoute.setPath": ('typing.Sequence',),
- "PySide2.QtLocation.QGeoRoute.setRequest": ('PySide2.QtLocation.QGeoRouteRequest',),
- "PySide2.QtLocation.QGeoRoute.setRouteId": ('str',),
- "PySide2.QtLocation.QGeoRoute.setTravelMode": ('PySide2.QtLocation.QGeoRouteRequest.TravelMode',),
- "PySide2.QtLocation.QGeoRoute.setTravelTime": ('int',),
- "PySide2.QtLocation.QGeoRoute.travelMode": (),
- "PySide2.QtLocation.QGeoRoute.travelTime": (),
-# class PySide2.QtLocation.QGeoRouteReply:
-# class PySide2.QtLocation.QGeoRouteReply.Error:
- "PySide2.QtLocation.QGeoRouteReply.__init__": [('PySide2.QtLocation.QGeoRouteReply.Error', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtLocation.QGeoRouteRequest', 'PySide2.QtCore.QObject')],
- "PySide2.QtLocation.QGeoRouteReply.abort": (),
- "PySide2.QtLocation.QGeoRouteReply.addRoutes": ('typing.Sequence',),
- "PySide2.QtLocation.QGeoRouteReply.error": (),
- "PySide2.QtLocation.QGeoRouteReply.errorString": (),
- "PySide2.QtLocation.QGeoRouteReply.isFinished": (),
- "PySide2.QtLocation.QGeoRouteReply.request": (),
- "PySide2.QtLocation.QGeoRouteReply.routes": (),
- "PySide2.QtLocation.QGeoRouteReply.setError": ('PySide2.QtLocation.QGeoRouteReply.Error', 'str'),
- "PySide2.QtLocation.QGeoRouteReply.setFinished": ('bool',),
- "PySide2.QtLocation.QGeoRouteReply.setRoutes": ('typing.Sequence',),
-# class PySide2.QtLocation.QGeoRouteRequest:
-# class PySide2.QtLocation.QGeoRouteRequest.FeatureType:
-# class PySide2.QtLocation.QGeoRouteRequest.FeatureTypes:
-# class PySide2.QtLocation.QGeoRouteRequest.FeatureWeight:
-# class PySide2.QtLocation.QGeoRouteRequest.FeatureWeights:
-# class PySide2.QtLocation.QGeoRouteRequest.ManeuverDetail:
-# class PySide2.QtLocation.QGeoRouteRequest.ManeuverDetails:
-# class PySide2.QtLocation.QGeoRouteRequest.RouteOptimization:
-# class PySide2.QtLocation.QGeoRouteRequest.RouteOptimizations:
-# class PySide2.QtLocation.QGeoRouteRequest.SegmentDetail:
-# class PySide2.QtLocation.QGeoRouteRequest.SegmentDetails:
-# class PySide2.QtLocation.QGeoRouteRequest.TravelMode:
-# class PySide2.QtLocation.QGeoRouteRequest.TravelModes:
- "PySide2.QtLocation.QGeoRouteRequest.__init__": [('PySide2.QtLocation.QGeoRouteRequest',), ('PySide2.QtPositioning.QGeoCoordinate', 'PySide2.QtPositioning.QGeoCoordinate'), ('typing.Sequence',)],
- "PySide2.QtLocation.QGeoRouteRequest.departureTime": (),
- "PySide2.QtLocation.QGeoRouteRequest.excludeAreas": (),
- "PySide2.QtLocation.QGeoRouteRequest.extraParameters": (),
- "PySide2.QtLocation.QGeoRouteRequest.featureTypes": (),
- "PySide2.QtLocation.QGeoRouteRequest.featureWeight": ('PySide2.QtLocation.QGeoRouteRequest.FeatureType',),
- "PySide2.QtLocation.QGeoRouteRequest.maneuverDetail": (),
- "PySide2.QtLocation.QGeoRouteRequest.numberAlternativeRoutes": (),
- "PySide2.QtLocation.QGeoRouteRequest.routeOptimization": (),
- "PySide2.QtLocation.QGeoRouteRequest.segmentDetail": (),
- "PySide2.QtLocation.QGeoRouteRequest.setDepartureTime": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtLocation.QGeoRouteRequest.setExcludeAreas": ('typing.Sequence',),
- "PySide2.QtLocation.QGeoRouteRequest.setExtraParameters": ('typing.Dict',),
- "PySide2.QtLocation.QGeoRouteRequest.setFeatureWeight": ('PySide2.QtLocation.QGeoRouteRequest.FeatureType', 'PySide2.QtLocation.QGeoRouteRequest.FeatureWeight'),
- "PySide2.QtLocation.QGeoRouteRequest.setManeuverDetail": ('PySide2.QtLocation.QGeoRouteRequest.ManeuverDetail',),
- "PySide2.QtLocation.QGeoRouteRequest.setNumberAlternativeRoutes": ('int',),
- "PySide2.QtLocation.QGeoRouteRequest.setRouteOptimization": ('PySide2.QtLocation.QGeoRouteRequest.RouteOptimizations',),
- "PySide2.QtLocation.QGeoRouteRequest.setSegmentDetail": ('PySide2.QtLocation.QGeoRouteRequest.SegmentDetail',),
- "PySide2.QtLocation.QGeoRouteRequest.setTravelModes": ('PySide2.QtLocation.QGeoRouteRequest.TravelModes',),
- "PySide2.QtLocation.QGeoRouteRequest.setWaypoints": ('typing.Sequence',),
- "PySide2.QtLocation.QGeoRouteRequest.setWaypointsMetadata": ('typing.Sequence',),
- "PySide2.QtLocation.QGeoRouteRequest.travelModes": (),
- "PySide2.QtLocation.QGeoRouteRequest.waypoints": (),
- "PySide2.QtLocation.QGeoRouteRequest.waypointsMetadata": (),
-# class PySide2.QtLocation.QGeoRouteSegment:
- "PySide2.QtLocation.QGeoRouteSegment.__init__": [(), ('PySide2.QtLocation.QGeoRouteSegment',)],
- "PySide2.QtLocation.QGeoRouteSegment.__copy__": (),
- "PySide2.QtLocation.QGeoRouteSegment.distance": (),
- "PySide2.QtLocation.QGeoRouteSegment.isLegLastSegment": (),
- "PySide2.QtLocation.QGeoRouteSegment.isValid": (),
- "PySide2.QtLocation.QGeoRouteSegment.maneuver": (),
- "PySide2.QtLocation.QGeoRouteSegment.nextRouteSegment": (),
- "PySide2.QtLocation.QGeoRouteSegment.path": (),
- "PySide2.QtLocation.QGeoRouteSegment.setDistance": ('float',),
- "PySide2.QtLocation.QGeoRouteSegment.setManeuver": ('PySide2.QtLocation.QGeoManeuver',),
- "PySide2.QtLocation.QGeoRouteSegment.setNextRouteSegment": ('PySide2.QtLocation.QGeoRouteSegment',),
- "PySide2.QtLocation.QGeoRouteSegment.setPath": ('typing.Sequence',),
- "PySide2.QtLocation.QGeoRouteSegment.setTravelTime": ('int',),
- "PySide2.QtLocation.QGeoRouteSegment.travelTime": (),
-# class PySide2.QtLocation.QGeoRoutingManager:
- "PySide2.QtLocation.QGeoRoutingManager.calculateRoute": ('PySide2.QtLocation.QGeoRouteRequest',),
- "PySide2.QtLocation.QGeoRoutingManager.locale": (),
- "PySide2.QtLocation.QGeoRoutingManager.managerName": (),
- "PySide2.QtLocation.QGeoRoutingManager.managerVersion": (),
- "PySide2.QtLocation.QGeoRoutingManager.measurementSystem": (),
- "PySide2.QtLocation.QGeoRoutingManager.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtLocation.QGeoRoutingManager.setMeasurementSystem": ('PySide2.QtCore.QLocale.MeasurementSystem',),
- "PySide2.QtLocation.QGeoRoutingManager.supportedFeatureTypes": (),
- "PySide2.QtLocation.QGeoRoutingManager.supportedFeatureWeights": (),
- "PySide2.QtLocation.QGeoRoutingManager.supportedManeuverDetails": (),
- "PySide2.QtLocation.QGeoRoutingManager.supportedRouteOptimizations": (),
- "PySide2.QtLocation.QGeoRoutingManager.supportedSegmentDetails": (),
- "PySide2.QtLocation.QGeoRoutingManager.supportedTravelModes": (),
- "PySide2.QtLocation.QGeoRoutingManager.updateRoute": ('PySide2.QtLocation.QGeoRoute', 'PySide2.QtPositioning.QGeoCoordinate'),
-# class PySide2.QtLocation.QGeoRoutingManagerEngine:
- "PySide2.QtLocation.QGeoRoutingManagerEngine.__init__": ('typing.Dict', 'PySide2.QtCore.QObject'),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.calculateRoute": ('PySide2.QtLocation.QGeoRouteRequest',),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.locale": (),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.managerName": (),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.managerVersion": (),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.measurementSystem": (),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.setMeasurementSystem": ('PySide2.QtCore.QLocale.MeasurementSystem',),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.setSupportedFeatureTypes": ('PySide2.QtLocation.QGeoRouteRequest.FeatureTypes',),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.setSupportedFeatureWeights": ('PySide2.QtLocation.QGeoRouteRequest.FeatureWeights',),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.setSupportedManeuverDetails": ('PySide2.QtLocation.QGeoRouteRequest.ManeuverDetails',),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.setSupportedRouteOptimizations": ('PySide2.QtLocation.QGeoRouteRequest.RouteOptimizations',),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.setSupportedSegmentDetails": ('PySide2.QtLocation.QGeoRouteRequest.SegmentDetails',),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.setSupportedTravelModes": ('PySide2.QtLocation.QGeoRouteRequest.TravelModes',),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.supportedFeatureTypes": (),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.supportedFeatureWeights": (),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.supportedManeuverDetails": (),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.supportedRouteOptimizations": (),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.supportedSegmentDetails": (),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.supportedTravelModes": (),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.updateRoute": ('PySide2.QtLocation.QGeoRoute', 'PySide2.QtPositioning.QGeoCoordinate'),
-# class PySide2.QtLocation.QGeoServiceProvider:
-# class PySide2.QtLocation.QGeoServiceProvider.Error:
-# class PySide2.QtLocation.QGeoServiceProvider.GeocodingFeature:
-# class PySide2.QtLocation.QGeoServiceProvider.GeocodingFeatures:
-# class PySide2.QtLocation.QGeoServiceProvider.MappingFeature:
-# class PySide2.QtLocation.QGeoServiceProvider.MappingFeatures:
-# class PySide2.QtLocation.QGeoServiceProvider.NavigationFeature:
-# class PySide2.QtLocation.QGeoServiceProvider.NavigationFeatures:
-# class PySide2.QtLocation.QGeoServiceProvider.PlacesFeature:
-# class PySide2.QtLocation.QGeoServiceProvider.PlacesFeatures:
-# class PySide2.QtLocation.QGeoServiceProvider.RoutingFeature:
-# class PySide2.QtLocation.QGeoServiceProvider.RoutingFeatures:
- "PySide2.QtLocation.QGeoServiceProvider.__init__": ('str', 'typing.Dict', 'bool'),
- "PySide2.QtLocation.QGeoServiceProvider.availableServiceProviders": (),
- "PySide2.QtLocation.QGeoServiceProvider.error": (),
- "PySide2.QtLocation.QGeoServiceProvider.errorString": (),
- "PySide2.QtLocation.QGeoServiceProvider.geocodingError": (),
- "PySide2.QtLocation.QGeoServiceProvider.geocodingErrorString": (),
- "PySide2.QtLocation.QGeoServiceProvider.geocodingFeatures": (),
- "PySide2.QtLocation.QGeoServiceProvider.geocodingManager": (),
- "PySide2.QtLocation.QGeoServiceProvider.mappingError": (),
- "PySide2.QtLocation.QGeoServiceProvider.mappingErrorString": (),
- "PySide2.QtLocation.QGeoServiceProvider.mappingFeatures": (),
- "PySide2.QtLocation.QGeoServiceProvider.navigationError": (),
- "PySide2.QtLocation.QGeoServiceProvider.navigationErrorString": (),
- "PySide2.QtLocation.QGeoServiceProvider.navigationFeatures": (),
- "PySide2.QtLocation.QGeoServiceProvider.placeManager": (),
- "PySide2.QtLocation.QGeoServiceProvider.placesError": (),
- "PySide2.QtLocation.QGeoServiceProvider.placesErrorString": (),
- "PySide2.QtLocation.QGeoServiceProvider.placesFeatures": (),
- "PySide2.QtLocation.QGeoServiceProvider.routingError": (),
- "PySide2.QtLocation.QGeoServiceProvider.routingErrorString": (),
- "PySide2.QtLocation.QGeoServiceProvider.routingFeatures": (),
- "PySide2.QtLocation.QGeoServiceProvider.routingManager": (),
- "PySide2.QtLocation.QGeoServiceProvider.setAllowExperimental": ('bool',),
- "PySide2.QtLocation.QGeoServiceProvider.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtLocation.QGeoServiceProvider.setParameters": ('typing.Dict',),
-# class PySide2.QtLocation.QGeoServiceProviderFactory:
- "PySide2.QtLocation.QGeoServiceProviderFactory.__init__": (),
- "PySide2.QtLocation.QGeoServiceProviderFactory.createGeocodingManagerEngine": ('typing.Dict', 'PySide2.QtLocation.QGeoServiceProvider.Error'),
- "PySide2.QtLocation.QGeoServiceProviderFactory.createPlaceManagerEngine": ('typing.Dict', 'PySide2.QtLocation.QGeoServiceProvider.Error'),
- "PySide2.QtLocation.QGeoServiceProviderFactory.createRoutingManagerEngine": ('typing.Dict', 'PySide2.QtLocation.QGeoServiceProvider.Error'),
-# class PySide2.QtLocation.QGeoServiceProviderFactoryV2:
- "PySide2.QtLocation.QGeoServiceProviderFactoryV2.__init__": (),
-# class PySide2.QtLocation.QPlace:
- "PySide2.QtLocation.QPlace.__init__": [(), ('PySide2.QtLocation.QPlace',)],
- "PySide2.QtLocation.QPlace.__copy__": (),
- "PySide2.QtLocation.QPlace.appendContactDetail": ('str', 'PySide2.QtLocation.QPlaceContactDetail'),
- "PySide2.QtLocation.QPlace.attribution": (),
- "PySide2.QtLocation.QPlace.categories": (),
- "PySide2.QtLocation.QPlace.contactDetails": ('str',),
- "PySide2.QtLocation.QPlace.contactTypes": (),
- "PySide2.QtLocation.QPlace.content": ('PySide2.QtLocation.QPlaceContent.Type',),
- "PySide2.QtLocation.QPlace.detailsFetched": (),
- "PySide2.QtLocation.QPlace.extendedAttribute": ('str',),
- "PySide2.QtLocation.QPlace.extendedAttributeTypes": (),
- "PySide2.QtLocation.QPlace.icon": (),
- "PySide2.QtLocation.QPlace.insertContent": ('PySide2.QtLocation.QPlaceContent.Type', 'typing.Dict'),
- "PySide2.QtLocation.QPlace.isEmpty": (),
- "PySide2.QtLocation.QPlace.location": (),
- "PySide2.QtLocation.QPlace.name": (),
- "PySide2.QtLocation.QPlace.placeId": (),
- "PySide2.QtLocation.QPlace.primaryEmail": (),
- "PySide2.QtLocation.QPlace.primaryFax": (),
- "PySide2.QtLocation.QPlace.primaryPhone": (),
- "PySide2.QtLocation.QPlace.primaryWebsite": (),
- "PySide2.QtLocation.QPlace.ratings": (),
- "PySide2.QtLocation.QPlace.removeContactDetails": ('str',),
- "PySide2.QtLocation.QPlace.removeExtendedAttribute": ('str',),
- "PySide2.QtLocation.QPlace.setAttribution": ('str',),
- "PySide2.QtLocation.QPlace.setCategories": ('typing.Sequence',),
- "PySide2.QtLocation.QPlace.setCategory": ('PySide2.QtLocation.QPlaceCategory',),
- "PySide2.QtLocation.QPlace.setContactDetails": ('str', 'typing.Sequence'),
- "PySide2.QtLocation.QPlace.setContent": ('PySide2.QtLocation.QPlaceContent.Type', 'typing.Dict'),
- "PySide2.QtLocation.QPlace.setDetailsFetched": ('bool',),
- "PySide2.QtLocation.QPlace.setExtendedAttribute": ('str', 'PySide2.QtLocation.QPlaceAttribute'),
- "PySide2.QtLocation.QPlace.setIcon": ('PySide2.QtLocation.QPlaceIcon',),
- "PySide2.QtLocation.QPlace.setLocation": ('PySide2.QtPositioning.QGeoLocation',),
- "PySide2.QtLocation.QPlace.setName": ('str',),
- "PySide2.QtLocation.QPlace.setPlaceId": ('str',),
- "PySide2.QtLocation.QPlace.setRatings": ('PySide2.QtLocation.QPlaceRatings',),
- "PySide2.QtLocation.QPlace.setSupplier": ('PySide2.QtLocation.QPlaceSupplier',),
- "PySide2.QtLocation.QPlace.setTotalContentCount": ('PySide2.QtLocation.QPlaceContent.Type', 'int'),
- "PySide2.QtLocation.QPlace.supplier": (),
- "PySide2.QtLocation.QPlace.totalContentCount": ('PySide2.QtLocation.QPlaceContent.Type',),
-# class PySide2.QtLocation.QPlaceAttribute:
- "PySide2.QtLocation.QPlaceAttribute.__init__": [(), ('PySide2.QtLocation.QPlaceAttribute',)],
- "PySide2.QtLocation.QPlaceAttribute.__copy__": (),
- "PySide2.QtLocation.QPlaceAttribute.isEmpty": (),
- "PySide2.QtLocation.QPlaceAttribute.label": (),
- "PySide2.QtLocation.QPlaceAttribute.setLabel": ('str',),
- "PySide2.QtLocation.QPlaceAttribute.setText": ('str',),
- "PySide2.QtLocation.QPlaceAttribute.text": (),
-# class PySide2.QtLocation.QPlaceCategory:
- "PySide2.QtLocation.QPlaceCategory.__init__": [(), ('PySide2.QtLocation.QPlaceCategory',)],
- "PySide2.QtLocation.QPlaceCategory.__copy__": (),
- "PySide2.QtLocation.QPlaceCategory.categoryId": (),
- "PySide2.QtLocation.QPlaceCategory.icon": (),
- "PySide2.QtLocation.QPlaceCategory.isEmpty": (),
- "PySide2.QtLocation.QPlaceCategory.name": (),
- "PySide2.QtLocation.QPlaceCategory.setCategoryId": ('str',),
- "PySide2.QtLocation.QPlaceCategory.setIcon": ('PySide2.QtLocation.QPlaceIcon',),
- "PySide2.QtLocation.QPlaceCategory.setName": ('str',),
-# class PySide2.QtLocation.QPlaceContactDetail:
- "PySide2.QtLocation.QPlaceContactDetail.__init__": [(), ('PySide2.QtLocation.QPlaceContactDetail',)],
- "PySide2.QtLocation.QPlaceContactDetail.__copy__": (),
- "PySide2.QtLocation.QPlaceContactDetail.clear": (),
- "PySide2.QtLocation.QPlaceContactDetail.label": (),
- "PySide2.QtLocation.QPlaceContactDetail.setLabel": ('str',),
- "PySide2.QtLocation.QPlaceContactDetail.setValue": ('str',),
- "PySide2.QtLocation.QPlaceContactDetail.value": (),
-# class PySide2.QtLocation.QPlaceContent:
-# class PySide2.QtLocation.QPlaceContent.Type:
- "PySide2.QtLocation.QPlaceContent.__init__": [(), ('PySide2.QtLocation.QPlaceContent',)],
- "PySide2.QtLocation.QPlaceContent.__copy__": (),
- "PySide2.QtLocation.QPlaceContent.attribution": (),
- "PySide2.QtLocation.QPlaceContent.setAttribution": ('str',),
- "PySide2.QtLocation.QPlaceContent.setSupplier": ('PySide2.QtLocation.QPlaceSupplier',),
- "PySide2.QtLocation.QPlaceContent.setUser": ('PySide2.QtLocation.QPlaceUser',),
- "PySide2.QtLocation.QPlaceContent.supplier": (),
- "PySide2.QtLocation.QPlaceContent.type": (),
- "PySide2.QtLocation.QPlaceContent.user": (),
-# class PySide2.QtLocation.QPlaceContentReply:
- "PySide2.QtLocation.QPlaceContentReply.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtLocation.QPlaceContentReply.content": (),
- "PySide2.QtLocation.QPlaceContentReply.nextPageRequest": (),
- "PySide2.QtLocation.QPlaceContentReply.previousPageRequest": (),
- "PySide2.QtLocation.QPlaceContentReply.request": (),
- "PySide2.QtLocation.QPlaceContentReply.setContent": ('typing.Dict',),
- "PySide2.QtLocation.QPlaceContentReply.setNextPageRequest": ('PySide2.QtLocation.QPlaceContentRequest',),
- "PySide2.QtLocation.QPlaceContentReply.setPreviousPageRequest": ('PySide2.QtLocation.QPlaceContentRequest',),
- "PySide2.QtLocation.QPlaceContentReply.setRequest": ('PySide2.QtLocation.QPlaceContentRequest',),
- "PySide2.QtLocation.QPlaceContentReply.setTotalCount": ('int',),
- "PySide2.QtLocation.QPlaceContentReply.totalCount": (),
- "PySide2.QtLocation.QPlaceContentReply.type": (),
-# class PySide2.QtLocation.QPlaceContentRequest:
- "PySide2.QtLocation.QPlaceContentRequest.__init__": [(), ('PySide2.QtLocation.QPlaceContentRequest',)],
- "PySide2.QtLocation.QPlaceContentRequest.__copy__": (),
- "PySide2.QtLocation.QPlaceContentRequest.clear": (),
- "PySide2.QtLocation.QPlaceContentRequest.contentContext": (),
- "PySide2.QtLocation.QPlaceContentRequest.contentType": (),
- "PySide2.QtLocation.QPlaceContentRequest.limit": (),
- "PySide2.QtLocation.QPlaceContentRequest.placeId": (),
- "PySide2.QtLocation.QPlaceContentRequest.setContentContext": ('typing.Any',),
- "PySide2.QtLocation.QPlaceContentRequest.setContentType": ('PySide2.QtLocation.QPlaceContent.Type',),
- "PySide2.QtLocation.QPlaceContentRequest.setLimit": ('int',),
- "PySide2.QtLocation.QPlaceContentRequest.setPlaceId": ('str',),
-# class PySide2.QtLocation.QPlaceDetailsReply:
- "PySide2.QtLocation.QPlaceDetailsReply.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtLocation.QPlaceDetailsReply.place": (),
- "PySide2.QtLocation.QPlaceDetailsReply.setPlace": ('PySide2.QtLocation.QPlace',),
- "PySide2.QtLocation.QPlaceDetailsReply.type": (),
-# class PySide2.QtLocation.QPlaceEditorial:
- "PySide2.QtLocation.QPlaceEditorial.__init__": [(), ('PySide2.QtLocation.QPlaceContent',)],
- "PySide2.QtLocation.QPlaceEditorial.language": (),
- "PySide2.QtLocation.QPlaceEditorial.setLanguage": ('str',),
- "PySide2.QtLocation.QPlaceEditorial.setText": ('str',),
- "PySide2.QtLocation.QPlaceEditorial.setTitle": ('str',),
- "PySide2.QtLocation.QPlaceEditorial.text": (),
- "PySide2.QtLocation.QPlaceEditorial.title": (),
-# class PySide2.QtLocation.QPlaceIcon:
- "PySide2.QtLocation.QPlaceIcon.__init__": [(), ('PySide2.QtLocation.QPlaceIcon',)],
- "PySide2.QtLocation.QPlaceIcon.__copy__": (),
- "PySide2.QtLocation.QPlaceIcon.isEmpty": (),
- "PySide2.QtLocation.QPlaceIcon.manager": (),
- "PySide2.QtLocation.QPlaceIcon.parameters": (),
- "PySide2.QtLocation.QPlaceIcon.setManager": ('PySide2.QtLocation.QPlaceManager',),
- "PySide2.QtLocation.QPlaceIcon.setParameters": ('typing.Dict',),
- "PySide2.QtLocation.QPlaceIcon.url": ('PySide2.QtCore.QSize',),
-# class PySide2.QtLocation.QPlaceIdReply:
-# class PySide2.QtLocation.QPlaceIdReply.OperationType:
- "PySide2.QtLocation.QPlaceIdReply.__init__": ('PySide2.QtLocation.QPlaceIdReply.OperationType', 'PySide2.QtCore.QObject'),
- "PySide2.QtLocation.QPlaceIdReply.id": (),
- "PySide2.QtLocation.QPlaceIdReply.operationType": (),
- "PySide2.QtLocation.QPlaceIdReply.setId": ('str',),
- "PySide2.QtLocation.QPlaceIdReply.type": (),
-# class PySide2.QtLocation.QPlaceImage:
- "PySide2.QtLocation.QPlaceImage.__init__": [(), ('PySide2.QtLocation.QPlaceContent',)],
- "PySide2.QtLocation.QPlaceImage.imageId": (),
- "PySide2.QtLocation.QPlaceImage.mimeType": (),
- "PySide2.QtLocation.QPlaceImage.setImageId": ('str',),
- "PySide2.QtLocation.QPlaceImage.setMimeType": ('str',),
- "PySide2.QtLocation.QPlaceImage.setUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtLocation.QPlaceImage.url": (),
-# class PySide2.QtLocation.QPlaceManager:
- "PySide2.QtLocation.QPlaceManager.category": ('str',),
- "PySide2.QtLocation.QPlaceManager.childCategories": ('str',),
- "PySide2.QtLocation.QPlaceManager.childCategoryIds": ('str',),
- "PySide2.QtLocation.QPlaceManager.compatiblePlace": ('PySide2.QtLocation.QPlace',),
- "PySide2.QtLocation.QPlaceManager.getPlaceContent": ('PySide2.QtLocation.QPlaceContentRequest',),
- "PySide2.QtLocation.QPlaceManager.getPlaceDetails": ('str',),
- "PySide2.QtLocation.QPlaceManager.initializeCategories": (),
- "PySide2.QtLocation.QPlaceManager.locales": (),
- "PySide2.QtLocation.QPlaceManager.managerName": (),
- "PySide2.QtLocation.QPlaceManager.managerVersion": (),
- "PySide2.QtLocation.QPlaceManager.matchingPlaces": ('PySide2.QtLocation.QPlaceMatchRequest',),
- "PySide2.QtLocation.QPlaceManager.parentCategoryId": ('str',),
- "PySide2.QtLocation.QPlaceManager.removeCategory": ('str',),
- "PySide2.QtLocation.QPlaceManager.removePlace": ('str',),
- "PySide2.QtLocation.QPlaceManager.saveCategory": ('PySide2.QtLocation.QPlaceCategory', 'str'),
- "PySide2.QtLocation.QPlaceManager.savePlace": ('PySide2.QtLocation.QPlace',),
- "PySide2.QtLocation.QPlaceManager.search": ('PySide2.QtLocation.QPlaceSearchRequest',),
- "PySide2.QtLocation.QPlaceManager.searchSuggestions": ('PySide2.QtLocation.QPlaceSearchRequest',),
- "PySide2.QtLocation.QPlaceManager.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtLocation.QPlaceManager.setLocales": ('typing.Sequence',),
-# class PySide2.QtLocation.QPlaceManagerEngine:
- "PySide2.QtLocation.QPlaceManagerEngine.__init__": ('typing.Dict', 'PySide2.QtCore.QObject'),
- "PySide2.QtLocation.QPlaceManagerEngine.category": ('str',),
- "PySide2.QtLocation.QPlaceManagerEngine.childCategories": ('str',),
- "PySide2.QtLocation.QPlaceManagerEngine.childCategoryIds": ('str',),
- "PySide2.QtLocation.QPlaceManagerEngine.compatiblePlace": ('PySide2.QtLocation.QPlace',),
- "PySide2.QtLocation.QPlaceManagerEngine.constructIconUrl": ('PySide2.QtLocation.QPlaceIcon', 'PySide2.QtCore.QSize'),
- "PySide2.QtLocation.QPlaceManagerEngine.getPlaceContent": ('PySide2.QtLocation.QPlaceContentRequest',),
- "PySide2.QtLocation.QPlaceManagerEngine.getPlaceDetails": ('str',),
- "PySide2.QtLocation.QPlaceManagerEngine.initializeCategories": (),
- "PySide2.QtLocation.QPlaceManagerEngine.locales": (),
- "PySide2.QtLocation.QPlaceManagerEngine.manager": (),
- "PySide2.QtLocation.QPlaceManagerEngine.managerName": (),
- "PySide2.QtLocation.QPlaceManagerEngine.managerVersion": (),
- "PySide2.QtLocation.QPlaceManagerEngine.matchingPlaces": ('PySide2.QtLocation.QPlaceMatchRequest',),
- "PySide2.QtLocation.QPlaceManagerEngine.parentCategoryId": ('str',),
- "PySide2.QtLocation.QPlaceManagerEngine.removeCategory": ('str',),
- "PySide2.QtLocation.QPlaceManagerEngine.removePlace": ('str',),
- "PySide2.QtLocation.QPlaceManagerEngine.saveCategory": ('PySide2.QtLocation.QPlaceCategory', 'str'),
- "PySide2.QtLocation.QPlaceManagerEngine.savePlace": ('PySide2.QtLocation.QPlace',),
- "PySide2.QtLocation.QPlaceManagerEngine.search": ('PySide2.QtLocation.QPlaceSearchRequest',),
- "PySide2.QtLocation.QPlaceManagerEngine.searchSuggestions": ('PySide2.QtLocation.QPlaceSearchRequest',),
- "PySide2.QtLocation.QPlaceManagerEngine.setLocales": ('typing.Sequence',),
-# class PySide2.QtLocation.QPlaceMatchReply:
- "PySide2.QtLocation.QPlaceMatchReply.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtLocation.QPlaceMatchReply.places": (),
- "PySide2.QtLocation.QPlaceMatchReply.request": (),
- "PySide2.QtLocation.QPlaceMatchReply.setPlaces": ('typing.Sequence',),
- "PySide2.QtLocation.QPlaceMatchReply.setRequest": ('PySide2.QtLocation.QPlaceMatchRequest',),
- "PySide2.QtLocation.QPlaceMatchReply.type": (),
-# class PySide2.QtLocation.QPlaceMatchRequest:
- "PySide2.QtLocation.QPlaceMatchRequest.__init__": [(), ('PySide2.QtLocation.QPlaceMatchRequest',)],
- "PySide2.QtLocation.QPlaceMatchRequest.__copy__": (),
- "PySide2.QtLocation.QPlaceMatchRequest.clear": (),
- "PySide2.QtLocation.QPlaceMatchRequest.parameters": (),
- "PySide2.QtLocation.QPlaceMatchRequest.places": (),
- "PySide2.QtLocation.QPlaceMatchRequest.setParameters": ('typing.Dict',),
- "PySide2.QtLocation.QPlaceMatchRequest.setPlaces": ('typing.Sequence',),
- "PySide2.QtLocation.QPlaceMatchRequest.setResults": ('typing.Sequence',),
-# class PySide2.QtLocation.QPlaceProposedSearchResult:
- "PySide2.QtLocation.QPlaceProposedSearchResult.__init__": [(), ('PySide2.QtLocation.QPlaceSearchResult',)],
- "PySide2.QtLocation.QPlaceProposedSearchResult.searchRequest": (),
- "PySide2.QtLocation.QPlaceProposedSearchResult.setSearchRequest": ('PySide2.QtLocation.QPlaceSearchRequest',),
-# class PySide2.QtLocation.QPlaceRatings:
- "PySide2.QtLocation.QPlaceRatings.__init__": [(), ('PySide2.QtLocation.QPlaceRatings',)],
- "PySide2.QtLocation.QPlaceRatings.__copy__": (),
- "PySide2.QtLocation.QPlaceRatings.average": (),
- "PySide2.QtLocation.QPlaceRatings.count": (),
- "PySide2.QtLocation.QPlaceRatings.isEmpty": (),
- "PySide2.QtLocation.QPlaceRatings.maximum": (),
- "PySide2.QtLocation.QPlaceRatings.setAverage": ('float',),
- "PySide2.QtLocation.QPlaceRatings.setCount": ('int',),
- "PySide2.QtLocation.QPlaceRatings.setMaximum": ('float',),
-# class PySide2.QtLocation.QPlaceReply:
-# class PySide2.QtLocation.QPlaceReply.Error:
-# class PySide2.QtLocation.QPlaceReply.Type:
- "PySide2.QtLocation.QPlaceReply.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtLocation.QPlaceReply.abort": (),
- "PySide2.QtLocation.QPlaceReply.error": (),
- "PySide2.QtLocation.QPlaceReply.errorString": (),
- "PySide2.QtLocation.QPlaceReply.isFinished": (),
- "PySide2.QtLocation.QPlaceReply.setError": ('PySide2.QtLocation.QPlaceReply.Error', 'str'),
- "PySide2.QtLocation.QPlaceReply.setFinished": ('bool',),
- "PySide2.QtLocation.QPlaceReply.type": (),
-# class PySide2.QtLocation.QPlaceResult:
- "PySide2.QtLocation.QPlaceResult.__init__": [(), ('PySide2.QtLocation.QPlaceSearchResult',)],
- "PySide2.QtLocation.QPlaceResult.distance": (),
- "PySide2.QtLocation.QPlaceResult.isSponsored": (),
- "PySide2.QtLocation.QPlaceResult.place": (),
- "PySide2.QtLocation.QPlaceResult.setDistance": ('float',),
- "PySide2.QtLocation.QPlaceResult.setPlace": ('PySide2.QtLocation.QPlace',),
- "PySide2.QtLocation.QPlaceResult.setSponsored": ('bool',),
-# class PySide2.QtLocation.QPlaceReview:
- "PySide2.QtLocation.QPlaceReview.__init__": [(), ('PySide2.QtLocation.QPlaceContent',)],
- "PySide2.QtLocation.QPlaceReview.dateTime": (),
- "PySide2.QtLocation.QPlaceReview.language": (),
- "PySide2.QtLocation.QPlaceReview.rating": (),
- "PySide2.QtLocation.QPlaceReview.reviewId": (),
- "PySide2.QtLocation.QPlaceReview.setDateTime": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtLocation.QPlaceReview.setLanguage": ('str',),
- "PySide2.QtLocation.QPlaceReview.setRating": ('float',),
- "PySide2.QtLocation.QPlaceReview.setReviewId": ('str',),
- "PySide2.QtLocation.QPlaceReview.setText": ('str',),
- "PySide2.QtLocation.QPlaceReview.setTitle": ('str',),
- "PySide2.QtLocation.QPlaceReview.text": (),
- "PySide2.QtLocation.QPlaceReview.title": (),
-# class PySide2.QtLocation.QPlaceSearchReply:
- "PySide2.QtLocation.QPlaceSearchReply.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtLocation.QPlaceSearchReply.nextPageRequest": (),
- "PySide2.QtLocation.QPlaceSearchReply.previousPageRequest": (),
- "PySide2.QtLocation.QPlaceSearchReply.request": (),
- "PySide2.QtLocation.QPlaceSearchReply.results": (),
- "PySide2.QtLocation.QPlaceSearchReply.setNextPageRequest": ('PySide2.QtLocation.QPlaceSearchRequest',),
- "PySide2.QtLocation.QPlaceSearchReply.setPreviousPageRequest": ('PySide2.QtLocation.QPlaceSearchRequest',),
- "PySide2.QtLocation.QPlaceSearchReply.setRequest": ('PySide2.QtLocation.QPlaceSearchRequest',),
- "PySide2.QtLocation.QPlaceSearchReply.setResults": ('typing.Sequence',),
- "PySide2.QtLocation.QPlaceSearchReply.type": (),
-# class PySide2.QtLocation.QPlaceSearchRequest:
-# class PySide2.QtLocation.QPlaceSearchRequest.RelevanceHint:
- "PySide2.QtLocation.QPlaceSearchRequest.__init__": [(), ('PySide2.QtLocation.QPlaceSearchRequest',)],
- "PySide2.QtLocation.QPlaceSearchRequest.categories": (),
- "PySide2.QtLocation.QPlaceSearchRequest.clear": (),
- "PySide2.QtLocation.QPlaceSearchRequest.limit": (),
- "PySide2.QtLocation.QPlaceSearchRequest.recommendationId": (),
- "PySide2.QtLocation.QPlaceSearchRequest.relevanceHint": (),
- "PySide2.QtLocation.QPlaceSearchRequest.searchArea": (),
- "PySide2.QtLocation.QPlaceSearchRequest.searchContext": (),
- "PySide2.QtLocation.QPlaceSearchRequest.searchTerm": (),
- "PySide2.QtLocation.QPlaceSearchRequest.setCategories": ('typing.Sequence',),
- "PySide2.QtLocation.QPlaceSearchRequest.setCategory": ('PySide2.QtLocation.QPlaceCategory',),
- "PySide2.QtLocation.QPlaceSearchRequest.setLimit": ('int',),
- "PySide2.QtLocation.QPlaceSearchRequest.setRecommendationId": ('str',),
- "PySide2.QtLocation.QPlaceSearchRequest.setRelevanceHint": ('PySide2.QtLocation.QPlaceSearchRequest.RelevanceHint',),
- "PySide2.QtLocation.QPlaceSearchRequest.setSearchArea": ('PySide2.QtPositioning.QGeoShape',),
- "PySide2.QtLocation.QPlaceSearchRequest.setSearchContext": ('typing.Any',),
- "PySide2.QtLocation.QPlaceSearchRequest.setSearchTerm": ('str',),
-# class PySide2.QtLocation.QPlaceSearchResult:
-# class PySide2.QtLocation.QPlaceSearchResult.SearchResultType:
- "PySide2.QtLocation.QPlaceSearchResult.__init__": [(), ('PySide2.QtLocation.QPlaceSearchResult',)],
- "PySide2.QtLocation.QPlaceSearchResult.icon": (),
- "PySide2.QtLocation.QPlaceSearchResult.setIcon": ('PySide2.QtLocation.QPlaceIcon',),
- "PySide2.QtLocation.QPlaceSearchResult.setTitle": ('str',),
- "PySide2.QtLocation.QPlaceSearchResult.title": (),
- "PySide2.QtLocation.QPlaceSearchResult.type": (),
-# class PySide2.QtLocation.QPlaceSearchSuggestionReply:
- "PySide2.QtLocation.QPlaceSearchSuggestionReply.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtLocation.QPlaceSearchSuggestionReply.setSuggestions": ('typing.Sequence',),
- "PySide2.QtLocation.QPlaceSearchSuggestionReply.suggestions": (),
- "PySide2.QtLocation.QPlaceSearchSuggestionReply.type": (),
-# class PySide2.QtLocation.QPlaceSupplier:
- "PySide2.QtLocation.QPlaceSupplier.__init__": [(), ('PySide2.QtLocation.QPlaceSupplier',)],
- "PySide2.QtLocation.QPlaceSupplier.__copy__": (),
- "PySide2.QtLocation.QPlaceSupplier.icon": (),
- "PySide2.QtLocation.QPlaceSupplier.isEmpty": (),
- "PySide2.QtLocation.QPlaceSupplier.name": (),
- "PySide2.QtLocation.QPlaceSupplier.setIcon": ('PySide2.QtLocation.QPlaceIcon',),
- "PySide2.QtLocation.QPlaceSupplier.setName": ('str',),
- "PySide2.QtLocation.QPlaceSupplier.setSupplierId": ('str',),
- "PySide2.QtLocation.QPlaceSupplier.setUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtLocation.QPlaceSupplier.supplierId": (),
- "PySide2.QtLocation.QPlaceSupplier.url": (),
-# class PySide2.QtLocation.QPlaceUser:
- "PySide2.QtLocation.QPlaceUser.__init__": [(), ('PySide2.QtLocation.QPlaceUser',)],
- "PySide2.QtLocation.QPlaceUser.__copy__": (),
- "PySide2.QtLocation.QPlaceUser.name": (),
- "PySide2.QtLocation.QPlaceUser.setName": ('str',),
- "PySide2.QtLocation.QPlaceUser.setUserId": ('str',),
- "PySide2.QtLocation.QPlaceUser.userId": (),
- }) if "PySide2.QtLocation" in sys.modules else None
-# Module PySide2.QtQml
-sig_dict.update({
-# class PySide2.QtQml.ListProperty:
- "PySide2.QtQml.ListProperty.__init__": ('type', 'typing.Callable', 'typing.Callable', 'typing.Callable', 'typing.Callable'),
-# class PySide2.QtQml.QJSEngine:
-# class PySide2.QtQml.QJSEngine.Extension:
-# class PySide2.QtQml.QJSEngine.Extensions:
- "PySide2.QtQml.QJSEngine.__init__": [(), ('PySide2.QtCore.QObject',)],
- "PySide2.QtQml.QJSEngine.collectGarbage": (),
- "PySide2.QtQml.QJSEngine.evaluate": ('str', 'str', 'int'),
- "PySide2.QtQml.QJSEngine.globalObject": (),
- "PySide2.QtQml.QJSEngine.importModule": ('str',),
- "PySide2.QtQml.QJSEngine.installExtensions": ('PySide2.QtQml.QJSEngine.Extensions', 'PySide2.QtQml.QJSValue'),
- "PySide2.QtQml.QJSEngine.installTranslatorFunctions": ('PySide2.QtQml.QJSValue',),
- "PySide2.QtQml.QJSEngine.isInterrupted": (),
- "PySide2.QtQml.QJSEngine.newArray": ('int',),
- "PySide2.QtQml.QJSEngine.newErrorObject": ('PySide2.QtQml.QJSValue.ErrorType', 'str'),
- "PySide2.QtQml.QJSEngine.newObject": (),
- "PySide2.QtQml.QJSEngine.newQMetaObject": ('PySide2.QtCore.QMetaObject',),
- "PySide2.QtQml.QJSEngine.newQObject": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QJSEngine.setInterrupted": ('bool',),
- "PySide2.QtQml.QJSEngine.throwError": [('PySide2.QtQml.QJSValue.ErrorType', 'str'), ('str',)],
- "PySide2.QtQml.QJSEngine.toScriptValue": ('typing.Any',),
-# class PySide2.QtQml.QJSValue:
-# class PySide2.QtQml.QJSValue.ErrorType:
-# class PySide2.QtQml.QJSValue.SpecialValue:
- "PySide2.QtQml.QJSValue.__init__": [('PySide2.QtQml.QJSValue',), ('PySide2.QtQml.QJSValue.SpecialValue',), ('bool',), ('bytes',), ('float',), ('int',), ('str',)],
- "PySide2.QtQml.QJSValue.__copy__": (),
- "PySide2.QtQml.QJSValue.call": ('typing.Sequence',),
- "PySide2.QtQml.QJSValue.callAsConstructor": ('typing.Sequence',),
- "PySide2.QtQml.QJSValue.callWithInstance": ('PySide2.QtQml.QJSValue', 'typing.Sequence'),
- "PySide2.QtQml.QJSValue.deleteProperty": ('str',),
- "PySide2.QtQml.QJSValue.engine": (),
- "PySide2.QtQml.QJSValue.equals": ('PySide2.QtQml.QJSValue',),
- "PySide2.QtQml.QJSValue.errorType": (),
- "PySide2.QtQml.QJSValue.hasOwnProperty": ('str',),
- "PySide2.QtQml.QJSValue.hasProperty": ('str',),
- "PySide2.QtQml.QJSValue.isArray": (),
- "PySide2.QtQml.QJSValue.isBool": (),
- "PySide2.QtQml.QJSValue.isCallable": (),
- "PySide2.QtQml.QJSValue.isDate": (),
- "PySide2.QtQml.QJSValue.isError": (),
- "PySide2.QtQml.QJSValue.isNull": (),
- "PySide2.QtQml.QJSValue.isNumber": (),
- "PySide2.QtQml.QJSValue.isObject": (),
- "PySide2.QtQml.QJSValue.isQMetaObject": (),
- "PySide2.QtQml.QJSValue.isQObject": (),
- "PySide2.QtQml.QJSValue.isRegExp": (),
- "PySide2.QtQml.QJSValue.isString": (),
- "PySide2.QtQml.QJSValue.isUndefined": (),
- "PySide2.QtQml.QJSValue.isVariant": (),
- "PySide2.QtQml.QJSValue.property": [('int',), ('str',)],
- "PySide2.QtQml.QJSValue.prototype": (),
- "PySide2.QtQml.QJSValue.setProperty": [('int', 'PySide2.QtQml.QJSValue'), ('str', 'PySide2.QtQml.QJSValue')],
- "PySide2.QtQml.QJSValue.setPrototype": ('PySide2.QtQml.QJSValue',),
- "PySide2.QtQml.QJSValue.strictlyEquals": ('PySide2.QtQml.QJSValue',),
- "PySide2.QtQml.QJSValue.toBool": (),
- "PySide2.QtQml.QJSValue.toDateTime": (),
- "PySide2.QtQml.QJSValue.toInt": (),
- "PySide2.QtQml.QJSValue.toNumber": (),
- "PySide2.QtQml.QJSValue.toQMetaObject": (),
- "PySide2.QtQml.QJSValue.toQObject": (),
- "PySide2.QtQml.QJSValue.toString": (),
- "PySide2.QtQml.QJSValue.toUInt": (),
- "PySide2.QtQml.QJSValue.toVariant": (),
-# class PySide2.QtQml.QJSValueIterator:
- "PySide2.QtQml.QJSValueIterator.__init__": ('PySide2.QtQml.QJSValue',),
- "PySide2.QtQml.QJSValueIterator.hasNext": (),
- "PySide2.QtQml.QJSValueIterator.name": (),
- "PySide2.QtQml.QJSValueIterator.value": (),
-# class PySide2.QtQml.QQmlAbstractUrlInterceptor:
-# class PySide2.QtQml.QQmlAbstractUrlInterceptor.DataType:
- "PySide2.QtQml.QQmlAbstractUrlInterceptor.__init__": (),
- "PySide2.QtQml.QQmlAbstractUrlInterceptor.intercept": ('PySide2.QtCore.QUrl', 'PySide2.QtQml.QQmlAbstractUrlInterceptor.DataType'),
-# class PySide2.QtQml.QQmlApplicationEngine:
- "PySide2.QtQml.QQmlApplicationEngine.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtCore.QUrl', 'PySide2.QtCore.QObject'), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtQml.QQmlApplicationEngine.load": [('PySide2.QtCore.QUrl',), ('str',)],
- "PySide2.QtQml.QQmlApplicationEngine.loadData": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QUrl'),
- "PySide2.QtQml.QQmlApplicationEngine.rootObjects": (),
- "PySide2.QtQml.QQmlApplicationEngine.setInitialProperties": ('typing.Dict',),
-# class PySide2.QtQml.QQmlComponent:
-# class PySide2.QtQml.QQmlComponent.CompilationMode:
-# class PySide2.QtQml.QQmlComponent.Status:
- "PySide2.QtQml.QQmlComponent.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtQml.QQmlEngine', 'PySide2.QtCore.QObject'), ('PySide2.QtQml.QQmlEngine', 'PySide2.QtCore.QUrl', 'PySide2.QtCore.QObject'), ('PySide2.QtQml.QQmlEngine', 'PySide2.QtCore.QUrl', 'PySide2.QtQml.QQmlComponent.CompilationMode', 'PySide2.QtCore.QObject'), ('PySide2.QtQml.QQmlEngine', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtQml.QQmlEngine', 'str', 'PySide2.QtQml.QQmlComponent.CompilationMode', 'PySide2.QtCore.QObject')],
- "PySide2.QtQml.QQmlComponent.beginCreate": ('PySide2.QtQml.QQmlContext',),
- "PySide2.QtQml.QQmlComponent.completeCreate": (),
- "PySide2.QtQml.QQmlComponent.create": [('PySide2.QtQml.QQmlContext',), ('PySide2.QtQml.QQmlIncubator', 'PySide2.QtQml.QQmlContext', 'PySide2.QtQml.QQmlContext')],
- "PySide2.QtQml.QQmlComponent.createWithInitialProperties": ('typing.Dict', 'PySide2.QtQml.QQmlContext'),
- "PySide2.QtQml.QQmlComponent.creationContext": (),
- "PySide2.QtQml.QQmlComponent.engine": (),
- "PySide2.QtQml.QQmlComponent.errorString": (),
- "PySide2.QtQml.QQmlComponent.errors": (),
- "PySide2.QtQml.QQmlComponent.isError": (),
- "PySide2.QtQml.QQmlComponent.isLoading": (),
- "PySide2.QtQml.QQmlComponent.isNull": (),
- "PySide2.QtQml.QQmlComponent.isReady": (),
- "PySide2.QtQml.QQmlComponent.loadUrl": [('PySide2.QtCore.QUrl',), ('PySide2.QtCore.QUrl', 'PySide2.QtQml.QQmlComponent.CompilationMode')],
- "PySide2.QtQml.QQmlComponent.progress": (),
- "PySide2.QtQml.QQmlComponent.setData": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QUrl'),
- "PySide2.QtQml.QQmlComponent.setInitialProperties": ('PySide2.QtCore.QObject', 'typing.Dict'),
- "PySide2.QtQml.QQmlComponent.status": (),
- "PySide2.QtQml.QQmlComponent.url": (),
-# class PySide2.QtQml.QQmlContext:
- "PySide2.QtQml.QQmlContext.__init__": [('PySide2.QtQml.QQmlContext', 'PySide2.QtCore.QObject'), ('PySide2.QtQml.QQmlEngine', 'PySide2.QtCore.QObject')],
- "PySide2.QtQml.QQmlContext.baseUrl": (),
- "PySide2.QtQml.QQmlContext.contextObject": (),
- "PySide2.QtQml.QQmlContext.contextProperty": ('str',),
- "PySide2.QtQml.QQmlContext.engine": (),
- "PySide2.QtQml.QQmlContext.isValid": (),
- "PySide2.QtQml.QQmlContext.nameForObject": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QQmlContext.parentContext": (),
- "PySide2.QtQml.QQmlContext.resolvedUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtQml.QQmlContext.setBaseUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtQml.QQmlContext.setContextObject": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QQmlContext.setContextProperty": [('str', 'PySide2.QtCore.QObject'), ('str', 'typing.Any')],
-# class PySide2.QtQml.QQmlDebuggingEnabler:
-# class PySide2.QtQml.QQmlDebuggingEnabler.StartMode:
- "PySide2.QtQml.QQmlDebuggingEnabler.__init__": ('bool',),
- "PySide2.QtQml.QQmlDebuggingEnabler.connectToLocalDebugger": ('str', 'PySide2.QtQml.QQmlDebuggingEnabler.StartMode'),
- "PySide2.QtQml.QQmlDebuggingEnabler.debuggerServices": (),
- "PySide2.QtQml.QQmlDebuggingEnabler.inspectorServices": (),
- "PySide2.QtQml.QQmlDebuggingEnabler.nativeDebuggerServices": (),
- "PySide2.QtQml.QQmlDebuggingEnabler.profilerServices": (),
- "PySide2.QtQml.QQmlDebuggingEnabler.setServices": ('typing.Sequence',),
- "PySide2.QtQml.QQmlDebuggingEnabler.startDebugConnector": ('str', 'typing.Dict'),
- "PySide2.QtQml.QQmlDebuggingEnabler.startTcpDebugServer": ('int', 'PySide2.QtQml.QQmlDebuggingEnabler.StartMode', 'str'),
-# class PySide2.QtQml.QQmlEngine:
-# class PySide2.QtQml.QQmlEngine.ObjectOwnership:
- "PySide2.QtQml.QQmlEngine.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QQmlEngine.addImageProvider": ('str', 'PySide2.QtQml.QQmlImageProviderBase'),
- "PySide2.QtQml.QQmlEngine.addImportPath": ('str',),
- "PySide2.QtQml.QQmlEngine.addNamedBundle": ('str', 'str'),
- "PySide2.QtQml.QQmlEngine.addPluginPath": ('str',),
- "PySide2.QtQml.QQmlEngine.baseUrl": (),
- "PySide2.QtQml.QQmlEngine.clearComponentCache": (),
- "PySide2.QtQml.QQmlEngine.contextForObject": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QQmlEngine.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtQml.QQmlEngine.imageProvider": ('str',),
- "PySide2.QtQml.QQmlEngine.importPathList": (),
- "PySide2.QtQml.QQmlEngine.importPlugin": ('str', 'str', 'typing.Sequence'),
- "PySide2.QtQml.QQmlEngine.incubationController": (),
- "PySide2.QtQml.QQmlEngine.networkAccessManager": (),
- "PySide2.QtQml.QQmlEngine.networkAccessManagerFactory": (),
- "PySide2.QtQml.QQmlEngine.objectOwnership": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QQmlEngine.offlineStorageDatabaseFilePath": ('str',),
- "PySide2.QtQml.QQmlEngine.offlineStoragePath": (),
- "PySide2.QtQml.QQmlEngine.outputWarningsToStandardError": (),
- "PySide2.QtQml.QQmlEngine.pluginPathList": (),
- "PySide2.QtQml.QQmlEngine.removeImageProvider": ('str',),
- "PySide2.QtQml.QQmlEngine.retranslate": (),
- "PySide2.QtQml.QQmlEngine.rootContext": (),
- "PySide2.QtQml.QQmlEngine.setBaseUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtQml.QQmlEngine.setContextForObject": ('PySide2.QtCore.QObject', 'PySide2.QtQml.QQmlContext'),
- "PySide2.QtQml.QQmlEngine.setImportPathList": ('typing.Sequence',),
- "PySide2.QtQml.QQmlEngine.setIncubationController": ('PySide2.QtQml.QQmlIncubationController',),
- "PySide2.QtQml.QQmlEngine.setNetworkAccessManagerFactory": ('PySide2.QtQml.QQmlNetworkAccessManagerFactory',),
- "PySide2.QtQml.QQmlEngine.setObjectOwnership": ('PySide2.QtCore.QObject', 'PySide2.QtQml.QQmlEngine.ObjectOwnership'),
- "PySide2.QtQml.QQmlEngine.setOfflineStoragePath": ('str',),
- "PySide2.QtQml.QQmlEngine.setOutputWarningsToStandardError": ('bool',),
- "PySide2.QtQml.QQmlEngine.setPluginPathList": ('typing.Sequence',),
- "PySide2.QtQml.QQmlEngine.setUrlInterceptor": ('PySide2.QtQml.QQmlAbstractUrlInterceptor',),
- "PySide2.QtQml.QQmlEngine.trimComponentCache": (),
- "PySide2.QtQml.QQmlEngine.urlInterceptor": (),
-# class PySide2.QtQml.QQmlError:
- "PySide2.QtQml.QQmlError.__init__": [(), ('PySide2.QtQml.QQmlError',)],
- "PySide2.QtQml.QQmlError.__copy__": (),
- "PySide2.QtQml.QQmlError.column": (),
- "PySide2.QtQml.QQmlError.description": (),
- "PySide2.QtQml.QQmlError.isValid": (),
- "PySide2.QtQml.QQmlError.line": (),
- "PySide2.QtQml.QQmlError.messageType": (),
- "PySide2.QtQml.QQmlError.object": (),
- "PySide2.QtQml.QQmlError.setColumn": ('int',),
- "PySide2.QtQml.QQmlError.setDescription": ('str',),
- "PySide2.QtQml.QQmlError.setLine": ('int',),
- "PySide2.QtQml.QQmlError.setMessageType": ('PySide2.QtCore.QtMsgType',),
- "PySide2.QtQml.QQmlError.setObject": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QQmlError.setUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtQml.QQmlError.toString": (),
- "PySide2.QtQml.QQmlError.url": (),
-# class PySide2.QtQml.QQmlExpression:
- "PySide2.QtQml.QQmlExpression.__init__": [(), ('PySide2.QtQml.QQmlContext', 'PySide2.QtCore.QObject', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtQml.QQmlScriptString', 'PySide2.QtQml.QQmlContext', 'PySide2.QtCore.QObject', 'PySide2.QtCore.QObject')],
- "PySide2.QtQml.QQmlExpression.clearError": (),
- "PySide2.QtQml.QQmlExpression.columnNumber": (),
- "PySide2.QtQml.QQmlExpression.context": (),
- "PySide2.QtQml.QQmlExpression.engine": (),
- "PySide2.QtQml.QQmlExpression.error": (),
- "PySide2.QtQml.QQmlExpression.evaluate": (),
- "PySide2.QtQml.QQmlExpression.expression": (),
- "PySide2.QtQml.QQmlExpression.hasError": (),
- "PySide2.QtQml.QQmlExpression.lineNumber": (),
- "PySide2.QtQml.QQmlExpression.notifyOnValueChanged": (),
- "PySide2.QtQml.QQmlExpression.scopeObject": (),
- "PySide2.QtQml.QQmlExpression.setExpression": ('str',),
- "PySide2.QtQml.QQmlExpression.setNotifyOnValueChanged": ('bool',),
- "PySide2.QtQml.QQmlExpression.setSourceLocation": ('str', 'int', 'int'),
- "PySide2.QtQml.QQmlExpression.sourceFile": (),
-# class PySide2.QtQml.QQmlExtensionInterface:
- "PySide2.QtQml.QQmlExtensionInterface.__init__": (),
- "PySide2.QtQml.QQmlExtensionInterface.initializeEngine": ('PySide2.QtQml.QQmlEngine', 'bytes'),
-# class PySide2.QtQml.QQmlExtensionPlugin:
- "PySide2.QtQml.QQmlExtensionPlugin.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QQmlExtensionPlugin.baseUrl": (),
- "PySide2.QtQml.QQmlExtensionPlugin.initializeEngine": ('PySide2.QtQml.QQmlEngine', 'bytes'),
- "PySide2.QtQml.QQmlExtensionPlugin.registerTypes": ('bytes',),
-# class PySide2.QtQml.QQmlFile:
-# class PySide2.QtQml.QQmlFile.Status:
- "PySide2.QtQml.QQmlFile.__init__": [(), ('PySide2.QtQml.QQmlEngine', 'PySide2.QtCore.QUrl'), ('PySide2.QtQml.QQmlEngine', 'str')],
- "PySide2.QtQml.QQmlFile.clear": [(), ('PySide2.QtCore.QObject',)],
- "PySide2.QtQml.QQmlFile.connectDownloadProgress": [('PySide2.QtCore.QObject', 'bytes'), ('PySide2.QtCore.QObject', 'int')],
- "PySide2.QtQml.QQmlFile.connectFinished": [('PySide2.QtCore.QObject', 'bytes'), ('PySide2.QtCore.QObject', 'int')],
- "PySide2.QtQml.QQmlFile.data": (),
- "PySide2.QtQml.QQmlFile.dataByteArray": (),
- "PySide2.QtQml.QQmlFile.error": (),
- "PySide2.QtQml.QQmlFile.isError": (),
- "PySide2.QtQml.QQmlFile.isLoading": (),
- "PySide2.QtQml.QQmlFile.isLocalFile": [('PySide2.QtCore.QUrl',), ('str',)],
- "PySide2.QtQml.QQmlFile.isNull": (),
- "PySide2.QtQml.QQmlFile.isReady": (),
- "PySide2.QtQml.QQmlFile.isSynchronous": [('PySide2.QtCore.QUrl',), ('str',)],
- "PySide2.QtQml.QQmlFile.load": [('PySide2.QtQml.QQmlEngine', 'PySide2.QtCore.QUrl'), ('PySide2.QtQml.QQmlEngine', 'str')],
- "PySide2.QtQml.QQmlFile.size": (),
- "PySide2.QtQml.QQmlFile.status": (),
- "PySide2.QtQml.QQmlFile.url": (),
- "PySide2.QtQml.QQmlFile.urlToLocalFileOrQrc": [('PySide2.QtCore.QUrl',), ('str',)],
-# class PySide2.QtQml.QQmlFileSelector:
- "PySide2.QtQml.QQmlFileSelector.__init__": ('PySide2.QtQml.QQmlEngine', 'PySide2.QtCore.QObject'),
- "PySide2.QtQml.QQmlFileSelector.get": ('PySide2.QtQml.QQmlEngine',),
- "PySide2.QtQml.QQmlFileSelector.selector": (),
- "PySide2.QtQml.QQmlFileSelector.setExtraSelectors": ('typing.Sequence',),
- "PySide2.QtQml.QQmlFileSelector.setSelector": ('PySide2.QtCore.QFileSelector',),
-# class PySide2.QtQml.QQmlImageProviderBase:
-# class PySide2.QtQml.QQmlImageProviderBase.Flag:
-# class PySide2.QtQml.QQmlImageProviderBase.Flags:
-# class PySide2.QtQml.QQmlImageProviderBase.ImageType:
- "PySide2.QtQml.QQmlImageProviderBase.flags": (),
- "PySide2.QtQml.QQmlImageProviderBase.imageType": (),
-# class PySide2.QtQml.QQmlIncubationController:
- "PySide2.QtQml.QQmlIncubationController.__init__": (),
- "PySide2.QtQml.QQmlIncubationController.engine": (),
- "PySide2.QtQml.QQmlIncubationController.incubateFor": ('int',),
- "PySide2.QtQml.QQmlIncubationController.incubateWhile": ('int',),
- "PySide2.QtQml.QQmlIncubationController.incubatingObjectCount": (),
- "PySide2.QtQml.QQmlIncubationController.incubatingObjectCountChanged": ('int',),
-# class PySide2.QtQml.QQmlIncubator:
-# class PySide2.QtQml.QQmlIncubator.IncubationMode:
-# class PySide2.QtQml.QQmlIncubator.Status:
- "PySide2.QtQml.QQmlIncubator.__init__": ('PySide2.QtQml.QQmlIncubator.IncubationMode',),
- "PySide2.QtQml.QQmlIncubator.clear": (),
- "PySide2.QtQml.QQmlIncubator.errors": (),
- "PySide2.QtQml.QQmlIncubator.forceCompletion": (),
- "PySide2.QtQml.QQmlIncubator.incubationMode": (),
- "PySide2.QtQml.QQmlIncubator.isError": (),
- "PySide2.QtQml.QQmlIncubator.isLoading": (),
- "PySide2.QtQml.QQmlIncubator.isNull": (),
- "PySide2.QtQml.QQmlIncubator.isReady": (),
- "PySide2.QtQml.QQmlIncubator.object": (),
- "PySide2.QtQml.QQmlIncubator.setInitialState": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QQmlIncubator.status": (),
- "PySide2.QtQml.QQmlIncubator.statusChanged": ('PySide2.QtQml.QQmlIncubator.Status',),
-# class PySide2.QtQml.QQmlListReference:
- "PySide2.QtQml.QQmlListReference.__init__": [(), ('PySide2.QtCore.QObject', 'bytes', 'PySide2.QtQml.QQmlEngine'), ('PySide2.QtQml.QQmlListReference',)],
- "PySide2.QtQml.QQmlListReference.__copy__": (),
- "PySide2.QtQml.QQmlListReference.append": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QQmlListReference.at": ('int',),
- "PySide2.QtQml.QQmlListReference.canAppend": (),
- "PySide2.QtQml.QQmlListReference.canAt": (),
- "PySide2.QtQml.QQmlListReference.canClear": (),
- "PySide2.QtQml.QQmlListReference.canCount": (),
- "PySide2.QtQml.QQmlListReference.clear": (),
- "PySide2.QtQml.QQmlListReference.count": (),
- "PySide2.QtQml.QQmlListReference.isManipulable": (),
- "PySide2.QtQml.QQmlListReference.isReadable": (),
- "PySide2.QtQml.QQmlListReference.isValid": (),
- "PySide2.QtQml.QQmlListReference.listElementType": (),
- "PySide2.QtQml.QQmlListReference.object": (),
-# class PySide2.QtQml.QQmlNetworkAccessManagerFactory:
- "PySide2.QtQml.QQmlNetworkAccessManagerFactory.__init__": (),
- "PySide2.QtQml.QQmlNetworkAccessManagerFactory.create": ('PySide2.QtCore.QObject',),
-# class PySide2.QtQml.QQmlParserStatus:
- "PySide2.QtQml.QQmlParserStatus.__init__": (),
- "PySide2.QtQml.QQmlParserStatus.classBegin": (),
- "PySide2.QtQml.QQmlParserStatus.componentComplete": (),
-# class PySide2.QtQml.QQmlProperty:
-# class PySide2.QtQml.QQmlProperty.PropertyTypeCategory:
-# class PySide2.QtQml.QQmlProperty.Type:
- "PySide2.QtQml.QQmlProperty.__init__": [(), ('PySide2.QtCore.QObject',), ('PySide2.QtCore.QObject', 'PySide2.QtQml.QQmlContext'), ('PySide2.QtCore.QObject', 'PySide2.QtQml.QQmlEngine'), ('PySide2.QtCore.QObject', 'str'), ('PySide2.QtCore.QObject', 'str', 'PySide2.QtQml.QQmlContext'), ('PySide2.QtCore.QObject', 'str', 'PySide2.QtQml.QQmlEngine'), ('PySide2.QtQml.QQmlProperty',)],
- "PySide2.QtQml.QQmlProperty.__copy__": (),
- "PySide2.QtQml.QQmlProperty.connectNotifySignal": [('PySide2.QtCore.QObject', 'bytes'), ('PySide2.QtCore.QObject', 'int')],
- "PySide2.QtQml.QQmlProperty.hasNotifySignal": (),
- "PySide2.QtQml.QQmlProperty.index": (),
- "PySide2.QtQml.QQmlProperty.isDesignable": (),
- "PySide2.QtQml.QQmlProperty.isProperty": (),
- "PySide2.QtQml.QQmlProperty.isResettable": (),
- "PySide2.QtQml.QQmlProperty.isSignalProperty": (),
- "PySide2.QtQml.QQmlProperty.isValid": (),
- "PySide2.QtQml.QQmlProperty.isWritable": (),
- "PySide2.QtQml.QQmlProperty.method": (),
- "PySide2.QtQml.QQmlProperty.name": (),
- "PySide2.QtQml.QQmlProperty.needsNotifySignal": (),
- "PySide2.QtQml.QQmlProperty.object": (),
- "PySide2.QtQml.QQmlProperty.property": (),
- "PySide2.QtQml.QQmlProperty.propertyType": (),
- "PySide2.QtQml.QQmlProperty.propertyTypeCategory": (),
- "PySide2.QtQml.QQmlProperty.propertyTypeName": (),
- "PySide2.QtQml.QQmlProperty.read": [(), ('PySide2.QtCore.QObject', 'str'), ('PySide2.QtCore.QObject', 'str', 'PySide2.QtQml.QQmlContext'), ('PySide2.QtCore.QObject', 'str', 'PySide2.QtQml.QQmlEngine')],
- "PySide2.QtQml.QQmlProperty.reset": (),
- "PySide2.QtQml.QQmlProperty.type": (),
- "PySide2.QtQml.QQmlProperty.write": [('PySide2.QtCore.QObject', 'str', 'typing.Any'), ('PySide2.QtCore.QObject', 'str', 'typing.Any', 'PySide2.QtQml.QQmlContext'), ('PySide2.QtCore.QObject', 'str', 'typing.Any', 'PySide2.QtQml.QQmlEngine'), ('typing.Any',)],
-# class PySide2.QtQml.QQmlPropertyMap:
- "PySide2.QtQml.QQmlPropertyMap.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QQmlPropertyMap.clear": ('str',),
- "PySide2.QtQml.QQmlPropertyMap.contains": ('str',),
- "PySide2.QtQml.QQmlPropertyMap.count": (),
- "PySide2.QtQml.QQmlPropertyMap.insert": ('str', 'typing.Any'),
- "PySide2.QtQml.QQmlPropertyMap.isEmpty": (),
- "PySide2.QtQml.QQmlPropertyMap.keys": (),
- "PySide2.QtQml.QQmlPropertyMap.size": (),
- "PySide2.QtQml.QQmlPropertyMap.updateValue": ('str', 'typing.Any'),
- "PySide2.QtQml.QQmlPropertyMap.value": ('str',),
-# class PySide2.QtQml.QQmlPropertyValueSource:
- "PySide2.QtQml.QQmlPropertyValueSource.__init__": (),
- "PySide2.QtQml.QQmlPropertyValueSource.setTarget": ('PySide2.QtQml.QQmlProperty',),
-# class PySide2.QtQml.QQmlScriptString:
- "PySide2.QtQml.QQmlScriptString.__init__": [(), ('PySide2.QtQml.QQmlScriptString',)],
- "PySide2.QtQml.QQmlScriptString.__copy__": (),
- "PySide2.QtQml.QQmlScriptString.booleanLiteral": (),
- "PySide2.QtQml.QQmlScriptString.isEmpty": (),
- "PySide2.QtQml.QQmlScriptString.isNullLiteral": (),
- "PySide2.QtQml.QQmlScriptString.isUndefinedLiteral": (),
- "PySide2.QtQml.QQmlScriptString.numberLiteral": (),
- "PySide2.QtQml.QQmlScriptString.stringLiteral": (),
-# class PySide2.QtQml.QQmlTypesExtensionInterface:
- "PySide2.QtQml.QQmlTypesExtensionInterface.__init__": (),
- "PySide2.QtQml.QQmlTypesExtensionInterface.registerTypes": ('bytes',),
-# class PySide2.QtQml.QtQml:
- "PySide2.QtQml.QtQml.qmlAttachedPropertiesObject": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QMetaObject', 'bool'),
- "PySide2.QtQml.QtQml.qmlAttachedPropertiesObjectById": ('int', 'PySide2.QtCore.QObject', 'bool'),
- "PySide2.QtQml.QtQml.qmlContext": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QtQml.qmlEngine": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QtQml.qmlExecuteDeferred": ('PySide2.QtCore.QObject',),
-# class PySide2.QtQml.VolatileBool:
- "PySide2.QtQml.VolatileBool.get": (),
- "PySide2.QtQml.VolatileBool.set": ('object',),
- "PySide2.QtQml.VolatileBool.qmlRegisterType": ('type', 'bytes', 'int', 'int', 'bytes'),
- }) if "PySide2.QtQml" in sys.modules else None
-# Module PySide2.QtQuick
-sig_dict.update({
-# class PySide2.QtQuick.QQuickAsyncImageProvider:
- "PySide2.QtQuick.QQuickAsyncImageProvider.__init__": (),
- "PySide2.QtQuick.QQuickAsyncImageProvider.requestImageResponse": ('str', 'PySide2.QtCore.QSize'),
-# class PySide2.QtQuick.QQuickFramebufferObject:
-# class PySide2.QtQuick.QQuickFramebufferObject.Renderer:
- "PySide2.QtQuick.QQuickFramebufferObject.Renderer.__init__": (),
- "PySide2.QtQuick.QQuickFramebufferObject.Renderer.createFramebufferObject": ('PySide2.QtCore.QSize',),
- "PySide2.QtQuick.QQuickFramebufferObject.Renderer.framebufferObject": (),
- "PySide2.QtQuick.QQuickFramebufferObject.Renderer.invalidateFramebufferObject": (),
- "PySide2.QtQuick.QQuickFramebufferObject.Renderer.render": (),
- "PySide2.QtQuick.QQuickFramebufferObject.Renderer.synchronize": ('PySide2.QtQuick.QQuickFramebufferObject',),
- "PySide2.QtQuick.QQuickFramebufferObject.Renderer.update": (),
- "PySide2.QtQuick.QQuickFramebufferObject.__init__": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickFramebufferObject.createRenderer": (),
- "PySide2.QtQuick.QQuickFramebufferObject.geometryChanged": ('PySide2.QtCore.QRectF', 'PySide2.QtCore.QRectF'),
- "PySide2.QtQuick.QQuickFramebufferObject.isTextureProvider": (),
- "PySide2.QtQuick.QQuickFramebufferObject.mirrorVertically": (),
- "PySide2.QtQuick.QQuickFramebufferObject.releaseResources": (),
- "PySide2.QtQuick.QQuickFramebufferObject.setMirrorVertically": ('bool',),
- "PySide2.QtQuick.QQuickFramebufferObject.setTextureFollowsItemSize": ('bool',),
- "PySide2.QtQuick.QQuickFramebufferObject.textureFollowsItemSize": (),
- "PySide2.QtQuick.QQuickFramebufferObject.textureProvider": (),
- "PySide2.QtQuick.QQuickFramebufferObject.updatePaintNode": ('PySide2.QtQuick.QSGNode', 'PySide2.QtQuick.QQuickItem.UpdatePaintNodeData'),
-# class PySide2.QtQuick.QQuickImageProvider:
- "PySide2.QtQuick.QQuickImageProvider.__init__": ('PySide2.QtQml.QQmlImageProviderBase.ImageType', 'PySide2.QtQml.QQmlImageProviderBase.Flags'),
- "PySide2.QtQuick.QQuickImageProvider.flags": (),
- "PySide2.QtQuick.QQuickImageProvider.imageType": (),
- "PySide2.QtQuick.QQuickImageProvider.requestImage": ('str', 'PySide2.QtCore.QSize', 'PySide2.QtCore.QSize'),
- "PySide2.QtQuick.QQuickImageProvider.requestPixmap": ('str', 'PySide2.QtCore.QSize', 'PySide2.QtCore.QSize'),
- "PySide2.QtQuick.QQuickImageProvider.requestTexture": ('str', 'PySide2.QtCore.QSize', 'PySide2.QtCore.QSize'),
-# class PySide2.QtQuick.QQuickImageResponse:
- "PySide2.QtQuick.QQuickImageResponse.__init__": (),
- "PySide2.QtQuick.QQuickImageResponse.cancel": (),
- "PySide2.QtQuick.QQuickImageResponse.errorString": (),
- "PySide2.QtQuick.QQuickImageResponse.textureFactory": (),
-# class PySide2.QtQuick.QQuickItem:
-# class PySide2.QtQuick.QQuickItem.Flag:
-# class PySide2.QtQuick.QQuickItem.Flags:
-# class PySide2.QtQuick.QQuickItem.ItemChange:
-# class PySide2.QtQuick.QQuickItem.TransformOrigin:
-# class PySide2.QtQuick.QQuickItem.UpdatePaintNodeData:
- "PySide2.QtQuick.QQuickItem.UpdatePaintNodeData.__copy__": (),
- "PySide2.QtQuick.QQuickItem.__init__": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickItem.acceptHoverEvents": (),
- "PySide2.QtQuick.QQuickItem.acceptTouchEvents": (),
- "PySide2.QtQuick.QQuickItem.acceptedMouseButtons": (),
- "PySide2.QtQuick.QQuickItem.activeFocusOnTab": (),
- "PySide2.QtQuick.QQuickItem.antialiasing": (),
- "PySide2.QtQuick.QQuickItem.baselineOffset": (),
- "PySide2.QtQuick.QQuickItem.boundingRect": (),
- "PySide2.QtQuick.QQuickItem.childAt": ('float', 'float'),
- "PySide2.QtQuick.QQuickItem.childItems": (),
- "PySide2.QtQuick.QQuickItem.childMouseEventFilter": ('PySide2.QtQuick.QQuickItem', 'PySide2.QtCore.QEvent'),
- "PySide2.QtQuick.QQuickItem.childrenRect": (),
- "PySide2.QtQuick.QQuickItem.classBegin": (),
- "PySide2.QtQuick.QQuickItem.clip": (),
- "PySide2.QtQuick.QQuickItem.clipRect": (),
- "PySide2.QtQuick.QQuickItem.componentComplete": (),
- "PySide2.QtQuick.QQuickItem.containmentMask": (),
- "PySide2.QtQuick.QQuickItem.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtQuick.QQuickItem.cursor": (),
- "PySide2.QtQuick.QQuickItem.dragEnterEvent": ('PySide2.QtGui.QDragEnterEvent',),
- "PySide2.QtQuick.QQuickItem.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtQuick.QQuickItem.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtQuick.QQuickItem.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtQuick.QQuickItem.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtQuick.QQuickItem.filtersChildMouseEvents": (),
- "PySide2.QtQuick.QQuickItem.flags": (),
- "PySide2.QtQuick.QQuickItem.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtQuick.QQuickItem.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtQuick.QQuickItem.forceActiveFocus": [(), ('PySide2.QtCore.Qt.FocusReason',)],
- "PySide2.QtQuick.QQuickItem.geometryChanged": ('PySide2.QtCore.QRectF', 'PySide2.QtCore.QRectF'),
- "PySide2.QtQuick.QQuickItem.grabMouse": (),
- "PySide2.QtQuick.QQuickItem.grabToImage": [('PySide2.QtCore.QSize',), ('PySide2.QtQml.QJSValue', 'PySide2.QtCore.QSize')],
- "PySide2.QtQuick.QQuickItem.grabTouchPoints": ('typing.List',),
- "PySide2.QtQuick.QQuickItem.hasActiveFocus": (),
- "PySide2.QtQuick.QQuickItem.hasFocus": (),
- "PySide2.QtQuick.QQuickItem.height": (),
- "PySide2.QtQuick.QQuickItem.heightValid": (),
- "PySide2.QtQuick.QQuickItem.hoverEnterEvent": ('PySide2.QtGui.QHoverEvent',),
- "PySide2.QtQuick.QQuickItem.hoverLeaveEvent": ('PySide2.QtGui.QHoverEvent',),
- "PySide2.QtQuick.QQuickItem.hoverMoveEvent": ('PySide2.QtGui.QHoverEvent',),
- "PySide2.QtQuick.QQuickItem.implicitHeight": (),
- "PySide2.QtQuick.QQuickItem.implicitWidth": (),
- "PySide2.QtQuick.QQuickItem.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtQuick.QQuickItem.inputMethodQuery": ('PySide2.QtCore.Qt.InputMethodQuery',),
- "PySide2.QtQuick.QQuickItem.isAncestorOf": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickItem.isComponentComplete": (),
- "PySide2.QtQuick.QQuickItem.isEnabled": (),
- "PySide2.QtQuick.QQuickItem.isFocusScope": (),
- "PySide2.QtQuick.QQuickItem.isTextureProvider": (),
- "PySide2.QtQuick.QQuickItem.isUnderMouse": (),
- "PySide2.QtQuick.QQuickItem.isVisible": (),
- "PySide2.QtQuick.QQuickItem.itemTransform": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickItem.keepMouseGrab": (),
- "PySide2.QtQuick.QQuickItem.keepTouchGrab": (),
- "PySide2.QtQuick.QQuickItem.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtQuick.QQuickItem.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtQuick.QQuickItem.mapFromGlobal": ('PySide2.QtCore.QPointF',),
- "PySide2.QtQuick.QQuickItem.mapFromItem": ('PySide2.QtQuick.QQuickItem', 'PySide2.QtCore.QPointF'),
- "PySide2.QtQuick.QQuickItem.mapFromScene": ('PySide2.QtCore.QPointF',),
- "PySide2.QtQuick.QQuickItem.mapRectFromItem": ('PySide2.QtQuick.QQuickItem', 'PySide2.QtCore.QRectF'),
- "PySide2.QtQuick.QQuickItem.mapRectFromScene": ('PySide2.QtCore.QRectF',),
- "PySide2.QtQuick.QQuickItem.mapRectToItem": ('PySide2.QtQuick.QQuickItem', 'PySide2.QtCore.QRectF'),
- "PySide2.QtQuick.QQuickItem.mapRectToScene": ('PySide2.QtCore.QRectF',),
- "PySide2.QtQuick.QQuickItem.mapToGlobal": ('PySide2.QtCore.QPointF',),
- "PySide2.QtQuick.QQuickItem.mapToItem": ('PySide2.QtQuick.QQuickItem', 'PySide2.QtCore.QPointF'),
- "PySide2.QtQuick.QQuickItem.mapToScene": ('PySide2.QtCore.QPointF',),
- "PySide2.QtQuick.QQuickItem.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickItem.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickItem.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickItem.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickItem.mouseUngrabEvent": (),
- "PySide2.QtQuick.QQuickItem.nextItemInFocusChain": ('bool',),
- "PySide2.QtQuick.QQuickItem.opacity": (),
- "PySide2.QtQuick.QQuickItem.parentItem": (),
- "PySide2.QtQuick.QQuickItem.polish": (),
- "PySide2.QtQuick.QQuickItem.position": (),
- "PySide2.QtQuick.QQuickItem.releaseResources": (),
- "PySide2.QtQuick.QQuickItem.resetAntialiasing": (),
- "PySide2.QtQuick.QQuickItem.resetHeight": (),
- "PySide2.QtQuick.QQuickItem.resetWidth": (),
- "PySide2.QtQuick.QQuickItem.rotation": (),
- "PySide2.QtQuick.QQuickItem.scale": (),
- "PySide2.QtQuick.QQuickItem.scopedFocusItem": (),
- "PySide2.QtQuick.QQuickItem.setAcceptHoverEvents": ('bool',),
- "PySide2.QtQuick.QQuickItem.setAcceptTouchEvents": ('bool',),
- "PySide2.QtQuick.QQuickItem.setAcceptedMouseButtons": ('PySide2.QtCore.Qt.MouseButtons',),
- "PySide2.QtQuick.QQuickItem.setActiveFocusOnTab": ('bool',),
- "PySide2.QtQuick.QQuickItem.setAntialiasing": ('bool',),
- "PySide2.QtQuick.QQuickItem.setBaselineOffset": ('float',),
- "PySide2.QtQuick.QQuickItem.setClip": ('bool',),
- "PySide2.QtQuick.QQuickItem.setContainmentMask": ('PySide2.QtCore.QObject',),
- "PySide2.QtQuick.QQuickItem.setCursor": ('PySide2.QtGui.QCursor',),
- "PySide2.QtQuick.QQuickItem.setEnabled": ('bool',),
- "PySide2.QtQuick.QQuickItem.setFiltersChildMouseEvents": ('bool',),
- "PySide2.QtQuick.QQuickItem.setFlag": ('PySide2.QtQuick.QQuickItem.Flag', 'bool'),
- "PySide2.QtQuick.QQuickItem.setFlags": ('PySide2.QtQuick.QQuickItem.Flags',),
- "PySide2.QtQuick.QQuickItem.setFocus": [('bool',), ('bool', 'PySide2.QtCore.Qt.FocusReason')],
- "PySide2.QtQuick.QQuickItem.setHeight": ('float',),
- "PySide2.QtQuick.QQuickItem.setImplicitHeight": ('float',),
- "PySide2.QtQuick.QQuickItem.setImplicitSize": ('float', 'float'),
- "PySide2.QtQuick.QQuickItem.setImplicitWidth": ('float',),
- "PySide2.QtQuick.QQuickItem.setKeepMouseGrab": ('bool',),
- "PySide2.QtQuick.QQuickItem.setKeepTouchGrab": ('bool',),
- "PySide2.QtQuick.QQuickItem.setOpacity": ('float',),
- "PySide2.QtQuick.QQuickItem.setParentItem": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickItem.setPosition": ('PySide2.QtCore.QPointF',),
- "PySide2.QtQuick.QQuickItem.setRotation": ('float',),
- "PySide2.QtQuick.QQuickItem.setScale": ('float',),
- "PySide2.QtQuick.QQuickItem.setSize": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtQuick.QQuickItem.setSmooth": ('bool',),
- "PySide2.QtQuick.QQuickItem.setState": ('str',),
- "PySide2.QtQuick.QQuickItem.setTransformOrigin": ('PySide2.QtQuick.QQuickItem.TransformOrigin',),
- "PySide2.QtQuick.QQuickItem.setTransformOriginPoint": ('PySide2.QtCore.QPointF',),
- "PySide2.QtQuick.QQuickItem.setVisible": ('bool',),
- "PySide2.QtQuick.QQuickItem.setWidth": ('float',),
- "PySide2.QtQuick.QQuickItem.setX": ('float',),
- "PySide2.QtQuick.QQuickItem.setY": ('float',),
- "PySide2.QtQuick.QQuickItem.setZ": ('float',),
- "PySide2.QtQuick.QQuickItem.size": (),
- "PySide2.QtQuick.QQuickItem.smooth": (),
- "PySide2.QtQuick.QQuickItem.stackAfter": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickItem.stackBefore": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickItem.state": (),
- "PySide2.QtQuick.QQuickItem.textureProvider": (),
- "PySide2.QtQuick.QQuickItem.touchEvent": ('PySide2.QtGui.QTouchEvent',),
- "PySide2.QtQuick.QQuickItem.touchUngrabEvent": (),
- "PySide2.QtQuick.QQuickItem.transformOrigin": (),
- "PySide2.QtQuick.QQuickItem.transformOriginPoint": (),
- "PySide2.QtQuick.QQuickItem.ungrabMouse": (),
- "PySide2.QtQuick.QQuickItem.ungrabTouchPoints": (),
- "PySide2.QtQuick.QQuickItem.unsetCursor": (),
- "PySide2.QtQuick.QQuickItem.update": (),
- "PySide2.QtQuick.QQuickItem.updateInputMethod": ('PySide2.QtCore.Qt.InputMethodQueries',),
- "PySide2.QtQuick.QQuickItem.updatePaintNode": ('PySide2.QtQuick.QSGNode', 'PySide2.QtQuick.QQuickItem.UpdatePaintNodeData'),
- "PySide2.QtQuick.QQuickItem.updatePolish": (),
- "PySide2.QtQuick.QQuickItem.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
- "PySide2.QtQuick.QQuickItem.width": (),
- "PySide2.QtQuick.QQuickItem.widthValid": (),
- "PySide2.QtQuick.QQuickItem.window": (),
- "PySide2.QtQuick.QQuickItem.windowDeactivateEvent": (),
- "PySide2.QtQuick.QQuickItem.x": (),
- "PySide2.QtQuick.QQuickItem.y": (),
- "PySide2.QtQuick.QQuickItem.z": (),
-# class PySide2.QtQuick.QQuickItemGrabResult:
- "PySide2.QtQuick.QQuickItemGrabResult.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtQuick.QQuickItemGrabResult.image": (),
- "PySide2.QtQuick.QQuickItemGrabResult.saveToFile": ('str',),
- "PySide2.QtQuick.QQuickItemGrabResult.url": (),
-# class PySide2.QtQuick.QQuickPaintedItem:
-# class PySide2.QtQuick.QQuickPaintedItem.PerformanceHint:
-# class PySide2.QtQuick.QQuickPaintedItem.PerformanceHints:
-# class PySide2.QtQuick.QQuickPaintedItem.RenderTarget:
- "PySide2.QtQuick.QQuickPaintedItem.__init__": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickPaintedItem.antialiasing": (),
- "PySide2.QtQuick.QQuickPaintedItem.contentsBoundingRect": (),
- "PySide2.QtQuick.QQuickPaintedItem.contentsScale": (),
- "PySide2.QtQuick.QQuickPaintedItem.contentsSize": (),
- "PySide2.QtQuick.QQuickPaintedItem.fillColor": (),
- "PySide2.QtQuick.QQuickPaintedItem.isTextureProvider": (),
- "PySide2.QtQuick.QQuickPaintedItem.mipmap": (),
- "PySide2.QtQuick.QQuickPaintedItem.opaquePainting": (),
- "PySide2.QtQuick.QQuickPaintedItem.paint": ('PySide2.QtGui.QPainter',),
- "PySide2.QtQuick.QQuickPaintedItem.performanceHints": (),
- "PySide2.QtQuick.QQuickPaintedItem.releaseResources": (),
- "PySide2.QtQuick.QQuickPaintedItem.renderTarget": (),
- "PySide2.QtQuick.QQuickPaintedItem.resetContentsSize": (),
- "PySide2.QtQuick.QQuickPaintedItem.setAntialiasing": ('bool',),
- "PySide2.QtQuick.QQuickPaintedItem.setContentsScale": ('float',),
- "PySide2.QtQuick.QQuickPaintedItem.setContentsSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtQuick.QQuickPaintedItem.setFillColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtQuick.QQuickPaintedItem.setMipmap": ('bool',),
- "PySide2.QtQuick.QQuickPaintedItem.setOpaquePainting": ('bool',),
- "PySide2.QtQuick.QQuickPaintedItem.setPerformanceHint": ('PySide2.QtQuick.QQuickPaintedItem.PerformanceHint', 'bool'),
- "PySide2.QtQuick.QQuickPaintedItem.setPerformanceHints": ('PySide2.QtQuick.QQuickPaintedItem.PerformanceHints',),
- "PySide2.QtQuick.QQuickPaintedItem.setRenderTarget": ('PySide2.QtQuick.QQuickPaintedItem.RenderTarget',),
- "PySide2.QtQuick.QQuickPaintedItem.setTextureSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtQuick.QQuickPaintedItem.textureProvider": (),
- "PySide2.QtQuick.QQuickPaintedItem.textureSize": (),
- "PySide2.QtQuick.QQuickPaintedItem.update": [(), ('PySide2.QtCore.QRect',)],
- "PySide2.QtQuick.QQuickPaintedItem.updatePaintNode": ('PySide2.QtQuick.QSGNode', 'PySide2.QtQuick.QQuickItem.UpdatePaintNodeData'),
-# class PySide2.QtQuick.QQuickRenderControl:
- "PySide2.QtQuick.QQuickRenderControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtQuick.QQuickRenderControl.grab": (),
- "PySide2.QtQuick.QQuickRenderControl.initialize": ('PySide2.QtGui.QOpenGLContext',),
- "PySide2.QtQuick.QQuickRenderControl.invalidate": (),
- "PySide2.QtQuick.QQuickRenderControl.polishItems": (),
- "PySide2.QtQuick.QQuickRenderControl.prepareThread": ('PySide2.QtCore.QThread',),
- "PySide2.QtQuick.QQuickRenderControl.render": (),
- "PySide2.QtQuick.QQuickRenderControl.renderWindow": ('PySide2.QtCore.QPoint',),
- "PySide2.QtQuick.QQuickRenderControl.renderWindowFor": ('PySide2.QtQuick.QQuickWindow', 'PySide2.QtCore.QPoint'),
- "PySide2.QtQuick.QQuickRenderControl.sync": (),
-# class PySide2.QtQuick.QQuickTextDocument:
- "PySide2.QtQuick.QQuickTextDocument.__init__": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickTextDocument.textDocument": (),
-# class PySide2.QtQuick.QQuickTextureFactory:
- "PySide2.QtQuick.QQuickTextureFactory.__init__": (),
- "PySide2.QtQuick.QQuickTextureFactory.createTexture": ('PySide2.QtQuick.QQuickWindow',),
- "PySide2.QtQuick.QQuickTextureFactory.image": (),
- "PySide2.QtQuick.QQuickTextureFactory.textureByteCount": (),
- "PySide2.QtQuick.QQuickTextureFactory.textureFactoryForImage": ('PySide2.QtGui.QImage',),
- "PySide2.QtQuick.QQuickTextureFactory.textureSize": (),
-# class PySide2.QtQuick.QQuickTransform:
- "PySide2.QtQuick.QQuickTransform.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtQuick.QQuickTransform.appendToItem": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickTransform.applyTo": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtQuick.QQuickTransform.prependToItem": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickTransform.update": (),
-# class PySide2.QtQuick.QQuickView:
-# class PySide2.QtQuick.QQuickView.ResizeMode:
-# class PySide2.QtQuick.QQuickView.Status:
- "PySide2.QtQuick.QQuickView.__init__": [('PySide2.QtCore.QUrl', 'PySide2.QtGui.QWindow'), ('PySide2.QtCore.QUrl', 'PySide2.QtQuick.QQuickRenderControl'), ('PySide2.QtGui.QWindow',), ('PySide2.QtQml.QQmlEngine', 'PySide2.QtGui.QWindow')],
- "PySide2.QtQuick.QQuickView.engine": (),
- "PySide2.QtQuick.QQuickView.errors": (),
- "PySide2.QtQuick.QQuickView.initialSize": (),
- "PySide2.QtQuick.QQuickView.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtQuick.QQuickView.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtQuick.QQuickView.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickView.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickView.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickView.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtQuick.QQuickView.resizeMode": (),
- "PySide2.QtQuick.QQuickView.rootContext": (),
- "PySide2.QtQuick.QQuickView.rootObject": (),
- "PySide2.QtQuick.QQuickView.setContent": ('PySide2.QtCore.QUrl', 'PySide2.QtQml.QQmlComponent', 'PySide2.QtCore.QObject'),
- "PySide2.QtQuick.QQuickView.setInitialProperties": ('typing.Dict',),
- "PySide2.QtQuick.QQuickView.setResizeMode": ('PySide2.QtQuick.QQuickView.ResizeMode',),
- "PySide2.QtQuick.QQuickView.setSource": ('PySide2.QtCore.QUrl',),
- "PySide2.QtQuick.QQuickView.sizeHint": (),
- "PySide2.QtQuick.QQuickView.source": (),
- "PySide2.QtQuick.QQuickView.status": (),
- "PySide2.QtQuick.QQuickView.timerEvent": ('PySide2.QtCore.QTimerEvent',),
-# class PySide2.QtQuick.QQuickWindow:
-# class PySide2.QtQuick.QQuickWindow.CreateTextureOption:
-# class PySide2.QtQuick.QQuickWindow.CreateTextureOptions:
-# class PySide2.QtQuick.QQuickWindow.NativeObjectType:
-# class PySide2.QtQuick.QQuickWindow.RenderStage:
-# class PySide2.QtQuick.QQuickWindow.SceneGraphError:
-# class PySide2.QtQuick.QQuickWindow.TextRenderType:
- "PySide2.QtQuick.QQuickWindow.__init__": [('PySide2.QtGui.QWindow',), ('PySide2.QtQuick.QQuickRenderControl',)],
- "PySide2.QtQuick.QQuickWindow.accessibleRoot": (),
- "PySide2.QtQuick.QQuickWindow.activeFocusItem": (),
- "PySide2.QtQuick.QQuickWindow.beginExternalCommands": (),
- "PySide2.QtQuick.QQuickWindow.clearBeforeRendering": (),
- "PySide2.QtQuick.QQuickWindow.color": (),
- "PySide2.QtQuick.QQuickWindow.contentItem": (),
- "PySide2.QtQuick.QQuickWindow.createTextureFromId": ('int', 'PySide2.QtCore.QSize', 'PySide2.QtQuick.QQuickWindow.CreateTextureOptions'),
- "PySide2.QtQuick.QQuickWindow.createTextureFromImage": [('PySide2.QtGui.QImage',), ('PySide2.QtGui.QImage', 'PySide2.QtQuick.QQuickWindow.CreateTextureOptions')],
- "PySide2.QtQuick.QQuickWindow.createTextureFromNativeObject": ('PySide2.QtQuick.QQuickWindow.NativeObjectType', 'int', 'int', 'PySide2.QtCore.QSize', 'PySide2.QtQuick.QQuickWindow.CreateTextureOptions'),
- "PySide2.QtQuick.QQuickWindow.effectiveDevicePixelRatio": (),
- "PySide2.QtQuick.QQuickWindow.endExternalCommands": (),
- "PySide2.QtQuick.QQuickWindow.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtQuick.QQuickWindow.exposeEvent": ('PySide2.QtGui.QExposeEvent',),
- "PySide2.QtQuick.QQuickWindow.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtQuick.QQuickWindow.focusObject": (),
- "PySide2.QtQuick.QQuickWindow.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtQuick.QQuickWindow.grabWindow": (),
- "PySide2.QtQuick.QQuickWindow.hasDefaultAlphaBuffer": (),
- "PySide2.QtQuick.QQuickWindow.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtQuick.QQuickWindow.incubationController": (),
- "PySide2.QtQuick.QQuickWindow.isPersistentOpenGLContext": (),
- "PySide2.QtQuick.QQuickWindow.isPersistentSceneGraph": (),
- "PySide2.QtQuick.QQuickWindow.isSceneGraphInitialized": (),
- "PySide2.QtQuick.QQuickWindow.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtQuick.QQuickWindow.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtQuick.QQuickWindow.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickWindow.mouseGrabberItem": (),
- "PySide2.QtQuick.QQuickWindow.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickWindow.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickWindow.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickWindow.openglContext": (),
- "PySide2.QtQuick.QQuickWindow.releaseResources": (),
- "PySide2.QtQuick.QQuickWindow.renderTarget": (),
- "PySide2.QtQuick.QQuickWindow.renderTargetId": (),
- "PySide2.QtQuick.QQuickWindow.renderTargetSize": (),
- "PySide2.QtQuick.QQuickWindow.resetOpenGLState": (),
- "PySide2.QtQuick.QQuickWindow.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtQuick.QQuickWindow.sceneGraphBackend": (),
- "PySide2.QtQuick.QQuickWindow.scheduleRenderJob": ('PySide2.QtCore.QRunnable', 'PySide2.QtQuick.QQuickWindow.RenderStage'),
- "PySide2.QtQuick.QQuickWindow.sendEvent": ('PySide2.QtQuick.QQuickItem', 'PySide2.QtCore.QEvent'),
- "PySide2.QtQuick.QQuickWindow.setClearBeforeRendering": ('bool',),
- "PySide2.QtQuick.QQuickWindow.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtQuick.QQuickWindow.setDefaultAlphaBuffer": ('bool',),
- "PySide2.QtQuick.QQuickWindow.setPersistentOpenGLContext": ('bool',),
- "PySide2.QtQuick.QQuickWindow.setPersistentSceneGraph": ('bool',),
- "PySide2.QtQuick.QQuickWindow.setRenderTarget": [('PySide2.QtGui.QOpenGLFramebufferObject',), ('int', 'PySide2.QtCore.QSize')],
- "PySide2.QtQuick.QQuickWindow.setSceneGraphBackend": ('str',),
- "PySide2.QtQuick.QQuickWindow.setTextRenderType": ('PySide2.QtQuick.QQuickWindow.TextRenderType',),
- "PySide2.QtQuick.QQuickWindow.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtQuick.QQuickWindow.textRenderType": (),
- "PySide2.QtQuick.QQuickWindow.update": (),
- "PySide2.QtQuick.QQuickWindow.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtQuick.QSGAbstractRenderer:
-# class PySide2.QtQuick.QSGAbstractRenderer.ClearMode:
-# class PySide2.QtQuick.QSGAbstractRenderer.ClearModeBit:
-# class PySide2.QtQuick.QSGAbstractRenderer.MatrixTransformFlag:
-# class PySide2.QtQuick.QSGAbstractRenderer.MatrixTransformFlags:
- "PySide2.QtQuick.QSGAbstractRenderer.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtQuick.QSGAbstractRenderer.clearColor": (),
- "PySide2.QtQuick.QSGAbstractRenderer.clearMode": (),
- "PySide2.QtQuick.QSGAbstractRenderer.deviceRect": (),
- "PySide2.QtQuick.QSGAbstractRenderer.nodeChanged": ('PySide2.QtQuick.QSGNode', 'PySide2.QtQuick.QSGNode.DirtyState'),
- "PySide2.QtQuick.QSGAbstractRenderer.projectionMatrix": (),
- "PySide2.QtQuick.QSGAbstractRenderer.projectionMatrixWithNativeNDC": (),
- "PySide2.QtQuick.QSGAbstractRenderer.renderScene": ('int',),
- "PySide2.QtQuick.QSGAbstractRenderer.setClearColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtQuick.QSGAbstractRenderer.setClearMode": ('PySide2.QtQuick.QSGAbstractRenderer.ClearMode',),
- "PySide2.QtQuick.QSGAbstractRenderer.setDeviceRect": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QSize',)],
- "PySide2.QtQuick.QSGAbstractRenderer.setProjectionMatrix": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtQuick.QSGAbstractRenderer.setProjectionMatrixToRect": [('PySide2.QtCore.QRectF',), ('PySide2.QtCore.QRectF', 'PySide2.QtQuick.QSGAbstractRenderer.MatrixTransformFlags')],
- "PySide2.QtQuick.QSGAbstractRenderer.setProjectionMatrixWithNativeNDC": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtQuick.QSGAbstractRenderer.setViewportRect": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QSize',)],
- "PySide2.QtQuick.QSGAbstractRenderer.viewportRect": (),
-# class PySide2.QtQuick.QSGBasicGeometryNode:
- "PySide2.QtQuick.QSGBasicGeometryNode.__init__": ('PySide2.QtQuick.QSGNode.NodeType',),
- "PySide2.QtQuick.QSGBasicGeometryNode.clipList": (),
- "PySide2.QtQuick.QSGBasicGeometryNode.geometry": (),
- "PySide2.QtQuick.QSGBasicGeometryNode.matrix": (),
- "PySide2.QtQuick.QSGBasicGeometryNode.setGeometry": ('PySide2.QtQuick.QSGGeometry',),
- "PySide2.QtQuick.QSGBasicGeometryNode.setRendererClipList": ('PySide2.QtQuick.QSGClipNode',),
- "PySide2.QtQuick.QSGBasicGeometryNode.setRendererMatrix": ('PySide2.QtGui.QMatrix4x4',),
-# class PySide2.QtQuick.QSGClipNode:
- "PySide2.QtQuick.QSGClipNode.__init__": (),
- "PySide2.QtQuick.QSGClipNode.clipRect": (),
- "PySide2.QtQuick.QSGClipNode.isRectangular": (),
- "PySide2.QtQuick.QSGClipNode.setClipRect": ('PySide2.QtCore.QRectF',),
- "PySide2.QtQuick.QSGClipNode.setIsRectangular": ('bool',),
-# class PySide2.QtQuick.QSGDynamicTexture:
- "PySide2.QtQuick.QSGDynamicTexture.__init__": (),
- "PySide2.QtQuick.QSGDynamicTexture.updateTexture": (),
-# class PySide2.QtQuick.QSGEngine:
-# class PySide2.QtQuick.QSGEngine.CreateTextureOption:
-# class PySide2.QtQuick.QSGEngine.CreateTextureOptions:
- "PySide2.QtQuick.QSGEngine.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtQuick.QSGEngine.createRenderer": (),
- "PySide2.QtQuick.QSGEngine.createTextureFromId": ('int', 'PySide2.QtCore.QSize', 'PySide2.QtQuick.QSGEngine.CreateTextureOptions'),
- "PySide2.QtQuick.QSGEngine.createTextureFromImage": ('PySide2.QtGui.QImage', 'PySide2.QtQuick.QSGEngine.CreateTextureOptions'),
- "PySide2.QtQuick.QSGEngine.initialize": ('PySide2.QtGui.QOpenGLContext',),
- "PySide2.QtQuick.QSGEngine.invalidate": (),
-# class PySide2.QtQuick.QSGGeometry:
-# class PySide2.QtQuick.QSGGeometry.Attribute:
- "PySide2.QtQuick.QSGGeometry.Attribute.__init__": [(), ('PySide2.QtQuick.QSGGeometry.Attribute',)],
- "PySide2.QtQuick.QSGGeometry.Attribute.__copy__": (),
- "PySide2.QtQuick.QSGGeometry.Attribute.create": ('int', 'int', 'int', 'bool'),
- "PySide2.QtQuick.QSGGeometry.Attribute.createWithAttributeType": ('int', 'int', 'int', 'PySide2.QtQuick.QSGGeometry.AttributeType'),
-# class PySide2.QtQuick.QSGGeometry.AttributeSet:
- "PySide2.QtQuick.QSGGeometry.AttributeSet.__init__": [(), ('PySide2.QtQuick.QSGGeometry.AttributeSet',)],
- "PySide2.QtQuick.QSGGeometry.AttributeSet.__copy__": (),
-# class PySide2.QtQuick.QSGGeometry.AttributeType:
-# class PySide2.QtQuick.QSGGeometry.ColoredPoint2D:
- "PySide2.QtQuick.QSGGeometry.ColoredPoint2D.__init__": [(), ('PySide2.QtQuick.QSGGeometry.ColoredPoint2D',)],
- "PySide2.QtQuick.QSGGeometry.ColoredPoint2D.__copy__": (),
- "PySide2.QtQuick.QSGGeometry.ColoredPoint2D.set": ('float', 'float', 'int', 'int', 'int', 'int'),
-# class PySide2.QtQuick.QSGGeometry.DataPattern:
-# class PySide2.QtQuick.QSGGeometry.DrawingMode:
-# class PySide2.QtQuick.QSGGeometry.Point2D:
- "PySide2.QtQuick.QSGGeometry.Point2D.__init__": [(), ('PySide2.QtQuick.QSGGeometry.Point2D',)],
- "PySide2.QtQuick.QSGGeometry.Point2D.__copy__": (),
- "PySide2.QtQuick.QSGGeometry.Point2D.set": ('float', 'float'),
-# class PySide2.QtQuick.QSGGeometry.TexturedPoint2D:
- "PySide2.QtQuick.QSGGeometry.TexturedPoint2D.__init__": [(), ('PySide2.QtQuick.QSGGeometry.TexturedPoint2D',)],
- "PySide2.QtQuick.QSGGeometry.TexturedPoint2D.__copy__": (),
- "PySide2.QtQuick.QSGGeometry.TexturedPoint2D.set": ('float', 'float', 'float', 'float'),
-# class PySide2.QtQuick.QSGGeometry.Type:
- "PySide2.QtQuick.QSGGeometry.__init__": ('PySide2.QtQuick.QSGGeometry.AttributeSet', 'int', 'int', 'int'),
- "PySide2.QtQuick.QSGGeometry.allocate": ('int', 'int'),
- "PySide2.QtQuick.QSGGeometry.attributeCount": (),
- "PySide2.QtQuick.QSGGeometry.attributes": (),
- "PySide2.QtQuick.QSGGeometry.defaultAttributes_ColoredPoint2D": (),
- "PySide2.QtQuick.QSGGeometry.defaultAttributes_Point2D": (),
- "PySide2.QtQuick.QSGGeometry.defaultAttributes_TexturedPoint2D": (),
- "PySide2.QtQuick.QSGGeometry.drawingMode": (),
- "PySide2.QtQuick.QSGGeometry.indexCount": (),
- "PySide2.QtQuick.QSGGeometry.indexData": (),
- "PySide2.QtQuick.QSGGeometry.indexDataAsUInt": (),
- "PySide2.QtQuick.QSGGeometry.indexDataAsUShort": (),
- "PySide2.QtQuick.QSGGeometry.indexDataPattern": (),
- "PySide2.QtQuick.QSGGeometry.indexType": (),
- "PySide2.QtQuick.QSGGeometry.lineWidth": (),
- "PySide2.QtQuick.QSGGeometry.markIndexDataDirty": (),
- "PySide2.QtQuick.QSGGeometry.markVertexDataDirty": (),
- "PySide2.QtQuick.QSGGeometry.setDrawingMode": ('int',),
- "PySide2.QtQuick.QSGGeometry.setIndexDataPattern": ('PySide2.QtQuick.QSGGeometry.DataPattern',),
- "PySide2.QtQuick.QSGGeometry.setLineWidth": ('float',),
- "PySide2.QtQuick.QSGGeometry.setVertexDataPattern": ('PySide2.QtQuick.QSGGeometry.DataPattern',),
- "PySide2.QtQuick.QSGGeometry.sizeOfIndex": (),
- "PySide2.QtQuick.QSGGeometry.sizeOfVertex": (),
- "PySide2.QtQuick.QSGGeometry.updateColoredRectGeometry": ('PySide2.QtQuick.QSGGeometry', 'PySide2.QtCore.QRectF'),
- "PySide2.QtQuick.QSGGeometry.updateRectGeometry": ('PySide2.QtQuick.QSGGeometry', 'PySide2.QtCore.QRectF'),
- "PySide2.QtQuick.QSGGeometry.updateTexturedRectGeometry": ('PySide2.QtQuick.QSGGeometry', 'PySide2.QtCore.QRectF', 'PySide2.QtCore.QRectF'),
- "PySide2.QtQuick.QSGGeometry.vertexCount": (),
- "PySide2.QtQuick.QSGGeometry.vertexData": (),
- "PySide2.QtQuick.QSGGeometry.vertexDataAsColoredPoint2D": (),
- "PySide2.QtQuick.QSGGeometry.vertexDataAsPoint2D": (),
- "PySide2.QtQuick.QSGGeometry.vertexDataAsTexturedPoint2D": (),
- "PySide2.QtQuick.QSGGeometry.vertexDataPattern": (),
-# class PySide2.QtQuick.QSGGeometryNode:
- "PySide2.QtQuick.QSGGeometryNode.__init__": (),
- "PySide2.QtQuick.QSGGeometryNode.inheritedOpacity": (),
- "PySide2.QtQuick.QSGGeometryNode.renderOrder": (),
- "PySide2.QtQuick.QSGGeometryNode.setInheritedOpacity": ('float',),
- "PySide2.QtQuick.QSGGeometryNode.setRenderOrder": ('int',),
-# class PySide2.QtQuick.QSGMaterialType:
- "PySide2.QtQuick.QSGMaterialType.__init__": (),
-# class PySide2.QtQuick.QSGNode:
-# class PySide2.QtQuick.QSGNode.DirtyState:
-# class PySide2.QtQuick.QSGNode.DirtyStateBit:
-# class PySide2.QtQuick.QSGNode.Flag:
-# class PySide2.QtQuick.QSGNode.Flags:
-# class PySide2.QtQuick.QSGNode.NodeType:
- "PySide2.QtQuick.QSGNode.__init__": [(), ('PySide2.QtQuick.QSGNode.NodeType',)],
- "PySide2.QtQuick.QSGNode.appendChildNode": ('PySide2.QtQuick.QSGNode',),
- "PySide2.QtQuick.QSGNode.childAtIndex": ('int',),
- "PySide2.QtQuick.QSGNode.childCount": (),
- "PySide2.QtQuick.QSGNode.clearDirty": (),
- "PySide2.QtQuick.QSGNode.dirtyState": (),
- "PySide2.QtQuick.QSGNode.firstChild": (),
- "PySide2.QtQuick.QSGNode.flags": (),
- "PySide2.QtQuick.QSGNode.insertChildNodeAfter": ('PySide2.QtQuick.QSGNode', 'PySide2.QtQuick.QSGNode'),
- "PySide2.QtQuick.QSGNode.insertChildNodeBefore": ('PySide2.QtQuick.QSGNode', 'PySide2.QtQuick.QSGNode'),
- "PySide2.QtQuick.QSGNode.isSubtreeBlocked": (),
- "PySide2.QtQuick.QSGNode.lastChild": (),
- "PySide2.QtQuick.QSGNode.markDirty": ('PySide2.QtQuick.QSGNode.DirtyState',),
- "PySide2.QtQuick.QSGNode.nextSibling": (),
- "PySide2.QtQuick.QSGNode.parent": (),
- "PySide2.QtQuick.QSGNode.prependChildNode": ('PySide2.QtQuick.QSGNode',),
- "PySide2.QtQuick.QSGNode.preprocess": (),
- "PySide2.QtQuick.QSGNode.previousSibling": (),
- "PySide2.QtQuick.QSGNode.removeAllChildNodes": (),
- "PySide2.QtQuick.QSGNode.removeChildNode": ('PySide2.QtQuick.QSGNode',),
- "PySide2.QtQuick.QSGNode.reparentChildNodesTo": ('PySide2.QtQuick.QSGNode',),
- "PySide2.QtQuick.QSGNode.setFlag": ('PySide2.QtQuick.QSGNode.Flag', 'bool'),
- "PySide2.QtQuick.QSGNode.setFlags": ('PySide2.QtQuick.QSGNode.Flags', 'bool'),
- "PySide2.QtQuick.QSGNode.type": (),
-# class PySide2.QtQuick.QSGOpacityNode:
- "PySide2.QtQuick.QSGOpacityNode.__init__": (),
- "PySide2.QtQuick.QSGOpacityNode.combinedOpacity": (),
- "PySide2.QtQuick.QSGOpacityNode.isSubtreeBlocked": (),
- "PySide2.QtQuick.QSGOpacityNode.opacity": (),
- "PySide2.QtQuick.QSGOpacityNode.setCombinedOpacity": ('float',),
- "PySide2.QtQuick.QSGOpacityNode.setOpacity": ('float',),
-# class PySide2.QtQuick.QSGSimpleRectNode:
- "PySide2.QtQuick.QSGSimpleRectNode.__init__": [(), ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QColor')],
- "PySide2.QtQuick.QSGSimpleRectNode.color": (),
- "PySide2.QtQuick.QSGSimpleRectNode.rect": (),
- "PySide2.QtQuick.QSGSimpleRectNode.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtQuick.QSGSimpleRectNode.setRect": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
-# class PySide2.QtQuick.QSGSimpleTextureNode:
-# class PySide2.QtQuick.QSGSimpleTextureNode.TextureCoordinatesTransformFlag:
-# class PySide2.QtQuick.QSGSimpleTextureNode.TextureCoordinatesTransformMode:
- "PySide2.QtQuick.QSGSimpleTextureNode.__init__": (),
- "PySide2.QtQuick.QSGSimpleTextureNode.filtering": (),
- "PySide2.QtQuick.QSGSimpleTextureNode.ownsTexture": (),
- "PySide2.QtQuick.QSGSimpleTextureNode.rect": (),
- "PySide2.QtQuick.QSGSimpleTextureNode.setFiltering": ('PySide2.QtQuick.QSGTexture.Filtering',),
- "PySide2.QtQuick.QSGSimpleTextureNode.setOwnsTexture": ('bool',),
- "PySide2.QtQuick.QSGSimpleTextureNode.setRect": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtQuick.QSGSimpleTextureNode.setSourceRect": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtQuick.QSGSimpleTextureNode.setTexture": ('PySide2.QtQuick.QSGTexture',),
- "PySide2.QtQuick.QSGSimpleTextureNode.setTextureCoordinatesTransform": ('PySide2.QtQuick.QSGSimpleTextureNode.TextureCoordinatesTransformMode',),
- "PySide2.QtQuick.QSGSimpleTextureNode.sourceRect": (),
- "PySide2.QtQuick.QSGSimpleTextureNode.texture": (),
- "PySide2.QtQuick.QSGSimpleTextureNode.textureCoordinatesTransform": (),
-# class PySide2.QtQuick.QSGTexture:
-# class PySide2.QtQuick.QSGTexture.AnisotropyLevel:
-# class PySide2.QtQuick.QSGTexture.Filtering:
-# class PySide2.QtQuick.QSGTexture.WrapMode:
- "PySide2.QtQuick.QSGTexture.__init__": (),
- "PySide2.QtQuick.QSGTexture.anisotropyLevel": (),
- "PySide2.QtQuick.QSGTexture.bind": (),
- "PySide2.QtQuick.QSGTexture.comparisonKey": (),
- "PySide2.QtQuick.QSGTexture.convertToNormalizedSourceRect": ('PySide2.QtCore.QRectF',),
- "PySide2.QtQuick.QSGTexture.filtering": (),
- "PySide2.QtQuick.QSGTexture.hasAlphaChannel": (),
- "PySide2.QtQuick.QSGTexture.hasMipmaps": (),
- "PySide2.QtQuick.QSGTexture.horizontalWrapMode": (),
- "PySide2.QtQuick.QSGTexture.isAtlasTexture": (),
- "PySide2.QtQuick.QSGTexture.mipmapFiltering": (),
- "PySide2.QtQuick.QSGTexture.normalizedTextureSubRect": (),
- "PySide2.QtQuick.QSGTexture.removedFromAtlas": (),
- "PySide2.QtQuick.QSGTexture.setAnisotropyLevel": ('PySide2.QtQuick.QSGTexture.AnisotropyLevel',),
- "PySide2.QtQuick.QSGTexture.setFiltering": ('PySide2.QtQuick.QSGTexture.Filtering',),
- "PySide2.QtQuick.QSGTexture.setHorizontalWrapMode": ('PySide2.QtQuick.QSGTexture.WrapMode',),
- "PySide2.QtQuick.QSGTexture.setMipmapFiltering": ('PySide2.QtQuick.QSGTexture.Filtering',),
- "PySide2.QtQuick.QSGTexture.setVerticalWrapMode": ('PySide2.QtQuick.QSGTexture.WrapMode',),
- "PySide2.QtQuick.QSGTexture.textureId": (),
- "PySide2.QtQuick.QSGTexture.textureSize": (),
- "PySide2.QtQuick.QSGTexture.updateBindOptions": ('bool',),
- "PySide2.QtQuick.QSGTexture.verticalWrapMode": (),
-# class PySide2.QtQuick.QSGTextureProvider:
- "PySide2.QtQuick.QSGTextureProvider.__init__": (),
- "PySide2.QtQuick.QSGTextureProvider.texture": (),
-# class PySide2.QtQuick.QSGTransformNode:
- "PySide2.QtQuick.QSGTransformNode.__init__": (),
- "PySide2.QtQuick.QSGTransformNode.combinedMatrix": (),
- "PySide2.QtQuick.QSGTransformNode.matrix": (),
- "PySide2.QtQuick.QSGTransformNode.setCombinedMatrix": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtQuick.QSGTransformNode.setMatrix": ('PySide2.QtGui.QMatrix4x4',),
-# class PySide2.QtQuick.QSharedPointer<QQuickItemGrabResult >:
- "PySide2.QtQuick.QSharedPointer<QQuickItemGrabResult >.__copy__": (),
- "PySide2.QtQuick.QSharedPointer<QQuickItemGrabResult >.data": (),
- }) if "PySide2.QtQuick" in sys.modules else None
-# Module PySide2.QtQuickWidgets
-sig_dict.update({
-# class PySide2.QtQuickWidgets.QQuickWidget:
-# class PySide2.QtQuickWidgets.QQuickWidget.ResizeMode:
-# class PySide2.QtQuickWidgets.QQuickWidget.Status:
- "PySide2.QtQuickWidgets.QQuickWidget.__init__": [('PySide2.QtCore.QUrl', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtQml.QQmlEngine', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtQuickWidgets.QQuickWidget.dragEnterEvent": ('PySide2.QtGui.QDragEnterEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.engine": (),
- "PySide2.QtQuickWidgets.QQuickWidget.errors": (),
- "PySide2.QtQuickWidgets.QQuickWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.focusNextPrevChild": ('bool',),
- "PySide2.QtQuickWidgets.QQuickWidget.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.format": (),
- "PySide2.QtQuickWidgets.QQuickWidget.grabFramebuffer": (),
- "PySide2.QtQuickWidgets.QQuickWidget.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.initialSize": (),
- "PySide2.QtQuickWidgets.QQuickWidget.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.quickWindow": (),
- "PySide2.QtQuickWidgets.QQuickWidget.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.resizeMode": (),
- "PySide2.QtQuickWidgets.QQuickWidget.rootContext": (),
- "PySide2.QtQuickWidgets.QQuickWidget.rootObject": (),
- "PySide2.QtQuickWidgets.QQuickWidget.setClearColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtQuickWidgets.QQuickWidget.setContent": ('PySide2.QtCore.QUrl', 'PySide2.QtQml.QQmlComponent', 'PySide2.QtCore.QObject'),
- "PySide2.QtQuickWidgets.QQuickWidget.setFormat": ('PySide2.QtGui.QSurfaceFormat',),
- "PySide2.QtQuickWidgets.QQuickWidget.setResizeMode": ('PySide2.QtQuickWidgets.QQuickWidget.ResizeMode',),
- "PySide2.QtQuickWidgets.QQuickWidget.setSource": ('PySide2.QtCore.QUrl',),
- "PySide2.QtQuickWidgets.QQuickWidget.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.sizeHint": (),
- "PySide2.QtQuickWidgets.QQuickWidget.source": (),
- "PySide2.QtQuickWidgets.QQuickWidget.status": (),
- "PySide2.QtQuickWidgets.QQuickWidget.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
- }) if "PySide2.QtQuickWidgets" in sys.modules else None
-# Module PySide2.QtRemoteObjects
-sig_dict.update({
-# class PySide2.QtRemoteObjects.QAbstractItemModelReplica:
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.availableRoles": (),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.hasChildren": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.hasData": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.index": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.isInitialized": (),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.roleNames": (),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.selectionModel": (),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
-# class PySide2.QtRemoteObjects.QRemoteObjectAbstractPersistedStore:
- "PySide2.QtRemoteObjects.QRemoteObjectAbstractPersistedStore.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtRemoteObjects.QRemoteObjectAbstractPersistedStore.restoreProperties": ('str', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtRemoteObjects.QRemoteObjectAbstractPersistedStore.saveProperties": ('str', 'PySide2.QtCore.QByteArray', 'typing.Sequence'),
-# class PySide2.QtRemoteObjects.QRemoteObjectDynamicReplica:
-# class PySide2.QtRemoteObjects.QRemoteObjectHost:
- "PySide2.QtRemoteObjects.QRemoteObjectHost.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtCore.QUrl', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QUrl', 'PySide2.QtCore.QUrl', 'PySide2.QtRemoteObjects.QRemoteObjectHostBase.AllowedSchemas', 'PySide2.QtCore.QObject')],
- "PySide2.QtRemoteObjects.QRemoteObjectHost.hostUrl": (),
- "PySide2.QtRemoteObjects.QRemoteObjectHost.setHostUrl": ('PySide2.QtCore.QUrl', 'PySide2.QtRemoteObjects.QRemoteObjectHostBase.AllowedSchemas'),
-# class PySide2.QtRemoteObjects.QRemoteObjectHostBase:
-# class PySide2.QtRemoteObjects.QRemoteObjectHostBase.AllowedSchemas:
- "PySide2.QtRemoteObjects.QRemoteObjectHostBase.addHostSideConnection": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtRemoteObjects.QRemoteObjectHostBase.disableRemoting": ('PySide2.QtCore.QObject',),
- "PySide2.QtRemoteObjects.QRemoteObjectHostBase.enableRemoting": [('PySide2.QtCore.QAbstractItemModel', 'str', 'typing.List', 'PySide2.QtCore.QItemSelectionModel'), ('PySide2.QtCore.QObject', 'str')],
- "PySide2.QtRemoteObjects.QRemoteObjectHostBase.hostUrl": (),
- "PySide2.QtRemoteObjects.QRemoteObjectHostBase.proxy": ('PySide2.QtCore.QUrl', 'PySide2.QtCore.QUrl'),
- "PySide2.QtRemoteObjects.QRemoteObjectHostBase.reverseProxy": (),
- "PySide2.QtRemoteObjects.QRemoteObjectHostBase.setHostUrl": ('PySide2.QtCore.QUrl', 'PySide2.QtRemoteObjects.QRemoteObjectHostBase.AllowedSchemas'),
- "PySide2.QtRemoteObjects.QRemoteObjectHostBase.setName": ('str',),
-# class PySide2.QtRemoteObjects.QRemoteObjectNode:
-# class PySide2.QtRemoteObjects.QRemoteObjectNode.ErrorCode:
- "PySide2.QtRemoteObjects.QRemoteObjectNode.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtCore.QUrl', 'PySide2.QtCore.QObject')],
- "PySide2.QtRemoteObjects.QRemoteObjectNode.acquireDynamic": ('str',),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.acquireModel": ('str',),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.addClientSideConnection": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.connectToNode": ('PySide2.QtCore.QUrl',),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.heartbeatInterval": (),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.instances": ('str',),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.lastError": (),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.persistedStore": (),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.registry": (),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.registryUrl": (),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.setHeartbeatInterval": ('int',),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.setName": ('str',),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.setPersistedStore": ('PySide2.QtRemoteObjects.QRemoteObjectAbstractPersistedStore',),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.setRegistryUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.waitForRegistry": ('int',),
-# class PySide2.QtRemoteObjects.QRemoteObjectPendingCall:
-# class PySide2.QtRemoteObjects.QRemoteObjectPendingCall.Error:
- "PySide2.QtRemoteObjects.QRemoteObjectPendingCall.__init__": [(), ('PySide2.QtRemoteObjects.QRemoteObjectPendingCall',)],
- "PySide2.QtRemoteObjects.QRemoteObjectPendingCall.error": (),
- "PySide2.QtRemoteObjects.QRemoteObjectPendingCall.fromCompletedCall": ('typing.Any',),
- "PySide2.QtRemoteObjects.QRemoteObjectPendingCall.isFinished": (),
- "PySide2.QtRemoteObjects.QRemoteObjectPendingCall.returnValue": (),
- "PySide2.QtRemoteObjects.QRemoteObjectPendingCall.waitForFinished": ('int',),
-# class PySide2.QtRemoteObjects.QRemoteObjectPendingCallWatcher:
- "PySide2.QtRemoteObjects.QRemoteObjectPendingCallWatcher.__init__": ('PySide2.QtRemoteObjects.QRemoteObjectPendingCall', 'PySide2.QtCore.QObject'),
- "PySide2.QtRemoteObjects.QRemoteObjectPendingCallWatcher.isFinished": (),
- "PySide2.QtRemoteObjects.QRemoteObjectPendingCallWatcher.waitForFinished": [(), ('int',)],
-# class PySide2.QtRemoteObjects.QRemoteObjectRegistry:
- "PySide2.QtRemoteObjects.QRemoteObjectRegistry.initialize": (),
- "PySide2.QtRemoteObjects.QRemoteObjectRegistry.pushToRegistryIfNeeded": (),
- "PySide2.QtRemoteObjects.QRemoteObjectRegistry.registerMetatypes": (),
-# class PySide2.QtRemoteObjects.QRemoteObjectRegistryHost:
- "PySide2.QtRemoteObjects.QRemoteObjectRegistryHost.__init__": ('PySide2.QtCore.QUrl', 'PySide2.QtCore.QObject'),
- "PySide2.QtRemoteObjects.QRemoteObjectRegistryHost.setRegistryUrl": ('PySide2.QtCore.QUrl',),
-# class PySide2.QtRemoteObjects.QRemoteObjectReplica:
-# class PySide2.QtRemoteObjects.QRemoteObjectReplica.State:
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.__init__": (),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.initialize": (),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.initializeNode": ('PySide2.QtRemoteObjects.QRemoteObjectNode', 'str'),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.isInitialized": (),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.isReplicaValid": (),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.node": (),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.persistProperties": ('str', 'PySide2.QtCore.QByteArray', 'typing.Sequence'),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.propAsVariant": ('int',),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.retrieveProperties": ('str', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.send": ('PySide2.QtCore.QMetaObject.Call', 'int', 'typing.Sequence'),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.sendWithReply": ('PySide2.QtCore.QMetaObject.Call', 'int', 'typing.Sequence'),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.setChild": ('int', 'typing.Any'),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.setNode": ('PySide2.QtRemoteObjects.QRemoteObjectNode',),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.setProperties": ('typing.Sequence',),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.state": (),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.waitForSource": ('int',),
-# class PySide2.QtRemoteObjects.QRemoteObjectSettingsStore:
- "PySide2.QtRemoteObjects.QRemoteObjectSettingsStore.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtRemoteObjects.QRemoteObjectSettingsStore.restoreProperties": ('str', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtRemoteObjects.QRemoteObjectSettingsStore.saveProperties": ('str', 'PySide2.QtCore.QByteArray', 'typing.Sequence'),
- }) if "PySide2.QtRemoteObjects" in sys.modules else None
-# Module PySide2.QtScxml
-sig_dict.update({
-# class PySide2.QtScxml.QScxmlCompiler:
-# class PySide2.QtScxml.QScxmlCompiler.Loader:
- "PySide2.QtScxml.QScxmlCompiler.Loader.__init__": (),
- "PySide2.QtScxml.QScxmlCompiler.Loader.load": ('str', 'str'),
- "PySide2.QtScxml.QScxmlCompiler.__init__": ('PySide2.QtCore.QXmlStreamReader',),
- "PySide2.QtScxml.QScxmlCompiler.compile": (),
- "PySide2.QtScxml.QScxmlCompiler.errors": (),
- "PySide2.QtScxml.QScxmlCompiler.fileName": (),
- "PySide2.QtScxml.QScxmlCompiler.loader": (),
- "PySide2.QtScxml.QScxmlCompiler.setFileName": ('str',),
- "PySide2.QtScxml.QScxmlCompiler.setLoader": ('PySide2.QtScxml.QScxmlCompiler.Loader',),
-# class PySide2.QtScxml.QScxmlCppDataModel:
- "PySide2.QtScxml.QScxmlCppDataModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtScxml.QScxmlCppDataModel.evaluateAssignment": ('int',),
- "PySide2.QtScxml.QScxmlCppDataModel.evaluateForeach": ('int', 'PySide2.QtScxml.QScxmlDataModel.ForeachLoopBody'),
- "PySide2.QtScxml.QScxmlCppDataModel.evaluateInitialization": ('int',),
- "PySide2.QtScxml.QScxmlCppDataModel.hasScxmlProperty": ('str',),
- "PySide2.QtScxml.QScxmlCppDataModel.inState": ('str',),
- "PySide2.QtScxml.QScxmlCppDataModel.scxmlEvent": (),
- "PySide2.QtScxml.QScxmlCppDataModel.scxmlProperty": ('str',),
- "PySide2.QtScxml.QScxmlCppDataModel.setScxmlEvent": ('PySide2.QtScxml.QScxmlEvent',),
- "PySide2.QtScxml.QScxmlCppDataModel.setScxmlProperty": ('str', 'typing.Any', 'str'),
- "PySide2.QtScxml.QScxmlCppDataModel.setup": ('typing.Dict',),
-# class PySide2.QtScxml.QScxmlDataModel:
-# class PySide2.QtScxml.QScxmlDataModel.ForeachLoopBody:
- "PySide2.QtScxml.QScxmlDataModel.ForeachLoopBody.__init__": (),
- "PySide2.QtScxml.QScxmlDataModel.ForeachLoopBody.run": (),
- "PySide2.QtScxml.QScxmlDataModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtScxml.QScxmlDataModel.evaluateAssignment": ('int',),
- "PySide2.QtScxml.QScxmlDataModel.evaluateForeach": ('int', 'PySide2.QtScxml.QScxmlDataModel.ForeachLoopBody'),
- "PySide2.QtScxml.QScxmlDataModel.evaluateInitialization": ('int',),
- "PySide2.QtScxml.QScxmlDataModel.evaluateToBool": ('int',),
- "PySide2.QtScxml.QScxmlDataModel.evaluateToString": ('int',),
- "PySide2.QtScxml.QScxmlDataModel.evaluateToVariant": ('int',),
- "PySide2.QtScxml.QScxmlDataModel.evaluateToVoid": ('int',),
- "PySide2.QtScxml.QScxmlDataModel.hasScxmlProperty": ('str',),
- "PySide2.QtScxml.QScxmlDataModel.scxmlProperty": ('str',),
- "PySide2.QtScxml.QScxmlDataModel.setScxmlEvent": ('PySide2.QtScxml.QScxmlEvent',),
- "PySide2.QtScxml.QScxmlDataModel.setScxmlProperty": ('str', 'typing.Any', 'str'),
- "PySide2.QtScxml.QScxmlDataModel.setStateMachine": ('PySide2.QtScxml.QScxmlStateMachine',),
- "PySide2.QtScxml.QScxmlDataModel.setup": ('typing.Dict',),
- "PySide2.QtScxml.QScxmlDataModel.stateMachine": (),
-# class PySide2.QtScxml.QScxmlDynamicScxmlServiceFactory:
- "PySide2.QtScxml.QScxmlDynamicScxmlServiceFactory.__init__": ('PySide2.QtScxml.QScxmlExecutableContent.InvokeInfo', 'typing.List', 'typing.List', 'PySide2.QtCore.QObject'),
- "PySide2.QtScxml.QScxmlDynamicScxmlServiceFactory.invoke": ('PySide2.QtScxml.QScxmlStateMachine',),
-# class PySide2.QtScxml.QScxmlEcmaScriptDataModel:
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.evaluateAssignment": ('int',),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.evaluateForeach": ('int', 'PySide2.QtScxml.QScxmlDataModel.ForeachLoopBody'),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.evaluateInitialization": ('int',),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.evaluateToBool": ('int',),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.evaluateToString": ('int',),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.evaluateToVariant": ('int',),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.evaluateToVoid": ('int',),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.hasScxmlProperty": ('str',),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.scxmlProperty": ('str',),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.setScxmlEvent": ('PySide2.QtScxml.QScxmlEvent',),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.setScxmlProperty": ('str', 'typing.Any', 'str'),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.setup": ('typing.Dict',),
-# class PySide2.QtScxml.QScxmlError:
- "PySide2.QtScxml.QScxmlError.__init__": [(), ('PySide2.QtScxml.QScxmlError',), ('str', 'int', 'int', 'str')],
- "PySide2.QtScxml.QScxmlError.__copy__": (),
- "PySide2.QtScxml.QScxmlError.column": (),
- "PySide2.QtScxml.QScxmlError.description": (),
- "PySide2.QtScxml.QScxmlError.fileName": (),
- "PySide2.QtScxml.QScxmlError.isValid": (),
- "PySide2.QtScxml.QScxmlError.line": (),
- "PySide2.QtScxml.QScxmlError.toString": (),
-# class PySide2.QtScxml.QScxmlEvent:
-# class PySide2.QtScxml.QScxmlEvent.EventType:
- "PySide2.QtScxml.QScxmlEvent.__init__": [(), ('PySide2.QtScxml.QScxmlEvent',)],
- "PySide2.QtScxml.QScxmlEvent.clear": (),
- "PySide2.QtScxml.QScxmlEvent.data": (),
- "PySide2.QtScxml.QScxmlEvent.delay": (),
- "PySide2.QtScxml.QScxmlEvent.errorMessage": (),
- "PySide2.QtScxml.QScxmlEvent.eventType": (),
- "PySide2.QtScxml.QScxmlEvent.invokeId": (),
- "PySide2.QtScxml.QScxmlEvent.isErrorEvent": (),
- "PySide2.QtScxml.QScxmlEvent.name": (),
- "PySide2.QtScxml.QScxmlEvent.origin": (),
- "PySide2.QtScxml.QScxmlEvent.originType": (),
- "PySide2.QtScxml.QScxmlEvent.scxmlType": (),
- "PySide2.QtScxml.QScxmlEvent.sendId": (),
- "PySide2.QtScxml.QScxmlEvent.setData": ('typing.Any',),
- "PySide2.QtScxml.QScxmlEvent.setDelay": ('int',),
- "PySide2.QtScxml.QScxmlEvent.setErrorMessage": ('str',),
- "PySide2.QtScxml.QScxmlEvent.setEventType": ('PySide2.QtScxml.QScxmlEvent.EventType',),
- "PySide2.QtScxml.QScxmlEvent.setInvokeId": ('str',),
- "PySide2.QtScxml.QScxmlEvent.setName": ('str',),
- "PySide2.QtScxml.QScxmlEvent.setOrigin": ('str',),
- "PySide2.QtScxml.QScxmlEvent.setOriginType": ('str',),
- "PySide2.QtScxml.QScxmlEvent.setSendId": ('str',),
-# class PySide2.QtScxml.QScxmlExecutableContent:
-# class PySide2.QtScxml.QScxmlExecutableContent.AssignmentInfo:
- "PySide2.QtScxml.QScxmlExecutableContent.AssignmentInfo.__init__": [(), ('PySide2.QtScxml.QScxmlExecutableContent.AssignmentInfo',)],
- "PySide2.QtScxml.QScxmlExecutableContent.AssignmentInfo.__copy__": (),
-# class PySide2.QtScxml.QScxmlExecutableContent.EvaluatorInfo:
- "PySide2.QtScxml.QScxmlExecutableContent.EvaluatorInfo.__init__": [(), ('PySide2.QtScxml.QScxmlExecutableContent.EvaluatorInfo',)],
- "PySide2.QtScxml.QScxmlExecutableContent.EvaluatorInfo.__copy__": (),
-# class PySide2.QtScxml.QScxmlExecutableContent.ForeachInfo:
- "PySide2.QtScxml.QScxmlExecutableContent.ForeachInfo.__init__": [(), ('PySide2.QtScxml.QScxmlExecutableContent.ForeachInfo',)],
- "PySide2.QtScxml.QScxmlExecutableContent.ForeachInfo.__copy__": (),
-# class PySide2.QtScxml.QScxmlExecutableContent.InvokeInfo:
- "PySide2.QtScxml.QScxmlExecutableContent.InvokeInfo.__init__": [(), ('PySide2.QtScxml.QScxmlExecutableContent.InvokeInfo',)],
- "PySide2.QtScxml.QScxmlExecutableContent.InvokeInfo.__copy__": (),
-# class PySide2.QtScxml.QScxmlExecutableContent.ParameterInfo:
- "PySide2.QtScxml.QScxmlExecutableContent.ParameterInfo.__init__": [(), ('PySide2.QtScxml.QScxmlExecutableContent.ParameterInfo',)],
- "PySide2.QtScxml.QScxmlExecutableContent.ParameterInfo.__copy__": (),
-# class PySide2.QtScxml.QScxmlInvokableService:
- "PySide2.QtScxml.QScxmlInvokableService.__init__": ('PySide2.QtScxml.QScxmlStateMachine', 'PySide2.QtScxml.QScxmlInvokableServiceFactory'),
- "PySide2.QtScxml.QScxmlInvokableService.id": (),
- "PySide2.QtScxml.QScxmlInvokableService.name": (),
- "PySide2.QtScxml.QScxmlInvokableService.parentStateMachine": (),
- "PySide2.QtScxml.QScxmlInvokableService.postEvent": ('PySide2.QtScxml.QScxmlEvent',),
- "PySide2.QtScxml.QScxmlInvokableService.start": (),
-# class PySide2.QtScxml.QScxmlInvokableServiceFactory:
- "PySide2.QtScxml.QScxmlInvokableServiceFactory.__init__": ('PySide2.QtScxml.QScxmlExecutableContent.InvokeInfo', 'typing.List', 'typing.List', 'PySide2.QtCore.QObject'),
- "PySide2.QtScxml.QScxmlInvokableServiceFactory.invoke": ('PySide2.QtScxml.QScxmlStateMachine',),
- "PySide2.QtScxml.QScxmlInvokableServiceFactory.invokeInfo": (),
- "PySide2.QtScxml.QScxmlInvokableServiceFactory.names": (),
- "PySide2.QtScxml.QScxmlInvokableServiceFactory.parameters": (),
-# class PySide2.QtScxml.QScxmlNullDataModel:
- "PySide2.QtScxml.QScxmlNullDataModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtScxml.QScxmlNullDataModel.evaluateAssignment": ('int',),
- "PySide2.QtScxml.QScxmlNullDataModel.evaluateForeach": ('int', 'PySide2.QtScxml.QScxmlDataModel.ForeachLoopBody'),
- "PySide2.QtScxml.QScxmlNullDataModel.evaluateInitialization": ('int',),
- "PySide2.QtScxml.QScxmlNullDataModel.evaluateToBool": ('int',),
- "PySide2.QtScxml.QScxmlNullDataModel.evaluateToString": ('int',),
- "PySide2.QtScxml.QScxmlNullDataModel.evaluateToVariant": ('int',),
- "PySide2.QtScxml.QScxmlNullDataModel.evaluateToVoid": ('int',),
- "PySide2.QtScxml.QScxmlNullDataModel.hasScxmlProperty": ('str',),
- "PySide2.QtScxml.QScxmlNullDataModel.scxmlProperty": ('str',),
- "PySide2.QtScxml.QScxmlNullDataModel.setScxmlEvent": ('PySide2.QtScxml.QScxmlEvent',),
- "PySide2.QtScxml.QScxmlNullDataModel.setScxmlProperty": ('str', 'typing.Any', 'str'),
- "PySide2.QtScxml.QScxmlNullDataModel.setup": ('typing.Dict',),
-# class PySide2.QtScxml.QScxmlStateMachine:
- "PySide2.QtScxml.QScxmlStateMachine.__init__": ('PySide2.QtCore.QMetaObject', 'PySide2.QtCore.QObject'),
- "PySide2.QtScxml.QScxmlStateMachine.activeStateNames": ('bool',),
- "PySide2.QtScxml.QScxmlStateMachine.cancelDelayedEvent": ('str',),
- "PySide2.QtScxml.QScxmlStateMachine.connectToEvent": ('str', 'PySide2.QtCore.QObject', 'bytes', 'PySide2.QtCore.Qt.ConnectionType'),
- "PySide2.QtScxml.QScxmlStateMachine.connectToState": ('str', 'PySide2.QtCore.QObject', 'bytes', 'PySide2.QtCore.Qt.ConnectionType'),
- "PySide2.QtScxml.QScxmlStateMachine.dataModel": (),
- "PySide2.QtScxml.QScxmlStateMachine.fromData": ('PySide2.QtCore.QIODevice', 'str'),
- "PySide2.QtScxml.QScxmlStateMachine.fromFile": ('str',),
- "PySide2.QtScxml.QScxmlStateMachine.init": (),
- "PySide2.QtScxml.QScxmlStateMachine.initialValues": (),
- "PySide2.QtScxml.QScxmlStateMachine.invokedServices": (),
- "PySide2.QtScxml.QScxmlStateMachine.isActive": [('int',), ('str',)],
- "PySide2.QtScxml.QScxmlStateMachine.isDispatchableTarget": ('str',),
- "PySide2.QtScxml.QScxmlStateMachine.isInitialized": (),
- "PySide2.QtScxml.QScxmlStateMachine.isInvoked": (),
- "PySide2.QtScxml.QScxmlStateMachine.isRunning": (),
- "PySide2.QtScxml.QScxmlStateMachine.loader": (),
- "PySide2.QtScxml.QScxmlStateMachine.name": (),
- "PySide2.QtScxml.QScxmlStateMachine.parseErrors": (),
- "PySide2.QtScxml.QScxmlStateMachine.sessionId": (),
- "PySide2.QtScxml.QScxmlStateMachine.setDataModel": ('PySide2.QtScxml.QScxmlDataModel',),
- "PySide2.QtScxml.QScxmlStateMachine.setInitialValues": ('typing.Dict',),
- "PySide2.QtScxml.QScxmlStateMachine.setLoader": ('PySide2.QtScxml.QScxmlCompiler.Loader',),
- "PySide2.QtScxml.QScxmlStateMachine.setRunning": ('bool',),
- "PySide2.QtScxml.QScxmlStateMachine.setTableData": ('PySide2.QtScxml.QScxmlTableData',),
- "PySide2.QtScxml.QScxmlStateMachine.start": (),
- "PySide2.QtScxml.QScxmlStateMachine.stateNames": ('bool',),
- "PySide2.QtScxml.QScxmlStateMachine.stop": (),
- "PySide2.QtScxml.QScxmlStateMachine.submitEvent": [('PySide2.QtScxml.QScxmlEvent',), ('str',), ('str', 'typing.Any')],
- "PySide2.QtScxml.QScxmlStateMachine.tableData": (),
-# class PySide2.QtScxml.QScxmlStaticScxmlServiceFactory:
- "PySide2.QtScxml.QScxmlStaticScxmlServiceFactory.__init__": ('PySide2.QtCore.QMetaObject', 'PySide2.QtScxml.QScxmlExecutableContent.InvokeInfo', 'typing.List', 'typing.List', 'PySide2.QtCore.QObject'),
- "PySide2.QtScxml.QScxmlStaticScxmlServiceFactory.invoke": ('PySide2.QtScxml.QScxmlStateMachine',),
-# class PySide2.QtScxml.QScxmlTableData:
- "PySide2.QtScxml.QScxmlTableData.__init__": (),
- "PySide2.QtScxml.QScxmlTableData.assignmentInfo": ('int',),
- "PySide2.QtScxml.QScxmlTableData.dataNames": (),
- "PySide2.QtScxml.QScxmlTableData.evaluatorInfo": ('int',),
- "PySide2.QtScxml.QScxmlTableData.foreachInfo": ('int',),
- "PySide2.QtScxml.QScxmlTableData.initialSetup": (),
- "PySide2.QtScxml.QScxmlTableData.instructions": (),
- "PySide2.QtScxml.QScxmlTableData.name": (),
- "PySide2.QtScxml.QScxmlTableData.serviceFactory": ('int',),
- "PySide2.QtScxml.QScxmlTableData.stateMachineTable": (),
- "PySide2.QtScxml.QScxmlTableData.string": ('int',),
- }) if "PySide2.QtScxml" in sys.modules else None
-# Module PySide2.QtScript
-sig_dict.update({
-# class PySide2.QtScript.QScriptClass:
-# class PySide2.QtScript.QScriptClass.Extension:
-# class PySide2.QtScript.QScriptClass.QueryFlag:
- "PySide2.QtScript.QScriptClass.__init__": ('PySide2.QtScript.QScriptEngine',),
- "PySide2.QtScript.QScriptClass.engine": (),
- "PySide2.QtScript.QScriptClass.extension": ('PySide2.QtScript.QScriptClass.Extension', 'typing.Any'),
- "PySide2.QtScript.QScriptClass.name": (),
- "PySide2.QtScript.QScriptClass.newIterator": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptClass.property": ('PySide2.QtScript.QScriptValue', 'PySide2.QtScript.QScriptString', 'int'),
- "PySide2.QtScript.QScriptClass.propertyFlags": ('PySide2.QtScript.QScriptValue', 'PySide2.QtScript.QScriptString', 'int'),
- "PySide2.QtScript.QScriptClass.prototype": (),
- "PySide2.QtScript.QScriptClass.setProperty": ('PySide2.QtScript.QScriptValue', 'PySide2.QtScript.QScriptString', 'int', 'PySide2.QtScript.QScriptValue'),
- "PySide2.QtScript.QScriptClass.supportsExtension": ('PySide2.QtScript.QScriptClass.Extension',),
-# class PySide2.QtScript.QScriptClassPropertyIterator:
- "PySide2.QtScript.QScriptClassPropertyIterator.__init__": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptClassPropertyIterator.flags": (),
- "PySide2.QtScript.QScriptClassPropertyIterator.hasNext": (),
- "PySide2.QtScript.QScriptClassPropertyIterator.hasPrevious": (),
- "PySide2.QtScript.QScriptClassPropertyIterator.id": (),
- "PySide2.QtScript.QScriptClassPropertyIterator.name": (),
- "PySide2.QtScript.QScriptClassPropertyIterator.object": (),
- "PySide2.QtScript.QScriptClassPropertyIterator.previous": (),
- "PySide2.QtScript.QScriptClassPropertyIterator.toBack": (),
- "PySide2.QtScript.QScriptClassPropertyIterator.toFront": (),
-# class PySide2.QtScript.QScriptContext:
-# class PySide2.QtScript.QScriptContext.Error:
-# class PySide2.QtScript.QScriptContext.ExecutionState:
- "PySide2.QtScript.QScriptContext.activationObject": (),
- "PySide2.QtScript.QScriptContext.argument": ('int',),
- "PySide2.QtScript.QScriptContext.argumentCount": (),
- "PySide2.QtScript.QScriptContext.argumentsObject": (),
- "PySide2.QtScript.QScriptContext.backtrace": (),
- "PySide2.QtScript.QScriptContext.callee": (),
- "PySide2.QtScript.QScriptContext.engine": (),
- "PySide2.QtScript.QScriptContext.isCalledAsConstructor": (),
- "PySide2.QtScript.QScriptContext.parentContext": (),
- "PySide2.QtScript.QScriptContext.popScope": (),
- "PySide2.QtScript.QScriptContext.pushScope": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptContext.returnValue": (),
- "PySide2.QtScript.QScriptContext.scopeChain": (),
- "PySide2.QtScript.QScriptContext.setActivationObject": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptContext.setReturnValue": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptContext.setThisObject": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptContext.state": (),
- "PySide2.QtScript.QScriptContext.thisObject": (),
- "PySide2.QtScript.QScriptContext.throwError": [('PySide2.QtScript.QScriptContext.Error', 'str'), ('str',)],
- "PySide2.QtScript.QScriptContext.throwValue": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptContext.toString": (),
-# class PySide2.QtScript.QScriptContextInfo:
-# class PySide2.QtScript.QScriptContextInfo.FunctionType:
- "PySide2.QtScript.QScriptContextInfo.__init__": [(), ('PySide2.QtScript.QScriptContext',), ('PySide2.QtScript.QScriptContextInfo',)],
- "PySide2.QtScript.QScriptContextInfo.__copy__": (),
- "PySide2.QtScript.QScriptContextInfo.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtScript.QScriptContextInfo.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtScript.QScriptContextInfo.columnNumber": (),
- "PySide2.QtScript.QScriptContextInfo.fileName": (),
- "PySide2.QtScript.QScriptContextInfo.functionEndLineNumber": (),
- "PySide2.QtScript.QScriptContextInfo.functionMetaIndex": (),
- "PySide2.QtScript.QScriptContextInfo.functionName": (),
- "PySide2.QtScript.QScriptContextInfo.functionParameterNames": (),
- "PySide2.QtScript.QScriptContextInfo.functionStartLineNumber": (),
- "PySide2.QtScript.QScriptContextInfo.functionType": (),
- "PySide2.QtScript.QScriptContextInfo.isNull": (),
- "PySide2.QtScript.QScriptContextInfo.lineNumber": (),
- "PySide2.QtScript.QScriptContextInfo.scriptId": (),
-# class PySide2.QtScript.QScriptEngine:
-# class PySide2.QtScript.QScriptEngine.QObjectWrapOption:
-# class PySide2.QtScript.QScriptEngine.QObjectWrapOptions:
-# class PySide2.QtScript.QScriptEngine.ValueOwnership:
- "PySide2.QtScript.QScriptEngine.__init__": [(), ('PySide2.QtCore.QObject',)],
- "PySide2.QtScript.QScriptEngine.abortEvaluation": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptEngine.agent": (),
- "PySide2.QtScript.QScriptEngine.availableExtensions": (),
- "PySide2.QtScript.QScriptEngine.canEvaluate": ('str',),
- "PySide2.QtScript.QScriptEngine.clearExceptions": (),
- "PySide2.QtScript.QScriptEngine.collectGarbage": (),
- "PySide2.QtScript.QScriptEngine.currentContext": (),
- "PySide2.QtScript.QScriptEngine.defaultPrototype": ('int',),
- "PySide2.QtScript.QScriptEngine.evaluate": [('PySide2.QtScript.QScriptProgram',), ('str', 'str', 'int')],
- "PySide2.QtScript.QScriptEngine.globalObject": (),
- "PySide2.QtScript.QScriptEngine.hasUncaughtException": (),
- "PySide2.QtScript.QScriptEngine.importExtension": ('str',),
- "PySide2.QtScript.QScriptEngine.importedExtensions": (),
- "PySide2.QtScript.QScriptEngine.installTranslatorFunctions": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptEngine.isEvaluating": (),
- "PySide2.QtScript.QScriptEngine.newActivationObject": (),
- "PySide2.QtScript.QScriptEngine.newArray": ('int',),
- "PySide2.QtScript.QScriptEngine.newDate": [('PySide2.QtCore.QDateTime',), ('float',)],
- "PySide2.QtScript.QScriptEngine.newObject": [(), ('PySide2.QtScript.QScriptClass', 'PySide2.QtScript.QScriptValue')],
- "PySide2.QtScript.QScriptEngine.newQMetaObject": ('PySide2.QtCore.QMetaObject', 'PySide2.QtScript.QScriptValue'),
- "PySide2.QtScript.QScriptEngine.newQObject": [('PySide2.QtCore.QObject', 'PySide2.QtScript.QScriptEngine.ValueOwnership', 'PySide2.QtScript.QScriptEngine.QObjectWrapOptions'), ('PySide2.QtScript.QScriptValue', 'PySide2.QtCore.QObject', 'PySide2.QtScript.QScriptEngine.ValueOwnership', 'PySide2.QtScript.QScriptEngine.QObjectWrapOptions')],
- "PySide2.QtScript.QScriptEngine.newRegExp": [('PySide2.QtCore.QRegExp',), ('str', 'str')],
- "PySide2.QtScript.QScriptEngine.newVariant": [('PySide2.QtScript.QScriptValue', 'typing.Any'), ('typing.Any',)],
- "PySide2.QtScript.QScriptEngine.nullValue": (),
- "PySide2.QtScript.QScriptEngine.objectById": ('int',),
- "PySide2.QtScript.QScriptEngine.popContext": (),
- "PySide2.QtScript.QScriptEngine.processEventsInterval": (),
- "PySide2.QtScript.QScriptEngine.pushContext": (),
- "PySide2.QtScript.QScriptEngine.reportAdditionalMemoryCost": ('int',),
- "PySide2.QtScript.QScriptEngine.setAgent": ('PySide2.QtScript.QScriptEngineAgent',),
- "PySide2.QtScript.QScriptEngine.setDefaultPrototype": ('int', 'PySide2.QtScript.QScriptValue'),
- "PySide2.QtScript.QScriptEngine.setGlobalObject": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptEngine.setProcessEventsInterval": ('int',),
- "PySide2.QtScript.QScriptEngine.toObject": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptEngine.toStringHandle": ('str',),
- "PySide2.QtScript.QScriptEngine.uncaughtException": (),
- "PySide2.QtScript.QScriptEngine.uncaughtExceptionBacktrace": (),
- "PySide2.QtScript.QScriptEngine.uncaughtExceptionLineNumber": (),
- "PySide2.QtScript.QScriptEngine.undefinedValue": (),
-# class PySide2.QtScript.QScriptEngineAgent:
-# class PySide2.QtScript.QScriptEngineAgent.Extension:
- "PySide2.QtScript.QScriptEngineAgent.__init__": ('PySide2.QtScript.QScriptEngine',),
- "PySide2.QtScript.QScriptEngineAgent.contextPop": (),
- "PySide2.QtScript.QScriptEngineAgent.contextPush": (),
- "PySide2.QtScript.QScriptEngineAgent.engine": (),
- "PySide2.QtScript.QScriptEngineAgent.exceptionCatch": ('int', 'PySide2.QtScript.QScriptValue'),
- "PySide2.QtScript.QScriptEngineAgent.exceptionThrow": ('int', 'PySide2.QtScript.QScriptValue', 'bool'),
- "PySide2.QtScript.QScriptEngineAgent.extension": ('PySide2.QtScript.QScriptEngineAgent.Extension', 'typing.Any'),
- "PySide2.QtScript.QScriptEngineAgent.functionEntry": ('int',),
- "PySide2.QtScript.QScriptEngineAgent.functionExit": ('int', 'PySide2.QtScript.QScriptValue'),
- "PySide2.QtScript.QScriptEngineAgent.positionChange": ('int', 'int', 'int'),
- "PySide2.QtScript.QScriptEngineAgent.scriptLoad": ('int', 'str', 'str', 'int'),
- "PySide2.QtScript.QScriptEngineAgent.scriptUnload": ('int',),
- "PySide2.QtScript.QScriptEngineAgent.supportsExtension": ('PySide2.QtScript.QScriptEngineAgent.Extension',),
-# class PySide2.QtScript.QScriptExtensionInterface:
- "PySide2.QtScript.QScriptExtensionInterface.__init__": (),
- "PySide2.QtScript.QScriptExtensionInterface.initialize": ('str', 'PySide2.QtScript.QScriptEngine'),
-# class PySide2.QtScript.QScriptExtensionPlugin:
- "PySide2.QtScript.QScriptExtensionPlugin.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtScript.QScriptExtensionPlugin.initialize": ('str', 'PySide2.QtScript.QScriptEngine'),
- "PySide2.QtScript.QScriptExtensionPlugin.keys": (),
- "PySide2.QtScript.QScriptExtensionPlugin.setupPackage": ('str', 'PySide2.QtScript.QScriptEngine'),
-# class PySide2.QtScript.QScriptProgram:
- "PySide2.QtScript.QScriptProgram.__init__": [(), ('PySide2.QtScript.QScriptProgram',), ('str', 'str', 'int')],
- "PySide2.QtScript.QScriptProgram.__copy__": (),
- "PySide2.QtScript.QScriptProgram.fileName": (),
- "PySide2.QtScript.QScriptProgram.firstLineNumber": (),
- "PySide2.QtScript.QScriptProgram.isNull": (),
- "PySide2.QtScript.QScriptProgram.sourceCode": (),
-# class PySide2.QtScript.QScriptString:
- "PySide2.QtScript.QScriptString.__init__": [(), ('PySide2.QtScript.QScriptString',)],
- "PySide2.QtScript.QScriptString.__copy__": (),
- "PySide2.QtScript.QScriptString.isValid": (),
- "PySide2.QtScript.QScriptString.toArrayIndex": (),
- "PySide2.QtScript.QScriptString.toString": (),
-# class PySide2.QtScript.QScriptValue:
-# class PySide2.QtScript.QScriptValue.PropertyFlag:
-# class PySide2.QtScript.QScriptValue.PropertyFlags:
-# class PySide2.QtScript.QScriptValue.ResolveFlag:
-# class PySide2.QtScript.QScriptValue.ResolveFlags:
-# class PySide2.QtScript.QScriptValue.SpecialValue:
- "PySide2.QtScript.QScriptValue.__init__": [(), ('PySide2.QtScript.QScriptEngine', 'PySide2.QtScript.QScriptValue.SpecialValue'), ('PySide2.QtScript.QScriptEngine', 'bool'), ('PySide2.QtScript.QScriptEngine', 'bytes'), ('PySide2.QtScript.QScriptEngine', 'float'), ('PySide2.QtScript.QScriptEngine', 'int'), ('PySide2.QtScript.QScriptEngine', 'str'), ('PySide2.QtScript.QScriptValue',), ('PySide2.QtScript.QScriptValue.SpecialValue',), ('bool',), ('bytes',), ('float',), ('int',), ('str',)],
- "PySide2.QtScript.QScriptValue.__copy__": (),
- "PySide2.QtScript.QScriptValue.__iter__": (),
- "PySide2.QtScript.QScriptValue.__repr__": (),
- "PySide2.QtScript.QScriptValue.call": [('PySide2.QtScript.QScriptValue', 'PySide2.QtScript.QScriptValue'), ('PySide2.QtScript.QScriptValue', 'typing.Sequence')],
- "PySide2.QtScript.QScriptValue.construct": [('PySide2.QtScript.QScriptValue',), ('typing.Sequence',)],
- "PySide2.QtScript.QScriptValue.data": (),
- "PySide2.QtScript.QScriptValue.engine": (),
- "PySide2.QtScript.QScriptValue.equals": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptValue.instanceOf": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptValue.isArray": (),
- "PySide2.QtScript.QScriptValue.isBool": (),
- "PySide2.QtScript.QScriptValue.isBoolean": (),
- "PySide2.QtScript.QScriptValue.isDate": (),
- "PySide2.QtScript.QScriptValue.isError": (),
- "PySide2.QtScript.QScriptValue.isFunction": (),
- "PySide2.QtScript.QScriptValue.isNull": (),
- "PySide2.QtScript.QScriptValue.isNumber": (),
- "PySide2.QtScript.QScriptValue.isObject": (),
- "PySide2.QtScript.QScriptValue.isQMetaObject": (),
- "PySide2.QtScript.QScriptValue.isQObject": (),
- "PySide2.QtScript.QScriptValue.isRegExp": (),
- "PySide2.QtScript.QScriptValue.isString": (),
- "PySide2.QtScript.QScriptValue.isUndefined": (),
- "PySide2.QtScript.QScriptValue.isValid": (),
- "PySide2.QtScript.QScriptValue.isVariant": (),
- "PySide2.QtScript.QScriptValue.lessThan": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptValue.objectId": (),
- "PySide2.QtScript.QScriptValue.property": [('PySide2.QtScript.QScriptString', 'PySide2.QtScript.QScriptValue.ResolveFlags'), ('int', 'PySide2.QtScript.QScriptValue.ResolveFlags'), ('str', 'PySide2.QtScript.QScriptValue.ResolveFlags')],
- "PySide2.QtScript.QScriptValue.propertyFlags": [('PySide2.QtScript.QScriptString', 'PySide2.QtScript.QScriptValue.ResolveFlags'), ('str', 'PySide2.QtScript.QScriptValue.ResolveFlags')],
- "PySide2.QtScript.QScriptValue.prototype": (),
- "PySide2.QtScript.QScriptValue.scope": (),
- "PySide2.QtScript.QScriptValue.scriptClass": (),
- "PySide2.QtScript.QScriptValue.setData": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptValue.setProperty": [('PySide2.QtScript.QScriptString', 'PySide2.QtScript.QScriptValue', 'PySide2.QtScript.QScriptValue.PropertyFlags'), ('int', 'PySide2.QtScript.QScriptValue', 'PySide2.QtScript.QScriptValue.PropertyFlags'), ('str', 'PySide2.QtScript.QScriptValue', 'PySide2.QtScript.QScriptValue.PropertyFlags')],
- "PySide2.QtScript.QScriptValue.setPrototype": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptValue.setScope": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptValue.setScriptClass": ('PySide2.QtScript.QScriptClass',),
- "PySide2.QtScript.QScriptValue.strictlyEquals": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptValue.toBool": (),
- "PySide2.QtScript.QScriptValue.toBoolean": (),
- "PySide2.QtScript.QScriptValue.toDateTime": (),
- "PySide2.QtScript.QScriptValue.toInt32": (),
- "PySide2.QtScript.QScriptValue.toInteger": (),
- "PySide2.QtScript.QScriptValue.toNumber": (),
- "PySide2.QtScript.QScriptValue.toObject": (),
- "PySide2.QtScript.QScriptValue.toQMetaObject": (),
- "PySide2.QtScript.QScriptValue.toQObject": (),
- "PySide2.QtScript.QScriptValue.toRegExp": (),
- "PySide2.QtScript.QScriptValue.toString": (),
- "PySide2.QtScript.QScriptValue.toUInt16": (),
- "PySide2.QtScript.QScriptValue.toUInt32": (),
- "PySide2.QtScript.QScriptValue.toVariant": (),
-# class PySide2.QtScript.QScriptValueIterator:
- "PySide2.QtScript.QScriptValueIterator.__init__": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptValueIterator.__iter__": (),
- "PySide2.QtScript.QScriptValueIterator.flags": (),
- "PySide2.QtScript.QScriptValueIterator.hasNext": (),
- "PySide2.QtScript.QScriptValueIterator.hasPrevious": (),
- "PySide2.QtScript.QScriptValueIterator.name": (),
- "PySide2.QtScript.QScriptValueIterator.previous": (),
- "PySide2.QtScript.QScriptValueIterator.remove": (),
- "PySide2.QtScript.QScriptValueIterator.scriptName": (),
- "PySide2.QtScript.QScriptValueIterator.setValue": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptValueIterator.toBack": (),
- "PySide2.QtScript.QScriptValueIterator.toFront": (),
- "PySide2.QtScript.QScriptValueIterator.value": (),
-# class PySide2.QtScript.QScriptable:
- "PySide2.QtScript.QScriptable.__init__": (),
- "PySide2.QtScript.QScriptable.argument": ('int',),
- "PySide2.QtScript.QScriptable.argumentCount": (),
- "PySide2.QtScript.QScriptable.context": (),
- "PySide2.QtScript.QScriptable.engine": (),
- "PySide2.QtScript.QScriptable.thisObject": (),
- }) if "PySide2.QtScript" in sys.modules else None
-# Module PySide2.QtScriptTools
-sig_dict.update({
-# class PySide2.QtScriptTools.QScriptEngineDebugger:
-# class PySide2.QtScriptTools.QScriptEngineDebugger.DebuggerAction:
-# class PySide2.QtScriptTools.QScriptEngineDebugger.DebuggerState:
-# class PySide2.QtScriptTools.QScriptEngineDebugger.DebuggerWidget:
- "PySide2.QtScriptTools.QScriptEngineDebugger.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtScriptTools.QScriptEngineDebugger.action": ('PySide2.QtScriptTools.QScriptEngineDebugger.DebuggerAction',),
- "PySide2.QtScriptTools.QScriptEngineDebugger.attachTo": ('PySide2.QtScript.QScriptEngine',),
- "PySide2.QtScriptTools.QScriptEngineDebugger.autoShowStandardWindow": (),
- "PySide2.QtScriptTools.QScriptEngineDebugger.createStandardMenu": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtScriptTools.QScriptEngineDebugger.createStandardToolBar": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtScriptTools.QScriptEngineDebugger.setAutoShowStandardWindow": ('bool',),
- "PySide2.QtScriptTools.QScriptEngineDebugger.standardWindow": (),
- "PySide2.QtScriptTools.QScriptEngineDebugger.state": (),
- "PySide2.QtScriptTools.QScriptEngineDebugger.widget": ('PySide2.QtScriptTools.QScriptEngineDebugger.DebuggerWidget',),
- }) if "PySide2.QtScriptTools" in sys.modules else None
-# Module PySide2.QtSensors
-sig_dict.update({
-# class PySide2.QtSensors.QAccelerometer:
-# class PySide2.QtSensors.QAccelerometer.AccelerationMode:
- "PySide2.QtSensors.QAccelerometer.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QAccelerometer.accelerationMode": (),
- "PySide2.QtSensors.QAccelerometer.reading": (),
- "PySide2.QtSensors.QAccelerometer.setAccelerationMode": ('PySide2.QtSensors.QAccelerometer.AccelerationMode',),
-# class PySide2.QtSensors.QAccelerometerFilter:
- "PySide2.QtSensors.QAccelerometerFilter.__init__": (),
- "PySide2.QtSensors.QAccelerometerFilter.filter": [('PySide2.QtSensors.QAccelerometerReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QAccelerometerReading:
- "PySide2.QtSensors.QAccelerometerReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QAccelerometerReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QAccelerometerReading.setX": ('float',),
- "PySide2.QtSensors.QAccelerometerReading.setY": ('float',),
- "PySide2.QtSensors.QAccelerometerReading.setZ": ('float',),
- "PySide2.QtSensors.QAccelerometerReading.x": (),
- "PySide2.QtSensors.QAccelerometerReading.y": (),
- "PySide2.QtSensors.QAccelerometerReading.z": (),
-# class PySide2.QtSensors.QAltimeter:
- "PySide2.QtSensors.QAltimeter.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QAltimeter.reading": (),
-# class PySide2.QtSensors.QAltimeterFilter:
- "PySide2.QtSensors.QAltimeterFilter.__init__": (),
- "PySide2.QtSensors.QAltimeterFilter.filter": [('PySide2.QtSensors.QAltimeterReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QAltimeterReading:
- "PySide2.QtSensors.QAltimeterReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QAltimeterReading.altitude": (),
- "PySide2.QtSensors.QAltimeterReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QAltimeterReading.setAltitude": ('float',),
-# class PySide2.QtSensors.QAmbientLightFilter:
- "PySide2.QtSensors.QAmbientLightFilter.__init__": (),
- "PySide2.QtSensors.QAmbientLightFilter.filter": [('PySide2.QtSensors.QAmbientLightReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QAmbientLightReading:
-# class PySide2.QtSensors.QAmbientLightReading.LightLevel:
- "PySide2.QtSensors.QAmbientLightReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QAmbientLightReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QAmbientLightReading.lightLevel": (),
- "PySide2.QtSensors.QAmbientLightReading.setLightLevel": ('PySide2.QtSensors.QAmbientLightReading.LightLevel',),
-# class PySide2.QtSensors.QAmbientLightSensor:
- "PySide2.QtSensors.QAmbientLightSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QAmbientLightSensor.reading": (),
-# class PySide2.QtSensors.QAmbientTemperatureFilter:
- "PySide2.QtSensors.QAmbientTemperatureFilter.__init__": (),
- "PySide2.QtSensors.QAmbientTemperatureFilter.filter": [('PySide2.QtSensors.QAmbientTemperatureReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QAmbientTemperatureReading:
- "PySide2.QtSensors.QAmbientTemperatureReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QAmbientTemperatureReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QAmbientTemperatureReading.setTemperature": ('float',),
- "PySide2.QtSensors.QAmbientTemperatureReading.temperature": (),
-# class PySide2.QtSensors.QAmbientTemperatureSensor:
- "PySide2.QtSensors.QAmbientTemperatureSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QAmbientTemperatureSensor.reading": (),
-# class PySide2.QtSensors.QCompass:
- "PySide2.QtSensors.QCompass.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QCompass.reading": (),
-# class PySide2.QtSensors.QCompassFilter:
- "PySide2.QtSensors.QCompassFilter.__init__": (),
- "PySide2.QtSensors.QCompassFilter.filter": [('PySide2.QtSensors.QCompassReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QCompassReading:
- "PySide2.QtSensors.QCompassReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QCompassReading.azimuth": (),
- "PySide2.QtSensors.QCompassReading.calibrationLevel": (),
- "PySide2.QtSensors.QCompassReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QCompassReading.setAzimuth": ('float',),
- "PySide2.QtSensors.QCompassReading.setCalibrationLevel": ('float',),
-# class PySide2.QtSensors.QDistanceFilter:
- "PySide2.QtSensors.QDistanceFilter.__init__": (),
- "PySide2.QtSensors.QDistanceFilter.filter": [('PySide2.QtSensors.QDistanceReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QDistanceReading:
- "PySide2.QtSensors.QDistanceReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QDistanceReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QDistanceReading.distance": (),
- "PySide2.QtSensors.QDistanceReading.setDistance": ('float',),
-# class PySide2.QtSensors.QDistanceSensor:
- "PySide2.QtSensors.QDistanceSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QDistanceSensor.reading": (),
-# class PySide2.QtSensors.QGyroscope:
- "PySide2.QtSensors.QGyroscope.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QGyroscope.reading": (),
-# class PySide2.QtSensors.QGyroscopeFilter:
- "PySide2.QtSensors.QGyroscopeFilter.__init__": (),
- "PySide2.QtSensors.QGyroscopeFilter.filter": [('PySide2.QtSensors.QGyroscopeReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QGyroscopeReading:
- "PySide2.QtSensors.QGyroscopeReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QGyroscopeReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QGyroscopeReading.setX": ('float',),
- "PySide2.QtSensors.QGyroscopeReading.setY": ('float',),
- "PySide2.QtSensors.QGyroscopeReading.setZ": ('float',),
- "PySide2.QtSensors.QGyroscopeReading.x": (),
- "PySide2.QtSensors.QGyroscopeReading.y": (),
- "PySide2.QtSensors.QGyroscopeReading.z": (),
-# class PySide2.QtSensors.QHolsterFilter:
- "PySide2.QtSensors.QHolsterFilter.__init__": (),
- "PySide2.QtSensors.QHolsterFilter.filter": [('PySide2.QtSensors.QHolsterReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QHolsterReading:
- "PySide2.QtSensors.QHolsterReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QHolsterReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QHolsterReading.holstered": (),
- "PySide2.QtSensors.QHolsterReading.setHolstered": ('bool',),
-# class PySide2.QtSensors.QHolsterSensor:
- "PySide2.QtSensors.QHolsterSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QHolsterSensor.reading": (),
-# class PySide2.QtSensors.QHumidityFilter:
- "PySide2.QtSensors.QHumidityFilter.__init__": (),
- "PySide2.QtSensors.QHumidityFilter.filter": [('PySide2.QtSensors.QHumidityReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QHumidityReading:
- "PySide2.QtSensors.QHumidityReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QHumidityReading.absoluteHumidity": (),
- "PySide2.QtSensors.QHumidityReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QHumidityReading.relativeHumidity": (),
- "PySide2.QtSensors.QHumidityReading.setAbsoluteHumidity": ('float',),
- "PySide2.QtSensors.QHumidityReading.setRelativeHumidity": ('float',),
-# class PySide2.QtSensors.QHumiditySensor:
- "PySide2.QtSensors.QHumiditySensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QHumiditySensor.reading": (),
-# class PySide2.QtSensors.QIRProximityFilter:
- "PySide2.QtSensors.QIRProximityFilter.__init__": (),
- "PySide2.QtSensors.QIRProximityFilter.filter": [('PySide2.QtSensors.QIRProximityReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QIRProximityReading:
- "PySide2.QtSensors.QIRProximityReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QIRProximityReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QIRProximityReading.reflectance": (),
- "PySide2.QtSensors.QIRProximityReading.setReflectance": ('float',),
-# class PySide2.QtSensors.QIRProximitySensor:
- "PySide2.QtSensors.QIRProximitySensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QIRProximitySensor.reading": (),
-# class PySide2.QtSensors.QLidFilter:
- "PySide2.QtSensors.QLidFilter.__init__": (),
- "PySide2.QtSensors.QLidFilter.filter": [('PySide2.QtSensors.QLidReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QLidReading:
- "PySide2.QtSensors.QLidReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QLidReading.backLidClosed": (),
- "PySide2.QtSensors.QLidReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QLidReading.frontLidClosed": (),
- "PySide2.QtSensors.QLidReading.setBackLidClosed": ('bool',),
- "PySide2.QtSensors.QLidReading.setFrontLidClosed": ('bool',),
-# class PySide2.QtSensors.QLidSensor:
- "PySide2.QtSensors.QLidSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QLidSensor.reading": (),
-# class PySide2.QtSensors.QLightFilter:
- "PySide2.QtSensors.QLightFilter.__init__": (),
- "PySide2.QtSensors.QLightFilter.filter": [('PySide2.QtSensors.QLightReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QLightReading:
- "PySide2.QtSensors.QLightReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QLightReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QLightReading.lux": (),
- "PySide2.QtSensors.QLightReading.setLux": ('float',),
-# class PySide2.QtSensors.QLightSensor:
- "PySide2.QtSensors.QLightSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QLightSensor.fieldOfView": (),
- "PySide2.QtSensors.QLightSensor.reading": (),
- "PySide2.QtSensors.QLightSensor.setFieldOfView": ('float',),
-# class PySide2.QtSensors.QMagnetometer:
- "PySide2.QtSensors.QMagnetometer.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QMagnetometer.reading": (),
- "PySide2.QtSensors.QMagnetometer.returnGeoValues": (),
- "PySide2.QtSensors.QMagnetometer.setReturnGeoValues": ('bool',),
-# class PySide2.QtSensors.QMagnetometerFilter:
- "PySide2.QtSensors.QMagnetometerFilter.__init__": (),
- "PySide2.QtSensors.QMagnetometerFilter.filter": [('PySide2.QtSensors.QMagnetometerReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QMagnetometerReading:
- "PySide2.QtSensors.QMagnetometerReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QMagnetometerReading.calibrationLevel": (),
- "PySide2.QtSensors.QMagnetometerReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QMagnetometerReading.setCalibrationLevel": ('float',),
- "PySide2.QtSensors.QMagnetometerReading.setX": ('float',),
- "PySide2.QtSensors.QMagnetometerReading.setY": ('float',),
- "PySide2.QtSensors.QMagnetometerReading.setZ": ('float',),
- "PySide2.QtSensors.QMagnetometerReading.x": (),
- "PySide2.QtSensors.QMagnetometerReading.y": (),
- "PySide2.QtSensors.QMagnetometerReading.z": (),
-# class PySide2.QtSensors.QOrientationFilter:
- "PySide2.QtSensors.QOrientationFilter.__init__": (),
- "PySide2.QtSensors.QOrientationFilter.filter": [('PySide2.QtSensors.QOrientationReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QOrientationReading:
-# class PySide2.QtSensors.QOrientationReading.Orientation:
- "PySide2.QtSensors.QOrientationReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QOrientationReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QOrientationReading.orientation": (),
- "PySide2.QtSensors.QOrientationReading.setOrientation": ('PySide2.QtSensors.QOrientationReading.Orientation',),
-# class PySide2.QtSensors.QOrientationSensor:
- "PySide2.QtSensors.QOrientationSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QOrientationSensor.reading": (),
-# class PySide2.QtSensors.QPressureFilter:
- "PySide2.QtSensors.QPressureFilter.__init__": (),
- "PySide2.QtSensors.QPressureFilter.filter": [('PySide2.QtSensors.QPressureReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QPressureReading:
- "PySide2.QtSensors.QPressureReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QPressureReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QPressureReading.pressure": (),
- "PySide2.QtSensors.QPressureReading.setPressure": ('float',),
- "PySide2.QtSensors.QPressureReading.setTemperature": ('float',),
- "PySide2.QtSensors.QPressureReading.temperature": (),
-# class PySide2.QtSensors.QPressureSensor:
- "PySide2.QtSensors.QPressureSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QPressureSensor.reading": (),
-# class PySide2.QtSensors.QProximityFilter:
- "PySide2.QtSensors.QProximityFilter.__init__": (),
- "PySide2.QtSensors.QProximityFilter.filter": [('PySide2.QtSensors.QProximityReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QProximityReading:
- "PySide2.QtSensors.QProximityReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QProximityReading.close": (),
- "PySide2.QtSensors.QProximityReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QProximityReading.setClose": ('bool',),
-# class PySide2.QtSensors.QProximitySensor:
- "PySide2.QtSensors.QProximitySensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QProximitySensor.reading": (),
-# class PySide2.QtSensors.QRotationFilter:
- "PySide2.QtSensors.QRotationFilter.__init__": (),
- "PySide2.QtSensors.QRotationFilter.filter": [('PySide2.QtSensors.QRotationReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QRotationReading:
- "PySide2.QtSensors.QRotationReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QRotationReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QRotationReading.setFromEuler": ('float', 'float', 'float'),
- "PySide2.QtSensors.QRotationReading.x": (),
- "PySide2.QtSensors.QRotationReading.y": (),
- "PySide2.QtSensors.QRotationReading.z": (),
-# class PySide2.QtSensors.QRotationSensor:
- "PySide2.QtSensors.QRotationSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QRotationSensor.hasZ": (),
- "PySide2.QtSensors.QRotationSensor.reading": (),
- "PySide2.QtSensors.QRotationSensor.setHasZ": ('bool',),
-# class PySide2.QtSensors.QSensor:
-# class PySide2.QtSensors.QSensor.AxesOrientationMode:
-# class PySide2.QtSensors.QSensor.Feature:
- "PySide2.QtSensors.QSensor.__init__": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QObject'),
- "PySide2.QtSensors.QSensor.addFilter": ('PySide2.QtSensors.QSensorFilter',),
- "PySide2.QtSensors.QSensor.availableDataRates": (),
- "PySide2.QtSensors.QSensor.axesOrientationMode": (),
- "PySide2.QtSensors.QSensor.backend": (),
- "PySide2.QtSensors.QSensor.bufferSize": (),
- "PySide2.QtSensors.QSensor.connectToBackend": (),
- "PySide2.QtSensors.QSensor.currentOrientation": (),
- "PySide2.QtSensors.QSensor.dataRate": (),
- "PySide2.QtSensors.QSensor.defaultSensorForType": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtSensors.QSensor.description": (),
- "PySide2.QtSensors.QSensor.efficientBufferSize": (),
- "PySide2.QtSensors.QSensor.error": (),
- "PySide2.QtSensors.QSensor.filters": (),
- "PySide2.QtSensors.QSensor.identifier": (),
- "PySide2.QtSensors.QSensor.isActive": (),
- "PySide2.QtSensors.QSensor.isAlwaysOn": (),
- "PySide2.QtSensors.QSensor.isBusy": (),
- "PySide2.QtSensors.QSensor.isConnectedToBackend": (),
- "PySide2.QtSensors.QSensor.isFeatureSupported": ('PySide2.QtSensors.QSensor.Feature',),
- "PySide2.QtSensors.QSensor.maxBufferSize": (),
- "PySide2.QtSensors.QSensor.outputRange": (),
- "PySide2.QtSensors.QSensor.outputRanges": (),
- "PySide2.QtSensors.QSensor.reading": (),
- "PySide2.QtSensors.QSensor.removeFilter": ('PySide2.QtSensors.QSensorFilter',),
- "PySide2.QtSensors.QSensor.sensorTypes": (),
- "PySide2.QtSensors.QSensor.sensorsForType": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtSensors.QSensor.setActive": ('bool',),
- "PySide2.QtSensors.QSensor.setAlwaysOn": ('bool',),
- "PySide2.QtSensors.QSensor.setAxesOrientationMode": ('PySide2.QtSensors.QSensor.AxesOrientationMode',),
- "PySide2.QtSensors.QSensor.setBufferSize": ('int',),
- "PySide2.QtSensors.QSensor.setCurrentOrientation": ('int',),
- "PySide2.QtSensors.QSensor.setDataRate": ('int',),
- "PySide2.QtSensors.QSensor.setEfficientBufferSize": ('int',),
- "PySide2.QtSensors.QSensor.setIdentifier": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtSensors.QSensor.setMaxBufferSize": ('int',),
- "PySide2.QtSensors.QSensor.setOutputRange": ('int',),
- "PySide2.QtSensors.QSensor.setSkipDuplicates": ('bool',),
- "PySide2.QtSensors.QSensor.setUserOrientation": ('int',),
- "PySide2.QtSensors.QSensor.skipDuplicates": (),
- "PySide2.QtSensors.QSensor.start": (),
- "PySide2.QtSensors.QSensor.stop": (),
- "PySide2.QtSensors.QSensor.type": (),
- "PySide2.QtSensors.QSensor.userOrientation": (),
-# class PySide2.QtSensors.QSensorBackend:
- "PySide2.QtSensors.QSensorBackend.__init__": ('PySide2.QtSensors.QSensor', 'PySide2.QtCore.QObject'),
- "PySide2.QtSensors.QSensorBackend.addDataRate": ('float', 'float'),
- "PySide2.QtSensors.QSensorBackend.addOutputRange": ('float', 'float', 'float'),
- "PySide2.QtSensors.QSensorBackend.isFeatureSupported": ('PySide2.QtSensors.QSensor.Feature',),
- "PySide2.QtSensors.QSensorBackend.newReadingAvailable": (),
- "PySide2.QtSensors.QSensorBackend.reading": (),
- "PySide2.QtSensors.QSensorBackend.sensor": (),
- "PySide2.QtSensors.QSensorBackend.sensorBusy": (),
- "PySide2.QtSensors.QSensorBackend.sensorError": ('int',),
- "PySide2.QtSensors.QSensorBackend.sensorStopped": (),
- "PySide2.QtSensors.QSensorBackend.setDataRates": ('PySide2.QtSensors.QSensor',),
- "PySide2.QtSensors.QSensorBackend.setDescription": ('str',),
- "PySide2.QtSensors.QSensorBackend.start": (),
- "PySide2.QtSensors.QSensorBackend.stop": (),
-# class PySide2.QtSensors.QSensorBackendFactory:
- "PySide2.QtSensors.QSensorBackendFactory.__init__": (),
- "PySide2.QtSensors.QSensorBackendFactory.createBackend": ('PySide2.QtSensors.QSensor',),
-# class PySide2.QtSensors.QSensorChangesInterface:
- "PySide2.QtSensors.QSensorChangesInterface.__init__": (),
- "PySide2.QtSensors.QSensorChangesInterface.sensorsChanged": (),
-# class PySide2.QtSensors.QSensorFilter:
- "PySide2.QtSensors.QSensorFilter.__init__": (),
- "PySide2.QtSensors.QSensorFilter.filter": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QSensorFilter.setSensor": ('PySide2.QtSensors.QSensor',),
-# class PySide2.QtSensors.QSensorGestureManager:
- "PySide2.QtSensors.QSensorGestureManager.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QSensorGestureManager.gestureIds": (),
- "PySide2.QtSensors.QSensorGestureManager.recognizerSignals": ('str',),
- "PySide2.QtSensors.QSensorGestureManager.registerSensorGestureRecognizer": ('PySide2.QtSensors.QSensorGestureRecognizer',),
- "PySide2.QtSensors.QSensorGestureManager.sensorGestureRecognizer": ('str',),
-# class PySide2.QtSensors.QSensorGesturePluginInterface:
- "PySide2.QtSensors.QSensorGesturePluginInterface.__init__": (),
- "PySide2.QtSensors.QSensorGesturePluginInterface.createRecognizers": (),
- "PySide2.QtSensors.QSensorGesturePluginInterface.name": (),
- "PySide2.QtSensors.QSensorGesturePluginInterface.supportedIds": (),
-# class PySide2.QtSensors.QSensorGestureRecognizer:
- "PySide2.QtSensors.QSensorGestureRecognizer.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QSensorGestureRecognizer.create": (),
- "PySide2.QtSensors.QSensorGestureRecognizer.createBackend": (),
- "PySide2.QtSensors.QSensorGestureRecognizer.gestureSignals": (),
- "PySide2.QtSensors.QSensorGestureRecognizer.id": (),
- "PySide2.QtSensors.QSensorGestureRecognizer.isActive": (),
- "PySide2.QtSensors.QSensorGestureRecognizer.start": (),
- "PySide2.QtSensors.QSensorGestureRecognizer.startBackend": (),
- "PySide2.QtSensors.QSensorGestureRecognizer.stop": (),
- "PySide2.QtSensors.QSensorGestureRecognizer.stopBackend": (),
-# class PySide2.QtSensors.QSensorManager:
- "PySide2.QtSensors.QSensorManager.__init__": (),
- "PySide2.QtSensors.QSensorManager.createBackend": ('PySide2.QtSensors.QSensor',),
- "PySide2.QtSensors.QSensorManager.isBackendRegistered": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtSensors.QSensorManager.registerBackend": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray', 'PySide2.QtSensors.QSensorBackendFactory'),
- "PySide2.QtSensors.QSensorManager.setDefaultBackend": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtSensors.QSensorManager.unregisterBackend": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
-# class PySide2.QtSensors.QSensorPluginInterface:
- "PySide2.QtSensors.QSensorPluginInterface.__init__": (),
- "PySide2.QtSensors.QSensorPluginInterface.registerSensors": (),
-# class PySide2.QtSensors.QSensorReading:
- "PySide2.QtSensors.QSensorReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QSensorReading.setTimestamp": ('int',),
- "PySide2.QtSensors.QSensorReading.timestamp": (),
- "PySide2.QtSensors.QSensorReading.value": ('int',),
- "PySide2.QtSensors.QSensorReading.valueCount": (),
-# class PySide2.QtSensors.QTapFilter:
- "PySide2.QtSensors.QTapFilter.__init__": (),
- "PySide2.QtSensors.QTapFilter.filter": [('PySide2.QtSensors.QSensorReading',), ('PySide2.QtSensors.QTapReading',)],
-# class PySide2.QtSensors.QTapReading:
-# class PySide2.QtSensors.QTapReading.TapDirection:
- "PySide2.QtSensors.QTapReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QTapReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QTapReading.isDoubleTap": (),
- "PySide2.QtSensors.QTapReading.setDoubleTap": ('bool',),
- "PySide2.QtSensors.QTapReading.setTapDirection": ('PySide2.QtSensors.QTapReading.TapDirection',),
- "PySide2.QtSensors.QTapReading.tapDirection": (),
-# class PySide2.QtSensors.QTapSensor:
- "PySide2.QtSensors.QTapSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QTapSensor.reading": (),
- "PySide2.QtSensors.QTapSensor.returnDoubleTapEvents": (),
- "PySide2.QtSensors.QTapSensor.setReturnDoubleTapEvents": ('bool',),
-# class PySide2.QtSensors.QTiltFilter:
- "PySide2.QtSensors.QTiltFilter.__init__": (),
- "PySide2.QtSensors.QTiltFilter.filter": [('PySide2.QtSensors.QSensorReading',), ('PySide2.QtSensors.QTiltReading',)],
-# class PySide2.QtSensors.QTiltReading:
- "PySide2.QtSensors.QTiltReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QTiltReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QTiltReading.setXRotation": ('float',),
- "PySide2.QtSensors.QTiltReading.setYRotation": ('float',),
- "PySide2.QtSensors.QTiltReading.xRotation": (),
- "PySide2.QtSensors.QTiltReading.yRotation": (),
-# class PySide2.QtSensors.QTiltSensor:
- "PySide2.QtSensors.QTiltSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QTiltSensor.calibrate": (),
- "PySide2.QtSensors.QTiltSensor.reading": (),
-# class PySide2.QtSensors.qoutputrange:
- "PySide2.QtSensors.qoutputrange.__init__": [(), ('PySide2.QtSensors.qoutputrange',)],
- "PySide2.QtSensors.qoutputrange.__copy__": (),
- }) if "PySide2.QtSensors" in sys.modules else None
-# Module PySide2.QtTextToSpeech
-sig_dict.update({
-# class PySide2.QtTextToSpeech.QTextToSpeech:
-# class PySide2.QtTextToSpeech.QTextToSpeech.State:
- "PySide2.QtTextToSpeech.QTextToSpeech.__init__": [('PySide2.QtCore.QObject',), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtTextToSpeech.QTextToSpeech.availableEngines": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.availableLocales": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.availableVoices": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.locale": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.pause": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.pitch": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.rate": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.resume": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.say": ('str',),
- "PySide2.QtTextToSpeech.QTextToSpeech.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtTextToSpeech.QTextToSpeech.setPitch": ('float',),
- "PySide2.QtTextToSpeech.QTextToSpeech.setRate": ('float',),
- "PySide2.QtTextToSpeech.QTextToSpeech.setVoice": ('PySide2.QtTextToSpeech.QVoice',),
- "PySide2.QtTextToSpeech.QTextToSpeech.setVolume": ('float',),
- "PySide2.QtTextToSpeech.QTextToSpeech.state": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.stop": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.voice": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.volume": (),
-# class PySide2.QtTextToSpeech.QTextToSpeechEngine:
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.availableLocales": (),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.availableVoices": (),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.createVoice": ('str', 'PySide2.QtTextToSpeech.QVoice.Gender', 'PySide2.QtTextToSpeech.QVoice.Age', 'typing.Any'),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.locale": (),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.pause": (),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.pitch": (),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.rate": (),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.resume": (),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.say": ('str',),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.setPitch": ('float',),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.setRate": ('float',),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.setVoice": ('PySide2.QtTextToSpeech.QVoice',),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.setVolume": ('float',),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.state": (),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.stop": (),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.voice": (),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.voiceData": ('PySide2.QtTextToSpeech.QVoice',),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.volume": (),
-# class PySide2.QtTextToSpeech.QVoice:
-# class PySide2.QtTextToSpeech.QVoice.Age:
-# class PySide2.QtTextToSpeech.QVoice.Gender:
- "PySide2.QtTextToSpeech.QVoice.__init__": [(), ('PySide2.QtTextToSpeech.QVoice',)],
- "PySide2.QtTextToSpeech.QVoice.__copy__": (),
- "PySide2.QtTextToSpeech.QVoice.age": (),
- "PySide2.QtTextToSpeech.QVoice.ageName": ('PySide2.QtTextToSpeech.QVoice.Age',),
- "PySide2.QtTextToSpeech.QVoice.gender": (),
- "PySide2.QtTextToSpeech.QVoice.genderName": ('PySide2.QtTextToSpeech.QVoice.Gender',),
- "PySide2.QtTextToSpeech.QVoice.name": (),
- }) if "PySide2.QtTextToSpeech" in sys.modules else None
-# Module PySide2.QtCharts
-sig_dict.update({
-# class PySide2.QtCharts.QtCharts:
-# class PySide2.QtCharts.QtCharts.QAbstractAxis:
-# class PySide2.QtCharts.QtCharts.QAbstractAxis.AxisType:
- "PySide2.QtCharts.QtCharts.QAbstractAxis.alignment": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.gridLineColor": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.gridLinePen": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.hide": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.isGridLineVisible": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.isLineVisible": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.isMinorGridLineVisible": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.isReverse": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.isTitleVisible": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.isVisible": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.labelsAngle": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.labelsBrush": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.labelsColor": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.labelsEditable": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.labelsFont": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.labelsVisible": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.linePen": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.linePenColor": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.minorGridLineColor": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.minorGridLinePen": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.orientation": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setGridLineColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setGridLinePen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setGridLineVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setLabelsAngle": ('int',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setLabelsBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setLabelsColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setLabelsEditable": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setLabelsFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setLabelsVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setLinePen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setLinePenColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setLineVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setMax": ('typing.Any',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setMin": ('typing.Any',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setMinorGridLineColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setMinorGridLinePen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setMinorGridLineVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setRange": ('typing.Any', 'typing.Any'),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setReverse": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setShadesBorderColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setShadesBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setShadesColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setShadesPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setShadesVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setTitleBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setTitleFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setTitleText": ('str',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setTitleVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.shadesBorderColor": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.shadesBrush": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.shadesColor": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.shadesPen": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.shadesVisible": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.show": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.titleBrush": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.titleFont": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.titleText": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.type": (),
-# class PySide2.QtCharts.QtCharts.QAbstractBarSeries:
-# class PySide2.QtCharts.QtCharts.QAbstractBarSeries.LabelsPosition:
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.append": [('PySide2.QtCharts.QtCharts.QBarSet',), ('typing.Sequence',)],
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.barSets": (),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.barWidth": (),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.clear": (),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.count": (),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.insert": ('int', 'PySide2.QtCharts.QtCharts.QBarSet'),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.isLabelsVisible": (),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.labelsAngle": (),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.labelsFormat": (),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.labelsPosition": (),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.labelsPrecision": (),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.remove": ('PySide2.QtCharts.QtCharts.QBarSet',),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.setBarWidth": ('float',),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.setLabelsAngle": ('float',),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.setLabelsFormat": ('str',),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.setLabelsPosition": ('PySide2.QtCharts.QtCharts.QAbstractBarSeries.LabelsPosition',),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.setLabelsPrecision": ('int',),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.setLabelsVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.take": ('PySide2.QtCharts.QtCharts.QBarSet',),
-# class PySide2.QtCharts.QtCharts.QAbstractSeries:
-# class PySide2.QtCharts.QtCharts.QAbstractSeries.SeriesType:
- "PySide2.QtCharts.QtCharts.QAbstractSeries.attachAxis": ('PySide2.QtCharts.QtCharts.QAbstractAxis',),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.attachedAxes": (),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.chart": (),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.detachAxis": ('PySide2.QtCharts.QtCharts.QAbstractAxis',),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.hide": (),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.isVisible": (),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.name": (),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.opacity": (),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.setName": ('str',),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.setOpacity": ('float',),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.setUseOpenGL": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.setVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.show": (),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.type": (),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.useOpenGL": (),
-# class PySide2.QtCharts.QtCharts.QAreaLegendMarker:
- "PySide2.QtCharts.QtCharts.QAreaLegendMarker.__init__": ('PySide2.QtCharts.QtCharts.QAreaSeries', 'PySide2.QtCharts.QtCharts.QLegend', 'PySide2.QtCore.QObject'),
- "PySide2.QtCharts.QtCharts.QAreaLegendMarker.series": (),
- "PySide2.QtCharts.QtCharts.QAreaLegendMarker.type": (),
-# class PySide2.QtCharts.QtCharts.QAreaSeries:
- "PySide2.QtCharts.QtCharts.QAreaSeries.__init__": [('PySide2.QtCharts.QtCharts.QLineSeries', 'PySide2.QtCharts.QtCharts.QLineSeries'), ('PySide2.QtCore.QObject',)],
- "PySide2.QtCharts.QtCharts.QAreaSeries.borderColor": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.brush": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.color": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.lowerSeries": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.pen": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.pointLabelsClipping": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.pointLabelsColor": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.pointLabelsFont": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.pointLabelsFormat": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.pointLabelsVisible": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.pointsVisible": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setBorderColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setLowerSeries": ('PySide2.QtCharts.QtCharts.QLineSeries',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setPointLabelsClipping": ('bool',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setPointLabelsColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setPointLabelsFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setPointLabelsFormat": ('str',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setPointLabelsVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setPointsVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setUpperSeries": ('PySide2.QtCharts.QtCharts.QLineSeries',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.type": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.upperSeries": (),
-# class PySide2.QtCharts.QtCharts.QBarCategoryAxis:
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.append": [('str',), ('typing.Sequence',)],
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.at": ('int',),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.categories": (),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.clear": (),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.count": (),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.insert": ('int', 'str'),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.max": (),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.min": (),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.remove": ('str',),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.replace": ('str', 'str'),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.setCategories": ('typing.Sequence',),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.setMax": [('str',), ('typing.Any',)],
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.setMin": [('str',), ('typing.Any',)],
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.setRange": [('str', 'str'), ('typing.Any', 'typing.Any')],
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.type": (),
-# class PySide2.QtCharts.QtCharts.QBarLegendMarker:
- "PySide2.QtCharts.QtCharts.QBarLegendMarker.__init__": ('PySide2.QtCharts.QtCharts.QAbstractBarSeries', 'PySide2.QtCharts.QtCharts.QBarSet', 'PySide2.QtCharts.QtCharts.QLegend', 'PySide2.QtCore.QObject'),
- "PySide2.QtCharts.QtCharts.QBarLegendMarker.barset": (),
- "PySide2.QtCharts.QtCharts.QBarLegendMarker.series": (),
- "PySide2.QtCharts.QtCharts.QBarLegendMarker.type": (),
-# class PySide2.QtCharts.QtCharts.QBarModelMapper:
- "PySide2.QtCharts.QtCharts.QBarModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.count": (),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.first": (),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.firstBarSetSection": (),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.lastBarSetSection": (),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.orientation": (),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.setCount": ('int',),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.setFirst": ('int',),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.setFirstBarSetSection": ('int',),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.setLastBarSetSection": ('int',),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QAbstractBarSeries',),
-# class PySide2.QtCharts.QtCharts.QBarSeries:
- "PySide2.QtCharts.QtCharts.QBarSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QBarSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QBarSet:
- "PySide2.QtCharts.QtCharts.QBarSet.__init__": ('str', 'PySide2.QtCore.QObject'),
- "PySide2.QtCharts.QtCharts.QBarSet.__lshift__": ('float',),
- "PySide2.QtCharts.QtCharts.QBarSet.append": [('float',), ('typing.Sequence',)],
- "PySide2.QtCharts.QtCharts.QBarSet.at": ('int',),
- "PySide2.QtCharts.QtCharts.QBarSet.borderColor": (),
- "PySide2.QtCharts.QtCharts.QBarSet.brush": (),
- "PySide2.QtCharts.QtCharts.QBarSet.color": (),
- "PySide2.QtCharts.QtCharts.QBarSet.count": (),
- "PySide2.QtCharts.QtCharts.QBarSet.insert": ('int', 'float'),
- "PySide2.QtCharts.QtCharts.QBarSet.label": (),
- "PySide2.QtCharts.QtCharts.QBarSet.labelBrush": (),
- "PySide2.QtCharts.QtCharts.QBarSet.labelColor": (),
- "PySide2.QtCharts.QtCharts.QBarSet.labelFont": (),
- "PySide2.QtCharts.QtCharts.QBarSet.pen": (),
- "PySide2.QtCharts.QtCharts.QBarSet.remove": ('int', 'int'),
- "PySide2.QtCharts.QtCharts.QBarSet.replace": ('int', 'float'),
- "PySide2.QtCharts.QtCharts.QBarSet.setBorderColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QBarSet.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QBarSet.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QBarSet.setLabel": ('str',),
- "PySide2.QtCharts.QtCharts.QBarSet.setLabelBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QBarSet.setLabelColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QBarSet.setLabelFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtCharts.QtCharts.QBarSet.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QBarSet.sum": (),
-# class PySide2.QtCharts.QtCharts.QBoxPlotLegendMarker:
- "PySide2.QtCharts.QtCharts.QBoxPlotLegendMarker.__init__": ('PySide2.QtCharts.QtCharts.QBoxPlotSeries', 'PySide2.QtCharts.QtCharts.QLegend', 'PySide2.QtCore.QObject'),
- "PySide2.QtCharts.QtCharts.QBoxPlotLegendMarker.series": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotLegendMarker.type": (),
-# class PySide2.QtCharts.QtCharts.QBoxPlotModelMapper:
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.count": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.first": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.firstBoxSetSection": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.lastBoxSetSection": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.orientation": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.setCount": ('int',),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.setFirst": ('int',),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.setFirstBoxSetSection": ('int',),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.setLastBoxSetSection": ('int',),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QBoxPlotSeries',),
-# class PySide2.QtCharts.QtCharts.QBoxPlotSeries:
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.append": [('PySide2.QtCharts.QtCharts.QBoxSet',), ('typing.Sequence',)],
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.boxOutlineVisible": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.boxSets": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.boxWidth": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.brush": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.clear": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.count": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.insert": ('int', 'PySide2.QtCharts.QtCharts.QBoxSet'),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.pen": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.remove": ('PySide2.QtCharts.QtCharts.QBoxSet',),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.setBoxOutlineVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.setBoxWidth": ('float',),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.take": ('PySide2.QtCharts.QtCharts.QBoxSet',),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QBoxSet:
-# class PySide2.QtCharts.QtCharts.QBoxSet.ValuePositions:
- "PySide2.QtCharts.QtCharts.QBoxSet.__init__": [('float', 'float', 'float', 'float', 'float', 'str', 'PySide2.QtCore.QObject'), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtCharts.QtCharts.QBoxSet.__lshift__": ('float',),
- "PySide2.QtCharts.QtCharts.QBoxSet.append": [('float',), ('typing.Sequence',)],
- "PySide2.QtCharts.QtCharts.QBoxSet.at": ('int',),
- "PySide2.QtCharts.QtCharts.QBoxSet.brush": (),
- "PySide2.QtCharts.QtCharts.QBoxSet.clear": (),
- "PySide2.QtCharts.QtCharts.QBoxSet.count": (),
- "PySide2.QtCharts.QtCharts.QBoxSet.label": (),
- "PySide2.QtCharts.QtCharts.QBoxSet.pen": (),
- "PySide2.QtCharts.QtCharts.QBoxSet.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QBoxSet.setLabel": ('str',),
- "PySide2.QtCharts.QtCharts.QBoxSet.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QBoxSet.setValue": ('int', 'float'),
-# class PySide2.QtCharts.QtCharts.QCandlestickLegendMarker:
- "PySide2.QtCharts.QtCharts.QCandlestickLegendMarker.__init__": ('PySide2.QtCharts.QtCharts.QCandlestickSeries', 'PySide2.QtCharts.QtCharts.QLegend', 'PySide2.QtCore.QObject'),
- "PySide2.QtCharts.QtCharts.QCandlestickLegendMarker.series": (),
- "PySide2.QtCharts.QtCharts.QCandlestickLegendMarker.type": (),
-# class PySide2.QtCharts.QtCharts.QCandlestickModelMapper:
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.close": (),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.firstSetSection": (),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.high": (),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.lastSetSection": (),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.low": (),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.open": (),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.orientation": (),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.setClose": ('int',),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.setFirstSetSection": ('int',),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.setHigh": ('int',),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.setLastSetSection": ('int',),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.setLow": ('int',),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.setOpen": ('int',),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QCandlestickSeries',),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.setTimestamp": ('int',),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.timestamp": (),
-# class PySide2.QtCharts.QtCharts.QCandlestickSeries:
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.append": [('PySide2.QtCharts.QtCharts.QCandlestickSet',), ('typing.Sequence',)],
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.bodyOutlineVisible": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.bodyWidth": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.brush": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.capsVisible": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.capsWidth": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.clear": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.count": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.decreasingColor": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.increasingColor": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.insert": ('int', 'PySide2.QtCharts.QtCharts.QCandlestickSet'),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.maximumColumnWidth": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.minimumColumnWidth": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.pen": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.remove": [('PySide2.QtCharts.QtCharts.QCandlestickSet',), ('typing.Sequence',)],
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.setBodyOutlineVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.setBodyWidth": ('float',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.setCapsVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.setCapsWidth": ('float',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.setDecreasingColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.setIncreasingColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.setMaximumColumnWidth": ('float',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.setMinimumColumnWidth": ('float',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.sets": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.take": ('PySide2.QtCharts.QtCharts.QCandlestickSet',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QCandlestickSet:
- "PySide2.QtCharts.QtCharts.QCandlestickSet.__init__": [('float', 'PySide2.QtCore.QObject'), ('float', 'float', 'float', 'float', 'float', 'PySide2.QtCore.QObject')],
- "PySide2.QtCharts.QtCharts.QCandlestickSet.brush": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.close": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.high": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.low": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.open": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.pen": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.setClose": ('float',),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.setHigh": ('float',),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.setLow": ('float',),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.setOpen": ('float',),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.setTimestamp": ('float',),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.timestamp": (),
-# class PySide2.QtCharts.QtCharts.QCategoryAxis:
-# class PySide2.QtCharts.QtCharts.QCategoryAxis.AxisLabelsPosition:
- "PySide2.QtCharts.QtCharts.QCategoryAxis.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.append": ('str', 'float'),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.categoriesLabels": (),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.count": (),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.endValue": ('str',),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.labelsPosition": (),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.remove": ('str',),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.replaceLabel": ('str', 'str'),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.setLabelsPosition": ('PySide2.QtCharts.QtCharts.QCategoryAxis.AxisLabelsPosition',),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.setStartValue": ('float',),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.startValue": ('str',),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.type": (),
-# class PySide2.QtCharts.QtCharts.QChart:
-# class PySide2.QtCharts.QtCharts.QChart.AnimationOption:
-# class PySide2.QtCharts.QtCharts.QChart.AnimationOptions:
-# class PySide2.QtCharts.QtCharts.QChart.ChartTheme:
-# class PySide2.QtCharts.QtCharts.QChart.ChartType:
- "PySide2.QtCharts.QtCharts.QChart.__init__": [('PySide2.QtCharts.QtCharts.QChart.ChartType', 'PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.Qt.WindowFlags'), ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.Qt.WindowFlags')],
- "PySide2.QtCharts.QtCharts.QChart.addAxis": ('PySide2.QtCharts.QtCharts.QAbstractAxis', 'PySide2.QtCore.Qt.Alignment'),
- "PySide2.QtCharts.QtCharts.QChart.addSeries": ('PySide2.QtCharts.QtCharts.QAbstractSeries',),
- "PySide2.QtCharts.QtCharts.QChart.animationDuration": (),
- "PySide2.QtCharts.QtCharts.QChart.animationEasingCurve": (),
- "PySide2.QtCharts.QtCharts.QChart.animationOptions": (),
- "PySide2.QtCharts.QtCharts.QChart.axes": ('PySide2.QtCore.Qt.Orientations', 'PySide2.QtCharts.QtCharts.QAbstractSeries'),
- "PySide2.QtCharts.QtCharts.QChart.axisX": ('PySide2.QtCharts.QtCharts.QAbstractSeries',),
- "PySide2.QtCharts.QtCharts.QChart.axisY": ('PySide2.QtCharts.QtCharts.QAbstractSeries',),
- "PySide2.QtCharts.QtCharts.QChart.backgroundBrush": (),
- "PySide2.QtCharts.QtCharts.QChart.backgroundPen": (),
- "PySide2.QtCharts.QtCharts.QChart.backgroundRoundness": (),
- "PySide2.QtCharts.QtCharts.QChart.chartType": (),
- "PySide2.QtCharts.QtCharts.QChart.createDefaultAxes": (),
- "PySide2.QtCharts.QtCharts.QChart.isBackgroundVisible": (),
- "PySide2.QtCharts.QtCharts.QChart.isDropShadowEnabled": (),
- "PySide2.QtCharts.QtCharts.QChart.isPlotAreaBackgroundVisible": (),
- "PySide2.QtCharts.QtCharts.QChart.isZoomed": (),
- "PySide2.QtCharts.QtCharts.QChart.legend": (),
- "PySide2.QtCharts.QtCharts.QChart.locale": (),
- "PySide2.QtCharts.QtCharts.QChart.localizeNumbers": (),
- "PySide2.QtCharts.QtCharts.QChart.mapToPosition": ('PySide2.QtCore.QPointF', 'PySide2.QtCharts.QtCharts.QAbstractSeries'),
- "PySide2.QtCharts.QtCharts.QChart.mapToValue": ('PySide2.QtCore.QPointF', 'PySide2.QtCharts.QtCharts.QAbstractSeries'),
- "PySide2.QtCharts.QtCharts.QChart.margins": (),
- "PySide2.QtCharts.QtCharts.QChart.plotArea": (),
- "PySide2.QtCharts.QtCharts.QChart.plotAreaBackgroundBrush": (),
- "PySide2.QtCharts.QtCharts.QChart.plotAreaBackgroundPen": (),
- "PySide2.QtCharts.QtCharts.QChart.removeAllSeries": (),
- "PySide2.QtCharts.QtCharts.QChart.removeAxis": ('PySide2.QtCharts.QtCharts.QAbstractAxis',),
- "PySide2.QtCharts.QtCharts.QChart.removeSeries": ('PySide2.QtCharts.QtCharts.QAbstractSeries',),
- "PySide2.QtCharts.QtCharts.QChart.scroll": ('float', 'float'),
- "PySide2.QtCharts.QtCharts.QChart.series": (),
- "PySide2.QtCharts.QtCharts.QChart.setAnimationDuration": ('int',),
- "PySide2.QtCharts.QtCharts.QChart.setAnimationEasingCurve": ('PySide2.QtCore.QEasingCurve',),
- "PySide2.QtCharts.QtCharts.QChart.setAnimationOptions": ('PySide2.QtCharts.QtCharts.QChart.AnimationOptions',),
- "PySide2.QtCharts.QtCharts.QChart.setAxisX": ('PySide2.QtCharts.QtCharts.QAbstractAxis', 'PySide2.QtCharts.QtCharts.QAbstractSeries'),
- "PySide2.QtCharts.QtCharts.QChart.setAxisY": ('PySide2.QtCharts.QtCharts.QAbstractAxis', 'PySide2.QtCharts.QtCharts.QAbstractSeries'),
- "PySide2.QtCharts.QtCharts.QChart.setBackgroundBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QChart.setBackgroundPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QChart.setBackgroundRoundness": ('float',),
- "PySide2.QtCharts.QtCharts.QChart.setBackgroundVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QChart.setDropShadowEnabled": ('bool',),
- "PySide2.QtCharts.QtCharts.QChart.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtCharts.QtCharts.QChart.setLocalizeNumbers": ('bool',),
- "PySide2.QtCharts.QtCharts.QChart.setMargins": ('PySide2.QtCore.QMargins',),
- "PySide2.QtCharts.QtCharts.QChart.setPlotArea": ('PySide2.QtCore.QRectF',),
- "PySide2.QtCharts.QtCharts.QChart.setPlotAreaBackgroundBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QChart.setPlotAreaBackgroundPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QChart.setPlotAreaBackgroundVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QChart.setTheme": ('PySide2.QtCharts.QtCharts.QChart.ChartTheme',),
- "PySide2.QtCharts.QtCharts.QChart.setTitle": ('str',),
- "PySide2.QtCharts.QtCharts.QChart.setTitleBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QChart.setTitleFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtCharts.QtCharts.QChart.theme": (),
- "PySide2.QtCharts.QtCharts.QChart.title": (),
- "PySide2.QtCharts.QtCharts.QChart.titleBrush": (),
- "PySide2.QtCharts.QtCharts.QChart.titleFont": (),
- "PySide2.QtCharts.QtCharts.QChart.zoom": ('float',),
- "PySide2.QtCharts.QtCharts.QChart.zoomIn": [(), ('PySide2.QtCore.QRectF',)],
- "PySide2.QtCharts.QtCharts.QChart.zoomOut": (),
- "PySide2.QtCharts.QtCharts.QChart.zoomReset": (),
-# class PySide2.QtCharts.QtCharts.QChartView:
-# class PySide2.QtCharts.QtCharts.QChartView.RubberBand:
-# class PySide2.QtCharts.QtCharts.QChartView.RubberBands:
- "PySide2.QtCharts.QtCharts.QChartView.__init__": [('PySide2.QtCharts.QtCharts.QChart', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtCharts.QtCharts.QChartView.chart": (),
- "PySide2.QtCharts.QtCharts.QChartView.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtCharts.QtCharts.QChartView.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtCharts.QtCharts.QChartView.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtCharts.QtCharts.QChartView.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtCharts.QtCharts.QChartView.rubberBand": (),
- "PySide2.QtCharts.QtCharts.QChartView.setChart": ('PySide2.QtCharts.QtCharts.QChart',),
- "PySide2.QtCharts.QtCharts.QChartView.setRubberBand": ('PySide2.QtCharts.QtCharts.QChartView.RubberBands',),
-# class PySide2.QtCharts.QtCharts.QDateTimeAxis:
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.format": (),
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.max": (),
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.min": (),
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.setFormat": ('str',),
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.setMax": [('PySide2.QtCore.QDateTime',), ('typing.Any',)],
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.setMin": [('PySide2.QtCore.QDateTime',), ('typing.Any',)],
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.setRange": [('PySide2.QtCore.QDateTime', 'PySide2.QtCore.QDateTime'), ('typing.Any', 'typing.Any')],
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.setTickCount": ('int',),
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.tickCount": (),
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.type": (),
-# class PySide2.QtCharts.QtCharts.QHBarModelMapper:
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.columnCount": (),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.firstBarSetRow": (),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.firstColumn": (),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.lastBarSetRow": (),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.setColumnCount": ('int',),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.setFirstBarSetRow": ('int',),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.setFirstColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.setLastBarSetRow": ('int',),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QAbstractBarSeries',),
-# class PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper:
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.columnCount": (),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.firstBoxSetRow": (),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.firstColumn": (),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.lastBoxSetRow": (),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.setColumnCount": ('int',),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.setFirstBoxSetRow": ('int',),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.setFirstColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.setLastBoxSetRow": ('int',),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QBoxPlotSeries',),
-# class PySide2.QtCharts.QtCharts.QHCandlestickModelMapper:
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.closeColumn": (),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.firstSetRow": (),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.highColumn": (),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.lastSetRow": (),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.lowColumn": (),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.openColumn": (),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.orientation": (),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.setCloseColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.setFirstSetRow": ('int',),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.setHighColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.setLastSetRow": ('int',),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.setLowColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.setOpenColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.setTimestampColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.timestampColumn": (),
-# class PySide2.QtCharts.QtCharts.QHPieModelMapper:
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.columnCount": (),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.firstColumn": (),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.labelsRow": (),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.setColumnCount": ('int',),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.setFirstColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.setLabelsRow": ('int',),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QPieSeries',),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.setValuesRow": ('int',),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.valuesRow": (),
-# class PySide2.QtCharts.QtCharts.QHXYModelMapper:
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.columnCount": (),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.firstColumn": (),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.setColumnCount": ('int',),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.setFirstColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QXYSeries',),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.setXRow": ('int',),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.setYRow": ('int',),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.xRow": (),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.yRow": (),
-# class PySide2.QtCharts.QtCharts.QHorizontalBarSeries:
- "PySide2.QtCharts.QtCharts.QHorizontalBarSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QHorizontalBarSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QHorizontalPercentBarSeries:
- "PySide2.QtCharts.QtCharts.QHorizontalPercentBarSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QHorizontalPercentBarSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QHorizontalStackedBarSeries:
- "PySide2.QtCharts.QtCharts.QHorizontalStackedBarSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QHorizontalStackedBarSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QLegend:
-# class PySide2.QtCharts.QtCharts.QLegend.MarkerShape:
- "PySide2.QtCharts.QtCharts.QLegend.alignment": (),
- "PySide2.QtCharts.QtCharts.QLegend.attachToChart": (),
- "PySide2.QtCharts.QtCharts.QLegend.borderColor": (),
- "PySide2.QtCharts.QtCharts.QLegend.brush": (),
- "PySide2.QtCharts.QtCharts.QLegend.color": (),
- "PySide2.QtCharts.QtCharts.QLegend.detachFromChart": (),
- "PySide2.QtCharts.QtCharts.QLegend.font": (),
- "PySide2.QtCharts.QtCharts.QLegend.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtCharts.QtCharts.QLegend.isAttachedToChart": (),
- "PySide2.QtCharts.QtCharts.QLegend.isBackgroundVisible": (),
- "PySide2.QtCharts.QtCharts.QLegend.labelBrush": (),
- "PySide2.QtCharts.QtCharts.QLegend.labelColor": (),
- "PySide2.QtCharts.QtCharts.QLegend.markerShape": (),
- "PySide2.QtCharts.QtCharts.QLegend.markers": ('PySide2.QtCharts.QtCharts.QAbstractSeries',),
- "PySide2.QtCharts.QtCharts.QLegend.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtCharts.QtCharts.QLegend.pen": (),
- "PySide2.QtCharts.QtCharts.QLegend.reverseMarkers": (),
- "PySide2.QtCharts.QtCharts.QLegend.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtCharts.QtCharts.QLegend.setBackgroundVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QLegend.setBorderColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QLegend.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QLegend.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QLegend.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtCharts.QtCharts.QLegend.setLabelBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QLegend.setLabelColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QLegend.setMarkerShape": ('PySide2.QtCharts.QtCharts.QLegend.MarkerShape',),
- "PySide2.QtCharts.QtCharts.QLegend.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QLegend.setReverseMarkers": ('bool',),
- "PySide2.QtCharts.QtCharts.QLegend.setShowToolTips": ('bool',),
- "PySide2.QtCharts.QtCharts.QLegend.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtCharts.QtCharts.QLegend.showToolTips": (),
-# class PySide2.QtCharts.QtCharts.QLegendMarker:
-# class PySide2.QtCharts.QtCharts.QLegendMarker.LegendMarkerType:
- "PySide2.QtCharts.QtCharts.QLegendMarker.brush": (),
- "PySide2.QtCharts.QtCharts.QLegendMarker.font": (),
- "PySide2.QtCharts.QtCharts.QLegendMarker.isVisible": (),
- "PySide2.QtCharts.QtCharts.QLegendMarker.label": (),
- "PySide2.QtCharts.QtCharts.QLegendMarker.labelBrush": (),
- "PySide2.QtCharts.QtCharts.QLegendMarker.pen": (),
- "PySide2.QtCharts.QtCharts.QLegendMarker.series": (),
- "PySide2.QtCharts.QtCharts.QLegendMarker.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QLegendMarker.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtCharts.QtCharts.QLegendMarker.setLabel": ('str',),
- "PySide2.QtCharts.QtCharts.QLegendMarker.setLabelBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QLegendMarker.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QLegendMarker.setShape": ('PySide2.QtCharts.QtCharts.QLegend.MarkerShape',),
- "PySide2.QtCharts.QtCharts.QLegendMarker.setVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QLegendMarker.shape": (),
- "PySide2.QtCharts.QtCharts.QLegendMarker.type": (),
-# class PySide2.QtCharts.QtCharts.QLineSeries:
- "PySide2.QtCharts.QtCharts.QLineSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QLineSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QLogValueAxis:
- "PySide2.QtCharts.QtCharts.QLogValueAxis.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QLogValueAxis.base": (),
- "PySide2.QtCharts.QtCharts.QLogValueAxis.labelFormat": (),
- "PySide2.QtCharts.QtCharts.QLogValueAxis.max": (),
- "PySide2.QtCharts.QtCharts.QLogValueAxis.min": (),
- "PySide2.QtCharts.QtCharts.QLogValueAxis.minorTickCount": (),
- "PySide2.QtCharts.QtCharts.QLogValueAxis.setBase": ('float',),
- "PySide2.QtCharts.QtCharts.QLogValueAxis.setLabelFormat": ('str',),
- "PySide2.QtCharts.QtCharts.QLogValueAxis.setMax": [('float',), ('typing.Any',)],
- "PySide2.QtCharts.QtCharts.QLogValueAxis.setMin": [('float',), ('typing.Any',)],
- "PySide2.QtCharts.QtCharts.QLogValueAxis.setMinorTickCount": ('int',),
- "PySide2.QtCharts.QtCharts.QLogValueAxis.setRange": [('float', 'float'), ('typing.Any', 'typing.Any')],
- "PySide2.QtCharts.QtCharts.QLogValueAxis.tickCount": (),
- "PySide2.QtCharts.QtCharts.QLogValueAxis.type": (),
-# class PySide2.QtCharts.QtCharts.QPercentBarSeries:
- "PySide2.QtCharts.QtCharts.QPercentBarSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QPercentBarSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QPieLegendMarker:
- "PySide2.QtCharts.QtCharts.QPieLegendMarker.__init__": ('PySide2.QtCharts.QtCharts.QPieSeries', 'PySide2.QtCharts.QtCharts.QPieSlice', 'PySide2.QtCharts.QtCharts.QLegend', 'PySide2.QtCore.QObject'),
- "PySide2.QtCharts.QtCharts.QPieLegendMarker.series": (),
- "PySide2.QtCharts.QtCharts.QPieLegendMarker.slice": (),
- "PySide2.QtCharts.QtCharts.QPieLegendMarker.type": (),
-# class PySide2.QtCharts.QtCharts.QPieModelMapper:
- "PySide2.QtCharts.QtCharts.QPieModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.count": (),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.first": (),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.labelsSection": (),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.orientation": (),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.setCount": ('int',),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.setFirst": ('int',),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.setLabelsSection": ('int',),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QPieSeries',),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.setValuesSection": ('int',),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.valuesSection": (),
-# class PySide2.QtCharts.QtCharts.QPieSeries:
- "PySide2.QtCharts.QtCharts.QPieSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QPieSeries.__lshift__": ('PySide2.QtCharts.QtCharts.QPieSlice',),
- "PySide2.QtCharts.QtCharts.QPieSeries.append": [('PySide2.QtCharts.QtCharts.QPieSlice',), ('str', 'float'), ('typing.Sequence',)],
- "PySide2.QtCharts.QtCharts.QPieSeries.clear": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.count": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.holeSize": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.horizontalPosition": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.insert": ('int', 'PySide2.QtCharts.QtCharts.QPieSlice'),
- "PySide2.QtCharts.QtCharts.QPieSeries.isEmpty": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.pieEndAngle": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.pieSize": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.pieStartAngle": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.remove": ('PySide2.QtCharts.QtCharts.QPieSlice',),
- "PySide2.QtCharts.QtCharts.QPieSeries.setHoleSize": ('float',),
- "PySide2.QtCharts.QtCharts.QPieSeries.setHorizontalPosition": ('float',),
- "PySide2.QtCharts.QtCharts.QPieSeries.setLabelsPosition": ('PySide2.QtCharts.QtCharts.QPieSlice.LabelPosition',),
- "PySide2.QtCharts.QtCharts.QPieSeries.setLabelsVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QPieSeries.setPieEndAngle": ('float',),
- "PySide2.QtCharts.QtCharts.QPieSeries.setPieSize": ('float',),
- "PySide2.QtCharts.QtCharts.QPieSeries.setPieStartAngle": ('float',),
- "PySide2.QtCharts.QtCharts.QPieSeries.setVerticalPosition": ('float',),
- "PySide2.QtCharts.QtCharts.QPieSeries.slices": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.sum": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.take": ('PySide2.QtCharts.QtCharts.QPieSlice',),
- "PySide2.QtCharts.QtCharts.QPieSeries.type": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.verticalPosition": (),
-# class PySide2.QtCharts.QtCharts.QPieSlice:
-# class PySide2.QtCharts.QtCharts.QPieSlice.LabelPosition:
- "PySide2.QtCharts.QtCharts.QPieSlice.__init__": [('PySide2.QtCore.QObject',), ('str', 'float', 'PySide2.QtCore.QObject')],
- "PySide2.QtCharts.QtCharts.QPieSlice.angleSpan": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.borderColor": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.borderWidth": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.brush": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.color": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.explodeDistanceFactor": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.isExploded": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.isLabelVisible": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.label": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.labelArmLengthFactor": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.labelBrush": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.labelColor": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.labelFont": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.labelPosition": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.pen": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.percentage": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.series": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.setBorderColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setBorderWidth": ('int',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setExplodeDistanceFactor": ('float',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setExploded": ('bool',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setLabel": ('str',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setLabelArmLengthFactor": ('float',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setLabelBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setLabelColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setLabelFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setLabelPosition": ('PySide2.QtCharts.QtCharts.QPieSlice.LabelPosition',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setLabelVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setValue": ('float',),
- "PySide2.QtCharts.QtCharts.QPieSlice.startAngle": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.value": (),
-# class PySide2.QtCharts.QtCharts.QPolarChart:
-# class PySide2.QtCharts.QtCharts.QPolarChart.PolarOrientation:
-# class PySide2.QtCharts.QtCharts.QPolarChart.PolarOrientations:
- "PySide2.QtCharts.QtCharts.QPolarChart.__init__": ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtCharts.QtCharts.QPolarChart.addAxis": [('PySide2.QtCharts.QtCharts.QAbstractAxis', 'PySide2.QtCharts.QtCharts.QPolarChart.PolarOrientation'), ('PySide2.QtCharts.QtCharts.QAbstractAxis', 'PySide2.QtCore.Qt.Alignment')],
- "PySide2.QtCharts.QtCharts.QPolarChart.axisPolarOrientation": ('PySide2.QtCharts.QtCharts.QAbstractAxis',),
-# class PySide2.QtCharts.QtCharts.QScatterSeries:
-# class PySide2.QtCharts.QtCharts.QScatterSeries.MarkerShape:
- "PySide2.QtCharts.QtCharts.QScatterSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QScatterSeries.borderColor": (),
- "PySide2.QtCharts.QtCharts.QScatterSeries.brush": (),
- "PySide2.QtCharts.QtCharts.QScatterSeries.color": (),
- "PySide2.QtCharts.QtCharts.QScatterSeries.markerShape": (),
- "PySide2.QtCharts.QtCharts.QScatterSeries.markerSize": (),
- "PySide2.QtCharts.QtCharts.QScatterSeries.setBorderColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QScatterSeries.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QScatterSeries.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QScatterSeries.setMarkerShape": ('PySide2.QtCharts.QtCharts.QScatterSeries.MarkerShape',),
- "PySide2.QtCharts.QtCharts.QScatterSeries.setMarkerSize": ('float',),
- "PySide2.QtCharts.QtCharts.QScatterSeries.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QScatterSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QSplineSeries:
- "PySide2.QtCharts.QtCharts.QSplineSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QSplineSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QStackedBarSeries:
- "PySide2.QtCharts.QtCharts.QStackedBarSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QStackedBarSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QVBarModelMapper:
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.firstBarSetColumn": (),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.firstRow": (),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.lastBarSetColumn": (),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.rowCount": (),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.setFirstBarSetColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.setFirstRow": ('int',),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.setLastBarSetColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.setRowCount": ('int',),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QAbstractBarSeries',),
-# class PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper:
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.firstBoxSetColumn": (),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.firstRow": (),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.lastBoxSetColumn": (),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.rowCount": (),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.setFirstBoxSetColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.setFirstRow": ('int',),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.setLastBoxSetColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.setRowCount": ('int',),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QBoxPlotSeries',),
-# class PySide2.QtCharts.QtCharts.QVCandlestickModelMapper:
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.closeRow": (),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.firstSetColumn": (),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.highRow": (),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.lastSetColumn": (),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.lowRow": (),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.openRow": (),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.orientation": (),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.setCloseRow": ('int',),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.setFirstSetColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.setHighRow": ('int',),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.setLastSetColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.setLowRow": ('int',),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.setOpenRow": ('int',),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.setTimestampRow": ('int',),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.timestampRow": (),
-# class PySide2.QtCharts.QtCharts.QVPieModelMapper:
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.firstRow": (),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.labelsColumn": (),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.rowCount": (),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.setFirstRow": ('int',),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.setLabelsColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.setRowCount": ('int',),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QPieSeries',),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.setValuesColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.valuesColumn": (),
-# class PySide2.QtCharts.QtCharts.QVXYModelMapper:
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.firstRow": (),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.rowCount": (),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.setFirstRow": ('int',),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.setRowCount": ('int',),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QXYSeries',),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.setXColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.setYColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.xColumn": (),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.yColumn": (),
-# class PySide2.QtCharts.QtCharts.QValueAxis:
- "PySide2.QtCharts.QtCharts.QValueAxis.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QValueAxis.applyNiceNumbers": (),
- "PySide2.QtCharts.QtCharts.QValueAxis.labelFormat": (),
- "PySide2.QtCharts.QtCharts.QValueAxis.max": (),
- "PySide2.QtCharts.QtCharts.QValueAxis.min": (),
- "PySide2.QtCharts.QtCharts.QValueAxis.minorTickCount": (),
- "PySide2.QtCharts.QtCharts.QValueAxis.setLabelFormat": ('str',),
- "PySide2.QtCharts.QtCharts.QValueAxis.setMax": [('float',), ('typing.Any',)],
- "PySide2.QtCharts.QtCharts.QValueAxis.setMin": [('float',), ('typing.Any',)],
- "PySide2.QtCharts.QtCharts.QValueAxis.setMinorTickCount": ('int',),
- "PySide2.QtCharts.QtCharts.QValueAxis.setRange": [('float', 'float'), ('typing.Any', 'typing.Any')],
- "PySide2.QtCharts.QtCharts.QValueAxis.setTickAnchor": ('float',),
- "PySide2.QtCharts.QtCharts.QValueAxis.setTickCount": ('int',),
- "PySide2.QtCharts.QtCharts.QValueAxis.setTickInterval": ('float',),
- "PySide2.QtCharts.QtCharts.QValueAxis.tickAnchor": (),
- "PySide2.QtCharts.QtCharts.QValueAxis.tickCount": (),
- "PySide2.QtCharts.QtCharts.QValueAxis.tickInterval": (),
- "PySide2.QtCharts.QtCharts.QValueAxis.type": (),
-# class PySide2.QtCharts.QtCharts.QXYLegendMarker:
- "PySide2.QtCharts.QtCharts.QXYLegendMarker.__init__": ('PySide2.QtCharts.QtCharts.QXYSeries', 'PySide2.QtCharts.QtCharts.QLegend', 'PySide2.QtCore.QObject'),
- "PySide2.QtCharts.QtCharts.QXYLegendMarker.series": (),
- "PySide2.QtCharts.QtCharts.QXYLegendMarker.type": (),
-# class PySide2.QtCharts.QtCharts.QXYModelMapper:
- "PySide2.QtCharts.QtCharts.QXYModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.count": (),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.first": (),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.orientation": (),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.setCount": ('int',),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.setFirst": ('int',),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QXYSeries',),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.setXSection": ('int',),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.setYSection": ('int',),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.xSection": (),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.ySection": (),
-# class PySide2.QtCharts.QtCharts.QXYSeries:
- "PySide2.QtCharts.QtCharts.QXYSeries.__lshift__": [('PySide2.QtCore.QPointF',), ('typing.Sequence',)],
- "PySide2.QtCharts.QtCharts.QXYSeries.append": [('PySide2.QtCore.QPointF',), ('float', 'float'), ('typing.Sequence',)],
- "PySide2.QtCharts.QtCharts.QXYSeries.at": ('int',),
- "PySide2.QtCharts.QtCharts.QXYSeries.brush": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.clear": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.color": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.count": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.insert": ('int', 'PySide2.QtCore.QPointF'),
- "PySide2.QtCharts.QtCharts.QXYSeries.pen": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.pointLabelsClipping": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.pointLabelsColor": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.pointLabelsFont": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.pointLabelsFormat": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.pointLabelsVisible": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.points": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.pointsVector": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.pointsVisible": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.remove": [('PySide2.QtCore.QPointF',), ('float', 'float'), ('int',)],
- "PySide2.QtCharts.QtCharts.QXYSeries.removePoints": ('int', 'int'),
- "PySide2.QtCharts.QtCharts.QXYSeries.replace": [('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'), ('float', 'float', 'float', 'float'), ('int', 'PySide2.QtCore.QPointF'), ('int', 'float', 'float'), ('typing.List',), ('typing.Sequence',)],
- "PySide2.QtCharts.QtCharts.QXYSeries.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QXYSeries.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QXYSeries.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QXYSeries.setPointLabelsClipping": ('bool',),
- "PySide2.QtCharts.QtCharts.QXYSeries.setPointLabelsColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QXYSeries.setPointLabelsFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtCharts.QtCharts.QXYSeries.setPointLabelsFormat": ('str',),
- "PySide2.QtCharts.QtCharts.QXYSeries.setPointLabelsVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QXYSeries.setPointsVisible": ('bool',),
- }) if "PySide2.QtCharts" in sys.modules else None
-# Module PySide2.QtSvg
-sig_dict.update({
-# class PySide2.QtSvg.QGraphicsSvgItem:
- "PySide2.QtSvg.QGraphicsSvgItem.__init__": [('PySide2.QtWidgets.QGraphicsItem',), ('str', 'PySide2.QtWidgets.QGraphicsItem')],
- "PySide2.QtSvg.QGraphicsSvgItem.boundingRect": (),
- "PySide2.QtSvg.QGraphicsSvgItem.elementId": (),
- "PySide2.QtSvg.QGraphicsSvgItem.isCachingEnabled": (),
- "PySide2.QtSvg.QGraphicsSvgItem.maximumCacheSize": (),
- "PySide2.QtSvg.QGraphicsSvgItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtSvg.QGraphicsSvgItem.renderer": (),
- "PySide2.QtSvg.QGraphicsSvgItem.setCachingEnabled": ('bool',),
- "PySide2.QtSvg.QGraphicsSvgItem.setElementId": ('str',),
- "PySide2.QtSvg.QGraphicsSvgItem.setMaximumCacheSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtSvg.QGraphicsSvgItem.setSharedRenderer": ('PySide2.QtSvg.QSvgRenderer',),
- "PySide2.QtSvg.QGraphicsSvgItem.type": (),
-# class PySide2.QtSvg.QSvgGenerator:
- "PySide2.QtSvg.QSvgGenerator.__init__": (),
- "PySide2.QtSvg.QSvgGenerator.description": (),
- "PySide2.QtSvg.QSvgGenerator.fileName": (),
- "PySide2.QtSvg.QSvgGenerator.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtSvg.QSvgGenerator.outputDevice": (),
- "PySide2.QtSvg.QSvgGenerator.paintEngine": (),
- "PySide2.QtSvg.QSvgGenerator.resolution": (),
- "PySide2.QtSvg.QSvgGenerator.setDescription": ('str',),
- "PySide2.QtSvg.QSvgGenerator.setFileName": ('str',),
- "PySide2.QtSvg.QSvgGenerator.setOutputDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtSvg.QSvgGenerator.setResolution": ('int',),
- "PySide2.QtSvg.QSvgGenerator.setSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtSvg.QSvgGenerator.setTitle": ('str',),
- "PySide2.QtSvg.QSvgGenerator.setViewBox": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',)],
- "PySide2.QtSvg.QSvgGenerator.size": (),
- "PySide2.QtSvg.QSvgGenerator.title": (),
- "PySide2.QtSvg.QSvgGenerator.viewBox": (),
- "PySide2.QtSvg.QSvgGenerator.viewBoxF": (),
-# class PySide2.QtSvg.QSvgRenderer:
- "PySide2.QtSvg.QSvgRenderer.__init__": [('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QObject',), ('PySide2.QtCore.QXmlStreamReader', 'PySide2.QtCore.QObject'), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtSvg.QSvgRenderer.animated": (),
- "PySide2.QtSvg.QSvgRenderer.animationDuration": (),
- "PySide2.QtSvg.QSvgRenderer.boundsOnElement": ('str',),
- "PySide2.QtSvg.QSvgRenderer.currentFrame": (),
- "PySide2.QtSvg.QSvgRenderer.defaultSize": (),
- "PySide2.QtSvg.QSvgRenderer.elementExists": ('str',),
- "PySide2.QtSvg.QSvgRenderer.framesPerSecond": (),
- "PySide2.QtSvg.QSvgRenderer.isValid": (),
- "PySide2.QtSvg.QSvgRenderer.load": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QXmlStreamReader',), ('str',)],
- "PySide2.QtSvg.QSvgRenderer.matrixForElement": ('str',),
- "PySide2.QtSvg.QSvgRenderer.render": [('PySide2.QtGui.QPainter',), ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF'), ('PySide2.QtGui.QPainter', 'str', 'PySide2.QtCore.QRectF')],
- "PySide2.QtSvg.QSvgRenderer.setCurrentFrame": ('int',),
- "PySide2.QtSvg.QSvgRenderer.setFramesPerSecond": ('int',),
- "PySide2.QtSvg.QSvgRenderer.setViewBox": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',)],
- "PySide2.QtSvg.QSvgRenderer.viewBox": (),
- "PySide2.QtSvg.QSvgRenderer.viewBoxF": (),
-# class PySide2.QtSvg.QSvgWidget:
- "PySide2.QtSvg.QSvgWidget.__init__": [('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtSvg.QSvgWidget.load": [('PySide2.QtCore.QByteArray',), ('str',)],
- "PySide2.QtSvg.QSvgWidget.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtSvg.QSvgWidget.renderer": (),
- "PySide2.QtSvg.QSvgWidget.sizeHint": (),
- }) if "PySide2.QtSvg" in sys.modules else None
-# Module PySide2.QtDataVisualization
-sig_dict.update({
-# class PySide2.QtDataVisualization.QtDataVisualization:
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DBars:
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.__init__": ('PySide2.QtGui.QSurfaceFormat', 'PySide2.QtGui.QWindow'),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.addAxis": ('PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.addSeries": ('PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.axes": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.barSpacing": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.barThickness": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.columnAxis": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.floorLevel": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.insertSeries": ('int', 'PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries'),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.isBarSpacingRelative": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.isMultiSeriesUniform": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.primarySeries": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.releaseAxis": ('PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.removeSeries": ('PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.rowAxis": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.selectedSeries": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.seriesList": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.setBarSpacing": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.setBarSpacingRelative": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.setBarThickness": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.setColumnAxis": ('PySide2.QtDataVisualization.QtDataVisualization.QCategory3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.setFloorLevel": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.setMultiSeriesUniform": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.setPrimarySeries": ('PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.setRowAxis": ('PySide2.QtDataVisualization.QtDataVisualization.QCategory3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.setValueAxis": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.valueAxis": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera:
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.CameraPreset:
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.cameraPreset": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.copyValuesFrom": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.maxZoomLevel": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.minZoomLevel": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.setCameraPosition": ('float', 'float', 'float'),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.setCameraPreset": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.CameraPreset',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.setMaxZoomLevel": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.setMinZoomLevel": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.setTarget": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.setWrapXRotation": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.setWrapYRotation": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.setXRotation": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.setYRotation": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.setZoomLevel": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.target": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.wrapXRotation": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.wrapYRotation": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.xRotation": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.yRotation": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.zoomLevel": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler:
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.isRotationEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.isSelectionEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.isZoomAtTargetEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.isZoomEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent', 'PySide2.QtCore.QPoint'),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.mousePressEvent": ('PySide2.QtGui.QMouseEvent', 'PySide2.QtCore.QPoint'),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent', 'PySide2.QtCore.QPoint'),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.setRotationEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.setSelectionEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.setZoomAtTargetEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.setZoomEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DLight:
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DLight.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DLight.isAutoPosition": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DLight.setAutoPosition": ('bool',),
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DObject:
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DObject.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DObject.copyValuesFrom": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DObject.isDirty": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DObject.parentScene": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DObject.position": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DObject.setDirty": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DObject.setPosition": ('PySide2.QtGui.QVector3D',),
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter:
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.__init__": ('PySide2.QtGui.QSurfaceFormat', 'PySide2.QtGui.QWindow'),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.addAxis": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.addSeries": ('PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.axes": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.axisX": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.axisY": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.axisZ": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.releaseAxis": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.removeSeries": ('PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.selectedSeries": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.seriesList": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.setAxisX": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.setAxisY": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.setAxisZ": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DScene:
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.activeCamera": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.activeLight": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.devicePixelRatio": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.graphPositionQuery": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.invalidSelectionPoint": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.isPointInPrimarySubView": ('PySide2.QtCore.QPoint',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.isPointInSecondarySubView": ('PySide2.QtCore.QPoint',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.isSecondarySubviewOnTop": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.isSlicingActive": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.primarySubViewport": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.secondarySubViewport": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.selectionQueryPosition": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.setActiveCamera": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.setActiveLight": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DLight',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.setDevicePixelRatio": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.setGraphPositionQuery": ('PySide2.QtCore.QPoint',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.setPrimarySubViewport": ('PySide2.QtCore.QRect',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.setSecondarySubViewport": ('PySide2.QtCore.QRect',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.setSecondarySubviewOnTop": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.setSelectionQueryPosition": ('PySide2.QtCore.QPoint',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.setSlicingActive": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.viewport": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface:
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.__init__": ('PySide2.QtGui.QSurfaceFormat', 'PySide2.QtGui.QWindow'),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.addAxis": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.addSeries": ('PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.axes": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.axisX": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.axisY": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.axisZ": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.flipHorizontalGrid": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.releaseAxis": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.removeSeries": ('PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.selectedSeries": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.seriesList": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.setAxisX": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.setAxisY": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.setAxisZ": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.setFlipHorizontalGrid": ('bool',),
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme:
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.ColorStyle:
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.Theme:
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.Theme', 'PySide2.QtCore.QObject')],
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.ambientLightStrength": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.backgroundColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.baseColors": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.baseGradients": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.colorStyle": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.font": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.gridLineColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.highlightLightStrength": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.isBackgroundEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.isGridEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.isLabelBackgroundEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.isLabelBorderEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.labelBackgroundColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.labelTextColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.lightColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.lightStrength": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.multiHighlightColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.multiHighlightGradient": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setAmbientLightStrength": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setBackgroundColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setBackgroundEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setBaseColors": ('typing.Sequence',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setBaseGradients": ('typing.Sequence',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setColorStyle": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.ColorStyle',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setGridEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setGridLineColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setHighlightLightStrength": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setLabelBackgroundColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setLabelBackgroundEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setLabelBorderEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setLabelTextColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setLightColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setLightStrength": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setMultiHighlightColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setMultiHighlightGradient": ('PySide2.QtGui.QLinearGradient',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setSingleHighlightColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setSingleHighlightGradient": ('PySide2.QtGui.QLinearGradient',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setType": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.Theme',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setWindowColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.singleHighlightColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.singleHighlightGradient": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.type": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.windowColor": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.AxisOrientation:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.AxisType:
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.isAutoAdjustRange": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.isTitleFixed": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.isTitleVisible": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.labelAutoRotation": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.labels": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.max": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.min": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.orientation": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.setAutoAdjustRange": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.setLabelAutoRotation": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.setLabels": ('typing.Sequence',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.setMax": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.setMin": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.setRange": ('float', 'float'),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.setTitle": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.setTitleFixed": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.setTitleVisible": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.title": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.type": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.ElementType:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.OptimizationHint:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.OptimizationHints:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.SelectionFlag:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.SelectionFlags:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.ShadowQuality:
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.activeInputHandler": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.activeTheme": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.addCustomItem": ('PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.addInputHandler": ('PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.addTheme": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.aspectRatio": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.clearSelection": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.currentFps": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.customItems": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.exposeEvent": ('PySide2.QtGui.QExposeEvent',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.hasContext": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.horizontalAspectRatio": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.inputHandlers": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.isOrthoProjection": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.isPolar": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.isReflection": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.locale": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.margin": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.measureFps": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.optimizationHints": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.queriedGraphPosition": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.radialLabelOffset": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.reflectivity": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.releaseCustomItem": ('PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.releaseInputHandler": ('PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.releaseTheme": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.removeCustomItem": ('PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.removeCustomItemAt": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.removeCustomItems": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.renderToImage": ('int', 'PySide2.QtCore.QSize'),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.scene": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.selectedAxis": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.selectedCustomItem": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.selectedCustomItemIndex": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.selectedElement": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.selectedLabelIndex": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.selectionMode": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setActiveInputHandler": ('PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setActiveTheme": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setAspectRatio": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setHorizontalAspectRatio": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setMargin": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setMeasureFps": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setOptimizationHints": ('PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.OptimizationHints',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setOrthoProjection": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setPolar": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setRadialLabelOffset": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setReflection": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setReflectivity": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setSelectionMode": ('PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.SelectionFlags',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setShadowQuality": ('PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.ShadowQuality',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.shadowQuality": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.shadowsSupported": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.themes": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.touchEvent": ('PySide2.QtGui.QTouchEvent',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.InputView:
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.inputPosition": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.inputView": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent', 'PySide2.QtCore.QPoint'),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.mousePressEvent": ('PySide2.QtGui.QMouseEvent', 'PySide2.QtCore.QPoint'),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent', 'PySide2.QtCore.QPoint'),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.prevDistance": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.previousInputPos": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.scene": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.setInputPosition": ('PySide2.QtCore.QPoint',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.setInputView": ('PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.InputView',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.setPrevDistance": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.setPreviousInputPos": ('PySide2.QtCore.QPoint',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.setScene": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DScene',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.touchEvent": ('PySide2.QtGui.QTouchEvent',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.Mesh:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.SeriesType:
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.baseColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.baseGradient": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.colorStyle": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.isItemLabelVisible": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.isMeshSmooth": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.isVisible": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.itemLabel": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.itemLabelFormat": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.mesh": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.meshRotation": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.multiHighlightColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.multiHighlightGradient": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.name": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setBaseColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setBaseGradient": ('PySide2.QtGui.QLinearGradient',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setColorStyle": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.ColorStyle',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setItemLabelFormat": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setItemLabelVisible": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setMesh": ('PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.Mesh',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setMeshAxisAndAngle": ('PySide2.QtGui.QVector3D', 'float'),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setMeshRotation": ('PySide2.QtGui.QQuaternion',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setMeshSmooth": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setMultiHighlightColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setMultiHighlightGradient": ('PySide2.QtGui.QLinearGradient',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setName": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setSingleHighlightColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setSingleHighlightGradient": ('PySide2.QtGui.QLinearGradient',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setUserDefinedMesh": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setVisible": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.singleHighlightColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.singleHighlightGradient": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.type": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.userDefinedMesh": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstractDataProxy:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstractDataProxy.DataType:
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstractDataProxy.type": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries:
- "PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy', 'PySide2.QtCore.QObject')],
- "PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries.dataProxy": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries.invalidSelectionPosition": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries.meshAngle": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries.selectedBar": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries.setDataProxy": ('PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy',),
- "PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries.setMeshAngle": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries.setSelectedBar": ('PySide2.QtCore.QPoint',),
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataArray:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataArray.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataArray.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataArray.__origin__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataArray.__origin__.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataArray.__origin__.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem:
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem.__init__": [(), ('PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem',), ('float',), ('float', 'float')],
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem.__copy__": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem.createExtraData": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem.rotation": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem.setRotation": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem.setValue": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem.value": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy:
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.addRow": [('typing.List',), ('typing.List', 'str')],
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.addRows": [('typing.List',), ('typing.List', 'typing.Sequence')],
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.array": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.columnLabels": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.insertRow": [('int', 'typing.List'), ('int', 'typing.List', 'str')],
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.insertRows": [('int', 'typing.List'), ('int', 'typing.List', 'typing.Sequence')],
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.itemAt": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.removeRows": ('int', 'int', 'bool'),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.resetArray": [(), ('typing.List',), ('typing.List', 'typing.Sequence', 'typing.Sequence')],
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.rowAt": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.rowCount": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.rowLabels": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.series": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.setColumnLabels": ('typing.Sequence',),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.setItem": [('PySide2.QtCore.QPoint', 'PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem'), ('int', 'int', 'PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem')],
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.setRow": [('int', 'typing.List'), ('int', 'typing.List', 'str')],
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.setRowLabels": ('typing.Sequence',),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.setRows": [('int', 'typing.List'), ('int', 'typing.List', 'typing.Sequence')],
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataRow:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataRow.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataRow.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataRow.__origin__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataRow.__origin__.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataRow.__origin__.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QCategory3DAxis:
- "PySide2.QtDataVisualization.QtDataVisualization.QCategory3DAxis.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCategory3DAxis.labels": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCategory3DAxis.setLabels": ('typing.Sequence',),
-# class PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem:
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.__init__": [('PySide2.QtCore.QObject',), ('str', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QQuaternion', 'PySide2.QtGui.QImage', 'PySide2.QtCore.QObject')],
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.isPositionAbsolute": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.isScalingAbsolute": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.isShadowCasting": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.isVisible": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.meshFile": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.position": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.rotation": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.scaling": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setMeshFile": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setPosition": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setPositionAbsolute": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setRotation": ('PySide2.QtGui.QQuaternion',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setRotationAxisAndAngle": ('PySide2.QtGui.QVector3D', 'float'),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setScaling": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setScalingAbsolute": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setShadowCasting": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setTextureFile": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setTextureImage": ('PySide2.QtGui.QImage',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setVisible": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.textureFile": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel:
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.__init__": [('PySide2.QtCore.QObject',), ('str', 'PySide2.QtGui.QFont', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QQuaternion', 'PySide2.QtCore.QObject')],
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.backgroundColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.font": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.isBackgroundEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.isBorderEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.isFacingCamera": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.setBackgroundColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.setBackgroundEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.setBorderEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.setFacingCamera": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.setText": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.setTextColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.text": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.textColor": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume:
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QQuaternion', 'int', 'int', 'int', 'typing.List', 'PySide2.QtGui.QImage.Format', 'typing.List', 'PySide2.QtCore.QObject')],
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.alphaMultiplier": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.colorTable": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.createTextureData": ('typing.List',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.drawSliceFrames": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.drawSlices": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.preserveOpacity": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.renderSlice": ('PySide2.QtCore.Qt.Axis', 'int'),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setAlphaMultiplier": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setColorTable": ('typing.List',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setDrawSliceFrames": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setDrawSlices": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setPreserveOpacity": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setSliceFrameColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setSliceFrameGaps": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setSliceFrameThicknesses": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setSliceFrameWidths": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setSliceIndexX": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setSliceIndexY": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setSliceIndexZ": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setSliceIndices": ('int', 'int', 'int'),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setSubTextureData": [('PySide2.QtCore.Qt.Axis', 'int', 'PySide2.QtGui.QImage'), ('PySide2.QtCore.Qt.Axis', 'int', 'bytes')],
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setTextureData": ('typing.List',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setTextureDepth": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setTextureDimensions": ('int', 'int', 'int'),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setTextureFormat": ('PySide2.QtGui.QImage.Format',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setTextureHeight": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setTextureWidth": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setUseHighDefShader": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.sliceFrameColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.sliceFrameGaps": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.sliceFrameThicknesses": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.sliceFrameWidths": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.sliceIndexX": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.sliceIndexY": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.sliceIndexZ": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.textureData": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.textureDataWidth": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.textureDepth": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.textureFormat": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.textureHeight": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.textureWidth": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.useHighDefShader": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy:
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtGui.QImage', 'PySide2.QtCore.QObject'), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.heightMap": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.heightMapFile": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.maxXValue": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.maxZValue": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.minXValue": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.minZValue": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.setHeightMap": ('PySide2.QtGui.QImage',),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.setHeightMapFile": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.setMaxXValue": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.setMaxZValue": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.setMinXValue": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.setMinZValue": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.setValueRanges": ('float', 'float', 'float', 'float'),
-# class PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy:
-# class PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.MultiMatchBehavior:
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.__init__": [('PySide2.QtCore.QAbstractItemModel', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'str', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'str', 'str', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'str', 'str', 'str', 'typing.Sequence', 'typing.Sequence', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'str', 'str', 'typing.Sequence', 'typing.Sequence', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QObject',)],
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.autoColumnCategories": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.autoRowCategories": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.columnCategories": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.columnCategoryIndex": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.columnRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.columnRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.columnRoleReplace": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.itemModel": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.multiMatchBehavior": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.remap": ('str', 'str', 'str', 'str', 'typing.Sequence', 'typing.Sequence'),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.rotationRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.rotationRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.rotationRoleReplace": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.rowCategories": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.rowCategoryIndex": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.rowRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.rowRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.rowRoleReplace": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setAutoColumnCategories": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setAutoRowCategories": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setColumnCategories": ('typing.Sequence',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setColumnRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setColumnRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setColumnRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setItemModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setMultiMatchBehavior": ('PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.MultiMatchBehavior',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setRotationRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setRotationRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setRotationRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setRowCategories": ('typing.Sequence',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setRowRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setRowRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setRowRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setUseModelCategories": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setValueRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setValueRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setValueRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.useModelCategories": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.valueRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.valueRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.valueRoleReplace": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy:
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.__init__": [('PySide2.QtCore.QAbstractItemModel', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'str', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'str', 'str', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QObject',)],
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.itemModel": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.remap": ('str', 'str', 'str', 'str'),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.rotationRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.rotationRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.rotationRoleReplace": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setItemModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setRotationRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setRotationRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setRotationRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setXPosRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setXPosRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setXPosRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setYPosRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setYPosRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setYPosRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setZPosRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setZPosRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setZPosRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.xPosRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.xPosRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.xPosRoleReplace": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.yPosRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.yPosRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.yPosRoleReplace": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.zPosRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.zPosRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.zPosRoleReplace": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy:
-# class PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.MultiMatchBehavior:
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.__init__": [('PySide2.QtCore.QAbstractItemModel', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'str', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'str', 'str', 'str', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'str', 'str', 'str', 'str', 'typing.Sequence', 'typing.Sequence', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'str', 'str', 'typing.Sequence', 'typing.Sequence', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QObject',)],
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.autoColumnCategories": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.autoRowCategories": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.columnCategories": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.columnCategoryIndex": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.columnRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.columnRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.columnRoleReplace": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.itemModel": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.multiMatchBehavior": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.remap": ('str', 'str', 'str', 'str', 'str', 'typing.Sequence', 'typing.Sequence'),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.rowCategories": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.rowCategoryIndex": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.rowRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.rowRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.rowRoleReplace": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setAutoColumnCategories": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setAutoRowCategories": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setColumnCategories": ('typing.Sequence',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setColumnRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setColumnRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setColumnRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setItemModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setMultiMatchBehavior": ('PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.MultiMatchBehavior',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setRowCategories": ('typing.Sequence',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setRowRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setRowRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setRowRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setUseModelCategories": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setXPosRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setXPosRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setXPosRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setYPosRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setYPosRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setYPosRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setZPosRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setZPosRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setZPosRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.useModelCategories": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.xPosRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.xPosRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.xPosRoleReplace": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.yPosRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.yPosRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.yPosRoleReplace": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.zPosRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.zPosRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.zPosRoleReplace": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter:
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.autoSubGrid": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.base": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.createNewInstance": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.populateCopy": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter',),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.positionAt": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.recalculate": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.setAutoSubGrid": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.setBase": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.setShowEdgeLabels": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.showEdgeLabels": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.valueAt": ('float',),
-# class PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries:
- "PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy', 'PySide2.QtCore.QObject')],
- "PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries.dataProxy": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries.invalidSelectionIndex": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries.itemSize": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries.selectedItem": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries.setDataProxy": ('PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries.setItemSize": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries.setSelectedItem": ('int',),
-# class PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem:
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.__init__": [(), ('PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem',), ('PySide2.QtGui.QVector3D',), ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QQuaternion')],
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.__copy__": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.createExtraData": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.position": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.rotation": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.setPosition": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.setRotation": ('PySide2.QtGui.QQuaternion',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.setX": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.setY": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.setZ": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.x": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.y": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.z": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy:
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.addItem": ('PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.addItems": ('typing.List',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.array": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.insertItem": ('int', 'PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem'),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.insertItems": ('int', 'typing.List'),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.itemAt": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.itemCount": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.removeItems": ('int', 'int'),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.resetArray": ('typing.List',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.series": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.setItem": ('int', 'PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem'),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.setItems": ('int', 'typing.List'),
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.DrawFlag:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.DrawFlags:
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy', 'PySide2.QtCore.QObject')],
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.dataProxy": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.drawMode": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.invalidSelectionPosition": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.isFlatShadingEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.isFlatShadingSupported": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.selectedPoint": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.setDataProxy": ('PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.setDrawMode": ('PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.DrawFlags',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.setFlatShadingEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.setSelectedPoint": ('PySide2.QtCore.QPoint',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.setTexture": ('PySide2.QtGui.QImage',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.setTextureFile": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.texture": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.textureFile": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataArray:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataArray.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataArray.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataArray.__origin__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataArray.__origin__.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataArray.__origin__.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem:
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.__init__": [(), ('PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem',), ('PySide2.QtGui.QVector3D',)],
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.__copy__": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.createExtraData": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.position": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.setPosition": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.setX": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.setY": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.setZ": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.x": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.y": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.z": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy:
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.addRow": ('typing.List',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.addRows": ('typing.List',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.array": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.columnCount": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.insertRow": ('int', 'typing.List'),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.insertRows": ('int', 'typing.List'),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.itemAt": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.removeRows": ('int', 'int'),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.resetArray": ('typing.List',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.rowCount": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.series": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.setItem": [('PySide2.QtCore.QPoint', 'PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem'), ('int', 'int', 'PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem')],
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.setRow": ('int', 'typing.List'),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.setRows": ('int', 'typing.List'),
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataRow:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataRow.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataRow.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataRow.__origin__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataRow.__origin__.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataRow.__origin__.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QTouch3DInputHandler:
- "PySide2.QtDataVisualization.QtDataVisualization.QTouch3DInputHandler.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.QTouch3DInputHandler.touchEvent": ('PySide2.QtGui.QTouchEvent',),
-# class PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis:
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.formatter": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.labelFormat": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.reversed": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.segmentCount": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.setFormatter": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.setLabelFormat": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.setReversed": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.setSegmentCount": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.setSubSegmentCount": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.subSegmentCount": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter:
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.allowNegatives": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.allowZero": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.axis": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.createNewInstance": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.gridPositions": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.labelPositions": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.labelStrings": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.locale": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.markDirty": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.populateCopy": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.positionAt": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.recalculate": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.setAllowNegatives": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.setAllowZero": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.stringForValue": ('float', 'str'),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.subGridPositions": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.valueAt": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.qDefaultSurfaceFormat": ('bool',),
- }) if "PySide2.QtDataVisualization" in sys.modules else None
-# Module PySide2.QtUiTools
-sig_dict.update({
-# class PySide2.QtUiTools.QUiLoader:
- "PySide2.QtUiTools.QUiLoader.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtUiTools.QUiLoader.addPluginPath": ('str',),
- "PySide2.QtUiTools.QUiLoader.availableLayouts": (),
- "PySide2.QtUiTools.QUiLoader.availableWidgets": (),
- "PySide2.QtUiTools.QUiLoader.clearPluginPaths": (),
- "PySide2.QtUiTools.QUiLoader.createAction": ('PySide2.QtCore.QObject', 'str'),
- "PySide2.QtUiTools.QUiLoader.createActionGroup": ('PySide2.QtCore.QObject', 'str'),
- "PySide2.QtUiTools.QUiLoader.createLayout": ('str', 'PySide2.QtCore.QObject', 'str'),
- "PySide2.QtUiTools.QUiLoader.createWidget": ('str', 'PySide2.QtWidgets.QWidget', 'str'),
- "PySide2.QtUiTools.QUiLoader.errorString": (),
- "PySide2.QtUiTools.QUiLoader.isLanguageChangeEnabled": (),
- "PySide2.QtUiTools.QUiLoader.isTranslationEnabled": (),
- "PySide2.QtUiTools.QUiLoader.load": [('PySide2.QtCore.QIODevice', 'PySide2.QtWidgets.QWidget'), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtUiTools.QUiLoader.pluginPaths": (),
- "PySide2.QtUiTools.QUiLoader.registerCustomWidget": ('object',),
- "PySide2.QtUiTools.QUiLoader.setLanguageChangeEnabled": ('bool',),
- "PySide2.QtUiTools.QUiLoader.setTranslationEnabled": ('bool',),
- "PySide2.QtUiTools.QUiLoader.setWorkingDirectory": ('PySide2.QtCore.QDir',),
- "PySide2.QtUiTools.QUiLoader.workingDirectory": (),
- }) if "PySide2.QtUiTools" in sys.modules else None
-# Module PySide2.QtAxContainer
-sig_dict.update({
-# class PySide2.QtAxContainer.QAxBase:
- "PySide2.QtAxContainer.QAxBase.__init__": (),
- "PySide2.QtAxContainer.QAxBase.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtAxContainer.QAxBase.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtAxContainer.QAxBase.argumentsToList": ('typing.Any', 'typing.Any', 'typing.Any', 'typing.Any', 'typing.Any', 'typing.Any', 'typing.Any', 'typing.Any'),
- "PySide2.QtAxContainer.QAxBase.asVariant": (),
- "PySide2.QtAxContainer.QAxBase.classContext": (),
- "PySide2.QtAxContainer.QAxBase.className": (),
- "PySide2.QtAxContainer.QAxBase.clear": (),
- "PySide2.QtAxContainer.QAxBase.control": (),
- "PySide2.QtAxContainer.QAxBase.disableClassInfo": (),
- "PySide2.QtAxContainer.QAxBase.disableEventSink": (),
- "PySide2.QtAxContainer.QAxBase.disableMetaObject": (),
- "PySide2.QtAxContainer.QAxBase.dynamicCall": [('bytes', 'typing.Any', 'typing.Any', 'typing.Any', 'typing.Any', 'typing.Any', 'typing.Any', 'typing.Any', 'typing.Any'), ('bytes', 'typing.Sequence'), ('bytes', 'typing.Sequence', 'int')],
- "PySide2.QtAxContainer.QAxBase.fallbackMetaObject": (),
- "PySide2.QtAxContainer.QAxBase.generateDocumentation": (),
- "PySide2.QtAxContainer.QAxBase.indexOfVerb": ('str',),
- "PySide2.QtAxContainer.QAxBase.initializeFrom": ('PySide2.QtAxContainer.QAxBase',),
- "PySide2.QtAxContainer.QAxBase.internalRelease": (),
- "PySide2.QtAxContainer.QAxBase.isNull": (),
- "PySide2.QtAxContainer.QAxBase.propertyBag": (),
- "PySide2.QtAxContainer.QAxBase.propertyWritable": ('bytes',),
- "PySide2.QtAxContainer.QAxBase.qObject": (),
- "PySide2.QtAxContainer.QAxBase.querySubObject": [('bytes', 'typing.Any', 'typing.Any', 'typing.Any', 'typing.Any', 'typing.Any', 'typing.Any', 'typing.Any', 'typing.Any'), ('bytes', 'typing.Sequence')],
- "PySide2.QtAxContainer.QAxBase.setClassContext": ('int',),
- "PySide2.QtAxContainer.QAxBase.setControl": ('str',),
- "PySide2.QtAxContainer.QAxBase.setPropertyBag": ('typing.Dict',),
- "PySide2.QtAxContainer.QAxBase.setPropertyWritable": ('bytes', 'bool'),
- "PySide2.QtAxContainer.QAxBase.verbs": (),
-# class PySide2.QtAxContainer.QAxObject:
- "PySide2.QtAxContainer.QAxObject.__init__": [('PySide2.QtCore.QObject',), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtAxContainer.QAxObject.className": (),
- "PySide2.QtAxContainer.QAxObject.doVerb": ('str',),
- "PySide2.QtAxContainer.QAxObject.fallbackMetaObject": (),
- "PySide2.QtAxContainer.QAxObject.qObject": (),
-# class PySide2.QtAxContainer.QAxScript:
-# class PySide2.QtAxContainer.QAxScript.FunctionFlags:
- "PySide2.QtAxContainer.QAxScript.__init__": ('str', 'PySide2.QtAxContainer.QAxScriptManager'),
- "PySide2.QtAxContainer.QAxScript.call": [('str', 'typing.Any', 'typing.Any', 'typing.Any', 'typing.Any', 'typing.Any', 'typing.Any', 'typing.Any', 'typing.Any'), ('str', 'typing.Sequence')],
- "PySide2.QtAxContainer.QAxScript.functions": ('PySide2.QtAxContainer.QAxScript.FunctionFlags',),
- "PySide2.QtAxContainer.QAxScript.load": ('str', 'str'),
- "PySide2.QtAxContainer.QAxScript.scriptCode": (),
- "PySide2.QtAxContainer.QAxScript.scriptEngine": (),
- "PySide2.QtAxContainer.QAxScript.scriptName": (),
-# class PySide2.QtAxContainer.QAxScriptEngine:
- "PySide2.QtAxContainer.QAxScriptEngine.__init__": ('str', 'PySide2.QtAxContainer.QAxScript'),
- "PySide2.QtAxContainer.QAxScriptEngine.addItem": ('str',),
- "PySide2.QtAxContainer.QAxScriptEngine.hasIntrospection": (),
- "PySide2.QtAxContainer.QAxScriptEngine.isValid": (),
- "PySide2.QtAxContainer.QAxScriptEngine.scriptLanguage": (),
-# class PySide2.QtAxContainer.QAxScriptManager:
- "PySide2.QtAxContainer.QAxScriptManager.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtAxContainer.QAxScriptManager.addObject": ('PySide2.QtAxContainer.QAxBase',),
- "PySide2.QtAxContainer.QAxScriptManager.call": [('str', 'typing.Any', 'typing.Any', 'typing.Any', 'typing.Any', 'typing.Any', 'typing.Any', 'typing.Any', 'typing.Any'), ('str', 'typing.Sequence')],
- "PySide2.QtAxContainer.QAxScriptManager.functions": ('PySide2.QtAxContainer.QAxScript.FunctionFlags',),
- "PySide2.QtAxContainer.QAxScriptManager.load": [('str', 'str'), ('str', 'str', 'str')],
- "PySide2.QtAxContainer.QAxScriptManager.registerEngine": ('str', 'str', 'str'),
- "PySide2.QtAxContainer.QAxScriptManager.script": ('str',),
- "PySide2.QtAxContainer.QAxScriptManager.scriptFileFilter": (),
- "PySide2.QtAxContainer.QAxScriptManager.scriptNames": (),
-# class PySide2.QtAxContainer.QAxSelect:
- "PySide2.QtAxContainer.QAxSelect.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtAxContainer.QAxSelect.clsid": (),
-# class PySide2.QtAxContainer.QAxWidget:
- "PySide2.QtAxContainer.QAxWidget.__init__": [('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'), ('str', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags')],
- "PySide2.QtAxContainer.QAxWidget.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtAxContainer.QAxWidget.className": (),
- "PySide2.QtAxContainer.QAxWidget.clear": (),
- "PySide2.QtAxContainer.QAxWidget.createHostWindow": [('bool',), ('bool', 'PySide2.QtCore.QByteArray')],
- "PySide2.QtAxContainer.QAxWidget.doVerb": ('str',),
- "PySide2.QtAxContainer.QAxWidget.fallbackMetaObject": (),
- "PySide2.QtAxContainer.QAxWidget.minimumSizeHint": (),
- "PySide2.QtAxContainer.QAxWidget.qObject": (),
- "PySide2.QtAxContainer.QAxWidget.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtAxContainer.QAxWidget.sizeHint": (),
- "PySide2.QtAxContainer.QAxWidget.translateKeyEvent": ('int', 'int'),
- }) if "PySide2.QtAxContainer" in sys.modules else None
-# Module PySide2.QtWebChannel
-sig_dict.update({
-# class PySide2.QtWebChannel.QWebChannel:
- "PySide2.QtWebChannel.QWebChannel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWebChannel.QWebChannel.blockUpdates": (),
- "PySide2.QtWebChannel.QWebChannel.connectTo": ('PySide2.QtWebChannel.QWebChannelAbstractTransport',),
- "PySide2.QtWebChannel.QWebChannel.deregisterObject": ('PySide2.QtCore.QObject',),
- "PySide2.QtWebChannel.QWebChannel.disconnectFrom": ('PySide2.QtWebChannel.QWebChannelAbstractTransport',),
- "PySide2.QtWebChannel.QWebChannel.registerObject": ('str', 'PySide2.QtCore.QObject'),
- "PySide2.QtWebChannel.QWebChannel.registerObjects": ('typing.Dict',),
- "PySide2.QtWebChannel.QWebChannel.registeredObjects": (),
- "PySide2.QtWebChannel.QWebChannel.setBlockUpdates": ('bool',),
-# class PySide2.QtWebChannel.QWebChannelAbstractTransport:
- "PySide2.QtWebChannel.QWebChannelAbstractTransport.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWebChannel.QWebChannelAbstractTransport.sendMessage": ('typing.Dict',),
- }) if "PySide2.QtWebChannel" in sys.modules else None
-# Module PySide2.QtWebEngineCore
-sig_dict.update({
-# class PySide2.QtWebEngineCore.QWebEngineCookieStore:
- "PySide2.QtWebEngineCore.QWebEngineCookieStore.deleteAllCookies": (),
- "PySide2.QtWebEngineCore.QWebEngineCookieStore.deleteSessionCookies": (),
- "PySide2.QtWebEngineCore.QWebEngineCookieStore.loadAllCookies": (),
-# class PySide2.QtWebEngineCore.QWebEngineHttpRequest:
-# class PySide2.QtWebEngineCore.QWebEngineHttpRequest.Method:
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.__init__": [('PySide2.QtCore.QUrl', 'PySide2.QtWebEngineCore.QWebEngineHttpRequest.Method'), ('PySide2.QtWebEngineCore.QWebEngineHttpRequest',)],
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.hasHeader": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.header": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.headers": (),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.method": (),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.postData": (),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.postRequest": ('PySide2.QtCore.QUrl', 'typing.Dict'),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.setHeader": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.setMethod": ('PySide2.QtWebEngineCore.QWebEngineHttpRequest.Method',),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.setPostData": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.setUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.swap": ('PySide2.QtWebEngineCore.QWebEngineHttpRequest',),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.unsetHeader": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.url": (),
-# class PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo:
-# class PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.NavigationType:
-# class PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType:
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.block": ('bool',),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.changed": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.firstPartyUrl": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.initiator": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.navigationType": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.redirect": ('PySide2.QtCore.QUrl',),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.requestMethod": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.requestUrl": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.resourceType": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.setHttpHeader": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
-# class PySide2.QtWebEngineCore.QWebEngineUrlRequestInterceptor:
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInterceptor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInterceptor.interceptRequest": ('PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo',),
-# class PySide2.QtWebEngineCore.QWebEngineUrlRequestJob:
-# class PySide2.QtWebEngineCore.QWebEngineUrlRequestJob.Error:
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestJob.fail": ('PySide2.QtWebEngineCore.QWebEngineUrlRequestJob.Error',),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestJob.initiator": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestJob.redirect": ('PySide2.QtCore.QUrl',),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestJob.reply": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QIODevice'),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestJob.requestHeaders": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestJob.requestMethod": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestJob.requestUrl": (),
-# class PySide2.QtWebEngineCore.QWebEngineUrlScheme:
-# class PySide2.QtWebEngineCore.QWebEngineUrlScheme.Flag:
-# class PySide2.QtWebEngineCore.QWebEngineUrlScheme.Flags:
-# class PySide2.QtWebEngineCore.QWebEngineUrlScheme.SpecialPort:
-# class PySide2.QtWebEngineCore.QWebEngineUrlScheme.Syntax:
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.__init__": [(), ('PySide2.QtCore.QByteArray',), ('PySide2.QtWebEngineCore.QWebEngineUrlScheme',)],
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.__copy__": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.defaultPort": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.flags": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.name": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.registerScheme": ('PySide2.QtWebEngineCore.QWebEngineUrlScheme',),
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.schemeByName": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.setDefaultPort": ('int',),
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.setFlags": ('PySide2.QtWebEngineCore.QWebEngineUrlScheme.Flags',),
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.setName": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.setSyntax": ('PySide2.QtWebEngineCore.QWebEngineUrlScheme.Syntax',),
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.syntax": (),
-# class PySide2.QtWebEngineCore.QWebEngineUrlSchemeHandler:
- "PySide2.QtWebEngineCore.QWebEngineUrlSchemeHandler.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWebEngineCore.QWebEngineUrlSchemeHandler.requestStarted": ('PySide2.QtWebEngineCore.QWebEngineUrlRequestJob',),
- }) if "PySide2.QtWebEngineCore" in sys.modules else None
-# Module PySide2.QtWebEngine
-sig_dict.update({
-# class PySide2.QtWebEngine.QtWebEngine:
- "PySide2.QtWebEngine.QtWebEngine.initialize": (),
- }) if "PySide2.QtWebEngine" in sys.modules else None
-# Module PySide2.QtWebEngineWidgets
-sig_dict.update({
-# class PySide2.QtWebEngineWidgets.QWebEngineCertificateError:
-# class PySide2.QtWebEngineWidgets.QWebEngineCertificateError.Error:
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.__init__": [('PySide2.QtWebEngineWidgets.QWebEngineCertificateError',), ('int', 'PySide2.QtCore.QUrl', 'bool', 'str')],
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.answered": (),
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.certificateChain": (),
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.defer": (),
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.deferred": (),
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.error": (),
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.errorDescription": (),
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.ignoreCertificateError": (),
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.isOverridable": (),
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.rejectCertificate": (),
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.url": (),
-# class PySide2.QtWebEngineWidgets.QWebEngineContextMenuData:
-# class PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.EditFlag:
-# class PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.EditFlags:
-# class PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.MediaFlag:
-# class PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.MediaFlags:
-# class PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.MediaType:
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.__init__": [(), ('PySide2.QtWebEngineWidgets.QWebEngineContextMenuData',)],
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.__copy__": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.editFlags": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.isContentEditable": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.isValid": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.linkText": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.linkUrl": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.mediaFlags": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.mediaType": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.mediaUrl": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.misspelledWord": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.position": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.selectedText": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.spellCheckerSuggestions": (),
-# class PySide2.QtWebEngineWidgets.QWebEngineDownloadItem:
-# class PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.DownloadInterruptReason:
-# class PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.DownloadState:
-# class PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.DownloadType:
-# class PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.SavePageFormat:
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.accept": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.cancel": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.downloadDirectory": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.downloadFileName": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.id": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.interruptReason": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.interruptReasonString": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.isFinished": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.isPaused": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.isSavePageDownload": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.mimeType": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.page": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.path": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.pause": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.receivedBytes": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.resume": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.savePageFormat": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.setDownloadDirectory": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.setDownloadFileName": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.setPath": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.setSavePageFormat": ('PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.SavePageFormat',),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.state": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.suggestedFileName": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.totalBytes": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.type": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.url": (),
-# class PySide2.QtWebEngineWidgets.QWebEngineFullScreenRequest:
- "PySide2.QtWebEngineWidgets.QWebEngineFullScreenRequest.accept": (),
- "PySide2.QtWebEngineWidgets.QWebEngineFullScreenRequest.origin": (),
- "PySide2.QtWebEngineWidgets.QWebEngineFullScreenRequest.reject": (),
- "PySide2.QtWebEngineWidgets.QWebEngineFullScreenRequest.toggleOn": (),
-# class PySide2.QtWebEngineWidgets.QWebEngineHistory:
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.back": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.backItem": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.backItems": ('int',),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.canGoBack": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.canGoForward": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.clear": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.count": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.currentItem": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.currentItemIndex": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.forward": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.forwardItem": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.forwardItems": ('int',),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.goToItem": ('PySide2.QtWebEngineWidgets.QWebEngineHistoryItem',),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.itemAt": ('int',),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.items": (),
-# class PySide2.QtWebEngineWidgets.QWebEngineHistoryItem:
- "PySide2.QtWebEngineWidgets.QWebEngineHistoryItem.__init__": ('PySide2.QtWebEngineWidgets.QWebEngineHistoryItem',),
- "PySide2.QtWebEngineWidgets.QWebEngineHistoryItem.__copy__": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistoryItem.iconUrl": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistoryItem.isValid": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistoryItem.lastVisited": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistoryItem.originalUrl": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistoryItem.swap": ('PySide2.QtWebEngineWidgets.QWebEngineHistoryItem',),
- "PySide2.QtWebEngineWidgets.QWebEngineHistoryItem.title": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistoryItem.url": (),
-# class PySide2.QtWebEngineWidgets.QWebEnginePage:
-# class PySide2.QtWebEngineWidgets.QWebEnginePage.Feature:
-# class PySide2.QtWebEngineWidgets.QWebEnginePage.FileSelectionMode:
-# class PySide2.QtWebEngineWidgets.QWebEnginePage.FindFlag:
-# class PySide2.QtWebEngineWidgets.QWebEnginePage.FindFlags:
-# class PySide2.QtWebEngineWidgets.QWebEnginePage.JavaScriptConsoleMessageLevel:
-# class PySide2.QtWebEngineWidgets.QWebEnginePage.NavigationType:
-# class PySide2.QtWebEngineWidgets.QWebEnginePage.PermissionPolicy:
-# class PySide2.QtWebEngineWidgets.QWebEnginePage.RenderProcessTerminationStatus:
-# class PySide2.QtWebEngineWidgets.QWebEnginePage.WebAction:
-# class PySide2.QtWebEngineWidgets.QWebEnginePage.WebWindowType:
- "PySide2.QtWebEngineWidgets.QWebEnginePage.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtWebEngineWidgets.QWebEngineProfile', 'PySide2.QtCore.QObject')],
- "PySide2.QtWebEngineWidgets.QWebEnginePage.acceptNavigationRequest": ('PySide2.QtCore.QUrl', 'PySide2.QtWebEngineWidgets.QWebEnginePage.NavigationType', 'bool'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.action": ('PySide2.QtWebEngineWidgets.QWebEnginePage.WebAction',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.backgroundColor": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.certificateError": ('PySide2.QtWebEngineWidgets.QWebEngineCertificateError',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.chooseFiles": ('PySide2.QtWebEngineWidgets.QWebEnginePage.FileSelectionMode', 'typing.Sequence', 'typing.Sequence'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.contentsSize": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.contextMenuData": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.createStandardContextMenu": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.createWindow": ('PySide2.QtWebEngineWidgets.QWebEnginePage.WebWindowType',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.devToolsPage": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.download": ('PySide2.QtCore.QUrl', 'str'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.findText": [('str', 'PySide2.QtWebEngineWidgets.QWebEnginePage.FindFlags'), ('str', 'PySide2.QtWebEngineWidgets.QWebEnginePage.FindFlags', 'object')],
- "PySide2.QtWebEngineWidgets.QWebEnginePage.hasSelection": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.history": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.icon": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.iconUrl": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.inspectedPage": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.isAudioMuted": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.isVisible": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.javaScriptAlert": ('PySide2.QtCore.QUrl', 'str'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.javaScriptConfirm": ('PySide2.QtCore.QUrl', 'str'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.javaScriptConsoleMessage": ('PySide2.QtWebEngineWidgets.QWebEnginePage.JavaScriptConsoleMessageLevel', 'str', 'int', 'str'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.javaScriptPrompt": ('PySide2.QtCore.QUrl', 'str', 'str'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.load": [('PySide2.QtCore.QUrl',), ('PySide2.QtWebEngineCore.QWebEngineHttpRequest',)],
- "PySide2.QtWebEngineWidgets.QWebEnginePage.print": ('PySide2.QtPrintSupport.QPrinter', 'object'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.printToPdf": [('object', 'PySide2.QtGui.QPageLayout'), ('str', 'PySide2.QtGui.QPageLayout')],
- "PySide2.QtWebEngineWidgets.QWebEnginePage.profile": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.recentlyAudible": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.replaceMisspelledWord": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.requestedUrl": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.runJavaScript": [('str',), ('str', 'int'), ('str', 'int', 'object')],
- "PySide2.QtWebEngineWidgets.QWebEnginePage.save": ('str', 'PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.SavePageFormat'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.scripts": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.scrollPosition": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.selectedText": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setAudioMuted": ('bool',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setBackgroundColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setContent": ('PySide2.QtCore.QByteArray', 'str', 'PySide2.QtCore.QUrl'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setDevToolsPage": ('PySide2.QtWebEngineWidgets.QWebEnginePage',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setFeaturePermission": ('PySide2.QtCore.QUrl', 'PySide2.QtWebEngineWidgets.QWebEnginePage.Feature', 'PySide2.QtWebEngineWidgets.QWebEnginePage.PermissionPolicy'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setHtml": ('str', 'PySide2.QtCore.QUrl'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setInspectedPage": ('PySide2.QtWebEngineWidgets.QWebEnginePage',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setUrlRequestInterceptor": ('PySide2.QtWebEngineCore.QWebEngineUrlRequestInterceptor',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setView": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setVisible": ('bool',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setWebChannel": [('PySide2.QtWebChannel.QWebChannel',), ('PySide2.QtWebChannel.QWebChannel', 'int')],
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setZoomFactor": ('float',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.settings": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.title": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.toHtml": ('object',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.toPlainText": ('object',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.triggerAction": ('PySide2.QtWebEngineWidgets.QWebEnginePage.WebAction', 'bool'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.url": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.view": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.webChannel": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.zoomFactor": (),
-# class PySide2.QtWebEngineWidgets.QWebEngineProfile:
-# class PySide2.QtWebEngineWidgets.QWebEngineProfile.HttpCacheType:
-# class PySide2.QtWebEngineWidgets.QWebEngineProfile.PersistentCookiesPolicy:
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.__init__": [('PySide2.QtCore.QObject',), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.cachePath": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.clearAllVisitedLinks": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.clearHttpCache": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.clearVisitedLinks": ('typing.Sequence',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.cookieStore": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.defaultProfile": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.downloadPath": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.httpAcceptLanguage": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.httpCacheMaximumSize": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.httpCacheType": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.httpUserAgent": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.installUrlSchemeHandler": ('PySide2.QtCore.QByteArray', 'PySide2.QtWebEngineCore.QWebEngineUrlSchemeHandler'),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.isOffTheRecord": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.isSpellCheckEnabled": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.isUsedForGlobalCertificateVerification": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.persistentCookiesPolicy": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.persistentStoragePath": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.removeAllUrlSchemeHandlers": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.removeUrlScheme": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.removeUrlSchemeHandler": ('PySide2.QtWebEngineCore.QWebEngineUrlSchemeHandler',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.scripts": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setCachePath": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setDownloadPath": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setHttpAcceptLanguage": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setHttpCacheMaximumSize": ('int',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setHttpCacheType": ('PySide2.QtWebEngineWidgets.QWebEngineProfile.HttpCacheType',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setHttpUserAgent": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setPersistentCookiesPolicy": ('PySide2.QtWebEngineWidgets.QWebEngineProfile.PersistentCookiesPolicy',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setPersistentStoragePath": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setRequestInterceptor": ('PySide2.QtWebEngineCore.QWebEngineUrlRequestInterceptor',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setSpellCheckEnabled": ('bool',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setSpellCheckLanguages": ('typing.Sequence',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setUrlRequestInterceptor": ('PySide2.QtWebEngineCore.QWebEngineUrlRequestInterceptor',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setUseForGlobalCertificateVerification": ('bool',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.settings": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.spellCheckLanguages": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.storageName": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.urlSchemeHandler": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.visitedLinksContainsUrl": ('PySide2.QtCore.QUrl',),
-# class PySide2.QtWebEngineWidgets.QWebEngineScript:
-# class PySide2.QtWebEngineWidgets.QWebEngineScript.InjectionPoint:
-# class PySide2.QtWebEngineWidgets.QWebEngineScript.ScriptWorldId:
- "PySide2.QtWebEngineWidgets.QWebEngineScript.__init__": [(), ('PySide2.QtWebEngineWidgets.QWebEngineScript',)],
- "PySide2.QtWebEngineWidgets.QWebEngineScript.__copy__": (),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.injectionPoint": (),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.isNull": (),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.name": (),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.runsOnSubFrames": (),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.setInjectionPoint": ('PySide2.QtWebEngineWidgets.QWebEngineScript.InjectionPoint',),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.setName": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.setRunsOnSubFrames": ('bool',),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.setSourceCode": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.setWorldId": ('int',),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.sourceCode": (),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.swap": ('PySide2.QtWebEngineWidgets.QWebEngineScript',),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.worldId": (),
-# class PySide2.QtWebEngineWidgets.QWebEngineScriptCollection:
- "PySide2.QtWebEngineWidgets.QWebEngineScriptCollection.clear": (),
- "PySide2.QtWebEngineWidgets.QWebEngineScriptCollection.contains": ('PySide2.QtWebEngineWidgets.QWebEngineScript',),
- "PySide2.QtWebEngineWidgets.QWebEngineScriptCollection.count": (),
- "PySide2.QtWebEngineWidgets.QWebEngineScriptCollection.findScript": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineScriptCollection.findScripts": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineScriptCollection.insert": [('PySide2.QtWebEngineWidgets.QWebEngineScript',), ('typing.Sequence',)],
- "PySide2.QtWebEngineWidgets.QWebEngineScriptCollection.isEmpty": (),
- "PySide2.QtWebEngineWidgets.QWebEngineScriptCollection.remove": ('PySide2.QtWebEngineWidgets.QWebEngineScript',),
- "PySide2.QtWebEngineWidgets.QWebEngineScriptCollection.size": (),
- "PySide2.QtWebEngineWidgets.QWebEngineScriptCollection.toList": (),
-# class PySide2.QtWebEngineWidgets.QWebEngineSettings:
-# class PySide2.QtWebEngineWidgets.QWebEngineSettings.FontFamily:
-# class PySide2.QtWebEngineWidgets.QWebEngineSettings.FontSize:
-# class PySide2.QtWebEngineWidgets.QWebEngineSettings.UnknownUrlSchemePolicy:
-# class PySide2.QtWebEngineWidgets.QWebEngineSettings.WebAttribute:
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.defaultSettings": (),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.defaultTextEncoding": (),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.fontFamily": ('PySide2.QtWebEngineWidgets.QWebEngineSettings.FontFamily',),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.fontSize": ('PySide2.QtWebEngineWidgets.QWebEngineSettings.FontSize',),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.globalSettings": (),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.resetAttribute": ('PySide2.QtWebEngineWidgets.QWebEngineSettings.WebAttribute',),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.resetFontFamily": ('PySide2.QtWebEngineWidgets.QWebEngineSettings.FontFamily',),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.resetFontSize": ('PySide2.QtWebEngineWidgets.QWebEngineSettings.FontSize',),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.resetUnknownUrlSchemePolicy": (),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.setAttribute": ('PySide2.QtWebEngineWidgets.QWebEngineSettings.WebAttribute', 'bool'),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.setDefaultTextEncoding": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.setFontFamily": ('PySide2.QtWebEngineWidgets.QWebEngineSettings.FontFamily', 'str'),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.setFontSize": ('PySide2.QtWebEngineWidgets.QWebEngineSettings.FontSize', 'int'),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.setUnknownUrlSchemePolicy": ('PySide2.QtWebEngineWidgets.QWebEngineSettings.UnknownUrlSchemePolicy',),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.testAttribute": ('PySide2.QtWebEngineWidgets.QWebEngineSettings.WebAttribute',),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.unknownUrlSchemePolicy": (),
-# class PySide2.QtWebEngineWidgets.QWebEngineView:
- "PySide2.QtWebEngineWidgets.QWebEngineView.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.back": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.closeEvent": ('PySide2.QtGui.QCloseEvent',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.createWindow": ('PySide2.QtWebEngineWidgets.QWebEnginePage.WebWindowType',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.dragEnterEvent": ('PySide2.QtGui.QDragEnterEvent',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.findText": [('str', 'PySide2.QtWebEngineWidgets.QWebEnginePage.FindFlags'), ('str', 'PySide2.QtWebEngineWidgets.QWebEnginePage.FindFlags', 'object')],
- "PySide2.QtWebEngineWidgets.QWebEngineView.forward": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.hasSelection": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.history": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.icon": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.iconUrl": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.load": [('PySide2.QtCore.QUrl',), ('PySide2.QtWebEngineCore.QWebEngineHttpRequest',)],
- "PySide2.QtWebEngineWidgets.QWebEngineView.page": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.pageAction": ('PySide2.QtWebEngineWidgets.QWebEnginePage.WebAction',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.reload": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.selectedText": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.setContent": ('PySide2.QtCore.QByteArray', 'str', 'PySide2.QtCore.QUrl'),
- "PySide2.QtWebEngineWidgets.QWebEngineView.setHtml": ('str', 'PySide2.QtCore.QUrl'),
- "PySide2.QtWebEngineWidgets.QWebEngineView.setPage": ('PySide2.QtWebEngineWidgets.QWebEnginePage',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.setUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.setZoomFactor": ('float',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.settings": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.sizeHint": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.stop": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.title": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.triggerPageAction": ('PySide2.QtWebEngineWidgets.QWebEnginePage.WebAction', 'bool'),
- "PySide2.QtWebEngineWidgets.QWebEngineView.url": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.zoomFactor": (),
- }) if "PySide2.QtWebEngineWidgets" in sys.modules else None
-# Module PySide2.QtWebSockets
-sig_dict.update({
-# class PySide2.QtWebSockets.QMaskGenerator:
- "PySide2.QtWebSockets.QMaskGenerator.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWebSockets.QMaskGenerator.nextMask": (),
- "PySide2.QtWebSockets.QMaskGenerator.seed": (),
-# class PySide2.QtWebSockets.QWebSocket:
- "PySide2.QtWebSockets.QWebSocket.__init__": ('str', 'PySide2.QtWebSockets.QWebSocketProtocol.Version', 'PySide2.QtCore.QObject'),
- "PySide2.QtWebSockets.QWebSocket.abort": (),
- "PySide2.QtWebSockets.QWebSocket.bytesToWrite": (),
- "PySide2.QtWebSockets.QWebSocket.close": ('PySide2.QtWebSockets.QWebSocketProtocol.CloseCode', 'str'),
- "PySide2.QtWebSockets.QWebSocket.closeCode": (),
- "PySide2.QtWebSockets.QWebSocket.closeReason": (),
- "PySide2.QtWebSockets.QWebSocket.error": (),
- "PySide2.QtWebSockets.QWebSocket.errorString": (),
- "PySide2.QtWebSockets.QWebSocket.flush": (),
- "PySide2.QtWebSockets.QWebSocket.isValid": (),
- "PySide2.QtWebSockets.QWebSocket.localAddress": (),
- "PySide2.QtWebSockets.QWebSocket.localPort": (),
- "PySide2.QtWebSockets.QWebSocket.maskGenerator": (),
- "PySide2.QtWebSockets.QWebSocket.open": [('PySide2.QtCore.QUrl',), ('PySide2.QtNetwork.QNetworkRequest',)],
- "PySide2.QtWebSockets.QWebSocket.origin": (),
- "PySide2.QtWebSockets.QWebSocket.pauseMode": (),
- "PySide2.QtWebSockets.QWebSocket.peerAddress": (),
- "PySide2.QtWebSockets.QWebSocket.peerName": (),
- "PySide2.QtWebSockets.QWebSocket.peerPort": (),
- "PySide2.QtWebSockets.QWebSocket.ping": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWebSockets.QWebSocket.proxy": (),
- "PySide2.QtWebSockets.QWebSocket.readBufferSize": (),
- "PySide2.QtWebSockets.QWebSocket.request": (),
- "PySide2.QtWebSockets.QWebSocket.requestUrl": (),
- "PySide2.QtWebSockets.QWebSocket.resourceName": (),
- "PySide2.QtWebSockets.QWebSocket.resume": (),
- "PySide2.QtWebSockets.QWebSocket.sendBinaryMessage": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWebSockets.QWebSocket.sendTextMessage": ('str',),
- "PySide2.QtWebSockets.QWebSocket.setMaskGenerator": ('PySide2.QtWebSockets.QMaskGenerator',),
- "PySide2.QtWebSockets.QWebSocket.setPauseMode": ('PySide2.QtNetwork.QAbstractSocket.PauseModes',),
- "PySide2.QtWebSockets.QWebSocket.setProxy": ('PySide2.QtNetwork.QNetworkProxy',),
- "PySide2.QtWebSockets.QWebSocket.setReadBufferSize": ('int',),
- "PySide2.QtWebSockets.QWebSocket.state": (),
- "PySide2.QtWebSockets.QWebSocket.version": (),
-# class PySide2.QtWebSockets.QWebSocketCorsAuthenticator:
- "PySide2.QtWebSockets.QWebSocketCorsAuthenticator.__init__": [('PySide2.QtWebSockets.QWebSocketCorsAuthenticator',), ('str',)],
- "PySide2.QtWebSockets.QWebSocketCorsAuthenticator.allowed": (),
- "PySide2.QtWebSockets.QWebSocketCorsAuthenticator.origin": (),
- "PySide2.QtWebSockets.QWebSocketCorsAuthenticator.setAllowed": ('bool',),
- "PySide2.QtWebSockets.QWebSocketCorsAuthenticator.swap": ('PySide2.QtWebSockets.QWebSocketCorsAuthenticator',),
-# class PySide2.QtWebSockets.QWebSocketProtocol:
-# class PySide2.QtWebSockets.QWebSocketProtocol.CloseCode:
-# class PySide2.QtWebSockets.QWebSocketProtocol.Version:
-# class PySide2.QtWebSockets.QWebSocketServer:
-# class PySide2.QtWebSockets.QWebSocketServer.SslMode:
- "PySide2.QtWebSockets.QWebSocketServer.__init__": ('str', 'PySide2.QtWebSockets.QWebSocketServer.SslMode', 'PySide2.QtCore.QObject'),
- "PySide2.QtWebSockets.QWebSocketServer.close": (),
- "PySide2.QtWebSockets.QWebSocketServer.error": (),
- "PySide2.QtWebSockets.QWebSocketServer.errorString": (),
- "PySide2.QtWebSockets.QWebSocketServer.handleConnection": ('PySide2.QtNetwork.QTcpSocket',),
- "PySide2.QtWebSockets.QWebSocketServer.handshakeTimeoutMS": (),
- "PySide2.QtWebSockets.QWebSocketServer.hasPendingConnections": (),
- "PySide2.QtWebSockets.QWebSocketServer.isListening": (),
- "PySide2.QtWebSockets.QWebSocketServer.listen": ('PySide2.QtNetwork.QHostAddress', 'int'),
- "PySide2.QtWebSockets.QWebSocketServer.maxPendingConnections": (),
- "PySide2.QtWebSockets.QWebSocketServer.nativeDescriptor": (),
- "PySide2.QtWebSockets.QWebSocketServer.nextPendingConnection": (),
- "PySide2.QtWebSockets.QWebSocketServer.pauseAccepting": (),
- "PySide2.QtWebSockets.QWebSocketServer.proxy": (),
- "PySide2.QtWebSockets.QWebSocketServer.resumeAccepting": (),
- "PySide2.QtWebSockets.QWebSocketServer.secureMode": (),
- "PySide2.QtWebSockets.QWebSocketServer.serverAddress": (),
- "PySide2.QtWebSockets.QWebSocketServer.serverName": (),
- "PySide2.QtWebSockets.QWebSocketServer.serverPort": (),
- "PySide2.QtWebSockets.QWebSocketServer.serverUrl": (),
- "PySide2.QtWebSockets.QWebSocketServer.setHandshakeTimeout": ('int',),
- "PySide2.QtWebSockets.QWebSocketServer.setMaxPendingConnections": ('int',),
- "PySide2.QtWebSockets.QWebSocketServer.setNativeDescriptor": ('int',),
- "PySide2.QtWebSockets.QWebSocketServer.setProxy": ('PySide2.QtNetwork.QNetworkProxy',),
- "PySide2.QtWebSockets.QWebSocketServer.setServerName": ('str',),
- "PySide2.QtWebSockets.QWebSocketServer.setSocketDescriptor": ('int',),
- "PySide2.QtWebSockets.QWebSocketServer.socketDescriptor": (),
- "PySide2.QtWebSockets.QWebSocketServer.supportedVersions": (),
- }) if "PySide2.QtWebSockets" in sys.modules else None
-# Module PySide2.Qt3DCore
-sig_dict.update({
-# class PySide2.Qt3DCore.Qt3DCore:
-# class PySide2.Qt3DCore.Qt3DCore.ChangeFlag:
-# class PySide2.Qt3DCore.Qt3DCore.ChangeFlags:
-# class PySide2.Qt3DCore.Qt3DCore.QAbstractAspect:
- "PySide2.Qt3DCore.Qt3DCore.QAbstractAspect.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DCore.Qt3DCore.QAbstractAspect.rootEntityId": (),
- "PySide2.Qt3DCore.Qt3DCore.QAbstractAspect.unregisterBackendType": ('PySide2.QtCore.QMetaObject',),
-# class PySide2.Qt3DCore.Qt3DCore.QAbstractSkeleton:
- "PySide2.Qt3DCore.Qt3DCore.QAbstractSkeleton.jointCount": (),
-# class PySide2.Qt3DCore.Qt3DCore.QArmature:
- "PySide2.Qt3DCore.Qt3DCore.QArmature.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DCore.Qt3DCore.QArmature.setSkeleton": ('PySide2.Qt3DCore.Qt3DCore.QAbstractSkeleton',),
- "PySide2.Qt3DCore.Qt3DCore.QArmature.skeleton": (),
-# class PySide2.Qt3DCore.Qt3DCore.QAspectEngine:
-# class PySide2.Qt3DCore.Qt3DCore.QAspectEngine.RunMode:
- "PySide2.Qt3DCore.Qt3DCore.QAspectEngine.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DCore.Qt3DCore.QAspectEngine.aspects": (),
- "PySide2.Qt3DCore.Qt3DCore.QAspectEngine.executeCommand": ('str',),
- "PySide2.Qt3DCore.Qt3DCore.QAspectEngine.processFrame": (),
- "PySide2.Qt3DCore.Qt3DCore.QAspectEngine.registerAspect": [('PySide2.Qt3DCore.Qt3DCore.QAbstractAspect',), ('str',)],
- "PySide2.Qt3DCore.Qt3DCore.QAspectEngine.runMode": (),
- "PySide2.Qt3DCore.Qt3DCore.QAspectEngine.setRunMode": ('PySide2.Qt3DCore.Qt3DCore.QAspectEngine.RunMode',),
- "PySide2.Qt3DCore.Qt3DCore.QAspectEngine.unregisterAspect": [('PySide2.Qt3DCore.Qt3DCore.QAbstractAspect',), ('str',)],
-# class PySide2.Qt3DCore.Qt3DCore.QAspectJob:
- "PySide2.Qt3DCore.Qt3DCore.QAspectJob.__init__": (),
- "PySide2.Qt3DCore.Qt3DCore.QAspectJob.run": (),
-# class PySide2.Qt3DCore.Qt3DCore.QBackendNode:
-# class PySide2.Qt3DCore.Qt3DCore.QBackendNode.Mode:
- "PySide2.Qt3DCore.Qt3DCore.QBackendNode.__init__": ('PySide2.Qt3DCore.Qt3DCore.QBackendNode.Mode',),
- "PySide2.Qt3DCore.Qt3DCore.QBackendNode.isEnabled": (),
- "PySide2.Qt3DCore.Qt3DCore.QBackendNode.mode": (),
- "PySide2.Qt3DCore.Qt3DCore.QBackendNode.peerId": (),
- "PySide2.Qt3DCore.Qt3DCore.QBackendNode.setEnabled": ('bool',),
-# class PySide2.Qt3DCore.Qt3DCore.QComponent:
- "PySide2.Qt3DCore.Qt3DCore.QComponent.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DCore.Qt3DCore.QComponent.entities": (),
- "PySide2.Qt3DCore.Qt3DCore.QComponent.isShareable": (),
- "PySide2.Qt3DCore.Qt3DCore.QComponent.setShareable": ('bool',),
-# class PySide2.Qt3DCore.Qt3DCore.QComponentAddedChange:
- "PySide2.Qt3DCore.Qt3DCore.QComponentAddedChange.__init__": [('PySide2.Qt3DCore.Qt3DCore.QComponent', 'PySide2.Qt3DCore.Qt3DCore.QEntity'), ('PySide2.Qt3DCore.Qt3DCore.QEntity', 'PySide2.Qt3DCore.Qt3DCore.QComponent')],
- "PySide2.Qt3DCore.Qt3DCore.QComponentAddedChange.componentId": (),
- "PySide2.Qt3DCore.Qt3DCore.QComponentAddedChange.componentMetaObject": (),
- "PySide2.Qt3DCore.Qt3DCore.QComponentAddedChange.entityId": (),
-# class PySide2.Qt3DCore.Qt3DCore.QComponentRemovedChange:
- "PySide2.Qt3DCore.Qt3DCore.QComponentRemovedChange.__init__": [('PySide2.Qt3DCore.Qt3DCore.QComponent', 'PySide2.Qt3DCore.Qt3DCore.QEntity'), ('PySide2.Qt3DCore.Qt3DCore.QEntity', 'PySide2.Qt3DCore.Qt3DCore.QComponent')],
- "PySide2.Qt3DCore.Qt3DCore.QComponentRemovedChange.componentId": (),
- "PySide2.Qt3DCore.Qt3DCore.QComponentRemovedChange.componentMetaObject": (),
- "PySide2.Qt3DCore.Qt3DCore.QComponentRemovedChange.entityId": (),
-# class PySide2.Qt3DCore.Qt3DCore.QDynamicPropertyUpdatedChange:
- "PySide2.Qt3DCore.Qt3DCore.QDynamicPropertyUpdatedChange.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
- "PySide2.Qt3DCore.Qt3DCore.QDynamicPropertyUpdatedChange.propertyName": (),
- "PySide2.Qt3DCore.Qt3DCore.QDynamicPropertyUpdatedChange.setPropertyName": ('PySide2.QtCore.QByteArray',),
- "PySide2.Qt3DCore.Qt3DCore.QDynamicPropertyUpdatedChange.setValue": ('typing.Any',),
- "PySide2.Qt3DCore.Qt3DCore.QDynamicPropertyUpdatedChange.value": (),
-# class PySide2.Qt3DCore.Qt3DCore.QEntity:
- "PySide2.Qt3DCore.Qt3DCore.QEntity.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DCore.Qt3DCore.QEntity.addComponent": ('PySide2.Qt3DCore.Qt3DCore.QComponent',),
- "PySide2.Qt3DCore.Qt3DCore.QEntity.components": (),
- "PySide2.Qt3DCore.Qt3DCore.QEntity.parentEntity": (),
- "PySide2.Qt3DCore.Qt3DCore.QEntity.removeComponent": ('PySide2.Qt3DCore.Qt3DCore.QComponent',),
-# class PySide2.Qt3DCore.Qt3DCore.QJoint:
- "PySide2.Qt3DCore.Qt3DCore.QJoint.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.addChildJoint": ('PySide2.Qt3DCore.Qt3DCore.QJoint',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.childJoints": (),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.inverseBindMatrix": (),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.name": (),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.removeChildJoint": ('PySide2.Qt3DCore.Qt3DCore.QJoint',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.rotation": (),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.rotationX": (),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.rotationY": (),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.rotationZ": (),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.scale": (),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.setInverseBindMatrix": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.setName": ('str',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.setRotation": ('PySide2.QtGui.QQuaternion',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.setRotationX": ('float',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.setRotationY": ('float',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.setRotationZ": ('float',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.setScale": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.setToIdentity": (),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.setTranslation": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.translation": (),
-# class PySide2.Qt3DCore.Qt3DCore.QNode:
-# class PySide2.Qt3DCore.Qt3DCore.QNode.PropertyTrackingMode:
- "PySide2.Qt3DCore.Qt3DCore.QNode.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DCore.Qt3DCore.QNode.blockNotifications": ('bool',),
- "PySide2.Qt3DCore.Qt3DCore.QNode.childNodes": (),
- "PySide2.Qt3DCore.Qt3DCore.QNode.clearPropertyTracking": ('str',),
- "PySide2.Qt3DCore.Qt3DCore.QNode.clearPropertyTrackings": (),
- "PySide2.Qt3DCore.Qt3DCore.QNode.defaultPropertyTrackingMode": (),
- "PySide2.Qt3DCore.Qt3DCore.QNode.id": (),
- "PySide2.Qt3DCore.Qt3DCore.QNode.isEnabled": (),
- "PySide2.Qt3DCore.Qt3DCore.QNode.notificationsBlocked": (),
- "PySide2.Qt3DCore.Qt3DCore.QNode.parentNode": (),
- "PySide2.Qt3DCore.Qt3DCore.QNode.propertyTracking": ('str',),
- "PySide2.Qt3DCore.Qt3DCore.QNode.setDefaultPropertyTrackingMode": ('PySide2.Qt3DCore.Qt3DCore.QNode.PropertyTrackingMode',),
- "PySide2.Qt3DCore.Qt3DCore.QNode.setEnabled": ('bool',),
- "PySide2.Qt3DCore.Qt3DCore.QNode.setParent": [('PySide2.Qt3DCore.Qt3DCore.QNode',), ('PySide2.QtCore.QObject',)],
- "PySide2.Qt3DCore.Qt3DCore.QNode.setPropertyTracking": ('str', 'PySide2.Qt3DCore.Qt3DCore.QNode.PropertyTrackingMode'),
-# class PySide2.Qt3DCore.Qt3DCore.QNodeCommand:
- "PySide2.Qt3DCore.Qt3DCore.QNodeCommand.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
- "PySide2.Qt3DCore.Qt3DCore.QNodeCommand.commandId": (),
- "PySide2.Qt3DCore.Qt3DCore.QNodeCommand.data": (),
- "PySide2.Qt3DCore.Qt3DCore.QNodeCommand.inReplyTo": (),
- "PySide2.Qt3DCore.Qt3DCore.QNodeCommand.name": (),
- "PySide2.Qt3DCore.Qt3DCore.QNodeCommand.setData": ('typing.Any',),
- "PySide2.Qt3DCore.Qt3DCore.QNodeCommand.setName": ('str',),
- "PySide2.Qt3DCore.Qt3DCore.QNodeCommand.setReplyToCommandId": ('int',),
-# class PySide2.Qt3DCore.Qt3DCore.QNodeCreatedChangeBase:
- "PySide2.Qt3DCore.Qt3DCore.QNodeCreatedChangeBase.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DCore.Qt3DCore.QNodeCreatedChangeBase.isNodeEnabled": (),
- "PySide2.Qt3DCore.Qt3DCore.QNodeCreatedChangeBase.parentId": (),
-# class PySide2.Qt3DCore.Qt3DCore.QNodeDestroyedChange:
- "PySide2.Qt3DCore.Qt3DCore.QNodeDestroyedChange.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode', 'typing.List'),
- "PySide2.Qt3DCore.Qt3DCore.QNodeDestroyedChange.subtreeIdsAndTypes": (),
-# class PySide2.Qt3DCore.Qt3DCore.QNodeId:
- "PySide2.Qt3DCore.Qt3DCore.QNodeId.__init__": [(), ('PySide2.Qt3DCore.Qt3DCore.QNodeId',)],
- "PySide2.Qt3DCore.Qt3DCore.QNodeId.__copy__": (),
- "PySide2.Qt3DCore.Qt3DCore.QNodeId.createId": (),
- "PySide2.Qt3DCore.Qt3DCore.QNodeId.id": (),
- "PySide2.Qt3DCore.Qt3DCore.QNodeId.isNull": (),
-# class PySide2.Qt3DCore.Qt3DCore.QNodeIdTypePair:
- "PySide2.Qt3DCore.Qt3DCore.QNodeIdTypePair.__init__": [(), ('PySide2.Qt3DCore.Qt3DCore.QNodeId', 'PySide2.QtCore.QMetaObject'), ('PySide2.Qt3DCore.Qt3DCore.QNodeIdTypePair',)],
- "PySide2.Qt3DCore.Qt3DCore.QNodeIdTypePair.__copy__": (),
-# class PySide2.Qt3DCore.Qt3DCore.QPropertyNodeAddedChange:
- "PySide2.Qt3DCore.Qt3DCore.QPropertyNodeAddedChange.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId', 'PySide2.Qt3DCore.Qt3DCore.QNode'),
- "PySide2.Qt3DCore.Qt3DCore.QPropertyNodeAddedChange.addedNodeId": (),
-# class PySide2.Qt3DCore.Qt3DCore.QPropertyNodeRemovedChange:
- "PySide2.Qt3DCore.Qt3DCore.QPropertyNodeRemovedChange.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId', 'PySide2.Qt3DCore.Qt3DCore.QNode'),
- "PySide2.Qt3DCore.Qt3DCore.QPropertyNodeRemovedChange.removedNodeId": (),
-# class PySide2.Qt3DCore.Qt3DCore.QPropertyUpdatedChange:
- "PySide2.Qt3DCore.Qt3DCore.QPropertyUpdatedChange.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
- "PySide2.Qt3DCore.Qt3DCore.QPropertyUpdatedChange.setValue": ('typing.Any',),
- "PySide2.Qt3DCore.Qt3DCore.QPropertyUpdatedChange.value": (),
-# class PySide2.Qt3DCore.Qt3DCore.QPropertyUpdatedChangeBase:
- "PySide2.Qt3DCore.Qt3DCore.QPropertyUpdatedChangeBase.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
-# class PySide2.Qt3DCore.Qt3DCore.QPropertyValueAddedChange:
- "PySide2.Qt3DCore.Qt3DCore.QPropertyValueAddedChange.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
- "PySide2.Qt3DCore.Qt3DCore.QPropertyValueAddedChange.addedValue": (),
- "PySide2.Qt3DCore.Qt3DCore.QPropertyValueAddedChange.setAddedValue": ('typing.Any',),
-# class PySide2.Qt3DCore.Qt3DCore.QPropertyValueAddedChangeBase:
- "PySide2.Qt3DCore.Qt3DCore.QPropertyValueAddedChangeBase.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
-# class PySide2.Qt3DCore.Qt3DCore.QPropertyValueRemovedChange:
- "PySide2.Qt3DCore.Qt3DCore.QPropertyValueRemovedChange.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
- "PySide2.Qt3DCore.Qt3DCore.QPropertyValueRemovedChange.removedValue": (),
- "PySide2.Qt3DCore.Qt3DCore.QPropertyValueRemovedChange.setRemovedValue": ('typing.Any',),
-# class PySide2.Qt3DCore.Qt3DCore.QPropertyValueRemovedChangeBase:
- "PySide2.Qt3DCore.Qt3DCore.QPropertyValueRemovedChangeBase.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
-# class PySide2.Qt3DCore.Qt3DCore.QSceneChange:
-# class PySide2.Qt3DCore.Qt3DCore.QSceneChange.DeliveryFlag:
-# class PySide2.Qt3DCore.Qt3DCore.QSceneChange.DeliveryFlags:
- "PySide2.Qt3DCore.Qt3DCore.QSceneChange.__init__": ('PySide2.Qt3DCore.Qt3DCore.ChangeFlag', 'PySide2.Qt3DCore.Qt3DCore.QNodeId'),
- "PySide2.Qt3DCore.Qt3DCore.QSceneChange.deliveryFlags": (),
- "PySide2.Qt3DCore.Qt3DCore.QSceneChange.setDeliveryFlags": ('PySide2.Qt3DCore.Qt3DCore.QSceneChange.DeliveryFlags',),
- "PySide2.Qt3DCore.Qt3DCore.QSceneChange.subjectId": (),
- "PySide2.Qt3DCore.Qt3DCore.QSceneChange.type": (),
-# class PySide2.Qt3DCore.Qt3DCore.QSkeleton:
- "PySide2.Qt3DCore.Qt3DCore.QSkeleton.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DCore.Qt3DCore.QSkeleton.rootJoint": (),
- "PySide2.Qt3DCore.Qt3DCore.QSkeleton.setRootJoint": ('PySide2.Qt3DCore.Qt3DCore.QJoint',),
-# class PySide2.Qt3DCore.Qt3DCore.QSkeletonLoader:
-# class PySide2.Qt3DCore.Qt3DCore.QSkeletonLoader.Status:
- "PySide2.Qt3DCore.Qt3DCore.QSkeletonLoader.__init__": [('PySide2.Qt3DCore.Qt3DCore.QNode',), ('PySide2.QtCore.QUrl', 'PySide2.Qt3DCore.Qt3DCore.QNode')],
- "PySide2.Qt3DCore.Qt3DCore.QSkeletonLoader.isCreateJointsEnabled": (),
- "PySide2.Qt3DCore.Qt3DCore.QSkeletonLoader.rootJoint": (),
- "PySide2.Qt3DCore.Qt3DCore.QSkeletonLoader.setCreateJointsEnabled": ('bool',),
- "PySide2.Qt3DCore.Qt3DCore.QSkeletonLoader.setSource": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DCore.Qt3DCore.QSkeletonLoader.source": (),
- "PySide2.Qt3DCore.Qt3DCore.QSkeletonLoader.status": (),
-# class PySide2.Qt3DCore.Qt3DCore.QStaticPropertyUpdatedChangeBase:
- "PySide2.Qt3DCore.Qt3DCore.QStaticPropertyUpdatedChangeBase.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
- "PySide2.Qt3DCore.Qt3DCore.QStaticPropertyUpdatedChangeBase.propertyName": (),
- "PySide2.Qt3DCore.Qt3DCore.QStaticPropertyUpdatedChangeBase.setPropertyName": ('bytes',),
-# class PySide2.Qt3DCore.Qt3DCore.QStaticPropertyValueAddedChangeBase:
- "PySide2.Qt3DCore.Qt3DCore.QStaticPropertyValueAddedChangeBase.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
- "PySide2.Qt3DCore.Qt3DCore.QStaticPropertyValueAddedChangeBase.propertyName": (),
- "PySide2.Qt3DCore.Qt3DCore.QStaticPropertyValueAddedChangeBase.setPropertyName": ('bytes',),
-# class PySide2.Qt3DCore.Qt3DCore.QStaticPropertyValueRemovedChangeBase:
- "PySide2.Qt3DCore.Qt3DCore.QStaticPropertyValueRemovedChangeBase.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
- "PySide2.Qt3DCore.Qt3DCore.QStaticPropertyValueRemovedChangeBase.propertyName": (),
- "PySide2.Qt3DCore.Qt3DCore.QStaticPropertyValueRemovedChangeBase.setPropertyName": ('bytes',),
-# class PySide2.Qt3DCore.Qt3DCore.QTransform:
- "PySide2.Qt3DCore.Qt3DCore.QTransform.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.fromAxes": ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.fromAxesAndAngles": [('PySide2.QtGui.QVector3D', 'float', 'PySide2.QtGui.QVector3D', 'float'), ('PySide2.QtGui.QVector3D', 'float', 'PySide2.QtGui.QVector3D', 'float', 'PySide2.QtGui.QVector3D', 'float')],
- "PySide2.Qt3DCore.Qt3DCore.QTransform.fromAxisAndAngle": [('PySide2.QtGui.QVector3D', 'float'), ('float', 'float', 'float', 'float')],
- "PySide2.Qt3DCore.Qt3DCore.QTransform.fromEulerAngles": [('PySide2.QtGui.QVector3D',), ('float', 'float', 'float')],
- "PySide2.Qt3DCore.Qt3DCore.QTransform.matrix": (),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.rotateAround": ('PySide2.QtGui.QVector3D', 'float', 'PySide2.QtGui.QVector3D'),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.rotateFromAxes": ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.rotation": (),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.rotationX": (),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.rotationY": (),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.rotationZ": (),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.scale": (),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.scale3D": (),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.setMatrix": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.setRotation": ('PySide2.QtGui.QQuaternion',),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.setRotationX": ('float',),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.setRotationY": ('float',),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.setRotationZ": ('float',),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.setScale": ('float',),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.setScale3D": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.setTranslation": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.translation": (),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.worldMatrix": (),
- "PySide2.Qt3DCore.Qt3DCore.qHash": ('PySide2.Qt3DCore.Qt3DCore.QNodeId', 'int'),
- "PySide2.Qt3DCore.Qt3DCore.qIdForNode": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- }) if "PySide2.Qt3DCore" in sys.modules else None
-# Module PySide2.Qt3DRender
-sig_dict.update({
-# class PySide2.Qt3DRender.Qt3DRender:
-# class PySide2.Qt3DRender.Qt3DRender.PropertyReaderInterface:
- "PySide2.Qt3DRender.Qt3DRender.PropertyReaderInterface.__init__": (),
- "PySide2.Qt3DRender.Qt3DRender.PropertyReaderInterface.readProperty": ('typing.Any',),
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractFunctor:
- "PySide2.Qt3DRender.Qt3DRender.QAbstractFunctor.__init__": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractFunctor.id": (),
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractLight:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractLight.Type:
- "PySide2.Qt3DRender.Qt3DRender.QAbstractLight.color": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractLight.intensity": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractLight.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractLight.setIntensity": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractLight.type": (),
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.FilterMode:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.RunMode:
- "PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.addLayer": ('PySide2.Qt3DRender.Qt3DRender.QLayer',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.filterMode": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.hits": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.layers": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.removeLayer": ('PySide2.Qt3DRender.Qt3DRender.QLayer',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.runMode": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.setFilterMode": ('PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.FilterMode',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.setRunMode": ('PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.RunMode',),
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractTexture:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.ComparisonFunction:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.ComparisonMode:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.CubeMapFace:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.Filter:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.HandleType:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.Status:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.Target:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.TextureFormat:
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.__init__": [('PySide2.Qt3DCore.Qt3DCore.QNode',), ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.Target', 'PySide2.Qt3DCore.Qt3DCore.QNode')],
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.addTextureImage": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTextureImage',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.comparisonFunction": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.comparisonMode": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.depth": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.format": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.generateMipMaps": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.handle": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.handleType": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.height": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.layers": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.magnificationFilter": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.maximumAnisotropy": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.minificationFilter": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.removeTextureImage": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTextureImage',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.samples": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setComparisonFunction": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.ComparisonFunction',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setComparisonMode": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.ComparisonMode',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setDepth": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setFormat": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.TextureFormat',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setGenerateMipMaps": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setHandle": ('typing.Any',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setHandleType": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.HandleType',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setHeight": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setLayers": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setMagnificationFilter": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.Filter',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setMaximumAnisotropy": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setMinificationFilter": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.Filter',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setSamples": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setSize": ('int', 'int', 'int'),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setStatus": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.Status',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setWidth": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setWrapMode": ('PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.status": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.target": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.textureImages": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.width": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.wrapMode": (),
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractTextureImage:
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTextureImage.face": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTextureImage.layer": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTextureImage.mipLevel": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTextureImage.notifyDataGeneratorChanged": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTextureImage.setFace": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.CubeMapFace',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTextureImage.setLayer": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTextureImage.setMipLevel": ('int',),
-# class PySide2.Qt3DRender.Qt3DRender.QAlphaCoverage:
- "PySide2.Qt3DRender.Qt3DRender.QAlphaCoverage.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QAlphaTest:
-# class PySide2.Qt3DRender.Qt3DRender.QAlphaTest.AlphaFunction:
- "PySide2.Qt3DRender.Qt3DRender.QAlphaTest.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QAlphaTest.alphaFunction": (),
- "PySide2.Qt3DRender.Qt3DRender.QAlphaTest.referenceValue": (),
- "PySide2.Qt3DRender.Qt3DRender.QAlphaTest.setAlphaFunction": ('PySide2.Qt3DRender.Qt3DRender.QAlphaTest.AlphaFunction',),
- "PySide2.Qt3DRender.Qt3DRender.QAlphaTest.setReferenceValue": ('float',),
-# class PySide2.Qt3DRender.Qt3DRender.QAttribute:
-# class PySide2.Qt3DRender.Qt3DRender.QAttribute.AttributeType:
-# class PySide2.Qt3DRender.Qt3DRender.QAttribute.VertexBaseType:
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.__init__": [('PySide2.Qt3DCore.Qt3DCore.QNode',), ('PySide2.Qt3DRender.Qt3DRender.QBuffer', 'PySide2.Qt3DRender.Qt3DRender.QAttribute.VertexBaseType', 'int', 'int', 'int', 'int', 'PySide2.Qt3DCore.Qt3DCore.QNode'), ('PySide2.Qt3DRender.Qt3DRender.QBuffer', 'str', 'PySide2.Qt3DRender.Qt3DRender.QAttribute.VertexBaseType', 'int', 'int', 'int', 'int', 'PySide2.Qt3DCore.Qt3DCore.QNode')],
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.attributeType": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.buffer": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.byteOffset": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.byteStride": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.count": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.defaultColorAttributeName": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.defaultJointIndicesAttributeName": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.defaultJointWeightsAttributeName": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.defaultNormalAttributeName": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.defaultPositionAttributeName": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.defaultTangentAttributeName": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.defaultTextureCoordinate1AttributeName": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.defaultTextureCoordinate2AttributeName": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.defaultTextureCoordinateAttributeName": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.divisor": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.name": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setAttributeType": ('PySide2.Qt3DRender.Qt3DRender.QAttribute.AttributeType',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setBuffer": ('PySide2.Qt3DRender.Qt3DRender.QBuffer',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setByteOffset": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setByteStride": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setCount": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setDataSize": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setDataType": ('PySide2.Qt3DRender.Qt3DRender.QAttribute.VertexBaseType',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setDivisor": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setName": ('str',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setVertexBaseType": ('PySide2.Qt3DRender.Qt3DRender.QAttribute.VertexBaseType',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setVertexSize": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.vertexBaseType": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.vertexSize": (),
-# class PySide2.Qt3DRender.Qt3DRender.QBlendEquation:
-# class PySide2.Qt3DRender.Qt3DRender.QBlendEquation.BlendFunction:
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquation.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquation.blendFunction": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquation.setBlendFunction": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquation.BlendFunction',),
-# class PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments:
-# class PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending:
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.bufferIndex": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.destinationAlpha": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.destinationRgb": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.setBufferIndex": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.setDestinationAlpha": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending',),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.setDestinationRgb": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending',),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.setDestinationRgba": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending',),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.setSourceAlpha": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending',),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.setSourceRgb": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending',),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.setSourceRgba": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending',),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.sourceAlpha": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.sourceRgb": (),
-# class PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer:
-# class PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.InterpolationMethod:
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.destination": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.destinationAttachmentPoint": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.destinationRect": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.interpolationMethod": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.setDestination": ('PySide2.Qt3DRender.Qt3DRender.QRenderTarget',),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.setDestinationAttachmentPoint": ('PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.AttachmentPoint',),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.setDestinationRect": ('PySide2.QtCore.QRectF',),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.setInterpolationMethod": ('PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.InterpolationMethod',),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.setSource": ('PySide2.Qt3DRender.Qt3DRender.QRenderTarget',),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.setSourceAttachmentPoint": ('PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.AttachmentPoint',),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.setSourceRect": ('PySide2.QtCore.QRectF',),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.source": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.sourceAttachmentPoint": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.sourceRect": (),
-# class PySide2.Qt3DRender.Qt3DRender.QBuffer:
-# class PySide2.Qt3DRender.Qt3DRender.QBuffer.AccessType:
-# class PySide2.Qt3DRender.Qt3DRender.QBuffer.BufferType:
-# class PySide2.Qt3DRender.Qt3DRender.QBuffer.UsageType:
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.__init__": [('PySide2.Qt3DCore.Qt3DCore.QNode',), ('PySide2.Qt3DRender.Qt3DRender.QBuffer.BufferType', 'PySide2.Qt3DCore.Qt3DCore.QNode')],
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.accessType": (),
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.data": (),
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.isSyncData": (),
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.setAccessType": ('PySide2.Qt3DRender.Qt3DRender.QBuffer.AccessType',),
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.setData": ('PySide2.QtCore.QByteArray',),
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.setSyncData": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.setType": ('PySide2.Qt3DRender.Qt3DRender.QBuffer.BufferType',),
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.setUsage": ('PySide2.Qt3DRender.Qt3DRender.QBuffer.UsageType',),
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.type": (),
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.updateData": ('int', 'PySide2.QtCore.QByteArray'),
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.usage": (),
-# class PySide2.Qt3DRender.Qt3DRender.QBufferCapture:
- "PySide2.Qt3DRender.Qt3DRender.QBufferCapture.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QBufferDataGenerator:
- "PySide2.Qt3DRender.Qt3DRender.QBufferDataGenerator.__init__": (),
-# class PySide2.Qt3DRender.Qt3DRender.QCamera:
-# class PySide2.Qt3DRender.Qt3DRender.QCamera.CameraTranslationOption:
- "PySide2.Qt3DRender.Qt3DRender.QCamera.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.aspectRatio": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.bottom": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.exposure": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.farPlane": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.fieldOfView": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.left": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.lens": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.nearPlane": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.pan": [('float',), ('float', 'PySide2.QtGui.QVector3D')],
- "PySide2.Qt3DRender.Qt3DRender.QCamera.panAboutViewCenter": [('float',), ('float', 'PySide2.QtGui.QVector3D')],
- "PySide2.Qt3DRender.Qt3DRender.QCamera.panRotation": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.position": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.projectionMatrix": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.projectionType": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.right": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.roll": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.rollAboutViewCenter": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.rollRotation": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.rotate": ('PySide2.QtGui.QQuaternion',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.rotateAboutViewCenter": ('PySide2.QtGui.QQuaternion',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.rotation": ('float', 'PySide2.QtGui.QVector3D'),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setAspectRatio": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setBottom": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setExposure": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setFarPlane": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setFieldOfView": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setLeft": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setNearPlane": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setPosition": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setProjectionMatrix": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setProjectionType": ('PySide2.Qt3DRender.Qt3DRender.QCameraLens.ProjectionType',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setRight": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setTop": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setUpVector": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setViewCenter": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.tilt": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.tiltAboutViewCenter": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.tiltRotation": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.top": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.transform": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.translate": ('PySide2.QtGui.QVector3D', 'PySide2.Qt3DRender.Qt3DRender.QCamera.CameraTranslationOption'),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.translateWorld": ('PySide2.QtGui.QVector3D', 'PySide2.Qt3DRender.Qt3DRender.QCamera.CameraTranslationOption'),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.upVector": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.viewAll": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.viewCenter": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.viewEntity": ('PySide2.Qt3DCore.Qt3DCore.QEntity',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.viewMatrix": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.viewSphere": ('PySide2.QtGui.QVector3D', 'float'),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.viewVector": (),
-# class PySide2.Qt3DRender.Qt3DRender.QCameraLens:
-# class PySide2.Qt3DRender.Qt3DRender.QCameraLens.ProjectionType:
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.aspectRatio": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.bottom": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.exposure": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.farPlane": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.fieldOfView": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.left": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.nearPlane": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.projectionMatrix": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.projectionType": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.right": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setAspectRatio": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setBottom": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setExposure": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setFarPlane": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setFieldOfView": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setFrustumProjection": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setLeft": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setNearPlane": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setOrthographicProjection": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setPerspectiveProjection": ('float', 'float', 'float', 'float'),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setProjectionMatrix": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setProjectionType": ('PySide2.Qt3DRender.Qt3DRender.QCameraLens.ProjectionType',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setRight": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setTop": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.top": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.viewAll": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.viewEntity": ('PySide2.Qt3DCore.Qt3DCore.QNodeId', 'PySide2.Qt3DCore.Qt3DCore.QNodeId'),
-# class PySide2.Qt3DRender.Qt3DRender.QCameraSelector:
- "PySide2.Qt3DRender.Qt3DRender.QCameraSelector.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraSelector.camera": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraSelector.setCamera": ('PySide2.Qt3DCore.Qt3DCore.QEntity',),
-# class PySide2.Qt3DRender.Qt3DRender.QClearBuffers:
-# class PySide2.Qt3DRender.Qt3DRender.QClearBuffers.BufferType:
-# class PySide2.Qt3DRender.Qt3DRender.QClearBuffers.BufferTypeFlags:
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.buffers": (),
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.clearColor": (),
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.clearDepthValue": (),
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.clearStencilValue": (),
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.colorBuffer": (),
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.setBuffers": ('PySide2.Qt3DRender.Qt3DRender.QClearBuffers.BufferType',),
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.setClearColor": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.setClearDepthValue": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.setClearStencilValue": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.setColorBuffer": ('PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput',),
-# class PySide2.Qt3DRender.Qt3DRender.QClipPlane:
- "PySide2.Qt3DRender.Qt3DRender.QClipPlane.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QClipPlane.distance": (),
- "PySide2.Qt3DRender.Qt3DRender.QClipPlane.normal": (),
- "PySide2.Qt3DRender.Qt3DRender.QClipPlane.planeIndex": (),
- "PySide2.Qt3DRender.Qt3DRender.QClipPlane.setDistance": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QClipPlane.setNormal": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DRender.Qt3DRender.QClipPlane.setPlaneIndex": ('int',),
-# class PySide2.Qt3DRender.Qt3DRender.QColorMask:
- "PySide2.Qt3DRender.Qt3DRender.QColorMask.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QColorMask.isAlphaMasked": (),
- "PySide2.Qt3DRender.Qt3DRender.QColorMask.isBlueMasked": (),
- "PySide2.Qt3DRender.Qt3DRender.QColorMask.isGreenMasked": (),
- "PySide2.Qt3DRender.Qt3DRender.QColorMask.isRedMasked": (),
- "PySide2.Qt3DRender.Qt3DRender.QColorMask.setAlphaMasked": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QColorMask.setBlueMasked": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QColorMask.setGreenMasked": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QColorMask.setRedMasked": ('bool',),
-# class PySide2.Qt3DRender.Qt3DRender.QComputeCommand:
-# class PySide2.Qt3DRender.Qt3DRender.QComputeCommand.RunType:
- "PySide2.Qt3DRender.Qt3DRender.QComputeCommand.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QComputeCommand.runType": (),
- "PySide2.Qt3DRender.Qt3DRender.QComputeCommand.setRunType": ('PySide2.Qt3DRender.Qt3DRender.QComputeCommand.RunType',),
- "PySide2.Qt3DRender.Qt3DRender.QComputeCommand.setWorkGroupX": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QComputeCommand.setWorkGroupY": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QComputeCommand.setWorkGroupZ": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QComputeCommand.trigger": [('int',), ('int', 'int', 'int', 'int')],
- "PySide2.Qt3DRender.Qt3DRender.QComputeCommand.workGroupX": (),
- "PySide2.Qt3DRender.Qt3DRender.QComputeCommand.workGroupY": (),
- "PySide2.Qt3DRender.Qt3DRender.QComputeCommand.workGroupZ": (),
-# class PySide2.Qt3DRender.Qt3DRender.QCullFace:
-# class PySide2.Qt3DRender.Qt3DRender.QCullFace.CullingMode:
- "PySide2.Qt3DRender.Qt3DRender.QCullFace.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QCullFace.mode": (),
- "PySide2.Qt3DRender.Qt3DRender.QCullFace.setMode": ('PySide2.Qt3DRender.Qt3DRender.QCullFace.CullingMode',),
-# class PySide2.Qt3DRender.Qt3DRender.QDepthTest:
-# class PySide2.Qt3DRender.Qt3DRender.QDepthTest.DepthFunction:
- "PySide2.Qt3DRender.Qt3DRender.QDepthTest.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QDepthTest.depthFunction": (),
- "PySide2.Qt3DRender.Qt3DRender.QDepthTest.setDepthFunction": ('PySide2.Qt3DRender.Qt3DRender.QDepthTest.DepthFunction',),
-# class PySide2.Qt3DRender.Qt3DRender.QDirectionalLight:
- "PySide2.Qt3DRender.Qt3DRender.QDirectionalLight.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QDirectionalLight.setWorldDirection": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DRender.Qt3DRender.QDirectionalLight.worldDirection": (),
-# class PySide2.Qt3DRender.Qt3DRender.QDispatchCompute:
- "PySide2.Qt3DRender.Qt3DRender.QDispatchCompute.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QDispatchCompute.setWorkGroupX": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QDispatchCompute.setWorkGroupY": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QDispatchCompute.setWorkGroupZ": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QDispatchCompute.workGroupX": (),
- "PySide2.Qt3DRender.Qt3DRender.QDispatchCompute.workGroupY": (),
- "PySide2.Qt3DRender.Qt3DRender.QDispatchCompute.workGroupZ": (),
-# class PySide2.Qt3DRender.Qt3DRender.QDithering:
- "PySide2.Qt3DRender.Qt3DRender.QDithering.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QEffect:
- "PySide2.Qt3DRender.Qt3DRender.QEffect.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QEffect.addParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
- "PySide2.Qt3DRender.Qt3DRender.QEffect.addTechnique": ('PySide2.Qt3DRender.Qt3DRender.QTechnique',),
- "PySide2.Qt3DRender.Qt3DRender.QEffect.parameters": (),
- "PySide2.Qt3DRender.Qt3DRender.QEffect.removeParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
- "PySide2.Qt3DRender.Qt3DRender.QEffect.removeTechnique": ('PySide2.Qt3DRender.Qt3DRender.QTechnique',),
- "PySide2.Qt3DRender.Qt3DRender.QEffect.techniques": (),
-# class PySide2.Qt3DRender.Qt3DRender.QEnvironmentLight:
- "PySide2.Qt3DRender.Qt3DRender.QEnvironmentLight.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QEnvironmentLight.irradiance": (),
- "PySide2.Qt3DRender.Qt3DRender.QEnvironmentLight.setIrradiance": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DRender.Qt3DRender.QEnvironmentLight.setSpecular": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DRender.Qt3DRender.QEnvironmentLight.specular": (),
-# class PySide2.Qt3DRender.Qt3DRender.QFilterKey:
- "PySide2.Qt3DRender.Qt3DRender.QFilterKey.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QFilterKey.name": (),
- "PySide2.Qt3DRender.Qt3DRender.QFilterKey.setName": ('str',),
- "PySide2.Qt3DRender.Qt3DRender.QFilterKey.setValue": ('typing.Any',),
- "PySide2.Qt3DRender.Qt3DRender.QFilterKey.value": (),
-# class PySide2.Qt3DRender.Qt3DRender.QFrameGraphNode:
- "PySide2.Qt3DRender.Qt3DRender.QFrameGraphNode.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QFrameGraphNode.parentFrameGraphNode": (),
-# class PySide2.Qt3DRender.Qt3DRender.QFrameGraphNodeCreatedChangeBase:
- "PySide2.Qt3DRender.Qt3DRender.QFrameGraphNodeCreatedChangeBase.__init__": ('PySide2.Qt3DRender.Qt3DRender.QFrameGraphNode',),
- "PySide2.Qt3DRender.Qt3DRender.QFrameGraphNodeCreatedChangeBase.parentFrameGraphNodeId": (),
-# class PySide2.Qt3DRender.Qt3DRender.QFrontFace:
-# class PySide2.Qt3DRender.Qt3DRender.QFrontFace.WindingDirection:
- "PySide2.Qt3DRender.Qt3DRender.QFrontFace.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QFrontFace.direction": (),
- "PySide2.Qt3DRender.Qt3DRender.QFrontFace.setDirection": ('PySide2.Qt3DRender.Qt3DRender.QFrontFace.WindingDirection',),
-# class PySide2.Qt3DRender.Qt3DRender.QFrustumCulling:
- "PySide2.Qt3DRender.Qt3DRender.QFrustumCulling.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QGeometry:
- "PySide2.Qt3DRender.Qt3DRender.QGeometry.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometry.addAttribute": ('PySide2.Qt3DRender.Qt3DRender.QAttribute',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometry.attributes": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometry.boundingVolumePositionAttribute": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometry.maxExtent": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometry.minExtent": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometry.removeAttribute": ('PySide2.Qt3DRender.Qt3DRender.QAttribute',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometry.setBoundingVolumePositionAttribute": ('PySide2.Qt3DRender.Qt3DRender.QAttribute',),
-# class PySide2.Qt3DRender.Qt3DRender.QGeometryFactory:
- "PySide2.Qt3DRender.Qt3DRender.QGeometryFactory.__init__": (),
-# class PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer:
-# class PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.PrimitiveType:
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.firstInstance": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.firstVertex": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.geometry": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.indexBufferByteOffset": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.indexOffset": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.instanceCount": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.primitiveRestartEnabled": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.primitiveType": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.restartIndexValue": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setFirstInstance": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setFirstVertex": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setGeometry": ('PySide2.Qt3DRender.Qt3DRender.QGeometry',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setIndexBufferByteOffset": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setIndexOffset": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setInstanceCount": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setPrimitiveRestartEnabled": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setPrimitiveType": ('PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.PrimitiveType',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setRestartIndexValue": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setVertexCount": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setVerticesPerPatch": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.vertexCount": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.verticesPerPatch": (),
-# class PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter:
-# class PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.Api:
-# class PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.OpenGLProfile:
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.api": (),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.extensions": (),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.majorVersion": (),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.minorVersion": (),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.profile": (),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.setApi": ('PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.Api',),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.setExtensions": ('typing.Sequence',),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.setMajorVersion": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.setMinorVersion": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.setProfile": ('PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.OpenGLProfile',),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.setVendor": ('str',),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.vendor": (),
-# class PySide2.Qt3DRender.Qt3DRender.QLayer:
- "PySide2.Qt3DRender.Qt3DRender.QLayer.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QLayer.recursive": (),
- "PySide2.Qt3DRender.Qt3DRender.QLayer.setRecursive": ('bool',),
-# class PySide2.Qt3DRender.Qt3DRender.QLayerFilter:
-# class PySide2.Qt3DRender.Qt3DRender.QLayerFilter.FilterMode:
- "PySide2.Qt3DRender.Qt3DRender.QLayerFilter.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QLayerFilter.addLayer": ('PySide2.Qt3DRender.Qt3DRender.QLayer',),
- "PySide2.Qt3DRender.Qt3DRender.QLayerFilter.filterMode": (),
- "PySide2.Qt3DRender.Qt3DRender.QLayerFilter.layers": (),
- "PySide2.Qt3DRender.Qt3DRender.QLayerFilter.removeLayer": ('PySide2.Qt3DRender.Qt3DRender.QLayer',),
- "PySide2.Qt3DRender.Qt3DRender.QLayerFilter.setFilterMode": ('PySide2.Qt3DRender.Qt3DRender.QLayerFilter.FilterMode',),
-# class PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail:
-# class PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.ThresholdType:
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.camera": (),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.createBoundingSphere": ('PySide2.QtGui.QVector3D', 'float'),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.currentIndex": (),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.setCamera": ('PySide2.Qt3DRender.Qt3DRender.QCamera',),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.setCurrentIndex": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.setThresholdType": ('PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.ThresholdType',),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.setThresholds": ('typing.List',),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.setVolumeOverride": ('PySide2.Qt3DRender.Qt3DRender.QLevelOfDetailBoundingSphere',),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.thresholdType": (),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.thresholds": (),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.volumeOverride": (),
-# class PySide2.Qt3DRender.Qt3DRender.QLevelOfDetailBoundingSphere:
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetailBoundingSphere.__init__": [('PySide2.Qt3DRender.Qt3DRender.QLevelOfDetailBoundingSphere',), ('PySide2.QtGui.QVector3D', 'float')],
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetailBoundingSphere.center": (),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetailBoundingSphere.isEmpty": (),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetailBoundingSphere.radius": (),
-# class PySide2.Qt3DRender.Qt3DRender.QLevelOfDetailSwitch:
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetailSwitch.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QLineWidth:
- "PySide2.Qt3DRender.Qt3DRender.QLineWidth.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QLineWidth.setSmooth": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QLineWidth.setValue": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QLineWidth.smooth": (),
- "PySide2.Qt3DRender.Qt3DRender.QLineWidth.value": (),
-# class PySide2.Qt3DRender.Qt3DRender.QMaterial:
- "PySide2.Qt3DRender.Qt3DRender.QMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QMaterial.addParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
- "PySide2.Qt3DRender.Qt3DRender.QMaterial.effect": (),
- "PySide2.Qt3DRender.Qt3DRender.QMaterial.parameters": (),
- "PySide2.Qt3DRender.Qt3DRender.QMaterial.removeParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
- "PySide2.Qt3DRender.Qt3DRender.QMaterial.setEffect": ('PySide2.Qt3DRender.Qt3DRender.QEffect',),
-# class PySide2.Qt3DRender.Qt3DRender.QMemoryBarrier:
-# class PySide2.Qt3DRender.Qt3DRender.QMemoryBarrier.Operation:
-# class PySide2.Qt3DRender.Qt3DRender.QMemoryBarrier.Operations:
- "PySide2.Qt3DRender.Qt3DRender.QMemoryBarrier.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QMemoryBarrier.setWaitOperations": ('PySide2.Qt3DRender.Qt3DRender.QMemoryBarrier.Operations',),
- "PySide2.Qt3DRender.Qt3DRender.QMemoryBarrier.waitOperations": (),
-# class PySide2.Qt3DRender.Qt3DRender.QMesh:
-# class PySide2.Qt3DRender.Qt3DRender.QMesh.Status:
- "PySide2.Qt3DRender.Qt3DRender.QMesh.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QMesh.meshName": (),
- "PySide2.Qt3DRender.Qt3DRender.QMesh.setMeshName": ('str',),
- "PySide2.Qt3DRender.Qt3DRender.QMesh.setSource": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QMesh.source": (),
- "PySide2.Qt3DRender.Qt3DRender.QMesh.status": (),
-# class PySide2.Qt3DRender.Qt3DRender.QMultiSampleAntiAliasing:
- "PySide2.Qt3DRender.Qt3DRender.QMultiSampleAntiAliasing.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QNoDepthMask:
- "PySide2.Qt3DRender.Qt3DRender.QNoDepthMask.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QNoDraw:
- "PySide2.Qt3DRender.Qt3DRender.QNoDraw.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QNoPicking:
- "PySide2.Qt3DRender.Qt3DRender.QNoPicking.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QObjectPicker:
- "PySide2.Qt3DRender.Qt3DRender.QObjectPicker.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QObjectPicker.containsMouse": (),
- "PySide2.Qt3DRender.Qt3DRender.QObjectPicker.isDragEnabled": (),
- "PySide2.Qt3DRender.Qt3DRender.QObjectPicker.isHoverEnabled": (),
- "PySide2.Qt3DRender.Qt3DRender.QObjectPicker.isPressed": (),
- "PySide2.Qt3DRender.Qt3DRender.QObjectPicker.priority": (),
- "PySide2.Qt3DRender.Qt3DRender.QObjectPicker.setDragEnabled": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QObjectPicker.setHoverEnabled": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QObjectPicker.setPriority": ('int',),
-# class PySide2.Qt3DRender.Qt3DRender.QPaintedTextureImage:
- "PySide2.Qt3DRender.Qt3DRender.QPaintedTextureImage.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QPaintedTextureImage.height": (),
- "PySide2.Qt3DRender.Qt3DRender.QPaintedTextureImage.paint": ('PySide2.QtGui.QPainter',),
- "PySide2.Qt3DRender.Qt3DRender.QPaintedTextureImage.setHeight": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QPaintedTextureImage.setSize": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DRender.Qt3DRender.QPaintedTextureImage.setWidth": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QPaintedTextureImage.size": (),
- "PySide2.Qt3DRender.Qt3DRender.QPaintedTextureImage.update": ('PySide2.QtCore.QRect',),
- "PySide2.Qt3DRender.Qt3DRender.QPaintedTextureImage.width": (),
-# class PySide2.Qt3DRender.Qt3DRender.QParameter:
- "PySide2.Qt3DRender.Qt3DRender.QParameter.__init__": [('PySide2.Qt3DCore.Qt3DCore.QNode',), ('str', 'PySide2.Qt3DRender.Qt3DRender.QAbstractTexture', 'PySide2.Qt3DCore.Qt3DCore.QNode'), ('str', 'typing.Any', 'PySide2.Qt3DCore.Qt3DCore.QNode')],
- "PySide2.Qt3DRender.Qt3DRender.QParameter.name": (),
- "PySide2.Qt3DRender.Qt3DRender.QParameter.setName": ('str',),
- "PySide2.Qt3DRender.Qt3DRender.QParameter.setValue": ('typing.Any',),
- "PySide2.Qt3DRender.Qt3DRender.QParameter.value": (),
-# class PySide2.Qt3DRender.Qt3DRender.QPickEvent:
-# class PySide2.Qt3DRender.Qt3DRender.QPickEvent.Buttons:
-# class PySide2.Qt3DRender.Qt3DRender.QPickEvent.Modifiers:
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.__init__": [(), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'float'), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'float', 'PySide2.Qt3DRender.Qt3DRender.QPickEvent.Buttons', 'int', 'int')],
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.button": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.buttons": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.distance": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.entity": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.isAccepted": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.localIntersection": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.modifiers": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.position": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.setAccepted": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.viewport": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.worldIntersection": (),
-# class PySide2.Qt3DRender.Qt3DRender.QPickLineEvent:
- "PySide2.Qt3DRender.Qt3DRender.QPickLineEvent.__init__": [(), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'float', 'int', 'int', 'int', 'PySide2.Qt3DRender.Qt3DRender.QPickEvent.Buttons', 'int', 'int')],
- "PySide2.Qt3DRender.Qt3DRender.QPickLineEvent.edgeIndex": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickLineEvent.vertex1Index": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickLineEvent.vertex2Index": (),
-# class PySide2.Qt3DRender.Qt3DRender.QPickPointEvent:
- "PySide2.Qt3DRender.Qt3DRender.QPickPointEvent.__init__": [(), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'float', 'int', 'PySide2.Qt3DRender.Qt3DRender.QPickEvent.Buttons', 'int', 'int')],
- "PySide2.Qt3DRender.Qt3DRender.QPickPointEvent.pointIndex": (),
-# class PySide2.Qt3DRender.Qt3DRender.QPickTriangleEvent:
- "PySide2.Qt3DRender.Qt3DRender.QPickTriangleEvent.__init__": [(), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'float', 'int', 'int', 'int', 'int'), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'float', 'int', 'int', 'int', 'int', 'PySide2.Qt3DRender.Qt3DRender.QPickEvent.Buttons', 'int', 'int', 'PySide2.QtGui.QVector3D')],
- "PySide2.Qt3DRender.Qt3DRender.QPickTriangleEvent.triangleIndex": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickTriangleEvent.uvw": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickTriangleEvent.vertex1Index": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickTriangleEvent.vertex2Index": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickTriangleEvent.vertex3Index": (),
-# class PySide2.Qt3DRender.Qt3DRender.QPickingSettings:
-# class PySide2.Qt3DRender.Qt3DRender.QPickingSettings.FaceOrientationPickingMode:
-# class PySide2.Qt3DRender.Qt3DRender.QPickingSettings.PickMethod:
-# class PySide2.Qt3DRender.Qt3DRender.QPickingSettings.PickResultMode:
- "PySide2.Qt3DRender.Qt3DRender.QPickingSettings.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QPickingSettings.faceOrientationPickingMode": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickingSettings.pickMethod": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickingSettings.pickResultMode": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickingSettings.setFaceOrientationPickingMode": ('PySide2.Qt3DRender.Qt3DRender.QPickingSettings.FaceOrientationPickingMode',),
- "PySide2.Qt3DRender.Qt3DRender.QPickingSettings.setPickMethod": ('PySide2.Qt3DRender.Qt3DRender.QPickingSettings.PickMethod',),
- "PySide2.Qt3DRender.Qt3DRender.QPickingSettings.setPickResultMode": ('PySide2.Qt3DRender.Qt3DRender.QPickingSettings.PickResultMode',),
- "PySide2.Qt3DRender.Qt3DRender.QPickingSettings.setWorldSpaceTolerance": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QPickingSettings.worldSpaceTolerance": (),
-# class PySide2.Qt3DRender.Qt3DRender.QPointLight:
- "PySide2.Qt3DRender.Qt3DRender.QPointLight.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QPointLight.constantAttenuation": (),
- "PySide2.Qt3DRender.Qt3DRender.QPointLight.linearAttenuation": (),
- "PySide2.Qt3DRender.Qt3DRender.QPointLight.quadraticAttenuation": (),
- "PySide2.Qt3DRender.Qt3DRender.QPointLight.setConstantAttenuation": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QPointLight.setLinearAttenuation": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QPointLight.setQuadraticAttenuation": ('float',),
-# class PySide2.Qt3DRender.Qt3DRender.QPointSize:
-# class PySide2.Qt3DRender.Qt3DRender.QPointSize.SizeMode:
- "PySide2.Qt3DRender.Qt3DRender.QPointSize.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QPointSize.setSizeMode": ('PySide2.Qt3DRender.Qt3DRender.QPointSize.SizeMode',),
- "PySide2.Qt3DRender.Qt3DRender.QPointSize.setValue": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QPointSize.sizeMode": (),
- "PySide2.Qt3DRender.Qt3DRender.QPointSize.value": (),
-# class PySide2.Qt3DRender.Qt3DRender.QPolygonOffset:
- "PySide2.Qt3DRender.Qt3DRender.QPolygonOffset.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QPolygonOffset.depthSteps": (),
- "PySide2.Qt3DRender.Qt3DRender.QPolygonOffset.scaleFactor": (),
- "PySide2.Qt3DRender.Qt3DRender.QPolygonOffset.setDepthSteps": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QPolygonOffset.setScaleFactor": ('float',),
-# class PySide2.Qt3DRender.Qt3DRender.QProximityFilter:
- "PySide2.Qt3DRender.Qt3DRender.QProximityFilter.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QProximityFilter.distanceThreshold": (),
- "PySide2.Qt3DRender.Qt3DRender.QProximityFilter.entity": (),
- "PySide2.Qt3DRender.Qt3DRender.QProximityFilter.setDistanceThreshold": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QProximityFilter.setEntity": ('PySide2.Qt3DCore.Qt3DCore.QEntity',),
-# class PySide2.Qt3DRender.Qt3DRender.QRayCaster:
- "PySide2.Qt3DRender.Qt3DRender.QRayCaster.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRayCaster.direction": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCaster.length": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCaster.origin": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCaster.setDirection": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DRender.Qt3DRender.QRayCaster.setLength": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QRayCaster.setOrigin": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DRender.Qt3DRender.QRayCaster.trigger": [(), ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'float')],
-# class PySide2.Qt3DRender.Qt3DRender.QRayCasterHit:
-# class PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.HitType:
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.__init__": [(), ('PySide2.Qt3DRender.Qt3DRender.QRayCasterHit',), ('PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.HitType', 'PySide2.Qt3DCore.Qt3DCore.QNodeId', 'float', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'int', 'int', 'int', 'int')],
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.__copy__": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.distance": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.entity": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.entityId": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.localIntersection": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.primitiveIndex": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.type": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.vertex1Index": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.vertex2Index": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.vertex3Index": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.worldIntersection": (),
-# class PySide2.Qt3DRender.Qt3DRender.QRenderAspect:
-# class PySide2.Qt3DRender.Qt3DRender.QRenderAspect.RenderType:
- "PySide2.Qt3DRender.Qt3DRender.QRenderAspect.__init__": [('PySide2.Qt3DRender.Qt3DRender.QRenderAspect.RenderType', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QObject',)],
-# class PySide2.Qt3DRender.Qt3DRender.QRenderCapture:
- "PySide2.Qt3DRender.Qt3DRender.QRenderCapture.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderCapture.requestCapture": [(), ('PySide2.QtCore.QRect',), ('int',)],
-# class PySide2.Qt3DRender.Qt3DRender.QRenderCaptureReply:
- "PySide2.Qt3DRender.Qt3DRender.QRenderCaptureReply.captureId": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderCaptureReply.image": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderCaptureReply.isComplete": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderCaptureReply.saveImage": ('str',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderCaptureReply.saveToFile": ('str',),
-# class PySide2.Qt3DRender.Qt3DRender.QRenderPass:
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.addFilterKey": ('PySide2.Qt3DRender.Qt3DRender.QFilterKey',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.addParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.addRenderState": ('PySide2.Qt3DRender.Qt3DRender.QRenderState',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.filterKeys": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.parameters": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.removeFilterKey": ('PySide2.Qt3DRender.Qt3DRender.QFilterKey',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.removeParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.removeRenderState": ('PySide2.Qt3DRender.Qt3DRender.QRenderState',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.renderStates": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.setShaderProgram": ('PySide2.Qt3DRender.Qt3DRender.QShaderProgram',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.shaderProgram": (),
-# class PySide2.Qt3DRender.Qt3DRender.QRenderPassFilter:
- "PySide2.Qt3DRender.Qt3DRender.QRenderPassFilter.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPassFilter.addMatch": ('PySide2.Qt3DRender.Qt3DRender.QFilterKey',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPassFilter.addParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPassFilter.matchAny": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPassFilter.parameters": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPassFilter.removeMatch": ('PySide2.Qt3DRender.Qt3DRender.QFilterKey',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPassFilter.removeParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
-# class PySide2.Qt3DRender.Qt3DRender.QRenderSettings:
-# class PySide2.Qt3DRender.Qt3DRender.QRenderSettings.RenderPolicy:
- "PySide2.Qt3DRender.Qt3DRender.QRenderSettings.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSettings.activeFrameGraph": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSettings.pickingSettings": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSettings.renderPolicy": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSettings.setActiveFrameGraph": ('PySide2.Qt3DRender.Qt3DRender.QFrameGraphNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSettings.setRenderPolicy": ('PySide2.Qt3DRender.Qt3DRender.QRenderSettings.RenderPolicy',),
-# class PySide2.Qt3DRender.Qt3DRender.QRenderState:
-# class PySide2.Qt3DRender.Qt3DRender.QRenderStateSet:
- "PySide2.Qt3DRender.Qt3DRender.QRenderStateSet.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderStateSet.addRenderState": ('PySide2.Qt3DRender.Qt3DRender.QRenderState',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderStateSet.removeRenderState": ('PySide2.Qt3DRender.Qt3DRender.QRenderState',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderStateSet.renderStates": (),
-# class PySide2.Qt3DRender.Qt3DRender.QRenderSurfaceSelector:
- "PySide2.Qt3DRender.Qt3DRender.QRenderSurfaceSelector.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSurfaceSelector.externalRenderTargetSize": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSurfaceSelector.setExternalRenderTargetSize": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSurfaceSelector.setSurface": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSurfaceSelector.setSurfacePixelRatio": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSurfaceSelector.surface": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSurfaceSelector.surfacePixelRatio": (),
-# class PySide2.Qt3DRender.Qt3DRender.QRenderTarget:
- "PySide2.Qt3DRender.Qt3DRender.QRenderTarget.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTarget.addOutput": ('PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTarget.outputs": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTarget.removeOutput": ('PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput',),
-# class PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput:
-# class PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.AttachmentPoint:
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.attachmentPoint": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.face": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.layer": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.mipLevel": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.setAttachmentPoint": ('PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.AttachmentPoint',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.setFace": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.CubeMapFace',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.setLayer": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.setMipLevel": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.setTexture": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.texture": (),
-# class PySide2.Qt3DRender.Qt3DRender.QRenderTargetSelector:
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetSelector.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetSelector.outputs": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetSelector.setOutputs": ('typing.List',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetSelector.setTarget": ('PySide2.Qt3DRender.Qt3DRender.QRenderTarget',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetSelector.target": (),
-# class PySide2.Qt3DRender.Qt3DRender.QSceneLoader:
-# class PySide2.Qt3DRender.Qt3DRender.QSceneLoader.ComponentType:
-# class PySide2.Qt3DRender.Qt3DRender.QSceneLoader.Status:
- "PySide2.Qt3DRender.Qt3DRender.QSceneLoader.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QSceneLoader.component": ('str', 'PySide2.Qt3DRender.Qt3DRender.QSceneLoader.ComponentType'),
- "PySide2.Qt3DRender.Qt3DRender.QSceneLoader.entity": ('str',),
- "PySide2.Qt3DRender.Qt3DRender.QSceneLoader.entityNames": (),
- "PySide2.Qt3DRender.Qt3DRender.QSceneLoader.setSource": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QSceneLoader.setStatus": ('PySide2.Qt3DRender.Qt3DRender.QSceneLoader.Status',),
- "PySide2.Qt3DRender.Qt3DRender.QSceneLoader.source": (),
- "PySide2.Qt3DRender.Qt3DRender.QSceneLoader.status": (),
-# class PySide2.Qt3DRender.Qt3DRender.QScissorTest:
- "PySide2.Qt3DRender.Qt3DRender.QScissorTest.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QScissorTest.bottom": (),
- "PySide2.Qt3DRender.Qt3DRender.QScissorTest.height": (),
- "PySide2.Qt3DRender.Qt3DRender.QScissorTest.left": (),
- "PySide2.Qt3DRender.Qt3DRender.QScissorTest.setBottom": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QScissorTest.setHeight": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QScissorTest.setLeft": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QScissorTest.setWidth": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QScissorTest.width": (),
-# class PySide2.Qt3DRender.Qt3DRender.QScreenRayCaster:
- "PySide2.Qt3DRender.Qt3DRender.QScreenRayCaster.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QScreenRayCaster.position": (),
- "PySide2.Qt3DRender.Qt3DRender.QScreenRayCaster.setPosition": ('PySide2.QtCore.QPoint',),
- "PySide2.Qt3DRender.Qt3DRender.QScreenRayCaster.trigger": [(), ('PySide2.QtCore.QPoint',)],
-# class PySide2.Qt3DRender.Qt3DRender.QSeamlessCubemap:
- "PySide2.Qt3DRender.Qt3DRender.QSeamlessCubemap.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QSetFence:
-# class PySide2.Qt3DRender.Qt3DRender.QSetFence.HandleType:
- "PySide2.Qt3DRender.Qt3DRender.QSetFence.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QSetFence.handle": (),
- "PySide2.Qt3DRender.Qt3DRender.QSetFence.handleType": (),
-# class PySide2.Qt3DRender.Qt3DRender.QShaderData:
- "PySide2.Qt3DRender.Qt3DRender.QShaderData.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderData.event": ('PySide2.QtCore.QEvent',),
-# class PySide2.Qt3DRender.Qt3DRender.QShaderImage:
-# class PySide2.Qt3DRender.Qt3DRender.QShaderImage.Access:
-# class PySide2.Qt3DRender.Qt3DRender.QShaderImage.ImageFormat:
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.access": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.format": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.layer": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.layered": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.mipLevel": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.setAccess": ('PySide2.Qt3DRender.Qt3DRender.QShaderImage.Access',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.setFormat": ('PySide2.Qt3DRender.Qt3DRender.QShaderImage.ImageFormat',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.setLayer": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.setLayered": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.setMipLevel": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.setTexture": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.texture": (),
-# class PySide2.Qt3DRender.Qt3DRender.QShaderProgram:
-# class PySide2.Qt3DRender.Qt3DRender.QShaderProgram.ShaderType:
-# class PySide2.Qt3DRender.Qt3DRender.QShaderProgram.Status:
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.computeShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.fragmentShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.geometryShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.loadSource": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.log": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.setComputeShaderCode": ('PySide2.QtCore.QByteArray',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.setFragmentShaderCode": ('PySide2.QtCore.QByteArray',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.setGeometryShaderCode": ('PySide2.QtCore.QByteArray',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.setShaderCode": ('PySide2.Qt3DRender.Qt3DRender.QShaderProgram.ShaderType', 'PySide2.QtCore.QByteArray'),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.setTessellationControlShaderCode": ('PySide2.QtCore.QByteArray',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.setTessellationEvaluationShaderCode": ('PySide2.QtCore.QByteArray',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.setVertexShaderCode": ('PySide2.QtCore.QByteArray',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.shaderCode": ('PySide2.Qt3DRender.Qt3DRender.QShaderProgram.ShaderType',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.status": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.tessellationControlShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.tessellationEvaluationShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.vertexShaderCode": (),
-# class PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder:
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.computeShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.computeShaderGraph": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.enabledLayers": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.fragmentShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.fragmentShaderGraph": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.geometryShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.geometryShaderGraph": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.setComputeShaderGraph": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.setEnabledLayers": ('typing.Sequence',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.setFragmentShaderGraph": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.setGeometryShaderGraph": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.setShaderProgram": ('PySide2.Qt3DRender.Qt3DRender.QShaderProgram',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.setTessellationControlShaderGraph": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.setTessellationEvaluationShaderGraph": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.setVertexShaderGraph": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.shaderProgram": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.tessellationControlShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.tessellationControlShaderGraph": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.tessellationEvaluationShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.tessellationEvaluationShaderGraph": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.vertexShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.vertexShaderGraph": (),
-# class PySide2.Qt3DRender.Qt3DRender.QSharedGLTexture:
- "PySide2.Qt3DRender.Qt3DRender.QSharedGLTexture.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QSharedGLTexture.setTextureId": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QSharedGLTexture.textureId": (),
-# class PySide2.Qt3DRender.Qt3DRender.QSortPolicy:
-# class PySide2.Qt3DRender.Qt3DRender.QSortPolicy.SortType:
- "PySide2.Qt3DRender.Qt3DRender.QSortPolicy.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QSortPolicy.setSortTypes": ('typing.List',),
- "PySide2.Qt3DRender.Qt3DRender.QSortPolicy.sortTypes": (),
- "PySide2.Qt3DRender.Qt3DRender.QSortPolicy.sortTypesInt": (),
-# class PySide2.Qt3DRender.Qt3DRender.QSpotLight:
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.constantAttenuation": (),
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.cutOffAngle": (),
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.linearAttenuation": (),
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.localDirection": (),
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.quadraticAttenuation": (),
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.setConstantAttenuation": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.setCutOffAngle": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.setLinearAttenuation": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.setLocalDirection": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.setQuadraticAttenuation": ('float',),
-# class PySide2.Qt3DRender.Qt3DRender.QStencilMask:
- "PySide2.Qt3DRender.Qt3DRender.QStencilMask.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QStencilMask.backOutputMask": (),
- "PySide2.Qt3DRender.Qt3DRender.QStencilMask.frontOutputMask": (),
- "PySide2.Qt3DRender.Qt3DRender.QStencilMask.setBackOutputMask": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QStencilMask.setFrontOutputMask": ('int',),
-# class PySide2.Qt3DRender.Qt3DRender.QStencilOperation:
- "PySide2.Qt3DRender.Qt3DRender.QStencilOperation.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QStencilOperation.back": (),
- "PySide2.Qt3DRender.Qt3DRender.QStencilOperation.front": (),
-# class PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments:
-# class PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.FaceMode:
-# class PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.Operation:
- "PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.allTestsPassOperation": (),
- "PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.depthTestFailureOperation": (),
- "PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.faceMode": (),
- "PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.setAllTestsPassOperation": ('PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.Operation',),
- "PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.setDepthTestFailureOperation": ('PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.Operation',),
- "PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.setStencilTestFailureOperation": ('PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.Operation',),
- "PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.stencilTestFailureOperation": (),
-# class PySide2.Qt3DRender.Qt3DRender.QStencilTest:
- "PySide2.Qt3DRender.Qt3DRender.QStencilTest.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QStencilTest.back": (),
- "PySide2.Qt3DRender.Qt3DRender.QStencilTest.front": (),
-# class PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments:
-# class PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments.StencilFaceMode:
-# class PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments.StencilFunction:
- "PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments.comparisonMask": (),
- "PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments.faceMode": (),
- "PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments.referenceValue": (),
- "PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments.setComparisonMask": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments.setReferenceValue": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments.setStencilFunction": ('PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments.StencilFunction',),
- "PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments.stencilFunction": (),
-# class PySide2.Qt3DRender.Qt3DRender.QTechnique:
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.addFilterKey": ('PySide2.Qt3DRender.Qt3DRender.QFilterKey',),
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.addParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.addRenderPass": ('PySide2.Qt3DRender.Qt3DRender.QRenderPass',),
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.filterKeys": (),
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.graphicsApiFilter": (),
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.parameters": (),
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.removeFilterKey": ('PySide2.Qt3DRender.Qt3DRender.QFilterKey',),
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.removeParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.removeRenderPass": ('PySide2.Qt3DRender.Qt3DRender.QRenderPass',),
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.renderPasses": (),
-# class PySide2.Qt3DRender.Qt3DRender.QTechniqueFilter:
- "PySide2.Qt3DRender.Qt3DRender.QTechniqueFilter.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QTechniqueFilter.addMatch": ('PySide2.Qt3DRender.Qt3DRender.QFilterKey',),
- "PySide2.Qt3DRender.Qt3DRender.QTechniqueFilter.addParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
- "PySide2.Qt3DRender.Qt3DRender.QTechniqueFilter.matchAll": (),
- "PySide2.Qt3DRender.Qt3DRender.QTechniqueFilter.parameters": (),
- "PySide2.Qt3DRender.Qt3DRender.QTechniqueFilter.removeMatch": ('PySide2.Qt3DRender.Qt3DRender.QFilterKey',),
- "PySide2.Qt3DRender.Qt3DRender.QTechniqueFilter.removeParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
-# class PySide2.Qt3DRender.Qt3DRender.QTexture1D:
- "PySide2.Qt3DRender.Qt3DRender.QTexture1D.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTexture1DArray:
- "PySide2.Qt3DRender.Qt3DRender.QTexture1DArray.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTexture2D:
- "PySide2.Qt3DRender.Qt3DRender.QTexture2D.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTexture2DArray:
- "PySide2.Qt3DRender.Qt3DRender.QTexture2DArray.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTexture2DMultisample:
- "PySide2.Qt3DRender.Qt3DRender.QTexture2DMultisample.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTexture2DMultisampleArray:
- "PySide2.Qt3DRender.Qt3DRender.QTexture2DMultisampleArray.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTexture3D:
- "PySide2.Qt3DRender.Qt3DRender.QTexture3D.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTextureBuffer:
- "PySide2.Qt3DRender.Qt3DRender.QTextureBuffer.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTextureCubeMap:
- "PySide2.Qt3DRender.Qt3DRender.QTextureCubeMap.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTextureCubeMapArray:
- "PySide2.Qt3DRender.Qt3DRender.QTextureCubeMapArray.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTextureData:
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.__init__": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.comparisonFunction": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.comparisonMode": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.depth": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.format": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.height": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.isAutoMipMapGenerationEnabled": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.layers": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.magnificationFilter": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.maximumAnisotropy": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.minificationFilter": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setAutoMipMapGenerationEnabled": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setComparisonFunction": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.ComparisonFunction',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setComparisonMode": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.ComparisonMode',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setDepth": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setFormat": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.TextureFormat',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setHeight": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setLayers": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setMagnificationFilter": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.Filter',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setMaximumAnisotropy": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setMinificationFilter": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.Filter',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setTarget": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.Target',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setWidth": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setWrapModeX": ('PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setWrapModeY": ('PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setWrapModeZ": ('PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.target": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.width": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.wrapModeX": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.wrapModeY": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.wrapModeZ": (),
-# class PySide2.Qt3DRender.Qt3DRender.QTextureGenerator:
-# class PySide2.Qt3DRender.Qt3DRender.QTextureImage:
-# class PySide2.Qt3DRender.Qt3DRender.QTextureImage.Status:
- "PySide2.Qt3DRender.Qt3DRender.QTextureImage.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImage.isMirrored": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImage.setMirrored": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImage.setSource": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImage.setStatus": ('PySide2.Qt3DRender.Qt3DRender.QTextureImage.Status',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImage.source": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImage.status": (),
-# class PySide2.Qt3DRender.Qt3DRender.QTextureImageData:
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.__init__": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.cleanup": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.data": ('int', 'int', 'int'),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.depth": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.faces": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.format": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.height": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.isCompressed": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.layers": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.mipLevels": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.pixelFormat": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.pixelType": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setData": ('PySide2.QtCore.QByteArray', 'int', 'bool'),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setDepth": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setFaces": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setFormat": ('PySide2.QtGui.QOpenGLTexture.TextureFormat',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setHeight": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setImage": ('PySide2.QtGui.QImage',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setLayers": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setMipLevels": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setPixelFormat": ('PySide2.QtGui.QOpenGLTexture.PixelFormat',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setPixelType": ('PySide2.QtGui.QOpenGLTexture.PixelType',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setTarget": ('PySide2.QtGui.QOpenGLTexture.Target',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setWidth": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.target": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.width": (),
-# class PySide2.Qt3DRender.Qt3DRender.QTextureImageDataGenerator:
-# class PySide2.Qt3DRender.Qt3DRender.QTextureLoader:
- "PySide2.Qt3DRender.Qt3DRender.QTextureLoader.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureLoader.isMirrored": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureLoader.setMirrored": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureLoader.setSource": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureLoader.source": (),
-# class PySide2.Qt3DRender.Qt3DRender.QTextureRectangle:
- "PySide2.Qt3DRender.Qt3DRender.QTextureRectangle.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode:
-# class PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode:
- "PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.__init__": [('PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode', 'PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode', 'PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode', 'PySide2.QtCore.QObject'), ('PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode', 'PySide2.QtCore.QObject')],
- "PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.setX": ('PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.setY": ('PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.setZ": ('PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.x": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.y": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.z": (),
-# class PySide2.Qt3DRender.Qt3DRender.QViewport:
- "PySide2.Qt3DRender.Qt3DRender.QViewport.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QViewport.gamma": (),
- "PySide2.Qt3DRender.Qt3DRender.QViewport.normalizedRect": (),
- "PySide2.Qt3DRender.Qt3DRender.QViewport.setGamma": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QViewport.setNormalizedRect": ('PySide2.QtCore.QRectF',),
-# class PySide2.Qt3DRender.Qt3DRender.QWaitFence:
-# class PySide2.Qt3DRender.Qt3DRender.QWaitFence.HandleType:
- "PySide2.Qt3DRender.Qt3DRender.QWaitFence.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QWaitFence.handle": (),
- "PySide2.Qt3DRender.Qt3DRender.QWaitFence.handleType": (),
- "PySide2.Qt3DRender.Qt3DRender.QWaitFence.setHandle": ('typing.Any',),
- "PySide2.Qt3DRender.Qt3DRender.QWaitFence.setHandleType": ('PySide2.Qt3DRender.Qt3DRender.QWaitFence.HandleType',),
- "PySide2.Qt3DRender.Qt3DRender.QWaitFence.setTimeout": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QWaitFence.setWaitOnCPU": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QWaitFence.timeout": (),
- "PySide2.Qt3DRender.Qt3DRender.QWaitFence.waitOnCPU": (),
- }) if "PySide2.Qt3DRender" in sys.modules else None
-# Module PySide2.Qt3DInput
-sig_dict.update({
-# class PySide2.Qt3DInput.Qt3DInput:
-# class PySide2.Qt3DInput.Qt3DInput.QAbstractActionInput:
-# class PySide2.Qt3DInput.Qt3DInput.QAbstractAxisInput:
- "PySide2.Qt3DInput.Qt3DInput.QAbstractAxisInput.setSourceDevice": ('PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice',),
- "PySide2.Qt3DInput.Qt3DInput.QAbstractAxisInput.sourceDevice": (),
-# class PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice:
- "PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice.addAxisSetting": ('PySide2.Qt3DInput.Qt3DInput.QAxisSetting',),
- "PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice.axisCount": (),
- "PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice.axisIdentifier": ('str',),
- "PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice.axisNames": (),
- "PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice.axisSettings": (),
- "PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice.buttonCount": (),
- "PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice.buttonIdentifier": ('str',),
- "PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice.buttonNames": (),
- "PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice.removeAxisSetting": ('PySide2.Qt3DInput.Qt3DInput.QAxisSetting',),
-# class PySide2.Qt3DInput.Qt3DInput.QAction:
- "PySide2.Qt3DInput.Qt3DInput.QAction.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QAction.addInput": ('PySide2.Qt3DInput.Qt3DInput.QAbstractActionInput',),
- "PySide2.Qt3DInput.Qt3DInput.QAction.inputs": (),
- "PySide2.Qt3DInput.Qt3DInput.QAction.isActive": (),
- "PySide2.Qt3DInput.Qt3DInput.QAction.removeInput": ('PySide2.Qt3DInput.Qt3DInput.QAbstractActionInput',),
-# class PySide2.Qt3DInput.Qt3DInput.QActionInput:
- "PySide2.Qt3DInput.Qt3DInput.QActionInput.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QActionInput.buttons": (),
- "PySide2.Qt3DInput.Qt3DInput.QActionInput.setButtons": ('typing.List',),
- "PySide2.Qt3DInput.Qt3DInput.QActionInput.setSourceDevice": ('PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice',),
- "PySide2.Qt3DInput.Qt3DInput.QActionInput.sourceDevice": (),
-# class PySide2.Qt3DInput.Qt3DInput.QAnalogAxisInput:
- "PySide2.Qt3DInput.Qt3DInput.QAnalogAxisInput.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QAnalogAxisInput.axis": (),
- "PySide2.Qt3DInput.Qt3DInput.QAnalogAxisInput.setAxis": ('int',),
-# class PySide2.Qt3DInput.Qt3DInput.QAxis:
- "PySide2.Qt3DInput.Qt3DInput.QAxis.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QAxis.addInput": ('PySide2.Qt3DInput.Qt3DInput.QAbstractAxisInput',),
- "PySide2.Qt3DInput.Qt3DInput.QAxis.inputs": (),
- "PySide2.Qt3DInput.Qt3DInput.QAxis.removeInput": ('PySide2.Qt3DInput.Qt3DInput.QAbstractAxisInput',),
- "PySide2.Qt3DInput.Qt3DInput.QAxis.value": (),
-# class PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator:
-# class PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.SourceAxisType:
- "PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.scale": (),
- "PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.setScale": ('float',),
- "PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.setSourceAxis": ('PySide2.Qt3DInput.Qt3DInput.QAxis',),
- "PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.setSourceAxisType": ('PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.SourceAxisType',),
- "PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.sourceAxis": (),
- "PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.sourceAxisType": (),
- "PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.value": (),
- "PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.velocity": (),
-# class PySide2.Qt3DInput.Qt3DInput.QAxisSetting:
- "PySide2.Qt3DInput.Qt3DInput.QAxisSetting.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QAxisSetting.axes": (),
- "PySide2.Qt3DInput.Qt3DInput.QAxisSetting.deadZoneRadius": (),
- "PySide2.Qt3DInput.Qt3DInput.QAxisSetting.isSmoothEnabled": (),
- "PySide2.Qt3DInput.Qt3DInput.QAxisSetting.setAxes": ('typing.List',),
- "PySide2.Qt3DInput.Qt3DInput.QAxisSetting.setDeadZoneRadius": ('float',),
- "PySide2.Qt3DInput.Qt3DInput.QAxisSetting.setSmoothEnabled": ('bool',),
-# class PySide2.Qt3DInput.Qt3DInput.QButtonAxisInput:
- "PySide2.Qt3DInput.Qt3DInput.QButtonAxisInput.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QButtonAxisInput.acceleration": (),
- "PySide2.Qt3DInput.Qt3DInput.QButtonAxisInput.buttons": (),
- "PySide2.Qt3DInput.Qt3DInput.QButtonAxisInput.deceleration": (),
- "PySide2.Qt3DInput.Qt3DInput.QButtonAxisInput.scale": (),
- "PySide2.Qt3DInput.Qt3DInput.QButtonAxisInput.setAcceleration": ('float',),
- "PySide2.Qt3DInput.Qt3DInput.QButtonAxisInput.setButtons": ('typing.List',),
- "PySide2.Qt3DInput.Qt3DInput.QButtonAxisInput.setDeceleration": ('float',),
- "PySide2.Qt3DInput.Qt3DInput.QButtonAxisInput.setScale": ('float',),
-# class PySide2.Qt3DInput.Qt3DInput.QInputAspect:
- "PySide2.Qt3DInput.Qt3DInput.QInputAspect.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DInput.Qt3DInput.QInputAspect.availablePhysicalDevices": (),
- "PySide2.Qt3DInput.Qt3DInput.QInputAspect.createPhysicalDevice": ('str',),
-# class PySide2.Qt3DInput.Qt3DInput.QInputChord:
- "PySide2.Qt3DInput.Qt3DInput.QInputChord.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QInputChord.addChord": ('PySide2.Qt3DInput.Qt3DInput.QAbstractActionInput',),
- "PySide2.Qt3DInput.Qt3DInput.QInputChord.chords": (),
- "PySide2.Qt3DInput.Qt3DInput.QInputChord.removeChord": ('PySide2.Qt3DInput.Qt3DInput.QAbstractActionInput',),
- "PySide2.Qt3DInput.Qt3DInput.QInputChord.setTimeout": ('int',),
- "PySide2.Qt3DInput.Qt3DInput.QInputChord.timeout": (),
-# class PySide2.Qt3DInput.Qt3DInput.QInputSequence:
- "PySide2.Qt3DInput.Qt3DInput.QInputSequence.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QInputSequence.addSequence": ('PySide2.Qt3DInput.Qt3DInput.QAbstractActionInput',),
- "PySide2.Qt3DInput.Qt3DInput.QInputSequence.buttonInterval": (),
- "PySide2.Qt3DInput.Qt3DInput.QInputSequence.removeSequence": ('PySide2.Qt3DInput.Qt3DInput.QAbstractActionInput',),
- "PySide2.Qt3DInput.Qt3DInput.QInputSequence.sequences": (),
- "PySide2.Qt3DInput.Qt3DInput.QInputSequence.setButtonInterval": ('int',),
- "PySide2.Qt3DInput.Qt3DInput.QInputSequence.setTimeout": ('int',),
- "PySide2.Qt3DInput.Qt3DInput.QInputSequence.timeout": (),
-# class PySide2.Qt3DInput.Qt3DInput.QInputSettings:
- "PySide2.Qt3DInput.Qt3DInput.QInputSettings.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QInputSettings.eventSource": (),
- "PySide2.Qt3DInput.Qt3DInput.QInputSettings.setEventSource": ('PySide2.QtCore.QObject',),
-# class PySide2.Qt3DInput.Qt3DInput.QKeyEvent:
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.__init__": ('PySide2.QtCore.QEvent.Type', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'str', 'bool', 'int'),
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.count": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.isAccepted": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.isAutoRepeat": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.key": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.matches": ('PySide2.QtGui.QKeySequence.StandardKey',),
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.modifiers": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.nativeScanCode": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.setAccepted": ('bool',),
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.text": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.type": (),
-# class PySide2.Qt3DInput.Qt3DInput.QKeyboardDevice:
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardDevice.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardDevice.activeInput": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardDevice.axisCount": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardDevice.axisIdentifier": ('str',),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardDevice.axisNames": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardDevice.buttonCount": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardDevice.buttonIdentifier": ('str',),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardDevice.buttonNames": (),
-# class PySide2.Qt3DInput.Qt3DInput.QKeyboardHandler:
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardHandler.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardHandler.focus": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardHandler.setFocus": ('bool',),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardHandler.setSourceDevice": ('PySide2.Qt3DInput.Qt3DInput.QKeyboardDevice',),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardHandler.sourceDevice": (),
-# class PySide2.Qt3DInput.Qt3DInput.QLogicalDevice:
- "PySide2.Qt3DInput.Qt3DInput.QLogicalDevice.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QLogicalDevice.actions": (),
- "PySide2.Qt3DInput.Qt3DInput.QLogicalDevice.addAction": ('PySide2.Qt3DInput.Qt3DInput.QAction',),
- "PySide2.Qt3DInput.Qt3DInput.QLogicalDevice.addAxis": ('PySide2.Qt3DInput.Qt3DInput.QAxis',),
- "PySide2.Qt3DInput.Qt3DInput.QLogicalDevice.axes": (),
- "PySide2.Qt3DInput.Qt3DInput.QLogicalDevice.removeAction": ('PySide2.Qt3DInput.Qt3DInput.QAction',),
- "PySide2.Qt3DInput.Qt3DInput.QLogicalDevice.removeAxis": ('PySide2.Qt3DInput.Qt3DInput.QAxis',),
-# class PySide2.Qt3DInput.Qt3DInput.QMouseDevice:
-# class PySide2.Qt3DInput.Qt3DInput.QMouseDevice.Axis:
- "PySide2.Qt3DInput.Qt3DInput.QMouseDevice.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QMouseDevice.axisCount": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseDevice.axisIdentifier": ('str',),
- "PySide2.Qt3DInput.Qt3DInput.QMouseDevice.axisNames": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseDevice.buttonCount": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseDevice.buttonIdentifier": ('str',),
- "PySide2.Qt3DInput.Qt3DInput.QMouseDevice.buttonNames": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseDevice.sensitivity": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseDevice.setSensitivity": ('float',),
-# class PySide2.Qt3DInput.Qt3DInput.QMouseEvent:
-# class PySide2.Qt3DInput.Qt3DInput.QMouseEvent.Buttons:
-# class PySide2.Qt3DInput.Qt3DInput.QMouseEvent.Modifiers:
- "PySide2.Qt3DInput.Qt3DInput.QMouseEvent.button": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseEvent.buttons": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseEvent.isAccepted": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseEvent.modifiers": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseEvent.setAccepted": ('bool',),
- "PySide2.Qt3DInput.Qt3DInput.QMouseEvent.type": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseEvent.wasHeld": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseEvent.x": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseEvent.y": (),
-# class PySide2.Qt3DInput.Qt3DInput.QMouseHandler:
- "PySide2.Qt3DInput.Qt3DInput.QMouseHandler.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QMouseHandler.containsMouse": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseHandler.setContainsMouse": ('bool',),
- "PySide2.Qt3DInput.Qt3DInput.QMouseHandler.setSourceDevice": ('PySide2.Qt3DInput.Qt3DInput.QMouseDevice',),
- "PySide2.Qt3DInput.Qt3DInput.QMouseHandler.sourceDevice": (),
-# class PySide2.Qt3DInput.Qt3DInput.QWheelEvent:
-# class PySide2.Qt3DInput.Qt3DInput.QWheelEvent.Buttons:
-# class PySide2.Qt3DInput.Qt3DInput.QWheelEvent.Modifiers:
- "PySide2.Qt3DInput.Qt3DInput.QWheelEvent.angleDelta": (),
- "PySide2.Qt3DInput.Qt3DInput.QWheelEvent.buttons": (),
- "PySide2.Qt3DInput.Qt3DInput.QWheelEvent.isAccepted": (),
- "PySide2.Qt3DInput.Qt3DInput.QWheelEvent.modifiers": (),
- "PySide2.Qt3DInput.Qt3DInput.QWheelEvent.setAccepted": ('bool',),
- "PySide2.Qt3DInput.Qt3DInput.QWheelEvent.type": (),
- "PySide2.Qt3DInput.Qt3DInput.QWheelEvent.x": (),
- "PySide2.Qt3DInput.Qt3DInput.QWheelEvent.y": (),
- }) if "PySide2.Qt3DInput" in sys.modules else None
-# Module PySide2.Qt3DLogic
-sig_dict.update({
-# class PySide2.Qt3DLogic.Qt3DLogic:
-# class PySide2.Qt3DLogic.Qt3DLogic.QFrameAction:
- "PySide2.Qt3DLogic.Qt3DLogic.QFrameAction.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DLogic.Qt3DLogic.QLogicAspect:
- "PySide2.Qt3DLogic.Qt3DLogic.QLogicAspect.__init__": ('PySide2.QtCore.QObject',),
- }) if "PySide2.Qt3DLogic" in sys.modules else None
-# Module PySide2.Qt3DAnimation
-sig_dict.update({
-# class PySide2.Qt3DAnimation.Qt3DAnimation:
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation:
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation.AnimationType:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation.animationName": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation.animationType": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation.duration": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation.position": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation.setAnimationName": ('str',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation.setDuration": ('float',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation.setPosition": ('float',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimationClip:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimationClip.duration": (),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractChannelMapping:
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator:
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.Loops:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.clock": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.isRunning": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.loopCount": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.normalizedTime": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.setClock": ('PySide2.Qt3DAnimation.Qt3DAnimation.QClock',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.setLoopCount": ('int',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.setNormalizedTime": ('float',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.setRunning": ('bool',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.start": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.stop": (),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipBlendNode:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipBlendNode.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAdditiveClipBlend:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAdditiveClipBlend.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAdditiveClipBlend.additiveClip": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAdditiveClipBlend.additiveFactor": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAdditiveClipBlend.baseClip": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAdditiveClipBlend.setAdditiveClip": ('PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipBlendNode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAdditiveClipBlend.setAdditiveFactor": ('float',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAdditiveClipBlend.setBaseClip": ('PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipBlendNode',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationAspect:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationAspect.__init__": ('PySide2.QtCore.QObject',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationCallback:
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationCallback.Flag:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationCallback.__init__": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationCallback.valueChanged": ('typing.Any',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationClip:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationClip.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationClipLoader:
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationClipLoader.Status:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationClipLoader.__init__": [('PySide2.Qt3DCore.Qt3DCore.QNode',), ('PySide2.QtCore.QUrl', 'PySide2.Qt3DCore.Qt3DCore.QNode')],
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationClipLoader.setSource": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationClipLoader.source": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationClipLoader.status": (),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.activeAnimationGroup": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.addAnimationGroup": ('PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.animationGroupList": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.entity": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.getAnimationIndex": ('str',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.getGroup": ('int',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.position": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.positionOffset": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.positionScale": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.recursive": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.removeAnimationGroup": ('PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.setActiveAnimationGroup": ('int',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.setAnimationGroups": ('typing.List',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.setEntity": ('PySide2.Qt3DCore.Qt3DCore.QEntity',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.setPosition": ('float',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.setPositionOffset": ('float',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.setPositionScale": ('float',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.setRecursive": ('bool',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup.addAnimation": ('PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup.animationList": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup.duration": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup.name": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup.position": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup.removeAnimation": ('PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup.setAnimations": ('typing.List',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup.setName": ('str',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup.setPosition": ('float',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QBlendedClipAnimator:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QBlendedClipAnimator.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QBlendedClipAnimator.blendTree": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QBlendedClipAnimator.setBlendTree": ('PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipBlendNode',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QClipAnimator:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QClipAnimator.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QClipAnimator.clip": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QClipAnimator.setClip": ('PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimationClip',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QClock:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QClock.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QClock.playbackRate": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QClock.setPlaybackRate": ('float',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame:
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.InterpolationType:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.__init__": [(), ('PySide2.QtGui.QVector2D',), ('PySide2.QtGui.QVector2D', 'PySide2.QtGui.QVector2D', 'PySide2.QtGui.QVector2D')],
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.coordinates": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.interpolationType": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.leftControlPoint": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.rightControlPoint": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.setCoordinates": ('PySide2.QtGui.QVector2D',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.setInterpolationType": ('PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.InterpolationType',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.setLeftControlPoint": ('PySide2.QtGui.QVector2D',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.setRightControlPoint": ('PySide2.QtGui.QVector2D',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation:
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.RepeatMode:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.addKeyframe": ('PySide2.Qt3DCore.Qt3DCore.QTransform',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.easing": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.endMode": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.framePositions": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.keyframeList": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.removeKeyframe": ('PySide2.Qt3DCore.Qt3DCore.QTransform',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.setEasing": ('PySide2.QtCore.QEasingCurve',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.setEndMode": ('PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.RepeatMode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.setFramePositions": ('typing.List',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.setKeyframes": ('typing.List',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.setStartMode": ('PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.RepeatMode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.setTarget": ('PySide2.Qt3DCore.Qt3DCore.QTransform',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.setTargetName": ('str',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.startMode": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.target": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.targetName": (),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QLerpClipBlend:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QLerpClipBlend.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QLerpClipBlend.blendFactor": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QLerpClipBlend.endClip": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QLerpClipBlend.setBlendFactor": ('float',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QLerpClipBlend.setEndClip": ('PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipBlendNode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QLerpClipBlend.setStartClip": ('PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipBlendNode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QLerpClipBlend.startClip": (),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget.addAttribute": ('PySide2.Qt3DRender.Qt3DRender.QAttribute',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget.attributeList": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget.attributeNames": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget.fromGeometry": ('PySide2.Qt3DRender.Qt3DRender.QGeometry', 'typing.Sequence'),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget.removeAttribute": ('PySide2.Qt3DRender.Qt3DRender.QAttribute',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget.setAttributes": ('typing.List',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation:
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.Method:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.addMorphTarget": ('PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.easing": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.getWeights": ('int',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.interpolator": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.method": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.morphTargetList": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.removeMorphTarget": ('PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.setEasing": ('PySide2.QtCore.QEasingCurve',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.setMethod": ('PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.Method',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.setMorphTargets": ('typing.List',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.setTarget": ('PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.setTargetName": ('str',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.setTargetPositions": ('typing.List',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.setWeights": ('int', 'typing.List'),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.target": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.targetName": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.targetPositions": (),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QSkeletonMapping:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QSkeletonMapping.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QSkeletonMapping.setSkeleton": ('PySide2.Qt3DCore.Qt3DCore.QAbstractSkeleton',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QSkeletonMapping.skeleton": (),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.addMorphTarget": ('PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.interpolator": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.morphTargetList": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.removeMorphTarget": ('PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.setMorphTargets": ('typing.List',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.setTarget": ('PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.setTargetName": ('str',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.setTargetPositions": ('typing.List',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.target": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.targetName": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.targetPositions": (),
- }) if "PySide2.Qt3DAnimation" in sys.modules else None
-# Module PySide2.Qt3DExtras
-sig_dict.update({
-# class PySide2.Qt3DExtras.Qt3DExtras:
-# class PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController:
-# class PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.InputState:
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.InputState.__init__": [(), ('PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.InputState',)],
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.InputState.__copy__": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.acceleration": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.camera": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.deceleration": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.linearSpeed": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.lookSpeed": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.setAcceleration": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.setCamera": ('PySide2.Qt3DRender.Qt3DRender.QCamera',),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.setDeceleration": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.setLinearSpeed": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.setLookSpeed": ('float',),
-# class PySide2.Qt3DExtras.Qt3DExtras.QAbstractSpriteSheet:
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractSpriteSheet.currentIndex": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractSpriteSheet.setCurrentIndex": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractSpriteSheet.setTexture": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractSpriteSheet.texture": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractSpriteSheet.textureTransform": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry:
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.bottomRadius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.hasBottomEndcap": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.hasTopEndcap": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.indexAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.length": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.normalAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.positionAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.rings": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.setBottomRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.setHasBottomEndcap": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.setHasTopEndcap": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.setLength": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.setRings": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.setSlices": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.setTopRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.slices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.texCoordAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.topRadius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.updateIndices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.updateVertices": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QConeMesh:
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.bottomRadius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.hasBottomEndcap": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.hasTopEndcap": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.length": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.rings": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setBottomRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setFirstInstance": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setGeometry": ('PySide2.Qt3DRender.Qt3DRender.QGeometry',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setHasBottomEndcap": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setHasTopEndcap": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setIndexOffset": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setInstanceCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setLength": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setPrimitiveRestartEnabled": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setPrimitiveType": ('PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.PrimitiveType',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setRestartIndexValue": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setRings": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setSlices": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setTopRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setVertexCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.slices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.topRadius": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry:
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.indexAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.normalAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.positionAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.setXExtent": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.setXYMeshResolution": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.setXZMeshResolution": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.setYExtent": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.setYZMeshResolution": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.setZExtent": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.tangentAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.texCoordAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.updateIndices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.updateVertices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.xExtent": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.xyMeshResolution": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.xzMeshResolution": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.yExtent": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.yzMeshResolution": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.zExtent": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh:
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setFirstInstance": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setGeometry": ('PySide2.Qt3DRender.Qt3DRender.QGeometry',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setIndexOffset": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setInstanceCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setPrimitiveRestartEnabled": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setPrimitiveType": ('PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.PrimitiveType',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setRestartIndexValue": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setVertexCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setXExtent": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setXYMeshResolution": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setXZMeshResolution": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setYExtent": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setYZMeshResolution": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setZExtent": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.xExtent": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.xyMeshResolution": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.xzMeshResolution": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.yExtent": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.yzMeshResolution": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.zExtent": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry:
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.indexAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.length": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.normalAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.positionAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.radius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.rings": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.setLength": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.setRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.setRings": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.setSlices": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.slices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.texCoordAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.updateIndices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.updateVertices": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh:
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.length": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.radius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.rings": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setFirstInstance": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setGeometry": ('PySide2.Qt3DRender.Qt3DRender.QGeometry',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setIndexOffset": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setInstanceCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setLength": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setPrimitiveRestartEnabled": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setPrimitiveType": ('PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.PrimitiveType',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setRestartIndexValue": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setRings": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setSlices": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setVertexCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.slices": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.ambient": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.diffuse": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.setAmbient": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.setDiffuse": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.setShininess": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.setSpecular": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.setTextureScale": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.shininess": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.specular": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.textureScale": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.ambient": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.diffuse": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.setAmbient": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.setDiffuse": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.setShininess": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.setSpecular": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.setTextureScale": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.shininess": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.specular": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.textureScale": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.ambient": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.diffuse": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.isAlphaBlendingEnabled": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.normal": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.setAlphaBlendingEnabled": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.setAmbient": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.setDiffuse": ('typing.Any',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.setNormal": ('typing.Any',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.setShininess": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.setSpecular": ('typing.Any',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.setTextureScale": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.shininess": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.specular": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.textureScale": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry:
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry.extrusionLength": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry.font": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry.indexAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry.normalAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry.positionAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry.setDepth": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry.setText": ('str',),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry.text": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextMesh:
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextMesh.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextMesh.depth": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextMesh.font": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextMesh.setDepth": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextMesh.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextMesh.setText": ('str',),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextMesh.text": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QFirstPersonCameraController:
- "PySide2.Qt3DExtras.Qt3DExtras.QFirstPersonCameraController.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer:
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.buffersToClear": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.camera": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.clearColor": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.externalRenderTargetSize": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.gamma": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.isFrustumCullingEnabled": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.setBuffersToClear": ('PySide2.Qt3DRender.Qt3DRender.QClearBuffers.BufferType',),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.setCamera": ('PySide2.Qt3DCore.Qt3DCore.QEntity',),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.setClearColor": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.setExternalRenderTargetSize": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.setFrustumCullingEnabled": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.setGamma": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.setSurface": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.setViewportRect": ('PySide2.QtCore.QRectF',),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.surface": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.viewportRect": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.alpha": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.beta": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.cool": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.diffuse": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.setAlpha": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.setBeta": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.setCool": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.setDiffuse": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.setShininess": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.setSpecular": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.setWarm": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.shininess": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.specular": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.warm": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.ambientOcclusion": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.baseColor": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.metalness": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.normal": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.roughness": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.setAmbientOcclusion": ('typing.Any',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.setBaseColor": ('typing.Any',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.setMetalness": ('typing.Any',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.setNormal": ('typing.Any',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.setRoughness": ('typing.Any',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.setTextureScale": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.textureScale": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.ambient": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.diffuse": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.interpolator": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.setAmbient": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.setDiffuse": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.setInterpolator": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.setShininess": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.setSpecular": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.shininess": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.specular": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.ambient": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.diffuse": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.normal": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.setAmbient": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.setDiffuse": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.setNormal": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.setShininess": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.setSpecular": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.setTextureScale": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.shininess": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.specular": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.textureScale": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.ambient": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.diffuse": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.normal": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.setAmbient": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.setDiffuse": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.setNormal": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.setShininess": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.setSpecular": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.setTextureScale": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.shininess": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.specular": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.textureScale": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QOrbitCameraController:
- "PySide2.Qt3DExtras.Qt3DExtras.QOrbitCameraController.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QOrbitCameraController.setZoomInLimit": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QOrbitCameraController.zoomInLimit": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QPerVertexColorMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QPerVertexColorMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.alpha": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.ambient": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.blendFunctionArg": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.destinationAlphaArg": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.destinationRgbArg": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.diffuse": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.setAlpha": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.setAmbient": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.setBlendFunctionArg": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquation.BlendFunction',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.setDestinationAlphaArg": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.setDestinationRgbArg": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.setDiffuse": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.setShininess": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.setSourceAlphaArg": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.setSourceRgbArg": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.setSpecular": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.shininess": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.sourceAlphaArg": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.sourceRgbArg": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.specular": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QPhongMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongMaterial.ambient": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongMaterial.diffuse": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongMaterial.setAmbient": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongMaterial.setDiffuse": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongMaterial.setShininess": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongMaterial.setSpecular": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongMaterial.shininess": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongMaterial.specular": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry:
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.height": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.indexAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.mirrored": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.normalAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.positionAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.resolution": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.setHeight": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.setMirrored": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.setResolution": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.setWidth": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.tangentAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.texCoordAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.updateIndices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.updateVertices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.width": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh:
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.height": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.meshResolution": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.mirrored": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setFirstInstance": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setGeometry": ('PySide2.Qt3DRender.Qt3DRender.QGeometry',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setHeight": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setIndexOffset": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setInstanceCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setMeshResolution": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setMirrored": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setPrimitiveRestartEnabled": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setPrimitiveType": ('PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.PrimitiveType',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setRestartIndexValue": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setVertexCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setWidth": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.width": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QSkyboxEntity:
- "PySide2.Qt3DExtras.Qt3DExtras.QSkyboxEntity.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSkyboxEntity.baseName": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSkyboxEntity.extension": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSkyboxEntity.isGammaCorrectEnabled": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSkyboxEntity.setBaseName": ('str',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSkyboxEntity.setExtension": ('str',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSkyboxEntity.setGammaCorrectEnabled": ('bool',),
-# class PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry:
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.generateTangents": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.indexAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.normalAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.positionAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.radius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.rings": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.setGenerateTangents": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.setRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.setRings": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.setSlices": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.slices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.tangentAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.texCoordAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.updateIndices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.updateVertices": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh:
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.generateTangents": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.radius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.rings": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setFirstInstance": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setGenerateTangents": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setGeometry": ('PySide2.Qt3DRender.Qt3DRender.QGeometry',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setIndexOffset": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setPrimitiveRestartEnabled": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setPrimitiveType": ('PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.PrimitiveType',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setRestartIndexValue": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setRings": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setSlices": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setVertexCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.slices": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QSpriteGrid:
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteGrid.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteGrid.columns": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteGrid.rows": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteGrid.setColumns": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteGrid.setRows": ('int',),
-# class PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheet:
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheet.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheet.addSprite": [('PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem',), ('int', 'int', 'int', 'int')],
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheet.removeSprite": ('PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheet.setSprites": ('typing.List',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheet.sprites": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem:
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem.height": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem.setHeight": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem.setWidth": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem.setX": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem.setY": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem.width": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem.x": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem.y": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity:
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.color": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.font": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.height": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.setHeight": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.setText": ('str',),
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.setWidth": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.text": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.width": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QTextureMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QTextureMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTextureMaterial.isAlphaBlendingEnabled": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTextureMaterial.setAlphaBlendingEnabled": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTextureMaterial.setTexture": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTextureMaterial.setTextureOffset": ('PySide2.QtGui.QVector2D',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTextureMaterial.setTextureTransform": ('PySide2.QtGui.QMatrix3x3',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTextureMaterial.texture": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTextureMaterial.textureOffset": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTextureMaterial.textureTransform": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry:
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.indexAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.minorRadius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.normalAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.positionAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.radius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.rings": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.setMinorRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.setRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.setRings": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.setSlices": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.slices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.texCoordAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.updateIndices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.updateVertices": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh:
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.minorRadius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.radius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.rings": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setFirstInstance": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setGeometry": ('PySide2.Qt3DRender.Qt3DRender.QGeometry',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setIndexOffset": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setInstanceCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setMinorRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setPrimitiveRestartEnabled": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setPrimitiveType": ('PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.PrimitiveType',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setRestartIndexValue": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setRings": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setSlices": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setVertexCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.slices": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow:
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.__init__": ('PySide2.QtGui.QScreen',),
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.activeFrameGraph": (),
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.camera": (),
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.defaultFrameGraph": (),
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.event": ('PySide2.QtCore.QEvent',),
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.registerAspect": [('PySide2.Qt3DCore.Qt3DCore.QAbstractAspect',), ('str',)],
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.renderSettings": (),
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.setActiveFrameGraph": ('PySide2.Qt3DRender.Qt3DRender.QFrameGraphNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.setRootEntity": ('PySide2.Qt3DCore.Qt3DCore.QEntity',),
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.showEvent": ('PySide2.QtGui.QShowEvent',),
- }) if "PySide2.Qt3DExtras" in sys.modules else None
-# Module testbinding
-sig_dict.update({
-# class testbinding.Enum1:
-# class testbinding.IntValue:
- "testbinding.IntValue.__init__": [(), ('int',), ('testbinding.IntValue',)],
- "testbinding.IntValue.__copy__": (),
-# class testbinding.PySideCPP:
-# class testbinding.PySideCPP.TestObject2WithNamespace:
- "testbinding.PySideCPP.TestObject2WithNamespace.__init__": ('PySide2.QtCore.QObject',),
- "testbinding.PySideCPP.TestObject2WithNamespace.__repr__": (),
- "testbinding.PySideCPP.TestObject2WithNamespace.name": (),
-# class testbinding.PySideCPP.TestObjectWithNamespace:
- "testbinding.PySideCPP.TestObjectWithNamespace.__init__": ('PySide2.QtCore.QObject',),
- "testbinding.PySideCPP.TestObjectWithNamespace.callSignal": ('testbinding.PySideCPP.TestObjectWithNamespace',),
- "testbinding.PySideCPP.TestObjectWithNamespace.callSignalWithNamespace": ('testbinding.PySideCPP.TestObjectWithNamespace',),
- "testbinding.PySideCPP.TestObjectWithNamespace.callSignalWithTypedef": ('int',),
- "testbinding.PySideCPP.TestObjectWithNamespace.name": (),
-# class testbinding.TestObject:
- "testbinding.TestObject.__init__": ('int', 'PySide2.QtCore.QObject'),
- "testbinding.TestObject.addChild": ('PySide2.QtCore.QObject',),
- "testbinding.TestObject.checkType": ('typing.Any',),
- "testbinding.TestObject.createApp": (),
- "testbinding.TestObject.emitIdValueSignal": (),
- "testbinding.TestObject.emitSignalWithDefaultValue_bool": (),
- "testbinding.TestObject.emitSignalWithDefaultValue_void": (),
- "testbinding.TestObject.emitSignalWithTypedefValue": ('int',),
- "testbinding.TestObject.emitStaticMethodDoubleSignal": (),
- "testbinding.TestObject.idValue": (),
- "testbinding.TestObject.staticMethodDouble": ('int',),
-# class testbinding.TestObjectWithoutNamespace:
-# class testbinding.TestObjectWithoutNamespace.Enum2:
- "testbinding.TestObjectWithoutNamespace.__init__": ('PySide2.QtCore.QObject',),
- "testbinding.TestObjectWithoutNamespace.callSignal": ('testbinding.PySideCPP2.TestObjectWithoutNamespace',),
- "testbinding.TestObjectWithoutNamespace.callSignalWithNamespace": ('testbinding.PySideCPP2.TestObjectWithoutNamespace',),
- "testbinding.TestObjectWithoutNamespace.callSignalWithTypedef": ('int',),
- "testbinding.TestObjectWithoutNamespace.name": (),
-# class testbinding.TestView:
- "testbinding.TestView.__init__": ('PySide2.QtCore.QAbstractListModel', 'PySide2.QtCore.QObject'),
- "testbinding.TestView.getData": (),
- "testbinding.TestView.getEditorWidgetFromItemDelegate": (),
- "testbinding.TestView.model": (),
- "testbinding.TestView.setItemDelegate": ('PySide2.QtWidgets.QAbstractItemDelegate',),
- "testbinding.TestView.getHiddenObject": (),
- }) if "testbinding" in sys.modules else None
-# Module Shiboken
-sig_dict.update({
-# class Shiboken.VoidPtr:
- }) if "Shiboken" in sys.modules else None
-# Module minimal
-sig_dict.update({
-# class minimal.ListUser:
- "minimal.ListUser.__init__": [(), ('minimal.ListUser',)],
- "minimal.ListUser.__copy__": (),
- "minimal.ListUser.callCreateIntList": ('int',),
- "minimal.ListUser.callCreateListOfIntLists": ('int',),
- "minimal.ListUser.callCreateMinBoolList": ('bool', 'bool'),
- "minimal.ListUser.callCreateObjList": ('minimal.Obj', 'minimal.Obj'),
- "minimal.ListUser.callCreateValList": ('int',),
- "minimal.ListUser.callOredMinBoolList": ('typing.List',),
- "minimal.ListUser.callSumIntList": ('typing.List',),
- "minimal.ListUser.callSumListOfIntLists": ('typing.List',),
- "minimal.ListUser.callSumObjList": ('typing.List',),
- "minimal.ListUser.callSumValList": ('typing.List',),
- "minimal.ListUser.createIntList": ('int',),
- "minimal.ListUser.createListOfIntLists": ('int',),
- "minimal.ListUser.createMinBoolList": ('bool', 'bool'),
- "minimal.ListUser.createObjList": ('minimal.Obj', 'minimal.Obj'),
- "minimal.ListUser.createValList": ('int',),
- "minimal.ListUser.oredMinBoolList": ('typing.List',),
- "minimal.ListUser.sumIntList": ('typing.List',),
- "minimal.ListUser.sumListOfIntLists": ('typing.List',),
- "minimal.ListUser.sumObjList": ('typing.List',),
- "minimal.ListUser.sumValList": ('typing.List',),
-# class minimal.MinBoolUser:
- "minimal.MinBoolUser.__init__": [(), ('minimal.MinBoolUser',)],
- "minimal.MinBoolUser.__copy__": (),
- "minimal.MinBoolUser.callInvertedMinBool": (),
- "minimal.MinBoolUser.invertedMinBool": (),
- "minimal.MinBoolUser.minBool": (),
- "minimal.MinBoolUser.setMinBool": ('bool',),
-# class minimal.Obj:
- "minimal.Obj.__init__": ('int',),
- "minimal.Obj.callPassObjectType": ('minimal.Obj',),
- "minimal.Obj.callPassObjectTypeReference": ('minimal.Obj',),
- "minimal.Obj.callVirtualMethod": ('int',),
- "minimal.Obj.objId": (),
- "minimal.Obj.passObjectType": ('minimal.Obj',),
- "minimal.Obj.passObjectTypeReference": ('minimal.Obj',),
- "minimal.Obj.setObjId": ('int',),
- "minimal.Obj.virtualMethod": ('int',),
-# class minimal.Val:
-# class minimal.Val.ValEnum:
- "minimal.Val.__init__": [('int',), ('minimal.Val',)],
- "minimal.Val.__copy__": (),
- "minimal.Val.callPassValueType": ('minimal.Val',),
- "minimal.Val.callPassValueTypePointer": ('minimal.Val',),
- "minimal.Val.callPassValueTypeReference": ('minimal.Val',),
- "minimal.Val.oneOrTheOtherEnumValue": ('minimal.Val.ValEnum',),
- "minimal.Val.passValueType": ('minimal.Val',),
- "minimal.Val.passValueTypePointer": ('minimal.Val',),
- "minimal.Val.passValueTypeReference": ('minimal.Val',),
- "minimal.Val.setValId": ('int',),
- "minimal.Val.valId": (),
- "minimal.Val.arrayFunc": ('typing.List',),
- "minimal.Val.arrayFuncInt": ('typing.List',),
- "minimal.Val.arrayFuncIntReturn": ('int',),
- "minimal.Val.arrayFuncIntReturnTypedef": ('int',),
- "minimal.Val.arrayFuncIntTypedef": ('typing.List',),
- "minimal.Val.arrayFuncReturn": ('int',),
- "minimal.Val.arrayFuncReturnTypedef": ('int',),
- "minimal.Val.arrayFuncTypedef": ('typing.List',),
- }) if "minimal" in sys.modules else None
-# Module sample
-sig_dict.update({
-# class sample.Abstract:
-# class sample.Abstract.PrintFormat:
-# class sample.Abstract.Type:
- "sample.Abstract.__init__": ('int',),
- "sample.Abstract.callPureVirtual": (),
- "sample.Abstract.callUnpureVirtual": (),
- "sample.Abstract.callVirtualGettingEnum": ('sample.Abstract.PrintFormat',),
- "sample.Abstract.className": (),
- "sample.Abstract.createObject": (),
- "sample.Abstract.getObjectId": ('sample.Abstract',),
- "sample.Abstract.id_": (),
- "sample.Abstract.pureVirtual": (),
- "sample.Abstract.pureVirtualReturningVoidPtr": (),
- "sample.Abstract.returnAnEnum": (),
- "sample.Abstract.show": ('sample.Abstract.PrintFormat',),
- "sample.Abstract.type": (),
- "sample.Abstract.unpureVirtual": (),
- "sample.Abstract.virtualGettingAEnum": ('sample.Abstract.PrintFormat',),
-# class sample.AbstractModifications:
- "sample.AbstractModifications.__init__": (),
- "sample.AbstractModifications.invert": ('bool',),
- "sample.AbstractModifications.pointlessPureVirtualMethod": (),
-# class sample.ArrayModifyTest:
- "sample.ArrayModifyTest.__init__": [(), ('sample.ArrayModifyTest',)],
- "sample.ArrayModifyTest.__copy__": (),
- "sample.ArrayModifyTest.sumIntArray": ('int', 'typing.Sequence'),
-# class sample.Base1:
- "sample.Base1.__init__": (),
- "sample.Base1.base1Method": (),
- "sample.Base1.publicMethod": (),
-# class sample.Base2:
- "sample.Base2.__init__": (),
- "sample.Base2.base2Method": (),
-# class sample.Base3:
- "sample.Base3.__init__": ('int',),
- "sample.Base3.base3Method": (),
-# class sample.Base4:
- "sample.Base4.__init__": (),
- "sample.Base4.base4Method": (),
-# class sample.Base5:
- "sample.Base5.__init__": (),
- "sample.Base5.base5Method": (),
-# class sample.Base6:
- "sample.Base6.__init__": (),
- "sample.Base6.base6Method": (),
-# class sample.BlackBox:
- "sample.BlackBox.__init__": [(), ('sample.BlackBox',)],
- "sample.BlackBox.__copy__": (),
- "sample.BlackBox.disposeObjectType": ('int',),
- "sample.BlackBox.disposePoint": ('int',),
- "sample.BlackBox.keepObjectType": ('object',),
- "sample.BlackBox.keepPoint": ('typing.Tuple',),
- "sample.BlackBox.objects": (),
- "sample.BlackBox.points": (),
- "sample.BlackBox.referenceToObjectPointer": ('object',),
- "sample.BlackBox.referenceToValuePointer": ('typing.Tuple',),
- "sample.BlackBox.retrieveObjectType": ('int',),
- "sample.BlackBox.retrievePoint": ('int',),
-# class sample.Bucket:
- "sample.Bucket.__init__": (),
- "sample.Bucket.callVirtualBlockerMethodButYouDontKnowThis": (),
- "sample.Bucket.empty": (),
- "sample.Bucket.lock": (),
- "sample.Bucket.locked": (),
- "sample.Bucket.pop": (),
- "sample.Bucket.push": ('int',),
- "sample.Bucket.unlock": (),
- "sample.Bucket.virtualBlockerMethod": (),
-# class sample.ByteArray:
- "sample.ByteArray.__init__": [(), ('int',), ('sample.ByteArray',)],
- "sample.ByteArray.__add__": [('bytes',), ('int',), ('sample.ByteArray',), ('str',)],
- "sample.ByteArray.__copy__": (),
- "sample.ByteArray.__iadd__": [('int',), ('sample.ByteArray',)],
- "sample.ByteArray.__repr__": (),
- "sample.ByteArray.__str__": (),
- "sample.ByteArray.append": [('int',), ('sample.ByteArray',)],
- "sample.ByteArray.at": ('int',),
- "sample.ByteArray.data": (),
- "sample.ByteArray.size": (),
-# class sample.CVListUser:
- "sample.CVListUser.__init__": [(), ('sample.CVListUser',)],
- "sample.CVListUser.__copy__": (),
- "sample.CVListUser.consume": ('typing.List',),
- "sample.CVListUser.produce": (),
-# class sample.CVValueType:
- "sample.CVValueType.__copy__": (),
-# class sample.ClassWithFunctionPointer:
- "sample.ClassWithFunctionPointer.__init__": [(), ('sample.ClassWithFunctionPointer',)],
- "sample.ClassWithFunctionPointer.__copy__": (),
- "sample.ClassWithFunctionPointer.doNothing": ('int',),
-# class sample.Collector:
- "sample.Collector.__init__": (),
- "sample.Collector.__lshift__": [('Missing("sample.ObjectType.Identifier")',), ('object',), ('sample.IntWrapper',)],
- "sample.Collector.clear": (),
- "sample.Collector.items": (),
- "sample.Collector.size": (),
-# class sample.Color:
- "sample.Color.__init__": [(), ('int',), ('sample.Color',), ('sample.SampleNamespace.InValue',)],
- "sample.Color.__copy__": (),
- "sample.Color.isNull": (),
-# class sample.CtorConvRule:
- "sample.CtorConvRule.__init__": [('int',), ('sample.CtorConvRule',)],
- "sample.CtorConvRule.__copy__": (),
- "sample.CtorConvRule.dummyVirtualMethod": (),
- "sample.CtorConvRule.value": (),
-# class sample.Data:
-# class sample.Data.Field:
- "sample.Data.__init__": [('sample.Data',), ('sample.Data.Field', 'str')],
- "sample.Data.__and__": ('sample.Union',),
- "sample.Data.__copy__": (),
- "sample.Data.field": (),
- "sample.Data.value": (),
-# class sample.Derived:
-# class sample.Derived.OtherOverloadedFuncEnum:
-# class sample.Derived.SomeInnerClass:
- "sample.Derived.SomeInnerClass.__init__": [(), ('sample.Derived.SomeInnerClass',)],
- "sample.Derived.SomeInnerClass.__add__": ('sample.Derived.SomeInnerClass',),
- "sample.Derived.SomeInnerClass.__copy__": (),
- "sample.Derived.SomeInnerClass.uselessMethod": (),
- "sample.Derived.__init__": ('int',),
- "sample.Derived.className": (),
- "sample.Derived.createObject": (),
- "sample.Derived.defaultValue": ('int',),
- "sample.Derived.getClassName": (),
- "sample.Derived.otherOverloaded": [('int', 'float'), ('int', 'int', 'bool', 'float')],
- "sample.Derived.overloaded": [('float',), ('int', 'int')],
- "sample.Derived.pureVirtual": (),
- "sample.Derived.pureVirtualReturningVoidPtr": (),
- "sample.Derived.returnAnEnum": (),
- "sample.Derived.returnMyParameter": ('sample.Derived.SomeInnerClass',),
- "sample.Derived.singleArgument": ('bool',),
- "sample.Derived.triggerAnotherImpossibleTypeDiscovery": (),
- "sample.Derived.triggerImpossibleTypeDiscovery": (),
- "sample.Derived.type": (),
- "sample.Derived.unpureVirtual": (),
-# class sample.Echo:
- "sample.Echo.__init__": [(), ('sample.Echo',)],
- "sample.Echo.__call__": ('sample.Str', 'int'),
- "sample.Echo.__copy__": (),
- "sample.Echo.__lshift__": [('int',), ('object',), ('sample.Str',)],
- "sample.Echo.doNothingWithConstBool": ('bool',),
- "sample.Echo.echo": ('bytes',),
- "sample.Echo.methodWithNamedArg": ('sample.Str',),
-# class sample.EnumOnNamespace:
-# class sample.Event:
-# class sample.Event.EventType:
-# class sample.Event.EventTypeClass:
- "sample.Event.__init__": [('sample.Event',), ('sample.Event.EventType',)],
- "sample.Event.__copy__": (),
- "sample.Event.eventType": (),
- "sample.Event.setEventType": ('sample.Event.EventType',),
- "sample.Event.setEventTypeByConstRef": ('sample.Event.EventType',),
-# class sample.ExceptionTest:
- "sample.ExceptionTest.__init__": (),
- "sample.ExceptionTest.intThrowInt": ('bool',),
- "sample.ExceptionTest.intThrowStdException": ('bool',),
- "sample.ExceptionTest.voidThrowInt": ('bool',),
- "sample.ExceptionTest.voidThrowStdException": ('bool',),
-# class sample.Expression:
- "sample.Expression.__init__": [('int',), ('sample.Expression',)],
- "sample.Expression.__add__": ('sample.Expression',),
- "sample.Expression.__copy__": (),
- "sample.Expression.__sub__": ('sample.Expression',),
- "sample.Expression.toString": (),
-# class sample.Filter:
- "sample.Filter.__init__": [(), ('sample.Filter',)],
- "sample.Filter.__copy__": (),
-# class sample.FriendOfOnlyCopy:
- "sample.FriendOfOnlyCopy.__init__": [(), ('sample.FriendOfOnlyCopy',)],
- "sample.FriendOfOnlyCopy.__copy__": (),
- "sample.FriendOfOnlyCopy.createListOfOnlyCopy": ('int',),
- "sample.FriendOfOnlyCopy.createOnlyCopy": ('int',),
-# class sample.GlobalEnum:
-# class sample.GlobalOverloadFuncEnum:
-# class sample.HandleHolder:
- "sample.HandleHolder.__init__": ('int',),
- "sample.HandleHolder.compare": ('sample.HandleHolder',),
- "sample.HandleHolder.compare2": ('sample.HandleHolder',),
- "sample.HandleHolder.createHandle": (),
- "sample.HandleHolder.handle": (),
- "sample.HandleHolder.handle2": (),
- "sample.HandleHolder.set": ('int',),
-# class sample.ImplicitBase:
- "sample.ImplicitBase.__init__": [(), ('sample.ImplicitBase',), ('sample.ImplicitTarget',)],
- "sample.ImplicitBase.__copy__": (),
-# class sample.ImplicitConv:
-# class sample.ImplicitConv.CtorEnum:
-# class sample.ImplicitConv.ICOverloadedFuncEnum:
- "sample.ImplicitConv.__init__": [(), ('None',), ('float', 'bool'), ('int',), ('object',), ('sample.ImplicitConv',), ('sample.ImplicitConv.CtorEnum',)],
- "sample.ImplicitConv.__copy__": (),
- "sample.ImplicitConv.ctorEnum": (),
- "sample.ImplicitConv.implicitConvCommon": ('sample.ImplicitConv',),
- "sample.ImplicitConv.implicitConvDefault": ('sample.ImplicitConv',),
- "sample.ImplicitConv.implicitConvOverloading": [('int',), ('sample.ImplicitConv', 'bool'), ('sample.ImplicitConv', 'int'), ('sample.ImplicitConv.CtorEnum',)],
- "sample.ImplicitConv.objId": (),
- "sample.ImplicitConv.value": (),
-# class sample.ImplicitTarget:
- "sample.ImplicitTarget.__init__": [(), ('sample.ImplicitTarget',)],
- "sample.ImplicitTarget.__copy__": (),
-# class sample.InjectCode:
- "sample.InjectCode.__init__": [(), ('sample.InjectCode',)],
- "sample.InjectCode.__copy__": (),
- "sample.InjectCode.arrayMethod": ('int',),
- "sample.InjectCode.callArrayMethod": ('int',),
- "sample.InjectCode.overloadedMethod": [('int', 'bool'), ('int', 'float'), ('int', 'typing.List')],
- "sample.InjectCode.simpleMethod1": ('int', 'int'),
- "sample.InjectCode.simpleMethod2": (),
- "sample.InjectCode.simpleMethod3": ('int', 'typing.List'),
- "sample.InjectCode.sumArrayAndLength": (),
- "sample.InjectCode.virtualMethod": ('int',),
-# class sample.IntArray2:
- "sample.IntArray2.__init__": [('int',), ('sample.IntArray2',), ('typing.Sequence',)],
- "sample.IntArray2.__copy__": (),
- "sample.IntArray2.sum": (),
-# class sample.IntArray3:
- "sample.IntArray3.__init__": [('int',), ('sample.IntArray3',), ('typing.Sequence',)],
- "sample.IntArray3.__copy__": (),
- "sample.IntArray3.sum": (),
-# class sample.IntList:
-# class sample.IntList.CtorEnum:
- "sample.IntList.__init__": [(), ('int',), ('sample.IntList',), ('typing.Sequence',)],
- "sample.IntList.__copy__": (),
- "sample.IntList.append": ('int',),
- "sample.IntList.constructorUsed": (),
-# class sample.IntWrapper:
- "sample.IntWrapper.__init__": [('int',), ('sample.IntWrapper',)],
- "sample.IntWrapper.__copy__": (),
-# class sample.Intersection:
- "sample.Intersection.__init__": [(), ('sample.Data',), ('sample.Intersection',), ('sample.Union',)],
- "sample.Intersection.__and__": ('sample.Intersection',),
- "sample.Intersection.__copy__": (),
- "sample.Intersection.addFilter": ('sample.Filter',),
- "sample.Intersection.filters": (),
-# class sample.ListUser:
-# class sample.ListUser.ListOfSomething:
- "sample.ListUser.__init__": [(), ('sample.ListUser',)],
- "sample.ListUser.__copy__": (),
- "sample.ListUser.callCreateList": (),
- "sample.ListUser.createComplexList": ('complex', 'complex'),
- "sample.ListUser.createList": (),
- "sample.ListUser.getList": (),
- "sample.ListUser.listOfPoints": ('typing.List',),
- "sample.ListUser.multiplyPointList": ('typing.List', 'float'),
- "sample.ListUser.setList": ('typing.List',),
- "sample.ListUser.sumList": ('typing.List',),
-# class sample.MDerived1:
- "sample.MDerived1.__init__": (),
- "sample.MDerived1.base1Method": (),
- "sample.MDerived1.base2Method": (),
- "sample.MDerived1.castToBase1": (),
- "sample.MDerived1.castToBase2": (),
- "sample.MDerived1.mderived1Method": (),
- "sample.MDerived1.publicMethod": (),
- "sample.MDerived1.transformFromBase1": ('sample.Base1',),
- "sample.MDerived1.transformFromBase2": ('sample.Base2',),
-# class sample.MDerived2:
- "sample.MDerived2.__init__": (),
- "sample.MDerived2.base4Method": (),
- "sample.MDerived2.castToBase3": (),
- "sample.MDerived2.castToBase4": (),
- "sample.MDerived2.castToBase5": (),
- "sample.MDerived2.castToBase6": (),
- "sample.MDerived2.mderived2Method": (),
-# class sample.MDerived3:
- "sample.MDerived3.__init__": (),
- "sample.MDerived3.castToBase3": (),
- "sample.MDerived3.castToMDerived1": (),
- "sample.MDerived3.castToMDerived2": (),
- "sample.MDerived3.mderived3Method": (),
-# class sample.MDerived4:
- "sample.MDerived4.__init__": (),
- "sample.MDerived4.castToBase3": (),
- "sample.MDerived4.castToBase4": (),
- "sample.MDerived4.justDummyMethod": (),
- "sample.MDerived4.mderived4Method": (),
-# class sample.MDerived5:
- "sample.MDerived5.__init__": (),
- "sample.MDerived5.castToBase3": (),
- "sample.MDerived5.castToBase4": (),
- "sample.MDerived5.mderived5Method": (),
-# class sample.MapUser:
- "sample.MapUser.__init__": [(), ('sample.MapUser',)],
- "sample.MapUser.__copy__": (),
- "sample.MapUser.callCreateMap": (),
- "sample.MapUser.createMap": (),
- "sample.MapUser.foo": (),
- "sample.MapUser.getMap": (),
- "sample.MapUser.passMapIntValueType": ('typing.Dict',),
- "sample.MapUser.pointerToMap": ('typing.Dict',),
- "sample.MapUser.referenceToMap": ('typing.Dict',),
- "sample.MapUser.setMap": ('typing.Dict',),
- "sample.MapUser.showMap": ('typing.Dict',),
-# class sample.ModelIndex:
- "sample.ModelIndex.__init__": [(), ('sample.ModelIndex',)],
- "sample.ModelIndex.__copy__": (),
- "sample.ModelIndex.getValue": ('sample.ModelIndex',),
- "sample.ModelIndex.setValue": ('int',),
- "sample.ModelIndex.value": (),
-# class sample.Modifications:
-# class sample.Modifications.OverloadedModFunc:
-# class sample.Modifications.TestEnum:
- "sample.Modifications.__init__": (),
- "sample.Modifications.argRemoval0": [('int', 'bool', 'int', 'bool'), ('int', 'bool', 'int', 'int')],
- "sample.Modifications.argRemoval1": [('int', 'bool', 'int', 'bool'), ('int', 'bool', 'typing.Tuple', 'typing.Tuple', 'int')],
- "sample.Modifications.argRemoval2": ('int', 'bool', 'typing.Tuple', 'typing.Tuple', 'int'),
- "sample.Modifications.argRemoval3": ('int', 'typing.Tuple', 'bool', 'typing.Tuple', 'int'),
- "sample.Modifications.argRemoval4": ('int', 'typing.Tuple', 'bool', 'typing.Tuple', 'int'),
- "sample.Modifications.argRemoval5": [('int', 'bool', 'int', 'bool'), ('int', 'bool', 'typing.Tuple', 'typing.Tuple', 'int')],
- "sample.Modifications.calculateArea": ('int', 'int'),
- "sample.Modifications.callDifferenceOfPointCoordinates": ('typing.Tuple',),
- "sample.Modifications.defaultEnumValue": (),
- "sample.Modifications.differenceOfPointCoordinates": ('typing.Tuple',),
- "sample.Modifications.doublePlus": ('int', 'int'),
- "sample.Modifications.enumValue": (),
- "sample.Modifications.getObject": (),
- "sample.Modifications.getSize": ('int', 'int'),
- "sample.Modifications.increment": ('int',),
- "sample.Modifications.invertBoolean": ('bool',),
- "sample.Modifications.multiplyPointCoordsPlusValue": ('typing.Tuple', 'float'),
- "sample.Modifications.name": (),
- "sample.Modifications.nonConversionRuleForArgumentWithDefaultValue": ('object',),
- "sample.Modifications.over": ('int', 'bool', 'typing.Tuple', 'typing.Tuple'),
- "sample.Modifications.overloaded": [('int', 'bool', 'int', 'bool'), ('int', 'bool', 'int', 'float'), ('int', 'bool', 'int', 'int'), ('int', 'bool', 'int', 'typing.Tuple')],
- "sample.Modifications.pointToPair": ('typing.Tuple',),
- "sample.Modifications.power": ('int', 'int'),
- "sample.Modifications.setEnumValue": ('sample.Modifications.TestEnum',),
- "sample.Modifications.sumPointArray": ('int', 'typing.Sequence'),
- "sample.Modifications.sumPointCoordinates": ('typing.Tuple',),
- "sample.Modifications.timesTen": ('int',),
-# class sample.ModifiedConstructor:
- "sample.ModifiedConstructor.__init__": ('int',),
- "sample.ModifiedConstructor.retrieveValue": (),
-# class sample.NoImplicitConversion:
- "sample.NoImplicitConversion.__init__": [('int',), ('sample.NoImplicitConversion',)],
- "sample.NoImplicitConversion.__copy__": (),
- "sample.NoImplicitConversion.objId": (),
- "sample.NoImplicitConversion.receivesNoImplicitConversionByPointer": ('sample.NoImplicitConversion',),
- "sample.NoImplicitConversion.receivesNoImplicitConversionByReference": ('sample.NoImplicitConversion',),
- "sample.NoImplicitConversion.receivesNoImplicitConversionByValue": ('sample.NoImplicitConversion',),
-# class sample.NonDefaultCtor:
- "sample.NonDefaultCtor.__init__": [('int',), ('sample.NonDefaultCtor',)],
- "sample.NonDefaultCtor.__copy__": (),
- "sample.NonDefaultCtor.callReturnMyselfVirtual": (),
- "sample.NonDefaultCtor.returnMyself": [(), ('int',), ('int', 'sample.NonDefaultCtor')],
- "sample.NonDefaultCtor.returnMyselfVirtual": (),
- "sample.NonDefaultCtor.value": (),
-# class sample.ObjTypeReference:
- "sample.ObjTypeReference.__init__": [(), ('sample.ObjTypeReference',)],
- "sample.ObjTypeReference.justAPureVirtualFunc": ('sample.ObjTypeReference',),
- "sample.ObjTypeReference.returnMyFirstArg": ('sample.ObjTypeReference',),
- "sample.ObjTypeReference.returnMySecondArg": ('int', 'sample.ObjTypeReference'),
-# class sample.ObjectModel:
-# class sample.ObjectModel.MethodCalled:
- "sample.ObjectModel.__init__": ('object',),
- "sample.ObjectModel.data": (),
- "sample.ObjectModel.receivesObjectTypeFamily": [('object',), ('sample.ObjectModel',)],
- "sample.ObjectModel.setData": ('object',),
-# class sample.ObjectType:
- "sample.ObjectType.__init__": ('object',),
- "sample.ObjectType.callId": (),
- "sample.ObjectType.callInvalidateEvent": ('sample.Event',),
- "sample.ObjectType.callVirtualCreateChild": (),
- "sample.ObjectType.callWithEnum": [('sample.Str', 'int'), ('sample.Str', 'sample.Event.EventType', 'int')],
- "sample.ObjectType.causeEvent": ('sample.Event.EventType',),
- "sample.ObjectType.children": (),
- "sample.ObjectType.create": (),
- "sample.ObjectType.createChild": ('object',),
- "sample.ObjectType.createObjectType": (),
- "sample.ObjectType.createWithChild": (),
- "sample.ObjectType.deprecatedFunction": (),
- "sample.ObjectType.destroyCppParent": (),
- "sample.ObjectType.event": ('sample.Event',),
- "sample.ObjectType.findChild": ('sample.Str',),
- "sample.ObjectType.getCppParent": (),
- "sample.ObjectType.identifier": (),
- "sample.ObjectType.invalidateEvent": ('sample.Event',),
- "sample.ObjectType.isLayoutType": (),
- "sample.ObjectType.isPython": (),
- "sample.ObjectType.killChild": ('sample.Str',),
- "sample.ObjectType.layout": (),
- "sample.ObjectType.nextInFocusChain": (),
- "sample.ObjectType.objectName": (),
- "sample.ObjectType.parent": (),
- "sample.ObjectType.processEvent": ('typing.List', 'sample.Event'),
- "sample.ObjectType.removeChild": ('object',),
- "sample.ObjectType.setLayout": ('sample.ObjectTypeLayout',),
- "sample.ObjectType.setNullObject": ('None',),
- "sample.ObjectType.setObject": ('object',),
- "sample.ObjectType.setObjectName": ('sample.Str',),
- "sample.ObjectType.setObjectNameWithSize": [('bytes', 'int', 'sample.Str'), ('sample.Str', 'int')],
- "sample.ObjectType.setObjectSplittedName": ('bytes', 'sample.Str', 'sample.Str'),
- "sample.ObjectType.setParent": ('object',),
- "sample.ObjectType.takeChild": [('object',), ('sample.Str',)],
-# class sample.ObjectTypeByValue:
- "sample.ObjectTypeByValue.__init__": (),
- "sample.ObjectTypeByValue.acceptKindOfMeAsValue": ('sample.ObjectTypeByValue',),
- "sample.ObjectTypeByValue.acceptListOfObjectTypeByValue": ('typing.List',),
- "sample.ObjectTypeByValue.returnSomeKindOfMe": (),
-# class sample.ObjectTypeDerived:
- "sample.ObjectTypeDerived.__init__": (),
- "sample.ObjectTypeDerived.event": ('sample.Event',),
-# class sample.ObjectTypeHolder:
- "sample.ObjectTypeHolder.__init__": [('bytes',), ('sample.ObjectTypeHolder',)],
- "sample.ObjectTypeHolder.__copy__": (),
- "sample.ObjectTypeHolder.callPassObjectTypeAsReference": (),
- "sample.ObjectTypeHolder.getObjecType": (),
- "sample.ObjectTypeHolder.passObjectTypeAsReference": ('object',),
-# class sample.ObjectTypeLayout:
- "sample.ObjectTypeLayout.__init__": (),
- "sample.ObjectTypeLayout.addObject": ('object',),
- "sample.ObjectTypeLayout.create": (),
- "sample.ObjectTypeLayout.isLayoutType": (),
- "sample.ObjectTypeLayout.objects": (),
- "sample.ObjectTypeLayout.takeChild": [('object',), ('sample.Str',)],
-# class sample.ObjectTypeOperators:
- "sample.ObjectTypeOperators.__init__": ('str',),
- "sample.ObjectTypeOperators.__add__": ('str',),
- "sample.ObjectTypeOperators.key": (),
-# class sample.ObjectTypePtrList:
-# class sample.ObjectTypePtrList.CtorEnum:
- "sample.ObjectTypePtrList.__init__": [(), ('object',), ('sample.ObjectTypePtrList',), ('typing.Sequence',)],
- "sample.ObjectTypePtrList.__copy__": (),
- "sample.ObjectTypePtrList.append": ('object',),
- "sample.ObjectTypePtrList.constructorUsed": (),
-# class sample.ObjectView:
- "sample.ObjectView.__init__": ('sample.ObjectModel', 'object'),
- "sample.ObjectView.displayModelData": (),
- "sample.ObjectView.getRawModelData": (),
- "sample.ObjectView.model": (),
- "sample.ObjectView.modifyModelData": ('sample.Str',),
- "sample.ObjectView.setModel": ('sample.ObjectModel',),
-# class sample.OddBoolUser:
- "sample.OddBoolUser.__init__": [(), ('bool',), ('sample.OddBoolUser',)],
- "sample.OddBoolUser.__copy__": (),
- "sample.OddBoolUser.callInvertedOddBool": (),
- "sample.OddBoolUser.getOddBool": ('sample.OddBoolUser',),
- "sample.OddBoolUser.invertedOddBool": (),
- "sample.OddBoolUser.oddBool": (),
- "sample.OddBoolUser.setOddBool": ('bool',),
-# class sample.OnlyCopy:
- "sample.OnlyCopy.__init__": ('sample.OnlyCopy',),
- "sample.OnlyCopy.__copy__": (),
- "sample.OnlyCopy.getValue": ('sample.OnlyCopy',),
- "sample.OnlyCopy.getValueFromReference": ('sample.OnlyCopy',),
- "sample.OnlyCopy.value": (),
-# class sample.OtherBase:
- "sample.OtherBase.__init__": (),
-# class sample.Overload:
-# class sample.Overload.FunctionEnum:
-# class sample.Overload.ParamEnum:
- "sample.Overload.__init__": (),
- "sample.Overload.acceptSequence": [(), ('int',), ('int', 'int'), ('sample.Size',), ('sample.Str', 'sample.Overload.ParamEnum'), ('typing.Sequence',)],
- "sample.Overload.differentReturnTypes": [('sample.Overload.ParamEnum',), ('sample.Overload.ParamEnum', 'int')],
- "sample.Overload.drawText": [('int', 'int', 'int', 'int', 'int', 'sample.Str'), ('int', 'int', 'sample.Str'), ('sample.PointF', 'sample.Str'), ('sample.Rect', 'int', 'sample.Str'), ('sample.RectF', 'int', 'sample.Str'), ('sample.RectF', 'sample.Str', 'sample.Echo'), ('typing.Tuple', 'sample.Str')],
- "sample.Overload.drawText2": [('int', 'int', 'int', 'int', 'int', 'sample.Str'), ('int', 'int', 'sample.Str'), ('sample.PointF', 'sample.Str'), ('sample.Rect', 'int', 'sample.Str'), ('sample.RectF', 'int', 'sample.Str'), ('sample.RectF', 'sample.Str', 'sample.Echo'), ('typing.Tuple', 'sample.Str')],
- "sample.Overload.drawText3": [('int', 'int', 'int', 'int', 'int'), ('sample.Str', 'sample.Str', 'sample.Str')],
- "sample.Overload.drawText4": [('int', 'int', 'int'), ('int', 'int', 'int', 'int', 'int')],
- "sample.Overload.intDoubleOverloads": [('float', 'float'), ('int', 'int')],
- "sample.Overload.intOverloads": [('int', 'int'), ('int', 'int', 'float'), ('typing.Tuple', 'float')],
- "sample.Overload.overloaded": [(), ('sample.Size',), ('typing.Tuple',), ('typing.Tuple', 'sample.Overload.ParamEnum')],
- "sample.Overload.singleOverload": [(), ('typing.Tuple',)],
- "sample.Overload.strBufferOverloads": [(), ('bytes', 'int'), ('sample.Str', 'bytes', 'bool'), ('sample.Str', 'int')],
- "sample.Overload.wrapperIntIntOverloads": [('sample.Polygon', 'int', 'int'), ('typing.Tuple', 'int', 'int')],
-# class sample.Overload2:
- "sample.Overload2.__init__": (),
- "sample.Overload2.doNothingInPublic": [(), ('int',)],
- "sample.Overload2.doNothingInPublic2": [(), ('int',)],
- "sample.Overload2.doNothingInPublic3": [(), ('int',)],
-# class sample.OverloadedFuncEnum:
-# class sample.PairUser:
- "sample.PairUser.__init__": [(), ('sample.PairUser',)],
- "sample.PairUser.__copy__": (),
- "sample.PairUser.callCreatePair": (),
- "sample.PairUser.createComplexPair": ('complex', 'complex'),
- "sample.PairUser.createPair": (),
- "sample.PairUser.getPair": (),
- "sample.PairUser.setPair": ('typing.Tuple',),
- "sample.PairUser.sumPair": ('typing.Tuple',),
-# class sample.Pen:
- "sample.Pen.__init__": [(), ('sample.Color',), ('sample.Pen',), ('sample.SampleNamespace.Option',)],
- "sample.Pen.__copy__": (),
- "sample.Pen.ctorType": (),
-# class sample.PersistentModelIndex:
- "sample.PersistentModelIndex.__init__": [(), ('sample.ModelIndex',), ('sample.PersistentModelIndex',)],
- "sample.PersistentModelIndex.__copy__": (),
- "sample.PersistentModelIndex.setValue": ('int',),
- "sample.PersistentModelIndex.value": (),
-# class sample.Photon:
-# class sample.Photon.Base:
- "sample.Photon.Base.__init__": [('int',), ('sample.Photon.Base',)],
- "sample.Photon.Base.__copy__": (),
- "sample.Photon.Base.isType": ('sample.Photon.ClassType',),
- "sample.Photon.Base.setValue": ('int',),
- "sample.Photon.Base.type": (),
- "sample.Photon.Base.value": (),
-# class sample.Photon.ClassType:
-# class sample.Photon.ValueDuplicator:
- "sample.Photon.ValueDuplicator.__init__": [('int',), ('sample.Photon.ValueDuplicator',)],
- "sample.Photon.ValueDuplicator.__copy__": (),
- "sample.Photon.ValueDuplicator.calculate": (),
- "sample.Photon.ValueDuplicator.classType": (),
- "sample.Photon.ValueDuplicator.getListOfThisTemplateBase": (),
- "sample.Photon.ValueDuplicator.multiplicator": (),
- "sample.Photon.ValueDuplicator.passPointerThrough": ('sample.Photon.ValueDuplicator',),
- "sample.Photon.ValueDuplicator.sumValueUsingPointer": ('sample.Photon.ValueDuplicator',),
- "sample.Photon.ValueDuplicator.sumValueUsingReference": ('sample.Photon.ValueDuplicator',),
- "sample.Photon.ValueDuplicator.type": (),
-# class sample.Photon.ValueIdentity:
- "sample.Photon.ValueIdentity.__init__": [('int',), ('sample.Photon.ValueIdentity',)],
- "sample.Photon.ValueIdentity.__copy__": (),
- "sample.Photon.ValueIdentity.calculate": (),
- "sample.Photon.ValueIdentity.classType": (),
- "sample.Photon.ValueIdentity.getListOfThisTemplateBase": (),
- "sample.Photon.ValueIdentity.multiplicator": (),
- "sample.Photon.ValueIdentity.passPointerThrough": ('sample.Photon.ValueIdentity',),
- "sample.Photon.ValueIdentity.sumValueUsingPointer": ('sample.Photon.ValueIdentity',),
- "sample.Photon.ValueIdentity.sumValueUsingReference": ('sample.Photon.ValueIdentity',),
- "sample.Photon.ValueIdentity.type": (),
- "sample.Photon.callCalculateForValueDuplicatorPointer": ('sample.Photon.ValueDuplicator',),
- "sample.Photon.callCalculateForValueDuplicatorReference": ('sample.Photon.ValueDuplicator',),
- "sample.Photon.countValueDuplicators": ('typing.List',),
- "sample.Photon.countValueIdentities": ('typing.List',),
-# class sample.Point:
- "sample.Point.__init__": [('float', 'float'), ('int', 'int'), ('typing.Tuple',)],
- "sample.Point.__add__": ('typing.Tuple',),
- "sample.Point.__copy__": (),
- "sample.Point.__iadd__": ('typing.Tuple',),
- "sample.Point.__isub__": ('typing.Tuple',),
- "sample.Point.__mul__": [('float',), ('int',)],
- "sample.Point.__neg__": (),
- "sample.Point.__reduce__": (),
- "sample.Point.__repr__": (),
- "sample.Point.__str__": (),
- "sample.Point.__sub__": [('str',), ('typing.Tuple',)],
- "sample.Point.copy": (),
- "sample.Point.getConstReferenceToSelf": (),
- "sample.Point.getSelf": (),
- "sample.Point.midpoint": ('typing.Tuple', 'typing.Tuple'),
- "sample.Point.setX": ('float',),
- "sample.Point.setXAsUint": ('int',),
- "sample.Point.setY": ('float',),
- "sample.Point.setYAsUint": ('int',),
- "sample.Point.show": (),
- "sample.Point.x": (),
- "sample.Point.y": (),
-# class sample.PointF:
- "sample.PointF.__init__": [('float', 'float'), ('sample.PointF',), ('typing.Tuple',)],
- "sample.PointF.__add__": ('sample.PointF',),
- "sample.PointF.__copy__": (),
- "sample.PointF.__iadd__": ('sample.PointF',),
- "sample.PointF.__isub__": ('sample.PointF',),
- "sample.PointF.__mul__": [('float',), ('int',)],
- "sample.PointF.__neg__": (),
- "sample.PointF.__reduce__": (),
- "sample.PointF.__repr__": (),
- "sample.PointF.__str__": (),
- "sample.PointF.__sub__": ('sample.PointF',),
- "sample.PointF.midpoint": ('sample.PointF', 'sample.PointF'),
- "sample.PointF.setX": ('float',),
- "sample.PointF.setY": ('float',),
- "sample.PointF.show": (),
- "sample.PointF.x": (),
- "sample.PointF.y": (),
-# class sample.PointValueList:
-# class sample.PointValueList.CtorEnum:
- "sample.PointValueList.__init__": [(), ('sample.PointValueList',), ('typing.Sequence',), ('typing.Tuple',)],
- "sample.PointValueList.__copy__": (),
- "sample.PointValueList.append": ('typing.Tuple',),
- "sample.PointValueList.constructorUsed": (),
-# class sample.PointerHolder:
- "sample.PointerHolder.__init__": [('object',), ('sample.PointerHolder',)],
- "sample.PointerHolder.__copy__": (),
- "sample.PointerHolder.pointer": (),
-# class sample.Polygon:
- "sample.Polygon.__init__": [(), ('float', 'float'), ('sample.Polygon',), ('typing.List',), ('typing.Tuple',)],
- "sample.Polygon.__copy__": (),
- "sample.Polygon.addPoint": ('typing.Tuple',),
- "sample.Polygon.doublePolygonScale": ('sample.Polygon',),
- "sample.Polygon.points": (),
- "sample.Polygon.stealOwnershipFromPython": [('sample.Polygon',), ('typing.Tuple',)],
-# class sample.PrimitiveStructPointerHolder:
- "sample.PrimitiveStructPointerHolder.__init__": [(), ('sample.PrimitiveStructPointerHolder',)],
- "sample.PrimitiveStructPointerHolder.__copy__": (),
-# class sample.PrivateCtor:
- "sample.PrivateCtor.instance": (),
- "sample.PrivateCtor.instanceCalls": (),
-# class sample.PrivateDtor:
- "sample.PrivateDtor.instance": (),
- "sample.PrivateDtor.instanceCalls": (),
- "sample.PrivateDtor.protectedInstanceCalls": (),
-# class sample.ProtectedEnumClass:
-# class sample.ProtectedEnumClass.ProtectedEnum:
-# class sample.ProtectedEnumClass.PublicEnum:
- "sample.ProtectedEnumClass.__init__": (),
- "sample.ProtectedEnumClass.callProtectedEnumMethod": ('sample.ProtectedEnumClass.ProtectedEnum',),
- "sample.ProtectedEnumClass.callPublicEnumMethod": ('sample.ProtectedEnumClass.PublicEnum',),
- "sample.ProtectedEnumClass.protectedEnumMethod": ('sample.ProtectedEnumClass.ProtectedEnum',),
- "sample.ProtectedEnumClass.publicEnumMethod": ('sample.ProtectedEnumClass.PublicEnum',),
-# class sample.ProtectedNonPolymorphic:
- "sample.ProtectedNonPolymorphic.__init__": [('bytes',), ('sample.ProtectedNonPolymorphic',)],
- "sample.ProtectedNonPolymorphic.__copy__": (),
- "sample.ProtectedNonPolymorphic.create": (),
- "sample.ProtectedNonPolymorphic.dataTypeName": [('int',), ('object',)],
- "sample.ProtectedNonPolymorphic.modifiedProtectedSum": ('int', 'int'),
- "sample.ProtectedNonPolymorphic.protectedName": (),
- "sample.ProtectedNonPolymorphic.protectedStatic": (),
- "sample.ProtectedNonPolymorphic.protectedSum": ('int', 'int'),
- "sample.ProtectedNonPolymorphic.publicName": (),
-# class sample.ProtectedPolymorphic:
- "sample.ProtectedPolymorphic.__init__": [('bytes',), ('sample.ProtectedPolymorphic',)],
- "sample.ProtectedPolymorphic.__copy__": (),
- "sample.ProtectedPolymorphic.callProtectedName": (),
- "sample.ProtectedPolymorphic.create": (),
- "sample.ProtectedPolymorphic.protectedName": (),
- "sample.ProtectedPolymorphic.publicName": (),
-# class sample.ProtectedPolymorphicDaughter:
- "sample.ProtectedPolymorphicDaughter.__init__": [('bytes',), ('sample.ProtectedPolymorphicDaughter',)],
- "sample.ProtectedPolymorphicDaughter.__copy__": (),
- "sample.ProtectedPolymorphicDaughter.create": (),
-# class sample.ProtectedPolymorphicGrandDaughter:
- "sample.ProtectedPolymorphicGrandDaughter.__init__": [('bytes',), ('sample.ProtectedPolymorphicGrandDaughter',)],
- "sample.ProtectedPolymorphicGrandDaughter.__copy__": (),
- "sample.ProtectedPolymorphicGrandDaughter.create": (),
-# class sample.ProtectedProperty:
- "sample.ProtectedProperty.__init__": [(), ('sample.ProtectedProperty',)],
- "sample.ProtectedProperty.__copy__": (),
-# class sample.ProtectedVirtualDestructor:
- "sample.ProtectedVirtualDestructor.__init__": (),
- "sample.ProtectedVirtualDestructor.create": (),
- "sample.ProtectedVirtualDestructor.dtorCalled": (),
- "sample.ProtectedVirtualDestructor.resetDtorCounter": (),
-# class sample.Rect:
- "sample.Rect.__init__": [(), ('int', 'int', 'int', 'int'), ('sample.Rect',)],
- "sample.Rect.__copy__": (),
- "sample.Rect.bottom": (),
- "sample.Rect.left": (),
- "sample.Rect.right": (),
- "sample.Rect.top": (),
-# class sample.RectF:
- "sample.RectF.__init__": [(), ('int', 'int', 'int', 'int'), ('sample.Rect',), ('sample.RectF',)],
- "sample.RectF.__copy__": (),
- "sample.RectF.bottom": (),
- "sample.RectF.left": (),
- "sample.RectF.right": (),
- "sample.RectF.top": (),
-# class sample.Reference:
- "sample.Reference.__init__": [('int',), ('sample.Reference',)],
- "sample.Reference.__copy__": (),
- "sample.Reference.alterReferenceIdVirtual": ('sample.Reference',),
- "sample.Reference.callAlterReferenceIdVirtual": ('sample.Reference',),
- "sample.Reference.callUsesConstReferenceVirtual": ('sample.Reference', 'int'),
- "sample.Reference.callUsesReferenceVirtual": ('sample.Reference', 'int'),
- "sample.Reference.multiplier": (),
- "sample.Reference.objId": (),
- "sample.Reference.returnMyFirstArg": ('sample.Reference',),
- "sample.Reference.returnMySecondArg": ('int', 'sample.Reference'),
- "sample.Reference.setObjId": ('int',),
- "sample.Reference.show": (),
- "sample.Reference.usesConstReference": ('sample.Reference',),
- "sample.Reference.usesConstReferenceVirtual": ('sample.Reference', 'int'),
- "sample.Reference.usesReference": ('sample.Reference',),
- "sample.Reference.usesReferenceVirtual": ('sample.Reference', 'int'),
-# class sample.ReferentModelIndex:
- "sample.ReferentModelIndex.__init__": [(), ('sample.ModelIndex',), ('sample.ReferentModelIndex',)],
- "sample.ReferentModelIndex.__copy__": (),
- "sample.ReferentModelIndex.setValue": ('int',),
- "sample.ReferentModelIndex.value": (),
-# class sample.RemovedNamespace1_Enum:
-# class sample.RemovedNamespace2_Enum:
-# class sample.SampleNamespace:
-# class sample.SampleNamespace.DerivedFromNamespace:
- "sample.SampleNamespace.DerivedFromNamespace.__init__": (),
- "sample.SampleNamespace.DerivedFromNamespace.methodReturningTypeFromParentScope": (),
- "sample.SampleNamespace.DerivedFromNamespace.someVirtualMethod": ('sample.SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough',),
-# class sample.SampleNamespace.InValue:
-# class sample.SampleNamespace.Option:
-# class sample.SampleNamespace.OutValue:
-# class sample.SampleNamespace.SomeClass:
-# class sample.SampleNamespace.SomeClass.ProtectedEnum:
-# class sample.SampleNamespace.SomeClass.PublicScopedEnum:
-# class sample.SampleNamespace.SomeClass.SomeInnerClass:
-# class sample.SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough:
-# class sample.SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough.NiceEnum:
-# class sample.SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough.NiceEnumClass:
- "sample.SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough.__init__": (),
- "sample.SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough.someMethod": ('sample.SampleNamespace.SomeClass.SomeInnerClass',),
- "sample.SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough.someVirtualMethod": ('sample.SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough',),
-# class sample.SampleNamespace.SomeClass.SomeInnerClass.ProtectedEnum:
- "sample.SampleNamespace.SomeClass.SomeInnerClass.__init__": [(), ('sample.SampleNamespace.SomeClass.SomeInnerClass',)],
- "sample.SampleNamespace.SomeClass.SomeInnerClass.__copy__": (),
-# class sample.SampleNamespace.SomeClass.SomeOtherInnerClass:
- "sample.SampleNamespace.SomeClass.SomeOtherInnerClass.__init__": [(), ('sample.SampleNamespace.SomeClass.SomeOtherInnerClass',)],
- "sample.SampleNamespace.SomeClass.SomeOtherInnerClass.__copy__": (),
- "sample.SampleNamespace.SomeClass.__init__": [(), ('sample.SampleNamespace.SomeClass',)],
- "sample.SampleNamespace.SomeClass.__copy__": (),
- "sample.SampleNamespace.SomeClass.protectedMethodReturningPublicScopedEnum": (),
- "sample.SampleNamespace.ImInsideANamespace": ('int', 'int'),
- "sample.SampleNamespace.doSomethingWithArray": ('bytes', 'int', 'bytes'),
- "sample.SampleNamespace.enumArgumentWithDefaultValue": ('sample.SampleNamespace.Option',),
- "sample.SampleNamespace.enumInEnumOut": ('sample.SampleNamespace.InValue',),
- "sample.SampleNamespace.enumItemAsDefaultValueToIntArgument": ('int',),
- "sample.SampleNamespace.forceDecisorSideA": [('object',), ('typing.Tuple', 'sample.Str', 'object')],
- "sample.SampleNamespace.forceDecisorSideB": [('int', 'object'), ('int', 'typing.Tuple', 'sample.Str', 'object')],
- "sample.SampleNamespace.getNumber": ('sample.SampleNamespace.Option',),
- "sample.SampleNamespace.passReferenceToObjectType": [('object',), ('object', 'int')],
- "sample.SampleNamespace.passReferenceToValueType": [('typing.Tuple',), ('typing.Tuple', 'float')],
- "sample.SampleNamespace.powerOfTwo": ('float',),
-# class sample.SbkDate:
- "sample.SbkDate.__init__": [('int', 'int', 'int'), ('sample.SbkDate',)],
- "sample.SbkDate.__copy__": (),
- "sample.SbkDate.day": (),
- "sample.SbkDate.month": (),
- "sample.SbkDate.toPython": (),
- "sample.SbkDate.year": (),
-# class sample.SimpleFile:
- "sample.SimpleFile.__init__": [('bytes',), ('sample.SimpleFile',)],
- "sample.SimpleFile.__copy__": (),
- "sample.SimpleFile.close": (),
- "sample.SimpleFile.exists": [(), ('bytes',)],
- "sample.SimpleFile.filename": (),
- "sample.SimpleFile.open": (),
- "sample.SimpleFile.size": (),
-# class sample.Size:
- "sample.Size.__init__": [('bytes',), ('float', 'float'), ('sample.Size',)],
- "sample.Size.__add__": ('sample.Size',),
- "sample.Size.__copy__": (),
- "sample.Size.__iadd__": ('sample.Size',),
- "sample.Size.__imul__": ('float',),
- "sample.Size.__isub__": ('sample.Size',),
- "sample.Size.__mul__": ('float',),
- "sample.Size.__sub__": ('sample.Size',),
- "sample.Size.calculateArea": (),
- "sample.Size.height": (),
- "sample.Size.setHeight": ('float',),
- "sample.Size.setWidth": ('float',),
- "sample.Size.show": (),
- "sample.Size.width": (),
-# class sample.SizeF:
- "sample.SizeF.__init__": [('float', 'float'), ('sample.SizeF',)],
- "sample.SizeF.__copy__": (),
- "sample.SizeF.height": (),
- "sample.SizeF.passTypedefOfUnsignedShort": ('int',),
- "sample.SizeF.width": (),
-# class sample.SonOfMDerived1:
- "sample.SonOfMDerived1.__init__": (),
- "sample.SonOfMDerived1.castToMDerived1": (),
- "sample.SonOfMDerived1.sonOfMDerived1Method": (),
-# class sample.SortedOverload:
- "sample.SortedOverload.__init__": [(), ('sample.SortedOverload',)],
- "sample.SortedOverload.__copy__": (),
- "sample.SortedOverload.implicit_overload": ('sample.ImplicitBase',),
- "sample.SortedOverload.overload": [('float',), ('int',), ('object',), ('sample.ImplicitBase',), ('sample.ImplicitTarget',), ('typing.List',)],
- "sample.SortedOverload.overloadDeep": [('int', 'object'), ('int', 'sample.ImplicitBase')],
- "sample.SortedOverload.pyObjOverload": [('bytes', 'int'), ('int', 'int')],
-# class sample.Str:
- "sample.Str.__init__": [('bytes',), ('int',), ('sample.Str',)],
- "sample.Str.__add__": ('int',),
- "sample.Str.__copy__": (),
- "sample.Str.__str__": (),
- "sample.Str.append": ('sample.Str',),
- "sample.Str.arg": ('sample.Str',),
- "sample.Str.cstring": (),
- "sample.Str.get_char": ('int',),
- "sample.Str.prepend": ('sample.Str',),
- "sample.Str.set_char": ('int', 'int'),
- "sample.Str.show": (),
- "sample.Str.size": (),
- "sample.Str.toInt": ('int',),
-# class sample.StrList:
-# class sample.StrList.CtorEnum:
- "sample.StrList.__init__": [(), ('sample.Str',), ('sample.StrList',), ('typing.List',)],
- "sample.StrList.__copy__": (),
- "sample.StrList.append": ('sample.Str',),
- "sample.StrList.constructorUsed": (),
- "sample.StrList.join": ('sample.Str',),
-# class sample.TemplatePtr:
- "sample.TemplatePtr.__init__": (),
- "sample.TemplatePtr.dummy_method": ('typing.List',),
-# class sample.Time:
-# class sample.Time.NumArgs:
- "sample.Time.__init__": [(), ('int', 'int', 'int', 'int'), ('sample.Time',)],
- "sample.Time.__copy__": (),
- "sample.Time.hour": (),
- "sample.Time.isNull": (),
- "sample.Time.minute": (),
- "sample.Time.msec": (),
- "sample.Time.second": (),
- "sample.Time.setTime": [(), ('int', 'int', 'int', 'int')],
- "sample.Time.somethingCompletelyDifferent": [(), ('int', 'int', 'sample.ImplicitConv', 'object')],
- "sample.Time.toString": (),
-# class sample.Union:
- "sample.Union.__init__": [(), ('sample.Data',), ('sample.Intersection',), ('sample.Union',)],
- "sample.Union.__and__": ('sample.Data',),
- "sample.Union.__copy__": (),
- "sample.Union.addFilter": ('sample.Filter',),
- "sample.Union.filters": (),
-# class sample.UnremovedNamespace:
-# class sample.UnremovedNamespace.RemovedNamespace3_Enum:
-# class sample.ValueAndVirtual:
- "sample.ValueAndVirtual.__init__": [('int',), ('sample.ValueAndVirtual',)],
- "sample.ValueAndVirtual.__call__": ('int', 'int'),
- "sample.ValueAndVirtual.__copy__": (),
- "sample.ValueAndVirtual.id": (),
-# class sample.VirtualDaughter:
- "sample.VirtualDaughter.__init__": [(), ('sample.Str',), ('sample.VirtualDaughter',)],
- "sample.VirtualDaughter.__copy__": (),
-# class sample.VirtualDaughter2:
- "sample.VirtualDaughter2.__init__": (),
- "sample.VirtualDaughter2.sumThree": ('int', 'int', 'int'),
- "sample.VirtualDaughter2.virtualMethod0": ('typing.Tuple', 'int', 'complex', 'bool'),
-# class sample.VirtualDtor:
- "sample.VirtualDtor.__init__": [(), ('sample.VirtualDtor',)],
- "sample.VirtualDtor.__copy__": (),
- "sample.VirtualDtor.create": (),
- "sample.VirtualDtor.dtorCalled": (),
- "sample.VirtualDtor.resetDtorCounter": (),
-# class sample.VirtualFinalDaughter:
- "sample.VirtualFinalDaughter.__init__": (),
- "sample.VirtualFinalDaughter.sumThree": ('int', 'int', 'int'),
- "sample.VirtualFinalDaughter.virtualMethod0": ('typing.Tuple', 'int', 'complex', 'bool'),
-# class sample.VirtualMethods:
- "sample.VirtualMethods.__init__": [('sample.Str',), ('sample.VirtualMethods',)],
- "sample.VirtualMethods.__copy__": (),
- "sample.VirtualMethods.callCallMe": (),
- "sample.VirtualMethods.callCreateStr": ('bytes', 'sample.Str'),
- "sample.VirtualMethods.callGetMargins": (),
- "sample.VirtualMethods.callMe": (),
- "sample.VirtualMethods.callName": (),
- "sample.VirtualMethods.callRecursionOnModifiedVirtual": ('sample.Str',),
- "sample.VirtualMethods.callStrListToStdList": ('sample.StrList',),
- "sample.VirtualMethods.callSum0": ('int', 'int', 'int'),
- "sample.VirtualMethods.callSum1": ('int', 'int', 'int'),
- "sample.VirtualMethods.callSum2": ('int', 'int', 'int'),
- "sample.VirtualMethods.callSum3": ('int', 'int', 'int'),
- "sample.VirtualMethods.callSum4": ('int', 'int', 'int'),
- "sample.VirtualMethods.callVirtualMethod0": ('typing.Tuple', 'int', 'complex', 'bool'),
- "sample.VirtualMethods.createStr": ('bytes', 'sample.Str'),
- "sample.VirtualMethods.getMargins": (),
- "sample.VirtualMethods.name": (),
- "sample.VirtualMethods.recursionOnModifiedVirtual": ('sample.Str',),
- "sample.VirtualMethods.setMargins": ('int', 'int', 'int', 'int'),
- "sample.VirtualMethods.strListToStdList": ('sample.StrList',),
- "sample.VirtualMethods.sum1": ('int', 'int', 'int'),
- "sample.VirtualMethods.sum2": ('int', 'int', 'int'),
- "sample.VirtualMethods.sum3": ('int', 'int', 'int'),
- "sample.VirtualMethods.sum4": ('int', 'int', 'int'),
- "sample.VirtualMethods.sumThree": ('int', 'int', 'int'),
- "sample.VirtualMethods.virtualMethod0": ('typing.Tuple', 'int', 'complex', 'bool'),
-# class sample.VoidHolder:
- "sample.VoidHolder.__init__": [('int',), ('sample.VoidHolder',)],
- "sample.VoidHolder.__copy__": (),
- "sample.VoidHolder.gimmeMeSomeVoidPointer": (),
- "sample.VoidHolder.takeVoidPointer": ('int',),
- "sample.VoidHolder.voidPointer": (),
-# class sample.sample:
-# class sample.sample.sample:
- "sample.sample.sample.__init__": [('int',), ('sample.sample.sample',)],
- "sample.sample.sample.__copy__": (),
- "sample.sample.sample.value": (),
- "sample.sample.acceptDouble": ('float',),
- "sample.sample.acceptInt": ('int',),
- "sample.sample.acceptIntReference": ('int',),
- "sample.sample.acceptLong": ('int',),
- "sample.sample.acceptOddBoolReference": ('bool',),
- "sample.sample.acceptUInt": ('int',),
- "sample.sample.acceptULong": ('int',),
- "sample.sample.applyHomogeneousTransform": ('typing.Tuple', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float'),
- "sample.sample.cacheSize": (),
- "sample.sample.changePStr": ('bytes',),
- "sample.sample.convertIntegersToCppAndThenToPython": ('int', 'int'),
- "sample.sample.convertListOfIntegersToCppAndThenToPython": ('typing.List',),
- "sample.sample.convertObjectTypeToCppAndThenToPython": ('object', 'object'),
- "sample.sample.convertValueTypeToCppAndThenToPython": ('typing.Tuple', 'typing.Tuple', 'typing.Tuple'),
- "sample.sample.countCharacters": ('bytes',),
- "sample.sample.countVarargs": ('int', 'None'),
- "sample.sample.cppTypeIsObjectType": ('bytes',),
- "sample.sample.cppTypeIsValueType": ('bytes',),
- "sample.sample.createListOfPStr": ('str', 'str'),
- "sample.sample.createPStrList": ('str', 'str'),
- "sample.sample.createProtectedProperty": (),
- "sample.sample.doubleLongLong": ('int',),
- "sample.sample.doubleShort": ('int',),
- "sample.sample.doubleUnsignedInt": ('int',),
- "sample.sample.doubleUnsignedLongLong": ('int',),
- "sample.sample.duplicatePStr": (),
- "sample.sample.getConversionTypeString": ('bytes',),
- "sample.sample.getPythonType": ('bytes',),
- "sample.sample.gimmeComplexList": (),
- "sample.sample.gimmeDouble": (),
- "sample.sample.gimmeInt": (),
- "sample.sample.makeCString": (),
- "sample.sample.multiplyPair": ('typing.Tuple',),
- "sample.sample.multiplyString": ('str', 'int'),
- "sample.sample.overloadedFunc": [('float',), ('int',)],
- "sample.sample.returnCString": (),
- "sample.sample.returnNullObjectTypePointer": (),
- "sample.sample.returnNullPrimitivePointer": (),
- "sample.sample.returnNullValueTypePointer": (),
- "sample.sample.sum2d": ('typing.List',),
- "sample.sample.sumComplexPair": ('typing.Tuple',),
- "sample.sample.sumDoubleArray": ('typing.Tuple',),
- "sample.sample.sumDoubleMatrix": ('typing.Tuple',),
- "sample.sample.sumIntArray": ('typing.Tuple',),
- "sample.sample.sumIntMatrix": ('typing.Tuple',),
- "sample.sample.sumproduct": ('typing.List',),
- "sample.sample.transmuteComplexIntoPoint": ('complex',),
- "sample.sample.transmutePointIntoComplex": ('typing.Tuple',),
- }) if "sample" in sys.modules else None
-# Module other
-sig_dict.update({
-# class other.ExtendsNoImplicitConversion:
- "other.ExtendsNoImplicitConversion.__init__": [('Missing("other.ExtendsNoImplicitConversion")',), ('int',)],
- "other.ExtendsNoImplicitConversion.__copy__": (),
- "other.ExtendsNoImplicitConversion.objId": (),
-# class other.Number:
- "other.Number.__init__": [('int',), ('numbers.Number',)],
- "other.Number.__copy__": (),
- "other.Number.__mul__": ('typing.Tuple',),
- "other.Number.fromComplex": ('complex',),
- "other.Number.toComplex": (),
- "other.Number.toStr": (),
- "other.Number.value": (),
-# class other.OtherDerived:
- "other.OtherDerived.__init__": ('int',),
- "other.OtherDerived.className": (),
- "other.OtherDerived.createObject": (),
- "other.OtherDerived.getClassName": (),
- "other.OtherDerived.pureVirtual": (),
- "other.OtherDerived.pureVirtualReturningVoidPtr": (),
- "other.OtherDerived.returnAnEnum": (),
- "other.OtherDerived.unpureVirtual": (),
- "other.OtherDerived.useEnumTypeFromOtherModule": ('sample.OverloadedFuncEnum',),
- "other.OtherDerived.useObjectTypeFromOtherModule": ('object',),
- "other.OtherDerived.useValueTypeFromOtherModule": [('complex',), ('sample.Event',)],
-# class other.OtherMultipleDerived:
- "other.OtherMultipleDerived.__init__": (),
- "other.OtherMultipleDerived.createObject": ('str',),
- "other.OtherMultipleDerived.returnUselessClass": (),
-# class other.OtherObjectType:
- "other.OtherObjectType.__init__": (),
- "other.OtherObjectType.__lshift__": ('sample.Collector',),
- }) if "other" in sys.modules else None
-# Module smart
-sig_dict.update({
-# class smart.Integer:
- "smart.Integer.__init__": [(), ('smart.Integer',)],
- "smart.Integer.__copy__": (),
- "smart.Integer.printInteger": (),
-# class smart.Integer2:
- "smart.Integer2.__init__": [(), ('int',)],
- "smart.Integer2.__copy__": (),
-# class smart.Obj:
- "smart.Obj.__init__": (),
- "smart.Obj.giveSharedPtrToInteger": (),
- "smart.Obj.giveSharedPtrToInteger2": (),
- "smart.Obj.giveSharedPtrToObj": (),
- "smart.Obj.giveSharedPtrToObjList": ('int',),
- "smart.Obj.printObj": (),
- "smart.Obj.takeInteger": ('smart.Integer',),
- "smart.Obj.takeSharedPtrToInteger": ('smart.SharedPtr',),
- "smart.Obj.takeSharedPtrToObj": ('smart.SharedPtr',),
-# class smart.Registry:
- "smart.Registry.__init__": (),
- "smart.Registry.add": [('smart.Integer',), ('smart.Obj',)],
- "smart.Registry.countIntegers": (),
- "smart.Registry.countObjects": (),
- "smart.Registry.getInstance": (),
- "smart.Registry.remove": [('smart.Integer',), ('smart.Obj',)],
- "smart.Registry.setShouldPrint": ('bool',),
- "smart.Registry.shouldPrint": (),
-# class smart.SharedPtr:
-# class smart.SharedPtr.__next_in_mro__:
-# class smart.SharedPtr<Integer >:
- "smart.SharedPtr<Integer >.__copy__": (),
- "smart.SharedPtr<Integer >.data": (),
- "smart.SharedPtr<Integer >.useCount": (),
-# class smart.SharedPtr<Obj >:
- "smart.SharedPtr<Obj >.__copy__": (),
- "smart.SharedPtr<Obj >.data": (),
- "smart.SharedPtr<Obj >.useCount": (),
-# class smart.SharedPtr<Smart::Integer2 >:
- "smart.SharedPtr<Smart::Integer2 >.__copy__": (),
- "smart.SharedPtr<Smart::Integer2 >.data": (),
- "smart.SharedPtr<Smart::Integer2 >.useCount": (),
- }) if "smart" in sys.modules else None
-# eof
diff --git a/sources/pyside6/tests/registry/exists_x86_64_suse_linux_5_14_2_ci.py b/sources/pyside6/tests/registry/exists_x86_64_suse_linux_5_14_2_ci.py
deleted file mode 100644
index 4e6bb4f54..000000000
--- a/sources/pyside6/tests/registry/exists_x86_64_suse_linux_5_14_2_ci.py
+++ /dev/null
@@ -1,37749 +0,0 @@
-#recreate # uncomment this to enforce generation
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-"""
-This file contains the simplified signatures for all functions in PySide
-for module 'exists_x86_64_suse_linux_5_14_2_ci' using
-Python 2.7.14 (default, Oct 12 2017, 15:50:02) [GCC]
-Qt 5.14.2 (x86_64-little_endian-lp64 shared (dynamic) debug build; by GCC 7.4.1 20190905 [gcc-7-branch revision 275407])
-There are no default values, no variable names and no self
-parameter. Only types are present after simplification. The
-functions 'next' resp. '__next__' are removed to make the output
-identical for Python 2 and 3. '__div__' is also removed,
-since it exists in Python 2, only.
-"""
-import sys
-sig_dict = {}
-# Module PySide2.QtCore
-sig_dict.update({
-# class PySide2.QtCore.ClassInfo:
- "PySide2.QtCore.ClassInfo.__init__": ('typing.Dict[str, str]',),
-# class PySide2.QtCore.MetaFunction:
- "PySide2.QtCore.MetaFunction.__call__": ('typing.Any',),
-# class PySide2.QtCore.MetaSignal:
- "PySide2.QtCore.MetaSignal.__instancecheck__": ('object',),
-# class PySide2.QtCore.Property:
- "PySide2.QtCore.Property.__init__": ('type', 'typing.Callable', 'typing.Callable', 'typing.Callable', 'typing.Callable', 'str', 'typing.Callable', 'bool', 'bool', 'bool', 'bool', 'bool', 'bool'),
- "PySide2.QtCore.Property.getter": ('typing.Callable',),
- "PySide2.QtCore.Property.read": ('typing.Callable',),
- "PySide2.QtCore.Property.setter": ('typing.Callable',),
- "PySide2.QtCore.Property.write": ('typing.Callable',),
-# class PySide2.QtCore.QAbstractAnimation:
-# class PySide2.QtCore.QAbstractAnimation.DeletionPolicy:
-# class PySide2.QtCore.QAbstractAnimation.Direction:
-# class PySide2.QtCore.QAbstractAnimation.State:
- "PySide2.QtCore.QAbstractAnimation.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QAbstractAnimation.currentLoop": (),
- "PySide2.QtCore.QAbstractAnimation.currentLoopTime": (),
- "PySide2.QtCore.QAbstractAnimation.currentTime": (),
- "PySide2.QtCore.QAbstractAnimation.direction": (),
- "PySide2.QtCore.QAbstractAnimation.duration": (),
- "PySide2.QtCore.QAbstractAnimation.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QAbstractAnimation.group": (),
- "PySide2.QtCore.QAbstractAnimation.loopCount": (),
- "PySide2.QtCore.QAbstractAnimation.pause": (),
- "PySide2.QtCore.QAbstractAnimation.resume": (),
- "PySide2.QtCore.QAbstractAnimation.setCurrentTime": ('int',),
- "PySide2.QtCore.QAbstractAnimation.setDirection": ('PySide2.QtCore.QAbstractAnimation.Direction',),
- "PySide2.QtCore.QAbstractAnimation.setLoopCount": ('int',),
- "PySide2.QtCore.QAbstractAnimation.setPaused": ('bool',),
- "PySide2.QtCore.QAbstractAnimation.start": ('PySide2.QtCore.QAbstractAnimation.DeletionPolicy',),
- "PySide2.QtCore.QAbstractAnimation.state": (),
- "PySide2.QtCore.QAbstractAnimation.stop": (),
- "PySide2.QtCore.QAbstractAnimation.totalDuration": (),
- "PySide2.QtCore.QAbstractAnimation.updateCurrentTime": ('int',),
- "PySide2.QtCore.QAbstractAnimation.updateDirection": ('PySide2.QtCore.QAbstractAnimation.Direction',),
- "PySide2.QtCore.QAbstractAnimation.updateState": ('PySide2.QtCore.QAbstractAnimation.State', 'PySide2.QtCore.QAbstractAnimation.State'),
-# class PySide2.QtCore.QAbstractEventDispatcher:
-# class PySide2.QtCore.QAbstractEventDispatcher.TimerInfo:
- "PySide2.QtCore.QAbstractEventDispatcher.TimerInfo.__init__": ('int', 'int', 'PySide2.QtCore.Qt.TimerType'),
- "PySide2.QtCore.QAbstractEventDispatcher.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QAbstractEventDispatcher.closingDown": (),
- "PySide2.QtCore.QAbstractEventDispatcher.filterNativeEvent": ('PySide2.QtCore.QByteArray', 'int'),
- "PySide2.QtCore.QAbstractEventDispatcher.flush": (),
- "PySide2.QtCore.QAbstractEventDispatcher.hasPendingEvents": (),
- "PySide2.QtCore.QAbstractEventDispatcher.installNativeEventFilter": ('PySide2.QtCore.QAbstractNativeEventFilter',),
- "PySide2.QtCore.QAbstractEventDispatcher.instance": ('PySide2.QtCore.QThread',),
- "PySide2.QtCore.QAbstractEventDispatcher.interrupt": (),
- "PySide2.QtCore.QAbstractEventDispatcher.processEvents": ('PySide2.QtCore.QEventLoop.ProcessEventsFlags',),
- "PySide2.QtCore.QAbstractEventDispatcher.registerSocketNotifier": ('PySide2.QtCore.QSocketNotifier',),
- "PySide2.QtCore.QAbstractEventDispatcher.registerTimer": [('int', 'PySide2.QtCore.Qt.TimerType', 'PySide2.QtCore.QObject'), ('int', 'int', 'PySide2.QtCore.Qt.TimerType', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QAbstractEventDispatcher.registeredTimers": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QAbstractEventDispatcher.remainingTime": ('int',),
- "PySide2.QtCore.QAbstractEventDispatcher.removeNativeEventFilter": ('PySide2.QtCore.QAbstractNativeEventFilter',),
- "PySide2.QtCore.QAbstractEventDispatcher.startingUp": (),
- "PySide2.QtCore.QAbstractEventDispatcher.unregisterSocketNotifier": ('PySide2.QtCore.QSocketNotifier',),
- "PySide2.QtCore.QAbstractEventDispatcher.unregisterTimer": ('int',),
- "PySide2.QtCore.QAbstractEventDispatcher.unregisterTimers": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QAbstractEventDispatcher.wakeUp": (),
-# class PySide2.QtCore.QAbstractItemModel:
-# class PySide2.QtCore.QAbstractItemModel.CheckIndexOption:
-# class PySide2.QtCore.QAbstractItemModel.CheckIndexOptions:
-# class PySide2.QtCore.QAbstractItemModel.LayoutChangeHint:
- "PySide2.QtCore.QAbstractItemModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QAbstractItemModel.beginInsertColumns": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtCore.QAbstractItemModel.beginInsertRows": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtCore.QAbstractItemModel.beginMoveColumns": ('PySide2.QtCore.QModelIndex', 'int', 'int', 'PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QAbstractItemModel.beginMoveRows": ('PySide2.QtCore.QModelIndex', 'int', 'int', 'PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QAbstractItemModel.beginRemoveColumns": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtCore.QAbstractItemModel.beginRemoveRows": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtCore.QAbstractItemModel.beginResetModel": (),
- "PySide2.QtCore.QAbstractItemModel.buddy": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractItemModel.canDropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.canFetchMore": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractItemModel.changePersistentIndex": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.changePersistentIndexList": ('typing.List[int]', 'typing.List[int]'),
- "PySide2.QtCore.QAbstractItemModel.checkIndex": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QAbstractItemModel.CheckIndexOptions'),
- "PySide2.QtCore.QAbstractItemModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractItemModel.createIndex": [('int', 'int', 'int'), ('int', 'int', 'object')],
- "PySide2.QtCore.QAbstractItemModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QAbstractItemModel.decodeData": ('int', 'int', 'PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QDataStream'),
- "PySide2.QtCore.QAbstractItemModel.dropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.encodeData": ('typing.List[int]', 'PySide2.QtCore.QDataStream'),
- "PySide2.QtCore.QAbstractItemModel.endInsertColumns": (),
- "PySide2.QtCore.QAbstractItemModel.endInsertRows": (),
- "PySide2.QtCore.QAbstractItemModel.endMoveColumns": (),
- "PySide2.QtCore.QAbstractItemModel.endMoveRows": (),
- "PySide2.QtCore.QAbstractItemModel.endRemoveColumns": (),
- "PySide2.QtCore.QAbstractItemModel.endRemoveRows": (),
- "PySide2.QtCore.QAbstractItemModel.endResetModel": (),
- "PySide2.QtCore.QAbstractItemModel.fetchMore": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractItemModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractItemModel.hasChildren": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractItemModel.hasIndex": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtCore.QAbstractItemModel.index": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.insertColumn": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.insertColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.insertRow": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.insertRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.itemData": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractItemModel.match": ('PySide2.QtCore.QModelIndex', 'int', 'typing.Any', 'int', 'PySide2.QtCore.Qt.MatchFlags'),
- "PySide2.QtCore.QAbstractItemModel.mimeData": ('typing.List[int]',),
- "PySide2.QtCore.QAbstractItemModel.mimeTypes": (),
- "PySide2.QtCore.QAbstractItemModel.moveColumn": ('PySide2.QtCore.QModelIndex', 'int', 'PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QAbstractItemModel.moveColumns": ('PySide2.QtCore.QModelIndex', 'int', 'int', 'PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QAbstractItemModel.moveRow": ('PySide2.QtCore.QModelIndex', 'int', 'PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QAbstractItemModel.moveRows": ('PySide2.QtCore.QModelIndex', 'int', 'int', 'PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QAbstractItemModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtCore.QAbstractItemModel.persistentIndexList": (),
- "PySide2.QtCore.QAbstractItemModel.removeColumn": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.removeColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.removeRow": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.removeRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.resetInternalData": (),
- "PySide2.QtCore.QAbstractItemModel.revert": (),
- "PySide2.QtCore.QAbstractItemModel.roleNames": (),
- "PySide2.QtCore.QAbstractItemModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractItemModel.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
- "PySide2.QtCore.QAbstractItemModel.setHeaderData": ('int', 'PySide2.QtCore.Qt.Orientation', 'typing.Any', 'int'),
- "PySide2.QtCore.QAbstractItemModel.setItemData": ('PySide2.QtCore.QModelIndex', 'typing.Dict[int, typing.Any]'),
- "PySide2.QtCore.QAbstractItemModel.sibling": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractItemModel.sort": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtCore.QAbstractItemModel.span": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractItemModel.submit": (),
- "PySide2.QtCore.QAbstractItemModel.supportedDragActions": (),
- "PySide2.QtCore.QAbstractItemModel.supportedDropActions": (),
-# class PySide2.QtCore.QAbstractListModel:
- "PySide2.QtCore.QAbstractListModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QAbstractListModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractListModel.dropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractListModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractListModel.hasChildren": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractListModel.index": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractListModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtCore.QAbstractListModel.sibling": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
-# class PySide2.QtCore.QAbstractNativeEventFilter:
- "PySide2.QtCore.QAbstractNativeEventFilter.__init__": (),
- "PySide2.QtCore.QAbstractNativeEventFilter.nativeEventFilter": ('PySide2.QtCore.QByteArray', 'int'),
-# class PySide2.QtCore.QAbstractProxyModel:
- "PySide2.QtCore.QAbstractProxyModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QAbstractProxyModel.buddy": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractProxyModel.canDropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractProxyModel.canFetchMore": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractProxyModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QAbstractProxyModel.dropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractProxyModel.fetchMore": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractProxyModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractProxyModel.hasChildren": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractProxyModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtCore.QAbstractProxyModel.itemData": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractProxyModel.mapFromSource": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractProxyModel.mapSelectionFromSource": ('PySide2.QtCore.QItemSelection',),
- "PySide2.QtCore.QAbstractProxyModel.mapSelectionToSource": ('PySide2.QtCore.QItemSelection',),
- "PySide2.QtCore.QAbstractProxyModel.mapToSource": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractProxyModel.mimeData": ('typing.List[int]',),
- "PySide2.QtCore.QAbstractProxyModel.mimeTypes": (),
- "PySide2.QtCore.QAbstractProxyModel.resetInternalData": (),
- "PySide2.QtCore.QAbstractProxyModel.revert": (),
- "PySide2.QtCore.QAbstractProxyModel.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
- "PySide2.QtCore.QAbstractProxyModel.setHeaderData": ('int', 'PySide2.QtCore.Qt.Orientation', 'typing.Any', 'int'),
- "PySide2.QtCore.QAbstractProxyModel.setItemData": ('PySide2.QtCore.QModelIndex', 'typing.Dict[int, typing.Any]'),
- "PySide2.QtCore.QAbstractProxyModel.setSourceModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCore.QAbstractProxyModel.sibling": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractProxyModel.sort": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtCore.QAbstractProxyModel.sourceModel": (),
- "PySide2.QtCore.QAbstractProxyModel.span": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractProxyModel.submit": (),
- "PySide2.QtCore.QAbstractProxyModel.supportedDragActions": (),
- "PySide2.QtCore.QAbstractProxyModel.supportedDropActions": (),
-# class PySide2.QtCore.QAbstractState:
- "PySide2.QtCore.QAbstractState.__init__": ('PySide2.QtCore.QState',),
- "PySide2.QtCore.QAbstractState.active": (),
- "PySide2.QtCore.QAbstractState.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QAbstractState.machine": (),
- "PySide2.QtCore.QAbstractState.onEntry": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QAbstractState.onExit": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QAbstractState.parentState": (),
-# class PySide2.QtCore.QAbstractTableModel:
- "PySide2.QtCore.QAbstractTableModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QAbstractTableModel.dropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractTableModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractTableModel.hasChildren": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QAbstractTableModel.index": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QAbstractTableModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtCore.QAbstractTableModel.sibling": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
-# class PySide2.QtCore.QAbstractTransition:
-# class PySide2.QtCore.QAbstractTransition.TransitionType:
- "PySide2.QtCore.QAbstractTransition.__init__": ('PySide2.QtCore.QState',),
- "PySide2.QtCore.QAbstractTransition.addAnimation": ('PySide2.QtCore.QAbstractAnimation',),
- "PySide2.QtCore.QAbstractTransition.animations": (),
- "PySide2.QtCore.QAbstractTransition.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QAbstractTransition.eventTest": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QAbstractTransition.machine": (),
- "PySide2.QtCore.QAbstractTransition.onTransition": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QAbstractTransition.removeAnimation": ('PySide2.QtCore.QAbstractAnimation',),
- "PySide2.QtCore.QAbstractTransition.setTargetState": ('PySide2.QtCore.QAbstractState',),
- "PySide2.QtCore.QAbstractTransition.setTargetStates": ('typing.Sequence[PySide2.QtCore.QAbstractState]',),
- "PySide2.QtCore.QAbstractTransition.setTransitionType": ('PySide2.QtCore.QAbstractTransition.TransitionType',),
- "PySide2.QtCore.QAbstractTransition.sourceState": (),
- "PySide2.QtCore.QAbstractTransition.targetState": (),
- "PySide2.QtCore.QAbstractTransition.targetStates": (),
- "PySide2.QtCore.QAbstractTransition.transitionType": (),
-# class PySide2.QtCore.QAnimationGroup:
- "PySide2.QtCore.QAnimationGroup.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QAnimationGroup.addAnimation": ('PySide2.QtCore.QAbstractAnimation',),
- "PySide2.QtCore.QAnimationGroup.animationAt": ('int',),
- "PySide2.QtCore.QAnimationGroup.animationCount": (),
- "PySide2.QtCore.QAnimationGroup.clear": (),
- "PySide2.QtCore.QAnimationGroup.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QAnimationGroup.indexOfAnimation": ('PySide2.QtCore.QAbstractAnimation',),
- "PySide2.QtCore.QAnimationGroup.insertAnimation": ('int', 'PySide2.QtCore.QAbstractAnimation'),
- "PySide2.QtCore.QAnimationGroup.removeAnimation": ('PySide2.QtCore.QAbstractAnimation',),
- "PySide2.QtCore.QAnimationGroup.takeAnimation": ('int',),
-# class PySide2.QtCore.QBasicMutex:
- "PySide2.QtCore.QBasicMutex.__init__": (),
- "PySide2.QtCore.QBasicMutex.isRecursive": (),
- "PySide2.QtCore.QBasicMutex.lock": (),
- "PySide2.QtCore.QBasicMutex.tryLock": (),
- "PySide2.QtCore.QBasicMutex.try_lock": (),
- "PySide2.QtCore.QBasicMutex.unlock": (),
-# class PySide2.QtCore.QBasicTimer:
- "PySide2.QtCore.QBasicTimer.__init__": [(), ('PySide2.QtCore.QBasicTimer',)],
- "PySide2.QtCore.QBasicTimer.__copy__": (),
- "PySide2.QtCore.QBasicTimer.isActive": (),
- "PySide2.QtCore.QBasicTimer.start": [('int', 'PySide2.QtCore.QObject'), ('int', 'PySide2.QtCore.Qt.TimerType', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QBasicTimer.stop": (),
- "PySide2.QtCore.QBasicTimer.swap": ('PySide2.QtCore.QBasicTimer',),
- "PySide2.QtCore.QBasicTimer.timerId": (),
-# class PySide2.QtCore.QBitArray:
- "PySide2.QtCore.QBitArray.__init__": [(), ('PySide2.QtCore.QBitArray',), ('int', 'bool')],
- "PySide2.QtCore.QBitArray.__and__": ('PySide2.QtCore.QBitArray',),
- "PySide2.QtCore.QBitArray.__copy__": (),
- "PySide2.QtCore.QBitArray.__iand__": ('PySide2.QtCore.QBitArray',),
- "PySide2.QtCore.QBitArray.__invert__": (),
- "PySide2.QtCore.QBitArray.__ior__": ('PySide2.QtCore.QBitArray',),
- "PySide2.QtCore.QBitArray.__ixor__": ('PySide2.QtCore.QBitArray',),
- "PySide2.QtCore.QBitArray.__or__": ('PySide2.QtCore.QBitArray',),
- "PySide2.QtCore.QBitArray.__xor__": ('PySide2.QtCore.QBitArray',),
- "PySide2.QtCore.QBitArray.at": ('int',),
- "PySide2.QtCore.QBitArray.bits": (),
- "PySide2.QtCore.QBitArray.clear": (),
- "PySide2.QtCore.QBitArray.clearBit": ('int',),
- "PySide2.QtCore.QBitArray.count": [(), ('bool',)],
- "PySide2.QtCore.QBitArray.fill": [('bool', 'int'), ('bool', 'int', 'int')],
- "PySide2.QtCore.QBitArray.fromBits": ('str', 'int'),
- "PySide2.QtCore.QBitArray.isEmpty": (),
- "PySide2.QtCore.QBitArray.isNull": (),
- "PySide2.QtCore.QBitArray.resize": ('int',),
- "PySide2.QtCore.QBitArray.setBit": [('int',), ('int', 'bool')],
- "PySide2.QtCore.QBitArray.size": (),
- "PySide2.QtCore.QBitArray.swap": ('PySide2.QtCore.QBitArray',),
- "PySide2.QtCore.QBitArray.testBit": ('int',),
- "PySide2.QtCore.QBitArray.toggleBit": ('int',),
- "PySide2.QtCore.QBitArray.truncate": ('int',),
-# class PySide2.QtCore.QBuffer:
- "PySide2.QtCore.QBuffer.__init__": [('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QObject',)],
- "PySide2.QtCore.QBuffer.atEnd": (),
- "PySide2.QtCore.QBuffer.buffer": (),
- "PySide2.QtCore.QBuffer.canReadLine": (),
- "PySide2.QtCore.QBuffer.close": (),
- "PySide2.QtCore.QBuffer.connectNotify": ('PySide2.QtCore.QMetaMethod',),
- "PySide2.QtCore.QBuffer.data": (),
- "PySide2.QtCore.QBuffer.disconnectNotify": ('PySide2.QtCore.QMetaMethod',),
- "PySide2.QtCore.QBuffer.open": ('PySide2.QtCore.QIODevice.OpenMode',),
- "PySide2.QtCore.QBuffer.pos": (),
- "PySide2.QtCore.QBuffer.readData": ('str', 'int'),
- "PySide2.QtCore.QBuffer.seek": ('int',),
- "PySide2.QtCore.QBuffer.setBuffer": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QBuffer.setData": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QBuffer.size": (),
- "PySide2.QtCore.QBuffer.writeData": ('str', 'int'),
-# class PySide2.QtCore.QByteArray:
-# class PySide2.QtCore.QByteArray.Base64Option:
-# class PySide2.QtCore.QByteArray.Base64Options:
- "PySide2.QtCore.QByteArray.__init__": [(), ('PySide2.QtCore.QByteArray',), ('bytearray',), ('int', 'int'), ('str',)],
- "PySide2.QtCore.QByteArray.__add__": [('PySide2.QtCore.QByteArray',), ('bytearray',), ('int',), ('str',)],
- "PySide2.QtCore.QByteArray.__copy__": (),
- "PySide2.QtCore.QByteArray.__iadd__": [('PySide2.QtCore.QByteArray',), ('bytearray',), ('int',)],
- "PySide2.QtCore.QByteArray.__reduce__": (),
- "PySide2.QtCore.QByteArray.__repr__": (),
- "PySide2.QtCore.QByteArray.__str__": (),
- "PySide2.QtCore.QByteArray.append": [('PySide2.QtCore.QByteArray',), ('int',), ('int', 'int')],
- "PySide2.QtCore.QByteArray.at": ('int',),
- "PySide2.QtCore.QByteArray.back": (),
- "PySide2.QtCore.QByteArray.capacity": (),
- "PySide2.QtCore.QByteArray.cbegin": (),
- "PySide2.QtCore.QByteArray.cend": (),
- "PySide2.QtCore.QByteArray.chop": ('int',),
- "PySide2.QtCore.QByteArray.chopped": ('int',),
- "PySide2.QtCore.QByteArray.clear": (),
- "PySide2.QtCore.QByteArray.compare": [('PySide2.QtCore.QByteArray', 'PySide2.QtCore.Qt.CaseSensitivity'), ('str', 'PySide2.QtCore.Qt.CaseSensitivity')],
- "PySide2.QtCore.QByteArray.contains": [('PySide2.QtCore.QByteArray',), ('int',)],
- "PySide2.QtCore.QByteArray.count": [(), ('PySide2.QtCore.QByteArray',), ('int',)],
- "PySide2.QtCore.QByteArray.data": (),
- "PySide2.QtCore.QByteArray.endsWith": [('PySide2.QtCore.QByteArray',), ('int',)],
- "PySide2.QtCore.QByteArray.fill": ('int', 'int'),
- "PySide2.QtCore.QByteArray.fromBase64": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray.Base64Options')],
- "PySide2.QtCore.QByteArray.fromHex": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QByteArray.fromPercentEncoding": ('PySide2.QtCore.QByteArray', 'int'),
- "PySide2.QtCore.QByteArray.fromRawData": ('str', 'int'),
- "PySide2.QtCore.QByteArray.front": (),
- "PySide2.QtCore.QByteArray.indexOf": ('PySide2.QtCore.QByteArray', 'int'),
- "PySide2.QtCore.QByteArray.insert": [('int', 'PySide2.QtCore.QByteArray'), ('int', 'int', 'int')],
- "PySide2.QtCore.QByteArray.isEmpty": (),
- "PySide2.QtCore.QByteArray.isLower": (),
- "PySide2.QtCore.QByteArray.isNull": (),
- "PySide2.QtCore.QByteArray.isSharedWith": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QByteArray.isUpper": (),
- "PySide2.QtCore.QByteArray.lastIndexOf": ('PySide2.QtCore.QByteArray', 'int'),
- "PySide2.QtCore.QByteArray.left": ('int',),
- "PySide2.QtCore.QByteArray.leftJustified": ('int', 'int', 'bool'),
- "PySide2.QtCore.QByteArray.length": (),
- "PySide2.QtCore.QByteArray.mid": ('int', 'int'),
- "PySide2.QtCore.QByteArray.number": [('float', 'int', 'int'), ('int', 'int')],
- "PySide2.QtCore.QByteArray.prepend": [('PySide2.QtCore.QByteArray',), ('int',), ('int', 'int')],
- "PySide2.QtCore.QByteArray.remove": ('int', 'int'),
- "PySide2.QtCore.QByteArray.repeated": ('int',),
- "PySide2.QtCore.QByteArray.replace": [('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'), ('int', 'PySide2.QtCore.QByteArray'), ('int', 'int'), ('int', 'int', 'PySide2.QtCore.QByteArray'), ('str', 'PySide2.QtCore.QByteArray')],
- "PySide2.QtCore.QByteArray.reserve": ('int',),
- "PySide2.QtCore.QByteArray.resize": ('int',),
- "PySide2.QtCore.QByteArray.right": ('int',),
- "PySide2.QtCore.QByteArray.rightJustified": ('int', 'int', 'bool'),
- "PySide2.QtCore.QByteArray.setNum": [('float', 'int', 'int'), ('int', 'int')],
- "PySide2.QtCore.QByteArray.setRawData": ('str', 'int'),
- "PySide2.QtCore.QByteArray.shrink_to_fit": (),
- "PySide2.QtCore.QByteArray.simplified": (),
- "PySide2.QtCore.QByteArray.size": (),
- "PySide2.QtCore.QByteArray.split": ('int',),
- "PySide2.QtCore.QByteArray.squeeze": (),
- "PySide2.QtCore.QByteArray.startsWith": [('PySide2.QtCore.QByteArray',), ('int',)],
- "PySide2.QtCore.QByteArray.swap": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QByteArray.toBase64": [(), ('PySide2.QtCore.QByteArray.Base64Options',)],
- "PySide2.QtCore.QByteArray.toDouble": (),
- "PySide2.QtCore.QByteArray.toFloat": (),
- "PySide2.QtCore.QByteArray.toHex": [(), ('int',)],
- "PySide2.QtCore.QByteArray.toInt": ('int',),
- "PySide2.QtCore.QByteArray.toLong": ('int',),
- "PySide2.QtCore.QByteArray.toLongLong": ('int',),
- "PySide2.QtCore.QByteArray.toLower": (),
- "PySide2.QtCore.QByteArray.toPercentEncoding": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray', 'int'),
- "PySide2.QtCore.QByteArray.toShort": ('int',),
- "PySide2.QtCore.QByteArray.toUInt": ('int',),
- "PySide2.QtCore.QByteArray.toULong": ('int',),
- "PySide2.QtCore.QByteArray.toULongLong": ('int',),
- "PySide2.QtCore.QByteArray.toUShort": ('int',),
- "PySide2.QtCore.QByteArray.toUpper": (),
- "PySide2.QtCore.QByteArray.trimmed": (),
- "PySide2.QtCore.QByteArray.truncate": ('int',),
-# class PySide2.QtCore.QByteArrayMatcher:
- "PySide2.QtCore.QByteArrayMatcher.__init__": [(), ('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QByteArrayMatcher',), ('str', 'int')],
- "PySide2.QtCore.QByteArrayMatcher.__copy__": (),
- "PySide2.QtCore.QByteArrayMatcher.indexIn": [('PySide2.QtCore.QByteArray', 'int'), ('str', 'int', 'int')],
- "PySide2.QtCore.QByteArrayMatcher.pattern": (),
- "PySide2.QtCore.QByteArrayMatcher.setPattern": ('PySide2.QtCore.QByteArray',),
-# class PySide2.QtCore.QCalendar:
-# class PySide2.QtCore.QCalendar.System:
-# class PySide2.QtCore.QCalendar.YearMonthDay:
- "PySide2.QtCore.QCalendar.YearMonthDay.__init__": [(), ('PySide2.QtCore.QCalendar.YearMonthDay',), ('int', 'int', 'int')],
- "PySide2.QtCore.QCalendar.YearMonthDay.__copy__": (),
- "PySide2.QtCore.QCalendar.YearMonthDay.isValid": (),
- "PySide2.QtCore.QCalendar.__init__": [(), ('PySide2.QtCore.QCalendar.System',)],
- "PySide2.QtCore.QCalendar.__copy__": (),
- "PySide2.QtCore.QCalendar.availableCalendars": (),
- "PySide2.QtCore.QCalendar.dateFromParts": [('PySide2.QtCore.QCalendar.YearMonthDay',), ('int', 'int', 'int')],
- "PySide2.QtCore.QCalendar.dayOfWeek": ('PySide2.QtCore.QDate',),
- "PySide2.QtCore.QCalendar.daysInMonth": ('int', 'int'),
- "PySide2.QtCore.QCalendar.daysInYear": ('int',),
- "PySide2.QtCore.QCalendar.hasYearZero": (),
- "PySide2.QtCore.QCalendar.isDateValid": ('int', 'int', 'int'),
- "PySide2.QtCore.QCalendar.isGregorian": (),
- "PySide2.QtCore.QCalendar.isLeapYear": ('int',),
- "PySide2.QtCore.QCalendar.isLunar": (),
- "PySide2.QtCore.QCalendar.isLuniSolar": (),
- "PySide2.QtCore.QCalendar.isProleptic": (),
- "PySide2.QtCore.QCalendar.isSolar": (),
- "PySide2.QtCore.QCalendar.isValid": (),
- "PySide2.QtCore.QCalendar.maximumDaysInMonth": (),
- "PySide2.QtCore.QCalendar.maximumMonthsInYear": (),
- "PySide2.QtCore.QCalendar.minimumDaysInMonth": (),
- "PySide2.QtCore.QCalendar.monthName": ('PySide2.QtCore.QLocale', 'int', 'int', 'PySide2.QtCore.QLocale.FormatType'),
- "PySide2.QtCore.QCalendar.monthsInYear": ('int',),
- "PySide2.QtCore.QCalendar.name": (),
- "PySide2.QtCore.QCalendar.partsFromDate": ('PySide2.QtCore.QDate',),
- "PySide2.QtCore.QCalendar.standaloneMonthName": ('PySide2.QtCore.QLocale', 'int', 'int', 'PySide2.QtCore.QLocale.FormatType'),
- "PySide2.QtCore.QCalendar.standaloneWeekDayName": ('PySide2.QtCore.QLocale', 'int', 'PySide2.QtCore.QLocale.FormatType'),
- "PySide2.QtCore.QCalendar.weekDayName": ('PySide2.QtCore.QLocale', 'int', 'PySide2.QtCore.QLocale.FormatType'),
-# class PySide2.QtCore.QCborArray:
- "PySide2.QtCore.QCborArray.__init__": [(), ('PySide2.QtCore.QCborArray',)],
- "PySide2.QtCore.QCborArray.__add__": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborArray.__copy__": (),
- "PySide2.QtCore.QCborArray.__iadd__": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborArray.__lshift__": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborArray.append": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborArray.at": ('int',),
- "PySide2.QtCore.QCborArray.clear": (),
- "PySide2.QtCore.QCborArray.compare": ('PySide2.QtCore.QCborArray',),
- "PySide2.QtCore.QCborArray.contains": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborArray.empty": (),
- "PySide2.QtCore.QCborArray.first": (),
- "PySide2.QtCore.QCborArray.fromJsonArray": ('PySide2.QtCore.QJsonArray',),
- "PySide2.QtCore.QCborArray.fromStringList": ('typing.Sequence[str]',),
- "PySide2.QtCore.QCborArray.fromVariantList": ('typing.Sequence[typing.Any]',),
- "PySide2.QtCore.QCborArray.insert": ('int', 'PySide2.QtCore.QCborValue'),
- "PySide2.QtCore.QCborArray.isEmpty": (),
- "PySide2.QtCore.QCborArray.last": (),
- "PySide2.QtCore.QCborArray.pop_back": (),
- "PySide2.QtCore.QCborArray.pop_front": (),
- "PySide2.QtCore.QCborArray.prepend": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborArray.push_back": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborArray.push_front": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborArray.removeAt": ('int',),
- "PySide2.QtCore.QCborArray.removeFirst": (),
- "PySide2.QtCore.QCborArray.removeLast": (),
- "PySide2.QtCore.QCborArray.size": (),
- "PySide2.QtCore.QCborArray.swap": ('PySide2.QtCore.QCborArray',),
- "PySide2.QtCore.QCborArray.takeAt": ('int',),
- "PySide2.QtCore.QCborArray.takeFirst": (),
- "PySide2.QtCore.QCborArray.takeLast": (),
- "PySide2.QtCore.QCborArray.toCborValue": (),
- "PySide2.QtCore.QCborArray.toJsonArray": (),
- "PySide2.QtCore.QCborArray.toVariantList": (),
-# class PySide2.QtCore.QCborError:
-# class PySide2.QtCore.QCborError.Code:
- "PySide2.QtCore.QCborError.__init__": [(), ('PySide2.QtCore.QCborError',)],
- "PySide2.QtCore.QCborError.__copy__": (),
- "PySide2.QtCore.QCborError.toString": (),
-# class PySide2.QtCore.QCborKnownTags:
-# class PySide2.QtCore.QCborMap:
- "PySide2.QtCore.QCborMap.__init__": [(), ('PySide2.QtCore.QCborMap',)],
- "PySide2.QtCore.QCborMap.__copy__": (),
- "PySide2.QtCore.QCborMap.clear": (),
- "PySide2.QtCore.QCborMap.compare": ('PySide2.QtCore.QCborMap',),
- "PySide2.QtCore.QCborMap.contains": [('PySide2.QtCore.QCborValue',), ('int',), ('str',)],
- "PySide2.QtCore.QCborMap.empty": (),
- "PySide2.QtCore.QCborMap.fromJsonObject": ('typing.Dict[str, PySide2.QtCore.QJsonValue]',),
- "PySide2.QtCore.QCborMap.fromVariantHash": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtCore.QCborMap.fromVariantMap": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtCore.QCborMap.isEmpty": (),
- "PySide2.QtCore.QCborMap.keys": (),
- "PySide2.QtCore.QCborMap.remove": [('PySide2.QtCore.QCborValue',), ('int',), ('str',)],
- "PySide2.QtCore.QCborMap.size": (),
- "PySide2.QtCore.QCborMap.swap": ('PySide2.QtCore.QCborMap',),
- "PySide2.QtCore.QCborMap.take": [('PySide2.QtCore.QCborValue',), ('int',), ('str',)],
- "PySide2.QtCore.QCborMap.toCborValue": (),
- "PySide2.QtCore.QCborMap.toJsonObject": (),
- "PySide2.QtCore.QCborMap.toVariantHash": (),
- "PySide2.QtCore.QCborMap.toVariantMap": (),
- "PySide2.QtCore.QCborMap.value": [('PySide2.QtCore.QCborValue',), ('int',), ('str',)],
-# class PySide2.QtCore.QCborParserError:
- "PySide2.QtCore.QCborParserError.__init__": [(), ('PySide2.QtCore.QCborParserError',)],
- "PySide2.QtCore.QCborParserError.__copy__": (),
- "PySide2.QtCore.QCborParserError.errorString": (),
-# class PySide2.QtCore.QCborSimpleType:
-# class PySide2.QtCore.QCborStreamReader:
-# class PySide2.QtCore.QCborStreamReader.StringResultCode:
-# class PySide2.QtCore.QCborStreamReader.Type:
- "PySide2.QtCore.QCborStreamReader.__init__": [(), ('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QIODevice',), ('bytearray', 'int'), ('str', 'int')],
- "PySide2.QtCore.QCborStreamReader.addData": [('PySide2.QtCore.QByteArray',), ('bytearray', 'int'), ('str', 'int')],
- "PySide2.QtCore.QCborStreamReader.clear": (),
- "PySide2.QtCore.QCborStreamReader.containerDepth": (),
- "PySide2.QtCore.QCborStreamReader.currentOffset": (),
- "PySide2.QtCore.QCborStreamReader.currentStringChunkSize": (),
- "PySide2.QtCore.QCborStreamReader.device": (),
- "PySide2.QtCore.QCborStreamReader.enterContainer": (),
- "PySide2.QtCore.QCborStreamReader.hasNext": (),
- "PySide2.QtCore.QCborStreamReader.isArray": (),
- "PySide2.QtCore.QCborStreamReader.isBool": (),
- "PySide2.QtCore.QCborStreamReader.isByteArray": (),
- "PySide2.QtCore.QCborStreamReader.isContainer": (),
- "PySide2.QtCore.QCborStreamReader.isDouble": (),
- "PySide2.QtCore.QCborStreamReader.isFalse": (),
- "PySide2.QtCore.QCborStreamReader.isFloat": (),
- "PySide2.QtCore.QCborStreamReader.isFloat16": (),
- "PySide2.QtCore.QCborStreamReader.isInteger": (),
- "PySide2.QtCore.QCborStreamReader.isInvalid": (),
- "PySide2.QtCore.QCborStreamReader.isLengthKnown": (),
- "PySide2.QtCore.QCborStreamReader.isMap": (),
- "PySide2.QtCore.QCborStreamReader.isNegativeInteger": (),
- "PySide2.QtCore.QCborStreamReader.isNull": (),
- "PySide2.QtCore.QCborStreamReader.isSimpleType": [(), ('PySide2.QtCore.QCborSimpleType',)],
- "PySide2.QtCore.QCborStreamReader.isString": (),
- "PySide2.QtCore.QCborStreamReader.isTag": (),
- "PySide2.QtCore.QCborStreamReader.isTrue": (),
- "PySide2.QtCore.QCborStreamReader.isUndefined": (),
- "PySide2.QtCore.QCborStreamReader.isUnsignedInteger": (),
- "PySide2.QtCore.QCborStreamReader.isValid": (),
- "PySide2.QtCore.QCborStreamReader.lastError": (),
- "PySide2.QtCore.QCborStreamReader.leaveContainer": (),
- "PySide2.QtCore.QCborStreamReader.length": (),
- "PySide2.QtCore.QCborStreamReader.parentContainerType": (),
- "PySide2.QtCore.QCborStreamReader.readByteArray": (),
- "PySide2.QtCore.QCborStreamReader.readString": (),
- "PySide2.QtCore.QCborStreamReader.reparse": (),
- "PySide2.QtCore.QCborStreamReader.reset": (),
- "PySide2.QtCore.QCborStreamReader.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtCore.QCborStreamReader.toBool": (),
- "PySide2.QtCore.QCborStreamReader.toDouble": (),
- "PySide2.QtCore.QCborStreamReader.toFloat": (),
- "PySide2.QtCore.QCborStreamReader.toInteger": (),
- "PySide2.QtCore.QCborStreamReader.toSimpleType": (),
- "PySide2.QtCore.QCborStreamReader.toUnsignedInteger": (),
- "PySide2.QtCore.QCborStreamReader.type": (),
-# class PySide2.QtCore.QCborStreamWriter:
- "PySide2.QtCore.QCborStreamWriter.__init__": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QIODevice',)],
- "PySide2.QtCore.QCborStreamWriter.append": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QCborKnownTags',), ('PySide2.QtCore.QCborSimpleType',), ('bool',), ('float',), ('int',), ('str', 'int')],
- "PySide2.QtCore.QCborStreamWriter.appendByteString": ('str', 'int'),
- "PySide2.QtCore.QCborStreamWriter.appendNull": (),
- "PySide2.QtCore.QCborStreamWriter.appendTextString": ('str', 'int'),
- "PySide2.QtCore.QCborStreamWriter.appendUndefined": (),
- "PySide2.QtCore.QCborStreamWriter.device": (),
- "PySide2.QtCore.QCborStreamWriter.endArray": (),
- "PySide2.QtCore.QCborStreamWriter.endMap": (),
- "PySide2.QtCore.QCborStreamWriter.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtCore.QCborStreamWriter.startArray": [(), ('int',)],
- "PySide2.QtCore.QCborStreamWriter.startMap": [(), ('int',)],
-# class PySide2.QtCore.QCborStringResultByteArray:
- "PySide2.QtCore.QCborStringResultByteArray.__init__": [(), ('PySide2.QtCore.QCborStringResultByteArray',)],
- "PySide2.QtCore.QCborStringResultByteArray.__copy__": (),
-# class PySide2.QtCore.QCborStringResultString:
- "PySide2.QtCore.QCborStringResultString.__init__": [(), ('PySide2.QtCore.QCborStringResultString',)],
- "PySide2.QtCore.QCborStringResultString.__copy__": (),
-# class PySide2.QtCore.QCborValue:
-# class PySide2.QtCore.QCborValue.DiagnosticNotationOption:
-# class PySide2.QtCore.QCborValue.DiagnosticNotationOptions:
-# class PySide2.QtCore.QCborValue.EncodingOption:
-# class PySide2.QtCore.QCborValue.EncodingOptions:
-# class PySide2.QtCore.QCborValue.Type:
- "PySide2.QtCore.QCborValue.__init__": [(), ('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QCborArray',), ('PySide2.QtCore.QCborKnownTags', 'PySide2.QtCore.QCborValue'), ('PySide2.QtCore.QCborMap',), ('PySide2.QtCore.QCborSimpleType',), ('PySide2.QtCore.QCborValue',), ('PySide2.QtCore.QCborValue.Type',), ('PySide2.QtCore.QDateTime',), ('PySide2.QtCore.QRegularExpression',), ('PySide2.QtCore.QUrl',), ('PySide2.QtCore.QUuid',), ('bool',), ('float',), ('int',), ('str',)],
- "PySide2.QtCore.QCborValue.__copy__": (),
- "PySide2.QtCore.QCborValue.compare": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborValue.fromCbor": [('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QCborParserError'), ('PySide2.QtCore.QCborStreamReader',), ('bytearray', 'int', 'PySide2.QtCore.QCborParserError'), ('str', 'int', 'PySide2.QtCore.QCborParserError')],
- "PySide2.QtCore.QCborValue.fromJsonValue": ('PySide2.QtCore.QJsonValue',),
- "PySide2.QtCore.QCborValue.fromVariant": ('typing.Any',),
- "PySide2.QtCore.QCborValue.isArray": (),
- "PySide2.QtCore.QCborValue.isBool": (),
- "PySide2.QtCore.QCborValue.isByteArray": (),
- "PySide2.QtCore.QCborValue.isContainer": (),
- "PySide2.QtCore.QCborValue.isDateTime": (),
- "PySide2.QtCore.QCborValue.isDouble": (),
- "PySide2.QtCore.QCborValue.isFalse": (),
- "PySide2.QtCore.QCborValue.isInteger": (),
- "PySide2.QtCore.QCborValue.isInvalid": (),
- "PySide2.QtCore.QCborValue.isMap": (),
- "PySide2.QtCore.QCborValue.isNull": (),
- "PySide2.QtCore.QCborValue.isRegularExpression": (),
- "PySide2.QtCore.QCborValue.isSimpleType": [(), ('PySide2.QtCore.QCborSimpleType',)],
- "PySide2.QtCore.QCborValue.isString": (),
- "PySide2.QtCore.QCborValue.isTag": (),
- "PySide2.QtCore.QCborValue.isTrue": (),
- "PySide2.QtCore.QCborValue.isUndefined": (),
- "PySide2.QtCore.QCborValue.isUrl": (),
- "PySide2.QtCore.QCborValue.isUuid": (),
- "PySide2.QtCore.QCborValue.swap": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborValue.taggedValue": ('PySide2.QtCore.QCborValue',),
- "PySide2.QtCore.QCborValue.toArray": [(), ('PySide2.QtCore.QCborArray',)],
- "PySide2.QtCore.QCborValue.toBool": ('bool',),
- "PySide2.QtCore.QCborValue.toByteArray": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QCborValue.toCbor": [('PySide2.QtCore.QCborStreamWriter', 'PySide2.QtCore.QCborValue.EncodingOptions'), ('PySide2.QtCore.QCborValue.EncodingOptions',)],
- "PySide2.QtCore.QCborValue.toDateTime": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QCborValue.toDiagnosticNotation": ('PySide2.QtCore.QCborValue.DiagnosticNotationOptions',),
- "PySide2.QtCore.QCborValue.toDouble": ('float',),
- "PySide2.QtCore.QCborValue.toInteger": ('int',),
- "PySide2.QtCore.QCborValue.toJsonValue": (),
- "PySide2.QtCore.QCborValue.toMap": [(), ('PySide2.QtCore.QCborMap',)],
- "PySide2.QtCore.QCborValue.toRegularExpression": ('PySide2.QtCore.QRegularExpression',),
- "PySide2.QtCore.QCborValue.toSimpleType": ('PySide2.QtCore.QCborSimpleType',),
- "PySide2.QtCore.QCborValue.toString": ('str',),
- "PySide2.QtCore.QCborValue.toUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtCore.QCborValue.toUuid": ('PySide2.QtCore.QUuid',),
- "PySide2.QtCore.QCborValue.toVariant": (),
- "PySide2.QtCore.QCborValue.type": (),
-# class PySide2.QtCore.QChildEvent:
- "PySide2.QtCore.QChildEvent.__init__": ('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.QObject'),
- "PySide2.QtCore.QChildEvent.added": (),
- "PySide2.QtCore.QChildEvent.child": (),
- "PySide2.QtCore.QChildEvent.polished": (),
- "PySide2.QtCore.QChildEvent.removed": (),
-# class PySide2.QtCore.QCollator:
- "PySide2.QtCore.QCollator.__init__": [(), ('PySide2.QtCore.QCollator',), ('PySide2.QtCore.QLocale',)],
- "PySide2.QtCore.QCollator.__call__": ('str', 'str'),
- "PySide2.QtCore.QCollator.caseSensitivity": (),
- "PySide2.QtCore.QCollator.compare": [('str', 'int', 'str', 'int'), ('str', 'str')],
- "PySide2.QtCore.QCollator.ignorePunctuation": (),
- "PySide2.QtCore.QCollator.locale": (),
- "PySide2.QtCore.QCollator.numericMode": (),
- "PySide2.QtCore.QCollator.setCaseSensitivity": ('PySide2.QtCore.Qt.CaseSensitivity',),
- "PySide2.QtCore.QCollator.setIgnorePunctuation": ('bool',),
- "PySide2.QtCore.QCollator.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtCore.QCollator.setNumericMode": ('bool',),
- "PySide2.QtCore.QCollator.sortKey": ('str',),
- "PySide2.QtCore.QCollator.swap": ('PySide2.QtCore.QCollator',),
-# class PySide2.QtCore.QCollatorSortKey:
- "PySide2.QtCore.QCollatorSortKey.__init__": ('PySide2.QtCore.QCollatorSortKey',),
- "PySide2.QtCore.QCollatorSortKey.compare": ('PySide2.QtCore.QCollatorSortKey',),
- "PySide2.QtCore.QCollatorSortKey.swap": ('PySide2.QtCore.QCollatorSortKey',),
-# class PySide2.QtCore.QCommandLineOption:
-# class PySide2.QtCore.QCommandLineOption.Flag:
-# class PySide2.QtCore.QCommandLineOption.Flags:
- "PySide2.QtCore.QCommandLineOption.__init__": [('PySide2.QtCore.QCommandLineOption',), ('str',), ('str', 'str', 'str', 'str'), ('typing.Sequence[str]',), ('typing.Sequence[str]', 'str', 'str', 'str')],
- "PySide2.QtCore.QCommandLineOption.defaultValues": (),
- "PySide2.QtCore.QCommandLineOption.description": (),
- "PySide2.QtCore.QCommandLineOption.flags": (),
- "PySide2.QtCore.QCommandLineOption.isHidden": (),
- "PySide2.QtCore.QCommandLineOption.names": (),
- "PySide2.QtCore.QCommandLineOption.setDefaultValue": ('str',),
- "PySide2.QtCore.QCommandLineOption.setDefaultValues": ('typing.Sequence[str]',),
- "PySide2.QtCore.QCommandLineOption.setDescription": ('str',),
- "PySide2.QtCore.QCommandLineOption.setFlags": ('PySide2.QtCore.QCommandLineOption.Flags',),
- "PySide2.QtCore.QCommandLineOption.setHidden": ('bool',),
- "PySide2.QtCore.QCommandLineOption.setValueName": ('str',),
- "PySide2.QtCore.QCommandLineOption.swap": ('PySide2.QtCore.QCommandLineOption',),
- "PySide2.QtCore.QCommandLineOption.valueName": (),
-# class PySide2.QtCore.QCommandLineParser:
-# class PySide2.QtCore.QCommandLineParser.OptionsAfterPositionalArgumentsMode:
-# class PySide2.QtCore.QCommandLineParser.SingleDashWordOptionMode:
- "PySide2.QtCore.QCommandLineParser.__init__": (),
- "PySide2.QtCore.QCommandLineParser.addHelpOption": (),
- "PySide2.QtCore.QCommandLineParser.addOption": ('PySide2.QtCore.QCommandLineOption',),
- "PySide2.QtCore.QCommandLineParser.addOptions": ('typing.Sequence[PySide2.QtCore.QCommandLineOption]',),
- "PySide2.QtCore.QCommandLineParser.addPositionalArgument": ('str', 'str', 'str'),
- "PySide2.QtCore.QCommandLineParser.addVersionOption": (),
- "PySide2.QtCore.QCommandLineParser.applicationDescription": (),
- "PySide2.QtCore.QCommandLineParser.clearPositionalArguments": (),
- "PySide2.QtCore.QCommandLineParser.errorText": (),
- "PySide2.QtCore.QCommandLineParser.helpText": (),
- "PySide2.QtCore.QCommandLineParser.isSet": [('PySide2.QtCore.QCommandLineOption',), ('str',)],
- "PySide2.QtCore.QCommandLineParser.optionNames": (),
- "PySide2.QtCore.QCommandLineParser.parse": ('typing.Sequence[str]',),
- "PySide2.QtCore.QCommandLineParser.positionalArguments": (),
- "PySide2.QtCore.QCommandLineParser.process": [('PySide2.QtCore.QCoreApplication',), ('typing.Sequence[str]',)],
- "PySide2.QtCore.QCommandLineParser.setApplicationDescription": ('str',),
- "PySide2.QtCore.QCommandLineParser.setOptionsAfterPositionalArgumentsMode": ('PySide2.QtCore.QCommandLineParser.OptionsAfterPositionalArgumentsMode',),
- "PySide2.QtCore.QCommandLineParser.setSingleDashWordOptionMode": ('PySide2.QtCore.QCommandLineParser.SingleDashWordOptionMode',),
- "PySide2.QtCore.QCommandLineParser.showHelp": ('int',),
- "PySide2.QtCore.QCommandLineParser.showVersion": (),
- "PySide2.QtCore.QCommandLineParser.unknownOptionNames": (),
- "PySide2.QtCore.QCommandLineParser.value": [('PySide2.QtCore.QCommandLineOption',), ('str',)],
- "PySide2.QtCore.QCommandLineParser.values": [('PySide2.QtCore.QCommandLineOption',), ('str',)],
-# class PySide2.QtCore.QConcatenateTablesProxyModel:
- "PySide2.QtCore.QConcatenateTablesProxyModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QConcatenateTablesProxyModel.addSourceModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCore.QConcatenateTablesProxyModel.canDropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QConcatenateTablesProxyModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QConcatenateTablesProxyModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QConcatenateTablesProxyModel.dropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QConcatenateTablesProxyModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QConcatenateTablesProxyModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtCore.QConcatenateTablesProxyModel.index": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QConcatenateTablesProxyModel.itemData": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QConcatenateTablesProxyModel.mapFromSource": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QConcatenateTablesProxyModel.mapToSource": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QConcatenateTablesProxyModel.mimeData": ('typing.List[int]',),
- "PySide2.QtCore.QConcatenateTablesProxyModel.mimeTypes": (),
- "PySide2.QtCore.QConcatenateTablesProxyModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtCore.QConcatenateTablesProxyModel.removeSourceModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCore.QConcatenateTablesProxyModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QConcatenateTablesProxyModel.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
- "PySide2.QtCore.QConcatenateTablesProxyModel.setItemData": ('PySide2.QtCore.QModelIndex', 'typing.Dict[int, typing.Any]'),
- "PySide2.QtCore.QConcatenateTablesProxyModel.span": ('PySide2.QtCore.QModelIndex',),
-# class PySide2.QtCore.QCoreApplication:
- "PySide2.QtCore.QCoreApplication.__init__": [(), ('typing.Sequence[str]',)],
- "PySide2.QtCore.QCoreApplication.addLibraryPath": ('str',),
- "PySide2.QtCore.QCoreApplication.applicationDirPath": (),
- "PySide2.QtCore.QCoreApplication.applicationFilePath": (),
- "PySide2.QtCore.QCoreApplication.applicationName": (),
- "PySide2.QtCore.QCoreApplication.applicationPid": (),
- "PySide2.QtCore.QCoreApplication.applicationVersion": (),
- "PySide2.QtCore.QCoreApplication.arguments": (),
- "PySide2.QtCore.QCoreApplication.closingDown": (),
- "PySide2.QtCore.QCoreApplication.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QCoreApplication.eventDispatcher": (),
- "PySide2.QtCore.QCoreApplication.exec_": (),
- "PySide2.QtCore.QCoreApplication.exit": ('int',),
- "PySide2.QtCore.QCoreApplication.flush": (),
- "PySide2.QtCore.QCoreApplication.hasPendingEvents": (),
- "PySide2.QtCore.QCoreApplication.installNativeEventFilter": ('PySide2.QtCore.QAbstractNativeEventFilter',),
- "PySide2.QtCore.QCoreApplication.installTranslator": ('PySide2.QtCore.QTranslator',),
- "PySide2.QtCore.QCoreApplication.instance": (),
- "PySide2.QtCore.QCoreApplication.isQuitLockEnabled": (),
- "PySide2.QtCore.QCoreApplication.isSetuidAllowed": (),
- "PySide2.QtCore.QCoreApplication.libraryPaths": (),
- "PySide2.QtCore.QCoreApplication.notify": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtCore.QCoreApplication.organizationDomain": (),
- "PySide2.QtCore.QCoreApplication.organizationName": (),
- "PySide2.QtCore.QCoreApplication.postEvent": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent', 'int'),
- "PySide2.QtCore.QCoreApplication.processEvents": [('PySide2.QtCore.QEventLoop.ProcessEventsFlags',), ('PySide2.QtCore.QEventLoop.ProcessEventsFlags', 'int')],
- "PySide2.QtCore.QCoreApplication.quit": (),
- "PySide2.QtCore.QCoreApplication.removeLibraryPath": ('str',),
- "PySide2.QtCore.QCoreApplication.removeNativeEventFilter": ('PySide2.QtCore.QAbstractNativeEventFilter',),
- "PySide2.QtCore.QCoreApplication.removePostedEvents": ('PySide2.QtCore.QObject', 'int'),
- "PySide2.QtCore.QCoreApplication.removeTranslator": ('PySide2.QtCore.QTranslator',),
- "PySide2.QtCore.QCoreApplication.sendEvent": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtCore.QCoreApplication.sendPostedEvents": ('PySide2.QtCore.QObject', 'int'),
- "PySide2.QtCore.QCoreApplication.setApplicationName": ('str',),
- "PySide2.QtCore.QCoreApplication.setApplicationVersion": ('str',),
- "PySide2.QtCore.QCoreApplication.setAttribute": ('PySide2.QtCore.Qt.ApplicationAttribute', 'bool'),
- "PySide2.QtCore.QCoreApplication.setEventDispatcher": ('PySide2.QtCore.QAbstractEventDispatcher',),
- "PySide2.QtCore.QCoreApplication.setLibraryPaths": ('typing.Sequence[str]',),
- "PySide2.QtCore.QCoreApplication.setOrganizationDomain": ('str',),
- "PySide2.QtCore.QCoreApplication.setOrganizationName": ('str',),
- "PySide2.QtCore.QCoreApplication.setQuitLockEnabled": ('bool',),
- "PySide2.QtCore.QCoreApplication.setSetuidAllowed": ('bool',),
- "PySide2.QtCore.QCoreApplication.shutdown": (),
- "PySide2.QtCore.QCoreApplication.startingUp": (),
- "PySide2.QtCore.QCoreApplication.testAttribute": ('PySide2.QtCore.Qt.ApplicationAttribute',),
- "PySide2.QtCore.QCoreApplication.translate": ('str', 'str', 'str', 'int'),
-# class PySide2.QtCore.QCryptographicHash:
-# class PySide2.QtCore.QCryptographicHash.Algorithm:
- "PySide2.QtCore.QCryptographicHash.__init__": ('PySide2.QtCore.QCryptographicHash.Algorithm',),
- "PySide2.QtCore.QCryptographicHash.addData": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QIODevice',), ('str', 'int')],
- "PySide2.QtCore.QCryptographicHash.hash": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QCryptographicHash.Algorithm'),
- "PySide2.QtCore.QCryptographicHash.hashLength": ('PySide2.QtCore.QCryptographicHash.Algorithm',),
- "PySide2.QtCore.QCryptographicHash.reset": (),
- "PySide2.QtCore.QCryptographicHash.result": (),
-# class PySide2.QtCore.QDataStream:
-# class PySide2.QtCore.QDataStream.ByteOrder:
-# class PySide2.QtCore.QDataStream.FloatingPointPrecision:
-# class PySide2.QtCore.QDataStream.Status:
-# class PySide2.QtCore.QDataStream.Version:
- "PySide2.QtCore.QDataStream.__init__": [(), ('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QIODevice.OpenMode'), ('PySide2.QtCore.QIODevice',)],
- "PySide2.QtCore.QDataStream.__lshift__": [('PySide2.QtCore.QBitArray',), ('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QCborArray',), ('PySide2.QtCore.QCborMap',), ('PySide2.QtCore.QCborValue',), ('PySide2.QtCore.QDate',), ('PySide2.QtCore.QDateTime',), ('PySide2.QtCore.QEasingCurve',), ('PySide2.QtCore.QJsonArray',), ('PySide2.QtCore.QJsonDocument',), ('PySide2.QtCore.QJsonValue',), ('PySide2.QtCore.QLine',), ('PySide2.QtCore.QLineF',), ('PySide2.QtCore.QLocale',), ('PySide2.QtCore.QMargins',), ('PySide2.QtCore.QMarginsF',), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',), ('PySide2.QtCore.QRegExp',), ('PySide2.QtCore.QRegularExpression',), ('PySide2.QtCore.QSize',), ('PySide2.QtCore.QSizeF',), ('PySide2.QtCore.QTime',), ('PySide2.QtCore.QTimeZone',), ('PySide2.QtCore.QUrl',), ('PySide2.QtCore.QUuid',), ('PySide2.QtCore.QVersionNumber',), ('str',)],
- "PySide2.QtCore.QDataStream.__rshift__": [('PySide2.QtCore.QBitArray',), ('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QCborArray',), ('PySide2.QtCore.QCborMap',), ('PySide2.QtCore.QCborValue',), ('PySide2.QtCore.QDate',), ('PySide2.QtCore.QDateTime',), ('PySide2.QtCore.QEasingCurve',), ('PySide2.QtCore.QJsonArray',), ('PySide2.QtCore.QJsonDocument',), ('PySide2.QtCore.QJsonValue',), ('PySide2.QtCore.QLine',), ('PySide2.QtCore.QLineF',), ('PySide2.QtCore.QLocale',), ('PySide2.QtCore.QMargins',), ('PySide2.QtCore.QMarginsF',), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',), ('PySide2.QtCore.QRegExp',), ('PySide2.QtCore.QRegularExpression',), ('PySide2.QtCore.QSize',), ('PySide2.QtCore.QSizeF',), ('PySide2.QtCore.QTime',), ('PySide2.QtCore.QTimeZone',), ('PySide2.QtCore.QUrl',), ('PySide2.QtCore.QUuid',), ('PySide2.QtCore.QVersionNumber',)],
- "PySide2.QtCore.QDataStream.abortTransaction": (),
- "PySide2.QtCore.QDataStream.atEnd": (),
- "PySide2.QtCore.QDataStream.byteOrder": (),
- "PySide2.QtCore.QDataStream.commitTransaction": (),
- "PySide2.QtCore.QDataStream.device": (),
- "PySide2.QtCore.QDataStream.floatingPointPrecision": (),
- "PySide2.QtCore.QDataStream.readBool": (),
- "PySide2.QtCore.QDataStream.readDouble": (),
- "PySide2.QtCore.QDataStream.readFloat": (),
- "PySide2.QtCore.QDataStream.readInt16": (),
- "PySide2.QtCore.QDataStream.readInt32": (),
- "PySide2.QtCore.QDataStream.readInt64": (),
- "PySide2.QtCore.QDataStream.readInt8": (),
- "PySide2.QtCore.QDataStream.readQChar": (),
- "PySide2.QtCore.QDataStream.readQString": (),
- "PySide2.QtCore.QDataStream.readQStringList": (),
- "PySide2.QtCore.QDataStream.readQVariant": (),
- "PySide2.QtCore.QDataStream.readRawData": ('str', 'int'),
- "PySide2.QtCore.QDataStream.readString": (),
- "PySide2.QtCore.QDataStream.readUInt16": (),
- "PySide2.QtCore.QDataStream.readUInt32": (),
- "PySide2.QtCore.QDataStream.readUInt64": (),
- "PySide2.QtCore.QDataStream.readUInt8": (),
- "PySide2.QtCore.QDataStream.resetStatus": (),
- "PySide2.QtCore.QDataStream.rollbackTransaction": (),
- "PySide2.QtCore.QDataStream.setByteOrder": ('PySide2.QtCore.QDataStream.ByteOrder',),
- "PySide2.QtCore.QDataStream.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtCore.QDataStream.setFloatingPointPrecision": ('PySide2.QtCore.QDataStream.FloatingPointPrecision',),
- "PySide2.QtCore.QDataStream.setStatus": ('PySide2.QtCore.QDataStream.Status',),
- "PySide2.QtCore.QDataStream.setVersion": ('int',),
- "PySide2.QtCore.QDataStream.skipRawData": ('int',),
- "PySide2.QtCore.QDataStream.startTransaction": (),
- "PySide2.QtCore.QDataStream.status": (),
- "PySide2.QtCore.QDataStream.unsetDevice": (),
- "PySide2.QtCore.QDataStream.version": (),
- "PySide2.QtCore.QDataStream.writeBool": ('bool',),
- "PySide2.QtCore.QDataStream.writeDouble": ('float',),
- "PySide2.QtCore.QDataStream.writeFloat": ('float',),
- "PySide2.QtCore.QDataStream.writeInt16": ('int',),
- "PySide2.QtCore.QDataStream.writeInt32": ('int',),
- "PySide2.QtCore.QDataStream.writeInt64": ('int',),
- "PySide2.QtCore.QDataStream.writeInt8": ('int',),
- "PySide2.QtCore.QDataStream.writeQChar": ('str',),
- "PySide2.QtCore.QDataStream.writeQString": ('str',),
- "PySide2.QtCore.QDataStream.writeQStringList": ('typing.Sequence[str]',),
- "PySide2.QtCore.QDataStream.writeQVariant": ('typing.Any',),
- "PySide2.QtCore.QDataStream.writeRawData": ('str', 'int'),
- "PySide2.QtCore.QDataStream.writeString": ('str',),
- "PySide2.QtCore.QDataStream.writeUInt16": ('int',),
- "PySide2.QtCore.QDataStream.writeUInt32": ('int',),
- "PySide2.QtCore.QDataStream.writeUInt64": ('int',),
- "PySide2.QtCore.QDataStream.writeUInt8": ('int',),
-# class PySide2.QtCore.QDate:
-# class PySide2.QtCore.QDate.MonthNameType:
- "PySide2.QtCore.QDate.__init__": [(), ('PySide2.QtCore.QDate',), ('int', 'int', 'int'), ('int', 'int', 'int', 'PySide2.QtCore.QCalendar')],
- "PySide2.QtCore.QDate.__copy__": (),
- "PySide2.QtCore.QDate.__reduce__": (),
- "PySide2.QtCore.QDate.__repr__": (),
- "PySide2.QtCore.QDate.addDays": ('int',),
- "PySide2.QtCore.QDate.addMonths": [('int',), ('int', 'PySide2.QtCore.QCalendar')],
- "PySide2.QtCore.QDate.addYears": [('int',), ('int', 'PySide2.QtCore.QCalendar')],
- "PySide2.QtCore.QDate.currentDate": (),
- "PySide2.QtCore.QDate.day": [(), ('PySide2.QtCore.QCalendar',)],
- "PySide2.QtCore.QDate.dayOfWeek": [(), ('PySide2.QtCore.QCalendar',)],
- "PySide2.QtCore.QDate.dayOfYear": [(), ('PySide2.QtCore.QCalendar',)],
- "PySide2.QtCore.QDate.daysInMonth": [(), ('PySide2.QtCore.QCalendar',)],
- "PySide2.QtCore.QDate.daysInYear": [(), ('PySide2.QtCore.QCalendar',)],
- "PySide2.QtCore.QDate.daysTo": ('PySide2.QtCore.QDate',),
- "PySide2.QtCore.QDate.endOfDay": [('PySide2.QtCore.QTimeZone',), ('PySide2.QtCore.Qt.TimeSpec', 'int')],
- "PySide2.QtCore.QDate.fromJulianDay": ('int',),
- "PySide2.QtCore.QDate.fromString": [('str', 'PySide2.QtCore.Qt.DateFormat'), ('str', 'str'), ('str', 'str', 'PySide2.QtCore.QCalendar')],
- "PySide2.QtCore.QDate.getDate": (),
- "PySide2.QtCore.QDate.isLeapYear": ('int',),
- "PySide2.QtCore.QDate.isNull": (),
- "PySide2.QtCore.QDate.isValid": [(), ('int', 'int', 'int')],
- "PySide2.QtCore.QDate.longDayName": ('int', 'PySide2.QtCore.QDate.MonthNameType'),
- "PySide2.QtCore.QDate.longMonthName": ('int', 'PySide2.QtCore.QDate.MonthNameType'),
- "PySide2.QtCore.QDate.month": [(), ('PySide2.QtCore.QCalendar',)],
- "PySide2.QtCore.QDate.setDate": [('int', 'int', 'int'), ('int', 'int', 'int', 'PySide2.QtCore.QCalendar')],
- "PySide2.QtCore.QDate.shortDayName": ('int', 'PySide2.QtCore.QDate.MonthNameType'),
- "PySide2.QtCore.QDate.shortMonthName": ('int', 'PySide2.QtCore.QDate.MonthNameType'),
- "PySide2.QtCore.QDate.startOfDay": [('PySide2.QtCore.QTimeZone',), ('PySide2.QtCore.Qt.TimeSpec', 'int')],
- "PySide2.QtCore.QDate.toJulianDay": (),
- "PySide2.QtCore.QDate.toPython": (),
- "PySide2.QtCore.QDate.toString": [('PySide2.QtCore.Qt.DateFormat',), ('PySide2.QtCore.Qt.DateFormat', 'PySide2.QtCore.QCalendar'), ('str',), ('str', 'PySide2.QtCore.QCalendar')],
- "PySide2.QtCore.QDate.weekNumber": (),
- "PySide2.QtCore.QDate.year": [(), ('PySide2.QtCore.QCalendar',)],
-# class PySide2.QtCore.QDateTime:
-# class PySide2.QtCore.QDateTime.YearRange:
- "PySide2.QtCore.QDateTime.__init__": [(), ('PySide2.QtCore.QDate',), ('PySide2.QtCore.QDate', 'PySide2.QtCore.QTime', 'PySide2.QtCore.QTimeZone'), ('PySide2.QtCore.QDate', 'PySide2.QtCore.QTime', 'PySide2.QtCore.Qt.TimeSpec'), ('PySide2.QtCore.QDate', 'PySide2.QtCore.QTime', 'PySide2.QtCore.Qt.TimeSpec', 'int'), ('PySide2.QtCore.QDateTime',), ('int', 'int', 'int', 'int', 'int', 'int'), ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int')],
- "PySide2.QtCore.QDateTime.__copy__": (),
- "PySide2.QtCore.QDateTime.__reduce__": (),
- "PySide2.QtCore.QDateTime.__repr__": (),
- "PySide2.QtCore.QDateTime.addDays": ('int',),
- "PySide2.QtCore.QDateTime.addMSecs": ('int',),
- "PySide2.QtCore.QDateTime.addMonths": ('int',),
- "PySide2.QtCore.QDateTime.addSecs": ('int',),
- "PySide2.QtCore.QDateTime.addYears": ('int',),
- "PySide2.QtCore.QDateTime.currentDateTime": (),
- "PySide2.QtCore.QDateTime.currentDateTimeUtc": (),
- "PySide2.QtCore.QDateTime.currentMSecsSinceEpoch": (),
- "PySide2.QtCore.QDateTime.currentSecsSinceEpoch": (),
- "PySide2.QtCore.QDateTime.date": (),
- "PySide2.QtCore.QDateTime.daysTo": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QDateTime.fromMSecsSinceEpoch": [('int',), ('int', 'PySide2.QtCore.QTimeZone'), ('int', 'PySide2.QtCore.Qt.TimeSpec', 'int')],
- "PySide2.QtCore.QDateTime.fromSecsSinceEpoch": [('int', 'PySide2.QtCore.QTimeZone'), ('int', 'PySide2.QtCore.Qt.TimeSpec', 'int')],
- "PySide2.QtCore.QDateTime.fromString": [('str', 'PySide2.QtCore.Qt.DateFormat'), ('str', 'str'), ('str', 'str', 'PySide2.QtCore.QCalendar')],
- "PySide2.QtCore.QDateTime.fromTime_t": [('int',), ('int', 'PySide2.QtCore.QTimeZone'), ('int', 'PySide2.QtCore.Qt.TimeSpec', 'int')],
- "PySide2.QtCore.QDateTime.isDaylightTime": (),
- "PySide2.QtCore.QDateTime.isNull": (),
- "PySide2.QtCore.QDateTime.isValid": (),
- "PySide2.QtCore.QDateTime.msecsTo": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QDateTime.offsetFromUtc": (),
- "PySide2.QtCore.QDateTime.secsTo": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QDateTime.setDate": ('PySide2.QtCore.QDate',),
- "PySide2.QtCore.QDateTime.setMSecsSinceEpoch": ('int',),
- "PySide2.QtCore.QDateTime.setOffsetFromUtc": ('int',),
- "PySide2.QtCore.QDateTime.setSecsSinceEpoch": ('int',),
- "PySide2.QtCore.QDateTime.setTime": ('PySide2.QtCore.QTime',),
- "PySide2.QtCore.QDateTime.setTimeSpec": ('PySide2.QtCore.Qt.TimeSpec',),
- "PySide2.QtCore.QDateTime.setTimeZone": ('PySide2.QtCore.QTimeZone',),
- "PySide2.QtCore.QDateTime.setTime_t": ('int',),
- "PySide2.QtCore.QDateTime.setUtcOffset": ('int',),
- "PySide2.QtCore.QDateTime.swap": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QDateTime.time": (),
- "PySide2.QtCore.QDateTime.timeSpec": (),
- "PySide2.QtCore.QDateTime.timeZone": (),
- "PySide2.QtCore.QDateTime.timeZoneAbbreviation": (),
- "PySide2.QtCore.QDateTime.toLocalTime": (),
- "PySide2.QtCore.QDateTime.toMSecsSinceEpoch": (),
- "PySide2.QtCore.QDateTime.toOffsetFromUtc": ('int',),
- "PySide2.QtCore.QDateTime.toPython": (),
- "PySide2.QtCore.QDateTime.toSecsSinceEpoch": (),
- "PySide2.QtCore.QDateTime.toString": [('PySide2.QtCore.Qt.DateFormat',), ('str',)],
- "PySide2.QtCore.QDateTime.toTimeSpec": ('PySide2.QtCore.Qt.TimeSpec',),
- "PySide2.QtCore.QDateTime.toTimeZone": ('PySide2.QtCore.QTimeZone',),
- "PySide2.QtCore.QDateTime.toTime_t": (),
- "PySide2.QtCore.QDateTime.toUTC": (),
- "PySide2.QtCore.QDateTime.utcOffset": (),
-# class PySide2.QtCore.QDeadlineTimer:
-# class PySide2.QtCore.QDeadlineTimer.ForeverConstant:
- "PySide2.QtCore.QDeadlineTimer.__init__": [('PySide2.QtCore.QDeadlineTimer',), ('PySide2.QtCore.QDeadlineTimer.ForeverConstant', 'PySide2.QtCore.Qt.TimerType'), ('PySide2.QtCore.Qt.TimerType',), ('int', 'PySide2.QtCore.Qt.TimerType')],
- "PySide2.QtCore.QDeadlineTimer.__copy__": (),
- "PySide2.QtCore.QDeadlineTimer.__iadd__": ('int',),
- "PySide2.QtCore.QDeadlineTimer.__isub__": ('int',),
- "PySide2.QtCore.QDeadlineTimer._q_data": (),
- "PySide2.QtCore.QDeadlineTimer.addNSecs": ('PySide2.QtCore.QDeadlineTimer', 'int'),
- "PySide2.QtCore.QDeadlineTimer.current": ('PySide2.QtCore.Qt.TimerType',),
- "PySide2.QtCore.QDeadlineTimer.deadline": (),
- "PySide2.QtCore.QDeadlineTimer.deadlineNSecs": (),
- "PySide2.QtCore.QDeadlineTimer.hasExpired": (),
- "PySide2.QtCore.QDeadlineTimer.isForever": (),
- "PySide2.QtCore.QDeadlineTimer.remainingTime": (),
- "PySide2.QtCore.QDeadlineTimer.remainingTimeNSecs": (),
- "PySide2.QtCore.QDeadlineTimer.setDeadline": ('int', 'PySide2.QtCore.Qt.TimerType'),
- "PySide2.QtCore.QDeadlineTimer.setPreciseDeadline": ('int', 'int', 'PySide2.QtCore.Qt.TimerType'),
- "PySide2.QtCore.QDeadlineTimer.setPreciseRemainingTime": ('int', 'int', 'PySide2.QtCore.Qt.TimerType'),
- "PySide2.QtCore.QDeadlineTimer.setRemainingTime": ('int', 'PySide2.QtCore.Qt.TimerType'),
- "PySide2.QtCore.QDeadlineTimer.setTimerType": ('PySide2.QtCore.Qt.TimerType',),
- "PySide2.QtCore.QDeadlineTimer.swap": ('PySide2.QtCore.QDeadlineTimer',),
- "PySide2.QtCore.QDeadlineTimer.timerType": (),
-# class PySide2.QtCore.QDir:
-# class PySide2.QtCore.QDir.Filter:
-# class PySide2.QtCore.QDir.Filters:
-# class PySide2.QtCore.QDir.SortFlag:
-# class PySide2.QtCore.QDir.SortFlags:
- "PySide2.QtCore.QDir.__init__": [('PySide2.QtCore.QDir',), ('str',), ('str', 'str', 'PySide2.QtCore.QDir.SortFlags', 'PySide2.QtCore.QDir.Filters')],
- "PySide2.QtCore.QDir.__copy__": (),
- "PySide2.QtCore.QDir.__reduce__": (),
- "PySide2.QtCore.QDir.absoluteFilePath": ('str',),
- "PySide2.QtCore.QDir.absolutePath": (),
- "PySide2.QtCore.QDir.addResourceSearchPath": ('str',),
- "PySide2.QtCore.QDir.addSearchPath": ('str', 'str'),
- "PySide2.QtCore.QDir.canonicalPath": (),
- "PySide2.QtCore.QDir.cd": ('str',),
- "PySide2.QtCore.QDir.cdUp": (),
- "PySide2.QtCore.QDir.cleanPath": ('str',),
- "PySide2.QtCore.QDir.count": (),
- "PySide2.QtCore.QDir.current": (),
- "PySide2.QtCore.QDir.currentPath": (),
- "PySide2.QtCore.QDir.dirName": (),
- "PySide2.QtCore.QDir.drives": (),
- "PySide2.QtCore.QDir.entryInfoList": [('PySide2.QtCore.QDir.Filters', 'PySide2.QtCore.QDir.SortFlags'), ('typing.Sequence[str]', 'PySide2.QtCore.QDir.Filters', 'PySide2.QtCore.QDir.SortFlags')],
- "PySide2.QtCore.QDir.entryList": [('PySide2.QtCore.QDir.Filters', 'PySide2.QtCore.QDir.SortFlags'), ('typing.Sequence[str]', 'PySide2.QtCore.QDir.Filters', 'PySide2.QtCore.QDir.SortFlags')],
- "PySide2.QtCore.QDir.exists": [(), ('str',)],
- "PySide2.QtCore.QDir.filePath": ('str',),
- "PySide2.QtCore.QDir.filter": (),
- "PySide2.QtCore.QDir.fromNativeSeparators": ('str',),
- "PySide2.QtCore.QDir.home": (),
- "PySide2.QtCore.QDir.homePath": (),
- "PySide2.QtCore.QDir.isAbsolute": (),
- "PySide2.QtCore.QDir.isAbsolutePath": ('str',),
- "PySide2.QtCore.QDir.isEmpty": ('PySide2.QtCore.QDir.Filters',),
- "PySide2.QtCore.QDir.isReadable": (),
- "PySide2.QtCore.QDir.isRelative": (),
- "PySide2.QtCore.QDir.isRelativePath": ('str',),
- "PySide2.QtCore.QDir.isRoot": (),
- "PySide2.QtCore.QDir.listSeparator": (),
- "PySide2.QtCore.QDir.makeAbsolute": (),
- "PySide2.QtCore.QDir.match": [('str', 'str'), ('typing.Sequence[str]', 'str')],
- "PySide2.QtCore.QDir.mkdir": ('str',),
- "PySide2.QtCore.QDir.mkpath": ('str',),
- "PySide2.QtCore.QDir.nameFilters": (),
- "PySide2.QtCore.QDir.nameFiltersFromString": ('str',),
- "PySide2.QtCore.QDir.path": (),
- "PySide2.QtCore.QDir.refresh": (),
- "PySide2.QtCore.QDir.relativeFilePath": ('str',),
- "PySide2.QtCore.QDir.remove": ('str',),
- "PySide2.QtCore.QDir.removeRecursively": (),
- "PySide2.QtCore.QDir.rename": ('str', 'str'),
- "PySide2.QtCore.QDir.rmdir": ('str',),
- "PySide2.QtCore.QDir.rmpath": ('str',),
- "PySide2.QtCore.QDir.root": (),
- "PySide2.QtCore.QDir.rootPath": (),
- "PySide2.QtCore.QDir.searchPaths": ('str',),
- "PySide2.QtCore.QDir.separator": (),
- "PySide2.QtCore.QDir.setCurrent": ('str',),
- "PySide2.QtCore.QDir.setFilter": ('PySide2.QtCore.QDir.Filters',),
- "PySide2.QtCore.QDir.setNameFilters": ('typing.Sequence[str]',),
- "PySide2.QtCore.QDir.setPath": ('str',),
- "PySide2.QtCore.QDir.setSearchPaths": ('str', 'typing.Sequence[str]'),
- "PySide2.QtCore.QDir.setSorting": ('PySide2.QtCore.QDir.SortFlags',),
- "PySide2.QtCore.QDir.sorting": (),
- "PySide2.QtCore.QDir.swap": ('PySide2.QtCore.QDir',),
- "PySide2.QtCore.QDir.temp": (),
- "PySide2.QtCore.QDir.tempPath": (),
- "PySide2.QtCore.QDir.toNativeSeparators": ('str',),
-# class PySide2.QtCore.QDirIterator:
-# class PySide2.QtCore.QDirIterator.IteratorFlag:
-# class PySide2.QtCore.QDirIterator.IteratorFlags:
- "PySide2.QtCore.QDirIterator.__init__": [('PySide2.QtCore.QDir', 'PySide2.QtCore.QDirIterator.IteratorFlags'), ('str', 'PySide2.QtCore.QDir.Filters', 'PySide2.QtCore.QDirIterator.IteratorFlags'), ('str', 'PySide2.QtCore.QDirIterator.IteratorFlags'), ('str', 'typing.Sequence[str]', 'PySide2.QtCore.QDir.Filters', 'PySide2.QtCore.QDirIterator.IteratorFlags')],
- "PySide2.QtCore.QDirIterator.fileInfo": (),
- "PySide2.QtCore.QDirIterator.fileName": (),
- "PySide2.QtCore.QDirIterator.filePath": (),
- "PySide2.QtCore.QDirIterator.hasNext": (),
- "PySide2.QtCore.QDirIterator.path": (),
-# class PySide2.QtCore.QDynamicPropertyChangeEvent:
- "PySide2.QtCore.QDynamicPropertyChangeEvent.__init__": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QDynamicPropertyChangeEvent.propertyName": (),
-# class PySide2.QtCore.QEasingCurve:
-# class PySide2.QtCore.QEasingCurve.Type:
- "PySide2.QtCore.QEasingCurve.__init__": [('PySide2.QtCore.QEasingCurve',), ('PySide2.QtCore.QEasingCurve.Type',)],
- "PySide2.QtCore.QEasingCurve.__copy__": (),
- "PySide2.QtCore.QEasingCurve.addCubicBezierSegment": ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'),
- "PySide2.QtCore.QEasingCurve.addTCBSegment": ('PySide2.QtCore.QPointF', 'float', 'float', 'float'),
- "PySide2.QtCore.QEasingCurve.amplitude": (),
- "PySide2.QtCore.QEasingCurve.customType": (),
- "PySide2.QtCore.QEasingCurve.overshoot": (),
- "PySide2.QtCore.QEasingCurve.period": (),
- "PySide2.QtCore.QEasingCurve.setAmplitude": ('float',),
- "PySide2.QtCore.QEasingCurve.setCustomType": ('object',),
- "PySide2.QtCore.QEasingCurve.setOvershoot": ('float',),
- "PySide2.QtCore.QEasingCurve.setPeriod": ('float',),
- "PySide2.QtCore.QEasingCurve.setType": ('PySide2.QtCore.QEasingCurve.Type',),
- "PySide2.QtCore.QEasingCurve.swap": ('PySide2.QtCore.QEasingCurve',),
- "PySide2.QtCore.QEasingCurve.toCubicSpline": (),
- "PySide2.QtCore.QEasingCurve.type": (),
- "PySide2.QtCore.QEasingCurve.valueForProgress": ('float',),
-# class PySide2.QtCore.QElapsedTimer:
-# class PySide2.QtCore.QElapsedTimer.ClockType:
- "PySide2.QtCore.QElapsedTimer.__init__": [(), ('PySide2.QtCore.QElapsedTimer',)],
- "PySide2.QtCore.QElapsedTimer.__copy__": (),
- "PySide2.QtCore.QElapsedTimer.clockType": (),
- "PySide2.QtCore.QElapsedTimer.elapsed": (),
- "PySide2.QtCore.QElapsedTimer.hasExpired": ('int',),
- "PySide2.QtCore.QElapsedTimer.invalidate": (),
- "PySide2.QtCore.QElapsedTimer.isMonotonic": (),
- "PySide2.QtCore.QElapsedTimer.isValid": (),
- "PySide2.QtCore.QElapsedTimer.msecsSinceReference": (),
- "PySide2.QtCore.QElapsedTimer.msecsTo": ('PySide2.QtCore.QElapsedTimer',),
- "PySide2.QtCore.QElapsedTimer.nsecsElapsed": (),
- "PySide2.QtCore.QElapsedTimer.restart": (),
- "PySide2.QtCore.QElapsedTimer.secsTo": ('PySide2.QtCore.QElapsedTimer',),
- "PySide2.QtCore.QElapsedTimer.start": (),
-# class PySide2.QtCore.QEvent:
-# class PySide2.QtCore.QEvent.Type:
- "PySide2.QtCore.QEvent.__init__": [('PySide2.QtCore.QEvent',), ('PySide2.QtCore.QEvent.Type',)],
- "PySide2.QtCore.QEvent.accept": (),
- "PySide2.QtCore.QEvent.ignore": (),
- "PySide2.QtCore.QEvent.isAccepted": (),
- "PySide2.QtCore.QEvent.registerEventType": ('int',),
- "PySide2.QtCore.QEvent.setAccepted": ('bool',),
- "PySide2.QtCore.QEvent.spontaneous": (),
- "PySide2.QtCore.QEvent.type": (),
-# class PySide2.QtCore.QEventLoop:
-# class PySide2.QtCore.QEventLoop.ProcessEventsFlag:
-# class PySide2.QtCore.QEventLoop.ProcessEventsFlags:
- "PySide2.QtCore.QEventLoop.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QEventLoop.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QEventLoop.exec_": ('PySide2.QtCore.QEventLoop.ProcessEventsFlags',),
- "PySide2.QtCore.QEventLoop.exit": ('int',),
- "PySide2.QtCore.QEventLoop.isRunning": (),
- "PySide2.QtCore.QEventLoop.processEvents": [('PySide2.QtCore.QEventLoop.ProcessEventsFlags',), ('PySide2.QtCore.QEventLoop.ProcessEventsFlags', 'int')],
- "PySide2.QtCore.QEventLoop.quit": (),
- "PySide2.QtCore.QEventLoop.wakeUp": (),
-# class PySide2.QtCore.QEventTransition:
- "PySide2.QtCore.QEventTransition.__init__": [('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.QState'), ('PySide2.QtCore.QState',)],
- "PySide2.QtCore.QEventTransition.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QEventTransition.eventSource": (),
- "PySide2.QtCore.QEventTransition.eventTest": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QEventTransition.eventType": (),
- "PySide2.QtCore.QEventTransition.onTransition": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QEventTransition.setEventSource": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QEventTransition.setEventType": ('PySide2.QtCore.QEvent.Type',),
-# class PySide2.QtCore.QFactoryInterface:
- "PySide2.QtCore.QFactoryInterface.__init__": (),
- "PySide2.QtCore.QFactoryInterface.keys": (),
-# class PySide2.QtCore.QFile:
- "PySide2.QtCore.QFile.__init__": [(), ('PySide2.QtCore.QObject',), ('str',), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QFile.copy": [('str',), ('str', 'str')],
- "PySide2.QtCore.QFile.decodeName": [('PySide2.QtCore.QByteArray',), ('str',)],
- "PySide2.QtCore.QFile.encodeName": ('str',),
- "PySide2.QtCore.QFile.exists": [(), ('str',)],
- "PySide2.QtCore.QFile.fileName": (),
- "PySide2.QtCore.QFile.link": [('str',), ('str', 'str')],
- "PySide2.QtCore.QFile.open": [('PySide2.QtCore.QIODevice.OpenMode',), ('int', 'PySide2.QtCore.QIODevice.OpenMode', 'PySide2.QtCore.QFileDevice.FileHandleFlags')],
- "PySide2.QtCore.QFile.permissions": [(), ('str',)],
- "PySide2.QtCore.QFile.readLink": [(), ('str',)],
- "PySide2.QtCore.QFile.remove": [(), ('str',)],
- "PySide2.QtCore.QFile.rename": [('str',), ('str', 'str')],
- "PySide2.QtCore.QFile.resize": [('int',), ('str', 'int')],
- "PySide2.QtCore.QFile.setFileName": ('str',),
- "PySide2.QtCore.QFile.setPermissions": [('PySide2.QtCore.QFileDevice.Permissions',), ('str', 'PySide2.QtCore.QFileDevice.Permissions')],
- "PySide2.QtCore.QFile.size": (),
- "PySide2.QtCore.QFile.symLinkTarget": [(), ('str',)],
-# class PySide2.QtCore.QFileDevice:
-# class PySide2.QtCore.QFileDevice.FileError:
-# class PySide2.QtCore.QFileDevice.FileHandleFlag:
-# class PySide2.QtCore.QFileDevice.FileHandleFlags:
-# class PySide2.QtCore.QFileDevice.FileTime:
-# class PySide2.QtCore.QFileDevice.MemoryMapFlags:
-# class PySide2.QtCore.QFileDevice.Permission:
-# class PySide2.QtCore.QFileDevice.Permissions:
- "PySide2.QtCore.QFileDevice.__init__": [(), ('PySide2.QtCore.QObject',)],
- "PySide2.QtCore.QFileDevice.atEnd": (),
- "PySide2.QtCore.QFileDevice.close": (),
- "PySide2.QtCore.QFileDevice.error": (),
- "PySide2.QtCore.QFileDevice.fileName": (),
- "PySide2.QtCore.QFileDevice.fileTime": ('PySide2.QtCore.QFileDevice.FileTime',),
- "PySide2.QtCore.QFileDevice.flush": (),
- "PySide2.QtCore.QFileDevice.handle": (),
- "PySide2.QtCore.QFileDevice.isSequential": (),
- "PySide2.QtCore.QFileDevice.map": ('int', 'int', 'PySide2.QtCore.QFileDevice.MemoryMapFlags'),
- "PySide2.QtCore.QFileDevice.permissions": (),
- "PySide2.QtCore.QFileDevice.pos": (),
- "PySide2.QtCore.QFileDevice.readData": ('str', 'int'),
- "PySide2.QtCore.QFileDevice.readLineData": ('str', 'int'),
- "PySide2.QtCore.QFileDevice.resize": ('int',),
- "PySide2.QtCore.QFileDevice.seek": ('int',),
- "PySide2.QtCore.QFileDevice.setFileTime": ('PySide2.QtCore.QDateTime', 'PySide2.QtCore.QFileDevice.FileTime'),
- "PySide2.QtCore.QFileDevice.setPermissions": ('PySide2.QtCore.QFileDevice.Permissions',),
- "PySide2.QtCore.QFileDevice.size": (),
- "PySide2.QtCore.QFileDevice.unmap": ('str',),
- "PySide2.QtCore.QFileDevice.unsetError": (),
- "PySide2.QtCore.QFileDevice.writeData": ('str', 'int'),
-# class PySide2.QtCore.QFileInfo:
- "PySide2.QtCore.QFileInfo.__init__": [(), ('PySide2.QtCore.QDir', 'str'), ('PySide2.QtCore.QFile',), ('PySide2.QtCore.QFileInfo',), ('str',)],
- "PySide2.QtCore.QFileInfo.__copy__": (),
- "PySide2.QtCore.QFileInfo.__reduce__": (),
- "PySide2.QtCore.QFileInfo.absoluteDir": (),
- "PySide2.QtCore.QFileInfo.absoluteFilePath": (),
- "PySide2.QtCore.QFileInfo.absolutePath": (),
- "PySide2.QtCore.QFileInfo.baseName": (),
- "PySide2.QtCore.QFileInfo.birthTime": (),
- "PySide2.QtCore.QFileInfo.bundleName": (),
- "PySide2.QtCore.QFileInfo.caching": (),
- "PySide2.QtCore.QFileInfo.canonicalFilePath": (),
- "PySide2.QtCore.QFileInfo.canonicalPath": (),
- "PySide2.QtCore.QFileInfo.completeBaseName": (),
- "PySide2.QtCore.QFileInfo.completeSuffix": (),
- "PySide2.QtCore.QFileInfo.created": (),
- "PySide2.QtCore.QFileInfo.dir": (),
- "PySide2.QtCore.QFileInfo.exists": [(), ('str',)],
- "PySide2.QtCore.QFileInfo.fileName": (),
- "PySide2.QtCore.QFileInfo.filePath": (),
- "PySide2.QtCore.QFileInfo.group": (),
- "PySide2.QtCore.QFileInfo.groupId": (),
- "PySide2.QtCore.QFileInfo.isAbsolute": (),
- "PySide2.QtCore.QFileInfo.isBundle": (),
- "PySide2.QtCore.QFileInfo.isDir": (),
- "PySide2.QtCore.QFileInfo.isExecutable": (),
- "PySide2.QtCore.QFileInfo.isFile": (),
- "PySide2.QtCore.QFileInfo.isHidden": (),
- "PySide2.QtCore.QFileInfo.isNativePath": (),
- "PySide2.QtCore.QFileInfo.isReadable": (),
- "PySide2.QtCore.QFileInfo.isRelative": (),
- "PySide2.QtCore.QFileInfo.isRoot": (),
- "PySide2.QtCore.QFileInfo.isShortcut": (),
- "PySide2.QtCore.QFileInfo.isSymLink": (),
- "PySide2.QtCore.QFileInfo.isSymbolicLink": (),
- "PySide2.QtCore.QFileInfo.isWritable": (),
- "PySide2.QtCore.QFileInfo.lastModified": (),
- "PySide2.QtCore.QFileInfo.lastRead": (),
- "PySide2.QtCore.QFileInfo.makeAbsolute": (),
- "PySide2.QtCore.QFileInfo.metadataChangeTime": (),
- "PySide2.QtCore.QFileInfo.owner": (),
- "PySide2.QtCore.QFileInfo.ownerId": (),
- "PySide2.QtCore.QFileInfo.path": (),
- "PySide2.QtCore.QFileInfo.readLink": (),
- "PySide2.QtCore.QFileInfo.refresh": (),
- "PySide2.QtCore.QFileInfo.setCaching": ('bool',),
- "PySide2.QtCore.QFileInfo.setFile": [('PySide2.QtCore.QDir', 'str'), ('PySide2.QtCore.QFile',), ('str',)],
- "PySide2.QtCore.QFileInfo.size": (),
- "PySide2.QtCore.QFileInfo.suffix": (),
- "PySide2.QtCore.QFileInfo.swap": ('PySide2.QtCore.QFileInfo',),
- "PySide2.QtCore.QFileInfo.symLinkTarget": (),
-# class PySide2.QtCore.QFileSelector:
- "PySide2.QtCore.QFileSelector.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QFileSelector.allSelectors": (),
- "PySide2.QtCore.QFileSelector.extraSelectors": (),
- "PySide2.QtCore.QFileSelector.select": [('PySide2.QtCore.QUrl',), ('str',)],
- "PySide2.QtCore.QFileSelector.setExtraSelectors": ('typing.Sequence[str]',),
-# class PySide2.QtCore.QFileSystemWatcher:
- "PySide2.QtCore.QFileSystemWatcher.__init__": [('PySide2.QtCore.QObject',), ('typing.Sequence[str]', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QFileSystemWatcher.addPath": ('str',),
- "PySide2.QtCore.QFileSystemWatcher.addPaths": ('typing.Sequence[str]',),
- "PySide2.QtCore.QFileSystemWatcher.directories": (),
- "PySide2.QtCore.QFileSystemWatcher.files": (),
- "PySide2.QtCore.QFileSystemWatcher.removePath": ('str',),
- "PySide2.QtCore.QFileSystemWatcher.removePaths": ('typing.Sequence[str]',),
-# class PySide2.QtCore.QFinalState:
- "PySide2.QtCore.QFinalState.__init__": ('PySide2.QtCore.QState',),
- "PySide2.QtCore.QFinalState.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QFinalState.onEntry": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QFinalState.onExit": ('PySide2.QtCore.QEvent',),
-# class PySide2.QtCore.QGenericArgument:
- "PySide2.QtCore.QGenericArgument.__init__": [('PySide2.QtCore.QGenericArgument',), ('str', 'int')],
- "PySide2.QtCore.QGenericArgument.__copy__": (),
- "PySide2.QtCore.QGenericArgument.data": (),
- "PySide2.QtCore.QGenericArgument.name": (),
-# class PySide2.QtCore.QGenericReturnArgument:
- "PySide2.QtCore.QGenericReturnArgument.__init__": [('PySide2.QtCore.QGenericReturnArgument',), ('str', 'int')],
- "PySide2.QtCore.QGenericReturnArgument.__copy__": (),
-# class PySide2.QtCore.QHistoryState:
-# class PySide2.QtCore.QHistoryState.HistoryType:
- "PySide2.QtCore.QHistoryState.__init__": [('PySide2.QtCore.QHistoryState.HistoryType', 'PySide2.QtCore.QState'), ('PySide2.QtCore.QState',)],
- "PySide2.QtCore.QHistoryState.defaultState": (),
- "PySide2.QtCore.QHistoryState.defaultTransition": (),
- "PySide2.QtCore.QHistoryState.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QHistoryState.historyType": (),
- "PySide2.QtCore.QHistoryState.onEntry": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QHistoryState.onExit": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QHistoryState.setDefaultState": ('PySide2.QtCore.QAbstractState',),
- "PySide2.QtCore.QHistoryState.setDefaultTransition": ('PySide2.QtCore.QAbstractTransition',),
- "PySide2.QtCore.QHistoryState.setHistoryType": ('PySide2.QtCore.QHistoryState.HistoryType',),
-# class PySide2.QtCore.QIODevice:
-# class PySide2.QtCore.QIODevice.OpenMode:
-# class PySide2.QtCore.QIODevice.OpenModeFlag:
- "PySide2.QtCore.QIODevice.__init__": [(), ('PySide2.QtCore.QObject',)],
- "PySide2.QtCore.QIODevice.atEnd": (),
- "PySide2.QtCore.QIODevice.bytesAvailable": (),
- "PySide2.QtCore.QIODevice.bytesToWrite": (),
- "PySide2.QtCore.QIODevice.canReadLine": (),
- "PySide2.QtCore.QIODevice.close": (),
- "PySide2.QtCore.QIODevice.commitTransaction": (),
- "PySide2.QtCore.QIODevice.currentReadChannel": (),
- "PySide2.QtCore.QIODevice.currentWriteChannel": (),
- "PySide2.QtCore.QIODevice.errorString": (),
- "PySide2.QtCore.QIODevice.getChar": ('str',),
- "PySide2.QtCore.QIODevice.isOpen": (),
- "PySide2.QtCore.QIODevice.isReadable": (),
- "PySide2.QtCore.QIODevice.isSequential": (),
- "PySide2.QtCore.QIODevice.isTextModeEnabled": (),
- "PySide2.QtCore.QIODevice.isTransactionStarted": (),
- "PySide2.QtCore.QIODevice.isWritable": (),
- "PySide2.QtCore.QIODevice.open": ('PySide2.QtCore.QIODevice.OpenMode',),
- "PySide2.QtCore.QIODevice.openMode": (),
- "PySide2.QtCore.QIODevice.peek": ('int',),
- "PySide2.QtCore.QIODevice.pos": (),
- "PySide2.QtCore.QIODevice.putChar": ('int',),
- "PySide2.QtCore.QIODevice.read": ('int',),
- "PySide2.QtCore.QIODevice.readAll": (),
- "PySide2.QtCore.QIODevice.readChannelCount": (),
- "PySide2.QtCore.QIODevice.readData": ('str', 'int'),
- "PySide2.QtCore.QIODevice.readLine": ('int',),
- "PySide2.QtCore.QIODevice.readLineData": ('str', 'int'),
- "PySide2.QtCore.QIODevice.reset": (),
- "PySide2.QtCore.QIODevice.rollbackTransaction": (),
- "PySide2.QtCore.QIODevice.seek": ('int',),
- "PySide2.QtCore.QIODevice.setCurrentReadChannel": ('int',),
- "PySide2.QtCore.QIODevice.setCurrentWriteChannel": ('int',),
- "PySide2.QtCore.QIODevice.setErrorString": ('str',),
- "PySide2.QtCore.QIODevice.setOpenMode": ('PySide2.QtCore.QIODevice.OpenMode',),
- "PySide2.QtCore.QIODevice.setTextModeEnabled": ('bool',),
- "PySide2.QtCore.QIODevice.size": (),
- "PySide2.QtCore.QIODevice.skip": ('int',),
- "PySide2.QtCore.QIODevice.startTransaction": (),
- "PySide2.QtCore.QIODevice.ungetChar": ('int',),
- "PySide2.QtCore.QIODevice.waitForBytesWritten": ('int',),
- "PySide2.QtCore.QIODevice.waitForReadyRead": ('int',),
- "PySide2.QtCore.QIODevice.write": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QIODevice.writeChannelCount": (),
- "PySide2.QtCore.QIODevice.writeData": ('str', 'int'),
-# class PySide2.QtCore.QIdentityProxyModel:
- "PySide2.QtCore.QIdentityProxyModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QIdentityProxyModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QIdentityProxyModel.dropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QIdentityProxyModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtCore.QIdentityProxyModel.index": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QIdentityProxyModel.insertColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QIdentityProxyModel.insertRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QIdentityProxyModel.mapFromSource": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QIdentityProxyModel.mapSelectionFromSource": ('PySide2.QtCore.QItemSelection',),
- "PySide2.QtCore.QIdentityProxyModel.mapSelectionToSource": ('PySide2.QtCore.QItemSelection',),
- "PySide2.QtCore.QIdentityProxyModel.mapToSource": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QIdentityProxyModel.match": ('PySide2.QtCore.QModelIndex', 'int', 'typing.Any', 'int', 'PySide2.QtCore.Qt.MatchFlags'),
- "PySide2.QtCore.QIdentityProxyModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtCore.QIdentityProxyModel.removeColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QIdentityProxyModel.removeRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QIdentityProxyModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QIdentityProxyModel.setSourceModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCore.QIdentityProxyModel.sibling": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
-# class PySide2.QtCore.QItemSelection:
- "PySide2.QtCore.QItemSelection.__init__": [(), ('PySide2.QtCore.QItemSelection',), ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex')],
- "PySide2.QtCore.QItemSelection.__add__": ('typing.Sequence[PySide2.QtCore.QItemSelectionRange]',),
- "PySide2.QtCore.QItemSelection.__copy__": (),
- "PySide2.QtCore.QItemSelection.__iadd__": [('PySide2.QtCore.QItemSelectionRange',), ('typing.Sequence[PySide2.QtCore.QItemSelectionRange]',)],
- "PySide2.QtCore.QItemSelection.__lshift__": [('PySide2.QtCore.QItemSelectionRange',), ('typing.Sequence[PySide2.QtCore.QItemSelectionRange]',)],
- "PySide2.QtCore.QItemSelection.append": [('PySide2.QtCore.QItemSelectionRange',), ('typing.Sequence[PySide2.QtCore.QItemSelectionRange]',)],
- "PySide2.QtCore.QItemSelection.at": ('int',),
- "PySide2.QtCore.QItemSelection.back": (),
- "PySide2.QtCore.QItemSelection.clear": (),
- "PySide2.QtCore.QItemSelection.constFirst": (),
- "PySide2.QtCore.QItemSelection.constLast": (),
- "PySide2.QtCore.QItemSelection.contains": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QItemSelection.count": [(), ('PySide2.QtCore.QItemSelectionRange',)],
- "PySide2.QtCore.QItemSelection.detachShared": (),
- "PySide2.QtCore.QItemSelection.empty": (),
- "PySide2.QtCore.QItemSelection.endsWith": ('PySide2.QtCore.QItemSelectionRange',),
- "PySide2.QtCore.QItemSelection.first": (),
- "PySide2.QtCore.QItemSelection.fromSet": ('typing.Set[PySide2.QtCore.QItemSelectionRange]',),
- "PySide2.QtCore.QItemSelection.fromVector": ('typing.List[PySide2.QtCore.QItemSelectionRange]',),
- "PySide2.QtCore.QItemSelection.front": (),
- "PySide2.QtCore.QItemSelection.indexOf": ('PySide2.QtCore.QItemSelectionRange', 'int'),
- "PySide2.QtCore.QItemSelection.indexes": (),
- "PySide2.QtCore.QItemSelection.insert": ('int', 'PySide2.QtCore.QItemSelectionRange'),
- "PySide2.QtCore.QItemSelection.isEmpty": (),
- "PySide2.QtCore.QItemSelection.isSharedWith": ('typing.Sequence[PySide2.QtCore.QItemSelectionRange]',),
- "PySide2.QtCore.QItemSelection.last": (),
- "PySide2.QtCore.QItemSelection.lastIndexOf": ('PySide2.QtCore.QItemSelectionRange', 'int'),
- "PySide2.QtCore.QItemSelection.length": (),
- "PySide2.QtCore.QItemSelection.merge": ('PySide2.QtCore.QItemSelection', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags'),
- "PySide2.QtCore.QItemSelection.mid": ('int', 'int'),
- "PySide2.QtCore.QItemSelection.move": ('int', 'int'),
- "PySide2.QtCore.QItemSelection.pop_back": (),
- "PySide2.QtCore.QItemSelection.pop_front": (),
- "PySide2.QtCore.QItemSelection.prepend": ('PySide2.QtCore.QItemSelectionRange',),
- "PySide2.QtCore.QItemSelection.push_back": ('PySide2.QtCore.QItemSelectionRange',),
- "PySide2.QtCore.QItemSelection.push_front": ('PySide2.QtCore.QItemSelectionRange',),
- "PySide2.QtCore.QItemSelection.removeAll": ('PySide2.QtCore.QItemSelectionRange',),
- "PySide2.QtCore.QItemSelection.removeAt": ('int',),
- "PySide2.QtCore.QItemSelection.removeFirst": (),
- "PySide2.QtCore.QItemSelection.removeLast": (),
- "PySide2.QtCore.QItemSelection.removeOne": ('PySide2.QtCore.QItemSelectionRange',),
- "PySide2.QtCore.QItemSelection.replace": ('int', 'PySide2.QtCore.QItemSelectionRange'),
- "PySide2.QtCore.QItemSelection.reserve": ('int',),
- "PySide2.QtCore.QItemSelection.select": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QItemSelection.setSharable": ('bool',),
- "PySide2.QtCore.QItemSelection.size": (),
- "PySide2.QtCore.QItemSelection.split": ('PySide2.QtCore.QItemSelectionRange', 'PySide2.QtCore.QItemSelectionRange', 'PySide2.QtCore.QItemSelection'),
- "PySide2.QtCore.QItemSelection.startsWith": ('PySide2.QtCore.QItemSelectionRange',),
- "PySide2.QtCore.QItemSelection.swap": [('int', 'int'), ('typing.Sequence[PySide2.QtCore.QItemSelectionRange]',)],
- "PySide2.QtCore.QItemSelection.swapItemsAt": ('int', 'int'),
- "PySide2.QtCore.QItemSelection.takeAt": ('int',),
- "PySide2.QtCore.QItemSelection.takeFirst": (),
- "PySide2.QtCore.QItemSelection.takeLast": (),
- "PySide2.QtCore.QItemSelection.toSet": (),
- "PySide2.QtCore.QItemSelection.toVector": (),
- "PySide2.QtCore.QItemSelection.value": [('int',), ('int', 'PySide2.QtCore.QItemSelectionRange')],
-# class PySide2.QtCore.QItemSelectionModel:
-# class PySide2.QtCore.QItemSelectionModel.SelectionFlag:
-# class PySide2.QtCore.QItemSelectionModel.SelectionFlags:
- "PySide2.QtCore.QItemSelectionModel.__init__": [('PySide2.QtCore.QAbstractItemModel',), ('PySide2.QtCore.QAbstractItemModel', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QItemSelectionModel.clear": (),
- "PySide2.QtCore.QItemSelectionModel.clearCurrentIndex": (),
- "PySide2.QtCore.QItemSelectionModel.clearSelection": (),
- "PySide2.QtCore.QItemSelectionModel.columnIntersectsSelection": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QItemSelectionModel.currentIndex": (),
- "PySide2.QtCore.QItemSelectionModel.emitSelectionChanged": ('PySide2.QtCore.QItemSelection', 'PySide2.QtCore.QItemSelection'),
- "PySide2.QtCore.QItemSelectionModel.hasSelection": (),
- "PySide2.QtCore.QItemSelectionModel.isColumnSelected": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QItemSelectionModel.isRowSelected": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QItemSelectionModel.isSelected": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QItemSelectionModel.model": (),
- "PySide2.QtCore.QItemSelectionModel.reset": (),
- "PySide2.QtCore.QItemSelectionModel.rowIntersectsSelection": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QItemSelectionModel.select": [('PySide2.QtCore.QItemSelection', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags'), ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags')],
- "PySide2.QtCore.QItemSelectionModel.selectedColumns": ('int',),
- "PySide2.QtCore.QItemSelectionModel.selectedIndexes": (),
- "PySide2.QtCore.QItemSelectionModel.selectedRows": ('int',),
- "PySide2.QtCore.QItemSelectionModel.selection": (),
- "PySide2.QtCore.QItemSelectionModel.setCurrentIndex": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags'),
- "PySide2.QtCore.QItemSelectionModel.setModel": ('PySide2.QtCore.QAbstractItemModel',),
-# class PySide2.QtCore.QItemSelectionRange:
- "PySide2.QtCore.QItemSelectionRange.__init__": [(), ('PySide2.QtCore.QItemSelectionRange',), ('PySide2.QtCore.QModelIndex',), ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex')],
- "PySide2.QtCore.QItemSelectionRange.__copy__": (),
- "PySide2.QtCore.QItemSelectionRange.bottom": (),
- "PySide2.QtCore.QItemSelectionRange.bottomRight": (),
- "PySide2.QtCore.QItemSelectionRange.contains": [('PySide2.QtCore.QModelIndex',), ('int', 'int', 'PySide2.QtCore.QModelIndex')],
- "PySide2.QtCore.QItemSelectionRange.height": (),
- "PySide2.QtCore.QItemSelectionRange.indexes": (),
- "PySide2.QtCore.QItemSelectionRange.intersected": ('PySide2.QtCore.QItemSelectionRange',),
- "PySide2.QtCore.QItemSelectionRange.intersects": ('PySide2.QtCore.QItemSelectionRange',),
- "PySide2.QtCore.QItemSelectionRange.isEmpty": (),
- "PySide2.QtCore.QItemSelectionRange.isValid": (),
- "PySide2.QtCore.QItemSelectionRange.left": (),
- "PySide2.QtCore.QItemSelectionRange.model": (),
- "PySide2.QtCore.QItemSelectionRange.parent": (),
- "PySide2.QtCore.QItemSelectionRange.right": (),
- "PySide2.QtCore.QItemSelectionRange.swap": ('PySide2.QtCore.QItemSelectionRange',),
- "PySide2.QtCore.QItemSelectionRange.top": (),
- "PySide2.QtCore.QItemSelectionRange.topLeft": (),
- "PySide2.QtCore.QItemSelectionRange.width": (),
-# class PySide2.QtCore.QJsonArray:
- "PySide2.QtCore.QJsonArray.__init__": [(), ('PySide2.QtCore.QJsonArray',)],
- "PySide2.QtCore.QJsonArray.__add__": ('PySide2.QtCore.QJsonValue',),
- "PySide2.QtCore.QJsonArray.__copy__": (),
- "PySide2.QtCore.QJsonArray.__iadd__": ('PySide2.QtCore.QJsonValue',),
- "PySide2.QtCore.QJsonArray.__lshift__": ('PySide2.QtCore.QJsonValue',),
- "PySide2.QtCore.QJsonArray.append": ('PySide2.QtCore.QJsonValue',),
- "PySide2.QtCore.QJsonArray.at": ('int',),
- "PySide2.QtCore.QJsonArray.contains": ('PySide2.QtCore.QJsonValue',),
- "PySide2.QtCore.QJsonArray.count": (),
- "PySide2.QtCore.QJsonArray.empty": (),
- "PySide2.QtCore.QJsonArray.first": (),
- "PySide2.QtCore.QJsonArray.fromStringList": ('typing.Sequence[str]',),
- "PySide2.QtCore.QJsonArray.fromVariantList": ('typing.Sequence[typing.Any]',),
- "PySide2.QtCore.QJsonArray.insert": ('int', 'PySide2.QtCore.QJsonValue'),
- "PySide2.QtCore.QJsonArray.isEmpty": (),
- "PySide2.QtCore.QJsonArray.last": (),
- "PySide2.QtCore.QJsonArray.pop_back": (),
- "PySide2.QtCore.QJsonArray.pop_front": (),
- "PySide2.QtCore.QJsonArray.prepend": ('PySide2.QtCore.QJsonValue',),
- "PySide2.QtCore.QJsonArray.push_back": ('PySide2.QtCore.QJsonValue',),
- "PySide2.QtCore.QJsonArray.push_front": ('PySide2.QtCore.QJsonValue',),
- "PySide2.QtCore.QJsonArray.removeAt": ('int',),
- "PySide2.QtCore.QJsonArray.removeFirst": (),
- "PySide2.QtCore.QJsonArray.removeLast": (),
- "PySide2.QtCore.QJsonArray.replace": ('int', 'PySide2.QtCore.QJsonValue'),
- "PySide2.QtCore.QJsonArray.size": (),
- "PySide2.QtCore.QJsonArray.swap": ('PySide2.QtCore.QJsonArray',),
- "PySide2.QtCore.QJsonArray.takeAt": ('int',),
- "PySide2.QtCore.QJsonArray.toVariantList": (),
-# class PySide2.QtCore.QJsonDocument:
-# class PySide2.QtCore.QJsonDocument.DataValidation:
-# class PySide2.QtCore.QJsonDocument.JsonFormat:
- "PySide2.QtCore.QJsonDocument.__init__": [(), ('PySide2.QtCore.QJsonArray',), ('PySide2.QtCore.QJsonDocument',), ('typing.Dict[str, PySide2.QtCore.QJsonValue]',)],
- "PySide2.QtCore.QJsonDocument.__copy__": (),
- "PySide2.QtCore.QJsonDocument.array": (),
- "PySide2.QtCore.QJsonDocument.fromBinaryData": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QJsonDocument.DataValidation'),
- "PySide2.QtCore.QJsonDocument.fromJson": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QJsonParseError'),
- "PySide2.QtCore.QJsonDocument.fromRawData": ('str', 'int', 'PySide2.QtCore.QJsonDocument.DataValidation'),
- "PySide2.QtCore.QJsonDocument.fromVariant": ('typing.Any',),
- "PySide2.QtCore.QJsonDocument.isArray": (),
- "PySide2.QtCore.QJsonDocument.isEmpty": (),
- "PySide2.QtCore.QJsonDocument.isNull": (),
- "PySide2.QtCore.QJsonDocument.isObject": (),
- "PySide2.QtCore.QJsonDocument.object": (),
- "PySide2.QtCore.QJsonDocument.rawData": (),
- "PySide2.QtCore.QJsonDocument.setArray": ('PySide2.QtCore.QJsonArray',),
- "PySide2.QtCore.QJsonDocument.setObject": ('typing.Dict[str, PySide2.QtCore.QJsonValue]',),
- "PySide2.QtCore.QJsonDocument.swap": ('PySide2.QtCore.QJsonDocument',),
- "PySide2.QtCore.QJsonDocument.toBinaryData": (),
- "PySide2.QtCore.QJsonDocument.toJson": [(), ('PySide2.QtCore.QJsonDocument.JsonFormat',)],
- "PySide2.QtCore.QJsonDocument.toVariant": (),
-# class PySide2.QtCore.QJsonParseError:
-# class PySide2.QtCore.QJsonParseError.ParseError:
- "PySide2.QtCore.QJsonParseError.__init__": [(), ('PySide2.QtCore.QJsonParseError',)],
- "PySide2.QtCore.QJsonParseError.__copy__": (),
- "PySide2.QtCore.QJsonParseError.errorString": (),
-# class PySide2.QtCore.QJsonValue:
-# class PySide2.QtCore.QJsonValue.Type:
- "PySide2.QtCore.QJsonValue.__init__": [('PySide2.QtCore.QJsonArray',), ('PySide2.QtCore.QJsonValue',), ('PySide2.QtCore.QJsonValue.Type',), ('bool',), ('float',), ('int',), ('str',), ('typing.Dict[str, PySide2.QtCore.QJsonValue]',)],
- "PySide2.QtCore.QJsonValue.__copy__": (),
- "PySide2.QtCore.QJsonValue.fromVariant": ('typing.Any',),
- "PySide2.QtCore.QJsonValue.isArray": (),
- "PySide2.QtCore.QJsonValue.isBool": (),
- "PySide2.QtCore.QJsonValue.isDouble": (),
- "PySide2.QtCore.QJsonValue.isNull": (),
- "PySide2.QtCore.QJsonValue.isObject": (),
- "PySide2.QtCore.QJsonValue.isString": (),
- "PySide2.QtCore.QJsonValue.isUndefined": (),
- "PySide2.QtCore.QJsonValue.swap": ('PySide2.QtCore.QJsonValue',),
- "PySide2.QtCore.QJsonValue.toArray": [(), ('PySide2.QtCore.QJsonArray',)],
- "PySide2.QtCore.QJsonValue.toBool": ('bool',),
- "PySide2.QtCore.QJsonValue.toDouble": ('float',),
- "PySide2.QtCore.QJsonValue.toInt": ('int',),
- "PySide2.QtCore.QJsonValue.toObject": [(), ('typing.Dict[str, PySide2.QtCore.QJsonValue]',)],
- "PySide2.QtCore.QJsonValue.toString": [(), ('str',)],
- "PySide2.QtCore.QJsonValue.toVariant": (),
- "PySide2.QtCore.QJsonValue.type": (),
-# class PySide2.QtCore.QLibraryInfo:
-# class PySide2.QtCore.QLibraryInfo.LibraryLocation:
- "PySide2.QtCore.QLibraryInfo.build": (),
- "PySide2.QtCore.QLibraryInfo.buildDate": (),
- "PySide2.QtCore.QLibraryInfo.isDebugBuild": (),
- "PySide2.QtCore.QLibraryInfo.licensedProducts": (),
- "PySide2.QtCore.QLibraryInfo.licensee": (),
- "PySide2.QtCore.QLibraryInfo.location": ('PySide2.QtCore.QLibraryInfo.LibraryLocation',),
- "PySide2.QtCore.QLibraryInfo.platformPluginArguments": ('str',),
- "PySide2.QtCore.QLibraryInfo.version": (),
-# class PySide2.QtCore.QLine:
- "PySide2.QtCore.QLine.__init__": [(), ('PySide2.QtCore.QLine',), ('PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint'), ('int', 'int', 'int', 'int')],
- "PySide2.QtCore.QLine.__copy__": (),
- "PySide2.QtCore.QLine.__reduce__": (),
- "PySide2.QtCore.QLine.__repr__": (),
- "PySide2.QtCore.QLine.center": (),
- "PySide2.QtCore.QLine.dx": (),
- "PySide2.QtCore.QLine.dy": (),
- "PySide2.QtCore.QLine.isNull": (),
- "PySide2.QtCore.QLine.p1": (),
- "PySide2.QtCore.QLine.p2": (),
- "PySide2.QtCore.QLine.setLine": ('int', 'int', 'int', 'int'),
- "PySide2.QtCore.QLine.setP1": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QLine.setP2": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QLine.setPoints": ('PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint'),
- "PySide2.QtCore.QLine.toTuple": (),
- "PySide2.QtCore.QLine.translate": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtCore.QLine.translated": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtCore.QLine.x1": (),
- "PySide2.QtCore.QLine.x2": (),
- "PySide2.QtCore.QLine.y1": (),
- "PySide2.QtCore.QLine.y2": (),
-# class PySide2.QtCore.QLineF:
-# class PySide2.QtCore.QLineF.IntersectType:
- "PySide2.QtCore.QLineF.__init__": [(), ('PySide2.QtCore.QLine',), ('PySide2.QtCore.QLineF',), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'), ('float', 'float', 'float', 'float')],
- "PySide2.QtCore.QLineF.__copy__": (),
- "PySide2.QtCore.QLineF.__reduce__": (),
- "PySide2.QtCore.QLineF.__repr__": (),
- "PySide2.QtCore.QLineF.angle": [(), ('PySide2.QtCore.QLineF',)],
- "PySide2.QtCore.QLineF.angleTo": ('PySide2.QtCore.QLineF',),
- "PySide2.QtCore.QLineF.center": (),
- "PySide2.QtCore.QLineF.dx": (),
- "PySide2.QtCore.QLineF.dy": (),
- "PySide2.QtCore.QLineF.fromPolar": ('float', 'float'),
- "PySide2.QtCore.QLineF.intersect": ('PySide2.QtCore.QLineF', 'PySide2.QtCore.QPointF'),
- "PySide2.QtCore.QLineF.intersects": ('PySide2.QtCore.QLineF', 'PySide2.QtCore.QPointF'),
- "PySide2.QtCore.QLineF.isNull": (),
- "PySide2.QtCore.QLineF.length": (),
- "PySide2.QtCore.QLineF.normalVector": (),
- "PySide2.QtCore.QLineF.p1": (),
- "PySide2.QtCore.QLineF.p2": (),
- "PySide2.QtCore.QLineF.pointAt": ('float',),
- "PySide2.QtCore.QLineF.setAngle": ('float',),
- "PySide2.QtCore.QLineF.setLength": ('float',),
- "PySide2.QtCore.QLineF.setLine": ('float', 'float', 'float', 'float'),
- "PySide2.QtCore.QLineF.setP1": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QLineF.setP2": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QLineF.setPoints": ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'),
- "PySide2.QtCore.QLineF.toLine": (),
- "PySide2.QtCore.QLineF.toTuple": (),
- "PySide2.QtCore.QLineF.translate": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtCore.QLineF.translated": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtCore.QLineF.unitVector": (),
- "PySide2.QtCore.QLineF.x1": (),
- "PySide2.QtCore.QLineF.x2": (),
- "PySide2.QtCore.QLineF.y1": (),
- "PySide2.QtCore.QLineF.y2": (),
-# class PySide2.QtCore.QLocale:
-# class PySide2.QtCore.QLocale.Country:
-# class PySide2.QtCore.QLocale.CurrencySymbolFormat:
-# class PySide2.QtCore.QLocale.DataSizeFormat:
-# class PySide2.QtCore.QLocale.DataSizeFormats:
-# class PySide2.QtCore.QLocale.FloatingPointPrecisionOption:
-# class PySide2.QtCore.QLocale.FormatType:
-# class PySide2.QtCore.QLocale.Language:
-# class PySide2.QtCore.QLocale.MeasurementSystem:
-# class PySide2.QtCore.QLocale.NumberOption:
-# class PySide2.QtCore.QLocale.NumberOptions:
-# class PySide2.QtCore.QLocale.QuotationStyle:
-# class PySide2.QtCore.QLocale.Script:
- "PySide2.QtCore.QLocale.__init__": [(), ('PySide2.QtCore.QLocale',), ('PySide2.QtCore.QLocale.Language', 'PySide2.QtCore.QLocale.Country'), ('PySide2.QtCore.QLocale.Language', 'PySide2.QtCore.QLocale.Script', 'PySide2.QtCore.QLocale.Country'), ('str',)],
- "PySide2.QtCore.QLocale.__copy__": (),
- "PySide2.QtCore.QLocale.amText": (),
- "PySide2.QtCore.QLocale.bcp47Name": (),
- "PySide2.QtCore.QLocale.c": (),
- "PySide2.QtCore.QLocale.collation": (),
- "PySide2.QtCore.QLocale.countriesForLanguage": ('PySide2.QtCore.QLocale.Language',),
- "PySide2.QtCore.QLocale.country": (),
- "PySide2.QtCore.QLocale.countryToString": ('PySide2.QtCore.QLocale.Country',),
- "PySide2.QtCore.QLocale.createSeparatedList": ('typing.Sequence[str]',),
- "PySide2.QtCore.QLocale.currencySymbol": ('PySide2.QtCore.QLocale.CurrencySymbolFormat',),
- "PySide2.QtCore.QLocale.dateFormat": ('PySide2.QtCore.QLocale.FormatType',),
- "PySide2.QtCore.QLocale.dateTimeFormat": ('PySide2.QtCore.QLocale.FormatType',),
- "PySide2.QtCore.QLocale.dayName": ('int', 'PySide2.QtCore.QLocale.FormatType'),
- "PySide2.QtCore.QLocale.decimalPoint": (),
- "PySide2.QtCore.QLocale.exponential": (),
- "PySide2.QtCore.QLocale.firstDayOfWeek": (),
- "PySide2.QtCore.QLocale.formattedDataSize": ('int', 'int', 'PySide2.QtCore.QLocale.DataSizeFormats'),
- "PySide2.QtCore.QLocale.groupSeparator": (),
- "PySide2.QtCore.QLocale.language": (),
- "PySide2.QtCore.QLocale.languageToString": ('PySide2.QtCore.QLocale.Language',),
- "PySide2.QtCore.QLocale.matchingLocales": ('PySide2.QtCore.QLocale.Language', 'PySide2.QtCore.QLocale.Script', 'PySide2.QtCore.QLocale.Country'),
- "PySide2.QtCore.QLocale.measurementSystem": (),
- "PySide2.QtCore.QLocale.monthName": ('int', 'PySide2.QtCore.QLocale.FormatType'),
- "PySide2.QtCore.QLocale.name": (),
- "PySide2.QtCore.QLocale.nativeCountryName": (),
- "PySide2.QtCore.QLocale.nativeLanguageName": (),
- "PySide2.QtCore.QLocale.negativeSign": (),
- "PySide2.QtCore.QLocale.numberOptions": (),
- "PySide2.QtCore.QLocale.percent": (),
- "PySide2.QtCore.QLocale.pmText": (),
- "PySide2.QtCore.QLocale.positiveSign": (),
- "PySide2.QtCore.QLocale.quoteString": ('str', 'PySide2.QtCore.QLocale.QuotationStyle'),
- "PySide2.QtCore.QLocale.script": (),
- "PySide2.QtCore.QLocale.scriptToString": ('PySide2.QtCore.QLocale.Script',),
- "PySide2.QtCore.QLocale.setDefault": ('PySide2.QtCore.QLocale',),
- "PySide2.QtCore.QLocale.setNumberOptions": ('PySide2.QtCore.QLocale.NumberOptions',),
- "PySide2.QtCore.QLocale.standaloneDayName": ('int', 'PySide2.QtCore.QLocale.FormatType'),
- "PySide2.QtCore.QLocale.standaloneMonthName": ('int', 'PySide2.QtCore.QLocale.FormatType'),
- "PySide2.QtCore.QLocale.swap": ('PySide2.QtCore.QLocale',),
- "PySide2.QtCore.QLocale.system": (),
- "PySide2.QtCore.QLocale.textDirection": (),
- "PySide2.QtCore.QLocale.timeFormat": ('PySide2.QtCore.QLocale.FormatType',),
- "PySide2.QtCore.QLocale.toCurrencyString": [('float', 'str'), ('float', 'str', 'int'), ('int', 'str')],
- "PySide2.QtCore.QLocale.toDate": [('str', 'PySide2.QtCore.QLocale.FormatType'), ('str', 'PySide2.QtCore.QLocale.FormatType', 'PySide2.QtCore.QCalendar'), ('str', 'str'), ('str', 'str', 'PySide2.QtCore.QCalendar')],
- "PySide2.QtCore.QLocale.toDateTime": [('str', 'PySide2.QtCore.QLocale.FormatType'), ('str', 'PySide2.QtCore.QLocale.FormatType', 'PySide2.QtCore.QCalendar'), ('str', 'str'), ('str', 'str', 'PySide2.QtCore.QCalendar')],
- "PySide2.QtCore.QLocale.toDouble": ('str',),
- "PySide2.QtCore.QLocale.toFloat": ('str',),
- "PySide2.QtCore.QLocale.toInt": ('str',),
- "PySide2.QtCore.QLocale.toLong": ('str',),
- "PySide2.QtCore.QLocale.toLongLong": ('str',),
- "PySide2.QtCore.QLocale.toLower": ('str',),
- "PySide2.QtCore.QLocale.toShort": ('str',),
- "PySide2.QtCore.QLocale.toString": [('PySide2.QtCore.QDate', 'PySide2.QtCore.QLocale.FormatType'), ('PySide2.QtCore.QDate', 'PySide2.QtCore.QLocale.FormatType', 'PySide2.QtCore.QCalendar'), ('PySide2.QtCore.QDate', 'str'), ('PySide2.QtCore.QDateTime', 'PySide2.QtCore.QLocale.FormatType'), ('PySide2.QtCore.QDateTime', 'PySide2.QtCore.QLocale.FormatType', 'PySide2.QtCore.QCalendar'), ('PySide2.QtCore.QDateTime', 'str'), ('PySide2.QtCore.QTime', 'PySide2.QtCore.QLocale.FormatType'), ('PySide2.QtCore.QTime', 'str'), ('float', 'int', 'int'), ('int',)],
- "PySide2.QtCore.QLocale.toTime": [('str', 'PySide2.QtCore.QLocale.FormatType'), ('str', 'PySide2.QtCore.QLocale.FormatType', 'PySide2.QtCore.QCalendar'), ('str', 'str'), ('str', 'str', 'PySide2.QtCore.QCalendar')],
- "PySide2.QtCore.QLocale.toUInt": ('str',),
- "PySide2.QtCore.QLocale.toULong": ('str',),
- "PySide2.QtCore.QLocale.toULongLong": ('str',),
- "PySide2.QtCore.QLocale.toUShort": ('str',),
- "PySide2.QtCore.QLocale.toUpper": ('str',),
- "PySide2.QtCore.QLocale.uiLanguages": (),
- "PySide2.QtCore.QLocale.weekdays": (),
- "PySide2.QtCore.QLocale.zeroDigit": (),
-# class PySide2.QtCore.QLockFile:
-# class PySide2.QtCore.QLockFile.LockError:
- "PySide2.QtCore.QLockFile.__init__": ('str',),
- "PySide2.QtCore.QLockFile.error": (),
- "PySide2.QtCore.QLockFile.getLockInfo": (),
- "PySide2.QtCore.QLockFile.isLocked": (),
- "PySide2.QtCore.QLockFile.lock": (),
- "PySide2.QtCore.QLockFile.removeStaleLockFile": (),
- "PySide2.QtCore.QLockFile.setStaleLockTime": ('int',),
- "PySide2.QtCore.QLockFile.staleLockTime": (),
- "PySide2.QtCore.QLockFile.tryLock": ('int',),
- "PySide2.QtCore.QLockFile.unlock": (),
-# class PySide2.QtCore.QMargins:
- "PySide2.QtCore.QMargins.__init__": [(), ('PySide2.QtCore.QMargins',), ('int', 'int', 'int', 'int')],
- "PySide2.QtCore.QMargins.__add__": [('PySide2.QtCore.QMargins',), ('int',)],
- "PySide2.QtCore.QMargins.__copy__": (),
- "PySide2.QtCore.QMargins.__iadd__": [('PySide2.QtCore.QMargins',), ('int',)],
- "PySide2.QtCore.QMargins.__imul__": [('float',), ('int',)],
- "PySide2.QtCore.QMargins.__isub__": [('PySide2.QtCore.QMargins',), ('int',)],
- "PySide2.QtCore.QMargins.__mul__": [('float',), ('int',)],
- "PySide2.QtCore.QMargins.__neg__": (),
- "PySide2.QtCore.QMargins.__pos__": (),
- "PySide2.QtCore.QMargins.__sub__": [('PySide2.QtCore.QMargins',), ('int',)],
- "PySide2.QtCore.QMargins.bottom": (),
- "PySide2.QtCore.QMargins.isNull": (),
- "PySide2.QtCore.QMargins.left": (),
- "PySide2.QtCore.QMargins.right": (),
- "PySide2.QtCore.QMargins.setBottom": ('int',),
- "PySide2.QtCore.QMargins.setLeft": ('int',),
- "PySide2.QtCore.QMargins.setRight": ('int',),
- "PySide2.QtCore.QMargins.setTop": ('int',),
- "PySide2.QtCore.QMargins.top": (),
-# class PySide2.QtCore.QMarginsF:
- "PySide2.QtCore.QMarginsF.__init__": [(), ('PySide2.QtCore.QMargins',), ('PySide2.QtCore.QMarginsF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtCore.QMarginsF.__add__": [('PySide2.QtCore.QMarginsF',), ('float',)],
- "PySide2.QtCore.QMarginsF.__copy__": (),
- "PySide2.QtCore.QMarginsF.__iadd__": [('PySide2.QtCore.QMarginsF',), ('float',)],
- "PySide2.QtCore.QMarginsF.__imul__": ('float',),
- "PySide2.QtCore.QMarginsF.__isub__": [('PySide2.QtCore.QMarginsF',), ('float',)],
- "PySide2.QtCore.QMarginsF.__mul__": ('float',),
- "PySide2.QtCore.QMarginsF.__neg__": (),
- "PySide2.QtCore.QMarginsF.__pos__": (),
- "PySide2.QtCore.QMarginsF.__sub__": [('PySide2.QtCore.QMarginsF',), ('float',)],
- "PySide2.QtCore.QMarginsF.bottom": (),
- "PySide2.QtCore.QMarginsF.isNull": (),
- "PySide2.QtCore.QMarginsF.left": (),
- "PySide2.QtCore.QMarginsF.right": (),
- "PySide2.QtCore.QMarginsF.setBottom": ('float',),
- "PySide2.QtCore.QMarginsF.setLeft": ('float',),
- "PySide2.QtCore.QMarginsF.setRight": ('float',),
- "PySide2.QtCore.QMarginsF.setTop": ('float',),
- "PySide2.QtCore.QMarginsF.toMargins": (),
- "PySide2.QtCore.QMarginsF.top": (),
-# class PySide2.QtCore.QMessageAuthenticationCode:
- "PySide2.QtCore.QMessageAuthenticationCode.__init__": ('PySide2.QtCore.QCryptographicHash.Algorithm', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtCore.QMessageAuthenticationCode.addData": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QIODevice',), ('str', 'int')],
- "PySide2.QtCore.QMessageAuthenticationCode.hash": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray', 'PySide2.QtCore.QCryptographicHash.Algorithm'),
- "PySide2.QtCore.QMessageAuthenticationCode.reset": (),
- "PySide2.QtCore.QMessageAuthenticationCode.result": (),
- "PySide2.QtCore.QMessageAuthenticationCode.setKey": ('PySide2.QtCore.QByteArray',),
-# class PySide2.QtCore.QMessageLogContext:
- "PySide2.QtCore.QMessageLogContext.__init__": [(), ('str', 'int', 'str', 'str')],
-# class PySide2.QtCore.QMetaClassInfo:
- "PySide2.QtCore.QMetaClassInfo.__init__": [(), ('PySide2.QtCore.QMetaClassInfo',)],
- "PySide2.QtCore.QMetaClassInfo.__copy__": (),
- "PySide2.QtCore.QMetaClassInfo.name": (),
- "PySide2.QtCore.QMetaClassInfo.value": (),
-# class PySide2.QtCore.QMetaEnum:
- "PySide2.QtCore.QMetaEnum.__init__": [(), ('PySide2.QtCore.QMetaEnum',)],
- "PySide2.QtCore.QMetaEnum.__copy__": (),
- "PySide2.QtCore.QMetaEnum.enumName": (),
- "PySide2.QtCore.QMetaEnum.isFlag": (),
- "PySide2.QtCore.QMetaEnum.isScoped": (),
- "PySide2.QtCore.QMetaEnum.isValid": (),
- "PySide2.QtCore.QMetaEnum.key": ('int',),
- "PySide2.QtCore.QMetaEnum.keyCount": (),
- "PySide2.QtCore.QMetaEnum.keyToValue": ('str',),
- "PySide2.QtCore.QMetaEnum.keysToValue": ('str',),
- "PySide2.QtCore.QMetaEnum.name": (),
- "PySide2.QtCore.QMetaEnum.scope": (),
- "PySide2.QtCore.QMetaEnum.value": ('int',),
- "PySide2.QtCore.QMetaEnum.valueToKey": ('int',),
- "PySide2.QtCore.QMetaEnum.valueToKeys": ('int',),
-# class PySide2.QtCore.QMetaMethod:
-# class PySide2.QtCore.QMetaMethod.Access:
-# class PySide2.QtCore.QMetaMethod.MethodType:
- "PySide2.QtCore.QMetaMethod.__init__": [(), ('PySide2.QtCore.QMetaMethod',)],
- "PySide2.QtCore.QMetaMethod.__copy__": (),
- "PySide2.QtCore.QMetaMethod.access": (),
- "PySide2.QtCore.QMetaMethod.enclosingMetaObject": (),
- "PySide2.QtCore.QMetaMethod.invoke": [('PySide2.QtCore.QObject', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument'), ('PySide2.QtCore.QObject', 'PySide2.QtCore.QGenericReturnArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument'), ('PySide2.QtCore.QObject', 'PySide2.QtCore.Qt.ConnectionType', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument'), ('PySide2.QtCore.QObject', 'PySide2.QtCore.Qt.ConnectionType', 'PySide2.QtCore.QGenericReturnArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument')],
- "PySide2.QtCore.QMetaMethod.invokeOnGadget": [('int', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument'), ('int', 'PySide2.QtCore.QGenericReturnArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument')],
- "PySide2.QtCore.QMetaMethod.isValid": (),
- "PySide2.QtCore.QMetaMethod.methodIndex": (),
- "PySide2.QtCore.QMetaMethod.methodSignature": (),
- "PySide2.QtCore.QMetaMethod.methodType": (),
- "PySide2.QtCore.QMetaMethod.name": (),
- "PySide2.QtCore.QMetaMethod.parameterCount": (),
- "PySide2.QtCore.QMetaMethod.parameterNames": (),
- "PySide2.QtCore.QMetaMethod.parameterType": ('int',),
- "PySide2.QtCore.QMetaMethod.parameterTypes": (),
- "PySide2.QtCore.QMetaMethod.returnType": (),
- "PySide2.QtCore.QMetaMethod.revision": (),
- "PySide2.QtCore.QMetaMethod.tag": (),
- "PySide2.QtCore.QMetaMethod.typeName": (),
-# class PySide2.QtCore.QMetaObject:
-# class PySide2.QtCore.QMetaObject.Call:
-# class PySide2.QtCore.QMetaObject.Connection:
- "PySide2.QtCore.QMetaObject.Connection.__init__": [(), ('PySide2.QtCore.QMetaObject.Connection',)],
- "PySide2.QtCore.QMetaObject.__init__": (),
- "PySide2.QtCore.QMetaObject.cast": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QMetaObject.checkConnectArgs": [('PySide2.QtCore.QMetaMethod', 'PySide2.QtCore.QMetaMethod'), ('str', 'str')],
- "PySide2.QtCore.QMetaObject.classInfo": ('int',),
- "PySide2.QtCore.QMetaObject.classInfoCount": (),
- "PySide2.QtCore.QMetaObject.classInfoOffset": (),
- "PySide2.QtCore.QMetaObject.className": (),
- "PySide2.QtCore.QMetaObject.connectSlotsByName": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QMetaObject.constructor": ('int',),
- "PySide2.QtCore.QMetaObject.constructorCount": (),
- "PySide2.QtCore.QMetaObject.disconnect": ('PySide2.QtCore.QObject', 'int', 'PySide2.QtCore.QObject', 'int'),
- "PySide2.QtCore.QMetaObject.disconnectOne": ('PySide2.QtCore.QObject', 'int', 'PySide2.QtCore.QObject', 'int'),
- "PySide2.QtCore.QMetaObject.enumerator": ('int',),
- "PySide2.QtCore.QMetaObject.enumeratorCount": (),
- "PySide2.QtCore.QMetaObject.enumeratorOffset": (),
- "PySide2.QtCore.QMetaObject.indexOfClassInfo": ('str',),
- "PySide2.QtCore.QMetaObject.indexOfConstructor": ('str',),
- "PySide2.QtCore.QMetaObject.indexOfEnumerator": ('str',),
- "PySide2.QtCore.QMetaObject.indexOfMethod": ('str',),
- "PySide2.QtCore.QMetaObject.indexOfProperty": ('str',),
- "PySide2.QtCore.QMetaObject.indexOfSignal": ('str',),
- "PySide2.QtCore.QMetaObject.indexOfSlot": ('str',),
- "PySide2.QtCore.QMetaObject.inherits": ('PySide2.QtCore.QMetaObject',),
- "PySide2.QtCore.QMetaObject.invokeMethod": [('PySide2.QtCore.QObject', 'str', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument'), ('PySide2.QtCore.QObject', 'str', 'PySide2.QtCore.QGenericReturnArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument'), ('PySide2.QtCore.QObject', 'str', 'PySide2.QtCore.Qt.ConnectionType', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument'), ('PySide2.QtCore.QObject', 'str', 'PySide2.QtCore.Qt.ConnectionType', 'PySide2.QtCore.QGenericReturnArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument')],
- "PySide2.QtCore.QMetaObject.method": ('int',),
- "PySide2.QtCore.QMetaObject.methodCount": (),
- "PySide2.QtCore.QMetaObject.methodOffset": (),
- "PySide2.QtCore.QMetaObject.newInstance": ('PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument', 'PySide2.QtCore.QGenericArgument'),
- "PySide2.QtCore.QMetaObject.normalizedSignature": ('str',),
- "PySide2.QtCore.QMetaObject.normalizedType": ('str',),
- "PySide2.QtCore.QMetaObject.property": ('int',),
- "PySide2.QtCore.QMetaObject.propertyCount": (),
- "PySide2.QtCore.QMetaObject.propertyOffset": (),
- "PySide2.QtCore.QMetaObject.superClass": (),
- "PySide2.QtCore.QMetaObject.userProperty": (),
-# class PySide2.QtCore.QMetaProperty:
- "PySide2.QtCore.QMetaProperty.__init__": [(), ('PySide2.QtCore.QMetaProperty',)],
- "PySide2.QtCore.QMetaProperty.__copy__": (),
- "PySide2.QtCore.QMetaProperty.enumerator": (),
- "PySide2.QtCore.QMetaProperty.hasNotifySignal": (),
- "PySide2.QtCore.QMetaProperty.hasStdCppSet": (),
- "PySide2.QtCore.QMetaProperty.isConstant": (),
- "PySide2.QtCore.QMetaProperty.isDesignable": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QMetaProperty.isEditable": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QMetaProperty.isEnumType": (),
- "PySide2.QtCore.QMetaProperty.isFinal": (),
- "PySide2.QtCore.QMetaProperty.isFlagType": (),
- "PySide2.QtCore.QMetaProperty.isReadable": (),
- "PySide2.QtCore.QMetaProperty.isResettable": (),
- "PySide2.QtCore.QMetaProperty.isScriptable": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QMetaProperty.isStored": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QMetaProperty.isUser": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QMetaProperty.isValid": (),
- "PySide2.QtCore.QMetaProperty.isWritable": (),
- "PySide2.QtCore.QMetaProperty.name": (),
- "PySide2.QtCore.QMetaProperty.notifySignal": (),
- "PySide2.QtCore.QMetaProperty.notifySignalIndex": (),
- "PySide2.QtCore.QMetaProperty.propertyIndex": (),
- "PySide2.QtCore.QMetaProperty.read": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QMetaProperty.readOnGadget": ('int',),
- "PySide2.QtCore.QMetaProperty.relativePropertyIndex": (),
- "PySide2.QtCore.QMetaProperty.reset": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QMetaProperty.resetOnGadget": ('int',),
- "PySide2.QtCore.QMetaProperty.revision": (),
- "PySide2.QtCore.QMetaProperty.type": (),
- "PySide2.QtCore.QMetaProperty.typeName": (),
- "PySide2.QtCore.QMetaProperty.userType": (),
- "PySide2.QtCore.QMetaProperty.write": ('PySide2.QtCore.QObject', 'typing.Any'),
- "PySide2.QtCore.QMetaProperty.writeOnGadget": ('int', 'typing.Any'),
-# class PySide2.QtCore.QMimeData:
- "PySide2.QtCore.QMimeData.__init__": (),
- "PySide2.QtCore.QMimeData.clear": (),
- "PySide2.QtCore.QMimeData.colorData": (),
- "PySide2.QtCore.QMimeData.data": ('str',),
- "PySide2.QtCore.QMimeData.formats": (),
- "PySide2.QtCore.QMimeData.hasColor": (),
- "PySide2.QtCore.QMimeData.hasFormat": ('str',),
- "PySide2.QtCore.QMimeData.hasHtml": (),
- "PySide2.QtCore.QMimeData.hasImage": (),
- "PySide2.QtCore.QMimeData.hasText": (),
- "PySide2.QtCore.QMimeData.hasUrls": (),
- "PySide2.QtCore.QMimeData.html": (),
- "PySide2.QtCore.QMimeData.imageData": (),
- "PySide2.QtCore.QMimeData.removeFormat": ('str',),
- "PySide2.QtCore.QMimeData.retrieveData": ('str', 'type'),
- "PySide2.QtCore.QMimeData.setColorData": ('typing.Any',),
- "PySide2.QtCore.QMimeData.setData": ('str', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtCore.QMimeData.setHtml": ('str',),
- "PySide2.QtCore.QMimeData.setImageData": ('typing.Any',),
- "PySide2.QtCore.QMimeData.setText": ('str',),
- "PySide2.QtCore.QMimeData.setUrls": ('typing.Sequence[PySide2.QtCore.QUrl]',),
- "PySide2.QtCore.QMimeData.text": (),
- "PySide2.QtCore.QMimeData.urls": (),
-# class PySide2.QtCore.QMimeDatabase:
-# class PySide2.QtCore.QMimeDatabase.MatchMode:
- "PySide2.QtCore.QMimeDatabase.__init__": (),
- "PySide2.QtCore.QMimeDatabase.allMimeTypes": (),
- "PySide2.QtCore.QMimeDatabase.mimeTypeForData": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QIODevice',)],
- "PySide2.QtCore.QMimeDatabase.mimeTypeForFile": [('PySide2.QtCore.QFileInfo', 'PySide2.QtCore.QMimeDatabase.MatchMode'), ('str', 'PySide2.QtCore.QMimeDatabase.MatchMode')],
- "PySide2.QtCore.QMimeDatabase.mimeTypeForFileNameAndData": [('str', 'PySide2.QtCore.QByteArray'), ('str', 'PySide2.QtCore.QIODevice')],
- "PySide2.QtCore.QMimeDatabase.mimeTypeForName": ('str',),
- "PySide2.QtCore.QMimeDatabase.mimeTypeForUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtCore.QMimeDatabase.mimeTypesForFileName": ('str',),
- "PySide2.QtCore.QMimeDatabase.suffixForFileName": ('str',),
-# class PySide2.QtCore.QMimeType:
- "PySide2.QtCore.QMimeType.__init__": [(), ('PySide2.QtCore.QMimeType',)],
- "PySide2.QtCore.QMimeType.__copy__": (),
- "PySide2.QtCore.QMimeType.aliases": (),
- "PySide2.QtCore.QMimeType.allAncestors": (),
- "PySide2.QtCore.QMimeType.comment": (),
- "PySide2.QtCore.QMimeType.filterString": (),
- "PySide2.QtCore.QMimeType.genericIconName": (),
- "PySide2.QtCore.QMimeType.globPatterns": (),
- "PySide2.QtCore.QMimeType.iconName": (),
- "PySide2.QtCore.QMimeType.inherits": ('str',),
- "PySide2.QtCore.QMimeType.isDefault": (),
- "PySide2.QtCore.QMimeType.isValid": (),
- "PySide2.QtCore.QMimeType.name": (),
- "PySide2.QtCore.QMimeType.parentMimeTypes": (),
- "PySide2.QtCore.QMimeType.preferredSuffix": (),
- "PySide2.QtCore.QMimeType.suffixes": (),
- "PySide2.QtCore.QMimeType.swap": ('PySide2.QtCore.QMimeType',),
-# class PySide2.QtCore.QModelIndex:
- "PySide2.QtCore.QModelIndex.__init__": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtCore.QModelIndex.__copy__": (),
- "PySide2.QtCore.QModelIndex.child": ('int', 'int'),
- "PySide2.QtCore.QModelIndex.column": (),
- "PySide2.QtCore.QModelIndex.data": ('int',),
- "PySide2.QtCore.QModelIndex.flags": (),
- "PySide2.QtCore.QModelIndex.internalId": (),
- "PySide2.QtCore.QModelIndex.internalPointer": (),
- "PySide2.QtCore.QModelIndex.isValid": (),
- "PySide2.QtCore.QModelIndex.model": (),
- "PySide2.QtCore.QModelIndex.parent": (),
- "PySide2.QtCore.QModelIndex.row": (),
- "PySide2.QtCore.QModelIndex.sibling": ('int', 'int'),
- "PySide2.QtCore.QModelIndex.siblingAtColumn": ('int',),
- "PySide2.QtCore.QModelIndex.siblingAtRow": ('int',),
-# class PySide2.QtCore.QMutex:
-# class PySide2.QtCore.QMutex.RecursionMode:
- "PySide2.QtCore.QMutex.__init__": [(), ('PySide2.QtCore.QMutex.RecursionMode',)],
- "PySide2.QtCore.QMutex.isRecursive": (),
- "PySide2.QtCore.QMutex.lock": (),
- "PySide2.QtCore.QMutex.tryLock": [(), ('int',)],
- "PySide2.QtCore.QMutex.try_lock": (),
- "PySide2.QtCore.QMutex.unlock": (),
-# class PySide2.QtCore.QMutexLocker:
- "PySide2.QtCore.QMutexLocker.__init__": [('PySide2.QtCore.QBasicMutex',), ('PySide2.QtCore.QRecursiveMutex',)],
- "PySide2.QtCore.QMutexLocker.__enter__": (),
- "PySide2.QtCore.QMutexLocker.__exit__": ('object', 'object', 'object'),
- "PySide2.QtCore.QMutexLocker.mutex": (),
- "PySide2.QtCore.QMutexLocker.relock": (),
- "PySide2.QtCore.QMutexLocker.unlock": (),
-# class PySide2.QtCore.QObject:
- "PySide2.QtCore.QObject.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QObject.blockSignals": ('bool',),
- "PySide2.QtCore.QObject.childEvent": ('PySide2.QtCore.QChildEvent',),
- "PySide2.QtCore.QObject.children": (),
- "PySide2.QtCore.QObject.connect": [('PySide2.QtCore.QObject', 'PySide2.QtCore.QMetaMethod', 'PySide2.QtCore.QObject', 'PySide2.QtCore.QMetaMethod', 'PySide2.QtCore.Qt.ConnectionType'), ('PySide2.QtCore.QObject', 'str', 'PySide2.QtCore.QObject', 'str', 'PySide2.QtCore.Qt.ConnectionType'), ('PySide2.QtCore.QObject', 'str', 'str', 'PySide2.QtCore.Qt.ConnectionType'), ('PySide2.QtCore.QObject', 'str', 'typing.Callable', 'PySide2.QtCore.Qt.ConnectionType'), ('str', 'PySide2.QtCore.QObject', 'str', 'PySide2.QtCore.Qt.ConnectionType'), ('str', 'typing.Callable', 'PySide2.QtCore.Qt.ConnectionType')],
- "PySide2.QtCore.QObject.connectNotify": ('PySide2.QtCore.QMetaMethod',),
- "PySide2.QtCore.QObject.customEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QObject.deleteLater": (),
- "PySide2.QtCore.QObject.disconnect": [('PySide2.QtCore.QMetaObject.Connection',), ('PySide2.QtCore.QObject', 'PySide2.QtCore.QMetaMethod', 'PySide2.QtCore.QObject', 'PySide2.QtCore.QMetaMethod'), ('PySide2.QtCore.QObject', 'str'), ('PySide2.QtCore.QObject', 'str', 'PySide2.QtCore.QObject', 'str'), ('PySide2.QtCore.QObject', 'str', 'typing.Callable'), ('str', 'PySide2.QtCore.QObject', 'str'), ('str', 'typing.Callable')],
- "PySide2.QtCore.QObject.disconnectNotify": ('PySide2.QtCore.QMetaMethod',),
- "PySide2.QtCore.QObject.dumpObjectInfo": (),
- "PySide2.QtCore.QObject.dumpObjectTree": (),
- "PySide2.QtCore.QObject.dynamicPropertyNames": (),
- "PySide2.QtCore.QObject.emit": ('str', 'None'),
- "PySide2.QtCore.QObject.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QObject.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtCore.QObject.findChild": ('type', 'str'),
- "PySide2.QtCore.QObject.findChildren": [('type', 'PySide2.QtCore.QRegExp'), ('type', 'str')],
- "PySide2.QtCore.QObject.inherits": ('str',),
- "PySide2.QtCore.QObject.installEventFilter": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QObject.isSignalConnected": ('PySide2.QtCore.QMetaMethod',),
- "PySide2.QtCore.QObject.isWidgetType": (),
- "PySide2.QtCore.QObject.isWindowType": (),
- "PySide2.QtCore.QObject.killTimer": ('int',),
- "PySide2.QtCore.QObject.metaObject": (),
- "PySide2.QtCore.QObject.moveToThread": ('PySide2.QtCore.QThread',),
- "PySide2.QtCore.QObject.objectName": (),
- "PySide2.QtCore.QObject.parent": (),
- "PySide2.QtCore.QObject.property": ('str',),
- "PySide2.QtCore.QObject.receivers": ('str',),
- "PySide2.QtCore.QObject.registerUserData": (),
- "PySide2.QtCore.QObject.removeEventFilter": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QObject.sender": (),
- "PySide2.QtCore.QObject.senderSignalIndex": (),
- "PySide2.QtCore.QObject.setObjectName": ('str',),
- "PySide2.QtCore.QObject.setParent": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QObject.setProperty": ('str', 'typing.Any'),
- "PySide2.QtCore.QObject.signalsBlocked": (),
- "PySide2.QtCore.QObject.startTimer": ('int', 'PySide2.QtCore.Qt.TimerType'),
- "PySide2.QtCore.QObject.thread": (),
- "PySide2.QtCore.QObject.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtCore.QObject.tr": ('str', 'str', 'int'),
-# class PySide2.QtCore.QOperatingSystemVersion:
-# class PySide2.QtCore.QOperatingSystemVersion.OSType:
- "PySide2.QtCore.QOperatingSystemVersion.__init__": [('PySide2.QtCore.QOperatingSystemVersion',), ('PySide2.QtCore.QOperatingSystemVersion.OSType', 'int', 'int', 'int')],
- "PySide2.QtCore.QOperatingSystemVersion.__copy__": (),
- "PySide2.QtCore.QOperatingSystemVersion.current": (),
- "PySide2.QtCore.QOperatingSystemVersion.currentType": (),
- "PySide2.QtCore.QOperatingSystemVersion.majorVersion": (),
- "PySide2.QtCore.QOperatingSystemVersion.microVersion": (),
- "PySide2.QtCore.QOperatingSystemVersion.minorVersion": (),
- "PySide2.QtCore.QOperatingSystemVersion.name": (),
- "PySide2.QtCore.QOperatingSystemVersion.segmentCount": (),
- "PySide2.QtCore.QOperatingSystemVersion.type": (),
-# class PySide2.QtCore.QParallelAnimationGroup:
- "PySide2.QtCore.QParallelAnimationGroup.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QParallelAnimationGroup.duration": (),
- "PySide2.QtCore.QParallelAnimationGroup.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QParallelAnimationGroup.updateCurrentTime": ('int',),
- "PySide2.QtCore.QParallelAnimationGroup.updateDirection": ('PySide2.QtCore.QAbstractAnimation.Direction',),
- "PySide2.QtCore.QParallelAnimationGroup.updateState": ('PySide2.QtCore.QAbstractAnimation.State', 'PySide2.QtCore.QAbstractAnimation.State'),
-# class PySide2.QtCore.QPauseAnimation:
- "PySide2.QtCore.QPauseAnimation.__init__": [('PySide2.QtCore.QObject',), ('int', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QPauseAnimation.duration": (),
- "PySide2.QtCore.QPauseAnimation.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QPauseAnimation.setDuration": ('int',),
- "PySide2.QtCore.QPauseAnimation.updateCurrentTime": ('int',),
-# class PySide2.QtCore.QPersistentModelIndex:
- "PySide2.QtCore.QPersistentModelIndex.__init__": [(), ('PySide2.QtCore.QModelIndex',), ('PySide2.QtCore.QPersistentModelIndex',)],
- "PySide2.QtCore.QPersistentModelIndex.__copy__": (),
- "PySide2.QtCore.QPersistentModelIndex.child": ('int', 'int'),
- "PySide2.QtCore.QPersistentModelIndex.column": (),
- "PySide2.QtCore.QPersistentModelIndex.data": ('int',),
- "PySide2.QtCore.QPersistentModelIndex.flags": (),
- "PySide2.QtCore.QPersistentModelIndex.internalId": (),
- "PySide2.QtCore.QPersistentModelIndex.internalPointer": (),
- "PySide2.QtCore.QPersistentModelIndex.isValid": (),
- "PySide2.QtCore.QPersistentModelIndex.model": (),
- "PySide2.QtCore.QPersistentModelIndex.parent": (),
- "PySide2.QtCore.QPersistentModelIndex.row": (),
- "PySide2.QtCore.QPersistentModelIndex.sibling": ('int', 'int'),
- "PySide2.QtCore.QPersistentModelIndex.swap": ('PySide2.QtCore.QPersistentModelIndex',),
-# class PySide2.QtCore.QPluginLoader:
- "PySide2.QtCore.QPluginLoader.__init__": [('PySide2.QtCore.QObject',), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QPluginLoader.errorString": (),
- "PySide2.QtCore.QPluginLoader.fileName": (),
- "PySide2.QtCore.QPluginLoader.instance": (),
- "PySide2.QtCore.QPluginLoader.isLoaded": (),
- "PySide2.QtCore.QPluginLoader.load": (),
- "PySide2.QtCore.QPluginLoader.metaData": (),
- "PySide2.QtCore.QPluginLoader.setFileName": ('str',),
- "PySide2.QtCore.QPluginLoader.staticInstances": (),
- "PySide2.QtCore.QPluginLoader.unload": (),
-# class PySide2.QtCore.QPoint:
- "PySide2.QtCore.QPoint.__init__": [(), ('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtCore.QPoint.__add__": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QPoint.__copy__": (),
- "PySide2.QtCore.QPoint.__iadd__": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QPoint.__imul__": [('float',), ('int',)],
- "PySide2.QtCore.QPoint.__isub__": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QPoint.__mul__": [('float',), ('int',)],
- "PySide2.QtCore.QPoint.__neg__": (),
- "PySide2.QtCore.QPoint.__pos__": (),
- "PySide2.QtCore.QPoint.__reduce__": (),
- "PySide2.QtCore.QPoint.__repr__": (),
- "PySide2.QtCore.QPoint.__sub__": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QPoint.dotProduct": ('PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint'),
- "PySide2.QtCore.QPoint.isNull": (),
- "PySide2.QtCore.QPoint.manhattanLength": (),
- "PySide2.QtCore.QPoint.setX": ('int',),
- "PySide2.QtCore.QPoint.setY": ('int',),
- "PySide2.QtCore.QPoint.toTuple": (),
- "PySide2.QtCore.QPoint.transposed": (),
- "PySide2.QtCore.QPoint.x": (),
- "PySide2.QtCore.QPoint.y": (),
-# class PySide2.QtCore.QPointF:
- "PySide2.QtCore.QPointF.__init__": [(), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtCore.QPointF.__add__": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QPointF.__copy__": (),
- "PySide2.QtCore.QPointF.__iadd__": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QPointF.__imul__": ('float',),
- "PySide2.QtCore.QPointF.__isub__": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QPointF.__mul__": ('float',),
- "PySide2.QtCore.QPointF.__neg__": (),
- "PySide2.QtCore.QPointF.__pos__": (),
- "PySide2.QtCore.QPointF.__reduce__": (),
- "PySide2.QtCore.QPointF.__repr__": (),
- "PySide2.QtCore.QPointF.__sub__": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QPointF.dotProduct": ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'),
- "PySide2.QtCore.QPointF.isNull": (),
- "PySide2.QtCore.QPointF.manhattanLength": (),
- "PySide2.QtCore.QPointF.setX": ('float',),
- "PySide2.QtCore.QPointF.setY": ('float',),
- "PySide2.QtCore.QPointF.toPoint": (),
- "PySide2.QtCore.QPointF.toTuple": (),
- "PySide2.QtCore.QPointF.transposed": (),
- "PySide2.QtCore.QPointF.x": (),
- "PySide2.QtCore.QPointF.y": (),
-# class PySide2.QtCore.QProcess:
-# class PySide2.QtCore.QProcess.ExitStatus:
-# class PySide2.QtCore.QProcess.InputChannelMode:
-# class PySide2.QtCore.QProcess.ProcessChannel:
-# class PySide2.QtCore.QProcess.ProcessChannelMode:
-# class PySide2.QtCore.QProcess.ProcessError:
-# class PySide2.QtCore.QProcess.ProcessState:
- "PySide2.QtCore.QProcess.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QProcess.arguments": (),
- "PySide2.QtCore.QProcess.atEnd": (),
- "PySide2.QtCore.QProcess.bytesAvailable": (),
- "PySide2.QtCore.QProcess.bytesToWrite": (),
- "PySide2.QtCore.QProcess.canReadLine": (),
- "PySide2.QtCore.QProcess.close": (),
- "PySide2.QtCore.QProcess.closeReadChannel": ('PySide2.QtCore.QProcess.ProcessChannel',),
- "PySide2.QtCore.QProcess.closeWriteChannel": (),
- "PySide2.QtCore.QProcess.environment": (),
- "PySide2.QtCore.QProcess.error": (),
- "PySide2.QtCore.QProcess.execute": [('str',), ('str', 'typing.Sequence[str]')],
- "PySide2.QtCore.QProcess.exitCode": (),
- "PySide2.QtCore.QProcess.exitStatus": (),
- "PySide2.QtCore.QProcess.inputChannelMode": (),
- "PySide2.QtCore.QProcess.isSequential": (),
- "PySide2.QtCore.QProcess.kill": (),
- "PySide2.QtCore.QProcess.nullDevice": (),
- "PySide2.QtCore.QProcess.open": ('PySide2.QtCore.QIODevice.OpenMode',),
- "PySide2.QtCore.QProcess.pid": (),
- "PySide2.QtCore.QProcess.processChannelMode": (),
- "PySide2.QtCore.QProcess.processEnvironment": (),
- "PySide2.QtCore.QProcess.processId": (),
- "PySide2.QtCore.QProcess.program": (),
- "PySide2.QtCore.QProcess.readAllStandardError": (),
- "PySide2.QtCore.QProcess.readAllStandardOutput": (),
- "PySide2.QtCore.QProcess.readChannel": (),
- "PySide2.QtCore.QProcess.readData": ('str', 'int'),
- "PySide2.QtCore.QProcess.setArguments": ('typing.Sequence[str]',),
- "PySide2.QtCore.QProcess.setEnvironment": ('typing.Sequence[str]',),
- "PySide2.QtCore.QProcess.setInputChannelMode": ('PySide2.QtCore.QProcess.InputChannelMode',),
- "PySide2.QtCore.QProcess.setProcessChannelMode": ('PySide2.QtCore.QProcess.ProcessChannelMode',),
- "PySide2.QtCore.QProcess.setProcessEnvironment": ('PySide2.QtCore.QProcessEnvironment',),
- "PySide2.QtCore.QProcess.setProcessState": ('PySide2.QtCore.QProcess.ProcessState',),
- "PySide2.QtCore.QProcess.setProgram": ('str',),
- "PySide2.QtCore.QProcess.setReadChannel": ('PySide2.QtCore.QProcess.ProcessChannel',),
- "PySide2.QtCore.QProcess.setStandardErrorFile": ('str', 'PySide2.QtCore.QIODevice.OpenMode'),
- "PySide2.QtCore.QProcess.setStandardInputFile": ('str',),
- "PySide2.QtCore.QProcess.setStandardOutputFile": ('str', 'PySide2.QtCore.QIODevice.OpenMode'),
- "PySide2.QtCore.QProcess.setStandardOutputProcess": ('PySide2.QtCore.QProcess',),
- "PySide2.QtCore.QProcess.setWorkingDirectory": ('str',),
- "PySide2.QtCore.QProcess.setupChildProcess": (),
- "PySide2.QtCore.QProcess.start": [('PySide2.QtCore.QIODevice.OpenMode',), ('str', 'PySide2.QtCore.QIODevice.OpenMode'), ('str', 'typing.Sequence[str]', 'PySide2.QtCore.QIODevice.OpenMode')],
- "PySide2.QtCore.QProcess.startDetached": [(), ('str',), ('str', 'typing.Sequence[str]'), ('str', 'typing.Sequence[str]', 'str')],
- "PySide2.QtCore.QProcess.state": (),
- "PySide2.QtCore.QProcess.systemEnvironment": (),
- "PySide2.QtCore.QProcess.terminate": (),
- "PySide2.QtCore.QProcess.waitForBytesWritten": ('int',),
- "PySide2.QtCore.QProcess.waitForFinished": ('int',),
- "PySide2.QtCore.QProcess.waitForReadyRead": ('int',),
- "PySide2.QtCore.QProcess.waitForStarted": ('int',),
- "PySide2.QtCore.QProcess.workingDirectory": (),
- "PySide2.QtCore.QProcess.writeData": ('str', 'int'),
-# class PySide2.QtCore.QProcessEnvironment:
- "PySide2.QtCore.QProcessEnvironment.__init__": [(), ('PySide2.QtCore.QProcessEnvironment',)],
- "PySide2.QtCore.QProcessEnvironment.__copy__": (),
- "PySide2.QtCore.QProcessEnvironment.clear": (),
- "PySide2.QtCore.QProcessEnvironment.contains": ('str',),
- "PySide2.QtCore.QProcessEnvironment.insert": [('PySide2.QtCore.QProcessEnvironment',), ('str', 'str')],
- "PySide2.QtCore.QProcessEnvironment.isEmpty": (),
- "PySide2.QtCore.QProcessEnvironment.keys": (),
- "PySide2.QtCore.QProcessEnvironment.remove": ('str',),
- "PySide2.QtCore.QProcessEnvironment.swap": ('PySide2.QtCore.QProcessEnvironment',),
- "PySide2.QtCore.QProcessEnvironment.systemEnvironment": (),
- "PySide2.QtCore.QProcessEnvironment.toStringList": (),
- "PySide2.QtCore.QProcessEnvironment.value": ('str', 'str'),
-# class PySide2.QtCore.QPropertyAnimation:
- "PySide2.QtCore.QPropertyAnimation.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtCore.QObject', 'PySide2.QtCore.QByteArray', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QPropertyAnimation.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QPropertyAnimation.propertyName": (),
- "PySide2.QtCore.QPropertyAnimation.setPropertyName": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QPropertyAnimation.setTargetObject": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QPropertyAnimation.targetObject": (),
- "PySide2.QtCore.QPropertyAnimation.updateCurrentValue": ('typing.Any',),
- "PySide2.QtCore.QPropertyAnimation.updateState": ('PySide2.QtCore.QAbstractAnimation.State', 'PySide2.QtCore.QAbstractAnimation.State'),
-# class PySide2.QtCore.QRandomGenerator:
- "PySide2.QtCore.QRandomGenerator.__init__": [('PySide2.QtCore.QRandomGenerator',), ('int',), ('int', 'int')],
- "PySide2.QtCore.QRandomGenerator.bounded": [('float',), ('int',), ('int', 'int')],
- "PySide2.QtCore.QRandomGenerator.discard": ('int',),
- "PySide2.QtCore.QRandomGenerator.generate": (),
- "PySide2.QtCore.QRandomGenerator.generate64": (),
- "PySide2.QtCore.QRandomGenerator.generateDouble": (),
- "PySide2.QtCore.QRandomGenerator.global_": (),
- "PySide2.QtCore.QRandomGenerator.max": (),
- "PySide2.QtCore.QRandomGenerator.min": (),
- "PySide2.QtCore.QRandomGenerator.securelySeeded": (),
- "PySide2.QtCore.QRandomGenerator.seed": ('int',),
- "PySide2.QtCore.QRandomGenerator.system": (),
-# class PySide2.QtCore.QRandomGenerator64:
- "PySide2.QtCore.QRandomGenerator64.__init__": [('PySide2.QtCore.QRandomGenerator',), ('int',), ('int', 'int')],
- "PySide2.QtCore.QRandomGenerator64.discard": ('int',),
- "PySide2.QtCore.QRandomGenerator64.generate": (),
- "PySide2.QtCore.QRandomGenerator64.global_": (),
- "PySide2.QtCore.QRandomGenerator64.max": (),
- "PySide2.QtCore.QRandomGenerator64.min": (),
- "PySide2.QtCore.QRandomGenerator64.securelySeeded": (),
- "PySide2.QtCore.QRandomGenerator64.system": (),
-# class PySide2.QtCore.QReadLocker:
- "PySide2.QtCore.QReadLocker.__init__": ('PySide2.QtCore.QReadWriteLock',),
- "PySide2.QtCore.QReadLocker.__enter__": (),
- "PySide2.QtCore.QReadLocker.__exit__": ('object', 'object', 'object'),
- "PySide2.QtCore.QReadLocker.readWriteLock": (),
- "PySide2.QtCore.QReadLocker.relock": (),
- "PySide2.QtCore.QReadLocker.unlock": (),
-# class PySide2.QtCore.QReadWriteLock:
-# class PySide2.QtCore.QReadWriteLock.RecursionMode:
- "PySide2.QtCore.QReadWriteLock.__init__": ('PySide2.QtCore.QReadWriteLock.RecursionMode',),
- "PySide2.QtCore.QReadWriteLock.lockForRead": (),
- "PySide2.QtCore.QReadWriteLock.lockForWrite": (),
- "PySide2.QtCore.QReadWriteLock.tryLockForRead": [(), ('int',)],
- "PySide2.QtCore.QReadWriteLock.tryLockForWrite": [(), ('int',)],
- "PySide2.QtCore.QReadWriteLock.unlock": (),
-# class PySide2.QtCore.QRect:
- "PySide2.QtCore.QRect.__init__": [(), ('PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint'), ('PySide2.QtCore.QPoint', 'PySide2.QtCore.QSize'), ('PySide2.QtCore.QRect',), ('int', 'int', 'int', 'int')],
- "PySide2.QtCore.QRect.__add__": ('PySide2.QtCore.QMargins',),
- "PySide2.QtCore.QRect.__and__": ('PySide2.QtCore.QRect',),
- "PySide2.QtCore.QRect.__copy__": (),
- "PySide2.QtCore.QRect.__iadd__": ('PySide2.QtCore.QMargins',),
- "PySide2.QtCore.QRect.__iand__": ('PySide2.QtCore.QRect',),
- "PySide2.QtCore.QRect.__ior__": ('PySide2.QtCore.QRect',),
- "PySide2.QtCore.QRect.__isub__": ('PySide2.QtCore.QMargins',),
- "PySide2.QtCore.QRect.__or__": ('PySide2.QtCore.QRect',),
- "PySide2.QtCore.QRect.__reduce__": (),
- "PySide2.QtCore.QRect.__repr__": (),
- "PySide2.QtCore.QRect.__sub__": ('PySide2.QtCore.QMargins',),
- "PySide2.QtCore.QRect.adjust": ('int', 'int', 'int', 'int'),
- "PySide2.QtCore.QRect.adjusted": ('int', 'int', 'int', 'int'),
- "PySide2.QtCore.QRect.bottom": (),
- "PySide2.QtCore.QRect.bottomLeft": (),
- "PySide2.QtCore.QRect.bottomRight": (),
- "PySide2.QtCore.QRect.center": (),
- "PySide2.QtCore.QRect.contains": [('PySide2.QtCore.QPoint', 'bool'), ('PySide2.QtCore.QRect', 'bool'), ('int', 'int'), ('int', 'int', 'bool')],
- "PySide2.QtCore.QRect.getCoords": (),
- "PySide2.QtCore.QRect.getRect": (),
- "PySide2.QtCore.QRect.height": (),
- "PySide2.QtCore.QRect.intersected": ('PySide2.QtCore.QRect',),
- "PySide2.QtCore.QRect.intersects": ('PySide2.QtCore.QRect',),
- "PySide2.QtCore.QRect.isEmpty": (),
- "PySide2.QtCore.QRect.isNull": (),
- "PySide2.QtCore.QRect.isValid": (),
- "PySide2.QtCore.QRect.left": (),
- "PySide2.QtCore.QRect.marginsAdded": ('PySide2.QtCore.QMargins',),
- "PySide2.QtCore.QRect.marginsRemoved": ('PySide2.QtCore.QMargins',),
- "PySide2.QtCore.QRect.moveBottom": ('int',),
- "PySide2.QtCore.QRect.moveBottomLeft": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QRect.moveBottomRight": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QRect.moveCenter": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QRect.moveLeft": ('int',),
- "PySide2.QtCore.QRect.moveRight": ('int',),
- "PySide2.QtCore.QRect.moveTo": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtCore.QRect.moveTop": ('int',),
- "PySide2.QtCore.QRect.moveTopLeft": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QRect.moveTopRight": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QRect.normalized": (),
- "PySide2.QtCore.QRect.right": (),
- "PySide2.QtCore.QRect.setBottom": ('int',),
- "PySide2.QtCore.QRect.setBottomLeft": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QRect.setBottomRight": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QRect.setCoords": ('int', 'int', 'int', 'int'),
- "PySide2.QtCore.QRect.setHeight": ('int',),
- "PySide2.QtCore.QRect.setLeft": ('int',),
- "PySide2.QtCore.QRect.setRect": ('int', 'int', 'int', 'int'),
- "PySide2.QtCore.QRect.setRight": ('int',),
- "PySide2.QtCore.QRect.setSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtCore.QRect.setTop": ('int',),
- "PySide2.QtCore.QRect.setTopLeft": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QRect.setTopRight": ('PySide2.QtCore.QPoint',),
- "PySide2.QtCore.QRect.setWidth": ('int',),
- "PySide2.QtCore.QRect.setX": ('int',),
- "PySide2.QtCore.QRect.setY": ('int',),
- "PySide2.QtCore.QRect.size": (),
- "PySide2.QtCore.QRect.top": (),
- "PySide2.QtCore.QRect.topLeft": (),
- "PySide2.QtCore.QRect.topRight": (),
- "PySide2.QtCore.QRect.translate": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtCore.QRect.translated": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtCore.QRect.transposed": (),
- "PySide2.QtCore.QRect.united": ('PySide2.QtCore.QRect',),
- "PySide2.QtCore.QRect.width": (),
- "PySide2.QtCore.QRect.x": (),
- "PySide2.QtCore.QRect.y": (),
-# class PySide2.QtCore.QRectF:
- "PySide2.QtCore.QRectF.__init__": [(), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QSizeF'), ('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtCore.QRectF.__add__": ('PySide2.QtCore.QMarginsF',),
- "PySide2.QtCore.QRectF.__and__": ('PySide2.QtCore.QRectF',),
- "PySide2.QtCore.QRectF.__copy__": (),
- "PySide2.QtCore.QRectF.__iadd__": ('PySide2.QtCore.QMarginsF',),
- "PySide2.QtCore.QRectF.__iand__": ('PySide2.QtCore.QRectF',),
- "PySide2.QtCore.QRectF.__ior__": ('PySide2.QtCore.QRectF',),
- "PySide2.QtCore.QRectF.__isub__": ('PySide2.QtCore.QMarginsF',),
- "PySide2.QtCore.QRectF.__or__": ('PySide2.QtCore.QRectF',),
- "PySide2.QtCore.QRectF.__reduce__": (),
- "PySide2.QtCore.QRectF.__repr__": (),
- "PySide2.QtCore.QRectF.__sub__": ('PySide2.QtCore.QMarginsF',),
- "PySide2.QtCore.QRectF.adjust": ('float', 'float', 'float', 'float'),
- "PySide2.QtCore.QRectF.adjusted": ('float', 'float', 'float', 'float'),
- "PySide2.QtCore.QRectF.bottom": (),
- "PySide2.QtCore.QRectF.bottomLeft": (),
- "PySide2.QtCore.QRectF.bottomRight": (),
- "PySide2.QtCore.QRectF.center": (),
- "PySide2.QtCore.QRectF.contains": [('PySide2.QtCore.QPointF',), ('PySide2.QtCore.QRectF',), ('float', 'float')],
- "PySide2.QtCore.QRectF.getCoords": (),
- "PySide2.QtCore.QRectF.getRect": (),
- "PySide2.QtCore.QRectF.height": (),
- "PySide2.QtCore.QRectF.intersected": ('PySide2.QtCore.QRectF',),
- "PySide2.QtCore.QRectF.intersects": ('PySide2.QtCore.QRectF',),
- "PySide2.QtCore.QRectF.isEmpty": (),
- "PySide2.QtCore.QRectF.isNull": (),
- "PySide2.QtCore.QRectF.isValid": (),
- "PySide2.QtCore.QRectF.left": (),
- "PySide2.QtCore.QRectF.marginsAdded": ('PySide2.QtCore.QMarginsF',),
- "PySide2.QtCore.QRectF.marginsRemoved": ('PySide2.QtCore.QMarginsF',),
- "PySide2.QtCore.QRectF.moveBottom": ('float',),
- "PySide2.QtCore.QRectF.moveBottomLeft": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QRectF.moveBottomRight": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QRectF.moveCenter": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QRectF.moveLeft": ('float',),
- "PySide2.QtCore.QRectF.moveRight": ('float',),
- "PySide2.QtCore.QRectF.moveTo": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtCore.QRectF.moveTop": ('float',),
- "PySide2.QtCore.QRectF.moveTopLeft": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QRectF.moveTopRight": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QRectF.normalized": (),
- "PySide2.QtCore.QRectF.right": (),
- "PySide2.QtCore.QRectF.setBottom": ('float',),
- "PySide2.QtCore.QRectF.setBottomLeft": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QRectF.setBottomRight": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QRectF.setCoords": ('float', 'float', 'float', 'float'),
- "PySide2.QtCore.QRectF.setHeight": ('float',),
- "PySide2.QtCore.QRectF.setLeft": ('float',),
- "PySide2.QtCore.QRectF.setRect": ('float', 'float', 'float', 'float'),
- "PySide2.QtCore.QRectF.setRight": ('float',),
- "PySide2.QtCore.QRectF.setSize": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtCore.QRectF.setTop": ('float',),
- "PySide2.QtCore.QRectF.setTopLeft": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QRectF.setTopRight": ('PySide2.QtCore.QPointF',),
- "PySide2.QtCore.QRectF.setWidth": ('float',),
- "PySide2.QtCore.QRectF.setX": ('float',),
- "PySide2.QtCore.QRectF.setY": ('float',),
- "PySide2.QtCore.QRectF.size": (),
- "PySide2.QtCore.QRectF.toAlignedRect": (),
- "PySide2.QtCore.QRectF.toRect": (),
- "PySide2.QtCore.QRectF.top": (),
- "PySide2.QtCore.QRectF.topLeft": (),
- "PySide2.QtCore.QRectF.topRight": (),
- "PySide2.QtCore.QRectF.translate": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtCore.QRectF.translated": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtCore.QRectF.transposed": (),
- "PySide2.QtCore.QRectF.united": ('PySide2.QtCore.QRectF',),
- "PySide2.QtCore.QRectF.width": (),
- "PySide2.QtCore.QRectF.x": (),
- "PySide2.QtCore.QRectF.y": (),
-# class PySide2.QtCore.QRecursiveMutex:
- "PySide2.QtCore.QRecursiveMutex.__init__": (),
-# class PySide2.QtCore.QRegExp:
-# class PySide2.QtCore.QRegExp.CaretMode:
-# class PySide2.QtCore.QRegExp.PatternSyntax:
- "PySide2.QtCore.QRegExp.__init__": [(), ('PySide2.QtCore.QRegExp',), ('str', 'PySide2.QtCore.Qt.CaseSensitivity', 'PySide2.QtCore.QRegExp.PatternSyntax')],
- "PySide2.QtCore.QRegExp.__copy__": (),
- "PySide2.QtCore.QRegExp.__reduce__": (),
- "PySide2.QtCore.QRegExp.__repr__": (),
- "PySide2.QtCore.QRegExp.cap": ('int',),
- "PySide2.QtCore.QRegExp.captureCount": (),
- "PySide2.QtCore.QRegExp.capturedTexts": (),
- "PySide2.QtCore.QRegExp.caseSensitivity": (),
- "PySide2.QtCore.QRegExp.errorString": (),
- "PySide2.QtCore.QRegExp.escape": ('str',),
- "PySide2.QtCore.QRegExp.exactMatch": ('str',),
- "PySide2.QtCore.QRegExp.indexIn": ('str', 'int', 'PySide2.QtCore.QRegExp.CaretMode'),
- "PySide2.QtCore.QRegExp.isEmpty": (),
- "PySide2.QtCore.QRegExp.isMinimal": (),
- "PySide2.QtCore.QRegExp.isValid": (),
- "PySide2.QtCore.QRegExp.lastIndexIn": ('str', 'int', 'PySide2.QtCore.QRegExp.CaretMode'),
- "PySide2.QtCore.QRegExp.matchedLength": (),
- "PySide2.QtCore.QRegExp.pattern": (),
- "PySide2.QtCore.QRegExp.patternSyntax": (),
- "PySide2.QtCore.QRegExp.pos": ('int',),
- "PySide2.QtCore.QRegExp.replace": ('str', 'str'),
- "PySide2.QtCore.QRegExp.setCaseSensitivity": ('PySide2.QtCore.Qt.CaseSensitivity',),
- "PySide2.QtCore.QRegExp.setMinimal": ('bool',),
- "PySide2.QtCore.QRegExp.setPattern": ('str',),
- "PySide2.QtCore.QRegExp.setPatternSyntax": ('PySide2.QtCore.QRegExp.PatternSyntax',),
- "PySide2.QtCore.QRegExp.swap": ('PySide2.QtCore.QRegExp',),
-# class PySide2.QtCore.QRegularExpression:
-# class PySide2.QtCore.QRegularExpression.MatchOption:
-# class PySide2.QtCore.QRegularExpression.MatchOptions:
-# class PySide2.QtCore.QRegularExpression.MatchType:
-# class PySide2.QtCore.QRegularExpression.PatternOption:
-# class PySide2.QtCore.QRegularExpression.PatternOptions:
- "PySide2.QtCore.QRegularExpression.__init__": [(), ('PySide2.QtCore.QRegularExpression',), ('str', 'PySide2.QtCore.QRegularExpression.PatternOptions')],
- "PySide2.QtCore.QRegularExpression.__copy__": (),
- "PySide2.QtCore.QRegularExpression.anchoredPattern": ('str',),
- "PySide2.QtCore.QRegularExpression.captureCount": (),
- "PySide2.QtCore.QRegularExpression.errorString": (),
- "PySide2.QtCore.QRegularExpression.escape": ('str',),
- "PySide2.QtCore.QRegularExpression.globalMatch": ('str', 'int', 'PySide2.QtCore.QRegularExpression.MatchType', 'PySide2.QtCore.QRegularExpression.MatchOptions'),
- "PySide2.QtCore.QRegularExpression.isValid": (),
- "PySide2.QtCore.QRegularExpression.match": ('str', 'int', 'PySide2.QtCore.QRegularExpression.MatchType', 'PySide2.QtCore.QRegularExpression.MatchOptions'),
- "PySide2.QtCore.QRegularExpression.namedCaptureGroups": (),
- "PySide2.QtCore.QRegularExpression.optimize": (),
- "PySide2.QtCore.QRegularExpression.pattern": (),
- "PySide2.QtCore.QRegularExpression.patternErrorOffset": (),
- "PySide2.QtCore.QRegularExpression.patternOptions": (),
- "PySide2.QtCore.QRegularExpression.setPattern": ('str',),
- "PySide2.QtCore.QRegularExpression.setPatternOptions": ('PySide2.QtCore.QRegularExpression.PatternOptions',),
- "PySide2.QtCore.QRegularExpression.swap": ('PySide2.QtCore.QRegularExpression',),
- "PySide2.QtCore.QRegularExpression.wildcardToRegularExpression": ('str',),
-# class PySide2.QtCore.QRegularExpressionMatch:
- "PySide2.QtCore.QRegularExpressionMatch.__init__": [(), ('PySide2.QtCore.QRegularExpressionMatch',)],
- "PySide2.QtCore.QRegularExpressionMatch.__copy__": (),
- "PySide2.QtCore.QRegularExpressionMatch.captured": [('int',), ('str',)],
- "PySide2.QtCore.QRegularExpressionMatch.capturedEnd": [('int',), ('str',)],
- "PySide2.QtCore.QRegularExpressionMatch.capturedLength": [('int',), ('str',)],
- "PySide2.QtCore.QRegularExpressionMatch.capturedRef": [('int',), ('str',)],
- "PySide2.QtCore.QRegularExpressionMatch.capturedStart": [('int',), ('str',)],
- "PySide2.QtCore.QRegularExpressionMatch.capturedTexts": (),
- "PySide2.QtCore.QRegularExpressionMatch.hasMatch": (),
- "PySide2.QtCore.QRegularExpressionMatch.hasPartialMatch": (),
- "PySide2.QtCore.QRegularExpressionMatch.isValid": (),
- "PySide2.QtCore.QRegularExpressionMatch.lastCapturedIndex": (),
- "PySide2.QtCore.QRegularExpressionMatch.matchOptions": (),
- "PySide2.QtCore.QRegularExpressionMatch.matchType": (),
- "PySide2.QtCore.QRegularExpressionMatch.regularExpression": (),
- "PySide2.QtCore.QRegularExpressionMatch.swap": ('PySide2.QtCore.QRegularExpressionMatch',),
-# class PySide2.QtCore.QRegularExpressionMatchIterator:
- "PySide2.QtCore.QRegularExpressionMatchIterator.__init__": [(), ('PySide2.QtCore.QRegularExpressionMatchIterator',)],
- "PySide2.QtCore.QRegularExpressionMatchIterator.__copy__": (),
- "PySide2.QtCore.QRegularExpressionMatchIterator.hasNext": (),
- "PySide2.QtCore.QRegularExpressionMatchIterator.isValid": (),
- "PySide2.QtCore.QRegularExpressionMatchIterator.matchOptions": (),
- "PySide2.QtCore.QRegularExpressionMatchIterator.matchType": (),
- "PySide2.QtCore.QRegularExpressionMatchIterator.peekNext": (),
- "PySide2.QtCore.QRegularExpressionMatchIterator.regularExpression": (),
- "PySide2.QtCore.QRegularExpressionMatchIterator.swap": ('PySide2.QtCore.QRegularExpressionMatchIterator',),
-# class PySide2.QtCore.QResource:
-# class PySide2.QtCore.QResource.Compression:
- "PySide2.QtCore.QResource.__init__": ('str', 'PySide2.QtCore.QLocale'),
- "PySide2.QtCore.QResource.absoluteFilePath": (),
- "PySide2.QtCore.QResource.addSearchPath": ('str',),
- "PySide2.QtCore.QResource.children": (),
- "PySide2.QtCore.QResource.compressionAlgorithm": (),
- "PySide2.QtCore.QResource.data": (),
- "PySide2.QtCore.QResource.fileName": (),
- "PySide2.QtCore.QResource.isCompressed": (),
- "PySide2.QtCore.QResource.isDir": (),
- "PySide2.QtCore.QResource.isFile": (),
- "PySide2.QtCore.QResource.isValid": (),
- "PySide2.QtCore.QResource.lastModified": (),
- "PySide2.QtCore.QResource.locale": (),
- "PySide2.QtCore.QResource.registerResource": ('str', 'str'),
- "PySide2.QtCore.QResource.registerResourceData": ('str', 'str'),
- "PySide2.QtCore.QResource.searchPaths": (),
- "PySide2.QtCore.QResource.setFileName": ('str',),
- "PySide2.QtCore.QResource.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtCore.QResource.size": (),
- "PySide2.QtCore.QResource.unregisterResource": ('str', 'str'),
- "PySide2.QtCore.QResource.unregisterResourceData": ('str', 'str'),
-# class PySide2.QtCore.QRunnable:
- "PySide2.QtCore.QRunnable.__init__": (),
- "PySide2.QtCore.QRunnable.autoDelete": (),
- "PySide2.QtCore.QRunnable.run": (),
- "PySide2.QtCore.QRunnable.setAutoDelete": ('bool',),
-# class PySide2.QtCore.QSaveFile:
- "PySide2.QtCore.QSaveFile.__init__": [('PySide2.QtCore.QObject',), ('str',), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QSaveFile.cancelWriting": (),
- "PySide2.QtCore.QSaveFile.close": (),
- "PySide2.QtCore.QSaveFile.commit": (),
- "PySide2.QtCore.QSaveFile.directWriteFallback": (),
- "PySide2.QtCore.QSaveFile.fileName": (),
- "PySide2.QtCore.QSaveFile.open": ('PySide2.QtCore.QIODevice.OpenMode',),
- "PySide2.QtCore.QSaveFile.setDirectWriteFallback": ('bool',),
- "PySide2.QtCore.QSaveFile.setFileName": ('str',),
- "PySide2.QtCore.QSaveFile.writeData": ('str', 'int'),
-# class PySide2.QtCore.QSemaphore:
- "PySide2.QtCore.QSemaphore.__init__": ('int',),
- "PySide2.QtCore.QSemaphore.acquire": ('int',),
- "PySide2.QtCore.QSemaphore.available": (),
- "PySide2.QtCore.QSemaphore.release": ('int',),
- "PySide2.QtCore.QSemaphore.tryAcquire": [('int',), ('int', 'int')],
-# class PySide2.QtCore.QSemaphoreReleaser:
- "PySide2.QtCore.QSemaphoreReleaser.__init__": [(), ('PySide2.QtCore.QSemaphore', 'int')],
- "PySide2.QtCore.QSemaphoreReleaser.cancel": (),
- "PySide2.QtCore.QSemaphoreReleaser.semaphore": (),
- "PySide2.QtCore.QSemaphoreReleaser.swap": ('PySide2.QtCore.QSemaphoreReleaser',),
-# class PySide2.QtCore.QSequentialAnimationGroup:
- "PySide2.QtCore.QSequentialAnimationGroup.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QSequentialAnimationGroup.addPause": ('int',),
- "PySide2.QtCore.QSequentialAnimationGroup.currentAnimation": (),
- "PySide2.QtCore.QSequentialAnimationGroup.duration": (),
- "PySide2.QtCore.QSequentialAnimationGroup.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QSequentialAnimationGroup.insertPause": ('int', 'int'),
- "PySide2.QtCore.QSequentialAnimationGroup.updateCurrentTime": ('int',),
- "PySide2.QtCore.QSequentialAnimationGroup.updateDirection": ('PySide2.QtCore.QAbstractAnimation.Direction',),
- "PySide2.QtCore.QSequentialAnimationGroup.updateState": ('PySide2.QtCore.QAbstractAnimation.State', 'PySide2.QtCore.QAbstractAnimation.State'),
-# class PySide2.QtCore.QSettings:
-# class PySide2.QtCore.QSettings.Format:
-# class PySide2.QtCore.QSettings.Scope:
-# class PySide2.QtCore.QSettings.Status:
- "PySide2.QtCore.QSettings.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtCore.QSettings.Format', 'PySide2.QtCore.QSettings.Scope', 'str', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QSettings.Scope', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QSettings.Scope', 'str', 'str', 'PySide2.QtCore.QObject'), ('str', 'PySide2.QtCore.QSettings.Format', 'PySide2.QtCore.QObject'), ('str', 'str', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QSettings.allKeys": (),
- "PySide2.QtCore.QSettings.applicationName": (),
- "PySide2.QtCore.QSettings.beginGroup": ('str',),
- "PySide2.QtCore.QSettings.beginReadArray": ('str',),
- "PySide2.QtCore.QSettings.beginWriteArray": ('str', 'int'),
- "PySide2.QtCore.QSettings.childGroups": (),
- "PySide2.QtCore.QSettings.childKeys": (),
- "PySide2.QtCore.QSettings.clear": (),
- "PySide2.QtCore.QSettings.contains": ('str',),
- "PySide2.QtCore.QSettings.defaultFormat": (),
- "PySide2.QtCore.QSettings.endArray": (),
- "PySide2.QtCore.QSettings.endGroup": (),
- "PySide2.QtCore.QSettings.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QSettings.fallbacksEnabled": (),
- "PySide2.QtCore.QSettings.fileName": (),
- "PySide2.QtCore.QSettings.format": (),
- "PySide2.QtCore.QSettings.group": (),
- "PySide2.QtCore.QSettings.iniCodec": (),
- "PySide2.QtCore.QSettings.isAtomicSyncRequired": (),
- "PySide2.QtCore.QSettings.isWritable": (),
- "PySide2.QtCore.QSettings.organizationName": (),
- "PySide2.QtCore.QSettings.remove": ('str',),
- "PySide2.QtCore.QSettings.scope": (),
- "PySide2.QtCore.QSettings.setArrayIndex": ('int',),
- "PySide2.QtCore.QSettings.setAtomicSyncRequired": ('bool',),
- "PySide2.QtCore.QSettings.setDefaultFormat": ('PySide2.QtCore.QSettings.Format',),
- "PySide2.QtCore.QSettings.setFallbacksEnabled": ('bool',),
- "PySide2.QtCore.QSettings.setIniCodec": [('PySide2.QtCore.QTextCodec',), ('str',)],
- "PySide2.QtCore.QSettings.setPath": ('PySide2.QtCore.QSettings.Format', 'PySide2.QtCore.QSettings.Scope', 'str'),
- "PySide2.QtCore.QSettings.setValue": ('str', 'typing.Any'),
- "PySide2.QtCore.QSettings.status": (),
- "PySide2.QtCore.QSettings.sync": (),
- "PySide2.QtCore.QSettings.value": ('str', 'typing.Any', 'object'),
-# class PySide2.QtCore.QSignalBlocker:
- "PySide2.QtCore.QSignalBlocker.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QSignalBlocker.reblock": (),
- "PySide2.QtCore.QSignalBlocker.unblock": (),
-# class PySide2.QtCore.QSignalMapper:
- "PySide2.QtCore.QSignalMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QSignalMapper.map": [(), ('PySide2.QtCore.QObject',)],
- "PySide2.QtCore.QSignalMapper.mapping": [('PySide2.QtCore.QObject',), ('int',), ('str',)],
- "PySide2.QtCore.QSignalMapper.removeMappings": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QSignalMapper.setMapping": [('PySide2.QtCore.QObject', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QObject', 'int'), ('PySide2.QtCore.QObject', 'str')],
-# class PySide2.QtCore.QSignalTransition:
- "PySide2.QtCore.QSignalTransition.__init__": [('PySide2.QtCore.QObject', 'str', 'PySide2.QtCore.QState'), ('PySide2.QtCore.QState',), ('object', 'PySide2.QtCore.QState')],
- "PySide2.QtCore.QSignalTransition.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QSignalTransition.eventTest": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QSignalTransition.onTransition": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QSignalTransition.senderObject": (),
- "PySide2.QtCore.QSignalTransition.setSenderObject": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QSignalTransition.setSignal": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QSignalTransition.signal": (),
-# class PySide2.QtCore.QSize:
- "PySide2.QtCore.QSize.__init__": [(), ('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtCore.QSize.__add__": ('PySide2.QtCore.QSize',),
- "PySide2.QtCore.QSize.__copy__": (),
- "PySide2.QtCore.QSize.__iadd__": ('PySide2.QtCore.QSize',),
- "PySide2.QtCore.QSize.__imul__": ('float',),
- "PySide2.QtCore.QSize.__isub__": ('PySide2.QtCore.QSize',),
- "PySide2.QtCore.QSize.__mul__": ('float',),
- "PySide2.QtCore.QSize.__reduce__": (),
- "PySide2.QtCore.QSize.__repr__": (),
- "PySide2.QtCore.QSize.__sub__": ('PySide2.QtCore.QSize',),
- "PySide2.QtCore.QSize.boundedTo": ('PySide2.QtCore.QSize',),
- "PySide2.QtCore.QSize.expandedTo": ('PySide2.QtCore.QSize',),
- "PySide2.QtCore.QSize.grownBy": ('PySide2.QtCore.QMargins',),
- "PySide2.QtCore.QSize.height": (),
- "PySide2.QtCore.QSize.isEmpty": (),
- "PySide2.QtCore.QSize.isNull": (),
- "PySide2.QtCore.QSize.isValid": (),
- "PySide2.QtCore.QSize.scale": [('PySide2.QtCore.QSize', 'PySide2.QtCore.Qt.AspectRatioMode'), ('int', 'int', 'PySide2.QtCore.Qt.AspectRatioMode')],
- "PySide2.QtCore.QSize.scaled": [('PySide2.QtCore.QSize', 'PySide2.QtCore.Qt.AspectRatioMode'), ('int', 'int', 'PySide2.QtCore.Qt.AspectRatioMode')],
- "PySide2.QtCore.QSize.setHeight": ('int',),
- "PySide2.QtCore.QSize.setWidth": ('int',),
- "PySide2.QtCore.QSize.shrunkBy": ('PySide2.QtCore.QMargins',),
- "PySide2.QtCore.QSize.toTuple": (),
- "PySide2.QtCore.QSize.transpose": (),
- "PySide2.QtCore.QSize.transposed": (),
- "PySide2.QtCore.QSize.width": (),
-# class PySide2.QtCore.QSizeF:
- "PySide2.QtCore.QSizeF.__init__": [(), ('PySide2.QtCore.QSize',), ('PySide2.QtCore.QSizeF',), ('float', 'float')],
- "PySide2.QtCore.QSizeF.__add__": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtCore.QSizeF.__copy__": (),
- "PySide2.QtCore.QSizeF.__iadd__": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtCore.QSizeF.__imul__": ('float',),
- "PySide2.QtCore.QSizeF.__isub__": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtCore.QSizeF.__mul__": ('float',),
- "PySide2.QtCore.QSizeF.__reduce__": (),
- "PySide2.QtCore.QSizeF.__repr__": (),
- "PySide2.QtCore.QSizeF.__sub__": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtCore.QSizeF.boundedTo": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtCore.QSizeF.expandedTo": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtCore.QSizeF.grownBy": ('PySide2.QtCore.QMarginsF',),
- "PySide2.QtCore.QSizeF.height": (),
- "PySide2.QtCore.QSizeF.isEmpty": (),
- "PySide2.QtCore.QSizeF.isNull": (),
- "PySide2.QtCore.QSizeF.isValid": (),
- "PySide2.QtCore.QSizeF.scale": [('PySide2.QtCore.QSizeF', 'PySide2.QtCore.Qt.AspectRatioMode'), ('float', 'float', 'PySide2.QtCore.Qt.AspectRatioMode')],
- "PySide2.QtCore.QSizeF.scaled": [('PySide2.QtCore.QSizeF', 'PySide2.QtCore.Qt.AspectRatioMode'), ('float', 'float', 'PySide2.QtCore.Qt.AspectRatioMode')],
- "PySide2.QtCore.QSizeF.setHeight": ('float',),
- "PySide2.QtCore.QSizeF.setWidth": ('float',),
- "PySide2.QtCore.QSizeF.shrunkBy": ('PySide2.QtCore.QMarginsF',),
- "PySide2.QtCore.QSizeF.toSize": (),
- "PySide2.QtCore.QSizeF.toTuple": (),
- "PySide2.QtCore.QSizeF.transpose": (),
- "PySide2.QtCore.QSizeF.transposed": (),
- "PySide2.QtCore.QSizeF.width": (),
-# class PySide2.QtCore.QSocketNotifier:
-# class PySide2.QtCore.QSocketNotifier.Type:
- "PySide2.QtCore.QSocketNotifier.__init__": [('int', 'PySide2.QtCore.QSocketNotifier.Type', 'PySide2.QtCore.QObject'), ('object', 'PySide2.QtCore.QSocketNotifier.Type', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QSocketNotifier.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QSocketNotifier.isEnabled": (),
- "PySide2.QtCore.QSocketNotifier.setEnabled": ('bool',),
- "PySide2.QtCore.QSocketNotifier.socket": (),
- "PySide2.QtCore.QSocketNotifier.type": (),
-# class PySide2.QtCore.QSortFilterProxyModel:
- "PySide2.QtCore.QSortFilterProxyModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QSortFilterProxyModel.buddy": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QSortFilterProxyModel.canFetchMore": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QSortFilterProxyModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QSortFilterProxyModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QSortFilterProxyModel.dropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QSortFilterProxyModel.dynamicSortFilter": (),
- "PySide2.QtCore.QSortFilterProxyModel.fetchMore": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QSortFilterProxyModel.filterAcceptsColumn": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QSortFilterProxyModel.filterAcceptsRow": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QSortFilterProxyModel.filterCaseSensitivity": (),
- "PySide2.QtCore.QSortFilterProxyModel.filterKeyColumn": (),
- "PySide2.QtCore.QSortFilterProxyModel.filterRegExp": (),
- "PySide2.QtCore.QSortFilterProxyModel.filterRegularExpression": (),
- "PySide2.QtCore.QSortFilterProxyModel.filterRole": (),
- "PySide2.QtCore.QSortFilterProxyModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QSortFilterProxyModel.hasChildren": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QSortFilterProxyModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtCore.QSortFilterProxyModel.index": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QSortFilterProxyModel.insertColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QSortFilterProxyModel.insertRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QSortFilterProxyModel.invalidate": (),
- "PySide2.QtCore.QSortFilterProxyModel.invalidateFilter": (),
- "PySide2.QtCore.QSortFilterProxyModel.isRecursiveFilteringEnabled": (),
- "PySide2.QtCore.QSortFilterProxyModel.isSortLocaleAware": (),
- "PySide2.QtCore.QSortFilterProxyModel.lessThan": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QSortFilterProxyModel.mapFromSource": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QSortFilterProxyModel.mapSelectionFromSource": ('PySide2.QtCore.QItemSelection',),
- "PySide2.QtCore.QSortFilterProxyModel.mapSelectionToSource": ('PySide2.QtCore.QItemSelection',),
- "PySide2.QtCore.QSortFilterProxyModel.mapToSource": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QSortFilterProxyModel.match": ('PySide2.QtCore.QModelIndex', 'int', 'typing.Any', 'int', 'PySide2.QtCore.Qt.MatchFlags'),
- "PySide2.QtCore.QSortFilterProxyModel.mimeData": ('typing.List[int]',),
- "PySide2.QtCore.QSortFilterProxyModel.mimeTypes": (),
- "PySide2.QtCore.QSortFilterProxyModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtCore.QSortFilterProxyModel.removeColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QSortFilterProxyModel.removeRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QSortFilterProxyModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QSortFilterProxyModel.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
- "PySide2.QtCore.QSortFilterProxyModel.setDynamicSortFilter": ('bool',),
- "PySide2.QtCore.QSortFilterProxyModel.setFilterCaseSensitivity": ('PySide2.QtCore.Qt.CaseSensitivity',),
- "PySide2.QtCore.QSortFilterProxyModel.setFilterFixedString": ('str',),
- "PySide2.QtCore.QSortFilterProxyModel.setFilterKeyColumn": ('int',),
- "PySide2.QtCore.QSortFilterProxyModel.setFilterRegExp": [('PySide2.QtCore.QRegExp',), ('str',)],
- "PySide2.QtCore.QSortFilterProxyModel.setFilterRegularExpression": [('PySide2.QtCore.QRegularExpression',), ('str',)],
- "PySide2.QtCore.QSortFilterProxyModel.setFilterRole": ('int',),
- "PySide2.QtCore.QSortFilterProxyModel.setFilterWildcard": ('str',),
- "PySide2.QtCore.QSortFilterProxyModel.setHeaderData": ('int', 'PySide2.QtCore.Qt.Orientation', 'typing.Any', 'int'),
- "PySide2.QtCore.QSortFilterProxyModel.setRecursiveFilteringEnabled": ('bool',),
- "PySide2.QtCore.QSortFilterProxyModel.setSortCaseSensitivity": ('PySide2.QtCore.Qt.CaseSensitivity',),
- "PySide2.QtCore.QSortFilterProxyModel.setSortLocaleAware": ('bool',),
- "PySide2.QtCore.QSortFilterProxyModel.setSortRole": ('int',),
- "PySide2.QtCore.QSortFilterProxyModel.setSourceModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCore.QSortFilterProxyModel.sibling": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QSortFilterProxyModel.sort": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtCore.QSortFilterProxyModel.sortCaseSensitivity": (),
- "PySide2.QtCore.QSortFilterProxyModel.sortColumn": (),
- "PySide2.QtCore.QSortFilterProxyModel.sortOrder": (),
- "PySide2.QtCore.QSortFilterProxyModel.sortRole": (),
- "PySide2.QtCore.QSortFilterProxyModel.span": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QSortFilterProxyModel.supportedDropActions": (),
-# class PySide2.QtCore.QStandardPaths:
-# class PySide2.QtCore.QStandardPaths.LocateOption:
-# class PySide2.QtCore.QStandardPaths.LocateOptions:
-# class PySide2.QtCore.QStandardPaths.StandardLocation:
- "PySide2.QtCore.QStandardPaths.displayName": ('PySide2.QtCore.QStandardPaths.StandardLocation',),
- "PySide2.QtCore.QStandardPaths.enableTestMode": ('bool',),
- "PySide2.QtCore.QStandardPaths.findExecutable": ('str', 'typing.Sequence[str]'),
- "PySide2.QtCore.QStandardPaths.isTestModeEnabled": (),
- "PySide2.QtCore.QStandardPaths.locate": ('PySide2.QtCore.QStandardPaths.StandardLocation', 'str', 'PySide2.QtCore.QStandardPaths.LocateOptions'),
- "PySide2.QtCore.QStandardPaths.locateAll": ('PySide2.QtCore.QStandardPaths.StandardLocation', 'str', 'PySide2.QtCore.QStandardPaths.LocateOptions'),
- "PySide2.QtCore.QStandardPaths.setTestModeEnabled": ('bool',),
- "PySide2.QtCore.QStandardPaths.standardLocations": ('PySide2.QtCore.QStandardPaths.StandardLocation',),
- "PySide2.QtCore.QStandardPaths.writableLocation": ('PySide2.QtCore.QStandardPaths.StandardLocation',),
-# class PySide2.QtCore.QState:
-# class PySide2.QtCore.QState.ChildMode:
-# class PySide2.QtCore.QState.RestorePolicy:
- "PySide2.QtCore.QState.__init__": [('PySide2.QtCore.QState',), ('PySide2.QtCore.QState.ChildMode', 'PySide2.QtCore.QState')],
- "PySide2.QtCore.QState.addTransition": [('PySide2.QtCore.QAbstractState',), ('PySide2.QtCore.QAbstractTransition',), ('PySide2.QtCore.QObject', 'str', 'PySide2.QtCore.QAbstractState'), ('object', 'PySide2.QtCore.QAbstractState')],
- "PySide2.QtCore.QState.assignProperty": ('PySide2.QtCore.QObject', 'str', 'typing.Any'),
- "PySide2.QtCore.QState.childMode": (),
- "PySide2.QtCore.QState.errorState": (),
- "PySide2.QtCore.QState.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QState.initialState": (),
- "PySide2.QtCore.QState.onEntry": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QState.onExit": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QState.removeTransition": ('PySide2.QtCore.QAbstractTransition',),
- "PySide2.QtCore.QState.setChildMode": ('PySide2.QtCore.QState.ChildMode',),
- "PySide2.QtCore.QState.setErrorState": ('PySide2.QtCore.QAbstractState',),
- "PySide2.QtCore.QState.setInitialState": ('PySide2.QtCore.QAbstractState',),
- "PySide2.QtCore.QState.transitions": (),
-# class PySide2.QtCore.QStateMachine:
-# class PySide2.QtCore.QStateMachine.Error:
-# class PySide2.QtCore.QStateMachine.EventPriority:
-# class PySide2.QtCore.QStateMachine.SignalEvent:
- "PySide2.QtCore.QStateMachine.SignalEvent.__init__": [('PySide2.QtCore.QObject', 'int', 'typing.Sequence[typing.Any]'), ('PySide2.QtCore.QStateMachine.SignalEvent',)],
- "PySide2.QtCore.QStateMachine.SignalEvent.__copy__": (),
- "PySide2.QtCore.QStateMachine.SignalEvent.arguments": (),
- "PySide2.QtCore.QStateMachine.SignalEvent.sender": (),
- "PySide2.QtCore.QStateMachine.SignalEvent.signalIndex": (),
-# class PySide2.QtCore.QStateMachine.WrappedEvent:
- "PySide2.QtCore.QStateMachine.WrappedEvent.__init__": [('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'), ('PySide2.QtCore.QStateMachine.WrappedEvent',)],
- "PySide2.QtCore.QStateMachine.WrappedEvent.__copy__": (),
- "PySide2.QtCore.QStateMachine.WrappedEvent.event": (),
- "PySide2.QtCore.QStateMachine.WrappedEvent.object": (),
- "PySide2.QtCore.QStateMachine.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtCore.QState.ChildMode', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QStateMachine.addDefaultAnimation": ('PySide2.QtCore.QAbstractAnimation',),
- "PySide2.QtCore.QStateMachine.addState": ('PySide2.QtCore.QAbstractState',),
- "PySide2.QtCore.QStateMachine.beginMicrostep": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QStateMachine.beginSelectTransitions": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QStateMachine.cancelDelayedEvent": ('int',),
- "PySide2.QtCore.QStateMachine.clearError": (),
- "PySide2.QtCore.QStateMachine.configuration": (),
- "PySide2.QtCore.QStateMachine.defaultAnimations": (),
- "PySide2.QtCore.QStateMachine.endMicrostep": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QStateMachine.endSelectTransitions": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QStateMachine.error": (),
- "PySide2.QtCore.QStateMachine.errorString": (),
- "PySide2.QtCore.QStateMachine.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QStateMachine.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtCore.QStateMachine.globalRestorePolicy": (),
- "PySide2.QtCore.QStateMachine.isAnimated": (),
- "PySide2.QtCore.QStateMachine.isRunning": (),
- "PySide2.QtCore.QStateMachine.onEntry": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QStateMachine.onExit": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QStateMachine.postDelayedEvent": ('PySide2.QtCore.QEvent', 'int'),
- "PySide2.QtCore.QStateMachine.postEvent": ('PySide2.QtCore.QEvent', 'PySide2.QtCore.QStateMachine.EventPriority'),
- "PySide2.QtCore.QStateMachine.removeDefaultAnimation": ('PySide2.QtCore.QAbstractAnimation',),
- "PySide2.QtCore.QStateMachine.removeState": ('PySide2.QtCore.QAbstractState',),
- "PySide2.QtCore.QStateMachine.setAnimated": ('bool',),
- "PySide2.QtCore.QStateMachine.setGlobalRestorePolicy": ('PySide2.QtCore.QState.RestorePolicy',),
- "PySide2.QtCore.QStateMachine.setRunning": ('bool',),
- "PySide2.QtCore.QStateMachine.start": (),
- "PySide2.QtCore.QStateMachine.stop": (),
-# class PySide2.QtCore.QStorageInfo:
- "PySide2.QtCore.QStorageInfo.__init__": [(), ('PySide2.QtCore.QDir',), ('PySide2.QtCore.QStorageInfo',), ('str',)],
- "PySide2.QtCore.QStorageInfo.__copy__": (),
- "PySide2.QtCore.QStorageInfo.blockSize": (),
- "PySide2.QtCore.QStorageInfo.bytesAvailable": (),
- "PySide2.QtCore.QStorageInfo.bytesFree": (),
- "PySide2.QtCore.QStorageInfo.bytesTotal": (),
- "PySide2.QtCore.QStorageInfo.device": (),
- "PySide2.QtCore.QStorageInfo.displayName": (),
- "PySide2.QtCore.QStorageInfo.fileSystemType": (),
- "PySide2.QtCore.QStorageInfo.isReadOnly": (),
- "PySide2.QtCore.QStorageInfo.isReady": (),
- "PySide2.QtCore.QStorageInfo.isRoot": (),
- "PySide2.QtCore.QStorageInfo.isValid": (),
- "PySide2.QtCore.QStorageInfo.mountedVolumes": (),
- "PySide2.QtCore.QStorageInfo.name": (),
- "PySide2.QtCore.QStorageInfo.refresh": (),
- "PySide2.QtCore.QStorageInfo.root": (),
- "PySide2.QtCore.QStorageInfo.rootPath": (),
- "PySide2.QtCore.QStorageInfo.setPath": ('str',),
- "PySide2.QtCore.QStorageInfo.subvolume": (),
- "PySide2.QtCore.QStorageInfo.swap": ('PySide2.QtCore.QStorageInfo',),
-# class PySide2.QtCore.QStringListModel:
- "PySide2.QtCore.QStringListModel.__init__": [('PySide2.QtCore.QObject',), ('typing.Sequence[str]', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QStringListModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QStringListModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QStringListModel.insertRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QStringListModel.itemData": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QStringListModel.moveRows": ('PySide2.QtCore.QModelIndex', 'int', 'int', 'PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QStringListModel.removeRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QStringListModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QStringListModel.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
- "PySide2.QtCore.QStringListModel.setItemData": ('PySide2.QtCore.QModelIndex', 'typing.Dict[int, typing.Any]'),
- "PySide2.QtCore.QStringListModel.setStringList": ('typing.Sequence[str]',),
- "PySide2.QtCore.QStringListModel.sibling": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QStringListModel.sort": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtCore.QStringListModel.stringList": (),
- "PySide2.QtCore.QStringListModel.supportedDropActions": (),
-# class PySide2.QtCore.QSysInfo:
-# class PySide2.QtCore.QSysInfo.Endian:
-# class PySide2.QtCore.QSysInfo.Sizes:
- "PySide2.QtCore.QSysInfo.__init__": (),
- "PySide2.QtCore.QSysInfo.bootUniqueId": (),
- "PySide2.QtCore.QSysInfo.buildAbi": (),
- "PySide2.QtCore.QSysInfo.buildCpuArchitecture": (),
- "PySide2.QtCore.QSysInfo.currentCpuArchitecture": (),
- "PySide2.QtCore.QSysInfo.kernelType": (),
- "PySide2.QtCore.QSysInfo.kernelVersion": (),
- "PySide2.QtCore.QSysInfo.machineHostName": (),
- "PySide2.QtCore.QSysInfo.machineUniqueId": (),
- "PySide2.QtCore.QSysInfo.prettyProductName": (),
- "PySide2.QtCore.QSysInfo.productType": (),
- "PySide2.QtCore.QSysInfo.productVersion": (),
-# class PySide2.QtCore.QSystemSemaphore:
-# class PySide2.QtCore.QSystemSemaphore.AccessMode:
-# class PySide2.QtCore.QSystemSemaphore.SystemSemaphoreError:
- "PySide2.QtCore.QSystemSemaphore.__init__": ('str', 'int', 'PySide2.QtCore.QSystemSemaphore.AccessMode'),
- "PySide2.QtCore.QSystemSemaphore.acquire": (),
- "PySide2.QtCore.QSystemSemaphore.error": (),
- "PySide2.QtCore.QSystemSemaphore.errorString": (),
- "PySide2.QtCore.QSystemSemaphore.key": (),
- "PySide2.QtCore.QSystemSemaphore.release": ('int',),
- "PySide2.QtCore.QSystemSemaphore.setKey": ('str', 'int', 'PySide2.QtCore.QSystemSemaphore.AccessMode'),
-# class PySide2.QtCore.QTemporaryDir:
- "PySide2.QtCore.QTemporaryDir.__init__": [(), ('str',)],
- "PySide2.QtCore.QTemporaryDir.autoRemove": (),
- "PySide2.QtCore.QTemporaryDir.errorString": (),
- "PySide2.QtCore.QTemporaryDir.filePath": ('str',),
- "PySide2.QtCore.QTemporaryDir.isValid": (),
- "PySide2.QtCore.QTemporaryDir.path": (),
- "PySide2.QtCore.QTemporaryDir.remove": (),
- "PySide2.QtCore.QTemporaryDir.setAutoRemove": ('bool',),
-# class PySide2.QtCore.QTemporaryFile:
- "PySide2.QtCore.QTemporaryFile.__init__": [(), ('PySide2.QtCore.QObject',), ('str',), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtCore.QTemporaryFile.autoRemove": (),
- "PySide2.QtCore.QTemporaryFile.createLocalFile": [('PySide2.QtCore.QFile',), ('str',)],
- "PySide2.QtCore.QTemporaryFile.createNativeFile": [('PySide2.QtCore.QFile',), ('str',)],
- "PySide2.QtCore.QTemporaryFile.fileName": (),
- "PySide2.QtCore.QTemporaryFile.fileTemplate": (),
- "PySide2.QtCore.QTemporaryFile.open": [(), ('PySide2.QtCore.QIODevice.OpenMode',)],
- "PySide2.QtCore.QTemporaryFile.rename": ('str',),
- "PySide2.QtCore.QTemporaryFile.setAutoRemove": ('bool',),
- "PySide2.QtCore.QTemporaryFile.setFileTemplate": ('str',),
-# class PySide2.QtCore.QTextBoundaryFinder:
-# class PySide2.QtCore.QTextBoundaryFinder.BoundaryReason:
-# class PySide2.QtCore.QTextBoundaryFinder.BoundaryReasons:
-# class PySide2.QtCore.QTextBoundaryFinder.BoundaryType:
- "PySide2.QtCore.QTextBoundaryFinder.__init__": [(), ('PySide2.QtCore.QTextBoundaryFinder',), ('PySide2.QtCore.QTextBoundaryFinder.BoundaryType', 'str')],
- "PySide2.QtCore.QTextBoundaryFinder.__copy__": (),
- "PySide2.QtCore.QTextBoundaryFinder.boundaryReasons": (),
- "PySide2.QtCore.QTextBoundaryFinder.isAtBoundary": (),
- "PySide2.QtCore.QTextBoundaryFinder.isValid": (),
- "PySide2.QtCore.QTextBoundaryFinder.position": (),
- "PySide2.QtCore.QTextBoundaryFinder.setPosition": ('int',),
- "PySide2.QtCore.QTextBoundaryFinder.string": (),
- "PySide2.QtCore.QTextBoundaryFinder.toEnd": (),
- "PySide2.QtCore.QTextBoundaryFinder.toNextBoundary": (),
- "PySide2.QtCore.QTextBoundaryFinder.toPreviousBoundary": (),
- "PySide2.QtCore.QTextBoundaryFinder.toStart": (),
- "PySide2.QtCore.QTextBoundaryFinder.type": (),
-# class PySide2.QtCore.QTextCodec:
-# class PySide2.QtCore.QTextCodec.ConversionFlag:
-# class PySide2.QtCore.QTextCodec.ConversionFlags:
-# class PySide2.QtCore.QTextCodec.ConverterState:
- "PySide2.QtCore.QTextCodec.ConverterState.__init__": ('PySide2.QtCore.QTextCodec.ConversionFlags',),
- "PySide2.QtCore.QTextCodec.__init__": (),
- "PySide2.QtCore.QTextCodec.aliases": (),
- "PySide2.QtCore.QTextCodec.availableCodecs": (),
- "PySide2.QtCore.QTextCodec.availableMibs": (),
- "PySide2.QtCore.QTextCodec.canEncode": ('str',),
- "PySide2.QtCore.QTextCodec.codecForHtml": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QTextCodec')],
- "PySide2.QtCore.QTextCodec.codecForLocale": (),
- "PySide2.QtCore.QTextCodec.codecForMib": ('int',),
- "PySide2.QtCore.QTextCodec.codecForName": [('PySide2.QtCore.QByteArray',), ('str',)],
- "PySide2.QtCore.QTextCodec.codecForUtfText": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QTextCodec')],
- "PySide2.QtCore.QTextCodec.convertToUnicode": ('str', 'int', 'PySide2.QtCore.QTextCodec.ConverterState'),
- "PySide2.QtCore.QTextCodec.fromUnicode": ('str',),
- "PySide2.QtCore.QTextCodec.makeDecoder": ('PySide2.QtCore.QTextCodec.ConversionFlags',),
- "PySide2.QtCore.QTextCodec.makeEncoder": ('PySide2.QtCore.QTextCodec.ConversionFlags',),
- "PySide2.QtCore.QTextCodec.mibEnum": (),
- "PySide2.QtCore.QTextCodec.name": (),
- "PySide2.QtCore.QTextCodec.setCodecForLocale": ('PySide2.QtCore.QTextCodec',),
- "PySide2.QtCore.QTextCodec.toUnicode": [('PySide2.QtCore.QByteArray',), ('str',), ('str', 'int', 'PySide2.QtCore.QTextCodec.ConverterState')],
-# class PySide2.QtCore.QTextDecoder:
- "PySide2.QtCore.QTextDecoder.__init__": [('PySide2.QtCore.QTextCodec',), ('PySide2.QtCore.QTextCodec', 'PySide2.QtCore.QTextCodec.ConversionFlags')],
- "PySide2.QtCore.QTextDecoder.hasFailure": (),
- "PySide2.QtCore.QTextDecoder.needsMoreData": (),
- "PySide2.QtCore.QTextDecoder.toUnicode": ('PySide2.QtCore.QByteArray',),
-# class PySide2.QtCore.QTextEncoder:
- "PySide2.QtCore.QTextEncoder.__init__": [('PySide2.QtCore.QTextCodec',), ('PySide2.QtCore.QTextCodec', 'PySide2.QtCore.QTextCodec.ConversionFlags')],
- "PySide2.QtCore.QTextEncoder.fromUnicode": ('str',),
- "PySide2.QtCore.QTextEncoder.hasFailure": (),
-# class PySide2.QtCore.QTextStream:
-# class PySide2.QtCore.QTextStream.FieldAlignment:
-# class PySide2.QtCore.QTextStream.NumberFlag:
-# class PySide2.QtCore.QTextStream.NumberFlags:
-# class PySide2.QtCore.QTextStream.RealNumberNotation:
-# class PySide2.QtCore.QTextStream.Status:
- "PySide2.QtCore.QTextStream.__init__": [(), ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QIODevice.OpenMode'), ('PySide2.QtCore.QIODevice',)],
- "PySide2.QtCore.QTextStream.__lshift__": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QTextStreamManipulator',), ('float',), ('int',), ('str',)],
- "PySide2.QtCore.QTextStream.__rshift__": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QTextStream.atEnd": (),
- "PySide2.QtCore.QTextStream.autoDetectUnicode": (),
- "PySide2.QtCore.QTextStream.codec": (),
- "PySide2.QtCore.QTextStream.device": (),
- "PySide2.QtCore.QTextStream.fieldAlignment": (),
- "PySide2.QtCore.QTextStream.fieldWidth": (),
- "PySide2.QtCore.QTextStream.flush": (),
- "PySide2.QtCore.QTextStream.generateByteOrderMark": (),
- "PySide2.QtCore.QTextStream.integerBase": (),
- "PySide2.QtCore.QTextStream.locale": (),
- "PySide2.QtCore.QTextStream.numberFlags": (),
- "PySide2.QtCore.QTextStream.padChar": (),
- "PySide2.QtCore.QTextStream.pos": (),
- "PySide2.QtCore.QTextStream.read": ('int',),
- "PySide2.QtCore.QTextStream.readAll": (),
- "PySide2.QtCore.QTextStream.readLine": ('int',),
- "PySide2.QtCore.QTextStream.realNumberNotation": (),
- "PySide2.QtCore.QTextStream.realNumberPrecision": (),
- "PySide2.QtCore.QTextStream.reset": (),
- "PySide2.QtCore.QTextStream.resetStatus": (),
- "PySide2.QtCore.QTextStream.seek": ('int',),
- "PySide2.QtCore.QTextStream.setAutoDetectUnicode": ('bool',),
- "PySide2.QtCore.QTextStream.setCodec": [('PySide2.QtCore.QTextCodec',), ('str',)],
- "PySide2.QtCore.QTextStream.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtCore.QTextStream.setFieldAlignment": ('PySide2.QtCore.QTextStream.FieldAlignment',),
- "PySide2.QtCore.QTextStream.setFieldWidth": ('int',),
- "PySide2.QtCore.QTextStream.setGenerateByteOrderMark": ('bool',),
- "PySide2.QtCore.QTextStream.setIntegerBase": ('int',),
- "PySide2.QtCore.QTextStream.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtCore.QTextStream.setNumberFlags": ('PySide2.QtCore.QTextStream.NumberFlags',),
- "PySide2.QtCore.QTextStream.setPadChar": ('str',),
- "PySide2.QtCore.QTextStream.setRealNumberNotation": ('PySide2.QtCore.QTextStream.RealNumberNotation',),
- "PySide2.QtCore.QTextStream.setRealNumberPrecision": ('int',),
- "PySide2.QtCore.QTextStream.setStatus": ('PySide2.QtCore.QTextStream.Status',),
- "PySide2.QtCore.QTextStream.skipWhiteSpace": (),
- "PySide2.QtCore.QTextStream.status": (),
- "PySide2.QtCore.QTextStream.string": (),
-# class PySide2.QtCore.QTextStreamManipulator:
- "PySide2.QtCore.QTextStreamManipulator.__copy__": (),
- "PySide2.QtCore.QTextStreamManipulator.exec_": ('PySide2.QtCore.QTextStream',),
-# class PySide2.QtCore.QThread:
-# class PySide2.QtCore.QThread.Priority:
- "PySide2.QtCore.QThread.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QThread.currentThread": (),
- "PySide2.QtCore.QThread.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QThread.eventDispatcher": (),
- "PySide2.QtCore.QThread.exec_": (),
- "PySide2.QtCore.QThread.exit": ('int',),
- "PySide2.QtCore.QThread.idealThreadCount": (),
- "PySide2.QtCore.QThread.isFinished": (),
- "PySide2.QtCore.QThread.isInterruptionRequested": (),
- "PySide2.QtCore.QThread.isRunning": (),
- "PySide2.QtCore.QThread.loopLevel": (),
- "PySide2.QtCore.QThread.msleep": ('int',),
- "PySide2.QtCore.QThread.priority": (),
- "PySide2.QtCore.QThread.quit": (),
- "PySide2.QtCore.QThread.requestInterruption": (),
- "PySide2.QtCore.QThread.run": (),
- "PySide2.QtCore.QThread.setEventDispatcher": ('PySide2.QtCore.QAbstractEventDispatcher',),
- "PySide2.QtCore.QThread.setPriority": ('PySide2.QtCore.QThread.Priority',),
- "PySide2.QtCore.QThread.setStackSize": ('int',),
- "PySide2.QtCore.QThread.setTerminationEnabled": ('bool',),
- "PySide2.QtCore.QThread.sleep": ('int',),
- "PySide2.QtCore.QThread.stackSize": (),
- "PySide2.QtCore.QThread.start": ('PySide2.QtCore.QThread.Priority',),
- "PySide2.QtCore.QThread.terminate": (),
- "PySide2.QtCore.QThread.usleep": ('int',),
- "PySide2.QtCore.QThread.wait": ('int',),
- "PySide2.QtCore.QThread.yieldCurrentThread": (),
-# class PySide2.QtCore.QThreadPool:
- "PySide2.QtCore.QThreadPool.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QThreadPool.activeThreadCount": (),
- "PySide2.QtCore.QThreadPool.cancel": ('PySide2.QtCore.QRunnable',),
- "PySide2.QtCore.QThreadPool.clear": (),
- "PySide2.QtCore.QThreadPool.expiryTimeout": (),
- "PySide2.QtCore.QThreadPool.globalInstance": (),
- "PySide2.QtCore.QThreadPool.maxThreadCount": (),
- "PySide2.QtCore.QThreadPool.releaseThread": (),
- "PySide2.QtCore.QThreadPool.reserveThread": (),
- "PySide2.QtCore.QThreadPool.setExpiryTimeout": ('int',),
- "PySide2.QtCore.QThreadPool.setMaxThreadCount": ('int',),
- "PySide2.QtCore.QThreadPool.setStackSize": ('int',),
- "PySide2.QtCore.QThreadPool.stackSize": (),
- "PySide2.QtCore.QThreadPool.start": ('PySide2.QtCore.QRunnable', 'int'),
- "PySide2.QtCore.QThreadPool.tryStart": ('PySide2.QtCore.QRunnable',),
- "PySide2.QtCore.QThreadPool.tryTake": ('PySide2.QtCore.QRunnable',),
- "PySide2.QtCore.QThreadPool.waitForDone": ('int',),
-# class PySide2.QtCore.QTime:
- "PySide2.QtCore.QTime.__init__": [(), ('PySide2.QtCore.QTime',), ('int', 'int', 'int', 'int')],
- "PySide2.QtCore.QTime.__copy__": (),
- "PySide2.QtCore.QTime.__reduce__": (),
- "PySide2.QtCore.QTime.__repr__": (),
- "PySide2.QtCore.QTime.addMSecs": ('int',),
- "PySide2.QtCore.QTime.addSecs": ('int',),
- "PySide2.QtCore.QTime.currentTime": (),
- "PySide2.QtCore.QTime.elapsed": (),
- "PySide2.QtCore.QTime.fromMSecsSinceStartOfDay": ('int',),
- "PySide2.QtCore.QTime.fromString": [('str', 'PySide2.QtCore.Qt.DateFormat'), ('str', 'str')],
- "PySide2.QtCore.QTime.hour": (),
- "PySide2.QtCore.QTime.isNull": (),
- "PySide2.QtCore.QTime.isValid": [(), ('int', 'int', 'int', 'int')],
- "PySide2.QtCore.QTime.minute": (),
- "PySide2.QtCore.QTime.msec": (),
- "PySide2.QtCore.QTime.msecsSinceStartOfDay": (),
- "PySide2.QtCore.QTime.msecsTo": ('PySide2.QtCore.QTime',),
- "PySide2.QtCore.QTime.restart": (),
- "PySide2.QtCore.QTime.second": (),
- "PySide2.QtCore.QTime.secsTo": ('PySide2.QtCore.QTime',),
- "PySide2.QtCore.QTime.setHMS": ('int', 'int', 'int', 'int'),
- "PySide2.QtCore.QTime.start": (),
- "PySide2.QtCore.QTime.toPython": (),
- "PySide2.QtCore.QTime.toString": [('PySide2.QtCore.Qt.DateFormat',), ('str',)],
-# class PySide2.QtCore.QTimeLine:
-# class PySide2.QtCore.QTimeLine.CurveShape:
-# class PySide2.QtCore.QTimeLine.Direction:
-# class PySide2.QtCore.QTimeLine.State:
- "PySide2.QtCore.QTimeLine.__init__": ('int', 'PySide2.QtCore.QObject'),
- "PySide2.QtCore.QTimeLine.currentFrame": (),
- "PySide2.QtCore.QTimeLine.currentTime": (),
- "PySide2.QtCore.QTimeLine.currentValue": (),
- "PySide2.QtCore.QTimeLine.curveShape": (),
- "PySide2.QtCore.QTimeLine.direction": (),
- "PySide2.QtCore.QTimeLine.duration": (),
- "PySide2.QtCore.QTimeLine.easingCurve": (),
- "PySide2.QtCore.QTimeLine.endFrame": (),
- "PySide2.QtCore.QTimeLine.frameForTime": ('int',),
- "PySide2.QtCore.QTimeLine.loopCount": (),
- "PySide2.QtCore.QTimeLine.resume": (),
- "PySide2.QtCore.QTimeLine.setCurrentTime": ('int',),
- "PySide2.QtCore.QTimeLine.setCurveShape": ('PySide2.QtCore.QTimeLine.CurveShape',),
- "PySide2.QtCore.QTimeLine.setDirection": ('PySide2.QtCore.QTimeLine.Direction',),
- "PySide2.QtCore.QTimeLine.setDuration": ('int',),
- "PySide2.QtCore.QTimeLine.setEasingCurve": ('PySide2.QtCore.QEasingCurve',),
- "PySide2.QtCore.QTimeLine.setEndFrame": ('int',),
- "PySide2.QtCore.QTimeLine.setFrameRange": ('int', 'int'),
- "PySide2.QtCore.QTimeLine.setLoopCount": ('int',),
- "PySide2.QtCore.QTimeLine.setPaused": ('bool',),
- "PySide2.QtCore.QTimeLine.setStartFrame": ('int',),
- "PySide2.QtCore.QTimeLine.setUpdateInterval": ('int',),
- "PySide2.QtCore.QTimeLine.start": (),
- "PySide2.QtCore.QTimeLine.startFrame": (),
- "PySide2.QtCore.QTimeLine.state": (),
- "PySide2.QtCore.QTimeLine.stop": (),
- "PySide2.QtCore.QTimeLine.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtCore.QTimeLine.toggleDirection": (),
- "PySide2.QtCore.QTimeLine.updateInterval": (),
- "PySide2.QtCore.QTimeLine.valueForTime": ('int',),
-# class PySide2.QtCore.QTimeZone:
-# class PySide2.QtCore.QTimeZone.NameType:
-# class PySide2.QtCore.QTimeZone.OffsetData:
- "PySide2.QtCore.QTimeZone.OffsetData.__init__": [(), ('PySide2.QtCore.QTimeZone.OffsetData',)],
- "PySide2.QtCore.QTimeZone.OffsetData.__copy__": (),
-# class PySide2.QtCore.QTimeZone.TimeType:
- "PySide2.QtCore.QTimeZone.__init__": [(), ('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QByteArray', 'int', 'str', 'str', 'PySide2.QtCore.QLocale.Country', 'str'), ('PySide2.QtCore.QTimeZone',), ('int',)],
- "PySide2.QtCore.QTimeZone.__copy__": (),
- "PySide2.QtCore.QTimeZone.abbreviation": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QTimeZone.availableTimeZoneIds": [(), ('PySide2.QtCore.QLocale.Country',), ('int',)],
- "PySide2.QtCore.QTimeZone.comment": (),
- "PySide2.QtCore.QTimeZone.country": (),
- "PySide2.QtCore.QTimeZone.daylightTimeOffset": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QTimeZone.displayName": [('PySide2.QtCore.QDateTime', 'PySide2.QtCore.QTimeZone.NameType', 'PySide2.QtCore.QLocale'), ('PySide2.QtCore.QTimeZone.TimeType', 'PySide2.QtCore.QTimeZone.NameType', 'PySide2.QtCore.QLocale')],
- "PySide2.QtCore.QTimeZone.hasDaylightTime": (),
- "PySide2.QtCore.QTimeZone.hasTransitions": (),
- "PySide2.QtCore.QTimeZone.ianaIdToWindowsId": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QTimeZone.id": (),
- "PySide2.QtCore.QTimeZone.isDaylightTime": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QTimeZone.isTimeZoneIdAvailable": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QTimeZone.isValid": (),
- "PySide2.QtCore.QTimeZone.nextTransition": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QTimeZone.offsetData": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QTimeZone.offsetFromUtc": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QTimeZone.previousTransition": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QTimeZone.standardTimeOffset": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtCore.QTimeZone.swap": ('PySide2.QtCore.QTimeZone',),
- "PySide2.QtCore.QTimeZone.systemTimeZone": (),
- "PySide2.QtCore.QTimeZone.systemTimeZoneId": (),
- "PySide2.QtCore.QTimeZone.transitions": ('PySide2.QtCore.QDateTime', 'PySide2.QtCore.QDateTime'),
- "PySide2.QtCore.QTimeZone.utc": (),
- "PySide2.QtCore.QTimeZone.windowsIdToDefaultIanaId": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QLocale.Country')],
- "PySide2.QtCore.QTimeZone.windowsIdToIanaIds": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QLocale.Country')],
-# class PySide2.QtCore.QTimer:
- "PySide2.QtCore.QTimer.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QTimer.interval": (),
- "PySide2.QtCore.QTimer.isActive": (),
- "PySide2.QtCore.QTimer.isSingleShot": (),
- "PySide2.QtCore.QTimer.killTimer": ('int',),
- "PySide2.QtCore.QTimer.remainingTime": (),
- "PySide2.QtCore.QTimer.setInterval": ('int',),
- "PySide2.QtCore.QTimer.setSingleShot": ('bool',),
- "PySide2.QtCore.QTimer.setTimerType": ('PySide2.QtCore.Qt.TimerType',),
- "PySide2.QtCore.QTimer.singleShot": [('int', 'PySide2.QtCore.QObject', 'str'), ('int', 'PySide2.QtCore.Qt.TimerType', 'PySide2.QtCore.QObject', 'str'), ('int', 'typing.Callable')],
- "PySide2.QtCore.QTimer.start": [(), ('int',)],
- "PySide2.QtCore.QTimer.stop": (),
- "PySide2.QtCore.QTimer.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtCore.QTimer.timerId": (),
- "PySide2.QtCore.QTimer.timerType": (),
-# class PySide2.QtCore.QTimerEvent:
- "PySide2.QtCore.QTimerEvent.__init__": ('int',),
- "PySide2.QtCore.QTimerEvent.timerId": (),
-# class PySide2.QtCore.QTranslator:
- "PySide2.QtCore.QTranslator.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QTranslator.isEmpty": (),
- "PySide2.QtCore.QTranslator.load": [('PySide2.QtCore.QLocale', 'str', 'str', 'str', 'str'), ('str', 'int', 'str'), ('str', 'str', 'str', 'str')],
- "PySide2.QtCore.QTranslator.translate": ('str', 'str', 'str', 'int'),
-# class PySide2.QtCore.QTransposeProxyModel:
- "PySide2.QtCore.QTransposeProxyModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QTransposeProxyModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QTransposeProxyModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtCore.QTransposeProxyModel.index": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QTransposeProxyModel.insertColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QTransposeProxyModel.insertRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QTransposeProxyModel.itemData": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QTransposeProxyModel.mapFromSource": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QTransposeProxyModel.mapToSource": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QTransposeProxyModel.moveColumns": ('PySide2.QtCore.QModelIndex', 'int', 'int', 'PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QTransposeProxyModel.moveRows": ('PySide2.QtCore.QModelIndex', 'int', 'int', 'PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtCore.QTransposeProxyModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtCore.QTransposeProxyModel.removeColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QTransposeProxyModel.removeRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtCore.QTransposeProxyModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtCore.QTransposeProxyModel.setHeaderData": ('int', 'PySide2.QtCore.Qt.Orientation', 'typing.Any', 'int'),
- "PySide2.QtCore.QTransposeProxyModel.setItemData": ('PySide2.QtCore.QModelIndex', 'typing.Dict[int, typing.Any]'),
- "PySide2.QtCore.QTransposeProxyModel.setSourceModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCore.QTransposeProxyModel.sort": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtCore.QTransposeProxyModel.span": ('PySide2.QtCore.QModelIndex',),
-# class PySide2.QtCore.QUrl:
-# class PySide2.QtCore.QUrl.ComponentFormattingOption:
-# class PySide2.QtCore.QUrl.FormattingOptions:
-# class PySide2.QtCore.QUrl.ParsingMode:
-# class PySide2.QtCore.QUrl.UrlFormattingOption:
-# class PySide2.QtCore.QUrl.UserInputResolutionOption:
-# class PySide2.QtCore.QUrl.UserInputResolutionOptions:
- "PySide2.QtCore.QUrl.__init__": [(), ('PySide2.QtCore.QUrl',), ('str', 'PySide2.QtCore.QUrl.ParsingMode')],
- "PySide2.QtCore.QUrl.__copy__": (),
- "PySide2.QtCore.QUrl.__reduce__": (),
- "PySide2.QtCore.QUrl.__repr__": (),
- "PySide2.QtCore.QUrl.adjusted": ('PySide2.QtCore.QUrl.FormattingOptions',),
- "PySide2.QtCore.QUrl.authority": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrl.clear": (),
- "PySide2.QtCore.QUrl.errorString": (),
- "PySide2.QtCore.QUrl.fileName": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrl.fragment": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrl.fromAce": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QUrl.fromEncoded": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtCore.QUrl.fromLocalFile": ('str',),
- "PySide2.QtCore.QUrl.fromPercentEncoding": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QUrl.fromStringList": ('typing.Sequence[str]', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtCore.QUrl.fromUserInput": [('str',), ('str', 'str', 'PySide2.QtCore.QUrl.UserInputResolutionOptions')],
- "PySide2.QtCore.QUrl.hasFragment": (),
- "PySide2.QtCore.QUrl.hasQuery": (),
- "PySide2.QtCore.QUrl.host": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrl.idnWhitelist": (),
- "PySide2.QtCore.QUrl.isEmpty": (),
- "PySide2.QtCore.QUrl.isLocalFile": (),
- "PySide2.QtCore.QUrl.isParentOf": ('PySide2.QtCore.QUrl',),
- "PySide2.QtCore.QUrl.isRelative": (),
- "PySide2.QtCore.QUrl.isValid": (),
- "PySide2.QtCore.QUrl.matches": ('PySide2.QtCore.QUrl', 'PySide2.QtCore.QUrl.FormattingOptions'),
- "PySide2.QtCore.QUrl.password": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrl.path": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrl.port": ('int',),
- "PySide2.QtCore.QUrl.query": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrl.resolved": ('PySide2.QtCore.QUrl',),
- "PySide2.QtCore.QUrl.scheme": (),
- "PySide2.QtCore.QUrl.setAuthority": ('str', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtCore.QUrl.setFragment": ('str', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtCore.QUrl.setHost": ('str', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtCore.QUrl.setIdnWhitelist": ('typing.Sequence[str]',),
- "PySide2.QtCore.QUrl.setPassword": ('str', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtCore.QUrl.setPath": ('str', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtCore.QUrl.setPort": ('int',),
- "PySide2.QtCore.QUrl.setQuery": [('PySide2.QtCore.QUrlQuery',), ('str', 'PySide2.QtCore.QUrl.ParsingMode')],
- "PySide2.QtCore.QUrl.setScheme": ('str',),
- "PySide2.QtCore.QUrl.setUrl": ('str', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtCore.QUrl.setUserInfo": ('str', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtCore.QUrl.setUserName": ('str', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtCore.QUrl.swap": ('PySide2.QtCore.QUrl',),
- "PySide2.QtCore.QUrl.toAce": ('str',),
- "PySide2.QtCore.QUrl.toDisplayString": ('PySide2.QtCore.QUrl.FormattingOptions',),
- "PySide2.QtCore.QUrl.toEncoded": ('PySide2.QtCore.QUrl.FormattingOptions',),
- "PySide2.QtCore.QUrl.toLocalFile": (),
- "PySide2.QtCore.QUrl.toPercentEncoding": ('str', 'PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtCore.QUrl.toString": ('PySide2.QtCore.QUrl.FormattingOptions',),
- "PySide2.QtCore.QUrl.toStringList": ('typing.Sequence[PySide2.QtCore.QUrl]', 'PySide2.QtCore.QUrl.FormattingOptions'),
- "PySide2.QtCore.QUrl.topLevelDomain": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrl.url": ('PySide2.QtCore.QUrl.FormattingOptions',),
- "PySide2.QtCore.QUrl.userInfo": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrl.userName": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
-# class PySide2.QtCore.QUrlQuery:
- "PySide2.QtCore.QUrlQuery.__init__": [(), ('PySide2.QtCore.QUrl',), ('PySide2.QtCore.QUrlQuery',), ('str',)],
- "PySide2.QtCore.QUrlQuery.__copy__": (),
- "PySide2.QtCore.QUrlQuery.addQueryItem": ('str', 'str'),
- "PySide2.QtCore.QUrlQuery.allQueryItemValues": ('str', 'PySide2.QtCore.QUrl.ComponentFormattingOption'),
- "PySide2.QtCore.QUrlQuery.clear": (),
- "PySide2.QtCore.QUrlQuery.defaultQueryPairDelimiter": (),
- "PySide2.QtCore.QUrlQuery.defaultQueryValueDelimiter": (),
- "PySide2.QtCore.QUrlQuery.hasQueryItem": ('str',),
- "PySide2.QtCore.QUrlQuery.isEmpty": (),
- "PySide2.QtCore.QUrlQuery.query": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrlQuery.queryItemValue": ('str', 'PySide2.QtCore.QUrl.ComponentFormattingOption'),
- "PySide2.QtCore.QUrlQuery.queryItems": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtCore.QUrlQuery.queryPairDelimiter": (),
- "PySide2.QtCore.QUrlQuery.queryValueDelimiter": (),
- "PySide2.QtCore.QUrlQuery.removeAllQueryItems": ('str',),
- "PySide2.QtCore.QUrlQuery.removeQueryItem": ('str',),
- "PySide2.QtCore.QUrlQuery.setQuery": ('str',),
- "PySide2.QtCore.QUrlQuery.setQueryDelimiters": ('str', 'str'),
- "PySide2.QtCore.QUrlQuery.setQueryItems": ('typing.Sequence[typing.Tuple]',),
- "PySide2.QtCore.QUrlQuery.swap": ('PySide2.QtCore.QUrlQuery',),
- "PySide2.QtCore.QUrlQuery.toString": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
-# class PySide2.QtCore.QUuid:
-# class PySide2.QtCore.QUuid.StringFormat:
-# class PySide2.QtCore.QUuid.Variant:
-# class PySide2.QtCore.QUuid.Version:
- "PySide2.QtCore.QUuid.__init__": [(), ('PySide2.QtCore.QByteArray',), ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'), ('str',)],
- "PySide2.QtCore.QUuid.__copy__": (),
- "PySide2.QtCore.QUuid.__reduce__": (),
- "PySide2.QtCore.QUuid.__repr__": (),
- "PySide2.QtCore.QUuid.createUuid": (),
- "PySide2.QtCore.QUuid.createUuidV3": [('PySide2.QtCore.QUuid', 'PySide2.QtCore.QByteArray'), ('PySide2.QtCore.QUuid', 'str')],
- "PySide2.QtCore.QUuid.createUuidV5": [('PySide2.QtCore.QUuid', 'PySide2.QtCore.QByteArray'), ('PySide2.QtCore.QUuid', 'str')],
- "PySide2.QtCore.QUuid.fromRfc4122": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtCore.QUuid.isNull": (),
- "PySide2.QtCore.QUuid.toByteArray": [(), ('PySide2.QtCore.QUuid.StringFormat',)],
- "PySide2.QtCore.QUuid.toRfc4122": (),
- "PySide2.QtCore.QUuid.toString": [(), ('PySide2.QtCore.QUuid.StringFormat',)],
- "PySide2.QtCore.QUuid.variant": (),
- "PySide2.QtCore.QUuid.version": (),
-# class PySide2.QtCore.QVariantAnimation:
- "PySide2.QtCore.QVariantAnimation.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCore.QVariantAnimation.currentValue": (),
- "PySide2.QtCore.QVariantAnimation.duration": (),
- "PySide2.QtCore.QVariantAnimation.easingCurve": (),
- "PySide2.QtCore.QVariantAnimation.endValue": (),
- "PySide2.QtCore.QVariantAnimation.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtCore.QVariantAnimation.interpolated": ('typing.Any', 'typing.Any', 'float'),
- "PySide2.QtCore.QVariantAnimation.keyValueAt": ('float',),
- "PySide2.QtCore.QVariantAnimation.keyValues": (),
- "PySide2.QtCore.QVariantAnimation.setDuration": ('int',),
- "PySide2.QtCore.QVariantAnimation.setEasingCurve": ('PySide2.QtCore.QEasingCurve',),
- "PySide2.QtCore.QVariantAnimation.setEndValue": ('typing.Any',),
- "PySide2.QtCore.QVariantAnimation.setKeyValueAt": ('float', 'typing.Any'),
- "PySide2.QtCore.QVariantAnimation.setKeyValues": ('typing.List[typing.Tuple]',),
- "PySide2.QtCore.QVariantAnimation.setStartValue": ('typing.Any',),
- "PySide2.QtCore.QVariantAnimation.startValue": (),
- "PySide2.QtCore.QVariantAnimation.updateCurrentTime": ('int',),
- "PySide2.QtCore.QVariantAnimation.updateCurrentValue": ('typing.Any',),
- "PySide2.QtCore.QVariantAnimation.updateState": ('PySide2.QtCore.QAbstractAnimation.State', 'PySide2.QtCore.QAbstractAnimation.State'),
-# class PySide2.QtCore.QVersionNumber:
- "PySide2.QtCore.QVersionNumber.__init__": [(), ('int',), ('int', 'int'), ('int', 'int', 'int'), ('typing.List[int]',)],
- "PySide2.QtCore.QVersionNumber.__copy__": (),
- "PySide2.QtCore.QVersionNumber.commonPrefix": ('PySide2.QtCore.QVersionNumber', 'PySide2.QtCore.QVersionNumber'),
- "PySide2.QtCore.QVersionNumber.compare": ('PySide2.QtCore.QVersionNumber', 'PySide2.QtCore.QVersionNumber'),
- "PySide2.QtCore.QVersionNumber.fromString": ('str',),
- "PySide2.QtCore.QVersionNumber.isNormalized": (),
- "PySide2.QtCore.QVersionNumber.isNull": (),
- "PySide2.QtCore.QVersionNumber.isPrefixOf": ('PySide2.QtCore.QVersionNumber',),
- "PySide2.QtCore.QVersionNumber.majorVersion": (),
- "PySide2.QtCore.QVersionNumber.microVersion": (),
- "PySide2.QtCore.QVersionNumber.minorVersion": (),
- "PySide2.QtCore.QVersionNumber.normalized": (),
- "PySide2.QtCore.QVersionNumber.segmentAt": ('int',),
- "PySide2.QtCore.QVersionNumber.segmentCount": (),
- "PySide2.QtCore.QVersionNumber.segments": (),
- "PySide2.QtCore.QVersionNumber.toString": (),
-# class PySide2.QtCore.QWaitCondition:
- "PySide2.QtCore.QWaitCondition.__init__": (),
- "PySide2.QtCore.QWaitCondition.notify_all": (),
- "PySide2.QtCore.QWaitCondition.notify_one": (),
- "PySide2.QtCore.QWaitCondition.wait": [('PySide2.QtCore.QMutex', 'PySide2.QtCore.QDeadlineTimer'), ('PySide2.QtCore.QMutex', 'int'), ('PySide2.QtCore.QReadWriteLock', 'PySide2.QtCore.QDeadlineTimer'), ('PySide2.QtCore.QReadWriteLock', 'int')],
- "PySide2.QtCore.QWaitCondition.wakeAll": (),
- "PySide2.QtCore.QWaitCondition.wakeOne": (),
-# class PySide2.QtCore.QWriteLocker:
- "PySide2.QtCore.QWriteLocker.__init__": ('PySide2.QtCore.QReadWriteLock',),
- "PySide2.QtCore.QWriteLocker.__enter__": (),
- "PySide2.QtCore.QWriteLocker.__exit__": ('object', 'object', 'object'),
- "PySide2.QtCore.QWriteLocker.readWriteLock": (),
- "PySide2.QtCore.QWriteLocker.relock": (),
- "PySide2.QtCore.QWriteLocker.unlock": (),
-# class PySide2.QtCore.QXmlStreamAttribute:
- "PySide2.QtCore.QXmlStreamAttribute.__init__": [(), ('PySide2.QtCore.QXmlStreamAttribute',), ('str', 'str'), ('str', 'str', 'str')],
- "PySide2.QtCore.QXmlStreamAttribute.__copy__": (),
- "PySide2.QtCore.QXmlStreamAttribute.isDefault": (),
- "PySide2.QtCore.QXmlStreamAttribute.name": (),
- "PySide2.QtCore.QXmlStreamAttribute.namespaceUri": (),
- "PySide2.QtCore.QXmlStreamAttribute.prefix": (),
- "PySide2.QtCore.QXmlStreamAttribute.qualifiedName": (),
- "PySide2.QtCore.QXmlStreamAttribute.value": (),
-# class PySide2.QtCore.QXmlStreamAttributes:
- "PySide2.QtCore.QXmlStreamAttributes.__init__": [(), ('PySide2.QtCore.QXmlStreamAttributes',)],
- "PySide2.QtCore.QXmlStreamAttributes.__add__": ('typing.List[PySide2.QtCore.QXmlStreamAttribute]',),
- "PySide2.QtCore.QXmlStreamAttributes.__copy__": (),
- "PySide2.QtCore.QXmlStreamAttributes.__iadd__": ('PySide2.QtCore.QXmlStreamAttribute',),
- "PySide2.QtCore.QXmlStreamAttributes.__lshift__": [('PySide2.QtCore.QXmlStreamAttribute',), ('typing.List[PySide2.QtCore.QXmlStreamAttribute]',)],
- "PySide2.QtCore.QXmlStreamAttributes.append": [('str', 'str'), ('str', 'str', 'str')],
- "PySide2.QtCore.QXmlStreamAttributes.at": ('int',),
- "PySide2.QtCore.QXmlStreamAttributes.back": (),
- "PySide2.QtCore.QXmlStreamAttributes.capacity": (),
- "PySide2.QtCore.QXmlStreamAttributes.clear": (),
- "PySide2.QtCore.QXmlStreamAttributes.constData": (),
- "PySide2.QtCore.QXmlStreamAttributes.constFirst": (),
- "PySide2.QtCore.QXmlStreamAttributes.constLast": (),
- "PySide2.QtCore.QXmlStreamAttributes.contains": ('PySide2.QtCore.QXmlStreamAttribute',),
- "PySide2.QtCore.QXmlStreamAttributes.count": [(), ('PySide2.QtCore.QXmlStreamAttribute',)],
- "PySide2.QtCore.QXmlStreamAttributes.data": (),
- "PySide2.QtCore.QXmlStreamAttributes.empty": (),
- "PySide2.QtCore.QXmlStreamAttributes.endsWith": ('PySide2.QtCore.QXmlStreamAttribute',),
- "PySide2.QtCore.QXmlStreamAttributes.fill": ('PySide2.QtCore.QXmlStreamAttribute', 'int'),
- "PySide2.QtCore.QXmlStreamAttributes.first": (),
- "PySide2.QtCore.QXmlStreamAttributes.front": (),
- "PySide2.QtCore.QXmlStreamAttributes.hasAttribute": [('str',), ('str', 'str')],
- "PySide2.QtCore.QXmlStreamAttributes.indexOf": ('PySide2.QtCore.QXmlStreamAttribute', 'int'),
- "PySide2.QtCore.QXmlStreamAttributes.insert": [('int', 'PySide2.QtCore.QXmlStreamAttribute'), ('int', 'int', 'PySide2.QtCore.QXmlStreamAttribute')],
- "PySide2.QtCore.QXmlStreamAttributes.isEmpty": (),
- "PySide2.QtCore.QXmlStreamAttributes.isSharedWith": ('typing.List[PySide2.QtCore.QXmlStreamAttribute]',),
- "PySide2.QtCore.QXmlStreamAttributes.last": (),
- "PySide2.QtCore.QXmlStreamAttributes.lastIndexOf": ('PySide2.QtCore.QXmlStreamAttribute', 'int'),
- "PySide2.QtCore.QXmlStreamAttributes.length": (),
- "PySide2.QtCore.QXmlStreamAttributes.mid": ('int', 'int'),
- "PySide2.QtCore.QXmlStreamAttributes.move": ('int', 'int'),
- "PySide2.QtCore.QXmlStreamAttributes.prepend": ('PySide2.QtCore.QXmlStreamAttribute',),
- "PySide2.QtCore.QXmlStreamAttributes.remove": [('int',), ('int', 'int')],
- "PySide2.QtCore.QXmlStreamAttributes.removeAll": ('PySide2.QtCore.QXmlStreamAttribute',),
- "PySide2.QtCore.QXmlStreamAttributes.removeAt": ('int',),
- "PySide2.QtCore.QXmlStreamAttributes.removeFirst": (),
- "PySide2.QtCore.QXmlStreamAttributes.removeLast": (),
- "PySide2.QtCore.QXmlStreamAttributes.removeOne": ('PySide2.QtCore.QXmlStreamAttribute',),
- "PySide2.QtCore.QXmlStreamAttributes.replace": ('int', 'PySide2.QtCore.QXmlStreamAttribute'),
- "PySide2.QtCore.QXmlStreamAttributes.reserve": ('int',),
- "PySide2.QtCore.QXmlStreamAttributes.resize": ('int',),
- "PySide2.QtCore.QXmlStreamAttributes.setSharable": ('bool',),
- "PySide2.QtCore.QXmlStreamAttributes.shrink_to_fit": (),
- "PySide2.QtCore.QXmlStreamAttributes.size": (),
- "PySide2.QtCore.QXmlStreamAttributes.squeeze": (),
- "PySide2.QtCore.QXmlStreamAttributes.startsWith": ('PySide2.QtCore.QXmlStreamAttribute',),
- "PySide2.QtCore.QXmlStreamAttributes.swap": ('typing.List[PySide2.QtCore.QXmlStreamAttribute]',),
- "PySide2.QtCore.QXmlStreamAttributes.swapItemsAt": ('int', 'int'),
- "PySide2.QtCore.QXmlStreamAttributes.takeAt": ('int',),
- "PySide2.QtCore.QXmlStreamAttributes.takeFirst": (),
- "PySide2.QtCore.QXmlStreamAttributes.takeLast": (),
- "PySide2.QtCore.QXmlStreamAttributes.value": [('str',), ('str', 'str')],
-# class PySide2.QtCore.QXmlStreamEntityDeclaration:
- "PySide2.QtCore.QXmlStreamEntityDeclaration.__init__": [(), ('PySide2.QtCore.QXmlStreamEntityDeclaration',)],
- "PySide2.QtCore.QXmlStreamEntityDeclaration.__copy__": (),
- "PySide2.QtCore.QXmlStreamEntityDeclaration.name": (),
- "PySide2.QtCore.QXmlStreamEntityDeclaration.notationName": (),
- "PySide2.QtCore.QXmlStreamEntityDeclaration.publicId": (),
- "PySide2.QtCore.QXmlStreamEntityDeclaration.systemId": (),
- "PySide2.QtCore.QXmlStreamEntityDeclaration.value": (),
-# class PySide2.QtCore.QXmlStreamEntityResolver:
- "PySide2.QtCore.QXmlStreamEntityResolver.__init__": (),
- "PySide2.QtCore.QXmlStreamEntityResolver.resolveEntity": ('str', 'str'),
- "PySide2.QtCore.QXmlStreamEntityResolver.resolveUndeclaredEntity": ('str',),
-# class PySide2.QtCore.QXmlStreamNamespaceDeclaration:
- "PySide2.QtCore.QXmlStreamNamespaceDeclaration.__init__": [(), ('PySide2.QtCore.QXmlStreamNamespaceDeclaration',), ('str', 'str')],
- "PySide2.QtCore.QXmlStreamNamespaceDeclaration.__copy__": (),
- "PySide2.QtCore.QXmlStreamNamespaceDeclaration.namespaceUri": (),
- "PySide2.QtCore.QXmlStreamNamespaceDeclaration.prefix": (),
-# class PySide2.QtCore.QXmlStreamNotationDeclaration:
- "PySide2.QtCore.QXmlStreamNotationDeclaration.__init__": [(), ('PySide2.QtCore.QXmlStreamNotationDeclaration',)],
- "PySide2.QtCore.QXmlStreamNotationDeclaration.__copy__": (),
- "PySide2.QtCore.QXmlStreamNotationDeclaration.name": (),
- "PySide2.QtCore.QXmlStreamNotationDeclaration.publicId": (),
- "PySide2.QtCore.QXmlStreamNotationDeclaration.systemId": (),
-# class PySide2.QtCore.QXmlStreamReader:
-# class PySide2.QtCore.QXmlStreamReader.Error:
-# class PySide2.QtCore.QXmlStreamReader.ReadElementTextBehaviour:
-# class PySide2.QtCore.QXmlStreamReader.TokenType:
- "PySide2.QtCore.QXmlStreamReader.__init__": [(), ('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QIODevice',), ('str',)],
- "PySide2.QtCore.QXmlStreamReader.addData": [('PySide2.QtCore.QByteArray',), ('str',)],
- "PySide2.QtCore.QXmlStreamReader.addExtraNamespaceDeclaration": ('PySide2.QtCore.QXmlStreamNamespaceDeclaration',),
- "PySide2.QtCore.QXmlStreamReader.addExtraNamespaceDeclarations": ('typing.List[PySide2.QtCore.QXmlStreamNamespaceDeclaration]',),
- "PySide2.QtCore.QXmlStreamReader.atEnd": (),
- "PySide2.QtCore.QXmlStreamReader.attributes": (),
- "PySide2.QtCore.QXmlStreamReader.characterOffset": (),
- "PySide2.QtCore.QXmlStreamReader.clear": (),
- "PySide2.QtCore.QXmlStreamReader.columnNumber": (),
- "PySide2.QtCore.QXmlStreamReader.device": (),
- "PySide2.QtCore.QXmlStreamReader.documentEncoding": (),
- "PySide2.QtCore.QXmlStreamReader.documentVersion": (),
- "PySide2.QtCore.QXmlStreamReader.dtdName": (),
- "PySide2.QtCore.QXmlStreamReader.dtdPublicId": (),
- "PySide2.QtCore.QXmlStreamReader.dtdSystemId": (),
- "PySide2.QtCore.QXmlStreamReader.entityDeclarations": (),
- "PySide2.QtCore.QXmlStreamReader.entityResolver": (),
- "PySide2.QtCore.QXmlStreamReader.error": (),
- "PySide2.QtCore.QXmlStreamReader.errorString": (),
- "PySide2.QtCore.QXmlStreamReader.hasError": (),
- "PySide2.QtCore.QXmlStreamReader.isCDATA": (),
- "PySide2.QtCore.QXmlStreamReader.isCharacters": (),
- "PySide2.QtCore.QXmlStreamReader.isComment": (),
- "PySide2.QtCore.QXmlStreamReader.isDTD": (),
- "PySide2.QtCore.QXmlStreamReader.isEndDocument": (),
- "PySide2.QtCore.QXmlStreamReader.isEndElement": (),
- "PySide2.QtCore.QXmlStreamReader.isEntityReference": (),
- "PySide2.QtCore.QXmlStreamReader.isProcessingInstruction": (),
- "PySide2.QtCore.QXmlStreamReader.isStandaloneDocument": (),
- "PySide2.QtCore.QXmlStreamReader.isStartDocument": (),
- "PySide2.QtCore.QXmlStreamReader.isStartElement": (),
- "PySide2.QtCore.QXmlStreamReader.isWhitespace": (),
- "PySide2.QtCore.QXmlStreamReader.lineNumber": (),
- "PySide2.QtCore.QXmlStreamReader.name": (),
- "PySide2.QtCore.QXmlStreamReader.namespaceDeclarations": (),
- "PySide2.QtCore.QXmlStreamReader.namespaceProcessing": (),
- "PySide2.QtCore.QXmlStreamReader.namespaceUri": (),
- "PySide2.QtCore.QXmlStreamReader.notationDeclarations": (),
- "PySide2.QtCore.QXmlStreamReader.prefix": (),
- "PySide2.QtCore.QXmlStreamReader.processingInstructionData": (),
- "PySide2.QtCore.QXmlStreamReader.processingInstructionTarget": (),
- "PySide2.QtCore.QXmlStreamReader.qualifiedName": (),
- "PySide2.QtCore.QXmlStreamReader.raiseError": ('str',),
- "PySide2.QtCore.QXmlStreamReader.readElementText": ('PySide2.QtCore.QXmlStreamReader.ReadElementTextBehaviour',),
- "PySide2.QtCore.QXmlStreamReader.readNext": (),
- "PySide2.QtCore.QXmlStreamReader.readNextStartElement": (),
- "PySide2.QtCore.QXmlStreamReader.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtCore.QXmlStreamReader.setEntityResolver": ('PySide2.QtCore.QXmlStreamEntityResolver',),
- "PySide2.QtCore.QXmlStreamReader.setNamespaceProcessing": ('bool',),
- "PySide2.QtCore.QXmlStreamReader.skipCurrentElement": (),
- "PySide2.QtCore.QXmlStreamReader.text": (),
- "PySide2.QtCore.QXmlStreamReader.tokenString": (),
- "PySide2.QtCore.QXmlStreamReader.tokenType": (),
-# class PySide2.QtCore.QXmlStreamWriter:
- "PySide2.QtCore.QXmlStreamWriter.__init__": [(), ('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QIODevice',)],
- "PySide2.QtCore.QXmlStreamWriter.autoFormatting": (),
- "PySide2.QtCore.QXmlStreamWriter.autoFormattingIndent": (),
- "PySide2.QtCore.QXmlStreamWriter.codec": (),
- "PySide2.QtCore.QXmlStreamWriter.device": (),
- "PySide2.QtCore.QXmlStreamWriter.hasError": (),
- "PySide2.QtCore.QXmlStreamWriter.setAutoFormatting": ('bool',),
- "PySide2.QtCore.QXmlStreamWriter.setAutoFormattingIndent": ('int',),
- "PySide2.QtCore.QXmlStreamWriter.setCodec": [('PySide2.QtCore.QTextCodec',), ('str',)],
- "PySide2.QtCore.QXmlStreamWriter.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtCore.QXmlStreamWriter.writeAttribute": [('PySide2.QtCore.QXmlStreamAttribute',), ('str', 'str'), ('str', 'str', 'str')],
- "PySide2.QtCore.QXmlStreamWriter.writeAttributes": ('PySide2.QtCore.QXmlStreamAttributes',),
- "PySide2.QtCore.QXmlStreamWriter.writeCDATA": ('str',),
- "PySide2.QtCore.QXmlStreamWriter.writeCharacters": ('str',),
- "PySide2.QtCore.QXmlStreamWriter.writeComment": ('str',),
- "PySide2.QtCore.QXmlStreamWriter.writeCurrentToken": ('PySide2.QtCore.QXmlStreamReader',),
- "PySide2.QtCore.QXmlStreamWriter.writeDTD": ('str',),
- "PySide2.QtCore.QXmlStreamWriter.writeDefaultNamespace": ('str',),
- "PySide2.QtCore.QXmlStreamWriter.writeEmptyElement": [('str',), ('str', 'str')],
- "PySide2.QtCore.QXmlStreamWriter.writeEndDocument": (),
- "PySide2.QtCore.QXmlStreamWriter.writeEndElement": (),
- "PySide2.QtCore.QXmlStreamWriter.writeEntityReference": ('str',),
- "PySide2.QtCore.QXmlStreamWriter.writeNamespace": ('str', 'str'),
- "PySide2.QtCore.QXmlStreamWriter.writeProcessingInstruction": ('str', 'str'),
- "PySide2.QtCore.QXmlStreamWriter.writeStartDocument": [(), ('str',), ('str', 'bool')],
- "PySide2.QtCore.QXmlStreamWriter.writeStartElement": [('str',), ('str', 'str')],
- "PySide2.QtCore.QXmlStreamWriter.writeTextElement": [('str', 'str'), ('str', 'str', 'str')],
-# class PySide2.QtCore.Qt:
-# class PySide2.QtCore.Qt.Alignment:
-# class PySide2.QtCore.Qt.AlignmentFlag:
-# class PySide2.QtCore.Qt.AnchorPoint:
-# class PySide2.QtCore.Qt.ApplicationAttribute:
-# class PySide2.QtCore.Qt.ApplicationState:
-# class PySide2.QtCore.Qt.ApplicationStates:
-# class PySide2.QtCore.Qt.ArrowType:
-# class PySide2.QtCore.Qt.AspectRatioMode:
-# class PySide2.QtCore.Qt.Axis:
-# class PySide2.QtCore.Qt.BGMode:
-# class PySide2.QtCore.Qt.BrushStyle:
-# class PySide2.QtCore.Qt.CaseSensitivity:
-# class PySide2.QtCore.Qt.CheckState:
-# class PySide2.QtCore.Qt.ChecksumType:
-# class PySide2.QtCore.Qt.ClipOperation:
-# class PySide2.QtCore.Qt.ConnectionType:
-# class PySide2.QtCore.Qt.ContextMenuPolicy:
-# class PySide2.QtCore.Qt.CoordinateSystem:
-# class PySide2.QtCore.Qt.Corner:
-# class PySide2.QtCore.Qt.CursorMoveStyle:
-# class PySide2.QtCore.Qt.CursorShape:
-# class PySide2.QtCore.Qt.DateFormat:
-# class PySide2.QtCore.Qt.DayOfWeek:
-# class PySide2.QtCore.Qt.DockWidgetArea:
-# class PySide2.QtCore.Qt.DockWidgetAreaSizes:
-# class PySide2.QtCore.Qt.DockWidgetAreas:
-# class PySide2.QtCore.Qt.DropAction:
-# class PySide2.QtCore.Qt.DropActions:
-# class PySide2.QtCore.Qt.Edge:
-# class PySide2.QtCore.Qt.Edges:
-# class PySide2.QtCore.Qt.EnterKeyType:
-# class PySide2.QtCore.Qt.EventPriority:
-# class PySide2.QtCore.Qt.FillRule:
-# class PySide2.QtCore.Qt.FindChildOption:
-# class PySide2.QtCore.Qt.FindChildOptions:
-# class PySide2.QtCore.Qt.FocusPolicy:
-# class PySide2.QtCore.Qt.FocusReason:
-# class PySide2.QtCore.Qt.GestureFlag:
-# class PySide2.QtCore.Qt.GestureFlags:
-# class PySide2.QtCore.Qt.GestureState:
-# class PySide2.QtCore.Qt.GestureType:
-# class PySide2.QtCore.Qt.GlobalColor:
-# class PySide2.QtCore.Qt.HighDpiScaleFactorRoundingPolicy:
-# class PySide2.QtCore.Qt.HitTestAccuracy:
-# class PySide2.QtCore.Qt.ImageConversionFlag:
-# class PySide2.QtCore.Qt.ImageConversionFlags:
-# class PySide2.QtCore.Qt.InputMethodHint:
-# class PySide2.QtCore.Qt.InputMethodHints:
-# class PySide2.QtCore.Qt.InputMethodQueries:
-# class PySide2.QtCore.Qt.InputMethodQuery:
-# class PySide2.QtCore.Qt.ItemDataRole:
-# class PySide2.QtCore.Qt.ItemFlag:
-# class PySide2.QtCore.Qt.ItemFlags:
-# class PySide2.QtCore.Qt.ItemSelectionMode:
-# class PySide2.QtCore.Qt.ItemSelectionOperation:
-# class PySide2.QtCore.Qt.Key:
-# class PySide2.QtCore.Qt.KeyboardModifier:
-# class PySide2.QtCore.Qt.KeyboardModifiers:
-# class PySide2.QtCore.Qt.LayoutDirection:
-# class PySide2.QtCore.Qt.MaskMode:
-# class PySide2.QtCore.Qt.MatchFlag:
-# class PySide2.QtCore.Qt.MatchFlags:
-# class PySide2.QtCore.Qt.Modifier:
-# class PySide2.QtCore.Qt.MouseButton:
-# class PySide2.QtCore.Qt.MouseButtons:
-# class PySide2.QtCore.Qt.MouseEventFlag:
-# class PySide2.QtCore.Qt.MouseEventFlags:
-# class PySide2.QtCore.Qt.MouseEventSource:
-# class PySide2.QtCore.Qt.NativeGestureType:
-# class PySide2.QtCore.Qt.NavigationMode:
-# class PySide2.QtCore.Qt.Orientation:
-# class PySide2.QtCore.Qt.Orientations:
-# class PySide2.QtCore.Qt.PenCapStyle:
-# class PySide2.QtCore.Qt.PenJoinStyle:
-# class PySide2.QtCore.Qt.PenStyle:
-# class PySide2.QtCore.Qt.ScreenOrientation:
-# class PySide2.QtCore.Qt.ScreenOrientations:
-# class PySide2.QtCore.Qt.ScrollBarPolicy:
-# class PySide2.QtCore.Qt.ScrollPhase:
-# class PySide2.QtCore.Qt.ShortcutContext:
-# class PySide2.QtCore.Qt.SizeHint:
-# class PySide2.QtCore.Qt.SizeMode:
-# class PySide2.QtCore.Qt.SortOrder:
-# class PySide2.QtCore.Qt.SplitBehavior:
-# class PySide2.QtCore.Qt.SplitBehaviorFlags:
-# class PySide2.QtCore.Qt.TabFocusBehavior:
-# class PySide2.QtCore.Qt.TextElideMode:
-# class PySide2.QtCore.Qt.TextFlag:
-# class PySide2.QtCore.Qt.TextFormat:
-# class PySide2.QtCore.Qt.TextInteractionFlag:
-# class PySide2.QtCore.Qt.TextInteractionFlags:
-# class PySide2.QtCore.Qt.TileRule:
-# class PySide2.QtCore.Qt.TimeSpec:
-# class PySide2.QtCore.Qt.TimerType:
-# class PySide2.QtCore.Qt.ToolBarArea:
-# class PySide2.QtCore.Qt.ToolBarAreaSizes:
-# class PySide2.QtCore.Qt.ToolBarAreas:
-# class PySide2.QtCore.Qt.ToolButtonStyle:
-# class PySide2.QtCore.Qt.TouchPointState:
-# class PySide2.QtCore.Qt.TouchPointStates:
-# class PySide2.QtCore.Qt.TransformationMode:
-# class PySide2.QtCore.Qt.UIEffect:
-# class PySide2.QtCore.Qt.WhiteSpaceMode:
-# class PySide2.QtCore.Qt.WidgetAttribute:
-# class PySide2.QtCore.Qt.WindowFlags:
-# class PySide2.QtCore.Qt.WindowFrameSection:
-# class PySide2.QtCore.Qt.WindowModality:
-# class PySide2.QtCore.Qt.WindowState:
-# class PySide2.QtCore.Qt.WindowStates:
-# class PySide2.QtCore.Qt.WindowType:
-# class PySide2.QtCore.QtMsgType:
-# class PySide2.QtCore.Signal:
- "PySide2.QtCore.Signal.__init__": ('type', 'str', 'str'),
-# class PySide2.QtCore.SignalInstance:
- "PySide2.QtCore.SignalInstance.connect": ('object', 'type'),
- "PySide2.QtCore.SignalInstance.disconnect": ('object',),
- "PySide2.QtCore.SignalInstance.emit": ('typing.Any',),
-# class PySide2.QtCore.Slot:
- "PySide2.QtCore.Slot.__init__": ('type', 'str', 'str'),
- "PySide2.QtCore.Slot.QT_TRANSLATE_NOOP": ('object', 'object'),
- "PySide2.QtCore.Slot.QT_TRANSLATE_NOOP3": ('object', 'object', 'object'),
- "PySide2.QtCore.Slot.QT_TRANSLATE_NOOP_UTF8": ('object',),
- "PySide2.QtCore.Slot.QT_TR_NOOP": ('object',),
- "PySide2.QtCore.Slot.QT_TR_NOOP_UTF8": ('object',),
- "PySide2.QtCore.Slot.SIGNAL": ('str',),
- "PySide2.QtCore.Slot.SLOT": ('str',),
- "PySide2.QtCore.Slot.__moduleShutdown": (),
- "PySide2.QtCore.Slot.qAbs": ('float',),
- "PySide2.QtCore.Slot.qAcos": ('float',),
- "PySide2.QtCore.Slot.qAddPostRoutine": ('object',),
- "PySide2.QtCore.Slot.qAsin": ('float',),
- "PySide2.QtCore.Slot.qAtan": ('float',),
- "PySide2.QtCore.Slot.qAtan2": ('float', 'float'),
- "PySide2.QtCore.Slot.qChecksum": ('str', 'int'),
- "PySide2.QtCore.Slot.qCompress": [('PySide2.QtCore.QByteArray', 'int'), ('str', 'int', 'int')],
- "PySide2.QtCore.Slot.qCritical": ('str',),
- "PySide2.QtCore.Slot.qDebug": ('str',),
- "PySide2.QtCore.Slot.qExp": ('float',),
- "PySide2.QtCore.Slot.qFabs": ('float',),
- "PySide2.QtCore.Slot.qFastCos": ('float',),
- "PySide2.QtCore.Slot.qFastSin": ('float',),
- "PySide2.QtCore.Slot.qFatal": ('str',),
- "PySide2.QtCore.Slot.qFuzzyCompare": ('float', 'float'),
- "PySide2.QtCore.Slot.qFuzzyIsNull": ('float',),
- "PySide2.QtCore.Slot.qInstallMessageHandler": ('object',),
- "PySide2.QtCore.Slot.qIsFinite": ('float',),
- "PySide2.QtCore.Slot.qIsInf": ('float',),
- "PySide2.QtCore.Slot.qIsNaN": ('float',),
- "PySide2.QtCore.Slot.qIsNull": ('float',),
- "PySide2.QtCore.Slot.qRegisterResourceData": ('int', 'str', 'str', 'str'),
- "PySide2.QtCore.Slot.qTan": ('float',),
- "PySide2.QtCore.Slot.qUncompress": [('PySide2.QtCore.QByteArray',), ('str', 'int')],
- "PySide2.QtCore.Slot.qUnregisterResourceData": ('int', 'str', 'str', 'str'),
- "PySide2.QtCore.Slot.qVersion": (),
- "PySide2.QtCore.Slot.qWarning": ('str',),
- "PySide2.QtCore.Slot.qrand": (),
- "PySide2.QtCore.Slot.qsrand": ('int',),
- "PySide2.QtCore.Slot.qtTrId": ('str', 'int'),
- }) if "PySide2.QtCore" in sys.modules else None
-# Module PySide2.QtGui
-sig_dict.update({
-# class PySide2.QtGui.QAbstractOpenGLFunctions:
- "PySide2.QtGui.QAbstractOpenGLFunctions.__init__": (),
- "PySide2.QtGui.QAbstractOpenGLFunctions.initializeOpenGLFunctions": (),
- "PySide2.QtGui.QAbstractOpenGLFunctions.isInitialized": (),
- "PySide2.QtGui.QAbstractOpenGLFunctions.owningContext": (),
- "PySide2.QtGui.QAbstractOpenGLFunctions.setOwningContext": ('PySide2.QtGui.QOpenGLContext',),
-# class PySide2.QtGui.QAbstractTextDocumentLayout:
-# class PySide2.QtGui.QAbstractTextDocumentLayout.PaintContext:
- "PySide2.QtGui.QAbstractTextDocumentLayout.PaintContext.__init__": [(), ('PySide2.QtGui.QAbstractTextDocumentLayout.PaintContext',)],
- "PySide2.QtGui.QAbstractTextDocumentLayout.PaintContext.__copy__": (),
-# class PySide2.QtGui.QAbstractTextDocumentLayout.Selection:
- "PySide2.QtGui.QAbstractTextDocumentLayout.Selection.__init__": [(), ('PySide2.QtGui.QAbstractTextDocumentLayout.Selection',)],
- "PySide2.QtGui.QAbstractTextDocumentLayout.Selection.__copy__": (),
- "PySide2.QtGui.QAbstractTextDocumentLayout.__init__": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.anchorAt": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.blockBoundingRect": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.blockWithMarkerAt": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.document": (),
- "PySide2.QtGui.QAbstractTextDocumentLayout.documentChanged": ('int', 'int', 'int'),
- "PySide2.QtGui.QAbstractTextDocumentLayout.documentSize": (),
- "PySide2.QtGui.QAbstractTextDocumentLayout.draw": ('PySide2.QtGui.QPainter', 'PySide2.QtGui.QAbstractTextDocumentLayout.PaintContext'),
- "PySide2.QtGui.QAbstractTextDocumentLayout.drawInlineObject": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF', 'PySide2.QtGui.QTextInlineObject', 'int', 'PySide2.QtGui.QTextFormat'),
- "PySide2.QtGui.QAbstractTextDocumentLayout.format": ('int',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.formatAt": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.formatIndex": ('int',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.frameBoundingRect": ('PySide2.QtGui.QTextFrame',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.handlerForObject": ('int',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.hitTest": ('PySide2.QtCore.QPointF', 'PySide2.QtCore.Qt.HitTestAccuracy'),
- "PySide2.QtGui.QAbstractTextDocumentLayout.imageAt": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.pageCount": (),
- "PySide2.QtGui.QAbstractTextDocumentLayout.paintDevice": (),
- "PySide2.QtGui.QAbstractTextDocumentLayout.positionInlineObject": ('PySide2.QtGui.QTextInlineObject', 'int', 'PySide2.QtGui.QTextFormat'),
- "PySide2.QtGui.QAbstractTextDocumentLayout.registerHandler": ('int', 'PySide2.QtCore.QObject'),
- "PySide2.QtGui.QAbstractTextDocumentLayout.resizeInlineObject": ('PySide2.QtGui.QTextInlineObject', 'int', 'PySide2.QtGui.QTextFormat'),
- "PySide2.QtGui.QAbstractTextDocumentLayout.setPaintDevice": ('PySide2.QtGui.QPaintDevice',),
- "PySide2.QtGui.QAbstractTextDocumentLayout.unregisterHandler": ('int', 'PySide2.QtCore.QObject'),
-# class PySide2.QtGui.QAccessible:
-# class PySide2.QtGui.QAccessible.Event:
-# class PySide2.QtGui.QAccessible.InterfaceType:
-# class PySide2.QtGui.QAccessible.Relation:
-# class PySide2.QtGui.QAccessible.RelationFlag:
-# class PySide2.QtGui.QAccessible.Role:
-# class PySide2.QtGui.QAccessible.State:
- "PySide2.QtGui.QAccessible.State.__init__": [(), ('PySide2.QtGui.QAccessible.State',)],
- "PySide2.QtGui.QAccessible.State.__copy__": (),
-# class PySide2.QtGui.QAccessible.Text:
-# class PySide2.QtGui.QAccessible.TextBoundaryType:
- "PySide2.QtGui.QAccessible.__copy__": (),
- "PySide2.QtGui.QAccessible.accessibleInterface": ('int',),
- "PySide2.QtGui.QAccessible.cleanup": (),
- "PySide2.QtGui.QAccessible.deleteAccessibleInterface": ('int',),
- "PySide2.QtGui.QAccessible.isActive": (),
- "PySide2.QtGui.QAccessible.qAccessibleTextBoundaryHelper": ('PySide2.QtGui.QTextCursor', 'PySide2.QtGui.QAccessible.TextBoundaryType'),
- "PySide2.QtGui.QAccessible.queryAccessibleInterface": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QAccessible.registerAccessibleInterface": ('PySide2.QtGui.QAccessibleInterface',),
- "PySide2.QtGui.QAccessible.setActive": ('bool',),
- "PySide2.QtGui.QAccessible.setRootObject": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QAccessible.uniqueId": ('PySide2.QtGui.QAccessibleInterface',),
- "PySide2.QtGui.QAccessible.updateAccessibility": ('PySide2.QtGui.QAccessibleEvent',),
-# class PySide2.QtGui.QAccessibleEditableTextInterface:
- "PySide2.QtGui.QAccessibleEditableTextInterface.__init__": (),
- "PySide2.QtGui.QAccessibleEditableTextInterface.deleteText": ('int', 'int'),
- "PySide2.QtGui.QAccessibleEditableTextInterface.insertText": ('int', 'str'),
- "PySide2.QtGui.QAccessibleEditableTextInterface.replaceText": ('int', 'int', 'str'),
-# class PySide2.QtGui.QAccessibleEvent:
- "PySide2.QtGui.QAccessibleEvent.__init__": [('PySide2.QtCore.QObject', 'PySide2.QtGui.QAccessible.Event'), ('PySide2.QtGui.QAccessibleInterface', 'PySide2.QtGui.QAccessible.Event')],
- "PySide2.QtGui.QAccessibleEvent.accessibleInterface": (),
- "PySide2.QtGui.QAccessibleEvent.child": (),
- "PySide2.QtGui.QAccessibleEvent.object": (),
- "PySide2.QtGui.QAccessibleEvent.setChild": ('int',),
- "PySide2.QtGui.QAccessibleEvent.type": (),
- "PySide2.QtGui.QAccessibleEvent.uniqueId": (),
-# class PySide2.QtGui.QAccessibleInterface:
- "PySide2.QtGui.QAccessibleInterface.__init__": (),
- "PySide2.QtGui.QAccessibleInterface.backgroundColor": (),
- "PySide2.QtGui.QAccessibleInterface.child": ('int',),
- "PySide2.QtGui.QAccessibleInterface.childAt": ('int', 'int'),
- "PySide2.QtGui.QAccessibleInterface.childCount": (),
- "PySide2.QtGui.QAccessibleInterface.editableTextInterface": (),
- "PySide2.QtGui.QAccessibleInterface.focusChild": (),
- "PySide2.QtGui.QAccessibleInterface.foregroundColor": (),
- "PySide2.QtGui.QAccessibleInterface.indexOfChild": ('PySide2.QtGui.QAccessibleInterface',),
- "PySide2.QtGui.QAccessibleInterface.interface_cast": ('PySide2.QtGui.QAccessible.InterfaceType',),
- "PySide2.QtGui.QAccessibleInterface.isValid": (),
- "PySide2.QtGui.QAccessibleInterface.object": (),
- "PySide2.QtGui.QAccessibleInterface.parent": (),
- "PySide2.QtGui.QAccessibleInterface.rect": (),
- "PySide2.QtGui.QAccessibleInterface.relations": ('PySide2.QtGui.QAccessible.Relation',),
- "PySide2.QtGui.QAccessibleInterface.role": (),
- "PySide2.QtGui.QAccessibleInterface.setText": ('PySide2.QtGui.QAccessible.Text', 'str'),
- "PySide2.QtGui.QAccessibleInterface.state": (),
- "PySide2.QtGui.QAccessibleInterface.tableCellInterface": (),
- "PySide2.QtGui.QAccessibleInterface.text": ('PySide2.QtGui.QAccessible.Text',),
- "PySide2.QtGui.QAccessibleInterface.textInterface": (),
- "PySide2.QtGui.QAccessibleInterface.valueInterface": (),
- "PySide2.QtGui.QAccessibleInterface.virtual_hook": ('int', 'int'),
- "PySide2.QtGui.QAccessibleInterface.window": (),
-# class PySide2.QtGui.QAccessibleObject:
- "PySide2.QtGui.QAccessibleObject.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QAccessibleObject.childAt": ('int', 'int'),
- "PySide2.QtGui.QAccessibleObject.isValid": (),
- "PySide2.QtGui.QAccessibleObject.object": (),
- "PySide2.QtGui.QAccessibleObject.rect": (),
- "PySide2.QtGui.QAccessibleObject.setText": ('PySide2.QtGui.QAccessible.Text', 'str'),
-# class PySide2.QtGui.QAccessibleStateChangeEvent:
- "PySide2.QtGui.QAccessibleStateChangeEvent.__init__": [('PySide2.QtCore.QObject', 'PySide2.QtGui.QAccessible.State'), ('PySide2.QtGui.QAccessibleInterface', 'PySide2.QtGui.QAccessible.State')],
- "PySide2.QtGui.QAccessibleStateChangeEvent.changedStates": (),
-# class PySide2.QtGui.QAccessibleTableCellInterface:
- "PySide2.QtGui.QAccessibleTableCellInterface.__init__": (),
- "PySide2.QtGui.QAccessibleTableCellInterface.columnExtent": (),
- "PySide2.QtGui.QAccessibleTableCellInterface.columnHeaderCells": (),
- "PySide2.QtGui.QAccessibleTableCellInterface.columnIndex": (),
- "PySide2.QtGui.QAccessibleTableCellInterface.isSelected": (),
- "PySide2.QtGui.QAccessibleTableCellInterface.rowExtent": (),
- "PySide2.QtGui.QAccessibleTableCellInterface.rowHeaderCells": (),
- "PySide2.QtGui.QAccessibleTableCellInterface.rowIndex": (),
- "PySide2.QtGui.QAccessibleTableCellInterface.table": (),
-# class PySide2.QtGui.QAccessibleTableModelChangeEvent:
-# class PySide2.QtGui.QAccessibleTableModelChangeEvent.ModelChangeType:
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.__init__": [('PySide2.QtCore.QObject', 'PySide2.QtGui.QAccessibleTableModelChangeEvent.ModelChangeType'), ('PySide2.QtGui.QAccessibleInterface', 'PySide2.QtGui.QAccessibleTableModelChangeEvent.ModelChangeType')],
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.firstColumn": (),
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.firstRow": (),
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.lastColumn": (),
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.lastRow": (),
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.modelChangeType": (),
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.setFirstColumn": ('int',),
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.setFirstRow": ('int',),
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.setLastColumn": ('int',),
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.setLastRow": ('int',),
- "PySide2.QtGui.QAccessibleTableModelChangeEvent.setModelChangeType": ('PySide2.QtGui.QAccessibleTableModelChangeEvent.ModelChangeType',),
-# class PySide2.QtGui.QAccessibleTextCursorEvent:
- "PySide2.QtGui.QAccessibleTextCursorEvent.__init__": [('PySide2.QtCore.QObject', 'int'), ('PySide2.QtGui.QAccessibleInterface', 'int')],
- "PySide2.QtGui.QAccessibleTextCursorEvent.cursorPosition": (),
- "PySide2.QtGui.QAccessibleTextCursorEvent.setCursorPosition": ('int',),
-# class PySide2.QtGui.QAccessibleTextInsertEvent:
- "PySide2.QtGui.QAccessibleTextInsertEvent.__init__": [('PySide2.QtCore.QObject', 'int', 'str'), ('PySide2.QtGui.QAccessibleInterface', 'int', 'str')],
- "PySide2.QtGui.QAccessibleTextInsertEvent.changePosition": (),
- "PySide2.QtGui.QAccessibleTextInsertEvent.textInserted": (),
-# class PySide2.QtGui.QAccessibleTextInterface:
- "PySide2.QtGui.QAccessibleTextInterface.__init__": (),
- "PySide2.QtGui.QAccessibleTextInterface.addSelection": ('int', 'int'),
- "PySide2.QtGui.QAccessibleTextInterface.attributes": ('int',),
- "PySide2.QtGui.QAccessibleTextInterface.characterCount": (),
- "PySide2.QtGui.QAccessibleTextInterface.characterRect": ('int',),
- "PySide2.QtGui.QAccessibleTextInterface.cursorPosition": (),
- "PySide2.QtGui.QAccessibleTextInterface.offsetAtPoint": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QAccessibleTextInterface.removeSelection": ('int',),
- "PySide2.QtGui.QAccessibleTextInterface.scrollToSubstring": ('int', 'int'),
- "PySide2.QtGui.QAccessibleTextInterface.selection": ('int',),
- "PySide2.QtGui.QAccessibleTextInterface.selectionCount": (),
- "PySide2.QtGui.QAccessibleTextInterface.setCursorPosition": ('int',),
- "PySide2.QtGui.QAccessibleTextInterface.setSelection": ('int', 'int', 'int'),
- "PySide2.QtGui.QAccessibleTextInterface.text": ('int', 'int'),
- "PySide2.QtGui.QAccessibleTextInterface.textAfterOffset": ('int', 'PySide2.QtGui.QAccessible.TextBoundaryType'),
- "PySide2.QtGui.QAccessibleTextInterface.textAtOffset": ('int', 'PySide2.QtGui.QAccessible.TextBoundaryType'),
- "PySide2.QtGui.QAccessibleTextInterface.textBeforeOffset": ('int', 'PySide2.QtGui.QAccessible.TextBoundaryType'),
-# class PySide2.QtGui.QAccessibleTextRemoveEvent:
- "PySide2.QtGui.QAccessibleTextRemoveEvent.__init__": [('PySide2.QtCore.QObject', 'int', 'str'), ('PySide2.QtGui.QAccessibleInterface', 'int', 'str')],
- "PySide2.QtGui.QAccessibleTextRemoveEvent.changePosition": (),
- "PySide2.QtGui.QAccessibleTextRemoveEvent.textRemoved": (),
-# class PySide2.QtGui.QAccessibleTextSelectionEvent:
- "PySide2.QtGui.QAccessibleTextSelectionEvent.__init__": [('PySide2.QtCore.QObject', 'int', 'int'), ('PySide2.QtGui.QAccessibleInterface', 'int', 'int')],
- "PySide2.QtGui.QAccessibleTextSelectionEvent.selectionEnd": (),
- "PySide2.QtGui.QAccessibleTextSelectionEvent.selectionStart": (),
- "PySide2.QtGui.QAccessibleTextSelectionEvent.setSelection": ('int', 'int'),
-# class PySide2.QtGui.QAccessibleTextUpdateEvent:
- "PySide2.QtGui.QAccessibleTextUpdateEvent.__init__": [('PySide2.QtCore.QObject', 'int', 'str', 'str'), ('PySide2.QtGui.QAccessibleInterface', 'int', 'str', 'str')],
- "PySide2.QtGui.QAccessibleTextUpdateEvent.changePosition": (),
- "PySide2.QtGui.QAccessibleTextUpdateEvent.textInserted": (),
- "PySide2.QtGui.QAccessibleTextUpdateEvent.textRemoved": (),
-# class PySide2.QtGui.QAccessibleValueChangeEvent:
- "PySide2.QtGui.QAccessibleValueChangeEvent.__init__": [('PySide2.QtCore.QObject', 'typing.Any'), ('PySide2.QtGui.QAccessibleInterface', 'typing.Any')],
- "PySide2.QtGui.QAccessibleValueChangeEvent.setValue": ('typing.Any',),
- "PySide2.QtGui.QAccessibleValueChangeEvent.value": (),
-# class PySide2.QtGui.QAccessibleValueInterface:
- "PySide2.QtGui.QAccessibleValueInterface.__init__": (),
- "PySide2.QtGui.QAccessibleValueInterface.currentValue": (),
- "PySide2.QtGui.QAccessibleValueInterface.maximumValue": (),
- "PySide2.QtGui.QAccessibleValueInterface.minimumStepSize": (),
- "PySide2.QtGui.QAccessibleValueInterface.minimumValue": (),
- "PySide2.QtGui.QAccessibleValueInterface.setCurrentValue": ('typing.Any',),
-# class PySide2.QtGui.QActionEvent:
-# class PySide2.QtGui.QBackingStore:
- "PySide2.QtGui.QBackingStore.__init__": ('PySide2.QtGui.QWindow',),
- "PySide2.QtGui.QBackingStore.beginPaint": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QBackingStore.endPaint": (),
- "PySide2.QtGui.QBackingStore.flush": ('PySide2.QtGui.QRegion', 'PySide2.QtGui.QWindow', 'PySide2.QtCore.QPoint'),
- "PySide2.QtGui.QBackingStore.hasStaticContents": (),
- "PySide2.QtGui.QBackingStore.paintDevice": (),
- "PySide2.QtGui.QBackingStore.resize": ('PySide2.QtCore.QSize',),
- "PySide2.QtGui.QBackingStore.scroll": ('PySide2.QtGui.QRegion', 'int', 'int'),
- "PySide2.QtGui.QBackingStore.setStaticContents": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QBackingStore.size": (),
- "PySide2.QtGui.QBackingStore.staticContents": (),
- "PySide2.QtGui.QBackingStore.window": (),
-# class PySide2.QtGui.QBitmap:
- "PySide2.QtGui.QBitmap.__init__": [(), ('PySide2.QtCore.QSize',), ('PySide2.QtGui.QBitmap',), ('PySide2.QtGui.QPixmap',), ('int', 'int'), ('str', 'str')],
- "PySide2.QtGui.QBitmap.__copy__": (),
- "PySide2.QtGui.QBitmap.clear": (),
- "PySide2.QtGui.QBitmap.fromData": ('PySide2.QtCore.QSize', 'str', 'PySide2.QtGui.QImage.Format'),
- "PySide2.QtGui.QBitmap.fromImage": ('PySide2.QtGui.QImage', 'PySide2.QtCore.Qt.ImageConversionFlags'),
- "PySide2.QtGui.QBitmap.swap": [('PySide2.QtGui.QBitmap',), ('PySide2.QtGui.QPixmap',)],
- "PySide2.QtGui.QBitmap.transformed": [('PySide2.QtGui.QMatrix',), ('PySide2.QtGui.QMatrix', 'PySide2.QtCore.Qt.TransformationMode'), ('PySide2.QtGui.QTransform',)],
-# class PySide2.QtGui.QBrush:
- "PySide2.QtGui.QBrush.__init__": [(), ('PySide2.QtCore.Qt.BrushStyle',), ('PySide2.QtCore.Qt.GlobalColor', 'PySide2.QtCore.Qt.BrushStyle'), ('PySide2.QtCore.Qt.GlobalColor', 'PySide2.QtGui.QPixmap'), ('PySide2.QtGui.QBrush',), ('PySide2.QtGui.QColor', 'PySide2.QtCore.Qt.BrushStyle'), ('PySide2.QtGui.QColor', 'PySide2.QtGui.QPixmap'), ('PySide2.QtGui.QGradient',), ('PySide2.QtGui.QImage',), ('PySide2.QtGui.QPixmap',)],
- "PySide2.QtGui.QBrush.__copy__": (),
- "PySide2.QtGui.QBrush.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QBrush.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QBrush.color": (),
- "PySide2.QtGui.QBrush.gradient": (),
- "PySide2.QtGui.QBrush.isOpaque": (),
- "PySide2.QtGui.QBrush.matrix": (),
- "PySide2.QtGui.QBrush.setColor": [('PySide2.QtCore.Qt.GlobalColor',), ('PySide2.QtGui.QColor',)],
- "PySide2.QtGui.QBrush.setMatrix": ('PySide2.QtGui.QMatrix',),
- "PySide2.QtGui.QBrush.setStyle": ('PySide2.QtCore.Qt.BrushStyle',),
- "PySide2.QtGui.QBrush.setTexture": ('PySide2.QtGui.QPixmap',),
- "PySide2.QtGui.QBrush.setTextureImage": ('PySide2.QtGui.QImage',),
- "PySide2.QtGui.QBrush.setTransform": ('PySide2.QtGui.QTransform',),
- "PySide2.QtGui.QBrush.style": (),
- "PySide2.QtGui.QBrush.swap": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QBrush.texture": (),
- "PySide2.QtGui.QBrush.textureImage": (),
- "PySide2.QtGui.QBrush.transform": (),
-# class PySide2.QtGui.QClipboard:
-# class PySide2.QtGui.QClipboard.Mode:
- "PySide2.QtGui.QClipboard.clear": ('PySide2.QtGui.QClipboard.Mode',),
- "PySide2.QtGui.QClipboard.image": ('PySide2.QtGui.QClipboard.Mode',),
- "PySide2.QtGui.QClipboard.mimeData": ('PySide2.QtGui.QClipboard.Mode',),
- "PySide2.QtGui.QClipboard.ownsClipboard": (),
- "PySide2.QtGui.QClipboard.ownsFindBuffer": (),
- "PySide2.QtGui.QClipboard.ownsSelection": (),
- "PySide2.QtGui.QClipboard.pixmap": ('PySide2.QtGui.QClipboard.Mode',),
- "PySide2.QtGui.QClipboard.setImage": ('PySide2.QtGui.QImage', 'PySide2.QtGui.QClipboard.Mode'),
- "PySide2.QtGui.QClipboard.setMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtGui.QClipboard.Mode'),
- "PySide2.QtGui.QClipboard.setPixmap": ('PySide2.QtGui.QPixmap', 'PySide2.QtGui.QClipboard.Mode'),
- "PySide2.QtGui.QClipboard.setText": ('str', 'PySide2.QtGui.QClipboard.Mode'),
- "PySide2.QtGui.QClipboard.supportsFindBuffer": (),
- "PySide2.QtGui.QClipboard.supportsSelection": (),
- "PySide2.QtGui.QClipboard.text": [('PySide2.QtGui.QClipboard.Mode',), ('str', 'PySide2.QtGui.QClipboard.Mode')],
-# class PySide2.QtGui.QCloseEvent:
- "PySide2.QtGui.QCloseEvent.__init__": (),
-# class PySide2.QtGui.QColor:
-# class PySide2.QtGui.QColor.NameFormat:
-# class PySide2.QtGui.QColor.Spec:
- "PySide2.QtGui.QColor.__init__": [(), ('PySide2.QtCore.Qt.GlobalColor',), ('PySide2.QtGui.QColor',), ('PySide2.QtGui.QColor.Spec', 'int', 'int', 'int', 'int', 'int'), ('int',), ('int', 'int', 'int', 'int'), ('str',), ('typing.Any',)],
- "PySide2.QtGui.QColor.__copy__": (),
- "PySide2.QtGui.QColor.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QColor.__reduce__": (),
- "PySide2.QtGui.QColor.__repr__": (),
- "PySide2.QtGui.QColor.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QColor.__setstate__": ('object',),
- "PySide2.QtGui.QColor.__str__": (),
- "PySide2.QtGui.QColor.alpha": (),
- "PySide2.QtGui.QColor.alphaF": (),
- "PySide2.QtGui.QColor.black": (),
- "PySide2.QtGui.QColor.blackF": (),
- "PySide2.QtGui.QColor.blue": (),
- "PySide2.QtGui.QColor.blueF": (),
- "PySide2.QtGui.QColor.colorNames": (),
- "PySide2.QtGui.QColor.convertTo": ('PySide2.QtGui.QColor.Spec',),
- "PySide2.QtGui.QColor.cyan": (),
- "PySide2.QtGui.QColor.cyanF": (),
- "PySide2.QtGui.QColor.dark": ('int',),
- "PySide2.QtGui.QColor.darker": ('int',),
- "PySide2.QtGui.QColor.fromCmyk": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QColor.fromCmykF": ('float', 'float', 'float', 'float', 'float'),
- "PySide2.QtGui.QColor.fromHsl": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QColor.fromHslF": ('float', 'float', 'float', 'float'),
- "PySide2.QtGui.QColor.fromHsv": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QColor.fromHsvF": ('float', 'float', 'float', 'float'),
- "PySide2.QtGui.QColor.fromRgb": [('int',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QColor.fromRgbF": ('float', 'float', 'float', 'float'),
- "PySide2.QtGui.QColor.fromRgba": ('int',),
- "PySide2.QtGui.QColor.fromRgba64": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QColor.getCmyk": (),
- "PySide2.QtGui.QColor.getCmykF": (),
- "PySide2.QtGui.QColor.getHsl": (),
- "PySide2.QtGui.QColor.getHslF": (),
- "PySide2.QtGui.QColor.getHsv": (),
- "PySide2.QtGui.QColor.getHsvF": (),
- "PySide2.QtGui.QColor.getRgb": (),
- "PySide2.QtGui.QColor.getRgbF": (),
- "PySide2.QtGui.QColor.green": (),
- "PySide2.QtGui.QColor.greenF": (),
- "PySide2.QtGui.QColor.hslHue": (),
- "PySide2.QtGui.QColor.hslHueF": (),
- "PySide2.QtGui.QColor.hslSaturation": (),
- "PySide2.QtGui.QColor.hslSaturationF": (),
- "PySide2.QtGui.QColor.hsvHue": (),
- "PySide2.QtGui.QColor.hsvHueF": (),
- "PySide2.QtGui.QColor.hsvSaturation": (),
- "PySide2.QtGui.QColor.hsvSaturationF": (),
- "PySide2.QtGui.QColor.hue": (),
- "PySide2.QtGui.QColor.hueF": (),
- "PySide2.QtGui.QColor.isValid": (),
- "PySide2.QtGui.QColor.isValidColor": ('str',),
- "PySide2.QtGui.QColor.light": ('int',),
- "PySide2.QtGui.QColor.lighter": ('int',),
- "PySide2.QtGui.QColor.lightness": (),
- "PySide2.QtGui.QColor.lightnessF": (),
- "PySide2.QtGui.QColor.magenta": (),
- "PySide2.QtGui.QColor.magentaF": (),
- "PySide2.QtGui.QColor.name": [(), ('PySide2.QtGui.QColor.NameFormat',)],
- "PySide2.QtGui.QColor.red": (),
- "PySide2.QtGui.QColor.redF": (),
- "PySide2.QtGui.QColor.rgb": (),
- "PySide2.QtGui.QColor.rgba": (),
- "PySide2.QtGui.QColor.saturation": (),
- "PySide2.QtGui.QColor.saturationF": (),
- "PySide2.QtGui.QColor.setAlpha": ('int',),
- "PySide2.QtGui.QColor.setAlphaF": ('float',),
- "PySide2.QtGui.QColor.setBlue": ('int',),
- "PySide2.QtGui.QColor.setBlueF": ('float',),
- "PySide2.QtGui.QColor.setCmyk": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QColor.setCmykF": ('float', 'float', 'float', 'float', 'float'),
- "PySide2.QtGui.QColor.setGreen": ('int',),
- "PySide2.QtGui.QColor.setGreenF": ('float',),
- "PySide2.QtGui.QColor.setHsl": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QColor.setHslF": ('float', 'float', 'float', 'float'),
- "PySide2.QtGui.QColor.setHsv": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QColor.setHsvF": ('float', 'float', 'float', 'float'),
- "PySide2.QtGui.QColor.setNamedColor": ('str',),
- "PySide2.QtGui.QColor.setRed": ('int',),
- "PySide2.QtGui.QColor.setRedF": ('float',),
- "PySide2.QtGui.QColor.setRgb": [('int',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QColor.setRgbF": ('float', 'float', 'float', 'float'),
- "PySide2.QtGui.QColor.setRgba": ('int',),
- "PySide2.QtGui.QColor.spec": (),
- "PySide2.QtGui.QColor.toCmyk": (),
- "PySide2.QtGui.QColor.toExtendedRgb": (),
- "PySide2.QtGui.QColor.toHsl": (),
- "PySide2.QtGui.QColor.toHsv": (),
- "PySide2.QtGui.QColor.toRgb": (),
- "PySide2.QtGui.QColor.toTuple": (),
- "PySide2.QtGui.QColor.value": (),
- "PySide2.QtGui.QColor.valueF": (),
- "PySide2.QtGui.QColor.yellow": (),
- "PySide2.QtGui.QColor.yellowF": (),
-# class PySide2.QtGui.QColorSpace:
-# class PySide2.QtGui.QColorSpace.NamedColorSpace:
-# class PySide2.QtGui.QColorSpace.Primaries:
-# class PySide2.QtGui.QColorSpace.TransferFunction:
- "PySide2.QtGui.QColorSpace.__init__": [(), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtGui.QColorSpace.TransferFunction', 'float'), ('PySide2.QtGui.QColorSpace',), ('PySide2.QtGui.QColorSpace.NamedColorSpace',), ('PySide2.QtGui.QColorSpace.Primaries', 'PySide2.QtGui.QColorSpace.TransferFunction', 'float'), ('PySide2.QtGui.QColorSpace.Primaries', 'float')],
- "PySide2.QtGui.QColorSpace.__copy__": (),
- "PySide2.QtGui.QColorSpace.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QColorSpace.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QColorSpace.fromIccProfile": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QColorSpace.gamma": (),
- "PySide2.QtGui.QColorSpace.iccProfile": (),
- "PySide2.QtGui.QColorSpace.isValid": (),
- "PySide2.QtGui.QColorSpace.primaries": (),
- "PySide2.QtGui.QColorSpace.setPrimaries": [('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'), ('PySide2.QtGui.QColorSpace.Primaries',)],
- "PySide2.QtGui.QColorSpace.setTransferFunction": ('PySide2.QtGui.QColorSpace.TransferFunction', 'float'),
- "PySide2.QtGui.QColorSpace.swap": ('PySide2.QtGui.QColorSpace',),
- "PySide2.QtGui.QColorSpace.transferFunction": (),
- "PySide2.QtGui.QColorSpace.withTransferFunction": ('PySide2.QtGui.QColorSpace.TransferFunction', 'float'),
-# class PySide2.QtGui.QConicalGradient:
- "PySide2.QtGui.QConicalGradient.__init__": [(), ('PySide2.QtCore.QPointF', 'float'), ('PySide2.QtGui.QConicalGradient',), ('float', 'float', 'float')],
- "PySide2.QtGui.QConicalGradient.__copy__": (),
- "PySide2.QtGui.QConicalGradient.angle": (),
- "PySide2.QtGui.QConicalGradient.center": (),
- "PySide2.QtGui.QConicalGradient.setAngle": ('float',),
- "PySide2.QtGui.QConicalGradient.setCenter": [('PySide2.QtCore.QPointF',), ('float', 'float')],
-# class PySide2.QtGui.QContextMenuEvent:
-# class PySide2.QtGui.QContextMenuEvent.Reason:
- "PySide2.QtGui.QContextMenuEvent.__init__": [('PySide2.QtGui.QContextMenuEvent.Reason', 'PySide2.QtCore.QPoint'), ('PySide2.QtGui.QContextMenuEvent.Reason', 'PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint'), ('PySide2.QtGui.QContextMenuEvent.Reason', 'PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint', 'PySide2.QtCore.Qt.KeyboardModifiers')],
- "PySide2.QtGui.QContextMenuEvent.globalPos": (),
- "PySide2.QtGui.QContextMenuEvent.globalX": (),
- "PySide2.QtGui.QContextMenuEvent.global""Y": (),
- "PySide2.QtGui.QContextMenuEvent.pos": (),
- "PySide2.QtGui.QContextMenuEvent.reason": (),
- "PySide2.QtGui.QContextMenuEvent.x": (),
- "PySide2.QtGui.QContextMenuEvent.y": (),
-# class PySide2.QtGui.QCursor:
- "PySide2.QtGui.QCursor.__init__": [(), ('PySide2.QtCore.Qt.CursorShape',), ('PySide2.QtGui.QBitmap', 'PySide2.QtGui.QBitmap', 'int', 'int'), ('PySide2.QtGui.QCursor',), ('PySide2.QtGui.QPixmap', 'int', 'int')],
- "PySide2.QtGui.QCursor.__copy__": (),
- "PySide2.QtGui.QCursor.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QCursor.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QCursor.bitmap": (),
- "PySide2.QtGui.QCursor.hotSpot": (),
- "PySide2.QtGui.QCursor.mask": (),
- "PySide2.QtGui.QCursor.pixmap": (),
- "PySide2.QtGui.QCursor.pos": [(), ('PySide2.QtGui.QScreen',)],
- "PySide2.QtGui.QCursor.setPos": [('PySide2.QtCore.QPoint',), ('PySide2.QtGui.QScreen', 'PySide2.QtCore.QPoint'), ('PySide2.QtGui.QScreen', 'int', 'int'), ('int', 'int')],
- "PySide2.QtGui.QCursor.setShape": ('PySide2.QtCore.Qt.CursorShape',),
- "PySide2.QtGui.QCursor.shape": (),
- "PySide2.QtGui.QCursor.swap": ('PySide2.QtGui.QCursor',),
-# class PySide2.QtGui.QDesktopServices:
- "PySide2.QtGui.QDesktopServices.__init__": (),
- "PySide2.QtGui.QDesktopServices.openUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtGui.QDesktopServices.setUrlHandler": ('str', 'PySide2.QtCore.QObject', 'str'),
- "PySide2.QtGui.QDesktopServices.unsetUrlHandler": ('str',),
-# class PySide2.QtGui.QDoubleValidator:
-# class PySide2.QtGui.QDoubleValidator.Notation:
- "PySide2.QtGui.QDoubleValidator.__init__": [('PySide2.QtCore.QObject',), ('float', 'float', 'int', 'PySide2.QtCore.QObject')],
- "PySide2.QtGui.QDoubleValidator.bottom": (),
- "PySide2.QtGui.QDoubleValidator.decimals": (),
- "PySide2.QtGui.QDoubleValidator.notation": (),
- "PySide2.QtGui.QDoubleValidator.setBottom": ('float',),
- "PySide2.QtGui.QDoubleValidator.setDecimals": ('int',),
- "PySide2.QtGui.QDoubleValidator.setNotation": ('PySide2.QtGui.QDoubleValidator.Notation',),
- "PySide2.QtGui.QDoubleValidator.setRange": ('float', 'float', 'int'),
- "PySide2.QtGui.QDoubleValidator.setTop": ('float',),
- "PySide2.QtGui.QDoubleValidator.top": (),
- "PySide2.QtGui.QDoubleValidator.validate": ('str', 'int'),
-# class PySide2.QtGui.QDrag:
- "PySide2.QtGui.QDrag.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QDrag.cancel": (),
- "PySide2.QtGui.QDrag.defaultAction": (),
- "PySide2.QtGui.QDrag.dragCursor": ('PySide2.QtCore.Qt.DropAction',),
- "PySide2.QtGui.QDrag.exec_": [('PySide2.QtCore.Qt.DropActions',), ('PySide2.QtCore.Qt.DropActions', 'PySide2.QtCore.Qt.DropAction')],
- "PySide2.QtGui.QDrag.hotSpot": (),
- "PySide2.QtGui.QDrag.mimeData": (),
- "PySide2.QtGui.QDrag.pixmap": (),
- "PySide2.QtGui.QDrag.setDragCursor": ('PySide2.QtGui.QPixmap', 'PySide2.QtCore.Qt.DropAction'),
- "PySide2.QtGui.QDrag.setHotSpot": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QDrag.setMimeData": ('PySide2.QtCore.QMimeData',),
- "PySide2.QtGui.QDrag.setPixmap": ('PySide2.QtGui.QPixmap',),
- "PySide2.QtGui.QDrag.source": (),
- "PySide2.QtGui.QDrag.start": ('PySide2.QtCore.Qt.DropActions',),
- "PySide2.QtGui.QDrag.supportedActions": (),
- "PySide2.QtGui.QDrag.target": (),
-# class PySide2.QtGui.QDragEnterEvent:
- "PySide2.QtGui.QDragEnterEvent.__init__": ('PySide2.QtCore.QPoint', 'PySide2.QtCore.Qt.DropActions', 'PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers'),
-# class PySide2.QtGui.QDragLeaveEvent:
- "PySide2.QtGui.QDragLeaveEvent.__init__": (),
-# class PySide2.QtGui.QDragMoveEvent:
- "PySide2.QtGui.QDragMoveEvent.__init__": ('PySide2.QtCore.QPoint', 'PySide2.QtCore.Qt.DropActions', 'PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QEvent.Type'),
- "PySide2.QtGui.QDragMoveEvent.accept": [(), ('PySide2.QtCore.QRect',)],
- "PySide2.QtGui.QDragMoveEvent.answerRect": (),
- "PySide2.QtGui.QDragMoveEvent.ignore": [(), ('PySide2.QtCore.QRect',)],
-# class PySide2.QtGui.QDropEvent:
- "PySide2.QtGui.QDropEvent.__init__": ('PySide2.QtCore.QPointF', 'PySide2.QtCore.Qt.DropActions', 'PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QEvent.Type'),
- "PySide2.QtGui.QDropEvent.acceptProposedAction": (),
- "PySide2.QtGui.QDropEvent.dropAction": (),
- "PySide2.QtGui.QDropEvent.keyboardModifiers": (),
- "PySide2.QtGui.QDropEvent.mimeData": (),
- "PySide2.QtGui.QDropEvent.mouseButtons": (),
- "PySide2.QtGui.QDropEvent.pos": (),
- "PySide2.QtGui.QDropEvent.posF": (),
- "PySide2.QtGui.QDropEvent.possibleActions": (),
- "PySide2.QtGui.QDropEvent.proposedAction": (),
- "PySide2.QtGui.QDropEvent.setDropAction": ('PySide2.QtCore.Qt.DropAction',),
- "PySide2.QtGui.QDropEvent.source": (),
-# class PySide2.QtGui.QEnterEvent:
- "PySide2.QtGui.QEnterEvent.__init__": ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'),
- "PySide2.QtGui.QEnterEvent.globalPos": (),
- "PySide2.QtGui.QEnterEvent.globalX": (),
- "PySide2.QtGui.QEnterEvent.global""Y": (),
- "PySide2.QtGui.QEnterEvent.localPos": (),
- "PySide2.QtGui.QEnterEvent.pos": (),
- "PySide2.QtGui.QEnterEvent.screenPos": (),
- "PySide2.QtGui.QEnterEvent.windowPos": (),
- "PySide2.QtGui.QEnterEvent.x": (),
- "PySide2.QtGui.QEnterEvent.y": (),
-# class PySide2.QtGui.QExposeEvent:
- "PySide2.QtGui.QExposeEvent.__init__": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QExposeEvent.region": (),
-# class PySide2.QtGui.QFileOpenEvent:
- "PySide2.QtGui.QFileOpenEvent.__init__": [('PySide2.QtCore.QUrl',), ('str',)],
- "PySide2.QtGui.QFileOpenEvent.file": (),
- "PySide2.QtGui.QFileOpenEvent.openFile": ('PySide2.QtCore.QFile', 'PySide2.QtCore.QIODevice.OpenMode'),
- "PySide2.QtGui.QFileOpenEvent.url": (),
-# class PySide2.QtGui.QFocusEvent:
- "PySide2.QtGui.QFocusEvent.__init__": ('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.Qt.FocusReason'),
- "PySide2.QtGui.QFocusEvent.gotFocus": (),
- "PySide2.QtGui.QFocusEvent.lostFocus": (),
- "PySide2.QtGui.QFocusEvent.reason": (),
-# class PySide2.QtGui.QFont:
-# class PySide2.QtGui.QFont.Capitalization:
-# class PySide2.QtGui.QFont.HintingPreference:
-# class PySide2.QtGui.QFont.SpacingType:
-# class PySide2.QtGui.QFont.Stretch:
-# class PySide2.QtGui.QFont.Style:
-# class PySide2.QtGui.QFont.StyleHint:
-# class PySide2.QtGui.QFont.StyleStrategy:
-# class PySide2.QtGui.QFont.Weight:
- "PySide2.QtGui.QFont.__init__": [(), ('PySide2.QtGui.QFont',), ('PySide2.QtGui.QFont', 'PySide2.QtGui.QPaintDevice'), ('str', 'int', 'int', 'bool')],
- "PySide2.QtGui.QFont.__copy__": (),
- "PySide2.QtGui.QFont.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QFont.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QFont.bold": (),
- "PySide2.QtGui.QFont.cacheStatistics": (),
- "PySide2.QtGui.QFont.capitalization": (),
- "PySide2.QtGui.QFont.cleanup": (),
- "PySide2.QtGui.QFont.defaultFamily": (),
- "PySide2.QtGui.QFont.exactMatch": (),
- "PySide2.QtGui.QFont.families": (),
- "PySide2.QtGui.QFont.family": (),
- "PySide2.QtGui.QFont.fixedPitch": (),
- "PySide2.QtGui.QFont.fromString": ('str',),
- "PySide2.QtGui.QFont.hintingPreference": (),
- "PySide2.QtGui.QFont.initialize": (),
- "PySide2.QtGui.QFont.insertSubstitution": ('str', 'str'),
- "PySide2.QtGui.QFont.insertSubstitutions": ('str', 'typing.Sequence[str]'),
- "PySide2.QtGui.QFont.isCopyOf": ('PySide2.QtGui.QFont',),
- "PySide2.QtGui.QFont.italic": (),
- "PySide2.QtGui.QFont.kerning": (),
- "PySide2.QtGui.QFont.key": (),
- "PySide2.QtGui.QFont.lastResortFamily": (),
- "PySide2.QtGui.QFont.lastResortFont": (),
- "PySide2.QtGui.QFont.letterSpacing": (),
- "PySide2.QtGui.QFont.letterSpacingType": (),
- "PySide2.QtGui.QFont.overline": (),
- "PySide2.QtGui.QFont.pixelSize": (),
- "PySide2.QtGui.QFont.pointSize": (),
- "PySide2.QtGui.QFont.pointSizeF": (),
- "PySide2.QtGui.QFont.rawMode": (),
- "PySide2.QtGui.QFont.rawName": (),
- "PySide2.QtGui.QFont.removeSubstitutions": ('str',),
- "PySide2.QtGui.QFont.resolve": [(), ('PySide2.QtGui.QFont',), ('int',)],
- "PySide2.QtGui.QFont.setBold": ('bool',),
- "PySide2.QtGui.QFont.setCapitalization": ('PySide2.QtGui.QFont.Capitalization',),
- "PySide2.QtGui.QFont.setFamilies": ('typing.Sequence[str]',),
- "PySide2.QtGui.QFont.setFamily": ('str',),
- "PySide2.QtGui.QFont.setFixedPitch": ('bool',),
- "PySide2.QtGui.QFont.setHintingPreference": ('PySide2.QtGui.QFont.HintingPreference',),
- "PySide2.QtGui.QFont.setItalic": ('bool',),
- "PySide2.QtGui.QFont.setKerning": ('bool',),
- "PySide2.QtGui.QFont.setLetterSpacing": ('PySide2.QtGui.QFont.SpacingType', 'float'),
- "PySide2.QtGui.QFont.setOverline": ('bool',),
- "PySide2.QtGui.QFont.setPixelSize": ('int',),
- "PySide2.QtGui.QFont.setPointSize": ('int',),
- "PySide2.QtGui.QFont.setPointSizeF": ('float',),
- "PySide2.QtGui.QFont.setRawMode": ('bool',),
- "PySide2.QtGui.QFont.setRawName": ('str',),
- "PySide2.QtGui.QFont.setStretch": ('int',),
- "PySide2.QtGui.QFont.setStrikeOut": ('bool',),
- "PySide2.QtGui.QFont.setStyle": ('PySide2.QtGui.QFont.Style',),
- "PySide2.QtGui.QFont.setStyleHint": ('PySide2.QtGui.QFont.StyleHint', 'PySide2.QtGui.QFont.StyleStrategy'),
- "PySide2.QtGui.QFont.setStyleName": ('str',),
- "PySide2.QtGui.QFont.setStyleStrategy": ('PySide2.QtGui.QFont.StyleStrategy',),
- "PySide2.QtGui.QFont.setUnderline": ('bool',),
- "PySide2.QtGui.QFont.setWeight": ('int',),
- "PySide2.QtGui.QFont.setWordSpacing": ('float',),
- "PySide2.QtGui.QFont.stretch": (),
- "PySide2.QtGui.QFont.strikeOut": (),
- "PySide2.QtGui.QFont.style": (),
- "PySide2.QtGui.QFont.styleHint": (),
- "PySide2.QtGui.QFont.styleName": (),
- "PySide2.QtGui.QFont.styleStrategy": (),
- "PySide2.QtGui.QFont.substitute": ('str',),
- "PySide2.QtGui.QFont.substitutes": ('str',),
- "PySide2.QtGui.QFont.substitutions": (),
- "PySide2.QtGui.QFont.swap": ('PySide2.QtGui.QFont',),
- "PySide2.QtGui.QFont.toString": (),
- "PySide2.QtGui.QFont.underline": (),
- "PySide2.QtGui.QFont.weight": (),
- "PySide2.QtGui.QFont.wordSpacing": (),
-# class PySide2.QtGui.QFontDatabase:
-# class PySide2.QtGui.QFontDatabase.SystemFont:
-# class PySide2.QtGui.QFontDatabase.WritingSystem:
- "PySide2.QtGui.QFontDatabase.__init__": [(), ('PySide2.QtGui.QFontDatabase',)],
- "PySide2.QtGui.QFontDatabase.__copy__": (),
- "PySide2.QtGui.QFontDatabase.addApplicationFont": ('str',),
- "PySide2.QtGui.QFontDatabase.addApplicationFontFromData": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QFontDatabase.applicationFontFamilies": ('int',),
- "PySide2.QtGui.QFontDatabase.bold": ('str', 'str'),
- "PySide2.QtGui.QFontDatabase.families": ('PySide2.QtGui.QFontDatabase.WritingSystem',),
- "PySide2.QtGui.QFontDatabase.font": ('str', 'str', 'int'),
- "PySide2.QtGui.QFontDatabase.hasFamily": ('str',),
- "PySide2.QtGui.QFontDatabase.isBitmapScalable": ('str', 'str'),
- "PySide2.QtGui.QFontDatabase.isFixedPitch": ('str', 'str'),
- "PySide2.QtGui.QFontDatabase.isPrivateFamily": ('str',),
- "PySide2.QtGui.QFontDatabase.isScalable": ('str', 'str'),
- "PySide2.QtGui.QFontDatabase.isSmoothlyScalable": ('str', 'str'),
- "PySide2.QtGui.QFontDatabase.italic": ('str', 'str'),
- "PySide2.QtGui.QFontDatabase.pointSizes": ('str', 'str'),
- "PySide2.QtGui.QFontDatabase.removeAllApplicationFonts": (),
- "PySide2.QtGui.QFontDatabase.removeApplicationFont": ('int',),
- "PySide2.QtGui.QFontDatabase.smoothSizes": ('str', 'str'),
- "PySide2.QtGui.QFontDatabase.standardSizes": (),
- "PySide2.QtGui.QFontDatabase.styleString": [('PySide2.QtGui.QFont',), ('PySide2.QtGui.QFontInfo',)],
- "PySide2.QtGui.QFontDatabase.styles": ('str',),
- "PySide2.QtGui.QFontDatabase.supportsThreadedFontRendering": (),
- "PySide2.QtGui.QFontDatabase.systemFont": ('PySide2.QtGui.QFontDatabase.SystemFont',),
- "PySide2.QtGui.QFontDatabase.weight": ('str', 'str'),
- "PySide2.QtGui.QFontDatabase.writingSystemName": ('PySide2.QtGui.QFontDatabase.WritingSystem',),
- "PySide2.QtGui.QFontDatabase.writingSystemSample": ('PySide2.QtGui.QFontDatabase.WritingSystem',),
- "PySide2.QtGui.QFontDatabase.writingSystems": [(), ('str',)],
-# class PySide2.QtGui.QFontInfo:
- "PySide2.QtGui.QFontInfo.__init__": [('PySide2.QtGui.QFont',), ('PySide2.QtGui.QFontInfo',)],
- "PySide2.QtGui.QFontInfo.__copy__": (),
- "PySide2.QtGui.QFontInfo.bold": (),
- "PySide2.QtGui.QFontInfo.exactMatch": (),
- "PySide2.QtGui.QFontInfo.family": (),
- "PySide2.QtGui.QFontInfo.fixedPitch": (),
- "PySide2.QtGui.QFontInfo.italic": (),
- "PySide2.QtGui.QFontInfo.overline": (),
- "PySide2.QtGui.QFontInfo.pixelSize": (),
- "PySide2.QtGui.QFontInfo.pointSize": (),
- "PySide2.QtGui.QFontInfo.pointSizeF": (),
- "PySide2.QtGui.QFontInfo.rawMode": (),
- "PySide2.QtGui.QFontInfo.strikeOut": (),
- "PySide2.QtGui.QFontInfo.style": (),
- "PySide2.QtGui.QFontInfo.styleHint": (),
- "PySide2.QtGui.QFontInfo.styleName": (),
- "PySide2.QtGui.QFontInfo.swap": ('PySide2.QtGui.QFontInfo',),
- "PySide2.QtGui.QFontInfo.underline": (),
- "PySide2.QtGui.QFontInfo.weight": (),
-# class PySide2.QtGui.QFontMetrics:
- "PySide2.QtGui.QFontMetrics.__init__": [('PySide2.QtGui.QFont',), ('PySide2.QtGui.QFont', 'PySide2.QtGui.QPaintDevice'), ('PySide2.QtGui.QFontMetrics',)],
- "PySide2.QtGui.QFontMetrics.__copy__": (),
- "PySide2.QtGui.QFontMetrics.ascent": (),
- "PySide2.QtGui.QFontMetrics.averageCharWidth": (),
- "PySide2.QtGui.QFontMetrics.boundingRect": [('PySide2.QtCore.QRect', 'int', 'str', 'int', 'shibokensupport.typing27.Sequence'), ('int', 'int', 'int', 'int', 'int', 'str', 'int', 'shibokensupport.typing27.Sequence'), ('str',)],
- "PySide2.QtGui.QFontMetrics.boundingRectChar": ('str',),
- "PySide2.QtGui.QFontMetrics.capHeight": (),
- "PySide2.QtGui.QFontMetrics.charWidth": ('str', 'int'),
- "PySide2.QtGui.QFontMetrics.descent": (),
- "PySide2.QtGui.QFontMetrics.elidedText": ('str', 'PySide2.QtCore.Qt.TextElideMode', 'int', 'int'),
- "PySide2.QtGui.QFontMetrics.fontDpi": (),
- "PySide2.QtGui.QFontMetrics.height": (),
- "PySide2.QtGui.QFontMetrics.horizontalAdvance": [('str',), ('str', 'int')],
- "PySide2.QtGui.QFontMetrics.inFont": ('str',),
- "PySide2.QtGui.QFontMetrics.inFontUcs4": ('int',),
- "PySide2.QtGui.QFontMetrics.leading": (),
- "PySide2.QtGui.QFontMetrics.leftBearing": ('str',),
- "PySide2.QtGui.QFontMetrics.lineSpacing": (),
- "PySide2.QtGui.QFontMetrics.lineWidth": (),
- "PySide2.QtGui.QFontMetrics.maxWidth": (),
- "PySide2.QtGui.QFontMetrics.minLeftBearing": (),
- "PySide2.QtGui.QFontMetrics.minRightBearing": (),
- "PySide2.QtGui.QFontMetrics.overlinePos": (),
- "PySide2.QtGui.QFontMetrics.rightBearing": ('str',),
- "PySide2.QtGui.QFontMetrics.size": ('int', 'str', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QFontMetrics.strikeOutPos": (),
- "PySide2.QtGui.QFontMetrics.swap": ('PySide2.QtGui.QFontMetrics',),
- "PySide2.QtGui.QFontMetrics.tightBoundingRect": ('str',),
- "PySide2.QtGui.QFontMetrics.underlinePos": (),
- "PySide2.QtGui.QFontMetrics.width": [('str', 'int'), ('str', 'int', 'int')],
- "PySide2.QtGui.QFontMetrics.widthChar": ('str',),
- "PySide2.QtGui.QFontMetrics.xHeight": (),
-# class PySide2.QtGui.QFontMetricsF:
- "PySide2.QtGui.QFontMetricsF.__init__": [('PySide2.QtGui.QFont',), ('PySide2.QtGui.QFont', 'PySide2.QtGui.QPaintDevice'), ('PySide2.QtGui.QFontMetrics',), ('PySide2.QtGui.QFontMetricsF',)],
- "PySide2.QtGui.QFontMetricsF.__copy__": (),
- "PySide2.QtGui.QFontMetricsF.ascent": (),
- "PySide2.QtGui.QFontMetricsF.averageCharWidth": (),
- "PySide2.QtGui.QFontMetricsF.boundingRect": [('PySide2.QtCore.QRectF', 'int', 'str', 'int', 'shibokensupport.typing27.Sequence'), ('str',)],
- "PySide2.QtGui.QFontMetricsF.boundingRectChar": ('str',),
- "PySide2.QtGui.QFontMetricsF.capHeight": (),
- "PySide2.QtGui.QFontMetricsF.descent": (),
- "PySide2.QtGui.QFontMetricsF.elidedText": ('str', 'PySide2.QtCore.Qt.TextElideMode', 'float', 'int'),
- "PySide2.QtGui.QFontMetricsF.fontDpi": (),
- "PySide2.QtGui.QFontMetricsF.height": (),
- "PySide2.QtGui.QFontMetricsF.horizontalAdvance": [('str',), ('str', 'int')],
- "PySide2.QtGui.QFontMetricsF.inFont": ('str',),
- "PySide2.QtGui.QFontMetricsF.inFontUcs4": ('int',),
- "PySide2.QtGui.QFontMetricsF.leading": (),
- "PySide2.QtGui.QFontMetricsF.leftBearing": ('str',),
- "PySide2.QtGui.QFontMetricsF.lineSpacing": (),
- "PySide2.QtGui.QFontMetricsF.lineWidth": (),
- "PySide2.QtGui.QFontMetricsF.maxWidth": (),
- "PySide2.QtGui.QFontMetricsF.minLeftBearing": (),
- "PySide2.QtGui.QFontMetricsF.minRightBearing": (),
- "PySide2.QtGui.QFontMetricsF.overlinePos": (),
- "PySide2.QtGui.QFontMetricsF.rightBearing": ('str',),
- "PySide2.QtGui.QFontMetricsF.size": ('int', 'str', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QFontMetricsF.strikeOutPos": (),
- "PySide2.QtGui.QFontMetricsF.swap": ('PySide2.QtGui.QFontMetricsF',),
- "PySide2.QtGui.QFontMetricsF.tightBoundingRect": ('str',),
- "PySide2.QtGui.QFontMetricsF.underlinePos": (),
- "PySide2.QtGui.QFontMetricsF.width": ('str',),
- "PySide2.QtGui.QFontMetricsF.widthChar": ('str',),
- "PySide2.QtGui.QFontMetricsF.xHeight": (),
-# class PySide2.QtGui.QGradient:
-# class PySide2.QtGui.QGradient.CoordinateMode:
-# class PySide2.QtGui.QGradient.InterpolationMode:
-# class PySide2.QtGui.QGradient.Preset:
-# class PySide2.QtGui.QGradient.Spread:
-# class PySide2.QtGui.QGradient.Type:
- "PySide2.QtGui.QGradient.__init__": [(), ('PySide2.QtGui.QGradient',), ('PySide2.QtGui.QGradient.Preset',)],
- "PySide2.QtGui.QGradient.__copy__": (),
- "PySide2.QtGui.QGradient.coordinateMode": (),
- "PySide2.QtGui.QGradient.interpolationMode": (),
- "PySide2.QtGui.QGradient.setColorAt": ('float', 'PySide2.QtGui.QColor'),
- "PySide2.QtGui.QGradient.setCoordinateMode": ('PySide2.QtGui.QGradient.CoordinateMode',),
- "PySide2.QtGui.QGradient.setInterpolationMode": ('PySide2.QtGui.QGradient.InterpolationMode',),
- "PySide2.QtGui.QGradient.setSpread": ('PySide2.QtGui.QGradient.Spread',),
- "PySide2.QtGui.QGradient.setStops": ('typing.List[typing.Tuple]',),
- "PySide2.QtGui.QGradient.spread": (),
- "PySide2.QtGui.QGradient.stops": (),
- "PySide2.QtGui.QGradient.type": (),
-# class PySide2.QtGui.QGuiApplication:
- "PySide2.QtGui.QGuiApplication.__init__": [(), ('typing.Sequence[str]',)],
- "PySide2.QtGui.QGuiApplication.allWindows": (),
- "PySide2.QtGui.QGuiApplication.applicationDisplayName": (),
- "PySide2.QtGui.QGuiApplication.applicationState": (),
- "PySide2.QtGui.QGuiApplication.changeOverrideCursor": ('PySide2.QtGui.QCursor',),
- "PySide2.QtGui.QGuiApplication.clipboard": (),
- "PySide2.QtGui.QGuiApplication.desktopFileName": (),
- "PySide2.QtGui.QGuiApplication.desktopSettingsAware": (),
- "PySide2.QtGui.QGuiApplication.devicePixelRatio": (),
- "PySide2.QtGui.QGuiApplication.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtGui.QGuiApplication.exec_": (),
- "PySide2.QtGui.QGuiApplication.focusObject": (),
- "PySide2.QtGui.QGuiApplication.focusWindow": (),
- "PySide2.QtGui.QGuiApplication.font": (),
- "PySide2.QtGui.QGuiApplication.highDpiScaleFactorRoundingPolicy": (),
- "PySide2.QtGui.QGuiApplication.inputMethod": (),
- "PySide2.QtGui.QGuiApplication.isFallbackSessionManagementEnabled": (),
- "PySide2.QtGui.QGuiApplication.isLeftToRight": (),
- "PySide2.QtGui.QGuiApplication.isRightToLeft": (),
- "PySide2.QtGui.QGuiApplication.isSavingSession": (),
- "PySide2.QtGui.QGuiApplication.isSessionRestored": (),
- "PySide2.QtGui.QGuiApplication.keyboardModifiers": (),
- "PySide2.QtGui.QGuiApplication.layoutDirection": (),
- "PySide2.QtGui.QGuiApplication.modalWindow": (),
- "PySide2.QtGui.QGuiApplication.mouseButtons": (),
- "PySide2.QtGui.QGuiApplication.notify": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtGui.QGuiApplication.overrideCursor": (),
- "PySide2.QtGui.QGuiApplication.palette": (),
- "PySide2.QtGui.QGuiApplication.platformName": (),
- "PySide2.QtGui.QGuiApplication.primaryScreen": (),
- "PySide2.QtGui.QGuiApplication.queryKeyboardModifiers": (),
- "PySide2.QtGui.QGuiApplication.quitOnLastWindowClosed": (),
- "PySide2.QtGui.QGuiApplication.restoreOverrideCursor": (),
- "PySide2.QtGui.QGuiApplication.screenAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QGuiApplication.screens": (),
- "PySide2.QtGui.QGuiApplication.sessionId": (),
- "PySide2.QtGui.QGuiApplication.sessionKey": (),
- "PySide2.QtGui.QGuiApplication.setApplicationDisplayName": ('str',),
- "PySide2.QtGui.QGuiApplication.setDesktopFileName": ('str',),
- "PySide2.QtGui.QGuiApplication.setDesktopSettingsAware": ('bool',),
- "PySide2.QtGui.QGuiApplication.setFallbackSessionManagementEnabled": ('bool',),
- "PySide2.QtGui.QGuiApplication.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtGui.QGuiApplication.setHighDpiScaleFactorRoundingPolicy": ('PySide2.QtCore.Qt.HighDpiScaleFactorRoundingPolicy',),
- "PySide2.QtGui.QGuiApplication.setLayoutDirection": ('PySide2.QtCore.Qt.LayoutDirection',),
- "PySide2.QtGui.QGuiApplication.setOverrideCursor": ('PySide2.QtGui.QCursor',),
- "PySide2.QtGui.QGuiApplication.setPalette": ('PySide2.QtGui.QPalette',),
- "PySide2.QtGui.QGuiApplication.setQuitOnLastWindowClosed": ('bool',),
- "PySide2.QtGui.QGuiApplication.setWindowIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtGui.QGuiApplication.styleHints": (),
- "PySide2.QtGui.QGuiApplication.sync": (),
- "PySide2.QtGui.QGuiApplication.topLevelAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QGuiApplication.topLevelWindows": (),
- "PySide2.QtGui.QGuiApplication.windowIcon": (),
-# class PySide2.QtGui.QHelpEvent:
- "PySide2.QtGui.QHelpEvent.__init__": ('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint'),
- "PySide2.QtGui.QHelpEvent.globalPos": (),
- "PySide2.QtGui.QHelpEvent.globalX": (),
- "PySide2.QtGui.QHelpEvent.global""Y": (),
- "PySide2.QtGui.QHelpEvent.pos": (),
- "PySide2.QtGui.QHelpEvent.x": (),
- "PySide2.QtGui.QHelpEvent.y": (),
-# class PySide2.QtGui.QHideEvent:
- "PySide2.QtGui.QHideEvent.__init__": (),
-# class PySide2.QtGui.QHoverEvent:
- "PySide2.QtGui.QHoverEvent.__init__": ('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.Qt.KeyboardModifiers'),
- "PySide2.QtGui.QHoverEvent.oldPos": (),
- "PySide2.QtGui.QHoverEvent.oldPosF": (),
- "PySide2.QtGui.QHoverEvent.pos": (),
- "PySide2.QtGui.QHoverEvent.posF": (),
-# class PySide2.QtGui.QIcon:
-# class PySide2.QtGui.QIcon.Mode:
-# class PySide2.QtGui.QIcon.State:
- "PySide2.QtGui.QIcon.__init__": [(), ('PySide2.QtGui.QIcon',), ('PySide2.QtGui.QIconEngine',), ('PySide2.QtGui.QPixmap',), ('str',)],
- "PySide2.QtGui.QIcon.__copy__": (),
- "PySide2.QtGui.QIcon.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QIcon.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QIcon.actualSize": [('PySide2.QtCore.QSize', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'), ('PySide2.QtGui.QWindow', 'PySide2.QtCore.QSize', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State')],
- "PySide2.QtGui.QIcon.addFile": ('str', 'PySide2.QtCore.QSize', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'),
- "PySide2.QtGui.QIcon.addPixmap": ('PySide2.QtGui.QPixmap', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'),
- "PySide2.QtGui.QIcon.availableSizes": ('PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'),
- "PySide2.QtGui.QIcon.cacheKey": (),
- "PySide2.QtGui.QIcon.fallbackSearchPaths": (),
- "PySide2.QtGui.QIcon.fallbackThemeName": (),
- "PySide2.QtGui.QIcon.fromTheme": [('str',), ('str', 'PySide2.QtGui.QIcon')],
- "PySide2.QtGui.QIcon.hasThemeIcon": ('str',),
- "PySide2.QtGui.QIcon.isMask": (),
- "PySide2.QtGui.QIcon.isNull": (),
- "PySide2.QtGui.QIcon.name": (),
- "PySide2.QtGui.QIcon.paint": [('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRect', 'PySide2.QtCore.Qt.Alignment', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'), ('PySide2.QtGui.QPainter', 'int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.Alignment', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State')],
- "PySide2.QtGui.QIcon.pixmap": [('PySide2.QtCore.QSize', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'), ('PySide2.QtGui.QWindow', 'PySide2.QtCore.QSize', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'), ('int', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'), ('int', 'int', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State')],
- "PySide2.QtGui.QIcon.setFallbackSearchPaths": ('typing.Sequence[str]',),
- "PySide2.QtGui.QIcon.setFallbackThemeName": ('str',),
- "PySide2.QtGui.QIcon.setIsMask": ('bool',),
- "PySide2.QtGui.QIcon.setThemeName": ('str',),
- "PySide2.QtGui.QIcon.setThemeSearchPaths": ('typing.Sequence[str]',),
- "PySide2.QtGui.QIcon.swap": ('PySide2.QtGui.QIcon',),
- "PySide2.QtGui.QIcon.themeName": (),
- "PySide2.QtGui.QIcon.themeSearchPaths": (),
-# class PySide2.QtGui.QIconDragEvent:
- "PySide2.QtGui.QIconDragEvent.__init__": (),
-# class PySide2.QtGui.QIconEngine:
-# class PySide2.QtGui.QIconEngine.AvailableSizesArgument:
- "PySide2.QtGui.QIconEngine.AvailableSizesArgument.__init__": (),
-# class PySide2.QtGui.QIconEngine.IconEngineHook:
- "PySide2.QtGui.QIconEngine.__init__": [(), ('PySide2.QtGui.QIconEngine',)],
- "PySide2.QtGui.QIconEngine.actualSize": ('PySide2.QtCore.QSize', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'),
- "PySide2.QtGui.QIconEngine.addFile": ('str', 'PySide2.QtCore.QSize', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'),
- "PySide2.QtGui.QIconEngine.addPixmap": ('PySide2.QtGui.QPixmap', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'),
- "PySide2.QtGui.QIconEngine.availableSizes": ('PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'),
- "PySide2.QtGui.QIconEngine.clone": (),
- "PySide2.QtGui.QIconEngine.iconName": (),
- "PySide2.QtGui.QIconEngine.isNull": (),
- "PySide2.QtGui.QIconEngine.key": (),
- "PySide2.QtGui.QIconEngine.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRect', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'),
- "PySide2.QtGui.QIconEngine.pixmap": ('PySide2.QtCore.QSize', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State'),
- "PySide2.QtGui.QIconEngine.read": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QIconEngine.scaledPixmap": ('PySide2.QtCore.QSize', 'PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QIcon.State', 'float'),
- "PySide2.QtGui.QIconEngine.write": ('PySide2.QtCore.QDataStream',),
-# class PySide2.QtGui.QImage:
-# class PySide2.QtGui.QImage.Format:
-# class PySide2.QtGui.QImage.InvertMode:
- "PySide2.QtGui.QImage.__init__": [(), ('PySide2.QtCore.QSize', 'PySide2.QtGui.QImage.Format'), ('PySide2.QtGui.QImage',), ('int', 'int', 'PySide2.QtGui.QImage.Format'), ('str', 'int', 'int', 'PySide2.QtGui.QImage.Format'), ('str', 'int', 'int', 'PySide2.QtGui.QImage.Format', 'typing.Callable', 'int'), ('str', 'int', 'int', 'int', 'PySide2.QtGui.QImage.Format'), ('str', 'int', 'int', 'int', 'PySide2.QtGui.QImage.Format', 'typing.Callable', 'int'), ('str', 'str'), ('typing.Sequence[str]',)],
- "PySide2.QtGui.QImage.__copy__": (),
- "PySide2.QtGui.QImage.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QImage.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QImage.allGray": (),
- "PySide2.QtGui.QImage.alphaChannel": (),
- "PySide2.QtGui.QImage.bitPlaneCount": (),
- "PySide2.QtGui.QImage.bits": (),
- "PySide2.QtGui.QImage.byteCount": (),
- "PySide2.QtGui.QImage.bytesPerLine": (),
- "PySide2.QtGui.QImage.cacheKey": (),
- "PySide2.QtGui.QImage.color": ('int',),
- "PySide2.QtGui.QImage.colorCount": (),
- "PySide2.QtGui.QImage.colorSpace": (),
- "PySide2.QtGui.QImage.colorTable": (),
- "PySide2.QtGui.QImage.constBits": (),
- "PySide2.QtGui.QImage.constScanLine": ('int',),
- "PySide2.QtGui.QImage.convertTo": ('PySide2.QtGui.QImage.Format', 'PySide2.QtCore.Qt.ImageConversionFlags'),
- "PySide2.QtGui.QImage.convertToColorSpace": ('PySide2.QtGui.QColorSpace',),
- "PySide2.QtGui.QImage.convertToFormat": [('PySide2.QtGui.QImage.Format', 'PySide2.QtCore.Qt.ImageConversionFlags'), ('PySide2.QtGui.QImage.Format', 'typing.List[int]', 'PySide2.QtCore.Qt.ImageConversionFlags')],
- "PySide2.QtGui.QImage.convertToFormat_helper": ('PySide2.QtGui.QImage.Format', 'PySide2.QtCore.Qt.ImageConversionFlags'),
- "PySide2.QtGui.QImage.convertToFormat_inplace": ('PySide2.QtGui.QImage.Format', 'PySide2.QtCore.Qt.ImageConversionFlags'),
- "PySide2.QtGui.QImage.convertedToColorSpace": ('PySide2.QtGui.QColorSpace',),
- "PySide2.QtGui.QImage.copy": [('PySide2.QtCore.QRect',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QImage.createAlphaMask": ('PySide2.QtCore.Qt.ImageConversionFlags',),
- "PySide2.QtGui.QImage.createHeuristicMask": ('bool',),
- "PySide2.QtGui.QImage.createMaskFromColor": ('int', 'PySide2.QtCore.Qt.MaskMode'),
- "PySide2.QtGui.QImage.depth": (),
- "PySide2.QtGui.QImage.devType": (),
- "PySide2.QtGui.QImage.devicePixelRatio": (),
- "PySide2.QtGui.QImage.dotsPerMeterX": (),
- "PySide2.QtGui.QImage.dotsPerMeterY": (),
- "PySide2.QtGui.QImage.fill": [('PySide2.QtCore.Qt.GlobalColor',), ('PySide2.QtGui.QColor',), ('int',)],
- "PySide2.QtGui.QImage.format": (),
- "PySide2.QtGui.QImage.fromData": ('PySide2.QtCore.QByteArray', 'str'),
- "PySide2.QtGui.QImage.hasAlphaChannel": (),
- "PySide2.QtGui.QImage.height": (),
- "PySide2.QtGui.QImage.invertPixels": ('PySide2.QtGui.QImage.InvertMode',),
- "PySide2.QtGui.QImage.isGrayscale": (),
- "PySide2.QtGui.QImage.isNull": (),
- "PySide2.QtGui.QImage.load": [('PySide2.QtCore.QIODevice', 'str'), ('str', 'str')],
- "PySide2.QtGui.QImage.loadFromData": ('PySide2.QtCore.QByteArray', 'str'),
- "PySide2.QtGui.QImage.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtGui.QImage.mirrored": ('bool', 'bool'),
- "PySide2.QtGui.QImage.mirrored_helper": ('bool', 'bool'),
- "PySide2.QtGui.QImage.mirrored_inplace": ('bool', 'bool'),
- "PySide2.QtGui.QImage.offset": (),
- "PySide2.QtGui.QImage.paintEngine": (),
- "PySide2.QtGui.QImage.pixel": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtGui.QImage.pixelColor": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtGui.QImage.pixelFormat": (),
- "PySide2.QtGui.QImage.pixelIndex": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtGui.QImage.rect": (),
- "PySide2.QtGui.QImage.reinterpretAsFormat": ('PySide2.QtGui.QImage.Format',),
- "PySide2.QtGui.QImage.rgbSwapped": (),
- "PySide2.QtGui.QImage.rgbSwapped_helper": (),
- "PySide2.QtGui.QImage.rgbSwapped_inplace": (),
- "PySide2.QtGui.QImage.save": [('PySide2.QtCore.QIODevice', 'str', 'int'), ('str', 'str', 'int')],
- "PySide2.QtGui.QImage.scaled": [('PySide2.QtCore.QSize', 'PySide2.QtCore.Qt.AspectRatioMode', 'PySide2.QtCore.Qt.TransformationMode'), ('int', 'int', 'PySide2.QtCore.Qt.AspectRatioMode', 'PySide2.QtCore.Qt.TransformationMode')],
- "PySide2.QtGui.QImage.scaledToHeight": ('int', 'PySide2.QtCore.Qt.TransformationMode'),
- "PySide2.QtGui.QImage.scaledToWidth": ('int', 'PySide2.QtCore.Qt.TransformationMode'),
- "PySide2.QtGui.QImage.scanLine": ('int',),
- "PySide2.QtGui.QImage.setAlphaChannel": ('PySide2.QtGui.QImage',),
- "PySide2.QtGui.QImage.setColor": ('int', 'int'),
- "PySide2.QtGui.QImage.setColorCount": ('int',),
- "PySide2.QtGui.QImage.setColorSpace": ('PySide2.QtGui.QColorSpace',),
- "PySide2.QtGui.QImage.setColorTable": ('typing.List[int]',),
- "PySide2.QtGui.QImage.setDevicePixelRatio": ('float',),
- "PySide2.QtGui.QImage.setDotsPerMeterX": ('int',),
- "PySide2.QtGui.QImage.setDotsPerMeterY": ('int',),
- "PySide2.QtGui.QImage.setOffset": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QImage.setPixel": [('PySide2.QtCore.QPoint', 'int'), ('int', 'int', 'int')],
- "PySide2.QtGui.QImage.setPixelColor": [('PySide2.QtCore.QPoint', 'PySide2.QtGui.QColor'), ('int', 'int', 'PySide2.QtGui.QColor')],
- "PySide2.QtGui.QImage.setText": ('str', 'str'),
- "PySide2.QtGui.QImage.size": (),
- "PySide2.QtGui.QImage.sizeInBytes": (),
- "PySide2.QtGui.QImage.smoothScaled": ('int', 'int'),
- "PySide2.QtGui.QImage.swap": ('PySide2.QtGui.QImage',),
- "PySide2.QtGui.QImage.text": ('str',),
- "PySide2.QtGui.QImage.textKeys": (),
- "PySide2.QtGui.QImage.toImageFormat": ('PySide2.QtGui.QPixelFormat',),
- "PySide2.QtGui.QImage.toPixelFormat": ('PySide2.QtGui.QImage.Format',),
- "PySide2.QtGui.QImage.transformed": [('PySide2.QtGui.QMatrix', 'PySide2.QtCore.Qt.TransformationMode'), ('PySide2.QtGui.QTransform', 'PySide2.QtCore.Qt.TransformationMode')],
- "PySide2.QtGui.QImage.trueMatrix": [('PySide2.QtGui.QMatrix', 'int', 'int'), ('PySide2.QtGui.QTransform', 'int', 'int')],
- "PySide2.QtGui.QImage.valid": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtGui.QImage.width": (),
-# class PySide2.QtGui.QImageIOHandler:
-# class PySide2.QtGui.QImageIOHandler.ImageOption:
-# class PySide2.QtGui.QImageIOHandler.Transformation:
-# class PySide2.QtGui.QImageIOHandler.Transformations:
- "PySide2.QtGui.QImageIOHandler.__init__": (),
- "PySide2.QtGui.QImageIOHandler.canRead": (),
- "PySide2.QtGui.QImageIOHandler.currentImageNumber": (),
- "PySide2.QtGui.QImageIOHandler.currentImageRect": (),
- "PySide2.QtGui.QImageIOHandler.device": (),
- "PySide2.QtGui.QImageIOHandler.format": (),
- "PySide2.QtGui.QImageIOHandler.imageCount": (),
- "PySide2.QtGui.QImageIOHandler.jumpToImage": ('int',),
- "PySide2.QtGui.QImageIOHandler.jumpToNextImage": (),
- "PySide2.QtGui.QImageIOHandler.loopCount": (),
- "PySide2.QtGui.QImageIOHandler.name": (),
- "PySide2.QtGui.QImageIOHandler.nextImageDelay": (),
- "PySide2.QtGui.QImageIOHandler.option": ('PySide2.QtGui.QImageIOHandler.ImageOption',),
- "PySide2.QtGui.QImageIOHandler.read": ('PySide2.QtGui.QImage',),
- "PySide2.QtGui.QImageIOHandler.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtGui.QImageIOHandler.setFormat": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QImageIOHandler.setOption": ('PySide2.QtGui.QImageIOHandler.ImageOption', 'typing.Any'),
- "PySide2.QtGui.QImageIOHandler.supportsOption": ('PySide2.QtGui.QImageIOHandler.ImageOption',),
- "PySide2.QtGui.QImageIOHandler.write": ('PySide2.QtGui.QImage',),
-# class PySide2.QtGui.QImageReader:
-# class PySide2.QtGui.QImageReader.ImageReaderError:
- "PySide2.QtGui.QImageReader.__init__": [(), ('PySide2.QtCore.QIODevice', 'PySide2.QtCore.QByteArray'), ('str', 'PySide2.QtCore.QByteArray')],
- "PySide2.QtGui.QImageReader.autoDetectImageFormat": (),
- "PySide2.QtGui.QImageReader.autoTransform": (),
- "PySide2.QtGui.QImageReader.backgroundColor": (),
- "PySide2.QtGui.QImageReader.canRead": (),
- "PySide2.QtGui.QImageReader.clipRect": (),
- "PySide2.QtGui.QImageReader.currentImageNumber": (),
- "PySide2.QtGui.QImageReader.currentImageRect": (),
- "PySide2.QtGui.QImageReader.decideFormatFromContent": (),
- "PySide2.QtGui.QImageReader.device": (),
- "PySide2.QtGui.QImageReader.error": (),
- "PySide2.QtGui.QImageReader.errorString": (),
- "PySide2.QtGui.QImageReader.fileName": (),
- "PySide2.QtGui.QImageReader.format": (),
- "PySide2.QtGui.QImageReader.gamma": (),
- "PySide2.QtGui.QImageReader.imageCount": (),
- "PySide2.QtGui.QImageReader.imageFormat": [(), ('PySide2.QtCore.QIODevice',), ('str',)],
- "PySide2.QtGui.QImageReader.imageFormatsForMimeType": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QImageReader.jumpToImage": ('int',),
- "PySide2.QtGui.QImageReader.jumpToNextImage": (),
- "PySide2.QtGui.QImageReader.loopCount": (),
- "PySide2.QtGui.QImageReader.nextImageDelay": (),
- "PySide2.QtGui.QImageReader.quality": (),
- "PySide2.QtGui.QImageReader.read": (),
- "PySide2.QtGui.QImageReader.scaledClipRect": (),
- "PySide2.QtGui.QImageReader.scaledSize": (),
- "PySide2.QtGui.QImageReader.setAutoDetectImageFormat": ('bool',),
- "PySide2.QtGui.QImageReader.setAutoTransform": ('bool',),
- "PySide2.QtGui.QImageReader.setBackgroundColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtGui.QImageReader.setClipRect": ('PySide2.QtCore.QRect',),
- "PySide2.QtGui.QImageReader.setDecideFormatFromContent": ('bool',),
- "PySide2.QtGui.QImageReader.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtGui.QImageReader.setFileName": ('str',),
- "PySide2.QtGui.QImageReader.setFormat": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QImageReader.setGamma": ('float',),
- "PySide2.QtGui.QImageReader.setQuality": ('int',),
- "PySide2.QtGui.QImageReader.setScaledClipRect": ('PySide2.QtCore.QRect',),
- "PySide2.QtGui.QImageReader.setScaledSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtGui.QImageReader.size": (),
- "PySide2.QtGui.QImageReader.subType": (),
- "PySide2.QtGui.QImageReader.supportedImageFormats": (),
- "PySide2.QtGui.QImageReader.supportedMimeTypes": (),
- "PySide2.QtGui.QImageReader.supportedSubTypes": (),
- "PySide2.QtGui.QImageReader.supportsAnimation": (),
- "PySide2.QtGui.QImageReader.supportsOption": ('PySide2.QtGui.QImageIOHandler.ImageOption',),
- "PySide2.QtGui.QImageReader.text": ('str',),
- "PySide2.QtGui.QImageReader.textKeys": (),
- "PySide2.QtGui.QImageReader.transformation": (),
-# class PySide2.QtGui.QImageWriter:
-# class PySide2.QtGui.QImageWriter.ImageWriterError:
- "PySide2.QtGui.QImageWriter.__init__": [(), ('PySide2.QtCore.QIODevice', 'PySide2.QtCore.QByteArray'), ('str', 'PySide2.QtCore.QByteArray')],
- "PySide2.QtGui.QImageWriter.canWrite": (),
- "PySide2.QtGui.QImageWriter.compression": (),
- "PySide2.QtGui.QImageWriter.description": (),
- "PySide2.QtGui.QImageWriter.device": (),
- "PySide2.QtGui.QImageWriter.error": (),
- "PySide2.QtGui.QImageWriter.errorString": (),
- "PySide2.QtGui.QImageWriter.fileName": (),
- "PySide2.QtGui.QImageWriter.format": (),
- "PySide2.QtGui.QImageWriter.gamma": (),
- "PySide2.QtGui.QImageWriter.imageFormatsForMimeType": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QImageWriter.optimizedWrite": (),
- "PySide2.QtGui.QImageWriter.progressiveScanWrite": (),
- "PySide2.QtGui.QImageWriter.quality": (),
- "PySide2.QtGui.QImageWriter.setCompression": ('int',),
- "PySide2.QtGui.QImageWriter.setDescription": ('str',),
- "PySide2.QtGui.QImageWriter.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtGui.QImageWriter.setFileName": ('str',),
- "PySide2.QtGui.QImageWriter.setFormat": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QImageWriter.setGamma": ('float',),
- "PySide2.QtGui.QImageWriter.setOptimizedWrite": ('bool',),
- "PySide2.QtGui.QImageWriter.setProgressiveScanWrite": ('bool',),
- "PySide2.QtGui.QImageWriter.setQuality": ('int',),
- "PySide2.QtGui.QImageWriter.setSubType": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QImageWriter.setText": ('str', 'str'),
- "PySide2.QtGui.QImageWriter.setTransformation": ('PySide2.QtGui.QImageIOHandler.Transformations',),
- "PySide2.QtGui.QImageWriter.subType": (),
- "PySide2.QtGui.QImageWriter.supportedImageFormats": (),
- "PySide2.QtGui.QImageWriter.supportedMimeTypes": (),
- "PySide2.QtGui.QImageWriter.supportedSubTypes": (),
- "PySide2.QtGui.QImageWriter.supportsOption": ('PySide2.QtGui.QImageIOHandler.ImageOption',),
- "PySide2.QtGui.QImageWriter.transformation": (),
- "PySide2.QtGui.QImageWriter.write": ('PySide2.QtGui.QImage',),
-# class PySide2.QtGui.QInputEvent:
- "PySide2.QtGui.QInputEvent.__init__": ('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.Qt.KeyboardModifiers'),
- "PySide2.QtGui.QInputEvent.modifiers": (),
- "PySide2.QtGui.QInputEvent.setModifiers": ('PySide2.QtCore.Qt.KeyboardModifiers',),
- "PySide2.QtGui.QInputEvent.setTimestamp": ('int',),
- "PySide2.QtGui.QInputEvent.timestamp": (),
-# class PySide2.QtGui.QInputMethod:
-# class PySide2.QtGui.QInputMethod.Action:
- "PySide2.QtGui.QInputMethod.anchorRectangle": (),
- "PySide2.QtGui.QInputMethod.commit": (),
- "PySide2.QtGui.QInputMethod.cursorRectangle": (),
- "PySide2.QtGui.QInputMethod.hide": (),
- "PySide2.QtGui.QInputMethod.inputDirection": (),
- "PySide2.QtGui.QInputMethod.inputItemClipRectangle": (),
- "PySide2.QtGui.QInputMethod.inputItemRectangle": (),
- "PySide2.QtGui.QInputMethod.inputItemTransform": (),
- "PySide2.QtGui.QInputMethod.invokeAction": ('PySide2.QtGui.QInputMethod.Action', 'int'),
- "PySide2.QtGui.QInputMethod.isAnimating": (),
- "PySide2.QtGui.QInputMethod.isVisible": (),
- "PySide2.QtGui.QInputMethod.keyboardRectangle": (),
- "PySide2.QtGui.QInputMethod.locale": (),
- "PySide2.QtGui.QInputMethod.queryFocusObject": ('PySide2.QtCore.Qt.InputMethodQuery', 'typing.Any'),
- "PySide2.QtGui.QInputMethod.reset": (),
- "PySide2.QtGui.QInputMethod.setInputItemRectangle": ('PySide2.QtCore.QRectF',),
- "PySide2.QtGui.QInputMethod.setInputItemTransform": ('PySide2.QtGui.QTransform',),
- "PySide2.QtGui.QInputMethod.setVisible": ('bool',),
- "PySide2.QtGui.QInputMethod.show": (),
- "PySide2.QtGui.QInputMethod.update": ('PySide2.QtCore.Qt.InputMethodQueries',),
-# class PySide2.QtGui.QInputMethodEvent:
-# class PySide2.QtGui.QInputMethodEvent.Attribute:
- "PySide2.QtGui.QInputMethodEvent.Attribute.__init__": [('PySide2.QtGui.QInputMethodEvent.Attribute',), ('PySide2.QtGui.QInputMethodEvent.AttributeType', 'int', 'int'), ('PySide2.QtGui.QInputMethodEvent.AttributeType', 'int', 'int', 'typing.Any')],
- "PySide2.QtGui.QInputMethodEvent.Attribute.__copy__": (),
-# class PySide2.QtGui.QInputMethodEvent.AttributeType:
- "PySide2.QtGui.QInputMethodEvent.__init__": [(), ('PySide2.QtGui.QInputMethodEvent',), ('str', 'typing.Sequence[PySide2.QtGui.QInputMethodEvent.Attribute]')],
- "PySide2.QtGui.QInputMethodEvent.attributes": (),
- "PySide2.QtGui.QInputMethodEvent.commitString": (),
- "PySide2.QtGui.QInputMethodEvent.preeditString": (),
- "PySide2.QtGui.QInputMethodEvent.replacementLength": (),
- "PySide2.QtGui.QInputMethodEvent.replacementStart": (),
- "PySide2.QtGui.QInputMethodEvent.setCommitString": ('str', 'int', 'int'),
-# class PySide2.QtGui.QInputMethodQueryEvent:
- "PySide2.QtGui.QInputMethodQueryEvent.__init__": ('PySide2.QtCore.Qt.InputMethodQueries',),
- "PySide2.QtGui.QInputMethodQueryEvent.queries": (),
- "PySide2.QtGui.QInputMethodQueryEvent.setValue": ('PySide2.QtCore.Qt.InputMethodQuery', 'typing.Any'),
- "PySide2.QtGui.QInputMethodQueryEvent.value": ('PySide2.QtCore.Qt.InputMethodQuery',),
-# class PySide2.QtGui.QIntValidator:
- "PySide2.QtGui.QIntValidator.__init__": [('PySide2.QtCore.QObject',), ('int', 'int', 'PySide2.QtCore.QObject')],
- "PySide2.QtGui.QIntValidator.bottom": (),
- "PySide2.QtGui.QIntValidator.fixup": ('str',),
- "PySide2.QtGui.QIntValidator.setBottom": ('int',),
- "PySide2.QtGui.QIntValidator.setRange": ('int', 'int'),
- "PySide2.QtGui.QIntValidator.setTop": ('int',),
- "PySide2.QtGui.QIntValidator.top": (),
- "PySide2.QtGui.QIntValidator.validate": ('str', 'int'),
-# class PySide2.QtGui.QKeyEvent:
- "PySide2.QtGui.QKeyEvent.__init__": [('PySide2.QtCore.QEvent.Type', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int', 'int', 'int', 'str', 'bool', 'int'), ('PySide2.QtCore.QEvent.Type', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'str', 'bool', 'int')],
- "PySide2.QtGui.QKeyEvent.count": (),
- "PySide2.QtGui.QKeyEvent.isAutoRepeat": (),
- "PySide2.QtGui.QKeyEvent.key": (),
- "PySide2.QtGui.QKeyEvent.matches": ('PySide2.QtGui.QKeySequence.StandardKey',),
- "PySide2.QtGui.QKeyEvent.modifiers": (),
- "PySide2.QtGui.QKeyEvent.nativeModifiers": (),
- "PySide2.QtGui.QKeyEvent.nativeScanCode": (),
- "PySide2.QtGui.QKeyEvent.nativeVirtualKey": (),
- "PySide2.QtGui.QKeyEvent.text": (),
-# class PySide2.QtGui.QKeySequence:
-# class PySide2.QtGui.QKeySequence.SequenceFormat:
-# class PySide2.QtGui.QKeySequence.SequenceMatch:
-# class PySide2.QtGui.QKeySequence.StandardKey:
- "PySide2.QtGui.QKeySequence.__init__": [(), ('PySide2.QtGui.QKeySequence',), ('PySide2.QtGui.QKeySequence.StandardKey',), ('int', 'int', 'int', 'int'), ('str', 'PySide2.QtGui.QKeySequence.SequenceFormat')],
- "PySide2.QtGui.QKeySequence.__copy__": (),
- "PySide2.QtGui.QKeySequence.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QKeySequence.__reduce__": (),
- "PySide2.QtGui.QKeySequence.__repr__": (),
- "PySide2.QtGui.QKeySequence.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QKeySequence.count": (),
- "PySide2.QtGui.QKeySequence.fromString": ('str', 'PySide2.QtGui.QKeySequence.SequenceFormat'),
- "PySide2.QtGui.QKeySequence.isEmpty": (),
- "PySide2.QtGui.QKeySequence.keyBindings": ('PySide2.QtGui.QKeySequence.StandardKey',),
- "PySide2.QtGui.QKeySequence.listFromString": ('str', 'PySide2.QtGui.QKeySequence.SequenceFormat'),
- "PySide2.QtGui.QKeySequence.listToString": ('typing.Sequence[PySide2.QtGui.QKeySequence]', 'PySide2.QtGui.QKeySequence.SequenceFormat'),
- "PySide2.QtGui.QKeySequence.matches": ('PySide2.QtGui.QKeySequence',),
- "PySide2.QtGui.QKeySequence.mnemonic": ('str',),
- "PySide2.QtGui.QKeySequence.swap": ('PySide2.QtGui.QKeySequence',),
- "PySide2.QtGui.QKeySequence.toString": ('PySide2.QtGui.QKeySequence.SequenceFormat',),
-# class PySide2.QtGui.QLinearGradient:
- "PySide2.QtGui.QLinearGradient.__init__": [(), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'), ('PySide2.QtGui.QLinearGradient',), ('float', 'float', 'float', 'float')],
- "PySide2.QtGui.QLinearGradient.__copy__": (),
- "PySide2.QtGui.QLinearGradient.finalStop": (),
- "PySide2.QtGui.QLinearGradient.setFinalStop": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QLinearGradient.setStart": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QLinearGradient.start": (),
-# class PySide2.QtGui.QMatrix:
- "PySide2.QtGui.QMatrix.__init__": [(), ('PySide2.QtGui.QMatrix',), ('float', 'float', 'float', 'float', 'float', 'float')],
- "PySide2.QtGui.QMatrix.__copy__": (),
- "PySide2.QtGui.QMatrix.__imul__": ('PySide2.QtGui.QMatrix',),
- "PySide2.QtGui.QMatrix.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QMatrix.__mul__": [('PySide2.QtCore.QLine',), ('PySide2.QtCore.QLineF',), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtGui.QMatrix',)],
- "PySide2.QtGui.QMatrix.__reduce__": (),
- "PySide2.QtGui.QMatrix.__repr__": (),
- "PySide2.QtGui.QMatrix.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QMatrix.determinant": (),
- "PySide2.QtGui.QMatrix.dx": (),
- "PySide2.QtGui.QMatrix.dy": (),
- "PySide2.QtGui.QMatrix.inverted": (),
- "PySide2.QtGui.QMatrix.isIdentity": (),
- "PySide2.QtGui.QMatrix.isInvertible": (),
- "PySide2.QtGui.QMatrix.m11": (),
- "PySide2.QtGui.QMatrix.m12": (),
- "PySide2.QtGui.QMatrix.m21": (),
- "PySide2.QtGui.QMatrix.m22": (),
- "PySide2.QtGui.QMatrix.map": [('PySide2.QtCore.QLine',), ('PySide2.QtCore.QLineF',), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtGui.QPainterPath',), ('PySide2.QtGui.QPolygon',), ('PySide2.QtGui.QPolygonF',), ('PySide2.QtGui.QRegion',), ('float', 'float'), ('int', 'int')],
- "PySide2.QtGui.QMatrix.mapRect": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',)],
- "PySide2.QtGui.QMatrix.mapToPolygon": ('PySide2.QtCore.QRect',),
- "PySide2.QtGui.QMatrix.reset": (),
- "PySide2.QtGui.QMatrix.rotate": ('float',),
- "PySide2.QtGui.QMatrix.scale": ('float', 'float'),
- "PySide2.QtGui.QMatrix.setMatrix": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtGui.QMatrix.shear": ('float', 'float'),
- "PySide2.QtGui.QMatrix.translate": ('float', 'float'),
-# class PySide2.QtGui.QMatrix2x2:
- "PySide2.QtGui.QMatrix2x2.__init__": [(), ('PySide2.QtGui.QMatrix2x2',), ('typing.Iterable',)],
- "PySide2.QtGui.QMatrix2x2.__call__": ('int', 'int'),
- "PySide2.QtGui.QMatrix2x2.__copy__": (),
- "PySide2.QtGui.QMatrix2x2.__iadd__": ('PySide2.QtGui.QMatrix2x2',),
- "PySide2.QtGui.QMatrix2x2.__imul__": ('float',),
- "PySide2.QtGui.QMatrix2x2.__isub__": ('PySide2.QtGui.QMatrix2x2',),
- "PySide2.QtGui.QMatrix2x2.__reduce__": (),
- "PySide2.QtGui.QMatrix2x2.__repr__": (),
- "PySide2.QtGui.QMatrix2x2.data": (),
- "PySide2.QtGui.QMatrix2x2.fill": ('float',),
- "PySide2.QtGui.QMatrix2x2.isIdentity": (),
- "PySide2.QtGui.QMatrix2x2.setToIdentity": (),
- "PySide2.QtGui.QMatrix2x2.transposed": (),
-# class PySide2.QtGui.QMatrix2x3:
- "PySide2.QtGui.QMatrix2x3.__init__": [(), ('PySide2.QtGui.QMatrix2x3',), ('typing.Iterable',)],
- "PySide2.QtGui.QMatrix2x3.__call__": ('int', 'int'),
- "PySide2.QtGui.QMatrix2x3.__copy__": (),
- "PySide2.QtGui.QMatrix2x3.__iadd__": ('PySide2.QtGui.QMatrix2x3',),
- "PySide2.QtGui.QMatrix2x3.__imul__": ('float',),
- "PySide2.QtGui.QMatrix2x3.__isub__": ('PySide2.QtGui.QMatrix2x3',),
- "PySide2.QtGui.QMatrix2x3.__reduce__": (),
- "PySide2.QtGui.QMatrix2x3.__repr__": (),
- "PySide2.QtGui.QMatrix2x3.data": (),
- "PySide2.QtGui.QMatrix2x3.fill": ('float',),
- "PySide2.QtGui.QMatrix2x3.isIdentity": (),
- "PySide2.QtGui.QMatrix2x3.setToIdentity": (),
- "PySide2.QtGui.QMatrix2x3.transposed": (),
-# class PySide2.QtGui.QMatrix2x4:
- "PySide2.QtGui.QMatrix2x4.__init__": [(), ('PySide2.QtGui.QMatrix2x4',), ('typing.Iterable',)],
- "PySide2.QtGui.QMatrix2x4.__call__": ('int', 'int'),
- "PySide2.QtGui.QMatrix2x4.__copy__": (),
- "PySide2.QtGui.QMatrix2x4.__iadd__": ('PySide2.QtGui.QMatrix2x4',),
- "PySide2.QtGui.QMatrix2x4.__imul__": ('float',),
- "PySide2.QtGui.QMatrix2x4.__isub__": ('PySide2.QtGui.QMatrix2x4',),
- "PySide2.QtGui.QMatrix2x4.__reduce__": (),
- "PySide2.QtGui.QMatrix2x4.__repr__": (),
- "PySide2.QtGui.QMatrix2x4.data": (),
- "PySide2.QtGui.QMatrix2x4.fill": ('float',),
- "PySide2.QtGui.QMatrix2x4.isIdentity": (),
- "PySide2.QtGui.QMatrix2x4.setToIdentity": (),
- "PySide2.QtGui.QMatrix2x4.transposed": (),
-# class PySide2.QtGui.QMatrix3x2:
- "PySide2.QtGui.QMatrix3x2.__init__": [(), ('PySide2.QtGui.QMatrix3x2',), ('typing.Iterable',)],
- "PySide2.QtGui.QMatrix3x2.__call__": ('int', 'int'),
- "PySide2.QtGui.QMatrix3x2.__copy__": (),
- "PySide2.QtGui.QMatrix3x2.__iadd__": ('PySide2.QtGui.QMatrix3x2',),
- "PySide2.QtGui.QMatrix3x2.__imul__": ('float',),
- "PySide2.QtGui.QMatrix3x2.__isub__": ('PySide2.QtGui.QMatrix3x2',),
- "PySide2.QtGui.QMatrix3x2.__reduce__": (),
- "PySide2.QtGui.QMatrix3x2.__repr__": (),
- "PySide2.QtGui.QMatrix3x2.data": (),
- "PySide2.QtGui.QMatrix3x2.fill": ('float',),
- "PySide2.QtGui.QMatrix3x2.isIdentity": (),
- "PySide2.QtGui.QMatrix3x2.setToIdentity": (),
- "PySide2.QtGui.QMatrix3x2.transposed": (),
-# class PySide2.QtGui.QMatrix3x3:
- "PySide2.QtGui.QMatrix3x3.__init__": [(), ('PySide2.QtGui.QMatrix3x3',), ('typing.Iterable',)],
- "PySide2.QtGui.QMatrix3x3.__call__": ('int', 'int'),
- "PySide2.QtGui.QMatrix3x3.__copy__": (),
- "PySide2.QtGui.QMatrix3x3.__iadd__": ('PySide2.QtGui.QMatrix3x3',),
- "PySide2.QtGui.QMatrix3x3.__imul__": ('float',),
- "PySide2.QtGui.QMatrix3x3.__isub__": ('PySide2.QtGui.QMatrix3x3',),
- "PySide2.QtGui.QMatrix3x3.__reduce__": (),
- "PySide2.QtGui.QMatrix3x3.__repr__": (),
- "PySide2.QtGui.QMatrix3x3.data": (),
- "PySide2.QtGui.QMatrix3x3.fill": ('float',),
- "PySide2.QtGui.QMatrix3x3.isIdentity": (),
- "PySide2.QtGui.QMatrix3x3.setToIdentity": (),
- "PySide2.QtGui.QMatrix3x3.transposed": (),
-# class PySide2.QtGui.QMatrix3x4:
- "PySide2.QtGui.QMatrix3x4.__init__": [(), ('PySide2.QtGui.QMatrix3x4',), ('typing.Iterable',)],
- "PySide2.QtGui.QMatrix3x4.__call__": ('int', 'int'),
- "PySide2.QtGui.QMatrix3x4.__copy__": (),
- "PySide2.QtGui.QMatrix3x4.__iadd__": ('PySide2.QtGui.QMatrix3x4',),
- "PySide2.QtGui.QMatrix3x4.__imul__": ('float',),
- "PySide2.QtGui.QMatrix3x4.__isub__": ('PySide2.QtGui.QMatrix3x4',),
- "PySide2.QtGui.QMatrix3x4.__reduce__": (),
- "PySide2.QtGui.QMatrix3x4.__repr__": (),
- "PySide2.QtGui.QMatrix3x4.data": (),
- "PySide2.QtGui.QMatrix3x4.fill": ('float',),
- "PySide2.QtGui.QMatrix3x4.isIdentity": (),
- "PySide2.QtGui.QMatrix3x4.setToIdentity": (),
- "PySide2.QtGui.QMatrix3x4.transposed": (),
-# class PySide2.QtGui.QMatrix4x2:
- "PySide2.QtGui.QMatrix4x2.__init__": [(), ('PySide2.QtGui.QMatrix4x2',), ('typing.Iterable',)],
- "PySide2.QtGui.QMatrix4x2.__call__": ('int', 'int'),
- "PySide2.QtGui.QMatrix4x2.__copy__": (),
- "PySide2.QtGui.QMatrix4x2.__iadd__": ('PySide2.QtGui.QMatrix4x2',),
- "PySide2.QtGui.QMatrix4x2.__imul__": ('float',),
- "PySide2.QtGui.QMatrix4x2.__isub__": ('PySide2.QtGui.QMatrix4x2',),
- "PySide2.QtGui.QMatrix4x2.__reduce__": (),
- "PySide2.QtGui.QMatrix4x2.__repr__": (),
- "PySide2.QtGui.QMatrix4x2.data": (),
- "PySide2.QtGui.QMatrix4x2.fill": ('float',),
- "PySide2.QtGui.QMatrix4x2.isIdentity": (),
- "PySide2.QtGui.QMatrix4x2.setToIdentity": (),
- "PySide2.QtGui.QMatrix4x2.transposed": (),
-# class PySide2.QtGui.QMatrix4x3:
- "PySide2.QtGui.QMatrix4x3.__init__": [(), ('PySide2.QtGui.QMatrix4x3',), ('typing.Iterable',)],
- "PySide2.QtGui.QMatrix4x3.__call__": ('int', 'int'),
- "PySide2.QtGui.QMatrix4x3.__copy__": (),
- "PySide2.QtGui.QMatrix4x3.__iadd__": ('PySide2.QtGui.QMatrix4x3',),
- "PySide2.QtGui.QMatrix4x3.__imul__": ('float',),
- "PySide2.QtGui.QMatrix4x3.__isub__": ('PySide2.QtGui.QMatrix4x3',),
- "PySide2.QtGui.QMatrix4x3.__reduce__": (),
- "PySide2.QtGui.QMatrix4x3.__repr__": (),
- "PySide2.QtGui.QMatrix4x3.data": (),
- "PySide2.QtGui.QMatrix4x3.fill": ('float',),
- "PySide2.QtGui.QMatrix4x3.isIdentity": (),
- "PySide2.QtGui.QMatrix4x3.setToIdentity": (),
- "PySide2.QtGui.QMatrix4x3.transposed": (),
-# class PySide2.QtGui.QMatrix4x4:
- "PySide2.QtGui.QMatrix4x4.__init__": [(), ('PySide2.QtGui.QMatrix',), ('PySide2.QtGui.QTransform',), ('float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float'), ('typing.Sequence[float]',)],
- "PySide2.QtGui.QMatrix4x4.__add__": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtGui.QMatrix4x4.__copy__": (),
- "PySide2.QtGui.QMatrix4x4.__dummy": ('typing.Sequence[float]',),
- "PySide2.QtGui.QMatrix4x4.__iadd__": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtGui.QMatrix4x4.__imul__": [('PySide2.QtGui.QMatrix4x4',), ('float',)],
- "PySide2.QtGui.QMatrix4x4.__isub__": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtGui.QMatrix4x4.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QMatrix4x4.__mul__": [('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtGui.QMatrix4x4',), ('float',)],
- "PySide2.QtGui.QMatrix4x4.__neg__": (),
- "PySide2.QtGui.QMatrix4x4.__reduce__": (),
- "PySide2.QtGui.QMatrix4x4.__repr__": (),
- "PySide2.QtGui.QMatrix4x4.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QMatrix4x4.__sub__": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtGui.QMatrix4x4.column": ('int',),
- "PySide2.QtGui.QMatrix4x4.copyDataTo": (),
- "PySide2.QtGui.QMatrix4x4.data": (),
- "PySide2.QtGui.QMatrix4x4.determinant": (),
- "PySide2.QtGui.QMatrix4x4.fill": ('float',),
- "PySide2.QtGui.QMatrix4x4.flipCoordinates": (),
- "PySide2.QtGui.QMatrix4x4.frustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtGui.QMatrix4x4.inverted": (),
- "PySide2.QtGui.QMatrix4x4.isAffine": (),
- "PySide2.QtGui.QMatrix4x4.isIdentity": (),
- "PySide2.QtGui.QMatrix4x4.lookAt": ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'),
- "PySide2.QtGui.QMatrix4x4.map": [('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtGui.QVector3D',), ('PySide2.QtGui.QVector4D',)],
- "PySide2.QtGui.QMatrix4x4.mapRect": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',)],
- "PySide2.QtGui.QMatrix4x4.mapVector": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtGui.QMatrix4x4.normalMatrix": (),
- "PySide2.QtGui.QMatrix4x4.optimize": (),
- "PySide2.QtGui.QMatrix4x4.ortho": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float', 'float', 'float')],
- "PySide2.QtGui.QMatrix4x4.perspective": ('float', 'float', 'float', 'float'),
- "PySide2.QtGui.QMatrix4x4.rotate": [('PySide2.QtGui.QQuaternion',), ('float', 'PySide2.QtGui.QVector3D'), ('float', 'float', 'float', 'float')],
- "PySide2.QtGui.QMatrix4x4.row": ('int',),
- "PySide2.QtGui.QMatrix4x4.scale": [('PySide2.QtGui.QVector3D',), ('float',), ('float', 'float'), ('float', 'float', 'float')],
- "PySide2.QtGui.QMatrix4x4.setColumn": ('int', 'PySide2.QtGui.QVector4D'),
- "PySide2.QtGui.QMatrix4x4.setRow": ('int', 'PySide2.QtGui.QVector4D'),
- "PySide2.QtGui.QMatrix4x4.setToIdentity": (),
- "PySide2.QtGui.QMatrix4x4.toAffine": (),
- "PySide2.QtGui.QMatrix4x4.toTransform": [(), ('float',)],
- "PySide2.QtGui.QMatrix4x4.translate": [('PySide2.QtGui.QVector3D',), ('float', 'float'), ('float', 'float', 'float')],
- "PySide2.QtGui.QMatrix4x4.transposed": (),
- "PySide2.QtGui.QMatrix4x4.viewport": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float', 'float', 'float')],
-# class PySide2.QtGui.QMouseEvent:
- "PySide2.QtGui.QMouseEvent.__init__": [('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers'), ('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.Qt.MouseEventSource'), ('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers'), ('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers')],
- "PySide2.QtGui.QMouseEvent.button": (),
- "PySide2.QtGui.QMouseEvent.buttons": (),
- "PySide2.QtGui.QMouseEvent.flags": (),
- "PySide2.QtGui.QMouseEvent.globalPos": (),
- "PySide2.QtGui.QMouseEvent.globalX": (),
- "PySide2.QtGui.QMouseEvent.global""Y": (),
- "PySide2.QtGui.QMouseEvent.localPos": (),
- "PySide2.QtGui.QMouseEvent.pos": (),
- "PySide2.QtGui.QMouseEvent.screenPos": (),
- "PySide2.QtGui.QMouseEvent.setLocalPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QMouseEvent.source": (),
- "PySide2.QtGui.QMouseEvent.windowPos": (),
- "PySide2.QtGui.QMouseEvent.x": (),
- "PySide2.QtGui.QMouseEvent.y": (),
-# class PySide2.QtGui.QMoveEvent:
- "PySide2.QtGui.QMoveEvent.__init__": ('PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint'),
- "PySide2.QtGui.QMoveEvent.oldPos": (),
- "PySide2.QtGui.QMoveEvent.pos": (),
-# class PySide2.QtGui.QMovie:
-# class PySide2.QtGui.QMovie.CacheMode:
-# class PySide2.QtGui.QMovie.MovieState:
- "PySide2.QtGui.QMovie.__init__": [('PySide2.QtCore.QIODevice', 'PySide2.QtCore.QByteArray', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QObject',), ('str', 'PySide2.QtCore.QByteArray', 'PySide2.QtCore.QObject')],
- "PySide2.QtGui.QMovie.backgroundColor": (),
- "PySide2.QtGui.QMovie.cacheMode": (),
- "PySide2.QtGui.QMovie.currentFrameNumber": (),
- "PySide2.QtGui.QMovie.currentImage": (),
- "PySide2.QtGui.QMovie.currentPixmap": (),
- "PySide2.QtGui.QMovie.device": (),
- "PySide2.QtGui.QMovie.fileName": (),
- "PySide2.QtGui.QMovie.format": (),
- "PySide2.QtGui.QMovie.frameCount": (),
- "PySide2.QtGui.QMovie.frameRect": (),
- "PySide2.QtGui.QMovie.isValid": (),
- "PySide2.QtGui.QMovie.jumpToFrame": ('int',),
- "PySide2.QtGui.QMovie.jumpToNextFrame": (),
- "PySide2.QtGui.QMovie.lastError": (),
- "PySide2.QtGui.QMovie.lastErrorString": (),
- "PySide2.QtGui.QMovie.loopCount": (),
- "PySide2.QtGui.QMovie.nextFrameDelay": (),
- "PySide2.QtGui.QMovie.scaledSize": (),
- "PySide2.QtGui.QMovie.setBackgroundColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtGui.QMovie.setCacheMode": ('PySide2.QtGui.QMovie.CacheMode',),
- "PySide2.QtGui.QMovie.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtGui.QMovie.setFileName": ('str',),
- "PySide2.QtGui.QMovie.setFormat": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QMovie.setPaused": ('bool',),
- "PySide2.QtGui.QMovie.setScaledSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtGui.QMovie.setSpeed": ('int',),
- "PySide2.QtGui.QMovie.speed": (),
- "PySide2.QtGui.QMovie.start": (),
- "PySide2.QtGui.QMovie.state": (),
- "PySide2.QtGui.QMovie.stop": (),
- "PySide2.QtGui.QMovie.supportedFormats": (),
-# class PySide2.QtGui.QNativeGestureEvent:
- "PySide2.QtGui.QNativeGestureEvent.__init__": [('PySide2.QtCore.Qt.NativeGestureType', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'float', 'int', 'int'), ('PySide2.QtCore.Qt.NativeGestureType', 'PySide2.QtGui.QTouchDevice', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'float', 'int', 'int')],
- "PySide2.QtGui.QNativeGestureEvent.device": (),
- "PySide2.QtGui.QNativeGestureEvent.gestureType": (),
- "PySide2.QtGui.QNativeGestureEvent.globalPos": (),
- "PySide2.QtGui.QNativeGestureEvent.localPos": (),
- "PySide2.QtGui.QNativeGestureEvent.pos": (),
- "PySide2.QtGui.QNativeGestureEvent.screenPos": (),
- "PySide2.QtGui.QNativeGestureEvent.value": (),
- "PySide2.QtGui.QNativeGestureEvent.windowPos": (),
-# class PySide2.QtGui.QOffscreenSurface:
- "PySide2.QtGui.QOffscreenSurface.__init__": [('PySide2.QtGui.QScreen',), ('PySide2.QtGui.QScreen', 'PySide2.QtCore.QObject')],
- "PySide2.QtGui.QOffscreenSurface.create": (),
- "PySide2.QtGui.QOffscreenSurface.destroy": (),
- "PySide2.QtGui.QOffscreenSurface.format": (),
- "PySide2.QtGui.QOffscreenSurface.isValid": (),
- "PySide2.QtGui.QOffscreenSurface.nativeHandle": (),
- "PySide2.QtGui.QOffscreenSurface.requestedFormat": (),
- "PySide2.QtGui.QOffscreenSurface.screen": (),
- "PySide2.QtGui.QOffscreenSurface.setFormat": ('PySide2.QtGui.QSurfaceFormat',),
- "PySide2.QtGui.QOffscreenSurface.setNativeHandle": ('int',),
- "PySide2.QtGui.QOffscreenSurface.setScreen": ('PySide2.QtGui.QScreen',),
- "PySide2.QtGui.QOffscreenSurface.size": (),
- "PySide2.QtGui.QOffscreenSurface.surfaceHandle": (),
- "PySide2.QtGui.QOffscreenSurface.surfaceType": (),
-# class PySide2.QtGui.QOpenGLBuffer:
-# class PySide2.QtGui.QOpenGLBuffer.Access:
-# class PySide2.QtGui.QOpenGLBuffer.RangeAccessFlag:
-# class PySide2.QtGui.QOpenGLBuffer.RangeAccessFlags:
-# class PySide2.QtGui.QOpenGLBuffer.Type:
-# class PySide2.QtGui.QOpenGLBuffer.UsagePattern:
- "PySide2.QtGui.QOpenGLBuffer.__init__": [(), ('PySide2.QtGui.QOpenGLBuffer',), ('PySide2.QtGui.QOpenGLBuffer.Type',)],
- "PySide2.QtGui.QOpenGLBuffer.allocate": [('int',), ('int', 'int')],
- "PySide2.QtGui.QOpenGLBuffer.bind": (),
- "PySide2.QtGui.QOpenGLBuffer.bufferId": (),
- "PySide2.QtGui.QOpenGLBuffer.create": (),
- "PySide2.QtGui.QOpenGLBuffer.destroy": (),
- "PySide2.QtGui.QOpenGLBuffer.isCreated": (),
- "PySide2.QtGui.QOpenGLBuffer.map": ('PySide2.QtGui.QOpenGLBuffer.Access',),
- "PySide2.QtGui.QOpenGLBuffer.mapRange": ('int', 'int', 'PySide2.QtGui.QOpenGLBuffer.RangeAccessFlags'),
- "PySide2.QtGui.QOpenGLBuffer.read": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLBuffer.release": [(), ('PySide2.QtGui.QOpenGLBuffer.Type',)],
- "PySide2.QtGui.QOpenGLBuffer.setUsagePattern": ('PySide2.QtGui.QOpenGLBuffer.UsagePattern',),
- "PySide2.QtGui.QOpenGLBuffer.size": (),
- "PySide2.QtGui.QOpenGLBuffer.type": (),
- "PySide2.QtGui.QOpenGLBuffer.unmap": (),
- "PySide2.QtGui.QOpenGLBuffer.usagePattern": (),
- "PySide2.QtGui.QOpenGLBuffer.write": ('int', 'int', 'int'),
-# class PySide2.QtGui.QOpenGLContext:
-# class PySide2.QtGui.QOpenGLContext.OpenGLModuleType:
- "PySide2.QtGui.QOpenGLContext.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QOpenGLContext.areSharing": ('PySide2.QtGui.QOpenGLContext', 'PySide2.QtGui.QOpenGLContext'),
- "PySide2.QtGui.QOpenGLContext.create": (),
- "PySide2.QtGui.QOpenGLContext.currentContext": (),
- "PySide2.QtGui.QOpenGLContext.defaultFramebufferObject": (),
- "PySide2.QtGui.QOpenGLContext.doneCurrent": (),
- "PySide2.QtGui.QOpenGLContext.extensions": (),
- "PySide2.QtGui.QOpenGLContext.extraFunctions": (),
- "PySide2.QtGui.QOpenGLContext.format": (),
- "PySide2.QtGui.QOpenGLContext.functions": (),
- "PySide2.QtGui.QOpenGLContext.globalShareContext": (),
- "PySide2.QtGui.QOpenGLContext.hasExtension": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QOpenGLContext.isOpenGLES": (),
- "PySide2.QtGui.QOpenGLContext.isValid": (),
- "PySide2.QtGui.QOpenGLContext.makeCurrent": ('PySide2.QtGui.QSurface',),
- "PySide2.QtGui.QOpenGLContext.nativeHandle": (),
- "PySide2.QtGui.QOpenGLContext.openGLModuleHandle": (),
- "PySide2.QtGui.QOpenGLContext.openGLModuleType": (),
- "PySide2.QtGui.QOpenGLContext.screen": (),
- "PySide2.QtGui.QOpenGLContext.setFormat": ('PySide2.QtGui.QSurfaceFormat',),
- "PySide2.QtGui.QOpenGLContext.setNativeHandle": ('typing.Any',),
- "PySide2.QtGui.QOpenGLContext.setScreen": ('PySide2.QtGui.QScreen',),
- "PySide2.QtGui.QOpenGLContext.setShareContext": ('PySide2.QtGui.QOpenGLContext',),
- "PySide2.QtGui.QOpenGLContext.shareContext": (),
- "PySide2.QtGui.QOpenGLContext.shareGroup": (),
- "PySide2.QtGui.QOpenGLContext.supportsThreadedOpenGL": (),
- "PySide2.QtGui.QOpenGLContext.surface": (),
- "PySide2.QtGui.QOpenGLContext.swapBuffers": ('PySide2.QtGui.QSurface',),
- "PySide2.QtGui.QOpenGLContext.versionFunctions": ('PySide2.QtGui.QOpenGLVersionProfile',),
-# class PySide2.QtGui.QOpenGLContextGroup:
- "PySide2.QtGui.QOpenGLContextGroup.currentContextGroup": (),
- "PySide2.QtGui.QOpenGLContextGroup.shares": (),
-# class PySide2.QtGui.QOpenGLDebugLogger:
-# class PySide2.QtGui.QOpenGLDebugLogger.LoggingMode:
- "PySide2.QtGui.QOpenGLDebugLogger.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QOpenGLDebugLogger.disableMessages": [('PySide2.QtGui.QOpenGLDebugMessage.Sources', 'PySide2.QtGui.QOpenGLDebugMessage.Types', 'PySide2.QtGui.QOpenGLDebugMessage.Severities'), ('typing.List[int]', 'PySide2.QtGui.QOpenGLDebugMessage.Sources', 'PySide2.QtGui.QOpenGLDebugMessage.Types')],
- "PySide2.QtGui.QOpenGLDebugLogger.enableMessages": [('PySide2.QtGui.QOpenGLDebugMessage.Sources', 'PySide2.QtGui.QOpenGLDebugMessage.Types', 'PySide2.QtGui.QOpenGLDebugMessage.Severities'), ('typing.List[int]', 'PySide2.QtGui.QOpenGLDebugMessage.Sources', 'PySide2.QtGui.QOpenGLDebugMessage.Types')],
- "PySide2.QtGui.QOpenGLDebugLogger.initialize": (),
- "PySide2.QtGui.QOpenGLDebugLogger.isLogging": (),
- "PySide2.QtGui.QOpenGLDebugLogger.logMessage": ('PySide2.QtGui.QOpenGLDebugMessage',),
- "PySide2.QtGui.QOpenGLDebugLogger.loggedMessages": (),
- "PySide2.QtGui.QOpenGLDebugLogger.loggingMode": (),
- "PySide2.QtGui.QOpenGLDebugLogger.maximumMessageLength": (),
- "PySide2.QtGui.QOpenGLDebugLogger.popGroup": (),
- "PySide2.QtGui.QOpenGLDebugLogger.pushGroup": ('str', 'int', 'PySide2.QtGui.QOpenGLDebugMessage.Source'),
- "PySide2.QtGui.QOpenGLDebugLogger.startLogging": ('PySide2.QtGui.QOpenGLDebugLogger.LoggingMode',),
- "PySide2.QtGui.QOpenGLDebugLogger.stopLogging": (),
-# class PySide2.QtGui.QOpenGLDebugMessage:
-# class PySide2.QtGui.QOpenGLDebugMessage.Severities:
-# class PySide2.QtGui.QOpenGLDebugMessage.Severity:
-# class PySide2.QtGui.QOpenGLDebugMessage.Source:
-# class PySide2.QtGui.QOpenGLDebugMessage.Sources:
-# class PySide2.QtGui.QOpenGLDebugMessage.Type:
-# class PySide2.QtGui.QOpenGLDebugMessage.Types:
- "PySide2.QtGui.QOpenGLDebugMessage.__init__": [(), ('PySide2.QtGui.QOpenGLDebugMessage',)],
- "PySide2.QtGui.QOpenGLDebugMessage.__copy__": (),
- "PySide2.QtGui.QOpenGLDebugMessage.createApplicationMessage": ('str', 'int', 'PySide2.QtGui.QOpenGLDebugMessage.Severity', 'PySide2.QtGui.QOpenGLDebugMessage.Type'),
- "PySide2.QtGui.QOpenGLDebugMessage.createThirdPartyMessage": ('str', 'int', 'PySide2.QtGui.QOpenGLDebugMessage.Severity', 'PySide2.QtGui.QOpenGLDebugMessage.Type'),
- "PySide2.QtGui.QOpenGLDebugMessage.id": (),
- "PySide2.QtGui.QOpenGLDebugMessage.message": (),
- "PySide2.QtGui.QOpenGLDebugMessage.severity": (),
- "PySide2.QtGui.QOpenGLDebugMessage.source": (),
- "PySide2.QtGui.QOpenGLDebugMessage.swap": ('PySide2.QtGui.QOpenGLDebugMessage',),
- "PySide2.QtGui.QOpenGLDebugMessage.type": (),
-# class PySide2.QtGui.QOpenGLExtraFunctions:
- "PySide2.QtGui.QOpenGLExtraFunctions.__init__": [(), ('PySide2.QtGui.QOpenGLContext',)],
- "PySide2.QtGui.QOpenGLExtraFunctions.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBeginQuery": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBeginTransformFeedback": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBindImageTexture": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBindProgramPipeline": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBindSampler": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBindVertexArray": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBlendBarrier": (),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBlendEquationi": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glClearBufferiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glClearBufferuiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glCopyImageSubData": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDebugMessageControl": ('int', 'int', 'int', 'int', 'shibokensupport.typing27.Sequence', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDebugMessageInsert": ('int', 'int', 'int', 'int', 'int', 'str'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDeleteProgramPipelines": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDeleteQueries": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDeleteSamplers": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDeleteTransformFeedbacks": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDeleteVertexArrays": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDisablei": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDispatchCompute": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDrawBuffers": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glEnablei": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glEndQuery": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glFramebufferParameteri": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGenProgramPipelines": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGenQueries": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGenSamplers": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGenTransformFeedbacks": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGenVertexArrays": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetActiveUniformBlockiv": ('int', 'int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetActiveUniformsiv": ('int', 'int', 'shibokensupport.typing27.Sequence', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetFramebufferParameteriv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetGraphicsResetStatus": (),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetIntegeri_v": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetInternalformativ": ('int', 'int', 'int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetMultisamplefv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetProgramBinary": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetProgramInterfaceiv": ('int', 'int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetProgramPipelineiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetProgramResourceIndex": ('int', 'int', 'str'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetProgramResourceLocation": ('int', 'int', 'str'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetProgramResourceiv": ('int', 'int', 'int', 'int', 'shibokensupport.typing27.Sequence', 'int', 'shibokensupport.typing27.Sequence', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetQueryObjectuiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetQueryiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetSamplerParameterIiv": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetSamplerParameterIuiv": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetSamplerParameteriv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetStringi": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetTexLevelParameterfv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetTexLevelParameteriv": ('int', 'int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetTexParameterIiv": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetTexParameterIuiv": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetUniformuiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetVertexAttribIiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetVertexAttribIuiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetnUniformfv": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetnUniformiv": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glGetnUniformuiv": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glInvalidateFramebuffer": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glInvalidateSubFramebuffer": ('int', 'int', 'shibokensupport.typing27.Sequence', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glIsEnabledi": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glIsProgramPipeline": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glIsQuery": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glIsSampler": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glIsTransformFeedback": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glIsVertexArray": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glMemoryBarrier": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glMemoryBarrierByRegion": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glMinSampleShading": ('float',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glObjectLabel": ('int', 'int', 'int', 'str'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glObjectPtrLabel": ('int', 'int', 'str'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glPatchParameteri": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glPopDebugGroup": (),
- "PySide2.QtGui.QOpenGLExtraFunctions.glPrimitiveBoundingBox": ('float', 'float', 'float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform1iv": ('int', 'int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform1uiv": ('int', 'int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform2iv": ('int', 'int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform2uiv": ('int', 'int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform3iv": ('int', 'int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform3uiv": ('int', 'int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform4iv": ('int', 'int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniform4uiv": ('int', 'int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glPushDebugGroup": ('int', 'int', 'int', 'str'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glReadBuffer": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glReadnPixels": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glSampleMaski": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glSamplerParameterIiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glSamplerParameterIuiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glSamplerParameteriv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glTexParameterIiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glTexParameterIuiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glTexStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glTexStorage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glTexStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glTexStorage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniform1ui": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniform1uiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniform2uiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniform3uiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniform4uiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUnmapBuffer": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glValidateProgramPipeline": ('int',),
- "PySide2.QtGui.QOpenGLExtraFunctions.glVertexAttribBinding": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glVertexAttribFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glVertexAttribI4iv": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glVertexAttribI4uiv": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glVertexAttribIFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLExtraFunctions.glVertexBindingDivisor": ('int', 'int'),
-# class PySide2.QtGui.QOpenGLFramebufferObject:
-# class PySide2.QtGui.QOpenGLFramebufferObject.Attachment:
-# class PySide2.QtGui.QOpenGLFramebufferObject.FramebufferRestorePolicy:
- "PySide2.QtGui.QOpenGLFramebufferObject.__init__": [('PySide2.QtCore.QSize', 'PySide2.QtGui.QOpenGLFramebufferObject.Attachment', 'int', 'int'), ('PySide2.QtCore.QSize', 'PySide2.QtGui.QOpenGLFramebufferObjectFormat'), ('PySide2.QtCore.QSize', 'int'), ('int', 'int', 'PySide2.QtGui.QOpenGLFramebufferObject.Attachment', 'int', 'int'), ('int', 'int', 'PySide2.QtGui.QOpenGLFramebufferObjectFormat'), ('int', 'int', 'int')],
- "PySide2.QtGui.QOpenGLFramebufferObject.addColorAttachment": [('PySide2.QtCore.QSize', 'int'), ('int', 'int', 'int')],
- "PySide2.QtGui.QOpenGLFramebufferObject.attachment": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.bind": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.bindDefault": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.blitFramebuffer": [('PySide2.QtGui.QOpenGLFramebufferObject', 'PySide2.QtCore.QRect', 'PySide2.QtGui.QOpenGLFramebufferObject', 'PySide2.QtCore.QRect', 'int', 'int'), ('PySide2.QtGui.QOpenGLFramebufferObject', 'PySide2.QtCore.QRect', 'PySide2.QtGui.QOpenGLFramebufferObject', 'PySide2.QtCore.QRect', 'int', 'int', 'int', 'int'), ('PySide2.QtGui.QOpenGLFramebufferObject', 'PySide2.QtCore.QRect', 'PySide2.QtGui.QOpenGLFramebufferObject', 'PySide2.QtCore.QRect', 'int', 'int', 'int', 'int', 'PySide2.QtGui.QOpenGLFramebufferObject.FramebufferRestorePolicy'), ('PySide2.QtGui.QOpenGLFramebufferObject', 'PySide2.QtGui.QOpenGLFramebufferObject', 'int', 'int')],
- "PySide2.QtGui.QOpenGLFramebufferObject.format": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.handle": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.hasOpenGLFramebufferBlit": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.hasOpenGLFramebufferObjects": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.height": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.isBound": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.isValid": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.release": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.setAttachment": ('PySide2.QtGui.QOpenGLFramebufferObject.Attachment',),
- "PySide2.QtGui.QOpenGLFramebufferObject.size": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.sizes": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.takeTexture": [(), ('int',)],
- "PySide2.QtGui.QOpenGLFramebufferObject.texture": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.textures": (),
- "PySide2.QtGui.QOpenGLFramebufferObject.toImage": [(), ('bool',), ('bool', 'int')],
- "PySide2.QtGui.QOpenGLFramebufferObject.width": (),
-# class PySide2.QtGui.QOpenGLFramebufferObjectFormat:
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.__init__": [(), ('PySide2.QtGui.QOpenGLFramebufferObjectFormat',)],
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.__copy__": (),
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.attachment": (),
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.internalTextureFormat": (),
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.mipmap": (),
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.samples": (),
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.setAttachment": ('PySide2.QtGui.QOpenGLFramebufferObject.Attachment',),
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.setInternalTextureFormat": ('int',),
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.setMipmap": ('bool',),
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.setSamples": ('int',),
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.setTextureTarget": ('int',),
- "PySide2.QtGui.QOpenGLFramebufferObjectFormat.textureTarget": (),
-# class PySide2.QtGui.QOpenGLFunctions:
-# class PySide2.QtGui.QOpenGLFunctions.OpenGLFeature:
-# class PySide2.QtGui.QOpenGLFunctions.OpenGLFeatures:
- "PySide2.QtGui.QOpenGLFunctions.__init__": [(), ('PySide2.QtGui.QOpenGLContext',)],
- "PySide2.QtGui.QOpenGLFunctions.glActiveTexture": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glAttachShader": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtGui.QOpenGLFunctions.glBindBuffer": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glBindTexture": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glBlendEquation": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glBlendFunc": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glCheckFramebufferStatus": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glClear": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glClearDepthf": ('float',),
- "PySide2.QtGui.QOpenGLFunctions.glClearStencil": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glCompileShader": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glCreateProgram": (),
- "PySide2.QtGui.QOpenGLFunctions.glCreateShader": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glCullFace": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glDeleteBuffers": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glDeleteFramebuffers": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glDeleteProgram": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glDeleteRenderbuffers": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glDeleteShader": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glDeleteTextures": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glDepthFunc": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glDepthMask": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glDepthRangef": ('float', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glDetachShader": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glDisable": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glDisableVertexAttribArray": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glEnable": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glEnableVertexAttribArray": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glFinish": (),
- "PySide2.QtGui.QOpenGLFunctions.glFlush": (),
- "PySide2.QtGui.QOpenGLFunctions.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glFrontFace": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glGenBuffers": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGenFramebuffers": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGenRenderbuffers": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGenTextures": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGenerateMipmap": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glGetAttachedShaders": ('int', 'int', 'shibokensupport.typing27.Sequence', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtGui.QOpenGLFunctions.glGetBufferParameteriv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetError": (),
- "PySide2.QtGui.QOpenGLFunctions.glGetFloatv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glGetFramebufferAttachmentParameteriv": ('int', 'int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetIntegerv": ('int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetProgramiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetRenderbufferParameteriv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetShaderPrecisionFormat": ('int', 'int', 'shibokensupport.typing27.Sequence', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetShaderiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetString": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glGetTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glGetTexParameteriv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtGui.QOpenGLFunctions.glGetUniformfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glGetUniformiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glGetVertexAttribfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glGetVertexAttribiv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glHint": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glIsBuffer": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glIsEnabled": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glIsFramebuffer": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glIsProgram": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glIsRenderbuffer": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glIsShader": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glIsTexture": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glLineWidth": ('float',),
- "PySide2.QtGui.QOpenGLFunctions.glLinkProgram": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glPixelStorei": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glPolygonOffset": ('float', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glReadPixels": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glReleaseShaderCompiler": (),
- "PySide2.QtGui.QOpenGLFunctions.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glSampleCoverage": ('float', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glShaderBinary": ('int', 'shibokensupport.typing27.Sequence', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glStencilMask": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glTexParameteriv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform1f": ('int', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform1i": ('int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform1iv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform2iv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform3iv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glUniform4iv": ('int', 'int', 'shibokensupport.typing27.Sequence'),
- "PySide2.QtGui.QOpenGLFunctions.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glUseProgram": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glValidateProgram": ('int',),
- "PySide2.QtGui.QOpenGLFunctions.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtGui.QOpenGLFunctions.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtGui.QOpenGLFunctions.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLFunctions.hasOpenGLFeature": ('PySide2.QtGui.QOpenGLFunctions.OpenGLFeature',),
- "PySide2.QtGui.QOpenGLFunctions.initializeOpenGLFunctions": (),
- "PySide2.QtGui.QOpenGLFunctions.openGLFeatures": (),
-# class PySide2.QtGui.QOpenGLPixelTransferOptions:
- "PySide2.QtGui.QOpenGLPixelTransferOptions.__init__": [(), ('PySide2.QtGui.QOpenGLPixelTransferOptions',)],
- "PySide2.QtGui.QOpenGLPixelTransferOptions.__copy__": (),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.alignment": (),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.imageHeight": (),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.isLeastSignificantBitFirst": (),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.isSwapBytesEnabled": (),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.rowLength": (),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.setAlignment": ('int',),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.setImageHeight": ('int',),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.setLeastSignificantByteFirst": ('bool',),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.setRowLength": ('int',),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.setSkipImages": ('int',),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.setSkipPixels": ('int',),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.setSkipRows": ('int',),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.setSwapBytesEnabled": ('bool',),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.skipImages": (),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.skipPixels": (),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.skipRows": (),
- "PySide2.QtGui.QOpenGLPixelTransferOptions.swap": ('PySide2.QtGui.QOpenGLPixelTransferOptions',),
-# class PySide2.QtGui.QOpenGLShader:
-# class PySide2.QtGui.QOpenGLShader.ShaderType:
-# class PySide2.QtGui.QOpenGLShader.ShaderTypeBit:
- "PySide2.QtGui.QOpenGLShader.__init__": ('PySide2.QtGui.QOpenGLShader.ShaderType', 'PySide2.QtCore.QObject'),
- "PySide2.QtGui.QOpenGLShader.compileSourceCode": [('PySide2.QtCore.QByteArray',), ('str',)],
- "PySide2.QtGui.QOpenGLShader.compileSourceFile": ('str',),
- "PySide2.QtGui.QOpenGLShader.hasOpenGLShaders": ('PySide2.QtGui.QOpenGLShader.ShaderType', 'PySide2.QtGui.QOpenGLContext'),
- "PySide2.QtGui.QOpenGLShader.isCompiled": (),
- "PySide2.QtGui.QOpenGLShader.log": (),
- "PySide2.QtGui.QOpenGLShader.shaderId": (),
- "PySide2.QtGui.QOpenGLShader.shaderType": (),
- "PySide2.QtGui.QOpenGLShader.sourceCode": (),
-# class PySide2.QtGui.QOpenGLShaderProgram:
- "PySide2.QtGui.QOpenGLShaderProgram.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QOpenGLShaderProgram.addCacheableShaderFromSourceCode": [('PySide2.QtGui.QOpenGLShader.ShaderType', 'PySide2.QtCore.QByteArray'), ('PySide2.QtGui.QOpenGLShader.ShaderType', 'str')],
- "PySide2.QtGui.QOpenGLShaderProgram.addCacheableShaderFromSourceFile": ('PySide2.QtGui.QOpenGLShader.ShaderType', 'str'),
- "PySide2.QtGui.QOpenGLShaderProgram.addShader": ('PySide2.QtGui.QOpenGLShader',),
- "PySide2.QtGui.QOpenGLShaderProgram.addShaderFromSourceCode": [('PySide2.QtGui.QOpenGLShader.ShaderType', 'PySide2.QtCore.QByteArray'), ('PySide2.QtGui.QOpenGLShader.ShaderType', 'str')],
- "PySide2.QtGui.QOpenGLShaderProgram.addShaderFromSourceFile": ('PySide2.QtGui.QOpenGLShader.ShaderType', 'str'),
- "PySide2.QtGui.QOpenGLShaderProgram.attributeLocation": [('PySide2.QtCore.QByteArray',), ('str',)],
- "PySide2.QtGui.QOpenGLShaderProgram.bind": (),
- "PySide2.QtGui.QOpenGLShaderProgram.bindAttributeLocation": [('PySide2.QtCore.QByteArray', 'int'), ('str', 'int')],
- "PySide2.QtGui.QOpenGLShaderProgram.create": (),
- "PySide2.QtGui.QOpenGLShaderProgram.defaultInnerTessellationLevels": (),
- "PySide2.QtGui.QOpenGLShaderProgram.defaultOuterTessellationLevels": (),
- "PySide2.QtGui.QOpenGLShaderProgram.disableAttributeArray": [('int',), ('str',)],
- "PySide2.QtGui.QOpenGLShaderProgram.enableAttributeArray": [('int',), ('str',)],
- "PySide2.QtGui.QOpenGLShaderProgram.hasOpenGLShaderPrograms": ('PySide2.QtGui.QOpenGLContext',),
- "PySide2.QtGui.QOpenGLShaderProgram.isLinked": (),
- "PySide2.QtGui.QOpenGLShaderProgram.link": (),
- "PySide2.QtGui.QOpenGLShaderProgram.log": (),
- "PySide2.QtGui.QOpenGLShaderProgram.maxGeometryOutputVertices": (),
- "PySide2.QtGui.QOpenGLShaderProgram.patchVertexCount": (),
- "PySide2.QtGui.QOpenGLShaderProgram.programId": (),
- "PySide2.QtGui.QOpenGLShaderProgram.release": (),
- "PySide2.QtGui.QOpenGLShaderProgram.removeAllShaders": (),
- "PySide2.QtGui.QOpenGLShaderProgram.removeShader": ('PySide2.QtGui.QOpenGLShader',),
- "PySide2.QtGui.QOpenGLShaderProgram.setAttributeArray": [('int', 'int', 'int', 'int', 'int'), ('int', 'typing.Sequence[float]', 'int', 'int'), ('str', 'int', 'int', 'int', 'int'), ('str', 'typing.Sequence[float]', 'int', 'int')],
- "PySide2.QtGui.QOpenGLShaderProgram.setAttributeBuffer": [('int', 'int', 'int', 'int', 'int'), ('str', 'int', 'int', 'int', 'int')],
- "PySide2.QtGui.QOpenGLShaderProgram.setAttributeValue": [('int', 'PySide2.QtGui.QColor'), ('int', 'PySide2.QtGui.QVector2D'), ('int', 'PySide2.QtGui.QVector3D'), ('int', 'PySide2.QtGui.QVector4D'), ('int', 'float'), ('int', 'float', 'float'), ('int', 'float', 'float', 'float'), ('int', 'float', 'float', 'float', 'float'), ('int', 'typing.Sequence[float]', 'int', 'int'), ('str', 'PySide2.QtGui.QColor'), ('str', 'PySide2.QtGui.QVector2D'), ('str', 'PySide2.QtGui.QVector3D'), ('str', 'PySide2.QtGui.QVector4D'), ('str', 'float'), ('str', 'float', 'float'), ('str', 'float', 'float', 'float'), ('str', 'float', 'float', 'float', 'float'), ('str', 'typing.Sequence[float]', 'int', 'int')],
- "PySide2.QtGui.QOpenGLShaderProgram.setDefaultInnerTessellationLevels": ('typing.List[float]',),
- "PySide2.QtGui.QOpenGLShaderProgram.setDefaultOuterTessellationLevels": ('typing.List[float]',),
- "PySide2.QtGui.QOpenGLShaderProgram.setPatchVertexCount": ('int',),
- "PySide2.QtGui.QOpenGLShaderProgram.setUniformValue": [('int', 'PySide2.QtCore.QPoint'), ('int', 'PySide2.QtCore.QPointF'), ('int', 'PySide2.QtCore.QSize'), ('int', 'PySide2.QtCore.QSizeF'), ('int', 'PySide2.QtGui.QColor'), ('int', 'PySide2.QtGui.QMatrix2x2'), ('int', 'PySide2.QtGui.QMatrix2x3'), ('int', 'PySide2.QtGui.QMatrix2x4'), ('int', 'PySide2.QtGui.QMatrix3x2'), ('int', 'PySide2.QtGui.QMatrix3x3'), ('int', 'PySide2.QtGui.QMatrix3x4'), ('int', 'PySide2.QtGui.QMatrix4x2'), ('int', 'PySide2.QtGui.QMatrix4x3'), ('int', 'PySide2.QtGui.QMatrix4x4'), ('int', 'PySide2.QtGui.QTransform'), ('int', 'PySide2.QtGui.QVector2D'), ('int', 'PySide2.QtGui.QVector3D'), ('int', 'PySide2.QtGui.QVector4D'), ('int', 'float'), ('int', 'float', 'float'), ('int', 'float', 'float', 'float'), ('int', 'float', 'float', 'float', 'float'), ('int', 'int'), ('int', 'typing.Tuple[typing.Tuple, typing.Tuple, typing.Tuple, typing.Tuple]'), ('int', 'typing.Tuple[typing.Tuple, typing.Tuple, typing.Tuple]'), ('int', 'typing.Tuple[typing.Tuple, typing.Tuple]'), ('str', 'PySide2.QtCore.QPoint'), ('str', 'PySide2.QtCore.QPointF'), ('str', 'PySide2.QtCore.QSize'), ('str', 'PySide2.QtCore.QSizeF'), ('str', 'PySide2.QtGui.QColor'), ('str', 'PySide2.QtGui.QMatrix2x2'), ('str', 'PySide2.QtGui.QMatrix2x3'), ('str', 'PySide2.QtGui.QMatrix2x4'), ('str', 'PySide2.QtGui.QMatrix3x2'), ('str', 'PySide2.QtGui.QMatrix3x3'), ('str', 'PySide2.QtGui.QMatrix3x4'), ('str', 'PySide2.QtGui.QMatrix4x2'), ('str', 'PySide2.QtGui.QMatrix4x3'), ('str', 'PySide2.QtGui.QMatrix4x4'), ('str', 'PySide2.QtGui.QTransform'), ('str', 'PySide2.QtGui.QVector2D'), ('str', 'PySide2.QtGui.QVector3D'), ('str', 'PySide2.QtGui.QVector4D'), ('str', 'float', 'float'), ('str', 'float', 'float', 'float'), ('str', 'float', 'float', 'float', 'float'), ('str', 'typing.Tuple[typing.Tuple, typing.Tuple, typing.Tuple, typing.Tuple]'), ('str', 'typing.Tuple[typing.Tuple, typing.Tuple, typing.Tuple]'), ('str', 'typing.Tuple[typing.Tuple, typing.Tuple]')],
- "PySide2.QtGui.QOpenGLShaderProgram.setUniformValue1f": [('int', 'float'), ('str', 'float')],
- "PySide2.QtGui.QOpenGLShaderProgram.setUniformValue1i": [('int', 'int'), ('str', 'int')],
- "PySide2.QtGui.QOpenGLShaderProgram.setUniformValueArray": [('int', 'shibokensupport.typing27.Sequence', 'int'), ('int', 'typing.Sequence[float]', 'int', 'int'), ('str', 'shibokensupport.typing27.Sequence', 'int'), ('str', 'typing.Sequence[float]', 'int', 'int')],
- "PySide2.QtGui.QOpenGLShaderProgram.shaders": (),
- "PySide2.QtGui.QOpenGLShaderProgram.uniformLocation": [('PySide2.QtCore.QByteArray',), ('str',)],
-# class PySide2.QtGui.QOpenGLTexture:
-# class PySide2.QtGui.QOpenGLTexture.BindingTarget:
-# class PySide2.QtGui.QOpenGLTexture.ComparisonFunction:
-# class PySide2.QtGui.QOpenGLTexture.ComparisonMode:
-# class PySide2.QtGui.QOpenGLTexture.CoordinateDirection:
-# class PySide2.QtGui.QOpenGLTexture.CubeMapFace:
-# class PySide2.QtGui.QOpenGLTexture.DepthStencilMode:
-# class PySide2.QtGui.QOpenGLTexture.Feature:
-# class PySide2.QtGui.QOpenGLTexture.Features:
-# class PySide2.QtGui.QOpenGLTexture.Filter:
-# class PySide2.QtGui.QOpenGLTexture.MipMapGeneration:
-# class PySide2.QtGui.QOpenGLTexture.PixelFormat:
-# class PySide2.QtGui.QOpenGLTexture.PixelType:
-# class PySide2.QtGui.QOpenGLTexture.SwizzleComponent:
-# class PySide2.QtGui.QOpenGLTexture.SwizzleValue:
-# class PySide2.QtGui.QOpenGLTexture.Target:
-# class PySide2.QtGui.QOpenGLTexture.TextureFormat:
-# class PySide2.QtGui.QOpenGLTexture.TextureFormatClass:
-# class PySide2.QtGui.QOpenGLTexture.TextureUnitReset:
-# class PySide2.QtGui.QOpenGLTexture.WrapMode:
- "PySide2.QtGui.QOpenGLTexture.__init__": [('PySide2.QtGui.QImage', 'PySide2.QtGui.QOpenGLTexture.MipMapGeneration'), ('PySide2.QtGui.QOpenGLTexture.Target',)],
- "PySide2.QtGui.QOpenGLTexture.allocateStorage": [(), ('PySide2.QtGui.QOpenGLTexture.PixelFormat', 'PySide2.QtGui.QOpenGLTexture.PixelType')],
- "PySide2.QtGui.QOpenGLTexture.bind": [(), ('int', 'PySide2.QtGui.QOpenGLTexture.TextureUnitReset')],
- "PySide2.QtGui.QOpenGLTexture.borderColor": (),
- "PySide2.QtGui.QOpenGLTexture.boundTextureId": [('PySide2.QtGui.QOpenGLTexture.BindingTarget',), ('int', 'PySide2.QtGui.QOpenGLTexture.BindingTarget')],
- "PySide2.QtGui.QOpenGLTexture.comparisonFunction": (),
- "PySide2.QtGui.QOpenGLTexture.comparisonMode": (),
- "PySide2.QtGui.QOpenGLTexture.create": (),
- "PySide2.QtGui.QOpenGLTexture.createTextureView": ('PySide2.QtGui.QOpenGLTexture.Target', 'PySide2.QtGui.QOpenGLTexture.TextureFormat', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLTexture.depth": (),
- "PySide2.QtGui.QOpenGLTexture.depthStencilMode": (),
- "PySide2.QtGui.QOpenGLTexture.destroy": (),
- "PySide2.QtGui.QOpenGLTexture.faces": (),
- "PySide2.QtGui.QOpenGLTexture.format": (),
- "PySide2.QtGui.QOpenGLTexture.generateMipMaps": [(), ('int', 'bool')],
- "PySide2.QtGui.QOpenGLTexture.hasFeature": ('PySide2.QtGui.QOpenGLTexture.Feature',),
- "PySide2.QtGui.QOpenGLTexture.height": (),
- "PySide2.QtGui.QOpenGLTexture.isAutoMipMapGenerationEnabled": (),
- "PySide2.QtGui.QOpenGLTexture.isBound": [(), ('int',)],
- "PySide2.QtGui.QOpenGLTexture.isCreated": (),
- "PySide2.QtGui.QOpenGLTexture.isFixedSamplePositions": (),
- "PySide2.QtGui.QOpenGLTexture.isStorageAllocated": (),
- "PySide2.QtGui.QOpenGLTexture.isTextureView": (),
- "PySide2.QtGui.QOpenGLTexture.layers": (),
- "PySide2.QtGui.QOpenGLTexture.levelOfDetailRange": (),
- "PySide2.QtGui.QOpenGLTexture.levelofDetailBias": (),
- "PySide2.QtGui.QOpenGLTexture.magnificationFilter": (),
- "PySide2.QtGui.QOpenGLTexture.maximumAnisotropy": (),
- "PySide2.QtGui.QOpenGLTexture.maximumLevelOfDetail": (),
- "PySide2.QtGui.QOpenGLTexture.maximumMipLevels": (),
- "PySide2.QtGui.QOpenGLTexture.minMagFilters": (),
- "PySide2.QtGui.QOpenGLTexture.minificationFilter": (),
- "PySide2.QtGui.QOpenGLTexture.minimumLevelOfDetail": (),
- "PySide2.QtGui.QOpenGLTexture.mipBaseLevel": (),
- "PySide2.QtGui.QOpenGLTexture.mipLevelRange": (),
- "PySide2.QtGui.QOpenGLTexture.mipLevels": (),
- "PySide2.QtGui.QOpenGLTexture.mipMaxLevel": (),
- "PySide2.QtGui.QOpenGLTexture.release": [(), ('int', 'PySide2.QtGui.QOpenGLTexture.TextureUnitReset')],
- "PySide2.QtGui.QOpenGLTexture.samples": (),
- "PySide2.QtGui.QOpenGLTexture.setAutoMipMapGenerationEnabled": ('bool',),
- "PySide2.QtGui.QOpenGLTexture.setBorderColor": [('PySide2.QtGui.QColor',), ('float', 'float', 'float', 'float'), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QOpenGLTexture.setComparisonFunction": ('PySide2.QtGui.QOpenGLTexture.ComparisonFunction',),
- "PySide2.QtGui.QOpenGLTexture.setComparisonMode": ('PySide2.QtGui.QOpenGLTexture.ComparisonMode',),
- "PySide2.QtGui.QOpenGLTexture.setCompressedData": [('int', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'PySide2.QtGui.QOpenGLTexture.CubeMapFace', 'int', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'int', 'PySide2.QtGui.QOpenGLTexture.CubeMapFace', 'int', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'int', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions')],
- "PySide2.QtGui.QOpenGLTexture.setData": [('PySide2.QtGui.QImage', 'PySide2.QtGui.QOpenGLTexture.MipMapGeneration'), ('PySide2.QtGui.QOpenGLTexture.PixelFormat', 'PySide2.QtGui.QOpenGLTexture.PixelType', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'PySide2.QtGui.QOpenGLTexture.PixelFormat', 'PySide2.QtGui.QOpenGLTexture.PixelType', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'PySide2.QtGui.QOpenGLTexture.CubeMapFace', 'PySide2.QtGui.QOpenGLTexture.PixelFormat', 'PySide2.QtGui.QOpenGLTexture.PixelType', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'PySide2.QtGui.QOpenGLTexture.PixelFormat', 'PySide2.QtGui.QOpenGLTexture.PixelType', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'int', 'PySide2.QtGui.QOpenGLTexture.CubeMapFace', 'PySide2.QtGui.QOpenGLTexture.PixelFormat', 'PySide2.QtGui.QOpenGLTexture.PixelType', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'int', 'int', 'int', 'int', 'PySide2.QtGui.QOpenGLTexture.PixelFormat', 'PySide2.QtGui.QOpenGLTexture.PixelType', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'PySide2.QtGui.QOpenGLTexture.CubeMapFace', 'PySide2.QtGui.QOpenGLTexture.PixelFormat', 'PySide2.QtGui.QOpenGLTexture.PixelType', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'PySide2.QtGui.QOpenGLTexture.CubeMapFace', 'int', 'PySide2.QtGui.QOpenGLTexture.PixelFormat', 'PySide2.QtGui.QOpenGLTexture.PixelType', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions'), ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'PySide2.QtGui.QOpenGLTexture.PixelFormat', 'PySide2.QtGui.QOpenGLTexture.PixelType', 'int', 'PySide2.QtGui.QOpenGLPixelTransferOptions')],
- "PySide2.QtGui.QOpenGLTexture.setDepthStencilMode": ('PySide2.QtGui.QOpenGLTexture.DepthStencilMode',),
- "PySide2.QtGui.QOpenGLTexture.setFixedSamplePositions": ('bool',),
- "PySide2.QtGui.QOpenGLTexture.setFormat": ('PySide2.QtGui.QOpenGLTexture.TextureFormat',),
- "PySide2.QtGui.QOpenGLTexture.setLayers": ('int',),
- "PySide2.QtGui.QOpenGLTexture.setLevelOfDetailRange": ('float', 'float'),
- "PySide2.QtGui.QOpenGLTexture.setLevelofDetailBias": ('float',),
- "PySide2.QtGui.QOpenGLTexture.setMagnificationFilter": ('PySide2.QtGui.QOpenGLTexture.Filter',),
- "PySide2.QtGui.QOpenGLTexture.setMaximumAnisotropy": ('float',),
- "PySide2.QtGui.QOpenGLTexture.setMaximumLevelOfDetail": ('float',),
- "PySide2.QtGui.QOpenGLTexture.setMinMagFilters": ('PySide2.QtGui.QOpenGLTexture.Filter', 'PySide2.QtGui.QOpenGLTexture.Filter'),
- "PySide2.QtGui.QOpenGLTexture.setMinificationFilter": ('PySide2.QtGui.QOpenGLTexture.Filter',),
- "PySide2.QtGui.QOpenGLTexture.setMinimumLevelOfDetail": ('float',),
- "PySide2.QtGui.QOpenGLTexture.setMipBaseLevel": ('int',),
- "PySide2.QtGui.QOpenGLTexture.setMipLevelRange": ('int', 'int'),
- "PySide2.QtGui.QOpenGLTexture.setMipLevels": ('int',),
- "PySide2.QtGui.QOpenGLTexture.setMipMaxLevel": ('int',),
- "PySide2.QtGui.QOpenGLTexture.setSamples": ('int',),
- "PySide2.QtGui.QOpenGLTexture.setSize": ('int', 'int', 'int'),
- "PySide2.QtGui.QOpenGLTexture.setSwizzleMask": [('PySide2.QtGui.QOpenGLTexture.SwizzleComponent', 'PySide2.QtGui.QOpenGLTexture.SwizzleValue'), ('PySide2.QtGui.QOpenGLTexture.SwizzleValue', 'PySide2.QtGui.QOpenGLTexture.SwizzleValue', 'PySide2.QtGui.QOpenGLTexture.SwizzleValue', 'PySide2.QtGui.QOpenGLTexture.SwizzleValue')],
- "PySide2.QtGui.QOpenGLTexture.setWrapMode": [('PySide2.QtGui.QOpenGLTexture.CoordinateDirection', 'PySide2.QtGui.QOpenGLTexture.WrapMode'), ('PySide2.QtGui.QOpenGLTexture.WrapMode',)],
- "PySide2.QtGui.QOpenGLTexture.swizzleMask": ('PySide2.QtGui.QOpenGLTexture.SwizzleComponent',),
- "PySide2.QtGui.QOpenGLTexture.target": (),
- "PySide2.QtGui.QOpenGLTexture.textureId": (),
- "PySide2.QtGui.QOpenGLTexture.width": (),
- "PySide2.QtGui.QOpenGLTexture.wrapMode": ('PySide2.QtGui.QOpenGLTexture.CoordinateDirection',),
-# class PySide2.QtGui.QOpenGLTextureBlitter:
-# class PySide2.QtGui.QOpenGLTextureBlitter.Origin:
- "PySide2.QtGui.QOpenGLTextureBlitter.__init__": (),
- "PySide2.QtGui.QOpenGLTextureBlitter.bind": ('int',),
- "PySide2.QtGui.QOpenGLTextureBlitter.blit": [('int', 'PySide2.QtGui.QMatrix4x4', 'PySide2.QtGui.QMatrix3x3'), ('int', 'PySide2.QtGui.QMatrix4x4', 'PySide2.QtGui.QOpenGLTextureBlitter.Origin')],
- "PySide2.QtGui.QOpenGLTextureBlitter.create": (),
- "PySide2.QtGui.QOpenGLTextureBlitter.destroy": (),
- "PySide2.QtGui.QOpenGLTextureBlitter.isCreated": (),
- "PySide2.QtGui.QOpenGLTextureBlitter.release": (),
- "PySide2.QtGui.QOpenGLTextureBlitter.setOpacity": ('float',),
- "PySide2.QtGui.QOpenGLTextureBlitter.setRedBlueSwizzle": ('bool',),
- "PySide2.QtGui.QOpenGLTextureBlitter.sourceTransform": ('PySide2.QtCore.QRectF', 'PySide2.QtCore.QSize', 'PySide2.QtGui.QOpenGLTextureBlitter.Origin'),
- "PySide2.QtGui.QOpenGLTextureBlitter.supportsExternalOESTarget": (),
- "PySide2.QtGui.QOpenGLTextureBlitter.targetTransform": ('PySide2.QtCore.QRectF', 'PySide2.QtCore.QRect'),
-# class PySide2.QtGui.QOpenGLTimeMonitor:
- "PySide2.QtGui.QOpenGLTimeMonitor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QOpenGLTimeMonitor.create": (),
- "PySide2.QtGui.QOpenGLTimeMonitor.destroy": (),
- "PySide2.QtGui.QOpenGLTimeMonitor.isCreated": (),
- "PySide2.QtGui.QOpenGLTimeMonitor.isResultAvailable": (),
- "PySide2.QtGui.QOpenGLTimeMonitor.objectIds": (),
- "PySide2.QtGui.QOpenGLTimeMonitor.recordSample": (),
- "PySide2.QtGui.QOpenGLTimeMonitor.reset": (),
- "PySide2.QtGui.QOpenGLTimeMonitor.sampleCount": (),
- "PySide2.QtGui.QOpenGLTimeMonitor.setSampleCount": ('int',),
-# class PySide2.QtGui.QOpenGLTimerQuery:
- "PySide2.QtGui.QOpenGLTimerQuery.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QOpenGLTimerQuery.begin": (),
- "PySide2.QtGui.QOpenGLTimerQuery.create": (),
- "PySide2.QtGui.QOpenGLTimerQuery.destroy": (),
- "PySide2.QtGui.QOpenGLTimerQuery.end": (),
- "PySide2.QtGui.QOpenGLTimerQuery.isCreated": (),
- "PySide2.QtGui.QOpenGLTimerQuery.isResultAvailable": (),
- "PySide2.QtGui.QOpenGLTimerQuery.objectId": (),
- "PySide2.QtGui.QOpenGLTimerQuery.recordTimestamp": (),
-# class PySide2.QtGui.QOpenGLVersionProfile:
- "PySide2.QtGui.QOpenGLVersionProfile.__init__": [(), ('PySide2.QtGui.QOpenGLVersionProfile',), ('PySide2.QtGui.QSurfaceFormat',)],
- "PySide2.QtGui.QOpenGLVersionProfile.__copy__": (),
- "PySide2.QtGui.QOpenGLVersionProfile.hasProfiles": (),
- "PySide2.QtGui.QOpenGLVersionProfile.isLegacyVersion": (),
- "PySide2.QtGui.QOpenGLVersionProfile.isValid": (),
- "PySide2.QtGui.QOpenGLVersionProfile.profile": (),
- "PySide2.QtGui.QOpenGLVersionProfile.setProfile": ('PySide2.QtGui.QSurfaceFormat.OpenGLContextProfile',),
- "PySide2.QtGui.QOpenGLVersionProfile.setVersion": ('int', 'int'),
- "PySide2.QtGui.QOpenGLVersionProfile.version": (),
-# class PySide2.QtGui.QOpenGLVertexArrayObject:
-# class PySide2.QtGui.QOpenGLVertexArrayObject.Binder:
- "PySide2.QtGui.QOpenGLVertexArrayObject.Binder.__init__": ('PySide2.QtGui.QOpenGLVertexArrayObject',),
- "PySide2.QtGui.QOpenGLVertexArrayObject.Binder.rebind": (),
- "PySide2.QtGui.QOpenGLVertexArrayObject.Binder.release": (),
- "PySide2.QtGui.QOpenGLVertexArrayObject.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QOpenGLVertexArrayObject.bind": (),
- "PySide2.QtGui.QOpenGLVertexArrayObject.create": (),
- "PySide2.QtGui.QOpenGLVertexArrayObject.destroy": (),
- "PySide2.QtGui.QOpenGLVertexArrayObject.isCreated": (),
- "PySide2.QtGui.QOpenGLVertexArrayObject.objectId": (),
- "PySide2.QtGui.QOpenGLVertexArrayObject.release": (),
-# class PySide2.QtGui.QOpenGLWindow:
-# class PySide2.QtGui.QOpenGLWindow.UpdateBehavior:
- "PySide2.QtGui.QOpenGLWindow.__init__": [('PySide2.QtGui.QOpenGLContext', 'PySide2.QtGui.QOpenGLWindow.UpdateBehavior', 'PySide2.QtGui.QWindow'), ('PySide2.QtGui.QOpenGLWindow.UpdateBehavior', 'PySide2.QtGui.QWindow')],
- "PySide2.QtGui.QOpenGLWindow.context": (),
- "PySide2.QtGui.QOpenGLWindow.defaultFramebufferObject": (),
- "PySide2.QtGui.QOpenGLWindow.doneCurrent": (),
- "PySide2.QtGui.QOpenGLWindow.grabFramebuffer": (),
- "PySide2.QtGui.QOpenGLWindow.initializeGL": (),
- "PySide2.QtGui.QOpenGLWindow.isValid": (),
- "PySide2.QtGui.QOpenGLWindow.makeCurrent": (),
- "PySide2.QtGui.QOpenGLWindow.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtGui.QOpenGLWindow.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtGui.QOpenGLWindow.paintGL": (),
- "PySide2.QtGui.QOpenGLWindow.paintOverGL": (),
- "PySide2.QtGui.QOpenGLWindow.paintUnderGL": (),
- "PySide2.QtGui.QOpenGLWindow.redirected": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QOpenGLWindow.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtGui.QOpenGLWindow.resizeGL": ('int', 'int'),
- "PySide2.QtGui.QOpenGLWindow.shareContext": (),
- "PySide2.QtGui.QOpenGLWindow.updateBehavior": (),
-# class PySide2.QtGui.QPageLayout:
-# class PySide2.QtGui.QPageLayout.Mode:
-# class PySide2.QtGui.QPageLayout.Orientation:
-# class PySide2.QtGui.QPageLayout.Unit:
- "PySide2.QtGui.QPageLayout.__init__": [(), ('PySide2.QtGui.QPageLayout',), ('PySide2.QtGui.QPageSize', 'PySide2.QtGui.QPageLayout.Orientation', 'PySide2.QtCore.QMarginsF', 'PySide2.QtGui.QPageLayout.Unit', 'PySide2.QtCore.QMarginsF')],
- "PySide2.QtGui.QPageLayout.__copy__": (),
- "PySide2.QtGui.QPageLayout.fullRect": [(), ('PySide2.QtGui.QPageLayout.Unit',)],
- "PySide2.QtGui.QPageLayout.fullRectPixels": ('int',),
- "PySide2.QtGui.QPageLayout.fullRectPoints": (),
- "PySide2.QtGui.QPageLayout.isEquivalentTo": ('PySide2.QtGui.QPageLayout',),
- "PySide2.QtGui.QPageLayout.isValid": (),
- "PySide2.QtGui.QPageLayout.margins": [(), ('PySide2.QtGui.QPageLayout.Unit',)],
- "PySide2.QtGui.QPageLayout.marginsPixels": ('int',),
- "PySide2.QtGui.QPageLayout.marginsPoints": (),
- "PySide2.QtGui.QPageLayout.maximumMargins": (),
- "PySide2.QtGui.QPageLayout.minimumMargins": (),
- "PySide2.QtGui.QPageLayout.mode": (),
- "PySide2.QtGui.QPageLayout.orientation": (),
- "PySide2.QtGui.QPageLayout.pageSize": (),
- "PySide2.QtGui.QPageLayout.paintRect": [(), ('PySide2.QtGui.QPageLayout.Unit',)],
- "PySide2.QtGui.QPageLayout.paintRectPixels": ('int',),
- "PySide2.QtGui.QPageLayout.paintRectPoints": (),
- "PySide2.QtGui.QPageLayout.setBottomMargin": ('float',),
- "PySide2.QtGui.QPageLayout.setLeftMargin": ('float',),
- "PySide2.QtGui.QPageLayout.setMargins": ('PySide2.QtCore.QMarginsF',),
- "PySide2.QtGui.QPageLayout.setMinimumMargins": ('PySide2.QtCore.QMarginsF',),
- "PySide2.QtGui.QPageLayout.setMode": ('PySide2.QtGui.QPageLayout.Mode',),
- "PySide2.QtGui.QPageLayout.setOrientation": ('PySide2.QtGui.QPageLayout.Orientation',),
- "PySide2.QtGui.QPageLayout.setPageSize": ('PySide2.QtGui.QPageSize', 'PySide2.QtCore.QMarginsF'),
- "PySide2.QtGui.QPageLayout.setRightMargin": ('float',),
- "PySide2.QtGui.QPageLayout.setTopMargin": ('float',),
- "PySide2.QtGui.QPageLayout.setUnits": ('PySide2.QtGui.QPageLayout.Unit',),
- "PySide2.QtGui.QPageLayout.swap": ('PySide2.QtGui.QPageLayout',),
- "PySide2.QtGui.QPageLayout.units": (),
-# class PySide2.QtGui.QPageSize:
-# class PySide2.QtGui.QPageSize.PageSizeId:
-# class PySide2.QtGui.QPageSize.SizeMatchPolicy:
-# class PySide2.QtGui.QPageSize.Unit:
- "PySide2.QtGui.QPageSize.__init__": [(), ('PySide2.QtCore.QSize', 'str', 'PySide2.QtGui.QPageSize.SizeMatchPolicy'), ('PySide2.QtCore.QSizeF', 'PySide2.QtGui.QPageSize.Unit', 'str', 'PySide2.QtGui.QPageSize.SizeMatchPolicy'), ('PySide2.QtGui.QPageSize',), ('PySide2.QtGui.QPageSize.PageSizeId',)],
- "PySide2.QtGui.QPageSize.__copy__": (),
- "PySide2.QtGui.QPageSize.definitionSize": [(), ('PySide2.QtGui.QPageSize.PageSizeId',)],
- "PySide2.QtGui.QPageSize.definitionUnits": [(), ('PySide2.QtGui.QPageSize.PageSizeId',)],
- "PySide2.QtGui.QPageSize.id": [(), ('PySide2.QtCore.QSize', 'PySide2.QtGui.QPageSize.SizeMatchPolicy'), ('PySide2.QtCore.QSizeF', 'PySide2.QtGui.QPageSize.Unit', 'PySide2.QtGui.QPageSize.SizeMatchPolicy'), ('int',)],
- "PySide2.QtGui.QPageSize.isEquivalentTo": ('PySide2.QtGui.QPageSize',),
- "PySide2.QtGui.QPageSize.isValid": (),
- "PySide2.QtGui.QPageSize.key": [(), ('PySide2.QtGui.QPageSize.PageSizeId',)],
- "PySide2.QtGui.QPageSize.name": [(), ('PySide2.QtGui.QPageSize.PageSizeId',)],
- "PySide2.QtGui.QPageSize.rect": ('PySide2.QtGui.QPageSize.Unit',),
- "PySide2.QtGui.QPageSize.rectPixels": ('int',),
- "PySide2.QtGui.QPageSize.rectPoints": (),
- "PySide2.QtGui.QPageSize.size": [('PySide2.QtGui.QPageSize.PageSizeId', 'PySide2.QtGui.QPageSize.Unit'), ('PySide2.QtGui.QPageSize.Unit',)],
- "PySide2.QtGui.QPageSize.sizePixels": [('PySide2.QtGui.QPageSize.PageSizeId', 'int'), ('int',)],
- "PySide2.QtGui.QPageSize.sizePoints": [(), ('PySide2.QtGui.QPageSize.PageSizeId',)],
- "PySide2.QtGui.QPageSize.swap": ('PySide2.QtGui.QPageSize',),
- "PySide2.QtGui.QPageSize.windowsId": [(), ('PySide2.QtGui.QPageSize.PageSizeId',)],
-# class PySide2.QtGui.QPagedPaintDevice:
-# class PySide2.QtGui.QPagedPaintDevice.Margins:
- "PySide2.QtGui.QPagedPaintDevice.Margins.__init__": [(), ('PySide2.QtGui.QPagedPaintDevice.Margins',)],
- "PySide2.QtGui.QPagedPaintDevice.Margins.__copy__": (),
-# class PySide2.QtGui.QPagedPaintDevice.PageSize:
-# class PySide2.QtGui.QPagedPaintDevice.PdfVersion:
- "PySide2.QtGui.QPagedPaintDevice.__init__": (),
- "PySide2.QtGui.QPagedPaintDevice.devicePageLayout": (),
- "PySide2.QtGui.QPagedPaintDevice.margins": (),
- "PySide2.QtGui.QPagedPaintDevice.newPage": (),
- "PySide2.QtGui.QPagedPaintDevice.pageLayout": (),
- "PySide2.QtGui.QPagedPaintDevice.pageSize": (),
- "PySide2.QtGui.QPagedPaintDevice.pageSizeMM": (),
- "PySide2.QtGui.QPagedPaintDevice.setMargins": ('PySide2.QtGui.QPagedPaintDevice.Margins',),
- "PySide2.QtGui.QPagedPaintDevice.setPageLayout": ('PySide2.QtGui.QPageLayout',),
- "PySide2.QtGui.QPagedPaintDevice.setPageMargins": [('PySide2.QtCore.QMarginsF',), ('PySide2.QtCore.QMarginsF', 'PySide2.QtGui.QPageLayout.Unit')],
- "PySide2.QtGui.QPagedPaintDevice.setPageOrientation": ('PySide2.QtGui.QPageLayout.Orientation',),
- "PySide2.QtGui.QPagedPaintDevice.setPageSize": [('PySide2.QtGui.QPageSize',), ('PySide2.QtGui.QPagedPaintDevice.PageSize',)],
- "PySide2.QtGui.QPagedPaintDevice.setPageSizeMM": ('PySide2.QtCore.QSizeF',),
-# class PySide2.QtGui.QPaintDevice:
-# class PySide2.QtGui.QPaintDevice.PaintDeviceMetric:
- "PySide2.QtGui.QPaintDevice.__init__": (),
- "PySide2.QtGui.QPaintDevice.colorCount": (),
- "PySide2.QtGui.QPaintDevice.depth": (),
- "PySide2.QtGui.QPaintDevice.devType": (),
- "PySide2.QtGui.QPaintDevice.devicePixelRatio": (),
- "PySide2.QtGui.QPaintDevice.devicePixelRatioF": (),
- "PySide2.QtGui.QPaintDevice.devicePixelRatioFScale": (),
- "PySide2.QtGui.QPaintDevice.height": (),
- "PySide2.QtGui.QPaintDevice.heightMM": (),
- "PySide2.QtGui.QPaintDevice.initPainter": ('PySide2.QtGui.QPainter',),
- "PySide2.QtGui.QPaintDevice.logicalDpiX": (),
- "PySide2.QtGui.QPaintDevice.logicalDpiY": (),
- "PySide2.QtGui.QPaintDevice.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtGui.QPaintDevice.paintEngine": (),
- "PySide2.QtGui.QPaintDevice.paintingActive": (),
- "PySide2.QtGui.QPaintDevice.physicalDpiX": (),
- "PySide2.QtGui.QPaintDevice.physicalDpiY": (),
- "PySide2.QtGui.QPaintDevice.redirected": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QPaintDevice.sharedPainter": (),
- "PySide2.QtGui.QPaintDevice.width": (),
- "PySide2.QtGui.QPaintDevice.widthMM": (),
-# class PySide2.QtGui.QPaintDeviceWindow:
- "PySide2.QtGui.QPaintDeviceWindow.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtGui.QPaintDeviceWindow.exposeEvent": ('PySide2.QtGui.QExposeEvent',),
- "PySide2.QtGui.QPaintDeviceWindow.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtGui.QPaintDeviceWindow.paintEngine": (),
- "PySide2.QtGui.QPaintDeviceWindow.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtGui.QPaintDeviceWindow.update": [(), ('PySide2.QtCore.QRect',), ('PySide2.QtGui.QRegion',)],
-# class PySide2.QtGui.QPaintEngine:
-# class PySide2.QtGui.QPaintEngine.DirtyFlag:
-# class PySide2.QtGui.QPaintEngine.DirtyFlags:
-# class PySide2.QtGui.QPaintEngine.PaintEngineFeature:
-# class PySide2.QtGui.QPaintEngine.PaintEngineFeatures:
-# class PySide2.QtGui.QPaintEngine.PolygonDrawMode:
-# class PySide2.QtGui.QPaintEngine.Type:
- "PySide2.QtGui.QPaintEngine.__init__": ('PySide2.QtGui.QPaintEngine.PaintEngineFeatures',),
- "PySide2.QtGui.QPaintEngine.begin": ('PySide2.QtGui.QPaintDevice',),
- "PySide2.QtGui.QPaintEngine.clearDirty": ('PySide2.QtGui.QPaintEngine.DirtyFlags',),
- "PySide2.QtGui.QPaintEngine.coordinateOffset": (),
- "PySide2.QtGui.QPaintEngine.drawEllipse": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',)],
- "PySide2.QtGui.QPaintEngine.drawImage": ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QImage', 'PySide2.QtCore.QRectF', 'PySide2.QtCore.Qt.ImageConversionFlags'),
- "PySide2.QtGui.QPaintEngine.drawLines": [('PySide2.QtCore.QLine', 'int'), ('PySide2.QtCore.QLineF', 'int')],
- "PySide2.QtGui.QPaintEngine.drawPath": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPaintEngine.drawPixmap": ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QPixmap', 'PySide2.QtCore.QRectF'),
- "PySide2.QtGui.QPaintEngine.drawPoints": [('PySide2.QtCore.QPoint', 'int'), ('PySide2.QtCore.QPointF', 'int')],
- "PySide2.QtGui.QPaintEngine.drawPolygon": [('PySide2.QtCore.QPoint', 'int', 'PySide2.QtGui.QPaintEngine.PolygonDrawMode'), ('PySide2.QtCore.QPointF', 'int', 'PySide2.QtGui.QPaintEngine.PolygonDrawMode')],
- "PySide2.QtGui.QPaintEngine.drawRects": [('PySide2.QtCore.QRect', 'int'), ('PySide2.QtCore.QRectF', 'int')],
- "PySide2.QtGui.QPaintEngine.drawTextItem": ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QTextItem'),
- "PySide2.QtGui.QPaintEngine.drawTiledPixmap": ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QPixmap', 'PySide2.QtCore.QPointF'),
- "PySide2.QtGui.QPaintEngine.end": (),
- "PySide2.QtGui.QPaintEngine.hasFeature": ('PySide2.QtGui.QPaintEngine.PaintEngineFeatures',),
- "PySide2.QtGui.QPaintEngine.isActive": (),
- "PySide2.QtGui.QPaintEngine.isExtended": (),
- "PySide2.QtGui.QPaintEngine.paintDevice": (),
- "PySide2.QtGui.QPaintEngine.painter": (),
- "PySide2.QtGui.QPaintEngine.setActive": ('bool',),
- "PySide2.QtGui.QPaintEngine.setDirty": ('PySide2.QtGui.QPaintEngine.DirtyFlags',),
- "PySide2.QtGui.QPaintEngine.setSystemClip": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QPaintEngine.setSystemRect": ('PySide2.QtCore.QRect',),
- "PySide2.QtGui.QPaintEngine.syncState": (),
- "PySide2.QtGui.QPaintEngine.systemClip": (),
- "PySide2.QtGui.QPaintEngine.systemRect": (),
- "PySide2.QtGui.QPaintEngine.testDirty": ('PySide2.QtGui.QPaintEngine.DirtyFlags',),
- "PySide2.QtGui.QPaintEngine.type": (),
- "PySide2.QtGui.QPaintEngine.updateState": ('PySide2.QtGui.QPaintEngineState',),
-# class PySide2.QtGui.QPaintEngineState:
- "PySide2.QtGui.QPaintEngineState.__init__": (),
- "PySide2.QtGui.QPaintEngineState.backgroundBrush": (),
- "PySide2.QtGui.QPaintEngineState.backgroundMode": (),
- "PySide2.QtGui.QPaintEngineState.brush": (),
- "PySide2.QtGui.QPaintEngineState.brushNeedsResolving": (),
- "PySide2.QtGui.QPaintEngineState.brushOrigin": (),
- "PySide2.QtGui.QPaintEngineState.clipOperation": (),
- "PySide2.QtGui.QPaintEngineState.clipPath": (),
- "PySide2.QtGui.QPaintEngineState.clipRegion": (),
- "PySide2.QtGui.QPaintEngineState.compositionMode": (),
- "PySide2.QtGui.QPaintEngineState.font": (),
- "PySide2.QtGui.QPaintEngineState.isClipEnabled": (),
- "PySide2.QtGui.QPaintEngineState.matrix": (),
- "PySide2.QtGui.QPaintEngineState.opacity": (),
- "PySide2.QtGui.QPaintEngineState.painter": (),
- "PySide2.QtGui.QPaintEngineState.pen": (),
- "PySide2.QtGui.QPaintEngineState.penNeedsResolving": (),
- "PySide2.QtGui.QPaintEngineState.renderHints": (),
- "PySide2.QtGui.QPaintEngineState.state": (),
- "PySide2.QtGui.QPaintEngineState.transform": (),
-# class PySide2.QtGui.QPaintEvent:
- "PySide2.QtGui.QPaintEvent.__init__": [('PySide2.QtCore.QRect',), ('PySide2.QtGui.QRegion',)],
- "PySide2.QtGui.QPaintEvent.rect": (),
- "PySide2.QtGui.QPaintEvent.region": (),
-# class PySide2.QtGui.QPainter:
-# class PySide2.QtGui.QPainter.CompositionMode:
-# class PySide2.QtGui.QPainter.PixmapFragment:
- "PySide2.QtGui.QPainter.PixmapFragment.__init__": [(), ('PySide2.QtGui.QPainter.PixmapFragment',)],
- "PySide2.QtGui.QPainter.PixmapFragment.__copy__": (),
- "PySide2.QtGui.QPainter.PixmapFragment.create": ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QRectF', 'float', 'float', 'float', 'float'),
-# class PySide2.QtGui.QPainter.PixmapFragmentHint:
-# class PySide2.QtGui.QPainter.PixmapFragmentHints:
-# class PySide2.QtGui.QPainter.RenderHint:
-# class PySide2.QtGui.QPainter.RenderHints:
- "PySide2.QtGui.QPainter.__init__": [(), ('PySide2.QtGui.QPaintDevice',)],
- "PySide2.QtGui.QPainter.background": (),
- "PySide2.QtGui.QPainter.backgroundMode": (),
- "PySide2.QtGui.QPainter.begin": ('PySide2.QtGui.QPaintDevice',),
- "PySide2.QtGui.QPainter.beginNativePainting": (),
- "PySide2.QtGui.QPainter.boundingRect": [('PySide2.QtCore.QRect', 'int', 'str'), ('PySide2.QtCore.QRectF', 'int', 'str'), ('PySide2.QtCore.QRectF', 'str', 'PySide2.QtGui.QTextOption'), ('int', 'int', 'int', 'int', 'int', 'str')],
- "PySide2.QtGui.QPainter.brush": (),
- "PySide2.QtGui.QPainter.brushOrigin": (),
- "PySide2.QtGui.QPainter.clipBoundingRect": (),
- "PySide2.QtGui.QPainter.clipPath": (),
- "PySide2.QtGui.QPainter.clipRegion": (),
- "PySide2.QtGui.QPainter.combinedMatrix": (),
- "PySide2.QtGui.QPainter.combinedTransform": (),
- "PySide2.QtGui.QPainter.compositionMode": (),
- "PySide2.QtGui.QPainter.device": (),
- "PySide2.QtGui.QPainter.deviceMatrix": (),
- "PySide2.QtGui.QPainter.deviceTransform": (),
- "PySide2.QtGui.QPainter.drawArc": [('PySide2.QtCore.QRect', 'int', 'int'), ('PySide2.QtCore.QRectF', 'int', 'int'), ('int', 'int', 'int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.drawChord": [('PySide2.QtCore.QRect', 'int', 'int'), ('PySide2.QtCore.QRectF', 'int', 'int'), ('int', 'int', 'int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.drawConvexPolygon": [('PySide2.QtGui.QPolygon',), ('PySide2.QtGui.QPolygonF',), ('typing.List[PySide2.QtCore.QPointF]',), ('typing.List[PySide2.QtCore.QPoint]',)],
- "PySide2.QtGui.QPainter.drawEllipse": [('PySide2.QtCore.QPoint', 'int', 'int'), ('PySide2.QtCore.QPointF', 'float', 'float'), ('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.drawImage": [('PySide2.QtCore.QPoint', 'PySide2.QtGui.QImage'), ('PySide2.QtCore.QPoint', 'PySide2.QtGui.QImage', 'PySide2.QtCore.QRect', 'PySide2.QtCore.Qt.ImageConversionFlags'), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QImage'), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QImage', 'PySide2.QtCore.QRectF', 'PySide2.QtCore.Qt.ImageConversionFlags'), ('PySide2.QtCore.QRect', 'PySide2.QtGui.QImage'), ('PySide2.QtCore.QRect', 'PySide2.QtGui.QImage', 'PySide2.QtCore.QRect', 'PySide2.QtCore.Qt.ImageConversionFlags'), ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QImage'), ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QImage', 'PySide2.QtCore.QRectF', 'PySide2.QtCore.Qt.ImageConversionFlags'), ('int', 'int', 'PySide2.QtGui.QImage', 'int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.ImageConversionFlags')],
- "PySide2.QtGui.QPainter.drawLine": [('PySide2.QtCore.QLine',), ('PySide2.QtCore.QLineF',), ('PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint'), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.drawLines": [('typing.List[PySide2.QtCore.QLineF]',), ('typing.List[PySide2.QtCore.QLine]',), ('typing.List[PySide2.QtCore.QPointF]',), ('typing.List[PySide2.QtCore.QPoint]',)],
- "PySide2.QtGui.QPainter.drawPath": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainter.drawPicture": [('PySide2.QtCore.QPoint', 'PySide2.QtGui.QPicture'), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QPicture'), ('int', 'int', 'PySide2.QtGui.QPicture')],
- "PySide2.QtGui.QPainter.drawPie": [('PySide2.QtCore.QRect', 'int', 'int'), ('PySide2.QtCore.QRectF', 'int', 'int'), ('int', 'int', 'int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.drawPixmap": [('PySide2.QtCore.QPoint', 'PySide2.QtGui.QPixmap'), ('PySide2.QtCore.QPoint', 'PySide2.QtGui.QPixmap', 'PySide2.QtCore.QRect'), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QPixmap'), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QPixmap', 'PySide2.QtCore.QRectF'), ('PySide2.QtCore.QRect', 'PySide2.QtGui.QPixmap'), ('PySide2.QtCore.QRect', 'PySide2.QtGui.QPixmap', 'PySide2.QtCore.QRect'), ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QPixmap', 'PySide2.QtCore.QRectF'), ('int', 'int', 'PySide2.QtGui.QPixmap'), ('int', 'int', 'PySide2.QtGui.QPixmap', 'int', 'int', 'int', 'int'), ('int', 'int', 'int', 'int', 'PySide2.QtGui.QPixmap'), ('int', 'int', 'int', 'int', 'PySide2.QtGui.QPixmap', 'int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.drawPixmapFragments": ('PySide2.QtGui.QPainter.PixmapFragment', 'int', 'PySide2.QtGui.QPixmap', 'PySide2.QtGui.QPainter.PixmapFragmentHints'),
- "PySide2.QtGui.QPainter.drawPoint": [('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('int', 'int')],
- "PySide2.QtGui.QPainter.drawPoints": [('PySide2.QtGui.QPolygon',), ('PySide2.QtGui.QPolygonF',), ('typing.List[PySide2.QtCore.QPointF]',), ('typing.List[PySide2.QtCore.QPoint]',)],
- "PySide2.QtGui.QPainter.drawPolygon": [('PySide2.QtGui.QPolygon', 'PySide2.QtCore.Qt.FillRule'), ('PySide2.QtGui.QPolygonF', 'PySide2.QtCore.Qt.FillRule'), ('typing.List[PySide2.QtCore.QPointF]', 'PySide2.QtCore.Qt.FillRule'), ('typing.List[PySide2.QtCore.QPoint]', 'PySide2.QtCore.Qt.FillRule')],
- "PySide2.QtGui.QPainter.drawPolyline": [('PySide2.QtGui.QPolygon',), ('PySide2.QtGui.QPolygonF',), ('typing.List[PySide2.QtCore.QPointF]',), ('typing.List[PySide2.QtCore.QPoint]',)],
- "PySide2.QtGui.QPainter.drawRect": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.drawRects": [('typing.List[PySide2.QtCore.QRectF]',), ('typing.List[PySide2.QtCore.QRect]',)],
- "PySide2.QtGui.QPainter.drawRoundRect": [('PySide2.QtCore.QRect', 'int', 'int'), ('PySide2.QtCore.QRectF', 'int', 'int'), ('int', 'int', 'int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.drawRoundedRect": [('PySide2.QtCore.QRect', 'float', 'float', 'PySide2.QtCore.Qt.SizeMode'), ('PySide2.QtCore.QRectF', 'float', 'float', 'PySide2.QtCore.Qt.SizeMode'), ('int', 'int', 'int', 'int', 'float', 'float', 'PySide2.QtCore.Qt.SizeMode')],
- "PySide2.QtGui.QPainter.drawStaticText": [('PySide2.QtCore.QPoint', 'PySide2.QtGui.QStaticText'), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QStaticText'), ('int', 'int', 'PySide2.QtGui.QStaticText')],
- "PySide2.QtGui.QPainter.drawText": [('PySide2.QtCore.QPoint', 'str'), ('PySide2.QtCore.QPointF', 'str'), ('PySide2.QtCore.QRect', 'int', 'str', 'PySide2.QtCore.QRect'), ('PySide2.QtCore.QRectF', 'int', 'str', 'PySide2.QtCore.QRectF'), ('PySide2.QtCore.QRectF', 'str', 'PySide2.QtGui.QTextOption'), ('int', 'int', 'int', 'int', 'int', 'str', 'PySide2.QtCore.QRect'), ('int', 'int', 'str')],
- "PySide2.QtGui.QPainter.drawTextItem": [('PySide2.QtCore.QPoint', 'PySide2.QtGui.QTextItem'), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QTextItem'), ('int', 'int', 'PySide2.QtGui.QTextItem')],
- "PySide2.QtGui.QPainter.drawTiledPixmap": [('PySide2.QtCore.QRect', 'PySide2.QtGui.QPixmap', 'PySide2.QtCore.QPoint'), ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QPixmap', 'PySide2.QtCore.QPointF'), ('int', 'int', 'int', 'int', 'PySide2.QtGui.QPixmap', 'int', 'int')],
- "PySide2.QtGui.QPainter.end": (),
- "PySide2.QtGui.QPainter.endNativePainting": (),
- "PySide2.QtGui.QPainter.eraseRect": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.fillPath": ('PySide2.QtGui.QPainterPath', 'PySide2.QtGui.QBrush'),
- "PySide2.QtGui.QPainter.fillRect": [('PySide2.QtCore.QRect', 'PySide2.QtCore.Qt.BrushStyle'), ('PySide2.QtCore.QRect', 'PySide2.QtCore.Qt.GlobalColor'), ('PySide2.QtCore.QRect', 'PySide2.QtGui.QBrush'), ('PySide2.QtCore.QRect', 'PySide2.QtGui.QColor'), ('PySide2.QtCore.QRect', 'PySide2.QtGui.QGradient.Preset'), ('PySide2.QtCore.QRectF', 'PySide2.QtCore.Qt.BrushStyle'), ('PySide2.QtCore.QRectF', 'PySide2.QtCore.Qt.GlobalColor'), ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QBrush'), ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QColor'), ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QGradient.Preset'), ('int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.BrushStyle'), ('int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.GlobalColor'), ('int', 'int', 'int', 'int', 'PySide2.QtGui.QBrush'), ('int', 'int', 'int', 'int', 'PySide2.QtGui.QColor'), ('int', 'int', 'int', 'int', 'PySide2.QtGui.QGradient.Preset')],
- "PySide2.QtGui.QPainter.font": (),
- "PySide2.QtGui.QPainter.fontInfo": (),
- "PySide2.QtGui.QPainter.fontMetrics": (),
- "PySide2.QtGui.QPainter.hasClipping": (),
- "PySide2.QtGui.QPainter.initFrom": ('PySide2.QtGui.QPaintDevice',),
- "PySide2.QtGui.QPainter.isActive": (),
- "PySide2.QtGui.QPainter.layoutDirection": (),
- "PySide2.QtGui.QPainter.matrix": (),
- "PySide2.QtGui.QPainter.matrixEnabled": (),
- "PySide2.QtGui.QPainter.opacity": (),
- "PySide2.QtGui.QPainter.paintEngine": (),
- "PySide2.QtGui.QPainter.pen": (),
- "PySide2.QtGui.QPainter.redirected": ('PySide2.QtGui.QPaintDevice', 'PySide2.QtCore.QPoint'),
- "PySide2.QtGui.QPainter.renderHints": (),
- "PySide2.QtGui.QPainter.resetMatrix": (),
- "PySide2.QtGui.QPainter.resetTransform": (),
- "PySide2.QtGui.QPainter.restore": (),
- "PySide2.QtGui.QPainter.restoreRedirected": ('PySide2.QtGui.QPaintDevice',),
- "PySide2.QtGui.QPainter.rotate": ('float',),
- "PySide2.QtGui.QPainter.save": (),
- "PySide2.QtGui.QPainter.scale": ('float', 'float'),
- "PySide2.QtGui.QPainter.setBackground": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QPainter.setBackgroundMode": ('PySide2.QtCore.Qt.BGMode',),
- "PySide2.QtGui.QPainter.setBrush": [('PySide2.QtCore.Qt.BrushStyle',), ('PySide2.QtGui.QBrush',)],
- "PySide2.QtGui.QPainter.setBrushOrigin": [('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('int', 'int')],
- "PySide2.QtGui.QPainter.setClipPath": ('PySide2.QtGui.QPainterPath', 'PySide2.QtCore.Qt.ClipOperation'),
- "PySide2.QtGui.QPainter.setClipRect": [('PySide2.QtCore.QRect', 'PySide2.QtCore.Qt.ClipOperation'), ('PySide2.QtCore.QRectF', 'PySide2.QtCore.Qt.ClipOperation'), ('int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.ClipOperation')],
- "PySide2.QtGui.QPainter.setClipRegion": ('PySide2.QtGui.QRegion', 'PySide2.QtCore.Qt.ClipOperation'),
- "PySide2.QtGui.QPainter.setClipping": ('bool',),
- "PySide2.QtGui.QPainter.setCompositionMode": ('PySide2.QtGui.QPainter.CompositionMode',),
- "PySide2.QtGui.QPainter.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtGui.QPainter.setLayoutDirection": ('PySide2.QtCore.Qt.LayoutDirection',),
- "PySide2.QtGui.QPainter.setMatrix": ('PySide2.QtGui.QMatrix', 'bool'),
- "PySide2.QtGui.QPainter.setMatrixEnabled": ('bool',),
- "PySide2.QtGui.QPainter.setOpacity": ('float',),
- "PySide2.QtGui.QPainter.setPen": [('PySide2.QtCore.Qt.PenStyle',), ('PySide2.QtGui.QColor',), ('PySide2.QtGui.QPen',)],
- "PySide2.QtGui.QPainter.setRedirected": ('PySide2.QtGui.QPaintDevice', 'PySide2.QtGui.QPaintDevice', 'PySide2.QtCore.QPoint'),
- "PySide2.QtGui.QPainter.setRenderHint": ('PySide2.QtGui.QPainter.RenderHint', 'bool'),
- "PySide2.QtGui.QPainter.setRenderHints": ('PySide2.QtGui.QPainter.RenderHints', 'bool'),
- "PySide2.QtGui.QPainter.setTransform": ('PySide2.QtGui.QTransform', 'bool'),
- "PySide2.QtGui.QPainter.setViewTransformEnabled": ('bool',),
- "PySide2.QtGui.QPainter.setViewport": [('PySide2.QtCore.QRect',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.setWindow": [('PySide2.QtCore.QRect',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPainter.setWorldMatrix": ('PySide2.QtGui.QMatrix', 'bool'),
- "PySide2.QtGui.QPainter.setWorldMatrixEnabled": ('bool',),
- "PySide2.QtGui.QPainter.setWorldTransform": ('PySide2.QtGui.QTransform', 'bool'),
- "PySide2.QtGui.QPainter.shear": ('float', 'float'),
- "PySide2.QtGui.QPainter.strokePath": ('PySide2.QtGui.QPainterPath', 'PySide2.QtGui.QPen'),
- "PySide2.QtGui.QPainter.testRenderHint": ('PySide2.QtGui.QPainter.RenderHint',),
- "PySide2.QtGui.QPainter.transform": (),
- "PySide2.QtGui.QPainter.translate": [('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QPainter.viewTransformEnabled": (),
- "PySide2.QtGui.QPainter.viewport": (),
- "PySide2.QtGui.QPainter.window": (),
- "PySide2.QtGui.QPainter.worldMatrix": (),
- "PySide2.QtGui.QPainter.worldMatrixEnabled": (),
- "PySide2.QtGui.QPainter.worldTransform": (),
-# class PySide2.QtGui.QPainterPath:
-# class PySide2.QtGui.QPainterPath.Element:
- "PySide2.QtGui.QPainterPath.Element.__init__": [(), ('PySide2.QtGui.QPainterPath.Element',)],
- "PySide2.QtGui.QPainterPath.Element.__copy__": (),
- "PySide2.QtGui.QPainterPath.Element.isCurveTo": (),
- "PySide2.QtGui.QPainterPath.Element.isLineTo": (),
- "PySide2.QtGui.QPainterPath.Element.isMoveTo": (),
-# class PySide2.QtGui.QPainterPath.ElementType:
- "PySide2.QtGui.QPainterPath.__init__": [(), ('PySide2.QtCore.QPointF',), ('PySide2.QtGui.QPainterPath',)],
- "PySide2.QtGui.QPainterPath.__add__": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.__and__": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.__copy__": (),
- "PySide2.QtGui.QPainterPath.__iadd__": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.__iand__": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.__ior__": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.__isub__": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPainterPath.__mul__": [('PySide2.QtGui.QMatrix',), ('PySide2.QtGui.QTransform',)],
- "PySide2.QtGui.QPainterPath.__or__": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPainterPath.__sub__": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.addEllipse": [('PySide2.QtCore.QPointF', 'float', 'float'), ('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtGui.QPainterPath.addPath": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.addPolygon": ('PySide2.QtGui.QPolygonF',),
- "PySide2.QtGui.QPainterPath.addRect": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtGui.QPainterPath.addRegion": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QPainterPath.addRoundRect": [('PySide2.QtCore.QRectF', 'int'), ('PySide2.QtCore.QRectF', 'int', 'int'), ('float', 'float', 'float', 'float', 'int'), ('float', 'float', 'float', 'float', 'int', 'int')],
- "PySide2.QtGui.QPainterPath.addRoundedRect": [('PySide2.QtCore.QRectF', 'float', 'float', 'PySide2.QtCore.Qt.SizeMode'), ('float', 'float', 'float', 'float', 'float', 'float', 'PySide2.QtCore.Qt.SizeMode')],
- "PySide2.QtGui.QPainterPath.addText": [('PySide2.QtCore.QPointF', 'PySide2.QtGui.QFont', 'str'), ('float', 'float', 'PySide2.QtGui.QFont', 'str')],
- "PySide2.QtGui.QPainterPath.angleAtPercent": ('float',),
- "PySide2.QtGui.QPainterPath.arcMoveTo": [('PySide2.QtCore.QRectF', 'float'), ('float', 'float', 'float', 'float', 'float')],
- "PySide2.QtGui.QPainterPath.arcTo": [('PySide2.QtCore.QRectF', 'float', 'float'), ('float', 'float', 'float', 'float', 'float', 'float')],
- "PySide2.QtGui.QPainterPath.boundingRect": (),
- "PySide2.QtGui.QPainterPath.capacity": (),
- "PySide2.QtGui.QPainterPath.clear": (),
- "PySide2.QtGui.QPainterPath.closeSubpath": (),
- "PySide2.QtGui.QPainterPath.connectPath": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.contains": [('PySide2.QtCore.QPointF',), ('PySide2.QtCore.QRectF',), ('PySide2.QtGui.QPainterPath',)],
- "PySide2.QtGui.QPainterPath.controlPointRect": (),
- "PySide2.QtGui.QPainterPath.cubicTo": [('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'), ('float', 'float', 'float', 'float', 'float', 'float')],
- "PySide2.QtGui.QPainterPath.currentPosition": (),
- "PySide2.QtGui.QPainterPath.elementAt": ('int',),
- "PySide2.QtGui.QPainterPath.elementCount": (),
- "PySide2.QtGui.QPainterPath.fillRule": (),
- "PySide2.QtGui.QPainterPath.intersected": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.intersects": [('PySide2.QtCore.QRectF',), ('PySide2.QtGui.QPainterPath',)],
- "PySide2.QtGui.QPainterPath.isEmpty": (),
- "PySide2.QtGui.QPainterPath.length": (),
- "PySide2.QtGui.QPainterPath.lineTo": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QPainterPath.moveTo": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QPainterPath.percentAtLength": ('float',),
- "PySide2.QtGui.QPainterPath.pointAtPercent": ('float',),
- "PySide2.QtGui.QPainterPath.quadTo": [('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'), ('float', 'float', 'float', 'float')],
- "PySide2.QtGui.QPainterPath.reserve": ('int',),
- "PySide2.QtGui.QPainterPath.setElementPositionAt": ('int', 'float', 'float'),
- "PySide2.QtGui.QPainterPath.setFillRule": ('PySide2.QtCore.Qt.FillRule',),
- "PySide2.QtGui.QPainterPath.simplified": (),
- "PySide2.QtGui.QPainterPath.slopeAtPercent": ('float',),
- "PySide2.QtGui.QPainterPath.subtracted": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.subtractedInverted": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.swap": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPath.toFillPolygon": [('PySide2.QtGui.QMatrix',), ('PySide2.QtGui.QTransform',)],
- "PySide2.QtGui.QPainterPath.toFillPolygons": [('PySide2.QtGui.QMatrix',), ('PySide2.QtGui.QTransform',)],
- "PySide2.QtGui.QPainterPath.toReversed": (),
- "PySide2.QtGui.QPainterPath.toSubpathPolygons": [('PySide2.QtGui.QMatrix',), ('PySide2.QtGui.QTransform',)],
- "PySide2.QtGui.QPainterPath.translate": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QPainterPath.translated": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QPainterPath.united": ('PySide2.QtGui.QPainterPath',),
-# class PySide2.QtGui.QPainterPathStroker:
- "PySide2.QtGui.QPainterPathStroker.__init__": [(), ('PySide2.QtGui.QPen',)],
- "PySide2.QtGui.QPainterPathStroker.capStyle": (),
- "PySide2.QtGui.QPainterPathStroker.createStroke": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtGui.QPainterPathStroker.curveThreshold": (),
- "PySide2.QtGui.QPainterPathStroker.dashOffset": (),
- "PySide2.QtGui.QPainterPathStroker.dashPattern": (),
- "PySide2.QtGui.QPainterPathStroker.joinStyle": (),
- "PySide2.QtGui.QPainterPathStroker.miterLimit": (),
- "PySide2.QtGui.QPainterPathStroker.setCapStyle": ('PySide2.QtCore.Qt.PenCapStyle',),
- "PySide2.QtGui.QPainterPathStroker.setCurveThreshold": ('float',),
- "PySide2.QtGui.QPainterPathStroker.setDashOffset": ('float',),
- "PySide2.QtGui.QPainterPathStroker.setDashPattern": [('PySide2.QtCore.Qt.PenStyle',), ('typing.List[float]',)],
- "PySide2.QtGui.QPainterPathStroker.setJoinStyle": ('PySide2.QtCore.Qt.PenJoinStyle',),
- "PySide2.QtGui.QPainterPathStroker.setMiterLimit": ('float',),
- "PySide2.QtGui.QPainterPathStroker.setWidth": ('float',),
- "PySide2.QtGui.QPainterPathStroker.width": (),
-# class PySide2.QtGui.QPalette:
-# class PySide2.QtGui.QPalette.ColorGroup:
-# class PySide2.QtGui.QPalette.ColorRole:
- "PySide2.QtGui.QPalette.__init__": [(), ('PySide2.QtCore.Qt.GlobalColor',), ('PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush'), ('PySide2.QtGui.QColor',), ('PySide2.QtGui.QColor', 'PySide2.QtGui.QColor'), ('PySide2.QtGui.QColor', 'PySide2.QtGui.QColor', 'PySide2.QtGui.QColor', 'PySide2.QtGui.QColor', 'PySide2.QtGui.QColor', 'PySide2.QtGui.QColor', 'PySide2.QtGui.QColor'), ('PySide2.QtGui.QPalette',)],
- "PySide2.QtGui.QPalette.__copy__": (),
- "PySide2.QtGui.QPalette.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPalette.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPalette.alternateBase": (),
- "PySide2.QtGui.QPalette.background": (),
- "PySide2.QtGui.QPalette.base": (),
- "PySide2.QtGui.QPalette.brightText": (),
- "PySide2.QtGui.QPalette.brush": [('PySide2.QtGui.QPalette.ColorGroup', 'PySide2.QtGui.QPalette.ColorRole'), ('PySide2.QtGui.QPalette.ColorRole',)],
- "PySide2.QtGui.QPalette.button": (),
- "PySide2.QtGui.QPalette.buttonText": (),
- "PySide2.QtGui.QPalette.cacheKey": (),
- "PySide2.QtGui.QPalette.color": [('PySide2.QtGui.QPalette.ColorGroup', 'PySide2.QtGui.QPalette.ColorRole'), ('PySide2.QtGui.QPalette.ColorRole',)],
- "PySide2.QtGui.QPalette.currentColorGroup": (),
- "PySide2.QtGui.QPalette.dark": (),
- "PySide2.QtGui.QPalette.foreground": (),
- "PySide2.QtGui.QPalette.highlight": (),
- "PySide2.QtGui.QPalette.highlightedText": (),
- "PySide2.QtGui.QPalette.isBrushSet": ('PySide2.QtGui.QPalette.ColorGroup', 'PySide2.QtGui.QPalette.ColorRole'),
- "PySide2.QtGui.QPalette.isCopyOf": ('PySide2.QtGui.QPalette',),
- "PySide2.QtGui.QPalette.isEqual": ('PySide2.QtGui.QPalette.ColorGroup', 'PySide2.QtGui.QPalette.ColorGroup'),
- "PySide2.QtGui.QPalette.light": (),
- "PySide2.QtGui.QPalette.link": (),
- "PySide2.QtGui.QPalette.linkVisited": (),
- "PySide2.QtGui.QPalette.mid": (),
- "PySide2.QtGui.QPalette.midlight": (),
- "PySide2.QtGui.QPalette.placeholderText": (),
- "PySide2.QtGui.QPalette.resolve": [(), ('PySide2.QtGui.QPalette',), ('int',)],
- "PySide2.QtGui.QPalette.setBrush": [('PySide2.QtGui.QPalette.ColorGroup', 'PySide2.QtGui.QPalette.ColorRole', 'PySide2.QtGui.QBrush'), ('PySide2.QtGui.QPalette.ColorRole', 'PySide2.QtGui.QBrush')],
- "PySide2.QtGui.QPalette.setColor": [('PySide2.QtGui.QPalette.ColorGroup', 'PySide2.QtGui.QPalette.ColorRole', 'PySide2.QtGui.QColor'), ('PySide2.QtGui.QPalette.ColorRole', 'PySide2.QtGui.QColor')],
- "PySide2.QtGui.QPalette.setColorGroup": ('PySide2.QtGui.QPalette.ColorGroup', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush', 'PySide2.QtGui.QBrush'),
- "PySide2.QtGui.QPalette.setCurrentColorGroup": ('PySide2.QtGui.QPalette.ColorGroup',),
- "PySide2.QtGui.QPalette.shadow": (),
- "PySide2.QtGui.QPalette.swap": ('PySide2.QtGui.QPalette',),
- "PySide2.QtGui.QPalette.text": (),
- "PySide2.QtGui.QPalette.toolTipBase": (),
- "PySide2.QtGui.QPalette.toolTipText": (),
- "PySide2.QtGui.QPalette.window": (),
- "PySide2.QtGui.QPalette.windowText": (),
-# class PySide2.QtGui.QPdfWriter:
- "PySide2.QtGui.QPdfWriter.__init__": [('PySide2.QtCore.QIODevice',), ('str',)],
- "PySide2.QtGui.QPdfWriter.creator": (),
- "PySide2.QtGui.QPdfWriter.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtGui.QPdfWriter.newPage": (),
- "PySide2.QtGui.QPdfWriter.paintEngine": (),
- "PySide2.QtGui.QPdfWriter.pdfVersion": (),
- "PySide2.QtGui.QPdfWriter.resolution": (),
- "PySide2.QtGui.QPdfWriter.setCreator": ('str',),
- "PySide2.QtGui.QPdfWriter.setMargins": ('PySide2.QtGui.QPagedPaintDevice.Margins',),
- "PySide2.QtGui.QPdfWriter.setPageSize": ('PySide2.QtGui.QPagedPaintDevice.PageSize',),
- "PySide2.QtGui.QPdfWriter.setPageSizeMM": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtGui.QPdfWriter.setPdfVersion": ('PySide2.QtGui.QPagedPaintDevice.PdfVersion',),
- "PySide2.QtGui.QPdfWriter.setResolution": ('int',),
- "PySide2.QtGui.QPdfWriter.setTitle": ('str',),
- "PySide2.QtGui.QPdfWriter.title": (),
-# class PySide2.QtGui.QPen:
- "PySide2.QtGui.QPen.__init__": [(), ('PySide2.QtCore.Qt.PenStyle',), ('PySide2.QtGui.QBrush', 'float', 'PySide2.QtCore.Qt.PenStyle', 'PySide2.QtCore.Qt.PenCapStyle', 'PySide2.QtCore.Qt.PenJoinStyle'), ('PySide2.QtGui.QColor',), ('PySide2.QtGui.QPen',)],
- "PySide2.QtGui.QPen.__copy__": (),
- "PySide2.QtGui.QPen.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPen.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPen.brush": (),
- "PySide2.QtGui.QPen.capStyle": (),
- "PySide2.QtGui.QPen.color": (),
- "PySide2.QtGui.QPen.dashOffset": (),
- "PySide2.QtGui.QPen.dashPattern": (),
- "PySide2.QtGui.QPen.isCosmetic": (),
- "PySide2.QtGui.QPen.isSolid": (),
- "PySide2.QtGui.QPen.joinStyle": (),
- "PySide2.QtGui.QPen.miterLimit": (),
- "PySide2.QtGui.QPen.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QPen.setCapStyle": ('PySide2.QtCore.Qt.PenCapStyle',),
- "PySide2.QtGui.QPen.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtGui.QPen.setCosmetic": ('bool',),
- "PySide2.QtGui.QPen.setDashOffset": ('float',),
- "PySide2.QtGui.QPen.setDashPattern": ('typing.List[float]',),
- "PySide2.QtGui.QPen.setJoinStyle": ('PySide2.QtCore.Qt.PenJoinStyle',),
- "PySide2.QtGui.QPen.setMiterLimit": ('float',),
- "PySide2.QtGui.QPen.setStyle": ('PySide2.QtCore.Qt.PenStyle',),
- "PySide2.QtGui.QPen.setWidth": ('int',),
- "PySide2.QtGui.QPen.setWidthF": ('float',),
- "PySide2.QtGui.QPen.style": (),
- "PySide2.QtGui.QPen.swap": ('PySide2.QtGui.QPen',),
- "PySide2.QtGui.QPen.width": (),
- "PySide2.QtGui.QPen.widthF": (),
-# class PySide2.QtGui.QPicture:
- "PySide2.QtGui.QPicture.__init__": [('PySide2.QtGui.QPicture',), ('int',)],
- "PySide2.QtGui.QPicture.__copy__": (),
- "PySide2.QtGui.QPicture.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPicture.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPicture.boundingRect": (),
- "PySide2.QtGui.QPicture.data": (),
- "PySide2.QtGui.QPicture.devType": (),
- "PySide2.QtGui.QPicture.inputFormatList": (),
- "PySide2.QtGui.QPicture.inputFormats": (),
- "PySide2.QtGui.QPicture.isNull": (),
- "PySide2.QtGui.QPicture.load": [('PySide2.QtCore.QIODevice', 'str'), ('str', 'str')],
- "PySide2.QtGui.QPicture.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtGui.QPicture.outputFormatList": (),
- "PySide2.QtGui.QPicture.outputFormats": (),
- "PySide2.QtGui.QPicture.paintEngine": (),
- "PySide2.QtGui.QPicture.pictureFormat": ('str',),
- "PySide2.QtGui.QPicture.play": ('PySide2.QtGui.QPainter',),
- "PySide2.QtGui.QPicture.save": [('PySide2.QtCore.QIODevice', 'str'), ('str', 'str')],
- "PySide2.QtGui.QPicture.setBoundingRect": ('PySide2.QtCore.QRect',),
- "PySide2.QtGui.QPicture.setData": ('str', 'int'),
- "PySide2.QtGui.QPicture.size": (),
- "PySide2.QtGui.QPicture.swap": ('PySide2.QtGui.QPicture',),
-# class PySide2.QtGui.QPictureIO:
- "PySide2.QtGui.QPictureIO.__init__": [(), ('PySide2.QtCore.QIODevice', 'str'), ('str', 'str')],
- "PySide2.QtGui.QPictureIO.description": (),
- "PySide2.QtGui.QPictureIO.fileName": (),
- "PySide2.QtGui.QPictureIO.format": (),
- "PySide2.QtGui.QPictureIO.gamma": (),
- "PySide2.QtGui.QPictureIO.inputFormats": (),
- "PySide2.QtGui.QPictureIO.ioDevice": (),
- "PySide2.QtGui.QPictureIO.outputFormats": (),
- "PySide2.QtGui.QPictureIO.parameters": (),
- "PySide2.QtGui.QPictureIO.picture": (),
- "PySide2.QtGui.QPictureIO.pictureFormat": [('PySide2.QtCore.QIODevice',), ('str',)],
- "PySide2.QtGui.QPictureIO.quality": (),
- "PySide2.QtGui.QPictureIO.read": (),
- "PySide2.QtGui.QPictureIO.setDescription": ('str',),
- "PySide2.QtGui.QPictureIO.setFileName": ('str',),
- "PySide2.QtGui.QPictureIO.setFormat": ('str',),
- "PySide2.QtGui.QPictureIO.setGamma": ('float',),
- "PySide2.QtGui.QPictureIO.setIODevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtGui.QPictureIO.setParameters": ('str',),
- "PySide2.QtGui.QPictureIO.setPicture": ('PySide2.QtGui.QPicture',),
- "PySide2.QtGui.QPictureIO.setQuality": ('int',),
- "PySide2.QtGui.QPictureIO.setStatus": ('int',),
- "PySide2.QtGui.QPictureIO.status": (),
- "PySide2.QtGui.QPictureIO.write": (),
-# class PySide2.QtGui.QPixelFormat:
-# class PySide2.QtGui.QPixelFormat.AlphaPosition:
-# class PySide2.QtGui.QPixelFormat.AlphaPremultiplied:
-# class PySide2.QtGui.QPixelFormat.AlphaUsage:
-# class PySide2.QtGui.QPixelFormat.ByteOrder:
-# class PySide2.QtGui.QPixelFormat.ColorModel:
-# class PySide2.QtGui.QPixelFormat.TypeInterpretation:
-# class PySide2.QtGui.QPixelFormat.YUVLayout:
- "PySide2.QtGui.QPixelFormat.__init__": [(), ('PySide2.QtGui.QPixelFormat',), ('PySide2.QtGui.QPixelFormat.ColorModel', 'int', 'int', 'int', 'int', 'int', 'int', 'PySide2.QtGui.QPixelFormat.AlphaUsage', 'PySide2.QtGui.QPixelFormat.AlphaPosition', 'PySide2.QtGui.QPixelFormat.AlphaPremultiplied', 'PySide2.QtGui.QPixelFormat.TypeInterpretation', 'PySide2.QtGui.QPixelFormat.ByteOrder', 'int')],
- "PySide2.QtGui.QPixelFormat.__copy__": (),
- "PySide2.QtGui.QPixelFormat.alphaPosition": (),
- "PySide2.QtGui.QPixelFormat.alphaSize": (),
- "PySide2.QtGui.QPixelFormat.alphaUsage": (),
- "PySide2.QtGui.QPixelFormat.bitsPerPixel": (),
- "PySide2.QtGui.QPixelFormat.blackSize": (),
- "PySide2.QtGui.QPixelFormat.blueSize": (),
- "PySide2.QtGui.QPixelFormat.brightnessSize": (),
- "PySide2.QtGui.QPixelFormat.byteOrder": (),
- "PySide2.QtGui.QPixelFormat.channelCount": (),
- "PySide2.QtGui.QPixelFormat.colorModel": (),
- "PySide2.QtGui.QPixelFormat.cyanSize": (),
- "PySide2.QtGui.QPixelFormat.greenSize": (),
- "PySide2.QtGui.QPixelFormat.hueSize": (),
- "PySide2.QtGui.QPixelFormat.lightnessSize": (),
- "PySide2.QtGui.QPixelFormat.magentaSize": (),
- "PySide2.QtGui.QPixelFormat.premultiplied": (),
- "PySide2.QtGui.QPixelFormat.redSize": (),
- "PySide2.QtGui.QPixelFormat.saturationSize": (),
- "PySide2.QtGui.QPixelFormat.subEnum": (),
- "PySide2.QtGui.QPixelFormat.typeInterpretation": (),
- "PySide2.QtGui.QPixelFormat.yellowSize": (),
- "PySide2.QtGui.QPixelFormat.yuvLayout": (),
-# class PySide2.QtGui.QPixmap:
- "PySide2.QtGui.QPixmap.__init__": [(), ('PySide2.QtCore.QSize',), ('PySide2.QtGui.QImage',), ('PySide2.QtGui.QPixmap',), ('int', 'int'), ('str', 'str', 'PySide2.QtCore.Qt.ImageConversionFlags'), ('typing.Sequence[str]',)],
- "PySide2.QtGui.QPixmap.__copy__": (),
- "PySide2.QtGui.QPixmap.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPixmap.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPixmap.cacheKey": (),
- "PySide2.QtGui.QPixmap.convertFromImage": ('PySide2.QtGui.QImage', 'PySide2.QtCore.Qt.ImageConversionFlags'),
- "PySide2.QtGui.QPixmap.copy": [('PySide2.QtCore.QRect',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPixmap.createHeuristicMask": ('bool',),
- "PySide2.QtGui.QPixmap.createMaskFromColor": ('PySide2.QtGui.QColor', 'PySide2.QtCore.Qt.MaskMode'),
- "PySide2.QtGui.QPixmap.defaultDepth": (),
- "PySide2.QtGui.QPixmap.depth": (),
- "PySide2.QtGui.QPixmap.devType": (),
- "PySide2.QtGui.QPixmap.devicePixelRatio": (),
- "PySide2.QtGui.QPixmap.fill": [('PySide2.QtGui.QColor',), ('PySide2.QtGui.QPaintDevice', 'PySide2.QtCore.QPoint'), ('PySide2.QtGui.QPaintDevice', 'int', 'int')],
- "PySide2.QtGui.QPixmap.fromImage": ('PySide2.QtGui.QImage', 'PySide2.QtCore.Qt.ImageConversionFlags'),
- "PySide2.QtGui.QPixmap.fromImageInPlace": ('PySide2.QtGui.QImage', 'PySide2.QtCore.Qt.ImageConversionFlags'),
- "PySide2.QtGui.QPixmap.fromImageReader": ('PySide2.QtGui.QImageReader', 'PySide2.QtCore.Qt.ImageConversionFlags'),
- "PySide2.QtGui.QPixmap.grabWidget": [('PySide2.QtCore.QObject', 'PySide2.QtCore.QRect'), ('PySide2.QtCore.QObject', 'int', 'int', 'int', 'int')],
- "PySide2.QtGui.QPixmap.grabWindow": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QPixmap.hasAlpha": (),
- "PySide2.QtGui.QPixmap.hasAlphaChannel": (),
- "PySide2.QtGui.QPixmap.height": (),
- "PySide2.QtGui.QPixmap.isNull": (),
- "PySide2.QtGui.QPixmap.isQBitmap": (),
- "PySide2.QtGui.QPixmap.load": ('str', 'str', 'PySide2.QtCore.Qt.ImageConversionFlags'),
- "PySide2.QtGui.QPixmap.loadFromData": [('PySide2.QtCore.QByteArray', 'str', 'PySide2.QtCore.Qt.ImageConversionFlags'), ('str', 'int', 'str', 'PySide2.QtCore.Qt.ImageConversionFlags')],
- "PySide2.QtGui.QPixmap.mask": (),
- "PySide2.QtGui.QPixmap.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtGui.QPixmap.paintEngine": (),
- "PySide2.QtGui.QPixmap.rect": (),
- "PySide2.QtGui.QPixmap.save": [('PySide2.QtCore.QIODevice', 'str', 'int'), ('str', 'str', 'int')],
- "PySide2.QtGui.QPixmap.scaled": [('PySide2.QtCore.QSize', 'PySide2.QtCore.Qt.AspectRatioMode', 'PySide2.QtCore.Qt.TransformationMode'), ('int', 'int', 'PySide2.QtCore.Qt.AspectRatioMode', 'PySide2.QtCore.Qt.TransformationMode')],
- "PySide2.QtGui.QPixmap.scaledToHeight": ('int', 'PySide2.QtCore.Qt.TransformationMode'),
- "PySide2.QtGui.QPixmap.scaledToWidth": ('int', 'PySide2.QtCore.Qt.TransformationMode'),
- "PySide2.QtGui.QPixmap.scroll": [('int', 'int', 'PySide2.QtCore.QRect', 'PySide2.QtGui.QRegion'), ('int', 'int', 'int', 'int', 'int', 'int', 'PySide2.QtGui.QRegion')],
- "PySide2.QtGui.QPixmap.setDevicePixelRatio": ('float',),
- "PySide2.QtGui.QPixmap.setMask": ('PySide2.QtGui.QBitmap',),
- "PySide2.QtGui.QPixmap.size": (),
- "PySide2.QtGui.QPixmap.swap": ('PySide2.QtGui.QPixmap',),
- "PySide2.QtGui.QPixmap.toImage": (),
- "PySide2.QtGui.QPixmap.transformed": [('PySide2.QtGui.QMatrix', 'PySide2.QtCore.Qt.TransformationMode'), ('PySide2.QtGui.QTransform', 'PySide2.QtCore.Qt.TransformationMode')],
- "PySide2.QtGui.QPixmap.trueMatrix": [('PySide2.QtGui.QMatrix', 'int', 'int'), ('PySide2.QtGui.QTransform', 'int', 'int')],
- "PySide2.QtGui.QPixmap.width": (),
-# class PySide2.QtGui.QPixmapCache:
-# class PySide2.QtGui.QPixmapCache.Key:
- "PySide2.QtGui.QPixmapCache.Key.__init__": [(), ('PySide2.QtGui.QPixmapCache.Key',)],
- "PySide2.QtGui.QPixmapCache.Key.__copy__": (),
- "PySide2.QtGui.QPixmapCache.Key.isValid": (),
- "PySide2.QtGui.QPixmapCache.Key.swap": ('PySide2.QtGui.QPixmapCache.Key',),
- "PySide2.QtGui.QPixmapCache.__init__": (),
- "PySide2.QtGui.QPixmapCache.cacheLimit": (),
- "PySide2.QtGui.QPixmapCache.clear": (),
- "PySide2.QtGui.QPixmapCache.find": [('PySide2.QtGui.QPixmapCache.Key',), ('PySide2.QtGui.QPixmapCache.Key', 'PySide2.QtGui.QPixmap'), ('str',), ('str', 'PySide2.QtGui.QPixmap')],
- "PySide2.QtGui.QPixmapCache.insert": [('PySide2.QtGui.QPixmap',), ('str', 'PySide2.QtGui.QPixmap')],
- "PySide2.QtGui.QPixmapCache.remove": [('PySide2.QtGui.QPixmapCache.Key',), ('str',)],
- "PySide2.QtGui.QPixmapCache.replace": ('PySide2.QtGui.QPixmapCache.Key', 'PySide2.QtGui.QPixmap'),
- "PySide2.QtGui.QPixmapCache.setCacheLimit": ('int',),
-# class PySide2.QtGui.QPointingDeviceUniqueId:
- "PySide2.QtGui.QPointingDeviceUniqueId.__init__": [(), ('PySide2.QtGui.QPointingDeviceUniqueId',)],
- "PySide2.QtGui.QPointingDeviceUniqueId.__copy__": (),
- "PySide2.QtGui.QPointingDeviceUniqueId.fromNumericId": ('int',),
- "PySide2.QtGui.QPointingDeviceUniqueId.isValid": (),
- "PySide2.QtGui.QPointingDeviceUniqueId.numericId": (),
-# class PySide2.QtGui.QPolygon:
- "PySide2.QtGui.QPolygon.__init__": [(), ('PySide2.QtCore.QRect', 'bool'), ('PySide2.QtGui.QPolygon',), ('int',), ('typing.List[PySide2.QtCore.QPoint]',)],
- "PySide2.QtGui.QPolygon.__add__": ('typing.List[PySide2.QtCore.QPoint]',),
- "PySide2.QtGui.QPolygon.__copy__": (),
- "PySide2.QtGui.QPolygon.__iadd__": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QPolygon.__lshift__": [('PySide2.QtCore.QDataStream',), ('PySide2.QtCore.QPoint',), ('typing.List[PySide2.QtCore.QPoint]',)],
- "PySide2.QtGui.QPolygon.__mul__": [('PySide2.QtGui.QMatrix',), ('PySide2.QtGui.QTransform',)],
- "PySide2.QtGui.QPolygon.__reduce__": (),
- "PySide2.QtGui.QPolygon.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPolygon.append": [('PySide2.QtCore.QPoint',), ('typing.List[PySide2.QtCore.QPoint]',)],
- "PySide2.QtGui.QPolygon.at": ('int',),
- "PySide2.QtGui.QPolygon.back": (),
- "PySide2.QtGui.QPolygon.boundingRect": (),
- "PySide2.QtGui.QPolygon.capacity": (),
- "PySide2.QtGui.QPolygon.clear": (),
- "PySide2.QtGui.QPolygon.constData": (),
- "PySide2.QtGui.QPolygon.constFirst": (),
- "PySide2.QtGui.QPolygon.constLast": (),
- "PySide2.QtGui.QPolygon.contains": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QPolygon.containsPoint": ('PySide2.QtCore.QPoint', 'PySide2.QtCore.Qt.FillRule'),
- "PySide2.QtGui.QPolygon.count": [(), ('PySide2.QtCore.QPoint',)],
- "PySide2.QtGui.QPolygon.data": (),
- "PySide2.QtGui.QPolygon.empty": (),
- "PySide2.QtGui.QPolygon.endsWith": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QPolygon.fill": ('PySide2.QtCore.QPoint', 'int'),
- "PySide2.QtGui.QPolygon.first": (),
- "PySide2.QtGui.QPolygon.fromList": ('typing.Sequence[PySide2.QtCore.QPoint]',),
- "PySide2.QtGui.QPolygon.front": (),
- "PySide2.QtGui.QPolygon.indexOf": ('PySide2.QtCore.QPoint', 'int'),
- "PySide2.QtGui.QPolygon.insert": [('int', 'PySide2.QtCore.QPoint'), ('int', 'int', 'PySide2.QtCore.QPoint')],
- "PySide2.QtGui.QPolygon.intersected": ('PySide2.QtGui.QPolygon',),
- "PySide2.QtGui.QPolygon.intersects": ('PySide2.QtGui.QPolygon',),
- "PySide2.QtGui.QPolygon.isEmpty": (),
- "PySide2.QtGui.QPolygon.isSharedWith": ('typing.List[PySide2.QtCore.QPoint]',),
- "PySide2.QtGui.QPolygon.last": (),
- "PySide2.QtGui.QPolygon.lastIndexOf": ('PySide2.QtCore.QPoint', 'int'),
- "PySide2.QtGui.QPolygon.length": (),
- "PySide2.QtGui.QPolygon.mid": ('int', 'int'),
- "PySide2.QtGui.QPolygon.move": ('int', 'int'),
- "PySide2.QtGui.QPolygon.pop_back": (),
- "PySide2.QtGui.QPolygon.pop_front": (),
- "PySide2.QtGui.QPolygon.prepend": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QPolygon.push_back": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QPolygon.push_front": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QPolygon.remove": [('int',), ('int', 'int')],
- "PySide2.QtGui.QPolygon.removeAll": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QPolygon.removeAt": ('int',),
- "PySide2.QtGui.QPolygon.removeFirst": (),
- "PySide2.QtGui.QPolygon.removeLast": (),
- "PySide2.QtGui.QPolygon.removeOne": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QPolygon.replace": ('int', 'PySide2.QtCore.QPoint'),
- "PySide2.QtGui.QPolygon.reserve": ('int',),
- "PySide2.QtGui.QPolygon.resize": ('int',),
- "PySide2.QtGui.QPolygon.setSharable": ('bool',),
- "PySide2.QtGui.QPolygon.shrink_to_fit": (),
- "PySide2.QtGui.QPolygon.size": (),
- "PySide2.QtGui.QPolygon.squeeze": (),
- "PySide2.QtGui.QPolygon.startsWith": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QPolygon.subtracted": ('PySide2.QtGui.QPolygon',),
- "PySide2.QtGui.QPolygon.swap": ('PySide2.QtGui.QPolygon',),
- "PySide2.QtGui.QPolygon.swapItemsAt": ('int', 'int'),
- "PySide2.QtGui.QPolygon.takeAt": ('int',),
- "PySide2.QtGui.QPolygon.takeFirst": (),
- "PySide2.QtGui.QPolygon.takeLast": (),
- "PySide2.QtGui.QPolygon.toList": (),
- "PySide2.QtGui.QPolygon.translate": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtGui.QPolygon.translated": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtGui.QPolygon.united": ('PySide2.QtGui.QPolygon',),
- "PySide2.QtGui.QPolygon.value": [('int',), ('int', 'PySide2.QtCore.QPoint')],
-# class PySide2.QtGui.QPolygonF:
- "PySide2.QtGui.QPolygonF.__init__": [(), ('PySide2.QtCore.QRectF',), ('PySide2.QtGui.QPolygon',), ('PySide2.QtGui.QPolygonF',), ('int',), ('typing.List[PySide2.QtCore.QPointF]',)],
- "PySide2.QtGui.QPolygonF.__add__": ('typing.List[PySide2.QtCore.QPointF]',),
- "PySide2.QtGui.QPolygonF.__copy__": (),
- "PySide2.QtGui.QPolygonF.__iadd__": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QPolygonF.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPolygonF.__mul__": [('PySide2.QtGui.QMatrix',), ('PySide2.QtGui.QTransform',)],
- "PySide2.QtGui.QPolygonF.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QPolygonF.append": [('PySide2.QtCore.QPointF',), ('typing.List[PySide2.QtCore.QPointF]',)],
- "PySide2.QtGui.QPolygonF.at": ('int',),
- "PySide2.QtGui.QPolygonF.back": (),
- "PySide2.QtGui.QPolygonF.boundingRect": (),
- "PySide2.QtGui.QPolygonF.capacity": (),
- "PySide2.QtGui.QPolygonF.clear": (),
- "PySide2.QtGui.QPolygonF.constData": (),
- "PySide2.QtGui.QPolygonF.constFirst": (),
- "PySide2.QtGui.QPolygonF.constLast": (),
- "PySide2.QtGui.QPolygonF.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QPolygonF.containsPoint": ('PySide2.QtCore.QPointF', 'PySide2.QtCore.Qt.FillRule'),
- "PySide2.QtGui.QPolygonF.count": [(), ('PySide2.QtCore.QPointF',)],
- "PySide2.QtGui.QPolygonF.data": (),
- "PySide2.QtGui.QPolygonF.empty": (),
- "PySide2.QtGui.QPolygonF.endsWith": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QPolygonF.fill": ('PySide2.QtCore.QPointF', 'int'),
- "PySide2.QtGui.QPolygonF.first": (),
- "PySide2.QtGui.QPolygonF.fromList": ('typing.Sequence[PySide2.QtCore.QPointF]',),
- "PySide2.QtGui.QPolygonF.front": (),
- "PySide2.QtGui.QPolygonF.indexOf": ('PySide2.QtCore.QPointF', 'int'),
- "PySide2.QtGui.QPolygonF.insert": [('int', 'PySide2.QtCore.QPointF'), ('int', 'int', 'PySide2.QtCore.QPointF')],
- "PySide2.QtGui.QPolygonF.intersected": ('PySide2.QtGui.QPolygonF',),
- "PySide2.QtGui.QPolygonF.intersects": ('PySide2.QtGui.QPolygonF',),
- "PySide2.QtGui.QPolygonF.isClosed": (),
- "PySide2.QtGui.QPolygonF.isEmpty": (),
- "PySide2.QtGui.QPolygonF.isSharedWith": ('typing.List[PySide2.QtCore.QPointF]',),
- "PySide2.QtGui.QPolygonF.last": (),
- "PySide2.QtGui.QPolygonF.lastIndexOf": ('PySide2.QtCore.QPointF', 'int'),
- "PySide2.QtGui.QPolygonF.length": (),
- "PySide2.QtGui.QPolygonF.mid": ('int', 'int'),
- "PySide2.QtGui.QPolygonF.move": ('int', 'int'),
- "PySide2.QtGui.QPolygonF.pop_back": (),
- "PySide2.QtGui.QPolygonF.pop_front": (),
- "PySide2.QtGui.QPolygonF.prepend": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QPolygonF.push_back": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QPolygonF.push_front": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QPolygonF.remove": [('int',), ('int', 'int')],
- "PySide2.QtGui.QPolygonF.removeAll": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QPolygonF.removeAt": ('int',),
- "PySide2.QtGui.QPolygonF.removeFirst": (),
- "PySide2.QtGui.QPolygonF.removeLast": (),
- "PySide2.QtGui.QPolygonF.removeOne": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QPolygonF.replace": ('int', 'PySide2.QtCore.QPointF'),
- "PySide2.QtGui.QPolygonF.reserve": ('int',),
- "PySide2.QtGui.QPolygonF.resize": ('int',),
- "PySide2.QtGui.QPolygonF.setSharable": ('bool',),
- "PySide2.QtGui.QPolygonF.shrink_to_fit": (),
- "PySide2.QtGui.QPolygonF.size": (),
- "PySide2.QtGui.QPolygonF.squeeze": (),
- "PySide2.QtGui.QPolygonF.startsWith": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QPolygonF.subtracted": ('PySide2.QtGui.QPolygonF',),
- "PySide2.QtGui.QPolygonF.swap": ('PySide2.QtGui.QPolygonF',),
- "PySide2.QtGui.QPolygonF.swapItemsAt": ('int', 'int'),
- "PySide2.QtGui.QPolygonF.takeAt": ('int',),
- "PySide2.QtGui.QPolygonF.takeFirst": (),
- "PySide2.QtGui.QPolygonF.takeLast": (),
- "PySide2.QtGui.QPolygonF.toList": (),
- "PySide2.QtGui.QPolygonF.toPolygon": (),
- "PySide2.QtGui.QPolygonF.translate": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QPolygonF.translated": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QPolygonF.united": ('PySide2.QtGui.QPolygonF',),
- "PySide2.QtGui.QPolygonF.value": [('int',), ('int', 'PySide2.QtCore.QPointF')],
-# class PySide2.QtGui.QPyTextObject:
- "PySide2.QtGui.QPyTextObject.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QPyTextObject.drawObject": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF', 'PySide2.QtGui.QTextDocument', 'int', 'PySide2.QtGui.QTextFormat'),
- "PySide2.QtGui.QPyTextObject.intrinsicSize": ('PySide2.QtGui.QTextDocument', 'int', 'PySide2.QtGui.QTextFormat'),
-# class PySide2.QtGui.QQuaternion:
- "PySide2.QtGui.QQuaternion.__init__": [(), ('PySide2.QtGui.QVector4D',), ('float', 'PySide2.QtGui.QVector3D'), ('float', 'float', 'float', 'float')],
- "PySide2.QtGui.QQuaternion.__add__": ('PySide2.QtGui.QQuaternion',),
- "PySide2.QtGui.QQuaternion.__copy__": (),
- "PySide2.QtGui.QQuaternion.__iadd__": ('PySide2.QtGui.QQuaternion',),
- "PySide2.QtGui.QQuaternion.__imul__": [('PySide2.QtGui.QQuaternion',), ('float',)],
- "PySide2.QtGui.QQuaternion.__isub__": ('PySide2.QtGui.QQuaternion',),
- "PySide2.QtGui.QQuaternion.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QQuaternion.__mul__": [('PySide2.QtGui.QQuaternion',), ('float',)],
- "PySide2.QtGui.QQuaternion.__neg__": (),
- "PySide2.QtGui.QQuaternion.__reduce__": (),
- "PySide2.QtGui.QQuaternion.__repr__": (),
- "PySide2.QtGui.QQuaternion.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QQuaternion.__sub__": ('PySide2.QtGui.QQuaternion',),
- "PySide2.QtGui.QQuaternion.conjugate": (),
- "PySide2.QtGui.QQuaternion.conjugated": (),
- "PySide2.QtGui.QQuaternion.dotProduct": ('PySide2.QtGui.QQuaternion', 'PySide2.QtGui.QQuaternion'),
- "PySide2.QtGui.QQuaternion.fromAxes": ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'),
- "PySide2.QtGui.QQuaternion.fromAxisAndAngle": [('PySide2.QtGui.QVector3D', 'float'), ('float', 'float', 'float', 'float')],
- "PySide2.QtGui.QQuaternion.fromDirection": ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'),
- "PySide2.QtGui.QQuaternion.fromEulerAngles": [('PySide2.QtGui.QVector3D',), ('float', 'float', 'float')],
- "PySide2.QtGui.QQuaternion.fromRotationMatrix": ('PySide2.QtGui.QMatrix3x3',),
- "PySide2.QtGui.QQuaternion.getAxes": ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'),
- "PySide2.QtGui.QQuaternion.inverted": (),
- "PySide2.QtGui.QQuaternion.isIdentity": (),
- "PySide2.QtGui.QQuaternion.isNull": (),
- "PySide2.QtGui.QQuaternion.length": (),
- "PySide2.QtGui.QQuaternion.lengthSquared": (),
- "PySide2.QtGui.QQuaternion.nlerp": ('PySide2.QtGui.QQuaternion', 'PySide2.QtGui.QQuaternion', 'float'),
- "PySide2.QtGui.QQuaternion.normalize": (),
- "PySide2.QtGui.QQuaternion.normalized": (),
- "PySide2.QtGui.QQuaternion.rotatedVector": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtGui.QQuaternion.rotationTo": ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'),
- "PySide2.QtGui.QQuaternion.scalar": (),
- "PySide2.QtGui.QQuaternion.setScalar": ('float',),
- "PySide2.QtGui.QQuaternion.setVector": [('PySide2.QtGui.QVector3D',), ('float', 'float', 'float')],
- "PySide2.QtGui.QQuaternion.setX": ('float',),
- "PySide2.QtGui.QQuaternion.setY": ('float',),
- "PySide2.QtGui.QQuaternion.setZ": ('float',),
- "PySide2.QtGui.QQuaternion.slerp": ('PySide2.QtGui.QQuaternion', 'PySide2.QtGui.QQuaternion', 'float'),
- "PySide2.QtGui.QQuaternion.toEulerAngles": (),
- "PySide2.QtGui.QQuaternion.toRotationMatrix": (),
- "PySide2.QtGui.QQuaternion.toVector4D": (),
- "PySide2.QtGui.QQuaternion.vector": (),
- "PySide2.QtGui.QQuaternion.x": (),
- "PySide2.QtGui.QQuaternion.y": (),
- "PySide2.QtGui.QQuaternion.z": (),
-# class PySide2.QtGui.QRadialGradient:
- "PySide2.QtGui.QRadialGradient.__init__": [(), ('PySide2.QtCore.QPointF', 'float'), ('PySide2.QtCore.QPointF', 'float', 'PySide2.QtCore.QPointF'), ('PySide2.QtCore.QPointF', 'float', 'PySide2.QtCore.QPointF', 'float'), ('PySide2.QtGui.QRadialGradient',), ('float', 'float', 'float'), ('float', 'float', 'float', 'float', 'float'), ('float', 'float', 'float', 'float', 'float', 'float')],
- "PySide2.QtGui.QRadialGradient.__copy__": (),
- "PySide2.QtGui.QRadialGradient.center": (),
- "PySide2.QtGui.QRadialGradient.centerRadius": (),
- "PySide2.QtGui.QRadialGradient.focalPoint": (),
- "PySide2.QtGui.QRadialGradient.focalRadius": (),
- "PySide2.QtGui.QRadialGradient.radius": (),
- "PySide2.QtGui.QRadialGradient.setCenter": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QRadialGradient.setCenterRadius": ('float',),
- "PySide2.QtGui.QRadialGradient.setFocalPoint": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtGui.QRadialGradient.setFocalRadius": ('float',),
- "PySide2.QtGui.QRadialGradient.setRadius": ('float',),
-# class PySide2.QtGui.QRasterWindow:
- "PySide2.QtGui.QRasterWindow.__init__": ('PySide2.QtGui.QWindow',),
- "PySide2.QtGui.QRasterWindow.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtGui.QRasterWindow.redirected": ('PySide2.QtCore.QPoint',),
-# class PySide2.QtGui.QRawFont:
-# class PySide2.QtGui.QRawFont.AntialiasingType:
-# class PySide2.QtGui.QRawFont.LayoutFlag:
-# class PySide2.QtGui.QRawFont.LayoutFlags:
- "PySide2.QtGui.QRawFont.__init__": [(), ('PySide2.QtCore.QByteArray', 'float', 'PySide2.QtGui.QFont.HintingPreference'), ('PySide2.QtGui.QRawFont',), ('str', 'float', 'PySide2.QtGui.QFont.HintingPreference')],
- "PySide2.QtGui.QRawFont.__copy__": (),
- "PySide2.QtGui.QRawFont.advancesForGlyphIndexes": [('typing.List[int]',), ('typing.List[int]', 'PySide2.QtGui.QRawFont.LayoutFlags')],
- "PySide2.QtGui.QRawFont.alphaMapForGlyph": ('int', 'PySide2.QtGui.QRawFont.AntialiasingType', 'PySide2.QtGui.QTransform'),
- "PySide2.QtGui.QRawFont.ascent": (),
- "PySide2.QtGui.QRawFont.averageCharWidth": (),
- "PySide2.QtGui.QRawFont.boundingRect": ('int',),
- "PySide2.QtGui.QRawFont.capHeight": (),
- "PySide2.QtGui.QRawFont.descent": (),
- "PySide2.QtGui.QRawFont.familyName": (),
- "PySide2.QtGui.QRawFont.fontTable": ('str',),
- "PySide2.QtGui.QRawFont.fromFont": ('PySide2.QtGui.QFont', 'PySide2.QtGui.QFontDatabase.WritingSystem'),
- "PySide2.QtGui.QRawFont.glyphIndexesForString": ('str',),
- "PySide2.QtGui.QRawFont.hintingPreference": (),
- "PySide2.QtGui.QRawFont.isValid": (),
- "PySide2.QtGui.QRawFont.leading": (),
- "PySide2.QtGui.QRawFont.lineThickness": (),
- "PySide2.QtGui.QRawFont.loadFromData": ('PySide2.QtCore.QByteArray', 'float', 'PySide2.QtGui.QFont.HintingPreference'),
- "PySide2.QtGui.QRawFont.loadFromFile": ('str', 'float', 'PySide2.QtGui.QFont.HintingPreference'),
- "PySide2.QtGui.QRawFont.maxCharWidth": (),
- "PySide2.QtGui.QRawFont.pathForGlyph": ('int',),
- "PySide2.QtGui.QRawFont.pixelSize": (),
- "PySide2.QtGui.QRawFont.setPixelSize": ('float',),
- "PySide2.QtGui.QRawFont.style": (),
- "PySide2.QtGui.QRawFont.styleName": (),
- "PySide2.QtGui.QRawFont.supportedWritingSystems": (),
- "PySide2.QtGui.QRawFont.supportsCharacter": [('int',), ('str',)],
- "PySide2.QtGui.QRawFont.swap": ('PySide2.QtGui.QRawFont',),
- "PySide2.QtGui.QRawFont.underlinePosition": (),
- "PySide2.QtGui.QRawFont.unitsPerEm": (),
- "PySide2.QtGui.QRawFont.weight": (),
- "PySide2.QtGui.QRawFont.xHeight": (),
-# class PySide2.QtGui.QRegExpValidator:
- "PySide2.QtGui.QRegExpValidator.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtCore.QRegExp', 'PySide2.QtCore.QObject')],
- "PySide2.QtGui.QRegExpValidator.regExp": (),
- "PySide2.QtGui.QRegExpValidator.setRegExp": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtGui.QRegExpValidator.validate": ('str', 'int'),
-# class PySide2.QtGui.QRegion:
-# class PySide2.QtGui.QRegion.RegionType:
- "PySide2.QtGui.QRegion.__init__": [(), ('PySide2.QtCore.QRect', 'PySide2.QtGui.QRegion.RegionType'), ('PySide2.QtGui.QBitmap',), ('PySide2.QtGui.QPolygon', 'PySide2.QtCore.Qt.FillRule'), ('PySide2.QtGui.QRegion',), ('int', 'int', 'int', 'int', 'PySide2.QtGui.QRegion.RegionType')],
- "PySide2.QtGui.QRegion.__add__": [('PySide2.QtCore.QRect',), ('PySide2.QtGui.QRegion',)],
- "PySide2.QtGui.QRegion.__and__": [('PySide2.QtCore.QRect',), ('PySide2.QtGui.QRegion',)],
- "PySide2.QtGui.QRegion.__copy__": (),
- "PySide2.QtGui.QRegion.__iadd__": [('PySide2.QtCore.QRect',), ('PySide2.QtGui.QRegion',)],
- "PySide2.QtGui.QRegion.__ior__": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QRegion.__isub__": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QRegion.__ixor__": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QRegion.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QRegion.__mul__": [('PySide2.QtGui.QMatrix',), ('PySide2.QtGui.QTransform',)],
- "PySide2.QtGui.QRegion.__or__": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QRegion.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QRegion.__sub__": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QRegion.__xor__": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QRegion.begin": (),
- "PySide2.QtGui.QRegion.boundingRect": (),
- "PySide2.QtGui.QRegion.cbegin": (),
- "PySide2.QtGui.QRegion.cend": (),
- "PySide2.QtGui.QRegion.contains": [('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QRect',)],
- "PySide2.QtGui.QRegion.end": (),
- "PySide2.QtGui.QRegion.intersected": [('PySide2.QtCore.QRect',), ('PySide2.QtGui.QRegion',)],
- "PySide2.QtGui.QRegion.intersects": [('PySide2.QtCore.QRect',), ('PySide2.QtGui.QRegion',)],
- "PySide2.QtGui.QRegion.isEmpty": (),
- "PySide2.QtGui.QRegion.isNull": (),
- "PySide2.QtGui.QRegion.rectCount": (),
- "PySide2.QtGui.QRegion.rects": (),
- "PySide2.QtGui.QRegion.setRects": ('PySide2.QtCore.QRect', 'int'),
- "PySide2.QtGui.QRegion.subtracted": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QRegion.swap": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QRegion.translate": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtGui.QRegion.translated": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtGui.QRegion.united": [('PySide2.QtCore.QRect',), ('PySide2.QtGui.QRegion',)],
- "PySide2.QtGui.QRegion.xored": ('PySide2.QtGui.QRegion',),
-# class PySide2.QtGui.QResizeEvent:
- "PySide2.QtGui.QResizeEvent.__init__": ('PySide2.QtCore.QSize', 'PySide2.QtCore.QSize'),
- "PySide2.QtGui.QResizeEvent.oldSize": (),
- "PySide2.QtGui.QResizeEvent.size": (),
-# class PySide2.QtGui.QScreen:
- "PySide2.QtGui.QScreen.angleBetween": ('PySide2.QtCore.Qt.ScreenOrientation', 'PySide2.QtCore.Qt.ScreenOrientation'),
- "PySide2.QtGui.QScreen.availableGeometry": (),
- "PySide2.QtGui.QScreen.availableSize": (),
- "PySide2.QtGui.QScreen.availableVirtualGeometry": (),
- "PySide2.QtGui.QScreen.availableVirtualSize": (),
- "PySide2.QtGui.QScreen.depth": (),
- "PySide2.QtGui.QScreen.devicePixelRatio": (),
- "PySide2.QtGui.QScreen.geometry": (),
- "PySide2.QtGui.QScreen.grabWindow": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtGui.QScreen.isLandscape": ('PySide2.QtCore.Qt.ScreenOrientation',),
- "PySide2.QtGui.QScreen.isPortrait": ('PySide2.QtCore.Qt.ScreenOrientation',),
- "PySide2.QtGui.QScreen.logicalDotsPerInch": (),
- "PySide2.QtGui.QScreen.logicalDotsPerInchX": (),
- "PySide2.QtGui.QScreen.logicalDotsPerInchY": (),
- "PySide2.QtGui.QScreen.manufacturer": (),
- "PySide2.QtGui.QScreen.mapBetween": ('PySide2.QtCore.Qt.ScreenOrientation', 'PySide2.QtCore.Qt.ScreenOrientation', 'PySide2.QtCore.QRect'),
- "PySide2.QtGui.QScreen.model": (),
- "PySide2.QtGui.QScreen.name": (),
- "PySide2.QtGui.QScreen.nativeOrientation": (),
- "PySide2.QtGui.QScreen.orientation": (),
- "PySide2.QtGui.QScreen.orientationUpdateMask": (),
- "PySide2.QtGui.QScreen.physicalDotsPerInch": (),
- "PySide2.QtGui.QScreen.physicalDotsPerInchX": (),
- "PySide2.QtGui.QScreen.physicalDotsPerInchY": (),
- "PySide2.QtGui.QScreen.physicalSize": (),
- "PySide2.QtGui.QScreen.primaryOrientation": (),
- "PySide2.QtGui.QScreen.refreshRate": (),
- "PySide2.QtGui.QScreen.serialNumber": (),
- "PySide2.QtGui.QScreen.setOrientationUpdateMask": ('PySide2.QtCore.Qt.ScreenOrientations',),
- "PySide2.QtGui.QScreen.size": (),
- "PySide2.QtGui.QScreen.transformBetween": ('PySide2.QtCore.Qt.ScreenOrientation', 'PySide2.QtCore.Qt.ScreenOrientation', 'PySide2.QtCore.QRect'),
- "PySide2.QtGui.QScreen.virtualGeometry": (),
- "PySide2.QtGui.QScreen.virtualSiblings": (),
- "PySide2.QtGui.QScreen.virtualSize": (),
-# class PySide2.QtGui.QScrollEvent:
-# class PySide2.QtGui.QScrollEvent.ScrollState:
- "PySide2.QtGui.QScrollEvent.__init__": ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtGui.QScrollEvent.ScrollState'),
- "PySide2.QtGui.QScrollEvent.contentPos": (),
- "PySide2.QtGui.QScrollEvent.overshootDistance": (),
- "PySide2.QtGui.QScrollEvent.scrollState": (),
-# class PySide2.QtGui.QScrollPrepareEvent:
- "PySide2.QtGui.QScrollPrepareEvent.__init__": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QScrollPrepareEvent.contentPos": (),
- "PySide2.QtGui.QScrollPrepareEvent.contentPosRange": (),
- "PySide2.QtGui.QScrollPrepareEvent.setContentPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QScrollPrepareEvent.setContentPosRange": ('PySide2.QtCore.QRectF',),
- "PySide2.QtGui.QScrollPrepareEvent.setViewportSize": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtGui.QScrollPrepareEvent.startPos": (),
- "PySide2.QtGui.QScrollPrepareEvent.viewportSize": (),
-# class PySide2.QtGui.QSessionManager:
-# class PySide2.QtGui.QSessionManager.RestartHint:
- "PySide2.QtGui.QSessionManager.allowsErrorInteraction": (),
- "PySide2.QtGui.QSessionManager.allowsInteraction": (),
- "PySide2.QtGui.QSessionManager.cancel": (),
- "PySide2.QtGui.QSessionManager.discardCommand": (),
- "PySide2.QtGui.QSessionManager.isPhase2": (),
- "PySide2.QtGui.QSessionManager.release": (),
- "PySide2.QtGui.QSessionManager.requestPhase2": (),
- "PySide2.QtGui.QSessionManager.restartCommand": (),
- "PySide2.QtGui.QSessionManager.restartHint": (),
- "PySide2.QtGui.QSessionManager.sessionId": (),
- "PySide2.QtGui.QSessionManager.sessionKey": (),
- "PySide2.QtGui.QSessionManager.setDiscardCommand": ('typing.Sequence[str]',),
- "PySide2.QtGui.QSessionManager.setManagerProperty": [('str', 'str'), ('str', 'typing.Sequence[str]')],
- "PySide2.QtGui.QSessionManager.setRestartCommand": ('typing.Sequence[str]',),
- "PySide2.QtGui.QSessionManager.setRestartHint": ('PySide2.QtGui.QSessionManager.RestartHint',),
-# class PySide2.QtGui.QShortcutEvent:
- "PySide2.QtGui.QShortcutEvent.__init__": ('PySide2.QtGui.QKeySequence', 'int', 'bool'),
- "PySide2.QtGui.QShortcutEvent.isAmbiguous": (),
- "PySide2.QtGui.QShortcutEvent.key": (),
- "PySide2.QtGui.QShortcutEvent.shortcutId": (),
-# class PySide2.QtGui.QShowEvent:
- "PySide2.QtGui.QShowEvent.__init__": (),
-# class PySide2.QtGui.QStandardItem:
-# class PySide2.QtGui.QStandardItem.ItemType:
- "PySide2.QtGui.QStandardItem.__init__": [(), ('PySide2.QtGui.QIcon', 'str'), ('PySide2.QtGui.QStandardItem',), ('int', 'int'), ('str',)],
- "PySide2.QtGui.QStandardItem.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QStandardItem.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QStandardItem.accessibleDescription": (),
- "PySide2.QtGui.QStandardItem.accessibleText": (),
- "PySide2.QtGui.QStandardItem.appendColumn": ('typing.Sequence[PySide2.QtGui.QStandardItem]',),
- "PySide2.QtGui.QStandardItem.appendRow": [('PySide2.QtGui.QStandardItem',), ('typing.Sequence[PySide2.QtGui.QStandardItem]',)],
- "PySide2.QtGui.QStandardItem.appendRows": ('typing.Sequence[PySide2.QtGui.QStandardItem]',),
- "PySide2.QtGui.QStandardItem.background": (),
- "PySide2.QtGui.QStandardItem.checkState": (),
- "PySide2.QtGui.QStandardItem.child": ('int', 'int'),
- "PySide2.QtGui.QStandardItem.clearData": (),
- "PySide2.QtGui.QStandardItem.clone": (),
- "PySide2.QtGui.QStandardItem.column": (),
- "PySide2.QtGui.QStandardItem.columnCount": (),
- "PySide2.QtGui.QStandardItem.data": ('int',),
- "PySide2.QtGui.QStandardItem.emitDataChanged": (),
- "PySide2.QtGui.QStandardItem.flags": (),
- "PySide2.QtGui.QStandardItem.font": (),
- "PySide2.QtGui.QStandardItem.foreground": (),
- "PySide2.QtGui.QStandardItem.hasChildren": (),
- "PySide2.QtGui.QStandardItem.icon": (),
- "PySide2.QtGui.QStandardItem.index": (),
- "PySide2.QtGui.QStandardItem.insertColumn": ('int', 'typing.Sequence[PySide2.QtGui.QStandardItem]'),
- "PySide2.QtGui.QStandardItem.insertColumns": ('int', 'int'),
- "PySide2.QtGui.QStandardItem.insertRow": [('int', 'PySide2.QtGui.QStandardItem'), ('int', 'typing.Sequence[PySide2.QtGui.QStandardItem]')],
- "PySide2.QtGui.QStandardItem.insertRows": [('int', 'int'), ('int', 'typing.Sequence[PySide2.QtGui.QStandardItem]')],
- "PySide2.QtGui.QStandardItem.isAutoTristate": (),
- "PySide2.QtGui.QStandardItem.isCheckable": (),
- "PySide2.QtGui.QStandardItem.isDragEnabled": (),
- "PySide2.QtGui.QStandardItem.isDropEnabled": (),
- "PySide2.QtGui.QStandardItem.isEditable": (),
- "PySide2.QtGui.QStandardItem.isEnabled": (),
- "PySide2.QtGui.QStandardItem.isSelectable": (),
- "PySide2.QtGui.QStandardItem.isTristate": (),
- "PySide2.QtGui.QStandardItem.isUserTristate": (),
- "PySide2.QtGui.QStandardItem.model": (),
- "PySide2.QtGui.QStandardItem.parent": (),
- "PySide2.QtGui.QStandardItem.read": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QStandardItem.removeColumn": ('int',),
- "PySide2.QtGui.QStandardItem.removeColumns": ('int', 'int'),
- "PySide2.QtGui.QStandardItem.removeRow": ('int',),
- "PySide2.QtGui.QStandardItem.removeRows": ('int', 'int'),
- "PySide2.QtGui.QStandardItem.row": (),
- "PySide2.QtGui.QStandardItem.rowCount": (),
- "PySide2.QtGui.QStandardItem.setAccessibleDescription": ('str',),
- "PySide2.QtGui.QStandardItem.setAccessibleText": ('str',),
- "PySide2.QtGui.QStandardItem.setAutoTristate": ('bool',),
- "PySide2.QtGui.QStandardItem.setBackground": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QStandardItem.setCheckState": ('PySide2.QtCore.Qt.CheckState',),
- "PySide2.QtGui.QStandardItem.setCheckable": ('bool',),
- "PySide2.QtGui.QStandardItem.setChild": [('int', 'PySide2.QtGui.QStandardItem'), ('int', 'int', 'PySide2.QtGui.QStandardItem')],
- "PySide2.QtGui.QStandardItem.setColumnCount": ('int',),
- "PySide2.QtGui.QStandardItem.setData": ('typing.Any', 'int'),
- "PySide2.QtGui.QStandardItem.setDragEnabled": ('bool',),
- "PySide2.QtGui.QStandardItem.setDropEnabled": ('bool',),
- "PySide2.QtGui.QStandardItem.setEditable": ('bool',),
- "PySide2.QtGui.QStandardItem.setEnabled": ('bool',),
- "PySide2.QtGui.QStandardItem.setFlags": ('PySide2.QtCore.Qt.ItemFlags',),
- "PySide2.QtGui.QStandardItem.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtGui.QStandardItem.setForeground": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QStandardItem.setIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtGui.QStandardItem.setRowCount": ('int',),
- "PySide2.QtGui.QStandardItem.setSelectable": ('bool',),
- "PySide2.QtGui.QStandardItem.setSizeHint": ('PySide2.QtCore.QSize',),
- "PySide2.QtGui.QStandardItem.setStatusTip": ('str',),
- "PySide2.QtGui.QStandardItem.setText": ('str',),
- "PySide2.QtGui.QStandardItem.setTextAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtGui.QStandardItem.setToolTip": ('str',),
- "PySide2.QtGui.QStandardItem.setTristate": ('bool',),
- "PySide2.QtGui.QStandardItem.setUserTristate": ('bool',),
- "PySide2.QtGui.QStandardItem.setWhatsThis": ('str',),
- "PySide2.QtGui.QStandardItem.sizeHint": (),
- "PySide2.QtGui.QStandardItem.sortChildren": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtGui.QStandardItem.statusTip": (),
- "PySide2.QtGui.QStandardItem.takeChild": ('int', 'int'),
- "PySide2.QtGui.QStandardItem.takeColumn": ('int',),
- "PySide2.QtGui.QStandardItem.takeRow": ('int',),
- "PySide2.QtGui.QStandardItem.text": (),
- "PySide2.QtGui.QStandardItem.textAlignment": (),
- "PySide2.QtGui.QStandardItem.toolTip": (),
- "PySide2.QtGui.QStandardItem.type": (),
- "PySide2.QtGui.QStandardItem.whatsThis": (),
- "PySide2.QtGui.QStandardItem.write": ('PySide2.QtCore.QDataStream',),
-# class PySide2.QtGui.QStandardItemModel:
- "PySide2.QtGui.QStandardItemModel.__init__": [('PySide2.QtCore.QObject',), ('int', 'int', 'PySide2.QtCore.QObject')],
- "PySide2.QtGui.QStandardItemModel.appendColumn": ('typing.Sequence[PySide2.QtGui.QStandardItem]',),
- "PySide2.QtGui.QStandardItemModel.appendRow": [('PySide2.QtGui.QStandardItem',), ('typing.Sequence[PySide2.QtGui.QStandardItem]',)],
- "PySide2.QtGui.QStandardItemModel.clear": (),
- "PySide2.QtGui.QStandardItemModel.clearItemData": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtGui.QStandardItemModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtGui.QStandardItemModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtGui.QStandardItemModel.dropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtGui.QStandardItemModel.findItems": ('str', 'PySide2.QtCore.Qt.MatchFlags', 'int'),
- "PySide2.QtGui.QStandardItemModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtGui.QStandardItemModel.hasChildren": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtGui.QStandardItemModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtGui.QStandardItemModel.horizontalHeaderItem": ('int',),
- "PySide2.QtGui.QStandardItemModel.index": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtGui.QStandardItemModel.indexFromItem": ('PySide2.QtGui.QStandardItem',),
- "PySide2.QtGui.QStandardItemModel.insertColumn": [('int', 'PySide2.QtCore.QModelIndex'), ('int', 'typing.Sequence[PySide2.QtGui.QStandardItem]')],
- "PySide2.QtGui.QStandardItemModel.insertColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtGui.QStandardItemModel.insertRow": [('int', 'PySide2.QtCore.QModelIndex'), ('int', 'PySide2.QtGui.QStandardItem'), ('int', 'typing.Sequence[PySide2.QtGui.QStandardItem]')],
- "PySide2.QtGui.QStandardItemModel.insertRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtGui.QStandardItemModel.invisibleRootItem": (),
- "PySide2.QtGui.QStandardItemModel.item": ('int', 'int'),
- "PySide2.QtGui.QStandardItemModel.itemData": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtGui.QStandardItemModel.itemFromIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtGui.QStandardItemModel.itemPrototype": (),
- "PySide2.QtGui.QStandardItemModel.mimeData": ('typing.List[int]',),
- "PySide2.QtGui.QStandardItemModel.mimeTypes": (),
- "PySide2.QtGui.QStandardItemModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtGui.QStandardItemModel.removeColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtGui.QStandardItemModel.removeRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtGui.QStandardItemModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtGui.QStandardItemModel.setColumnCount": ('int',),
- "PySide2.QtGui.QStandardItemModel.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
- "PySide2.QtGui.QStandardItemModel.setHeaderData": ('int', 'PySide2.QtCore.Qt.Orientation', 'typing.Any', 'int'),
- "PySide2.QtGui.QStandardItemModel.setHorizontalHeaderItem": ('int', 'PySide2.QtGui.QStandardItem'),
- "PySide2.QtGui.QStandardItemModel.setHorizontalHeaderLabels": ('typing.Sequence[str]',),
- "PySide2.QtGui.QStandardItemModel.setItem": [('int', 'PySide2.QtGui.QStandardItem'), ('int', 'int', 'PySide2.QtGui.QStandardItem')],
- "PySide2.QtGui.QStandardItemModel.setItemData": ('PySide2.QtCore.QModelIndex', 'typing.Dict[int, typing.Any]'),
- "PySide2.QtGui.QStandardItemModel.setItemPrototype": ('PySide2.QtGui.QStandardItem',),
- "PySide2.QtGui.QStandardItemModel.setItemRoleNames": ('typing.Dict[int, PySide2.QtCore.QByteArray]',),
- "PySide2.QtGui.QStandardItemModel.setRowCount": ('int',),
- "PySide2.QtGui.QStandardItemModel.setSortRole": ('int',),
- "PySide2.QtGui.QStandardItemModel.setVerticalHeaderItem": ('int', 'PySide2.QtGui.QStandardItem'),
- "PySide2.QtGui.QStandardItemModel.setVerticalHeaderLabels": ('typing.Sequence[str]',),
- "PySide2.QtGui.QStandardItemModel.sibling": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtGui.QStandardItemModel.sort": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtGui.QStandardItemModel.sortRole": (),
- "PySide2.QtGui.QStandardItemModel.supportedDropActions": (),
- "PySide2.QtGui.QStandardItemModel.takeColumn": ('int',),
- "PySide2.QtGui.QStandardItemModel.takeHorizontalHeaderItem": ('int',),
- "PySide2.QtGui.QStandardItemModel.takeItem": ('int', 'int'),
- "PySide2.QtGui.QStandardItemModel.takeRow": ('int',),
- "PySide2.QtGui.QStandardItemModel.takeVerticalHeaderItem": ('int',),
- "PySide2.QtGui.QStandardItemModel.verticalHeaderItem": ('int',),
-# class PySide2.QtGui.QStaticText:
-# class PySide2.QtGui.QStaticText.PerformanceHint:
- "PySide2.QtGui.QStaticText.__init__": [(), ('PySide2.QtGui.QStaticText',), ('str',)],
- "PySide2.QtGui.QStaticText.__copy__": (),
- "PySide2.QtGui.QStaticText.performanceHint": (),
- "PySide2.QtGui.QStaticText.prepare": ('PySide2.QtGui.QTransform', 'PySide2.QtGui.QFont'),
- "PySide2.QtGui.QStaticText.setPerformanceHint": ('PySide2.QtGui.QStaticText.PerformanceHint',),
- "PySide2.QtGui.QStaticText.setText": ('str',),
- "PySide2.QtGui.QStaticText.setTextFormat": ('PySide2.QtCore.Qt.TextFormat',),
- "PySide2.QtGui.QStaticText.setTextOption": ('PySide2.QtGui.QTextOption',),
- "PySide2.QtGui.QStaticText.setTextWidth": ('float',),
- "PySide2.QtGui.QStaticText.size": (),
- "PySide2.QtGui.QStaticText.swap": ('PySide2.QtGui.QStaticText',),
- "PySide2.QtGui.QStaticText.text": (),
- "PySide2.QtGui.QStaticText.textFormat": (),
- "PySide2.QtGui.QStaticText.textOption": (),
- "PySide2.QtGui.QStaticText.textWidth": (),
-# class PySide2.QtGui.QStatusTipEvent:
- "PySide2.QtGui.QStatusTipEvent.__init__": ('str',),
- "PySide2.QtGui.QStatusTipEvent.tip": (),
-# class PySide2.QtGui.QStyleHints:
- "PySide2.QtGui.QStyleHints.cursorFlashTime": (),
- "PySide2.QtGui.QStyleHints.fontSmoothingGamma": (),
- "PySide2.QtGui.QStyleHints.keyboardAutoRepeatRate": (),
- "PySide2.QtGui.QStyleHints.keyboardInputInterval": (),
- "PySide2.QtGui.QStyleHints.mouseDoubleClickDistance": (),
- "PySide2.QtGui.QStyleHints.mouseDoubleClickInterval": (),
- "PySide2.QtGui.QStyleHints.mousePressAndHoldInterval": (),
- "PySide2.QtGui.QStyleHints.mouseQuickSelectionThreshold": (),
- "PySide2.QtGui.QStyleHints.passwordMaskCharacter": (),
- "PySide2.QtGui.QStyleHints.passwordMaskDelay": (),
- "PySide2.QtGui.QStyleHints.setCursorFlashTime": ('int',),
- "PySide2.QtGui.QStyleHints.setFocusOnTouchRelease": (),
- "PySide2.QtGui.QStyleHints.setKeyboardInputInterval": ('int',),
- "PySide2.QtGui.QStyleHints.setMouseDoubleClickInterval": ('int',),
- "PySide2.QtGui.QStyleHints.setMousePressAndHoldInterval": ('int',),
- "PySide2.QtGui.QStyleHints.setMouseQuickSelectionThreshold": ('int',),
- "PySide2.QtGui.QStyleHints.setShowShortcutsInContextMenus": ('bool',),
- "PySide2.QtGui.QStyleHints.setStartDragDistance": ('int',),
- "PySide2.QtGui.QStyleHints.setStartDragTime": ('int',),
- "PySide2.QtGui.QStyleHints.setTabFocusBehavior": ('PySide2.QtCore.Qt.TabFocusBehavior',),
- "PySide2.QtGui.QStyleHints.setUseHoverEffects": ('bool',),
- "PySide2.QtGui.QStyleHints.setWheelScrollLines": ('int',),
- "PySide2.QtGui.QStyleHints.showIsFullScreen": (),
- "PySide2.QtGui.QStyleHints.showIsMaximized": (),
- "PySide2.QtGui.QStyleHints.showShortcutsInContextMenus": (),
- "PySide2.QtGui.QStyleHints.singleClickActivation": (),
- "PySide2.QtGui.QStyleHints.startDragDistance": (),
- "PySide2.QtGui.QStyleHints.startDragTime": (),
- "PySide2.QtGui.QStyleHints.startDragVelocity": (),
- "PySide2.QtGui.QStyleHints.tabFocusBehavior": (),
- "PySide2.QtGui.QStyleHints.touchDoubleTapDistance": (),
- "PySide2.QtGui.QStyleHints.useHoverEffects": (),
- "PySide2.QtGui.QStyleHints.useRtlExtensions": (),
- "PySide2.QtGui.QStyleHints.wheelScrollLines": (),
-# class PySide2.QtGui.QSurface:
-# class PySide2.QtGui.QSurface.SurfaceClass:
-# class PySide2.QtGui.QSurface.SurfaceType:
- "PySide2.QtGui.QSurface.__init__": ('PySide2.QtGui.QSurface.SurfaceClass',),
- "PySide2.QtGui.QSurface.format": (),
- "PySide2.QtGui.QSurface.size": (),
- "PySide2.QtGui.QSurface.supportsOpenGL": (),
- "PySide2.QtGui.QSurface.surfaceClass": (),
- "PySide2.QtGui.QSurface.surfaceHandle": (),
- "PySide2.QtGui.QSurface.surfaceType": (),
-# class PySide2.QtGui.QSurfaceFormat:
-# class PySide2.QtGui.QSurfaceFormat.ColorSpace:
-# class PySide2.QtGui.QSurfaceFormat.FormatOption:
-# class PySide2.QtGui.QSurfaceFormat.FormatOptions:
-# class PySide2.QtGui.QSurfaceFormat.OpenGLContextProfile:
-# class PySide2.QtGui.QSurfaceFormat.RenderableType:
-# class PySide2.QtGui.QSurfaceFormat.SwapBehavior:
- "PySide2.QtGui.QSurfaceFormat.__init__": [(), ('PySide2.QtGui.QSurfaceFormat',), ('PySide2.QtGui.QSurfaceFormat.FormatOptions',)],
- "PySide2.QtGui.QSurfaceFormat.__copy__": (),
- "PySide2.QtGui.QSurfaceFormat.alphaBufferSize": (),
- "PySide2.QtGui.QSurfaceFormat.blueBufferSize": (),
- "PySide2.QtGui.QSurfaceFormat.colorSpace": (),
- "PySide2.QtGui.QSurfaceFormat.defaultFormat": (),
- "PySide2.QtGui.QSurfaceFormat.depthBufferSize": (),
- "PySide2.QtGui.QSurfaceFormat.greenBufferSize": (),
- "PySide2.QtGui.QSurfaceFormat.hasAlpha": (),
- "PySide2.QtGui.QSurfaceFormat.majorVersion": (),
- "PySide2.QtGui.QSurfaceFormat.minorVersion": (),
- "PySide2.QtGui.QSurfaceFormat.options": (),
- "PySide2.QtGui.QSurfaceFormat.profile": (),
- "PySide2.QtGui.QSurfaceFormat.redBufferSize": (),
- "PySide2.QtGui.QSurfaceFormat.renderableType": (),
- "PySide2.QtGui.QSurfaceFormat.samples": (),
- "PySide2.QtGui.QSurfaceFormat.setAlphaBufferSize": ('int',),
- "PySide2.QtGui.QSurfaceFormat.setBlueBufferSize": ('int',),
- "PySide2.QtGui.QSurfaceFormat.setColorSpace": ('PySide2.QtGui.QSurfaceFormat.ColorSpace',),
- "PySide2.QtGui.QSurfaceFormat.setDefaultFormat": ('PySide2.QtGui.QSurfaceFormat',),
- "PySide2.QtGui.QSurfaceFormat.setDepthBufferSize": ('int',),
- "PySide2.QtGui.QSurfaceFormat.setGreenBufferSize": ('int',),
- "PySide2.QtGui.QSurfaceFormat.setMajorVersion": ('int',),
- "PySide2.QtGui.QSurfaceFormat.setMinorVersion": ('int',),
- "PySide2.QtGui.QSurfaceFormat.setOption": [('PySide2.QtGui.QSurfaceFormat.FormatOption', 'bool'), ('PySide2.QtGui.QSurfaceFormat.FormatOptions',)],
- "PySide2.QtGui.QSurfaceFormat.setOptions": ('PySide2.QtGui.QSurfaceFormat.FormatOptions',),
- "PySide2.QtGui.QSurfaceFormat.setProfile": ('PySide2.QtGui.QSurfaceFormat.OpenGLContextProfile',),
- "PySide2.QtGui.QSurfaceFormat.setRedBufferSize": ('int',),
- "PySide2.QtGui.QSurfaceFormat.setRenderableType": ('PySide2.QtGui.QSurfaceFormat.RenderableType',),
- "PySide2.QtGui.QSurfaceFormat.setSamples": ('int',),
- "PySide2.QtGui.QSurfaceFormat.setStencilBufferSize": ('int',),
- "PySide2.QtGui.QSurfaceFormat.setStereo": ('bool',),
- "PySide2.QtGui.QSurfaceFormat.setSwapBehavior": ('PySide2.QtGui.QSurfaceFormat.SwapBehavior',),
- "PySide2.QtGui.QSurfaceFormat.setSwapInterval": ('int',),
- "PySide2.QtGui.QSurfaceFormat.setVersion": ('int', 'int'),
- "PySide2.QtGui.QSurfaceFormat.stencilBufferSize": (),
- "PySide2.QtGui.QSurfaceFormat.stereo": (),
- "PySide2.QtGui.QSurfaceFormat.swapBehavior": (),
- "PySide2.QtGui.QSurfaceFormat.swapInterval": (),
- "PySide2.QtGui.QSurfaceFormat.testOption": [('PySide2.QtGui.QSurfaceFormat.FormatOption',), ('PySide2.QtGui.QSurfaceFormat.FormatOptions',)],
- "PySide2.QtGui.QSurfaceFormat.version": (),
-# class PySide2.QtGui.QSyntaxHighlighter:
- "PySide2.QtGui.QSyntaxHighlighter.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtGui.QTextDocument',)],
- "PySide2.QtGui.QSyntaxHighlighter.currentBlock": (),
- "PySide2.QtGui.QSyntaxHighlighter.currentBlockState": (),
- "PySide2.QtGui.QSyntaxHighlighter.currentBlockUserData": (),
- "PySide2.QtGui.QSyntaxHighlighter.document": (),
- "PySide2.QtGui.QSyntaxHighlighter.format": ('int',),
- "PySide2.QtGui.QSyntaxHighlighter.highlightBlock": ('str',),
- "PySide2.QtGui.QSyntaxHighlighter.previousBlockState": (),
- "PySide2.QtGui.QSyntaxHighlighter.rehighlight": (),
- "PySide2.QtGui.QSyntaxHighlighter.rehighlightBlock": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtGui.QSyntaxHighlighter.setCurrentBlockState": ('int',),
- "PySide2.QtGui.QSyntaxHighlighter.setCurrentBlockUserData": ('PySide2.QtGui.QTextBlockUserData',),
- "PySide2.QtGui.QSyntaxHighlighter.setDocument": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtGui.QSyntaxHighlighter.setFormat": [('int', 'int', 'PySide2.QtGui.QColor'), ('int', 'int', 'PySide2.QtGui.QFont'), ('int', 'int', 'PySide2.QtGui.QTextCharFormat')],
-# class PySide2.QtGui.QTabletEvent:
-# class PySide2.QtGui.QTabletEvent.PointerType:
-# class PySide2.QtGui.QTabletEvent.TabletDevice:
- "PySide2.QtGui.QTabletEvent.__init__": [('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'int', 'int', 'float', 'int', 'int', 'float', 'float', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'int', 'int', 'float', 'int', 'int', 'float', 'float', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.MouseButtons')],
- "PySide2.QtGui.QTabletEvent.button": (),
- "PySide2.QtGui.QTabletEvent.buttons": (),
- "PySide2.QtGui.QTabletEvent.device": (),
- "PySide2.QtGui.QTabletEvent.globalPos": (),
- "PySide2.QtGui.QTabletEvent.globalPosF": (),
- "PySide2.QtGui.QTabletEvent.globalX": (),
- "PySide2.QtGui.QTabletEvent.global""Y": (),
- "PySide2.QtGui.QTabletEvent.hiResGlobalX": (),
- "PySide2.QtGui.QTabletEvent.hiResGlobal""Y": (),
- "PySide2.QtGui.QTabletEvent.pointerType": (),
- "PySide2.QtGui.QTabletEvent.pos": (),
- "PySide2.QtGui.QTabletEvent.posF": (),
- "PySide2.QtGui.QTabletEvent.pressure": (),
- "PySide2.QtGui.QTabletEvent.rotation": (),
- "PySide2.QtGui.QTabletEvent.tangentialPressure": (),
- "PySide2.QtGui.QTabletEvent.uniqueId": (),
- "PySide2.QtGui.QTabletEvent.x": (),
- "PySide2.QtGui.QTabletEvent.xTilt": (),
- "PySide2.QtGui.QTabletEvent.y": (),
- "PySide2.QtGui.QTabletEvent.yTilt": (),
- "PySide2.QtGui.QTabletEvent.z": (),
-# class PySide2.QtGui.QTextBlock:
-# class PySide2.QtGui.QTextBlock.iterator:
- "PySide2.QtGui.QTextBlock.iterator.__init__": [(), ('PySide2.QtGui.QTextBlock.iterator',)],
- "PySide2.QtGui.QTextBlock.iterator.__copy__": (),
- "PySide2.QtGui.QTextBlock.iterator.__iadd__": ('int',),
- "PySide2.QtGui.QTextBlock.iterator.__isub__": ('int',),
- "PySide2.QtGui.QTextBlock.iterator.__iter__": (),
- "PySide2.QtGui.QTextBlock.iterator.atEnd": (),
- "PySide2.QtGui.QTextBlock.iterator.fragment": (),
- "PySide2.QtGui.QTextBlock.__init__": [(), ('PySide2.QtGui.QTextBlock',)],
- "PySide2.QtGui.QTextBlock.__copy__": (),
- "PySide2.QtGui.QTextBlock.__iter__": (),
- "PySide2.QtGui.QTextBlock.begin": (),
- "PySide2.QtGui.QTextBlock.blockFormat": (),
- "PySide2.QtGui.QTextBlock.blockFormatIndex": (),
- "PySide2.QtGui.QTextBlock.blockNumber": (),
- "PySide2.QtGui.QTextBlock.charFormat": (),
- "PySide2.QtGui.QTextBlock.charFormatIndex": (),
- "PySide2.QtGui.QTextBlock.clearLayout": (),
- "PySide2.QtGui.QTextBlock.contains": ('int',),
- "PySide2.QtGui.QTextBlock.document": (),
- "PySide2.QtGui.QTextBlock.end": (),
- "PySide2.QtGui.QTextBlock.firstLineNumber": (),
- "PySide2.QtGui.QTextBlock.fragmentIndex": (),
- "PySide2.QtGui.QTextBlock.isValid": (),
- "PySide2.QtGui.QTextBlock.isVisible": (),
- "PySide2.QtGui.QTextBlock.layout": (),
- "PySide2.QtGui.QTextBlock.length": (),
- "PySide2.QtGui.QTextBlock.lineCount": (),
- "PySide2.QtGui.QTextBlock.position": (),
- "PySide2.QtGui.QTextBlock.previous": (),
- "PySide2.QtGui.QTextBlock.revision": (),
- "PySide2.QtGui.QTextBlock.setLineCount": ('int',),
- "PySide2.QtGui.QTextBlock.setRevision": ('int',),
- "PySide2.QtGui.QTextBlock.setUserData": ('PySide2.QtGui.QTextBlockUserData',),
- "PySide2.QtGui.QTextBlock.setUserState": ('int',),
- "PySide2.QtGui.QTextBlock.setVisible": ('bool',),
- "PySide2.QtGui.QTextBlock.text": (),
- "PySide2.QtGui.QTextBlock.textDirection": (),
- "PySide2.QtGui.QTextBlock.textFormats": (),
- "PySide2.QtGui.QTextBlock.textList": (),
- "PySide2.QtGui.QTextBlock.userData": (),
- "PySide2.QtGui.QTextBlock.userState": (),
-# class PySide2.QtGui.QTextBlockFormat:
-# class PySide2.QtGui.QTextBlockFormat.LineHeightTypes:
-# class PySide2.QtGui.QTextBlockFormat.MarkerType:
- "PySide2.QtGui.QTextBlockFormat.__init__": [(), ('PySide2.QtGui.QTextBlockFormat',), ('PySide2.QtGui.QTextFormat',)],
- "PySide2.QtGui.QTextBlockFormat.__copy__": (),
- "PySide2.QtGui.QTextBlockFormat.alignment": (),
- "PySide2.QtGui.QTextBlockFormat.bottomMargin": (),
- "PySide2.QtGui.QTextBlockFormat.headingLevel": (),
- "PySide2.QtGui.QTextBlockFormat.indent": (),
- "PySide2.QtGui.QTextBlockFormat.isValid": (),
- "PySide2.QtGui.QTextBlockFormat.leftMargin": (),
- "PySide2.QtGui.QTextBlockFormat.lineHeight": [(), ('float', 'float')],
- "PySide2.QtGui.QTextBlockFormat.lineHeightType": (),
- "PySide2.QtGui.QTextBlockFormat.marker": (),
- "PySide2.QtGui.QTextBlockFormat.nonBreakableLines": (),
- "PySide2.QtGui.QTextBlockFormat.pageBreakPolicy": (),
- "PySide2.QtGui.QTextBlockFormat.rightMargin": (),
- "PySide2.QtGui.QTextBlockFormat.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtGui.QTextBlockFormat.setBottomMargin": ('float',),
- "PySide2.QtGui.QTextBlockFormat.setHeadingLevel": ('int',),
- "PySide2.QtGui.QTextBlockFormat.setIndent": ('int',),
- "PySide2.QtGui.QTextBlockFormat.setLeftMargin": ('float',),
- "PySide2.QtGui.QTextBlockFormat.setLineHeight": ('float', 'int'),
- "PySide2.QtGui.QTextBlockFormat.setMarker": ('PySide2.QtGui.QTextBlockFormat.MarkerType',),
- "PySide2.QtGui.QTextBlockFormat.setNonBreakableLines": ('bool',),
- "PySide2.QtGui.QTextBlockFormat.setPageBreakPolicy": ('PySide2.QtGui.QTextFormat.PageBreakFlags',),
- "PySide2.QtGui.QTextBlockFormat.setRightMargin": ('float',),
- "PySide2.QtGui.QTextBlockFormat.setTabPositions": ('typing.Sequence[PySide2.QtGui.QTextOption.Tab]',),
- "PySide2.QtGui.QTextBlockFormat.setTextIndent": ('float',),
- "PySide2.QtGui.QTextBlockFormat.setTopMargin": ('float',),
- "PySide2.QtGui.QTextBlockFormat.tabPositions": (),
- "PySide2.QtGui.QTextBlockFormat.textIndent": (),
- "PySide2.QtGui.QTextBlockFormat.topMargin": (),
-# class PySide2.QtGui.QTextBlockGroup:
- "PySide2.QtGui.QTextBlockGroup.__init__": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtGui.QTextBlockGroup.blockFormatChanged": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtGui.QTextBlockGroup.blockInserted": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtGui.QTextBlockGroup.blockList": (),
- "PySide2.QtGui.QTextBlockGroup.blockRemoved": ('PySide2.QtGui.QTextBlock',),
-# class PySide2.QtGui.QTextBlockUserData:
- "PySide2.QtGui.QTextBlockUserData.__init__": (),
-# class PySide2.QtGui.QTextCharFormat:
-# class PySide2.QtGui.QTextCharFormat.FontPropertiesInheritanceBehavior:
-# class PySide2.QtGui.QTextCharFormat.UnderlineStyle:
-# class PySide2.QtGui.QTextCharFormat.VerticalAlignment:
- "PySide2.QtGui.QTextCharFormat.__init__": [(), ('PySide2.QtGui.QTextCharFormat',), ('PySide2.QtGui.QTextFormat',)],
- "PySide2.QtGui.QTextCharFormat.__copy__": (),
- "PySide2.QtGui.QTextCharFormat.anchorHref": (),
- "PySide2.QtGui.QTextCharFormat.anchorName": (),
- "PySide2.QtGui.QTextCharFormat.anchorNames": (),
- "PySide2.QtGui.QTextCharFormat.font": (),
- "PySide2.QtGui.QTextCharFormat.fontCapitalization": (),
- "PySide2.QtGui.QTextCharFormat.fontFamilies": (),
- "PySide2.QtGui.QTextCharFormat.fontFamily": (),
- "PySide2.QtGui.QTextCharFormat.fontFixedPitch": (),
- "PySide2.QtGui.QTextCharFormat.fontHintingPreference": (),
- "PySide2.QtGui.QTextCharFormat.fontItalic": (),
- "PySide2.QtGui.QTextCharFormat.fontKerning": (),
- "PySide2.QtGui.QTextCharFormat.fontLetterSpacing": (),
- "PySide2.QtGui.QTextCharFormat.fontLetterSpacingType": (),
- "PySide2.QtGui.QTextCharFormat.fontOverline": (),
- "PySide2.QtGui.QTextCharFormat.fontPointSize": (),
- "PySide2.QtGui.QTextCharFormat.fontStretch": (),
- "PySide2.QtGui.QTextCharFormat.fontStrikeOut": (),
- "PySide2.QtGui.QTextCharFormat.fontStyleHint": (),
- "PySide2.QtGui.QTextCharFormat.fontStyleName": (),
- "PySide2.QtGui.QTextCharFormat.fontStyleStrategy": (),
- "PySide2.QtGui.QTextCharFormat.fontUnderline": (),
- "PySide2.QtGui.QTextCharFormat.fontWeight": (),
- "PySide2.QtGui.QTextCharFormat.fontWordSpacing": (),
- "PySide2.QtGui.QTextCharFormat.isAnchor": (),
- "PySide2.QtGui.QTextCharFormat.isValid": (),
- "PySide2.QtGui.QTextCharFormat.setAnchor": ('bool',),
- "PySide2.QtGui.QTextCharFormat.setAnchorHref": ('str',),
- "PySide2.QtGui.QTextCharFormat.setAnchorName": ('str',),
- "PySide2.QtGui.QTextCharFormat.setAnchorNames": ('typing.Sequence[str]',),
- "PySide2.QtGui.QTextCharFormat.setFont": [('PySide2.QtGui.QFont',), ('PySide2.QtGui.QFont', 'PySide2.QtGui.QTextCharFormat.FontPropertiesInheritanceBehavior')],
- "PySide2.QtGui.QTextCharFormat.setFontCapitalization": ('PySide2.QtGui.QFont.Capitalization',),
- "PySide2.QtGui.QTextCharFormat.setFontFamilies": ('typing.Sequence[str]',),
- "PySide2.QtGui.QTextCharFormat.setFontFamily": ('str',),
- "PySide2.QtGui.QTextCharFormat.setFontFixedPitch": ('bool',),
- "PySide2.QtGui.QTextCharFormat.setFontHintingPreference": ('PySide2.QtGui.QFont.HintingPreference',),
- "PySide2.QtGui.QTextCharFormat.setFontItalic": ('bool',),
- "PySide2.QtGui.QTextCharFormat.setFontKerning": ('bool',),
- "PySide2.QtGui.QTextCharFormat.setFontLetterSpacing": ('float',),
- "PySide2.QtGui.QTextCharFormat.setFontLetterSpacingType": ('PySide2.QtGui.QFont.SpacingType',),
- "PySide2.QtGui.QTextCharFormat.setFontOverline": ('bool',),
- "PySide2.QtGui.QTextCharFormat.setFontPointSize": ('float',),
- "PySide2.QtGui.QTextCharFormat.setFontStretch": ('int',),
- "PySide2.QtGui.QTextCharFormat.setFontStrikeOut": ('bool',),
- "PySide2.QtGui.QTextCharFormat.setFontStyleHint": ('PySide2.QtGui.QFont.StyleHint', 'PySide2.QtGui.QFont.StyleStrategy'),
- "PySide2.QtGui.QTextCharFormat.setFontStyleName": ('str',),
- "PySide2.QtGui.QTextCharFormat.setFontStyleStrategy": ('PySide2.QtGui.QFont.StyleStrategy',),
- "PySide2.QtGui.QTextCharFormat.setFontUnderline": ('bool',),
- "PySide2.QtGui.QTextCharFormat.setFontWeight": ('int',),
- "PySide2.QtGui.QTextCharFormat.setFontWordSpacing": ('float',),
- "PySide2.QtGui.QTextCharFormat.setTableCellColumnSpan": ('int',),
- "PySide2.QtGui.QTextCharFormat.setTableCellRowSpan": ('int',),
- "PySide2.QtGui.QTextCharFormat.setTextOutline": ('PySide2.QtGui.QPen',),
- "PySide2.QtGui.QTextCharFormat.setToolTip": ('str',),
- "PySide2.QtGui.QTextCharFormat.setUnderlineColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtGui.QTextCharFormat.setUnderlineStyle": ('PySide2.QtGui.QTextCharFormat.UnderlineStyle',),
- "PySide2.QtGui.QTextCharFormat.setVerticalAlignment": ('PySide2.QtGui.QTextCharFormat.VerticalAlignment',),
- "PySide2.QtGui.QTextCharFormat.tableCellColumnSpan": (),
- "PySide2.QtGui.QTextCharFormat.tableCellRowSpan": (),
- "PySide2.QtGui.QTextCharFormat.textOutline": (),
- "PySide2.QtGui.QTextCharFormat.toolTip": (),
- "PySide2.QtGui.QTextCharFormat.underlineColor": (),
- "PySide2.QtGui.QTextCharFormat.underlineStyle": (),
- "PySide2.QtGui.QTextCharFormat.verticalAlignment": (),
-# class PySide2.QtGui.QTextCursor:
-# class PySide2.QtGui.QTextCursor.MoveMode:
-# class PySide2.QtGui.QTextCursor.MoveOperation:
-# class PySide2.QtGui.QTextCursor.SelectionType:
- "PySide2.QtGui.QTextCursor.__init__": [(), ('PySide2.QtGui.QTextBlock',), ('PySide2.QtGui.QTextCursor',), ('PySide2.QtGui.QTextDocument',), ('PySide2.QtGui.QTextFrame',)],
- "PySide2.QtGui.QTextCursor.__copy__": (),
- "PySide2.QtGui.QTextCursor.anchor": (),
- "PySide2.QtGui.QTextCursor.atBlockEnd": (),
- "PySide2.QtGui.QTextCursor.atBlockStart": (),
- "PySide2.QtGui.QTextCursor.atEnd": (),
- "PySide2.QtGui.QTextCursor.atStart": (),
- "PySide2.QtGui.QTextCursor.beginEditBlock": (),
- "PySide2.QtGui.QTextCursor.block": (),
- "PySide2.QtGui.QTextCursor.blockCharFormat": (),
- "PySide2.QtGui.QTextCursor.blockFormat": (),
- "PySide2.QtGui.QTextCursor.blockNumber": (),
- "PySide2.QtGui.QTextCursor.charFormat": (),
- "PySide2.QtGui.QTextCursor.clearSelection": (),
- "PySide2.QtGui.QTextCursor.columnNumber": (),
- "PySide2.QtGui.QTextCursor.createList": [('PySide2.QtGui.QTextListFormat',), ('PySide2.QtGui.QTextListFormat.Style',)],
- "PySide2.QtGui.QTextCursor.currentFrame": (),
- "PySide2.QtGui.QTextCursor.currentList": (),
- "PySide2.QtGui.QTextCursor.currentTable": (),
- "PySide2.QtGui.QTextCursor.deleteChar": (),
- "PySide2.QtGui.QTextCursor.deletePreviousChar": (),
- "PySide2.QtGui.QTextCursor.document": (),
- "PySide2.QtGui.QTextCursor.endEditBlock": (),
- "PySide2.QtGui.QTextCursor.hasComplexSelection": (),
- "PySide2.QtGui.QTextCursor.hasSelection": (),
- "PySide2.QtGui.QTextCursor.insertBlock": [(), ('PySide2.QtGui.QTextBlockFormat',), ('PySide2.QtGui.QTextBlockFormat', 'PySide2.QtGui.QTextCharFormat')],
- "PySide2.QtGui.QTextCursor.insertFragment": ('PySide2.QtGui.QTextDocumentFragment',),
- "PySide2.QtGui.QTextCursor.insertFrame": ('PySide2.QtGui.QTextFrameFormat',),
- "PySide2.QtGui.QTextCursor.insertHtml": ('str',),
- "PySide2.QtGui.QTextCursor.insertImage": [('PySide2.QtGui.QImage', 'str'), ('PySide2.QtGui.QTextImageFormat',), ('PySide2.QtGui.QTextImageFormat', 'PySide2.QtGui.QTextFrameFormat.Position'), ('str',)],
- "PySide2.QtGui.QTextCursor.insertList": [('PySide2.QtGui.QTextListFormat',), ('PySide2.QtGui.QTextListFormat.Style',)],
- "PySide2.QtGui.QTextCursor.insertTable": [('int', 'int'), ('int', 'int', 'PySide2.QtGui.QTextTableFormat')],
- "PySide2.QtGui.QTextCursor.insertText": [('str',), ('str', 'PySide2.QtGui.QTextCharFormat')],
- "PySide2.QtGui.QTextCursor.isCopyOf": ('PySide2.QtGui.QTextCursor',),
- "PySide2.QtGui.QTextCursor.isNull": (),
- "PySide2.QtGui.QTextCursor.joinPreviousEditBlock": (),
- "PySide2.QtGui.QTextCursor.keepPositionOnInsert": (),
- "PySide2.QtGui.QTextCursor.mergeBlockCharFormat": ('PySide2.QtGui.QTextCharFormat',),
- "PySide2.QtGui.QTextCursor.mergeBlockFormat": ('PySide2.QtGui.QTextBlockFormat',),
- "PySide2.QtGui.QTextCursor.mergeCharFormat": ('PySide2.QtGui.QTextCharFormat',),
- "PySide2.QtGui.QTextCursor.movePosition": ('PySide2.QtGui.QTextCursor.MoveOperation', 'PySide2.QtGui.QTextCursor.MoveMode', 'int'),
- "PySide2.QtGui.QTextCursor.position": (),
- "PySide2.QtGui.QTextCursor.positionInBlock": (),
- "PySide2.QtGui.QTextCursor.removeSelectedText": (),
- "PySide2.QtGui.QTextCursor.select": ('PySide2.QtGui.QTextCursor.SelectionType',),
- "PySide2.QtGui.QTextCursor.selectedTableCells": (),
- "PySide2.QtGui.QTextCursor.selectedText": (),
- "PySide2.QtGui.QTextCursor.selection": (),
- "PySide2.QtGui.QTextCursor.selectionEnd": (),
- "PySide2.QtGui.QTextCursor.selectionStart": (),
- "PySide2.QtGui.QTextCursor.setBlockCharFormat": ('PySide2.QtGui.QTextCharFormat',),
- "PySide2.QtGui.QTextCursor.setBlockFormat": ('PySide2.QtGui.QTextBlockFormat',),
- "PySide2.QtGui.QTextCursor.setCharFormat": ('PySide2.QtGui.QTextCharFormat',),
- "PySide2.QtGui.QTextCursor.setKeepPositionOnInsert": ('bool',),
- "PySide2.QtGui.QTextCursor.setPosition": ('int', 'PySide2.QtGui.QTextCursor.MoveMode'),
- "PySide2.QtGui.QTextCursor.setVerticalMovementX": ('int',),
- "PySide2.QtGui.QTextCursor.setVisualNavigation": ('bool',),
- "PySide2.QtGui.QTextCursor.swap": ('PySide2.QtGui.QTextCursor',),
- "PySide2.QtGui.QTextCursor.verticalMovementX": (),
- "PySide2.QtGui.QTextCursor.visualNavigation": (),
-# class PySide2.QtGui.QTextDocument:
-# class PySide2.QtGui.QTextDocument.FindFlag:
-# class PySide2.QtGui.QTextDocument.FindFlags:
-# class PySide2.QtGui.QTextDocument.MarkdownFeature:
-# class PySide2.QtGui.QTextDocument.MarkdownFeatures:
-# class PySide2.QtGui.QTextDocument.MetaInformation:
-# class PySide2.QtGui.QTextDocument.ResourceType:
-# class PySide2.QtGui.QTextDocument.Stacks:
- "PySide2.QtGui.QTextDocument.__init__": [('PySide2.QtCore.QObject',), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtGui.QTextDocument.addResource": ('int', 'PySide2.QtCore.QUrl', 'typing.Any'),
- "PySide2.QtGui.QTextDocument.adjustSize": (),
- "PySide2.QtGui.QTextDocument.allFormats": (),
- "PySide2.QtGui.QTextDocument.availableRedoSteps": (),
- "PySide2.QtGui.QTextDocument.availableUndoSteps": (),
- "PySide2.QtGui.QTextDocument.baseUrl": (),
- "PySide2.QtGui.QTextDocument.begin": (),
- "PySide2.QtGui.QTextDocument.blockCount": (),
- "PySide2.QtGui.QTextDocument.characterAt": ('int',),
- "PySide2.QtGui.QTextDocument.characterCount": (),
- "PySide2.QtGui.QTextDocument.clear": (),
- "PySide2.QtGui.QTextDocument.clearUndoRedoStacks": ('PySide2.QtGui.QTextDocument.Stacks',),
- "PySide2.QtGui.QTextDocument.clone": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QTextDocument.createObject": ('PySide2.QtGui.QTextFormat',),
- "PySide2.QtGui.QTextDocument.defaultCursorMoveStyle": (),
- "PySide2.QtGui.QTextDocument.defaultFont": (),
- "PySide2.QtGui.QTextDocument.defaultStyleSheet": (),
- "PySide2.QtGui.QTextDocument.defaultTextOption": (),
- "PySide2.QtGui.QTextDocument.documentLayout": (),
- "PySide2.QtGui.QTextDocument.documentMargin": (),
- "PySide2.QtGui.QTextDocument.drawContents": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF'),
- "PySide2.QtGui.QTextDocument.end": (),
- "PySide2.QtGui.QTextDocument.find": [('PySide2.QtCore.QRegExp', 'PySide2.QtGui.QTextCursor', 'PySide2.QtGui.QTextDocument.FindFlags'), ('PySide2.QtCore.QRegExp', 'int', 'PySide2.QtGui.QTextDocument.FindFlags'), ('PySide2.QtCore.QRegularExpression', 'PySide2.QtGui.QTextCursor', 'PySide2.QtGui.QTextDocument.FindFlags'), ('PySide2.QtCore.QRegularExpression', 'int', 'PySide2.QtGui.QTextDocument.FindFlags'), ('str', 'PySide2.QtGui.QTextCursor', 'PySide2.QtGui.QTextDocument.FindFlags'), ('str', 'int', 'PySide2.QtGui.QTextDocument.FindFlags')],
- "PySide2.QtGui.QTextDocument.findBlock": ('int',),
- "PySide2.QtGui.QTextDocument.findBlockByLineNumber": ('int',),
- "PySide2.QtGui.QTextDocument.findBlockByNumber": ('int',),
- "PySide2.QtGui.QTextDocument.firstBlock": (),
- "PySide2.QtGui.QTextDocument.frameAt": ('int',),
- "PySide2.QtGui.QTextDocument.idealWidth": (),
- "PySide2.QtGui.QTextDocument.indentWidth": (),
- "PySide2.QtGui.QTextDocument.isEmpty": (),
- "PySide2.QtGui.QTextDocument.isModified": (),
- "PySide2.QtGui.QTextDocument.isRedoAvailable": (),
- "PySide2.QtGui.QTextDocument.isUndoAvailable": (),
- "PySide2.QtGui.QTextDocument.isUndoRedoEnabled": (),
- "PySide2.QtGui.QTextDocument.lastBlock": (),
- "PySide2.QtGui.QTextDocument.lineCount": (),
- "PySide2.QtGui.QTextDocument.loadResource": ('int', 'PySide2.QtCore.QUrl'),
- "PySide2.QtGui.QTextDocument.markContentsDirty": ('int', 'int'),
- "PySide2.QtGui.QTextDocument.maximumBlockCount": (),
- "PySide2.QtGui.QTextDocument.metaInformation": ('PySide2.QtGui.QTextDocument.MetaInformation',),
- "PySide2.QtGui.QTextDocument.object": ('int',),
- "PySide2.QtGui.QTextDocument.objectForFormat": ('PySide2.QtGui.QTextFormat',),
- "PySide2.QtGui.QTextDocument.pageCount": (),
- "PySide2.QtGui.QTextDocument.pageSize": (),
- "PySide2.QtGui.QTextDocument.print_": ('PySide2.QtGui.QPagedPaintDevice',),
- "PySide2.QtGui.QTextDocument.redo": [(), ('PySide2.QtGui.QTextCursor',)],
- "PySide2.QtGui.QTextDocument.resource": ('int', 'PySide2.QtCore.QUrl'),
- "PySide2.QtGui.QTextDocument.revision": (),
- "PySide2.QtGui.QTextDocument.rootFrame": (),
- "PySide2.QtGui.QTextDocument.setBaseUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtGui.QTextDocument.setDefaultCursorMoveStyle": ('PySide2.QtCore.Qt.CursorMoveStyle',),
- "PySide2.QtGui.QTextDocument.setDefaultFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtGui.QTextDocument.setDefaultStyleSheet": ('str',),
- "PySide2.QtGui.QTextDocument.setDefaultTextOption": ('PySide2.QtGui.QTextOption',),
- "PySide2.QtGui.QTextDocument.setDocumentLayout": ('PySide2.QtGui.QAbstractTextDocumentLayout',),
- "PySide2.QtGui.QTextDocument.setDocumentMargin": ('float',),
- "PySide2.QtGui.QTextDocument.setHtml": ('str',),
- "PySide2.QtGui.QTextDocument.setIndentWidth": ('float',),
- "PySide2.QtGui.QTextDocument.setMarkdown": ('str', 'PySide2.QtGui.QTextDocument.MarkdownFeatures'),
- "PySide2.QtGui.QTextDocument.setMaximumBlockCount": ('int',),
- "PySide2.QtGui.QTextDocument.setMetaInformation": ('PySide2.QtGui.QTextDocument.MetaInformation', 'str'),
- "PySide2.QtGui.QTextDocument.setModified": ('bool',),
- "PySide2.QtGui.QTextDocument.setPageSize": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtGui.QTextDocument.setPlainText": ('str',),
- "PySide2.QtGui.QTextDocument.setTextWidth": ('float',),
- "PySide2.QtGui.QTextDocument.setUndoRedoEnabled": ('bool',),
- "PySide2.QtGui.QTextDocument.setUseDesignMetrics": ('bool',),
- "PySide2.QtGui.QTextDocument.size": (),
- "PySide2.QtGui.QTextDocument.textWidth": (),
- "PySide2.QtGui.QTextDocument.toHtml": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QTextDocument.toMarkdown": ('PySide2.QtGui.QTextDocument.MarkdownFeatures',),
- "PySide2.QtGui.QTextDocument.toPlainText": (),
- "PySide2.QtGui.QTextDocument.toRawText": (),
- "PySide2.QtGui.QTextDocument.undo": [(), ('PySide2.QtGui.QTextCursor',)],
- "PySide2.QtGui.QTextDocument.useDesignMetrics": (),
-# class PySide2.QtGui.QTextDocumentFragment:
- "PySide2.QtGui.QTextDocumentFragment.__init__": [(), ('PySide2.QtGui.QTextCursor',), ('PySide2.QtGui.QTextDocument',), ('PySide2.QtGui.QTextDocumentFragment',)],
- "PySide2.QtGui.QTextDocumentFragment.__copy__": (),
- "PySide2.QtGui.QTextDocumentFragment.fromHtml": [('str',), ('str', 'PySide2.QtGui.QTextDocument')],
- "PySide2.QtGui.QTextDocumentFragment.fromPlainText": ('str',),
- "PySide2.QtGui.QTextDocumentFragment.isEmpty": (),
- "PySide2.QtGui.QTextDocumentFragment.toHtml": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QTextDocumentFragment.toPlainText": (),
-# class PySide2.QtGui.QTextDocumentWriter:
- "PySide2.QtGui.QTextDocumentWriter.__init__": [(), ('PySide2.QtCore.QIODevice', 'PySide2.QtCore.QByteArray'), ('str', 'PySide2.QtCore.QByteArray')],
- "PySide2.QtGui.QTextDocumentWriter.codec": (),
- "PySide2.QtGui.QTextDocumentWriter.device": (),
- "PySide2.QtGui.QTextDocumentWriter.fileName": (),
- "PySide2.QtGui.QTextDocumentWriter.format": (),
- "PySide2.QtGui.QTextDocumentWriter.setCodec": ('PySide2.QtCore.QTextCodec',),
- "PySide2.QtGui.QTextDocumentWriter.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtGui.QTextDocumentWriter.setFileName": ('str',),
- "PySide2.QtGui.QTextDocumentWriter.setFormat": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.QTextDocumentWriter.supportedDocumentFormats": (),
- "PySide2.QtGui.QTextDocumentWriter.write": [('PySide2.QtGui.QTextDocument',), ('PySide2.QtGui.QTextDocumentFragment',)],
-# class PySide2.QtGui.QTextFormat:
-# class PySide2.QtGui.QTextFormat.FormatType:
-# class PySide2.QtGui.QTextFormat.ObjectTypes:
-# class PySide2.QtGui.QTextFormat.PageBreakFlag:
-# class PySide2.QtGui.QTextFormat.PageBreakFlags:
-# class PySide2.QtGui.QTextFormat.Property:
- "PySide2.QtGui.QTextFormat.__init__": [(), ('PySide2.QtGui.QTextFormat',), ('int',)],
- "PySide2.QtGui.QTextFormat.__copy__": (),
- "PySide2.QtGui.QTextFormat.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QTextFormat.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QTextFormat.background": (),
- "PySide2.QtGui.QTextFormat.boolProperty": ('int',),
- "PySide2.QtGui.QTextFormat.brushProperty": ('int',),
- "PySide2.QtGui.QTextFormat.clearBackground": (),
- "PySide2.QtGui.QTextFormat.clearForeground": (),
- "PySide2.QtGui.QTextFormat.clearProperty": ('int',),
- "PySide2.QtGui.QTextFormat.colorProperty": ('int',),
- "PySide2.QtGui.QTextFormat.doubleProperty": ('int',),
- "PySide2.QtGui.QTextFormat.foreground": (),
- "PySide2.QtGui.QTextFormat.hasProperty": ('int',),
- "PySide2.QtGui.QTextFormat.intProperty": ('int',),
- "PySide2.QtGui.QTextFormat.isBlockFormat": (),
- "PySide2.QtGui.QTextFormat.isCharFormat": (),
- "PySide2.QtGui.QTextFormat.isEmpty": (),
- "PySide2.QtGui.QTextFormat.isFrameFormat": (),
- "PySide2.QtGui.QTextFormat.isImageFormat": (),
- "PySide2.QtGui.QTextFormat.isListFormat": (),
- "PySide2.QtGui.QTextFormat.isTableCellFormat": (),
- "PySide2.QtGui.QTextFormat.isTableFormat": (),
- "PySide2.QtGui.QTextFormat.isValid": (),
- "PySide2.QtGui.QTextFormat.layoutDirection": (),
- "PySide2.QtGui.QTextFormat.lengthProperty": ('int',),
- "PySide2.QtGui.QTextFormat.lengthVectorProperty": ('int',),
- "PySide2.QtGui.QTextFormat.merge": ('PySide2.QtGui.QTextFormat',),
- "PySide2.QtGui.QTextFormat.objectIndex": (),
- "PySide2.QtGui.QTextFormat.objectType": (),
- "PySide2.QtGui.QTextFormat.penProperty": ('int',),
- "PySide2.QtGui.QTextFormat.properties": (),
- "PySide2.QtGui.QTextFormat.property": ('int',),
- "PySide2.QtGui.QTextFormat.propertyCount": (),
- "PySide2.QtGui.QTextFormat.setBackground": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QTextFormat.setForeground": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QTextFormat.setLayoutDirection": ('PySide2.QtCore.Qt.LayoutDirection',),
- "PySide2.QtGui.QTextFormat.setObjectIndex": ('int',),
- "PySide2.QtGui.QTextFormat.setObjectType": ('int',),
- "PySide2.QtGui.QTextFormat.setProperty": [('int', 'typing.Any'), ('int', 'typing.List[PySide2.QtGui.QTextLength]')],
- "PySide2.QtGui.QTextFormat.stringProperty": ('int',),
- "PySide2.QtGui.QTextFormat.swap": ('PySide2.QtGui.QTextFormat',),
- "PySide2.QtGui.QTextFormat.toBlockFormat": (),
- "PySide2.QtGui.QTextFormat.toCharFormat": (),
- "PySide2.QtGui.QTextFormat.toFrameFormat": (),
- "PySide2.QtGui.QTextFormat.toImageFormat": (),
- "PySide2.QtGui.QTextFormat.toListFormat": (),
- "PySide2.QtGui.QTextFormat.toTableCellFormat": (),
- "PySide2.QtGui.QTextFormat.toTableFormat": (),
- "PySide2.QtGui.QTextFormat.type": (),
-# class PySide2.QtGui.QTextFragment:
- "PySide2.QtGui.QTextFragment.__init__": [(), ('PySide2.QtGui.QTextFragment',)],
- "PySide2.QtGui.QTextFragment.__copy__": (),
- "PySide2.QtGui.QTextFragment.charFormat": (),
- "PySide2.QtGui.QTextFragment.charFormatIndex": (),
- "PySide2.QtGui.QTextFragment.contains": ('int',),
- "PySide2.QtGui.QTextFragment.isValid": (),
- "PySide2.QtGui.QTextFragment.length": (),
- "PySide2.QtGui.QTextFragment.position": (),
- "PySide2.QtGui.QTextFragment.text": (),
-# class PySide2.QtGui.QTextFrame:
-# class PySide2.QtGui.QTextFrame.iterator:
- "PySide2.QtGui.QTextFrame.iterator.__init__": [(), ('PySide2.QtGui.QTextFrame.iterator',)],
- "PySide2.QtGui.QTextFrame.iterator.__copy__": (),
- "PySide2.QtGui.QTextFrame.iterator.__iadd__": ('int',),
- "PySide2.QtGui.QTextFrame.iterator.__isub__": ('int',),
- "PySide2.QtGui.QTextFrame.iterator.__iter__": (),
- "PySide2.QtGui.QTextFrame.iterator.atEnd": (),
- "PySide2.QtGui.QTextFrame.iterator.currentBlock": (),
- "PySide2.QtGui.QTextFrame.iterator.currentFrame": (),
- "PySide2.QtGui.QTextFrame.iterator.parentFrame": (),
- "PySide2.QtGui.QTextFrame.__init__": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtGui.QTextFrame.__iter__": (),
- "PySide2.QtGui.QTextFrame.begin": (),
- "PySide2.QtGui.QTextFrame.childFrames": (),
- "PySide2.QtGui.QTextFrame.end": (),
- "PySide2.QtGui.QTextFrame.firstCursorPosition": (),
- "PySide2.QtGui.QTextFrame.firstPosition": (),
- "PySide2.QtGui.QTextFrame.frameFormat": (),
- "PySide2.QtGui.QTextFrame.lastCursorPosition": (),
- "PySide2.QtGui.QTextFrame.lastPosition": (),
- "PySide2.QtGui.QTextFrame.parentFrame": (),
- "PySide2.QtGui.QTextFrame.setFrameFormat": ('PySide2.QtGui.QTextFrameFormat',),
-# class PySide2.QtGui.QTextFrameFormat:
-# class PySide2.QtGui.QTextFrameFormat.BorderStyle:
-# class PySide2.QtGui.QTextFrameFormat.Position:
- "PySide2.QtGui.QTextFrameFormat.__init__": [(), ('PySide2.QtGui.QTextFormat',), ('PySide2.QtGui.QTextFrameFormat',)],
- "PySide2.QtGui.QTextFrameFormat.__copy__": (),
- "PySide2.QtGui.QTextFrameFormat.border": (),
- "PySide2.QtGui.QTextFrameFormat.borderBrush": (),
- "PySide2.QtGui.QTextFrameFormat.borderStyle": (),
- "PySide2.QtGui.QTextFrameFormat.bottomMargin": (),
- "PySide2.QtGui.QTextFrameFormat.height": (),
- "PySide2.QtGui.QTextFrameFormat.isValid": (),
- "PySide2.QtGui.QTextFrameFormat.leftMargin": (),
- "PySide2.QtGui.QTextFrameFormat.margin": (),
- "PySide2.QtGui.QTextFrameFormat.padding": (),
- "PySide2.QtGui.QTextFrameFormat.pageBreakPolicy": (),
- "PySide2.QtGui.QTextFrameFormat.position": (),
- "PySide2.QtGui.QTextFrameFormat.rightMargin": (),
- "PySide2.QtGui.QTextFrameFormat.setBorder": ('float',),
- "PySide2.QtGui.QTextFrameFormat.setBorderBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QTextFrameFormat.setBorderStyle": ('PySide2.QtGui.QTextFrameFormat.BorderStyle',),
- "PySide2.QtGui.QTextFrameFormat.setBottomMargin": ('float',),
- "PySide2.QtGui.QTextFrameFormat.setHeight": [('PySide2.QtGui.QTextLength',), ('float',)],
- "PySide2.QtGui.QTextFrameFormat.setLeftMargin": ('float',),
- "PySide2.QtGui.QTextFrameFormat.setMargin": ('float',),
- "PySide2.QtGui.QTextFrameFormat.setPadding": ('float',),
- "PySide2.QtGui.QTextFrameFormat.setPageBreakPolicy": ('PySide2.QtGui.QTextFormat.PageBreakFlags',),
- "PySide2.QtGui.QTextFrameFormat.setPosition": ('PySide2.QtGui.QTextFrameFormat.Position',),
- "PySide2.QtGui.QTextFrameFormat.setRightMargin": ('float',),
- "PySide2.QtGui.QTextFrameFormat.setTopMargin": ('float',),
- "PySide2.QtGui.QTextFrameFormat.setWidth": [('PySide2.QtGui.QTextLength',), ('float',)],
- "PySide2.QtGui.QTextFrameFormat.topMargin": (),
- "PySide2.QtGui.QTextFrameFormat.width": (),
-# class PySide2.QtGui.QTextImageFormat:
- "PySide2.QtGui.QTextImageFormat.__init__": [(), ('PySide2.QtGui.QTextFormat',), ('PySide2.QtGui.QTextImageFormat',)],
- "PySide2.QtGui.QTextImageFormat.__copy__": (),
- "PySide2.QtGui.QTextImageFormat.height": (),
- "PySide2.QtGui.QTextImageFormat.isValid": (),
- "PySide2.QtGui.QTextImageFormat.name": (),
- "PySide2.QtGui.QTextImageFormat.quality": (),
- "PySide2.QtGui.QTextImageFormat.setHeight": ('float',),
- "PySide2.QtGui.QTextImageFormat.setName": ('str',),
- "PySide2.QtGui.QTextImageFormat.setQuality": ('int',),
- "PySide2.QtGui.QTextImageFormat.setWidth": ('float',),
- "PySide2.QtGui.QTextImageFormat.width": (),
-# class PySide2.QtGui.QTextInlineObject:
- "PySide2.QtGui.QTextInlineObject.__init__": (),
- "PySide2.QtGui.QTextInlineObject.__copy__": (),
- "PySide2.QtGui.QTextInlineObject.ascent": (),
- "PySide2.QtGui.QTextInlineObject.descent": (),
- "PySide2.QtGui.QTextInlineObject.format": (),
- "PySide2.QtGui.QTextInlineObject.formatIndex": (),
- "PySide2.QtGui.QTextInlineObject.height": (),
- "PySide2.QtGui.QTextInlineObject.isValid": (),
- "PySide2.QtGui.QTextInlineObject.rect": (),
- "PySide2.QtGui.QTextInlineObject.setAscent": ('float',),
- "PySide2.QtGui.QTextInlineObject.setDescent": ('float',),
- "PySide2.QtGui.QTextInlineObject.setWidth": ('float',),
- "PySide2.QtGui.QTextInlineObject.textDirection": (),
- "PySide2.QtGui.QTextInlineObject.textPosition": (),
- "PySide2.QtGui.QTextInlineObject.width": (),
-# class PySide2.QtGui.QTextItem:
-# class PySide2.QtGui.QTextItem.RenderFlag:
-# class PySide2.QtGui.QTextItem.RenderFlags:
- "PySide2.QtGui.QTextItem.__init__": (),
- "PySide2.QtGui.QTextItem.ascent": (),
- "PySide2.QtGui.QTextItem.descent": (),
- "PySide2.QtGui.QTextItem.font": (),
- "PySide2.QtGui.QTextItem.renderFlags": (),
- "PySide2.QtGui.QTextItem.text": (),
- "PySide2.QtGui.QTextItem.width": (),
-# class PySide2.QtGui.QTextLayout:
-# class PySide2.QtGui.QTextLayout.CursorMode:
-# class PySide2.QtGui.QTextLayout.FormatRange:
- "PySide2.QtGui.QTextLayout.FormatRange.__init__": [(), ('PySide2.QtGui.QTextLayout.FormatRange',)],
- "PySide2.QtGui.QTextLayout.FormatRange.__copy__": (),
- "PySide2.QtGui.QTextLayout.__init__": [(), ('PySide2.QtGui.QTextBlock',), ('str',), ('str', 'PySide2.QtGui.QFont', 'PySide2.QtGui.QPaintDevice')],
- "PySide2.QtGui.QTextLayout.additionalFormats": (),
- "PySide2.QtGui.QTextLayout.beginLayout": (),
- "PySide2.QtGui.QTextLayout.boundingRect": (),
- "PySide2.QtGui.QTextLayout.cacheEnabled": (),
- "PySide2.QtGui.QTextLayout.clearAdditionalFormats": (),
- "PySide2.QtGui.QTextLayout.clearFormats": (),
- "PySide2.QtGui.QTextLayout.clearLayout": (),
- "PySide2.QtGui.QTextLayout.createLine": (),
- "PySide2.QtGui.QTextLayout.cursorMoveStyle": (),
- "PySide2.QtGui.QTextLayout.draw": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QPointF', 'typing.List[PySide2.QtGui.QTextLayout.FormatRange]', 'PySide2.QtCore.QRectF'),
- "PySide2.QtGui.QTextLayout.drawCursor": [('PySide2.QtGui.QPainter', 'PySide2.QtCore.QPointF', 'int'), ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QPointF', 'int', 'int')],
- "PySide2.QtGui.QTextLayout.endLayout": (),
- "PySide2.QtGui.QTextLayout.font": (),
- "PySide2.QtGui.QTextLayout.formats": (),
- "PySide2.QtGui.QTextLayout.isValidCursorPosition": ('int',),
- "PySide2.QtGui.QTextLayout.leftCursorPosition": ('int',),
- "PySide2.QtGui.QTextLayout.lineAt": ('int',),
- "PySide2.QtGui.QTextLayout.lineCount": (),
- "PySide2.QtGui.QTextLayout.lineForTextPosition": ('int',),
- "PySide2.QtGui.QTextLayout.maximumWidth": (),
- "PySide2.QtGui.QTextLayout.minimumWidth": (),
- "PySide2.QtGui.QTextLayout.nextCursorPosition": ('int', 'PySide2.QtGui.QTextLayout.CursorMode'),
- "PySide2.QtGui.QTextLayout.position": (),
- "PySide2.QtGui.QTextLayout.preeditAreaPosition": (),
- "PySide2.QtGui.QTextLayout.preeditAreaText": (),
- "PySide2.QtGui.QTextLayout.previousCursorPosition": ('int', 'PySide2.QtGui.QTextLayout.CursorMode'),
- "PySide2.QtGui.QTextLayout.rightCursorPosition": ('int',),
- "PySide2.QtGui.QTextLayout.setAdditionalFormats": ('typing.Sequence[PySide2.QtGui.QTextLayout.FormatRange]',),
- "PySide2.QtGui.QTextLayout.setCacheEnabled": ('bool',),
- "PySide2.QtGui.QTextLayout.setCursorMoveStyle": ('PySide2.QtCore.Qt.CursorMoveStyle',),
- "PySide2.QtGui.QTextLayout.setFlags": ('int',),
- "PySide2.QtGui.QTextLayout.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtGui.QTextLayout.setFormats": ('typing.List[PySide2.QtGui.QTextLayout.FormatRange]',),
- "PySide2.QtGui.QTextLayout.setPosition": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTextLayout.setPreeditArea": ('int', 'str'),
- "PySide2.QtGui.QTextLayout.setRawFont": ('PySide2.QtGui.QRawFont',),
- "PySide2.QtGui.QTextLayout.setText": ('str',),
- "PySide2.QtGui.QTextLayout.setTextOption": ('PySide2.QtGui.QTextOption',),
- "PySide2.QtGui.QTextLayout.text": (),
- "PySide2.QtGui.QTextLayout.textOption": (),
-# class PySide2.QtGui.QTextLength:
-# class PySide2.QtGui.QTextLength.Type:
- "PySide2.QtGui.QTextLength.__init__": [(), ('PySide2.QtGui.QTextLength',), ('PySide2.QtGui.QTextLength.Type', 'float')],
- "PySide2.QtGui.QTextLength.__copy__": (),
- "PySide2.QtGui.QTextLength.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QTextLength.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QTextLength.rawValue": (),
- "PySide2.QtGui.QTextLength.type": (),
- "PySide2.QtGui.QTextLength.value": ('float',),
-# class PySide2.QtGui.QTextLine:
-# class PySide2.QtGui.QTextLine.CursorPosition:
-# class PySide2.QtGui.QTextLine.Edge:
- "PySide2.QtGui.QTextLine.__init__": (),
- "PySide2.QtGui.QTextLine.__copy__": (),
- "PySide2.QtGui.QTextLine.ascent": (),
- "PySide2.QtGui.QTextLine.cursorToX": ('int', 'PySide2.QtGui.QTextLine.Edge'),
- "PySide2.QtGui.QTextLine.descent": (),
- "PySide2.QtGui.QTextLine.draw": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QPointF', 'PySide2.QtGui.QTextLayout.FormatRange'),
- "PySide2.QtGui.QTextLine.height": (),
- "PySide2.QtGui.QTextLine.horizontalAdvance": (),
- "PySide2.QtGui.QTextLine.isValid": (),
- "PySide2.QtGui.QTextLine.leading": (),
- "PySide2.QtGui.QTextLine.leadingIncluded": (),
- "PySide2.QtGui.QTextLine.lineNumber": (),
- "PySide2.QtGui.QTextLine.naturalTextRect": (),
- "PySide2.QtGui.QTextLine.naturalTextWidth": (),
- "PySide2.QtGui.QTextLine.position": (),
- "PySide2.QtGui.QTextLine.rect": (),
- "PySide2.QtGui.QTextLine.setLeadingIncluded": ('bool',),
- "PySide2.QtGui.QTextLine.setLineWidth": ('float',),
- "PySide2.QtGui.QTextLine.setNumColumns": [('int',), ('int', 'float')],
- "PySide2.QtGui.QTextLine.setPosition": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTextLine.textLength": (),
- "PySide2.QtGui.QTextLine.textStart": (),
- "PySide2.QtGui.QTextLine.width": (),
- "PySide2.QtGui.QTextLine.x": (),
- "PySide2.QtGui.QTextLine.xToCursor": ('float', 'PySide2.QtGui.QTextLine.CursorPosition'),
- "PySide2.QtGui.QTextLine.y": (),
-# class PySide2.QtGui.QTextList:
- "PySide2.QtGui.QTextList.__init__": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtGui.QTextList.add": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtGui.QTextList.count": (),
- "PySide2.QtGui.QTextList.format": (),
- "PySide2.QtGui.QTextList.item": ('int',),
- "PySide2.QtGui.QTextList.itemNumber": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtGui.QTextList.itemText": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtGui.QTextList.remove": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtGui.QTextList.removeItem": ('int',),
- "PySide2.QtGui.QTextList.setFormat": [('PySide2.QtGui.QTextFormat',), ('PySide2.QtGui.QTextListFormat',)],
-# class PySide2.QtGui.QTextListFormat:
-# class PySide2.QtGui.QTextListFormat.Style:
- "PySide2.QtGui.QTextListFormat.__init__": [(), ('PySide2.QtGui.QTextFormat',), ('PySide2.QtGui.QTextListFormat',)],
- "PySide2.QtGui.QTextListFormat.__copy__": (),
- "PySide2.QtGui.QTextListFormat.indent": (),
- "PySide2.QtGui.QTextListFormat.isValid": (),
- "PySide2.QtGui.QTextListFormat.numberPrefix": (),
- "PySide2.QtGui.QTextListFormat.numberSuffix": (),
- "PySide2.QtGui.QTextListFormat.setIndent": ('int',),
- "PySide2.QtGui.QTextListFormat.setNumberPrefix": ('str',),
- "PySide2.QtGui.QTextListFormat.setNumberSuffix": ('str',),
- "PySide2.QtGui.QTextListFormat.setStyle": ('PySide2.QtGui.QTextListFormat.Style',),
- "PySide2.QtGui.QTextListFormat.style": (),
-# class PySide2.QtGui.QTextObject:
- "PySide2.QtGui.QTextObject.__init__": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtGui.QTextObject.document": (),
- "PySide2.QtGui.QTextObject.format": (),
- "PySide2.QtGui.QTextObject.formatIndex": (),
- "PySide2.QtGui.QTextObject.objectIndex": (),
- "PySide2.QtGui.QTextObject.setFormat": ('PySide2.QtGui.QTextFormat',),
-# class PySide2.QtGui.QTextObjectInterface:
- "PySide2.QtGui.QTextObjectInterface.__init__": (),
- "PySide2.QtGui.QTextObjectInterface.drawObject": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF', 'PySide2.QtGui.QTextDocument', 'int', 'PySide2.QtGui.QTextFormat'),
- "PySide2.QtGui.QTextObjectInterface.intrinsicSize": ('PySide2.QtGui.QTextDocument', 'int', 'PySide2.QtGui.QTextFormat'),
-# class PySide2.QtGui.QTextOption:
-# class PySide2.QtGui.QTextOption.Flag:
-# class PySide2.QtGui.QTextOption.Flags:
-# class PySide2.QtGui.QTextOption.Tab:
- "PySide2.QtGui.QTextOption.Tab.__init__": [(), ('PySide2.QtGui.QTextOption.Tab',), ('float', 'PySide2.QtGui.QTextOption.TabType', 'str')],
- "PySide2.QtGui.QTextOption.Tab.__copy__": (),
-# class PySide2.QtGui.QTextOption.TabType:
-# class PySide2.QtGui.QTextOption.WrapMode:
- "PySide2.QtGui.QTextOption.__init__": [(), ('PySide2.QtCore.Qt.Alignment',), ('PySide2.QtGui.QTextOption',)],
- "PySide2.QtGui.QTextOption.__copy__": (),
- "PySide2.QtGui.QTextOption.alignment": (),
- "PySide2.QtGui.QTextOption.flags": (),
- "PySide2.QtGui.QTextOption.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtGui.QTextOption.setFlags": ('PySide2.QtGui.QTextOption.Flags',),
- "PySide2.QtGui.QTextOption.setTabArray": ('typing.Sequence[float]',),
- "PySide2.QtGui.QTextOption.setTabStop": ('float',),
- "PySide2.QtGui.QTextOption.setTabStopDistance": ('float',),
- "PySide2.QtGui.QTextOption.setTabs": ('typing.Sequence[PySide2.QtGui.QTextOption.Tab]',),
- "PySide2.QtGui.QTextOption.setTextDirection": ('PySide2.QtCore.Qt.LayoutDirection',),
- "PySide2.QtGui.QTextOption.setUseDesignMetrics": ('bool',),
- "PySide2.QtGui.QTextOption.setWrapMode": ('PySide2.QtGui.QTextOption.WrapMode',),
- "PySide2.QtGui.QTextOption.tabArray": (),
- "PySide2.QtGui.QTextOption.tabStop": (),
- "PySide2.QtGui.QTextOption.tabStopDistance": (),
- "PySide2.QtGui.QTextOption.tabs": (),
- "PySide2.QtGui.QTextOption.textDirection": (),
- "PySide2.QtGui.QTextOption.useDesignMetrics": (),
- "PySide2.QtGui.QTextOption.wrapMode": (),
-# class PySide2.QtGui.QTextTable:
- "PySide2.QtGui.QTextTable.__init__": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtGui.QTextTable.appendColumns": ('int',),
- "PySide2.QtGui.QTextTable.appendRows": ('int',),
- "PySide2.QtGui.QTextTable.cellAt": [('PySide2.QtGui.QTextCursor',), ('int',), ('int', 'int')],
- "PySide2.QtGui.QTextTable.columns": (),
- "PySide2.QtGui.QTextTable.format": (),
- "PySide2.QtGui.QTextTable.insertColumns": ('int', 'int'),
- "PySide2.QtGui.QTextTable.insertRows": ('int', 'int'),
- "PySide2.QtGui.QTextTable.mergeCells": [('PySide2.QtGui.QTextCursor',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QTextTable.removeColumns": ('int', 'int'),
- "PySide2.QtGui.QTextTable.removeRows": ('int', 'int'),
- "PySide2.QtGui.QTextTable.resize": ('int', 'int'),
- "PySide2.QtGui.QTextTable.rowEnd": ('PySide2.QtGui.QTextCursor',),
- "PySide2.QtGui.QTextTable.rowStart": ('PySide2.QtGui.QTextCursor',),
- "PySide2.QtGui.QTextTable.rows": (),
- "PySide2.QtGui.QTextTable.setFormat": [('PySide2.QtGui.QTextFormat',), ('PySide2.QtGui.QTextTableFormat',)],
- "PySide2.QtGui.QTextTable.splitCell": ('int', 'int', 'int', 'int'),
-# class PySide2.QtGui.QTextTableCell:
- "PySide2.QtGui.QTextTableCell.__init__": [(), ('PySide2.QtGui.QTextTableCell',)],
- "PySide2.QtGui.QTextTableCell.__copy__": (),
- "PySide2.QtGui.QTextTableCell.begin": (),
- "PySide2.QtGui.QTextTableCell.column": (),
- "PySide2.QtGui.QTextTableCell.columnSpan": (),
- "PySide2.QtGui.QTextTableCell.end": (),
- "PySide2.QtGui.QTextTableCell.firstCursorPosition": (),
- "PySide2.QtGui.QTextTableCell.firstPosition": (),
- "PySide2.QtGui.QTextTableCell.format": (),
- "PySide2.QtGui.QTextTableCell.isValid": (),
- "PySide2.QtGui.QTextTableCell.lastCursorPosition": (),
- "PySide2.QtGui.QTextTableCell.lastPosition": (),
- "PySide2.QtGui.QTextTableCell.row": (),
- "PySide2.QtGui.QTextTableCell.rowSpan": (),
- "PySide2.QtGui.QTextTableCell.setFormat": ('PySide2.QtGui.QTextCharFormat',),
- "PySide2.QtGui.QTextTableCell.tableCellFormatIndex": (),
-# class PySide2.QtGui.QTextTableCellFormat:
- "PySide2.QtGui.QTextTableCellFormat.__init__": [(), ('PySide2.QtGui.QTextFormat',), ('PySide2.QtGui.QTextTableCellFormat',)],
- "PySide2.QtGui.QTextTableCellFormat.__copy__": (),
- "PySide2.QtGui.QTextTableCellFormat.bottomBorder": (),
- "PySide2.QtGui.QTextTableCellFormat.bottomBorderBrush": (),
- "PySide2.QtGui.QTextTableCellFormat.bottomBorderStyle": (),
- "PySide2.QtGui.QTextTableCellFormat.bottomPadding": (),
- "PySide2.QtGui.QTextTableCellFormat.isValid": (),
- "PySide2.QtGui.QTextTableCellFormat.leftBorder": (),
- "PySide2.QtGui.QTextTableCellFormat.leftBorderBrush": (),
- "PySide2.QtGui.QTextTableCellFormat.leftBorderStyle": (),
- "PySide2.QtGui.QTextTableCellFormat.leftPadding": (),
- "PySide2.QtGui.QTextTableCellFormat.rightBorder": (),
- "PySide2.QtGui.QTextTableCellFormat.rightBorderBrush": (),
- "PySide2.QtGui.QTextTableCellFormat.rightBorderStyle": (),
- "PySide2.QtGui.QTextTableCellFormat.rightPadding": (),
- "PySide2.QtGui.QTextTableCellFormat.setBorder": ('float',),
- "PySide2.QtGui.QTextTableCellFormat.setBorderBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QTextTableCellFormat.setBorderStyle": ('PySide2.QtGui.QTextFrameFormat.BorderStyle',),
- "PySide2.QtGui.QTextTableCellFormat.setBottomBorder": ('float',),
- "PySide2.QtGui.QTextTableCellFormat.setBottomBorderBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QTextTableCellFormat.setBottomBorderStyle": ('PySide2.QtGui.QTextFrameFormat.BorderStyle',),
- "PySide2.QtGui.QTextTableCellFormat.setBottomPadding": ('float',),
- "PySide2.QtGui.QTextTableCellFormat.setLeftBorder": ('float',),
- "PySide2.QtGui.QTextTableCellFormat.setLeftBorderBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QTextTableCellFormat.setLeftBorderStyle": ('PySide2.QtGui.QTextFrameFormat.BorderStyle',),
- "PySide2.QtGui.QTextTableCellFormat.setLeftPadding": ('float',),
- "PySide2.QtGui.QTextTableCellFormat.setPadding": ('float',),
- "PySide2.QtGui.QTextTableCellFormat.setRightBorder": ('float',),
- "PySide2.QtGui.QTextTableCellFormat.setRightBorderBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QTextTableCellFormat.setRightBorderStyle": ('PySide2.QtGui.QTextFrameFormat.BorderStyle',),
- "PySide2.QtGui.QTextTableCellFormat.setRightPadding": ('float',),
- "PySide2.QtGui.QTextTableCellFormat.setTopBorder": ('float',),
- "PySide2.QtGui.QTextTableCellFormat.setTopBorderBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtGui.QTextTableCellFormat.setTopBorderStyle": ('PySide2.QtGui.QTextFrameFormat.BorderStyle',),
- "PySide2.QtGui.QTextTableCellFormat.setTopPadding": ('float',),
- "PySide2.QtGui.QTextTableCellFormat.topBorder": (),
- "PySide2.QtGui.QTextTableCellFormat.topBorderBrush": (),
- "PySide2.QtGui.QTextTableCellFormat.topBorderStyle": (),
- "PySide2.QtGui.QTextTableCellFormat.topPadding": (),
-# class PySide2.QtGui.QTextTableFormat:
- "PySide2.QtGui.QTextTableFormat.__init__": [(), ('PySide2.QtGui.QTextFormat',), ('PySide2.QtGui.QTextTableFormat',)],
- "PySide2.QtGui.QTextTableFormat.__copy__": (),
- "PySide2.QtGui.QTextTableFormat.alignment": (),
- "PySide2.QtGui.QTextTableFormat.borderCollapse": (),
- "PySide2.QtGui.QTextTableFormat.cellPadding": (),
- "PySide2.QtGui.QTextTableFormat.cellSpacing": (),
- "PySide2.QtGui.QTextTableFormat.clearColumnWidthConstraints": (),
- "PySide2.QtGui.QTextTableFormat.columnWidthConstraints": (),
- "PySide2.QtGui.QTextTableFormat.columns": (),
- "PySide2.QtGui.QTextTableFormat.headerRowCount": (),
- "PySide2.QtGui.QTextTableFormat.isValid": (),
- "PySide2.QtGui.QTextTableFormat.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtGui.QTextTableFormat.setBorderCollapse": ('bool',),
- "PySide2.QtGui.QTextTableFormat.setCellPadding": ('float',),
- "PySide2.QtGui.QTextTableFormat.setCellSpacing": ('float',),
- "PySide2.QtGui.QTextTableFormat.setColumnWidthConstraints": ('typing.List[PySide2.QtGui.QTextLength]',),
- "PySide2.QtGui.QTextTableFormat.setColumns": ('int',),
- "PySide2.QtGui.QTextTableFormat.setHeaderRowCount": ('int',),
-# class PySide2.QtGui.QToolBarChangeEvent:
- "PySide2.QtGui.QToolBarChangeEvent.__init__": ('bool',),
- "PySide2.QtGui.QToolBarChangeEvent.toggle": (),
-# class PySide2.QtGui.QTouchDevice:
-# class PySide2.QtGui.QTouchDevice.Capabilities:
-# class PySide2.QtGui.QTouchDevice.CapabilityFlag:
-# class PySide2.QtGui.QTouchDevice.DeviceType:
- "PySide2.QtGui.QTouchDevice.__init__": (),
- "PySide2.QtGui.QTouchDevice.capabilities": (),
- "PySide2.QtGui.QTouchDevice.devices": (),
- "PySide2.QtGui.QTouchDevice.maximumTouchPoints": (),
- "PySide2.QtGui.QTouchDevice.name": (),
- "PySide2.QtGui.QTouchDevice.setCapabilities": ('PySide2.QtGui.QTouchDevice.Capabilities',),
- "PySide2.QtGui.QTouchDevice.setMaximumTouchPoints": ('int',),
- "PySide2.QtGui.QTouchDevice.setName": ('str',),
- "PySide2.QtGui.QTouchDevice.setType": ('PySide2.QtGui.QTouchDevice.DeviceType',),
- "PySide2.QtGui.QTouchDevice.type": (),
-# class PySide2.QtGui.QTouchEvent:
-# class PySide2.QtGui.QTouchEvent.TouchPoint:
-# class PySide2.QtGui.QTouchEvent.TouchPoint.InfoFlag:
-# class PySide2.QtGui.QTouchEvent.TouchPoint.InfoFlags:
- "PySide2.QtGui.QTouchEvent.TouchPoint.__init__": [('PySide2.QtGui.QTouchEvent.TouchPoint',), ('int',)],
- "PySide2.QtGui.QTouchEvent.TouchPoint.__copy__": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.ellipseDiameters": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.flags": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.id": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.lastNormalizedPos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.lastPos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.lastScenePos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.lastScreenPos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.normalizedPos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.pos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.pressure": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.rawScreenPositions": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.rect": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.rotation": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.scenePos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.sceneRect": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.screenPos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.screenRect": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setEllipseDiameters": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setFlags": ('PySide2.QtGui.QTouchEvent.TouchPoint.InfoFlags',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setId": ('int',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setLastNormalizedPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setLastPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setLastScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setLastScreenPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setNormalizedPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setPressure": ('float',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setRawScreenPositions": ('typing.List[PySide2.QtCore.QPointF]',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setRect": ('PySide2.QtCore.QRectF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setRotation": ('float',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setSceneRect": ('PySide2.QtCore.QRectF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setScreenPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setScreenRect": ('PySide2.QtCore.QRectF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setStartNormalizedPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setStartPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setStartScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setStartScreenPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setState": ('PySide2.QtCore.Qt.TouchPointStates',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setUniqueId": ('int',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.setVelocity": ('PySide2.QtGui.QVector2D',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.startNormalizedPos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.startPos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.startScenePos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.startScreenPos": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.state": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.swap": ('PySide2.QtGui.QTouchEvent.TouchPoint',),
- "PySide2.QtGui.QTouchEvent.TouchPoint.uniqueId": (),
- "PySide2.QtGui.QTouchEvent.TouchPoint.velocity": (),
- "PySide2.QtGui.QTouchEvent.__init__": ('PySide2.QtCore.QEvent.Type', 'PySide2.QtGui.QTouchDevice', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.Qt.TouchPointStates', 'typing.Sequence[PySide2.QtGui.QTouchEvent.TouchPoint]'),
- "PySide2.QtGui.QTouchEvent.device": (),
- "PySide2.QtGui.QTouchEvent.setDevice": ('PySide2.QtGui.QTouchDevice',),
- "PySide2.QtGui.QTouchEvent.setTarget": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QTouchEvent.setTouchPointStates": ('PySide2.QtCore.Qt.TouchPointStates',),
- "PySide2.QtGui.QTouchEvent.setTouchPoints": ('typing.Sequence[PySide2.QtGui.QTouchEvent.TouchPoint]',),
- "PySide2.QtGui.QTouchEvent.setWindow": ('PySide2.QtGui.QWindow',),
- "PySide2.QtGui.QTouchEvent.target": (),
- "PySide2.QtGui.QTouchEvent.touchPointStates": (),
- "PySide2.QtGui.QTouchEvent.touchPoints": (),
- "PySide2.QtGui.QTouchEvent.window": (),
-# class PySide2.QtGui.QTransform:
-# class PySide2.QtGui.QTransform.TransformationType:
- "PySide2.QtGui.QTransform.__init__": [(), ('PySide2.QtGui.QMatrix',), ('PySide2.QtGui.QTransform',), ('float', 'float', 'float', 'float', 'float', 'float'), ('float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float')],
- "PySide2.QtGui.QTransform.__add__": ('float',),
- "PySide2.QtGui.QTransform.__copy__": (),
- "PySide2.QtGui.QTransform.__iadd__": ('float',),
- "PySide2.QtGui.QTransform.__imul__": [('PySide2.QtGui.QTransform',), ('float',)],
- "PySide2.QtGui.QTransform.__isub__": ('float',),
- "PySide2.QtGui.QTransform.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QTransform.__mul__": [('PySide2.QtCore.QLine',), ('PySide2.QtCore.QLineF',), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtGui.QTransform',), ('float',)],
- "PySide2.QtGui.QTransform.__reduce__": (),
- "PySide2.QtGui.QTransform.__repr__": (),
- "PySide2.QtGui.QTransform.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QTransform.__sub__": ('float',),
- "PySide2.QtGui.QTransform.adjoint": (),
- "PySide2.QtGui.QTransform.det": (),
- "PySide2.QtGui.QTransform.determinant": (),
- "PySide2.QtGui.QTransform.dx": (),
- "PySide2.QtGui.QTransform.dy": (),
- "PySide2.QtGui.QTransform.fromScale": ('float', 'float'),
- "PySide2.QtGui.QTransform.fromTranslate": ('float', 'float'),
- "PySide2.QtGui.QTransform.inverted": (),
- "PySide2.QtGui.QTransform.isAffine": (),
- "PySide2.QtGui.QTransform.isIdentity": (),
- "PySide2.QtGui.QTransform.isInvertible": (),
- "PySide2.QtGui.QTransform.isRotating": (),
- "PySide2.QtGui.QTransform.isScaling": (),
- "PySide2.QtGui.QTransform.isTranslating": (),
- "PySide2.QtGui.QTransform.m11": (),
- "PySide2.QtGui.QTransform.m12": (),
- "PySide2.QtGui.QTransform.m13": (),
- "PySide2.QtGui.QTransform.m21": (),
- "PySide2.QtGui.QTransform.m22": (),
- "PySide2.QtGui.QTransform.m23": (),
- "PySide2.QtGui.QTransform.m31": (),
- "PySide2.QtGui.QTransform.m32": (),
- "PySide2.QtGui.QTransform.m33": (),
- "PySide2.QtGui.QTransform.map": [('PySide2.QtCore.QLine',), ('PySide2.QtCore.QLineF',), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtGui.QPainterPath',), ('PySide2.QtGui.QPolygon',), ('PySide2.QtGui.QPolygonF',), ('PySide2.QtGui.QRegion',), ('float', 'float')],
- "PySide2.QtGui.QTransform.mapRect": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',)],
- "PySide2.QtGui.QTransform.mapToPolygon": ('PySide2.QtCore.QRect',),
- "PySide2.QtGui.QTransform.quadToQuad": [('PySide2.QtGui.QPolygonF', 'PySide2.QtGui.QPolygonF'), ('PySide2.QtGui.QPolygonF', 'PySide2.QtGui.QPolygonF', 'PySide2.QtGui.QTransform')],
- "PySide2.QtGui.QTransform.quadToSquare": [('PySide2.QtGui.QPolygonF',), ('PySide2.QtGui.QPolygonF', 'PySide2.QtGui.QTransform')],
- "PySide2.QtGui.QTransform.reset": (),
- "PySide2.QtGui.QTransform.rotate": ('float', 'PySide2.QtCore.Qt.Axis'),
- "PySide2.QtGui.QTransform.rotateRadians": ('float', 'PySide2.QtCore.Qt.Axis'),
- "PySide2.QtGui.QTransform.scale": ('float', 'float'),
- "PySide2.QtGui.QTransform.setMatrix": ('float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtGui.QTransform.shear": ('float', 'float'),
- "PySide2.QtGui.QTransform.squareToQuad": [('PySide2.QtGui.QPolygonF',), ('PySide2.QtGui.QPolygonF', 'PySide2.QtGui.QTransform')],
- "PySide2.QtGui.QTransform.toAffine": (),
- "PySide2.QtGui.QTransform.translate": ('float', 'float'),
- "PySide2.QtGui.QTransform.transposed": (),
- "PySide2.QtGui.QTransform.type": (),
-# class PySide2.QtGui.QValidator:
-# class PySide2.QtGui.QValidator.State:
- "PySide2.QtGui.QValidator.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtGui.QValidator.fixup": ('str',),
- "PySide2.QtGui.QValidator.locale": (),
- "PySide2.QtGui.QValidator.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtGui.QValidator.validate": ('str', 'int'),
-# class PySide2.QtGui.QVector2D:
- "PySide2.QtGui.QVector2D.__init__": [(), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtGui.QVector3D',), ('PySide2.QtGui.QVector4D',), ('float', 'float')],
- "PySide2.QtGui.QVector2D.__add__": ('PySide2.QtGui.QVector2D',),
- "PySide2.QtGui.QVector2D.__copy__": (),
- "PySide2.QtGui.QVector2D.__iadd__": ('PySide2.QtGui.QVector2D',),
- "PySide2.QtGui.QVector2D.__imul__": [('PySide2.QtGui.QVector2D',), ('float',)],
- "PySide2.QtGui.QVector2D.__isub__": ('PySide2.QtGui.QVector2D',),
- "PySide2.QtGui.QVector2D.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QVector2D.__mul__": [('PySide2.QtGui.QVector2D',), ('float',)],
- "PySide2.QtGui.QVector2D.__neg__": (),
- "PySide2.QtGui.QVector2D.__reduce__": (),
- "PySide2.QtGui.QVector2D.__repr__": (),
- "PySide2.QtGui.QVector2D.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QVector2D.__sub__": ('PySide2.QtGui.QVector2D',),
- "PySide2.QtGui.QVector2D.distanceToLine": ('PySide2.QtGui.QVector2D', 'PySide2.QtGui.QVector2D'),
- "PySide2.QtGui.QVector2D.distanceToPoint": ('PySide2.QtGui.QVector2D',),
- "PySide2.QtGui.QVector2D.dotProduct": ('PySide2.QtGui.QVector2D', 'PySide2.QtGui.QVector2D'),
- "PySide2.QtGui.QVector2D.isNull": (),
- "PySide2.QtGui.QVector2D.length": (),
- "PySide2.QtGui.QVector2D.lengthSquared": (),
- "PySide2.QtGui.QVector2D.normalize": (),
- "PySide2.QtGui.QVector2D.normalized": (),
- "PySide2.QtGui.QVector2D.setX": ('float',),
- "PySide2.QtGui.QVector2D.setY": ('float',),
- "PySide2.QtGui.QVector2D.toPoint": (),
- "PySide2.QtGui.QVector2D.toPointF": (),
- "PySide2.QtGui.QVector2D.toTuple": (),
- "PySide2.QtGui.QVector2D.toVector3D": (),
- "PySide2.QtGui.QVector2D.toVector4D": (),
- "PySide2.QtGui.QVector2D.x": (),
- "PySide2.QtGui.QVector2D.y": (),
-# class PySide2.QtGui.QVector3D:
- "PySide2.QtGui.QVector3D.__init__": [(), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtGui.QVector2D',), ('PySide2.QtGui.QVector2D', 'float'), ('PySide2.QtGui.QVector4D',), ('float', 'float', 'float')],
- "PySide2.QtGui.QVector3D.__add__": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtGui.QVector3D.__copy__": (),
- "PySide2.QtGui.QVector3D.__iadd__": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtGui.QVector3D.__imul__": [('PySide2.QtGui.QVector3D',), ('float',)],
- "PySide2.QtGui.QVector3D.__isub__": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtGui.QVector3D.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QVector3D.__mul__": [('PySide2.QtGui.QMatrix4x4',), ('PySide2.QtGui.QQuaternion',), ('PySide2.QtGui.QVector3D',), ('float',)],
- "PySide2.QtGui.QVector3D.__neg__": (),
- "PySide2.QtGui.QVector3D.__reduce__": (),
- "PySide2.QtGui.QVector3D.__repr__": (),
- "PySide2.QtGui.QVector3D.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QVector3D.__sub__": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtGui.QVector3D.crossProduct": ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'),
- "PySide2.QtGui.QVector3D.distanceToLine": ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'),
- "PySide2.QtGui.QVector3D.distanceToPlane": [('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'), ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D')],
- "PySide2.QtGui.QVector3D.distanceToPoint": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtGui.QVector3D.dotProduct": ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'),
- "PySide2.QtGui.QVector3D.isNull": (),
- "PySide2.QtGui.QVector3D.length": (),
- "PySide2.QtGui.QVector3D.lengthSquared": (),
- "PySide2.QtGui.QVector3D.normal": [('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'), ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D')],
- "PySide2.QtGui.QVector3D.normalize": (),
- "PySide2.QtGui.QVector3D.normalized": (),
- "PySide2.QtGui.QVector3D.project": ('PySide2.QtGui.QMatrix4x4', 'PySide2.QtGui.QMatrix4x4', 'PySide2.QtCore.QRect'),
- "PySide2.QtGui.QVector3D.setX": ('float',),
- "PySide2.QtGui.QVector3D.setY": ('float',),
- "PySide2.QtGui.QVector3D.setZ": ('float',),
- "PySide2.QtGui.QVector3D.toPoint": (),
- "PySide2.QtGui.QVector3D.toPointF": (),
- "PySide2.QtGui.QVector3D.toTuple": (),
- "PySide2.QtGui.QVector3D.toVector2D": (),
- "PySide2.QtGui.QVector3D.toVector4D": (),
- "PySide2.QtGui.QVector3D.unproject": ('PySide2.QtGui.QMatrix4x4', 'PySide2.QtGui.QMatrix4x4', 'PySide2.QtCore.QRect'),
- "PySide2.QtGui.QVector3D.x": (),
- "PySide2.QtGui.QVector3D.y": (),
- "PySide2.QtGui.QVector3D.z": (),
-# class PySide2.QtGui.QVector4D:
- "PySide2.QtGui.QVector4D.__init__": [(), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QPointF',), ('PySide2.QtGui.QVector2D',), ('PySide2.QtGui.QVector2D', 'float', 'float'), ('PySide2.QtGui.QVector3D',), ('PySide2.QtGui.QVector3D', 'float'), ('float', 'float', 'float', 'float')],
- "PySide2.QtGui.QVector4D.__add__": ('PySide2.QtGui.QVector4D',),
- "PySide2.QtGui.QVector4D.__copy__": (),
- "PySide2.QtGui.QVector4D.__iadd__": ('PySide2.QtGui.QVector4D',),
- "PySide2.QtGui.QVector4D.__imul__": [('PySide2.QtGui.QVector4D',), ('float',)],
- "PySide2.QtGui.QVector4D.__isub__": ('PySide2.QtGui.QVector4D',),
- "PySide2.QtGui.QVector4D.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QVector4D.__mul__": [('PySide2.QtGui.QMatrix4x4',), ('PySide2.QtGui.QVector4D',), ('float',)],
- "PySide2.QtGui.QVector4D.__neg__": (),
- "PySide2.QtGui.QVector4D.__reduce__": (),
- "PySide2.QtGui.QVector4D.__repr__": (),
- "PySide2.QtGui.QVector4D.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtGui.QVector4D.__sub__": ('PySide2.QtGui.QVector4D',),
- "PySide2.QtGui.QVector4D.dotProduct": ('PySide2.QtGui.QVector4D', 'PySide2.QtGui.QVector4D'),
- "PySide2.QtGui.QVector4D.isNull": (),
- "PySide2.QtGui.QVector4D.length": (),
- "PySide2.QtGui.QVector4D.lengthSquared": (),
- "PySide2.QtGui.QVector4D.normalize": (),
- "PySide2.QtGui.QVector4D.normalized": (),
- "PySide2.QtGui.QVector4D.setW": ('float',),
- "PySide2.QtGui.QVector4D.setX": ('float',),
- "PySide2.QtGui.QVector4D.setY": ('float',),
- "PySide2.QtGui.QVector4D.setZ": ('float',),
- "PySide2.QtGui.QVector4D.toPoint": (),
- "PySide2.QtGui.QVector4D.toPointF": (),
- "PySide2.QtGui.QVector4D.toTuple": (),
- "PySide2.QtGui.QVector4D.toVector2D": (),
- "PySide2.QtGui.QVector4D.toVector2DAffine": (),
- "PySide2.QtGui.QVector4D.toVector3D": (),
- "PySide2.QtGui.QVector4D.toVector3DAffine": (),
- "PySide2.QtGui.QVector4D.w": (),
- "PySide2.QtGui.QVector4D.x": (),
- "PySide2.QtGui.QVector4D.y": (),
- "PySide2.QtGui.QVector4D.z": (),
-# class PySide2.QtGui.QWhatsThisClickedEvent:
- "PySide2.QtGui.QWhatsThisClickedEvent.__init__": ('str',),
- "PySide2.QtGui.QWhatsThisClickedEvent.href": (),
-# class PySide2.QtGui.QWheelEvent:
- "PySide2.QtGui.QWheelEvent.__init__": [('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.Qt.ScrollPhase', 'bool', 'PySide2.QtCore.Qt.MouseEventSource'), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint', 'int', 'PySide2.QtCore.Qt.Orientation', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers'), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint', 'int', 'PySide2.QtCore.Qt.Orientation', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.Qt.ScrollPhase'), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint', 'int', 'PySide2.QtCore.Qt.Orientation', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.Qt.ScrollPhase', 'PySide2.QtCore.Qt.MouseEventSource'), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'PySide2.QtCore.QPoint', 'PySide2.QtCore.QPoint', 'int', 'PySide2.QtCore.Qt.Orientation', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.Qt.ScrollPhase', 'PySide2.QtCore.Qt.MouseEventSource', 'bool'), ('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF', 'int', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.Qt.Orientation'), ('PySide2.QtCore.QPointF', 'int', 'PySide2.QtCore.Qt.MouseButtons', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.Qt.Orientation')],
- "PySide2.QtGui.QWheelEvent.angleDelta": (),
- "PySide2.QtGui.QWheelEvent.buttons": (),
- "PySide2.QtGui.QWheelEvent.delta": (),
- "PySide2.QtGui.QWheelEvent.globalPos": (),
- "PySide2.QtGui.QWheelEvent.globalPosF": (),
- "PySide2.QtGui.QWheelEvent.globalPosition": (),
- "PySide2.QtGui.QWheelEvent.globalX": (),
- "PySide2.QtGui.QWheelEvent.global""Y": (),
- "PySide2.QtGui.QWheelEvent.inverted": (),
- "PySide2.QtGui.QWheelEvent.orientation": (),
- "PySide2.QtGui.QWheelEvent.phase": (),
- "PySide2.QtGui.QWheelEvent.pixelDelta": (),
- "PySide2.QtGui.QWheelEvent.pos": (),
- "PySide2.QtGui.QWheelEvent.posF": (),
- "PySide2.QtGui.QWheelEvent.position": (),
- "PySide2.QtGui.QWheelEvent.source": (),
- "PySide2.QtGui.QWheelEvent.x": (),
- "PySide2.QtGui.QWheelEvent.y": (),
-# class PySide2.QtGui.QWindow:
-# class PySide2.QtGui.QWindow.AncestorMode:
-# class PySide2.QtGui.QWindow.Visibility:
- "PySide2.QtGui.QWindow.__init__": [('PySide2.QtGui.QScreen',), ('PySide2.QtGui.QWindow',)],
- "PySide2.QtGui.QWindow.accessibleRoot": (),
- "PySide2.QtGui.QWindow.alert": ('int',),
- "PySide2.QtGui.QWindow.baseSize": (),
- "PySide2.QtGui.QWindow.close": (),
- "PySide2.QtGui.QWindow.contentOrientation": (),
- "PySide2.QtGui.QWindow.create": (),
- "PySide2.QtGui.QWindow.cursor": (),
- "PySide2.QtGui.QWindow.destroy": (),
- "PySide2.QtGui.QWindow.devicePixelRatio": (),
- "PySide2.QtGui.QWindow.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtGui.QWindow.exposeEvent": ('PySide2.QtGui.QExposeEvent',),
- "PySide2.QtGui.QWindow.filePath": (),
- "PySide2.QtGui.QWindow.flags": (),
- "PySide2.QtGui.QWindow.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtGui.QWindow.focusObject": (),
- "PySide2.QtGui.QWindow.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtGui.QWindow.format": (),
- "PySide2.QtGui.QWindow.frameGeometry": (),
- "PySide2.QtGui.QWindow.frameMargins": (),
- "PySide2.QtGui.QWindow.framePosition": (),
- "PySide2.QtGui.QWindow.fromWinId": ('int',),
- "PySide2.QtGui.QWindow.geometry": (),
- "PySide2.QtGui.QWindow.height": (),
- "PySide2.QtGui.QWindow.hide": (),
- "PySide2.QtGui.QWindow.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtGui.QWindow.icon": (),
- "PySide2.QtGui.QWindow.isActive": (),
- "PySide2.QtGui.QWindow.isAncestorOf": ('PySide2.QtGui.QWindow', 'PySide2.QtGui.QWindow.AncestorMode'),
- "PySide2.QtGui.QWindow.isExposed": (),
- "PySide2.QtGui.QWindow.isModal": (),
- "PySide2.QtGui.QWindow.isTopLevel": (),
- "PySide2.QtGui.QWindow.isVisible": (),
- "PySide2.QtGui.QWindow.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtGui.QWindow.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtGui.QWindow.lower": (),
- "PySide2.QtGui.QWindow.mapFromGlobal": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QWindow.mapToGlobal": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QWindow.mask": (),
- "PySide2.QtGui.QWindow.maximumHeight": (),
- "PySide2.QtGui.QWindow.maximumSize": (),
- "PySide2.QtGui.QWindow.maximumWidth": (),
- "PySide2.QtGui.QWindow.minimumHeight": (),
- "PySide2.QtGui.QWindow.minimumSize": (),
- "PySide2.QtGui.QWindow.minimumWidth": (),
- "PySide2.QtGui.QWindow.modality": (),
- "PySide2.QtGui.QWindow.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtGui.QWindow.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtGui.QWindow.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtGui.QWindow.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtGui.QWindow.moveEvent": ('PySide2.QtGui.QMoveEvent',),
- "PySide2.QtGui.QWindow.nativeEvent": ('PySide2.QtCore.QByteArray', 'int'),
- "PySide2.QtGui.QWindow.opacity": (),
- "PySide2.QtGui.QWindow.parent": [(), ('PySide2.QtGui.QWindow.AncestorMode',)],
- "PySide2.QtGui.QWindow.position": (),
- "PySide2.QtGui.QWindow.raise_": (),
- "PySide2.QtGui.QWindow.reportContentOrientationChange": ('PySide2.QtCore.Qt.ScreenOrientation',),
- "PySide2.QtGui.QWindow.requestActivate": (),
- "PySide2.QtGui.QWindow.requestUpdate": (),
- "PySide2.QtGui.QWindow.requestedFormat": (),
- "PySide2.QtGui.QWindow.resize": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtGui.QWindow.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtGui.QWindow.screen": (),
- "PySide2.QtGui.QWindow.setBaseSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtGui.QWindow.setCursor": ('PySide2.QtGui.QCursor',),
- "PySide2.QtGui.QWindow.setFilePath": ('str',),
- "PySide2.QtGui.QWindow.setFlag": ('PySide2.QtCore.Qt.WindowType', 'bool'),
- "PySide2.QtGui.QWindow.setFlags": ('PySide2.QtCore.Qt.WindowFlags',),
- "PySide2.QtGui.QWindow.setFormat": ('PySide2.QtGui.QSurfaceFormat',),
- "PySide2.QtGui.QWindow.setFramePosition": ('PySide2.QtCore.QPoint',),
- "PySide2.QtGui.QWindow.setGeometry": [('PySide2.QtCore.QRect',), ('int', 'int', 'int', 'int')],
- "PySide2.QtGui.QWindow.setHeight": ('int',),
- "PySide2.QtGui.QWindow.setIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtGui.QWindow.setKeyboardGrabEnabled": ('bool',),
- "PySide2.QtGui.QWindow.setMask": ('PySide2.QtGui.QRegion',),
- "PySide2.QtGui.QWindow.setMaximumHeight": ('int',),
- "PySide2.QtGui.QWindow.setMaximumSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtGui.QWindow.setMaximumWidth": ('int',),
- "PySide2.QtGui.QWindow.setMinimumHeight": ('int',),
- "PySide2.QtGui.QWindow.setMinimumSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtGui.QWindow.setMinimumWidth": ('int',),
- "PySide2.QtGui.QWindow.setModality": ('PySide2.QtCore.Qt.WindowModality',),
- "PySide2.QtGui.QWindow.setMouseGrabEnabled": ('bool',),
- "PySide2.QtGui.QWindow.setOpacity": ('float',),
- "PySide2.QtGui.QWindow.setParent": ('PySide2.QtGui.QWindow',),
- "PySide2.QtGui.QWindow.setPosition": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtGui.QWindow.setScreen": ('PySide2.QtGui.QScreen',),
- "PySide2.QtGui.QWindow.setSizeIncrement": ('PySide2.QtCore.QSize',),
- "PySide2.QtGui.QWindow.setSurfaceType": ('PySide2.QtGui.QSurface.SurfaceType',),
- "PySide2.QtGui.QWindow.setTitle": ('str',),
- "PySide2.QtGui.QWindow.setTransientParent": ('PySide2.QtGui.QWindow',),
- "PySide2.QtGui.QWindow.setVisibility": ('PySide2.QtGui.QWindow.Visibility',),
- "PySide2.QtGui.QWindow.setVisible": ('bool',),
- "PySide2.QtGui.QWindow.setWidth": ('int',),
- "PySide2.QtGui.QWindow.setWindowState": ('PySide2.QtCore.Qt.WindowState',),
- "PySide2.QtGui.QWindow.setWindowStates": ('PySide2.QtCore.Qt.WindowStates',),
- "PySide2.QtGui.QWindow.setX": ('int',),
- "PySide2.QtGui.QWindow.setY": ('int',),
- "PySide2.QtGui.QWindow.show": (),
- "PySide2.QtGui.QWindow.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtGui.QWindow.showFullScreen": (),
- "PySide2.QtGui.QWindow.showMaximized": (),
- "PySide2.QtGui.QWindow.showMinimized": (),
- "PySide2.QtGui.QWindow.showNormal": (),
- "PySide2.QtGui.QWindow.size": (),
- "PySide2.QtGui.QWindow.sizeIncrement": (),
- "PySide2.QtGui.QWindow.surfaceHandle": (),
- "PySide2.QtGui.QWindow.surfaceType": (),
- "PySide2.QtGui.QWindow.tabletEvent": ('PySide2.QtGui.QTabletEvent',),
- "PySide2.QtGui.QWindow.title": (),
- "PySide2.QtGui.QWindow.touchEvent": ('PySide2.QtGui.QTouchEvent',),
- "PySide2.QtGui.QWindow.transientParent": (),
- "PySide2.QtGui.QWindow.type": (),
- "PySide2.QtGui.QWindow.unsetCursor": (),
- "PySide2.QtGui.QWindow.visibility": (),
- "PySide2.QtGui.QWindow.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
- "PySide2.QtGui.QWindow.width": (),
- "PySide2.QtGui.QWindow.winId": (),
- "PySide2.QtGui.QWindow.windowState": (),
- "PySide2.QtGui.QWindow.windowStates": (),
- "PySide2.QtGui.QWindow.x": (),
- "PySide2.QtGui.QWindow.y": (),
-# class PySide2.QtGui.QWindowStateChangeEvent:
- "PySide2.QtGui.QWindowStateChangeEvent.__init__": ('PySide2.QtCore.Qt.WindowStates', 'bool'),
- "PySide2.QtGui.QWindowStateChangeEvent.isOverride": (),
- "PySide2.QtGui.QWindowStateChangeEvent.oldState": (),
-# class PySide2.QtGui.Qt:
- "PySide2.QtGui.Qt.codecForHtml": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtGui.Qt.convertFromPlainText": ('str', 'PySide2.QtCore.Qt.WhiteSpaceMode'),
- "PySide2.QtGui.Qt.mightBeRichText": ('str',),
- "PySide2.QtGui.Qt.qAlpha": ('int',),
- "PySide2.QtGui.Qt.qBlue": ('int',),
- "PySide2.QtGui.Qt.qGray": [('int',), ('int', 'int', 'int')],
- "PySide2.QtGui.Qt.qGreen": ('int',),
- "PySide2.QtGui.Qt.qIsGray": ('int',),
- "PySide2.QtGui.Qt.qRed": ('int',),
- "PySide2.QtGui.Qt.qRgb": ('int', 'int', 'int'),
- "PySide2.QtGui.Qt.qRgba": ('int', 'int', 'int', 'int'),
- }) if "PySide2.QtGui" in sys.modules else None
-# Module PySide2.QtWidgets
-sig_dict.update({
-# class PySide2.QtWidgets.QAbstractButton:
- "PySide2.QtWidgets.QAbstractButton.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QAbstractButton.animateClick": ('int',),
- "PySide2.QtWidgets.QAbstractButton.autoExclusive": (),
- "PySide2.QtWidgets.QAbstractButton.autoRepeat": (),
- "PySide2.QtWidgets.QAbstractButton.autoRepeatDelay": (),
- "PySide2.QtWidgets.QAbstractButton.autoRepeatInterval": (),
- "PySide2.QtWidgets.QAbstractButton.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAbstractButton.checkStateSet": (),
- "PySide2.QtWidgets.QAbstractButton.click": (),
- "PySide2.QtWidgets.QAbstractButton.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAbstractButton.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QAbstractButton.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QAbstractButton.group": (),
- "PySide2.QtWidgets.QAbstractButton.hitButton": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QAbstractButton.icon": (),
- "PySide2.QtWidgets.QAbstractButton.iconSize": (),
- "PySide2.QtWidgets.QAbstractButton.isCheckable": (),
- "PySide2.QtWidgets.QAbstractButton.isChecked": (),
- "PySide2.QtWidgets.QAbstractButton.isDown": (),
- "PySide2.QtWidgets.QAbstractButton.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QAbstractButton.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QAbstractButton.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractButton.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractButton.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractButton.nextCheckState": (),
- "PySide2.QtWidgets.QAbstractButton.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QAbstractButton.setAutoExclusive": ('bool',),
- "PySide2.QtWidgets.QAbstractButton.setAutoRepeat": ('bool',),
- "PySide2.QtWidgets.QAbstractButton.setAutoRepeatDelay": ('int',),
- "PySide2.QtWidgets.QAbstractButton.setAutoRepeatInterval": ('int',),
- "PySide2.QtWidgets.QAbstractButton.setCheckable": ('bool',),
- "PySide2.QtWidgets.QAbstractButton.setChecked": ('bool',),
- "PySide2.QtWidgets.QAbstractButton.setDown": ('bool',),
- "PySide2.QtWidgets.QAbstractButton.setIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtWidgets.QAbstractButton.setIconSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QAbstractButton.setShortcut": ('PySide2.QtGui.QKeySequence',),
- "PySide2.QtWidgets.QAbstractButton.setText": ('str',),
- "PySide2.QtWidgets.QAbstractButton.shortcut": (),
- "PySide2.QtWidgets.QAbstractButton.text": (),
- "PySide2.QtWidgets.QAbstractButton.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QAbstractButton.toggle": (),
-# class PySide2.QtWidgets.QAbstractGraphicsShapeItem:
- "PySide2.QtWidgets.QAbstractGraphicsShapeItem.__init__": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QAbstractGraphicsShapeItem.brush": (),
- "PySide2.QtWidgets.QAbstractGraphicsShapeItem.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QAbstractGraphicsShapeItem.opaqueArea": (),
- "PySide2.QtWidgets.QAbstractGraphicsShapeItem.pen": (),
- "PySide2.QtWidgets.QAbstractGraphicsShapeItem.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtWidgets.QAbstractGraphicsShapeItem.setPen": ('PySide2.QtGui.QPen',),
-# class PySide2.QtWidgets.QAbstractItemDelegate:
-# class PySide2.QtWidgets.QAbstractItemDelegate.EndEditHint:
- "PySide2.QtWidgets.QAbstractItemDelegate.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QAbstractItemDelegate.createEditor": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QAbstractItemDelegate.destroyEditor": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QAbstractItemDelegate.editorEvent": ('PySide2.QtCore.QEvent', 'PySide2.QtCore.QAbstractItemModel', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QAbstractItemDelegate.elidedText": ('PySide2.QtGui.QFontMetrics', 'int', 'PySide2.QtCore.Qt.TextElideMode', 'str'),
- "PySide2.QtWidgets.QAbstractItemDelegate.helpEvent": ('PySide2.QtGui.QHelpEvent', 'PySide2.QtWidgets.QAbstractItemView', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QAbstractItemDelegate.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QAbstractItemDelegate.paintingRoles": (),
- "PySide2.QtWidgets.QAbstractItemDelegate.setEditorData": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QAbstractItemDelegate.setModelData": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QAbstractItemModel', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QAbstractItemDelegate.sizeHint": ('PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QAbstractItemDelegate.updateEditorGeometry": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
-# class PySide2.QtWidgets.QAbstractItemView:
-# class PySide2.QtWidgets.QAbstractItemView.CursorAction:
-# class PySide2.QtWidgets.QAbstractItemView.DragDropMode:
-# class PySide2.QtWidgets.QAbstractItemView.DropIndicatorPosition:
-# class PySide2.QtWidgets.QAbstractItemView.EditTrigger:
-# class PySide2.QtWidgets.QAbstractItemView.EditTriggers:
-# class PySide2.QtWidgets.QAbstractItemView.ScrollHint:
-# class PySide2.QtWidgets.QAbstractItemView.ScrollMode:
-# class PySide2.QtWidgets.QAbstractItemView.SelectionBehavior:
-# class PySide2.QtWidgets.QAbstractItemView.SelectionMode:
-# class PySide2.QtWidgets.QAbstractItemView.State:
- "PySide2.QtWidgets.QAbstractItemView.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QAbstractItemView.alternatingRowColors": (),
- "PySide2.QtWidgets.QAbstractItemView.autoScrollMargin": (),
- "PySide2.QtWidgets.QAbstractItemView.clearSelection": (),
- "PySide2.QtWidgets.QAbstractItemView.closeEditor": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QAbstractItemDelegate.EndEditHint'),
- "PySide2.QtWidgets.QAbstractItemView.closePersistentEditor": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QAbstractItemView.commitData": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QAbstractItemView.currentChanged": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QAbstractItemView.currentIndex": (),
- "PySide2.QtWidgets.QAbstractItemView.dataChanged": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex', 'typing.List[int]'),
- "PySide2.QtWidgets.QAbstractItemView.defaultDropAction": (),
- "PySide2.QtWidgets.QAbstractItemView.dirtyRegionOffset": (),
- "PySide2.QtWidgets.QAbstractItemView.doAutoScroll": (),
- "PySide2.QtWidgets.QAbstractItemView.doItemsLayout": (),
- "PySide2.QtWidgets.QAbstractItemView.dragDropMode": (),
- "PySide2.QtWidgets.QAbstractItemView.dragDropOverwriteMode": (),
- "PySide2.QtWidgets.QAbstractItemView.dragEnabled": (),
- "PySide2.QtWidgets.QAbstractItemView.dragEnterEvent": ('PySide2.QtGui.QDragEnterEvent',),
- "PySide2.QtWidgets.QAbstractItemView.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtWidgets.QAbstractItemView.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtWidgets.QAbstractItemView.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QAbstractItemView.dropIndicatorPosition": (),
- "PySide2.QtWidgets.QAbstractItemView.edit": [('PySide2.QtCore.QModelIndex',), ('PySide2.QtCore.QModelIndex', 'PySide2.QtWidgets.QAbstractItemView.EditTrigger', 'PySide2.QtCore.QEvent')],
- "PySide2.QtWidgets.QAbstractItemView.editTriggers": (),
- "PySide2.QtWidgets.QAbstractItemView.editorDestroyed": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QAbstractItemView.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAbstractItemView.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QAbstractItemView.executeDelayedItemsLayout": (),
- "PySide2.QtWidgets.QAbstractItemView.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QAbstractItemView.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QAbstractItemView.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QAbstractItemView.hasAutoScroll": (),
- "PySide2.QtWidgets.QAbstractItemView.horizontalOffset": (),
- "PySide2.QtWidgets.QAbstractItemView.horizontalScrollMode": (),
- "PySide2.QtWidgets.QAbstractItemView.horizontalScrollbarAction": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.horizontalScrollbarValueChanged": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.horizontalStepsPerItem": (),
- "PySide2.QtWidgets.QAbstractItemView.iconSize": (),
- "PySide2.QtWidgets.QAbstractItemView.indexAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QAbstractItemView.indexWidget": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QAbstractItemView.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QAbstractItemView.inputMethodQuery": ('PySide2.QtCore.Qt.InputMethodQuery',),
- "PySide2.QtWidgets.QAbstractItemView.isIndexHidden": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QAbstractItemView.isPersistentEditorOpen": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QAbstractItemView.itemDelegate": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtWidgets.QAbstractItemView.itemDelegateForColumn": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.itemDelegateForRow": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QAbstractItemView.keyboardSearch": ('str',),
- "PySide2.QtWidgets.QAbstractItemView.model": (),
- "PySide2.QtWidgets.QAbstractItemView.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractItemView.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractItemView.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractItemView.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractItemView.moveCursor": ('PySide2.QtWidgets.QAbstractItemView.CursorAction', 'PySide2.QtCore.Qt.KeyboardModifiers'),
- "PySide2.QtWidgets.QAbstractItemView.openPersistentEditor": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QAbstractItemView.reset": (),
- "PySide2.QtWidgets.QAbstractItemView.resetHorizontalScrollMode": (),
- "PySide2.QtWidgets.QAbstractItemView.resetVerticalScrollMode": (),
- "PySide2.QtWidgets.QAbstractItemView.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QAbstractItemView.rootIndex": (),
- "PySide2.QtWidgets.QAbstractItemView.rowsAboutToBeRemoved": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QAbstractItemView.rowsInserted": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QAbstractItemView.scheduleDelayedItemsLayout": (),
- "PySide2.QtWidgets.QAbstractItemView.scrollDirtyRegion": ('int', 'int'),
- "PySide2.QtWidgets.QAbstractItemView.scrollTo": ('PySide2.QtCore.QModelIndex', 'PySide2.QtWidgets.QAbstractItemView.ScrollHint'),
- "PySide2.QtWidgets.QAbstractItemView.scrollToBottom": (),
- "PySide2.QtWidgets.QAbstractItemView.scrollToTop": (),
- "PySide2.QtWidgets.QAbstractItemView.selectAll": (),
- "PySide2.QtWidgets.QAbstractItemView.selectedIndexes": (),
- "PySide2.QtWidgets.QAbstractItemView.selectionBehavior": (),
- "PySide2.QtWidgets.QAbstractItemView.selectionChanged": ('PySide2.QtCore.QItemSelection', 'PySide2.QtCore.QItemSelection'),
- "PySide2.QtWidgets.QAbstractItemView.selectionCommand": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QAbstractItemView.selectionMode": (),
- "PySide2.QtWidgets.QAbstractItemView.selectionModel": (),
- "PySide2.QtWidgets.QAbstractItemView.setAlternatingRowColors": ('bool',),
- "PySide2.QtWidgets.QAbstractItemView.setAutoScroll": ('bool',),
- "PySide2.QtWidgets.QAbstractItemView.setAutoScrollMargin": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.setCurrentIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QAbstractItemView.setDefaultDropAction": ('PySide2.QtCore.Qt.DropAction',),
- "PySide2.QtWidgets.QAbstractItemView.setDirtyRegion": ('PySide2.QtGui.QRegion',),
- "PySide2.QtWidgets.QAbstractItemView.setDragDropMode": ('PySide2.QtWidgets.QAbstractItemView.DragDropMode',),
- "PySide2.QtWidgets.QAbstractItemView.setDragDropOverwriteMode": ('bool',),
- "PySide2.QtWidgets.QAbstractItemView.setDragEnabled": ('bool',),
- "PySide2.QtWidgets.QAbstractItemView.setDropIndicatorShown": ('bool',),
- "PySide2.QtWidgets.QAbstractItemView.setEditTriggers": ('PySide2.QtWidgets.QAbstractItemView.EditTriggers',),
- "PySide2.QtWidgets.QAbstractItemView.setHorizontalScrollMode": ('PySide2.QtWidgets.QAbstractItemView.ScrollMode',),
- "PySide2.QtWidgets.QAbstractItemView.setHorizontalStepsPerItem": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.setIconSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QAbstractItemView.setIndexWidget": ('PySide2.QtCore.QModelIndex', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QAbstractItemView.setItemDelegate": ('PySide2.QtWidgets.QAbstractItemDelegate',),
- "PySide2.QtWidgets.QAbstractItemView.setItemDelegateForColumn": ('int', 'PySide2.QtWidgets.QAbstractItemDelegate'),
- "PySide2.QtWidgets.QAbstractItemView.setItemDelegateForRow": ('int', 'PySide2.QtWidgets.QAbstractItemDelegate'),
- "PySide2.QtWidgets.QAbstractItemView.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QAbstractItemView.setRootIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QAbstractItemView.setSelection": ('PySide2.QtCore.QRect', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags'),
- "PySide2.QtWidgets.QAbstractItemView.setSelectionBehavior": ('PySide2.QtWidgets.QAbstractItemView.SelectionBehavior',),
- "PySide2.QtWidgets.QAbstractItemView.setSelectionMode": ('PySide2.QtWidgets.QAbstractItemView.SelectionMode',),
- "PySide2.QtWidgets.QAbstractItemView.setSelectionModel": ('PySide2.QtCore.QItemSelectionModel',),
- "PySide2.QtWidgets.QAbstractItemView.setState": ('PySide2.QtWidgets.QAbstractItemView.State',),
- "PySide2.QtWidgets.QAbstractItemView.setTabKeyNavigation": ('bool',),
- "PySide2.QtWidgets.QAbstractItemView.setTextElideMode": ('PySide2.QtCore.Qt.TextElideMode',),
- "PySide2.QtWidgets.QAbstractItemView.setVerticalScrollMode": ('PySide2.QtWidgets.QAbstractItemView.ScrollMode',),
- "PySide2.QtWidgets.QAbstractItemView.setVerticalStepsPerItem": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.showDropIndicator": (),
- "PySide2.QtWidgets.QAbstractItemView.sizeHintForColumn": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.sizeHintForIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QAbstractItemView.sizeHintForRow": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.startAutoScroll": (),
- "PySide2.QtWidgets.QAbstractItemView.startDrag": ('PySide2.QtCore.Qt.DropActions',),
- "PySide2.QtWidgets.QAbstractItemView.state": (),
- "PySide2.QtWidgets.QAbstractItemView.stopAutoScroll": (),
- "PySide2.QtWidgets.QAbstractItemView.tabKeyNavigation": (),
- "PySide2.QtWidgets.QAbstractItemView.textElideMode": (),
- "PySide2.QtWidgets.QAbstractItemView.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QAbstractItemView.update": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtWidgets.QAbstractItemView.updateEditorData": (),
- "PySide2.QtWidgets.QAbstractItemView.updateEditorGeometries": (),
- "PySide2.QtWidgets.QAbstractItemView.updateGeometries": (),
- "PySide2.QtWidgets.QAbstractItemView.verticalOffset": (),
- "PySide2.QtWidgets.QAbstractItemView.verticalScrollMode": (),
- "PySide2.QtWidgets.QAbstractItemView.verticalScrollbarAction": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.verticalScrollbarValueChanged": ('int',),
- "PySide2.QtWidgets.QAbstractItemView.verticalStepsPerItem": (),
- "PySide2.QtWidgets.QAbstractItemView.viewOptions": (),
- "PySide2.QtWidgets.QAbstractItemView.viewportEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAbstractItemView.viewportSizeHint": (),
- "PySide2.QtWidgets.QAbstractItemView.visualRect": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QAbstractItemView.visualRegionForSelection": ('PySide2.QtCore.QItemSelection',),
-# class PySide2.QtWidgets.QAbstractScrollArea:
-# class PySide2.QtWidgets.QAbstractScrollArea.SizeAdjustPolicy:
- "PySide2.QtWidgets.QAbstractScrollArea.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QAbstractScrollArea.addScrollBarWidget": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.Alignment'),
- "PySide2.QtWidgets.QAbstractScrollArea.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.cornerWidget": (),
- "PySide2.QtWidgets.QAbstractScrollArea.dragEnterEvent": ('PySide2.QtGui.QDragEnterEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QAbstractScrollArea.horizontalScrollBar": (),
- "PySide2.QtWidgets.QAbstractScrollArea.horizontalScrollBarPolicy": (),
- "PySide2.QtWidgets.QAbstractScrollArea.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.maximumViewportSize": (),
- "PySide2.QtWidgets.QAbstractScrollArea.minimumSizeHint": (),
- "PySide2.QtWidgets.QAbstractScrollArea.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.scrollBarWidgets": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QAbstractScrollArea.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QAbstractScrollArea.setCornerWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QAbstractScrollArea.setHorizontalScrollBar": ('PySide2.QtWidgets.QScrollBar',),
- "PySide2.QtWidgets.QAbstractScrollArea.setHorizontalScrollBarPolicy": ('PySide2.QtCore.Qt.ScrollBarPolicy',),
- "PySide2.QtWidgets.QAbstractScrollArea.setSizeAdjustPolicy": ('PySide2.QtWidgets.QAbstractScrollArea.SizeAdjustPolicy',),
- "PySide2.QtWidgets.QAbstractScrollArea.setVerticalScrollBar": ('PySide2.QtWidgets.QScrollBar',),
- "PySide2.QtWidgets.QAbstractScrollArea.setVerticalScrollBarPolicy": ('PySide2.QtCore.Qt.ScrollBarPolicy',),
- "PySide2.QtWidgets.QAbstractScrollArea.setViewport": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QAbstractScrollArea.setViewportMargins": [('PySide2.QtCore.QMargins',), ('int', 'int', 'int', 'int')],
- "PySide2.QtWidgets.QAbstractScrollArea.setupViewport": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QAbstractScrollArea.sizeAdjustPolicy": (),
- "PySide2.QtWidgets.QAbstractScrollArea.sizeHint": (),
- "PySide2.QtWidgets.QAbstractScrollArea.verticalScrollBar": (),
- "PySide2.QtWidgets.QAbstractScrollArea.verticalScrollBarPolicy": (),
- "PySide2.QtWidgets.QAbstractScrollArea.viewport": (),
- "PySide2.QtWidgets.QAbstractScrollArea.viewportEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAbstractScrollArea.viewportMargins": (),
- "PySide2.QtWidgets.QAbstractScrollArea.viewportSizeHint": (),
- "PySide2.QtWidgets.QAbstractScrollArea.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtWidgets.QAbstractSlider:
-# class PySide2.QtWidgets.QAbstractSlider.SliderAction:
-# class PySide2.QtWidgets.QAbstractSlider.SliderChange:
- "PySide2.QtWidgets.QAbstractSlider.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QAbstractSlider.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAbstractSlider.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAbstractSlider.hasTracking": (),
- "PySide2.QtWidgets.QAbstractSlider.invertedAppearance": (),
- "PySide2.QtWidgets.QAbstractSlider.invertedControls": (),
- "PySide2.QtWidgets.QAbstractSlider.isSliderDown": (),
- "PySide2.QtWidgets.QAbstractSlider.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QAbstractSlider.maximum": (),
- "PySide2.QtWidgets.QAbstractSlider.minimum": (),
- "PySide2.QtWidgets.QAbstractSlider.orientation": (),
- "PySide2.QtWidgets.QAbstractSlider.pageStep": (),
- "PySide2.QtWidgets.QAbstractSlider.repeatAction": (),
- "PySide2.QtWidgets.QAbstractSlider.setInvertedAppearance": ('bool',),
- "PySide2.QtWidgets.QAbstractSlider.setInvertedControls": ('bool',),
- "PySide2.QtWidgets.QAbstractSlider.setMaximum": ('int',),
- "PySide2.QtWidgets.QAbstractSlider.setMinimum": ('int',),
- "PySide2.QtWidgets.QAbstractSlider.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtWidgets.QAbstractSlider.setPageStep": ('int',),
- "PySide2.QtWidgets.QAbstractSlider.setRange": ('int', 'int'),
- "PySide2.QtWidgets.QAbstractSlider.setRepeatAction": ('PySide2.QtWidgets.QAbstractSlider.SliderAction', 'int', 'int'),
- "PySide2.QtWidgets.QAbstractSlider.setSingleStep": ('int',),
- "PySide2.QtWidgets.QAbstractSlider.setSliderDown": ('bool',),
- "PySide2.QtWidgets.QAbstractSlider.setSliderPosition": ('int',),
- "PySide2.QtWidgets.QAbstractSlider.setTracking": ('bool',),
- "PySide2.QtWidgets.QAbstractSlider.setValue": ('int',),
- "PySide2.QtWidgets.QAbstractSlider.singleStep": (),
- "PySide2.QtWidgets.QAbstractSlider.sliderChange": ('PySide2.QtWidgets.QAbstractSlider.SliderChange',),
- "PySide2.QtWidgets.QAbstractSlider.sliderPosition": (),
- "PySide2.QtWidgets.QAbstractSlider.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QAbstractSlider.triggerAction": ('PySide2.QtWidgets.QAbstractSlider.SliderAction',),
- "PySide2.QtWidgets.QAbstractSlider.value": (),
- "PySide2.QtWidgets.QAbstractSlider.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtWidgets.QAbstractSpinBox:
-# class PySide2.QtWidgets.QAbstractSpinBox.ButtonSymbols:
-# class PySide2.QtWidgets.QAbstractSpinBox.CorrectionMode:
-# class PySide2.QtWidgets.QAbstractSpinBox.StepEnabled:
-# class PySide2.QtWidgets.QAbstractSpinBox.StepEnabledFlag:
-# class PySide2.QtWidgets.QAbstractSpinBox.StepType:
- "PySide2.QtWidgets.QAbstractSpinBox.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QAbstractSpinBox.alignment": (),
- "PySide2.QtWidgets.QAbstractSpinBox.buttonSymbols": (),
- "PySide2.QtWidgets.QAbstractSpinBox.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.clear": (),
- "PySide2.QtWidgets.QAbstractSpinBox.closeEvent": ('PySide2.QtGui.QCloseEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.correctionMode": (),
- "PySide2.QtWidgets.QAbstractSpinBox.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.fixup": ('str',),
- "PySide2.QtWidgets.QAbstractSpinBox.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.hasAcceptableInput": (),
- "PySide2.QtWidgets.QAbstractSpinBox.hasFrame": (),
- "PySide2.QtWidgets.QAbstractSpinBox.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.initStyleOption": ('PySide2.QtWidgets.QStyleOptionSpinBox',),
- "PySide2.QtWidgets.QAbstractSpinBox.inputMethodQuery": ('PySide2.QtCore.Qt.InputMethodQuery',),
- "PySide2.QtWidgets.QAbstractSpinBox.interpretText": (),
- "PySide2.QtWidgets.QAbstractSpinBox.isAccelerated": (),
- "PySide2.QtWidgets.QAbstractSpinBox.isGroupSeparatorShown": (),
- "PySide2.QtWidgets.QAbstractSpinBox.isReadOnly": (),
- "PySide2.QtWidgets.QAbstractSpinBox.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.keyboardTracking": (),
- "PySide2.QtWidgets.QAbstractSpinBox.lineEdit": (),
- "PySide2.QtWidgets.QAbstractSpinBox.minimumSizeHint": (),
- "PySide2.QtWidgets.QAbstractSpinBox.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.selectAll": (),
- "PySide2.QtWidgets.QAbstractSpinBox.setAccelerated": ('bool',),
- "PySide2.QtWidgets.QAbstractSpinBox.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QAbstractSpinBox.setButtonSymbols": ('PySide2.QtWidgets.QAbstractSpinBox.ButtonSymbols',),
- "PySide2.QtWidgets.QAbstractSpinBox.setCorrectionMode": ('PySide2.QtWidgets.QAbstractSpinBox.CorrectionMode',),
- "PySide2.QtWidgets.QAbstractSpinBox.setFrame": ('bool',),
- "PySide2.QtWidgets.QAbstractSpinBox.setGroupSeparatorShown": ('bool',),
- "PySide2.QtWidgets.QAbstractSpinBox.setKeyboardTracking": ('bool',),
- "PySide2.QtWidgets.QAbstractSpinBox.setLineEdit": ('PySide2.QtWidgets.QLineEdit',),
- "PySide2.QtWidgets.QAbstractSpinBox.setReadOnly": ('bool',),
- "PySide2.QtWidgets.QAbstractSpinBox.setSpecialValueText": ('str',),
- "PySide2.QtWidgets.QAbstractSpinBox.setWrapping": ('bool',),
- "PySide2.QtWidgets.QAbstractSpinBox.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.sizeHint": (),
- "PySide2.QtWidgets.QAbstractSpinBox.specialValueText": (),
- "PySide2.QtWidgets.QAbstractSpinBox.stepBy": ('int',),
- "PySide2.QtWidgets.QAbstractSpinBox.stepDown": (),
- "PySide2.QtWidgets.QAbstractSpinBox.stepEnabled": (),
- "PySide2.QtWidgets.QAbstractSpinBox.stepUp": (),
- "PySide2.QtWidgets.QAbstractSpinBox.text": (),
- "PySide2.QtWidgets.QAbstractSpinBox.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.validate": ('str', 'int'),
- "PySide2.QtWidgets.QAbstractSpinBox.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
- "PySide2.QtWidgets.QAbstractSpinBox.wrapping": (),
-# class PySide2.QtWidgets.QAccessibleWidget:
- "PySide2.QtWidgets.QAccessibleWidget.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtGui.QAccessible.Role', 'str'),
- "PySide2.QtWidgets.QAccessibleWidget.actionNames": (),
- "PySide2.QtWidgets.QAccessibleWidget.addControllingSignal": ('str',),
- "PySide2.QtWidgets.QAccessibleWidget.backgroundColor": (),
- "PySide2.QtWidgets.QAccessibleWidget.child": ('int',),
- "PySide2.QtWidgets.QAccessibleWidget.childCount": (),
- "PySide2.QtWidgets.QAccessibleWidget.doAction": ('str',),
- "PySide2.QtWidgets.QAccessibleWidget.focusChild": (),
- "PySide2.QtWidgets.QAccessibleWidget.foregroundColor": (),
- "PySide2.QtWidgets.QAccessibleWidget.indexOfChild": ('PySide2.QtGui.QAccessibleInterface',),
- "PySide2.QtWidgets.QAccessibleWidget.interface_cast": ('PySide2.QtGui.QAccessible.InterfaceType',),
- "PySide2.QtWidgets.QAccessibleWidget.isValid": (),
- "PySide2.QtWidgets.QAccessibleWidget.keyBindingsForAction": ('str',),
- "PySide2.QtWidgets.QAccessibleWidget.parent": (),
- "PySide2.QtWidgets.QAccessibleWidget.parentObject": (),
- "PySide2.QtWidgets.QAccessibleWidget.rect": (),
- "PySide2.QtWidgets.QAccessibleWidget.relations": ('PySide2.QtGui.QAccessible.Relation',),
- "PySide2.QtWidgets.QAccessibleWidget.role": (),
- "PySide2.QtWidgets.QAccessibleWidget.state": (),
- "PySide2.QtWidgets.QAccessibleWidget.text": ('PySide2.QtGui.QAccessible.Text',),
- "PySide2.QtWidgets.QAccessibleWidget.widget": (),
- "PySide2.QtWidgets.QAccessibleWidget.window": (),
-# class PySide2.QtWidgets.QAction:
-# class PySide2.QtWidgets.QAction.ActionEvent:
-# class PySide2.QtWidgets.QAction.MenuRole:
-# class PySide2.QtWidgets.QAction.Priority:
- "PySide2.QtWidgets.QAction.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtGui.QIcon', 'str', 'PySide2.QtCore.QObject'), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtWidgets.QAction.actionGroup": (),
- "PySide2.QtWidgets.QAction.activate": ('PySide2.QtWidgets.QAction.ActionEvent',),
- "PySide2.QtWidgets.QAction.associatedGraphicsWidgets": (),
- "PySide2.QtWidgets.QAction.associatedWidgets": (),
- "PySide2.QtWidgets.QAction.autoRepeat": (),
- "PySide2.QtWidgets.QAction.data": (),
- "PySide2.QtWidgets.QAction.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QAction.font": (),
- "PySide2.QtWidgets.QAction.hover": (),
- "PySide2.QtWidgets.QAction.icon": (),
- "PySide2.QtWidgets.QAction.iconText": (),
- "PySide2.QtWidgets.QAction.isCheckable": (),
- "PySide2.QtWidgets.QAction.isChecked": (),
- "PySide2.QtWidgets.QAction.isEnabled": (),
- "PySide2.QtWidgets.QAction.isIconVisibleInMenu": (),
- "PySide2.QtWidgets.QAction.isSeparator": (),
- "PySide2.QtWidgets.QAction.isShortcutVisibleInContextMenu": (),
- "PySide2.QtWidgets.QAction.isVisible": (),
- "PySide2.QtWidgets.QAction.menu": (),
- "PySide2.QtWidgets.QAction.menuRole": (),
- "PySide2.QtWidgets.QAction.parentWidget": (),
- "PySide2.QtWidgets.QAction.priority": (),
- "PySide2.QtWidgets.QAction.setActionGroup": ('PySide2.QtWidgets.QActionGroup',),
- "PySide2.QtWidgets.QAction.setAutoRepeat": ('bool',),
- "PySide2.QtWidgets.QAction.setCheckable": ('bool',),
- "PySide2.QtWidgets.QAction.setChecked": ('bool',),
- "PySide2.QtWidgets.QAction.setData": ('typing.Any',),
- "PySide2.QtWidgets.QAction.setDisabled": ('bool',),
- "PySide2.QtWidgets.QAction.setEnabled": ('bool',),
- "PySide2.QtWidgets.QAction.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QAction.setIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtWidgets.QAction.setIconText": ('str',),
- "PySide2.QtWidgets.QAction.setIconVisibleInMenu": ('bool',),
- "PySide2.QtWidgets.QAction.setMenu": ('PySide2.QtWidgets.QMenu',),
- "PySide2.QtWidgets.QAction.setMenuRole": ('PySide2.QtWidgets.QAction.MenuRole',),
- "PySide2.QtWidgets.QAction.setPriority": ('PySide2.QtWidgets.QAction.Priority',),
- "PySide2.QtWidgets.QAction.setSeparator": ('bool',),
- "PySide2.QtWidgets.QAction.setShortcut": ('PySide2.QtGui.QKeySequence',),
- "PySide2.QtWidgets.QAction.setShortcutContext": ('PySide2.QtCore.Qt.ShortcutContext',),
- "PySide2.QtWidgets.QAction.setShortcutVisibleInContextMenu": ('bool',),
- "PySide2.QtWidgets.QAction.setShortcuts": [('PySide2.QtGui.QKeySequence.StandardKey',), ('typing.Sequence[PySide2.QtGui.QKeySequence]',)],
- "PySide2.QtWidgets.QAction.setStatusTip": ('str',),
- "PySide2.QtWidgets.QAction.setText": ('str',),
- "PySide2.QtWidgets.QAction.setToolTip": ('str',),
- "PySide2.QtWidgets.QAction.setVisible": ('bool',),
- "PySide2.QtWidgets.QAction.setWhatsThis": ('str',),
- "PySide2.QtWidgets.QAction.shortcut": (),
- "PySide2.QtWidgets.QAction.shortcutContext": (),
- "PySide2.QtWidgets.QAction.shortcuts": (),
- "PySide2.QtWidgets.QAction.showStatusText": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QAction.statusTip": (),
- "PySide2.QtWidgets.QAction.text": (),
- "PySide2.QtWidgets.QAction.toggle": (),
- "PySide2.QtWidgets.QAction.toolTip": (),
- "PySide2.QtWidgets.QAction.trigger": (),
- "PySide2.QtWidgets.QAction.whatsThis": (),
-# class PySide2.QtWidgets.QActionGroup:
-# class PySide2.QtWidgets.QActionGroup.ExclusionPolicy:
- "PySide2.QtWidgets.QActionGroup.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QActionGroup.actions": (),
- "PySide2.QtWidgets.QActionGroup.addAction": [('PySide2.QtGui.QIcon', 'str'), ('PySide2.QtWidgets.QAction',), ('str',)],
- "PySide2.QtWidgets.QActionGroup.checkedAction": (),
- "PySide2.QtWidgets.QActionGroup.exclusionPolicy": (),
- "PySide2.QtWidgets.QActionGroup.isEnabled": (),
- "PySide2.QtWidgets.QActionGroup.isExclusive": (),
- "PySide2.QtWidgets.QActionGroup.isVisible": (),
- "PySide2.QtWidgets.QActionGroup.removeAction": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QActionGroup.setDisabled": ('bool',),
- "PySide2.QtWidgets.QActionGroup.setEnabled": ('bool',),
- "PySide2.QtWidgets.QActionGroup.setExclusionPolicy": ('PySide2.QtWidgets.QActionGroup.ExclusionPolicy',),
- "PySide2.QtWidgets.QActionGroup.setExclusive": ('bool',),
- "PySide2.QtWidgets.QActionGroup.setVisible": ('bool',),
-# class PySide2.QtWidgets.QApplication:
-# class PySide2.QtWidgets.QApplication.ColorSpec:
- "PySide2.QtWidgets.QApplication.__init__": [(), ('typing.Sequence[str]',)],
- "PySide2.QtWidgets.QApplication.aboutQt": (),
- "PySide2.QtWidgets.QApplication.activeModalWidget": (),
- "PySide2.QtWidgets.QApplication.activePopupWidget": (),
- "PySide2.QtWidgets.QApplication.activeWindow": (),
- "PySide2.QtWidgets.QApplication.alert": ('PySide2.QtWidgets.QWidget', 'int'),
- "PySide2.QtWidgets.QApplication.allWidgets": (),
- "PySide2.QtWidgets.QApplication.autoSipEnabled": (),
- "PySide2.QtWidgets.QApplication.beep": (),
- "PySide2.QtWidgets.QApplication.closeAllWindows": (),
- "PySide2.QtWidgets.QApplication.colorSpec": (),
- "PySide2.QtWidgets.QApplication.cursorFlashTime": (),
- "PySide2.QtWidgets.QApplication.desktop": (),
- "PySide2.QtWidgets.QApplication.doubleClickInterval": (),
- "PySide2.QtWidgets.QApplication.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QApplication.exec_": (),
- "PySide2.QtWidgets.QApplication.focusWidget": (),
- "PySide2.QtWidgets.QApplication.font": [(), ('PySide2.QtWidgets.QWidget',), ('str',)],
- "PySide2.QtWidgets.QApplication.fontMetrics": (),
- "PySide2.QtWidgets.QApplication.globalStrut": (),
- "PySide2.QtWidgets.QApplication.isEffectEnabled": ('PySide2.QtCore.Qt.UIEffect',),
- "PySide2.QtWidgets.QApplication.keyboardInputInterval": (),
- "PySide2.QtWidgets.QApplication.notify": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QApplication.palette": [(), ('PySide2.QtWidgets.QWidget',), ('str',)],
- "PySide2.QtWidgets.QApplication.setActiveWindow": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QApplication.setAutoSipEnabled": ('bool',),
- "PySide2.QtWidgets.QApplication.setColorSpec": ('int',),
- "PySide2.QtWidgets.QApplication.setCursorFlashTime": ('int',),
- "PySide2.QtWidgets.QApplication.setDoubleClickInterval": ('int',),
- "PySide2.QtWidgets.QApplication.setEffectEnabled": ('PySide2.QtCore.Qt.UIEffect', 'bool'),
- "PySide2.QtWidgets.QApplication.setFont": [('PySide2.QtGui.QFont',), ('PySide2.QtGui.QFont', 'str')],
- "PySide2.QtWidgets.QApplication.setGlobalStrut": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QApplication.setKeyboardInputInterval": ('int',),
- "PySide2.QtWidgets.QApplication.setPalette": [('PySide2.QtGui.QPalette',), ('PySide2.QtGui.QPalette', 'str')],
- "PySide2.QtWidgets.QApplication.setStartDragDistance": ('int',),
- "PySide2.QtWidgets.QApplication.setStartDragTime": ('int',),
- "PySide2.QtWidgets.QApplication.setStyle": [('PySide2.QtWidgets.QStyle',), ('str',)],
- "PySide2.QtWidgets.QApplication.setStyleSheet": ('str',),
- "PySide2.QtWidgets.QApplication.setWheelScrollLines": ('int',),
- "PySide2.QtWidgets.QApplication.setWindowIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtWidgets.QApplication.startDragDistance": (),
- "PySide2.QtWidgets.QApplication.startDragTime": (),
- "PySide2.QtWidgets.QApplication.style": (),
- "PySide2.QtWidgets.QApplication.styleSheet": (),
- "PySide2.QtWidgets.QApplication.topLevelAt": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtWidgets.QApplication.topLevelWidgets": (),
- "PySide2.QtWidgets.QApplication.wheelScrollLines": (),
- "PySide2.QtWidgets.QApplication.widgetAt": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtWidgets.QApplication.windowIcon": (),
-# class PySide2.QtWidgets.QBoxLayout:
-# class PySide2.QtWidgets.QBoxLayout.Direction:
- "PySide2.QtWidgets.QBoxLayout.__init__": ('PySide2.QtWidgets.QBoxLayout.Direction', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QBoxLayout.addItem": ('PySide2.QtWidgets.QLayoutItem',),
- "PySide2.QtWidgets.QBoxLayout.addLayout": ('PySide2.QtWidgets.QLayout', 'int'),
- "PySide2.QtWidgets.QBoxLayout.addSpacerItem": ('PySide2.QtWidgets.QSpacerItem',),
- "PySide2.QtWidgets.QBoxLayout.addSpacing": ('int',),
- "PySide2.QtWidgets.QBoxLayout.addStretch": ('int',),
- "PySide2.QtWidgets.QBoxLayout.addStrut": ('int',),
- "PySide2.QtWidgets.QBoxLayout.addWidget": [('PySide2.QtWidgets.QWidget',), ('PySide2.QtWidgets.QWidget', 'int', 'PySide2.QtCore.Qt.Alignment')],
- "PySide2.QtWidgets.QBoxLayout.count": (),
- "PySide2.QtWidgets.QBoxLayout.direction": (),
- "PySide2.QtWidgets.QBoxLayout.expandingDirections": (),
- "PySide2.QtWidgets.QBoxLayout.hasHeightForWidth": (),
- "PySide2.QtWidgets.QBoxLayout.heightForWidth": ('int',),
- "PySide2.QtWidgets.QBoxLayout.insertItem": ('int', 'PySide2.QtWidgets.QLayoutItem'),
- "PySide2.QtWidgets.QBoxLayout.insertLayout": ('int', 'PySide2.QtWidgets.QLayout', 'int'),
- "PySide2.QtWidgets.QBoxLayout.insertSpacerItem": ('int', 'PySide2.QtWidgets.QSpacerItem'),
- "PySide2.QtWidgets.QBoxLayout.insertSpacing": ('int', 'int'),
- "PySide2.QtWidgets.QBoxLayout.insertStretch": ('int', 'int'),
- "PySide2.QtWidgets.QBoxLayout.insertWidget": ('int', 'PySide2.QtWidgets.QWidget', 'int', 'PySide2.QtCore.Qt.Alignment'),
- "PySide2.QtWidgets.QBoxLayout.invalidate": (),
- "PySide2.QtWidgets.QBoxLayout.itemAt": ('int',),
- "PySide2.QtWidgets.QBoxLayout.maximumSize": (),
- "PySide2.QtWidgets.QBoxLayout.minimumHeightForWidth": ('int',),
- "PySide2.QtWidgets.QBoxLayout.minimumSize": (),
- "PySide2.QtWidgets.QBoxLayout.setDirection": ('PySide2.QtWidgets.QBoxLayout.Direction',),
- "PySide2.QtWidgets.QBoxLayout.setGeometry": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QBoxLayout.setSpacing": ('int',),
- "PySide2.QtWidgets.QBoxLayout.setStretch": ('int', 'int'),
- "PySide2.QtWidgets.QBoxLayout.setStretchFactor": [('PySide2.QtWidgets.QLayout', 'int'), ('PySide2.QtWidgets.QWidget', 'int')],
- "PySide2.QtWidgets.QBoxLayout.sizeHint": (),
- "PySide2.QtWidgets.QBoxLayout.spacing": (),
- "PySide2.QtWidgets.QBoxLayout.stretch": ('int',),
- "PySide2.QtWidgets.QBoxLayout.takeAt": ('int',),
-# class PySide2.QtWidgets.QButtonGroup:
- "PySide2.QtWidgets.QButtonGroup.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QButtonGroup.addButton": ('PySide2.QtWidgets.QAbstractButton', 'int'),
- "PySide2.QtWidgets.QButtonGroup.button": ('int',),
- "PySide2.QtWidgets.QButtonGroup.buttons": (),
- "PySide2.QtWidgets.QButtonGroup.checkedButton": (),
- "PySide2.QtWidgets.QButtonGroup.checkedId": (),
- "PySide2.QtWidgets.QButtonGroup.exclusive": (),
- "PySide2.QtWidgets.QButtonGroup.id": ('PySide2.QtWidgets.QAbstractButton',),
- "PySide2.QtWidgets.QButtonGroup.removeButton": ('PySide2.QtWidgets.QAbstractButton',),
- "PySide2.QtWidgets.QButtonGroup.setExclusive": ('bool',),
- "PySide2.QtWidgets.QButtonGroup.setId": ('PySide2.QtWidgets.QAbstractButton', 'int'),
-# class PySide2.QtWidgets.QCalendarWidget:
-# class PySide2.QtWidgets.QCalendarWidget.HorizontalHeaderFormat:
-# class PySide2.QtWidgets.QCalendarWidget.SelectionMode:
-# class PySide2.QtWidgets.QCalendarWidget.VerticalHeaderFormat:
- "PySide2.QtWidgets.QCalendarWidget.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QCalendarWidget.calendar": (),
- "PySide2.QtWidgets.QCalendarWidget.dateEditAcceptDelay": (),
- "PySide2.QtWidgets.QCalendarWidget.dateTextFormat": [(), ('PySide2.QtCore.QDate',)],
- "PySide2.QtWidgets.QCalendarWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QCalendarWidget.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QCalendarWidget.firstDayOfWeek": (),
- "PySide2.QtWidgets.QCalendarWidget.headerTextFormat": (),
- "PySide2.QtWidgets.QCalendarWidget.horizontalHeaderFormat": (),
- "PySide2.QtWidgets.QCalendarWidget.isDateEditEnabled": (),
- "PySide2.QtWidgets.QCalendarWidget.isGridVisible": (),
- "PySide2.QtWidgets.QCalendarWidget.isNavigationBarVisible": (),
- "PySide2.QtWidgets.QCalendarWidget.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QCalendarWidget.maximumDate": (),
- "PySide2.QtWidgets.QCalendarWidget.minimumDate": (),
- "PySide2.QtWidgets.QCalendarWidget.minimumSizeHint": (),
- "PySide2.QtWidgets.QCalendarWidget.monthShown": (),
- "PySide2.QtWidgets.QCalendarWidget.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QCalendarWidget.paintCell": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRect', 'PySide2.QtCore.QDate'),
- "PySide2.QtWidgets.QCalendarWidget.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QCalendarWidget.selectedDate": (),
- "PySide2.QtWidgets.QCalendarWidget.selectionMode": (),
- "PySide2.QtWidgets.QCalendarWidget.setCalendar": ('PySide2.QtCore.QCalendar',),
- "PySide2.QtWidgets.QCalendarWidget.setCurrentPage": ('int', 'int'),
- "PySide2.QtWidgets.QCalendarWidget.setDateEditAcceptDelay": ('int',),
- "PySide2.QtWidgets.QCalendarWidget.setDateEditEnabled": ('bool',),
- "PySide2.QtWidgets.QCalendarWidget.setDateRange": ('PySide2.QtCore.QDate', 'PySide2.QtCore.QDate'),
- "PySide2.QtWidgets.QCalendarWidget.setDateTextFormat": ('PySide2.QtCore.QDate', 'PySide2.QtGui.QTextCharFormat'),
- "PySide2.QtWidgets.QCalendarWidget.setFirstDayOfWeek": ('PySide2.QtCore.Qt.DayOfWeek',),
- "PySide2.QtWidgets.QCalendarWidget.setGridVisible": ('bool',),
- "PySide2.QtWidgets.QCalendarWidget.setHeaderTextFormat": ('PySide2.QtGui.QTextCharFormat',),
- "PySide2.QtWidgets.QCalendarWidget.setHorizontalHeaderFormat": ('PySide2.QtWidgets.QCalendarWidget.HorizontalHeaderFormat',),
- "PySide2.QtWidgets.QCalendarWidget.setMaximumDate": ('PySide2.QtCore.QDate',),
- "PySide2.QtWidgets.QCalendarWidget.setMinimumDate": ('PySide2.QtCore.QDate',),
- "PySide2.QtWidgets.QCalendarWidget.setNavigationBarVisible": ('bool',),
- "PySide2.QtWidgets.QCalendarWidget.setSelectedDate": ('PySide2.QtCore.QDate',),
- "PySide2.QtWidgets.QCalendarWidget.setSelectionMode": ('PySide2.QtWidgets.QCalendarWidget.SelectionMode',),
- "PySide2.QtWidgets.QCalendarWidget.setVerticalHeaderFormat": ('PySide2.QtWidgets.QCalendarWidget.VerticalHeaderFormat',),
- "PySide2.QtWidgets.QCalendarWidget.setWeekdayTextFormat": ('PySide2.QtCore.Qt.DayOfWeek', 'PySide2.QtGui.QTextCharFormat'),
- "PySide2.QtWidgets.QCalendarWidget.showNextMonth": (),
- "PySide2.QtWidgets.QCalendarWidget.showNextYear": (),
- "PySide2.QtWidgets.QCalendarWidget.showPreviousMonth": (),
- "PySide2.QtWidgets.QCalendarWidget.showPreviousYear": (),
- "PySide2.QtWidgets.QCalendarWidget.showSelectedDate": (),
- "PySide2.QtWidgets.QCalendarWidget.showToday": (),
- "PySide2.QtWidgets.QCalendarWidget.sizeHint": (),
- "PySide2.QtWidgets.QCalendarWidget.updateCell": ('PySide2.QtCore.QDate',),
- "PySide2.QtWidgets.QCalendarWidget.updateCells": (),
- "PySide2.QtWidgets.QCalendarWidget.verticalHeaderFormat": (),
- "PySide2.QtWidgets.QCalendarWidget.weekdayTextFormat": ('PySide2.QtCore.Qt.DayOfWeek',),
- "PySide2.QtWidgets.QCalendarWidget.yearShown": (),
-# class PySide2.QtWidgets.QCheckBox:
- "PySide2.QtWidgets.QCheckBox.__init__": [('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QCheckBox.checkState": (),
- "PySide2.QtWidgets.QCheckBox.checkStateSet": (),
- "PySide2.QtWidgets.QCheckBox.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QCheckBox.hitButton": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QCheckBox.initStyleOption": ('PySide2.QtWidgets.QStyleOptionButton',),
- "PySide2.QtWidgets.QCheckBox.isTristate": (),
- "PySide2.QtWidgets.QCheckBox.minimumSizeHint": (),
- "PySide2.QtWidgets.QCheckBox.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QCheckBox.nextCheckState": (),
- "PySide2.QtWidgets.QCheckBox.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QCheckBox.setCheckState": ('PySide2.QtCore.Qt.CheckState',),
- "PySide2.QtWidgets.QCheckBox.setTristate": ('bool',),
- "PySide2.QtWidgets.QCheckBox.sizeHint": (),
-# class PySide2.QtWidgets.QColorDialog:
-# class PySide2.QtWidgets.QColorDialog.ColorDialogOption:
-# class PySide2.QtWidgets.QColorDialog.ColorDialogOptions:
- "PySide2.QtWidgets.QColorDialog.__init__": [('PySide2.QtGui.QColor', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QColorDialog.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QColorDialog.currentColor": (),
- "PySide2.QtWidgets.QColorDialog.customColor": ('int',),
- "PySide2.QtWidgets.QColorDialog.customCount": (),
- "PySide2.QtWidgets.QColorDialog.done": ('int',),
- "PySide2.QtWidgets.QColorDialog.getColor": ('PySide2.QtGui.QColor', 'PySide2.QtWidgets.QWidget', 'str', 'PySide2.QtWidgets.QColorDialog.ColorDialogOptions'),
- "PySide2.QtWidgets.QColorDialog.open": [(), ('PySide2.QtCore.QObject', 'str')],
- "PySide2.QtWidgets.QColorDialog.options": (),
- "PySide2.QtWidgets.QColorDialog.selectedColor": (),
- "PySide2.QtWidgets.QColorDialog.setCurrentColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QColorDialog.setCustomColor": ('int', 'PySide2.QtGui.QColor'),
- "PySide2.QtWidgets.QColorDialog.setOption": ('PySide2.QtWidgets.QColorDialog.ColorDialogOption', 'bool'),
- "PySide2.QtWidgets.QColorDialog.setOptions": ('PySide2.QtWidgets.QColorDialog.ColorDialogOptions',),
- "PySide2.QtWidgets.QColorDialog.setStandardColor": ('int', 'PySide2.QtGui.QColor'),
- "PySide2.QtWidgets.QColorDialog.setVisible": ('bool',),
- "PySide2.QtWidgets.QColorDialog.standardColor": ('int',),
- "PySide2.QtWidgets.QColorDialog.testOption": ('PySide2.QtWidgets.QColorDialog.ColorDialogOption',),
-# class PySide2.QtWidgets.QColormap:
-# class PySide2.QtWidgets.QColormap.Mode:
- "PySide2.QtWidgets.QColormap.__init__": ('PySide2.QtWidgets.QColormap',),
- "PySide2.QtWidgets.QColormap.__copy__": (),
- "PySide2.QtWidgets.QColormap.cleanup": (),
- "PySide2.QtWidgets.QColormap.colorAt": ('int',),
- "PySide2.QtWidgets.QColormap.colormap": (),
- "PySide2.QtWidgets.QColormap.depth": (),
- "PySide2.QtWidgets.QColormap.initialize": (),
- "PySide2.QtWidgets.QColormap.instance": ('int',),
- "PySide2.QtWidgets.QColormap.mode": (),
- "PySide2.QtWidgets.QColormap.pixel": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QColormap.size": (),
-# class PySide2.QtWidgets.QColumnView:
- "PySide2.QtWidgets.QColumnView.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QColumnView.columnWidths": (),
- "PySide2.QtWidgets.QColumnView.createColumn": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QColumnView.currentChanged": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QColumnView.horizontalOffset": (),
- "PySide2.QtWidgets.QColumnView.indexAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QColumnView.initializeColumn": ('PySide2.QtWidgets.QAbstractItemView',),
- "PySide2.QtWidgets.QColumnView.isIndexHidden": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QColumnView.moveCursor": ('PySide2.QtWidgets.QAbstractItemView.CursorAction', 'PySide2.QtCore.Qt.KeyboardModifiers'),
- "PySide2.QtWidgets.QColumnView.previewWidget": (),
- "PySide2.QtWidgets.QColumnView.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QColumnView.resizeGripsVisible": (),
- "PySide2.QtWidgets.QColumnView.rowsInserted": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QColumnView.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QColumnView.scrollTo": ('PySide2.QtCore.QModelIndex', 'PySide2.QtWidgets.QAbstractItemView.ScrollHint'),
- "PySide2.QtWidgets.QColumnView.selectAll": (),
- "PySide2.QtWidgets.QColumnView.setColumnWidths": ('typing.Sequence[int]',),
- "PySide2.QtWidgets.QColumnView.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QColumnView.setPreviewWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QColumnView.setResizeGripsVisible": ('bool',),
- "PySide2.QtWidgets.QColumnView.setRootIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QColumnView.setSelection": ('PySide2.QtCore.QRect', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags'),
- "PySide2.QtWidgets.QColumnView.setSelectionModel": ('PySide2.QtCore.QItemSelectionModel',),
- "PySide2.QtWidgets.QColumnView.sizeHint": (),
- "PySide2.QtWidgets.QColumnView.verticalOffset": (),
- "PySide2.QtWidgets.QColumnView.visualRect": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QColumnView.visualRegionForSelection": ('PySide2.QtCore.QItemSelection',),
-# class PySide2.QtWidgets.QComboBox:
-# class PySide2.QtWidgets.QComboBox.InsertPolicy:
-# class PySide2.QtWidgets.QComboBox.SizeAdjustPolicy:
- "PySide2.QtWidgets.QComboBox.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QComboBox.addItem": [('PySide2.QtGui.QIcon', 'str', 'typing.Any'), ('str', 'typing.Any')],
- "PySide2.QtWidgets.QComboBox.addItems": ('typing.Sequence[str]',),
- "PySide2.QtWidgets.QComboBox.autoCompletion": (),
- "PySide2.QtWidgets.QComboBox.autoCompletionCaseSensitivity": (),
- "PySide2.QtWidgets.QComboBox.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QComboBox.clear": (),
- "PySide2.QtWidgets.QComboBox.clearEditText": (),
- "PySide2.QtWidgets.QComboBox.completer": (),
- "PySide2.QtWidgets.QComboBox.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QComboBox.count": (),
- "PySide2.QtWidgets.QComboBox.currentData": ('int',),
- "PySide2.QtWidgets.QComboBox.currentIndex": (),
- "PySide2.QtWidgets.QComboBox.currentText": (),
- "PySide2.QtWidgets.QComboBox.duplicatesEnabled": (),
- "PySide2.QtWidgets.QComboBox.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QComboBox.findData": ('typing.Any', 'int', 'PySide2.QtCore.Qt.MatchFlags'),
- "PySide2.QtWidgets.QComboBox.findText": ('str', 'PySide2.QtCore.Qt.MatchFlags'),
- "PySide2.QtWidgets.QComboBox.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QComboBox.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QComboBox.hasFrame": (),
- "PySide2.QtWidgets.QComboBox.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWidgets.QComboBox.hidePopup": (),
- "PySide2.QtWidgets.QComboBox.iconSize": (),
- "PySide2.QtWidgets.QComboBox.initStyleOption": ('PySide2.QtWidgets.QStyleOptionComboBox',),
- "PySide2.QtWidgets.QComboBox.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QComboBox.inputMethodQuery": [('PySide2.QtCore.Qt.InputMethodQuery',), ('PySide2.QtCore.Qt.InputMethodQuery', 'typing.Any')],
- "PySide2.QtWidgets.QComboBox.insertItem": [('int', 'PySide2.QtGui.QIcon', 'str', 'typing.Any'), ('int', 'str', 'typing.Any')],
- "PySide2.QtWidgets.QComboBox.insertItems": ('int', 'typing.Sequence[str]'),
- "PySide2.QtWidgets.QComboBox.insertPolicy": (),
- "PySide2.QtWidgets.QComboBox.insertSeparator": ('int',),
- "PySide2.QtWidgets.QComboBox.isEditable": (),
- "PySide2.QtWidgets.QComboBox.itemData": ('int', 'int'),
- "PySide2.QtWidgets.QComboBox.itemDelegate": (),
- "PySide2.QtWidgets.QComboBox.itemIcon": ('int',),
- "PySide2.QtWidgets.QComboBox.itemText": ('int',),
- "PySide2.QtWidgets.QComboBox.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QComboBox.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QComboBox.lineEdit": (),
- "PySide2.QtWidgets.QComboBox.maxCount": (),
- "PySide2.QtWidgets.QComboBox.maxVisibleItems": (),
- "PySide2.QtWidgets.QComboBox.minimumContentsLength": (),
- "PySide2.QtWidgets.QComboBox.minimumSizeHint": (),
- "PySide2.QtWidgets.QComboBox.model": (),
- "PySide2.QtWidgets.QComboBox.modelColumn": (),
- "PySide2.QtWidgets.QComboBox.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QComboBox.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QComboBox.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QComboBox.removeItem": ('int',),
- "PySide2.QtWidgets.QComboBox.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QComboBox.rootModelIndex": (),
- "PySide2.QtWidgets.QComboBox.setAutoCompletion": ('bool',),
- "PySide2.QtWidgets.QComboBox.setAutoCompletionCaseSensitivity": ('PySide2.QtCore.Qt.CaseSensitivity',),
- "PySide2.QtWidgets.QComboBox.setCompleter": ('PySide2.QtWidgets.QCompleter',),
- "PySide2.QtWidgets.QComboBox.setCurrentIndex": ('int',),
- "PySide2.QtWidgets.QComboBox.setCurrentText": ('str',),
- "PySide2.QtWidgets.QComboBox.setDuplicatesEnabled": ('bool',),
- "PySide2.QtWidgets.QComboBox.setEditText": ('str',),
- "PySide2.QtWidgets.QComboBox.setEditable": ('bool',),
- "PySide2.QtWidgets.QComboBox.setFrame": ('bool',),
- "PySide2.QtWidgets.QComboBox.setIconSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QComboBox.setInsertPolicy": ('PySide2.QtWidgets.QComboBox.InsertPolicy',),
- "PySide2.QtWidgets.QComboBox.setItemData": ('int', 'typing.Any', 'int'),
- "PySide2.QtWidgets.QComboBox.setItemDelegate": ('PySide2.QtWidgets.QAbstractItemDelegate',),
- "PySide2.QtWidgets.QComboBox.setItemIcon": ('int', 'PySide2.QtGui.QIcon'),
- "PySide2.QtWidgets.QComboBox.setItemText": ('int', 'str'),
- "PySide2.QtWidgets.QComboBox.setLineEdit": ('PySide2.QtWidgets.QLineEdit',),
- "PySide2.QtWidgets.QComboBox.setMaxCount": ('int',),
- "PySide2.QtWidgets.QComboBox.setMaxVisibleItems": ('int',),
- "PySide2.QtWidgets.QComboBox.setMinimumContentsLength": ('int',),
- "PySide2.QtWidgets.QComboBox.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QComboBox.setModelColumn": ('int',),
- "PySide2.QtWidgets.QComboBox.setRootModelIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QComboBox.setSizeAdjustPolicy": ('PySide2.QtWidgets.QComboBox.SizeAdjustPolicy',),
- "PySide2.QtWidgets.QComboBox.setValidator": ('PySide2.QtGui.QValidator',),
- "PySide2.QtWidgets.QComboBox.setView": ('PySide2.QtWidgets.QAbstractItemView',),
- "PySide2.QtWidgets.QComboBox.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QComboBox.showPopup": (),
- "PySide2.QtWidgets.QComboBox.sizeAdjustPolicy": (),
- "PySide2.QtWidgets.QComboBox.sizeHint": (),
- "PySide2.QtWidgets.QComboBox.validator": (),
- "PySide2.QtWidgets.QComboBox.view": (),
- "PySide2.QtWidgets.QComboBox.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtWidgets.QCommandLinkButton:
- "PySide2.QtWidgets.QCommandLinkButton.__init__": [('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget'), ('str', 'str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QCommandLinkButton.description": (),
- "PySide2.QtWidgets.QCommandLinkButton.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QCommandLinkButton.heightForWidth": ('int',),
- "PySide2.QtWidgets.QCommandLinkButton.minimumSizeHint": (),
- "PySide2.QtWidgets.QCommandLinkButton.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QCommandLinkButton.setDescription": ('str',),
- "PySide2.QtWidgets.QCommandLinkButton.sizeHint": (),
-# class PySide2.QtWidgets.QCommonStyle:
- "PySide2.QtWidgets.QCommonStyle.__init__": (),
- "PySide2.QtWidgets.QCommonStyle.drawComplexControl": ('PySide2.QtWidgets.QStyle.ComplexControl', 'PySide2.QtWidgets.QStyleOptionComplex', 'PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.drawControl": ('PySide2.QtWidgets.QStyle.ControlElement', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.drawPrimitive": ('PySide2.QtWidgets.QStyle.PrimitiveElement', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.generatedIconPixmap": ('PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QPixmap', 'PySide2.QtWidgets.QStyleOption'),
- "PySide2.QtWidgets.QCommonStyle.hitTestComplexControl": ('PySide2.QtWidgets.QStyle.ComplexControl', 'PySide2.QtWidgets.QStyleOptionComplex', 'PySide2.QtCore.QPoint', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.layoutSpacing": ('PySide2.QtWidgets.QSizePolicy.ControlType', 'PySide2.QtWidgets.QSizePolicy.ControlType', 'PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.pixelMetric": ('PySide2.QtWidgets.QStyle.PixelMetric', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.polish": [('PySide2.QtGui.QPalette',), ('PySide2.QtWidgets.QApplication',), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QCommonStyle.sizeFromContents": ('PySide2.QtWidgets.QStyle.ContentsType', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtCore.QSize', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.standardIcon": ('PySide2.QtWidgets.QStyle.StandardPixmap', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.standardPixmap": ('PySide2.QtWidgets.QStyle.StandardPixmap', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.styleHint": ('PySide2.QtWidgets.QStyle.StyleHint', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QStyleHintReturn'),
- "PySide2.QtWidgets.QCommonStyle.subControlRect": ('PySide2.QtWidgets.QStyle.ComplexControl', 'PySide2.QtWidgets.QStyleOptionComplex', 'PySide2.QtWidgets.QStyle.SubControl', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.subElementRect": ('PySide2.QtWidgets.QStyle.SubElement', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QCommonStyle.unpolish": [('PySide2.QtWidgets.QApplication',), ('PySide2.QtWidgets.QWidget',)],
-# class PySide2.QtWidgets.QCompleter:
-# class PySide2.QtWidgets.QCompleter.CompletionMode:
-# class PySide2.QtWidgets.QCompleter.ModelSorting:
- "PySide2.QtWidgets.QCompleter.__init__": [('PySide2.QtCore.QAbstractItemModel', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QObject',), ('typing.Sequence[str]', 'PySide2.QtCore.QObject')],
- "PySide2.QtWidgets.QCompleter.caseSensitivity": (),
- "PySide2.QtWidgets.QCompleter.complete": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QCompleter.completionColumn": (),
- "PySide2.QtWidgets.QCompleter.completionCount": (),
- "PySide2.QtWidgets.QCompleter.completionMode": (),
- "PySide2.QtWidgets.QCompleter.completionModel": (),
- "PySide2.QtWidgets.QCompleter.completionPrefix": (),
- "PySide2.QtWidgets.QCompleter.completionRole": (),
- "PySide2.QtWidgets.QCompleter.currentCompletion": (),
- "PySide2.QtWidgets.QCompleter.currentIndex": (),
- "PySide2.QtWidgets.QCompleter.currentRow": (),
- "PySide2.QtWidgets.QCompleter.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QCompleter.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QCompleter.filterMode": (),
- "PySide2.QtWidgets.QCompleter.maxVisibleItems": (),
- "PySide2.QtWidgets.QCompleter.model": (),
- "PySide2.QtWidgets.QCompleter.modelSorting": (),
- "PySide2.QtWidgets.QCompleter.pathFromIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QCompleter.popup": (),
- "PySide2.QtWidgets.QCompleter.setCaseSensitivity": ('PySide2.QtCore.Qt.CaseSensitivity',),
- "PySide2.QtWidgets.QCompleter.setCompletionColumn": ('int',),
- "PySide2.QtWidgets.QCompleter.setCompletionMode": ('PySide2.QtWidgets.QCompleter.CompletionMode',),
- "PySide2.QtWidgets.QCompleter.setCompletionPrefix": ('str',),
- "PySide2.QtWidgets.QCompleter.setCompletionRole": ('int',),
- "PySide2.QtWidgets.QCompleter.setCurrentRow": ('int',),
- "PySide2.QtWidgets.QCompleter.setFilterMode": ('PySide2.QtCore.Qt.MatchFlags',),
- "PySide2.QtWidgets.QCompleter.setMaxVisibleItems": ('int',),
- "PySide2.QtWidgets.QCompleter.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QCompleter.setModelSorting": ('PySide2.QtWidgets.QCompleter.ModelSorting',),
- "PySide2.QtWidgets.QCompleter.setPopup": ('PySide2.QtWidgets.QAbstractItemView',),
- "PySide2.QtWidgets.QCompleter.setWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QCompleter.setWrapAround": ('bool',),
- "PySide2.QtWidgets.QCompleter.splitPath": ('str',),
- "PySide2.QtWidgets.QCompleter.widget": (),
- "PySide2.QtWidgets.QCompleter.wrapAround": (),
-# class PySide2.QtWidgets.QDataWidgetMapper:
-# class PySide2.QtWidgets.QDataWidgetMapper.SubmitPolicy:
- "PySide2.QtWidgets.QDataWidgetMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QDataWidgetMapper.addMapping": [('PySide2.QtWidgets.QWidget', 'int'), ('PySide2.QtWidgets.QWidget', 'int', 'PySide2.QtCore.QByteArray')],
- "PySide2.QtWidgets.QDataWidgetMapper.clearMapping": (),
- "PySide2.QtWidgets.QDataWidgetMapper.currentIndex": (),
- "PySide2.QtWidgets.QDataWidgetMapper.itemDelegate": (),
- "PySide2.QtWidgets.QDataWidgetMapper.mappedPropertyName": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QDataWidgetMapper.mappedSection": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QDataWidgetMapper.mappedWidgetAt": ('int',),
- "PySide2.QtWidgets.QDataWidgetMapper.model": (),
- "PySide2.QtWidgets.QDataWidgetMapper.orientation": (),
- "PySide2.QtWidgets.QDataWidgetMapper.removeMapping": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QDataWidgetMapper.revert": (),
- "PySide2.QtWidgets.QDataWidgetMapper.rootIndex": (),
- "PySide2.QtWidgets.QDataWidgetMapper.setCurrentIndex": ('int',),
- "PySide2.QtWidgets.QDataWidgetMapper.setCurrentModelIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDataWidgetMapper.setItemDelegate": ('PySide2.QtWidgets.QAbstractItemDelegate',),
- "PySide2.QtWidgets.QDataWidgetMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QDataWidgetMapper.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtWidgets.QDataWidgetMapper.setRootIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDataWidgetMapper.setSubmitPolicy": ('PySide2.QtWidgets.QDataWidgetMapper.SubmitPolicy',),
- "PySide2.QtWidgets.QDataWidgetMapper.submit": (),
- "PySide2.QtWidgets.QDataWidgetMapper.submitPolicy": (),
- "PySide2.QtWidgets.QDataWidgetMapper.toFirst": (),
- "PySide2.QtWidgets.QDataWidgetMapper.toLast": (),
- "PySide2.QtWidgets.QDataWidgetMapper.toNext": (),
- "PySide2.QtWidgets.QDataWidgetMapper.toPrevious": (),
-# class PySide2.QtWidgets.QDateEdit:
- "PySide2.QtWidgets.QDateEdit.__init__": [('PySide2.QtCore.QDate', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
-# class PySide2.QtWidgets.QDateTimeEdit:
-# class PySide2.QtWidgets.QDateTimeEdit.Section:
-# class PySide2.QtWidgets.QDateTimeEdit.Sections:
- "PySide2.QtWidgets.QDateTimeEdit.__init__": [('PySide2.QtCore.QDate', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtCore.QDateTime', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtCore.QTime', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',), ('typing.Any', 'type', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QDateTimeEdit.calendar": (),
- "PySide2.QtWidgets.QDateTimeEdit.calendarPopup": (),
- "PySide2.QtWidgets.QDateTimeEdit.calendarWidget": (),
- "PySide2.QtWidgets.QDateTimeEdit.clear": (),
- "PySide2.QtWidgets.QDateTimeEdit.clearMaximumDate": (),
- "PySide2.QtWidgets.QDateTimeEdit.clearMaximumDateTime": (),
- "PySide2.QtWidgets.QDateTimeEdit.clearMaximumTime": (),
- "PySide2.QtWidgets.QDateTimeEdit.clearMinimumDate": (),
- "PySide2.QtWidgets.QDateTimeEdit.clearMinimumDateTime": (),
- "PySide2.QtWidgets.QDateTimeEdit.clearMinimumTime": (),
- "PySide2.QtWidgets.QDateTimeEdit.currentSection": (),
- "PySide2.QtWidgets.QDateTimeEdit.currentSectionIndex": (),
- "PySide2.QtWidgets.QDateTimeEdit.date": (),
- "PySide2.QtWidgets.QDateTimeEdit.dateTime": (),
- "PySide2.QtWidgets.QDateTimeEdit.dateTimeFromText": ('str',),
- "PySide2.QtWidgets.QDateTimeEdit.displayFormat": (),
- "PySide2.QtWidgets.QDateTimeEdit.displayedSections": (),
- "PySide2.QtWidgets.QDateTimeEdit.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QDateTimeEdit.fixup": ('str',),
- "PySide2.QtWidgets.QDateTimeEdit.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QDateTimeEdit.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QDateTimeEdit.initStyleOption": ('PySide2.QtWidgets.QStyleOptionSpinBox',),
- "PySide2.QtWidgets.QDateTimeEdit.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QDateTimeEdit.maximumDate": (),
- "PySide2.QtWidgets.QDateTimeEdit.maximumDateTime": (),
- "PySide2.QtWidgets.QDateTimeEdit.maximumTime": (),
- "PySide2.QtWidgets.QDateTimeEdit.minimumDate": (),
- "PySide2.QtWidgets.QDateTimeEdit.minimumDateTime": (),
- "PySide2.QtWidgets.QDateTimeEdit.minimumTime": (),
- "PySide2.QtWidgets.QDateTimeEdit.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QDateTimeEdit.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QDateTimeEdit.sectionAt": ('int',),
- "PySide2.QtWidgets.QDateTimeEdit.sectionCount": (),
- "PySide2.QtWidgets.QDateTimeEdit.sectionText": ('PySide2.QtWidgets.QDateTimeEdit.Section',),
- "PySide2.QtWidgets.QDateTimeEdit.setCalendar": ('PySide2.QtCore.QCalendar',),
- "PySide2.QtWidgets.QDateTimeEdit.setCalendarPopup": ('bool',),
- "PySide2.QtWidgets.QDateTimeEdit.setCalendarWidget": ('PySide2.QtWidgets.QCalendarWidget',),
- "PySide2.QtWidgets.QDateTimeEdit.setCurrentSection": ('PySide2.QtWidgets.QDateTimeEdit.Section',),
- "PySide2.QtWidgets.QDateTimeEdit.setCurrentSectionIndex": ('int',),
- "PySide2.QtWidgets.QDateTimeEdit.setDate": ('PySide2.QtCore.QDate',),
- "PySide2.QtWidgets.QDateTimeEdit.setDateRange": ('PySide2.QtCore.QDate', 'PySide2.QtCore.QDate'),
- "PySide2.QtWidgets.QDateTimeEdit.setDateTime": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtWidgets.QDateTimeEdit.setDateTimeRange": ('PySide2.QtCore.QDateTime', 'PySide2.QtCore.QDateTime'),
- "PySide2.QtWidgets.QDateTimeEdit.setDisplayFormat": ('str',),
- "PySide2.QtWidgets.QDateTimeEdit.setMaximumDate": ('PySide2.QtCore.QDate',),
- "PySide2.QtWidgets.QDateTimeEdit.setMaximumDateTime": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtWidgets.QDateTimeEdit.setMaximumTime": ('PySide2.QtCore.QTime',),
- "PySide2.QtWidgets.QDateTimeEdit.setMinimumDate": ('PySide2.QtCore.QDate',),
- "PySide2.QtWidgets.QDateTimeEdit.setMinimumDateTime": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtWidgets.QDateTimeEdit.setMinimumTime": ('PySide2.QtCore.QTime',),
- "PySide2.QtWidgets.QDateTimeEdit.setSelectedSection": ('PySide2.QtWidgets.QDateTimeEdit.Section',),
- "PySide2.QtWidgets.QDateTimeEdit.setTime": ('PySide2.QtCore.QTime',),
- "PySide2.QtWidgets.QDateTimeEdit.setTimeRange": ('PySide2.QtCore.QTime', 'PySide2.QtCore.QTime'),
- "PySide2.QtWidgets.QDateTimeEdit.setTimeSpec": ('PySide2.QtCore.Qt.TimeSpec',),
- "PySide2.QtWidgets.QDateTimeEdit.sizeHint": (),
- "PySide2.QtWidgets.QDateTimeEdit.stepBy": ('int',),
- "PySide2.QtWidgets.QDateTimeEdit.stepEnabled": (),
- "PySide2.QtWidgets.QDateTimeEdit.textFromDateTime": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtWidgets.QDateTimeEdit.time": (),
- "PySide2.QtWidgets.QDateTimeEdit.timeSpec": (),
- "PySide2.QtWidgets.QDateTimeEdit.validate": ('str', 'int'),
- "PySide2.QtWidgets.QDateTimeEdit.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtWidgets.QDesktopWidget:
- "PySide2.QtWidgets.QDesktopWidget.__init__": (),
- "PySide2.QtWidgets.QDesktopWidget.availableGeometry": [('PySide2.QtCore.QPoint',), ('PySide2.QtWidgets.QWidget',), ('int',)],
- "PySide2.QtWidgets.QDesktopWidget.isVirtualDesktop": (),
- "PySide2.QtWidgets.QDesktopWidget.numScreens": (),
- "PySide2.QtWidgets.QDesktopWidget.primaryScreen": (),
- "PySide2.QtWidgets.QDesktopWidget.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QDesktopWidget.screen": [(), ('int',)],
- "PySide2.QtWidgets.QDesktopWidget.screenCount": (),
- "PySide2.QtWidgets.QDesktopWidget.screenGeometry": [('PySide2.QtCore.QPoint',), ('PySide2.QtWidgets.QWidget',), ('int',)],
- "PySide2.QtWidgets.QDesktopWidget.screenNumber": [('PySide2.QtCore.QPoint',), ('PySide2.QtWidgets.QWidget',)],
-# class PySide2.QtWidgets.QDial:
- "PySide2.QtWidgets.QDial.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QDial.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QDial.initStyleOption": ('PySide2.QtWidgets.QStyleOptionSlider',),
- "PySide2.QtWidgets.QDial.minimumSizeHint": (),
- "PySide2.QtWidgets.QDial.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QDial.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QDial.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QDial.notchSize": (),
- "PySide2.QtWidgets.QDial.notchTarget": (),
- "PySide2.QtWidgets.QDial.notchesVisible": (),
- "PySide2.QtWidgets.QDial.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QDial.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QDial.setNotchTarget": ('float',),
- "PySide2.QtWidgets.QDial.setNotchesVisible": ('bool',),
- "PySide2.QtWidgets.QDial.setWrapping": ('bool',),
- "PySide2.QtWidgets.QDial.sizeHint": (),
- "PySide2.QtWidgets.QDial.sliderChange": ('PySide2.QtWidgets.QAbstractSlider.SliderChange',),
- "PySide2.QtWidgets.QDial.wrapping": (),
-# class PySide2.QtWidgets.QDialog:
-# class PySide2.QtWidgets.QDialog.DialogCode:
- "PySide2.QtWidgets.QDialog.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QDialog.accept": (),
- "PySide2.QtWidgets.QDialog.adjustPosition": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QDialog.closeEvent": ('PySide2.QtGui.QCloseEvent',),
- "PySide2.QtWidgets.QDialog.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QDialog.done": ('int',),
- "PySide2.QtWidgets.QDialog.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QDialog.exec_": (),
- "PySide2.QtWidgets.QDialog.extension": (),
- "PySide2.QtWidgets.QDialog.isSizeGripEnabled": (),
- "PySide2.QtWidgets.QDialog.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QDialog.minimumSizeHint": (),
- "PySide2.QtWidgets.QDialog.open": (),
- "PySide2.QtWidgets.QDialog.orientation": (),
- "PySide2.QtWidgets.QDialog.reject": (),
- "PySide2.QtWidgets.QDialog.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QDialog.result": (),
- "PySide2.QtWidgets.QDialog.setExtension": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QDialog.setModal": ('bool',),
- "PySide2.QtWidgets.QDialog.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtWidgets.QDialog.setResult": ('int',),
- "PySide2.QtWidgets.QDialog.setSizeGripEnabled": ('bool',),
- "PySide2.QtWidgets.QDialog.setVisible": ('bool',),
- "PySide2.QtWidgets.QDialog.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QDialog.showExtension": ('bool',),
- "PySide2.QtWidgets.QDialog.sizeHint": (),
-# class PySide2.QtWidgets.QDialogButtonBox:
-# class PySide2.QtWidgets.QDialogButtonBox.ButtonLayout:
-# class PySide2.QtWidgets.QDialogButtonBox.ButtonRole:
-# class PySide2.QtWidgets.QDialogButtonBox.StandardButton:
-# class PySide2.QtWidgets.QDialogButtonBox.StandardButtons:
- "PySide2.QtWidgets.QDialogButtonBox.__init__": [('PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QDialogButtonBox.StandardButtons', 'PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QDialogButtonBox.StandardButtons', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QDialogButtonBox.addButton": [('PySide2.QtWidgets.QAbstractButton', 'PySide2.QtWidgets.QDialogButtonBox.ButtonRole'), ('PySide2.QtWidgets.QDialogButtonBox.StandardButton',), ('str', 'PySide2.QtWidgets.QDialogButtonBox.ButtonRole')],
- "PySide2.QtWidgets.QDialogButtonBox.button": ('PySide2.QtWidgets.QDialogButtonBox.StandardButton',),
- "PySide2.QtWidgets.QDialogButtonBox.buttonRole": ('PySide2.QtWidgets.QAbstractButton',),
- "PySide2.QtWidgets.QDialogButtonBox.buttons": (),
- "PySide2.QtWidgets.QDialogButtonBox.centerButtons": (),
- "PySide2.QtWidgets.QDialogButtonBox.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QDialogButtonBox.clear": (),
- "PySide2.QtWidgets.QDialogButtonBox.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QDialogButtonBox.orientation": (),
- "PySide2.QtWidgets.QDialogButtonBox.removeButton": ('PySide2.QtWidgets.QAbstractButton',),
- "PySide2.QtWidgets.QDialogButtonBox.setCenterButtons": ('bool',),
- "PySide2.QtWidgets.QDialogButtonBox.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtWidgets.QDialogButtonBox.setStandardButtons": ('PySide2.QtWidgets.QDialogButtonBox.StandardButtons',),
- "PySide2.QtWidgets.QDialogButtonBox.standardButton": ('PySide2.QtWidgets.QAbstractButton',),
- "PySide2.QtWidgets.QDialogButtonBox.standardButtons": (),
-# class PySide2.QtWidgets.QDirModel:
-# class PySide2.QtWidgets.QDirModel.Roles:
- "PySide2.QtWidgets.QDirModel.__init__": [('PySide2.QtCore.QObject',), ('typing.Sequence[str]', 'PySide2.QtCore.QDir.Filters', 'PySide2.QtCore.QDir.SortFlags', 'PySide2.QtCore.QObject')],
- "PySide2.QtWidgets.QDirModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtWidgets.QDirModel.dropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QDirModel.fileIcon": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.fileInfo": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.fileName": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.filePath": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.filter": (),
- "PySide2.QtWidgets.QDirModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.hasChildren": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtWidgets.QDirModel.iconProvider": (),
- "PySide2.QtWidgets.QDirModel.index": [('int', 'int', 'PySide2.QtCore.QModelIndex'), ('str', 'int')],
- "PySide2.QtWidgets.QDirModel.isDir": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.isReadOnly": (),
- "PySide2.QtWidgets.QDirModel.lazyChildCount": (),
- "PySide2.QtWidgets.QDirModel.mimeData": ('typing.List[int]',),
- "PySide2.QtWidgets.QDirModel.mimeTypes": (),
- "PySide2.QtWidgets.QDirModel.mkdir": ('PySide2.QtCore.QModelIndex', 'str'),
- "PySide2.QtWidgets.QDirModel.nameFilters": (),
- "PySide2.QtWidgets.QDirModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtWidgets.QDirModel.refresh": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.remove": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.resolveSymlinks": (),
- "PySide2.QtWidgets.QDirModel.rmdir": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QDirModel.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
- "PySide2.QtWidgets.QDirModel.setFilter": ('PySide2.QtCore.QDir.Filters',),
- "PySide2.QtWidgets.QDirModel.setIconProvider": ('PySide2.QtWidgets.QFileIconProvider',),
- "PySide2.QtWidgets.QDirModel.setLazyChildCount": ('bool',),
- "PySide2.QtWidgets.QDirModel.setNameFilters": ('typing.Sequence[str]',),
- "PySide2.QtWidgets.QDirModel.setReadOnly": ('bool',),
- "PySide2.QtWidgets.QDirModel.setResolveSymlinks": ('bool',),
- "PySide2.QtWidgets.QDirModel.setSorting": ('PySide2.QtCore.QDir.SortFlags',),
- "PySide2.QtWidgets.QDirModel.sort": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtWidgets.QDirModel.sorting": (),
- "PySide2.QtWidgets.QDirModel.supportedDropActions": (),
-# class PySide2.QtWidgets.QDockWidget:
-# class PySide2.QtWidgets.QDockWidget.DockWidgetFeature:
-# class PySide2.QtWidgets.QDockWidget.DockWidgetFeatures:
- "PySide2.QtWidgets.QDockWidget.__init__": [('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'), ('str', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags')],
- "PySide2.QtWidgets.QDockWidget.allowedAreas": (),
- "PySide2.QtWidgets.QDockWidget.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QDockWidget.closeEvent": ('PySide2.QtGui.QCloseEvent',),
- "PySide2.QtWidgets.QDockWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QDockWidget.features": (),
- "PySide2.QtWidgets.QDockWidget.initStyleOption": ('PySide2.QtWidgets.QStyleOptionDockWidget',),
- "PySide2.QtWidgets.QDockWidget.isAreaAllowed": ('PySide2.QtCore.Qt.DockWidgetArea',),
- "PySide2.QtWidgets.QDockWidget.isFloating": (),
- "PySide2.QtWidgets.QDockWidget.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QDockWidget.setAllowedAreas": ('PySide2.QtCore.Qt.DockWidgetAreas',),
- "PySide2.QtWidgets.QDockWidget.setFeatures": ('PySide2.QtWidgets.QDockWidget.DockWidgetFeatures',),
- "PySide2.QtWidgets.QDockWidget.setFloating": ('bool',),
- "PySide2.QtWidgets.QDockWidget.setTitleBarWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QDockWidget.setWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QDockWidget.titleBarWidget": (),
- "PySide2.QtWidgets.QDockWidget.toggleViewAction": (),
- "PySide2.QtWidgets.QDockWidget.widget": (),
-# class PySide2.QtWidgets.QDoubleSpinBox:
- "PySide2.QtWidgets.QDoubleSpinBox.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QDoubleSpinBox.cleanText": (),
- "PySide2.QtWidgets.QDoubleSpinBox.decimals": (),
- "PySide2.QtWidgets.QDoubleSpinBox.fixup": ('str',),
- "PySide2.QtWidgets.QDoubleSpinBox.maximum": (),
- "PySide2.QtWidgets.QDoubleSpinBox.minimum": (),
- "PySide2.QtWidgets.QDoubleSpinBox.prefix": (),
- "PySide2.QtWidgets.QDoubleSpinBox.setDecimals": ('int',),
- "PySide2.QtWidgets.QDoubleSpinBox.setMaximum": ('float',),
- "PySide2.QtWidgets.QDoubleSpinBox.setMinimum": ('float',),
- "PySide2.QtWidgets.QDoubleSpinBox.setPrefix": ('str',),
- "PySide2.QtWidgets.QDoubleSpinBox.setRange": ('float', 'float'),
- "PySide2.QtWidgets.QDoubleSpinBox.setSingleStep": ('float',),
- "PySide2.QtWidgets.QDoubleSpinBox.setStepType": ('PySide2.QtWidgets.QAbstractSpinBox.StepType',),
- "PySide2.QtWidgets.QDoubleSpinBox.setSuffix": ('str',),
- "PySide2.QtWidgets.QDoubleSpinBox.setValue": ('float',),
- "PySide2.QtWidgets.QDoubleSpinBox.singleStep": (),
- "PySide2.QtWidgets.QDoubleSpinBox.stepType": (),
- "PySide2.QtWidgets.QDoubleSpinBox.suffix": (),
- "PySide2.QtWidgets.QDoubleSpinBox.textFromValue": ('float',),
- "PySide2.QtWidgets.QDoubleSpinBox.validate": ('str', 'int'),
- "PySide2.QtWidgets.QDoubleSpinBox.value": (),
- "PySide2.QtWidgets.QDoubleSpinBox.valueFromText": ('str',),
-# class PySide2.QtWidgets.QErrorMessage:
- "PySide2.QtWidgets.QErrorMessage.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QErrorMessage.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QErrorMessage.done": ('int',),
- "PySide2.QtWidgets.QErrorMessage.qtHandler": (),
- "PySide2.QtWidgets.QErrorMessage.showMessage": [('str',), ('str', 'str')],
-# class PySide2.QtWidgets.QFileDialog:
-# class PySide2.QtWidgets.QFileDialog.AcceptMode:
-# class PySide2.QtWidgets.QFileDialog.DialogLabel:
-# class PySide2.QtWidgets.QFileDialog.FileMode:
-# class PySide2.QtWidgets.QFileDialog.Option:
-# class PySide2.QtWidgets.QFileDialog.Options:
-# class PySide2.QtWidgets.QFileDialog.ViewMode:
- "PySide2.QtWidgets.QFileDialog.__init__": [('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'), ('PySide2.QtWidgets.QWidget', 'str', 'str', 'str')],
- "PySide2.QtWidgets.QFileDialog.accept": (),
- "PySide2.QtWidgets.QFileDialog.acceptMode": (),
- "PySide2.QtWidgets.QFileDialog.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QFileDialog.confirmOverwrite": (),
- "PySide2.QtWidgets.QFileDialog.defaultSuffix": (),
- "PySide2.QtWidgets.QFileDialog.directory": (),
- "PySide2.QtWidgets.QFileDialog.directoryUrl": (),
- "PySide2.QtWidgets.QFileDialog.done": ('int',),
- "PySide2.QtWidgets.QFileDialog.fileMode": (),
- "PySide2.QtWidgets.QFileDialog.filter": (),
- "PySide2.QtWidgets.QFileDialog.getExistingDirectory": ('PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtWidgets.QFileDialog.Options'),
- "PySide2.QtWidgets.QFileDialog.getExistingDirectoryUrl": ('PySide2.QtWidgets.QWidget', 'str', 'PySide2.QtCore.QUrl', 'PySide2.QtWidgets.QFileDialog.Options', 'typing.Sequence[str]'),
- "PySide2.QtWidgets.QFileDialog.getOpenFileName": ('PySide2.QtWidgets.QWidget', 'str', 'str', 'str', 'PySide2.QtWidgets.QFileDialog.Options'),
- "PySide2.QtWidgets.QFileDialog.getOpenFileNames": ('PySide2.QtWidgets.QWidget', 'str', 'str', 'str', 'PySide2.QtWidgets.QFileDialog.Options'),
- "PySide2.QtWidgets.QFileDialog.getOpenFileUrl": ('PySide2.QtWidgets.QWidget', 'str', 'PySide2.QtCore.QUrl', 'str', 'PySide2.QtWidgets.QFileDialog.Options', 'typing.Sequence[str]'),
- "PySide2.QtWidgets.QFileDialog.getOpenFileUrls": ('PySide2.QtWidgets.QWidget', 'str', 'PySide2.QtCore.QUrl', 'str', 'PySide2.QtWidgets.QFileDialog.Options', 'typing.Sequence[str]'),
- "PySide2.QtWidgets.QFileDialog.getSaveFileName": ('PySide2.QtWidgets.QWidget', 'str', 'str', 'str', 'PySide2.QtWidgets.QFileDialog.Options'),
- "PySide2.QtWidgets.QFileDialog.getSaveFileUrl": ('PySide2.QtWidgets.QWidget', 'str', 'PySide2.QtCore.QUrl', 'str', 'PySide2.QtWidgets.QFileDialog.Options', 'typing.Sequence[str]'),
- "PySide2.QtWidgets.QFileDialog.history": (),
- "PySide2.QtWidgets.QFileDialog.iconProvider": (),
- "PySide2.QtWidgets.QFileDialog.isNameFilterDetailsVisible": (),
- "PySide2.QtWidgets.QFileDialog.isReadOnly": (),
- "PySide2.QtWidgets.QFileDialog.itemDelegate": (),
- "PySide2.QtWidgets.QFileDialog.labelText": ('PySide2.QtWidgets.QFileDialog.DialogLabel',),
- "PySide2.QtWidgets.QFileDialog.mimeTypeFilters": (),
- "PySide2.QtWidgets.QFileDialog.nameFilters": (),
- "PySide2.QtWidgets.QFileDialog.open": [(), ('PySide2.QtCore.QObject', 'str')],
- "PySide2.QtWidgets.QFileDialog.options": (),
- "PySide2.QtWidgets.QFileDialog.proxyModel": (),
- "PySide2.QtWidgets.QFileDialog.resolveSymlinks": (),
- "PySide2.QtWidgets.QFileDialog.restoreState": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWidgets.QFileDialog.saveFileContent": ('PySide2.QtCore.QByteArray', 'str'),
- "PySide2.QtWidgets.QFileDialog.saveState": (),
- "PySide2.QtWidgets.QFileDialog.selectFile": ('str',),
- "PySide2.QtWidgets.QFileDialog.selectMimeTypeFilter": ('str',),
- "PySide2.QtWidgets.QFileDialog.selectNameFilter": ('str',),
- "PySide2.QtWidgets.QFileDialog.selectUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtWidgets.QFileDialog.selectedFiles": (),
- "PySide2.QtWidgets.QFileDialog.selectedMimeTypeFilter": (),
- "PySide2.QtWidgets.QFileDialog.selectedNameFilter": (),
- "PySide2.QtWidgets.QFileDialog.selectedUrls": (),
- "PySide2.QtWidgets.QFileDialog.setAcceptMode": ('PySide2.QtWidgets.QFileDialog.AcceptMode',),
- "PySide2.QtWidgets.QFileDialog.setConfirmOverwrite": ('bool',),
- "PySide2.QtWidgets.QFileDialog.setDefaultSuffix": ('str',),
- "PySide2.QtWidgets.QFileDialog.setDirectory": [('PySide2.QtCore.QDir',), ('str',)],
- "PySide2.QtWidgets.QFileDialog.setDirectoryUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtWidgets.QFileDialog.setFileMode": ('PySide2.QtWidgets.QFileDialog.FileMode',),
- "PySide2.QtWidgets.QFileDialog.setFilter": ('PySide2.QtCore.QDir.Filters',),
- "PySide2.QtWidgets.QFileDialog.setHistory": ('typing.Sequence[str]',),
- "PySide2.QtWidgets.QFileDialog.setIconProvider": ('PySide2.QtWidgets.QFileIconProvider',),
- "PySide2.QtWidgets.QFileDialog.setItemDelegate": ('PySide2.QtWidgets.QAbstractItemDelegate',),
- "PySide2.QtWidgets.QFileDialog.setLabelText": ('PySide2.QtWidgets.QFileDialog.DialogLabel', 'str'),
- "PySide2.QtWidgets.QFileDialog.setMimeTypeFilters": ('typing.Sequence[str]',),
- "PySide2.QtWidgets.QFileDialog.setNameFilter": ('str',),
- "PySide2.QtWidgets.QFileDialog.setNameFilterDetailsVisible": ('bool',),
- "PySide2.QtWidgets.QFileDialog.setNameFilters": ('typing.Sequence[str]',),
- "PySide2.QtWidgets.QFileDialog.setOption": ('PySide2.QtWidgets.QFileDialog.Option', 'bool'),
- "PySide2.QtWidgets.QFileDialog.setOptions": ('PySide2.QtWidgets.QFileDialog.Options',),
- "PySide2.QtWidgets.QFileDialog.setProxyModel": ('PySide2.QtCore.QAbstractProxyModel',),
- "PySide2.QtWidgets.QFileDialog.setReadOnly": ('bool',),
- "PySide2.QtWidgets.QFileDialog.setResolveSymlinks": ('bool',),
- "PySide2.QtWidgets.QFileDialog.setSidebarUrls": ('typing.Sequence[PySide2.QtCore.QUrl]',),
- "PySide2.QtWidgets.QFileDialog.setSupportedSchemes": ('typing.Sequence[str]',),
- "PySide2.QtWidgets.QFileDialog.setViewMode": ('PySide2.QtWidgets.QFileDialog.ViewMode',),
- "PySide2.QtWidgets.QFileDialog.setVisible": ('bool',),
- "PySide2.QtWidgets.QFileDialog.sidebarUrls": (),
- "PySide2.QtWidgets.QFileDialog.supportedSchemes": (),
- "PySide2.QtWidgets.QFileDialog.testOption": ('PySide2.QtWidgets.QFileDialog.Option',),
- "PySide2.QtWidgets.QFileDialog.viewMode": (),
-# class PySide2.QtWidgets.QFileIconProvider:
-# class PySide2.QtWidgets.QFileIconProvider.IconType:
-# class PySide2.QtWidgets.QFileIconProvider.Option:
-# class PySide2.QtWidgets.QFileIconProvider.Options:
- "PySide2.QtWidgets.QFileIconProvider.__init__": (),
- "PySide2.QtWidgets.QFileIconProvider.icon": [('PySide2.QtCore.QFileInfo',), ('PySide2.QtWidgets.QFileIconProvider.IconType',)],
- "PySide2.QtWidgets.QFileIconProvider.options": (),
- "PySide2.QtWidgets.QFileIconProvider.setOptions": ('PySide2.QtWidgets.QFileIconProvider.Options',),
- "PySide2.QtWidgets.QFileIconProvider.type": ('PySide2.QtCore.QFileInfo',),
-# class PySide2.QtWidgets.QFileSystemModel:
-# class PySide2.QtWidgets.QFileSystemModel.Option:
-# class PySide2.QtWidgets.QFileSystemModel.Options:
-# class PySide2.QtWidgets.QFileSystemModel.Roles:
- "PySide2.QtWidgets.QFileSystemModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QFileSystemModel.canFetchMore": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtWidgets.QFileSystemModel.dropMimeData": ('PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction', 'int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QFileSystemModel.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QFileSystemModel.fetchMore": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.fileIcon": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.fileInfo": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.fileName": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.filePath": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.filter": (),
- "PySide2.QtWidgets.QFileSystemModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.hasChildren": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtWidgets.QFileSystemModel.iconProvider": (),
- "PySide2.QtWidgets.QFileSystemModel.index": [('int', 'int', 'PySide2.QtCore.QModelIndex'), ('str', 'int')],
- "PySide2.QtWidgets.QFileSystemModel.isDir": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.isReadOnly": (),
- "PySide2.QtWidgets.QFileSystemModel.lastModified": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.mimeData": ('typing.List[int]',),
- "PySide2.QtWidgets.QFileSystemModel.mimeTypes": (),
- "PySide2.QtWidgets.QFileSystemModel.mkdir": ('PySide2.QtCore.QModelIndex', 'str'),
- "PySide2.QtWidgets.QFileSystemModel.myComputer": ('int',),
- "PySide2.QtWidgets.QFileSystemModel.nameFilterDisables": (),
- "PySide2.QtWidgets.QFileSystemModel.nameFilters": (),
- "PySide2.QtWidgets.QFileSystemModel.options": (),
- "PySide2.QtWidgets.QFileSystemModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtWidgets.QFileSystemModel.remove": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.resolveSymlinks": (),
- "PySide2.QtWidgets.QFileSystemModel.rmdir": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.rootDirectory": (),
- "PySide2.QtWidgets.QFileSystemModel.rootPath": (),
- "PySide2.QtWidgets.QFileSystemModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
- "PySide2.QtWidgets.QFileSystemModel.setFilter": ('PySide2.QtCore.QDir.Filters',),
- "PySide2.QtWidgets.QFileSystemModel.setIconProvider": ('PySide2.QtWidgets.QFileIconProvider',),
- "PySide2.QtWidgets.QFileSystemModel.setNameFilterDisables": ('bool',),
- "PySide2.QtWidgets.QFileSystemModel.setNameFilters": ('typing.Sequence[str]',),
- "PySide2.QtWidgets.QFileSystemModel.setOption": ('PySide2.QtWidgets.QFileSystemModel.Option', 'bool'),
- "PySide2.QtWidgets.QFileSystemModel.setOptions": ('PySide2.QtWidgets.QFileSystemModel.Options',),
- "PySide2.QtWidgets.QFileSystemModel.setReadOnly": ('bool',),
- "PySide2.QtWidgets.QFileSystemModel.setResolveSymlinks": ('bool',),
- "PySide2.QtWidgets.QFileSystemModel.setRootPath": ('str',),
- "PySide2.QtWidgets.QFileSystemModel.sibling": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QFileSystemModel.size": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QFileSystemModel.sort": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtWidgets.QFileSystemModel.supportedDropActions": (),
- "PySide2.QtWidgets.QFileSystemModel.testOption": ('PySide2.QtWidgets.QFileSystemModel.Option',),
- "PySide2.QtWidgets.QFileSystemModel.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QFileSystemModel.type": ('PySide2.QtCore.QModelIndex',),
-# class PySide2.QtWidgets.QFocusFrame:
- "PySide2.QtWidgets.QFocusFrame.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QFocusFrame.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QFocusFrame.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QFocusFrame.initStyleOption": ('PySide2.QtWidgets.QStyleOption',),
- "PySide2.QtWidgets.QFocusFrame.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QFocusFrame.setWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QFocusFrame.widget": (),
-# class PySide2.QtWidgets.QFontComboBox:
-# class PySide2.QtWidgets.QFontComboBox.FontFilter:
-# class PySide2.QtWidgets.QFontComboBox.FontFilters:
- "PySide2.QtWidgets.QFontComboBox.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QFontComboBox.currentFont": (),
- "PySide2.QtWidgets.QFontComboBox.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QFontComboBox.fontFilters": (),
- "PySide2.QtWidgets.QFontComboBox.setCurrentFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QFontComboBox.setFontFilters": ('PySide2.QtWidgets.QFontComboBox.FontFilters',),
- "PySide2.QtWidgets.QFontComboBox.setWritingSystem": ('PySide2.QtGui.QFontDatabase.WritingSystem',),
- "PySide2.QtWidgets.QFontComboBox.sizeHint": (),
- "PySide2.QtWidgets.QFontComboBox.writingSystem": (),
-# class PySide2.QtWidgets.QFontDialog:
-# class PySide2.QtWidgets.QFontDialog.FontDialogOption:
-# class PySide2.QtWidgets.QFontDialog.FontDialogOptions:
- "PySide2.QtWidgets.QFontDialog.__init__": [('PySide2.QtGui.QFont', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QFontDialog.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QFontDialog.currentFont": (),
- "PySide2.QtWidgets.QFontDialog.done": ('int',),
- "PySide2.QtWidgets.QFontDialog.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QFontDialog.getFont": [('PySide2.QtGui.QFont', 'PySide2.QtWidgets.QWidget', 'str', 'PySide2.QtWidgets.QFontDialog.FontDialogOptions'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QFontDialog.open": [(), ('PySide2.QtCore.QObject', 'str')],
- "PySide2.QtWidgets.QFontDialog.options": (),
- "PySide2.QtWidgets.QFontDialog.selectedFont": (),
- "PySide2.QtWidgets.QFontDialog.setCurrentFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QFontDialog.setOption": ('PySide2.QtWidgets.QFontDialog.FontDialogOption', 'bool'),
- "PySide2.QtWidgets.QFontDialog.setOptions": ('PySide2.QtWidgets.QFontDialog.FontDialogOptions',),
- "PySide2.QtWidgets.QFontDialog.setVisible": ('bool',),
- "PySide2.QtWidgets.QFontDialog.testOption": ('PySide2.QtWidgets.QFontDialog.FontDialogOption',),
-# class PySide2.QtWidgets.QFormLayout:
-# class PySide2.QtWidgets.QFormLayout.FieldGrowthPolicy:
-# class PySide2.QtWidgets.QFormLayout.ItemRole:
-# class PySide2.QtWidgets.QFormLayout.RowWrapPolicy:
- "PySide2.QtWidgets.QFormLayout.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QFormLayout.addItem": ('PySide2.QtWidgets.QLayoutItem',),
- "PySide2.QtWidgets.QFormLayout.addRow": [('PySide2.QtWidgets.QLayout',), ('PySide2.QtWidgets.QWidget',), ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QLayout'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QWidget'), ('str', 'PySide2.QtWidgets.QLayout'), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QFormLayout.count": (),
- "PySide2.QtWidgets.QFormLayout.expandingDirections": (),
- "PySide2.QtWidgets.QFormLayout.fieldGrowthPolicy": (),
- "PySide2.QtWidgets.QFormLayout.formAlignment": (),
- "PySide2.QtWidgets.QFormLayout.getItemPosition": ('int', 'PySide2.QtWidgets.QFormLayout.ItemRole'),
- "PySide2.QtWidgets.QFormLayout.getLayoutPosition": ('PySide2.QtWidgets.QLayout', 'PySide2.QtWidgets.QFormLayout.ItemRole'),
- "PySide2.QtWidgets.QFormLayout.getWidgetPosition": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QFormLayout.ItemRole'),
- "PySide2.QtWidgets.QFormLayout.hasHeightForWidth": (),
- "PySide2.QtWidgets.QFormLayout.heightForWidth": ('int',),
- "PySide2.QtWidgets.QFormLayout.horizontalSpacing": (),
- "PySide2.QtWidgets.QFormLayout.insertRow": [('int', 'PySide2.QtWidgets.QLayout'), ('int', 'PySide2.QtWidgets.QWidget'), ('int', 'PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QLayout'), ('int', 'PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QWidget'), ('int', 'str', 'PySide2.QtWidgets.QLayout'), ('int', 'str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QFormLayout.invalidate": (),
- "PySide2.QtWidgets.QFormLayout.itemAt": [('int',), ('int', 'PySide2.QtWidgets.QFormLayout.ItemRole')],
- "PySide2.QtWidgets.QFormLayout.labelAlignment": (),
- "PySide2.QtWidgets.QFormLayout.labelForField": [('PySide2.QtWidgets.QLayout',), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QFormLayout.minimumSize": (),
- "PySide2.QtWidgets.QFormLayout.removeRow": [('PySide2.QtWidgets.QLayout',), ('PySide2.QtWidgets.QWidget',), ('int',)],
- "PySide2.QtWidgets.QFormLayout.rowCount": (),
- "PySide2.QtWidgets.QFormLayout.rowWrapPolicy": (),
- "PySide2.QtWidgets.QFormLayout.setFieldGrowthPolicy": ('PySide2.QtWidgets.QFormLayout.FieldGrowthPolicy',),
- "PySide2.QtWidgets.QFormLayout.setFormAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QFormLayout.setGeometry": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QFormLayout.setHorizontalSpacing": ('int',),
- "PySide2.QtWidgets.QFormLayout.setItem": ('int', 'PySide2.QtWidgets.QFormLayout.ItemRole', 'PySide2.QtWidgets.QLayoutItem'),
- "PySide2.QtWidgets.QFormLayout.setLabelAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QFormLayout.setLayout": ('int', 'PySide2.QtWidgets.QFormLayout.ItemRole', 'PySide2.QtWidgets.QLayout'),
- "PySide2.QtWidgets.QFormLayout.setRowWrapPolicy": ('PySide2.QtWidgets.QFormLayout.RowWrapPolicy',),
- "PySide2.QtWidgets.QFormLayout.setSpacing": ('int',),
- "PySide2.QtWidgets.QFormLayout.setVerticalSpacing": ('int',),
- "PySide2.QtWidgets.QFormLayout.setWidget": ('int', 'PySide2.QtWidgets.QFormLayout.ItemRole', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QFormLayout.sizeHint": (),
- "PySide2.QtWidgets.QFormLayout.spacing": (),
- "PySide2.QtWidgets.QFormLayout.takeAt": ('int',),
- "PySide2.QtWidgets.QFormLayout.verticalSpacing": (),
-# class PySide2.QtWidgets.QFrame:
-# class PySide2.QtWidgets.QFrame.Shadow:
-# class PySide2.QtWidgets.QFrame.Shape:
-# class PySide2.QtWidgets.QFrame.StyleMask:
- "PySide2.QtWidgets.QFrame.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QFrame.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QFrame.drawFrame": ('PySide2.QtGui.QPainter',),
- "PySide2.QtWidgets.QFrame.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QFrame.frameRect": (),
- "PySide2.QtWidgets.QFrame.frameShadow": (),
- "PySide2.QtWidgets.QFrame.frameShape": (),
- "PySide2.QtWidgets.QFrame.frameStyle": (),
- "PySide2.QtWidgets.QFrame.frameWidth": (),
- "PySide2.QtWidgets.QFrame.initStyleOption": ('PySide2.QtWidgets.QStyleOptionFrame',),
- "PySide2.QtWidgets.QFrame.lineWidth": (),
- "PySide2.QtWidgets.QFrame.midLineWidth": (),
- "PySide2.QtWidgets.QFrame.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QFrame.setFrameRect": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QFrame.setFrameShadow": ('PySide2.QtWidgets.QFrame.Shadow',),
- "PySide2.QtWidgets.QFrame.setFrameShape": ('PySide2.QtWidgets.QFrame.Shape',),
- "PySide2.QtWidgets.QFrame.setFrameStyle": ('int',),
- "PySide2.QtWidgets.QFrame.setLineWidth": ('int',),
- "PySide2.QtWidgets.QFrame.setMidLineWidth": ('int',),
- "PySide2.QtWidgets.QFrame.sizeHint": (),
-# class PySide2.QtWidgets.QGesture:
-# class PySide2.QtWidgets.QGesture.GestureCancelPolicy:
- "PySide2.QtWidgets.QGesture.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGesture.gestureCancelPolicy": (),
- "PySide2.QtWidgets.QGesture.gestureType": (),
- "PySide2.QtWidgets.QGesture.hasHotSpot": (),
- "PySide2.QtWidgets.QGesture.hotSpot": (),
- "PySide2.QtWidgets.QGesture.setGestureCancelPolicy": ('PySide2.QtWidgets.QGesture.GestureCancelPolicy',),
- "PySide2.QtWidgets.QGesture.setHotSpot": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGesture.state": (),
- "PySide2.QtWidgets.QGesture.unsetHotSpot": (),
-# class PySide2.QtWidgets.QGestureEvent:
- "PySide2.QtWidgets.QGestureEvent.__init__": ('typing.Sequence[PySide2.QtWidgets.QGesture]',),
- "PySide2.QtWidgets.QGestureEvent.accept": [(), ('PySide2.QtCore.Qt.GestureType',), ('PySide2.QtWidgets.QGesture',)],
- "PySide2.QtWidgets.QGestureEvent.activeGestures": (),
- "PySide2.QtWidgets.QGestureEvent.canceledGestures": (),
- "PySide2.QtWidgets.QGestureEvent.gesture": ('PySide2.QtCore.Qt.GestureType',),
- "PySide2.QtWidgets.QGestureEvent.gestures": (),
- "PySide2.QtWidgets.QGestureEvent.ignore": [(), ('PySide2.QtCore.Qt.GestureType',), ('PySide2.QtWidgets.QGesture',)],
- "PySide2.QtWidgets.QGestureEvent.isAccepted": [(), ('PySide2.QtCore.Qt.GestureType',), ('PySide2.QtWidgets.QGesture',)],
- "PySide2.QtWidgets.QGestureEvent.mapToGraphicsScene": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGestureEvent.setAccepted": [('PySide2.QtCore.Qt.GestureType', 'bool'), ('PySide2.QtWidgets.QGesture', 'bool'), ('bool',)],
- "PySide2.QtWidgets.QGestureEvent.setWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QGestureEvent.widget": (),
-# class PySide2.QtWidgets.QGestureRecognizer:
-# class PySide2.QtWidgets.QGestureRecognizer.Result:
-# class PySide2.QtWidgets.QGestureRecognizer.ResultFlag:
- "PySide2.QtWidgets.QGestureRecognizer.__init__": (),
- "PySide2.QtWidgets.QGestureRecognizer.create": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGestureRecognizer.recognize": ('PySide2.QtWidgets.QGesture', 'PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QGestureRecognizer.registerRecognizer": ('PySide2.QtWidgets.QGestureRecognizer',),
- "PySide2.QtWidgets.QGestureRecognizer.reset": ('PySide2.QtWidgets.QGesture',),
- "PySide2.QtWidgets.QGestureRecognizer.unregisterRecognizer": ('PySide2.QtCore.Qt.GestureType',),
-# class PySide2.QtWidgets.QGraphicsAnchor:
- "PySide2.QtWidgets.QGraphicsAnchor.setSizePolicy": ('PySide2.QtWidgets.QSizePolicy.Policy',),
- "PySide2.QtWidgets.QGraphicsAnchor.setSpacing": ('float',),
- "PySide2.QtWidgets.QGraphicsAnchor.sizePolicy": (),
- "PySide2.QtWidgets.QGraphicsAnchor.spacing": (),
- "PySide2.QtWidgets.QGraphicsAnchor.unsetSpacing": (),
-# class PySide2.QtWidgets.QGraphicsAnchorLayout:
- "PySide2.QtWidgets.QGraphicsAnchorLayout.__init__": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.addAnchor": ('PySide2.QtWidgets.QGraphicsLayoutItem', 'PySide2.QtCore.Qt.AnchorPoint', 'PySide2.QtWidgets.QGraphicsLayoutItem', 'PySide2.QtCore.Qt.AnchorPoint'),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.addAnchors": ('PySide2.QtWidgets.QGraphicsLayoutItem', 'PySide2.QtWidgets.QGraphicsLayoutItem', 'PySide2.QtCore.Qt.Orientations'),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.addCornerAnchors": ('PySide2.QtWidgets.QGraphicsLayoutItem', 'PySide2.QtCore.Qt.Corner', 'PySide2.QtWidgets.QGraphicsLayoutItem', 'PySide2.QtCore.Qt.Corner'),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.anchor": ('PySide2.QtWidgets.QGraphicsLayoutItem', 'PySide2.QtCore.Qt.AnchorPoint', 'PySide2.QtWidgets.QGraphicsLayoutItem', 'PySide2.QtCore.Qt.AnchorPoint'),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.count": (),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.horizontalSpacing": (),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.invalidate": (),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.itemAt": ('int',),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.removeAt": ('int',),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.setGeometry": ('PySide2.QtCore.QRectF',),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.setHorizontalSpacing": ('float',),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.setSpacing": ('float',),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.setVerticalSpacing": ('float',),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.sizeHint": ('PySide2.QtCore.Qt.SizeHint', 'PySide2.QtCore.QSizeF'),
- "PySide2.QtWidgets.QGraphicsAnchorLayout.verticalSpacing": (),
-# class PySide2.QtWidgets.QGraphicsBlurEffect:
-# class PySide2.QtWidgets.QGraphicsBlurEffect.BlurHint:
-# class PySide2.QtWidgets.QGraphicsBlurEffect.BlurHints:
- "PySide2.QtWidgets.QGraphicsBlurEffect.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGraphicsBlurEffect.blurHints": (),
- "PySide2.QtWidgets.QGraphicsBlurEffect.blurRadius": (),
- "PySide2.QtWidgets.QGraphicsBlurEffect.boundingRectFor": ('PySide2.QtCore.QRectF',),
- "PySide2.QtWidgets.QGraphicsBlurEffect.draw": ('PySide2.QtGui.QPainter',),
- "PySide2.QtWidgets.QGraphicsBlurEffect.setBlurHints": ('PySide2.QtWidgets.QGraphicsBlurEffect.BlurHints',),
- "PySide2.QtWidgets.QGraphicsBlurEffect.setBlurRadius": ('float',),
-# class PySide2.QtWidgets.QGraphicsColorizeEffect:
- "PySide2.QtWidgets.QGraphicsColorizeEffect.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGraphicsColorizeEffect.color": (),
- "PySide2.QtWidgets.QGraphicsColorizeEffect.draw": ('PySide2.QtGui.QPainter',),
- "PySide2.QtWidgets.QGraphicsColorizeEffect.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QGraphicsColorizeEffect.setStrength": ('float',),
- "PySide2.QtWidgets.QGraphicsColorizeEffect.strength": (),
-# class PySide2.QtWidgets.QGraphicsDropShadowEffect:
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.blurRadius": (),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.boundingRectFor": ('PySide2.QtCore.QRectF',),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.color": (),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.draw": ('PySide2.QtGui.QPainter',),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.offset": (),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.setBlurRadius": ('float',),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.setOffset": [('PySide2.QtCore.QPointF',), ('float',), ('float', 'float')],
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.setXOffset": ('float',),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.setYOffset": ('float',),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.xOffset": (),
- "PySide2.QtWidgets.QGraphicsDropShadowEffect.yOffset": (),
-# class PySide2.QtWidgets.QGraphicsEffect:
-# class PySide2.QtWidgets.QGraphicsEffect.ChangeFlag:
-# class PySide2.QtWidgets.QGraphicsEffect.ChangeFlags:
-# class PySide2.QtWidgets.QGraphicsEffect.PixmapPadMode:
- "PySide2.QtWidgets.QGraphicsEffect.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGraphicsEffect.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsEffect.boundingRectFor": ('PySide2.QtCore.QRectF',),
- "PySide2.QtWidgets.QGraphicsEffect.draw": ('PySide2.QtGui.QPainter',),
- "PySide2.QtWidgets.QGraphicsEffect.drawSource": ('PySide2.QtGui.QPainter',),
- "PySide2.QtWidgets.QGraphicsEffect.isEnabled": (),
- "PySide2.QtWidgets.QGraphicsEffect.setEnabled": ('bool',),
- "PySide2.QtWidgets.QGraphicsEffect.sourceBoundingRect": ('PySide2.QtCore.Qt.CoordinateSystem',),
- "PySide2.QtWidgets.QGraphicsEffect.sourceChanged": ('PySide2.QtWidgets.QGraphicsEffect.ChangeFlags',),
- "PySide2.QtWidgets.QGraphicsEffect.sourceIsPixmap": (),
- "PySide2.QtWidgets.QGraphicsEffect.sourcePixmap": ('PySide2.QtCore.Qt.CoordinateSystem', 'PySide2.QtCore.QPoint', 'PySide2.QtWidgets.QGraphicsEffect.PixmapPadMode'),
- "PySide2.QtWidgets.QGraphicsEffect.update": (),
- "PySide2.QtWidgets.QGraphicsEffect.updateBoundingRect": (),
-# class PySide2.QtWidgets.QGraphicsEllipseItem:
- "PySide2.QtWidgets.QGraphicsEllipseItem.__init__": [('PySide2.QtCore.QRectF', 'PySide2.QtWidgets.QGraphicsItem'), ('PySide2.QtWidgets.QGraphicsItem',), ('float', 'float', 'float', 'float', 'PySide2.QtWidgets.QGraphicsItem')],
- "PySide2.QtWidgets.QGraphicsEllipseItem.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsEllipseItem.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsEllipseItem.extension": ('typing.Any',),
- "PySide2.QtWidgets.QGraphicsEllipseItem.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsEllipseItem.opaqueArea": (),
- "PySide2.QtWidgets.QGraphicsEllipseItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsEllipseItem.rect": (),
- "PySide2.QtWidgets.QGraphicsEllipseItem.setRect": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsEllipseItem.setSpanAngle": ('int',),
- "PySide2.QtWidgets.QGraphicsEllipseItem.setStartAngle": ('int',),
- "PySide2.QtWidgets.QGraphicsEllipseItem.shape": (),
- "PySide2.QtWidgets.QGraphicsEllipseItem.spanAngle": (),
- "PySide2.QtWidgets.QGraphicsEllipseItem.startAngle": (),
- "PySide2.QtWidgets.QGraphicsEllipseItem.type": (),
-# class PySide2.QtWidgets.QGraphicsGridLayout:
- "PySide2.QtWidgets.QGraphicsGridLayout.__init__": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
- "PySide2.QtWidgets.QGraphicsGridLayout.addItem": [('PySide2.QtWidgets.QGraphicsLayoutItem', 'int', 'int', 'PySide2.QtCore.Qt.Alignment'), ('PySide2.QtWidgets.QGraphicsLayoutItem', 'int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.Alignment')],
- "PySide2.QtWidgets.QGraphicsGridLayout.alignment": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
- "PySide2.QtWidgets.QGraphicsGridLayout.columnAlignment": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.columnCount": (),
- "PySide2.QtWidgets.QGraphicsGridLayout.columnMaximumWidth": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.columnMinimumWidth": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.columnPreferredWidth": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.columnSpacing": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.columnStretchFactor": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.count": (),
- "PySide2.QtWidgets.QGraphicsGridLayout.horizontalSpacing": (),
- "PySide2.QtWidgets.QGraphicsGridLayout.invalidate": (),
- "PySide2.QtWidgets.QGraphicsGridLayout.itemAt": [('int',), ('int', 'int')],
- "PySide2.QtWidgets.QGraphicsGridLayout.removeAt": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.removeItem": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
- "PySide2.QtWidgets.QGraphicsGridLayout.rowAlignment": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.rowCount": (),
- "PySide2.QtWidgets.QGraphicsGridLayout.rowMaximumHeight": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.rowMinimumHeight": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.rowPreferredHeight": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.rowSpacing": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.rowStretchFactor": ('int',),
- "PySide2.QtWidgets.QGraphicsGridLayout.setAlignment": ('PySide2.QtWidgets.QGraphicsLayoutItem', 'PySide2.QtCore.Qt.Alignment'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setColumnAlignment": ('int', 'PySide2.QtCore.Qt.Alignment'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setColumnFixedWidth": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setColumnMaximumWidth": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setColumnMinimumWidth": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setColumnPreferredWidth": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setColumnSpacing": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setColumnStretchFactor": ('int', 'int'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setGeometry": ('PySide2.QtCore.QRectF',),
- "PySide2.QtWidgets.QGraphicsGridLayout.setHorizontalSpacing": ('float',),
- "PySide2.QtWidgets.QGraphicsGridLayout.setRowAlignment": ('int', 'PySide2.QtCore.Qt.Alignment'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setRowFixedHeight": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setRowMaximumHeight": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setRowMinimumHeight": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setRowPreferredHeight": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setRowSpacing": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setRowStretchFactor": ('int', 'int'),
- "PySide2.QtWidgets.QGraphicsGridLayout.setSpacing": ('float',),
- "PySide2.QtWidgets.QGraphicsGridLayout.setVerticalSpacing": ('float',),
- "PySide2.QtWidgets.QGraphicsGridLayout.sizeHint": ('PySide2.QtCore.Qt.SizeHint', 'PySide2.QtCore.QSizeF'),
- "PySide2.QtWidgets.QGraphicsGridLayout.verticalSpacing": (),
-# class PySide2.QtWidgets.QGraphicsItem:
-# class PySide2.QtWidgets.QGraphicsItem.CacheMode:
-# class PySide2.QtWidgets.QGraphicsItem.Extension:
-# class PySide2.QtWidgets.QGraphicsItem.GraphicsItemChange:
-# class PySide2.QtWidgets.QGraphicsItem.GraphicsItemFlag:
-# class PySide2.QtWidgets.QGraphicsItem.GraphicsItemFlags:
-# class PySide2.QtWidgets.QGraphicsItem.PanelModality:
- "PySide2.QtWidgets.QGraphicsItem.__init__": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.acceptDrops": (),
- "PySide2.QtWidgets.QGraphicsItem.acceptHoverEvents": (),
- "PySide2.QtWidgets.QGraphicsItem.acceptTouchEvents": (),
- "PySide2.QtWidgets.QGraphicsItem.acceptedMouseButtons": (),
- "PySide2.QtWidgets.QGraphicsItem.addToIndex": (),
- "PySide2.QtWidgets.QGraphicsItem.advance": ('int',),
- "PySide2.QtWidgets.QGraphicsItem.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsItem.boundingRegion": ('PySide2.QtGui.QTransform',),
- "PySide2.QtWidgets.QGraphicsItem.boundingRegionGranularity": (),
- "PySide2.QtWidgets.QGraphicsItem.cacheMode": (),
- "PySide2.QtWidgets.QGraphicsItem.childItems": (),
- "PySide2.QtWidgets.QGraphicsItem.childrenBoundingRect": (),
- "PySide2.QtWidgets.QGraphicsItem.clearFocus": (),
- "PySide2.QtWidgets.QGraphicsItem.clipPath": (),
- "PySide2.QtWidgets.QGraphicsItem.collidesWithItem": ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.Qt.ItemSelectionMode'),
- "PySide2.QtWidgets.QGraphicsItem.collidesWithPath": ('PySide2.QtGui.QPainterPath', 'PySide2.QtCore.Qt.ItemSelectionMode'),
- "PySide2.QtWidgets.QGraphicsItem.collidingItems": ('PySide2.QtCore.Qt.ItemSelectionMode',),
- "PySide2.QtWidgets.QGraphicsItem.commonAncestorItem": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsItem.contextMenuEvent": ('PySide2.QtWidgets.QGraphicsSceneContextMenuEvent',),
- "PySide2.QtWidgets.QGraphicsItem.cursor": (),
- "PySide2.QtWidgets.QGraphicsItem.data": ('int',),
- "PySide2.QtWidgets.QGraphicsItem.deviceTransform": ('PySide2.QtGui.QTransform',),
- "PySide2.QtWidgets.QGraphicsItem.dragEnterEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsItem.dragLeaveEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsItem.dragMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsItem.dropEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsItem.effectiveOpacity": (),
- "PySide2.QtWidgets.QGraphicsItem.ensureVisible": [('PySide2.QtCore.QRectF', 'int', 'int'), ('float', 'float', 'float', 'float', 'int', 'int')],
- "PySide2.QtWidgets.QGraphicsItem.extension": ('typing.Any',),
- "PySide2.QtWidgets.QGraphicsItem.filtersChildEvents": (),
- "PySide2.QtWidgets.QGraphicsItem.flags": (),
- "PySide2.QtWidgets.QGraphicsItem.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsItem.focusItem": (),
- "PySide2.QtWidgets.QGraphicsItem.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsItem.focusProxy": (),
- "PySide2.QtWidgets.QGraphicsItem.focusScopeItem": (),
- "PySide2.QtWidgets.QGraphicsItem.grabKeyboard": (),
- "PySide2.QtWidgets.QGraphicsItem.grabMouse": (),
- "PySide2.QtWidgets.QGraphicsItem.graphicsEffect": (),
- "PySide2.QtWidgets.QGraphicsItem.group": (),
- "PySide2.QtWidgets.QGraphicsItem.handlesChildEvents": (),
- "PySide2.QtWidgets.QGraphicsItem.hasCursor": (),
- "PySide2.QtWidgets.QGraphicsItem.hasFocus": (),
- "PySide2.QtWidgets.QGraphicsItem.hide": (),
- "PySide2.QtWidgets.QGraphicsItem.hoverEnterEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsItem.hoverLeaveEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsItem.hoverMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsItem.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QGraphicsItem.inputMethodHints": (),
- "PySide2.QtWidgets.QGraphicsItem.inputMethodQuery": ('PySide2.QtCore.Qt.InputMethodQuery',),
- "PySide2.QtWidgets.QGraphicsItem.installSceneEventFilter": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.isActive": (),
- "PySide2.QtWidgets.QGraphicsItem.isAncestorOf": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.isBlockedByModalPanel": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.isClipped": (),
- "PySide2.QtWidgets.QGraphicsItem.isEnabled": (),
- "PySide2.QtWidgets.QGraphicsItem.isObscured": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.isPanel": (),
- "PySide2.QtWidgets.QGraphicsItem.isSelected": (),
- "PySide2.QtWidgets.QGraphicsItem.isUnderMouse": (),
- "PySide2.QtWidgets.QGraphicsItem.isVisible": (),
- "PySide2.QtWidgets.QGraphicsItem.isVisibleTo": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.isWidget": (),
- "PySide2.QtWidgets.QGraphicsItem.isWindow": (),
- "PySide2.QtWidgets.QGraphicsItem.itemChange": ('PySide2.QtWidgets.QGraphicsItem.GraphicsItemChange', 'typing.Any'),
- "PySide2.QtWidgets.QGraphicsItem.itemTransform": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QGraphicsItem.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QGraphicsItem.mapFromItem": [('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.QPointF'), ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.QRectF'), ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtGui.QPainterPath'), ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtGui.QPolygonF'), ('PySide2.QtWidgets.QGraphicsItem', 'float', 'float'), ('PySide2.QtWidgets.QGraphicsItem', 'float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapFromParent": [('PySide2.QtCore.QPointF',), ('PySide2.QtCore.QRectF',), ('PySide2.QtGui.QPainterPath',), ('PySide2.QtGui.QPolygonF',), ('float', 'float'), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapFromScene": [('PySide2.QtCore.QPointF',), ('PySide2.QtCore.QRectF',), ('PySide2.QtGui.QPainterPath',), ('PySide2.QtGui.QPolygonF',), ('float', 'float'), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapRectFromItem": [('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.QRectF'), ('PySide2.QtWidgets.QGraphicsItem', 'float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapRectFromParent": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapRectFromScene": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapRectToItem": [('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.QRectF'), ('PySide2.QtWidgets.QGraphicsItem', 'float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapRectToParent": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapRectToScene": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapToItem": [('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.QPointF'), ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.QRectF'), ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtGui.QPainterPath'), ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtGui.QPolygonF'), ('PySide2.QtWidgets.QGraphicsItem', 'float', 'float'), ('PySide2.QtWidgets.QGraphicsItem', 'float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapToParent": [('PySide2.QtCore.QPointF',), ('PySide2.QtCore.QRectF',), ('PySide2.QtGui.QPainterPath',), ('PySide2.QtGui.QPolygonF',), ('float', 'float'), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.mapToScene": [('PySide2.QtCore.QPointF',), ('PySide2.QtCore.QRectF',), ('PySide2.QtGui.QPainterPath',), ('PySide2.QtGui.QPolygonF',), ('float', 'float'), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.matrix": (),
- "PySide2.QtWidgets.QGraphicsItem.mouseDoubleClickEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsItem.mouseMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsItem.mousePressEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsItem.mouseReleaseEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsItem.moveBy": ('float', 'float'),
- "PySide2.QtWidgets.QGraphicsItem.opacity": (),
- "PySide2.QtWidgets.QGraphicsItem.opaqueArea": (),
- "PySide2.QtWidgets.QGraphicsItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsItem.panel": (),
- "PySide2.QtWidgets.QGraphicsItem.panelModality": (),
- "PySide2.QtWidgets.QGraphicsItem.parentItem": (),
- "PySide2.QtWidgets.QGraphicsItem.parentObject": (),
- "PySide2.QtWidgets.QGraphicsItem.parentWidget": (),
- "PySide2.QtWidgets.QGraphicsItem.pos": (),
- "PySide2.QtWidgets.QGraphicsItem.prepareGeometryChange": (),
- "PySide2.QtWidgets.QGraphicsItem.removeFromIndex": (),
- "PySide2.QtWidgets.QGraphicsItem.removeSceneEventFilter": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.resetMatrix": (),
- "PySide2.QtWidgets.QGraphicsItem.resetTransform": (),
- "PySide2.QtWidgets.QGraphicsItem.rotation": (),
- "PySide2.QtWidgets.QGraphicsItem.scale": (),
- "PySide2.QtWidgets.QGraphicsItem.scene": (),
- "PySide2.QtWidgets.QGraphicsItem.sceneBoundingRect": (),
- "PySide2.QtWidgets.QGraphicsItem.sceneEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsItem.sceneEventFilter": ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QGraphicsItem.sceneMatrix": (),
- "PySide2.QtWidgets.QGraphicsItem.scenePos": (),
- "PySide2.QtWidgets.QGraphicsItem.sceneTransform": (),
- "PySide2.QtWidgets.QGraphicsItem.scroll": ('float', 'float', 'PySide2.QtCore.QRectF'),
- "PySide2.QtWidgets.QGraphicsItem.setAcceptDrops": ('bool',),
- "PySide2.QtWidgets.QGraphicsItem.setAcceptHoverEvents": ('bool',),
- "PySide2.QtWidgets.QGraphicsItem.setAcceptTouchEvents": ('bool',),
- "PySide2.QtWidgets.QGraphicsItem.setAcceptedMouseButtons": ('PySide2.QtCore.Qt.MouseButtons',),
- "PySide2.QtWidgets.QGraphicsItem.setActive": ('bool',),
- "PySide2.QtWidgets.QGraphicsItem.setBoundingRegionGranularity": ('float',),
- "PySide2.QtWidgets.QGraphicsItem.setCacheMode": ('PySide2.QtWidgets.QGraphicsItem.CacheMode', 'PySide2.QtCore.QSize'),
- "PySide2.QtWidgets.QGraphicsItem.setCursor": ('PySide2.QtGui.QCursor',),
- "PySide2.QtWidgets.QGraphicsItem.setData": ('int', 'typing.Any'),
- "PySide2.QtWidgets.QGraphicsItem.setEnabled": ('bool',),
- "PySide2.QtWidgets.QGraphicsItem.setFiltersChildEvents": ('bool',),
- "PySide2.QtWidgets.QGraphicsItem.setFlag": ('PySide2.QtWidgets.QGraphicsItem.GraphicsItemFlag', 'bool'),
- "PySide2.QtWidgets.QGraphicsItem.setFlags": ('PySide2.QtWidgets.QGraphicsItem.GraphicsItemFlags',),
- "PySide2.QtWidgets.QGraphicsItem.setFocus": ('PySide2.QtCore.Qt.FocusReason',),
- "PySide2.QtWidgets.QGraphicsItem.setFocusProxy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.setGraphicsEffect": ('PySide2.QtWidgets.QGraphicsEffect',),
- "PySide2.QtWidgets.QGraphicsItem.setGroup": ('PySide2.QtWidgets.QGraphicsItemGroup',),
- "PySide2.QtWidgets.QGraphicsItem.setHandlesChildEvents": ('bool',),
- "PySide2.QtWidgets.QGraphicsItem.setInputMethodHints": ('PySide2.QtCore.Qt.InputMethodHints',),
- "PySide2.QtWidgets.QGraphicsItem.setMatrix": ('PySide2.QtGui.QMatrix', 'bool'),
- "PySide2.QtWidgets.QGraphicsItem.setOpacity": ('float',),
- "PySide2.QtWidgets.QGraphicsItem.setPanelModality": ('PySide2.QtWidgets.QGraphicsItem.PanelModality',),
- "PySide2.QtWidgets.QGraphicsItem.setParentItem": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.setPos": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.setRotation": ('float',),
- "PySide2.QtWidgets.QGraphicsItem.setScale": ('float',),
- "PySide2.QtWidgets.QGraphicsItem.setSelected": ('bool',),
- "PySide2.QtWidgets.QGraphicsItem.setToolTip": ('str',),
- "PySide2.QtWidgets.QGraphicsItem.setTransform": ('PySide2.QtGui.QTransform', 'bool'),
- "PySide2.QtWidgets.QGraphicsItem.setTransformOriginPoint": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.setTransformations": ('typing.Sequence[PySide2.QtWidgets.QGraphicsTransform]',),
- "PySide2.QtWidgets.QGraphicsItem.setVisible": ('bool',),
- "PySide2.QtWidgets.QGraphicsItem.setX": ('float',),
- "PySide2.QtWidgets.QGraphicsItem.setY": ('float',),
- "PySide2.QtWidgets.QGraphicsItem.setZValue": ('float',),
- "PySide2.QtWidgets.QGraphicsItem.shape": (),
- "PySide2.QtWidgets.QGraphicsItem.show": (),
- "PySide2.QtWidgets.QGraphicsItem.stackBefore": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItem.toGraphicsObject": (),
- "PySide2.QtWidgets.QGraphicsItem.toolTip": (),
- "PySide2.QtWidgets.QGraphicsItem.topLevelItem": (),
- "PySide2.QtWidgets.QGraphicsItem.topLevelWidget": (),
- "PySide2.QtWidgets.QGraphicsItem.transform": (),
- "PySide2.QtWidgets.QGraphicsItem.transformOriginPoint": (),
- "PySide2.QtWidgets.QGraphicsItem.transformations": (),
- "PySide2.QtWidgets.QGraphicsItem.type": (),
- "PySide2.QtWidgets.QGraphicsItem.ungrabKeyboard": (),
- "PySide2.QtWidgets.QGraphicsItem.ungrabMouse": (),
- "PySide2.QtWidgets.QGraphicsItem.unsetCursor": (),
- "PySide2.QtWidgets.QGraphicsItem.update": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsItem.updateMicroFocus": (),
- "PySide2.QtWidgets.QGraphicsItem.wheelEvent": ('PySide2.QtWidgets.QGraphicsSceneWheelEvent',),
- "PySide2.QtWidgets.QGraphicsItem.window": (),
- "PySide2.QtWidgets.QGraphicsItem.x": (),
- "PySide2.QtWidgets.QGraphicsItem.y": (),
- "PySide2.QtWidgets.QGraphicsItem.zValue": (),
-# class PySide2.QtWidgets.QGraphicsItemAnimation:
- "PySide2.QtWidgets.QGraphicsItemAnimation.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.afterAnimationStep": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.beforeAnimationStep": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.clear": (),
- "PySide2.QtWidgets.QGraphicsItemAnimation.horizontalScaleAt": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.horizontalShearAt": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.item": (),
- "PySide2.QtWidgets.QGraphicsItemAnimation.matrixAt": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.posAt": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.posList": (),
- "PySide2.QtWidgets.QGraphicsItemAnimation.reset": (),
- "PySide2.QtWidgets.QGraphicsItemAnimation.rotationAt": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.rotationList": (),
- "PySide2.QtWidgets.QGraphicsItemAnimation.scaleList": (),
- "PySide2.QtWidgets.QGraphicsItemAnimation.setItem": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.setPosAt": ('float', 'PySide2.QtCore.QPointF'),
- "PySide2.QtWidgets.QGraphicsItemAnimation.setRotationAt": ('float', 'float'),
- "PySide2.QtWidgets.QGraphicsItemAnimation.setScaleAt": ('float', 'float', 'float'),
- "PySide2.QtWidgets.QGraphicsItemAnimation.setShearAt": ('float', 'float', 'float'),
- "PySide2.QtWidgets.QGraphicsItemAnimation.setStep": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.setTimeLine": ('PySide2.QtCore.QTimeLine',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.setTranslationAt": ('float', 'float', 'float'),
- "PySide2.QtWidgets.QGraphicsItemAnimation.shearList": (),
- "PySide2.QtWidgets.QGraphicsItemAnimation.timeLine": (),
- "PySide2.QtWidgets.QGraphicsItemAnimation.transformAt": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.translationList": (),
- "PySide2.QtWidgets.QGraphicsItemAnimation.verticalScaleAt": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.verticalShearAt": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.xTranslationAt": ('float',),
- "PySide2.QtWidgets.QGraphicsItemAnimation.yTranslationAt": ('float',),
-# class PySide2.QtWidgets.QGraphicsItemGroup:
- "PySide2.QtWidgets.QGraphicsItemGroup.__init__": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItemGroup.addToGroup": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItemGroup.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsItemGroup.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItemGroup.opaqueArea": (),
- "PySide2.QtWidgets.QGraphicsItemGroup.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsItemGroup.removeFromGroup": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsItemGroup.type": (),
-# class PySide2.QtWidgets.QGraphicsLayout:
- "PySide2.QtWidgets.QGraphicsLayout.__init__": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
- "PySide2.QtWidgets.QGraphicsLayout.activate": (),
- "PySide2.QtWidgets.QGraphicsLayout.addChildLayoutItem": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
- "PySide2.QtWidgets.QGraphicsLayout.count": (),
- "PySide2.QtWidgets.QGraphicsLayout.getContentsMargins": (),
- "PySide2.QtWidgets.QGraphicsLayout.instantInvalidatePropagation": (),
- "PySide2.QtWidgets.QGraphicsLayout.invalidate": (),
- "PySide2.QtWidgets.QGraphicsLayout.isActivated": (),
- "PySide2.QtWidgets.QGraphicsLayout.itemAt": ('int',),
- "PySide2.QtWidgets.QGraphicsLayout.removeAt": ('int',),
- "PySide2.QtWidgets.QGraphicsLayout.setContentsMargins": ('float', 'float', 'float', 'float'),
- "PySide2.QtWidgets.QGraphicsLayout.setInstantInvalidatePropagation": ('bool',),
- "PySide2.QtWidgets.QGraphicsLayout.updateGeometry": (),
- "PySide2.QtWidgets.QGraphicsLayout.widgetEvent": ('PySide2.QtCore.QEvent',),
-# class PySide2.QtWidgets.QGraphicsLayoutItem:
- "PySide2.QtWidgets.QGraphicsLayoutItem.__init__": ('PySide2.QtWidgets.QGraphicsLayoutItem', 'bool'),
- "PySide2.QtWidgets.QGraphicsLayoutItem.contentsRect": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.effectiveSizeHint": ('PySide2.QtCore.Qt.SizeHint', 'PySide2.QtCore.QSizeF'),
- "PySide2.QtWidgets.QGraphicsLayoutItem.geometry": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.getContentsMargins": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.graphicsItem": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.isLayout": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.maximumHeight": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.maximumSize": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.maximumWidth": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.minimumHeight": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.minimumSize": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.minimumWidth": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.ownedByLayout": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.parentLayoutItem": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.preferredHeight": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.preferredSize": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.preferredWidth": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setGeometry": ('PySide2.QtCore.QRectF',),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setGraphicsItem": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setMaximumHeight": ('float',),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setMaximumSize": [('PySide2.QtCore.QSizeF',), ('float', 'float')],
- "PySide2.QtWidgets.QGraphicsLayoutItem.setMaximumWidth": ('float',),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setMinimumHeight": ('float',),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setMinimumSize": [('PySide2.QtCore.QSizeF',), ('float', 'float')],
- "PySide2.QtWidgets.QGraphicsLayoutItem.setMinimumWidth": ('float',),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setOwnedByLayout": ('bool',),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setParentLayoutItem": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setPreferredHeight": ('float',),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setPreferredSize": [('PySide2.QtCore.QSizeF',), ('float', 'float')],
- "PySide2.QtWidgets.QGraphicsLayoutItem.setPreferredWidth": ('float',),
- "PySide2.QtWidgets.QGraphicsLayoutItem.setSizePolicy": [('PySide2.QtWidgets.QSizePolicy',), ('PySide2.QtWidgets.QSizePolicy.Policy', 'PySide2.QtWidgets.QSizePolicy.Policy', 'PySide2.QtWidgets.QSizePolicy.ControlType')],
- "PySide2.QtWidgets.QGraphicsLayoutItem.sizeHint": ('PySide2.QtCore.Qt.SizeHint', 'PySide2.QtCore.QSizeF'),
- "PySide2.QtWidgets.QGraphicsLayoutItem.sizePolicy": (),
- "PySide2.QtWidgets.QGraphicsLayoutItem.updateGeometry": (),
-# class PySide2.QtWidgets.QGraphicsLineItem:
- "PySide2.QtWidgets.QGraphicsLineItem.__init__": [('PySide2.QtCore.QLineF', 'PySide2.QtWidgets.QGraphicsItem'), ('PySide2.QtWidgets.QGraphicsItem',), ('float', 'float', 'float', 'float', 'PySide2.QtWidgets.QGraphicsItem')],
- "PySide2.QtWidgets.QGraphicsLineItem.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsLineItem.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsLineItem.extension": ('typing.Any',),
- "PySide2.QtWidgets.QGraphicsLineItem.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsLineItem.line": (),
- "PySide2.QtWidgets.QGraphicsLineItem.opaqueArea": (),
- "PySide2.QtWidgets.QGraphicsLineItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsLineItem.pen": (),
- "PySide2.QtWidgets.QGraphicsLineItem.setLine": [('PySide2.QtCore.QLineF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsLineItem.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtWidgets.QGraphicsLineItem.shape": (),
- "PySide2.QtWidgets.QGraphicsLineItem.type": (),
-# class PySide2.QtWidgets.QGraphicsLinearLayout:
- "PySide2.QtWidgets.QGraphicsLinearLayout.__init__": [('PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QGraphicsLayoutItem'), ('PySide2.QtWidgets.QGraphicsLayoutItem',)],
- "PySide2.QtWidgets.QGraphicsLinearLayout.addItem": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.addStretch": ('int',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.alignment": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.count": (),
- "PySide2.QtWidgets.QGraphicsLinearLayout.dump": ('int',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.insertItem": ('int', 'PySide2.QtWidgets.QGraphicsLayoutItem'),
- "PySide2.QtWidgets.QGraphicsLinearLayout.insertStretch": ('int', 'int'),
- "PySide2.QtWidgets.QGraphicsLinearLayout.invalidate": (),
- "PySide2.QtWidgets.QGraphicsLinearLayout.itemAt": ('int',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.itemSpacing": ('int',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.orientation": (),
- "PySide2.QtWidgets.QGraphicsLinearLayout.removeAt": ('int',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.removeItem": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.setAlignment": ('PySide2.QtWidgets.QGraphicsLayoutItem', 'PySide2.QtCore.Qt.Alignment'),
- "PySide2.QtWidgets.QGraphicsLinearLayout.setGeometry": ('PySide2.QtCore.QRectF',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.setItemSpacing": ('int', 'float'),
- "PySide2.QtWidgets.QGraphicsLinearLayout.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.setSpacing": ('float',),
- "PySide2.QtWidgets.QGraphicsLinearLayout.setStretchFactor": ('PySide2.QtWidgets.QGraphicsLayoutItem', 'int'),
- "PySide2.QtWidgets.QGraphicsLinearLayout.sizeHint": ('PySide2.QtCore.Qt.SizeHint', 'PySide2.QtCore.QSizeF'),
- "PySide2.QtWidgets.QGraphicsLinearLayout.spacing": (),
- "PySide2.QtWidgets.QGraphicsLinearLayout.stretchFactor": ('PySide2.QtWidgets.QGraphicsLayoutItem',),
-# class PySide2.QtWidgets.QGraphicsObject:
- "PySide2.QtWidgets.QGraphicsObject.__init__": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsObject.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsObject.grabGesture": ('PySide2.QtCore.Qt.GestureType', 'PySide2.QtCore.Qt.GestureFlags'),
- "PySide2.QtWidgets.QGraphicsObject.ungrabGesture": ('PySide2.QtCore.Qt.GestureType',),
- "PySide2.QtWidgets.QGraphicsObject.updateMicroFocus": (),
-# class PySide2.QtWidgets.QGraphicsOpacityEffect:
- "PySide2.QtWidgets.QGraphicsOpacityEffect.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGraphicsOpacityEffect.draw": ('PySide2.QtGui.QPainter',),
- "PySide2.QtWidgets.QGraphicsOpacityEffect.opacity": (),
- "PySide2.QtWidgets.QGraphicsOpacityEffect.opacityMask": (),
- "PySide2.QtWidgets.QGraphicsOpacityEffect.setOpacity": ('float',),
- "PySide2.QtWidgets.QGraphicsOpacityEffect.setOpacityMask": ('PySide2.QtGui.QBrush',),
-# class PySide2.QtWidgets.QGraphicsPathItem:
- "PySide2.QtWidgets.QGraphicsPathItem.__init__": [('PySide2.QtGui.QPainterPath', 'PySide2.QtWidgets.QGraphicsItem'), ('PySide2.QtWidgets.QGraphicsItem',)],
- "PySide2.QtWidgets.QGraphicsPathItem.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsPathItem.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsPathItem.extension": ('typing.Any',),
- "PySide2.QtWidgets.QGraphicsPathItem.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsPathItem.opaqueArea": (),
- "PySide2.QtWidgets.QGraphicsPathItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsPathItem.path": (),
- "PySide2.QtWidgets.QGraphicsPathItem.setPath": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtWidgets.QGraphicsPathItem.shape": (),
- "PySide2.QtWidgets.QGraphicsPathItem.type": (),
-# class PySide2.QtWidgets.QGraphicsPixmapItem:
-# class PySide2.QtWidgets.QGraphicsPixmapItem.ShapeMode:
- "PySide2.QtWidgets.QGraphicsPixmapItem.__init__": [('PySide2.QtGui.QPixmap', 'PySide2.QtWidgets.QGraphicsItem'), ('PySide2.QtWidgets.QGraphicsItem',)],
- "PySide2.QtWidgets.QGraphicsPixmapItem.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsPixmapItem.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsPixmapItem.extension": ('typing.Any',),
- "PySide2.QtWidgets.QGraphicsPixmapItem.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsPixmapItem.offset": (),
- "PySide2.QtWidgets.QGraphicsPixmapItem.opaqueArea": (),
- "PySide2.QtWidgets.QGraphicsPixmapItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsPixmapItem.pixmap": (),
- "PySide2.QtWidgets.QGraphicsPixmapItem.setOffset": [('PySide2.QtCore.QPointF',), ('float', 'float')],
- "PySide2.QtWidgets.QGraphicsPixmapItem.setPixmap": ('PySide2.QtGui.QPixmap',),
- "PySide2.QtWidgets.QGraphicsPixmapItem.setShapeMode": ('PySide2.QtWidgets.QGraphicsPixmapItem.ShapeMode',),
- "PySide2.QtWidgets.QGraphicsPixmapItem.setTransformationMode": ('PySide2.QtCore.Qt.TransformationMode',),
- "PySide2.QtWidgets.QGraphicsPixmapItem.shape": (),
- "PySide2.QtWidgets.QGraphicsPixmapItem.shapeMode": (),
- "PySide2.QtWidgets.QGraphicsPixmapItem.transformationMode": (),
- "PySide2.QtWidgets.QGraphicsPixmapItem.type": (),
-# class PySide2.QtWidgets.QGraphicsPolygonItem:
- "PySide2.QtWidgets.QGraphicsPolygonItem.__init__": [('PySide2.QtGui.QPolygonF', 'PySide2.QtWidgets.QGraphicsItem'), ('PySide2.QtWidgets.QGraphicsItem',)],
- "PySide2.QtWidgets.QGraphicsPolygonItem.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsPolygonItem.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsPolygonItem.extension": ('typing.Any',),
- "PySide2.QtWidgets.QGraphicsPolygonItem.fillRule": (),
- "PySide2.QtWidgets.QGraphicsPolygonItem.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsPolygonItem.opaqueArea": (),
- "PySide2.QtWidgets.QGraphicsPolygonItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsPolygonItem.polygon": (),
- "PySide2.QtWidgets.QGraphicsPolygonItem.setFillRule": ('PySide2.QtCore.Qt.FillRule',),
- "PySide2.QtWidgets.QGraphicsPolygonItem.setPolygon": ('PySide2.QtGui.QPolygonF',),
- "PySide2.QtWidgets.QGraphicsPolygonItem.shape": (),
- "PySide2.QtWidgets.QGraphicsPolygonItem.type": (),
-# class PySide2.QtWidgets.QGraphicsProxyWidget:
- "PySide2.QtWidgets.QGraphicsProxyWidget.__init__": ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QGraphicsProxyWidget.contextMenuEvent": ('PySide2.QtWidgets.QGraphicsSceneContextMenuEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.createProxyForChildWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.dragEnterEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.dragLeaveEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.dragMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.dropEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QGraphicsProxyWidget.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.grabMouseEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.hoverEnterEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.hoverLeaveEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.hoverMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.inputMethodQuery": ('PySide2.QtCore.Qt.InputMethodQuery',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.itemChange": ('PySide2.QtWidgets.QGraphicsItem.GraphicsItemChange', 'typing.Any'),
- "PySide2.QtWidgets.QGraphicsProxyWidget.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.mouseDoubleClickEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.mouseMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.mousePressEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.mouseReleaseEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.newProxyWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsProxyWidget.resizeEvent": ('PySide2.QtWidgets.QGraphicsSceneResizeEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.setGeometry": ('PySide2.QtCore.QRectF',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.setWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.sizeHint": ('PySide2.QtCore.Qt.SizeHint', 'PySide2.QtCore.QSizeF'),
- "PySide2.QtWidgets.QGraphicsProxyWidget.subWidgetRect": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.type": (),
- "PySide2.QtWidgets.QGraphicsProxyWidget.ungrabMouseEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.wheelEvent": ('PySide2.QtWidgets.QGraphicsSceneWheelEvent',),
- "PySide2.QtWidgets.QGraphicsProxyWidget.widget": (),
-# class PySide2.QtWidgets.QGraphicsRectItem:
- "PySide2.QtWidgets.QGraphicsRectItem.__init__": [('PySide2.QtCore.QRectF', 'PySide2.QtWidgets.QGraphicsItem'), ('PySide2.QtWidgets.QGraphicsItem',), ('float', 'float', 'float', 'float', 'PySide2.QtWidgets.QGraphicsItem')],
- "PySide2.QtWidgets.QGraphicsRectItem.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsRectItem.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsRectItem.extension": ('typing.Any',),
- "PySide2.QtWidgets.QGraphicsRectItem.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsRectItem.opaqueArea": (),
- "PySide2.QtWidgets.QGraphicsRectItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsRectItem.rect": (),
- "PySide2.QtWidgets.QGraphicsRectItem.setRect": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsRectItem.shape": (),
- "PySide2.QtWidgets.QGraphicsRectItem.type": (),
-# class PySide2.QtWidgets.QGraphicsRotation:
- "PySide2.QtWidgets.QGraphicsRotation.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGraphicsRotation.angle": (),
- "PySide2.QtWidgets.QGraphicsRotation.applyTo": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtWidgets.QGraphicsRotation.axis": (),
- "PySide2.QtWidgets.QGraphicsRotation.origin": (),
- "PySide2.QtWidgets.QGraphicsRotation.setAngle": ('float',),
- "PySide2.QtWidgets.QGraphicsRotation.setAxis": [('PySide2.QtCore.Qt.Axis',), ('PySide2.QtGui.QVector3D',)],
- "PySide2.QtWidgets.QGraphicsRotation.setOrigin": ('PySide2.QtGui.QVector3D',),
-# class PySide2.QtWidgets.QGraphicsScale:
- "PySide2.QtWidgets.QGraphicsScale.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGraphicsScale.applyTo": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtWidgets.QGraphicsScale.origin": (),
- "PySide2.QtWidgets.QGraphicsScale.setOrigin": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtWidgets.QGraphicsScale.setXScale": ('float',),
- "PySide2.QtWidgets.QGraphicsScale.setYScale": ('float',),
- "PySide2.QtWidgets.QGraphicsScale.setZScale": ('float',),
- "PySide2.QtWidgets.QGraphicsScale.xScale": (),
- "PySide2.QtWidgets.QGraphicsScale.yScale": (),
- "PySide2.QtWidgets.QGraphicsScale.zScale": (),
-# class PySide2.QtWidgets.QGraphicsScene:
-# class PySide2.QtWidgets.QGraphicsScene.ItemIndexMethod:
-# class PySide2.QtWidgets.QGraphicsScene.SceneLayer:
-# class PySide2.QtWidgets.QGraphicsScene.SceneLayers:
- "PySide2.QtWidgets.QGraphicsScene.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtCore.QRectF', 'PySide2.QtCore.QObject'), ('float', 'float', 'float', 'float', 'PySide2.QtCore.QObject')],
- "PySide2.QtWidgets.QGraphicsScene.activePanel": (),
- "PySide2.QtWidgets.QGraphicsScene.activeWindow": (),
- "PySide2.QtWidgets.QGraphicsScene.addEllipse": [('PySide2.QtCore.QRectF', 'PySide2.QtGui.QPen', 'PySide2.QtGui.QBrush'), ('float', 'float', 'float', 'float', 'PySide2.QtGui.QPen', 'PySide2.QtGui.QBrush')],
- "PySide2.QtWidgets.QGraphicsScene.addItem": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsScene.addLine": [('PySide2.QtCore.QLineF', 'PySide2.QtGui.QPen'), ('float', 'float', 'float', 'float', 'PySide2.QtGui.QPen')],
- "PySide2.QtWidgets.QGraphicsScene.addPath": ('PySide2.QtGui.QPainterPath', 'PySide2.QtGui.QPen', 'PySide2.QtGui.QBrush'),
- "PySide2.QtWidgets.QGraphicsScene.addPixmap": ('PySide2.QtGui.QPixmap',),
- "PySide2.QtWidgets.QGraphicsScene.addPolygon": ('PySide2.QtGui.QPolygonF', 'PySide2.QtGui.QPen', 'PySide2.QtGui.QBrush'),
- "PySide2.QtWidgets.QGraphicsScene.addRect": [('PySide2.QtCore.QRectF', 'PySide2.QtGui.QPen', 'PySide2.QtGui.QBrush'), ('float', 'float', 'float', 'float', 'PySide2.QtGui.QPen', 'PySide2.QtGui.QBrush')],
- "PySide2.QtWidgets.QGraphicsScene.addSimpleText": ('str', 'PySide2.QtGui.QFont'),
- "PySide2.QtWidgets.QGraphicsScene.addText": ('str', 'PySide2.QtGui.QFont'),
- "PySide2.QtWidgets.QGraphicsScene.addWidget": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QGraphicsScene.advance": (),
- "PySide2.QtWidgets.QGraphicsScene.backgroundBrush": (),
- "PySide2.QtWidgets.QGraphicsScene.bspTreeDepth": (),
- "PySide2.QtWidgets.QGraphicsScene.clear": (),
- "PySide2.QtWidgets.QGraphicsScene.clearFocus": (),
- "PySide2.QtWidgets.QGraphicsScene.clearSelection": (),
- "PySide2.QtWidgets.QGraphicsScene.collidingItems": ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.Qt.ItemSelectionMode'),
- "PySide2.QtWidgets.QGraphicsScene.contextMenuEvent": ('PySide2.QtWidgets.QGraphicsSceneContextMenuEvent',),
- "PySide2.QtWidgets.QGraphicsScene.createItemGroup": ('typing.Sequence[PySide2.QtWidgets.QGraphicsItem]',),
- "PySide2.QtWidgets.QGraphicsScene.destroyItemGroup": ('PySide2.QtWidgets.QGraphicsItemGroup',),
- "PySide2.QtWidgets.QGraphicsScene.dragEnterEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsScene.dragLeaveEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsScene.dragMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsScene.drawBackground": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF'),
- "PySide2.QtWidgets.QGraphicsScene.drawForeground": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF'),
- "PySide2.QtWidgets.QGraphicsScene.dropEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsScene.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsScene.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QGraphicsScene.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsScene.focusItem": (),
- "PySide2.QtWidgets.QGraphicsScene.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QGraphicsScene.focusOnTouch": (),
- "PySide2.QtWidgets.QGraphicsScene.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsScene.font": (),
- "PySide2.QtWidgets.QGraphicsScene.foregroundBrush": (),
- "PySide2.QtWidgets.QGraphicsScene.hasFocus": (),
- "PySide2.QtWidgets.QGraphicsScene.height": (),
- "PySide2.QtWidgets.QGraphicsScene.helpEvent": ('PySide2.QtWidgets.QGraphicsSceneHelpEvent',),
- "PySide2.QtWidgets.QGraphicsScene.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QGraphicsScene.inputMethodQuery": ('PySide2.QtCore.Qt.InputMethodQuery',),
- "PySide2.QtWidgets.QGraphicsScene.invalidate": [('PySide2.QtCore.QRectF', 'PySide2.QtWidgets.QGraphicsScene.SceneLayers'), ('float', 'float', 'float', 'float', 'PySide2.QtWidgets.QGraphicsScene.SceneLayers')],
- "PySide2.QtWidgets.QGraphicsScene.isActive": (),
- "PySide2.QtWidgets.QGraphicsScene.isSortCacheEnabled": (),
- "PySide2.QtWidgets.QGraphicsScene.itemAt": [('PySide2.QtCore.QPointF', 'PySide2.QtGui.QTransform'), ('float', 'float', 'PySide2.QtGui.QTransform')],
- "PySide2.QtWidgets.QGraphicsScene.itemIndexMethod": (),
- "PySide2.QtWidgets.QGraphicsScene.items": [('PySide2.QtCore.QPointF', 'PySide2.QtCore.Qt.ItemSelectionMode', 'PySide2.QtCore.Qt.SortOrder', 'PySide2.QtGui.QTransform'), ('PySide2.QtCore.QRectF', 'PySide2.QtCore.Qt.ItemSelectionMode', 'PySide2.QtCore.Qt.SortOrder', 'PySide2.QtGui.QTransform'), ('PySide2.QtCore.Qt.SortOrder',), ('PySide2.QtGui.QPainterPath', 'PySide2.QtCore.Qt.ItemSelectionMode', 'PySide2.QtCore.Qt.SortOrder', 'PySide2.QtGui.QTransform'), ('PySide2.QtGui.QPolygonF', 'PySide2.QtCore.Qt.ItemSelectionMode', 'PySide2.QtCore.Qt.SortOrder', 'PySide2.QtGui.QTransform'), ('float', 'float', 'float', 'float', 'PySide2.QtCore.Qt.ItemSelectionMode', 'PySide2.QtCore.Qt.SortOrder', 'PySide2.QtGui.QTransform')],
- "PySide2.QtWidgets.QGraphicsScene.itemsBoundingRect": (),
- "PySide2.QtWidgets.QGraphicsScene.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QGraphicsScene.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QGraphicsScene.minimumRenderSize": (),
- "PySide2.QtWidgets.QGraphicsScene.mouseDoubleClickEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsScene.mouseGrabberItem": (),
- "PySide2.QtWidgets.QGraphicsScene.mouseMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsScene.mousePressEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsScene.mouseReleaseEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsScene.palette": (),
- "PySide2.QtWidgets.QGraphicsScene.removeItem": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsScene.render": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF', 'PySide2.QtCore.QRectF', 'PySide2.QtCore.Qt.AspectRatioMode'),
- "PySide2.QtWidgets.QGraphicsScene.sceneRect": (),
- "PySide2.QtWidgets.QGraphicsScene.selectedItems": (),
- "PySide2.QtWidgets.QGraphicsScene.selectionArea": (),
- "PySide2.QtWidgets.QGraphicsScene.sendEvent": ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QGraphicsScene.setActivePanel": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsScene.setActiveWindow": ('PySide2.QtWidgets.QGraphicsWidget',),
- "PySide2.QtWidgets.QGraphicsScene.setBackgroundBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtWidgets.QGraphicsScene.setBspTreeDepth": ('int',),
- "PySide2.QtWidgets.QGraphicsScene.setFocus": ('PySide2.QtCore.Qt.FocusReason',),
- "PySide2.QtWidgets.QGraphicsScene.setFocusItem": ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.Qt.FocusReason'),
- "PySide2.QtWidgets.QGraphicsScene.setFocusOnTouch": ('bool',),
- "PySide2.QtWidgets.QGraphicsScene.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QGraphicsScene.setForegroundBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtWidgets.QGraphicsScene.setItemIndexMethod": ('PySide2.QtWidgets.QGraphicsScene.ItemIndexMethod',),
- "PySide2.QtWidgets.QGraphicsScene.setMinimumRenderSize": ('float',),
- "PySide2.QtWidgets.QGraphicsScene.setPalette": ('PySide2.QtGui.QPalette',),
- "PySide2.QtWidgets.QGraphicsScene.setSceneRect": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsScene.setSelectionArea": [('PySide2.QtGui.QPainterPath', 'PySide2.QtCore.Qt.ItemSelectionMode', 'PySide2.QtGui.QTransform'), ('PySide2.QtGui.QPainterPath', 'PySide2.QtCore.Qt.ItemSelectionOperation', 'PySide2.QtCore.Qt.ItemSelectionMode', 'PySide2.QtGui.QTransform'), ('PySide2.QtGui.QPainterPath', 'PySide2.QtGui.QTransform')],
- "PySide2.QtWidgets.QGraphicsScene.setSortCacheEnabled": ('bool',),
- "PySide2.QtWidgets.QGraphicsScene.setStickyFocus": ('bool',),
- "PySide2.QtWidgets.QGraphicsScene.setStyle": ('PySide2.QtWidgets.QStyle',),
- "PySide2.QtWidgets.QGraphicsScene.stickyFocus": (),
- "PySide2.QtWidgets.QGraphicsScene.style": (),
- "PySide2.QtWidgets.QGraphicsScene.update": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsScene.views": (),
- "PySide2.QtWidgets.QGraphicsScene.wheelEvent": ('PySide2.QtWidgets.QGraphicsSceneWheelEvent',),
- "PySide2.QtWidgets.QGraphicsScene.width": (),
-# class PySide2.QtWidgets.QGraphicsSceneContextMenuEvent:
-# class PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.Reason:
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.__init__": ('PySide2.QtCore.QEvent.Type',),
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.modifiers": (),
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.pos": (),
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.reason": (),
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.scenePos": (),
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.screenPos": (),
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.setModifiers": ('PySide2.QtCore.Qt.KeyboardModifiers',),
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.setPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.setReason": ('PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.Reason',),
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.setScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneContextMenuEvent.setScreenPos": ('PySide2.QtCore.QPoint',),
-# class PySide2.QtWidgets.QGraphicsSceneDragDropEvent:
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.__init__": ('PySide2.QtCore.QEvent.Type',),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.acceptProposedAction": (),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.buttons": (),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.dropAction": (),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.mimeData": (),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.modifiers": (),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.pos": (),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.possibleActions": (),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.proposedAction": (),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.scenePos": (),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.screenPos": (),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.setButtons": ('PySide2.QtCore.Qt.MouseButtons',),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.setDropAction": ('PySide2.QtCore.Qt.DropAction',),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.setModifiers": ('PySide2.QtCore.Qt.KeyboardModifiers',),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.setPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.setPossibleActions": ('PySide2.QtCore.Qt.DropActions',),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.setProposedAction": ('PySide2.QtCore.Qt.DropAction',),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.setScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.setScreenPos": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QGraphicsSceneDragDropEvent.source": (),
-# class PySide2.QtWidgets.QGraphicsSceneEvent:
- "PySide2.QtWidgets.QGraphicsSceneEvent.__init__": ('PySide2.QtCore.QEvent.Type',),
- "PySide2.QtWidgets.QGraphicsSceneEvent.widget": (),
-# class PySide2.QtWidgets.QGraphicsSceneHelpEvent:
- "PySide2.QtWidgets.QGraphicsSceneHelpEvent.__init__": ('PySide2.QtCore.QEvent.Type',),
- "PySide2.QtWidgets.QGraphicsSceneHelpEvent.scenePos": (),
- "PySide2.QtWidgets.QGraphicsSceneHelpEvent.screenPos": (),
- "PySide2.QtWidgets.QGraphicsSceneHelpEvent.setScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneHelpEvent.setScreenPos": ('PySide2.QtCore.QPoint',),
-# class PySide2.QtWidgets.QGraphicsSceneHoverEvent:
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.__init__": ('PySide2.QtCore.QEvent.Type',),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.lastPos": (),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.lastScenePos": (),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.lastScreenPos": (),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.modifiers": (),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.pos": (),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.scenePos": (),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.screenPos": (),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.setLastPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.setLastScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.setLastScreenPos": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.setModifiers": ('PySide2.QtCore.Qt.KeyboardModifiers',),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.setPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.setScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneHoverEvent.setScreenPos": ('PySide2.QtCore.QPoint',),
-# class PySide2.QtWidgets.QGraphicsSceneMouseEvent:
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.__init__": ('PySide2.QtCore.QEvent.Type',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.button": (),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.buttonDownPos": ('PySide2.QtCore.Qt.MouseButton',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.buttonDownScenePos": ('PySide2.QtCore.Qt.MouseButton',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.buttonDownScreenPos": ('PySide2.QtCore.Qt.MouseButton',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.buttons": (),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.flags": (),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.lastPos": (),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.lastScenePos": (),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.lastScreenPos": (),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.modifiers": (),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.pos": (),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.scenePos": (),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.screenPos": (),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setButton": ('PySide2.QtCore.Qt.MouseButton',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setButtonDownPos": ('PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.QPointF'),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setButtonDownScenePos": ('PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.QPointF'),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setButtonDownScreenPos": ('PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.QPoint'),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setButtons": ('PySide2.QtCore.Qt.MouseButtons',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setFlags": ('PySide2.QtCore.Qt.MouseEventFlags',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setLastPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setLastScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setLastScreenPos": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setModifiers": ('PySide2.QtCore.Qt.KeyboardModifiers',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setScreenPos": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.setSource": ('PySide2.QtCore.Qt.MouseEventSource',),
- "PySide2.QtWidgets.QGraphicsSceneMouseEvent.source": (),
-# class PySide2.QtWidgets.QGraphicsSceneMoveEvent:
- "PySide2.QtWidgets.QGraphicsSceneMoveEvent.__init__": (),
- "PySide2.QtWidgets.QGraphicsSceneMoveEvent.newPos": (),
- "PySide2.QtWidgets.QGraphicsSceneMoveEvent.oldPos": (),
- "PySide2.QtWidgets.QGraphicsSceneMoveEvent.setNewPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneMoveEvent.setOldPos": ('PySide2.QtCore.QPointF',),
-# class PySide2.QtWidgets.QGraphicsSceneResizeEvent:
- "PySide2.QtWidgets.QGraphicsSceneResizeEvent.__init__": (),
- "PySide2.QtWidgets.QGraphicsSceneResizeEvent.newSize": (),
- "PySide2.QtWidgets.QGraphicsSceneResizeEvent.oldSize": (),
- "PySide2.QtWidgets.QGraphicsSceneResizeEvent.setNewSize": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtWidgets.QGraphicsSceneResizeEvent.setOldSize": ('PySide2.QtCore.QSizeF',),
-# class PySide2.QtWidgets.QGraphicsSceneWheelEvent:
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.__init__": ('PySide2.QtCore.QEvent.Type',),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.buttons": (),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.delta": (),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.modifiers": (),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.orientation": (),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.pos": (),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.scenePos": (),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.screenPos": (),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.setButtons": ('PySide2.QtCore.Qt.MouseButtons',),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.setDelta": ('int',),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.setModifiers": ('PySide2.QtCore.Qt.KeyboardModifiers',),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.setPos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.setScenePos": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSceneWheelEvent.setScreenPos": ('PySide2.QtCore.QPoint',),
-# class PySide2.QtWidgets.QGraphicsSimpleTextItem:
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.__init__": [('PySide2.QtWidgets.QGraphicsItem',), ('str', 'PySide2.QtWidgets.QGraphicsItem')],
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.extension": ('typing.Any',),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.font": (),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.opaqueArea": (),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.setText": ('str',),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.shape": (),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.text": (),
- "PySide2.QtWidgets.QGraphicsSimpleTextItem.type": (),
-# class PySide2.QtWidgets.QGraphicsTextItem:
- "PySide2.QtWidgets.QGraphicsTextItem.__init__": [('PySide2.QtWidgets.QGraphicsItem',), ('str', 'PySide2.QtWidgets.QGraphicsItem')],
- "PySide2.QtWidgets.QGraphicsTextItem.adjustSize": (),
- "PySide2.QtWidgets.QGraphicsTextItem.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsTextItem.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsTextItem.contextMenuEvent": ('PySide2.QtWidgets.QGraphicsSceneContextMenuEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.defaultTextColor": (),
- "PySide2.QtWidgets.QGraphicsTextItem.document": (),
- "PySide2.QtWidgets.QGraphicsTextItem.dragEnterEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.dragLeaveEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.dragMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.dropEvent": ('PySide2.QtWidgets.QGraphicsSceneDragDropEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.extension": ('typing.Any',),
- "PySide2.QtWidgets.QGraphicsTextItem.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.font": (),
- "PySide2.QtWidgets.QGraphicsTextItem.hoverEnterEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.hoverLeaveEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.hoverMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.inputMethodQuery": ('PySide2.QtCore.Qt.InputMethodQuery',),
- "PySide2.QtWidgets.QGraphicsTextItem.isObscuredBy": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtWidgets.QGraphicsTextItem.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.mouseDoubleClickEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.mouseMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.mousePressEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.mouseReleaseEvent": ('PySide2.QtWidgets.QGraphicsSceneMouseEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.opaqueArea": (),
- "PySide2.QtWidgets.QGraphicsTextItem.openExternalLinks": (),
- "PySide2.QtWidgets.QGraphicsTextItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsTextItem.sceneEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsTextItem.setDefaultTextColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QGraphicsTextItem.setDocument": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtWidgets.QGraphicsTextItem.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QGraphicsTextItem.setHtml": ('str',),
- "PySide2.QtWidgets.QGraphicsTextItem.setOpenExternalLinks": ('bool',),
- "PySide2.QtWidgets.QGraphicsTextItem.setPlainText": ('str',),
- "PySide2.QtWidgets.QGraphicsTextItem.setTabChangesFocus": ('bool',),
- "PySide2.QtWidgets.QGraphicsTextItem.setTextCursor": ('PySide2.QtGui.QTextCursor',),
- "PySide2.QtWidgets.QGraphicsTextItem.setTextInteractionFlags": ('PySide2.QtCore.Qt.TextInteractionFlags',),
- "PySide2.QtWidgets.QGraphicsTextItem.setTextWidth": ('float',),
- "PySide2.QtWidgets.QGraphicsTextItem.shape": (),
- "PySide2.QtWidgets.QGraphicsTextItem.tabChangesFocus": (),
- "PySide2.QtWidgets.QGraphicsTextItem.textCursor": (),
- "PySide2.QtWidgets.QGraphicsTextItem.textInteractionFlags": (),
- "PySide2.QtWidgets.QGraphicsTextItem.textWidth": (),
- "PySide2.QtWidgets.QGraphicsTextItem.toHtml": (),
- "PySide2.QtWidgets.QGraphicsTextItem.toPlainText": (),
- "PySide2.QtWidgets.QGraphicsTextItem.type": (),
-# class PySide2.QtWidgets.QGraphicsTransform:
- "PySide2.QtWidgets.QGraphicsTransform.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QGraphicsTransform.applyTo": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtWidgets.QGraphicsTransform.update": (),
-# class PySide2.QtWidgets.QGraphicsView:
-# class PySide2.QtWidgets.QGraphicsView.CacheMode:
-# class PySide2.QtWidgets.QGraphicsView.CacheModeFlag:
-# class PySide2.QtWidgets.QGraphicsView.DragMode:
-# class PySide2.QtWidgets.QGraphicsView.OptimizationFlag:
-# class PySide2.QtWidgets.QGraphicsView.OptimizationFlags:
-# class PySide2.QtWidgets.QGraphicsView.ViewportAnchor:
-# class PySide2.QtWidgets.QGraphicsView.ViewportUpdateMode:
- "PySide2.QtWidgets.QGraphicsView.__init__": [('PySide2.QtWidgets.QGraphicsScene', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QGraphicsView.alignment": (),
- "PySide2.QtWidgets.QGraphicsView.backgroundBrush": (),
- "PySide2.QtWidgets.QGraphicsView.cacheMode": (),
- "PySide2.QtWidgets.QGraphicsView.centerOn": [('PySide2.QtCore.QPointF',), ('PySide2.QtWidgets.QGraphicsItem',), ('float', 'float')],
- "PySide2.QtWidgets.QGraphicsView.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QGraphicsView.dragEnterEvent": ('PySide2.QtGui.QDragEnterEvent',),
- "PySide2.QtWidgets.QGraphicsView.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtWidgets.QGraphicsView.dragMode": (),
- "PySide2.QtWidgets.QGraphicsView.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtWidgets.QGraphicsView.drawBackground": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF'),
- "PySide2.QtWidgets.QGraphicsView.drawForeground": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF'),
- "PySide2.QtWidgets.QGraphicsView.drawItems": ('PySide2.QtGui.QPainter', 'int', 'typing.Sequence[PySide2.QtWidgets.QGraphicsItem]', 'typing.Sequence[PySide2.QtWidgets.QStyleOptionGraphicsItem]'),
- "PySide2.QtWidgets.QGraphicsView.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QGraphicsView.ensureVisible": [('PySide2.QtCore.QRectF', 'int', 'int'), ('PySide2.QtWidgets.QGraphicsItem', 'int', 'int'), ('float', 'float', 'float', 'float', 'int', 'int')],
- "PySide2.QtWidgets.QGraphicsView.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsView.fitInView": [('PySide2.QtCore.QRectF', 'PySide2.QtCore.Qt.AspectRatioMode'), ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.Qt.AspectRatioMode'), ('float', 'float', 'float', 'float', 'PySide2.QtCore.Qt.AspectRatioMode')],
- "PySide2.QtWidgets.QGraphicsView.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsView.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QGraphicsView.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsView.foregroundBrush": (),
- "PySide2.QtWidgets.QGraphicsView.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QGraphicsView.inputMethodQuery": ('PySide2.QtCore.Qt.InputMethodQuery',),
- "PySide2.QtWidgets.QGraphicsView.invalidateScene": ('PySide2.QtCore.QRectF', 'PySide2.QtWidgets.QGraphicsScene.SceneLayers'),
- "PySide2.QtWidgets.QGraphicsView.isInteractive": (),
- "PySide2.QtWidgets.QGraphicsView.isTransformed": (),
- "PySide2.QtWidgets.QGraphicsView.itemAt": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtWidgets.QGraphicsView.items": [(), ('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QRect', 'PySide2.QtCore.Qt.ItemSelectionMode'), ('PySide2.QtGui.QPainterPath', 'PySide2.QtCore.Qt.ItemSelectionMode'), ('PySide2.QtGui.QPolygon', 'PySide2.QtCore.Qt.ItemSelectionMode'), ('int', 'int'), ('int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.ItemSelectionMode')],
- "PySide2.QtWidgets.QGraphicsView.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QGraphicsView.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QGraphicsView.mapFromScene": [('PySide2.QtCore.QPointF',), ('PySide2.QtCore.QRectF',), ('PySide2.QtGui.QPainterPath',), ('PySide2.QtGui.QPolygonF',), ('float', 'float'), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsView.mapToScene": [('PySide2.QtCore.QPoint',), ('PySide2.QtCore.QRect',), ('PySide2.QtGui.QPainterPath',), ('PySide2.QtGui.QPolygon',), ('int', 'int'), ('int', 'int', 'int', 'int')],
- "PySide2.QtWidgets.QGraphicsView.matrix": (),
- "PySide2.QtWidgets.QGraphicsView.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QGraphicsView.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QGraphicsView.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QGraphicsView.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QGraphicsView.optimizationFlags": (),
- "PySide2.QtWidgets.QGraphicsView.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QGraphicsView.render": [('PySide2.QtGui.QPaintDevice', 'PySide2.QtCore.QPoint', 'PySide2.QtGui.QRegion', 'PySide2.QtWidgets.QWidget.RenderFlags'), ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF', 'PySide2.QtCore.QRect', 'PySide2.QtCore.Qt.AspectRatioMode')],
- "PySide2.QtWidgets.QGraphicsView.renderHints": (),
- "PySide2.QtWidgets.QGraphicsView.resetCachedContent": (),
- "PySide2.QtWidgets.QGraphicsView.resetMatrix": (),
- "PySide2.QtWidgets.QGraphicsView.resetTransform": (),
- "PySide2.QtWidgets.QGraphicsView.resizeAnchor": (),
- "PySide2.QtWidgets.QGraphicsView.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QGraphicsView.rotate": ('float',),
- "PySide2.QtWidgets.QGraphicsView.rubberBandRect": (),
- "PySide2.QtWidgets.QGraphicsView.rubberBandSelectionMode": (),
- "PySide2.QtWidgets.QGraphicsView.scale": ('float', 'float'),
- "PySide2.QtWidgets.QGraphicsView.scene": (),
- "PySide2.QtWidgets.QGraphicsView.sceneRect": (),
- "PySide2.QtWidgets.QGraphicsView.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QGraphicsView.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QGraphicsView.setBackgroundBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtWidgets.QGraphicsView.setCacheMode": ('PySide2.QtWidgets.QGraphicsView.CacheMode',),
- "PySide2.QtWidgets.QGraphicsView.setDragMode": ('PySide2.QtWidgets.QGraphicsView.DragMode',),
- "PySide2.QtWidgets.QGraphicsView.setForegroundBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtWidgets.QGraphicsView.setInteractive": ('bool',),
- "PySide2.QtWidgets.QGraphicsView.setMatrix": ('PySide2.QtGui.QMatrix', 'bool'),
- "PySide2.QtWidgets.QGraphicsView.setOptimizationFlag": ('PySide2.QtWidgets.QGraphicsView.OptimizationFlag', 'bool'),
- "PySide2.QtWidgets.QGraphicsView.setOptimizationFlags": ('PySide2.QtWidgets.QGraphicsView.OptimizationFlags',),
- "PySide2.QtWidgets.QGraphicsView.setRenderHint": ('PySide2.QtGui.QPainter.RenderHint', 'bool'),
- "PySide2.QtWidgets.QGraphicsView.setRenderHints": ('PySide2.QtGui.QPainter.RenderHints',),
- "PySide2.QtWidgets.QGraphicsView.setResizeAnchor": ('PySide2.QtWidgets.QGraphicsView.ViewportAnchor',),
- "PySide2.QtWidgets.QGraphicsView.setRubberBandSelectionMode": ('PySide2.QtCore.Qt.ItemSelectionMode',),
- "PySide2.QtWidgets.QGraphicsView.setScene": ('PySide2.QtWidgets.QGraphicsScene',),
- "PySide2.QtWidgets.QGraphicsView.setSceneRect": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsView.setTransform": ('PySide2.QtGui.QTransform', 'bool'),
- "PySide2.QtWidgets.QGraphicsView.setTransformationAnchor": ('PySide2.QtWidgets.QGraphicsView.ViewportAnchor',),
- "PySide2.QtWidgets.QGraphicsView.setViewportUpdateMode": ('PySide2.QtWidgets.QGraphicsView.ViewportUpdateMode',),
- "PySide2.QtWidgets.QGraphicsView.setupViewport": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QGraphicsView.shear": ('float', 'float'),
- "PySide2.QtWidgets.QGraphicsView.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QGraphicsView.sizeHint": (),
- "PySide2.QtWidgets.QGraphicsView.transform": (),
- "PySide2.QtWidgets.QGraphicsView.transformationAnchor": (),
- "PySide2.QtWidgets.QGraphicsView.translate": ('float', 'float'),
- "PySide2.QtWidgets.QGraphicsView.updateScene": ('typing.Sequence[PySide2.QtCore.QRectF]',),
- "PySide2.QtWidgets.QGraphicsView.updateSceneRect": ('PySide2.QtCore.QRectF',),
- "PySide2.QtWidgets.QGraphicsView.viewportEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsView.viewportTransform": (),
- "PySide2.QtWidgets.QGraphicsView.viewportUpdateMode": (),
- "PySide2.QtWidgets.QGraphicsView.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtWidgets.QGraphicsWidget:
- "PySide2.QtWidgets.QGraphicsWidget.__init__": ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QGraphicsWidget.actions": (),
- "PySide2.QtWidgets.QGraphicsWidget.addAction": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QGraphicsWidget.addActions": ('typing.Sequence[PySide2.QtWidgets.QAction]',),
- "PySide2.QtWidgets.QGraphicsWidget.adjustSize": (),
- "PySide2.QtWidgets.QGraphicsWidget.autoFillBackground": (),
- "PySide2.QtWidgets.QGraphicsWidget.boundingRect": (),
- "PySide2.QtWidgets.QGraphicsWidget.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.close": (),
- "PySide2.QtWidgets.QGraphicsWidget.closeEvent": ('PySide2.QtGui.QCloseEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QGraphicsWidget.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.focusPolicy": (),
- "PySide2.QtWidgets.QGraphicsWidget.focusWidget": (),
- "PySide2.QtWidgets.QGraphicsWidget.font": (),
- "PySide2.QtWidgets.QGraphicsWidget.getContentsMargins": (),
- "PySide2.QtWidgets.QGraphicsWidget.getWindowFrameMargins": (),
- "PySide2.QtWidgets.QGraphicsWidget.grabKeyboardEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.grabMouseEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.grabShortcut": ('PySide2.QtGui.QKeySequence', 'PySide2.QtCore.Qt.ShortcutContext'),
- "PySide2.QtWidgets.QGraphicsWidget.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.hoverLeaveEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.hoverMoveEvent": ('PySide2.QtWidgets.QGraphicsSceneHoverEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.initStyleOption": ('PySide2.QtWidgets.QStyleOption',),
- "PySide2.QtWidgets.QGraphicsWidget.insertAction": ('PySide2.QtWidgets.QAction', 'PySide2.QtWidgets.QAction'),
- "PySide2.QtWidgets.QGraphicsWidget.insertActions": ('PySide2.QtWidgets.QAction', 'typing.Sequence[PySide2.QtWidgets.QAction]'),
- "PySide2.QtWidgets.QGraphicsWidget.isActiveWindow": (),
- "PySide2.QtWidgets.QGraphicsWidget.itemChange": ('PySide2.QtWidgets.QGraphicsItem.GraphicsItemChange', 'typing.Any'),
- "PySide2.QtWidgets.QGraphicsWidget.layout": (),
- "PySide2.QtWidgets.QGraphicsWidget.layoutDirection": (),
- "PySide2.QtWidgets.QGraphicsWidget.moveEvent": ('PySide2.QtWidgets.QGraphicsSceneMoveEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsWidget.paintWindowFrame": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QGraphicsWidget.palette": (),
- "PySide2.QtWidgets.QGraphicsWidget.polishEvent": (),
- "PySide2.QtWidgets.QGraphicsWidget.propertyChange": ('str', 'typing.Any'),
- "PySide2.QtWidgets.QGraphicsWidget.rect": (),
- "PySide2.QtWidgets.QGraphicsWidget.releaseShortcut": ('int',),
- "PySide2.QtWidgets.QGraphicsWidget.removeAction": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QGraphicsWidget.resize": [('PySide2.QtCore.QSizeF',), ('float', 'float')],
- "PySide2.QtWidgets.QGraphicsWidget.resizeEvent": ('PySide2.QtWidgets.QGraphicsSceneResizeEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.sceneEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.setAttribute": ('PySide2.QtCore.Qt.WidgetAttribute', 'bool'),
- "PySide2.QtWidgets.QGraphicsWidget.setAutoFillBackground": ('bool',),
- "PySide2.QtWidgets.QGraphicsWidget.setContentsMargins": [('PySide2.QtCore.QMarginsF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsWidget.setFocusPolicy": ('PySide2.QtCore.Qt.FocusPolicy',),
- "PySide2.QtWidgets.QGraphicsWidget.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QGraphicsWidget.setGeometry": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsWidget.setLayout": ('PySide2.QtWidgets.QGraphicsLayout',),
- "PySide2.QtWidgets.QGraphicsWidget.setLayoutDirection": ('PySide2.QtCore.Qt.LayoutDirection',),
- "PySide2.QtWidgets.QGraphicsWidget.setPalette": ('PySide2.QtGui.QPalette',),
- "PySide2.QtWidgets.QGraphicsWidget.setShortcutAutoRepeat": ('int', 'bool'),
- "PySide2.QtWidgets.QGraphicsWidget.setShortcutEnabled": ('int', 'bool'),
- "PySide2.QtWidgets.QGraphicsWidget.setStyle": ('PySide2.QtWidgets.QStyle',),
- "PySide2.QtWidgets.QGraphicsWidget.setTabOrder": ('PySide2.QtWidgets.QGraphicsWidget', 'PySide2.QtWidgets.QGraphicsWidget'),
- "PySide2.QtWidgets.QGraphicsWidget.setWindowFlags": ('PySide2.QtCore.Qt.WindowFlags',),
- "PySide2.QtWidgets.QGraphicsWidget.setWindowFrameMargins": [('PySide2.QtCore.QMarginsF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtWidgets.QGraphicsWidget.setWindowTitle": ('str',),
- "PySide2.QtWidgets.QGraphicsWidget.shape": (),
- "PySide2.QtWidgets.QGraphicsWidget.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.size": (),
- "PySide2.QtWidgets.QGraphicsWidget.sizeHint": ('PySide2.QtCore.Qt.SizeHint', 'PySide2.QtCore.QSizeF'),
- "PySide2.QtWidgets.QGraphicsWidget.style": (),
- "PySide2.QtWidgets.QGraphicsWidget.testAttribute": ('PySide2.QtCore.Qt.WidgetAttribute',),
- "PySide2.QtWidgets.QGraphicsWidget.type": (),
- "PySide2.QtWidgets.QGraphicsWidget.ungrabKeyboardEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.ungrabMouseEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.unsetLayoutDirection": (),
- "PySide2.QtWidgets.QGraphicsWidget.unsetWindowFrameMargins": (),
- "PySide2.QtWidgets.QGraphicsWidget.updateGeometry": (),
- "PySide2.QtWidgets.QGraphicsWidget.windowFlags": (),
- "PySide2.QtWidgets.QGraphicsWidget.windowFrameEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGraphicsWidget.windowFrameGeometry": (),
- "PySide2.QtWidgets.QGraphicsWidget.windowFrameRect": (),
- "PySide2.QtWidgets.QGraphicsWidget.windowFrameSectionAt": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QGraphicsWidget.windowTitle": (),
- "PySide2.QtWidgets.QGraphicsWidget.windowType": (),
-# class PySide2.QtWidgets.QGridLayout:
- "PySide2.QtWidgets.QGridLayout.__init__": [(), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QGridLayout.addItem": [('PySide2.QtWidgets.QLayoutItem',), ('PySide2.QtWidgets.QLayoutItem', 'int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.Alignment')],
- "PySide2.QtWidgets.QGridLayout.addLayout": [('PySide2.QtWidgets.QLayout', 'int', 'int', 'PySide2.QtCore.Qt.Alignment'), ('PySide2.QtWidgets.QLayout', 'int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.Alignment')],
- "PySide2.QtWidgets.QGridLayout.addWidget": [('PySide2.QtWidgets.QWidget',), ('PySide2.QtWidgets.QWidget', 'int', 'int', 'PySide2.QtCore.Qt.Alignment'), ('PySide2.QtWidgets.QWidget', 'int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.Alignment')],
- "PySide2.QtWidgets.QGridLayout.cellRect": ('int', 'int'),
- "PySide2.QtWidgets.QGridLayout.columnCount": (),
- "PySide2.QtWidgets.QGridLayout.columnMinimumWidth": ('int',),
- "PySide2.QtWidgets.QGridLayout.columnStretch": ('int',),
- "PySide2.QtWidgets.QGridLayout.count": (),
- "PySide2.QtWidgets.QGridLayout.expandingDirections": (),
- "PySide2.QtWidgets.QGridLayout.getItemPosition": ('int',),
- "PySide2.QtWidgets.QGridLayout.hasHeightForWidth": (),
- "PySide2.QtWidgets.QGridLayout.heightForWidth": ('int',),
- "PySide2.QtWidgets.QGridLayout.horizontalSpacing": (),
- "PySide2.QtWidgets.QGridLayout.invalidate": (),
- "PySide2.QtWidgets.QGridLayout.itemAt": ('int',),
- "PySide2.QtWidgets.QGridLayout.itemAtPosition": ('int', 'int'),
- "PySide2.QtWidgets.QGridLayout.maximumSize": (),
- "PySide2.QtWidgets.QGridLayout.minimumHeightForWidth": ('int',),
- "PySide2.QtWidgets.QGridLayout.minimumSize": (),
- "PySide2.QtWidgets.QGridLayout.originCorner": (),
- "PySide2.QtWidgets.QGridLayout.rowCount": (),
- "PySide2.QtWidgets.QGridLayout.rowMinimumHeight": ('int',),
- "PySide2.QtWidgets.QGridLayout.rowStretch": ('int',),
- "PySide2.QtWidgets.QGridLayout.setColumnMinimumWidth": ('int', 'int'),
- "PySide2.QtWidgets.QGridLayout.setColumnStretch": ('int', 'int'),
- "PySide2.QtWidgets.QGridLayout.setDefaultPositioning": ('int', 'PySide2.QtCore.Qt.Orientation'),
- "PySide2.QtWidgets.QGridLayout.setGeometry": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QGridLayout.setHorizontalSpacing": ('int',),
- "PySide2.QtWidgets.QGridLayout.setOriginCorner": ('PySide2.QtCore.Qt.Corner',),
- "PySide2.QtWidgets.QGridLayout.setRowMinimumHeight": ('int', 'int'),
- "PySide2.QtWidgets.QGridLayout.setRowStretch": ('int', 'int'),
- "PySide2.QtWidgets.QGridLayout.setSpacing": ('int',),
- "PySide2.QtWidgets.QGridLayout.setVerticalSpacing": ('int',),
- "PySide2.QtWidgets.QGridLayout.sizeHint": (),
- "PySide2.QtWidgets.QGridLayout.spacing": (),
- "PySide2.QtWidgets.QGridLayout.takeAt": ('int',),
- "PySide2.QtWidgets.QGridLayout.verticalSpacing": (),
-# class PySide2.QtWidgets.QGroupBox:
- "PySide2.QtWidgets.QGroupBox.__init__": [('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QGroupBox.alignment": (),
- "PySide2.QtWidgets.QGroupBox.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGroupBox.childEvent": ('PySide2.QtCore.QChildEvent',),
- "PySide2.QtWidgets.QGroupBox.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QGroupBox.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QGroupBox.initStyleOption": ('PySide2.QtWidgets.QStyleOptionGroupBox',),
- "PySide2.QtWidgets.QGroupBox.isCheckable": (),
- "PySide2.QtWidgets.QGroupBox.isChecked": (),
- "PySide2.QtWidgets.QGroupBox.isFlat": (),
- "PySide2.QtWidgets.QGroupBox.minimumSizeHint": (),
- "PySide2.QtWidgets.QGroupBox.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QGroupBox.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QGroupBox.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QGroupBox.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QGroupBox.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QGroupBox.setAlignment": ('int',),
- "PySide2.QtWidgets.QGroupBox.setCheckable": ('bool',),
- "PySide2.QtWidgets.QGroupBox.setChecked": ('bool',),
- "PySide2.QtWidgets.QGroupBox.setFlat": ('bool',),
- "PySide2.QtWidgets.QGroupBox.setTitle": ('str',),
- "PySide2.QtWidgets.QGroupBox.title": (),
-# class PySide2.QtWidgets.QHBoxLayout:
- "PySide2.QtWidgets.QHBoxLayout.__init__": [(), ('PySide2.QtWidgets.QWidget',)],
-# class PySide2.QtWidgets.QHeaderView:
-# class PySide2.QtWidgets.QHeaderView.ResizeMode:
- "PySide2.QtWidgets.QHeaderView.__init__": ('PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QHeaderView.cascadingSectionResizes": (),
- "PySide2.QtWidgets.QHeaderView.count": (),
- "PySide2.QtWidgets.QHeaderView.currentChanged": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QHeaderView.dataChanged": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex', 'typing.List[int]'),
- "PySide2.QtWidgets.QHeaderView.defaultAlignment": (),
- "PySide2.QtWidgets.QHeaderView.defaultSectionSize": (),
- "PySide2.QtWidgets.QHeaderView.doItemsLayout": (),
- "PySide2.QtWidgets.QHeaderView.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QHeaderView.headerDataChanged": ('PySide2.QtCore.Qt.Orientation', 'int', 'int'),
- "PySide2.QtWidgets.QHeaderView.hiddenSectionCount": (),
- "PySide2.QtWidgets.QHeaderView.hideSection": ('int',),
- "PySide2.QtWidgets.QHeaderView.highlightSections": (),
- "PySide2.QtWidgets.QHeaderView.horizontalOffset": (),
- "PySide2.QtWidgets.QHeaderView.indexAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QHeaderView.initStyleOption": [('PySide2.QtWidgets.QStyleOptionFrame',), ('PySide2.QtWidgets.QStyleOptionHeader',)],
- "PySide2.QtWidgets.QHeaderView.initialize": (),
- "PySide2.QtWidgets.QHeaderView.initializeSections": [(), ('int', 'int')],
- "PySide2.QtWidgets.QHeaderView.isFirstSectionMovable": (),
- "PySide2.QtWidgets.QHeaderView.isIndexHidden": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QHeaderView.isSectionHidden": ('int',),
- "PySide2.QtWidgets.QHeaderView.isSortIndicatorShown": (),
- "PySide2.QtWidgets.QHeaderView.length": (),
- "PySide2.QtWidgets.QHeaderView.logicalIndex": ('int',),
- "PySide2.QtWidgets.QHeaderView.logicalIndexAt": [('PySide2.QtCore.QPoint',), ('int',), ('int', 'int')],
- "PySide2.QtWidgets.QHeaderView.maximumSectionSize": (),
- "PySide2.QtWidgets.QHeaderView.minimumSectionSize": (),
- "PySide2.QtWidgets.QHeaderView.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QHeaderView.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QHeaderView.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QHeaderView.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QHeaderView.moveCursor": ('PySide2.QtWidgets.QAbstractItemView.CursorAction', 'PySide2.QtCore.Qt.KeyboardModifiers'),
- "PySide2.QtWidgets.QHeaderView.moveSection": ('int', 'int'),
- "PySide2.QtWidgets.QHeaderView.offset": (),
- "PySide2.QtWidgets.QHeaderView.orientation": (),
- "PySide2.QtWidgets.QHeaderView.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QHeaderView.paintSection": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRect', 'int'),
- "PySide2.QtWidgets.QHeaderView.reset": (),
- "PySide2.QtWidgets.QHeaderView.resetDefaultSectionSize": (),
- "PySide2.QtWidgets.QHeaderView.resizeContentsPrecision": (),
- "PySide2.QtWidgets.QHeaderView.resizeSection": ('int', 'int'),
- "PySide2.QtWidgets.QHeaderView.resizeSections": [(), ('PySide2.QtWidgets.QHeaderView.ResizeMode',)],
- "PySide2.QtWidgets.QHeaderView.restoreState": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWidgets.QHeaderView.rowsInserted": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QHeaderView.saveState": (),
- "PySide2.QtWidgets.QHeaderView.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QHeaderView.scrollTo": ('PySide2.QtCore.QModelIndex', 'PySide2.QtWidgets.QAbstractItemView.ScrollHint'),
- "PySide2.QtWidgets.QHeaderView.sectionPosition": ('int',),
- "PySide2.QtWidgets.QHeaderView.sectionResizeMode": ('int',),
- "PySide2.QtWidgets.QHeaderView.sectionSize": ('int',),
- "PySide2.QtWidgets.QHeaderView.sectionSizeFromContents": ('int',),
- "PySide2.QtWidgets.QHeaderView.sectionSizeHint": ('int',),
- "PySide2.QtWidgets.QHeaderView.sectionViewportPosition": ('int',),
- "PySide2.QtWidgets.QHeaderView.sectionsAboutToBeRemoved": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QHeaderView.sectionsClickable": (),
- "PySide2.QtWidgets.QHeaderView.sectionsHidden": (),
- "PySide2.QtWidgets.QHeaderView.sectionsInserted": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QHeaderView.sectionsMovable": (),
- "PySide2.QtWidgets.QHeaderView.sectionsMoved": (),
- "PySide2.QtWidgets.QHeaderView.setCascadingSectionResizes": ('bool',),
- "PySide2.QtWidgets.QHeaderView.setDefaultAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QHeaderView.setDefaultSectionSize": ('int',),
- "PySide2.QtWidgets.QHeaderView.setFirstSectionMovable": ('bool',),
- "PySide2.QtWidgets.QHeaderView.setHighlightSections": ('bool',),
- "PySide2.QtWidgets.QHeaderView.setMaximumSectionSize": ('int',),
- "PySide2.QtWidgets.QHeaderView.setMinimumSectionSize": ('int',),
- "PySide2.QtWidgets.QHeaderView.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QHeaderView.setOffset": ('int',),
- "PySide2.QtWidgets.QHeaderView.setOffsetToLastSection": (),
- "PySide2.QtWidgets.QHeaderView.setOffsetToSectionPosition": ('int',),
- "PySide2.QtWidgets.QHeaderView.setResizeContentsPrecision": ('int',),
- "PySide2.QtWidgets.QHeaderView.setSectionHidden": ('int', 'bool'),
- "PySide2.QtWidgets.QHeaderView.setSectionResizeMode": [('PySide2.QtWidgets.QHeaderView.ResizeMode',), ('int', 'PySide2.QtWidgets.QHeaderView.ResizeMode')],
- "PySide2.QtWidgets.QHeaderView.setSectionsClickable": ('bool',),
- "PySide2.QtWidgets.QHeaderView.setSectionsMovable": ('bool',),
- "PySide2.QtWidgets.QHeaderView.setSelection": ('PySide2.QtCore.QRect', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags'),
- "PySide2.QtWidgets.QHeaderView.setSortIndicator": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtWidgets.QHeaderView.setSortIndicatorShown": ('bool',),
- "PySide2.QtWidgets.QHeaderView.setStretchLastSection": ('bool',),
- "PySide2.QtWidgets.QHeaderView.setVisible": ('bool',),
- "PySide2.QtWidgets.QHeaderView.showSection": ('int',),
- "PySide2.QtWidgets.QHeaderView.sizeHint": (),
- "PySide2.QtWidgets.QHeaderView.sortIndicatorOrder": (),
- "PySide2.QtWidgets.QHeaderView.sortIndicatorSection": (),
- "PySide2.QtWidgets.QHeaderView.stretchLastSection": (),
- "PySide2.QtWidgets.QHeaderView.stretchSectionCount": (),
- "PySide2.QtWidgets.QHeaderView.swapSections": ('int', 'int'),
- "PySide2.QtWidgets.QHeaderView.updateGeometries": (),
- "PySide2.QtWidgets.QHeaderView.updateSection": ('int',),
- "PySide2.QtWidgets.QHeaderView.verticalOffset": (),
- "PySide2.QtWidgets.QHeaderView.viewportEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QHeaderView.visualIndex": ('int',),
- "PySide2.QtWidgets.QHeaderView.visualIndexAt": ('int',),
- "PySide2.QtWidgets.QHeaderView.visualRect": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QHeaderView.visualRegionForSelection": ('PySide2.QtCore.QItemSelection',),
-# class PySide2.QtWidgets.QInputDialog:
-# class PySide2.QtWidgets.QInputDialog.InputDialogOption:
-# class PySide2.QtWidgets.QInputDialog.InputMode:
- "PySide2.QtWidgets.QInputDialog.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QInputDialog.cancelButtonText": (),
- "PySide2.QtWidgets.QInputDialog.comboBoxItems": (),
- "PySide2.QtWidgets.QInputDialog.done": ('int',),
- "PySide2.QtWidgets.QInputDialog.doubleDecimals": (),
- "PySide2.QtWidgets.QInputDialog.doubleMaximum": (),
- "PySide2.QtWidgets.QInputDialog.doubleMinimum": (),
- "PySide2.QtWidgets.QInputDialog.doubleStep": (),
- "PySide2.QtWidgets.QInputDialog.doubleValue": (),
- "PySide2.QtWidgets.QInputDialog.getDouble": [('PySide2.QtWidgets.QWidget', 'str', 'str', 'float', 'float', 'float', 'int', 'PySide2.QtCore.Qt.WindowFlags'), ('PySide2.QtWidgets.QWidget', 'str', 'str', 'float', 'float', 'float', 'int', 'PySide2.QtCore.Qt.WindowFlags', 'float')],
- "PySide2.QtWidgets.QInputDialog.getInt": ('PySide2.QtWidgets.QWidget', 'str', 'str', 'int', 'int', 'int', 'int', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QInputDialog.getItem": ('PySide2.QtWidgets.QWidget', 'str', 'str', 'typing.Sequence[str]', 'int', 'bool', 'PySide2.QtCore.Qt.WindowFlags', 'PySide2.QtCore.Qt.InputMethodHints'),
- "PySide2.QtWidgets.QInputDialog.getMultiLineText": ('PySide2.QtWidgets.QWidget', 'str', 'str', 'str', 'PySide2.QtCore.Qt.WindowFlags', 'PySide2.QtCore.Qt.InputMethodHints'),
- "PySide2.QtWidgets.QInputDialog.getText": ('PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtWidgets.QLineEdit.EchoMode', 'str', 'PySide2.QtCore.Qt.WindowFlags', 'PySide2.QtCore.Qt.InputMethodHints'),
- "PySide2.QtWidgets.QInputDialog.inputMode": (),
- "PySide2.QtWidgets.QInputDialog.intMaximum": (),
- "PySide2.QtWidgets.QInputDialog.intMinimum": (),
- "PySide2.QtWidgets.QInputDialog.intStep": (),
- "PySide2.QtWidgets.QInputDialog.intValue": (),
- "PySide2.QtWidgets.QInputDialog.isComboBoxEditable": (),
- "PySide2.QtWidgets.QInputDialog.labelText": (),
- "PySide2.QtWidgets.QInputDialog.minimumSizeHint": (),
- "PySide2.QtWidgets.QInputDialog.okButtonText": (),
- "PySide2.QtWidgets.QInputDialog.open": [(), ('PySide2.QtCore.QObject', 'str')],
- "PySide2.QtWidgets.QInputDialog.setCancelButtonText": ('str',),
- "PySide2.QtWidgets.QInputDialog.setComboBoxEditable": ('bool',),
- "PySide2.QtWidgets.QInputDialog.setComboBoxItems": ('typing.Sequence[str]',),
- "PySide2.QtWidgets.QInputDialog.setDoubleDecimals": ('int',),
- "PySide2.QtWidgets.QInputDialog.setDoubleMaximum": ('float',),
- "PySide2.QtWidgets.QInputDialog.setDoubleMinimum": ('float',),
- "PySide2.QtWidgets.QInputDialog.setDoubleRange": ('float', 'float'),
- "PySide2.QtWidgets.QInputDialog.setDoubleStep": ('float',),
- "PySide2.QtWidgets.QInputDialog.setDoubleValue": ('float',),
- "PySide2.QtWidgets.QInputDialog.setInputMode": ('PySide2.QtWidgets.QInputDialog.InputMode',),
- "PySide2.QtWidgets.QInputDialog.setIntMaximum": ('int',),
- "PySide2.QtWidgets.QInputDialog.setIntMinimum": ('int',),
- "PySide2.QtWidgets.QInputDialog.setIntRange": ('int', 'int'),
- "PySide2.QtWidgets.QInputDialog.setIntStep": ('int',),
- "PySide2.QtWidgets.QInputDialog.setIntValue": ('int',),
- "PySide2.QtWidgets.QInputDialog.setLabelText": ('str',),
- "PySide2.QtWidgets.QInputDialog.setOkButtonText": ('str',),
- "PySide2.QtWidgets.QInputDialog.setOption": ('PySide2.QtWidgets.QInputDialog.InputDialogOption', 'bool'),
- "PySide2.QtWidgets.QInputDialog.setTextEchoMode": ('PySide2.QtWidgets.QLineEdit.EchoMode',),
- "PySide2.QtWidgets.QInputDialog.setTextValue": ('str',),
- "PySide2.QtWidgets.QInputDialog.setVisible": ('bool',),
- "PySide2.QtWidgets.QInputDialog.sizeHint": (),
- "PySide2.QtWidgets.QInputDialog.testOption": ('PySide2.QtWidgets.QInputDialog.InputDialogOption',),
- "PySide2.QtWidgets.QInputDialog.textEchoMode": (),
- "PySide2.QtWidgets.QInputDialog.textValue": (),
-# class PySide2.QtWidgets.QItemDelegate:
- "PySide2.QtWidgets.QItemDelegate.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QItemDelegate.createEditor": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QItemDelegate.decoration": ('PySide2.QtWidgets.QStyleOptionViewItem', 'typing.Any'),
- "PySide2.QtWidgets.QItemDelegate.doCheck": ('PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QRect', 'typing.Any'),
- "PySide2.QtWidgets.QItemDelegate.drawBackground": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QItemDelegate.drawCheck": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QRect', 'PySide2.QtCore.Qt.CheckState'),
- "PySide2.QtWidgets.QItemDelegate.drawDecoration": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QRect', 'PySide2.QtGui.QPixmap'),
- "PySide2.QtWidgets.QItemDelegate.drawDisplay": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QRect', 'str'),
- "PySide2.QtWidgets.QItemDelegate.drawFocus": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QRect'),
- "PySide2.QtWidgets.QItemDelegate.editorEvent": ('PySide2.QtCore.QEvent', 'PySide2.QtCore.QAbstractItemModel', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QItemDelegate.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QItemDelegate.hasClipping": (),
- "PySide2.QtWidgets.QItemDelegate.itemEditorFactory": (),
- "PySide2.QtWidgets.QItemDelegate.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QItemDelegate.rect": ('PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtWidgets.QItemDelegate.selectedPixmap": ('PySide2.QtGui.QPixmap', 'PySide2.QtGui.QPalette', 'bool'),
- "PySide2.QtWidgets.QItemDelegate.setClipping": ('bool',),
- "PySide2.QtWidgets.QItemDelegate.setEditorData": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QItemDelegate.setItemEditorFactory": ('PySide2.QtWidgets.QItemEditorFactory',),
- "PySide2.QtWidgets.QItemDelegate.setModelData": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QAbstractItemModel', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QItemDelegate.setOptions": ('PySide2.QtCore.QModelIndex', 'PySide2.QtWidgets.QStyleOptionViewItem'),
- "PySide2.QtWidgets.QItemDelegate.sizeHint": ('PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QItemDelegate.textRectangle": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRect', 'PySide2.QtGui.QFont', 'str'),
- "PySide2.QtWidgets.QItemDelegate.updateEditorGeometry": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
-# class PySide2.QtWidgets.QItemEditorCreatorBase:
- "PySide2.QtWidgets.QItemEditorCreatorBase.__init__": (),
- "PySide2.QtWidgets.QItemEditorCreatorBase.createWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QItemEditorCreatorBase.valuePropertyName": (),
-# class PySide2.QtWidgets.QItemEditorFactory:
- "PySide2.QtWidgets.QItemEditorFactory.__init__": (),
- "PySide2.QtWidgets.QItemEditorFactory.createEditor": ('int', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QItemEditorFactory.defaultFactory": (),
- "PySide2.QtWidgets.QItemEditorFactory.registerEditor": ('int', 'PySide2.QtWidgets.QItemEditorCreatorBase'),
- "PySide2.QtWidgets.QItemEditorFactory.setDefaultFactory": ('PySide2.QtWidgets.QItemEditorFactory',),
- "PySide2.QtWidgets.QItemEditorFactory.valuePropertyName": ('int',),
-# class PySide2.QtWidgets.QKeyEventTransition:
- "PySide2.QtWidgets.QKeyEventTransition.__init__": [('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent.Type', 'int', 'PySide2.QtCore.QState'), ('PySide2.QtCore.QState',)],
- "PySide2.QtWidgets.QKeyEventTransition.eventTest": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QKeyEventTransition.key": (),
- "PySide2.QtWidgets.QKeyEventTransition.modifierMask": (),
- "PySide2.QtWidgets.QKeyEventTransition.onTransition": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QKeyEventTransition.setKey": ('int',),
- "PySide2.QtWidgets.QKeyEventTransition.setModifierMask": ('PySide2.QtCore.Qt.KeyboardModifiers',),
-# class PySide2.QtWidgets.QKeySequenceEdit:
- "PySide2.QtWidgets.QKeySequenceEdit.__init__": [('PySide2.QtGui.QKeySequence', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QKeySequenceEdit.clear": (),
- "PySide2.QtWidgets.QKeySequenceEdit.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QKeySequenceEdit.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QKeySequenceEdit.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QKeySequenceEdit.keySequence": (),
- "PySide2.QtWidgets.QKeySequenceEdit.setKeySequence": ('PySide2.QtGui.QKeySequence',),
- "PySide2.QtWidgets.QKeySequenceEdit.timerEvent": ('PySide2.QtCore.QTimerEvent',),
-# class PySide2.QtWidgets.QLCDNumber:
-# class PySide2.QtWidgets.QLCDNumber.Mode:
-# class PySide2.QtWidgets.QLCDNumber.SegmentStyle:
- "PySide2.QtWidgets.QLCDNumber.__init__": [('PySide2.QtWidgets.QWidget',), ('int', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QLCDNumber.checkOverflow": [('float',), ('int',)],
- "PySide2.QtWidgets.QLCDNumber.digitCount": (),
- "PySide2.QtWidgets.QLCDNumber.display": [('float',), ('int',), ('str',)],
- "PySide2.QtWidgets.QLCDNumber.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QLCDNumber.intValue": (),
- "PySide2.QtWidgets.QLCDNumber.mode": (),
- "PySide2.QtWidgets.QLCDNumber.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QLCDNumber.segmentStyle": (),
- "PySide2.QtWidgets.QLCDNumber.setBinMode": (),
- "PySide2.QtWidgets.QLCDNumber.setDecMode": (),
- "PySide2.QtWidgets.QLCDNumber.setDigitCount": ('int',),
- "PySide2.QtWidgets.QLCDNumber.setHexMode": (),
- "PySide2.QtWidgets.QLCDNumber.setMode": ('PySide2.QtWidgets.QLCDNumber.Mode',),
- "PySide2.QtWidgets.QLCDNumber.setOctMode": (),
- "PySide2.QtWidgets.QLCDNumber.setSegmentStyle": ('PySide2.QtWidgets.QLCDNumber.SegmentStyle',),
- "PySide2.QtWidgets.QLCDNumber.setSmallDecimalPoint": ('bool',),
- "PySide2.QtWidgets.QLCDNumber.sizeHint": (),
- "PySide2.QtWidgets.QLCDNumber.smallDecimalPoint": (),
- "PySide2.QtWidgets.QLCDNumber.value": (),
-# class PySide2.QtWidgets.QLabel:
- "PySide2.QtWidgets.QLabel.__init__": [('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'), ('str', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags')],
- "PySide2.QtWidgets.QLabel.alignment": (),
- "PySide2.QtWidgets.QLabel.buddy": (),
- "PySide2.QtWidgets.QLabel.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QLabel.clear": (),
- "PySide2.QtWidgets.QLabel.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QLabel.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QLabel.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QLabel.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QLabel.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QLabel.hasScaledContents": (),
- "PySide2.QtWidgets.QLabel.hasSelectedText": (),
- "PySide2.QtWidgets.QLabel.heightForWidth": ('int',),
- "PySide2.QtWidgets.QLabel.indent": (),
- "PySide2.QtWidgets.QLabel.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QLabel.margin": (),
- "PySide2.QtWidgets.QLabel.minimumSizeHint": (),
- "PySide2.QtWidgets.QLabel.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QLabel.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QLabel.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QLabel.movie": (),
- "PySide2.QtWidgets.QLabel.openExternalLinks": (),
- "PySide2.QtWidgets.QLabel.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QLabel.picture": (),
- "PySide2.QtWidgets.QLabel.pixmap": (),
- "PySide2.QtWidgets.QLabel.selectedText": (),
- "PySide2.QtWidgets.QLabel.selectionStart": (),
- "PySide2.QtWidgets.QLabel.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QLabel.setBuddy": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QLabel.setIndent": ('int',),
- "PySide2.QtWidgets.QLabel.setMargin": ('int',),
- "PySide2.QtWidgets.QLabel.setMovie": ('PySide2.QtGui.QMovie',),
- "PySide2.QtWidgets.QLabel.setNum": [('float',), ('int',)],
- "PySide2.QtWidgets.QLabel.setOpenExternalLinks": ('bool',),
- "PySide2.QtWidgets.QLabel.setPicture": ('PySide2.QtGui.QPicture',),
- "PySide2.QtWidgets.QLabel.setPixmap": ('PySide2.QtGui.QPixmap',),
- "PySide2.QtWidgets.QLabel.setScaledContents": ('bool',),
- "PySide2.QtWidgets.QLabel.setSelection": ('int', 'int'),
- "PySide2.QtWidgets.QLabel.setText": ('str',),
- "PySide2.QtWidgets.QLabel.setTextFormat": ('PySide2.QtCore.Qt.TextFormat',),
- "PySide2.QtWidgets.QLabel.setTextInteractionFlags": ('PySide2.QtCore.Qt.TextInteractionFlags',),
- "PySide2.QtWidgets.QLabel.setWordWrap": ('bool',),
- "PySide2.QtWidgets.QLabel.sizeHint": (),
- "PySide2.QtWidgets.QLabel.text": (),
- "PySide2.QtWidgets.QLabel.textFormat": (),
- "PySide2.QtWidgets.QLabel.textInteractionFlags": (),
- "PySide2.QtWidgets.QLabel.wordWrap": (),
-# class PySide2.QtWidgets.QLayout:
-# class PySide2.QtWidgets.QLayout.SizeConstraint:
- "PySide2.QtWidgets.QLayout.__init__": [(), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QLayout.activate": (),
- "PySide2.QtWidgets.QLayout.addChildLayout": ('PySide2.QtWidgets.QLayout',),
- "PySide2.QtWidgets.QLayout.addChildWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QLayout.addItem": ('PySide2.QtWidgets.QLayoutItem',),
- "PySide2.QtWidgets.QLayout.addWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QLayout.adoptLayout": ('PySide2.QtWidgets.QLayout',),
- "PySide2.QtWidgets.QLayout.alignmentRect": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QLayout.childEvent": ('PySide2.QtCore.QChildEvent',),
- "PySide2.QtWidgets.QLayout.closestAcceptableSize": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QSize'),
- "PySide2.QtWidgets.QLayout.contentsMargins": (),
- "PySide2.QtWidgets.QLayout.contentsRect": (),
- "PySide2.QtWidgets.QLayout.controlTypes": (),
- "PySide2.QtWidgets.QLayout.count": (),
- "PySide2.QtWidgets.QLayout.expandingDirections": (),
- "PySide2.QtWidgets.QLayout.geometry": (),
- "PySide2.QtWidgets.QLayout.getContentsMargins": (),
- "PySide2.QtWidgets.QLayout.indexOf": [('PySide2.QtWidgets.QLayoutItem',), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QLayout.invalidate": (),
- "PySide2.QtWidgets.QLayout.isEmpty": (),
- "PySide2.QtWidgets.QLayout.isEnabled": (),
- "PySide2.QtWidgets.QLayout.itemAt": ('int',),
- "PySide2.QtWidgets.QLayout.layout": (),
- "PySide2.QtWidgets.QLayout.margin": (),
- "PySide2.QtWidgets.QLayout.maximumSize": (),
- "PySide2.QtWidgets.QLayout.menuBar": (),
- "PySide2.QtWidgets.QLayout.minimumSize": (),
- "PySide2.QtWidgets.QLayout.parentWidget": (),
- "PySide2.QtWidgets.QLayout.removeItem": ('PySide2.QtWidgets.QLayoutItem',),
- "PySide2.QtWidgets.QLayout.removeWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QLayout.replaceWidget": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.FindChildOptions'),
- "PySide2.QtWidgets.QLayout.setAlignment": [('PySide2.QtCore.Qt.Alignment',), ('PySide2.QtWidgets.QLayout', 'PySide2.QtCore.Qt.Alignment'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.Alignment')],
- "PySide2.QtWidgets.QLayout.setContentsMargins": [('PySide2.QtCore.QMargins',), ('int', 'int', 'int', 'int')],
- "PySide2.QtWidgets.QLayout.setEnabled": ('bool',),
- "PySide2.QtWidgets.QLayout.setGeometry": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QLayout.setMargin": ('int',),
- "PySide2.QtWidgets.QLayout.setMenuBar": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QLayout.setSizeConstraint": ('PySide2.QtWidgets.QLayout.SizeConstraint',),
- "PySide2.QtWidgets.QLayout.setSpacing": ('int',),
- "PySide2.QtWidgets.QLayout.sizeConstraint": (),
- "PySide2.QtWidgets.QLayout.spacing": (),
- "PySide2.QtWidgets.QLayout.takeAt": ('int',),
- "PySide2.QtWidgets.QLayout.totalHeightForWidth": ('int',),
- "PySide2.QtWidgets.QLayout.totalMaximumSize": (),
- "PySide2.QtWidgets.QLayout.totalMinimumSize": (),
- "PySide2.QtWidgets.QLayout.totalSizeHint": (),
- "PySide2.QtWidgets.QLayout.update": (),
- "PySide2.QtWidgets.QLayout.widgetEvent": ('PySide2.QtCore.QEvent',),
-# class PySide2.QtWidgets.QLayoutItem:
- "PySide2.QtWidgets.QLayoutItem.__init__": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QLayoutItem.alignment": (),
- "PySide2.QtWidgets.QLayoutItem.controlTypes": (),
- "PySide2.QtWidgets.QLayoutItem.expandingDirections": (),
- "PySide2.QtWidgets.QLayoutItem.geometry": (),
- "PySide2.QtWidgets.QLayoutItem.hasHeightForWidth": (),
- "PySide2.QtWidgets.QLayoutItem.heightForWidth": ('int',),
- "PySide2.QtWidgets.QLayoutItem.invalidate": (),
- "PySide2.QtWidgets.QLayoutItem.isEmpty": (),
- "PySide2.QtWidgets.QLayoutItem.layout": (),
- "PySide2.QtWidgets.QLayoutItem.maximumSize": (),
- "PySide2.QtWidgets.QLayoutItem.minimumHeightForWidth": ('int',),
- "PySide2.QtWidgets.QLayoutItem.minimumSize": (),
- "PySide2.QtWidgets.QLayoutItem.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QLayoutItem.setGeometry": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QLayoutItem.sizeHint": (),
- "PySide2.QtWidgets.QLayoutItem.spacerItem": (),
- "PySide2.QtWidgets.QLayoutItem.widget": (),
-# class PySide2.QtWidgets.QLineEdit:
-# class PySide2.QtWidgets.QLineEdit.ActionPosition:
-# class PySide2.QtWidgets.QLineEdit.EchoMode:
- "PySide2.QtWidgets.QLineEdit.__init__": [('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QLineEdit.addAction": [('PySide2.QtGui.QIcon', 'PySide2.QtWidgets.QLineEdit.ActionPosition'), ('PySide2.QtWidgets.QAction',), ('PySide2.QtWidgets.QAction', 'PySide2.QtWidgets.QLineEdit.ActionPosition')],
- "PySide2.QtWidgets.QLineEdit.alignment": (),
- "PySide2.QtWidgets.QLineEdit.backspace": (),
- "PySide2.QtWidgets.QLineEdit.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QLineEdit.clear": (),
- "PySide2.QtWidgets.QLineEdit.completer": (),
- "PySide2.QtWidgets.QLineEdit.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QLineEdit.copy": (),
- "PySide2.QtWidgets.QLineEdit.createStandardContextMenu": (),
- "PySide2.QtWidgets.QLineEdit.cursorBackward": ('bool', 'int'),
- "PySide2.QtWidgets.QLineEdit.cursorForward": ('bool', 'int'),
- "PySide2.QtWidgets.QLineEdit.cursorMoveStyle": (),
- "PySide2.QtWidgets.QLineEdit.cursorPosition": (),
- "PySide2.QtWidgets.QLineEdit.cursorPositionAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QLineEdit.cursorRect": (),
- "PySide2.QtWidgets.QLineEdit.cursorWordBackward": ('bool',),
- "PySide2.QtWidgets.QLineEdit.cursorWordForward": ('bool',),
- "PySide2.QtWidgets.QLineEdit.cut": (),
- "PySide2.QtWidgets.QLineEdit.del_": (),
- "PySide2.QtWidgets.QLineEdit.deselect": (),
- "PySide2.QtWidgets.QLineEdit.displayText": (),
- "PySide2.QtWidgets.QLineEdit.dragEnabled": (),
- "PySide2.QtWidgets.QLineEdit.dragEnterEvent": ('PySide2.QtGui.QDragEnterEvent',),
- "PySide2.QtWidgets.QLineEdit.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtWidgets.QLineEdit.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtWidgets.QLineEdit.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QLineEdit.echoMode": (),
- "PySide2.QtWidgets.QLineEdit.end": ('bool',),
- "PySide2.QtWidgets.QLineEdit.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QLineEdit.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QLineEdit.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QLineEdit.getTextMargins": (),
- "PySide2.QtWidgets.QLineEdit.hasAcceptableInput": (),
- "PySide2.QtWidgets.QLineEdit.hasFrame": (),
- "PySide2.QtWidgets.QLineEdit.hasSelectedText": (),
- "PySide2.QtWidgets.QLineEdit.home": ('bool',),
- "PySide2.QtWidgets.QLineEdit.initStyleOption": ('PySide2.QtWidgets.QStyleOptionFrame',),
- "PySide2.QtWidgets.QLineEdit.inputMask": (),
- "PySide2.QtWidgets.QLineEdit.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QLineEdit.inputMethodQuery": [('PySide2.QtCore.Qt.InputMethodQuery',), ('PySide2.QtCore.Qt.InputMethodQuery', 'typing.Any')],
- "PySide2.QtWidgets.QLineEdit.insert": ('str',),
- "PySide2.QtWidgets.QLineEdit.isClearButtonEnabled": (),
- "PySide2.QtWidgets.QLineEdit.isModified": (),
- "PySide2.QtWidgets.QLineEdit.isReadOnly": (),
- "PySide2.QtWidgets.QLineEdit.isRedoAvailable": (),
- "PySide2.QtWidgets.QLineEdit.isUndoAvailable": (),
- "PySide2.QtWidgets.QLineEdit.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QLineEdit.maxLength": (),
- "PySide2.QtWidgets.QLineEdit.minimumSizeHint": (),
- "PySide2.QtWidgets.QLineEdit.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QLineEdit.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QLineEdit.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QLineEdit.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QLineEdit.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QLineEdit.paste": (),
- "PySide2.QtWidgets.QLineEdit.placeholderText": (),
- "PySide2.QtWidgets.QLineEdit.redo": (),
- "PySide2.QtWidgets.QLineEdit.selectAll": (),
- "PySide2.QtWidgets.QLineEdit.selectedText": (),
- "PySide2.QtWidgets.QLineEdit.selectionEnd": (),
- "PySide2.QtWidgets.QLineEdit.selectionLength": (),
- "PySide2.QtWidgets.QLineEdit.selectionStart": (),
- "PySide2.QtWidgets.QLineEdit.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QLineEdit.setClearButtonEnabled": ('bool',),
- "PySide2.QtWidgets.QLineEdit.setCompleter": ('PySide2.QtWidgets.QCompleter',),
- "PySide2.QtWidgets.QLineEdit.setCursorMoveStyle": ('PySide2.QtCore.Qt.CursorMoveStyle',),
- "PySide2.QtWidgets.QLineEdit.setCursorPosition": ('int',),
- "PySide2.QtWidgets.QLineEdit.setDragEnabled": ('bool',),
- "PySide2.QtWidgets.QLineEdit.setEchoMode": ('PySide2.QtWidgets.QLineEdit.EchoMode',),
- "PySide2.QtWidgets.QLineEdit.setFrame": ('bool',),
- "PySide2.QtWidgets.QLineEdit.setInputMask": ('str',),
- "PySide2.QtWidgets.QLineEdit.setMaxLength": ('int',),
- "PySide2.QtWidgets.QLineEdit.setModified": ('bool',),
- "PySide2.QtWidgets.QLineEdit.setPlaceholderText": ('str',),
- "PySide2.QtWidgets.QLineEdit.setReadOnly": ('bool',),
- "PySide2.QtWidgets.QLineEdit.setSelection": ('int', 'int'),
- "PySide2.QtWidgets.QLineEdit.setText": ('str',),
- "PySide2.QtWidgets.QLineEdit.setTextMargins": [('PySide2.QtCore.QMargins',), ('int', 'int', 'int', 'int')],
- "PySide2.QtWidgets.QLineEdit.setValidator": ('PySide2.QtGui.QValidator',),
- "PySide2.QtWidgets.QLineEdit.sizeHint": (),
- "PySide2.QtWidgets.QLineEdit.text": (),
- "PySide2.QtWidgets.QLineEdit.textMargins": (),
- "PySide2.QtWidgets.QLineEdit.undo": (),
- "PySide2.QtWidgets.QLineEdit.validator": (),
-# class PySide2.QtWidgets.QListView:
-# class PySide2.QtWidgets.QListView.Flow:
-# class PySide2.QtWidgets.QListView.LayoutMode:
-# class PySide2.QtWidgets.QListView.Movement:
-# class PySide2.QtWidgets.QListView.ResizeMode:
-# class PySide2.QtWidgets.QListView.ViewMode:
- "PySide2.QtWidgets.QListView.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QListView.batchSize": (),
- "PySide2.QtWidgets.QListView.clearPropertyFlags": (),
- "PySide2.QtWidgets.QListView.contentsSize": (),
- "PySide2.QtWidgets.QListView.currentChanged": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QListView.dataChanged": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex', 'typing.List[int]'),
- "PySide2.QtWidgets.QListView.doItemsLayout": (),
- "PySide2.QtWidgets.QListView.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtWidgets.QListView.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtWidgets.QListView.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QListView.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QListView.flow": (),
- "PySide2.QtWidgets.QListView.gridSize": (),
- "PySide2.QtWidgets.QListView.horizontalOffset": (),
- "PySide2.QtWidgets.QListView.indexAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QListView.isIndexHidden": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QListView.isRowHidden": ('int',),
- "PySide2.QtWidgets.QListView.isSelectionRectVisible": (),
- "PySide2.QtWidgets.QListView.isWrapping": (),
- "PySide2.QtWidgets.QListView.itemAlignment": (),
- "PySide2.QtWidgets.QListView.layoutMode": (),
- "PySide2.QtWidgets.QListView.modelColumn": (),
- "PySide2.QtWidgets.QListView.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QListView.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QListView.moveCursor": ('PySide2.QtWidgets.QAbstractItemView.CursorAction', 'PySide2.QtCore.Qt.KeyboardModifiers'),
- "PySide2.QtWidgets.QListView.movement": (),
- "PySide2.QtWidgets.QListView.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QListView.rectForIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QListView.reset": (),
- "PySide2.QtWidgets.QListView.resizeContents": ('int', 'int'),
- "PySide2.QtWidgets.QListView.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QListView.resizeMode": (),
- "PySide2.QtWidgets.QListView.rowsAboutToBeRemoved": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QListView.rowsInserted": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QListView.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QListView.scrollTo": ('PySide2.QtCore.QModelIndex', 'PySide2.QtWidgets.QAbstractItemView.ScrollHint'),
- "PySide2.QtWidgets.QListView.selectedIndexes": (),
- "PySide2.QtWidgets.QListView.selectionChanged": ('PySide2.QtCore.QItemSelection', 'PySide2.QtCore.QItemSelection'),
- "PySide2.QtWidgets.QListView.setBatchSize": ('int',),
- "PySide2.QtWidgets.QListView.setFlow": ('PySide2.QtWidgets.QListView.Flow',),
- "PySide2.QtWidgets.QListView.setGridSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QListView.setItemAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QListView.setLayoutMode": ('PySide2.QtWidgets.QListView.LayoutMode',),
- "PySide2.QtWidgets.QListView.setModelColumn": ('int',),
- "PySide2.QtWidgets.QListView.setMovement": ('PySide2.QtWidgets.QListView.Movement',),
- "PySide2.QtWidgets.QListView.setPositionForIndex": ('PySide2.QtCore.QPoint', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QListView.setResizeMode": ('PySide2.QtWidgets.QListView.ResizeMode',),
- "PySide2.QtWidgets.QListView.setRootIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QListView.setRowHidden": ('int', 'bool'),
- "PySide2.QtWidgets.QListView.setSelection": ('PySide2.QtCore.QRect', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags'),
- "PySide2.QtWidgets.QListView.setSelectionRectVisible": ('bool',),
- "PySide2.QtWidgets.QListView.setSpacing": ('int',),
- "PySide2.QtWidgets.QListView.setUniformItemSizes": ('bool',),
- "PySide2.QtWidgets.QListView.setViewMode": ('PySide2.QtWidgets.QListView.ViewMode',),
- "PySide2.QtWidgets.QListView.setWordWrap": ('bool',),
- "PySide2.QtWidgets.QListView.setWrapping": ('bool',),
- "PySide2.QtWidgets.QListView.spacing": (),
- "PySide2.QtWidgets.QListView.startDrag": ('PySide2.QtCore.Qt.DropActions',),
- "PySide2.QtWidgets.QListView.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QListView.uniformItemSizes": (),
- "PySide2.QtWidgets.QListView.updateGeometries": (),
- "PySide2.QtWidgets.QListView.verticalOffset": (),
- "PySide2.QtWidgets.QListView.viewMode": (),
- "PySide2.QtWidgets.QListView.viewOptions": (),
- "PySide2.QtWidgets.QListView.viewportSizeHint": (),
- "PySide2.QtWidgets.QListView.visualRect": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QListView.visualRegionForSelection": ('PySide2.QtCore.QItemSelection',),
- "PySide2.QtWidgets.QListView.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
- "PySide2.QtWidgets.QListView.wordWrap": (),
-# class PySide2.QtWidgets.QListWidget:
- "PySide2.QtWidgets.QListWidget.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QListWidget.addItem": [('PySide2.QtWidgets.QListWidgetItem',), ('str',)],
- "PySide2.QtWidgets.QListWidget.addItems": ('typing.Sequence[str]',),
- "PySide2.QtWidgets.QListWidget.clear": (),
- "PySide2.QtWidgets.QListWidget.closePersistentEditor": [('PySide2.QtCore.QModelIndex',), ('PySide2.QtWidgets.QListWidgetItem',)],
- "PySide2.QtWidgets.QListWidget.count": (),
- "PySide2.QtWidgets.QListWidget.currentItem": (),
- "PySide2.QtWidgets.QListWidget.currentRow": (),
- "PySide2.QtWidgets.QListWidget.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QListWidget.dropMimeData": ('int', 'PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction'),
- "PySide2.QtWidgets.QListWidget.editItem": ('PySide2.QtWidgets.QListWidgetItem',),
- "PySide2.QtWidgets.QListWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QListWidget.findItems": ('str', 'PySide2.QtCore.Qt.MatchFlags'),
- "PySide2.QtWidgets.QListWidget.indexFromItem": ('PySide2.QtWidgets.QListWidgetItem',),
- "PySide2.QtWidgets.QListWidget.insertItem": [('int', 'PySide2.QtWidgets.QListWidgetItem'), ('int', 'str')],
- "PySide2.QtWidgets.QListWidget.insertItems": ('int', 'typing.Sequence[str]'),
- "PySide2.QtWidgets.QListWidget.isItemHidden": ('PySide2.QtWidgets.QListWidgetItem',),
- "PySide2.QtWidgets.QListWidget.isItemSelected": ('PySide2.QtWidgets.QListWidgetItem',),
- "PySide2.QtWidgets.QListWidget.isPersistentEditorOpen": [('PySide2.QtCore.QModelIndex',), ('PySide2.QtWidgets.QListWidgetItem',)],
- "PySide2.QtWidgets.QListWidget.isSortingEnabled": (),
- "PySide2.QtWidgets.QListWidget.item": ('int',),
- "PySide2.QtWidgets.QListWidget.itemAt": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtWidgets.QListWidget.itemFromIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QListWidget.itemWidget": ('PySide2.QtWidgets.QListWidgetItem',),
- "PySide2.QtWidgets.QListWidget.items": ('PySide2.QtCore.QMimeData',),
- "PySide2.QtWidgets.QListWidget.mimeData": ('typing.Sequence[PySide2.QtWidgets.QListWidgetItem]',),
- "PySide2.QtWidgets.QListWidget.mimeTypes": (),
- "PySide2.QtWidgets.QListWidget.openPersistentEditor": [('PySide2.QtCore.QModelIndex',), ('PySide2.QtWidgets.QListWidgetItem',)],
- "PySide2.QtWidgets.QListWidget.removeItemWidget": ('PySide2.QtWidgets.QListWidgetItem',),
- "PySide2.QtWidgets.QListWidget.row": ('PySide2.QtWidgets.QListWidgetItem',),
- "PySide2.QtWidgets.QListWidget.scrollToItem": ('PySide2.QtWidgets.QListWidgetItem', 'PySide2.QtWidgets.QAbstractItemView.ScrollHint'),
- "PySide2.QtWidgets.QListWidget.selectedItems": (),
- "PySide2.QtWidgets.QListWidget.setCurrentItem": [('PySide2.QtWidgets.QListWidgetItem',), ('PySide2.QtWidgets.QListWidgetItem', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags')],
- "PySide2.QtWidgets.QListWidget.setCurrentRow": [('int',), ('int', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags')],
- "PySide2.QtWidgets.QListWidget.setItemHidden": ('PySide2.QtWidgets.QListWidgetItem', 'bool'),
- "PySide2.QtWidgets.QListWidget.setItemSelected": ('PySide2.QtWidgets.QListWidgetItem', 'bool'),
- "PySide2.QtWidgets.QListWidget.setItemWidget": ('PySide2.QtWidgets.QListWidgetItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QListWidget.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QListWidget.setSelectionModel": ('PySide2.QtCore.QItemSelectionModel',),
- "PySide2.QtWidgets.QListWidget.setSortingEnabled": ('bool',),
- "PySide2.QtWidgets.QListWidget.sortItems": ('PySide2.QtCore.Qt.SortOrder',),
- "PySide2.QtWidgets.QListWidget.supportedDropActions": (),
- "PySide2.QtWidgets.QListWidget.takeItem": ('int',),
- "PySide2.QtWidgets.QListWidget.visualItemRect": ('PySide2.QtWidgets.QListWidgetItem',),
-# class PySide2.QtWidgets.QListWidgetItem:
-# class PySide2.QtWidgets.QListWidgetItem.ItemType:
- "PySide2.QtWidgets.QListWidgetItem.__init__": [('PySide2.QtGui.QIcon', 'str', 'PySide2.QtWidgets.QListWidget', 'int'), ('PySide2.QtWidgets.QListWidget', 'int'), ('PySide2.QtWidgets.QListWidgetItem',), ('str', 'PySide2.QtWidgets.QListWidget', 'int')],
- "PySide2.QtWidgets.QListWidgetItem.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QListWidgetItem.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QListWidgetItem.background": (),
- "PySide2.QtWidgets.QListWidgetItem.backgroundColor": (),
- "PySide2.QtWidgets.QListWidgetItem.checkState": (),
- "PySide2.QtWidgets.QListWidgetItem.clone": (),
- "PySide2.QtWidgets.QListWidgetItem.data": ('int',),
- "PySide2.QtWidgets.QListWidgetItem.flags": (),
- "PySide2.QtWidgets.QListWidgetItem.font": (),
- "PySide2.QtWidgets.QListWidgetItem.foreground": (),
- "PySide2.QtWidgets.QListWidgetItem.icon": (),
- "PySide2.QtWidgets.QListWidgetItem.isHidden": (),
- "PySide2.QtWidgets.QListWidgetItem.isSelected": (),
- "PySide2.QtWidgets.QListWidgetItem.listWidget": (),
- "PySide2.QtWidgets.QListWidgetItem.read": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QListWidgetItem.setBackground": ('PySide2.QtGui.QBrush',),
- "PySide2.QtWidgets.QListWidgetItem.setBackgroundColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QListWidgetItem.setCheckState": ('PySide2.QtCore.Qt.CheckState',),
- "PySide2.QtWidgets.QListWidgetItem.setData": ('int', 'typing.Any'),
- "PySide2.QtWidgets.QListWidgetItem.setFlags": ('PySide2.QtCore.Qt.ItemFlags',),
- "PySide2.QtWidgets.QListWidgetItem.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QListWidgetItem.setForeground": ('PySide2.QtGui.QBrush',),
- "PySide2.QtWidgets.QListWidgetItem.setHidden": ('bool',),
- "PySide2.QtWidgets.QListWidgetItem.setIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtWidgets.QListWidgetItem.setSelected": ('bool',),
- "PySide2.QtWidgets.QListWidgetItem.setSizeHint": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QListWidgetItem.setStatusTip": ('str',),
- "PySide2.QtWidgets.QListWidgetItem.setText": ('str',),
- "PySide2.QtWidgets.QListWidgetItem.setTextAlignment": ('int',),
- "PySide2.QtWidgets.QListWidgetItem.setTextColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QListWidgetItem.setToolTip": ('str',),
- "PySide2.QtWidgets.QListWidgetItem.setWhatsThis": ('str',),
- "PySide2.QtWidgets.QListWidgetItem.sizeHint": (),
- "PySide2.QtWidgets.QListWidgetItem.statusTip": (),
- "PySide2.QtWidgets.QListWidgetItem.text": (),
- "PySide2.QtWidgets.QListWidgetItem.textAlignment": (),
- "PySide2.QtWidgets.QListWidgetItem.textColor": (),
- "PySide2.QtWidgets.QListWidgetItem.toolTip": (),
- "PySide2.QtWidgets.QListWidgetItem.type": (),
- "PySide2.QtWidgets.QListWidgetItem.whatsThis": (),
- "PySide2.QtWidgets.QListWidgetItem.write": ('PySide2.QtCore.QDataStream',),
-# class PySide2.QtWidgets.QMainWindow:
-# class PySide2.QtWidgets.QMainWindow.DockOption:
-# class PySide2.QtWidgets.QMainWindow.DockOptions:
- "PySide2.QtWidgets.QMainWindow.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QMainWindow.addDockWidget": [('PySide2.QtCore.Qt.DockWidgetArea', 'PySide2.QtWidgets.QDockWidget'), ('PySide2.QtCore.Qt.DockWidgetArea', 'PySide2.QtWidgets.QDockWidget', 'PySide2.QtCore.Qt.Orientation')],
- "PySide2.QtWidgets.QMainWindow.addToolBar": [('PySide2.QtCore.Qt.ToolBarArea', 'PySide2.QtWidgets.QToolBar'), ('PySide2.QtWidgets.QToolBar',), ('str',)],
- "PySide2.QtWidgets.QMainWindow.addToolBarBreak": ('PySide2.QtCore.Qt.ToolBarArea',),
- "PySide2.QtWidgets.QMainWindow.centralWidget": (),
- "PySide2.QtWidgets.QMainWindow.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QMainWindow.corner": ('PySide2.QtCore.Qt.Corner',),
- "PySide2.QtWidgets.QMainWindow.createPopupMenu": (),
- "PySide2.QtWidgets.QMainWindow.dockOptions": (),
- "PySide2.QtWidgets.QMainWindow.dockWidgetArea": ('PySide2.QtWidgets.QDockWidget',),
- "PySide2.QtWidgets.QMainWindow.documentMode": (),
- "PySide2.QtWidgets.QMainWindow.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMainWindow.iconSize": (),
- "PySide2.QtWidgets.QMainWindow.insertToolBar": ('PySide2.QtWidgets.QToolBar', 'PySide2.QtWidgets.QToolBar'),
- "PySide2.QtWidgets.QMainWindow.insertToolBarBreak": ('PySide2.QtWidgets.QToolBar',),
- "PySide2.QtWidgets.QMainWindow.isAnimated": (),
- "PySide2.QtWidgets.QMainWindow.isDockNestingEnabled": (),
- "PySide2.QtWidgets.QMainWindow.isSeparator": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QMainWindow.menuBar": (),
- "PySide2.QtWidgets.QMainWindow.menuWidget": (),
- "PySide2.QtWidgets.QMainWindow.removeDockWidget": ('PySide2.QtWidgets.QDockWidget',),
- "PySide2.QtWidgets.QMainWindow.removeToolBar": ('PySide2.QtWidgets.QToolBar',),
- "PySide2.QtWidgets.QMainWindow.removeToolBarBreak": ('PySide2.QtWidgets.QToolBar',),
- "PySide2.QtWidgets.QMainWindow.resizeDocks": ('typing.Sequence[PySide2.QtWidgets.QDockWidget]', 'typing.Sequence[int]', 'PySide2.QtCore.Qt.Orientation'),
- "PySide2.QtWidgets.QMainWindow.restoreDockWidget": ('PySide2.QtWidgets.QDockWidget',),
- "PySide2.QtWidgets.QMainWindow.restoreState": ('PySide2.QtCore.QByteArray', 'int'),
- "PySide2.QtWidgets.QMainWindow.saveState": ('int',),
- "PySide2.QtWidgets.QMainWindow.setAnimated": ('bool',),
- "PySide2.QtWidgets.QMainWindow.setCentralWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QMainWindow.setCorner": ('PySide2.QtCore.Qt.Corner', 'PySide2.QtCore.Qt.DockWidgetArea'),
- "PySide2.QtWidgets.QMainWindow.setDockNestingEnabled": ('bool',),
- "PySide2.QtWidgets.QMainWindow.setDockOptions": ('PySide2.QtWidgets.QMainWindow.DockOptions',),
- "PySide2.QtWidgets.QMainWindow.setDocumentMode": ('bool',),
- "PySide2.QtWidgets.QMainWindow.setIconSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QMainWindow.setMenuBar": ('PySide2.QtWidgets.QMenuBar',),
- "PySide2.QtWidgets.QMainWindow.setMenuWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QMainWindow.setStatusBar": ('PySide2.QtWidgets.QStatusBar',),
- "PySide2.QtWidgets.QMainWindow.setTabPosition": ('PySide2.QtCore.Qt.DockWidgetAreas', 'PySide2.QtWidgets.QTabWidget.TabPosition'),
- "PySide2.QtWidgets.QMainWindow.setTabShape": ('PySide2.QtWidgets.QTabWidget.TabShape',),
- "PySide2.QtWidgets.QMainWindow.setToolButtonStyle": ('PySide2.QtCore.Qt.ToolButtonStyle',),
- "PySide2.QtWidgets.QMainWindow.setUnifiedTitleAndToolBarOnMac": ('bool',),
- "PySide2.QtWidgets.QMainWindow.splitDockWidget": ('PySide2.QtWidgets.QDockWidget', 'PySide2.QtWidgets.QDockWidget', 'PySide2.QtCore.Qt.Orientation'),
- "PySide2.QtWidgets.QMainWindow.statusBar": (),
- "PySide2.QtWidgets.QMainWindow.tabPosition": ('PySide2.QtCore.Qt.DockWidgetArea',),
- "PySide2.QtWidgets.QMainWindow.tabShape": (),
- "PySide2.QtWidgets.QMainWindow.tabifiedDockWidgets": ('PySide2.QtWidgets.QDockWidget',),
- "PySide2.QtWidgets.QMainWindow.tabifyDockWidget": ('PySide2.QtWidgets.QDockWidget', 'PySide2.QtWidgets.QDockWidget'),
- "PySide2.QtWidgets.QMainWindow.takeCentralWidget": (),
- "PySide2.QtWidgets.QMainWindow.toolBarArea": ('PySide2.QtWidgets.QToolBar',),
- "PySide2.QtWidgets.QMainWindow.toolBarBreak": ('PySide2.QtWidgets.QToolBar',),
- "PySide2.QtWidgets.QMainWindow.toolButtonStyle": (),
- "PySide2.QtWidgets.QMainWindow.unifiedTitleAndToolBarOnMac": (),
-# class PySide2.QtWidgets.QMdiArea:
-# class PySide2.QtWidgets.QMdiArea.AreaOption:
-# class PySide2.QtWidgets.QMdiArea.AreaOptions:
-# class PySide2.QtWidgets.QMdiArea.ViewMode:
-# class PySide2.QtWidgets.QMdiArea.WindowOrder:
- "PySide2.QtWidgets.QMdiArea.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QMdiArea.activateNextSubWindow": (),
- "PySide2.QtWidgets.QMdiArea.activatePreviousSubWindow": (),
- "PySide2.QtWidgets.QMdiArea.activationOrder": (),
- "PySide2.QtWidgets.QMdiArea.activeSubWindow": (),
- "PySide2.QtWidgets.QMdiArea.addSubWindow": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QMdiArea.background": (),
- "PySide2.QtWidgets.QMdiArea.cascadeSubWindows": (),
- "PySide2.QtWidgets.QMdiArea.childEvent": ('PySide2.QtCore.QChildEvent',),
- "PySide2.QtWidgets.QMdiArea.closeActiveSubWindow": (),
- "PySide2.QtWidgets.QMdiArea.closeAllSubWindows": (),
- "PySide2.QtWidgets.QMdiArea.currentSubWindow": (),
- "PySide2.QtWidgets.QMdiArea.documentMode": (),
- "PySide2.QtWidgets.QMdiArea.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMdiArea.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QMdiArea.minimumSizeHint": (),
- "PySide2.QtWidgets.QMdiArea.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QMdiArea.removeSubWindow": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QMdiArea.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QMdiArea.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QMdiArea.setActivationOrder": ('PySide2.QtWidgets.QMdiArea.WindowOrder',),
- "PySide2.QtWidgets.QMdiArea.setActiveSubWindow": ('PySide2.QtWidgets.QMdiSubWindow',),
- "PySide2.QtWidgets.QMdiArea.setBackground": ('PySide2.QtGui.QBrush',),
- "PySide2.QtWidgets.QMdiArea.setDocumentMode": ('bool',),
- "PySide2.QtWidgets.QMdiArea.setOption": ('PySide2.QtWidgets.QMdiArea.AreaOption', 'bool'),
- "PySide2.QtWidgets.QMdiArea.setTabPosition": ('PySide2.QtWidgets.QTabWidget.TabPosition',),
- "PySide2.QtWidgets.QMdiArea.setTabShape": ('PySide2.QtWidgets.QTabWidget.TabShape',),
- "PySide2.QtWidgets.QMdiArea.setTabsClosable": ('bool',),
- "PySide2.QtWidgets.QMdiArea.setTabsMovable": ('bool',),
- "PySide2.QtWidgets.QMdiArea.setViewMode": ('PySide2.QtWidgets.QMdiArea.ViewMode',),
- "PySide2.QtWidgets.QMdiArea.setupViewport": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QMdiArea.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QMdiArea.sizeHint": (),
- "PySide2.QtWidgets.QMdiArea.subWindowList": ('PySide2.QtWidgets.QMdiArea.WindowOrder',),
- "PySide2.QtWidgets.QMdiArea.tabPosition": (),
- "PySide2.QtWidgets.QMdiArea.tabShape": (),
- "PySide2.QtWidgets.QMdiArea.tabsClosable": (),
- "PySide2.QtWidgets.QMdiArea.tabsMovable": (),
- "PySide2.QtWidgets.QMdiArea.testOption": ('PySide2.QtWidgets.QMdiArea.AreaOption',),
- "PySide2.QtWidgets.QMdiArea.tileSubWindows": (),
- "PySide2.QtWidgets.QMdiArea.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QMdiArea.viewMode": (),
- "PySide2.QtWidgets.QMdiArea.viewportEvent": ('PySide2.QtCore.QEvent',),
-# class PySide2.QtWidgets.QMdiSubWindow:
-# class PySide2.QtWidgets.QMdiSubWindow.SubWindowOption:
-# class PySide2.QtWidgets.QMdiSubWindow.SubWindowOptions:
- "PySide2.QtWidgets.QMdiSubWindow.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QMdiSubWindow.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.childEvent": ('PySide2.QtCore.QChildEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.closeEvent": ('PySide2.QtGui.QCloseEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QMdiSubWindow.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.isShaded": (),
- "PySide2.QtWidgets.QMdiSubWindow.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.keyboardPageStep": (),
- "PySide2.QtWidgets.QMdiSubWindow.keyboardSingleStep": (),
- "PySide2.QtWidgets.QMdiSubWindow.leaveEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.maximizedButtonsWidget": (),
- "PySide2.QtWidgets.QMdiSubWindow.maximizedSystemMenuIconWidget": (),
- "PySide2.QtWidgets.QMdiSubWindow.mdiArea": (),
- "PySide2.QtWidgets.QMdiSubWindow.minimumSizeHint": (),
- "PySide2.QtWidgets.QMdiSubWindow.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.moveEvent": ('PySide2.QtGui.QMoveEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.setKeyboardPageStep": ('int',),
- "PySide2.QtWidgets.QMdiSubWindow.setKeyboardSingleStep": ('int',),
- "PySide2.QtWidgets.QMdiSubWindow.setOption": ('PySide2.QtWidgets.QMdiSubWindow.SubWindowOption', 'bool'),
- "PySide2.QtWidgets.QMdiSubWindow.setSystemMenu": ('PySide2.QtWidgets.QMenu',),
- "PySide2.QtWidgets.QMdiSubWindow.setWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QMdiSubWindow.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.showShaded": (),
- "PySide2.QtWidgets.QMdiSubWindow.showSystemMenu": (),
- "PySide2.QtWidgets.QMdiSubWindow.sizeHint": (),
- "PySide2.QtWidgets.QMdiSubWindow.systemMenu": (),
- "PySide2.QtWidgets.QMdiSubWindow.testOption": ('PySide2.QtWidgets.QMdiSubWindow.SubWindowOption',),
- "PySide2.QtWidgets.QMdiSubWindow.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QMdiSubWindow.widget": (),
-# class PySide2.QtWidgets.QMenu:
- "PySide2.QtWidgets.QMenu.__init__": [('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QMenu.actionAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QMenu.actionEvent": ('PySide2.QtGui.QActionEvent',),
- "PySide2.QtWidgets.QMenu.actionGeometry": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QMenu.activeAction": (),
- "PySide2.QtWidgets.QMenu.addAction": [('PySide2.QtGui.QIcon', 'str'), ('PySide2.QtGui.QIcon', 'str', 'PySide2.QtCore.QObject', 'str', 'PySide2.QtGui.QKeySequence'), ('PySide2.QtGui.QIcon', 'str', 'object', 'PySide2.QtGui.QKeySequence'), ('PySide2.QtWidgets.QAction',), ('str',), ('str', 'PySide2.QtCore.QObject', 'str', 'PySide2.QtGui.QKeySequence'), ('str', 'object', 'PySide2.QtGui.QKeySequence')],
- "PySide2.QtWidgets.QMenu.addMenu": [('PySide2.QtGui.QIcon', 'str'), ('PySide2.QtWidgets.QMenu',), ('str',)],
- "PySide2.QtWidgets.QMenu.addSection": [('PySide2.QtGui.QIcon', 'str'), ('str',)],
- "PySide2.QtWidgets.QMenu.addSeparator": (),
- "PySide2.QtWidgets.QMenu.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMenu.clear": (),
- "PySide2.QtWidgets.QMenu.columnCount": (),
- "PySide2.QtWidgets.QMenu.defaultAction": (),
- "PySide2.QtWidgets.QMenu.enterEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMenu.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMenu.exec_": [(), ('PySide2.QtCore.QPoint', 'PySide2.QtWidgets.QAction'), ('typing.Sequence[PySide2.QtWidgets.QAction]', 'PySide2.QtCore.QPoint', 'PySide2.QtWidgets.QAction', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QMenu.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QMenu.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWidgets.QMenu.hideTearOffMenu": (),
- "PySide2.QtWidgets.QMenu.icon": (),
- "PySide2.QtWidgets.QMenu.initStyleOption": ('PySide2.QtWidgets.QStyleOptionMenuItem', 'PySide2.QtWidgets.QAction'),
- "PySide2.QtWidgets.QMenu.insertMenu": ('PySide2.QtWidgets.QAction', 'PySide2.QtWidgets.QMenu'),
- "PySide2.QtWidgets.QMenu.insertSection": [('PySide2.QtWidgets.QAction', 'PySide2.QtGui.QIcon', 'str'), ('PySide2.QtWidgets.QAction', 'str')],
- "PySide2.QtWidgets.QMenu.insertSeparator": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QMenu.isEmpty": (),
- "PySide2.QtWidgets.QMenu.isTearOffEnabled": (),
- "PySide2.QtWidgets.QMenu.isTearOffMenuVisible": (),
- "PySide2.QtWidgets.QMenu.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QMenu.leaveEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMenu.menuAction": (),
- "PySide2.QtWidgets.QMenu.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QMenu.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QMenu.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QMenu.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QMenu.popup": ('PySide2.QtCore.QPoint', 'PySide2.QtWidgets.QAction'),
- "PySide2.QtWidgets.QMenu.separatorsCollapsible": (),
- "PySide2.QtWidgets.QMenu.setActiveAction": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QMenu.setDefaultAction": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QMenu.setIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtWidgets.QMenu.setSeparatorsCollapsible": ('bool',),
- "PySide2.QtWidgets.QMenu.setTearOffEnabled": ('bool',),
- "PySide2.QtWidgets.QMenu.setTitle": ('str',),
- "PySide2.QtWidgets.QMenu.setToolTipsVisible": ('bool',),
- "PySide2.QtWidgets.QMenu.showTearOffMenu": [(), ('PySide2.QtCore.QPoint',)],
- "PySide2.QtWidgets.QMenu.sizeHint": (),
- "PySide2.QtWidgets.QMenu.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QMenu.title": (),
- "PySide2.QtWidgets.QMenu.toolTipsVisible": (),
- "PySide2.QtWidgets.QMenu.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtWidgets.QMenuBar:
- "PySide2.QtWidgets.QMenuBar.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QMenuBar.actionAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QMenuBar.actionEvent": ('PySide2.QtGui.QActionEvent',),
- "PySide2.QtWidgets.QMenuBar.actionGeometry": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QMenuBar.activeAction": (),
- "PySide2.QtWidgets.QMenuBar.addAction": [('PySide2.QtWidgets.QAction',), ('str',), ('str', 'PySide2.QtCore.QObject', 'str'), ('str', 'object')],
- "PySide2.QtWidgets.QMenuBar.addMenu": [('PySide2.QtGui.QIcon', 'str'), ('PySide2.QtWidgets.QMenu',), ('str',)],
- "PySide2.QtWidgets.QMenuBar.addSeparator": (),
- "PySide2.QtWidgets.QMenuBar.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMenuBar.clear": (),
- "PySide2.QtWidgets.QMenuBar.cornerWidget": ('PySide2.QtCore.Qt.Corner',),
- "PySide2.QtWidgets.QMenuBar.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMenuBar.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QMenuBar.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QMenuBar.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QMenuBar.heightForWidth": ('int',),
- "PySide2.QtWidgets.QMenuBar.initStyleOption": ('PySide2.QtWidgets.QStyleOptionMenuItem', 'PySide2.QtWidgets.QAction'),
- "PySide2.QtWidgets.QMenuBar.insertMenu": ('PySide2.QtWidgets.QAction', 'PySide2.QtWidgets.QMenu'),
- "PySide2.QtWidgets.QMenuBar.insertSeparator": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QMenuBar.isDefaultUp": (),
- "PySide2.QtWidgets.QMenuBar.isNativeMenuBar": (),
- "PySide2.QtWidgets.QMenuBar.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QMenuBar.leaveEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMenuBar.minimumSizeHint": (),
- "PySide2.QtWidgets.QMenuBar.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QMenuBar.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QMenuBar.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QMenuBar.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QMenuBar.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QMenuBar.setActiveAction": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QMenuBar.setCornerWidget": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.Corner'),
- "PySide2.QtWidgets.QMenuBar.setDefaultUp": ('bool',),
- "PySide2.QtWidgets.QMenuBar.setNativeMenuBar": ('bool',),
- "PySide2.QtWidgets.QMenuBar.setVisible": ('bool',),
- "PySide2.QtWidgets.QMenuBar.sizeHint": (),
- "PySide2.QtWidgets.QMenuBar.timerEvent": ('PySide2.QtCore.QTimerEvent',),
-# class PySide2.QtWidgets.QMessageBox:
-# class PySide2.QtWidgets.QMessageBox.ButtonRole:
-# class PySide2.QtWidgets.QMessageBox.Icon:
-# class PySide2.QtWidgets.QMessageBox.StandardButton:
-# class PySide2.QtWidgets.QMessageBox.StandardButtons:
- "PySide2.QtWidgets.QMessageBox.__init__": [('PySide2.QtWidgets.QMessageBox.Icon', 'str', 'str', 'PySide2.QtWidgets.QMessageBox.StandardButtons', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QMessageBox.about": ('PySide2.QtWidgets.QWidget', 'str', 'str'),
- "PySide2.QtWidgets.QMessageBox.aboutQt": ('PySide2.QtWidgets.QWidget', 'str'),
- "PySide2.QtWidgets.QMessageBox.addButton": [('PySide2.QtWidgets.QAbstractButton', 'PySide2.QtWidgets.QMessageBox.ButtonRole'), ('PySide2.QtWidgets.QMessageBox.StandardButton',), ('str', 'PySide2.QtWidgets.QMessageBox.ButtonRole')],
- "PySide2.QtWidgets.QMessageBox.button": ('PySide2.QtWidgets.QMessageBox.StandardButton',),
- "PySide2.QtWidgets.QMessageBox.buttonRole": ('PySide2.QtWidgets.QAbstractButton',),
- "PySide2.QtWidgets.QMessageBox.buttonText": ('int',),
- "PySide2.QtWidgets.QMessageBox.buttons": (),
- "PySide2.QtWidgets.QMessageBox.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMessageBox.checkBox": (),
- "PySide2.QtWidgets.QMessageBox.clickedButton": (),
- "PySide2.QtWidgets.QMessageBox.closeEvent": ('PySide2.QtGui.QCloseEvent',),
- "PySide2.QtWidgets.QMessageBox.critical": [('PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtWidgets.QMessageBox.StandardButton', 'PySide2.QtWidgets.QMessageBox.StandardButton'), ('PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtWidgets.QMessageBox.StandardButtons', 'PySide2.QtWidgets.QMessageBox.StandardButton')],
- "PySide2.QtWidgets.QMessageBox.defaultButton": (),
- "PySide2.QtWidgets.QMessageBox.detailedText": (),
- "PySide2.QtWidgets.QMessageBox.escapeButton": (),
- "PySide2.QtWidgets.QMessageBox.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMessageBox.icon": (),
- "PySide2.QtWidgets.QMessageBox.iconPixmap": (),
- "PySide2.QtWidgets.QMessageBox.information": [('PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtWidgets.QMessageBox.StandardButton', 'PySide2.QtWidgets.QMessageBox.StandardButton'), ('PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtWidgets.QMessageBox.StandardButtons', 'PySide2.QtWidgets.QMessageBox.StandardButton')],
- "PySide2.QtWidgets.QMessageBox.informativeText": (),
- "PySide2.QtWidgets.QMessageBox.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QMessageBox.open": [(), ('PySide2.QtCore.QObject', 'str')],
- "PySide2.QtWidgets.QMessageBox.question": [('PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtWidgets.QMessageBox.StandardButton', 'PySide2.QtWidgets.QMessageBox.StandardButton'), ('PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtWidgets.QMessageBox.StandardButtons', 'PySide2.QtWidgets.QMessageBox.StandardButton')],
- "PySide2.QtWidgets.QMessageBox.removeButton": ('PySide2.QtWidgets.QAbstractButton',),
- "PySide2.QtWidgets.QMessageBox.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QMessageBox.setButtonText": ('int', 'str'),
- "PySide2.QtWidgets.QMessageBox.setCheckBox": ('PySide2.QtWidgets.QCheckBox',),
- "PySide2.QtWidgets.QMessageBox.setDefaultButton": [('PySide2.QtWidgets.QMessageBox.StandardButton',), ('PySide2.QtWidgets.QPushButton',)],
- "PySide2.QtWidgets.QMessageBox.setDetailedText": ('str',),
- "PySide2.QtWidgets.QMessageBox.setEscapeButton": [('PySide2.QtWidgets.QAbstractButton',), ('PySide2.QtWidgets.QMessageBox.StandardButton',)],
- "PySide2.QtWidgets.QMessageBox.setIcon": ('PySide2.QtWidgets.QMessageBox.Icon',),
- "PySide2.QtWidgets.QMessageBox.setIconPixmap": ('PySide2.QtGui.QPixmap',),
- "PySide2.QtWidgets.QMessageBox.setInformativeText": ('str',),
- "PySide2.QtWidgets.QMessageBox.setStandardButtons": ('PySide2.QtWidgets.QMessageBox.StandardButtons',),
- "PySide2.QtWidgets.QMessageBox.setText": ('str',),
- "PySide2.QtWidgets.QMessageBox.setTextFormat": ('PySide2.QtCore.Qt.TextFormat',),
- "PySide2.QtWidgets.QMessageBox.setTextInteractionFlags": ('PySide2.QtCore.Qt.TextInteractionFlags',),
- "PySide2.QtWidgets.QMessageBox.setWindowModality": ('PySide2.QtCore.Qt.WindowModality',),
- "PySide2.QtWidgets.QMessageBox.setWindowTitle": ('str',),
- "PySide2.QtWidgets.QMessageBox.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QMessageBox.standardButton": ('PySide2.QtWidgets.QAbstractButton',),
- "PySide2.QtWidgets.QMessageBox.standardButtons": (),
- "PySide2.QtWidgets.QMessageBox.standardIcon": ('PySide2.QtWidgets.QMessageBox.Icon',),
- "PySide2.QtWidgets.QMessageBox.text": (),
- "PySide2.QtWidgets.QMessageBox.textFormat": (),
- "PySide2.QtWidgets.QMessageBox.textInteractionFlags": (),
- "PySide2.QtWidgets.QMessageBox.warning": [('PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtWidgets.QMessageBox.StandardButton', 'PySide2.QtWidgets.QMessageBox.StandardButton'), ('PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtWidgets.QMessageBox.StandardButtons', 'PySide2.QtWidgets.QMessageBox.StandardButton')],
-# class PySide2.QtWidgets.QMouseEventTransition:
- "PySide2.QtWidgets.QMouseEventTransition.__init__": [('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent.Type', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.QState'), ('PySide2.QtCore.QState',)],
- "PySide2.QtWidgets.QMouseEventTransition.button": (),
- "PySide2.QtWidgets.QMouseEventTransition.eventTest": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMouseEventTransition.hitTestPath": (),
- "PySide2.QtWidgets.QMouseEventTransition.modifierMask": (),
- "PySide2.QtWidgets.QMouseEventTransition.onTransition": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QMouseEventTransition.setButton": ('PySide2.QtCore.Qt.MouseButton',),
- "PySide2.QtWidgets.QMouseEventTransition.setHitTestPath": ('PySide2.QtGui.QPainterPath',),
- "PySide2.QtWidgets.QMouseEventTransition.setModifierMask": ('PySide2.QtCore.Qt.KeyboardModifiers',),
-# class PySide2.QtWidgets.QOpenGLWidget:
-# class PySide2.QtWidgets.QOpenGLWidget.UpdateBehavior:
- "PySide2.QtWidgets.QOpenGLWidget.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QOpenGLWidget.context": (),
- "PySide2.QtWidgets.QOpenGLWidget.defaultFramebufferObject": (),
- "PySide2.QtWidgets.QOpenGLWidget.doneCurrent": (),
- "PySide2.QtWidgets.QOpenGLWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QOpenGLWidget.format": (),
- "PySide2.QtWidgets.QOpenGLWidget.grabFramebuffer": (),
- "PySide2.QtWidgets.QOpenGLWidget.initializeGL": (),
- "PySide2.QtWidgets.QOpenGLWidget.isValid": (),
- "PySide2.QtWidgets.QOpenGLWidget.makeCurrent": (),
- "PySide2.QtWidgets.QOpenGLWidget.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtWidgets.QOpenGLWidget.paintEngine": (),
- "PySide2.QtWidgets.QOpenGLWidget.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QOpenGLWidget.paintGL": (),
- "PySide2.QtWidgets.QOpenGLWidget.redirected": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QOpenGLWidget.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QOpenGLWidget.resizeGL": ('int', 'int'),
- "PySide2.QtWidgets.QOpenGLWidget.setFormat": ('PySide2.QtGui.QSurfaceFormat',),
- "PySide2.QtWidgets.QOpenGLWidget.setTextureFormat": ('int',),
- "PySide2.QtWidgets.QOpenGLWidget.setUpdateBehavior": ('PySide2.QtWidgets.QOpenGLWidget.UpdateBehavior',),
- "PySide2.QtWidgets.QOpenGLWidget.textureFormat": (),
- "PySide2.QtWidgets.QOpenGLWidget.updateBehavior": (),
-# class PySide2.QtWidgets.QPanGesture:
- "PySide2.QtWidgets.QPanGesture.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QPanGesture.acceleration": (),
- "PySide2.QtWidgets.QPanGesture.delta": (),
- "PySide2.QtWidgets.QPanGesture.lastOffset": (),
- "PySide2.QtWidgets.QPanGesture.offset": (),
- "PySide2.QtWidgets.QPanGesture.setAcceleration": ('float',),
- "PySide2.QtWidgets.QPanGesture.setLastOffset": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QPanGesture.setOffset": ('PySide2.QtCore.QPointF',),
-# class PySide2.QtWidgets.QPinchGesture:
-# class PySide2.QtWidgets.QPinchGesture.ChangeFlag:
-# class PySide2.QtWidgets.QPinchGesture.ChangeFlags:
- "PySide2.QtWidgets.QPinchGesture.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QPinchGesture.centerPoint": (),
- "PySide2.QtWidgets.QPinchGesture.changeFlags": (),
- "PySide2.QtWidgets.QPinchGesture.lastCenterPoint": (),
- "PySide2.QtWidgets.QPinchGesture.lastRotationAngle": (),
- "PySide2.QtWidgets.QPinchGesture.lastScaleFactor": (),
- "PySide2.QtWidgets.QPinchGesture.rotationAngle": (),
- "PySide2.QtWidgets.QPinchGesture.scaleFactor": (),
- "PySide2.QtWidgets.QPinchGesture.setCenterPoint": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QPinchGesture.setChangeFlags": ('PySide2.QtWidgets.QPinchGesture.ChangeFlags',),
- "PySide2.QtWidgets.QPinchGesture.setLastCenterPoint": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QPinchGesture.setLastRotationAngle": ('float',),
- "PySide2.QtWidgets.QPinchGesture.setLastScaleFactor": ('float',),
- "PySide2.QtWidgets.QPinchGesture.setRotationAngle": ('float',),
- "PySide2.QtWidgets.QPinchGesture.setScaleFactor": ('float',),
- "PySide2.QtWidgets.QPinchGesture.setStartCenterPoint": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QPinchGesture.setTotalChangeFlags": ('PySide2.QtWidgets.QPinchGesture.ChangeFlags',),
- "PySide2.QtWidgets.QPinchGesture.setTotalRotationAngle": ('float',),
- "PySide2.QtWidgets.QPinchGesture.setTotalScaleFactor": ('float',),
- "PySide2.QtWidgets.QPinchGesture.startCenterPoint": (),
- "PySide2.QtWidgets.QPinchGesture.totalChangeFlags": (),
- "PySide2.QtWidgets.QPinchGesture.totalRotationAngle": (),
- "PySide2.QtWidgets.QPinchGesture.totalScaleFactor": (),
-# class PySide2.QtWidgets.QPlainTextDocumentLayout:
- "PySide2.QtWidgets.QPlainTextDocumentLayout.__init__": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.blockBoundingRect": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.cursorWidth": (),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.documentChanged": ('int', 'int', 'int'),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.documentSize": (),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.draw": ('PySide2.QtGui.QPainter', 'PySide2.QtGui.QAbstractTextDocumentLayout.PaintContext'),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.ensureBlockLayout": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.frameBoundingRect": ('PySide2.QtGui.QTextFrame',),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.hitTest": ('PySide2.QtCore.QPointF', 'PySide2.QtCore.Qt.HitTestAccuracy'),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.pageCount": (),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.requestUpdate": (),
- "PySide2.QtWidgets.QPlainTextDocumentLayout.setCursorWidth": ('int',),
-# class PySide2.QtWidgets.QPlainTextEdit:
-# class PySide2.QtWidgets.QPlainTextEdit.LineWrapMode:
- "PySide2.QtWidgets.QPlainTextEdit.__init__": [('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QPlainTextEdit.anchorAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QPlainTextEdit.appendHtml": ('str',),
- "PySide2.QtWidgets.QPlainTextEdit.appendPlainText": ('str',),
- "PySide2.QtWidgets.QPlainTextEdit.backgroundVisible": (),
- "PySide2.QtWidgets.QPlainTextEdit.blockBoundingGeometry": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtWidgets.QPlainTextEdit.blockBoundingRect": ('PySide2.QtGui.QTextBlock',),
- "PySide2.QtWidgets.QPlainTextEdit.blockCount": (),
- "PySide2.QtWidgets.QPlainTextEdit.canInsertFromMimeData": ('PySide2.QtCore.QMimeData',),
- "PySide2.QtWidgets.QPlainTextEdit.canPaste": (),
- "PySide2.QtWidgets.QPlainTextEdit.centerCursor": (),
- "PySide2.QtWidgets.QPlainTextEdit.centerOnScroll": (),
- "PySide2.QtWidgets.QPlainTextEdit.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.clear": (),
- "PySide2.QtWidgets.QPlainTextEdit.contentOffset": (),
- "PySide2.QtWidgets.QPlainTextEdit.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.copy": (),
- "PySide2.QtWidgets.QPlainTextEdit.createMimeDataFromSelection": (),
- "PySide2.QtWidgets.QPlainTextEdit.createStandardContextMenu": [(), ('PySide2.QtCore.QPoint',)],
- "PySide2.QtWidgets.QPlainTextEdit.currentCharFormat": (),
- "PySide2.QtWidgets.QPlainTextEdit.cursorForPosition": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QPlainTextEdit.cursorRect": [(), ('PySide2.QtGui.QTextCursor',)],
- "PySide2.QtWidgets.QPlainTextEdit.cursorWidth": (),
- "PySide2.QtWidgets.QPlainTextEdit.cut": (),
- "PySide2.QtWidgets.QPlainTextEdit.doSetTextCursor": ('PySide2.QtGui.QTextCursor',),
- "PySide2.QtWidgets.QPlainTextEdit.document": (),
- "PySide2.QtWidgets.QPlainTextEdit.documentTitle": (),
- "PySide2.QtWidgets.QPlainTextEdit.dragEnterEvent": ('PySide2.QtGui.QDragEnterEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.ensureCursorVisible": (),
- "PySide2.QtWidgets.QPlainTextEdit.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.extraSelections": (),
- "PySide2.QtWidgets.QPlainTextEdit.find": [('PySide2.QtCore.QRegExp', 'PySide2.QtGui.QTextDocument.FindFlags'), ('PySide2.QtCore.QRegularExpression', 'PySide2.QtGui.QTextDocument.FindFlags'), ('str', 'PySide2.QtGui.QTextDocument.FindFlags')],
- "PySide2.QtWidgets.QPlainTextEdit.firstVisibleBlock": (),
- "PySide2.QtWidgets.QPlainTextEdit.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QPlainTextEdit.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.getPaintContext": (),
- "PySide2.QtWidgets.QPlainTextEdit.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.inputMethodQuery": [('PySide2.QtCore.Qt.InputMethodQuery',), ('PySide2.QtCore.Qt.InputMethodQuery', 'typing.Any')],
- "PySide2.QtWidgets.QPlainTextEdit.insertFromMimeData": ('PySide2.QtCore.QMimeData',),
- "PySide2.QtWidgets.QPlainTextEdit.insertPlainText": ('str',),
- "PySide2.QtWidgets.QPlainTextEdit.isReadOnly": (),
- "PySide2.QtWidgets.QPlainTextEdit.isUndoRedoEnabled": (),
- "PySide2.QtWidgets.QPlainTextEdit.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.lineWrapMode": (),
- "PySide2.QtWidgets.QPlainTextEdit.loadResource": ('int', 'PySide2.QtCore.QUrl'),
- "PySide2.QtWidgets.QPlainTextEdit.maximumBlockCount": (),
- "PySide2.QtWidgets.QPlainTextEdit.mergeCurrentCharFormat": ('PySide2.QtGui.QTextCharFormat',),
- "PySide2.QtWidgets.QPlainTextEdit.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.moveCursor": ('PySide2.QtGui.QTextCursor.MoveOperation', 'PySide2.QtGui.QTextCursor.MoveMode'),
- "PySide2.QtWidgets.QPlainTextEdit.overwriteMode": (),
- "PySide2.QtWidgets.QPlainTextEdit.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.paste": (),
- "PySide2.QtWidgets.QPlainTextEdit.placeholderText": (),
- "PySide2.QtWidgets.QPlainTextEdit.print_": ('PySide2.QtGui.QPagedPaintDevice',),
- "PySide2.QtWidgets.QPlainTextEdit.redo": (),
- "PySide2.QtWidgets.QPlainTextEdit.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QPlainTextEdit.selectAll": (),
- "PySide2.QtWidgets.QPlainTextEdit.setBackgroundVisible": ('bool',),
- "PySide2.QtWidgets.QPlainTextEdit.setCenterOnScroll": ('bool',),
- "PySide2.QtWidgets.QPlainTextEdit.setCurrentCharFormat": ('PySide2.QtGui.QTextCharFormat',),
- "PySide2.QtWidgets.QPlainTextEdit.setCursorWidth": ('int',),
- "PySide2.QtWidgets.QPlainTextEdit.setDocument": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtWidgets.QPlainTextEdit.setDocumentTitle": ('str',),
- "PySide2.QtWidgets.QPlainTextEdit.setExtraSelections": ('typing.Sequence[PySide2.QtWidgets.QTextEdit.ExtraSelection]',),
- "PySide2.QtWidgets.QPlainTextEdit.setLineWrapMode": ('PySide2.QtWidgets.QPlainTextEdit.LineWrapMode',),
- "PySide2.QtWidgets.QPlainTextEdit.setMaximumBlockCount": ('int',),
- "PySide2.QtWidgets.QPlainTextEdit.setOverwriteMode": ('bool',),
- "PySide2.QtWidgets.QPlainTextEdit.setPlaceholderText": ('str',),
- "PySide2.QtWidgets.QPlainTextEdit.setPlainText": ('str',),
- "PySide2.QtWidgets.QPlainTextEdit.setReadOnly": ('bool',),
- "PySide2.QtWidgets.QPlainTextEdit.setTabChangesFocus": ('bool',),
- "PySide2.QtWidgets.QPlainTextEdit.setTabStopDistance": ('float',),
- "PySide2.QtWidgets.QPlainTextEdit.setTabStopWidth": ('int',),
- "PySide2.QtWidgets.QPlainTextEdit.setTextCursor": ('PySide2.QtGui.QTextCursor',),
- "PySide2.QtWidgets.QPlainTextEdit.setTextInteractionFlags": ('PySide2.QtCore.Qt.TextInteractionFlags',),
- "PySide2.QtWidgets.QPlainTextEdit.setUndoRedoEnabled": ('bool',),
- "PySide2.QtWidgets.QPlainTextEdit.setWordWrapMode": ('PySide2.QtGui.QTextOption.WrapMode',),
- "PySide2.QtWidgets.QPlainTextEdit.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.tabChangesFocus": (),
- "PySide2.QtWidgets.QPlainTextEdit.tabStopDistance": (),
- "PySide2.QtWidgets.QPlainTextEdit.tabStopWidth": (),
- "PySide2.QtWidgets.QPlainTextEdit.textCursor": (),
- "PySide2.QtWidgets.QPlainTextEdit.textInteractionFlags": (),
- "PySide2.QtWidgets.QPlainTextEdit.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.toPlainText": (),
- "PySide2.QtWidgets.QPlainTextEdit.undo": (),
- "PySide2.QtWidgets.QPlainTextEdit.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
- "PySide2.QtWidgets.QPlainTextEdit.wordWrapMode": (),
- "PySide2.QtWidgets.QPlainTextEdit.zoomIn": ('int',),
- "PySide2.QtWidgets.QPlainTextEdit.zoomInF": ('float',),
- "PySide2.QtWidgets.QPlainTextEdit.zoomOut": ('int',),
-# class PySide2.QtWidgets.QProgressBar:
-# class PySide2.QtWidgets.QProgressBar.Direction:
- "PySide2.QtWidgets.QProgressBar.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QProgressBar.alignment": (),
- "PySide2.QtWidgets.QProgressBar.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QProgressBar.format": (),
- "PySide2.QtWidgets.QProgressBar.initStyleOption": ('PySide2.QtWidgets.QStyleOptionProgressBar',),
- "PySide2.QtWidgets.QProgressBar.invertedAppearance": (),
- "PySide2.QtWidgets.QProgressBar.isTextVisible": (),
- "PySide2.QtWidgets.QProgressBar.maximum": (),
- "PySide2.QtWidgets.QProgressBar.minimum": (),
- "PySide2.QtWidgets.QProgressBar.minimumSizeHint": (),
- "PySide2.QtWidgets.QProgressBar.orientation": (),
- "PySide2.QtWidgets.QProgressBar.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QProgressBar.reset": (),
- "PySide2.QtWidgets.QProgressBar.resetFormat": (),
- "PySide2.QtWidgets.QProgressBar.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QProgressBar.setFormat": ('str',),
- "PySide2.QtWidgets.QProgressBar.setInvertedAppearance": ('bool',),
- "PySide2.QtWidgets.QProgressBar.setMaximum": ('int',),
- "PySide2.QtWidgets.QProgressBar.setMinimum": ('int',),
- "PySide2.QtWidgets.QProgressBar.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtWidgets.QProgressBar.setRange": ('int', 'int'),
- "PySide2.QtWidgets.QProgressBar.setTextDirection": ('PySide2.QtWidgets.QProgressBar.Direction',),
- "PySide2.QtWidgets.QProgressBar.setTextVisible": ('bool',),
- "PySide2.QtWidgets.QProgressBar.setValue": ('int',),
- "PySide2.QtWidgets.QProgressBar.sizeHint": (),
- "PySide2.QtWidgets.QProgressBar.text": (),
- "PySide2.QtWidgets.QProgressBar.textDirection": (),
- "PySide2.QtWidgets.QProgressBar.value": (),
-# class PySide2.QtWidgets.QProgressDialog:
- "PySide2.QtWidgets.QProgressDialog.__init__": [('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'), ('str', 'str', 'int', 'int', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags')],
- "PySide2.QtWidgets.QProgressDialog.autoClose": (),
- "PySide2.QtWidgets.QProgressDialog.autoReset": (),
- "PySide2.QtWidgets.QProgressDialog.cancel": (),
- "PySide2.QtWidgets.QProgressDialog.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QProgressDialog.closeEvent": ('PySide2.QtGui.QCloseEvent',),
- "PySide2.QtWidgets.QProgressDialog.forceShow": (),
- "PySide2.QtWidgets.QProgressDialog.labelText": (),
- "PySide2.QtWidgets.QProgressDialog.maximum": (),
- "PySide2.QtWidgets.QProgressDialog.minimum": (),
- "PySide2.QtWidgets.QProgressDialog.minimumDuration": (),
- "PySide2.QtWidgets.QProgressDialog.open": [(), ('PySide2.QtCore.QObject', 'str')],
- "PySide2.QtWidgets.QProgressDialog.reset": (),
- "PySide2.QtWidgets.QProgressDialog.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QProgressDialog.setAutoClose": ('bool',),
- "PySide2.QtWidgets.QProgressDialog.setAutoReset": ('bool',),
- "PySide2.QtWidgets.QProgressDialog.setBar": ('PySide2.QtWidgets.QProgressBar',),
- "PySide2.QtWidgets.QProgressDialog.setCancelButton": ('PySide2.QtWidgets.QPushButton',),
- "PySide2.QtWidgets.QProgressDialog.setCancelButtonText": ('str',),
- "PySide2.QtWidgets.QProgressDialog.setLabel": ('PySide2.QtWidgets.QLabel',),
- "PySide2.QtWidgets.QProgressDialog.setLabelText": ('str',),
- "PySide2.QtWidgets.QProgressDialog.setMaximum": ('int',),
- "PySide2.QtWidgets.QProgressDialog.setMinimum": ('int',),
- "PySide2.QtWidgets.QProgressDialog.setMinimumDuration": ('int',),
- "PySide2.QtWidgets.QProgressDialog.setRange": ('int', 'int'),
- "PySide2.QtWidgets.QProgressDialog.setValue": ('int',),
- "PySide2.QtWidgets.QProgressDialog.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QProgressDialog.sizeHint": (),
- "PySide2.QtWidgets.QProgressDialog.value": (),
- "PySide2.QtWidgets.QProgressDialog.wasCanceled": (),
-# class PySide2.QtWidgets.QProxyStyle:
- "PySide2.QtWidgets.QProxyStyle.__init__": [('PySide2.QtWidgets.QStyle',), ('str',)],
- "PySide2.QtWidgets.QProxyStyle.baseStyle": (),
- "PySide2.QtWidgets.QProxyStyle.drawComplexControl": ('PySide2.QtWidgets.QStyle.ComplexControl', 'PySide2.QtWidgets.QStyleOptionComplex', 'PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.drawControl": ('PySide2.QtWidgets.QStyle.ControlElement', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.drawItemPixmap": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRect', 'int', 'PySide2.QtGui.QPixmap'),
- "PySide2.QtWidgets.QProxyStyle.drawItemText": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRect', 'int', 'PySide2.QtGui.QPalette', 'bool', 'str', 'PySide2.QtGui.QPalette.ColorRole'),
- "PySide2.QtWidgets.QProxyStyle.drawPrimitive": ('PySide2.QtWidgets.QStyle.PrimitiveElement', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QProxyStyle.generatedIconPixmap": ('PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QPixmap', 'PySide2.QtWidgets.QStyleOption'),
- "PySide2.QtWidgets.QProxyStyle.hitTestComplexControl": ('PySide2.QtWidgets.QStyle.ComplexControl', 'PySide2.QtWidgets.QStyleOptionComplex', 'PySide2.QtCore.QPoint', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.itemPixmapRect": ('PySide2.QtCore.QRect', 'int', 'PySide2.QtGui.QPixmap'),
- "PySide2.QtWidgets.QProxyStyle.itemTextRect": ('PySide2.QtGui.QFontMetrics', 'PySide2.QtCore.QRect', 'int', 'bool', 'str'),
- "PySide2.QtWidgets.QProxyStyle.layoutSpacing": ('PySide2.QtWidgets.QSizePolicy.ControlType', 'PySide2.QtWidgets.QSizePolicy.ControlType', 'PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.pixelMetric": ('PySide2.QtWidgets.QStyle.PixelMetric', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.polish": [('PySide2.QtGui.QPalette',), ('PySide2.QtWidgets.QApplication',), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QProxyStyle.setBaseStyle": ('PySide2.QtWidgets.QStyle',),
- "PySide2.QtWidgets.QProxyStyle.sizeFromContents": ('PySide2.QtWidgets.QStyle.ContentsType', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtCore.QSize', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.standardIcon": ('PySide2.QtWidgets.QStyle.StandardPixmap', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.standardPalette": (),
- "PySide2.QtWidgets.QProxyStyle.standardPixmap": ('PySide2.QtWidgets.QStyle.StandardPixmap', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.styleHint": ('PySide2.QtWidgets.QStyle.StyleHint', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QStyleHintReturn'),
- "PySide2.QtWidgets.QProxyStyle.subControlRect": ('PySide2.QtWidgets.QStyle.ComplexControl', 'PySide2.QtWidgets.QStyleOptionComplex', 'PySide2.QtWidgets.QStyle.SubControl', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.subElementRect": ('PySide2.QtWidgets.QStyle.SubElement', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QProxyStyle.unpolish": [('PySide2.QtWidgets.QApplication',), ('PySide2.QtWidgets.QWidget',)],
-# class PySide2.QtWidgets.QPushButton:
- "PySide2.QtWidgets.QPushButton.__init__": [('PySide2.QtGui.QIcon', 'str', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QPushButton.autoDefault": (),
- "PySide2.QtWidgets.QPushButton.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QPushButton.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QPushButton.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QPushButton.initStyleOption": ('PySide2.QtWidgets.QStyleOptionButton',),
- "PySide2.QtWidgets.QPushButton.isDefault": (),
- "PySide2.QtWidgets.QPushButton.isFlat": (),
- "PySide2.QtWidgets.QPushButton.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QPushButton.menu": (),
- "PySide2.QtWidgets.QPushButton.minimumSizeHint": (),
- "PySide2.QtWidgets.QPushButton.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QPushButton.setAutoDefault": ('bool',),
- "PySide2.QtWidgets.QPushButton.setDefault": ('bool',),
- "PySide2.QtWidgets.QPushButton.setFlat": ('bool',),
- "PySide2.QtWidgets.QPushButton.setMenu": ('PySide2.QtWidgets.QMenu',),
- "PySide2.QtWidgets.QPushButton.showMenu": (),
- "PySide2.QtWidgets.QPushButton.sizeHint": (),
-# class PySide2.QtWidgets.QRadioButton:
- "PySide2.QtWidgets.QRadioButton.__init__": [('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QRadioButton.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QRadioButton.hitButton": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QRadioButton.initStyleOption": ('PySide2.QtWidgets.QStyleOptionButton',),
- "PySide2.QtWidgets.QRadioButton.minimumSizeHint": (),
- "PySide2.QtWidgets.QRadioButton.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QRadioButton.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QRadioButton.sizeHint": (),
-# class PySide2.QtWidgets.QRubberBand:
-# class PySide2.QtWidgets.QRubberBand.Shape:
- "PySide2.QtWidgets.QRubberBand.__init__": ('PySide2.QtWidgets.QRubberBand.Shape', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QRubberBand.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QRubberBand.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QRubberBand.initStyleOption": ('PySide2.QtWidgets.QStyleOptionRubberBand',),
- "PySide2.QtWidgets.QRubberBand.move": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtWidgets.QRubberBand.moveEvent": ('PySide2.QtGui.QMoveEvent',),
- "PySide2.QtWidgets.QRubberBand.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QRubberBand.resize": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtWidgets.QRubberBand.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QRubberBand.setGeometry": [('PySide2.QtCore.QRect',), ('int', 'int', 'int', 'int')],
- "PySide2.QtWidgets.QRubberBand.shape": (),
- "PySide2.QtWidgets.QRubberBand.showEvent": ('PySide2.QtGui.QShowEvent',),
-# class PySide2.QtWidgets.QScrollArea:
- "PySide2.QtWidgets.QScrollArea.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QScrollArea.alignment": (),
- "PySide2.QtWidgets.QScrollArea.ensureVisible": ('int', 'int', 'int', 'int'),
- "PySide2.QtWidgets.QScrollArea.ensureWidgetVisible": ('PySide2.QtWidgets.QWidget', 'int', 'int'),
- "PySide2.QtWidgets.QScrollArea.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QScrollArea.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QScrollArea.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QScrollArea.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QScrollArea.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QScrollArea.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QScrollArea.setWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QScrollArea.setWidgetResizable": ('bool',),
- "PySide2.QtWidgets.QScrollArea.sizeHint": (),
- "PySide2.QtWidgets.QScrollArea.takeWidget": (),
- "PySide2.QtWidgets.QScrollArea.viewportSizeHint": (),
- "PySide2.QtWidgets.QScrollArea.widget": (),
- "PySide2.QtWidgets.QScrollArea.widgetResizable": (),
-# class PySide2.QtWidgets.QScrollBar:
- "PySide2.QtWidgets.QScrollBar.__init__": [('PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QScrollBar.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QScrollBar.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QScrollBar.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWidgets.QScrollBar.initStyleOption": ('PySide2.QtWidgets.QStyleOptionSlider',),
- "PySide2.QtWidgets.QScrollBar.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QScrollBar.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QScrollBar.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QScrollBar.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QScrollBar.sizeHint": (),
- "PySide2.QtWidgets.QScrollBar.sliderChange": ('PySide2.QtWidgets.QAbstractSlider.SliderChange',),
- "PySide2.QtWidgets.QScrollBar.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtWidgets.QScroller:
-# class PySide2.QtWidgets.QScroller.Input:
-# class PySide2.QtWidgets.QScroller.ScrollerGestureType:
-# class PySide2.QtWidgets.QScroller.State:
- "PySide2.QtWidgets.QScroller.activeScrollers": (),
- "PySide2.QtWidgets.QScroller.ensureVisible": [('PySide2.QtCore.QRectF', 'float', 'float'), ('PySide2.QtCore.QRectF', 'float', 'float', 'int')],
- "PySide2.QtWidgets.QScroller.finalPosition": (),
- "PySide2.QtWidgets.QScroller.grabGesture": ('PySide2.QtCore.QObject', 'PySide2.QtWidgets.QScroller.ScrollerGestureType'),
- "PySide2.QtWidgets.QScroller.grabbedGesture": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QScroller.handleInput": ('PySide2.QtWidgets.QScroller.Input', 'PySide2.QtCore.QPointF', 'int'),
- "PySide2.QtWidgets.QScroller.hasScroller": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QScroller.pixelPerMeter": (),
- "PySide2.QtWidgets.QScroller.resendPrepareEvent": (),
- "PySide2.QtWidgets.QScroller.scrollTo": [('PySide2.QtCore.QPointF',), ('PySide2.QtCore.QPointF', 'int')],
- "PySide2.QtWidgets.QScroller.scroller": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QScroller.scrollerProperties": (),
- "PySide2.QtWidgets.QScroller.setScrollerProperties": ('PySide2.QtWidgets.QScrollerProperties',),
- "PySide2.QtWidgets.QScroller.setSnapPositionsX": [('float', 'float'), ('typing.Sequence[float]',)],
- "PySide2.QtWidgets.QScroller.setSnapPositionsY": [('float', 'float'), ('typing.Sequence[float]',)],
- "PySide2.QtWidgets.QScroller.state": (),
- "PySide2.QtWidgets.QScroller.stop": (),
- "PySide2.QtWidgets.QScroller.target": (),
- "PySide2.QtWidgets.QScroller.ungrabGesture": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QScroller.velocity": (),
-# class PySide2.QtWidgets.QScrollerProperties:
-# class PySide2.QtWidgets.QScrollerProperties.FrameRates:
-# class PySide2.QtWidgets.QScrollerProperties.OvershootPolicy:
-# class PySide2.QtWidgets.QScrollerProperties.ScrollMetric:
- "PySide2.QtWidgets.QScrollerProperties.__init__": [(), ('PySide2.QtWidgets.QScrollerProperties',)],
- "PySide2.QtWidgets.QScrollerProperties.__copy__": (),
- "PySide2.QtWidgets.QScrollerProperties.scrollMetric": ('PySide2.QtWidgets.QScrollerProperties.ScrollMetric',),
- "PySide2.QtWidgets.QScrollerProperties.setDefaultScrollerProperties": ('PySide2.QtWidgets.QScrollerProperties',),
- "PySide2.QtWidgets.QScrollerProperties.setScrollMetric": ('PySide2.QtWidgets.QScrollerProperties.ScrollMetric', 'typing.Any'),
- "PySide2.QtWidgets.QScrollerProperties.unsetDefaultScrollerProperties": (),
-# class PySide2.QtWidgets.QShortcut:
- "PySide2.QtWidgets.QShortcut.__init__": [('PySide2.QtGui.QKeySequence', 'PySide2.QtWidgets.QWidget', 'str', 'str', 'PySide2.QtCore.Qt.ShortcutContext'), ('PySide2.QtGui.QKeySequence', 'PySide2.QtWidgets.QWidget', 'typing.Callable', 'PySide2.QtCore.Qt.ShortcutContext'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QShortcut.autoRepeat": (),
- "PySide2.QtWidgets.QShortcut.context": (),
- "PySide2.QtWidgets.QShortcut.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QShortcut.id": (),
- "PySide2.QtWidgets.QShortcut.isEnabled": (),
- "PySide2.QtWidgets.QShortcut.key": (),
- "PySide2.QtWidgets.QShortcut.parentWidget": (),
- "PySide2.QtWidgets.QShortcut.setAutoRepeat": ('bool',),
- "PySide2.QtWidgets.QShortcut.setContext": ('PySide2.QtCore.Qt.ShortcutContext',),
- "PySide2.QtWidgets.QShortcut.setEnabled": ('bool',),
- "PySide2.QtWidgets.QShortcut.setKey": ('PySide2.QtGui.QKeySequence',),
- "PySide2.QtWidgets.QShortcut.setWhatsThis": ('str',),
- "PySide2.QtWidgets.QShortcut.whatsThis": (),
-# class PySide2.QtWidgets.QSizeGrip:
- "PySide2.QtWidgets.QSizeGrip.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QSizeGrip.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QSizeGrip.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QSizeGrip.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWidgets.QSizeGrip.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QSizeGrip.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QSizeGrip.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QSizeGrip.moveEvent": ('PySide2.QtGui.QMoveEvent',),
- "PySide2.QtWidgets.QSizeGrip.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QSizeGrip.setVisible": ('bool',),
- "PySide2.QtWidgets.QSizeGrip.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QSizeGrip.sizeHint": (),
-# class PySide2.QtWidgets.QSizePolicy:
-# class PySide2.QtWidgets.QSizePolicy.ControlType:
-# class PySide2.QtWidgets.QSizePolicy.ControlTypes:
-# class PySide2.QtWidgets.QSizePolicy.Policy:
-# class PySide2.QtWidgets.QSizePolicy.PolicyFlag:
- "PySide2.QtWidgets.QSizePolicy.__init__": [(), ('PySide2.QtWidgets.QSizePolicy.Policy', 'PySide2.QtWidgets.QSizePolicy.Policy', 'PySide2.QtWidgets.QSizePolicy.ControlType')],
- "PySide2.QtWidgets.QSizePolicy.__copy__": (),
- "PySide2.QtWidgets.QSizePolicy.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QSizePolicy.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QSizePolicy.controlType": (),
- "PySide2.QtWidgets.QSizePolicy.expandingDirections": (),
- "PySide2.QtWidgets.QSizePolicy.hasHeightForWidth": (),
- "PySide2.QtWidgets.QSizePolicy.hasWidthForHeight": (),
- "PySide2.QtWidgets.QSizePolicy.horizontalPolicy": (),
- "PySide2.QtWidgets.QSizePolicy.horizontalStretch": (),
- "PySide2.QtWidgets.QSizePolicy.retainSizeWhenHidden": (),
- "PySide2.QtWidgets.QSizePolicy.setControlType": ('PySide2.QtWidgets.QSizePolicy.ControlType',),
- "PySide2.QtWidgets.QSizePolicy.setHeightForWidth": ('bool',),
- "PySide2.QtWidgets.QSizePolicy.setHorizontalPolicy": ('PySide2.QtWidgets.QSizePolicy.Policy',),
- "PySide2.QtWidgets.QSizePolicy.setHorizontalStretch": ('int',),
- "PySide2.QtWidgets.QSizePolicy.setRetainSizeWhenHidden": ('bool',),
- "PySide2.QtWidgets.QSizePolicy.setVerticalPolicy": ('PySide2.QtWidgets.QSizePolicy.Policy',),
- "PySide2.QtWidgets.QSizePolicy.setVerticalStretch": ('int',),
- "PySide2.QtWidgets.QSizePolicy.setWidthForHeight": ('bool',),
- "PySide2.QtWidgets.QSizePolicy.transpose": (),
- "PySide2.QtWidgets.QSizePolicy.transposed": (),
- "PySide2.QtWidgets.QSizePolicy.verticalPolicy": (),
- "PySide2.QtWidgets.QSizePolicy.verticalStretch": (),
-# class PySide2.QtWidgets.QSlider:
-# class PySide2.QtWidgets.QSlider.TickPosition:
- "PySide2.QtWidgets.QSlider.__init__": [('PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QSlider.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QSlider.initStyleOption": ('PySide2.QtWidgets.QStyleOptionSlider',),
- "PySide2.QtWidgets.QSlider.minimumSizeHint": (),
- "PySide2.QtWidgets.QSlider.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QSlider.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QSlider.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QSlider.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QSlider.setTickInterval": ('int',),
- "PySide2.QtWidgets.QSlider.setTickPosition": ('PySide2.QtWidgets.QSlider.TickPosition',),
- "PySide2.QtWidgets.QSlider.sizeHint": (),
- "PySide2.QtWidgets.QSlider.tickInterval": (),
- "PySide2.QtWidgets.QSlider.tickPosition": (),
-# class PySide2.QtWidgets.QSpacerItem:
- "PySide2.QtWidgets.QSpacerItem.__init__": ('int', 'int', 'PySide2.QtWidgets.QSizePolicy.Policy', 'PySide2.QtWidgets.QSizePolicy.Policy'),
- "PySide2.QtWidgets.QSpacerItem.changeSize": ('int', 'int', 'PySide2.QtWidgets.QSizePolicy.Policy', 'PySide2.QtWidgets.QSizePolicy.Policy'),
- "PySide2.QtWidgets.QSpacerItem.expandingDirections": (),
- "PySide2.QtWidgets.QSpacerItem.geometry": (),
- "PySide2.QtWidgets.QSpacerItem.isEmpty": (),
- "PySide2.QtWidgets.QSpacerItem.maximumSize": (),
- "PySide2.QtWidgets.QSpacerItem.minimumSize": (),
- "PySide2.QtWidgets.QSpacerItem.setGeometry": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QSpacerItem.sizeHint": (),
- "PySide2.QtWidgets.QSpacerItem.sizePolicy": (),
- "PySide2.QtWidgets.QSpacerItem.spacerItem": (),
-# class PySide2.QtWidgets.QSpinBox:
- "PySide2.QtWidgets.QSpinBox.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QSpinBox.cleanText": (),
- "PySide2.QtWidgets.QSpinBox.displayIntegerBase": (),
- "PySide2.QtWidgets.QSpinBox.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QSpinBox.fixup": ('str',),
- "PySide2.QtWidgets.QSpinBox.maximum": (),
- "PySide2.QtWidgets.QSpinBox.minimum": (),
- "PySide2.QtWidgets.QSpinBox.prefix": (),
- "PySide2.QtWidgets.QSpinBox.setDisplayIntegerBase": ('int',),
- "PySide2.QtWidgets.QSpinBox.setMaximum": ('int',),
- "PySide2.QtWidgets.QSpinBox.setMinimum": ('int',),
- "PySide2.QtWidgets.QSpinBox.setPrefix": ('str',),
- "PySide2.QtWidgets.QSpinBox.setRange": ('int', 'int'),
- "PySide2.QtWidgets.QSpinBox.setSingleStep": ('int',),
- "PySide2.QtWidgets.QSpinBox.setStepType": ('PySide2.QtWidgets.QAbstractSpinBox.StepType',),
- "PySide2.QtWidgets.QSpinBox.setSuffix": ('str',),
- "PySide2.QtWidgets.QSpinBox.setValue": ('int',),
- "PySide2.QtWidgets.QSpinBox.singleStep": (),
- "PySide2.QtWidgets.QSpinBox.stepType": (),
- "PySide2.QtWidgets.QSpinBox.suffix": (),
- "PySide2.QtWidgets.QSpinBox.textFromValue": ('int',),
- "PySide2.QtWidgets.QSpinBox.validate": ('str', 'int'),
- "PySide2.QtWidgets.QSpinBox.value": (),
- "PySide2.QtWidgets.QSpinBox.valueFromText": ('str',),
-# class PySide2.QtWidgets.QSplashScreen:
- "PySide2.QtWidgets.QSplashScreen.__init__": [('PySide2.QtGui.QPixmap', 'PySide2.QtCore.Qt.WindowFlags'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtGui.QPixmap', 'PySide2.QtCore.Qt.WindowFlags')],
- "PySide2.QtWidgets.QSplashScreen.clearMessage": (),
- "PySide2.QtWidgets.QSplashScreen.drawContents": ('PySide2.QtGui.QPainter',),
- "PySide2.QtWidgets.QSplashScreen.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QSplashScreen.finish": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QSplashScreen.message": (),
- "PySide2.QtWidgets.QSplashScreen.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QSplashScreen.pixmap": (),
- "PySide2.QtWidgets.QSplashScreen.setPixmap": ('PySide2.QtGui.QPixmap',),
- "PySide2.QtWidgets.QSplashScreen.showMessage": ('str', 'int', 'PySide2.QtGui.QColor'),
-# class PySide2.QtWidgets.QSplitter:
- "PySide2.QtWidgets.QSplitter.__init__": [('PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QSplitter.__lshift__": ('PySide2.QtCore.QTextStream',),
- "PySide2.QtWidgets.QSplitter.__rshift__": ('PySide2.QtCore.QTextStream',),
- "PySide2.QtWidgets.QSplitter.addWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QSplitter.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QSplitter.childEvent": ('PySide2.QtCore.QChildEvent',),
- "PySide2.QtWidgets.QSplitter.childrenCollapsible": (),
- "PySide2.QtWidgets.QSplitter.closestLegalPosition": ('int', 'int'),
- "PySide2.QtWidgets.QSplitter.count": (),
- "PySide2.QtWidgets.QSplitter.createHandle": (),
- "PySide2.QtWidgets.QSplitter.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QSplitter.getRange": ('int',),
- "PySide2.QtWidgets.QSplitter.handle": ('int',),
- "PySide2.QtWidgets.QSplitter.handleWidth": (),
- "PySide2.QtWidgets.QSplitter.indexOf": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QSplitter.insertWidget": ('int', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QSplitter.isCollapsible": ('int',),
- "PySide2.QtWidgets.QSplitter.minimumSizeHint": (),
- "PySide2.QtWidgets.QSplitter.moveSplitter": ('int', 'int'),
- "PySide2.QtWidgets.QSplitter.opaqueResize": (),
- "PySide2.QtWidgets.QSplitter.orientation": (),
- "PySide2.QtWidgets.QSplitter.refresh": (),
- "PySide2.QtWidgets.QSplitter.replaceWidget": ('int', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QSplitter.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QSplitter.restoreState": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWidgets.QSplitter.saveState": (),
- "PySide2.QtWidgets.QSplitter.setChildrenCollapsible": ('bool',),
- "PySide2.QtWidgets.QSplitter.setCollapsible": ('int', 'bool'),
- "PySide2.QtWidgets.QSplitter.setHandleWidth": ('int',),
- "PySide2.QtWidgets.QSplitter.setOpaqueResize": ('bool',),
- "PySide2.QtWidgets.QSplitter.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtWidgets.QSplitter.setRubberBand": ('int',),
- "PySide2.QtWidgets.QSplitter.setSizes": ('typing.Sequence[int]',),
- "PySide2.QtWidgets.QSplitter.setStretchFactor": ('int', 'int'),
- "PySide2.QtWidgets.QSplitter.sizeHint": (),
- "PySide2.QtWidgets.QSplitter.sizes": (),
- "PySide2.QtWidgets.QSplitter.widget": ('int',),
-# class PySide2.QtWidgets.QSplitterHandle:
- "PySide2.QtWidgets.QSplitterHandle.__init__": ('PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QSplitter'),
- "PySide2.QtWidgets.QSplitterHandle.closestLegalPosition": ('int',),
- "PySide2.QtWidgets.QSplitterHandle.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QSplitterHandle.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QSplitterHandle.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QSplitterHandle.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QSplitterHandle.moveSplitter": ('int',),
- "PySide2.QtWidgets.QSplitterHandle.opaqueResize": (),
- "PySide2.QtWidgets.QSplitterHandle.orientation": (),
- "PySide2.QtWidgets.QSplitterHandle.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QSplitterHandle.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QSplitterHandle.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtWidgets.QSplitterHandle.sizeHint": (),
- "PySide2.QtWidgets.QSplitterHandle.splitter": (),
-# class PySide2.QtWidgets.QStackedLayout:
-# class PySide2.QtWidgets.QStackedLayout.StackingMode:
- "PySide2.QtWidgets.QStackedLayout.__init__": [(), ('PySide2.QtWidgets.QLayout',), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QStackedLayout.addItem": ('PySide2.QtWidgets.QLayoutItem',),
- "PySide2.QtWidgets.QStackedLayout.addWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QStackedLayout.count": (),
- "PySide2.QtWidgets.QStackedLayout.currentIndex": (),
- "PySide2.QtWidgets.QStackedLayout.currentWidget": (),
- "PySide2.QtWidgets.QStackedLayout.hasHeightForWidth": (),
- "PySide2.QtWidgets.QStackedLayout.heightForWidth": ('int',),
- "PySide2.QtWidgets.QStackedLayout.insertWidget": ('int', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStackedLayout.itemAt": ('int',),
- "PySide2.QtWidgets.QStackedLayout.minimumSize": (),
- "PySide2.QtWidgets.QStackedLayout.setCurrentIndex": ('int',),
- "PySide2.QtWidgets.QStackedLayout.setCurrentWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QStackedLayout.setGeometry": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QStackedLayout.setStackingMode": ('PySide2.QtWidgets.QStackedLayout.StackingMode',),
- "PySide2.QtWidgets.QStackedLayout.sizeHint": (),
- "PySide2.QtWidgets.QStackedLayout.stackingMode": (),
- "PySide2.QtWidgets.QStackedLayout.takeAt": ('int',),
- "PySide2.QtWidgets.QStackedLayout.widget": [(), ('int',)],
-# class PySide2.QtWidgets.QStackedWidget:
- "PySide2.QtWidgets.QStackedWidget.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QStackedWidget.addWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QStackedWidget.count": (),
- "PySide2.QtWidgets.QStackedWidget.currentIndex": (),
- "PySide2.QtWidgets.QStackedWidget.currentWidget": (),
- "PySide2.QtWidgets.QStackedWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QStackedWidget.indexOf": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QStackedWidget.insertWidget": ('int', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStackedWidget.removeWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QStackedWidget.setCurrentIndex": ('int',),
- "PySide2.QtWidgets.QStackedWidget.setCurrentWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QStackedWidget.widget": ('int',),
-# class PySide2.QtWidgets.QStatusBar:
- "PySide2.QtWidgets.QStatusBar.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QStatusBar.addPermanentWidget": ('PySide2.QtWidgets.QWidget', 'int'),
- "PySide2.QtWidgets.QStatusBar.addWidget": ('PySide2.QtWidgets.QWidget', 'int'),
- "PySide2.QtWidgets.QStatusBar.clearMessage": (),
- "PySide2.QtWidgets.QStatusBar.currentMessage": (),
- "PySide2.QtWidgets.QStatusBar.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QStatusBar.hideOrShow": (),
- "PySide2.QtWidgets.QStatusBar.insertPermanentWidget": ('int', 'PySide2.QtWidgets.QWidget', 'int'),
- "PySide2.QtWidgets.QStatusBar.insertWidget": ('int', 'PySide2.QtWidgets.QWidget', 'int'),
- "PySide2.QtWidgets.QStatusBar.isSizeGripEnabled": (),
- "PySide2.QtWidgets.QStatusBar.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QStatusBar.reformat": (),
- "PySide2.QtWidgets.QStatusBar.removeWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QStatusBar.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QStatusBar.setSizeGripEnabled": ('bool',),
- "PySide2.QtWidgets.QStatusBar.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QStatusBar.showMessage": ('str', 'int'),
-# class PySide2.QtWidgets.QStyle:
-# class PySide2.QtWidgets.QStyle.ComplexControl:
-# class PySide2.QtWidgets.QStyle.ContentsType:
-# class PySide2.QtWidgets.QStyle.ControlElement:
-# class PySide2.QtWidgets.QStyle.PixelMetric:
-# class PySide2.QtWidgets.QStyle.PrimitiveElement:
-# class PySide2.QtWidgets.QStyle.RequestSoftwareInputPanel:
-# class PySide2.QtWidgets.QStyle.StandardPixmap:
-# class PySide2.QtWidgets.QStyle.State:
-# class PySide2.QtWidgets.QStyle.StateFlag:
-# class PySide2.QtWidgets.QStyle.StyleHint:
-# class PySide2.QtWidgets.QStyle.SubControl:
-# class PySide2.QtWidgets.QStyle.SubControls:
-# class PySide2.QtWidgets.QStyle.SubElement:
- "PySide2.QtWidgets.QStyle.__init__": (),
- "PySide2.QtWidgets.QStyle.alignedRect": ('PySide2.QtCore.Qt.LayoutDirection', 'PySide2.QtCore.Qt.Alignment', 'PySide2.QtCore.QSize', 'PySide2.QtCore.QRect'),
- "PySide2.QtWidgets.QStyle.combinedLayoutSpacing": ('PySide2.QtWidgets.QSizePolicy.ControlTypes', 'PySide2.QtWidgets.QSizePolicy.ControlTypes', 'PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.drawComplexControl": ('PySide2.QtWidgets.QStyle.ComplexControl', 'PySide2.QtWidgets.QStyleOptionComplex', 'PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.drawControl": ('PySide2.QtWidgets.QStyle.ControlElement', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.drawItemPixmap": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRect', 'int', 'PySide2.QtGui.QPixmap'),
- "PySide2.QtWidgets.QStyle.drawItemText": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRect', 'int', 'PySide2.QtGui.QPalette', 'bool', 'str', 'PySide2.QtGui.QPalette.ColorRole'),
- "PySide2.QtWidgets.QStyle.drawPrimitive": ('PySide2.QtWidgets.QStyle.PrimitiveElement', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.generatedIconPixmap": ('PySide2.QtGui.QIcon.Mode', 'PySide2.QtGui.QPixmap', 'PySide2.QtWidgets.QStyleOption'),
- "PySide2.QtWidgets.QStyle.hitTestComplexControl": ('PySide2.QtWidgets.QStyle.ComplexControl', 'PySide2.QtWidgets.QStyleOptionComplex', 'PySide2.QtCore.QPoint', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.itemPixmapRect": ('PySide2.QtCore.QRect', 'int', 'PySide2.QtGui.QPixmap'),
- "PySide2.QtWidgets.QStyle.itemTextRect": ('PySide2.QtGui.QFontMetrics', 'PySide2.QtCore.QRect', 'int', 'bool', 'str'),
- "PySide2.QtWidgets.QStyle.layoutSpacing": ('PySide2.QtWidgets.QSizePolicy.ControlType', 'PySide2.QtWidgets.QSizePolicy.ControlType', 'PySide2.QtCore.Qt.Orientation', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.pixelMetric": ('PySide2.QtWidgets.QStyle.PixelMetric', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.polish": [('PySide2.QtGui.QPalette',), ('PySide2.QtWidgets.QApplication',), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QStyle.proxy": (),
- "PySide2.QtWidgets.QStyle.sizeFromContents": ('PySide2.QtWidgets.QStyle.ContentsType', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtCore.QSize', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.sliderPositionFromValue": ('int', 'int', 'int', 'int', 'bool'),
- "PySide2.QtWidgets.QStyle.sliderValueFromPosition": ('int', 'int', 'int', 'int', 'bool'),
- "PySide2.QtWidgets.QStyle.standardIcon": ('PySide2.QtWidgets.QStyle.StandardPixmap', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.standardPalette": (),
- "PySide2.QtWidgets.QStyle.standardPixmap": ('PySide2.QtWidgets.QStyle.StandardPixmap', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.styleHint": ('PySide2.QtWidgets.QStyle.StyleHint', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QStyleHintReturn'),
- "PySide2.QtWidgets.QStyle.subControlRect": ('PySide2.QtWidgets.QStyle.ComplexControl', 'PySide2.QtWidgets.QStyleOptionComplex', 'PySide2.QtWidgets.QStyle.SubControl', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.subElementRect": ('PySide2.QtWidgets.QStyle.SubElement', 'PySide2.QtWidgets.QStyleOption', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QStyle.unpolish": [('PySide2.QtWidgets.QApplication',), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QStyle.visualAlignment": ('PySide2.QtCore.Qt.LayoutDirection', 'PySide2.QtCore.Qt.Alignment'),
- "PySide2.QtWidgets.QStyle.visualPos": ('PySide2.QtCore.Qt.LayoutDirection', 'PySide2.QtCore.QRect', 'PySide2.QtCore.QPoint'),
- "PySide2.QtWidgets.QStyle.visualRect": ('PySide2.QtCore.Qt.LayoutDirection', 'PySide2.QtCore.QRect', 'PySide2.QtCore.QRect'),
-# class PySide2.QtWidgets.QStyleFactory:
- "PySide2.QtWidgets.QStyleFactory.__init__": (),
- "PySide2.QtWidgets.QStyleFactory.create": ('str',),
- "PySide2.QtWidgets.QStyleFactory.keys": (),
-# class PySide2.QtWidgets.QStyleHintReturn:
-# class PySide2.QtWidgets.QStyleHintReturn.HintReturnType:
-# class PySide2.QtWidgets.QStyleHintReturn.StyleOptionType:
-# class PySide2.QtWidgets.QStyleHintReturn.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleHintReturn.__init__": ('int', 'int'),
-# class PySide2.QtWidgets.QStyleHintReturnMask:
-# class PySide2.QtWidgets.QStyleHintReturnMask.StyleOptionType:
-# class PySide2.QtWidgets.QStyleHintReturnMask.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleHintReturnMask.__init__": (),
-# class PySide2.QtWidgets.QStyleHintReturnVariant:
-# class PySide2.QtWidgets.QStyleHintReturnVariant.StyleOptionType:
-# class PySide2.QtWidgets.QStyleHintReturnVariant.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleHintReturnVariant.__init__": (),
-# class PySide2.QtWidgets.QStyleOption:
-# class PySide2.QtWidgets.QStyleOption.OptionType:
-# class PySide2.QtWidgets.QStyleOption.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOption.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOption.__init__": [('PySide2.QtWidgets.QStyleOption',), ('int', 'int')],
- "PySide2.QtWidgets.QStyleOption.init": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QStyleOption.initFrom": ('PySide2.QtWidgets.QWidget',),
-# class PySide2.QtWidgets.QStyleOptionButton:
-# class PySide2.QtWidgets.QStyleOptionButton.ButtonFeature:
-# class PySide2.QtWidgets.QStyleOptionButton.ButtonFeatures:
-# class PySide2.QtWidgets.QStyleOptionButton.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionButton.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionButton.__init__": [(), ('PySide2.QtWidgets.QStyleOptionButton',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionComboBox:
-# class PySide2.QtWidgets.QStyleOptionComboBox.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionComboBox.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionComboBox.__init__": [(), ('PySide2.QtWidgets.QStyleOptionComboBox',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionComplex:
-# class PySide2.QtWidgets.QStyleOptionComplex.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionComplex.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionComplex.__init__": [('PySide2.QtWidgets.QStyleOptionComplex',), ('int', 'int')],
-# class PySide2.QtWidgets.QStyleOptionDockWidget:
-# class PySide2.QtWidgets.QStyleOptionDockWidget.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionDockWidget.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionDockWidget.__init__": [(), ('PySide2.QtWidgets.QStyleOptionDockWidget',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionFocusRect:
-# class PySide2.QtWidgets.QStyleOptionFocusRect.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionFocusRect.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionFocusRect.__init__": [(), ('PySide2.QtWidgets.QStyleOptionFocusRect',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionFrame:
-# class PySide2.QtWidgets.QStyleOptionFrame.FrameFeature:
-# class PySide2.QtWidgets.QStyleOptionFrame.FrameFeatures:
-# class PySide2.QtWidgets.QStyleOptionFrame.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionFrame.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionFrame.__init__": [(), ('PySide2.QtWidgets.QStyleOptionFrame',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionGraphicsItem:
-# class PySide2.QtWidgets.QStyleOptionGraphicsItem.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionGraphicsItem.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionGraphicsItem.__init__": [(), ('PySide2.QtWidgets.QStyleOptionGraphicsItem',), ('int',)],
- "PySide2.QtWidgets.QStyleOptionGraphicsItem.levelOfDetailFromTransform": ('PySide2.QtGui.QTransform',),
-# class PySide2.QtWidgets.QStyleOptionGroupBox:
-# class PySide2.QtWidgets.QStyleOptionGroupBox.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionGroupBox.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionGroupBox.__init__": [(), ('PySide2.QtWidgets.QStyleOptionGroupBox',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionHeader:
-# class PySide2.QtWidgets.QStyleOptionHeader.SectionPosition:
-# class PySide2.QtWidgets.QStyleOptionHeader.SelectedPosition:
-# class PySide2.QtWidgets.QStyleOptionHeader.SortIndicator:
-# class PySide2.QtWidgets.QStyleOptionHeader.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionHeader.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionHeader.__init__": [(), ('PySide2.QtWidgets.QStyleOptionHeader',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionMenuItem:
-# class PySide2.QtWidgets.QStyleOptionMenuItem.CheckType:
-# class PySide2.QtWidgets.QStyleOptionMenuItem.MenuItemType:
-# class PySide2.QtWidgets.QStyleOptionMenuItem.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionMenuItem.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionMenuItem.__init__": [(), ('PySide2.QtWidgets.QStyleOptionMenuItem',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionProgressBar:
-# class PySide2.QtWidgets.QStyleOptionProgressBar.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionProgressBar.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionProgressBar.__init__": [(), ('PySide2.QtWidgets.QStyleOptionProgressBar',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionRubberBand:
-# class PySide2.QtWidgets.QStyleOptionRubberBand.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionRubberBand.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionRubberBand.__init__": [(), ('PySide2.QtWidgets.QStyleOptionRubberBand',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionSizeGrip:
-# class PySide2.QtWidgets.QStyleOptionSizeGrip.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionSizeGrip.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionSizeGrip.__init__": [(), ('PySide2.QtWidgets.QStyleOptionSizeGrip',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionSlider:
-# class PySide2.QtWidgets.QStyleOptionSlider.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionSlider.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionSlider.__init__": [(), ('PySide2.QtWidgets.QStyleOptionSlider',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionSpinBox:
-# class PySide2.QtWidgets.QStyleOptionSpinBox.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionSpinBox.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionSpinBox.__init__": [(), ('PySide2.QtWidgets.QStyleOptionSpinBox',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionTab:
-# class PySide2.QtWidgets.QStyleOptionTab.CornerWidget:
-# class PySide2.QtWidgets.QStyleOptionTab.CornerWidgets:
-# class PySide2.QtWidgets.QStyleOptionTab.SelectedPosition:
-# class PySide2.QtWidgets.QStyleOptionTab.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionTab.StyleOptionVersion:
-# class PySide2.QtWidgets.QStyleOptionTab.TabFeature:
-# class PySide2.QtWidgets.QStyleOptionTab.TabFeatures:
-# class PySide2.QtWidgets.QStyleOptionTab.TabPosition:
- "PySide2.QtWidgets.QStyleOptionTab.__init__": [(), ('PySide2.QtWidgets.QStyleOptionTab',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionTabBarBase:
-# class PySide2.QtWidgets.QStyleOptionTabBarBase.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionTabBarBase.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionTabBarBase.__init__": [(), ('PySide2.QtWidgets.QStyleOptionTabBarBase',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionTabWidgetFrame:
-# class PySide2.QtWidgets.QStyleOptionTabWidgetFrame.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionTabWidgetFrame.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionTabWidgetFrame.__init__": [(), ('PySide2.QtWidgets.QStyleOptionTabWidgetFrame',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionTitleBar:
-# class PySide2.QtWidgets.QStyleOptionTitleBar.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionTitleBar.StyleOptionVersion:
- "PySide2.QtWidgets.QStyleOptionTitleBar.__init__": [(), ('PySide2.QtWidgets.QStyleOptionTitleBar',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionToolBar:
-# class PySide2.QtWidgets.QStyleOptionToolBar.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionToolBar.StyleOptionVersion:
-# class PySide2.QtWidgets.QStyleOptionToolBar.ToolBarFeature:
-# class PySide2.QtWidgets.QStyleOptionToolBar.ToolBarFeatures:
-# class PySide2.QtWidgets.QStyleOptionToolBar.ToolBarPosition:
- "PySide2.QtWidgets.QStyleOptionToolBar.__init__": [(), ('PySide2.QtWidgets.QStyleOptionToolBar',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionToolBox:
-# class PySide2.QtWidgets.QStyleOptionToolBox.SelectedPosition:
-# class PySide2.QtWidgets.QStyleOptionToolBox.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionToolBox.StyleOptionVersion:
-# class PySide2.QtWidgets.QStyleOptionToolBox.TabPosition:
- "PySide2.QtWidgets.QStyleOptionToolBox.__init__": [(), ('PySide2.QtWidgets.QStyleOptionToolBox',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionToolButton:
-# class PySide2.QtWidgets.QStyleOptionToolButton.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionToolButton.StyleOptionVersion:
-# class PySide2.QtWidgets.QStyleOptionToolButton.ToolButtonFeature:
-# class PySide2.QtWidgets.QStyleOptionToolButton.ToolButtonFeatures:
- "PySide2.QtWidgets.QStyleOptionToolButton.__init__": [(), ('PySide2.QtWidgets.QStyleOptionToolButton',), ('int',)],
-# class PySide2.QtWidgets.QStyleOptionViewItem:
-# class PySide2.QtWidgets.QStyleOptionViewItem.Position:
-# class PySide2.QtWidgets.QStyleOptionViewItem.StyleOptionType:
-# class PySide2.QtWidgets.QStyleOptionViewItem.StyleOptionVersion:
-# class PySide2.QtWidgets.QStyleOptionViewItem.ViewItemFeature:
-# class PySide2.QtWidgets.QStyleOptionViewItem.ViewItemFeatures:
-# class PySide2.QtWidgets.QStyleOptionViewItem.ViewItemPosition:
- "PySide2.QtWidgets.QStyleOptionViewItem.__init__": [(), ('PySide2.QtWidgets.QStyleOptionViewItem',), ('int',)],
- "PySide2.QtWidgets.QStyleOptionViewItem.__copy__": (),
-# class PySide2.QtWidgets.QStylePainter:
- "PySide2.QtWidgets.QStylePainter.__init__": [(), ('PySide2.QtGui.QPaintDevice', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QStylePainter.begin": [('PySide2.QtGui.QPaintDevice',), ('PySide2.QtGui.QPaintDevice', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QStylePainter.drawComplexControl": ('PySide2.QtWidgets.QStyle.ComplexControl', 'PySide2.QtWidgets.QStyleOptionComplex'),
- "PySide2.QtWidgets.QStylePainter.drawControl": ('PySide2.QtWidgets.QStyle.ControlElement', 'PySide2.QtWidgets.QStyleOption'),
- "PySide2.QtWidgets.QStylePainter.drawItemPixmap": ('PySide2.QtCore.QRect', 'int', 'PySide2.QtGui.QPixmap'),
- "PySide2.QtWidgets.QStylePainter.drawItemText": ('PySide2.QtCore.QRect', 'int', 'PySide2.QtGui.QPalette', 'bool', 'str', 'PySide2.QtGui.QPalette.ColorRole'),
- "PySide2.QtWidgets.QStylePainter.drawPrimitive": ('PySide2.QtWidgets.QStyle.PrimitiveElement', 'PySide2.QtWidgets.QStyleOption'),
- "PySide2.QtWidgets.QStylePainter.style": (),
-# class PySide2.QtWidgets.QStyledItemDelegate:
- "PySide2.QtWidgets.QStyledItemDelegate.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QStyledItemDelegate.createEditor": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QStyledItemDelegate.displayText": ('typing.Any', 'PySide2.QtCore.QLocale'),
- "PySide2.QtWidgets.QStyledItemDelegate.editorEvent": ('PySide2.QtCore.QEvent', 'PySide2.QtCore.QAbstractItemModel', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QStyledItemDelegate.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QStyledItemDelegate.initStyleOption": ('PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QStyledItemDelegate.itemEditorFactory": (),
- "PySide2.QtWidgets.QStyledItemDelegate.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QStyledItemDelegate.setEditorData": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QStyledItemDelegate.setItemEditorFactory": ('PySide2.QtWidgets.QItemEditorFactory',),
- "PySide2.QtWidgets.QStyledItemDelegate.setModelData": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QAbstractItemModel', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QStyledItemDelegate.sizeHint": ('PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QStyledItemDelegate.updateEditorGeometry": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
-# class PySide2.QtWidgets.QSwipeGesture:
-# class PySide2.QtWidgets.QSwipeGesture.SwipeDirection:
- "PySide2.QtWidgets.QSwipeGesture.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QSwipeGesture.horizontalDirection": (),
- "PySide2.QtWidgets.QSwipeGesture.setSwipeAngle": ('float',),
- "PySide2.QtWidgets.QSwipeGesture.swipeAngle": (),
- "PySide2.QtWidgets.QSwipeGesture.verticalDirection": (),
-# class PySide2.QtWidgets.QSystemTrayIcon:
-# class PySide2.QtWidgets.QSystemTrayIcon.ActivationReason:
-# class PySide2.QtWidgets.QSystemTrayIcon.MessageIcon:
- "PySide2.QtWidgets.QSystemTrayIcon.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtGui.QIcon', 'PySide2.QtCore.QObject')],
- "PySide2.QtWidgets.QSystemTrayIcon.contextMenu": (),
- "PySide2.QtWidgets.QSystemTrayIcon.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QSystemTrayIcon.geometry": (),
- "PySide2.QtWidgets.QSystemTrayIcon.hide": (),
- "PySide2.QtWidgets.QSystemTrayIcon.icon": (),
- "PySide2.QtWidgets.QSystemTrayIcon.isSystemTrayAvailable": (),
- "PySide2.QtWidgets.QSystemTrayIcon.isVisible": (),
- "PySide2.QtWidgets.QSystemTrayIcon.setContextMenu": ('PySide2.QtWidgets.QMenu',),
- "PySide2.QtWidgets.QSystemTrayIcon.setIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtWidgets.QSystemTrayIcon.setToolTip": ('str',),
- "PySide2.QtWidgets.QSystemTrayIcon.setVisible": ('bool',),
- "PySide2.QtWidgets.QSystemTrayIcon.show": (),
- "PySide2.QtWidgets.QSystemTrayIcon.showMessage": [('str', 'str', 'PySide2.QtGui.QIcon', 'int'), ('str', 'str', 'PySide2.QtWidgets.QSystemTrayIcon.MessageIcon', 'int')],
- "PySide2.QtWidgets.QSystemTrayIcon.supportsMessages": (),
- "PySide2.QtWidgets.QSystemTrayIcon.toolTip": (),
-# class PySide2.QtWidgets.QTabBar:
-# class PySide2.QtWidgets.QTabBar.ButtonPosition:
-# class PySide2.QtWidgets.QTabBar.SelectionBehavior:
-# class PySide2.QtWidgets.QTabBar.Shape:
- "PySide2.QtWidgets.QTabBar.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QTabBar.accessibleTabName": ('int',),
- "PySide2.QtWidgets.QTabBar.addTab": [('PySide2.QtGui.QIcon', 'str'), ('str',)],
- "PySide2.QtWidgets.QTabBar.autoHide": (),
- "PySide2.QtWidgets.QTabBar.changeCurrentOnDrag": (),
- "PySide2.QtWidgets.QTabBar.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QTabBar.count": (),
- "PySide2.QtWidgets.QTabBar.currentIndex": (),
- "PySide2.QtWidgets.QTabBar.documentMode": (),
- "PySide2.QtWidgets.QTabBar.drawBase": (),
- "PySide2.QtWidgets.QTabBar.elideMode": (),
- "PySide2.QtWidgets.QTabBar.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QTabBar.expanding": (),
- "PySide2.QtWidgets.QTabBar.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWidgets.QTabBar.iconSize": (),
- "PySide2.QtWidgets.QTabBar.initStyleOption": ('PySide2.QtWidgets.QStyleOptionTab', 'int'),
- "PySide2.QtWidgets.QTabBar.insertTab": [('int', 'PySide2.QtGui.QIcon', 'str'), ('int', 'str')],
- "PySide2.QtWidgets.QTabBar.isMovable": (),
- "PySide2.QtWidgets.QTabBar.isTabEnabled": ('int',),
- "PySide2.QtWidgets.QTabBar.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QTabBar.minimumSizeHint": (),
- "PySide2.QtWidgets.QTabBar.minimumTabSizeHint": ('int',),
- "PySide2.QtWidgets.QTabBar.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTabBar.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTabBar.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTabBar.moveTab": ('int', 'int'),
- "PySide2.QtWidgets.QTabBar.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QTabBar.removeTab": ('int',),
- "PySide2.QtWidgets.QTabBar.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QTabBar.selectionBehaviorOnRemove": (),
- "PySide2.QtWidgets.QTabBar.setAccessibleTabName": ('int', 'str'),
- "PySide2.QtWidgets.QTabBar.setAutoHide": ('bool',),
- "PySide2.QtWidgets.QTabBar.setChangeCurrentOnDrag": ('bool',),
- "PySide2.QtWidgets.QTabBar.setCurrentIndex": ('int',),
- "PySide2.QtWidgets.QTabBar.setDocumentMode": ('bool',),
- "PySide2.QtWidgets.QTabBar.setDrawBase": ('bool',),
- "PySide2.QtWidgets.QTabBar.setElideMode": ('PySide2.QtCore.Qt.TextElideMode',),
- "PySide2.QtWidgets.QTabBar.setExpanding": ('bool',),
- "PySide2.QtWidgets.QTabBar.setIconSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QTabBar.setMovable": ('bool',),
- "PySide2.QtWidgets.QTabBar.setSelectionBehaviorOnRemove": ('PySide2.QtWidgets.QTabBar.SelectionBehavior',),
- "PySide2.QtWidgets.QTabBar.setShape": ('PySide2.QtWidgets.QTabBar.Shape',),
- "PySide2.QtWidgets.QTabBar.setTabButton": ('int', 'PySide2.QtWidgets.QTabBar.ButtonPosition', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QTabBar.setTabData": ('int', 'typing.Any'),
- "PySide2.QtWidgets.QTabBar.setTabEnabled": ('int', 'bool'),
- "PySide2.QtWidgets.QTabBar.setTabIcon": ('int', 'PySide2.QtGui.QIcon'),
- "PySide2.QtWidgets.QTabBar.setTabText": ('int', 'str'),
- "PySide2.QtWidgets.QTabBar.setTabTextColor": ('int', 'PySide2.QtGui.QColor'),
- "PySide2.QtWidgets.QTabBar.setTabToolTip": ('int', 'str'),
- "PySide2.QtWidgets.QTabBar.setTabWhatsThis": ('int', 'str'),
- "PySide2.QtWidgets.QTabBar.setTabsClosable": ('bool',),
- "PySide2.QtWidgets.QTabBar.setUsesScrollButtons": ('bool',),
- "PySide2.QtWidgets.QTabBar.shape": (),
- "PySide2.QtWidgets.QTabBar.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QTabBar.sizeHint": (),
- "PySide2.QtWidgets.QTabBar.tabAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QTabBar.tabButton": ('int', 'PySide2.QtWidgets.QTabBar.ButtonPosition'),
- "PySide2.QtWidgets.QTabBar.tabData": ('int',),
- "PySide2.QtWidgets.QTabBar.tabIcon": ('int',),
- "PySide2.QtWidgets.QTabBar.tabInserted": ('int',),
- "PySide2.QtWidgets.QTabBar.tabLayoutChange": (),
- "PySide2.QtWidgets.QTabBar.tabRect": ('int',),
- "PySide2.QtWidgets.QTabBar.tabRemoved": ('int',),
- "PySide2.QtWidgets.QTabBar.tabSizeHint": ('int',),
- "PySide2.QtWidgets.QTabBar.tabText": ('int',),
- "PySide2.QtWidgets.QTabBar.tabTextColor": ('int',),
- "PySide2.QtWidgets.QTabBar.tabToolTip": ('int',),
- "PySide2.QtWidgets.QTabBar.tabWhatsThis": ('int',),
- "PySide2.QtWidgets.QTabBar.tabsClosable": (),
- "PySide2.QtWidgets.QTabBar.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QTabBar.usesScrollButtons": (),
- "PySide2.QtWidgets.QTabBar.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtWidgets.QTabWidget:
-# class PySide2.QtWidgets.QTabWidget.TabPosition:
-# class PySide2.QtWidgets.QTabWidget.TabShape:
- "PySide2.QtWidgets.QTabWidget.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QTabWidget.addTab": [('PySide2.QtWidgets.QWidget', 'PySide2.QtGui.QIcon', 'str'), ('PySide2.QtWidgets.QWidget', 'str')],
- "PySide2.QtWidgets.QTabWidget.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QTabWidget.clear": (),
- "PySide2.QtWidgets.QTabWidget.cornerWidget": ('PySide2.QtCore.Qt.Corner',),
- "PySide2.QtWidgets.QTabWidget.count": (),
- "PySide2.QtWidgets.QTabWidget.currentIndex": (),
- "PySide2.QtWidgets.QTabWidget.currentWidget": (),
- "PySide2.QtWidgets.QTabWidget.documentMode": (),
- "PySide2.QtWidgets.QTabWidget.elideMode": (),
- "PySide2.QtWidgets.QTabWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QTabWidget.hasHeightForWidth": (),
- "PySide2.QtWidgets.QTabWidget.heightForWidth": ('int',),
- "PySide2.QtWidgets.QTabWidget.iconSize": (),
- "PySide2.QtWidgets.QTabWidget.indexOf": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QTabWidget.initStyleOption": ('PySide2.QtWidgets.QStyleOptionTabWidgetFrame',),
- "PySide2.QtWidgets.QTabWidget.insertTab": [('int', 'PySide2.QtWidgets.QWidget', 'PySide2.QtGui.QIcon', 'str'), ('int', 'PySide2.QtWidgets.QWidget', 'str')],
- "PySide2.QtWidgets.QTabWidget.isMovable": (),
- "PySide2.QtWidgets.QTabWidget.isTabEnabled": ('int',),
- "PySide2.QtWidgets.QTabWidget.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QTabWidget.minimumSizeHint": (),
- "PySide2.QtWidgets.QTabWidget.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QTabWidget.removeTab": ('int',),
- "PySide2.QtWidgets.QTabWidget.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QTabWidget.setCornerWidget": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.Corner'),
- "PySide2.QtWidgets.QTabWidget.setCurrentIndex": ('int',),
- "PySide2.QtWidgets.QTabWidget.setCurrentWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QTabWidget.setDocumentMode": ('bool',),
- "PySide2.QtWidgets.QTabWidget.setElideMode": ('PySide2.QtCore.Qt.TextElideMode',),
- "PySide2.QtWidgets.QTabWidget.setIconSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QTabWidget.setMovable": ('bool',),
- "PySide2.QtWidgets.QTabWidget.setTabBar": ('PySide2.QtWidgets.QTabBar',),
- "PySide2.QtWidgets.QTabWidget.setTabBarAutoHide": ('bool',),
- "PySide2.QtWidgets.QTabWidget.setTabEnabled": ('int', 'bool'),
- "PySide2.QtWidgets.QTabWidget.setTabIcon": ('int', 'PySide2.QtGui.QIcon'),
- "PySide2.QtWidgets.QTabWidget.setTabPosition": ('PySide2.QtWidgets.QTabWidget.TabPosition',),
- "PySide2.QtWidgets.QTabWidget.setTabShape": ('PySide2.QtWidgets.QTabWidget.TabShape',),
- "PySide2.QtWidgets.QTabWidget.setTabText": ('int', 'str'),
- "PySide2.QtWidgets.QTabWidget.setTabToolTip": ('int', 'str'),
- "PySide2.QtWidgets.QTabWidget.setTabWhatsThis": ('int', 'str'),
- "PySide2.QtWidgets.QTabWidget.setTabsClosable": ('bool',),
- "PySide2.QtWidgets.QTabWidget.setUsesScrollButtons": ('bool',),
- "PySide2.QtWidgets.QTabWidget.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QTabWidget.sizeHint": (),
- "PySide2.QtWidgets.QTabWidget.tabBar": (),
- "PySide2.QtWidgets.QTabWidget.tabBarAutoHide": (),
- "PySide2.QtWidgets.QTabWidget.tabIcon": ('int',),
- "PySide2.QtWidgets.QTabWidget.tabInserted": ('int',),
- "PySide2.QtWidgets.QTabWidget.tabPosition": (),
- "PySide2.QtWidgets.QTabWidget.tabRemoved": ('int',),
- "PySide2.QtWidgets.QTabWidget.tabShape": (),
- "PySide2.QtWidgets.QTabWidget.tabText": ('int',),
- "PySide2.QtWidgets.QTabWidget.tabToolTip": ('int',),
- "PySide2.QtWidgets.QTabWidget.tabWhatsThis": ('int',),
- "PySide2.QtWidgets.QTabWidget.tabsClosable": (),
- "PySide2.QtWidgets.QTabWidget.usesScrollButtons": (),
- "PySide2.QtWidgets.QTabWidget.widget": ('int',),
-# class PySide2.QtWidgets.QTableView:
- "PySide2.QtWidgets.QTableView.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QTableView.clearSpans": (),
- "PySide2.QtWidgets.QTableView.columnAt": ('int',),
- "PySide2.QtWidgets.QTableView.columnCountChanged": ('int', 'int'),
- "PySide2.QtWidgets.QTableView.columnMoved": ('int', 'int', 'int'),
- "PySide2.QtWidgets.QTableView.columnResized": ('int', 'int', 'int'),
- "PySide2.QtWidgets.QTableView.columnSpan": ('int', 'int'),
- "PySide2.QtWidgets.QTableView.columnViewportPosition": ('int',),
- "PySide2.QtWidgets.QTableView.columnWidth": ('int',),
- "PySide2.QtWidgets.QTableView.currentChanged": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QTableView.doItemsLayout": (),
- "PySide2.QtWidgets.QTableView.gridStyle": (),
- "PySide2.QtWidgets.QTableView.hideColumn": ('int',),
- "PySide2.QtWidgets.QTableView.hideRow": ('int',),
- "PySide2.QtWidgets.QTableView.horizontalHeader": (),
- "PySide2.QtWidgets.QTableView.horizontalOffset": (),
- "PySide2.QtWidgets.QTableView.horizontalScrollbarAction": ('int',),
- "PySide2.QtWidgets.QTableView.indexAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QTableView.isColumnHidden": ('int',),
- "PySide2.QtWidgets.QTableView.isCornerButtonEnabled": (),
- "PySide2.QtWidgets.QTableView.isIndexHidden": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTableView.isRowHidden": ('int',),
- "PySide2.QtWidgets.QTableView.isSortingEnabled": (),
- "PySide2.QtWidgets.QTableView.moveCursor": ('PySide2.QtWidgets.QAbstractItemView.CursorAction', 'PySide2.QtCore.Qt.KeyboardModifiers'),
- "PySide2.QtWidgets.QTableView.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QTableView.resizeColumnToContents": ('int',),
- "PySide2.QtWidgets.QTableView.resizeColumnsToContents": (),
- "PySide2.QtWidgets.QTableView.resizeRowToContents": ('int',),
- "PySide2.QtWidgets.QTableView.resizeRowsToContents": (),
- "PySide2.QtWidgets.QTableView.rowAt": ('int',),
- "PySide2.QtWidgets.QTableView.rowCountChanged": ('int', 'int'),
- "PySide2.QtWidgets.QTableView.rowHeight": ('int',),
- "PySide2.QtWidgets.QTableView.rowMoved": ('int', 'int', 'int'),
- "PySide2.QtWidgets.QTableView.rowResized": ('int', 'int', 'int'),
- "PySide2.QtWidgets.QTableView.rowSpan": ('int', 'int'),
- "PySide2.QtWidgets.QTableView.rowViewportPosition": ('int',),
- "PySide2.QtWidgets.QTableView.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QTableView.scrollTo": ('PySide2.QtCore.QModelIndex', 'PySide2.QtWidgets.QAbstractItemView.ScrollHint'),
- "PySide2.QtWidgets.QTableView.selectColumn": ('int',),
- "PySide2.QtWidgets.QTableView.selectRow": ('int',),
- "PySide2.QtWidgets.QTableView.selectedIndexes": (),
- "PySide2.QtWidgets.QTableView.selectionChanged": ('PySide2.QtCore.QItemSelection', 'PySide2.QtCore.QItemSelection'),
- "PySide2.QtWidgets.QTableView.setColumnHidden": ('int', 'bool'),
- "PySide2.QtWidgets.QTableView.setColumnWidth": ('int', 'int'),
- "PySide2.QtWidgets.QTableView.setCornerButtonEnabled": ('bool',),
- "PySide2.QtWidgets.QTableView.setGridStyle": ('PySide2.QtCore.Qt.PenStyle',),
- "PySide2.QtWidgets.QTableView.setHorizontalHeader": ('PySide2.QtWidgets.QHeaderView',),
- "PySide2.QtWidgets.QTableView.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QTableView.setRootIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTableView.setRowHeight": ('int', 'int'),
- "PySide2.QtWidgets.QTableView.setRowHidden": ('int', 'bool'),
- "PySide2.QtWidgets.QTableView.setSelection": ('PySide2.QtCore.QRect', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags'),
- "PySide2.QtWidgets.QTableView.setSelectionModel": ('PySide2.QtCore.QItemSelectionModel',),
- "PySide2.QtWidgets.QTableView.setShowGrid": ('bool',),
- "PySide2.QtWidgets.QTableView.setSortingEnabled": ('bool',),
- "PySide2.QtWidgets.QTableView.setSpan": ('int', 'int', 'int', 'int'),
- "PySide2.QtWidgets.QTableView.setVerticalHeader": ('PySide2.QtWidgets.QHeaderView',),
- "PySide2.QtWidgets.QTableView.setWordWrap": ('bool',),
- "PySide2.QtWidgets.QTableView.showColumn": ('int',),
- "PySide2.QtWidgets.QTableView.showGrid": (),
- "PySide2.QtWidgets.QTableView.showRow": ('int',),
- "PySide2.QtWidgets.QTableView.sizeHintForColumn": ('int',),
- "PySide2.QtWidgets.QTableView.sizeHintForRow": ('int',),
- "PySide2.QtWidgets.QTableView.sortByColumn": [('int',), ('int', 'PySide2.QtCore.Qt.SortOrder')],
- "PySide2.QtWidgets.QTableView.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QTableView.updateGeometries": (),
- "PySide2.QtWidgets.QTableView.verticalHeader": (),
- "PySide2.QtWidgets.QTableView.verticalOffset": (),
- "PySide2.QtWidgets.QTableView.verticalScrollbarAction": ('int',),
- "PySide2.QtWidgets.QTableView.viewOptions": (),
- "PySide2.QtWidgets.QTableView.viewportSizeHint": (),
- "PySide2.QtWidgets.QTableView.visualRect": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTableView.visualRegionForSelection": ('PySide2.QtCore.QItemSelection',),
- "PySide2.QtWidgets.QTableView.wordWrap": (),
-# class PySide2.QtWidgets.QTableWidget:
- "PySide2.QtWidgets.QTableWidget.__init__": [('PySide2.QtWidgets.QWidget',), ('int', 'int', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QTableWidget.cellWidget": ('int', 'int'),
- "PySide2.QtWidgets.QTableWidget.clear": (),
- "PySide2.QtWidgets.QTableWidget.clearContents": (),
- "PySide2.QtWidgets.QTableWidget.closePersistentEditor": [('PySide2.QtCore.QModelIndex',), ('PySide2.QtWidgets.QTableWidgetItem',)],
- "PySide2.QtWidgets.QTableWidget.column": ('PySide2.QtWidgets.QTableWidgetItem',),
- "PySide2.QtWidgets.QTableWidget.columnCount": (),
- "PySide2.QtWidgets.QTableWidget.currentColumn": (),
- "PySide2.QtWidgets.QTableWidget.currentItem": (),
- "PySide2.QtWidgets.QTableWidget.currentRow": (),
- "PySide2.QtWidgets.QTableWidget.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QTableWidget.dropMimeData": ('int', 'int', 'PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction'),
- "PySide2.QtWidgets.QTableWidget.editItem": ('PySide2.QtWidgets.QTableWidgetItem',),
- "PySide2.QtWidgets.QTableWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QTableWidget.findItems": ('str', 'PySide2.QtCore.Qt.MatchFlags'),
- "PySide2.QtWidgets.QTableWidget.horizontalHeaderItem": ('int',),
- "PySide2.QtWidgets.QTableWidget.indexFromItem": ('PySide2.QtWidgets.QTableWidgetItem',),
- "PySide2.QtWidgets.QTableWidget.insertColumn": ('int',),
- "PySide2.QtWidgets.QTableWidget.insertRow": ('int',),
- "PySide2.QtWidgets.QTableWidget.isItemSelected": ('PySide2.QtWidgets.QTableWidgetItem',),
- "PySide2.QtWidgets.QTableWidget.isPersistentEditorOpen": [('PySide2.QtCore.QModelIndex',), ('PySide2.QtWidgets.QTableWidgetItem',)],
- "PySide2.QtWidgets.QTableWidget.isSortingEnabled": (),
- "PySide2.QtWidgets.QTableWidget.item": ('int', 'int'),
- "PySide2.QtWidgets.QTableWidget.itemAt": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtWidgets.QTableWidget.itemFromIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTableWidget.itemPrototype": (),
- "PySide2.QtWidgets.QTableWidget.items": ('PySide2.QtCore.QMimeData',),
- "PySide2.QtWidgets.QTableWidget.mimeData": ('typing.Sequence[PySide2.QtWidgets.QTableWidgetItem]',),
- "PySide2.QtWidgets.QTableWidget.mimeTypes": (),
- "PySide2.QtWidgets.QTableWidget.openPersistentEditor": [('PySide2.QtCore.QModelIndex',), ('PySide2.QtWidgets.QTableWidgetItem',)],
- "PySide2.QtWidgets.QTableWidget.removeCellWidget": ('int', 'int'),
- "PySide2.QtWidgets.QTableWidget.removeColumn": ('int',),
- "PySide2.QtWidgets.QTableWidget.removeRow": ('int',),
- "PySide2.QtWidgets.QTableWidget.row": ('PySide2.QtWidgets.QTableWidgetItem',),
- "PySide2.QtWidgets.QTableWidget.rowCount": (),
- "PySide2.QtWidgets.QTableWidget.scrollToItem": ('PySide2.QtWidgets.QTableWidgetItem', 'PySide2.QtWidgets.QAbstractItemView.ScrollHint'),
- "PySide2.QtWidgets.QTableWidget.selectedItems": (),
- "PySide2.QtWidgets.QTableWidget.selectedRanges": (),
- "PySide2.QtWidgets.QTableWidget.setCellWidget": ('int', 'int', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QTableWidget.setColumnCount": ('int',),
- "PySide2.QtWidgets.QTableWidget.setCurrentCell": [('int', 'int'), ('int', 'int', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags')],
- "PySide2.QtWidgets.QTableWidget.setCurrentItem": [('PySide2.QtWidgets.QTableWidgetItem',), ('PySide2.QtWidgets.QTableWidgetItem', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags')],
- "PySide2.QtWidgets.QTableWidget.setHorizontalHeaderItem": ('int', 'PySide2.QtWidgets.QTableWidgetItem'),
- "PySide2.QtWidgets.QTableWidget.setHorizontalHeaderLabels": ('typing.Sequence[str]',),
- "PySide2.QtWidgets.QTableWidget.setItem": ('int', 'int', 'PySide2.QtWidgets.QTableWidgetItem'),
- "PySide2.QtWidgets.QTableWidget.setItemPrototype": ('PySide2.QtWidgets.QTableWidgetItem',),
- "PySide2.QtWidgets.QTableWidget.setItemSelected": ('PySide2.QtWidgets.QTableWidgetItem', 'bool'),
- "PySide2.QtWidgets.QTableWidget.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QTableWidget.setRangeSelected": ('PySide2.QtWidgets.QTableWidgetSelectionRange', 'bool'),
- "PySide2.QtWidgets.QTableWidget.setRowCount": ('int',),
- "PySide2.QtWidgets.QTableWidget.setSortingEnabled": ('bool',),
- "PySide2.QtWidgets.QTableWidget.setVerticalHeaderItem": ('int', 'PySide2.QtWidgets.QTableWidgetItem'),
- "PySide2.QtWidgets.QTableWidget.setVerticalHeaderLabels": ('typing.Sequence[str]',),
- "PySide2.QtWidgets.QTableWidget.sortItems": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtWidgets.QTableWidget.supportedDropActions": (),
- "PySide2.QtWidgets.QTableWidget.takeHorizontalHeaderItem": ('int',),
- "PySide2.QtWidgets.QTableWidget.takeItem": ('int', 'int'),
- "PySide2.QtWidgets.QTableWidget.takeVerticalHeaderItem": ('int',),
- "PySide2.QtWidgets.QTableWidget.verticalHeaderItem": ('int',),
- "PySide2.QtWidgets.QTableWidget.visualColumn": ('int',),
- "PySide2.QtWidgets.QTableWidget.visualItemRect": ('PySide2.QtWidgets.QTableWidgetItem',),
- "PySide2.QtWidgets.QTableWidget.visualRow": ('int',),
-# class PySide2.QtWidgets.QTableWidgetItem:
-# class PySide2.QtWidgets.QTableWidgetItem.ItemType:
- "PySide2.QtWidgets.QTableWidgetItem.__init__": [('PySide2.QtGui.QIcon', 'str', 'int'), ('PySide2.QtWidgets.QTableWidgetItem',), ('int',), ('str', 'int')],
- "PySide2.QtWidgets.QTableWidgetItem.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QTableWidgetItem.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QTableWidgetItem.background": (),
- "PySide2.QtWidgets.QTableWidgetItem.backgroundColor": (),
- "PySide2.QtWidgets.QTableWidgetItem.checkState": (),
- "PySide2.QtWidgets.QTableWidgetItem.clone": (),
- "PySide2.QtWidgets.QTableWidgetItem.column": (),
- "PySide2.QtWidgets.QTableWidgetItem.data": ('int',),
- "PySide2.QtWidgets.QTableWidgetItem.flags": (),
- "PySide2.QtWidgets.QTableWidgetItem.font": (),
- "PySide2.QtWidgets.QTableWidgetItem.foreground": (),
- "PySide2.QtWidgets.QTableWidgetItem.icon": (),
- "PySide2.QtWidgets.QTableWidgetItem.isSelected": (),
- "PySide2.QtWidgets.QTableWidgetItem.read": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QTableWidgetItem.row": (),
- "PySide2.QtWidgets.QTableWidgetItem.setBackground": ('PySide2.QtGui.QBrush',),
- "PySide2.QtWidgets.QTableWidgetItem.setBackgroundColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QTableWidgetItem.setCheckState": ('PySide2.QtCore.Qt.CheckState',),
- "PySide2.QtWidgets.QTableWidgetItem.setData": ('int', 'typing.Any'),
- "PySide2.QtWidgets.QTableWidgetItem.setFlags": ('PySide2.QtCore.Qt.ItemFlags',),
- "PySide2.QtWidgets.QTableWidgetItem.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QTableWidgetItem.setForeground": ('PySide2.QtGui.QBrush',),
- "PySide2.QtWidgets.QTableWidgetItem.setIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtWidgets.QTableWidgetItem.setSelected": ('bool',),
- "PySide2.QtWidgets.QTableWidgetItem.setSizeHint": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QTableWidgetItem.setStatusTip": ('str',),
- "PySide2.QtWidgets.QTableWidgetItem.setText": ('str',),
- "PySide2.QtWidgets.QTableWidgetItem.setTextAlignment": ('int',),
- "PySide2.QtWidgets.QTableWidgetItem.setTextColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QTableWidgetItem.setToolTip": ('str',),
- "PySide2.QtWidgets.QTableWidgetItem.setWhatsThis": ('str',),
- "PySide2.QtWidgets.QTableWidgetItem.sizeHint": (),
- "PySide2.QtWidgets.QTableWidgetItem.statusTip": (),
- "PySide2.QtWidgets.QTableWidgetItem.tableWidget": (),
- "PySide2.QtWidgets.QTableWidgetItem.text": (),
- "PySide2.QtWidgets.QTableWidgetItem.textAlignment": (),
- "PySide2.QtWidgets.QTableWidgetItem.textColor": (),
- "PySide2.QtWidgets.QTableWidgetItem.toolTip": (),
- "PySide2.QtWidgets.QTableWidgetItem.type": (),
- "PySide2.QtWidgets.QTableWidgetItem.whatsThis": (),
- "PySide2.QtWidgets.QTableWidgetItem.write": ('PySide2.QtCore.QDataStream',),
-# class PySide2.QtWidgets.QTableWidgetSelectionRange:
- "PySide2.QtWidgets.QTableWidgetSelectionRange.__init__": [(), ('PySide2.QtWidgets.QTableWidgetSelectionRange',), ('int', 'int', 'int', 'int')],
- "PySide2.QtWidgets.QTableWidgetSelectionRange.__copy__": (),
- "PySide2.QtWidgets.QTableWidgetSelectionRange.bottomRow": (),
- "PySide2.QtWidgets.QTableWidgetSelectionRange.columnCount": (),
- "PySide2.QtWidgets.QTableWidgetSelectionRange.leftColumn": (),
- "PySide2.QtWidgets.QTableWidgetSelectionRange.rightColumn": (),
- "PySide2.QtWidgets.QTableWidgetSelectionRange.rowCount": (),
- "PySide2.QtWidgets.QTableWidgetSelectionRange.topRow": (),
-# class PySide2.QtWidgets.QTapAndHoldGesture:
- "PySide2.QtWidgets.QTapAndHoldGesture.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QTapAndHoldGesture.position": (),
- "PySide2.QtWidgets.QTapAndHoldGesture.setPosition": ('PySide2.QtCore.QPointF',),
- "PySide2.QtWidgets.QTapAndHoldGesture.setTimeout": ('int',),
- "PySide2.QtWidgets.QTapAndHoldGesture.timeout": (),
-# class PySide2.QtWidgets.QTapGesture:
- "PySide2.QtWidgets.QTapGesture.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QTapGesture.position": (),
- "PySide2.QtWidgets.QTapGesture.setPosition": ('PySide2.QtCore.QPointF',),
-# class PySide2.QtWidgets.QTextBrowser:
- "PySide2.QtWidgets.QTextBrowser.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QTextBrowser.backward": (),
- "PySide2.QtWidgets.QTextBrowser.backwardHistoryCount": (),
- "PySide2.QtWidgets.QTextBrowser.clearHistory": (),
- "PySide2.QtWidgets.QTextBrowser.doSetSource": ('PySide2.QtCore.QUrl', 'PySide2.QtGui.QTextDocument.ResourceType'),
- "PySide2.QtWidgets.QTextBrowser.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QTextBrowser.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QTextBrowser.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QTextBrowser.forward": (),
- "PySide2.QtWidgets.QTextBrowser.forwardHistoryCount": (),
- "PySide2.QtWidgets.QTextBrowser.historyTitle": ('int',),
- "PySide2.QtWidgets.QTextBrowser.historyUrl": ('int',),
- "PySide2.QtWidgets.QTextBrowser.home": (),
- "PySide2.QtWidgets.QTextBrowser.isBackwardAvailable": (),
- "PySide2.QtWidgets.QTextBrowser.isForwardAvailable": (),
- "PySide2.QtWidgets.QTextBrowser.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QTextBrowser.loadResource": ('int', 'PySide2.QtCore.QUrl'),
- "PySide2.QtWidgets.QTextBrowser.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTextBrowser.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTextBrowser.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTextBrowser.openExternalLinks": (),
- "PySide2.QtWidgets.QTextBrowser.openLinks": (),
- "PySide2.QtWidgets.QTextBrowser.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QTextBrowser.reload": (),
- "PySide2.QtWidgets.QTextBrowser.searchPaths": (),
- "PySide2.QtWidgets.QTextBrowser.setOpenExternalLinks": ('bool',),
- "PySide2.QtWidgets.QTextBrowser.setOpenLinks": ('bool',),
- "PySide2.QtWidgets.QTextBrowser.setSearchPaths": ('typing.Sequence[str]',),
- "PySide2.QtWidgets.QTextBrowser.setSource": [('PySide2.QtCore.QUrl',), ('PySide2.QtCore.QUrl', 'PySide2.QtGui.QTextDocument.ResourceType')],
- "PySide2.QtWidgets.QTextBrowser.source": (),
- "PySide2.QtWidgets.QTextBrowser.sourceType": (),
-# class PySide2.QtWidgets.QTextEdit:
-# class PySide2.QtWidgets.QTextEdit.AutoFormatting:
-# class PySide2.QtWidgets.QTextEdit.AutoFormattingFlag:
-# class PySide2.QtWidgets.QTextEdit.ExtraSelection:
- "PySide2.QtWidgets.QTextEdit.ExtraSelection.__init__": [(), ('PySide2.QtWidgets.QTextEdit.ExtraSelection',)],
- "PySide2.QtWidgets.QTextEdit.ExtraSelection.__copy__": (),
-# class PySide2.QtWidgets.QTextEdit.LineWrapMode:
- "PySide2.QtWidgets.QTextEdit.__init__": [('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QTextEdit.acceptRichText": (),
- "PySide2.QtWidgets.QTextEdit.alignment": (),
- "PySide2.QtWidgets.QTextEdit.anchorAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QTextEdit.append": ('str',),
- "PySide2.QtWidgets.QTextEdit.autoFormatting": (),
- "PySide2.QtWidgets.QTextEdit.canInsertFromMimeData": ('PySide2.QtCore.QMimeData',),
- "PySide2.QtWidgets.QTextEdit.canPaste": (),
- "PySide2.QtWidgets.QTextEdit.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QTextEdit.clear": (),
- "PySide2.QtWidgets.QTextEdit.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QTextEdit.copy": (),
- "PySide2.QtWidgets.QTextEdit.createMimeDataFromSelection": (),
- "PySide2.QtWidgets.QTextEdit.createStandardContextMenu": [(), ('PySide2.QtCore.QPoint',)],
- "PySide2.QtWidgets.QTextEdit.currentCharFormat": (),
- "PySide2.QtWidgets.QTextEdit.currentFont": (),
- "PySide2.QtWidgets.QTextEdit.cursorForPosition": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QTextEdit.cursorRect": [(), ('PySide2.QtGui.QTextCursor',)],
- "PySide2.QtWidgets.QTextEdit.cursorWidth": (),
- "PySide2.QtWidgets.QTextEdit.cut": (),
- "PySide2.QtWidgets.QTextEdit.doSetTextCursor": ('PySide2.QtGui.QTextCursor',),
- "PySide2.QtWidgets.QTextEdit.document": (),
- "PySide2.QtWidgets.QTextEdit.documentTitle": (),
- "PySide2.QtWidgets.QTextEdit.dragEnterEvent": ('PySide2.QtGui.QDragEnterEvent',),
- "PySide2.QtWidgets.QTextEdit.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtWidgets.QTextEdit.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtWidgets.QTextEdit.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QTextEdit.ensureCursorVisible": (),
- "PySide2.QtWidgets.QTextEdit.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QTextEdit.extraSelections": (),
- "PySide2.QtWidgets.QTextEdit.find": [('PySide2.QtCore.QRegExp', 'PySide2.QtGui.QTextDocument.FindFlags'), ('PySide2.QtCore.QRegularExpression', 'PySide2.QtGui.QTextDocument.FindFlags'), ('str', 'PySide2.QtGui.QTextDocument.FindFlags')],
- "PySide2.QtWidgets.QTextEdit.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QTextEdit.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QTextEdit.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QTextEdit.fontFamily": (),
- "PySide2.QtWidgets.QTextEdit.fontItalic": (),
- "PySide2.QtWidgets.QTextEdit.fontPointSize": (),
- "PySide2.QtWidgets.QTextEdit.fontUnderline": (),
- "PySide2.QtWidgets.QTextEdit.fontWeight": (),
- "PySide2.QtWidgets.QTextEdit.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QTextEdit.inputMethodQuery": [('PySide2.QtCore.Qt.InputMethodQuery',), ('PySide2.QtCore.Qt.InputMethodQuery', 'typing.Any')],
- "PySide2.QtWidgets.QTextEdit.insertFromMimeData": ('PySide2.QtCore.QMimeData',),
- "PySide2.QtWidgets.QTextEdit.insertHtml": ('str',),
- "PySide2.QtWidgets.QTextEdit.insertPlainText": ('str',),
- "PySide2.QtWidgets.QTextEdit.isReadOnly": (),
- "PySide2.QtWidgets.QTextEdit.isUndoRedoEnabled": (),
- "PySide2.QtWidgets.QTextEdit.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QTextEdit.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QTextEdit.lineWrapColumnOrWidth": (),
- "PySide2.QtWidgets.QTextEdit.lineWrapMode": (),
- "PySide2.QtWidgets.QTextEdit.loadResource": ('int', 'PySide2.QtCore.QUrl'),
- "PySide2.QtWidgets.QTextEdit.mergeCurrentCharFormat": ('PySide2.QtGui.QTextCharFormat',),
- "PySide2.QtWidgets.QTextEdit.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTextEdit.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTextEdit.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTextEdit.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTextEdit.moveCursor": ('PySide2.QtGui.QTextCursor.MoveOperation', 'PySide2.QtGui.QTextCursor.MoveMode'),
- "PySide2.QtWidgets.QTextEdit.overwriteMode": (),
- "PySide2.QtWidgets.QTextEdit.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QTextEdit.paste": (),
- "PySide2.QtWidgets.QTextEdit.placeholderText": (),
- "PySide2.QtWidgets.QTextEdit.print_": ('PySide2.QtGui.QPagedPaintDevice',),
- "PySide2.QtWidgets.QTextEdit.redo": (),
- "PySide2.QtWidgets.QTextEdit.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QTextEdit.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QTextEdit.scrollToAnchor": ('str',),
- "PySide2.QtWidgets.QTextEdit.selectAll": (),
- "PySide2.QtWidgets.QTextEdit.setAcceptRichText": ('bool',),
- "PySide2.QtWidgets.QTextEdit.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtWidgets.QTextEdit.setAutoFormatting": ('PySide2.QtWidgets.QTextEdit.AutoFormatting',),
- "PySide2.QtWidgets.QTextEdit.setCurrentCharFormat": ('PySide2.QtGui.QTextCharFormat',),
- "PySide2.QtWidgets.QTextEdit.setCurrentFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QTextEdit.setCursorWidth": ('int',),
- "PySide2.QtWidgets.QTextEdit.setDocument": ('PySide2.QtGui.QTextDocument',),
- "PySide2.QtWidgets.QTextEdit.setDocumentTitle": ('str',),
- "PySide2.QtWidgets.QTextEdit.setExtraSelections": ('typing.Sequence[PySide2.QtWidgets.QTextEdit.ExtraSelection]',),
- "PySide2.QtWidgets.QTextEdit.setFontFamily": ('str',),
- "PySide2.QtWidgets.QTextEdit.setFontItalic": ('bool',),
- "PySide2.QtWidgets.QTextEdit.setFontPointSize": ('float',),
- "PySide2.QtWidgets.QTextEdit.setFontUnderline": ('bool',),
- "PySide2.QtWidgets.QTextEdit.setFontWeight": ('int',),
- "PySide2.QtWidgets.QTextEdit.setHtml": ('str',),
- "PySide2.QtWidgets.QTextEdit.setLineWrapColumnOrWidth": ('int',),
- "PySide2.QtWidgets.QTextEdit.setLineWrapMode": ('PySide2.QtWidgets.QTextEdit.LineWrapMode',),
- "PySide2.QtWidgets.QTextEdit.setMarkdown": ('str',),
- "PySide2.QtWidgets.QTextEdit.setOverwriteMode": ('bool',),
- "PySide2.QtWidgets.QTextEdit.setPlaceholderText": ('str',),
- "PySide2.QtWidgets.QTextEdit.setPlainText": ('str',),
- "PySide2.QtWidgets.QTextEdit.setReadOnly": ('bool',),
- "PySide2.QtWidgets.QTextEdit.setTabChangesFocus": ('bool',),
- "PySide2.QtWidgets.QTextEdit.setTabStopDistance": ('float',),
- "PySide2.QtWidgets.QTextEdit.setTabStopWidth": ('int',),
- "PySide2.QtWidgets.QTextEdit.setText": ('str',),
- "PySide2.QtWidgets.QTextEdit.setTextBackgroundColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QTextEdit.setTextColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWidgets.QTextEdit.setTextCursor": ('PySide2.QtGui.QTextCursor',),
- "PySide2.QtWidgets.QTextEdit.setTextInteractionFlags": ('PySide2.QtCore.Qt.TextInteractionFlags',),
- "PySide2.QtWidgets.QTextEdit.setUndoRedoEnabled": ('bool',),
- "PySide2.QtWidgets.QTextEdit.setWordWrapMode": ('PySide2.QtGui.QTextOption.WrapMode',),
- "PySide2.QtWidgets.QTextEdit.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QTextEdit.tabChangesFocus": (),
- "PySide2.QtWidgets.QTextEdit.tabStopDistance": (),
- "PySide2.QtWidgets.QTextEdit.tabStopWidth": (),
- "PySide2.QtWidgets.QTextEdit.textBackgroundColor": (),
- "PySide2.QtWidgets.QTextEdit.textColor": (),
- "PySide2.QtWidgets.QTextEdit.textCursor": (),
- "PySide2.QtWidgets.QTextEdit.textInteractionFlags": (),
- "PySide2.QtWidgets.QTextEdit.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QTextEdit.toHtml": (),
- "PySide2.QtWidgets.QTextEdit.toMarkdown": ('PySide2.QtGui.QTextDocument.MarkdownFeatures',),
- "PySide2.QtWidgets.QTextEdit.toPlainText": (),
- "PySide2.QtWidgets.QTextEdit.undo": (),
- "PySide2.QtWidgets.QTextEdit.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
- "PySide2.QtWidgets.QTextEdit.wordWrapMode": (),
- "PySide2.QtWidgets.QTextEdit.zoomIn": ('int',),
- "PySide2.QtWidgets.QTextEdit.zoomInF": ('float',),
- "PySide2.QtWidgets.QTextEdit.zoomOut": ('int',),
-# class PySide2.QtWidgets.QTileRules:
- "PySide2.QtWidgets.QTileRules.__init__": [('PySide2.QtCore.Qt.TileRule',), ('PySide2.QtCore.Qt.TileRule', 'PySide2.QtCore.Qt.TileRule'), ('PySide2.QtWidgets.QTileRules',)],
- "PySide2.QtWidgets.QTileRules.__copy__": (),
-# class PySide2.QtWidgets.QTimeEdit:
- "PySide2.QtWidgets.QTimeEdit.__init__": [('PySide2.QtCore.QTime', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
-# class PySide2.QtWidgets.QToolBar:
- "PySide2.QtWidgets.QToolBar.__init__": [('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtWidgets.QToolBar.actionAt": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtWidgets.QToolBar.actionEvent": ('PySide2.QtGui.QActionEvent',),
- "PySide2.QtWidgets.QToolBar.actionGeometry": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QToolBar.addAction": [('PySide2.QtGui.QIcon', 'str'), ('PySide2.QtGui.QIcon', 'str', 'PySide2.QtCore.QObject', 'str'), ('PySide2.QtWidgets.QAction',), ('str',), ('str', 'PySide2.QtCore.QObject', 'str')],
- "PySide2.QtWidgets.QToolBar.addSeparator": (),
- "PySide2.QtWidgets.QToolBar.addWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QToolBar.allowedAreas": (),
- "PySide2.QtWidgets.QToolBar.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QToolBar.clear": (),
- "PySide2.QtWidgets.QToolBar.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QToolBar.iconSize": (),
- "PySide2.QtWidgets.QToolBar.initStyleOption": ('PySide2.QtWidgets.QStyleOptionToolBar',),
- "PySide2.QtWidgets.QToolBar.insertSeparator": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QToolBar.insertWidget": ('PySide2.QtWidgets.QAction', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QToolBar.isAreaAllowed": ('PySide2.QtCore.Qt.ToolBarArea',),
- "PySide2.QtWidgets.QToolBar.isFloatable": (),
- "PySide2.QtWidgets.QToolBar.isFloating": (),
- "PySide2.QtWidgets.QToolBar.isMovable": (),
- "PySide2.QtWidgets.QToolBar.orientation": (),
- "PySide2.QtWidgets.QToolBar.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QToolBar.setAllowedAreas": ('PySide2.QtCore.Qt.ToolBarAreas',),
- "PySide2.QtWidgets.QToolBar.setFloatable": ('bool',),
- "PySide2.QtWidgets.QToolBar.setIconSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtWidgets.QToolBar.setMovable": ('bool',),
- "PySide2.QtWidgets.QToolBar.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtWidgets.QToolBar.setToolButtonStyle": ('PySide2.QtCore.Qt.ToolButtonStyle',),
- "PySide2.QtWidgets.QToolBar.toggleViewAction": (),
- "PySide2.QtWidgets.QToolBar.toolButtonStyle": (),
- "PySide2.QtWidgets.QToolBar.widgetForAction": ('PySide2.QtWidgets.QAction',),
-# class PySide2.QtWidgets.QToolBox:
- "PySide2.QtWidgets.QToolBox.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QToolBox.addItem": [('PySide2.QtWidgets.QWidget', 'PySide2.QtGui.QIcon', 'str'), ('PySide2.QtWidgets.QWidget', 'str')],
- "PySide2.QtWidgets.QToolBox.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QToolBox.count": (),
- "PySide2.QtWidgets.QToolBox.currentIndex": (),
- "PySide2.QtWidgets.QToolBox.currentWidget": (),
- "PySide2.QtWidgets.QToolBox.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QToolBox.indexOf": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QToolBox.insertItem": [('int', 'PySide2.QtWidgets.QWidget', 'PySide2.QtGui.QIcon', 'str'), ('int', 'PySide2.QtWidgets.QWidget', 'str')],
- "PySide2.QtWidgets.QToolBox.isItemEnabled": ('int',),
- "PySide2.QtWidgets.QToolBox.itemIcon": ('int',),
- "PySide2.QtWidgets.QToolBox.itemInserted": ('int',),
- "PySide2.QtWidgets.QToolBox.itemRemoved": ('int',),
- "PySide2.QtWidgets.QToolBox.itemText": ('int',),
- "PySide2.QtWidgets.QToolBox.itemToolTip": ('int',),
- "PySide2.QtWidgets.QToolBox.removeItem": ('int',),
- "PySide2.QtWidgets.QToolBox.setCurrentIndex": ('int',),
- "PySide2.QtWidgets.QToolBox.setCurrentWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QToolBox.setItemEnabled": ('int', 'bool'),
- "PySide2.QtWidgets.QToolBox.setItemIcon": ('int', 'PySide2.QtGui.QIcon'),
- "PySide2.QtWidgets.QToolBox.setItemText": ('int', 'str'),
- "PySide2.QtWidgets.QToolBox.setItemToolTip": ('int', 'str'),
- "PySide2.QtWidgets.QToolBox.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QToolBox.widget": ('int',),
-# class PySide2.QtWidgets.QToolButton:
-# class PySide2.QtWidgets.QToolButton.ToolButtonPopupMode:
- "PySide2.QtWidgets.QToolButton.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QToolButton.actionEvent": ('PySide2.QtGui.QActionEvent',),
- "PySide2.QtWidgets.QToolButton.arrowType": (),
- "PySide2.QtWidgets.QToolButton.autoRaise": (),
- "PySide2.QtWidgets.QToolButton.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QToolButton.defaultAction": (),
- "PySide2.QtWidgets.QToolButton.enterEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QToolButton.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QToolButton.hitButton": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QToolButton.initStyleOption": ('PySide2.QtWidgets.QStyleOptionToolButton',),
- "PySide2.QtWidgets.QToolButton.leaveEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QToolButton.menu": (),
- "PySide2.QtWidgets.QToolButton.minimumSizeHint": (),
- "PySide2.QtWidgets.QToolButton.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QToolButton.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QToolButton.nextCheckState": (),
- "PySide2.QtWidgets.QToolButton.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QToolButton.popupMode": (),
- "PySide2.QtWidgets.QToolButton.setArrowType": ('PySide2.QtCore.Qt.ArrowType',),
- "PySide2.QtWidgets.QToolButton.setAutoRaise": ('bool',),
- "PySide2.QtWidgets.QToolButton.setDefaultAction": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QToolButton.setMenu": ('PySide2.QtWidgets.QMenu',),
- "PySide2.QtWidgets.QToolButton.setPopupMode": ('PySide2.QtWidgets.QToolButton.ToolButtonPopupMode',),
- "PySide2.QtWidgets.QToolButton.setToolButtonStyle": ('PySide2.QtCore.Qt.ToolButtonStyle',),
- "PySide2.QtWidgets.QToolButton.showMenu": (),
- "PySide2.QtWidgets.QToolButton.sizeHint": (),
- "PySide2.QtWidgets.QToolButton.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QToolButton.toolButtonStyle": (),
-# class PySide2.QtWidgets.QToolTip:
- "PySide2.QtWidgets.QToolTip.font": (),
- "PySide2.QtWidgets.QToolTip.hideText": (),
- "PySide2.QtWidgets.QToolTip.isVisible": (),
- "PySide2.QtWidgets.QToolTip.palette": (),
- "PySide2.QtWidgets.QToolTip.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QToolTip.setPalette": ('PySide2.QtGui.QPalette',),
- "PySide2.QtWidgets.QToolTip.showText": [('PySide2.QtCore.QPoint', 'str', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtCore.QPoint', 'str', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QRect'), ('PySide2.QtCore.QPoint', 'str', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QRect', 'int')],
- "PySide2.QtWidgets.QToolTip.text": (),
-# class PySide2.QtWidgets.QTreeView:
- "PySide2.QtWidgets.QTreeView.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QTreeView.allColumnsShowFocus": (),
- "PySide2.QtWidgets.QTreeView.autoExpandDelay": (),
- "PySide2.QtWidgets.QTreeView.collapse": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeView.collapseAll": (),
- "PySide2.QtWidgets.QTreeView.columnAt": ('int',),
- "PySide2.QtWidgets.QTreeView.columnCountChanged": ('int', 'int'),
- "PySide2.QtWidgets.QTreeView.columnMoved": (),
- "PySide2.QtWidgets.QTreeView.columnResized": ('int', 'int', 'int'),
- "PySide2.QtWidgets.QTreeView.columnViewportPosition": ('int',),
- "PySide2.QtWidgets.QTreeView.columnWidth": ('int',),
- "PySide2.QtWidgets.QTreeView.currentChanged": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QTreeView.dataChanged": ('PySide2.QtCore.QModelIndex', 'PySide2.QtCore.QModelIndex', 'typing.List[int]'),
- "PySide2.QtWidgets.QTreeView.doItemsLayout": (),
- "PySide2.QtWidgets.QTreeView.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtWidgets.QTreeView.drawBranches": ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRect', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QTreeView.drawRow": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QTreeView.drawTree": ('PySide2.QtGui.QPainter', 'PySide2.QtGui.QRegion'),
- "PySide2.QtWidgets.QTreeView.expand": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeView.expandAll": (),
- "PySide2.QtWidgets.QTreeView.expandRecursively": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtWidgets.QTreeView.expandToDepth": ('int',),
- "PySide2.QtWidgets.QTreeView.expandsOnDoubleClick": (),
- "PySide2.QtWidgets.QTreeView.header": (),
- "PySide2.QtWidgets.QTreeView.hideColumn": ('int',),
- "PySide2.QtWidgets.QTreeView.horizontalOffset": (),
- "PySide2.QtWidgets.QTreeView.horizontalScrollbarAction": ('int',),
- "PySide2.QtWidgets.QTreeView.indentation": (),
- "PySide2.QtWidgets.QTreeView.indexAbove": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeView.indexAt": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QTreeView.indexBelow": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeView.indexRowSizeHint": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeView.isAnimated": (),
- "PySide2.QtWidgets.QTreeView.isColumnHidden": ('int',),
- "PySide2.QtWidgets.QTreeView.isExpanded": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeView.isFirstColumnSpanned": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QTreeView.isHeaderHidden": (),
- "PySide2.QtWidgets.QTreeView.isIndexHidden": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeView.isRowHidden": ('int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtWidgets.QTreeView.isSortingEnabled": (),
- "PySide2.QtWidgets.QTreeView.itemsExpandable": (),
- "PySide2.QtWidgets.QTreeView.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QTreeView.keyboardSearch": ('str',),
- "PySide2.QtWidgets.QTreeView.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTreeView.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTreeView.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTreeView.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QTreeView.moveCursor": ('PySide2.QtWidgets.QAbstractItemView.CursorAction', 'PySide2.QtCore.Qt.KeyboardModifiers'),
- "PySide2.QtWidgets.QTreeView.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QTreeView.reexpand": (),
- "PySide2.QtWidgets.QTreeView.reset": (),
- "PySide2.QtWidgets.QTreeView.resetIndentation": (),
- "PySide2.QtWidgets.QTreeView.resizeColumnToContents": ('int',),
- "PySide2.QtWidgets.QTreeView.rootIsDecorated": (),
- "PySide2.QtWidgets.QTreeView.rowHeight": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeView.rowsAboutToBeRemoved": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QTreeView.rowsInserted": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QTreeView.rowsRemoved": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtWidgets.QTreeView.scrollContentsBy": ('int', 'int'),
- "PySide2.QtWidgets.QTreeView.scrollTo": ('PySide2.QtCore.QModelIndex', 'PySide2.QtWidgets.QAbstractItemView.ScrollHint'),
- "PySide2.QtWidgets.QTreeView.selectAll": (),
- "PySide2.QtWidgets.QTreeView.selectedIndexes": (),
- "PySide2.QtWidgets.QTreeView.selectionChanged": ('PySide2.QtCore.QItemSelection', 'PySide2.QtCore.QItemSelection'),
- "PySide2.QtWidgets.QTreeView.setAllColumnsShowFocus": ('bool',),
- "PySide2.QtWidgets.QTreeView.setAnimated": ('bool',),
- "PySide2.QtWidgets.QTreeView.setAutoExpandDelay": ('int',),
- "PySide2.QtWidgets.QTreeView.setColumnHidden": ('int', 'bool'),
- "PySide2.QtWidgets.QTreeView.setColumnWidth": ('int', 'int'),
- "PySide2.QtWidgets.QTreeView.setExpanded": ('PySide2.QtCore.QModelIndex', 'bool'),
- "PySide2.QtWidgets.QTreeView.setExpandsOnDoubleClick": ('bool',),
- "PySide2.QtWidgets.QTreeView.setFirstColumnSpanned": ('int', 'PySide2.QtCore.QModelIndex', 'bool'),
- "PySide2.QtWidgets.QTreeView.setHeader": ('PySide2.QtWidgets.QHeaderView',),
- "PySide2.QtWidgets.QTreeView.setHeaderHidden": ('bool',),
- "PySide2.QtWidgets.QTreeView.setIndentation": ('int',),
- "PySide2.QtWidgets.QTreeView.setItemsExpandable": ('bool',),
- "PySide2.QtWidgets.QTreeView.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QTreeView.setRootIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeView.setRootIsDecorated": ('bool',),
- "PySide2.QtWidgets.QTreeView.setRowHidden": ('int', 'PySide2.QtCore.QModelIndex', 'bool'),
- "PySide2.QtWidgets.QTreeView.setSelection": ('PySide2.QtCore.QRect', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags'),
- "PySide2.QtWidgets.QTreeView.setSelectionModel": ('PySide2.QtCore.QItemSelectionModel',),
- "PySide2.QtWidgets.QTreeView.setSortingEnabled": ('bool',),
- "PySide2.QtWidgets.QTreeView.setTreePosition": ('int',),
- "PySide2.QtWidgets.QTreeView.setUniformRowHeights": ('bool',),
- "PySide2.QtWidgets.QTreeView.setWordWrap": ('bool',),
- "PySide2.QtWidgets.QTreeView.showColumn": ('int',),
- "PySide2.QtWidgets.QTreeView.sizeHintForColumn": ('int',),
- "PySide2.QtWidgets.QTreeView.sortByColumn": [('int',), ('int', 'PySide2.QtCore.Qt.SortOrder')],
- "PySide2.QtWidgets.QTreeView.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtWidgets.QTreeView.treePosition": (),
- "PySide2.QtWidgets.QTreeView.uniformRowHeights": (),
- "PySide2.QtWidgets.QTreeView.updateGeometries": (),
- "PySide2.QtWidgets.QTreeView.verticalOffset": (),
- "PySide2.QtWidgets.QTreeView.verticalScrollbarValueChanged": ('int',),
- "PySide2.QtWidgets.QTreeView.viewportEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QTreeView.viewportSizeHint": (),
- "PySide2.QtWidgets.QTreeView.visualRect": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeView.visualRegionForSelection": ('PySide2.QtCore.QItemSelection',),
- "PySide2.QtWidgets.QTreeView.wordWrap": (),
-# class PySide2.QtWidgets.QTreeWidget:
- "PySide2.QtWidgets.QTreeWidget.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QTreeWidget.addTopLevelItem": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.addTopLevelItems": ('typing.Sequence[PySide2.QtWidgets.QTreeWidgetItem]',),
- "PySide2.QtWidgets.QTreeWidget.clear": (),
- "PySide2.QtWidgets.QTreeWidget.closePersistentEditor": [('PySide2.QtCore.QModelIndex',), ('PySide2.QtWidgets.QTreeWidgetItem', 'int')],
- "PySide2.QtWidgets.QTreeWidget.collapseItem": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.columnCount": (),
- "PySide2.QtWidgets.QTreeWidget.currentColumn": (),
- "PySide2.QtWidgets.QTreeWidget.currentItem": (),
- "PySide2.QtWidgets.QTreeWidget.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QTreeWidget.dropMimeData": ('PySide2.QtWidgets.QTreeWidgetItem', 'int', 'PySide2.QtCore.QMimeData', 'PySide2.QtCore.Qt.DropAction'),
- "PySide2.QtWidgets.QTreeWidget.editItem": ('PySide2.QtWidgets.QTreeWidgetItem', 'int'),
- "PySide2.QtWidgets.QTreeWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QTreeWidget.expandItem": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.findItems": ('str', 'PySide2.QtCore.Qt.MatchFlags', 'int'),
- "PySide2.QtWidgets.QTreeWidget.headerItem": (),
- "PySide2.QtWidgets.QTreeWidget.indexFromItem": ('PySide2.QtWidgets.QTreeWidgetItem', 'int'),
- "PySide2.QtWidgets.QTreeWidget.indexOfTopLevelItem": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.insertTopLevelItem": ('int', 'PySide2.QtWidgets.QTreeWidgetItem'),
- "PySide2.QtWidgets.QTreeWidget.insertTopLevelItems": ('int', 'typing.Sequence[PySide2.QtWidgets.QTreeWidgetItem]'),
- "PySide2.QtWidgets.QTreeWidget.invisibleRootItem": (),
- "PySide2.QtWidgets.QTreeWidget.isFirstItemColumnSpanned": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.isItemExpanded": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.isItemHidden": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.isItemSelected": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.isPersistentEditorOpen": [('PySide2.QtCore.QModelIndex',), ('PySide2.QtWidgets.QTreeWidgetItem', 'int')],
- "PySide2.QtWidgets.QTreeWidget.itemAbove": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.itemAt": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtWidgets.QTreeWidget.itemBelow": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.itemFromIndex": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtWidgets.QTreeWidget.itemWidget": ('PySide2.QtWidgets.QTreeWidgetItem', 'int'),
- "PySide2.QtWidgets.QTreeWidget.items": ('PySide2.QtCore.QMimeData',),
- "PySide2.QtWidgets.QTreeWidget.mimeData": ('typing.Sequence[PySide2.QtWidgets.QTreeWidgetItem]',),
- "PySide2.QtWidgets.QTreeWidget.mimeTypes": (),
- "PySide2.QtWidgets.QTreeWidget.openPersistentEditor": [('PySide2.QtCore.QModelIndex',), ('PySide2.QtWidgets.QTreeWidgetItem', 'int')],
- "PySide2.QtWidgets.QTreeWidget.removeItemWidget": ('PySide2.QtWidgets.QTreeWidgetItem', 'int'),
- "PySide2.QtWidgets.QTreeWidget.scrollToItem": ('PySide2.QtWidgets.QTreeWidgetItem', 'PySide2.QtWidgets.QAbstractItemView.ScrollHint'),
- "PySide2.QtWidgets.QTreeWidget.selectedItems": (),
- "PySide2.QtWidgets.QTreeWidget.setColumnCount": ('int',),
- "PySide2.QtWidgets.QTreeWidget.setCurrentItem": [('PySide2.QtWidgets.QTreeWidgetItem',), ('PySide2.QtWidgets.QTreeWidgetItem', 'int'), ('PySide2.QtWidgets.QTreeWidgetItem', 'int', 'PySide2.QtCore.QItemSelectionModel.SelectionFlags')],
- "PySide2.QtWidgets.QTreeWidget.setFirstItemColumnSpanned": ('PySide2.QtWidgets.QTreeWidgetItem', 'bool'),
- "PySide2.QtWidgets.QTreeWidget.setHeaderItem": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidget.setHeaderLabel": ('str',),
- "PySide2.QtWidgets.QTreeWidget.setHeaderLabels": ('typing.Sequence[str]',),
- "PySide2.QtWidgets.QTreeWidget.setItemExpanded": ('PySide2.QtWidgets.QTreeWidgetItem', 'bool'),
- "PySide2.QtWidgets.QTreeWidget.setItemHidden": ('PySide2.QtWidgets.QTreeWidgetItem', 'bool'),
- "PySide2.QtWidgets.QTreeWidget.setItemSelected": ('PySide2.QtWidgets.QTreeWidgetItem', 'bool'),
- "PySide2.QtWidgets.QTreeWidget.setItemWidget": ('PySide2.QtWidgets.QTreeWidgetItem', 'int', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QTreeWidget.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtWidgets.QTreeWidget.setSelectionModel": ('PySide2.QtCore.QItemSelectionModel',),
- "PySide2.QtWidgets.QTreeWidget.sortColumn": (),
- "PySide2.QtWidgets.QTreeWidget.sortItems": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtWidgets.QTreeWidget.supportedDropActions": (),
- "PySide2.QtWidgets.QTreeWidget.takeTopLevelItem": ('int',),
- "PySide2.QtWidgets.QTreeWidget.topLevelItem": ('int',),
- "PySide2.QtWidgets.QTreeWidget.topLevelItemCount": (),
- "PySide2.QtWidgets.QTreeWidget.visualItemRect": ('PySide2.QtWidgets.QTreeWidgetItem',),
-# class PySide2.QtWidgets.QTreeWidgetItem:
-# class PySide2.QtWidgets.QTreeWidgetItem.ChildIndicatorPolicy:
-# class PySide2.QtWidgets.QTreeWidgetItem.ItemType:
- "PySide2.QtWidgets.QTreeWidgetItem.__init__": [('PySide2.QtWidgets.QTreeWidget', 'PySide2.QtWidgets.QTreeWidgetItem', 'int'), ('PySide2.QtWidgets.QTreeWidget', 'int'), ('PySide2.QtWidgets.QTreeWidget', 'typing.Sequence[str]', 'int'), ('PySide2.QtWidgets.QTreeWidgetItem',), ('PySide2.QtWidgets.QTreeWidgetItem', 'PySide2.QtWidgets.QTreeWidgetItem', 'int'), ('PySide2.QtWidgets.QTreeWidgetItem', 'int'), ('PySide2.QtWidgets.QTreeWidgetItem', 'typing.Sequence[str]', 'int'), ('int',), ('typing.Sequence[str]', 'int')],
- "PySide2.QtWidgets.QTreeWidgetItem.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QTreeWidgetItem.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QTreeWidgetItem.addChild": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidgetItem.addChildren": ('typing.Sequence[PySide2.QtWidgets.QTreeWidgetItem]',),
- "PySide2.QtWidgets.QTreeWidgetItem.background": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.backgroundColor": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.checkState": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.child": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.childCount": (),
- "PySide2.QtWidgets.QTreeWidgetItem.childIndicatorPolicy": (),
- "PySide2.QtWidgets.QTreeWidgetItem.clone": (),
- "PySide2.QtWidgets.QTreeWidgetItem.columnCount": (),
- "PySide2.QtWidgets.QTreeWidgetItem.data": ('int', 'int'),
- "PySide2.QtWidgets.QTreeWidgetItem.emitDataChanged": (),
- "PySide2.QtWidgets.QTreeWidgetItem.flags": (),
- "PySide2.QtWidgets.QTreeWidgetItem.font": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.foreground": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.icon": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.indexOfChild": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidgetItem.insertChild": ('int', 'PySide2.QtWidgets.QTreeWidgetItem'),
- "PySide2.QtWidgets.QTreeWidgetItem.insertChildren": ('int', 'typing.Sequence[PySide2.QtWidgets.QTreeWidgetItem]'),
- "PySide2.QtWidgets.QTreeWidgetItem.isDisabled": (),
- "PySide2.QtWidgets.QTreeWidgetItem.isExpanded": (),
- "PySide2.QtWidgets.QTreeWidgetItem.isFirstColumnSpanned": (),
- "PySide2.QtWidgets.QTreeWidgetItem.isHidden": (),
- "PySide2.QtWidgets.QTreeWidgetItem.isSelected": (),
- "PySide2.QtWidgets.QTreeWidgetItem.parent": (),
- "PySide2.QtWidgets.QTreeWidgetItem.read": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWidgets.QTreeWidgetItem.removeChild": ('PySide2.QtWidgets.QTreeWidgetItem',),
- "PySide2.QtWidgets.QTreeWidgetItem.setBackground": ('int', 'PySide2.QtGui.QBrush'),
- "PySide2.QtWidgets.QTreeWidgetItem.setBackgroundColor": ('int', 'PySide2.QtGui.QColor'),
- "PySide2.QtWidgets.QTreeWidgetItem.setCheckState": ('int', 'PySide2.QtCore.Qt.CheckState'),
- "PySide2.QtWidgets.QTreeWidgetItem.setChildIndicatorPolicy": ('PySide2.QtWidgets.QTreeWidgetItem.ChildIndicatorPolicy',),
- "PySide2.QtWidgets.QTreeWidgetItem.setData": ('int', 'int', 'typing.Any'),
- "PySide2.QtWidgets.QTreeWidgetItem.setDisabled": ('bool',),
- "PySide2.QtWidgets.QTreeWidgetItem.setExpanded": ('bool',),
- "PySide2.QtWidgets.QTreeWidgetItem.setFirstColumnSpanned": ('bool',),
- "PySide2.QtWidgets.QTreeWidgetItem.setFlags": ('PySide2.QtCore.Qt.ItemFlags',),
- "PySide2.QtWidgets.QTreeWidgetItem.setFont": ('int', 'PySide2.QtGui.QFont'),
- "PySide2.QtWidgets.QTreeWidgetItem.setForeground": ('int', 'PySide2.QtGui.QBrush'),
- "PySide2.QtWidgets.QTreeWidgetItem.setHidden": ('bool',),
- "PySide2.QtWidgets.QTreeWidgetItem.setIcon": ('int', 'PySide2.QtGui.QIcon'),
- "PySide2.QtWidgets.QTreeWidgetItem.setSelected": ('bool',),
- "PySide2.QtWidgets.QTreeWidgetItem.setSizeHint": ('int', 'PySide2.QtCore.QSize'),
- "PySide2.QtWidgets.QTreeWidgetItem.setStatusTip": ('int', 'str'),
- "PySide2.QtWidgets.QTreeWidgetItem.setText": ('int', 'str'),
- "PySide2.QtWidgets.QTreeWidgetItem.setTextAlignment": ('int', 'int'),
- "PySide2.QtWidgets.QTreeWidgetItem.setTextColor": ('int', 'PySide2.QtGui.QColor'),
- "PySide2.QtWidgets.QTreeWidgetItem.setToolTip": ('int', 'str'),
- "PySide2.QtWidgets.QTreeWidgetItem.setWhatsThis": ('int', 'str'),
- "PySide2.QtWidgets.QTreeWidgetItem.sizeHint": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.sortChildren": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtWidgets.QTreeWidgetItem.statusTip": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.takeChild": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.takeChildren": (),
- "PySide2.QtWidgets.QTreeWidgetItem.text": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.textAlignment": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.textColor": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.toolTip": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.treeWidget": (),
- "PySide2.QtWidgets.QTreeWidgetItem.type": (),
- "PySide2.QtWidgets.QTreeWidgetItem.whatsThis": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItem.write": ('PySide2.QtCore.QDataStream',),
-# class PySide2.QtWidgets.QTreeWidgetItemIterator:
-# class PySide2.QtWidgets.QTreeWidgetItemIterator.IteratorFlag:
-# class PySide2.QtWidgets.QTreeWidgetItemIterator.IteratorFlags:
- "PySide2.QtWidgets.QTreeWidgetItemIterator.__init__": [('PySide2.QtWidgets.QTreeWidget', 'PySide2.QtWidgets.QTreeWidgetItemIterator.IteratorFlags'), ('PySide2.QtWidgets.QTreeWidgetItem', 'PySide2.QtWidgets.QTreeWidgetItemIterator.IteratorFlags'), ('PySide2.QtWidgets.QTreeWidgetItemIterator',)],
- "PySide2.QtWidgets.QTreeWidgetItemIterator.__copy__": (),
- "PySide2.QtWidgets.QTreeWidgetItemIterator.__iadd__": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItemIterator.__isub__": ('int',),
- "PySide2.QtWidgets.QTreeWidgetItemIterator.__iter__": (),
- "PySide2.QtWidgets.QTreeWidgetItemIterator.value": (),
-# class PySide2.QtWidgets.QUndoCommand:
- "PySide2.QtWidgets.QUndoCommand.__init__": [('PySide2.QtWidgets.QUndoCommand',), ('str', 'PySide2.QtWidgets.QUndoCommand')],
- "PySide2.QtWidgets.QUndoCommand.actionText": (),
- "PySide2.QtWidgets.QUndoCommand.child": ('int',),
- "PySide2.QtWidgets.QUndoCommand.childCount": (),
- "PySide2.QtWidgets.QUndoCommand.id": (),
- "PySide2.QtWidgets.QUndoCommand.isObsolete": (),
- "PySide2.QtWidgets.QUndoCommand.mergeWith": ('PySide2.QtWidgets.QUndoCommand',),
- "PySide2.QtWidgets.QUndoCommand.redo": (),
- "PySide2.QtWidgets.QUndoCommand.setObsolete": ('bool',),
- "PySide2.QtWidgets.QUndoCommand.setText": ('str',),
- "PySide2.QtWidgets.QUndoCommand.text": (),
- "PySide2.QtWidgets.QUndoCommand.undo": (),
-# class PySide2.QtWidgets.QUndoGroup:
- "PySide2.QtWidgets.QUndoGroup.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QUndoGroup.activeStack": (),
- "PySide2.QtWidgets.QUndoGroup.addStack": ('PySide2.QtWidgets.QUndoStack',),
- "PySide2.QtWidgets.QUndoGroup.canRedo": (),
- "PySide2.QtWidgets.QUndoGroup.canUndo": (),
- "PySide2.QtWidgets.QUndoGroup.createRedoAction": ('PySide2.QtCore.QObject', 'str'),
- "PySide2.QtWidgets.QUndoGroup.createUndoAction": ('PySide2.QtCore.QObject', 'str'),
- "PySide2.QtWidgets.QUndoGroup.isClean": (),
- "PySide2.QtWidgets.QUndoGroup.redo": (),
- "PySide2.QtWidgets.QUndoGroup.redoText": (),
- "PySide2.QtWidgets.QUndoGroup.removeStack": ('PySide2.QtWidgets.QUndoStack',),
- "PySide2.QtWidgets.QUndoGroup.setActiveStack": ('PySide2.QtWidgets.QUndoStack',),
- "PySide2.QtWidgets.QUndoGroup.stacks": (),
- "PySide2.QtWidgets.QUndoGroup.undo": (),
- "PySide2.QtWidgets.QUndoGroup.undoText": (),
-# class PySide2.QtWidgets.QUndoStack:
- "PySide2.QtWidgets.QUndoStack.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QUndoStack.beginMacro": ('str',),
- "PySide2.QtWidgets.QUndoStack.canRedo": (),
- "PySide2.QtWidgets.QUndoStack.canUndo": (),
- "PySide2.QtWidgets.QUndoStack.cleanIndex": (),
- "PySide2.QtWidgets.QUndoStack.clear": (),
- "PySide2.QtWidgets.QUndoStack.command": ('int',),
- "PySide2.QtWidgets.QUndoStack.count": (),
- "PySide2.QtWidgets.QUndoStack.createRedoAction": ('PySide2.QtCore.QObject', 'str'),
- "PySide2.QtWidgets.QUndoStack.createUndoAction": ('PySide2.QtCore.QObject', 'str'),
- "PySide2.QtWidgets.QUndoStack.endMacro": (),
- "PySide2.QtWidgets.QUndoStack.index": (),
- "PySide2.QtWidgets.QUndoStack.isActive": (),
- "PySide2.QtWidgets.QUndoStack.isClean": (),
- "PySide2.QtWidgets.QUndoStack.push": ('PySide2.QtWidgets.QUndoCommand',),
- "PySide2.QtWidgets.QUndoStack.redo": (),
- "PySide2.QtWidgets.QUndoStack.redoText": (),
- "PySide2.QtWidgets.QUndoStack.resetClean": (),
- "PySide2.QtWidgets.QUndoStack.setActive": ('bool',),
- "PySide2.QtWidgets.QUndoStack.setClean": (),
- "PySide2.QtWidgets.QUndoStack.setIndex": ('int',),
- "PySide2.QtWidgets.QUndoStack.setUndoLimit": ('int',),
- "PySide2.QtWidgets.QUndoStack.text": ('int',),
- "PySide2.QtWidgets.QUndoStack.undo": (),
- "PySide2.QtWidgets.QUndoStack.undoLimit": (),
- "PySide2.QtWidgets.QUndoStack.undoText": (),
-# class PySide2.QtWidgets.QUndoView:
- "PySide2.QtWidgets.QUndoView.__init__": [('PySide2.QtWidgets.QUndoGroup', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QUndoStack', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtWidgets.QUndoView.cleanIcon": (),
- "PySide2.QtWidgets.QUndoView.emptyLabel": (),
- "PySide2.QtWidgets.QUndoView.group": (),
- "PySide2.QtWidgets.QUndoView.setCleanIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtWidgets.QUndoView.setEmptyLabel": ('str',),
- "PySide2.QtWidgets.QUndoView.setGroup": ('PySide2.QtWidgets.QUndoGroup',),
- "PySide2.QtWidgets.QUndoView.setStack": ('PySide2.QtWidgets.QUndoStack',),
- "PySide2.QtWidgets.QUndoView.stack": (),
-# class PySide2.QtWidgets.QVBoxLayout:
- "PySide2.QtWidgets.QVBoxLayout.__init__": [(), ('PySide2.QtWidgets.QWidget',)],
-# class PySide2.QtWidgets.QWhatsThis:
- "PySide2.QtWidgets.QWhatsThis.createAction": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QWhatsThis.enterWhatsThisMode": (),
- "PySide2.QtWidgets.QWhatsThis.hideText": (),
- "PySide2.QtWidgets.QWhatsThis.inWhatsThisMode": (),
- "PySide2.QtWidgets.QWhatsThis.leaveWhatsThisMode": (),
- "PySide2.QtWidgets.QWhatsThis.showText": ('PySide2.QtCore.QPoint', 'str', 'PySide2.QtWidgets.QWidget'),
-# class PySide2.QtWidgets.QWidget:
-# class PySide2.QtWidgets.QWidget.RenderFlag:
-# class PySide2.QtWidgets.QWidget.RenderFlags:
- "PySide2.QtWidgets.QWidget.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QWidget.acceptDrops": (),
- "PySide2.QtWidgets.QWidget.accessibleDescription": (),
- "PySide2.QtWidgets.QWidget.accessibleName": (),
- "PySide2.QtWidgets.QWidget.actionEvent": ('PySide2.QtGui.QActionEvent',),
- "PySide2.QtWidgets.QWidget.actions": (),
- "PySide2.QtWidgets.QWidget.activateWindow": (),
- "PySide2.QtWidgets.QWidget.addAction": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QWidget.addActions": ('typing.Sequence[PySide2.QtWidgets.QAction]',),
- "PySide2.QtWidgets.QWidget.adjustSize": (),
- "PySide2.QtWidgets.QWidget.autoFillBackground": (),
- "PySide2.QtWidgets.QWidget.backgroundRole": (),
- "PySide2.QtWidgets.QWidget.backingStore": (),
- "PySide2.QtWidgets.QWidget.baseSize": (),
- "PySide2.QtWidgets.QWidget.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QWidget.childAt": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtWidgets.QWidget.childrenRect": (),
- "PySide2.QtWidgets.QWidget.childrenRegion": (),
- "PySide2.QtWidgets.QWidget.clearFocus": (),
- "PySide2.QtWidgets.QWidget.clearMask": (),
- "PySide2.QtWidgets.QWidget.close": (),
- "PySide2.QtWidgets.QWidget.closeEvent": ('PySide2.QtGui.QCloseEvent',),
- "PySide2.QtWidgets.QWidget.contentsMargins": (),
- "PySide2.QtWidgets.QWidget.contentsRect": (),
- "PySide2.QtWidgets.QWidget.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWidgets.QWidget.contextMenuPolicy": (),
- "PySide2.QtWidgets.QWidget.create": ('int', 'bool', 'bool'),
- "PySide2.QtWidgets.QWidget.createWinId": (),
- "PySide2.QtWidgets.QWidget.createWindowContainer": ('PySide2.QtGui.QWindow', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QWidget.cursor": (),
- "PySide2.QtWidgets.QWidget.destroy": ('bool', 'bool'),
- "PySide2.QtWidgets.QWidget.devType": (),
- "PySide2.QtWidgets.QWidget.dragEnterEvent": ('PySide2.QtGui.QDragEnterEvent',),
- "PySide2.QtWidgets.QWidget.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtWidgets.QWidget.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtWidgets.QWidget.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWidgets.QWidget.effectiveWinId": (),
- "PySide2.QtWidgets.QWidget.ensurePolished": (),
- "PySide2.QtWidgets.QWidget.enterEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QWidget.find": ('int',),
- "PySide2.QtWidgets.QWidget.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QWidget.focusNextChild": (),
- "PySide2.QtWidgets.QWidget.focusNextPrevChild": ('bool',),
- "PySide2.QtWidgets.QWidget.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtWidgets.QWidget.focusPolicy": (),
- "PySide2.QtWidgets.QWidget.focusPreviousChild": (),
- "PySide2.QtWidgets.QWidget.focusProxy": (),
- "PySide2.QtWidgets.QWidget.focusWidget": (),
- "PySide2.QtWidgets.QWidget.font": (),
- "PySide2.QtWidgets.QWidget.fontInfo": (),
- "PySide2.QtWidgets.QWidget.fontMetrics": (),
- "PySide2.QtWidgets.QWidget.foregroundRole": (),
- "PySide2.QtWidgets.QWidget.frameGeometry": (),
- "PySide2.QtWidgets.QWidget.frameSize": (),
- "PySide2.QtWidgets.QWidget.geometry": (),
- "PySide2.QtWidgets.QWidget.getContentsMargins": (),
- "PySide2.QtWidgets.QWidget.grab": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QWidget.grabGesture": ('PySide2.QtCore.Qt.GestureType', 'PySide2.QtCore.Qt.GestureFlags'),
- "PySide2.QtWidgets.QWidget.grabKeyboard": (),
- "PySide2.QtWidgets.QWidget.grabMouse": [(), ('PySide2.QtGui.QCursor',)],
- "PySide2.QtWidgets.QWidget.grabShortcut": ('PySide2.QtGui.QKeySequence', 'PySide2.QtCore.Qt.ShortcutContext'),
- "PySide2.QtWidgets.QWidget.graphicsEffect": (),
- "PySide2.QtWidgets.QWidget.graphicsProxyWidget": (),
- "PySide2.QtWidgets.QWidget.hasFocus": (),
- "PySide2.QtWidgets.QWidget.hasHeightForWidth": (),
- "PySide2.QtWidgets.QWidget.hasMouseTracking": (),
- "PySide2.QtWidgets.QWidget.hasTabletTracking": (),
- "PySide2.QtWidgets.QWidget.height": (),
- "PySide2.QtWidgets.QWidget.heightForWidth": ('int',),
- "PySide2.QtWidgets.QWidget.hide": (),
- "PySide2.QtWidgets.QWidget.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWidgets.QWidget.initPainter": ('PySide2.QtGui.QPainter',),
- "PySide2.QtWidgets.QWidget.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtWidgets.QWidget.inputMethodHints": (),
- "PySide2.QtWidgets.QWidget.inputMethodQuery": ('PySide2.QtCore.Qt.InputMethodQuery',),
- "PySide2.QtWidgets.QWidget.insertAction": ('PySide2.QtWidgets.QAction', 'PySide2.QtWidgets.QAction'),
- "PySide2.QtWidgets.QWidget.insertActions": ('PySide2.QtWidgets.QAction', 'typing.Sequence[PySide2.QtWidgets.QAction]'),
- "PySide2.QtWidgets.QWidget.internalWinId": (),
- "PySide2.QtWidgets.QWidget.isActiveWindow": (),
- "PySide2.QtWidgets.QWidget.isAncestorOf": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWidget.isEnabled": (),
- "PySide2.QtWidgets.QWidget.isEnabledTo": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWidget.isEnabledToTLW": (),
- "PySide2.QtWidgets.QWidget.isFullScreen": (),
- "PySide2.QtWidgets.QWidget.isHidden": (),
- "PySide2.QtWidgets.QWidget.isLeftToRight": (),
- "PySide2.QtWidgets.QWidget.isMaximized": (),
- "PySide2.QtWidgets.QWidget.isMinimized": (),
- "PySide2.QtWidgets.QWidget.isModal": (),
- "PySide2.QtWidgets.QWidget.isRightToLeft": (),
- "PySide2.QtWidgets.QWidget.isTopLevel": (),
- "PySide2.QtWidgets.QWidget.isVisible": (),
- "PySide2.QtWidgets.QWidget.isVisibleTo": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWidget.isWindow": (),
- "PySide2.QtWidgets.QWidget.isWindowModified": (),
- "PySide2.QtWidgets.QWidget.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QWidget.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtWidgets.QWidget.keyboardGrabber": (),
- "PySide2.QtWidgets.QWidget.layout": (),
- "PySide2.QtWidgets.QWidget.layoutDirection": (),
- "PySide2.QtWidgets.QWidget.leaveEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QWidget.locale": (),
- "PySide2.QtWidgets.QWidget.lower": (),
- "PySide2.QtWidgets.QWidget.mapFrom": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QPoint'),
- "PySide2.QtWidgets.QWidget.mapFromGlobal": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QWidget.mapFromParent": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QWidget.mapTo": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QPoint'),
- "PySide2.QtWidgets.QWidget.mapToGlobal": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QWidget.mapToParent": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QWidget.mask": (),
- "PySide2.QtWidgets.QWidget.maximumHeight": (),
- "PySide2.QtWidgets.QWidget.maximumSize": (),
- "PySide2.QtWidgets.QWidget.maximumWidth": (),
- "PySide2.QtWidgets.QWidget.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtWidgets.QWidget.minimumHeight": (),
- "PySide2.QtWidgets.QWidget.minimumSize": (),
- "PySide2.QtWidgets.QWidget.minimumSizeHint": (),
- "PySide2.QtWidgets.QWidget.minimumWidth": (),
- "PySide2.QtWidgets.QWidget.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QWidget.mouseGrabber": (),
- "PySide2.QtWidgets.QWidget.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QWidget.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QWidget.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtWidgets.QWidget.move": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtWidgets.QWidget.moveEvent": ('PySide2.QtGui.QMoveEvent',),
- "PySide2.QtWidgets.QWidget.nativeEvent": ('PySide2.QtCore.QByteArray', 'int'),
- "PySide2.QtWidgets.QWidget.nativeParentWidget": (),
- "PySide2.QtWidgets.QWidget.nextInFocusChain": (),
- "PySide2.QtWidgets.QWidget.normalGeometry": (),
- "PySide2.QtWidgets.QWidget.overrideWindowFlags": ('PySide2.QtCore.Qt.WindowFlags',),
- "PySide2.QtWidgets.QWidget.overrideWindowState": ('PySide2.QtCore.Qt.WindowStates',),
- "PySide2.QtWidgets.QWidget.paintEngine": (),
- "PySide2.QtWidgets.QWidget.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QWidget.palette": (),
- "PySide2.QtWidgets.QWidget.parentWidget": (),
- "PySide2.QtWidgets.QWidget.pos": (),
- "PySide2.QtWidgets.QWidget.previousInFocusChain": (),
- "PySide2.QtWidgets.QWidget.raise_": (),
- "PySide2.QtWidgets.QWidget.rect": (),
- "PySide2.QtWidgets.QWidget.redirected": ('PySide2.QtCore.QPoint',),
- "PySide2.QtWidgets.QWidget.releaseKeyboard": (),
- "PySide2.QtWidgets.QWidget.releaseMouse": (),
- "PySide2.QtWidgets.QWidget.releaseShortcut": ('int',),
- "PySide2.QtWidgets.QWidget.removeAction": ('PySide2.QtWidgets.QAction',),
- "PySide2.QtWidgets.QWidget.render": [('PySide2.QtGui.QPaintDevice', 'PySide2.QtCore.QPoint', 'PySide2.QtGui.QRegion', 'PySide2.QtWidgets.QWidget.RenderFlags'), ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QPoint', 'PySide2.QtGui.QRegion', 'PySide2.QtWidgets.QWidget.RenderFlags')],
- "PySide2.QtWidgets.QWidget.repaint": [(), ('PySide2.QtCore.QRect',), ('PySide2.QtGui.QRegion',), ('int', 'int', 'int', 'int')],
- "PySide2.QtWidgets.QWidget.resize": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtWidgets.QWidget.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QWidget.restoreGeometry": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWidgets.QWidget.saveGeometry": (),
- "PySide2.QtWidgets.QWidget.screen": (),
- "PySide2.QtWidgets.QWidget.scroll": [('int', 'int'), ('int', 'int', 'PySide2.QtCore.QRect')],
- "PySide2.QtWidgets.QWidget.setAcceptDrops": ('bool',),
- "PySide2.QtWidgets.QWidget.setAccessibleDescription": ('str',),
- "PySide2.QtWidgets.QWidget.setAccessibleName": ('str',),
- "PySide2.QtWidgets.QWidget.setAttribute": ('PySide2.QtCore.Qt.WidgetAttribute', 'bool'),
- "PySide2.QtWidgets.QWidget.setAutoFillBackground": ('bool',),
- "PySide2.QtWidgets.QWidget.setBackgroundRole": ('PySide2.QtGui.QPalette.ColorRole',),
- "PySide2.QtWidgets.QWidget.setBaseSize": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtWidgets.QWidget.setContentsMargins": [('PySide2.QtCore.QMargins',), ('int', 'int', 'int', 'int')],
- "PySide2.QtWidgets.QWidget.setContextMenuPolicy": ('PySide2.QtCore.Qt.ContextMenuPolicy',),
- "PySide2.QtWidgets.QWidget.setCursor": ('PySide2.QtGui.QCursor',),
- "PySide2.QtWidgets.QWidget.setDisabled": ('bool',),
- "PySide2.QtWidgets.QWidget.setEnabled": ('bool',),
- "PySide2.QtWidgets.QWidget.setFixedHeight": ('int',),
- "PySide2.QtWidgets.QWidget.setFixedSize": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtWidgets.QWidget.setFixedWidth": ('int',),
- "PySide2.QtWidgets.QWidget.setFocus": [(), ('PySide2.QtCore.Qt.FocusReason',)],
- "PySide2.QtWidgets.QWidget.setFocusPolicy": ('PySide2.QtCore.Qt.FocusPolicy',),
- "PySide2.QtWidgets.QWidget.setFocusProxy": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWidget.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtWidgets.QWidget.setForegroundRole": ('PySide2.QtGui.QPalette.ColorRole',),
- "PySide2.QtWidgets.QWidget.setGeometry": [('PySide2.QtCore.QRect',), ('int', 'int', 'int', 'int')],
- "PySide2.QtWidgets.QWidget.setGraphicsEffect": ('PySide2.QtWidgets.QGraphicsEffect',),
- "PySide2.QtWidgets.QWidget.setHidden": ('bool',),
- "PySide2.QtWidgets.QWidget.setInputMethodHints": ('PySide2.QtCore.Qt.InputMethodHints',),
- "PySide2.QtWidgets.QWidget.setLayout": ('PySide2.QtWidgets.QLayout',),
- "PySide2.QtWidgets.QWidget.setLayoutDirection": ('PySide2.QtCore.Qt.LayoutDirection',),
- "PySide2.QtWidgets.QWidget.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtWidgets.QWidget.setMask": [('PySide2.QtGui.QBitmap',), ('PySide2.QtGui.QRegion',)],
- "PySide2.QtWidgets.QWidget.setMaximumHeight": ('int',),
- "PySide2.QtWidgets.QWidget.setMaximumSize": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtWidgets.QWidget.setMaximumWidth": ('int',),
- "PySide2.QtWidgets.QWidget.setMinimumHeight": ('int',),
- "PySide2.QtWidgets.QWidget.setMinimumSize": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtWidgets.QWidget.setMinimumWidth": ('int',),
- "PySide2.QtWidgets.QWidget.setMouseTracking": ('bool',),
- "PySide2.QtWidgets.QWidget.setPalette": ('PySide2.QtGui.QPalette',),
- "PySide2.QtWidgets.QWidget.setParent": [('PySide2.QtWidgets.QWidget',), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags')],
- "PySide2.QtWidgets.QWidget.setShortcutAutoRepeat": ('int', 'bool'),
- "PySide2.QtWidgets.QWidget.setShortcutEnabled": ('int', 'bool'),
- "PySide2.QtWidgets.QWidget.setSizeIncrement": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtWidgets.QWidget.setSizePolicy": [('PySide2.QtWidgets.QSizePolicy',), ('PySide2.QtWidgets.QSizePolicy.Policy', 'PySide2.QtWidgets.QSizePolicy.Policy')],
- "PySide2.QtWidgets.QWidget.setStatusTip": ('str',),
- "PySide2.QtWidgets.QWidget.setStyle": ('PySide2.QtWidgets.QStyle',),
- "PySide2.QtWidgets.QWidget.setStyleSheet": ('str',),
- "PySide2.QtWidgets.QWidget.setTabOrder": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtWidgets.QWidget.setTabletTracking": ('bool',),
- "PySide2.QtWidgets.QWidget.setToolTip": ('str',),
- "PySide2.QtWidgets.QWidget.setToolTipDuration": ('int',),
- "PySide2.QtWidgets.QWidget.setUpdatesEnabled": ('bool',),
- "PySide2.QtWidgets.QWidget.setVisible": ('bool',),
- "PySide2.QtWidgets.QWidget.setWhatsThis": ('str',),
- "PySide2.QtWidgets.QWidget.setWindowFilePath": ('str',),
- "PySide2.QtWidgets.QWidget.setWindowFlag": ('PySide2.QtCore.Qt.WindowType', 'bool'),
- "PySide2.QtWidgets.QWidget.setWindowFlags": ('PySide2.QtCore.Qt.WindowFlags',),
- "PySide2.QtWidgets.QWidget.setWindowIcon": ('PySide2.QtGui.QIcon',),
- "PySide2.QtWidgets.QWidget.setWindowIconText": ('str',),
- "PySide2.QtWidgets.QWidget.setWindowModality": ('PySide2.QtCore.Qt.WindowModality',),
- "PySide2.QtWidgets.QWidget.setWindowModified": ('bool',),
- "PySide2.QtWidgets.QWidget.setWindowOpacity": ('float',),
- "PySide2.QtWidgets.QWidget.setWindowRole": ('str',),
- "PySide2.QtWidgets.QWidget.setWindowState": ('PySide2.QtCore.Qt.WindowStates',),
- "PySide2.QtWidgets.QWidget.setWindowTitle": ('str',),
- "PySide2.QtWidgets.QWidget.sharedPainter": (),
- "PySide2.QtWidgets.QWidget.show": (),
- "PySide2.QtWidgets.QWidget.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWidgets.QWidget.showFullScreen": (),
- "PySide2.QtWidgets.QWidget.showMaximized": (),
- "PySide2.QtWidgets.QWidget.showMinimized": (),
- "PySide2.QtWidgets.QWidget.showNormal": (),
- "PySide2.QtWidgets.QWidget.size": (),
- "PySide2.QtWidgets.QWidget.sizeHint": (),
- "PySide2.QtWidgets.QWidget.sizeIncrement": (),
- "PySide2.QtWidgets.QWidget.sizePolicy": (),
- "PySide2.QtWidgets.QWidget.stackUnder": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWidget.statusTip": (),
- "PySide2.QtWidgets.QWidget.style": (),
- "PySide2.QtWidgets.QWidget.styleSheet": (),
- "PySide2.QtWidgets.QWidget.tabletEvent": ('PySide2.QtGui.QTabletEvent',),
- "PySide2.QtWidgets.QWidget.testAttribute": ('PySide2.QtCore.Qt.WidgetAttribute',),
- "PySide2.QtWidgets.QWidget.toolTip": (),
- "PySide2.QtWidgets.QWidget.toolTipDuration": (),
- "PySide2.QtWidgets.QWidget.topLevelWidget": (),
- "PySide2.QtWidgets.QWidget.underMouse": (),
- "PySide2.QtWidgets.QWidget.ungrabGesture": ('PySide2.QtCore.Qt.GestureType',),
- "PySide2.QtWidgets.QWidget.unsetCursor": (),
- "PySide2.QtWidgets.QWidget.unsetLayoutDirection": (),
- "PySide2.QtWidgets.QWidget.unsetLocale": (),
- "PySide2.QtWidgets.QWidget.update": [(), ('PySide2.QtCore.QRect',), ('PySide2.QtGui.QRegion',), ('int', 'int', 'int', 'int')],
- "PySide2.QtWidgets.QWidget.updateGeometry": (),
- "PySide2.QtWidgets.QWidget.updateMicroFocus": (),
- "PySide2.QtWidgets.QWidget.updatesEnabled": (),
- "PySide2.QtWidgets.QWidget.visibleRegion": (),
- "PySide2.QtWidgets.QWidget.whatsThis": (),
- "PySide2.QtWidgets.QWidget.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
- "PySide2.QtWidgets.QWidget.width": (),
- "PySide2.QtWidgets.QWidget.winId": (),
- "PySide2.QtWidgets.QWidget.window": (),
- "PySide2.QtWidgets.QWidget.windowFilePath": (),
- "PySide2.QtWidgets.QWidget.windowFlags": (),
- "PySide2.QtWidgets.QWidget.windowHandle": (),
- "PySide2.QtWidgets.QWidget.windowIcon": (),
- "PySide2.QtWidgets.QWidget.windowIconText": (),
- "PySide2.QtWidgets.QWidget.windowModality": (),
- "PySide2.QtWidgets.QWidget.windowOpacity": (),
- "PySide2.QtWidgets.QWidget.windowRole": (),
- "PySide2.QtWidgets.QWidget.windowState": (),
- "PySide2.QtWidgets.QWidget.windowTitle": (),
- "PySide2.QtWidgets.QWidget.windowType": (),
- "PySide2.QtWidgets.QWidget.x": (),
- "PySide2.QtWidgets.QWidget.y": (),
-# class PySide2.QtWidgets.QWidgetAction:
- "PySide2.QtWidgets.QWidgetAction.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWidgets.QWidgetAction.createWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWidgetAction.createdWidgets": (),
- "PySide2.QtWidgets.QWidgetAction.defaultWidget": (),
- "PySide2.QtWidgets.QWidgetAction.deleteWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWidgetAction.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QWidgetAction.eventFilter": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QEvent'),
- "PySide2.QtWidgets.QWidgetAction.releaseWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWidgetAction.requestWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWidgetAction.setDefaultWidget": ('PySide2.QtWidgets.QWidget',),
-# class PySide2.QtWidgets.QWidgetItem:
- "PySide2.QtWidgets.QWidgetItem.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWidgetItem.controlTypes": (),
- "PySide2.QtWidgets.QWidgetItem.expandingDirections": (),
- "PySide2.QtWidgets.QWidgetItem.geometry": (),
- "PySide2.QtWidgets.QWidgetItem.hasHeightForWidth": (),
- "PySide2.QtWidgets.QWidgetItem.heightForWidth": ('int',),
- "PySide2.QtWidgets.QWidgetItem.isEmpty": (),
- "PySide2.QtWidgets.QWidgetItem.maximumSize": (),
- "PySide2.QtWidgets.QWidgetItem.minimumSize": (),
- "PySide2.QtWidgets.QWidgetItem.setGeometry": ('PySide2.QtCore.QRect',),
- "PySide2.QtWidgets.QWidgetItem.sizeHint": (),
- "PySide2.QtWidgets.QWidgetItem.widget": (),
-# class PySide2.QtWidgets.QWizard:
-# class PySide2.QtWidgets.QWizard.WizardButton:
-# class PySide2.QtWidgets.QWizard.WizardOption:
-# class PySide2.QtWidgets.QWizard.WizardOptions:
-# class PySide2.QtWidgets.QWizard.WizardPixmap:
-# class PySide2.QtWidgets.QWizard.WizardStyle:
- "PySide2.QtWidgets.QWizard.__init__": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtWidgets.QWizard.addPage": ('PySide2.QtWidgets.QWizardPage',),
- "PySide2.QtWidgets.QWizard.back": (),
- "PySide2.QtWidgets.QWizard.button": ('PySide2.QtWidgets.QWizard.WizardButton',),
- "PySide2.QtWidgets.QWizard.buttonText": ('PySide2.QtWidgets.QWizard.WizardButton',),
- "PySide2.QtWidgets.QWizard.cleanupPage": ('int',),
- "PySide2.QtWidgets.QWizard.currentId": (),
- "PySide2.QtWidgets.QWizard.currentPage": (),
- "PySide2.QtWidgets.QWizard.done": ('int',),
- "PySide2.QtWidgets.QWizard.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWidgets.QWizard.field": ('str',),
- "PySide2.QtWidgets.QWizard.hasVisitedPage": ('int',),
- "PySide2.QtWidgets.QWizard.initializePage": ('int',),
- "PySide2.QtWidgets.QWizard.nextId": (),
- "PySide2.QtWidgets.QWizard.options": (),
- "PySide2.QtWidgets.QWizard.page": ('int',),
- "PySide2.QtWidgets.QWizard.pageIds": (),
- "PySide2.QtWidgets.QWizard.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtWidgets.QWizard.pixmap": ('PySide2.QtWidgets.QWizard.WizardPixmap',),
- "PySide2.QtWidgets.QWizard.removePage": ('int',),
- "PySide2.QtWidgets.QWizard.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtWidgets.QWizard.restart": (),
- "PySide2.QtWidgets.QWizard.setButton": ('PySide2.QtWidgets.QWizard.WizardButton', 'PySide2.QtWidgets.QAbstractButton'),
- "PySide2.QtWidgets.QWizard.setButtonLayout": ('typing.Sequence[PySide2.QtWidgets.QWizard.WizardButton]',),
- "PySide2.QtWidgets.QWizard.setButtonText": ('PySide2.QtWidgets.QWizard.WizardButton', 'str'),
- "PySide2.QtWidgets.QWizard.setDefaultProperty": ('str', 'str', 'str'),
- "PySide2.QtWidgets.QWizard.setField": ('str', 'typing.Any'),
- "PySide2.QtWidgets.QWizard.setOption": ('PySide2.QtWidgets.QWizard.WizardOption', 'bool'),
- "PySide2.QtWidgets.QWizard.setOptions": ('PySide2.QtWidgets.QWizard.WizardOptions',),
- "PySide2.QtWidgets.QWizard.setPage": ('int', 'PySide2.QtWidgets.QWizardPage'),
- "PySide2.QtWidgets.QWizard.setPixmap": ('PySide2.QtWidgets.QWizard.WizardPixmap', 'PySide2.QtGui.QPixmap'),
- "PySide2.QtWidgets.QWizard.setSideWidget": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWizard.setStartId": ('int',),
- "PySide2.QtWidgets.QWizard.setSubTitleFormat": ('PySide2.QtCore.Qt.TextFormat',),
- "PySide2.QtWidgets.QWizard.setTitleFormat": ('PySide2.QtCore.Qt.TextFormat',),
- "PySide2.QtWidgets.QWizard.setVisible": ('bool',),
- "PySide2.QtWidgets.QWizard.setWizardStyle": ('PySide2.QtWidgets.QWizard.WizardStyle',),
- "PySide2.QtWidgets.QWizard.sideWidget": (),
- "PySide2.QtWidgets.QWizard.sizeHint": (),
- "PySide2.QtWidgets.QWizard.startId": (),
- "PySide2.QtWidgets.QWizard.subTitleFormat": (),
- "PySide2.QtWidgets.QWizard.testOption": ('PySide2.QtWidgets.QWizard.WizardOption',),
- "PySide2.QtWidgets.QWizard.titleFormat": (),
- "PySide2.QtWidgets.QWizard.validateCurrentPage": (),
- "PySide2.QtWidgets.QWizard.visitedPages": (),
- "PySide2.QtWidgets.QWizard.wizardStyle": (),
-# class PySide2.QtWidgets.QWizardPage:
- "PySide2.QtWidgets.QWizardPage.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWidgets.QWizardPage.buttonText": ('PySide2.QtWidgets.QWizard.WizardButton',),
- "PySide2.QtWidgets.QWizardPage.cleanupPage": (),
- "PySide2.QtWidgets.QWizardPage.field": ('str',),
- "PySide2.QtWidgets.QWizardPage.initializePage": (),
- "PySide2.QtWidgets.QWizardPage.isCommitPage": (),
- "PySide2.QtWidgets.QWizardPage.isComplete": (),
- "PySide2.QtWidgets.QWizardPage.isFinalPage": (),
- "PySide2.QtWidgets.QWizardPage.nextId": (),
- "PySide2.QtWidgets.QWizardPage.pixmap": ('PySide2.QtWidgets.QWizard.WizardPixmap',),
- "PySide2.QtWidgets.QWizardPage.registerField": ('str', 'PySide2.QtWidgets.QWidget', 'str', 'str'),
- "PySide2.QtWidgets.QWizardPage.setButtonText": ('PySide2.QtWidgets.QWizard.WizardButton', 'str'),
- "PySide2.QtWidgets.QWizardPage.setCommitPage": ('bool',),
- "PySide2.QtWidgets.QWizardPage.setField": ('str', 'typing.Any'),
- "PySide2.QtWidgets.QWizardPage.setFinalPage": ('bool',),
- "PySide2.QtWidgets.QWizardPage.setPixmap": ('PySide2.QtWidgets.QWizard.WizardPixmap', 'PySide2.QtGui.QPixmap'),
- "PySide2.QtWidgets.QWizardPage.setSubTitle": ('str',),
- "PySide2.QtWidgets.QWizardPage.setTitle": ('str',),
- "PySide2.QtWidgets.QWizardPage.subTitle": (),
- "PySide2.QtWidgets.QWizardPage.title": (),
- "PySide2.QtWidgets.QWizardPage.validatePage": (),
- "PySide2.QtWidgets.QWizardPage.wizard": (),
- }) if "PySide2.QtWidgets" in sys.modules else None
-# Module PySide2.QtPrintSupport
-sig_dict.update({
-# class PySide2.QtPrintSupport.QAbstractPrintDialog:
-# class PySide2.QtPrintSupport.QAbstractPrintDialog.PrintDialogOption:
-# class PySide2.QtPrintSupport.QAbstractPrintDialog.PrintDialogOptions:
-# class PySide2.QtPrintSupport.QAbstractPrintDialog.PrintRange:
- "PySide2.QtPrintSupport.QAbstractPrintDialog.__init__": ('PySide2.QtPrintSupport.QPrinter', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.addEnabledOption": ('PySide2.QtPrintSupport.QAbstractPrintDialog.PrintDialogOption',),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.enabledOptions": (),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.fromPage": (),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.isOptionEnabled": ('PySide2.QtPrintSupport.QAbstractPrintDialog.PrintDialogOption',),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.maxPage": (),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.minPage": (),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.printRange": (),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.printer": (),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.setEnabledOptions": ('PySide2.QtPrintSupport.QAbstractPrintDialog.PrintDialogOptions',),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.setFromTo": ('int', 'int'),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.setMinMax": ('int', 'int'),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.setOptionTabs": ('typing.Sequence[PySide2.QtWidgets.QWidget]',),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.setPrintRange": ('PySide2.QtPrintSupport.QAbstractPrintDialog.PrintRange',),
- "PySide2.QtPrintSupport.QAbstractPrintDialog.toPage": (),
-# class PySide2.QtPrintSupport.QPageSetupDialog:
- "PySide2.QtPrintSupport.QPageSetupDialog.__init__": [('PySide2.QtPrintSupport.QPrinter', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtPrintSupport.QPageSetupDialog.done": ('int',),
- "PySide2.QtPrintSupport.QPageSetupDialog.exec_": (),
- "PySide2.QtPrintSupport.QPageSetupDialog.open": [(), ('PySide2.QtCore.QObject', 'str')],
- "PySide2.QtPrintSupport.QPageSetupDialog.printer": (),
-# class PySide2.QtPrintSupport.QPrintDialog:
- "PySide2.QtPrintSupport.QPrintDialog.__init__": [('PySide2.QtPrintSupport.QPrinter', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtPrintSupport.QPrintDialog.accept": (),
- "PySide2.QtPrintSupport.QPrintDialog.done": ('int',),
- "PySide2.QtPrintSupport.QPrintDialog.exec_": (),
- "PySide2.QtPrintSupport.QPrintDialog.open": [(), ('PySide2.QtCore.QObject', 'str')],
- "PySide2.QtPrintSupport.QPrintDialog.options": (),
- "PySide2.QtPrintSupport.QPrintDialog.setOption": ('PySide2.QtPrintSupport.QAbstractPrintDialog.PrintDialogOption', 'bool'),
- "PySide2.QtPrintSupport.QPrintDialog.setOptions": ('PySide2.QtPrintSupport.QAbstractPrintDialog.PrintDialogOptions',),
- "PySide2.QtPrintSupport.QPrintDialog.setVisible": ('bool',),
- "PySide2.QtPrintSupport.QPrintDialog.testOption": ('PySide2.QtPrintSupport.QAbstractPrintDialog.PrintDialogOption',),
-# class PySide2.QtPrintSupport.QPrintEngine:
-# class PySide2.QtPrintSupport.QPrintEngine.PrintEnginePropertyKey:
- "PySide2.QtPrintSupport.QPrintEngine.__init__": (),
- "PySide2.QtPrintSupport.QPrintEngine.abort": (),
- "PySide2.QtPrintSupport.QPrintEngine.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtPrintSupport.QPrintEngine.newPage": (),
- "PySide2.QtPrintSupport.QPrintEngine.printerState": (),
- "PySide2.QtPrintSupport.QPrintEngine.property": ('PySide2.QtPrintSupport.QPrintEngine.PrintEnginePropertyKey',),
- "PySide2.QtPrintSupport.QPrintEngine.setProperty": ('PySide2.QtPrintSupport.QPrintEngine.PrintEnginePropertyKey', 'typing.Any'),
-# class PySide2.QtPrintSupport.QPrintPreviewDialog:
- "PySide2.QtPrintSupport.QPrintPreviewDialog.__init__": [('PySide2.QtPrintSupport.QPrinter', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags')],
- "PySide2.QtPrintSupport.QPrintPreviewDialog.done": ('int',),
- "PySide2.QtPrintSupport.QPrintPreviewDialog.open": [(), ('PySide2.QtCore.QObject', 'str')],
- "PySide2.QtPrintSupport.QPrintPreviewDialog.printer": (),
- "PySide2.QtPrintSupport.QPrintPreviewDialog.setVisible": ('bool',),
-# class PySide2.QtPrintSupport.QPrintPreviewWidget:
-# class PySide2.QtPrintSupport.QPrintPreviewWidget.ViewMode:
-# class PySide2.QtPrintSupport.QPrintPreviewWidget.ZoomMode:
- "PySide2.QtPrintSupport.QPrintPreviewWidget.__init__": [('PySide2.QtPrintSupport.QPrinter', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.WindowFlags')],
- "PySide2.QtPrintSupport.QPrintPreviewWidget.currentPage": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.fitInView": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.fitToWidth": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.orientation": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.pageCount": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.print_": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setAllPagesViewMode": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setCurrentPage": ('int',),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setFacingPagesViewMode": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setLandscapeOrientation": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setOrientation": ('PySide2.QtPrintSupport.QPrinter.Orientation',),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setPortraitOrientation": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setSinglePageViewMode": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setViewMode": ('PySide2.QtPrintSupport.QPrintPreviewWidget.ViewMode',),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setVisible": ('bool',),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setZoomFactor": ('float',),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.setZoomMode": ('PySide2.QtPrintSupport.QPrintPreviewWidget.ZoomMode',),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.updatePreview": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.viewMode": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.zoomFactor": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.zoomIn": ('float',),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.zoomMode": (),
- "PySide2.QtPrintSupport.QPrintPreviewWidget.zoomOut": ('float',),
-# class PySide2.QtPrintSupport.QPrinter:
-# class PySide2.QtPrintSupport.QPrinter.ColorMode:
-# class PySide2.QtPrintSupport.QPrinter.DuplexMode:
-# class PySide2.QtPrintSupport.QPrinter.Orientation:
-# class PySide2.QtPrintSupport.QPrinter.OutputFormat:
-# class PySide2.QtPrintSupport.QPrinter.PageOrder:
-# class PySide2.QtPrintSupport.QPrinter.PaperSource:
-# class PySide2.QtPrintSupport.QPrinter.PrintRange:
-# class PySide2.QtPrintSupport.QPrinter.PrinterMode:
-# class PySide2.QtPrintSupport.QPrinter.PrinterState:
-# class PySide2.QtPrintSupport.QPrinter.Unit:
- "PySide2.QtPrintSupport.QPrinter.__init__": [('PySide2.QtPrintSupport.QPrinter.PrinterMode',), ('PySide2.QtPrintSupport.QPrinterInfo', 'PySide2.QtPrintSupport.QPrinter.PrinterMode')],
- "PySide2.QtPrintSupport.QPrinter.abort": (),
- "PySide2.QtPrintSupport.QPrinter.actualNumCopies": (),
- "PySide2.QtPrintSupport.QPrinter.collateCopies": (),
- "PySide2.QtPrintSupport.QPrinter.colorMode": (),
- "PySide2.QtPrintSupport.QPrinter.copyCount": (),
- "PySide2.QtPrintSupport.QPrinter.creator": (),
- "PySide2.QtPrintSupport.QPrinter.devType": (),
- "PySide2.QtPrintSupport.QPrinter.docName": (),
- "PySide2.QtPrintSupport.QPrinter.doubleSidedPrinting": (),
- "PySide2.QtPrintSupport.QPrinter.duplex": (),
- "PySide2.QtPrintSupport.QPrinter.fontEmbeddingEnabled": (),
- "PySide2.QtPrintSupport.QPrinter.fromPage": (),
- "PySide2.QtPrintSupport.QPrinter.fullPage": (),
- "PySide2.QtPrintSupport.QPrinter.getPageMargins": ('PySide2.QtPrintSupport.QPrinter.Unit',),
- "PySide2.QtPrintSupport.QPrinter.isValid": (),
- "PySide2.QtPrintSupport.QPrinter.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtPrintSupport.QPrinter.newPage": (),
- "PySide2.QtPrintSupport.QPrinter.numCopies": (),
- "PySide2.QtPrintSupport.QPrinter.orientation": (),
- "PySide2.QtPrintSupport.QPrinter.outputFileName": (),
- "PySide2.QtPrintSupport.QPrinter.outputFormat": (),
- "PySide2.QtPrintSupport.QPrinter.pageOrder": (),
- "PySide2.QtPrintSupport.QPrinter.pageRect": [(), ('PySide2.QtPrintSupport.QPrinter.Unit',)],
- "PySide2.QtPrintSupport.QPrinter.pageSize": (),
- "PySide2.QtPrintSupport.QPrinter.paintEngine": (),
- "PySide2.QtPrintSupport.QPrinter.paperName": (),
- "PySide2.QtPrintSupport.QPrinter.paperRect": [(), ('PySide2.QtPrintSupport.QPrinter.Unit',)],
- "PySide2.QtPrintSupport.QPrinter.paperSize": [(), ('PySide2.QtPrintSupport.QPrinter.Unit',)],
- "PySide2.QtPrintSupport.QPrinter.paperSource": (),
- "PySide2.QtPrintSupport.QPrinter.pdfVersion": (),
- "PySide2.QtPrintSupport.QPrinter.printEngine": (),
- "PySide2.QtPrintSupport.QPrinter.printProgram": (),
- "PySide2.QtPrintSupport.QPrinter.printRange": (),
- "PySide2.QtPrintSupport.QPrinter.printerName": (),
- "PySide2.QtPrintSupport.QPrinter.printerState": (),
- "PySide2.QtPrintSupport.QPrinter.resolution": (),
- "PySide2.QtPrintSupport.QPrinter.setCollateCopies": ('bool',),
- "PySide2.QtPrintSupport.QPrinter.setColorMode": ('PySide2.QtPrintSupport.QPrinter.ColorMode',),
- "PySide2.QtPrintSupport.QPrinter.setCopyCount": ('int',),
- "PySide2.QtPrintSupport.QPrinter.setCreator": ('str',),
- "PySide2.QtPrintSupport.QPrinter.setDocName": ('str',),
- "PySide2.QtPrintSupport.QPrinter.setDoubleSidedPrinting": ('bool',),
- "PySide2.QtPrintSupport.QPrinter.setDuplex": ('PySide2.QtPrintSupport.QPrinter.DuplexMode',),
- "PySide2.QtPrintSupport.QPrinter.setEngines": ('PySide2.QtPrintSupport.QPrintEngine', 'PySide2.QtGui.QPaintEngine'),
- "PySide2.QtPrintSupport.QPrinter.setFontEmbeddingEnabled": ('bool',),
- "PySide2.QtPrintSupport.QPrinter.setFromTo": ('int', 'int'),
- "PySide2.QtPrintSupport.QPrinter.setFullPage": ('bool',),
- "PySide2.QtPrintSupport.QPrinter.setMargins": ('PySide2.QtGui.QPagedPaintDevice.Margins',),
- "PySide2.QtPrintSupport.QPrinter.setNumCopies": ('int',),
- "PySide2.QtPrintSupport.QPrinter.setOrientation": ('PySide2.QtPrintSupport.QPrinter.Orientation',),
- "PySide2.QtPrintSupport.QPrinter.setOutputFileName": ('str',),
- "PySide2.QtPrintSupport.QPrinter.setOutputFormat": ('PySide2.QtPrintSupport.QPrinter.OutputFormat',),
- "PySide2.QtPrintSupport.QPrinter.setPageMargins": [('PySide2.QtCore.QMarginsF',), ('float', 'float', 'float', 'float', 'PySide2.QtPrintSupport.QPrinter.Unit')],
- "PySide2.QtPrintSupport.QPrinter.setPageOrder": ('PySide2.QtPrintSupport.QPrinter.PageOrder',),
- "PySide2.QtPrintSupport.QPrinter.setPageSize": [('PySide2.QtGui.QPageSize',), ('PySide2.QtGui.QPagedPaintDevice.PageSize',)],
- "PySide2.QtPrintSupport.QPrinter.setPageSizeMM": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtPrintSupport.QPrinter.setPaperName": ('str',),
- "PySide2.QtPrintSupport.QPrinter.setPaperSize": [('PySide2.QtCore.QSizeF', 'PySide2.QtPrintSupport.QPrinter.Unit'), ('PySide2.QtGui.QPagedPaintDevice.PageSize',)],
- "PySide2.QtPrintSupport.QPrinter.setPaperSource": ('PySide2.QtPrintSupport.QPrinter.PaperSource',),
- "PySide2.QtPrintSupport.QPrinter.setPdfVersion": ('PySide2.QtGui.QPagedPaintDevice.PdfVersion',),
- "PySide2.QtPrintSupport.QPrinter.setPrintProgram": ('str',),
- "PySide2.QtPrintSupport.QPrinter.setPrintRange": ('PySide2.QtPrintSupport.QPrinter.PrintRange',),
- "PySide2.QtPrintSupport.QPrinter.setPrinterName": ('str',),
- "PySide2.QtPrintSupport.QPrinter.setResolution": ('int',),
- "PySide2.QtPrintSupport.QPrinter.setWinPageSize": ('int',),
- "PySide2.QtPrintSupport.QPrinter.supportedResolutions": (),
- "PySide2.QtPrintSupport.QPrinter.supportsMultipleCopies": (),
- "PySide2.QtPrintSupport.QPrinter.toPage": (),
- "PySide2.QtPrintSupport.QPrinter.winPageSize": (),
-# class PySide2.QtPrintSupport.QPrinterInfo:
- "PySide2.QtPrintSupport.QPrinterInfo.__init__": [(), ('PySide2.QtPrintSupport.QPrinter',), ('PySide2.QtPrintSupport.QPrinterInfo',)],
- "PySide2.QtPrintSupport.QPrinterInfo.__copy__": (),
- "PySide2.QtPrintSupport.QPrinterInfo.availablePrinterNames": (),
- "PySide2.QtPrintSupport.QPrinterInfo.availablePrinters": (),
- "PySide2.QtPrintSupport.QPrinterInfo.defaultColorMode": (),
- "PySide2.QtPrintSupport.QPrinterInfo.defaultDuplexMode": (),
- "PySide2.QtPrintSupport.QPrinterInfo.defaultPageSize": (),
- "PySide2.QtPrintSupport.QPrinterInfo.defaultPrinter": (),
- "PySide2.QtPrintSupport.QPrinterInfo.defaultPrinterName": (),
- "PySide2.QtPrintSupport.QPrinterInfo.description": (),
- "PySide2.QtPrintSupport.QPrinterInfo.isDefault": (),
- "PySide2.QtPrintSupport.QPrinterInfo.isNull": (),
- "PySide2.QtPrintSupport.QPrinterInfo.isRemote": (),
- "PySide2.QtPrintSupport.QPrinterInfo.location": (),
- "PySide2.QtPrintSupport.QPrinterInfo.makeAndModel": (),
- "PySide2.QtPrintSupport.QPrinterInfo.maximumPhysicalPageSize": (),
- "PySide2.QtPrintSupport.QPrinterInfo.minimumPhysicalPageSize": (),
- "PySide2.QtPrintSupport.QPrinterInfo.printerInfo": ('str',),
- "PySide2.QtPrintSupport.QPrinterInfo.printerName": (),
- "PySide2.QtPrintSupport.QPrinterInfo.state": (),
- "PySide2.QtPrintSupport.QPrinterInfo.supportedColorModes": (),
- "PySide2.QtPrintSupport.QPrinterInfo.supportedDuplexModes": (),
- "PySide2.QtPrintSupport.QPrinterInfo.supportedPageSizes": (),
- "PySide2.QtPrintSupport.QPrinterInfo.supportedPaperSizes": (),
- "PySide2.QtPrintSupport.QPrinterInfo.supportedResolutions": (),
- "PySide2.QtPrintSupport.QPrinterInfo.supportedSizesWithNames": (),
- "PySide2.QtPrintSupport.QPrinterInfo.supportsCustomPageSizes": (),
- }) if "PySide2.QtPrintSupport" in sys.modules else None
-# Module PySide2.QtSql
-sig_dict.update({
-# class PySide2.QtSql.QSql:
-# class PySide2.QtSql.QSql.Location:
-# class PySide2.QtSql.QSql.NumericalPrecisionPolicy:
-# class PySide2.QtSql.QSql.ParamType:
-# class PySide2.QtSql.QSql.ParamTypeFlag:
-# class PySide2.QtSql.QSql.TableType:
-# class PySide2.QtSql.QSqlDatabase:
- "PySide2.QtSql.QSqlDatabase.__init__": [(), ('PySide2.QtSql.QSqlDatabase',), ('PySide2.QtSql.QSqlDriver',), ('str',)],
- "PySide2.QtSql.QSqlDatabase.__copy__": (),
- "PySide2.QtSql.QSqlDatabase.addDatabase": [('PySide2.QtSql.QSqlDriver', 'str'), ('str', 'str')],
- "PySide2.QtSql.QSqlDatabase.cloneDatabase": [('PySide2.QtSql.QSqlDatabase', 'str'), ('str', 'str')],
- "PySide2.QtSql.QSqlDatabase.close": (),
- "PySide2.QtSql.QSqlDatabase.commit": (),
- "PySide2.QtSql.QSqlDatabase.connectOptions": (),
- "PySide2.QtSql.QSqlDatabase.connectionName": (),
- "PySide2.QtSql.QSqlDatabase.connectionNames": (),
- "PySide2.QtSql.QSqlDatabase.contains": ('str',),
- "PySide2.QtSql.QSqlDatabase.database": ('str', 'bool'),
- "PySide2.QtSql.QSqlDatabase.databaseName": (),
- "PySide2.QtSql.QSqlDatabase.driver": (),
- "PySide2.QtSql.QSqlDatabase.driverName": (),
- "PySide2.QtSql.QSqlDatabase.drivers": (),
- "PySide2.QtSql.QSqlDatabase.exec_": ('str',),
- "PySide2.QtSql.QSqlDatabase.hostName": (),
- "PySide2.QtSql.QSqlDatabase.isDriverAvailable": ('str',),
- "PySide2.QtSql.QSqlDatabase.isOpen": (),
- "PySide2.QtSql.QSqlDatabase.isOpenError": (),
- "PySide2.QtSql.QSqlDatabase.isValid": (),
- "PySide2.QtSql.QSqlDatabase.lastError": (),
- "PySide2.QtSql.QSqlDatabase.numericalPrecisionPolicy": (),
- "PySide2.QtSql.QSqlDatabase.open": [(), ('str', 'str')],
- "PySide2.QtSql.QSqlDatabase.password": (),
- "PySide2.QtSql.QSqlDatabase.port": (),
- "PySide2.QtSql.QSqlDatabase.primaryIndex": ('str',),
- "PySide2.QtSql.QSqlDatabase.record": ('str',),
- "PySide2.QtSql.QSqlDatabase.registerSqlDriver": ('str', 'PySide2.QtSql.QSqlDriverCreatorBase'),
- "PySide2.QtSql.QSqlDatabase.removeDatabase": ('str',),
- "PySide2.QtSql.QSqlDatabase.rollback": (),
- "PySide2.QtSql.QSqlDatabase.setConnectOptions": ('str',),
- "PySide2.QtSql.QSqlDatabase.setDatabaseName": ('str',),
- "PySide2.QtSql.QSqlDatabase.setHostName": ('str',),
- "PySide2.QtSql.QSqlDatabase.setNumericalPrecisionPolicy": ('PySide2.QtSql.QSql.NumericalPrecisionPolicy',),
- "PySide2.QtSql.QSqlDatabase.setPassword": ('str',),
- "PySide2.QtSql.QSqlDatabase.setPort": ('int',),
- "PySide2.QtSql.QSqlDatabase.setUserName": ('str',),
- "PySide2.QtSql.QSqlDatabase.tables": ('PySide2.QtSql.QSql.TableType',),
- "PySide2.QtSql.QSqlDatabase.transaction": (),
- "PySide2.QtSql.QSqlDatabase.userName": (),
-# class PySide2.QtSql.QSqlDriver:
-# class PySide2.QtSql.QSqlDriver.DbmsType:
-# class PySide2.QtSql.QSqlDriver.DriverFeature:
-# class PySide2.QtSql.QSqlDriver.IdentifierType:
-# class PySide2.QtSql.QSqlDriver.NotificationSource:
-# class PySide2.QtSql.QSqlDriver.StatementType:
- "PySide2.QtSql.QSqlDriver.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSql.QSqlDriver.beginTransaction": (),
- "PySide2.QtSql.QSqlDriver.cancelQuery": (),
- "PySide2.QtSql.QSqlDriver.close": (),
- "PySide2.QtSql.QSqlDriver.commitTransaction": (),
- "PySide2.QtSql.QSqlDriver.createResult": (),
- "PySide2.QtSql.QSqlDriver.dbmsType": (),
- "PySide2.QtSql.QSqlDriver.escapeIdentifier": ('str', 'PySide2.QtSql.QSqlDriver.IdentifierType'),
- "PySide2.QtSql.QSqlDriver.formatValue": ('PySide2.QtSql.QSqlField', 'bool'),
- "PySide2.QtSql.QSqlDriver.hasFeature": ('PySide2.QtSql.QSqlDriver.DriverFeature',),
- "PySide2.QtSql.QSqlDriver.isIdentifierEscaped": ('str', 'PySide2.QtSql.QSqlDriver.IdentifierType'),
- "PySide2.QtSql.QSqlDriver.isOpen": (),
- "PySide2.QtSql.QSqlDriver.isOpenError": (),
- "PySide2.QtSql.QSqlDriver.lastError": (),
- "PySide2.QtSql.QSqlDriver.numericalPrecisionPolicy": (),
- "PySide2.QtSql.QSqlDriver.open": ('str', 'str', 'str', 'str', 'int', 'str'),
- "PySide2.QtSql.QSqlDriver.primaryIndex": ('str',),
- "PySide2.QtSql.QSqlDriver.record": ('str',),
- "PySide2.QtSql.QSqlDriver.rollbackTransaction": (),
- "PySide2.QtSql.QSqlDriver.setLastError": ('PySide2.QtSql.QSqlError',),
- "PySide2.QtSql.QSqlDriver.setNumericalPrecisionPolicy": ('PySide2.QtSql.QSql.NumericalPrecisionPolicy',),
- "PySide2.QtSql.QSqlDriver.setOpen": ('bool',),
- "PySide2.QtSql.QSqlDriver.setOpenError": ('bool',),
- "PySide2.QtSql.QSqlDriver.sqlStatement": ('PySide2.QtSql.QSqlDriver.StatementType', 'str', 'PySide2.QtSql.QSqlRecord', 'bool'),
- "PySide2.QtSql.QSqlDriver.stripDelimiters": ('str', 'PySide2.QtSql.QSqlDriver.IdentifierType'),
- "PySide2.QtSql.QSqlDriver.subscribeToNotification": ('str',),
- "PySide2.QtSql.QSqlDriver.subscribedToNotifications": (),
- "PySide2.QtSql.QSqlDriver.tables": ('PySide2.QtSql.QSql.TableType',),
- "PySide2.QtSql.QSqlDriver.unsubscribeFromNotification": ('str',),
-# class PySide2.QtSql.QSqlDriverCreatorBase:
- "PySide2.QtSql.QSqlDriverCreatorBase.__init__": (),
- "PySide2.QtSql.QSqlDriverCreatorBase.createObject": (),
-# class PySide2.QtSql.QSqlError:
-# class PySide2.QtSql.QSqlError.ErrorType:
- "PySide2.QtSql.QSqlError.__init__": [('PySide2.QtSql.QSqlError',), ('str', 'str', 'PySide2.QtSql.QSqlError.ErrorType', 'int'), ('str', 'str', 'PySide2.QtSql.QSqlError.ErrorType', 'str')],
- "PySide2.QtSql.QSqlError.__copy__": (),
- "PySide2.QtSql.QSqlError.databaseText": (),
- "PySide2.QtSql.QSqlError.driverText": (),
- "PySide2.QtSql.QSqlError.isValid": (),
- "PySide2.QtSql.QSqlError.nativeErrorCode": (),
- "PySide2.QtSql.QSqlError.number": (),
- "PySide2.QtSql.QSqlError.setDatabaseText": ('str',),
- "PySide2.QtSql.QSqlError.setDriverText": ('str',),
- "PySide2.QtSql.QSqlError.setNumber": ('int',),
- "PySide2.QtSql.QSqlError.setType": ('PySide2.QtSql.QSqlError.ErrorType',),
- "PySide2.QtSql.QSqlError.swap": ('PySide2.QtSql.QSqlError',),
- "PySide2.QtSql.QSqlError.text": (),
- "PySide2.QtSql.QSqlError.type": (),
-# class PySide2.QtSql.QSqlField:
-# class PySide2.QtSql.QSqlField.RequiredStatus:
- "PySide2.QtSql.QSqlField.__init__": [('PySide2.QtSql.QSqlField',), ('str', 'type'), ('str', 'type', 'str')],
- "PySide2.QtSql.QSqlField.__copy__": (),
- "PySide2.QtSql.QSqlField.clear": (),
- "PySide2.QtSql.QSqlField.defaultValue": (),
- "PySide2.QtSql.QSqlField.isAutoValue": (),
- "PySide2.QtSql.QSqlField.isGenerated": (),
- "PySide2.QtSql.QSqlField.isNull": (),
- "PySide2.QtSql.QSqlField.isReadOnly": (),
- "PySide2.QtSql.QSqlField.isValid": (),
- "PySide2.QtSql.QSqlField.length": (),
- "PySide2.QtSql.QSqlField.name": (),
- "PySide2.QtSql.QSqlField.precision": (),
- "PySide2.QtSql.QSqlField.requiredStatus": (),
- "PySide2.QtSql.QSqlField.setAutoValue": ('bool',),
- "PySide2.QtSql.QSqlField.setDefaultValue": ('typing.Any',),
- "PySide2.QtSql.QSqlField.setGenerated": ('bool',),
- "PySide2.QtSql.QSqlField.setLength": ('int',),
- "PySide2.QtSql.QSqlField.setName": ('str',),
- "PySide2.QtSql.QSqlField.setPrecision": ('int',),
- "PySide2.QtSql.QSqlField.setReadOnly": ('bool',),
- "PySide2.QtSql.QSqlField.setRequired": ('bool',),
- "PySide2.QtSql.QSqlField.setRequiredStatus": ('PySide2.QtSql.QSqlField.RequiredStatus',),
- "PySide2.QtSql.QSqlField.setSqlType": ('int',),
- "PySide2.QtSql.QSqlField.setTableName": ('str',),
- "PySide2.QtSql.QSqlField.setType": ('type',),
- "PySide2.QtSql.QSqlField.setValue": ('typing.Any',),
- "PySide2.QtSql.QSqlField.tableName": (),
- "PySide2.QtSql.QSqlField.type": (),
- "PySide2.QtSql.QSqlField.typeID": (),
- "PySide2.QtSql.QSqlField.value": (),
-# class PySide2.QtSql.QSqlIndex:
- "PySide2.QtSql.QSqlIndex.__init__": [('PySide2.QtSql.QSqlIndex',), ('str', 'str')],
- "PySide2.QtSql.QSqlIndex.__copy__": (),
- "PySide2.QtSql.QSqlIndex.append": [('PySide2.QtSql.QSqlField',), ('PySide2.QtSql.QSqlField', 'bool')],
- "PySide2.QtSql.QSqlIndex.cursorName": (),
- "PySide2.QtSql.QSqlIndex.isDescending": ('int',),
- "PySide2.QtSql.QSqlIndex.name": (),
- "PySide2.QtSql.QSqlIndex.setCursorName": ('str',),
- "PySide2.QtSql.QSqlIndex.setDescending": ('int', 'bool'),
- "PySide2.QtSql.QSqlIndex.setName": ('str',),
-# class PySide2.QtSql.QSqlQuery:
-# class PySide2.QtSql.QSqlQuery.BatchExecutionMode:
- "PySide2.QtSql.QSqlQuery.__init__": [('PySide2.QtSql.QSqlDatabase',), ('PySide2.QtSql.QSqlQuery',), ('PySide2.QtSql.QSqlResult',), ('str', 'PySide2.QtSql.QSqlDatabase')],
- "PySide2.QtSql.QSqlQuery.__copy__": (),
- "PySide2.QtSql.QSqlQuery.addBindValue": ('typing.Any', 'PySide2.QtSql.QSql.ParamType'),
- "PySide2.QtSql.QSqlQuery.at": (),
- "PySide2.QtSql.QSqlQuery.bindValue": [('int', 'typing.Any', 'PySide2.QtSql.QSql.ParamType'), ('str', 'typing.Any', 'PySide2.QtSql.QSql.ParamType')],
- "PySide2.QtSql.QSqlQuery.boundValue": [('int',), ('str',)],
- "PySide2.QtSql.QSqlQuery.boundValues": (),
- "PySide2.QtSql.QSqlQuery.clear": (),
- "PySide2.QtSql.QSqlQuery.driver": (),
- "PySide2.QtSql.QSqlQuery.execBatch": ('PySide2.QtSql.QSqlQuery.BatchExecutionMode',),
- "PySide2.QtSql.QSqlQuery.exec_": [(), ('str',)],
- "PySide2.QtSql.QSqlQuery.executedQuery": (),
- "PySide2.QtSql.QSqlQuery.finish": (),
- "PySide2.QtSql.QSqlQuery.first": (),
- "PySide2.QtSql.QSqlQuery.isActive": (),
- "PySide2.QtSql.QSqlQuery.isForwardOnly": (),
- "PySide2.QtSql.QSqlQuery.isNull": [('int',), ('str',)],
- "PySide2.QtSql.QSqlQuery.isSelect": (),
- "PySide2.QtSql.QSqlQuery.isValid": (),
- "PySide2.QtSql.QSqlQuery.last": (),
- "PySide2.QtSql.QSqlQuery.lastError": (),
- "PySide2.QtSql.QSqlQuery.lastInsertId": (),
- "PySide2.QtSql.QSqlQuery.lastQuery": (),
- "PySide2.QtSql.QSqlQuery.nextResult": (),
- "PySide2.QtSql.QSqlQuery.numRowsAffected": (),
- "PySide2.QtSql.QSqlQuery.numericalPrecisionPolicy": (),
- "PySide2.QtSql.QSqlQuery.prepare": ('str',),
- "PySide2.QtSql.QSqlQuery.previous": (),
- "PySide2.QtSql.QSqlQuery.record": (),
- "PySide2.QtSql.QSqlQuery.result": (),
- "PySide2.QtSql.QSqlQuery.seek": ('int', 'bool'),
- "PySide2.QtSql.QSqlQuery.setForwardOnly": ('bool',),
- "PySide2.QtSql.QSqlQuery.setNumericalPrecisionPolicy": ('PySide2.QtSql.QSql.NumericalPrecisionPolicy',),
- "PySide2.QtSql.QSqlQuery.size": (),
- "PySide2.QtSql.QSqlQuery.value": [('int',), ('str',)],
-# class PySide2.QtSql.QSqlQueryModel:
- "PySide2.QtSql.QSqlQueryModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSql.QSqlQueryModel.beginInsertColumns": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtSql.QSqlQueryModel.beginInsertRows": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtSql.QSqlQueryModel.beginRemoveColumns": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtSql.QSqlQueryModel.beginRemoveRows": ('PySide2.QtCore.QModelIndex', 'int', 'int'),
- "PySide2.QtSql.QSqlQueryModel.beginResetModel": (),
- "PySide2.QtSql.QSqlQueryModel.canFetchMore": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtSql.QSqlQueryModel.clear": (),
- "PySide2.QtSql.QSqlQueryModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtSql.QSqlQueryModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtSql.QSqlQueryModel.endInsertColumns": (),
- "PySide2.QtSql.QSqlQueryModel.endInsertRows": (),
- "PySide2.QtSql.QSqlQueryModel.endRemoveColumns": (),
- "PySide2.QtSql.QSqlQueryModel.endRemoveRows": (),
- "PySide2.QtSql.QSqlQueryModel.endResetModel": (),
- "PySide2.QtSql.QSqlQueryModel.fetchMore": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtSql.QSqlQueryModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtSql.QSqlQueryModel.indexInQuery": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtSql.QSqlQueryModel.insertColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtSql.QSqlQueryModel.lastError": (),
- "PySide2.QtSql.QSqlQueryModel.query": (),
- "PySide2.QtSql.QSqlQueryModel.queryChange": (),
- "PySide2.QtSql.QSqlQueryModel.record": [(), ('int',)],
- "PySide2.QtSql.QSqlQueryModel.removeColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtSql.QSqlQueryModel.roleNames": (),
- "PySide2.QtSql.QSqlQueryModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtSql.QSqlQueryModel.setHeaderData": ('int', 'PySide2.QtCore.Qt.Orientation', 'typing.Any', 'int'),
- "PySide2.QtSql.QSqlQueryModel.setLastError": ('PySide2.QtSql.QSqlError',),
- "PySide2.QtSql.QSqlQueryModel.setQuery": [('PySide2.QtSql.QSqlQuery',), ('str', 'PySide2.QtSql.QSqlDatabase')],
-# class PySide2.QtSql.QSqlRecord:
- "PySide2.QtSql.QSqlRecord.__init__": [(), ('PySide2.QtSql.QSqlRecord',)],
- "PySide2.QtSql.QSqlRecord.__copy__": (),
- "PySide2.QtSql.QSqlRecord.append": ('PySide2.QtSql.QSqlField',),
- "PySide2.QtSql.QSqlRecord.clear": (),
- "PySide2.QtSql.QSqlRecord.clearValues": (),
- "PySide2.QtSql.QSqlRecord.contains": ('str',),
- "PySide2.QtSql.QSqlRecord.count": (),
- "PySide2.QtSql.QSqlRecord.field": [('int',), ('str',)],
- "PySide2.QtSql.QSqlRecord.fieldName": ('int',),
- "PySide2.QtSql.QSqlRecord.indexOf": ('str',),
- "PySide2.QtSql.QSqlRecord.insert": ('int', 'PySide2.QtSql.QSqlField'),
- "PySide2.QtSql.QSqlRecord.isEmpty": (),
- "PySide2.QtSql.QSqlRecord.isGenerated": [('int',), ('str',)],
- "PySide2.QtSql.QSqlRecord.isNull": [('int',), ('str',)],
- "PySide2.QtSql.QSqlRecord.keyValues": ('PySide2.QtSql.QSqlRecord',),
- "PySide2.QtSql.QSqlRecord.remove": ('int',),
- "PySide2.QtSql.QSqlRecord.replace": ('int', 'PySide2.QtSql.QSqlField'),
- "PySide2.QtSql.QSqlRecord.setGenerated": [('int', 'bool'), ('str', 'bool')],
- "PySide2.QtSql.QSqlRecord.setNull": [('int',), ('str',)],
- "PySide2.QtSql.QSqlRecord.setValue": [('int', 'typing.Any'), ('str', 'typing.Any')],
- "PySide2.QtSql.QSqlRecord.value": [('int',), ('str',)],
-# class PySide2.QtSql.QSqlRelation:
- "PySide2.QtSql.QSqlRelation.__init__": [(), ('PySide2.QtSql.QSqlRelation',), ('str', 'str', 'str')],
- "PySide2.QtSql.QSqlRelation.__copy__": (),
- "PySide2.QtSql.QSqlRelation.displayColumn": (),
- "PySide2.QtSql.QSqlRelation.indexColumn": (),
- "PySide2.QtSql.QSqlRelation.isValid": (),
- "PySide2.QtSql.QSqlRelation.swap": ('PySide2.QtSql.QSqlRelation',),
- "PySide2.QtSql.QSqlRelation.tableName": (),
-# class PySide2.QtSql.QSqlRelationalDelegate:
- "PySide2.QtSql.QSqlRelationalDelegate.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSql.QSqlRelationalDelegate.createEditor": ('PySide2.QtWidgets.QWidget', 'PySide2.QtWidgets.QStyleOptionViewItem', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtSql.QSqlRelationalDelegate.setEditorData": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtSql.QSqlRelationalDelegate.setModelData": ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QAbstractItemModel', 'PySide2.QtCore.QModelIndex'),
-# class PySide2.QtSql.QSqlRelationalTableModel:
-# class PySide2.QtSql.QSqlRelationalTableModel.JoinMode:
- "PySide2.QtSql.QSqlRelationalTableModel.__init__": ('PySide2.QtCore.QObject', 'PySide2.QtSql.QSqlDatabase'),
- "PySide2.QtSql.QSqlRelationalTableModel.clear": (),
- "PySide2.QtSql.QSqlRelationalTableModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtSql.QSqlRelationalTableModel.insertRowIntoTable": ('PySide2.QtSql.QSqlRecord',),
- "PySide2.QtSql.QSqlRelationalTableModel.orderByClause": (),
- "PySide2.QtSql.QSqlRelationalTableModel.relation": ('int',),
- "PySide2.QtSql.QSqlRelationalTableModel.relationModel": ('int',),
- "PySide2.QtSql.QSqlRelationalTableModel.removeColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtSql.QSqlRelationalTableModel.revertRow": ('int',),
- "PySide2.QtSql.QSqlRelationalTableModel.select": (),
- "PySide2.QtSql.QSqlRelationalTableModel.selectStatement": (),
- "PySide2.QtSql.QSqlRelationalTableModel.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
- "PySide2.QtSql.QSqlRelationalTableModel.setJoinMode": ('PySide2.QtSql.QSqlRelationalTableModel.JoinMode',),
- "PySide2.QtSql.QSqlRelationalTableModel.setRelation": ('int', 'PySide2.QtSql.QSqlRelation'),
- "PySide2.QtSql.QSqlRelationalTableModel.setTable": ('str',),
- "PySide2.QtSql.QSqlRelationalTableModel.updateRowInTable": ('int', 'PySide2.QtSql.QSqlRecord'),
-# class PySide2.QtSql.QSqlResult:
-# class PySide2.QtSql.QSqlResult.BindingSyntax:
- "PySide2.QtSql.QSqlResult.__init__": ('PySide2.QtSql.QSqlDriver',),
- "PySide2.QtSql.QSqlResult.addBindValue": ('typing.Any', 'PySide2.QtSql.QSql.ParamType'),
- "PySide2.QtSql.QSqlResult.at": (),
- "PySide2.QtSql.QSqlResult.bindValue": [('int', 'typing.Any', 'PySide2.QtSql.QSql.ParamType'), ('str', 'typing.Any', 'PySide2.QtSql.QSql.ParamType')],
- "PySide2.QtSql.QSqlResult.bindValueType": [('int',), ('str',)],
- "PySide2.QtSql.QSqlResult.bindingSyntax": (),
- "PySide2.QtSql.QSqlResult.boundValue": [('int',), ('str',)],
- "PySide2.QtSql.QSqlResult.boundValueCount": (),
- "PySide2.QtSql.QSqlResult.boundValueName": ('int',),
- "PySide2.QtSql.QSqlResult.boundValues": (),
- "PySide2.QtSql.QSqlResult.clear": (),
- "PySide2.QtSql.QSqlResult.data": ('int',),
- "PySide2.QtSql.QSqlResult.detachFromResultSet": (),
- "PySide2.QtSql.QSqlResult.driver": (),
- "PySide2.QtSql.QSqlResult.execBatch": ('bool',),
- "PySide2.QtSql.QSqlResult.exec_": (),
- "PySide2.QtSql.QSqlResult.executedQuery": (),
- "PySide2.QtSql.QSqlResult.fetch": ('int',),
- "PySide2.QtSql.QSqlResult.fetchFirst": (),
- "PySide2.QtSql.QSqlResult.fetchLast": (),
- "PySide2.QtSql.QSqlResult.fetchNext": (),
- "PySide2.QtSql.QSqlResult.fetchPrevious": (),
- "PySide2.QtSql.QSqlResult.handle": (),
- "PySide2.QtSql.QSqlResult.hasOutValues": (),
- "PySide2.QtSql.QSqlResult.isActive": (),
- "PySide2.QtSql.QSqlResult.isForwardOnly": (),
- "PySide2.QtSql.QSqlResult.isNull": ('int',),
- "PySide2.QtSql.QSqlResult.isSelect": (),
- "PySide2.QtSql.QSqlResult.isValid": (),
- "PySide2.QtSql.QSqlResult.lastError": (),
- "PySide2.QtSql.QSqlResult.lastInsertId": (),
- "PySide2.QtSql.QSqlResult.lastQuery": (),
- "PySide2.QtSql.QSqlResult.nextResult": (),
- "PySide2.QtSql.QSqlResult.numRowsAffected": (),
- "PySide2.QtSql.QSqlResult.numericalPrecisionPolicy": (),
- "PySide2.QtSql.QSqlResult.prepare": ('str',),
- "PySide2.QtSql.QSqlResult.record": (),
- "PySide2.QtSql.QSqlResult.reset": ('str',),
- "PySide2.QtSql.QSqlResult.resetBindCount": (),
- "PySide2.QtSql.QSqlResult.savePrepare": ('str',),
- "PySide2.QtSql.QSqlResult.setActive": ('bool',),
- "PySide2.QtSql.QSqlResult.setAt": ('int',),
- "PySide2.QtSql.QSqlResult.setForwardOnly": ('bool',),
- "PySide2.QtSql.QSqlResult.setLastError": ('PySide2.QtSql.QSqlError',),
- "PySide2.QtSql.QSqlResult.setNumericalPrecisionPolicy": ('PySide2.QtSql.QSql.NumericalPrecisionPolicy',),
- "PySide2.QtSql.QSqlResult.setQuery": ('str',),
- "PySide2.QtSql.QSqlResult.setSelect": ('bool',),
- "PySide2.QtSql.QSqlResult.size": (),
-# class PySide2.QtSql.QSqlTableModel:
-# class PySide2.QtSql.QSqlTableModel.EditStrategy:
- "PySide2.QtSql.QSqlTableModel.__init__": ('PySide2.QtCore.QObject', 'PySide2.QtSql.QSqlDatabase'),
- "PySide2.QtSql.QSqlTableModel.clear": (),
- "PySide2.QtSql.QSqlTableModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtSql.QSqlTableModel.database": (),
- "PySide2.QtSql.QSqlTableModel.deleteRowFromTable": ('int',),
- "PySide2.QtSql.QSqlTableModel.editStrategy": (),
- "PySide2.QtSql.QSqlTableModel.fieldIndex": ('str',),
- "PySide2.QtSql.QSqlTableModel.filter": (),
- "PySide2.QtSql.QSqlTableModel.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtSql.QSqlTableModel.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtSql.QSqlTableModel.indexInQuery": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtSql.QSqlTableModel.insertRecord": ('int', 'PySide2.QtSql.QSqlRecord'),
- "PySide2.QtSql.QSqlTableModel.insertRowIntoTable": ('PySide2.QtSql.QSqlRecord',),
- "PySide2.QtSql.QSqlTableModel.insertRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtSql.QSqlTableModel.isDirty": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtSql.QSqlTableModel.orderByClause": (),
- "PySide2.QtSql.QSqlTableModel.primaryKey": (),
- "PySide2.QtSql.QSqlTableModel.primaryValues": ('int',),
- "PySide2.QtSql.QSqlTableModel.record": [(), ('int',)],
- "PySide2.QtSql.QSqlTableModel.removeColumns": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtSql.QSqlTableModel.removeRows": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtSql.QSqlTableModel.revert": (),
- "PySide2.QtSql.QSqlTableModel.revertAll": (),
- "PySide2.QtSql.QSqlTableModel.revertRow": ('int',),
- "PySide2.QtSql.QSqlTableModel.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtSql.QSqlTableModel.select": (),
- "PySide2.QtSql.QSqlTableModel.selectRow": ('int',),
- "PySide2.QtSql.QSqlTableModel.selectStatement": (),
- "PySide2.QtSql.QSqlTableModel.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
- "PySide2.QtSql.QSqlTableModel.setEditStrategy": ('PySide2.QtSql.QSqlTableModel.EditStrategy',),
- "PySide2.QtSql.QSqlTableModel.setFilter": ('str',),
- "PySide2.QtSql.QSqlTableModel.setPrimaryKey": ('PySide2.QtSql.QSqlIndex',),
- "PySide2.QtSql.QSqlTableModel.setQuery": ('PySide2.QtSql.QSqlQuery',),
- "PySide2.QtSql.QSqlTableModel.setRecord": ('int', 'PySide2.QtSql.QSqlRecord'),
- "PySide2.QtSql.QSqlTableModel.setSort": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtSql.QSqlTableModel.setTable": ('str',),
- "PySide2.QtSql.QSqlTableModel.sort": ('int', 'PySide2.QtCore.Qt.SortOrder'),
- "PySide2.QtSql.QSqlTableModel.submit": (),
- "PySide2.QtSql.QSqlTableModel.submitAll": (),
- "PySide2.QtSql.QSqlTableModel.tableName": (),
- "PySide2.QtSql.QSqlTableModel.updateRowInTable": ('int', 'PySide2.QtSql.QSqlRecord'),
- }) if "PySide2.QtSql" in sys.modules else None
-# Module PySide2.QtNetwork
-sig_dict.update({
-# class PySide2.QtNetwork.QAbstractNetworkCache:
- "PySide2.QtNetwork.QAbstractNetworkCache.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QAbstractNetworkCache.cacheSize": (),
- "PySide2.QtNetwork.QAbstractNetworkCache.clear": (),
- "PySide2.QtNetwork.QAbstractNetworkCache.data": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QAbstractNetworkCache.insert": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtNetwork.QAbstractNetworkCache.metaData": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QAbstractNetworkCache.prepare": ('PySide2.QtNetwork.QNetworkCacheMetaData',),
- "PySide2.QtNetwork.QAbstractNetworkCache.remove": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QAbstractNetworkCache.updateMetaData": ('PySide2.QtNetwork.QNetworkCacheMetaData',),
-# class PySide2.QtNetwork.QAbstractSocket:
-# class PySide2.QtNetwork.QAbstractSocket.BindFlag:
-# class PySide2.QtNetwork.QAbstractSocket.BindMode:
-# class PySide2.QtNetwork.QAbstractSocket.NetworkLayerProtocol:
-# class PySide2.QtNetwork.QAbstractSocket.PauseMode:
-# class PySide2.QtNetwork.QAbstractSocket.PauseModes:
-# class PySide2.QtNetwork.QAbstractSocket.SocketError:
-# class PySide2.QtNetwork.QAbstractSocket.SocketOption:
-# class PySide2.QtNetwork.QAbstractSocket.SocketState:
-# class PySide2.QtNetwork.QAbstractSocket.SocketType:
- "PySide2.QtNetwork.QAbstractSocket.__init__": ('PySide2.QtNetwork.QAbstractSocket.SocketType', 'PySide2.QtCore.QObject'),
- "PySide2.QtNetwork.QAbstractSocket.abort": (),
- "PySide2.QtNetwork.QAbstractSocket.atEnd": (),
- "PySide2.QtNetwork.QAbstractSocket.bind": [('PySide2.QtNetwork.QHostAddress', 'int', 'PySide2.QtNetwork.QAbstractSocket.BindMode'), ('int', 'PySide2.QtNetwork.QAbstractSocket.BindMode')],
- "PySide2.QtNetwork.QAbstractSocket.bytesAvailable": (),
- "PySide2.QtNetwork.QAbstractSocket.bytesToWrite": (),
- "PySide2.QtNetwork.QAbstractSocket.canReadLine": (),
- "PySide2.QtNetwork.QAbstractSocket.close": (),
- "PySide2.QtNetwork.QAbstractSocket.connectToHost": [('PySide2.QtNetwork.QHostAddress', 'int', 'PySide2.QtCore.QIODevice.OpenMode'), ('str', 'int', 'PySide2.QtCore.QIODevice.OpenMode', 'PySide2.QtNetwork.QAbstractSocket.NetworkLayerProtocol')],
- "PySide2.QtNetwork.QAbstractSocket.disconnectFromHost": (),
- "PySide2.QtNetwork.QAbstractSocket.error": (),
- "PySide2.QtNetwork.QAbstractSocket.flush": (),
- "PySide2.QtNetwork.QAbstractSocket.isSequential": (),
- "PySide2.QtNetwork.QAbstractSocket.isValid": (),
- "PySide2.QtNetwork.QAbstractSocket.localAddress": (),
- "PySide2.QtNetwork.QAbstractSocket.localPort": (),
- "PySide2.QtNetwork.QAbstractSocket.pauseMode": (),
- "PySide2.QtNetwork.QAbstractSocket.peerAddress": (),
- "PySide2.QtNetwork.QAbstractSocket.peerName": (),
- "PySide2.QtNetwork.QAbstractSocket.peerPort": (),
- "PySide2.QtNetwork.QAbstractSocket.protocolTag": (),
- "PySide2.QtNetwork.QAbstractSocket.proxy": (),
- "PySide2.QtNetwork.QAbstractSocket.readBufferSize": (),
- "PySide2.QtNetwork.QAbstractSocket.readData": ('str', 'int'),
- "PySide2.QtNetwork.QAbstractSocket.readLineData": ('str', 'int'),
- "PySide2.QtNetwork.QAbstractSocket.resume": (),
- "PySide2.QtNetwork.QAbstractSocket.setLocalAddress": ('PySide2.QtNetwork.QHostAddress',),
- "PySide2.QtNetwork.QAbstractSocket.setLocalPort": ('int',),
- "PySide2.QtNetwork.QAbstractSocket.setPauseMode": ('PySide2.QtNetwork.QAbstractSocket.PauseModes',),
- "PySide2.QtNetwork.QAbstractSocket.setPeerAddress": ('PySide2.QtNetwork.QHostAddress',),
- "PySide2.QtNetwork.QAbstractSocket.setPeerName": ('str',),
- "PySide2.QtNetwork.QAbstractSocket.setPeerPort": ('int',),
- "PySide2.QtNetwork.QAbstractSocket.setProtocolTag": ('str',),
- "PySide2.QtNetwork.QAbstractSocket.setProxy": ('PySide2.QtNetwork.QNetworkProxy',),
- "PySide2.QtNetwork.QAbstractSocket.setReadBufferSize": ('int',),
- "PySide2.QtNetwork.QAbstractSocket.setSocketDescriptor": ('int', 'PySide2.QtNetwork.QAbstractSocket.SocketState', 'PySide2.QtCore.QIODevice.OpenMode'),
- "PySide2.QtNetwork.QAbstractSocket.setSocketError": ('PySide2.QtNetwork.QAbstractSocket.SocketError',),
- "PySide2.QtNetwork.QAbstractSocket.setSocketOption": ('PySide2.QtNetwork.QAbstractSocket.SocketOption', 'typing.Any'),
- "PySide2.QtNetwork.QAbstractSocket.setSocketState": ('PySide2.QtNetwork.QAbstractSocket.SocketState',),
- "PySide2.QtNetwork.QAbstractSocket.socketDescriptor": (),
- "PySide2.QtNetwork.QAbstractSocket.socketOption": ('PySide2.QtNetwork.QAbstractSocket.SocketOption',),
- "PySide2.QtNetwork.QAbstractSocket.socketType": (),
- "PySide2.QtNetwork.QAbstractSocket.state": (),
- "PySide2.QtNetwork.QAbstractSocket.waitForBytesWritten": ('int',),
- "PySide2.QtNetwork.QAbstractSocket.waitForConnected": ('int',),
- "PySide2.QtNetwork.QAbstractSocket.waitForDisconnected": ('int',),
- "PySide2.QtNetwork.QAbstractSocket.waitForReadyRead": ('int',),
- "PySide2.QtNetwork.QAbstractSocket.writeData": ('str', 'int'),
-# class PySide2.QtNetwork.QAuthenticator:
- "PySide2.QtNetwork.QAuthenticator.__init__": [(), ('PySide2.QtNetwork.QAuthenticator',)],
- "PySide2.QtNetwork.QAuthenticator.__copy__": (),
- "PySide2.QtNetwork.QAuthenticator.isNull": (),
- "PySide2.QtNetwork.QAuthenticator.option": ('str',),
- "PySide2.QtNetwork.QAuthenticator.options": (),
- "PySide2.QtNetwork.QAuthenticator.password": (),
- "PySide2.QtNetwork.QAuthenticator.realm": (),
- "PySide2.QtNetwork.QAuthenticator.setOption": ('str', 'typing.Any'),
- "PySide2.QtNetwork.QAuthenticator.setPassword": ('str',),
- "PySide2.QtNetwork.QAuthenticator.setRealm": ('str',),
- "PySide2.QtNetwork.QAuthenticator.setUser": ('str',),
- "PySide2.QtNetwork.QAuthenticator.user": (),
-# class PySide2.QtNetwork.QDnsDomainNameRecord:
- "PySide2.QtNetwork.QDnsDomainNameRecord.__init__": [(), ('PySide2.QtNetwork.QDnsDomainNameRecord',)],
- "PySide2.QtNetwork.QDnsDomainNameRecord.__copy__": (),
- "PySide2.QtNetwork.QDnsDomainNameRecord.name": (),
- "PySide2.QtNetwork.QDnsDomainNameRecord.swap": ('PySide2.QtNetwork.QDnsDomainNameRecord',),
- "PySide2.QtNetwork.QDnsDomainNameRecord.timeToLive": (),
- "PySide2.QtNetwork.QDnsDomainNameRecord.value": (),
-# class PySide2.QtNetwork.QDnsHostAddressRecord:
- "PySide2.QtNetwork.QDnsHostAddressRecord.__init__": [(), ('PySide2.QtNetwork.QDnsHostAddressRecord',)],
- "PySide2.QtNetwork.QDnsHostAddressRecord.__copy__": (),
- "PySide2.QtNetwork.QDnsHostAddressRecord.name": (),
- "PySide2.QtNetwork.QDnsHostAddressRecord.swap": ('PySide2.QtNetwork.QDnsHostAddressRecord',),
- "PySide2.QtNetwork.QDnsHostAddressRecord.timeToLive": (),
- "PySide2.QtNetwork.QDnsHostAddressRecord.value": (),
-# class PySide2.QtNetwork.QDnsLookup:
-# class PySide2.QtNetwork.QDnsLookup.Error:
-# class PySide2.QtNetwork.QDnsLookup.Type:
- "PySide2.QtNetwork.QDnsLookup.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtNetwork.QDnsLookup.Type', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtNetwork.QDnsLookup.Type', 'str', 'PySide2.QtNetwork.QHostAddress', 'PySide2.QtCore.QObject')],
- "PySide2.QtNetwork.QDnsLookup.abort": (),
- "PySide2.QtNetwork.QDnsLookup.canonicalNameRecords": (),
- "PySide2.QtNetwork.QDnsLookup.error": (),
- "PySide2.QtNetwork.QDnsLookup.errorString": (),
- "PySide2.QtNetwork.QDnsLookup.hostAddressRecords": (),
- "PySide2.QtNetwork.QDnsLookup.isFinished": (),
- "PySide2.QtNetwork.QDnsLookup.lookup": (),
- "PySide2.QtNetwork.QDnsLookup.mailExchangeRecords": (),
- "PySide2.QtNetwork.QDnsLookup.name": (),
- "PySide2.QtNetwork.QDnsLookup.nameServerRecords": (),
- "PySide2.QtNetwork.QDnsLookup.nameserver": (),
- "PySide2.QtNetwork.QDnsLookup.pointerRecords": (),
- "PySide2.QtNetwork.QDnsLookup.serviceRecords": (),
- "PySide2.QtNetwork.QDnsLookup.setName": ('str',),
- "PySide2.QtNetwork.QDnsLookup.setNameserver": ('PySide2.QtNetwork.QHostAddress',),
- "PySide2.QtNetwork.QDnsLookup.setType": ('PySide2.QtNetwork.QDnsLookup.Type',),
- "PySide2.QtNetwork.QDnsLookup.textRecords": (),
- "PySide2.QtNetwork.QDnsLookup.type": (),
-# class PySide2.QtNetwork.QDnsMailExchangeRecord:
- "PySide2.QtNetwork.QDnsMailExchangeRecord.__init__": [(), ('PySide2.QtNetwork.QDnsMailExchangeRecord',)],
- "PySide2.QtNetwork.QDnsMailExchangeRecord.__copy__": (),
- "PySide2.QtNetwork.QDnsMailExchangeRecord.exchange": (),
- "PySide2.QtNetwork.QDnsMailExchangeRecord.name": (),
- "PySide2.QtNetwork.QDnsMailExchangeRecord.preference": (),
- "PySide2.QtNetwork.QDnsMailExchangeRecord.swap": ('PySide2.QtNetwork.QDnsMailExchangeRecord',),
- "PySide2.QtNetwork.QDnsMailExchangeRecord.timeToLive": (),
-# class PySide2.QtNetwork.QDnsServiceRecord:
- "PySide2.QtNetwork.QDnsServiceRecord.__init__": [(), ('PySide2.QtNetwork.QDnsServiceRecord',)],
- "PySide2.QtNetwork.QDnsServiceRecord.__copy__": (),
- "PySide2.QtNetwork.QDnsServiceRecord.name": (),
- "PySide2.QtNetwork.QDnsServiceRecord.port": (),
- "PySide2.QtNetwork.QDnsServiceRecord.priority": (),
- "PySide2.QtNetwork.QDnsServiceRecord.swap": ('PySide2.QtNetwork.QDnsServiceRecord',),
- "PySide2.QtNetwork.QDnsServiceRecord.target": (),
- "PySide2.QtNetwork.QDnsServiceRecord.timeToLive": (),
- "PySide2.QtNetwork.QDnsServiceRecord.weight": (),
-# class PySide2.QtNetwork.QDnsTextRecord:
- "PySide2.QtNetwork.QDnsTextRecord.__init__": [(), ('PySide2.QtNetwork.QDnsTextRecord',)],
- "PySide2.QtNetwork.QDnsTextRecord.__copy__": (),
- "PySide2.QtNetwork.QDnsTextRecord.name": (),
- "PySide2.QtNetwork.QDnsTextRecord.swap": ('PySide2.QtNetwork.QDnsTextRecord',),
- "PySide2.QtNetwork.QDnsTextRecord.timeToLive": (),
- "PySide2.QtNetwork.QDnsTextRecord.values": (),
-# class PySide2.QtNetwork.QDtls:
-# class PySide2.QtNetwork.QDtls.HandshakeState:
- "PySide2.QtNetwork.QDtls.__init__": ('PySide2.QtNetwork.QSslSocket.SslMode', 'PySide2.QtCore.QObject'),
- "PySide2.QtNetwork.QDtls.abortHandshake": ('PySide2.QtNetwork.QUdpSocket',),
- "PySide2.QtNetwork.QDtls.decryptDatagram": ('PySide2.QtNetwork.QUdpSocket', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtNetwork.QDtls.doHandshake": ('PySide2.QtNetwork.QUdpSocket', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtNetwork.QDtls.dtlsConfiguration": (),
- "PySide2.QtNetwork.QDtls.dtlsError": (),
- "PySide2.QtNetwork.QDtls.dtlsErrorString": (),
- "PySide2.QtNetwork.QDtls.handleTimeout": ('PySide2.QtNetwork.QUdpSocket',),
- "PySide2.QtNetwork.QDtls.handshakeState": (),
- "PySide2.QtNetwork.QDtls.ignoreVerificationErrors": ('typing.List[PySide2.QtNetwork.QSslError]',),
- "PySide2.QtNetwork.QDtls.isConnectionEncrypted": (),
- "PySide2.QtNetwork.QDtls.mtuHint": (),
- "PySide2.QtNetwork.QDtls.peerAddress": (),
- "PySide2.QtNetwork.QDtls.peerPort": (),
- "PySide2.QtNetwork.QDtls.peerVerificationErrors": (),
- "PySide2.QtNetwork.QDtls.peerVerificationName": (),
- "PySide2.QtNetwork.QDtls.resumeHandshake": ('PySide2.QtNetwork.QUdpSocket',),
- "PySide2.QtNetwork.QDtls.sessionCipher": (),
- "PySide2.QtNetwork.QDtls.sessionProtocol": (),
- "PySide2.QtNetwork.QDtls.setDtlsConfiguration": ('PySide2.QtNetwork.QSslConfiguration',),
- "PySide2.QtNetwork.QDtls.setMtuHint": ('int',),
- "PySide2.QtNetwork.QDtls.setPeer": ('PySide2.QtNetwork.QHostAddress', 'int', 'str'),
- "PySide2.QtNetwork.QDtls.setPeerVerificationName": ('str',),
- "PySide2.QtNetwork.QDtls.shutdown": ('PySide2.QtNetwork.QUdpSocket',),
- "PySide2.QtNetwork.QDtls.sslMode": (),
- "PySide2.QtNetwork.QDtls.writeDatagramEncrypted": ('PySide2.QtNetwork.QUdpSocket', 'PySide2.QtCore.QByteArray'),
-# class PySide2.QtNetwork.QDtlsError:
-# class PySide2.QtNetwork.QHostAddress:
-# class PySide2.QtNetwork.QHostAddress.ConversionMode:
-# class PySide2.QtNetwork.QHostAddress.ConversionModeFlag:
-# class PySide2.QtNetwork.QHostAddress.SpecialAddress:
- "PySide2.QtNetwork.QHostAddress.__init__": [(), ('PySide2.QtNetwork.QHostAddress',), ('PySide2.QtNetwork.QHostAddress.SpecialAddress',), ('PySide2.QtNetwork.QIPv6Address',), ('int',), ('str',)],
- "PySide2.QtNetwork.QHostAddress.__copy__": (),
- "PySide2.QtNetwork.QHostAddress.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtNetwork.QHostAddress.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtNetwork.QHostAddress.clear": (),
- "PySide2.QtNetwork.QHostAddress.isBroadcast": (),
- "PySide2.QtNetwork.QHostAddress.isEqual": ('PySide2.QtNetwork.QHostAddress', 'PySide2.QtNetwork.QHostAddress.ConversionMode'),
- "PySide2.QtNetwork.QHostAddress.isGlobal": (),
- "PySide2.QtNetwork.QHostAddress.isInSubnet": [('PySide2.QtNetwork.QHostAddress', 'int'), ('typing.Tuple[PySide2.QtNetwork.QHostAddress, int]',)],
- "PySide2.QtNetwork.QHostAddress.isLinkLocal": (),
- "PySide2.QtNetwork.QHostAddress.isLoopback": (),
- "PySide2.QtNetwork.QHostAddress.isMulticast": (),
- "PySide2.QtNetwork.QHostAddress.isNull": (),
- "PySide2.QtNetwork.QHostAddress.isSiteLocal": (),
- "PySide2.QtNetwork.QHostAddress.isUniqueLocalUnicast": (),
- "PySide2.QtNetwork.QHostAddress.parseSubnet": ('str',),
- "PySide2.QtNetwork.QHostAddress.protocol": (),
- "PySide2.QtNetwork.QHostAddress.scopeId": (),
- "PySide2.QtNetwork.QHostAddress.setAddress": [('PySide2.QtNetwork.QHostAddress.SpecialAddress',), ('PySide2.QtNetwork.QIPv6Address',), ('int',), ('str',)],
- "PySide2.QtNetwork.QHostAddress.setScopeId": ('str',),
- "PySide2.QtNetwork.QHostAddress.swap": ('PySide2.QtNetwork.QHostAddress',),
- "PySide2.QtNetwork.QHostAddress.toIPv4Address": (),
- "PySide2.QtNetwork.QHostAddress.toIPv6Address": (),
- "PySide2.QtNetwork.QHostAddress.toString": (),
-# class PySide2.QtNetwork.QHostInfo:
-# class PySide2.QtNetwork.QHostInfo.HostInfoError:
- "PySide2.QtNetwork.QHostInfo.__init__": [('PySide2.QtNetwork.QHostInfo',), ('int',)],
- "PySide2.QtNetwork.QHostInfo.__copy__": (),
- "PySide2.QtNetwork.QHostInfo.abortHostLookup": ('int',),
- "PySide2.QtNetwork.QHostInfo.addresses": (),
- "PySide2.QtNetwork.QHostInfo.error": (),
- "PySide2.QtNetwork.QHostInfo.errorString": (),
- "PySide2.QtNetwork.QHostInfo.fromName": ('str',),
- "PySide2.QtNetwork.QHostInfo.hostName": (),
- "PySide2.QtNetwork.QHostInfo.localDomainName": (),
- "PySide2.QtNetwork.QHostInfo.localHostName": (),
- "PySide2.QtNetwork.QHostInfo.lookupId": (),
- "PySide2.QtNetwork.QHostInfo.setAddresses": ('typing.Sequence[PySide2.QtNetwork.QHostAddress]',),
- "PySide2.QtNetwork.QHostInfo.setError": ('PySide2.QtNetwork.QHostInfo.HostInfoError',),
- "PySide2.QtNetwork.QHostInfo.setErrorString": ('str',),
- "PySide2.QtNetwork.QHostInfo.setHostName": ('str',),
- "PySide2.QtNetwork.QHostInfo.setLookupId": ('int',),
- "PySide2.QtNetwork.QHostInfo.swap": ('PySide2.QtNetwork.QHostInfo',),
-# class PySide2.QtNetwork.QHstsPolicy:
-# class PySide2.QtNetwork.QHstsPolicy.PolicyFlag:
-# class PySide2.QtNetwork.QHstsPolicy.PolicyFlags:
- "PySide2.QtNetwork.QHstsPolicy.__init__": [(), ('PySide2.QtCore.QDateTime', 'PySide2.QtNetwork.QHstsPolicy.PolicyFlags', 'str', 'PySide2.QtCore.QUrl.ParsingMode'), ('PySide2.QtNetwork.QHstsPolicy',)],
- "PySide2.QtNetwork.QHstsPolicy.__copy__": (),
- "PySide2.QtNetwork.QHstsPolicy.expiry": (),
- "PySide2.QtNetwork.QHstsPolicy.host": ('PySide2.QtCore.QUrl.ComponentFormattingOption',),
- "PySide2.QtNetwork.QHstsPolicy.includesSubDomains": (),
- "PySide2.QtNetwork.QHstsPolicy.isExpired": (),
- "PySide2.QtNetwork.QHstsPolicy.setExpiry": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtNetwork.QHstsPolicy.setHost": ('str', 'PySide2.QtCore.QUrl.ParsingMode'),
- "PySide2.QtNetwork.QHstsPolicy.setIncludesSubDomains": ('bool',),
- "PySide2.QtNetwork.QHstsPolicy.swap": ('PySide2.QtNetwork.QHstsPolicy',),
-# class PySide2.QtNetwork.QHttpMultiPart:
-# class PySide2.QtNetwork.QHttpMultiPart.ContentType:
- "PySide2.QtNetwork.QHttpMultiPart.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtNetwork.QHttpMultiPart.ContentType', 'PySide2.QtCore.QObject')],
- "PySide2.QtNetwork.QHttpMultiPart.append": ('PySide2.QtNetwork.QHttpPart',),
- "PySide2.QtNetwork.QHttpMultiPart.boundary": (),
- "PySide2.QtNetwork.QHttpMultiPart.setBoundary": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QHttpMultiPart.setContentType": ('PySide2.QtNetwork.QHttpMultiPart.ContentType',),
-# class PySide2.QtNetwork.QHttpPart:
- "PySide2.QtNetwork.QHttpPart.__init__": [(), ('PySide2.QtNetwork.QHttpPart',)],
- "PySide2.QtNetwork.QHttpPart.__copy__": (),
- "PySide2.QtNetwork.QHttpPart.setBody": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QHttpPart.setBodyDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtNetwork.QHttpPart.setHeader": ('PySide2.QtNetwork.QNetworkRequest.KnownHeaders', 'typing.Any'),
- "PySide2.QtNetwork.QHttpPart.setRawHeader": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtNetwork.QHttpPart.swap": ('PySide2.QtNetwork.QHttpPart',),
-# class PySide2.QtNetwork.QIPv6Address:
- "PySide2.QtNetwork.QIPv6Address.__init__": [(), ('PySide2.QtNetwork.QIPv6Address',)],
- "PySide2.QtNetwork.QIPv6Address.__copy__": (),
-# class PySide2.QtNetwork.QLocalServer:
-# class PySide2.QtNetwork.QLocalServer.SocketOption:
-# class PySide2.QtNetwork.QLocalServer.SocketOptions:
- "PySide2.QtNetwork.QLocalServer.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QLocalServer.close": (),
- "PySide2.QtNetwork.QLocalServer.errorString": (),
- "PySide2.QtNetwork.QLocalServer.fullServerName": (),
- "PySide2.QtNetwork.QLocalServer.hasPendingConnections": (),
- "PySide2.QtNetwork.QLocalServer.incomingConnection": ('int',),
- "PySide2.QtNetwork.QLocalServer.isListening": (),
- "PySide2.QtNetwork.QLocalServer.listen": [('int',), ('str',)],
- "PySide2.QtNetwork.QLocalServer.maxPendingConnections": (),
- "PySide2.QtNetwork.QLocalServer.nextPendingConnection": (),
- "PySide2.QtNetwork.QLocalServer.removeServer": ('str',),
- "PySide2.QtNetwork.QLocalServer.serverError": (),
- "PySide2.QtNetwork.QLocalServer.serverName": (),
- "PySide2.QtNetwork.QLocalServer.setMaxPendingConnections": ('int',),
- "PySide2.QtNetwork.QLocalServer.setSocketOptions": ('PySide2.QtNetwork.QLocalServer.SocketOptions',),
- "PySide2.QtNetwork.QLocalServer.socketDescriptor": (),
- "PySide2.QtNetwork.QLocalServer.socketOptions": (),
- "PySide2.QtNetwork.QLocalServer.waitForNewConnection": ('int',),
-# class PySide2.QtNetwork.QLocalSocket:
-# class PySide2.QtNetwork.QLocalSocket.LocalSocketError:
-# class PySide2.QtNetwork.QLocalSocket.LocalSocketState:
- "PySide2.QtNetwork.QLocalSocket.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QLocalSocket.abort": (),
- "PySide2.QtNetwork.QLocalSocket.bytesAvailable": (),
- "PySide2.QtNetwork.QLocalSocket.bytesToWrite": (),
- "PySide2.QtNetwork.QLocalSocket.canReadLine": (),
- "PySide2.QtNetwork.QLocalSocket.close": (),
- "PySide2.QtNetwork.QLocalSocket.connectToServer": [('PySide2.QtCore.QIODevice.OpenMode',), ('str', 'PySide2.QtCore.QIODevice.OpenMode')],
- "PySide2.QtNetwork.QLocalSocket.disconnectFromServer": (),
- "PySide2.QtNetwork.QLocalSocket.error": (),
- "PySide2.QtNetwork.QLocalSocket.flush": (),
- "PySide2.QtNetwork.QLocalSocket.fullServerName": (),
- "PySide2.QtNetwork.QLocalSocket.isSequential": (),
- "PySide2.QtNetwork.QLocalSocket.isValid": (),
- "PySide2.QtNetwork.QLocalSocket.open": ('PySide2.QtCore.QIODevice.OpenMode',),
- "PySide2.QtNetwork.QLocalSocket.readBufferSize": (),
- "PySide2.QtNetwork.QLocalSocket.readData": ('str', 'int'),
- "PySide2.QtNetwork.QLocalSocket.serverName": (),
- "PySide2.QtNetwork.QLocalSocket.setReadBufferSize": ('int',),
- "PySide2.QtNetwork.QLocalSocket.setServerName": ('str',),
- "PySide2.QtNetwork.QLocalSocket.setSocketDescriptor": ('int', 'PySide2.QtNetwork.QLocalSocket.LocalSocketState', 'PySide2.QtCore.QIODevice.OpenMode'),
- "PySide2.QtNetwork.QLocalSocket.socketDescriptor": (),
- "PySide2.QtNetwork.QLocalSocket.state": (),
- "PySide2.QtNetwork.QLocalSocket.waitForBytesWritten": ('int',),
- "PySide2.QtNetwork.QLocalSocket.waitForConnected": ('int',),
- "PySide2.QtNetwork.QLocalSocket.waitForDisconnected": ('int',),
- "PySide2.QtNetwork.QLocalSocket.waitForReadyRead": ('int',),
- "PySide2.QtNetwork.QLocalSocket.writeData": ('str', 'int'),
-# class PySide2.QtNetwork.QNetworkAccessManager:
-# class PySide2.QtNetwork.QNetworkAccessManager.NetworkAccessibility:
-# class PySide2.QtNetwork.QNetworkAccessManager.Operation:
- "PySide2.QtNetwork.QNetworkAccessManager.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QNetworkAccessManager.activeConfiguration": (),
- "PySide2.QtNetwork.QNetworkAccessManager.addStrictTransportSecurityHosts": ('typing.List[PySide2.QtNetwork.QHstsPolicy]',),
- "PySide2.QtNetwork.QNetworkAccessManager.autoDeleteReplies": (),
- "PySide2.QtNetwork.QNetworkAccessManager.cache": (),
- "PySide2.QtNetwork.QNetworkAccessManager.clearAccessCache": (),
- "PySide2.QtNetwork.QNetworkAccessManager.clearConnectionCache": (),
- "PySide2.QtNetwork.QNetworkAccessManager.configuration": (),
- "PySide2.QtNetwork.QNetworkAccessManager.connectToHost": ('str', 'int'),
- "PySide2.QtNetwork.QNetworkAccessManager.connectToHostEncrypted": [('str', 'int', 'PySide2.QtNetwork.QSslConfiguration'), ('str', 'int', 'PySide2.QtNetwork.QSslConfiguration', 'str')],
- "PySide2.QtNetwork.QNetworkAccessManager.cookieJar": (),
- "PySide2.QtNetwork.QNetworkAccessManager.createRequest": ('PySide2.QtNetwork.QNetworkAccessManager.Operation', 'PySide2.QtNetwork.QNetworkRequest', 'PySide2.QtCore.QIODevice'),
- "PySide2.QtNetwork.QNetworkAccessManager.deleteResource": ('PySide2.QtNetwork.QNetworkRequest',),
- "PySide2.QtNetwork.QNetworkAccessManager.enableStrictTransportSecurityStore": ('bool', 'str'),
- "PySide2.QtNetwork.QNetworkAccessManager.get": ('PySide2.QtNetwork.QNetworkRequest',),
- "PySide2.QtNetwork.QNetworkAccessManager.head": ('PySide2.QtNetwork.QNetworkRequest',),
- "PySide2.QtNetwork.QNetworkAccessManager.isStrictTransportSecurityEnabled": (),
- "PySide2.QtNetwork.QNetworkAccessManager.isStrictTransportSecurityStoreEnabled": (),
- "PySide2.QtNetwork.QNetworkAccessManager.networkAccessible": (),
- "PySide2.QtNetwork.QNetworkAccessManager.post": [('PySide2.QtNetwork.QNetworkRequest', 'PySide2.QtCore.QByteArray'), ('PySide2.QtNetwork.QNetworkRequest', 'PySide2.QtCore.QIODevice'), ('PySide2.QtNetwork.QNetworkRequest', 'PySide2.QtNetwork.QHttpMultiPart')],
- "PySide2.QtNetwork.QNetworkAccessManager.proxy": (),
- "PySide2.QtNetwork.QNetworkAccessManager.proxyFactory": (),
- "PySide2.QtNetwork.QNetworkAccessManager.put": [('PySide2.QtNetwork.QNetworkRequest', 'PySide2.QtCore.QByteArray'), ('PySide2.QtNetwork.QNetworkRequest', 'PySide2.QtCore.QIODevice'), ('PySide2.QtNetwork.QNetworkRequest', 'PySide2.QtNetwork.QHttpMultiPart')],
- "PySide2.QtNetwork.QNetworkAccessManager.redirectPolicy": (),
- "PySide2.QtNetwork.QNetworkAccessManager.sendCustomRequest": [('PySide2.QtNetwork.QNetworkRequest', 'PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'), ('PySide2.QtNetwork.QNetworkRequest', 'PySide2.QtCore.QByteArray', 'PySide2.QtCore.QIODevice'), ('PySide2.QtNetwork.QNetworkRequest', 'PySide2.QtCore.QByteArray', 'PySide2.QtNetwork.QHttpMultiPart')],
- "PySide2.QtNetwork.QNetworkAccessManager.setAutoDeleteReplies": ('bool',),
- "PySide2.QtNetwork.QNetworkAccessManager.setCache": ('PySide2.QtNetwork.QAbstractNetworkCache',),
- "PySide2.QtNetwork.QNetworkAccessManager.setConfiguration": ('PySide2.QtNetwork.QNetworkConfiguration',),
- "PySide2.QtNetwork.QNetworkAccessManager.setCookieJar": ('PySide2.QtNetwork.QNetworkCookieJar',),
- "PySide2.QtNetwork.QNetworkAccessManager.setNetworkAccessible": ('PySide2.QtNetwork.QNetworkAccessManager.NetworkAccessibility',),
- "PySide2.QtNetwork.QNetworkAccessManager.setProxy": ('PySide2.QtNetwork.QNetworkProxy',),
- "PySide2.QtNetwork.QNetworkAccessManager.setProxyFactory": ('PySide2.QtNetwork.QNetworkProxyFactory',),
- "PySide2.QtNetwork.QNetworkAccessManager.setRedirectPolicy": ('PySide2.QtNetwork.QNetworkRequest.RedirectPolicy',),
- "PySide2.QtNetwork.QNetworkAccessManager.setStrictTransportSecurityEnabled": ('bool',),
- "PySide2.QtNetwork.QNetworkAccessManager.strictTransportSecurityHosts": (),
- "PySide2.QtNetwork.QNetworkAccessManager.supportedSchemes": (),
- "PySide2.QtNetwork.QNetworkAccessManager.supportedSchemesImplementation": (),
-# class PySide2.QtNetwork.QNetworkAddressEntry:
-# class PySide2.QtNetwork.QNetworkAddressEntry.DnsEligibilityStatus:
- "PySide2.QtNetwork.QNetworkAddressEntry.__init__": [(), ('PySide2.QtNetwork.QNetworkAddressEntry',)],
- "PySide2.QtNetwork.QNetworkAddressEntry.__copy__": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.broadcast": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.clearAddressLifetime": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.dnsEligibility": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.ip": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.isLifetimeKnown": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.isPermanent": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.isTemporary": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.netmask": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.preferredLifetime": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.prefixLength": (),
- "PySide2.QtNetwork.QNetworkAddressEntry.setAddressLifetime": ('PySide2.QtCore.QDeadlineTimer', 'PySide2.QtCore.QDeadlineTimer'),
- "PySide2.QtNetwork.QNetworkAddressEntry.setBroadcast": ('PySide2.QtNetwork.QHostAddress',),
- "PySide2.QtNetwork.QNetworkAddressEntry.setDnsEligibility": ('PySide2.QtNetwork.QNetworkAddressEntry.DnsEligibilityStatus',),
- "PySide2.QtNetwork.QNetworkAddressEntry.setIp": ('PySide2.QtNetwork.QHostAddress',),
- "PySide2.QtNetwork.QNetworkAddressEntry.setNetmask": ('PySide2.QtNetwork.QHostAddress',),
- "PySide2.QtNetwork.QNetworkAddressEntry.setPrefixLength": ('int',),
- "PySide2.QtNetwork.QNetworkAddressEntry.swap": ('PySide2.QtNetwork.QNetworkAddressEntry',),
- "PySide2.QtNetwork.QNetworkAddressEntry.validityLifetime": (),
-# class PySide2.QtNetwork.QNetworkCacheMetaData:
- "PySide2.QtNetwork.QNetworkCacheMetaData.__init__": [(), ('PySide2.QtNetwork.QNetworkCacheMetaData',)],
- "PySide2.QtNetwork.QNetworkCacheMetaData.__copy__": (),
- "PySide2.QtNetwork.QNetworkCacheMetaData.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtNetwork.QNetworkCacheMetaData.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtNetwork.QNetworkCacheMetaData.attributes": (),
- "PySide2.QtNetwork.QNetworkCacheMetaData.expirationDate": (),
- "PySide2.QtNetwork.QNetworkCacheMetaData.isValid": (),
- "PySide2.QtNetwork.QNetworkCacheMetaData.lastModified": (),
- "PySide2.QtNetwork.QNetworkCacheMetaData.rawHeaders": (),
- "PySide2.QtNetwork.QNetworkCacheMetaData.saveToDisk": (),
- "PySide2.QtNetwork.QNetworkCacheMetaData.setAttributes": ('typing.Dict[PySide2.QtNetwork.QNetworkRequest.Attribute, typing.Any]',),
- "PySide2.QtNetwork.QNetworkCacheMetaData.setExpirationDate": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtNetwork.QNetworkCacheMetaData.setLastModified": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtNetwork.QNetworkCacheMetaData.setRawHeaders": ('typing.Sequence[typing.Tuple]',),
- "PySide2.QtNetwork.QNetworkCacheMetaData.setSaveToDisk": ('bool',),
- "PySide2.QtNetwork.QNetworkCacheMetaData.setUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QNetworkCacheMetaData.swap": ('PySide2.QtNetwork.QNetworkCacheMetaData',),
- "PySide2.QtNetwork.QNetworkCacheMetaData.url": (),
-# class PySide2.QtNetwork.QNetworkConfiguration:
-# class PySide2.QtNetwork.QNetworkConfiguration.BearerType:
-# class PySide2.QtNetwork.QNetworkConfiguration.Purpose:
-# class PySide2.QtNetwork.QNetworkConfiguration.StateFlag:
-# class PySide2.QtNetwork.QNetworkConfiguration.StateFlags:
-# class PySide2.QtNetwork.QNetworkConfiguration.Type:
- "PySide2.QtNetwork.QNetworkConfiguration.__init__": [(), ('PySide2.QtNetwork.QNetworkConfiguration',)],
- "PySide2.QtNetwork.QNetworkConfiguration.__copy__": (),
- "PySide2.QtNetwork.QNetworkConfiguration.bearerType": (),
- "PySide2.QtNetwork.QNetworkConfiguration.bearerTypeFamily": (),
- "PySide2.QtNetwork.QNetworkConfiguration.bearerTypeName": (),
- "PySide2.QtNetwork.QNetworkConfiguration.children": (),
- "PySide2.QtNetwork.QNetworkConfiguration.connectTimeout": (),
- "PySide2.QtNetwork.QNetworkConfiguration.identifier": (),
- "PySide2.QtNetwork.QNetworkConfiguration.isRoamingAvailable": (),
- "PySide2.QtNetwork.QNetworkConfiguration.isValid": (),
- "PySide2.QtNetwork.QNetworkConfiguration.name": (),
- "PySide2.QtNetwork.QNetworkConfiguration.purpose": (),
- "PySide2.QtNetwork.QNetworkConfiguration.setConnectTimeout": ('int',),
- "PySide2.QtNetwork.QNetworkConfiguration.state": (),
- "PySide2.QtNetwork.QNetworkConfiguration.swap": ('PySide2.QtNetwork.QNetworkConfiguration',),
- "PySide2.QtNetwork.QNetworkConfiguration.type": (),
-# class PySide2.QtNetwork.QNetworkConfigurationManager:
-# class PySide2.QtNetwork.QNetworkConfigurationManager.Capabilities:
-# class PySide2.QtNetwork.QNetworkConfigurationManager.Capability:
- "PySide2.QtNetwork.QNetworkConfigurationManager.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QNetworkConfigurationManager.allConfigurations": ('PySide2.QtNetwork.QNetworkConfiguration.StateFlags',),
- "PySide2.QtNetwork.QNetworkConfigurationManager.capabilities": (),
- "PySide2.QtNetwork.QNetworkConfigurationManager.configurationFromIdentifier": ('str',),
- "PySide2.QtNetwork.QNetworkConfigurationManager.defaultConfiguration": (),
- "PySide2.QtNetwork.QNetworkConfigurationManager.isOnline": (),
- "PySide2.QtNetwork.QNetworkConfigurationManager.updateConfigurations": (),
-# class PySide2.QtNetwork.QNetworkCookie:
-# class PySide2.QtNetwork.QNetworkCookie.RawForm:
- "PySide2.QtNetwork.QNetworkCookie.__init__": [('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'), ('PySide2.QtNetwork.QNetworkCookie',)],
- "PySide2.QtNetwork.QNetworkCookie.__copy__": (),
- "PySide2.QtNetwork.QNetworkCookie.domain": (),
- "PySide2.QtNetwork.QNetworkCookie.expirationDate": (),
- "PySide2.QtNetwork.QNetworkCookie.hasSameIdentifier": ('PySide2.QtNetwork.QNetworkCookie',),
- "PySide2.QtNetwork.QNetworkCookie.isHttpOnly": (),
- "PySide2.QtNetwork.QNetworkCookie.isSecure": (),
- "PySide2.QtNetwork.QNetworkCookie.isSessionCookie": (),
- "PySide2.QtNetwork.QNetworkCookie.name": (),
- "PySide2.QtNetwork.QNetworkCookie.normalize": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QNetworkCookie.parseCookies": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkCookie.path": (),
- "PySide2.QtNetwork.QNetworkCookie.setDomain": ('str',),
- "PySide2.QtNetwork.QNetworkCookie.setExpirationDate": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtNetwork.QNetworkCookie.setHttpOnly": ('bool',),
- "PySide2.QtNetwork.QNetworkCookie.setName": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkCookie.setPath": ('str',),
- "PySide2.QtNetwork.QNetworkCookie.setSecure": ('bool',),
- "PySide2.QtNetwork.QNetworkCookie.setValue": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkCookie.swap": ('PySide2.QtNetwork.QNetworkCookie',),
- "PySide2.QtNetwork.QNetworkCookie.toRawForm": ('PySide2.QtNetwork.QNetworkCookie.RawForm',),
- "PySide2.QtNetwork.QNetworkCookie.value": (),
-# class PySide2.QtNetwork.QNetworkCookieJar:
- "PySide2.QtNetwork.QNetworkCookieJar.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QNetworkCookieJar.allCookies": (),
- "PySide2.QtNetwork.QNetworkCookieJar.cookiesForUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QNetworkCookieJar.deleteCookie": ('PySide2.QtNetwork.QNetworkCookie',),
- "PySide2.QtNetwork.QNetworkCookieJar.insertCookie": ('PySide2.QtNetwork.QNetworkCookie',),
- "PySide2.QtNetwork.QNetworkCookieJar.setAllCookies": ('typing.Sequence[PySide2.QtNetwork.QNetworkCookie]',),
- "PySide2.QtNetwork.QNetworkCookieJar.setCookiesFromUrl": ('typing.Sequence[PySide2.QtNetwork.QNetworkCookie]', 'PySide2.QtCore.QUrl'),
- "PySide2.QtNetwork.QNetworkCookieJar.updateCookie": ('PySide2.QtNetwork.QNetworkCookie',),
- "PySide2.QtNetwork.QNetworkCookieJar.validateCookie": ('PySide2.QtNetwork.QNetworkCookie', 'PySide2.QtCore.QUrl'),
-# class PySide2.QtNetwork.QNetworkDatagram:
- "PySide2.QtNetwork.QNetworkDatagram.__init__": [(), ('PySide2.QtCore.QByteArray', 'PySide2.QtNetwork.QHostAddress', 'int'), ('PySide2.QtNetwork.QNetworkDatagram',)],
- "PySide2.QtNetwork.QNetworkDatagram.__copy__": (),
- "PySide2.QtNetwork.QNetworkDatagram.clear": (),
- "PySide2.QtNetwork.QNetworkDatagram.data": (),
- "PySide2.QtNetwork.QNetworkDatagram.destinationAddress": (),
- "PySide2.QtNetwork.QNetworkDatagram.destinationPort": (),
- "PySide2.QtNetwork.QNetworkDatagram.hopLimit": (),
- "PySide2.QtNetwork.QNetworkDatagram.interfaceIndex": (),
- "PySide2.QtNetwork.QNetworkDatagram.isNull": (),
- "PySide2.QtNetwork.QNetworkDatagram.isValid": (),
- "PySide2.QtNetwork.QNetworkDatagram.makeReply": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkDatagram.senderAddress": (),
- "PySide2.QtNetwork.QNetworkDatagram.senderPort": (),
- "PySide2.QtNetwork.QNetworkDatagram.setData": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkDatagram.setDestination": ('PySide2.QtNetwork.QHostAddress', 'int'),
- "PySide2.QtNetwork.QNetworkDatagram.setHopLimit": ('int',),
- "PySide2.QtNetwork.QNetworkDatagram.setInterfaceIndex": ('int',),
- "PySide2.QtNetwork.QNetworkDatagram.setSender": ('PySide2.QtNetwork.QHostAddress', 'int'),
- "PySide2.QtNetwork.QNetworkDatagram.swap": ('PySide2.QtNetwork.QNetworkDatagram',),
-# class PySide2.QtNetwork.QNetworkDiskCache:
- "PySide2.QtNetwork.QNetworkDiskCache.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QNetworkDiskCache.cacheDirectory": (),
- "PySide2.QtNetwork.QNetworkDiskCache.cacheSize": (),
- "PySide2.QtNetwork.QNetworkDiskCache.clear": (),
- "PySide2.QtNetwork.QNetworkDiskCache.data": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QNetworkDiskCache.expire": (),
- "PySide2.QtNetwork.QNetworkDiskCache.fileMetaData": ('str',),
- "PySide2.QtNetwork.QNetworkDiskCache.insert": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtNetwork.QNetworkDiskCache.maximumCacheSize": (),
- "PySide2.QtNetwork.QNetworkDiskCache.metaData": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QNetworkDiskCache.prepare": ('PySide2.QtNetwork.QNetworkCacheMetaData',),
- "PySide2.QtNetwork.QNetworkDiskCache.remove": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QNetworkDiskCache.setCacheDirectory": ('str',),
- "PySide2.QtNetwork.QNetworkDiskCache.setMaximumCacheSize": ('int',),
- "PySide2.QtNetwork.QNetworkDiskCache.updateMetaData": ('PySide2.QtNetwork.QNetworkCacheMetaData',),
-# class PySide2.QtNetwork.QNetworkInterface:
-# class PySide2.QtNetwork.QNetworkInterface.InterfaceFlag:
-# class PySide2.QtNetwork.QNetworkInterface.InterfaceFlags:
-# class PySide2.QtNetwork.QNetworkInterface.InterfaceType:
- "PySide2.QtNetwork.QNetworkInterface.__init__": [(), ('PySide2.QtNetwork.QNetworkInterface',)],
- "PySide2.QtNetwork.QNetworkInterface.__copy__": (),
- "PySide2.QtNetwork.QNetworkInterface.addressEntries": (),
- "PySide2.QtNetwork.QNetworkInterface.allAddresses": (),
- "PySide2.QtNetwork.QNetworkInterface.allInterfaces": (),
- "PySide2.QtNetwork.QNetworkInterface.flags": (),
- "PySide2.QtNetwork.QNetworkInterface.hardwareAddress": (),
- "PySide2.QtNetwork.QNetworkInterface.humanReadableName": (),
- "PySide2.QtNetwork.QNetworkInterface.index": (),
- "PySide2.QtNetwork.QNetworkInterface.interfaceFromIndex": ('int',),
- "PySide2.QtNetwork.QNetworkInterface.interfaceFromName": ('str',),
- "PySide2.QtNetwork.QNetworkInterface.interfaceIndexFromName": ('str',),
- "PySide2.QtNetwork.QNetworkInterface.interfaceNameFromIndex": ('int',),
- "PySide2.QtNetwork.QNetworkInterface.isValid": (),
- "PySide2.QtNetwork.QNetworkInterface.maximumTransmissionUnit": (),
- "PySide2.QtNetwork.QNetworkInterface.name": (),
- "PySide2.QtNetwork.QNetworkInterface.swap": ('PySide2.QtNetwork.QNetworkInterface',),
- "PySide2.QtNetwork.QNetworkInterface.type": (),
-# class PySide2.QtNetwork.QNetworkProxy:
-# class PySide2.QtNetwork.QNetworkProxy.Capabilities:
-# class PySide2.QtNetwork.QNetworkProxy.Capability:
-# class PySide2.QtNetwork.QNetworkProxy.ProxyType:
- "PySide2.QtNetwork.QNetworkProxy.__init__": [(), ('PySide2.QtNetwork.QNetworkProxy',), ('PySide2.QtNetwork.QNetworkProxy.ProxyType', 'str', 'int', 'str', 'str')],
- "PySide2.QtNetwork.QNetworkProxy.__copy__": (),
- "PySide2.QtNetwork.QNetworkProxy.applicationProxy": (),
- "PySide2.QtNetwork.QNetworkProxy.capabilities": (),
- "PySide2.QtNetwork.QNetworkProxy.hasRawHeader": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkProxy.header": ('PySide2.QtNetwork.QNetworkRequest.KnownHeaders',),
- "PySide2.QtNetwork.QNetworkProxy.hostName": (),
- "PySide2.QtNetwork.QNetworkProxy.isCachingProxy": (),
- "PySide2.QtNetwork.QNetworkProxy.isTransparentProxy": (),
- "PySide2.QtNetwork.QNetworkProxy.password": (),
- "PySide2.QtNetwork.QNetworkProxy.port": (),
- "PySide2.QtNetwork.QNetworkProxy.rawHeader": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkProxy.rawHeaderList": (),
- "PySide2.QtNetwork.QNetworkProxy.setApplicationProxy": ('PySide2.QtNetwork.QNetworkProxy',),
- "PySide2.QtNetwork.QNetworkProxy.setCapabilities": ('PySide2.QtNetwork.QNetworkProxy.Capabilities',),
- "PySide2.QtNetwork.QNetworkProxy.setHeader": ('PySide2.QtNetwork.QNetworkRequest.KnownHeaders', 'typing.Any'),
- "PySide2.QtNetwork.QNetworkProxy.setHostName": ('str',),
- "PySide2.QtNetwork.QNetworkProxy.setPassword": ('str',),
- "PySide2.QtNetwork.QNetworkProxy.setPort": ('int',),
- "PySide2.QtNetwork.QNetworkProxy.setRawHeader": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtNetwork.QNetworkProxy.setType": ('PySide2.QtNetwork.QNetworkProxy.ProxyType',),
- "PySide2.QtNetwork.QNetworkProxy.setUser": ('str',),
- "PySide2.QtNetwork.QNetworkProxy.swap": ('PySide2.QtNetwork.QNetworkProxy',),
- "PySide2.QtNetwork.QNetworkProxy.type": (),
- "PySide2.QtNetwork.QNetworkProxy.user": (),
-# class PySide2.QtNetwork.QNetworkProxyFactory:
- "PySide2.QtNetwork.QNetworkProxyFactory.__init__": (),
- "PySide2.QtNetwork.QNetworkProxyFactory.proxyForQuery": ('PySide2.QtNetwork.QNetworkProxyQuery',),
- "PySide2.QtNetwork.QNetworkProxyFactory.queryProxy": ('PySide2.QtNetwork.QNetworkProxyQuery',),
- "PySide2.QtNetwork.QNetworkProxyFactory.setApplicationProxyFactory": ('PySide2.QtNetwork.QNetworkProxyFactory',),
- "PySide2.QtNetwork.QNetworkProxyFactory.setUseSystemConfiguration": ('bool',),
- "PySide2.QtNetwork.QNetworkProxyFactory.systemProxyForQuery": ('PySide2.QtNetwork.QNetworkProxyQuery',),
- "PySide2.QtNetwork.QNetworkProxyFactory.usesSystemConfiguration": (),
-# class PySide2.QtNetwork.QNetworkProxyQuery:
-# class PySide2.QtNetwork.QNetworkProxyQuery.QueryType:
- "PySide2.QtNetwork.QNetworkProxyQuery.__init__": [(), ('PySide2.QtCore.QUrl', 'PySide2.QtNetwork.QNetworkProxyQuery.QueryType'), ('PySide2.QtNetwork.QNetworkConfiguration', 'PySide2.QtCore.QUrl', 'PySide2.QtNetwork.QNetworkProxyQuery.QueryType'), ('PySide2.QtNetwork.QNetworkConfiguration', 'int', 'str', 'PySide2.QtNetwork.QNetworkProxyQuery.QueryType'), ('PySide2.QtNetwork.QNetworkConfiguration', 'str', 'int', 'str', 'PySide2.QtNetwork.QNetworkProxyQuery.QueryType'), ('PySide2.QtNetwork.QNetworkProxyQuery',), ('int', 'str', 'PySide2.QtNetwork.QNetworkProxyQuery.QueryType'), ('str', 'int', 'str', 'PySide2.QtNetwork.QNetworkProxyQuery.QueryType')],
- "PySide2.QtNetwork.QNetworkProxyQuery.__copy__": (),
- "PySide2.QtNetwork.QNetworkProxyQuery.localPort": (),
- "PySide2.QtNetwork.QNetworkProxyQuery.networkConfiguration": (),
- "PySide2.QtNetwork.QNetworkProxyQuery.peerHostName": (),
- "PySide2.QtNetwork.QNetworkProxyQuery.peerPort": (),
- "PySide2.QtNetwork.QNetworkProxyQuery.protocolTag": (),
- "PySide2.QtNetwork.QNetworkProxyQuery.queryType": (),
- "PySide2.QtNetwork.QNetworkProxyQuery.setLocalPort": ('int',),
- "PySide2.QtNetwork.QNetworkProxyQuery.setNetworkConfiguration": ('PySide2.QtNetwork.QNetworkConfiguration',),
- "PySide2.QtNetwork.QNetworkProxyQuery.setPeerHostName": ('str',),
- "PySide2.QtNetwork.QNetworkProxyQuery.setPeerPort": ('int',),
- "PySide2.QtNetwork.QNetworkProxyQuery.setProtocolTag": ('str',),
- "PySide2.QtNetwork.QNetworkProxyQuery.setQueryType": ('PySide2.QtNetwork.QNetworkProxyQuery.QueryType',),
- "PySide2.QtNetwork.QNetworkProxyQuery.setUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QNetworkProxyQuery.swap": ('PySide2.QtNetwork.QNetworkProxyQuery',),
- "PySide2.QtNetwork.QNetworkProxyQuery.url": (),
-# class PySide2.QtNetwork.QNetworkReply:
-# class PySide2.QtNetwork.QNetworkReply.NetworkError:
- "PySide2.QtNetwork.QNetworkReply.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QNetworkReply.abort": (),
- "PySide2.QtNetwork.QNetworkReply.attribute": ('PySide2.QtNetwork.QNetworkRequest.Attribute',),
- "PySide2.QtNetwork.QNetworkReply.close": (),
- "PySide2.QtNetwork.QNetworkReply.error": (),
- "PySide2.QtNetwork.QNetworkReply.hasRawHeader": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkReply.header": ('PySide2.QtNetwork.QNetworkRequest.KnownHeaders',),
- "PySide2.QtNetwork.QNetworkReply.ignoreSslErrors": [(), ('typing.Sequence[PySide2.QtNetwork.QSslError]',)],
- "PySide2.QtNetwork.QNetworkReply.ignoreSslErrorsImplementation": ('typing.Sequence[PySide2.QtNetwork.QSslError]',),
- "PySide2.QtNetwork.QNetworkReply.isFinished": (),
- "PySide2.QtNetwork.QNetworkReply.isRunning": (),
- "PySide2.QtNetwork.QNetworkReply.isSequential": (),
- "PySide2.QtNetwork.QNetworkReply.manager": (),
- "PySide2.QtNetwork.QNetworkReply.operation": (),
- "PySide2.QtNetwork.QNetworkReply.rawHeader": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkReply.rawHeaderList": (),
- "PySide2.QtNetwork.QNetworkReply.rawHeaderPairs": (),
- "PySide2.QtNetwork.QNetworkReply.readBufferSize": (),
- "PySide2.QtNetwork.QNetworkReply.request": (),
- "PySide2.QtNetwork.QNetworkReply.setAttribute": ('PySide2.QtNetwork.QNetworkRequest.Attribute', 'typing.Any'),
- "PySide2.QtNetwork.QNetworkReply.setError": ('PySide2.QtNetwork.QNetworkReply.NetworkError', 'str'),
- "PySide2.QtNetwork.QNetworkReply.setFinished": ('bool',),
- "PySide2.QtNetwork.QNetworkReply.setHeader": ('PySide2.QtNetwork.QNetworkRequest.KnownHeaders', 'typing.Any'),
- "PySide2.QtNetwork.QNetworkReply.setOperation": ('PySide2.QtNetwork.QNetworkAccessManager.Operation',),
- "PySide2.QtNetwork.QNetworkReply.setRawHeader": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtNetwork.QNetworkReply.setReadBufferSize": ('int',),
- "PySide2.QtNetwork.QNetworkReply.setRequest": ('PySide2.QtNetwork.QNetworkRequest',),
- "PySide2.QtNetwork.QNetworkReply.setSslConfiguration": ('PySide2.QtNetwork.QSslConfiguration',),
- "PySide2.QtNetwork.QNetworkReply.setSslConfigurationImplementation": ('PySide2.QtNetwork.QSslConfiguration',),
- "PySide2.QtNetwork.QNetworkReply.setUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QNetworkReply.sslConfiguration": (),
- "PySide2.QtNetwork.QNetworkReply.sslConfigurationImplementation": ('PySide2.QtNetwork.QSslConfiguration',),
- "PySide2.QtNetwork.QNetworkReply.url": (),
- "PySide2.QtNetwork.QNetworkReply.writeData": ('str', 'int'),
-# class PySide2.QtNetwork.QNetworkRequest:
-# class PySide2.QtNetwork.QNetworkRequest.Attribute:
-# class PySide2.QtNetwork.QNetworkRequest.CacheLoadControl:
-# class PySide2.QtNetwork.QNetworkRequest.KnownHeaders:
-# class PySide2.QtNetwork.QNetworkRequest.LoadControl:
-# class PySide2.QtNetwork.QNetworkRequest.Priority:
-# class PySide2.QtNetwork.QNetworkRequest.RedirectPolicy:
- "PySide2.QtNetwork.QNetworkRequest.__init__": [(), ('PySide2.QtCore.QUrl',), ('PySide2.QtNetwork.QNetworkRequest',)],
- "PySide2.QtNetwork.QNetworkRequest.__copy__": (),
- "PySide2.QtNetwork.QNetworkRequest.attribute": ('PySide2.QtNetwork.QNetworkRequest.Attribute', 'typing.Any'),
- "PySide2.QtNetwork.QNetworkRequest.hasRawHeader": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkRequest.header": ('PySide2.QtNetwork.QNetworkRequest.KnownHeaders',),
- "PySide2.QtNetwork.QNetworkRequest.maximumRedirectsAllowed": (),
- "PySide2.QtNetwork.QNetworkRequest.originatingObject": (),
- "PySide2.QtNetwork.QNetworkRequest.peerVerifyName": (),
- "PySide2.QtNetwork.QNetworkRequest.priority": (),
- "PySide2.QtNetwork.QNetworkRequest.rawHeader": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QNetworkRequest.rawHeaderList": (),
- "PySide2.QtNetwork.QNetworkRequest.setAttribute": ('PySide2.QtNetwork.QNetworkRequest.Attribute', 'typing.Any'),
- "PySide2.QtNetwork.QNetworkRequest.setHeader": ('PySide2.QtNetwork.QNetworkRequest.KnownHeaders', 'typing.Any'),
- "PySide2.QtNetwork.QNetworkRequest.setMaximumRedirectsAllowed": ('int',),
- "PySide2.QtNetwork.QNetworkRequest.setOriginatingObject": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QNetworkRequest.setPeerVerifyName": ('str',),
- "PySide2.QtNetwork.QNetworkRequest.setPriority": ('PySide2.QtNetwork.QNetworkRequest.Priority',),
- "PySide2.QtNetwork.QNetworkRequest.setRawHeader": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtNetwork.QNetworkRequest.setSslConfiguration": ('PySide2.QtNetwork.QSslConfiguration',),
- "PySide2.QtNetwork.QNetworkRequest.setUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtNetwork.QNetworkRequest.sslConfiguration": (),
- "PySide2.QtNetwork.QNetworkRequest.swap": ('PySide2.QtNetwork.QNetworkRequest',),
- "PySide2.QtNetwork.QNetworkRequest.url": (),
-# class PySide2.QtNetwork.QNetworkSession:
-# class PySide2.QtNetwork.QNetworkSession.SessionError:
-# class PySide2.QtNetwork.QNetworkSession.State:
-# class PySide2.QtNetwork.QNetworkSession.UsagePolicies:
-# class PySide2.QtNetwork.QNetworkSession.UsagePolicy:
- "PySide2.QtNetwork.QNetworkSession.__init__": ('PySide2.QtNetwork.QNetworkConfiguration', 'PySide2.QtCore.QObject'),
- "PySide2.QtNetwork.QNetworkSession.accept": (),
- "PySide2.QtNetwork.QNetworkSession.activeTime": (),
- "PySide2.QtNetwork.QNetworkSession.bytesReceived": (),
- "PySide2.QtNetwork.QNetworkSession.bytesWritten": (),
- "PySide2.QtNetwork.QNetworkSession.close": (),
- "PySide2.QtNetwork.QNetworkSession.configuration": (),
- "PySide2.QtNetwork.QNetworkSession.connectNotify": ('PySide2.QtCore.QMetaMethod',),
- "PySide2.QtNetwork.QNetworkSession.disconnectNotify": ('PySide2.QtCore.QMetaMethod',),
- "PySide2.QtNetwork.QNetworkSession.error": (),
- "PySide2.QtNetwork.QNetworkSession.errorString": (),
- "PySide2.QtNetwork.QNetworkSession.ignore": (),
- "PySide2.QtNetwork.QNetworkSession.interface": (),
- "PySide2.QtNetwork.QNetworkSession.isOpen": (),
- "PySide2.QtNetwork.QNetworkSession.migrate": (),
- "PySide2.QtNetwork.QNetworkSession.open": (),
- "PySide2.QtNetwork.QNetworkSession.reject": (),
- "PySide2.QtNetwork.QNetworkSession.sessionProperty": ('str',),
- "PySide2.QtNetwork.QNetworkSession.setSessionProperty": ('str', 'typing.Any'),
- "PySide2.QtNetwork.QNetworkSession.state": (),
- "PySide2.QtNetwork.QNetworkSession.stop": (),
- "PySide2.QtNetwork.QNetworkSession.usagePolicies": (),
- "PySide2.QtNetwork.QNetworkSession.waitForOpened": ('int',),
-# class PySide2.QtNetwork.QOcspCertificateStatus:
-# class PySide2.QtNetwork.QOcspResponse:
- "PySide2.QtNetwork.QOcspResponse.__init__": [(), ('PySide2.QtNetwork.QOcspResponse',)],
- "PySide2.QtNetwork.QOcspResponse.__copy__": (),
- "PySide2.QtNetwork.QOcspResponse.certificateStatus": (),
- "PySide2.QtNetwork.QOcspResponse.revocationReason": (),
- "PySide2.QtNetwork.QOcspResponse.subject": (),
- "PySide2.QtNetwork.QOcspResponse.swap": ('PySide2.QtNetwork.QOcspResponse',),
-# class PySide2.QtNetwork.QOcspRevocationReason:
-# class PySide2.QtNetwork.QPasswordDigestor:
- "PySide2.QtNetwork.QPasswordDigestor.deriveKeyPbkdf1": ('PySide2.QtCore.QCryptographicHash.Algorithm', 'PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray', 'int', 'int'),
- "PySide2.QtNetwork.QPasswordDigestor.deriveKeyPbkdf2": ('PySide2.QtCore.QCryptographicHash.Algorithm', 'PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray', 'int', 'int'),
-# class PySide2.QtNetwork.QSsl:
-# class PySide2.QtNetwork.QSsl.AlternativeNameEntryType:
-# class PySide2.QtNetwork.QSsl.EncodingFormat:
-# class PySide2.QtNetwork.QSsl.KeyAlgorithm:
-# class PySide2.QtNetwork.QSsl.KeyType:
-# class PySide2.QtNetwork.QSsl.SslOption:
-# class PySide2.QtNetwork.QSsl.SslOptions:
-# class PySide2.QtNetwork.QSsl.SslProtocol:
-# class PySide2.QtNetwork.QSslCertificate:
-# class PySide2.QtNetwork.QSslCertificate.SubjectInfo:
- "PySide2.QtNetwork.QSslCertificate.__init__": [('PySide2.QtCore.QByteArray', 'PySide2.QtNetwork.QSsl.EncodingFormat'), ('PySide2.QtCore.QIODevice', 'PySide2.QtNetwork.QSsl.EncodingFormat'), ('PySide2.QtNetwork.QSslCertificate',)],
- "PySide2.QtNetwork.QSslCertificate.__copy__": (),
- "PySide2.QtNetwork.QSslCertificate.clear": (),
- "PySide2.QtNetwork.QSslCertificate.digest": ('PySide2.QtCore.QCryptographicHash.Algorithm',),
- "PySide2.QtNetwork.QSslCertificate.effectiveDate": (),
- "PySide2.QtNetwork.QSslCertificate.expiryDate": (),
- "PySide2.QtNetwork.QSslCertificate.extensions": (),
- "PySide2.QtNetwork.QSslCertificate.fromData": ('PySide2.QtCore.QByteArray', 'PySide2.QtNetwork.QSsl.EncodingFormat'),
- "PySide2.QtNetwork.QSslCertificate.fromDevice": ('PySide2.QtCore.QIODevice', 'PySide2.QtNetwork.QSsl.EncodingFormat'),
- "PySide2.QtNetwork.QSslCertificate.fromPath": ('str', 'PySide2.QtNetwork.QSsl.EncodingFormat', 'PySide2.QtCore.QRegExp.PatternSyntax'),
- "PySide2.QtNetwork.QSslCertificate.handle": (),
- "PySide2.QtNetwork.QSslCertificate.importPkcs12": ('PySide2.QtCore.QIODevice', 'PySide2.QtNetwork.QSslKey', 'PySide2.QtNetwork.QSslCertificate', 'typing.Sequence[PySide2.QtNetwork.QSslCertificate]', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtNetwork.QSslCertificate.isBlacklisted": (),
- "PySide2.QtNetwork.QSslCertificate.isNull": (),
- "PySide2.QtNetwork.QSslCertificate.isSelfSigned": (),
- "PySide2.QtNetwork.QSslCertificate.issuerDisplayName": (),
- "PySide2.QtNetwork.QSslCertificate.issuerInfo": [('PySide2.QtCore.QByteArray',), ('PySide2.QtNetwork.QSslCertificate.SubjectInfo',)],
- "PySide2.QtNetwork.QSslCertificate.issuerInfoAttributes": (),
- "PySide2.QtNetwork.QSslCertificate.publicKey": (),
- "PySide2.QtNetwork.QSslCertificate.serialNumber": (),
- "PySide2.QtNetwork.QSslCertificate.subjectAlternativeNames": (),
- "PySide2.QtNetwork.QSslCertificate.subjectDisplayName": (),
- "PySide2.QtNetwork.QSslCertificate.subjectInfo": [('PySide2.QtCore.QByteArray',), ('PySide2.QtNetwork.QSslCertificate.SubjectInfo',)],
- "PySide2.QtNetwork.QSslCertificate.subjectInfoAttributes": (),
- "PySide2.QtNetwork.QSslCertificate.swap": ('PySide2.QtNetwork.QSslCertificate',),
- "PySide2.QtNetwork.QSslCertificate.toDer": (),
- "PySide2.QtNetwork.QSslCertificate.toPem": (),
- "PySide2.QtNetwork.QSslCertificate.toText": (),
- "PySide2.QtNetwork.QSslCertificate.verify": ('typing.Sequence[PySide2.QtNetwork.QSslCertificate]', 'str'),
- "PySide2.QtNetwork.QSslCertificate.version": (),
-# class PySide2.QtNetwork.QSslCertificateExtension:
- "PySide2.QtNetwork.QSslCertificateExtension.__init__": [(), ('PySide2.QtNetwork.QSslCertificateExtension',)],
- "PySide2.QtNetwork.QSslCertificateExtension.__copy__": (),
- "PySide2.QtNetwork.QSslCertificateExtension.isCritical": (),
- "PySide2.QtNetwork.QSslCertificateExtension.isSupported": (),
- "PySide2.QtNetwork.QSslCertificateExtension.name": (),
- "PySide2.QtNetwork.QSslCertificateExtension.oid": (),
- "PySide2.QtNetwork.QSslCertificateExtension.swap": ('PySide2.QtNetwork.QSslCertificateExtension',),
- "PySide2.QtNetwork.QSslCertificateExtension.value": (),
-# class PySide2.QtNetwork.QSslCipher:
- "PySide2.QtNetwork.QSslCipher.__init__": [(), ('PySide2.QtNetwork.QSslCipher',), ('str',), ('str', 'PySide2.QtNetwork.QSsl.SslProtocol')],
- "PySide2.QtNetwork.QSslCipher.__copy__": (),
- "PySide2.QtNetwork.QSslCipher.authenticationMethod": (),
- "PySide2.QtNetwork.QSslCipher.encryptionMethod": (),
- "PySide2.QtNetwork.QSslCipher.isNull": (),
- "PySide2.QtNetwork.QSslCipher.keyExchangeMethod": (),
- "PySide2.QtNetwork.QSslCipher.name": (),
- "PySide2.QtNetwork.QSslCipher.protocol": (),
- "PySide2.QtNetwork.QSslCipher.protocolString": (),
- "PySide2.QtNetwork.QSslCipher.supportedBits": (),
- "PySide2.QtNetwork.QSslCipher.swap": ('PySide2.QtNetwork.QSslCipher',),
- "PySide2.QtNetwork.QSslCipher.usedBits": (),
-# class PySide2.QtNetwork.QSslConfiguration:
-# class PySide2.QtNetwork.QSslConfiguration.NextProtocolNegotiationStatus:
- "PySide2.QtNetwork.QSslConfiguration.__init__": [(), ('PySide2.QtNetwork.QSslConfiguration',)],
- "PySide2.QtNetwork.QSslConfiguration.__copy__": (),
- "PySide2.QtNetwork.QSslConfiguration.allowedNextProtocols": (),
- "PySide2.QtNetwork.QSslConfiguration.backendConfiguration": (),
- "PySide2.QtNetwork.QSslConfiguration.caCertificates": (),
- "PySide2.QtNetwork.QSslConfiguration.ciphers": (),
- "PySide2.QtNetwork.QSslConfiguration.defaultConfiguration": (),
- "PySide2.QtNetwork.QSslConfiguration.defaultDtlsConfiguration": (),
- "PySide2.QtNetwork.QSslConfiguration.diffieHellmanParameters": (),
- "PySide2.QtNetwork.QSslConfiguration.dtlsCookieVerificationEnabled": (),
- "PySide2.QtNetwork.QSslConfiguration.ephemeralServerKey": (),
- "PySide2.QtNetwork.QSslConfiguration.isNull": (),
- "PySide2.QtNetwork.QSslConfiguration.localCertificate": (),
- "PySide2.QtNetwork.QSslConfiguration.localCertificateChain": (),
- "PySide2.QtNetwork.QSslConfiguration.nextNegotiatedProtocol": (),
- "PySide2.QtNetwork.QSslConfiguration.nextProtocolNegotiationStatus": (),
- "PySide2.QtNetwork.QSslConfiguration.ocspStaplingEnabled": (),
- "PySide2.QtNetwork.QSslConfiguration.peerCertificate": (),
- "PySide2.QtNetwork.QSslConfiguration.peerCertificateChain": (),
- "PySide2.QtNetwork.QSslConfiguration.peerVerifyDepth": (),
- "PySide2.QtNetwork.QSslConfiguration.peerVerifyMode": (),
- "PySide2.QtNetwork.QSslConfiguration.preSharedKeyIdentityHint": (),
- "PySide2.QtNetwork.QSslConfiguration.privateKey": (),
- "PySide2.QtNetwork.QSslConfiguration.protocol": (),
- "PySide2.QtNetwork.QSslConfiguration.sessionCipher": (),
- "PySide2.QtNetwork.QSslConfiguration.sessionProtocol": (),
- "PySide2.QtNetwork.QSslConfiguration.sessionTicket": (),
- "PySide2.QtNetwork.QSslConfiguration.sessionTicketLifeTimeHint": (),
- "PySide2.QtNetwork.QSslConfiguration.setAllowedNextProtocols": ('typing.Sequence[PySide2.QtCore.QByteArray]',),
- "PySide2.QtNetwork.QSslConfiguration.setBackendConfiguration": ('typing.Dict[PySide2.QtCore.QByteArray, typing.Any]',),
- "PySide2.QtNetwork.QSslConfiguration.setBackendConfigurationOption": ('PySide2.QtCore.QByteArray', 'typing.Any'),
- "PySide2.QtNetwork.QSslConfiguration.setCaCertificates": ('typing.Sequence[PySide2.QtNetwork.QSslCertificate]',),
- "PySide2.QtNetwork.QSslConfiguration.setCiphers": ('typing.Sequence[PySide2.QtNetwork.QSslCipher]',),
- "PySide2.QtNetwork.QSslConfiguration.setDefaultConfiguration": ('PySide2.QtNetwork.QSslConfiguration',),
- "PySide2.QtNetwork.QSslConfiguration.setDefaultDtlsConfiguration": ('PySide2.QtNetwork.QSslConfiguration',),
- "PySide2.QtNetwork.QSslConfiguration.setDiffieHellmanParameters": ('PySide2.QtNetwork.QSslDiffieHellmanParameters',),
- "PySide2.QtNetwork.QSslConfiguration.setDtlsCookieVerificationEnabled": ('bool',),
- "PySide2.QtNetwork.QSslConfiguration.setLocalCertificate": ('PySide2.QtNetwork.QSslCertificate',),
- "PySide2.QtNetwork.QSslConfiguration.setLocalCertificateChain": ('typing.Sequence[PySide2.QtNetwork.QSslCertificate]',),
- "PySide2.QtNetwork.QSslConfiguration.setOcspStaplingEnabled": ('bool',),
- "PySide2.QtNetwork.QSslConfiguration.setPeerVerifyDepth": ('int',),
- "PySide2.QtNetwork.QSslConfiguration.setPeerVerifyMode": ('PySide2.QtNetwork.QSslSocket.PeerVerifyMode',),
- "PySide2.QtNetwork.QSslConfiguration.setPreSharedKeyIdentityHint": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QSslConfiguration.setPrivateKey": ('PySide2.QtNetwork.QSslKey',),
- "PySide2.QtNetwork.QSslConfiguration.setProtocol": ('PySide2.QtNetwork.QSsl.SslProtocol',),
- "PySide2.QtNetwork.QSslConfiguration.setSessionTicket": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QSslConfiguration.setSslOption": ('PySide2.QtNetwork.QSsl.SslOption', 'bool'),
- "PySide2.QtNetwork.QSslConfiguration.supportedCiphers": (),
- "PySide2.QtNetwork.QSslConfiguration.swap": ('PySide2.QtNetwork.QSslConfiguration',),
- "PySide2.QtNetwork.QSslConfiguration.systemCaCertificates": (),
- "PySide2.QtNetwork.QSslConfiguration.testSslOption": ('PySide2.QtNetwork.QSsl.SslOption',),
-# class PySide2.QtNetwork.QSslDiffieHellmanParameters:
-# class PySide2.QtNetwork.QSslDiffieHellmanParameters.Error:
- "PySide2.QtNetwork.QSslDiffieHellmanParameters.__init__": [(), ('PySide2.QtNetwork.QSslDiffieHellmanParameters',)],
- "PySide2.QtNetwork.QSslDiffieHellmanParameters.__copy__": (),
- "PySide2.QtNetwork.QSslDiffieHellmanParameters.defaultParameters": (),
- "PySide2.QtNetwork.QSslDiffieHellmanParameters.error": (),
- "PySide2.QtNetwork.QSslDiffieHellmanParameters.errorString": (),
- "PySide2.QtNetwork.QSslDiffieHellmanParameters.fromEncoded": [('PySide2.QtCore.QByteArray', 'PySide2.QtNetwork.QSsl.EncodingFormat'), ('PySide2.QtCore.QIODevice', 'PySide2.QtNetwork.QSsl.EncodingFormat')],
- "PySide2.QtNetwork.QSslDiffieHellmanParameters.isEmpty": (),
- "PySide2.QtNetwork.QSslDiffieHellmanParameters.isValid": (),
- "PySide2.QtNetwork.QSslDiffieHellmanParameters.swap": ('PySide2.QtNetwork.QSslDiffieHellmanParameters',),
-# class PySide2.QtNetwork.QSslError:
-# class PySide2.QtNetwork.QSslError.SslError:
- "PySide2.QtNetwork.QSslError.__init__": [(), ('PySide2.QtNetwork.QSslError',), ('PySide2.QtNetwork.QSslError.SslError',), ('PySide2.QtNetwork.QSslError.SslError', 'PySide2.QtNetwork.QSslCertificate')],
- "PySide2.QtNetwork.QSslError.__copy__": (),
- "PySide2.QtNetwork.QSslError.certificate": (),
- "PySide2.QtNetwork.QSslError.error": (),
- "PySide2.QtNetwork.QSslError.errorString": (),
- "PySide2.QtNetwork.QSslError.swap": ('PySide2.QtNetwork.QSslError',),
-# class PySide2.QtNetwork.QSslKey:
- "PySide2.QtNetwork.QSslKey.__init__": [(), ('PySide2.QtCore.QByteArray', 'PySide2.QtNetwork.QSsl.KeyAlgorithm', 'PySide2.QtNetwork.QSsl.EncodingFormat', 'PySide2.QtNetwork.QSsl.KeyType', 'PySide2.QtCore.QByteArray'), ('PySide2.QtCore.QIODevice', 'PySide2.QtNetwork.QSsl.KeyAlgorithm', 'PySide2.QtNetwork.QSsl.EncodingFormat', 'PySide2.QtNetwork.QSsl.KeyType', 'PySide2.QtCore.QByteArray'), ('PySide2.QtNetwork.QSslKey',), ('int', 'PySide2.QtNetwork.QSsl.KeyType')],
- "PySide2.QtNetwork.QSslKey.__copy__": (),
- "PySide2.QtNetwork.QSslKey.algorithm": (),
- "PySide2.QtNetwork.QSslKey.clear": (),
- "PySide2.QtNetwork.QSslKey.handle": (),
- "PySide2.QtNetwork.QSslKey.isNull": (),
- "PySide2.QtNetwork.QSslKey.length": (),
- "PySide2.QtNetwork.QSslKey.swap": ('PySide2.QtNetwork.QSslKey',),
- "PySide2.QtNetwork.QSslKey.toDer": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QSslKey.toPem": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QSslKey.type": (),
-# class PySide2.QtNetwork.QSslPreSharedKeyAuthenticator:
- "PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.__init__": [(), ('PySide2.QtNetwork.QSslPreSharedKeyAuthenticator',)],
- "PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.__copy__": (),
- "PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.identity": (),
- "PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.identityHint": (),
- "PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.maximumIdentityLength": (),
- "PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.maximumPreSharedKeyLength": (),
- "PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.preSharedKey": (),
- "PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.setIdentity": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.setPreSharedKey": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtNetwork.QSslPreSharedKeyAuthenticator.swap": ('PySide2.QtNetwork.QSslPreSharedKeyAuthenticator',),
-# class PySide2.QtNetwork.QSslSocket:
-# class PySide2.QtNetwork.QSslSocket.PeerVerifyMode:
-# class PySide2.QtNetwork.QSslSocket.SslMode:
- "PySide2.QtNetwork.QSslSocket.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QSslSocket.abort": (),
- "PySide2.QtNetwork.QSslSocket.addCaCertificate": ('PySide2.QtNetwork.QSslCertificate',),
- "PySide2.QtNetwork.QSslSocket.addCaCertificates": [('str', 'PySide2.QtNetwork.QSsl.EncodingFormat', 'PySide2.QtCore.QRegExp.PatternSyntax'), ('typing.Sequence[PySide2.QtNetwork.QSslCertificate]',)],
- "PySide2.QtNetwork.QSslSocket.addDefaultCaCertificate": ('PySide2.QtNetwork.QSslCertificate',),
- "PySide2.QtNetwork.QSslSocket.addDefaultCaCertificates": [('str', 'PySide2.QtNetwork.QSsl.EncodingFormat', 'PySide2.QtCore.QRegExp.PatternSyntax'), ('typing.Sequence[PySide2.QtNetwork.QSslCertificate]',)],
- "PySide2.QtNetwork.QSslSocket.atEnd": (),
- "PySide2.QtNetwork.QSslSocket.bytesAvailable": (),
- "PySide2.QtNetwork.QSslSocket.bytesToWrite": (),
- "PySide2.QtNetwork.QSslSocket.caCertificates": (),
- "PySide2.QtNetwork.QSslSocket.canReadLine": (),
- "PySide2.QtNetwork.QSslSocket.ciphers": (),
- "PySide2.QtNetwork.QSslSocket.close": (),
- "PySide2.QtNetwork.QSslSocket.connectToHost": [('PySide2.QtNetwork.QHostAddress', 'int', 'PySide2.QtCore.QIODevice.OpenMode'), ('str', 'int', 'PySide2.QtCore.QIODevice.OpenMode', 'PySide2.QtNetwork.QAbstractSocket.NetworkLayerProtocol')],
- "PySide2.QtNetwork.QSslSocket.connectToHostEncrypted": [('str', 'int', 'PySide2.QtCore.QIODevice.OpenMode', 'PySide2.QtNetwork.QAbstractSocket.NetworkLayerProtocol'), ('str', 'int', 'str', 'PySide2.QtCore.QIODevice.OpenMode', 'PySide2.QtNetwork.QAbstractSocket.NetworkLayerProtocol')],
- "PySide2.QtNetwork.QSslSocket.defaultCaCertificates": (),
- "PySide2.QtNetwork.QSslSocket.defaultCiphers": (),
- "PySide2.QtNetwork.QSslSocket.disconnectFromHost": (),
- "PySide2.QtNetwork.QSslSocket.encryptedBytesAvailable": (),
- "PySide2.QtNetwork.QSslSocket.encryptedBytesToWrite": (),
- "PySide2.QtNetwork.QSslSocket.flush": (),
- "PySide2.QtNetwork.QSslSocket.ignoreSslErrors": [(), ('typing.Sequence[PySide2.QtNetwork.QSslError]',)],
- "PySide2.QtNetwork.QSslSocket.isEncrypted": (),
- "PySide2.QtNetwork.QSslSocket.localCertificate": (),
- "PySide2.QtNetwork.QSslSocket.localCertificateChain": (),
- "PySide2.QtNetwork.QSslSocket.mode": (),
- "PySide2.QtNetwork.QSslSocket.ocspResponses": (),
- "PySide2.QtNetwork.QSslSocket.peerCertificate": (),
- "PySide2.QtNetwork.QSslSocket.peerCertificateChain": (),
- "PySide2.QtNetwork.QSslSocket.peerVerifyDepth": (),
- "PySide2.QtNetwork.QSslSocket.peerVerifyMode": (),
- "PySide2.QtNetwork.QSslSocket.peerVerifyName": (),
- "PySide2.QtNetwork.QSslSocket.privateKey": (),
- "PySide2.QtNetwork.QSslSocket.protocol": (),
- "PySide2.QtNetwork.QSslSocket.readData": ('str', 'int'),
- "PySide2.QtNetwork.QSslSocket.resume": (),
- "PySide2.QtNetwork.QSslSocket.sessionCipher": (),
- "PySide2.QtNetwork.QSslSocket.sessionProtocol": (),
- "PySide2.QtNetwork.QSslSocket.setCaCertificates": ('typing.Sequence[PySide2.QtNetwork.QSslCertificate]',),
- "PySide2.QtNetwork.QSslSocket.setCiphers": [('str',), ('typing.Sequence[PySide2.QtNetwork.QSslCipher]',)],
- "PySide2.QtNetwork.QSslSocket.setDefaultCaCertificates": ('typing.Sequence[PySide2.QtNetwork.QSslCertificate]',),
- "PySide2.QtNetwork.QSslSocket.setDefaultCiphers": ('typing.Sequence[PySide2.QtNetwork.QSslCipher]',),
- "PySide2.QtNetwork.QSslSocket.setLocalCertificate": [('PySide2.QtNetwork.QSslCertificate',), ('str', 'PySide2.QtNetwork.QSsl.EncodingFormat')],
- "PySide2.QtNetwork.QSslSocket.setLocalCertificateChain": ('typing.Sequence[PySide2.QtNetwork.QSslCertificate]',),
- "PySide2.QtNetwork.QSslSocket.setPeerVerifyDepth": ('int',),
- "PySide2.QtNetwork.QSslSocket.setPeerVerifyMode": ('PySide2.QtNetwork.QSslSocket.PeerVerifyMode',),
- "PySide2.QtNetwork.QSslSocket.setPeerVerifyName": ('str',),
- "PySide2.QtNetwork.QSslSocket.setPrivateKey": [('PySide2.QtNetwork.QSslKey',), ('str', 'PySide2.QtNetwork.QSsl.KeyAlgorithm', 'PySide2.QtNetwork.QSsl.EncodingFormat', 'PySide2.QtCore.QByteArray')],
- "PySide2.QtNetwork.QSslSocket.setProtocol": ('PySide2.QtNetwork.QSsl.SslProtocol',),
- "PySide2.QtNetwork.QSslSocket.setReadBufferSize": ('int',),
- "PySide2.QtNetwork.QSslSocket.setSocketDescriptor": ('int', 'PySide2.QtNetwork.QAbstractSocket.SocketState', 'PySide2.QtCore.QIODevice.OpenMode'),
- "PySide2.QtNetwork.QSslSocket.setSocketOption": ('PySide2.QtNetwork.QAbstractSocket.SocketOption', 'typing.Any'),
- "PySide2.QtNetwork.QSslSocket.setSslConfiguration": ('PySide2.QtNetwork.QSslConfiguration',),
- "PySide2.QtNetwork.QSslSocket.socketOption": ('PySide2.QtNetwork.QAbstractSocket.SocketOption',),
- "PySide2.QtNetwork.QSslSocket.sslConfiguration": (),
- "PySide2.QtNetwork.QSslSocket.sslErrors": (),
- "PySide2.QtNetwork.QSslSocket.sslLibraryBuildVersionNumber": (),
- "PySide2.QtNetwork.QSslSocket.sslLibraryBuildVersionString": (),
- "PySide2.QtNetwork.QSslSocket.sslLibraryVersionNumber": (),
- "PySide2.QtNetwork.QSslSocket.sslLibraryVersionString": (),
- "PySide2.QtNetwork.QSslSocket.startClientEncryption": (),
- "PySide2.QtNetwork.QSslSocket.startServerEncryption": (),
- "PySide2.QtNetwork.QSslSocket.supportedCiphers": (),
- "PySide2.QtNetwork.QSslSocket.supportsSsl": (),
- "PySide2.QtNetwork.QSslSocket.systemCaCertificates": (),
- "PySide2.QtNetwork.QSslSocket.waitForBytesWritten": ('int',),
- "PySide2.QtNetwork.QSslSocket.waitForConnected": ('int',),
- "PySide2.QtNetwork.QSslSocket.waitForDisconnected": ('int',),
- "PySide2.QtNetwork.QSslSocket.waitForEncrypted": ('int',),
- "PySide2.QtNetwork.QSslSocket.waitForReadyRead": ('int',),
- "PySide2.QtNetwork.QSslSocket.writeData": ('str', 'int'),
-# class PySide2.QtNetwork.QTcpServer:
- "PySide2.QtNetwork.QTcpServer.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QTcpServer.addPendingConnection": ('PySide2.QtNetwork.QTcpSocket',),
- "PySide2.QtNetwork.QTcpServer.close": (),
- "PySide2.QtNetwork.QTcpServer.errorString": (),
- "PySide2.QtNetwork.QTcpServer.hasPendingConnections": (),
- "PySide2.QtNetwork.QTcpServer.incomingConnection": ('int',),
- "PySide2.QtNetwork.QTcpServer.isListening": (),
- "PySide2.QtNetwork.QTcpServer.listen": ('PySide2.QtNetwork.QHostAddress', 'int'),
- "PySide2.QtNetwork.QTcpServer.maxPendingConnections": (),
- "PySide2.QtNetwork.QTcpServer.nextPendingConnection": (),
- "PySide2.QtNetwork.QTcpServer.pauseAccepting": (),
- "PySide2.QtNetwork.QTcpServer.proxy": (),
- "PySide2.QtNetwork.QTcpServer.resumeAccepting": (),
- "PySide2.QtNetwork.QTcpServer.serverAddress": (),
- "PySide2.QtNetwork.QTcpServer.serverError": (),
- "PySide2.QtNetwork.QTcpServer.serverPort": (),
- "PySide2.QtNetwork.QTcpServer.setMaxPendingConnections": ('int',),
- "PySide2.QtNetwork.QTcpServer.setProxy": ('PySide2.QtNetwork.QNetworkProxy',),
- "PySide2.QtNetwork.QTcpServer.setSocketDescriptor": ('int',),
- "PySide2.QtNetwork.QTcpServer.socketDescriptor": (),
- "PySide2.QtNetwork.QTcpServer.waitForNewConnection": ('int',),
-# class PySide2.QtNetwork.QTcpSocket:
- "PySide2.QtNetwork.QTcpSocket.__init__": ('PySide2.QtCore.QObject',),
-# class PySide2.QtNetwork.QUdpSocket:
- "PySide2.QtNetwork.QUdpSocket.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtNetwork.QUdpSocket.hasPendingDatagrams": (),
- "PySide2.QtNetwork.QUdpSocket.joinMulticastGroup": [('PySide2.QtNetwork.QHostAddress',), ('PySide2.QtNetwork.QHostAddress', 'PySide2.QtNetwork.QNetworkInterface')],
- "PySide2.QtNetwork.QUdpSocket.leaveMulticastGroup": [('PySide2.QtNetwork.QHostAddress',), ('PySide2.QtNetwork.QHostAddress', 'PySide2.QtNetwork.QNetworkInterface')],
- "PySide2.QtNetwork.QUdpSocket.multicastInterface": (),
- "PySide2.QtNetwork.QUdpSocket.pendingDatagramSize": (),
- "PySide2.QtNetwork.QUdpSocket.readDatagram": ('str', 'int', 'PySide2.QtNetwork.QHostAddress'),
- "PySide2.QtNetwork.QUdpSocket.receiveDatagram": ('int',),
- "PySide2.QtNetwork.QUdpSocket.setMulticastInterface": ('PySide2.QtNetwork.QNetworkInterface',),
- "PySide2.QtNetwork.QUdpSocket.writeDatagram": [('PySide2.QtCore.QByteArray', 'PySide2.QtNetwork.QHostAddress', 'int'), ('PySide2.QtNetwork.QNetworkDatagram',)],
- }) if "PySide2.QtNetwork" in sys.modules else None
-# Module PySide2.QtTest
-sig_dict.update({
-# class PySide2.QtTest.QTest:
-# class PySide2.QtTest.QTest.KeyAction:
-# class PySide2.QtTest.QTest.MouseAction:
-# class PySide2.QtTest.QTest.QBenchmarkMetric:
-# class PySide2.QtTest.QTest.QTouchEventSequence:
- "PySide2.QtTest.QTest.QTouchEventSequence.commit": ('bool',),
- "PySide2.QtTest.QTest.QTouchEventSequence.move": [('int', 'PySide2.QtCore.QPoint', 'PySide2.QtGui.QWindow'), ('int', 'PySide2.QtCore.QPoint', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtTest.QTest.QTouchEventSequence.press": [('int', 'PySide2.QtCore.QPoint', 'PySide2.QtGui.QWindow'), ('int', 'PySide2.QtCore.QPoint', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtTest.QTest.QTouchEventSequence.release": [('int', 'PySide2.QtCore.QPoint', 'PySide2.QtGui.QWindow'), ('int', 'PySide2.QtCore.QPoint', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtTest.QTest.QTouchEventSequence.stationary": ('int',),
-# class PySide2.QtTest.QTest.TestFailMode:
- "PySide2.QtTest.QTest.addColumnInternal": ('int', 'str'),
- "PySide2.QtTest.QTest.asciiToKey": ('int',),
- "PySide2.QtTest.QTest.compare_ptr_helper": ('int', 'int', 'str', 'str', 'str', 'int'),
- "PySide2.QtTest.QTest.compare_string_helper": ('str', 'str', 'str', 'str', 'str', 'int'),
- "PySide2.QtTest.QTest.createTouchDevice": ('PySide2.QtGui.QTouchDevice.DeviceType',),
- "PySide2.QtTest.QTest.currentAppName": (),
- "PySide2.QtTest.QTest.currentDataTag": (),
- "PySide2.QtTest.QTest.currentTestFailed": (),
- "PySide2.QtTest.QTest.currentTestFunction": (),
- "PySide2.QtTest.QTest.ignoreMessage": [('PySide2.QtCore.QtMsgType', 'PySide2.QtCore.QRegularExpression'), ('PySide2.QtCore.QtMsgType', 'str')],
- "PySide2.QtTest.QTest.keyClick": [('PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.Key', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtGui.QWindow', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.Key', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtWidgets.QWidget', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int')],
- "PySide2.QtTest.QTest.keyClicks": ('PySide2.QtWidgets.QWidget', 'str', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'),
- "PySide2.QtTest.QTest.keyEvent": [('PySide2.QtTest.QTest.KeyAction', 'PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.Key', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtTest.QTest.KeyAction', 'PySide2.QtGui.QWindow', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtTest.QTest.KeyAction', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.Key', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtTest.QTest.KeyAction', 'PySide2.QtWidgets.QWidget', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int')],
- "PySide2.QtTest.QTest.keyPress": [('PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.Key', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtGui.QWindow', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.Key', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtWidgets.QWidget', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int')],
- "PySide2.QtTest.QTest.keyRelease": [('PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.Key', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtGui.QWindow', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.Key', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtWidgets.QWidget', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int')],
- "PySide2.QtTest.QTest.keySequence": [('PySide2.QtGui.QWindow', 'PySide2.QtGui.QKeySequence'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtGui.QKeySequence')],
- "PySide2.QtTest.QTest.keyToAscii": ('PySide2.QtCore.Qt.Key',),
- "PySide2.QtTest.QTest.mouseClick": [('PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QPoint', 'int'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QPoint', 'int')],
- "PySide2.QtTest.QTest.mouseDClick": [('PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QPoint', 'int'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QPoint', 'int')],
- "PySide2.QtTest.QTest.mouseEvent": [('PySide2.QtTest.QTest.MouseAction', 'PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QPoint', 'int'), ('PySide2.QtTest.QTest.MouseAction', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QPoint', 'int')],
- "PySide2.QtTest.QTest.mouseMove": [('PySide2.QtGui.QWindow', 'PySide2.QtCore.QPoint', 'int'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.QPoint', 'int')],
- "PySide2.QtTest.QTest.mousePress": [('PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QPoint', 'int'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QPoint', 'int')],
- "PySide2.QtTest.QTest.mouseRelease": [('PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QPoint', 'int'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.MouseButton', 'PySide2.QtCore.Qt.KeyboardModifiers', 'PySide2.QtCore.QPoint', 'int')],
- "PySide2.QtTest.QTest.qCleanup": (),
- "PySide2.QtTest.QTest.qElementData": ('str', 'int'),
- "PySide2.QtTest.QTest.qExpectFail": ('str', 'str', 'PySide2.QtTest.QTest.TestFailMode', 'str', 'int'),
- "PySide2.QtTest.QTest.qFindTestData": ('str', 'str', 'int', 'str'),
- "PySide2.QtTest.QTest.qGlobalData": ('str', 'int'),
- "PySide2.QtTest.QTest.qRun": (),
- "PySide2.QtTest.QTest.qSkip": ('str', 'str', 'int'),
- "PySide2.QtTest.QTest.qWaitForWindowActive": ('PySide2.QtWidgets.QWidget', 'int'),
- "PySide2.QtTest.QTest.qWaitForWindowExposed": ('PySide2.QtWidgets.QWidget', 'int'),
- "PySide2.QtTest.QTest.sendKeyEvent": [('PySide2.QtTest.QTest.KeyAction', 'PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.Key', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtTest.QTest.KeyAction', 'PySide2.QtGui.QWindow', 'PySide2.QtCore.Qt.Key', 'str', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtTest.QTest.KeyAction', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.Key', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int'), ('PySide2.QtTest.QTest.KeyAction', 'PySide2.QtWidgets.QWidget', 'PySide2.QtCore.Qt.Key', 'str', 'PySide2.QtCore.Qt.KeyboardModifiers', 'int')],
- "PySide2.QtTest.QTest.setBenchmarkResult": ('float', 'PySide2.QtTest.QTest.QBenchmarkMetric'),
- "PySide2.QtTest.QTest.setMainSourcePath": ('str', 'str'),
- "PySide2.QtTest.QTest.simulateEvent": [('PySide2.QtGui.QWindow', 'bool', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'str', 'bool', 'int'), ('PySide2.QtWidgets.QWidget', 'bool', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'str', 'bool', 'int')],
- "PySide2.QtTest.QTest.testObject": (),
- "PySide2.QtTest.QTest.toPrettyCString": ('str', 'int'),
- "PySide2.QtTest.QTest.touchEvent": [('PySide2.QtGui.QWindow', 'PySide2.QtGui.QTouchDevice', 'bool'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtGui.QTouchDevice', 'bool')],
- }) if "PySide2.QtTest" in sys.modules else None
-# Module PySide2.QtConcurrent
-sig_dict.update({
-# class PySide2.QtConcurrent.QtConcurrent:
-# class PySide2.QtConcurrent.QtConcurrent.ReduceOption:
-# class PySide2.QtConcurrent.QtConcurrent.ReduceOptions:
-# class PySide2.QtConcurrent.QtConcurrent.ThreadFunctionResult:
- }) if "PySide2.QtConcurrent" in sys.modules else None
-# Module PySide2.QtX11Extras
-sig_dict.update({
-# class PySide2.QtX11Extras.QX11Info:
-# class PySide2.QtX11Extras.QX11Info.PeekOption:
-# class PySide2.QtX11Extras.QX11Info.PeekOptions:
- "PySide2.QtX11Extras.QX11Info.appDpiX": ('int',),
- "PySide2.QtX11Extras.QX11Info.appDpiY": ('int',),
- "PySide2.QtX11Extras.QX11Info.appRootWindow": ('int',),
- "PySide2.QtX11Extras.QX11Info.appScreen": (),
- "PySide2.QtX11Extras.QX11Info.appTime": (),
- "PySide2.QtX11Extras.QX11Info.appUserTime": (),
- "PySide2.QtX11Extras.QX11Info.generatePeekerId": (),
- "PySide2.QtX11Extras.QX11Info.getTimestamp": (),
- "PySide2.QtX11Extras.QX11Info.isCompositingManagerRunning": ('int',),
- "PySide2.QtX11Extras.QX11Info.isPlatformX11": (),
- "PySide2.QtX11Extras.QX11Info.nextStartupId": (),
- "PySide2.QtX11Extras.QX11Info.removePeekerId": ('int',),
- "PySide2.QtX11Extras.QX11Info.setAppTime": ('int',),
- "PySide2.QtX11Extras.QX11Info.setAppUserTime": ('int',),
- "PySide2.QtX11Extras.QX11Info.setNextStartupId": ('PySide2.QtCore.QByteArray',),
- }) if "PySide2.QtX11Extras" in sys.modules else None
-# Module PySide2.QtXml
-sig_dict.update({
-# class PySide2.QtXml.QDomAttr:
- "PySide2.QtXml.QDomAttr.__init__": [(), ('PySide2.QtXml.QDomAttr',)],
- "PySide2.QtXml.QDomAttr.__copy__": (),
- "PySide2.QtXml.QDomAttr.name": (),
- "PySide2.QtXml.QDomAttr.nodeType": (),
- "PySide2.QtXml.QDomAttr.ownerElement": (),
- "PySide2.QtXml.QDomAttr.setValue": ('str',),
- "PySide2.QtXml.QDomAttr.specified": (),
- "PySide2.QtXml.QDomAttr.value": (),
-# class PySide2.QtXml.QDomCDATASection:
- "PySide2.QtXml.QDomCDATASection.__init__": [(), ('PySide2.QtXml.QDomCDATASection',)],
- "PySide2.QtXml.QDomCDATASection.__copy__": (),
- "PySide2.QtXml.QDomCDATASection.nodeType": (),
-# class PySide2.QtXml.QDomCharacterData:
- "PySide2.QtXml.QDomCharacterData.__init__": [(), ('PySide2.QtXml.QDomCharacterData',)],
- "PySide2.QtXml.QDomCharacterData.__copy__": (),
- "PySide2.QtXml.QDomCharacterData.appendData": ('str',),
- "PySide2.QtXml.QDomCharacterData.data": (),
- "PySide2.QtXml.QDomCharacterData.deleteData": ('int', 'int'),
- "PySide2.QtXml.QDomCharacterData.insertData": ('int', 'str'),
- "PySide2.QtXml.QDomCharacterData.length": (),
- "PySide2.QtXml.QDomCharacterData.nodeType": (),
- "PySide2.QtXml.QDomCharacterData.replaceData": ('int', 'int', 'str'),
- "PySide2.QtXml.QDomCharacterData.setData": ('str',),
- "PySide2.QtXml.QDomCharacterData.substringData": ('int', 'int'),
-# class PySide2.QtXml.QDomComment:
- "PySide2.QtXml.QDomComment.__init__": [(), ('PySide2.QtXml.QDomComment',)],
- "PySide2.QtXml.QDomComment.__copy__": (),
- "PySide2.QtXml.QDomComment.nodeType": (),
-# class PySide2.QtXml.QDomDocument:
- "PySide2.QtXml.QDomDocument.__init__": [(), ('PySide2.QtXml.QDomDocument',), ('PySide2.QtXml.QDomDocumentType',), ('str',)],
- "PySide2.QtXml.QDomDocument.__copy__": (),
- "PySide2.QtXml.QDomDocument.createAttribute": ('str',),
- "PySide2.QtXml.QDomDocument.createAttributeNS": ('str', 'str'),
- "PySide2.QtXml.QDomDocument.createCDATASection": ('str',),
- "PySide2.QtXml.QDomDocument.createComment": ('str',),
- "PySide2.QtXml.QDomDocument.createDocumentFragment": (),
- "PySide2.QtXml.QDomDocument.createElement": ('str',),
- "PySide2.QtXml.QDomDocument.createElementNS": ('str', 'str'),
- "PySide2.QtXml.QDomDocument.createEntityReference": ('str',),
- "PySide2.QtXml.QDomDocument.createProcessingInstruction": ('str', 'str'),
- "PySide2.QtXml.QDomDocument.createTextNode": ('str',),
- "PySide2.QtXml.QDomDocument.doctype": (),
- "PySide2.QtXml.QDomDocument.documentElement": (),
- "PySide2.QtXml.QDomDocument.elementById": ('str',),
- "PySide2.QtXml.QDomDocument.elementsByTagName": ('str',),
- "PySide2.QtXml.QDomDocument.elementsByTagNameNS": ('str', 'str'),
- "PySide2.QtXml.QDomDocument.implementation": (),
- "PySide2.QtXml.QDomDocument.importNode": ('PySide2.QtXml.QDomNode', 'bool'),
- "PySide2.QtXml.QDomDocument.nodeType": (),
- "PySide2.QtXml.QDomDocument.setContent": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QByteArray', 'bool'), ('PySide2.QtCore.QIODevice',), ('PySide2.QtCore.QIODevice', 'bool'), ('PySide2.QtXml.QXmlInputSource', 'PySide2.QtXml.QXmlReader'), ('PySide2.QtXml.QXmlInputSource', 'bool'), ('str',), ('str', 'bool')],
- "PySide2.QtXml.QDomDocument.toByteArray": ('int',),
- "PySide2.QtXml.QDomDocument.toString": ('int',),
-# class PySide2.QtXml.QDomDocumentFragment:
- "PySide2.QtXml.QDomDocumentFragment.__init__": [(), ('PySide2.QtXml.QDomDocumentFragment',)],
- "PySide2.QtXml.QDomDocumentFragment.__copy__": (),
- "PySide2.QtXml.QDomDocumentFragment.nodeType": (),
-# class PySide2.QtXml.QDomDocumentType:
- "PySide2.QtXml.QDomDocumentType.__init__": [(), ('PySide2.QtXml.QDomDocumentType',)],
- "PySide2.QtXml.QDomDocumentType.__copy__": (),
- "PySide2.QtXml.QDomDocumentType.entities": (),
- "PySide2.QtXml.QDomDocumentType.internalSubset": (),
- "PySide2.QtXml.QDomDocumentType.name": (),
- "PySide2.QtXml.QDomDocumentType.nodeType": (),
- "PySide2.QtXml.QDomDocumentType.notations": (),
- "PySide2.QtXml.QDomDocumentType.publicId": (),
- "PySide2.QtXml.QDomDocumentType.systemId": (),
-# class PySide2.QtXml.QDomElement:
- "PySide2.QtXml.QDomElement.__init__": [(), ('PySide2.QtXml.QDomElement',)],
- "PySide2.QtXml.QDomElement.__copy__": (),
- "PySide2.QtXml.QDomElement.attribute": ('str', 'str'),
- "PySide2.QtXml.QDomElement.attributeNS": ('str', 'str', 'str'),
- "PySide2.QtXml.QDomElement.attributeNode": ('str',),
- "PySide2.QtXml.QDomElement.attributeNodeNS": ('str', 'str'),
- "PySide2.QtXml.QDomElement.attributes": (),
- "PySide2.QtXml.QDomElement.elementsByTagName": ('str',),
- "PySide2.QtXml.QDomElement.elementsByTagNameNS": ('str', 'str'),
- "PySide2.QtXml.QDomElement.hasAttribute": ('str',),
- "PySide2.QtXml.QDomElement.hasAttributeNS": ('str', 'str'),
- "PySide2.QtXml.QDomElement.nodeType": (),
- "PySide2.QtXml.QDomElement.removeAttribute": ('str',),
- "PySide2.QtXml.QDomElement.removeAttributeNS": ('str', 'str'),
- "PySide2.QtXml.QDomElement.removeAttributeNode": ('PySide2.QtXml.QDomAttr',),
- "PySide2.QtXml.QDomElement.setAttribute": [('str', 'float'), ('str', 'int'), ('str', 'str')],
- "PySide2.QtXml.QDomElement.setAttributeNS": [('str', 'str', 'float'), ('str', 'str', 'int'), ('str', 'str', 'str')],
- "PySide2.QtXml.QDomElement.setAttributeNode": ('PySide2.QtXml.QDomAttr',),
- "PySide2.QtXml.QDomElement.setAttributeNodeNS": ('PySide2.QtXml.QDomAttr',),
- "PySide2.QtXml.QDomElement.setTagName": ('str',),
- "PySide2.QtXml.QDomElement.tagName": (),
- "PySide2.QtXml.QDomElement.text": (),
-# class PySide2.QtXml.QDomEntity:
- "PySide2.QtXml.QDomEntity.__init__": [(), ('PySide2.QtXml.QDomEntity',)],
- "PySide2.QtXml.QDomEntity.__copy__": (),
- "PySide2.QtXml.QDomEntity.nodeType": (),
- "PySide2.QtXml.QDomEntity.notationName": (),
- "PySide2.QtXml.QDomEntity.publicId": (),
- "PySide2.QtXml.QDomEntity.systemId": (),
-# class PySide2.QtXml.QDomEntityReference:
- "PySide2.QtXml.QDomEntityReference.__init__": [(), ('PySide2.QtXml.QDomEntityReference',)],
- "PySide2.QtXml.QDomEntityReference.__copy__": (),
- "PySide2.QtXml.QDomEntityReference.nodeType": (),
-# class PySide2.QtXml.QDomImplementation:
-# class PySide2.QtXml.QDomImplementation.InvalidDataPolicy:
- "PySide2.QtXml.QDomImplementation.__init__": [(), ('PySide2.QtXml.QDomImplementation',)],
- "PySide2.QtXml.QDomImplementation.__copy__": (),
- "PySide2.QtXml.QDomImplementation.createDocument": ('str', 'str', 'PySide2.QtXml.QDomDocumentType'),
- "PySide2.QtXml.QDomImplementation.createDocumentType": ('str', 'str', 'str'),
- "PySide2.QtXml.QDomImplementation.hasFeature": ('str', 'str'),
- "PySide2.QtXml.QDomImplementation.invalidDataPolicy": (),
- "PySide2.QtXml.QDomImplementation.isNull": (),
- "PySide2.QtXml.QDomImplementation.setInvalidDataPolicy": ('PySide2.QtXml.QDomImplementation.InvalidDataPolicy',),
-# class PySide2.QtXml.QDomNamedNodeMap:
- "PySide2.QtXml.QDomNamedNodeMap.__init__": [(), ('PySide2.QtXml.QDomNamedNodeMap',)],
- "PySide2.QtXml.QDomNamedNodeMap.__copy__": (),
- "PySide2.QtXml.QDomNamedNodeMap.contains": ('str',),
- "PySide2.QtXml.QDomNamedNodeMap.count": (),
- "PySide2.QtXml.QDomNamedNodeMap.isEmpty": (),
- "PySide2.QtXml.QDomNamedNodeMap.item": ('int',),
- "PySide2.QtXml.QDomNamedNodeMap.length": (),
- "PySide2.QtXml.QDomNamedNodeMap.namedItem": ('str',),
- "PySide2.QtXml.QDomNamedNodeMap.namedItemNS": ('str', 'str'),
- "PySide2.QtXml.QDomNamedNodeMap.removeNamedItem": ('str',),
- "PySide2.QtXml.QDomNamedNodeMap.removeNamedItemNS": ('str', 'str'),
- "PySide2.QtXml.QDomNamedNodeMap.setNamedItem": ('PySide2.QtXml.QDomNode',),
- "PySide2.QtXml.QDomNamedNodeMap.setNamedItemNS": ('PySide2.QtXml.QDomNode',),
- "PySide2.QtXml.QDomNamedNodeMap.size": (),
-# class PySide2.QtXml.QDomNode:
-# class PySide2.QtXml.QDomNode.EncodingPolicy:
-# class PySide2.QtXml.QDomNode.NodeType:
- "PySide2.QtXml.QDomNode.__init__": [(), ('PySide2.QtXml.QDomNode',)],
- "PySide2.QtXml.QDomNode.__copy__": (),
- "PySide2.QtXml.QDomNode.__lshift__": ('PySide2.QtCore.QTextStream',),
- "PySide2.QtXml.QDomNode.appendChild": ('PySide2.QtXml.QDomNode',),
- "PySide2.QtXml.QDomNode.attributes": (),
- "PySide2.QtXml.QDomNode.childNodes": (),
- "PySide2.QtXml.QDomNode.clear": (),
- "PySide2.QtXml.QDomNode.cloneNode": ('bool',),
- "PySide2.QtXml.QDomNode.columnNumber": (),
- "PySide2.QtXml.QDomNode.firstChild": (),
- "PySide2.QtXml.QDomNode.firstChildElement": ('str',),
- "PySide2.QtXml.QDomNode.hasAttributes": (),
- "PySide2.QtXml.QDomNode.hasChildNodes": (),
- "PySide2.QtXml.QDomNode.insertAfter": ('PySide2.QtXml.QDomNode', 'PySide2.QtXml.QDomNode'),
- "PySide2.QtXml.QDomNode.insertBefore": ('PySide2.QtXml.QDomNode', 'PySide2.QtXml.QDomNode'),
- "PySide2.QtXml.QDomNode.isAttr": (),
- "PySide2.QtXml.QDomNode.isCDATASection": (),
- "PySide2.QtXml.QDomNode.isCharacterData": (),
- "PySide2.QtXml.QDomNode.isComment": (),
- "PySide2.QtXml.QDomNode.isDocument": (),
- "PySide2.QtXml.QDomNode.isDocumentFragment": (),
- "PySide2.QtXml.QDomNode.isDocumentType": (),
- "PySide2.QtXml.QDomNode.isElement": (),
- "PySide2.QtXml.QDomNode.isEntity": (),
- "PySide2.QtXml.QDomNode.isEntityReference": (),
- "PySide2.QtXml.QDomNode.isNotation": (),
- "PySide2.QtXml.QDomNode.isNull": (),
- "PySide2.QtXml.QDomNode.isProcessingInstruction": (),
- "PySide2.QtXml.QDomNode.isSupported": ('str', 'str'),
- "PySide2.QtXml.QDomNode.isText": (),
- "PySide2.QtXml.QDomNode.lastChild": (),
- "PySide2.QtXml.QDomNode.lastChildElement": ('str',),
- "PySide2.QtXml.QDomNode.lineNumber": (),
- "PySide2.QtXml.QDomNode.localName": (),
- "PySide2.QtXml.QDomNode.namedItem": ('str',),
- "PySide2.QtXml.QDomNode.namespaceURI": (),
- "PySide2.QtXml.QDomNode.nextSibling": (),
- "PySide2.QtXml.QDomNode.nextSiblingElement": ('str',),
- "PySide2.QtXml.QDomNode.nodeName": (),
- "PySide2.QtXml.QDomNode.nodeType": (),
- "PySide2.QtXml.QDomNode.nodeValue": (),
- "PySide2.QtXml.QDomNode.normalize": (),
- "PySide2.QtXml.QDomNode.ownerDocument": (),
- "PySide2.QtXml.QDomNode.parentNode": (),
- "PySide2.QtXml.QDomNode.prefix": (),
- "PySide2.QtXml.QDomNode.previousSibling": (),
- "PySide2.QtXml.QDomNode.previousSiblingElement": ('str',),
- "PySide2.QtXml.QDomNode.removeChild": ('PySide2.QtXml.QDomNode',),
- "PySide2.QtXml.QDomNode.replaceChild": ('PySide2.QtXml.QDomNode', 'PySide2.QtXml.QDomNode'),
- "PySide2.QtXml.QDomNode.save": ('PySide2.QtCore.QTextStream', 'int', 'PySide2.QtXml.QDomNode.EncodingPolicy'),
- "PySide2.QtXml.QDomNode.setNodeValue": ('str',),
- "PySide2.QtXml.QDomNode.setPrefix": ('str',),
- "PySide2.QtXml.QDomNode.toAttr": (),
- "PySide2.QtXml.QDomNode.toCDATASection": (),
- "PySide2.QtXml.QDomNode.toCharacterData": (),
- "PySide2.QtXml.QDomNode.toComment": (),
- "PySide2.QtXml.QDomNode.toDocument": (),
- "PySide2.QtXml.QDomNode.toDocumentFragment": (),
- "PySide2.QtXml.QDomNode.toDocumentType": (),
- "PySide2.QtXml.QDomNode.toElement": (),
- "PySide2.QtXml.QDomNode.toEntity": (),
- "PySide2.QtXml.QDomNode.toEntityReference": (),
- "PySide2.QtXml.QDomNode.toNotation": (),
- "PySide2.QtXml.QDomNode.toProcessingInstruction": (),
- "PySide2.QtXml.QDomNode.toText": (),
-# class PySide2.QtXml.QDomNodeList:
- "PySide2.QtXml.QDomNodeList.__init__": [(), ('PySide2.QtXml.QDomNodeList',)],
- "PySide2.QtXml.QDomNodeList.__copy__": (),
- "PySide2.QtXml.QDomNodeList.at": ('int',),
- "PySide2.QtXml.QDomNodeList.count": (),
- "PySide2.QtXml.QDomNodeList.isEmpty": (),
- "PySide2.QtXml.QDomNodeList.item": ('int',),
- "PySide2.QtXml.QDomNodeList.length": (),
- "PySide2.QtXml.QDomNodeList.size": (),
-# class PySide2.QtXml.QDomNotation:
- "PySide2.QtXml.QDomNotation.__init__": [(), ('PySide2.QtXml.QDomNotation',)],
- "PySide2.QtXml.QDomNotation.__copy__": (),
- "PySide2.QtXml.QDomNotation.nodeType": (),
- "PySide2.QtXml.QDomNotation.publicId": (),
- "PySide2.QtXml.QDomNotation.systemId": (),
-# class PySide2.QtXml.QDomProcessingInstruction:
- "PySide2.QtXml.QDomProcessingInstruction.__init__": [(), ('PySide2.QtXml.QDomProcessingInstruction',)],
- "PySide2.QtXml.QDomProcessingInstruction.__copy__": (),
- "PySide2.QtXml.QDomProcessingInstruction.data": (),
- "PySide2.QtXml.QDomProcessingInstruction.nodeType": (),
- "PySide2.QtXml.QDomProcessingInstruction.setData": ('str',),
- "PySide2.QtXml.QDomProcessingInstruction.target": (),
-# class PySide2.QtXml.QDomText:
- "PySide2.QtXml.QDomText.__init__": [(), ('PySide2.QtXml.QDomText',)],
- "PySide2.QtXml.QDomText.__copy__": (),
- "PySide2.QtXml.QDomText.nodeType": (),
- "PySide2.QtXml.QDomText.splitText": ('int',),
-# class PySide2.QtXml.QXmlAttributes:
- "PySide2.QtXml.QXmlAttributes.__init__": [(), ('PySide2.QtXml.QXmlAttributes',)],
- "PySide2.QtXml.QXmlAttributes.__copy__": (),
- "PySide2.QtXml.QXmlAttributes.append": ('str', 'str', 'str', 'str'),
- "PySide2.QtXml.QXmlAttributes.clear": (),
- "PySide2.QtXml.QXmlAttributes.count": (),
- "PySide2.QtXml.QXmlAttributes.index": [('str',), ('str', 'str')],
- "PySide2.QtXml.QXmlAttributes.length": (),
- "PySide2.QtXml.QXmlAttributes.localName": ('int',),
- "PySide2.QtXml.QXmlAttributes.qName": ('int',),
- "PySide2.QtXml.QXmlAttributes.swap": ('PySide2.QtXml.QXmlAttributes',),
- "PySide2.QtXml.QXmlAttributes.type": [('int',), ('str',), ('str', 'str')],
- "PySide2.QtXml.QXmlAttributes.uri": ('int',),
- "PySide2.QtXml.QXmlAttributes.value": [('int',), ('str',), ('str', 'str')],
-# class PySide2.QtXml.QXmlContentHandler:
- "PySide2.QtXml.QXmlContentHandler.__init__": (),
- "PySide2.QtXml.QXmlContentHandler.characters": ('str',),
- "PySide2.QtXml.QXmlContentHandler.endDocument": (),
- "PySide2.QtXml.QXmlContentHandler.endElement": ('str', 'str', 'str'),
- "PySide2.QtXml.QXmlContentHandler.endPrefixMapping": ('str',),
- "PySide2.QtXml.QXmlContentHandler.errorString": (),
- "PySide2.QtXml.QXmlContentHandler.ignorableWhitespace": ('str',),
- "PySide2.QtXml.QXmlContentHandler.processingInstruction": ('str', 'str'),
- "PySide2.QtXml.QXmlContentHandler.setDocumentLocator": ('PySide2.QtXml.QXmlLocator',),
- "PySide2.QtXml.QXmlContentHandler.skippedEntity": ('str',),
- "PySide2.QtXml.QXmlContentHandler.startDocument": (),
- "PySide2.QtXml.QXmlContentHandler.startElement": ('str', 'str', 'str', 'PySide2.QtXml.QXmlAttributes'),
- "PySide2.QtXml.QXmlContentHandler.startPrefixMapping": ('str', 'str'),
-# class PySide2.QtXml.QXmlDTDHandler:
- "PySide2.QtXml.QXmlDTDHandler.__init__": (),
- "PySide2.QtXml.QXmlDTDHandler.errorString": (),
- "PySide2.QtXml.QXmlDTDHandler.notationDecl": ('str', 'str', 'str'),
- "PySide2.QtXml.QXmlDTDHandler.unparsedEntityDecl": ('str', 'str', 'str', 'str'),
-# class PySide2.QtXml.QXmlDeclHandler:
- "PySide2.QtXml.QXmlDeclHandler.__init__": (),
- "PySide2.QtXml.QXmlDeclHandler.attributeDecl": ('str', 'str', 'str', 'str', 'str'),
- "PySide2.QtXml.QXmlDeclHandler.errorString": (),
- "PySide2.QtXml.QXmlDeclHandler.externalEntityDecl": ('str', 'str', 'str'),
- "PySide2.QtXml.QXmlDeclHandler.internalEntityDecl": ('str', 'str'),
-# class PySide2.QtXml.QXmlDefaultHandler:
- "PySide2.QtXml.QXmlDefaultHandler.__init__": (),
- "PySide2.QtXml.QXmlDefaultHandler.attributeDecl": ('str', 'str', 'str', 'str', 'str'),
- "PySide2.QtXml.QXmlDefaultHandler.characters": ('str',),
- "PySide2.QtXml.QXmlDefaultHandler.comment": ('str',),
- "PySide2.QtXml.QXmlDefaultHandler.endCDATA": (),
- "PySide2.QtXml.QXmlDefaultHandler.endDTD": (),
- "PySide2.QtXml.QXmlDefaultHandler.endDocument": (),
- "PySide2.QtXml.QXmlDefaultHandler.endElement": ('str', 'str', 'str'),
- "PySide2.QtXml.QXmlDefaultHandler.endEntity": ('str',),
- "PySide2.QtXml.QXmlDefaultHandler.endPrefixMapping": ('str',),
- "PySide2.QtXml.QXmlDefaultHandler.error": ('PySide2.QtXml.QXmlParseException',),
- "PySide2.QtXml.QXmlDefaultHandler.errorString": (),
- "PySide2.QtXml.QXmlDefaultHandler.externalEntityDecl": ('str', 'str', 'str'),
- "PySide2.QtXml.QXmlDefaultHandler.fatalError": ('PySide2.QtXml.QXmlParseException',),
- "PySide2.QtXml.QXmlDefaultHandler.ignorableWhitespace": ('str',),
- "PySide2.QtXml.QXmlDefaultHandler.internalEntityDecl": ('str', 'str'),
- "PySide2.QtXml.QXmlDefaultHandler.notationDecl": ('str', 'str', 'str'),
- "PySide2.QtXml.QXmlDefaultHandler.processingInstruction": ('str', 'str'),
- "PySide2.QtXml.QXmlDefaultHandler.resolveEntity": ('str', 'str', 'PySide2.QtXml.QXmlInputSource'),
- "PySide2.QtXml.QXmlDefaultHandler.setDocumentLocator": ('PySide2.QtXml.QXmlLocator',),
- "PySide2.QtXml.QXmlDefaultHandler.skippedEntity": ('str',),
- "PySide2.QtXml.QXmlDefaultHandler.startCDATA": (),
- "PySide2.QtXml.QXmlDefaultHandler.startDTD": ('str', 'str', 'str'),
- "PySide2.QtXml.QXmlDefaultHandler.startDocument": (),
- "PySide2.QtXml.QXmlDefaultHandler.startElement": ('str', 'str', 'str', 'PySide2.QtXml.QXmlAttributes'),
- "PySide2.QtXml.QXmlDefaultHandler.startEntity": ('str',),
- "PySide2.QtXml.QXmlDefaultHandler.startPrefixMapping": ('str', 'str'),
- "PySide2.QtXml.QXmlDefaultHandler.unparsedEntityDecl": ('str', 'str', 'str', 'str'),
- "PySide2.QtXml.QXmlDefaultHandler.warning": ('PySide2.QtXml.QXmlParseException',),
-# class PySide2.QtXml.QXmlEntityResolver:
- "PySide2.QtXml.QXmlEntityResolver.__init__": (),
- "PySide2.QtXml.QXmlEntityResolver.errorString": (),
- "PySide2.QtXml.QXmlEntityResolver.resolveEntity": ('str', 'str', 'PySide2.QtXml.QXmlInputSource'),
-# class PySide2.QtXml.QXmlErrorHandler:
- "PySide2.QtXml.QXmlErrorHandler.__init__": (),
- "PySide2.QtXml.QXmlErrorHandler.error": ('PySide2.QtXml.QXmlParseException',),
- "PySide2.QtXml.QXmlErrorHandler.errorString": (),
- "PySide2.QtXml.QXmlErrorHandler.fatalError": ('PySide2.QtXml.QXmlParseException',),
- "PySide2.QtXml.QXmlErrorHandler.warning": ('PySide2.QtXml.QXmlParseException',),
-# class PySide2.QtXml.QXmlInputSource:
- "PySide2.QtXml.QXmlInputSource.__init__": [(), ('PySide2.QtCore.QIODevice',)],
- "PySide2.QtXml.QXmlInputSource.data": (),
- "PySide2.QtXml.QXmlInputSource.fetchData": (),
- "PySide2.QtXml.QXmlInputSource.fromRawData": ('PySide2.QtCore.QByteArray', 'bool'),
- "PySide2.QtXml.QXmlInputSource.reset": (),
- "PySide2.QtXml.QXmlInputSource.setData": [('PySide2.QtCore.QByteArray',), ('str',)],
-# class PySide2.QtXml.QXmlLexicalHandler:
- "PySide2.QtXml.QXmlLexicalHandler.__init__": (),
- "PySide2.QtXml.QXmlLexicalHandler.comment": ('str',),
- "PySide2.QtXml.QXmlLexicalHandler.endCDATA": (),
- "PySide2.QtXml.QXmlLexicalHandler.endDTD": (),
- "PySide2.QtXml.QXmlLexicalHandler.endEntity": ('str',),
- "PySide2.QtXml.QXmlLexicalHandler.errorString": (),
- "PySide2.QtXml.QXmlLexicalHandler.startCDATA": (),
- "PySide2.QtXml.QXmlLexicalHandler.startDTD": ('str', 'str', 'str'),
- "PySide2.QtXml.QXmlLexicalHandler.startEntity": ('str',),
-# class PySide2.QtXml.QXmlLocator:
- "PySide2.QtXml.QXmlLocator.__init__": (),
- "PySide2.QtXml.QXmlLocator.columnNumber": (),
- "PySide2.QtXml.QXmlLocator.lineNumber": (),
-# class PySide2.QtXml.QXmlNamespaceSupport:
- "PySide2.QtXml.QXmlNamespaceSupport.__init__": (),
- "PySide2.QtXml.QXmlNamespaceSupport.popContext": (),
- "PySide2.QtXml.QXmlNamespaceSupport.prefix": ('str',),
- "PySide2.QtXml.QXmlNamespaceSupport.prefixes": [(), ('str',)],
- "PySide2.QtXml.QXmlNamespaceSupport.processName": ('str', 'bool', 'str', 'str'),
- "PySide2.QtXml.QXmlNamespaceSupport.pushContext": (),
- "PySide2.QtXml.QXmlNamespaceSupport.reset": (),
- "PySide2.QtXml.QXmlNamespaceSupport.setPrefix": ('str', 'str'),
- "PySide2.QtXml.QXmlNamespaceSupport.splitName": ('str', 'str', 'str'),
- "PySide2.QtXml.QXmlNamespaceSupport.uri": ('str',),
-# class PySide2.QtXml.QXmlParseException:
- "PySide2.QtXml.QXmlParseException.__init__": [('PySide2.QtXml.QXmlParseException',), ('str', 'int', 'int', 'str', 'str')],
- "PySide2.QtXml.QXmlParseException.columnNumber": (),
- "PySide2.QtXml.QXmlParseException.lineNumber": (),
- "PySide2.QtXml.QXmlParseException.message": (),
- "PySide2.QtXml.QXmlParseException.publicId": (),
- "PySide2.QtXml.QXmlParseException.systemId": (),
-# class PySide2.QtXml.QXmlReader:
- "PySide2.QtXml.QXmlReader.__init__": (),
- "PySide2.QtXml.QXmlReader.DTDHandler": (),
- "PySide2.QtXml.QXmlReader.contentHandler": (),
- "PySide2.QtXml.QXmlReader.declHandler": (),
- "PySide2.QtXml.QXmlReader.entityResolver": (),
- "PySide2.QtXml.QXmlReader.errorHandler": (),
- "PySide2.QtXml.QXmlReader.feature": ('str',),
- "PySide2.QtXml.QXmlReader.hasFeature": ('str',),
- "PySide2.QtXml.QXmlReader.hasProperty": ('str',),
- "PySide2.QtXml.QXmlReader.lexicalHandler": (),
- "PySide2.QtXml.QXmlReader.parse": ('PySide2.QtXml.QXmlInputSource',),
- "PySide2.QtXml.QXmlReader.property": ('str',),
- "PySide2.QtXml.QXmlReader.setContentHandler": ('PySide2.QtXml.QXmlContentHandler',),
- "PySide2.QtXml.QXmlReader.setDTDHandler": ('PySide2.QtXml.QXmlDTDHandler',),
- "PySide2.QtXml.QXmlReader.setDeclHandler": ('PySide2.QtXml.QXmlDeclHandler',),
- "PySide2.QtXml.QXmlReader.setEntityResolver": ('PySide2.QtXml.QXmlEntityResolver',),
- "PySide2.QtXml.QXmlReader.setErrorHandler": ('PySide2.QtXml.QXmlErrorHandler',),
- "PySide2.QtXml.QXmlReader.setFeature": ('str', 'bool'),
- "PySide2.QtXml.QXmlReader.setLexicalHandler": ('PySide2.QtXml.QXmlLexicalHandler',),
- "PySide2.QtXml.QXmlReader.setProperty": ('str', 'int'),
-# class PySide2.QtXml.QXmlSimpleReader:
- "PySide2.QtXml.QXmlSimpleReader.__init__": (),
- "PySide2.QtXml.QXmlSimpleReader.DTDHandler": (),
- "PySide2.QtXml.QXmlSimpleReader.contentHandler": (),
- "PySide2.QtXml.QXmlSimpleReader.declHandler": (),
- "PySide2.QtXml.QXmlSimpleReader.entityResolver": (),
- "PySide2.QtXml.QXmlSimpleReader.errorHandler": (),
- "PySide2.QtXml.QXmlSimpleReader.feature": ('str',),
- "PySide2.QtXml.QXmlSimpleReader.hasFeature": ('str',),
- "PySide2.QtXml.QXmlSimpleReader.hasProperty": ('str',),
- "PySide2.QtXml.QXmlSimpleReader.lexicalHandler": (),
- "PySide2.QtXml.QXmlSimpleReader.parse": [('PySide2.QtXml.QXmlInputSource',), ('PySide2.QtXml.QXmlInputSource', 'bool')],
- "PySide2.QtXml.QXmlSimpleReader.parseContinue": (),
- "PySide2.QtXml.QXmlSimpleReader.property": ('str',),
- "PySide2.QtXml.QXmlSimpleReader.setContentHandler": ('PySide2.QtXml.QXmlContentHandler',),
- "PySide2.QtXml.QXmlSimpleReader.setDTDHandler": ('PySide2.QtXml.QXmlDTDHandler',),
- "PySide2.QtXml.QXmlSimpleReader.setDeclHandler": ('PySide2.QtXml.QXmlDeclHandler',),
- "PySide2.QtXml.QXmlSimpleReader.setEntityResolver": ('PySide2.QtXml.QXmlEntityResolver',),
- "PySide2.QtXml.QXmlSimpleReader.setErrorHandler": ('PySide2.QtXml.QXmlErrorHandler',),
- "PySide2.QtXml.QXmlSimpleReader.setFeature": ('str', 'bool'),
- "PySide2.QtXml.QXmlSimpleReader.setLexicalHandler": ('PySide2.QtXml.QXmlLexicalHandler',),
- "PySide2.QtXml.QXmlSimpleReader.setProperty": ('str', 'int'),
- }) if "PySide2.QtXml" in sys.modules else None
-# Module PySide2.QtXmlPatterns
-sig_dict.update({
-# class PySide2.QtXmlPatterns.QAbstractMessageHandler:
- "PySide2.QtXmlPatterns.QAbstractMessageHandler.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtXmlPatterns.QAbstractMessageHandler.handleMessage": ('PySide2.QtCore.QtMsgType', 'str', 'PySide2.QtCore.QUrl', 'PySide2.QtXmlPatterns.QSourceLocation'),
- "PySide2.QtXmlPatterns.QAbstractMessageHandler.message": ('PySide2.QtCore.QtMsgType', 'str', 'PySide2.QtCore.QUrl', 'PySide2.QtXmlPatterns.QSourceLocation'),
-# class PySide2.QtXmlPatterns.QAbstractUriResolver:
- "PySide2.QtXmlPatterns.QAbstractUriResolver.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtXmlPatterns.QAbstractUriResolver.resolve": ('PySide2.QtCore.QUrl', 'PySide2.QtCore.QUrl'),
-# class PySide2.QtXmlPatterns.QAbstractXmlNodeModel:
-# class PySide2.QtXmlPatterns.QAbstractXmlNodeModel.NodeCopySetting:
-# class PySide2.QtXmlPatterns.QAbstractXmlNodeModel.SimpleAxis:
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.__init__": (),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.attributes": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.baseUri": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.compareOrder": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex', 'PySide2.QtXmlPatterns.QXmlNodeModelIndex'),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.createIndex": [('int',), ('int', 'int')],
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.documentUri": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.elementById": ('PySide2.QtXmlPatterns.QXmlName',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.isDeepEqual": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex', 'PySide2.QtXmlPatterns.QXmlNodeModelIndex'),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.kind": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.name": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.namespaceBindings": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.namespaceForPrefix": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex', 'Missing("PySide2.QtXmlPatterns.QXmlName.PrefixCode")'),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.nextFromSimpleAxis": ('PySide2.QtXmlPatterns.QAbstractXmlNodeModel.SimpleAxis', 'PySide2.QtXmlPatterns.QXmlNodeModelIndex'),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.nodesByIdref": ('PySide2.QtXmlPatterns.QXmlName',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.root": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.sendNamespaces": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex', 'PySide2.QtXmlPatterns.QAbstractXmlReceiver'),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.sourceLocation": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.stringValue": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',),
- "PySide2.QtXmlPatterns.QAbstractXmlNodeModel.typedValue": ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',),
-# class PySide2.QtXmlPatterns.QAbstractXmlReceiver:
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.__init__": (),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.atomicValue": ('typing.Any',),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.attribute": ('PySide2.QtXmlPatterns.QXmlName', 'str'),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.characters": ('str',),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.comment": ('str',),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.endDocument": (),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.endElement": (),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.endOfSequence": (),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.namespaceBinding": ('PySide2.QtXmlPatterns.QXmlName',),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.processingInstruction": ('PySide2.QtXmlPatterns.QXmlName', 'str'),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.startDocument": (),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.startElement": ('PySide2.QtXmlPatterns.QXmlName',),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.startOfSequence": (),
- "PySide2.QtXmlPatterns.QAbstractXmlReceiver.whitespaceOnly": ('str',),
-# class PySide2.QtXmlPatterns.QSourceLocation:
- "PySide2.QtXmlPatterns.QSourceLocation.__init__": [(), ('PySide2.QtCore.QUrl', 'int', 'int'), ('PySide2.QtXmlPatterns.QSourceLocation',)],
- "PySide2.QtXmlPatterns.QSourceLocation.__copy__": (),
- "PySide2.QtXmlPatterns.QSourceLocation.column": (),
- "PySide2.QtXmlPatterns.QSourceLocation.isNull": (),
- "PySide2.QtXmlPatterns.QSourceLocation.line": (),
- "PySide2.QtXmlPatterns.QSourceLocation.setColumn": ('int',),
- "PySide2.QtXmlPatterns.QSourceLocation.setLine": ('int',),
- "PySide2.QtXmlPatterns.QSourceLocation.setUri": ('PySide2.QtCore.QUrl',),
- "PySide2.QtXmlPatterns.QSourceLocation.uri": (),
-# class PySide2.QtXmlPatterns.QXmlFormatter:
- "PySide2.QtXmlPatterns.QXmlFormatter.__init__": ('PySide2.QtXmlPatterns.QXmlQuery', 'PySide2.QtCore.QIODevice'),
- "PySide2.QtXmlPatterns.QXmlFormatter.atomicValue": ('typing.Any',),
- "PySide2.QtXmlPatterns.QXmlFormatter.attribute": ('PySide2.QtXmlPatterns.QXmlName', 'str'),
- "PySide2.QtXmlPatterns.QXmlFormatter.characters": ('str',),
- "PySide2.QtXmlPatterns.QXmlFormatter.comment": ('str',),
- "PySide2.QtXmlPatterns.QXmlFormatter.endDocument": (),
- "PySide2.QtXmlPatterns.QXmlFormatter.endElement": (),
- "PySide2.QtXmlPatterns.QXmlFormatter.endOfSequence": (),
- "PySide2.QtXmlPatterns.QXmlFormatter.indentationDepth": (),
- "PySide2.QtXmlPatterns.QXmlFormatter.processingInstruction": ('PySide2.QtXmlPatterns.QXmlName', 'str'),
- "PySide2.QtXmlPatterns.QXmlFormatter.setIndentationDepth": ('int',),
- "PySide2.QtXmlPatterns.QXmlFormatter.startDocument": (),
- "PySide2.QtXmlPatterns.QXmlFormatter.startElement": ('PySide2.QtXmlPatterns.QXmlName',),
- "PySide2.QtXmlPatterns.QXmlFormatter.startOfSequence": (),
-# class PySide2.QtXmlPatterns.QXmlItem:
- "PySide2.QtXmlPatterns.QXmlItem.__init__": [(), ('PySide2.QtXmlPatterns.QXmlItem',), ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',), ('typing.Any',)],
- "PySide2.QtXmlPatterns.QXmlItem.__copy__": (),
- "PySide2.QtXmlPatterns.QXmlItem.isAtomicValue": (),
- "PySide2.QtXmlPatterns.QXmlItem.isNode": (),
- "PySide2.QtXmlPatterns.QXmlItem.isNull": (),
- "PySide2.QtXmlPatterns.QXmlItem.toAtomicValue": (),
- "PySide2.QtXmlPatterns.QXmlItem.toNodeModelIndex": (),
-# class PySide2.QtXmlPatterns.QXmlName:
- "PySide2.QtXmlPatterns.QXmlName.__init__": [(), ('PySide2.QtXmlPatterns.QXmlName',), ('PySide2.QtXmlPatterns.QXmlNamePool', 'str', 'str', 'str')],
- "PySide2.QtXmlPatterns.QXmlName.__copy__": (),
- "PySide2.QtXmlPatterns.QXmlName.fromClarkName": ('str', 'PySide2.QtXmlPatterns.QXmlNamePool'),
- "PySide2.QtXmlPatterns.QXmlName.isNCName": ('str',),
- "PySide2.QtXmlPatterns.QXmlName.isNull": (),
- "PySide2.QtXmlPatterns.QXmlName.localName": ('PySide2.QtXmlPatterns.QXmlNamePool',),
- "PySide2.QtXmlPatterns.QXmlName.namespaceUri": ('PySide2.QtXmlPatterns.QXmlNamePool',),
- "PySide2.QtXmlPatterns.QXmlName.prefix": ('PySide2.QtXmlPatterns.QXmlNamePool',),
- "PySide2.QtXmlPatterns.QXmlName.toClarkName": ('PySide2.QtXmlPatterns.QXmlNamePool',),
-# class PySide2.QtXmlPatterns.QXmlNamePool:
- "PySide2.QtXmlPatterns.QXmlNamePool.__init__": [(), ('PySide2.QtXmlPatterns.QXmlNamePool',)],
- "PySide2.QtXmlPatterns.QXmlNamePool.__copy__": (),
-# class PySide2.QtXmlPatterns.QXmlNodeModelIndex:
-# class PySide2.QtXmlPatterns.QXmlNodeModelIndex.DocumentOrder:
-# class PySide2.QtXmlPatterns.QXmlNodeModelIndex.NodeKind:
- "PySide2.QtXmlPatterns.QXmlNodeModelIndex.__init__": [(), ('PySide2.QtXmlPatterns.QXmlNodeModelIndex',)],
- "PySide2.QtXmlPatterns.QXmlNodeModelIndex.__copy__": (),
- "PySide2.QtXmlPatterns.QXmlNodeModelIndex.additionalData": (),
- "PySide2.QtXmlPatterns.QXmlNodeModelIndex.data": (),
- "PySide2.QtXmlPatterns.QXmlNodeModelIndex.internalPointer": (),
- "PySide2.QtXmlPatterns.QXmlNodeModelIndex.isNull": (),
- "PySide2.QtXmlPatterns.QXmlNodeModelIndex.model": (),
-# class PySide2.QtXmlPatterns.QXmlQuery:
-# class PySide2.QtXmlPatterns.QXmlQuery.QueryLanguage:
- "PySide2.QtXmlPatterns.QXmlQuery.__init__": [(), ('PySide2.QtXmlPatterns.QXmlNamePool',), ('PySide2.QtXmlPatterns.QXmlQuery',), ('PySide2.QtXmlPatterns.QXmlQuery.QueryLanguage', 'PySide2.QtXmlPatterns.QXmlNamePool')],
- "PySide2.QtXmlPatterns.QXmlQuery.__copy__": (),
- "PySide2.QtXmlPatterns.QXmlQuery.bindVariable": [('PySide2.QtXmlPatterns.QXmlName', 'PySide2.QtCore.QIODevice'), ('PySide2.QtXmlPatterns.QXmlName', 'PySide2.QtXmlPatterns.QXmlItem'), ('PySide2.QtXmlPatterns.QXmlName', 'PySide2.QtXmlPatterns.QXmlQuery'), ('str', 'PySide2.QtCore.QIODevice'), ('str', 'PySide2.QtXmlPatterns.QXmlItem'), ('str', 'PySide2.QtXmlPatterns.QXmlQuery')],
- "PySide2.QtXmlPatterns.QXmlQuery.evaluateTo": [('PySide2.QtCore.QIODevice',), ('PySide2.QtXmlPatterns.QAbstractXmlReceiver',), ('PySide2.QtXmlPatterns.QXmlResultItems',)],
- "PySide2.QtXmlPatterns.QXmlQuery.initialTemplateName": (),
- "PySide2.QtXmlPatterns.QXmlQuery.isValid": (),
- "PySide2.QtXmlPatterns.QXmlQuery.messageHandler": (),
- "PySide2.QtXmlPatterns.QXmlQuery.namePool": (),
- "PySide2.QtXmlPatterns.QXmlQuery.queryLanguage": (),
- "PySide2.QtXmlPatterns.QXmlQuery.setFocus": [('PySide2.QtCore.QIODevice',), ('PySide2.QtCore.QUrl',), ('PySide2.QtXmlPatterns.QXmlItem',), ('str',)],
- "PySide2.QtXmlPatterns.QXmlQuery.setInitialTemplateName": [('PySide2.QtXmlPatterns.QXmlName',), ('str',)],
- "PySide2.QtXmlPatterns.QXmlQuery.setMessageHandler": ('PySide2.QtXmlPatterns.QAbstractMessageHandler',),
- "PySide2.QtXmlPatterns.QXmlQuery.setQuery": [('PySide2.QtCore.QIODevice', 'PySide2.QtCore.QUrl'), ('PySide2.QtCore.QUrl', 'PySide2.QtCore.QUrl'), ('str', 'PySide2.QtCore.QUrl')],
- "PySide2.QtXmlPatterns.QXmlQuery.setUriResolver": ('PySide2.QtXmlPatterns.QAbstractUriResolver',),
- "PySide2.QtXmlPatterns.QXmlQuery.uriResolver": (),
-# class PySide2.QtXmlPatterns.QXmlResultItems:
- "PySide2.QtXmlPatterns.QXmlResultItems.__init__": (),
- "PySide2.QtXmlPatterns.QXmlResultItems.current": (),
- "PySide2.QtXmlPatterns.QXmlResultItems.hasError": (),
-# class PySide2.QtXmlPatterns.QXmlSchema:
- "PySide2.QtXmlPatterns.QXmlSchema.__init__": [(), ('PySide2.QtXmlPatterns.QXmlSchema',)],
- "PySide2.QtXmlPatterns.QXmlSchema.documentUri": (),
- "PySide2.QtXmlPatterns.QXmlSchema.isValid": (),
- "PySide2.QtXmlPatterns.QXmlSchema.load": [('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QUrl'), ('PySide2.QtCore.QIODevice', 'PySide2.QtCore.QUrl'), ('PySide2.QtCore.QUrl',)],
- "PySide2.QtXmlPatterns.QXmlSchema.messageHandler": (),
- "PySide2.QtXmlPatterns.QXmlSchema.namePool": (),
- "PySide2.QtXmlPatterns.QXmlSchema.setMessageHandler": ('PySide2.QtXmlPatterns.QAbstractMessageHandler',),
- "PySide2.QtXmlPatterns.QXmlSchema.setUriResolver": ('PySide2.QtXmlPatterns.QAbstractUriResolver',),
- "PySide2.QtXmlPatterns.QXmlSchema.uriResolver": (),
-# class PySide2.QtXmlPatterns.QXmlSchemaValidator:
- "PySide2.QtXmlPatterns.QXmlSchemaValidator.__init__": [(), ('PySide2.QtXmlPatterns.QXmlSchema',)],
- "PySide2.QtXmlPatterns.QXmlSchemaValidator.messageHandler": (),
- "PySide2.QtXmlPatterns.QXmlSchemaValidator.namePool": (),
- "PySide2.QtXmlPatterns.QXmlSchemaValidator.schema": (),
- "PySide2.QtXmlPatterns.QXmlSchemaValidator.setMessageHandler": ('PySide2.QtXmlPatterns.QAbstractMessageHandler',),
- "PySide2.QtXmlPatterns.QXmlSchemaValidator.setSchema": ('PySide2.QtXmlPatterns.QXmlSchema',),
- "PySide2.QtXmlPatterns.QXmlSchemaValidator.setUriResolver": ('PySide2.QtXmlPatterns.QAbstractUriResolver',),
- "PySide2.QtXmlPatterns.QXmlSchemaValidator.uriResolver": (),
- "PySide2.QtXmlPatterns.QXmlSchemaValidator.validate": [('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QUrl'), ('PySide2.QtCore.QIODevice', 'PySide2.QtCore.QUrl'), ('PySide2.QtCore.QUrl',)],
-# class PySide2.QtXmlPatterns.QXmlSerializer:
- "PySide2.QtXmlPatterns.QXmlSerializer.__init__": ('PySide2.QtXmlPatterns.QXmlQuery', 'PySide2.QtCore.QIODevice'),
- "PySide2.QtXmlPatterns.QXmlSerializer.atomicValue": ('typing.Any',),
- "PySide2.QtXmlPatterns.QXmlSerializer.attribute": ('PySide2.QtXmlPatterns.QXmlName', 'str'),
- "PySide2.QtXmlPatterns.QXmlSerializer.characters": ('str',),
- "PySide2.QtXmlPatterns.QXmlSerializer.codec": (),
- "PySide2.QtXmlPatterns.QXmlSerializer.comment": ('str',),
- "PySide2.QtXmlPatterns.QXmlSerializer.endDocument": (),
- "PySide2.QtXmlPatterns.QXmlSerializer.endElement": (),
- "PySide2.QtXmlPatterns.QXmlSerializer.endOfSequence": (),
- "PySide2.QtXmlPatterns.QXmlSerializer.namespaceBinding": ('PySide2.QtXmlPatterns.QXmlName',),
- "PySide2.QtXmlPatterns.QXmlSerializer.outputDevice": (),
- "PySide2.QtXmlPatterns.QXmlSerializer.processingInstruction": ('PySide2.QtXmlPatterns.QXmlName', 'str'),
- "PySide2.QtXmlPatterns.QXmlSerializer.setCodec": ('PySide2.QtCore.QTextCodec',),
- "PySide2.QtXmlPatterns.QXmlSerializer.startDocument": (),
- "PySide2.QtXmlPatterns.QXmlSerializer.startElement": ('PySide2.QtXmlPatterns.QXmlName',),
- "PySide2.QtXmlPatterns.QXmlSerializer.startOfSequence": (),
- }) if "PySide2.QtXmlPatterns" in sys.modules else None
-# Module PySide2.QtHelp
-sig_dict.update({
-# class PySide2.QtHelp.QCompressedHelpInfo:
- "PySide2.QtHelp.QCompressedHelpInfo.__init__": [(), ('PySide2.QtHelp.QCompressedHelpInfo',)],
- "PySide2.QtHelp.QCompressedHelpInfo.__copy__": (),
- "PySide2.QtHelp.QCompressedHelpInfo.component": (),
- "PySide2.QtHelp.QCompressedHelpInfo.fromCompressedHelpFile": ('str',),
- "PySide2.QtHelp.QCompressedHelpInfo.namespaceName": (),
- "PySide2.QtHelp.QCompressedHelpInfo.swap": ('PySide2.QtHelp.QCompressedHelpInfo',),
- "PySide2.QtHelp.QCompressedHelpInfo.version": (),
-# class PySide2.QtHelp.QHelpContentItem:
- "PySide2.QtHelp.QHelpContentItem.__copy__": (),
- "PySide2.QtHelp.QHelpContentItem.child": ('int',),
- "PySide2.QtHelp.QHelpContentItem.childCount": (),
- "PySide2.QtHelp.QHelpContentItem.childPosition": ('PySide2.QtHelp.QHelpContentItem',),
- "PySide2.QtHelp.QHelpContentItem.parent": (),
- "PySide2.QtHelp.QHelpContentItem.row": (),
- "PySide2.QtHelp.QHelpContentItem.title": (),
- "PySide2.QtHelp.QHelpContentItem.url": (),
-# class PySide2.QtHelp.QHelpContentModel:
- "PySide2.QtHelp.QHelpContentModel.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtHelp.QHelpContentModel.contentItemAt": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtHelp.QHelpContentModel.createContents": ('str',),
- "PySide2.QtHelp.QHelpContentModel.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtHelp.QHelpContentModel.index": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtHelp.QHelpContentModel.isCreatingContents": (),
- "PySide2.QtHelp.QHelpContentModel.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtHelp.QHelpContentModel.rowCount": ('PySide2.QtCore.QModelIndex',),
-# class PySide2.QtHelp.QHelpContentWidget:
- "PySide2.QtHelp.QHelpContentWidget.indexOf": ('PySide2.QtCore.QUrl',),
-# class PySide2.QtHelp.QHelpEngine:
- "PySide2.QtHelp.QHelpEngine.__init__": ('str', 'PySide2.QtCore.QObject'),
- "PySide2.QtHelp.QHelpEngine.contentModel": (),
- "PySide2.QtHelp.QHelpEngine.contentWidget": (),
- "PySide2.QtHelp.QHelpEngine.indexModel": (),
- "PySide2.QtHelp.QHelpEngine.indexWidget": (),
- "PySide2.QtHelp.QHelpEngine.searchEngine": (),
-# class PySide2.QtHelp.QHelpEngineCore:
- "PySide2.QtHelp.QHelpEngineCore.__init__": ('str', 'PySide2.QtCore.QObject'),
- "PySide2.QtHelp.QHelpEngineCore.addCustomFilter": ('str', 'typing.Sequence[str]'),
- "PySide2.QtHelp.QHelpEngineCore.autoSaveFilter": (),
- "PySide2.QtHelp.QHelpEngineCore.collectionFile": (),
- "PySide2.QtHelp.QHelpEngineCore.copyCollectionFile": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.currentFilter": (),
- "PySide2.QtHelp.QHelpEngineCore.customFilters": (),
- "PySide2.QtHelp.QHelpEngineCore.customValue": ('str', 'typing.Any'),
- "PySide2.QtHelp.QHelpEngineCore.documentationFileName": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.error": (),
- "PySide2.QtHelp.QHelpEngineCore.fileData": ('PySide2.QtCore.QUrl',),
- "PySide2.QtHelp.QHelpEngineCore.files": [('str', 'str', 'str'), ('str', 'typing.Sequence[str]', 'str')],
- "PySide2.QtHelp.QHelpEngineCore.filterAttributeSets": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.filterAttributes": [(), ('str',)],
- "PySide2.QtHelp.QHelpEngineCore.filterEngine": (),
- "PySide2.QtHelp.QHelpEngineCore.findFile": ('PySide2.QtCore.QUrl',),
- "PySide2.QtHelp.QHelpEngineCore.linksForIdentifier": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.linksForKeyword": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.metaData": ('str', 'str'),
- "PySide2.QtHelp.QHelpEngineCore.namespaceName": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.registerDocumentation": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.registeredDocumentations": (),
- "PySide2.QtHelp.QHelpEngineCore.removeCustomFilter": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.removeCustomValue": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.setAutoSaveFilter": ('bool',),
- "PySide2.QtHelp.QHelpEngineCore.setCollectionFile": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.setCurrentFilter": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.setCustomValue": ('str', 'typing.Any'),
- "PySide2.QtHelp.QHelpEngineCore.setUsesFilterEngine": ('bool',),
- "PySide2.QtHelp.QHelpEngineCore.setupData": (),
- "PySide2.QtHelp.QHelpEngineCore.unregisterDocumentation": ('str',),
- "PySide2.QtHelp.QHelpEngineCore.usesFilterEngine": (),
-# class PySide2.QtHelp.QHelpFilterData:
- "PySide2.QtHelp.QHelpFilterData.__init__": [(), ('PySide2.QtHelp.QHelpFilterData',)],
- "PySide2.QtHelp.QHelpFilterData.__copy__": (),
- "PySide2.QtHelp.QHelpFilterData.components": (),
- "PySide2.QtHelp.QHelpFilterData.setComponents": ('typing.Sequence[str]',),
- "PySide2.QtHelp.QHelpFilterData.setVersions": ('typing.Sequence[PySide2.QtCore.QVersionNumber]',),
- "PySide2.QtHelp.QHelpFilterData.swap": ('PySide2.QtHelp.QHelpFilterData',),
- "PySide2.QtHelp.QHelpFilterData.versions": (),
-# class PySide2.QtHelp.QHelpFilterEngine:
- "PySide2.QtHelp.QHelpFilterEngine.__init__": ('PySide2.QtHelp.QHelpEngineCore',),
- "PySide2.QtHelp.QHelpFilterEngine.activeFilter": (),
- "PySide2.QtHelp.QHelpFilterEngine.availableComponents": (),
- "PySide2.QtHelp.QHelpFilterEngine.filterData": ('str',),
- "PySide2.QtHelp.QHelpFilterEngine.filters": (),
- "PySide2.QtHelp.QHelpFilterEngine.namespaceToComponent": (),
- "PySide2.QtHelp.QHelpFilterEngine.namespaceToVersion": (),
- "PySide2.QtHelp.QHelpFilterEngine.namespacesForFilter": ('str',),
- "PySide2.QtHelp.QHelpFilterEngine.removeFilter": ('str',),
- "PySide2.QtHelp.QHelpFilterEngine.setActiveFilter": ('str',),
- "PySide2.QtHelp.QHelpFilterEngine.setFilterData": ('str', 'PySide2.QtHelp.QHelpFilterData'),
-# class PySide2.QtHelp.QHelpIndexModel:
- "PySide2.QtHelp.QHelpIndexModel.createIndex": [('int', 'int', 'int'), ('int', 'int', 'object'), ('str',)],
- "PySide2.QtHelp.QHelpIndexModel.filter": ('str', 'str'),
- "PySide2.QtHelp.QHelpIndexModel.isCreatingIndex": (),
- "PySide2.QtHelp.QHelpIndexModel.linksForKeyword": ('str',),
-# class PySide2.QtHelp.QHelpIndexWidget:
- "PySide2.QtHelp.QHelpIndexWidget.activateCurrentItem": (),
- "PySide2.QtHelp.QHelpIndexWidget.filterIndices": ('str', 'str'),
-# class PySide2.QtHelp.QHelpSearchEngine:
- "PySide2.QtHelp.QHelpSearchEngine.__init__": ('PySide2.QtHelp.QHelpEngineCore', 'PySide2.QtCore.QObject'),
- "PySide2.QtHelp.QHelpSearchEngine.cancelIndexing": (),
- "PySide2.QtHelp.QHelpSearchEngine.cancelSearching": (),
- "PySide2.QtHelp.QHelpSearchEngine.hitCount": (),
- "PySide2.QtHelp.QHelpSearchEngine.hits": ('int', 'int'),
- "PySide2.QtHelp.QHelpSearchEngine.hitsCount": (),
- "PySide2.QtHelp.QHelpSearchEngine.query": (),
- "PySide2.QtHelp.QHelpSearchEngine.queryWidget": (),
- "PySide2.QtHelp.QHelpSearchEngine.reindexDocumentation": (),
- "PySide2.QtHelp.QHelpSearchEngine.resultWidget": (),
- "PySide2.QtHelp.QHelpSearchEngine.scheduleIndexDocumentation": (),
- "PySide2.QtHelp.QHelpSearchEngine.search": [('str',), ('typing.Sequence[PySide2.QtHelp.QHelpSearchQuery]',)],
- "PySide2.QtHelp.QHelpSearchEngine.searchInput": (),
- "PySide2.QtHelp.QHelpSearchEngine.searchResultCount": (),
- "PySide2.QtHelp.QHelpSearchEngine.searchResults": ('int', 'int'),
-# class PySide2.QtHelp.QHelpSearchQuery:
-# class PySide2.QtHelp.QHelpSearchQuery.FieldName:
- "PySide2.QtHelp.QHelpSearchQuery.__init__": [(), ('PySide2.QtHelp.QHelpSearchQuery',), ('PySide2.QtHelp.QHelpSearchQuery.FieldName', 'typing.Sequence[str]')],
- "PySide2.QtHelp.QHelpSearchQuery.__copy__": (),
-# class PySide2.QtHelp.QHelpSearchQueryWidget:
- "PySide2.QtHelp.QHelpSearchQueryWidget.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtHelp.QHelpSearchQueryWidget.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtHelp.QHelpSearchQueryWidget.collapseExtendedSearch": (),
- "PySide2.QtHelp.QHelpSearchQueryWidget.expandExtendedSearch": (),
- "PySide2.QtHelp.QHelpSearchQueryWidget.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtHelp.QHelpSearchQueryWidget.isCompactMode": (),
- "PySide2.QtHelp.QHelpSearchQueryWidget.query": (),
- "PySide2.QtHelp.QHelpSearchQueryWidget.searchInput": (),
- "PySide2.QtHelp.QHelpSearchQueryWidget.setCompactMode": ('bool',),
- "PySide2.QtHelp.QHelpSearchQueryWidget.setQuery": ('typing.Sequence[PySide2.QtHelp.QHelpSearchQuery]',),
- "PySide2.QtHelp.QHelpSearchQueryWidget.setSearchInput": ('str',),
-# class PySide2.QtHelp.QHelpSearchResult:
- "PySide2.QtHelp.QHelpSearchResult.__init__": [(), ('PySide2.QtCore.QUrl', 'str', 'str'), ('PySide2.QtHelp.QHelpSearchResult',)],
- "PySide2.QtHelp.QHelpSearchResult.snippet": (),
- "PySide2.QtHelp.QHelpSearchResult.title": (),
- "PySide2.QtHelp.QHelpSearchResult.url": (),
-# class PySide2.QtHelp.QHelpSearchResultWidget:
- "PySide2.QtHelp.QHelpSearchResultWidget.changeEvent": ('PySide2.QtCore.QEvent',),
- "PySide2.QtHelp.QHelpSearchResultWidget.linkAt": ('PySide2.QtCore.QPoint',),
- }) if "PySide2.QtHelp" in sys.modules else None
-# Module PySide2.QtMultimedia
-sig_dict.update({
-# class PySide2.QtMultimedia.QAbstractAudioDeviceInfo:
- "PySide2.QtMultimedia.QAbstractAudioDeviceInfo.__init__": (),
- "PySide2.QtMultimedia.QAbstractAudioDeviceInfo.deviceName": (),
- "PySide2.QtMultimedia.QAbstractAudioDeviceInfo.isFormatSupported": ('PySide2.QtMultimedia.QAudioFormat',),
- "PySide2.QtMultimedia.QAbstractAudioDeviceInfo.preferredFormat": (),
- "PySide2.QtMultimedia.QAbstractAudioDeviceInfo.supportedByteOrders": (),
- "PySide2.QtMultimedia.QAbstractAudioDeviceInfo.supportedChannelCounts": (),
- "PySide2.QtMultimedia.QAbstractAudioDeviceInfo.supportedCodecs": (),
- "PySide2.QtMultimedia.QAbstractAudioDeviceInfo.supportedSampleRates": (),
- "PySide2.QtMultimedia.QAbstractAudioDeviceInfo.supportedSampleSizes": (),
- "PySide2.QtMultimedia.QAbstractAudioDeviceInfo.supportedSampleTypes": (),
-# class PySide2.QtMultimedia.QAbstractAudioInput:
- "PySide2.QtMultimedia.QAbstractAudioInput.__init__": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.bufferSize": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.bytesReady": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.elapsedUSecs": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.error": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.format": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.notifyInterval": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.periodSize": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.processedUSecs": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.reset": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.resume": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.setBufferSize": ('int',),
- "PySide2.QtMultimedia.QAbstractAudioInput.setFormat": ('PySide2.QtMultimedia.QAudioFormat',),
- "PySide2.QtMultimedia.QAbstractAudioInput.setNotifyInterval": ('int',),
- "PySide2.QtMultimedia.QAbstractAudioInput.setVolume": ('float',),
- "PySide2.QtMultimedia.QAbstractAudioInput.start": [(), ('PySide2.QtCore.QIODevice',)],
- "PySide2.QtMultimedia.QAbstractAudioInput.state": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.stop": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.suspend": (),
- "PySide2.QtMultimedia.QAbstractAudioInput.volume": (),
-# class PySide2.QtMultimedia.QAbstractAudioOutput:
- "PySide2.QtMultimedia.QAbstractAudioOutput.__init__": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.bufferSize": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.bytesFree": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.category": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.elapsedUSecs": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.error": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.format": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.notifyInterval": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.periodSize": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.processedUSecs": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.reset": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.resume": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.setBufferSize": ('int',),
- "PySide2.QtMultimedia.QAbstractAudioOutput.setCategory": ('str',),
- "PySide2.QtMultimedia.QAbstractAudioOutput.setFormat": ('PySide2.QtMultimedia.QAudioFormat',),
- "PySide2.QtMultimedia.QAbstractAudioOutput.setNotifyInterval": ('int',),
- "PySide2.QtMultimedia.QAbstractAudioOutput.setVolume": ('float',),
- "PySide2.QtMultimedia.QAbstractAudioOutput.start": [(), ('PySide2.QtCore.QIODevice',)],
- "PySide2.QtMultimedia.QAbstractAudioOutput.state": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.stop": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.suspend": (),
- "PySide2.QtMultimedia.QAbstractAudioOutput.volume": (),
-# class PySide2.QtMultimedia.QAbstractVideoBuffer:
-# class PySide2.QtMultimedia.QAbstractVideoBuffer.HandleType:
-# class PySide2.QtMultimedia.QAbstractVideoBuffer.MapMode:
- "PySide2.QtMultimedia.QAbstractVideoBuffer.__init__": ('PySide2.QtMultimedia.QAbstractVideoBuffer.HandleType',),
- "PySide2.QtMultimedia.QAbstractVideoBuffer.handle": (),
- "PySide2.QtMultimedia.QAbstractVideoBuffer.handleType": (),
- "PySide2.QtMultimedia.QAbstractVideoBuffer.mapMode": (),
- "PySide2.QtMultimedia.QAbstractVideoBuffer.release": (),
- "PySide2.QtMultimedia.QAbstractVideoBuffer.unmap": (),
-# class PySide2.QtMultimedia.QAbstractVideoFilter:
- "PySide2.QtMultimedia.QAbstractVideoFilter.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAbstractVideoFilter.createFilterRunnable": (),
- "PySide2.QtMultimedia.QAbstractVideoFilter.isActive": (),
- "PySide2.QtMultimedia.QAbstractVideoFilter.setActive": ('bool',),
-# class PySide2.QtMultimedia.QAbstractVideoSurface:
-# class PySide2.QtMultimedia.QAbstractVideoSurface.Error:
- "PySide2.QtMultimedia.QAbstractVideoSurface.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAbstractVideoSurface.error": (),
- "PySide2.QtMultimedia.QAbstractVideoSurface.isActive": (),
- "PySide2.QtMultimedia.QAbstractVideoSurface.isFormatSupported": ('PySide2.QtMultimedia.QVideoSurfaceFormat',),
- "PySide2.QtMultimedia.QAbstractVideoSurface.nativeResolution": (),
- "PySide2.QtMultimedia.QAbstractVideoSurface.nearestFormat": ('PySide2.QtMultimedia.QVideoSurfaceFormat',),
- "PySide2.QtMultimedia.QAbstractVideoSurface.present": ('PySide2.QtMultimedia.QVideoFrame',),
- "PySide2.QtMultimedia.QAbstractVideoSurface.setError": ('PySide2.QtMultimedia.QAbstractVideoSurface.Error',),
- "PySide2.QtMultimedia.QAbstractVideoSurface.setNativeResolution": ('PySide2.QtCore.QSize',),
- "PySide2.QtMultimedia.QAbstractVideoSurface.start": ('PySide2.QtMultimedia.QVideoSurfaceFormat',),
- "PySide2.QtMultimedia.QAbstractVideoSurface.stop": (),
- "PySide2.QtMultimedia.QAbstractVideoSurface.supportedPixelFormats": ('PySide2.QtMultimedia.QAbstractVideoBuffer.HandleType',),
- "PySide2.QtMultimedia.QAbstractVideoSurface.surfaceFormat": (),
-# class PySide2.QtMultimedia.QAudio:
-# class PySide2.QtMultimedia.QAudio.Error:
-# class PySide2.QtMultimedia.QAudio.Mode:
-# class PySide2.QtMultimedia.QAudio.Role:
-# class PySide2.QtMultimedia.QAudio.State:
-# class PySide2.QtMultimedia.QAudio.VolumeScale:
- "PySide2.QtMultimedia.QAudio.convertVolume": ('float', 'PySide2.QtMultimedia.QAudio.VolumeScale', 'PySide2.QtMultimedia.QAudio.VolumeScale'),
-# class PySide2.QtMultimedia.QAudioBuffer:
- "PySide2.QtMultimedia.QAudioBuffer.__init__": [(), ('PySide2.QtCore.QByteArray', 'PySide2.QtMultimedia.QAudioFormat', 'int'), ('PySide2.QtMultimedia.QAudioBuffer',), ('int', 'PySide2.QtMultimedia.QAudioFormat', 'int')],
- "PySide2.QtMultimedia.QAudioBuffer.__copy__": (),
- "PySide2.QtMultimedia.QAudioBuffer.byteCount": (),
- "PySide2.QtMultimedia.QAudioBuffer.constData": (),
- "PySide2.QtMultimedia.QAudioBuffer.data": (),
- "PySide2.QtMultimedia.QAudioBuffer.duration": (),
- "PySide2.QtMultimedia.QAudioBuffer.format": (),
- "PySide2.QtMultimedia.QAudioBuffer.frameCount": (),
- "PySide2.QtMultimedia.QAudioBuffer.isValid": (),
- "PySide2.QtMultimedia.QAudioBuffer.sampleCount": (),
- "PySide2.QtMultimedia.QAudioBuffer.startTime": (),
-# class PySide2.QtMultimedia.QAudioDecoder:
-# class PySide2.QtMultimedia.QAudioDecoder.Error:
-# class PySide2.QtMultimedia.QAudioDecoder.State:
- "PySide2.QtMultimedia.QAudioDecoder.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAudioDecoder.audioFormat": (),
- "PySide2.QtMultimedia.QAudioDecoder.bind": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAudioDecoder.bufferAvailable": (),
- "PySide2.QtMultimedia.QAudioDecoder.duration": (),
- "PySide2.QtMultimedia.QAudioDecoder.error": (),
- "PySide2.QtMultimedia.QAudioDecoder.errorString": (),
- "PySide2.QtMultimedia.QAudioDecoder.hasSupport": ('str', 'typing.Sequence[str]'),
- "PySide2.QtMultimedia.QAudioDecoder.position": (),
- "PySide2.QtMultimedia.QAudioDecoder.read": (),
- "PySide2.QtMultimedia.QAudioDecoder.setAudioFormat": ('PySide2.QtMultimedia.QAudioFormat',),
- "PySide2.QtMultimedia.QAudioDecoder.setSourceDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtMultimedia.QAudioDecoder.setSourceFilename": ('str',),
- "PySide2.QtMultimedia.QAudioDecoder.sourceDevice": (),
- "PySide2.QtMultimedia.QAudioDecoder.sourceFilename": (),
- "PySide2.QtMultimedia.QAudioDecoder.start": (),
- "PySide2.QtMultimedia.QAudioDecoder.state": (),
- "PySide2.QtMultimedia.QAudioDecoder.stop": (),
- "PySide2.QtMultimedia.QAudioDecoder.unbind": ('PySide2.QtCore.QObject',),
-# class PySide2.QtMultimedia.QAudioDecoderControl:
- "PySide2.QtMultimedia.QAudioDecoderControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAudioDecoderControl.audioFormat": (),
- "PySide2.QtMultimedia.QAudioDecoderControl.bufferAvailable": (),
- "PySide2.QtMultimedia.QAudioDecoderControl.duration": (),
- "PySide2.QtMultimedia.QAudioDecoderControl.position": (),
- "PySide2.QtMultimedia.QAudioDecoderControl.read": (),
- "PySide2.QtMultimedia.QAudioDecoderControl.setAudioFormat": ('PySide2.QtMultimedia.QAudioFormat',),
- "PySide2.QtMultimedia.QAudioDecoderControl.setSourceDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtMultimedia.QAudioDecoderControl.setSourceFilename": ('str',),
- "PySide2.QtMultimedia.QAudioDecoderControl.sourceDevice": (),
- "PySide2.QtMultimedia.QAudioDecoderControl.sourceFilename": (),
- "PySide2.QtMultimedia.QAudioDecoderControl.start": (),
- "PySide2.QtMultimedia.QAudioDecoderControl.state": (),
- "PySide2.QtMultimedia.QAudioDecoderControl.stop": (),
-# class PySide2.QtMultimedia.QAudioDeviceInfo:
- "PySide2.QtMultimedia.QAudioDeviceInfo.__init__": [(), ('PySide2.QtMultimedia.QAudioDeviceInfo',)],
- "PySide2.QtMultimedia.QAudioDeviceInfo.__copy__": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.availableDevices": ('PySide2.QtMultimedia.QAudio.Mode',),
- "PySide2.QtMultimedia.QAudioDeviceInfo.defaultInputDevice": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.defaultOutputDevice": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.deviceName": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.isFormatSupported": ('PySide2.QtMultimedia.QAudioFormat',),
- "PySide2.QtMultimedia.QAudioDeviceInfo.isNull": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.nearestFormat": ('PySide2.QtMultimedia.QAudioFormat',),
- "PySide2.QtMultimedia.QAudioDeviceInfo.preferredFormat": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.realm": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.supportedByteOrders": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.supportedChannelCounts": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.supportedCodecs": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.supportedSampleRates": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.supportedSampleSizes": (),
- "PySide2.QtMultimedia.QAudioDeviceInfo.supportedSampleTypes": (),
-# class PySide2.QtMultimedia.QAudioEncoderSettings:
- "PySide2.QtMultimedia.QAudioEncoderSettings.__init__": [(), ('PySide2.QtMultimedia.QAudioEncoderSettings',)],
- "PySide2.QtMultimedia.QAudioEncoderSettings.__copy__": (),
- "PySide2.QtMultimedia.QAudioEncoderSettings.bitRate": (),
- "PySide2.QtMultimedia.QAudioEncoderSettings.channelCount": (),
- "PySide2.QtMultimedia.QAudioEncoderSettings.codec": (),
- "PySide2.QtMultimedia.QAudioEncoderSettings.encodingMode": (),
- "PySide2.QtMultimedia.QAudioEncoderSettings.encodingOption": ('str',),
- "PySide2.QtMultimedia.QAudioEncoderSettings.encodingOptions": (),
- "PySide2.QtMultimedia.QAudioEncoderSettings.isNull": (),
- "PySide2.QtMultimedia.QAudioEncoderSettings.quality": (),
- "PySide2.QtMultimedia.QAudioEncoderSettings.sampleRate": (),
- "PySide2.QtMultimedia.QAudioEncoderSettings.setBitRate": ('int',),
- "PySide2.QtMultimedia.QAudioEncoderSettings.setChannelCount": ('int',),
- "PySide2.QtMultimedia.QAudioEncoderSettings.setCodec": ('str',),
- "PySide2.QtMultimedia.QAudioEncoderSettings.setEncodingMode": ('PySide2.QtMultimedia.QMultimedia.EncodingMode',),
- "PySide2.QtMultimedia.QAudioEncoderSettings.setEncodingOption": ('str', 'typing.Any'),
- "PySide2.QtMultimedia.QAudioEncoderSettings.setEncodingOptions": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtMultimedia.QAudioEncoderSettings.setQuality": ('PySide2.QtMultimedia.QMultimedia.EncodingQuality',),
- "PySide2.QtMultimedia.QAudioEncoderSettings.setSampleRate": ('int',),
-# class PySide2.QtMultimedia.QAudioEncoderSettingsControl:
- "PySide2.QtMultimedia.QAudioEncoderSettingsControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAudioEncoderSettingsControl.audioSettings": (),
- "PySide2.QtMultimedia.QAudioEncoderSettingsControl.codecDescription": ('str',),
- "PySide2.QtMultimedia.QAudioEncoderSettingsControl.setAudioSettings": ('PySide2.QtMultimedia.QAudioEncoderSettings',),
- "PySide2.QtMultimedia.QAudioEncoderSettingsControl.supportedAudioCodecs": (),
-# class PySide2.QtMultimedia.QAudioFormat:
-# class PySide2.QtMultimedia.QAudioFormat.Endian:
-# class PySide2.QtMultimedia.QAudioFormat.SampleType:
- "PySide2.QtMultimedia.QAudioFormat.__init__": [(), ('PySide2.QtMultimedia.QAudioFormat',)],
- "PySide2.QtMultimedia.QAudioFormat.__copy__": (),
- "PySide2.QtMultimedia.QAudioFormat.byteOrder": (),
- "PySide2.QtMultimedia.QAudioFormat.bytesForDuration": ('int',),
- "PySide2.QtMultimedia.QAudioFormat.bytesForFrames": ('int',),
- "PySide2.QtMultimedia.QAudioFormat.bytesPerFrame": (),
- "PySide2.QtMultimedia.QAudioFormat.channelCount": (),
- "PySide2.QtMultimedia.QAudioFormat.codec": (),
- "PySide2.QtMultimedia.QAudioFormat.durationForBytes": ('int',),
- "PySide2.QtMultimedia.QAudioFormat.durationForFrames": ('int',),
- "PySide2.QtMultimedia.QAudioFormat.framesForBytes": ('int',),
- "PySide2.QtMultimedia.QAudioFormat.framesForDuration": ('int',),
- "PySide2.QtMultimedia.QAudioFormat.isValid": (),
- "PySide2.QtMultimedia.QAudioFormat.sampleRate": (),
- "PySide2.QtMultimedia.QAudioFormat.sampleSize": (),
- "PySide2.QtMultimedia.QAudioFormat.sampleType": (),
- "PySide2.QtMultimedia.QAudioFormat.setByteOrder": ('PySide2.QtMultimedia.QAudioFormat.Endian',),
- "PySide2.QtMultimedia.QAudioFormat.setChannelCount": ('int',),
- "PySide2.QtMultimedia.QAudioFormat.setCodec": ('str',),
- "PySide2.QtMultimedia.QAudioFormat.setSampleRate": ('int',),
- "PySide2.QtMultimedia.QAudioFormat.setSampleSize": ('int',),
- "PySide2.QtMultimedia.QAudioFormat.setSampleType": ('PySide2.QtMultimedia.QAudioFormat.SampleType',),
-# class PySide2.QtMultimedia.QAudioInput:
- "PySide2.QtMultimedia.QAudioInput.__init__": [('PySide2.QtMultimedia.QAudioDeviceInfo', 'PySide2.QtMultimedia.QAudioFormat', 'PySide2.QtCore.QObject'), ('PySide2.QtMultimedia.QAudioFormat', 'PySide2.QtCore.QObject')],
- "PySide2.QtMultimedia.QAudioInput.bufferSize": (),
- "PySide2.QtMultimedia.QAudioInput.bytesReady": (),
- "PySide2.QtMultimedia.QAudioInput.elapsedUSecs": (),
- "PySide2.QtMultimedia.QAudioInput.error": (),
- "PySide2.QtMultimedia.QAudioInput.format": (),
- "PySide2.QtMultimedia.QAudioInput.notifyInterval": (),
- "PySide2.QtMultimedia.QAudioInput.periodSize": (),
- "PySide2.QtMultimedia.QAudioInput.processedUSecs": (),
- "PySide2.QtMultimedia.QAudioInput.reset": (),
- "PySide2.QtMultimedia.QAudioInput.resume": (),
- "PySide2.QtMultimedia.QAudioInput.setBufferSize": ('int',),
- "PySide2.QtMultimedia.QAudioInput.setNotifyInterval": ('int',),
- "PySide2.QtMultimedia.QAudioInput.setVolume": ('float',),
- "PySide2.QtMultimedia.QAudioInput.start": [(), ('PySide2.QtCore.QIODevice',)],
- "PySide2.QtMultimedia.QAudioInput.state": (),
- "PySide2.QtMultimedia.QAudioInput.stop": (),
- "PySide2.QtMultimedia.QAudioInput.suspend": (),
- "PySide2.QtMultimedia.QAudioInput.volume": (),
-# class PySide2.QtMultimedia.QAudioInputSelectorControl:
- "PySide2.QtMultimedia.QAudioInputSelectorControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAudioInputSelectorControl.activeInput": (),
- "PySide2.QtMultimedia.QAudioInputSelectorControl.availableInputs": (),
- "PySide2.QtMultimedia.QAudioInputSelectorControl.defaultInput": (),
- "PySide2.QtMultimedia.QAudioInputSelectorControl.inputDescription": ('str',),
- "PySide2.QtMultimedia.QAudioInputSelectorControl.setActiveInput": ('str',),
-# class PySide2.QtMultimedia.QAudioOutput:
- "PySide2.QtMultimedia.QAudioOutput.__init__": [('PySide2.QtMultimedia.QAudioDeviceInfo', 'PySide2.QtMultimedia.QAudioFormat', 'PySide2.QtCore.QObject'), ('PySide2.QtMultimedia.QAudioFormat', 'PySide2.QtCore.QObject')],
- "PySide2.QtMultimedia.QAudioOutput.bufferSize": (),
- "PySide2.QtMultimedia.QAudioOutput.bytesFree": (),
- "PySide2.QtMultimedia.QAudioOutput.category": (),
- "PySide2.QtMultimedia.QAudioOutput.elapsedUSecs": (),
- "PySide2.QtMultimedia.QAudioOutput.error": (),
- "PySide2.QtMultimedia.QAudioOutput.format": (),
- "PySide2.QtMultimedia.QAudioOutput.notifyInterval": (),
- "PySide2.QtMultimedia.QAudioOutput.periodSize": (),
- "PySide2.QtMultimedia.QAudioOutput.processedUSecs": (),
- "PySide2.QtMultimedia.QAudioOutput.reset": (),
- "PySide2.QtMultimedia.QAudioOutput.resume": (),
- "PySide2.QtMultimedia.QAudioOutput.setBufferSize": ('int',),
- "PySide2.QtMultimedia.QAudioOutput.setCategory": ('str',),
- "PySide2.QtMultimedia.QAudioOutput.setNotifyInterval": ('int',),
- "PySide2.QtMultimedia.QAudioOutput.setVolume": ('float',),
- "PySide2.QtMultimedia.QAudioOutput.start": [(), ('PySide2.QtCore.QIODevice',)],
- "PySide2.QtMultimedia.QAudioOutput.state": (),
- "PySide2.QtMultimedia.QAudioOutput.stop": (),
- "PySide2.QtMultimedia.QAudioOutput.suspend": (),
- "PySide2.QtMultimedia.QAudioOutput.volume": (),
-# class PySide2.QtMultimedia.QAudioOutputSelectorControl:
- "PySide2.QtMultimedia.QAudioOutputSelectorControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAudioOutputSelectorControl.activeOutput": (),
- "PySide2.QtMultimedia.QAudioOutputSelectorControl.availableOutputs": (),
- "PySide2.QtMultimedia.QAudioOutputSelectorControl.defaultOutput": (),
- "PySide2.QtMultimedia.QAudioOutputSelectorControl.outputDescription": ('str',),
- "PySide2.QtMultimedia.QAudioOutputSelectorControl.setActiveOutput": ('str',),
-# class PySide2.QtMultimedia.QAudioProbe:
- "PySide2.QtMultimedia.QAudioProbe.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAudioProbe.isActive": (),
- "PySide2.QtMultimedia.QAudioProbe.setSource": [('PySide2.QtMultimedia.QMediaObject',), ('PySide2.QtMultimedia.QMediaRecorder',)],
-# class PySide2.QtMultimedia.QAudioRecorder:
- "PySide2.QtMultimedia.QAudioRecorder.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAudioRecorder.audioInput": (),
- "PySide2.QtMultimedia.QAudioRecorder.audioInputDescription": ('str',),
- "PySide2.QtMultimedia.QAudioRecorder.audioInputs": (),
- "PySide2.QtMultimedia.QAudioRecorder.defaultAudioInput": (),
- "PySide2.QtMultimedia.QAudioRecorder.setAudioInput": ('str',),
-# class PySide2.QtMultimedia.QAudioRoleControl:
- "PySide2.QtMultimedia.QAudioRoleControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QAudioRoleControl.audioRole": (),
- "PySide2.QtMultimedia.QAudioRoleControl.setAudioRole": ('PySide2.QtMultimedia.QAudio.Role',),
- "PySide2.QtMultimedia.QAudioRoleControl.supportedAudioRoles": (),
-# class PySide2.QtMultimedia.QCamera:
-# class PySide2.QtMultimedia.QCamera.CaptureMode:
-# class PySide2.QtMultimedia.QCamera.CaptureModes:
-# class PySide2.QtMultimedia.QCamera.Error:
-# class PySide2.QtMultimedia.QCamera.FrameRateRange:
- "PySide2.QtMultimedia.QCamera.FrameRateRange.__init__": [(), ('PySide2.QtMultimedia.QCamera.FrameRateRange',), ('float', 'float')],
- "PySide2.QtMultimedia.QCamera.FrameRateRange.__copy__": (),
-# class PySide2.QtMultimedia.QCamera.LockChangeReason:
-# class PySide2.QtMultimedia.QCamera.LockStatus:
-# class PySide2.QtMultimedia.QCamera.LockType:
-# class PySide2.QtMultimedia.QCamera.LockTypes:
-# class PySide2.QtMultimedia.QCamera.Position:
-# class PySide2.QtMultimedia.QCamera.State:
-# class PySide2.QtMultimedia.QCamera.Status:
- "PySide2.QtMultimedia.QCamera.__init__": [('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QObject',), ('PySide2.QtMultimedia.QCamera.Position', 'PySide2.QtCore.QObject'), ('PySide2.QtMultimedia.QCameraInfo', 'PySide2.QtCore.QObject')],
- "PySide2.QtMultimedia.QCamera.availability": (),
- "PySide2.QtMultimedia.QCamera.availableDevices": (),
- "PySide2.QtMultimedia.QCamera.captureMode": (),
- "PySide2.QtMultimedia.QCamera.deviceDescription": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtMultimedia.QCamera.error": (),
- "PySide2.QtMultimedia.QCamera.errorString": (),
- "PySide2.QtMultimedia.QCamera.exposure": (),
- "PySide2.QtMultimedia.QCamera.focus": (),
- "PySide2.QtMultimedia.QCamera.imageProcessing": (),
- "PySide2.QtMultimedia.QCamera.isCaptureModeSupported": ('PySide2.QtMultimedia.QCamera.CaptureModes',),
- "PySide2.QtMultimedia.QCamera.load": (),
- "PySide2.QtMultimedia.QCamera.lockStatus": [(), ('PySide2.QtMultimedia.QCamera.LockType',)],
- "PySide2.QtMultimedia.QCamera.requestedLocks": (),
- "PySide2.QtMultimedia.QCamera.searchAndLock": [(), ('PySide2.QtMultimedia.QCamera.LockTypes',)],
- "PySide2.QtMultimedia.QCamera.setCaptureMode": ('PySide2.QtMultimedia.QCamera.CaptureModes',),
- "PySide2.QtMultimedia.QCamera.setViewfinder": [('PySide2.QtMultimedia.QAbstractVideoSurface',), ('PySide2.QtMultimediaWidgets.QGraphicsVideoItem',), ('PySide2.QtMultimediaWidgets.QVideoWidget',)],
- "PySide2.QtMultimedia.QCamera.setViewfinderSettings": ('PySide2.QtMultimedia.QCameraViewfinderSettings',),
- "PySide2.QtMultimedia.QCamera.start": (),
- "PySide2.QtMultimedia.QCamera.state": (),
- "PySide2.QtMultimedia.QCamera.status": (),
- "PySide2.QtMultimedia.QCamera.stop": (),
- "PySide2.QtMultimedia.QCamera.supportedLocks": (),
- "PySide2.QtMultimedia.QCamera.supportedViewfinderFrameRateRanges": ('PySide2.QtMultimedia.QCameraViewfinderSettings',),
- "PySide2.QtMultimedia.QCamera.supportedViewfinderPixelFormats": ('PySide2.QtMultimedia.QCameraViewfinderSettings',),
- "PySide2.QtMultimedia.QCamera.supportedViewfinderResolutions": ('PySide2.QtMultimedia.QCameraViewfinderSettings',),
- "PySide2.QtMultimedia.QCamera.supportedViewfinderSettings": ('PySide2.QtMultimedia.QCameraViewfinderSettings',),
- "PySide2.QtMultimedia.QCamera.unload": (),
- "PySide2.QtMultimedia.QCamera.unlock": [(), ('PySide2.QtMultimedia.QCamera.LockTypes',)],
- "PySide2.QtMultimedia.QCamera.viewfinderSettings": (),
-# class PySide2.QtMultimedia.QCameraCaptureBufferFormatControl:
- "PySide2.QtMultimedia.QCameraCaptureBufferFormatControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraCaptureBufferFormatControl.bufferFormat": (),
- "PySide2.QtMultimedia.QCameraCaptureBufferFormatControl.setBufferFormat": ('PySide2.QtMultimedia.QVideoFrame.PixelFormat',),
- "PySide2.QtMultimedia.QCameraCaptureBufferFormatControl.supportedBufferFormats": (),
-# class PySide2.QtMultimedia.QCameraCaptureDestinationControl:
- "PySide2.QtMultimedia.QCameraCaptureDestinationControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraCaptureDestinationControl.captureDestination": (),
- "PySide2.QtMultimedia.QCameraCaptureDestinationControl.isCaptureDestinationSupported": ('PySide2.QtMultimedia.QCameraImageCapture.CaptureDestinations',),
- "PySide2.QtMultimedia.QCameraCaptureDestinationControl.setCaptureDestination": ('PySide2.QtMultimedia.QCameraImageCapture.CaptureDestinations',),
-# class PySide2.QtMultimedia.QCameraControl:
-# class PySide2.QtMultimedia.QCameraControl.PropertyChangeType:
- "PySide2.QtMultimedia.QCameraControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraControl.canChangeProperty": ('PySide2.QtMultimedia.QCameraControl.PropertyChangeType', 'PySide2.QtMultimedia.QCamera.Status'),
- "PySide2.QtMultimedia.QCameraControl.captureMode": (),
- "PySide2.QtMultimedia.QCameraControl.isCaptureModeSupported": ('PySide2.QtMultimedia.QCamera.CaptureModes',),
- "PySide2.QtMultimedia.QCameraControl.setCaptureMode": ('PySide2.QtMultimedia.QCamera.CaptureModes',),
- "PySide2.QtMultimedia.QCameraControl.setState": ('PySide2.QtMultimedia.QCamera.State',),
- "PySide2.QtMultimedia.QCameraControl.state": (),
- "PySide2.QtMultimedia.QCameraControl.status": (),
-# class PySide2.QtMultimedia.QCameraExposure:
-# class PySide2.QtMultimedia.QCameraExposure.ExposureMode:
-# class PySide2.QtMultimedia.QCameraExposure.FlashMode:
-# class PySide2.QtMultimedia.QCameraExposure.FlashModes:
-# class PySide2.QtMultimedia.QCameraExposure.MeteringMode:
- "PySide2.QtMultimedia.QCameraExposure.aperture": (),
- "PySide2.QtMultimedia.QCameraExposure.exposureCompensation": (),
- "PySide2.QtMultimedia.QCameraExposure.exposureMode": (),
- "PySide2.QtMultimedia.QCameraExposure.flashMode": (),
- "PySide2.QtMultimedia.QCameraExposure.isAvailable": (),
- "PySide2.QtMultimedia.QCameraExposure.isExposureModeSupported": ('PySide2.QtMultimedia.QCameraExposure.ExposureMode',),
- "PySide2.QtMultimedia.QCameraExposure.isFlashModeSupported": ('PySide2.QtMultimedia.QCameraExposure.FlashModes',),
- "PySide2.QtMultimedia.QCameraExposure.isFlashReady": (),
- "PySide2.QtMultimedia.QCameraExposure.isMeteringModeSupported": ('PySide2.QtMultimedia.QCameraExposure.MeteringMode',),
- "PySide2.QtMultimedia.QCameraExposure.isoSensitivity": (),
- "PySide2.QtMultimedia.QCameraExposure.meteringMode": (),
- "PySide2.QtMultimedia.QCameraExposure.requestedAperture": (),
- "PySide2.QtMultimedia.QCameraExposure.requestedIsoSensitivity": (),
- "PySide2.QtMultimedia.QCameraExposure.requestedShutterSpeed": (),
- "PySide2.QtMultimedia.QCameraExposure.setAutoAperture": (),
- "PySide2.QtMultimedia.QCameraExposure.setAutoIsoSensitivity": (),
- "PySide2.QtMultimedia.QCameraExposure.setAutoShutterSpeed": (),
- "PySide2.QtMultimedia.QCameraExposure.setExposureCompensation": ('float',),
- "PySide2.QtMultimedia.QCameraExposure.setExposureMode": ('PySide2.QtMultimedia.QCameraExposure.ExposureMode',),
- "PySide2.QtMultimedia.QCameraExposure.setFlashMode": ('PySide2.QtMultimedia.QCameraExposure.FlashModes',),
- "PySide2.QtMultimedia.QCameraExposure.setManualAperture": ('float',),
- "PySide2.QtMultimedia.QCameraExposure.setManualIsoSensitivity": ('int',),
- "PySide2.QtMultimedia.QCameraExposure.setManualShutterSpeed": ('float',),
- "PySide2.QtMultimedia.QCameraExposure.setMeteringMode": ('PySide2.QtMultimedia.QCameraExposure.MeteringMode',),
- "PySide2.QtMultimedia.QCameraExposure.setSpotMeteringPoint": ('PySide2.QtCore.QPointF',),
- "PySide2.QtMultimedia.QCameraExposure.shutterSpeed": (),
- "PySide2.QtMultimedia.QCameraExposure.spotMeteringPoint": (),
-# class PySide2.QtMultimedia.QCameraExposureControl:
-# class PySide2.QtMultimedia.QCameraExposureControl.ExposureParameter:
- "PySide2.QtMultimedia.QCameraExposureControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraExposureControl.actualValue": ('PySide2.QtMultimedia.QCameraExposureControl.ExposureParameter',),
- "PySide2.QtMultimedia.QCameraExposureControl.isParameterSupported": ('PySide2.QtMultimedia.QCameraExposureControl.ExposureParameter',),
- "PySide2.QtMultimedia.QCameraExposureControl.requestedValue": ('PySide2.QtMultimedia.QCameraExposureControl.ExposureParameter',),
- "PySide2.QtMultimedia.QCameraExposureControl.setValue": ('PySide2.QtMultimedia.QCameraExposureControl.ExposureParameter', 'typing.Any'),
-# class PySide2.QtMultimedia.QCameraFeedbackControl:
-# class PySide2.QtMultimedia.QCameraFeedbackControl.EventType:
- "PySide2.QtMultimedia.QCameraFeedbackControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraFeedbackControl.isEventFeedbackEnabled": ('PySide2.QtMultimedia.QCameraFeedbackControl.EventType',),
- "PySide2.QtMultimedia.QCameraFeedbackControl.isEventFeedbackLocked": ('PySide2.QtMultimedia.QCameraFeedbackControl.EventType',),
- "PySide2.QtMultimedia.QCameraFeedbackControl.resetEventFeedback": ('PySide2.QtMultimedia.QCameraFeedbackControl.EventType',),
- "PySide2.QtMultimedia.QCameraFeedbackControl.setEventFeedbackEnabled": ('PySide2.QtMultimedia.QCameraFeedbackControl.EventType', 'bool'),
- "PySide2.QtMultimedia.QCameraFeedbackControl.setEventFeedbackSound": ('PySide2.QtMultimedia.QCameraFeedbackControl.EventType', 'str'),
-# class PySide2.QtMultimedia.QCameraFlashControl:
- "PySide2.QtMultimedia.QCameraFlashControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraFlashControl.flashMode": (),
- "PySide2.QtMultimedia.QCameraFlashControl.isFlashModeSupported": ('PySide2.QtMultimedia.QCameraExposure.FlashModes',),
- "PySide2.QtMultimedia.QCameraFlashControl.isFlashReady": (),
- "PySide2.QtMultimedia.QCameraFlashControl.setFlashMode": ('PySide2.QtMultimedia.QCameraExposure.FlashModes',),
-# class PySide2.QtMultimedia.QCameraFocus:
-# class PySide2.QtMultimedia.QCameraFocus.FocusMode:
-# class PySide2.QtMultimedia.QCameraFocus.FocusModes:
-# class PySide2.QtMultimedia.QCameraFocus.FocusPointMode:
- "PySide2.QtMultimedia.QCameraFocus.customFocusPoint": (),
- "PySide2.QtMultimedia.QCameraFocus.digitalZoom": (),
- "PySide2.QtMultimedia.QCameraFocus.focusMode": (),
- "PySide2.QtMultimedia.QCameraFocus.focusPointMode": (),
- "PySide2.QtMultimedia.QCameraFocus.focusZones": (),
- "PySide2.QtMultimedia.QCameraFocus.isAvailable": (),
- "PySide2.QtMultimedia.QCameraFocus.isFocusModeSupported": ('PySide2.QtMultimedia.QCameraFocus.FocusModes',),
- "PySide2.QtMultimedia.QCameraFocus.isFocusPointModeSupported": ('PySide2.QtMultimedia.QCameraFocus.FocusPointMode',),
- "PySide2.QtMultimedia.QCameraFocus.maximumDigitalZoom": (),
- "PySide2.QtMultimedia.QCameraFocus.maximumOpticalZoom": (),
- "PySide2.QtMultimedia.QCameraFocus.opticalZoom": (),
- "PySide2.QtMultimedia.QCameraFocus.setCustomFocusPoint": ('PySide2.QtCore.QPointF',),
- "PySide2.QtMultimedia.QCameraFocus.setFocusMode": ('PySide2.QtMultimedia.QCameraFocus.FocusModes',),
- "PySide2.QtMultimedia.QCameraFocus.setFocusPointMode": ('PySide2.QtMultimedia.QCameraFocus.FocusPointMode',),
- "PySide2.QtMultimedia.QCameraFocus.zoomTo": ('float', 'float'),
-# class PySide2.QtMultimedia.QCameraFocusControl:
- "PySide2.QtMultimedia.QCameraFocusControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraFocusControl.customFocusPoint": (),
- "PySide2.QtMultimedia.QCameraFocusControl.focusMode": (),
- "PySide2.QtMultimedia.QCameraFocusControl.focusPointMode": (),
- "PySide2.QtMultimedia.QCameraFocusControl.focusZones": (),
- "PySide2.QtMultimedia.QCameraFocusControl.isFocusModeSupported": ('PySide2.QtMultimedia.QCameraFocus.FocusModes',),
- "PySide2.QtMultimedia.QCameraFocusControl.isFocusPointModeSupported": ('PySide2.QtMultimedia.QCameraFocus.FocusPointMode',),
- "PySide2.QtMultimedia.QCameraFocusControl.setCustomFocusPoint": ('PySide2.QtCore.QPointF',),
- "PySide2.QtMultimedia.QCameraFocusControl.setFocusMode": ('PySide2.QtMultimedia.QCameraFocus.FocusModes',),
- "PySide2.QtMultimedia.QCameraFocusControl.setFocusPointMode": ('PySide2.QtMultimedia.QCameraFocus.FocusPointMode',),
-# class PySide2.QtMultimedia.QCameraFocusZone:
-# class PySide2.QtMultimedia.QCameraFocusZone.FocusZoneStatus:
- "PySide2.QtMultimedia.QCameraFocusZone.__init__": [(), ('PySide2.QtCore.QRectF', 'PySide2.QtMultimedia.QCameraFocusZone.FocusZoneStatus'), ('PySide2.QtMultimedia.QCameraFocusZone',)],
- "PySide2.QtMultimedia.QCameraFocusZone.__copy__": (),
- "PySide2.QtMultimedia.QCameraFocusZone.area": (),
- "PySide2.QtMultimedia.QCameraFocusZone.isValid": (),
- "PySide2.QtMultimedia.QCameraFocusZone.setStatus": ('PySide2.QtMultimedia.QCameraFocusZone.FocusZoneStatus',),
- "PySide2.QtMultimedia.QCameraFocusZone.status": (),
-# class PySide2.QtMultimedia.QCameraImageCapture:
-# class PySide2.QtMultimedia.QCameraImageCapture.CaptureDestination:
-# class PySide2.QtMultimedia.QCameraImageCapture.CaptureDestinations:
-# class PySide2.QtMultimedia.QCameraImageCapture.DriveMode:
-# class PySide2.QtMultimedia.QCameraImageCapture.Error:
- "PySide2.QtMultimedia.QCameraImageCapture.__init__": ('PySide2.QtMultimedia.QMediaObject', 'PySide2.QtCore.QObject'),
- "PySide2.QtMultimedia.QCameraImageCapture.availability": (),
- "PySide2.QtMultimedia.QCameraImageCapture.bufferFormat": (),
- "PySide2.QtMultimedia.QCameraImageCapture.cancelCapture": (),
- "PySide2.QtMultimedia.QCameraImageCapture.capture": ('str',),
- "PySide2.QtMultimedia.QCameraImageCapture.captureDestination": (),
- "PySide2.QtMultimedia.QCameraImageCapture.encodingSettings": (),
- "PySide2.QtMultimedia.QCameraImageCapture.error": (),
- "PySide2.QtMultimedia.QCameraImageCapture.errorString": (),
- "PySide2.QtMultimedia.QCameraImageCapture.imageCodecDescription": ('str',),
- "PySide2.QtMultimedia.QCameraImageCapture.isAvailable": (),
- "PySide2.QtMultimedia.QCameraImageCapture.isCaptureDestinationSupported": ('PySide2.QtMultimedia.QCameraImageCapture.CaptureDestinations',),
- "PySide2.QtMultimedia.QCameraImageCapture.isReadyForCapture": (),
- "PySide2.QtMultimedia.QCameraImageCapture.mediaObject": (),
- "PySide2.QtMultimedia.QCameraImageCapture.setBufferFormat": ('PySide2.QtMultimedia.QVideoFrame.PixelFormat',),
- "PySide2.QtMultimedia.QCameraImageCapture.setCaptureDestination": ('PySide2.QtMultimedia.QCameraImageCapture.CaptureDestinations',),
- "PySide2.QtMultimedia.QCameraImageCapture.setEncodingSettings": ('PySide2.QtMultimedia.QImageEncoderSettings',),
- "PySide2.QtMultimedia.QCameraImageCapture.setMediaObject": ('PySide2.QtMultimedia.QMediaObject',),
- "PySide2.QtMultimedia.QCameraImageCapture.supportedBufferFormats": (),
- "PySide2.QtMultimedia.QCameraImageCapture.supportedImageCodecs": (),
-# class PySide2.QtMultimedia.QCameraImageCaptureControl:
- "PySide2.QtMultimedia.QCameraImageCaptureControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraImageCaptureControl.cancelCapture": (),
- "PySide2.QtMultimedia.QCameraImageCaptureControl.capture": ('str',),
- "PySide2.QtMultimedia.QCameraImageCaptureControl.driveMode": (),
- "PySide2.QtMultimedia.QCameraImageCaptureControl.isReadyForCapture": (),
- "PySide2.QtMultimedia.QCameraImageCaptureControl.setDriveMode": ('PySide2.QtMultimedia.QCameraImageCapture.DriveMode',),
-# class PySide2.QtMultimedia.QCameraImageProcessing:
-# class PySide2.QtMultimedia.QCameraImageProcessing.ColorFilter:
-# class PySide2.QtMultimedia.QCameraImageProcessing.WhiteBalanceMode:
- "PySide2.QtMultimedia.QCameraImageProcessing.brightness": (),
- "PySide2.QtMultimedia.QCameraImageProcessing.colorFilter": (),
- "PySide2.QtMultimedia.QCameraImageProcessing.contrast": (),
- "PySide2.QtMultimedia.QCameraImageProcessing.denoisingLevel": (),
- "PySide2.QtMultimedia.QCameraImageProcessing.isAvailable": (),
- "PySide2.QtMultimedia.QCameraImageProcessing.isColorFilterSupported": ('PySide2.QtMultimedia.QCameraImageProcessing.ColorFilter',),
- "PySide2.QtMultimedia.QCameraImageProcessing.isWhiteBalanceModeSupported": ('PySide2.QtMultimedia.QCameraImageProcessing.WhiteBalanceMode',),
- "PySide2.QtMultimedia.QCameraImageProcessing.manualWhiteBalance": (),
- "PySide2.QtMultimedia.QCameraImageProcessing.saturation": (),
- "PySide2.QtMultimedia.QCameraImageProcessing.setBrightness": ('float',),
- "PySide2.QtMultimedia.QCameraImageProcessing.setColorFilter": ('PySide2.QtMultimedia.QCameraImageProcessing.ColorFilter',),
- "PySide2.QtMultimedia.QCameraImageProcessing.setContrast": ('float',),
- "PySide2.QtMultimedia.QCameraImageProcessing.setDenoisingLevel": ('float',),
- "PySide2.QtMultimedia.QCameraImageProcessing.setManualWhiteBalance": ('float',),
- "PySide2.QtMultimedia.QCameraImageProcessing.setSaturation": ('float',),
- "PySide2.QtMultimedia.QCameraImageProcessing.setSharpeningLevel": ('float',),
- "PySide2.QtMultimedia.QCameraImageProcessing.setWhiteBalanceMode": ('PySide2.QtMultimedia.QCameraImageProcessing.WhiteBalanceMode',),
- "PySide2.QtMultimedia.QCameraImageProcessing.sharpeningLevel": (),
- "PySide2.QtMultimedia.QCameraImageProcessing.whiteBalanceMode": (),
-# class PySide2.QtMultimedia.QCameraImageProcessingControl:
-# class PySide2.QtMultimedia.QCameraImageProcessingControl.ProcessingParameter:
- "PySide2.QtMultimedia.QCameraImageProcessingControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraImageProcessingControl.isParameterSupported": ('PySide2.QtMultimedia.QCameraImageProcessingControl.ProcessingParameter',),
- "PySide2.QtMultimedia.QCameraImageProcessingControl.isParameterValueSupported": ('PySide2.QtMultimedia.QCameraImageProcessingControl.ProcessingParameter', 'typing.Any'),
- "PySide2.QtMultimedia.QCameraImageProcessingControl.parameter": ('PySide2.QtMultimedia.QCameraImageProcessingControl.ProcessingParameter',),
- "PySide2.QtMultimedia.QCameraImageProcessingControl.setParameter": ('PySide2.QtMultimedia.QCameraImageProcessingControl.ProcessingParameter', 'typing.Any'),
-# class PySide2.QtMultimedia.QCameraInfo:
- "PySide2.QtMultimedia.QCameraInfo.__init__": [('PySide2.QtCore.QByteArray',), ('PySide2.QtMultimedia.QCamera',), ('PySide2.QtMultimedia.QCameraInfo',)],
- "PySide2.QtMultimedia.QCameraInfo.__copy__": (),
- "PySide2.QtMultimedia.QCameraInfo.availableCameras": ('PySide2.QtMultimedia.QCamera.Position',),
- "PySide2.QtMultimedia.QCameraInfo.defaultCamera": (),
- "PySide2.QtMultimedia.QCameraInfo.description": (),
- "PySide2.QtMultimedia.QCameraInfo.deviceName": (),
- "PySide2.QtMultimedia.QCameraInfo.isNull": (),
- "PySide2.QtMultimedia.QCameraInfo.orientation": (),
- "PySide2.QtMultimedia.QCameraInfo.position": (),
-# class PySide2.QtMultimedia.QCameraInfoControl:
- "PySide2.QtMultimedia.QCameraInfoControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraInfoControl.cameraOrientation": ('str',),
- "PySide2.QtMultimedia.QCameraInfoControl.cameraPosition": ('str',),
-# class PySide2.QtMultimedia.QCameraLocksControl:
- "PySide2.QtMultimedia.QCameraLocksControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraLocksControl.lockStatus": ('PySide2.QtMultimedia.QCamera.LockType',),
- "PySide2.QtMultimedia.QCameraLocksControl.searchAndLock": ('PySide2.QtMultimedia.QCamera.LockTypes',),
- "PySide2.QtMultimedia.QCameraLocksControl.supportedLocks": (),
- "PySide2.QtMultimedia.QCameraLocksControl.unlock": ('PySide2.QtMultimedia.QCamera.LockTypes',),
-# class PySide2.QtMultimedia.QCameraViewfinderSettings:
- "PySide2.QtMultimedia.QCameraViewfinderSettings.__init__": [(), ('PySide2.QtMultimedia.QCameraViewfinderSettings',)],
- "PySide2.QtMultimedia.QCameraViewfinderSettings.__copy__": (),
- "PySide2.QtMultimedia.QCameraViewfinderSettings.isNull": (),
- "PySide2.QtMultimedia.QCameraViewfinderSettings.maximumFrameRate": (),
- "PySide2.QtMultimedia.QCameraViewfinderSettings.minimumFrameRate": (),
- "PySide2.QtMultimedia.QCameraViewfinderSettings.pixelAspectRatio": (),
- "PySide2.QtMultimedia.QCameraViewfinderSettings.pixelFormat": (),
- "PySide2.QtMultimedia.QCameraViewfinderSettings.resolution": (),
- "PySide2.QtMultimedia.QCameraViewfinderSettings.setMaximumFrameRate": ('float',),
- "PySide2.QtMultimedia.QCameraViewfinderSettings.setMinimumFrameRate": ('float',),
- "PySide2.QtMultimedia.QCameraViewfinderSettings.setPixelAspectRatio": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtMultimedia.QCameraViewfinderSettings.setPixelFormat": ('PySide2.QtMultimedia.QVideoFrame.PixelFormat',),
- "PySide2.QtMultimedia.QCameraViewfinderSettings.setResolution": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtMultimedia.QCameraViewfinderSettings.swap": ('PySide2.QtMultimedia.QCameraViewfinderSettings',),
-# class PySide2.QtMultimedia.QCameraViewfinderSettingsControl:
-# class PySide2.QtMultimedia.QCameraViewfinderSettingsControl.ViewfinderParameter:
- "PySide2.QtMultimedia.QCameraViewfinderSettingsControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraViewfinderSettingsControl.isViewfinderParameterSupported": ('PySide2.QtMultimedia.QCameraViewfinderSettingsControl.ViewfinderParameter',),
- "PySide2.QtMultimedia.QCameraViewfinderSettingsControl.setViewfinderParameter": ('PySide2.QtMultimedia.QCameraViewfinderSettingsControl.ViewfinderParameter', 'typing.Any'),
- "PySide2.QtMultimedia.QCameraViewfinderSettingsControl.viewfinderParameter": ('PySide2.QtMultimedia.QCameraViewfinderSettingsControl.ViewfinderParameter',),
-# class PySide2.QtMultimedia.QCameraViewfinderSettingsControl2:
- "PySide2.QtMultimedia.QCameraViewfinderSettingsControl2.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraViewfinderSettingsControl2.setViewfinderSettings": ('PySide2.QtMultimedia.QCameraViewfinderSettings',),
- "PySide2.QtMultimedia.QCameraViewfinderSettingsControl2.supportedViewfinderSettings": (),
- "PySide2.QtMultimedia.QCameraViewfinderSettingsControl2.viewfinderSettings": (),
-# class PySide2.QtMultimedia.QCameraZoomControl:
- "PySide2.QtMultimedia.QCameraZoomControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCameraZoomControl.currentDigitalZoom": (),
- "PySide2.QtMultimedia.QCameraZoomControl.currentOpticalZoom": (),
- "PySide2.QtMultimedia.QCameraZoomControl.maximumDigitalZoom": (),
- "PySide2.QtMultimedia.QCameraZoomControl.maximumOpticalZoom": (),
- "PySide2.QtMultimedia.QCameraZoomControl.requestedDigitalZoom": (),
- "PySide2.QtMultimedia.QCameraZoomControl.requestedOpticalZoom": (),
- "PySide2.QtMultimedia.QCameraZoomControl.zoomTo": ('float', 'float'),
-# class PySide2.QtMultimedia.QCustomAudioRoleControl:
- "PySide2.QtMultimedia.QCustomAudioRoleControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QCustomAudioRoleControl.customAudioRole": (),
- "PySide2.QtMultimedia.QCustomAudioRoleControl.setCustomAudioRole": ('str',),
- "PySide2.QtMultimedia.QCustomAudioRoleControl.supportedCustomAudioRoles": (),
-# class PySide2.QtMultimedia.QImageEncoderControl:
- "PySide2.QtMultimedia.QImageEncoderControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QImageEncoderControl.imageCodecDescription": ('str',),
- "PySide2.QtMultimedia.QImageEncoderControl.imageSettings": (),
- "PySide2.QtMultimedia.QImageEncoderControl.setImageSettings": ('PySide2.QtMultimedia.QImageEncoderSettings',),
- "PySide2.QtMultimedia.QImageEncoderControl.supportedImageCodecs": (),
-# class PySide2.QtMultimedia.QImageEncoderSettings:
- "PySide2.QtMultimedia.QImageEncoderSettings.__init__": [(), ('PySide2.QtMultimedia.QImageEncoderSettings',)],
- "PySide2.QtMultimedia.QImageEncoderSettings.__copy__": (),
- "PySide2.QtMultimedia.QImageEncoderSettings.codec": (),
- "PySide2.QtMultimedia.QImageEncoderSettings.encodingOption": ('str',),
- "PySide2.QtMultimedia.QImageEncoderSettings.encodingOptions": (),
- "PySide2.QtMultimedia.QImageEncoderSettings.isNull": (),
- "PySide2.QtMultimedia.QImageEncoderSettings.quality": (),
- "PySide2.QtMultimedia.QImageEncoderSettings.resolution": (),
- "PySide2.QtMultimedia.QImageEncoderSettings.setCodec": ('str',),
- "PySide2.QtMultimedia.QImageEncoderSettings.setEncodingOption": ('str', 'typing.Any'),
- "PySide2.QtMultimedia.QImageEncoderSettings.setEncodingOptions": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtMultimedia.QImageEncoderSettings.setQuality": ('PySide2.QtMultimedia.QMultimedia.EncodingQuality',),
- "PySide2.QtMultimedia.QImageEncoderSettings.setResolution": [('PySide2.QtCore.QSize',), ('int', 'int')],
-# class PySide2.QtMultimedia.QMediaAudioProbeControl:
- "PySide2.QtMultimedia.QMediaAudioProbeControl.__init__": ('PySide2.QtCore.QObject',),
-# class PySide2.QtMultimedia.QMediaAvailabilityControl:
- "PySide2.QtMultimedia.QMediaAvailabilityControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaAvailabilityControl.availability": (),
-# class PySide2.QtMultimedia.QMediaBindableInterface:
- "PySide2.QtMultimedia.QMediaBindableInterface.__init__": (),
- "PySide2.QtMultimedia.QMediaBindableInterface.mediaObject": (),
- "PySide2.QtMultimedia.QMediaBindableInterface.setMediaObject": ('PySide2.QtMultimedia.QMediaObject',),
-# class PySide2.QtMultimedia.QMediaContainerControl:
- "PySide2.QtMultimedia.QMediaContainerControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaContainerControl.containerDescription": ('str',),
- "PySide2.QtMultimedia.QMediaContainerControl.containerFormat": (),
- "PySide2.QtMultimedia.QMediaContainerControl.setContainerFormat": ('str',),
- "PySide2.QtMultimedia.QMediaContainerControl.supportedContainers": (),
-# class PySide2.QtMultimedia.QMediaContent:
- "PySide2.QtMultimedia.QMediaContent.__init__": [(), ('PySide2.QtCore.QUrl',), ('PySide2.QtMultimedia.QMediaContent',), ('PySide2.QtMultimedia.QMediaPlaylist', 'PySide2.QtCore.QUrl', 'bool'), ('PySide2.QtMultimedia.QMediaResource',), ('PySide2.QtNetwork.QNetworkRequest',), ('typing.Sequence[PySide2.QtMultimedia.QMediaResource]',)],
- "PySide2.QtMultimedia.QMediaContent.__copy__": (),
- "PySide2.QtMultimedia.QMediaContent.canonicalRequest": (),
- "PySide2.QtMultimedia.QMediaContent.canonicalResource": (),
- "PySide2.QtMultimedia.QMediaContent.canonicalUrl": (),
- "PySide2.QtMultimedia.QMediaContent.isNull": (),
- "PySide2.QtMultimedia.QMediaContent.playlist": (),
- "PySide2.QtMultimedia.QMediaContent.request": (),
- "PySide2.QtMultimedia.QMediaContent.resources": (),
-# class PySide2.QtMultimedia.QMediaControl:
- "PySide2.QtMultimedia.QMediaControl.__init__": ('PySide2.QtCore.QObject',),
-# class PySide2.QtMultimedia.QMediaGaplessPlaybackControl:
- "PySide2.QtMultimedia.QMediaGaplessPlaybackControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaGaplessPlaybackControl.crossfadeTime": (),
- "PySide2.QtMultimedia.QMediaGaplessPlaybackControl.isCrossfadeSupported": (),
- "PySide2.QtMultimedia.QMediaGaplessPlaybackControl.nextMedia": (),
- "PySide2.QtMultimedia.QMediaGaplessPlaybackControl.setCrossfadeTime": ('float',),
- "PySide2.QtMultimedia.QMediaGaplessPlaybackControl.setNextMedia": ('PySide2.QtMultimedia.QMediaContent',),
-# class PySide2.QtMultimedia.QMediaNetworkAccessControl:
- "PySide2.QtMultimedia.QMediaNetworkAccessControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaNetworkAccessControl.currentConfiguration": (),
- "PySide2.QtMultimedia.QMediaNetworkAccessControl.setConfigurations": ('typing.Sequence[PySide2.QtNetwork.QNetworkConfiguration]',),
-# class PySide2.QtMultimedia.QMediaObject:
- "PySide2.QtMultimedia.QMediaObject.__init__": ('PySide2.QtCore.QObject', 'PySide2.QtMultimedia.QMediaService'),
- "PySide2.QtMultimedia.QMediaObject.addPropertyWatch": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtMultimedia.QMediaObject.availability": (),
- "PySide2.QtMultimedia.QMediaObject.availableMetaData": (),
- "PySide2.QtMultimedia.QMediaObject.bind": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaObject.isAvailable": (),
- "PySide2.QtMultimedia.QMediaObject.isMetaDataAvailable": (),
- "PySide2.QtMultimedia.QMediaObject.metaData": ('str',),
- "PySide2.QtMultimedia.QMediaObject.notifyInterval": (),
- "PySide2.QtMultimedia.QMediaObject.removePropertyWatch": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtMultimedia.QMediaObject.service": (),
- "PySide2.QtMultimedia.QMediaObject.setNotifyInterval": ('int',),
- "PySide2.QtMultimedia.QMediaObject.unbind": ('PySide2.QtCore.QObject',),
-# class PySide2.QtMultimedia.QMediaPlayer:
-# class PySide2.QtMultimedia.QMediaPlayer.Error:
-# class PySide2.QtMultimedia.QMediaPlayer.Flag:
-# class PySide2.QtMultimedia.QMediaPlayer.Flags:
-# class PySide2.QtMultimedia.QMediaPlayer.MediaStatus:
-# class PySide2.QtMultimedia.QMediaPlayer.State:
- "PySide2.QtMultimedia.QMediaPlayer.__init__": ('PySide2.QtCore.QObject', 'PySide2.QtMultimedia.QMediaPlayer.Flags'),
- "PySide2.QtMultimedia.QMediaPlayer.audioRole": (),
- "PySide2.QtMultimedia.QMediaPlayer.availability": (),
- "PySide2.QtMultimedia.QMediaPlayer.bind": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaPlayer.bufferStatus": (),
- "PySide2.QtMultimedia.QMediaPlayer.currentMedia": (),
- "PySide2.QtMultimedia.QMediaPlayer.currentNetworkConfiguration": (),
- "PySide2.QtMultimedia.QMediaPlayer.customAudioRole": (),
- "PySide2.QtMultimedia.QMediaPlayer.duration": (),
- "PySide2.QtMultimedia.QMediaPlayer.error": (),
- "PySide2.QtMultimedia.QMediaPlayer.errorString": (),
- "PySide2.QtMultimedia.QMediaPlayer.hasSupport": ('str', 'typing.Sequence[str]', 'PySide2.QtMultimedia.QMediaPlayer.Flags'),
- "PySide2.QtMultimedia.QMediaPlayer.isAudioAvailable": (),
- "PySide2.QtMultimedia.QMediaPlayer.isMuted": (),
- "PySide2.QtMultimedia.QMediaPlayer.isSeekable": (),
- "PySide2.QtMultimedia.QMediaPlayer.isVideoAvailable": (),
- "PySide2.QtMultimedia.QMediaPlayer.media": (),
- "PySide2.QtMultimedia.QMediaPlayer.mediaStatus": (),
- "PySide2.QtMultimedia.QMediaPlayer.mediaStream": (),
- "PySide2.QtMultimedia.QMediaPlayer.pause": (),
- "PySide2.QtMultimedia.QMediaPlayer.play": (),
- "PySide2.QtMultimedia.QMediaPlayer.playbackRate": (),
- "PySide2.QtMultimedia.QMediaPlayer.playlist": (),
- "PySide2.QtMultimedia.QMediaPlayer.position": (),
- "PySide2.QtMultimedia.QMediaPlayer.setAudioRole": ('PySide2.QtMultimedia.QAudio.Role',),
- "PySide2.QtMultimedia.QMediaPlayer.setCustomAudioRole": ('str',),
- "PySide2.QtMultimedia.QMediaPlayer.setMedia": ('PySide2.QtMultimedia.QMediaContent', 'PySide2.QtCore.QIODevice'),
- "PySide2.QtMultimedia.QMediaPlayer.setMuted": ('bool',),
- "PySide2.QtMultimedia.QMediaPlayer.setNetworkConfigurations": ('typing.Sequence[PySide2.QtNetwork.QNetworkConfiguration]',),
- "PySide2.QtMultimedia.QMediaPlayer.setPlaybackRate": ('float',),
- "PySide2.QtMultimedia.QMediaPlayer.setPlaylist": ('PySide2.QtMultimedia.QMediaPlaylist',),
- "PySide2.QtMultimedia.QMediaPlayer.setPosition": ('int',),
- "PySide2.QtMultimedia.QMediaPlayer.setVideoOutput": [('PySide2.QtMultimedia.QAbstractVideoSurface',), ('PySide2.QtMultimediaWidgets.QGraphicsVideoItem',), ('PySide2.QtMultimediaWidgets.QVideoWidget',)],
- "PySide2.QtMultimedia.QMediaPlayer.setVolume": ('int',),
- "PySide2.QtMultimedia.QMediaPlayer.state": (),
- "PySide2.QtMultimedia.QMediaPlayer.stop": (),
- "PySide2.QtMultimedia.QMediaPlayer.supportedAudioRoles": (),
- "PySide2.QtMultimedia.QMediaPlayer.supportedCustomAudioRoles": (),
- "PySide2.QtMultimedia.QMediaPlayer.supportedMimeTypes": ('PySide2.QtMultimedia.QMediaPlayer.Flags',),
- "PySide2.QtMultimedia.QMediaPlayer.unbind": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaPlayer.volume": (),
-# class PySide2.QtMultimedia.QMediaPlayerControl:
- "PySide2.QtMultimedia.QMediaPlayerControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaPlayerControl.availablePlaybackRanges": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.bufferStatus": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.duration": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.isAudioAvailable": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.isMuted": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.isSeekable": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.isVideoAvailable": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.media": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.mediaStatus": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.mediaStream": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.pause": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.play": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.playbackRate": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.position": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.setMedia": ('PySide2.QtMultimedia.QMediaContent', 'PySide2.QtCore.QIODevice'),
- "PySide2.QtMultimedia.QMediaPlayerControl.setMuted": ('bool',),
- "PySide2.QtMultimedia.QMediaPlayerControl.setPlaybackRate": ('float',),
- "PySide2.QtMultimedia.QMediaPlayerControl.setPosition": ('int',),
- "PySide2.QtMultimedia.QMediaPlayerControl.setVolume": ('int',),
- "PySide2.QtMultimedia.QMediaPlayerControl.state": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.stop": (),
- "PySide2.QtMultimedia.QMediaPlayerControl.volume": (),
-# class PySide2.QtMultimedia.QMediaPlaylist:
-# class PySide2.QtMultimedia.QMediaPlaylist.Error:
-# class PySide2.QtMultimedia.QMediaPlaylist.PlaybackMode:
- "PySide2.QtMultimedia.QMediaPlaylist.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaPlaylist.addMedia": [('PySide2.QtMultimedia.QMediaContent',), ('typing.Sequence[PySide2.QtMultimedia.QMediaContent]',)],
- "PySide2.QtMultimedia.QMediaPlaylist.clear": (),
- "PySide2.QtMultimedia.QMediaPlaylist.currentIndex": (),
- "PySide2.QtMultimedia.QMediaPlaylist.currentMedia": (),
- "PySide2.QtMultimedia.QMediaPlaylist.error": (),
- "PySide2.QtMultimedia.QMediaPlaylist.errorString": (),
- "PySide2.QtMultimedia.QMediaPlaylist.insertMedia": [('int', 'PySide2.QtMultimedia.QMediaContent'), ('int', 'typing.Sequence[PySide2.QtMultimedia.QMediaContent]')],
- "PySide2.QtMultimedia.QMediaPlaylist.isEmpty": (),
- "PySide2.QtMultimedia.QMediaPlaylist.isReadOnly": (),
- "PySide2.QtMultimedia.QMediaPlaylist.load": [('PySide2.QtCore.QIODevice', 'str'), ('PySide2.QtCore.QUrl', 'str'), ('PySide2.QtNetwork.QNetworkRequest', 'str')],
- "PySide2.QtMultimedia.QMediaPlaylist.media": ('int',),
- "PySide2.QtMultimedia.QMediaPlaylist.mediaCount": (),
- "PySide2.QtMultimedia.QMediaPlaylist.mediaObject": (),
- "PySide2.QtMultimedia.QMediaPlaylist.moveMedia": ('int', 'int'),
- "PySide2.QtMultimedia.QMediaPlaylist.nextIndex": ('int',),
- "PySide2.QtMultimedia.QMediaPlaylist.playbackMode": (),
- "PySide2.QtMultimedia.QMediaPlaylist.previous": (),
- "PySide2.QtMultimedia.QMediaPlaylist.previousIndex": ('int',),
- "PySide2.QtMultimedia.QMediaPlaylist.removeMedia": [('int',), ('int', 'int')],
- "PySide2.QtMultimedia.QMediaPlaylist.save": [('PySide2.QtCore.QIODevice', 'str'), ('PySide2.QtCore.QUrl', 'str')],
- "PySide2.QtMultimedia.QMediaPlaylist.setCurrentIndex": ('int',),
- "PySide2.QtMultimedia.QMediaPlaylist.setMediaObject": ('PySide2.QtMultimedia.QMediaObject',),
- "PySide2.QtMultimedia.QMediaPlaylist.setPlaybackMode": ('PySide2.QtMultimedia.QMediaPlaylist.PlaybackMode',),
- "PySide2.QtMultimedia.QMediaPlaylist.shuffle": (),
-# class PySide2.QtMultimedia.QMediaRecorder:
-# class PySide2.QtMultimedia.QMediaRecorder.Error:
-# class PySide2.QtMultimedia.QMediaRecorder.State:
-# class PySide2.QtMultimedia.QMediaRecorder.Status:
- "PySide2.QtMultimedia.QMediaRecorder.__init__": ('PySide2.QtMultimedia.QMediaObject', 'PySide2.QtCore.QObject'),
- "PySide2.QtMultimedia.QMediaRecorder.actualLocation": (),
- "PySide2.QtMultimedia.QMediaRecorder.audioCodecDescription": ('str',),
- "PySide2.QtMultimedia.QMediaRecorder.audioSettings": (),
- "PySide2.QtMultimedia.QMediaRecorder.availability": (),
- "PySide2.QtMultimedia.QMediaRecorder.availableMetaData": (),
- "PySide2.QtMultimedia.QMediaRecorder.containerDescription": ('str',),
- "PySide2.QtMultimedia.QMediaRecorder.containerFormat": (),
- "PySide2.QtMultimedia.QMediaRecorder.duration": (),
- "PySide2.QtMultimedia.QMediaRecorder.error": (),
- "PySide2.QtMultimedia.QMediaRecorder.errorString": (),
- "PySide2.QtMultimedia.QMediaRecorder.isAvailable": (),
- "PySide2.QtMultimedia.QMediaRecorder.isMetaDataAvailable": (),
- "PySide2.QtMultimedia.QMediaRecorder.isMetaDataWritable": (),
- "PySide2.QtMultimedia.QMediaRecorder.isMuted": (),
- "PySide2.QtMultimedia.QMediaRecorder.mediaObject": (),
- "PySide2.QtMultimedia.QMediaRecorder.metaData": ('str',),
- "PySide2.QtMultimedia.QMediaRecorder.outputLocation": (),
- "PySide2.QtMultimedia.QMediaRecorder.pause": (),
- "PySide2.QtMultimedia.QMediaRecorder.record": (),
- "PySide2.QtMultimedia.QMediaRecorder.setAudioSettings": ('PySide2.QtMultimedia.QAudioEncoderSettings',),
- "PySide2.QtMultimedia.QMediaRecorder.setContainerFormat": ('str',),
- "PySide2.QtMultimedia.QMediaRecorder.setEncodingSettings": ('PySide2.QtMultimedia.QAudioEncoderSettings', 'PySide2.QtMultimedia.QVideoEncoderSettings', 'str'),
- "PySide2.QtMultimedia.QMediaRecorder.setMediaObject": ('PySide2.QtMultimedia.QMediaObject',),
- "PySide2.QtMultimedia.QMediaRecorder.setMetaData": ('str', 'typing.Any'),
- "PySide2.QtMultimedia.QMediaRecorder.setMuted": ('bool',),
- "PySide2.QtMultimedia.QMediaRecorder.setOutputLocation": ('PySide2.QtCore.QUrl',),
- "PySide2.QtMultimedia.QMediaRecorder.setVideoSettings": ('PySide2.QtMultimedia.QVideoEncoderSettings',),
- "PySide2.QtMultimedia.QMediaRecorder.setVolume": ('float',),
- "PySide2.QtMultimedia.QMediaRecorder.state": (),
- "PySide2.QtMultimedia.QMediaRecorder.status": (),
- "PySide2.QtMultimedia.QMediaRecorder.stop": (),
- "PySide2.QtMultimedia.QMediaRecorder.supportedAudioCodecs": (),
- "PySide2.QtMultimedia.QMediaRecorder.supportedContainers": (),
- "PySide2.QtMultimedia.QMediaRecorder.supportedVideoCodecs": (),
- "PySide2.QtMultimedia.QMediaRecorder.videoCodecDescription": ('str',),
- "PySide2.QtMultimedia.QMediaRecorder.videoSettings": (),
- "PySide2.QtMultimedia.QMediaRecorder.volume": (),
-# class PySide2.QtMultimedia.QMediaRecorderControl:
- "PySide2.QtMultimedia.QMediaRecorderControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaRecorderControl.applySettings": (),
- "PySide2.QtMultimedia.QMediaRecorderControl.duration": (),
- "PySide2.QtMultimedia.QMediaRecorderControl.isMuted": (),
- "PySide2.QtMultimedia.QMediaRecorderControl.outputLocation": (),
- "PySide2.QtMultimedia.QMediaRecorderControl.setMuted": ('bool',),
- "PySide2.QtMultimedia.QMediaRecorderControl.setOutputLocation": ('PySide2.QtCore.QUrl',),
- "PySide2.QtMultimedia.QMediaRecorderControl.setState": ('PySide2.QtMultimedia.QMediaRecorder.State',),
- "PySide2.QtMultimedia.QMediaRecorderControl.setVolume": ('float',),
- "PySide2.QtMultimedia.QMediaRecorderControl.state": (),
- "PySide2.QtMultimedia.QMediaRecorderControl.status": (),
- "PySide2.QtMultimedia.QMediaRecorderControl.volume": (),
-# class PySide2.QtMultimedia.QMediaResource:
- "PySide2.QtMultimedia.QMediaResource.__init__": [(), ('PySide2.QtCore.QUrl', 'str'), ('PySide2.QtMultimedia.QMediaResource',), ('PySide2.QtNetwork.QNetworkRequest', 'str')],
- "PySide2.QtMultimedia.QMediaResource.__copy__": (),
- "PySide2.QtMultimedia.QMediaResource.audioBitRate": (),
- "PySide2.QtMultimedia.QMediaResource.audioCodec": (),
- "PySide2.QtMultimedia.QMediaResource.channelCount": (),
- "PySide2.QtMultimedia.QMediaResource.dataSize": (),
- "PySide2.QtMultimedia.QMediaResource.isNull": (),
- "PySide2.QtMultimedia.QMediaResource.language": (),
- "PySide2.QtMultimedia.QMediaResource.mimeType": (),
- "PySide2.QtMultimedia.QMediaResource.request": (),
- "PySide2.QtMultimedia.QMediaResource.resolution": (),
- "PySide2.QtMultimedia.QMediaResource.sampleRate": (),
- "PySide2.QtMultimedia.QMediaResource.setAudioBitRate": ('int',),
- "PySide2.QtMultimedia.QMediaResource.setAudioCodec": ('str',),
- "PySide2.QtMultimedia.QMediaResource.setChannelCount": ('int',),
- "PySide2.QtMultimedia.QMediaResource.setDataSize": ('int',),
- "PySide2.QtMultimedia.QMediaResource.setLanguage": ('str',),
- "PySide2.QtMultimedia.QMediaResource.setResolution": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtMultimedia.QMediaResource.setSampleRate": ('int',),
- "PySide2.QtMultimedia.QMediaResource.setVideoBitRate": ('int',),
- "PySide2.QtMultimedia.QMediaResource.setVideoCodec": ('str',),
- "PySide2.QtMultimedia.QMediaResource.url": (),
- "PySide2.QtMultimedia.QMediaResource.videoBitRate": (),
- "PySide2.QtMultimedia.QMediaResource.videoCodec": (),
-# class PySide2.QtMultimedia.QMediaService:
- "PySide2.QtMultimedia.QMediaService.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaService.releaseControl": ('PySide2.QtMultimedia.QMediaControl',),
- "PySide2.QtMultimedia.QMediaService.requestControl": ('str',),
-# class PySide2.QtMultimedia.QMediaServiceCameraInfoInterface:
- "PySide2.QtMultimedia.QMediaServiceCameraInfoInterface.__init__": (),
- "PySide2.QtMultimedia.QMediaServiceCameraInfoInterface.cameraOrientation": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtMultimedia.QMediaServiceCameraInfoInterface.cameraPosition": ('PySide2.QtCore.QByteArray',),
-# class PySide2.QtMultimedia.QMediaServiceDefaultDeviceInterface:
- "PySide2.QtMultimedia.QMediaServiceDefaultDeviceInterface.__init__": (),
- "PySide2.QtMultimedia.QMediaServiceDefaultDeviceInterface.defaultDevice": ('PySide2.QtCore.QByteArray',),
-# class PySide2.QtMultimedia.QMediaServiceFeaturesInterface:
- "PySide2.QtMultimedia.QMediaServiceFeaturesInterface.__init__": (),
- "PySide2.QtMultimedia.QMediaServiceFeaturesInterface.supportedFeatures": ('PySide2.QtCore.QByteArray',),
-# class PySide2.QtMultimedia.QMediaServiceProviderHint:
-# class PySide2.QtMultimedia.QMediaServiceProviderHint.Feature:
-# class PySide2.QtMultimedia.QMediaServiceProviderHint.Features:
-# class PySide2.QtMultimedia.QMediaServiceProviderHint.Type:
- "PySide2.QtMultimedia.QMediaServiceProviderHint.__init__": [(), ('PySide2.QtCore.QByteArray',), ('PySide2.QtMultimedia.QCamera.Position',), ('PySide2.QtMultimedia.QMediaServiceProviderHint',), ('PySide2.QtMultimedia.QMediaServiceProviderHint.Features',), ('str', 'typing.Sequence[str]')],
- "PySide2.QtMultimedia.QMediaServiceProviderHint.__copy__": (),
- "PySide2.QtMultimedia.QMediaServiceProviderHint.cameraPosition": (),
- "PySide2.QtMultimedia.QMediaServiceProviderHint.codecs": (),
- "PySide2.QtMultimedia.QMediaServiceProviderHint.device": (),
- "PySide2.QtMultimedia.QMediaServiceProviderHint.features": (),
- "PySide2.QtMultimedia.QMediaServiceProviderHint.isNull": (),
- "PySide2.QtMultimedia.QMediaServiceProviderHint.mimeType": (),
- "PySide2.QtMultimedia.QMediaServiceProviderHint.type": (),
-# class PySide2.QtMultimedia.QMediaServiceSupportedDevicesInterface:
- "PySide2.QtMultimedia.QMediaServiceSupportedDevicesInterface.__init__": (),
- "PySide2.QtMultimedia.QMediaServiceSupportedDevicesInterface.deviceDescription": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtMultimedia.QMediaServiceSupportedDevicesInterface.devices": ('PySide2.QtCore.QByteArray',),
-# class PySide2.QtMultimedia.QMediaServiceSupportedFormatsInterface:
- "PySide2.QtMultimedia.QMediaServiceSupportedFormatsInterface.__init__": (),
- "PySide2.QtMultimedia.QMediaServiceSupportedFormatsInterface.hasSupport": ('str', 'typing.Sequence[str]'),
- "PySide2.QtMultimedia.QMediaServiceSupportedFormatsInterface.supportedMimeTypes": (),
-# class PySide2.QtMultimedia.QMediaStreamsControl:
-# class PySide2.QtMultimedia.QMediaStreamsControl.StreamType:
- "PySide2.QtMultimedia.QMediaStreamsControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMediaStreamsControl.isActive": ('int',),
- "PySide2.QtMultimedia.QMediaStreamsControl.metaData": ('int', 'str'),
- "PySide2.QtMultimedia.QMediaStreamsControl.setActive": ('int', 'bool'),
- "PySide2.QtMultimedia.QMediaStreamsControl.streamCount": (),
- "PySide2.QtMultimedia.QMediaStreamsControl.streamType": ('int',),
-# class PySide2.QtMultimedia.QMediaTimeInterval:
- "PySide2.QtMultimedia.QMediaTimeInterval.__init__": [(), ('PySide2.QtMultimedia.QMediaTimeInterval',), ('int', 'int')],
- "PySide2.QtMultimedia.QMediaTimeInterval.__copy__": (),
- "PySide2.QtMultimedia.QMediaTimeInterval.contains": ('int',),
- "PySide2.QtMultimedia.QMediaTimeInterval.end": (),
- "PySide2.QtMultimedia.QMediaTimeInterval.isNormal": (),
- "PySide2.QtMultimedia.QMediaTimeInterval.normalized": (),
- "PySide2.QtMultimedia.QMediaTimeInterval.start": (),
- "PySide2.QtMultimedia.QMediaTimeInterval.translated": ('int',),
-# class PySide2.QtMultimedia.QMediaTimeRange:
- "PySide2.QtMultimedia.QMediaTimeRange.__init__": [(), ('PySide2.QtMultimedia.QMediaTimeInterval',), ('PySide2.QtMultimedia.QMediaTimeRange',), ('int', 'int')],
- "PySide2.QtMultimedia.QMediaTimeRange.__add__": ('PySide2.QtMultimedia.QMediaTimeRange',),
- "PySide2.QtMultimedia.QMediaTimeRange.__copy__": (),
- "PySide2.QtMultimedia.QMediaTimeRange.__iadd__": [('PySide2.QtMultimedia.QMediaTimeInterval',), ('PySide2.QtMultimedia.QMediaTimeRange',)],
- "PySide2.QtMultimedia.QMediaTimeRange.__isub__": [('PySide2.QtMultimedia.QMediaTimeInterval',), ('PySide2.QtMultimedia.QMediaTimeRange',)],
- "PySide2.QtMultimedia.QMediaTimeRange.__sub__": ('PySide2.QtMultimedia.QMediaTimeRange',),
- "PySide2.QtMultimedia.QMediaTimeRange.addInterval": [('PySide2.QtMultimedia.QMediaTimeInterval',), ('int', 'int')],
- "PySide2.QtMultimedia.QMediaTimeRange.addTimeRange": ('PySide2.QtMultimedia.QMediaTimeRange',),
- "PySide2.QtMultimedia.QMediaTimeRange.clear": (),
- "PySide2.QtMultimedia.QMediaTimeRange.contains": ('int',),
- "PySide2.QtMultimedia.QMediaTimeRange.earliestTime": (),
- "PySide2.QtMultimedia.QMediaTimeRange.intervals": (),
- "PySide2.QtMultimedia.QMediaTimeRange.isContinuous": (),
- "PySide2.QtMultimedia.QMediaTimeRange.isEmpty": (),
- "PySide2.QtMultimedia.QMediaTimeRange.latestTime": (),
- "PySide2.QtMultimedia.QMediaTimeRange.removeInterval": [('PySide2.QtMultimedia.QMediaTimeInterval',), ('int', 'int')],
- "PySide2.QtMultimedia.QMediaTimeRange.removeTimeRange": ('PySide2.QtMultimedia.QMediaTimeRange',),
-# class PySide2.QtMultimedia.QMediaVideoProbeControl:
- "PySide2.QtMultimedia.QMediaVideoProbeControl.__init__": ('PySide2.QtCore.QObject',),
-# class PySide2.QtMultimedia.QMetaDataReaderControl:
- "PySide2.QtMultimedia.QMetaDataReaderControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMetaDataReaderControl.availableMetaData": (),
- "PySide2.QtMultimedia.QMetaDataReaderControl.isMetaDataAvailable": (),
- "PySide2.QtMultimedia.QMetaDataReaderControl.metaData": ('str',),
-# class PySide2.QtMultimedia.QMetaDataWriterControl:
- "PySide2.QtMultimedia.QMetaDataWriterControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QMetaDataWriterControl.availableMetaData": (),
- "PySide2.QtMultimedia.QMetaDataWriterControl.isMetaDataAvailable": (),
- "PySide2.QtMultimedia.QMetaDataWriterControl.isWritable": (),
- "PySide2.QtMultimedia.QMetaDataWriterControl.metaData": ('str',),
- "PySide2.QtMultimedia.QMetaDataWriterControl.setMetaData": ('str', 'typing.Any'),
-# class PySide2.QtMultimedia.QMultimedia:
-# class PySide2.QtMultimedia.QMultimedia.AvailabilityStatus:
-# class PySide2.QtMultimedia.QMultimedia.EncodingMode:
-# class PySide2.QtMultimedia.QMultimedia.EncodingQuality:
-# class PySide2.QtMultimedia.QMultimedia.SupportEstimate:
-# class PySide2.QtMultimedia.QRadioData:
-# class PySide2.QtMultimedia.QRadioData.Error:
-# class PySide2.QtMultimedia.QRadioData.ProgramType:
- "PySide2.QtMultimedia.QRadioData.__init__": ('PySide2.QtMultimedia.QMediaObject', 'PySide2.QtCore.QObject'),
- "PySide2.QtMultimedia.QRadioData.availability": (),
- "PySide2.QtMultimedia.QRadioData.error": (),
- "PySide2.QtMultimedia.QRadioData.errorString": (),
- "PySide2.QtMultimedia.QRadioData.isAlternativeFrequenciesEnabled": (),
- "PySide2.QtMultimedia.QRadioData.mediaObject": (),
- "PySide2.QtMultimedia.QRadioData.programType": (),
- "PySide2.QtMultimedia.QRadioData.programTypeName": (),
- "PySide2.QtMultimedia.QRadioData.radioText": (),
- "PySide2.QtMultimedia.QRadioData.setAlternativeFrequenciesEnabled": ('bool',),
- "PySide2.QtMultimedia.QRadioData.setMediaObject": ('PySide2.QtMultimedia.QMediaObject',),
- "PySide2.QtMultimedia.QRadioData.stationId": (),
- "PySide2.QtMultimedia.QRadioData.stationName": (),
-# class PySide2.QtMultimedia.QRadioDataControl:
- "PySide2.QtMultimedia.QRadioDataControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QRadioDataControl.error": (),
- "PySide2.QtMultimedia.QRadioDataControl.errorString": (),
- "PySide2.QtMultimedia.QRadioDataControl.isAlternativeFrequenciesEnabled": (),
- "PySide2.QtMultimedia.QRadioDataControl.programType": (),
- "PySide2.QtMultimedia.QRadioDataControl.programTypeName": (),
- "PySide2.QtMultimedia.QRadioDataControl.radioText": (),
- "PySide2.QtMultimedia.QRadioDataControl.setAlternativeFrequenciesEnabled": ('bool',),
- "PySide2.QtMultimedia.QRadioDataControl.stationId": (),
- "PySide2.QtMultimedia.QRadioDataControl.stationName": (),
-# class PySide2.QtMultimedia.QRadioTuner:
-# class PySide2.QtMultimedia.QRadioTuner.Band:
-# class PySide2.QtMultimedia.QRadioTuner.Error:
-# class PySide2.QtMultimedia.QRadioTuner.SearchMode:
-# class PySide2.QtMultimedia.QRadioTuner.State:
-# class PySide2.QtMultimedia.QRadioTuner.StereoMode:
- "PySide2.QtMultimedia.QRadioTuner.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QRadioTuner.availability": (),
- "PySide2.QtMultimedia.QRadioTuner.band": (),
- "PySide2.QtMultimedia.QRadioTuner.cancelSearch": (),
- "PySide2.QtMultimedia.QRadioTuner.error": (),
- "PySide2.QtMultimedia.QRadioTuner.errorString": (),
- "PySide2.QtMultimedia.QRadioTuner.frequency": (),
- "PySide2.QtMultimedia.QRadioTuner.frequencyRange": ('PySide2.QtMultimedia.QRadioTuner.Band',),
- "PySide2.QtMultimedia.QRadioTuner.frequencyStep": ('PySide2.QtMultimedia.QRadioTuner.Band',),
- "PySide2.QtMultimedia.QRadioTuner.isAntennaConnected": (),
- "PySide2.QtMultimedia.QRadioTuner.isBandSupported": ('PySide2.QtMultimedia.QRadioTuner.Band',),
- "PySide2.QtMultimedia.QRadioTuner.isMuted": (),
- "PySide2.QtMultimedia.QRadioTuner.isSearching": (),
- "PySide2.QtMultimedia.QRadioTuner.isStereo": (),
- "PySide2.QtMultimedia.QRadioTuner.radioData": (),
- "PySide2.QtMultimedia.QRadioTuner.searchAllStations": ('PySide2.QtMultimedia.QRadioTuner.SearchMode',),
- "PySide2.QtMultimedia.QRadioTuner.searchBackward": (),
- "PySide2.QtMultimedia.QRadioTuner.searchForward": (),
- "PySide2.QtMultimedia.QRadioTuner.setBand": ('PySide2.QtMultimedia.QRadioTuner.Band',),
- "PySide2.QtMultimedia.QRadioTuner.setFrequency": ('int',),
- "PySide2.QtMultimedia.QRadioTuner.setMuted": ('bool',),
- "PySide2.QtMultimedia.QRadioTuner.setStereoMode": ('PySide2.QtMultimedia.QRadioTuner.StereoMode',),
- "PySide2.QtMultimedia.QRadioTuner.setVolume": ('int',),
- "PySide2.QtMultimedia.QRadioTuner.signalStrength": (),
- "PySide2.QtMultimedia.QRadioTuner.start": (),
- "PySide2.QtMultimedia.QRadioTuner.state": (),
- "PySide2.QtMultimedia.QRadioTuner.stereoMode": (),
- "PySide2.QtMultimedia.QRadioTuner.stop": (),
- "PySide2.QtMultimedia.QRadioTuner.volume": (),
-# class PySide2.QtMultimedia.QRadioTunerControl:
- "PySide2.QtMultimedia.QRadioTunerControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QRadioTunerControl.band": (),
- "PySide2.QtMultimedia.QRadioTunerControl.cancelSearch": (),
- "PySide2.QtMultimedia.QRadioTunerControl.error": (),
- "PySide2.QtMultimedia.QRadioTunerControl.errorString": (),
- "PySide2.QtMultimedia.QRadioTunerControl.frequency": (),
- "PySide2.QtMultimedia.QRadioTunerControl.frequencyRange": ('PySide2.QtMultimedia.QRadioTuner.Band',),
- "PySide2.QtMultimedia.QRadioTunerControl.frequencyStep": ('PySide2.QtMultimedia.QRadioTuner.Band',),
- "PySide2.QtMultimedia.QRadioTunerControl.isAntennaConnected": (),
- "PySide2.QtMultimedia.QRadioTunerControl.isBandSupported": ('PySide2.QtMultimedia.QRadioTuner.Band',),
- "PySide2.QtMultimedia.QRadioTunerControl.isMuted": (),
- "PySide2.QtMultimedia.QRadioTunerControl.isSearching": (),
- "PySide2.QtMultimedia.QRadioTunerControl.isStereo": (),
- "PySide2.QtMultimedia.QRadioTunerControl.searchAllStations": ('PySide2.QtMultimedia.QRadioTuner.SearchMode',),
- "PySide2.QtMultimedia.QRadioTunerControl.searchBackward": (),
- "PySide2.QtMultimedia.QRadioTunerControl.searchForward": (),
- "PySide2.QtMultimedia.QRadioTunerControl.setBand": ('PySide2.QtMultimedia.QRadioTuner.Band',),
- "PySide2.QtMultimedia.QRadioTunerControl.setFrequency": ('int',),
- "PySide2.QtMultimedia.QRadioTunerControl.setMuted": ('bool',),
- "PySide2.QtMultimedia.QRadioTunerControl.setStereoMode": ('PySide2.QtMultimedia.QRadioTuner.StereoMode',),
- "PySide2.QtMultimedia.QRadioTunerControl.setVolume": ('int',),
- "PySide2.QtMultimedia.QRadioTunerControl.signalStrength": (),
- "PySide2.QtMultimedia.QRadioTunerControl.start": (),
- "PySide2.QtMultimedia.QRadioTunerControl.state": (),
- "PySide2.QtMultimedia.QRadioTunerControl.stereoMode": (),
- "PySide2.QtMultimedia.QRadioTunerControl.stop": (),
- "PySide2.QtMultimedia.QRadioTunerControl.volume": (),
-# class PySide2.QtMultimedia.QSound:
-# class PySide2.QtMultimedia.QSound.Loop:
- "PySide2.QtMultimedia.QSound.__init__": ('str', 'PySide2.QtCore.QObject'),
- "PySide2.QtMultimedia.QSound.fileName": (),
- "PySide2.QtMultimedia.QSound.isFinished": (),
- "PySide2.QtMultimedia.QSound.loops": (),
- "PySide2.QtMultimedia.QSound.loopsRemaining": (),
- "PySide2.QtMultimedia.QSound.play": [(), ('str',)],
- "PySide2.QtMultimedia.QSound.setLoops": ('int',),
- "PySide2.QtMultimedia.QSound.stop": (),
-# class PySide2.QtMultimedia.QSoundEffect:
-# class PySide2.QtMultimedia.QSoundEffect.Loop:
-# class PySide2.QtMultimedia.QSoundEffect.Status:
- "PySide2.QtMultimedia.QSoundEffect.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtMultimedia.QAudioDeviceInfo', 'PySide2.QtCore.QObject')],
- "PySide2.QtMultimedia.QSoundEffect.category": (),
- "PySide2.QtMultimedia.QSoundEffect.isLoaded": (),
- "PySide2.QtMultimedia.QSoundEffect.isMuted": (),
- "PySide2.QtMultimedia.QSoundEffect.isPlaying": (),
- "PySide2.QtMultimedia.QSoundEffect.loopCount": (),
- "PySide2.QtMultimedia.QSoundEffect.loopsRemaining": (),
- "PySide2.QtMultimedia.QSoundEffect.play": (),
- "PySide2.QtMultimedia.QSoundEffect.setCategory": ('str',),
- "PySide2.QtMultimedia.QSoundEffect.setLoopCount": ('int',),
- "PySide2.QtMultimedia.QSoundEffect.setMuted": ('bool',),
- "PySide2.QtMultimedia.QSoundEffect.setSource": ('PySide2.QtCore.QUrl',),
- "PySide2.QtMultimedia.QSoundEffect.setVolume": ('float',),
- "PySide2.QtMultimedia.QSoundEffect.source": (),
- "PySide2.QtMultimedia.QSoundEffect.status": (),
- "PySide2.QtMultimedia.QSoundEffect.stop": (),
- "PySide2.QtMultimedia.QSoundEffect.supportedMimeTypes": (),
- "PySide2.QtMultimedia.QSoundEffect.volume": (),
-# class PySide2.QtMultimedia.QVideoDeviceSelectorControl:
- "PySide2.QtMultimedia.QVideoDeviceSelectorControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QVideoDeviceSelectorControl.defaultDevice": (),
- "PySide2.QtMultimedia.QVideoDeviceSelectorControl.deviceCount": (),
- "PySide2.QtMultimedia.QVideoDeviceSelectorControl.deviceDescription": ('int',),
- "PySide2.QtMultimedia.QVideoDeviceSelectorControl.deviceName": ('int',),
- "PySide2.QtMultimedia.QVideoDeviceSelectorControl.selectedDevice": (),
- "PySide2.QtMultimedia.QVideoDeviceSelectorControl.setSelectedDevice": ('int',),
-# class PySide2.QtMultimedia.QVideoEncoderSettings:
- "PySide2.QtMultimedia.QVideoEncoderSettings.__init__": [(), ('PySide2.QtMultimedia.QVideoEncoderSettings',)],
- "PySide2.QtMultimedia.QVideoEncoderSettings.__copy__": (),
- "PySide2.QtMultimedia.QVideoEncoderSettings.bitRate": (),
- "PySide2.QtMultimedia.QVideoEncoderSettings.codec": (),
- "PySide2.QtMultimedia.QVideoEncoderSettings.encodingMode": (),
- "PySide2.QtMultimedia.QVideoEncoderSettings.encodingOption": ('str',),
- "PySide2.QtMultimedia.QVideoEncoderSettings.encodingOptions": (),
- "PySide2.QtMultimedia.QVideoEncoderSettings.frameRate": (),
- "PySide2.QtMultimedia.QVideoEncoderSettings.isNull": (),
- "PySide2.QtMultimedia.QVideoEncoderSettings.quality": (),
- "PySide2.QtMultimedia.QVideoEncoderSettings.resolution": (),
- "PySide2.QtMultimedia.QVideoEncoderSettings.setBitRate": ('int',),
- "PySide2.QtMultimedia.QVideoEncoderSettings.setCodec": ('str',),
- "PySide2.QtMultimedia.QVideoEncoderSettings.setEncodingMode": ('PySide2.QtMultimedia.QMultimedia.EncodingMode',),
- "PySide2.QtMultimedia.QVideoEncoderSettings.setEncodingOption": ('str', 'typing.Any'),
- "PySide2.QtMultimedia.QVideoEncoderSettings.setEncodingOptions": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtMultimedia.QVideoEncoderSettings.setFrameRate": ('float',),
- "PySide2.QtMultimedia.QVideoEncoderSettings.setQuality": ('PySide2.QtMultimedia.QMultimedia.EncodingQuality',),
- "PySide2.QtMultimedia.QVideoEncoderSettings.setResolution": [('PySide2.QtCore.QSize',), ('int', 'int')],
-# class PySide2.QtMultimedia.QVideoEncoderSettingsControl:
- "PySide2.QtMultimedia.QVideoEncoderSettingsControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QVideoEncoderSettingsControl.setVideoSettings": ('PySide2.QtMultimedia.QVideoEncoderSettings',),
- "PySide2.QtMultimedia.QVideoEncoderSettingsControl.supportedVideoCodecs": (),
- "PySide2.QtMultimedia.QVideoEncoderSettingsControl.videoCodecDescription": ('str',),
- "PySide2.QtMultimedia.QVideoEncoderSettingsControl.videoSettings": (),
-# class PySide2.QtMultimedia.QVideoFilterRunnable:
-# class PySide2.QtMultimedia.QVideoFilterRunnable.RunFlag:
-# class PySide2.QtMultimedia.QVideoFilterRunnable.RunFlags:
- "PySide2.QtMultimedia.QVideoFilterRunnable.__init__": (),
- "PySide2.QtMultimedia.QVideoFilterRunnable.run": ('PySide2.QtMultimedia.QVideoFrame', 'PySide2.QtMultimedia.QVideoSurfaceFormat', 'PySide2.QtMultimedia.QVideoFilterRunnable.RunFlags'),
-# class PySide2.QtMultimedia.QVideoFrame:
-# class PySide2.QtMultimedia.QVideoFrame.FieldType:
-# class PySide2.QtMultimedia.QVideoFrame.PixelFormat:
- "PySide2.QtMultimedia.QVideoFrame.__init__": [(), ('PySide2.QtGui.QImage',), ('PySide2.QtMultimedia.QAbstractVideoBuffer', 'PySide2.QtCore.QSize', 'PySide2.QtMultimedia.QVideoFrame.PixelFormat'), ('PySide2.QtMultimedia.QVideoFrame',), ('int', 'PySide2.QtCore.QSize', 'int', 'PySide2.QtMultimedia.QVideoFrame.PixelFormat')],
- "PySide2.QtMultimedia.QVideoFrame.__copy__": (),
- "PySide2.QtMultimedia.QVideoFrame.availableMetaData": (),
- "PySide2.QtMultimedia.QVideoFrame.bits": (),
- "PySide2.QtMultimedia.QVideoFrame.buffer": (),
- "PySide2.QtMultimedia.QVideoFrame.bytesPerLine": [(), ('int',)],
- "PySide2.QtMultimedia.QVideoFrame.endTime": (),
- "PySide2.QtMultimedia.QVideoFrame.fieldType": (),
- "PySide2.QtMultimedia.QVideoFrame.handle": (),
- "PySide2.QtMultimedia.QVideoFrame.handleType": (),
- "PySide2.QtMultimedia.QVideoFrame.height": (),
- "PySide2.QtMultimedia.QVideoFrame.imageFormatFromPixelFormat": ('PySide2.QtMultimedia.QVideoFrame.PixelFormat',),
- "PySide2.QtMultimedia.QVideoFrame.isMapped": (),
- "PySide2.QtMultimedia.QVideoFrame.isReadable": (),
- "PySide2.QtMultimedia.QVideoFrame.isValid": (),
- "PySide2.QtMultimedia.QVideoFrame.isWritable": (),
- "PySide2.QtMultimedia.QVideoFrame.map": ('PySide2.QtMultimedia.QAbstractVideoBuffer.MapMode',),
- "PySide2.QtMultimedia.QVideoFrame.mapMode": (),
- "PySide2.QtMultimedia.QVideoFrame.mappedBytes": (),
- "PySide2.QtMultimedia.QVideoFrame.metaData": ('str',),
- "PySide2.QtMultimedia.QVideoFrame.pixelFormat": (),
- "PySide2.QtMultimedia.QVideoFrame.pixelFormatFromImageFormat": ('PySide2.QtGui.QImage.Format',),
- "PySide2.QtMultimedia.QVideoFrame.planeCount": (),
- "PySide2.QtMultimedia.QVideoFrame.setEndTime": ('int',),
- "PySide2.QtMultimedia.QVideoFrame.setFieldType": ('PySide2.QtMultimedia.QVideoFrame.FieldType',),
- "PySide2.QtMultimedia.QVideoFrame.setMetaData": ('str', 'typing.Any'),
- "PySide2.QtMultimedia.QVideoFrame.setStartTime": ('int',),
- "PySide2.QtMultimedia.QVideoFrame.size": (),
- "PySide2.QtMultimedia.QVideoFrame.startTime": (),
- "PySide2.QtMultimedia.QVideoFrame.unmap": (),
- "PySide2.QtMultimedia.QVideoFrame.width": (),
-# class PySide2.QtMultimedia.QVideoProbe:
- "PySide2.QtMultimedia.QVideoProbe.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QVideoProbe.isActive": (),
- "PySide2.QtMultimedia.QVideoProbe.setSource": [('PySide2.QtMultimedia.QMediaObject',), ('PySide2.QtMultimedia.QMediaRecorder',)],
-# class PySide2.QtMultimedia.QVideoRendererControl:
- "PySide2.QtMultimedia.QVideoRendererControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QVideoRendererControl.setSurface": ('PySide2.QtMultimedia.QAbstractVideoSurface',),
- "PySide2.QtMultimedia.QVideoRendererControl.surface": (),
-# class PySide2.QtMultimedia.QVideoSurfaceFormat:
-# class PySide2.QtMultimedia.QVideoSurfaceFormat.Direction:
-# class PySide2.QtMultimedia.QVideoSurfaceFormat.YCbCrColorSpace:
- "PySide2.QtMultimedia.QVideoSurfaceFormat.__init__": [(), ('PySide2.QtCore.QSize', 'PySide2.QtMultimedia.QVideoFrame.PixelFormat', 'PySide2.QtMultimedia.QAbstractVideoBuffer.HandleType'), ('PySide2.QtMultimedia.QVideoSurfaceFormat',)],
- "PySide2.QtMultimedia.QVideoSurfaceFormat.__copy__": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.frameHeight": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.frameRate": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.frameSize": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.frameWidth": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.handleType": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.isMirrored": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.isValid": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.pixelAspectRatio": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.pixelFormat": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.property": ('str',),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.propertyNames": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.scanLineDirection": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.setFrameRate": ('float',),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.setFrameSize": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtMultimedia.QVideoSurfaceFormat.setMirrored": ('bool',),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.setPixelAspectRatio": [('PySide2.QtCore.QSize',), ('int', 'int')],
- "PySide2.QtMultimedia.QVideoSurfaceFormat.setProperty": ('str', 'typing.Any'),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.setScanLineDirection": ('PySide2.QtMultimedia.QVideoSurfaceFormat.Direction',),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.setViewport": ('PySide2.QtCore.QRect',),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.setYCbCrColorSpace": ('PySide2.QtMultimedia.QVideoSurfaceFormat.YCbCrColorSpace',),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.sizeHint": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.viewport": (),
- "PySide2.QtMultimedia.QVideoSurfaceFormat.yCbCrColorSpace": (),
-# class PySide2.QtMultimedia.QVideoWindowControl:
- "PySide2.QtMultimedia.QVideoWindowControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimedia.QVideoWindowControl.aspectRatioMode": (),
- "PySide2.QtMultimedia.QVideoWindowControl.brightness": (),
- "PySide2.QtMultimedia.QVideoWindowControl.contrast": (),
- "PySide2.QtMultimedia.QVideoWindowControl.displayRect": (),
- "PySide2.QtMultimedia.QVideoWindowControl.hue": (),
- "PySide2.QtMultimedia.QVideoWindowControl.isFullScreen": (),
- "PySide2.QtMultimedia.QVideoWindowControl.nativeSize": (),
- "PySide2.QtMultimedia.QVideoWindowControl.repaint": (),
- "PySide2.QtMultimedia.QVideoWindowControl.saturation": (),
- "PySide2.QtMultimedia.QVideoWindowControl.setAspectRatioMode": ('PySide2.QtCore.Qt.AspectRatioMode',),
- "PySide2.QtMultimedia.QVideoWindowControl.setBrightness": ('int',),
- "PySide2.QtMultimedia.QVideoWindowControl.setContrast": ('int',),
- "PySide2.QtMultimedia.QVideoWindowControl.setDisplayRect": ('PySide2.QtCore.QRect',),
- "PySide2.QtMultimedia.QVideoWindowControl.setFullScreen": ('bool',),
- "PySide2.QtMultimedia.QVideoWindowControl.setHue": ('int',),
- "PySide2.QtMultimedia.QVideoWindowControl.setSaturation": ('int',),
- "PySide2.QtMultimedia.QVideoWindowControl.setWinId": ('int',),
- "PySide2.QtMultimedia.QVideoWindowControl.winId": (),
- }) if "PySide2.QtMultimedia" in sys.modules else None
-# Module PySide2.QtMultimediaWidgets
-sig_dict.update({
-# class PySide2.QtMultimediaWidgets.QCameraViewfinder:
- "PySide2.QtMultimediaWidgets.QCameraViewfinder.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtMultimediaWidgets.QCameraViewfinder.mediaObject": (),
- "PySide2.QtMultimediaWidgets.QCameraViewfinder.setMediaObject": ('PySide2.QtMultimedia.QMediaObject',),
-# class PySide2.QtMultimediaWidgets.QGraphicsVideoItem:
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.__init__": ('PySide2.QtWidgets.QGraphicsItem',),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.aspectRatioMode": (),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.boundingRect": (),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.itemChange": ('PySide2.QtWidgets.QGraphicsItem.GraphicsItemChange', 'typing.Any'),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.mediaObject": (),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.nativeSize": (),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.offset": (),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.setAspectRatioMode": ('PySide2.QtCore.Qt.AspectRatioMode',),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.setMediaObject": ('PySide2.QtMultimedia.QMediaObject',),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.setOffset": ('PySide2.QtCore.QPointF',),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.setSize": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.size": (),
- "PySide2.QtMultimediaWidgets.QGraphicsVideoItem.timerEvent": ('PySide2.QtCore.QTimerEvent',),
-# class PySide2.QtMultimediaWidgets.QVideoWidget:
- "PySide2.QtMultimediaWidgets.QVideoWidget.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.aspectRatioMode": (),
- "PySide2.QtMultimediaWidgets.QVideoWidget.brightness": (),
- "PySide2.QtMultimediaWidgets.QVideoWidget.contrast": (),
- "PySide2.QtMultimediaWidgets.QVideoWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.hue": (),
- "PySide2.QtMultimediaWidgets.QVideoWidget.mediaObject": (),
- "PySide2.QtMultimediaWidgets.QVideoWidget.moveEvent": ('PySide2.QtGui.QMoveEvent',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.saturation": (),
- "PySide2.QtMultimediaWidgets.QVideoWidget.setAspectRatioMode": ('PySide2.QtCore.Qt.AspectRatioMode',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.setBrightness": ('int',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.setContrast": ('int',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.setFullScreen": ('bool',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.setHue": ('int',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.setMediaObject": ('PySide2.QtMultimedia.QMediaObject',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.setSaturation": ('int',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtMultimediaWidgets.QVideoWidget.sizeHint": (),
-# class PySide2.QtMultimediaWidgets.QVideoWidgetControl:
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.aspectRatioMode": (),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.brightness": (),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.contrast": (),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.hue": (),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.isFullScreen": (),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.saturation": (),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.setAspectRatioMode": ('PySide2.QtCore.Qt.AspectRatioMode',),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.setBrightness": ('int',),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.setContrast": ('int',),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.setFullScreen": ('bool',),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.setHue": ('int',),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.setSaturation": ('int',),
- "PySide2.QtMultimediaWidgets.QVideoWidgetControl.videoWidget": (),
- }) if "PySide2.QtMultimediaWidgets" in sys.modules else None
-# Module PySide2.QtOpenGL
-sig_dict.update({
-# class PySide2.QtOpenGL.QGL:
-# class PySide2.QtOpenGL.QGL.FormatOption:
-# class PySide2.QtOpenGL.QGL.FormatOptions:
-# class PySide2.QtOpenGL.QGLBuffer:
-# class PySide2.QtOpenGL.QGLBuffer.Access:
-# class PySide2.QtOpenGL.QGLBuffer.Type:
-# class PySide2.QtOpenGL.QGLBuffer.UsagePattern:
- "PySide2.QtOpenGL.QGLBuffer.__init__": [(), ('PySide2.QtOpenGL.QGLBuffer',), ('PySide2.QtOpenGL.QGLBuffer.Type',)],
- "PySide2.QtOpenGL.QGLBuffer.allocate": [('int',), ('int', 'int')],
- "PySide2.QtOpenGL.QGLBuffer.bind": (),
- "PySide2.QtOpenGL.QGLBuffer.bufferId": (),
- "PySide2.QtOpenGL.QGLBuffer.create": (),
- "PySide2.QtOpenGL.QGLBuffer.destroy": (),
- "PySide2.QtOpenGL.QGLBuffer.isCreated": (),
- "PySide2.QtOpenGL.QGLBuffer.map": ('PySide2.QtOpenGL.QGLBuffer.Access',),
- "PySide2.QtOpenGL.QGLBuffer.read": ('int', 'int', 'int'),
- "PySide2.QtOpenGL.QGLBuffer.release": [(), ('PySide2.QtOpenGL.QGLBuffer.Type',)],
- "PySide2.QtOpenGL.QGLBuffer.setUsagePattern": ('PySide2.QtOpenGL.QGLBuffer.UsagePattern',),
- "PySide2.QtOpenGL.QGLBuffer.size": (),
- "PySide2.QtOpenGL.QGLBuffer.type": (),
- "PySide2.QtOpenGL.QGLBuffer.unmap": (),
- "PySide2.QtOpenGL.QGLBuffer.usagePattern": (),
- "PySide2.QtOpenGL.QGLBuffer.write": ('int', 'int', 'int'),
-# class PySide2.QtOpenGL.QGLColormap:
- "PySide2.QtOpenGL.QGLColormap.__init__": [(), ('PySide2.QtOpenGL.QGLColormap',)],
- "PySide2.QtOpenGL.QGLColormap.__copy__": (),
- "PySide2.QtOpenGL.QGLColormap.entryColor": ('int',),
- "PySide2.QtOpenGL.QGLColormap.entryRgb": ('int',),
- "PySide2.QtOpenGL.QGLColormap.find": ('int',),
- "PySide2.QtOpenGL.QGLColormap.findNearest": ('int',),
- "PySide2.QtOpenGL.QGLColormap.handle": (),
- "PySide2.QtOpenGL.QGLColormap.isEmpty": (),
- "PySide2.QtOpenGL.QGLColormap.setEntry": [('int', 'PySide2.QtGui.QColor'), ('int', 'int')],
- "PySide2.QtOpenGL.QGLColormap.setHandle": ('int',),
- "PySide2.QtOpenGL.QGLColormap.size": (),
-# class PySide2.QtOpenGL.QGLContext:
-# class PySide2.QtOpenGL.QGLContext.BindOption:
-# class PySide2.QtOpenGL.QGLContext.BindOptions:
- "PySide2.QtOpenGL.QGLContext.__init__": ('PySide2.QtOpenGL.QGLFormat',),
- "PySide2.QtOpenGL.QGLContext.areSharing": ('PySide2.QtOpenGL.QGLContext', 'PySide2.QtOpenGL.QGLContext'),
- "PySide2.QtOpenGL.QGLContext.bindTexture": [('PySide2.QtGui.QImage', 'int', 'int'), ('PySide2.QtGui.QImage', 'int', 'int', 'PySide2.QtOpenGL.QGLContext.BindOptions'), ('PySide2.QtGui.QPixmap', 'int', 'int'), ('PySide2.QtGui.QPixmap', 'int', 'int', 'PySide2.QtOpenGL.QGLContext.BindOptions'), ('str',)],
- "PySide2.QtOpenGL.QGLContext.chooseContext": ('PySide2.QtOpenGL.QGLContext',),
- "PySide2.QtOpenGL.QGLContext.colorIndex": ('PySide2.QtGui.QColor',),
- "PySide2.QtOpenGL.QGLContext.contextHandle": (),
- "PySide2.QtOpenGL.QGLContext.create": ('PySide2.QtOpenGL.QGLContext',),
- "PySide2.QtOpenGL.QGLContext.currentContext": (),
- "PySide2.QtOpenGL.QGLContext.deleteTexture": ('int',),
- "PySide2.QtOpenGL.QGLContext.device": (),
- "PySide2.QtOpenGL.QGLContext.deviceIsPixmap": (),
- "PySide2.QtOpenGL.QGLContext.doneCurrent": (),
- "PySide2.QtOpenGL.QGLContext.drawTexture": [('PySide2.QtCore.QPointF', 'int', 'int'), ('PySide2.QtCore.QRectF', 'int', 'int')],
- "PySide2.QtOpenGL.QGLContext.format": (),
- "PySide2.QtOpenGL.QGLContext.fromOpenGLContext": ('PySide2.QtGui.QOpenGLContext',),
- "PySide2.QtOpenGL.QGLContext.initialized": (),
- "PySide2.QtOpenGL.QGLContext.isSharing": (),
- "PySide2.QtOpenGL.QGLContext.isValid": (),
- "PySide2.QtOpenGL.QGLContext.makeCurrent": (),
- "PySide2.QtOpenGL.QGLContext.moveToThread": ('PySide2.QtCore.QThread',),
- "PySide2.QtOpenGL.QGLContext.overlayTransparentColor": (),
- "PySide2.QtOpenGL.QGLContext.requestedFormat": (),
- "PySide2.QtOpenGL.QGLContext.reset": (),
- "PySide2.QtOpenGL.QGLContext.setDevice": ('PySide2.QtGui.QPaintDevice',),
- "PySide2.QtOpenGL.QGLContext.setFormat": ('PySide2.QtOpenGL.QGLFormat',),
- "PySide2.QtOpenGL.QGLContext.setInitialized": ('bool',),
- "PySide2.QtOpenGL.QGLContext.setTextureCacheLimit": ('int',),
- "PySide2.QtOpenGL.QGLContext.setValid": ('bool',),
- "PySide2.QtOpenGL.QGLContext.setWindowCreated": ('bool',),
- "PySide2.QtOpenGL.QGLContext.swapBuffers": (),
- "PySide2.QtOpenGL.QGLContext.textureCacheLimit": (),
- "PySide2.QtOpenGL.QGLContext.windowCreated": (),
-# class PySide2.QtOpenGL.QGLFormat:
-# class PySide2.QtOpenGL.QGLFormat.OpenGLContextProfile:
-# class PySide2.QtOpenGL.QGLFormat.OpenGLVersionFlag:
-# class PySide2.QtOpenGL.QGLFormat.OpenGLVersionFlags:
- "PySide2.QtOpenGL.QGLFormat.__init__": [(), ('PySide2.QtOpenGL.QGL.FormatOptions', 'int'), ('PySide2.QtOpenGL.QGLFormat',)],
- "PySide2.QtOpenGL.QGLFormat.__copy__": (),
- "PySide2.QtOpenGL.QGLFormat.accum": (),
- "PySide2.QtOpenGL.QGLFormat.accumBufferSize": (),
- "PySide2.QtOpenGL.QGLFormat.alpha": (),
- "PySide2.QtOpenGL.QGLFormat.alphaBufferSize": (),
- "PySide2.QtOpenGL.QGLFormat.blueBufferSize": (),
- "PySide2.QtOpenGL.QGLFormat.defaultFormat": (),
- "PySide2.QtOpenGL.QGLFormat.defaultOverlayFormat": (),
- "PySide2.QtOpenGL.QGLFormat.depth": (),
- "PySide2.QtOpenGL.QGLFormat.depthBufferSize": (),
- "PySide2.QtOpenGL.QGLFormat.directRendering": (),
- "PySide2.QtOpenGL.QGLFormat.doubleBuffer": (),
- "PySide2.QtOpenGL.QGLFormat.fromSurfaceFormat": ('PySide2.QtGui.QSurfaceFormat',),
- "PySide2.QtOpenGL.QGLFormat.greenBufferSize": (),
- "PySide2.QtOpenGL.QGLFormat.hasOpenGL": (),
- "PySide2.QtOpenGL.QGLFormat.hasOpenGLOverlays": (),
- "PySide2.QtOpenGL.QGLFormat.hasOverlay": (),
- "PySide2.QtOpenGL.QGLFormat.majorVersion": (),
- "PySide2.QtOpenGL.QGLFormat.minorVersion": (),
- "PySide2.QtOpenGL.QGLFormat.openGLVersionFlags": (),
- "PySide2.QtOpenGL.QGLFormat.plane": (),
- "PySide2.QtOpenGL.QGLFormat.profile": (),
- "PySide2.QtOpenGL.QGLFormat.redBufferSize": (),
- "PySide2.QtOpenGL.QGLFormat.rgba": (),
- "PySide2.QtOpenGL.QGLFormat.sampleBuffers": (),
- "PySide2.QtOpenGL.QGLFormat.samples": (),
- "PySide2.QtOpenGL.QGLFormat.setAccum": ('bool',),
- "PySide2.QtOpenGL.QGLFormat.setAccumBufferSize": ('int',),
- "PySide2.QtOpenGL.QGLFormat.setAlpha": ('bool',),
- "PySide2.QtOpenGL.QGLFormat.setAlphaBufferSize": ('int',),
- "PySide2.QtOpenGL.QGLFormat.setBlueBufferSize": ('int',),
- "PySide2.QtOpenGL.QGLFormat.setDefaultFormat": ('PySide2.QtOpenGL.QGLFormat',),
- "PySide2.QtOpenGL.QGLFormat.setDefaultOverlayFormat": ('PySide2.QtOpenGL.QGLFormat',),
- "PySide2.QtOpenGL.QGLFormat.setDepth": ('bool',),
- "PySide2.QtOpenGL.QGLFormat.setDepthBufferSize": ('int',),
- "PySide2.QtOpenGL.QGLFormat.setDirectRendering": ('bool',),
- "PySide2.QtOpenGL.QGLFormat.setDoubleBuffer": ('bool',),
- "PySide2.QtOpenGL.QGLFormat.setGreenBufferSize": ('int',),
- "PySide2.QtOpenGL.QGLFormat.setOption": ('PySide2.QtOpenGL.QGL.FormatOptions',),
- "PySide2.QtOpenGL.QGLFormat.setOverlay": ('bool',),
- "PySide2.QtOpenGL.QGLFormat.setPlane": ('int',),
- "PySide2.QtOpenGL.QGLFormat.setProfile": ('PySide2.QtOpenGL.QGLFormat.OpenGLContextProfile',),
- "PySide2.QtOpenGL.QGLFormat.setRedBufferSize": ('int',),
- "PySide2.QtOpenGL.QGLFormat.setRgba": ('bool',),
- "PySide2.QtOpenGL.QGLFormat.setSampleBuffers": ('bool',),
- "PySide2.QtOpenGL.QGLFormat.setSamples": ('int',),
- "PySide2.QtOpenGL.QGLFormat.setStencil": ('bool',),
- "PySide2.QtOpenGL.QGLFormat.setStencilBufferSize": ('int',),
- "PySide2.QtOpenGL.QGLFormat.setStereo": ('bool',),
- "PySide2.QtOpenGL.QGLFormat.setSwapInterval": ('int',),
- "PySide2.QtOpenGL.QGLFormat.setVersion": ('int', 'int'),
- "PySide2.QtOpenGL.QGLFormat.stencil": (),
- "PySide2.QtOpenGL.QGLFormat.stencilBufferSize": (),
- "PySide2.QtOpenGL.QGLFormat.stereo": (),
- "PySide2.QtOpenGL.QGLFormat.swapInterval": (),
- "PySide2.QtOpenGL.QGLFormat.testOption": ('PySide2.QtOpenGL.QGL.FormatOptions',),
- "PySide2.QtOpenGL.QGLFormat.toSurfaceFormat": ('PySide2.QtOpenGL.QGLFormat',),
-# class PySide2.QtOpenGL.QGLFramebufferObject:
-# class PySide2.QtOpenGL.QGLFramebufferObject.Attachment:
- "PySide2.QtOpenGL.QGLFramebufferObject.__init__": [('PySide2.QtCore.QSize', 'PySide2.QtOpenGL.QGLFramebufferObject.Attachment', 'int', 'int'), ('PySide2.QtCore.QSize', 'PySide2.QtOpenGL.QGLFramebufferObjectFormat'), ('PySide2.QtCore.QSize', 'int'), ('int', 'int', 'PySide2.QtOpenGL.QGLFramebufferObject.Attachment', 'int', 'int'), ('int', 'int', 'PySide2.QtOpenGL.QGLFramebufferObjectFormat'), ('int', 'int', 'int')],
- "PySide2.QtOpenGL.QGLFramebufferObject.attachment": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.bind": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.bindDefault": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.blitFramebuffer": ('PySide2.QtOpenGL.QGLFramebufferObject', 'PySide2.QtCore.QRect', 'PySide2.QtOpenGL.QGLFramebufferObject', 'PySide2.QtCore.QRect', 'int', 'int'),
- "PySide2.QtOpenGL.QGLFramebufferObject.devType": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.drawTexture": [('PySide2.QtCore.QPointF', 'int', 'int'), ('PySide2.QtCore.QRectF', 'int', 'int')],
- "PySide2.QtOpenGL.QGLFramebufferObject.format": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.handle": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.hasOpenGLFramebufferBlit": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.hasOpenGLFramebufferObjects": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.isBound": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.isValid": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtOpenGL.QGLFramebufferObject.paintEngine": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.release": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.size": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.texture": (),
- "PySide2.QtOpenGL.QGLFramebufferObject.toImage": (),
-# class PySide2.QtOpenGL.QGLFramebufferObjectFormat:
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.__init__": [(), ('PySide2.QtOpenGL.QGLFramebufferObjectFormat',)],
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.__copy__": (),
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.attachment": (),
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.internalTextureFormat": (),
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.mipmap": (),
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.samples": (),
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.setAttachment": ('PySide2.QtOpenGL.QGLFramebufferObject.Attachment',),
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.setInternalTextureFormat": ('int',),
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.setMipmap": ('bool',),
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.setSamples": ('int',),
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.setTextureTarget": ('int',),
- "PySide2.QtOpenGL.QGLFramebufferObjectFormat.textureTarget": (),
-# class PySide2.QtOpenGL.QGLPixelBuffer:
- "PySide2.QtOpenGL.QGLPixelBuffer.__init__": [('PySide2.QtCore.QSize', 'PySide2.QtOpenGL.QGLFormat', 'PySide2.QtOpenGL.QGLWidget'), ('int', 'int', 'PySide2.QtOpenGL.QGLFormat', 'PySide2.QtOpenGL.QGLWidget')],
- "PySide2.QtOpenGL.QGLPixelBuffer.bindTexture": [('PySide2.QtGui.QImage', 'int'), ('PySide2.QtGui.QPixmap', 'int'), ('str',)],
- "PySide2.QtOpenGL.QGLPixelBuffer.bindToDynamicTexture": ('int',),
- "PySide2.QtOpenGL.QGLPixelBuffer.context": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.deleteTexture": ('int',),
- "PySide2.QtOpenGL.QGLPixelBuffer.devType": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.doneCurrent": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.drawTexture": [('PySide2.QtCore.QPointF', 'int', 'int'), ('PySide2.QtCore.QRectF', 'int', 'int')],
- "PySide2.QtOpenGL.QGLPixelBuffer.format": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.generateDynamicTexture": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.handle": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.hasOpenGLPbuffers": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.isValid": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.makeCurrent": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtOpenGL.QGLPixelBuffer.paintEngine": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.releaseFromDynamicTexture": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.size": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.toImage": (),
- "PySide2.QtOpenGL.QGLPixelBuffer.updateDynamicTexture": ('int',),
-# class PySide2.QtOpenGL.QGLShader:
-# class PySide2.QtOpenGL.QGLShader.ShaderType:
-# class PySide2.QtOpenGL.QGLShader.ShaderTypeBit:
- "PySide2.QtOpenGL.QGLShader.__init__": [('PySide2.QtOpenGL.QGLShader.ShaderType', 'PySide2.QtCore.QObject'), ('PySide2.QtOpenGL.QGLShader.ShaderType', 'PySide2.QtOpenGL.QGLContext', 'PySide2.QtCore.QObject')],
- "PySide2.QtOpenGL.QGLShader.compileSourceCode": [('PySide2.QtCore.QByteArray',), ('str',)],
- "PySide2.QtOpenGL.QGLShader.compileSourceFile": ('str',),
- "PySide2.QtOpenGL.QGLShader.hasOpenGLShaders": ('PySide2.QtOpenGL.QGLShader.ShaderType', 'PySide2.QtOpenGL.QGLContext'),
- "PySide2.QtOpenGL.QGLShader.isCompiled": (),
- "PySide2.QtOpenGL.QGLShader.log": (),
- "PySide2.QtOpenGL.QGLShader.shaderId": (),
- "PySide2.QtOpenGL.QGLShader.shaderType": (),
- "PySide2.QtOpenGL.QGLShader.sourceCode": (),
-# class PySide2.QtOpenGL.QGLShaderProgram:
- "PySide2.QtOpenGL.QGLShaderProgram.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtOpenGL.QGLContext', 'PySide2.QtCore.QObject')],
- "PySide2.QtOpenGL.QGLShaderProgram.addShader": ('PySide2.QtOpenGL.QGLShader',),
- "PySide2.QtOpenGL.QGLShaderProgram.addShaderFromSourceCode": [('PySide2.QtOpenGL.QGLShader.ShaderType', 'PySide2.QtCore.QByteArray'), ('PySide2.QtOpenGL.QGLShader.ShaderType', 'str')],
- "PySide2.QtOpenGL.QGLShaderProgram.addShaderFromSourceFile": ('PySide2.QtOpenGL.QGLShader.ShaderType', 'str'),
- "PySide2.QtOpenGL.QGLShaderProgram.attributeLocation": [('PySide2.QtCore.QByteArray',), ('str',)],
- "PySide2.QtOpenGL.QGLShaderProgram.bind": (),
- "PySide2.QtOpenGL.QGLShaderProgram.bindAttributeLocation": [('PySide2.QtCore.QByteArray', 'int'), ('str', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.disableAttributeArray": [('int',), ('str',)],
- "PySide2.QtOpenGL.QGLShaderProgram.enableAttributeArray": [('int',), ('str',)],
- "PySide2.QtOpenGL.QGLShaderProgram.geometryInputType": (),
- "PySide2.QtOpenGL.QGLShaderProgram.geometryOutputType": (),
- "PySide2.QtOpenGL.QGLShaderProgram.geometryOutputVertexCount": (),
- "PySide2.QtOpenGL.QGLShaderProgram.hasOpenGLShaderPrograms": ('PySide2.QtOpenGL.QGLContext',),
- "PySide2.QtOpenGL.QGLShaderProgram.isLinked": (),
- "PySide2.QtOpenGL.QGLShaderProgram.link": (),
- "PySide2.QtOpenGL.QGLShaderProgram.log": (),
- "PySide2.QtOpenGL.QGLShaderProgram.maxGeometryOutputVertices": (),
- "PySide2.QtOpenGL.QGLShaderProgram.programId": (),
- "PySide2.QtOpenGL.QGLShaderProgram.release": (),
- "PySide2.QtOpenGL.QGLShaderProgram.removeAllShaders": (),
- "PySide2.QtOpenGL.QGLShaderProgram.removeShader": ('PySide2.QtOpenGL.QGLShader',),
- "PySide2.QtOpenGL.QGLShaderProgram.setAttributeArray2D": [('int', 'PySide2.QtGui.QVector2D', 'int'), ('str', 'PySide2.QtGui.QVector2D', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setAttributeArray3D": [('int', 'PySide2.QtGui.QVector3D', 'int'), ('str', 'PySide2.QtGui.QVector3D', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setAttributeArray4D": [('int', 'PySide2.QtGui.QVector4D', 'int'), ('str', 'PySide2.QtGui.QVector4D', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setAttributeBuffer": [('int', 'int', 'int', 'int', 'int'), ('str', 'int', 'int', 'int', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setAttributeValue": [('int', 'PySide2.QtGui.QColor'), ('int', 'PySide2.QtGui.QVector2D'), ('int', 'PySide2.QtGui.QVector3D'), ('int', 'PySide2.QtGui.QVector4D'), ('int', 'float'), ('int', 'float', 'float'), ('int', 'float', 'float', 'float'), ('int', 'float', 'float', 'float', 'float'), ('str', 'PySide2.QtGui.QColor'), ('str', 'PySide2.QtGui.QVector2D'), ('str', 'PySide2.QtGui.QVector3D'), ('str', 'PySide2.QtGui.QVector4D'), ('str', 'float'), ('str', 'float', 'float'), ('str', 'float', 'float', 'float'), ('str', 'float', 'float', 'float', 'float')],
- "PySide2.QtOpenGL.QGLShaderProgram.setGeometryInputType": ('int',),
- "PySide2.QtOpenGL.QGLShaderProgram.setGeometryOutputType": ('int',),
- "PySide2.QtOpenGL.QGLShaderProgram.setGeometryOutputVertexCount": ('int',),
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValue": [('int', 'PySide2.QtCore.QPoint'), ('int', 'PySide2.QtCore.QPointF'), ('int', 'PySide2.QtCore.QSize'), ('int', 'PySide2.QtCore.QSizeF'), ('int', 'PySide2.QtGui.QColor'), ('int', 'PySide2.QtGui.QMatrix2x2'), ('int', 'PySide2.QtGui.QMatrix2x3'), ('int', 'PySide2.QtGui.QMatrix2x4'), ('int', 'PySide2.QtGui.QMatrix3x2'), ('int', 'PySide2.QtGui.QMatrix3x3'), ('int', 'PySide2.QtGui.QMatrix3x4'), ('int', 'PySide2.QtGui.QMatrix4x2'), ('int', 'PySide2.QtGui.QMatrix4x3'), ('int', 'PySide2.QtGui.QMatrix4x4'), ('int', 'PySide2.QtGui.QTransform'), ('int', 'PySide2.QtGui.QVector2D'), ('int', 'PySide2.QtGui.QVector3D'), ('int', 'PySide2.QtGui.QVector4D'), ('int', 'float'), ('int', 'float', 'float'), ('int', 'float', 'float', 'float'), ('int', 'float', 'float', 'float', 'float'), ('int', 'int'), ('str', 'PySide2.QtCore.QPoint'), ('str', 'PySide2.QtCore.QPointF'), ('str', 'PySide2.QtCore.QSize'), ('str', 'PySide2.QtCore.QSizeF'), ('str', 'PySide2.QtGui.QColor'), ('str', 'PySide2.QtGui.QMatrix2x2'), ('str', 'PySide2.QtGui.QMatrix2x3'), ('str', 'PySide2.QtGui.QMatrix2x4'), ('str', 'PySide2.QtGui.QMatrix3x2'), ('str', 'PySide2.QtGui.QMatrix3x3'), ('str', 'PySide2.QtGui.QMatrix3x4'), ('str', 'PySide2.QtGui.QMatrix4x2'), ('str', 'PySide2.QtGui.QMatrix4x3'), ('str', 'PySide2.QtGui.QMatrix4x4'), ('str', 'PySide2.QtGui.QTransform'), ('str', 'PySide2.QtGui.QVector2D'), ('str', 'PySide2.QtGui.QVector3D'), ('str', 'PySide2.QtGui.QVector4D'), ('str', 'float'), ('str', 'float', 'float'), ('str', 'float', 'float', 'float'), ('str', 'float', 'float', 'float', 'float'), ('str', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray2D": [('int', 'PySide2.QtGui.QVector2D', 'int'), ('str', 'PySide2.QtGui.QVector2D', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray2x2": [('int', 'PySide2.QtGui.QMatrix2x2', 'int'), ('str', 'PySide2.QtGui.QMatrix2x2', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray2x3": [('int', 'PySide2.QtGui.QMatrix2x3', 'int'), ('str', 'PySide2.QtGui.QMatrix2x3', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray2x4": [('int', 'PySide2.QtGui.QMatrix2x4', 'int'), ('str', 'PySide2.QtGui.QMatrix2x4', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray3D": [('int', 'PySide2.QtGui.QVector3D', 'int'), ('str', 'PySide2.QtGui.QVector3D', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray3x2": [('int', 'PySide2.QtGui.QMatrix3x2', 'int'), ('str', 'PySide2.QtGui.QMatrix3x2', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray3x3": [('int', 'PySide2.QtGui.QMatrix3x3', 'int'), ('str', 'PySide2.QtGui.QMatrix3x3', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray3x4": [('int', 'PySide2.QtGui.QMatrix3x4', 'int'), ('str', 'PySide2.QtGui.QMatrix3x4', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray4D": [('int', 'PySide2.QtGui.QVector4D', 'int'), ('str', 'PySide2.QtGui.QVector4D', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray4x2": [('int', 'PySide2.QtGui.QMatrix4x2', 'int'), ('str', 'PySide2.QtGui.QMatrix4x2', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray4x3": [('int', 'PySide2.QtGui.QMatrix4x3', 'int'), ('str', 'PySide2.QtGui.QMatrix4x3', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArray4x4": [('int', 'PySide2.QtGui.QMatrix4x4', 'int'), ('str', 'PySide2.QtGui.QMatrix4x4', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArrayInt": [('int', 'typing.Sequence[int]', 'int'), ('str', 'typing.Sequence[int]', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.setUniformValueArrayUint": [('int', 'typing.Sequence[int]', 'int'), ('str', 'typing.Sequence[int]', 'int')],
- "PySide2.QtOpenGL.QGLShaderProgram.shaders": (),
- "PySide2.QtOpenGL.QGLShaderProgram.uniformLocation": [('PySide2.QtCore.QByteArray',), ('str',)],
-# class PySide2.QtOpenGL.QGLWidget:
- "PySide2.QtOpenGL.QGLWidget.__init__": [('PySide2.QtOpenGL.QGLContext', 'PySide2.QtWidgets.QWidget', 'PySide2.QtOpenGL.QGLWidget', 'PySide2.QtCore.Qt.WindowFlags'), ('PySide2.QtOpenGL.QGLFormat', 'PySide2.QtWidgets.QWidget', 'PySide2.QtOpenGL.QGLWidget', 'PySide2.QtCore.Qt.WindowFlags'), ('PySide2.QtWidgets.QWidget', 'PySide2.QtOpenGL.QGLWidget', 'PySide2.QtCore.Qt.WindowFlags')],
- "PySide2.QtOpenGL.QGLWidget.autoBufferSwap": (),
- "PySide2.QtOpenGL.QGLWidget.bindTexture": [('PySide2.QtGui.QImage', 'int', 'int'), ('PySide2.QtGui.QImage', 'int', 'int', 'PySide2.QtOpenGL.QGLContext.BindOptions'), ('PySide2.QtGui.QPixmap', 'int', 'int'), ('PySide2.QtGui.QPixmap', 'int', 'int', 'PySide2.QtOpenGL.QGLContext.BindOptions'), ('str',)],
- "PySide2.QtOpenGL.QGLWidget.colormap": (),
- "PySide2.QtOpenGL.QGLWidget.context": (),
- "PySide2.QtOpenGL.QGLWidget.convertToGLFormat": ('PySide2.QtGui.QImage',),
- "PySide2.QtOpenGL.QGLWidget.deleteTexture": ('int',),
- "PySide2.QtOpenGL.QGLWidget.doneCurrent": (),
- "PySide2.QtOpenGL.QGLWidget.doubleBuffer": (),
- "PySide2.QtOpenGL.QGLWidget.drawTexture": [('PySide2.QtCore.QPointF', 'int', 'int'), ('PySide2.QtCore.QRectF', 'int', 'int')],
- "PySide2.QtOpenGL.QGLWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtOpenGL.QGLWidget.format": (),
- "PySide2.QtOpenGL.QGLWidget.glDraw": (),
- "PySide2.QtOpenGL.QGLWidget.glInit": (),
- "PySide2.QtOpenGL.QGLWidget.grabFrameBuffer": ('bool',),
- "PySide2.QtOpenGL.QGLWidget.initializeGL": (),
- "PySide2.QtOpenGL.QGLWidget.initializeOverlayGL": (),
- "PySide2.QtOpenGL.QGLWidget.isSharing": (),
- "PySide2.QtOpenGL.QGLWidget.isValid": (),
- "PySide2.QtOpenGL.QGLWidget.makeCurrent": (),
- "PySide2.QtOpenGL.QGLWidget.makeOverlayCurrent": (),
- "PySide2.QtOpenGL.QGLWidget.overlayContext": (),
- "PySide2.QtOpenGL.QGLWidget.paintEngine": (),
- "PySide2.QtOpenGL.QGLWidget.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtOpenGL.QGLWidget.paintGL": (),
- "PySide2.QtOpenGL.QGLWidget.paintOverlayGL": (),
- "PySide2.QtOpenGL.QGLWidget.qglClearColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtOpenGL.QGLWidget.qglColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtOpenGL.QGLWidget.renderPixmap": ('int', 'int', 'bool'),
- "PySide2.QtOpenGL.QGLWidget.renderText": [('float', 'float', 'float', 'str', 'PySide2.QtGui.QFont'), ('int', 'int', 'str', 'PySide2.QtGui.QFont')],
- "PySide2.QtOpenGL.QGLWidget.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtOpenGL.QGLWidget.resizeGL": ('int', 'int'),
- "PySide2.QtOpenGL.QGLWidget.resizeOverlayGL": ('int', 'int'),
- "PySide2.QtOpenGL.QGLWidget.setAutoBufferSwap": ('bool',),
- "PySide2.QtOpenGL.QGLWidget.setColormap": ('PySide2.QtOpenGL.QGLColormap',),
- "PySide2.QtOpenGL.QGLWidget.swapBuffers": (),
- "PySide2.QtOpenGL.QGLWidget.updateGL": (),
- "PySide2.QtOpenGL.QGLWidget.updateOverlayGL": (),
- }) if "PySide2.QtOpenGL" in sys.modules else None
-# Module PySide2.QtOpenGLFunctions
-sig_dict.update({
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_0.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_1.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_2.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_3.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFogCoorddv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFogCoordfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.glWindowPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_4.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFogCoorddv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFogCoordfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.glWindowPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_1_5.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFogCoorddv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFogCoordfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4Nbv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4Niv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4Nsv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4Nubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4Nuiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4Nusv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttrib4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.glWindowPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_0.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFogCoorddv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFogCoordfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4Nbv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4Niv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4Nsv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4Nubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4Nuiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4Nusv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttrib4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.glWindowPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_2_1.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFogCoorddv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFogCoordfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4Nbv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4Niv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4Nsv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4Nubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4Nuiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4Nusv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttrib4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribI4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.glWindowPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_0.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_1.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFogCoorddv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFogCoordfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4Nbv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4Niv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4Nsv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4Nubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4Nuiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4Nusv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttrib4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribI4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.glWindowPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Compatibility.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_2_Core.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFogCoorddv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFogCoordfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormalP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoordP1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoordP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoordP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoordP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4Nbv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4Niv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4Nsv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4Nubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4Nuiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4Nusv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttrib4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribI4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.glWindowPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Compatibility.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glColorP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glNormalP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glSecondaryColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexCoordP1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexCoordP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexCoordP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexCoordP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glVertexP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_3_3_Core.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteTransformFeedbacks": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFogCoorddv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFogCoordfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGetSubroutineIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGetSubroutineUniformLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormalP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPatchParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoordP1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoordP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoordP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoordP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform1dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform2dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform3dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform4dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4Nbv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4Niv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4Nsv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4Nubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4Nuiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4Nusv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttrib4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribI4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.glWindowPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Compatibility.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glColorP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDeleteTransformFeedbacks": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGetSubroutineIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGetSubroutineUniformLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glNormalP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPatchParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glSecondaryColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexCoordP1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexCoordP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexCoordP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexCoordP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform1dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform2dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform3dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform4dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glVertexP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_0_Core.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClearDepthf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteProgramPipelines": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteTransformFeedbacks": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDepthRangeArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDepthRangeIndexed": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDepthRangef": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFogCoorddv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFogCoordfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGetSubroutineIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGetSubroutineUniformLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormalP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPatchParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform1d": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform1dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform2d": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform3d": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform4d": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix2x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix2x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix3x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix3x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix4x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix4x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glReleaseShaderCompiler": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glScissorArrayv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glScissorIndexed": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glScissorIndexedv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glShaderBinary": ('int', 'typing.Sequence[int]', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoordP1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoordP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoordP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoordP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform1dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform2dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform3dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform4dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glValidateProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4Nbv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4Niv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4Nsv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4Nubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4Nuiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4Nusv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttrib4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribI4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribL1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribL1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribL2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribL2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribL3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribL3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribL4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribL4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribLPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glViewportArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glViewportIndexedf": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glViewportIndexedfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.glWindowPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Compatibility.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glClearDepthf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glColorP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteProgramPipelines": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteTransformFeedbacks": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDepthRangeArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDepthRangeIndexed": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDepthRangef": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGetSubroutineIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGetSubroutineUniformLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glNormalP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPatchParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform1d": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform1dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform2d": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform3d": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform4d": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix2x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix2x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix3x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix3x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix4x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix4x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glReleaseShaderCompiler": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glScissorArrayv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glScissorIndexed": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glScissorIndexedv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glSecondaryColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glShaderBinary": ('int', 'typing.Sequence[int]', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexCoordP1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexCoordP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexCoordP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexCoordP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform1dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform2dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform3dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform4dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glValidateProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribL1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribL1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribL2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribL2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribL3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribL3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribL4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribL4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribLPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glVertexP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glViewportArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glViewportIndexedf": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.glViewportIndexedfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_1_Core.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindImageTexture": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClearDepthf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteProgramPipelines": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteTransformFeedbacks": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDepthRangeArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDepthRangeIndexed": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDepthRangef": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawArraysInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawElementsInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawElementsInstancedBaseVertexBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawTransformFeedbackInstanced": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glDrawTransformFeedbackStreamInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFogCoorddv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFogCoordfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGetSubroutineIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGetSubroutineUniformLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMemoryBarrier": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormalP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPatchParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform1d": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform1dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform2d": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform3d": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform4d": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix2x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix2x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix3x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix3x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix4x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix4x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glReleaseShaderCompiler": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glScissorArrayv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glScissorIndexed": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glScissorIndexedv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glShaderBinary": ('int', 'typing.Sequence[int]', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoordP1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoordP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoordP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoordP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexStorage1D": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform1dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform2dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform3dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform4dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glValidateProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4Nbv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4Niv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4Nsv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4Nubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4Nuiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4Nusv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttrib4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribI4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribL1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribL1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribL2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribL2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribL3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribL3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribL4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribL4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribLPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glViewportArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glViewportIndexedf": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glViewportIndexedfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.glWindowPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Compatibility.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindImageTexture": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glClearDepthf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glColorP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteProgramPipelines": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteTransformFeedbacks": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDepthRangeArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDepthRangeIndexed": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDepthRangef": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawArraysInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawElementsInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawElementsInstancedBaseVertexBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawTransformFeedbackInstanced": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glDrawTransformFeedbackStreamInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGetSubroutineIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGetSubroutineUniformLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMemoryBarrier": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glNormalP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPatchParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform1d": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform1dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform2d": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform3d": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform4d": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix2x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix2x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix3x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix3x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix4x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix4x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glReleaseShaderCompiler": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glScissorArrayv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glScissorIndexed": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glScissorIndexedv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glSecondaryColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glShaderBinary": ('int', 'typing.Sequence[int]', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexCoordP1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexCoordP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexCoordP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexCoordP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexStorage1D": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform1dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform2dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform3dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform4dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glValidateProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribL1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribL1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribL2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribL2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribL3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribL3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribL4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribL4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribLPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glVertexP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glViewportArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glViewportIndexedf": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.glViewportIndexedfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_2_Core.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindImageTexture": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearBufferData": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearDepthf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyImageSubData": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteProgramPipelines": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteTransformFeedbacks": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDepthRangeArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDepthRangeIndexed": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDepthRangef": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDispatchCompute": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawArraysInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawElementsInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawElementsInstancedBaseVertexBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawTransformFeedbackInstanced": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glDrawTransformFeedbackStreamInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFogCoorddv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFogCoordfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFramebufferParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetProgramResourceIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetProgramResourceLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetProgramResourceLocationIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetSubroutineIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetSubroutineUniformLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glInvalidateBufferData": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glInvalidateFramebuffer": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glInvalidateSubFramebuffer": ('int', 'int', 'typing.Sequence[int]', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glInvalidateTexImage": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glInvalidateTexSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMemoryBarrier": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiDrawArraysIndirect": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormalP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPatchParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform1d": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform1dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform2d": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform3d": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform4d": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix2x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix2x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix3x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix3x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix4x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix4x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glReleaseShaderCompiler": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glScissorArrayv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glScissorIndexed": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glScissorIndexedv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glShaderBinary": ('int', 'typing.Sequence[int]', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glShaderStorageBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoordP1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoordP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoordP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoordP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexStorage1D": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexStorage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexStorage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTextureView": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform1dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform2dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform3dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform4dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glValidateProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4Nbv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4Niv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4Nsv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4Nubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4Nuiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4Nusv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttrib4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribBinding": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribI4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribIFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribL1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribL1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribL2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribL2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribL3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribL3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribL4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribL4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribLFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribLPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexBindingDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glViewportArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glViewportIndexedf": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glViewportIndexedfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.glWindowPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Compatibility.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindImageTexture": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClearBufferData": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClearDepthf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glColorP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCopyImageSubData": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteProgramPipelines": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteTransformFeedbacks": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDepthRangeArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDepthRangeIndexed": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDepthRangef": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDispatchCompute": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawArraysInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawElementsInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawElementsInstancedBaseVertexBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawTransformFeedbackInstanced": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glDrawTransformFeedbackStreamInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glFramebufferParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetProgramResourceIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetProgramResourceLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetProgramResourceLocationIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetSubroutineIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetSubroutineUniformLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glInvalidateBufferData": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glInvalidateFramebuffer": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glInvalidateSubFramebuffer": ('int', 'int', 'typing.Sequence[int]', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glInvalidateTexImage": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glInvalidateTexSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMemoryBarrier": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMultiDrawArraysIndirect": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glNormalP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPatchParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform1d": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform1dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform2d": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform3d": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform4d": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix2x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix2x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix3x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix3x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix4x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix4x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glReleaseShaderCompiler": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glScissorArrayv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glScissorIndexed": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glScissorIndexedv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glSecondaryColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glShaderBinary": ('int', 'typing.Sequence[int]', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glShaderStorageBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexCoordP1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexCoordP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexCoordP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexCoordP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexStorage1D": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexStorage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexStorage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glTextureView": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform1dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform2dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform3dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform4dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glValidateProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribBinding": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribIFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribL1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribL1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribL2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribL2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribL3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribL3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribL4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribL4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribLFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribLPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexBindingDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glVertexP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glViewportArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glViewportIndexedf": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.glViewportIndexedfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_3_Core.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindBuffersBase": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindBuffersRange": ('int', 'int', 'int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindImageTexture": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindImageTextures": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindSamplers": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindTextures": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBindVertexBuffers": ('int', 'int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearBufferData": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearDepthf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearTexImage": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClearTexSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyImageSubData": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDebugMessageControl": ('int', 'int', 'int', 'int', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDebugMessageInsert": ('int', 'int', 'int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteProgramPipelines": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteTransformFeedbacks": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDepthRangeArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDepthRangeIndexed": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDepthRangef": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDispatchCompute": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawArraysInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawElementsInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawElementsInstancedBaseVertexBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawTransformFeedbackInstanced": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glDrawTransformFeedbackStreamInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFogCoorddv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFogCoordfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFramebufferParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetColorTable": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetCompressedTexImage": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetConvolutionFilter": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetHistogram": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetMinmax": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetProgramResourceIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetProgramResourceLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetProgramResourceLocationIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetSeparableFilter": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetSubroutineIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetSubroutineUniformLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetTexImage": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glInvalidateBufferData": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glInvalidateFramebuffer": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glInvalidateSubFramebuffer": ('int', 'int', 'typing.Sequence[int]', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glInvalidateTexImage": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glInvalidateTexSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMemoryBarrier": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiDrawArraysIndirect": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormalP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glObjectLabel": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glObjectPtrLabel": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPatchParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPopDebugGroup": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform1d": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform1dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform2d": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform3d": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform4d": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix2x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix2x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix3x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix3x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix4x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix4x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPushDebugGroup": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glReadPixels": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glReleaseShaderCompiler": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glScissorArrayv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glScissorIndexed": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glScissorIndexedv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glShaderBinary": ('int', 'typing.Sequence[int]', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glShaderStorageBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoordP1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoordP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoordP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoordP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexStorage1D": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexStorage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexStorage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTextureView": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform1dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform2dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform3dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform4dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glValidateProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4Nbv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4Niv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4Nsv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4Nubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4Nuiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4Nusv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttrib4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribBinding": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribI4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribIFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribL1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribL1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribL2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribL2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribL3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribL3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribL4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribL4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribLFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribLPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexBindingDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glViewportArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glViewportIndexedf": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glViewportIndexedfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.glWindowPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Compatibility.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindBuffersBase": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindBuffersRange": ('int', 'int', 'int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindImageTexture": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindImageTextures": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindSamplers": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindTextures": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBindVertexBuffers": ('int', 'int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearBufferData": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearDepthf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearTexImage": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glClearTexSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCopyImageSubData": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDebugMessageControl": ('int', 'int', 'int', 'int', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDebugMessageInsert": ('int', 'int', 'int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteProgramPipelines": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteTransformFeedbacks": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDepthRangeArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDepthRangeIndexed": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDepthRangef": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDispatchCompute": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawArraysInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawElementsInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawElementsInstancedBaseVertexBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawTransformFeedbackInstanced": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glDrawTransformFeedbackStreamInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glFramebufferParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetCompressedTexImage": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetProgramResourceIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetProgramResourceLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetProgramResourceLocationIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetSubroutineIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetSubroutineUniformLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetTexImage": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glInvalidateBufferData": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glInvalidateFramebuffer": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glInvalidateSubFramebuffer": ('int', 'int', 'typing.Sequence[int]', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glInvalidateTexImage": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glInvalidateTexSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glMemoryBarrier": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glMultiDrawArraysIndirect": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glObjectLabel": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glObjectPtrLabel": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPatchParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPopDebugGroup": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform1d": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform1dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform2d": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform3d": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform4d": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix2x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix2x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix3x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix3x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix4x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix4x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glPushDebugGroup": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glReadPixels": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glReleaseShaderCompiler": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glScissorArrayv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glScissorIndexed": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glScissorIndexedv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glShaderBinary": ('int', 'typing.Sequence[int]', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glShaderStorageBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexStorage1D": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexStorage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexStorage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glTextureView": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform1dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform2dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform3dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform4dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glValidateProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4Nbv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4Niv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4Nsv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4Nubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4Nuiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4Nusv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttrib4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribBinding": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribI4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribIFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribL1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribL1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribL2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribL2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribL3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribL3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribL4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribL4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribLFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribLPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glVertexBindingDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glViewportArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glViewportIndexedf": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.glViewportIndexedfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_4_Core.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glAccum": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glAlphaFunc": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glArrayElement": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBegin": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindBuffersBase": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindBuffersRange": ('int', 'int', 'int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindImageTexture": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindImageTextures": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindSamplers": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindTextureUnit": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindTextures": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBindVertexBuffers": ('int', 'int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glBlitNamedFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCallList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCallLists": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCheckNamedFramebufferStatus": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearAccum": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearBufferData": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearDepthf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearIndex": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearNamedBufferData": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearNamedFramebufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearNamedFramebufferfv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearNamedFramebufferiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearNamedFramebufferuiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearTexImage": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClearTexSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClientActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClipControl": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glClipPlane": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4b": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4ub": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4us": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColor4usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorMaterial": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorSubTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorTable": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorTableParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glColorTableParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCompressedTextureSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCompressedTextureSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCompressedTextureSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glConvolutionParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glConvolutionParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glConvolutionParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glConvolutionParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyColorSubTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyConvolutionFilter1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyConvolutionFilter2D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyImageSubData": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyTextureSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyTextureSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCopyTextureSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDebugMessageControl": ('int', 'int', 'int', 'int', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDebugMessageInsert": ('int', 'int', 'int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteLists": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteProgramPipelines": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteTransformFeedbacks": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDepthRangeArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDepthRangeIndexed": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDepthRangef": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDisableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDisableVertexArrayAttrib": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDispatchCompute": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawArraysInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawElementsInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawElementsInstancedBaseVertexBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawPixels": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawTransformFeedbackInstanced": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glDrawTransformFeedbackStreamInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEdgeFlag": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEdgeFlagPointer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEnableClientState": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEnableVertexArrayAttrib": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEnd": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEndList": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalMesh1": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalMesh2": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalPoint1": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glEvalPoint2": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFogCoordPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFogCoordd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFogCoorddv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFogCoordf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFogCoordfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFogf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFogfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFogi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFogiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFramebufferParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glFrustum": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGenLists": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGenerateTextureMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetColorTable": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetCompressedTexImage": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetCompressedTextureImage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetCompressedTextureSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetConvolutionFilter": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetGraphicsResetStatus": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetHistogram": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetMinmax": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetProgramResourceIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetProgramResourceLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetProgramResourceLocationIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetSeparableFilter": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetSubroutineIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetSubroutineUniformLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetTexImage": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetTextureImage": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetTextureSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetnColorTable": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetnCompressedTexImage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetnConvolutionFilter": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetnHistogram": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetnMinmax": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetnSeparableFilter": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glGetnTexImage": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glHistogram": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexd": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexdv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexfv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexi": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexs": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexsv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexub": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIndexubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glInitNames": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glInterleavedArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glInvalidateBufferData": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glInvalidateFramebuffer": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glInvalidateNamedFramebufferData": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glInvalidateNamedFramebufferSubData": ('int', 'int', 'typing.Sequence[int]', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glInvalidateSubFramebuffer": ('int', 'int', 'typing.Sequence[int]', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glInvalidateTexImage": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glInvalidateTexSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsList": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLightModelf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLightModelfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLightModeli": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLightModeliv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLightf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLightfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLighti": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLightiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLineStipple": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glListBase": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLoadIdentity": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLoadMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLoadMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLoadName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLoadTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLoadTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMap1d": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMap1f": ('int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMap2d": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMap2f": ('int', 'float', 'float', 'int', 'int', 'float', 'float', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMapGrid1d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMapGrid1f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMapGrid2d": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMapGrid2f": ('int', 'float', 'float', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMapNamedBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMaterialf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMaterialfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMateriali": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMaterialiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMatrixMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMemoryBarrier": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMemoryBarrierByRegion": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMinmax": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultTransposeMatrixd": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultTransposeMatrixf": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiDrawArraysIndirect": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoord4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoordP1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoordP1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoordP2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoordP2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoordP3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoordP3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoordP4ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glMultiTexCoordP4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedBufferData": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedBufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedFramebufferDrawBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedFramebufferDrawBuffers": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedFramebufferParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedFramebufferReadBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNamedRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNewList": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormal3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormal3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormal3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormal3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormal3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormal3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormal3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormal3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormal3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormal3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormalP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormalP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glNormalPointer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glObjectLabel": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glObjectPtrLabel": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glOrtho": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPassThrough": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPatchParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPixelMapfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPixelMapuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPixelMapusv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPixelTransferf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPixelTransferi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPixelZoom": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPopAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPopClientAttrib": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPopDebugGroup": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPopMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPopName": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPrioritizeTextures": ('int', 'typing.Sequence[int]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform1d": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform1dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform2d": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform3d": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform4d": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix2x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix2x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix3x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix3x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix4x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix4x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPushAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPushClientAttrib": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPushDebugGroup": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPushMatrix": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glPushName": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRasterPos4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glReadPixels": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glReadnPixels": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRectd": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRectdv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRectf": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRectfv": ('typing.Sequence[float]', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRecti": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRectiv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRects": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRectsv": ('typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glReleaseShaderCompiler": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRenderMode": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glResetHistogram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glResetMinmax": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRotated": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glRotatef": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glScaled": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glScalef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glScissorArrayv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glScissorIndexed": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glScissorIndexedv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3b": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3bv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3ub": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3ubv": ('str',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3uiv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3us": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColor3usv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColorP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColorP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSecondaryColorPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glSeparableFilter2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glShadeModel": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glShaderBinary": ('int', 'typing.Sequence[int]', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glShaderStorageBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord1d": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord1dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord1f": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord1fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord1i": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord1iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord1s": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord1sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoord4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoordP1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoordP1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoordP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoordP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoordP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoordP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoordP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoordP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexCoordPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexEnvf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexEnvfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexEnvi": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexEnviv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexGend": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexGendv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexGenf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexGenfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexGeni": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexGeniv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexStorage1D": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexStorage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexStorage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureBarrier": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureStorage1D": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureStorage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureStorage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTextureView": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTransformFeedbackBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTranslated": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glTranslatef": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform1dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform2dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform3dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform4dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUnmapNamedBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glValidateProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex4d": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex4dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex4f": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex4fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex4i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex4iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex4s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertex4sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexArrayAttribBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexArrayAttribFormat": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexArrayAttribIFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexArrayAttribLFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexArrayBindingDivisor": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexArrayElementBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexArrayVertexBuffers": ('int', 'int', 'int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4Nbv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4Niv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4Nsv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4Nubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4Nuiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4Nusv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttrib4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribBinding": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribI4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribIFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribL1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribL1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribL2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribL2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribL3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribL3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribL4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribL4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribLFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribLPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexBindingDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexP2ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexP2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexP3ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexP3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexP4ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexP4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glVertexPointer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glViewportArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glViewportIndexedf": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glViewportIndexedfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos2d": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos2dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos2f": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos2fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos2i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos2iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos2s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos2sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos3d": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos3dv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos3f": ('float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos3fv": ('typing.Sequence[float]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos3i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos3iv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos3s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.glWindowPos3sv": ('typing.Sequence[int]',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Compatibility.initializeOpenGLFunctions": (),
-# class PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core:
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.__init__": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glActiveShaderProgram": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glActiveTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glAttachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBeginConditionalRender": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBeginQuery": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBeginQueryIndexed": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBeginTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindAttribLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindBuffersBase": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindBuffersRange": ('int', 'int', 'int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindFragDataLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindFragDataLocationIndexed": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindFramebuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindImageTexture": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindImageTextures": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindRenderbuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindSampler": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindSamplers": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindTexture": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindTextureUnit": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindTextures": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBindVertexBuffers": ('int', 'int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlendColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlendEquation": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlendEquationSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlendEquationSeparatei": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlendEquationi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlendFunc": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlendFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlendFuncSeparatei": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlendFunci": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlitFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glBlitNamedFramebuffer": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCheckFramebufferStatus": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCheckNamedFramebufferStatus": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClampColor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClear": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearBufferData": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearBufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearBufferfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearBufferiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearBufferuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearColor": ('float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearDepth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearDepthf": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearNamedBufferData": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearNamedFramebufferfi": ('int', 'int', 'float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearNamedFramebufferfv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearNamedFramebufferiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearNamedFramebufferuiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearStencil": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearTexImage": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClearTexSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glClipControl": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glColorMask": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glColorMaski": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCompileShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCompressedTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCompressedTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCompressedTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCompressedTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCompressedTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCompressedTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCompressedTextureSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCompressedTextureSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCompressedTextureSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCopyImageSubData": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCopyTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCopyTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCopyTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCopyTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCopyTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCopyTextureSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCopyTextureSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCopyTextureSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCreateProgram": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCreateShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glCullFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDebugMessageControl": ('int', 'int', 'int', 'int', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDebugMessageInsert": ('int', 'int', 'int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteFramebuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteProgramPipelines": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteQueries": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteRenderbuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteSamplers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteTextures": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteTransformFeedbacks": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDeleteVertexArrays": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDepthFunc": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDepthMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDepthRange": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDepthRangeArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDepthRangeIndexed": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDepthRangef": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDetachShader": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDisable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDisableVertexArrayAttrib": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDisableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDisablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDispatchCompute": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawArrays": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawArraysIndirect": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawArraysInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawArraysInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawBuffers": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawElements": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawElementsBaseVertex": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawElementsIndirect": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawElementsInstanced": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawElementsInstancedBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawElementsInstancedBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawElementsInstancedBaseVertexBaseInstance": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawRangeElements": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawRangeElementsBaseVertex": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawTransformFeedback": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawTransformFeedbackInstanced": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawTransformFeedbackStream": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glDrawTransformFeedbackStreamInstanced": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glEnable": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glEnableVertexArrayAttrib": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glEnableVertexAttribArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glEnablei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glEndConditionalRender": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glEndQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glEndQueryIndexed": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glEndTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glFinish": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glFlush": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glFramebufferParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glFramebufferTexture1D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glFramebufferTexture2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glFramebufferTexture3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glFrontFace": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGenerateMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGenerateTextureMipmap": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetAttribLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetCompressedTexImage": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetCompressedTextureImage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetCompressedTextureSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetError": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetFragDataIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetFragDataLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetGraphicsResetStatus": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetProgramResourceIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetProgramResourceLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetProgramResourceLocationIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetString": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetStringi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetSubroutineIndex": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetSubroutineUniformLocation": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetTexImage": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetTextureImage": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetTextureSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetUniformBlockIndex": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetUniformLocation": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetnCompressedTexImage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glGetnTexImage": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glHint": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glInvalidateBufferData": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glInvalidateFramebuffer": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glInvalidateNamedFramebufferData": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glInvalidateNamedFramebufferSubData": ('int', 'int', 'typing.Sequence[int]', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glInvalidateSubFramebuffer": ('int', 'int', 'typing.Sequence[int]', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glInvalidateTexImage": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glInvalidateTexSubImage": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsEnabled": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsEnabledi": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsFramebuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsQuery": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsRenderbuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsSampler": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsShader": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsTexture": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsTransformFeedback": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glIsVertexArray": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glLineWidth": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glLinkProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glLogicOp": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glMapBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glMapNamedBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glMemoryBarrier": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glMemoryBarrierByRegion": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glMinSampleShading": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glMultiDrawArrays": ('int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glMultiDrawArraysIndirect": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedBufferData": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedBufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedFramebufferDrawBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedFramebufferDrawBuffers": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedFramebufferParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedFramebufferReadBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedFramebufferRenderbuffer": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedFramebufferTexture": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedFramebufferTextureLayer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glNamedRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glObjectLabel": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glObjectPtrLabel": ('int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPatchParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPatchParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPauseTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPixelStoref": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPixelStorei": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPointParameterf": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPointParameterfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPointParameteri": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPointParameteriv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPointSize": ('float',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPolygonMode": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPolygonOffset": ('float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPopDebugGroup": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPrimitiveRestartIndex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramBinary": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform1d": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform1dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform1f": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform1fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform1i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform1iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform1ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform2d": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform2f": ('int', 'int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform2i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform2iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform3d": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform3f": ('int', 'int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform3i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform3iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform3ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform4d": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform4f": ('int', 'int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform4i": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform4iv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform4ui": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniform4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix2x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix2x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix2x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix2x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix3x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix3x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix3x4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix3x4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix4dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix4fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix4x2dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix4x2fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix4x3dv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProgramUniformMatrix4x3fv": ('int', 'int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glProvokingVertex": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glPushDebugGroup": ('int', 'int', 'int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glQueryCounter": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glReadBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glReadPixels": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glReadnPixels": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glReleaseShaderCompiler": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glRenderbufferStorage": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glRenderbufferStorageMultisample": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glResumeTransformFeedback": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glSampleCoverage": ('float', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glSampleMaski": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glSamplerParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glSamplerParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glSamplerParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glSamplerParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glSamplerParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glSamplerParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glScissor": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glScissorArrayv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glScissorIndexed": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glScissorIndexedv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glShaderBinary": ('int', 'typing.Sequence[int]', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glShaderStorageBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glStencilFunc": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glStencilFuncSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glStencilMask": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glStencilMaskSeparate": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glStencilOp": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glStencilOpSeparate": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexImage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexImage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexStorage1D": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexStorage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexStorage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTexSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureBarrier": (),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureBuffer": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureParameterIiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureParameterIuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureParameterf": ('int', 'int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureParameterfv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureParameteri": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureParameteriv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureStorage1D": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureStorage2D": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureStorage2DMultisample": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureStorage3D": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureStorage3DMultisample": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureSubImage1D": ('int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureSubImage2D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureSubImage3D": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTextureView": ('int', 'int', 'int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glTransformFeedbackBufferBase": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform1dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform1fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform1iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform1uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform2dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform2fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform2iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform2uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform3dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform3fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform3iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform3uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform4dv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform4fv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform4iv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniform4uiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformBlockBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix2x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix2x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix2x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix2x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix3x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix3x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix3x4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix3x4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix4dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix4fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix4x2dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix4x2fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix4x3dv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformMatrix4x3fv": ('int', 'int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUniformSubroutinesuiv": ('int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUnmapBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUnmapNamedBuffer": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUseProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glUseProgramStages": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glValidateProgram": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glValidateProgramPipeline": ('int',),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexArrayAttribBinding": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexArrayAttribFormat": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexArrayAttribIFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexArrayAttribLFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexArrayBindingDivisor": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexArrayElementBuffer": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexArrayVertexBuffers": ('int', 'int', 'int', 'typing.Sequence[int]', 'typing.Sequence[int]', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib1f": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib1fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib1s": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib1sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib2f": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib2fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib2s": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib2sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib3f": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib3fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib3s": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib3sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4Nbv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4Niv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4Nsv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4Nub": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4Nubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4Nuiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4Nusv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4f": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4fv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4s": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttrib4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribBinding": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribFormat": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI1i": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI1iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI1ui": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI1uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI2i": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI2iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI2ui": ('int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI2uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI3i": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI3iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI3uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI4bv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI4i": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI4iv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI4sv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI4ubv": ('int', 'str'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI4ui": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI4uiv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribI4usv": ('int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribIFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribIPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribL1d": ('int', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribL1dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribL2d": ('int', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribL2dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribL3d": ('int', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribL3dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribL4d": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribL4dv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribLFormat": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribLPointer": ('int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribP1ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribP1uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribP2ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribP2uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribP3ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribP3uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribP4ui": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribP4uiv": ('int', 'int', 'int', 'typing.Sequence[int]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexAttribPointer": ('int', 'int', 'int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glVertexBindingDivisor": ('int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glViewport": ('int', 'int', 'int', 'int'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glViewportArrayv": ('int', 'int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glViewportIndexedf": ('int', 'float', 'float', 'float', 'float'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.glViewportIndexedfv": ('int', 'typing.Sequence[float]'),
- "PySide2.QtOpenGLFunctions.QOpenGLFunctions_4_5_Core.initializeOpenGLFunctions": (),
- }) if "PySide2.QtOpenGLFunctions" in sys.modules else None
-# Module PySide2.QtPositioning
-sig_dict.update({
-# class PySide2.QtPositioning.QGeoAddress:
- "PySide2.QtPositioning.QGeoAddress.__init__": [(), ('PySide2.QtPositioning.QGeoAddress',)],
- "PySide2.QtPositioning.QGeoAddress.__copy__": (),
- "PySide2.QtPositioning.QGeoAddress.city": (),
- "PySide2.QtPositioning.QGeoAddress.clear": (),
- "PySide2.QtPositioning.QGeoAddress.country": (),
- "PySide2.QtPositioning.QGeoAddress.countryCode": (),
- "PySide2.QtPositioning.QGeoAddress.county": (),
- "PySide2.QtPositioning.QGeoAddress.district": (),
- "PySide2.QtPositioning.QGeoAddress.isEmpty": (),
- "PySide2.QtPositioning.QGeoAddress.isTextGenerated": (),
- "PySide2.QtPositioning.QGeoAddress.postalCode": (),
- "PySide2.QtPositioning.QGeoAddress.setCity": ('str',),
- "PySide2.QtPositioning.QGeoAddress.setCountry": ('str',),
- "PySide2.QtPositioning.QGeoAddress.setCountryCode": ('str',),
- "PySide2.QtPositioning.QGeoAddress.setCounty": ('str',),
- "PySide2.QtPositioning.QGeoAddress.setDistrict": ('str',),
- "PySide2.QtPositioning.QGeoAddress.setPostalCode": ('str',),
- "PySide2.QtPositioning.QGeoAddress.setState": ('str',),
- "PySide2.QtPositioning.QGeoAddress.setStreet": ('str',),
- "PySide2.QtPositioning.QGeoAddress.setText": ('str',),
- "PySide2.QtPositioning.QGeoAddress.state": (),
- "PySide2.QtPositioning.QGeoAddress.street": (),
- "PySide2.QtPositioning.QGeoAddress.text": (),
-# class PySide2.QtPositioning.QGeoAreaMonitorInfo:
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.__init__": [('PySide2.QtPositioning.QGeoAreaMonitorInfo',), ('str',)],
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.__copy__": (),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.area": (),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.expiration": (),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.identifier": (),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.isPersistent": (),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.isValid": (),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.name": (),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.notificationParameters": (),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.setArea": ('PySide2.QtPositioning.QGeoShape',),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.setExpiration": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.setName": ('str',),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.setNotificationParameters": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtPositioning.QGeoAreaMonitorInfo.setPersistent": ('bool',),
-# class PySide2.QtPositioning.QGeoAreaMonitorSource:
-# class PySide2.QtPositioning.QGeoAreaMonitorSource.AreaMonitorFeature:
-# class PySide2.QtPositioning.QGeoAreaMonitorSource.AreaMonitorFeatures:
-# class PySide2.QtPositioning.QGeoAreaMonitorSource.Error:
- "PySide2.QtPositioning.QGeoAreaMonitorSource.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.activeMonitors": [(), ('PySide2.QtPositioning.QGeoShape',)],
- "PySide2.QtPositioning.QGeoAreaMonitorSource.availableSources": (),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.createDefaultSource": ('PySide2.QtCore.QObject',),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.createSource": ('str', 'PySide2.QtCore.QObject'),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.error": (),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.positionInfoSource": (),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.requestUpdate": ('PySide2.QtPositioning.QGeoAreaMonitorInfo', 'str'),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.setPositionInfoSource": ('PySide2.QtPositioning.QGeoPositionInfoSource',),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.sourceName": (),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.startMonitoring": ('PySide2.QtPositioning.QGeoAreaMonitorInfo',),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.stopMonitoring": ('PySide2.QtPositioning.QGeoAreaMonitorInfo',),
- "PySide2.QtPositioning.QGeoAreaMonitorSource.supportedAreaMonitorFeatures": (),
-# class PySide2.QtPositioning.QGeoCircle:
- "PySide2.QtPositioning.QGeoCircle.__init__": [(), ('PySide2.QtPositioning.QGeoCircle',), ('PySide2.QtPositioning.QGeoCoordinate', 'float'), ('PySide2.QtPositioning.QGeoShape',)],
- "PySide2.QtPositioning.QGeoCircle.__copy__": (),
- "PySide2.QtPositioning.QGeoCircle.center": (),
- "PySide2.QtPositioning.QGeoCircle.extendCircle": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoCircle.radius": (),
- "PySide2.QtPositioning.QGeoCircle.setCenter": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoCircle.setRadius": ('float',),
- "PySide2.QtPositioning.QGeoCircle.toString": (),
- "PySide2.QtPositioning.QGeoCircle.translate": ('float', 'float'),
- "PySide2.QtPositioning.QGeoCircle.translated": ('float', 'float'),
-# class PySide2.QtPositioning.QGeoCoordinate:
-# class PySide2.QtPositioning.QGeoCoordinate.CoordinateFormat:
-# class PySide2.QtPositioning.QGeoCoordinate.CoordinateType:
- "PySide2.QtPositioning.QGeoCoordinate.__init__": [(), ('PySide2.QtPositioning.QGeoCoordinate',), ('float', 'float'), ('float', 'float', 'float')],
- "PySide2.QtPositioning.QGeoCoordinate.__copy__": (),
- "PySide2.QtPositioning.QGeoCoordinate.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtPositioning.QGeoCoordinate.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtPositioning.QGeoCoordinate.altitude": (),
- "PySide2.QtPositioning.QGeoCoordinate.atDistanceAndAzimuth": ('float', 'float', 'float'),
- "PySide2.QtPositioning.QGeoCoordinate.azimuthTo": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoCoordinate.distanceTo": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoCoordinate.isValid": (),
- "PySide2.QtPositioning.QGeoCoordinate.latitude": (),
- "PySide2.QtPositioning.QGeoCoordinate.longitude": (),
- "PySide2.QtPositioning.QGeoCoordinate.setAltitude": ('float',),
- "PySide2.QtPositioning.QGeoCoordinate.setLatitude": ('float',),
- "PySide2.QtPositioning.QGeoCoordinate.setLongitude": ('float',),
- "PySide2.QtPositioning.QGeoCoordinate.toString": ('PySide2.QtPositioning.QGeoCoordinate.CoordinateFormat',),
- "PySide2.QtPositioning.QGeoCoordinate.type": (),
-# class PySide2.QtPositioning.QGeoLocation:
- "PySide2.QtPositioning.QGeoLocation.__init__": [(), ('PySide2.QtPositioning.QGeoLocation',)],
- "PySide2.QtPositioning.QGeoLocation.__copy__": (),
- "PySide2.QtPositioning.QGeoLocation.address": (),
- "PySide2.QtPositioning.QGeoLocation.boundingBox": (),
- "PySide2.QtPositioning.QGeoLocation.coordinate": (),
- "PySide2.QtPositioning.QGeoLocation.extendedAttributes": (),
- "PySide2.QtPositioning.QGeoLocation.isEmpty": (),
- "PySide2.QtPositioning.QGeoLocation.setAddress": ('PySide2.QtPositioning.QGeoAddress',),
- "PySide2.QtPositioning.QGeoLocation.setBoundingBox": ('PySide2.QtPositioning.QGeoRectangle',),
- "PySide2.QtPositioning.QGeoLocation.setCoordinate": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoLocation.setExtendedAttributes": ('typing.Dict[str, typing.Any]',),
-# class PySide2.QtPositioning.QGeoPath:
- "PySide2.QtPositioning.QGeoPath.__init__": [(), ('PySide2.QtPositioning.QGeoPath',), ('PySide2.QtPositioning.QGeoShape',), ('typing.Sequence[PySide2.QtPositioning.QGeoCoordinate]', 'float')],
- "PySide2.QtPositioning.QGeoPath.__copy__": (),
- "PySide2.QtPositioning.QGeoPath.addCoordinate": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoPath.clearPath": (),
- "PySide2.QtPositioning.QGeoPath.containsCoordinate": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoPath.coordinateAt": ('int',),
- "PySide2.QtPositioning.QGeoPath.insertCoordinate": ('int', 'PySide2.QtPositioning.QGeoCoordinate'),
- "PySide2.QtPositioning.QGeoPath.length": ('int', 'int'),
- "PySide2.QtPositioning.QGeoPath.path": (),
- "PySide2.QtPositioning.QGeoPath.removeCoordinate": [('PySide2.QtPositioning.QGeoCoordinate',), ('int',)],
- "PySide2.QtPositioning.QGeoPath.replaceCoordinate": ('int', 'PySide2.QtPositioning.QGeoCoordinate'),
- "PySide2.QtPositioning.QGeoPath.setPath": ('typing.Sequence[PySide2.QtPositioning.QGeoCoordinate]',),
- "PySide2.QtPositioning.QGeoPath.setVariantPath": ('typing.Sequence[typing.Any]',),
- "PySide2.QtPositioning.QGeoPath.setWidth": ('float',),
- "PySide2.QtPositioning.QGeoPath.size": (),
- "PySide2.QtPositioning.QGeoPath.toString": (),
- "PySide2.QtPositioning.QGeoPath.translate": ('float', 'float'),
- "PySide2.QtPositioning.QGeoPath.translated": ('float', 'float'),
- "PySide2.QtPositioning.QGeoPath.variantPath": (),
- "PySide2.QtPositioning.QGeoPath.width": (),
-# class PySide2.QtPositioning.QGeoPolygon:
- "PySide2.QtPositioning.QGeoPolygon.__init__": [(), ('PySide2.QtPositioning.QGeoPolygon',), ('PySide2.QtPositioning.QGeoShape',), ('typing.Sequence[PySide2.QtPositioning.QGeoCoordinate]',)],
- "PySide2.QtPositioning.QGeoPolygon.__copy__": (),
- "PySide2.QtPositioning.QGeoPolygon.addCoordinate": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoPolygon.addHole": [('typing.Any',), ('typing.Sequence[PySide2.QtPositioning.QGeoCoordinate]',)],
- "PySide2.QtPositioning.QGeoPolygon.containsCoordinate": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoPolygon.coordinateAt": ('int',),
- "PySide2.QtPositioning.QGeoPolygon.hole": ('int',),
- "PySide2.QtPositioning.QGeoPolygon.holePath": ('int',),
- "PySide2.QtPositioning.QGeoPolygon.holesCount": (),
- "PySide2.QtPositioning.QGeoPolygon.insertCoordinate": ('int', 'PySide2.QtPositioning.QGeoCoordinate'),
- "PySide2.QtPositioning.QGeoPolygon.length": ('int', 'int'),
- "PySide2.QtPositioning.QGeoPolygon.path": (),
- "PySide2.QtPositioning.QGeoPolygon.perimeter": (),
- "PySide2.QtPositioning.QGeoPolygon.removeCoordinate": [('PySide2.QtPositioning.QGeoCoordinate',), ('int',)],
- "PySide2.QtPositioning.QGeoPolygon.removeHole": ('int',),
- "PySide2.QtPositioning.QGeoPolygon.replaceCoordinate": ('int', 'PySide2.QtPositioning.QGeoCoordinate'),
- "PySide2.QtPositioning.QGeoPolygon.setPath": ('typing.Sequence[PySide2.QtPositioning.QGeoCoordinate]',),
- "PySide2.QtPositioning.QGeoPolygon.setPerimeter": ('typing.Sequence[typing.Any]',),
- "PySide2.QtPositioning.QGeoPolygon.size": (),
- "PySide2.QtPositioning.QGeoPolygon.toString": (),
- "PySide2.QtPositioning.QGeoPolygon.translate": ('float', 'float'),
- "PySide2.QtPositioning.QGeoPolygon.translated": ('float', 'float'),
-# class PySide2.QtPositioning.QGeoPositionInfo:
-# class PySide2.QtPositioning.QGeoPositionInfo.Attribute:
- "PySide2.QtPositioning.QGeoPositionInfo.__init__": [(), ('PySide2.QtPositioning.QGeoCoordinate', 'PySide2.QtCore.QDateTime'), ('PySide2.QtPositioning.QGeoPositionInfo',)],
- "PySide2.QtPositioning.QGeoPositionInfo.__copy__": (),
- "PySide2.QtPositioning.QGeoPositionInfo.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtPositioning.QGeoPositionInfo.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtPositioning.QGeoPositionInfo.attribute": ('PySide2.QtPositioning.QGeoPositionInfo.Attribute',),
- "PySide2.QtPositioning.QGeoPositionInfo.coordinate": (),
- "PySide2.QtPositioning.QGeoPositionInfo.hasAttribute": ('PySide2.QtPositioning.QGeoPositionInfo.Attribute',),
- "PySide2.QtPositioning.QGeoPositionInfo.isValid": (),
- "PySide2.QtPositioning.QGeoPositionInfo.removeAttribute": ('PySide2.QtPositioning.QGeoPositionInfo.Attribute',),
- "PySide2.QtPositioning.QGeoPositionInfo.setAttribute": ('PySide2.QtPositioning.QGeoPositionInfo.Attribute', 'float'),
- "PySide2.QtPositioning.QGeoPositionInfo.setCoordinate": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoPositionInfo.setTimestamp": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtPositioning.QGeoPositionInfo.timestamp": (),
-# class PySide2.QtPositioning.QGeoPositionInfoSource:
-# class PySide2.QtPositioning.QGeoPositionInfoSource.Error:
-# class PySide2.QtPositioning.QGeoPositionInfoSource.PositioningMethod:
-# class PySide2.QtPositioning.QGeoPositionInfoSource.PositioningMethods:
- "PySide2.QtPositioning.QGeoPositionInfoSource.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtPositioning.QGeoPositionInfoSource.availableSources": (),
- "PySide2.QtPositioning.QGeoPositionInfoSource.backendProperty": ('str',),
- "PySide2.QtPositioning.QGeoPositionInfoSource.createDefaultSource": [('PySide2.QtCore.QObject',), ('typing.Dict[str, typing.Any]', 'PySide2.QtCore.QObject')],
- "PySide2.QtPositioning.QGeoPositionInfoSource.createSource": [('str', 'PySide2.QtCore.QObject'), ('str', 'typing.Dict[str, typing.Any]', 'PySide2.QtCore.QObject')],
- "PySide2.QtPositioning.QGeoPositionInfoSource.error": (),
- "PySide2.QtPositioning.QGeoPositionInfoSource.lastKnownPosition": ('bool',),
- "PySide2.QtPositioning.QGeoPositionInfoSource.minimumUpdateInterval": (),
- "PySide2.QtPositioning.QGeoPositionInfoSource.preferredPositioningMethods": (),
- "PySide2.QtPositioning.QGeoPositionInfoSource.requestUpdate": ('int',),
- "PySide2.QtPositioning.QGeoPositionInfoSource.setBackendProperty": ('str', 'typing.Any'),
- "PySide2.QtPositioning.QGeoPositionInfoSource.setPreferredPositioningMethods": ('PySide2.QtPositioning.QGeoPositionInfoSource.PositioningMethods',),
- "PySide2.QtPositioning.QGeoPositionInfoSource.setUpdateInterval": ('int',),
- "PySide2.QtPositioning.QGeoPositionInfoSource.sourceName": (),
- "PySide2.QtPositioning.QGeoPositionInfoSource.startUpdates": (),
- "PySide2.QtPositioning.QGeoPositionInfoSource.stopUpdates": (),
- "PySide2.QtPositioning.QGeoPositionInfoSource.supportedPositioningMethods": (),
- "PySide2.QtPositioning.QGeoPositionInfoSource.updateInterval": (),
-# class PySide2.QtPositioning.QGeoPositionInfoSourceFactory:
- "PySide2.QtPositioning.QGeoPositionInfoSourceFactory.__init__": (),
- "PySide2.QtPositioning.QGeoPositionInfoSourceFactory.areaMonitor": ('PySide2.QtCore.QObject',),
- "PySide2.QtPositioning.QGeoPositionInfoSourceFactory.positionInfoSource": ('PySide2.QtCore.QObject',),
- "PySide2.QtPositioning.QGeoPositionInfoSourceFactory.satelliteInfoSource": ('PySide2.QtCore.QObject',),
-# class PySide2.QtPositioning.QGeoRectangle:
- "PySide2.QtPositioning.QGeoRectangle.__init__": [(), ('PySide2.QtPositioning.QGeoCoordinate', 'PySide2.QtPositioning.QGeoCoordinate'), ('PySide2.QtPositioning.QGeoCoordinate', 'float', 'float'), ('PySide2.QtPositioning.QGeoRectangle',), ('PySide2.QtPositioning.QGeoShape',), ('typing.Sequence[PySide2.QtPositioning.QGeoCoordinate]',)],
- "PySide2.QtPositioning.QGeoRectangle.__copy__": (),
- "PySide2.QtPositioning.QGeoRectangle.__ior__": ('PySide2.QtPositioning.QGeoRectangle',),
- "PySide2.QtPositioning.QGeoRectangle.__or__": ('PySide2.QtPositioning.QGeoRectangle',),
- "PySide2.QtPositioning.QGeoRectangle.bottomLeft": (),
- "PySide2.QtPositioning.QGeoRectangle.bottomRight": (),
- "PySide2.QtPositioning.QGeoRectangle.center": (),
- "PySide2.QtPositioning.QGeoRectangle.contains": [('PySide2.QtPositioning.QGeoCoordinate',), ('PySide2.QtPositioning.QGeoRectangle',)],
- "PySide2.QtPositioning.QGeoRectangle.extendRectangle": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoRectangle.height": (),
- "PySide2.QtPositioning.QGeoRectangle.intersects": ('PySide2.QtPositioning.QGeoRectangle',),
- "PySide2.QtPositioning.QGeoRectangle.setBottomLeft": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoRectangle.setBottomRight": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoRectangle.setCenter": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoRectangle.setHeight": ('float',),
- "PySide2.QtPositioning.QGeoRectangle.setTopLeft": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoRectangle.setTopRight": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoRectangle.setWidth": ('float',),
- "PySide2.QtPositioning.QGeoRectangle.toString": (),
- "PySide2.QtPositioning.QGeoRectangle.topLeft": (),
- "PySide2.QtPositioning.QGeoRectangle.topRight": (),
- "PySide2.QtPositioning.QGeoRectangle.translate": ('float', 'float'),
- "PySide2.QtPositioning.QGeoRectangle.translated": ('float', 'float'),
- "PySide2.QtPositioning.QGeoRectangle.united": ('PySide2.QtPositioning.QGeoRectangle',),
- "PySide2.QtPositioning.QGeoRectangle.width": (),
-# class PySide2.QtPositioning.QGeoSatelliteInfo:
-# class PySide2.QtPositioning.QGeoSatelliteInfo.Attribute:
-# class PySide2.QtPositioning.QGeoSatelliteInfo.SatelliteSystem:
- "PySide2.QtPositioning.QGeoSatelliteInfo.__init__": [(), ('PySide2.QtPositioning.QGeoSatelliteInfo',)],
- "PySide2.QtPositioning.QGeoSatelliteInfo.__copy__": (),
- "PySide2.QtPositioning.QGeoSatelliteInfo.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtPositioning.QGeoSatelliteInfo.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtPositioning.QGeoSatelliteInfo.attribute": ('PySide2.QtPositioning.QGeoSatelliteInfo.Attribute',),
- "PySide2.QtPositioning.QGeoSatelliteInfo.hasAttribute": ('PySide2.QtPositioning.QGeoSatelliteInfo.Attribute',),
- "PySide2.QtPositioning.QGeoSatelliteInfo.removeAttribute": ('PySide2.QtPositioning.QGeoSatelliteInfo.Attribute',),
- "PySide2.QtPositioning.QGeoSatelliteInfo.satelliteIdentifier": (),
- "PySide2.QtPositioning.QGeoSatelliteInfo.satelliteSystem": (),
- "PySide2.QtPositioning.QGeoSatelliteInfo.setAttribute": ('PySide2.QtPositioning.QGeoSatelliteInfo.Attribute', 'float'),
- "PySide2.QtPositioning.QGeoSatelliteInfo.setSatelliteIdentifier": ('int',),
- "PySide2.QtPositioning.QGeoSatelliteInfo.setSatelliteSystem": ('PySide2.QtPositioning.QGeoSatelliteInfo.SatelliteSystem',),
- "PySide2.QtPositioning.QGeoSatelliteInfo.setSignalStrength": ('int',),
- "PySide2.QtPositioning.QGeoSatelliteInfo.signalStrength": (),
-# class PySide2.QtPositioning.QGeoSatelliteInfoSource:
-# class PySide2.QtPositioning.QGeoSatelliteInfoSource.Error:
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.availableSources": (),
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.createDefaultSource": [('PySide2.QtCore.QObject',), ('typing.Dict[str, typing.Any]', 'PySide2.QtCore.QObject')],
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.createSource": [('str', 'PySide2.QtCore.QObject'), ('str', 'typing.Dict[str, typing.Any]', 'PySide2.QtCore.QObject')],
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.error": (),
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.minimumUpdateInterval": (),
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.requestUpdate": ('int',),
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.setUpdateInterval": ('int',),
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.sourceName": (),
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.startUpdates": (),
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.stopUpdates": (),
- "PySide2.QtPositioning.QGeoSatelliteInfoSource.updateInterval": (),
-# class PySide2.QtPositioning.QGeoShape:
-# class PySide2.QtPositioning.QGeoShape.ShapeType:
- "PySide2.QtPositioning.QGeoShape.__init__": [(), ('PySide2.QtPositioning.QGeoShape',)],
- "PySide2.QtPositioning.QGeoShape.__copy__": (),
- "PySide2.QtPositioning.QGeoShape.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtPositioning.QGeoShape.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtPositioning.QGeoShape.boundingGeoRectangle": (),
- "PySide2.QtPositioning.QGeoShape.center": (),
- "PySide2.QtPositioning.QGeoShape.contains": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoShape.extendShape": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtPositioning.QGeoShape.isEmpty": (),
- "PySide2.QtPositioning.QGeoShape.isValid": (),
- "PySide2.QtPositioning.QGeoShape.toString": (),
- "PySide2.QtPositioning.QGeoShape.type": (),
-# class PySide2.QtPositioning.QNmeaPositionInfoSource:
-# class PySide2.QtPositioning.QNmeaPositionInfoSource.UpdateMode:
- "PySide2.QtPositioning.QNmeaPositionInfoSource.__init__": ('PySide2.QtPositioning.QNmeaPositionInfoSource.UpdateMode', 'PySide2.QtCore.QObject'),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.device": (),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.error": (),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.lastKnownPosition": ('bool',),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.minimumUpdateInterval": (),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.parsePosInfoFromNmeaData": ('str', 'int', 'PySide2.QtPositioning.QGeoPositionInfo'),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.requestUpdate": ('int',),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.setDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.setUpdateInterval": ('int',),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.setUserEquivalentRangeError": ('float',),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.startUpdates": (),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.stopUpdates": (),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.supportedPositioningMethods": (),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.updateMode": (),
- "PySide2.QtPositioning.QNmeaPositionInfoSource.userEquivalentRangeError": (),
- }) if "PySide2.QtPositioning" in sys.modules else None
-# Module PySide2.QtLocation
-sig_dict.update({
-# class PySide2.QtLocation.QGeoCodeReply:
-# class PySide2.QtLocation.QGeoCodeReply.Error:
- "PySide2.QtLocation.QGeoCodeReply.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtLocation.QGeoCodeReply.Error', 'str', 'PySide2.QtCore.QObject')],
- "PySide2.QtLocation.QGeoCodeReply.abort": (),
- "PySide2.QtLocation.QGeoCodeReply.addLocation": ('PySide2.QtPositioning.QGeoLocation',),
- "PySide2.QtLocation.QGeoCodeReply.error": (),
- "PySide2.QtLocation.QGeoCodeReply.errorString": (),
- "PySide2.QtLocation.QGeoCodeReply.isFinished": (),
- "PySide2.QtLocation.QGeoCodeReply.limit": (),
- "PySide2.QtLocation.QGeoCodeReply.locations": (),
- "PySide2.QtLocation.QGeoCodeReply.offset": (),
- "PySide2.QtLocation.QGeoCodeReply.setError": ('PySide2.QtLocation.QGeoCodeReply.Error', 'str'),
- "PySide2.QtLocation.QGeoCodeReply.setFinished": ('bool',),
- "PySide2.QtLocation.QGeoCodeReply.setLimit": ('int',),
- "PySide2.QtLocation.QGeoCodeReply.setLocations": ('typing.Sequence[PySide2.QtPositioning.QGeoLocation]',),
- "PySide2.QtLocation.QGeoCodeReply.setOffset": ('int',),
- "PySide2.QtLocation.QGeoCodeReply.setViewport": ('PySide2.QtPositioning.QGeoShape',),
- "PySide2.QtLocation.QGeoCodeReply.viewport": (),
-# class PySide2.QtLocation.QGeoCodingManager:
- "PySide2.QtLocation.QGeoCodingManager.geocode": [('PySide2.QtPositioning.QGeoAddress', 'PySide2.QtPositioning.QGeoShape'), ('str', 'int', 'int', 'PySide2.QtPositioning.QGeoShape')],
- "PySide2.QtLocation.QGeoCodingManager.locale": (),
- "PySide2.QtLocation.QGeoCodingManager.managerName": (),
- "PySide2.QtLocation.QGeoCodingManager.managerVersion": (),
- "PySide2.QtLocation.QGeoCodingManager.reverseGeocode": ('PySide2.QtPositioning.QGeoCoordinate', 'PySide2.QtPositioning.QGeoShape'),
- "PySide2.QtLocation.QGeoCodingManager.setLocale": ('PySide2.QtCore.QLocale',),
-# class PySide2.QtLocation.QGeoCodingManagerEngine:
- "PySide2.QtLocation.QGeoCodingManagerEngine.__init__": ('typing.Dict[str, typing.Any]', 'PySide2.QtCore.QObject'),
- "PySide2.QtLocation.QGeoCodingManagerEngine.geocode": [('PySide2.QtPositioning.QGeoAddress', 'PySide2.QtPositioning.QGeoShape'), ('str', 'int', 'int', 'PySide2.QtPositioning.QGeoShape')],
- "PySide2.QtLocation.QGeoCodingManagerEngine.locale": (),
- "PySide2.QtLocation.QGeoCodingManagerEngine.managerName": (),
- "PySide2.QtLocation.QGeoCodingManagerEngine.managerVersion": (),
- "PySide2.QtLocation.QGeoCodingManagerEngine.reverseGeocode": ('PySide2.QtPositioning.QGeoCoordinate', 'PySide2.QtPositioning.QGeoShape'),
- "PySide2.QtLocation.QGeoCodingManagerEngine.setLocale": ('PySide2.QtCore.QLocale',),
-# class PySide2.QtLocation.QGeoManeuver:
-# class PySide2.QtLocation.QGeoManeuver.InstructionDirection:
- "PySide2.QtLocation.QGeoManeuver.__init__": [(), ('PySide2.QtLocation.QGeoManeuver',)],
- "PySide2.QtLocation.QGeoManeuver.__copy__": (),
- "PySide2.QtLocation.QGeoManeuver.direction": (),
- "PySide2.QtLocation.QGeoManeuver.distanceToNextInstruction": (),
- "PySide2.QtLocation.QGeoManeuver.extendedAttributes": (),
- "PySide2.QtLocation.QGeoManeuver.instructionText": (),
- "PySide2.QtLocation.QGeoManeuver.isValid": (),
- "PySide2.QtLocation.QGeoManeuver.position": (),
- "PySide2.QtLocation.QGeoManeuver.setDirection": ('PySide2.QtLocation.QGeoManeuver.InstructionDirection',),
- "PySide2.QtLocation.QGeoManeuver.setDistanceToNextInstruction": ('float',),
- "PySide2.QtLocation.QGeoManeuver.setExtendedAttributes": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtLocation.QGeoManeuver.setInstructionText": ('str',),
- "PySide2.QtLocation.QGeoManeuver.setPosition": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtLocation.QGeoManeuver.setTimeToNextInstruction": ('int',),
- "PySide2.QtLocation.QGeoManeuver.setWaypoint": ('PySide2.QtPositioning.QGeoCoordinate',),
- "PySide2.QtLocation.QGeoManeuver.timeToNextInstruction": (),
- "PySide2.QtLocation.QGeoManeuver.waypoint": (),
-# class PySide2.QtLocation.QGeoRoute:
- "PySide2.QtLocation.QGeoRoute.__init__": [(), ('PySide2.QtLocation.QGeoRoute',)],
- "PySide2.QtLocation.QGeoRoute.__copy__": (),
- "PySide2.QtLocation.QGeoRoute.bounds": (),
- "PySide2.QtLocation.QGeoRoute.distance": (),
- "PySide2.QtLocation.QGeoRoute.extendedAttributes": (),
- "PySide2.QtLocation.QGeoRoute.firstRouteSegment": (),
- "PySide2.QtLocation.QGeoRoute.path": (),
- "PySide2.QtLocation.QGeoRoute.request": (),
- "PySide2.QtLocation.QGeoRoute.routeId": (),
- "PySide2.QtLocation.QGeoRoute.setBounds": ('PySide2.QtPositioning.QGeoRectangle',),
- "PySide2.QtLocation.QGeoRoute.setDistance": ('float',),
- "PySide2.QtLocation.QGeoRoute.setExtendedAttributes": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtLocation.QGeoRoute.setFirstRouteSegment": ('PySide2.QtLocation.QGeoRouteSegment',),
- "PySide2.QtLocation.QGeoRoute.setPath": ('typing.Sequence[PySide2.QtPositioning.QGeoCoordinate]',),
- "PySide2.QtLocation.QGeoRoute.setRequest": ('PySide2.QtLocation.QGeoRouteRequest',),
- "PySide2.QtLocation.QGeoRoute.setRouteId": ('str',),
- "PySide2.QtLocation.QGeoRoute.setTravelMode": ('PySide2.QtLocation.QGeoRouteRequest.TravelMode',),
- "PySide2.QtLocation.QGeoRoute.setTravelTime": ('int',),
- "PySide2.QtLocation.QGeoRoute.travelMode": (),
- "PySide2.QtLocation.QGeoRoute.travelTime": (),
-# class PySide2.QtLocation.QGeoRouteReply:
-# class PySide2.QtLocation.QGeoRouteReply.Error:
- "PySide2.QtLocation.QGeoRouteReply.__init__": [('PySide2.QtLocation.QGeoRouteReply.Error', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtLocation.QGeoRouteRequest', 'PySide2.QtCore.QObject')],
- "PySide2.QtLocation.QGeoRouteReply.abort": (),
- "PySide2.QtLocation.QGeoRouteReply.addRoutes": ('typing.Sequence[PySide2.QtLocation.QGeoRoute]',),
- "PySide2.QtLocation.QGeoRouteReply.error": (),
- "PySide2.QtLocation.QGeoRouteReply.errorString": (),
- "PySide2.QtLocation.QGeoRouteReply.isFinished": (),
- "PySide2.QtLocation.QGeoRouteReply.request": (),
- "PySide2.QtLocation.QGeoRouteReply.routes": (),
- "PySide2.QtLocation.QGeoRouteReply.setError": ('PySide2.QtLocation.QGeoRouteReply.Error', 'str'),
- "PySide2.QtLocation.QGeoRouteReply.setFinished": ('bool',),
- "PySide2.QtLocation.QGeoRouteReply.setRoutes": ('typing.Sequence[PySide2.QtLocation.QGeoRoute]',),
-# class PySide2.QtLocation.QGeoRouteRequest:
-# class PySide2.QtLocation.QGeoRouteRequest.FeatureType:
-# class PySide2.QtLocation.QGeoRouteRequest.FeatureTypes:
-# class PySide2.QtLocation.QGeoRouteRequest.FeatureWeight:
-# class PySide2.QtLocation.QGeoRouteRequest.FeatureWeights:
-# class PySide2.QtLocation.QGeoRouteRequest.ManeuverDetail:
-# class PySide2.QtLocation.QGeoRouteRequest.ManeuverDetails:
-# class PySide2.QtLocation.QGeoRouteRequest.RouteOptimization:
-# class PySide2.QtLocation.QGeoRouteRequest.RouteOptimizations:
-# class PySide2.QtLocation.QGeoRouteRequest.SegmentDetail:
-# class PySide2.QtLocation.QGeoRouteRequest.SegmentDetails:
-# class PySide2.QtLocation.QGeoRouteRequest.TravelMode:
-# class PySide2.QtLocation.QGeoRouteRequest.TravelModes:
- "PySide2.QtLocation.QGeoRouteRequest.__init__": [('PySide2.QtLocation.QGeoRouteRequest',), ('PySide2.QtPositioning.QGeoCoordinate', 'PySide2.QtPositioning.QGeoCoordinate'), ('typing.Sequence[PySide2.QtPositioning.QGeoCoordinate]',)],
- "PySide2.QtLocation.QGeoRouteRequest.departureTime": (),
- "PySide2.QtLocation.QGeoRouteRequest.excludeAreas": (),
- "PySide2.QtLocation.QGeoRouteRequest.extraParameters": (),
- "PySide2.QtLocation.QGeoRouteRequest.featureTypes": (),
- "PySide2.QtLocation.QGeoRouteRequest.featureWeight": ('PySide2.QtLocation.QGeoRouteRequest.FeatureType',),
- "PySide2.QtLocation.QGeoRouteRequest.maneuverDetail": (),
- "PySide2.QtLocation.QGeoRouteRequest.numberAlternativeRoutes": (),
- "PySide2.QtLocation.QGeoRouteRequest.routeOptimization": (),
- "PySide2.QtLocation.QGeoRouteRequest.segmentDetail": (),
- "PySide2.QtLocation.QGeoRouteRequest.setDepartureTime": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtLocation.QGeoRouteRequest.setExcludeAreas": ('typing.Sequence[PySide2.QtPositioning.QGeoRectangle]',),
- "PySide2.QtLocation.QGeoRouteRequest.setExtraParameters": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtLocation.QGeoRouteRequest.setFeatureWeight": ('PySide2.QtLocation.QGeoRouteRequest.FeatureType', 'PySide2.QtLocation.QGeoRouteRequest.FeatureWeight'),
- "PySide2.QtLocation.QGeoRouteRequest.setManeuverDetail": ('PySide2.QtLocation.QGeoRouteRequest.ManeuverDetail',),
- "PySide2.QtLocation.QGeoRouteRequest.setNumberAlternativeRoutes": ('int',),
- "PySide2.QtLocation.QGeoRouteRequest.setRouteOptimization": ('PySide2.QtLocation.QGeoRouteRequest.RouteOptimizations',),
- "PySide2.QtLocation.QGeoRouteRequest.setSegmentDetail": ('PySide2.QtLocation.QGeoRouteRequest.SegmentDetail',),
- "PySide2.QtLocation.QGeoRouteRequest.setTravelModes": ('PySide2.QtLocation.QGeoRouteRequest.TravelModes',),
- "PySide2.QtLocation.QGeoRouteRequest.setWaypoints": ('typing.Sequence[PySide2.QtPositioning.QGeoCoordinate]',),
- "PySide2.QtLocation.QGeoRouteRequest.setWaypointsMetadata": ('typing.Sequence[typing.Dict]',),
- "PySide2.QtLocation.QGeoRouteRequest.travelModes": (),
- "PySide2.QtLocation.QGeoRouteRequest.waypoints": (),
- "PySide2.QtLocation.QGeoRouteRequest.waypointsMetadata": (),
-# class PySide2.QtLocation.QGeoRouteSegment:
- "PySide2.QtLocation.QGeoRouteSegment.__init__": [(), ('PySide2.QtLocation.QGeoRouteSegment',)],
- "PySide2.QtLocation.QGeoRouteSegment.__copy__": (),
- "PySide2.QtLocation.QGeoRouteSegment.distance": (),
- "PySide2.QtLocation.QGeoRouteSegment.isLegLastSegment": (),
- "PySide2.QtLocation.QGeoRouteSegment.isValid": (),
- "PySide2.QtLocation.QGeoRouteSegment.maneuver": (),
- "PySide2.QtLocation.QGeoRouteSegment.nextRouteSegment": (),
- "PySide2.QtLocation.QGeoRouteSegment.path": (),
- "PySide2.QtLocation.QGeoRouteSegment.setDistance": ('float',),
- "PySide2.QtLocation.QGeoRouteSegment.setManeuver": ('PySide2.QtLocation.QGeoManeuver',),
- "PySide2.QtLocation.QGeoRouteSegment.setNextRouteSegment": ('PySide2.QtLocation.QGeoRouteSegment',),
- "PySide2.QtLocation.QGeoRouteSegment.setPath": ('typing.Sequence[PySide2.QtPositioning.QGeoCoordinate]',),
- "PySide2.QtLocation.QGeoRouteSegment.setTravelTime": ('int',),
- "PySide2.QtLocation.QGeoRouteSegment.travelTime": (),
-# class PySide2.QtLocation.QGeoRoutingManager:
- "PySide2.QtLocation.QGeoRoutingManager.calculateRoute": ('PySide2.QtLocation.QGeoRouteRequest',),
- "PySide2.QtLocation.QGeoRoutingManager.locale": (),
- "PySide2.QtLocation.QGeoRoutingManager.managerName": (),
- "PySide2.QtLocation.QGeoRoutingManager.managerVersion": (),
- "PySide2.QtLocation.QGeoRoutingManager.measurementSystem": (),
- "PySide2.QtLocation.QGeoRoutingManager.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtLocation.QGeoRoutingManager.setMeasurementSystem": ('PySide2.QtCore.QLocale.MeasurementSystem',),
- "PySide2.QtLocation.QGeoRoutingManager.supportedFeatureTypes": (),
- "PySide2.QtLocation.QGeoRoutingManager.supportedFeatureWeights": (),
- "PySide2.QtLocation.QGeoRoutingManager.supportedManeuverDetails": (),
- "PySide2.QtLocation.QGeoRoutingManager.supportedRouteOptimizations": (),
- "PySide2.QtLocation.QGeoRoutingManager.supportedSegmentDetails": (),
- "PySide2.QtLocation.QGeoRoutingManager.supportedTravelModes": (),
- "PySide2.QtLocation.QGeoRoutingManager.updateRoute": ('PySide2.QtLocation.QGeoRoute', 'PySide2.QtPositioning.QGeoCoordinate'),
-# class PySide2.QtLocation.QGeoRoutingManagerEngine:
- "PySide2.QtLocation.QGeoRoutingManagerEngine.__init__": ('typing.Dict[str, typing.Any]', 'PySide2.QtCore.QObject'),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.calculateRoute": ('PySide2.QtLocation.QGeoRouteRequest',),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.locale": (),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.managerName": (),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.managerVersion": (),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.measurementSystem": (),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.setMeasurementSystem": ('PySide2.QtCore.QLocale.MeasurementSystem',),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.setSupportedFeatureTypes": ('PySide2.QtLocation.QGeoRouteRequest.FeatureTypes',),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.setSupportedFeatureWeights": ('PySide2.QtLocation.QGeoRouteRequest.FeatureWeights',),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.setSupportedManeuverDetails": ('PySide2.QtLocation.QGeoRouteRequest.ManeuverDetails',),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.setSupportedRouteOptimizations": ('PySide2.QtLocation.QGeoRouteRequest.RouteOptimizations',),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.setSupportedSegmentDetails": ('PySide2.QtLocation.QGeoRouteRequest.SegmentDetails',),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.setSupportedTravelModes": ('PySide2.QtLocation.QGeoRouteRequest.TravelModes',),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.supportedFeatureTypes": (),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.supportedFeatureWeights": (),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.supportedManeuverDetails": (),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.supportedRouteOptimizations": (),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.supportedSegmentDetails": (),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.supportedTravelModes": (),
- "PySide2.QtLocation.QGeoRoutingManagerEngine.updateRoute": ('PySide2.QtLocation.QGeoRoute', 'PySide2.QtPositioning.QGeoCoordinate'),
-# class PySide2.QtLocation.QGeoServiceProvider:
-# class PySide2.QtLocation.QGeoServiceProvider.Error:
-# class PySide2.QtLocation.QGeoServiceProvider.GeocodingFeature:
-# class PySide2.QtLocation.QGeoServiceProvider.GeocodingFeatures:
-# class PySide2.QtLocation.QGeoServiceProvider.MappingFeature:
-# class PySide2.QtLocation.QGeoServiceProvider.MappingFeatures:
-# class PySide2.QtLocation.QGeoServiceProvider.NavigationFeature:
-# class PySide2.QtLocation.QGeoServiceProvider.NavigationFeatures:
-# class PySide2.QtLocation.QGeoServiceProvider.PlacesFeature:
-# class PySide2.QtLocation.QGeoServiceProvider.PlacesFeatures:
-# class PySide2.QtLocation.QGeoServiceProvider.RoutingFeature:
-# class PySide2.QtLocation.QGeoServiceProvider.RoutingFeatures:
- "PySide2.QtLocation.QGeoServiceProvider.__init__": ('str', 'typing.Dict[str, typing.Any]', 'bool'),
- "PySide2.QtLocation.QGeoServiceProvider.availableServiceProviders": (),
- "PySide2.QtLocation.QGeoServiceProvider.error": (),
- "PySide2.QtLocation.QGeoServiceProvider.errorString": (),
- "PySide2.QtLocation.QGeoServiceProvider.geocodingError": (),
- "PySide2.QtLocation.QGeoServiceProvider.geocodingErrorString": (),
- "PySide2.QtLocation.QGeoServiceProvider.geocodingFeatures": (),
- "PySide2.QtLocation.QGeoServiceProvider.geocodingManager": (),
- "PySide2.QtLocation.QGeoServiceProvider.mappingError": (),
- "PySide2.QtLocation.QGeoServiceProvider.mappingErrorString": (),
- "PySide2.QtLocation.QGeoServiceProvider.mappingFeatures": (),
- "PySide2.QtLocation.QGeoServiceProvider.navigationError": (),
- "PySide2.QtLocation.QGeoServiceProvider.navigationErrorString": (),
- "PySide2.QtLocation.QGeoServiceProvider.navigationFeatures": (),
- "PySide2.QtLocation.QGeoServiceProvider.placeManager": (),
- "PySide2.QtLocation.QGeoServiceProvider.placesError": (),
- "PySide2.QtLocation.QGeoServiceProvider.placesErrorString": (),
- "PySide2.QtLocation.QGeoServiceProvider.placesFeatures": (),
- "PySide2.QtLocation.QGeoServiceProvider.routingError": (),
- "PySide2.QtLocation.QGeoServiceProvider.routingErrorString": (),
- "PySide2.QtLocation.QGeoServiceProvider.routingFeatures": (),
- "PySide2.QtLocation.QGeoServiceProvider.routingManager": (),
- "PySide2.QtLocation.QGeoServiceProvider.setAllowExperimental": ('bool',),
- "PySide2.QtLocation.QGeoServiceProvider.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtLocation.QGeoServiceProvider.setParameters": ('typing.Dict[str, typing.Any]',),
-# class PySide2.QtLocation.QGeoServiceProviderFactory:
- "PySide2.QtLocation.QGeoServiceProviderFactory.__init__": (),
- "PySide2.QtLocation.QGeoServiceProviderFactory.createGeocodingManagerEngine": ('typing.Dict[str, typing.Any]', 'PySide2.QtLocation.QGeoServiceProvider.Error'),
- "PySide2.QtLocation.QGeoServiceProviderFactory.createPlaceManagerEngine": ('typing.Dict[str, typing.Any]', 'PySide2.QtLocation.QGeoServiceProvider.Error'),
- "PySide2.QtLocation.QGeoServiceProviderFactory.createRoutingManagerEngine": ('typing.Dict[str, typing.Any]', 'PySide2.QtLocation.QGeoServiceProvider.Error'),
-# class PySide2.QtLocation.QGeoServiceProviderFactoryV2:
- "PySide2.QtLocation.QGeoServiceProviderFactoryV2.__init__": (),
-# class PySide2.QtLocation.QPlace:
- "PySide2.QtLocation.QPlace.__init__": [(), ('PySide2.QtLocation.QPlace',)],
- "PySide2.QtLocation.QPlace.__copy__": (),
- "PySide2.QtLocation.QPlace.appendContactDetail": ('str', 'PySide2.QtLocation.QPlaceContactDetail'),
- "PySide2.QtLocation.QPlace.attribution": (),
- "PySide2.QtLocation.QPlace.categories": (),
- "PySide2.QtLocation.QPlace.contactDetails": ('str',),
- "PySide2.QtLocation.QPlace.contactTypes": (),
- "PySide2.QtLocation.QPlace.content": ('PySide2.QtLocation.QPlaceContent.Type',),
- "PySide2.QtLocation.QPlace.detailsFetched": (),
- "PySide2.QtLocation.QPlace.extendedAttribute": ('str',),
- "PySide2.QtLocation.QPlace.extendedAttributeTypes": (),
- "PySide2.QtLocation.QPlace.icon": (),
- "PySide2.QtLocation.QPlace.insertContent": ('PySide2.QtLocation.QPlaceContent.Type', 'typing.Dict[int, PySide2.QtLocation.QPlaceContent]'),
- "PySide2.QtLocation.QPlace.isEmpty": (),
- "PySide2.QtLocation.QPlace.location": (),
- "PySide2.QtLocation.QPlace.name": (),
- "PySide2.QtLocation.QPlace.placeId": (),
- "PySide2.QtLocation.QPlace.primaryEmail": (),
- "PySide2.QtLocation.QPlace.primaryFax": (),
- "PySide2.QtLocation.QPlace.primaryPhone": (),
- "PySide2.QtLocation.QPlace.primaryWebsite": (),
- "PySide2.QtLocation.QPlace.ratings": (),
- "PySide2.QtLocation.QPlace.removeContactDetails": ('str',),
- "PySide2.QtLocation.QPlace.removeExtendedAttribute": ('str',),
- "PySide2.QtLocation.QPlace.setAttribution": ('str',),
- "PySide2.QtLocation.QPlace.setCategories": ('typing.Sequence[PySide2.QtLocation.QPlaceCategory]',),
- "PySide2.QtLocation.QPlace.setCategory": ('PySide2.QtLocation.QPlaceCategory',),
- "PySide2.QtLocation.QPlace.setContactDetails": ('str', 'typing.Sequence[PySide2.QtLocation.QPlaceContactDetail]'),
- "PySide2.QtLocation.QPlace.setContent": ('PySide2.QtLocation.QPlaceContent.Type', 'typing.Dict[int, PySide2.QtLocation.QPlaceContent]'),
- "PySide2.QtLocation.QPlace.setDetailsFetched": ('bool',),
- "PySide2.QtLocation.QPlace.setExtendedAttribute": ('str', 'PySide2.QtLocation.QPlaceAttribute'),
- "PySide2.QtLocation.QPlace.setIcon": ('PySide2.QtLocation.QPlaceIcon',),
- "PySide2.QtLocation.QPlace.setLocation": ('PySide2.QtPositioning.QGeoLocation',),
- "PySide2.QtLocation.QPlace.setName": ('str',),
- "PySide2.QtLocation.QPlace.setPlaceId": ('str',),
- "PySide2.QtLocation.QPlace.setRatings": ('PySide2.QtLocation.QPlaceRatings',),
- "PySide2.QtLocation.QPlace.setSupplier": ('PySide2.QtLocation.QPlaceSupplier',),
- "PySide2.QtLocation.QPlace.setTotalContentCount": ('PySide2.QtLocation.QPlaceContent.Type', 'int'),
- "PySide2.QtLocation.QPlace.supplier": (),
- "PySide2.QtLocation.QPlace.totalContentCount": ('PySide2.QtLocation.QPlaceContent.Type',),
-# class PySide2.QtLocation.QPlaceAttribute:
- "PySide2.QtLocation.QPlaceAttribute.__init__": [(), ('PySide2.QtLocation.QPlaceAttribute',)],
- "PySide2.QtLocation.QPlaceAttribute.__copy__": (),
- "PySide2.QtLocation.QPlaceAttribute.isEmpty": (),
- "PySide2.QtLocation.QPlaceAttribute.label": (),
- "PySide2.QtLocation.QPlaceAttribute.setLabel": ('str',),
- "PySide2.QtLocation.QPlaceAttribute.setText": ('str',),
- "PySide2.QtLocation.QPlaceAttribute.text": (),
-# class PySide2.QtLocation.QPlaceCategory:
- "PySide2.QtLocation.QPlaceCategory.__init__": [(), ('PySide2.QtLocation.QPlaceCategory',)],
- "PySide2.QtLocation.QPlaceCategory.__copy__": (),
- "PySide2.QtLocation.QPlaceCategory.categoryId": (),
- "PySide2.QtLocation.QPlaceCategory.icon": (),
- "PySide2.QtLocation.QPlaceCategory.isEmpty": (),
- "PySide2.QtLocation.QPlaceCategory.name": (),
- "PySide2.QtLocation.QPlaceCategory.setCategoryId": ('str',),
- "PySide2.QtLocation.QPlaceCategory.setIcon": ('PySide2.QtLocation.QPlaceIcon',),
- "PySide2.QtLocation.QPlaceCategory.setName": ('str',),
-# class PySide2.QtLocation.QPlaceContactDetail:
- "PySide2.QtLocation.QPlaceContactDetail.__init__": [(), ('PySide2.QtLocation.QPlaceContactDetail',)],
- "PySide2.QtLocation.QPlaceContactDetail.__copy__": (),
- "PySide2.QtLocation.QPlaceContactDetail.clear": (),
- "PySide2.QtLocation.QPlaceContactDetail.label": (),
- "PySide2.QtLocation.QPlaceContactDetail.setLabel": ('str',),
- "PySide2.QtLocation.QPlaceContactDetail.setValue": ('str',),
- "PySide2.QtLocation.QPlaceContactDetail.value": (),
-# class PySide2.QtLocation.QPlaceContent:
-# class PySide2.QtLocation.QPlaceContent.Type:
- "PySide2.QtLocation.QPlaceContent.__init__": [(), ('PySide2.QtLocation.QPlaceContent',)],
- "PySide2.QtLocation.QPlaceContent.__copy__": (),
- "PySide2.QtLocation.QPlaceContent.attribution": (),
- "PySide2.QtLocation.QPlaceContent.setAttribution": ('str',),
- "PySide2.QtLocation.QPlaceContent.setSupplier": ('PySide2.QtLocation.QPlaceSupplier',),
- "PySide2.QtLocation.QPlaceContent.setUser": ('PySide2.QtLocation.QPlaceUser',),
- "PySide2.QtLocation.QPlaceContent.supplier": (),
- "PySide2.QtLocation.QPlaceContent.type": (),
- "PySide2.QtLocation.QPlaceContent.user": (),
-# class PySide2.QtLocation.QPlaceContentReply:
- "PySide2.QtLocation.QPlaceContentReply.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtLocation.QPlaceContentReply.content": (),
- "PySide2.QtLocation.QPlaceContentReply.nextPageRequest": (),
- "PySide2.QtLocation.QPlaceContentReply.previousPageRequest": (),
- "PySide2.QtLocation.QPlaceContentReply.request": (),
- "PySide2.QtLocation.QPlaceContentReply.setContent": ('typing.Dict[int, PySide2.QtLocation.QPlaceContent]',),
- "PySide2.QtLocation.QPlaceContentReply.setNextPageRequest": ('PySide2.QtLocation.QPlaceContentRequest',),
- "PySide2.QtLocation.QPlaceContentReply.setPreviousPageRequest": ('PySide2.QtLocation.QPlaceContentRequest',),
- "PySide2.QtLocation.QPlaceContentReply.setRequest": ('PySide2.QtLocation.QPlaceContentRequest',),
- "PySide2.QtLocation.QPlaceContentReply.setTotalCount": ('int',),
- "PySide2.QtLocation.QPlaceContentReply.totalCount": (),
- "PySide2.QtLocation.QPlaceContentReply.type": (),
-# class PySide2.QtLocation.QPlaceContentRequest:
- "PySide2.QtLocation.QPlaceContentRequest.__init__": [(), ('PySide2.QtLocation.QPlaceContentRequest',)],
- "PySide2.QtLocation.QPlaceContentRequest.__copy__": (),
- "PySide2.QtLocation.QPlaceContentRequest.clear": (),
- "PySide2.QtLocation.QPlaceContentRequest.contentContext": (),
- "PySide2.QtLocation.QPlaceContentRequest.contentType": (),
- "PySide2.QtLocation.QPlaceContentRequest.limit": (),
- "PySide2.QtLocation.QPlaceContentRequest.placeId": (),
- "PySide2.QtLocation.QPlaceContentRequest.setContentContext": ('typing.Any',),
- "PySide2.QtLocation.QPlaceContentRequest.setContentType": ('PySide2.QtLocation.QPlaceContent.Type',),
- "PySide2.QtLocation.QPlaceContentRequest.setLimit": ('int',),
- "PySide2.QtLocation.QPlaceContentRequest.setPlaceId": ('str',),
-# class PySide2.QtLocation.QPlaceDetailsReply:
- "PySide2.QtLocation.QPlaceDetailsReply.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtLocation.QPlaceDetailsReply.place": (),
- "PySide2.QtLocation.QPlaceDetailsReply.setPlace": ('PySide2.QtLocation.QPlace',),
- "PySide2.QtLocation.QPlaceDetailsReply.type": (),
-# class PySide2.QtLocation.QPlaceEditorial:
- "PySide2.QtLocation.QPlaceEditorial.__init__": [(), ('PySide2.QtLocation.QPlaceContent',)],
- "PySide2.QtLocation.QPlaceEditorial.language": (),
- "PySide2.QtLocation.QPlaceEditorial.setLanguage": ('str',),
- "PySide2.QtLocation.QPlaceEditorial.setText": ('str',),
- "PySide2.QtLocation.QPlaceEditorial.setTitle": ('str',),
- "PySide2.QtLocation.QPlaceEditorial.text": (),
- "PySide2.QtLocation.QPlaceEditorial.title": (),
-# class PySide2.QtLocation.QPlaceIcon:
- "PySide2.QtLocation.QPlaceIcon.__init__": [(), ('PySide2.QtLocation.QPlaceIcon',)],
- "PySide2.QtLocation.QPlaceIcon.__copy__": (),
- "PySide2.QtLocation.QPlaceIcon.isEmpty": (),
- "PySide2.QtLocation.QPlaceIcon.manager": (),
- "PySide2.QtLocation.QPlaceIcon.parameters": (),
- "PySide2.QtLocation.QPlaceIcon.setManager": ('PySide2.QtLocation.QPlaceManager',),
- "PySide2.QtLocation.QPlaceIcon.setParameters": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtLocation.QPlaceIcon.url": ('PySide2.QtCore.QSize',),
-# class PySide2.QtLocation.QPlaceIdReply:
-# class PySide2.QtLocation.QPlaceIdReply.OperationType:
- "PySide2.QtLocation.QPlaceIdReply.__init__": ('PySide2.QtLocation.QPlaceIdReply.OperationType', 'PySide2.QtCore.QObject'),
- "PySide2.QtLocation.QPlaceIdReply.id": (),
- "PySide2.QtLocation.QPlaceIdReply.operationType": (),
- "PySide2.QtLocation.QPlaceIdReply.setId": ('str',),
- "PySide2.QtLocation.QPlaceIdReply.type": (),
-# class PySide2.QtLocation.QPlaceImage:
- "PySide2.QtLocation.QPlaceImage.__init__": [(), ('PySide2.QtLocation.QPlaceContent',)],
- "PySide2.QtLocation.QPlaceImage.imageId": (),
- "PySide2.QtLocation.QPlaceImage.mimeType": (),
- "PySide2.QtLocation.QPlaceImage.setImageId": ('str',),
- "PySide2.QtLocation.QPlaceImage.setMimeType": ('str',),
- "PySide2.QtLocation.QPlaceImage.setUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtLocation.QPlaceImage.url": (),
-# class PySide2.QtLocation.QPlaceManager:
- "PySide2.QtLocation.QPlaceManager.category": ('str',),
- "PySide2.QtLocation.QPlaceManager.childCategories": ('str',),
- "PySide2.QtLocation.QPlaceManager.childCategoryIds": ('str',),
- "PySide2.QtLocation.QPlaceManager.compatiblePlace": ('PySide2.QtLocation.QPlace',),
- "PySide2.QtLocation.QPlaceManager.getPlaceContent": ('PySide2.QtLocation.QPlaceContentRequest',),
- "PySide2.QtLocation.QPlaceManager.getPlaceDetails": ('str',),
- "PySide2.QtLocation.QPlaceManager.initializeCategories": (),
- "PySide2.QtLocation.QPlaceManager.locales": (),
- "PySide2.QtLocation.QPlaceManager.managerName": (),
- "PySide2.QtLocation.QPlaceManager.managerVersion": (),
- "PySide2.QtLocation.QPlaceManager.matchingPlaces": ('PySide2.QtLocation.QPlaceMatchRequest',),
- "PySide2.QtLocation.QPlaceManager.parentCategoryId": ('str',),
- "PySide2.QtLocation.QPlaceManager.removeCategory": ('str',),
- "PySide2.QtLocation.QPlaceManager.removePlace": ('str',),
- "PySide2.QtLocation.QPlaceManager.saveCategory": ('PySide2.QtLocation.QPlaceCategory', 'str'),
- "PySide2.QtLocation.QPlaceManager.savePlace": ('PySide2.QtLocation.QPlace',),
- "PySide2.QtLocation.QPlaceManager.search": ('PySide2.QtLocation.QPlaceSearchRequest',),
- "PySide2.QtLocation.QPlaceManager.searchSuggestions": ('PySide2.QtLocation.QPlaceSearchRequest',),
- "PySide2.QtLocation.QPlaceManager.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtLocation.QPlaceManager.setLocales": ('typing.Sequence[PySide2.QtCore.QLocale]',),
-# class PySide2.QtLocation.QPlaceManagerEngine:
- "PySide2.QtLocation.QPlaceManagerEngine.__init__": ('typing.Dict[str, typing.Any]', 'PySide2.QtCore.QObject'),
- "PySide2.QtLocation.QPlaceManagerEngine.category": ('str',),
- "PySide2.QtLocation.QPlaceManagerEngine.childCategories": ('str',),
- "PySide2.QtLocation.QPlaceManagerEngine.childCategoryIds": ('str',),
- "PySide2.QtLocation.QPlaceManagerEngine.compatiblePlace": ('PySide2.QtLocation.QPlace',),
- "PySide2.QtLocation.QPlaceManagerEngine.constructIconUrl": ('PySide2.QtLocation.QPlaceIcon', 'PySide2.QtCore.QSize'),
- "PySide2.QtLocation.QPlaceManagerEngine.getPlaceContent": ('PySide2.QtLocation.QPlaceContentRequest',),
- "PySide2.QtLocation.QPlaceManagerEngine.getPlaceDetails": ('str',),
- "PySide2.QtLocation.QPlaceManagerEngine.initializeCategories": (),
- "PySide2.QtLocation.QPlaceManagerEngine.locales": (),
- "PySide2.QtLocation.QPlaceManagerEngine.manager": (),
- "PySide2.QtLocation.QPlaceManagerEngine.managerName": (),
- "PySide2.QtLocation.QPlaceManagerEngine.managerVersion": (),
- "PySide2.QtLocation.QPlaceManagerEngine.matchingPlaces": ('PySide2.QtLocation.QPlaceMatchRequest',),
- "PySide2.QtLocation.QPlaceManagerEngine.parentCategoryId": ('str',),
- "PySide2.QtLocation.QPlaceManagerEngine.removeCategory": ('str',),
- "PySide2.QtLocation.QPlaceManagerEngine.removePlace": ('str',),
- "PySide2.QtLocation.QPlaceManagerEngine.saveCategory": ('PySide2.QtLocation.QPlaceCategory', 'str'),
- "PySide2.QtLocation.QPlaceManagerEngine.savePlace": ('PySide2.QtLocation.QPlace',),
- "PySide2.QtLocation.QPlaceManagerEngine.search": ('PySide2.QtLocation.QPlaceSearchRequest',),
- "PySide2.QtLocation.QPlaceManagerEngine.searchSuggestions": ('PySide2.QtLocation.QPlaceSearchRequest',),
- "PySide2.QtLocation.QPlaceManagerEngine.setLocales": ('typing.Sequence[PySide2.QtCore.QLocale]',),
-# class PySide2.QtLocation.QPlaceMatchReply:
- "PySide2.QtLocation.QPlaceMatchReply.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtLocation.QPlaceMatchReply.places": (),
- "PySide2.QtLocation.QPlaceMatchReply.request": (),
- "PySide2.QtLocation.QPlaceMatchReply.setPlaces": ('typing.Sequence[PySide2.QtLocation.QPlace]',),
- "PySide2.QtLocation.QPlaceMatchReply.setRequest": ('PySide2.QtLocation.QPlaceMatchRequest',),
- "PySide2.QtLocation.QPlaceMatchReply.type": (),
-# class PySide2.QtLocation.QPlaceMatchRequest:
- "PySide2.QtLocation.QPlaceMatchRequest.__init__": [(), ('PySide2.QtLocation.QPlaceMatchRequest',)],
- "PySide2.QtLocation.QPlaceMatchRequest.__copy__": (),
- "PySide2.QtLocation.QPlaceMatchRequest.clear": (),
- "PySide2.QtLocation.QPlaceMatchRequest.parameters": (),
- "PySide2.QtLocation.QPlaceMatchRequest.places": (),
- "PySide2.QtLocation.QPlaceMatchRequest.setParameters": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtLocation.QPlaceMatchRequest.setPlaces": ('typing.Sequence[PySide2.QtLocation.QPlace]',),
- "PySide2.QtLocation.QPlaceMatchRequest.setResults": ('typing.Sequence[PySide2.QtLocation.QPlaceSearchResult]',),
-# class PySide2.QtLocation.QPlaceProposedSearchResult:
- "PySide2.QtLocation.QPlaceProposedSearchResult.__init__": [(), ('PySide2.QtLocation.QPlaceSearchResult',)],
- "PySide2.QtLocation.QPlaceProposedSearchResult.searchRequest": (),
- "PySide2.QtLocation.QPlaceProposedSearchResult.setSearchRequest": ('PySide2.QtLocation.QPlaceSearchRequest',),
-# class PySide2.QtLocation.QPlaceRatings:
- "PySide2.QtLocation.QPlaceRatings.__init__": [(), ('PySide2.QtLocation.QPlaceRatings',)],
- "PySide2.QtLocation.QPlaceRatings.__copy__": (),
- "PySide2.QtLocation.QPlaceRatings.average": (),
- "PySide2.QtLocation.QPlaceRatings.count": (),
- "PySide2.QtLocation.QPlaceRatings.isEmpty": (),
- "PySide2.QtLocation.QPlaceRatings.maximum": (),
- "PySide2.QtLocation.QPlaceRatings.setAverage": ('float',),
- "PySide2.QtLocation.QPlaceRatings.setCount": ('int',),
- "PySide2.QtLocation.QPlaceRatings.setMaximum": ('float',),
-# class PySide2.QtLocation.QPlaceReply:
-# class PySide2.QtLocation.QPlaceReply.Error:
-# class PySide2.QtLocation.QPlaceReply.Type:
- "PySide2.QtLocation.QPlaceReply.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtLocation.QPlaceReply.abort": (),
- "PySide2.QtLocation.QPlaceReply.error": (),
- "PySide2.QtLocation.QPlaceReply.errorString": (),
- "PySide2.QtLocation.QPlaceReply.isFinished": (),
- "PySide2.QtLocation.QPlaceReply.setError": ('PySide2.QtLocation.QPlaceReply.Error', 'str'),
- "PySide2.QtLocation.QPlaceReply.setFinished": ('bool',),
- "PySide2.QtLocation.QPlaceReply.type": (),
-# class PySide2.QtLocation.QPlaceResult:
- "PySide2.QtLocation.QPlaceResult.__init__": [(), ('PySide2.QtLocation.QPlaceSearchResult',)],
- "PySide2.QtLocation.QPlaceResult.distance": (),
- "PySide2.QtLocation.QPlaceResult.isSponsored": (),
- "PySide2.QtLocation.QPlaceResult.place": (),
- "PySide2.QtLocation.QPlaceResult.setDistance": ('float',),
- "PySide2.QtLocation.QPlaceResult.setPlace": ('PySide2.QtLocation.QPlace',),
- "PySide2.QtLocation.QPlaceResult.setSponsored": ('bool',),
-# class PySide2.QtLocation.QPlaceReview:
- "PySide2.QtLocation.QPlaceReview.__init__": [(), ('PySide2.QtLocation.QPlaceContent',)],
- "PySide2.QtLocation.QPlaceReview.dateTime": (),
- "PySide2.QtLocation.QPlaceReview.language": (),
- "PySide2.QtLocation.QPlaceReview.rating": (),
- "PySide2.QtLocation.QPlaceReview.reviewId": (),
- "PySide2.QtLocation.QPlaceReview.setDateTime": ('PySide2.QtCore.QDateTime',),
- "PySide2.QtLocation.QPlaceReview.setLanguage": ('str',),
- "PySide2.QtLocation.QPlaceReview.setRating": ('float',),
- "PySide2.QtLocation.QPlaceReview.setReviewId": ('str',),
- "PySide2.QtLocation.QPlaceReview.setText": ('str',),
- "PySide2.QtLocation.QPlaceReview.setTitle": ('str',),
- "PySide2.QtLocation.QPlaceReview.text": (),
- "PySide2.QtLocation.QPlaceReview.title": (),
-# class PySide2.QtLocation.QPlaceSearchReply:
- "PySide2.QtLocation.QPlaceSearchReply.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtLocation.QPlaceSearchReply.nextPageRequest": (),
- "PySide2.QtLocation.QPlaceSearchReply.previousPageRequest": (),
- "PySide2.QtLocation.QPlaceSearchReply.request": (),
- "PySide2.QtLocation.QPlaceSearchReply.results": (),
- "PySide2.QtLocation.QPlaceSearchReply.setNextPageRequest": ('PySide2.QtLocation.QPlaceSearchRequest',),
- "PySide2.QtLocation.QPlaceSearchReply.setPreviousPageRequest": ('PySide2.QtLocation.QPlaceSearchRequest',),
- "PySide2.QtLocation.QPlaceSearchReply.setRequest": ('PySide2.QtLocation.QPlaceSearchRequest',),
- "PySide2.QtLocation.QPlaceSearchReply.setResults": ('typing.Sequence[PySide2.QtLocation.QPlaceSearchResult]',),
- "PySide2.QtLocation.QPlaceSearchReply.type": (),
-# class PySide2.QtLocation.QPlaceSearchRequest:
-# class PySide2.QtLocation.QPlaceSearchRequest.RelevanceHint:
- "PySide2.QtLocation.QPlaceSearchRequest.__init__": [(), ('PySide2.QtLocation.QPlaceSearchRequest',)],
- "PySide2.QtLocation.QPlaceSearchRequest.categories": (),
- "PySide2.QtLocation.QPlaceSearchRequest.clear": (),
- "PySide2.QtLocation.QPlaceSearchRequest.limit": (),
- "PySide2.QtLocation.QPlaceSearchRequest.recommendationId": (),
- "PySide2.QtLocation.QPlaceSearchRequest.relevanceHint": (),
- "PySide2.QtLocation.QPlaceSearchRequest.searchArea": (),
- "PySide2.QtLocation.QPlaceSearchRequest.searchContext": (),
- "PySide2.QtLocation.QPlaceSearchRequest.searchTerm": (),
- "PySide2.QtLocation.QPlaceSearchRequest.setCategories": ('typing.Sequence[PySide2.QtLocation.QPlaceCategory]',),
- "PySide2.QtLocation.QPlaceSearchRequest.setCategory": ('PySide2.QtLocation.QPlaceCategory',),
- "PySide2.QtLocation.QPlaceSearchRequest.setLimit": ('int',),
- "PySide2.QtLocation.QPlaceSearchRequest.setRecommendationId": ('str',),
- "PySide2.QtLocation.QPlaceSearchRequest.setRelevanceHint": ('PySide2.QtLocation.QPlaceSearchRequest.RelevanceHint',),
- "PySide2.QtLocation.QPlaceSearchRequest.setSearchArea": ('PySide2.QtPositioning.QGeoShape',),
- "PySide2.QtLocation.QPlaceSearchRequest.setSearchContext": ('typing.Any',),
- "PySide2.QtLocation.QPlaceSearchRequest.setSearchTerm": ('str',),
-# class PySide2.QtLocation.QPlaceSearchResult:
-# class PySide2.QtLocation.QPlaceSearchResult.SearchResultType:
- "PySide2.QtLocation.QPlaceSearchResult.__init__": [(), ('PySide2.QtLocation.QPlaceSearchResult',)],
- "PySide2.QtLocation.QPlaceSearchResult.icon": (),
- "PySide2.QtLocation.QPlaceSearchResult.setIcon": ('PySide2.QtLocation.QPlaceIcon',),
- "PySide2.QtLocation.QPlaceSearchResult.setTitle": ('str',),
- "PySide2.QtLocation.QPlaceSearchResult.title": (),
- "PySide2.QtLocation.QPlaceSearchResult.type": (),
-# class PySide2.QtLocation.QPlaceSearchSuggestionReply:
- "PySide2.QtLocation.QPlaceSearchSuggestionReply.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtLocation.QPlaceSearchSuggestionReply.setSuggestions": ('typing.Sequence[str]',),
- "PySide2.QtLocation.QPlaceSearchSuggestionReply.suggestions": (),
- "PySide2.QtLocation.QPlaceSearchSuggestionReply.type": (),
-# class PySide2.QtLocation.QPlaceSupplier:
- "PySide2.QtLocation.QPlaceSupplier.__init__": [(), ('PySide2.QtLocation.QPlaceSupplier',)],
- "PySide2.QtLocation.QPlaceSupplier.__copy__": (),
- "PySide2.QtLocation.QPlaceSupplier.icon": (),
- "PySide2.QtLocation.QPlaceSupplier.isEmpty": (),
- "PySide2.QtLocation.QPlaceSupplier.name": (),
- "PySide2.QtLocation.QPlaceSupplier.setIcon": ('PySide2.QtLocation.QPlaceIcon',),
- "PySide2.QtLocation.QPlaceSupplier.setName": ('str',),
- "PySide2.QtLocation.QPlaceSupplier.setSupplierId": ('str',),
- "PySide2.QtLocation.QPlaceSupplier.setUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtLocation.QPlaceSupplier.supplierId": (),
- "PySide2.QtLocation.QPlaceSupplier.url": (),
-# class PySide2.QtLocation.QPlaceUser:
- "PySide2.QtLocation.QPlaceUser.__init__": [(), ('PySide2.QtLocation.QPlaceUser',)],
- "PySide2.QtLocation.QPlaceUser.__copy__": (),
- "PySide2.QtLocation.QPlaceUser.name": (),
- "PySide2.QtLocation.QPlaceUser.setName": ('str',),
- "PySide2.QtLocation.QPlaceUser.setUserId": ('str',),
- "PySide2.QtLocation.QPlaceUser.userId": (),
- }) if "PySide2.QtLocation" in sys.modules else None
-# Module PySide2.QtQml
-sig_dict.update({
-# class PySide2.QtQml.ListProperty:
- "PySide2.QtQml.ListProperty.__init__": ('type', 'typing.Callable', 'typing.Callable', 'typing.Callable', 'typing.Callable'),
-# class PySide2.QtQml.QJSEngine:
-# class PySide2.QtQml.QJSEngine.Extension:
-# class PySide2.QtQml.QJSEngine.Extensions:
- "PySide2.QtQml.QJSEngine.__init__": [(), ('PySide2.QtCore.QObject',)],
- "PySide2.QtQml.QJSEngine.collectGarbage": (),
- "PySide2.QtQml.QJSEngine.evaluate": ('str', 'str', 'int'),
- "PySide2.QtQml.QJSEngine.globalObject": (),
- "PySide2.QtQml.QJSEngine.importModule": ('str',),
- "PySide2.QtQml.QJSEngine.installExtensions": ('PySide2.QtQml.QJSEngine.Extensions', 'PySide2.QtQml.QJSValue'),
- "PySide2.QtQml.QJSEngine.installTranslatorFunctions": ('PySide2.QtQml.QJSValue',),
- "PySide2.QtQml.QJSEngine.isInterrupted": (),
- "PySide2.QtQml.QJSEngine.newArray": ('int',),
- "PySide2.QtQml.QJSEngine.newErrorObject": ('PySide2.QtQml.QJSValue.ErrorType', 'str'),
- "PySide2.QtQml.QJSEngine.newObject": (),
- "PySide2.QtQml.QJSEngine.newQMetaObject": ('PySide2.QtCore.QMetaObject',),
- "PySide2.QtQml.QJSEngine.newQObject": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QJSEngine.setInterrupted": ('bool',),
- "PySide2.QtQml.QJSEngine.throwError": [('PySide2.QtQml.QJSValue.ErrorType', 'str'), ('str',)],
- "PySide2.QtQml.QJSEngine.toScriptValue": ('typing.Any',),
-# class PySide2.QtQml.QJSValue:
-# class PySide2.QtQml.QJSValue.ErrorType:
-# class PySide2.QtQml.QJSValue.SpecialValue:
- "PySide2.QtQml.QJSValue.__init__": [('PySide2.QtQml.QJSValue',), ('PySide2.QtQml.QJSValue.SpecialValue',), ('bool',), ('float',), ('int',), ('str',)],
- "PySide2.QtQml.QJSValue.__copy__": (),
- "PySide2.QtQml.QJSValue.call": ('typing.Sequence[PySide2.QtQml.QJSValue]',),
- "PySide2.QtQml.QJSValue.callAsConstructor": ('typing.Sequence[PySide2.QtQml.QJSValue]',),
- "PySide2.QtQml.QJSValue.callWithInstance": ('PySide2.QtQml.QJSValue', 'typing.Sequence[PySide2.QtQml.QJSValue]'),
- "PySide2.QtQml.QJSValue.deleteProperty": ('str',),
- "PySide2.QtQml.QJSValue.engine": (),
- "PySide2.QtQml.QJSValue.equals": ('PySide2.QtQml.QJSValue',),
- "PySide2.QtQml.QJSValue.errorType": (),
- "PySide2.QtQml.QJSValue.hasOwnProperty": ('str',),
- "PySide2.QtQml.QJSValue.hasProperty": ('str',),
- "PySide2.QtQml.QJSValue.isArray": (),
- "PySide2.QtQml.QJSValue.isBool": (),
- "PySide2.QtQml.QJSValue.isCallable": (),
- "PySide2.QtQml.QJSValue.isDate": (),
- "PySide2.QtQml.QJSValue.isError": (),
- "PySide2.QtQml.QJSValue.isNull": (),
- "PySide2.QtQml.QJSValue.isNumber": (),
- "PySide2.QtQml.QJSValue.isObject": (),
- "PySide2.QtQml.QJSValue.isQMetaObject": (),
- "PySide2.QtQml.QJSValue.isQObject": (),
- "PySide2.QtQml.QJSValue.isRegExp": (),
- "PySide2.QtQml.QJSValue.isString": (),
- "PySide2.QtQml.QJSValue.isUndefined": (),
- "PySide2.QtQml.QJSValue.isVariant": (),
- "PySide2.QtQml.QJSValue.property": [('int',), ('str',)],
- "PySide2.QtQml.QJSValue.prototype": (),
- "PySide2.QtQml.QJSValue.setProperty": [('int', 'PySide2.QtQml.QJSValue'), ('str', 'PySide2.QtQml.QJSValue')],
- "PySide2.QtQml.QJSValue.setPrototype": ('PySide2.QtQml.QJSValue',),
- "PySide2.QtQml.QJSValue.strictlyEquals": ('PySide2.QtQml.QJSValue',),
- "PySide2.QtQml.QJSValue.toBool": (),
- "PySide2.QtQml.QJSValue.toDateTime": (),
- "PySide2.QtQml.QJSValue.toInt": (),
- "PySide2.QtQml.QJSValue.toNumber": (),
- "PySide2.QtQml.QJSValue.toQMetaObject": (),
- "PySide2.QtQml.QJSValue.toQObject": (),
- "PySide2.QtQml.QJSValue.toString": (),
- "PySide2.QtQml.QJSValue.toUInt": (),
- "PySide2.QtQml.QJSValue.toVariant": (),
-# class PySide2.QtQml.QJSValueIterator:
- "PySide2.QtQml.QJSValueIterator.__init__": ('PySide2.QtQml.QJSValue',),
- "PySide2.QtQml.QJSValueIterator.hasNext": (),
- "PySide2.QtQml.QJSValueIterator.name": (),
- "PySide2.QtQml.QJSValueIterator.value": (),
-# class PySide2.QtQml.QQmlAbstractUrlInterceptor:
-# class PySide2.QtQml.QQmlAbstractUrlInterceptor.DataType:
- "PySide2.QtQml.QQmlAbstractUrlInterceptor.__init__": (),
- "PySide2.QtQml.QQmlAbstractUrlInterceptor.intercept": ('PySide2.QtCore.QUrl', 'PySide2.QtQml.QQmlAbstractUrlInterceptor.DataType'),
-# class PySide2.QtQml.QQmlApplicationEngine:
- "PySide2.QtQml.QQmlApplicationEngine.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtCore.QUrl', 'PySide2.QtCore.QObject'), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtQml.QQmlApplicationEngine.load": [('PySide2.QtCore.QUrl',), ('str',)],
- "PySide2.QtQml.QQmlApplicationEngine.loadData": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QUrl'),
- "PySide2.QtQml.QQmlApplicationEngine.rootObjects": (),
- "PySide2.QtQml.QQmlApplicationEngine.setInitialProperties": ('typing.Dict[str, typing.Any]',),
-# class PySide2.QtQml.QQmlComponent:
-# class PySide2.QtQml.QQmlComponent.CompilationMode:
-# class PySide2.QtQml.QQmlComponent.Status:
- "PySide2.QtQml.QQmlComponent.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtQml.QQmlEngine', 'PySide2.QtCore.QObject'), ('PySide2.QtQml.QQmlEngine', 'PySide2.QtCore.QUrl', 'PySide2.QtCore.QObject'), ('PySide2.QtQml.QQmlEngine', 'PySide2.QtCore.QUrl', 'PySide2.QtQml.QQmlComponent.CompilationMode', 'PySide2.QtCore.QObject'), ('PySide2.QtQml.QQmlEngine', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtQml.QQmlEngine', 'str', 'PySide2.QtQml.QQmlComponent.CompilationMode', 'PySide2.QtCore.QObject')],
- "PySide2.QtQml.QQmlComponent.beginCreate": ('PySide2.QtQml.QQmlContext',),
- "PySide2.QtQml.QQmlComponent.completeCreate": (),
- "PySide2.QtQml.QQmlComponent.create": [('PySide2.QtQml.QQmlContext',), ('PySide2.QtQml.QQmlIncubator', 'PySide2.QtQml.QQmlContext', 'PySide2.QtQml.QQmlContext')],
- "PySide2.QtQml.QQmlComponent.createWithInitialProperties": ('typing.Dict[str, typing.Any]', 'PySide2.QtQml.QQmlContext'),
- "PySide2.QtQml.QQmlComponent.creationContext": (),
- "PySide2.QtQml.QQmlComponent.engine": (),
- "PySide2.QtQml.QQmlComponent.errorString": (),
- "PySide2.QtQml.QQmlComponent.errors": (),
- "PySide2.QtQml.QQmlComponent.isError": (),
- "PySide2.QtQml.QQmlComponent.isLoading": (),
- "PySide2.QtQml.QQmlComponent.isNull": (),
- "PySide2.QtQml.QQmlComponent.isReady": (),
- "PySide2.QtQml.QQmlComponent.loadUrl": [('PySide2.QtCore.QUrl',), ('PySide2.QtCore.QUrl', 'PySide2.QtQml.QQmlComponent.CompilationMode')],
- "PySide2.QtQml.QQmlComponent.progress": (),
- "PySide2.QtQml.QQmlComponent.setData": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QUrl'),
- "PySide2.QtQml.QQmlComponent.setInitialProperties": ('PySide2.QtCore.QObject', 'typing.Dict[str, typing.Any]'),
- "PySide2.QtQml.QQmlComponent.status": (),
- "PySide2.QtQml.QQmlComponent.url": (),
-# class PySide2.QtQml.QQmlContext:
- "PySide2.QtQml.QQmlContext.__init__": [('PySide2.QtQml.QQmlContext', 'PySide2.QtCore.QObject'), ('PySide2.QtQml.QQmlEngine', 'PySide2.QtCore.QObject')],
- "PySide2.QtQml.QQmlContext.baseUrl": (),
- "PySide2.QtQml.QQmlContext.contextObject": (),
- "PySide2.QtQml.QQmlContext.contextProperty": ('str',),
- "PySide2.QtQml.QQmlContext.engine": (),
- "PySide2.QtQml.QQmlContext.isValid": (),
- "PySide2.QtQml.QQmlContext.nameForObject": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QQmlContext.parentContext": (),
- "PySide2.QtQml.QQmlContext.resolvedUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtQml.QQmlContext.setBaseUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtQml.QQmlContext.setContextObject": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QQmlContext.setContextProperty": [('str', 'PySide2.QtCore.QObject'), ('str', 'typing.Any')],
-# class PySide2.QtQml.QQmlDebuggingEnabler:
-# class PySide2.QtQml.QQmlDebuggingEnabler.StartMode:
- "PySide2.QtQml.QQmlDebuggingEnabler.__init__": ('bool',),
- "PySide2.QtQml.QQmlDebuggingEnabler.connectToLocalDebugger": ('str', 'PySide2.QtQml.QQmlDebuggingEnabler.StartMode'),
- "PySide2.QtQml.QQmlDebuggingEnabler.debuggerServices": (),
- "PySide2.QtQml.QQmlDebuggingEnabler.inspectorServices": (),
- "PySide2.QtQml.QQmlDebuggingEnabler.nativeDebuggerServices": (),
- "PySide2.QtQml.QQmlDebuggingEnabler.profilerServices": (),
- "PySide2.QtQml.QQmlDebuggingEnabler.setServices": ('typing.Sequence[str]',),
- "PySide2.QtQml.QQmlDebuggingEnabler.startDebugConnector": ('str', 'typing.Dict[str, typing.Any]'),
- "PySide2.QtQml.QQmlDebuggingEnabler.startTcpDebugServer": ('int', 'PySide2.QtQml.QQmlDebuggingEnabler.StartMode', 'str'),
-# class PySide2.QtQml.QQmlEngine:
-# class PySide2.QtQml.QQmlEngine.ObjectOwnership:
- "PySide2.QtQml.QQmlEngine.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QQmlEngine.addImageProvider": ('str', 'PySide2.QtQml.QQmlImageProviderBase'),
- "PySide2.QtQml.QQmlEngine.addImportPath": ('str',),
- "PySide2.QtQml.QQmlEngine.addNamedBundle": ('str', 'str'),
- "PySide2.QtQml.QQmlEngine.addPluginPath": ('str',),
- "PySide2.QtQml.QQmlEngine.baseUrl": (),
- "PySide2.QtQml.QQmlEngine.clearComponentCache": (),
- "PySide2.QtQml.QQmlEngine.contextForObject": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QQmlEngine.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtQml.QQmlEngine.imageProvider": ('str',),
- "PySide2.QtQml.QQmlEngine.importPathList": (),
- "PySide2.QtQml.QQmlEngine.importPlugin": ('str', 'str', 'typing.Sequence[PySide2.QtQml.QQmlError]'),
- "PySide2.QtQml.QQmlEngine.incubationController": (),
- "PySide2.QtQml.QQmlEngine.networkAccessManager": (),
- "PySide2.QtQml.QQmlEngine.networkAccessManagerFactory": (),
- "PySide2.QtQml.QQmlEngine.objectOwnership": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QQmlEngine.offlineStorageDatabaseFilePath": ('str',),
- "PySide2.QtQml.QQmlEngine.offlineStoragePath": (),
- "PySide2.QtQml.QQmlEngine.outputWarningsToStandardError": (),
- "PySide2.QtQml.QQmlEngine.pluginPathList": (),
- "PySide2.QtQml.QQmlEngine.removeImageProvider": ('str',),
- "PySide2.QtQml.QQmlEngine.retranslate": (),
- "PySide2.QtQml.QQmlEngine.rootContext": (),
- "PySide2.QtQml.QQmlEngine.setBaseUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtQml.QQmlEngine.setContextForObject": ('PySide2.QtCore.QObject', 'PySide2.QtQml.QQmlContext'),
- "PySide2.QtQml.QQmlEngine.setImportPathList": ('typing.Sequence[str]',),
- "PySide2.QtQml.QQmlEngine.setIncubationController": ('PySide2.QtQml.QQmlIncubationController',),
- "PySide2.QtQml.QQmlEngine.setNetworkAccessManagerFactory": ('PySide2.QtQml.QQmlNetworkAccessManagerFactory',),
- "PySide2.QtQml.QQmlEngine.setObjectOwnership": ('PySide2.QtCore.QObject', 'PySide2.QtQml.QQmlEngine.ObjectOwnership'),
- "PySide2.QtQml.QQmlEngine.setOfflineStoragePath": ('str',),
- "PySide2.QtQml.QQmlEngine.setOutputWarningsToStandardError": ('bool',),
- "PySide2.QtQml.QQmlEngine.setPluginPathList": ('typing.Sequence[str]',),
- "PySide2.QtQml.QQmlEngine.setUrlInterceptor": ('PySide2.QtQml.QQmlAbstractUrlInterceptor',),
- "PySide2.QtQml.QQmlEngine.trimComponentCache": (),
- "PySide2.QtQml.QQmlEngine.urlInterceptor": (),
-# class PySide2.QtQml.QQmlError:
- "PySide2.QtQml.QQmlError.__init__": [(), ('PySide2.QtQml.QQmlError',)],
- "PySide2.QtQml.QQmlError.__copy__": (),
- "PySide2.QtQml.QQmlError.column": (),
- "PySide2.QtQml.QQmlError.description": (),
- "PySide2.QtQml.QQmlError.isValid": (),
- "PySide2.QtQml.QQmlError.line": (),
- "PySide2.QtQml.QQmlError.messageType": (),
- "PySide2.QtQml.QQmlError.object": (),
- "PySide2.QtQml.QQmlError.setColumn": ('int',),
- "PySide2.QtQml.QQmlError.setDescription": ('str',),
- "PySide2.QtQml.QQmlError.setLine": ('int',),
- "PySide2.QtQml.QQmlError.setMessageType": ('PySide2.QtCore.QtMsgType',),
- "PySide2.QtQml.QQmlError.setObject": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QQmlError.setUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtQml.QQmlError.toString": (),
- "PySide2.QtQml.QQmlError.url": (),
-# class PySide2.QtQml.QQmlExpression:
- "PySide2.QtQml.QQmlExpression.__init__": [(), ('PySide2.QtQml.QQmlContext', 'PySide2.QtCore.QObject', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtQml.QQmlScriptString', 'PySide2.QtQml.QQmlContext', 'PySide2.QtCore.QObject', 'PySide2.QtCore.QObject')],
- "PySide2.QtQml.QQmlExpression.clearError": (),
- "PySide2.QtQml.QQmlExpression.columnNumber": (),
- "PySide2.QtQml.QQmlExpression.context": (),
- "PySide2.QtQml.QQmlExpression.engine": (),
- "PySide2.QtQml.QQmlExpression.error": (),
- "PySide2.QtQml.QQmlExpression.evaluate": (),
- "PySide2.QtQml.QQmlExpression.expression": (),
- "PySide2.QtQml.QQmlExpression.hasError": (),
- "PySide2.QtQml.QQmlExpression.lineNumber": (),
- "PySide2.QtQml.QQmlExpression.notifyOnValueChanged": (),
- "PySide2.QtQml.QQmlExpression.scopeObject": (),
- "PySide2.QtQml.QQmlExpression.setExpression": ('str',),
- "PySide2.QtQml.QQmlExpression.setNotifyOnValueChanged": ('bool',),
- "PySide2.QtQml.QQmlExpression.setSourceLocation": ('str', 'int', 'int'),
- "PySide2.QtQml.QQmlExpression.sourceFile": (),
-# class PySide2.QtQml.QQmlExtensionInterface:
- "PySide2.QtQml.QQmlExtensionInterface.__init__": (),
- "PySide2.QtQml.QQmlExtensionInterface.initializeEngine": ('PySide2.QtQml.QQmlEngine', 'str'),
-# class PySide2.QtQml.QQmlExtensionPlugin:
- "PySide2.QtQml.QQmlExtensionPlugin.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QQmlExtensionPlugin.baseUrl": (),
- "PySide2.QtQml.QQmlExtensionPlugin.initializeEngine": ('PySide2.QtQml.QQmlEngine', 'str'),
- "PySide2.QtQml.QQmlExtensionPlugin.registerTypes": ('str',),
-# class PySide2.QtQml.QQmlFile:
-# class PySide2.QtQml.QQmlFile.Status:
- "PySide2.QtQml.QQmlFile.__init__": [(), ('PySide2.QtQml.QQmlEngine', 'PySide2.QtCore.QUrl'), ('PySide2.QtQml.QQmlEngine', 'str')],
- "PySide2.QtQml.QQmlFile.clear": [(), ('PySide2.QtCore.QObject',)],
- "PySide2.QtQml.QQmlFile.connectDownloadProgress": [('PySide2.QtCore.QObject', 'int'), ('PySide2.QtCore.QObject', 'str')],
- "PySide2.QtQml.QQmlFile.connectFinished": [('PySide2.QtCore.QObject', 'int'), ('PySide2.QtCore.QObject', 'str')],
- "PySide2.QtQml.QQmlFile.data": (),
- "PySide2.QtQml.QQmlFile.dataByteArray": (),
- "PySide2.QtQml.QQmlFile.error": (),
- "PySide2.QtQml.QQmlFile.isError": (),
- "PySide2.QtQml.QQmlFile.isLoading": (),
- "PySide2.QtQml.QQmlFile.isLocalFile": [('PySide2.QtCore.QUrl',), ('str',)],
- "PySide2.QtQml.QQmlFile.isNull": (),
- "PySide2.QtQml.QQmlFile.isReady": (),
- "PySide2.QtQml.QQmlFile.isSynchronous": [('PySide2.QtCore.QUrl',), ('str',)],
- "PySide2.QtQml.QQmlFile.load": [('PySide2.QtQml.QQmlEngine', 'PySide2.QtCore.QUrl'), ('PySide2.QtQml.QQmlEngine', 'str')],
- "PySide2.QtQml.QQmlFile.size": (),
- "PySide2.QtQml.QQmlFile.status": (),
- "PySide2.QtQml.QQmlFile.url": (),
- "PySide2.QtQml.QQmlFile.urlToLocalFileOrQrc": [('PySide2.QtCore.QUrl',), ('str',)],
-# class PySide2.QtQml.QQmlFileSelector:
- "PySide2.QtQml.QQmlFileSelector.__init__": ('PySide2.QtQml.QQmlEngine', 'PySide2.QtCore.QObject'),
- "PySide2.QtQml.QQmlFileSelector.get": ('PySide2.QtQml.QQmlEngine',),
- "PySide2.QtQml.QQmlFileSelector.selector": (),
- "PySide2.QtQml.QQmlFileSelector.setExtraSelectors": ('typing.Sequence[str]',),
- "PySide2.QtQml.QQmlFileSelector.setSelector": ('PySide2.QtCore.QFileSelector',),
-# class PySide2.QtQml.QQmlImageProviderBase:
-# class PySide2.QtQml.QQmlImageProviderBase.Flag:
-# class PySide2.QtQml.QQmlImageProviderBase.Flags:
-# class PySide2.QtQml.QQmlImageProviderBase.ImageType:
- "PySide2.QtQml.QQmlImageProviderBase.flags": (),
- "PySide2.QtQml.QQmlImageProviderBase.imageType": (),
-# class PySide2.QtQml.QQmlIncubationController:
- "PySide2.QtQml.QQmlIncubationController.__init__": (),
- "PySide2.QtQml.QQmlIncubationController.engine": (),
- "PySide2.QtQml.QQmlIncubationController.incubateFor": ('int',),
- "PySide2.QtQml.QQmlIncubationController.incubateWhile": ('int',),
- "PySide2.QtQml.QQmlIncubationController.incubatingObjectCount": (),
- "PySide2.QtQml.QQmlIncubationController.incubatingObjectCountChanged": ('int',),
-# class PySide2.QtQml.QQmlIncubator:
-# class PySide2.QtQml.QQmlIncubator.IncubationMode:
-# class PySide2.QtQml.QQmlIncubator.Status:
- "PySide2.QtQml.QQmlIncubator.__init__": ('PySide2.QtQml.QQmlIncubator.IncubationMode',),
- "PySide2.QtQml.QQmlIncubator.clear": (),
- "PySide2.QtQml.QQmlIncubator.errors": (),
- "PySide2.QtQml.QQmlIncubator.forceCompletion": (),
- "PySide2.QtQml.QQmlIncubator.incubationMode": (),
- "PySide2.QtQml.QQmlIncubator.isError": (),
- "PySide2.QtQml.QQmlIncubator.isLoading": (),
- "PySide2.QtQml.QQmlIncubator.isNull": (),
- "PySide2.QtQml.QQmlIncubator.isReady": (),
- "PySide2.QtQml.QQmlIncubator.object": (),
- "PySide2.QtQml.QQmlIncubator.setInitialState": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QQmlIncubator.status": (),
- "PySide2.QtQml.QQmlIncubator.statusChanged": ('PySide2.QtQml.QQmlIncubator.Status',),
-# class PySide2.QtQml.QQmlListReference:
- "PySide2.QtQml.QQmlListReference.__init__": [(), ('PySide2.QtCore.QObject', 'str', 'PySide2.QtQml.QQmlEngine'), ('PySide2.QtQml.QQmlListReference',)],
- "PySide2.QtQml.QQmlListReference.__copy__": (),
- "PySide2.QtQml.QQmlListReference.append": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QQmlListReference.at": ('int',),
- "PySide2.QtQml.QQmlListReference.canAppend": (),
- "PySide2.QtQml.QQmlListReference.canAt": (),
- "PySide2.QtQml.QQmlListReference.canClear": (),
- "PySide2.QtQml.QQmlListReference.canCount": (),
- "PySide2.QtQml.QQmlListReference.clear": (),
- "PySide2.QtQml.QQmlListReference.count": (),
- "PySide2.QtQml.QQmlListReference.isManipulable": (),
- "PySide2.QtQml.QQmlListReference.isReadable": (),
- "PySide2.QtQml.QQmlListReference.isValid": (),
- "PySide2.QtQml.QQmlListReference.listElementType": (),
- "PySide2.QtQml.QQmlListReference.object": (),
-# class PySide2.QtQml.QQmlNetworkAccessManagerFactory:
- "PySide2.QtQml.QQmlNetworkAccessManagerFactory.__init__": (),
- "PySide2.QtQml.QQmlNetworkAccessManagerFactory.create": ('PySide2.QtCore.QObject',),
-# class PySide2.QtQml.QQmlParserStatus:
- "PySide2.QtQml.QQmlParserStatus.__init__": (),
- "PySide2.QtQml.QQmlParserStatus.classBegin": (),
- "PySide2.QtQml.QQmlParserStatus.componentComplete": (),
-# class PySide2.QtQml.QQmlProperty:
-# class PySide2.QtQml.QQmlProperty.PropertyTypeCategory:
-# class PySide2.QtQml.QQmlProperty.Type:
- "PySide2.QtQml.QQmlProperty.__init__": [(), ('PySide2.QtCore.QObject',), ('PySide2.QtCore.QObject', 'PySide2.QtQml.QQmlContext'), ('PySide2.QtCore.QObject', 'PySide2.QtQml.QQmlEngine'), ('PySide2.QtCore.QObject', 'str'), ('PySide2.QtCore.QObject', 'str', 'PySide2.QtQml.QQmlContext'), ('PySide2.QtCore.QObject', 'str', 'PySide2.QtQml.QQmlEngine'), ('PySide2.QtQml.QQmlProperty',)],
- "PySide2.QtQml.QQmlProperty.__copy__": (),
- "PySide2.QtQml.QQmlProperty.connectNotifySignal": [('PySide2.QtCore.QObject', 'int'), ('PySide2.QtCore.QObject', 'str')],
- "PySide2.QtQml.QQmlProperty.hasNotifySignal": (),
- "PySide2.QtQml.QQmlProperty.index": (),
- "PySide2.QtQml.QQmlProperty.isDesignable": (),
- "PySide2.QtQml.QQmlProperty.isProperty": (),
- "PySide2.QtQml.QQmlProperty.isResettable": (),
- "PySide2.QtQml.QQmlProperty.isSignalProperty": (),
- "PySide2.QtQml.QQmlProperty.isValid": (),
- "PySide2.QtQml.QQmlProperty.isWritable": (),
- "PySide2.QtQml.QQmlProperty.method": (),
- "PySide2.QtQml.QQmlProperty.name": (),
- "PySide2.QtQml.QQmlProperty.needsNotifySignal": (),
- "PySide2.QtQml.QQmlProperty.object": (),
- "PySide2.QtQml.QQmlProperty.property": (),
- "PySide2.QtQml.QQmlProperty.propertyType": (),
- "PySide2.QtQml.QQmlProperty.propertyTypeCategory": (),
- "PySide2.QtQml.QQmlProperty.propertyTypeName": (),
- "PySide2.QtQml.QQmlProperty.read": [(), ('PySide2.QtCore.QObject', 'str'), ('PySide2.QtCore.QObject', 'str', 'PySide2.QtQml.QQmlContext'), ('PySide2.QtCore.QObject', 'str', 'PySide2.QtQml.QQmlEngine')],
- "PySide2.QtQml.QQmlProperty.reset": (),
- "PySide2.QtQml.QQmlProperty.type": (),
- "PySide2.QtQml.QQmlProperty.write": [('PySide2.QtCore.QObject', 'str', 'typing.Any'), ('PySide2.QtCore.QObject', 'str', 'typing.Any', 'PySide2.QtQml.QQmlContext'), ('PySide2.QtCore.QObject', 'str', 'typing.Any', 'PySide2.QtQml.QQmlEngine'), ('typing.Any',)],
-# class PySide2.QtQml.QQmlPropertyMap:
- "PySide2.QtQml.QQmlPropertyMap.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QQmlPropertyMap.clear": ('str',),
- "PySide2.QtQml.QQmlPropertyMap.contains": ('str',),
- "PySide2.QtQml.QQmlPropertyMap.count": (),
- "PySide2.QtQml.QQmlPropertyMap.insert": ('str', 'typing.Any'),
- "PySide2.QtQml.QQmlPropertyMap.isEmpty": (),
- "PySide2.QtQml.QQmlPropertyMap.keys": (),
- "PySide2.QtQml.QQmlPropertyMap.size": (),
- "PySide2.QtQml.QQmlPropertyMap.updateValue": ('str', 'typing.Any'),
- "PySide2.QtQml.QQmlPropertyMap.value": ('str',),
-# class PySide2.QtQml.QQmlPropertyValueSource:
- "PySide2.QtQml.QQmlPropertyValueSource.__init__": (),
- "PySide2.QtQml.QQmlPropertyValueSource.setTarget": ('PySide2.QtQml.QQmlProperty',),
-# class PySide2.QtQml.QQmlScriptString:
- "PySide2.QtQml.QQmlScriptString.__init__": [(), ('PySide2.QtQml.QQmlScriptString',)],
- "PySide2.QtQml.QQmlScriptString.__copy__": (),
- "PySide2.QtQml.QQmlScriptString.booleanLiteral": (),
- "PySide2.QtQml.QQmlScriptString.isEmpty": (),
- "PySide2.QtQml.QQmlScriptString.isNullLiteral": (),
- "PySide2.QtQml.QQmlScriptString.isUndefinedLiteral": (),
- "PySide2.QtQml.QQmlScriptString.numberLiteral": (),
- "PySide2.QtQml.QQmlScriptString.stringLiteral": (),
-# class PySide2.QtQml.QQmlTypesExtensionInterface:
- "PySide2.QtQml.QQmlTypesExtensionInterface.__init__": (),
- "PySide2.QtQml.QQmlTypesExtensionInterface.registerTypes": ('str',),
-# class PySide2.QtQml.QtQml:
- "PySide2.QtQml.QtQml.qmlAttachedPropertiesObject": ('PySide2.QtCore.QObject', 'PySide2.QtCore.QMetaObject', 'bool'),
- "PySide2.QtQml.QtQml.qmlAttachedPropertiesObjectById": ('int', 'PySide2.QtCore.QObject', 'bool'),
- "PySide2.QtQml.QtQml.qmlContext": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QtQml.qmlEngine": ('PySide2.QtCore.QObject',),
- "PySide2.QtQml.QtQml.qmlExecuteDeferred": ('PySide2.QtCore.QObject',),
-# class PySide2.QtQml.VolatileBool:
- "PySide2.QtQml.VolatileBool.get": (),
- "PySide2.QtQml.VolatileBool.set": ('object',),
- "PySide2.QtQml.VolatileBool.qmlRegisterType": ('type', 'str', 'int', 'int', 'str'),
- }) if "PySide2.QtQml" in sys.modules else None
-# Module PySide2.QtQuick
-sig_dict.update({
-# class PySide2.QtQuick.QQuickAsyncImageProvider:
- "PySide2.QtQuick.QQuickAsyncImageProvider.__init__": (),
- "PySide2.QtQuick.QQuickAsyncImageProvider.requestImageResponse": ('str', 'PySide2.QtCore.QSize'),
-# class PySide2.QtQuick.QQuickFramebufferObject:
-# class PySide2.QtQuick.QQuickFramebufferObject.Renderer:
- "PySide2.QtQuick.QQuickFramebufferObject.Renderer.__init__": (),
- "PySide2.QtQuick.QQuickFramebufferObject.Renderer.createFramebufferObject": ('PySide2.QtCore.QSize',),
- "PySide2.QtQuick.QQuickFramebufferObject.Renderer.framebufferObject": (),
- "PySide2.QtQuick.QQuickFramebufferObject.Renderer.invalidateFramebufferObject": (),
- "PySide2.QtQuick.QQuickFramebufferObject.Renderer.render": (),
- "PySide2.QtQuick.QQuickFramebufferObject.Renderer.synchronize": ('PySide2.QtQuick.QQuickFramebufferObject',),
- "PySide2.QtQuick.QQuickFramebufferObject.Renderer.update": (),
- "PySide2.QtQuick.QQuickFramebufferObject.__init__": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickFramebufferObject.createRenderer": (),
- "PySide2.QtQuick.QQuickFramebufferObject.geometryChanged": ('PySide2.QtCore.QRectF', 'PySide2.QtCore.QRectF'),
- "PySide2.QtQuick.QQuickFramebufferObject.isTextureProvider": (),
- "PySide2.QtQuick.QQuickFramebufferObject.mirrorVertically": (),
- "PySide2.QtQuick.QQuickFramebufferObject.releaseResources": (),
- "PySide2.QtQuick.QQuickFramebufferObject.setMirrorVertically": ('bool',),
- "PySide2.QtQuick.QQuickFramebufferObject.setTextureFollowsItemSize": ('bool',),
- "PySide2.QtQuick.QQuickFramebufferObject.textureFollowsItemSize": (),
- "PySide2.QtQuick.QQuickFramebufferObject.textureProvider": (),
- "PySide2.QtQuick.QQuickFramebufferObject.updatePaintNode": ('PySide2.QtQuick.QSGNode', 'PySide2.QtQuick.QQuickItem.UpdatePaintNodeData'),
-# class PySide2.QtQuick.QQuickImageProvider:
- "PySide2.QtQuick.QQuickImageProvider.__init__": ('PySide2.QtQml.QQmlImageProviderBase.ImageType', 'PySide2.QtQml.QQmlImageProviderBase.Flags'),
- "PySide2.QtQuick.QQuickImageProvider.flags": (),
- "PySide2.QtQuick.QQuickImageProvider.imageType": (),
- "PySide2.QtQuick.QQuickImageProvider.requestImage": ('str', 'PySide2.QtCore.QSize', 'PySide2.QtCore.QSize'),
- "PySide2.QtQuick.QQuickImageProvider.requestPixmap": ('str', 'PySide2.QtCore.QSize', 'PySide2.QtCore.QSize'),
- "PySide2.QtQuick.QQuickImageProvider.requestTexture": ('str', 'PySide2.QtCore.QSize', 'PySide2.QtCore.QSize'),
-# class PySide2.QtQuick.QQuickImageResponse:
- "PySide2.QtQuick.QQuickImageResponse.__init__": (),
- "PySide2.QtQuick.QQuickImageResponse.cancel": (),
- "PySide2.QtQuick.QQuickImageResponse.errorString": (),
- "PySide2.QtQuick.QQuickImageResponse.textureFactory": (),
-# class PySide2.QtQuick.QQuickItem:
-# class PySide2.QtQuick.QQuickItem.Flag:
-# class PySide2.QtQuick.QQuickItem.Flags:
-# class PySide2.QtQuick.QQuickItem.ItemChange:
-# class PySide2.QtQuick.QQuickItem.TransformOrigin:
-# class PySide2.QtQuick.QQuickItem.UpdatePaintNodeData:
- "PySide2.QtQuick.QQuickItem.UpdatePaintNodeData.__copy__": (),
- "PySide2.QtQuick.QQuickItem.__init__": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickItem.acceptHoverEvents": (),
- "PySide2.QtQuick.QQuickItem.acceptTouchEvents": (),
- "PySide2.QtQuick.QQuickItem.acceptedMouseButtons": (),
- "PySide2.QtQuick.QQuickItem.activeFocusOnTab": (),
- "PySide2.QtQuick.QQuickItem.antialiasing": (),
- "PySide2.QtQuick.QQuickItem.baselineOffset": (),
- "PySide2.QtQuick.QQuickItem.boundingRect": (),
- "PySide2.QtQuick.QQuickItem.childAt": ('float', 'float'),
- "PySide2.QtQuick.QQuickItem.childItems": (),
- "PySide2.QtQuick.QQuickItem.childMouseEventFilter": ('PySide2.QtQuick.QQuickItem', 'PySide2.QtCore.QEvent'),
- "PySide2.QtQuick.QQuickItem.childrenRect": (),
- "PySide2.QtQuick.QQuickItem.classBegin": (),
- "PySide2.QtQuick.QQuickItem.clip": (),
- "PySide2.QtQuick.QQuickItem.clipRect": (),
- "PySide2.QtQuick.QQuickItem.componentComplete": (),
- "PySide2.QtQuick.QQuickItem.containmentMask": (),
- "PySide2.QtQuick.QQuickItem.contains": ('PySide2.QtCore.QPointF',),
- "PySide2.QtQuick.QQuickItem.cursor": (),
- "PySide2.QtQuick.QQuickItem.dragEnterEvent": ('PySide2.QtGui.QDragEnterEvent',),
- "PySide2.QtQuick.QQuickItem.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtQuick.QQuickItem.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtQuick.QQuickItem.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtQuick.QQuickItem.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtQuick.QQuickItem.filtersChildMouseEvents": (),
- "PySide2.QtQuick.QQuickItem.flags": (),
- "PySide2.QtQuick.QQuickItem.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtQuick.QQuickItem.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtQuick.QQuickItem.forceActiveFocus": [(), ('PySide2.QtCore.Qt.FocusReason',)],
- "PySide2.QtQuick.QQuickItem.geometryChanged": ('PySide2.QtCore.QRectF', 'PySide2.QtCore.QRectF'),
- "PySide2.QtQuick.QQuickItem.grabMouse": (),
- "PySide2.QtQuick.QQuickItem.grabToImage": [('PySide2.QtCore.QSize',), ('PySide2.QtQml.QJSValue', 'PySide2.QtCore.QSize')],
- "PySide2.QtQuick.QQuickItem.grabTouchPoints": ('typing.List[int]',),
- "PySide2.QtQuick.QQuickItem.hasActiveFocus": (),
- "PySide2.QtQuick.QQuickItem.hasFocus": (),
- "PySide2.QtQuick.QQuickItem.height": (),
- "PySide2.QtQuick.QQuickItem.heightValid": (),
- "PySide2.QtQuick.QQuickItem.hoverEnterEvent": ('PySide2.QtGui.QHoverEvent',),
- "PySide2.QtQuick.QQuickItem.hoverLeaveEvent": ('PySide2.QtGui.QHoverEvent',),
- "PySide2.QtQuick.QQuickItem.hoverMoveEvent": ('PySide2.QtGui.QHoverEvent',),
- "PySide2.QtQuick.QQuickItem.implicitHeight": (),
- "PySide2.QtQuick.QQuickItem.implicitWidth": (),
- "PySide2.QtQuick.QQuickItem.inputMethodEvent": ('PySide2.QtGui.QInputMethodEvent',),
- "PySide2.QtQuick.QQuickItem.inputMethodQuery": ('PySide2.QtCore.Qt.InputMethodQuery',),
- "PySide2.QtQuick.QQuickItem.isAncestorOf": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickItem.isComponentComplete": (),
- "PySide2.QtQuick.QQuickItem.isEnabled": (),
- "PySide2.QtQuick.QQuickItem.isFocusScope": (),
- "PySide2.QtQuick.QQuickItem.isTextureProvider": (),
- "PySide2.QtQuick.QQuickItem.isUnderMouse": (),
- "PySide2.QtQuick.QQuickItem.isVisible": (),
- "PySide2.QtQuick.QQuickItem.itemTransform": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickItem.keepMouseGrab": (),
- "PySide2.QtQuick.QQuickItem.keepTouchGrab": (),
- "PySide2.QtQuick.QQuickItem.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtQuick.QQuickItem.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtQuick.QQuickItem.mapFromGlobal": ('PySide2.QtCore.QPointF',),
- "PySide2.QtQuick.QQuickItem.mapFromItem": ('PySide2.QtQuick.QQuickItem', 'PySide2.QtCore.QPointF'),
- "PySide2.QtQuick.QQuickItem.mapFromScene": ('PySide2.QtCore.QPointF',),
- "PySide2.QtQuick.QQuickItem.mapRectFromItem": ('PySide2.QtQuick.QQuickItem', 'PySide2.QtCore.QRectF'),
- "PySide2.QtQuick.QQuickItem.mapRectFromScene": ('PySide2.QtCore.QRectF',),
- "PySide2.QtQuick.QQuickItem.mapRectToItem": ('PySide2.QtQuick.QQuickItem', 'PySide2.QtCore.QRectF'),
- "PySide2.QtQuick.QQuickItem.mapRectToScene": ('PySide2.QtCore.QRectF',),
- "PySide2.QtQuick.QQuickItem.mapToGlobal": ('PySide2.QtCore.QPointF',),
- "PySide2.QtQuick.QQuickItem.mapToItem": ('PySide2.QtQuick.QQuickItem', 'PySide2.QtCore.QPointF'),
- "PySide2.QtQuick.QQuickItem.mapToScene": ('PySide2.QtCore.QPointF',),
- "PySide2.QtQuick.QQuickItem.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickItem.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickItem.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickItem.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickItem.mouseUngrabEvent": (),
- "PySide2.QtQuick.QQuickItem.nextItemInFocusChain": ('bool',),
- "PySide2.QtQuick.QQuickItem.opacity": (),
- "PySide2.QtQuick.QQuickItem.parentItem": (),
- "PySide2.QtQuick.QQuickItem.polish": (),
- "PySide2.QtQuick.QQuickItem.position": (),
- "PySide2.QtQuick.QQuickItem.releaseResources": (),
- "PySide2.QtQuick.QQuickItem.resetAntialiasing": (),
- "PySide2.QtQuick.QQuickItem.resetHeight": (),
- "PySide2.QtQuick.QQuickItem.resetWidth": (),
- "PySide2.QtQuick.QQuickItem.rotation": (),
- "PySide2.QtQuick.QQuickItem.scale": (),
- "PySide2.QtQuick.QQuickItem.scopedFocusItem": (),
- "PySide2.QtQuick.QQuickItem.setAcceptHoverEvents": ('bool',),
- "PySide2.QtQuick.QQuickItem.setAcceptTouchEvents": ('bool',),
- "PySide2.QtQuick.QQuickItem.setAcceptedMouseButtons": ('PySide2.QtCore.Qt.MouseButtons',),
- "PySide2.QtQuick.QQuickItem.setActiveFocusOnTab": ('bool',),
- "PySide2.QtQuick.QQuickItem.setAntialiasing": ('bool',),
- "PySide2.QtQuick.QQuickItem.setBaselineOffset": ('float',),
- "PySide2.QtQuick.QQuickItem.setClip": ('bool',),
- "PySide2.QtQuick.QQuickItem.setContainmentMask": ('PySide2.QtCore.QObject',),
- "PySide2.QtQuick.QQuickItem.setCursor": ('PySide2.QtGui.QCursor',),
- "PySide2.QtQuick.QQuickItem.setEnabled": ('bool',),
- "PySide2.QtQuick.QQuickItem.setFiltersChildMouseEvents": ('bool',),
- "PySide2.QtQuick.QQuickItem.setFlag": ('PySide2.QtQuick.QQuickItem.Flag', 'bool'),
- "PySide2.QtQuick.QQuickItem.setFlags": ('PySide2.QtQuick.QQuickItem.Flags',),
- "PySide2.QtQuick.QQuickItem.setFocus": [('bool',), ('bool', 'PySide2.QtCore.Qt.FocusReason')],
- "PySide2.QtQuick.QQuickItem.setHeight": ('float',),
- "PySide2.QtQuick.QQuickItem.setImplicitHeight": ('float',),
- "PySide2.QtQuick.QQuickItem.setImplicitSize": ('float', 'float'),
- "PySide2.QtQuick.QQuickItem.setImplicitWidth": ('float',),
- "PySide2.QtQuick.QQuickItem.setKeepMouseGrab": ('bool',),
- "PySide2.QtQuick.QQuickItem.setKeepTouchGrab": ('bool',),
- "PySide2.QtQuick.QQuickItem.setOpacity": ('float',),
- "PySide2.QtQuick.QQuickItem.setParentItem": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickItem.setPosition": ('PySide2.QtCore.QPointF',),
- "PySide2.QtQuick.QQuickItem.setRotation": ('float',),
- "PySide2.QtQuick.QQuickItem.setScale": ('float',),
- "PySide2.QtQuick.QQuickItem.setSize": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtQuick.QQuickItem.setSmooth": ('bool',),
- "PySide2.QtQuick.QQuickItem.setState": ('str',),
- "PySide2.QtQuick.QQuickItem.setTransformOrigin": ('PySide2.QtQuick.QQuickItem.TransformOrigin',),
- "PySide2.QtQuick.QQuickItem.setTransformOriginPoint": ('PySide2.QtCore.QPointF',),
- "PySide2.QtQuick.QQuickItem.setVisible": ('bool',),
- "PySide2.QtQuick.QQuickItem.setWidth": ('float',),
- "PySide2.QtQuick.QQuickItem.setX": ('float',),
- "PySide2.QtQuick.QQuickItem.setY": ('float',),
- "PySide2.QtQuick.QQuickItem.setZ": ('float',),
- "PySide2.QtQuick.QQuickItem.size": (),
- "PySide2.QtQuick.QQuickItem.smooth": (),
- "PySide2.QtQuick.QQuickItem.stackAfter": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickItem.stackBefore": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickItem.state": (),
- "PySide2.QtQuick.QQuickItem.textureProvider": (),
- "PySide2.QtQuick.QQuickItem.touchEvent": ('PySide2.QtGui.QTouchEvent',),
- "PySide2.QtQuick.QQuickItem.touchUngrabEvent": (),
- "PySide2.QtQuick.QQuickItem.transformOrigin": (),
- "PySide2.QtQuick.QQuickItem.transformOriginPoint": (),
- "PySide2.QtQuick.QQuickItem.ungrabMouse": (),
- "PySide2.QtQuick.QQuickItem.ungrabTouchPoints": (),
- "PySide2.QtQuick.QQuickItem.unsetCursor": (),
- "PySide2.QtQuick.QQuickItem.update": (),
- "PySide2.QtQuick.QQuickItem.updateInputMethod": ('PySide2.QtCore.Qt.InputMethodQueries',),
- "PySide2.QtQuick.QQuickItem.updatePaintNode": ('PySide2.QtQuick.QSGNode', 'PySide2.QtQuick.QQuickItem.UpdatePaintNodeData'),
- "PySide2.QtQuick.QQuickItem.updatePolish": (),
- "PySide2.QtQuick.QQuickItem.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
- "PySide2.QtQuick.QQuickItem.width": (),
- "PySide2.QtQuick.QQuickItem.widthValid": (),
- "PySide2.QtQuick.QQuickItem.window": (),
- "PySide2.QtQuick.QQuickItem.windowDeactivateEvent": (),
- "PySide2.QtQuick.QQuickItem.x": (),
- "PySide2.QtQuick.QQuickItem.y": (),
- "PySide2.QtQuick.QQuickItem.z": (),
-# class PySide2.QtQuick.QQuickItemGrabResult:
- "PySide2.QtQuick.QQuickItemGrabResult.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtQuick.QQuickItemGrabResult.image": (),
- "PySide2.QtQuick.QQuickItemGrabResult.saveToFile": ('str',),
- "PySide2.QtQuick.QQuickItemGrabResult.url": (),
-# class PySide2.QtQuick.QQuickPaintedItem:
-# class PySide2.QtQuick.QQuickPaintedItem.PerformanceHint:
-# class PySide2.QtQuick.QQuickPaintedItem.PerformanceHints:
-# class PySide2.QtQuick.QQuickPaintedItem.RenderTarget:
- "PySide2.QtQuick.QQuickPaintedItem.__init__": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickPaintedItem.antialiasing": (),
- "PySide2.QtQuick.QQuickPaintedItem.contentsBoundingRect": (),
- "PySide2.QtQuick.QQuickPaintedItem.contentsScale": (),
- "PySide2.QtQuick.QQuickPaintedItem.contentsSize": (),
- "PySide2.QtQuick.QQuickPaintedItem.fillColor": (),
- "PySide2.QtQuick.QQuickPaintedItem.isTextureProvider": (),
- "PySide2.QtQuick.QQuickPaintedItem.mipmap": (),
- "PySide2.QtQuick.QQuickPaintedItem.opaquePainting": (),
- "PySide2.QtQuick.QQuickPaintedItem.paint": ('PySide2.QtGui.QPainter',),
- "PySide2.QtQuick.QQuickPaintedItem.performanceHints": (),
- "PySide2.QtQuick.QQuickPaintedItem.releaseResources": (),
- "PySide2.QtQuick.QQuickPaintedItem.renderTarget": (),
- "PySide2.QtQuick.QQuickPaintedItem.resetContentsSize": (),
- "PySide2.QtQuick.QQuickPaintedItem.setAntialiasing": ('bool',),
- "PySide2.QtQuick.QQuickPaintedItem.setContentsScale": ('float',),
- "PySide2.QtQuick.QQuickPaintedItem.setContentsSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtQuick.QQuickPaintedItem.setFillColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtQuick.QQuickPaintedItem.setMipmap": ('bool',),
- "PySide2.QtQuick.QQuickPaintedItem.setOpaquePainting": ('bool',),
- "PySide2.QtQuick.QQuickPaintedItem.setPerformanceHint": ('PySide2.QtQuick.QQuickPaintedItem.PerformanceHint', 'bool'),
- "PySide2.QtQuick.QQuickPaintedItem.setPerformanceHints": ('PySide2.QtQuick.QQuickPaintedItem.PerformanceHints',),
- "PySide2.QtQuick.QQuickPaintedItem.setRenderTarget": ('PySide2.QtQuick.QQuickPaintedItem.RenderTarget',),
- "PySide2.QtQuick.QQuickPaintedItem.setTextureSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtQuick.QQuickPaintedItem.textureProvider": (),
- "PySide2.QtQuick.QQuickPaintedItem.textureSize": (),
- "PySide2.QtQuick.QQuickPaintedItem.update": [(), ('PySide2.QtCore.QRect',)],
- "PySide2.QtQuick.QQuickPaintedItem.updatePaintNode": ('PySide2.QtQuick.QSGNode', 'PySide2.QtQuick.QQuickItem.UpdatePaintNodeData'),
-# class PySide2.QtQuick.QQuickRenderControl:
- "PySide2.QtQuick.QQuickRenderControl.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtQuick.QQuickRenderControl.grab": (),
- "PySide2.QtQuick.QQuickRenderControl.initialize": ('PySide2.QtGui.QOpenGLContext',),
- "PySide2.QtQuick.QQuickRenderControl.invalidate": (),
- "PySide2.QtQuick.QQuickRenderControl.polishItems": (),
- "PySide2.QtQuick.QQuickRenderControl.prepareThread": ('PySide2.QtCore.QThread',),
- "PySide2.QtQuick.QQuickRenderControl.render": (),
- "PySide2.QtQuick.QQuickRenderControl.renderWindow": ('PySide2.QtCore.QPoint',),
- "PySide2.QtQuick.QQuickRenderControl.renderWindowFor": ('PySide2.QtQuick.QQuickWindow', 'PySide2.QtCore.QPoint'),
- "PySide2.QtQuick.QQuickRenderControl.sync": (),
-# class PySide2.QtQuick.QQuickTextDocument:
- "PySide2.QtQuick.QQuickTextDocument.__init__": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickTextDocument.textDocument": (),
-# class PySide2.QtQuick.QQuickTextureFactory:
- "PySide2.QtQuick.QQuickTextureFactory.__init__": (),
- "PySide2.QtQuick.QQuickTextureFactory.createTexture": ('PySide2.QtQuick.QQuickWindow',),
- "PySide2.QtQuick.QQuickTextureFactory.image": (),
- "PySide2.QtQuick.QQuickTextureFactory.textureByteCount": (),
- "PySide2.QtQuick.QQuickTextureFactory.textureFactoryForImage": ('PySide2.QtGui.QImage',),
- "PySide2.QtQuick.QQuickTextureFactory.textureSize": (),
-# class PySide2.QtQuick.QQuickTransform:
- "PySide2.QtQuick.QQuickTransform.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtQuick.QQuickTransform.appendToItem": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickTransform.applyTo": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtQuick.QQuickTransform.prependToItem": ('PySide2.QtQuick.QQuickItem',),
- "PySide2.QtQuick.QQuickTransform.update": (),
-# class PySide2.QtQuick.QQuickView:
-# class PySide2.QtQuick.QQuickView.ResizeMode:
-# class PySide2.QtQuick.QQuickView.Status:
- "PySide2.QtQuick.QQuickView.__init__": [('PySide2.QtCore.QUrl', 'PySide2.QtGui.QWindow'), ('PySide2.QtCore.QUrl', 'PySide2.QtQuick.QQuickRenderControl'), ('PySide2.QtGui.QWindow',), ('PySide2.QtQml.QQmlEngine', 'PySide2.QtGui.QWindow')],
- "PySide2.QtQuick.QQuickView.engine": (),
- "PySide2.QtQuick.QQuickView.errors": (),
- "PySide2.QtQuick.QQuickView.initialSize": (),
- "PySide2.QtQuick.QQuickView.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtQuick.QQuickView.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtQuick.QQuickView.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickView.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickView.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickView.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtQuick.QQuickView.resizeMode": (),
- "PySide2.QtQuick.QQuickView.rootContext": (),
- "PySide2.QtQuick.QQuickView.rootObject": (),
- "PySide2.QtQuick.QQuickView.setContent": ('PySide2.QtCore.QUrl', 'PySide2.QtQml.QQmlComponent', 'PySide2.QtCore.QObject'),
- "PySide2.QtQuick.QQuickView.setInitialProperties": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtQuick.QQuickView.setResizeMode": ('PySide2.QtQuick.QQuickView.ResizeMode',),
- "PySide2.QtQuick.QQuickView.setSource": ('PySide2.QtCore.QUrl',),
- "PySide2.QtQuick.QQuickView.sizeHint": (),
- "PySide2.QtQuick.QQuickView.source": (),
- "PySide2.QtQuick.QQuickView.status": (),
- "PySide2.QtQuick.QQuickView.timerEvent": ('PySide2.QtCore.QTimerEvent',),
-# class PySide2.QtQuick.QQuickWindow:
-# class PySide2.QtQuick.QQuickWindow.CreateTextureOption:
-# class PySide2.QtQuick.QQuickWindow.CreateTextureOptions:
-# class PySide2.QtQuick.QQuickWindow.NativeObjectType:
-# class PySide2.QtQuick.QQuickWindow.RenderStage:
-# class PySide2.QtQuick.QQuickWindow.SceneGraphError:
-# class PySide2.QtQuick.QQuickWindow.TextRenderType:
- "PySide2.QtQuick.QQuickWindow.__init__": [('PySide2.QtGui.QWindow',), ('PySide2.QtQuick.QQuickRenderControl',)],
- "PySide2.QtQuick.QQuickWindow.accessibleRoot": (),
- "PySide2.QtQuick.QQuickWindow.activeFocusItem": (),
- "PySide2.QtQuick.QQuickWindow.beginExternalCommands": (),
- "PySide2.QtQuick.QQuickWindow.clearBeforeRendering": (),
- "PySide2.QtQuick.QQuickWindow.color": (),
- "PySide2.QtQuick.QQuickWindow.contentItem": (),
- "PySide2.QtQuick.QQuickWindow.createTextureFromId": ('int', 'PySide2.QtCore.QSize', 'PySide2.QtQuick.QQuickWindow.CreateTextureOptions'),
- "PySide2.QtQuick.QQuickWindow.createTextureFromImage": [('PySide2.QtGui.QImage',), ('PySide2.QtGui.QImage', 'PySide2.QtQuick.QQuickWindow.CreateTextureOptions')],
- "PySide2.QtQuick.QQuickWindow.createTextureFromNativeObject": ('PySide2.QtQuick.QQuickWindow.NativeObjectType', 'int', 'int', 'PySide2.QtCore.QSize', 'PySide2.QtQuick.QQuickWindow.CreateTextureOptions'),
- "PySide2.QtQuick.QQuickWindow.effectiveDevicePixelRatio": (),
- "PySide2.QtQuick.QQuickWindow.endExternalCommands": (),
- "PySide2.QtQuick.QQuickWindow.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtQuick.QQuickWindow.exposeEvent": ('PySide2.QtGui.QExposeEvent',),
- "PySide2.QtQuick.QQuickWindow.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtQuick.QQuickWindow.focusObject": (),
- "PySide2.QtQuick.QQuickWindow.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtQuick.QQuickWindow.grabWindow": (),
- "PySide2.QtQuick.QQuickWindow.hasDefaultAlphaBuffer": (),
- "PySide2.QtQuick.QQuickWindow.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtQuick.QQuickWindow.incubationController": (),
- "PySide2.QtQuick.QQuickWindow.isPersistentOpenGLContext": (),
- "PySide2.QtQuick.QQuickWindow.isPersistentSceneGraph": (),
- "PySide2.QtQuick.QQuickWindow.isSceneGraphInitialized": (),
- "PySide2.QtQuick.QQuickWindow.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtQuick.QQuickWindow.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtQuick.QQuickWindow.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickWindow.mouseGrabberItem": (),
- "PySide2.QtQuick.QQuickWindow.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickWindow.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickWindow.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuick.QQuickWindow.openglContext": (),
- "PySide2.QtQuick.QQuickWindow.releaseResources": (),
- "PySide2.QtQuick.QQuickWindow.renderTarget": (),
- "PySide2.QtQuick.QQuickWindow.renderTargetId": (),
- "PySide2.QtQuick.QQuickWindow.renderTargetSize": (),
- "PySide2.QtQuick.QQuickWindow.resetOpenGLState": (),
- "PySide2.QtQuick.QQuickWindow.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtQuick.QQuickWindow.sceneGraphBackend": (),
- "PySide2.QtQuick.QQuickWindow.scheduleRenderJob": ('PySide2.QtCore.QRunnable', 'PySide2.QtQuick.QQuickWindow.RenderStage'),
- "PySide2.QtQuick.QQuickWindow.sendEvent": ('PySide2.QtQuick.QQuickItem', 'PySide2.QtCore.QEvent'),
- "PySide2.QtQuick.QQuickWindow.setClearBeforeRendering": ('bool',),
- "PySide2.QtQuick.QQuickWindow.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtQuick.QQuickWindow.setDefaultAlphaBuffer": ('bool',),
- "PySide2.QtQuick.QQuickWindow.setPersistentOpenGLContext": ('bool',),
- "PySide2.QtQuick.QQuickWindow.setPersistentSceneGraph": ('bool',),
- "PySide2.QtQuick.QQuickWindow.setRenderTarget": [('PySide2.QtGui.QOpenGLFramebufferObject',), ('int', 'PySide2.QtCore.QSize')],
- "PySide2.QtQuick.QQuickWindow.setSceneGraphBackend": ('str',),
- "PySide2.QtQuick.QQuickWindow.setTextRenderType": ('PySide2.QtQuick.QQuickWindow.TextRenderType',),
- "PySide2.QtQuick.QQuickWindow.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtQuick.QQuickWindow.textRenderType": (),
- "PySide2.QtQuick.QQuickWindow.update": (),
- "PySide2.QtQuick.QQuickWindow.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtQuick.QSGAbstractRenderer:
-# class PySide2.QtQuick.QSGAbstractRenderer.ClearMode:
-# class PySide2.QtQuick.QSGAbstractRenderer.ClearModeBit:
-# class PySide2.QtQuick.QSGAbstractRenderer.MatrixTransformFlag:
-# class PySide2.QtQuick.QSGAbstractRenderer.MatrixTransformFlags:
- "PySide2.QtQuick.QSGAbstractRenderer.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtQuick.QSGAbstractRenderer.clearColor": (),
- "PySide2.QtQuick.QSGAbstractRenderer.clearMode": (),
- "PySide2.QtQuick.QSGAbstractRenderer.deviceRect": (),
- "PySide2.QtQuick.QSGAbstractRenderer.nodeChanged": ('PySide2.QtQuick.QSGNode', 'PySide2.QtQuick.QSGNode.DirtyState'),
- "PySide2.QtQuick.QSGAbstractRenderer.projectionMatrix": (),
- "PySide2.QtQuick.QSGAbstractRenderer.projectionMatrixWithNativeNDC": (),
- "PySide2.QtQuick.QSGAbstractRenderer.renderScene": ('int',),
- "PySide2.QtQuick.QSGAbstractRenderer.setClearColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtQuick.QSGAbstractRenderer.setClearMode": ('PySide2.QtQuick.QSGAbstractRenderer.ClearMode',),
- "PySide2.QtQuick.QSGAbstractRenderer.setDeviceRect": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QSize',)],
- "PySide2.QtQuick.QSGAbstractRenderer.setProjectionMatrix": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtQuick.QSGAbstractRenderer.setProjectionMatrixToRect": [('PySide2.QtCore.QRectF',), ('PySide2.QtCore.QRectF', 'PySide2.QtQuick.QSGAbstractRenderer.MatrixTransformFlags')],
- "PySide2.QtQuick.QSGAbstractRenderer.setProjectionMatrixWithNativeNDC": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtQuick.QSGAbstractRenderer.setViewportRect": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QSize',)],
- "PySide2.QtQuick.QSGAbstractRenderer.viewportRect": (),
-# class PySide2.QtQuick.QSGBasicGeometryNode:
- "PySide2.QtQuick.QSGBasicGeometryNode.__init__": ('PySide2.QtQuick.QSGNode.NodeType',),
- "PySide2.QtQuick.QSGBasicGeometryNode.clipList": (),
- "PySide2.QtQuick.QSGBasicGeometryNode.geometry": (),
- "PySide2.QtQuick.QSGBasicGeometryNode.matrix": (),
- "PySide2.QtQuick.QSGBasicGeometryNode.setGeometry": ('PySide2.QtQuick.QSGGeometry',),
- "PySide2.QtQuick.QSGBasicGeometryNode.setRendererClipList": ('PySide2.QtQuick.QSGClipNode',),
- "PySide2.QtQuick.QSGBasicGeometryNode.setRendererMatrix": ('PySide2.QtGui.QMatrix4x4',),
-# class PySide2.QtQuick.QSGClipNode:
- "PySide2.QtQuick.QSGClipNode.__init__": (),
- "PySide2.QtQuick.QSGClipNode.clipRect": (),
- "PySide2.QtQuick.QSGClipNode.isRectangular": (),
- "PySide2.QtQuick.QSGClipNode.setClipRect": ('PySide2.QtCore.QRectF',),
- "PySide2.QtQuick.QSGClipNode.setIsRectangular": ('bool',),
-# class PySide2.QtQuick.QSGDynamicTexture:
- "PySide2.QtQuick.QSGDynamicTexture.__init__": (),
- "PySide2.QtQuick.QSGDynamicTexture.updateTexture": (),
-# class PySide2.QtQuick.QSGEngine:
-# class PySide2.QtQuick.QSGEngine.CreateTextureOption:
-# class PySide2.QtQuick.QSGEngine.CreateTextureOptions:
- "PySide2.QtQuick.QSGEngine.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtQuick.QSGEngine.createRenderer": (),
- "PySide2.QtQuick.QSGEngine.createTextureFromId": ('int', 'PySide2.QtCore.QSize', 'PySide2.QtQuick.QSGEngine.CreateTextureOptions'),
- "PySide2.QtQuick.QSGEngine.createTextureFromImage": ('PySide2.QtGui.QImage', 'PySide2.QtQuick.QSGEngine.CreateTextureOptions'),
- "PySide2.QtQuick.QSGEngine.initialize": ('PySide2.QtGui.QOpenGLContext',),
- "PySide2.QtQuick.QSGEngine.invalidate": (),
-# class PySide2.QtQuick.QSGGeometry:
-# class PySide2.QtQuick.QSGGeometry.Attribute:
- "PySide2.QtQuick.QSGGeometry.Attribute.__init__": [(), ('PySide2.QtQuick.QSGGeometry.Attribute',)],
- "PySide2.QtQuick.QSGGeometry.Attribute.__copy__": (),
- "PySide2.QtQuick.QSGGeometry.Attribute.create": ('int', 'int', 'int', 'bool'),
- "PySide2.QtQuick.QSGGeometry.Attribute.createWithAttributeType": ('int', 'int', 'int', 'PySide2.QtQuick.QSGGeometry.AttributeType'),
-# class PySide2.QtQuick.QSGGeometry.AttributeSet:
- "PySide2.QtQuick.QSGGeometry.AttributeSet.__init__": [(), ('PySide2.QtQuick.QSGGeometry.AttributeSet',)],
- "PySide2.QtQuick.QSGGeometry.AttributeSet.__copy__": (),
-# class PySide2.QtQuick.QSGGeometry.AttributeType:
-# class PySide2.QtQuick.QSGGeometry.ColoredPoint2D:
- "PySide2.QtQuick.QSGGeometry.ColoredPoint2D.__init__": [(), ('PySide2.QtQuick.QSGGeometry.ColoredPoint2D',)],
- "PySide2.QtQuick.QSGGeometry.ColoredPoint2D.__copy__": (),
- "PySide2.QtQuick.QSGGeometry.ColoredPoint2D.set": ('float', 'float', 'int', 'int', 'int', 'int'),
-# class PySide2.QtQuick.QSGGeometry.DataPattern:
-# class PySide2.QtQuick.QSGGeometry.DrawingMode:
-# class PySide2.QtQuick.QSGGeometry.Point2D:
- "PySide2.QtQuick.QSGGeometry.Point2D.__init__": [(), ('PySide2.QtQuick.QSGGeometry.Point2D',)],
- "PySide2.QtQuick.QSGGeometry.Point2D.__copy__": (),
- "PySide2.QtQuick.QSGGeometry.Point2D.set": ('float', 'float'),
-# class PySide2.QtQuick.QSGGeometry.TexturedPoint2D:
- "PySide2.QtQuick.QSGGeometry.TexturedPoint2D.__init__": [(), ('PySide2.QtQuick.QSGGeometry.TexturedPoint2D',)],
- "PySide2.QtQuick.QSGGeometry.TexturedPoint2D.__copy__": (),
- "PySide2.QtQuick.QSGGeometry.TexturedPoint2D.set": ('float', 'float', 'float', 'float'),
-# class PySide2.QtQuick.QSGGeometry.Type:
- "PySide2.QtQuick.QSGGeometry.__init__": ('PySide2.QtQuick.QSGGeometry.AttributeSet', 'int', 'int', 'int'),
- "PySide2.QtQuick.QSGGeometry.allocate": ('int', 'int'),
- "PySide2.QtQuick.QSGGeometry.attributeCount": (),
- "PySide2.QtQuick.QSGGeometry.attributes": (),
- "PySide2.QtQuick.QSGGeometry.defaultAttributes_ColoredPoint2D": (),
- "PySide2.QtQuick.QSGGeometry.defaultAttributes_Point2D": (),
- "PySide2.QtQuick.QSGGeometry.defaultAttributes_TexturedPoint2D": (),
- "PySide2.QtQuick.QSGGeometry.drawingMode": (),
- "PySide2.QtQuick.QSGGeometry.indexCount": (),
- "PySide2.QtQuick.QSGGeometry.indexData": (),
- "PySide2.QtQuick.QSGGeometry.indexDataAsUInt": (),
- "PySide2.QtQuick.QSGGeometry.indexDataAsUShort": (),
- "PySide2.QtQuick.QSGGeometry.indexDataPattern": (),
- "PySide2.QtQuick.QSGGeometry.indexType": (),
- "PySide2.QtQuick.QSGGeometry.lineWidth": (),
- "PySide2.QtQuick.QSGGeometry.markIndexDataDirty": (),
- "PySide2.QtQuick.QSGGeometry.markVertexDataDirty": (),
- "PySide2.QtQuick.QSGGeometry.setDrawingMode": ('int',),
- "PySide2.QtQuick.QSGGeometry.setIndexDataPattern": ('PySide2.QtQuick.QSGGeometry.DataPattern',),
- "PySide2.QtQuick.QSGGeometry.setLineWidth": ('float',),
- "PySide2.QtQuick.QSGGeometry.setVertexDataPattern": ('PySide2.QtQuick.QSGGeometry.DataPattern',),
- "PySide2.QtQuick.QSGGeometry.sizeOfIndex": (),
- "PySide2.QtQuick.QSGGeometry.sizeOfVertex": (),
- "PySide2.QtQuick.QSGGeometry.updateColoredRectGeometry": ('PySide2.QtQuick.QSGGeometry', 'PySide2.QtCore.QRectF'),
- "PySide2.QtQuick.QSGGeometry.updateRectGeometry": ('PySide2.QtQuick.QSGGeometry', 'PySide2.QtCore.QRectF'),
- "PySide2.QtQuick.QSGGeometry.updateTexturedRectGeometry": ('PySide2.QtQuick.QSGGeometry', 'PySide2.QtCore.QRectF', 'PySide2.QtCore.QRectF'),
- "PySide2.QtQuick.QSGGeometry.vertexCount": (),
- "PySide2.QtQuick.QSGGeometry.vertexData": (),
- "PySide2.QtQuick.QSGGeometry.vertexDataAsColoredPoint2D": (),
- "PySide2.QtQuick.QSGGeometry.vertexDataAsPoint2D": (),
- "PySide2.QtQuick.QSGGeometry.vertexDataAsTexturedPoint2D": (),
- "PySide2.QtQuick.QSGGeometry.vertexDataPattern": (),
-# class PySide2.QtQuick.QSGGeometryNode:
- "PySide2.QtQuick.QSGGeometryNode.__init__": (),
- "PySide2.QtQuick.QSGGeometryNode.inheritedOpacity": (),
- "PySide2.QtQuick.QSGGeometryNode.renderOrder": (),
- "PySide2.QtQuick.QSGGeometryNode.setInheritedOpacity": ('float',),
- "PySide2.QtQuick.QSGGeometryNode.setRenderOrder": ('int',),
-# class PySide2.QtQuick.QSGMaterialType:
- "PySide2.QtQuick.QSGMaterialType.__init__": (),
-# class PySide2.QtQuick.QSGNode:
-# class PySide2.QtQuick.QSGNode.DirtyState:
-# class PySide2.QtQuick.QSGNode.DirtyStateBit:
-# class PySide2.QtQuick.QSGNode.Flag:
-# class PySide2.QtQuick.QSGNode.Flags:
-# class PySide2.QtQuick.QSGNode.NodeType:
- "PySide2.QtQuick.QSGNode.__init__": [(), ('PySide2.QtQuick.QSGNode.NodeType',)],
- "PySide2.QtQuick.QSGNode.appendChildNode": ('PySide2.QtQuick.QSGNode',),
- "PySide2.QtQuick.QSGNode.childAtIndex": ('int',),
- "PySide2.QtQuick.QSGNode.childCount": (),
- "PySide2.QtQuick.QSGNode.clearDirty": (),
- "PySide2.QtQuick.QSGNode.dirtyState": (),
- "PySide2.QtQuick.QSGNode.firstChild": (),
- "PySide2.QtQuick.QSGNode.flags": (),
- "PySide2.QtQuick.QSGNode.insertChildNodeAfter": ('PySide2.QtQuick.QSGNode', 'PySide2.QtQuick.QSGNode'),
- "PySide2.QtQuick.QSGNode.insertChildNodeBefore": ('PySide2.QtQuick.QSGNode', 'PySide2.QtQuick.QSGNode'),
- "PySide2.QtQuick.QSGNode.isSubtreeBlocked": (),
- "PySide2.QtQuick.QSGNode.lastChild": (),
- "PySide2.QtQuick.QSGNode.markDirty": ('PySide2.QtQuick.QSGNode.DirtyState',),
- "PySide2.QtQuick.QSGNode.nextSibling": (),
- "PySide2.QtQuick.QSGNode.parent": (),
- "PySide2.QtQuick.QSGNode.prependChildNode": ('PySide2.QtQuick.QSGNode',),
- "PySide2.QtQuick.QSGNode.preprocess": (),
- "PySide2.QtQuick.QSGNode.previousSibling": (),
- "PySide2.QtQuick.QSGNode.removeAllChildNodes": (),
- "PySide2.QtQuick.QSGNode.removeChildNode": ('PySide2.QtQuick.QSGNode',),
- "PySide2.QtQuick.QSGNode.reparentChildNodesTo": ('PySide2.QtQuick.QSGNode',),
- "PySide2.QtQuick.QSGNode.setFlag": ('PySide2.QtQuick.QSGNode.Flag', 'bool'),
- "PySide2.QtQuick.QSGNode.setFlags": ('PySide2.QtQuick.QSGNode.Flags', 'bool'),
- "PySide2.QtQuick.QSGNode.type": (),
-# class PySide2.QtQuick.QSGOpacityNode:
- "PySide2.QtQuick.QSGOpacityNode.__init__": (),
- "PySide2.QtQuick.QSGOpacityNode.combinedOpacity": (),
- "PySide2.QtQuick.QSGOpacityNode.isSubtreeBlocked": (),
- "PySide2.QtQuick.QSGOpacityNode.opacity": (),
- "PySide2.QtQuick.QSGOpacityNode.setCombinedOpacity": ('float',),
- "PySide2.QtQuick.QSGOpacityNode.setOpacity": ('float',),
-# class PySide2.QtQuick.QSGSimpleRectNode:
- "PySide2.QtQuick.QSGSimpleRectNode.__init__": [(), ('PySide2.QtCore.QRectF', 'PySide2.QtGui.QColor')],
- "PySide2.QtQuick.QSGSimpleRectNode.color": (),
- "PySide2.QtQuick.QSGSimpleRectNode.rect": (),
- "PySide2.QtQuick.QSGSimpleRectNode.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtQuick.QSGSimpleRectNode.setRect": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
-# class PySide2.QtQuick.QSGSimpleTextureNode:
-# class PySide2.QtQuick.QSGSimpleTextureNode.TextureCoordinatesTransformFlag:
-# class PySide2.QtQuick.QSGSimpleTextureNode.TextureCoordinatesTransformMode:
- "PySide2.QtQuick.QSGSimpleTextureNode.__init__": (),
- "PySide2.QtQuick.QSGSimpleTextureNode.filtering": (),
- "PySide2.QtQuick.QSGSimpleTextureNode.ownsTexture": (),
- "PySide2.QtQuick.QSGSimpleTextureNode.rect": (),
- "PySide2.QtQuick.QSGSimpleTextureNode.setFiltering": ('PySide2.QtQuick.QSGTexture.Filtering',),
- "PySide2.QtQuick.QSGSimpleTextureNode.setOwnsTexture": ('bool',),
- "PySide2.QtQuick.QSGSimpleTextureNode.setRect": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtQuick.QSGSimpleTextureNode.setSourceRect": [('PySide2.QtCore.QRectF',), ('float', 'float', 'float', 'float')],
- "PySide2.QtQuick.QSGSimpleTextureNode.setTexture": ('PySide2.QtQuick.QSGTexture',),
- "PySide2.QtQuick.QSGSimpleTextureNode.setTextureCoordinatesTransform": ('PySide2.QtQuick.QSGSimpleTextureNode.TextureCoordinatesTransformMode',),
- "PySide2.QtQuick.QSGSimpleTextureNode.sourceRect": (),
- "PySide2.QtQuick.QSGSimpleTextureNode.texture": (),
- "PySide2.QtQuick.QSGSimpleTextureNode.textureCoordinatesTransform": (),
-# class PySide2.QtQuick.QSGTexture:
-# class PySide2.QtQuick.QSGTexture.AnisotropyLevel:
-# class PySide2.QtQuick.QSGTexture.Filtering:
-# class PySide2.QtQuick.QSGTexture.WrapMode:
- "PySide2.QtQuick.QSGTexture.__init__": (),
- "PySide2.QtQuick.QSGTexture.anisotropyLevel": (),
- "PySide2.QtQuick.QSGTexture.bind": (),
- "PySide2.QtQuick.QSGTexture.comparisonKey": (),
- "PySide2.QtQuick.QSGTexture.convertToNormalizedSourceRect": ('PySide2.QtCore.QRectF',),
- "PySide2.QtQuick.QSGTexture.filtering": (),
- "PySide2.QtQuick.QSGTexture.hasAlphaChannel": (),
- "PySide2.QtQuick.QSGTexture.hasMipmaps": (),
- "PySide2.QtQuick.QSGTexture.horizontalWrapMode": (),
- "PySide2.QtQuick.QSGTexture.isAtlasTexture": (),
- "PySide2.QtQuick.QSGTexture.mipmapFiltering": (),
- "PySide2.QtQuick.QSGTexture.normalizedTextureSubRect": (),
- "PySide2.QtQuick.QSGTexture.removedFromAtlas": (),
- "PySide2.QtQuick.QSGTexture.setAnisotropyLevel": ('PySide2.QtQuick.QSGTexture.AnisotropyLevel',),
- "PySide2.QtQuick.QSGTexture.setFiltering": ('PySide2.QtQuick.QSGTexture.Filtering',),
- "PySide2.QtQuick.QSGTexture.setHorizontalWrapMode": ('PySide2.QtQuick.QSGTexture.WrapMode',),
- "PySide2.QtQuick.QSGTexture.setMipmapFiltering": ('PySide2.QtQuick.QSGTexture.Filtering',),
- "PySide2.QtQuick.QSGTexture.setVerticalWrapMode": ('PySide2.QtQuick.QSGTexture.WrapMode',),
- "PySide2.QtQuick.QSGTexture.textureId": (),
- "PySide2.QtQuick.QSGTexture.textureSize": (),
- "PySide2.QtQuick.QSGTexture.updateBindOptions": ('bool',),
- "PySide2.QtQuick.QSGTexture.verticalWrapMode": (),
-# class PySide2.QtQuick.QSGTextureProvider:
- "PySide2.QtQuick.QSGTextureProvider.__init__": (),
- "PySide2.QtQuick.QSGTextureProvider.texture": (),
-# class PySide2.QtQuick.QSGTransformNode:
- "PySide2.QtQuick.QSGTransformNode.__init__": (),
- "PySide2.QtQuick.QSGTransformNode.combinedMatrix": (),
- "PySide2.QtQuick.QSGTransformNode.matrix": (),
- "PySide2.QtQuick.QSGTransformNode.setCombinedMatrix": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.QtQuick.QSGTransformNode.setMatrix": ('PySide2.QtGui.QMatrix4x4',),
-# class PySide2.QtQuick.QSharedPointer<QQuickItemGrabResult >:
- "PySide2.QtQuick.QSharedPointer<QQuickItemGrabResult >.__copy__": (),
- "PySide2.QtQuick.QSharedPointer<QQuickItemGrabResult >.data": (),
- }) if "PySide2.QtQuick" in sys.modules else None
-# Module PySide2.QtQuickWidgets
-sig_dict.update({
-# class PySide2.QtQuickWidgets.QQuickWidget:
-# class PySide2.QtQuickWidgets.QQuickWidget.ResizeMode:
-# class PySide2.QtQuickWidgets.QQuickWidget.Status:
- "PySide2.QtQuickWidgets.QQuickWidget.__init__": [('PySide2.QtCore.QUrl', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtQml.QQmlEngine', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtQuickWidgets.QQuickWidget.dragEnterEvent": ('PySide2.QtGui.QDragEnterEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.engine": (),
- "PySide2.QtQuickWidgets.QQuickWidget.errors": (),
- "PySide2.QtQuickWidgets.QQuickWidget.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.focusInEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.focusNextPrevChild": ('bool',),
- "PySide2.QtQuickWidgets.QQuickWidget.focusOutEvent": ('PySide2.QtGui.QFocusEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.format": (),
- "PySide2.QtQuickWidgets.QQuickWidget.grabFramebuffer": (),
- "PySide2.QtQuickWidgets.QQuickWidget.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.initialSize": (),
- "PySide2.QtQuickWidgets.QQuickWidget.keyPressEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.keyReleaseEvent": ('PySide2.QtGui.QKeyEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.quickWindow": (),
- "PySide2.QtQuickWidgets.QQuickWidget.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.resizeMode": (),
- "PySide2.QtQuickWidgets.QQuickWidget.rootContext": (),
- "PySide2.QtQuickWidgets.QQuickWidget.rootObject": (),
- "PySide2.QtQuickWidgets.QQuickWidget.setClearColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtQuickWidgets.QQuickWidget.setContent": ('PySide2.QtCore.QUrl', 'PySide2.QtQml.QQmlComponent', 'PySide2.QtCore.QObject'),
- "PySide2.QtQuickWidgets.QQuickWidget.setFormat": ('PySide2.QtGui.QSurfaceFormat',),
- "PySide2.QtQuickWidgets.QQuickWidget.setResizeMode": ('PySide2.QtQuickWidgets.QQuickWidget.ResizeMode',),
- "PySide2.QtQuickWidgets.QQuickWidget.setSource": ('PySide2.QtCore.QUrl',),
- "PySide2.QtQuickWidgets.QQuickWidget.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.sizeHint": (),
- "PySide2.QtQuickWidgets.QQuickWidget.source": (),
- "PySide2.QtQuickWidgets.QQuickWidget.status": (),
- "PySide2.QtQuickWidgets.QQuickWidget.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtQuickWidgets.QQuickWidget.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
- }) if "PySide2.QtQuickWidgets" in sys.modules else None
-# Module PySide2.QtRemoteObjects
-sig_dict.update({
-# class PySide2.QtRemoteObjects.QAbstractItemModelReplica:
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.availableRoles": (),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.columnCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.data": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.flags": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.hasChildren": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.hasData": ('PySide2.QtCore.QModelIndex', 'int'),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.headerData": ('int', 'PySide2.QtCore.Qt.Orientation', 'int'),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.index": ('int', 'int', 'PySide2.QtCore.QModelIndex'),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.isInitialized": (),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.parent": [(), ('PySide2.QtCore.QModelIndex',)],
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.roleNames": (),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.rowCount": ('PySide2.QtCore.QModelIndex',),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.selectionModel": (),
- "PySide2.QtRemoteObjects.QAbstractItemModelReplica.setData": ('PySide2.QtCore.QModelIndex', 'typing.Any', 'int'),
-# class PySide2.QtRemoteObjects.QRemoteObjectAbstractPersistedStore:
- "PySide2.QtRemoteObjects.QRemoteObjectAbstractPersistedStore.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtRemoteObjects.QRemoteObjectAbstractPersistedStore.restoreProperties": ('str', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtRemoteObjects.QRemoteObjectAbstractPersistedStore.saveProperties": ('str', 'PySide2.QtCore.QByteArray', 'typing.Sequence[typing.Any]'),
-# class PySide2.QtRemoteObjects.QRemoteObjectDynamicReplica:
-# class PySide2.QtRemoteObjects.QRemoteObjectHost:
- "PySide2.QtRemoteObjects.QRemoteObjectHost.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtCore.QUrl', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QUrl', 'PySide2.QtCore.QUrl', 'PySide2.QtRemoteObjects.QRemoteObjectHostBase.AllowedSchemas', 'PySide2.QtCore.QObject')],
- "PySide2.QtRemoteObjects.QRemoteObjectHost.hostUrl": (),
- "PySide2.QtRemoteObjects.QRemoteObjectHost.setHostUrl": ('PySide2.QtCore.QUrl', 'PySide2.QtRemoteObjects.QRemoteObjectHostBase.AllowedSchemas'),
-# class PySide2.QtRemoteObjects.QRemoteObjectHostBase:
-# class PySide2.QtRemoteObjects.QRemoteObjectHostBase.AllowedSchemas:
- "PySide2.QtRemoteObjects.QRemoteObjectHostBase.addHostSideConnection": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtRemoteObjects.QRemoteObjectHostBase.disableRemoting": ('PySide2.QtCore.QObject',),
- "PySide2.QtRemoteObjects.QRemoteObjectHostBase.enableRemoting": [('PySide2.QtCore.QAbstractItemModel', 'str', 'typing.List[int]', 'PySide2.QtCore.QItemSelectionModel'), ('PySide2.QtCore.QObject', 'str')],
- "PySide2.QtRemoteObjects.QRemoteObjectHostBase.hostUrl": (),
- "PySide2.QtRemoteObjects.QRemoteObjectHostBase.proxy": ('PySide2.QtCore.QUrl', 'PySide2.QtCore.QUrl'),
- "PySide2.QtRemoteObjects.QRemoteObjectHostBase.reverseProxy": (),
- "PySide2.QtRemoteObjects.QRemoteObjectHostBase.setHostUrl": ('PySide2.QtCore.QUrl', 'PySide2.QtRemoteObjects.QRemoteObjectHostBase.AllowedSchemas'),
- "PySide2.QtRemoteObjects.QRemoteObjectHostBase.setName": ('str',),
-# class PySide2.QtRemoteObjects.QRemoteObjectNode:
-# class PySide2.QtRemoteObjects.QRemoteObjectNode.ErrorCode:
- "PySide2.QtRemoteObjects.QRemoteObjectNode.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtCore.QUrl', 'PySide2.QtCore.QObject')],
- "PySide2.QtRemoteObjects.QRemoteObjectNode.acquireDynamic": ('str',),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.acquireModel": ('str',),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.addClientSideConnection": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.connectToNode": ('PySide2.QtCore.QUrl',),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.heartbeatInterval": (),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.instances": ('str',),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.lastError": (),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.persistedStore": (),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.registry": (),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.registryUrl": (),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.setHeartbeatInterval": ('int',),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.setName": ('str',),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.setPersistedStore": ('PySide2.QtRemoteObjects.QRemoteObjectAbstractPersistedStore',),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.setRegistryUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.timerEvent": ('PySide2.QtCore.QTimerEvent',),
- "PySide2.QtRemoteObjects.QRemoteObjectNode.waitForRegistry": ('int',),
-# class PySide2.QtRemoteObjects.QRemoteObjectPendingCall:
-# class PySide2.QtRemoteObjects.QRemoteObjectPendingCall.Error:
- "PySide2.QtRemoteObjects.QRemoteObjectPendingCall.__init__": [(), ('PySide2.QtRemoteObjects.QRemoteObjectPendingCall',)],
- "PySide2.QtRemoteObjects.QRemoteObjectPendingCall.error": (),
- "PySide2.QtRemoteObjects.QRemoteObjectPendingCall.fromCompletedCall": ('typing.Any',),
- "PySide2.QtRemoteObjects.QRemoteObjectPendingCall.isFinished": (),
- "PySide2.QtRemoteObjects.QRemoteObjectPendingCall.returnValue": (),
- "PySide2.QtRemoteObjects.QRemoteObjectPendingCall.waitForFinished": ('int',),
-# class PySide2.QtRemoteObjects.QRemoteObjectPendingCallWatcher:
- "PySide2.QtRemoteObjects.QRemoteObjectPendingCallWatcher.__init__": ('PySide2.QtRemoteObjects.QRemoteObjectPendingCall', 'PySide2.QtCore.QObject'),
- "PySide2.QtRemoteObjects.QRemoteObjectPendingCallWatcher.isFinished": (),
- "PySide2.QtRemoteObjects.QRemoteObjectPendingCallWatcher.waitForFinished": [(), ('int',)],
-# class PySide2.QtRemoteObjects.QRemoteObjectRegistry:
- "PySide2.QtRemoteObjects.QRemoteObjectRegistry.initialize": (),
- "PySide2.QtRemoteObjects.QRemoteObjectRegistry.pushToRegistryIfNeeded": (),
- "PySide2.QtRemoteObjects.QRemoteObjectRegistry.registerMetatypes": (),
-# class PySide2.QtRemoteObjects.QRemoteObjectRegistryHost:
- "PySide2.QtRemoteObjects.QRemoteObjectRegistryHost.__init__": ('PySide2.QtCore.QUrl', 'PySide2.QtCore.QObject'),
- "PySide2.QtRemoteObjects.QRemoteObjectRegistryHost.setRegistryUrl": ('PySide2.QtCore.QUrl',),
-# class PySide2.QtRemoteObjects.QRemoteObjectReplica:
-# class PySide2.QtRemoteObjects.QRemoteObjectReplica.State:
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.__init__": (),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.initialize": (),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.initializeNode": ('PySide2.QtRemoteObjects.QRemoteObjectNode', 'str'),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.isInitialized": (),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.isReplicaValid": (),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.node": (),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.persistProperties": ('str', 'PySide2.QtCore.QByteArray', 'typing.Sequence[typing.Any]'),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.propAsVariant": ('int',),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.retrieveProperties": ('str', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.send": ('PySide2.QtCore.QMetaObject.Call', 'int', 'typing.Sequence[typing.Any]'),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.sendWithReply": ('PySide2.QtCore.QMetaObject.Call', 'int', 'typing.Sequence[typing.Any]'),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.setChild": ('int', 'typing.Any'),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.setNode": ('PySide2.QtRemoteObjects.QRemoteObjectNode',),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.setProperties": ('typing.Sequence[typing.Any]',),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.state": (),
- "PySide2.QtRemoteObjects.QRemoteObjectReplica.waitForSource": ('int',),
-# class PySide2.QtRemoteObjects.QRemoteObjectSettingsStore:
- "PySide2.QtRemoteObjects.QRemoteObjectSettingsStore.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtRemoteObjects.QRemoteObjectSettingsStore.restoreProperties": ('str', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtRemoteObjects.QRemoteObjectSettingsStore.saveProperties": ('str', 'PySide2.QtCore.QByteArray', 'typing.Sequence[typing.Any]'),
- }) if "PySide2.QtRemoteObjects" in sys.modules else None
-# Module PySide2.QtScxml
-sig_dict.update({
-# class PySide2.QtScxml.QScxmlCompiler:
-# class PySide2.QtScxml.QScxmlCompiler.Loader:
- "PySide2.QtScxml.QScxmlCompiler.Loader.__init__": (),
- "PySide2.QtScxml.QScxmlCompiler.Loader.load": ('str', 'str'),
- "PySide2.QtScxml.QScxmlCompiler.__init__": ('PySide2.QtCore.QXmlStreamReader',),
- "PySide2.QtScxml.QScxmlCompiler.compile": (),
- "PySide2.QtScxml.QScxmlCompiler.errors": (),
- "PySide2.QtScxml.QScxmlCompiler.fileName": (),
- "PySide2.QtScxml.QScxmlCompiler.loader": (),
- "PySide2.QtScxml.QScxmlCompiler.setFileName": ('str',),
- "PySide2.QtScxml.QScxmlCompiler.setLoader": ('PySide2.QtScxml.QScxmlCompiler.Loader',),
-# class PySide2.QtScxml.QScxmlCppDataModel:
- "PySide2.QtScxml.QScxmlCppDataModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtScxml.QScxmlCppDataModel.evaluateAssignment": ('int',),
- "PySide2.QtScxml.QScxmlCppDataModel.evaluateForeach": ('int', 'PySide2.QtScxml.QScxmlDataModel.ForeachLoopBody'),
- "PySide2.QtScxml.QScxmlCppDataModel.evaluateInitialization": ('int',),
- "PySide2.QtScxml.QScxmlCppDataModel.hasScxmlProperty": ('str',),
- "PySide2.QtScxml.QScxmlCppDataModel.inState": ('str',),
- "PySide2.QtScxml.QScxmlCppDataModel.scxmlEvent": (),
- "PySide2.QtScxml.QScxmlCppDataModel.scxmlProperty": ('str',),
- "PySide2.QtScxml.QScxmlCppDataModel.setScxmlEvent": ('PySide2.QtScxml.QScxmlEvent',),
- "PySide2.QtScxml.QScxmlCppDataModel.setScxmlProperty": ('str', 'typing.Any', 'str'),
- "PySide2.QtScxml.QScxmlCppDataModel.setup": ('typing.Dict[str, typing.Any]',),
-# class PySide2.QtScxml.QScxmlDataModel:
-# class PySide2.QtScxml.QScxmlDataModel.ForeachLoopBody:
- "PySide2.QtScxml.QScxmlDataModel.ForeachLoopBody.__init__": (),
- "PySide2.QtScxml.QScxmlDataModel.ForeachLoopBody.run": (),
- "PySide2.QtScxml.QScxmlDataModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtScxml.QScxmlDataModel.evaluateAssignment": ('int',),
- "PySide2.QtScxml.QScxmlDataModel.evaluateForeach": ('int', 'PySide2.QtScxml.QScxmlDataModel.ForeachLoopBody'),
- "PySide2.QtScxml.QScxmlDataModel.evaluateInitialization": ('int',),
- "PySide2.QtScxml.QScxmlDataModel.evaluateToBool": ('int',),
- "PySide2.QtScxml.QScxmlDataModel.evaluateToString": ('int',),
- "PySide2.QtScxml.QScxmlDataModel.evaluateToVariant": ('int',),
- "PySide2.QtScxml.QScxmlDataModel.evaluateToVoid": ('int',),
- "PySide2.QtScxml.QScxmlDataModel.hasScxmlProperty": ('str',),
- "PySide2.QtScxml.QScxmlDataModel.scxmlProperty": ('str',),
- "PySide2.QtScxml.QScxmlDataModel.setScxmlEvent": ('PySide2.QtScxml.QScxmlEvent',),
- "PySide2.QtScxml.QScxmlDataModel.setScxmlProperty": ('str', 'typing.Any', 'str'),
- "PySide2.QtScxml.QScxmlDataModel.setStateMachine": ('PySide2.QtScxml.QScxmlStateMachine',),
- "PySide2.QtScxml.QScxmlDataModel.setup": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtScxml.QScxmlDataModel.stateMachine": (),
-# class PySide2.QtScxml.QScxmlDynamicScxmlServiceFactory:
- "PySide2.QtScxml.QScxmlDynamicScxmlServiceFactory.__init__": ('PySide2.QtScxml.QScxmlExecutableContent.InvokeInfo', 'typing.List[int]', 'typing.List[PySide2.QtScxml.QScxmlExecutableContent.ParameterInfo]', 'PySide2.QtCore.QObject'),
- "PySide2.QtScxml.QScxmlDynamicScxmlServiceFactory.invoke": ('PySide2.QtScxml.QScxmlStateMachine',),
-# class PySide2.QtScxml.QScxmlEcmaScriptDataModel:
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.evaluateAssignment": ('int',),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.evaluateForeach": ('int', 'PySide2.QtScxml.QScxmlDataModel.ForeachLoopBody'),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.evaluateInitialization": ('int',),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.evaluateToBool": ('int',),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.evaluateToString": ('int',),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.evaluateToVariant": ('int',),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.evaluateToVoid": ('int',),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.hasScxmlProperty": ('str',),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.scxmlProperty": ('str',),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.setScxmlEvent": ('PySide2.QtScxml.QScxmlEvent',),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.setScxmlProperty": ('str', 'typing.Any', 'str'),
- "PySide2.QtScxml.QScxmlEcmaScriptDataModel.setup": ('typing.Dict[str, typing.Any]',),
-# class PySide2.QtScxml.QScxmlError:
- "PySide2.QtScxml.QScxmlError.__init__": [(), ('PySide2.QtScxml.QScxmlError',), ('str', 'int', 'int', 'str')],
- "PySide2.QtScxml.QScxmlError.__copy__": (),
- "PySide2.QtScxml.QScxmlError.column": (),
- "PySide2.QtScxml.QScxmlError.description": (),
- "PySide2.QtScxml.QScxmlError.fileName": (),
- "PySide2.QtScxml.QScxmlError.isValid": (),
- "PySide2.QtScxml.QScxmlError.line": (),
- "PySide2.QtScxml.QScxmlError.toString": (),
-# class PySide2.QtScxml.QScxmlEvent:
-# class PySide2.QtScxml.QScxmlEvent.EventType:
- "PySide2.QtScxml.QScxmlEvent.__init__": [(), ('PySide2.QtScxml.QScxmlEvent',)],
- "PySide2.QtScxml.QScxmlEvent.clear": (),
- "PySide2.QtScxml.QScxmlEvent.data": (),
- "PySide2.QtScxml.QScxmlEvent.delay": (),
- "PySide2.QtScxml.QScxmlEvent.errorMessage": (),
- "PySide2.QtScxml.QScxmlEvent.eventType": (),
- "PySide2.QtScxml.QScxmlEvent.invokeId": (),
- "PySide2.QtScxml.QScxmlEvent.isErrorEvent": (),
- "PySide2.QtScxml.QScxmlEvent.name": (),
- "PySide2.QtScxml.QScxmlEvent.origin": (),
- "PySide2.QtScxml.QScxmlEvent.originType": (),
- "PySide2.QtScxml.QScxmlEvent.scxmlType": (),
- "PySide2.QtScxml.QScxmlEvent.sendId": (),
- "PySide2.QtScxml.QScxmlEvent.setData": ('typing.Any',),
- "PySide2.QtScxml.QScxmlEvent.setDelay": ('int',),
- "PySide2.QtScxml.QScxmlEvent.setErrorMessage": ('str',),
- "PySide2.QtScxml.QScxmlEvent.setEventType": ('PySide2.QtScxml.QScxmlEvent.EventType',),
- "PySide2.QtScxml.QScxmlEvent.setInvokeId": ('str',),
- "PySide2.QtScxml.QScxmlEvent.setName": ('str',),
- "PySide2.QtScxml.QScxmlEvent.setOrigin": ('str',),
- "PySide2.QtScxml.QScxmlEvent.setOriginType": ('str',),
- "PySide2.QtScxml.QScxmlEvent.setSendId": ('str',),
-# class PySide2.QtScxml.QScxmlExecutableContent:
-# class PySide2.QtScxml.QScxmlExecutableContent.AssignmentInfo:
- "PySide2.QtScxml.QScxmlExecutableContent.AssignmentInfo.__init__": [(), ('PySide2.QtScxml.QScxmlExecutableContent.AssignmentInfo',)],
- "PySide2.QtScxml.QScxmlExecutableContent.AssignmentInfo.__copy__": (),
-# class PySide2.QtScxml.QScxmlExecutableContent.EvaluatorInfo:
- "PySide2.QtScxml.QScxmlExecutableContent.EvaluatorInfo.__init__": [(), ('PySide2.QtScxml.QScxmlExecutableContent.EvaluatorInfo',)],
- "PySide2.QtScxml.QScxmlExecutableContent.EvaluatorInfo.__copy__": (),
-# class PySide2.QtScxml.QScxmlExecutableContent.ForeachInfo:
- "PySide2.QtScxml.QScxmlExecutableContent.ForeachInfo.__init__": [(), ('PySide2.QtScxml.QScxmlExecutableContent.ForeachInfo',)],
- "PySide2.QtScxml.QScxmlExecutableContent.ForeachInfo.__copy__": (),
-# class PySide2.QtScxml.QScxmlExecutableContent.InvokeInfo:
- "PySide2.QtScxml.QScxmlExecutableContent.InvokeInfo.__init__": [(), ('PySide2.QtScxml.QScxmlExecutableContent.InvokeInfo',)],
- "PySide2.QtScxml.QScxmlExecutableContent.InvokeInfo.__copy__": (),
-# class PySide2.QtScxml.QScxmlExecutableContent.ParameterInfo:
- "PySide2.QtScxml.QScxmlExecutableContent.ParameterInfo.__init__": [(), ('PySide2.QtScxml.QScxmlExecutableContent.ParameterInfo',)],
- "PySide2.QtScxml.QScxmlExecutableContent.ParameterInfo.__copy__": (),
-# class PySide2.QtScxml.QScxmlInvokableService:
- "PySide2.QtScxml.QScxmlInvokableService.__init__": ('PySide2.QtScxml.QScxmlStateMachine', 'PySide2.QtScxml.QScxmlInvokableServiceFactory'),
- "PySide2.QtScxml.QScxmlInvokableService.id": (),
- "PySide2.QtScxml.QScxmlInvokableService.name": (),
- "PySide2.QtScxml.QScxmlInvokableService.parentStateMachine": (),
- "PySide2.QtScxml.QScxmlInvokableService.postEvent": ('PySide2.QtScxml.QScxmlEvent',),
- "PySide2.QtScxml.QScxmlInvokableService.start": (),
-# class PySide2.QtScxml.QScxmlInvokableServiceFactory:
- "PySide2.QtScxml.QScxmlInvokableServiceFactory.__init__": ('PySide2.QtScxml.QScxmlExecutableContent.InvokeInfo', 'typing.List[int]', 'typing.List[PySide2.QtScxml.QScxmlExecutableContent.ParameterInfo]', 'PySide2.QtCore.QObject'),
- "PySide2.QtScxml.QScxmlInvokableServiceFactory.invoke": ('PySide2.QtScxml.QScxmlStateMachine',),
- "PySide2.QtScxml.QScxmlInvokableServiceFactory.invokeInfo": (),
- "PySide2.QtScxml.QScxmlInvokableServiceFactory.names": (),
- "PySide2.QtScxml.QScxmlInvokableServiceFactory.parameters": (),
-# class PySide2.QtScxml.QScxmlNullDataModel:
- "PySide2.QtScxml.QScxmlNullDataModel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtScxml.QScxmlNullDataModel.evaluateAssignment": ('int',),
- "PySide2.QtScxml.QScxmlNullDataModel.evaluateForeach": ('int', 'PySide2.QtScxml.QScxmlDataModel.ForeachLoopBody'),
- "PySide2.QtScxml.QScxmlNullDataModel.evaluateInitialization": ('int',),
- "PySide2.QtScxml.QScxmlNullDataModel.evaluateToBool": ('int',),
- "PySide2.QtScxml.QScxmlNullDataModel.evaluateToString": ('int',),
- "PySide2.QtScxml.QScxmlNullDataModel.evaluateToVariant": ('int',),
- "PySide2.QtScxml.QScxmlNullDataModel.evaluateToVoid": ('int',),
- "PySide2.QtScxml.QScxmlNullDataModel.hasScxmlProperty": ('str',),
- "PySide2.QtScxml.QScxmlNullDataModel.scxmlProperty": ('str',),
- "PySide2.QtScxml.QScxmlNullDataModel.setScxmlEvent": ('PySide2.QtScxml.QScxmlEvent',),
- "PySide2.QtScxml.QScxmlNullDataModel.setScxmlProperty": ('str', 'typing.Any', 'str'),
- "PySide2.QtScxml.QScxmlNullDataModel.setup": ('typing.Dict[str, typing.Any]',),
-# class PySide2.QtScxml.QScxmlStateMachine:
- "PySide2.QtScxml.QScxmlStateMachine.__init__": ('PySide2.QtCore.QMetaObject', 'PySide2.QtCore.QObject'),
- "PySide2.QtScxml.QScxmlStateMachine.activeStateNames": ('bool',),
- "PySide2.QtScxml.QScxmlStateMachine.cancelDelayedEvent": ('str',),
- "PySide2.QtScxml.QScxmlStateMachine.connectToEvent": ('str', 'PySide2.QtCore.QObject', 'str', 'PySide2.QtCore.Qt.ConnectionType'),
- "PySide2.QtScxml.QScxmlStateMachine.connectToState": ('str', 'PySide2.QtCore.QObject', 'str', 'PySide2.QtCore.Qt.ConnectionType'),
- "PySide2.QtScxml.QScxmlStateMachine.dataModel": (),
- "PySide2.QtScxml.QScxmlStateMachine.fromData": ('PySide2.QtCore.QIODevice', 'str'),
- "PySide2.QtScxml.QScxmlStateMachine.fromFile": ('str',),
- "PySide2.QtScxml.QScxmlStateMachine.init": (),
- "PySide2.QtScxml.QScxmlStateMachine.initialValues": (),
- "PySide2.QtScxml.QScxmlStateMachine.invokedServices": (),
- "PySide2.QtScxml.QScxmlStateMachine.isActive": [('int',), ('str',)],
- "PySide2.QtScxml.QScxmlStateMachine.isDispatchableTarget": ('str',),
- "PySide2.QtScxml.QScxmlStateMachine.isInitialized": (),
- "PySide2.QtScxml.QScxmlStateMachine.isInvoked": (),
- "PySide2.QtScxml.QScxmlStateMachine.isRunning": (),
- "PySide2.QtScxml.QScxmlStateMachine.loader": (),
- "PySide2.QtScxml.QScxmlStateMachine.name": (),
- "PySide2.QtScxml.QScxmlStateMachine.parseErrors": (),
- "PySide2.QtScxml.QScxmlStateMachine.sessionId": (),
- "PySide2.QtScxml.QScxmlStateMachine.setDataModel": ('PySide2.QtScxml.QScxmlDataModel',),
- "PySide2.QtScxml.QScxmlStateMachine.setInitialValues": ('typing.Dict[str, typing.Any]',),
- "PySide2.QtScxml.QScxmlStateMachine.setLoader": ('PySide2.QtScxml.QScxmlCompiler.Loader',),
- "PySide2.QtScxml.QScxmlStateMachine.setRunning": ('bool',),
- "PySide2.QtScxml.QScxmlStateMachine.setTableData": ('PySide2.QtScxml.QScxmlTableData',),
- "PySide2.QtScxml.QScxmlStateMachine.start": (),
- "PySide2.QtScxml.QScxmlStateMachine.stateNames": ('bool',),
- "PySide2.QtScxml.QScxmlStateMachine.stop": (),
- "PySide2.QtScxml.QScxmlStateMachine.submitEvent": [('PySide2.QtScxml.QScxmlEvent',), ('str',), ('str', 'typing.Any')],
- "PySide2.QtScxml.QScxmlStateMachine.tableData": (),
-# class PySide2.QtScxml.QScxmlStaticScxmlServiceFactory:
- "PySide2.QtScxml.QScxmlStaticScxmlServiceFactory.__init__": ('PySide2.QtCore.QMetaObject', 'PySide2.QtScxml.QScxmlExecutableContent.InvokeInfo', 'typing.List[int]', 'typing.List[PySide2.QtScxml.QScxmlExecutableContent.ParameterInfo]', 'PySide2.QtCore.QObject'),
- "PySide2.QtScxml.QScxmlStaticScxmlServiceFactory.invoke": ('PySide2.QtScxml.QScxmlStateMachine',),
-# class PySide2.QtScxml.QScxmlTableData:
- "PySide2.QtScxml.QScxmlTableData.__init__": (),
- "PySide2.QtScxml.QScxmlTableData.assignmentInfo": ('int',),
- "PySide2.QtScxml.QScxmlTableData.dataNames": (),
- "PySide2.QtScxml.QScxmlTableData.evaluatorInfo": ('int',),
- "PySide2.QtScxml.QScxmlTableData.foreachInfo": ('int',),
- "PySide2.QtScxml.QScxmlTableData.initialSetup": (),
- "PySide2.QtScxml.QScxmlTableData.instructions": (),
- "PySide2.QtScxml.QScxmlTableData.name": (),
- "PySide2.QtScxml.QScxmlTableData.serviceFactory": ('int',),
- "PySide2.QtScxml.QScxmlTableData.stateMachineTable": (),
- "PySide2.QtScxml.QScxmlTableData.string": ('int',),
- }) if "PySide2.QtScxml" in sys.modules else None
-# Module PySide2.QtScript
-sig_dict.update({
-# class PySide2.QtScript.QScriptClass:
-# class PySide2.QtScript.QScriptClass.Extension:
-# class PySide2.QtScript.QScriptClass.QueryFlag:
- "PySide2.QtScript.QScriptClass.__init__": ('PySide2.QtScript.QScriptEngine',),
- "PySide2.QtScript.QScriptClass.engine": (),
- "PySide2.QtScript.QScriptClass.extension": ('PySide2.QtScript.QScriptClass.Extension', 'typing.Any'),
- "PySide2.QtScript.QScriptClass.name": (),
- "PySide2.QtScript.QScriptClass.newIterator": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptClass.property": ('PySide2.QtScript.QScriptValue', 'PySide2.QtScript.QScriptString', 'int'),
- "PySide2.QtScript.QScriptClass.propertyFlags": ('PySide2.QtScript.QScriptValue', 'PySide2.QtScript.QScriptString', 'int'),
- "PySide2.QtScript.QScriptClass.prototype": (),
- "PySide2.QtScript.QScriptClass.setProperty": ('PySide2.QtScript.QScriptValue', 'PySide2.QtScript.QScriptString', 'int', 'PySide2.QtScript.QScriptValue'),
- "PySide2.QtScript.QScriptClass.supportsExtension": ('PySide2.QtScript.QScriptClass.Extension',),
-# class PySide2.QtScript.QScriptClassPropertyIterator:
- "PySide2.QtScript.QScriptClassPropertyIterator.__init__": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptClassPropertyIterator.flags": (),
- "PySide2.QtScript.QScriptClassPropertyIterator.hasNext": (),
- "PySide2.QtScript.QScriptClassPropertyIterator.hasPrevious": (),
- "PySide2.QtScript.QScriptClassPropertyIterator.id": (),
- "PySide2.QtScript.QScriptClassPropertyIterator.name": (),
- "PySide2.QtScript.QScriptClassPropertyIterator.object": (),
- "PySide2.QtScript.QScriptClassPropertyIterator.previous": (),
- "PySide2.QtScript.QScriptClassPropertyIterator.toBack": (),
- "PySide2.QtScript.QScriptClassPropertyIterator.toFront": (),
-# class PySide2.QtScript.QScriptContext:
-# class PySide2.QtScript.QScriptContext.Error:
-# class PySide2.QtScript.QScriptContext.ExecutionState:
- "PySide2.QtScript.QScriptContext.activationObject": (),
- "PySide2.QtScript.QScriptContext.argument": ('int',),
- "PySide2.QtScript.QScriptContext.argumentCount": (),
- "PySide2.QtScript.QScriptContext.argumentsObject": (),
- "PySide2.QtScript.QScriptContext.backtrace": (),
- "PySide2.QtScript.QScriptContext.callee": (),
- "PySide2.QtScript.QScriptContext.engine": (),
- "PySide2.QtScript.QScriptContext.isCalledAsConstructor": (),
- "PySide2.QtScript.QScriptContext.parentContext": (),
- "PySide2.QtScript.QScriptContext.popScope": (),
- "PySide2.QtScript.QScriptContext.pushScope": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptContext.returnValue": (),
- "PySide2.QtScript.QScriptContext.scopeChain": (),
- "PySide2.QtScript.QScriptContext.setActivationObject": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptContext.setReturnValue": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptContext.setThisObject": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptContext.state": (),
- "PySide2.QtScript.QScriptContext.thisObject": (),
- "PySide2.QtScript.QScriptContext.throwError": [('PySide2.QtScript.QScriptContext.Error', 'str'), ('str',)],
- "PySide2.QtScript.QScriptContext.throwValue": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptContext.toString": (),
-# class PySide2.QtScript.QScriptContextInfo:
-# class PySide2.QtScript.QScriptContextInfo.FunctionType:
- "PySide2.QtScript.QScriptContextInfo.__init__": [(), ('PySide2.QtScript.QScriptContext',), ('PySide2.QtScript.QScriptContextInfo',)],
- "PySide2.QtScript.QScriptContextInfo.__copy__": (),
- "PySide2.QtScript.QScriptContextInfo.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtScript.QScriptContextInfo.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtScript.QScriptContextInfo.columnNumber": (),
- "PySide2.QtScript.QScriptContextInfo.fileName": (),
- "PySide2.QtScript.QScriptContextInfo.functionEndLineNumber": (),
- "PySide2.QtScript.QScriptContextInfo.functionMetaIndex": (),
- "PySide2.QtScript.QScriptContextInfo.functionName": (),
- "PySide2.QtScript.QScriptContextInfo.functionParameterNames": (),
- "PySide2.QtScript.QScriptContextInfo.functionStartLineNumber": (),
- "PySide2.QtScript.QScriptContextInfo.functionType": (),
- "PySide2.QtScript.QScriptContextInfo.isNull": (),
- "PySide2.QtScript.QScriptContextInfo.lineNumber": (),
- "PySide2.QtScript.QScriptContextInfo.scriptId": (),
-# class PySide2.QtScript.QScriptEngine:
-# class PySide2.QtScript.QScriptEngine.QObjectWrapOption:
-# class PySide2.QtScript.QScriptEngine.QObjectWrapOptions:
-# class PySide2.QtScript.QScriptEngine.ValueOwnership:
- "PySide2.QtScript.QScriptEngine.__init__": [(), ('PySide2.QtCore.QObject',)],
- "PySide2.QtScript.QScriptEngine.abortEvaluation": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptEngine.agent": (),
- "PySide2.QtScript.QScriptEngine.availableExtensions": (),
- "PySide2.QtScript.QScriptEngine.canEvaluate": ('str',),
- "PySide2.QtScript.QScriptEngine.clearExceptions": (),
- "PySide2.QtScript.QScriptEngine.collectGarbage": (),
- "PySide2.QtScript.QScriptEngine.currentContext": (),
- "PySide2.QtScript.QScriptEngine.defaultPrototype": ('int',),
- "PySide2.QtScript.QScriptEngine.evaluate": [('PySide2.QtScript.QScriptProgram',), ('str', 'str', 'int')],
- "PySide2.QtScript.QScriptEngine.globalObject": (),
- "PySide2.QtScript.QScriptEngine.hasUncaughtException": (),
- "PySide2.QtScript.QScriptEngine.importExtension": ('str',),
- "PySide2.QtScript.QScriptEngine.importedExtensions": (),
- "PySide2.QtScript.QScriptEngine.installTranslatorFunctions": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptEngine.isEvaluating": (),
- "PySide2.QtScript.QScriptEngine.newActivationObject": (),
- "PySide2.QtScript.QScriptEngine.newArray": ('int',),
- "PySide2.QtScript.QScriptEngine.newDate": [('PySide2.QtCore.QDateTime',), ('float',)],
- "PySide2.QtScript.QScriptEngine.newObject": [(), ('PySide2.QtScript.QScriptClass', 'PySide2.QtScript.QScriptValue')],
- "PySide2.QtScript.QScriptEngine.newQMetaObject": ('PySide2.QtCore.QMetaObject', 'PySide2.QtScript.QScriptValue'),
- "PySide2.QtScript.QScriptEngine.newQObject": [('PySide2.QtCore.QObject', 'PySide2.QtScript.QScriptEngine.ValueOwnership', 'PySide2.QtScript.QScriptEngine.QObjectWrapOptions'), ('PySide2.QtScript.QScriptValue', 'PySide2.QtCore.QObject', 'PySide2.QtScript.QScriptEngine.ValueOwnership', 'PySide2.QtScript.QScriptEngine.QObjectWrapOptions')],
- "PySide2.QtScript.QScriptEngine.newRegExp": [('PySide2.QtCore.QRegExp',), ('str', 'str')],
- "PySide2.QtScript.QScriptEngine.newVariant": [('PySide2.QtScript.QScriptValue', 'typing.Any'), ('typing.Any',)],
- "PySide2.QtScript.QScriptEngine.nullValue": (),
- "PySide2.QtScript.QScriptEngine.objectById": ('int',),
- "PySide2.QtScript.QScriptEngine.popContext": (),
- "PySide2.QtScript.QScriptEngine.processEventsInterval": (),
- "PySide2.QtScript.QScriptEngine.pushContext": (),
- "PySide2.QtScript.QScriptEngine.reportAdditionalMemoryCost": ('int',),
- "PySide2.QtScript.QScriptEngine.setAgent": ('PySide2.QtScript.QScriptEngineAgent',),
- "PySide2.QtScript.QScriptEngine.setDefaultPrototype": ('int', 'PySide2.QtScript.QScriptValue'),
- "PySide2.QtScript.QScriptEngine.setGlobalObject": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptEngine.setProcessEventsInterval": ('int',),
- "PySide2.QtScript.QScriptEngine.toObject": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptEngine.toStringHandle": ('str',),
- "PySide2.QtScript.QScriptEngine.uncaughtException": (),
- "PySide2.QtScript.QScriptEngine.uncaughtExceptionBacktrace": (),
- "PySide2.QtScript.QScriptEngine.uncaughtExceptionLineNumber": (),
- "PySide2.QtScript.QScriptEngine.undefinedValue": (),
-# class PySide2.QtScript.QScriptEngineAgent:
-# class PySide2.QtScript.QScriptEngineAgent.Extension:
- "PySide2.QtScript.QScriptEngineAgent.__init__": ('PySide2.QtScript.QScriptEngine',),
- "PySide2.QtScript.QScriptEngineAgent.contextPop": (),
- "PySide2.QtScript.QScriptEngineAgent.contextPush": (),
- "PySide2.QtScript.QScriptEngineAgent.engine": (),
- "PySide2.QtScript.QScriptEngineAgent.exceptionCatch": ('int', 'PySide2.QtScript.QScriptValue'),
- "PySide2.QtScript.QScriptEngineAgent.exceptionThrow": ('int', 'PySide2.QtScript.QScriptValue', 'bool'),
- "PySide2.QtScript.QScriptEngineAgent.extension": ('PySide2.QtScript.QScriptEngineAgent.Extension', 'typing.Any'),
- "PySide2.QtScript.QScriptEngineAgent.functionEntry": ('int',),
- "PySide2.QtScript.QScriptEngineAgent.functionExit": ('int', 'PySide2.QtScript.QScriptValue'),
- "PySide2.QtScript.QScriptEngineAgent.positionChange": ('int', 'int', 'int'),
- "PySide2.QtScript.QScriptEngineAgent.scriptLoad": ('int', 'str', 'str', 'int'),
- "PySide2.QtScript.QScriptEngineAgent.scriptUnload": ('int',),
- "PySide2.QtScript.QScriptEngineAgent.supportsExtension": ('PySide2.QtScript.QScriptEngineAgent.Extension',),
-# class PySide2.QtScript.QScriptExtensionInterface:
- "PySide2.QtScript.QScriptExtensionInterface.__init__": (),
- "PySide2.QtScript.QScriptExtensionInterface.initialize": ('str', 'PySide2.QtScript.QScriptEngine'),
-# class PySide2.QtScript.QScriptExtensionPlugin:
- "PySide2.QtScript.QScriptExtensionPlugin.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtScript.QScriptExtensionPlugin.initialize": ('str', 'PySide2.QtScript.QScriptEngine'),
- "PySide2.QtScript.QScriptExtensionPlugin.keys": (),
- "PySide2.QtScript.QScriptExtensionPlugin.setupPackage": ('str', 'PySide2.QtScript.QScriptEngine'),
-# class PySide2.QtScript.QScriptProgram:
- "PySide2.QtScript.QScriptProgram.__init__": [(), ('PySide2.QtScript.QScriptProgram',), ('str', 'str', 'int')],
- "PySide2.QtScript.QScriptProgram.__copy__": (),
- "PySide2.QtScript.QScriptProgram.fileName": (),
- "PySide2.QtScript.QScriptProgram.firstLineNumber": (),
- "PySide2.QtScript.QScriptProgram.isNull": (),
- "PySide2.QtScript.QScriptProgram.sourceCode": (),
-# class PySide2.QtScript.QScriptString:
- "PySide2.QtScript.QScriptString.__init__": [(), ('PySide2.QtScript.QScriptString',)],
- "PySide2.QtScript.QScriptString.__copy__": (),
- "PySide2.QtScript.QScriptString.isValid": (),
- "PySide2.QtScript.QScriptString.toArrayIndex": (),
- "PySide2.QtScript.QScriptString.toString": (),
-# class PySide2.QtScript.QScriptValue:
-# class PySide2.QtScript.QScriptValue.PropertyFlag:
-# class PySide2.QtScript.QScriptValue.PropertyFlags:
-# class PySide2.QtScript.QScriptValue.ResolveFlag:
-# class PySide2.QtScript.QScriptValue.ResolveFlags:
-# class PySide2.QtScript.QScriptValue.SpecialValue:
- "PySide2.QtScript.QScriptValue.__init__": [(), ('PySide2.QtScript.QScriptEngine', 'PySide2.QtScript.QScriptValue.SpecialValue'), ('PySide2.QtScript.QScriptEngine', 'bool'), ('PySide2.QtScript.QScriptEngine', 'float'), ('PySide2.QtScript.QScriptEngine', 'int'), ('PySide2.QtScript.QScriptEngine', 'str'), ('PySide2.QtScript.QScriptValue',), ('PySide2.QtScript.QScriptValue.SpecialValue',), ('bool',), ('float',), ('int',), ('str',)],
- "PySide2.QtScript.QScriptValue.__copy__": (),
- "PySide2.QtScript.QScriptValue.__iter__": (),
- "PySide2.QtScript.QScriptValue.__repr__": (),
- "PySide2.QtScript.QScriptValue.call": [('PySide2.QtScript.QScriptValue', 'PySide2.QtScript.QScriptValue'), ('PySide2.QtScript.QScriptValue', 'typing.Sequence[PySide2.QtScript.QScriptValue]')],
- "PySide2.QtScript.QScriptValue.construct": [('PySide2.QtScript.QScriptValue',), ('typing.Sequence[PySide2.QtScript.QScriptValue]',)],
- "PySide2.QtScript.QScriptValue.data": (),
- "PySide2.QtScript.QScriptValue.engine": (),
- "PySide2.QtScript.QScriptValue.equals": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptValue.instanceOf": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptValue.isArray": (),
- "PySide2.QtScript.QScriptValue.isBool": (),
- "PySide2.QtScript.QScriptValue.isBoolean": (),
- "PySide2.QtScript.QScriptValue.isDate": (),
- "PySide2.QtScript.QScriptValue.isError": (),
- "PySide2.QtScript.QScriptValue.isFunction": (),
- "PySide2.QtScript.QScriptValue.isNull": (),
- "PySide2.QtScript.QScriptValue.isNumber": (),
- "PySide2.QtScript.QScriptValue.isObject": (),
- "PySide2.QtScript.QScriptValue.isQMetaObject": (),
- "PySide2.QtScript.QScriptValue.isQObject": (),
- "PySide2.QtScript.QScriptValue.isRegExp": (),
- "PySide2.QtScript.QScriptValue.isString": (),
- "PySide2.QtScript.QScriptValue.isUndefined": (),
- "PySide2.QtScript.QScriptValue.isValid": (),
- "PySide2.QtScript.QScriptValue.isVariant": (),
- "PySide2.QtScript.QScriptValue.lessThan": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptValue.objectId": (),
- "PySide2.QtScript.QScriptValue.property": [('PySide2.QtScript.QScriptString', 'PySide2.QtScript.QScriptValue.ResolveFlags'), ('int', 'PySide2.QtScript.QScriptValue.ResolveFlags'), ('str', 'PySide2.QtScript.QScriptValue.ResolveFlags')],
- "PySide2.QtScript.QScriptValue.propertyFlags": [('PySide2.QtScript.QScriptString', 'PySide2.QtScript.QScriptValue.ResolveFlags'), ('str', 'PySide2.QtScript.QScriptValue.ResolveFlags')],
- "PySide2.QtScript.QScriptValue.prototype": (),
- "PySide2.QtScript.QScriptValue.scope": (),
- "PySide2.QtScript.QScriptValue.scriptClass": (),
- "PySide2.QtScript.QScriptValue.setData": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptValue.setProperty": [('PySide2.QtScript.QScriptString', 'PySide2.QtScript.QScriptValue', 'PySide2.QtScript.QScriptValue.PropertyFlags'), ('int', 'PySide2.QtScript.QScriptValue', 'PySide2.QtScript.QScriptValue.PropertyFlags'), ('str', 'PySide2.QtScript.QScriptValue', 'PySide2.QtScript.QScriptValue.PropertyFlags')],
- "PySide2.QtScript.QScriptValue.setPrototype": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptValue.setScope": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptValue.setScriptClass": ('PySide2.QtScript.QScriptClass',),
- "PySide2.QtScript.QScriptValue.strictlyEquals": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptValue.toBool": (),
- "PySide2.QtScript.QScriptValue.toBoolean": (),
- "PySide2.QtScript.QScriptValue.toDateTime": (),
- "PySide2.QtScript.QScriptValue.toInt32": (),
- "PySide2.QtScript.QScriptValue.toInteger": (),
- "PySide2.QtScript.QScriptValue.toNumber": (),
- "PySide2.QtScript.QScriptValue.toObject": (),
- "PySide2.QtScript.QScriptValue.toQMetaObject": (),
- "PySide2.QtScript.QScriptValue.toQObject": (),
- "PySide2.QtScript.QScriptValue.toRegExp": (),
- "PySide2.QtScript.QScriptValue.toString": (),
- "PySide2.QtScript.QScriptValue.toUInt16": (),
- "PySide2.QtScript.QScriptValue.toUInt32": (),
- "PySide2.QtScript.QScriptValue.toVariant": (),
-# class PySide2.QtScript.QScriptValueIterator:
- "PySide2.QtScript.QScriptValueIterator.__init__": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptValueIterator.__iter__": (),
- "PySide2.QtScript.QScriptValueIterator.flags": (),
- "PySide2.QtScript.QScriptValueIterator.hasNext": (),
- "PySide2.QtScript.QScriptValueIterator.hasPrevious": (),
- "PySide2.QtScript.QScriptValueIterator.name": (),
- "PySide2.QtScript.QScriptValueIterator.previous": (),
- "PySide2.QtScript.QScriptValueIterator.remove": (),
- "PySide2.QtScript.QScriptValueIterator.scriptName": (),
- "PySide2.QtScript.QScriptValueIterator.setValue": ('PySide2.QtScript.QScriptValue',),
- "PySide2.QtScript.QScriptValueIterator.toBack": (),
- "PySide2.QtScript.QScriptValueIterator.toFront": (),
- "PySide2.QtScript.QScriptValueIterator.value": (),
-# class PySide2.QtScript.QScriptable:
- "PySide2.QtScript.QScriptable.__init__": (),
- "PySide2.QtScript.QScriptable.argument": ('int',),
- "PySide2.QtScript.QScriptable.argumentCount": (),
- "PySide2.QtScript.QScriptable.context": (),
- "PySide2.QtScript.QScriptable.engine": (),
- "PySide2.QtScript.QScriptable.thisObject": (),
- }) if "PySide2.QtScript" in sys.modules else None
-# Module PySide2.QtScriptTools
-sig_dict.update({
-# class PySide2.QtScriptTools.QScriptEngineDebugger:
-# class PySide2.QtScriptTools.QScriptEngineDebugger.DebuggerAction:
-# class PySide2.QtScriptTools.QScriptEngineDebugger.DebuggerState:
-# class PySide2.QtScriptTools.QScriptEngineDebugger.DebuggerWidget:
- "PySide2.QtScriptTools.QScriptEngineDebugger.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtScriptTools.QScriptEngineDebugger.action": ('PySide2.QtScriptTools.QScriptEngineDebugger.DebuggerAction',),
- "PySide2.QtScriptTools.QScriptEngineDebugger.attachTo": ('PySide2.QtScript.QScriptEngine',),
- "PySide2.QtScriptTools.QScriptEngineDebugger.autoShowStandardWindow": (),
- "PySide2.QtScriptTools.QScriptEngineDebugger.createStandardMenu": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtScriptTools.QScriptEngineDebugger.createStandardToolBar": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtScriptTools.QScriptEngineDebugger.setAutoShowStandardWindow": ('bool',),
- "PySide2.QtScriptTools.QScriptEngineDebugger.standardWindow": (),
- "PySide2.QtScriptTools.QScriptEngineDebugger.state": (),
- "PySide2.QtScriptTools.QScriptEngineDebugger.widget": ('PySide2.QtScriptTools.QScriptEngineDebugger.DebuggerWidget',),
- }) if "PySide2.QtScriptTools" in sys.modules else None
-# Module PySide2.QtSensors
-sig_dict.update({
-# class PySide2.QtSensors.QAccelerometer:
-# class PySide2.QtSensors.QAccelerometer.AccelerationMode:
- "PySide2.QtSensors.QAccelerometer.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QAccelerometer.accelerationMode": (),
- "PySide2.QtSensors.QAccelerometer.reading": (),
- "PySide2.QtSensors.QAccelerometer.setAccelerationMode": ('PySide2.QtSensors.QAccelerometer.AccelerationMode',),
-# class PySide2.QtSensors.QAccelerometerFilter:
- "PySide2.QtSensors.QAccelerometerFilter.__init__": (),
- "PySide2.QtSensors.QAccelerometerFilter.filter": [('PySide2.QtSensors.QAccelerometerReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QAccelerometerReading:
- "PySide2.QtSensors.QAccelerometerReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QAccelerometerReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QAccelerometerReading.setX": ('float',),
- "PySide2.QtSensors.QAccelerometerReading.setY": ('float',),
- "PySide2.QtSensors.QAccelerometerReading.setZ": ('float',),
- "PySide2.QtSensors.QAccelerometerReading.x": (),
- "PySide2.QtSensors.QAccelerometerReading.y": (),
- "PySide2.QtSensors.QAccelerometerReading.z": (),
-# class PySide2.QtSensors.QAltimeter:
- "PySide2.QtSensors.QAltimeter.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QAltimeter.reading": (),
-# class PySide2.QtSensors.QAltimeterFilter:
- "PySide2.QtSensors.QAltimeterFilter.__init__": (),
- "PySide2.QtSensors.QAltimeterFilter.filter": [('PySide2.QtSensors.QAltimeterReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QAltimeterReading:
- "PySide2.QtSensors.QAltimeterReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QAltimeterReading.altitude": (),
- "PySide2.QtSensors.QAltimeterReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QAltimeterReading.setAltitude": ('float',),
-# class PySide2.QtSensors.QAmbientLightFilter:
- "PySide2.QtSensors.QAmbientLightFilter.__init__": (),
- "PySide2.QtSensors.QAmbientLightFilter.filter": [('PySide2.QtSensors.QAmbientLightReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QAmbientLightReading:
-# class PySide2.QtSensors.QAmbientLightReading.LightLevel:
- "PySide2.QtSensors.QAmbientLightReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QAmbientLightReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QAmbientLightReading.lightLevel": (),
- "PySide2.QtSensors.QAmbientLightReading.setLightLevel": ('PySide2.QtSensors.QAmbientLightReading.LightLevel',),
-# class PySide2.QtSensors.QAmbientLightSensor:
- "PySide2.QtSensors.QAmbientLightSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QAmbientLightSensor.reading": (),
-# class PySide2.QtSensors.QAmbientTemperatureFilter:
- "PySide2.QtSensors.QAmbientTemperatureFilter.__init__": (),
- "PySide2.QtSensors.QAmbientTemperatureFilter.filter": [('PySide2.QtSensors.QAmbientTemperatureReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QAmbientTemperatureReading:
- "PySide2.QtSensors.QAmbientTemperatureReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QAmbientTemperatureReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QAmbientTemperatureReading.setTemperature": ('float',),
- "PySide2.QtSensors.QAmbientTemperatureReading.temperature": (),
-# class PySide2.QtSensors.QAmbientTemperatureSensor:
- "PySide2.QtSensors.QAmbientTemperatureSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QAmbientTemperatureSensor.reading": (),
-# class PySide2.QtSensors.QCompass:
- "PySide2.QtSensors.QCompass.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QCompass.reading": (),
-# class PySide2.QtSensors.QCompassFilter:
- "PySide2.QtSensors.QCompassFilter.__init__": (),
- "PySide2.QtSensors.QCompassFilter.filter": [('PySide2.QtSensors.QCompassReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QCompassReading:
- "PySide2.QtSensors.QCompassReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QCompassReading.azimuth": (),
- "PySide2.QtSensors.QCompassReading.calibrationLevel": (),
- "PySide2.QtSensors.QCompassReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QCompassReading.setAzimuth": ('float',),
- "PySide2.QtSensors.QCompassReading.setCalibrationLevel": ('float',),
-# class PySide2.QtSensors.QDistanceFilter:
- "PySide2.QtSensors.QDistanceFilter.__init__": (),
- "PySide2.QtSensors.QDistanceFilter.filter": [('PySide2.QtSensors.QDistanceReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QDistanceReading:
- "PySide2.QtSensors.QDistanceReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QDistanceReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QDistanceReading.distance": (),
- "PySide2.QtSensors.QDistanceReading.setDistance": ('float',),
-# class PySide2.QtSensors.QDistanceSensor:
- "PySide2.QtSensors.QDistanceSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QDistanceSensor.reading": (),
-# class PySide2.QtSensors.QGyroscope:
- "PySide2.QtSensors.QGyroscope.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QGyroscope.reading": (),
-# class PySide2.QtSensors.QGyroscopeFilter:
- "PySide2.QtSensors.QGyroscopeFilter.__init__": (),
- "PySide2.QtSensors.QGyroscopeFilter.filter": [('PySide2.QtSensors.QGyroscopeReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QGyroscopeReading:
- "PySide2.QtSensors.QGyroscopeReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QGyroscopeReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QGyroscopeReading.setX": ('float',),
- "PySide2.QtSensors.QGyroscopeReading.setY": ('float',),
- "PySide2.QtSensors.QGyroscopeReading.setZ": ('float',),
- "PySide2.QtSensors.QGyroscopeReading.x": (),
- "PySide2.QtSensors.QGyroscopeReading.y": (),
- "PySide2.QtSensors.QGyroscopeReading.z": (),
-# class PySide2.QtSensors.QHolsterFilter:
- "PySide2.QtSensors.QHolsterFilter.__init__": (),
- "PySide2.QtSensors.QHolsterFilter.filter": [('PySide2.QtSensors.QHolsterReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QHolsterReading:
- "PySide2.QtSensors.QHolsterReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QHolsterReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QHolsterReading.holstered": (),
- "PySide2.QtSensors.QHolsterReading.setHolstered": ('bool',),
-# class PySide2.QtSensors.QHolsterSensor:
- "PySide2.QtSensors.QHolsterSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QHolsterSensor.reading": (),
-# class PySide2.QtSensors.QHumidityFilter:
- "PySide2.QtSensors.QHumidityFilter.__init__": (),
- "PySide2.QtSensors.QHumidityFilter.filter": [('PySide2.QtSensors.QHumidityReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QHumidityReading:
- "PySide2.QtSensors.QHumidityReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QHumidityReading.absoluteHumidity": (),
- "PySide2.QtSensors.QHumidityReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QHumidityReading.relativeHumidity": (),
- "PySide2.QtSensors.QHumidityReading.setAbsoluteHumidity": ('float',),
- "PySide2.QtSensors.QHumidityReading.setRelativeHumidity": ('float',),
-# class PySide2.QtSensors.QHumiditySensor:
- "PySide2.QtSensors.QHumiditySensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QHumiditySensor.reading": (),
-# class PySide2.QtSensors.QIRProximityFilter:
- "PySide2.QtSensors.QIRProximityFilter.__init__": (),
- "PySide2.QtSensors.QIRProximityFilter.filter": [('PySide2.QtSensors.QIRProximityReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QIRProximityReading:
- "PySide2.QtSensors.QIRProximityReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QIRProximityReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QIRProximityReading.reflectance": (),
- "PySide2.QtSensors.QIRProximityReading.setReflectance": ('float',),
-# class PySide2.QtSensors.QIRProximitySensor:
- "PySide2.QtSensors.QIRProximitySensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QIRProximitySensor.reading": (),
-# class PySide2.QtSensors.QLidFilter:
- "PySide2.QtSensors.QLidFilter.__init__": (),
- "PySide2.QtSensors.QLidFilter.filter": [('PySide2.QtSensors.QLidReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QLidReading:
- "PySide2.QtSensors.QLidReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QLidReading.backLidClosed": (),
- "PySide2.QtSensors.QLidReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QLidReading.frontLidClosed": (),
- "PySide2.QtSensors.QLidReading.setBackLidClosed": ('bool',),
- "PySide2.QtSensors.QLidReading.setFrontLidClosed": ('bool',),
-# class PySide2.QtSensors.QLidSensor:
- "PySide2.QtSensors.QLidSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QLidSensor.reading": (),
-# class PySide2.QtSensors.QLightFilter:
- "PySide2.QtSensors.QLightFilter.__init__": (),
- "PySide2.QtSensors.QLightFilter.filter": [('PySide2.QtSensors.QLightReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QLightReading:
- "PySide2.QtSensors.QLightReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QLightReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QLightReading.lux": (),
- "PySide2.QtSensors.QLightReading.setLux": ('float',),
-# class PySide2.QtSensors.QLightSensor:
- "PySide2.QtSensors.QLightSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QLightSensor.fieldOfView": (),
- "PySide2.QtSensors.QLightSensor.reading": (),
- "PySide2.QtSensors.QLightSensor.setFieldOfView": ('float',),
-# class PySide2.QtSensors.QMagnetometer:
- "PySide2.QtSensors.QMagnetometer.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QMagnetometer.reading": (),
- "PySide2.QtSensors.QMagnetometer.returnGeoValues": (),
- "PySide2.QtSensors.QMagnetometer.setReturnGeoValues": ('bool',),
-# class PySide2.QtSensors.QMagnetometerFilter:
- "PySide2.QtSensors.QMagnetometerFilter.__init__": (),
- "PySide2.QtSensors.QMagnetometerFilter.filter": [('PySide2.QtSensors.QMagnetometerReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QMagnetometerReading:
- "PySide2.QtSensors.QMagnetometerReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QMagnetometerReading.calibrationLevel": (),
- "PySide2.QtSensors.QMagnetometerReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QMagnetometerReading.setCalibrationLevel": ('float',),
- "PySide2.QtSensors.QMagnetometerReading.setX": ('float',),
- "PySide2.QtSensors.QMagnetometerReading.setY": ('float',),
- "PySide2.QtSensors.QMagnetometerReading.setZ": ('float',),
- "PySide2.QtSensors.QMagnetometerReading.x": (),
- "PySide2.QtSensors.QMagnetometerReading.y": (),
- "PySide2.QtSensors.QMagnetometerReading.z": (),
-# class PySide2.QtSensors.QOrientationFilter:
- "PySide2.QtSensors.QOrientationFilter.__init__": (),
- "PySide2.QtSensors.QOrientationFilter.filter": [('PySide2.QtSensors.QOrientationReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QOrientationReading:
-# class PySide2.QtSensors.QOrientationReading.Orientation:
- "PySide2.QtSensors.QOrientationReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QOrientationReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QOrientationReading.orientation": (),
- "PySide2.QtSensors.QOrientationReading.setOrientation": ('PySide2.QtSensors.QOrientationReading.Orientation',),
-# class PySide2.QtSensors.QOrientationSensor:
- "PySide2.QtSensors.QOrientationSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QOrientationSensor.reading": (),
-# class PySide2.QtSensors.QPressureFilter:
- "PySide2.QtSensors.QPressureFilter.__init__": (),
- "PySide2.QtSensors.QPressureFilter.filter": [('PySide2.QtSensors.QPressureReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QPressureReading:
- "PySide2.QtSensors.QPressureReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QPressureReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QPressureReading.pressure": (),
- "PySide2.QtSensors.QPressureReading.setPressure": ('float',),
- "PySide2.QtSensors.QPressureReading.setTemperature": ('float',),
- "PySide2.QtSensors.QPressureReading.temperature": (),
-# class PySide2.QtSensors.QPressureSensor:
- "PySide2.QtSensors.QPressureSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QPressureSensor.reading": (),
-# class PySide2.QtSensors.QProximityFilter:
- "PySide2.QtSensors.QProximityFilter.__init__": (),
- "PySide2.QtSensors.QProximityFilter.filter": [('PySide2.QtSensors.QProximityReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QProximityReading:
- "PySide2.QtSensors.QProximityReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QProximityReading.close": (),
- "PySide2.QtSensors.QProximityReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QProximityReading.setClose": ('bool',),
-# class PySide2.QtSensors.QProximitySensor:
- "PySide2.QtSensors.QProximitySensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QProximitySensor.reading": (),
-# class PySide2.QtSensors.QRotationFilter:
- "PySide2.QtSensors.QRotationFilter.__init__": (),
- "PySide2.QtSensors.QRotationFilter.filter": [('PySide2.QtSensors.QRotationReading',), ('PySide2.QtSensors.QSensorReading',)],
-# class PySide2.QtSensors.QRotationReading:
- "PySide2.QtSensors.QRotationReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QRotationReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QRotationReading.setFromEuler": ('float', 'float', 'float'),
- "PySide2.QtSensors.QRotationReading.x": (),
- "PySide2.QtSensors.QRotationReading.y": (),
- "PySide2.QtSensors.QRotationReading.z": (),
-# class PySide2.QtSensors.QRotationSensor:
- "PySide2.QtSensors.QRotationSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QRotationSensor.hasZ": (),
- "PySide2.QtSensors.QRotationSensor.reading": (),
- "PySide2.QtSensors.QRotationSensor.setHasZ": ('bool',),
-# class PySide2.QtSensors.QSensor:
-# class PySide2.QtSensors.QSensor.AxesOrientationMode:
-# class PySide2.QtSensors.QSensor.Feature:
- "PySide2.QtSensors.QSensor.__init__": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QObject'),
- "PySide2.QtSensors.QSensor.addFilter": ('PySide2.QtSensors.QSensorFilter',),
- "PySide2.QtSensors.QSensor.availableDataRates": (),
- "PySide2.QtSensors.QSensor.axesOrientationMode": (),
- "PySide2.QtSensors.QSensor.backend": (),
- "PySide2.QtSensors.QSensor.bufferSize": (),
- "PySide2.QtSensors.QSensor.connectToBackend": (),
- "PySide2.QtSensors.QSensor.currentOrientation": (),
- "PySide2.QtSensors.QSensor.dataRate": (),
- "PySide2.QtSensors.QSensor.defaultSensorForType": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtSensors.QSensor.description": (),
- "PySide2.QtSensors.QSensor.efficientBufferSize": (),
- "PySide2.QtSensors.QSensor.error": (),
- "PySide2.QtSensors.QSensor.filters": (),
- "PySide2.QtSensors.QSensor.identifier": (),
- "PySide2.QtSensors.QSensor.isActive": (),
- "PySide2.QtSensors.QSensor.isAlwaysOn": (),
- "PySide2.QtSensors.QSensor.isBusy": (),
- "PySide2.QtSensors.QSensor.isConnectedToBackend": (),
- "PySide2.QtSensors.QSensor.isFeatureSupported": ('PySide2.QtSensors.QSensor.Feature',),
- "PySide2.QtSensors.QSensor.maxBufferSize": (),
- "PySide2.QtSensors.QSensor.outputRange": (),
- "PySide2.QtSensors.QSensor.outputRanges": (),
- "PySide2.QtSensors.QSensor.reading": (),
- "PySide2.QtSensors.QSensor.removeFilter": ('PySide2.QtSensors.QSensorFilter',),
- "PySide2.QtSensors.QSensor.sensorTypes": (),
- "PySide2.QtSensors.QSensor.sensorsForType": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtSensors.QSensor.setActive": ('bool',),
- "PySide2.QtSensors.QSensor.setAlwaysOn": ('bool',),
- "PySide2.QtSensors.QSensor.setAxesOrientationMode": ('PySide2.QtSensors.QSensor.AxesOrientationMode',),
- "PySide2.QtSensors.QSensor.setBufferSize": ('int',),
- "PySide2.QtSensors.QSensor.setCurrentOrientation": ('int',),
- "PySide2.QtSensors.QSensor.setDataRate": ('int',),
- "PySide2.QtSensors.QSensor.setEfficientBufferSize": ('int',),
- "PySide2.QtSensors.QSensor.setIdentifier": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtSensors.QSensor.setMaxBufferSize": ('int',),
- "PySide2.QtSensors.QSensor.setOutputRange": ('int',),
- "PySide2.QtSensors.QSensor.setSkipDuplicates": ('bool',),
- "PySide2.QtSensors.QSensor.setUserOrientation": ('int',),
- "PySide2.QtSensors.QSensor.skipDuplicates": (),
- "PySide2.QtSensors.QSensor.start": (),
- "PySide2.QtSensors.QSensor.stop": (),
- "PySide2.QtSensors.QSensor.type": (),
- "PySide2.QtSensors.QSensor.userOrientation": (),
-# class PySide2.QtSensors.QSensorBackend:
- "PySide2.QtSensors.QSensorBackend.__init__": ('PySide2.QtSensors.QSensor', 'PySide2.QtCore.QObject'),
- "PySide2.QtSensors.QSensorBackend.addDataRate": ('float', 'float'),
- "PySide2.QtSensors.QSensorBackend.addOutputRange": ('float', 'float', 'float'),
- "PySide2.QtSensors.QSensorBackend.isFeatureSupported": ('PySide2.QtSensors.QSensor.Feature',),
- "PySide2.QtSensors.QSensorBackend.newReadingAvailable": (),
- "PySide2.QtSensors.QSensorBackend.reading": (),
- "PySide2.QtSensors.QSensorBackend.sensor": (),
- "PySide2.QtSensors.QSensorBackend.sensorBusy": (),
- "PySide2.QtSensors.QSensorBackend.sensorError": ('int',),
- "PySide2.QtSensors.QSensorBackend.sensorStopped": (),
- "PySide2.QtSensors.QSensorBackend.setDataRates": ('PySide2.QtSensors.QSensor',),
- "PySide2.QtSensors.QSensorBackend.setDescription": ('str',),
- "PySide2.QtSensors.QSensorBackend.start": (),
- "PySide2.QtSensors.QSensorBackend.stop": (),
-# class PySide2.QtSensors.QSensorBackendFactory:
- "PySide2.QtSensors.QSensorBackendFactory.__init__": (),
- "PySide2.QtSensors.QSensorBackendFactory.createBackend": ('PySide2.QtSensors.QSensor',),
-# class PySide2.QtSensors.QSensorChangesInterface:
- "PySide2.QtSensors.QSensorChangesInterface.__init__": (),
- "PySide2.QtSensors.QSensorChangesInterface.sensorsChanged": (),
-# class PySide2.QtSensors.QSensorFilter:
- "PySide2.QtSensors.QSensorFilter.__init__": (),
- "PySide2.QtSensors.QSensorFilter.filter": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QSensorFilter.setSensor": ('PySide2.QtSensors.QSensor',),
-# class PySide2.QtSensors.QSensorGestureManager:
- "PySide2.QtSensors.QSensorGestureManager.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QSensorGestureManager.gestureIds": (),
- "PySide2.QtSensors.QSensorGestureManager.recognizerSignals": ('str',),
- "PySide2.QtSensors.QSensorGestureManager.registerSensorGestureRecognizer": ('PySide2.QtSensors.QSensorGestureRecognizer',),
- "PySide2.QtSensors.QSensorGestureManager.sensorGestureRecognizer": ('str',),
-# class PySide2.QtSensors.QSensorGesturePluginInterface:
- "PySide2.QtSensors.QSensorGesturePluginInterface.__init__": (),
- "PySide2.QtSensors.QSensorGesturePluginInterface.createRecognizers": (),
- "PySide2.QtSensors.QSensorGesturePluginInterface.name": (),
- "PySide2.QtSensors.QSensorGesturePluginInterface.supportedIds": (),
-# class PySide2.QtSensors.QSensorGestureRecognizer:
- "PySide2.QtSensors.QSensorGestureRecognizer.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QSensorGestureRecognizer.create": (),
- "PySide2.QtSensors.QSensorGestureRecognizer.createBackend": (),
- "PySide2.QtSensors.QSensorGestureRecognizer.gestureSignals": (),
- "PySide2.QtSensors.QSensorGestureRecognizer.id": (),
- "PySide2.QtSensors.QSensorGestureRecognizer.isActive": (),
- "PySide2.QtSensors.QSensorGestureRecognizer.start": (),
- "PySide2.QtSensors.QSensorGestureRecognizer.startBackend": (),
- "PySide2.QtSensors.QSensorGestureRecognizer.stop": (),
- "PySide2.QtSensors.QSensorGestureRecognizer.stopBackend": (),
-# class PySide2.QtSensors.QSensorManager:
- "PySide2.QtSensors.QSensorManager.__init__": (),
- "PySide2.QtSensors.QSensorManager.createBackend": ('PySide2.QtSensors.QSensor',),
- "PySide2.QtSensors.QSensorManager.isBackendRegistered": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtSensors.QSensorManager.registerBackend": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray', 'PySide2.QtSensors.QSensorBackendFactory'),
- "PySide2.QtSensors.QSensorManager.setDefaultBackend": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtSensors.QSensorManager.unregisterBackend": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
-# class PySide2.QtSensors.QSensorPluginInterface:
- "PySide2.QtSensors.QSensorPluginInterface.__init__": (),
- "PySide2.QtSensors.QSensorPluginInterface.registerSensors": (),
-# class PySide2.QtSensors.QSensorReading:
- "PySide2.QtSensors.QSensorReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QSensorReading.setTimestamp": ('int',),
- "PySide2.QtSensors.QSensorReading.timestamp": (),
- "PySide2.QtSensors.QSensorReading.value": ('int',),
- "PySide2.QtSensors.QSensorReading.valueCount": (),
-# class PySide2.QtSensors.QTapFilter:
- "PySide2.QtSensors.QTapFilter.__init__": (),
- "PySide2.QtSensors.QTapFilter.filter": [('PySide2.QtSensors.QSensorReading',), ('PySide2.QtSensors.QTapReading',)],
-# class PySide2.QtSensors.QTapReading:
-# class PySide2.QtSensors.QTapReading.TapDirection:
- "PySide2.QtSensors.QTapReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QTapReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QTapReading.isDoubleTap": (),
- "PySide2.QtSensors.QTapReading.setDoubleTap": ('bool',),
- "PySide2.QtSensors.QTapReading.setTapDirection": ('PySide2.QtSensors.QTapReading.TapDirection',),
- "PySide2.QtSensors.QTapReading.tapDirection": (),
-# class PySide2.QtSensors.QTapSensor:
- "PySide2.QtSensors.QTapSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QTapSensor.reading": (),
- "PySide2.QtSensors.QTapSensor.returnDoubleTapEvents": (),
- "PySide2.QtSensors.QTapSensor.setReturnDoubleTapEvents": ('bool',),
-# class PySide2.QtSensors.QTiltFilter:
- "PySide2.QtSensors.QTiltFilter.__init__": (),
- "PySide2.QtSensors.QTiltFilter.filter": [('PySide2.QtSensors.QSensorReading',), ('PySide2.QtSensors.QTiltReading',)],
-# class PySide2.QtSensors.QTiltReading:
- "PySide2.QtSensors.QTiltReading.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QTiltReading.copyValuesFrom": ('PySide2.QtSensors.QSensorReading',),
- "PySide2.QtSensors.QTiltReading.setXRotation": ('float',),
- "PySide2.QtSensors.QTiltReading.setYRotation": ('float',),
- "PySide2.QtSensors.QTiltReading.xRotation": (),
- "PySide2.QtSensors.QTiltReading.yRotation": (),
-# class PySide2.QtSensors.QTiltSensor:
- "PySide2.QtSensors.QTiltSensor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtSensors.QTiltSensor.calibrate": (),
- "PySide2.QtSensors.QTiltSensor.reading": (),
-# class PySide2.QtSensors.qoutputrange:
- "PySide2.QtSensors.qoutputrange.__init__": [(), ('PySide2.QtSensors.qoutputrange',)],
- "PySide2.QtSensors.qoutputrange.__copy__": (),
- }) if "PySide2.QtSensors" in sys.modules else None
-# Module PySide2.QtTextToSpeech
-sig_dict.update({
-# class PySide2.QtTextToSpeech.QTextToSpeech:
-# class PySide2.QtTextToSpeech.QTextToSpeech.State:
- "PySide2.QtTextToSpeech.QTextToSpeech.__init__": [('PySide2.QtCore.QObject',), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtTextToSpeech.QTextToSpeech.availableEngines": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.availableLocales": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.availableVoices": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.locale": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.pause": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.pitch": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.rate": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.resume": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.say": ('str',),
- "PySide2.QtTextToSpeech.QTextToSpeech.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtTextToSpeech.QTextToSpeech.setPitch": ('float',),
- "PySide2.QtTextToSpeech.QTextToSpeech.setRate": ('float',),
- "PySide2.QtTextToSpeech.QTextToSpeech.setVoice": ('PySide2.QtTextToSpeech.QVoice',),
- "PySide2.QtTextToSpeech.QTextToSpeech.setVolume": ('float',),
- "PySide2.QtTextToSpeech.QTextToSpeech.state": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.stop": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.voice": (),
- "PySide2.QtTextToSpeech.QTextToSpeech.volume": (),
-# class PySide2.QtTextToSpeech.QTextToSpeechEngine:
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.availableLocales": (),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.availableVoices": (),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.createVoice": ('str', 'PySide2.QtTextToSpeech.QVoice.Gender', 'PySide2.QtTextToSpeech.QVoice.Age', 'typing.Any'),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.locale": (),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.pause": (),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.pitch": (),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.rate": (),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.resume": (),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.say": ('str',),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.setPitch": ('float',),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.setRate": ('float',),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.setVoice": ('PySide2.QtTextToSpeech.QVoice',),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.setVolume": ('float',),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.state": (),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.stop": (),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.voice": (),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.voiceData": ('PySide2.QtTextToSpeech.QVoice',),
- "PySide2.QtTextToSpeech.QTextToSpeechEngine.volume": (),
-# class PySide2.QtTextToSpeech.QVoice:
-# class PySide2.QtTextToSpeech.QVoice.Age:
-# class PySide2.QtTextToSpeech.QVoice.Gender:
- "PySide2.QtTextToSpeech.QVoice.__init__": [(), ('PySide2.QtTextToSpeech.QVoice',)],
- "PySide2.QtTextToSpeech.QVoice.__copy__": (),
- "PySide2.QtTextToSpeech.QVoice.age": (),
- "PySide2.QtTextToSpeech.QVoice.ageName": ('PySide2.QtTextToSpeech.QVoice.Age',),
- "PySide2.QtTextToSpeech.QVoice.gender": (),
- "PySide2.QtTextToSpeech.QVoice.genderName": ('PySide2.QtTextToSpeech.QVoice.Gender',),
- "PySide2.QtTextToSpeech.QVoice.name": (),
- }) if "PySide2.QtTextToSpeech" in sys.modules else None
-# Module PySide2.QtCharts
-sig_dict.update({
-# class PySide2.QtCharts.QtCharts:
-# class PySide2.QtCharts.QtCharts.QAbstractAxis:
-# class PySide2.QtCharts.QtCharts.QAbstractAxis.AxisType:
- "PySide2.QtCharts.QtCharts.QAbstractAxis.alignment": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.gridLineColor": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.gridLinePen": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.hide": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.isGridLineVisible": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.isLineVisible": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.isMinorGridLineVisible": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.isReverse": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.isTitleVisible": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.isVisible": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.labelsAngle": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.labelsBrush": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.labelsColor": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.labelsEditable": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.labelsFont": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.labelsVisible": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.linePen": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.linePenColor": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.minorGridLineColor": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.minorGridLinePen": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.orientation": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setGridLineColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setGridLinePen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setGridLineVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setLabelsAngle": ('int',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setLabelsBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setLabelsColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setLabelsEditable": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setLabelsFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setLabelsVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setLinePen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setLinePenColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setLineVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setMax": ('typing.Any',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setMin": ('typing.Any',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setMinorGridLineColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setMinorGridLinePen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setMinorGridLineVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setRange": ('typing.Any', 'typing.Any'),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setReverse": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setShadesBorderColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setShadesBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setShadesColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setShadesPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setShadesVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setTitleBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setTitleFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setTitleText": ('str',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setTitleVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.setVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.shadesBorderColor": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.shadesBrush": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.shadesColor": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.shadesPen": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.shadesVisible": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.show": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.titleBrush": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.titleFont": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.titleText": (),
- "PySide2.QtCharts.QtCharts.QAbstractAxis.type": (),
-# class PySide2.QtCharts.QtCharts.QAbstractBarSeries:
-# class PySide2.QtCharts.QtCharts.QAbstractBarSeries.LabelsPosition:
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.append": [('PySide2.QtCharts.QtCharts.QBarSet',), ('typing.Sequence[PySide2.QtCharts.QtCharts.QBarSet]',)],
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.barSets": (),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.barWidth": (),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.clear": (),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.count": (),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.insert": ('int', 'PySide2.QtCharts.QtCharts.QBarSet'),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.isLabelsVisible": (),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.labelsAngle": (),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.labelsFormat": (),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.labelsPosition": (),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.labelsPrecision": (),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.remove": ('PySide2.QtCharts.QtCharts.QBarSet',),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.setBarWidth": ('float',),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.setLabelsAngle": ('float',),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.setLabelsFormat": ('str',),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.setLabelsPosition": ('PySide2.QtCharts.QtCharts.QAbstractBarSeries.LabelsPosition',),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.setLabelsPrecision": ('int',),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.setLabelsVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractBarSeries.take": ('PySide2.QtCharts.QtCharts.QBarSet',),
-# class PySide2.QtCharts.QtCharts.QAbstractSeries:
-# class PySide2.QtCharts.QtCharts.QAbstractSeries.SeriesType:
- "PySide2.QtCharts.QtCharts.QAbstractSeries.attachAxis": ('PySide2.QtCharts.QtCharts.QAbstractAxis',),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.attachedAxes": (),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.chart": (),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.detachAxis": ('PySide2.QtCharts.QtCharts.QAbstractAxis',),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.hide": (),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.isVisible": (),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.name": (),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.opacity": (),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.setName": ('str',),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.setOpacity": ('float',),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.setUseOpenGL": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.setVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.show": (),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.type": (),
- "PySide2.QtCharts.QtCharts.QAbstractSeries.useOpenGL": (),
-# class PySide2.QtCharts.QtCharts.QAreaLegendMarker:
- "PySide2.QtCharts.QtCharts.QAreaLegendMarker.__init__": ('PySide2.QtCharts.QtCharts.QAreaSeries', 'PySide2.QtCharts.QtCharts.QLegend', 'PySide2.QtCore.QObject'),
- "PySide2.QtCharts.QtCharts.QAreaLegendMarker.series": (),
- "PySide2.QtCharts.QtCharts.QAreaLegendMarker.type": (),
-# class PySide2.QtCharts.QtCharts.QAreaSeries:
- "PySide2.QtCharts.QtCharts.QAreaSeries.__init__": [('PySide2.QtCharts.QtCharts.QLineSeries', 'PySide2.QtCharts.QtCharts.QLineSeries'), ('PySide2.QtCore.QObject',)],
- "PySide2.QtCharts.QtCharts.QAreaSeries.borderColor": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.brush": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.color": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.lowerSeries": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.pen": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.pointLabelsClipping": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.pointLabelsColor": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.pointLabelsFont": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.pointLabelsFormat": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.pointLabelsVisible": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.pointsVisible": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setBorderColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setLowerSeries": ('PySide2.QtCharts.QtCharts.QLineSeries',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setPointLabelsClipping": ('bool',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setPointLabelsColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setPointLabelsFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setPointLabelsFormat": ('str',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setPointLabelsVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setPointsVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.setUpperSeries": ('PySide2.QtCharts.QtCharts.QLineSeries',),
- "PySide2.QtCharts.QtCharts.QAreaSeries.type": (),
- "PySide2.QtCharts.QtCharts.QAreaSeries.upperSeries": (),
-# class PySide2.QtCharts.QtCharts.QBarCategoryAxis:
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.append": [('str',), ('typing.Sequence[str]',)],
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.at": ('int',),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.categories": (),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.clear": (),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.count": (),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.insert": ('int', 'str'),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.max": (),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.min": (),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.remove": ('str',),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.replace": ('str', 'str'),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.setCategories": ('typing.Sequence[str]',),
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.setMax": [('str',), ('typing.Any',)],
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.setMin": [('str',), ('typing.Any',)],
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.setRange": [('str', 'str'), ('typing.Any', 'typing.Any')],
- "PySide2.QtCharts.QtCharts.QBarCategoryAxis.type": (),
-# class PySide2.QtCharts.QtCharts.QBarLegendMarker:
- "PySide2.QtCharts.QtCharts.QBarLegendMarker.__init__": ('PySide2.QtCharts.QtCharts.QAbstractBarSeries', 'PySide2.QtCharts.QtCharts.QBarSet', 'PySide2.QtCharts.QtCharts.QLegend', 'PySide2.QtCore.QObject'),
- "PySide2.QtCharts.QtCharts.QBarLegendMarker.barset": (),
- "PySide2.QtCharts.QtCharts.QBarLegendMarker.series": (),
- "PySide2.QtCharts.QtCharts.QBarLegendMarker.type": (),
-# class PySide2.QtCharts.QtCharts.QBarModelMapper:
- "PySide2.QtCharts.QtCharts.QBarModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.count": (),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.first": (),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.firstBarSetSection": (),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.lastBarSetSection": (),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.orientation": (),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.setCount": ('int',),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.setFirst": ('int',),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.setFirstBarSetSection": ('int',),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.setLastBarSetSection": ('int',),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtCharts.QtCharts.QBarModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QAbstractBarSeries',),
-# class PySide2.QtCharts.QtCharts.QBarSeries:
- "PySide2.QtCharts.QtCharts.QBarSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QBarSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QBarSet:
- "PySide2.QtCharts.QtCharts.QBarSet.__init__": ('str', 'PySide2.QtCore.QObject'),
- "PySide2.QtCharts.QtCharts.QBarSet.__lshift__": ('float',),
- "PySide2.QtCharts.QtCharts.QBarSet.append": [('float',), ('typing.Sequence[float]',)],
- "PySide2.QtCharts.QtCharts.QBarSet.at": ('int',),
- "PySide2.QtCharts.QtCharts.QBarSet.borderColor": (),
- "PySide2.QtCharts.QtCharts.QBarSet.brush": (),
- "PySide2.QtCharts.QtCharts.QBarSet.color": (),
- "PySide2.QtCharts.QtCharts.QBarSet.count": (),
- "PySide2.QtCharts.QtCharts.QBarSet.insert": ('int', 'float'),
- "PySide2.QtCharts.QtCharts.QBarSet.label": (),
- "PySide2.QtCharts.QtCharts.QBarSet.labelBrush": (),
- "PySide2.QtCharts.QtCharts.QBarSet.labelColor": (),
- "PySide2.QtCharts.QtCharts.QBarSet.labelFont": (),
- "PySide2.QtCharts.QtCharts.QBarSet.pen": (),
- "PySide2.QtCharts.QtCharts.QBarSet.remove": ('int', 'int'),
- "PySide2.QtCharts.QtCharts.QBarSet.replace": ('int', 'float'),
- "PySide2.QtCharts.QtCharts.QBarSet.setBorderColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QBarSet.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QBarSet.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QBarSet.setLabel": ('str',),
- "PySide2.QtCharts.QtCharts.QBarSet.setLabelBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QBarSet.setLabelColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QBarSet.setLabelFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtCharts.QtCharts.QBarSet.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QBarSet.sum": (),
-# class PySide2.QtCharts.QtCharts.QBoxPlotLegendMarker:
- "PySide2.QtCharts.QtCharts.QBoxPlotLegendMarker.__init__": ('PySide2.QtCharts.QtCharts.QBoxPlotSeries', 'PySide2.QtCharts.QtCharts.QLegend', 'PySide2.QtCore.QObject'),
- "PySide2.QtCharts.QtCharts.QBoxPlotLegendMarker.series": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotLegendMarker.type": (),
-# class PySide2.QtCharts.QtCharts.QBoxPlotModelMapper:
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.count": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.first": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.firstBoxSetSection": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.lastBoxSetSection": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.orientation": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.setCount": ('int',),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.setFirst": ('int',),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.setFirstBoxSetSection": ('int',),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.setLastBoxSetSection": ('int',),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtCharts.QtCharts.QBoxPlotModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QBoxPlotSeries',),
-# class PySide2.QtCharts.QtCharts.QBoxPlotSeries:
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.append": [('PySide2.QtCharts.QtCharts.QBoxSet',), ('typing.Sequence[PySide2.QtCharts.QtCharts.QBoxSet]',)],
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.boxOutlineVisible": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.boxSets": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.boxWidth": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.brush": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.clear": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.count": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.insert": ('int', 'PySide2.QtCharts.QtCharts.QBoxSet'),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.pen": (),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.remove": ('PySide2.QtCharts.QtCharts.QBoxSet',),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.setBoxOutlineVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.setBoxWidth": ('float',),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.take": ('PySide2.QtCharts.QtCharts.QBoxSet',),
- "PySide2.QtCharts.QtCharts.QBoxPlotSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QBoxSet:
-# class PySide2.QtCharts.QtCharts.QBoxSet.ValuePositions:
- "PySide2.QtCharts.QtCharts.QBoxSet.__init__": [('float', 'float', 'float', 'float', 'float', 'str', 'PySide2.QtCore.QObject'), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtCharts.QtCharts.QBoxSet.__lshift__": ('float',),
- "PySide2.QtCharts.QtCharts.QBoxSet.append": [('float',), ('typing.Sequence[float]',)],
- "PySide2.QtCharts.QtCharts.QBoxSet.at": ('int',),
- "PySide2.QtCharts.QtCharts.QBoxSet.brush": (),
- "PySide2.QtCharts.QtCharts.QBoxSet.clear": (),
- "PySide2.QtCharts.QtCharts.QBoxSet.count": (),
- "PySide2.QtCharts.QtCharts.QBoxSet.label": (),
- "PySide2.QtCharts.QtCharts.QBoxSet.pen": (),
- "PySide2.QtCharts.QtCharts.QBoxSet.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QBoxSet.setLabel": ('str',),
- "PySide2.QtCharts.QtCharts.QBoxSet.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QBoxSet.setValue": ('int', 'float'),
-# class PySide2.QtCharts.QtCharts.QCandlestickLegendMarker:
- "PySide2.QtCharts.QtCharts.QCandlestickLegendMarker.__init__": ('PySide2.QtCharts.QtCharts.QCandlestickSeries', 'PySide2.QtCharts.QtCharts.QLegend', 'PySide2.QtCore.QObject'),
- "PySide2.QtCharts.QtCharts.QCandlestickLegendMarker.series": (),
- "PySide2.QtCharts.QtCharts.QCandlestickLegendMarker.type": (),
-# class PySide2.QtCharts.QtCharts.QCandlestickModelMapper:
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.close": (),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.firstSetSection": (),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.high": (),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.lastSetSection": (),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.low": (),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.open": (),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.orientation": (),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.setClose": ('int',),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.setFirstSetSection": ('int',),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.setHigh": ('int',),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.setLastSetSection": ('int',),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.setLow": ('int',),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.setOpen": ('int',),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QCandlestickSeries',),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.setTimestamp": ('int',),
- "PySide2.QtCharts.QtCharts.QCandlestickModelMapper.timestamp": (),
-# class PySide2.QtCharts.QtCharts.QCandlestickSeries:
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.append": [('PySide2.QtCharts.QtCharts.QCandlestickSet',), ('typing.Sequence[PySide2.QtCharts.QtCharts.QCandlestickSet]',)],
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.bodyOutlineVisible": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.bodyWidth": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.brush": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.capsVisible": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.capsWidth": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.clear": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.count": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.decreasingColor": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.increasingColor": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.insert": ('int', 'PySide2.QtCharts.QtCharts.QCandlestickSet'),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.maximumColumnWidth": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.minimumColumnWidth": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.pen": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.remove": [('PySide2.QtCharts.QtCharts.QCandlestickSet',), ('typing.Sequence[PySide2.QtCharts.QtCharts.QCandlestickSet]',)],
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.setBodyOutlineVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.setBodyWidth": ('float',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.setCapsVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.setCapsWidth": ('float',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.setDecreasingColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.setIncreasingColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.setMaximumColumnWidth": ('float',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.setMinimumColumnWidth": ('float',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.sets": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.take": ('PySide2.QtCharts.QtCharts.QCandlestickSet',),
- "PySide2.QtCharts.QtCharts.QCandlestickSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QCandlestickSet:
- "PySide2.QtCharts.QtCharts.QCandlestickSet.__init__": [('float', 'PySide2.QtCore.QObject'), ('float', 'float', 'float', 'float', 'float', 'PySide2.QtCore.QObject')],
- "PySide2.QtCharts.QtCharts.QCandlestickSet.brush": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.close": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.high": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.low": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.open": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.pen": (),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.setClose": ('float',),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.setHigh": ('float',),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.setLow": ('float',),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.setOpen": ('float',),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.setTimestamp": ('float',),
- "PySide2.QtCharts.QtCharts.QCandlestickSet.timestamp": (),
-# class PySide2.QtCharts.QtCharts.QCategoryAxis:
-# class PySide2.QtCharts.QtCharts.QCategoryAxis.AxisLabelsPosition:
- "PySide2.QtCharts.QtCharts.QCategoryAxis.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.append": ('str', 'float'),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.categoriesLabels": (),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.count": (),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.endValue": ('str',),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.labelsPosition": (),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.remove": ('str',),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.replaceLabel": ('str', 'str'),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.setLabelsPosition": ('PySide2.QtCharts.QtCharts.QCategoryAxis.AxisLabelsPosition',),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.setStartValue": ('float',),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.startValue": ('str',),
- "PySide2.QtCharts.QtCharts.QCategoryAxis.type": (),
-# class PySide2.QtCharts.QtCharts.QChart:
-# class PySide2.QtCharts.QtCharts.QChart.AnimationOption:
-# class PySide2.QtCharts.QtCharts.QChart.AnimationOptions:
-# class PySide2.QtCharts.QtCharts.QChart.ChartTheme:
-# class PySide2.QtCharts.QtCharts.QChart.ChartType:
- "PySide2.QtCharts.QtCharts.QChart.__init__": [('PySide2.QtCharts.QtCharts.QChart.ChartType', 'PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.Qt.WindowFlags'), ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.Qt.WindowFlags')],
- "PySide2.QtCharts.QtCharts.QChart.addAxis": ('PySide2.QtCharts.QtCharts.QAbstractAxis', 'PySide2.QtCore.Qt.Alignment'),
- "PySide2.QtCharts.QtCharts.QChart.addSeries": ('PySide2.QtCharts.QtCharts.QAbstractSeries',),
- "PySide2.QtCharts.QtCharts.QChart.animationDuration": (),
- "PySide2.QtCharts.QtCharts.QChart.animationEasingCurve": (),
- "PySide2.QtCharts.QtCharts.QChart.animationOptions": (),
- "PySide2.QtCharts.QtCharts.QChart.axes": ('PySide2.QtCore.Qt.Orientations', 'PySide2.QtCharts.QtCharts.QAbstractSeries'),
- "PySide2.QtCharts.QtCharts.QChart.axisX": ('PySide2.QtCharts.QtCharts.QAbstractSeries',),
- "PySide2.QtCharts.QtCharts.QChart.axisY": ('PySide2.QtCharts.QtCharts.QAbstractSeries',),
- "PySide2.QtCharts.QtCharts.QChart.backgroundBrush": (),
- "PySide2.QtCharts.QtCharts.QChart.backgroundPen": (),
- "PySide2.QtCharts.QtCharts.QChart.backgroundRoundness": (),
- "PySide2.QtCharts.QtCharts.QChart.chartType": (),
- "PySide2.QtCharts.QtCharts.QChart.createDefaultAxes": (),
- "PySide2.QtCharts.QtCharts.QChart.isBackgroundVisible": (),
- "PySide2.QtCharts.QtCharts.QChart.isDropShadowEnabled": (),
- "PySide2.QtCharts.QtCharts.QChart.isPlotAreaBackgroundVisible": (),
- "PySide2.QtCharts.QtCharts.QChart.isZoomed": (),
- "PySide2.QtCharts.QtCharts.QChart.legend": (),
- "PySide2.QtCharts.QtCharts.QChart.locale": (),
- "PySide2.QtCharts.QtCharts.QChart.localizeNumbers": (),
- "PySide2.QtCharts.QtCharts.QChart.mapToPosition": ('PySide2.QtCore.QPointF', 'PySide2.QtCharts.QtCharts.QAbstractSeries'),
- "PySide2.QtCharts.QtCharts.QChart.mapToValue": ('PySide2.QtCore.QPointF', 'PySide2.QtCharts.QtCharts.QAbstractSeries'),
- "PySide2.QtCharts.QtCharts.QChart.margins": (),
- "PySide2.QtCharts.QtCharts.QChart.plotArea": (),
- "PySide2.QtCharts.QtCharts.QChart.plotAreaBackgroundBrush": (),
- "PySide2.QtCharts.QtCharts.QChart.plotAreaBackgroundPen": (),
- "PySide2.QtCharts.QtCharts.QChart.removeAllSeries": (),
- "PySide2.QtCharts.QtCharts.QChart.removeAxis": ('PySide2.QtCharts.QtCharts.QAbstractAxis',),
- "PySide2.QtCharts.QtCharts.QChart.removeSeries": ('PySide2.QtCharts.QtCharts.QAbstractSeries',),
- "PySide2.QtCharts.QtCharts.QChart.scroll": ('float', 'float'),
- "PySide2.QtCharts.QtCharts.QChart.series": (),
- "PySide2.QtCharts.QtCharts.QChart.setAnimationDuration": ('int',),
- "PySide2.QtCharts.QtCharts.QChart.setAnimationEasingCurve": ('PySide2.QtCore.QEasingCurve',),
- "PySide2.QtCharts.QtCharts.QChart.setAnimationOptions": ('PySide2.QtCharts.QtCharts.QChart.AnimationOptions',),
- "PySide2.QtCharts.QtCharts.QChart.setAxisX": ('PySide2.QtCharts.QtCharts.QAbstractAxis', 'PySide2.QtCharts.QtCharts.QAbstractSeries'),
- "PySide2.QtCharts.QtCharts.QChart.setAxisY": ('PySide2.QtCharts.QtCharts.QAbstractAxis', 'PySide2.QtCharts.QtCharts.QAbstractSeries'),
- "PySide2.QtCharts.QtCharts.QChart.setBackgroundBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QChart.setBackgroundPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QChart.setBackgroundRoundness": ('float',),
- "PySide2.QtCharts.QtCharts.QChart.setBackgroundVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QChart.setDropShadowEnabled": ('bool',),
- "PySide2.QtCharts.QtCharts.QChart.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtCharts.QtCharts.QChart.setLocalizeNumbers": ('bool',),
- "PySide2.QtCharts.QtCharts.QChart.setMargins": ('PySide2.QtCore.QMargins',),
- "PySide2.QtCharts.QtCharts.QChart.setPlotArea": ('PySide2.QtCore.QRectF',),
- "PySide2.QtCharts.QtCharts.QChart.setPlotAreaBackgroundBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QChart.setPlotAreaBackgroundPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QChart.setPlotAreaBackgroundVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QChart.setTheme": ('PySide2.QtCharts.QtCharts.QChart.ChartTheme',),
- "PySide2.QtCharts.QtCharts.QChart.setTitle": ('str',),
- "PySide2.QtCharts.QtCharts.QChart.setTitleBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QChart.setTitleFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtCharts.QtCharts.QChart.theme": (),
- "PySide2.QtCharts.QtCharts.QChart.title": (),
- "PySide2.QtCharts.QtCharts.QChart.titleBrush": (),
- "PySide2.QtCharts.QtCharts.QChart.titleFont": (),
- "PySide2.QtCharts.QtCharts.QChart.zoom": ('float',),
- "PySide2.QtCharts.QtCharts.QChart.zoomIn": [(), ('PySide2.QtCore.QRectF',)],
- "PySide2.QtCharts.QtCharts.QChart.zoomOut": (),
- "PySide2.QtCharts.QtCharts.QChart.zoomReset": (),
-# class PySide2.QtCharts.QtCharts.QChartView:
-# class PySide2.QtCharts.QtCharts.QChartView.RubberBand:
-# class PySide2.QtCharts.QtCharts.QChartView.RubberBands:
- "PySide2.QtCharts.QtCharts.QChartView.__init__": [('PySide2.QtCharts.QtCharts.QChart', 'PySide2.QtWidgets.QWidget'), ('PySide2.QtWidgets.QWidget',)],
- "PySide2.QtCharts.QtCharts.QChartView.chart": (),
- "PySide2.QtCharts.QtCharts.QChartView.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtCharts.QtCharts.QChartView.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtCharts.QtCharts.QChartView.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtCharts.QtCharts.QChartView.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtCharts.QtCharts.QChartView.rubberBand": (),
- "PySide2.QtCharts.QtCharts.QChartView.setChart": ('PySide2.QtCharts.QtCharts.QChart',),
- "PySide2.QtCharts.QtCharts.QChartView.setRubberBand": ('PySide2.QtCharts.QtCharts.QChartView.RubberBands',),
-# class PySide2.QtCharts.QtCharts.QDateTimeAxis:
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.format": (),
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.max": (),
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.min": (),
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.setFormat": ('str',),
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.setMax": [('PySide2.QtCore.QDateTime',), ('typing.Any',)],
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.setMin": [('PySide2.QtCore.QDateTime',), ('typing.Any',)],
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.setRange": [('PySide2.QtCore.QDateTime', 'PySide2.QtCore.QDateTime'), ('typing.Any', 'typing.Any')],
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.setTickCount": ('int',),
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.tickCount": (),
- "PySide2.QtCharts.QtCharts.QDateTimeAxis.type": (),
-# class PySide2.QtCharts.QtCharts.QHBarModelMapper:
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.columnCount": (),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.firstBarSetRow": (),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.firstColumn": (),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.lastBarSetRow": (),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.setColumnCount": ('int',),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.setFirstBarSetRow": ('int',),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.setFirstColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.setLastBarSetRow": ('int',),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QHBarModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QAbstractBarSeries',),
-# class PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper:
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.columnCount": (),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.firstBoxSetRow": (),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.firstColumn": (),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.lastBoxSetRow": (),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.setColumnCount": ('int',),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.setFirstBoxSetRow": ('int',),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.setFirstColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.setLastBoxSetRow": ('int',),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QHBoxPlotModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QBoxPlotSeries',),
-# class PySide2.QtCharts.QtCharts.QHCandlestickModelMapper:
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.closeColumn": (),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.firstSetRow": (),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.highColumn": (),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.lastSetRow": (),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.lowColumn": (),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.openColumn": (),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.orientation": (),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.setCloseColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.setFirstSetRow": ('int',),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.setHighColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.setLastSetRow": ('int',),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.setLowColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.setOpenColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.setTimestampColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QHCandlestickModelMapper.timestampColumn": (),
-# class PySide2.QtCharts.QtCharts.QHPieModelMapper:
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.columnCount": (),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.firstColumn": (),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.labelsRow": (),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.setColumnCount": ('int',),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.setFirstColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.setLabelsRow": ('int',),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QPieSeries',),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.setValuesRow": ('int',),
- "PySide2.QtCharts.QtCharts.QHPieModelMapper.valuesRow": (),
-# class PySide2.QtCharts.QtCharts.QHXYModelMapper:
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.columnCount": (),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.firstColumn": (),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.setColumnCount": ('int',),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.setFirstColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QXYSeries',),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.setXRow": ('int',),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.setYRow": ('int',),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.xRow": (),
- "PySide2.QtCharts.QtCharts.QHXYModelMapper.yRow": (),
-# class PySide2.QtCharts.QtCharts.QHorizontalBarSeries:
- "PySide2.QtCharts.QtCharts.QHorizontalBarSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QHorizontalBarSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QHorizontalPercentBarSeries:
- "PySide2.QtCharts.QtCharts.QHorizontalPercentBarSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QHorizontalPercentBarSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QHorizontalStackedBarSeries:
- "PySide2.QtCharts.QtCharts.QHorizontalStackedBarSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QHorizontalStackedBarSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QLegend:
-# class PySide2.QtCharts.QtCharts.QLegend.MarkerShape:
- "PySide2.QtCharts.QtCharts.QLegend.alignment": (),
- "PySide2.QtCharts.QtCharts.QLegend.attachToChart": (),
- "PySide2.QtCharts.QtCharts.QLegend.borderColor": (),
- "PySide2.QtCharts.QtCharts.QLegend.brush": (),
- "PySide2.QtCharts.QtCharts.QLegend.color": (),
- "PySide2.QtCharts.QtCharts.QLegend.detachFromChart": (),
- "PySide2.QtCharts.QtCharts.QLegend.font": (),
- "PySide2.QtCharts.QtCharts.QLegend.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtCharts.QtCharts.QLegend.isAttachedToChart": (),
- "PySide2.QtCharts.QtCharts.QLegend.isBackgroundVisible": (),
- "PySide2.QtCharts.QtCharts.QLegend.labelBrush": (),
- "PySide2.QtCharts.QtCharts.QLegend.labelColor": (),
- "PySide2.QtCharts.QtCharts.QLegend.markerShape": (),
- "PySide2.QtCharts.QtCharts.QLegend.markers": ('PySide2.QtCharts.QtCharts.QAbstractSeries',),
- "PySide2.QtCharts.QtCharts.QLegend.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtCharts.QtCharts.QLegend.pen": (),
- "PySide2.QtCharts.QtCharts.QLegend.reverseMarkers": (),
- "PySide2.QtCharts.QtCharts.QLegend.setAlignment": ('PySide2.QtCore.Qt.Alignment',),
- "PySide2.QtCharts.QtCharts.QLegend.setBackgroundVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QLegend.setBorderColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QLegend.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QLegend.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QLegend.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtCharts.QtCharts.QLegend.setLabelBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QLegend.setLabelColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QLegend.setMarkerShape": ('PySide2.QtCharts.QtCharts.QLegend.MarkerShape',),
- "PySide2.QtCharts.QtCharts.QLegend.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QLegend.setReverseMarkers": ('bool',),
- "PySide2.QtCharts.QtCharts.QLegend.setShowToolTips": ('bool',),
- "PySide2.QtCharts.QtCharts.QLegend.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtCharts.QtCharts.QLegend.showToolTips": (),
-# class PySide2.QtCharts.QtCharts.QLegendMarker:
-# class PySide2.QtCharts.QtCharts.QLegendMarker.LegendMarkerType:
- "PySide2.QtCharts.QtCharts.QLegendMarker.brush": (),
- "PySide2.QtCharts.QtCharts.QLegendMarker.font": (),
- "PySide2.QtCharts.QtCharts.QLegendMarker.isVisible": (),
- "PySide2.QtCharts.QtCharts.QLegendMarker.label": (),
- "PySide2.QtCharts.QtCharts.QLegendMarker.labelBrush": (),
- "PySide2.QtCharts.QtCharts.QLegendMarker.pen": (),
- "PySide2.QtCharts.QtCharts.QLegendMarker.series": (),
- "PySide2.QtCharts.QtCharts.QLegendMarker.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QLegendMarker.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtCharts.QtCharts.QLegendMarker.setLabel": ('str',),
- "PySide2.QtCharts.QtCharts.QLegendMarker.setLabelBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QLegendMarker.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QLegendMarker.setShape": ('PySide2.QtCharts.QtCharts.QLegend.MarkerShape',),
- "PySide2.QtCharts.QtCharts.QLegendMarker.setVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QLegendMarker.shape": (),
- "PySide2.QtCharts.QtCharts.QLegendMarker.type": (),
-# class PySide2.QtCharts.QtCharts.QLineSeries:
- "PySide2.QtCharts.QtCharts.QLineSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QLineSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QLogValueAxis:
- "PySide2.QtCharts.QtCharts.QLogValueAxis.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QLogValueAxis.base": (),
- "PySide2.QtCharts.QtCharts.QLogValueAxis.labelFormat": (),
- "PySide2.QtCharts.QtCharts.QLogValueAxis.max": (),
- "PySide2.QtCharts.QtCharts.QLogValueAxis.min": (),
- "PySide2.QtCharts.QtCharts.QLogValueAxis.minorTickCount": (),
- "PySide2.QtCharts.QtCharts.QLogValueAxis.setBase": ('float',),
- "PySide2.QtCharts.QtCharts.QLogValueAxis.setLabelFormat": ('str',),
- "PySide2.QtCharts.QtCharts.QLogValueAxis.setMax": [('float',), ('typing.Any',)],
- "PySide2.QtCharts.QtCharts.QLogValueAxis.setMin": [('float',), ('typing.Any',)],
- "PySide2.QtCharts.QtCharts.QLogValueAxis.setMinorTickCount": ('int',),
- "PySide2.QtCharts.QtCharts.QLogValueAxis.setRange": [('float', 'float'), ('typing.Any', 'typing.Any')],
- "PySide2.QtCharts.QtCharts.QLogValueAxis.tickCount": (),
- "PySide2.QtCharts.QtCharts.QLogValueAxis.type": (),
-# class PySide2.QtCharts.QtCharts.QPercentBarSeries:
- "PySide2.QtCharts.QtCharts.QPercentBarSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QPercentBarSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QPieLegendMarker:
- "PySide2.QtCharts.QtCharts.QPieLegendMarker.__init__": ('PySide2.QtCharts.QtCharts.QPieSeries', 'PySide2.QtCharts.QtCharts.QPieSlice', 'PySide2.QtCharts.QtCharts.QLegend', 'PySide2.QtCore.QObject'),
- "PySide2.QtCharts.QtCharts.QPieLegendMarker.series": (),
- "PySide2.QtCharts.QtCharts.QPieLegendMarker.slice": (),
- "PySide2.QtCharts.QtCharts.QPieLegendMarker.type": (),
-# class PySide2.QtCharts.QtCharts.QPieModelMapper:
- "PySide2.QtCharts.QtCharts.QPieModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.count": (),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.first": (),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.labelsSection": (),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.orientation": (),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.setCount": ('int',),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.setFirst": ('int',),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.setLabelsSection": ('int',),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QPieSeries',),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.setValuesSection": ('int',),
- "PySide2.QtCharts.QtCharts.QPieModelMapper.valuesSection": (),
-# class PySide2.QtCharts.QtCharts.QPieSeries:
- "PySide2.QtCharts.QtCharts.QPieSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QPieSeries.__lshift__": ('PySide2.QtCharts.QtCharts.QPieSlice',),
- "PySide2.QtCharts.QtCharts.QPieSeries.append": [('PySide2.QtCharts.QtCharts.QPieSlice',), ('str', 'float'), ('typing.Sequence[PySide2.QtCharts.QtCharts.QPieSlice]',)],
- "PySide2.QtCharts.QtCharts.QPieSeries.clear": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.count": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.holeSize": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.horizontalPosition": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.insert": ('int', 'PySide2.QtCharts.QtCharts.QPieSlice'),
- "PySide2.QtCharts.QtCharts.QPieSeries.isEmpty": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.pieEndAngle": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.pieSize": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.pieStartAngle": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.remove": ('PySide2.QtCharts.QtCharts.QPieSlice',),
- "PySide2.QtCharts.QtCharts.QPieSeries.setHoleSize": ('float',),
- "PySide2.QtCharts.QtCharts.QPieSeries.setHorizontalPosition": ('float',),
- "PySide2.QtCharts.QtCharts.QPieSeries.setLabelsPosition": ('PySide2.QtCharts.QtCharts.QPieSlice.LabelPosition',),
- "PySide2.QtCharts.QtCharts.QPieSeries.setLabelsVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QPieSeries.setPieEndAngle": ('float',),
- "PySide2.QtCharts.QtCharts.QPieSeries.setPieSize": ('float',),
- "PySide2.QtCharts.QtCharts.QPieSeries.setPieStartAngle": ('float',),
- "PySide2.QtCharts.QtCharts.QPieSeries.setVerticalPosition": ('float',),
- "PySide2.QtCharts.QtCharts.QPieSeries.slices": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.sum": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.take": ('PySide2.QtCharts.QtCharts.QPieSlice',),
- "PySide2.QtCharts.QtCharts.QPieSeries.type": (),
- "PySide2.QtCharts.QtCharts.QPieSeries.verticalPosition": (),
-# class PySide2.QtCharts.QtCharts.QPieSlice:
-# class PySide2.QtCharts.QtCharts.QPieSlice.LabelPosition:
- "PySide2.QtCharts.QtCharts.QPieSlice.__init__": [('PySide2.QtCore.QObject',), ('str', 'float', 'PySide2.QtCore.QObject')],
- "PySide2.QtCharts.QtCharts.QPieSlice.angleSpan": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.borderColor": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.borderWidth": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.brush": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.color": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.explodeDistanceFactor": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.isExploded": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.isLabelVisible": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.label": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.labelArmLengthFactor": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.labelBrush": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.labelColor": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.labelFont": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.labelPosition": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.pen": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.percentage": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.series": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.setBorderColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setBorderWidth": ('int',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setExplodeDistanceFactor": ('float',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setExploded": ('bool',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setLabel": ('str',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setLabelArmLengthFactor": ('float',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setLabelBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setLabelColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setLabelFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setLabelPosition": ('PySide2.QtCharts.QtCharts.QPieSlice.LabelPosition',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setLabelVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QPieSlice.setValue": ('float',),
- "PySide2.QtCharts.QtCharts.QPieSlice.startAngle": (),
- "PySide2.QtCharts.QtCharts.QPieSlice.value": (),
-# class PySide2.QtCharts.QtCharts.QPolarChart:
-# class PySide2.QtCharts.QtCharts.QPolarChart.PolarOrientation:
-# class PySide2.QtCharts.QtCharts.QPolarChart.PolarOrientations:
- "PySide2.QtCharts.QtCharts.QPolarChart.__init__": ('PySide2.QtWidgets.QGraphicsItem', 'PySide2.QtCore.Qt.WindowFlags'),
- "PySide2.QtCharts.QtCharts.QPolarChart.addAxis": [('PySide2.QtCharts.QtCharts.QAbstractAxis', 'PySide2.QtCharts.QtCharts.QPolarChart.PolarOrientation'), ('PySide2.QtCharts.QtCharts.QAbstractAxis', 'PySide2.QtCore.Qt.Alignment')],
- "PySide2.QtCharts.QtCharts.QPolarChart.axisPolarOrientation": ('PySide2.QtCharts.QtCharts.QAbstractAxis',),
-# class PySide2.QtCharts.QtCharts.QScatterSeries:
-# class PySide2.QtCharts.QtCharts.QScatterSeries.MarkerShape:
- "PySide2.QtCharts.QtCharts.QScatterSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QScatterSeries.borderColor": (),
- "PySide2.QtCharts.QtCharts.QScatterSeries.brush": (),
- "PySide2.QtCharts.QtCharts.QScatterSeries.color": (),
- "PySide2.QtCharts.QtCharts.QScatterSeries.markerShape": (),
- "PySide2.QtCharts.QtCharts.QScatterSeries.markerSize": (),
- "PySide2.QtCharts.QtCharts.QScatterSeries.setBorderColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QScatterSeries.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QScatterSeries.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QScatterSeries.setMarkerShape": ('PySide2.QtCharts.QtCharts.QScatterSeries.MarkerShape',),
- "PySide2.QtCharts.QtCharts.QScatterSeries.setMarkerSize": ('float',),
- "PySide2.QtCharts.QtCharts.QScatterSeries.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QScatterSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QSplineSeries:
- "PySide2.QtCharts.QtCharts.QSplineSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QSplineSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QStackedBarSeries:
- "PySide2.QtCharts.QtCharts.QStackedBarSeries.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QStackedBarSeries.type": (),
-# class PySide2.QtCharts.QtCharts.QVBarModelMapper:
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.firstBarSetColumn": (),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.firstRow": (),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.lastBarSetColumn": (),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.rowCount": (),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.setFirstBarSetColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.setFirstRow": ('int',),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.setLastBarSetColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.setRowCount": ('int',),
- "PySide2.QtCharts.QtCharts.QVBarModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QAbstractBarSeries',),
-# class PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper:
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.firstBoxSetColumn": (),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.firstRow": (),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.lastBoxSetColumn": (),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.rowCount": (),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.setFirstBoxSetColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.setFirstRow": ('int',),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.setLastBoxSetColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.setRowCount": ('int',),
- "PySide2.QtCharts.QtCharts.QVBoxPlotModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QBoxPlotSeries',),
-# class PySide2.QtCharts.QtCharts.QVCandlestickModelMapper:
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.closeRow": (),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.firstSetColumn": (),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.highRow": (),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.lastSetColumn": (),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.lowRow": (),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.openRow": (),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.orientation": (),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.setCloseRow": ('int',),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.setFirstSetColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.setHighRow": ('int',),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.setLastSetColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.setLowRow": ('int',),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.setOpenRow": ('int',),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.setTimestampRow": ('int',),
- "PySide2.QtCharts.QtCharts.QVCandlestickModelMapper.timestampRow": (),
-# class PySide2.QtCharts.QtCharts.QVPieModelMapper:
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.firstRow": (),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.labelsColumn": (),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.rowCount": (),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.setFirstRow": ('int',),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.setLabelsColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.setRowCount": ('int',),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QPieSeries',),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.setValuesColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QVPieModelMapper.valuesColumn": (),
-# class PySide2.QtCharts.QtCharts.QVXYModelMapper:
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.firstRow": (),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.rowCount": (),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.setFirstRow": ('int',),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.setRowCount": ('int',),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QXYSeries',),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.setXColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.setYColumn": ('int',),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.xColumn": (),
- "PySide2.QtCharts.QtCharts.QVXYModelMapper.yColumn": (),
-# class PySide2.QtCharts.QtCharts.QValueAxis:
- "PySide2.QtCharts.QtCharts.QValueAxis.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QValueAxis.applyNiceNumbers": (),
- "PySide2.QtCharts.QtCharts.QValueAxis.labelFormat": (),
- "PySide2.QtCharts.QtCharts.QValueAxis.max": (),
- "PySide2.QtCharts.QtCharts.QValueAxis.min": (),
- "PySide2.QtCharts.QtCharts.QValueAxis.minorTickCount": (),
- "PySide2.QtCharts.QtCharts.QValueAxis.setLabelFormat": ('str',),
- "PySide2.QtCharts.QtCharts.QValueAxis.setMax": [('float',), ('typing.Any',)],
- "PySide2.QtCharts.QtCharts.QValueAxis.setMin": [('float',), ('typing.Any',)],
- "PySide2.QtCharts.QtCharts.QValueAxis.setMinorTickCount": ('int',),
- "PySide2.QtCharts.QtCharts.QValueAxis.setRange": [('float', 'float'), ('typing.Any', 'typing.Any')],
- "PySide2.QtCharts.QtCharts.QValueAxis.setTickAnchor": ('float',),
- "PySide2.QtCharts.QtCharts.QValueAxis.setTickCount": ('int',),
- "PySide2.QtCharts.QtCharts.QValueAxis.setTickInterval": ('float',),
- "PySide2.QtCharts.QtCharts.QValueAxis.tickAnchor": (),
- "PySide2.QtCharts.QtCharts.QValueAxis.tickCount": (),
- "PySide2.QtCharts.QtCharts.QValueAxis.tickInterval": (),
- "PySide2.QtCharts.QtCharts.QValueAxis.type": (),
-# class PySide2.QtCharts.QtCharts.QXYLegendMarker:
- "PySide2.QtCharts.QtCharts.QXYLegendMarker.__init__": ('PySide2.QtCharts.QtCharts.QXYSeries', 'PySide2.QtCharts.QtCharts.QLegend', 'PySide2.QtCore.QObject'),
- "PySide2.QtCharts.QtCharts.QXYLegendMarker.series": (),
- "PySide2.QtCharts.QtCharts.QXYLegendMarker.type": (),
-# class PySide2.QtCharts.QtCharts.QXYModelMapper:
- "PySide2.QtCharts.QtCharts.QXYModelMapper.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.count": (),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.first": (),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.model": (),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.orientation": (),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.series": (),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.setCount": ('int',),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.setFirst": ('int',),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.setModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.setOrientation": ('PySide2.QtCore.Qt.Orientation',),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.setSeries": ('PySide2.QtCharts.QtCharts.QXYSeries',),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.setXSection": ('int',),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.setYSection": ('int',),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.xSection": (),
- "PySide2.QtCharts.QtCharts.QXYModelMapper.ySection": (),
-# class PySide2.QtCharts.QtCharts.QXYSeries:
- "PySide2.QtCharts.QtCharts.QXYSeries.__lshift__": [('PySide2.QtCore.QPointF',), ('typing.Sequence[PySide2.QtCore.QPointF]',)],
- "PySide2.QtCharts.QtCharts.QXYSeries.append": [('PySide2.QtCore.QPointF',), ('float', 'float'), ('typing.Sequence[PySide2.QtCore.QPointF]',)],
- "PySide2.QtCharts.QtCharts.QXYSeries.at": ('int',),
- "PySide2.QtCharts.QtCharts.QXYSeries.brush": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.clear": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.color": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.count": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.insert": ('int', 'PySide2.QtCore.QPointF'),
- "PySide2.QtCharts.QtCharts.QXYSeries.pen": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.pointLabelsClipping": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.pointLabelsColor": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.pointLabelsFont": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.pointLabelsFormat": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.pointLabelsVisible": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.points": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.pointsVector": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.pointsVisible": (),
- "PySide2.QtCharts.QtCharts.QXYSeries.remove": [('PySide2.QtCore.QPointF',), ('float', 'float'), ('int',)],
- "PySide2.QtCharts.QtCharts.QXYSeries.removePoints": ('int', 'int'),
- "PySide2.QtCharts.QtCharts.QXYSeries.replace": [('PySide2.QtCore.QPointF', 'PySide2.QtCore.QPointF'), ('float', 'float', 'float', 'float'), ('int', 'PySide2.QtCore.QPointF'), ('int', 'float', 'float'), ('typing.List[PySide2.QtCore.QPointF]',), ('typing.Sequence[PySide2.QtCore.QPointF]',)],
- "PySide2.QtCharts.QtCharts.QXYSeries.setBrush": ('PySide2.QtGui.QBrush',),
- "PySide2.QtCharts.QtCharts.QXYSeries.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QXYSeries.setPen": ('PySide2.QtGui.QPen',),
- "PySide2.QtCharts.QtCharts.QXYSeries.setPointLabelsClipping": ('bool',),
- "PySide2.QtCharts.QtCharts.QXYSeries.setPointLabelsColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtCharts.QtCharts.QXYSeries.setPointLabelsFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtCharts.QtCharts.QXYSeries.setPointLabelsFormat": ('str',),
- "PySide2.QtCharts.QtCharts.QXYSeries.setPointLabelsVisible": ('bool',),
- "PySide2.QtCharts.QtCharts.QXYSeries.setPointsVisible": ('bool',),
- }) if "PySide2.QtCharts" in sys.modules else None
-# Module PySide2.QtSvg
-sig_dict.update({
-# class PySide2.QtSvg.QGraphicsSvgItem:
- "PySide2.QtSvg.QGraphicsSvgItem.__init__": [('PySide2.QtWidgets.QGraphicsItem',), ('str', 'PySide2.QtWidgets.QGraphicsItem')],
- "PySide2.QtSvg.QGraphicsSvgItem.boundingRect": (),
- "PySide2.QtSvg.QGraphicsSvgItem.elementId": (),
- "PySide2.QtSvg.QGraphicsSvgItem.isCachingEnabled": (),
- "PySide2.QtSvg.QGraphicsSvgItem.maximumCacheSize": (),
- "PySide2.QtSvg.QGraphicsSvgItem.paint": ('PySide2.QtGui.QPainter', 'PySide2.QtWidgets.QStyleOptionGraphicsItem', 'PySide2.QtWidgets.QWidget'),
- "PySide2.QtSvg.QGraphicsSvgItem.renderer": (),
- "PySide2.QtSvg.QGraphicsSvgItem.setCachingEnabled": ('bool',),
- "PySide2.QtSvg.QGraphicsSvgItem.setElementId": ('str',),
- "PySide2.QtSvg.QGraphicsSvgItem.setMaximumCacheSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtSvg.QGraphicsSvgItem.setSharedRenderer": ('PySide2.QtSvg.QSvgRenderer',),
- "PySide2.QtSvg.QGraphicsSvgItem.type": (),
-# class PySide2.QtSvg.QSvgGenerator:
- "PySide2.QtSvg.QSvgGenerator.__init__": (),
- "PySide2.QtSvg.QSvgGenerator.description": (),
- "PySide2.QtSvg.QSvgGenerator.fileName": (),
- "PySide2.QtSvg.QSvgGenerator.metric": ('PySide2.QtGui.QPaintDevice.PaintDeviceMetric',),
- "PySide2.QtSvg.QSvgGenerator.outputDevice": (),
- "PySide2.QtSvg.QSvgGenerator.paintEngine": (),
- "PySide2.QtSvg.QSvgGenerator.resolution": (),
- "PySide2.QtSvg.QSvgGenerator.setDescription": ('str',),
- "PySide2.QtSvg.QSvgGenerator.setFileName": ('str',),
- "PySide2.QtSvg.QSvgGenerator.setOutputDevice": ('PySide2.QtCore.QIODevice',),
- "PySide2.QtSvg.QSvgGenerator.setResolution": ('int',),
- "PySide2.QtSvg.QSvgGenerator.setSize": ('PySide2.QtCore.QSize',),
- "PySide2.QtSvg.QSvgGenerator.setTitle": ('str',),
- "PySide2.QtSvg.QSvgGenerator.setViewBox": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',)],
- "PySide2.QtSvg.QSvgGenerator.size": (),
- "PySide2.QtSvg.QSvgGenerator.title": (),
- "PySide2.QtSvg.QSvgGenerator.viewBox": (),
- "PySide2.QtSvg.QSvgGenerator.viewBoxF": (),
-# class PySide2.QtSvg.QSvgRenderer:
- "PySide2.QtSvg.QSvgRenderer.__init__": [('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QObject',), ('PySide2.QtCore.QXmlStreamReader', 'PySide2.QtCore.QObject'), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtSvg.QSvgRenderer.animated": (),
- "PySide2.QtSvg.QSvgRenderer.animationDuration": (),
- "PySide2.QtSvg.QSvgRenderer.boundsOnElement": ('str',),
- "PySide2.QtSvg.QSvgRenderer.currentFrame": (),
- "PySide2.QtSvg.QSvgRenderer.defaultSize": (),
- "PySide2.QtSvg.QSvgRenderer.elementExists": ('str',),
- "PySide2.QtSvg.QSvgRenderer.framesPerSecond": (),
- "PySide2.QtSvg.QSvgRenderer.isValid": (),
- "PySide2.QtSvg.QSvgRenderer.load": [('PySide2.QtCore.QByteArray',), ('PySide2.QtCore.QXmlStreamReader',), ('str',)],
- "PySide2.QtSvg.QSvgRenderer.matrixForElement": ('str',),
- "PySide2.QtSvg.QSvgRenderer.render": [('PySide2.QtGui.QPainter',), ('PySide2.QtGui.QPainter', 'PySide2.QtCore.QRectF'), ('PySide2.QtGui.QPainter', 'str', 'PySide2.QtCore.QRectF')],
- "PySide2.QtSvg.QSvgRenderer.setCurrentFrame": ('int',),
- "PySide2.QtSvg.QSvgRenderer.setFramesPerSecond": ('int',),
- "PySide2.QtSvg.QSvgRenderer.setViewBox": [('PySide2.QtCore.QRect',), ('PySide2.QtCore.QRectF',)],
- "PySide2.QtSvg.QSvgRenderer.viewBox": (),
- "PySide2.QtSvg.QSvgRenderer.viewBoxF": (),
-# class PySide2.QtSvg.QSvgWidget:
- "PySide2.QtSvg.QSvgWidget.__init__": [('PySide2.QtWidgets.QWidget',), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtSvg.QSvgWidget.load": [('PySide2.QtCore.QByteArray',), ('str',)],
- "PySide2.QtSvg.QSvgWidget.paintEvent": ('PySide2.QtGui.QPaintEvent',),
- "PySide2.QtSvg.QSvgWidget.renderer": (),
- "PySide2.QtSvg.QSvgWidget.sizeHint": (),
- }) if "PySide2.QtSvg" in sys.modules else None
-# Module PySide2.QtDataVisualization
-sig_dict.update({
-# class PySide2.QtDataVisualization.QtDataVisualization:
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DBars:
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.__init__": ('PySide2.QtGui.QSurfaceFormat', 'PySide2.QtGui.QWindow'),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.addAxis": ('PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.addSeries": ('PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.axes": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.barSpacing": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.barThickness": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.columnAxis": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.floorLevel": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.insertSeries": ('int', 'PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries'),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.isBarSpacingRelative": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.isMultiSeriesUniform": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.primarySeries": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.releaseAxis": ('PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.removeSeries": ('PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.rowAxis": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.selectedSeries": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.seriesList": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.setBarSpacing": ('PySide2.QtCore.QSizeF',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.setBarSpacingRelative": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.setBarThickness": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.setColumnAxis": ('PySide2.QtDataVisualization.QtDataVisualization.QCategory3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.setFloorLevel": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.setMultiSeriesUniform": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.setPrimarySeries": ('PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.setRowAxis": ('PySide2.QtDataVisualization.QtDataVisualization.QCategory3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.setValueAxis": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DBars.valueAxis": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera:
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.CameraPreset:
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.cameraPreset": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.copyValuesFrom": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.maxZoomLevel": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.minZoomLevel": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.setCameraPosition": ('float', 'float', 'float'),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.setCameraPreset": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.CameraPreset',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.setMaxZoomLevel": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.setMinZoomLevel": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.setTarget": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.setWrapXRotation": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.setWrapYRotation": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.setXRotation": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.setYRotation": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.setZoomLevel": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.target": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.wrapXRotation": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.wrapYRotation": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.xRotation": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.yRotation": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera.zoomLevel": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler:
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.isRotationEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.isSelectionEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.isZoomAtTargetEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.isZoomEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent', 'PySide2.QtCore.QPoint'),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.mousePressEvent": ('PySide2.QtGui.QMouseEvent', 'PySide2.QtCore.QPoint'),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent', 'PySide2.QtCore.QPoint'),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.setRotationEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.setSelectionEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.setZoomAtTargetEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.setZoomEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DInputHandler.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DLight:
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DLight.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DLight.isAutoPosition": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DLight.setAutoPosition": ('bool',),
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DObject:
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DObject.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DObject.copyValuesFrom": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DObject.isDirty": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DObject.parentScene": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DObject.position": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DObject.setDirty": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DObject.setPosition": ('PySide2.QtGui.QVector3D',),
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter:
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.__init__": ('PySide2.QtGui.QSurfaceFormat', 'PySide2.QtGui.QWindow'),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.addAxis": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.addSeries": ('PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.axes": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.axisX": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.axisY": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.axisZ": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.releaseAxis": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.removeSeries": ('PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.selectedSeries": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.seriesList": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.setAxisX": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.setAxisY": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScatter.setAxisZ": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DScene:
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.activeCamera": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.activeLight": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.devicePixelRatio": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.graphPositionQuery": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.invalidSelectionPoint": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.isPointInPrimarySubView": ('PySide2.QtCore.QPoint',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.isPointInSecondarySubView": ('PySide2.QtCore.QPoint',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.isSecondarySubviewOnTop": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.isSlicingActive": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.primarySubViewport": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.secondarySubViewport": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.selectionQueryPosition": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.setActiveCamera": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DCamera',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.setActiveLight": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DLight',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.setDevicePixelRatio": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.setGraphPositionQuery": ('PySide2.QtCore.QPoint',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.setPrimarySubViewport": ('PySide2.QtCore.QRect',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.setSecondarySubViewport": ('PySide2.QtCore.QRect',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.setSecondarySubviewOnTop": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.setSelectionQueryPosition": ('PySide2.QtCore.QPoint',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.setSlicingActive": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DScene.viewport": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface:
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.__init__": ('PySide2.QtGui.QSurfaceFormat', 'PySide2.QtGui.QWindow'),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.addAxis": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.addSeries": ('PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.axes": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.axisX": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.axisY": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.axisZ": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.flipHorizontalGrid": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.releaseAxis": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.removeSeries": ('PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.selectedSeries": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.seriesList": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.setAxisX": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.setAxisY": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.setAxisZ": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DSurface.setFlipHorizontalGrid": ('bool',),
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme:
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.ColorStyle:
-# class PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.Theme:
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.Theme', 'PySide2.QtCore.QObject')],
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.ambientLightStrength": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.backgroundColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.baseColors": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.baseGradients": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.colorStyle": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.font": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.gridLineColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.highlightLightStrength": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.isBackgroundEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.isGridEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.isLabelBackgroundEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.isLabelBorderEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.labelBackgroundColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.labelTextColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.lightColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.lightStrength": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.multiHighlightColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.multiHighlightGradient": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setAmbientLightStrength": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setBackgroundColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setBackgroundEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setBaseColors": ('typing.Sequence[PySide2.QtGui.QColor]',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setBaseGradients": ('typing.Sequence[PySide2.QtGui.QLinearGradient]',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setColorStyle": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.ColorStyle',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setGridEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setGridLineColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setHighlightLightStrength": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setLabelBackgroundColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setLabelBackgroundEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setLabelBorderEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setLabelTextColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setLightColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setLightStrength": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setMultiHighlightColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setMultiHighlightGradient": ('PySide2.QtGui.QLinearGradient',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setSingleHighlightColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setSingleHighlightGradient": ('PySide2.QtGui.QLinearGradient',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setType": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.Theme',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.setWindowColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.singleHighlightColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.singleHighlightGradient": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.type": (),
- "PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.windowColor": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.AxisOrientation:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.AxisType:
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.isAutoAdjustRange": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.isTitleFixed": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.isTitleVisible": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.labelAutoRotation": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.labels": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.max": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.min": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.orientation": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.setAutoAdjustRange": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.setLabelAutoRotation": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.setLabels": ('typing.Sequence[str]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.setMax": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.setMin": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.setRange": ('float', 'float'),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.setTitle": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.setTitleFixed": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.setTitleVisible": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.title": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DAxis.type": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.ElementType:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.OptimizationHint:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.OptimizationHints:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.SelectionFlag:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.SelectionFlags:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.ShadowQuality:
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.activeInputHandler": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.activeTheme": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.addCustomItem": ('PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.addInputHandler": ('PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.addTheme": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.aspectRatio": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.clearSelection": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.currentFps": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.customItems": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.exposeEvent": ('PySide2.QtGui.QExposeEvent',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.hasContext": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.horizontalAspectRatio": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.inputHandlers": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.isOrthoProjection": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.isPolar": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.isReflection": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.locale": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.margin": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.measureFps": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.mousePressEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.optimizationHints": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.queriedGraphPosition": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.radialLabelOffset": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.reflectivity": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.releaseCustomItem": ('PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.releaseInputHandler": ('PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.releaseTheme": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.removeCustomItem": ('PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.removeCustomItemAt": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.removeCustomItems": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.renderToImage": ('int', 'PySide2.QtCore.QSize'),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.scene": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.selectedAxis": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.selectedCustomItem": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.selectedCustomItemIndex": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.selectedElement": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.selectedLabelIndex": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.selectionMode": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setActiveInputHandler": ('PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setActiveTheme": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setAspectRatio": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setHorizontalAspectRatio": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setMargin": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setMeasureFps": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setOptimizationHints": ('PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.OptimizationHints',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setOrthoProjection": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setPolar": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setRadialLabelOffset": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setReflection": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setReflectivity": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setSelectionMode": ('PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.SelectionFlags',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.setShadowQuality": ('PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.ShadowQuality',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.shadowQuality": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.shadowsSupported": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.themes": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.touchEvent": ('PySide2.QtGui.QTouchEvent',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DGraph.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.InputView:
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.inputPosition": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.inputView": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.mouseDoubleClickEvent": ('PySide2.QtGui.QMouseEvent',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.mouseMoveEvent": ('PySide2.QtGui.QMouseEvent', 'PySide2.QtCore.QPoint'),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.mousePressEvent": ('PySide2.QtGui.QMouseEvent', 'PySide2.QtCore.QPoint'),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.mouseReleaseEvent": ('PySide2.QtGui.QMouseEvent', 'PySide2.QtCore.QPoint'),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.prevDistance": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.previousInputPos": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.scene": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.setInputPosition": ('PySide2.QtCore.QPoint',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.setInputView": ('PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.InputView',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.setPrevDistance": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.setPreviousInputPos": ('PySide2.QtCore.QPoint',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.setScene": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DScene',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.touchEvent": ('PySide2.QtGui.QTouchEvent',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DInputHandler.wheelEvent": ('PySide2.QtGui.QWheelEvent',),
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.Mesh:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.SeriesType:
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.baseColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.baseGradient": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.colorStyle": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.isItemLabelVisible": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.isMeshSmooth": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.isVisible": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.itemLabel": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.itemLabelFormat": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.mesh": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.meshRotation": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.multiHighlightColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.multiHighlightGradient": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.name": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setBaseColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setBaseGradient": ('PySide2.QtGui.QLinearGradient',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setColorStyle": ('PySide2.QtDataVisualization.QtDataVisualization.Q3DTheme.ColorStyle',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setItemLabelFormat": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setItemLabelVisible": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setMesh": ('PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.Mesh',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setMeshAxisAndAngle": ('PySide2.QtGui.QVector3D', 'float'),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setMeshRotation": ('PySide2.QtGui.QQuaternion',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setMeshSmooth": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setMultiHighlightColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setMultiHighlightGradient": ('PySide2.QtGui.QLinearGradient',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setName": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setSingleHighlightColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setSingleHighlightGradient": ('PySide2.QtGui.QLinearGradient',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setUserDefinedMesh": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.setVisible": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.singleHighlightColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.singleHighlightGradient": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.type": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstract3DSeries.userDefinedMesh": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstractDataProxy:
-# class PySide2.QtDataVisualization.QtDataVisualization.QAbstractDataProxy.DataType:
- "PySide2.QtDataVisualization.QtDataVisualization.QAbstractDataProxy.type": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries:
- "PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy', 'PySide2.QtCore.QObject')],
- "PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries.dataProxy": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries.invalidSelectionPosition": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries.meshAngle": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries.selectedBar": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries.setDataProxy": ('PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy',),
- "PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries.setMeshAngle": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QBar3DSeries.setSelectedBar": ('PySide2.QtCore.QPoint',),
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataArray:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataArray.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataArray.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataArray.__origin__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataArray.__origin__.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataArray.__origin__.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataArray._gorg:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataArray._gorg.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataArray._gorg.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem:
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem.__init__": [(), ('PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem',), ('float',), ('float', 'float')],
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem.__copy__": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem.createExtraData": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem.rotation": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem.setRotation": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem.setValue": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem.value": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy:
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.addRow": [('typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]',), ('typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]', 'str')],
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.addRows": [('typing.List[typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]]',), ('typing.List[typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]]', 'typing.Sequence[str]')],
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.array": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.columnLabels": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.insertRow": [('int', 'typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]'), ('int', 'typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]', 'str')],
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.insertRows": [('int', 'typing.List[typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]]'), ('int', 'typing.List[typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]]', 'typing.Sequence[str]')],
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.itemAt": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.removeRows": ('int', 'int', 'bool'),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.resetArray": [(), ('typing.List[typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]]',), ('typing.List[typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]]', 'typing.Sequence[str]', 'typing.Sequence[str]')],
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.rowAt": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.rowCount": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.rowLabels": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.series": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.setColumnLabels": ('typing.Sequence[str]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.setItem": [('PySide2.QtCore.QPoint', 'PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem'), ('int', 'int', 'PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem')],
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.setRow": [('int', 'typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]'), ('int', 'typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]', 'str')],
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.setRowLabels": ('typing.Sequence[str]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QBarDataProxy.setRows": [('int', 'typing.List[typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]]'), ('int', 'typing.List[typing.List[PySide2.QtDataVisualization.QtDataVisualization.QBarDataItem]]', 'typing.Sequence[str]')],
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataRow:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataRow.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataRow.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataRow.__origin__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataRow.__origin__.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataRow.__origin__.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataRow._gorg:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataRow._gorg.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QBarDataRow._gorg.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QCategory3DAxis:
- "PySide2.QtDataVisualization.QtDataVisualization.QCategory3DAxis.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCategory3DAxis.labels": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCategory3DAxis.setLabels": ('typing.Sequence[str]',),
-# class PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem:
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.__init__": [('PySide2.QtCore.QObject',), ('str', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QQuaternion', 'PySide2.QtGui.QImage', 'PySide2.QtCore.QObject')],
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.isPositionAbsolute": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.isScalingAbsolute": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.isShadowCasting": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.isVisible": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.meshFile": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.position": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.rotation": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.scaling": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setMeshFile": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setPosition": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setPositionAbsolute": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setRotation": ('PySide2.QtGui.QQuaternion',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setRotationAxisAndAngle": ('PySide2.QtGui.QVector3D', 'float'),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setScaling": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setScalingAbsolute": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setShadowCasting": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setTextureFile": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setTextureImage": ('PySide2.QtGui.QImage',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.setVisible": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DItem.textureFile": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel:
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.__init__": [('PySide2.QtCore.QObject',), ('str', 'PySide2.QtGui.QFont', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QQuaternion', 'PySide2.QtCore.QObject')],
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.backgroundColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.font": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.isBackgroundEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.isBorderEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.isFacingCamera": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.setBackgroundColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.setBackgroundEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.setBorderEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.setFacingCamera": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.setText": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.setTextColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.text": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DLabel.textColor": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume:
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QQuaternion', 'int', 'int', 'int', 'typing.List[int]', 'PySide2.QtGui.QImage.Format', 'typing.List[int]', 'PySide2.QtCore.QObject')],
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.alphaMultiplier": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.colorTable": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.createTextureData": ('typing.List[PySide2.QtGui.QImage]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.drawSliceFrames": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.drawSlices": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.preserveOpacity": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.renderSlice": ('PySide2.QtCore.Qt.Axis', 'int'),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setAlphaMultiplier": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setColorTable": ('typing.List[int]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setDrawSliceFrames": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setDrawSlices": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setPreserveOpacity": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setSliceFrameColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setSliceFrameGaps": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setSliceFrameThicknesses": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setSliceFrameWidths": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setSliceIndexX": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setSliceIndexY": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setSliceIndexZ": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setSliceIndices": ('int', 'int', 'int'),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setSubTextureData": [('PySide2.QtCore.Qt.Axis', 'int', 'PySide2.QtGui.QImage'), ('PySide2.QtCore.Qt.Axis', 'int', 'str')],
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setTextureData": ('typing.List[int]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setTextureDepth": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setTextureDimensions": ('int', 'int', 'int'),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setTextureFormat": ('PySide2.QtGui.QImage.Format',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setTextureHeight": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setTextureWidth": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.setUseHighDefShader": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.sliceFrameColor": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.sliceFrameGaps": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.sliceFrameThicknesses": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.sliceFrameWidths": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.sliceIndexX": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.sliceIndexY": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.sliceIndexZ": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.textureData": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.textureDataWidth": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.textureDepth": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.textureFormat": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.textureHeight": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.textureWidth": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QCustom3DVolume.useHighDefShader": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy:
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtGui.QImage', 'PySide2.QtCore.QObject'), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.heightMap": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.heightMapFile": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.maxXValue": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.maxZValue": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.minXValue": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.minZValue": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.setHeightMap": ('PySide2.QtGui.QImage',),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.setHeightMapFile": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.setMaxXValue": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.setMaxZValue": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.setMinXValue": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.setMinZValue": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QHeightMapSurfaceDataProxy.setValueRanges": ('float', 'float', 'float', 'float'),
-# class PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy:
-# class PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.MultiMatchBehavior:
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.__init__": [('PySide2.QtCore.QAbstractItemModel', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'str', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'str', 'str', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'str', 'str', 'str', 'typing.Sequence[str]', 'typing.Sequence[str]', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'str', 'str', 'typing.Sequence[str]', 'typing.Sequence[str]', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QObject',)],
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.autoColumnCategories": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.autoRowCategories": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.columnCategories": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.columnCategoryIndex": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.columnRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.columnRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.columnRoleReplace": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.itemModel": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.multiMatchBehavior": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.remap": ('str', 'str', 'str', 'str', 'typing.Sequence[str]', 'typing.Sequence[str]'),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.rotationRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.rotationRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.rotationRoleReplace": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.rowCategories": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.rowCategoryIndex": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.rowRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.rowRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.rowRoleReplace": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setAutoColumnCategories": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setAutoRowCategories": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setColumnCategories": ('typing.Sequence[str]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setColumnRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setColumnRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setColumnRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setItemModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setMultiMatchBehavior": ('PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.MultiMatchBehavior',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setRotationRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setRotationRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setRotationRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setRowCategories": ('typing.Sequence[str]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setRowRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setRowRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setRowRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setUseModelCategories": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setValueRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setValueRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.setValueRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.useModelCategories": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.valueRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.valueRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelBarDataProxy.valueRoleReplace": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy:
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.__init__": [('PySide2.QtCore.QAbstractItemModel', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'str', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'str', 'str', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QObject',)],
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.itemModel": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.remap": ('str', 'str', 'str', 'str'),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.rotationRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.rotationRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.rotationRoleReplace": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setItemModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setRotationRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setRotationRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setRotationRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setXPosRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setXPosRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setXPosRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setYPosRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setYPosRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setYPosRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setZPosRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setZPosRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.setZPosRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.xPosRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.xPosRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.xPosRoleReplace": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.yPosRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.yPosRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.yPosRoleReplace": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.zPosRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.zPosRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelScatterDataProxy.zPosRoleReplace": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy:
-# class PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.MultiMatchBehavior:
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.__init__": [('PySide2.QtCore.QAbstractItemModel', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'str', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'str', 'str', 'str', 'str', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'str', 'str', 'str', 'str', 'typing.Sequence[str]', 'typing.Sequence[str]', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QAbstractItemModel', 'str', 'str', 'str', 'typing.Sequence[str]', 'typing.Sequence[str]', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QObject',)],
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.autoColumnCategories": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.autoRowCategories": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.columnCategories": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.columnCategoryIndex": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.columnRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.columnRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.columnRoleReplace": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.itemModel": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.multiMatchBehavior": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.remap": ('str', 'str', 'str', 'str', 'str', 'typing.Sequence[str]', 'typing.Sequence[str]'),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.rowCategories": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.rowCategoryIndex": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.rowRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.rowRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.rowRoleReplace": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setAutoColumnCategories": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setAutoRowCategories": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setColumnCategories": ('typing.Sequence[str]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setColumnRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setColumnRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setColumnRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setItemModel": ('PySide2.QtCore.QAbstractItemModel',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setMultiMatchBehavior": ('PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.MultiMatchBehavior',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setRowCategories": ('typing.Sequence[str]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setRowRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setRowRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setRowRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setUseModelCategories": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setXPosRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setXPosRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setXPosRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setYPosRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setYPosRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setYPosRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setZPosRole": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setZPosRolePattern": ('PySide2.QtCore.QRegExp',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.setZPosRoleReplace": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.useModelCategories": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.xPosRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.xPosRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.xPosRoleReplace": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.yPosRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.yPosRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.yPosRoleReplace": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.zPosRole": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.zPosRolePattern": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QItemModelSurfaceDataProxy.zPosRoleReplace": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter:
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.autoSubGrid": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.base": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.createNewInstance": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.populateCopy": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter',),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.positionAt": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.recalculate": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.setAutoSubGrid": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.setBase": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.setShowEdgeLabels": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.showEdgeLabels": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QLogValue3DAxisFormatter.valueAt": ('float',),
-# class PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries:
- "PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy', 'PySide2.QtCore.QObject')],
- "PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries.dataProxy": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries.invalidSelectionIndex": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries.itemSize": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries.selectedItem": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries.setDataProxy": ('PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries.setItemSize": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatter3DSeries.setSelectedItem": ('int',),
-# class PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem:
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.__init__": [(), ('PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem',), ('PySide2.QtGui.QVector3D',), ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QQuaternion')],
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.__copy__": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.createExtraData": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.position": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.rotation": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.setPosition": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.setRotation": ('PySide2.QtGui.QQuaternion',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.setX": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.setY": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.setZ": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.x": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.y": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem.z": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy:
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.addItem": ('PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.addItems": ('typing.List[PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.array": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.insertItem": ('int', 'PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem'),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.insertItems": ('int', 'typing.List[PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem]'),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.itemAt": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.itemCount": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.removeItems": ('int', 'int'),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.resetArray": ('typing.List[PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.series": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.setItem": ('int', 'PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem'),
- "PySide2.QtDataVisualization.QtDataVisualization.QScatterDataProxy.setItems": ('int', 'typing.List[PySide2.QtDataVisualization.QtDataVisualization.QScatterDataItem]'),
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.DrawFlag:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.DrawFlags:
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy', 'PySide2.QtCore.QObject')],
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.dataProxy": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.drawMode": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.invalidSelectionPosition": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.isFlatShadingEnabled": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.isFlatShadingSupported": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.selectedPoint": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.setDataProxy": ('PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.setDrawMode": ('PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.DrawFlags',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.setFlatShadingEnabled": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.setSelectedPoint": ('PySide2.QtCore.QPoint',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.setTexture": ('PySide2.QtGui.QImage',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.setTextureFile": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.texture": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurface3DSeries.textureFile": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataArray:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataArray.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataArray.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataArray.__origin__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataArray.__origin__.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataArray.__origin__.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataArray._gorg:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataArray._gorg.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataArray._gorg.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem:
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.__init__": [(), ('PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem',), ('PySide2.QtGui.QVector3D',)],
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.__copy__": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.createExtraData": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.position": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.setPosition": ('PySide2.QtGui.QVector3D',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.setX": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.setY": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.setZ": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.x": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.y": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem.z": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy:
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.addRow": ('typing.List[PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.addRows": ('typing.List[typing.List[PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem]]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.array": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.columnCount": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.insertRow": ('int', 'typing.List[PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem]'),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.insertRows": ('int', 'typing.List[typing.List[PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem]]'),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.itemAt": [('PySide2.QtCore.QPoint',), ('int', 'int')],
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.removeRows": ('int', 'int'),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.resetArray": ('typing.List[typing.List[PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem]]',),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.rowCount": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.series": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.setItem": [('PySide2.QtCore.QPoint', 'PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem'), ('int', 'int', 'PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem')],
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.setRow": ('int', 'typing.List[PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem]'),
- "PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataProxy.setRows": ('int', 'typing.List[typing.List[PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataItem]]'),
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataRow:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataRow.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataRow.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataRow.__origin__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataRow.__origin__.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataRow.__origin__.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataRow._gorg:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataRow._gorg.__extra__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QSurfaceDataRow._gorg.__next_in_mro__:
-# class PySide2.QtDataVisualization.QtDataVisualization.QTouch3DInputHandler:
- "PySide2.QtDataVisualization.QtDataVisualization.QTouch3DInputHandler.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.QTouch3DInputHandler.touchEvent": ('PySide2.QtGui.QTouchEvent',),
-# class PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis:
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.formatter": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.labelFormat": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.reversed": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.segmentCount": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.setFormatter": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.setLabelFormat": ('str',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.setReversed": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.setSegmentCount": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.setSubSegmentCount": ('int',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxis.subSegmentCount": (),
-# class PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter:
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.allowNegatives": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.allowZero": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.axis": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.createNewInstance": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.gridPositions": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.labelPositions": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.labelStrings": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.locale": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.markDirty": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.populateCopy": ('PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.positionAt": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.recalculate": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.setAllowNegatives": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.setAllowZero": ('bool',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.setLocale": ('PySide2.QtCore.QLocale',),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.stringForValue": ('float', 'str'),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.subGridPositions": (),
- "PySide2.QtDataVisualization.QtDataVisualization.QValue3DAxisFormatter.valueAt": ('float',),
- "PySide2.QtDataVisualization.QtDataVisualization.qDefaultSurfaceFormat": ('bool',),
- }) if "PySide2.QtDataVisualization" in sys.modules else None
-# Module PySide2.QtUiTools
-sig_dict.update({
-# class PySide2.QtUiTools.QUiLoader:
- "PySide2.QtUiTools.QUiLoader.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtUiTools.QUiLoader.addPluginPath": ('str',),
- "PySide2.QtUiTools.QUiLoader.availableLayouts": (),
- "PySide2.QtUiTools.QUiLoader.availableWidgets": (),
- "PySide2.QtUiTools.QUiLoader.clearPluginPaths": (),
- "PySide2.QtUiTools.QUiLoader.createAction": ('PySide2.QtCore.QObject', 'str'),
- "PySide2.QtUiTools.QUiLoader.createActionGroup": ('PySide2.QtCore.QObject', 'str'),
- "PySide2.QtUiTools.QUiLoader.createLayout": ('str', 'PySide2.QtCore.QObject', 'str'),
- "PySide2.QtUiTools.QUiLoader.createWidget": ('str', 'PySide2.QtWidgets.QWidget', 'str'),
- "PySide2.QtUiTools.QUiLoader.errorString": (),
- "PySide2.QtUiTools.QUiLoader.isLanguageChangeEnabled": (),
- "PySide2.QtUiTools.QUiLoader.isTranslationEnabled": (),
- "PySide2.QtUiTools.QUiLoader.load": [('PySide2.QtCore.QIODevice', 'PySide2.QtWidgets.QWidget'), ('str', 'PySide2.QtWidgets.QWidget')],
- "PySide2.QtUiTools.QUiLoader.pluginPaths": (),
- "PySide2.QtUiTools.QUiLoader.registerCustomWidget": ('object',),
- "PySide2.QtUiTools.QUiLoader.setLanguageChangeEnabled": ('bool',),
- "PySide2.QtUiTools.QUiLoader.setTranslationEnabled": ('bool',),
- "PySide2.QtUiTools.QUiLoader.setWorkingDirectory": ('PySide2.QtCore.QDir',),
- "PySide2.QtUiTools.QUiLoader.workingDirectory": (),
- }) if "PySide2.QtUiTools" in sys.modules else None
-# Module PySide2.QtWebChannel
-sig_dict.update({
-# class PySide2.QtWebChannel.QWebChannel:
- "PySide2.QtWebChannel.QWebChannel.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWebChannel.QWebChannel.blockUpdates": (),
- "PySide2.QtWebChannel.QWebChannel.connectTo": ('PySide2.QtWebChannel.QWebChannelAbstractTransport',),
- "PySide2.QtWebChannel.QWebChannel.deregisterObject": ('PySide2.QtCore.QObject',),
- "PySide2.QtWebChannel.QWebChannel.disconnectFrom": ('PySide2.QtWebChannel.QWebChannelAbstractTransport',),
- "PySide2.QtWebChannel.QWebChannel.registerObject": ('str', 'PySide2.QtCore.QObject'),
- "PySide2.QtWebChannel.QWebChannel.registerObjects": ('typing.Dict[str, PySide2.QtCore.QObject]',),
- "PySide2.QtWebChannel.QWebChannel.registeredObjects": (),
- "PySide2.QtWebChannel.QWebChannel.setBlockUpdates": ('bool',),
-# class PySide2.QtWebChannel.QWebChannelAbstractTransport:
- "PySide2.QtWebChannel.QWebChannelAbstractTransport.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWebChannel.QWebChannelAbstractTransport.sendMessage": ('typing.Dict[str, PySide2.QtCore.QJsonValue]',),
- }) if "PySide2.QtWebChannel" in sys.modules else None
-# Module PySide2.QtWebEngineCore
-sig_dict.update({
-# class PySide2.QtWebEngineCore.QWebEngineCookieStore:
- "PySide2.QtWebEngineCore.QWebEngineCookieStore.deleteAllCookies": (),
- "PySide2.QtWebEngineCore.QWebEngineCookieStore.deleteSessionCookies": (),
- "PySide2.QtWebEngineCore.QWebEngineCookieStore.loadAllCookies": (),
-# class PySide2.QtWebEngineCore.QWebEngineHttpRequest:
-# class PySide2.QtWebEngineCore.QWebEngineHttpRequest.Method:
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.__init__": [('PySide2.QtCore.QUrl', 'PySide2.QtWebEngineCore.QWebEngineHttpRequest.Method'), ('PySide2.QtWebEngineCore.QWebEngineHttpRequest',)],
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.hasHeader": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.header": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.headers": (),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.method": (),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.postData": (),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.postRequest": ('PySide2.QtCore.QUrl', 'typing.Dict[str, str]'),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.setHeader": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.setMethod": ('PySide2.QtWebEngineCore.QWebEngineHttpRequest.Method',),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.setPostData": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.setUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.swap": ('PySide2.QtWebEngineCore.QWebEngineHttpRequest',),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.unsetHeader": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWebEngineCore.QWebEngineHttpRequest.url": (),
-# class PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo:
-# class PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.NavigationType:
-# class PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType:
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.block": ('bool',),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.changed": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.firstPartyUrl": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.initiator": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.navigationType": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.redirect": ('PySide2.QtCore.QUrl',),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.requestMethod": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.requestUrl": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.resourceType": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.setHttpHeader": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QByteArray'),
-# class PySide2.QtWebEngineCore.QWebEngineUrlRequestInterceptor:
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInterceptor.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestInterceptor.interceptRequest": ('PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo',),
-# class PySide2.QtWebEngineCore.QWebEngineUrlRequestJob:
-# class PySide2.QtWebEngineCore.QWebEngineUrlRequestJob.Error:
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestJob.fail": ('PySide2.QtWebEngineCore.QWebEngineUrlRequestJob.Error',),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestJob.initiator": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestJob.redirect": ('PySide2.QtCore.QUrl',),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestJob.reply": ('PySide2.QtCore.QByteArray', 'PySide2.QtCore.QIODevice'),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestJob.requestHeaders": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestJob.requestMethod": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlRequestJob.requestUrl": (),
-# class PySide2.QtWebEngineCore.QWebEngineUrlScheme:
-# class PySide2.QtWebEngineCore.QWebEngineUrlScheme.Flag:
-# class PySide2.QtWebEngineCore.QWebEngineUrlScheme.Flags:
-# class PySide2.QtWebEngineCore.QWebEngineUrlScheme.SpecialPort:
-# class PySide2.QtWebEngineCore.QWebEngineUrlScheme.Syntax:
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.__init__": [(), ('PySide2.QtCore.QByteArray',), ('PySide2.QtWebEngineCore.QWebEngineUrlScheme',)],
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.__copy__": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.defaultPort": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.flags": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.name": (),
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.registerScheme": ('PySide2.QtWebEngineCore.QWebEngineUrlScheme',),
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.schemeByName": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.setDefaultPort": ('int',),
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.setFlags": ('PySide2.QtWebEngineCore.QWebEngineUrlScheme.Flags',),
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.setName": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.setSyntax": ('PySide2.QtWebEngineCore.QWebEngineUrlScheme.Syntax',),
- "PySide2.QtWebEngineCore.QWebEngineUrlScheme.syntax": (),
-# class PySide2.QtWebEngineCore.QWebEngineUrlSchemeHandler:
- "PySide2.QtWebEngineCore.QWebEngineUrlSchemeHandler.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWebEngineCore.QWebEngineUrlSchemeHandler.requestStarted": ('PySide2.QtWebEngineCore.QWebEngineUrlRequestJob',),
- }) if "PySide2.QtWebEngineCore" in sys.modules else None
-# Module PySide2.QtWebEngine
-sig_dict.update({
-# class PySide2.QtWebEngine.QtWebEngine:
- "PySide2.QtWebEngine.QtWebEngine.initialize": (),
- }) if "PySide2.QtWebEngine" in sys.modules else None
-# Module PySide2.QtWebEngineWidgets
-sig_dict.update({
-# class PySide2.QtWebEngineWidgets.QWebEngineCertificateError:
-# class PySide2.QtWebEngineWidgets.QWebEngineCertificateError.Error:
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.__init__": [('PySide2.QtWebEngineWidgets.QWebEngineCertificateError',), ('int', 'PySide2.QtCore.QUrl', 'bool', 'str')],
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.answered": (),
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.certificateChain": (),
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.defer": (),
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.deferred": (),
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.error": (),
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.errorDescription": (),
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.ignoreCertificateError": (),
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.isOverridable": (),
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.rejectCertificate": (),
- "PySide2.QtWebEngineWidgets.QWebEngineCertificateError.url": (),
-# class PySide2.QtWebEngineWidgets.QWebEngineContextMenuData:
-# class PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.EditFlag:
-# class PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.EditFlags:
-# class PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.MediaFlag:
-# class PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.MediaFlags:
-# class PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.MediaType:
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.__init__": [(), ('PySide2.QtWebEngineWidgets.QWebEngineContextMenuData',)],
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.__copy__": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.editFlags": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.isContentEditable": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.isValid": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.linkText": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.linkUrl": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.mediaFlags": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.mediaType": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.mediaUrl": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.misspelledWord": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.position": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.selectedText": (),
- "PySide2.QtWebEngineWidgets.QWebEngineContextMenuData.spellCheckerSuggestions": (),
-# class PySide2.QtWebEngineWidgets.QWebEngineDownloadItem:
-# class PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.DownloadInterruptReason:
-# class PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.DownloadState:
-# class PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.DownloadType:
-# class PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.SavePageFormat:
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.accept": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.cancel": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.downloadDirectory": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.downloadFileName": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.id": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.interruptReason": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.interruptReasonString": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.isFinished": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.isPaused": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.isSavePageDownload": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.mimeType": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.page": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.path": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.pause": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.receivedBytes": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.resume": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.savePageFormat": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.setDownloadDirectory": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.setDownloadFileName": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.setPath": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.setSavePageFormat": ('PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.SavePageFormat',),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.state": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.suggestedFileName": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.totalBytes": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.type": (),
- "PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.url": (),
-# class PySide2.QtWebEngineWidgets.QWebEngineFullScreenRequest:
- "PySide2.QtWebEngineWidgets.QWebEngineFullScreenRequest.accept": (),
- "PySide2.QtWebEngineWidgets.QWebEngineFullScreenRequest.origin": (),
- "PySide2.QtWebEngineWidgets.QWebEngineFullScreenRequest.reject": (),
- "PySide2.QtWebEngineWidgets.QWebEngineFullScreenRequest.toggleOn": (),
-# class PySide2.QtWebEngineWidgets.QWebEngineHistory:
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.__lshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.__rshift__": ('PySide2.QtCore.QDataStream',),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.back": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.backItem": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.backItems": ('int',),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.canGoBack": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.canGoForward": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.clear": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.count": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.currentItem": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.currentItemIndex": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.forward": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.forwardItem": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.forwardItems": ('int',),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.goToItem": ('PySide2.QtWebEngineWidgets.QWebEngineHistoryItem',),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.itemAt": ('int',),
- "PySide2.QtWebEngineWidgets.QWebEngineHistory.items": (),
-# class PySide2.QtWebEngineWidgets.QWebEngineHistoryItem:
- "PySide2.QtWebEngineWidgets.QWebEngineHistoryItem.__init__": ('PySide2.QtWebEngineWidgets.QWebEngineHistoryItem',),
- "PySide2.QtWebEngineWidgets.QWebEngineHistoryItem.__copy__": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistoryItem.iconUrl": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistoryItem.isValid": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistoryItem.lastVisited": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistoryItem.originalUrl": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistoryItem.swap": ('PySide2.QtWebEngineWidgets.QWebEngineHistoryItem',),
- "PySide2.QtWebEngineWidgets.QWebEngineHistoryItem.title": (),
- "PySide2.QtWebEngineWidgets.QWebEngineHistoryItem.url": (),
-# class PySide2.QtWebEngineWidgets.QWebEnginePage:
-# class PySide2.QtWebEngineWidgets.QWebEnginePage.Feature:
-# class PySide2.QtWebEngineWidgets.QWebEnginePage.FileSelectionMode:
-# class PySide2.QtWebEngineWidgets.QWebEnginePage.FindFlag:
-# class PySide2.QtWebEngineWidgets.QWebEnginePage.FindFlags:
-# class PySide2.QtWebEngineWidgets.QWebEnginePage.JavaScriptConsoleMessageLevel:
-# class PySide2.QtWebEngineWidgets.QWebEnginePage.NavigationType:
-# class PySide2.QtWebEngineWidgets.QWebEnginePage.PermissionPolicy:
-# class PySide2.QtWebEngineWidgets.QWebEnginePage.RenderProcessTerminationStatus:
-# class PySide2.QtWebEngineWidgets.QWebEnginePage.WebAction:
-# class PySide2.QtWebEngineWidgets.QWebEnginePage.WebWindowType:
- "PySide2.QtWebEngineWidgets.QWebEnginePage.__init__": [('PySide2.QtCore.QObject',), ('PySide2.QtWebEngineWidgets.QWebEngineProfile', 'PySide2.QtCore.QObject')],
- "PySide2.QtWebEngineWidgets.QWebEnginePage.acceptNavigationRequest": ('PySide2.QtCore.QUrl', 'PySide2.QtWebEngineWidgets.QWebEnginePage.NavigationType', 'bool'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.action": ('PySide2.QtWebEngineWidgets.QWebEnginePage.WebAction',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.backgroundColor": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.certificateError": ('PySide2.QtWebEngineWidgets.QWebEngineCertificateError',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.chooseFiles": ('PySide2.QtWebEngineWidgets.QWebEnginePage.FileSelectionMode', 'typing.Sequence[str]', 'typing.Sequence[str]'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.contentsSize": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.contextMenuData": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.createStandardContextMenu": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.createWindow": ('PySide2.QtWebEngineWidgets.QWebEnginePage.WebWindowType',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.devToolsPage": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.download": ('PySide2.QtCore.QUrl', 'str'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.findText": [('str', 'PySide2.QtWebEngineWidgets.QWebEnginePage.FindFlags'), ('str', 'PySide2.QtWebEngineWidgets.QWebEnginePage.FindFlags', 'object')],
- "PySide2.QtWebEngineWidgets.QWebEnginePage.hasSelection": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.history": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.icon": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.iconUrl": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.inspectedPage": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.isAudioMuted": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.isVisible": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.javaScriptAlert": ('PySide2.QtCore.QUrl', 'str'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.javaScriptConfirm": ('PySide2.QtCore.QUrl', 'str'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.javaScriptConsoleMessage": ('PySide2.QtWebEngineWidgets.QWebEnginePage.JavaScriptConsoleMessageLevel', 'str', 'int', 'str'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.javaScriptPrompt": ('PySide2.QtCore.QUrl', 'str', 'str'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.load": [('PySide2.QtCore.QUrl',), ('PySide2.QtWebEngineCore.QWebEngineHttpRequest',)],
- "PySide2.QtWebEngineWidgets.QWebEnginePage.printToPdf": [('object', 'PySide2.QtGui.QPageLayout'), ('str', 'PySide2.QtGui.QPageLayout')],
- "PySide2.QtWebEngineWidgets.QWebEnginePage.profile": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.recentlyAudible": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.replaceMisspelledWord": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.requestedUrl": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.runJavaScript": [('str',), ('str', 'int'), ('str', 'int', 'object')],
- "PySide2.QtWebEngineWidgets.QWebEnginePage.save": ('str', 'PySide2.QtWebEngineWidgets.QWebEngineDownloadItem.SavePageFormat'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.scripts": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.scrollPosition": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.selectedText": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setAudioMuted": ('bool',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setBackgroundColor": ('PySide2.QtGui.QColor',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setContent": ('PySide2.QtCore.QByteArray', 'str', 'PySide2.QtCore.QUrl'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setDevToolsPage": ('PySide2.QtWebEngineWidgets.QWebEnginePage',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setFeaturePermission": ('PySide2.QtCore.QUrl', 'PySide2.QtWebEngineWidgets.QWebEnginePage.Feature', 'PySide2.QtWebEngineWidgets.QWebEnginePage.PermissionPolicy'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setHtml": ('str', 'PySide2.QtCore.QUrl'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setInspectedPage": ('PySide2.QtWebEngineWidgets.QWebEnginePage',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setUrlRequestInterceptor": ('PySide2.QtWebEngineCore.QWebEngineUrlRequestInterceptor',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setView": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setVisible": ('bool',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setWebChannel": [('PySide2.QtWebChannel.QWebChannel',), ('PySide2.QtWebChannel.QWebChannel', 'int')],
- "PySide2.QtWebEngineWidgets.QWebEnginePage.setZoomFactor": ('float',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.settings": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.title": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.toHtml": ('object',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.toPlainText": ('object',),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.triggerAction": ('PySide2.QtWebEngineWidgets.QWebEnginePage.WebAction', 'bool'),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.url": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.view": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.webChannel": (),
- "PySide2.QtWebEngineWidgets.QWebEnginePage.zoomFactor": (),
-# class PySide2.QtWebEngineWidgets.QWebEngineProfile:
-# class PySide2.QtWebEngineWidgets.QWebEngineProfile.HttpCacheType:
-# class PySide2.QtWebEngineWidgets.QWebEngineProfile.PersistentCookiesPolicy:
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.__init__": [('PySide2.QtCore.QObject',), ('str', 'PySide2.QtCore.QObject')],
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.cachePath": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.clearAllVisitedLinks": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.clearHttpCache": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.clearVisitedLinks": ('typing.Sequence[PySide2.QtCore.QUrl]',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.cookieStore": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.defaultProfile": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.downloadPath": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.httpAcceptLanguage": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.httpCacheMaximumSize": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.httpCacheType": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.httpUserAgent": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.installUrlSchemeHandler": ('PySide2.QtCore.QByteArray', 'PySide2.QtWebEngineCore.QWebEngineUrlSchemeHandler'),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.isOffTheRecord": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.isSpellCheckEnabled": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.isUsedForGlobalCertificateVerification": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.persistentCookiesPolicy": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.persistentStoragePath": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.removeAllUrlSchemeHandlers": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.removeUrlScheme": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.removeUrlSchemeHandler": ('PySide2.QtWebEngineCore.QWebEngineUrlSchemeHandler',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.scripts": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setCachePath": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setDownloadPath": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setHttpAcceptLanguage": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setHttpCacheMaximumSize": ('int',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setHttpCacheType": ('PySide2.QtWebEngineWidgets.QWebEngineProfile.HttpCacheType',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setHttpUserAgent": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setPersistentCookiesPolicy": ('PySide2.QtWebEngineWidgets.QWebEngineProfile.PersistentCookiesPolicy',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setPersistentStoragePath": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setRequestInterceptor": ('PySide2.QtWebEngineCore.QWebEngineUrlRequestInterceptor',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setSpellCheckEnabled": ('bool',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setSpellCheckLanguages": ('typing.Sequence[str]',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setUrlRequestInterceptor": ('PySide2.QtWebEngineCore.QWebEngineUrlRequestInterceptor',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.setUseForGlobalCertificateVerification": ('bool',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.settings": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.spellCheckLanguages": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.storageName": (),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.urlSchemeHandler": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWebEngineWidgets.QWebEngineProfile.visitedLinksContainsUrl": ('PySide2.QtCore.QUrl',),
-# class PySide2.QtWebEngineWidgets.QWebEngineScript:
-# class PySide2.QtWebEngineWidgets.QWebEngineScript.InjectionPoint:
-# class PySide2.QtWebEngineWidgets.QWebEngineScript.ScriptWorldId:
- "PySide2.QtWebEngineWidgets.QWebEngineScript.__init__": [(), ('PySide2.QtWebEngineWidgets.QWebEngineScript',)],
- "PySide2.QtWebEngineWidgets.QWebEngineScript.__copy__": (),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.injectionPoint": (),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.isNull": (),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.name": (),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.runsOnSubFrames": (),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.setInjectionPoint": ('PySide2.QtWebEngineWidgets.QWebEngineScript.InjectionPoint',),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.setName": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.setRunsOnSubFrames": ('bool',),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.setSourceCode": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.setWorldId": ('int',),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.sourceCode": (),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.swap": ('PySide2.QtWebEngineWidgets.QWebEngineScript',),
- "PySide2.QtWebEngineWidgets.QWebEngineScript.worldId": (),
-# class PySide2.QtWebEngineWidgets.QWebEngineScriptCollection:
- "PySide2.QtWebEngineWidgets.QWebEngineScriptCollection.clear": (),
- "PySide2.QtWebEngineWidgets.QWebEngineScriptCollection.contains": ('PySide2.QtWebEngineWidgets.QWebEngineScript',),
- "PySide2.QtWebEngineWidgets.QWebEngineScriptCollection.count": (),
- "PySide2.QtWebEngineWidgets.QWebEngineScriptCollection.findScript": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineScriptCollection.findScripts": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineScriptCollection.insert": [('PySide2.QtWebEngineWidgets.QWebEngineScript',), ('typing.Sequence[PySide2.QtWebEngineWidgets.QWebEngineScript]',)],
- "PySide2.QtWebEngineWidgets.QWebEngineScriptCollection.isEmpty": (),
- "PySide2.QtWebEngineWidgets.QWebEngineScriptCollection.remove": ('PySide2.QtWebEngineWidgets.QWebEngineScript',),
- "PySide2.QtWebEngineWidgets.QWebEngineScriptCollection.size": (),
- "PySide2.QtWebEngineWidgets.QWebEngineScriptCollection.toList": (),
-# class PySide2.QtWebEngineWidgets.QWebEngineSettings:
-# class PySide2.QtWebEngineWidgets.QWebEngineSettings.FontFamily:
-# class PySide2.QtWebEngineWidgets.QWebEngineSettings.FontSize:
-# class PySide2.QtWebEngineWidgets.QWebEngineSettings.UnknownUrlSchemePolicy:
-# class PySide2.QtWebEngineWidgets.QWebEngineSettings.WebAttribute:
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.defaultSettings": (),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.defaultTextEncoding": (),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.fontFamily": ('PySide2.QtWebEngineWidgets.QWebEngineSettings.FontFamily',),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.fontSize": ('PySide2.QtWebEngineWidgets.QWebEngineSettings.FontSize',),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.globalSettings": (),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.resetAttribute": ('PySide2.QtWebEngineWidgets.QWebEngineSettings.WebAttribute',),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.resetFontFamily": ('PySide2.QtWebEngineWidgets.QWebEngineSettings.FontFamily',),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.resetFontSize": ('PySide2.QtWebEngineWidgets.QWebEngineSettings.FontSize',),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.resetUnknownUrlSchemePolicy": (),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.setAttribute": ('PySide2.QtWebEngineWidgets.QWebEngineSettings.WebAttribute', 'bool'),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.setDefaultTextEncoding": ('str',),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.setFontFamily": ('PySide2.QtWebEngineWidgets.QWebEngineSettings.FontFamily', 'str'),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.setFontSize": ('PySide2.QtWebEngineWidgets.QWebEngineSettings.FontSize', 'int'),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.setUnknownUrlSchemePolicy": ('PySide2.QtWebEngineWidgets.QWebEngineSettings.UnknownUrlSchemePolicy',),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.testAttribute": ('PySide2.QtWebEngineWidgets.QWebEngineSettings.WebAttribute',),
- "PySide2.QtWebEngineWidgets.QWebEngineSettings.unknownUrlSchemePolicy": (),
-# class PySide2.QtWebEngineWidgets.QWebEngineView:
- "PySide2.QtWebEngineWidgets.QWebEngineView.__init__": ('PySide2.QtWidgets.QWidget',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.back": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.closeEvent": ('PySide2.QtGui.QCloseEvent',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.contextMenuEvent": ('PySide2.QtGui.QContextMenuEvent',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.createWindow": ('PySide2.QtWebEngineWidgets.QWebEnginePage.WebWindowType',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.dragEnterEvent": ('PySide2.QtGui.QDragEnterEvent',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.dragLeaveEvent": ('PySide2.QtGui.QDragLeaveEvent',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.dragMoveEvent": ('PySide2.QtGui.QDragMoveEvent',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.dropEvent": ('PySide2.QtGui.QDropEvent',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.event": ('PySide2.QtCore.QEvent',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.findText": [('str', 'PySide2.QtWebEngineWidgets.QWebEnginePage.FindFlags'), ('str', 'PySide2.QtWebEngineWidgets.QWebEnginePage.FindFlags', 'object')],
- "PySide2.QtWebEngineWidgets.QWebEngineView.forward": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.hasSelection": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.hideEvent": ('PySide2.QtGui.QHideEvent',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.history": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.icon": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.iconUrl": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.load": [('PySide2.QtCore.QUrl',), ('PySide2.QtWebEngineCore.QWebEngineHttpRequest',)],
- "PySide2.QtWebEngineWidgets.QWebEngineView.page": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.pageAction": ('PySide2.QtWebEngineWidgets.QWebEnginePage.WebAction',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.reload": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.selectedText": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.setContent": ('PySide2.QtCore.QByteArray', 'str', 'PySide2.QtCore.QUrl'),
- "PySide2.QtWebEngineWidgets.QWebEngineView.setHtml": ('str', 'PySide2.QtCore.QUrl'),
- "PySide2.QtWebEngineWidgets.QWebEngineView.setPage": ('PySide2.QtWebEngineWidgets.QWebEnginePage',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.setUrl": ('PySide2.QtCore.QUrl',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.setZoomFactor": ('float',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.settings": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.showEvent": ('PySide2.QtGui.QShowEvent',),
- "PySide2.QtWebEngineWidgets.QWebEngineView.sizeHint": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.stop": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.title": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.triggerPageAction": ('PySide2.QtWebEngineWidgets.QWebEnginePage.WebAction', 'bool'),
- "PySide2.QtWebEngineWidgets.QWebEngineView.url": (),
- "PySide2.QtWebEngineWidgets.QWebEngineView.zoomFactor": (),
- }) if "PySide2.QtWebEngineWidgets" in sys.modules else None
-# Module PySide2.QtWebSockets
-sig_dict.update({
-# class PySide2.QtWebSockets.QMaskGenerator:
- "PySide2.QtWebSockets.QMaskGenerator.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.QtWebSockets.QMaskGenerator.nextMask": (),
- "PySide2.QtWebSockets.QMaskGenerator.seed": (),
-# class PySide2.QtWebSockets.QWebSocket:
- "PySide2.QtWebSockets.QWebSocket.__init__": ('str', 'PySide2.QtWebSockets.QWebSocketProtocol.Version', 'PySide2.QtCore.QObject'),
- "PySide2.QtWebSockets.QWebSocket.abort": (),
- "PySide2.QtWebSockets.QWebSocket.bytesToWrite": (),
- "PySide2.QtWebSockets.QWebSocket.close": ('PySide2.QtWebSockets.QWebSocketProtocol.CloseCode', 'str'),
- "PySide2.QtWebSockets.QWebSocket.closeCode": (),
- "PySide2.QtWebSockets.QWebSocket.closeReason": (),
- "PySide2.QtWebSockets.QWebSocket.error": (),
- "PySide2.QtWebSockets.QWebSocket.errorString": (),
- "PySide2.QtWebSockets.QWebSocket.flush": (),
- "PySide2.QtWebSockets.QWebSocket.isValid": (),
- "PySide2.QtWebSockets.QWebSocket.localAddress": (),
- "PySide2.QtWebSockets.QWebSocket.localPort": (),
- "PySide2.QtWebSockets.QWebSocket.maskGenerator": (),
- "PySide2.QtWebSockets.QWebSocket.open": [('PySide2.QtCore.QUrl',), ('PySide2.QtNetwork.QNetworkRequest',)],
- "PySide2.QtWebSockets.QWebSocket.origin": (),
- "PySide2.QtWebSockets.QWebSocket.pauseMode": (),
- "PySide2.QtWebSockets.QWebSocket.peerAddress": (),
- "PySide2.QtWebSockets.QWebSocket.peerName": (),
- "PySide2.QtWebSockets.QWebSocket.peerPort": (),
- "PySide2.QtWebSockets.QWebSocket.ping": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWebSockets.QWebSocket.proxy": (),
- "PySide2.QtWebSockets.QWebSocket.readBufferSize": (),
- "PySide2.QtWebSockets.QWebSocket.request": (),
- "PySide2.QtWebSockets.QWebSocket.requestUrl": (),
- "PySide2.QtWebSockets.QWebSocket.resourceName": (),
- "PySide2.QtWebSockets.QWebSocket.resume": (),
- "PySide2.QtWebSockets.QWebSocket.sendBinaryMessage": ('PySide2.QtCore.QByteArray',),
- "PySide2.QtWebSockets.QWebSocket.sendTextMessage": ('str',),
- "PySide2.QtWebSockets.QWebSocket.setMaskGenerator": ('PySide2.QtWebSockets.QMaskGenerator',),
- "PySide2.QtWebSockets.QWebSocket.setPauseMode": ('PySide2.QtNetwork.QAbstractSocket.PauseModes',),
- "PySide2.QtWebSockets.QWebSocket.setProxy": ('PySide2.QtNetwork.QNetworkProxy',),
- "PySide2.QtWebSockets.QWebSocket.setReadBufferSize": ('int',),
- "PySide2.QtWebSockets.QWebSocket.state": (),
- "PySide2.QtWebSockets.QWebSocket.version": (),
-# class PySide2.QtWebSockets.QWebSocketCorsAuthenticator:
- "PySide2.QtWebSockets.QWebSocketCorsAuthenticator.__init__": [('PySide2.QtWebSockets.QWebSocketCorsAuthenticator',), ('str',)],
- "PySide2.QtWebSockets.QWebSocketCorsAuthenticator.allowed": (),
- "PySide2.QtWebSockets.QWebSocketCorsAuthenticator.origin": (),
- "PySide2.QtWebSockets.QWebSocketCorsAuthenticator.setAllowed": ('bool',),
- "PySide2.QtWebSockets.QWebSocketCorsAuthenticator.swap": ('PySide2.QtWebSockets.QWebSocketCorsAuthenticator',),
-# class PySide2.QtWebSockets.QWebSocketProtocol:
-# class PySide2.QtWebSockets.QWebSocketProtocol.CloseCode:
-# class PySide2.QtWebSockets.QWebSocketProtocol.Version:
-# class PySide2.QtWebSockets.QWebSocketServer:
-# class PySide2.QtWebSockets.QWebSocketServer.SslMode:
- "PySide2.QtWebSockets.QWebSocketServer.__init__": ('str', 'PySide2.QtWebSockets.QWebSocketServer.SslMode', 'PySide2.QtCore.QObject'),
- "PySide2.QtWebSockets.QWebSocketServer.close": (),
- "PySide2.QtWebSockets.QWebSocketServer.error": (),
- "PySide2.QtWebSockets.QWebSocketServer.errorString": (),
- "PySide2.QtWebSockets.QWebSocketServer.handleConnection": ('PySide2.QtNetwork.QTcpSocket',),
- "PySide2.QtWebSockets.QWebSocketServer.handshakeTimeoutMS": (),
- "PySide2.QtWebSockets.QWebSocketServer.hasPendingConnections": (),
- "PySide2.QtWebSockets.QWebSocketServer.isListening": (),
- "PySide2.QtWebSockets.QWebSocketServer.listen": ('PySide2.QtNetwork.QHostAddress', 'int'),
- "PySide2.QtWebSockets.QWebSocketServer.maxPendingConnections": (),
- "PySide2.QtWebSockets.QWebSocketServer.nativeDescriptor": (),
- "PySide2.QtWebSockets.QWebSocketServer.nextPendingConnection": (),
- "PySide2.QtWebSockets.QWebSocketServer.pauseAccepting": (),
- "PySide2.QtWebSockets.QWebSocketServer.proxy": (),
- "PySide2.QtWebSockets.QWebSocketServer.resumeAccepting": (),
- "PySide2.QtWebSockets.QWebSocketServer.secureMode": (),
- "PySide2.QtWebSockets.QWebSocketServer.serverAddress": (),
- "PySide2.QtWebSockets.QWebSocketServer.serverName": (),
- "PySide2.QtWebSockets.QWebSocketServer.serverPort": (),
- "PySide2.QtWebSockets.QWebSocketServer.serverUrl": (),
- "PySide2.QtWebSockets.QWebSocketServer.setHandshakeTimeout": ('int',),
- "PySide2.QtWebSockets.QWebSocketServer.setMaxPendingConnections": ('int',),
- "PySide2.QtWebSockets.QWebSocketServer.setNativeDescriptor": ('int',),
- "PySide2.QtWebSockets.QWebSocketServer.setProxy": ('PySide2.QtNetwork.QNetworkProxy',),
- "PySide2.QtWebSockets.QWebSocketServer.setServerName": ('str',),
- "PySide2.QtWebSockets.QWebSocketServer.setSocketDescriptor": ('int',),
- "PySide2.QtWebSockets.QWebSocketServer.socketDescriptor": (),
- "PySide2.QtWebSockets.QWebSocketServer.supportedVersions": (),
- }) if "PySide2.QtWebSockets" in sys.modules else None
-# Module PySide2.Qt3DCore
-sig_dict.update({
-# class PySide2.Qt3DCore.Qt3DCore:
-# class PySide2.Qt3DCore.Qt3DCore.ChangeFlag:
-# class PySide2.Qt3DCore.Qt3DCore.ChangeFlags:
-# class PySide2.Qt3DCore.Qt3DCore.QAbstractAspect:
- "PySide2.Qt3DCore.Qt3DCore.QAbstractAspect.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DCore.Qt3DCore.QAbstractAspect.rootEntityId": (),
- "PySide2.Qt3DCore.Qt3DCore.QAbstractAspect.unregisterBackendType": ('PySide2.QtCore.QMetaObject',),
-# class PySide2.Qt3DCore.Qt3DCore.QAbstractSkeleton:
- "PySide2.Qt3DCore.Qt3DCore.QAbstractSkeleton.jointCount": (),
-# class PySide2.Qt3DCore.Qt3DCore.QArmature:
- "PySide2.Qt3DCore.Qt3DCore.QArmature.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DCore.Qt3DCore.QArmature.setSkeleton": ('PySide2.Qt3DCore.Qt3DCore.QAbstractSkeleton',),
- "PySide2.Qt3DCore.Qt3DCore.QArmature.skeleton": (),
-# class PySide2.Qt3DCore.Qt3DCore.QAspectEngine:
-# class PySide2.Qt3DCore.Qt3DCore.QAspectEngine.RunMode:
- "PySide2.Qt3DCore.Qt3DCore.QAspectEngine.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DCore.Qt3DCore.QAspectEngine.aspects": (),
- "PySide2.Qt3DCore.Qt3DCore.QAspectEngine.executeCommand": ('str',),
- "PySide2.Qt3DCore.Qt3DCore.QAspectEngine.processFrame": (),
- "PySide2.Qt3DCore.Qt3DCore.QAspectEngine.registerAspect": [('PySide2.Qt3DCore.Qt3DCore.QAbstractAspect',), ('str',)],
- "PySide2.Qt3DCore.Qt3DCore.QAspectEngine.runMode": (),
- "PySide2.Qt3DCore.Qt3DCore.QAspectEngine.setRunMode": ('PySide2.Qt3DCore.Qt3DCore.QAspectEngine.RunMode',),
- "PySide2.Qt3DCore.Qt3DCore.QAspectEngine.unregisterAspect": [('PySide2.Qt3DCore.Qt3DCore.QAbstractAspect',), ('str',)],
-# class PySide2.Qt3DCore.Qt3DCore.QAspectJob:
- "PySide2.Qt3DCore.Qt3DCore.QAspectJob.__init__": (),
- "PySide2.Qt3DCore.Qt3DCore.QAspectJob.run": (),
-# class PySide2.Qt3DCore.Qt3DCore.QBackendNode:
-# class PySide2.Qt3DCore.Qt3DCore.QBackendNode.Mode:
- "PySide2.Qt3DCore.Qt3DCore.QBackendNode.__init__": ('PySide2.Qt3DCore.Qt3DCore.QBackendNode.Mode',),
- "PySide2.Qt3DCore.Qt3DCore.QBackendNode.isEnabled": (),
- "PySide2.Qt3DCore.Qt3DCore.QBackendNode.mode": (),
- "PySide2.Qt3DCore.Qt3DCore.QBackendNode.peerId": (),
- "PySide2.Qt3DCore.Qt3DCore.QBackendNode.setEnabled": ('bool',),
-# class PySide2.Qt3DCore.Qt3DCore.QComponent:
- "PySide2.Qt3DCore.Qt3DCore.QComponent.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DCore.Qt3DCore.QComponent.entities": (),
- "PySide2.Qt3DCore.Qt3DCore.QComponent.isShareable": (),
- "PySide2.Qt3DCore.Qt3DCore.QComponent.setShareable": ('bool',),
-# class PySide2.Qt3DCore.Qt3DCore.QComponentAddedChange:
- "PySide2.Qt3DCore.Qt3DCore.QComponentAddedChange.__init__": [('PySide2.Qt3DCore.Qt3DCore.QComponent', 'PySide2.Qt3DCore.Qt3DCore.QEntity'), ('PySide2.Qt3DCore.Qt3DCore.QEntity', 'PySide2.Qt3DCore.Qt3DCore.QComponent')],
- "PySide2.Qt3DCore.Qt3DCore.QComponentAddedChange.componentId": (),
- "PySide2.Qt3DCore.Qt3DCore.QComponentAddedChange.componentMetaObject": (),
- "PySide2.Qt3DCore.Qt3DCore.QComponentAddedChange.entityId": (),
-# class PySide2.Qt3DCore.Qt3DCore.QComponentRemovedChange:
- "PySide2.Qt3DCore.Qt3DCore.QComponentRemovedChange.__init__": [('PySide2.Qt3DCore.Qt3DCore.QComponent', 'PySide2.Qt3DCore.Qt3DCore.QEntity'), ('PySide2.Qt3DCore.Qt3DCore.QEntity', 'PySide2.Qt3DCore.Qt3DCore.QComponent')],
- "PySide2.Qt3DCore.Qt3DCore.QComponentRemovedChange.componentId": (),
- "PySide2.Qt3DCore.Qt3DCore.QComponentRemovedChange.componentMetaObject": (),
- "PySide2.Qt3DCore.Qt3DCore.QComponentRemovedChange.entityId": (),
-# class PySide2.Qt3DCore.Qt3DCore.QDynamicPropertyUpdatedChange:
- "PySide2.Qt3DCore.Qt3DCore.QDynamicPropertyUpdatedChange.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
- "PySide2.Qt3DCore.Qt3DCore.QDynamicPropertyUpdatedChange.propertyName": (),
- "PySide2.Qt3DCore.Qt3DCore.QDynamicPropertyUpdatedChange.setPropertyName": ('PySide2.QtCore.QByteArray',),
- "PySide2.Qt3DCore.Qt3DCore.QDynamicPropertyUpdatedChange.setValue": ('typing.Any',),
- "PySide2.Qt3DCore.Qt3DCore.QDynamicPropertyUpdatedChange.value": (),
-# class PySide2.Qt3DCore.Qt3DCore.QEntity:
- "PySide2.Qt3DCore.Qt3DCore.QEntity.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DCore.Qt3DCore.QEntity.addComponent": ('PySide2.Qt3DCore.Qt3DCore.QComponent',),
- "PySide2.Qt3DCore.Qt3DCore.QEntity.components": (),
- "PySide2.Qt3DCore.Qt3DCore.QEntity.parentEntity": (),
- "PySide2.Qt3DCore.Qt3DCore.QEntity.removeComponent": ('PySide2.Qt3DCore.Qt3DCore.QComponent',),
-# class PySide2.Qt3DCore.Qt3DCore.QJoint:
- "PySide2.Qt3DCore.Qt3DCore.QJoint.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.addChildJoint": ('PySide2.Qt3DCore.Qt3DCore.QJoint',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.childJoints": (),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.inverseBindMatrix": (),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.name": (),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.removeChildJoint": ('PySide2.Qt3DCore.Qt3DCore.QJoint',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.rotation": (),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.rotationX": (),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.rotationY": (),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.rotationZ": (),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.scale": (),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.setInverseBindMatrix": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.setName": ('str',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.setRotation": ('PySide2.QtGui.QQuaternion',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.setRotationX": ('float',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.setRotationY": ('float',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.setRotationZ": ('float',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.setScale": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.setToIdentity": (),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.setTranslation": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DCore.Qt3DCore.QJoint.translation": (),
-# class PySide2.Qt3DCore.Qt3DCore.QNode:
-# class PySide2.Qt3DCore.Qt3DCore.QNode.PropertyTrackingMode:
- "PySide2.Qt3DCore.Qt3DCore.QNode.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DCore.Qt3DCore.QNode.blockNotifications": ('bool',),
- "PySide2.Qt3DCore.Qt3DCore.QNode.childNodes": (),
- "PySide2.Qt3DCore.Qt3DCore.QNode.clearPropertyTracking": ('str',),
- "PySide2.Qt3DCore.Qt3DCore.QNode.clearPropertyTrackings": (),
- "PySide2.Qt3DCore.Qt3DCore.QNode.defaultPropertyTrackingMode": (),
- "PySide2.Qt3DCore.Qt3DCore.QNode.id": (),
- "PySide2.Qt3DCore.Qt3DCore.QNode.isEnabled": (),
- "PySide2.Qt3DCore.Qt3DCore.QNode.notificationsBlocked": (),
- "PySide2.Qt3DCore.Qt3DCore.QNode.parentNode": (),
- "PySide2.Qt3DCore.Qt3DCore.QNode.propertyTracking": ('str',),
- "PySide2.Qt3DCore.Qt3DCore.QNode.setDefaultPropertyTrackingMode": ('PySide2.Qt3DCore.Qt3DCore.QNode.PropertyTrackingMode',),
- "PySide2.Qt3DCore.Qt3DCore.QNode.setEnabled": ('bool',),
- "PySide2.Qt3DCore.Qt3DCore.QNode.setParent": [('PySide2.Qt3DCore.Qt3DCore.QNode',), ('PySide2.QtCore.QObject',)],
- "PySide2.Qt3DCore.Qt3DCore.QNode.setPropertyTracking": ('str', 'PySide2.Qt3DCore.Qt3DCore.QNode.PropertyTrackingMode'),
-# class PySide2.Qt3DCore.Qt3DCore.QNodeCommand:
- "PySide2.Qt3DCore.Qt3DCore.QNodeCommand.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
- "PySide2.Qt3DCore.Qt3DCore.QNodeCommand.commandId": (),
- "PySide2.Qt3DCore.Qt3DCore.QNodeCommand.data": (),
- "PySide2.Qt3DCore.Qt3DCore.QNodeCommand.inReplyTo": (),
- "PySide2.Qt3DCore.Qt3DCore.QNodeCommand.name": (),
- "PySide2.Qt3DCore.Qt3DCore.QNodeCommand.setData": ('typing.Any',),
- "PySide2.Qt3DCore.Qt3DCore.QNodeCommand.setName": ('str',),
- "PySide2.Qt3DCore.Qt3DCore.QNodeCommand.setReplyToCommandId": ('int',),
-# class PySide2.Qt3DCore.Qt3DCore.QNodeCreatedChangeBase:
- "PySide2.Qt3DCore.Qt3DCore.QNodeCreatedChangeBase.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DCore.Qt3DCore.QNodeCreatedChangeBase.isNodeEnabled": (),
- "PySide2.Qt3DCore.Qt3DCore.QNodeCreatedChangeBase.parentId": (),
-# class PySide2.Qt3DCore.Qt3DCore.QNodeDestroyedChange:
- "PySide2.Qt3DCore.Qt3DCore.QNodeDestroyedChange.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode', 'typing.List[PySide2.Qt3DCore.Qt3DCore.QNodeIdTypePair]'),
- "PySide2.Qt3DCore.Qt3DCore.QNodeDestroyedChange.subtreeIdsAndTypes": (),
-# class PySide2.Qt3DCore.Qt3DCore.QNodeId:
- "PySide2.Qt3DCore.Qt3DCore.QNodeId.__init__": [(), ('PySide2.Qt3DCore.Qt3DCore.QNodeId',)],
- "PySide2.Qt3DCore.Qt3DCore.QNodeId.__copy__": (),
- "PySide2.Qt3DCore.Qt3DCore.QNodeId.createId": (),
- "PySide2.Qt3DCore.Qt3DCore.QNodeId.id": (),
- "PySide2.Qt3DCore.Qt3DCore.QNodeId.isNull": (),
-# class PySide2.Qt3DCore.Qt3DCore.QNodeIdTypePair:
- "PySide2.Qt3DCore.Qt3DCore.QNodeIdTypePair.__init__": [(), ('PySide2.Qt3DCore.Qt3DCore.QNodeId', 'PySide2.QtCore.QMetaObject'), ('PySide2.Qt3DCore.Qt3DCore.QNodeIdTypePair',)],
- "PySide2.Qt3DCore.Qt3DCore.QNodeIdTypePair.__copy__": (),
-# class PySide2.Qt3DCore.Qt3DCore.QPropertyNodeAddedChange:
- "PySide2.Qt3DCore.Qt3DCore.QPropertyNodeAddedChange.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId', 'PySide2.Qt3DCore.Qt3DCore.QNode'),
- "PySide2.Qt3DCore.Qt3DCore.QPropertyNodeAddedChange.addedNodeId": (),
-# class PySide2.Qt3DCore.Qt3DCore.QPropertyNodeRemovedChange:
- "PySide2.Qt3DCore.Qt3DCore.QPropertyNodeRemovedChange.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId', 'PySide2.Qt3DCore.Qt3DCore.QNode'),
- "PySide2.Qt3DCore.Qt3DCore.QPropertyNodeRemovedChange.removedNodeId": (),
-# class PySide2.Qt3DCore.Qt3DCore.QPropertyUpdatedChange:
- "PySide2.Qt3DCore.Qt3DCore.QPropertyUpdatedChange.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
- "PySide2.Qt3DCore.Qt3DCore.QPropertyUpdatedChange.setValue": ('typing.Any',),
- "PySide2.Qt3DCore.Qt3DCore.QPropertyUpdatedChange.value": (),
-# class PySide2.Qt3DCore.Qt3DCore.QPropertyUpdatedChangeBase:
- "PySide2.Qt3DCore.Qt3DCore.QPropertyUpdatedChangeBase.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
-# class PySide2.Qt3DCore.Qt3DCore.QPropertyValueAddedChange:
- "PySide2.Qt3DCore.Qt3DCore.QPropertyValueAddedChange.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
- "PySide2.Qt3DCore.Qt3DCore.QPropertyValueAddedChange.addedValue": (),
- "PySide2.Qt3DCore.Qt3DCore.QPropertyValueAddedChange.setAddedValue": ('typing.Any',),
-# class PySide2.Qt3DCore.Qt3DCore.QPropertyValueAddedChangeBase:
- "PySide2.Qt3DCore.Qt3DCore.QPropertyValueAddedChangeBase.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
-# class PySide2.Qt3DCore.Qt3DCore.QPropertyValueRemovedChange:
- "PySide2.Qt3DCore.Qt3DCore.QPropertyValueRemovedChange.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
- "PySide2.Qt3DCore.Qt3DCore.QPropertyValueRemovedChange.removedValue": (),
- "PySide2.Qt3DCore.Qt3DCore.QPropertyValueRemovedChange.setRemovedValue": ('typing.Any',),
-# class PySide2.Qt3DCore.Qt3DCore.QPropertyValueRemovedChangeBase:
- "PySide2.Qt3DCore.Qt3DCore.QPropertyValueRemovedChangeBase.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
-# class PySide2.Qt3DCore.Qt3DCore.QSceneChange:
-# class PySide2.Qt3DCore.Qt3DCore.QSceneChange.DeliveryFlag:
-# class PySide2.Qt3DCore.Qt3DCore.QSceneChange.DeliveryFlags:
- "PySide2.Qt3DCore.Qt3DCore.QSceneChange.__init__": ('PySide2.Qt3DCore.Qt3DCore.ChangeFlag', 'PySide2.Qt3DCore.Qt3DCore.QNodeId'),
- "PySide2.Qt3DCore.Qt3DCore.QSceneChange.deliveryFlags": (),
- "PySide2.Qt3DCore.Qt3DCore.QSceneChange.setDeliveryFlags": ('PySide2.Qt3DCore.Qt3DCore.QSceneChange.DeliveryFlags',),
- "PySide2.Qt3DCore.Qt3DCore.QSceneChange.subjectId": (),
- "PySide2.Qt3DCore.Qt3DCore.QSceneChange.type": (),
-# class PySide2.Qt3DCore.Qt3DCore.QSkeleton:
- "PySide2.Qt3DCore.Qt3DCore.QSkeleton.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DCore.Qt3DCore.QSkeleton.rootJoint": (),
- "PySide2.Qt3DCore.Qt3DCore.QSkeleton.setRootJoint": ('PySide2.Qt3DCore.Qt3DCore.QJoint',),
-# class PySide2.Qt3DCore.Qt3DCore.QSkeletonLoader:
-# class PySide2.Qt3DCore.Qt3DCore.QSkeletonLoader.Status:
- "PySide2.Qt3DCore.Qt3DCore.QSkeletonLoader.__init__": [('PySide2.Qt3DCore.Qt3DCore.QNode',), ('PySide2.QtCore.QUrl', 'PySide2.Qt3DCore.Qt3DCore.QNode')],
- "PySide2.Qt3DCore.Qt3DCore.QSkeletonLoader.isCreateJointsEnabled": (),
- "PySide2.Qt3DCore.Qt3DCore.QSkeletonLoader.rootJoint": (),
- "PySide2.Qt3DCore.Qt3DCore.QSkeletonLoader.setCreateJointsEnabled": ('bool',),
- "PySide2.Qt3DCore.Qt3DCore.QSkeletonLoader.setSource": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DCore.Qt3DCore.QSkeletonLoader.source": (),
- "PySide2.Qt3DCore.Qt3DCore.QSkeletonLoader.status": (),
-# class PySide2.Qt3DCore.Qt3DCore.QStaticPropertyUpdatedChangeBase:
- "PySide2.Qt3DCore.Qt3DCore.QStaticPropertyUpdatedChangeBase.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
- "PySide2.Qt3DCore.Qt3DCore.QStaticPropertyUpdatedChangeBase.propertyName": (),
- "PySide2.Qt3DCore.Qt3DCore.QStaticPropertyUpdatedChangeBase.setPropertyName": ('str',),
-# class PySide2.Qt3DCore.Qt3DCore.QStaticPropertyValueAddedChangeBase:
- "PySide2.Qt3DCore.Qt3DCore.QStaticPropertyValueAddedChangeBase.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
- "PySide2.Qt3DCore.Qt3DCore.QStaticPropertyValueAddedChangeBase.propertyName": (),
- "PySide2.Qt3DCore.Qt3DCore.QStaticPropertyValueAddedChangeBase.setPropertyName": ('str',),
-# class PySide2.Qt3DCore.Qt3DCore.QStaticPropertyValueRemovedChangeBase:
- "PySide2.Qt3DCore.Qt3DCore.QStaticPropertyValueRemovedChangeBase.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
- "PySide2.Qt3DCore.Qt3DCore.QStaticPropertyValueRemovedChangeBase.propertyName": (),
- "PySide2.Qt3DCore.Qt3DCore.QStaticPropertyValueRemovedChangeBase.setPropertyName": ('str',),
-# class PySide2.Qt3DCore.Qt3DCore.QTransform:
- "PySide2.Qt3DCore.Qt3DCore.QTransform.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.fromAxes": ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.fromAxesAndAngles": [('PySide2.QtGui.QVector3D', 'float', 'PySide2.QtGui.QVector3D', 'float'), ('PySide2.QtGui.QVector3D', 'float', 'PySide2.QtGui.QVector3D', 'float', 'PySide2.QtGui.QVector3D', 'float')],
- "PySide2.Qt3DCore.Qt3DCore.QTransform.fromAxisAndAngle": [('PySide2.QtGui.QVector3D', 'float'), ('float', 'float', 'float', 'float')],
- "PySide2.Qt3DCore.Qt3DCore.QTransform.fromEulerAngles": [('PySide2.QtGui.QVector3D',), ('float', 'float', 'float')],
- "PySide2.Qt3DCore.Qt3DCore.QTransform.matrix": (),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.rotateAround": ('PySide2.QtGui.QVector3D', 'float', 'PySide2.QtGui.QVector3D'),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.rotateFromAxes": ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D'),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.rotation": (),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.rotationX": (),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.rotationY": (),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.rotationZ": (),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.scale": (),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.scale3D": (),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.setMatrix": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.setRotation": ('PySide2.QtGui.QQuaternion',),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.setRotationX": ('float',),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.setRotationY": ('float',),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.setRotationZ": ('float',),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.setScale": ('float',),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.setScale3D": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.setTranslation": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.translation": (),
- "PySide2.Qt3DCore.Qt3DCore.QTransform.worldMatrix": (),
- "PySide2.Qt3DCore.Qt3DCore.qHash": ('PySide2.Qt3DCore.Qt3DCore.QNodeId', 'int'),
- "PySide2.Qt3DCore.Qt3DCore.qIdForNode": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- }) if "PySide2.Qt3DCore" in sys.modules else None
-# Module PySide2.Qt3DRender
-sig_dict.update({
-# class PySide2.Qt3DRender.Qt3DRender:
-# class PySide2.Qt3DRender.Qt3DRender.PropertyReaderInterface:
- "PySide2.Qt3DRender.Qt3DRender.PropertyReaderInterface.__init__": (),
- "PySide2.Qt3DRender.Qt3DRender.PropertyReaderInterface.readProperty": ('typing.Any',),
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractFunctor:
- "PySide2.Qt3DRender.Qt3DRender.QAbstractFunctor.__init__": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractFunctor.id": (),
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractLight:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractLight.Type:
- "PySide2.Qt3DRender.Qt3DRender.QAbstractLight.color": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractLight.intensity": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractLight.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractLight.setIntensity": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractLight.type": (),
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.FilterMode:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.RunMode:
- "PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.addLayer": ('PySide2.Qt3DRender.Qt3DRender.QLayer',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.filterMode": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.hits": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.layers": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.removeLayer": ('PySide2.Qt3DRender.Qt3DRender.QLayer',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.runMode": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.setFilterMode": ('PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.FilterMode',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.setRunMode": ('PySide2.Qt3DRender.Qt3DRender.QAbstractRayCaster.RunMode',),
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractTexture:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.ComparisonFunction:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.ComparisonMode:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.CubeMapFace:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.Filter:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.HandleType:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.Status:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.Target:
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.TextureFormat:
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.__init__": [('PySide2.Qt3DCore.Qt3DCore.QNode',), ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.Target', 'PySide2.Qt3DCore.Qt3DCore.QNode')],
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.addTextureImage": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTextureImage',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.comparisonFunction": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.comparisonMode": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.depth": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.format": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.generateMipMaps": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.handle": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.handleType": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.height": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.layers": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.magnificationFilter": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.maximumAnisotropy": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.minificationFilter": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.removeTextureImage": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTextureImage',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.samples": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setComparisonFunction": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.ComparisonFunction',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setComparisonMode": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.ComparisonMode',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setDepth": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setFormat": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.TextureFormat',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setGenerateMipMaps": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setHandle": ('typing.Any',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setHandleType": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.HandleType',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setHeight": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setLayers": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setMagnificationFilter": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.Filter',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setMaximumAnisotropy": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setMinificationFilter": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.Filter',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setSamples": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setSize": ('int', 'int', 'int'),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setStatus": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.Status',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setWidth": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.setWrapMode": ('PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.status": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.target": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.textureImages": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.width": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.wrapMode": (),
-# class PySide2.Qt3DRender.Qt3DRender.QAbstractTextureImage:
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTextureImage.face": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTextureImage.layer": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTextureImage.mipLevel": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTextureImage.notifyDataGeneratorChanged": (),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTextureImage.setFace": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.CubeMapFace',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTextureImage.setLayer": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAbstractTextureImage.setMipLevel": ('int',),
-# class PySide2.Qt3DRender.Qt3DRender.QAlphaCoverage:
- "PySide2.Qt3DRender.Qt3DRender.QAlphaCoverage.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QAlphaTest:
-# class PySide2.Qt3DRender.Qt3DRender.QAlphaTest.AlphaFunction:
- "PySide2.Qt3DRender.Qt3DRender.QAlphaTest.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QAlphaTest.alphaFunction": (),
- "PySide2.Qt3DRender.Qt3DRender.QAlphaTest.referenceValue": (),
- "PySide2.Qt3DRender.Qt3DRender.QAlphaTest.setAlphaFunction": ('PySide2.Qt3DRender.Qt3DRender.QAlphaTest.AlphaFunction',),
- "PySide2.Qt3DRender.Qt3DRender.QAlphaTest.setReferenceValue": ('float',),
-# class PySide2.Qt3DRender.Qt3DRender.QAttribute:
-# class PySide2.Qt3DRender.Qt3DRender.QAttribute.AttributeType:
-# class PySide2.Qt3DRender.Qt3DRender.QAttribute.VertexBaseType:
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.__init__": [('PySide2.Qt3DCore.Qt3DCore.QNode',), ('PySide2.Qt3DRender.Qt3DRender.QBuffer', 'PySide2.Qt3DRender.Qt3DRender.QAttribute.VertexBaseType', 'int', 'int', 'int', 'int', 'PySide2.Qt3DCore.Qt3DCore.QNode'), ('PySide2.Qt3DRender.Qt3DRender.QBuffer', 'str', 'PySide2.Qt3DRender.Qt3DRender.QAttribute.VertexBaseType', 'int', 'int', 'int', 'int', 'PySide2.Qt3DCore.Qt3DCore.QNode')],
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.attributeType": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.buffer": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.byteOffset": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.byteStride": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.count": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.defaultColorAttributeName": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.defaultJointIndicesAttributeName": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.defaultJointWeightsAttributeName": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.defaultNormalAttributeName": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.defaultPositionAttributeName": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.defaultTangentAttributeName": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.defaultTextureCoordinate1AttributeName": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.defaultTextureCoordinate2AttributeName": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.defaultTextureCoordinateAttributeName": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.divisor": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.name": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setAttributeType": ('PySide2.Qt3DRender.Qt3DRender.QAttribute.AttributeType',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setBuffer": ('PySide2.Qt3DRender.Qt3DRender.QBuffer',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setByteOffset": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setByteStride": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setCount": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setDataSize": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setDataType": ('PySide2.Qt3DRender.Qt3DRender.QAttribute.VertexBaseType',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setDivisor": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setName": ('str',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setVertexBaseType": ('PySide2.Qt3DRender.Qt3DRender.QAttribute.VertexBaseType',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.setVertexSize": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.vertexBaseType": (),
- "PySide2.Qt3DRender.Qt3DRender.QAttribute.vertexSize": (),
-# class PySide2.Qt3DRender.Qt3DRender.QBlendEquation:
-# class PySide2.Qt3DRender.Qt3DRender.QBlendEquation.BlendFunction:
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquation.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquation.blendFunction": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquation.setBlendFunction": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquation.BlendFunction',),
-# class PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments:
-# class PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending:
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.bufferIndex": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.destinationAlpha": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.destinationRgb": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.setBufferIndex": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.setDestinationAlpha": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending',),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.setDestinationRgb": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending',),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.setDestinationRgba": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending',),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.setSourceAlpha": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending',),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.setSourceRgb": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending',),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.setSourceRgba": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending',),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.sourceAlpha": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.sourceRgb": (),
-# class PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer:
-# class PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.InterpolationMethod:
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.destination": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.destinationAttachmentPoint": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.destinationRect": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.interpolationMethod": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.setDestination": ('PySide2.Qt3DRender.Qt3DRender.QRenderTarget',),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.setDestinationAttachmentPoint": ('PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.AttachmentPoint',),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.setDestinationRect": ('PySide2.QtCore.QRectF',),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.setInterpolationMethod": ('PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.InterpolationMethod',),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.setSource": ('PySide2.Qt3DRender.Qt3DRender.QRenderTarget',),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.setSourceAttachmentPoint": ('PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.AttachmentPoint',),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.setSourceRect": ('PySide2.QtCore.QRectF',),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.source": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.sourceAttachmentPoint": (),
- "PySide2.Qt3DRender.Qt3DRender.QBlitFramebuffer.sourceRect": (),
-# class PySide2.Qt3DRender.Qt3DRender.QBuffer:
-# class PySide2.Qt3DRender.Qt3DRender.QBuffer.AccessType:
-# class PySide2.Qt3DRender.Qt3DRender.QBuffer.BufferType:
-# class PySide2.Qt3DRender.Qt3DRender.QBuffer.UsageType:
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.__init__": [('PySide2.Qt3DCore.Qt3DCore.QNode',), ('PySide2.Qt3DRender.Qt3DRender.QBuffer.BufferType', 'PySide2.Qt3DCore.Qt3DCore.QNode')],
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.accessType": (),
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.data": (),
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.isSyncData": (),
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.setAccessType": ('PySide2.Qt3DRender.Qt3DRender.QBuffer.AccessType',),
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.setData": ('PySide2.QtCore.QByteArray',),
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.setSyncData": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.setType": ('PySide2.Qt3DRender.Qt3DRender.QBuffer.BufferType',),
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.setUsage": ('PySide2.Qt3DRender.Qt3DRender.QBuffer.UsageType',),
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.type": (),
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.updateData": ('int', 'PySide2.QtCore.QByteArray'),
- "PySide2.Qt3DRender.Qt3DRender.QBuffer.usage": (),
-# class PySide2.Qt3DRender.Qt3DRender.QBufferCapture:
- "PySide2.Qt3DRender.Qt3DRender.QBufferCapture.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QBufferDataGenerator:
- "PySide2.Qt3DRender.Qt3DRender.QBufferDataGenerator.__init__": (),
-# class PySide2.Qt3DRender.Qt3DRender.QCamera:
-# class PySide2.Qt3DRender.Qt3DRender.QCamera.CameraTranslationOption:
- "PySide2.Qt3DRender.Qt3DRender.QCamera.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.aspectRatio": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.bottom": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.exposure": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.farPlane": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.fieldOfView": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.left": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.lens": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.nearPlane": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.pan": [('float',), ('float', 'PySide2.QtGui.QVector3D')],
- "PySide2.Qt3DRender.Qt3DRender.QCamera.panAboutViewCenter": [('float',), ('float', 'PySide2.QtGui.QVector3D')],
- "PySide2.Qt3DRender.Qt3DRender.QCamera.panRotation": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.position": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.projectionMatrix": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.projectionType": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.right": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.roll": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.rollAboutViewCenter": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.rollRotation": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.rotate": ('PySide2.QtGui.QQuaternion',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.rotateAboutViewCenter": ('PySide2.QtGui.QQuaternion',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.rotation": ('float', 'PySide2.QtGui.QVector3D'),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setAspectRatio": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setBottom": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setExposure": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setFarPlane": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setFieldOfView": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setLeft": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setNearPlane": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setPosition": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setProjectionMatrix": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setProjectionType": ('PySide2.Qt3DRender.Qt3DRender.QCameraLens.ProjectionType',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setRight": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setTop": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setUpVector": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.setViewCenter": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.tilt": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.tiltAboutViewCenter": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.tiltRotation": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.top": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.transform": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.translate": ('PySide2.QtGui.QVector3D', 'PySide2.Qt3DRender.Qt3DRender.QCamera.CameraTranslationOption'),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.translateWorld": ('PySide2.QtGui.QVector3D', 'PySide2.Qt3DRender.Qt3DRender.QCamera.CameraTranslationOption'),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.upVector": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.viewAll": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.viewCenter": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.viewEntity": ('PySide2.Qt3DCore.Qt3DCore.QEntity',),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.viewMatrix": (),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.viewSphere": ('PySide2.QtGui.QVector3D', 'float'),
- "PySide2.Qt3DRender.Qt3DRender.QCamera.viewVector": (),
-# class PySide2.Qt3DRender.Qt3DRender.QCameraLens:
-# class PySide2.Qt3DRender.Qt3DRender.QCameraLens.ProjectionType:
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.aspectRatio": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.bottom": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.exposure": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.farPlane": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.fieldOfView": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.left": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.nearPlane": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.projectionMatrix": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.projectionType": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.right": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setAspectRatio": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setBottom": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setExposure": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setFarPlane": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setFieldOfView": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setFrustumProjection": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setLeft": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setNearPlane": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setOrthographicProjection": ('float', 'float', 'float', 'float', 'float', 'float'),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setPerspectiveProjection": ('float', 'float', 'float', 'float'),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setProjectionMatrix": ('PySide2.QtGui.QMatrix4x4',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setProjectionType": ('PySide2.Qt3DRender.Qt3DRender.QCameraLens.ProjectionType',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setRight": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.setTop": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.top": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.viewAll": ('PySide2.Qt3DCore.Qt3DCore.QNodeId',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraLens.viewEntity": ('PySide2.Qt3DCore.Qt3DCore.QNodeId', 'PySide2.Qt3DCore.Qt3DCore.QNodeId'),
-# class PySide2.Qt3DRender.Qt3DRender.QCameraSelector:
- "PySide2.Qt3DRender.Qt3DRender.QCameraSelector.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QCameraSelector.camera": (),
- "PySide2.Qt3DRender.Qt3DRender.QCameraSelector.setCamera": ('PySide2.Qt3DCore.Qt3DCore.QEntity',),
-# class PySide2.Qt3DRender.Qt3DRender.QClearBuffers:
-# class PySide2.Qt3DRender.Qt3DRender.QClearBuffers.BufferType:
-# class PySide2.Qt3DRender.Qt3DRender.QClearBuffers.BufferTypeFlags:
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.buffers": (),
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.clearColor": (),
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.clearDepthValue": (),
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.clearStencilValue": (),
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.colorBuffer": (),
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.setBuffers": ('PySide2.Qt3DRender.Qt3DRender.QClearBuffers.BufferType',),
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.setClearColor": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.setClearDepthValue": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.setClearStencilValue": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QClearBuffers.setColorBuffer": ('PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput',),
-# class PySide2.Qt3DRender.Qt3DRender.QClipPlane:
- "PySide2.Qt3DRender.Qt3DRender.QClipPlane.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QClipPlane.distance": (),
- "PySide2.Qt3DRender.Qt3DRender.QClipPlane.normal": (),
- "PySide2.Qt3DRender.Qt3DRender.QClipPlane.planeIndex": (),
- "PySide2.Qt3DRender.Qt3DRender.QClipPlane.setDistance": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QClipPlane.setNormal": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DRender.Qt3DRender.QClipPlane.setPlaneIndex": ('int',),
-# class PySide2.Qt3DRender.Qt3DRender.QColorMask:
- "PySide2.Qt3DRender.Qt3DRender.QColorMask.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QColorMask.isAlphaMasked": (),
- "PySide2.Qt3DRender.Qt3DRender.QColorMask.isBlueMasked": (),
- "PySide2.Qt3DRender.Qt3DRender.QColorMask.isGreenMasked": (),
- "PySide2.Qt3DRender.Qt3DRender.QColorMask.isRedMasked": (),
- "PySide2.Qt3DRender.Qt3DRender.QColorMask.setAlphaMasked": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QColorMask.setBlueMasked": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QColorMask.setGreenMasked": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QColorMask.setRedMasked": ('bool',),
-# class PySide2.Qt3DRender.Qt3DRender.QComputeCommand:
-# class PySide2.Qt3DRender.Qt3DRender.QComputeCommand.RunType:
- "PySide2.Qt3DRender.Qt3DRender.QComputeCommand.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QComputeCommand.runType": (),
- "PySide2.Qt3DRender.Qt3DRender.QComputeCommand.setRunType": ('PySide2.Qt3DRender.Qt3DRender.QComputeCommand.RunType',),
- "PySide2.Qt3DRender.Qt3DRender.QComputeCommand.setWorkGroupX": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QComputeCommand.setWorkGroupY": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QComputeCommand.setWorkGroupZ": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QComputeCommand.trigger": [('int',), ('int', 'int', 'int', 'int')],
- "PySide2.Qt3DRender.Qt3DRender.QComputeCommand.workGroupX": (),
- "PySide2.Qt3DRender.Qt3DRender.QComputeCommand.workGroupY": (),
- "PySide2.Qt3DRender.Qt3DRender.QComputeCommand.workGroupZ": (),
-# class PySide2.Qt3DRender.Qt3DRender.QCullFace:
-# class PySide2.Qt3DRender.Qt3DRender.QCullFace.CullingMode:
- "PySide2.Qt3DRender.Qt3DRender.QCullFace.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QCullFace.mode": (),
- "PySide2.Qt3DRender.Qt3DRender.QCullFace.setMode": ('PySide2.Qt3DRender.Qt3DRender.QCullFace.CullingMode',),
-# class PySide2.Qt3DRender.Qt3DRender.QDepthTest:
-# class PySide2.Qt3DRender.Qt3DRender.QDepthTest.DepthFunction:
- "PySide2.Qt3DRender.Qt3DRender.QDepthTest.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QDepthTest.depthFunction": (),
- "PySide2.Qt3DRender.Qt3DRender.QDepthTest.setDepthFunction": ('PySide2.Qt3DRender.Qt3DRender.QDepthTest.DepthFunction',),
-# class PySide2.Qt3DRender.Qt3DRender.QDirectionalLight:
- "PySide2.Qt3DRender.Qt3DRender.QDirectionalLight.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QDirectionalLight.setWorldDirection": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DRender.Qt3DRender.QDirectionalLight.worldDirection": (),
-# class PySide2.Qt3DRender.Qt3DRender.QDispatchCompute:
- "PySide2.Qt3DRender.Qt3DRender.QDispatchCompute.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QDispatchCompute.setWorkGroupX": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QDispatchCompute.setWorkGroupY": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QDispatchCompute.setWorkGroupZ": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QDispatchCompute.workGroupX": (),
- "PySide2.Qt3DRender.Qt3DRender.QDispatchCompute.workGroupY": (),
- "PySide2.Qt3DRender.Qt3DRender.QDispatchCompute.workGroupZ": (),
-# class PySide2.Qt3DRender.Qt3DRender.QDithering:
- "PySide2.Qt3DRender.Qt3DRender.QDithering.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QEffect:
- "PySide2.Qt3DRender.Qt3DRender.QEffect.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QEffect.addParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
- "PySide2.Qt3DRender.Qt3DRender.QEffect.addTechnique": ('PySide2.Qt3DRender.Qt3DRender.QTechnique',),
- "PySide2.Qt3DRender.Qt3DRender.QEffect.parameters": (),
- "PySide2.Qt3DRender.Qt3DRender.QEffect.removeParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
- "PySide2.Qt3DRender.Qt3DRender.QEffect.removeTechnique": ('PySide2.Qt3DRender.Qt3DRender.QTechnique',),
- "PySide2.Qt3DRender.Qt3DRender.QEffect.techniques": (),
-# class PySide2.Qt3DRender.Qt3DRender.QEnvironmentLight:
- "PySide2.Qt3DRender.Qt3DRender.QEnvironmentLight.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QEnvironmentLight.irradiance": (),
- "PySide2.Qt3DRender.Qt3DRender.QEnvironmentLight.setIrradiance": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DRender.Qt3DRender.QEnvironmentLight.setSpecular": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DRender.Qt3DRender.QEnvironmentLight.specular": (),
-# class PySide2.Qt3DRender.Qt3DRender.QFilterKey:
- "PySide2.Qt3DRender.Qt3DRender.QFilterKey.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QFilterKey.name": (),
- "PySide2.Qt3DRender.Qt3DRender.QFilterKey.setName": ('str',),
- "PySide2.Qt3DRender.Qt3DRender.QFilterKey.setValue": ('typing.Any',),
- "PySide2.Qt3DRender.Qt3DRender.QFilterKey.value": (),
-# class PySide2.Qt3DRender.Qt3DRender.QFrameGraphNode:
- "PySide2.Qt3DRender.Qt3DRender.QFrameGraphNode.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QFrameGraphNode.parentFrameGraphNode": (),
-# class PySide2.Qt3DRender.Qt3DRender.QFrameGraphNodeCreatedChangeBase:
- "PySide2.Qt3DRender.Qt3DRender.QFrameGraphNodeCreatedChangeBase.__init__": ('PySide2.Qt3DRender.Qt3DRender.QFrameGraphNode',),
- "PySide2.Qt3DRender.Qt3DRender.QFrameGraphNodeCreatedChangeBase.parentFrameGraphNodeId": (),
-# class PySide2.Qt3DRender.Qt3DRender.QFrontFace:
-# class PySide2.Qt3DRender.Qt3DRender.QFrontFace.WindingDirection:
- "PySide2.Qt3DRender.Qt3DRender.QFrontFace.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QFrontFace.direction": (),
- "PySide2.Qt3DRender.Qt3DRender.QFrontFace.setDirection": ('PySide2.Qt3DRender.Qt3DRender.QFrontFace.WindingDirection',),
-# class PySide2.Qt3DRender.Qt3DRender.QFrustumCulling:
- "PySide2.Qt3DRender.Qt3DRender.QFrustumCulling.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QGeometry:
- "PySide2.Qt3DRender.Qt3DRender.QGeometry.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometry.addAttribute": ('PySide2.Qt3DRender.Qt3DRender.QAttribute',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometry.attributes": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometry.boundingVolumePositionAttribute": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometry.maxExtent": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometry.minExtent": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometry.removeAttribute": ('PySide2.Qt3DRender.Qt3DRender.QAttribute',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometry.setBoundingVolumePositionAttribute": ('PySide2.Qt3DRender.Qt3DRender.QAttribute',),
-# class PySide2.Qt3DRender.Qt3DRender.QGeometryFactory:
- "PySide2.Qt3DRender.Qt3DRender.QGeometryFactory.__init__": (),
-# class PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer:
-# class PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.PrimitiveType:
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.firstInstance": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.firstVertex": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.geometry": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.indexBufferByteOffset": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.indexOffset": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.instanceCount": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.primitiveRestartEnabled": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.primitiveType": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.restartIndexValue": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setFirstInstance": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setFirstVertex": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setGeometry": ('PySide2.Qt3DRender.Qt3DRender.QGeometry',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setIndexBufferByteOffset": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setIndexOffset": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setInstanceCount": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setPrimitiveRestartEnabled": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setPrimitiveType": ('PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.PrimitiveType',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setRestartIndexValue": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setVertexCount": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.setVerticesPerPatch": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.vertexCount": (),
- "PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.verticesPerPatch": (),
-# class PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter:
-# class PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.Api:
-# class PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.OpenGLProfile:
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.api": (),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.extensions": (),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.majorVersion": (),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.minorVersion": (),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.profile": (),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.setApi": ('PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.Api',),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.setExtensions": ('typing.Sequence[str]',),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.setMajorVersion": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.setMinorVersion": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.setProfile": ('PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.OpenGLProfile',),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.setVendor": ('str',),
- "PySide2.Qt3DRender.Qt3DRender.QGraphicsApiFilter.vendor": (),
-# class PySide2.Qt3DRender.Qt3DRender.QLayer:
- "PySide2.Qt3DRender.Qt3DRender.QLayer.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QLayer.recursive": (),
- "PySide2.Qt3DRender.Qt3DRender.QLayer.setRecursive": ('bool',),
-# class PySide2.Qt3DRender.Qt3DRender.QLayerFilter:
-# class PySide2.Qt3DRender.Qt3DRender.QLayerFilter.FilterMode:
- "PySide2.Qt3DRender.Qt3DRender.QLayerFilter.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QLayerFilter.addLayer": ('PySide2.Qt3DRender.Qt3DRender.QLayer',),
- "PySide2.Qt3DRender.Qt3DRender.QLayerFilter.filterMode": (),
- "PySide2.Qt3DRender.Qt3DRender.QLayerFilter.layers": (),
- "PySide2.Qt3DRender.Qt3DRender.QLayerFilter.removeLayer": ('PySide2.Qt3DRender.Qt3DRender.QLayer',),
- "PySide2.Qt3DRender.Qt3DRender.QLayerFilter.setFilterMode": ('PySide2.Qt3DRender.Qt3DRender.QLayerFilter.FilterMode',),
-# class PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail:
-# class PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.ThresholdType:
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.camera": (),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.createBoundingSphere": ('PySide2.QtGui.QVector3D', 'float'),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.currentIndex": (),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.setCamera": ('PySide2.Qt3DRender.Qt3DRender.QCamera',),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.setCurrentIndex": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.setThresholdType": ('PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.ThresholdType',),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.setThresholds": ('typing.List[float]',),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.setVolumeOverride": ('PySide2.Qt3DRender.Qt3DRender.QLevelOfDetailBoundingSphere',),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.thresholdType": (),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.thresholds": (),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetail.volumeOverride": (),
-# class PySide2.Qt3DRender.Qt3DRender.QLevelOfDetailBoundingSphere:
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetailBoundingSphere.__init__": [('PySide2.Qt3DRender.Qt3DRender.QLevelOfDetailBoundingSphere',), ('PySide2.QtGui.QVector3D', 'float')],
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetailBoundingSphere.center": (),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetailBoundingSphere.isEmpty": (),
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetailBoundingSphere.radius": (),
-# class PySide2.Qt3DRender.Qt3DRender.QLevelOfDetailSwitch:
- "PySide2.Qt3DRender.Qt3DRender.QLevelOfDetailSwitch.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QLineWidth:
- "PySide2.Qt3DRender.Qt3DRender.QLineWidth.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QLineWidth.setSmooth": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QLineWidth.setValue": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QLineWidth.smooth": (),
- "PySide2.Qt3DRender.Qt3DRender.QLineWidth.value": (),
-# class PySide2.Qt3DRender.Qt3DRender.QMaterial:
- "PySide2.Qt3DRender.Qt3DRender.QMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QMaterial.addParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
- "PySide2.Qt3DRender.Qt3DRender.QMaterial.effect": (),
- "PySide2.Qt3DRender.Qt3DRender.QMaterial.parameters": (),
- "PySide2.Qt3DRender.Qt3DRender.QMaterial.removeParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
- "PySide2.Qt3DRender.Qt3DRender.QMaterial.setEffect": ('PySide2.Qt3DRender.Qt3DRender.QEffect',),
-# class PySide2.Qt3DRender.Qt3DRender.QMemoryBarrier:
-# class PySide2.Qt3DRender.Qt3DRender.QMemoryBarrier.Operation:
-# class PySide2.Qt3DRender.Qt3DRender.QMemoryBarrier.Operations:
- "PySide2.Qt3DRender.Qt3DRender.QMemoryBarrier.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QMemoryBarrier.setWaitOperations": ('PySide2.Qt3DRender.Qt3DRender.QMemoryBarrier.Operations',),
- "PySide2.Qt3DRender.Qt3DRender.QMemoryBarrier.waitOperations": (),
-# class PySide2.Qt3DRender.Qt3DRender.QMesh:
-# class PySide2.Qt3DRender.Qt3DRender.QMesh.Status:
- "PySide2.Qt3DRender.Qt3DRender.QMesh.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QMesh.meshName": (),
- "PySide2.Qt3DRender.Qt3DRender.QMesh.setMeshName": ('str',),
- "PySide2.Qt3DRender.Qt3DRender.QMesh.setSource": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QMesh.source": (),
- "PySide2.Qt3DRender.Qt3DRender.QMesh.status": (),
-# class PySide2.Qt3DRender.Qt3DRender.QMultiSampleAntiAliasing:
- "PySide2.Qt3DRender.Qt3DRender.QMultiSampleAntiAliasing.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QNoDepthMask:
- "PySide2.Qt3DRender.Qt3DRender.QNoDepthMask.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QNoDraw:
- "PySide2.Qt3DRender.Qt3DRender.QNoDraw.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QNoPicking:
- "PySide2.Qt3DRender.Qt3DRender.QNoPicking.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QObjectPicker:
- "PySide2.Qt3DRender.Qt3DRender.QObjectPicker.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QObjectPicker.containsMouse": (),
- "PySide2.Qt3DRender.Qt3DRender.QObjectPicker.isDragEnabled": (),
- "PySide2.Qt3DRender.Qt3DRender.QObjectPicker.isHoverEnabled": (),
- "PySide2.Qt3DRender.Qt3DRender.QObjectPicker.isPressed": (),
- "PySide2.Qt3DRender.Qt3DRender.QObjectPicker.priority": (),
- "PySide2.Qt3DRender.Qt3DRender.QObjectPicker.setDragEnabled": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QObjectPicker.setHoverEnabled": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QObjectPicker.setPriority": ('int',),
-# class PySide2.Qt3DRender.Qt3DRender.QPaintedTextureImage:
- "PySide2.Qt3DRender.Qt3DRender.QPaintedTextureImage.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QPaintedTextureImage.height": (),
- "PySide2.Qt3DRender.Qt3DRender.QPaintedTextureImage.paint": ('PySide2.QtGui.QPainter',),
- "PySide2.Qt3DRender.Qt3DRender.QPaintedTextureImage.setHeight": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QPaintedTextureImage.setSize": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DRender.Qt3DRender.QPaintedTextureImage.setWidth": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QPaintedTextureImage.size": (),
- "PySide2.Qt3DRender.Qt3DRender.QPaintedTextureImage.update": ('PySide2.QtCore.QRect',),
- "PySide2.Qt3DRender.Qt3DRender.QPaintedTextureImage.width": (),
-# class PySide2.Qt3DRender.Qt3DRender.QParameter:
- "PySide2.Qt3DRender.Qt3DRender.QParameter.__init__": [('PySide2.Qt3DCore.Qt3DCore.QNode',), ('str', 'PySide2.Qt3DRender.Qt3DRender.QAbstractTexture', 'PySide2.Qt3DCore.Qt3DCore.QNode'), ('str', 'typing.Any', 'PySide2.Qt3DCore.Qt3DCore.QNode')],
- "PySide2.Qt3DRender.Qt3DRender.QParameter.name": (),
- "PySide2.Qt3DRender.Qt3DRender.QParameter.setName": ('str',),
- "PySide2.Qt3DRender.Qt3DRender.QParameter.setValue": ('typing.Any',),
- "PySide2.Qt3DRender.Qt3DRender.QParameter.value": (),
-# class PySide2.Qt3DRender.Qt3DRender.QPickEvent:
-# class PySide2.Qt3DRender.Qt3DRender.QPickEvent.Buttons:
-# class PySide2.Qt3DRender.Qt3DRender.QPickEvent.Modifiers:
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.__init__": [(), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'float'), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'float', 'PySide2.Qt3DRender.Qt3DRender.QPickEvent.Buttons', 'int', 'int')],
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.button": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.buttons": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.distance": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.entity": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.isAccepted": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.localIntersection": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.modifiers": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.position": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.setAccepted": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.viewport": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickEvent.worldIntersection": (),
-# class PySide2.Qt3DRender.Qt3DRender.QPickLineEvent:
- "PySide2.Qt3DRender.Qt3DRender.QPickLineEvent.__init__": [(), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'float', 'int', 'int', 'int', 'PySide2.Qt3DRender.Qt3DRender.QPickEvent.Buttons', 'int', 'int')],
- "PySide2.Qt3DRender.Qt3DRender.QPickLineEvent.edgeIndex": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickLineEvent.vertex1Index": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickLineEvent.vertex2Index": (),
-# class PySide2.Qt3DRender.Qt3DRender.QPickPointEvent:
- "PySide2.Qt3DRender.Qt3DRender.QPickPointEvent.__init__": [(), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'float', 'int', 'PySide2.Qt3DRender.Qt3DRender.QPickEvent.Buttons', 'int', 'int')],
- "PySide2.Qt3DRender.Qt3DRender.QPickPointEvent.pointIndex": (),
-# class PySide2.Qt3DRender.Qt3DRender.QPickTriangleEvent:
- "PySide2.Qt3DRender.Qt3DRender.QPickTriangleEvent.__init__": [(), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'float', 'int', 'int', 'int', 'int'), ('PySide2.QtCore.QPointF', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'float', 'int', 'int', 'int', 'int', 'PySide2.Qt3DRender.Qt3DRender.QPickEvent.Buttons', 'int', 'int', 'PySide2.QtGui.QVector3D')],
- "PySide2.Qt3DRender.Qt3DRender.QPickTriangleEvent.triangleIndex": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickTriangleEvent.uvw": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickTriangleEvent.vertex1Index": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickTriangleEvent.vertex2Index": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickTriangleEvent.vertex3Index": (),
-# class PySide2.Qt3DRender.Qt3DRender.QPickingSettings:
-# class PySide2.Qt3DRender.Qt3DRender.QPickingSettings.FaceOrientationPickingMode:
-# class PySide2.Qt3DRender.Qt3DRender.QPickingSettings.PickMethod:
-# class PySide2.Qt3DRender.Qt3DRender.QPickingSettings.PickResultMode:
- "PySide2.Qt3DRender.Qt3DRender.QPickingSettings.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QPickingSettings.faceOrientationPickingMode": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickingSettings.pickMethod": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickingSettings.pickResultMode": (),
- "PySide2.Qt3DRender.Qt3DRender.QPickingSettings.setFaceOrientationPickingMode": ('PySide2.Qt3DRender.Qt3DRender.QPickingSettings.FaceOrientationPickingMode',),
- "PySide2.Qt3DRender.Qt3DRender.QPickingSettings.setPickMethod": ('PySide2.Qt3DRender.Qt3DRender.QPickingSettings.PickMethod',),
- "PySide2.Qt3DRender.Qt3DRender.QPickingSettings.setPickResultMode": ('PySide2.Qt3DRender.Qt3DRender.QPickingSettings.PickResultMode',),
- "PySide2.Qt3DRender.Qt3DRender.QPickingSettings.setWorldSpaceTolerance": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QPickingSettings.worldSpaceTolerance": (),
-# class PySide2.Qt3DRender.Qt3DRender.QPointLight:
- "PySide2.Qt3DRender.Qt3DRender.QPointLight.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QPointLight.constantAttenuation": (),
- "PySide2.Qt3DRender.Qt3DRender.QPointLight.linearAttenuation": (),
- "PySide2.Qt3DRender.Qt3DRender.QPointLight.quadraticAttenuation": (),
- "PySide2.Qt3DRender.Qt3DRender.QPointLight.setConstantAttenuation": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QPointLight.setLinearAttenuation": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QPointLight.setQuadraticAttenuation": ('float',),
-# class PySide2.Qt3DRender.Qt3DRender.QPointSize:
-# class PySide2.Qt3DRender.Qt3DRender.QPointSize.SizeMode:
- "PySide2.Qt3DRender.Qt3DRender.QPointSize.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QPointSize.setSizeMode": ('PySide2.Qt3DRender.Qt3DRender.QPointSize.SizeMode',),
- "PySide2.Qt3DRender.Qt3DRender.QPointSize.setValue": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QPointSize.sizeMode": (),
- "PySide2.Qt3DRender.Qt3DRender.QPointSize.value": (),
-# class PySide2.Qt3DRender.Qt3DRender.QPolygonOffset:
- "PySide2.Qt3DRender.Qt3DRender.QPolygonOffset.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QPolygonOffset.depthSteps": (),
- "PySide2.Qt3DRender.Qt3DRender.QPolygonOffset.scaleFactor": (),
- "PySide2.Qt3DRender.Qt3DRender.QPolygonOffset.setDepthSteps": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QPolygonOffset.setScaleFactor": ('float',),
-# class PySide2.Qt3DRender.Qt3DRender.QProximityFilter:
- "PySide2.Qt3DRender.Qt3DRender.QProximityFilter.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QProximityFilter.distanceThreshold": (),
- "PySide2.Qt3DRender.Qt3DRender.QProximityFilter.entity": (),
- "PySide2.Qt3DRender.Qt3DRender.QProximityFilter.setDistanceThreshold": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QProximityFilter.setEntity": ('PySide2.Qt3DCore.Qt3DCore.QEntity',),
-# class PySide2.Qt3DRender.Qt3DRender.QRayCaster:
- "PySide2.Qt3DRender.Qt3DRender.QRayCaster.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRayCaster.direction": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCaster.length": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCaster.origin": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCaster.setDirection": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DRender.Qt3DRender.QRayCaster.setLength": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QRayCaster.setOrigin": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DRender.Qt3DRender.QRayCaster.trigger": [(), ('PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'float')],
-# class PySide2.Qt3DRender.Qt3DRender.QRayCasterHit:
-# class PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.HitType:
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.__init__": [(), ('PySide2.Qt3DRender.Qt3DRender.QRayCasterHit',), ('PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.HitType', 'PySide2.Qt3DCore.Qt3DCore.QNodeId', 'float', 'PySide2.QtGui.QVector3D', 'PySide2.QtGui.QVector3D', 'int', 'int', 'int', 'int')],
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.__copy__": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.distance": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.entity": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.entityId": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.localIntersection": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.primitiveIndex": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.type": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.vertex1Index": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.vertex2Index": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.vertex3Index": (),
- "PySide2.Qt3DRender.Qt3DRender.QRayCasterHit.worldIntersection": (),
-# class PySide2.Qt3DRender.Qt3DRender.QRenderAspect:
-# class PySide2.Qt3DRender.Qt3DRender.QRenderAspect.RenderType:
- "PySide2.Qt3DRender.Qt3DRender.QRenderAspect.__init__": [('PySide2.Qt3DRender.Qt3DRender.QRenderAspect.RenderType', 'PySide2.QtCore.QObject'), ('PySide2.QtCore.QObject',)],
-# class PySide2.Qt3DRender.Qt3DRender.QRenderCapture:
- "PySide2.Qt3DRender.Qt3DRender.QRenderCapture.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderCapture.requestCapture": [(), ('PySide2.QtCore.QRect',), ('int',)],
-# class PySide2.Qt3DRender.Qt3DRender.QRenderCaptureReply:
- "PySide2.Qt3DRender.Qt3DRender.QRenderCaptureReply.captureId": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderCaptureReply.image": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderCaptureReply.isComplete": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderCaptureReply.saveImage": ('str',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderCaptureReply.saveToFile": ('str',),
-# class PySide2.Qt3DRender.Qt3DRender.QRenderPass:
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.addFilterKey": ('PySide2.Qt3DRender.Qt3DRender.QFilterKey',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.addParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.addRenderState": ('PySide2.Qt3DRender.Qt3DRender.QRenderState',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.filterKeys": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.parameters": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.removeFilterKey": ('PySide2.Qt3DRender.Qt3DRender.QFilterKey',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.removeParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.removeRenderState": ('PySide2.Qt3DRender.Qt3DRender.QRenderState',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.renderStates": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.setShaderProgram": ('PySide2.Qt3DRender.Qt3DRender.QShaderProgram',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPass.shaderProgram": (),
-# class PySide2.Qt3DRender.Qt3DRender.QRenderPassFilter:
- "PySide2.Qt3DRender.Qt3DRender.QRenderPassFilter.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPassFilter.addMatch": ('PySide2.Qt3DRender.Qt3DRender.QFilterKey',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPassFilter.addParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPassFilter.matchAny": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPassFilter.parameters": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPassFilter.removeMatch": ('PySide2.Qt3DRender.Qt3DRender.QFilterKey',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderPassFilter.removeParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
-# class PySide2.Qt3DRender.Qt3DRender.QRenderSettings:
-# class PySide2.Qt3DRender.Qt3DRender.QRenderSettings.RenderPolicy:
- "PySide2.Qt3DRender.Qt3DRender.QRenderSettings.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSettings.activeFrameGraph": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSettings.pickingSettings": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSettings.renderPolicy": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSettings.setActiveFrameGraph": ('PySide2.Qt3DRender.Qt3DRender.QFrameGraphNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSettings.setRenderPolicy": ('PySide2.Qt3DRender.Qt3DRender.QRenderSettings.RenderPolicy',),
-# class PySide2.Qt3DRender.Qt3DRender.QRenderState:
-# class PySide2.Qt3DRender.Qt3DRender.QRenderStateSet:
- "PySide2.Qt3DRender.Qt3DRender.QRenderStateSet.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderStateSet.addRenderState": ('PySide2.Qt3DRender.Qt3DRender.QRenderState',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderStateSet.removeRenderState": ('PySide2.Qt3DRender.Qt3DRender.QRenderState',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderStateSet.renderStates": (),
-# class PySide2.Qt3DRender.Qt3DRender.QRenderSurfaceSelector:
- "PySide2.Qt3DRender.Qt3DRender.QRenderSurfaceSelector.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSurfaceSelector.externalRenderTargetSize": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSurfaceSelector.setExternalRenderTargetSize": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSurfaceSelector.setSurface": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSurfaceSelector.setSurfacePixelRatio": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSurfaceSelector.surface": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderSurfaceSelector.surfacePixelRatio": (),
-# class PySide2.Qt3DRender.Qt3DRender.QRenderTarget:
- "PySide2.Qt3DRender.Qt3DRender.QRenderTarget.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTarget.addOutput": ('PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTarget.outputs": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTarget.removeOutput": ('PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput',),
-# class PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput:
-# class PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.AttachmentPoint:
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.attachmentPoint": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.face": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.layer": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.mipLevel": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.setAttachmentPoint": ('PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.AttachmentPoint',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.setFace": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.CubeMapFace',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.setLayer": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.setMipLevel": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.setTexture": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.texture": (),
-# class PySide2.Qt3DRender.Qt3DRender.QRenderTargetSelector:
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetSelector.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetSelector.outputs": (),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetSelector.setOutputs": ('typing.List[PySide2.Qt3DRender.Qt3DRender.QRenderTargetOutput.AttachmentPoint]',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetSelector.setTarget": ('PySide2.Qt3DRender.Qt3DRender.QRenderTarget',),
- "PySide2.Qt3DRender.Qt3DRender.QRenderTargetSelector.target": (),
-# class PySide2.Qt3DRender.Qt3DRender.QSceneLoader:
-# class PySide2.Qt3DRender.Qt3DRender.QSceneLoader.ComponentType:
-# class PySide2.Qt3DRender.Qt3DRender.QSceneLoader.Status:
- "PySide2.Qt3DRender.Qt3DRender.QSceneLoader.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QSceneLoader.component": ('str', 'PySide2.Qt3DRender.Qt3DRender.QSceneLoader.ComponentType'),
- "PySide2.Qt3DRender.Qt3DRender.QSceneLoader.entity": ('str',),
- "PySide2.Qt3DRender.Qt3DRender.QSceneLoader.entityNames": (),
- "PySide2.Qt3DRender.Qt3DRender.QSceneLoader.setSource": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QSceneLoader.setStatus": ('PySide2.Qt3DRender.Qt3DRender.QSceneLoader.Status',),
- "PySide2.Qt3DRender.Qt3DRender.QSceneLoader.source": (),
- "PySide2.Qt3DRender.Qt3DRender.QSceneLoader.status": (),
-# class PySide2.Qt3DRender.Qt3DRender.QScissorTest:
- "PySide2.Qt3DRender.Qt3DRender.QScissorTest.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QScissorTest.bottom": (),
- "PySide2.Qt3DRender.Qt3DRender.QScissorTest.height": (),
- "PySide2.Qt3DRender.Qt3DRender.QScissorTest.left": (),
- "PySide2.Qt3DRender.Qt3DRender.QScissorTest.setBottom": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QScissorTest.setHeight": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QScissorTest.setLeft": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QScissorTest.setWidth": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QScissorTest.width": (),
-# class PySide2.Qt3DRender.Qt3DRender.QScreenRayCaster:
- "PySide2.Qt3DRender.Qt3DRender.QScreenRayCaster.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QScreenRayCaster.position": (),
- "PySide2.Qt3DRender.Qt3DRender.QScreenRayCaster.setPosition": ('PySide2.QtCore.QPoint',),
- "PySide2.Qt3DRender.Qt3DRender.QScreenRayCaster.trigger": [(), ('PySide2.QtCore.QPoint',)],
-# class PySide2.Qt3DRender.Qt3DRender.QSeamlessCubemap:
- "PySide2.Qt3DRender.Qt3DRender.QSeamlessCubemap.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QSetFence:
-# class PySide2.Qt3DRender.Qt3DRender.QSetFence.HandleType:
- "PySide2.Qt3DRender.Qt3DRender.QSetFence.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QSetFence.handle": (),
- "PySide2.Qt3DRender.Qt3DRender.QSetFence.handleType": (),
-# class PySide2.Qt3DRender.Qt3DRender.QShaderData:
- "PySide2.Qt3DRender.Qt3DRender.QShaderData.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderData.event": ('PySide2.QtCore.QEvent',),
-# class PySide2.Qt3DRender.Qt3DRender.QShaderImage:
-# class PySide2.Qt3DRender.Qt3DRender.QShaderImage.Access:
-# class PySide2.Qt3DRender.Qt3DRender.QShaderImage.ImageFormat:
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.access": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.format": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.layer": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.layered": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.mipLevel": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.setAccess": ('PySide2.Qt3DRender.Qt3DRender.QShaderImage.Access',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.setFormat": ('PySide2.Qt3DRender.Qt3DRender.QShaderImage.ImageFormat',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.setLayer": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.setLayered": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.setMipLevel": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.setTexture": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderImage.texture": (),
-# class PySide2.Qt3DRender.Qt3DRender.QShaderProgram:
-# class PySide2.Qt3DRender.Qt3DRender.QShaderProgram.ShaderType:
-# class PySide2.Qt3DRender.Qt3DRender.QShaderProgram.Status:
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.computeShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.fragmentShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.geometryShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.loadSource": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.log": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.setComputeShaderCode": ('PySide2.QtCore.QByteArray',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.setFragmentShaderCode": ('PySide2.QtCore.QByteArray',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.setGeometryShaderCode": ('PySide2.QtCore.QByteArray',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.setShaderCode": ('PySide2.Qt3DRender.Qt3DRender.QShaderProgram.ShaderType', 'PySide2.QtCore.QByteArray'),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.setTessellationControlShaderCode": ('PySide2.QtCore.QByteArray',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.setTessellationEvaluationShaderCode": ('PySide2.QtCore.QByteArray',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.setVertexShaderCode": ('PySide2.QtCore.QByteArray',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.shaderCode": ('PySide2.Qt3DRender.Qt3DRender.QShaderProgram.ShaderType',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.status": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.tessellationControlShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.tessellationEvaluationShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgram.vertexShaderCode": (),
-# class PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder:
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.computeShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.computeShaderGraph": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.enabledLayers": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.fragmentShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.fragmentShaderGraph": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.geometryShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.geometryShaderGraph": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.setComputeShaderGraph": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.setEnabledLayers": ('typing.Sequence[str]',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.setFragmentShaderGraph": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.setGeometryShaderGraph": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.setShaderProgram": ('PySide2.Qt3DRender.Qt3DRender.QShaderProgram',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.setTessellationControlShaderGraph": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.setTessellationEvaluationShaderGraph": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.setVertexShaderGraph": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.shaderProgram": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.tessellationControlShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.tessellationControlShaderGraph": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.tessellationEvaluationShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.tessellationEvaluationShaderGraph": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.vertexShaderCode": (),
- "PySide2.Qt3DRender.Qt3DRender.QShaderProgramBuilder.vertexShaderGraph": (),
-# class PySide2.Qt3DRender.Qt3DRender.QSharedGLTexture:
- "PySide2.Qt3DRender.Qt3DRender.QSharedGLTexture.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QSharedGLTexture.setTextureId": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QSharedGLTexture.textureId": (),
-# class PySide2.Qt3DRender.Qt3DRender.QSortPolicy:
-# class PySide2.Qt3DRender.Qt3DRender.QSortPolicy.SortType:
- "PySide2.Qt3DRender.Qt3DRender.QSortPolicy.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QSortPolicy.setSortTypes": [('typing.List[PySide2.Qt3DRender.Qt3DRender.QSortPolicy.SortType]',), ('typing.List[int]',)],
- "PySide2.Qt3DRender.Qt3DRender.QSortPolicy.sortTypes": (),
- "PySide2.Qt3DRender.Qt3DRender.QSortPolicy.sortTypesInt": (),
-# class PySide2.Qt3DRender.Qt3DRender.QSpotLight:
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.constantAttenuation": (),
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.cutOffAngle": (),
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.linearAttenuation": (),
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.localDirection": (),
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.quadraticAttenuation": (),
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.setConstantAttenuation": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.setCutOffAngle": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.setLinearAttenuation": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.setLocalDirection": ('PySide2.QtGui.QVector3D',),
- "PySide2.Qt3DRender.Qt3DRender.QSpotLight.setQuadraticAttenuation": ('float',),
-# class PySide2.Qt3DRender.Qt3DRender.QStencilMask:
- "PySide2.Qt3DRender.Qt3DRender.QStencilMask.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QStencilMask.backOutputMask": (),
- "PySide2.Qt3DRender.Qt3DRender.QStencilMask.frontOutputMask": (),
- "PySide2.Qt3DRender.Qt3DRender.QStencilMask.setBackOutputMask": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QStencilMask.setFrontOutputMask": ('int',),
-# class PySide2.Qt3DRender.Qt3DRender.QStencilOperation:
- "PySide2.Qt3DRender.Qt3DRender.QStencilOperation.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QStencilOperation.back": (),
- "PySide2.Qt3DRender.Qt3DRender.QStencilOperation.front": (),
-# class PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments:
-# class PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.FaceMode:
-# class PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.Operation:
- "PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.allTestsPassOperation": (),
- "PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.depthTestFailureOperation": (),
- "PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.faceMode": (),
- "PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.setAllTestsPassOperation": ('PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.Operation',),
- "PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.setDepthTestFailureOperation": ('PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.Operation',),
- "PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.setStencilTestFailureOperation": ('PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.Operation',),
- "PySide2.Qt3DRender.Qt3DRender.QStencilOperationArguments.stencilTestFailureOperation": (),
-# class PySide2.Qt3DRender.Qt3DRender.QStencilTest:
- "PySide2.Qt3DRender.Qt3DRender.QStencilTest.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QStencilTest.back": (),
- "PySide2.Qt3DRender.Qt3DRender.QStencilTest.front": (),
-# class PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments:
-# class PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments.StencilFaceMode:
-# class PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments.StencilFunction:
- "PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments.comparisonMask": (),
- "PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments.faceMode": (),
- "PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments.referenceValue": (),
- "PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments.setComparisonMask": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments.setReferenceValue": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments.setStencilFunction": ('PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments.StencilFunction',),
- "PySide2.Qt3DRender.Qt3DRender.QStencilTestArguments.stencilFunction": (),
-# class PySide2.Qt3DRender.Qt3DRender.QTechnique:
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.addFilterKey": ('PySide2.Qt3DRender.Qt3DRender.QFilterKey',),
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.addParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.addRenderPass": ('PySide2.Qt3DRender.Qt3DRender.QRenderPass',),
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.filterKeys": (),
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.graphicsApiFilter": (),
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.parameters": (),
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.removeFilterKey": ('PySide2.Qt3DRender.Qt3DRender.QFilterKey',),
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.removeParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.removeRenderPass": ('PySide2.Qt3DRender.Qt3DRender.QRenderPass',),
- "PySide2.Qt3DRender.Qt3DRender.QTechnique.renderPasses": (),
-# class PySide2.Qt3DRender.Qt3DRender.QTechniqueFilter:
- "PySide2.Qt3DRender.Qt3DRender.QTechniqueFilter.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QTechniqueFilter.addMatch": ('PySide2.Qt3DRender.Qt3DRender.QFilterKey',),
- "PySide2.Qt3DRender.Qt3DRender.QTechniqueFilter.addParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
- "PySide2.Qt3DRender.Qt3DRender.QTechniqueFilter.matchAll": (),
- "PySide2.Qt3DRender.Qt3DRender.QTechniqueFilter.parameters": (),
- "PySide2.Qt3DRender.Qt3DRender.QTechniqueFilter.removeMatch": ('PySide2.Qt3DRender.Qt3DRender.QFilterKey',),
- "PySide2.Qt3DRender.Qt3DRender.QTechniqueFilter.removeParameter": ('PySide2.Qt3DRender.Qt3DRender.QParameter',),
-# class PySide2.Qt3DRender.Qt3DRender.QTexture1D:
- "PySide2.Qt3DRender.Qt3DRender.QTexture1D.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTexture1DArray:
- "PySide2.Qt3DRender.Qt3DRender.QTexture1DArray.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTexture2D:
- "PySide2.Qt3DRender.Qt3DRender.QTexture2D.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTexture2DArray:
- "PySide2.Qt3DRender.Qt3DRender.QTexture2DArray.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTexture2DMultisample:
- "PySide2.Qt3DRender.Qt3DRender.QTexture2DMultisample.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTexture2DMultisampleArray:
- "PySide2.Qt3DRender.Qt3DRender.QTexture2DMultisampleArray.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTexture3D:
- "PySide2.Qt3DRender.Qt3DRender.QTexture3D.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTextureBuffer:
- "PySide2.Qt3DRender.Qt3DRender.QTextureBuffer.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTextureCubeMap:
- "PySide2.Qt3DRender.Qt3DRender.QTextureCubeMap.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTextureCubeMapArray:
- "PySide2.Qt3DRender.Qt3DRender.QTextureCubeMapArray.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTextureData:
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.__init__": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.comparisonFunction": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.comparisonMode": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.depth": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.format": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.height": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.isAutoMipMapGenerationEnabled": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.layers": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.magnificationFilter": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.maximumAnisotropy": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.minificationFilter": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setAutoMipMapGenerationEnabled": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setComparisonFunction": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.ComparisonFunction',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setComparisonMode": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.ComparisonMode',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setDepth": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setFormat": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.TextureFormat',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setHeight": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setLayers": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setMagnificationFilter": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.Filter',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setMaximumAnisotropy": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setMinificationFilter": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.Filter',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setTarget": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture.Target',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setWidth": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setWrapModeX": ('PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setWrapModeY": ('PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.setWrapModeZ": ('PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.target": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.width": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.wrapModeX": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.wrapModeY": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureData.wrapModeZ": (),
-# class PySide2.Qt3DRender.Qt3DRender.QTextureGenerator:
-# class PySide2.Qt3DRender.Qt3DRender.QTextureImage:
-# class PySide2.Qt3DRender.Qt3DRender.QTextureImage.Status:
- "PySide2.Qt3DRender.Qt3DRender.QTextureImage.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImage.isMirrored": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImage.setMirrored": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImage.setSource": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImage.setStatus": ('PySide2.Qt3DRender.Qt3DRender.QTextureImage.Status',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImage.source": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImage.status": (),
-# class PySide2.Qt3DRender.Qt3DRender.QTextureImageData:
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.__init__": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.cleanup": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.data": ('int', 'int', 'int'),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.depth": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.faces": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.format": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.height": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.isCompressed": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.layers": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.mipLevels": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.pixelFormat": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.pixelType": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setData": ('PySide2.QtCore.QByteArray', 'int', 'bool'),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setDepth": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setFaces": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setFormat": ('PySide2.QtGui.QOpenGLTexture.TextureFormat',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setHeight": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setImage": ('PySide2.QtGui.QImage',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setLayers": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setMipLevels": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setPixelFormat": ('PySide2.QtGui.QOpenGLTexture.PixelFormat',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setPixelType": ('PySide2.QtGui.QOpenGLTexture.PixelType',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setTarget": ('PySide2.QtGui.QOpenGLTexture.Target',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.setWidth": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.target": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureImageData.width": (),
-# class PySide2.Qt3DRender.Qt3DRender.QTextureImageDataGenerator:
-# class PySide2.Qt3DRender.Qt3DRender.QTextureLoader:
- "PySide2.Qt3DRender.Qt3DRender.QTextureLoader.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureLoader.isMirrored": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureLoader.setMirrored": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureLoader.setSource": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureLoader.source": (),
-# class PySide2.Qt3DRender.Qt3DRender.QTextureRectangle:
- "PySide2.Qt3DRender.Qt3DRender.QTextureRectangle.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode:
-# class PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode:
- "PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.__init__": [('PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode', 'PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode', 'PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode', 'PySide2.QtCore.QObject'), ('PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode', 'PySide2.QtCore.QObject')],
- "PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.setX": ('PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.setY": ('PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.setZ": ('PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.WrapMode',),
- "PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.x": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.y": (),
- "PySide2.Qt3DRender.Qt3DRender.QTextureWrapMode.z": (),
-# class PySide2.Qt3DRender.Qt3DRender.QViewport:
- "PySide2.Qt3DRender.Qt3DRender.QViewport.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QViewport.gamma": (),
- "PySide2.Qt3DRender.Qt3DRender.QViewport.normalizedRect": (),
- "PySide2.Qt3DRender.Qt3DRender.QViewport.setGamma": ('float',),
- "PySide2.Qt3DRender.Qt3DRender.QViewport.setNormalizedRect": ('PySide2.QtCore.QRectF',),
-# class PySide2.Qt3DRender.Qt3DRender.QWaitFence:
-# class PySide2.Qt3DRender.Qt3DRender.QWaitFence.HandleType:
- "PySide2.Qt3DRender.Qt3DRender.QWaitFence.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DRender.Qt3DRender.QWaitFence.handle": (),
- "PySide2.Qt3DRender.Qt3DRender.QWaitFence.handleType": (),
- "PySide2.Qt3DRender.Qt3DRender.QWaitFence.setHandle": ('typing.Any',),
- "PySide2.Qt3DRender.Qt3DRender.QWaitFence.setHandleType": ('PySide2.Qt3DRender.Qt3DRender.QWaitFence.HandleType',),
- "PySide2.Qt3DRender.Qt3DRender.QWaitFence.setTimeout": ('int',),
- "PySide2.Qt3DRender.Qt3DRender.QWaitFence.setWaitOnCPU": ('bool',),
- "PySide2.Qt3DRender.Qt3DRender.QWaitFence.timeout": (),
- "PySide2.Qt3DRender.Qt3DRender.QWaitFence.waitOnCPU": (),
- }) if "PySide2.Qt3DRender" in sys.modules else None
-# Module PySide2.Qt3DInput
-sig_dict.update({
-# class PySide2.Qt3DInput.Qt3DInput:
-# class PySide2.Qt3DInput.Qt3DInput.QAbstractActionInput:
-# class PySide2.Qt3DInput.Qt3DInput.QAbstractAxisInput:
- "PySide2.Qt3DInput.Qt3DInput.QAbstractAxisInput.setSourceDevice": ('PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice',),
- "PySide2.Qt3DInput.Qt3DInput.QAbstractAxisInput.sourceDevice": (),
-# class PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice:
- "PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice.addAxisSetting": ('PySide2.Qt3DInput.Qt3DInput.QAxisSetting',),
- "PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice.axisCount": (),
- "PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice.axisIdentifier": ('str',),
- "PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice.axisNames": (),
- "PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice.axisSettings": (),
- "PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice.buttonCount": (),
- "PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice.buttonIdentifier": ('str',),
- "PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice.buttonNames": (),
- "PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice.removeAxisSetting": ('PySide2.Qt3DInput.Qt3DInput.QAxisSetting',),
-# class PySide2.Qt3DInput.Qt3DInput.QAction:
- "PySide2.Qt3DInput.Qt3DInput.QAction.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QAction.addInput": ('PySide2.Qt3DInput.Qt3DInput.QAbstractActionInput',),
- "PySide2.Qt3DInput.Qt3DInput.QAction.inputs": (),
- "PySide2.Qt3DInput.Qt3DInput.QAction.isActive": (),
- "PySide2.Qt3DInput.Qt3DInput.QAction.removeInput": ('PySide2.Qt3DInput.Qt3DInput.QAbstractActionInput',),
-# class PySide2.Qt3DInput.Qt3DInput.QActionInput:
- "PySide2.Qt3DInput.Qt3DInput.QActionInput.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QActionInput.buttons": (),
- "PySide2.Qt3DInput.Qt3DInput.QActionInput.setButtons": ('typing.List[int]',),
- "PySide2.Qt3DInput.Qt3DInput.QActionInput.setSourceDevice": ('PySide2.Qt3DInput.Qt3DInput.QAbstractPhysicalDevice',),
- "PySide2.Qt3DInput.Qt3DInput.QActionInput.sourceDevice": (),
-# class PySide2.Qt3DInput.Qt3DInput.QAnalogAxisInput:
- "PySide2.Qt3DInput.Qt3DInput.QAnalogAxisInput.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QAnalogAxisInput.axis": (),
- "PySide2.Qt3DInput.Qt3DInput.QAnalogAxisInput.setAxis": ('int',),
-# class PySide2.Qt3DInput.Qt3DInput.QAxis:
- "PySide2.Qt3DInput.Qt3DInput.QAxis.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QAxis.addInput": ('PySide2.Qt3DInput.Qt3DInput.QAbstractAxisInput',),
- "PySide2.Qt3DInput.Qt3DInput.QAxis.inputs": (),
- "PySide2.Qt3DInput.Qt3DInput.QAxis.removeInput": ('PySide2.Qt3DInput.Qt3DInput.QAbstractAxisInput',),
- "PySide2.Qt3DInput.Qt3DInput.QAxis.value": (),
-# class PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator:
-# class PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.SourceAxisType:
- "PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.scale": (),
- "PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.setScale": ('float',),
- "PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.setSourceAxis": ('PySide2.Qt3DInput.Qt3DInput.QAxis',),
- "PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.setSourceAxisType": ('PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.SourceAxisType',),
- "PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.sourceAxis": (),
- "PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.sourceAxisType": (),
- "PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.value": (),
- "PySide2.Qt3DInput.Qt3DInput.QAxisAccumulator.velocity": (),
-# class PySide2.Qt3DInput.Qt3DInput.QAxisSetting:
- "PySide2.Qt3DInput.Qt3DInput.QAxisSetting.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QAxisSetting.axes": (),
- "PySide2.Qt3DInput.Qt3DInput.QAxisSetting.deadZoneRadius": (),
- "PySide2.Qt3DInput.Qt3DInput.QAxisSetting.isSmoothEnabled": (),
- "PySide2.Qt3DInput.Qt3DInput.QAxisSetting.setAxes": ('typing.List[int]',),
- "PySide2.Qt3DInput.Qt3DInput.QAxisSetting.setDeadZoneRadius": ('float',),
- "PySide2.Qt3DInput.Qt3DInput.QAxisSetting.setSmoothEnabled": ('bool',),
-# class PySide2.Qt3DInput.Qt3DInput.QButtonAxisInput:
- "PySide2.Qt3DInput.Qt3DInput.QButtonAxisInput.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QButtonAxisInput.acceleration": (),
- "PySide2.Qt3DInput.Qt3DInput.QButtonAxisInput.buttons": (),
- "PySide2.Qt3DInput.Qt3DInput.QButtonAxisInput.deceleration": (),
- "PySide2.Qt3DInput.Qt3DInput.QButtonAxisInput.scale": (),
- "PySide2.Qt3DInput.Qt3DInput.QButtonAxisInput.setAcceleration": ('float',),
- "PySide2.Qt3DInput.Qt3DInput.QButtonAxisInput.setButtons": ('typing.List[int]',),
- "PySide2.Qt3DInput.Qt3DInput.QButtonAxisInput.setDeceleration": ('float',),
- "PySide2.Qt3DInput.Qt3DInput.QButtonAxisInput.setScale": ('float',),
-# class PySide2.Qt3DInput.Qt3DInput.QInputAspect:
- "PySide2.Qt3DInput.Qt3DInput.QInputAspect.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DInput.Qt3DInput.QInputAspect.availablePhysicalDevices": (),
- "PySide2.Qt3DInput.Qt3DInput.QInputAspect.createPhysicalDevice": ('str',),
-# class PySide2.Qt3DInput.Qt3DInput.QInputChord:
- "PySide2.Qt3DInput.Qt3DInput.QInputChord.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QInputChord.addChord": ('PySide2.Qt3DInput.Qt3DInput.QAbstractActionInput',),
- "PySide2.Qt3DInput.Qt3DInput.QInputChord.chords": (),
- "PySide2.Qt3DInput.Qt3DInput.QInputChord.removeChord": ('PySide2.Qt3DInput.Qt3DInput.QAbstractActionInput',),
- "PySide2.Qt3DInput.Qt3DInput.QInputChord.setTimeout": ('int',),
- "PySide2.Qt3DInput.Qt3DInput.QInputChord.timeout": (),
-# class PySide2.Qt3DInput.Qt3DInput.QInputSequence:
- "PySide2.Qt3DInput.Qt3DInput.QInputSequence.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QInputSequence.addSequence": ('PySide2.Qt3DInput.Qt3DInput.QAbstractActionInput',),
- "PySide2.Qt3DInput.Qt3DInput.QInputSequence.buttonInterval": (),
- "PySide2.Qt3DInput.Qt3DInput.QInputSequence.removeSequence": ('PySide2.Qt3DInput.Qt3DInput.QAbstractActionInput',),
- "PySide2.Qt3DInput.Qt3DInput.QInputSequence.sequences": (),
- "PySide2.Qt3DInput.Qt3DInput.QInputSequence.setButtonInterval": ('int',),
- "PySide2.Qt3DInput.Qt3DInput.QInputSequence.setTimeout": ('int',),
- "PySide2.Qt3DInput.Qt3DInput.QInputSequence.timeout": (),
-# class PySide2.Qt3DInput.Qt3DInput.QInputSettings:
- "PySide2.Qt3DInput.Qt3DInput.QInputSettings.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QInputSettings.eventSource": (),
- "PySide2.Qt3DInput.Qt3DInput.QInputSettings.setEventSource": ('PySide2.QtCore.QObject',),
-# class PySide2.Qt3DInput.Qt3DInput.QKeyEvent:
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.__init__": ('PySide2.QtCore.QEvent.Type', 'int', 'PySide2.QtCore.Qt.KeyboardModifiers', 'str', 'bool', 'int'),
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.count": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.isAccepted": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.isAutoRepeat": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.key": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.matches": ('PySide2.QtGui.QKeySequence.StandardKey',),
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.modifiers": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.nativeScanCode": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.setAccepted": ('bool',),
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.text": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyEvent.type": (),
-# class PySide2.Qt3DInput.Qt3DInput.QKeyboardDevice:
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardDevice.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardDevice.activeInput": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardDevice.axisCount": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardDevice.axisIdentifier": ('str',),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardDevice.axisNames": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardDevice.buttonCount": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardDevice.buttonIdentifier": ('str',),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardDevice.buttonNames": (),
-# class PySide2.Qt3DInput.Qt3DInput.QKeyboardHandler:
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardHandler.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardHandler.focus": (),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardHandler.setFocus": ('bool',),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardHandler.setSourceDevice": ('PySide2.Qt3DInput.Qt3DInput.QKeyboardDevice',),
- "PySide2.Qt3DInput.Qt3DInput.QKeyboardHandler.sourceDevice": (),
-# class PySide2.Qt3DInput.Qt3DInput.QLogicalDevice:
- "PySide2.Qt3DInput.Qt3DInput.QLogicalDevice.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QLogicalDevice.actions": (),
- "PySide2.Qt3DInput.Qt3DInput.QLogicalDevice.addAction": ('PySide2.Qt3DInput.Qt3DInput.QAction',),
- "PySide2.Qt3DInput.Qt3DInput.QLogicalDevice.addAxis": ('PySide2.Qt3DInput.Qt3DInput.QAxis',),
- "PySide2.Qt3DInput.Qt3DInput.QLogicalDevice.axes": (),
- "PySide2.Qt3DInput.Qt3DInput.QLogicalDevice.removeAction": ('PySide2.Qt3DInput.Qt3DInput.QAction',),
- "PySide2.Qt3DInput.Qt3DInput.QLogicalDevice.removeAxis": ('PySide2.Qt3DInput.Qt3DInput.QAxis',),
-# class PySide2.Qt3DInput.Qt3DInput.QMouseDevice:
-# class PySide2.Qt3DInput.Qt3DInput.QMouseDevice.Axis:
- "PySide2.Qt3DInput.Qt3DInput.QMouseDevice.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QMouseDevice.axisCount": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseDevice.axisIdentifier": ('str',),
- "PySide2.Qt3DInput.Qt3DInput.QMouseDevice.axisNames": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseDevice.buttonCount": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseDevice.buttonIdentifier": ('str',),
- "PySide2.Qt3DInput.Qt3DInput.QMouseDevice.buttonNames": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseDevice.sensitivity": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseDevice.setSensitivity": ('float',),
-# class PySide2.Qt3DInput.Qt3DInput.QMouseEvent:
-# class PySide2.Qt3DInput.Qt3DInput.QMouseEvent.Buttons:
-# class PySide2.Qt3DInput.Qt3DInput.QMouseEvent.Modifiers:
- "PySide2.Qt3DInput.Qt3DInput.QMouseEvent.button": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseEvent.buttons": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseEvent.isAccepted": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseEvent.modifiers": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseEvent.setAccepted": ('bool',),
- "PySide2.Qt3DInput.Qt3DInput.QMouseEvent.type": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseEvent.wasHeld": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseEvent.x": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseEvent.y": (),
-# class PySide2.Qt3DInput.Qt3DInput.QMouseHandler:
- "PySide2.Qt3DInput.Qt3DInput.QMouseHandler.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DInput.Qt3DInput.QMouseHandler.containsMouse": (),
- "PySide2.Qt3DInput.Qt3DInput.QMouseHandler.setContainsMouse": ('bool',),
- "PySide2.Qt3DInput.Qt3DInput.QMouseHandler.setSourceDevice": ('PySide2.Qt3DInput.Qt3DInput.QMouseDevice',),
- "PySide2.Qt3DInput.Qt3DInput.QMouseHandler.sourceDevice": (),
-# class PySide2.Qt3DInput.Qt3DInput.QWheelEvent:
-# class PySide2.Qt3DInput.Qt3DInput.QWheelEvent.Buttons:
-# class PySide2.Qt3DInput.Qt3DInput.QWheelEvent.Modifiers:
- "PySide2.Qt3DInput.Qt3DInput.QWheelEvent.angleDelta": (),
- "PySide2.Qt3DInput.Qt3DInput.QWheelEvent.buttons": (),
- "PySide2.Qt3DInput.Qt3DInput.QWheelEvent.isAccepted": (),
- "PySide2.Qt3DInput.Qt3DInput.QWheelEvent.modifiers": (),
- "PySide2.Qt3DInput.Qt3DInput.QWheelEvent.setAccepted": ('bool',),
- "PySide2.Qt3DInput.Qt3DInput.QWheelEvent.type": (),
- "PySide2.Qt3DInput.Qt3DInput.QWheelEvent.x": (),
- "PySide2.Qt3DInput.Qt3DInput.QWheelEvent.y": (),
- }) if "PySide2.Qt3DInput" in sys.modules else None
-# Module PySide2.Qt3DLogic
-sig_dict.update({
-# class PySide2.Qt3DLogic.Qt3DLogic:
-# class PySide2.Qt3DLogic.Qt3DLogic.QFrameAction:
- "PySide2.Qt3DLogic.Qt3DLogic.QFrameAction.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DLogic.Qt3DLogic.QLogicAspect:
- "PySide2.Qt3DLogic.Qt3DLogic.QLogicAspect.__init__": ('PySide2.QtCore.QObject',),
- }) if "PySide2.Qt3DLogic" in sys.modules else None
-# Module PySide2.Qt3DAnimation
-sig_dict.update({
-# class PySide2.Qt3DAnimation.Qt3DAnimation:
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation:
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation.AnimationType:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation.animationName": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation.animationType": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation.duration": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation.position": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation.setAnimationName": ('str',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation.setDuration": ('float',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation.setPosition": ('float',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimationClip:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimationClip.duration": (),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractChannelMapping:
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator:
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.Loops:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.clock": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.isRunning": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.loopCount": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.normalizedTime": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.setClock": ('PySide2.Qt3DAnimation.Qt3DAnimation.QClock',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.setLoopCount": ('int',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.setNormalizedTime": ('float',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.setRunning": ('bool',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.start": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipAnimator.stop": (),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipBlendNode:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipBlendNode.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAdditiveClipBlend:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAdditiveClipBlend.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAdditiveClipBlend.additiveClip": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAdditiveClipBlend.additiveFactor": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAdditiveClipBlend.baseClip": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAdditiveClipBlend.setAdditiveClip": ('PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipBlendNode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAdditiveClipBlend.setAdditiveFactor": ('float',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAdditiveClipBlend.setBaseClip": ('PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipBlendNode',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationAspect:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationAspect.__init__": ('PySide2.QtCore.QObject',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationCallback:
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationCallback.Flag:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationCallback.__init__": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationCallback.valueChanged": ('typing.Any',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationClip:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationClip.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationClipLoader:
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationClipLoader.Status:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationClipLoader.__init__": [('PySide2.Qt3DCore.Qt3DCore.QNode',), ('PySide2.QtCore.QUrl', 'PySide2.Qt3DCore.Qt3DCore.QNode')],
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationClipLoader.setSource": ('PySide2.QtCore.QUrl',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationClipLoader.source": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationClipLoader.status": (),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.activeAnimationGroup": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.addAnimationGroup": ('PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.animationGroupList": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.entity": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.getAnimationIndex": ('str',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.getGroup": ('int',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.position": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.positionOffset": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.positionScale": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.recursive": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.removeAnimationGroup": ('PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.setActiveAnimationGroup": ('int',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.setAnimationGroups": ('typing.List[PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup]',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.setEntity": ('PySide2.Qt3DCore.Qt3DCore.QEntity',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.setPosition": ('float',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.setPositionOffset": ('float',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.setPositionScale": ('float',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationController.setRecursive": ('bool',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup.addAnimation": ('PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup.animationList": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup.duration": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup.name": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup.position": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup.removeAnimation": ('PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup.setAnimations": ('typing.List[PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation]',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup.setName": ('str',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup.setPosition": ('float',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QBlendedClipAnimator:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QBlendedClipAnimator.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QBlendedClipAnimator.blendTree": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QBlendedClipAnimator.setBlendTree": ('PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipBlendNode',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QClipAnimator:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QClipAnimator.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QClipAnimator.clip": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QClipAnimator.setClip": ('PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimationClip',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QClock:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QClock.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QClock.playbackRate": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QClock.setPlaybackRate": ('float',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame:
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.InterpolationType:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.__init__": [(), ('PySide2.QtGui.QVector2D',), ('PySide2.QtGui.QVector2D', 'PySide2.QtGui.QVector2D', 'PySide2.QtGui.QVector2D')],
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.coordinates": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.interpolationType": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.leftControlPoint": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.rightControlPoint": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.setCoordinates": ('PySide2.QtGui.QVector2D',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.setInterpolationType": ('PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.InterpolationType',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.setLeftControlPoint": ('PySide2.QtGui.QVector2D',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.setRightControlPoint": ('PySide2.QtGui.QVector2D',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation:
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.RepeatMode:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.addKeyframe": ('PySide2.Qt3DCore.Qt3DCore.QTransform',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.easing": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.endMode": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.framePositions": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.keyframeList": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.removeKeyframe": ('PySide2.Qt3DCore.Qt3DCore.QTransform',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.setEasing": ('PySide2.QtCore.QEasingCurve',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.setEndMode": ('PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.RepeatMode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.setFramePositions": ('typing.List[float]',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.setKeyframes": ('typing.List[PySide2.Qt3DCore.Qt3DCore.QTransform]',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.setStartMode": ('PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.RepeatMode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.setTarget": ('PySide2.Qt3DCore.Qt3DCore.QTransform',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.setTargetName": ('str',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.startMode": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.target": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.targetName": (),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QLerpClipBlend:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QLerpClipBlend.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QLerpClipBlend.blendFactor": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QLerpClipBlend.endClip": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QLerpClipBlend.setBlendFactor": ('float',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QLerpClipBlend.setEndClip": ('PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipBlendNode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QLerpClipBlend.setStartClip": ('PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipBlendNode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QLerpClipBlend.startClip": (),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget.addAttribute": ('PySide2.Qt3DRender.Qt3DRender.QAttribute',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget.attributeList": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget.attributeNames": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget.fromGeometry": ('PySide2.Qt3DRender.Qt3DRender.QGeometry', 'typing.Sequence[str]'),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget.removeAttribute": ('PySide2.Qt3DRender.Qt3DRender.QAttribute',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget.setAttributes": ('typing.List[PySide2.Qt3DRender.Qt3DRender.QAttribute]',),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation:
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.Method:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.addMorphTarget": ('PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.easing": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.getWeights": ('int',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.interpolator": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.method": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.morphTargetList": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.removeMorphTarget": ('PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.setEasing": ('PySide2.QtCore.QEasingCurve',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.setMethod": ('PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.Method',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.setMorphTargets": ('typing.List[PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget]',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.setTarget": ('PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.setTargetName": ('str',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.setTargetPositions": ('typing.List[float]',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.setWeights": ('int', 'typing.List[float]'),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.target": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.targetName": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.targetPositions": (),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QSkeletonMapping:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QSkeletonMapping.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QSkeletonMapping.setSkeleton": ('PySide2.Qt3DCore.Qt3DCore.QAbstractSkeleton',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QSkeletonMapping.skeleton": (),
-# class PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation:
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.__init__": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.addMorphTarget": ('PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.interpolator": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.morphTargetList": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.removeMorphTarget": ('PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.setMorphTargets": ('typing.List[PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget]',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.setTarget": ('PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.setTargetName": ('str',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.setTargetPositions": ('typing.List[float]',),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.target": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.targetName": (),
- "PySide2.Qt3DAnimation.Qt3DAnimation.QVertexBlendAnimation.targetPositions": (),
- }) if "PySide2.Qt3DAnimation" in sys.modules else None
-# Module PySide2.Qt3DExtras
-sig_dict.update({
-# class PySide2.Qt3DExtras.Qt3DExtras:
-# class PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController:
-# class PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.InputState:
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.InputState.__init__": [(), ('PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.InputState',)],
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.InputState.__copy__": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.acceleration": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.camera": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.deceleration": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.linearSpeed": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.lookSpeed": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.setAcceleration": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.setCamera": ('PySide2.Qt3DRender.Qt3DRender.QCamera',),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.setDeceleration": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.setLinearSpeed": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractCameraController.setLookSpeed": ('float',),
-# class PySide2.Qt3DExtras.Qt3DExtras.QAbstractSpriteSheet:
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractSpriteSheet.currentIndex": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractSpriteSheet.setCurrentIndex": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractSpriteSheet.setTexture": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractSpriteSheet.texture": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QAbstractSpriteSheet.textureTransform": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry:
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.bottomRadius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.hasBottomEndcap": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.hasTopEndcap": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.indexAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.length": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.normalAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.positionAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.rings": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.setBottomRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.setHasBottomEndcap": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.setHasTopEndcap": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.setLength": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.setRings": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.setSlices": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.setTopRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.slices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.texCoordAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.topRadius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.updateIndices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeGeometry.updateVertices": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QConeMesh:
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.bottomRadius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.hasBottomEndcap": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.hasTopEndcap": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.length": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.rings": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setBottomRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setFirstInstance": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setGeometry": ('PySide2.Qt3DRender.Qt3DRender.QGeometry',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setHasBottomEndcap": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setHasTopEndcap": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setIndexOffset": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setInstanceCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setLength": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setPrimitiveRestartEnabled": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setPrimitiveType": ('PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.PrimitiveType',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setRestartIndexValue": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setRings": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setSlices": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setTopRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.setVertexCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.slices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QConeMesh.topRadius": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry:
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.indexAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.normalAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.positionAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.setXExtent": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.setXYMeshResolution": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.setXZMeshResolution": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.setYExtent": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.setYZMeshResolution": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.setZExtent": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.tangentAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.texCoordAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.updateIndices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.updateVertices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.xExtent": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.xyMeshResolution": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.xzMeshResolution": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.yExtent": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.yzMeshResolution": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidGeometry.zExtent": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh:
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setFirstInstance": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setGeometry": ('PySide2.Qt3DRender.Qt3DRender.QGeometry',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setIndexOffset": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setInstanceCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setPrimitiveRestartEnabled": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setPrimitiveType": ('PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.PrimitiveType',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setRestartIndexValue": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setVertexCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setXExtent": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setXYMeshResolution": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setXZMeshResolution": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setYExtent": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setYZMeshResolution": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.setZExtent": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.xExtent": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.xyMeshResolution": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.xzMeshResolution": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.yExtent": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.yzMeshResolution": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCuboidMesh.zExtent": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry:
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.indexAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.length": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.normalAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.positionAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.radius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.rings": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.setLength": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.setRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.setRings": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.setSlices": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.slices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.texCoordAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.updateIndices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderGeometry.updateVertices": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh:
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.length": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.radius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.rings": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setFirstInstance": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setGeometry": ('PySide2.Qt3DRender.Qt3DRender.QGeometry',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setIndexOffset": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setInstanceCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setLength": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setPrimitiveRestartEnabled": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setPrimitiveType": ('PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.PrimitiveType',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setRestartIndexValue": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setRings": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setSlices": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.setVertexCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QCylinderMesh.slices": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.ambient": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.diffuse": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.setAmbient": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.setDiffuse": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.setShininess": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.setSpecular": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.setTextureScale": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.shininess": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.specular": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseMapMaterial.textureScale": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.ambient": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.diffuse": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.setAmbient": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.setDiffuse": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.setShininess": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.setSpecular": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.setTextureScale": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.shininess": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.specular": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMapMaterial.textureScale": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.ambient": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.diffuse": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.isAlphaBlendingEnabled": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.normal": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.setAlphaBlendingEnabled": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.setAmbient": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.setDiffuse": ('typing.Any',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.setNormal": ('typing.Any',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.setShininess": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.setSpecular": ('typing.Any',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.setTextureScale": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.shininess": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.specular": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QDiffuseSpecularMaterial.textureScale": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry:
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry.extrusionLength": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry.font": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry.indexAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry.normalAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry.positionAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry.setDepth": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry.setText": ('str',),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextGeometry.text": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextMesh:
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextMesh.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextMesh.depth": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextMesh.font": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextMesh.setDepth": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextMesh.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextMesh.setText": ('str',),
- "PySide2.Qt3DExtras.Qt3DExtras.QExtrudedTextMesh.text": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QFirstPersonCameraController:
- "PySide2.Qt3DExtras.Qt3DExtras.QFirstPersonCameraController.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer:
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.buffersToClear": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.camera": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.clearColor": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.externalRenderTargetSize": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.gamma": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.isFrustumCullingEnabled": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.setBuffersToClear": ('PySide2.Qt3DRender.Qt3DRender.QClearBuffers.BufferType',),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.setCamera": ('PySide2.Qt3DCore.Qt3DCore.QEntity',),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.setClearColor": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.setExternalRenderTargetSize": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.setFrustumCullingEnabled": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.setGamma": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.setSurface": ('PySide2.QtCore.QObject',),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.setViewportRect": ('PySide2.QtCore.QRectF',),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.surface": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QForwardRenderer.viewportRect": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.alpha": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.beta": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.cool": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.diffuse": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.setAlpha": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.setBeta": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.setCool": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.setDiffuse": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.setShininess": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.setSpecular": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.setWarm": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.shininess": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.specular": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QGoochMaterial.warm": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.ambientOcclusion": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.baseColor": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.metalness": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.normal": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.roughness": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.setAmbientOcclusion": ('typing.Any',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.setBaseColor": ('typing.Any',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.setMetalness": ('typing.Any',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.setNormal": ('typing.Any',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.setRoughness": ('typing.Any',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.setTextureScale": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMetalRoughMaterial.textureScale": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.ambient": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.diffuse": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.interpolator": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.setAmbient": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.setDiffuse": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.setInterpolator": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.setShininess": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.setSpecular": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.shininess": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QMorphPhongMaterial.specular": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.ambient": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.diffuse": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.normal": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.setAmbient": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.setDiffuse": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.setNormal": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.setShininess": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.setSpecular": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.setTextureScale": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.shininess": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.specular": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseMapMaterial.textureScale": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.ambient": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.diffuse": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.normal": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.setAmbient": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.setDiffuse": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.setNormal": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.setShininess": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.setSpecular": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.setTextureScale": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.shininess": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.specular": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QNormalDiffuseSpecularMapMaterial.textureScale": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QOrbitCameraController:
- "PySide2.Qt3DExtras.Qt3DExtras.QOrbitCameraController.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QOrbitCameraController.setZoomInLimit": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QOrbitCameraController.zoomInLimit": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QPerVertexColorMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QPerVertexColorMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
-# class PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.alpha": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.ambient": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.blendFunctionArg": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.destinationAlphaArg": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.destinationRgbArg": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.diffuse": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.setAlpha": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.setAmbient": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.setBlendFunctionArg": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquation.BlendFunction',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.setDestinationAlphaArg": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.setDestinationRgbArg": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.setDiffuse": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.setShininess": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.setSourceAlphaArg": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.setSourceRgbArg": ('PySide2.Qt3DRender.Qt3DRender.QBlendEquationArguments.Blending',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.setSpecular": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.shininess": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.sourceAlphaArg": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.sourceRgbArg": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongAlphaMaterial.specular": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QPhongMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongMaterial.ambient": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongMaterial.diffuse": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongMaterial.setAmbient": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongMaterial.setDiffuse": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongMaterial.setShininess": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongMaterial.setSpecular": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongMaterial.shininess": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPhongMaterial.specular": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry:
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.height": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.indexAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.mirrored": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.normalAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.positionAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.resolution": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.setHeight": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.setMirrored": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.setResolution": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.setWidth": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.tangentAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.texCoordAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.updateIndices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.updateVertices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneGeometry.width": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh:
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.height": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.meshResolution": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.mirrored": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setFirstInstance": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setGeometry": ('PySide2.Qt3DRender.Qt3DRender.QGeometry',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setHeight": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setIndexOffset": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setInstanceCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setMeshResolution": ('PySide2.QtCore.QSize',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setMirrored": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setPrimitiveRestartEnabled": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setPrimitiveType": ('PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.PrimitiveType',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setRestartIndexValue": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setVertexCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.setWidth": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QPlaneMesh.width": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QSkyboxEntity:
- "PySide2.Qt3DExtras.Qt3DExtras.QSkyboxEntity.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSkyboxEntity.baseName": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSkyboxEntity.extension": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSkyboxEntity.isGammaCorrectEnabled": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSkyboxEntity.setBaseName": ('str',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSkyboxEntity.setExtension": ('str',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSkyboxEntity.setGammaCorrectEnabled": ('bool',),
-# class PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry:
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.generateTangents": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.indexAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.normalAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.positionAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.radius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.rings": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.setGenerateTangents": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.setRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.setRings": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.setSlices": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.slices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.tangentAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.texCoordAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.updateIndices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereGeometry.updateVertices": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh:
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.generateTangents": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.radius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.rings": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setFirstInstance": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setGenerateTangents": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setGeometry": ('PySide2.Qt3DRender.Qt3DRender.QGeometry',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setIndexOffset": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setPrimitiveRestartEnabled": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setPrimitiveType": ('PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.PrimitiveType',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setRestartIndexValue": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setRings": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setSlices": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.setVertexCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSphereMesh.slices": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QSpriteGrid:
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteGrid.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteGrid.columns": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteGrid.rows": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteGrid.setColumns": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteGrid.setRows": ('int',),
-# class PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheet:
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheet.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheet.addSprite": [('PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem',), ('int', 'int', 'int', 'int')],
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheet.removeSprite": ('PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheet.setSprites": ('typing.List[PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem]',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheet.sprites": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem:
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem.height": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem.setHeight": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem.setWidth": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem.setX": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem.setY": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem.width": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem.x": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QSpriteSheetItem.y": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity:
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.color": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.font": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.height": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.setColor": ('PySide2.QtGui.QColor',),
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.setFont": ('PySide2.QtGui.QFont',),
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.setHeight": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.setText": ('str',),
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.setWidth": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.text": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QText2DEntity.width": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QTextureMaterial:
- "PySide2.Qt3DExtras.Qt3DExtras.QTextureMaterial.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTextureMaterial.isAlphaBlendingEnabled": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTextureMaterial.setAlphaBlendingEnabled": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTextureMaterial.setTexture": ('PySide2.Qt3DRender.Qt3DRender.QAbstractTexture',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTextureMaterial.setTextureOffset": ('PySide2.QtGui.QVector2D',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTextureMaterial.setTextureTransform": ('PySide2.QtGui.QMatrix3x3',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTextureMaterial.texture": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTextureMaterial.textureOffset": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTextureMaterial.textureTransform": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry:
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.indexAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.minorRadius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.normalAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.positionAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.radius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.rings": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.setMinorRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.setRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.setRings": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.setSlices": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.slices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.texCoordAttribute": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.updateIndices": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusGeometry.updateVertices": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh:
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.__init__": ('PySide2.Qt3DCore.Qt3DCore.QNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.minorRadius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.radius": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.rings": (),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setFirstInstance": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setGeometry": ('PySide2.Qt3DRender.Qt3DRender.QGeometry',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setIndexOffset": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setInstanceCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setMinorRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setPrimitiveRestartEnabled": ('bool',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setPrimitiveType": ('PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer.PrimitiveType',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setRadius": ('float',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setRestartIndexValue": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setRings": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setSlices": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.setVertexCount": ('int',),
- "PySide2.Qt3DExtras.Qt3DExtras.QTorusMesh.slices": (),
-# class PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow:
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.__init__": ('PySide2.QtGui.QScreen',),
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.activeFrameGraph": (),
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.camera": (),
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.defaultFrameGraph": (),
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.event": ('PySide2.QtCore.QEvent',),
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.registerAspect": [('PySide2.Qt3DCore.Qt3DCore.QAbstractAspect',), ('str',)],
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.renderSettings": (),
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.resizeEvent": ('PySide2.QtGui.QResizeEvent',),
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.setActiveFrameGraph": ('PySide2.Qt3DRender.Qt3DRender.QFrameGraphNode',),
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.setRootEntity": ('PySide2.Qt3DCore.Qt3DCore.QEntity',),
- "PySide2.Qt3DExtras.Qt3DExtras.Qt3DWindow.showEvent": ('PySide2.QtGui.QShowEvent',),
- }) if "PySide2.Qt3DExtras" in sys.modules else None
-# Module testbinding
-sig_dict.update({
-# class testbinding.Enum1:
-# class testbinding.IntValue:
- "testbinding.IntValue.__init__": [(), ('int',), ('testbinding.IntValue',)],
- "testbinding.IntValue.__copy__": (),
-# class testbinding.PySideCPP:
-# class testbinding.PySideCPP.TestObject2WithNamespace:
- "testbinding.PySideCPP.TestObject2WithNamespace.__init__": ('PySide2.QtCore.QObject',),
- "testbinding.PySideCPP.TestObject2WithNamespace.__repr__": (),
- "testbinding.PySideCPP.TestObject2WithNamespace.name": (),
-# class testbinding.PySideCPP.TestObjectWithNamespace:
- "testbinding.PySideCPP.TestObjectWithNamespace.__init__": ('PySide2.QtCore.QObject',),
- "testbinding.PySideCPP.TestObjectWithNamespace.callSignal": ('testbinding.PySideCPP.TestObjectWithNamespace',),
- "testbinding.PySideCPP.TestObjectWithNamespace.callSignalWithNamespace": ('testbinding.PySideCPP.TestObjectWithNamespace',),
- "testbinding.PySideCPP.TestObjectWithNamespace.callSignalWithTypedef": ('int',),
- "testbinding.PySideCPP.TestObjectWithNamespace.name": (),
-# class testbinding.TestObject:
- "testbinding.TestObject.__init__": ('int', 'PySide2.QtCore.QObject'),
- "testbinding.TestObject.addChild": ('PySide2.QtCore.QObject',),
- "testbinding.TestObject.checkType": ('typing.Any',),
- "testbinding.TestObject.createApp": (),
- "testbinding.TestObject.emitIdValueSignal": (),
- "testbinding.TestObject.emitSignalWithDefaultValue_bool": (),
- "testbinding.TestObject.emitSignalWithDefaultValue_void": (),
- "testbinding.TestObject.emitSignalWithTypedefValue": ('int',),
- "testbinding.TestObject.emitStaticMethodDoubleSignal": (),
- "testbinding.TestObject.idValue": (),
- "testbinding.TestObject.staticMethodDouble": ('int',),
-# class testbinding.TestObjectWithoutNamespace:
-# class testbinding.TestObjectWithoutNamespace.Enum2:
- "testbinding.TestObjectWithoutNamespace.__init__": ('PySide2.QtCore.QObject',),
- "testbinding.TestObjectWithoutNamespace.callSignal": ('testbinding.PySideCPP2.TestObjectWithoutNamespace',),
- "testbinding.TestObjectWithoutNamespace.callSignalWithNamespace": ('testbinding.PySideCPP2.TestObjectWithoutNamespace',),
- "testbinding.TestObjectWithoutNamespace.callSignalWithTypedef": ('int',),
- "testbinding.TestObjectWithoutNamespace.name": (),
-# class testbinding.TestView:
- "testbinding.TestView.__init__": ('PySide2.QtCore.QAbstractListModel', 'PySide2.QtCore.QObject'),
- "testbinding.TestView.getData": (),
- "testbinding.TestView.getEditorWidgetFromItemDelegate": (),
- "testbinding.TestView.model": (),
- "testbinding.TestView.setItemDelegate": ('PySide2.QtWidgets.QAbstractItemDelegate',),
- "testbinding.TestView.getHiddenObject": (),
- }) if "testbinding" in sys.modules else None
-# Module Shiboken
-sig_dict.update({
-# class Shiboken.VoidPtr:
- }) if "Shiboken" in sys.modules else None
-# Module minimal
-sig_dict.update({
-# class minimal.ListUser:
- "minimal.ListUser.__init__": [(), ('minimal.ListUser',)],
- "minimal.ListUser.__copy__": (),
- "minimal.ListUser.callCreateIntList": ('int',),
- "minimal.ListUser.callCreateListOfIntLists": ('int',),
- "minimal.ListUser.callCreateMinBoolList": ('bool', 'bool'),
- "minimal.ListUser.callCreateObjList": ('minimal.Obj', 'minimal.Obj'),
- "minimal.ListUser.callCreateValList": ('int',),
- "minimal.ListUser.callOredMinBoolList": ('typing.List[bool]',),
- "minimal.ListUser.callSumIntList": ('typing.List[int]',),
- "minimal.ListUser.callSumListOfIntLists": ('typing.List[typing.List]',),
- "minimal.ListUser.callSumObjList": ('typing.List[minimal.Obj]',),
- "minimal.ListUser.callSumValList": ('typing.List[minimal.Val]',),
- "minimal.ListUser.createIntList": ('int',),
- "minimal.ListUser.createListOfIntLists": ('int',),
- "minimal.ListUser.createMinBoolList": ('bool', 'bool'),
- "minimal.ListUser.createObjList": ('minimal.Obj', 'minimal.Obj'),
- "minimal.ListUser.createValList": ('int',),
- "minimal.ListUser.oredMinBoolList": ('typing.List[bool]',),
- "minimal.ListUser.sumIntList": ('typing.List[int]',),
- "minimal.ListUser.sumListOfIntLists": ('typing.List[typing.List]',),
- "minimal.ListUser.sumObjList": ('typing.List[minimal.Obj]',),
- "minimal.ListUser.sumValList": ('typing.List[minimal.Val]',),
-# class minimal.MinBoolUser:
- "minimal.MinBoolUser.__init__": [(), ('minimal.MinBoolUser',)],
- "minimal.MinBoolUser.__copy__": (),
- "minimal.MinBoolUser.callInvertedMinBool": (),
- "minimal.MinBoolUser.invertedMinBool": (),
- "minimal.MinBoolUser.minBool": (),
- "minimal.MinBoolUser.setMinBool": ('bool',),
-# class minimal.Obj:
- "minimal.Obj.__init__": ('int',),
- "minimal.Obj.callPassObjectType": ('minimal.Obj',),
- "minimal.Obj.callPassObjectTypeReference": ('minimal.Obj',),
- "minimal.Obj.callVirtualMethod": ('int',),
- "minimal.Obj.objId": (),
- "minimal.Obj.passObjectType": ('minimal.Obj',),
- "minimal.Obj.passObjectTypeReference": ('minimal.Obj',),
- "minimal.Obj.setObjId": ('int',),
- "minimal.Obj.virtualMethod": ('int',),
-# class minimal.Val:
-# class minimal.Val.ValEnum:
- "minimal.Val.__init__": [('int',), ('minimal.Val',)],
- "minimal.Val.__copy__": (),
- "minimal.Val.callPassValueType": ('minimal.Val',),
- "minimal.Val.callPassValueTypePointer": ('minimal.Val',),
- "minimal.Val.callPassValueTypeReference": ('minimal.Val',),
- "minimal.Val.oneOrTheOtherEnumValue": ('minimal.Val.ValEnum',),
- "minimal.Val.passValueType": ('minimal.Val',),
- "minimal.Val.passValueTypePointer": ('minimal.Val',),
- "minimal.Val.passValueTypeReference": ('minimal.Val',),
- "minimal.Val.setValId": ('int',),
- "minimal.Val.valId": (),
- "minimal.Val.arrayFunc": ('typing.List[int]',),
- "minimal.Val.arrayFuncInt": ('typing.List[int]',),
- "minimal.Val.arrayFuncIntReturn": ('int',),
- "minimal.Val.arrayFuncIntReturnTypedef": ('int',),
- "minimal.Val.arrayFuncIntTypedef": ('typing.List[int]',),
- "minimal.Val.arrayFuncReturn": ('int',),
- "minimal.Val.arrayFuncReturnTypedef": ('int',),
- "minimal.Val.arrayFuncTypedef": ('typing.List[int]',),
- }) if "minimal" in sys.modules else None
-# Module sample
-sig_dict.update({
-# class sample.Abstract:
-# class sample.Abstract.PrintFormat:
-# class sample.Abstract.Type:
- "sample.Abstract.__init__": ('int',),
- "sample.Abstract.callPureVirtual": (),
- "sample.Abstract.callUnpureVirtual": (),
- "sample.Abstract.callVirtualGettingEnum": ('sample.Abstract.PrintFormat',),
- "sample.Abstract.className": (),
- "sample.Abstract.createObject": (),
- "sample.Abstract.getObjectId": ('sample.Abstract',),
- "sample.Abstract.id_": (),
- "sample.Abstract.pureVirtual": (),
- "sample.Abstract.pureVirtualReturningVoidPtr": (),
- "sample.Abstract.returnAnEnum": (),
- "sample.Abstract.show": ('sample.Abstract.PrintFormat',),
- "sample.Abstract.type": (),
- "sample.Abstract.unpureVirtual": (),
- "sample.Abstract.virtualGettingAEnum": ('sample.Abstract.PrintFormat',),
-# class sample.AbstractModifications:
- "sample.AbstractModifications.__init__": (),
- "sample.AbstractModifications.invert": ('bool',),
- "sample.AbstractModifications.pointlessPureVirtualMethod": (),
-# class sample.ArrayModifyTest:
- "sample.ArrayModifyTest.__init__": [(), ('sample.ArrayModifyTest',)],
- "sample.ArrayModifyTest.__copy__": (),
- "sample.ArrayModifyTest.sumIntArray": ('int', 'typing.Sequence[int]'),
-# class sample.Base1:
- "sample.Base1.__init__": (),
- "sample.Base1.base1Method": (),
- "sample.Base1.publicMethod": (),
-# class sample.Base2:
- "sample.Base2.__init__": (),
- "sample.Base2.base2Method": (),
-# class sample.Base3:
- "sample.Base3.__init__": ('int',),
- "sample.Base3.base3Method": (),
-# class sample.Base4:
- "sample.Base4.__init__": (),
- "sample.Base4.base4Method": (),
-# class sample.Base5:
- "sample.Base5.__init__": (),
- "sample.Base5.base5Method": (),
-# class sample.Base6:
- "sample.Base6.__init__": (),
- "sample.Base6.base6Method": (),
-# class sample.BlackBox:
- "sample.BlackBox.__init__": [(), ('sample.BlackBox',)],
- "sample.BlackBox.__copy__": (),
- "sample.BlackBox.disposeObjectType": ('int',),
- "sample.BlackBox.disposePoint": ('int',),
- "sample.BlackBox.keepObjectType": ('object',),
- "sample.BlackBox.keepPoint": ('typing.Tuple[float, float]',),
- "sample.BlackBox.objects": (),
- "sample.BlackBox.points": (),
- "sample.BlackBox.referenceToObjectPointer": ('object',),
- "sample.BlackBox.referenceToValuePointer": ('typing.Tuple[float, float]',),
- "sample.BlackBox.retrieveObjectType": ('int',),
- "sample.BlackBox.retrievePoint": ('int',),
-# class sample.Bucket:
- "sample.Bucket.__init__": (),
- "sample.Bucket.callVirtualBlockerMethodButYouDontKnowThis": (),
- "sample.Bucket.empty": (),
- "sample.Bucket.lock": (),
- "sample.Bucket.locked": (),
- "sample.Bucket.pop": (),
- "sample.Bucket.push": ('int',),
- "sample.Bucket.unlock": (),
- "sample.Bucket.virtualBlockerMethod": (),
-# class sample.ByteArray:
- "sample.ByteArray.__init__": [(), ('int',), ('sample.ByteArray',)],
- "sample.ByteArray.__add__": [('int',), ('sample.ByteArray',), ('str',), ('unicode',)],
- "sample.ByteArray.__copy__": (),
- "sample.ByteArray.__iadd__": [('int',), ('sample.ByteArray',)],
- "sample.ByteArray.__repr__": (),
- "sample.ByteArray.__str__": (),
- "sample.ByteArray.append": [('int',), ('sample.ByteArray',)],
- "sample.ByteArray.at": ('int',),
- "sample.ByteArray.data": (),
- "sample.ByteArray.size": (),
-# class sample.CVListUser:
- "sample.CVListUser.__init__": [(), ('sample.CVListUser',)],
- "sample.CVListUser.__copy__": (),
- "sample.CVListUser.consume": ('typing.List[sample.CVValueType]',),
- "sample.CVListUser.produce": (),
-# class sample.CVValueType:
- "sample.CVValueType.__copy__": (),
-# class sample.ClassWithFunctionPointer:
- "sample.ClassWithFunctionPointer.__init__": [(), ('sample.ClassWithFunctionPointer',)],
- "sample.ClassWithFunctionPointer.__copy__": (),
- "sample.ClassWithFunctionPointer.doNothing": ('int',),
-# class sample.Collector:
- "sample.Collector.__init__": (),
- "sample.Collector.__lshift__": [('Missing("sample.ObjectType.Identifier")',), ('object',), ('sample.IntWrapper',)],
- "sample.Collector.clear": (),
- "sample.Collector.items": (),
- "sample.Collector.size": (),
-# class sample.Color:
- "sample.Color.__init__": [(), ('int',), ('sample.Color',), ('sample.SampleNamespace.InValue',)],
- "sample.Color.__copy__": (),
- "sample.Color.isNull": (),
-# class sample.CtorConvRule:
- "sample.CtorConvRule.__init__": [('int',), ('sample.CtorConvRule',)],
- "sample.CtorConvRule.__copy__": (),
- "sample.CtorConvRule.dummyVirtualMethod": (),
- "sample.CtorConvRule.value": (),
-# class sample.Data:
-# class sample.Data.Field:
- "sample.Data.__init__": [('sample.Data',), ('sample.Data.Field', 'str')],
- "sample.Data.__and__": ('sample.Union',),
- "sample.Data.__copy__": (),
- "sample.Data.field": (),
- "sample.Data.value": (),
-# class sample.Derived:
-# class sample.Derived.OtherOverloadedFuncEnum:
-# class sample.Derived.SomeInnerClass:
- "sample.Derived.SomeInnerClass.__init__": [(), ('sample.Derived.SomeInnerClass',)],
- "sample.Derived.SomeInnerClass.__add__": ('sample.Derived.SomeInnerClass',),
- "sample.Derived.SomeInnerClass.__copy__": (),
- "sample.Derived.SomeInnerClass.uselessMethod": (),
- "sample.Derived.__init__": ('int',),
- "sample.Derived.className": (),
- "sample.Derived.createObject": (),
- "sample.Derived.defaultValue": ('int',),
- "sample.Derived.getClassName": (),
- "sample.Derived.otherOverloaded": [('int', 'float'), ('int', 'int', 'bool', 'float')],
- "sample.Derived.overloaded": [('float',), ('int', 'int')],
- "sample.Derived.pureVirtual": (),
- "sample.Derived.pureVirtualReturningVoidPtr": (),
- "sample.Derived.returnAnEnum": (),
- "sample.Derived.returnMyParameter": ('sample.Derived.SomeInnerClass',),
- "sample.Derived.singleArgument": ('bool',),
- "sample.Derived.triggerAnotherImpossibleTypeDiscovery": (),
- "sample.Derived.triggerImpossibleTypeDiscovery": (),
- "sample.Derived.type": (),
- "sample.Derived.unpureVirtual": (),
-# class sample.Echo:
- "sample.Echo.__init__": [(), ('sample.Echo',)],
- "sample.Echo.__call__": ('sample.Str', 'int'),
- "sample.Echo.__copy__": (),
- "sample.Echo.__lshift__": [('int',), ('object',), ('sample.Str',)],
- "sample.Echo.doNothingWithConstBool": ('bool',),
- "sample.Echo.echo": ('str',),
- "sample.Echo.methodWithNamedArg": ('sample.Str',),
-# class sample.EnumOnNamespace:
-# class sample.Event:
-# class sample.Event.EventType:
-# class sample.Event.EventTypeClass:
- "sample.Event.__init__": [('sample.Event',), ('sample.Event.EventType',)],
- "sample.Event.__copy__": (),
- "sample.Event.eventType": (),
- "sample.Event.setEventType": ('sample.Event.EventType',),
- "sample.Event.setEventTypeByConstRef": ('sample.Event.EventType',),
-# class sample.ExceptionTest:
- "sample.ExceptionTest.__init__": (),
- "sample.ExceptionTest.intThrowInt": ('bool',),
- "sample.ExceptionTest.intThrowStdException": ('bool',),
- "sample.ExceptionTest.voidThrowInt": ('bool',),
- "sample.ExceptionTest.voidThrowStdException": ('bool',),
-# class sample.Expression:
- "sample.Expression.__init__": [('int',), ('sample.Expression',)],
- "sample.Expression.__add__": ('sample.Expression',),
- "sample.Expression.__copy__": (),
- "sample.Expression.__sub__": ('sample.Expression',),
- "sample.Expression.toString": (),
-# class sample.Filter:
- "sample.Filter.__init__": [(), ('sample.Filter',)],
- "sample.Filter.__copy__": (),
-# class sample.FriendOfOnlyCopy:
- "sample.FriendOfOnlyCopy.__init__": [(), ('sample.FriendOfOnlyCopy',)],
- "sample.FriendOfOnlyCopy.__copy__": (),
- "sample.FriendOfOnlyCopy.createListOfOnlyCopy": ('int',),
- "sample.FriendOfOnlyCopy.createOnlyCopy": ('int',),
-# class sample.GlobalEnum:
-# class sample.GlobalOverloadFuncEnum:
-# class sample.HandleHolder:
- "sample.HandleHolder.__init__": ('int',),
- "sample.HandleHolder.compare": ('sample.HandleHolder',),
- "sample.HandleHolder.compare2": ('sample.HandleHolder',),
- "sample.HandleHolder.createHandle": (),
- "sample.HandleHolder.handle": (),
- "sample.HandleHolder.handle2": (),
- "sample.HandleHolder.set": ('int',),
-# class sample.ImplicitBase:
- "sample.ImplicitBase.__init__": [(), ('sample.ImplicitBase',), ('sample.ImplicitTarget',)],
- "sample.ImplicitBase.__copy__": (),
-# class sample.ImplicitConv:
-# class sample.ImplicitConv.CtorEnum:
-# class sample.ImplicitConv.ICOverloadedFuncEnum:
- "sample.ImplicitConv.__init__": [(), ('None',), ('float', 'bool'), ('int',), ('object',), ('sample.ImplicitConv',), ('sample.ImplicitConv.CtorEnum',)],
- "sample.ImplicitConv.__copy__": (),
- "sample.ImplicitConv.ctorEnum": (),
- "sample.ImplicitConv.implicitConvCommon": ('sample.ImplicitConv',),
- "sample.ImplicitConv.implicitConvDefault": ('sample.ImplicitConv',),
- "sample.ImplicitConv.implicitConvOverloading": [('int',), ('sample.ImplicitConv', 'bool'), ('sample.ImplicitConv', 'int'), ('sample.ImplicitConv.CtorEnum',)],
- "sample.ImplicitConv.objId": (),
- "sample.ImplicitConv.value": (),
-# class sample.ImplicitTarget:
- "sample.ImplicitTarget.__init__": [(), ('sample.ImplicitTarget',)],
- "sample.ImplicitTarget.__copy__": (),
-# class sample.InjectCode:
- "sample.InjectCode.__init__": [(), ('sample.InjectCode',)],
- "sample.InjectCode.__copy__": (),
- "sample.InjectCode.arrayMethod": ('int',),
- "sample.InjectCode.callArrayMethod": ('int',),
- "sample.InjectCode.overloadedMethod": [('int', 'bool'), ('int', 'float'), ('int', 'typing.List[str]')],
- "sample.InjectCode.simpleMethod1": ('int', 'int'),
- "sample.InjectCode.simpleMethod2": (),
- "sample.InjectCode.simpleMethod3": ('int', 'typing.List[str]'),
- "sample.InjectCode.sumArrayAndLength": (),
- "sample.InjectCode.virtualMethod": ('int',),
-# class sample.IntArray2:
- "sample.IntArray2.__init__": [('int',), ('sample.IntArray2',), ('typing.Sequence[int]',)],
- "sample.IntArray2.__copy__": (),
- "sample.IntArray2.sum": (),
-# class sample.IntArray3:
- "sample.IntArray3.__init__": [('int',), ('sample.IntArray3',), ('typing.Sequence[int]',)],
- "sample.IntArray3.__copy__": (),
- "sample.IntArray3.sum": (),
-# class sample.IntList:
-# class sample.IntList.CtorEnum:
- "sample.IntList.__init__": [(), ('int',), ('sample.IntList',), ('typing.Sequence[int]',)],
- "sample.IntList.__copy__": (),
- "sample.IntList.append": ('int',),
- "sample.IntList.constructorUsed": (),
-# class sample.IntWrapper:
- "sample.IntWrapper.__init__": [('int',), ('sample.IntWrapper',)],
- "sample.IntWrapper.__copy__": (),
-# class sample.Intersection:
- "sample.Intersection.__init__": [(), ('sample.Data',), ('sample.Intersection',), ('sample.Union',)],
- "sample.Intersection.__and__": ('sample.Intersection',),
- "sample.Intersection.__copy__": (),
- "sample.Intersection.addFilter": ('sample.Filter',),
- "sample.Intersection.filters": (),
-# class sample.ListUser:
-# class sample.ListUser.ListOfSomething:
- "sample.ListUser.__init__": [(), ('sample.ListUser',)],
- "sample.ListUser.__copy__": (),
- "sample.ListUser.callCreateList": (),
- "sample.ListUser.createComplexList": ('complex', 'complex'),
- "sample.ListUser.createList": (),
- "sample.ListUser.getList": (),
- "sample.ListUser.listOfPoints": [('typing.List[sample.PointF]',), ('typing.List[typing.Tuple]',)],
- "sample.ListUser.multiplyPointList": ('typing.List[typing.Tuple]', 'float'),
- "sample.ListUser.setList": ('typing.List[int]',),
- "sample.ListUser.sumList": [('typing.List[float]',), ('typing.List[int]',)],
-# class sample.MDerived1:
- "sample.MDerived1.__init__": (),
- "sample.MDerived1.base1Method": (),
- "sample.MDerived1.base2Method": (),
- "sample.MDerived1.castToBase1": (),
- "sample.MDerived1.castToBase2": (),
- "sample.MDerived1.mderived1Method": (),
- "sample.MDerived1.publicMethod": (),
- "sample.MDerived1.transformFromBase1": ('sample.Base1',),
- "sample.MDerived1.transformFromBase2": ('sample.Base2',),
-# class sample.MDerived2:
- "sample.MDerived2.__init__": (),
- "sample.MDerived2.base4Method": (),
- "sample.MDerived2.castToBase3": (),
- "sample.MDerived2.castToBase4": (),
- "sample.MDerived2.castToBase5": (),
- "sample.MDerived2.castToBase6": (),
- "sample.MDerived2.mderived2Method": (),
-# class sample.MDerived3:
- "sample.MDerived3.__init__": (),
- "sample.MDerived3.castToBase3": (),
- "sample.MDerived3.castToMDerived1": (),
- "sample.MDerived3.castToMDerived2": (),
- "sample.MDerived3.mderived3Method": (),
-# class sample.MDerived4:
- "sample.MDerived4.__init__": (),
- "sample.MDerived4.castToBase3": (),
- "sample.MDerived4.castToBase4": (),
- "sample.MDerived4.justDummyMethod": (),
- "sample.MDerived4.mderived4Method": (),
-# class sample.MDerived5:
- "sample.MDerived5.__init__": (),
- "sample.MDerived5.castToBase3": (),
- "sample.MDerived5.castToBase4": (),
- "sample.MDerived5.mderived5Method": (),
-# class sample.MapUser:
- "sample.MapUser.__init__": [(), ('sample.MapUser',)],
- "sample.MapUser.__copy__": (),
- "sample.MapUser.callCreateMap": (),
- "sample.MapUser.createMap": (),
- "sample.MapUser.foo": (),
- "sample.MapUser.getMap": (),
- "sample.MapUser.passMapIntValueType": ('typing.Dict[int, sample.ByteArray]',),
- "sample.MapUser.pointerToMap": ('typing.Dict[str, str]',),
- "sample.MapUser.referenceToMap": ('typing.Dict[str, str]',),
- "sample.MapUser.setMap": ('typing.Dict[str, typing.List]',),
- "sample.MapUser.showMap": ('typing.Dict[str, int]',),
-# class sample.ModelIndex:
- "sample.ModelIndex.__init__": [(), ('sample.ModelIndex',)],
- "sample.ModelIndex.__copy__": (),
- "sample.ModelIndex.getValue": ('sample.ModelIndex',),
- "sample.ModelIndex.setValue": ('int',),
- "sample.ModelIndex.value": (),
-# class sample.Modifications:
-# class sample.Modifications.OverloadedModFunc:
-# class sample.Modifications.TestEnum:
- "sample.Modifications.__init__": (),
- "sample.Modifications.argRemoval0": [('int', 'bool', 'int', 'bool'), ('int', 'bool', 'int', 'int')],
- "sample.Modifications.argRemoval1": [('int', 'bool', 'int', 'bool'), ('int', 'bool', 'typing.Tuple[float, float]', 'typing.Tuple[float, float]', 'int')],
- "sample.Modifications.argRemoval2": ('int', 'bool', 'typing.Tuple[float, float]', 'typing.Tuple[float, float]', 'int'),
- "sample.Modifications.argRemoval3": ('int', 'typing.Tuple[float, float]', 'bool', 'typing.Tuple[float, float]', 'int'),
- "sample.Modifications.argRemoval4": ('int', 'typing.Tuple[float, float]', 'bool', 'typing.Tuple[float, float]', 'int'),
- "sample.Modifications.argRemoval5": [('int', 'bool', 'int', 'bool'), ('int', 'bool', 'typing.Tuple[float, float]', 'typing.Tuple[float, float]', 'int')],
- "sample.Modifications.calculateArea": ('int', 'int'),
- "sample.Modifications.callDifferenceOfPointCoordinates": ('typing.Tuple[float, float]',),
- "sample.Modifications.defaultEnumValue": (),
- "sample.Modifications.differenceOfPointCoordinates": ('typing.Tuple[float, float]',),
- "sample.Modifications.doublePlus": ('int', 'int'),
- "sample.Modifications.enumValue": (),
- "sample.Modifications.getObject": (),
- "sample.Modifications.getSize": ('int', 'int'),
- "sample.Modifications.increment": ('int',),
- "sample.Modifications.invertBoolean": ('bool',),
- "sample.Modifications.multiplyPointCoordsPlusValue": ('typing.Tuple[float, float]', 'float'),
- "sample.Modifications.name": (),
- "sample.Modifications.nonConversionRuleForArgumentWithDefaultValue": ('object',),
- "sample.Modifications.over": ('int', 'bool', 'typing.Tuple[float, float]', 'typing.Tuple[float, float]'),
- "sample.Modifications.overloaded": [('int', 'bool', 'int', 'bool'), ('int', 'bool', 'int', 'float'), ('int', 'bool', 'int', 'int'), ('int', 'bool', 'int', 'typing.Tuple[float, float]')],
- "sample.Modifications.pointToPair": ('typing.Tuple[float, float]',),
- "sample.Modifications.power": ('int', 'int'),
- "sample.Modifications.setEnumValue": ('sample.Modifications.TestEnum',),
- "sample.Modifications.sumPointArray": ('int', 'typing.Sequence[typing.Tuple]'),
- "sample.Modifications.sumPointCoordinates": ('typing.Tuple[float, float]',),
- "sample.Modifications.timesTen": ('int',),
-# class sample.ModifiedConstructor:
- "sample.ModifiedConstructor.__init__": ('int',),
- "sample.ModifiedConstructor.retrieveValue": (),
-# class sample.NoImplicitConversion:
- "sample.NoImplicitConversion.__init__": [('int',), ('sample.NoImplicitConversion',)],
- "sample.NoImplicitConversion.__copy__": (),
- "sample.NoImplicitConversion.objId": (),
- "sample.NoImplicitConversion.receivesNoImplicitConversionByPointer": ('sample.NoImplicitConversion',),
- "sample.NoImplicitConversion.receivesNoImplicitConversionByReference": ('sample.NoImplicitConversion',),
- "sample.NoImplicitConversion.receivesNoImplicitConversionByValue": ('sample.NoImplicitConversion',),
-# class sample.NonDefaultCtor:
- "sample.NonDefaultCtor.__init__": [('int',), ('sample.NonDefaultCtor',)],
- "sample.NonDefaultCtor.__copy__": (),
- "sample.NonDefaultCtor.callReturnMyselfVirtual": (),
- "sample.NonDefaultCtor.returnMyself": [(), ('int',), ('int', 'sample.NonDefaultCtor')],
- "sample.NonDefaultCtor.returnMyselfVirtual": (),
- "sample.NonDefaultCtor.value": (),
-# class sample.ObjTypeReference:
- "sample.ObjTypeReference.__init__": [(), ('sample.ObjTypeReference',)],
- "sample.ObjTypeReference.justAPureVirtualFunc": ('sample.ObjTypeReference',),
- "sample.ObjTypeReference.returnMyFirstArg": ('sample.ObjTypeReference',),
- "sample.ObjTypeReference.returnMySecondArg": ('int', 'sample.ObjTypeReference'),
-# class sample.ObjectModel:
-# class sample.ObjectModel.MethodCalled:
- "sample.ObjectModel.__init__": ('object',),
- "sample.ObjectModel.data": (),
- "sample.ObjectModel.receivesObjectTypeFamily": [('object',), ('sample.ObjectModel',)],
- "sample.ObjectModel.setData": ('object',),
-# class sample.ObjectType:
- "sample.ObjectType.__init__": ('object',),
- "sample.ObjectType.callId": (),
- "sample.ObjectType.callInvalidateEvent": ('sample.Event',),
- "sample.ObjectType.callVirtualCreateChild": (),
- "sample.ObjectType.callWithEnum": [('sample.Str', 'int'), ('sample.Str', 'sample.Event.EventType', 'int')],
- "sample.ObjectType.causeEvent": ('sample.Event.EventType',),
- "sample.ObjectType.children": (),
- "sample.ObjectType.create": (),
- "sample.ObjectType.createChild": ('object',),
- "sample.ObjectType.createObjectType": (),
- "sample.ObjectType.createWithChild": (),
- "sample.ObjectType.deprecatedFunction": (),
- "sample.ObjectType.destroyCppParent": (),
- "sample.ObjectType.event": ('sample.Event',),
- "sample.ObjectType.findChild": ('sample.Str',),
- "sample.ObjectType.getCppParent": (),
- "sample.ObjectType.identifier": (),
- "sample.ObjectType.invalidateEvent": ('sample.Event',),
- "sample.ObjectType.isLayoutType": (),
- "sample.ObjectType.isPython": (),
- "sample.ObjectType.killChild": ('sample.Str',),
- "sample.ObjectType.layout": (),
- "sample.ObjectType.nextInFocusChain": (),
- "sample.ObjectType.objectName": (),
- "sample.ObjectType.parent": (),
- "sample.ObjectType.processEvent": ('typing.List[object]', 'sample.Event'),
- "sample.ObjectType.removeChild": ('object',),
- "sample.ObjectType.setLayout": ('sample.ObjectTypeLayout',),
- "sample.ObjectType.setNullObject": ('None',),
- "sample.ObjectType.setObject": ('object',),
- "sample.ObjectType.setObjectName": ('sample.Str',),
- "sample.ObjectType.setObjectNameWithSize": [('sample.Str', 'int'), ('str', 'int', 'sample.Str')],
- "sample.ObjectType.setObjectSplittedName": ('str', 'sample.Str', 'sample.Str'),
- "sample.ObjectType.setParent": ('object',),
- "sample.ObjectType.takeChild": [('object',), ('sample.Str',)],
-# class sample.ObjectTypeByValue:
- "sample.ObjectTypeByValue.__init__": (),
- "sample.ObjectTypeByValue.acceptKindOfMeAsValue": ('sample.ObjectTypeByValue',),
- "sample.ObjectTypeByValue.acceptListOfObjectTypeByValue": ('typing.List[sample.ObjectTypeByValue]',),
- "sample.ObjectTypeByValue.returnSomeKindOfMe": (),
-# class sample.ObjectTypeDerived:
- "sample.ObjectTypeDerived.__init__": (),
- "sample.ObjectTypeDerived.event": ('sample.Event',),
-# class sample.ObjectTypeHolder:
- "sample.ObjectTypeHolder.__init__": [('sample.ObjectTypeHolder',), ('str',)],
- "sample.ObjectTypeHolder.__copy__": (),
- "sample.ObjectTypeHolder.callPassObjectTypeAsReference": (),
- "sample.ObjectTypeHolder.getObjecType": (),
- "sample.ObjectTypeHolder.passObjectTypeAsReference": ('object',),
-# class sample.ObjectTypeLayout:
- "sample.ObjectTypeLayout.__init__": (),
- "sample.ObjectTypeLayout.addObject": ('object',),
- "sample.ObjectTypeLayout.create": (),
- "sample.ObjectTypeLayout.isLayoutType": (),
- "sample.ObjectTypeLayout.objects": (),
- "sample.ObjectTypeLayout.takeChild": [('object',), ('sample.Str',)],
-# class sample.ObjectTypeOperators:
- "sample.ObjectTypeOperators.__init__": ('str',),
- "sample.ObjectTypeOperators.__add__": ('str',),
- "sample.ObjectTypeOperators.key": (),
-# class sample.ObjectTypePtrList:
-# class sample.ObjectTypePtrList.CtorEnum:
- "sample.ObjectTypePtrList.__init__": [(), ('object',), ('sample.ObjectTypePtrList',), ('typing.Sequence[object]',)],
- "sample.ObjectTypePtrList.__copy__": (),
- "sample.ObjectTypePtrList.append": ('object',),
- "sample.ObjectTypePtrList.constructorUsed": (),
-# class sample.ObjectView:
- "sample.ObjectView.__init__": ('sample.ObjectModel', 'object'),
- "sample.ObjectView.displayModelData": (),
- "sample.ObjectView.getRawModelData": (),
- "sample.ObjectView.model": (),
- "sample.ObjectView.modifyModelData": ('sample.Str',),
- "sample.ObjectView.setModel": ('sample.ObjectModel',),
-# class sample.OddBoolUser:
- "sample.OddBoolUser.__init__": [(), ('bool',), ('sample.OddBoolUser',)],
- "sample.OddBoolUser.__copy__": (),
- "sample.OddBoolUser.callInvertedOddBool": (),
- "sample.OddBoolUser.getOddBool": ('sample.OddBoolUser',),
- "sample.OddBoolUser.invertedOddBool": (),
- "sample.OddBoolUser.oddBool": (),
- "sample.OddBoolUser.setOddBool": ('bool',),
-# class sample.OnlyCopy:
- "sample.OnlyCopy.__init__": ('sample.OnlyCopy',),
- "sample.OnlyCopy.__copy__": (),
- "sample.OnlyCopy.getValue": ('sample.OnlyCopy',),
- "sample.OnlyCopy.getValueFromReference": ('sample.OnlyCopy',),
- "sample.OnlyCopy.value": (),
-# class sample.OtherBase:
- "sample.OtherBase.__init__": (),
-# class sample.Overload:
-# class sample.Overload.FunctionEnum:
-# class sample.Overload.ParamEnum:
- "sample.Overload.__init__": (),
- "sample.Overload.acceptSequence": [(), ('int',), ('int', 'int'), ('sample.Size',), ('sample.Str', 'sample.Overload.ParamEnum'), ('typing.Sequence[str]',)],
- "sample.Overload.differentReturnTypes": [('sample.Overload.ParamEnum',), ('sample.Overload.ParamEnum', 'int')],
- "sample.Overload.drawText": [('int', 'int', 'int', 'int', 'int', 'sample.Str'), ('int', 'int', 'sample.Str'), ('sample.PointF', 'sample.Str'), ('sample.Rect', 'int', 'sample.Str'), ('sample.RectF', 'int', 'sample.Str'), ('sample.RectF', 'sample.Str', 'sample.Echo'), ('typing.Tuple[float, float]', 'sample.Str')],
- "sample.Overload.drawText2": [('int', 'int', 'int', 'int', 'int', 'sample.Str'), ('int', 'int', 'sample.Str'), ('sample.PointF', 'sample.Str'), ('sample.Rect', 'int', 'sample.Str'), ('sample.RectF', 'int', 'sample.Str'), ('sample.RectF', 'sample.Str', 'sample.Echo'), ('typing.Tuple[float, float]', 'sample.Str')],
- "sample.Overload.drawText3": [('int', 'int', 'int', 'int', 'int'), ('sample.Str', 'sample.Str', 'sample.Str')],
- "sample.Overload.drawText4": [('int', 'int', 'int'), ('int', 'int', 'int', 'int', 'int')],
- "sample.Overload.intDoubleOverloads": [('float', 'float'), ('int', 'int')],
- "sample.Overload.intOverloads": [('int', 'int'), ('int', 'int', 'float'), ('typing.Tuple[float, float]', 'float')],
- "sample.Overload.overloaded": [(), ('sample.Size',), ('typing.Tuple[float, float]',), ('typing.Tuple[float, float]', 'sample.Overload.ParamEnum')],
- "sample.Overload.singleOverload": [(), ('typing.Tuple[float, float]',)],
- "sample.Overload.strBufferOverloads": [(), ('sample.Str', 'int'), ('sample.Str', 'str', 'bool'), ('str', 'int')],
- "sample.Overload.wrapperIntIntOverloads": [('sample.Polygon', 'int', 'int'), ('typing.Tuple[float, float]', 'int', 'int')],
-# class sample.Overload2:
- "sample.Overload2.__init__": (),
- "sample.Overload2.doNothingInPublic": [(), ('int',)],
- "sample.Overload2.doNothingInPublic2": [(), ('int',)],
- "sample.Overload2.doNothingInPublic3": [(), ('int',)],
-# class sample.OverloadedFuncEnum:
-# class sample.PairUser:
- "sample.PairUser.__init__": [(), ('sample.PairUser',)],
- "sample.PairUser.__copy__": (),
- "sample.PairUser.callCreatePair": (),
- "sample.PairUser.createComplexPair": ('complex', 'complex'),
- "sample.PairUser.createPair": (),
- "sample.PairUser.getPair": (),
- "sample.PairUser.setPair": ('typing.Tuple[int, int]',),
- "sample.PairUser.sumPair": ('typing.Tuple[int, float]',),
-# class sample.Pen:
- "sample.Pen.__init__": [(), ('sample.Color',), ('sample.Pen',), ('sample.SampleNamespace.Option',)],
- "sample.Pen.__copy__": (),
- "sample.Pen.ctorType": (),
-# class sample.PersistentModelIndex:
- "sample.PersistentModelIndex.__init__": [(), ('sample.ModelIndex',), ('sample.PersistentModelIndex',)],
- "sample.PersistentModelIndex.__copy__": (),
- "sample.PersistentModelIndex.setValue": ('int',),
- "sample.PersistentModelIndex.value": (),
-# class sample.Photon:
-# class sample.Photon.Base:
- "sample.Photon.Base.__init__": [('int',), ('sample.Photon.Base',)],
- "sample.Photon.Base.__copy__": (),
- "sample.Photon.Base.isType": ('sample.Photon.ClassType',),
- "sample.Photon.Base.setValue": ('int',),
- "sample.Photon.Base.type": (),
- "sample.Photon.Base.value": (),
-# class sample.Photon.ClassType:
-# class sample.Photon.ValueDuplicator:
- "sample.Photon.ValueDuplicator.__init__": [('int',), ('sample.Photon.ValueDuplicator',)],
- "sample.Photon.ValueDuplicator.__copy__": (),
- "sample.Photon.ValueDuplicator.calculate": (),
- "sample.Photon.ValueDuplicator.classType": (),
- "sample.Photon.ValueDuplicator.getListOfThisTemplateBase": (),
- "sample.Photon.ValueDuplicator.multiplicator": (),
- "sample.Photon.ValueDuplicator.passPointerThrough": ('sample.Photon.ValueDuplicator',),
- "sample.Photon.ValueDuplicator.sumValueUsingPointer": ('sample.Photon.ValueDuplicator',),
- "sample.Photon.ValueDuplicator.sumValueUsingReference": ('sample.Photon.ValueDuplicator',),
- "sample.Photon.ValueDuplicator.type": (),
-# class sample.Photon.ValueIdentity:
- "sample.Photon.ValueIdentity.__init__": [('int',), ('sample.Photon.ValueIdentity',)],
- "sample.Photon.ValueIdentity.__copy__": (),
- "sample.Photon.ValueIdentity.calculate": (),
- "sample.Photon.ValueIdentity.classType": (),
- "sample.Photon.ValueIdentity.getListOfThisTemplateBase": (),
- "sample.Photon.ValueIdentity.multiplicator": (),
- "sample.Photon.ValueIdentity.passPointerThrough": ('sample.Photon.ValueIdentity',),
- "sample.Photon.ValueIdentity.sumValueUsingPointer": ('sample.Photon.ValueIdentity',),
- "sample.Photon.ValueIdentity.sumValueUsingReference": ('sample.Photon.ValueIdentity',),
- "sample.Photon.ValueIdentity.type": (),
- "sample.Photon.callCalculateForValueDuplicatorPointer": ('sample.Photon.ValueDuplicator',),
- "sample.Photon.callCalculateForValueDuplicatorReference": ('sample.Photon.ValueDuplicator',),
- "sample.Photon.countValueDuplicators": ('typing.List[sample.Photon.ValueDuplicator]',),
- "sample.Photon.countValueIdentities": ('typing.List[sample.Photon.ValueIdentity]',),
-# class sample.Point:
- "sample.Point.__init__": [('float', 'float'), ('int', 'int'), ('typing.Tuple[float, float]',)],
- "sample.Point.__add__": ('typing.Tuple[float, float]',),
- "sample.Point.__copy__": (),
- "sample.Point.__iadd__": ('typing.Tuple[float, float]',),
- "sample.Point.__isub__": ('typing.Tuple[float, float]',),
- "sample.Point.__mul__": [('float',), ('int',)],
- "sample.Point.__neg__": (),
- "sample.Point.__reduce__": (),
- "sample.Point.__repr__": (),
- "sample.Point.__str__": (),
- "sample.Point.__sub__": [('typing.Tuple[float, float]',), ('unicode',)],
- "sample.Point.copy": (),
- "sample.Point.getConstReferenceToSelf": (),
- "sample.Point.getSelf": (),
- "sample.Point.midpoint": ('typing.Tuple[float, float]', 'typing.Tuple[float, float]'),
- "sample.Point.setX": ('float',),
- "sample.Point.setXAsUint": ('int',),
- "sample.Point.setY": ('float',),
- "sample.Point.setYAsUint": ('int',),
- "sample.Point.show": (),
- "sample.Point.x": (),
- "sample.Point.y": (),
-# class sample.PointF:
- "sample.PointF.__init__": [('float', 'float'), ('sample.PointF',), ('typing.Tuple[float, float]',)],
- "sample.PointF.__add__": ('sample.PointF',),
- "sample.PointF.__copy__": (),
- "sample.PointF.__iadd__": ('sample.PointF',),
- "sample.PointF.__isub__": ('sample.PointF',),
- "sample.PointF.__mul__": [('float',), ('int',)],
- "sample.PointF.__neg__": (),
- "sample.PointF.__reduce__": (),
- "sample.PointF.__repr__": (),
- "sample.PointF.__str__": (),
- "sample.PointF.__sub__": ('sample.PointF',),
- "sample.PointF.midpoint": ('sample.PointF', 'sample.PointF'),
- "sample.PointF.setX": ('float',),
- "sample.PointF.setY": ('float',),
- "sample.PointF.show": (),
- "sample.PointF.x": (),
- "sample.PointF.y": (),
-# class sample.PointValueList:
-# class sample.PointValueList.CtorEnum:
- "sample.PointValueList.__init__": [(), ('sample.PointValueList',), ('typing.Sequence[typing.Tuple]',), ('typing.Tuple[float, float]',)],
- "sample.PointValueList.__copy__": (),
- "sample.PointValueList.append": ('typing.Tuple[float, float]',),
- "sample.PointValueList.constructorUsed": (),
-# class sample.PointerHolder:
- "sample.PointerHolder.__init__": [('object',), ('sample.PointerHolder',)],
- "sample.PointerHolder.__copy__": (),
- "sample.PointerHolder.pointer": (),
-# class sample.Polygon:
- "sample.Polygon.__init__": [(), ('float', 'float'), ('sample.Polygon',), ('typing.List[typing.Tuple]',), ('typing.Tuple[float, float]',)],
- "sample.Polygon.__copy__": (),
- "sample.Polygon.addPoint": ('typing.Tuple[float, float]',),
- "sample.Polygon.doublePolygonScale": ('sample.Polygon',),
- "sample.Polygon.points": (),
- "sample.Polygon.stealOwnershipFromPython": [('sample.Polygon',), ('typing.Tuple[float, float]',)],
-# class sample.PrimitiveStructPointerHolder:
- "sample.PrimitiveStructPointerHolder.__init__": [(), ('sample.PrimitiveStructPointerHolder',)],
- "sample.PrimitiveStructPointerHolder.__copy__": (),
-# class sample.PrivateCtor:
- "sample.PrivateCtor.instance": (),
- "sample.PrivateCtor.instanceCalls": (),
-# class sample.PrivateDtor:
- "sample.PrivateDtor.instance": (),
- "sample.PrivateDtor.instanceCalls": (),
- "sample.PrivateDtor.protectedInstanceCalls": (),
-# class sample.ProtectedEnumClass:
-# class sample.ProtectedEnumClass.ProtectedEnum:
-# class sample.ProtectedEnumClass.PublicEnum:
- "sample.ProtectedEnumClass.__init__": (),
- "sample.ProtectedEnumClass.callProtectedEnumMethod": ('sample.ProtectedEnumClass.ProtectedEnum',),
- "sample.ProtectedEnumClass.callPublicEnumMethod": ('sample.ProtectedEnumClass.PublicEnum',),
- "sample.ProtectedEnumClass.protectedEnumMethod": ('sample.ProtectedEnumClass.ProtectedEnum',),
- "sample.ProtectedEnumClass.publicEnumMethod": ('sample.ProtectedEnumClass.PublicEnum',),
-# class sample.ProtectedNonPolymorphic:
- "sample.ProtectedNonPolymorphic.__init__": [('sample.ProtectedNonPolymorphic',), ('str',)],
- "sample.ProtectedNonPolymorphic.__copy__": (),
- "sample.ProtectedNonPolymorphic.create": (),
- "sample.ProtectedNonPolymorphic.dataTypeName": [('int',), ('object',)],
- "sample.ProtectedNonPolymorphic.modifiedProtectedSum": ('int', 'int'),
- "sample.ProtectedNonPolymorphic.protectedName": (),
- "sample.ProtectedNonPolymorphic.protectedStatic": (),
- "sample.ProtectedNonPolymorphic.protectedSum": ('int', 'int'),
- "sample.ProtectedNonPolymorphic.publicName": (),
-# class sample.ProtectedPolymorphic:
- "sample.ProtectedPolymorphic.__init__": [('sample.ProtectedPolymorphic',), ('str',)],
- "sample.ProtectedPolymorphic.__copy__": (),
- "sample.ProtectedPolymorphic.callProtectedName": (),
- "sample.ProtectedPolymorphic.create": (),
- "sample.ProtectedPolymorphic.protectedName": (),
- "sample.ProtectedPolymorphic.publicName": (),
-# class sample.ProtectedPolymorphicDaughter:
- "sample.ProtectedPolymorphicDaughter.__init__": [('sample.ProtectedPolymorphicDaughter',), ('str',)],
- "sample.ProtectedPolymorphicDaughter.__copy__": (),
- "sample.ProtectedPolymorphicDaughter.create": (),
-# class sample.ProtectedPolymorphicGrandDaughter:
- "sample.ProtectedPolymorphicGrandDaughter.__init__": [('sample.ProtectedPolymorphicGrandDaughter',), ('str',)],
- "sample.ProtectedPolymorphicGrandDaughter.__copy__": (),
- "sample.ProtectedPolymorphicGrandDaughter.create": (),
-# class sample.ProtectedProperty:
- "sample.ProtectedProperty.__init__": [(), ('sample.ProtectedProperty',)],
- "sample.ProtectedProperty.__copy__": (),
-# class sample.ProtectedVirtualDestructor:
- "sample.ProtectedVirtualDestructor.__init__": (),
- "sample.ProtectedVirtualDestructor.create": (),
- "sample.ProtectedVirtualDestructor.dtorCalled": (),
- "sample.ProtectedVirtualDestructor.resetDtorCounter": (),
-# class sample.Rect:
- "sample.Rect.__init__": [(), ('int', 'int', 'int', 'int'), ('sample.Rect',)],
- "sample.Rect.__copy__": (),
- "sample.Rect.bottom": (),
- "sample.Rect.left": (),
- "sample.Rect.right": (),
- "sample.Rect.top": (),
-# class sample.RectF:
- "sample.RectF.__init__": [(), ('int', 'int', 'int', 'int'), ('sample.Rect',), ('sample.RectF',)],
- "sample.RectF.__copy__": (),
- "sample.RectF.bottom": (),
- "sample.RectF.left": (),
- "sample.RectF.right": (),
- "sample.RectF.top": (),
-# class sample.Reference:
- "sample.Reference.__init__": [('int',), ('sample.Reference',)],
- "sample.Reference.__copy__": (),
- "sample.Reference.alterReferenceIdVirtual": ('sample.Reference',),
- "sample.Reference.callAlterReferenceIdVirtual": ('sample.Reference',),
- "sample.Reference.callUsesConstReferenceVirtual": ('sample.Reference', 'int'),
- "sample.Reference.callUsesReferenceVirtual": ('sample.Reference', 'int'),
- "sample.Reference.multiplier": (),
- "sample.Reference.objId": (),
- "sample.Reference.returnMyFirstArg": ('sample.Reference',),
- "sample.Reference.returnMySecondArg": ('int', 'sample.Reference'),
- "sample.Reference.setObjId": ('int',),
- "sample.Reference.show": (),
- "sample.Reference.usesConstReference": ('sample.Reference',),
- "sample.Reference.usesConstReferenceVirtual": ('sample.Reference', 'int'),
- "sample.Reference.usesReference": ('sample.Reference',),
- "sample.Reference.usesReferenceVirtual": ('sample.Reference', 'int'),
-# class sample.ReferentModelIndex:
- "sample.ReferentModelIndex.__init__": [(), ('sample.ModelIndex',), ('sample.ReferentModelIndex',)],
- "sample.ReferentModelIndex.__copy__": (),
- "sample.ReferentModelIndex.setValue": ('int',),
- "sample.ReferentModelIndex.value": (),
-# class sample.RemovedNamespace1_Enum:
-# class sample.RemovedNamespace2_Enum:
-# class sample.SampleNamespace:
-# class sample.SampleNamespace.DerivedFromNamespace:
- "sample.SampleNamespace.DerivedFromNamespace.__init__": (),
- "sample.SampleNamespace.DerivedFromNamespace.methodReturningTypeFromParentScope": (),
- "sample.SampleNamespace.DerivedFromNamespace.someVirtualMethod": ('sample.SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough',),
-# class sample.SampleNamespace.InValue:
-# class sample.SampleNamespace.Option:
-# class sample.SampleNamespace.OutValue:
-# class sample.SampleNamespace.SomeClass:
-# class sample.SampleNamespace.SomeClass.ProtectedEnum:
-# class sample.SampleNamespace.SomeClass.PublicScopedEnum:
-# class sample.SampleNamespace.SomeClass.SomeInnerClass:
-# class sample.SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough:
-# class sample.SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough.NiceEnum:
-# class sample.SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough.NiceEnumClass:
- "sample.SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough.__init__": (),
- "sample.SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough.someMethod": ('sample.SampleNamespace.SomeClass.SomeInnerClass',),
- "sample.SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough.someVirtualMethod": ('sample.SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough',),
-# class sample.SampleNamespace.SomeClass.SomeInnerClass.ProtectedEnum:
- "sample.SampleNamespace.SomeClass.SomeInnerClass.__init__": [(), ('sample.SampleNamespace.SomeClass.SomeInnerClass',)],
- "sample.SampleNamespace.SomeClass.SomeInnerClass.__copy__": (),
-# class sample.SampleNamespace.SomeClass.SomeOtherInnerClass:
- "sample.SampleNamespace.SomeClass.SomeOtherInnerClass.__init__": [(), ('sample.SampleNamespace.SomeClass.SomeOtherInnerClass',)],
- "sample.SampleNamespace.SomeClass.SomeOtherInnerClass.__copy__": (),
- "sample.SampleNamespace.SomeClass.__init__": [(), ('sample.SampleNamespace.SomeClass',)],
- "sample.SampleNamespace.SomeClass.__copy__": (),
- "sample.SampleNamespace.SomeClass.protectedMethodReturningPublicScopedEnum": (),
- "sample.SampleNamespace.ImInsideANamespace": ('int', 'int'),
- "sample.SampleNamespace.doSomethingWithArray": ('str', 'int', 'str'),
- "sample.SampleNamespace.enumArgumentWithDefaultValue": ('sample.SampleNamespace.Option',),
- "sample.SampleNamespace.enumInEnumOut": ('sample.SampleNamespace.InValue',),
- "sample.SampleNamespace.enumItemAsDefaultValueToIntArgument": ('int',),
- "sample.SampleNamespace.forceDecisorSideA": [('object',), ('typing.Tuple[float, float]', 'sample.Str', 'object')],
- "sample.SampleNamespace.forceDecisorSideB": [('int', 'object'), ('int', 'typing.Tuple[float, float]', 'sample.Str', 'object')],
- "sample.SampleNamespace.getNumber": ('sample.SampleNamespace.Option',),
- "sample.SampleNamespace.passReferenceToObjectType": [('object',), ('object', 'int')],
- "sample.SampleNamespace.passReferenceToValueType": [('typing.Tuple[float, float]',), ('typing.Tuple[float, float]', 'float')],
- "sample.SampleNamespace.powerOfTwo": ('float',),
-# class sample.SbkDate:
- "sample.SbkDate.__init__": [('int', 'int', 'int'), ('sample.SbkDate',)],
- "sample.SbkDate.__copy__": (),
- "sample.SbkDate.day": (),
- "sample.SbkDate.month": (),
- "sample.SbkDate.toPython": (),
- "sample.SbkDate.year": (),
-# class sample.SimpleFile:
- "sample.SimpleFile.__init__": [('sample.SimpleFile',), ('str',)],
- "sample.SimpleFile.__copy__": (),
- "sample.SimpleFile.close": (),
- "sample.SimpleFile.exists": [(), ('str',)],
- "sample.SimpleFile.filename": (),
- "sample.SimpleFile.open": (),
- "sample.SimpleFile.size": (),
-# class sample.Size:
- "sample.Size.__init__": [('float', 'float'), ('sample.Size',), ('str',)],
- "sample.Size.__add__": ('sample.Size',),
- "sample.Size.__copy__": (),
- "sample.Size.__iadd__": ('sample.Size',),
- "sample.Size.__imul__": ('float',),
- "sample.Size.__isub__": ('sample.Size',),
- "sample.Size.__mul__": ('float',),
- "sample.Size.__sub__": ('sample.Size',),
- "sample.Size.calculateArea": (),
- "sample.Size.height": (),
- "sample.Size.setHeight": ('float',),
- "sample.Size.setWidth": ('float',),
- "sample.Size.show": (),
- "sample.Size.width": (),
-# class sample.SizeF:
- "sample.SizeF.__init__": [('float', 'float'), ('sample.SizeF',)],
- "sample.SizeF.__copy__": (),
- "sample.SizeF.height": (),
- "sample.SizeF.passTypedefOfUnsignedShort": ('int',),
- "sample.SizeF.width": (),
-# class sample.SonOfMDerived1:
- "sample.SonOfMDerived1.__init__": (),
- "sample.SonOfMDerived1.castToMDerived1": (),
- "sample.SonOfMDerived1.sonOfMDerived1Method": (),
-# class sample.SortedOverload:
- "sample.SortedOverload.__init__": [(), ('sample.SortedOverload',)],
- "sample.SortedOverload.__copy__": (),
- "sample.SortedOverload.implicit_overload": ('sample.ImplicitBase',),
- "sample.SortedOverload.overload": [('float',), ('int',), ('object',), ('sample.ImplicitBase',), ('sample.ImplicitTarget',), ('typing.List[sample.ImplicitBase]',)],
- "sample.SortedOverload.overloadDeep": [('int', 'object'), ('int', 'sample.ImplicitBase')],
- "sample.SortedOverload.pyObjOverload": [('int', 'int'), ('str', 'int')],
-# class sample.Str:
- "sample.Str.__init__": [('int',), ('sample.Str',), ('str',)],
- "sample.Str.__add__": ('int',),
- "sample.Str.__copy__": (),
- "sample.Str.__str__": (),
- "sample.Str.append": ('sample.Str',),
- "sample.Str.arg": ('sample.Str',),
- "sample.Str.cstring": (),
- "sample.Str.get_char": ('int',),
- "sample.Str.prepend": ('sample.Str',),
- "sample.Str.set_char": ('int', 'int'),
- "sample.Str.show": (),
- "sample.Str.size": (),
- "sample.Str.toInt": ('int',),
-# class sample.StrList:
-# class sample.StrList.CtorEnum:
- "sample.StrList.__init__": [(), ('sample.Str',), ('sample.StrList',), ('typing.List[sample.Str]',)],
- "sample.StrList.__copy__": (),
- "sample.StrList.append": ('sample.Str',),
- "sample.StrList.constructorUsed": (),
- "sample.StrList.join": ('sample.Str',),
-# class sample.TemplatePtr:
- "sample.TemplatePtr.__init__": (),
- "sample.TemplatePtr.dummy_method": ('typing.List[typing.Tuple]',),
-# class sample.Time:
-# class sample.Time.NumArgs:
- "sample.Time.__init__": [(), ('int', 'int', 'int', 'int'), ('sample.Time',)],
- "sample.Time.__copy__": (),
- "sample.Time.hour": (),
- "sample.Time.isNull": (),
- "sample.Time.minute": (),
- "sample.Time.msec": (),
- "sample.Time.second": (),
- "sample.Time.setTime": [(), ('int', 'int', 'int', 'int')],
- "sample.Time.somethingCompletelyDifferent": [(), ('int', 'int', 'sample.ImplicitConv', 'object')],
- "sample.Time.toString": (),
-# class sample.Union:
- "sample.Union.__init__": [(), ('sample.Data',), ('sample.Intersection',), ('sample.Union',)],
- "sample.Union.__and__": ('sample.Data',),
- "sample.Union.__copy__": (),
- "sample.Union.addFilter": ('sample.Filter',),
- "sample.Union.filters": (),
-# class sample.UnremovedNamespace:
-# class sample.UnremovedNamespace.RemovedNamespace3_Enum:
-# class sample.ValueAndVirtual:
- "sample.ValueAndVirtual.__init__": [('int',), ('sample.ValueAndVirtual',)],
- "sample.ValueAndVirtual.__call__": ('int', 'int'),
- "sample.ValueAndVirtual.__copy__": (),
- "sample.ValueAndVirtual.id": (),
-# class sample.VirtualDaughter:
- "sample.VirtualDaughter.__init__": [(), ('sample.Str',), ('sample.VirtualDaughter',)],
- "sample.VirtualDaughter.__copy__": (),
-# class sample.VirtualDaughter2:
- "sample.VirtualDaughter2.__init__": (),
- "sample.VirtualDaughter2.sumThree": ('int', 'int', 'int'),
- "sample.VirtualDaughter2.virtualMethod0": ('typing.Tuple[float, float]', 'int', 'complex', 'bool'),
-# class sample.VirtualDtor:
- "sample.VirtualDtor.__init__": [(), ('sample.VirtualDtor',)],
- "sample.VirtualDtor.__copy__": (),
- "sample.VirtualDtor.create": (),
- "sample.VirtualDtor.dtorCalled": (),
- "sample.VirtualDtor.resetDtorCounter": (),
-# class sample.VirtualFinalDaughter:
- "sample.VirtualFinalDaughter.__init__": (),
- "sample.VirtualFinalDaughter.sumThree": ('int', 'int', 'int'),
- "sample.VirtualFinalDaughter.virtualMethod0": ('typing.Tuple[float, float]', 'int', 'complex', 'bool'),
-# class sample.VirtualMethods:
- "sample.VirtualMethods.__init__": [('sample.Str',), ('sample.VirtualMethods',)],
- "sample.VirtualMethods.__copy__": (),
- "sample.VirtualMethods.callCallMe": (),
- "sample.VirtualMethods.callCreateStr": ('str', 'sample.Str'),
- "sample.VirtualMethods.callGetMargins": (),
- "sample.VirtualMethods.callMe": (),
- "sample.VirtualMethods.callName": (),
- "sample.VirtualMethods.callRecursionOnModifiedVirtual": ('sample.Str',),
- "sample.VirtualMethods.callStrListToStdList": ('sample.StrList',),
- "sample.VirtualMethods.callSum0": ('int', 'int', 'int'),
- "sample.VirtualMethods.callSum1": ('int', 'int', 'int'),
- "sample.VirtualMethods.callSum2": ('int', 'int', 'int'),
- "sample.VirtualMethods.callSum3": ('int', 'int', 'int'),
- "sample.VirtualMethods.callSum4": ('int', 'int', 'int'),
- "sample.VirtualMethods.callVirtualMethod0": ('typing.Tuple[float, float]', 'int', 'complex', 'bool'),
- "sample.VirtualMethods.createStr": ('str', 'sample.Str'),
- "sample.VirtualMethods.getMargins": (),
- "sample.VirtualMethods.name": (),
- "sample.VirtualMethods.recursionOnModifiedVirtual": ('sample.Str',),
- "sample.VirtualMethods.setMargins": ('int', 'int', 'int', 'int'),
- "sample.VirtualMethods.strListToStdList": ('sample.StrList',),
- "sample.VirtualMethods.sum1": ('int', 'int', 'int'),
- "sample.VirtualMethods.sum2": ('int', 'int', 'int'),
- "sample.VirtualMethods.sum3": ('int', 'int', 'int'),
- "sample.VirtualMethods.sum4": ('int', 'int', 'int'),
- "sample.VirtualMethods.sumThree": ('int', 'int', 'int'),
- "sample.VirtualMethods.virtualMethod0": ('typing.Tuple[float, float]', 'int', 'complex', 'bool'),
-# class sample.VoidHolder:
- "sample.VoidHolder.__init__": [('int',), ('sample.VoidHolder',)],
- "sample.VoidHolder.__copy__": (),
- "sample.VoidHolder.gimmeMeSomeVoidPointer": (),
- "sample.VoidHolder.takeVoidPointer": ('int',),
- "sample.VoidHolder.voidPointer": (),
-# class sample.sample:
-# class sample.sample.sample:
- "sample.sample.sample.__init__": [('int',), ('sample.sample.sample',)],
- "sample.sample.sample.__copy__": (),
- "sample.sample.sample.value": (),
- "sample.sample.acceptDouble": ('float',),
- "sample.sample.acceptInt": ('int',),
- "sample.sample.acceptIntReference": ('int',),
- "sample.sample.acceptLong": ('int',),
- "sample.sample.acceptOddBoolReference": ('bool',),
- "sample.sample.acceptUInt": ('int',),
- "sample.sample.acceptULong": ('int',),
- "sample.sample.applyHomogeneousTransform": ('typing.Tuple[float, float]', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float', 'float'),
- "sample.sample.cacheSize": (),
- "sample.sample.changePStr": ('str',),
- "sample.sample.convertIntegersToCppAndThenToPython": ('int', 'int'),
- "sample.sample.convertListOfIntegersToCppAndThenToPython": ('typing.List[int]',),
- "sample.sample.convertObjectTypeToCppAndThenToPython": ('object', 'object'),
- "sample.sample.convertValueTypeToCppAndThenToPython": ('typing.Tuple[float, float]', 'typing.Tuple[float, float]', 'typing.Tuple[float, float]'),
- "sample.sample.countCharacters": ('str',),
- "sample.sample.countVarargs": ('int', 'None'),
- "sample.sample.cppTypeIsObjectType": ('str',),
- "sample.sample.cppTypeIsValueType": ('str',),
- "sample.sample.createListOfPStr": ('str', 'str'),
- "sample.sample.createPStrList": ('str', 'str'),
- "sample.sample.createProtectedProperty": (),
- "sample.sample.doubleLongLong": ('int',),
- "sample.sample.doubleShort": ('int',),
- "sample.sample.doubleUnsignedInt": ('int',),
- "sample.sample.doubleUnsignedLongLong": ('int',),
- "sample.sample.duplicatePStr": (),
- "sample.sample.getConversionTypeString": ('str',),
- "sample.sample.getPythonType": ('str',),
- "sample.sample.gimmeComplexList": (),
- "sample.sample.gimmeDouble": (),
- "sample.sample.gimmeInt": (),
- "sample.sample.makeCString": (),
- "sample.sample.multiplyPair": ('typing.Tuple[float, float]',),
- "sample.sample.multiplyString": ('str', 'int'),
- "sample.sample.overloadedFunc": [('float',), ('int',)],
- "sample.sample.returnCString": (),
- "sample.sample.returnNullObjectTypePointer": (),
- "sample.sample.returnNullPrimitivePointer": (),
- "sample.sample.returnNullValueTypePointer": (),
- "sample.sample.sum2d": ('typing.List[typing.List]',),
- "sample.sample.sumComplexPair": ('typing.Tuple[complex, complex]',),
- "sample.sample.sumDoubleArray": ('typing.Tuple[float, float, float, float]',),
- "sample.sample.sumDoubleMatrix": ('typing.Tuple[typing.Tuple, typing.Tuple, typing.Tuple]',),
- "sample.sample.sumIntArray": ('typing.Tuple[int, int, int, int]',),
- "sample.sample.sumIntMatrix": ('typing.Tuple[typing.Tuple, typing.Tuple, typing.Tuple]',),
- "sample.sample.sumproduct": ('typing.List[typing.Tuple]',),
- "sample.sample.transmuteComplexIntoPoint": ('complex',),
- "sample.sample.transmutePointIntoComplex": ('typing.Tuple[float, float]',),
- }) if "sample" in sys.modules else None
-# Module other
-sig_dict.update({
-# class other.ExtendsNoImplicitConversion:
- "other.ExtendsNoImplicitConversion.__init__": [('Missing("other.ExtendsNoImplicitConversion")',), ('int',)],
- "other.ExtendsNoImplicitConversion.__copy__": (),
- "other.ExtendsNoImplicitConversion.objId": (),
-# class other.Number:
- "other.Number.__init__": [('int',), ('numbers.Number',)],
- "other.Number.__copy__": (),
- "other.Number.__mul__": ('typing.Tuple[float, float]',),
- "other.Number.fromComplex": ('complex',),
- "other.Number.toComplex": (),
- "other.Number.toStr": (),
- "other.Number.value": (),
-# class other.OtherDerived:
- "other.OtherDerived.__init__": ('int',),
- "other.OtherDerived.className": (),
- "other.OtherDerived.createObject": (),
- "other.OtherDerived.getClassName": (),
- "other.OtherDerived.pureVirtual": (),
- "other.OtherDerived.pureVirtualReturningVoidPtr": (),
- "other.OtherDerived.returnAnEnum": (),
- "other.OtherDerived.unpureVirtual": (),
- "other.OtherDerived.useEnumTypeFromOtherModule": ('sample.OverloadedFuncEnum',),
- "other.OtherDerived.useObjectTypeFromOtherModule": ('object',),
- "other.OtherDerived.useValueTypeFromOtherModule": [('complex',), ('sample.Event',)],
-# class other.OtherMultipleDerived:
- "other.OtherMultipleDerived.__init__": (),
- "other.OtherMultipleDerived.createObject": ('str',),
- "other.OtherMultipleDerived.returnUselessClass": (),
-# class other.OtherObjectType:
- "other.OtherObjectType.__init__": (),
- "other.OtherObjectType.__lshift__": ('sample.Collector',),
- }) if "other" in sys.modules else None
-# Module smart
-sig_dict.update({
-# class smart.Integer:
- "smart.Integer.__init__": [(), ('smart.Integer',)],
- "smart.Integer.__copy__": (),
- "smart.Integer.printInteger": (),
-# class smart.Integer2:
- "smart.Integer2.__init__": [(), ('int',)],
- "smart.Integer2.__copy__": (),
-# class smart.Obj:
- "smart.Obj.__init__": (),
- "smart.Obj.giveSharedPtrToInteger": (),
- "smart.Obj.giveSharedPtrToInteger2": (),
- "smart.Obj.giveSharedPtrToObj": (),
- "smart.Obj.giveSharedPtrToObjList": ('int',),
- "smart.Obj.printObj": (),
- "smart.Obj.takeInteger": ('smart.Integer',),
- "smart.Obj.takeSharedPtrToInteger": ('smart.SharedPtr',),
- "smart.Obj.takeSharedPtrToObj": ('smart.SharedPtr',),
-# class smart.Registry:
- "smart.Registry.__init__": (),
- "smart.Registry.add": [('smart.Integer',), ('smart.Obj',)],
- "smart.Registry.countIntegers": (),
- "smart.Registry.countObjects": (),
- "smart.Registry.getInstance": (),
- "smart.Registry.remove": [('smart.Integer',), ('smart.Obj',)],
- "smart.Registry.setShouldPrint": ('bool',),
- "smart.Registry.shouldPrint": (),
-# class smart.SharedPtr:
-# class smart.SharedPtr.__next_in_mro__:
-# class smart.SharedPtr<Integer >:
- "smart.SharedPtr<Integer >.__copy__": (),
- "smart.SharedPtr<Integer >.data": (),
- "smart.SharedPtr<Integer >.useCount": (),
-# class smart.SharedPtr<Obj >:
- "smart.SharedPtr<Obj >.__copy__": (),
- "smart.SharedPtr<Obj >.data": (),
- "smart.SharedPtr<Obj >.useCount": (),
-# class smart.SharedPtr<Smart::Integer2 >:
- "smart.SharedPtr<Smart::Integer2 >.__copy__": (),
- "smart.SharedPtr<Smart::Integer2 >.data": (),
- "smart.SharedPtr<Smart::Integer2 >.useCount": (),
- }) if "smart" in sys.modules else None
-# eof
diff --git a/sources/pyside6/tests/registry/init_platform.py b/sources/pyside6/tests/registry/init_platform.py
index 06c488ee3..8abf30216 100644
--- a/sources/pyside6/tests/registry/init_platform.py
+++ b/sources/pyside6/tests/registry/init_platform.py
@@ -1,41 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
"""
init_platform.py
@@ -113,13 +77,7 @@ def set_ospaths(build_dir):
ps = os.pathsep
ospath_var = "PATH" if sys.platform == "win32" else "LD_LIBRARY_PATH"
old_val = os.environ.get(ospath_var, "")
- lib_path = [os.path.join(build_dir, "pyside6", "libpyside"),
- os.path.join(build_dir, "pyside6", "tests", "pysidetest"),
- os.path.join(build_dir, "shiboken6", "tests", "libminimal"),
- os.path.join(build_dir, "shiboken6", "tests", "libsample"),
- os.path.join(build_dir, "shiboken6", "tests", "libother"),
- os.path.join(build_dir, "shiboken6", "tests", "libsmart"),
- os.path.join(build_dir, "shiboken6", "libshiboken")]
+ lib_path = [os.path.join(build_dir, "pyside6", "tests", "pysidetest"),]
ospath = ps.join(lib_path + old_val.split(ps))
os.environ[ospath_var] = ospath
@@ -139,12 +97,6 @@ all_modules.append("testbinding")
from shiboken6 import Shiboken
all_modules.append("shiboken6.Shiboken")
-# 'sample/smart' are needed by 'other', so import them first.
-for modname in "minimal sample smart other".split():
- sys.path.insert(0, os.path.join(shiboken_build_dir, "tests", modname + "binding"))
- __import__(modname)
- all_modules.append(modname)
-
from shibokensupport.signature.lib.enum_sig import SimplifyingEnumerator
# Make sure not to get .pyc in Python2.
@@ -208,6 +160,12 @@ def enum_all():
return ret
+LICENSE_TEXT = """
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+"""
+
+
def generate_all():
refPath = get_refpath()
module = os.path.basename(os.path.splitext(refPath)[0])
@@ -218,7 +176,7 @@ def generate_all():
license_line = next((lno for lno, line in enumerate(lines)
if "$QT_END_LICENSE$" in line))
fmt.print("#recreate # uncomment this to enforce generation")
- fmt.print("".join(lines[:license_line + 3]))
+ fmt.print(LICENSE_TEXT)
version = sys.version.replace('\n', ' ')
build = qt_build()
fmt.print(dedent(f'''\
diff --git a/sources/pyside6/tests/registry/scrape_testresults.py b/sources/pyside6/tests/registry/scrape_testresults.py
index ce02e8e52..b7b6b58aa 100644
--- a/sources/pyside6/tests/registry/scrape_testresults.py
+++ b/sources/pyside6/tests/registry/scrape_testresults.py
@@ -1,41 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
"""
scrape_testresults.py
@@ -248,7 +212,7 @@ def handle_suburl(idx, n, url, level):
print(os.getpid(), test_name)
response = read_url(sub_url)
txt = response.text if response else ''
- if "BEGIN_FILE" in txt and not "'BEGIN_FILE'" in txt:
+ if "BEGIN_FILE" in txt and "'BEGIN_FILE'" not in txt:
# find the text, but not a traceback with that text
print(os.getpid(), test_name, "FOUND!")
write_data(test_name, response.text)
diff --git a/sources/pyside6/tests/registry/util.py b/sources/pyside6/tests/registry/util.py
index 4a4b2fd01..5d81926a1 100644
--- a/sources/pyside6/tests/registry/util.py
+++ b/sources/pyside6/tests/registry/util.py
@@ -1,41 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
"""
Supporting isolation of warnings
@@ -62,8 +26,6 @@ def isolate_warnings():
if mod and hasattr(mod, warn_name):
save_warnings[name] = mod.__dict__[warn_name]
delattr(mod, warn_name)
- else:
- save_warnings[name] = None
yield
for name, warn in save_warnings.items():
mod = sys.modules[name]
@@ -109,14 +71,8 @@ def linux_distribution():
# distro package, ASAP! The distro has been extracted from Python,
# because it changes more often than the Python version.
distribution = []
- try:
- import distro
- distribution = distro.linux_distribution()
- except ImportError:
- # platform.linux_distribution() was removed in 3.8
- if sys.version_info[:2] < (3, 8):
- import platform
- distribution = platform.linux_distribution()
+ import distro
+ distribution = distro.linux_distribution()
if distribution:
return "".join(distribution[:2]).lower()
warnings.warn('Cannot determine Linux distribution, please install distro',
diff --git a/sources/pyside6/tests/run_test.sh b/sources/pyside6/tests/run_test.sh
index f059ac014..2cb3efa69 100755
--- a/sources/pyside6/tests/run_test.sh
+++ b/sources/pyside6/tests/run_test.sh
@@ -1,32 +1,6 @@
#!/bin/sh
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
# This is a nasty workaround of a CTest limitation
# of setting the environment variables for the test.
diff --git a/sources/pyside6/tests/signals/CMakeLists.txt b/sources/pyside6/tests/signals/CMakeLists.txt
index 14936869f..ff342adc7 100644
--- a/sources/pyside6/tests/signals/CMakeLists.txt
+++ b/sources/pyside6/tests/signals/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
PYSIDE_TEST(args_dont_match_test.py)
PYSIDE_TEST(bug_79.py)
PYSIDE_TEST(bug_189.py)
@@ -13,6 +16,7 @@ PYSIDE_TEST(leaking_signal_test.py)
PYSIDE_TEST(multiple_connections_gui_test.py)
PYSIDE_TEST(multiple_connections_test.py)
PYSIDE_TEST(pysignal_test.py)
+PYSIDE_TEST(qobject_callable_connect_test.py)
PYSIDE_TEST(qobject_destroyed_test.py)
PYSIDE_TEST(qobject_receivers_test.py)
PYSIDE_TEST(qobject_sender_test.py)
@@ -29,11 +33,12 @@ PYSIDE_TEST(signal2signal_connect_test.py)
PYSIDE_TEST(signal_across_threads.py)
PYSIDE_TEST(signal_autoconnect_test.py)
PYSIDE_TEST(signal_connectiontype_support_test.py)
-PYSIDE_TEST(signal_enum_test.py)
PYSIDE_TEST(signal_emission_gui_test.py)
PYSIDE_TEST(signal_emission_test.py)
+PYSIDE_TEST(signal_enum_test.py)
PYSIDE_TEST(signal_func_test.py)
PYSIDE_TEST(signal_manager_refcount_test.py)
+PYSIDE_TEST(signal_newenum_test.py)
PYSIDE_TEST(signal_number_limit_test.py)
PYSIDE_TEST(signal_object_test.py)
PYSIDE_TEST(signal_signature_test.py)
diff --git a/sources/pyside6/tests/signals/anonymous_slot_leak_test.py b/sources/pyside6/tests/signals/anonymous_slot_leak_test.py
new file mode 100644
index 000000000..560a08659
--- /dev/null
+++ b/sources/pyside6/tests/signals/anonymous_slot_leak_test.py
@@ -0,0 +1,55 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import os
+import sys
+import unittest
+
+from functools import partial
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from PySide6.QtWidgets import QWidget
+from helper.usesqapplication import UsesQApplication
+
+
+have_debug = hasattr(sys, "gettotalrefcount")
+
+
+class LeakerLambda():
+ def __init__(self, widget):
+ widget.windowIconChanged.connect(lambda *args: None)
+
+
+class LeakerFunctoolsPartial():
+ def __init__(self, widget):
+ widget.windowIconChanged.connect(partial(int, 0))
+
+
+class TestBugPYSIDE2299(UsesQApplication):
+ def leak(self, leaker):
+ widget = QWidget()
+
+ # Warm-up
+ leaker(widget)
+
+ refs_before = sys.gettotalrefcount()
+ for _ in range(1000):
+ leaker(widget)
+ refs_after = sys.gettotalrefcount()
+
+ self.assertAlmostEqual(refs_after - refs_before, 0, delta=10)
+
+ @unittest.skipUnless(have_debug, "You need a debug build")
+ def test_lambda(self):
+ self.leak(LeakerLambda)
+
+ @unittest.skipUnless(have_debug, "You need a debug build")
+ def test_functools_partial(self):
+ self.leak(LeakerFunctoolsPartial)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/signals/args_dont_match_test.py b/sources/pyside6/tests/signals/args_dont_match_test.py
index 8b3f2b5c7..4f56be348 100644
--- a/sources/pyside6/tests/signals/args_dont_match_test.py
+++ b/sources/pyside6/tests/signals/args_dont_match_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/env python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -37,7 +11,11 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtCore import QObject, SIGNAL
+from PySide6.QtCore import QObject, Signal
+
+
+class Sender(QObject):
+ the_signal = Signal(int, int, int)
class ArgsDontMatch(unittest.TestCase):
@@ -47,9 +25,9 @@ class ArgsDontMatch(unittest.TestCase):
def testConnectSignalToSlotWithLessArgs(self):
self.ok = False
- obj1 = QObject()
- QObject.connect(obj1, SIGNAL('the_signal(int, int, int)'), self.callback)
- obj1.emit(SIGNAL('the_signal(int, int, int)'), 1, 2, 3)
+ obj1 = Sender()
+ obj1.the_signal.connect(self.callback)
+ obj1.the_signal.emit(1, 2, 3)
self.assertTrue(self.ok)
diff --git a/sources/pyside6/tests/signals/bug_189.py b/sources/pyside6/tests/signals/bug_189.py
index 39a1fe042..1c013ddea 100644
--- a/sources/pyside6/tests/signals/bug_189.py
+++ b/sources/pyside6/tests/signals/bug_189.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/signals/bug_311.py b/sources/pyside6/tests/signals/bug_311.py
index 0bf3cdcf3..e27476172 100644
--- a/sources/pyside6/tests/signals/bug_311.py
+++ b/sources/pyside6/tests/signals/bug_311.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -39,7 +12,7 @@ from init_paths import init_test_paths
init_test_paths(False)
from PySide6.QtCore import QDate, QObject, Signal
-from helper.usesqcoreapplication import UsesQCoreApplication
+from helper.usesqapplication import UsesQApplication
class DerivedDate(QDate):
@@ -53,7 +26,7 @@ class Emitter(QObject):
tupleSignal = Signal(tuple)
-class SignaltoSignalTest(UsesQCoreApplication):
+class SignaltoSignalTest(UsesQApplication):
def myCb(self, dt):
self._dt = dt
@@ -79,4 +52,3 @@ class SignaltoSignalTest(UsesQCoreApplication):
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/pyside6/tests/signals/bug_312.py b/sources/pyside6/tests/signals/bug_312.py
index 234e34000..80d56a020 100644
--- a/sources/pyside6/tests/signals/bug_312.py
+++ b/sources/pyside6/tests/signals/bug_312.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -38,44 +11,29 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtCore import QObject, SIGNAL
+from PySide6.QtCore import QObject, Signal
MAX_LOOPS = 5
MAX_OBJECTS = 200
-class Dummy(object):
- def __init__(self, parent):
- self._parent = parent
-
- def callback(self):
- self._called = True
+class Sender(QObject):
+ fire = Signal()
class MultipleSlots(unittest.TestCase):
def myCB(self):
self._count += 1
- """
- def testUnboundSignal(self):
- o = QObject()
- self._count = 0
- for i in range(MAX_OBJECTS):
- QObject.connect(o, SIGNAL("fire()"), lambda: self.myCB())
-
- o.emit(SIGNAL("fire()"))
- self.assertEqual(self._count, MAX_OBJECTS)
-
- """
def testDisconnectCleanup(self):
for c in range(MAX_LOOPS):
self._count = 0
self._senders = []
for i in range(MAX_OBJECTS):
- o = QObject()
- QObject.connect(o, SIGNAL("fire()"), lambda: self.myCB())
+ o = Sender()
+ o.fire.connect(lambda: self.myCB())
self._senders.append(o)
- o.emit(SIGNAL("fire()"))
+ o.fire.emit()
self.assertEqual(self._count, MAX_OBJECTS)
@@ -85,5 +43,3 @@ class MultipleSlots(unittest.TestCase):
if __name__ == '__main__':
unittest.main()
-
-
diff --git a/sources/pyside6/tests/signals/bug_319.py b/sources/pyside6/tests/signals/bug_319.py
index bd46b9632..657733afb 100644
--- a/sources/pyside6/tests/signals/bug_319.py
+++ b/sources/pyside6/tests/signals/bug_319.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -39,7 +12,7 @@ from init_paths import init_test_paths
init_test_paths(False)
from PySide6.QtCore import QObject, Signal, Slot
-from helper.usesqcoreapplication import UsesQCoreApplication
+from helper.usesqapplication import UsesQApplication
class Listener(QObject):
@@ -58,7 +31,7 @@ class Communicate(QObject):
speak = Signal(tuple)
-class SignaltoSignalTest(UsesQCoreApplication):
+class SignaltoSignalTest(UsesQApplication):
def testBug(self):
someone = Communicate()
someone2 = Listener()
@@ -72,4 +45,3 @@ class SignaltoSignalTest(UsesQCoreApplication):
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/pyside6/tests/signals/bug_79.py b/sources/pyside6/tests/signals/bug_79.py
index fc70ddaee..77ac621d5 100644
--- a/sources/pyside6/tests/signals/bug_79.py
+++ b/sources/pyside6/tests/signals/bug_79.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import gc
@@ -55,7 +30,7 @@ class ConnectTest(unittest.TestCase):
def testNoLeaks_ConnectAndDisconnect(self):
self._called = None
- app = QApplication([])
+ app = QApplication([]) # noqa: F841
o = QTreeView()
o.setModel(QStandardItemModel())
o.selectionModel().destroyed.connect(self.callback)
@@ -63,6 +38,11 @@ class ConnectTest(unittest.TestCase):
gc.collect()
# if this is no debug build, then we check at least that
# we do not crash any longer.
+ for idx in range(200):
+ # PYSIDE-2230: Warm-up is necessary before measuring, because
+ # the code changes the constant parts after some time.
+ o.selectionModel().destroyed.connect(self.callback)
+ o.selectionModel().destroyed.disconnect(self.callback)
if not skiptest:
total = gettotalrefcount()
for idx in range(1000):
diff --git a/sources/pyside6/tests/signals/decorators_test.py b/sources/pyside6/tests/signals/decorators_test.py
index 346a75101..b29339ee4 100644
--- a/sources/pyside6/tests/signals/decorators_test.py
+++ b/sources/pyside6/tests/signals/decorators_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/env python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -37,7 +11,11 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtCore import QObject, Slot, SIGNAL, SLOT
+from PySide6.QtCore import QObject, Slot, Signal
+
+
+class Sender(QObject):
+ mySignal = Signal()
class MyObject(QObject):
@@ -83,9 +61,10 @@ class StaticMetaObjectTest(unittest.TestCase):
self.assertTrue(m.indexOfSlot('mySlot4(QString,int)') > 0)
def testEmission(self):
+ sender = Sender()
o = MyObject()
- o.connect(SIGNAL("mySignal()"), o, SLOT("mySlot()"))
- o.emit(SIGNAL("mySignal()"))
+ sender.mySignal.connect(o.mySlot)
+ sender.mySignal.emit()
self.assertTrue(o._slotCalledCount == 1)
def testResult(self):
diff --git a/sources/pyside6/tests/signals/disconnect_test.py b/sources/pyside6/tests/signals/disconnect_test.py
index 9f97461ee..ea3782a91 100644
--- a/sources/pyside6/tests/signals/disconnect_test.py
+++ b/sources/pyside6/tests/signals/disconnect_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/signals/invalid_callback_test.py b/sources/pyside6/tests/signals/invalid_callback_test.py
index 5933aee2e..2788c1d1a 100644
--- a/sources/pyside6/tests/signals/invalid_callback_test.py
+++ b/sources/pyside6/tests/signals/invalid_callback_test.py
@@ -1,33 +1,9 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for passing invalid callbacks to QObject.connect'''
+import gc
import os
import sys
import unittest
@@ -37,7 +13,7 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtCore import QObject, SIGNAL
+from PySide6.QtCore import QObject
class InvalidCallback(unittest.TestCase):
@@ -53,13 +29,13 @@ class InvalidCallback(unittest.TestCase):
del self.obj
except AttributeError:
pass
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
def testIntegerCb(self):
# Test passing an int as callback to QObject.connect
- self.assertRaises(TypeError, QObject.connect, self.obj,
- SIGNAL('destroyed()'), 42)
+ self.assertRaises(TypeError, self.obj.destroyed.connect, 42)
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/pyside6/tests/signals/lambda_gui_test.py b/sources/pyside6/tests/signals/lambda_gui_test.py
index 70cbb4d66..2123e7206 100644
--- a/sources/pyside6/tests/signals/lambda_gui_test.py
+++ b/sources/pyside6/tests/signals/lambda_gui_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Connecting lambda to gui signals'''
@@ -37,43 +12,39 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtCore import QObject, SIGNAL
-
-try:
- from PySide6.QtWidgets import QSpinBox, QPushButton
- hasQtGui = True
-except ImportError:
- hasQtGui = False
+from PySide6.QtWidgets import QSpinBox, QPushButton
from helper.usesqapplication import UsesQApplication
-if hasQtGui:
- class Control:
- def __init__(self):
- self.arg = False
- class QtGuiSigLambda(UsesQApplication):
+class Control:
+ def __init__(self):
+ self.arg = False
+
+
+class QtWidgetsSigLambda(UsesQApplication):
+
+ def testButton(self):
+ # Connecting a lambda to a QPushButton.clicked()
+ obj = QPushButton('label')
+ ctr = Control()
+ func = lambda: setattr(ctr, 'arg', True) # noqa: E731
+ obj.clicked.connect(func)
+ obj.click()
+ self.assertTrue(ctr.arg)
+ self.assertTrue(obj.clicked.disconnect(func))
- def testButton(self):
- # Connecting a lambda to a QPushButton.clicked()
- obj = QPushButton('label')
- ctr = Control()
- func = lambda: setattr(ctr, 'arg', True)
- obj.clicked.connect(func)
- obj.click()
- self.assertTrue(ctr.arg)
- QObject.disconnect(obj, SIGNAL('clicked()'), func)
+ def testSpinButton(self):
+ # Connecting a lambda to a QPushButton.clicked()
+ obj = QSpinBox()
+ ctr = Control()
+ arg = 444
+ func = lambda x: setattr(ctr, 'arg', 444) # noqa: E731
+ obj.valueChanged.connect(func)
+ obj.setValue(444)
+ self.assertEqual(ctr.arg, arg)
+ self.assertTrue(obj.valueChanged.disconnect(func))
- def testSpinButton(self):
- # Connecting a lambda to a QPushButton.clicked()
- obj = QSpinBox()
- ctr = Control()
- arg = 444
- func = lambda x: setattr(ctr, 'arg', 444)
- obj.valueChanged.connect(func)
- obj.setValue(444)
- self.assertEqual(ctr.arg, arg)
- QObject.disconnect(obj, SIGNAL('valueChanged(int)'), func)
if __name__ == '__main__':
unittest.main()
diff --git a/sources/pyside6/tests/signals/lambda_test.py b/sources/pyside6/tests/signals/lambda_test.py
index 74d5cc900..23fcdf5fa 100644
--- a/sources/pyside6/tests/signals/lambda_test.py
+++ b/sources/pyside6/tests/signals/lambda_test.py
@@ -1,50 +1,40 @@
#!/usr/bin/env python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Connecting lambda to signals'''
import os
import sys
import unittest
+import weakref
from pathlib import Path
sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtCore import QObject, SIGNAL, QProcess
+from PySide6.QtCore import QCoreApplication, QObject, Signal, SIGNAL, QProcess
+
+from helper.usesqapplication import UsesQApplication
+
+
+class Sender(QObject):
+ void_signal = Signal()
+ int_signal = Signal(int)
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self._delayed_int = 0
-from helper.usesqcoreapplication import UsesQCoreApplication
+ def emit_void(self):
+ self.void_signal.emit()
+ def emit_int(self, v):
+ self.int_signal.emit(v)
-class Dummy(QObject):
+
+class Receiver(QObject):
def __init__(self, *args):
super().__init__(*args)
@@ -54,45 +44,79 @@ class BasicCase(unittest.TestCase):
def testSimplePythonSignalNoArgs(self):
# Connecting a lambda to a simple python signal without arguments
- obj = Dummy()
- QObject.connect(obj, SIGNAL('foo()'),
- lambda: setattr(obj, 'called', True))
- obj.emit(SIGNAL('foo()'))
- self.assertTrue(obj.called)
+ receiver = Receiver()
+ sender = Sender()
+ sender.void_signal.connect(lambda: setattr(receiver, 'called', True))
+ sender.emit_void()
+ self.assertTrue(receiver.called)
def testSimplePythonSignal(self):
# Connecting a lambda to a simple python signal witharguments
- obj = Dummy()
+ receiver = Receiver()
+ sender = Sender()
arg = 42
- QObject.connect(obj, SIGNAL('foo(int)'),
- lambda x: setattr(obj, 'arg', 42))
- obj.emit(SIGNAL('foo(int)'), arg)
- self.assertEqual(obj.arg, arg)
+ sender.int_signal.connect(lambda x: setattr(receiver, 'arg', arg))
+ sender.emit_int(arg)
+ self.assertEqual(receiver.arg, arg)
+ def testSimplePythonSignalNoArgsString(self):
+ # Connecting a lambda to a simple python signal without arguments
+ receiver = Receiver()
+ sender = Sender()
+ QObject.connect(sender, SIGNAL('void_signal()'),
+ lambda: setattr(receiver, 'called', True))
+ sender.emit_void()
+ self.assertTrue(receiver.called)
+
+ def testSimplePythonSignalString(self):
+ # Connecting a lambda to a simple python signal witharguments
+ receiver = Receiver()
+ sender = Sender()
+ arg = 42
+ QObject.connect(sender, SIGNAL('int_signal(int)'),
+ lambda x: setattr(receiver, 'arg', arg))
+ sender.emit_int(arg)
+ self.assertEqual(receiver.arg, arg)
-class QtSigLambda(UsesQCoreApplication):
- qapplication = True
+class QtSigLambda(UsesQApplication):
- def testNoArgs(self):
- '''Connecting a lambda to a signal without arguments'''
- proc = QProcess()
- dummy = Dummy()
- QObject.connect(proc, SIGNAL('started()'),
- lambda: setattr(dummy, 'called', True))
- proc.start(sys.executable, ['-c', '""'])
- proc.waitForFinished()
- self.assertTrue(dummy.called)
+ qapplication = True
def testWithArgs(self):
- '''Connecting a lambda to a signal with arguments'''
+ '''Connecting a lambda to a signal with and without arguments'''
proc = QProcess()
- dummy = Dummy()
- QObject.connect(proc, SIGNAL('finished(int)'),
- lambda x: setattr(dummy, 'called', x))
+ dummy = Receiver()
+ proc.started.connect(lambda: setattr(dummy, 'called', True))
+ proc.finished.connect(lambda x: setattr(dummy, 'exit_code', x))
+
proc.start(sys.executable, ['-c', '""'])
- proc.waitForFinished()
- self.assertEqual(dummy.called, proc.exitCode())
+ self.assertTrue(proc.waitForStarted())
+ self.assertTrue(proc.waitForFinished())
+
+ self.assertTrue(dummy.called)
+ self.assertEqual(dummy.exit_code, proc.exitCode())
+
+ def testRelease(self):
+ """PYSIDE-2646: Test whether main thread target slot lambda/methods
+ (and their captured objects) are released by the signal manager
+ after a while."""
+
+ def do_connect(sender):
+ receiver = Receiver()
+ sender.void_signal.connect(lambda: setattr(receiver, 'called', True))
+ return receiver
+
+ sender = Sender()
+ receiver = weakref.ref(do_connect(sender))
+ sender.emit_void()
+ self.assertTrue(receiver().called)
+ del sender
+ for i in range(3):
+ if not receiver():
+ break
+ QCoreApplication.processEvents()
+ self.assertFalse(receiver())
if __name__ == '__main__':
diff --git a/sources/pyside6/tests/signals/leaking_signal_test.py b/sources/pyside6/tests/signals/leaking_signal_test.py
index 3b16a3fb6..666ae7a13 100644
--- a/sources/pyside6/tests/signals/leaking_signal_test.py
+++ b/sources/pyside6/tests/signals/leaking_signal_test.py
@@ -1,35 +1,9 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
import unittest
-import weakref
from pathlib import Path
sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
@@ -46,7 +20,7 @@ class LeakingSignal(unittest.TestCase):
class Emitter(QObject):
my_signal = Signal(object)
- emitter = Emitter()
+ emitter = Emitter() # noqa: F841
if __name__ == '__main__':
diff --git a/sources/pyside6/tests/signals/multiple_connections_gui_test.py b/sources/pyside6/tests/signals/multiple_connections_gui_test.py
index 153ea1e81..295369b7d 100644
--- a/sources/pyside6/tests/signals/multiple_connections_gui_test.py
+++ b/sources/pyside6/tests/signals/multiple_connections_gui_test.py
@@ -1,34 +1,7 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
-from functools import partial
import os
-import random
import sys
import unittest
@@ -37,22 +10,16 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtCore import QObject, SIGNAL
-
-try:
- from PySide6.QtWidgets import QPushButton, QSpinBox
- hasQtGui = True
-except ImportError:
- hasQtGui = False
+from PySide6.QtWidgets import QPushButton, QSpinBox
from helper.basicpyslotcase import BasicPySlotCase
from helper.usesqapplication import UsesQApplication
-class MultipleSignalConnections(unittest.TestCase):
- '''Base class for multiple signal connection testing'''
+class QtGuiMultipleSlots(UsesQApplication):
+ '''Multiple connections to QtGui signals'''
- def run_many(self, sender, signal, emitter, receivers, args=None):
+ def run_many(self, signal, emitter, receivers, args=None):
"""Utility method to connect a list of receivers to a signal.
sender - QObject that will emit the signal
signal - string with the signal signature
@@ -66,7 +33,7 @@ class MultipleSignalConnections(unittest.TestCase):
for rec in receivers:
rec.setUp()
- QObject.connect(sender, SIGNAL(signal), rec.cb)
+ signal.connect(rec.cb)
rec.args = tuple(args)
emitter(*args)
@@ -74,24 +41,20 @@ class MultipleSignalConnections(unittest.TestCase):
for rec in receivers:
self.assertTrue(rec.called)
+ def testButtonClick(self):
+ """Multiple connections to QPushButton.clicked()"""
+ sender = QPushButton('button')
+ receivers = [BasicPySlotCase() for x in range(30)]
+ self.run_many(sender.clicked, sender.click, receivers)
-if hasQtGui:
- class QtGuiMultipleSlots(UsesQApplication, MultipleSignalConnections):
- '''Multiple connections to QtGui signals'''
-
- def testButtonClick(self):
- """Multiple connections to QPushButton.clicked()"""
- sender = QPushButton('button')
- receivers = [BasicPySlotCase() for x in range(30)]
- self.run_many(sender, 'clicked()', sender.click, receivers)
+ def testSpinBoxValueChanged(self):
+ """Multiple connections to QSpinBox.valueChanged(int)"""
+ sender = QSpinBox()
+ # FIXME if number of receivers if higher than 50, segfaults
+ receivers = [BasicPySlotCase() for x in range(10)]
+ self.run_many(sender.valueChanged, sender.setValue,
+ receivers, (1,))
- def testSpinBoxValueChanged(self):
- """Multiple connections to QSpinBox.valueChanged(int)"""
- sender = QSpinBox()
- # FIXME if number of receivers if higher than 50, segfaults
- receivers = [BasicPySlotCase() for x in range(10)]
- self.run_many(sender, 'valueChanged(int)', sender.setValue,
- receivers, (1,))
if __name__ == '__main__':
unittest.main()
diff --git a/sources/pyside6/tests/signals/multiple_connections_test.py b/sources/pyside6/tests/signals/multiple_connections_test.py
index 75f8ddc34..233851797 100644
--- a/sources/pyside6/tests/signals/multiple_connections_test.py
+++ b/sources/pyside6/tests/signals/multiple_connections_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
from functools import partial
import os
@@ -36,16 +11,16 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtCore import QObject, SIGNAL, QProcess
+from PySide6.QtCore import QObject, Signal, QProcess
from helper.basicpyslotcase import BasicPySlotCase
-from helper.usesqcoreapplication import UsesQCoreApplication
+from helper.usesqapplication import UsesQApplication
class MultipleSignalConnections(unittest.TestCase):
'''Base class for multiple signal connection testing'''
- def run_many(self, sender, signal, emitter, receivers, args=None):
+ def run_many(self, signal, emitter, receivers, args=None):
"""Utility method to connect a list of receivers to a signal.
sender - QObject that will emit the signal
signal - string with the signal signature
@@ -58,7 +33,7 @@ class MultipleSignalConnections(unittest.TestCase):
args = tuple()
for rec in receivers:
rec.setUp()
- self.assertTrue(QObject.connect(sender, SIGNAL(signal), rec.cb))
+ self.assertTrue(signal.connect(rec.cb))
rec.args = tuple(args)
emitter(*args)
@@ -67,22 +42,23 @@ class MultipleSignalConnections(unittest.TestCase):
self.assertTrue(rec.called)
-class PythonMultipleSlots(UsesQCoreApplication, MultipleSignalConnections):
+class PythonMultipleSlots(UsesQApplication, MultipleSignalConnections):
'''Multiple connections to python signals'''
def testPythonSignal(self):
"""Multiple connections to a python signal (short-circuit)"""
- class Dummy(QObject):
- pass
+ class Sender(QObject):
- sender = Dummy()
+ foobar = Signal(int)
+
+ sender = Sender()
receivers = [BasicPySlotCase() for x in range(10)]
- self.run_many(sender, 'foobar(int)', partial(sender.emit,
- SIGNAL('foobar(int)')), receivers, (0, ))
+ self.run_many(sender.foobar, partial(sender.foobar.emit),
+ receivers, (0, ))
-class QProcessMultipleSlots(UsesQCoreApplication, MultipleSignalConnections):
+class QProcessMultipleSlots(UsesQApplication, MultipleSignalConnections):
'''Multiple connections to QProcess signals'''
def testQProcessStarted(self):
@@ -92,9 +68,10 @@ class QProcessMultipleSlots(UsesQCoreApplication, MultipleSignalConnections):
def start_proc(*args):
sender.start(sys.executable, ['-c', '""'])
- sender.waitForFinished()
+ self.assertTrue(sender.waitForStarted())
+ self.assertTrue(sender.waitForFinished())
- self.run_many(sender, 'started()', start_proc, receivers)
+ self.run_many(sender.started, start_proc, receivers)
def testQProcessFinished(self):
'''Multiple connections to QProcess.finished(int)'''
@@ -103,9 +80,10 @@ class QProcessMultipleSlots(UsesQCoreApplication, MultipleSignalConnections):
def start_proc(*args):
sender.start(sys.executable, ['-c', '""'])
- sender.waitForFinished()
+ self.assertTrue(sender.waitForStarted())
+ self.assertTrue(sender.waitForFinished())
- self.run_many(sender, 'finished(int)', start_proc, receivers, (0,))
+ self.run_many(sender.finished, start_proc, receivers, (0, QProcess.ExitStatus.NormalExit))
if __name__ == '__main__':
diff --git a/sources/pyside6/tests/signals/pysignal_test.py b/sources/pyside6/tests/signals/pysignal_test.py
index cd7e5f145..d6f44edf8 100644
--- a/sources/pyside6/tests/signals/pysignal_test.py
+++ b/sources/pyside6/tests/signals/pysignal_test.py
@@ -1,31 +1,7 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+import gc
import os
import sys
import unittest
@@ -35,31 +11,31 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtCore import QObject, SIGNAL, SLOT, Qt
-
-try:
- from PySide6.QtWidgets import QSpinBox, QApplication, QWidget
- hasQtGui = True
-except ImportError:
- hasQtGui = False
+from PySide6.QtCore import QObject, Signal, Qt
+from PySide6.QtWidgets import QSpinBox, QApplication, QWidget # noqa: F401
from helper.usesqapplication import UsesQApplication
-class Dummy(QObject):
- """Dummy class used in this test."""
+TEST_LIST = ["item1", "item2", "item3"]
+
+
+class Sender(QObject):
+ """Sender class used in this test."""
+
+ foo = Signal()
+ foo_int = Signal(int)
+ dummy = Signal(str)
+ dummy2 = Signal(str, list)
+
def __init__(self, parent=None):
- QObject.__init__(self, parent)
+ super().__init__(parent)
def callDummy(self):
- self.emit(SIGNAL("dummy(PyObject)"), "PyObject")
+ self.dummy.emit("PyObject")
def callDummy2(self):
- lst = []
- lst.append("item1")
- lst.append("item2")
- lst.append("item3")
- self.emit(SIGNAL("dummy2(PyObject, PyObject)"), "PyObject0", lst)
+ self.dummy2.emit("PyObject0", TEST_LIST)
class PyObjectType(UsesQApplication):
@@ -70,35 +46,33 @@ class PyObjectType(UsesQApplication):
def mySlot2(self, arg0, arg1):
self.assertEqual(arg0, "PyObject0")
- self.assertEqual(arg1[0], "item1")
- self.assertEqual(arg1[1], "item2")
- self.assertEqual(arg1[2], "item3")
+ self.assertEqual(arg1, TEST_LIST)
self.callCount += 1
if self.running:
self.app.quit()
def setUp(self):
- super(PyObjectType, self).setUp()
+ super().setUp()
self.callCount = 0
self.running = False
def testWithOneArg(self):
- o = Dummy()
- o.connect(SIGNAL("dummy(PyObject)"), self.mySlot)
+ o = Sender()
+ o.dummy.connect(self.mySlot)
o.callDummy()
self.assertEqual(self.callCount, 1)
def testWithTwoArg(self):
- o = Dummy()
- o.connect(SIGNAL("dummy2(PyObject,PyObject)"), self.mySlot2)
+ o = Sender()
+ o.dummy2.connect(self.mySlot2)
o.callDummy2()
self.assertEqual(self.callCount, 1)
def testAsyncSignal(self):
self.called = False
self.running = True
- o = Dummy()
- o.connect(SIGNAL("dummy2(PyObject,PyObject)"), self.mySlot2, Qt.QueuedConnection)
+ o = Sender()
+ o.dummy2.connect(self.mySlot2, Qt.QueuedConnection)
o.callDummy2()
self.app.exec()
self.assertEqual(self.callCount, 1)
@@ -106,8 +80,8 @@ class PyObjectType(UsesQApplication):
def testTwice(self):
self.called = False
self.running = True
- o = Dummy()
- o.connect(SIGNAL("dummy2(PyObject,PyObject)"), self.mySlot2, Qt.QueuedConnection)
+ o = Sender()
+ o.dummy2.connect(self.mySlot2, Qt.QueuedConnection)
o.callDummy2()
o.callDummy2()
self.app.exec()
@@ -121,8 +95,10 @@ class PythonSigSlot(unittest.TestCase):
def tearDown(self):
try:
del self.args
- except:
+ except: # noqa: E722
pass
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
def callback(self, *args):
if tuple(self.args) == args:
@@ -130,94 +106,98 @@ class PythonSigSlot(unittest.TestCase):
def testNoArgs(self):
"""Python signal and slots without arguments"""
- obj1 = Dummy()
+ obj1 = Sender()
- QObject.connect(obj1, SIGNAL('foo()'), self.callback)
+ obj1.foo.connect(self.callback)
self.args = tuple()
- obj1.emit(SIGNAL('foo()'), *self.args)
+ obj1.foo.emit(*self.args)
self.assertTrue(self.called)
def testWithArgs(self):
"""Python signal and slots with integer arguments"""
- obj1 = Dummy()
+ obj1 = Sender()
- QObject.connect(obj1, SIGNAL('foo(int)'), self.callback)
+ obj1.foo_int.connect(self.callback)
self.args = (42,)
- obj1.emit(SIGNAL('foo(int)'), *self.args)
+ obj1.foo_int.emit(*self.args)
self.assertTrue(self.called)
def testDisconnect(self):
- obj1 = Dummy()
+ obj1 = Sender()
- QObject.connect(obj1, SIGNAL('foo(int)'), self.callback)
- QObject.disconnect(obj1, SIGNAL('foo(int)'), self.callback)
+ obj1.foo_int.connect(self.callback)
+ self.assertTrue(obj1.foo_int.disconnect(self.callback))
self.args = (42, )
- obj1.emit(SIGNAL('foo(int)'), *self.args)
+ obj1.foo_int.emit(*self.args)
self.assertTrue(not self.called)
-if hasQtGui:
- class SpinBoxPySignal(UsesQApplication):
- """Tests the connection of python signals to QSpinBox qt slots."""
+class SpinBoxPySignal(UsesQApplication):
+ """Tests the connection of python signals to QSpinBox qt slots."""
- def setUp(self):
- super(SpinBoxPySignal, self).setUp()
- self.obj = Dummy()
- self.spin = QSpinBox()
- self.spin.setValue(0)
+ def setUp(self):
+ super().setUp()
+ self.obj = Sender()
+ self.spin = QSpinBox()
+ self.spin.setValue(0)
- def tearDown(self):
- super(SpinBoxPySignal, self).tearDown()
- del self.obj
- del self.spin
+ def tearDown(self):
+ super().tearDown()
+ del self.obj
+ del self.spin
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
+
+ def testValueChanged(self):
+ """Emission of a python signal to QSpinBox setValue(int)"""
- def testValueChanged(self):
- """Emission of a python signal to QSpinBox setValue(int)"""
- QObject.connect(self.obj, SIGNAL('dummy(int)'), self.spin, SLOT('setValue(int)'))
- self.assertEqual(self.spin.value(), 0)
+ self.obj.foo_int.connect(self.spin.setValue)
+ self.assertEqual(self.spin.value(), 0)
- self.obj.emit(SIGNAL('dummy(int)'), 4)
- self.assertEqual(self.spin.value(), 4)
+ self.obj.foo_int.emit(4)
+ self.assertEqual(self.spin.value(), 4)
- def testValueChangedMultiple(self):
- """Multiple emissions of a python signal to QSpinBox setValue(int)"""
- QObject.connect(self.obj, SIGNAL('dummy(int)'), self.spin, SLOT('setValue(int)'))
- self.assertEqual(self.spin.value(), 0)
+ def testValueChangedMultiple(self):
+ """Multiple emissions of a python signal to QSpinBox setValue(int)"""
+ self.obj.foo_int.connect(self.spin.setValue)
+ self.assertEqual(self.spin.value(), 0)
- self.obj.emit(SIGNAL('dummy(int)'), 4)
- self.assertEqual(self.spin.value(), 4)
+ self.obj.foo_int.emit(4)
+ self.assertEqual(self.spin.value(), 4)
- self.obj.emit(SIGNAL('dummy(int)'), 77)
- self.assertEqual(self.spin.value(), 77)
+ self.obj.foo_int.emit(77)
+ self.assertEqual(self.spin.value(), 77)
-if hasQtGui:
- class WidgetPySignal(UsesQApplication):
- """Tests the connection of python signals to QWidget qt slots."""
+class WidgetPySignal(UsesQApplication):
+ """Tests the connection of python signals to QWidget qt slots."""
- def setUp(self):
- super(WidgetPySignal, self).setUp()
- self.obj = Dummy()
- self.widget = QWidget()
+ def setUp(self):
+ super(WidgetPySignal, self).setUp()
+ self.obj = Sender()
+ self.widget = QWidget()
+
+ def tearDown(self):
+ super(WidgetPySignal, self).tearDown()
+ del self.obj
+ del self.widget
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
- def tearDown(self):
- super(WidgetPySignal, self).tearDown()
- del self.obj
- del self.widget
+ def testShow(self):
+ """Emission of a python signal to QWidget slot show()"""
+ self.widget.hide()
- def testShow(self):
- """Emission of a python signal to QWidget slot show()"""
- self.widget.hide()
+ self.obj.foo.connect(self.widget.show)
+ self.assertTrue(not self.widget.isVisible())
- QObject.connect(self.obj, SIGNAL('dummy()'), self.widget, SLOT('show()'))
- self.assertTrue(not self.widget.isVisible())
+ self.obj.foo.emit()
+ self.assertTrue(self.widget.isVisible())
- self.obj.emit(SIGNAL('dummy()'))
- self.assertTrue(self.widget.isVisible())
if __name__ == '__main__':
unittest.main()
diff --git a/sources/pyside6/tests/signals/qobject_callable_connect_test.py b/sources/pyside6/tests/signals/qobject_callable_connect_test.py
new file mode 100644
index 000000000..a7a26d6f5
--- /dev/null
+++ b/sources/pyside6/tests/signals/qobject_callable_connect_test.py
@@ -0,0 +1,45 @@
+# Copyright (C) 2024 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from PySide6.QtCore import QObject, Signal
+
+
+class Emitter(QObject):
+ sig = Signal(int)
+
+
+class CallableObject(QObject):
+ called = False
+ x = 0
+
+ def __call__(self, x: int):
+ self.called = True
+ self.x = x
+
+
+class QObjectCallableConnectTest(unittest.TestCase):
+ '''Test case for QObject.connect() when the callable is also a QObject.'''
+
+ def testCallableConnect(self):
+ emitter = Emitter()
+ obj = CallableObject()
+ x = 1
+
+ emitter.sig.connect(obj)
+ emitter.sig.emit(x)
+
+ self.assertTrue(obj.called)
+ self.assertEqual(obj.x, x)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/signals/qobject_destroyed_test.py b/sources/pyside6/tests/signals/qobject_destroyed_test.py
index f722e4c2a..a21762b41 100644
--- a/sources/pyside6/tests/signals/qobject_destroyed_test.py
+++ b/sources/pyside6/tests/signals/qobject_destroyed_test.py
@@ -1,31 +1,7 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+import gc
import os
import sys
import unittest
@@ -35,7 +11,7 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtCore import QObject, SIGNAL
+from PySide6.QtCore import QObject
class QObjectDestroyed(unittest.TestCase):
@@ -52,6 +28,10 @@ class QObjectDestroyed(unittest.TestCase):
obj = QObject()
obj.destroyed.connect(self.destroyed_cb)
del obj
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
+ # PYSIDE-535: Why do I need to do it twice, here?
+ gc.collect()
self.assertTrue(self.called)
diff --git a/sources/pyside6/tests/signals/qobject_receivers_test.py b/sources/pyside6/tests/signals/qobject_receivers_test.py
index e444413e3..9839255ac 100644
--- a/sources/pyside6/tests/signals/qobject_receivers_test.py
+++ b/sources/pyside6/tests/signals/qobject_receivers_test.py
@@ -1,35 +1,9 @@
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
''' Test case for QObject.receivers()'''
+import gc
import os
import sys
import unittest
@@ -63,6 +37,8 @@ class TestQObjectReceivers(unittest.TestCase):
del receiver2
del receiver1
del sender
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
def testPySlots(self):
sender = QObject()
@@ -73,6 +49,8 @@ class TestQObjectReceivers(unittest.TestCase):
self.assertEqual(sender.receivers(SIGNAL("destroyed()")), 2)
del sender
del receiver
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
def testPySignals(self):
sender = QObject()
diff --git a/sources/pyside6/tests/signals/qobject_sender_test.py b/sources/pyside6/tests/signals/qobject_sender_test.py
index 60eedabc5..9c1121eb8 100644
--- a/sources/pyside6/tests/signals/qobject_sender_test.py
+++ b/sources/pyside6/tests/signals/qobject_sender_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/python
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for QObject.sender()'''
@@ -40,8 +13,8 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtCore import QCoreApplication, QObject, QTimer, SIGNAL
-from helper.usesqcoreapplication import UsesQCoreApplication
+from PySide6.QtCore import QCoreApplication, QObject, QTimer, Signal
+from helper.usesqapplication import UsesQApplication
class ExtQTimer(QTimer):
@@ -49,6 +22,10 @@ class ExtQTimer(QTimer):
super().__init__()
+class Sender(QObject):
+ foo = Signal()
+
+
class Receiver(QObject):
def __init__(self):
super().__init__()
@@ -64,10 +41,10 @@ class ObjectSenderTest(unittest.TestCase):
'''Test case for QObject.sender() method.'''
def testSenderPythonSignal(self):
- sender = QObject()
+ sender = Sender()
recv = Receiver()
- QObject.connect(sender, SIGNAL('foo()'), recv.callback)
- sender.emit(SIGNAL('foo()'))
+ sender.foo.connect(recv.callback)
+ sender.foo.emit()
self.assertEqual(sender, recv.the_sender)
@@ -75,14 +52,14 @@ class ObjectSenderCheckOnReceiverTest(unittest.TestCase):
'''Test case for QObject.sender() method, this one tests the equality on the Receiver object.'''
def testSenderPythonSignal(self):
- sender = QObject()
+ sender = Sender()
recv = Receiver()
- QObject.connect(sender, SIGNAL('foo()'), recv.callback)
- sender.emit(SIGNAL('foo()'))
+ sender.foo.connect(recv.callback)
+ sender.foo.emit()
self.assertEqual(sender, recv.the_sender)
-class ObjectSenderWithQAppTest(UsesQCoreApplication):
+class ObjectSenderWithQAppTest(UsesQApplication):
'''Test case for QObject.sender() method with QApplication.'''
def testSenderCppSignal(self):
@@ -100,6 +77,12 @@ class ObjectSenderWithQAppTest(UsesQCoreApplication):
self.app.exec()
self.assertTrue(isinstance(recv.the_sender, QObject))
+ def testSenderCppSignalSingleShotTimerWithContext(self):
+ recv = Receiver()
+ QTimer.singleShot(10, recv, recv.callback)
+ self.app.exec()
+ self.assertTrue(isinstance(recv.the_sender, QObject))
+
def testSenderCppSignalWithPythonExtendedClass(self):
sender = ExtQTimer()
recv = Receiver()
@@ -109,7 +92,7 @@ class ObjectSenderWithQAppTest(UsesQCoreApplication):
self.assertEqual(sender, recv.the_sender)
-class ObjectSenderWithQAppCheckOnReceiverTest(UsesQCoreApplication):
+class ObjectSenderWithQAppCheckOnReceiverTest(UsesQApplication):
'''Test case for QObject.sender() method with QApplication.'''
def testSenderCppSignal(self):
@@ -132,4 +115,3 @@ class ObjectSenderWithQAppCheckOnReceiverTest(UsesQCoreApplication):
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/pyside6/tests/signals/ref01_test.py b/sources/pyside6/tests/signals/ref01_test.py
index bce0e8264..1a62b2218 100644
--- a/sources/pyside6/tests/signals/ref01_test.py
+++ b/sources/pyside6/tests/signals/ref01_test.py
@@ -1,34 +1,8 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+import gc
import os
import sys
import unittest
@@ -48,6 +22,8 @@ class BoundAndUnboundSignalsTest(unittest.TestCase):
def tearDown(self):
del self.methods
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
def testUnboundSignal(self):
self.assertEqual(type(QObject.destroyed), Signal)
@@ -61,5 +37,3 @@ class BoundAndUnboundSignalsTest(unittest.TestCase):
if __name__ == '__main__':
unittest.main()
-
-
diff --git a/sources/pyside6/tests/signals/ref02_test.py b/sources/pyside6/tests/signals/ref02_test.py
index 922a50e46..54b6f4a52 100644
--- a/sources/pyside6/tests/signals/ref02_test.py
+++ b/sources/pyside6/tests/signals/ref02_test.py
@@ -1,34 +1,8 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+import gc
import os
import sys
import unittest
@@ -38,21 +12,23 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtCore import QCoreApplication, QTimeLine
-from helper.usesqcoreapplication import UsesQCoreApplication
+from PySide6.QtCore import QTimeLine
+from helper.usesqapplication import UsesQApplication
-class NativeSignalsTest(UsesQCoreApplication):
+class NativeSignalsTest(UsesQApplication):
def setUp(self):
- UsesQCoreApplication.setUp(self)
+ UsesQApplication.setUp(self)
self.called = False
self.timeline = QTimeLine(100)
def tearDown(self):
del self.called
del self.timeline
- UsesQCoreApplication.tearDown(self)
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
+ UsesQApplication.tearDown(self)
def testSignalWithIntArgument(self):
@@ -82,4 +58,3 @@ class NativeSignalsTest(UsesQCoreApplication):
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/pyside6/tests/signals/ref03_test.py b/sources/pyside6/tests/signals/ref03_test.py
index 8274c9439..c43c2e549 100644
--- a/sources/pyside6/tests/signals/ref03_test.py
+++ b/sources/pyside6/tests/signals/ref03_test.py
@@ -1,34 +1,8 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+import gc
import os
import sys
import unittest
@@ -48,6 +22,8 @@ class DisconnectSignalsTest(unittest.TestCase):
def tearDown(self):
del self.emitter
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
@unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testConnectionRefCount(self):
@@ -64,4 +40,3 @@ class DisconnectSignalsTest(unittest.TestCase):
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/pyside6/tests/signals/ref04_test.py b/sources/pyside6/tests/signals/ref04_test.py
index 9d3103ea7..fce801456 100644
--- a/sources/pyside6/tests/signals/ref04_test.py
+++ b/sources/pyside6/tests/signals/ref04_test.py
@@ -1,34 +1,8 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+import gc
import os
import sys
import unittest
@@ -58,6 +32,8 @@ class UserSignalTest(unittest.TestCase):
def tearDown(self):
del self.emitter
del self.counter
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
def testConnectEmitDisconnect(self):
@@ -77,17 +53,6 @@ class UserSignalTest(unittest.TestCase):
self.emitter.mySignal.emit()
self.assertEqual(self.counter, 2)
-# def testConnectWithConfigureMethod(self):
-#
-# def slot():
-# self.counter += 1
-#
-# self.emitter.pyqtConfigure(mySignal=slot)
-# self.assertEqual(self.counter, 0)
-# self.emitter.mySignal.emit()
-# self.assertEqual(self.counter, 1)
-
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/pyside6/tests/signals/ref05_test.py b/sources/pyside6/tests/signals/ref05_test.py
index 38c06ce1c..fb9debf39 100644
--- a/sources/pyside6/tests/signals/ref05_test.py
+++ b/sources/pyside6/tests/signals/ref05_test.py
@@ -1,34 +1,8 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+import gc
import os
import sys
import unittest
@@ -38,8 +12,8 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtCore import QObject, QCoreApplication, QTimeLine, Slot
-from helper.usesqcoreapplication import UsesQCoreApplication
+from PySide6.QtCore import QObject, QTimeLine, Slot
+from helper.usesqapplication import UsesQApplication
class ExtQObject(QObject):
@@ -53,17 +27,19 @@ class ExtQObject(QObject):
self.counter += 1
-class UserSlotTest(UsesQCoreApplication):
+class UserSlotTest(UsesQApplication):
def setUp(self):
- UsesQCoreApplication.setUp(self)
+ UsesQApplication.setUp(self)
self.receiver = ExtQObject()
self.timeline = QTimeLine(100)
def tearDown(self):
del self.timeline
del self.receiver
- UsesQCoreApplication.tearDown(self)
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
+ UsesQApplication.tearDown(self)
def testUserSlot(self):
self.timeline.setUpdateInterval(10)
@@ -80,4 +56,3 @@ class UserSlotTest(UsesQCoreApplication):
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/pyside6/tests/signals/ref06_test.py b/sources/pyside6/tests/signals/ref06_test.py
index c0d8c2a91..a827131db 100644
--- a/sources/pyside6/tests/signals/ref06_test.py
+++ b/sources/pyside6/tests/signals/ref06_test.py
@@ -1,34 +1,8 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+import gc
import os
import sys
import unittest
@@ -38,8 +12,8 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtCore import QObject, QCoreApplication, QTimeLine, Signal, Slot
-from helper.usesqcoreapplication import UsesQCoreApplication
+from PySide6.QtCore import QObject, QTimeLine, Signal, Slot
+from helper.usesqapplication import UsesQApplication
class ExtQObject(QObject):
@@ -54,17 +28,19 @@ class ExtQObject(QObject):
self.counter += 1
-class SignaltoSignalTest(UsesQCoreApplication):
+class SignaltoSignalTest(UsesQApplication):
def setUp(self):
- UsesQCoreApplication.setUp(self)
+ UsesQApplication.setUp(self)
self.receiver = ExtQObject()
self.timeline = QTimeLine(100)
def tearDown(self):
del self.timeline
del self.receiver
- UsesQCoreApplication.tearDown(self)
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
+ UsesQApplication.tearDown(self)
def testSignaltoSignal(self):
self.timeline.setUpdateInterval(10)
@@ -83,4 +59,3 @@ class SignaltoSignalTest(UsesQCoreApplication):
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/pyside6/tests/signals/segfault_proxyparent_test.py b/sources/pyside6/tests/signals/segfault_proxyparent_test.py
index 4a8dd0d19..cb0df0978 100644
--- a/sources/pyside6/tests/signals/segfault_proxyparent_test.py
+++ b/sources/pyside6/tests/signals/segfault_proxyparent_test.py
@@ -1,31 +1,7 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+import gc
import os
import sys
import unittest
@@ -35,7 +11,7 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtCore import QObject, SIGNAL
+from PySide6.QtCore import QObject, Signal
# Description of the problem
# After creating an PyObject that inherits from QObject, connecting it,
@@ -44,16 +20,19 @@ from PySide6.QtCore import QObject, SIGNAL
# Somehow the underlying QObject also points to the same position.
-# In PyQt4, the connection works fine with the same memory behavior,
-# so it looks like specific to SIP.
+class Sender(QObject):
+
+ bar = Signal(int)
-class Dummy(QObject):
def __init__(self, parent=None):
QObject.__init__(self, parent)
class Joe(QObject):
+
+ bar = Signal(int)
+
def __init__(self, parent=None):
QObject.__init__(self, parent)
@@ -68,8 +47,10 @@ class SegfaultCase(unittest.TestCase):
def tearDown(self):
try:
del self.args
- except:
+ except: # noqa: E722
pass
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
def callback(self, *args):
if tuple(self.args) == args:
@@ -77,20 +58,21 @@ class SegfaultCase(unittest.TestCase):
def testSegfault(self):
"""Regression: Segfault for qobjects in the same memory position."""
- obj = Dummy()
- QObject.connect(obj, SIGNAL('bar(int)'), self.callback)
+ obj = Sender()
+ obj.bar.connect(self.callback)
self.args = (33,)
- obj.emit(SIGNAL('bar(int)'), self.args[0])
+ obj.bar.emit(self.args[0])
self.assertTrue(self.called)
del obj
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
obj = Joe()
- QObject.connect(obj, SIGNAL('bar(int)'), self.callback)
+ obj.bar.connect(self.callback)
self.args = (33,)
- obj.emit(SIGNAL('bar(int)'), self.args[0])
+ obj.bar.emit(self.args[0])
self.assertTrue(self.called)
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/pyside6/tests/signals/self_connect_test.py b/sources/pyside6/tests/signals/self_connect_test.py
index 96189e315..08ca725f8 100644
--- a/sources/pyside6/tests/signals/self_connect_test.py
+++ b/sources/pyside6/tests/signals/self_connect_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/env python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Using self.connect(signal, method)'''
@@ -39,17 +13,27 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtCore import QObject, SIGNAL, SLOT
+from PySide6.QtCore import QObject, Slot
from PySide6.QtWidgets import QPushButton, QWidget
from helper.usesqapplication import UsesQApplication
+class Receiver(QObject):
+ def __init__(self, p=None):
+ super().__init__(p)
+ self.triggered = False
+
+ @Slot(bool, int)
+ def default_parameter_slot(self, bool_value, int_value=0):
+ self.triggered = True
+
+
class SelfConnect(UsesQApplication):
def testButtonClickClose(self):
button = QPushButton()
- button.connect(button, SIGNAL('clicked()'), SLOT('close()'))
+ button.clicked.connect(button.close)
button.show()
self.assertTrue(button.isVisible())
@@ -59,13 +43,22 @@ class SelfConnect(UsesQApplication):
def testWindowButtonClickClose(self):
button = QPushButton()
window = QWidget()
- window.connect(button, SIGNAL('clicked()'), SLOT('close()'))
+ button.clicked.connect(window.close)
window.show()
self.assertTrue(window.isVisible())
button.click()
self.assertTrue(not window.isVisible())
+ def testDefaultParameters(self):
+ button = QPushButton()
+ receiver = Receiver(button)
+ button.clicked.connect(receiver.default_parameter_slot)
+ button.clicked.connect(button.close)
+ button.show()
+ button.click()
+ self.assertTrue(receiver.triggered)
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/pyside6/tests/signals/short_circuit_test.py b/sources/pyside6/tests/signals/short_circuit_test.py
index d0f45891d..1ad4bc24c 100644
--- a/sources/pyside6/tests/signals/short_circuit_test.py
+++ b/sources/pyside6/tests/signals/short_circuit_test.py
@@ -1,31 +1,7 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+import gc
import os
import sys
import unittest
@@ -35,11 +11,17 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtCore import QObject, SIGNAL, SLOT
+from PySide6.QtCore import QObject, Signal
-class Dummy(QObject):
- """Dummy class used in this test."""
+class Sender(QObject):
+ """Sender class used in this test."""
+
+ foo = Signal()
+ foo_int = Signal(int)
+ foo_int_int_string = Signal(int, int, str)
+ foo_int_qobject = Signal(int, QObject)
+
def __init__(self, parent=None):
QObject.__init__(self, parent)
@@ -51,8 +33,10 @@ class ShortCircuitSignals(unittest.TestCase):
def tearDown(self):
try:
del self.args
- except:
+ except: # noqa: E722
pass
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
def callback(self, *args):
if tuple(self.args) == args:
@@ -60,40 +44,40 @@ class ShortCircuitSignals(unittest.TestCase):
def testNoArgs(self):
"""Short circuit signal without arguments"""
- obj1 = Dummy()
- QObject.connect(obj1, SIGNAL('foo()'), self.callback)
+ obj1 = Sender()
+ obj1.foo.connect(self.callback)
self.args = tuple()
- obj1.emit(SIGNAL('foo()'), *self.args)
+ obj1.foo.emit(*self.args)
self.assertTrue(self.called)
def testWithArgs(self):
"""Short circuit signal with integer arguments"""
- obj1 = Dummy()
+ obj1 = Sender()
- QObject.connect(obj1, SIGNAL('foo(int)'), self.callback)
+ obj1.foo_int.connect(self.callback)
self.args = (42,)
- obj1.emit(SIGNAL('foo(int)'), *self.args)
+ obj1.foo_int.emit(*self.args)
self.assertTrue(self.called)
def testMultipleArgs(self):
"""Short circuit signal with multiple arguments"""
- obj1 = Dummy()
+ obj1 = Sender()
- QObject.connect(obj1, SIGNAL('foo(int,int,QString)'), self.callback)
+ obj1.foo_int_int_string.connect(self.callback)
self.args = (42, 33, 'char')
- obj1.emit(SIGNAL('foo(int,int,QString)'), *self.args)
+ obj1.foo_int_int_string.emit(*self.args)
self.assertTrue(self.called)
def testComplexArgs(self):
"""Short circuit signal with complex arguments"""
- obj1 = Dummy()
+ obj1 = Sender()
- QObject.connect(obj1, SIGNAL('foo(int,QObject*)'), self.callback)
+ obj1.foo_int_qobject.connect(self.callback)
self.args = (42, obj1)
- obj1.emit(SIGNAL('foo(int,QObject*)'), *self.args)
+ obj1.foo_int_qobject.emit(*self.args)
self.assertTrue(self.called)
diff --git a/sources/pyside6/tests/signals/signal2signal_connect_test.py b/sources/pyside6/tests/signals/signal2signal_connect_test.py
index 05a6b6e72..31129f7a1 100644
--- a/sources/pyside6/tests/signals/signal2signal_connect_test.py
+++ b/sources/pyside6/tests/signals/signal2signal_connect_test.py
@@ -1,35 +1,9 @@
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
''' Test case for signal to signal connections.'''
+import gc
import os
import sys
import unittest
@@ -39,7 +13,20 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtCore import QObject, SIGNAL
+from PySide6.QtCore import QObject, Signal
+
+
+class Sender(QObject):
+
+ mysignal_int = Signal(int)
+ mysignal_int_int = Signal(int, int)
+ mysignal_string = Signal(str)
+
+
+class Forwarder(Sender):
+
+ forward = Signal()
+ forward_qobject = Signal(QObject)
def cute_slot():
@@ -51,8 +38,8 @@ class TestSignal2SignalConnect(unittest.TestCase):
def setUp(self):
# Set up the basic resources needed
- self.sender = QObject()
- self.forwarder = QObject()
+ self.sender = Sender()
+ self.forwarder = Forwarder()
self.args = None
self.called = False
@@ -60,13 +47,15 @@ class TestSignal2SignalConnect(unittest.TestCase):
# Delete used resources
try:
del self.sender
- except:
+ except: # noqa: E722
pass
try:
del self.forwarder
- except:
+ except: # noqa: E722
pass
del self.args
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
def callback_noargs(self):
# Default callback without arguments
@@ -87,54 +76,46 @@ class TestSignal2SignalConnect(unittest.TestCase):
raise TypeError("Invalid arguments")
def testSignalWithoutArguments(self):
- QObject.connect(self.sender, SIGNAL("destroyed()"),
- self.forwarder, SIGNAL("forward()"))
- QObject.connect(self.forwarder, SIGNAL("forward()"),
- self.callback_noargs)
+ self.sender.destroyed.connect(self.forwarder.forward)
+ self.forwarder.forward.connect(self.callback_noargs)
del self.sender
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertTrue(self.called)
def testSignalWithOnePrimitiveTypeArgument(self):
- QObject.connect(self.sender, SIGNAL("mysignal(int)"),
- self.forwarder, SIGNAL("mysignal(int)"))
- QObject.connect(self.forwarder, SIGNAL("mysignal(int)"),
- self.callback_args)
+ self.sender.mysignal_int.connect(self.forwarder.mysignal_int)
+ self.forwarder.mysignal_int.connect(self.callback_args)
self.args = (19,)
- self.sender.emit(SIGNAL('mysignal(int)'), *self.args)
+ self.sender.mysignal_int.emit(*self.args)
self.assertTrue(self.called)
def testSignalWithMultiplePrimitiveTypeArguments(self):
- QObject.connect(self.sender, SIGNAL("mysignal(int,int)"),
- self.forwarder, SIGNAL("mysignal(int,int)"))
- QObject.connect(self.forwarder, SIGNAL("mysignal(int,int)"),
- self.callback_args)
+ self.sender.mysignal_int_int.connect(self.forwarder.mysignal_int_int)
+ self.forwarder.mysignal_int_int.connect(self.callback_args)
self.args = (23, 29)
- self.sender.emit(SIGNAL('mysignal(int,int)'), *self.args)
+ self.sender.mysignal_int_int.emit(*self.args)
self.assertTrue(self.called)
def testSignalWithOneStringArgument(self):
- QObject.connect(self.sender, SIGNAL("mysignal(QString)"),
- self.forwarder, SIGNAL("mysignal(QString)"))
- QObject.connect(self.forwarder, SIGNAL("mysignal(QString)"),
- self.callback_args)
+ self.sender.mysignal_string.connect(self.forwarder.mysignal_string)
+ self.forwarder.mysignal_string.connect(self.callback_args)
self.args = ('myargument',)
- self.sender.emit(SIGNAL('mysignal(QString)'), *self.args)
+ self.sender.mysignal_string.emit(*self.args)
self.assertTrue(self.called)
def testSignalWithOneQObjectArgument(self):
- QObject.connect(self.sender, SIGNAL('destroyed(QObject*)'),
- self.forwarder, SIGNAL('forward(QObject*)'))
- QObject.connect(self.forwarder, SIGNAL('forward(QObject*)'),
- self.callback_qobject)
+ self.sender.destroyed.connect(self.forwarder.forward_qobject)
+ self.forwarder.forward_qobject.connect(self.callback_qobject)
obj_name = 'sender'
self.sender.setObjectName(obj_name)
self.args = (obj_name, )
del self.sender
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertTrue(self.called)
if __name__ == '__main__':
unittest.main()
-
-
diff --git a/sources/pyside6/tests/signals/signal_across_threads.py b/sources/pyside6/tests/signals/signal_across_threads.py
index 2a3302655..91b1ca986 100644
--- a/sources/pyside6/tests/signals/signal_across_threads.py
+++ b/sources/pyside6/tests/signals/signal_across_threads.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test case for PYSIDE-1354: Ensure that slots are invoked from the receiver's
thread context when using derived classes (and thus, a global receiver).'''
@@ -39,7 +14,7 @@ from init_paths import init_test_paths
init_test_paths(False)
from PySide6.QtCore import QObject, QThread, QTimer, Slot
-from helper.usesqcoreapplication import UsesQCoreApplication
+from helper.usesqapplication import UsesQApplication
class ReceiverBase(QObject):
@@ -64,9 +39,9 @@ class TestThread(QThread):
pass
-class SignalAcrossThreads(UsesQCoreApplication):
+class SignalAcrossThreads(UsesQApplication):
def setUp(self):
- UsesQCoreApplication.setUp(self)
+ UsesQApplication.setUp(self)
self._timer_tick = 0
self._timer = QTimer()
self._timer.setInterval(20)
@@ -74,7 +49,7 @@ class SignalAcrossThreads(UsesQCoreApplication):
self._worker_thread = TestThread()
def tearDown(self):
- UsesQCoreApplication.tearDown(self)
+ UsesQApplication.tearDown(self)
@Slot()
def _control_test(self):
diff --git a/sources/pyside6/tests/signals/signal_autoconnect_test.py b/sources/pyside6/tests/signals/signal_autoconnect_test.py
index 6c95aa74c..51d1cea3a 100644
--- a/sources/pyside6/tests/signals/signal_autoconnect_test.py
+++ b/sources/pyside6/tests/signals/signal_autoconnect_test.py
@@ -1,32 +1,5 @@
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -54,7 +27,7 @@ class MyObject(QWidget):
class AutoConnectionTest(unittest.TestCase):
def testConnection(self):
- app = QApplication([])
+ app = QApplication([]) # noqa: F841
win = MyObject()
btn = QPushButton("click", win)
diff --git a/sources/pyside6/tests/signals/signal_connectiontype_support_test.py b/sources/pyside6/tests/signals/signal_connectiontype_support_test.py
index 23ad6a5c5..0a69c1e02 100644
--- a/sources/pyside6/tests/signals/signal_connectiontype_support_test.py
+++ b/sources/pyside6/tests/signals/signal_connectiontype_support_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -35,13 +10,16 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtCore import QObject, SIGNAL, Qt
+from PySide6.QtCore import QObject, Signal, Qt
-class Dummy(QObject):
+class Sender(QObject):
"""Dummy class used in this test."""
+
+ foo = Signal()
+
def __init__(self, parent=None):
- QObject.__init__(self, parent)
+ super().__init__(parent)
class TestConnectionTypeSupport(unittest.TestCase):
@@ -51,11 +29,11 @@ class TestConnectionTypeSupport(unittest.TestCase):
def testNoArgs(self):
"""Connect signal using a Qt.ConnectionType as argument"""
- obj1 = Dummy()
+ obj1 = Sender()
- QObject.connect(obj1, SIGNAL('foo()'), self.callback, Qt.DirectConnection)
+ obj1.foo.connect(self.callback, Qt.DirectConnection)
self.args = tuple()
- obj1.emit(SIGNAL('foo()'), *self.args)
+ obj1.foo.emit(*self.args)
self.assertTrue(self.called)
diff --git a/sources/pyside6/tests/signals/signal_emission_gui_test.py b/sources/pyside6/tests/signals/signal_emission_gui_test.py
index cf9ddb543..5a49b9d12 100644
--- a/sources/pyside6/tests/signals/signal_emission_gui_test.py
+++ b/sources/pyside6/tests/signals/signal_emission_gui_test.py
@@ -1,35 +1,10 @@
#!/usr/bin/env python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
"""Tests covering signal emission and receiving to python slots"""
+import gc
import os
import sys
import unittest
@@ -39,110 +14,104 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtCore import QObject, SIGNAL, SLOT
-
-try:
- from PySide6.QtWidgets import QSpinBox, QPushButton
- hasQtGui = True
-except ImportError:
- hasQtGui = False
+from PySide6.QtWidgets import QSpinBox, QPushButton
from helper.basicpyslotcase import BasicPySlotCase
from helper.usesqapplication import UsesQApplication
-if hasQtGui:
- class ButtonPySlot(UsesQApplication, BasicPySlotCase):
- """Tests the connection of python slots to QPushButton signals"""
-
- def testButtonClicked(self):
- """Connection of a python slot to QPushButton.clicked()"""
- button = QPushButton('Mylabel')
- button.clicked.connect(self.cb)
- self.args = tuple()
- button.emit(SIGNAL('clicked(bool)'), False)
- self.assertTrue(self.called)
-
- def testButtonClick(self):
- """Indirect qt signal emission using the QPushButton.click() method """
- button = QPushButton('label')
- button.clicked.connect(self.cb)
- self.args = tuple()
- button.click()
- self.assertTrue(self.called)
-
-
-if hasQtGui:
- class SpinBoxPySlot(UsesQApplication, BasicPySlotCase):
- """Tests the connection of python slots to QSpinBox signals"""
-
- def setUp(self):
- super(SpinBoxPySlot, self).setUp()
- self.spin = QSpinBox()
-
- def tearDown(self):
- del self.spin
- super(SpinBoxPySlot, self).tearDown()
-
- def testSpinBoxValueChanged(self):
- """Connection of a python slot to QSpinBox.valueChanged(int)"""
- self.spin.valueChanged.connect(self.cb)
- self.args = [3]
- self.spin.emit(SIGNAL('valueChanged(int)'), *self.args)
- self.assertTrue(self.called)
-
- def testSpinBoxValueChangedImplicit(self):
- """Indirect qt signal emission using QSpinBox.setValue(int)"""
- self.spin.valueChanged.connect(self.cb)
- self.args = [42]
- self.spin.setValue(self.args[0])
- self.assertTrue(self.called)
-
- def atestSpinBoxValueChangedFewArgs(self):
- """Emission of signals with fewer arguments than needed"""
- # XXX: PyQt4 crashes on the assertRaises
- self.spin.valueChanged.connect(self.cb)
- self.args = (554,)
- self.assertRaises(TypeError, self.spin.emit, SIGNAL('valueChanged(int)'))
-
-if hasQtGui:
- class QSpinBoxQtSlots(UsesQApplication):
- """Tests the connection to QSpinBox qt slots"""
-
- qapplication = True
-
- def testSetValueIndirect(self):
- """Indirect signal emission: QSpinBox using valueChanged(int)/setValue(int)"""
- spinSend = QSpinBox()
- spinRec = QSpinBox()
-
- spinRec.setValue(5)
-
- spinSend.valueChanged.connect(spinRec.setValue)
- self.assertEqual(spinRec.value(), 5)
- spinSend.setValue(3)
- self.assertEqual(spinRec.value(), 3)
- self.assertEqual(spinSend.value(), 3)
-
- def testSetValue(self):
- """Direct signal emission: QSpinBox using valueChanged(int)/setValue(int)"""
- spinSend = QSpinBox()
- spinRec = QSpinBox()
-
- spinRec.setValue(5)
- spinSend.setValue(42)
-
- spinSend.valueChanged.connect(spinRec.setValue)
- self.assertEqual(spinRec.value(), 5)
- self.assertEqual(spinSend.value(), 42)
- spinSend.emit(SIGNAL('valueChanged(int)'), 3)
-
- self.assertEqual(spinRec.value(), 3)
- # Direct emission shouldn't change the value of the emitter
- self.assertEqual(spinSend.value(), 42)
-
- spinSend.emit(SIGNAL('valueChanged(int)'), 66)
- self.assertEqual(spinRec.value(), 66)
- self.assertEqual(spinSend.value(), 42)
+
+class ButtonPySlot(UsesQApplication, BasicPySlotCase):
+ """Tests the connection of python slots to QPushButton signals"""
+
+ def testButtonClicked(self):
+ """Connection of a python slot to QPushButton.clicked()"""
+ button = QPushButton('Mylabel')
+ button.clicked.connect(self.cb)
+ self.args = tuple()
+ button.clicked.emit()
+ self.assertTrue(self.called)
+
+ def testButtonClick(self):
+ """Indirect qt signal emission using the QPushButton.click() method """
+ button = QPushButton('label')
+ button.clicked.connect(self.cb)
+ self.args = tuple()
+ button.click()
+ self.assertTrue(self.called)
+
+
+class SpinBoxPySlot(UsesQApplication, BasicPySlotCase):
+ """Tests the connection of python slots to QSpinBox signals"""
+
+ def setUp(self):
+ super(SpinBoxPySlot, self).setUp()
+ self.spin = QSpinBox()
+
+ def tearDown(self):
+ del self.spin
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
+ super(SpinBoxPySlot, self).tearDown()
+
+ def testSpinBoxValueChanged(self):
+ """Connection of a python slot to QSpinBox.valueChanged(int)"""
+ self.spin.valueChanged.connect(self.cb)
+ self.args = [3]
+ self.spin.valueChanged.emit(*self.args)
+ self.assertTrue(self.called)
+
+ def testSpinBoxValueChangedImplicit(self):
+ """Indirect qt signal emission using QSpinBox.setValue(int)"""
+ self.spin.valueChanged.connect(self.cb)
+ self.args = [42]
+ self.spin.setValue(self.args[0])
+ self.assertTrue(self.called)
+
+ def atestSpinBoxValueChangedFewArgs(self):
+ """Emission of signals with fewer arguments than needed"""
+ self.spin.valueChanged.connect(self.cb)
+ self.args = (554,)
+ self.assertRaises(TypeError, self.spin.valueChanged.emit)
+
+
+class QSpinBoxQtSlots(UsesQApplication):
+ """Tests the connection to QSpinBox qt slots"""
+
+ qapplication = True
+
+ def testSetValueIndirect(self):
+ """Indirect signal emission: QSpinBox using valueChanged(int)/setValue(int)"""
+ spinSend = QSpinBox()
+ spinRec = QSpinBox()
+
+ spinRec.setValue(5)
+
+ spinSend.valueChanged.connect(spinRec.setValue)
+ self.assertEqual(spinRec.value(), 5)
+ spinSend.setValue(3)
+ self.assertEqual(spinRec.value(), 3)
+ self.assertEqual(spinSend.value(), 3)
+
+ def testSetValue(self):
+ """Direct signal emission: QSpinBox using valueChanged(int)/setValue(int)"""
+ spinSend = QSpinBox()
+ spinRec = QSpinBox()
+
+ spinRec.setValue(5)
+ spinSend.setValue(42)
+
+ spinSend.valueChanged.connect(spinRec.setValue)
+ self.assertEqual(spinRec.value(), 5)
+ self.assertEqual(spinSend.value(), 42)
+ spinSend.valueChanged.emit(3)
+
+ self.assertEqual(spinRec.value(), 3)
+ # Direct emission shouldn't change the value of the emitter
+ self.assertEqual(spinSend.value(), 42)
+
+ spinSend.valueChanged.emit(66)
+ self.assertEqual(spinRec.value(), 66)
+ self.assertEqual(spinSend.value(), 42)
if __name__ == '__main__':
diff --git a/sources/pyside6/tests/signals/signal_emission_test.py b/sources/pyside6/tests/signals/signal_emission_test.py
index faca38ccc..b31d89c2f 100644
--- a/sources/pyside6/tests/signals/signal_emission_test.py
+++ b/sources/pyside6/tests/signals/signal_emission_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/env python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
"""Tests covering signal emission and receiving to python slots"""
@@ -40,47 +14,47 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtCore import QObject, SIGNAL, SLOT, QProcess, QTimeLine
+from PySide6.QtCore import QObject, Signal, SIGNAL, QProcess, QTimeLine
-from helper.basicpyslotcase import BasicPySlotCase
-from helper.usesqcoreapplication import UsesQCoreApplication
+from helper.usesqapplication import UsesQApplication
-class ArgsOnEmptySignal(UsesQCoreApplication):
+class ArgsOnEmptySignal(UsesQApplication):
'''Trying to emit a signal without arguments passing some arguments'''
def testArgsToNoArgsSignal(self):
'''Passing arguments to a signal without arguments'''
process = QProcess()
- self.assertRaises(TypeError, process.emit, SIGNAL('started()'), 42)
+ self.assertRaises(TypeError, process.started.emit, 42)
-class MoreArgsOnEmit(UsesQCoreApplication):
+class MoreArgsOnEmit(UsesQApplication):
'''Trying to pass more args than needed to emit (signals with args)'''
def testMoreArgs(self):
'''Passing more arguments than needed'''
process = QProcess()
- self.assertRaises(TypeError, process.emit, SIGNAL('finished(int)'), 55, 55)
+ self.assertRaises(TypeError, process.finished.emit, 55, QProcess.ExitStatus.NormalExit, 42)
+
+class Sender(QObject):
+ '''Sender class'''
-class Dummy(QObject):
- '''Dummy class'''
- pass
+ dummy = Signal()
+ dummy_int = Signal(int)
-class PythonSignalToCppSlots(UsesQCoreApplication):
+class PythonSignalToCppSlots(UsesQApplication):
'''Connect python signals to C++ slots'''
def testWithoutArgs(self):
'''Connect python signal to QTimeLine.toggleDirection()'''
timeline = QTimeLine()
- dummy = Dummy()
- QObject.connect(dummy, SIGNAL('dummy()'),
- timeline, SLOT('toggleDirection()'))
+ sender = Sender()
+ sender.dummy.connect(timeline.toggleDirection)
orig_dir = timeline.direction()
- dummy.emit(SIGNAL('dummy()'))
+ sender.dummy.emit()
new_dir = timeline.direction()
if orig_dir == QTimeLine.Forward:
@@ -91,17 +65,16 @@ class PythonSignalToCppSlots(UsesQCoreApplication):
def testWithArgs(self):
'''Connect python signals to QTimeLine.setCurrentTime(int)'''
timeline = QTimeLine()
- dummy = Dummy()
+ sender = Sender()
- QObject.connect(dummy, SIGNAL('dummy(int)'),
- timeline, SLOT('setCurrentTime(int)'))
+ sender.dummy_int.connect(timeline.setCurrentTime)
current = timeline.currentTime()
- dummy.emit(SIGNAL('dummy(int)'), current + 42)
+ sender.dummy_int.emit(current + 42)
self.assertEqual(timeline.currentTime(), current + 42)
-class CppSignalsToCppSlots(UsesQCoreApplication):
+class CppSignalsToCppSlots(UsesQApplication):
'''Connection between C++ slots and signals'''
def testWithoutArgs(self):
@@ -109,13 +82,13 @@ class CppSignalsToCppSlots(UsesQCoreApplication):
process = QProcess()
timeline = QTimeLine()
- QObject.connect(process, SIGNAL('finished(int, QProcess::ExitStatus)'),
- timeline, SLOT('toggleDirection()'))
+ process.finished.connect(timeline.toggleDirection)
orig_dir = timeline.direction()
process.start(sys.executable, ['-c', '"print 42"'])
- process.waitForFinished()
+ self.assertTrue(process.waitForStarted())
+ self.assertTrue(process.waitForFinished())
new_dir = timeline.direction()
@@ -133,25 +106,25 @@ def someSlot(args=None):
called = True
-class DynamicSignalsToFuncPartial(UsesQCoreApplication):
+class DynamicSignalsToFuncPartial(UsesQApplication):
def testIt(self):
global called
called = False
- o = QObject()
- o.connect(o, SIGNAL("ASignal()"), functools.partial(someSlot, "partial .."))
- o.emit(SIGNAL("ASignal()"))
+ o = Sender()
+ o.dummy.connect(functools.partial(someSlot, "partial .."))
+ o.dummy.emit()
self.assertTrue(called)
-class EmitUnknownType(UsesQCoreApplication):
+class EmitUnknownType(UsesQApplication):
def testIt(self):
a = QObject()
a.connect(SIGNAL('foobar(Dummy)'), lambda x: 42) # Just connect with an unknown type
self.assertRaises(TypeError, a.emit, SIGNAL('foobar(Dummy)'), 22)
-class EmitEnum(UsesQCoreApplication):
+class EmitEnum(UsesQApplication):
"""Test emission of enum arguments"""
def slot(self, arg):
diff --git a/sources/pyside6/tests/signals/signal_enum_test.py b/sources/pyside6/tests/signals/signal_enum_test.py
index 1a598270e..a792e9b0c 100644
--- a/sources/pyside6/tests/signals/signal_enum_test.py
+++ b/sources/pyside6/tests/signals/signal_enum_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
from enum import Enum
import os
diff --git a/sources/pyside6/tests/signals/signal_func_test.py b/sources/pyside6/tests/signals/signal_func_test.py
index cd37a69a9..d441d4de9 100644
--- a/sources/pyside6/tests/signals/signal_func_test.py
+++ b/sources/pyside6/tests/signals/signal_func_test.py
@@ -1,32 +1,5 @@
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/signals/signal_manager_refcount_test.py b/sources/pyside6/tests/signals/signal_manager_refcount_test.py
index 88f0a8a14..955d5b65b 100644
--- a/sources/pyside6/tests/signals/signal_manager_refcount_test.py
+++ b/sources/pyside6/tests/signals/signal_manager_refcount_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
@@ -38,11 +12,12 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtCore import QObject, SIGNAL
+from PySide6.QtCore import QObject
class SignalManagerRefCount(unittest.TestCase):
- """Simple test case to check if the signal_manager is erroneously incrementing the object refcounter"""
+ """Simple test case to check if the signal_manager is erroneously incrementing the
+ object refcounter."""
@unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testObjectRefcount(self):
@@ -53,10 +28,9 @@ class SignalManagerRefCount(unittest.TestCase):
refcount = sys.getrefcount(obj)
obj.destroyed.connect(callback)
self.assertEqual(refcount, sys.getrefcount(obj))
- QObject.disconnect(obj, SIGNAL('destroyed()'), callback)
+ obj.destroyed.disconnect(callback)
self.assertEqual(refcount, sys.getrefcount(obj))
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/pyside6/tests/signals/signal_newenum_test.py b/sources/pyside6/tests/signals/signal_newenum_test.py
new file mode 100644
index 000000000..5fbb875af
--- /dev/null
+++ b/sources/pyside6/tests/signals/signal_newenum_test.py
@@ -0,0 +1,50 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+from PySide6.QtCore import QObject, Qt, Slot, Signal
+
+
+class Receiver(QObject):
+ def __init__(self):
+ super().__init__()
+ self.result = 0
+
+ @Slot(Qt.Alignment, str)
+ def handler(self, e, s):
+ print('handler', e, "type=", type(e).__name__, s)
+ self.result += 1
+
+
+class Sender(QObject):
+ test_sig = Signal(Qt.AlignmentFlag, str)
+
+ def __init__(self):
+ super().__init__()
+
+ def emit_test_sig(self):
+ self.test_sig.emit(Qt.AlignLeft, "bla")
+
+
+class TestSignalNewEnum(unittest.TestCase):
+ """Test for PYSIDE-2095, signals with new enums in Python 3.11."""
+
+ def testIt(self):
+ sender = Sender()
+ receiver = Receiver()
+ sender.test_sig.connect(receiver.handler)
+
+ sender.emit_test_sig()
+ self.assertEqual(receiver.result, 1)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/signals/signal_number_limit_test.py b/sources/pyside6/tests/signals/signal_number_limit_test.py
index 3534610a6..29825fe50 100644
--- a/sources/pyside6/tests/signals/signal_number_limit_test.py
+++ b/sources/pyside6/tests/signals/signal_number_limit_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/signals/signal_object_test.py b/sources/pyside6/tests/signals/signal_object_test.py
index b0f115e85..607f51813 100644
--- a/sources/pyside6/tests/signals/signal_object_test.py
+++ b/sources/pyside6/tests/signals/signal_object_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/env python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -38,7 +12,7 @@ from init_paths import init_test_paths
init_test_paths(False)
from PySide6.QtCore import QTimer, Signal, QObject, Slot, Qt
-from helper.usesqcoreapplication import UsesQCoreApplication
+from helper.usesqapplication import UsesQApplication
class MyObject(QTimer):
@@ -63,7 +37,7 @@ class MyObject(QTimer):
self._o = o
-class SignalObjectTest(UsesQCoreApplication):
+class SignalObjectTest(UsesQApplication):
def cb(self):
self._cb_called = True
self.app.exit()
diff --git a/sources/pyside6/tests/signals/signal_signature_test.py b/sources/pyside6/tests/signals/signal_signature_test.py
index 5cf9fad61..e8f08b2d9 100644
--- a/sources/pyside6/tests/signals/signal_signature_test.py
+++ b/sources/pyside6/tests/signals/signal_signature_test.py
@@ -1,32 +1,5 @@
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test case for signal signature received by QObject::connectNotify().'''
@@ -40,13 +13,17 @@ from init_paths import init_test_paths
init_test_paths(False)
from PySide6.QtCore import QObject, Signal, SIGNAL, SLOT
-from helper.usesqcoreapplication import UsesQCoreApplication
+from helper.usesqapplication import UsesQApplication
called = False
name = "Old"
+class Sender(QObject):
+ dummySignal = Signal()
+
+
class Obj(QObject):
dummySignalArgs = Signal(str)
numberSignal = Signal(int)
@@ -77,7 +54,7 @@ def callback_empty():
pass
-class TestConnectNotifyWithNewStyleSignals(UsesQCoreApplication):
+class TestConnectNotifyWithNewStyleSignals(UsesQApplication):
'''Test case for signal signature received by QObject::connectNotify().'''
def testOldStyle(self):
@@ -105,9 +82,9 @@ class TestConnectNotifyWithNewStyleSignals(UsesQCoreApplication):
def testStaticSlot(self):
global called
- sender = Obj()
- sender.connect(sender, SIGNAL("dummySignal()"), Obj.static_method)
- sender.emit(SIGNAL("dummySignal()"))
+ sender = Sender()
+ sender.dummySignal.connect(Obj.static_method)
+ sender.dummySignal.emit()
self.assertTrue(called)
def testStaticSlotArgs(self):
@@ -126,4 +103,3 @@ class TestConnectNotifyWithNewStyleSignals(UsesQCoreApplication):
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/pyside6/tests/signals/signal_with_primitive_type_test.py b/sources/pyside6/tests/signals/signal_with_primitive_type_test.py
index 77fec7131..01492b333 100644
--- a/sources/pyside6/tests/signals/signal_with_primitive_type_test.py
+++ b/sources/pyside6/tests/signals/signal_with_primitive_type_test.py
@@ -1,32 +1,5 @@
-# -*- coding: utf-8 -*-
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -37,7 +10,7 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtCore import QCoreApplication, QObject, QTimeLine, SIGNAL
+from PySide6.QtCore import QCoreApplication, QTimeLine
class SignalPrimitiveTypeTest(unittest.TestCase):
@@ -63,5 +36,3 @@ class SignalPrimitiveTypeTest(unittest.TestCase):
if __name__ == '__main__':
unittest.main()
-
-
diff --git a/sources/pyside6/tests/signals/signals.pyproject b/sources/pyside6/tests/signals/signals.pyproject
new file mode 100644
index 000000000..b63724eaf
--- /dev/null
+++ b/sources/pyside6/tests/signals/signals.pyproject
@@ -0,0 +1,19 @@
+{
+ "files": ["anonymous_slot_leak_test.py", "args_dont_match_test.py",
+ "bug_189.py", "bug_311.py", "bug_312.py", "bug_319.py", "bug_79.py",
+ "decorators_test.py", "disconnect_test.py", "invalid_callback_test.py",
+ "lambda_gui_test.py", "lambda_test.py", "leaking_signal_test.py",
+ "multiple_connections_gui_test.py", "multiple_connections_test.py",
+ "pysignal_test.py", "qobject_callable_connect_test.py", "qobject_destroyed_test.py",
+ "qobject_receivers_test.py", "qobject_sender_test.py", "ref01_test.py",
+ "ref02_test.py", "ref03_test.py", "ref04_test.py", "ref05_test.py",
+ "ref06_test.py", "segfault_proxyparent_test.py",
+ "self_connect_test.py", "short_circuit_test.py",
+ "signal2signal_connect_test.py", "signal_across_threads.py",
+ "signal_autoconnect_test.py", "signal_connectiontype_support_test.py",
+ "signal_emission_gui_test.py", "signal_emission_test.py",
+ "signal_enum_test.py", "signal_func_test.py", "signal_manager_refcount_test.py",
+ "signal_newenum_test.py", "signal_number_limit_test.py",
+ "signal_object_test.py", "signal_signature_test.py", "signal_with_primitive_type_test.py",
+ "slot_reference_count_test.py", "static_metaobject_test.py"]
+}
diff --git a/sources/pyside6/tests/signals/slot_reference_count_test.py b/sources/pyside6/tests/signals/slot_reference_count_test.py
index 5ab8ca6e9..9d5c73652 100644
--- a/sources/pyside6/tests/signals/slot_reference_count_test.py
+++ b/sources/pyside6/tests/signals/slot_reference_count_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
''' Forced disconnection: Delete one end of the signal connection'''
@@ -37,12 +12,14 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtCore import QObject, SIGNAL, SLOT
+from PySide6.QtCore import QObject, Signal
class Dummy(QObject):
+ foo = Signal()
+
def dispatch(self):
- self.emit(SIGNAL('foo()'))
+ self.foo.emit()
class PythonSignalRefCount(unittest.TestCase):
@@ -60,10 +37,10 @@ class PythonSignalRefCount(unittest.TestCase):
self.assertEqual(sys.getrefcount(cb), 2)
- QObject.connect(self.emitter, SIGNAL('foo()'), cb)
+ self.emitter.foo.connect(cb)
self.assertEqual(sys.getrefcount(cb), 3)
- QObject.disconnect(self.emitter, SIGNAL('foo()'), cb)
+ self.emitter.foo.disconnect(cb)
self.assertEqual(sys.getrefcount(cb), 2)
@@ -85,7 +62,7 @@ class CppSignalRefCount(unittest.TestCase):
self.emitter.destroyed.connect(cb)
self.assertEqual(sys.getrefcount(cb), 3)
- QObject.disconnect(self.emitter, SIGNAL('destroyed()'), cb)
+ self.emitter.destroyed.disconnect(cb)
self.assertEqual(sys.getrefcount(cb), 2)
diff --git a/sources/pyside6/tests/signals/static_metaobject_test.py b/sources/pyside6/tests/signals/static_metaobject_test.py
index dbb3aecfa..d7bf73e44 100644
--- a/sources/pyside6/tests/signals/static_metaobject_test.py
+++ b/sources/pyside6/tests/signals/static_metaobject_test.py
@@ -1,35 +1,10 @@
#!/usr/bin/env python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
"""Tests covering signal emission and receiving to python slots"""
+import gc
import os
import sys
import unittest
@@ -39,13 +14,22 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from PySide6.QtCore import QObject, SIGNAL, Slot
-from helper.usesqcoreapplication import UsesQCoreApplication
+from PySide6.QtCore import QObject, Signal, Slot, SIGNAL
+from helper.usesqapplication import UsesQApplication
+
+
+class Sender(QObject):
+
+ foo = Signal()
+ foo2 = Signal()
class MyObject(QObject):
+
+ foo2 = Signal()
+
def __init__(self, parent=None):
- QObject.__init__(self, parent)
+ super().__init__(parent)
self._slotCalledCount = 0
# this '@Slot()' is needed to get the right sort order in testSharedSignalEmission.
@@ -55,10 +39,11 @@ class MyObject(QObject):
self._slotCalledCount = self._slotCalledCount + 1
-class StaticMetaObjectTest(UsesQCoreApplication):
+class StaticMetaObjectTest(UsesQApplication):
def testSignalPropagation(self):
- o = MyObject()
+ """Old style, dynamic signal creation."""
+ o = QObject()
o2 = MyObject()
# SIGNAL foo not created yet
@@ -73,20 +58,24 @@ class StaticMetaObjectTest(UsesQCoreApplication):
del o
del o2
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
o = MyObject()
# The SIGNAL was destroyed with old objects
self.assertEqual(o.metaObject().indexOfSignal("foo()"), -1)
def testSharedSignalEmission(self):
- o = QObject()
+ o = Sender()
m = MyObject()
- o.connect(SIGNAL("foo2()"), m.mySlot)
- m.connect(SIGNAL("foo2()"), m.mySlot)
- o.emit(SIGNAL("foo2()"))
+ o.foo2.connect(m.mySlot)
+ m.foo2.connect(m.mySlot)
+ o.foo2.emit()
self.assertEqual(m._slotCalledCount, 1)
del o
- m.emit(SIGNAL("foo2()"))
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
+ m.foo2.emit()
self.assertEqual(m._slotCalledCount, 2)
diff --git a/sources/pyside6/tests/support/voidptr_test.py b/sources/pyside6/tests/support/voidptr_test.py
index bf19de07c..d9ea57a61 100644
--- a/sources/pyside6/tests/support/voidptr_test.py
+++ b/sources/pyside6/tests/support/voidptr_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
diff --git a/sources/pyside6/tests/tools/__init__.py b/sources/pyside6/tests/tools/__init__.py
new file mode 100644
index 000000000..31f792369
--- /dev/null
+++ b/sources/pyside6/tests/tools/__init__.py
@@ -0,0 +1 @@
+from init_paths import init_test_paths
diff --git a/sources/pyside6/tests/tools/list-class-hierarchy.py b/sources/pyside6/tests/tools/list-class-hierarchy.py
index 924706457..b773b7c58 100644
--- a/sources/pyside6/tests/tools/list-class-hierarchy.py
+++ b/sources/pyside6/tests/tools/list-class-hierarchy.py
@@ -1,32 +1,6 @@
#!/usr/bin/python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
# This is a small script printing out Qt binding class hierarchies
# for comparison purposes.
@@ -45,8 +19,7 @@ from inspect import isclass
ignore = ["staticMetaObject",
"pyqtConfigure",
"registerUserData",
- "thread",
- ]
+ "thread"]
def recurse_into(el, obj):
@@ -73,7 +46,7 @@ def recurse_into(el, obj):
return symbols
-if __name__=='__main__':
+if __name__ == '__main__':
modules = [ 'QtCore',
'QtGui',
'QtHelp',
diff --git a/sources/pyside6/tests/tools/metaobjectdump/CMakeLists.txt b/sources/pyside6/tests/tools/metaobjectdump/CMakeLists.txt
new file mode 100644
index 000000000..f1ad6ab16
--- /dev/null
+++ b/sources/pyside6/tests/tools/metaobjectdump/CMakeLists.txt
@@ -0,0 +1 @@
+PYSIDE_TEST(test_metaobjectdump.py)
diff --git a/sources/pyside6/tests/tools/metaobjectdump/baseline_default_birthdayparty.json b/sources/pyside6/tests/tools/metaobjectdump/baseline_default_birthdayparty.json
new file mode 100644
index 000000000..6a695dd5c
--- /dev/null
+++ b/sources/pyside6/tests/tools/metaobjectdump/baseline_default_birthdayparty.json
@@ -0,0 +1 @@
+[{"classes": [{"className": "BirthdayParty", "qualifiedClassName": "BirthdayParty", "object": true, "superClasses": [{"access": "public", "name": "QObject"}], "classInfos": [{"name": "QML.Element", "value": "auto"}, {"name": "DefaultProperty", "value": "guests"}], "properties": [{"name": "host", "type": "Person", "index": 0, "read": "host", "notify": "host_changed", "write": "host"}, {"name": "guests", "type": "QQmlListProperty<Person>", "index": 1}], "signals": [{"access": "public", "name": "host_changed", "arguments": [], "returnType": "void"}, {"access": "public", "name": "guests_changed", "arguments": [], "returnType": "void"}]}], "outputRevision": 68, "QML_IMPORT_NAME": "People", "QML_IMPORT_MAJOR_VERSION": 1, "QML_IMPORT_MINOR_VERSION": 0, "QT_MODULES": ["QtCore", "QtQml"]}] \ No newline at end of file
diff --git a/sources/pyside6/tests/tools/metaobjectdump/baseline_default_person.json b/sources/pyside6/tests/tools/metaobjectdump/baseline_default_person.json
new file mode 100644
index 000000000..571056c2a
--- /dev/null
+++ b/sources/pyside6/tests/tools/metaobjectdump/baseline_default_person.json
@@ -0,0 +1 @@
+[{"classes": [{"className": "Person", "qualifiedClassName": "Person", "object": true, "superClasses": [{"access": "public", "name": "QObject"}], "classInfos": [{"name": "QML.Element", "value": "anonymous"}], "properties": [{"name": "name", "type": "QString", "index": 0, "read": "name", "notify": "name_changed", "write": "name"}, {"name": "shoe_size", "type": "int", "index": 1, "read": "shoe_size", "notify": "shoe_size_changed", "write": "shoe_size"}], "signals": [{"access": "public", "name": "name_changed", "arguments": [], "returnType": "void"}, {"access": "public", "name": "shoe_size_changed", "arguments": [], "returnType": "void"}]}, {"className": "Boy", "qualifiedClassName": "Boy", "object": true, "superClasses": [{"access": "public", "name": "Person"}], "classInfos": [{"name": "QML.Element", "value": "auto"}]}, {"className": "Girl", "qualifiedClassName": "Girl", "object": true, "superClasses": [{"access": "public", "name": "Person"}], "classInfos": [{"name": "QML.Element", "value": "auto"}]}], "outputRevision": 68, "QML_IMPORT_NAME": "People", "QML_IMPORT_MAJOR_VERSION": 1, "QML_IMPORT_MINOR_VERSION": 0, "QT_MODULES": ["QtCore", "QtQml"]}] \ No newline at end of file
diff --git a/sources/pyside6/tests/tools/metaobjectdump/baseline_inheritance_birthdayparty.json b/sources/pyside6/tests/tools/metaobjectdump/baseline_inheritance_birthdayparty.json
new file mode 100644
index 000000000..0491e41cc
--- /dev/null
+++ b/sources/pyside6/tests/tools/metaobjectdump/baseline_inheritance_birthdayparty.json
@@ -0,0 +1 @@
+[{"classes": [{"className": "BirthdayParty", "qualifiedClassName": "BirthdayParty", "object": true, "superClasses": [{"access": "public", "name": "QObject"}], "classInfos": [{"name": "QML.Element", "value": "auto"}], "properties": [{"name": "host", "type": "Person", "index": 0, "read": "host", "notify": "host_changed", "write": "host"}, {"name": "guests", "type": "QQmlListProperty<Person>", "index": 1}], "signals": [{"access": "public", "name": "host_changed", "arguments": [], "returnType": "void"}, {"access": "public", "name": "guests_changed", "arguments": [], "returnType": "void"}]}], "outputRevision": 68, "QML_IMPORT_NAME": "People", "QML_IMPORT_MAJOR_VERSION": 1, "QML_IMPORT_MINOR_VERSION": 0, "QT_MODULES": ["QtCore", "QtQml"]}] \ No newline at end of file
diff --git a/sources/pyside6/tests/tools/metaobjectdump/baseline_inheritance_person.json b/sources/pyside6/tests/tools/metaobjectdump/baseline_inheritance_person.json
new file mode 100644
index 000000000..82021ee0a
--- /dev/null
+++ b/sources/pyside6/tests/tools/metaobjectdump/baseline_inheritance_person.json
@@ -0,0 +1 @@
+[{"classes": [{"className": "Person", "qualifiedClassName": "Person", "object": true, "superClasses": [{"access": "public", "name": "QObject"}], "classInfos": [{"name": "QML.Element", "value": "auto"}, {"name": "QML.Creatable", "value": "false"}, {"name": "QML.UncreatableReason", "value": "Person is an abstract base class."}], "properties": [{"name": "name", "type": "QString", "index": 0, "read": "name", "notify": "name_changed", "write": "name"}, {"name": "shoe_size", "type": "int", "index": 1, "read": "shoe_size", "notify": "shoe_size_changed", "write": "shoe_size"}], "signals": [{"access": "public", "name": "name_changed", "arguments": [], "returnType": "void"}, {"access": "public", "name": "shoe_size_changed", "arguments": [], "returnType": "void"}]}, {"className": "Boy", "qualifiedClassName": "Boy", "object": true, "superClasses": [{"access": "public", "name": "Person"}], "classInfos": [{"name": "QML.Element", "value": "auto"}]}, {"className": "Girl", "qualifiedClassName": "Girl", "object": true, "superClasses": [{"access": "public", "name": "Person"}], "classInfos": [{"name": "QML.Element", "value": "auto"}]}], "outputRevision": 68, "QML_IMPORT_NAME": "People", "QML_IMPORT_MAJOR_VERSION": 1, "QML_IMPORT_MINOR_VERSION": 0, "QT_MODULES": ["QtCore", "QtQml"]}] \ No newline at end of file
diff --git a/sources/pyside6/tests/tools/metaobjectdump/baseline_property_happybirthdaysong.json b/sources/pyside6/tests/tools/metaobjectdump/baseline_property_happybirthdaysong.json
new file mode 100644
index 000000000..c009111b7
--- /dev/null
+++ b/sources/pyside6/tests/tools/metaobjectdump/baseline_property_happybirthdaysong.json
@@ -0,0 +1 @@
+[{"classes": [{"className": "HappyBirthdaySong", "qualifiedClassName": "HappyBirthdaySong", "object": false, "superClasses": [{"access": "public", "name": "QPyQmlPropertyValueSource"}], "classInfos": [{"name": "QML.Element", "value": "auto"}], "properties": [{"name": "name", "type": "QString", "index": 0, "read": "name", "notify": "name_changed", "write": "name"}], "signals": [{"access": "public", "name": "name_changed", "arguments": [], "returnType": "void"}], "slots": [{"access": "public", "name": "advance", "arguments": [], "returnType": "void"}]}], "outputRevision": 68, "QML_IMPORT_NAME": "People", "QML_IMPORT_MAJOR_VERSION": 1, "QML_IMPORT_MINOR_VERSION": 0, "QT_MODULES": ["QtCore", "QtQml"]}] \ No newline at end of file
diff --git a/sources/pyside6/tests/tools/metaobjectdump/test_metaobjectdump.py b/sources/pyside6/tests/tools/metaobjectdump/test_metaobjectdump.py
new file mode 100644
index 000000000..5e7412bf5
--- /dev/null
+++ b/sources/pyside6/tests/tools/metaobjectdump/test_metaobjectdump.py
@@ -0,0 +1,73 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import os
+import sys
+import subprocess
+import unittest
+
+from pathlib import Path
+
+"""Test for pyside6-metaobjectdump.
+
+The test prints commands to regenerate the base line."""
+
+
+def msg_regenerate(cmd, baseline):
+ cmd_str = " ".join(cmd)
+ return (f"# Regenerate {baseline}\n"
+ f"{cmd_str} > {baseline}")
+
+
+@unittest.skipIf(sys.version_info < (3, 8), "Needs a recent ast module")
+class TestMetaObjectDump(unittest.TestCase):
+ """Test for the metaobjectdump tool. Compares the output of metaobjectdump.py for some
+ example files in compact format."""
+
+ def setUp(self):
+ super().setUp()
+ self._dir = Path(__file__).parent.resolve()
+ pyside_root = self._dir.parents[4]
+ self._metaobjectdump_tool = pyside_root / "sources" / "pyside-tools" / "metaobjectdump.py"
+ self._examples_dir = (pyside_root / "examples" /
+ "qml" / "tutorials" / "extending-qml-advanced")
+
+ # Compile a list of examples (tuple [file, base line, command])
+ examples = []
+ for d in ["advanced2-Inheritance-and-coercion", "advanced3-Default-properties"]:
+ example_dir = self._examples_dir / d
+ examples.append(example_dir / "birthdayparty.py")
+ examples.append(example_dir / "person.py")
+ # Example with slot
+ examples.append(self._examples_dir / "advanced6-Property-value-source"
+ / "happybirthdaysong.py")
+
+ metaobjectdump_cmd_root = [sys.executable, os.fspath(self._metaobjectdump_tool), "-c", "-s"]
+ self._examples = []
+ for example in examples:
+ name = example.parent.name
+ # Simplify "advanced2-Inheritance-and-coercion" -> "inheritance"
+ short_name = name.split("-")[1].lower()
+ baseline_name = f"baseline_{short_name}_{example.stem}.json"
+ baseline_path = self._dir / baseline_name
+ cmd = metaobjectdump_cmd_root + [os.fspath(example)]
+ self._examples.append((example, baseline_path, cmd))
+ print(msg_regenerate(cmd, baseline_path))
+
+ def testMetaObjectDump(self):
+ self.assertTrue(self._examples_dir.is_dir())
+ self.assertTrue(self._metaobjectdump_tool.is_file())
+
+ for example, baseline, cmd in self._examples:
+ self.assertTrue(example.is_file())
+ self.assertTrue(baseline.is_file())
+ baseline_data = baseline.read_text()
+
+ popen = subprocess.Popen(cmd, stdout=subprocess.PIPE)
+ actual = popen.communicate()[0].decode("UTF-8")
+ self.assertEqual(popen.returncode, 0)
+ self.assertEqual(baseline_data, actual)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/tools/pyside6-android-deploy/CMakeLists.txt b/sources/pyside6/tests/tools/pyside6-android-deploy/CMakeLists.txt
new file mode 100644
index 000000000..c32d636ed
--- /dev/null
+++ b/sources/pyside6/tests/tools/pyside6-android-deploy/CMakeLists.txt
@@ -0,0 +1,3 @@
+if(CMAKE_HOST_UNIX)
+ PYSIDE_TEST(test_pyside6_android_deploy.py)
+endif()
diff --git a/sources/pyside6/tests/tools/pyside6-android-deploy/extensive_android_deploy_test.py b/sources/pyside6/tests/tools/pyside6-android-deploy/extensive_android_deploy_test.py
new file mode 100644
index 000000000..271f8eebd
--- /dev/null
+++ b/sources/pyside6/tests/tools/pyside6-android-deploy/extensive_android_deploy_test.py
@@ -0,0 +1,88 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+"""
+ Extensive manual test of pyside6-android-deploy
+
+ Note: Not to be added into the CI
+"""
+
+import logging
+import unittest
+import tempfile
+import shutil
+import sys
+import os
+import importlib
+from pathlib import Path
+
+
+class TestPySide6Deploy(unittest.TestCase):
+ @classmethod
+ def setUpClass(cls):
+ cls.pyside_root = Path(__file__).parents[5].resolve()
+ example_root = cls.pyside_root / "examples"
+ example_application = example_root / "gui" / "analogclock"
+ cls.temp_dir = tempfile.mkdtemp()
+ cls.temp_example = Path(
+ shutil.copytree(example_application, Path(cls.temp_dir) / "analogclock")
+ ).resolve()
+ cls.current_dir = Path.cwd()
+
+ sys.path.append(str(cls.pyside_root / "sources" / "pyside-tools"))
+ cls.deploy_lib = importlib.import_module("deploy_lib")
+ cls.android_deploy = importlib.import_module("android_deploy")
+ sys.modules["android_deploy"] = cls.android_deploy
+
+ if os.environ.get("WHEEL_PYSIDE") is not None:
+ cls.pyside_wheel = Path(os.environ.get("WHEEL_PYSIDE")).resolve()
+ else:
+ raise Exception("Environment variable WHEEL_PYSIDE does not exist")
+
+ if os.environ.get("WHEEL_SHIBOKEN") is not None:
+ cls.shiboken_wheel = Path(os.environ.get("WHEEL_SHIBOKEN")).resolve()
+ else:
+ raise Exception("Environment variable WHEEL_SHIBOKEN does not exist")
+
+ def setUp(self):
+ os.chdir(self.temp_example)
+ self.config_file = self.temp_example / "pysidedeploy.spec"
+
+ def testDeployment(self):
+ self.android_deploy.main(name="android_app", shiboken_wheel=self.shiboken_wheel,
+ pyside_wheel=self.pyside_wheel, keep_deployment_files=True,
+ loglevel=logging.INFO, force=True)
+
+ print("Testing with config file")
+ self.android_deploy.main(name="android_app", config_file=self.config_file,
+ loglevel=logging.INFO, force=True)
+
+ def testWithNdkSdk(self):
+ if os.environ.get("ANDROID_SDK_ROOT") is not None:
+ android_sdk_root = Path(os.environ.get("ANDROID_SDK_ROOT")).resolve()
+ else:
+ raise Exception("Environment variable ANDROID_SDK_ROOT does not exist")
+
+ if os.environ.get("ANDROID_NDK_ROOT") is not None:
+ android_ndk_root = Path(os.environ.get("ANDROID_NDK_ROOT")).resolve()
+ else:
+ raise Exception("Environment variable ANDROID_NDK_ROOT does not exist")
+
+ self.android_deploy.main(name="android_app", shiboken_wheel=self.shiboken_wheel,
+ pyside_wheel=self.pyside_wheel,
+ ndk_path=android_ndk_root,
+ sdk_path=android_sdk_root,
+ keep_deployment_files=True,
+ loglevel=logging.INFO, force=True)
+
+ def tearDown(self) -> None:
+ super().tearDown()
+ os.chdir(self.current_dir)
+
+ @classmethod
+ def tearDownClass(cls) -> None:
+ shutil.rmtree(Path(cls.temp_dir))
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/sources/pyside6/tests/tools/pyside6-android-deploy/test_pyside6_android_deploy.py b/sources/pyside6/tests/tools/pyside6-android-deploy/test_pyside6_android_deploy.py
new file mode 100644
index 000000000..ec575e923
--- /dev/null
+++ b/sources/pyside6/tests/tools/pyside6-android-deploy/test_pyside6_android_deploy.py
@@ -0,0 +1,274 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+import importlib
+import os
+import re
+import shutil
+import sys
+import tempfile
+import unittest
+import subprocess
+from pathlib import Path
+from unittest import mock
+from unittest.mock import patch
+
+sys.path.append(os.fspath(Path(__file__).resolve().parents[2]))
+from init_paths import init_test_paths # noqa: E402
+init_test_paths(False)
+
+
+class DeployTestBase(unittest.TestCase):
+ @classmethod
+ def setUpClass(cls):
+ cls.pyside_root = Path(__file__).parents[5].resolve()
+ cls.example_root = cls.pyside_root / "examples"
+ cls.temp_dir = tempfile.mkdtemp()
+ cls.current_dir = Path.cwd()
+ cls.pyside_wheel = Path("/tmp/PySide6-6.5.0a1-6.5.0-cp37-abi3-android_x86_64.whl")
+ cls.shiboken_wheel = Path("/tmp/shiboken6-6.5.0a1-6.5.0-cp37-abi3-android_x86_64.whl")
+ cls.ndk_path = Path("/tmp/android_sdk/ndk/25.2.9519653")
+ cls.sdk_path = Path("/tmp/android_sdk")
+ pyside_tools = cls.pyside_root / "sources" / "pyside-tools"
+
+ # install extra python dependencies
+ android_requirements_file = pyside_tools / "requirements-android.txt"
+ with open(android_requirements_file, 'r', encoding='UTF-8') as file:
+ while line := file.readline():
+ dependent_package = line.rstrip()
+ if not bool(importlib.util.find_spec(dependent_package)):
+ command = [sys.executable, "-m", "pip", "install", dependent_package]
+ subprocess.run(command)
+
+ sys.path.append(str(pyside_tools))
+ cls.deploy_lib = importlib.import_module("deploy_lib")
+ cls.android_deploy = importlib.import_module("android_deploy")
+ sys.modules["android_deploy"] = cls.android_deploy
+
+ # required for comparing long strings
+ cls.maxDiff = None
+
+ # print no outputs to stdout
+ sys.stdout = mock.MagicMock()
+
+ def tearDown(self) -> None:
+ super().tearDown()
+ os.chdir(self.current_dir)
+
+ @classmethod
+ def tearDownClass(cls) -> None:
+ shutil.rmtree(Path(cls.temp_dir))
+
+
+@patch("deploy_lib.android.android_config.extract_and_copy_jar")
+class TestPySide6AndroidDeployWidgets(DeployTestBase):
+ @classmethod
+ def setUpClass(cls):
+ super().setUpClass()
+ example_widget_application = cls.example_root / "gui" / "analogclock"
+ cls.temp_example = Path(
+ shutil.copytree(example_widget_application, Path(cls.temp_dir) / "analogclock")
+ ).resolve()
+
+ def setUp(self):
+ os.chdir(self.temp_example)
+ self.config_file = self.temp_example / "pysidedeploy.spec"
+ self.buildozer_config = self.temp_example / "buildozer.spec"
+
+ @patch("deploy_lib.android.android_config.AndroidConfig._find_local_libs")
+ @patch("deploy_lib.android.android_config.AndroidConfig._find_dependent_qt_modules")
+ @patch("deploy_lib.android.android_config.find_qtlibs_in_wheel")
+ def test_dry_run(self, mock_qtlibs, mock_extraqtmodules, mock_local_libs, mock_extract_jar):
+ mock_qtlibs.return_value = self.pyside_wheel / "PySide6/Qt/lib"
+ mock_extraqtmodules.return_value = []
+ dependent_plugins = ["platforms_qtforandroid",
+ "platforminputcontexts_qtvirtualkeyboardplugin",
+ "iconengines_qsvgicon"]
+ mock_local_libs.return_value = [], dependent_plugins
+ self.android_deploy.main(name="android_app", shiboken_wheel=self.shiboken_wheel,
+ pyside_wheel=self.pyside_wheel, ndk_path=self.ndk_path,
+ dry_run=True, force=True)
+
+ self.assertEqual(mock_extract_jar.call_count, 0)
+ self.assertEqual(mock_qtlibs.call_count, 1)
+ self.assertEqual(mock_extraqtmodules.call_count, 1)
+ self.assertEqual(mock_local_libs.call_count, 1)
+
+ @patch("deploy_lib.android.buildozer.BuildozerConfig._BuildozerConfig__find_jars")
+ @patch("deploy_lib.android.android_config.AndroidConfig.recipes_exist")
+ @patch("deploy_lib.android.android_config.AndroidConfig._find_dependent_qt_modules")
+ @patch("deploy_lib.android.android_config.find_qtlibs_in_wheel")
+ def test_config(self, mock_qtlibs, mock_extraqtmodules, mock_recipes_exist, mock_find_jars,
+ mock_extract_jar):
+ jar_dir = "tmp/jar/PySide6/jar"
+ mock_extract_jar.return_value = Path(jar_dir)
+ mock_qtlibs.return_value = self.pyside_wheel / "PySide6/Qt/lib"
+ mock_extraqtmodules.return_value = []
+ mock_recipes_exist.return_value = True
+ jars, init_classes = ["/tmp/jar/PySide6/jar/Qt6Android.jar",
+ "/tmp/jar/PySide6/jar/Qt6AndroidBindings.jar"], []
+ mock_find_jars.return_value = jars, init_classes
+
+ self.android_deploy.main(name="android_app", shiboken_wheel=self.shiboken_wheel,
+ pyside_wheel=self.pyside_wheel, ndk_path=self.ndk_path,
+ init=True, force=True, keep_deployment_files=True)
+
+ self.assertEqual(mock_extract_jar.call_count, 1)
+ self.assertEqual(mock_qtlibs.call_count, 1)
+ self.assertEqual(mock_extraqtmodules.call_count, 1)
+ self.assertEqual(mock_recipes_exist.call_count, 1)
+ self.assertEqual(mock_find_jars.call_count, 1)
+ self.assertTrue(self.config_file.exists())
+ self.assertTrue(self.buildozer_config.exists())
+
+ # test config file contents
+ config_obj = self.deploy_lib.BaseConfig(config_file=self.config_file)
+ self.assertEqual(config_obj.get_value("app", "input_file"), "main.py")
+ self.assertEqual(config_obj.get_value("python", "android_packages"),
+ "buildozer==1.5.0,cython==0.29.33")
+ self.assertEqual(config_obj.get_value("android", "wheel_pyside"),
+ str(self.pyside_wheel.resolve()))
+ self.assertEqual(config_obj.get_value("android", "wheel_shiboken"),
+ str(self.shiboken_wheel.resolve()))
+ self.assertEqual(config_obj.get_value("buildozer", "mode"), "debug")
+ self.assertEqual(config_obj.get_value("buildozer", "recipe_dir"),
+ '')
+ self.assertEqual(config_obj.get_value("buildozer", "jars_dir"),
+ str(self.temp_example / jar_dir))
+ self.assertIn(str(self.ndk_path), config_obj.get_value("buildozer", "ndk_path"))
+ self.assertEqual(config_obj.get_value("buildozer", "sdk_path"), '')
+ expected_modules = {"Core", "Gui"}
+ obtained_modules = set(config_obj.get_value("qt", "modules").split(","))
+ self.assertEqual(obtained_modules, expected_modules)
+ expected_local_libs = ""
+ self.assertEqual(config_obj.get_value("buildozer", "local_libs"),
+ expected_local_libs)
+ self.assertEqual(config_obj.get_value("buildozer", "arch"), "x86_64")
+
+ # test buildozer config file contents
+ buildozer_config_obj = self.deploy_lib.BaseConfig(config_file=self.buildozer_config)
+ obtained_jars = set(buildozer_config_obj.get_value("app", "android.add_jars").split(','))
+ expected_jars = set(jars)
+ self.assertEqual(obtained_jars, expected_jars)
+ obtained_extra_args = buildozer_config_obj.get_value("app", "p4a.extra_args")
+ extra_args_patrn = re.compile("--qt-libs=(?P<modules>.*) --load-local-libs="
+ "(?P<local_libs>.*) --init-classes=(?P<init_classes>.*)")
+ match = extra_args_patrn.search(obtained_extra_args)
+ obtained_modules = match.group("modules").split(',')
+ obtained_local_libs = match.group("local_libs")
+ obtained_init_classes = match.group("init_classes")
+ self.assertEqual(set(obtained_modules), expected_modules)
+ self.assertEqual(obtained_local_libs, expected_local_libs)
+ self.assertEqual(obtained_init_classes, '')
+ expected_include_exts = "py,png,jpg,kv,atlas,qml,js"
+ obtained_include_exts = buildozer_config_obj.get_value("app", "source.include_exts")
+ self.assertEqual(expected_include_exts, obtained_include_exts)
+
+ self.config_file.unlink()
+ self.buildozer_config.unlink()
+
+ def test_errors(self, mock_extract_jar):
+ # test if error raises for non existing NDK
+ with self.assertRaises(FileNotFoundError) as context:
+ self.android_deploy.main(name="android_app", shiboken_wheel=self.shiboken_wheel,
+ pyside_wheel=self.pyside_wheel, force=True)
+ self.assertTrue("Unable to find Android NDK" in str(context.exception))
+
+ # test when cwd() is not project_dir
+ os.chdir(self.current_dir)
+ with self.assertRaises(RuntimeError) as context:
+ self.android_deploy.main(name="android_app", shiboken_wheel=self.shiboken_wheel,
+ pyside_wheel=self.pyside_wheel, init=True, force=True)
+ self.assertTrue("For Android deployment to work" in str(context.exception))
+
+
+@patch("deploy_lib.config.run_qmlimportscanner")
+@patch("deploy_lib.android.android_config.extract_and_copy_jar")
+class TestPySide6AndroidDeployQml(DeployTestBase):
+ @classmethod
+ def setUpClass(cls):
+ super().setUpClass()
+ # setting up example
+ example_qml_application = cls.example_root / "quick" / "models" / "stringlistmodel"
+ cls.temp_qml_example = Path(
+ shutil.copytree(example_qml_application, Path(cls.temp_dir) / "stringlistmodel")
+ ).resolve()
+
+ def setUp(self):
+ os.chdir(self.temp_qml_example)
+ self.config_file = self.temp_qml_example / "pysidedeploy.spec"
+ self.buildozer_config_file = self.temp_qml_example / "buildozer.spec"
+ (self.temp_qml_example / "stringlistmodel.py").rename(self.temp_qml_example / "main.py")
+ (self.temp_qml_example / "stringlistmodel.pyproject").unlink()
+
+ @patch("deploy_lib.android.android_config.AndroidConfig._find_local_libs")
+ @patch("deploy_lib.android.buildozer.BuildozerConfig._BuildozerConfig__find_jars")
+ @patch("deploy_lib.android.android_config.AndroidConfig.recipes_exist")
+ @patch("deploy_lib.android.android_config.AndroidConfig._find_dependent_qt_modules")
+ @patch("deploy_lib.android.android_config.find_qtlibs_in_wheel")
+ def test_config_with_Qml(self, mock_qtlibs, mock_extraqtmodules, mock_recipes_exist,
+ mock_find_jars, mock_local_libs, mock_extract_jar,
+ mock_qmlimportscanner):
+ # setting up mocks
+ jar_dir = "tmp/jar/PySide6/jar"
+ mock_extract_jar.return_value = Path(jar_dir)
+ mock_qtlibs.return_value = self.pyside_wheel / "PySide6/Qt/lib"
+ mock_extraqtmodules.return_value = ['Qml', 'Network', 'QmlModels', 'OpenGL']
+ mock_recipes_exist.return_value = True
+ jars, init_classes = ["/tmp/jar/PySide6/jar/Qt6Android.jar",
+ "/tmp/jar/PySide6/jar/Qt6AndroidBindings.jar",
+ "/tmp/jar/PySide6/jar/Qt6AndroidNetworkInformationBackend.jar",
+ "/tmp/jar/PySide6/jar/Qt6AndroidNetwork.jar"], []
+ mock_find_jars.return_value = jars, init_classes
+ dependent_plugins = ["platforms_qtforandroid",
+ "platforminputcontexts_qtvirtualkeyboardplugin",
+ "iconengines_qsvgicon"]
+ mock_local_libs.return_value = [], dependent_plugins
+ mock_qmlimportscanner.return_value = ["QtQuick"]
+
+ self.android_deploy.main(name="android_app", shiboken_wheel=self.shiboken_wheel,
+ pyside_wheel=self.pyside_wheel, ndk_path=self.ndk_path,
+ init=True, force=True, keep_deployment_files=True)
+
+ self.assertEqual(mock_extract_jar.call_count, 1)
+ self.assertEqual(mock_qtlibs.call_count, 1)
+ self.assertEqual(mock_extraqtmodules.call_count, 1)
+ self.assertEqual(mock_recipes_exist.call_count, 1)
+ self.assertEqual(mock_find_jars.call_count, 1)
+ self.assertEqual(mock_qmlimportscanner.call_count, 1)
+ self.assertTrue(self.config_file.exists())
+ self.assertTrue(self.buildozer_config_file.exists())
+
+ config_obj = self.deploy_lib.BaseConfig(config_file=self.config_file)
+ expected_modules = {"Quick", "Core", "Gui", "Network", "Qml", "QmlModels", "OpenGL"}
+ obtained_modules = set(config_obj.get_value("qt", "modules").split(","))
+ self.assertEqual(obtained_modules, expected_modules)
+ expected_local_libs = ""
+ self.assertEqual(config_obj.get_value("buildozer", "local_libs"),
+ expected_local_libs)
+ expected_qt_plugins = set(dependent_plugins)
+ obtained_qt_plugins = set(config_obj.get_value("android", "plugins").split(","))
+ self.assertEqual(expected_qt_plugins, obtained_qt_plugins)
+
+ # test buildozer config file contents
+ buildozer_config_obj = self.deploy_lib.BaseConfig(config_file=self.buildozer_config_file)
+ obtained_jars = set(buildozer_config_obj.get_value("app", "android.add_jars").split(','))
+ expected_jars = set(jars)
+ self.assertEqual(obtained_jars, expected_jars)
+ obtained_extra_args = buildozer_config_obj.get_value("app", "p4a.extra_args")
+ extra_args_patrn = re.compile("--qt-libs=(?P<modules>.*) --load-local-libs="
+ "(?P<local_libs>.*) --init-classes=(?P<init_classes>.*)")
+ match = extra_args_patrn.search(obtained_extra_args)
+ obtained_modules = match.group("modules").split(',')
+ obtained_local_libs = match.group("local_libs")
+ obtained_init_classes = match.group("init_classes")
+ self.assertEqual(set(obtained_modules), expected_modules)
+ self.assertEqual(obtained_local_libs, expected_local_libs)
+ self.assertEqual(obtained_init_classes, '')
+
+ self.config_file.unlink()
+ self.buildozer_config_file.unlink()
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/sources/pyside6/tests/tools/pyside6-deploy/CMakeLists.txt b/sources/pyside6/tests/tools/pyside6-deploy/CMakeLists.txt
new file mode 100644
index 000000000..7f010fbd6
--- /dev/null
+++ b/sources/pyside6/tests/tools/pyside6-deploy/CMakeLists.txt
@@ -0,0 +1 @@
+PYSIDE_TEST(test_pyside6_deploy.py)
diff --git a/sources/pyside6/tests/tools/pyside6-deploy/extensive_deploy_test.py b/sources/pyside6/tests/tools/pyside6-deploy/extensive_deploy_test.py
new file mode 100644
index 000000000..40afc7f5c
--- /dev/null
+++ b/sources/pyside6/tests/tools/pyside6-deploy/extensive_deploy_test.py
@@ -0,0 +1,88 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+"""
+ Extensive manual test of pyside6-deploy
+
+ Note: Not to be added into the CI
+"""
+
+import logging
+import unittest
+import tempfile
+import shutil
+import sys
+import os
+import importlib
+from pathlib import Path
+
+
+class TestPySide6Deploy(unittest.TestCase):
+ @classmethod
+ def setUpClass(cls):
+ cls.pyside_root = Path(__file__).parents[5].resolve()
+ example_root = cls.pyside_root / "examples"
+ example_widgets = example_root / "widgets" / "widgets" / "tetrix"
+ example_qml = example_root / "qml" / "editingmodel"
+ example_webenginequick = example_root / "webenginequick" / "nanobrowser"
+ cls.temp_dir = tempfile.mkdtemp()
+ cls.temp_example_widgets = Path(
+ shutil.copytree(example_widgets, Path(cls.temp_dir) / "tetrix")
+ ).resolve()
+ cls.temp_example_qml = Path(
+ shutil.copytree(example_qml, Path(cls.temp_dir) / "editingmodel")
+ ).resolve()
+ cls.temp_example_webenginequick = Path(
+ shutil.copytree(example_webenginequick, Path(cls.temp_dir) / "nanobrowser")
+ ).resolve()
+ cls.current_dir = Path.cwd()
+ cls.linux_onefile_icon = (
+ cls.pyside_root / "sources" / "pyside-tools" / "deploy_lib" / "pyside_icon.jpg"
+ )
+
+ sys.path.append(str(cls.pyside_root / "sources" / "pyside-tools"))
+ cls.deploy_lib = importlib.import_module("deploy_lib")
+ cls.deploy = importlib.import_module("deploy")
+ sys.modules["deploy"] = cls.deploy
+
+ def setUpWidgets(self):
+ os.chdir(self.temp_example_widgets)
+ self.main_file = self.temp_example_widgets / "tetrix.py"
+ self.config_file = self.temp_example_widgets / "pysidedeploy.spec"
+
+ def testWidget(self):
+ self.setUpWidgets()
+ self.deploy.main(self.main_file, name="widget_app", loglevel=logging.INFO,
+ keep_deployment_files=True, force=True)
+
+ print("Now testing Widget with config file")
+ self.deploy.main(self.main_file, config_file=self.config_file, loglevel=logging.INFO,
+ force=True)
+
+ def setUpQml(self):
+ os.chdir(self.temp_example_qml)
+ self.main_file = self.temp_example_qml / "main.py"
+ self.config_file = self.temp_example_qml / "pysidedeploy.spec"
+
+ def testQml(self):
+ self.setUpQml()
+ self.deploy.main(self.main_file, name="qml_app", loglevel=logging.INFO,
+ keep_deployment_files=True, force=True)
+
+ def testWebEngineQuickDryRun(self):
+ os.chdir(self.temp_example_webenginequick)
+ main_file = self.temp_example_webenginequick / "quicknanobrowser.py"
+ self.deploy.main(main_file, name="qml_app", keep_deployment_files=True,
+ loglevel=logging.INFO, force=True)
+
+ def tearDown(self) -> None:
+ super().tearDown()
+ os.chdir(self.current_dir)
+
+ @classmethod
+ def tearDownClass(cls) -> None:
+ shutil.rmtree(Path(cls.temp_dir))
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/sources/pyside6/tests/tools/pyside6-deploy/test_pyside6_deploy.py b/sources/pyside6/tests/tools/pyside6-deploy/test_pyside6_deploy.py
new file mode 100644
index 000000000..02293c33e
--- /dev/null
+++ b/sources/pyside6/tests/tools/pyside6-deploy/test_pyside6_deploy.py
@@ -0,0 +1,391 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+import unittest
+import tempfile
+import shutil
+import sys
+import os
+import importlib
+import platform
+from pathlib import Path
+from unittest.mock import patch
+from unittest import mock
+
+sys.path.append(os.fspath(Path(__file__).resolve().parents[2]))
+from init_paths import init_test_paths, _get_qt_lib_dir # noqa: E402
+init_test_paths(False)
+
+
+def is_pyenv_python():
+ pyenv_root = os.environ.get("PYENV_ROOT")
+
+ if pyenv_root and (resolved_exe := str(Path(sys.executable).resolve())):
+ return resolved_exe.startswith(pyenv_root)
+ return False
+
+
+class LongSortedOptionTest(unittest.TestCase):
+ @staticmethod
+ def _option_prepare(s):
+ """
+ Take a string and return a list obtained by text.split().
+ Options starting with "--" are also sorted."
+ """
+ items = s.split()
+ for idx in range(len(items)):
+ if items[idx].startswith("--"):
+ return items[:idx] + sorted(items[idx:])
+ return items
+
+ def assertEqual(self, text_a, text_b):
+ if (not isinstance(text_a, str) or not isinstance(text_b, str)
+ or (len(text_a) < 50 and len(text_b) < 50)):
+ return super().assertEqual(text_a, text_b)
+ sort_a = self._option_prepare(text_a)
+ sort_b = self._option_prepare(text_b)
+ return super().assertEqual(sort_a, sort_b)
+
+
+class DeployTestBase(LongSortedOptionTest):
+ @classmethod
+ def setUpClass(cls):
+ cls.pyside_root = Path(__file__).parents[5].resolve()
+ cls.example_root = cls.pyside_root / "examples"
+ cls.temp_dir = tempfile.mkdtemp()
+ cls.current_dir = Path.cwd()
+ tools_path = cls.pyside_root / "sources" / "pyside-tools"
+ cls.win_icon = tools_path / "deploy_lib" / "pyside_icon.ico"
+ cls.linux_icon = tools_path / "deploy_lib" / "pyside_icon.jpg"
+ cls.macos_icon = tools_path / "deploy_lib" / "pyside_icon.icns"
+ if tools_path not in sys.path:
+ sys.path.append(str(cls.pyside_root / "sources" / "pyside-tools"))
+ cls.deploy_lib = importlib.import_module("deploy_lib")
+ cls.deploy = importlib.import_module("deploy")
+ sys.modules["deploy"] = cls.deploy
+
+ # required for comparing long strings
+ cls.maxDiff = None
+
+ # print no outputs to stdout
+ sys.stdout = mock.MagicMock()
+
+ @classmethod
+ def tearDownClass(cls) -> None:
+ shutil.rmtree(Path(cls.temp_dir))
+
+ def tearDown(self) -> None:
+ super().tearDown()
+ os.chdir(self.current_dir)
+
+
+@unittest.skipIf(sys.platform == "darwin" and int(platform.mac_ver()[0].split('.')[0]) <= 11,
+ "Test only works on macOS version 12+")
+@patch("deploy_lib.config.QtDependencyReader.find_plugin_dependencies")
+class TestPySide6DeployWidgets(DeployTestBase):
+ @classmethod
+ def setUpClass(cls):
+ super().setUpClass()
+ example_widgets = cls.example_root / "widgets" / "widgets" / "tetrix"
+ cls.temp_example_widgets = Path(
+ shutil.copytree(example_widgets, Path(cls.temp_dir) / "tetrix")
+ ).resolve()
+
+ def setUp(self):
+ os.chdir(self.temp_example_widgets)
+ self.main_file = self.temp_example_widgets / "tetrix.py"
+ self.deployment_files = self.temp_example_widgets / "deployment"
+ # All the plugins included. This is different from plugins_nuitka, because Nuitka bundles
+ # some plugins by default
+ self.all_plugins = ["accessiblebridge", "egldeviceintegrations", "generic", "iconengines",
+ "imageformats", "platforminputcontexts", "platforms",
+ "platforms/darwin", "platformthemes", "styles", "xcbglintegrations"]
+ # Plugins that needs to be passed to Nuitka
+ plugins_nuitka = ("accessiblebridge,platforminputcontexts,platforms/darwin")
+ self.expected_run_cmd = (
+ f"{sys.executable} -m nuitka {str(self.main_file)} --follow-imports"
+ f" --enable-plugin=pyside6 --output-dir={str(self.deployment_files)} --quiet"
+ f" --noinclude-qt-translations"
+ f" --include-qt-plugins={plugins_nuitka}"
+ )
+ if sys.platform.startswith("linux"):
+ self.expected_run_cmd += f" --linux-icon={str(self.linux_icon)} --onefile"
+ elif sys.platform == "darwin":
+ self.expected_run_cmd += (f" --macos-app-icon={str(self.macos_icon)}"
+ " --macos-create-app-bundle --standalone")
+ elif sys.platform == "win32":
+ self.expected_run_cmd += f" --windows-icon-from-ico={str(self.win_icon)} --onefile"
+
+ if is_pyenv_python():
+ self.expected_run_cmd += " --static-libpython=no"
+ self.config_file = self.temp_example_widgets / "pysidedeploy.spec"
+
+ def testWidgetDryRun(self, mock_plugins):
+ mock_plugins.return_value = self.all_plugins
+ # Checking for dry run commands is equivalent to mocking the
+ # subprocess.check_call() in commands.py as the the dry run command
+ # is the command being run.
+ original_output = self.deploy.main(self.main_file, dry_run=True, force=True)
+ self.assertEqual(original_output, self.expected_run_cmd)
+
+ @patch("deploy_lib.dependency_util.QtDependencyReader.get_qt_libs_dir")
+ def testWidgetConfigFile(self, mock_sitepackages, mock_plugins):
+ mock_sitepackages.return_value = Path(_get_qt_lib_dir())
+ mock_plugins.return_value = self.all_plugins
+ # includes both dry run and config_file tests
+ # init
+ init_result = self.deploy.main(self.main_file, init=True, force=True)
+ self.assertEqual(init_result, None)
+
+ # test with config
+ original_output = self.deploy.main(config_file=self.config_file, dry_run=True, force=True)
+ self.assertEqual(original_output, self.expected_run_cmd)
+
+ # # test config file contents
+ config_obj = self.deploy_lib.BaseConfig(config_file=self.config_file)
+ self.assertEqual(config_obj.get_value("app", "input_file"), "tetrix.py")
+ self.assertEqual(config_obj.get_value("app", "project_dir"), ".")
+ self.assertEqual(config_obj.get_value("app", "exec_directory"), ".")
+ self.assertEqual(config_obj.get_value("python", "packages"),
+ "Nuitka==2.1")
+ self.assertEqual(config_obj.get_value("qt", "qml_files"), "")
+ equ_base = "--quiet --noinclude-qt-translations"
+ equ_value = equ_base + " --static-libpython=no" if is_pyenv_python() else equ_base
+ self.assertEqual(config_obj.get_value("nuitka", "extra_args"), equ_value)
+ self.assertEqual(config_obj.get_value("qt", "excluded_qml_plugins"), "")
+ expected_modules = {"Core", "Gui", "Widgets"}
+ if sys.platform != "win32":
+ expected_modules.add("DBus")
+ obtained_modules = set(config_obj.get_value("qt", "modules").split(","))
+ self.assertEqual(obtained_modules, expected_modules)
+ obtained_qt_plugins = config_obj.get_value("qt", "plugins").split(",")
+ self.assertEqual(obtained_qt_plugins.sort(), self.all_plugins.sort())
+ self.config_file.unlink()
+
+ def testErrorReturns(self, mock_plugins):
+ mock_plugins.return_value = self.all_plugins
+ # main file and config file does not exists
+ fake_main_file = self.main_file.parent / "main.py"
+ with self.assertRaises(RuntimeError) as context:
+ self.deploy.main(main_file=fake_main_file, config_file=self.config_file)
+ self.assertTrue("Directory does not contain main.py file." in str(context.exception))
+
+
+@unittest.skipIf(sys.platform == "darwin" and int(platform.mac_ver()[0].split('.')[0]) <= 11,
+ "Test only works on macOS version 12+")
+@patch("deploy_lib.config.QtDependencyReader.find_plugin_dependencies")
+class TestPySide6DeployQml(DeployTestBase):
+ @classmethod
+ def setUpClass(cls):
+ super().setUpClass()
+ example_qml = cls.example_root / "qml" / "editingmodel"
+ cls.temp_example_qml = Path(
+ shutil.copytree(example_qml, Path(cls.temp_dir) / "editingmodel")
+ ).resolve()
+
+ def setUp(self):
+ os.chdir(self.temp_example_qml)
+ self.main_file = self.temp_example_qml / "main.py"
+ self.deployment_files = self.temp_example_qml / "deployment"
+ self.first_qml_file = "main.qml"
+ self.second_qml_file = "MovingRectangle.qml"
+ # All the plugins included. This is different from plugins_nuitka, because Nuitka bundles
+ # some plugins by default
+ self.all_plugins = ["accessiblebridge", "egldeviceintegrations", "generic", "iconengines",
+ "imageformats", "networkaccess", "networkinformation",
+ "platforminputcontexts", "platforms", "platforms/darwin",
+ "platformthemes", "qmltooling", "scenegraph", "tls",
+ "xcbglintegrations"]
+ # Plugins that needs to be passed to Nuitka
+ plugins_nuitka = ("accessiblebridge,networkaccess,networkinformation,platforminputcontexts,"
+ "platforms/darwin,qml,qmltooling,scenegraph")
+ self.expected_run_cmd = (
+ f"{sys.executable} -m nuitka {str(self.main_file)} --follow-imports"
+ f" --enable-plugin=pyside6 --output-dir={str(self.deployment_files)} --quiet"
+ f" --noinclude-qt-translations"
+ f" --include-qt-plugins={plugins_nuitka}"
+ f" --include-data-files={str(self.temp_example_qml / self.first_qml_file)}="
+ f"./main.qml --include-data-files="
+ f"{str(self.temp_example_qml / self.second_qml_file)}=./MovingRectangle.qml"
+ )
+
+ if sys.platform != "win32":
+ self.expected_run_cmd += (
+ " --noinclude-dlls=libQt6Charts*"
+ " --noinclude-dlls=libQt6Quick3D* --noinclude-dlls=libQt6Sensors*"
+ " --noinclude-dlls=libQt6Test* --noinclude-dlls=libQt6WebEngine*"
+ )
+ else:
+ self.expected_run_cmd += (
+ " --noinclude-dlls=Qt6Charts*"
+ " --noinclude-dlls=Qt6Quick3D* --noinclude-dlls=Qt6Sensors*"
+ " --noinclude-dlls=Qt6Test* --noinclude-dlls=Qt6WebEngine*"
+ )
+
+ if sys.platform.startswith("linux"):
+ self.expected_run_cmd += f" --linux-icon={str(self.linux_icon)} --onefile"
+ elif sys.platform == "darwin":
+ self.expected_run_cmd += (f" --macos-app-icon={str(self.macos_icon)}"
+ " --macos-create-app-bundle --standalone")
+ elif sys.platform == "win32":
+ self.expected_run_cmd += f" --windows-icon-from-ico={str(self.win_icon)} --onefile"
+
+ if is_pyenv_python():
+ self.expected_run_cmd += " --static-libpython=no"
+ self.config_file = self.temp_example_qml / "pysidedeploy.spec"
+
+ @patch("deploy_lib.dependency_util.QtDependencyReader.get_qt_libs_dir")
+ def testQmlConfigFile(self, mock_sitepackages, mock_plugins):
+ mock_sitepackages.return_value = Path(_get_qt_lib_dir())
+ mock_plugins.return_value = self.all_plugins
+ # create config file
+ with patch("deploy_lib.config.run_qmlimportscanner") as mock_qmlimportscanner:
+ mock_qmlimportscanner.return_value = ["QtQuick"]
+ init_result = self.deploy.main(self.main_file, init=True, force=True)
+ self.assertEqual(init_result, None)
+
+ # test config file contents
+ config_obj = self.deploy_lib.BaseConfig(config_file=self.config_file)
+ self.assertEqual(config_obj.get_value("app", "input_file"), "main.py")
+ self.assertEqual(config_obj.get_value("app", "project_dir"), ".")
+ self.assertEqual(config_obj.get_value("app", "exec_directory"), ".")
+ self.assertEqual(config_obj.get_value("python", "packages"),
+ "Nuitka==2.1")
+ self.assertEqual(config_obj.get_value("qt", "qml_files"), "main.qml,MovingRectangle.qml")
+ equ_base = "--quiet --noinclude-qt-translations"
+ equ_value = equ_base + " --static-libpython=no" if is_pyenv_python() else equ_base
+ self.assertEqual(config_obj.get_value("nuitka", "extra_args"), equ_value)
+ self.assertEqual(
+ config_obj.get_value("qt", "excluded_qml_plugins"),
+ "QtCharts,QtQuick3D,QtSensors,QtTest,QtWebEngine",
+ )
+ expected_modules = {"Core", "Gui", "Qml", "Quick", "Network", "OpenGL", "QmlModels"}
+ if sys.platform != "win32":
+ expected_modules.add("DBus")
+ obtained_modules = set(config_obj.get_value("qt", "modules").split(","))
+ self.assertEqual(obtained_modules, expected_modules)
+ obtained_qt_plugins = config_obj.get_value("qt", "plugins").split(",")
+ self.assertEqual(obtained_qt_plugins.sort(), self.all_plugins.sort())
+ self.config_file.unlink()
+
+ def testQmlDryRun(self, mock_plugins):
+ mock_plugins.return_value = self.all_plugins
+ with patch("deploy_lib.config.run_qmlimportscanner") as mock_qmlimportscanner:
+ mock_qmlimportscanner.return_value = ["QtQuick"]
+ original_output = self.deploy.main(self.main_file, dry_run=True, force=True)
+ self.assertEqual(original_output, self.expected_run_cmd)
+ self.assertEqual(mock_qmlimportscanner.call_count, 1)
+
+ def testMainFileDryRun(self, mock_plugins):
+ mock_plugins.return_value = self.all_plugins
+ with patch("deploy_lib.config.run_qmlimportscanner") as mock_qmlimportscanner:
+ mock_qmlimportscanner.return_value = ["QtQuick"]
+ original_output = self.deploy.main(Path.cwd() / "main.py", dry_run=True, force=True)
+ self.assertEqual(original_output, self.expected_run_cmd)
+ self.assertEqual(mock_qmlimportscanner.call_count, 1)
+
+
+@unittest.skipIf(sys.platform == "darwin" and int(platform.mac_ver()[0].split('.')[0]) <= 11,
+ "Test only works on macOS version 12+")
+class TestPySide6DeployWebEngine(DeployTestBase):
+ @classmethod
+ def setUpClass(cls):
+ super().setUpClass()
+ example_webenginequick = cls.example_root / "webenginequick" / "nanobrowser"
+ cls.temp_example_webenginequick = Path(
+ shutil.copytree(example_webenginequick, Path(cls.temp_dir) / "nanobrowser")
+ ).resolve()
+
+ @patch("deploy_lib.config.QtDependencyReader.find_plugin_dependencies")
+ @patch("deploy_lib.dependency_util.QtDependencyReader.get_qt_libs_dir")
+ def testWebEngineQuickDryRun(self, mock_sitepackages, mock_plugins):
+ mock_sitepackages.return_value = Path(_get_qt_lib_dir())
+ all_plugins = ["accessiblebridge", "egldeviceintegrations", "generic", "iconengines",
+ "imageformats", "networkaccess", "networkinformation",
+ "platforminputcontexts", "platforms", "platforms/darwin",
+ "platformthemes", "qmltooling", "scenegraph", "tls",
+ "xcbglintegrations"]
+ mock_plugins.return_value = all_plugins
+ # this test case retains the QtWebEngine dlls
+ # setup
+ os.chdir(self.temp_example_webenginequick)
+ main_file = self.temp_example_webenginequick / "quicknanobrowser.py"
+ deployment_files = self.temp_example_webenginequick / "deployment"
+ # Plugins that needs to be passed to Nuitka
+ plugins_nuitka = ("accessiblebridge,networkaccess,networkinformation,platforminputcontexts,"
+ "platforms/darwin,qml,qmltooling,scenegraph")
+ qml_files = [
+ "ApplicationRoot.qml",
+ "BrowserDialog.qml",
+ "BrowserWindow.qml",
+ "DownloadView.qml",
+ "FindBar.qml",
+ "FullScreenNotification.qml",
+ ]
+ data_files_cmd = " ".join(
+ [
+ f"--include-data-files={str(self.temp_example_webenginequick / file)}=./{file}"
+ for file in qml_files
+ ]
+ )
+ expected_run_cmd = (
+ f"{sys.executable} -m nuitka {str(main_file)} --follow-imports"
+ f" --enable-plugin=pyside6 --output-dir={str(deployment_files)} --quiet"
+ f" --noinclude-qt-translations --include-qt-plugins=all"
+ f" {data_files_cmd}"
+ f" --include-qt-plugins={plugins_nuitka}"
+ )
+
+ if sys.platform != "win32":
+ expected_run_cmd += (
+ " --noinclude-dlls=libQt6Charts*"
+ " --noinclude-dlls=libQt6Quick3D* --noinclude-dlls=libQt6Sensors*"
+ " --noinclude-dlls=libQt6Test*"
+ )
+ else:
+ expected_run_cmd += (
+ " --noinclude-dlls=Qt6Charts*"
+ " --noinclude-dlls=Qt6Quick3D* --noinclude-dlls=Qt6Sensors*"
+ " --noinclude-dlls=Qt6Test*"
+ )
+
+ if sys.platform.startswith("linux"):
+ expected_run_cmd += f" --linux-icon={str(self.linux_icon)} --onefile"
+ elif sys.platform == "darwin":
+ expected_run_cmd += (f" --macos-app-icon={str(self.macos_icon)}"
+ " --macos-create-app-bundle --standalone")
+ elif sys.platform == "win32":
+ expected_run_cmd += f" --windows-icon-from-ico={str(self.win_icon)} --onefile"
+
+ config_file = self.temp_example_webenginequick / "pysidedeploy.spec"
+
+ # create config file
+ with patch("deploy_lib.config.run_qmlimportscanner") as mock_qmlimportscanner:
+ mock_qmlimportscanner.return_value = ["QtQuick", "QtWebEngine"]
+ init_result = self.deploy.main(main_file, init=True, force=True)
+ self.assertEqual(init_result, None)
+
+ # run dry_run
+ original_output = self.deploy.main(main_file, dry_run=True, force=True)
+ self.assertTrue(original_output, expected_run_cmd)
+ self.assertEqual(mock_qmlimportscanner.call_count, 2)
+
+ # test config file contents
+ config_obj = self.deploy_lib.BaseConfig(config_file=config_file)
+ self.assertEqual(config_obj.get_value("app", "input_file"), "quicknanobrowser.py")
+ self.assertEqual(config_obj.get_value("qt", "qml_files"), ",".join(qml_files))
+ self.assertEqual(
+ config_obj.get_value("qt", "excluded_qml_plugins"),
+ "QtCharts,QtQuick3D,QtSensors,QtTest",
+ )
+ expected_modules = {"Core", "Gui", "Quick", "Qml", "WebEngineQuick", "Network", "OpenGL",
+ "Positioning", "WebEngineCore", "WebChannel", "WebChannelQuick",
+ "QmlModels"}
+ if sys.platform != "win32":
+ expected_modules.add("DBus")
+ obtained_modules = set(config_obj.get_value("qt", "modules").split(","))
+ self.assertEqual(obtained_modules, expected_modules)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/sources/pyside6/tests/tools/pyside6-qml/CMakeLists.txt b/sources/pyside6/tests/tools/pyside6-qml/CMakeLists.txt
new file mode 100644
index 000000000..4d801264a
--- /dev/null
+++ b/sources/pyside6/tests/tools/pyside6-qml/CMakeLists.txt
@@ -0,0 +1 @@
+PYSIDE_TEST(test_pyside6_qml.py)
diff --git a/sources/pyside6/tests/tools/pyside6-qml/test_pyside6_qml.py b/sources/pyside6/tests/tools/pyside6-qml/test_pyside6_qml.py
new file mode 100644
index 000000000..fdaf3d471
--- /dev/null
+++ b/sources/pyside6/tests/tools/pyside6-qml/test_pyside6_qml.py
@@ -0,0 +1,75 @@
+# Copyright (C) 2018 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+"""Test for pyside6-qml
+
+The tests does a unittest and some integration tests for pyside6-qml."""
+
+from asyncio.subprocess import PIPE
+import os
+import sys
+import unittest
+import subprocess
+import importlib.util
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[2]))
+from init_paths import init_test_paths
+init_test_paths(False)
+
+
+class TestPySide6QmlUnit(unittest.TestCase):
+ def setUp(self) -> None:
+ super().setUp()
+ self._dir = Path(__file__).parent.resolve()
+ self.pyside_root = self._dir.parents[4]
+
+ self.pyqml_path = self.pyside_root / "sources" / "pyside-tools" / "qml.py"
+ self.core_qml_path = (self.pyside_root / "examples" / "qml" /
+ "tutorials" / "extending-qml-advanced" / "adding")
+
+ self.pyqml_run_cmd = [sys.executable, os.fspath(self.pyqml_path)]
+
+ # self.pyqml_path will not abe able to find pyside and other related binaries, if not added
+ # to path explicitly. The following lines does that.
+ self.test_env = os.environ.copy()
+ self.test_env["PYTHONPATH"] = os.pathsep + os.pathsep.join(sys.path)
+
+ def testImportQmlModules(self):
+
+ # because pyside-tools has a hyphen, a normal 'from pyside-tools import qml' cannot be done
+ spec = importlib.util.spec_from_file_location("qml", self.pyqml_path)
+ pyqml = importlib.util.module_from_spec(spec)
+ spec.loader.exec_module(pyqml)
+ pyqml.import_qml_modules(self.core_qml_path)
+
+ # path added to sys.path
+ self.assertIn(str(self.core_qml_path), sys.path)
+
+ # module is imported
+ self.assertIn("person", sys.modules.keys())
+
+ # remove the imported modules
+ sys.path.remove(str(self.core_qml_path))
+ del sys.modules["person"]
+
+ # test with module_paths - dir
+ self.person_path = self.core_qml_path / "person.py"
+ pyqml.import_qml_modules(self.core_qml_path, module_paths=[self.core_qml_path])
+ self.assertIn(str(self.core_qml_path), sys.path)
+ self.assertIn("person", sys.modules.keys())
+
+ # test with module_paths - file - in testCoreApplication(self)
+
+ def testCoreApplication(self):
+ self.pyqml_run_cmd.extend(["--apptype", "core"])
+ self.pyqml_run_cmd.append(str(self.core_qml_path / "People" / "Main.qml"))
+ self.pyqml_run_cmd.extend(["-I", str(self.core_qml_path / "person.py")])
+
+ result = subprocess.run(self.pyqml_run_cmd, stdout=PIPE, env=self.test_env)
+ self.assertEqual(result.returncode, 0)
+ self.assertEqual(result.stdout.rstrip(), b"{'_name': 'Bob Jones', '_shoe_size': 12}")
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside6/tests/util/color.py b/sources/pyside6/tests/util/color.py
index aee452ad8..e85be28f3 100644
--- a/sources/pyside6/tests/util/color.py
+++ b/sources/pyside6/tests/util/color.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Function to print a colored line to terminal'''
diff --git a/sources/pyside6/tests/util/helper/basicpyslotcase.py b/sources/pyside6/tests/util/helper/basicpyslotcase.py
index 511db8e08..500735c3a 100644
--- a/sources/pyside6/tests/util/helper/basicpyslotcase.py
+++ b/sources/pyside6/tests/util/helper/basicpyslotcase.py
@@ -1,30 +1,7 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import gc
class BasicPySlotCase(object):
@@ -40,6 +17,8 @@ class BasicPySlotCase(object):
del self.args
except:
pass
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
def cb(self, *args):
'''Simple callback with arbitrary arguments.
diff --git a/sources/pyside6/tests/util/helper/docmodifier.py b/sources/pyside6/tests/util/helper/docmodifier.py
index 5db344f62..cfb665640 100644
--- a/sources/pyside6/tests/util/helper/docmodifier.py
+++ b/sources/pyside6/tests/util/helper/docmodifier.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Helper metaclass do 'decorate' docstrings from base test case classes'''
@@ -108,9 +83,9 @@ if __name__ == '__main__':
doc_filter = lambda x: x.startswith('test')
doc_suffix = 'suffix'
- assert(Implementing.testBase.__doc__ == 'prefixbasesuffix')
- assert(Implementing.testWithoutDoc.__doc__ == None)
- assert(OnlySuffix.testBase.__doc__ == 'basesuffix')
- assert(OnlySuffix.testWithoutDoc.__doc__ == None)
- assert(OnlyPrefix.testBase.__doc__ == 'prefixbase')
- assert(OnlyPrefix.testWithoutDoc.__doc__ == None)
+ assert (Implementing.testBase.__doc__ == 'prefixbasesuffix')
+ assert (Implementing.testWithoutDoc.__doc__ == None)
+ assert (OnlySuffix.testBase.__doc__ == 'basesuffix')
+ assert (OnlySuffix.testWithoutDoc.__doc__ == None)
+ assert (OnlyPrefix.testBase.__doc__ == 'prefixbase')
+ assert (OnlyPrefix.testWithoutDoc.__doc__ == None)
diff --git a/sources/pyside6/tests/util/helper/helper.py b/sources/pyside6/tests/util/helper/helper.py
index f500e3fa9..f80753f1f 100644
--- a/sources/pyside6/tests/util/helper/helper.py
+++ b/sources/pyside6/tests/util/helper/helper.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Helper classes and functions'''
diff --git a/sources/pyside6/tests/util/helper/timedqapplication.py b/sources/pyside6/tests/util/helper/timedqapplication.py
index f172878ef..d9250a9e0 100644
--- a/sources/pyside6/tests/util/helper/timedqapplication.py
+++ b/sources/pyside6/tests/util/helper/timedqapplication.py
@@ -1,33 +1,9 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Helper classes and functions'''
+import gc
import unittest
from PySide6.QtCore import QTimer
@@ -47,3 +23,5 @@ class TimedQApplication(unittest.TestCase):
def tearDown(self):
'''Delete resources'''
del self.app
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
diff --git a/sources/pyside6/tests/util/helper/timedqguiapplication.py b/sources/pyside6/tests/util/helper/timedqguiapplication.py
new file mode 100644
index 000000000..3d9a4217c
--- /dev/null
+++ b/sources/pyside6/tests/util/helper/timedqguiapplication.py
@@ -0,0 +1,27 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+'''Helper classes and functions'''
+
+import gc
+import unittest
+
+from PySide6.QtCore import QTimer
+from PySide6.QtGui import QGuiApplication
+
+
+class TimedQGuiApplication(unittest.TestCase):
+ '''Helper class with timed QGuiApplication exec loop'''
+
+ def setUp(self, timeout=100):
+ '''Sets up this Application.
+
+ timeout - timeout in millisseconds'''
+ self.app = QGuiApplication.instance() or QGuiApplication([])
+ QTimer.singleShot(timeout, self.app.quit)
+
+ def tearDown(self):
+ '''Delete resources'''
+ del self.app
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
diff --git a/sources/pyside6/tests/util/helper/usesqapplication.py b/sources/pyside6/tests/util/helper/usesqapplication.py
index abb2ca238..f62e320f4 100644
--- a/sources/pyside6/tests/util/helper/usesqapplication.py
+++ b/sources/pyside6/tests/util/helper/usesqapplication.py
@@ -1,51 +1,43 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Helper classes and functions'''
+import gc
+import sys
import unittest
-from PySide6.QtWidgets import QApplication
+# This version avoids explicit import in order to adapt to the
+# import decision of the main module.
+# This should work with every compatible library.
+# Replaces the QtGui and QtCore versions as well.
class UsesQApplication(unittest.TestCase):
- '''Helper class to provide QApplication instances'''
-
- qapplication = True
+ '''Helper class to provide Q(Core|Gui|)Application instances
+ Just connect or call self.exit_app_cb. When called, will ask
+ self.app to exit.
+ '''
def setUp(self):
'''Creates the QApplication instance'''
-
+ module = sys.modules[sorted(_ for _ in sys.modules
+ if _.endswith((".QtCore", ".QtGui", ".QtWidgets")))[-1]]
+ found = module.__name__.rsplit(".")[-1]
+ cls = getattr(module, {"QtWidgets": "QApplication",
+ "QtGui": "QGuiApplication",
+ "QtCore": "QCoreApplication"}[found])
# Simple way of making instance a singleton
- super(UsesQApplication, self).setUp()
- self.app = QApplication.instance() or QApplication([])
+ super().setUp()
+ self.app = cls.instance() or cls([])
def tearDown(self):
'''Deletes the reference owned by self'''
del self.app
- super(UsesQApplication, self).tearDown()
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
+ super().tearDown()
+
+ def exit_app_cb(self):
+ '''Quits the application'''
+ self.app.exit(0)
diff --git a/sources/pyside6/tests/util/helper/usesqcoreapplication.py b/sources/pyside6/tests/util/helper/usesqcoreapplication.py
deleted file mode 100644
index 9f4a4280d..000000000
--- a/sources/pyside6/tests/util/helper/usesqcoreapplication.py
+++ /dev/null
@@ -1,59 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-'''Helper classes and functions'''
-
-import unittest
-
-from PySide6.QtCore import QCoreApplication
-
-_core_instance = None
-
-
-class UsesQCoreApplication(unittest.TestCase):
- '''Helper class for test cases that require an QCoreApplication
- Just connect or call self.exit_app_cb. When called, will ask
- self.app to exit.
- '''
-
- def setUp(self):
- '''Set up resources'''
-
- global _core_instance
- if _core_instance is None:
- _core_instance = QCoreApplication([])
-
- self.app = _core_instance
-
- def tearDown(self):
- '''Release resources'''
- del self.app
-
- def exit_app_cb(self):
- '''Quits the application'''
- self.app.exit(0)
diff --git a/sources/pyside6/tests/util/helper/usesqguiapplication.py b/sources/pyside6/tests/util/helper/usesqguiapplication.py
deleted file mode 100644
index 65c4f4939..000000000
--- a/sources/pyside6/tests/util/helper/usesqguiapplication.py
+++ /dev/null
@@ -1,49 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-'''Helper classes and functions'''
-
-import unittest
-
-from PySide6.QtGui import QGuiApplication
-
-
-class UsesQGuiApplication(unittest.TestCase):
- '''Helper class to provide QGuiApplication instances'''
-
- def setUp(self):
- '''Creates the QGuiApplication instance'''
-
- # Simple way of making instance a singleton
- super(UsesQGuiApplication, self).setUp()
- self.app = QGuiApplication.instance() or QGuiApplication([])
-
- def tearDown(self):
- '''Deletes the reference owned by self'''
- del self.app
- super(UsesQGuiApplication, self).tearDown()
diff --git a/sources/pyside6/tests/util/httpd.py b/sources/pyside6/tests/util/httpd.py
index dbd78aeb8..4e6be4881 100644
--- a/sources/pyside6/tests/util/httpd.py
+++ b/sources/pyside6/tests/util/httpd.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import http.server as BaseHTTPServer
import os
diff --git a/sources/pyside6/tests/util/processtimer.py b/sources/pyside6/tests/util/processtimer.py
index 35102e592..e471cf167 100644
--- a/sources/pyside6/tests/util/processtimer.py
+++ b/sources/pyside6/tests/util/processtimer.py
@@ -1,32 +1,6 @@
#!/usr/bin/env python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import time
@@ -53,7 +27,7 @@ class ProcessTimer(object):
def waitfor(self):
time_passed = 0
- while(self.proc.poll() is None and time_passed < self.timeout):
+ while (self.proc.poll() is None and time_passed < self.timeout):
time_passed = time_passed + 1
time.sleep(1)
diff --git a/sources/pyside6/tests/util/pyqt_diff.py b/sources/pyside6/tests/util/pyqt_diff.py
deleted file mode 100644
index ca10ef049..000000000
--- a/sources/pyside6/tests/util/pyqt_diff.py
+++ /dev/null
@@ -1,64 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-'''Script to show the difference between PyQt5 and ours'''
-
-import sys
-
-from color import print_colored
-
-
-def check_module_diff(module_name):
- '''Difference between PySide6 and PyQt5 versions of qt bindings.
- Returns a tuple with the members present only on PySide6 and only on PyQt5'''
- shiboken_module = getattr(__import__('PySide6.' + module_name), module_name)
- orig_module = getattr(__import__('PyQt5.' + module_name), module_name)
-
- shiboken_set = set(dir(shiboken_module))
- orig_set = set(dir(orig_module))
-
- return sorted(shiboken_set - orig_set), sorted(orig_set - shiboken_set)
-
-
-def main(argv=None):
- if argv is None:
- argv = sys.argv
-
- module_name = argv[1] if len(argv) >= 2 else 'QtCore'
-
- only_shiboken, only_orig = check_module_diff(module_name)
-
- print_colored('Only on Shiboken version')
- print(only_shiboken)
-
- print_colored('Only on SIP version')
- print(only_orig)
-
-
-if __name__ == '__main__':
- main()
diff --git a/sources/pyside6/tests/util/rename_imports.sh b/sources/pyside6/tests/util/rename_imports.sh
index 64b1123ef..1ec900cb3 100755
--- a/sources/pyside6/tests/util/rename_imports.sh
+++ b/sources/pyside6/tests/util/rename_imports.sh
@@ -1,32 +1,6 @@
#!/bin/bash
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
# Rename import statements from .py script to use a specific module name
set -e
diff --git a/sources/pyside6/tests/util/test_processtimer.py b/sources/pyside6/tests/util/test_processtimer.py
index 026e14b6b..cee6aa14d 100644
--- a/sources/pyside6/tests/util/test_processtimer.py
+++ b/sources/pyside6/tests/util/test_processtimer.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'Tests for processtimer.py'
diff --git a/sources/shiboken6/.cmake.conf b/sources/shiboken6/.cmake.conf
new file mode 100644
index 000000000..ecc0a433d
--- /dev/null
+++ b/sources/shiboken6/.cmake.conf
@@ -0,0 +1,5 @@
+set(shiboken_MAJOR_VERSION "6")
+set(shiboken_MINOR_VERSION "7")
+set(shiboken_MICRO_VERSION "0")
+set(shiboken_PRE_RELEASE_VERSION_TYPE "a")
+set(shiboken_PRE_RELEASE_VERSION "1")
diff --git a/sources/shiboken6/ApiExtractor/CMakeLists.txt b/sources/shiboken6/ApiExtractor/CMakeLists.txt
index 8d2d194ab..7aa2fbd11 100644
--- a/sources/shiboken6/ApiExtractor/CMakeLists.txt
+++ b/sources/shiboken6/ApiExtractor/CMakeLists.txt
@@ -1,51 +1,88 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(apiextractor)
-cmake_minimum_required(VERSION 3.16)
-cmake_policy(VERSION 3.16)
+cmake_minimum_required(VERSION 3.18)
+cmake_policy(VERSION 3.18)
set(CMAKE_AUTOMOC ON)
set(apiextractor_SRC
-apiextractor.cpp
-apiextractorresult.cpp
-abstractmetaargument.cpp
-abstractmetabuilder.cpp
-abstractmetaenum.cpp
-abstractmetafield.cpp
-abstractmetafunction.cpp
-abstractmetatype.cpp
-abstractmetalang.cpp
-codesniphelpers.cpp
-conditionalstreamreader.cpp
-documentation.cpp
-dotview.cpp
-enclosingclassmixin.cpp
-fileout.cpp
-messages.cpp
-modifications.cpp
-propertyspec.cpp
-reporthandler.cpp
-sourcelocation.cpp
-typeparser.cpp
-typesystem.cpp
-typesystemparser.cpp
-include.cpp
-typedatabase.cpp
-textstream.cpp
+abstractmetaargument.cpp abstractmetaargument.h
+abstractmetabuilder.cpp abstractmetabuilder.h abstractmetabuilder_p.h
+abstractmetabuilder_helpers.cpp
+abstractmetaenum.cpp abstractmetaenum.h
+abstractmetafield.cpp abstractmetafield.h
+abstractmetafunction.cpp abstractmetafunction.h
+abstractmetalang.cpp abstractmetalang.h abstractmetalang_helpers.h abstractmetalang_typedefs.h
+abstractmetatype.cpp abstractmetatype.h
+addedfunction.cpp addedfunction.h addedfunction_p.h
+anystringview_helpers.cpp anystringview_helpers.h
+apiextractor.cpp apiextractor.h apiextractorflags.h
+apiextractorresult.cpp apiextractorresult.h
+arraytypeentry.h
+classdocumentation.cpp classdocumentation.h
+codesnip.cpp codesnip.h
+codesniphelpers.cpp codesniphelpers.h
+complextypeentry.h
+conditionalstreamreader.cpp conditionalstreamreader.h
+configurabletypeentry.h
+constantvaluetypeentry.h
+containertypeentry.h
+customconversion.cpp customconversion.h customconversion_typedefs.h
+customtypenentry.h
+debughelpers_p.h
+dependency.h
+documentation.cpp documentation.h
+dotview.cpp dotview.h
+enclosingclassmixin.cpp enclosingclassmixin.h
+enumtypeentry.h
+enumvaluetypeentry.h
+exception.h
+fileout.cpp fileout.h
+flagstypeentry.h
+functiontypeentry.h
+graph.h
+header_paths.h
+include.cpp include.h
+messages.cpp messages.h
+modifications.cpp modifications.h modifications_typedefs.h
+namespacetypeentry.h
+objecttypeentry.h
+optionsparser.cpp optionsparser.h
+predefined_templates.cpp predefined_templates.h
+primitivetypeentry.h
+propertyspec.cpp propertyspec.h
+pymethoddefentry.cpp pymethoddefentry.h
+pythontypeentry.h
+reporthandler.cpp reporthandler.h
+smartpointertypeentry.h
+sourcelocation.cpp sourcelocation.h
+templateargumententry.h
+textstream.cpp textstream.h
+typedatabase.cpp typedatabase.h typedatabase_p.h typedatabase_typedefs.h
+typedefentry.h
+typeparser.cpp typeparser.h
+typesystem.cpp typesystem.h typesystem_enums.h typesystem_typedefs.h
+typesystemparser.cpp typesystemparser_p.h
+usingmember.h
+valuetypeentry.h
+varargstypeentry.h
+voidtypeentry.h
+xmlutils.cpp xmlutils.h xmlutils_libxslt.h xmlutils_qt.h
# Clang
-clangparser/compilersupport.cpp
-clangparser/clangparser.cpp
-clangparser/clangbuilder.cpp
-clangparser/clangdebugutils.cpp
-clangparser/clangutils.cpp
+clangparser/clangbuilder.cpp clangparser/clangbuilder.h
+clangparser/clangdebugutils.cpp clangparser/clangdebugutils.h
+clangparser/clangparser.cpp clangparser/clangparser.h
+clangparser/clangutils.cpp clangparser/clangutils.h
+clangparser/compilersupport.cpp clangparser/compilersupport.h
# Old parser
-parser/typeinfo.cpp
-parser/codemodel.cpp
-parser/enumvalue.cpp
-xmlutils.cpp
+parser/codemodel.cpp parser/codemodel.h parser/codemodel_fwd.h parser/codemodel_enums.h
+parser/enumvalue.cpp parser/enumvalue.h
+parser/typeinfo.cpp parser/typeinfo.h
)
-find_package(Qt${QT_MAJOR_VERSION}Xml 6.0)
find_package(LibXml2 2.6.32)
find_package(LibXslt 1.1.19)
@@ -57,7 +94,7 @@ endif()
if(NOT HAS_LIBXSLT)
set(DISABLE_DOCSTRINGS TRUE)
message(WARNING
- "Documentation will not be built due to missing dependency (no Qt5XmlPatterns found).")
+ "Documentation will not be built due to missing dependency (libxslt not found).")
endif()
# Export to parent scope so that generator/CMakeLists.txt gets it
@@ -68,7 +105,7 @@ target_include_directories(apiextractor PRIVATE ${CLANG_INCLUDE_DIRS}
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/parser)
-target_link_libraries(apiextractor PUBLIC Qt${QT_MAJOR_VERSION}::Core)
+target_link_libraries(apiextractor PUBLIC Qt::Core)
target_link_libraries(apiextractor PRIVATE libclang)
if (HAS_LIBXSLT)
@@ -81,17 +118,20 @@ if (HAS_LIBXSLT)
endif()
if (NOT DISABLE_DOCSTRINGS)
- target_sources(apiextractor PRIVATE docparser.cpp
- doxygenparser.cpp
- qtdocparser.cpp)
+ target_sources(apiextractor PRIVATE
+ docparser.cpp docparser.h
+ doxygenparser.cpp doxygenparser.h
+ qtdocparser.cpp qtdocparser.h)
endif()
-target_compile_definitions(apiextractor PRIVATE CMAKE_CXX_COMPILER="${CMAKE_CXX_COMPILER}")
+target_compile_definitions(apiextractor
+ PRIVATE CMAKE_CXX_COMPILER="${CMAKE_CXX_COMPILER}"
+ PRIVATE QT_LEAN_HEADERS=1)
set(LIB_INSTALL_DIR "lib${LIB_SUFFIX}" CACHE PATH "The subdirectory relative to the install prefix where libraries will be installed (default is /lib${LIB_SUFFIX})" FORCE)
if (BUILD_TESTS)
- find_package(Qt${QT_MAJOR_VERSION}Test 6.0 REQUIRED)
+ find_package(Qt6 REQUIRED COMPONENTS Test)
set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/tests)
enable_testing()
add_subdirectory(tests)
diff --git a/sources/shiboken6/ApiExtractor/abstractmetaargument.cpp b/sources/shiboken6/ApiExtractor/abstractmetaargument.cpp
index 366fc00a1..05cebe10a 100644
--- a/sources/shiboken6/ApiExtractor/abstractmetaargument.cpp
+++ b/sources/shiboken6/ApiExtractor/abstractmetaargument.cpp
@@ -1,37 +1,17 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "abstractmetaargument.h"
+#include "abstractmetatype.h"
#include "documentation.h"
+#include "qtcompat.h"
+
#include <QtCore/QDebug>
#include <QtCore/QSharedData>
+using namespace Qt::StringLiterals;
+
class AbstractMetaArgumentData : public QSharedData
{
public:
@@ -39,11 +19,13 @@ public:
QString m_name;
AbstractMetaType m_type;
+ AbstractMetaType m_modifiedType;
bool m_hasName = false;
Documentation m_doc;
QString m_expression;
QString m_originalExpression;
int m_argumentIndex = 0;
+ bool m_modifiedRemoved = false;
};
AbstractMetaArgument::AbstractMetaArgument() : d(new AbstractMetaArgumentData)
@@ -56,9 +38,9 @@ AbstractMetaArgument::AbstractMetaArgument(const AbstractMetaArgument &) = defau
AbstractMetaArgument &AbstractMetaArgument::operator=(const AbstractMetaArgument &) = default;
-AbstractMetaArgument::AbstractMetaArgument(AbstractMetaArgument &&) = default;
+AbstractMetaArgument::AbstractMetaArgument(AbstractMetaArgument &&) noexcept = default;
-AbstractMetaArgument &AbstractMetaArgument::operator=(AbstractMetaArgument &&) = default;
+AbstractMetaArgument &AbstractMetaArgument::operator=(AbstractMetaArgument &&) noexcept = default;
const AbstractMetaType &AbstractMetaArgument::type() const
{
@@ -68,7 +50,34 @@ const AbstractMetaType &AbstractMetaArgument::type() const
void AbstractMetaArgument::setType(const AbstractMetaType &type)
{
if (d->m_type != type)
- d->m_type = type;
+ d->m_type = d->m_modifiedType = type;
+}
+
+const AbstractMetaType &AbstractMetaArgument::modifiedType() const
+{
+ return d->m_modifiedType;
+}
+
+bool AbstractMetaArgument::isTypeModified() const
+{
+ return modifiedType() != type();
+}
+
+bool AbstractMetaArgument::isModifiedRemoved() const
+{
+ return d->m_modifiedRemoved;
+}
+
+void AbstractMetaArgument::setModifiedRemoved(bool v)
+{
+ if (d->m_modifiedRemoved != v)
+ d->m_modifiedRemoved = v;
+}
+
+void AbstractMetaArgument::setModifiedType(const AbstractMetaType &type)
+{
+ if (d->m_modifiedType != type)
+ d->m_modifiedType = type;
}
QString AbstractMetaArgument::name() const
@@ -144,9 +153,9 @@ bool AbstractMetaArgument::hasModifiedDefaultValueExpression() const
QString AbstractMetaArgumentData::toString() const
{
- QString result = m_type.name() + QLatin1Char(' ') + m_name;
+ QString result = m_type.name() + u' ' + m_name;
if (!m_expression.isEmpty())
- result += QLatin1String(" = ") + m_expression;
+ result += u" = "_s + m_expression;
return result;
}
@@ -182,7 +191,7 @@ QDebug operator<<(QDebug d, const AbstractMetaArgument *aa)
d.noquote();
d.nospace();
d << "AbstractMetaArgument(";
- if (aa)
+ if (aa != nullptr)
d << aa->toString();
else
d << '0';
diff --git a/sources/shiboken6/ApiExtractor/abstractmetaargument.h b/sources/shiboken6/ApiExtractor/abstractmetaargument.h
index b5fe22db7..38402e369 100644
--- a/sources/shiboken6/ApiExtractor/abstractmetaargument.h
+++ b/sources/shiboken6/ApiExtractor/abstractmetaargument.h
@@ -1,43 +1,14 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef ABSTRACTMETAARGUMENT_H
#define ABSTRACTMETAARGUMENT_H
-#include "abstractmetalang_typedefs.h"
-#include "abstractmetatype.h"
-#include "typesystem_enums.h"
-#include "typesystem_typedefs.h"
-
#include <QtCore/QSharedDataPointer>
QT_FORWARD_DECLARE_CLASS(QDebug)
+class AbstractMetaType;
class AbstractMetaArgumentData;
class Documentation;
@@ -48,12 +19,17 @@ public:
~AbstractMetaArgument();
AbstractMetaArgument(const AbstractMetaArgument &);
AbstractMetaArgument &operator=(const AbstractMetaArgument &);
- AbstractMetaArgument(AbstractMetaArgument &&);
- AbstractMetaArgument &operator=(AbstractMetaArgument &&);
-
+ AbstractMetaArgument(AbstractMetaArgument &&) noexcept;
+ AbstractMetaArgument &operator=(AbstractMetaArgument &&) noexcept;
const AbstractMetaType &type() const;
void setType(const AbstractMetaType &type);
+ void setModifiedType(const AbstractMetaType &type);
+ const AbstractMetaType &modifiedType() const;
+ bool isTypeModified() const;
+
+ bool isModifiedRemoved() const;
+ void setModifiedRemoved(bool v);
QString name() const;
void setName(const QString &name, bool realName = true);
diff --git a/sources/shiboken6/ApiExtractor/abstractmetabuilder.cpp b/sources/shiboken6/ApiExtractor/abstractmetabuilder.cpp
index 4ef6132e1..89d636964 100644
--- a/sources/shiboken6/ApiExtractor/abstractmetabuilder.cpp
+++ b/sources/shiboken6/ApiExtractor/abstractmetabuilder.cpp
@@ -1,43 +1,34 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "abstractmetabuilder_p.h"
+#include "abstractmetaargument.h"
#include "abstractmetaenum.h"
#include "abstractmetafield.h"
#include "abstractmetafunction.h"
+#include "abstractmetatype.h"
+#include "addedfunction.h"
#include "graph.h"
+#include "debughelpers_p.h"
#include "exception.h"
#include "messages.h"
#include "propertyspec.h"
#include "reporthandler.h"
#include "sourcelocation.h"
#include "typedatabase.h"
-#include "typesystem.h"
+#include "enumtypeentry.h"
+#include "enumvaluetypeentry.h"
+#include "arraytypeentry.h"
+#include "constantvaluetypeentry.h"
+#include "containertypeentry.h"
+#include "flagstypeentry.h"
+#include "functiontypeentry.h"
+#include "namespacetypeentry.h"
+#include "primitivetypeentry.h"
+#include "smartpointertypeentry.h"
+#include "templateargumententry.h"
+#include "typedefentry.h"
+#include "typesystemtypeentry.h"
#include "usingmember.h"
#include "parser/codemodel.h"
@@ -46,10 +37,13 @@
#include <clangparser/clangutils.h>
#include <clangparser/compilersupport.h>
+#include "qtcompat.h"
+
#include <QtCore/QDebug>
#include <QtCore/QDir>
#include <QtCore/QFile>
#include <QtCore/QFileInfo>
+#include <QtCore/QMetaObject>
#include <QtCore/QQueue>
#include <QtCore/QRegularExpression>
#include <QtCore/QTemporaryFile>
@@ -59,11 +53,11 @@
#include <algorithm>
#include <memory>
-static inline QString colonColon() { return QStringLiteral("::"); }
+using namespace Qt::StringLiterals;
static QString stripTemplateArgs(const QString &name)
{
- int pos = name.indexOf(QLatin1Char('<'));
+ const auto pos = name.indexOf(u'<');
return pos < 0 ? name : name.left(pos);
}
@@ -73,18 +67,37 @@ static void fixArgumentIndexes(AbstractMetaArgumentList *list)
(*list)[i].setArgumentIndex(i);
}
-bool AbstractMetaBuilderPrivate::m_useGlobalHeader = false;
+bool operator<(const RejectEntry &re1, const RejectEntry &re2)
+{
+ return re1.reason != re2.reason
+ ? (re1.reason < re2.reason) : (re1.sortkey < re2.sortkey);
+}
-AbstractMetaBuilderPrivate::AbstractMetaBuilderPrivate() :
- m_logDirectory(QLatin1String(".") + QDir::separator())
+QTextStream &operator<<(QTextStream &str, const RejectEntry &re)
{
+ str << re.signature;
+ if (!re.message.isEmpty())
+ str << ": " << re.message;
+ return str;
+}
+
+static void applyCachedFunctionModifications(AbstractMetaFunction *metaFunction,
+ const FunctionModificationList &functionMods)
+{
+ for (const FunctionModification &mod : functionMods) {
+ if (mod.exceptionHandling() != TypeSystem::ExceptionHandling::Unspecified)
+ metaFunction->setExceptionHandlingModification(mod.exceptionHandling());
+ if (mod.allowThread() != TypeSystem::AllowThread::Unspecified)
+ metaFunction->setAllowThreadModification(mod.allowThread());
+ }
}
-AbstractMetaBuilderPrivate::~AbstractMetaBuilderPrivate()
+bool AbstractMetaBuilderPrivate::m_useGlobalHeader = false;
+bool AbstractMetaBuilderPrivate::m_codeModelTestMode = false;
+
+AbstractMetaBuilderPrivate::AbstractMetaBuilderPrivate() :
+ m_logDirectory(u"."_s + QDir::separator())
{
- qDeleteAll(m_templates);
- qDeleteAll(m_smartPointers);
- qDeleteAll(m_metaClasses);
}
AbstractMetaBuilder::AbstractMetaBuilder() : d(new AbstractMetaBuilderPrivate)
@@ -102,16 +115,37 @@ const AbstractMetaClassList &AbstractMetaBuilder::classes() const
return d->m_metaClasses;
}
+AbstractMetaClassList AbstractMetaBuilder::takeClasses()
+{
+ AbstractMetaClassList result;
+ qSwap(result, d->m_metaClasses);
+ return result;
+}
+
const AbstractMetaClassList &AbstractMetaBuilder::templates() const
{
return d->m_templates;
}
+AbstractMetaClassList AbstractMetaBuilder::takeTemplates()
+{
+ AbstractMetaClassList result;
+ qSwap(result, d->m_templates);
+ return result;
+}
+
const AbstractMetaClassList &AbstractMetaBuilder::smartPointers() const
{
return d->m_smartPointers;
}
+AbstractMetaClassList AbstractMetaBuilder::takeSmartPointers()
+{
+ AbstractMetaClassList result;
+ qSwap(result, d->m_smartPointers);
+ return result;
+}
+
const AbstractMetaFunctionCList &AbstractMetaBuilder::globalFunctions() const
{
return d->m_globalFunctions;
@@ -122,36 +156,41 @@ const AbstractMetaEnumList &AbstractMetaBuilder::globalEnums() const
return d->m_globalEnums;
}
-const QHash<const TypeEntry *, AbstractMetaEnum> &AbstractMetaBuilder::typeEntryToEnumsHash() const
+const QHash<TypeEntryCPtr, AbstractMetaEnum> &AbstractMetaBuilder::typeEntryToEnumsHash() const
{
return d->m_enums;
}
-void AbstractMetaBuilderPrivate::checkFunctionModifications()
+const QMultiHash<QString, QString> &AbstractMetaBuilder::typedefTargetToName() const
+{
+ return d->m_typedefTargetToName;
+}
+
+void AbstractMetaBuilderPrivate::checkFunctionModifications() const
{
const auto &entries = TypeDatabase::instance()->entries();
for (auto it = entries.cbegin(), end = entries.cend(); it != end; ++it) {
- const TypeEntry *entry = it.value();
+ TypeEntryCPtr entry = it.value();
if (!entry)
continue;
if (!entry->isComplex() || !entry->generateCode())
continue;
- auto centry = static_cast<const ComplexTypeEntry *>(entry);
+ auto centry = std::static_pointer_cast<const ComplexTypeEntry>(entry);
if (!centry->generateCode())
continue;
FunctionModificationList modifications = centry->functionModifications();
- for (const FunctionModification &modification : qAsConst(modifications)) {
+ for (const FunctionModification &modification : std::as_const(modifications)) {
QString signature = modification.signature();
QString name = signature.trimmed();
- name.truncate(name.indexOf(QLatin1Char('(')));
+ name.truncate(name.indexOf(u'('));
- AbstractMetaClass *clazz = AbstractMetaClass::findClass(m_metaClasses, centry);
+ const auto clazz = AbstractMetaClass::findClass(m_metaClasses, centry);
if (!clazz)
continue;
@@ -159,13 +198,14 @@ void AbstractMetaBuilderPrivate::checkFunctionModifications()
QStringList possibleSignatures;
for (const auto &function : clazz->functions()) {
if (function->implementingClass() == clazz
- && modification.matches(function->minimalSignature())) {
+ && modification.matches(function->modificationSignatures())) {
found = true;
break;
}
if (function->originalName() == name) {
- possibleSignatures.append(function->minimalSignature() + QLatin1String(" in ")
+ const QString signatures = function->modificationSignatures().join(u'/');
+ possibleSignatures.append(signatures + u" in "_s
+ function->implementingClass()->name());
}
}
@@ -180,14 +220,14 @@ void AbstractMetaBuilderPrivate::checkFunctionModifications()
}
}
-AbstractMetaClass *AbstractMetaBuilderPrivate::argumentToClass(const ArgumentModelItem &argument,
- const AbstractMetaClass *currentClass)
+AbstractMetaClassPtr AbstractMetaBuilderPrivate::argumentToClass(const ArgumentModelItem &argument,
+ const AbstractMetaClassCPtr &currentClass)
{
- AbstractMetaClass *returned = nullptr;
+ AbstractMetaClassPtr returned;
auto type = translateType(argument->type(), currentClass);
if (!type.has_value())
return returned;
- const TypeEntry *entry = type->typeEntry();
+ TypeEntryCPtr entry = type->typeEntry();
if (entry && entry->isComplex())
returned = AbstractMetaClass::findClass(m_metaClasses, entry);
return returned;
@@ -197,18 +237,20 @@ AbstractMetaClass *AbstractMetaBuilderPrivate::argumentToClass(const ArgumentMod
* Checks the argument of a hash function and flags the type if it is a complex type
*/
void AbstractMetaBuilderPrivate::registerHashFunction(const FunctionModelItem &function_item,
- AbstractMetaClass *currentClass)
+ const AbstractMetaClassPtr &currentClass)
{
+ if (function_item->isDeleted())
+ return;
ArgumentList arguments = function_item->arguments();
- if (arguments.size() == 1) {
- if (AbstractMetaClass *cls = argumentToClass(arguments.at(0), currentClass))
- cls->setHasHashFunction(true);
+ if (arguments.size() >= 1) { // (Class, Hash seed).
+ if (AbstractMetaClassPtr cls = argumentToClass(arguments.at(0), currentClass))
+ cls->setHashFunction(function_item->name());
}
}
void AbstractMetaBuilderPrivate::registerToStringCapabilityIn(const NamespaceModelItem &nsItem)
{
- const FunctionList &streamOps = nsItem->findFunctions(QLatin1String("operator<<"));
+ const FunctionList &streamOps = nsItem->findFunctions("operator<<");
for (const FunctionModelItem &item : streamOps)
registerToStringCapability(item, nullptr);
for (const NamespaceModelItem &ni : nsItem->namespaces())
@@ -220,13 +262,13 @@ void AbstractMetaBuilderPrivate::registerToStringCapabilityIn(const NamespaceMod
*/
void AbstractMetaBuilderPrivate::registerToStringCapability(const FunctionModelItem &function_item,
- AbstractMetaClass *currentClass)
+ const AbstractMetaClassPtr &currentClass)
{
ArgumentList arguments = function_item->arguments();
if (arguments.size() == 2) {
- if (arguments.at(0)->type().toString() == QLatin1String("QDebug")) {
+ if (arguments.at(0)->type().toString() == u"QDebug") {
const ArgumentModelItem &arg = arguments.at(1);
- if (AbstractMetaClass *cls = argumentToClass(arg, currentClass)) {
+ if (AbstractMetaClassPtr cls = argumentToClass(arg, currentClass)) {
if (arg->type().indirections() < 2)
cls->setToStringCapability(true, int(arg->type().indirections()));
}
@@ -235,27 +277,27 @@ void AbstractMetaBuilderPrivate::registerToStringCapability(const FunctionModelI
}
void AbstractMetaBuilderPrivate::traverseOperatorFunction(const FunctionModelItem &item,
- AbstractMetaClass *currentClass)
+ const AbstractMetaClassPtr &currentClass)
{
if (item->accessPolicy() != Access::Public)
return;
- ArgumentList arguments = item->arguments();
+ const ArgumentList &itemArguments = item->arguments();
bool firstArgumentIsSelf = true;
bool unaryOperator = false;
- auto baseoperandClass = argumentToClass(arguments.at(0), currentClass);
+ auto baseoperandClass = argumentToClass(itemArguments.at(0), currentClass);
- if (arguments.size() == 1) {
+ if (itemArguments.size() == 1) {
unaryOperator = true;
} else if (!baseoperandClass
|| !baseoperandClass->typeEntry()->generateCode()) {
- baseoperandClass = argumentToClass(arguments.at(1), currentClass);
+ baseoperandClass = argumentToClass(itemArguments.at(1), currentClass);
firstArgumentIsSelf = false;
} else {
auto type = translateType(item->type(), currentClass);
- const TypeEntry *retType = type.has_value() ? type->typeEntry() : nullptr;
- AbstractMetaClass *otherArgClass = argumentToClass(arguments.at(1), currentClass);
+ const auto retType = type.has_value() ? type->typeEntry() : TypeEntryCPtr{};
+ const auto otherArgClass = argumentToClass(itemArguments.at(1), currentClass);
if (otherArgClass && retType
&& (retType->isValue() || retType->isObject())
&& retType != baseoperandClass->typeEntry()
@@ -264,43 +306,60 @@ void AbstractMetaBuilderPrivate::traverseOperatorFunction(const FunctionModelIte
firstArgumentIsSelf = false;
}
}
+ if (!baseoperandClass) {
+ rejectFunction(item, currentClass, AbstractMetaBuilder::UnmatchedOperator,
+ u"base operand class not found."_s);
+ return;
+ }
- if (baseoperandClass) {
- AbstractMetaFunction *metaFunction = traverseFunction(item, baseoperandClass);
- if (metaFunction) {
- // Strip away first argument, since that is the containing object
- AbstractMetaArgumentList arguments = metaFunction->arguments();
- if (firstArgumentIsSelf || unaryOperator) {
- AbstractMetaArgument first = arguments.takeFirst();
- fixArgumentIndexes(&arguments);
- if (!unaryOperator && first.type().indirections())
- metaFunction->setPointerOperator(true);
- metaFunction->setArguments(arguments);
- } else {
- // If the operator method is not unary and the first operator is
- // not of the same type of its owning class we suppose that it
- // must be an reverse operator (e.g. CLASS::operator(TYPE, CLASS)).
- // All operator overloads that operate over a class are already
- // being added as member functions of that class by the API Extractor.
- AbstractMetaArgument last = arguments.takeLast();
- if (last.type().indirections())
- metaFunction->setPointerOperator(true);
-
- metaFunction->setArguments(arguments);
- metaFunction->setReverseOperator(true);
- }
- metaFunction->setAccess(Access::Public);
- setupFunctionDefaults(metaFunction, baseoperandClass);
- baseoperandClass->addFunction(AbstractMetaFunctionCPtr(metaFunction));
- Q_ASSERT(!metaFunction->wasPrivate());
- } else {
- delete metaFunction;
- }
+ if (item->isSpaceshipOperator() && !item->isDeleted()) {
+ AbstractMetaClass::addSynthesizedComparisonOperators(baseoperandClass);
+ return;
}
+
+ AbstractMetaFunction *metaFunction = traverseFunction(item, baseoperandClass);
+ if (metaFunction == nullptr)
+ return;
+
+ auto flags = metaFunction->flags();
+ // Strip away first argument, since that is the containing object
+ AbstractMetaArgumentList arguments = metaFunction->arguments();
+ if (firstArgumentIsSelf || unaryOperator) {
+ AbstractMetaArgument first = arguments.takeFirst();
+ fixArgumentIndexes(&arguments);
+ if (!unaryOperator && first.type().indirections())
+ metaFunction->setPointerOperator(true);
+ metaFunction->setArguments(arguments);
+ flags.setFlag(AbstractMetaFunction::Flag::OperatorLeadingClassArgumentRemoved);
+ if (first.type().passByValue())
+ flags.setFlag(AbstractMetaFunction::Flag::OperatorClassArgumentByValue);
+ } else {
+ // If the operator method is not unary and the first operator is
+ // not of the same type of its owning class we suppose that it
+ // must be an reverse operator (e.g. CLASS::operator(TYPE, CLASS)).
+ // All operator overloads that operate over a class are already
+ // being added as member functions of that class by the API Extractor.
+ AbstractMetaArgument last = arguments.takeLast();
+ if (last.type().indirections())
+ metaFunction->setPointerOperator(true);
+ metaFunction->setArguments(arguments);
+ metaFunction->setReverseOperator(true);
+ flags.setFlag(AbstractMetaFunction::Flag::OperatorTrailingClassArgumentRemoved);
+ if (last.type().passByValue())
+ flags.setFlag(AbstractMetaFunction::Flag::OperatorClassArgumentByValue);
+ }
+ metaFunction->setFlags(flags);
+ metaFunction->setAccess(Access::Public);
+ AbstractMetaClass::addFunction(baseoperandClass, AbstractMetaFunctionCPtr(metaFunction));
+ if (!metaFunction->arguments().isEmpty()) {
+ const auto include = metaFunction->arguments().constFirst().type().typeEntry()->include();
+ baseoperandClass->typeEntry()->addArgumentInclude(include);
+ }
+ Q_ASSERT(!metaFunction->wasPrivate());
}
bool AbstractMetaBuilderPrivate::traverseStreamOperator(const FunctionModelItem &item,
- AbstractMetaClass *currentClass)
+ const AbstractMetaClassPtr &currentClass)
{
ArgumentList itemArguments = item->arguments();
if (itemArguments.size() != 2 || item->accessPolicy() != Access::Public)
@@ -327,10 +386,9 @@ bool AbstractMetaBuilderPrivate::traverseStreamOperator(const FunctionModelItem
streamFunction->setArguments(arguments);
- *streamFunction += AbstractMetaFunction::FinalInTargetLang;
streamFunction->setAccess(Access::Public);
- AbstractMetaClass *funcClass;
+ AbstractMetaClassPtr funcClass;
if (!streamClass->typeEntry()->generateCode()) {
AbstractMetaArgumentList reverseArgs = streamFunction->arguments();
@@ -343,19 +401,19 @@ bool AbstractMetaBuilderPrivate::traverseStreamOperator(const FunctionModelItem
funcClass = streamClass;
}
- setupFunctionDefaults(streamFunction, funcClass);
- funcClass->addFunction(AbstractMetaFunctionCPtr(streamFunction));
+ AbstractMetaClass::addFunction(funcClass, AbstractMetaFunctionCPtr(streamFunction));
+ auto funcTe = funcClass->typeEntry();
if (funcClass == streamClass)
- funcClass->typeEntry()->addExtraInclude(streamedClass->typeEntry()->include());
+ funcTe->addArgumentInclude(streamedClass->typeEntry()->include());
else
- funcClass->typeEntry()->addExtraInclude(streamClass->typeEntry()->include());
+ funcTe->addArgumentInclude(streamClass->typeEntry()->include());
return true;
}
static bool metaEnumLessThan(const AbstractMetaEnum &e1, const AbstractMetaEnum &e2)
{ return e1.fullName() < e2.fullName(); }
-static bool metaClassLessThan(const AbstractMetaClass *c1, const AbstractMetaClass *c2)
+static bool metaClassLessThan(const AbstractMetaClassCPtr &c1, const AbstractMetaClassCPtr &c2)
{ return c1->fullName() < c2->fullName(); }
static bool metaFunctionLessThan(const AbstractMetaFunctionCPtr &f1, const AbstractMetaFunctionCPtr &f2)
@@ -368,8 +426,8 @@ void AbstractMetaBuilderPrivate::sortLists()
// this is a temporary solution before new type revision implementation
// We need move QMetaObject register before QObject.
Dependencies additionalDependencies;
- if (auto qObjectClass = AbstractMetaClass::findClass(m_metaClasses, QStringLiteral("QObject"))) {
- if (auto qMetaObjectClass = AbstractMetaClass::findClass(m_metaClasses, QStringLiteral("QMetaObject"))) {
+ if (auto qObjectClass = AbstractMetaClass::findClass(m_metaClasses, "QObject")) {
+ if (auto qMetaObjectClass = AbstractMetaClass::findClass(m_metaClasses, "QMetaObject")) {
Dependency dependency;
dependency.parent = qMetaObjectClass;
dependency.child = qObjectClass;
@@ -378,7 +436,7 @@ void AbstractMetaBuilderPrivate::sortLists()
}
m_metaClasses = classesTopologicalSorted(m_metaClasses, additionalDependencies);
- for (AbstractMetaClass *cls : qAsConst(m_metaClasses))
+ for (const auto &cls : std::as_const(m_metaClasses))
cls->sortFunctions();
// Ensure that indexes are in alphabetical order, roughly, except
@@ -395,7 +453,7 @@ FileModelItem AbstractMetaBuilderPrivate::buildDom(QByteArrayList arguments,
unsigned clangFlags)
{
clang::Builder builder;
- builder.setSystemIncludes(TypeDatabase::instance()->systemIncludes());
+ builder.setForceProcessSystemIncludes(TypeDatabase::instance()->forceProcessSystemIncludes());
if (addCompilerSupportArguments) {
if (level == LanguageLevel::Default)
level = clang::emulatedCompilerLanguageLevel();
@@ -406,18 +464,35 @@ FileModelItem AbstractMetaBuilderPrivate::buildDom(QByteArrayList arguments,
clangFlags, builder)
? builder.dom() : FileModelItem();
const clang::BaseVisitor::Diagnostics &diagnostics = builder.diagnostics();
- if (const int diagnosticsCount = diagnostics.size()) {
+ if (const auto diagnosticsCount = diagnostics.size()) {
QDebug d = qWarning();
d.nospace();
d.noquote();
d << "Clang: " << diagnosticsCount << " diagnostic messages:\n";
- for (int i = 0; i < diagnosticsCount; ++i)
+ for (qsizetype i = 0; i < diagnosticsCount; ++i)
d << " " << diagnostics.at(i) << '\n';
}
return result;
}
-void AbstractMetaBuilderPrivate::traverseDom(const FileModelItem &dom)
+// List of candidates for a mismatched added global function.
+static QStringList functionCandidates(const AbstractMetaFunctionCList &list,
+ const QString &signature)
+{
+ QString name = signature;
+ const auto parenPos = name.indexOf(u'(');
+ if (parenPos > 0)
+ name.truncate(parenPos);
+ QStringList result;
+ for (const auto &func : list) {
+ if (name == func->name())
+ result += func->minimalSignature();
+ }
+ return result;
+}
+
+void AbstractMetaBuilderPrivate::traverseDom(const FileModelItem &dom,
+ ApiExtractorFlags flags)
{
const TypeDatabase *types = TypeDatabase::instance();
@@ -426,18 +501,18 @@ void AbstractMetaBuilderPrivate::traverseDom(const FileModelItem &dom)
// Start the generation...
const ClassList &typeValues = dom->classes();
- ReportHandler::startProgress("Generating class model ("
- + QByteArray::number(typeValues.size()) + ")...");
+ ReportHandler::startProgress("Generated class model ("
+ + QByteArray::number(typeValues.size()) + ").");
for (const ClassModelItem &item : typeValues) {
- if (AbstractMetaClass *cls = traverseClass(dom, item, nullptr))
- addAbstractMetaClass(cls, item.data());
+ if (const auto cls = traverseClass(dom, item, nullptr))
+ addAbstractMetaClass(cls, item.get());
}
// We need to know all global enums
const EnumList &enums = dom->enums();
- ReportHandler::startProgress("Generating enum model ("
- + QByteArray::number(enums.size()) + ")...");
+ ReportHandler::startProgress("Generated enum model ("
+ + QByteArray::number(enums.size()) + ").");
for (const EnumModelItem &item : enums) {
auto metaEnum = traverseEnum(item, nullptr, QSet<QString>());
if (metaEnum.has_value()) {
@@ -447,19 +522,19 @@ void AbstractMetaBuilderPrivate::traverseDom(const FileModelItem &dom)
}
const auto &namespaceTypeValues = dom->namespaces();
- ReportHandler::startProgress("Generating namespace model ("
- + QByteArray::number(namespaceTypeValues.size()) + ")...");
+ ReportHandler::startProgress("Generated namespace model ("
+ + QByteArray::number(namespaceTypeValues.size()) + ").");
for (const NamespaceModelItem &item : namespaceTypeValues)
traverseNamespace(dom, item);
// Go through all typedefs to see if we have defined any
// specific typedefs to be used as classes.
const TypeDefList typeDefs = dom->typeDefs();
- ReportHandler::startProgress("Resolving typedefs ("
- + QByteArray::number(typeDefs.size()) + ")...");
+ ReportHandler::startProgress("Resolved typedefs ("
+ + QByteArray::number(typeDefs.size()) + ").");
for (const TypeDefModelItem &typeDef : typeDefs) {
- if (AbstractMetaClass *cls = traverseTypeDef(dom, typeDef, nullptr))
- addAbstractMetaClass(cls, typeDef.data());
+ if (const auto cls = traverseTypeDef(dom, typeDef, nullptr))
+ addAbstractMetaClass(cls, typeDef.get());
}
traverseTypesystemTypedefs();
@@ -473,10 +548,10 @@ void AbstractMetaBuilderPrivate::traverseDom(const FileModelItem &dom)
// Global functions
const FunctionList &functions = dom->functions();
for (const FunctionModelItem &func : functions) {
- if (func->accessPolicy() != Access::Public || func->name().startsWith(QLatin1String("operator")))
+ if (func->accessPolicy() != Access::Public || func->name().startsWith(u"operator"))
continue;
- FunctionTypeEntry *funcEntry = types->findFunctionType(func->name());
+ FunctionTypeEntryPtr funcEntry = types->findFunctionType(func->name());
if (!funcEntry || !funcEntry->generateCode())
continue;
@@ -490,14 +565,15 @@ void AbstractMetaBuilderPrivate::traverseDom(const FileModelItem &dom)
metaFunc->setTypeEntry(funcEntry);
applyFunctionModifications(metaFunc);
+ metaFunc->applyTypeModifications();
setInclude(funcEntry, func->fileName());
m_globalFunctions << metaFuncPtr;
}
- ReportHandler::startProgress("Fixing class inheritance...");
- for (AbstractMetaClass *cls : qAsConst(m_metaClasses)) {
+ ReportHandler::startProgress("Fixed class inheritance.");
+ for (const auto &cls : std::as_const(m_metaClasses)) {
if (cls->needsInheritanceSetup()) {
setupInheritance(cls);
traverseUsingMembers(cls);
@@ -509,26 +585,28 @@ void AbstractMetaBuilderPrivate::traverseDom(const FileModelItem &dom)
}
}
- ReportHandler::startProgress("Detecting inconsistencies in class model...");
- for (AbstractMetaClass *cls : qAsConst(m_metaClasses)) {
- cls->fixFunctions();
+ ReportHandler::startProgress("Checked for inconsistencies in class model.");
+ for (const auto &cls : std::as_const(m_metaClasses)) {
+ AbstractMetaClass::fixFunctions(cls);
if (cls->canAddDefaultConstructor())
- cls->addDefaultConstructor();
+ AbstractMetaClass::addDefaultConstructor(cls);
if (cls->canAddDefaultCopyConstructor())
- cls->addDefaultCopyConstructor();
+ AbstractMetaClass::addDefaultCopyConstructor(cls);
- const bool vco = AbstractMetaClass::determineValueTypeWithCopyConstructorOnly(cls);
+ const bool avoidProtectedHack = flags.testFlag(ApiExtractorFlag::AvoidProtectedHack);
+ const bool vco =
+ AbstractMetaClass::determineValueTypeWithCopyConstructorOnly(cls, avoidProtectedHack);
cls->setValueTypeWithCopyConstructorOnly(vco);
cls->typeEntry()->setValueTypeWithCopyConstructorOnly(vco);
}
const auto &allEntries = types->entries();
- ReportHandler::startProgress("Detecting inconsistencies in typesystem ("
- + QByteArray::number(allEntries.size()) + ")...");
+ ReportHandler::startProgress("Checked for inconsistencies in typesystem ("
+ + QByteArray::number(allEntries.size()) + ").");
for (auto it = allEntries.cbegin(), end = allEntries.cend(); it != end; ++it) {
- TypeEntry *entry = it.value();
+ const TypeEntryPtr &entry = it.value();
if (!entry->isPrimitive()) {
if ((entry->isValue() || entry->isObject())
&& !types->shouldDropTypeEntry(entry->qualifiedCppName())
@@ -538,25 +616,27 @@ void AbstractMetaBuilderPrivate::traverseDom(const FileModelItem &dom)
&& !AbstractMetaClass::findClass(m_metaClasses, entry)) {
qCWarning(lcShiboken, "%s", qPrintable(msgTypeNotDefined(entry)));
} else if (entry->generateCode() && entry->type() == TypeEntry::FunctionType) {
- auto fte = static_cast<const FunctionTypeEntry *>(entry);
+ auto fte = std::static_pointer_cast<const FunctionTypeEntry>(entry);
const QStringList &signatures = fte->signatures();
for (const QString &signature : signatures) {
bool ok = false;
- for (const auto &func : qAsConst(m_globalFunctions)) {
+ for (const auto &func : std::as_const(m_globalFunctions)) {
if (signature == func->minimalSignature()) {
ok = true;
break;
}
}
if (!ok) {
+ const QStringList candidates = functionCandidates(m_globalFunctions,
+ signatures.constFirst());
qCWarning(lcShiboken, "%s",
- qPrintable(msgGlobalFunctionNotDefined(fte, signature)));
+ qPrintable(msgGlobalFunctionNotDefined(fte, signature, candidates)));
}
}
} else if (entry->isEnum() && entry->generateCode()) {
- auto enumEntry = static_cast<const EnumTypeEntry *>(entry);
- AbstractMetaClass *cls = AbstractMetaClass::findClass(m_metaClasses,
- enumEntry->parent());
+ const auto enumEntry = std::static_pointer_cast<const EnumTypeEntry>(entry);
+ const auto cls = AbstractMetaClass::findClass(m_metaClasses,
+ enumEntry->parent());
const bool enumFound = cls
? cls->findEnum(entry->targetLangEntryName()).has_value()
@@ -573,7 +653,7 @@ void AbstractMetaBuilderPrivate::traverseDom(const FileModelItem &dom)
}
{
- const FunctionList &hashFunctions = dom->findFunctions(QLatin1String("qHash"));
+ const FunctionList &hashFunctions = dom->findFunctions("qHash");
for (const FunctionModelItem &item : hashFunctions)
registerHashFunction(item, nullptr);
}
@@ -596,16 +676,15 @@ void AbstractMetaBuilderPrivate::traverseDom(const FileModelItem &dom)
}
}
- ReportHandler::startProgress("Checking inconsistencies in function modifications...");
+ ReportHandler::startProgress("Checked for inconsistencies in function modifications.");
checkFunctionModifications();
- ReportHandler::startProgress("Writing log files...");
+ ReportHandler::startProgress("Wrote log files.");
- for (AbstractMetaClass *cls : qAsConst(m_metaClasses)) {
+ for (const auto &cls : std::as_const(m_metaClasses)) {
// setupEquals(cls);
// setupComparable(cls);
- setupClonable(cls);
setupExternalConversion(cls);
// sort all inner classes topologically
@@ -615,6 +694,8 @@ void AbstractMetaBuilderPrivate::traverseDom(const FileModelItem &dom)
cls->setInnerClasses(classesTopologicalSorted(cls->innerClasses()));
}
+ fixSmartPointers();
+
dumpLog();
sortLists();
@@ -627,25 +708,29 @@ void AbstractMetaBuilderPrivate::traverseDom(const FileModelItem &dom)
throw Exception(errorMessage);
}
- m_itemToClass.clear();
- m_classToItem.clear();
- m_typeSystemTypeDefs.clear();
+ if (!m_codeModelTestMode) {
+ m_itemToClass.clear();
+ m_classToItem.clear();
+ m_typeSystemTypeDefs.clear();
+ m_scopes.clear();
+ }
ReportHandler::endProgress();
}
bool AbstractMetaBuilder::build(const QByteArrayList &arguments,
+ ApiExtractorFlags apiExtractorFlags,
bool addCompilerSupportArguments,
LanguageLevel level,
unsigned clangFlags)
{
const FileModelItem dom = d->buildDom(arguments, addCompilerSupportArguments,
level, clangFlags);
- if (dom.isNull())
+ if (!dom)
return false;
if (ReportHandler::isDebug(ReportHandler::MediumDebug))
- qCDebug(lcShiboken) << dom.data();
- d->traverseDom(dom);
+ qCDebug(lcShiboken) << dom.get();
+ d->traverseDom(dom, apiExtractorFlags);
return true;
}
@@ -657,7 +742,7 @@ void AbstractMetaBuilder::setLogDirectory(const QString &logDir)
d->m_logDirectory.append(QDir::separator());
}
-void AbstractMetaBuilderPrivate::addAbstractMetaClass(AbstractMetaClass *cls,
+void AbstractMetaBuilderPrivate::addAbstractMetaClass(const AbstractMetaClassPtr &cls,
const _CodeModelItem *item)
{
m_itemToClass.insert(item, cls);
@@ -671,23 +756,27 @@ void AbstractMetaBuilderPrivate::addAbstractMetaClass(AbstractMetaClass *cls,
}
}
-AbstractMetaClass *AbstractMetaBuilderPrivate::traverseNamespace(const FileModelItem &dom,
- const NamespaceModelItem &namespaceItem)
+AbstractMetaClassPtr
+ AbstractMetaBuilderPrivate::traverseNamespace(const FileModelItem &dom,
+ const NamespaceModelItem &namespaceItem)
{
- QString namespaceName = currentScope()->qualifiedName().join(colonColon());
+ QString namespaceName = currentScope()->qualifiedName().join(u"::"_s);
if (!namespaceName.isEmpty())
- namespaceName.append(colonColon());
+ namespaceName.append(u"::"_s);
namespaceName.append(namespaceItem->name());
if (TypeDatabase::instance()->isClassRejected(namespaceName)) {
- m_rejectedClasses.insert(namespaceName, AbstractMetaBuilder::GenerationDisabled);
- return nullptr;
+ m_rejectedClasses.insert({AbstractMetaBuilder::GenerationDisabled,
+ namespaceName, namespaceName, QString{}});
+ return {};
}
auto type = TypeDatabase::instance()->findNamespaceType(namespaceName, namespaceItem->fileName());
if (!type) {
- qCWarning(lcShiboken, "%s",
- qPrintable(msgNamespaceNoTypeEntry(namespaceItem, namespaceName)));
+ const QString rejectReason = msgNamespaceNoTypeEntry(namespaceItem, namespaceName);
+ qCWarning(lcShiboken, "%s", qPrintable(rejectReason));
+ m_rejectedClasses.insert({AbstractMetaBuilder::GenerationDisabled,
+ namespaceName, namespaceName, rejectReason});
return nullptr;
}
@@ -697,22 +786,22 @@ AbstractMetaClass *AbstractMetaBuilderPrivate::traverseNamespace(const FileModel
}
// Continue populating namespace?
- AbstractMetaClass *metaClass = AbstractMetaClass::findClass(m_metaClasses, type);
+ AbstractMetaClassPtr metaClass = AbstractMetaClass::findClass(m_metaClasses, type);
if (!metaClass) {
- metaClass = new AbstractMetaClass;
+ metaClass.reset(new AbstractMetaClass);
metaClass->setTypeEntry(type);
- addAbstractMetaClass(metaClass, namespaceItem.data());
+ addAbstractMetaClass(metaClass, namespaceItem.get());
if (auto extendsType = type->extends()) {
- AbstractMetaClass *extended = AbstractMetaClass::findClass(m_metaClasses, extendsType);
+ const auto extended = AbstractMetaClass::findClass(m_metaClasses, extendsType);
if (!extended) {
qCWarning(lcShiboken, "%s",
qPrintable(msgNamespaceToBeExtendedNotFound(extendsType->name(), extendsType->targetLangPackage())));
- return nullptr;
+ return {};
}
metaClass->setExtendedNamespace(extended);
}
} else {
- m_itemToClass.insert(namespaceItem.data(), metaClass);
+ m_itemToClass.insert(namespaceItem.get(), metaClass);
}
traverseEnums(namespaceItem, metaClass, namespaceItem->enumsDeclarations());
@@ -721,11 +810,11 @@ AbstractMetaClass *AbstractMetaBuilderPrivate::traverseNamespace(const FileModel
const ClassList &classes = namespaceItem->classes();
for (const ClassModelItem &cls : classes) {
- AbstractMetaClass *mjc = traverseClass(dom, cls, metaClass);
+ const auto mjc = traverseClass(dom, cls, metaClass);
if (mjc) {
metaClass->addInnerClass(mjc);
mjc->setEnclosingClass(metaClass);
- addAbstractMetaClass(mjc, cls.data());
+ addAbstractMetaClass(mjc, cls.get());
}
}
@@ -733,20 +822,22 @@ AbstractMetaClass *AbstractMetaBuilderPrivate::traverseNamespace(const FileModel
// specific typedefs to be used as classes.
const TypeDefList typeDefs = namespaceItem->typeDefs();
for (const TypeDefModelItem &typeDef : typeDefs) {
- AbstractMetaClass *cls = traverseTypeDef(dom, typeDef, metaClass);
+ const auto cls = traverseTypeDef(dom, typeDef, metaClass);
if (cls) {
metaClass->addInnerClass(cls);
cls->setEnclosingClass(metaClass);
- addAbstractMetaClass(cls, typeDef.data());
+ addAbstractMetaClass(cls, typeDef.get());
}
}
// Traverse namespaces recursively
for (const NamespaceModelItem &ni : namespaceItem->namespaces()) {
- AbstractMetaClass *mjc = traverseNamespace(dom, ni);
+ const auto mjc = traverseNamespace(dom, ni);
if (mjc) {
metaClass->addInnerClass(mjc);
mjc->setEnclosingClass(metaClass);
+ m_classToItem.insert(mjc, ni.get()); // Add for enum lookup.
+ m_itemToClass.insert(ni.get(), mjc);
}
}
@@ -760,16 +851,16 @@ AbstractMetaClass *AbstractMetaBuilderPrivate::traverseNamespace(const FileModel
std::optional<AbstractMetaEnum>
AbstractMetaBuilderPrivate::traverseEnum(const EnumModelItem &enumItem,
- AbstractMetaClass *enclosing,
+ const AbstractMetaClassPtr &enclosing,
const QSet<QString> &enumsDeclarations)
{
- QString qualifiedName = enumItem->qualifiedName().join(colonColon());
+ QString qualifiedName = enumItem->qualifiedName().join(u"::"_s);
- TypeEntry *typeEntry = nullptr;
- const TypeEntry *enclosingTypeEntry = enclosing ? enclosing->typeEntry() : nullptr;
+ TypeEntryPtr typeEntry;
+ const auto enclosingTypeEntry = enclosing ? enclosing->typeEntry() : TypeEntryCPtr{};
if (enumItem->accessPolicy() == Access::Private) {
- typeEntry = new EnumTypeEntry(enumItem->qualifiedName().constLast(),
- QVersionNumber(0, 0), enclosingTypeEntry);
+ typeEntry.reset(new EnumTypeEntry(enumItem->qualifiedName().constLast(),
+ QVersionNumber(0, 0), enclosingTypeEntry));
TypeDatabase::instance()->addType(typeEntry);
} else if (enumItem->enumKind() != AnonymousEnum) {
typeEntry = TypeDatabase::instance()->findType(qualifiedName);
@@ -779,7 +870,7 @@ std::optional<AbstractMetaEnum>
for (const EnumeratorModelItem &enumValue : enums) {
tmpQualifiedName.removeLast();
tmpQualifiedName << enumValue->name();
- qualifiedName = tmpQualifiedName.join(colonColon());
+ qualifiedName = tmpQualifiedName.join(u"::"_s);
typeEntry = TypeDatabase::instance()->findType(qualifiedName);
if (typeEntry)
break;
@@ -796,65 +887,75 @@ std::optional<AbstractMetaEnum>
if (TypeDatabase::instance()->isEnumRejected(className, enumName, &rejectReason)) {
if (typeEntry)
typeEntry->setCodeGeneration(TypeEntry::GenerateNothing);
- m_rejectedEnums.insert(qualifiedName + rejectReason, AbstractMetaBuilder::GenerationDisabled);
+ m_rejectedEnums.insert({AbstractMetaBuilder::GenerationDisabled, qualifiedName,
+ qualifiedName, rejectReason});
return {};
}
const bool rejectionWarning = !enclosing || enclosing->typeEntry()->generateCode();
if (!typeEntry) {
+ const QString rejectReason = msgNoEnumTypeEntry(enumItem, className);
if (rejectionWarning)
- qCWarning(lcShiboken, "%s", qPrintable(msgNoEnumTypeEntry(enumItem, className)));
- m_rejectedEnums.insert(qualifiedName, AbstractMetaBuilder::NotInTypeSystem);
+ qCWarning(lcShiboken, "%s", qPrintable(rejectReason));
+ m_rejectedEnums.insert({AbstractMetaBuilder::NotInTypeSystem, qualifiedName,
+ qualifiedName, rejectReason});
return {};
}
if (!typeEntry->isEnum()) {
- if (rejectionWarning) {
- qCWarning(lcShiboken, "%s",
- qPrintable(msgNoEnumTypeConflict(enumItem, className, typeEntry)));
- }
- m_rejectedEnums.insert(qualifiedName, AbstractMetaBuilder::NotInTypeSystem);
+ const QString rejectReason = msgNoEnumTypeConflict(enumItem, className, typeEntry);
+ if (rejectionWarning)
+ qCWarning(lcShiboken, "%s", qPrintable(rejectReason));
+ m_rejectedEnums.insert({AbstractMetaBuilder::NotInTypeSystem, qualifiedName,
+ qualifiedName, rejectReason});
return {};
}
AbstractMetaEnum metaEnum;
metaEnum.setEnumKind(enumItem->enumKind());
+ metaEnum.setDeprecated(enumItem->isDeprecated());
+ metaEnum.setUnderlyingType(enumItem->underlyingType());
metaEnum.setSigned(enumItem->isSigned());
if (enumsDeclarations.contains(qualifiedName)
|| enumsDeclarations.contains(enumName)) {
metaEnum.setHasQEnumsDeclaration(true);
}
- auto *enumTypeEntry = static_cast<EnumTypeEntry *>(typeEntry);
+ auto enumTypeEntry = std::static_pointer_cast<EnumTypeEntry>(typeEntry);
metaEnum.setTypeEntry(enumTypeEntry);
metaEnum.setAccess(enumItem->accessPolicy());
if (metaEnum.access() == Access::Private)
typeEntry->setCodeGeneration(TypeEntry::GenerateNothing);
-
+ // PYSIDE-2088, MSVC signedness issue in Qt
+ const bool castToUnsigned = enumItem->isSigned()
+ && enumTypeEntry->cppType().contains(u"unsigned"_s);
const EnumeratorList &enums = enumItem->enumerators();
- for (const EnumeratorModelItem &value : enums) {
+ for (const EnumeratorModelItem &valueItem : enums) {
AbstractMetaEnumValue metaEnumValue;
- metaEnumValue.setName(value->name());
+ metaEnumValue.setName(valueItem->name());
// Deciding the enum value...
- metaEnumValue.setStringValue(value->stringValue());
- metaEnumValue.setValue(value->value());
+ metaEnumValue.setStringValue(valueItem->stringValue());
+ const auto value = valueItem->value();
+ metaEnumValue.setValue(castToUnsigned ? value.toUnsigned() : value);
+ metaEnumValue.setDeprecated(valueItem->isDeprecated());
metaEnum.addEnumValue(metaEnumValue);
}
- if (!metaEnum.typeEntry()->include().isValid())
- setInclude(metaEnum.typeEntry(), enumItem->fileName());
+ if (!metaEnum.typeEntry()->include().isValid()) {
+ auto te = std::const_pointer_cast<EnumTypeEntry>(metaEnum.typeEntry());
+ setInclude(te, enumItem->fileName());
+ }
// Register all enum values on Type database
const bool isScopedEnum = enumItem->enumKind() == EnumClass;
const EnumeratorList &enumerators = enumItem->enumerators();
for (const EnumeratorModelItem &e : enumerators) {
- auto enumValue =
- new EnumValueTypeEntry(e->name(), e->stringValue(),
- enumTypeEntry, isScopedEnum,
- enumTypeEntry->version());
+ auto enumValue = std::make_shared<EnumValueTypeEntry>(e->name(), e->stringValue(),
+ enumTypeEntry, isScopedEnum,
+ enumTypeEntry->version());
TypeDatabase::instance()->addType(enumValue);
if (e->value().isNullValue())
enumTypeEntry->setNullValue(enumValue);
@@ -866,9 +967,31 @@ std::optional<AbstractMetaEnum>
return metaEnum;
}
-AbstractMetaClass *AbstractMetaBuilderPrivate::traverseTypeDef(const FileModelItem &,
- const TypeDefModelItem &typeDef,
- AbstractMetaClass *currentClass)
+AbstractMetaClassPtr
+ AbstractMetaBuilderPrivate::traverseTypeDef(const FileModelItem &dom,
+ const TypeDefModelItem &typeDef,
+ const AbstractMetaClassPtr &currentClass)
+{
+ auto result = traverseTypeDefHelper(dom, typeDef, currentClass);
+ if (!result && typeDef->type().isPlain()) {
+ const auto &type = typeDef->type();
+ QString fullName;
+ if (currentClass)
+ fullName += currentClass->qualifiedCppName() + "::"_L1;
+ fullName += typeDef->name();
+ QString targetName = typeDef->type().toString();
+ m_typedefTargetToName.insert(targetName, fullName);
+ const QByteArray normalized = QMetaObject::normalizedType(targetName.toUtf8().constData());
+ if (targetName != QLatin1StringView(normalized))
+ m_typedefTargetToName.insert(QString::fromUtf8(normalized), fullName);
+ }
+ return result;
+}
+
+AbstractMetaClassPtr
+ AbstractMetaBuilderPrivate::traverseTypeDefHelper(const FileModelItem &,
+ const TypeDefModelItem &typeDef,
+ const AbstractMetaClassPtr &currentClass)
{
TypeDatabase *types = TypeDatabase::instance();
QString className = stripTemplateArgs(typeDef->name());
@@ -877,26 +1000,39 @@ AbstractMetaClass *AbstractMetaBuilderPrivate::traverseTypeDef(const FileModelIt
// we have an inner class
if (currentClass) {
fullClassName = stripTemplateArgs(currentClass->typeEntry()->qualifiedCppName())
- + colonColon() + fullClassName;
+ + u"::"_s + fullClassName;
}
// If this is the alias for a primitive type
// we store the aliased type on the alias
// TypeEntry
- PrimitiveTypeEntry *ptype = types->findPrimitiveType(className);
+ const auto ptype = types->findPrimitiveType(className);
+ const auto &targetNames = typeDef->type().qualifiedName();
+ const auto pTarget = targetNames.size() == 1
+ ? types->findPrimitiveType(targetNames.constFirst()) : PrimitiveTypeEntryPtr{};
if (ptype) {
- QString typeDefName = typeDef->type().qualifiedName()[0];
- ptype->setReferencedTypeEntry(types->findPrimitiveType(typeDefName));
+ ptype->setReferencedTypeEntry(pTarget);
return nullptr;
}
+ // It is a (nested?) global typedef to a primitive type
+ // (like size_t = unsigned)? Add it to the type DB.
+ if (pTarget && isCppPrimitive(basicReferencedNonBuiltinTypeEntry(pTarget))
+ && currentClass == nullptr) {
+ auto pte = std::make_shared<PrimitiveTypeEntry>(className, QVersionNumber{},
+ TypeEntryCPtr{});
+ pte->setReferencedTypeEntry(pTarget);
+ pte->setBuiltIn(true);
+ types->addType(pte);
+ return nullptr;
+ }
// If we haven't specified anything for the typedef, then we don't care
- ComplexTypeEntry *type = types->findComplexType(fullClassName);
+ auto type = types->findComplexType(fullClassName);
if (!type)
return nullptr;
- auto *metaClass = new AbstractMetaClass;
+ auto metaClass = std::make_shared<AbstractMetaClass>();
metaClass->setTypeDef(true);
metaClass->setTypeEntry(type);
metaClass->setBaseClassNames(QStringList(typeDef->type().toString()));
@@ -915,8 +1051,8 @@ void AbstractMetaBuilderPrivate::traverseTypesystemTypedefs()
{
const auto &entries = TypeDatabase::instance()->typedefEntries();
for (auto it = entries.begin(), end = entries.end(); it != end; ++it) {
- TypedefEntry *te = it.value();
- auto *metaClass = new AbstractMetaClass;
+ const TypedefEntryPtr &te = it.value();
+ auto metaClass = std::make_shared<AbstractMetaClass>();
metaClass->setTypeDef(true);
metaClass->setTypeEntry(te->target());
metaClass->setBaseClassNames(QStringList(te->sourceType()));
@@ -942,9 +1078,9 @@ void AbstractMetaBuilderPrivate::traverseTypesystemTypedefs()
}
}
-AbstractMetaClass *AbstractMetaBuilderPrivate::traverseClass(const FileModelItem &dom,
+AbstractMetaClassPtr AbstractMetaBuilderPrivate::traverseClass(const FileModelItem &dom,
const ClassModelItem &classItem,
- AbstractMetaClass *currentClass)
+ const AbstractMetaClassPtr &currentClass)
{
QString className = stripTemplateArgs(classItem->name());
QString fullClassName = className;
@@ -952,20 +1088,24 @@ AbstractMetaClass *AbstractMetaBuilderPrivate::traverseClass(const FileModelItem
// we have inner an class
if (currentClass) {
fullClassName = stripTemplateArgs(currentClass->typeEntry()->qualifiedCppName())
- + colonColon() + fullClassName;
+ + u"::"_s + fullClassName;
}
- ComplexTypeEntry *type = TypeDatabase::instance()->findComplexType(fullClassName);
+ const auto type = TypeDatabase::instance()->findComplexType(fullClassName);
AbstractMetaBuilder::RejectReason reason = AbstractMetaBuilder::NoReason;
if (TypeDatabase::instance()->isClassRejected(fullClassName)) {
reason = AbstractMetaBuilder::GenerationDisabled;
} else if (!type) {
- TypeEntry *te = TypeDatabase::instance()->findType(fullClassName);
- if (te && !te->isComplex())
+ TypeEntryPtr te = TypeDatabase::instance()->findType(fullClassName);
+ if (te && !te->isComplex()) {
reason = AbstractMetaBuilder::RedefinedToNotClass;
- else
+ // Set the default include file name
+ if (!te->include().isValid())
+ setInclude(te, classItem->fileName());
+ } else {
reason = AbstractMetaBuilder::NotInTypeSystem;
+ }
} else if (type->codeGeneration() == TypeEntry::GenerateNothing) {
reason = AbstractMetaBuilder::GenerationDisabled;
}
@@ -974,11 +1114,11 @@ AbstractMetaClass *AbstractMetaBuilderPrivate::traverseClass(const FileModelItem
QTextStream(&fullClassName) << "anonymous struct at " << classItem->fileName()
<< ':' << classItem->startLine();
}
- m_rejectedClasses.insert(fullClassName, reason);
+ m_rejectedClasses.insert({reason, fullClassName, fullClassName, QString{}});
return nullptr;
}
- auto *metaClass = new AbstractMetaClass;
+ auto metaClass = std::make_shared<AbstractMetaClass>();
metaClass->setSourceLocation(classItem->sourceLocation());
metaClass->setTypeEntry(type);
if ((type->typeFlags() & ComplexTypeEntry::ForceAbstract) != 0)
@@ -987,6 +1127,9 @@ AbstractMetaClass *AbstractMetaBuilderPrivate::traverseClass(const FileModelItem
if (classItem->isFinal())
*metaClass += AbstractMetaClass::FinalCppClass;
+ if (classItem->classType() == CodeModel::Struct)
+ *metaClass += AbstractMetaClass::Struct;
+
QStringList baseClassNames;
const QList<_ClassModelItem::BaseClass> &baseClasses = classItem->baseClasses();
for (const _ClassModelItem::BaseClass &baseClass : baseClasses) {
@@ -1000,21 +1143,22 @@ AbstractMetaClass *AbstractMetaBuilderPrivate::traverseClass(const FileModelItem
if (ReportHandler::isDebug(ReportHandler::MediumDebug)) {
const QString message = type->isContainer()
- ? u"container: '"_qs + fullClassName + u'\''
- : u"class: '"_qs + metaClass->fullName() + u'\'';
+ ? u"container: '"_s + fullClassName + u'\''
+ : u"class: '"_s + metaClass->fullName() + u'\'';
qCInfo(lcShiboken, "%s", qPrintable(message));
}
TemplateParameterList template_parameters = classItem->templateParameters();
- TypeEntries template_args;
+ TypeEntryCList template_args;
template_args.clear();
- auto argumentParent = metaClass->typeEntry()->typeSystemTypeEntry();
- for (int i = 0; i < template_parameters.size(); ++i) {
+ auto argumentParent = typeSystemTypeEntry(metaClass->typeEntry());
+ for (qsizetype i = 0; i < template_parameters.size(); ++i) {
const TemplateParameterModelItem &param = template_parameters.at(i);
- auto param_type = new TemplateArgumentEntry(param->name(), type->version(),
+ auto param_type =
+ std::make_shared<TemplateArgumentEntry>(param->name(), type->version(),
argumentParent);
param_type->setOrdinal(i);
- template_args.append(param_type);
+ template_args.append(TypeEntryCPtr(param_type));
}
metaClass->setTemplateArguments(template_args);
@@ -1026,11 +1170,11 @@ AbstractMetaClass *AbstractMetaBuilderPrivate::traverseClass(const FileModelItem
{
const ClassList &innerClasses = classItem->classes();
for (const ClassModelItem &ci : innerClasses) {
- AbstractMetaClass *cl = traverseClass(dom, ci, metaClass);
+ const auto cl = traverseClass(dom, ci, metaClass);
if (cl) {
cl->setEnclosingClass(metaClass);
metaClass->addInnerClass(cl);
- addAbstractMetaClass(cl, ci.data());
+ addAbstractMetaClass(cl, ci.get());
}
}
@@ -1040,10 +1184,10 @@ AbstractMetaClass *AbstractMetaBuilderPrivate::traverseClass(const FileModelItem
// specific typedefs to be used as classes.
const TypeDefList typeDefs = classItem->typeDefs();
for (const TypeDefModelItem &typeDef : typeDefs) {
- AbstractMetaClass *cls = traverseTypeDef(dom, typeDef, metaClass);
+ const auto cls = traverseTypeDef(dom, typeDef, metaClass);
if (cls) {
cls->setEnclosingClass(metaClass);
- addAbstractMetaClass(cls, typeDef.data());
+ addAbstractMetaClass(cls, typeDef.get());
}
}
@@ -1055,7 +1199,7 @@ AbstractMetaClass *AbstractMetaBuilderPrivate::traverseClass(const FileModelItem
}
void AbstractMetaBuilderPrivate::traverseScopeMembers(const ScopeModelItem &item,
- AbstractMetaClass *metaClass)
+ const AbstractMetaClassPtr &metaClass)
{
// Classes/Namespace members
traverseFields(item, metaClass);
@@ -1069,28 +1213,25 @@ void AbstractMetaBuilderPrivate::traverseScopeMembers(const ScopeModelItem &item
void AbstractMetaBuilderPrivate::traverseClassMembers(const ClassModelItem &item)
{
- AbstractMetaClass *metaClass = m_itemToClass.value(item.data());
- if (!metaClass)
- return;
-
- // Class members
- traverseScopeMembers(item, metaClass);
+ const auto metaClass = m_itemToClass.value(item.get());
+ if (metaClass) // Class members
+ traverseScopeMembers(item, metaClass);
}
-void AbstractMetaBuilderPrivate::traverseUsingMembers(AbstractMetaClass *metaClass)
+void AbstractMetaBuilderPrivate::traverseUsingMembers(const AbstractMetaClassPtr &metaClass) const
{
const _CodeModelItem *item = m_classToItem.value(metaClass);
if (item == nullptr || item->kind() != _CodeModelItem::Kind_Class)
return;
- auto classItem = static_cast<const _ClassModelItem *>(item);
+ const auto *classItem = static_cast<const _ClassModelItem *>(item);
for (const auto &um : classItem->usingMembers()) {
QString className = um.className;
- int pos = className.indexOf(u'<'); // strip "QList<value>"
+ auto pos = className.indexOf(u'<'); // strip "QList<value>"
if (pos != -1)
className.truncate(pos);
- if (auto baseClass = metaClass->AbstractMetaClass::findBaseClass(className)) {
+ if (auto baseClass = findBaseClass(metaClass, className)) {
QString name = um.memberName;
- const int lastQualPos = name.lastIndexOf(colonColon());
+ const auto lastQualPos = name.lastIndexOf(u"::"_s);
if (lastQualPos != -1)
name.remove(0, lastQualPos + 2);
metaClass->addUsingMember({name, baseClass, um.access});
@@ -1104,7 +1245,7 @@ void AbstractMetaBuilderPrivate::traverseUsingMembers(AbstractMetaClass *metaCla
void AbstractMetaBuilderPrivate::traverseNamespaceMembers(const NamespaceModelItem &item)
{
- AbstractMetaClass *metaClass = m_itemToClass.value(item.data());
+ const auto metaClass = m_itemToClass.value(item.get());
if (!metaClass)
return;
@@ -1119,18 +1260,18 @@ void AbstractMetaBuilderPrivate::traverseNamespaceMembers(const NamespaceModelIt
static inline QString fieldSignatureWithType(const VariableModelItem &field)
{
- return field->name() + QStringLiteral(" -> ") + field->type().toString();
+ return field->name() + " -> "_L1 + field->type().toString();
}
static inline QString qualifiedFieldSignatureWithType(const QString &className,
const VariableModelItem &field)
{
- return className + colonColon() + fieldSignatureWithType(field);
+ return className + u"::"_s + fieldSignatureWithType(field);
}
std::optional<AbstractMetaField>
AbstractMetaBuilderPrivate::traverseField(const VariableModelItem &field,
- const AbstractMetaClass *cls)
+ const AbstractMetaClassCPtr &cls)
{
QString fieldName = field->name();
QString className = cls->typeEntry()->qualifiedCppName();
@@ -1144,8 +1285,9 @@ std::optional<AbstractMetaField>
QString rejectReason;
if (TypeDatabase::instance()->isFieldRejected(className, fieldName, &rejectReason)) {
- m_rejectedFields.insert(qualifiedFieldSignatureWithType(className, field) + rejectReason,
- AbstractMetaBuilder::GenerationDisabled);
+ const QString signature = qualifiedFieldSignatureWithType(className, field);
+ m_rejectedFields.insert({AbstractMetaBuilder::GenerationDisabled,
+ signature, signature, rejectReason});
return {};
}
@@ -1158,7 +1300,7 @@ std::optional<AbstractMetaField>
auto metaType = translateType(fieldType, cls);
if (!metaType.has_value()) {
- const QString type = TypeInfo::resolveType(fieldType, currentScope()).qualifiedName().join(colonColon());
+ const QString type = TypeInfo::resolveType(fieldType, currentScope()).qualifiedName().join(u"::"_s);
if (cls->typeEntry()->generateCode()) {
qCWarning(lcShiboken, "%s",
qPrintable(msgSkippingField(field, cls->name(), type)));
@@ -1193,7 +1335,7 @@ static bool applyFieldModifications(AbstractMetaField *f)
}
void AbstractMetaBuilderPrivate::traverseFields(const ScopeModelItem &scope_item,
- AbstractMetaClass *metaClass)
+ const AbstractMetaClassPtr &metaClass)
{
const VariableList &variables = scope_item->variables();
for (const VariableModelItem &field : variables) {
@@ -1206,37 +1348,22 @@ void AbstractMetaBuilderPrivate::traverseFields(const ScopeModelItem &scope_item
}
}
-void AbstractMetaBuilderPrivate::setupFunctionDefaults(AbstractMetaFunction *metaFunction,
- AbstractMetaClass *metaClass)
-{
- // Set the default value of the declaring class. This may be changed
- // in fixFunctions later on
- metaFunction->setDeclaringClass(metaClass);
-
- // Some of the queries below depend on the implementing class being set
- // to function properly. Such as function modifications
- metaFunction->setImplementingClass(metaClass);
-
- if (metaFunction->name() == QLatin1String("operator_equal"))
- metaClass->setHasEqualsOperator(true);
-}
-
void AbstractMetaBuilderPrivate::fixReturnTypeOfConversionOperator(AbstractMetaFunction *metaFunction)
{
if (!metaFunction->isConversionOperator())
return;
TypeDatabase *types = TypeDatabase::instance();
- static const QRegularExpression operatorRegExp(QStringLiteral("^operator "));
+ static const QRegularExpression operatorRegExp("^operator "_L1);
Q_ASSERT(operatorRegExp.isValid());
QString castTo = metaFunction->name().remove(operatorRegExp).trimmed();
- if (castTo.endsWith(QLatin1Char('&')))
+ if (castTo.endsWith(u'&'))
castTo.chop(1);
- if (castTo.startsWith(QLatin1String("const ")))
+ if (castTo.startsWith(u"const "))
castTo.remove(0, 6);
- TypeEntry *retType = types->findType(castTo);
+ TypeEntryPtr retType = types->findType(castTo);
if (!retType)
return;
@@ -1248,16 +1375,22 @@ void AbstractMetaBuilderPrivate::fixReturnTypeOfConversionOperator(AbstractMetaF
AbstractMetaFunctionRawPtrList
AbstractMetaBuilderPrivate::classFunctionList(const ScopeModelItem &scopeItem,
AbstractMetaClass::Attributes *constructorAttributes,
- AbstractMetaClass *currentClass)
+ const AbstractMetaClassPtr &currentClass)
{
*constructorAttributes = {};
AbstractMetaFunctionRawPtrList result;
const FunctionList &scopeFunctionList = scopeItem->functions();
result.reserve(scopeFunctionList.size());
+ const bool isNamespace = currentClass->isNamespace();
for (const FunctionModelItem &function : scopeFunctionList) {
- if (AbstractMetaFunction *metaFunction = traverseFunction(function, currentClass)) {
+ if (isNamespace && function->isOperator()) {
+ traverseOperatorFunction(function, currentClass);
+ } else if (function->isSpaceshipOperator() && !function->isDeleted()) {
+ if (currentClass)
+ AbstractMetaClass::addSynthesizedComparisonOperators(currentClass);
+ } else if (auto *metaFunction = traverseFunction(function, currentClass)) {
result.append(metaFunction);
- } else if (function->functionType() == CodeModel::Constructor) {
+ } else if (!function->isDeleted() && function->functionType() == CodeModel::Constructor) {
auto arguments = function->arguments();
*constructorAttributes |= AbstractMetaClass::HasRejectedConstructor;
if (arguments.isEmpty() || arguments.constFirst()->defaultValue())
@@ -1267,8 +1400,8 @@ AbstractMetaFunctionRawPtrList
return result;
}
-void AbstractMetaBuilderPrivate::traverseFunctions(ScopeModelItem scopeItem,
- AbstractMetaClass *metaClass)
+void AbstractMetaBuilderPrivate::traverseFunctions(const ScopeModelItem& scopeItem,
+ const AbstractMetaClassPtr &metaClass)
{
AbstractMetaClass::Attributes constructorAttributes;
const AbstractMetaFunctionRawPtrList functions =
@@ -1277,7 +1410,7 @@ void AbstractMetaBuilderPrivate::traverseFunctions(ScopeModelItem scopeItem,
for (AbstractMetaFunction *metaFunction : functions) {
if (metaClass->isNamespace())
- *metaFunction += AbstractMetaFunction::Static;
+ metaFunction->setCppAttribute(FunctionAttribute::Static);
const auto propertyFunction = metaClass->searchPropertyFunction(metaFunction->name());
if (propertyFunction.index >= 0) {
@@ -1310,34 +1443,31 @@ void AbstractMetaBuilderPrivate::traverseFunctions(ScopeModelItem scopeItem,
metaFunction->setPropertySpecIndex(propertyFunction.index);
}
break;
+ case AbstractMetaClass::PropertyFunction::Notify:
+ if (metaFunction->isSignal()) {
+ *metaFunction += AbstractMetaFunction::PropertyNotify;
+ metaFunction->setPropertySpecIndex(propertyFunction.index);
+ }
}
}
- const bool isInvalidDestructor = metaFunction->isDestructor() && metaFunction->isPrivate();
- const bool isInvalidConstructor = metaFunction->functionType() == AbstractMetaFunction::ConstructorFunction
- && metaFunction->isPrivate();
- if (isInvalidConstructor)
+ if (metaFunction->functionType() == AbstractMetaFunction::ConstructorFunction
+ && metaFunction->isPrivate()) {
metaClass->setHasPrivateConstructor(true);
- if ((isInvalidDestructor || isInvalidConstructor)
- && !metaClass->hasNonPrivateConstructor()) {
- *metaClass += AbstractMetaClass::FinalInTargetLang;
- } else if (metaFunction->isConstructor() && !metaFunction->isPrivate()) {
- *metaClass -= AbstractMetaClass::FinalInTargetLang;
- metaClass->setHasNonPrivateConstructor(true);
}
+ if (metaFunction->isConstructor() && !metaFunction->isPrivate()) // Including Copy CT
+ metaClass->setHasNonPrivateConstructor(true);
if (!metaFunction->isDestructor()
&& !(metaFunction->isPrivate() && metaFunction->functionType() == AbstractMetaFunction::ConstructorFunction)) {
- setupFunctionDefaults(metaFunction, metaClass);
-
if (metaFunction->isSignal() && metaClass->hasSignal(metaFunction))
qCWarning(lcShiboken, "%s", qPrintable(msgSignalOverloaded(metaClass, metaFunction)));
if (metaFunction->isConversionOperator())
fixReturnTypeOfConversionOperator(metaFunction);
- metaClass->addFunction(AbstractMetaFunctionCPtr(metaFunction));
+ AbstractMetaClass::addFunction(metaClass, AbstractMetaFunctionCPtr(metaFunction));
applyFunctionModifications(metaFunction);
} else if (metaFunction->isDestructor()) {
metaClass->setHasPrivateDestructor(metaFunction->isPrivate());
@@ -1353,7 +1483,7 @@ void AbstractMetaBuilderPrivate::traverseFunctions(ScopeModelItem scopeItem,
fillAddedFunctions(metaClass);
}
-void AbstractMetaBuilderPrivate::fillAddedFunctions(AbstractMetaClass *metaClass)
+void AbstractMetaBuilderPrivate::fillAddedFunctions(const AbstractMetaClassPtr &metaClass)
{
// Add the functions added by the typesystem
QString errorMessage;
@@ -1366,12 +1496,12 @@ void AbstractMetaBuilderPrivate::fillAddedFunctions(AbstractMetaClass *metaClass
QString AbstractMetaBuilder::getSnakeCaseName(const QString &name)
{
- const int size = name.size();
+ const auto size = name.size();
if (size < 3)
return name;
QString result;
result.reserve(size + 4);
- for (int i = 0; i < size; ++i) {
+ for (qsizetype i = 0; i < size; ++i) {
const QChar c = name.at(i);
if (c.isUpper()) {
if (i > 0) {
@@ -1417,26 +1547,17 @@ void AbstractMetaBuilderPrivate::applyFunctionModifications(AbstractMetaFunction
func->setOriginalName(func->name());
func->setName(mod.renamedToName());
} else if (mod.isAccessModifier()) {
- funcRef -= AbstractMetaFunction::Friendly;
-
if (mod.isPublic())
funcRef.modifyAccess(Access::Public);
else if (mod.isProtected())
funcRef.modifyAccess(Access::Protected);
else if (mod.isPrivate())
funcRef.modifyAccess(Access::Private);
- else if (mod.isFriendly())
- funcRef += AbstractMetaFunction::Friendly;
}
-
- if (mod.isFinal())
- funcRef += AbstractMetaFunction::FinalInTargetLang;
- else if (mod.isNonFinal())
- funcRef -= AbstractMetaFunction::FinalInTargetLang;
}
}
-bool AbstractMetaBuilderPrivate::setupInheritance(AbstractMetaClass *metaClass)
+bool AbstractMetaBuilderPrivate::setupInheritance(const AbstractMetaClassPtr &metaClass)
{
if (metaClass->inheritanceDone())
return true;
@@ -1446,10 +1567,11 @@ bool AbstractMetaBuilderPrivate::setupInheritance(AbstractMetaClass *metaClass)
QStringList baseClasses = metaClass->baseClassNames();
// we only support our own containers and ONLY if there is only one baseclass
- if (baseClasses.size() == 1 && baseClasses.constFirst().contains(QLatin1Char('<'))) {
+ if (baseClasses.size() == 1 && baseClasses.constFirst().contains(u'<')) {
TypeInfo info;
- ComplexTypeEntry* baseContainerType;
- AbstractMetaClass* templ = findTemplateClass(baseClasses.constFirst(), metaClass, &info, &baseContainerType);
+ ComplexTypeEntryPtr baseContainerType;
+ const auto templ = findTemplateClass(baseClasses.constFirst(), metaClass,
+ &info, &baseContainerType);
if (templ) {
setupInheritance(templ);
inheritTemplate(metaClass, templ, info);
@@ -1469,15 +1591,15 @@ bool AbstractMetaBuilderPrivate::setupInheritance(AbstractMetaClass *metaClass)
return true;
}
- qCWarning(lcShiboken).noquote().nospace()
- << QStringLiteral("template baseclass '%1' of '%2' is not known")
- .arg(baseClasses.constFirst(), metaClass->name());
+ qCWarning(lcShiboken, "template baseclass '%s' of '%s' is not known",
+ qPrintable(baseClasses.constFirst()),
+ qPrintable(metaClass->name()));
return false;
}
- TypeDatabase* types = TypeDatabase::instance();
+ auto *types = TypeDatabase::instance();
- for (const auto &baseClassName : baseClasses) {
+ for (const auto &baseClassName : baseClasses) {
if (!types->isClassRejected(baseClassName)) {
auto typeEntry = types->findType(baseClassName);
if (typeEntry == nullptr || !typeEntry->isComplex()) {
@@ -1506,7 +1628,7 @@ bool AbstractMetaBuilderPrivate::setupInheritance(AbstractMetaClass *metaClass)
} else {
QString message;
QTextStream(&message) << "Class \"" << defaultSuperclassName
- << "\" specified as \"default-superclass\" of \"" << metaClass->name()
+ << R"(" specified as "default-superclass" of ")" << metaClass->name()
<< "\" could not be found in the code model.";
qCWarning(lcShiboken, "%s", qPrintable(message));
}
@@ -1516,7 +1638,7 @@ bool AbstractMetaBuilderPrivate::setupInheritance(AbstractMetaClass *metaClass)
}
void AbstractMetaBuilderPrivate::traverseEnums(const ScopeModelItem &scopeItem,
- AbstractMetaClass *metaClass,
+ const AbstractMetaClassPtr &metaClass,
const QStringList &enumsDeclarations)
{
const EnumList &enums = scopeItem->enums();
@@ -1564,7 +1686,7 @@ bool AbstractMetaBuilderPrivate::traverseAddedGlobalFunction(const AddedFunction
AbstractMetaFunction *
AbstractMetaBuilderPrivate::traverseAddedFunctionHelper(const AddedFunctionPtr &addedFunc,
- AbstractMetaClass *metaClass /* = nullptr */,
+ const AbstractMetaClassPtr &metaClass /* = {} */,
QString *errorMessage)
{
auto returnType = translateType(addedFunc->returnType(), metaClass, {}, errorMessage);
@@ -1576,13 +1698,13 @@ AbstractMetaFunction *
return nullptr;
}
- auto metaFunction = new AbstractMetaFunction(addedFunc);
+ auto *metaFunction = new AbstractMetaFunction(addedFunc);
metaFunction->setType(returnType.value());
metaFunction->setFunctionType(functionTypeFromName(addedFunc->name()));
const auto &args = addedFunc->arguments();
- qsizetype argCount = args.count();
+ qsizetype argCount = args.size();
// Check "foo(void)"
if (argCount == 1 && args.constFirst().typeInfo.isVoid())
argCount = 0;
@@ -1633,7 +1755,8 @@ AbstractMetaFunction *
// Find the correct default values
const FunctionModificationList functionMods = metaFunction->modifications(metaClass);
- for (int i = 0; i < metaArguments.size(); ++i) {
+ applyCachedFunctionModifications(metaFunction, functionMods);
+ for (qsizetype i = 0; i < metaArguments.size(); ++i) {
AbstractMetaArgument &metaArg = metaArguments[i];
// use replace-default-expression for set default value
@@ -1648,7 +1771,7 @@ AbstractMetaFunction *
}
bool AbstractMetaBuilderPrivate::traverseAddedMemberFunction(const AddedFunctionPtr &addedFunc,
- AbstractMetaClass *metaClass,
+ const AbstractMetaClassPtr &metaClass,
QString *errorMessage)
{
AbstractMetaFunction *metaFunction =
@@ -1658,11 +1781,11 @@ bool AbstractMetaBuilderPrivate::traverseAddedMemberFunction(const AddedFunction
const AbstractMetaArgumentList fargs = metaFunction->arguments();
if (metaClass->isNamespace())
- *metaFunction += AbstractMetaFunction::Static;
+ metaFunction->setCppAttribute(FunctionAttribute::Static);
if (metaFunction->name() == metaClass->name()) {
metaFunction->setFunctionType(AbstractMetaFunction::ConstructorFunction);
if (fargs.size() == 1) {
- const TypeEntry *te = fargs.constFirst().type().typeEntry();
+ const auto te = fargs.constFirst().type().typeEntry();
if (te->isCustom())
metaFunction->setExplicit(true);
if (te->name() == metaFunction->name())
@@ -1672,7 +1795,7 @@ bool AbstractMetaBuilderPrivate::traverseAddedMemberFunction(const AddedFunction
metaFunction->setDeclaringClass(metaClass);
metaFunction->setImplementingClass(metaClass);
- metaClass->addFunction(AbstractMetaFunctionCPtr(metaFunction));
+ AbstractMetaClass::addFunction(metaClass, AbstractMetaFunctionCPtr(metaFunction));
metaClass->setHasNonPrivateConstructor(true);
return true;
}
@@ -1688,9 +1811,9 @@ void AbstractMetaBuilderPrivate::fixArgumentNames(AbstractMetaFunction *func, co
}
}
- for (int i = 0, size = arguments.size(); i < size; ++i) {
+ for (qsizetype i = 0, size = arguments.size(); i < size; ++i) {
if (arguments.at(i).name().isEmpty())
- arguments[i].setName(QLatin1String("arg__") + QString::number(i + 1), false);
+ arguments[i].setName(u"arg__"_s + QString::number(i + 1), false);
}
}
@@ -1700,15 +1823,15 @@ static QString functionSignature(const FunctionModelItem &functionItem)
const ArgumentList &arguments = functionItem->arguments();
for (const ArgumentModelItem &arg : arguments)
args << arg->type().toString();
- return functionItem->name() + QLatin1Char('(') + args.join(QLatin1Char(',')) + QLatin1Char(')');
+ return functionItem->name() + u'(' + args.join(u',') + u')';
}
static inline QString qualifiedFunctionSignatureWithType(const FunctionModelItem &functionItem,
const QString &className = QString())
{
- QString result = functionItem->type().toString() + QLatin1Char(' ');
+ QString result = functionItem->type().toString() + u' ';
if (!className.isEmpty())
- result += className + colonColon();
+ result += className + u"::"_s;
result += functionSignature(functionItem);
return result;
}
@@ -1805,7 +1928,7 @@ static bool applyArrayArgumentModifications(const FunctionModificationList &func
const int i = argMod.index() - 1;
if (i < 0 || i >= func->arguments().size()) {
*errorMessage = msgCannotSetArrayUsage(func->minimalSignature(), i,
- QLatin1String("Index out of range."));
+ u"Index out of range."_s);
return false;
}
auto t = func->arguments().at(i).type();
@@ -1820,9 +1943,48 @@ static bool applyArrayArgumentModifications(const FunctionModificationList &func
return true;
}
+// Create the meta type for a view (std::string_view -> std::string)
+static AbstractMetaType createViewOnType(const AbstractMetaType &metaType,
+ const TypeEntryCPtr &viewOnTypeEntry)
+{
+ auto result = metaType;
+ result.setTypeEntry(viewOnTypeEntry);
+ if (!metaType.isContainer() || !viewOnTypeEntry->isContainer())
+ return result;
+ // For containers, when sth with several template parameters
+ // (std::span<T, int N>) is mapped onto a std::vector<T>,
+ // remove the superfluous template parameters and strip 'const'.
+ const auto vcte = std::static_pointer_cast<const ContainerTypeEntry>(viewOnTypeEntry);
+ const auto &instantiations = metaType.instantiations();
+ AbstractMetaTypeList viewInstantiations;
+ const auto size = std::min(vcte->templateParameterCount(), instantiations.size());
+ for (qsizetype i = 0; i < size; ++i) {
+ auto ins = instantiations.at(i);
+ ins.setConstant(false);
+ viewInstantiations.append(ins);
+ }
+ result.setInstantiations(viewInstantiations);
+ return result;
+}
+
+void AbstractMetaBuilderPrivate::rejectFunction(const FunctionModelItem &functionItem,
+ const AbstractMetaClassPtr &currentClass,
+ AbstractMetaBuilder::RejectReason reason,
+ const QString &rejectReason)
+{
+ QString sortKey;
+ if (currentClass)
+ sortKey += currentClass->typeEntry()->qualifiedCppName() + u"::"_s;
+ sortKey += functionSignature(functionItem); // Sort without return type
+ const QString signatureWithType = functionItem->type().toString() + u' ' + sortKey;
+ m_rejectedFunctions.insert({reason, signatureWithType, sortKey, rejectReason});
+}
+
AbstractMetaFunction *AbstractMetaBuilderPrivate::traverseFunction(const FunctionModelItem &functionItem,
- AbstractMetaClass *currentClass)
+ const AbstractMetaClassPtr &currentClass)
{
+ const auto *tdb = TypeDatabase::instance();
+
if (!functionItem->templateParameters().isEmpty())
return nullptr;
@@ -1840,34 +2002,40 @@ AbstractMetaFunction *AbstractMetaBuilderPrivate::traverseFunction(const Functio
}
return nullptr;
}
- QString functionName = functionItem->name();
- QString className;
- if (currentClass) {
+ const QString &functionName = functionItem->name();
+ const QString className = currentClass != nullptr ?
+ currentClass->typeEntry()->qualifiedCppName() : QString{};
+
+ if (m_apiExtractorFlags.testFlag(ApiExtractorFlag::UsePySideExtensions)) {
+ // Skip enum helpers generated by Q_ENUM
+ if ((currentClass == nullptr || currentClass->isNamespace())
+ && (functionName == u"qt_getEnumMetaObject" || functionName == u"qt_getEnumName")) {
+ return nullptr;
+ }
+
// Clang: Skip qt_metacast(), qt_metacall(), expanded from Q_OBJECT
// and overridden metaObject(), QGADGET helpers
- if (functionName == QLatin1String("qt_check_for_QGADGET_macro")
- || functionName.startsWith(QLatin1String("qt_meta"))) {
- return nullptr;
+ if (currentClass != nullptr) {
+ if (functionName == u"qt_check_for_QGADGET_macro"
+ || functionName.startsWith(u"qt_meta")) {
+ return nullptr;
+ }
+ if (functionName == u"metaObject" && className != u"QObject")
+ return nullptr;
}
- className = currentClass->typeEntry()->qualifiedCppName();
- if (functionName == QLatin1String("metaObject") && className != QLatin1String("QObject"))
- return nullptr;
- }
-
- // Store original signature with unresolved typedefs for message/log purposes
- const QString originalQualifiedSignatureWithReturn =
- qualifiedFunctionSignatureWithType(functionItem, className);
+ } // PySide extensions
QString rejectReason;
- if (TypeDatabase::instance()->isFunctionRejected(className, functionName, &rejectReason)) {
- m_rejectedFunctions.insert(originalQualifiedSignatureWithReturn + rejectReason, AbstractMetaBuilder::GenerationDisabled);
+ if (tdb->isFunctionRejected(className, functionName, &rejectReason)) {
+ rejectFunction(functionItem, currentClass,
+ AbstractMetaBuilder::GenerationDisabled, rejectReason);
return nullptr;
}
- const QString &signature = functionSignature(functionItem);
- const bool rejected =
- TypeDatabase::instance()->isFunctionRejected(className, signature, &rejectReason);
- if (rejected) {
+ const QString &signature = functionSignature(functionItem);
+ if (tdb->isFunctionRejected(className, signature, &rejectReason)) {
+ rejectFunction(functionItem, currentClass,
+ AbstractMetaBuilder::GenerationDisabled, rejectReason);
if (ReportHandler::isDebug(ReportHandler::MediumDebug)) {
qCInfo(lcShiboken, "%s::%s was rejected by the type database (%s).",
qPrintable(className), qPrintable(signature), qPrintable(rejectReason));
@@ -1878,47 +2046,30 @@ AbstractMetaFunction *AbstractMetaBuilderPrivate::traverseFunction(const Functio
if (functionItem->isFriend())
return nullptr;
- const bool deprecated = functionItem->isDeprecated();
+ const auto cppAttributes = functionItem->attributes();
+ const bool deprecated = cppAttributes.testFlag(FunctionAttribute::Deprecated);
if (deprecated && m_skipDeprecated) {
- m_rejectedFunctions.insert(originalQualifiedSignatureWithReturn + QLatin1String(" is deprecated."),
- AbstractMetaBuilder::GenerationDisabled);
+ rejectFunction(functionItem, currentClass,
+ AbstractMetaBuilder::GenerationDisabled, u" is deprecated."_s);
return nullptr;
}
- auto *metaFunction = new AbstractMetaFunction;
+ AbstractMetaFunction::Flags flags;
+ auto *metaFunction = new AbstractMetaFunction(functionName);
+ metaFunction->setCppAttributes(cppAttributes);
+ const QByteArray cSignature = signature.toUtf8();
+ const QString unresolvedSignature =
+ QString::fromUtf8(QMetaObject::normalizedSignature(cSignature.constData()));
+ metaFunction->setUnresolvedSignature(unresolvedSignature);
+ if (functionItem->isHiddenFriend())
+ flags.setFlag(AbstractMetaFunction::Flag::HiddenFriend);
metaFunction->setSourceLocation(functionItem->sourceLocation());
- if (deprecated)
- *metaFunction += AbstractMetaFunction::Deprecated;
// Additional check for assignment/move assignment down below
metaFunction->setFunctionType(functionTypeFromCodeModel(functionItem->functionType()));
metaFunction->setConstant(functionItem->isConstant());
metaFunction->setExceptionSpecification(functionItem->exceptionSpecification());
- metaFunction->setName(functionName);
- metaFunction->setOriginalName(functionItem->name());
-
- if (functionItem->isAbstract())
- *metaFunction += AbstractMetaFunction::Abstract;
-
- if (functionItem->isVirtual()) {
- *metaFunction += AbstractMetaFunction::VirtualCppMethod;
- if (functionItem->isOverride())
- *metaFunction += AbstractMetaFunction::OverriddenCppMethod;
- if (functionItem->isFinal())
- *metaFunction += AbstractMetaFunction::FinalCppMethod;
- } else {
- *metaFunction += AbstractMetaFunction::FinalInTargetLang;
- }
-
- if (functionItem->isInvokable())
- *metaFunction += AbstractMetaFunction::Invokable;
-
- if (functionItem->isStatic()) {
- *metaFunction += AbstractMetaFunction::Static;
- *metaFunction += AbstractMetaFunction::FinalInTargetLang;
- }
-
// Access rights
metaFunction->setAccess(functionItem->accessPolicy());
@@ -1928,25 +2079,30 @@ AbstractMetaFunction *AbstractMetaBuilderPrivate::traverseFunction(const Functio
metaFunction->setType(AbstractMetaType::createVoid());
break;
case AbstractMetaFunction::ConstructorFunction:
- metaFunction->setExplicit(functionItem->isExplicit());
metaFunction->setName(currentClass->name());
metaFunction->setType(AbstractMetaType::createVoid());
break;
default: {
TypeInfo returnType = functionItem->type();
- if (TypeDatabase::instance()->isReturnTypeRejected(className, returnType.toString(), &rejectReason)) {
- m_rejectedFunctions.insert(originalQualifiedSignatureWithReturn + rejectReason, AbstractMetaBuilder::GenerationDisabled);
+ if (tdb->isReturnTypeRejected(className, returnType.toString(), &rejectReason)) {
+ rejectFunction(functionItem, currentClass,
+ AbstractMetaBuilder::GenerationDisabled, rejectReason);
delete metaFunction;
return nullptr;
}
- auto type = translateType(returnType, currentClass, {}, &errorMessage);
+ TranslateTypeFlags flags;
+ if (functionItem->scopeResolution())
+ flags.setFlag(AbstractMetaBuilder::NoClassScopeLookup);
+ auto type = translateType(returnType, currentClass, flags, &errorMessage);
if (!type.has_value()) {
const QString reason = msgUnmatchedReturnType(functionItem, errorMessage);
+ const QString signature = qualifiedFunctionSignatureWithType(functionItem, className);
qCWarning(lcShiboken, "%s",
- qPrintable(msgSkippingFunction(functionItem, originalQualifiedSignatureWithReturn, reason)));
- m_rejectedFunctions.insert(originalQualifiedSignatureWithReturn, AbstractMetaBuilder::UnmatchedReturnType);
+ qPrintable(msgSkippingFunction(functionItem, signature, reason)));
+ rejectFunction(functionItem, currentClass,
+ AbstractMetaBuilder::UnmatchedReturnType, reason);
delete metaFunction;
return nullptr;
}
@@ -1957,41 +2113,56 @@ AbstractMetaFunction *AbstractMetaBuilderPrivate::traverseFunction(const Functio
}
ArgumentList arguments = functionItem->arguments();
+ // Add private signals for documentation purposes
+ if (!arguments.isEmpty()
+ && m_apiExtractorFlags.testFlag(ApiExtractorFlag::UsePySideExtensions)
+ && functionItem->functionType() == CodeModel::Signal
+ && arguments.constLast()->type().qualifiedName().constLast() == u"QPrivateSignal") {
+ flags.setFlag(AbstractMetaFunction::Flag::PrivateSignal);
+ arguments.removeLast();
+ }
if (arguments.size() == 1) {
ArgumentModelItem arg = arguments.at(0);
TypeInfo type = arg->type();
- if (type.qualifiedName().constFirst() == QLatin1String("void") && type.indirections() == 0)
+ if (type.qualifiedName().constFirst() == u"void" && type.indirections() == 0)
arguments.pop_front();
}
- for (int i = 0; i < arguments.size(); ++i) {
+ for (qsizetype i = 0; i < arguments.size(); ++i) {
const ArgumentModelItem &arg = arguments.at(i);
- if (TypeDatabase::instance()->isArgumentTypeRejected(className, arg->type().toString(), &rejectReason)) {
- m_rejectedFunctions.insert(originalQualifiedSignatureWithReturn + rejectReason, AbstractMetaBuilder::GenerationDisabled);
+ if (tdb->isArgumentTypeRejected(className, arg->type().toString(), &rejectReason)) {
+ rejectFunction(functionItem, currentClass,
+ AbstractMetaBuilder::GenerationDisabled, rejectReason);
delete metaFunction;
return nullptr;
}
- auto metaTypeO = translateType(arg->type(), currentClass, {}, &errorMessage);
+ TranslateTypeFlags flags;
+ if (arg->scopeResolution())
+ flags.setFlag(AbstractMetaBuilder::NoClassScopeLookup);
+ auto metaTypeO = translateType(arg->type(), currentClass, flags, &errorMessage);
if (!metaTypeO.has_value()) {
// If an invalid argument has a default value, simply remove it
// unless the function is virtual (since the override in the
// wrapper can then not correctly be generated).
- if (arg->defaultValue() && !functionItem->isVirtual()) {
+ if (arg->defaultValue()
+ && !functionItem->attributes().testFlag(FunctionAttribute::Virtual)) {
if (!currentClass || currentClass->typeEntry()->generateCode()) {
+ const QString signature = qualifiedFunctionSignatureWithType(functionItem, className);
qCWarning(lcShiboken, "%s",
- qPrintable(msgStrippingArgument(functionItem, i, originalQualifiedSignatureWithReturn, arg)));
+ qPrintable(msgStrippingArgument(functionItem, i, signature,
+ arg, errorMessage)));
}
break;
}
const QString reason = msgUnmatchedParameterType(arg, i, errorMessage);
+ const QString signature = qualifiedFunctionSignatureWithType(functionItem, className);
qCWarning(lcShiboken, "%s",
- qPrintable(msgSkippingFunction(functionItem, originalQualifiedSignatureWithReturn, reason)));
- const QString rejectedFunctionSignature = originalQualifiedSignatureWithReturn
- + QLatin1String(": ") + reason;
- m_rejectedFunctions.insert(rejectedFunctionSignature, AbstractMetaBuilder::UnmatchedArgumentType);
+ qPrintable(msgSkippingFunction(functionItem, signature, reason)));
+ rejectFunction(functionItem, currentClass,
+ AbstractMetaBuilder::UnmatchedArgumentType, reason);
delete metaFunction;
return nullptr;
}
@@ -2002,10 +2173,8 @@ AbstractMetaFunction *AbstractMetaBuilderPrivate::traverseFunction(const Functio
auto viewOnTypeEntry = metaType.typeEntry()->viewOn();
if (viewOnTypeEntry != nullptr && metaType.indirections() == 0
&& metaType.arrayElementType() == nullptr
- && !metaType.hasInstantiations()) {
- auto viewOn = metaType;
- viewOn.setTypeEntry(viewOnTypeEntry);
- metaType.setViewOn(viewOn);
+ && (!metaType.hasInstantiations() || metaType.isContainer())) {
+ metaType.setViewOn(createViewOnType(metaType, viewOnTypeEntry));
}
AbstractMetaArgument metaArgument;
@@ -2021,20 +2190,15 @@ AbstractMetaFunction *AbstractMetaBuilderPrivate::traverseFunction(const Functio
? AbstractMetaFunction::findClassModifications(metaFunction, currentClass)
: AbstractMetaFunction::findGlobalModifications(metaFunction);
- for (const FunctionModification &mod : functionMods) {
- if (mod.exceptionHandling() != TypeSystem::ExceptionHandling::Unspecified)
- metaFunction->setExceptionHandlingModification(mod.exceptionHandling());
- else if (mod.allowThread() != TypeSystem::AllowThread::Unspecified)
- metaFunction->setAllowThreadModification(mod.allowThread());
- }
+ applyCachedFunctionModifications(metaFunction, functionMods);
// Find the correct default values
- for (int i = 0, size = metaArguments.size(); i < size; ++i) {
+ for (qsizetype i = 0, size = metaArguments.size(); i < size; ++i) {
const ArgumentModelItem &arg = arguments.at(i);
AbstractMetaArgument &metaArg = metaArguments[i];
const QString originalDefaultExpression =
- fixDefaultValue(arg, metaArg.type(), currentClass, i);
+ fixDefaultValue(arg->defaultValueExpression(), metaArg.type(), currentClass);
metaArg.setOriginalDefaultValueExpression(originalDefaultExpression);
metaArg.setDefaultValueExpression(originalDefaultExpression);
@@ -2067,7 +2231,7 @@ AbstractMetaFunction *AbstractMetaBuilderPrivate::traverseFunction(const Functio
if (currentClass && metaFunction->arguments().size() == 1) {
const AbstractMetaType &argType = metaFunction->arguments().constFirst().type();
if (argType.typeEntry() == currentClass->typeEntry() && argType.indirections() == 0) {
- if (metaFunction->name() == QLatin1String("operator=")) {
+ if (metaFunction->name() == u"operator=") {
switch (argType.referenceType()) {
case NoReference:
metaFunction->setFunctionType(AbstractMetaFunction::AssignmentOperatorFunction);
@@ -2083,35 +2247,39 @@ AbstractMetaFunction *AbstractMetaBuilderPrivate::traverseFunction(const Functio
}
}
}
+ metaFunction->setFlags(flags);
return metaFunction;
}
-static const TypeEntry* findTypeEntryUsingContext(const AbstractMetaClass* metaClass, const QString& qualifiedName)
+static TypeEntryCPtr findTypeEntryUsingContext(const AbstractMetaClassCPtr &metaClass,
+ const QString& qualifiedName)
{
- const TypeEntry* type = nullptr;
- QStringList context = metaClass->qualifiedCppName().split(colonColon());
+ TypeEntryCPtr type;
+ QStringList context = metaClass->qualifiedCppName().split(u"::"_s);
while (!type && !context.isEmpty()) {
- type = TypeDatabase::instance()->findType(context.join(colonColon()) + colonColon() + qualifiedName);
+ type = TypeDatabase::instance()->findType(context.join(u"::"_s) + u"::"_s + qualifiedName);
context.removeLast();
}
return type;
}
// Helper for findTypeEntries/translateTypeStatic()
-TypeEntries AbstractMetaBuilderPrivate::findTypeEntriesHelper(const QString &qualifiedName,
- const QString &name,
- const AbstractMetaClass *currentClass,
- AbstractMetaBuilderPrivate *d)
+TypeEntryCList AbstractMetaBuilderPrivate::findTypeEntriesHelper(const QString &qualifiedName,
+ const QString &name,
+ TranslateTypeFlags flags,
+ const AbstractMetaClassCPtr &currentClass,
+ AbstractMetaBuilderPrivate *d)
{
// 5.1 - Try first using the current scope
- if (currentClass) {
+ if (currentClass != nullptr
+ && !flags.testFlag(AbstractMetaBuilder::NoClassScopeLookup)) {
if (auto type = findTypeEntryUsingContext(currentClass, qualifiedName))
return {type};
// 5.1.1 - Try using the class parents' scopes
if (d && !currentClass->baseClassNames().isEmpty()) {
- const AbstractMetaClassList &baseClasses = d->getBaseClasses(currentClass);
- for (const AbstractMetaClass *cls : baseClasses) {
+ const auto &baseClasses = d->getBaseClasses(currentClass);
+ for (const auto &cls : baseClasses) {
if (auto type = findTypeEntryUsingContext(cls, qualifiedName))
return {type};
}
@@ -2135,7 +2303,7 @@ TypeEntries AbstractMetaBuilderPrivate::findTypeEntriesHelper(const QString &qua
// of the parameters.
if (currentClass) {
const auto &template_args = currentClass->templateArguments();
- for (const TypeEntry *te : template_args) {
+ for (const auto &te : template_args) {
if (te->name() == qualifiedName)
return {te};
}
@@ -2145,25 +2313,37 @@ TypeEntries AbstractMetaBuilderPrivate::findTypeEntriesHelper(const QString &qua
// Helper for translateTypeStatic() that calls findTypeEntriesHelper()
// and does some error checking.
-TypeEntries AbstractMetaBuilderPrivate::findTypeEntries(const QString &qualifiedName,
- const QString &name,
- const AbstractMetaClass *currentClass,
- AbstractMetaBuilderPrivate *d,
- QString *errorMessage)
-{
- const TypeEntries types = findTypeEntriesHelper(qualifiedName, name, currentClass, d);
+TypeEntryCList AbstractMetaBuilderPrivate::findTypeEntries(const QString &qualifiedName,
+ const QString &name,
+ TranslateTypeFlags flags,
+ const AbstractMetaClassCPtr &currentClass,
+ AbstractMetaBuilderPrivate *d,
+ QString *errorMessage)
+{
+ TypeEntryCList types = findTypeEntriesHelper(qualifiedName, name, flags,
+ currentClass, d);
if (types.isEmpty()) {
if (errorMessage != nullptr)
*errorMessage = msgCannotFindTypeEntry(qualifiedName);
return {};
}
+ // Resolve entries added by metabuilder (for example, "GLenum") to match
+ // the signatures for modifications.
+ for (qsizetype i = 0, size = types.size(); i < size; ++i) {
+ const auto &e = types.at(i);
+ if (e->isPrimitive()) {
+ const auto pte = std::static_pointer_cast<const PrimitiveTypeEntry>(e);
+ types[i] = basicReferencedNonBuiltinTypeEntry(pte);
+ }
+ }
+
if (types.size() == 1)
return types;
const auto typeEntryType = types.constFirst()->type();
const bool sameType = std::all_of(types.cbegin() + 1, types.cend(),
- [typeEntryType](const TypeEntry *e) {
+ [typeEntryType](const TypeEntryCPtr &e) {
return e->type() == typeEntryType;
});
@@ -2186,10 +2366,10 @@ TypeEntries AbstractMetaBuilderPrivate::findTypeEntries(const QString &qualified
// Reverse lookup of AbstractMetaType representing a template specialization
// found during traversing function arguments to its type system typedef'ed
// class.
-const AbstractMetaClass *AbstractMetaBuilderPrivate::resolveTypeSystemTypeDef(const AbstractMetaType &t) const
+AbstractMetaClassCPtr AbstractMetaBuilderPrivate::resolveTypeSystemTypeDef(const AbstractMetaType &t) const
{
if (t.hasInstantiations()) {
- auto pred = [t](const TypeClassEntry &e) { return e.type.equals(t); };
+ auto pred = [t](const TypeClassEntry &e) { return e.type == t; };
auto it = std::find_if(m_typeSystemTypeDefs.cbegin(), m_typeSystemTypeDefs.cend(), pred);
if (it != m_typeSystemTypeDefs.cend())
return it->klass;
@@ -2197,9 +2377,194 @@ const AbstractMetaClass *AbstractMetaBuilderPrivate::resolveTypeSystemTypeDef(co
return nullptr;
}
+// The below helpers and AbstractMetaBuilderPrivate::fixSmartPointers()
+// synthesize missing smart pointer functions and classes. For example for
+// std::shared_ptr, the full class declaration or base classes from
+// internal, compiler-dependent STL implementation headers might not be exposed
+// to the parser unless those headers are specified as <system-include>.
+
+static void synthesizeWarning(const AbstractMetaFunctionCPtr &f)
+{
+ qCWarning(lcShiboken, "Synthesizing \"%s\"...",
+ qPrintable(f->classQualifiedSignature()));
+}
+
+static AbstractMetaFunctionPtr
+ addMethod(const AbstractMetaClassPtr &s, const AbstractMetaType &returnType,
+ const QString &name, bool isConst = true)
+{
+ auto function = std::make_shared<AbstractMetaFunction>(name);
+ function->setType(returnType);
+ AbstractMetaClass::addFunction(s, function);
+ function->setConstant(isConst);
+ synthesizeWarning(function);
+ return function;
+}
+
+static AbstractMetaFunctionPtr
+ addMethod(const AbstractMetaClassPtr &s, const QString &returnTypeName,
+ const QString &name, bool isConst = true)
+{
+ auto typeEntry = TypeDatabase::instance()->findPrimitiveType(returnTypeName);
+ Q_ASSERT(typeEntry);
+ AbstractMetaType returnType(typeEntry);
+ returnType.decideUsagePattern();
+ return addMethod(s, returnType, name, isConst);
+}
+
+// Create the instantiation type of a smart pointer
+static AbstractMetaType instantiationType(const AbstractMetaClassCPtr &s,
+ const SmartPointerTypeEntryCPtr &ste)
+{
+ AbstractMetaType type(s->templateArguments().constFirst());
+ if (ste->smartPointerType() != TypeSystem::SmartPointerType::ValueHandle)
+ type.addIndirection();
+ type.decideUsagePattern();
+ return type;
+}
+
+// Create the pointee argument of a smart pointer constructor or reset()
+static AbstractMetaArgument pointeeArgument(const AbstractMetaClassCPtr &s,
+ const SmartPointerTypeEntryCPtr &ste)
+{
+ AbstractMetaArgument pointee;
+ pointee.setType(instantiationType(s, ste));
+ pointee.setName(u"pointee"_s);
+ return pointee;
+}
+
+// Add the smart pointer constructors. For MSVC, (when not specifying
+// <system-header>), clang only sees the default constructor.
+static void fixSmartPointerConstructors(const AbstractMetaClassPtr &s,
+ const SmartPointerTypeEntryCPtr &ste)
+{
+ const auto ctors = s->queryFunctions(FunctionQueryOption::Constructors);
+ bool seenDefaultConstructor = false;
+ bool seenParameter = false;
+ for (const auto &ctor : ctors) {
+ if (ctor->arguments().isEmpty())
+ seenDefaultConstructor = true;
+ else
+ seenParameter = true;
+ }
+
+ if (!seenParameter) {
+ auto constructor = std::make_shared<AbstractMetaFunction>(s->name());
+ constructor->setFunctionType(AbstractMetaFunction::ConstructorFunction);
+ constructor->addArgument(pointeeArgument(s, ste));
+ AbstractMetaClass::addFunction(s, constructor);
+ synthesizeWarning(constructor);
+ }
+
+ if (!seenDefaultConstructor) {
+ auto constructor = std::make_shared<AbstractMetaFunction>(s->name());
+ constructor->setFunctionType(AbstractMetaFunction::ConstructorFunction);
+ AbstractMetaClass::addFunction(s, constructor);
+ synthesizeWarning(constructor);
+ }
+}
+
+// Similarly, add the smart pointer reset() functions
+static void fixSmartPointerReset(const AbstractMetaClassPtr &s,
+ const SmartPointerTypeEntryCPtr &ste)
+{
+ const QString resetMethodName = ste->resetMethod();
+ const auto functions = s->findFunctions(resetMethodName);
+ bool seenParameterLess = false;
+ bool seenParameter = false;
+ for (const auto &function : functions) {
+ if (function->arguments().isEmpty())
+ seenParameterLess = true;
+ else
+ seenParameter = true;
+ }
+
+ if (!seenParameter) {
+ auto f = std::make_shared<AbstractMetaFunction>(resetMethodName);
+ f->addArgument(pointeeArgument(s, ste));
+ AbstractMetaClass::addFunction(s, f);
+ synthesizeWarning(f);
+ }
+
+ if (!seenParameterLess) {
+ auto f = std::make_shared<AbstractMetaFunction>(resetMethodName);
+ AbstractMetaClass::addFunction(s, f);
+ synthesizeWarning(f);
+ }
+}
+
+// Add the relevant missing smart pointer functions.
+static void fixSmartPointerClass(const AbstractMetaClassPtr &s,
+ const SmartPointerTypeEntryCPtr &ste)
+{
+ fixSmartPointerConstructors(s, ste);
+
+ if (!ste->resetMethod().isEmpty())
+ fixSmartPointerReset(s, ste);
+
+ const QString getterName = ste->getter();
+ if (!s->findFunction(getterName))
+ addMethod(s, instantiationType(s, ste), getterName);
+
+ const QString refCountName = ste->refCountMethodName();
+ if (!refCountName.isEmpty() && !s->findFunction(refCountName))
+ addMethod(s, u"int"_s, refCountName);
+
+ const QString valueCheckMethod = ste->valueCheckMethod();
+ if (!valueCheckMethod.isEmpty() && !s->findFunction(valueCheckMethod)) {
+ auto f = addMethod(s, u"bool"_s, valueCheckMethod);
+ if (valueCheckMethod == u"operator bool")
+ f->setFunctionType(AbstractMetaFunction::ConversionOperator);
+ }
+
+ const QString nullCheckMethod = ste->nullCheckMethod();
+ if (!nullCheckMethod.isEmpty() && !s->findFunction(nullCheckMethod))
+ addMethod(s, u"bool"_s, nullCheckMethod);
+}
+
+// Create a missing smart pointer class
+static AbstractMetaClassPtr createSmartPointerClass(const SmartPointerTypeEntryCPtr &ste,
+ const AbstractMetaClassList &allClasses)
+{
+ auto result = std::make_shared<AbstractMetaClass>();
+ result->setTypeEntry(std::const_pointer_cast<SmartPointerTypeEntry>(ste));
+ auto templateArg = std::make_shared<TemplateArgumentEntry>(u"T"_s, ste->version(),
+ typeSystemTypeEntry(ste));
+ result->setTemplateArguments({templateArg});
+ fixSmartPointerClass(result, ste);
+ auto enclosingTe = ste->parent();
+ if (!enclosingTe->isTypeSystem()) {
+ const auto enclosing = AbstractMetaClass::findClass(allClasses, enclosingTe);
+ if (!enclosing)
+ throw Exception(msgEnclosingClassNotFound(ste));
+ result->setEnclosingClass(enclosing);
+ auto inner = enclosing->innerClasses();
+ inner.append(std::const_pointer_cast<const AbstractMetaClass>(result));
+ enclosing->setInnerClasses(inner);
+ }
+ return result;
+}
+
+void AbstractMetaBuilderPrivate::fixSmartPointers()
+{
+ const auto smartPointerTypes = TypeDatabase::instance()->smartPointerTypes();
+ for (const auto &ste : smartPointerTypes) {
+ const auto smartPointerClass =
+ AbstractMetaClass::findClass(m_smartPointers, ste);
+ if (smartPointerClass) {
+ fixSmartPointerClass(std::const_pointer_cast<AbstractMetaClass>(smartPointerClass),
+ ste);
+ } else {
+ qCWarning(lcShiboken, "Synthesizing smart pointer \"%s\"...",
+ qPrintable(ste->qualifiedCppName()));
+ m_smartPointers.append(createSmartPointerClass(ste, m_metaClasses));
+ }
+ }
+}
+
std::optional<AbstractMetaType>
AbstractMetaBuilderPrivate::translateType(const TypeInfo &_typei,
- const AbstractMetaClass *currentClass,
+ const AbstractMetaClassCPtr &currentClass,
TranslateTypeFlags flags,
QString *errorMessage)
{
@@ -2212,9 +2577,16 @@ static bool isNumber(const QString &s)
[](QChar c) { return c.isDigit(); });
}
+// A type entry relevant only for non type template "X<5>"
+static bool isNonTypeTemplateArgument(const TypeEntryCPtr &te)
+{
+ const auto type = te->type();
+ return type == TypeEntry::EnumValue || type == TypeEntry::ConstantValueType;
+}
+
std::optional<AbstractMetaType>
AbstractMetaBuilderPrivate::translateTypeStatic(const TypeInfo &_typei,
- const AbstractMetaClass *currentClass,
+ const AbstractMetaClassCPtr &currentClass,
AbstractMetaBuilderPrivate *d,
TranslateTypeFlags flags,
QString *errorMessageIn)
@@ -2241,10 +2613,10 @@ std::optional<AbstractMetaType>
// the global scope when they are referenced from inside a namespace.
// This is a work around to fix this bug since fixing it in resolveType
// seemed non-trivial
- int i = d ? d->m_scopes.size() - 1 : -1;
+ qsizetype i = d ? d->m_scopes.size() - 1 : -1;
while (i >= 0) {
typeInfo = TypeInfo::resolveType(_typei, d->m_scopes.at(i--));
- if (typeInfo.qualifiedName().join(colonColon()) != _typei.qualifiedName().join(colonColon()))
+ if (typeInfo.qualifiedName().join(u"::"_s) != _typei.qualifiedName().join(u"::"_s))
break;
}
@@ -2252,7 +2624,7 @@ std::optional<AbstractMetaType>
if (typeInfo.isFunctionPointer()) {
if (errorMessageIn)
- *errorMessageIn = msgUnableToTranslateType(_typei, QLatin1String("Unsupported function pointer."));
+ *errorMessageIn = msgUnableToTranslateType(_typei, u"Unsupported function pointer."_s);
return {};
}
@@ -2268,7 +2640,7 @@ std::optional<AbstractMetaType>
bool isConstCharStarCase =
oneDimensionalArrayOfUnspecifiedSize
&& typeInfo.qualifiedName().size() == 1
- && typeInfo.qualifiedName().at(0) == QStringLiteral("char")
+ && typeInfo.qualifiedName().at(0) == "char"_L1
&& typeInfo.indirections() == 0
&& typeInfo.isConstant()
&& typeInfo.referenceType() == NoReference
@@ -2292,13 +2664,13 @@ std::optional<AbstractMetaType>
auto elementType = translateTypeStatic(newInfo, currentClass, d, flags, &errorMessage);
if (!elementType.has_value()) {
if (errorMessageIn) {
- errorMessage.prepend(QLatin1String("Unable to translate array element: "));
+ errorMessage.prepend(u"Unable to translate array element: "_s);
*errorMessageIn = msgUnableToTranslateType(_typei, errorMessage);
}
return {};
}
- for (int i = typeInfo.arrayElements().size() - 1; i >= 0; --i) {
+ for (auto i = typeInfo.arrayElements().size() - 1; i >= 0; --i) {
AbstractMetaType arrayType;
arrayType.setArrayElementType(elementType.value());
const QString &arrayElement = typeInfo.arrayElements().at(i);
@@ -2311,8 +2683,9 @@ std::optional<AbstractMetaType>
arrayType.setArrayElementCount(int(elems));
}
auto elementTypeEntry = elementType->typeEntry();
- arrayType.setTypeEntry(new ArrayTypeEntry(elementTypeEntry, elementTypeEntry->version(),
- elementTypeEntry->parent()));
+ auto at = std::make_shared<ArrayTypeEntry>(elementTypeEntry, elementTypeEntry->version(),
+ elementTypeEntry->parent());
+ arrayType.setTypeEntry(at);
arrayType.decideUsagePattern();
elementType = arrayType;
@@ -2323,7 +2696,7 @@ std::optional<AbstractMetaType>
QStringList qualifierList = typeInfo.qualifiedName();
if (qualifierList.isEmpty()) {
- errorMessage = msgUnableToTranslateType(_typei, QLatin1String("horribly broken type"));
+ errorMessage = msgUnableToTranslateType(_typei, u"horribly broken type"_s);
if (errorMessageIn)
*errorMessageIn = errorMessage;
else
@@ -2331,23 +2704,32 @@ std::optional<AbstractMetaType>
return {};
}
- QString qualifiedName = qualifierList.join(colonColon());
+ QString qualifiedName = qualifierList.join(u"::"_s);
QString name = qualifierList.takeLast();
// 4. Special case QFlags (include instantiation in name)
- if (qualifiedName == QLatin1String("QFlags")) {
+ if (qualifiedName == u"QFlags") {
qualifiedName = typeInfo.toString();
typeInfo.clearInstantiations();
}
- const TypeEntries types = findTypeEntries(qualifiedName, name, currentClass, d, errorMessageIn);
+ TypeEntryCList types = findTypeEntries(qualifiedName, name, flags,
+ currentClass, d, errorMessageIn);
+ if (!flags.testFlag(AbstractMetaBuilder::TemplateArgument)) {
+ // Avoid clashes between QByteArray and enum value QMetaType::QByteArray
+ // unless we are looking for template arguments.
+ auto end = std::remove_if(types.begin(), types.end(),
+ isNonTypeTemplateArgument);
+ types.erase(end, types.end());
+ }
+
if (types.isEmpty()) {
if (errorMessageIn != nullptr)
*errorMessageIn = msgUnableToTranslateType(_typei, *errorMessageIn);
return {};
}
- const TypeEntry *type = types.constFirst();
+ TypeEntryCPtr type = types.constFirst();
const TypeEntry::Type typeEntryType = type->type();
AbstractMetaType metaType;
@@ -2358,15 +2740,18 @@ std::optional<AbstractMetaType>
metaType.setOriginalTypeDescription(_typei.toString());
const auto &templateArguments = typeInfo.instantiations();
- for (int t = 0, size = templateArguments.size(); t < size; ++t) {
+ for (qsizetype t = 0, size = templateArguments.size(); t < size; ++t) {
const TypeInfo &ti = templateArguments.at(t);
- auto targType = translateTypeStatic(ti, currentClass, d, flags, &errorMessage);
+ auto targType = translateTypeStatic(ti, currentClass, d,
+ flags | AbstractMetaBuilder::TemplateArgument,
+ &errorMessage);
// For non-type template parameters, create a dummy type entry on the fly
// as is done for classes.
if (!targType.has_value()) {
- const QString value = ti.qualifiedName().join(colonColon());
+ const QString value = ti.qualifiedName().join(u"::"_s);
if (isNumber(value)) {
- TypeDatabase::instance()->addConstantValueTypeEntry(value, type->typeSystemTypeEntry());
+ auto module = typeSystemTypeEntry(type);
+ TypeDatabase::instance()->addConstantValueTypeEntry(value, module);
targType = translateTypeStatic(ti, currentClass, d, flags, &errorMessage);
}
}
@@ -2392,8 +2777,8 @@ std::optional<AbstractMetaType>
type = instantiationType;
} else {
auto it = std::find_if(types.cbegin(), types.cend(),
- [instantiationType](const TypeEntry *e) {
- auto smartPtr = static_cast<const SmartPointerTypeEntry *>(e);
+ [instantiationType](const TypeEntryCPtr &e) {
+ auto smartPtr = std::static_pointer_cast<const SmartPointerTypeEntry>(e);
return smartPtr->matchesInstantiation(instantiationType);
});
if (it == types.cend()) {
@@ -2427,7 +2812,7 @@ std::optional<AbstractMetaType>
std::optional<AbstractMetaType>
AbstractMetaBuilder::translateType(const TypeInfo &_typei,
- AbstractMetaClass *currentClass,
+ const AbstractMetaClassPtr &currentClass,
TranslateTypeFlags flags,
QString *errorMessage)
{
@@ -2438,7 +2823,7 @@ std::optional<AbstractMetaType>
std::optional<AbstractMetaType>
AbstractMetaBuilder::translateType(const QString &t,
- AbstractMetaClass *currentClass,
+ const AbstractMetaClassPtr &currentClass,
TranslateTypeFlags flags,
QString *errorMessageIn)
{
@@ -2461,14 +2846,14 @@ qint64 AbstractMetaBuilderPrivate::findOutValueFromString(const QString &stringV
if (ok)
return value;
- if (stringValue == QLatin1String("true") || stringValue == QLatin1String("false")) {
+ if (stringValue == u"true" || stringValue == u"false") {
ok = true;
- return (stringValue == QLatin1String("true"));
+ return (stringValue == u"true");
}
// This is a very lame way to handle expression evaluation,
// but it is not critical and will do for the time being.
- static const QRegularExpression variableNameRegExp(QStringLiteral("^[a-zA-Z_][a-zA-Z0-9_]*$"));
+ static const QRegularExpression variableNameRegExp("^[a-zA-Z_][a-zA-Z0-9_]*$"_L1);
Q_ASSERT(variableNameRegExp.isValid());
if (!variableNameRegExp.match(stringValue).hasMatch()) {
ok = true;
@@ -2481,7 +2866,7 @@ qint64 AbstractMetaBuilderPrivate::findOutValueFromString(const QString &stringV
return enumValue->value().value();
}
- for (const AbstractMetaEnum &metaEnum : qAsConst(m_globalEnums)) {
+ for (const AbstractMetaEnum &metaEnum : std::as_const(m_globalEnums)) {
auto ev = metaEnum.findEnumValue(stringValue);
if (ev.has_value()) {
ok = true;
@@ -2493,115 +2878,163 @@ qint64 AbstractMetaBuilderPrivate::findOutValueFromString(const QString &stringV
return 0;
}
-QString AbstractMetaBuilderPrivate::fixDefaultValue(const ArgumentModelItem &item,
- const AbstractMetaType &type,
- const AbstractMetaClass *implementingClass,
- int /* argumentIndex */)
+// Return whether candidate is some underqualified specification of qualifiedType
+// ("B::C" should be qualified to "A::B::C")
+static bool isUnderQualifiedSpec(QStringView qualifiedType, QStringView candidate)
{
- QString expr = item->defaultValueExpression();
- if (expr.isEmpty() || expr == u"{}")
- return expr;
+ const auto candidateSize = candidate.size();
+ const auto qualifiedTypeSize = qualifiedType.size();
+ return candidateSize < qualifiedTypeSize
+ && qualifiedType.endsWith(candidate)
+ && qualifiedType.at(qualifiedTypeSize - candidateSize - 1) == u':';
+}
+
+QString AbstractMetaBuilder::fixEnumDefault(const AbstractMetaType &type,
+ const QString &expr,
+ const AbstractMetaClassCPtr &klass) const
+{
+ return d->fixEnumDefault(type, expr, klass);
+}
+
+void AbstractMetaBuilder::setCodeModelTestMode(bool b)
+{
+ AbstractMetaBuilderPrivate::m_codeModelTestMode = b;
+}
+
+// Helper to fix a simple default value (field or enum reference) in a
+// class context.
+QString AbstractMetaBuilderPrivate::fixSimpleDefaultValue(QStringView expr,
+ const AbstractMetaClassCPtr &klass) const
+{
+ const QString field = qualifyStaticField(klass, expr);
+ if (!field.isEmpty())
+ return field;
+ const auto cit = m_classToItem.constFind(klass);
+ if (cit == m_classToItem.cend())
+ return {};
+ auto *scope = dynamic_cast<const _ScopeModelItem *>(cit.value());
+ if (!scope)
+ return {};
+ if (auto enumValue = scope->findEnumByValue(expr))
+ return enumValue.qualifiedName;
+ return {};
+}
+
+// see TestResolveType::testFixDefaultArguments()
+QString AbstractMetaBuilderPrivate::fixDefaultValue(QString expr, const AbstractMetaType &type,
+ const AbstractMetaClassCPtr &implementingClass) const
+{
expr.replace(u'\n', u' '); // breaks signature parser
- if (type.isPrimitive()) {
- if (type.name() == QLatin1String("boolean")) {
- if (expr != QLatin1String("false") && expr != QLatin1String("true")) {
- bool ok = false;
- int number = expr.toInt(&ok);
- if (ok && number)
- expr = QLatin1String("true");
- else
- expr = QLatin1String("false");
- }
- } else {
- // This can be an enum or flag so I need to delay the
- // translation until all namespaces are completely
- // processed. This is done in figureOutEnumValues()
- }
- } else if (type.isFlags() || type.isEnum()) {
- bool isNumber;
- expr.toInt(&isNumber);
- if (!isNumber && expr.indexOf(colonColon()) < 0) {
- // Add the enum/flag scope to default value, making it usable
- // from other contexts beside its owner class hierarchy
- static const QRegularExpression typeRegEx(QStringLiteral("[^<]*[<]([^:]*::).*"));
- Q_ASSERT(typeRegEx.isValid());
- const QRegularExpressionMatch match = typeRegEx.match(type.minimalSignature());
- if (match.hasMatch())
- expr.prepend(match.captured(1));
- }
- } else if (type.isContainer() && expr.contains(QLatin1Char('<'))) {
- static const QRegularExpression typeRegEx(QStringLiteral("[^<]*<(.*)>"));
- Q_ASSERT(typeRegEx.isValid());
- const QRegularExpressionMatch typeMatch = typeRegEx.match(type.minimalSignature());
- static const QRegularExpression defaultRegEx(QLatin1String("([^<]*<).*(>[^>]*)"));
- Q_ASSERT(defaultRegEx.isValid());
- const QRegularExpressionMatch defaultMatch = defaultRegEx.match(expr);
- if (typeMatch.hasMatch() && defaultMatch.hasMatch())
- expr = defaultMatch.captured(1) + typeMatch.captured(1) + defaultMatch.captured(2);
+ if (AbstractMetaBuilder::dontFixDefaultValue(expr))
+ return expr;
+
+ if (type.isFlags() || type.isEnum()) {
+ expr = fixEnumDefault(type, expr, implementingClass);
+ } else if (type.isContainer() && expr.contains(u'<')) {
+ // Expand a container of a nested class, fex
+ // "QList<FormatRange>()" -> "QList<QTextLayout::FormatRange>()"
+ if (type.instantiations().size() != 1)
+ return expr; // Only simple types are handled, not QMap<int, int>.
+ auto innerTypeEntry = type.instantiations().constFirst().typeEntry();
+ if (!innerTypeEntry->isComplex())
+ return expr;
+ const QString &qualifiedInnerTypeName = innerTypeEntry->qualifiedCppName();
+ if (!qualifiedInnerTypeName.contains(u"::")) // Nothing to qualify here
+ return expr;
+ const auto openPos = expr.indexOf(u'<');
+ const auto closingPos = expr.lastIndexOf(u'>');
+ if (openPos == -1 || closingPos == -1)
+ return expr;
+ const auto innerPos = openPos + 1;
+ const auto innerLen = closingPos - innerPos;
+ const auto innerType = QStringView{expr}.mid(innerPos, innerLen).trimmed();
+ if (isUnderQualifiedSpec(qualifiedInnerTypeName, innerType))
+ expr.replace(innerPos, innerLen, qualifiedInnerTypeName);
} else {
- // Here the default value is supposed to be a constructor,
- // a class field, or a constructor receiving a class field
- static const QRegularExpression defaultRegEx(QStringLiteral("([^\\(]*\\(|)([^\\)]*)(\\)|)"));
- Q_ASSERT(defaultRegEx.isValid());
- const QRegularExpressionMatch defaultMatch = defaultRegEx.match(expr);
- QString defaultValueCtorName = defaultMatch.hasMatch() ? defaultMatch.captured(1) : QString();
- if (defaultValueCtorName.endsWith(QLatin1Char('(')))
- defaultValueCtorName.chop(1);
-
- // Fix the scope for constructor using the already resolved argument
- // type as a reference. The following regular expression extracts any
- // use of namespaces/scopes from the type string.
- static const QRegularExpression
- typeRegEx(QLatin1String(R"(^(?:const[\s]+|)([\w:]*::|)([A-Za-z_]\w*)\s*[&\*]?$)"));
- Q_ASSERT(typeRegEx.isValid());
- const QRegularExpressionMatch typeMatch = typeRegEx.match(type.minimalSignature());
-
- QString typeNamespace = typeMatch.hasMatch() ? typeMatch.captured(1) : QString();
- QString typeCtorName = typeMatch.hasMatch() ? typeMatch.captured(2) : QString();
- if (!typeNamespace.isEmpty() && defaultValueCtorName == typeCtorName)
- expr.prepend(typeNamespace);
-
- // Fix scope if the parameter is a field of the current class
- if (implementingClass) {
- const AbstractMetaFieldList &fields = implementingClass->fields();
- for (const AbstractMetaField &field : fields) {
- if (defaultMatch.hasMatch() && defaultMatch.captured(2) == field.name()) {
- expr = defaultMatch.captured(1) + implementingClass->name()
- + colonColon() + defaultMatch.captured(2) + defaultMatch.captured(3);
- break;
- }
+ // Here the default value is supposed to be a constructor, a class field,
+ // a constructor receiving a static class field or an enum. Consider
+ // class QSqlDatabase { ...
+ // static const char *defaultConnection;
+ // QSqlDatabase(const QString &connection = QLatin1String(defaultConnection))
+ // -> = QLatin1String(QSqlDatabase::defaultConnection)
+ // static void foo(QSqlDatabase db = QSqlDatabase(defaultConnection));
+ // -> = QSqlDatabase(QSqlDatabase::defaultConnection)
+ //
+ // Enum values from the class as defaults of int and others types (via
+ // implicit conversion) are handled here as well:
+ // class QStyleOption { ...
+ // enum StyleOptionType { Type = SO_Default };
+ // QStyleOption(..., int type = SO_Default);
+ // -> = QStyleOption::StyleOptionType::SO_Default
+
+ // Is this a single field or an enum?
+ if (isQualifiedCppIdentifier(expr)) {
+ const QString fixed = fixSimpleDefaultValue(expr, implementingClass);
+ return fixed.isEmpty() ? expr : fixed;
+ }
+
+ // Is this sth like "QLatin1String(field)", "Class(Field)", "Class()"?
+ const auto parenPos = expr.indexOf(u'(');
+ if (parenPos == -1 || !expr.endsWith(u')'))
+ return expr;
+ // Is the term within parentheses a class field or enum?
+ const auto innerLength = expr.size() - parenPos - 2;
+ if (innerLength > 0) { // Not some function call "defaultFunc()"
+ const auto inner = QStringView{expr}.mid(parenPos + 1, innerLength);
+ if (isQualifiedCppIdentifier(inner)
+ && !AbstractMetaBuilder::dontFixDefaultValue(inner)) {
+ const QString replacement = fixSimpleDefaultValue(inner, implementingClass);
+ if (!replacement.isEmpty() && replacement != inner)
+ expr.replace(parenPos + 1, innerLength, replacement);
}
}
+ // Is this a class constructor "Class(Field)"? Expand it.
+ const auto te = type.typeEntry();
+ if (!te->isComplex())
+ return expr;
+ const QString &qualifiedTypeName = te->qualifiedCppName();
+ if (!qualifiedTypeName.contains(u"::")) // Nothing to qualify here
+ return expr;
+ const auto className = QStringView{expr}.left(parenPos);
+ if (isUnderQualifiedSpec(qualifiedTypeName, className))
+ expr.replace(0, className.size(), qualifiedTypeName);
}
return expr;
}
+QString AbstractMetaBuilder::fixDefaultValue(const QString &expr, const AbstractMetaType &type,
+ const AbstractMetaClassCPtr &c) const
+{
+ return d->fixDefaultValue(expr, type, c);
+}
+
bool AbstractMetaBuilderPrivate::isEnum(const FileModelItem &dom, const QStringList& qualified_name)
{
CodeModelItem item = dom->model()->findItem(qualified_name, dom);
return item && item->kind() == _EnumModelItem::__node_kind;
}
-AbstractMetaClass* AbstractMetaBuilderPrivate::findTemplateClass(const QString &name,
- const AbstractMetaClass *context,
- TypeInfo *info,
- ComplexTypeEntry **baseContainerType) const
+AbstractMetaClassPtr
+ AbstractMetaBuilderPrivate::findTemplateClass(const QString &name,
+ const AbstractMetaClassCPtr &context,
+ TypeInfo *info,
+ ComplexTypeEntryPtr *baseContainerType) const
{
if (baseContainerType)
- *baseContainerType = nullptr;
- TypeDatabase* types = TypeDatabase::instance();
+ baseContainerType->reset();
+ auto *types = TypeDatabase::instance();
- QStringList scope = context->typeEntry()->qualifiedCppName().split(colonColon());
+ QStringList scope = context->typeEntry()->qualifiedCppName().split(u"::"_s);
QString errorMessage;
scope.removeLast();
- for (int i = scope.size(); i >= 0; --i) {
- QString prefix = i > 0 ? QStringList(scope.mid(0, i)).join(colonColon()) + colonColon() : QString();
+ for (auto i = scope.size(); i >= 0; --i) {
+ QString prefix = i > 0 ? QStringList(scope.mid(0, i)).join(u"::"_s) + u"::"_s : QString();
QString completeName = prefix + name;
const TypeInfo parsed = TypeParser::parse(completeName, &errorMessage);
- QString qualifiedName = parsed.qualifiedName().join(colonColon());
+ QString qualifiedName = parsed.qualifiedName().join(u"::"_s);
if (qualifiedName.isEmpty()) {
qWarning().noquote().nospace() << "Unable to parse type \"" << completeName
<< "\" while looking for template \"" << name << "\": " << errorMessage;
@@ -2610,8 +3043,8 @@ AbstractMetaClass* AbstractMetaBuilderPrivate::findTemplateClass(const QString &
if (info)
*info = parsed;
- AbstractMetaClass *templ = nullptr;
- for (AbstractMetaClass *c : qAsConst(m_templates)) {
+ AbstractMetaClassPtr templ;
+ for (const auto &c : std::as_const(m_templates)) {
if (c->typeEntry()->name() == qualifiedName) {
templ = c;
break;
@@ -2631,19 +3064,18 @@ AbstractMetaClass* AbstractMetaBuilderPrivate::findTemplateClass(const QString &
return nullptr;
}
-AbstractMetaClassList AbstractMetaBuilderPrivate::getBaseClasses(const AbstractMetaClass *metaClass) const
+AbstractMetaClassCList
+ AbstractMetaBuilderPrivate::getBaseClasses(const AbstractMetaClassCPtr &metaClass) const
{
// Shortcut if inheritance has already been set up
if (metaClass->inheritanceDone() || !metaClass->needsInheritanceSetup())
return metaClass->baseClasses();
- AbstractMetaClassList baseClasses;
+ AbstractMetaClassCList baseClasses;
const QStringList &baseClassNames = metaClass->baseClassNames();
for (const QString& parent : baseClassNames) {
- AbstractMetaClass *cls = nullptr;
- if (parent.contains(QLatin1Char('<')))
- cls = findTemplateClass(parent, metaClass);
- else
- cls = AbstractMetaClass::findClass(m_metaClasses, parent);
+ const auto cls = parent.contains(u'<')
+ ? findTemplateClass(parent, metaClass)
+ : AbstractMetaClass::findClass(m_metaClasses, parent);
if (cls)
baseClasses << cls;
@@ -2663,7 +3095,7 @@ std::optional<AbstractMetaType>
returned.setOriginalTemplateType(metaType);
if (returned.typeEntry()->isTemplateArgument()) {
- const auto *tae = static_cast<const TemplateArgumentEntry*>(returned.typeEntry());
+ const auto tae = std::static_pointer_cast<const TemplateArgumentEntry>(returned.typeEntry());
// If the template is intantiated with void we special case this as rejecting the functions that use this
// parameter from the instantiation.
@@ -2681,7 +3113,7 @@ std::optional<AbstractMetaType>
if (returned.hasInstantiations()) {
AbstractMetaTypeList instantiations = returned.instantiations();
- for (int i = 0; i < instantiations.count(); ++i) {
+ for (qsizetype i = 0; i < instantiations.size(); ++i) {
auto ins = inheritTemplateType(templateTypes, instantiations.at(i));
if (!ins.has_value())
return {};
@@ -2693,16 +3125,34 @@ std::optional<AbstractMetaType>
return returned;
}
-bool AbstractMetaBuilderPrivate::inheritTemplate(AbstractMetaClass *subclass,
- const AbstractMetaClass *templateClass,
+AbstractMetaClassPtr
+ AbstractMetaBuilder::inheritTemplateClass(const ComplexTypeEntryPtr &te,
+ const AbstractMetaClassCPtr &templateClass,
+ const AbstractMetaTypeList &templateTypes,
+ InheritTemplateFlags flags)
+{
+ auto result = std::make_shared<AbstractMetaClass>();
+ result->setTypeDef(true);
+
+ result->setTypeEntry(te);
+ if (!AbstractMetaBuilderPrivate::inheritTemplate(result, templateClass,
+ templateTypes, flags)) {
+ return {};
+ }
+ AbstractMetaBuilderPrivate::inheritTemplateFunctions(result);
+ return result;
+}
+
+bool AbstractMetaBuilderPrivate::inheritTemplate(const AbstractMetaClassPtr &subclass,
+ const AbstractMetaClassCPtr &templateClass,
const TypeInfo &info)
{
AbstractMetaTypeList templateTypes;
for (const TypeInfo &i : info.instantiations()) {
- QString typeName = i.qualifiedName().join(colonColon());
+ QString typeName = i.qualifiedName().join(u"::"_s);
TypeDatabase *typeDb = TypeDatabase::instance();
- TypeEntry *t = nullptr;
+ TypeEntryPtr t;
// Check for a non-type template integer parameter, that is, for a base
// "template <int R, int C> Matrix<R, C>" and subclass
// "typedef Matrix<2,3> Matrix2x3;". If so, create dummy entries of
@@ -2710,18 +3160,18 @@ bool AbstractMetaBuilderPrivate::inheritTemplate(AbstractMetaClass *subclass,
if (isNumber(typeName)) {
t = typeDb->findType(typeName);
if (!t) {
- auto parent = subclass->typeEntry()->typeSystemTypeEntry();
+ auto parent = typeSystemTypeEntry(subclass->typeEntry());
t = TypeDatabase::instance()->addConstantValueTypeEntry(typeName, parent);
}
} else {
QStringList possibleNames;
- possibleNames << subclass->qualifiedCppName() + colonColon() + typeName;
- possibleNames << templateClass->qualifiedCppName() + colonColon() + typeName;
+ possibleNames << subclass->qualifiedCppName() + u"::"_s + typeName;
+ possibleNames << templateClass->qualifiedCppName() + u"::"_s + typeName;
if (subclass->enclosingClass())
- possibleNames << subclass->enclosingClass()->qualifiedCppName() + colonColon() + typeName;
+ possibleNames << subclass->enclosingClass()->qualifiedCppName() + u"::"_s + typeName;
possibleNames << typeName;
- for (const QString &possibleName : qAsConst(possibleNames)) {
+ for (const QString &possibleName : std::as_const(possibleNames)) {
t = typeDb->findType(possibleName);
if (t)
break;
@@ -2741,36 +3191,147 @@ bool AbstractMetaBuilderPrivate::inheritTemplate(AbstractMetaClass *subclass,
<< info.toString() << ". The corresponding type was not found in the typesystem.";
}
}
+ return inheritTemplate(subclass, templateClass, templateTypes);
+}
+bool AbstractMetaBuilderPrivate::inheritTemplate(const AbstractMetaClassPtr &subclass,
+ const AbstractMetaClassCPtr &templateClass,
+ const AbstractMetaTypeList &templateTypes,
+ InheritTemplateFlags flags)
+{
subclass->setTemplateBaseClass(templateClass);
+ if (flags.testFlag(InheritTemplateFlag::SetEnclosingClass))
+ subclass->setEnclosingClass(templateClass->enclosingClass());
subclass->setTemplateBaseClassInstantiations(templateTypes);
subclass->setBaseClass(templateClass->baseClass());
return true;
}
-static bool inheritTemplateFunction(const AbstractMetaFunctionCPtr &function,
- const AbstractMetaFunctionCList &existingSubclassFuncs,
- const AbstractMetaClass *subclass,
- const AbstractMetaClass *templateBaseClass)
+AbstractMetaFunctionPtr
+ AbstractMetaBuilderPrivate::inheritTemplateFunction(const AbstractMetaFunctionCPtr &function,
+ const AbstractMetaTypeList &templateTypes)
+{
+ AbstractMetaFunctionPtr f(function->copy());
+ f->setArguments(AbstractMetaArgumentList());
+ f->setFlags(f->flags() | AbstractMetaFunction::Flag::InheritedFromTemplate);
+
+ if (!function->isVoid()) {
+ auto returnType = inheritTemplateType(templateTypes, function->type());
+ if (!returnType.has_value())
+ return {};
+ f->setType(returnType.value());
+ }
+
+ const AbstractMetaArgumentList &arguments = function->arguments();
+ for (const AbstractMetaArgument &argument : arguments) {
+ auto argType = inheritTemplateType(templateTypes, argument.type());
+ if (!argType.has_value())
+ return {};
+ AbstractMetaArgument arg = argument;
+ arg.setType(argType.value());
+ f->addArgument(arg);
+ }
+
+ return f;
+}
+
+AbstractMetaFunctionPtr
+ AbstractMetaBuilder::inheritTemplateFunction(const AbstractMetaFunctionCPtr &function,
+ const AbstractMetaTypeList &templateTypes)
+{
+ return AbstractMetaBuilderPrivate::inheritTemplateFunction(function, templateTypes);
+}
+
+AbstractMetaFunctionPtr
+ AbstractMetaBuilderPrivate::inheritTemplateMember(const AbstractMetaFunctionCPtr &function,
+ const AbstractMetaTypeList &templateTypes,
+ const AbstractMetaClassCPtr &templateClass,
+ const AbstractMetaClassPtr &subclass)
+{
+ AbstractMetaFunctionPtr f = inheritTemplateFunction(function, templateTypes);
+ if (!f)
+ return {};
+
+ // There is no base class in the target language to inherit from here, so
+ // the template instantiation is the class that implements the function.
+ f->setImplementingClass(subclass);
+
+ // We also set it as the declaring class, since the superclass is
+ // supposed to disappear. This allows us to make certain function modifications
+ // on the inherited functions.
+ f->setDeclaringClass(subclass);
+
+ if (f->isConstructor()) {
+ f->setName(subclass->name());
+ f->setOriginalName(subclass->name());
+ }
+
+ ComplexTypeEntryPtr te = subclass->typeEntry();
+ const FunctionModificationList mods = function->modifications(templateClass);
+
+ for (auto mod : mods) {
+ mod.setSignature(f->minimalSignature());
+
+// If we ever need it... Below is the code to do
+// substitution of the template instantation type inside
+// injected code..
+#if 0
+ if (mod.modifiers & Modification::CodeInjection) {
+ for (int j = 0; j < template_types.size(); ++j) {
+ CodeSnip &snip = mod.snips.last();
+ QString code = snip.code();
+ code.replace(QString::fromLatin1("$$QT_TEMPLATE_%1$$").arg(j),
+ template_types.at(j)->typeEntry()->qualifiedCppName());
+ snip.codeList.clear();
+ snip.addCode(code);
+ }
+ }
+#endif
+ te->addFunctionModification(mod);
+ }
+
+ QString errorMessage;
+ if (!applyArrayArgumentModifications(f->modifications(subclass), f.get(),
+ &errorMessage)) {
+ qCWarning(lcShiboken, "While specializing %s (%s): %s",
+ qPrintable(subclass->name()), qPrintable(templateClass->name()),
+ qPrintable(errorMessage));
+ }
+ return f;
+}
+
+AbstractMetaFunctionPtr
+ AbstractMetaBuilder::inheritTemplateMember(const AbstractMetaFunctionCPtr &function,
+ const AbstractMetaTypeList &templateTypes,
+ const AbstractMetaClassCPtr &templateClass,
+ const AbstractMetaClassPtr &subclass)
+{
+ return AbstractMetaBuilderPrivate::inheritTemplateMember(function, templateTypes,
+ templateClass, subclass);
+}
+
+static bool doInheritTemplateFunction(const AbstractMetaFunctionCPtr &function,
+ const AbstractMetaFunctionCList &existingSubclassFuncs,
+ const AbstractMetaClassCPtr &templateBaseClass,
+ const AbstractMetaClassCPtr &subclass)
{
// If the function is modified or the instantiation has an equally named
// function we are shadowing, so we need to skip it (unless the subclass
// declares it via "using").
if (function->isModifiedRemoved())
return false;
+ if (function->isConstructor() && !subclass->isTypeDef())
+ return false;
return AbstractMetaFunction::find(existingSubclassFuncs, function->name()) == nullptr
|| subclass->isUsingMember(templateBaseClass, function->name(), Access::Protected);
}
-void AbstractMetaBuilderPrivate::inheritTemplateFunctions(AbstractMetaClass *subclass)
+void AbstractMetaBuilderPrivate::inheritTemplateFunctions(const AbstractMetaClassPtr &subclass)
{
- QString errorMessage;
auto templateClass = subclass->templateBaseClass();
if (subclass->isTypeDef()) {
- subclass->setHasCloneOperator(templateClass->hasCloneOperator());
- subclass->setHasEqualsOperator(templateClass->hasEqualsOperator());
- subclass->setHasHashFunction(templateClass->hasHashFunction());
+ subclass->setHashFunction(templateClass->hashFunction());
subclass->setHasNonPrivateConstructor(templateClass->hasNonPrivateConstructor());
subclass->setHasPrivateDestructor(templateClass->hasPrivateDestructor());
subclass->setHasProtectedDestructor(templateClass->hasProtectedDestructor());
@@ -2782,82 +3343,13 @@ void AbstractMetaBuilderPrivate::inheritTemplateFunctions(AbstractMetaClass *sub
subclass->functions(); // Take copy
const auto &templateClassFunctions = templateClass->functions();
for (const auto &function : templateClassFunctions) {
- if (!inheritTemplateFunction(function, existingSubclassFuncs,
- subclass, templateClass)) {
- continue;
+ if (doInheritTemplateFunction(function, existingSubclassFuncs,
+ templateClass, subclass)) {
+ AbstractMetaFunctionCPtr f = inheritTemplateMember(function, templateTypes,
+ templateClass, subclass);
+ if (f)
+ AbstractMetaClass::addFunction(subclass, f);
}
-
- std::unique_ptr<AbstractMetaFunction> f(function->copy());
- f->setArguments(AbstractMetaArgumentList());
-
- if (!function->isVoid()) {
- auto returnType = inheritTemplateType(templateTypes, function->type());
- if (!returnType.has_value())
- continue;
- f->setType(returnType.value());
- }
-
- const AbstractMetaArgumentList &arguments = function->arguments();
- for (const AbstractMetaArgument &argument : arguments) {
- auto argType = inheritTemplateType(templateTypes, argument.type());
- if (!argType.has_value())
- break;
- AbstractMetaArgument arg = argument;
- arg.setType(argType.value());
- f->addArgument(arg);
- }
-
- if (f->arguments().size() < function->arguments().size())
- continue;
-
- // There is no base class in the target language to inherit from here, so
- // the template instantiation is the class that implements the function.
- f->setImplementingClass(subclass);
-
- // We also set it as the declaring class, since the superclass is
- // supposed to disappear. This allows us to make certain function modifications
- // on the inherited functions.
- f->setDeclaringClass(subclass);
-
- if (f->isConstructor()) {
- if (!subclass->isTypeDef())
- continue;
- f->setName(subclass->name());
- f->setOriginalName(subclass->name());
- }
-
- ComplexTypeEntry* te = subclass->typeEntry();
- FunctionModificationList mods = function->modifications(templateClass);
- for (int i = 0; i < mods.size(); ++i) {
- FunctionModification mod = mods.at(i);
- mod.setSignature(f->minimalSignature());
-
- // If we ever need it... Below is the code to do
- // substitution of the template instantation type inside
- // injected code..
-#if 0
- if (mod.modifiers & Modification::CodeInjection) {
- for (int j = 0; j < template_types.size(); ++j) {
- CodeSnip &snip = mod.snips.last();
- QString code = snip.code();
- code.replace(QString::fromLatin1("$$QT_TEMPLATE_%1$$").arg(j),
- template_types.at(j)->typeEntry()->qualifiedCppName());
- snip.codeList.clear();
- snip.addCode(code);
- }
- }
-#endif
- te->addFunctionModification(mod);
- }
-
-
- if (!applyArrayArgumentModifications(f->modifications(subclass), f.get(),
- &errorMessage)) {
- qCWarning(lcShiboken, "While specializing %s (%s): %s",
- qPrintable(subclass->name()), qPrintable(templateClass->name()),
- qPrintable(errorMessage));
- }
- subclass->addFunction(AbstractMetaFunctionCPtr(f.release()));
}
// Take copy
@@ -2866,8 +3358,7 @@ void AbstractMetaBuilderPrivate::inheritTemplateFunctions(AbstractMetaClass *sub
for (const AbstractMetaField &field : templateClassFields) {
// If the field is modified or the instantiation has a field named
// the same as an existing field we have shadowing, so we need to skip it.
- if (field.isModifiedRemoved(TypeSystem::All)
- || field.isStatic()
+ if (field.isModifiedRemoved() || field.isStatic()
|| AbstractMetaField::find(existingSubclassFields, field.name()).has_value()) {
continue;
}
@@ -2882,7 +3373,7 @@ void AbstractMetaBuilderPrivate::inheritTemplateFunctions(AbstractMetaClass *sub
}
}
-void AbstractMetaBuilderPrivate::parseQ_Properties(AbstractMetaClass *metaClass,
+void AbstractMetaBuilderPrivate::parseQ_Properties(const AbstractMetaClassPtr &metaClass,
const QStringList &declarations)
{
const QStringList scopes = currentScope()->qualifiedName();
@@ -2893,7 +3384,7 @@ void AbstractMetaBuilderPrivate::parseQ_Properties(AbstractMetaClass *metaClass,
if (spec.has_value()) {
spec->setIndex(i);
metaClass->addPropertySpec(spec.value());
- } else {
+ } else if (!errorMessage.isEmpty()) {
QString message;
QTextStream str(&message);
str << metaClass->sourceLocation() << errorMessage;
@@ -2922,63 +3413,35 @@ void AbstractMetaBuilderPrivate::parseQ_Properties(AbstractMetaClass *metaClass,
}
}
-static AbstractMetaFunctionCPtr findCopyCtor(AbstractMetaClass* cls)
-{
- for (const auto &f : cls->functions()) {
- const AbstractMetaFunction::FunctionType t = f->functionType();
- if (t == AbstractMetaFunction::CopyConstructorFunction || t == AbstractMetaFunction::AssignmentOperatorFunction)
- return f;
- }
- return {};
-}
-
-void AbstractMetaBuilderPrivate::setupClonable(AbstractMetaClass *cls)
-{
- bool result = true;
-
- // find copy ctor for the current class
- auto copyCtor = findCopyCtor(cls);
- if (!copyCtor.isNull()) { // if exists a copy ctor in this class
- result = copyCtor->isPublic();
- } else { // else... lets find one in the parent class
- QQueue<AbstractMetaClass*> baseClasses;
- if (cls->baseClass())
- baseClasses.enqueue(cls->baseClass());
-
- while (!baseClasses.isEmpty()) {
- AbstractMetaClass* currentClass = baseClasses.dequeue();
- if (currentClass->baseClass())
- baseClasses.enqueue(currentClass->baseClass());
-
- copyCtor = findCopyCtor(currentClass);
- if (copyCtor) {
- result = copyCtor->isPublic();
- break;
- }
- }
- }
- cls->setHasCloneOperator(result);
-}
-
-void AbstractMetaBuilderPrivate::setupExternalConversion(AbstractMetaClass *cls)
+void AbstractMetaBuilderPrivate::setupExternalConversion(const AbstractMetaClassCPtr &cls)
{
const auto &convOps = cls->operatorOverloads(OperatorQueryOption::ConversionOp);
for (const auto &func : convOps) {
if (func->isModifiedRemoved())
continue;
- AbstractMetaClass *metaClass = AbstractMetaClass::findClass(m_metaClasses, func->type().typeEntry());
+ const auto metaClass =
+ AbstractMetaClass::findClass(m_metaClasses, func->type().typeEntry());
if (!metaClass)
continue;
metaClass->addExternalConversionOperator(func);
}
- const AbstractMetaClassList &innerClasses = cls->innerClasses();
- for (AbstractMetaClass *innerClass : innerClasses)
+ for (const auto &innerClass : cls->innerClasses())
setupExternalConversion(innerClass);
}
static void writeRejectLogFile(const QString &name,
- const QMap<QString, AbstractMetaBuilder::RejectReason> &rejects)
-{
+ const AbstractMetaBuilderPrivate::RejectSet &rejects)
+{
+ static const QHash<AbstractMetaBuilder::RejectReason, QByteArray> descriptions ={
+ {AbstractMetaBuilder::NotInTypeSystem, "Not in type system"_ba},
+ {AbstractMetaBuilder::GenerationDisabled, "Generation disabled by type system"_ba},
+ {AbstractMetaBuilder::RedefinedToNotClass, "Type redefined to not be a class"_ba},
+ {AbstractMetaBuilder::UnmatchedReturnType, "Unmatched return type"_ba},
+ {AbstractMetaBuilder::UnmatchedArgumentType, "Unmatched argument type"_ba},
+ {AbstractMetaBuilder::UnmatchedOperator, "Unmatched operator"_ba},
+ {AbstractMetaBuilder::Deprecated, "Deprecated"_ba}
+ };
+
QFile f(name);
if (!f.open(QIODevice::WriteOnly | QIODevice::Text)) {
qCWarning(lcShiboken, "%s", qPrintable(msgCannotOpenForWriting(f)));
@@ -2987,70 +3450,37 @@ static void writeRejectLogFile(const QString &name,
QTextStream s(&f);
-
- for (int reason = 0; reason < AbstractMetaBuilder::NoReason; ++reason) {
- s << QString(72, QLatin1Char('*')) << Qt::endl;
- switch (reason) {
- case AbstractMetaBuilder::NotInTypeSystem:
- s << "Not in type system";
- break;
- case AbstractMetaBuilder::GenerationDisabled:
- s << "Generation disabled by type system";
- break;
- case AbstractMetaBuilder::RedefinedToNotClass:
- s << "Type redefined to not be a class";
- break;
-
- case AbstractMetaBuilder::UnmatchedReturnType:
- s << "Unmatched return type";
- break;
-
- case AbstractMetaBuilder::UnmatchedArgumentType:
- s << "Unmatched argument type";
- break;
-
- case AbstractMetaBuilder::ApiIncompatible:
- s << "Incompatible API";
- break;
-
- case AbstractMetaBuilder::Deprecated:
- s << "Deprecated";
- break;
-
- default:
- s << "unknown reason";
- break;
+ int lastReason = -1;
+ for (const auto &e : rejects) {
+ if (e.reason != lastReason) {
+ const QByteArray description = descriptions.value(e.reason, "Unknown reason"_ba);
+ const QByteArray underline(description.size(), '*');
+ if (lastReason != -1)
+ s << '\n';
+ s << underline << '\n' << description << '\n' << underline << "\n\n";
+ lastReason = e.reason;
}
- s << Qt::endl;
-
- for (QMap<QString, AbstractMetaBuilder::RejectReason>::const_iterator it = rejects.constBegin();
- it != rejects.constEnd(); ++it) {
- if (it.value() != reason)
- continue;
- s << " - " << it.key() << Qt::endl;
- }
-
- s << QString(72, QLatin1Char('*')) << Qt::endl << Qt::endl;
+ s << " - " << e << '\n';
}
-
}
void AbstractMetaBuilderPrivate::dumpLog() const
{
- writeRejectLogFile(m_logDirectory + QLatin1String("mjb_rejected_classes.log"), m_rejectedClasses);
- writeRejectLogFile(m_logDirectory + QLatin1String("mjb_rejected_enums.log"), m_rejectedEnums);
- writeRejectLogFile(m_logDirectory + QLatin1String("mjb_rejected_functions.log"), m_rejectedFunctions);
- writeRejectLogFile(m_logDirectory + QLatin1String("mjb_rejected_fields.log"), m_rejectedFields);
+ writeRejectLogFile(m_logDirectory + u"mjb_rejected_classes.log"_s, m_rejectedClasses);
+ writeRejectLogFile(m_logDirectory + u"mjb_rejected_enums.log"_s, m_rejectedEnums);
+ writeRejectLogFile(m_logDirectory + u"mjb_rejected_functions.log"_s, m_rejectedFunctions);
+ writeRejectLogFile(m_logDirectory + u"mjb_rejected_fields.log"_s, m_rejectedFields);
}
-using ClassGraph = Graph<AbstractMetaClass *>;
-
-// Add a dependency of the class associated with typeEntry on clazz
-static bool addClassDependency(const AbstractMetaClassList &classList,
- const TypeEntry *typeEntry,
- AbstractMetaClass *clazz,
- ClassGraph *graph)
+// Topological sorting of classes. Templates for use with
+// AbstractMetaClassList/AbstractMetaClassCList.
+// Add a dependency of the class associated with typeEntry on clazz.
+template <class MetaClass>
+static bool addClassDependency(const QList<std::shared_ptr<MetaClass> > &classList,
+ const TypeEntryCPtr &typeEntry,
+ std::shared_ptr<MetaClass> clazz,
+ Graph<std::shared_ptr<MetaClass> > *graph)
{
if (!typeEntry->isComplex() || typeEntry == clazz->typeEntry())
return false;
@@ -3060,10 +3490,12 @@ static bool addClassDependency(const AbstractMetaClassList &classList,
return graph->addEdge(c, clazz);
}
-AbstractMetaClassList AbstractMetaBuilderPrivate::classesTopologicalSorted(const AbstractMetaClassList &classList,
- const Dependencies &additionalDependencies)
+template <class MetaClass>
+static QList<std::shared_ptr<MetaClass> >
+ topologicalSortHelper(const QList<std::shared_ptr<MetaClass> > &classList,
+ const Dependencies &additionalDependencies)
{
- ClassGraph graph(classList.cbegin(), classList.cend());
+ Graph<std::shared_ptr<MetaClass> > graph(classList.cbegin(), classList.cend());
for (const auto &dep : additionalDependencies) {
if (!graph.addEdge(dep.parent, dep.child)) {
@@ -3073,14 +3505,14 @@ AbstractMetaClassList AbstractMetaBuilderPrivate::classesTopologicalSorted(const
}
}
- for (AbstractMetaClass *clazz : classList) {
+ for (const auto &clazz : classList) {
if (auto enclosingC = clazz->enclosingClass()) {
- auto enclosing = const_cast<AbstractMetaClass *>(enclosingC);
+ const auto enclosing = std::const_pointer_cast<MetaClass>(enclosingC);
graph.addEdge(enclosing, clazz);
}
- for (auto baseClass : clazz->baseClasses())
- graph.addEdge(baseClass, clazz);
+ for (const auto &baseClass : clazz->baseClasses())
+ graph.addEdge(std::const_pointer_cast<MetaClass>(baseClass), clazz);
for (const auto &func : clazz->functions()) {
const AbstractMetaArgumentList &arguments = func->arguments();
@@ -3106,24 +3538,44 @@ AbstractMetaClassList AbstractMetaBuilderPrivate::classesTopologicalSorted(const
const auto result = graph.topologicalSort();
if (!result.isValid() && graph.nodeCount()) {
- QTemporaryFile tempFile(QDir::tempPath() + QLatin1String("/cyclic_depXXXXXX.dot"));
+ QTemporaryFile tempFile(QDir::tempPath() + u"/cyclic_depXXXXXX.dot"_s);
tempFile.setAutoRemove(false);
- tempFile.open();
- graph.dumpDot(tempFile.fileName(),
- [] (const AbstractMetaClass *c) { return c->name(); });
+ const bool ok = tempFile.open();
+ if (ok) {
+ graph.dumpDot(tempFile.fileName(),
+ [] (const AbstractMetaClassCPtr &c) { return c->name(); });
+ }
QString message;
QTextStream str(&message);
str << "Cyclic dependency of classes found:";
- for (auto c : result.cyclic)
+ for (const auto &c : result.cyclic)
str << ' ' << c->name();
- str << ". Graph can be found at \"" << QDir::toNativeSeparators(tempFile.fileName()) << '"';
+ str << '.';
+ if (ok) {
+ str << " Graph can be found at \""
+ << QDir::toNativeSeparators(tempFile.fileName()) << '"';
+ }
qCWarning(lcShiboken, "%s", qPrintable(message));
}
return result.result;
}
+AbstractMetaClassList
+ AbstractMetaBuilderPrivate::classesTopologicalSorted(const AbstractMetaClassList &classList,
+ const Dependencies &additionalDependencies)
+{
+ return topologicalSortHelper(classList, additionalDependencies);
+}
+
+AbstractMetaClassCList
+ AbstractMetaBuilderPrivate::classesTopologicalSorted(const AbstractMetaClassCList &classList,
+ const Dependencies &additionalDependencies)
+{
+ return topologicalSortHelper(classList, additionalDependencies);
+}
+
void AbstractMetaBuilderPrivate::pushScope(const NamespaceModelItem &item)
{
// For purposes of type lookup, join all namespaces of the same name
@@ -3137,8 +3589,8 @@ void AbstractMetaBuilderPrivate::pushScope(const NamespaceModelItem &item)
}
}
if (candidates.size() > 1) {
- NamespaceModelItem joined(new _NamespaceModelItem(m_scopes.constLast()->model(),
- name, _CodeModelItem::Kind_Namespace));
+ auto joined = std::make_shared<_NamespaceModelItem>(m_scopes.constLast()->model(),
+ name, _CodeModelItem::Kind_Namespace);
joined->setScope(item->scope());
for (const auto &n : candidates)
joined->appendNamespace(*n);
@@ -3171,13 +3623,18 @@ void AbstractMetaBuilder::setSkipDeprecated(bool value)
d->m_skipDeprecated = value;
}
+void AbstractMetaBuilder::setApiExtractorFlags(ApiExtractorFlags flags)
+{
+ d->m_apiExtractorFlags = flags;
+}
+
// PYSIDE-975: When receiving an absolute path name from the code model, try
// to resolve it against the include paths set on shiboken in order to recreate
// relative paths like #include <foo/bar.h>.
static inline bool isFileSystemSlash(QChar c)
{
- return c == QLatin1Char('/') || c == QLatin1Char('\\');
+ return c == u'/' || c == u'\\';
}
static bool matchHeader(const QString &headerPath, const QString &fileName)
@@ -3187,13 +3644,13 @@ static bool matchHeader(const QString &headerPath, const QString &fileName)
#else
static const Qt::CaseSensitivity caseSensitivity = Qt::CaseSensitive;
#endif
- const int pathSize = headerPath.size();
+ const auto pathSize = headerPath.size();
return fileName.size() > pathSize
&& isFileSystemSlash(fileName.at(pathSize))
&& fileName.startsWith(headerPath, caseSensitivity);
}
-void AbstractMetaBuilderPrivate::setInclude(TypeEntry *te, const QString &path) const
+void AbstractMetaBuilderPrivate::setInclude(const TypeEntryPtr &te, const QString &path) const
{
auto it = m_resolveIncludeHash.find(path);
if (it == m_resolveIncludeHash.end()) {
@@ -3241,9 +3698,9 @@ void AbstractMetaBuilder::formatDebug(QDebug &debug) const
debug << "m_globalHeader=" << d->m_globalHeaders;
debugFormatSequence(debug, "globalEnums", d->m_globalEnums, "\n");
debugFormatSequence(debug, "globalFunctions", d->m_globalFunctions, "\n");
- if (const int scopeCount = d->m_scopes.size()) {
+ if (const auto scopeCount = d->m_scopes.size()) {
debug << "\n scopes[" << scopeCount << "]=(";
- for (int i = 0; i < scopeCount; ++i) {
+ for (qsizetype i = 0; i < scopeCount; ++i) {
if (i)
debug << ", ";
_CodeModelItem::formatKind(debug, d->m_scopes.at(i)->kind());
diff --git a/sources/shiboken6/ApiExtractor/abstractmetabuilder.h b/sources/shiboken6/ApiExtractor/abstractmetabuilder.h
index 97c324f51..cbd8c7034 100644
--- a/sources/shiboken6/ApiExtractor/abstractmetabuilder.h
+++ b/sources/shiboken6/ApiExtractor/abstractmetabuilder.h
@@ -1,41 +1,18 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef ABSTRACTMETABUILDER_H
#define ABSTRACTMETABUILDER_H
#include "abstractmetalang_typedefs.h"
+#include "apiextractorflags.h"
#include "header_paths.h"
#include "typesystem_enums.h"
+#include "typesystem_typedefs.h"
#include "clangparser/compilersupport.h"
-#include <QFileInfoList>
+#include <QtCore/QFileInfoList>
#include <optional>
@@ -45,19 +22,22 @@ class AbstractMetaBuilderPrivate;
class AbstractMetaClass;
class AbstractMetaType;
class AbstractMetaEnumValue;
+class ComplexTypeEntry;
class TypeInfo;
class TypeEntry;
class AbstractMetaBuilder
{
public:
+ Q_DISABLE_COPY_MOVE(AbstractMetaBuilder)
+
enum RejectReason {
NotInTypeSystem,
GenerationDisabled,
RedefinedToNotClass,
UnmatchedArgumentType,
UnmatchedReturnType,
- ApiIncompatible,
+ UnmatchedOperator,
Deprecated,
NoReason
};
@@ -66,13 +46,18 @@ public:
virtual ~AbstractMetaBuilder();
const AbstractMetaClassList &classes() const;
+ AbstractMetaClassList takeClasses();
const AbstractMetaClassList &templates() const;
+ AbstractMetaClassList takeTemplates();
const AbstractMetaClassList &smartPointers() const;
+ AbstractMetaClassList takeSmartPointers();
const AbstractMetaFunctionCList &globalFunctions() const;
const AbstractMetaEnumList &globalEnums() const;
- const QHash<const TypeEntry *, AbstractMetaEnum> &typeEntryToEnumsHash() const;
+ const QHash<TypeEntryCPtr, AbstractMetaEnum> &typeEntryToEnumsHash() const;
+ const QMultiHash<QString, QString> &typedefTargetToName() const;
bool build(const QByteArrayList &arguments,
+ ApiExtractorFlags apiExtractorFlags = {},
bool addCompilerSupportArguments = true,
LanguageLevel level = LanguageLevel::Default,
unsigned clangFlags = 0);
@@ -90,23 +75,66 @@ public:
void setSkipDeprecated(bool value);
+ void setApiExtractorFlags(ApiExtractorFlags flags);
+
enum TranslateTypeFlag {
- DontResolveType = 0x1
+ DontResolveType = 0x1,
+ TemplateArgument = 0x2,
+ NoClassScopeLookup = 0x4
};
Q_DECLARE_FLAGS(TranslateTypeFlags, TranslateTypeFlag);
static std::optional<AbstractMetaType>
- translateType(const TypeInfo &_typei, AbstractMetaClass *currentClass = nullptr,
+ translateType(const TypeInfo &_typei, const AbstractMetaClassPtr &currentClass = {},
TranslateTypeFlags flags = {}, QString *errorMessage = nullptr);
static std::optional<AbstractMetaType>
- translateType(const QString &t, AbstractMetaClass *currentClass = nullptr,
+ translateType(const QString &t, const AbstractMetaClassPtr &currentClass = {},
TranslateTypeFlags flags = {}, QString *errorMessage = nullptr);
+ /// Performs a template specialization of the function.
+ /// \param function Function
+ /// \param templateTypes Instantiation types
+ /// \return Specialized copy of the function
+ static AbstractMetaFunctionPtr
+ inheritTemplateFunction(const AbstractMetaFunctionCPtr &function,
+ const AbstractMetaTypeList &templateTypes);
+
+ static AbstractMetaClassPtr
+ inheritTemplateClass(const ComplexTypeEntryPtr &te,
+ const AbstractMetaClassCPtr &templateClass,
+ const AbstractMetaTypeList &templateTypes,
+ InheritTemplateFlags flags = {});
+
+ /// Performs a template specialization of the member function.
+ /// \param function Member function
+ /// \param templateTypes Instantiation types
+ /// \param templateClass Template class
+ /// \param subclass Specialized class
+ /// \return Specialized copy of the function
+ static AbstractMetaFunctionPtr
+ inheritTemplateMember(const AbstractMetaFunctionCPtr &function,
+ const AbstractMetaTypeList &templateTypes,
+ const AbstractMetaClassCPtr &templateClass,
+ const AbstractMetaClassPtr &subclass);
+
static QString getSnakeCaseName(const QString &name);
// Names under which an item will be registered to Python depending on snakeCase
static QStringList definitionNames(const QString &name,
TypeSystem::SnakeCase snakeCase);
+ static QString resolveScopePrefix(const AbstractMetaClassCPtr &scope,
+ QStringView value);
+
+ static bool dontFixDefaultValue(QStringView expr);
+
+ // For testing purposes
+ QString fixDefaultValue(const QString &expr, const AbstractMetaType &type,
+ const AbstractMetaClassCPtr &) const;
+ QString fixEnumDefault(const AbstractMetaType &type, const QString &expr,
+ const AbstractMetaClassCPtr & = {}) const;
+
+ static void setCodeModelTestMode(bool b);
+
#ifndef QT_NO_DEBUG_STREAM
void formatDebug(QDebug &d) const;
#endif
diff --git a/sources/shiboken6/ApiExtractor/abstractmetabuilder_helpers.cpp b/sources/shiboken6/ApiExtractor/abstractmetabuilder_helpers.cpp
new file mode 100644
index 000000000..68eef737a
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/abstractmetabuilder_helpers.cpp
@@ -0,0 +1,202 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#include "abstractmetabuilder.h"
+#include "abstractmetabuilder_p.h"
+#include "abstractmetaenum.h"
+#include "abstractmetafield.h"
+#include "abstractmetalang.h"
+#include "enumtypeentry.h"
+#include "flagstypeentry.h"
+
+using namespace Qt::StringLiterals;
+
+using QStringViewList = QList<QStringView>;
+
+// Return a prefix to fully qualify value, eg:
+// resolveScopePrefix("Class::NestedClass::Enum::Value1", "Enum::Value1")
+// -> "Class::NestedClass::")
+static QString resolveScopePrefixHelper(const QStringViewList &scopeList,
+ QStringView value)
+{
+ QString name;
+ for (qsizetype i = scopeList.size() - 1 ; i >= 0; --i) {
+ const QString prefix = scopeList.at(i).toString() + u"::"_s;
+ if (value.startsWith(prefix))
+ name.clear();
+ else
+ name.prepend(prefix);
+ }
+ return name;
+}
+
+QString AbstractMetaBuilder::resolveScopePrefix(const AbstractMetaClassCPtr &scope,
+ QStringView value)
+{
+ if (!scope)
+ return {};
+ const QString &qualifiedCppName = scope->qualifiedCppName();
+ const QStringViewList scopeList =
+ QStringView{qualifiedCppName}.split(u"::"_s, Qt::SkipEmptyParts);
+ return resolveScopePrefixHelper(scopeList, value);
+}
+
+// Return the scope for fully qualifying the enumeration value
+static QString resolveEnumValueScopePrefix(const AbstractMetaEnum &metaEnum,
+ QStringView value)
+{
+ AbstractMetaClassCPtr scope = metaEnum.enclosingClass();
+ if (!scope)
+ return {}; // global enum, value should work as is
+ const QString &qualifiedCppName = scope->qualifiedCppName();
+ const QString &enumName = metaEnum.name();
+ QStringViewList parts =
+ QStringView{qualifiedCppName}.split(u"::"_s, Qt::SkipEmptyParts);
+ // Append the type (as required for enum classes) unless it is an anonymous enum.
+ if (!metaEnum.isAnonymous())
+ parts.append(QStringView{enumName});
+ return resolveScopePrefixHelper(parts, value);
+}
+
+bool AbstractMetaBuilderPrivate::isQualifiedCppIdentifier(QStringView e)
+{
+ return !e.isEmpty() && e.at(0).isLetter()
+ && std::all_of(e.cbegin() + 1, e.cend(),
+ [](QChar c) { return c.isLetterOrNumber() || c == u'_' || c == u':'; });
+}
+
+static bool isIntegerConstant(const QStringView expr)
+{
+ bool isNumber;
+ auto n = expr.toInt(&isNumber, /* guess base: 0x or decimal */ 0);
+ Q_UNUSED(n);
+ return isNumber;
+}
+
+static bool isFloatConstant(const QStringView expr)
+{
+ bool isNumber;
+ auto d = expr.toDouble(&isNumber);
+ Q_UNUSED(d);
+ return isNumber;
+}
+
+// Fix an enum default value: Add the enum/flag scope or fully qualified name
+// to the default value, making it usable from Python wrapper code outside the
+// owner class hierarchy. See TestEnum::testEnumDefaultValues().
+QString AbstractMetaBuilderPrivate::fixEnumDefault(const AbstractMetaType &type,
+ const QString &expr,
+ const AbstractMetaClassCPtr &klass) const
+{
+ // QFlags construct from integers, do not fix that
+ if (isIntegerConstant(expr))
+ return expr;
+
+ const QString field = qualifyStaticField(klass, expr);
+ if (!field.isEmpty())
+ return field;
+
+ const auto typeEntry = type.typeEntry();
+ EnumTypeEntryCPtr enumTypeEntry;
+ FlagsTypeEntryCPtr flagsTypeEntry;
+ if (typeEntry->isFlags()) {
+ flagsTypeEntry = std::static_pointer_cast<const FlagsTypeEntry>(typeEntry);
+ enumTypeEntry = flagsTypeEntry->originator();
+ } else {
+ Q_ASSERT(typeEntry->isEnum());
+ enumTypeEntry = std::static_pointer_cast<const EnumTypeEntry>(typeEntry);
+ }
+ // Use the enum's qualified name (would otherwise be "QFlags<Enum>")
+ if (!enumTypeEntry->qualifiedCppName().contains(u"::"))
+ return expr; // Global enum, nothing to fix here
+
+ // This is a somehow scoped enum
+ AbstractMetaEnum metaEnum = m_enums.value(enumTypeEntry);
+
+ if (isQualifiedCppIdentifier(expr)) // A single enum value
+ return resolveEnumValueScopePrefix(metaEnum, expr) + expr;
+
+ QString result;
+ // Is this a cast from integer or other type ("Enum(-1)" or "Options(0x10|0x20)"?
+ // Prepend the scope (assuming enum and flags are in the same scope).
+ auto parenPos = expr.indexOf(u'(');
+ const bool typeCast = parenPos != -1 && expr.endsWith(u')')
+ && isQualifiedCppIdentifier(QStringView{expr}.left(parenPos));
+ if (typeCast) {
+ const QString prefix =
+ AbstractMetaBuilder::resolveScopePrefix(metaEnum.enclosingClass(), expr);
+ result += prefix;
+ parenPos += prefix.size();
+ }
+ result += expr;
+
+ // Extract "Option1 | Option2" from "Options(Option1 | Option2)"
+ QStringView innerExpression = typeCast
+ ? QStringView{result}.mid(parenPos + 1, result.size() - parenPos - 2)
+ : QStringView{result};
+
+ // Quick check for number "Options(0x4)"
+ if (isIntegerConstant(innerExpression))
+ return result;
+
+ // Quick check for single enum value "Options(Option1)"
+ if (isQualifiedCppIdentifier(innerExpression)) {
+ const QString prefix = resolveEnumValueScopePrefix(metaEnum, innerExpression);
+ result.insert(parenPos + 1, prefix);
+ return result;
+ }
+
+ // Tokenize simple "A | B" expressions and qualify the enum values therein.
+ // Anything more complicated is left as is ATM.
+ if (!innerExpression.contains(u'|') || innerExpression.contains(u'&')
+ || innerExpression.contains(u'^') || innerExpression.contains(u'(')
+ || innerExpression.contains(u'~')) {
+ return result;
+ }
+
+ const QList<QStringView> tokens = innerExpression.split(u'|', Qt::SkipEmptyParts);
+ QStringList qualifiedTokens;
+ qualifiedTokens.reserve(tokens.size());
+ for (const auto &tokenIn : tokens) {
+ const auto token = tokenIn.trimmed();
+ QString qualified = token.toString();
+ if (!isIntegerConstant(token) && isQualifiedCppIdentifier(token))
+ qualified.prepend(resolveEnumValueScopePrefix(metaEnum, token));
+ qualifiedTokens.append(qualified);
+ }
+ const QString qualifiedExpression = qualifiedTokens.join(u" | "_s);
+ if (!typeCast)
+ return qualifiedExpression;
+
+ result.replace(parenPos + 1, innerExpression.size(), qualifiedExpression);
+ return result;
+}
+
+bool AbstractMetaBuilder::dontFixDefaultValue(QStringView expr)
+{
+ return expr.isEmpty() || expr == u"{}" || expr == u"nullptr"
+ || expr == u"NULL" || expr == u"true" || expr == u"false"
+ || (expr.startsWith(u'{') && expr.startsWith(u'}')) // initializer list
+ || (expr.startsWith(u'[') && expr.startsWith(u']')) // array
+ || expr.startsWith(u"Qt::") // Qt namespace constant
+ || isIntegerConstant(expr) || isFloatConstant(expr);
+}
+
+QString AbstractMetaBuilderPrivate::qualifyStaticField(const AbstractMetaClassCPtr &c,
+ QStringView field)
+{
+ if (!c || c->fields().isEmpty())
+ return {};
+ // If there is a scope, ensure it matches the class
+ const auto lastQualifier = field.lastIndexOf(u"::");
+ if (lastQualifier != -1
+ && !c->qualifiedCppName().endsWith(field.left(lastQualifier))) {
+ return {};
+ }
+ const auto fieldName = lastQualifier != -1
+ ? field.mid(lastQualifier + 2) : field;
+ const auto fieldOpt = c->findField(fieldName);
+ if (!fieldOpt.has_value() || !fieldOpt.value().isStatic())
+ return {};
+ return AbstractMetaBuilder::resolveScopePrefix(c, field) + field.toString();
+}
diff --git a/sources/shiboken6/ApiExtractor/abstractmetabuilder_p.h b/sources/shiboken6/ApiExtractor/abstractmetabuilder_p.h
index ac4e5adec..d7aaba5b0 100644
--- a/sources/shiboken6/ApiExtractor/abstractmetabuilder_p.h
+++ b/sources/shiboken6/ApiExtractor/abstractmetabuilder_p.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef ABSTRACTMETABUILDER_P_H
#define ABSTRACTMETABUILDER_P_H
@@ -35,24 +10,38 @@
#include "abstractmetalang.h"
#include "abstractmetatype.h"
#include "include.h"
-#include "modifications.h"
#include "typeparser.h"
+#include "modifications_typedefs.h"
+#include "typesystem_typedefs.h"
-#include <QSet>
-#include <QFileInfo>
-#include <QList>
+#include <QtCore/QFileInfo>
+#include <QtCore/QList>
+#include <QtCore/QMap>
+#include <QtCore/QMultiHash>
+#include <QtCore/QSet>
#include <optional>
+#include <set>
class TypeDatabase;
+struct RejectEntry
+{
+ AbstractMetaBuilder::RejectReason reason;
+ QString signature;
+ QString sortkey;
+ QString message;
+};
+
+bool operator<(const RejectEntry &re1, const RejectEntry &re2);
+
class AbstractMetaBuilderPrivate
{
public:
struct TypeClassEntry
{
AbstractMetaType type;
- const AbstractMetaClass *klass;
+ AbstractMetaClassCPtr klass;
};
using TranslateTypeFlags = AbstractMetaBuilder::TranslateTypeFlags;
@@ -60,74 +49,88 @@ public:
Q_DISABLE_COPY(AbstractMetaBuilderPrivate)
AbstractMetaBuilderPrivate();
- ~AbstractMetaBuilderPrivate();
static FileModelItem buildDom(QByteArrayList arguments,
bool addCompilerSupportArguments,
LanguageLevel level,
unsigned clangFlags);
- void traverseDom(const FileModelItem &dom);
+ void traverseDom(const FileModelItem &dom, ApiExtractorFlags flags);
void dumpLog() const;
- static AbstractMetaClassList classesTopologicalSorted(const AbstractMetaClassList &classList,
- const Dependencies &additionalDependencies = {});
+
+ static AbstractMetaClassList
+ classesTopologicalSorted(const AbstractMetaClassList &classList,
+ const Dependencies &additionalDependencies = {});
+ static AbstractMetaClassCList
+ classesTopologicalSorted(const AbstractMetaClassCList &classList,
+ const Dependencies &additionalDependencies = {});
+
NamespaceModelItem popScope() { return m_scopes.takeLast(); }
void pushScope(const NamespaceModelItem &item);
NamespaceModelItem currentScope() const { return m_scopes.constLast(); }
- AbstractMetaClass *argumentToClass(const ArgumentModelItem &,
- const AbstractMetaClass *currentClass);
+ AbstractMetaClassPtr argumentToClass(const ArgumentModelItem &,
+ const AbstractMetaClassCPtr &currentClass);
- void addAbstractMetaClass(AbstractMetaClass *cls, const _CodeModelItem *item);
- AbstractMetaClass *traverseTypeDef(const FileModelItem &dom,
+ void addAbstractMetaClass(const AbstractMetaClassPtr &cls, const _CodeModelItem *item);
+ AbstractMetaClassPtr traverseTypeDef(const FileModelItem &dom,
const TypeDefModelItem &typeDef,
- AbstractMetaClass *currentClass);
+ const AbstractMetaClassPtr &currentClass);
+ AbstractMetaClassPtr traverseTypeDefHelper(const FileModelItem &dom,
+ const TypeDefModelItem &typeDef,
+ const AbstractMetaClassPtr &currentClass);
void traverseTypesystemTypedefs();
- AbstractMetaClass *traverseClass(const FileModelItem &dom,
+ AbstractMetaClassPtr traverseClass(const FileModelItem &dom,
const ClassModelItem &item,
- AbstractMetaClass *currentClass);
- void traverseScopeMembers(const ScopeModelItem &item, AbstractMetaClass *metaClass);
+ const AbstractMetaClassPtr &currentClass);
+ void traverseScopeMembers(const ScopeModelItem &item,
+ const AbstractMetaClassPtr &metaClass);
void traverseClassMembers(const ClassModelItem &scopeItem);
- void traverseUsingMembers(AbstractMetaClass *metaClass);
+ void traverseUsingMembers(const AbstractMetaClassPtr &metaClass) const;
void traverseNamespaceMembers(const NamespaceModelItem &scopeItem);
- bool setupInheritance(AbstractMetaClass *metaClass);
- AbstractMetaClass *traverseNamespace(const FileModelItem &dom,
+ bool setupInheritance(const AbstractMetaClassPtr &metaClass);
+ AbstractMetaClassPtr traverseNamespace(const FileModelItem &dom,
const NamespaceModelItem &item);
std::optional<AbstractMetaEnum> traverseEnum(const EnumModelItem &item,
- AbstractMetaClass *enclosing,
+ const AbstractMetaClassPtr &enclosing,
const QSet<QString> &enumsDeclarations);
- void traverseEnums(const ScopeModelItem &item, AbstractMetaClass *parent,
+ void traverseEnums(const ScopeModelItem &item, const AbstractMetaClassPtr &parent,
const QStringList &enumsDeclarations);
AbstractMetaFunctionRawPtrList classFunctionList(const ScopeModelItem &scopeItem,
AbstractMetaClass::Attributes *constructorAttributes,
- AbstractMetaClass *currentClass);
- void traverseFunctions(ScopeModelItem item, AbstractMetaClass *parent);
+ const AbstractMetaClassPtr &currentClass);
+ void traverseFunctions(const ScopeModelItem& item,
+ const AbstractMetaClassPtr &parent);
static void applyFunctionModifications(AbstractMetaFunction *func);
- void traverseFields(const ScopeModelItem &item, AbstractMetaClass *parent);
+ void traverseFields(const ScopeModelItem &item, const AbstractMetaClassPtr &parent);
bool traverseStreamOperator(const FunctionModelItem &functionItem,
- AbstractMetaClass *currentClass);
+ const AbstractMetaClassPtr &currentClass);
void traverseOperatorFunction(const FunctionModelItem &item,
- AbstractMetaClass *currentClass);
+ const AbstractMetaClassPtr &currentClass);
AbstractMetaFunction *traverseAddedFunctionHelper(const AddedFunctionPtr &addedFunc,
- AbstractMetaClass *metaClass,
+ const AbstractMetaClassPtr &metaClass,
QString *errorMessage);
bool traverseAddedGlobalFunction(const AddedFunctionPtr &addedFunc,
QString *errorMessage);
bool traverseAddedMemberFunction(const AddedFunctionPtr &addedFunc,
- AbstractMetaClass *metaClass,
+ const AbstractMetaClassPtr &metaClass,
QString *errorMessage);
- AbstractMetaFunction *traverseFunction(const FunctionModelItem &function,
- AbstractMetaClass *currentClass);
+ void rejectFunction(const FunctionModelItem &functionItem,
+ const AbstractMetaClassPtr &currentClass,
+ AbstractMetaBuilder::RejectReason reason,
+ const QString &rejectReason);
+ AbstractMetaFunction *traverseFunction(const FunctionModelItem &function,
+ const AbstractMetaClassPtr &currentClass);
std::optional<AbstractMetaField> traverseField(const VariableModelItem &field,
- const AbstractMetaClass *cls);
- void checkFunctionModifications();
+ const AbstractMetaClassCPtr &cls);
+ void checkFunctionModifications() const;
void registerHashFunction(const FunctionModelItem &functionItem,
- AbstractMetaClass *currentClass);
+ const AbstractMetaClassPtr &currentClass);
void registerToStringCapabilityIn(const NamespaceModelItem &namespaceItem);
void registerToStringCapability(const FunctionModelItem &functionItem,
- AbstractMetaClass *currentClass);
+ const AbstractMetaClassPtr &currentClass);
/**
* A conversion operator function should not have its owner class as
@@ -141,45 +144,67 @@ public:
*/
static void fixReturnTypeOfConversionOperator(AbstractMetaFunction *metaFunction);
- void parseQ_Properties(AbstractMetaClass *metaClass, const QStringList &declarations);
- void setupEquals(AbstractMetaClass *metaClass);
- void setupComparable(AbstractMetaClass *metaClass);
- static void setupClonable(AbstractMetaClass *cls);
- void setupExternalConversion(AbstractMetaClass *cls);
- static void setupFunctionDefaults(AbstractMetaFunction *metaFunction,
- AbstractMetaClass *metaClass);
-
- static QString fixDefaultValue(const ArgumentModelItem &item,
- const AbstractMetaType &type,
- const AbstractMetaClass *,
- int argumentIndex);
+ void parseQ_Properties(const AbstractMetaClassPtr &metaClass,
+ const QStringList &declarations);
+ void setupEquals(const AbstractMetaClassPtr &metaClass);
+ void setupComparable(const AbstractMetaClassPtr &metaClass);
+ void setupExternalConversion(const AbstractMetaClassCPtr &cls);
+
+ static bool isQualifiedCppIdentifier(QStringView e);
+ QString fixDefaultValue(QString expr, const AbstractMetaType &type,
+ const AbstractMetaClassCPtr &) const;
+ QString fixSimpleDefaultValue(QStringView expr,
+ const AbstractMetaClassCPtr &klass) const;
+
+ QString fixEnumDefault(const AbstractMetaType &type, const QString &expr,
+ const AbstractMetaClassCPtr &) const;
+ /// Qualify a static field name for default value expressions
+ static QString qualifyStaticField(const AbstractMetaClassCPtr &c, QStringView field);
+
std::optional<AbstractMetaType>
- translateType(const TypeInfo &type, const AbstractMetaClass *currentClass,
+ translateType(const TypeInfo &type, const AbstractMetaClassCPtr &currentClass,
TranslateTypeFlags flags = {}, QString *errorMessage = nullptr);
static std::optional<AbstractMetaType>
- translateTypeStatic(const TypeInfo &type, const AbstractMetaClass *current,
+ translateTypeStatic(const TypeInfo &type, const AbstractMetaClassCPtr &current,
AbstractMetaBuilderPrivate *d = nullptr, TranslateTypeFlags flags = {},
QString *errorMessageIn = nullptr);
- static TypeEntries findTypeEntriesHelper(const QString &qualifiedName, const QString &name,
- const AbstractMetaClass *currentClass = nullptr,
- AbstractMetaBuilderPrivate *d = nullptr);
- static TypeEntries findTypeEntries(const QString &qualifiedName, const QString &name,
- const AbstractMetaClass *currentClass = nullptr,
- AbstractMetaBuilderPrivate *d = nullptr,
- QString *errorMessage = nullptr);
+ static TypeEntryCList findTypeEntriesHelper(const QString &qualifiedName, const QString &name,
+ TranslateTypeFlags flags = {},
+ const AbstractMetaClassCPtr &currentClass = {},
+ AbstractMetaBuilderPrivate *d = nullptr);
+ static TypeEntryCList findTypeEntries(const QString &qualifiedName, const QString &name,
+ TranslateTypeFlags flags = {},
+ const AbstractMetaClassCPtr &currentClass = {},
+ AbstractMetaBuilderPrivate *d = nullptr,
+ QString *errorMessage = nullptr);
qint64 findOutValueFromString(const QString &stringValue, bool &ok);
- AbstractMetaClass *findTemplateClass(const QString& name, const AbstractMetaClass *context,
- TypeInfo *info = Q_NULLPTR,
- ComplexTypeEntry **baseContainerType = Q_NULLPTR) const;
- AbstractMetaClassList getBaseClasses(const AbstractMetaClass *metaClass) const;
+ AbstractMetaClassPtr findTemplateClass(const QString& name, const AbstractMetaClassCPtr &context,
+ TypeInfo *info = nullptr,
+ ComplexTypeEntryPtr *baseContainerType = nullptr) const;
+ AbstractMetaClassCList getBaseClasses(const AbstractMetaClassCPtr &metaClass) const;
- static bool inheritTemplate(AbstractMetaClass *subclass,
- const AbstractMetaClass *templateClass,
+ static bool inheritTemplate(const AbstractMetaClassPtr &subclass,
+ const AbstractMetaClassCPtr &templateClass,
const TypeInfo &info);
- void inheritTemplateFunctions(AbstractMetaClass *subclass);
- std::optional<AbstractMetaType>
+ static bool inheritTemplate(const AbstractMetaClassPtr &subclass,
+ const AbstractMetaClassCPtr &templateClass,
+ const AbstractMetaTypeList &templateTypes,
+ InheritTemplateFlags flags = {});
+
+ static AbstractMetaFunctionPtr
+ inheritTemplateFunction(const AbstractMetaFunctionCPtr &function,
+ const AbstractMetaTypeList &templateTypes);
+
+ static AbstractMetaFunctionPtr
+ inheritTemplateMember(const AbstractMetaFunctionCPtr &function,
+ const AbstractMetaTypeList &templateTypes,
+ const AbstractMetaClassCPtr &templateClass,
+ const AbstractMetaClassPtr &subclass);
+
+ static void inheritTemplateFunctions(const AbstractMetaClassPtr &subclass);
+ static std::optional<AbstractMetaType>
inheritTemplateType(const AbstractMetaTypeList &templateTypes,
const AbstractMetaType &metaType);
@@ -187,29 +212,31 @@ public:
static bool isEnum(const FileModelItem &dom, const QStringList &qualifiedName);
void sortLists();
- void setInclude(TypeEntry *te, const QString &path) const;
+ void setInclude(const TypeEntryPtr &te, const QString &path) const;
static void fixArgumentNames(AbstractMetaFunction *func, const FunctionModificationList &mods);
- void fillAddedFunctions(AbstractMetaClass *metaClass);
- const AbstractMetaClass *resolveTypeSystemTypeDef(const AbstractMetaType &t) const;
+ void fillAddedFunctions(const AbstractMetaClassPtr &metaClass);
+ AbstractMetaClassCPtr resolveTypeSystemTypeDef(const AbstractMetaType &t) const;
+
+ void fixSmartPointers();
- AbstractMetaBuilder *q;
+ AbstractMetaBuilder *q = nullptr;
AbstractMetaClassList m_metaClasses;
AbstractMetaClassList m_templates;
AbstractMetaClassList m_smartPointers;
- QHash<const _CodeModelItem *, AbstractMetaClass *> m_itemToClass;
- QHash<const AbstractMetaClass *, const _CodeModelItem *> m_classToItem;
+ QHash<const _CodeModelItem *, AbstractMetaClassPtr > m_itemToClass;
+ QHash<AbstractMetaClassCPtr, const _CodeModelItem *> m_classToItem;
AbstractMetaFunctionCList m_globalFunctions;
AbstractMetaEnumList m_globalEnums;
- using RejectMap = QMap<QString, AbstractMetaBuilder::RejectReason>;
+ using RejectSet = std::set<RejectEntry>;
- RejectMap m_rejectedClasses;
- RejectMap m_rejectedEnums;
- RejectMap m_rejectedFunctions;
- RejectMap m_rejectedFields;
+ RejectSet m_rejectedClasses;
+ RejectSet m_rejectedEnums;
+ RejectSet m_rejectedFunctions;
+ RejectSet m_rejectedFields;
- QHash<const TypeEntry *, AbstractMetaEnum> m_enums;
+ QHash<TypeEntryCPtr, AbstractMetaEnum> m_enums;
QList<NamespaceModelItem> m_scopes;
@@ -217,9 +244,12 @@ public:
QFileInfoList m_globalHeaders;
QStringList m_headerPaths;
mutable QHash<QString, Include> m_resolveIncludeHash;
+ QMultiHash<QString, QString> m_typedefTargetToName;
QList<TypeClassEntry> m_typeSystemTypeDefs; // look up metatype->class for type system typedefs
+ ApiExtractorFlags m_apiExtractorFlags;
bool m_skipDeprecated = false;
static bool m_useGlobalHeader;
+ static bool m_codeModelTestMode;
};
#endif // ABSTRACTMETBUILDER_P_H
diff --git a/sources/shiboken6/ApiExtractor/abstractmetaenum.cpp b/sources/shiboken6/ApiExtractor/abstractmetaenum.cpp
index ad64e58b9..780170c22 100644
--- a/sources/shiboken6/ApiExtractor/abstractmetaenum.cpp
+++ b/sources/shiboken6/ApiExtractor/abstractmetaenum.cpp
@@ -1,39 +1,20 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "abstractmetaenum.h"
#include "abstractmetalang.h"
#include "documentation.h"
-#include "typesystem.h"
+#include "enumtypeentry.h"
#include "parser/enumvalue.h"
+#include "qtcompat.h"
+
#include <QtCore/QDebug>
+#include <algorithm>
+
+using namespace Qt::StringLiterals;
+
class AbstractMetaEnumValueData : public QSharedData
{
public:
@@ -41,6 +22,7 @@ public:
QString m_stringValue;
EnumValue m_value;
Documentation m_doc;
+ bool m_deprecated = false;
};
AbstractMetaEnumValue::AbstractMetaEnumValue() :
@@ -50,8 +32,8 @@ AbstractMetaEnumValue::AbstractMetaEnumValue() :
AbstractMetaEnumValue::AbstractMetaEnumValue(const AbstractMetaEnumValue &) = default;
AbstractMetaEnumValue &AbstractMetaEnumValue::operator=(const AbstractMetaEnumValue &) = default;
-AbstractMetaEnumValue::AbstractMetaEnumValue(AbstractMetaEnumValue &&) = default;
-AbstractMetaEnumValue &AbstractMetaEnumValue::operator=(AbstractMetaEnumValue &&) = default;
+AbstractMetaEnumValue::AbstractMetaEnumValue(AbstractMetaEnumValue &&) noexcept = default;
+AbstractMetaEnumValue &AbstractMetaEnumValue::operator=(AbstractMetaEnumValue &&) noexcept = default;
AbstractMetaEnumValue::~AbstractMetaEnumValue() = default;
EnumValue AbstractMetaEnumValue::value() const
@@ -87,6 +69,17 @@ void AbstractMetaEnumValue::setName(const QString &name)
d->m_name = name;
}
+bool AbstractMetaEnumValue::isDeprecated() const
+{
+ return d->m_deprecated;
+}
+
+void AbstractMetaEnumValue::setDeprecated(bool deprecated)
+{
+ if (d->m_deprecated != deprecated)
+ d->m_deprecated = deprecated;
+}
+
Documentation AbstractMetaEnumValue::documentation() const
{
return d->m_doc;
@@ -103,29 +96,67 @@ void AbstractMetaEnumValue::setDocumentation(const Documentation &doc)
class AbstractMetaEnumData : public QSharedData
{
public:
- AbstractMetaEnumData() : m_hasQenumsDeclaration(false), m_signed(true)
+ AbstractMetaEnumData() : m_deprecated(false),
+ m_hasQenumsDeclaration(false), m_signed(true)
{
}
+ int unsignedUsedBits() const;
+ int signedUsedBits() const;
+
AbstractMetaEnumValueList m_enumValues;
- EnumTypeEntry *m_typeEntry = nullptr;
+ EnumTypeEntryCPtr m_typeEntry;
Documentation m_doc;
+ QString m_underlyingType;
EnumKind m_enumKind = CEnum;
Access m_access = Access::Public;
+ uint m_deprecated : 1;
uint m_hasQenumsDeclaration : 1;
uint m_signed : 1;
};
+static int _usedBits(uint64_t v)
+{
+ return (v >> 32) ? 64 : (v >> 16) ? 32 : (v >> 8) ? 16 : 8;
+}
+
+static int _usedBits(int64_t v)
+{
+ return (v >> 31) ? 64 : (v >> 15) ? 32 : (v >> 7) ? 16 : 8;
+}
+
+int AbstractMetaEnumData::unsignedUsedBits() const
+{
+ uint64_t maxValue = 0;
+ for (const auto &v : m_enumValues) {
+ if (const auto uv = v.value().unsignedValue(); uv > maxValue)
+ maxValue = uv;
+ }
+ return _usedBits(maxValue);
+}
+
+int AbstractMetaEnumData::signedUsedBits() const
+{
+ int64_t maxValue = 0;
+ for (const auto &v : m_enumValues) {
+ const auto sv = v.value().value();
+ const auto absV = sv < 0 ? ~sv : sv;
+ if (absV > maxValue)
+ maxValue = absV;
+ }
+ return _usedBits(maxValue);
+}
+
AbstractMetaEnum::AbstractMetaEnum() : d(new AbstractMetaEnumData)
{
}
AbstractMetaEnum::AbstractMetaEnum(const AbstractMetaEnum &) = default;
AbstractMetaEnum &AbstractMetaEnum::operator=(const AbstractMetaEnum&) = default;
-AbstractMetaEnum::AbstractMetaEnum(AbstractMetaEnum &&) = default;
-AbstractMetaEnum &AbstractMetaEnum::operator=(AbstractMetaEnum &&) = default;
+AbstractMetaEnum::AbstractMetaEnum(AbstractMetaEnum &&) noexcept = default;
+AbstractMetaEnum &AbstractMetaEnum::operator=(AbstractMetaEnum &&) noexcept = default;
AbstractMetaEnum::~AbstractMetaEnum() = default;
const AbstractMetaEnumValueList &AbstractMetaEnum::values() const
@@ -133,6 +164,16 @@ const AbstractMetaEnumValueList &AbstractMetaEnum::values() const
return d->m_enumValues;
}
+AbstractMetaEnumValueList AbstractMetaEnum::nonRejectedValues() const
+{
+ auto te = d->m_typeEntry;
+ AbstractMetaEnumValueList result = d->m_enumValues;
+ auto pred = [te](const AbstractMetaEnumValue &v) {
+ return te->isEnumValueRejected(v.name()); };
+ result.erase(std::remove_if(result.begin(), result.end(), pred), result.end());
+ return result;
+}
+
void AbstractMetaEnum::addEnumValue(const AbstractMetaEnumValue &enumValue)
{
d->m_enumValues << enumValue;
@@ -154,7 +195,7 @@ std::optional<AbstractMetaEnumValue>
{
if (isAnonymous())
return findMatchingEnumValue(d->m_enumValues, value);
- const int sepPos = value.indexOf(QLatin1String("::"));
+ const int sepPos = value.indexOf(u"::");
if (sepPos == -1)
return findMatchingEnumValue(d->m_enumValues, value);
if (name() == value.left(sepPos))
@@ -170,7 +211,7 @@ QString AbstractMetaEnum::name() const
QString AbstractMetaEnum::qualifiedCppName() const
{
return enclosingClass()
- ? enclosingClass()->qualifiedCppName() + QLatin1String("::") + name()
+ ? enclosingClass()->qualifiedCppName() + u"::"_s + name()
: name();
}
@@ -185,6 +226,36 @@ void AbstractMetaEnum::setAccess(Access a)
d->m_access = a;
}
+bool AbstractMetaEnum::isDeprecated() const
+{
+ return d->m_deprecated;
+}
+
+void AbstractMetaEnum::setDeprecated(bool deprecated)
+{
+ if (d->m_deprecated != deprecated)
+ d->m_deprecated = deprecated;
+}
+
+static bool isDeprecatedValue(const AbstractMetaEnumValue &v)
+{
+ return v.isDeprecated();
+};
+
+bool AbstractMetaEnum::hasDeprecatedValues() const
+{
+ return std::any_of(d->m_enumValues.cbegin(), d->m_enumValues.cend(),
+ isDeprecatedValue);
+}
+
+AbstractMetaEnumValueList AbstractMetaEnum::deprecatedValues() const
+{
+ AbstractMetaEnumValueList result;
+ std::copy_if(d->m_enumValues.cbegin(), d->m_enumValues.cend(),
+ std::back_inserter(result), isDeprecatedValue);
+ return result;
+}
+
const Documentation &AbstractMetaEnum::documentation() const
{
return d->m_doc;
@@ -208,7 +279,7 @@ QString AbstractMetaEnum::package() const
QString AbstractMetaEnum::fullName() const
{
- return package() + QLatin1Char('.') + qualifier() + QLatin1Char('.') + name();
+ return package() + u'.' + qualifier() + u'.' + name();
}
EnumKind AbstractMetaEnum::enumKind() const
@@ -238,12 +309,12 @@ void AbstractMetaEnum::setHasQEnumsDeclaration(bool on)
d->m_hasQenumsDeclaration = on;
}
-EnumTypeEntry *AbstractMetaEnum::typeEntry() const
+EnumTypeEntryCPtr AbstractMetaEnum::typeEntry() const
{
return d->m_typeEntry;
}
-void AbstractMetaEnum::setTypeEntry(EnumTypeEntry *entry)
+void AbstractMetaEnum::setTypeEntry(const EnumTypeEntryCPtr &entry)
{
if (d->m_typeEntry != entry)
d->m_typeEntry = entry;
@@ -260,14 +331,39 @@ void AbstractMetaEnum::setSigned(bool s)
d->m_signed = s;
}
+QString AbstractMetaEnum::underlyingType() const
+{
+ return d->m_underlyingType;
+}
+
+void AbstractMetaEnum::setUnderlyingType(const QString &underlyingType)
+{
+ if (d->m_underlyingType != underlyingType)
+ d->m_underlyingType = underlyingType;
+}
+
+int AbstractMetaEnum::usedBits() const
+{
+ return isSigned() ? d->signedUsedBits() : d->unsignedUsedBits();
+}
+
+QString AbstractMetaEnum::intTypeForSize(int usedBits, bool isSigned)
+{
+ QString result = u"int"_s + QString::number(usedBits) + u"_t"_s;
+ return isSigned ? result : u'u' + result;
+}
+
#ifndef QT_NO_DEBUG_STREAM
-static void formatMetaEnumValue(QDebug &d, const AbstractMetaEnumValue &v)
+static void formatMetaEnumValue(QDebug &d, const AbstractMetaEnumValue &v, bool forceHex = false)
{
- const QString &name = v.stringValue();
- if (!name.isEmpty())
- d << name << '=';
- d << v.value();
+ d << v.name() << '=';
+ if (forceHex)
+ v.value().formatDebugHex(d);
+ else
+ v.value().formatDebug(d);
+ if (v.isDeprecated())
+ d << " (deprecated)";
}
QDebug operator<<(QDebug d, const AbstractMetaEnumValue &v)
@@ -283,15 +379,19 @@ QDebug operator<<(QDebug d, const AbstractMetaEnumValue &v)
static void formatMetaEnum(QDebug &d, const AbstractMetaEnum &e)
{
- d << e.fullName();
+ d << '"' << e.fullName() << '"';
+ if (e.isDeprecated())
+ d << " (deprecated)";
+ d << " \"" << e.underlyingType() << '"';
if (!e.isSigned())
- d << " (unsigned) ";
- d << '[';
+ d << " (unsigned)";
+ d << " [";
const AbstractMetaEnumValueList &values = e.values();
- for (int i = 0, count = values.size(); i < count; ++i) {
+ const bool hasFlags = e.typeEntry()->flags() != nullptr;
+ for (qsizetype i = 0, count = values.size(); i < count; ++i) {
if (i)
- d << ' ';
- formatMetaEnumValue(d, values.at(i));
+ d << ", ";
+ formatMetaEnumValue(d, values.at(i), hasFlags);
}
d << ']';
}
diff --git a/sources/shiboken6/ApiExtractor/abstractmetaenum.h b/sources/shiboken6/ApiExtractor/abstractmetaenum.h
index 2cf949f15..03d7a3082 100644
--- a/sources/shiboken6/ApiExtractor/abstractmetaenum.h
+++ b/sources/shiboken6/ApiExtractor/abstractmetaenum.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef ABSTRACTMETAENUM_H
#define ABSTRACTMETAENUM_H
@@ -32,6 +7,7 @@
#include "abstractmetalang_typedefs.h"
#include "enclosingclassmixin.h"
#include "parser/codemodel_enums.h"
+#include "typesystem_typedefs.h"
#include <QtCore/QSharedDataPointer>
#include <QtCore/QString>
@@ -52,8 +28,8 @@ public:
AbstractMetaEnumValue();
AbstractMetaEnumValue(const AbstractMetaEnumValue &);
AbstractMetaEnumValue &operator=(const AbstractMetaEnumValue &);
- AbstractMetaEnumValue(AbstractMetaEnumValue &&);
- AbstractMetaEnumValue &operator=(AbstractMetaEnumValue &&);
+ AbstractMetaEnumValue(AbstractMetaEnumValue &&) noexcept;
+ AbstractMetaEnumValue &operator=(AbstractMetaEnumValue &&) noexcept;
~AbstractMetaEnumValue();
EnumValue value() const;
@@ -65,9 +41,14 @@ public:
QString name() const;
void setName(const QString &name);
+ bool isDeprecated() const;
+ void setDeprecated(bool deprecated);
+
Documentation documentation() const;
void setDocumentation(const Documentation& doc);
+ int usedBits() const;
+
private:
QSharedDataPointer<AbstractMetaEnumValueData> d;
};
@@ -78,11 +59,12 @@ public:
AbstractMetaEnum();
AbstractMetaEnum(const AbstractMetaEnum &);
AbstractMetaEnum &operator=(const AbstractMetaEnum &);
- AbstractMetaEnum(AbstractMetaEnum &&);
- AbstractMetaEnum &operator=(AbstractMetaEnum &&);
+ AbstractMetaEnum(AbstractMetaEnum &&) noexcept;
+ AbstractMetaEnum &operator=(AbstractMetaEnum &&) noexcept;
~AbstractMetaEnum();
const AbstractMetaEnumValueList &values() const;
+ AbstractMetaEnumValueList nonRejectedValues() const;
void addEnumValue(const AbstractMetaEnumValue &enumValue);
std::optional<AbstractMetaEnumValue> findEnumValue(QStringView value) const;
@@ -95,6 +77,11 @@ public:
bool isPrivate() const { return access() == Access::Private; }
bool isProtected() const { return access() == Access::Protected; }
+ bool isDeprecated() const;
+ void setDeprecated(bool deprecated);
+ bool hasDeprecatedValues() const;
+ AbstractMetaEnumValueList deprecatedValues() const;
+
const Documentation &documentation() const;
void setDocumentation(const Documentation& doc);
@@ -113,12 +100,18 @@ public:
bool hasQEnumsDeclaration() const;
void setHasQEnumsDeclaration(bool on);
- EnumTypeEntry *typeEntry() const;
- void setTypeEntry(EnumTypeEntry *entry);
+ EnumTypeEntryCPtr typeEntry() const;
+ void setTypeEntry(const EnumTypeEntryCPtr &entry);
bool isSigned() const;
void setSigned(bool s);
+ QString underlyingType() const;
+ void setUnderlyingType(const QString &underlyingType);
+
+ static QString intTypeForSize(int usedBits, bool isSigned);
+ int usedBits() const;
+
private:
QSharedDataPointer<AbstractMetaEnumData> d;
};
diff --git a/sources/shiboken6/ApiExtractor/abstractmetafield.cpp b/sources/shiboken6/ApiExtractor/abstractmetafield.cpp
index 44e8ddc84..27a76d04d 100644
--- a/sources/shiboken6/ApiExtractor/abstractmetafield.cpp
+++ b/sources/shiboken6/ApiExtractor/abstractmetafield.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "abstractmetafield.h"
#include "abstractmetabuilder.h"
@@ -32,11 +7,16 @@
#include "abstractmetatype.h"
#include "documentation.h"
#include "modifications.h"
-#include "typesystem.h"
+#include "complextypeentry.h"
+#include "typesystemtypeentry.h"
#include "parser/codemodel.h"
+#include "qtcompat.h"
+
#include <QtCore/QDebug>
+using namespace Qt::StringLiterals;
+
class AbstractMetaFieldData : public QSharedData
{
public:
@@ -56,15 +36,15 @@ AbstractMetaField::AbstractMetaField() : d(new AbstractMetaFieldData)
AbstractMetaField::AbstractMetaField(const AbstractMetaField &) = default;
AbstractMetaField &AbstractMetaField::operator=(const AbstractMetaField &) = default;
-AbstractMetaField::AbstractMetaField(AbstractMetaField &&) = default;
-AbstractMetaField &AbstractMetaField::operator=(AbstractMetaField &&) = default;
+AbstractMetaField::AbstractMetaField(AbstractMetaField &&) noexcept = default;
+AbstractMetaField &AbstractMetaField::operator=(AbstractMetaField &&) noexcept = default;
AbstractMetaField::~AbstractMetaField() = default;
// returned->setEnclosingClass(nullptr);
std::optional<AbstractMetaField>
AbstractMetaField::find(const AbstractMetaFieldList &haystack,
- const QString &needle)
+ QStringView needle)
{
for (const auto &f : haystack) {
if (f.name() == needle)
@@ -76,7 +56,7 @@ std::optional<AbstractMetaField>
/*******************************************************************************
* Indicates that this field has a modification that removes it
*/
-bool AbstractMetaField::isModifiedRemoved(int types) const
+bool AbstractMetaField::isModifiedRemoved() const
{
const FieldModificationList &mods = modifications();
for (const FieldModification &mod : mods) {
@@ -87,6 +67,16 @@ bool AbstractMetaField::isModifiedRemoved(int types) const
return false;
}
+bool AbstractMetaField::generateOpaqueContainer() const
+{
+ const FieldModificationList &mods = modifications();
+ for (const FieldModification &mod : mods) {
+ if (mod.isOpaqueContainer())
+ return true;
+ }
+ return false;
+}
+
const AbstractMetaType &AbstractMetaField::type() const
{
return d->m_type;
@@ -133,7 +123,7 @@ void AbstractMetaField::setStatic(bool s)
QString AbstractMetaField::qualifiedCppName() const
{
- return enclosingClass()->qualifiedCppName() + QLatin1String("::")
+ return enclosingClass()->qualifiedCppName() + u"::"_s
+ originalName();
}
@@ -212,7 +202,7 @@ TypeSystem::SnakeCase AbstractMetaField::snakeCase() const
auto typeEntry = enclosingClass()->typeEntry();
const auto snakeCase = typeEntry->snakeCase();
return snakeCase != TypeSystem::SnakeCase::Unspecified
- ? snakeCase : typeEntry->typeSystemTypeEntry()->snakeCase();
+ ? snakeCase : typeSystemTypeEntry(typeEntry)->snakeCase();
}
FieldModificationList AbstractMetaField::modifications() const
diff --git a/sources/shiboken6/ApiExtractor/abstractmetafield.h b/sources/shiboken6/ApiExtractor/abstractmetafield.h
index e6435f68d..0fa858791 100644
--- a/sources/shiboken6/ApiExtractor/abstractmetafield.h
+++ b/sources/shiboken6/ApiExtractor/abstractmetafield.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef ABSTRACTMETAFIELD_H
#define ABSTRACTMETAFIELD_H
@@ -32,6 +7,7 @@
#include "abstractmetalang_typedefs.h"
#include "parser/codemodel_enums.h"
#include "typesystem_enums.h"
+#include "modifications_typedefs.h"
#include "typesystem_typedefs.h"
#include "enclosingclassmixin.h"
@@ -50,13 +26,14 @@ public:
AbstractMetaField();
AbstractMetaField(const AbstractMetaField &);
AbstractMetaField &operator=(const AbstractMetaField &);
- AbstractMetaField(AbstractMetaField &&);
- AbstractMetaField &operator=(AbstractMetaField &&);
+ AbstractMetaField(AbstractMetaField &&) noexcept;
+ AbstractMetaField &operator=(AbstractMetaField &&) noexcept;
~AbstractMetaField();
FieldModificationList modifications() const;
- bool isModifiedRemoved(int types = TypeSystem::All) const;
+ bool isModifiedRemoved() const;
+ bool generateOpaqueContainer() const;
const AbstractMetaType &type() const;
void setType(const AbstractMetaType &type);
@@ -94,7 +71,7 @@ public:
TypeSystem::SnakeCase snakeCase() const;
static std::optional<AbstractMetaField>
- find(const AbstractMetaFieldList &haystack, const QString &needle);
+ find(const AbstractMetaFieldList &haystack, QStringView needle);
#ifndef QT_NO_DEBUG_STREAM
void formatDebug(QDebug &d) const;
diff --git a/sources/shiboken6/ApiExtractor/abstractmetafunction.cpp b/sources/shiboken6/ApiExtractor/abstractmetafunction.cpp
index 8aae6c19b..11a02f154 100644
--- a/sources/shiboken6/ApiExtractor/abstractmetafunction.cpp
+++ b/sources/shiboken6/ApiExtractor/abstractmetafunction.cpp
@@ -1,54 +1,42 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "abstractmetafunction.h"
+#include "abstractmetaargument.h"
#include "abstractmetabuilder.h"
#include "abstractmetalang.h"
#include "abstractmetalang_helpers.h"
#include "abstractmetatype.h"
+#include "addedfunction.h"
#include <codemodel.h>
#include "documentation.h"
+#include "exception.h"
#include "messages.h"
+#include "codesnip.h"
#include "modifications.h"
-#include "propertyspec.h"
#include "reporthandler.h"
#include "sourcelocation.h"
#include "typedatabase.h"
-#include "typesystem.h"
+#include "complextypeentry.h"
+#include "containertypeentry.h"
+#include "functiontypeentry.h"
+#include "primitivetypeentry.h"
+#include "typesystemtypeentry.h"
+
+#include "qtcompat.h"
#include <QtCore/QDebug>
#include <QtCore/QRegularExpression>
+#include <algorithm>
+
+using namespace Qt::StringLiterals;
+
// Cache FunctionModificationList in a flat list per class (0 for global
// functions, or typically owner/implementing/declaring class.
struct ModificationCacheEntry
{
- const AbstractMetaClass *klass;
+ AbstractMetaClassCPtr klass;
FunctionModificationList modifications;
};
@@ -60,7 +48,6 @@ public:
AbstractMetaFunctionPrivate()
: m_constant(false),
m_reverse(false),
- m_explicit(false),
m_pointerOperator(false),
m_isCallOperator(false)
{
@@ -73,7 +60,10 @@ public:
int overloadNumber(const AbstractMetaFunction *q) const;
const FunctionModificationList &modifications(const AbstractMetaFunction *q,
- const AbstractMetaClass *implementor) const;
+ const AbstractMetaClassCPtr &implementor) const;
+
+ bool applyTypeModification(const AbstractMetaFunction *q,
+ const QString &type, int number, QString *errorMessage);
QString m_name;
QString m_originalName;
@@ -81,22 +71,25 @@ public:
mutable QString m_cachedMinimalSignature;
mutable QString m_cachedSignature;
mutable QString m_cachedModifiedName;
+ QString m_unresolvedSignature;
- FunctionTypeEntry* m_typeEntry = nullptr;
+ FunctionTypeEntryPtr m_typeEntry;
AbstractMetaFunction::FunctionType m_functionType = AbstractMetaFunction::NormalFunction;
AbstractMetaType m_type;
- const AbstractMetaClass *m_class = nullptr;
- const AbstractMetaClass *m_implementingClass = nullptr;
- const AbstractMetaClass *m_declaringClass = nullptr;
+ QString m_modifiedTypeName;
+ AbstractMetaClassCPtr m_class;
+ AbstractMetaClassCPtr m_implementingClass;
+ AbstractMetaClassCPtr m_declaringClass;
mutable ModificationCache m_modificationCache;
int m_propertySpecIndex = -1;
AbstractMetaArgumentList m_arguments;
AddedFunctionPtr m_addedFunction;
SourceLocation m_sourceLocation;
AbstractMetaFunction::Attributes m_attributes;
+ FunctionAttributes m_cppAttributes;
+ AbstractMetaFunction::Flags m_flags;
uint m_constant : 1;
uint m_reverse : 1;
- uint m_explicit : 1;
uint m_pointerOperator : 1;
uint m_isCallOperator : 1;
mutable int m_cachedOverloadNumber = TypeSystem::OverloadNumberUnset;
@@ -107,13 +100,17 @@ public:
TypeSystem::ExceptionHandling m_exceptionHandlingModification = TypeSystem::ExceptionHandling::Unspecified;
};
-AbstractMetaFunction::AbstractMetaFunction(const AddedFunctionPtr &addedFunc) :
+AbstractMetaFunction::AbstractMetaFunction(const QString &name) :
AbstractMetaFunction()
{
+ d->m_originalName = d->m_name = name;
+}
+
+AbstractMetaFunction::AbstractMetaFunction(const AddedFunctionPtr &addedFunc) :
+ AbstractMetaFunction(addedFunc->name())
+{
d->m_addedFunction = addedFunc;
setConstant(addedFunc->isConstant());
- setName(addedFunc->name());
- setOriginalName(addedFunc->name());
switch (addedFunc->access()) {
case AddedFunction::Protected:
setAccess(Access::Protected);
@@ -122,9 +119,9 @@ AbstractMetaFunction::AbstractMetaFunction(const AddedFunctionPtr &addedFunc) :
setAccess(Access::Public);
break;
}
- AbstractMetaFunction::Attributes atts = AbstractMetaFunction::FinalInTargetLang;
+ AbstractMetaFunction::Attributes atts;
if (addedFunc->isStatic())
- atts |= AbstractMetaFunction::Static;
+ setCppAttribute(FunctionAttribute::Static);
if (addedFunc->isClassMethod())
atts |= AbstractMetaFunction::ClassMethod;
setAttributes(atts);
@@ -217,23 +214,19 @@ void AbstractMetaFunction::setPointerOperator(bool value)
bool AbstractMetaFunction::isExplicit() const
{
- return d->m_explicit;
+ return d->m_cppAttributes.testFlag(FunctionAttribute::Explicit);
}
void AbstractMetaFunction::setExplicit(bool isExplicit)
{
- d->m_explicit = isExplicit;
+ d->m_cppAttributes.setFlag(FunctionAttribute::Explicit, isExplicit);
}
bool AbstractMetaFunction::returnsBool() const
{
if (d->m_type.typeUsagePattern() != AbstractMetaType::PrimitivePattern)
return false;
- auto *pte = static_cast<const PrimitiveTypeEntry *>(d->m_type.typeEntry());
- // Walk along typedefs
- while (auto *referencedPte = pte->referencedTypeEntry())
- pte =referencedPte;
- return pte->name() == u"bool";
+ return basicReferencedTypeEntry(d->m_type.typeEntry())->name() == u"bool";
}
bool AbstractMetaFunction::isOperatorBool() const
@@ -268,12 +261,37 @@ void AbstractMetaFunction::operator-=(AbstractMetaFunction::Attribute attribute)
d->m_attributes.setFlag(attribute, false);
}
+FunctionAttributes AbstractMetaFunction::cppAttributes() const
+{
+ return d->m_cppAttributes;
+}
+
+void AbstractMetaFunction::setCppAttributes(FunctionAttributes a)
+{
+ d->m_cppAttributes = a;
+}
+
+void AbstractMetaFunction::setCppAttribute(FunctionAttribute a, bool on)
+{
+ d->m_cppAttributes.setFlag(a, on);
+}
+
+AbstractMetaFunction::Flags AbstractMetaFunction::flags() const
+{
+ return d->m_flags;
+}
+
+void AbstractMetaFunction::setFlags(Flags f)
+{
+ d->m_flags = f;
+}
+
/*******************************************************************************
* Indicates that this function has a modification that removes it
*/
-bool AbstractMetaFunction::isModifiedRemoved(const AbstractMetaClass *cls) const
+bool AbstractMetaFunction::isModifiedRemoved(AbstractMetaClassCPtr cls) const
{
- if (!isInGlobalScope() && cls == nullptr)
+ if (!isInGlobalScope() && !cls)
cls = d->m_implementingClass;
for (const auto &mod : modifications(cls)) {
if (mod.isRemoved())
@@ -283,6 +301,17 @@ bool AbstractMetaFunction::isModifiedRemoved(const AbstractMetaClass *cls) const
return false;
}
+bool AbstractMetaFunction::isModifiedFinal(AbstractMetaClassCPtr cls) const
+{
+ if (!isInGlobalScope() && cls == nullptr)
+ cls = d->m_implementingClass;
+ for (const auto &mod : modifications(cls)) {
+ if (mod.modifiers().testFlag(FunctionModification::Final))
+ return true;
+ }
+ return false;
+}
+
bool AbstractMetaFunction::isVoid() const
{
return d->m_type.isVoid();
@@ -298,12 +327,12 @@ void AbstractMetaFunction::setType(const AbstractMetaType &type)
d->m_type = type;
}
-const AbstractMetaClass *AbstractMetaFunction::ownerClass() const
+AbstractMetaClassCPtr AbstractMetaFunction::ownerClass() const
{
return d->m_class;
}
-void AbstractMetaFunction::setOwnerClass(const AbstractMetaClass *cls)
+void AbstractMetaFunction::setOwnerClass(const AbstractMetaClassCPtr &cls)
{
d->m_class = cls;
}
@@ -327,7 +356,7 @@ AbstractMetaFunction::CompareResult AbstractMetaFunction::compareTo(const Abstra
result |= EqualImplementor;
// Attributes
- if (attributes() == other->attributes())
+ if (attributes() == other->attributes() && cppAttributes() == other->cppAttributes())
result |= EqualAttributes;
// Compare types
@@ -358,10 +387,10 @@ AbstractMetaFunction::CompareResult AbstractMetaFunction::compareTo(const Abstra
maxArguments = arguments();
}
- int minCount = minArguments.size();
- int maxCount = maxArguments.size();
+ const auto minCount = minArguments.size();
+ const auto maxCount = maxArguments.size();
bool same = true;
- for (int i = 0; i < maxCount; ++i) {
+ for (qsizetype i = 0; i < maxCount; ++i) {
if (i < minCount) {
const AbstractMetaArgument &min_arg = minArguments.at(i);
const AbstractMetaArgument &max_arg = maxArguments.at(i);
@@ -412,6 +441,11 @@ AbstractMetaFunction *AbstractMetaFunction::copy() const
{
auto *cpy = new AbstractMetaFunction;
cpy->setAttributes(attributes());
+ auto ca = cppAttributes();
+ // Historical bug: explicit was not copied! (causing nontypetemplate_test.py fail)
+ ca.setFlag(FunctionAttribute::Explicit, false);
+ cpy->setCppAttributes(ca);
+ cpy->setFlags(flags());
cpy->setAccess(access());
cpy->setName(name());
cpy->setOriginalName(originalName());
@@ -424,6 +458,7 @@ AbstractMetaFunction *AbstractMetaFunction::copy() const
cpy->setExceptionSpecification(d->m_exceptionSpecification);
cpy->setAllowThreadModification(d->m_allowThreadModification);
cpy->setExceptionHandlingModification(d->m_exceptionHandlingModification);
+ cpy->d->m_modifiedTypeName = d->m_modifiedTypeName;
cpy->d->m_addedFunction = d->m_addedFunction;
cpy->d->m_arguments = d->m_arguments;
@@ -447,35 +482,50 @@ bool AbstractMetaFunction::generateBinding() const
{
switch (d->m_functionType) {
case ConversionOperator:
+ if (d->m_name != u"operator int" && d->m_name != u"operator double")
+ return false;
+ break;
case AssignmentOperatorFunction:
case MoveAssignmentOperatorFunction:
+ case AbstractMetaFunction::MoveConstructorFunction:
return false;
default:
+ if (!isWhiteListed())
+ return false;
break;
}
+ // Can we access the wrapper in case of a protected method? If not,
+ // disable for consistency regardless of avoidProtectedHack.
+ if (isProtected()) {
+ const auto typeFlags = ownerClass()->typeEntry()->typeFlags();
+ if (typeFlags.testFlag(ComplexTypeEntry::DisableWrapper))
+ return false;
+ }
if (isPrivate() && d->m_functionType != EmptyFunction)
return false;
- return d->m_name != u"qt_metacall" && !usesRValueReferences()
- && !isModifiedRemoved();
+ // RValue references only for user-specified
+ // functions (<add-function>/<declare-function>/<function>)
+ return d->m_name != u"qt_metacall" &&
+ (!usesRValueReferences() || d->m_addedFunction || d->m_typeEntry)
+ && !isModifiedRemoved();
}
-QStringList AbstractMetaFunction::introspectionCompatibleSignatures(const QStringList &resolvedArguments) const
+bool AbstractMetaFunction::isWhiteListed() const
{
- AbstractMetaArgumentList arguments = this->arguments();
- if (arguments.size() == resolvedArguments.size()) {
- QString signature = name() + QLatin1Char('(') + resolvedArguments.join(QLatin1Char(',')) + QLatin1Char(')');
- return QStringList(TypeDatabase::normalizedSignature(signature));
- }
- QStringList returned;
-
- const AbstractMetaArgument &argument = arguments.at(resolvedArguments.size());
- QStringList minimalTypeSignature = argument.type().minimalSignature().split(QLatin1String("::"));
- for (int i = 0; i < minimalTypeSignature.size(); ++i) {
- returned += introspectionCompatibleSignatures(QStringList(resolvedArguments)
- << QStringList(minimalTypeSignature.mid(minimalTypeSignature.size() - i - 1)).join(QLatin1String("::")));
+ switch (d->m_functionType) {
+ case NormalFunction:
+ case SignalFunction:
+ case SlotFunction:
+ if (auto dc = declaringClass()) {
+ const QSet<QString> &whiteList = dc->typeEntry()->generateFunctions();
+ return whiteList.isEmpty() || whiteList.contains(d->m_name)
+ || whiteList.contains(minimalSignature());
+ }
+ break;
+ default:
+ break;
}
-
- return returned;
+ return true;
}
QString AbstractMetaFunctionPrivate::signature() const
@@ -483,22 +533,22 @@ QString AbstractMetaFunctionPrivate::signature() const
if (m_cachedSignature.isEmpty()) {
m_cachedSignature = m_originalName;
- m_cachedSignature += QLatin1Char('(');
+ m_cachedSignature += u'(';
- for (int i = 0; i < m_arguments.count(); ++i) {
+ for (qsizetype i = 0; i < m_arguments.size(); ++i) {
const AbstractMetaArgument &a = m_arguments.at(i);
const AbstractMetaType &t = a.type();
if (i > 0)
- m_cachedSignature += QLatin1String(", ");
+ m_cachedSignature += u", "_s;
m_cachedSignature += t.cppSignature();
// We need to have the argument names in the qdoc files
- m_cachedSignature += QLatin1Char(' ');
+ m_cachedSignature += u' ';
m_cachedSignature += a.name();
}
- m_cachedSignature += QLatin1Char(')');
+ m_cachedSignature += u')';
if (m_constant)
- m_cachedSignature += QLatin1String(" const");
+ m_cachedSignature += u" const"_s;
}
return m_cachedSignature;
}
@@ -508,6 +558,25 @@ QString AbstractMetaFunction::signature() const
return d->signature();
}
+QString AbstractMetaFunction::classQualifiedSignature() const
+{
+ QString result;
+ if (d->m_implementingClass)
+ result += d->m_implementingClass->qualifiedCppName() + u"::"_s;
+ result += signature();
+ return result;
+}
+
+QString AbstractMetaFunction::unresolvedSignature() const
+{
+ return d->m_unresolvedSignature;
+}
+
+void AbstractMetaFunction::setUnresolvedSignature(const QString &s)
+{
+ d->m_unresolvedSignature = s;
+}
+
bool AbstractMetaFunction::isConstant() const
{
return d->m_constant;
@@ -520,31 +589,47 @@ void AbstractMetaFunction::setConstant(bool constant)
bool AbstractMetaFunction::isUserAdded() const
{
- return !d->m_addedFunction.isNull() && !d->m_addedFunction->isDeclaration();
+ return d->m_addedFunction && !d->m_addedFunction->isDeclaration();
+}
+
+bool AbstractMetaFunction::isUserAddedPythonOverride() const
+{
+ return d->m_addedFunction && d->m_addedFunction->isPythonOverride();
}
bool AbstractMetaFunction::isUserDeclared() const
{
- return !d->m_addedFunction.isNull() && d->m_addedFunction->isDeclaration();
+ return d->m_addedFunction && d->m_addedFunction->isDeclaration();
}
int AbstractMetaFunction::actualMinimumArgumentCount() const
{
- AbstractMetaArgumentList arguments = this->arguments();
-
int count = 0;
- for (int i = 0; i < arguments.size(); ++i && ++count) {
- if (argumentRemoved(i + 1))
+ for (qsizetype i = 0, size = d->m_arguments.size(); i < size; ++i && ++count) {
+ const auto &arg = d->m_arguments.at(i);
+ if (arg.isModifiedRemoved())
--count;
- else if (!arguments.at(i).defaultValueExpression().isEmpty())
+ else if (!arg.defaultValueExpression().isEmpty())
break;
}
return count;
}
+int AbstractMetaFunction::actualArgumentIndex(int index) const
+{
+ if (index < 0 || index >= int(d->m_arguments.size()))
+ throw Exception(msgArgumentIndexOutOfRange(this, index));
+ int result = 0;
+ for (int i = 0; i < index; ++i) {
+ if (!d->m_arguments.at(i).isModifiedRemoved())
+ ++result;
+ }
+ return result;
+}
+
// Returns reference counts for argument at idx, or all arguments if idx == -2
-QList<ReferenceCount> AbstractMetaFunction::referenceCounts(const AbstractMetaClass *cls, int idx) const
+QList<ReferenceCount> AbstractMetaFunction::referenceCounts(const AbstractMetaClassCPtr &cls, int idx) const
{
QList<ReferenceCount> returned;
@@ -559,7 +644,7 @@ QList<ReferenceCount> AbstractMetaFunction::referenceCounts(const AbstractMetaCl
return returned;
}
-ArgumentOwner AbstractMetaFunction::argumentOwner(const AbstractMetaClass *cls, int idx) const
+ArgumentOwner AbstractMetaFunction::argumentOwner(const AbstractMetaClassCPtr &cls, int idx) const
{
for (const auto &mod : modifications(cls)) {
for (const ArgumentModification &argumentMod : mod.argument_mods()) {
@@ -588,6 +673,11 @@ QString AbstractMetaFunction::conversionRule(TypeSystem::Language language, int
return QString();
}
+bool AbstractMetaFunction::hasConversionRule(TypeSystem::Language language, int idx) const
+{
+ return !conversionRule(language, idx).isEmpty();
+}
+
// FIXME If we remove a arg. in the method at the base class, it will not reflect here.
bool AbstractMetaFunction::argumentRemoved(int key) const
{
@@ -603,28 +693,28 @@ bool AbstractMetaFunction::argumentRemoved(int key) const
return false;
}
-const AbstractMetaClass *AbstractMetaFunction::targetLangOwner() const
+AbstractMetaClassCPtr AbstractMetaFunction::targetLangOwner() const
{
return d->m_class && d->m_class->isInvisibleNamespace()
? d->m_class->targetLangEnclosingClass() : d->m_class;
}
-const AbstractMetaClass *AbstractMetaFunction::declaringClass() const
+AbstractMetaClassCPtr AbstractMetaFunction::declaringClass() const
{
return d->m_declaringClass;
}
-void AbstractMetaFunction::setDeclaringClass(const AbstractMetaClass *cls)
+void AbstractMetaFunction::setDeclaringClass(const AbstractMetaClassCPtr &cls)
{
d->m_declaringClass = cls;
}
-const AbstractMetaClass *AbstractMetaFunction::implementingClass() const
+AbstractMetaClassCPtr AbstractMetaFunction::implementingClass() const
{
return d->m_implementingClass;
}
-void AbstractMetaFunction::setImplementingClass(const AbstractMetaClass *cls)
+void AbstractMetaFunction::setImplementingClass(const AbstractMetaClassCPtr &cls)
{
d->m_implementingClass = cls;
}
@@ -649,13 +739,23 @@ void AbstractMetaFunction::addArgument(const AbstractMetaArgument &argument)
d->m_arguments << argument;
}
+static bool modifiedDeprecated(const FunctionModification &mod)
+{
+ return mod.modifiers().testFlag(FunctionModification::Deprecated);
+}
+
+static bool modifiedUndeprecated(const FunctionModification &mod)
+{
+ return mod.modifiers().testFlag(FunctionModification::Undeprecated);
+}
+
bool AbstractMetaFunction::isDeprecated() const
{
- for (const auto &modification : modifications(declaringClass())) {
- if (modification.isDeprecated())
- return true;
- }
- return false;
+ const auto &mods = modifications(declaringClass());
+
+ return d->m_cppAttributes.testFlag(FunctionAttribute::Deprecated)
+ ? std::none_of(mods.cbegin(), mods.cend(), modifiedUndeprecated)
+ : std::any_of(mods.cbegin(), mods.cend(), modifiedDeprecated);
}
bool AbstractMetaFunction::isConstructor() const
@@ -700,6 +800,24 @@ void AbstractMetaFunction::setFunctionType(AbstractMetaFunction::FunctionType ty
d->m_functionType = type;
}
+std::optional<AbstractMetaFunction::ComparisonOperatorType>
+AbstractMetaFunction::comparisonOperatorType() const
+{
+ if (d->m_functionType != ComparisonOperator)
+ return {};
+ static const QHash<QString, ComparisonOperatorType> mapping = {
+ {u"operator=="_s, OperatorEqual},
+ {u"operator!="_s, OperatorNotEqual},
+ {u"operator<"_s, OperatorLess},
+ {u"operator<="_s, OperatorLessEqual},
+ {u"operator>"_s, OperatorGreater},
+ {u"operator>="_s, OperatorGreaterEqual}
+ };
+ const auto it = mapping.constFind(originalName());
+ Q_ASSERT(it != mapping.constEnd());
+ return it.value();
+}
+
// Auto-detect whether a function should be wrapped into
// Py_BEGIN_ALLOW_THREADS/Py_END_ALLOW_THREADS, that is, temporarily release
// the GIL (global interpreter lock). Doing so is required for any thread-wait
@@ -709,8 +827,13 @@ void AbstractMetaFunction::setFunctionType(AbstractMetaFunction::FunctionType ty
bool AbstractMetaFunction::autoDetectAllowThread() const
{
// Disallow for simple getter functions.
- const bool maybeGetter = d->m_constant != 0 && !isVoid() && d->m_arguments.isEmpty();
- return !maybeGetter;
+ return !maybeAccessor();
+}
+
+bool AbstractMetaFunction::maybeAccessor() const
+{
+ return d->m_functionType == NormalFunction && d->m_class != nullptr
+ && d->m_constant != 0 && !isVoid() && d->m_arguments.isEmpty();
}
SourceLocation AbstractMetaFunction::sourceLocation() const
@@ -723,12 +846,12 @@ void AbstractMetaFunction::setSourceLocation(const SourceLocation &sourceLocatio
d->m_sourceLocation = sourceLocation;
}
-static inline TypeSystem::AllowThread allowThreadMod(const AbstractMetaClass *klass)
+static inline TypeSystem::AllowThread allowThreadMod(const AbstractMetaClassCPtr &klass)
{
return klass->typeEntry()->allowThread();
}
-static inline bool hasAllowThreadMod(const AbstractMetaClass *klass)
+static inline bool hasAllowThreadMod(const AbstractMetaClassCPtr &klass)
{
return allowThreadMod(klass) != TypeSystem::AllowThread::Unspecified;
}
@@ -761,7 +884,7 @@ bool AbstractMetaFunction::allowThread() const
return result;
}
-TypeSystem::Ownership AbstractMetaFunction::argumentTargetOwnership(const AbstractMetaClass *cls, int idx) const
+TypeSystem::Ownership AbstractMetaFunction::argumentTargetOwnership(const AbstractMetaClassCPtr &cls, int idx) const
{
for (const auto &modification : modifications(cls)) {
for (const ArgumentModification &argumentModification : modification.argument_mods()) {
@@ -773,18 +896,22 @@ TypeSystem::Ownership AbstractMetaFunction::argumentTargetOwnership(const Abstra
return TypeSystem::UnspecifiedOwnership;
}
-QString AbstractMetaFunction::typeReplaced(int key) const
+const QString &AbstractMetaFunction::modifiedTypeName() const
{
- for (const auto &modification : modifications(declaringClass())) {
- for (const ArgumentModification &argumentModification : modification.argument_mods()) {
- if (argumentModification.index() == key
- && !argumentModification.modifiedType().isEmpty()) {
- return argumentModification.modifiedType();
- }
- }
- }
+ return d->m_modifiedTypeName;
+}
- return QString();
+bool AbstractMetaFunction::generateOpaqueContainerReturn() const
+{
+ if (!isTypeModified() || d->m_type.typeUsagePattern() != AbstractMetaType::ContainerPattern)
+ return false;
+ // Needs to be a reference to a container, allow by value only for spans
+ if (d->m_type.referenceType() != LValueReference) {
+ auto cte = std::static_pointer_cast<const ContainerTypeEntry>(d->m_type.typeEntry());
+ if (cte->containerKind() != ContainerTypeEntry::SpanContainer)
+ return false;
+ }
+ return d->m_type.generateOpaqueContainerForGetter(d->m_modifiedTypeName);
}
bool AbstractMetaFunction::isModifiedToArray(int argumentIndex) const
@@ -798,6 +925,56 @@ bool AbstractMetaFunction::isModifiedToArray(int argumentIndex) const
return false;
}
+// Note: The declaring class must be correctly set for this to work.
+bool AbstractMetaFunctionPrivate::applyTypeModification(const AbstractMetaFunction *q,
+ const QString &type,
+ int number, QString *errorMessage)
+{
+ if (number < 0 || number > m_arguments.size()) {
+ *errorMessage =
+ msgTypeModificationFailed(type, number, q,
+ msgArgumentOutOfRange(number, 0, m_arguments.size()));
+ return false;
+ }
+
+ // Modified return types may have unparseable types like Python tuples
+ if (number == 0) {
+ m_modifiedTypeName = type;
+ return true;
+ }
+
+ auto typeOpt = AbstractMetaType::fromString(type, errorMessage);
+ if (!typeOpt.has_value()) {
+ *errorMessage = msgTypeModificationFailed(type, number, q, *errorMessage);
+ return false;
+ }
+ m_arguments[number - 1].setModifiedType(typeOpt.value());
+ return true;
+}
+
+void AbstractMetaFunction::applyTypeModifications()
+{
+ QString errorMessage;
+ for (const auto &modification : modifications(declaringClass())) {
+ for (const ArgumentModification &am : modification.argument_mods()) {
+ const int n = am.index();
+ if (am.isTypeModified()
+ && !d->applyTypeModification(this, am.modifiedType(),
+ n, &errorMessage)) {
+ throw Exception(errorMessage);
+ } else if (am.isRemoved() && n != 0) {
+ if (n < 1 || n > d->m_arguments.size()) {
+ errorMessage =
+ msgArgumentRemovalFailed(this, n,
+ msgArgumentOutOfRange(n, 1, d->m_arguments.size()));
+ throw Exception(errorMessage);
+ }
+ d->m_arguments[n - 1].setModifiedRemoved(true);
+ }
+ }
+ }
+}
+
QString AbstractMetaFunction::pyiTypeReplaced(int argumentIndex) const
{
for (const auto &modification : modifications(declaringClass())) {
@@ -820,28 +997,26 @@ QString AbstractMetaFunction::pyiTypeReplaced(int argumentIndex) const
QString AbstractMetaFunctionPrivate::formatMinimalSignature(const AbstractMetaFunction *q,
bool comment) const
{
- QString result = m_originalName + QLatin1Char('(');
- for (int i = 0; i < m_arguments.count(); ++i) {
+ QString result = m_originalName + u'(';
+ for (qsizetype i = 0; i < m_arguments.size(); ++i) {
+ const auto &argument = m_arguments.at(i);
if (i > 0)
- result += QLatin1Char(',');
-
- QString typeName;
- if (comment)
- typeName = q->typeReplaced(i + 1);
- if (typeName.isEmpty())
- typeName = m_arguments.at(i).type().minimalSignature();
- result += typeName;
+ result += u',';
+
+ const auto &type = comment ? argument.modifiedType() : argument.type();
+ result += type.minimalSignature();
+ if (comment && argument.hasDefaultValueExpression())
+ result += u'=';
}
- result += QLatin1Char(')');
+ result += u')';
if (m_constant)
- result += QLatin1String("const");
+ result += u"const"_s;
result = TypeDatabase::normalizedSignature(result);
if (comment && !q->isVoid()) {
- QString typeName = q->typeReplaced(0);
- if (typeName.isEmpty())
- typeName = q->type().minimalSignature();
- result += QStringLiteral("->") + typeName;
+ result += u"->"_s;
+ result += q->isTypeModified()
+ ? q->modifiedTypeName() : q->type().minimalSignature();
}
return result;
}
@@ -853,6 +1028,14 @@ QString AbstractMetaFunction::minimalSignature() const
return d->m_cachedMinimalSignature;
}
+QStringList AbstractMetaFunction::modificationSignatures() const
+{
+ QStringList result{minimalSignature()};
+ if (d->m_unresolvedSignature != result.constFirst())
+ result.append(d->m_unresolvedSignature);
+ return result;
+}
+
QString AbstractMetaFunction::signatureComment() const
{
return d->formatMinimalSignature(this, true);
@@ -861,25 +1044,28 @@ QString AbstractMetaFunction::signatureComment() const
QString AbstractMetaFunction::debugSignature() const
{
QString result;
- const bool isOverride = attributes() & AbstractMetaFunction::OverriddenCppMethod;
- const bool isFinal = attributes() & AbstractMetaFunction::FinalCppMethod;
- if (!isOverride && !isFinal && (attributes() & AbstractMetaFunction::VirtualCppMethod))
- result += QLatin1String("virtual ");
+ const auto attributes = cppAttributes();
+ const bool isOverride = attributes.testFlag(FunctionAttribute::Override);
+ const bool isFinal = attributes.testFlag(FunctionAttribute::Final);
+ if (!isOverride && !isFinal && (attributes.testFlag(FunctionAttribute::Virtual)))
+ result += u"virtual "_s;
+ if (d->m_implementingClass)
+ result += d->m_implementingClass->qualifiedCppName() + u"::"_s;
result += minimalSignature();
if (isOverride)
- result += QLatin1String(" override");
+ result += u" override"_s;
if (isFinal)
- result += QLatin1String(" final");
+ result += u" final"_s;
return result;
}
FunctionModificationList AbstractMetaFunction::findClassModifications(const AbstractMetaFunction *f,
- const AbstractMetaClass *implementor)
+ AbstractMetaClassCPtr implementor)
{
- const QString signature = f->minimalSignature();
+ const auto signatures = f->modificationSignatures();
FunctionModificationList mods;
while (implementor) {
- mods += implementor->typeEntry()->functionModifications(signature);
+ mods += implementor->typeEntry()->functionModifications(signatures);
if ((implementor == implementor->baseClass()) ||
(implementor == f->implementingClass() && !mods.isEmpty())) {
break;
@@ -891,15 +1077,16 @@ FunctionModificationList AbstractMetaFunction::findClassModifications(const Abst
FunctionModificationList AbstractMetaFunction::findGlobalModifications(const AbstractMetaFunction *f)
{
- return TypeDatabase::instance()->functionModifications(f->minimalSignature());
+ auto *td = TypeDatabase::instance();
+ return td->globalFunctionModifications(f->modificationSignatures());
}
const FunctionModificationList &
AbstractMetaFunctionPrivate::modifications(const AbstractMetaFunction *q,
- const AbstractMetaClass *implementor) const
+ const AbstractMetaClassCPtr &implementor) const
{
- if (!m_addedFunction.isNull())
- return m_addedFunction->modifications;
+ if (m_addedFunction)
+ return m_addedFunction->modifications();
for (const auto &ce : m_modificationCache) {
if (ce.klass == implementor)
return ce.modifications;
@@ -913,9 +1100,9 @@ const FunctionModificationList &
}
const FunctionModificationList &
- AbstractMetaFunction::modifications(const AbstractMetaClass *implementor) const
+ AbstractMetaFunction::modifications(AbstractMetaClassCPtr implementor) const
{
- if (implementor == nullptr)
+ if (!implementor)
implementor = d->m_class;
return d->modifications(this, implementor);
}
@@ -925,9 +1112,15 @@ void AbstractMetaFunction::clearModificationsCache()
d->m_modificationCache.clear();
}
+const DocModificationList AbstractMetaFunction::addedFunctionDocModifications() const
+{
+ return d->m_addedFunction
+ ? d->m_addedFunction->docModifications() : DocModificationList{};
+}
+
QString AbstractMetaFunction::argumentName(int index,
bool /* create */,
- const AbstractMetaClass * /* implementor */) const
+ AbstractMetaClassCPtr /* implementor */) const
{
return d->m_arguments[--index].name();
}
@@ -942,19 +1135,30 @@ void AbstractMetaFunction::setPropertySpecIndex(int i)
d->m_propertySpecIndex = i;
}
-FunctionTypeEntry *AbstractMetaFunction::typeEntry() const
+FunctionTypeEntryPtr AbstractMetaFunction::typeEntry() const
{
return d->m_typeEntry;
}
-void AbstractMetaFunction::setTypeEntry(FunctionTypeEntry *typeEntry)
+void AbstractMetaFunction::setTypeEntry(const FunctionTypeEntryPtr &typeEntry)
{
d->m_typeEntry = typeEntry;
}
+QString AbstractMetaFunction::targetLangPackage() const
+{
+ if (d->m_addedFunction != nullptr)
+ return d->m_addedFunction->targetLangPackage();
+ if (d->m_class != nullptr)
+ return d->m_class->typeEntry()->targetLangPackage();
+ if (d->m_typeEntry != nullptr)
+ return d->m_typeEntry->targetLangPackage();
+ return {};
+}
+
bool AbstractMetaFunction::isCallOperator() const
{
- return d->m_name == QLatin1String("operator()");
+ return d->m_name == u"operator()";
}
bool AbstractMetaFunction::hasInjectedCode() const
@@ -1035,7 +1239,7 @@ bool AbstractMetaFunction::hasSignatureModifications() const
bool AbstractMetaFunction::isConversionOperator(const QString &funcName)
{
- return funcName.startsWith(QLatin1String("operator "));
+ return funcName.startsWith(u"operator ");
}
ExceptionSpecification AbstractMetaFunction::exceptionSpecification() const
@@ -1048,12 +1252,12 @@ void AbstractMetaFunction::setExceptionSpecification(ExceptionSpecification e)
d->m_exceptionSpecification = e;
}
-static inline TypeSystem::ExceptionHandling exceptionMod(const AbstractMetaClass *klass)
+static inline TypeSystem::ExceptionHandling exceptionMod(const AbstractMetaClassCPtr &klass)
{
return klass->typeEntry()->exceptionHandling();
}
-static inline bool hasExceptionMod(const AbstractMetaClass *klass)
+static inline bool hasExceptionMod(const AbstractMetaClassCPtr &klass)
{
return exceptionMod(klass) != TypeSystem::ExceptionHandling::Unspecified;
}
@@ -1106,11 +1310,11 @@ bool AbstractMetaFunction::isOperatorOverload(const QString &funcName)
if (isConversionOperator(funcName))
return true;
- static const QRegularExpression opRegEx(QLatin1String("^operator([+\\-\\*/%=&\\|\\^\\<>!][=]?"
+ static const QRegularExpression opRegEx(u"^operator([+\\-\\*/%=&\\|\\^\\<>!][=]?"
"|\\+\\+|\\-\\-|&&|\\|\\||<<[=]?|>>[=]?|~"
"|\\[\\]|\\s+delete\\[?\\]?"
"|\\(\\)"
- "|\\s+new\\[?\\]?)$"));
+ "|\\s+new\\[?\\]?)$"_s);
Q_ASSERT(opRegEx.isValid());
return opRegEx.match(funcName).hasMatch();
}
@@ -1137,22 +1341,27 @@ bool AbstractMetaFunction::isComparisonOperator() const
return d->m_functionType == ComparisonOperator;
}
+bool AbstractMetaFunction::isSymmetricalComparisonOperator() const
+{
+ if (d->m_functionType != ComparisonOperator || d->m_class == nullptr)
+ return false;
+ AbstractMetaType classType(d->m_class->typeEntry());
+ classType.decideUsagePattern();
+ return std::all_of(d->m_arguments.constBegin(), d->m_arguments.constEnd(),
+ [classType](const AbstractMetaArgument &a) {
+ return a.type().isEquivalent(classType);});
+}
+
bool AbstractMetaFunction::isIncDecrementOperator() const
{
return d->m_functionType == IncrementOperator
|| d->m_functionType == DecrementOperator;
}
-
bool AbstractMetaFunction::isLogicalOperator() const
{
return d->m_functionType == LogicalOperator;
}
-bool AbstractMetaFunction::isSubscriptOperator() const
-{
- return d->m_functionType == SubscriptOperator;
-}
-
bool AbstractMetaFunction::isAssignmentOperator() const
{
return d->m_functionType == AssignmentOperatorFunction
@@ -1202,7 +1411,7 @@ bool AbstractMetaFunction::isInplaceOperator() const
bool AbstractMetaFunction::isVirtual() const
{
- return d->m_attributes.testFlag(AbstractMetaFunction::VirtualCppMethod);
+ return d->m_cppAttributes.testFlag(FunctionAttribute::Virtual);
}
QString AbstractMetaFunctionPrivate::modifiedName(const AbstractMetaFunction *q) const
@@ -1227,7 +1436,7 @@ QString AbstractMetaFunction::modifiedName() const
AbstractMetaFunctionCPtr
AbstractMetaFunction::find(const AbstractMetaFunctionCList &haystack,
- const QString &needle)
+ QAnyStringView needle)
{
for (const auto &f : haystack) {
if (f->name() == needle)
@@ -1265,6 +1474,8 @@ bool AbstractMetaFunction::matches(OperatorQueryOptions query) const
break;
case AbstractMetaFunction::ComparisonOperator:
result = query.testFlag(OperatorQueryOption::ComparisonOp);
+ if (!result && query.testFlag(OperatorQueryOption::SymmetricalComparisonOp))
+ result = isSymmetricalComparisonOperator();
break;
default:
break;
@@ -1323,17 +1534,14 @@ TypeSystem::SnakeCase AbstractMetaFunction::snakeCase() const
return mod.snakeCase();
}
- if (d->m_typeEntry) { // Global function
- const auto snakeCase = d->m_typeEntry->snakeCase();
- return snakeCase != TypeSystem::SnakeCase::Unspecified
- ? snakeCase : d->m_typeEntry->typeSystemTypeEntry()->snakeCase();
- }
+ if (d->m_typeEntry) // Global function
+ return typeSystemTypeEntry(d->m_typeEntry)->snakeCase();
if (d->m_class) {
auto typeEntry = d->m_class->typeEntry();
const auto snakeCase = typeEntry->snakeCase();
return snakeCase != TypeSystem::SnakeCase::Unspecified
- ? snakeCase : typeEntry->typeSystemTypeEntry()->snakeCase();
+ ? snakeCase : typeSystemTypeEntry(typeEntry)->snakeCase();
}
return TypeSystem::SnakeCase::Disabled;
}
@@ -1347,7 +1555,7 @@ bool AbstractMetaFunction::injectedCodeUsesPySelf() const
bool AbstractMetaFunction::injectedCodeCallsPythonOverride() const
{
static const QRegularExpression
- overrideCallRegexCheck(QStringLiteral(R"(PyObject_Call\s*\(\s*%PYTHON_METHOD_OVERRIDE\s*,)"));
+ overrideCallRegexCheck(R"(PyObject_Call\s*\(\s*%PYTHON_METHOD_OVERRIDE\s*,)"_L1);
Q_ASSERT(overrideCallRegexCheck.isValid());
return injectedCodeContains(overrideCallRegexCheck, TypeSystem::CodeSnipPositionAny,
TypeSystem::NativeCode);
@@ -1357,13 +1565,13 @@ bool AbstractMetaFunction::injectedCodeHasReturnValueAttribution(TypeSystem::Lan
{
if (language == TypeSystem::TargetLangCode) {
static const QRegularExpression
- retValAttributionRegexCheck_target(QStringLiteral(R"(%PYARG_0\s*=[^=]\s*.+)"));
+ retValAttributionRegexCheck_target(R"(%PYARG_0\s*=[^=]\s*.+)"_L1);
Q_ASSERT(retValAttributionRegexCheck_target.isValid());
return injectedCodeContains(retValAttributionRegexCheck_target, TypeSystem::CodeSnipPositionAny, language);
}
static const QRegularExpression
- retValAttributionRegexCheck_native(QStringLiteral(R"(%0\s*=[^=]\s*.+)"));
+ retValAttributionRegexCheck_native(R"(%0\s*=[^=]\s*.+)"_L1);
Q_ASSERT(retValAttributionRegexCheck_native.isValid());
return injectedCodeContains(retValAttributionRegexCheck_native, TypeSystem::CodeSnipPositionAny, language);
}
@@ -1387,6 +1595,38 @@ bool AbstractMetaFunction::isVisibilityModifiedToPrivate() const
return false;
}
+struct ComparisonOperator
+{
+ const char *cppOperator;
+ const char *pythonOpCode;
+};
+
+using ComparisonOperatorMapping =
+ QHash<AbstractMetaFunction::ComparisonOperatorType, ComparisonOperator>;
+
+static const ComparisonOperatorMapping &comparisonOperatorMapping()
+{
+ static const ComparisonOperatorMapping result = {
+ {AbstractMetaFunction::OperatorEqual, {"==", "Py_EQ"}},
+ {AbstractMetaFunction::OperatorNotEqual, {"!=", "Py_NE"}},
+ {AbstractMetaFunction::OperatorLess, {"<", "Py_LT"}},
+ {AbstractMetaFunction::OperatorLessEqual, {"<=", "Py_LE"}},
+ {AbstractMetaFunction::OperatorGreater, {">", "Py_GT"}},
+ {AbstractMetaFunction::OperatorGreaterEqual, {">=", "Py_GE"}}
+ };
+ return result;
+}
+
+const char * AbstractMetaFunction::pythonRichCompareOpCode(ComparisonOperatorType ct)
+{
+ return comparisonOperatorMapping().value(ct).pythonOpCode;
+}
+
+const char * AbstractMetaFunction::cppComparisonOperator(ComparisonOperatorType ct)
+{
+ return comparisonOperatorMapping().value(ct).cppOperator;
+}
+
#ifndef QT_NO_DEBUG_STREAM
void AbstractMetaFunction::formatDebugBrief(QDebug &debug) const
{
@@ -1412,12 +1652,15 @@ void AbstractMetaFunction::formatDebugVerbose(QDebug &debug) const
if (d->m_exceptionHandlingModification != TypeSystem::ExceptionHandling::Unspecified)
debug << " exeption-mod " << int(d->m_exceptionHandlingModification);
debug << '(';
- for (int i = 0, count = d->m_arguments.size(); i < count; ++i) {
+ for (qsizetype i = 0, count = d->m_arguments.size(); i < count; ++i) {
if (i)
debug << ", ";
debug << d->m_arguments.at(i);
}
- debug << "), signature=\"" << minimalSignature() << '"';
+ const QString signature = minimalSignature();
+ debug << "), signature=\"" << signature << '"';
+ if (signature != d->m_unresolvedSignature)
+ debug << ", unresolvedSignature=\"" << d->m_unresolvedSignature << '"';
if (d->m_constant)
debug << " [const]";
if (d->m_reverse)
@@ -1426,9 +1669,9 @@ void AbstractMetaFunction::formatDebugVerbose(QDebug &debug) const
debug << " [userAdded]";
if (isUserDeclared())
debug << " [userDeclared]";
- if (d->m_explicit)
+ if (d->m_cppAttributes.testFlag(FunctionAttribute::Explicit))
debug << " [explicit]";
- if (attributes().testFlag(AbstractMetaFunction::Deprecated))
+ if (d->m_cppAttributes.testFlag(FunctionAttribute::Deprecated))
debug << " [deprecated]";
if (d->m_pointerOperator)
debug << " [operator->]";
diff --git a/sources/shiboken6/ApiExtractor/abstractmetafunction.h b/sources/shiboken6/ApiExtractor/abstractmetafunction.h
index 415fc4ae2..e252e439d 100644
--- a/sources/shiboken6/ApiExtractor/abstractmetafunction.h
+++ b/sources/shiboken6/ApiExtractor/abstractmetafunction.h
@@ -1,42 +1,21 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef ABSTRACTMETAFUNCTION_H
#define ABSTRACTMETAFUNCTION_H
#include "abstractmetalang_enums.h"
#include "abstractmetalang_typedefs.h"
-#include "abstractmetaargument.h"
#include "typesystem_enums.h"
+#include "modifications_typedefs.h"
#include "typesystem_typedefs.h"
+#include "parser/codemodel_enums.h"
+#include <QtCore/QMetaObject>
#include <QtCore/QScopedPointer>
+#include <optional>
+
QT_FORWARD_DECLARE_CLASS(QDebug)
QT_FORWARD_DECLARE_CLASS(QRegularExpression)
@@ -53,6 +32,8 @@ class AbstractMetaFunction
{
Q_GADGET
public:
+ Q_DISABLE_COPY_MOVE(AbstractMetaFunction)
+
enum FunctionType {
ConstructorFunction,
CopyConstructorFunction,
@@ -84,6 +65,12 @@ public:
};
Q_ENUM(FunctionType)
+ enum ComparisonOperatorType {
+ OperatorEqual, OperatorNotEqual, OperatorLess, OperatorLessEqual,
+ OperatorGreater, OperatorGreaterEqual
+ };
+ Q_ENUM(ComparisonOperatorType)
+
enum CompareResultFlag {
EqualName = 0x00000001,
EqualArguments = 0x00000002,
@@ -105,29 +92,18 @@ public:
enum Attribute {
None = 0x00000000,
- Friendly = 0x00000001,
-
- Abstract = 0x00000002,
- Static = 0x00000004,
ClassMethod = 0x00000008,
- FinalInTargetLang = 0x00000010,
-
GetterFunction = 0x00000020,
SetterFunction = 0x00000040,
PropertyReader = 0x00000100,
PropertyWriter = 0x00000200,
PropertyResetter = 0x00000400,
+ PropertyNotify = 0x00000800,
- Invokable = 0x00001000,
-
- VirtualCppMethod = 0x00010000,
- OverriddenCppMethod = 0x00020000,
- FinalCppMethod = 0x00040000,
// Add by meta builder (implicit constructors, inherited methods, etc)
AddedMethod = 0x001000000,
- Deprecated = 0x002000000
};
Q_DECLARE_FLAGS(Attributes, Attribute)
Q_FLAG(Attribute)
@@ -138,17 +114,33 @@ public:
void operator+=(Attribute attribute);
void operator-=(Attribute attribute);
- bool isFinalInTargetLang() const;
+ FunctionAttributes cppAttributes() const;
+ void setCppAttributes(FunctionAttributes a);
+ void setCppAttribute(FunctionAttribute a, bool on = true);
+
+ enum class Flag { // Internal flags not relevant for comparing functions
+ // Binary operator whose leading/trailing argument was removed by metabuilder
+ OperatorLeadingClassArgumentRemoved = 0x1,
+ OperatorTrailingClassArgumentRemoved = 0x2,
+ OperatorClassArgumentByValue = 0x4, // The removed class argument was passed by value
+ InheritedFromTemplate = 0x8, // Inherited from a template in metabuilder
+ HiddenFriend = 0x10,
+ PrivateSignal = 0x20 // Private Qt signal (cannot emit from client code)
+ };
+ Q_DECLARE_FLAGS(Flags, Flag)
+
+ Flags flags() const;
+ void setFlags(Flags f);
+
bool isAbstract() const;
bool isClassMethod() const;
bool isStatic() const;
- bool isInvokable() const;
bool isPropertyReader() const;
bool isPropertyWriter() const;
bool isPropertyResetter() const;
- bool isFriendly() const;
AbstractMetaFunction();
+ explicit AbstractMetaFunction(const QString &name);
explicit AbstractMetaFunction(const AddedFunctionPtr &addedFunc);
~AbstractMetaFunction();
@@ -210,9 +202,11 @@ public:
bool isArithmeticOperator() const;
bool isBitwiseOperator() const; // Includes shift operator
bool isComparisonOperator() const;
+ /// Returns whether this is a comparison accepting owner class
+ /// (bool operator==(QByteArray,QByteArray) but not bool operator==(QByteArray,const char *)
+ bool isSymmetricalComparisonOperator() const;
bool isIncDecrementOperator() const;
bool isLogicalOperator() const;
- bool isSubscriptOperator() const;
bool isAssignmentOperator() const; // Assignment or move assignment
bool isGetter() const;
/// Returns whether it is a Qt-style isNull() method suitable for nb_bool
@@ -233,12 +227,15 @@ public:
QString modifiedName() const;
QString minimalSignature() const;
+ /// List of signatures matched for modifications
+ QStringList modificationSignatures() const;
// Signature with replaced argument types and return type for overload
// decisor comment.
QString signatureComment() const;
QString debugSignature() const; // including virtual/override/final, etc., for debugging only.
- bool isModifiedRemoved(const AbstractMetaClass *cls = nullptr) const;
+ bool isModifiedRemoved(AbstractMetaClassCPtr cls = {}) const;
+ bool isModifiedFinal(AbstractMetaClassCPtr cls = {}) const;
bool isVoid() const;
@@ -246,25 +243,27 @@ public:
void setType(const AbstractMetaType &type);
// The class that has this function as a member.
- const AbstractMetaClass *ownerClass() const;
- void setOwnerClass(const AbstractMetaClass *cls);
+ AbstractMetaClassCPtr ownerClass() const;
+ void setOwnerClass(const AbstractMetaClassCPtr &cls);
// Owner excluding invisible namespaces
- const AbstractMetaClass *targetLangOwner() const;
+ AbstractMetaClassCPtr targetLangOwner() const;
// The first class in a hierarchy that declares the function
- const AbstractMetaClass *declaringClass() const;
- void setDeclaringClass(const AbstractMetaClass *cls);
+ AbstractMetaClassCPtr declaringClass() const;
+ void setDeclaringClass(const AbstractMetaClassCPtr &cls);
// The class that actually implements this function
- const AbstractMetaClass *implementingClass() const;
- void setImplementingClass(const AbstractMetaClass *cls);
+ AbstractMetaClassCPtr implementingClass() const;
+ void setImplementingClass(const AbstractMetaClassCPtr &cls);
const AbstractMetaArgumentList &arguments() const;
AbstractMetaArgumentList &arguments();
void setArguments(const AbstractMetaArgumentList &arguments);
void addArgument(const AbstractMetaArgument &argument);
int actualMinimumArgumentCount() const;
+ // Return the argument index accounting for the isModifiedRemoved arguments [0..n-1]
+ int actualArgumentIndex(int index) const;
bool isDeprecated() const;
bool isDestructor() const { return functionType() == DestructorFunction; }
@@ -276,20 +275,32 @@ public:
bool isSignal() const { return functionType() == SignalFunction; }
bool isSlot() const { return functionType() == SlotFunction; }
bool isEmptyFunction() const { return functionType() == EmptyFunction; }
+ bool maybeAccessor() const;
FunctionType functionType() const;
void setFunctionType(FunctionType type);
+ std::optional<ComparisonOperatorType> comparisonOperatorType() const;
+
bool usesRValueReferences() const;
bool generateBinding() const;
+ // Returns whether the function is contained in the positive list of the
+ // type entry if one is specified.
+ bool isWhiteListed() const;
- QStringList introspectionCompatibleSignatures(const QStringList &resolvedArguments = QStringList()) const;
QString signature() const;
+ /// Return a signature qualified by class name, for error reporting.
+ QString classQualifiedSignature() const;
+
+ /// Signature with unresolved typedefs as seen by the code parser
+ QString unresolvedSignature() const;
+ void setUnresolvedSignature(const QString &);
bool isConstant() const;
void setConstant(bool constant);
/// Returns true if the AbstractMetaFunction was added by the user via the type system description.
bool isUserAdded() const;
+ bool isUserAddedPythonOverride() const;
/// Returns true if the AbstractMetaFunction was declared by the user via
/// the type system description.
bool isUserDeclared() const;
@@ -302,15 +313,23 @@ public:
AbstractMetaFunction *copy() const;
QString conversionRule(TypeSystem::Language language, int idx) const;
- QList<ReferenceCount> referenceCounts(const AbstractMetaClass *cls, int idx = -2) const;
- ArgumentOwner argumentOwner(const AbstractMetaClass *cls, int idx) const;
+ bool hasConversionRule(TypeSystem::Language language, int idx) const;
+ QList<ReferenceCount>
+ referenceCounts(const AbstractMetaClassCPtr &cls, int idx = -2) const;
+ ArgumentOwner argumentOwner(const AbstractMetaClassCPtr &cls, int idx) const;
// Returns the ownership rules for the given argument (target lang).
- TypeSystem::Ownership argumentTargetOwnership(const AbstractMetaClass *cls, int idx) const;
+ TypeSystem::Ownership
+ argumentTargetOwnership(const AbstractMetaClassCPtr &cls, int idx) const;
+
+ const QString &modifiedTypeName() const;
+ bool isTypeModified() const { return !modifiedTypeName().isEmpty(); }
+ bool generateOpaqueContainerReturn() const;
- QString typeReplaced(int argument_index) const;
bool isModifiedToArray(int argumentIndex) const;
+ void applyTypeModifications();
+
/// Return the (modified) type for the signature; modified-pyi-type, modified-type
QString pyiTypeReplaced(int argumentIndex) const;
@@ -341,29 +360,32 @@ public:
*/
bool hasSignatureModifications() const;
- const FunctionModificationList &modifications(const AbstractMetaClass *implementor = nullptr) const;
+ const FunctionModificationList &modifications(AbstractMetaClassCPtr implementor = {}) const;
void clearModificationsCache();
+ const DocModificationList addedFunctionDocModifications() const;
+
static FunctionModificationList findClassModifications(const AbstractMetaFunction *f,
- const AbstractMetaClass *implementor);
+ AbstractMetaClassCPtr implementor);
static FunctionModificationList findGlobalModifications(const AbstractMetaFunction *f);
/**
* Return the argument name if there is a modification the renamed value will be returned
*/
- QString argumentName(int index, bool create = true, const AbstractMetaClass *cl = nullptr) const;
+ QString argumentName(int index, bool create = true, AbstractMetaClassCPtr cl = {}) const;
int propertySpecIndex() const;
void setPropertySpecIndex(int i);
- FunctionTypeEntry* typeEntry() const;
+ FunctionTypeEntryPtr typeEntry() const;
+ void setTypeEntry(const FunctionTypeEntryPtr &typeEntry);
- void setTypeEntry(FunctionTypeEntry* typeEntry);
+ QString targetLangPackage() const;
bool isCallOperator() const;
static AbstractMetaFunctionCPtr
- find(const AbstractMetaFunctionCList &haystack, const QString &needle);
+ find(const AbstractMetaFunctionCList &haystack, QAnyStringView needle);
bool matches(OperatorQueryOptions) const;
@@ -409,6 +431,9 @@ public:
SourceLocation sourceLocation() const;
void setSourceLocation(const SourceLocation &sourceLocation);
+ static const char *pythonRichCompareOpCode(ComparisonOperatorType ct);
+ static const char *cppComparisonOperator(ComparisonOperatorType ct);
+
private:
template <class Predicate>
bool traverseCodeSnips(Predicate predicate,
@@ -419,19 +444,14 @@ private:
QScopedPointer<AbstractMetaFunctionPrivate> d;
};
-inline bool AbstractMetaFunction::isFinalInTargetLang() const
-{
- return attributes().testFlag(FinalInTargetLang);
-}
-
inline bool AbstractMetaFunction::isAbstract() const
{
- return attributes().testFlag(Abstract);
+ return cppAttributes().testFlag(FunctionAttribute::Abstract);
}
inline bool AbstractMetaFunction::isStatic() const
{
- return attributes().testFlag(Static);
+ return cppAttributes().testFlag(FunctionAttribute::Static);
}
inline bool AbstractMetaFunction::isClassMethod() const
@@ -439,11 +459,6 @@ inline bool AbstractMetaFunction::isClassMethod() const
return attributes().testFlag(ClassMethod);
}
-inline bool AbstractMetaFunction::isInvokable() const
-{
- return attributes().testFlag(Invokable);
-}
-
inline bool AbstractMetaFunction::isPropertyReader() const
{
return attributes().testFlag(PropertyReader);
@@ -459,15 +474,12 @@ inline bool AbstractMetaFunction::isPropertyResetter() const
return attributes().testFlag(PropertyResetter);
}
-inline bool AbstractMetaFunction::isFriendly() const
-{
- return attributes().testFlag(Friendly);
-}
-
Q_DECLARE_OPERATORS_FOR_FLAGS(AbstractMetaFunction::CompareResult)
Q_DECLARE_OPERATORS_FOR_FLAGS(AbstractMetaFunction::Attributes);
+Q_DECLARE_OPERATORS_FOR_FLAGS(AbstractMetaFunction::Flags);
+
#ifndef QT_NO_DEBUG_STREAM
QDebug operator<<(QDebug debug, const AbstractMetaFunction *af);
#endif
diff --git a/sources/shiboken6/ApiExtractor/abstractmetalang.cpp b/sources/shiboken6/ApiExtractor/abstractmetalang.cpp
index 3e42f40ac..fb49cc9d0 100644
--- a/sources/shiboken6/ApiExtractor/abstractmetalang.cpp
+++ b/sources/shiboken6/ApiExtractor/abstractmetalang.cpp
@@ -1,36 +1,15 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "abstractmetalang.h"
+#include "anystringview_helpers.h"
#include "abstractmetalang_helpers.h"
+#include "abstractmetaargument.h"
#include "abstractmetaenum.h"
#include "abstractmetafunction.h"
+#include "abstractmetatype.h"
#include "abstractmetafield.h"
+#include "parser/codemodel.h"
#include "documentation.h"
#include "messages.h"
#include "modifications.h"
@@ -38,13 +17,18 @@
#include "reporthandler.h"
#include "sourcelocation.h"
#include "typedatabase.h"
-#include "typesystem.h"
+#include "enumtypeentry.h"
+#include "namespacetypeentry.h"
#include "usingmember.h"
+#include "qtcompat.h"
+
#include <QtCore/QDebug>
#include <algorithm>
+using namespace Qt::StringLiterals;
+
bool function_sorter(const AbstractMetaFunctionCPtr &a, const AbstractMetaFunctionCPtr &b)
{
return a->signature() < b->signature();
@@ -66,9 +50,6 @@ public:
m_hasPrivateDestructor(false),
m_hasProtectedDestructor(false),
m_hasVirtualDestructor(false),
- m_hasHashFunction(false),
- m_hasEqualsOperator(false),
- m_hasCloneOperator(false),
m_isTypeDef(false),
m_hasToStringCapability(false),
m_valueTypeWithCopyConstructorOnly(false),
@@ -76,20 +57,23 @@ public:
{
}
- ~AbstractMetaClassPrivate()
- {
- qDeleteAll(m_templateArgs);
- }
-
void addFunction(const AbstractMetaFunctionCPtr &function);
+ static AbstractMetaFunction *
+ createFunction(const QString &name, AbstractMetaFunction::FunctionType t,
+ Access access, const AbstractMetaArgumentList &arguments,
+ const AbstractMetaType &returnType, const AbstractMetaClassPtr &q);
void addConstructor(AbstractMetaFunction::FunctionType t,
Access access,
const AbstractMetaArgumentList &arguments,
- AbstractMetaClass *q);
- void addUsingConstructors(AbstractMetaClass *q);
- bool isUsingMember(const AbstractMetaClass *c, const QString &memberName,
+ const AbstractMetaClassPtr &q);
+ void addUsingConstructors(const AbstractMetaClassPtr &q);
+ void sortFunctions();
+ void setFunctions(const AbstractMetaFunctionCList &functions,
+ const AbstractMetaClassCPtr &q);
+ bool isUsingMember(const AbstractMetaClassCPtr &c, const QString &memberName,
Access minimumAccess) const;
bool hasConstructors() const;
+ qsizetype indexOfProperty(const QString &name) const;
uint m_hasVirtuals : 1;
uint m_isPolymorphic : 1;
@@ -103,9 +87,6 @@ public:
uint m_hasPrivateDestructor : 1;
uint m_hasProtectedDestructor : 1;
uint m_hasVirtualDestructor : 1;
- uint m_hasHashFunction : 1;
- uint m_hasEqualsOperator : 1;
- uint m_hasCloneOperator : 1;
uint m_isTypeDef : 1;
uint m_hasToStringCapability : 1;
uint m_valueTypeWithCopyConstructorOnly : 1;
@@ -113,24 +94,26 @@ public:
Documentation m_doc;
- const AbstractMetaClass *m_enclosingClass = nullptr;
- AbstractMetaClass *m_defaultSuperclass = nullptr;
- AbstractMetaClassList m_baseClasses; // Real base classes after setting up inheritance
+ AbstractMetaClassCPtr m_enclosingClass;
+ AbstractMetaClassCPtr m_defaultSuperclass;
+ AbstractMetaClassCList m_baseClasses; // Real base classes after setting up inheritance
AbstractMetaTypeList m_baseTemplateInstantiations;
- const AbstractMetaClass *m_extendedNamespace = nullptr;
+ AbstractMetaClassCPtr m_extendedNamespace;
- const AbstractMetaClass *m_templateBaseClass = nullptr;
+ AbstractMetaClassCPtr m_templateBaseClass;
AbstractMetaFunctionCList m_functions;
+ AbstractMetaFunctionCList m_userAddedPythonOverrides;
AbstractMetaFieldList m_fields;
AbstractMetaEnumList m_enums;
QList<QPropertySpec> m_propertySpecs;
- AbstractMetaClassList m_innerClasses;
+ AbstractMetaClassCList m_innerClasses;
+ QString m_hashFunction;
AbstractMetaFunctionCList m_externalConversionOperators;
QStringList m_baseClassNames; // Base class names from C++, including rejected
- TypeEntries m_templateArgs;
- ComplexTypeEntry *m_typeEntry = nullptr;
+ TypeEntryCList m_templateArgs;
+ ComplexTypeEntryPtr m_typeEntry;
SourceLocation m_sourceLocation;
UsingMembers m_usingMembers;
@@ -195,29 +178,16 @@ AbstractMetaFunctionCList AbstractMetaClass::functionsInTargetLang() const
FunctionQueryOptions default_flags = FunctionQueryOption::NormalFunctions
| FunctionQueryOption::Visible | FunctionQueryOption::NotRemoved;
- // Only public functions in final classes
- // default_flags |= isFinal() ? WasPublic : 0;
- FunctionQueryOptions public_flags;
- if (isFinalInTargetLang())
- public_flags |= FunctionQueryOption::WasPublic;
-
// Constructors
- AbstractMetaFunctionCList returned = queryFunctions(FunctionQueryOption::Constructors
- | default_flags | public_flags);
-
- // Final functions
- returned += queryFunctions(FunctionQueryOption::FinalInTargetLangFunctions
- | FunctionQueryOption::NonStaticFunctions
- | default_flags | public_flags);
+ AbstractMetaFunctionCList returned = queryFunctions(FunctionQueryOption::AnyConstructor
+ | default_flags);
- // Virtual functions
- returned += queryFunctions(FunctionQueryOption::VirtualInTargetLangFunctions
- | FunctionQueryOption::NonStaticFunctions
- | default_flags | public_flags);
+ returned += queryFunctions(FunctionQueryOption::NonStaticFunctions
+ | default_flags);
// Static functions
returned += queryFunctions(FunctionQueryOption::StaticFunctions
- | default_flags | public_flags);
+ | default_flags);
// Empty, private functions, since they aren't caught by the other ones
returned += queryFunctions(FunctionQueryOption::Empty | FunctionQueryOption::Invisible);
@@ -227,7 +197,7 @@ AbstractMetaFunctionCList AbstractMetaClass::functionsInTargetLang() const
AbstractMetaFunctionCList AbstractMetaClass::implicitConversions() const
{
- if (!hasCloneOperator() && !hasExternalConversionOperators())
+ if (!isCopyConstructible() && !hasExternalConversionOperators())
return {};
AbstractMetaFunctionCList returned;
@@ -239,7 +209,6 @@ AbstractMetaFunctionCList AbstractMetaClass::implicitConversions() const
for (const auto &f : list) {
if ((f->actualMinimumArgumentCount() == 1 || f->arguments().size() == 1 || f->isConversionOperator())
&& !f->isExplicit()
- && f->functionType() != AbstractMetaFunction::CopyConstructorFunction
&& !f->usesRValueReferences()
&& !f->isModifiedRemoved()
&& f->wasPublic()) {
@@ -337,15 +306,15 @@ bool AbstractMetaClass::hasStaticFields() const
void AbstractMetaClass::sortFunctions()
{
- std::sort(d->m_functions.begin(), d->m_functions.end(), function_sorter);
+ d->sortFunctions();
}
-const AbstractMetaClass *AbstractMetaClass::templateBaseClass() const
+AbstractMetaClassCPtr AbstractMetaClass::templateBaseClass() const
{
return d->m_templateBaseClass;
}
-void AbstractMetaClass::setTemplateBaseClass(const AbstractMetaClass *cls)
+void AbstractMetaClass::setTemplateBaseClass(const AbstractMetaClassCPtr &cls)
{
d->m_templateBaseClass = cls;
}
@@ -355,48 +324,29 @@ const AbstractMetaFunctionCList &AbstractMetaClass::functions() const
return d->m_functions;
}
-void AbstractMetaClass::setFunctions(const AbstractMetaFunctionCList &functions)
-{
- d->m_functions = functions;
-
- // Functions must be sorted by name before next loop
- sortFunctions();
-
- for (const auto &f : qAsConst(d->m_functions)) {
- qSharedPointerConstCast<AbstractMetaFunction>(f)->setOwnerClass(this);
- if (!f->isPublic())
- d->m_hasNonpublic = true;
- }
-}
-
-bool AbstractMetaClass::hasDefaultToStringFunction() const
+const AbstractMetaFunctionCList &AbstractMetaClass::userAddedPythonOverrides() const
{
- const auto &funcs = queryFunctionsByName(QLatin1String("toString"));
- for (const auto &f : funcs) {
- if (!f->actualMinimumArgumentCount())
- return true;
- }
- return false;
+ return d->m_userAddedPythonOverrides;
}
-bool AbstractMetaClass::hasEqualsOperator() const
+void AbstractMetaClassPrivate::sortFunctions()
{
- return d->m_hasEqualsOperator;
+ std::sort(m_functions.begin(), m_functions.end(), function_sorter);
}
-void AbstractMetaClass::setHasEqualsOperator(bool on)
+void AbstractMetaClassPrivate::setFunctions(const AbstractMetaFunctionCList &functions,
+ const AbstractMetaClassCPtr &q)
{
- d->m_hasEqualsOperator = on;
-}
+ m_functions = functions;
-bool AbstractMetaClass::hasCloneOperator() const
-{
- return d->m_hasCloneOperator;
-}
+ // Functions must be sorted by name before next loop
+ sortFunctions();
-void AbstractMetaClass::setHasCloneOperator(bool on)
-{
- d->m_hasCloneOperator = on;
+ for (const auto &f : std::as_const(m_functions)) {
+ std::const_pointer_cast<AbstractMetaFunction>(f)->setOwnerClass(q);
+ if (!f->isPublic())
+ m_hasNonpublic = true;
+ }
}
const QList<QPropertySpec> &AbstractMetaClass::propertySpecs() const
@@ -409,9 +359,16 @@ void AbstractMetaClass::addPropertySpec(const QPropertySpec &spec)
d->m_propertySpecs << spec;
}
+void AbstractMetaClass::setPropertyDocumentation(const QString &name, const Documentation &doc)
+{
+ const auto index = d->indexOfProperty(name);
+ if (index >= 0)
+ d->m_propertySpecs[index].setDocumentation(doc);
+}
+
void AbstractMetaClassPrivate::addFunction(const AbstractMetaFunctionCPtr &function)
{
- Q_ASSERT(!function->signature().startsWith(QLatin1Char('(')));
+ Q_ASSERT(!function->signature().startsWith(u'('));
if (!function->isDestructor())
m_functions << function;
@@ -421,12 +378,31 @@ void AbstractMetaClassPrivate::addFunction(const AbstractMetaFunctionCPtr &funct
m_hasVirtuals |= function->isVirtual();
m_isPolymorphic |= m_hasVirtuals;
m_hasNonpublic |= !function->isPublic();
+ m_hasNonPrivateConstructor |= !function->isPrivate()
+ && function->functionType() == AbstractMetaFunction::ConstructorFunction;
}
-void AbstractMetaClass::addFunction(const AbstractMetaFunctionCPtr &function)
+void AbstractMetaClass::addFunction(const AbstractMetaClassPtr &klass,
+ const AbstractMetaFunctionCPtr &function)
{
- qSharedPointerConstCast<AbstractMetaFunction>(function)->setOwnerClass(this);
- d->addFunction(function);
+ auto nonConstF = std::const_pointer_cast<AbstractMetaFunction>(function);
+ nonConstF->setOwnerClass(klass);
+
+ // Set the default value of the declaring class. This may be changed
+ // in fixFunctions later on
+ nonConstF->setDeclaringClass(klass);
+
+ // Some of the queries below depend on the implementing class being set
+ // to function properly. Such as function modifications
+ nonConstF->setImplementingClass(klass);
+
+ if (function->isUserAddedPythonOverride()) {
+ nonConstF->setConstant(false);
+ nonConstF->setCppAttribute(FunctionAttribute::Static);
+ klass->d->m_userAddedPythonOverrides.append(function);
+ } else {
+ klass->d->addFunction(function);
+ }
}
bool AbstractMetaClass::hasSignal(const AbstractMetaFunction *other) const
@@ -464,32 +440,32 @@ QString AbstractMetaClass::baseClassName() const
}
// Attribute "default-superclass"
-AbstractMetaClass *AbstractMetaClass::defaultSuperclass() const
+AbstractMetaClassCPtr AbstractMetaClass::defaultSuperclass() const
{
return d->m_defaultSuperclass;
}
-void AbstractMetaClass::setDefaultSuperclass(AbstractMetaClass *s)
+void AbstractMetaClass::setDefaultSuperclass(const AbstractMetaClassPtr &s)
{
d->m_defaultSuperclass = s;
}
-AbstractMetaClass *AbstractMetaClass::baseClass() const
+AbstractMetaClassCPtr AbstractMetaClass::baseClass() const
{
return d->m_baseClasses.value(0, nullptr);
}
-const AbstractMetaClassList &AbstractMetaClass::baseClasses() const
+const AbstractMetaClassCList &AbstractMetaClass::baseClasses() const
{
Q_ASSERT(inheritanceDone() || !needsInheritanceSetup());
return d->m_baseClasses;
}
// base classes including "defaultSuperclass".
-AbstractMetaClassList AbstractMetaClass::typeSystemBaseClasses() const
+AbstractMetaClassCList AbstractMetaClass::typeSystemBaseClasses() const
{
- AbstractMetaClassList result = d->m_baseClasses;
- if (d->m_defaultSuperclass != nullptr) {
+ AbstractMetaClassCList result = d->m_baseClasses;
+ if (d->m_defaultSuperclass) {
result.removeAll(d->m_defaultSuperclass);
result.prepend(d->m_defaultSuperclass);
}
@@ -497,25 +473,25 @@ AbstractMetaClassList AbstractMetaClass::typeSystemBaseClasses() const
}
// Recursive list of all base classes including defaultSuperclass
-AbstractMetaClassList AbstractMetaClass::allTypeSystemAncestors() const
+AbstractMetaClassCList AbstractMetaClass::allTypeSystemAncestors() const
{
- AbstractMetaClassList result;
- const AbstractMetaClassList baseClasses = typeSystemBaseClasses();
- for (AbstractMetaClass *base : baseClasses) {
+ AbstractMetaClassCList result;
+ const auto baseClasses = typeSystemBaseClasses();
+ for (const auto &base : baseClasses) {
result.append(base);
result.append(base->allTypeSystemAncestors());
}
return result;
}
-void AbstractMetaClass::addBaseClass(AbstractMetaClass *baseClass)
+void AbstractMetaClass::addBaseClass(const AbstractMetaClassCPtr &baseClass)
{
Q_ASSERT(baseClass);
d->m_baseClasses.append(baseClass);
d->m_isPolymorphic |= baseClass->isPolymorphic();
}
-void AbstractMetaClass::setBaseClass(AbstractMetaClass *baseClass)
+void AbstractMetaClass::setBaseClass(const AbstractMetaClassCPtr &baseClass)
{
if (baseClass) {
d->m_baseClasses.prepend(baseClass);
@@ -523,27 +499,27 @@ void AbstractMetaClass::setBaseClass(AbstractMetaClass *baseClass)
}
}
-const AbstractMetaClass *AbstractMetaClass::extendedNamespace() const
+AbstractMetaClassCPtr AbstractMetaClass::extendedNamespace() const
{
return d->m_extendedNamespace;
}
-void AbstractMetaClass::setExtendedNamespace(const AbstractMetaClass *e)
+void AbstractMetaClass::setExtendedNamespace(const AbstractMetaClassCPtr &e)
{
d->m_extendedNamespace = e;
}
-const AbstractMetaClassList &AbstractMetaClass::innerClasses() const
+const AbstractMetaClassCList &AbstractMetaClass::innerClasses() const
{
return d->m_innerClasses;
}
-void AbstractMetaClass::addInnerClass(AbstractMetaClass *cl)
+void AbstractMetaClass::addInnerClass(const AbstractMetaClassPtr &cl)
{
d->m_innerClasses << cl;
}
-void AbstractMetaClass::setInnerClasses(const AbstractMetaClassList &innerClasses)
+void AbstractMetaClass::setInnerClasses(const AbstractMetaClassCList &innerClasses)
{
d->m_innerClasses = innerClasses;
}
@@ -566,9 +542,19 @@ bool AbstractMetaClass::isInvisibleNamespace() const
&& !NamespaceTypeEntry::isVisibleScope(d->m_typeEntry);
}
+bool AbstractMetaClass::isInlineNamespace() const
+{
+ bool result = false;
+ if (d->m_typeEntry->isNamespace()) {
+ const auto nte = std::static_pointer_cast<const NamespaceTypeEntry>(d->m_typeEntry);
+ result = nte->isInlineNamespace();
+ }
+ return result;
+}
+
bool AbstractMetaClass::isQtNamespace() const
{
- return isNamespace() && name() == QLatin1String("Qt");
+ return isNamespace() && name() == u"Qt";
}
QString AbstractMetaClass::qualifiedCppName() const
@@ -578,15 +564,15 @@ QString AbstractMetaClass::qualifiedCppName() const
bool AbstractMetaClass::hasFunction(const QString &str) const
{
- return !findFunction(str).isNull();
+ return bool(findFunction(str));
}
-AbstractMetaFunctionCPtr AbstractMetaClass::findFunction(const QString &functionName) const
+AbstractMetaFunctionCPtr AbstractMetaClass::findFunction(QAnyStringView functionName) const
{
return AbstractMetaFunction::find(d->m_functions, functionName);
}
-AbstractMetaFunctionCList AbstractMetaClass::findFunctions(const QString &functionName) const
+AbstractMetaFunctionCList AbstractMetaClass::findFunctions(QAnyStringView functionName) const
{
AbstractMetaFunctionCList result;
std::copy_if(d->m_functions.cbegin(), d->m_functions.cend(),
@@ -619,15 +605,6 @@ AbstractMetaFunctionCPtr AbstractMetaClass::findQtIsNullMethod() const
return *it;
}
-bool AbstractMetaClass::hasProtectedFunctions() const
-{
- for (const auto &func : d->m_functions) {
- if (func->isProtected())
- return true;
- }
- return false;
-}
-
bool AbstractMetaClass::hasProtectedFields() const
{
for (const AbstractMetaField &field : d->m_fields) {
@@ -637,17 +614,12 @@ bool AbstractMetaClass::hasProtectedFields() const
return false;
}
-bool AbstractMetaClass::hasProtectedMembers() const
-{
- return hasProtectedFields() || hasProtectedFunctions();
-}
-
-const TypeEntries &AbstractMetaClass::templateArguments() const
+const TypeEntryCList &AbstractMetaClass::templateArguments() const
{
return d->m_templateArgs;
}
-void AbstractMetaClass::setTemplateArguments(const TypeEntries &args)
+void AbstractMetaClass::setTemplateArguments(const TypeEntryCList &args)
{
d->m_templateArgs = args;
}
@@ -662,36 +634,41 @@ void AbstractMetaClass::setBaseClassNames(const QStringList &names)
d->m_baseClassNames = names;
}
-const ComplexTypeEntry *AbstractMetaClass::typeEntry() const
+ComplexTypeEntryCPtr AbstractMetaClass::typeEntry() const
{
return d->m_typeEntry;
}
-ComplexTypeEntry *AbstractMetaClass::typeEntry()
+ComplexTypeEntryPtr AbstractMetaClass::typeEntry()
{
return d->m_typeEntry;
}
-void AbstractMetaClass::setTypeEntry(ComplexTypeEntry *type)
+void AbstractMetaClass::setTypeEntry(const ComplexTypeEntryPtr &type)
{
d->m_typeEntry = type;
}
-void AbstractMetaClass::setHasHashFunction(bool on)
+QString AbstractMetaClass::hashFunction() const
{
- d->m_hasHashFunction = on;
+ return d->m_hashFunction;
+}
+
+void AbstractMetaClass::setHashFunction(const QString &f)
+{
+ d->m_hashFunction = f;
}
bool AbstractMetaClass::hasHashFunction() const
{
- return d->m_hasHashFunction;
+ return !d->m_hashFunction.isEmpty();
}
// Search whether a functions is a property setter/getter/reset
AbstractMetaClass::PropertyFunctionSearchResult
AbstractMetaClass::searchPropertyFunction(const QString &name) const
{
- for (int i = 0, size = d->m_propertySpecs.size(); i < size; ++i) {
+ for (qsizetype i = 0, size = d->m_propertySpecs.size(); i < size; ++i) {
const auto &propertySpec = d->m_propertySpecs.at(i);
if (name == propertySpec.read())
return PropertyFunctionSearchResult{i, PropertyFunction::Read};
@@ -699,6 +676,8 @@ AbstractMetaClass::PropertyFunctionSearchResult
return PropertyFunctionSearchResult{i, PropertyFunction::Write};
if (name == propertySpec.reset())
return PropertyFunctionSearchResult{i, PropertyFunction::Reset};
+ if (name == propertySpec.notify())
+ return PropertyFunctionSearchResult{i, PropertyFunction::Notify};
}
return PropertyFunctionSearchResult{-1, PropertyFunction::Read};
}
@@ -706,10 +685,9 @@ AbstractMetaClass::PropertyFunctionSearchResult
std::optional<QPropertySpec>
AbstractMetaClass::propertySpecByName(const QString &name) const
{
- for (const auto &propertySpec : d->m_propertySpecs) {
- if (name == propertySpec.name())
- return propertySpec;
- }
+ const auto index = d->indexOfProperty(name);
+ if (index >= 0)
+ return d->m_propertySpecs.at(index);
return {};
}
@@ -791,7 +769,16 @@ bool AbstractMetaClass::deleteInMainThread() const
bool AbstractMetaClassPrivate::hasConstructors() const
{
return AbstractMetaClass::queryFirstFunction(m_functions,
- FunctionQueryOption::Constructors) != nullptr;
+ FunctionQueryOption::AnyConstructor) != nullptr;
+}
+
+qsizetype AbstractMetaClassPrivate::indexOfProperty(const QString &name) const
+{
+ for (qsizetype i = 0; i < m_propertySpecs.size(); ++i) {
+ if (m_propertySpecs.at(i).name() == name)
+ return i;
+ }
+ return -1;
}
bool AbstractMetaClass::hasConstructors() const
@@ -816,51 +803,95 @@ bool AbstractMetaClass::hasCopyConstructor() const
bool AbstractMetaClass::hasPrivateCopyConstructor() const
{
const auto copyCt = copyConstructor();
- return !copyCt.isNull() && copyCt->isPrivate();
+ return copyCt && copyCt->isPrivate();
}
void AbstractMetaClassPrivate::addConstructor(AbstractMetaFunction::FunctionType t,
Access access,
const AbstractMetaArgumentList &arguments,
- AbstractMetaClass *q)
+ const AbstractMetaClassPtr &q)
{
- auto *f = new AbstractMetaFunction;
- f->setType(AbstractMetaType::createVoid());
- f->setOriginalName(q->name());
- f->setName(q->name());
- f->setOwnerClass(q);
- f->setFunctionType(t);
- f->setArguments(arguments);
- f->setDeclaringClass(q);
- f->setAccess(access);
+ auto *f = createFunction(q->name(), t, access, arguments, AbstractMetaType::createVoid(), q);
if (access != Access::Private)
m_hasNonPrivateConstructor = true;
- f->setAttributes(AbstractMetaFunction::FinalInTargetLang
- | AbstractMetaFunction::AddedMethod);
- f->setImplementingClass(q);
-
+ f->setAttributes(AbstractMetaFunction::AddedMethod);
addFunction(AbstractMetaFunctionCPtr(f));
}
-void AbstractMetaClass::addDefaultConstructor()
+void AbstractMetaClass::addDefaultConstructor(const AbstractMetaClassPtr &klass)
{
- d->addConstructor(AbstractMetaFunction::ConstructorFunction,
- Access::Public, {}, this);
+ klass->d->addConstructor(AbstractMetaFunction::ConstructorFunction,
+ Access::Public, {}, klass);
}
-void AbstractMetaClass::addDefaultCopyConstructor()
+void AbstractMetaClass::addDefaultCopyConstructor(const AbstractMetaClassPtr &klass)
{
- AbstractMetaType argType(typeEntry());
+ AbstractMetaType argType(klass->typeEntry());
argType.setReferenceType(LValueReference);
argType.setConstant(true);
argType.setTypeUsagePattern(AbstractMetaType::ValuePattern);
AbstractMetaArgument arg;
arg.setType(argType);
- arg.setName(name());
+ arg.setName(klass->name());
- d->addConstructor(AbstractMetaFunction::CopyConstructorFunction,
- Access::Public, {arg}, this);
+ klass->d->addConstructor(AbstractMetaFunction::CopyConstructorFunction,
+ Access::Public, {arg}, klass);
+}
+
+AbstractMetaFunction *
+ AbstractMetaClassPrivate::createFunction(const QString &name,
+ AbstractMetaFunction::FunctionType t,
+ Access access,
+ const AbstractMetaArgumentList &arguments,
+ const AbstractMetaType &returnType,
+ const AbstractMetaClassPtr &q)
+{
+ auto *f = new AbstractMetaFunction(name);
+ f->setType(returnType);
+ f->setOwnerClass(q);
+ f->setFunctionType(t);
+ f->setArguments(arguments);
+ f->setDeclaringClass(q);
+ f->setAccess(access);
+ f->setImplementingClass(q);
+ return f;
+}
+
+static AbstractMetaType boolType()
+{
+ auto boolType = TypeDatabase::instance()->findType(u"bool"_s);
+ Q_ASSERT(boolType);
+ AbstractMetaType result(boolType);
+ result.decideUsagePattern();
+ return result;
+}
+
+// Helper to synthesize comparison operators from a spaceship operator. Since
+// shiboken also generates code for comparing to different types, this fits
+// better than of handling it in the generator code.
+void AbstractMetaClass::addSynthesizedComparisonOperators(const AbstractMetaClassPtr &c)
+{
+ static const auto returnType = boolType();
+
+ AbstractMetaType selfType(c->typeEntry());
+ selfType.setConstant(true);
+ selfType.setReferenceType(LValueReference);
+ selfType.decideUsagePattern();
+ AbstractMetaArgument selfArgument;
+ selfArgument.setType(selfType);
+ selfArgument.setName(u"rhs"_s);
+ AbstractMetaArgumentList arguments(1, selfArgument);
+
+ static const char *operators[]
+ = {"operator==", "operator!=", "operator<", "operator<=", "operator>", "operator>="};
+ for (auto *op : operators) {
+ auto *f = AbstractMetaClassPrivate::createFunction(QLatin1StringView(op),
+ AbstractMetaFunction::ComparisonOperator,
+ Access::Public, arguments,
+ returnType, c);
+ c->d->addFunction(AbstractMetaFunctionCPtr(f));
+ }
}
bool AbstractMetaClass::hasNonPrivateConstructor() const
@@ -953,6 +984,8 @@ bool AbstractMetaClass::isDefaultConstructible() const
// (non-ref or not const value).
static bool defaultConstructibleField(const AbstractMetaField &f)
{
+ if (f.isStatic())
+ return true;
const auto &type = f.type();
return type.referenceType() == NoReference
&& !(type.indirections() == 0 && type.isConstant()); // no const values
@@ -963,7 +996,7 @@ bool AbstractMetaClass::isImplicitlyDefaultConstructible() const
return std::all_of(d->m_fields.cbegin(), d->m_fields.cend(),
defaultConstructibleField)
&& std::all_of(d->m_baseClasses.cbegin(), d->m_baseClasses.cend(),
- [] (const AbstractMetaClass *c) {
+ [] (const AbstractMetaClassCPtr &c) {
return c->isDefaultConstructible();
});
}
@@ -971,6 +1004,7 @@ bool AbstractMetaClass::isImplicitlyDefaultConstructible() const
static bool canAddDefaultConstructorHelper(const AbstractMetaClass *cls)
{
return !cls->isNamespace()
+ && !cls->hasDeletedDefaultConstructor()
&& !cls->attributes().testFlag(AbstractMetaClass::HasRejectedConstructor)
&& !cls->hasPrivateDestructor();
}
@@ -997,7 +1031,7 @@ bool AbstractMetaClass::isImplicitlyCopyConstructible() const
{
// Fields are currently not considered
return std::all_of(d->m_baseClasses.cbegin(), d->m_baseClasses.cend(),
- [] (const AbstractMetaClass *c) {
+ [] (const AbstractMetaClassCPtr &c) {
return c->isCopyConstructible();
});
}
@@ -1012,6 +1046,21 @@ bool AbstractMetaClass::canAddDefaultCopyConstructor() const
return isImplicitlyCopyConstructible();
}
+static bool classHasParentManagement(const AbstractMetaClassCPtr &c)
+{
+ const auto flags = c->typeEntry()->typeFlags();
+ return flags.testFlag(ComplexTypeEntry::ParentManagement);
+}
+
+TypeEntryCPtr parentManagementEntry(const AbstractMetaClassCPtr &klass)
+{
+ if (klass->typeEntry()->isObject()) {
+ if (auto c = recurseClassHierarchy(klass, classHasParentManagement))
+ return c->typeEntry();
+ }
+ return nullptr;
+}
+
bool AbstractMetaClass::generateExceptionHandling() const
{
return queryFirstFunction(d->m_functions, FunctionQueryOption::Visible
@@ -1076,7 +1125,7 @@ void AbstractMetaClass::addUsingMember(const UsingMember &um)
d->m_usingMembers.append(um);
}
-bool AbstractMetaClassPrivate::isUsingMember(const AbstractMetaClass *c,
+bool AbstractMetaClassPrivate::isUsingMember(const AbstractMetaClassCPtr &c,
const QString &memberName,
Access minimumAccess) const
{
@@ -1087,7 +1136,7 @@ bool AbstractMetaClassPrivate::isUsingMember(const AbstractMetaClass *c,
return it != m_usingMembers.cend() && it->access >= minimumAccess;
}
-bool AbstractMetaClass::isUsingMember(const AbstractMetaClass *c,
+bool AbstractMetaClass::isUsingMember(const AbstractMetaClassCPtr &c,
const QString &memberName,
Access minimumAccess) const
{
@@ -1118,35 +1167,32 @@ bool AbstractMetaClass::queryFunction(const AbstractMetaFunction *f, FunctionQue
if (query.testFlag(FunctionQueryOption::Visible) && f->isPrivate())
return false;
- if (query.testFlag(FunctionQueryOption::VirtualInTargetLangFunctions) && f->isFinalInTargetLang())
- return false;
-
if (query.testFlag(FunctionQueryOption::Invisible) && !f->isPrivate())
return false;
if (query.testFlag(FunctionQueryOption::Empty) && !f->isEmptyFunction())
return false;
- if (query.testFlag(FunctionQueryOption::WasPublic) && !f->wasPublic())
- return false;
-
if (query.testFlag(FunctionQueryOption::ClassImplements) && f->ownerClass() != f->implementingClass())
return false;
- if (query.testFlag(FunctionQueryOption::FinalInTargetLangFunctions) && !f->isFinalInTargetLang())
- return false;
-
if (query.testFlag(FunctionQueryOption::VirtualInCppFunctions) && !f->isVirtual())
return false;
if (query.testFlag(FunctionQueryOption::Signals) && (!f->isSignal()))
return false;
- if (query.testFlag(FunctionQueryOption::Constructors)
+ if (query.testFlag(FunctionQueryOption::AnyConstructor)
&& (!f->isConstructor() || f->ownerClass() != f->implementingClass())) {
return false;
}
+ if (query.testFlag(FunctionQueryOption::Constructors)
+ && (f->functionType() != AbstractMetaFunction::ConstructorFunction
+ || f->ownerClass() != f->implementingClass())) {
+ return false;
+ }
+
if (query.testFlag(FunctionQueryOption::CopyConstructor)
&& (!f->isCopyConstructor() || f->ownerClass() != f->implementingClass())) {
return false;
@@ -1193,7 +1239,7 @@ AbstractMetaFunctionCList AbstractMetaClass::queryFunctionList(const AbstractMet
{
AbstractMetaFunctionCList result;
for (const auto &f : list) {
- if (queryFunction(f.data(), query))
+ if (queryFunction(f.get(), query))
result.append(f);
}
return result;
@@ -1203,7 +1249,7 @@ AbstractMetaFunctionCPtr AbstractMetaClass::queryFirstFunction(const AbstractMet
FunctionQueryOptions query)
{
for (const auto &f : list) {
- if (queryFunction(f.data(), query))
+ if (queryFunction(f.get(), query))
return f;
}
return {};
@@ -1230,7 +1276,7 @@ AbstractMetaFunctionCList AbstractMetaClass::cppSignalFunctions() const
}
std::optional<AbstractMetaField>
- AbstractMetaClass::findField(const QString &name) const
+ AbstractMetaClass::findField(QStringView name) const
{
return AbstractMetaField::find(d->m_fields, name);
}
@@ -1271,7 +1317,7 @@ std::optional<AbstractMetaEnum>
std::optional<AbstractMetaEnumValue>
AbstractMetaClass::findEnumValue(const QString &enumValueName) const
{
- for (const AbstractMetaEnum &e : qAsConst(d->m_enums)) {
+ for (const AbstractMetaEnum &e : std::as_const(d->m_enums)) {
auto v = e.findEnumValue(enumValueName);
if (v.has_value())
return v;
@@ -1293,7 +1339,7 @@ void AbstractMetaClass::getEnumsToBeGenerated(AbstractMetaEnumList *enumList) co
void AbstractMetaClass::getEnumsFromInvisibleNamespacesToBeGenerated(AbstractMetaEnumList *enumList) const
{
if (isNamespace()) {
- invisibleNamespaceRecursion([enumList](AbstractMetaClass *c) {
+ invisibleNamespaceRecursion([enumList](const AbstractMetaClassCPtr &c) {
c->getEnumsToBeGenerated(enumList);
});
}
@@ -1302,7 +1348,7 @@ void AbstractMetaClass::getEnumsFromInvisibleNamespacesToBeGenerated(AbstractMet
void AbstractMetaClass::getFunctionsFromInvisibleNamespacesToBeGenerated(AbstractMetaFunctionCList *funcList) const
{
if (isNamespace()) {
- invisibleNamespaceRecursion([funcList](AbstractMetaClass *c) {
+ invisibleNamespaceRecursion([funcList](const AbstractMetaClassCPtr &c) {
funcList->append(c->functions());
});
}
@@ -1310,19 +1356,19 @@ void AbstractMetaClass::getFunctionsFromInvisibleNamespacesToBeGenerated(Abstrac
QString AbstractMetaClass::fullName() const
{
- return package() + QLatin1Char('.') + d->m_typeEntry->targetLangName();
+ return package() + u'.' + d->m_typeEntry->targetLangName();
}
-static void addExtraIncludeForType(AbstractMetaClass *metaClass, const AbstractMetaType &type)
+static void addExtraIncludeForType(const AbstractMetaClassPtr &metaClass,
+ const AbstractMetaType &type)
{
Q_ASSERT(metaClass);
- const TypeEntry *entry = type.typeEntry();
- if (entry && entry->isComplex()) {
- const auto *centry = static_cast<const ComplexTypeEntry *>(entry);
- ComplexTypeEntry *class_entry = metaClass->typeEntry();
- if (class_entry && centry->include().isValid())
- class_entry->addExtraInclude(centry->include());
+ const auto entry = type.typeEntry();
+
+ if (entry && entry->include().isValid()) {
+ const auto class_entry = metaClass->typeEntry();
+ class_entry->addArgumentInclude(entry->include());
}
if (type.hasInstantiations()) {
@@ -1331,7 +1377,7 @@ static void addExtraIncludeForType(AbstractMetaClass *metaClass, const AbstractM
}
}
-static void addExtraIncludesForFunction(AbstractMetaClass *metaClass,
+static void addExtraIncludesForFunction(const AbstractMetaClassPtr &metaClass,
const AbstractMetaFunctionCPtr &meta_function)
{
Q_ASSERT(metaClass);
@@ -1339,8 +1385,12 @@ static void addExtraIncludesForFunction(AbstractMetaClass *metaClass,
addExtraIncludeForType(metaClass, meta_function->type());
const AbstractMetaArgumentList &arguments = meta_function->arguments();
- for (const AbstractMetaArgument &argument : arguments)
- addExtraIncludeForType(metaClass, argument.type());
+ for (const AbstractMetaArgument &argument : arguments) {
+ const auto &type = argument.type();
+ addExtraIncludeForType(metaClass, type);
+ if (argument.modifiedType() != type)
+ addExtraIncludeForType(metaClass, argument.modifiedType());
+ }
}
static bool addSuperFunction(const AbstractMetaFunctionCPtr &f)
@@ -1362,7 +1412,7 @@ static bool addSuperFunction(const AbstractMetaFunctionCPtr &f)
// Add constructors imported via "using" from the base classes. This is not
// needed for normal hidden inherited member functions since we generate a
// cast to the base class to call them into binding code.
-void AbstractMetaClassPrivate::addUsingConstructors(AbstractMetaClass *q)
+void AbstractMetaClassPrivate::addUsingConstructors(const AbstractMetaClassPtr &q)
{
// Restricted to the non-constructor case currently to avoid
// having to compare the parameter lists of existing constructors.
@@ -1371,14 +1421,13 @@ void AbstractMetaClassPrivate::addUsingConstructors(AbstractMetaClass *q)
return;
}
- for (auto superClass : m_baseClasses) {
+ for (const auto &superClass : m_baseClasses) {
// Find any "using base-constructor" directives
if (isUsingMember(superClass, superClass->name(), Access::Protected)) {
// Add to derived class with parameter lists.
const auto ctors = superClass->queryFunctions(FunctionQueryOption::Constructors);
for (const auto &ctor : ctors) {
- if (ctor->functionType() == AbstractMetaFunction::ConstructorFunction
- && !ctor->isPrivate()) {
+ if (!ctor->isPrivate()) {
addConstructor(AbstractMetaFunction::ConstructorFunction,
ctor->access(), ctor->arguments(), q);
}
@@ -1387,50 +1436,61 @@ void AbstractMetaClassPrivate::addUsingConstructors(AbstractMetaClass *q)
}
}
-void AbstractMetaClass::fixFunctions()
+static inline bool isSignal(const AbstractMetaFunctionCPtr &f)
+{
+ return f->isSignal();
+}
+
+void AbstractMetaClass::fixFunctions(const AbstractMetaClassPtr &klass)
{
+ auto *d = klass->d.data();
if (d->m_functionsFixed)
return;
d->m_functionsFixed = true;
- AbstractMetaFunctionCList funcs = functions();
+ AbstractMetaFunctionCList funcs = klass->functions();
AbstractMetaFunctionCList nonRemovedFuncs;
nonRemovedFuncs.reserve(funcs.size());
- d->addUsingConstructors(this);
+ d->addUsingConstructors(klass);
- for (const auto &f : qAsConst(funcs)) {
+ for (const auto &f : std::as_const(funcs)) {
// Fishy: Setting up of implementing/declaring/base classes changes
// the applicable modifications; clear cached ones.
- qSharedPointerConstCast<AbstractMetaFunction>(f)->clearModificationsCache();
+ std::const_pointer_cast<AbstractMetaFunction>(f)->clearModificationsCache();
if (!f->isModifiedRemoved())
nonRemovedFuncs.append(f);
}
- for (auto superClass : d->m_baseClasses) {
- superClass->fixFunctions();
+ for (const auto &superClassC : d->m_baseClasses) {
+ for (const auto &pof : superClassC->userAddedPythonOverrides()) {
+ auto *clonedPof = pof->copy();
+ clonedPof->setOwnerClass(klass);
+ d->m_userAddedPythonOverrides.append(AbstractMetaFunctionCPtr{clonedPof});
+ }
+
+ auto superClass = std::const_pointer_cast<AbstractMetaClass>(superClassC);
+ AbstractMetaClass::fixFunctions(superClass);
// Since we always traverse the complete hierarchy we are only
// interrested in what each super class implements, not what
// we may have propagated from their base classes again.
AbstractMetaFunctionCList superFuncs;
- // Super classes can never be final
- if (superClass->isFinalInTargetLang()) {
- qCWarning(lcShiboken).noquote().nospace()
- << "Final class '" << superClass->name() << "' set to non-final, as it is extended by other classes";
- *superClass -= AbstractMetaClass::FinalInTargetLang;
- }
superFuncs = superClass->queryFunctions(FunctionQueryOption::ClassImplements);
+ // We are not interested in signals as no bindings are generated for them;
+ // they cause documentation warnings.
+ superFuncs.erase(std::remove_if(superFuncs.begin(), superFuncs.end(), isSignal),
+ superFuncs.end());
const auto virtuals = superClass->queryFunctions(FunctionQueryOption::VirtualInCppFunctions);
superFuncs += virtuals;
QSet<AbstractMetaFunctionCPtr> funcsToAdd;
- for (const auto &sf : qAsConst(superFuncs)) {
+ for (const auto &sf : std::as_const(superFuncs)) {
if (sf->isModifiedRemoved())
continue;
// skip functions added in base classes
- if (sf->isUserAdded() && sf->declaringClass() != this)
+ if (sf->isUserAdded() && sf->declaringClass() != klass)
continue;
// Skip base class comparison operators declared as members (free
@@ -1441,43 +1501,25 @@ void AbstractMetaClass::fixFunctions()
// we generally don't care about private functions, but we have to get the ones that are
// virtual in case they override abstract functions.
bool add = addSuperFunction(sf);
- for (const auto &cf : qAsConst(nonRemovedFuncs)) {
- AbstractMetaFunctionPtr f(qSharedPointerConstCast<AbstractMetaFunction>(cf));
- const AbstractMetaFunction::CompareResult cmp = cf->compareTo(sf.data());
+ for (const auto &cf : std::as_const(nonRemovedFuncs)) {
+ AbstractMetaFunctionPtr f(std::const_pointer_cast<AbstractMetaFunction>(cf));
+ const AbstractMetaFunction::CompareResult cmp = cf->compareTo(sf.get());
if (cmp & AbstractMetaFunction::EqualModifiedName) {
add = false;
if (cmp & AbstractMetaFunction::EqualArguments) {
// Set "override" in case it was not spelled out (since it
// is then not detected by clang parsing).
- const auto attributes = cf->attributes();
- if (cf->isVirtual()
- && !attributes.testFlag(AbstractMetaFunction::OverriddenCppMethod)
- && !attributes.testFlag(AbstractMetaFunction::FinalCppMethod)) {
- *f += AbstractMetaFunction::OverriddenCppMethod;
- }
- // Same function, propegate virtual...
- if (!(cmp & AbstractMetaFunction::EqualAttributes)) {
- if (!f->isEmptyFunction()) {
- if (!sf->isFinalInTargetLang() && f->isFinalInTargetLang()) {
- *f -= AbstractMetaFunction::FinalInTargetLang;
- }
-#if 0
- if (!f->isFinalInTargetLang() && f->isPrivate()) {
- f->setFunctionType(AbstractMetaFunction::EmptyFunction);
- f->setVisibility(AbstractMetaAttributes::Protected);
- *f += AbstractMetaAttributes::FinalInTargetLang;
- qCWarning(lcShiboken).noquote().nospace()
- << QStringLiteral("private virtual function '%1' in '%2'")
- .arg(f->signature(), f->implementingClass()->name());
- }
-#endif
- }
+ const auto attributes = cf->cppAttributes();
+ if (attributes.testFlag(FunctionAttribute::Virtual)
+ && !attributes.testFlag(FunctionAttribute::Override)
+ && !attributes.testFlag(FunctionAttribute::Final)) {
+ f->setCppAttribute(FunctionAttribute::Override);
}
if (f->access() != sf->access()) {
qCWarning(lcShiboken, "%s",
- qPrintable(msgFunctionVisibilityModified(this, f.data())));
+ qPrintable(msgFunctionVisibilityModified(klass, f.get())));
#if 0
// If new visibility is private, we can't
// do anything. If it isn't, then we
@@ -1489,43 +1531,12 @@ void AbstractMetaClass::fixFunctions()
// Private overrides of abstract functions have to go into the class or
// the subclasses will not compile as non-abstract classes.
// But they don't need to be implemented, since they can never be called.
- if (f->isPrivate()) {
+ if (f->isPrivate())
f->setFunctionType(AbstractMetaFunction::EmptyFunction);
- *f += AbstractMetaFunction::FinalInTargetLang;
- }
}
// Set the class which first declares this function, afawk
f->setDeclaringClass(sf->declaringClass());
-
- if (sf->isFinalInTargetLang() && !sf->isPrivate() && !f->isPrivate() && !sf->isStatic() && !f->isStatic()) {
- // Shadowed funcion, need to make base class
- // function non-virtual
- if (f->implementingClass() != sf->implementingClass() && f->implementingClass()->inheritsFrom(sf->implementingClass())) {
-
- // Check whether the superclass method has been redefined to non-final
-
- bool hasNonFinalModifier = false;
- bool isBaseImplPrivate = false;
- const FunctionModificationList &mods = sf->modifications(sf->implementingClass());
- for (const FunctionModification &mod : mods) {
- if (mod.isNonFinal()) {
- hasNonFinalModifier = true;
- break;
- }
- if (mod.isPrivate()) {
- isBaseImplPrivate = true;
- break;
- }
- }
-
- if (!hasNonFinalModifier && !isBaseImplPrivate) {
- qCWarning(lcShiboken, "%s",
- qPrintable(msgShadowingFunction(sf.data(), f.data())));
- }
- }
- }
-
}
if (cmp & AbstractMetaFunction::EqualDefaultValueOverload) {
@@ -1553,7 +1564,7 @@ void AbstractMetaClass::fixFunctions()
funcsToAdd << sf;
}
- for (const auto &f : qAsConst(funcsToAdd)) {
+ for (const auto &f : std::as_const(funcsToAdd)) {
AbstractMetaFunction *copy = f->copy();
(*copy) += AbstractMetaFunction::AddedMethod;
funcs.append(AbstractMetaFunctionCPtr(copy));
@@ -1562,16 +1573,19 @@ void AbstractMetaClass::fixFunctions()
bool hasPrivateConstructors = false;
bool hasPublicConstructors = false;
- for (const auto &func : qAsConst(funcs)) {
- for (const auto &mod : func->modifications(this)) {
+ // Apply modifications after the declaring class has been set
+ for (const auto &func : std::as_const(funcs)) {
+ auto ncFunc = std::const_pointer_cast<AbstractMetaFunction>(func);
+ for (const auto &mod : func->modifications(klass)) {
if (mod.isRenameModifier())
- qSharedPointerConstCast<AbstractMetaFunction>(func)->setName(mod.renamedToName());
+ ncFunc->setName(mod.renamedToName());
}
+ ncFunc->applyTypeModifications();
// Make sure class is abstract if one of the functions is
if (func->isAbstract()) {
- (*this) += AbstractMetaClass::Abstract;
- (*this) -= AbstractMetaClass::FinalInTargetLang;
+ (*klass) += AbstractMetaClass::Abstract;
+ (*klass) -= AbstractMetaClass::FinalInTargetLang;
}
if (func->isConstructor()) {
@@ -1584,15 +1598,15 @@ void AbstractMetaClass::fixFunctions()
// Make sure that we include files for all classes that are in use
- addExtraIncludesForFunction(this, func);
+ addExtraIncludesForFunction(klass, func);
}
if (hasPrivateConstructors && !hasPublicConstructors) {
- (*this) += AbstractMetaClass::Abstract;
- (*this) -= AbstractMetaClass::FinalInTargetLang;
+ (*klass) += AbstractMetaClass::Abstract;
+ (*klass) -= AbstractMetaClass::FinalInTargetLang;
}
- setFunctions(funcs);
+ d->setFunctions(funcs, klass);
}
bool AbstractMetaClass::needsInheritanceSetup() const
@@ -1601,6 +1615,7 @@ bool AbstractMetaClass::needsInheritanceSetup() const
switch (d->m_typeEntry->type()) {
case TypeEntry::NamespaceType:
case TypeEntry::SmartPointerType:
+ case TypeEntry::ContainerType:
return false;
default:
break;
@@ -1623,26 +1638,6 @@ bool AbstractMetaClass::inheritanceDone() const
* Other stuff...
*/
-
-std::optional<AbstractMetaEnum>
- AbstractMetaClass::findEnum(const AbstractMetaClassList &classes,
- const EnumTypeEntry *entry)
-{
- Q_ASSERT(entry->isEnum());
-
- auto scopeEntry = entry->parent();
- AbstractMetaClass *metaClass = AbstractMetaClass::findClass(classes, scopeEntry);
- if (!metaClass) {
- qCWarning(lcShiboken, "%s", qPrintable(msgClassOfEnumNotFound(entry)));
- return {};
- }
-
- QString qualifiedName = entry->qualifiedCppName();
- const int pos = qualifiedName.lastIndexOf(QLatin1String("::"));
- const QString enumName = pos > 0 ? qualifiedName.mid(pos + 2) : qualifiedName;
- return metaClass->findEnum(enumName);
-}
-
std::optional<AbstractMetaEnumValue>
AbstractMetaClass::findEnumValue(const AbstractMetaClassList &classes,
const QString &name)
@@ -1652,11 +1647,11 @@ std::optional<AbstractMetaEnumValue>
if (lst.size() > 1) {
const auto &prefixName = lst.at(0);
const auto &enumName = lst.at(1);
- if (AbstractMetaClass *cl = findClass(classes, prefixName.toString()))
+ if (auto cl = findClass(classes, prefixName))
return cl->findEnumValue(enumName.toString());
}
- for (AbstractMetaClass *metaClass : classes) {
+ for (const auto &metaClass : classes) {
auto enumValue = metaClass->findEnumValue(name);
if (enumValue.has_value())
return enumValue;
@@ -1670,12 +1665,12 @@ std::optional<AbstractMetaEnumValue>
/// Target language base name or complete Target language package.class name.
template <class It>
-static It findClassHelper(It begin, It end, const QString &name)
+static It findClassHelper(It begin, It end, QAnyStringView name)
{
if (name.isEmpty() || begin == end)
return end;
- if (name.contains(u'.')) { // Search target lang name
+ if (asv_contains(name,'.')) { // Search target lang name
for (auto it = begin; it != end; ++it) {
if ((*it)->fullName() == name)
return it;
@@ -1688,7 +1683,7 @@ static It findClassHelper(It begin, It end, const QString &name)
return it;
}
- if (name.contains(u"::")) // Qualified, cannot possibly match name
+ if (asv_contains(name, "::")) // Qualified, cannot possibly match name
return end;
for (auto it = begin; it != end; ++it) {
@@ -1699,32 +1694,32 @@ static It findClassHelper(It begin, It end, const QString &name)
return end;
}
-AbstractMetaClass *AbstractMetaClass::findClass(const AbstractMetaClassList &classes,
- const QString &name)
+AbstractMetaClassPtr AbstractMetaClass::findClass(const AbstractMetaClassList &classes,
+ QAnyStringView name)
{
auto it =findClassHelper(classes.cbegin(), classes.cend(), name);
return it != classes.cend() ? *it : nullptr;
}
-const AbstractMetaClass *AbstractMetaClass::findClass(const AbstractMetaClassCList &classes,
- const QString &name)
+AbstractMetaClassCPtr AbstractMetaClass::findClass(const AbstractMetaClassCList &classes,
+ QAnyStringView name)
{
auto it = findClassHelper(classes.cbegin(), classes.cend(), name);
return it != classes.cend() ? *it : nullptr;
}
-AbstractMetaClass *AbstractMetaClass::findClass(const AbstractMetaClassList &classes,
- const TypeEntry *typeEntry)
+AbstractMetaClassPtr AbstractMetaClass::findClass(const AbstractMetaClassList &classes,
+ const TypeEntryCPtr &typeEntry)
{
- for (AbstractMetaClass *c : classes) {
+ for (AbstractMetaClassPtr c : classes) {
if (c->typeEntry() == typeEntry)
return c;
}
return nullptr;
}
-const AbstractMetaClass *AbstractMetaClass::findClass(const AbstractMetaClassCList &classes,
- const TypeEntry *typeEntry)
+AbstractMetaClassCPtr AbstractMetaClass::findClass(const AbstractMetaClassCList &classes,
+ const TypeEntryCPtr &typeEntry)
{
for (auto c : classes) {
if (c->typeEntry() == typeEntry)
@@ -1734,40 +1729,41 @@ const AbstractMetaClass *AbstractMetaClass::findClass(const AbstractMetaClassCLi
}
/// Returns true if this class is a subclass of the given class
-bool AbstractMetaClass::inheritsFrom(const AbstractMetaClass *cls) const
+bool inheritsFrom(const AbstractMetaClassCPtr &c, const AbstractMetaClassCPtr &cls)
{
Q_ASSERT(cls != nullptr);
- if (this == cls || d->m_templateBaseClass == cls)
+ if (c == cls || c->templateBaseClass() == cls)
return true;
- return recurseClassHierarchy(this, [cls](const AbstractMetaClass *c) {
- return cls == c;
- }) != nullptr;
+ return bool(recurseClassHierarchy(c, [cls](const AbstractMetaClassCPtr &c) {
+ return cls.get() == c.get();
+ }));
}
-bool AbstractMetaClass::inheritsFrom(const QString &name) const
+bool inheritsFrom(const AbstractMetaClassCPtr &c, QAnyStringView name)
{
- if (this->qualifiedCppName() == name)
+ if (c->qualifiedCppName() == name)
return true;
- if (d->m_templateBaseClass != nullptr
- && d->m_templateBaseClass->qualifiedCppName() == name) {
+ if (c->templateBaseClass() != nullptr
+ && c->templateBaseClass()->qualifiedCppName() == name) {
return true;
}
- return recurseClassHierarchy(this, [&name](const AbstractMetaClass *c) {
+ return bool(recurseClassHierarchy(c, [&name](const AbstractMetaClassCPtr &c) {
return c->qualifiedCppName() == name;
- }) != nullptr;
+ }));
}
-const AbstractMetaClass *AbstractMetaClass::findBaseClass(const QString &qualifiedName) const
+AbstractMetaClassCPtr findBaseClass(const AbstractMetaClassCPtr &c,
+ const QString &qualifiedName)
{
- if (d->m_templateBaseClass != nullptr
- && d->m_templateBaseClass->qualifiedCppName() == qualifiedName) {
- return d->m_templateBaseClass;
- }
- return recurseClassHierarchy(this, [&qualifiedName](const AbstractMetaClass *c) {
+ auto tp = c->templateBaseClass();
+ if (tp && tp->qualifiedCppName() == qualifiedName)
+ return tp;
+
+ return recurseClassHierarchy(c, [&qualifiedName](const AbstractMetaClassCPtr &c) {
return c->qualifiedCppName() == qualifiedName;
});
}
@@ -1784,7 +1780,7 @@ bool AbstractMetaClass::isCopyable() const
return false;
auto copyable = d->m_typeEntry->copyable();
return copyable == ComplexTypeEntry::CopyableSet
- || (copyable == ComplexTypeEntry::Unknown && hasCloneOperator());
+ || (copyable == ComplexTypeEntry::Unknown && isCopyConstructible());
}
bool AbstractMetaClass::isValueTypeWithCopyConstructorOnly() const
@@ -1797,19 +1793,22 @@ void AbstractMetaClass::setValueTypeWithCopyConstructorOnly(bool v)
d->m_valueTypeWithCopyConstructorOnly = v;
}
-bool AbstractMetaClass::determineValueTypeWithCopyConstructorOnly(const AbstractMetaClass *c)
+bool AbstractMetaClass::determineValueTypeWithCopyConstructorOnly(const AbstractMetaClassCPtr &c,
+ bool avoidProtectedHack)
{
if (!c->typeEntry()->isValue())
return false;
if (c->attributes().testFlag(AbstractMetaClass::HasRejectedDefaultConstructor))
return false;
- const auto ctors = c->queryFunctions(FunctionQueryOption::Constructors);
+ const auto ctors = c->queryFunctions(FunctionQueryOption::AnyConstructor);
bool copyConstructorFound = false;
for (const auto &ctor : ctors) {
switch (ctor->functionType()) {
case AbstractMetaFunction::ConstructorFunction:
- return false;
+ if (!ctor->isPrivate() && (ctor->isPublic() || !avoidProtectedHack))
+ return false;
+ break;
case AbstractMetaFunction::CopyConstructorFunction:
copyConstructorFound = true;
break;
@@ -1830,8 +1829,8 @@ void AbstractMetaClass::format(QDebug &debug) const
if (debug.verbosity() > 2)
debug << static_cast<const void *>(this) << ", ";
debug << '"' << qualifiedCppName();
- if (const int count = d->m_templateArgs.size()) {
- for (int i = 0; i < count; ++i)
+ if (const auto count = d->m_templateArgs.size()) {
+ for (qsizetype i = 0; i < count; ++i)
debug << (i ? ',' : '<') << d->m_templateArgs.at(i)->qualifiedCppName();
debug << '>';
}
@@ -1842,9 +1841,25 @@ void AbstractMetaClass::format(QDebug &debug) const
debug << " [final]";
if (attributes().testFlag(AbstractMetaClass::Deprecated))
debug << " [deprecated]";
+
+ if (d->m_hasPrivateConstructor)
+ debug << " [private constructor]";
+ if (d->m_hasDeletedDefaultConstructor)
+ debug << " [deleted default constructor]";
+ if (d->m_hasDeletedCopyConstructor)
+ debug << " [deleted copy constructor]";
+ if (d->m_hasPrivateDestructor)
+ debug << " [private destructor]";
+ if (d->m_hasProtectedDestructor)
+ debug << " [protected destructor]";
+ if (d->m_hasVirtualDestructor)
+ debug << " [virtual destructor]";
+ if (d->m_valueTypeWithCopyConstructorOnly)
+ debug << " [value type with copy constructor only]";
+
if (!d->m_baseClasses.isEmpty()) {
debug << ", inherits ";
- for (auto b : d->m_baseClasses)
+ for (const auto &b : d->m_baseClasses)
debug << " \"" << b->name() << '"';
}
@@ -1859,13 +1874,13 @@ void AbstractMetaClass::format(QDebug &debug) const
if (auto templateBase = templateBaseClass()) {
const auto &instantiatedTypes = templateBaseClassInstantiations();
debug << ", instantiates \"" << templateBase->name();
- for (int i = 0, count = instantiatedTypes.size(); i < count; ++i)
+ for (qsizetype i = 0, count = instantiatedTypes.size(); i < count; ++i)
debug << (i ? ',' : '<') << instantiatedTypes.at(i).name();
debug << ">\"";
}
- if (const int count = d->m_propertySpecs.size()) {
+ if (const auto count = d->m_propertySpecs.size()) {
debug << ", properties (" << count << "): [";
- for (int i = 0; i < count; ++i) {
+ for (qsizetype i = 0; i < count; ++i) {
if (i)
debug << ", ";
d->m_propertySpecs.at(i).formatDebug(debug);
@@ -1879,18 +1894,18 @@ void AbstractMetaClass::formatMembers(QDebug &debug) const
if (!d->m_enums.isEmpty())
debug << ", enums[" << d->m_enums.size() << "]=" << d->m_enums;
if (!d->m_functions.isEmpty()) {
- const int count = d->m_functions.size();
+ const auto count = d->m_functions.size();
debug << ", functions=[" << count << "](";
- for (int i = 0; i < count; ++i) {
+ for (qsizetype i = 0; i < count; ++i) {
if (i)
debug << ", ";
d->m_functions.at(i)->formatDebugBrief(debug);
}
debug << ')';
}
- if (const int count = d->m_fields.size()) {
+ if (const auto count = d->m_fields.size()) {
debug << ", fields=[" << count << "](";
- for (int i = 0; i < count; ++i) {
+ for (qsizetype i = 0; i < count; ++i) {
if (i)
debug << ", ";
d->m_fields.at(i).formatDebug(debug);
@@ -1909,6 +1924,18 @@ void AbstractMetaClass::setSourceLocation(const SourceLocation &sourceLocation)
d->m_sourceLocation = sourceLocation;
}
+AbstractMetaClassCList allBaseClasses(const AbstractMetaClassCPtr metaClass)
+{
+ AbstractMetaClassCList result;
+ recurseClassHierarchy(metaClass, [&result] (const AbstractMetaClassCPtr &c) {
+ if (!result.contains(c))
+ result.append(c);
+ return false;
+ });
+ result.removeFirst(); // remove self
+ return result;
+}
+
QDebug operator<<(QDebug debug, const UsingMember &d)
{
QDebugStateSaver saver(debug);
@@ -1919,20 +1946,38 @@ QDebug operator<<(QDebug debug, const UsingMember &d)
return debug;
}
-QDebug operator<<(QDebug d, const AbstractMetaClass *ac)
+void formatMetaClass(QDebug &ddebug, const AbstractMetaClass *ac)
{
- QDebugStateSaver saver(d);
- d.noquote();
- d.nospace();
- d << "AbstractMetaClass(";
- if (ac) {
- ac->format(d);
- if (d.verbosity() > 2)
- ac->formatMembers(d);
+ QDebugStateSaver saver(ddebug);
+ ddebug.noquote();
+ ddebug.nospace();
+ ddebug << "AbstractMetaClass(";
+ if (ac != nullptr) {
+ ac->format(ddebug);
+ if (ddebug.verbosity() > 2)
+ ac->formatMembers(ddebug);
} else {
- d << '0';
+ ddebug << '0';
}
- d << ')';
+ ddebug << ')';
+}
+
+QDebug operator<<(QDebug d, const AbstractMetaClassCPtr &ac)
+{
+ formatMetaClass(d, ac.get());
return d;
}
+
+QDebug operator<<(QDebug d, const AbstractMetaClassPtr &ac)
+{
+ formatMetaClass(d, ac.get());
+ return d;
+}
+
+QDebug operator<<(QDebug d, const AbstractMetaClass *ac)
+{
+ formatMetaClass(d, ac);
+ return d;
+}
+
#endif // !QT_NO_DEBUG_STREAM
diff --git a/sources/shiboken6/ApiExtractor/abstractmetalang.h b/sources/shiboken6/ApiExtractor/abstractmetalang.h
index cc7fd7cec..3dc876690 100644
--- a/sources/shiboken6/ApiExtractor/abstractmetalang.h
+++ b/sources/shiboken6/ApiExtractor/abstractmetalang.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef ABSTRACTMETALANG_H
#define ABSTRACTMETALANG_H
@@ -32,7 +7,6 @@
#include "abstractmetalang_enums.h"
#include "abstractmetalang_typedefs.h"
#include "enclosingclassmixin.h"
-#include "typesystem_enums.h"
#include "typesystem_typedefs.h"
#include <QtCore/qobjectdefs.h>
@@ -73,7 +47,8 @@ public:
HasRejectedDefaultConstructor = 0x00000020,
FinalCppClass = 0x00000100,
- Deprecated = 0x00000200
+ Deprecated = 0x00000200,
+ Struct = 0x00000400
};
Q_DECLARE_FLAGS(Attributes, Attribute)
Q_FLAG(Attribute)
@@ -91,11 +66,13 @@ public:
~AbstractMetaClass();
const AbstractMetaFunctionCList &functions() const;
+ const AbstractMetaFunctionCList &userAddedPythonOverrides() const;
void setFunctions(const AbstractMetaFunctionCList &functions);
- void addFunction(const AbstractMetaFunctionCPtr &function);
+ static void addFunction(const AbstractMetaClassPtr &klass,
+ const AbstractMetaFunctionCPtr &function);
bool hasFunction(const QString &str) const;
- AbstractMetaFunctionCPtr findFunction(const QString& functionName) const;
- AbstractMetaFunctionCList findFunctions(const QString& functionName) const;
+ AbstractMetaFunctionCPtr findFunction(QAnyStringView functionName) const;
+ AbstractMetaFunctionCList findFunctions(QAnyStringView functionName) const;
AbstractMetaFunctionCPtr findOperatorBool() const;
// Find a Qt-style isNull() method suitable for nb_bool
AbstractMetaFunctionCPtr findQtIsNullMethod() const;
@@ -106,8 +83,8 @@ public:
bool hasCopyConstructor() const;
bool hasPrivateCopyConstructor() const;
- void addDefaultConstructor();
- void addDefaultCopyConstructor();
+ static void addDefaultConstructor(const AbstractMetaClassPtr &klass);
+ static void addDefaultCopyConstructor(const AbstractMetaClassPtr &klass);
bool hasNonPrivateConstructor() const;
void setHasNonPrivateConstructor(bool value);
@@ -138,13 +115,15 @@ public:
bool isImplicitlyCopyConstructible() const;
bool canAddDefaultCopyConstructor() const;
+ static void addSynthesizedComparisonOperators(const AbstractMetaClassPtr &c);
+
bool generateExceptionHandling() const;
CppWrapper cppWrapper() const;
const UsingMembers &usingMembers() const;
void addUsingMember(const UsingMember &um);
- bool isUsingMember(const AbstractMetaClass *c, const QString &memberName,
+ bool isUsingMember(const AbstractMetaClassCPtr &c, const QString &memberName,
Access minimumAccess) const;
bool hasUsingMemberFor(const QString &memberName) const;
@@ -182,7 +161,7 @@ public:
void addField(const AbstractMetaField &field);
bool hasStaticFields() const;
- std::optional<AbstractMetaField> findField(const QString &name) const;
+ std::optional<AbstractMetaField> findField(QStringView name) const;
const AbstractMetaEnumList &enums() const;
AbstractMetaEnumList &enums();
@@ -209,42 +188,40 @@ public:
QString baseClassName() const;
- AbstractMetaClass *defaultSuperclass() const; // Attribute "default-superclass"
- void setDefaultSuperclass(AbstractMetaClass *s);
+ AbstractMetaClassCPtr defaultSuperclass() const; // Attribute "default-superclass"
+ void setDefaultSuperclass(const AbstractMetaClassPtr &s);
- AbstractMetaClass *baseClass() const;
- const AbstractMetaClassList &baseClasses() const;
+ AbstractMetaClassCPtr baseClass() const;
+ const AbstractMetaClassCList &baseClasses() const;
// base classes including defaultSuperclass
- AbstractMetaClassList typeSystemBaseClasses() const;
+ AbstractMetaClassCList typeSystemBaseClasses() const;
// Recursive list of all base classes including defaultSuperclass
- AbstractMetaClassList allTypeSystemAncestors() const;
+ AbstractMetaClassCList allTypeSystemAncestors() const;
- void addBaseClass(AbstractMetaClass *base_class);
- void setBaseClass(AbstractMetaClass *base_class);
+ void addBaseClass(const AbstractMetaClassCPtr &base_class);
+ void setBaseClass(const AbstractMetaClassCPtr &base_class);
/**
* \return the namespace from another package which this namespace extends.
*/
- const AbstractMetaClass *extendedNamespace() const;
- void setExtendedNamespace(const AbstractMetaClass *e);
+ AbstractMetaClassCPtr extendedNamespace() const;
+ void setExtendedNamespace(const AbstractMetaClassCPtr &e);
- const AbstractMetaClassList &innerClasses() const;
- void addInnerClass(AbstractMetaClass* cl);
- void setInnerClasses(const AbstractMetaClassList &innerClasses);
+ const AbstractMetaClassCList &innerClasses() const;
+ void addInnerClass(const AbstractMetaClassPtr &cl);
+ void setInnerClasses(const AbstractMetaClassCList &innerClasses);
QString package() const;
bool isNamespace() const;
bool isInvisibleNamespace() const;
+ bool isInlineNamespace() const;
- bool isQObject() const { return inheritsFrom(u"QObject"_qs); }
bool isQtNamespace() const;
QString qualifiedCppName() const;
bool hasSignals() const;
- bool inheritsFrom(const AbstractMetaClass *other) const;
- bool inheritsFrom(const QString &name) const;
/**
* Says if the class that declares or inherits a virtual function.
@@ -253,60 +230,46 @@ public:
bool isPolymorphic() const;
/**
- * Tells if this class has one or more functions that are protected.
- * \return true if the class has protected functions.
- */
- bool hasProtectedFunctions() const;
-
- /**
* Tells if this class has one or more fields (member variables) that are protected.
* \return true if the class has protected fields.
*/
bool hasProtectedFields() const;
- /**
- * Tells if this class has one or more members (functions or fields) that are protected.
- * \return true if the class has protected members.
- */
- bool hasProtectedMembers() const;
-
- const TypeEntries &templateArguments() const;
- void setTemplateArguments(const TypeEntries &);
+ const TypeEntryCList &templateArguments() const;
+ void setTemplateArguments(const TypeEntryCList &);
// only valid during metabuilder's run
const QStringList &baseClassNames() const;
void setBaseClassNames(const QStringList &names);
- const ComplexTypeEntry *typeEntry() const;
- ComplexTypeEntry *typeEntry();
- void setTypeEntry(ComplexTypeEntry *type);
+ ComplexTypeEntryCPtr typeEntry() const;
+ ComplexTypeEntryPtr typeEntry();
+ void setTypeEntry(const ComplexTypeEntryPtr &type);
- void setHasHashFunction(bool on);
+ /// Returns the global hash function as found by the code parser
+ QString hashFunction() const;
+ void setHashFunction(const QString &);
+ /// Returns whether the class has a qHash() overload. Currently unused,
+ /// specified in type system.
bool hasHashFunction() const;
- bool hasDefaultToStringFunction() const;
-
- bool hasEqualsOperator() const;
- void setHasEqualsOperator(bool on);
-
- bool hasCloneOperator() const;
- void setHasCloneOperator(bool on);
-
const QList<QPropertySpec> &propertySpecs() const;
void addPropertySpec(const QPropertySpec &spec);
+ void setPropertyDocumentation(const QString &name, const Documentation &doc);
// Helpers to search whether a functions is a property setter/getter/reset
enum class PropertyFunction
{
Read,
Write,
- Reset
+ Reset,
+ Notify
};
struct PropertyFunctionSearchResult
{
- int index;
+ qsizetype index;
PropertyFunction function;
};
@@ -324,8 +287,8 @@ public:
void sortFunctions();
- const AbstractMetaClass *templateBaseClass() const;
- void setTemplateBaseClass(const AbstractMetaClass *cls);
+ AbstractMetaClassCPtr templateBaseClass() const;
+ void setTemplateBaseClass(const AbstractMetaClassCPtr &cls);
bool hasTemplateBaseClassInstantiations() const;
const AbstractMetaTypeList &templateBaseClassInstantiations() const;
@@ -349,28 +312,27 @@ public:
bool isCopyable() const;
bool isValueTypeWithCopyConstructorOnly() const;
void setValueTypeWithCopyConstructorOnly(bool v);
- static bool determineValueTypeWithCopyConstructorOnly(const AbstractMetaClass *c);
-
- static AbstractMetaClass *findClass(const AbstractMetaClassList &classes,
- const QString &name);
- static const AbstractMetaClass *findClass(const AbstractMetaClassCList &classes,
- const QString &name);
- static AbstractMetaClass *findClass(const AbstractMetaClassList &classes,
- const TypeEntry* typeEntry);
- static const AbstractMetaClass *findClass(const AbstractMetaClassCList &classes,
- const TypeEntry* typeEntry);
- const AbstractMetaClass *findBaseClass(const QString &qualifiedName) const;
+ static bool determineValueTypeWithCopyConstructorOnly(const AbstractMetaClassCPtr &c,
+ bool avoidProtectedHack);
+
+ static AbstractMetaClassPtr findClass(const AbstractMetaClassList &classes,
+ QAnyStringView name);
+ static AbstractMetaClassCPtr findClass(const AbstractMetaClassCList &classes,
+ QAnyStringView name);
+ static AbstractMetaClassPtr findClass(const AbstractMetaClassList &classes,
+ const TypeEntryCPtr &typeEntry);
+ static AbstractMetaClassCPtr findClass(const AbstractMetaClassCList &classes,
+ const TypeEntryCPtr &typeEntry);
+ AbstractMetaClassCPtr findBaseClass(const QString &qualifiedName) const;
static std::optional<AbstractMetaEnumValue> findEnumValue(const AbstractMetaClassList &classes,
const QString &string);
- static std::optional<AbstractMetaEnum> findEnum(const AbstractMetaClassList &classes,
- const EnumTypeEntry *entry);
SourceLocation sourceLocation() const;
void setSourceLocation(const SourceLocation &sourceLocation);
// For AbstractMetaBuilder
- void fixFunctions();
+ static void fixFunctions(const AbstractMetaClassPtr &klass);
bool needsInheritanceSetup() const;
void setInheritanceDone(bool b);
bool inheritanceDone() const;
@@ -382,17 +344,15 @@ private:
#ifndef QT_NO_DEBUG_STREAM
void format(QDebug &d) const;
void formatMembers(QDebug &d) const;
+ friend QDebug operator<<(QDebug d, const AbstractMetaClassCPtr &ac);
+ friend QDebug operator<<(QDebug d, const AbstractMetaClassPtr &ac);
friend QDebug operator<<(QDebug d, const AbstractMetaClass *ac);
+ friend void formatMetaClass(QDebug &, const AbstractMetaClass *);
#endif
QScopedPointer<AbstractMetaClassPrivate> d;
};
-inline bool AbstractMetaClass::isFinalInTargetLang() const
-{
- return attributes().testFlag(FinalInTargetLang);
-}
-
inline bool AbstractMetaClass::isAbstract() const
{
return attributes().testFlag(Abstract);
@@ -401,7 +361,7 @@ inline bool AbstractMetaClass::isAbstract() const
template <class Function>
void AbstractMetaClass::invisibleNamespaceRecursion(Function f) const
{
- for (auto ic : innerClasses()) {
+ for (const auto &ic : innerClasses()) {
if (ic->isInvisibleNamespace()) {
f(ic);
ic->invisibleNamespaceRecursion(f);
@@ -409,6 +369,23 @@ void AbstractMetaClass::invisibleNamespaceRecursion(Function f) const
}
}
+bool inheritsFrom(const AbstractMetaClassCPtr &c, const AbstractMetaClassCPtr &other);
+bool inheritsFrom(const AbstractMetaClassCPtr &c, QAnyStringView name);
+inline bool isQObject(const AbstractMetaClassCPtr &c)
+{
+ return inheritsFrom(c, "QObject");
+}
+
+AbstractMetaClassCPtr findBaseClass(const AbstractMetaClassCPtr &c,
+ const QString &qualifiedName);
+
+/// Return type entry of the base class that declares the parent management
+TypeEntryCPtr parentManagementEntry(const AbstractMetaClassCPtr &klass);
+inline bool hasParentManagement(const AbstractMetaClassCPtr &c)
+{ return bool(parentManagementEntry(c)); }
+
+AbstractMetaClassCList allBaseClasses(const AbstractMetaClassCPtr metaClass);
+
Q_DECLARE_OPERATORS_FOR_FLAGS(AbstractMetaClass::CppWrapper);
Q_DECLARE_OPERATORS_FOR_FLAGS(AbstractMetaClass::Attributes);
diff --git a/sources/shiboken6/ApiExtractor/abstractmetalang_enums.h b/sources/shiboken6/ApiExtractor/abstractmetalang_enums.h
index c78e84320..9047c6bcd 100644
--- a/sources/shiboken6/ApiExtractor/abstractmetalang_enums.h
+++ b/sources/shiboken6/ApiExtractor/abstractmetalang_enums.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef ABSTRACTMETALANG_ENUMS_H
#define ABSTRACTMETALANG_ENUMS_H
@@ -32,21 +7,19 @@
#include <QtCore/QFlags>
enum class FunctionQueryOption {
- Constructors = 0x0000001, // Only constructors
- CopyConstructor = 0x0000002, // Only copy constructors
+ AnyConstructor = 0x0000001, // Any constructor (copy/move)
+ Constructors = 0x0000002, // Constructors except copy/move
+ CopyConstructor = 0x0000004, // Only copy constructors
//Destructors = 0x0000002, // Only destructors. Not included in class.
- FinalInTargetLangFunctions = 0x0000008, // Only functions that are non-virtual in TargetLang
ClassImplements = 0x0000020, // Only functions implemented by the current class
StaticFunctions = 0x0000080, // Only static functions
Signals = 0x0000100, // Only signals
NormalFunctions = 0x0000200, // Only functions that aren't signals
Visible = 0x0000400, // Only public and protected functions
- WasPublic = 0x0001000, // Only functions that were originally public
NonStaticFunctions = 0x0004000, // No static functions
Empty = 0x0008000, // Empty overrides of abstract functions
Invisible = 0x0010000, // Only private functions
VirtualInCppFunctions = 0x0020000, // Only functions that are virtual in C++
- VirtualInTargetLangFunctions = 0x0080000, // Only functions which are virtual in TargetLang
NotRemoved = 0x0400000, // Only functions that have not been removed
OperatorOverloads = 0x2000000, // Only functions that are operator overloads
GenerateExceptionHandling = 0x4000000,
@@ -58,14 +31,17 @@ Q_DECLARE_FLAGS(FunctionQueryOptions, FunctionQueryOption)
Q_DECLARE_OPERATORS_FOR_FLAGS(FunctionQueryOptions)
enum class OperatorQueryOption {
- ArithmeticOp = 0x01, // Arithmetic: +, -, *, /, %, +=, -=, *=, /=, %=, unary+, unary-
- IncDecrementOp = 0x02, // ++, --
- BitwiseOp = 0x04, // Bitwise: <<, <<=, >>, >>=, ~, &, &=, |, |=, ^, ^=
- ComparisonOp = 0x08, // Comparison: <, <=, >, >=, !=, ==
- LogicalOp = 0x10, // Logical: !, &&, ||
- ConversionOp = 0x20, // Conversion: operator [const] TYPE()
- SubscriptionOp = 0x40, // Subscription: []
- AssignmentOp = 0x80 // Assignment: =
+ ArithmeticOp = 0x01, // Arithmetic: +, -, *, /, %, +=, -=, *=, /=, %=, unary+, unary-
+ IncDecrementOp = 0x02, // ++, --
+ BitwiseOp = 0x04, // Bitwise: <<, <<=, >>, >>=, ~, &, &=, |, |=, ^, ^=
+ ComparisonOp = 0x08, // Comparison: <, <=, >, >=, !=, ==
+ // Comparing to instances of owner class: <, <=, >, >=, !=, ==
+ // (bool operator==(QByteArray,QByteArray) but not bool operator==(QByteArray,const char *)
+ SymmetricalComparisonOp = 0x10,
+ LogicalOp = 0x20, // Logical: !, &&, ||
+ ConversionOp = 0x40, // Conversion: operator [const] TYPE()
+ SubscriptionOp = 0x80, // Subscription: []
+ AssignmentOp = 0x100 // Assignment: =
};
Q_DECLARE_FLAGS(OperatorQueryOptions, OperatorQueryOption)
diff --git a/sources/shiboken6/ApiExtractor/abstractmetalang_helpers.h b/sources/shiboken6/ApiExtractor/abstractmetalang_helpers.h
index afe5c954a..2a053ceaf 100644
--- a/sources/shiboken6/ApiExtractor/abstractmetalang_helpers.h
+++ b/sources/shiboken6/ApiExtractor/abstractmetalang_helpers.h
@@ -1,49 +1,27 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef ABSTRACTMETALANG_HELPERS_H
#define ABSTRACTMETALANG_HELPERS_H
+#include "abstractmetalang_typedefs.h"
+
template <class MetaClass>
-MetaClass *findByName(QList<MetaClass *> haystack, QStringView needle)
+std::shared_ptr<MetaClass> findByName(const QList<std::shared_ptr<MetaClass> > &haystack,
+ QStringView needle)
{
- for (MetaClass *c : haystack) {
+ for (const auto &c : haystack) {
if (c->name() == needle)
return c;
}
- return nullptr;
+ return {};
}
// Helper for recursing the base classes of an AbstractMetaClass.
// Returns the class for which the predicate is true.
template <class Predicate>
-const AbstractMetaClass *recurseClassHierarchy(const AbstractMetaClass *klass,
- Predicate pred)
+AbstractMetaClassCPtr recurseClassHierarchy(const AbstractMetaClassCPtr &klass,
+ Predicate pred)
{
if (pred(klass))
return klass;
@@ -51,7 +29,7 @@ const AbstractMetaClass *recurseClassHierarchy(const AbstractMetaClass *klass,
if (auto r = recurseClassHierarchy(base, pred))
return r;
}
- return nullptr;
+ return {};
}
#endif // ABSTRACTMETALANG_HELPERS_H
diff --git a/sources/shiboken6/ApiExtractor/abstractmetalang_typedefs.h b/sources/shiboken6/ApiExtractor/abstractmetalang_typedefs.h
index cdfcdab1e..802f549cf 100644
--- a/sources/shiboken6/ApiExtractor/abstractmetalang_typedefs.h
+++ b/sources/shiboken6/ApiExtractor/abstractmetalang_typedefs.h
@@ -1,37 +1,13 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef ABSTRACTMETALANG_TYPEDEFS_H
#define ABSTRACTMETALANG_TYPEDEFS_H
-#include <QtCore/QSharedPointer>
#include <QtCore/QList>
+#include <memory>
+
class AbstractMetaClass;
class AbstractMetaField;
class AbstractMetaArgument;
@@ -41,12 +17,14 @@ class AbstractMetaFunction;
class AbstractMetaType;
struct UsingMember;
-using AbstractMetaFunctionPtr = QSharedPointer<AbstractMetaFunction>;
-using AbstractMetaFunctionCPtr = QSharedPointer<const AbstractMetaFunction>;
+using AbstractMetaFunctionPtr = std::shared_ptr<AbstractMetaFunction>;
+using AbstractMetaFunctionCPtr = std::shared_ptr<const AbstractMetaFunction>;
+using AbstractMetaClassPtr = std::shared_ptr<AbstractMetaClass>;
+using AbstractMetaClassCPtr = std::shared_ptr<const AbstractMetaClass>;
using AbstractMetaArgumentList = QList<AbstractMetaArgument>;
-using AbstractMetaClassList = QList<AbstractMetaClass *>;
-using AbstractMetaClassCList = QList<const AbstractMetaClass *>;
+using AbstractMetaClassList = QList<AbstractMetaClassPtr>;
+using AbstractMetaClassCList = QList<AbstractMetaClassCPtr>;
using AbstractMetaEnumList = QList<AbstractMetaEnum>;
using AbstractMetaEnumValueList = QList<AbstractMetaEnumValue>;
using AbstractMetaFieldList = QList<AbstractMetaField>;
diff --git a/sources/shiboken6/ApiExtractor/abstractmetatype.cpp b/sources/shiboken6/ApiExtractor/abstractmetatype.cpp
index f099bba08..dcfc74bbb 100644
--- a/sources/shiboken6/ApiExtractor/abstractmetatype.cpp
+++ b/sources/shiboken6/ApiExtractor/abstractmetatype.cpp
@@ -1,38 +1,17 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "abstractmetatype.h"
#include "abstractmetabuilder.h"
#include "abstractmetalang.h"
#include "messages.h"
#include "typedatabase.h"
-#include "typesystem.h"
-#include "parser/codemodel.h"
+#include "containertypeentry.h"
+#include "enumtypeentry.h"
+#include "flagstypeentry.h"
+
+#include "qtcompat.h"
+#include "typeinfo.h"
#ifndef QT_NO_DEBUG_STREAM
# include <QtCore/QDebug>
@@ -40,15 +19,96 @@
#include <QtCore/QHash>
#include <QtCore/QSharedData>
-#include <QtCore/QSharedPointer>
#include <QtCore/QStack>
-using AbstractMetaTypeCPtr = QSharedPointer<const AbstractMetaType>;
+#include <memory>
+
+using namespace Qt::StringLiterals;
+
+using AbstractMetaTypeCPtr = std::shared_ptr<const AbstractMetaType>;
+
+const QSet<QString> &AbstractMetaType::cppFloatTypes()
+{
+ static const QSet<QString> result{u"double"_s, u"float"_s};
+ return result;
+}
+
+const QSet<QString> &AbstractMetaType::cppSignedCharTypes()
+{
+ static const QSet<QString> result{u"char"_s, u"signed char"_s};
+ return result;
+}
+
+const QSet<QString> &AbstractMetaType::cppUnsignedCharTypes()
+{
+ static const QSet<QString> result{u"unsigned char"_s};
+ return result;
+}
+
+const QSet<QString> &AbstractMetaType::cppCharTypes()
+{
+ static const QSet<QString> result = cppSignedCharTypes() | cppUnsignedCharTypes();
+ return result;
+}
+
+const QSet<QString> &AbstractMetaType::cppSignedIntTypes()
+{
+ static QSet<QString> result;
+ if (result.isEmpty()) {
+ result = {u"char"_s, u"signed char"_s, u"short"_s, u"short int"_s,
+ u"signed short"_s, u"signed short int"_s,
+ u"int"_s, u"signed int"_s,
+ u"long"_s, u"long int"_s,
+ u"signed long"_s, u"signed long int"_s,
+ u"long long"_s, u"long long int"_s,
+ u"signed long long int"_s,
+ u"ptrdiff_t"_s};
+ result |= cppSignedCharTypes();
+ }
+ return result;
+}
+
+const QSet<QString> &AbstractMetaType::cppUnsignedIntTypes()
+{
+ static QSet<QString> result;
+ if (result.isEmpty()) {
+ result = {u"unsigned short"_s, u"unsigned short int"_s,
+ u"unsigned"_s, u"unsigned int"_s,
+ u"unsigned long"_s, u"unsigned long int"_s,
+ u"unsigned long long"_s,
+ u"unsigned long long int"_s,
+ u"size_t"_s};
+ result |= cppUnsignedCharTypes();
+ }
+ return result;
+}
+
+const QSet<QString> &AbstractMetaType::cppIntegralTypes()
+{
+ static QSet<QString> result;
+ if (result.isEmpty()) {
+ result |= cppSignedIntTypes();
+ result |= cppUnsignedIntTypes();
+ result.insert(u"bool"_s);
+ }
+ return result;
+}
+
+const QSet<QString> &AbstractMetaType::cppPrimitiveTypes()
+{
+ static QSet<QString> result;
+ if (result.isEmpty()) {
+ result |= cppIntegralTypes();
+ result |= cppFloatTypes();
+ result.insert(u"wchar_t"_s);
+ }
+ return result;
+}
class AbstractMetaTypeData : public QSharedData
{
public:
- AbstractMetaTypeData(const TypeEntry *t);
+ AbstractMetaTypeData(const TypeEntryCPtr &t);
int actualIndirections() const;
bool passByConstRef() const;
@@ -57,9 +117,14 @@ public:
bool hasTemplateChildren() const;
QString formatSignature(bool minimal) const;
QString formatPythonSignature() const;
+ bool isEquivalent(const AbstractMetaTypeData &rhs) const;
bool equals(const AbstractMetaTypeData &rhs) const;
+ QStringList instantiationCppSignatures() const;
- const TypeEntry *m_typeEntry;
+ template <class Predicate>
+ bool generateOpaqueContainer(Predicate p) const;
+
+ TypeEntryCPtr m_typeEntry;
AbstractMetaTypeList m_instantiations;
mutable QString m_cachedCppSignature;
mutable QString m_cachedPythonSignature;
@@ -81,7 +146,7 @@ public:
AbstractMetaTypeList m_children;
};
-AbstractMetaTypeData::AbstractMetaTypeData(const TypeEntry *t) :
+AbstractMetaTypeData::AbstractMetaTypeData(const TypeEntryCPtr &t) :
m_typeEntry(t),
m_constant(false),
m_volatile(false),
@@ -90,7 +155,16 @@ AbstractMetaTypeData::AbstractMetaTypeData(const TypeEntry *t) :
{
}
-AbstractMetaType::AbstractMetaType(const TypeEntry *t) : d(new AbstractMetaTypeData(t))
+QStringList AbstractMetaTypeData::instantiationCppSignatures() const
+{
+ QStringList result;
+ for (const auto &i : m_instantiations)
+ result.append(i.cppSignature());
+ return result;
+}
+
+AbstractMetaType::AbstractMetaType(const TypeEntryCPtr &t) :
+ d(new AbstractMetaTypeData(t))
{
Q_ASSERT(t);
}
@@ -104,9 +178,9 @@ AbstractMetaType &AbstractMetaType::operator=(const AbstractMetaType &) = defaul
AbstractMetaType::AbstractMetaType(const AbstractMetaType &rhs) = default;
-AbstractMetaType::AbstractMetaType(AbstractMetaType &&) = default;
+AbstractMetaType::AbstractMetaType(AbstractMetaType &&) noexcept = default;
-AbstractMetaType &AbstractMetaType::operator=(AbstractMetaType &&) = default;
+AbstractMetaType &AbstractMetaType::operator=(AbstractMetaType &&) noexcept = default;
AbstractMetaType::~AbstractMetaType() = default;
@@ -157,16 +231,21 @@ const AbstractMetaTypeList &AbstractMetaType::instantiations() const
return d->m_instantiations;
}
+QStringList AbstractMetaType::instantiationCppSignatures() const
+{
+ return d->instantiationCppSignatures();
+}
+
// For applying the <array> function argument modification: change into a type
// where "int *" becomes "int[]".
bool AbstractMetaType::applyArrayModification(QString *errorMessage)
{
if (d->m_pattern == AbstractMetaType::NativePointerAsArrayPattern) {
- *errorMessage = QLatin1String("<array> modification already applied.");
+ *errorMessage = u"<array> modification already applied."_s;
return false;
}
- if (!d->m_arrayElementType.isNull()) {
+ if (d->m_arrayElementType) {
QTextStream(errorMessage) << "The type \"" << cppSignature()
<< "\" is an array of " << d->m_arrayElementType->name() << '.';
return false;
@@ -190,12 +269,12 @@ bool AbstractMetaType::applyArrayModification(QString *errorMessage)
return true;
}
-const TypeEntry *AbstractMetaType::typeEntry() const
+TypeEntryCPtr AbstractMetaType::typeEntry() const
{
return d->m_typeEntry;
}
-void AbstractMetaType::setTypeEntry(const TypeEntry *type)
+void AbstractMetaType::setTypeEntry(const TypeEntryCPtr &type)
{
if (d->m_typeEntry != type)
d->m_typeEntry = type;
@@ -214,13 +293,13 @@ QString AbstractMetaType::originalTypeDescription() const
void AbstractMetaType::setOriginalTemplateType(const AbstractMetaType &type)
{
- if (d->m_originalTemplateType.isNull() || *d->m_originalTemplateType != type)
+ if (!d->m_originalTemplateType || *d->m_originalTemplateType != type)
d->m_originalTemplateType.reset(new AbstractMetaType(type));
}
const AbstractMetaType *AbstractMetaType::originalTemplateType() const
{
- return d->m_originalTemplateType.data();
+ return d->m_originalTemplateType.get();
}
AbstractMetaType AbstractMetaType::getSmartPointerInnerType() const
@@ -249,7 +328,7 @@ AbstractMetaTypeList AbstractMetaType::nestedArrayTypes() const
}
break;
case NativePointerAsArrayPattern:
- result.append(*d->m_arrayElementType.data());
+ result.append(*d->m_arrayElementType.get());
break;
default:
break;
@@ -277,6 +356,12 @@ bool AbstractMetaType::passByValue() const
return d->passByValue();
}
+bool AbstractMetaType::useStdMove() const
+{
+ return (isUniquePointer() && d->passByValue())
+ || d->m_referenceType == RValueReference;
+}
+
ReferenceType AbstractMetaType::referenceType() const
{
return d->m_referenceType;
@@ -355,17 +440,28 @@ int AbstractMetaType::arrayElementCount() const
const AbstractMetaType *AbstractMetaType::arrayElementType() const
{
- return d->m_arrayElementType.data();
+ return d->m_arrayElementType.get();
}
void AbstractMetaType::setArrayElementType(const AbstractMetaType &t)
{
- if (d->m_arrayElementType.isNull() || *d->m_arrayElementType != t) {
+ if (!d->m_arrayElementType || *d->m_arrayElementType != t) {
d->m_arrayElementType.reset(new AbstractMetaType(t));
d->m_signaturesDirty = true;
}
}
+AbstractMetaType AbstractMetaType::plainType() const
+{
+ AbstractMetaType result = *this;
+ result.clearIndirections();
+ result.setReferenceType(NoReference);
+ result.setConstant(false);
+ result.setVolatile(false);
+ result.decideUsagePattern();
+ return result;
+}
+
QString AbstractMetaType::cppSignature() const
{
const AbstractMetaTypeData *cd = d.constData();
@@ -473,10 +569,33 @@ bool AbstractMetaType::hasTemplateChildren() const
static inline QString formatArraySize(int e)
{
QString result;
- result += QLatin1Char('[');
+ result += u'[';
if (e >= 0)
result += QString::number(e);
- result += QLatin1Char(']');
+ result += u']';
+ return result;
+}
+
+// Return the number of template parameters; remove the default
+// non template type parameter of std::span from the signature.
+static qsizetype stripDefaultTemplateArgs(const TypeEntryCPtr &te,
+ const AbstractMetaTypeList &instantiations)
+{
+ static const char16_t dynamicExtent64[] = u"18446744073709551615"; // size_t(-1)
+ static const char16_t dynamicExtent32[] = u"4294967295";
+
+ qsizetype result = instantiations.size();
+ if (result == 0 || !te->isContainer())
+ return result;
+ auto cte = std::static_pointer_cast<const ContainerTypeEntry>(te);
+ if (cte->containerKind() != ContainerTypeEntry::SpanContainer)
+ return result;
+ const auto lastTe = instantiations.constLast().typeEntry();
+ if (lastTe->type() == TypeEntry::ConstantValueType) {
+ const QString &name = lastTe->name();
+ if (name == dynamicExtent64 || name == dynamicExtent32)
+ --result;
+ }
return result;
}
@@ -484,13 +603,13 @@ QString AbstractMetaTypeData::formatSignature(bool minimal) const
{
QString result;
if (m_constant)
- result += QLatin1String("const ");
+ result += u"const "_s;
if (m_volatile)
- result += QLatin1String("volatile ");
+ result += u"volatile "_s;
if (m_pattern == AbstractMetaType::ArrayPattern) {
// Build nested array dimensions a[2][3] in correct order
result += m_arrayElementType->minimalSignature();
- const int arrayPos = result.indexOf(QLatin1Char('['));
+ const int arrayPos = result.indexOf(u'[');
if (arrayPos != -1)
result.insert(arrayPos, formatArraySize(m_arrayElementCount));
else
@@ -499,29 +618,30 @@ QString AbstractMetaTypeData::formatSignature(bool minimal) const
result += m_typeEntry->qualifiedCppName();
}
if (!m_instantiations.isEmpty()) {
- result += QLatin1Char('<');
+ result += u'<';
if (minimal)
- result += QLatin1Char(' ');
- for (int i = 0, size = m_instantiations.size(); i < size; ++i) {
+ result += u' ';
+ const auto size = stripDefaultTemplateArgs(m_typeEntry, m_instantiations);
+ for (qsizetype i = 0; i < size; ++i) {
if (i > 0)
- result += QLatin1Char(',');
+ result += u',';
result += m_instantiations.at(i).minimalSignature();
}
- result += QLatin1String(" >");
+ result += u'>';
}
if (!minimal && (!m_indirections.isEmpty() || m_referenceType != NoReference))
- result += QLatin1Char(' ');
+ result += u' ';
for (Indirection i : m_indirections)
result += TypeInfo::indirectionKeyword(i);
switch (m_referenceType) {
case NoReference:
break;
case LValueReference:
- result += QLatin1Char('&');
+ result += u'&';
break;
case RValueReference:
- result += QLatin1String("&&");
+ result += u"&&"_s;
break;
}
return result;
@@ -547,7 +667,7 @@ QString AbstractMetaTypeData::formatPythonSignature() const
*/
QString result;
if (m_pattern == AbstractMetaType::NativePointerAsArrayPattern)
- result += QLatin1String("array ");
+ result += u"array "_s;
// We no longer use the "const" qualifier for heuristics. Instead,
// NativePointerAsArrayPattern indicates when we have <array> in XML.
// if (m_typeEntry->isPrimitive() && isConstant())
@@ -555,12 +675,12 @@ QString AbstractMetaTypeData::formatPythonSignature() const
if (!m_typeEntry->isPrimitive() && !m_typeEntry->isSmartPointer()) {
const QString package = m_typeEntry->targetLangPackage();
if (!package.isEmpty())
- result += package + QLatin1Char('.');
+ result += package + u'.';
}
if (m_pattern == AbstractMetaType::ArrayPattern) {
// Build nested array dimensions a[2][3] in correct order
result += m_arrayElementType->formatPythonSignature();
- const int arrayPos = result.indexOf(QLatin1Char('['));
+ const int arrayPos = result.indexOf(u'[');
if (arrayPos != -1)
result.insert(arrayPos, formatArraySize(m_arrayElementCount));
else
@@ -569,22 +689,24 @@ QString AbstractMetaTypeData::formatPythonSignature() const
result += m_typeEntry->targetLangName();
}
if (!m_instantiations.isEmpty()) {
- result += QLatin1Char('[');
- for (int i = 0, size = m_instantiations.size(); i < size; ++i) {
+ result += u'[';
+ for (qsizetype i = 0, size = m_instantiations.size(); i < size; ++i) {
if (i > 0)
- result += QLatin1String(", ");
+ result += u", "_s;
result += m_instantiations.at(i).formatPythonSignature();
}
- result += QLatin1Char(']');
+ result += u']';
}
if (m_typeEntry->isPrimitive())
for (Indirection i : m_indirections)
result += TypeInfo::indirectionKeyword(i);
- // If it is a flags type, we replace it with the full name:
- // "PySide6.QtCore.Qt.ItemFlags" instead of "PySide6.QtCore.QFlags<Qt.ItemFlag>"
- if (m_typeEntry->isFlags())
- result = m_typeEntry->qualifiedTargetLangName();
- result.replace(QLatin1String("::"), QLatin1String("."));
+ // If it is a flags type, we replace it with the full name of the enum:
+ // "PySide6.QtCore.Qt.ItemFlag" instead of "PySide6.QtCore.QFlags<Qt.ItemFlag>"
+ if (m_typeEntry->isFlags()) {
+ const auto fte = std::static_pointer_cast<const FlagsTypeEntry>(m_typeEntry);
+ result = fte->originator()->qualifiedTargetLangName();
+ }
+ result.replace(u"::"_s, u"."_s);
return result;
}
@@ -595,7 +717,7 @@ QString AbstractMetaType::formatPythonSignature() const
bool AbstractMetaType::isCppPrimitive() const
{
- return d->m_pattern == PrimitivePattern && d->m_typeEntry->isCppPrimitive();
+ return d->m_pattern == PrimitivePattern && ::isCppPrimitive(d->m_typeEntry);
}
bool AbstractMetaType::isConstant() const
@@ -626,12 +748,12 @@ void AbstractMetaType::setVolatile(bool v)
static bool equalsCPtr(const AbstractMetaTypeCPtr &t1, const AbstractMetaTypeCPtr &t2)
{
- if (t1.isNull() != t2.isNull())
+ if (bool(t1) != bool(t2))
return false;
- return t1.isNull() || *t1 == *t2;
+ return !t1 || *t1 == *t2;
}
-bool AbstractMetaTypeData::equals(const AbstractMetaTypeData &rhs) const
+bool AbstractMetaTypeData::isEquivalent(const AbstractMetaTypeData &rhs) const
{
if (m_typeEntry != rhs.m_typeEntry
|| m_indirections != rhs.m_indirections
@@ -639,11 +761,6 @@ bool AbstractMetaTypeData::equals(const AbstractMetaTypeData &rhs) const
return false;
}
- if (m_constant != rhs.m_constant || m_volatile != rhs.m_volatile
- || m_referenceType != rhs.m_referenceType) {
- return false;
- }
-
if (!equalsCPtr(m_arrayElementType, rhs.m_arrayElementType))
return false;
@@ -655,19 +772,30 @@ bool AbstractMetaTypeData::equals(const AbstractMetaTypeData &rhs) const
return true;
}
-bool AbstractMetaType::equals(const AbstractMetaType &rhs) const
+bool AbstractMetaTypeData::equals(const AbstractMetaTypeData &rhs) const
+{
+ return m_constant == rhs.m_constant && m_volatile == rhs.m_volatile
+ && m_referenceType == rhs.m_referenceType && isEquivalent(rhs);
+}
+
+bool comparesEqual(const AbstractMetaType &lhs, const AbstractMetaType &rhs) noexcept
+{
+ return lhs.d->equals(*rhs.d);
+}
+
+bool AbstractMetaType::isEquivalent(const AbstractMetaType &rhs) const
{
- return d->equals(*rhs.d);
+ return d->isEquivalent(*rhs.d);
}
const AbstractMetaType *AbstractMetaType::viewOn() const
{
- return d->m_viewOn.data();
+ return d->m_viewOn.get();
}
void AbstractMetaType::setViewOn(const AbstractMetaType &v)
{
- if (d->m_viewOn.isNull() || *d->m_viewOn != v)
+ if (!d->m_viewOn || *d->m_viewOn != v)
d->m_viewOn.reset(new AbstractMetaType(v));
}
@@ -675,7 +803,7 @@ AbstractMetaType AbstractMetaType::createVoid()
{
static QScopedPointer<AbstractMetaType> metaType;
if (metaType.isNull()) {
- static const TypeEntry *voidTypeEntry = TypeDatabase::instance()->findType(QLatin1String("void"));
+ static TypeEntryCPtr voidTypeEntry = TypeDatabase::instance()->findType(u"void"_s);
Q_ASSERT(voidTypeEntry);
metaType.reset(new AbstractMetaType(voidTypeEntry));
metaType->decideUsagePattern();
@@ -685,7 +813,23 @@ AbstractMetaType AbstractMetaType::createVoid()
void AbstractMetaType::dereference(QString *type)
{
- type->prepend(u"(*"_qs);
+ type->prepend(u"(*"_s);
+ type->append(u')');
+}
+
+QString AbstractMetaType::dereferencePrefix(qsizetype n)
+{
+ const QChar c = n > 0 ? u'*' : u'&';
+ return QString(qAbs(n), c);
+}
+
+void AbstractMetaType::applyDereference(QString *type, qsizetype n)
+{
+ if (n == 0)
+ return;
+
+ type->prepend(dereferencePrefix(n));
+ type->prepend(u'(');
type->append(u')');
}
@@ -711,6 +855,11 @@ bool AbstractMetaType::isObjectType() const
return d->m_typeEntry->isObject();
}
+bool AbstractMetaType::isUniquePointer() const
+{
+ return isSmartPointer() && d->m_typeEntry->isUniquePointer();
+}
+
bool AbstractMetaType::isPointer() const
{
return !d->m_indirections.isEmpty()
@@ -727,19 +876,19 @@ bool AbstractMetaType::isCString() const
{
return isNativePointer()
&& d->m_indirections.size() == 1
- && name() == QLatin1String("char");
+ && name() == u"char";
}
bool AbstractMetaType::isVoidPointer() const
{
return isNativePointer()
&& d->m_indirections.size() == 1
- && name() == QLatin1String("void");
+ && name() == u"void";
}
bool AbstractMetaType::isUserPrimitive() const
{
- return d->m_indirections.isEmpty() && d->m_typeEntry->isUserPrimitive();
+ return d->m_indirections.isEmpty() && ::isUserPrimitive(d->m_typeEntry);
}
bool AbstractMetaType::isObjectTypeUsedAsValueType() const
@@ -761,19 +910,12 @@ bool AbstractMetaType::isPointerToWrapperType() const
bool AbstractMetaType::isWrapperPassedByReference() const
{
return d->m_referenceType == LValueReference && isWrapperType()
- && !isPointer();
-}
-
-bool AbstractMetaType::shouldDereferenceArgument() const
-{
- return isWrapperPassedByReference()
- || valueTypeWithCopyConstructorOnlyPassed()
- || isObjectTypeUsedAsValueType();
+ && !isPointer();
}
bool AbstractMetaType::isCppIntegralPrimitive() const
{
- return d->m_typeEntry->isCppIntegralPrimitive();
+ return ::isCppIntegralPrimitive(d->m_typeEntry);
}
bool AbstractMetaType::isExtendedCppPrimitive() const
@@ -782,14 +924,14 @@ bool AbstractMetaType::isExtendedCppPrimitive() const
return true;
if (!d->m_indirections.isEmpty())
return false;
- return d->m_typeEntry->isExtendedCppPrimitive();
+ return ::isExtendedCppPrimitive(d->m_typeEntry);
}
bool AbstractMetaType::isValueTypeWithCopyConstructorOnly() const
{
bool result = false;
if (d->m_typeEntry->isComplex()) {
- const auto *cte = static_cast<const ComplexTypeEntry *>(d->m_typeEntry);
+ const auto cte = std::static_pointer_cast<const ComplexTypeEntry>(d->m_typeEntry);
result = cte->isValueTypeWithCopyConstructorOnly();
}
return result;
@@ -806,14 +948,18 @@ using AbstractMetaTypeCache = QHash<QString, AbstractMetaType>;
Q_GLOBAL_STATIC(AbstractMetaTypeCache, metaTypeFromStringCache)
std::optional<AbstractMetaType>
-AbstractMetaType::fromString(QString typeSignature, QString *errorMessage)
+AbstractMetaType::fromString(const QString &typeSignatureIn, QString *errorMessage)
{
- typeSignature = typeSignature.trimmed();
- if (typeSignature.startsWith(QLatin1String("::")))
+ auto &cache = *metaTypeFromStringCache();
+ auto it = cache.find(typeSignatureIn);
+ if (it != cache.end())
+ return it.value();
+
+ QString typeSignature = typeSignatureIn.trimmed();
+ if (typeSignature.startsWith(u"::"))
typeSignature.remove(0, 2);
- auto &cache = *metaTypeFromStringCache();
- auto it = cache.find(typeSignature);
+ it = cache.find(typeSignature);
if (it == cache.end()) {
auto metaType =
AbstractMetaBuilder::translateType(typeSignature, nullptr, {}, errorMessage);
@@ -822,34 +968,87 @@ AbstractMetaType::fromString(QString typeSignature, QString *errorMessage)
errorMessage->prepend(msgCannotBuildMetaType(typeSignature));
return {};
}
+ if (typeSignature != typeSignatureIn)
+ cache.insert(typeSignatureIn, metaType.value());
it = cache.insert(typeSignature, metaType.value());
}
return it.value();
}
-AbstractMetaType AbstractMetaType::fromTypeEntry(const TypeEntry *typeEntry)
+AbstractMetaType AbstractMetaType::fromTypeEntry(const TypeEntryCPtr &typeEntry)
{
QString typeName = typeEntry->qualifiedCppName();
- if (typeName.startsWith(QLatin1String("::")))
+ if (typeName.startsWith(u"::"))
typeName.remove(0, 2);
auto &cache = *metaTypeFromStringCache();
auto it = cache.find(typeName);
if (it != cache.end())
return it.value();
- AbstractMetaType metaType(typeEntry);
- metaType.clearIndirections();
- metaType.setReferenceType(NoReference);
- metaType.setConstant(false);
- metaType.decideUsagePattern();
+ AbstractMetaType metaType = AbstractMetaType(typeEntry).plainType();
cache.insert(typeName, metaType);
return metaType;
}
-AbstractMetaType AbstractMetaType::fromAbstractMetaClass(const AbstractMetaClass *metaClass)
+AbstractMetaType AbstractMetaType::fromAbstractMetaClass(const AbstractMetaClassCPtr &metaClass)
{
return fromTypeEntry(metaClass->typeEntry());
}
+template <class Predicate> // Predicate(containerTypeEntry, signature)
+bool AbstractMetaTypeData::generateOpaqueContainer(Predicate pred) const
+{
+ // Allow for passing containers by pointer as well.
+ if (!m_typeEntry->isContainer())
+ return false;
+ if (m_indirections.size() > 1)
+ return false;
+ auto containerTypeEntry = std::static_pointer_cast<const ContainerTypeEntry>(m_typeEntry);
+ auto kind = containerTypeEntry->containerKind();
+ if (kind != ContainerTypeEntry::ListContainer && kind != ContainerTypeEntry::SpanContainer)
+ return false;
+
+ const auto &firstInstantiation = m_instantiations.constFirst();
+ if (firstInstantiation.referenceType() != NoReference)
+ return false;
+ switch (firstInstantiation.typeEntry()->type()) {
+ case TypeEntry::PrimitiveType:
+ case TypeEntry::FlagsType:
+ case TypeEntry::EnumType:
+ case TypeEntry::BasicValueType:
+ case TypeEntry::ObjectType:
+ case TypeEntry::CustomType:
+ break;
+ default:
+ return false;
+ }
+
+ return pred(containerTypeEntry, instantiationCppSignatures());
+}
+
+// Simple predicate for checking whether an opaque container should be generated
+static bool opaqueContainerPredicate(const ContainerTypeEntryCPtr &t,
+ const QStringList &instantiations)
+{
+ return t->generateOpaqueContainer(instantiations);
+}
+
+bool AbstractMetaType::generateOpaqueContainer() const
+{
+ return d->generateOpaqueContainer(opaqueContainerPredicate);
+}
+
+// Helper for determining whether a function should return an opaque container,
+// that is, the function return type is modified accordingly
+// (cf AbstractMetaFunction::generateOpaqueContainerReturn())
+bool AbstractMetaType::generateOpaqueContainerForGetter(const QString &modifiedType) const
+{
+ auto predicate = [&modifiedType](const ContainerTypeEntryCPtr &t,
+ const QStringList &instantiations) {
+ return t->opaqueContainerName(instantiations) == modifiedType;
+ };
+ return d->generateOpaqueContainer(predicate);
+}
+
#ifndef QT_NO_DEBUG_STREAM
void AbstractMetaType::formatDebug(QDebug &debug) const
{
@@ -869,7 +1068,7 @@ void AbstractMetaType::formatDebug(QDebug &debug) const
for (auto i : indirections)
debug << ' ' << TypeInfo::indirectionKeyword(i);
}
- if (referenceType())
+ if (referenceType() != NoReference)
debug << ", reftype=" << referenceType();
if (isConstant())
debug << ", [const]";
@@ -880,9 +1079,9 @@ void AbstractMetaType::formatDebug(QDebug &debug) const
<< "\", arrayElementCount=" << arrayElementCount();
}
const auto &instantiations = this->instantiations();
- if (const int instantiationsSize = instantiations.size()) {
+ if (const auto instantiationsSize = instantiations.size()) {
debug << ", instantiations[" << instantiationsSize << "]=<";
- for (int i = 0; i < instantiationsSize; ++i) {
+ for (qsizetype i = 0; i < instantiationsSize; ++i) {
if (i)
debug << ", ";
instantiations.at(i).formatDebug(debug);
diff --git a/sources/shiboken6/ApiExtractor/abstractmetatype.h b/sources/shiboken6/ApiExtractor/abstractmetatype.h
index 79523efef..8a1ecdf20 100644
--- a/sources/shiboken6/ApiExtractor/abstractmetatype.h
+++ b/sources/shiboken6/ApiExtractor/abstractmetatype.h
@@ -1,40 +1,20 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef ABSTRACTMETATYPE_H
#define ABSTRACTMETATYPE_H
+#include "abstractmetalang_enums.h"
#include "abstractmetalang_typedefs.h"
#include "parser/codemodel_enums.h"
+#include "typedatabase_typedefs.h"
+#include <QtCore/QtCompare>
#include <QtCore/qobjectdefs.h>
+#include <QtCore/QHashFunctions>
#include <QtCore/QSharedDataPointer>
#include <QtCore/QList>
+#include <QtCore/QSet>
#include <optional>
@@ -69,11 +49,11 @@ public:
Q_ENUM(TypeUsagePattern)
AbstractMetaType();
- explicit AbstractMetaType(const TypeEntry *t);
+ explicit AbstractMetaType(const TypeEntryCPtr &t);
AbstractMetaType(const AbstractMetaType &);
AbstractMetaType &operator=(const AbstractMetaType &);
- AbstractMetaType(AbstractMetaType &&);
- AbstractMetaType &operator=(AbstractMetaType &&);
+ AbstractMetaType(AbstractMetaType &&) noexcept;
+ AbstractMetaType &operator=(AbstractMetaType &&) noexcept;
~AbstractMetaType();
QString package() const;
@@ -89,6 +69,7 @@ public:
const AbstractMetaTypeList &instantiations() const;
void addInstantiation(const AbstractMetaType &inst);
void setInstantiations(const AbstractMetaTypeList &insts);
+ QStringList instantiationCppSignatures() const;
QString minimalSignature() const { return formatSignature(true); }
@@ -125,6 +106,7 @@ public:
// returns true if the type was used as a smart pointer
bool isSmartPointer() const { return typeUsagePattern() == SmartPointerPattern; }
+ bool isUniquePointer() const;
// returns true if the type was used as a flag
bool isFlags() const { return typeUsagePattern() == FlagsPattern; }
@@ -139,6 +121,7 @@ public:
bool passByConstRef() const;
bool passByValue() const;
+ bool useStdMove() const;
ReferenceType referenceType() const;
void setReferenceType(ReferenceType ref);
@@ -162,14 +145,17 @@ public:
AbstractMetaTypeList nestedArrayTypes() const;
+ /// Strip const/indirections/reference from the type
+ AbstractMetaType plainType() const;
+
QString cppSignature() const;
QString pythonSignature() const;
bool applyArrayModification(QString *errorMessage);
- const TypeEntry *typeEntry() const;
- void setTypeEntry(const TypeEntry *type);
+ TypeEntryCPtr typeEntry() const;
+ void setTypeEntry(const TypeEntryCPtr &type);
void setOriginalTypeDescription(const QString &otd);
QString originalTypeDescription() const;
@@ -186,7 +172,8 @@ public:
bool hasTemplateChildren() const;
- bool equals(const AbstractMetaType &rhs) const;
+ /// Is equivalent from the POV of argument passing (differ by const ref)
+ bool isEquivalent(const AbstractMetaType &rhs) const;
// View on: Type to use for function argument conversion, fex
// std::string_view -> std::string for foo(std::string_view);
@@ -201,13 +188,16 @@ public:
/// \param typeSignature The string describing the type to be built.
/// \return A new AbstractMetaType object or nullopt in case of failure.
static std::optional<AbstractMetaType>
- fromString(QString typeSignature, QString *errorMessage = nullptr);
+ fromString(const QString &typeSignatureIn, QString *errorMessage = nullptr);
/// Creates an AbstractMetaType object from a TypeEntry.
- static AbstractMetaType fromTypeEntry(const TypeEntry *typeEntry);
+ static AbstractMetaType fromTypeEntry(const TypeEntryCPtr &typeEntry);
/// Creates an AbstractMetaType object from an AbstractMetaClass.
- static AbstractMetaType fromAbstractMetaClass(const AbstractMetaClass *metaClass);
+ static AbstractMetaType fromAbstractMetaClass(const AbstractMetaClassCPtr &metaClass);
static void dereference(QString *type); // "foo" -> "(*foo)"
+ /// Apply the result of shouldDereferenceArgument()
+ static QString dereferencePrefix(qsizetype n); // Return the prefix **/& as as required
+ static void applyDereference(QString *type, qsizetype n);
static bool stripDereference(QString *type); // "(*foo)" -> "foo"
// Query functions for generators
@@ -232,9 +222,6 @@ public:
bool isPointerToWrapperType() const;
/// Wrapper type passed by reference
bool isWrapperPassedByReference() const;
- /// Checks if the meta type of an argument should be dereferenced by the Python
- /// method wrapper passing it to C++.
- bool shouldDereferenceArgument() const;
/// Returns true if the type is a C++ integral primitive,
/// i.e. bool, char, int, long, and their unsigned counterparts.
bool isCppIntegralPrimitive() const;
@@ -247,12 +234,32 @@ public:
/// copy constructor only is passed as value or const-ref and thus
/// no default value can be constructed.
bool valueTypeWithCopyConstructorOnlyPassed() const;
+ /// Returns whether to generate an opaque container for the type
+ bool generateOpaqueContainer() const;
+ /// Returns whether to generate an opaque container for a getter
+ bool generateOpaqueContainerForGetter(const QString &modifiedType) const;
+
+ /// Types for which libshiboken has built-in primitive converters
+ static const QSet<QString> &cppFloatTypes();
+ static const QSet<QString> &cppSignedCharTypes();
+ static const QSet<QString> &cppUnsignedCharTypes();
+ static const QSet<QString> &cppCharTypes();
+ static const QSet<QString> &cppSignedIntTypes();
+ static const QSet<QString> &cppUnsignedIntTypes();
+ static const QSet<QString> &cppIntegralTypes();
+ static const QSet<QString> &cppPrimitiveTypes();
#ifndef QT_NO_DEBUG_STREAM
void formatDebug(QDebug &debug) const;
#endif
private:
+ friend size_t qHash(const AbstractMetaType &t, size_t seed = 0) noexcept
+ { return qHash(t.typeEntry().get(), seed); }
+ friend bool comparesEqual(const AbstractMetaType &lhs,
+ const AbstractMetaType &rhs) noexcept;
+ Q_DECLARE_EQUALITY_COMPARABLE(AbstractMetaType)
+
friend class AbstractMetaTypeData;
QSharedDataPointer<AbstractMetaTypeData> d;
@@ -261,11 +268,6 @@ private:
QString formatPythonSignature() const;
};
-inline bool operator==(const AbstractMetaType &t1, const AbstractMetaType &t2)
-{ return t1.equals(t2); }
-inline bool operator!=(const AbstractMetaType &t1, const AbstractMetaType &t2)
-{ return !t1.equals(t2); }
-
#ifndef QT_NO_DEBUG_STREAM
QDebug operator<<(QDebug d, const AbstractMetaType &at);
QDebug operator<<(QDebug d, const AbstractMetaType *at);
diff --git a/sources/shiboken6/ApiExtractor/addedfunction.cpp b/sources/shiboken6/ApiExtractor/addedfunction.cpp
new file mode 100644
index 000000000..9d95b734c
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/addedfunction.cpp
@@ -0,0 +1,216 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#include "addedfunction.h"
+#include "addedfunction_p.h"
+#include "typeparser.h"
+
+#include <QtCore/QDebug>
+
+using namespace Qt::StringLiterals;
+
+constexpr auto callOperator = "operator()"_L1;
+
+// Helpers to split a parameter list of <add-function>, <declare-function>
+// (@ denoting names), like
+// "void foo(QList<X,Y> &@list@ = QList<X,Y>{1,2}, int @b@=5, ...)"
+namespace AddedFunctionParser {
+
+QDebug operator<<(QDebug d, const Argument &a)
+{
+ QDebugStateSaver saver(d);
+ d.noquote();
+ d.nospace();
+ d << "Argument(type=\"" << a.type << '"';
+ if (!a.name.isEmpty())
+ d << ", name=\"" << a.name << '"';
+ if (!a.defaultValue.isEmpty())
+ d << ", defaultValue=\"" << a.defaultValue << '"';
+ d << ')';
+ return d;
+}
+
+// Helper for finding the end of a function parameter, observing
+// nested template parameters or lists.
+static qsizetype parameterTokenEnd(qsizetype startPos, QStringView paramString)
+{
+ const auto end = paramString.size();
+ int nestingLevel = 0;
+ for (qsizetype p = startPos; p < end; ++p) {
+ switch (paramString.at(p).toLatin1()) {
+ case ',':
+ if (nestingLevel == 0)
+ return p;
+ break;
+ case '<': // templates
+ case '{': // initializer lists of default values
+ case '(': // initialization, function pointers
+ case '[': // array dimensions
+ ++nestingLevel;
+ break;
+ case '>':
+ case '}':
+ case ')':
+ case ']':
+ --nestingLevel;
+ break;
+ }
+ }
+ return end;
+}
+
+// Split a function parameter list into string tokens containing one
+// parameters (including default value, etc).
+static QList<QStringView> splitParameterTokens(QStringView paramString)
+{
+ QList<QStringView> result;
+ qsizetype startPos = 0;
+ for ( ; startPos < paramString.size(); ) {
+ const auto end = parameterTokenEnd(startPos, paramString);
+ result.append(paramString.mid(startPos, end - startPos).trimmed());
+ startPos = end + 1;
+ }
+ return result;
+}
+
+// Split a function parameter list
+Arguments splitParameters(QStringView paramString, QString *errorMessage)
+{
+ Arguments result;
+ const QList<QStringView> tokens = splitParameterTokens(paramString);
+
+ for (const auto &t : tokens) {
+ Argument argument;
+ // Check defaultValue, "int @b@=5"
+ const auto equalPos = t.lastIndexOf(u'=');
+ if (equalPos != -1) {
+ const int defaultValuePos = equalPos + 1;
+ argument.defaultValue =
+ t.mid(defaultValuePos, t.size() - defaultValuePos).trimmed().toString();
+ }
+ QString typeString = (equalPos != -1 ? t.left(equalPos) : t).trimmed().toString();
+ // Check @name@
+ const auto atPos = typeString.indexOf(u'@');
+ if (atPos != -1) {
+ const int namePos = atPos + 1;
+ const int nameEndPos = typeString.indexOf(u'@', namePos);
+ if (nameEndPos == -1) {
+ if (errorMessage != nullptr) {
+ *errorMessage = u"Mismatched @ in \""_s
+ + paramString.toString() + u'"';
+ }
+ return {};
+ }
+ argument.name = typeString.mid(namePos, nameEndPos - namePos).trimmed();
+ typeString.remove(atPos, nameEndPos - atPos + 1);
+ }
+ argument.type = typeString.trimmed();
+ result.append(argument);
+ }
+
+ return result;
+}
+
+} // namespace AddedFunctionParser
+
+AddedFunction::AddedFunction(const QString &name, const QList<Argument> &arguments,
+ const TypeInfo &returnType) :
+ m_name(name),
+ m_arguments(arguments),
+ m_returnType(returnType)
+{
+}
+
+AddedFunction::AddedFunctionPtr
+ AddedFunction::createAddedFunction(const QString &signatureIn, const QString &returnTypeIn,
+ QString *errorMessage)
+
+{
+ errorMessage->clear();
+
+ QList<Argument> arguments;
+ const TypeInfo returnType = returnTypeIn.isEmpty()
+ ? TypeInfo::voidType()
+ : TypeParser::parse(returnTypeIn, errorMessage);
+ if (!errorMessage->isEmpty())
+ return {};
+
+ QStringView signature = QStringView{signatureIn}.trimmed();
+
+ // Skip past "operator()(...)"
+ const auto parenSearchStartPos = signature.startsWith(callOperator)
+ ? callOperator.size() : 0;
+ const auto openParenPos = signature.indexOf(u'(', parenSearchStartPos);
+ if (openParenPos < 0) {
+ return AddedFunctionPtr(new AddedFunction(signature.toString(),
+ arguments, returnType));
+ }
+
+ const QString name = signature.left(openParenPos).trimmed().toString();
+ const auto closingParenPos = signature.lastIndexOf(u')');
+ if (closingParenPos < 0) {
+ *errorMessage = u"Missing closing parenthesis"_s;
+ return {};
+ }
+
+ // Check for "foo() const"
+ bool isConst = false;
+ const auto signatureLength = signature.length();
+ const auto qualifierLength = signatureLength - closingParenPos - 1;
+ if (qualifierLength >= 5
+ && signature.right(qualifierLength).contains(u"const")) {
+ isConst = true;
+ }
+
+ const auto paramString = signature.mid(openParenPos + 1, closingParenPos - openParenPos - 1);
+ const auto params = AddedFunctionParser::splitParameters(paramString, errorMessage);
+ if (params.isEmpty() && !errorMessage->isEmpty())
+ return {};
+ for (const auto &p : params) {
+ TypeInfo type = p.type == u"..."
+ ? TypeInfo::varArgsType() : TypeParser::parse(p.type, errorMessage);
+ if (!errorMessage->isEmpty()) {
+ errorMessage->prepend(u"Unable to parse added function "_s + signatureIn
+ + u": "_s);
+ return {};
+ }
+ arguments.append({type, p.name, p.defaultValue});
+ }
+
+ auto result = std::make_shared<AddedFunction>(name, arguments, returnType);
+ result->setConstant(isConst);
+ return result;
+}
+
+QDebug operator<<(QDebug d, const AddedFunction::Argument &a)
+{
+ QDebugStateSaver saver(d);
+ d.noquote();
+ d.nospace();
+ d << "Argument(";
+ d << a.typeInfo;
+ if (!a.name.isEmpty())
+ d << ' ' << a.name;
+ if (!a.defaultValue.isEmpty())
+ d << " = " << a.defaultValue;
+ d << ')';
+ return d;
+}
+
+QDebug operator<<(QDebug d, const AddedFunction &af)
+{
+ QDebugStateSaver saver(d);
+ d.noquote();
+ d.nospace();
+ d << "AddedFunction(";
+ if (af.access() == AddedFunction::Protected)
+ d << "protected";
+ if (af.isStatic())
+ d << " static";
+ d << af.returnType() << ' ' << af.name() << '(' << af.arguments() << ')';
+ if (af.isConstant())
+ d << " const";
+ if (af.isDeclaration())
+ d << " [declaration]";
+ return d;
+}
diff --git a/sources/shiboken6/ApiExtractor/addedfunction.h b/sources/shiboken6/ApiExtractor/addedfunction.h
new file mode 100644
index 000000000..b8d189b7a
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/addedfunction.h
@@ -0,0 +1,113 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef ADDEDFUNCTION_H
+#define ADDEDFUNCTION_H
+
+#include "modifications.h"
+#include "parser/typeinfo.h"
+
+#include <QtCore/QList>
+#include <QtCore/QString>
+
+#include <memory>
+
+QT_FORWARD_DECLARE_CLASS(QDebug)
+
+/// \internal
+/// Struct used to store information about functions added by the typesystem.
+/// This info will be used later to create a fake AbstractMetaFunction which
+/// will be inserted into the right AbstractMetaClass.
+struct AddedFunction
+{
+ using AddedFunctionPtr = std::shared_ptr<AddedFunction>;
+
+ /// Function access types.
+ enum Access {
+ Protected = 0x1,
+ Public = 0x2
+ };
+
+ struct Argument
+ {
+ TypeInfo typeInfo;
+ QString name;
+ QString defaultValue;
+ };
+
+ /// Creates a new AddedFunction with a signature and a return type.
+ explicit AddedFunction(const QString &name, const QList<Argument> &arguments,
+ const TypeInfo &returnType);
+
+ static AddedFunctionPtr createAddedFunction(const QString &signatureIn,
+ const QString &returnTypeIn,
+ QString *errorMessage);
+
+ AddedFunction() = default;
+
+ /// Returns the function name.
+ QString name() const { return m_name; }
+
+ /// Set the function access type.
+ void setAccess(Access access) { m_access = access; }
+
+ /// Returns the function access type.
+ Access access() const { return m_access; }
+
+ /// Returns the function return type.
+ const TypeInfo &returnType() const { return m_returnType; }
+
+ /// Returns a list of argument type infos.
+ const QList<Argument> &arguments() const { return m_arguments; }
+
+ /// Returns true if this is a constant method.
+ bool isConstant() const { return m_isConst; }
+ void setConstant(bool c) { m_isConst = c; };
+
+ /// Set this method static.
+ void setStatic(bool value) { m_isStatic = value; }
+
+ /// Set this method as a classmethod.
+ void setClassMethod(bool value) { m_isClassMethod = value; }
+
+ /// Returns true if this is a static method.
+ bool isStatic() const { return m_isStatic; }
+
+ /// Returns true if this is a class method.
+ bool isClassMethod() const { return m_isClassMethod; }
+
+ bool isDeclaration() const { return m_isDeclaration; } // <declare-function>
+ void setDeclaration(bool value) { m_isDeclaration = value; }
+
+ bool isPythonOverride() const { return m_isPythonOverride; }
+ void setPythonOverride(bool o) { m_isPythonOverride = o; }
+
+ const FunctionModificationList &modifications() const { return m_modifications; }
+ FunctionModificationList &modifications() { return m_modifications; }
+
+ const DocModificationList &docModifications() const { return m_docModifications; }
+ DocModificationList &docModifications() { return m_docModifications; }
+ void addDocModification(const DocModification &m) { m_docModifications.append(m); }
+
+ QString targetLangPackage() const { return m_targetLangPackage; }
+ void setTargetLangPackage(const QString &p) { m_targetLangPackage = p; }
+
+private:
+ QString m_name;
+ QList<Argument> m_arguments;
+ TypeInfo m_returnType;
+ FunctionModificationList m_modifications;
+ DocModificationList m_docModifications;
+ QString m_targetLangPackage;
+ Access m_access = Public;
+ bool m_isConst = false;
+ bool m_isClassMethod = false;
+ bool m_isStatic = false;
+ bool m_isDeclaration = false;
+ bool m_isPythonOverride = false;
+};
+
+QDebug operator<<(QDebug d, const AddedFunction::Argument &a);
+QDebug operator<<(QDebug d, const AddedFunction &af);
+
+#endif // ADDEDFUNCTION_H
diff --git a/sources/shiboken6/ApiExtractor/addedfunction_p.h b/sources/shiboken6/ApiExtractor/addedfunction_p.h
new file mode 100644
index 000000000..40b69a5df
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/addedfunction_p.h
@@ -0,0 +1,45 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef ADDEDFUNCTION_P_H
+#define ADDEDFUNCTION_P_H
+
+#include <QtCore/QtCompare>
+#include <QtCore/QList>
+#include <QtCore/QString>
+#include <QtCore/QStringView>
+
+QT_BEGIN_NAMESPACE
+class QDebug;
+QT_END_NAMESPACE
+
+// Helpers to split a parameter list of <add-function>, <declare-function>
+// in a separate header for testing purposes
+
+namespace AddedFunctionParser {
+
+struct Argument
+{
+ QString type;
+ QString name;
+ QString defaultValue;
+
+ friend bool comparesEqual(const Argument &lhs, const Argument &rhs) noexcept
+ {
+ return lhs.type == rhs.type && lhs.name == rhs.name
+ && lhs.defaultValue == rhs.defaultValue;
+ }
+ Q_DECLARE_EQUALITY_COMPARABLE(Argument)
+};
+
+using Arguments = QList<Argument>;
+
+#ifndef QT_NO_DEBUG_STREAM
+QDebug operator<<(QDebug d, const Argument &a);
+#endif
+
+Arguments splitParameters(QStringView paramString, QString *errorMessage = nullptr);
+
+} // namespace AddedFunctionParser
+
+#endif // MODIFICATIONS_P_H
diff --git a/sources/shiboken6/ApiExtractor/anystringview_helpers.cpp b/sources/shiboken6/ApiExtractor/anystringview_helpers.cpp
new file mode 100644
index 000000000..35d2d535a
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/anystringview_helpers.cpp
@@ -0,0 +1,56 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#include "anystringview_helpers.h"
+
+#include <QtCore/QString> // Must go before QAnyStringView for operator<<(QTextStream,QASV)!
+#include <QtCore/QAnyStringView>
+#include <QtCore/QDebug>
+#include <QtCore/QTextStream>
+
+#include <cstring>
+
+QTextStream &operator<<(QTextStream &str, QAnyStringView asv)
+{
+ asv.visit([&str](auto s) { str << s; });
+ return str;
+}
+
+static bool asv_containsImpl(QLatin1StringView v, char c)
+{
+ return v.contains(uint16_t(c));
+}
+
+static bool asv_containsImpl(QUtf8StringView v, char c)
+{
+ return std::strchr(v.data(), c) != nullptr;
+}
+
+static bool asv_containsImpl(QStringView v, char c)
+{
+ return v.contains(uint16_t(c));
+}
+
+bool asv_contains(QAnyStringView asv, char needle)
+{
+ return asv.visit([needle](auto s) { return asv_containsImpl(s, needle); });
+}
+
+static bool asv_containsImpl(QLatin1StringView v, const char *c)
+{
+ return v.contains(QLatin1StringView(c));
+}
+static bool asv_containsImpl(QUtf8StringView v, const char *c)
+{
+ return std::strstr(v.data(), c) != nullptr;
+}
+
+static bool asv_containsImpl(QStringView v, const char *c)
+{
+ return v.contains(QLatin1StringView(c));
+}
+
+bool asv_contains(QAnyStringView asv, const char *needle)
+{
+ return asv.visit([needle](auto s) { return asv_containsImpl(s, needle); });
+}
diff --git a/sources/shiboken6/ApiExtractor/anystringview_helpers.h b/sources/shiboken6/ApiExtractor/anystringview_helpers.h
new file mode 100644
index 000000000..e1e6ab7f0
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/anystringview_helpers.h
@@ -0,0 +1,18 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef ANYSTRINGVIEW_STREAM_H
+#define ANYSTRINGVIEW_STREAM_H
+
+#include <QtCore/QtClassHelperMacros>
+
+QT_FORWARD_DECLARE_CLASS(QAnyStringView)
+QT_FORWARD_DECLARE_CLASS(QTextStream)
+QT_FORWARD_DECLARE_CLASS(QDebug)
+
+QTextStream &operator<<(QTextStream &str, QAnyStringView asv);
+
+bool asv_contains(QAnyStringView asv, char needle);
+bool asv_contains(QAnyStringView asv, const char *needle);
+
+#endif // ANYSTRINGVIEW_STREAM_H
diff --git a/sources/shiboken6/ApiExtractor/apiextractor.cpp b/sources/shiboken6/ApiExtractor/apiextractor.cpp
index cee8bbdcd..83ee4437e 100644
--- a/sources/shiboken6/ApiExtractor/apiextractor.cpp
+++ b/sources/shiboken6/ApiExtractor/apiextractor.cpp
@@ -1,156 +1,314 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "apiextractor.h"
#include "apiextractorresult.h"
+#include "abstractmetaargument.h"
+#include "abstractmetabuilder.h"
+#include "abstractmetaenum.h"
+#include "abstractmetafield.h"
+#include "abstractmetafunction.h"
#include "abstractmetalang.h"
+#include "codesnip.h"
+#include "exception.h"
+#include "messages.h"
+#include "modifications.h"
+#include "optionsparser.h"
+#include "reporthandler.h"
+#include "typedatabase.h"
+#include "customconversion.h"
+#include "containertypeentry.h"
+#include "primitivetypeentry.h"
+#include "smartpointertypeentry.h"
+#include "typedefentry.h"
+#include "namespacetypeentry.h"
+#include "typesystemtypeentry.h"
+
+#include "qtcompat.h"
+
+#include <QtCore/QDir>
+#include <QtCore/QDebug>
+#include <QtCore/QTemporaryFile>
-#include <QDir>
-#include <QDebug>
-#include <QTemporaryFile>
#include <algorithm>
#include <iostream>
#include <iterator>
-#include "reporthandler.h"
-#include "typesystem.h"
-#include "fileout.h"
-#include "abstractmetabuilder.h"
-#include "abstractmetaenum.h"
-#include "typedatabase.h"
-#include "typesystem.h"
+using namespace Qt::StringLiterals;
-#include <algorithm>
-#include <iterator>
+struct InstantiationCollectContext
+{
+ AbstractMetaTypeList instantiatedContainers;
+ InstantiatedSmartPointers instantiatedSmartPointers;
+ QStringList instantiatedContainersNames;
+};
-ApiExtractor::ApiExtractor()
+struct ApiExtractorOptions
{
- // Environment TYPESYSTEMPATH
- QString envTypesystemPaths = QFile::decodeName(qgetenv("TYPESYSTEMPATH"));
- if (!envTypesystemPaths.isEmpty())
- TypeDatabase::instance()->addTypesystemPath(envTypesystemPaths);
+ QString m_typeSystemFileName;
+ QFileInfoList m_cppFileNames;
+ HeaderPaths m_includePaths;
+ QStringList m_clangOptions;
+ QString m_logDirectory;
+ LanguageLevel m_languageLevel = LanguageLevel::Default;
+ bool m_skipDeprecated = false;
+};
+
+static inline QString languageLevelDescription()
+{
+ return u"C++ Language level (c++11..c++17, default="_s
+ + QLatin1StringView(clang::languageLevelOption(clang::emulatedCompilerLanguageLevel()))
+ + u')';
}
-ApiExtractor::~ApiExtractor()
+QList<OptionDescription> ApiExtractor::options()
{
- delete m_builder;
+ return {
+ {u"use-global-header"_s,
+ u"Use the global headers in generated code."_s},
+ {u"clang-option"_s,
+ u"Option to be passed to clang"_s},
+ {u"clang-options"_s,
+ u"A comma-separated list of options to be passed to clang"_s},
+ {u"skip-deprecated"_s,
+ u"Skip deprecated functions"_s},
+ {u"-F<path>"_s, {} },
+ {u"framework-include-paths="_s + OptionsParser::pathSyntax(),
+ u"Framework include paths used by the C++ parser"_s},
+ {u"-isystem<path>"_s, {} },
+ {u"system-include-paths="_s + OptionsParser::pathSyntax(),
+ u"System include paths used by the C++ parser"_s},
+ {u"language-level=, -std=<level>"_s,
+ languageLevelDescription()},
+ };
}
-void ApiExtractor::addTypesystemSearchPath (const QString& path)
+class ApiExtractorOptionsParser : public OptionsParser
{
- TypeDatabase::instance()->addTypesystemPath(path);
+public:
+ explicit ApiExtractorOptionsParser(ApiExtractorOptions *o) : m_options(o) {}
+
+ bool handleBoolOption(const QString &key, OptionSource source) override;
+ bool handleOption(const QString &key, const QString &value,
+ OptionSource source) override;
+
+private:
+ void parseIncludePathOption(const QString &value, HeaderType headerType);
+ void parseIncludePathOption(const QStringList &values, HeaderType headerType);
+ void setLanguageLevel(const QString &value);
+
+ ApiExtractorOptions *m_options;
+};
+
+void ApiExtractorOptionsParser::parseIncludePathOption(const QString &value,
+ HeaderType headerType)
+{
+ if (value.isEmpty())
+ throw Exception(u"Empty value passed to include path option"_s);
+ const auto path = QFile::encodeName(QDir::cleanPath(value));
+ m_options->m_includePaths.append(HeaderPath{path, headerType});
}
-void ApiExtractor::addTypesystemSearchPath(const QStringList& paths)
+void ApiExtractorOptionsParser::parseIncludePathOption(const QStringList &values,
+ HeaderType headerType)
{
- for (const QString &path : paths)
- addTypesystemSearchPath(path);
+ for (const auto &value : values)
+ parseIncludePathOption(value, headerType);
}
-void ApiExtractor::setTypesystemKeywords(const QStringList &keywords)
+void ApiExtractorOptionsParser::setLanguageLevel(const QString &value)
{
- TypeDatabase::instance()->setTypesystemKeywords(keywords);
+ const QByteArray languageLevelBA = value.toLatin1();
+ const LanguageLevel level = clang::languageLevelFromOption(languageLevelBA.constData());
+ if (level == LanguageLevel::Default)
+ throw Exception(msgInvalidLanguageLevel(value));
+ m_options->m_languageLevel = level;
+}
+
+bool ApiExtractorOptionsParser::handleBoolOption(const QString &key, OptionSource source)
+{
+ static const auto isystemOption = "isystem"_L1;
+
+ switch (source) {
+ case OptionSource::CommandLine:
+ case OptionSource::ProjectFile:
+ if (key == u"use-global-header") {
+ AbstractMetaBuilder::setUseGlobalHeader(true);
+ return true;
+ }
+ if (key == u"skip-deprecated") {
+ m_options->m_skipDeprecated = true;
+ return true;
+ }
+ break;
+
+ case OptionSource::CommandLineSingleDash:
+ if (key.startsWith(u'I')) { // Shorthand path arguments -I/usr/include...
+ parseIncludePathOption(key.sliced(1), HeaderType::Standard);
+ return true;
+ }
+ if (key.startsWith(u'F')) {
+ parseIncludePathOption(key.sliced(1), HeaderType::Framework);
+ return true;
+ }
+ if (key.startsWith(isystemOption)) {
+ parseIncludePathOption(key.sliced(isystemOption.size()), HeaderType::System);
+ return true;
+ }
+ break;
+ }
+ return false;
}
-void ApiExtractor::addIncludePath(const HeaderPath& path)
+bool ApiExtractorOptionsParser::handleOption(const QString &key, const QString &value,
+ OptionSource source)
{
- m_includePaths << path;
+ if (source == OptionSource::CommandLineSingleDash) {
+ if (key == u"std") {
+ setLanguageLevel(value);
+ return true;
+ }
+ return false;
+ }
+
+ if (key == u"clang-option") {
+ m_options->m_clangOptions.append(value);
+ return true;
+ }
+ if (key == u"clang-options") {
+ m_options->m_clangOptions.append(value.split(u',', Qt::SkipEmptyParts));
+ return true;
+ }
+ if (key == u"include-paths") {
+ parseIncludePathOption(value.split(QDir::listSeparator(), Qt::SkipEmptyParts),
+ HeaderType::Standard);
+ return true;
+ }
+ if (key == u"framework-include-paths") {
+ parseIncludePathOption(value.split(QDir::listSeparator(), Qt::SkipEmptyParts),
+ HeaderType::Framework);
+ return true;
+ }
+ if (key == u"system-include-paths") {
+ parseIncludePathOption(value.split(QDir::listSeparator(), Qt::SkipEmptyParts),
+ HeaderType::System);
+ return true;
+ }
+ if (key == u"language-level") {
+ setLanguageLevel(value);
+ return true;
+ }
+
+ if (source == OptionSource::ProjectFile) {
+ if (key == u"include-path") {
+ parseIncludePathOption(value, HeaderType::Standard);
+ return true;
+ }
+ if (key == u"framework-include-path") {
+ parseIncludePathOption(value, HeaderType::Framework);
+ return true;
+ }
+ if (key == u"system-include-path") {
+ parseIncludePathOption(value, HeaderType::System);
+ return true;
+ }
+ }
+
+ return false;
}
-void ApiExtractor::addIncludePath(const HeaderPaths& paths)
+std::shared_ptr<OptionsParser> ApiExtractor::createOptionsParser()
{
- m_includePaths << paths;
+ return std::make_shared<ApiExtractorOptionsParser>(d);
}
-void ApiExtractor::setLogDirectory(const QString& logDir)
+struct ApiExtractorPrivate : public ApiExtractorOptions
+{
+ bool runHelper(ApiExtractorFlags flags);
+
+ static QString getSimplifiedContainerTypeName(const AbstractMetaType &type);
+ void addInstantiatedContainersAndSmartPointers(InstantiationCollectContext &context,
+ const AbstractMetaType &type,
+ const QString &contextName);
+ void collectInstantiatedContainersAndSmartPointers(InstantiationCollectContext &context,
+ const AbstractMetaFunctionCPtr &func);
+ void collectInstantiatedContainersAndSmartPointers(InstantiationCollectContext &context,
+ const AbstractMetaClassCPtr &metaClass);
+ void collectInstantiatedContainersAndSmartPointers(InstantiationCollectContext &context);
+ void collectInstantiatedOpqaqueContainers(InstantiationCollectContext &context);
+ void collectContainerTypesFromSnippets(InstantiationCollectContext &context);
+ void collectContainerTypesFromConverterMacros(InstantiationCollectContext &context,
+ const QString &code,
+ bool toPythonMacro);
+ void addInstantiatedSmartPointer(InstantiationCollectContext &context,
+ const AbstractMetaType &type);
+
+ AbstractMetaBuilder *m_builder = nullptr;
+};
+
+ApiExtractor::ApiExtractor() :
+ d(new ApiExtractorPrivate)
{
- m_logDirectory = logDir;
}
-void ApiExtractor::setCppFileNames(const QFileInfoList &cppFileName)
+ApiExtractor::~ApiExtractor()
{
- m_cppFileNames = cppFileName;
+ delete d->m_builder;
+ delete d;
}
-void ApiExtractor::setTypeSystem(const QString& typeSystemFileName)
+HeaderPaths ApiExtractor::includePaths() const
{
- m_typeSystemFileName = typeSystemFileName;
+ return d->m_includePaths;
}
-void ApiExtractor::setSkipDeprecated(bool value)
+void ApiExtractor::setLogDirectory(const QString& logDir)
{
- m_skipDeprecated = value;
- if (m_builder)
- m_builder->setSkipDeprecated(m_skipDeprecated);
+ d->m_logDirectory = logDir;
}
-void ApiExtractor::setSuppressWarnings ( bool value )
+void ApiExtractor::setCppFileNames(const QFileInfoList &cppFileName)
{
- TypeDatabase::instance()->setSuppressWarnings(value);
+ d->m_cppFileNames = cppFileName;
}
-void ApiExtractor::setSilent ( bool value )
+QFileInfoList ApiExtractor::cppFileNames() const
{
- ReportHandler::setSilent(value);
+ return d->m_cppFileNames;
}
-bool ApiExtractor::setApiVersion(const QString& package, const QString &version)
+void ApiExtractor::setTypeSystem(const QString& typeSystemFileName)
{
- return TypeDatabase::setApiVersion(package, version);
+ d->m_typeSystemFileName = typeSystemFileName;
}
-void ApiExtractor::setDropTypeEntries(const QStringList &dropEntries)
+QString ApiExtractor::typeSystem() const
{
- TypeDatabase::instance()->setDropTypeEntries(dropEntries);
+ return d->m_typeSystemFileName;
}
const AbstractMetaEnumList &ApiExtractor::globalEnums() const
{
- Q_ASSERT(m_builder);
- return m_builder->globalEnums();
+ Q_ASSERT(d->m_builder);
+ return d->m_builder->globalEnums();
}
const AbstractMetaFunctionCList &ApiExtractor::globalFunctions() const
{
- Q_ASSERT(m_builder);
- return m_builder->globalFunctions();
+ Q_ASSERT(d->m_builder);
+ return d->m_builder->globalFunctions();
}
const AbstractMetaClassList &ApiExtractor::classes() const
{
- Q_ASSERT(m_builder);
- return m_builder->classes();
+ Q_ASSERT(d->m_builder);
+ return d->m_builder->classes();
}
const AbstractMetaClassList &ApiExtractor::smartPointers() const
{
- Q_ASSERT(m_builder);
- return m_builder->smartPointers();
+ Q_ASSERT(d->m_builder);
+ return d->m_builder->smartPointers();
}
// Add defines required for parsing Qt code headers
@@ -171,7 +329,7 @@ static void addPySideExtensions(QByteArrayList *a)
a->append(QByteArrayLiteral("-DQSIMD_H"));
}
-bool ApiExtractor::runHelper(bool usePySideExtensions)
+bool ApiExtractorPrivate::runHelper(ApiExtractorFlags flags)
{
if (m_builder)
return false;
@@ -181,9 +339,8 @@ bool ApiExtractor::runHelper(bool usePySideExtensions)
return false;
}
- const QString pattern = QDir::tempPath() + QLatin1Char('/')
- + m_cppFileNames.constFirst().baseName()
- + QStringLiteral("_XXXXXX.hpp");
+ const QString pattern = QDir::tempPath() + u'/'
+ + m_cppFileNames.constFirst().baseName() + "_XXXXXX.hpp"_L1;
QTemporaryFile ppFile(pattern);
bool autoRemove = !qEnvironmentVariableIsSet("KEEP_TEMP_FILES");
// make sure that a tempfile can be written
@@ -192,7 +349,7 @@ bool ApiExtractor::runHelper(bool usePySideExtensions)
<< ": " << qPrintable(ppFile.errorString()) << '\n';
return false;
}
- for (const auto &cppFileName : qAsConst(m_cppFileNames)) {
+ for (const auto &cppFileName : std::as_const(m_cppFileNames)) {
ppFile.write("#include \"");
ppFile.write(cppFileName.absoluteFilePath().toLocal8Bit());
ppFile.write("\"\n");
@@ -204,6 +361,7 @@ bool ApiExtractor::runHelper(bool usePySideExtensions)
m_builder->setGlobalHeaders(m_cppFileNames);
m_builder->setSkipDeprecated(m_skipDeprecated);
m_builder->setHeaderPaths(m_includePaths);
+ m_builder->setApiExtractorFlags(flags);
QByteArrayList arguments;
const auto clangOptionsSize = m_clangOptions.size();
@@ -220,19 +378,20 @@ bool ApiExtractor::runHelper(bool usePySideExtensions)
arguments.append(m_clangOptions.at(i).toUtf8());
}
- for (const HeaderPath &headerPath : qAsConst(m_includePaths))
+ for (const HeaderPath &headerPath : std::as_const(m_includePaths))
arguments.append(HeaderPath::includeOption(headerPath));
+ if (flags.testFlag(ApiExtractorFlag::UsePySideExtensions))
+ addPySideExtensions(&arguments);
arguments.append(QFile::encodeName(preprocessedCppFileName));
+
if (ReportHandler::isDebug(ReportHandler::SparseDebug)) {
qCInfo(lcShiboken).noquote().nospace()
<< "clang language level: " << int(m_languageLevel)
<< "\nclang arguments: " << arguments;
}
- if (usePySideExtensions)
- addPySideExtensions(&arguments);
-
- const bool result = m_builder->build(arguments, addCompilerSupportArguments, m_languageLevel);
+ const bool result = m_builder->build(arguments, flags, addCompilerSupportArguments,
+ m_languageLevel);
if (!result)
autoRemove = false;
if (!autoRemove) {
@@ -248,42 +407,408 @@ static inline void classListToCList(const AbstractMetaClassList &list, AbstractM
std::copy(list.cbegin(), list.cend(), std::back_inserter(*target));
}
-std::optional<ApiExtractorResult> ApiExtractor::run(bool usePySideExtensions)
+std::optional<ApiExtractorResult> ApiExtractor::run(ApiExtractorFlags flags)
{
- if (!runHelper(usePySideExtensions))
+ if (!d->runHelper(flags))
return {};
+ InstantiationCollectContext collectContext;
+ d->collectInstantiatedContainersAndSmartPointers(collectContext);
+
ApiExtractorResult result;
- classListToCList(m_builder->classes(), &result.m_metaClasses);
- classListToCList(m_builder->smartPointers(), &result.m_smartPointers);
- result.m_globalFunctions = m_builder->globalFunctions();
- result.m_globalEnums = m_builder->globalEnums();
- result.m_enums = m_builder->typeEntryToEnumsHash();
+ classListToCList(d->m_builder->takeClasses(), &result.m_metaClasses);
+ classListToCList(d->m_builder->takeSmartPointers(), &result.m_smartPointers);
+ result.m_globalFunctions = d->m_builder->globalFunctions();
+ result.m_globalEnums = d->m_builder->globalEnums();
+ result.m_enums = d->m_builder->typeEntryToEnumsHash();
+ result.m_flags = flags;
+ result.m_typedefTargetToName = d->m_builder->typedefTargetToName();
+ qSwap(result.m_instantiatedContainers, collectContext.instantiatedContainers);
+ qSwap(result.m_instantiatedSmartPointers, collectContext.instantiatedSmartPointers);
return result;
}
LanguageLevel ApiExtractor::languageLevel() const
{
- return m_languageLevel;
+ return d->m_languageLevel;
}
-void ApiExtractor::setLanguageLevel(LanguageLevel languageLevel)
+QStringList ApiExtractor::clangOptions() const
{
- m_languageLevel = languageLevel;
+ return d->m_clangOptions;
}
-QStringList ApiExtractor::clangOptions() const
+AbstractMetaFunctionPtr
+ ApiExtractor::inheritTemplateFunction(const AbstractMetaFunctionCPtr &function,
+ const AbstractMetaTypeList &templateTypes)
+{
+ return AbstractMetaBuilder::inheritTemplateFunction(function, templateTypes);
+}
+
+AbstractMetaFunctionPtr
+ ApiExtractor::inheritTemplateMember(const AbstractMetaFunctionCPtr &function,
+ const AbstractMetaTypeList &templateTypes,
+ const AbstractMetaClassCPtr &templateClass,
+ const AbstractMetaClassPtr &subclass)
{
- return m_clangOptions;
+ return AbstractMetaBuilder::inheritTemplateMember(function, templateTypes,
+ templateClass, subclass);
}
-void ApiExtractor::setClangOptions(const QStringList &co)
+AbstractMetaClassPtr ApiExtractor::inheritTemplateClass(const ComplexTypeEntryPtr &te,
+ const AbstractMetaClassCPtr &templateClass,
+ const AbstractMetaTypeList &templateTypes,
+ InheritTemplateFlags flags)
{
- m_clangOptions = co;
+ return AbstractMetaBuilder::inheritTemplateClass(te, templateClass,
+ templateTypes, flags);
}
-void ApiExtractor::setUseGlobalHeader(bool h)
+QString ApiExtractorPrivate::getSimplifiedContainerTypeName(const AbstractMetaType &type)
{
- AbstractMetaBuilder::setUseGlobalHeader(h);
+ const QString signature = type.cppSignature();
+ if (!type.typeEntry()->isContainer() && !type.typeEntry()->isSmartPointer())
+ return signature;
+ QString typeName = signature;
+ if (type.isConstant())
+ typeName.remove(0, sizeof("const ") / sizeof(char) - 1);
+ switch (type.referenceType()) {
+ case NoReference:
+ break;
+ case LValueReference:
+ typeName.chop(1);
+ break;
+ case RValueReference:
+ typeName.chop(2);
+ break;
+ }
+ while (typeName.endsWith(u'*') || typeName.endsWith(u' '))
+ typeName.chop(1);
+ return typeName;
+}
+
+// Strip a "const QSharedPtr<const Foo> &" or similar to "QSharedPtr<Foo>" (PYSIDE-1016/454)
+AbstractMetaType canonicalSmartPtrInstantiation(const AbstractMetaType &type)
+{
+ const AbstractMetaTypeList &instantiations = type.instantiations();
+ Q_ASSERT(instantiations.size() == 1);
+ const bool needsFix = type.isConstant() || type.referenceType() != NoReference;
+ const bool pointeeNeedsFix = instantiations.constFirst().isConstant();
+ if (!needsFix && !pointeeNeedsFix)
+ return type;
+ auto fixedType = type;
+ fixedType.setReferenceType(NoReference);
+ fixedType.setConstant(false);
+ if (pointeeNeedsFix) {
+ auto fixedPointeeType = instantiations.constFirst();
+ fixedPointeeType.setConstant(false);
+ fixedType.setInstantiations(AbstractMetaTypeList(1, fixedPointeeType));
+ }
+ return fixedType;
+}
+
+static inline TypeEntryCPtr pointeeTypeEntry(const AbstractMetaType &smartPtrType)
+{
+ return smartPtrType.instantiations().constFirst().typeEntry();
+}
+
+static AbstractMetaType simplifiedType(AbstractMetaType type)
+{
+ type.setIndirections(0);
+ type.setConstant(false);
+ type.setReferenceType(NoReference);
+ type.decideUsagePattern();
+ return type;
+}
+
+void
+ApiExtractorPrivate::addInstantiatedContainersAndSmartPointers(InstantiationCollectContext &context,
+ const AbstractMetaType &type,
+ const QString &contextName)
+{
+ for (const auto &t : type.instantiations())
+ addInstantiatedContainersAndSmartPointers(context, t, contextName);
+ const auto typeEntry = type.typeEntry();
+ const bool isContainer = typeEntry->isContainer();
+ if (!isContainer
+ && !(typeEntry->isSmartPointer() && typeEntry->generateCode())) {
+ return;
+ }
+ if (type.hasTemplateChildren()) {
+ const auto piece = isContainer ? "container"_L1 : "smart pointer"_L1;
+ QString warning =
+ QString::fromLatin1("Skipping instantiation of %1 '%2' because it has template"
+ " arguments.").arg(piece, type.originalTypeDescription());
+ if (!contextName.isEmpty())
+ warning.append(" Calling context: "_L1 + contextName);
+
+ qCWarning(lcShiboken).noquote().nospace() << warning;
+ return;
+
+ }
+ if (isContainer) {
+ const QString typeName = getSimplifiedContainerTypeName(type);
+ if (!context.instantiatedContainersNames.contains(typeName)) {
+ context.instantiatedContainersNames.append(typeName);
+ context.instantiatedContainers.append(simplifiedType(type));
+ }
+ return;
+ }
+
+ // Is smart pointer. Check if the (const?) pointee is already known for the given
+ // smart pointer type entry.
+ auto pt = pointeeTypeEntry(type);
+ const bool present =
+ std::any_of(context.instantiatedSmartPointers.cbegin(),
+ context.instantiatedSmartPointers.cend(),
+ [typeEntry, pt] (const InstantiatedSmartPointer &smp) {
+ return smp.type.typeEntry() == typeEntry
+ && pointeeTypeEntry(smp.type) == pt;
+ });
+ if (!present)
+ addInstantiatedSmartPointer(context, type);
+}
+
+// Create a modification that invalidates the pointee argument of a smart
+// pointer constructor or reset().
+static FunctionModification invalidateArgMod(const AbstractMetaFunctionCPtr &f, int index = 1)
+{
+ ArgumentModification argMod;
+ argMod.setTargetOwnerShip(TypeSystem::CppOwnership);
+ argMod.setIndex(index);
+ FunctionModification funcMod;
+ funcMod.setSignature(f->minimalSignature());
+ funcMod.setArgument_mods({argMod});
+ return funcMod;
+}
+
+static void addOwnerModification(const AbstractMetaFunctionCList &functions,
+ const ComplexTypeEntryPtr &typeEntry)
+{
+ for (const auto &f : functions) {
+ if (!f->arguments().isEmpty()
+ && f->arguments().constFirst().type().indirections() > 0) {
+ std::const_pointer_cast<AbstractMetaFunction>(f)->clearModificationsCache();
+ typeEntry->addFunctionModification(invalidateArgMod(f));
+ }
+ }
+}
+
+void ApiExtractorPrivate::addInstantiatedSmartPointer(InstantiationCollectContext &context,
+ const AbstractMetaType &type)
+{
+ InstantiatedSmartPointer smp;
+ smp.type = canonicalSmartPtrInstantiation(type);
+ smp.smartPointer = AbstractMetaClass::findClass(m_builder->smartPointers(),
+ type.typeEntry());
+ Q_ASSERT(smp.smartPointer);
+
+ const auto &instantiatedType = type.instantiations().constFirst();
+ const auto ste = std::static_pointer_cast<const SmartPointerTypeEntry>(smp.smartPointer->typeEntry());
+ QString name = ste->getTargetName(smp.type);
+ auto parentTypeEntry = ste->parent();
+ InheritTemplateFlags flags;
+
+ auto colonPos = name.lastIndexOf(u"::");
+ const bool withinNameSpace = colonPos != -1;
+ if (withinNameSpace) { // user defined
+ const QString nameSpace = name.left(colonPos);
+ name.remove(0, colonPos + 2);
+ const auto nameSpaces = TypeDatabase::instance()->findNamespaceTypes(nameSpace);
+ if (nameSpaces.isEmpty())
+ throw Exception(msgNamespaceNotFound(name));
+ parentTypeEntry = nameSpaces.constFirst();
+ } else {
+ flags.setFlag(InheritTemplateFlag::SetEnclosingClass);
+ }
+
+ TypedefEntryPtr typedefEntry(new TypedefEntry(name, ste->name(), ste->version(),
+ parentTypeEntry));
+ typedefEntry->setTargetLangPackage(ste->targetLangPackage());
+ auto instantiationEntry = TypeDatabase::initializeTypeDefEntry(typedefEntry, ste);
+
+ smp.specialized = ApiExtractor::inheritTemplateClass(instantiationEntry, smp.smartPointer,
+ {instantiatedType}, flags);
+ Q_ASSERT(smp.specialized);
+ if (withinNameSpace) { // move class to desired namespace
+ const auto enclClass = AbstractMetaClass::findClass(m_builder->classes(), parentTypeEntry);
+ Q_ASSERT(enclClass);
+ auto specialized = std::const_pointer_cast<AbstractMetaClass>(smp.specialized);
+ specialized->setEnclosingClass(enclClass);
+ enclClass->addInnerClass(specialized);
+ }
+
+ if (instantiationEntry->isComplex()) {
+ addOwnerModification(smp.specialized->queryFunctions(FunctionQueryOption::Constructors),
+ instantiationEntry);
+ if (!ste->resetMethod().isEmpty()) {
+ addOwnerModification(smp.specialized->findFunctions(ste->resetMethod()),
+ instantiationEntry);
+ }
+ }
+
+ context.instantiatedSmartPointers.append(smp);
+}
+
+void
+ApiExtractorPrivate::collectInstantiatedContainersAndSmartPointers(InstantiationCollectContext &context,
+ const AbstractMetaFunctionCPtr &func)
+{
+ addInstantiatedContainersAndSmartPointers(context, func->type(), func->signature());
+ for (const AbstractMetaArgument &arg : func->arguments()) {
+ const auto argType = arg.type();
+ const auto type = argType.viewOn() != nullptr ? *argType.viewOn() : argType;
+ addInstantiatedContainersAndSmartPointers(context, type, func->signature());
+ }
+}
+
+void
+ApiExtractorPrivate::collectInstantiatedContainersAndSmartPointers(InstantiationCollectContext &context,
+ const AbstractMetaClassCPtr &metaClass)
+{
+ if (!metaClass->typeEntry()->generateCode())
+ return;
+ for (const auto &func : metaClass->functions())
+ collectInstantiatedContainersAndSmartPointers(context, func);
+ for (const auto &func : metaClass->userAddedPythonOverrides())
+ collectInstantiatedContainersAndSmartPointers(context, func);
+ for (const AbstractMetaField &field : metaClass->fields())
+ addInstantiatedContainersAndSmartPointers(context, field.type(), field.name());
+
+ // The list of inner classes might be extended when smart pointer
+ // instantiations are specified to be in namespaces.
+ const auto &innerClasses = metaClass->innerClasses();
+ for (auto i = innerClasses.size() - 1; i >= 0; --i) {
+ const auto innerClass = innerClasses.at(i);
+ if (!innerClass->typeEntry()->isSmartPointer())
+ collectInstantiatedContainersAndSmartPointers(context, innerClass);
+ }
+}
+
+void
+ApiExtractorPrivate::collectInstantiatedContainersAndSmartPointers(InstantiationCollectContext &context)
+{
+ collectInstantiatedOpqaqueContainers(context);
+ for (const auto &func : m_builder->globalFunctions())
+ collectInstantiatedContainersAndSmartPointers(context, func);
+ for (const auto &metaClass : m_builder->classes())
+ collectInstantiatedContainersAndSmartPointers(context, metaClass);
+ collectContainerTypesFromSnippets(context);
+}
+
+// Whether to generate an opaque container: If the instantiation type is in
+// the current package or, for primitive types, if the container is in the
+// current package.
+static bool generateOpaqueContainer(const AbstractMetaType &type,
+ const TypeSystemTypeEntryCPtr &moduleEntry)
+{
+ auto te = type.instantiations().constFirst().typeEntry();
+ auto typeModuleEntry = typeSystemTypeEntry(te);
+ return typeModuleEntry == moduleEntry
+ || (te->isPrimitive() && typeSystemTypeEntry(type.typeEntry()) == moduleEntry);
+}
+
+void ApiExtractorPrivate::collectInstantiatedOpqaqueContainers(InstantiationCollectContext &context)
+{
+ // Add all instantiations of opaque containers for types from the current
+ // module.
+ auto *td = TypeDatabase::instance();
+ const auto moduleEntry = TypeDatabase::instance()->defaultTypeSystemType();
+ const auto &containers = td->containerTypes();
+ for (const auto &container : containers) {
+ for (const auto &oc : container->opaqueContainers()) {
+ QString errorMessage;
+ const QString typeName = container->qualifiedCppName() + oc.templateParameters();
+ auto typeOpt = AbstractMetaType::fromString(typeName, &errorMessage);
+ if (typeOpt.has_value()
+ && generateOpaqueContainer(typeOpt.value(), moduleEntry)) {
+ addInstantiatedContainersAndSmartPointers(context, typeOpt.value(),
+ u"opaque containers"_s);
+ }
+ }
+ }
+}
+
+static void getCode(QStringList &code, const CodeSnipList &codeSnips)
+{
+ for (const CodeSnip &snip : std::as_const(codeSnips))
+ code.append(snip.code());
+}
+
+static void getCode(QStringList &code, const TypeEntryCPtr &type)
+{
+ if (type->isComplex())
+ getCode(code, std::static_pointer_cast<const ComplexTypeEntry>(type)->codeSnips());
+ else if (type->isTypeSystem())
+ getCode(code, std::static_pointer_cast<const TypeSystemTypeEntry>(type)->codeSnips());
+
+ auto customConversion = CustomConversion::getCustomConversion(type);
+ if (!customConversion)
+ return;
+
+ if (!customConversion->nativeToTargetConversion().isEmpty())
+ code.append(customConversion->nativeToTargetConversion());
+
+ const auto &toCppConversions = customConversion->targetToNativeConversions();
+ if (toCppConversions.isEmpty())
+ return;
+
+ for (const auto &toNative : std::as_const(toCppConversions))
+ code.append(toNative.conversion());
+}
+
+void ApiExtractorPrivate::collectContainerTypesFromSnippets(InstantiationCollectContext &context)
+{
+ QStringList snips;
+ auto *td = TypeDatabase::instance();
+ const PrimitiveTypeEntryCList &primitiveTypeList = td->primitiveTypes();
+ for (const auto &type : primitiveTypeList)
+ getCode(snips, type);
+ const ContainerTypeEntryCList &containerTypeList = td->containerTypes();
+ for (const auto &type : containerTypeList)
+ getCode(snips, type);
+ for (const auto &metaClass : m_builder->classes())
+ getCode(snips, metaClass->typeEntry());
+
+ const auto moduleEntry = td->defaultTypeSystemType();
+ Q_ASSERT(moduleEntry);
+ getCode(snips, moduleEntry);
+
+ for (const auto &func : m_builder->globalFunctions())
+ getCode(snips, func->injectedCodeSnips());
+
+ for (const QString &code : std::as_const(snips)) {
+ collectContainerTypesFromConverterMacros(context, code, true);
+ collectContainerTypesFromConverterMacros(context, code, false);
+ }
+}
+
+void
+ApiExtractorPrivate::collectContainerTypesFromConverterMacros(InstantiationCollectContext &context,
+ const QString &code,
+ bool toPythonMacro)
+{
+ QString convMacro = toPythonMacro ? u"%CONVERTTOPYTHON["_s : u"%CONVERTTOCPP["_s;
+ const qsizetype offset = toPythonMacro ? sizeof("%CONVERTTOPYTHON") : sizeof("%CONVERTTOCPP");
+ qsizetype start = 0;
+ QString errorMessage;
+ while ((start = code.indexOf(convMacro, start)) != -1) {
+ int end = code.indexOf(u']', start);
+ start += offset;
+ if (code.at(start) != u'%') {
+ QString typeString = code.mid(start, end - start);
+ auto type = AbstractMetaType::fromString(typeString, &errorMessage);
+ if (type.has_value()) {
+ const QString &d = type->originalTypeDescription();
+ addInstantiatedContainersAndSmartPointers(context, type.value(), d);
+ } else {
+ QString m;
+ QTextStream(&m) << __FUNCTION__ << ": Cannot translate type \""
+ << typeString << "\": " << errorMessage;
+ throw Exception(m);
+ }
+ }
+ start = end;
+ }
}
#ifndef QT_NO_DEBUG_STREAM
@@ -311,7 +836,7 @@ QDebug operator<<(QDebug d, const ApiExtractor &ae)
d.setVerbosity(3); // Trigger verbose output of AbstractMetaClass
d << "ApiExtractor(typeSystem=\"" << ae.typeSystem() << "\", cppFileNames=\""
<< ae.cppFileNames() << ", ";
- ae.m_builder->formatDebug(d);
+ ae.d->m_builder->formatDebug(d);
d << ')';
return d;
}
diff --git a/sources/shiboken6/ApiExtractor/apiextractor.h b/sources/shiboken6/ApiExtractor/apiextractor.h
index f7e3685f5..feae9454c 100644
--- a/sources/shiboken6/ApiExtractor/apiextractor.h
+++ b/sources/shiboken6/ApiExtractor/apiextractor.h
@@ -1,109 +1,83 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef APIEXTRACTOR_H
#define APIEXTRACTOR_H
#include "abstractmetalang_typedefs.h"
+#include "apiextractorflags.h"
#include "header_paths.h"
-#include "typedatabase_typedefs.h"
-#include "typesystem_typedefs.h"
#include "clangparser/compilersupport.h"
-#include <QFileInfoList>
-#include <QStringList>
+#include "typesystem_typedefs.h"
+
+#include <QtCore/QFileInfoList>
+#include <QtCore/QStringList>
#include <optional>
class ApiExtractorResult;
-class AbstractMetaBuilder;
class AbstractMetaClass;
class AbstractMetaEnum;
class AbstractMetaFunction;
-class AbstractMetaType;
-class ContainerTypeEntry;
-class EnumTypeEntry;
-class FlagsTypeEntry;
-class PrimitiveTypeEntry;
-class TypeEntry;
+class ComplexTypeEntry;
+struct OptionDescription;
+class OptionsParser;
QT_BEGIN_NAMESPACE
class QDebug;
class QIODevice;
QT_END_NAMESPACE
+struct ApiExtractorPrivate;
+
class ApiExtractor
{
public:
- Q_DISABLE_COPY(ApiExtractor)
+ Q_DISABLE_COPY_MOVE(ApiExtractor)
ApiExtractor();
~ApiExtractor();
+ static QList<OptionDescription> options();
+ std::shared_ptr<OptionsParser> createOptionsParser();
+
void setTypeSystem(const QString& typeSystemFileName);
- QString typeSystem() const { return m_typeSystemFileName; }
+ QString typeSystem() const;
void setCppFileNames(const QFileInfoList &cppFileNames);
- QFileInfoList cppFileNames() const { return m_cppFileNames; }
- void setSkipDeprecated(bool value);
- static void setSuppressWarnings(bool value);
- static void setSilent(bool value);
- static void addTypesystemSearchPath(const QString &path);
- static void addTypesystemSearchPath(const QStringList& paths);
- static void setTypesystemKeywords(const QStringList& keywords);
- void addIncludePath(const HeaderPath& path);
- void addIncludePath(const HeaderPaths& paths);
- HeaderPaths includePaths() const { return m_includePaths; }
+ QFileInfoList cppFileNames() const;
+ HeaderPaths includePaths() const;
void setLogDirectory(const QString& logDir);
- static bool setApiVersion(const QString &package, const QString &version);
- static void setDropTypeEntries(const QStringList &dropEntries);
LanguageLevel languageLevel() const;
- void setLanguageLevel(LanguageLevel languageLevel);
QStringList clangOptions() const;
- void setClangOptions(const QStringList &co);
- static void setUseGlobalHeader(bool h);
const AbstractMetaEnumList &globalEnums() const;
const AbstractMetaFunctionCList &globalFunctions() const;
const AbstractMetaClassList &classes() const;
const AbstractMetaClassList &smartPointers() const;
- std::optional<ApiExtractorResult> run(bool usePySideExtensions);
+ std::optional<ApiExtractorResult> run(ApiExtractorFlags flags);
+
+ /// Forwards to AbstractMetaBuilder::inheritTemplateFunction()
+ static AbstractMetaFunctionPtr
+ inheritTemplateFunction(const AbstractMetaFunctionCPtr &function,
+ const AbstractMetaTypeList &templateTypes);
+
+ /// Forwards to AbstractMetaBuilder::inheritTemplateMember()
+ static AbstractMetaFunctionPtr
+ inheritTemplateMember(const AbstractMetaFunctionCPtr &function,
+ const AbstractMetaTypeList &templateTypes,
+ const AbstractMetaClassCPtr &templateClass,
+ const AbstractMetaClassPtr &subclass);
+
+ /// Forwards to AbstractMetaBuilder::inheritTemplateClass()
+ static AbstractMetaClassPtr
+ inheritTemplateClass(const ComplexTypeEntryPtr &te,
+ const AbstractMetaClassCPtr &templateClass,
+ const AbstractMetaTypeList &templateTypes,
+ InheritTemplateFlags flags = {});
private:
- bool runHelper(bool usePySideExtensions);
-
- QString m_typeSystemFileName;
- QFileInfoList m_cppFileNames;
- HeaderPaths m_includePaths;
- QStringList m_clangOptions;
- AbstractMetaBuilder* m_builder = nullptr;
- QString m_logDirectory;
- LanguageLevel m_languageLevel = LanguageLevel::Default;
- bool m_skipDeprecated = false;
+ ApiExtractorPrivate *d;
#ifndef QT_NO_DEBUG_STREAM
friend QDebug operator<<(QDebug d, const ApiExtractor &ae);
diff --git a/sources/shiboken6/ApiExtractor/apiextractorflags.h b/sources/shiboken6/ApiExtractor/apiextractorflags.h
new file mode 100644
index 000000000..4fe6ecc1a
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/apiextractorflags.h
@@ -0,0 +1,26 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef APIEXTRACTORFLAGS_H
+#define APIEXTRACTORFLAGS_H
+
+#include <QtCore/QFlags>
+
+enum class ApiExtractorFlag
+{
+ UsePySideExtensions = 0x1,
+ AvoidProtectedHack = 0x2
+};
+
+Q_DECLARE_FLAGS(ApiExtractorFlags, ApiExtractorFlag)
+Q_DECLARE_OPERATORS_FOR_FLAGS(ApiExtractorFlags)
+
+enum class InheritTemplateFlag
+{
+ SetEnclosingClass = 0x1
+};
+
+Q_DECLARE_FLAGS(InheritTemplateFlags, InheritTemplateFlag)
+Q_DECLARE_OPERATORS_FOR_FLAGS(InheritTemplateFlags)
+
+#endif // APIEXTRACTORFLAGS_H
diff --git a/sources/shiboken6/ApiExtractor/apiextractorresult.cpp b/sources/shiboken6/ApiExtractor/apiextractorresult.cpp
index 04566ada2..2a48a30d1 100644
--- a/sources/shiboken6/ApiExtractor/apiextractorresult.cpp
+++ b/sources/shiboken6/ApiExtractor/apiextractorresult.cpp
@@ -1,48 +1,82 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "apiextractorresult.h"
#include "abstractmetalang.h"
#include "abstractmetaenum.h"
-#include "typesystem.h"
+#include "enumtypeentry.h"
+#include "flagstypeentry.h"
-std::optional<AbstractMetaEnum> ApiExtractorResult::findAbstractMetaEnum(const TypeEntry *typeEntry) const
+ApiExtractorResult::ApiExtractorResult() = default;
+
+ApiExtractorResult::ApiExtractorResult(const ApiExtractorResult &) = default;
+
+ApiExtractorResult &ApiExtractorResult::operator=(const ApiExtractorResult &) = default;
+
+ApiExtractorResult::ApiExtractorResult(ApiExtractorResult &&) noexcept = default;
+
+ApiExtractorResult &ApiExtractorResult::operator=(ApiExtractorResult &&) noexcept = default;
+
+ApiExtractorResult::~ApiExtractorResult() = default;
+
+const AbstractMetaEnumList &ApiExtractorResult::globalEnums() const
+{
+ return m_globalEnums;
+}
+
+const AbstractMetaFunctionCList &ApiExtractorResult::globalFunctions() const
+{
+ return m_globalFunctions;
+}
+
+const AbstractMetaClassCList &ApiExtractorResult::classes() const
+{
+ return m_metaClasses;
+}
+
+const AbstractMetaClassCList &ApiExtractorResult::smartPointers() const
+{
+ return m_smartPointers;
+}
+
+const AbstractMetaTypeList &ApiExtractorResult::instantiatedContainers() const
+{
+ return m_instantiatedContainers;
+}
+
+const InstantiatedSmartPointers &ApiExtractorResult::instantiatedSmartPointers() const
+{
+ return m_instantiatedSmartPointers;
+}
+
+const QMultiHash<QString, QString> &ApiExtractorResult::typedefTargetToName() const
+{
+ return m_typedefTargetToName;
+}
+
+ApiExtractorFlags ApiExtractorResult::flags() const
+{
+ return m_flags;
+}
+
+void ApiExtractorResult::setFlags(ApiExtractorFlags f)
+{
+ m_flags = f;
+}
+
+std::optional<AbstractMetaEnum>
+ ApiExtractorResult::findAbstractMetaEnum(TypeEntryCPtr typeEntry) const
{
if (typeEntry && typeEntry->isFlags())
- typeEntry = static_cast<const FlagsTypeEntry *>(typeEntry)->originator();
+ typeEntry = std::static_pointer_cast<const FlagsTypeEntry>(typeEntry)->originator();
const auto it = m_enums.constFind(typeEntry);
if (it == m_enums.constEnd())
return {};
return it.value();
}
-AbstractMetaFunctionCList ApiExtractorResult::implicitConversions(const TypeEntry *type) const
+AbstractMetaFunctionCList ApiExtractorResult::implicitConversions(const TypeEntryCPtr &type) const
{
if (type->isValue()) {
if (auto metaClass = AbstractMetaClass::findClass(m_metaClasses, type))
diff --git a/sources/shiboken6/ApiExtractor/apiextractorresult.h b/sources/shiboken6/ApiExtractor/apiextractorresult.h
index 18b07a1b7..88a2093f1 100644
--- a/sources/shiboken6/ApiExtractor/apiextractorresult.h
+++ b/sources/shiboken6/ApiExtractor/apiextractorresult.h
@@ -1,75 +1,78 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef APIEXTRACTORRESULT_H
#define APIEXTRACTORRESULT_H
-#include "abstractmetalang.h"
-#include "abstractmetaenum.h"
+#include "apiextractorflags.h"
#include "abstractmetatype.h"
+#include "abstractmetalang_typedefs.h"
#include "typesystem_typedefs.h"
#include <QtCore/QHash>
+#include <QtCore/QMultiHash>
#include <optional>
+class ApiExtractorResultData;
+
+struct InstantiatedSmartPointer
+{
+ AbstractMetaClassCPtr smartPointer; // Template class
+ AbstractMetaClassCPtr specialized; // Specialized for type
+ AbstractMetaType type;
+};
+
+using InstantiatedSmartPointers = QList<InstantiatedSmartPointer>;
+
/// Result of an ApiExtractor run.
-/// Note: The class lists in here are flat, non-owning lists, currently
-/// (pending introduction of QSharedPointer for AbstractMetaClass); the
-/// ApiExtractor/AbstractMetaBuilder must be kept alive during the
-/// generator run since it owns the classes.
class ApiExtractorResult
{
- friend class ApiExtractor;
public:
- const AbstractMetaEnumList &globalEnums() const { return m_globalEnums; }
- const AbstractMetaFunctionCList &globalFunctions() const { return m_globalFunctions; }
- const AbstractMetaClassCList &classes() const { return m_metaClasses; }
- const AbstractMetaClassCList &smartPointers() const { return m_smartPointers; }
+ ApiExtractorResult();
+ ApiExtractorResult(const ApiExtractorResult &);
+ ApiExtractorResult &operator=(const ApiExtractorResult &);
+ ApiExtractorResult(ApiExtractorResult &&) noexcept;
+ ApiExtractorResult &operator=(ApiExtractorResult &&) noexcept;
+ ~ApiExtractorResult();
+
+ const AbstractMetaEnumList &globalEnums() const;
+ const AbstractMetaFunctionCList &globalFunctions() const;
+ const AbstractMetaClassCList &classes() const;
+ const AbstractMetaClassCList &smartPointers() const;
+
+ const AbstractMetaTypeList &instantiatedContainers() const;
+ const InstantiatedSmartPointers &instantiatedSmartPointers() const;
+
+ const QMultiHash<QString, QString> &typedefTargetToName() const;
// Query functions for the generators
- std::optional<AbstractMetaEnum> findAbstractMetaEnum(const TypeEntry* typeEntry) const;
+ std::optional<AbstractMetaEnum>
+ findAbstractMetaEnum(TypeEntryCPtr typeEntry) const;
/// Retrieves a list of constructors used in implicit conversions
/// available on the given type. The TypeEntry must be a value-type
/// or else it will return an empty list.
/// \param type a TypeEntry that is expected to be a value-type
/// \return a list of constructors that could be used as implicit converters
- AbstractMetaFunctionCList implicitConversions(const TypeEntry *type) const;
+ AbstractMetaFunctionCList implicitConversions(const TypeEntryCPtr &type) const;
AbstractMetaFunctionCList implicitConversions(const AbstractMetaType &metaType) const;
+ ApiExtractorFlags flags() const;
+ void setFlags(ApiExtractorFlags f);
+
private:
AbstractMetaClassCList m_metaClasses;
AbstractMetaClassCList m_smartPointers;
AbstractMetaFunctionCList m_globalFunctions;
AbstractMetaEnumList m_globalEnums;
+ AbstractMetaTypeList m_instantiatedContainers;
+ InstantiatedSmartPointers m_instantiatedSmartPointers;
+ QHash<TypeEntryCPtr, AbstractMetaEnum> m_enums;
+ QMultiHash<QString, QString> m_typedefTargetToName;
+ ApiExtractorFlags m_flags;
- QHash<const TypeEntry *, AbstractMetaEnum> m_enums;
+ friend class ApiExtractor;
};
#endif // APIEXTRACTORRESULT_H
diff --git a/sources/shiboken6/ApiExtractor/arraytypeentry.h b/sources/shiboken6/ApiExtractor/arraytypeentry.h
new file mode 100644
index 000000000..5b9bb191e
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/arraytypeentry.h
@@ -0,0 +1,28 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef ARRAYTYPEENTRY_H
+#define ARRAYTYPEENTRY_H
+
+#include "typesystem.h"
+
+class ArrayTypeEntryPrivate;
+
+class ArrayTypeEntry : public TypeEntry
+{
+public:
+ explicit ArrayTypeEntry(const TypeEntryCPtr &nested_type, const QVersionNumber &vr,
+ const TypeEntryCPtr &parent);
+
+ void setNestedTypeEntry(const TypeEntryPtr &nested);
+ TypeEntryCPtr nestedTypeEntry() const;
+
+ TypeEntry *clone() const override;
+
+protected:
+ explicit ArrayTypeEntry(ArrayTypeEntryPrivate *d);
+
+ QString buildTargetLangName() const override;
+};
+
+#endif // ARRAYTYPEENTRY_H
diff --git a/sources/shiboken6/ApiExtractor/clangparser/clangbuilder.cpp b/sources/shiboken6/ApiExtractor/clangparser/clangbuilder.cpp
index 0b6c87ffc..31e7efb05 100644
--- a/sources/shiboken6/ApiExtractor/clangparser/clangbuilder.cpp
+++ b/sources/shiboken6/ApiExtractor/clangparser/clangbuilder.cpp
@@ -1,38 +1,16 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "clangbuilder.h"
#include "compilersupport.h"
#include "clangutils.h"
+#include "clangdebugutils.h"
#include <codemodel.h>
#include <reporthandler.h>
+#include "qtcompat.h"
+
#include <QtCore/QDebug>
#include <QtCore/QDir>
#include <QtCore/QHash>
@@ -44,10 +22,9 @@
#include <cstring>
#include <ctype.h>
-namespace clang {
+using namespace Qt::StringLiterals;
-static inline QString colonColon() { return QStringLiteral("::"); }
-static inline QString templateBrackets() { return QStringLiteral("<>"); }
+namespace clang {
static inline bool isClassCursor(const CXCursor &c)
{
@@ -69,9 +46,9 @@ static inline bool withinClassDeclaration(const CXCursor &cursor)
static QString fixTypeName(QString t)
{
// Fix "Foo &" -> "Foo&", similarly "Bar **" -> "Bar**"
- int pos = t.size() - 1;
- for (; pos >= 0 && (t.at(pos) == QLatin1Char('&') || t.at(pos) == QLatin1Char('*')); --pos) {}
- if (pos > 0 && t.at(pos) == QLatin1Char(' '))
+ auto pos = t.size() - 1;
+ for (; pos >= 0 && (t.at(pos) == u'&' || t.at(pos) == u'*'); --pos) {}
+ if (pos > 0 && t.at(pos) == u' ')
t.remove(pos, 1);
return t;
}
@@ -81,13 +58,13 @@ static QString fixTypeName(QString t)
// the class name "Foo<T1,T2>" is the scope for nested items.
static bool insertTemplateParameterIntoClassName(const QString &parmName, QString *name)
{
- if (Q_UNLIKELY(!name->endsWith(QLatin1Char('>'))))
+ if (Q_UNLIKELY(!name->endsWith(u'>')))
return false;
- const bool needsComma = name->at(name->size() - 2) != QLatin1Char('<');
- const int insertionPos = name->size() - 1;
+ const bool needsComma = name->at(name->size() - 2) != u'<';
+ const auto insertionPos = name->size() - 1;
name->insert(insertionPos, parmName);
if (needsComma)
- name->insert(insertionPos, QLatin1Char(','));
+ name->insert(insertionPos, u',');
return true;
}
@@ -136,8 +113,17 @@ static bool isSigned(CXTypeKind kind)
class BuilderPrivate {
public:
+ Q_DISABLE_COPY_MOVE(BuilderPrivate)
+
+ enum class SpecialSystemHeader {
+ None,
+ Types,
+ OpenGL,
+ WhiteListed,
+ WhiteListedPath
+ };
+
using CursorClassHash = QHash<CXCursor, ClassModelItem>;
- using CursorTypedefHash = QHash<CXCursor, TypeDefModelItem>;
using TypeInfoHash = QHash<CXType, TypeInfo>;
explicit BuilderPrivate(BaseVisitor *bv) : m_baseVisitor(bv), m_model(new CodeModel)
@@ -200,13 +186,12 @@ public:
void addField(const CXCursor &cursor);
static QString cursorValueExpression(BaseVisitor *bv, const CXCursor &cursor);
- QString getBaseClassName(CXType type) const;
+ std::pair<QString, ClassModelItem> getBaseClass(CXType type) const;
void addBaseClass(const CXCursor &cursor);
- template <class Item>
- void qualifyTypeDef(const CXCursor &typeRefCursor, const QSharedPointer<Item> &item) const;
-
- bool visitHeader(const char *cFileName) const;
+ SpecialSystemHeader specialSystemHeader(const QString &fileName) const;
+ bool visitHeader(const QString &fileName) const;
+ static const char *specialSystemHeaderReason(SpecialSystemHeader sh);
void setFileName(const CXCursor &cursor, _CodeModelItem *item);
@@ -219,7 +204,6 @@ public:
// classes can be correctly parented in case of forward-declared inner classes
// (QMetaObject::Connection)
CursorClassHash m_cursorClassHash;
- CursorTypedefHash m_cursorTypedefHash;
mutable TypeInfoHash m_typeInfoHash; // Cache type information
mutable QHash<QString, TemplateTypeAliasModelItem> m_templateTypeAliases;
@@ -230,21 +214,22 @@ public:
ArgumentModelItem m_currentArgument;
VariableModelItem m_currentField;
TemplateTypeAliasModelItem m_currentTemplateTypeAlias;
- QByteArrayList m_systemIncludes; // files, like "memory"
- QByteArrayList m_systemIncludePaths; // paths, like "/usr/include/Qt/"
+ QStringList m_forceProcessSystemIncludes; // files, like "memory"
+ QStringList m_forceProcessSystemIncludePaths; // paths, like "/usr/include/Qt/"
QString m_usingTypeRef; // Base classes in "using Base::member;"
bool m_withinUsingDeclaration = false;
int m_anonymousEnumCount = 0;
CodeModel::FunctionType m_currentFunctionType = CodeModel::Normal;
bool m_withinFriendDecl = false;
+ mutable QHash<QString, SpecialSystemHeader> m_systemHeaders;
};
bool BuilderPrivate::addClass(const CXCursor &cursor, CodeModel::ClassType t)
{
QString className = getCursorSpelling(cursor);
m_currentClass.reset(new _ClassModelItem(m_model, className));
- setFileName(cursor, m_currentClass.data());
+ setFileName(cursor, m_currentClass.get());
m_currentClass->setClassType(t);
// Some inner class? Note that it does not need to be (lexically) contained in a
// class since it is possible to forward declare an inner class:
@@ -287,10 +272,9 @@ static QString msgCannotDetermineException(const std::string_view &snippetV)
const qsizetype length = qsizetype(truncate ? newLine : snippetV.size());
QString snippet = QString::fromUtf8(snippetV.data(), length);
if (truncate)
- snippet += QStringLiteral("...");
+ snippet += "..."_L1;
- return QLatin1String("Cannot determine exception specification: \"")
- + snippet + QLatin1Char('"');
+ return u"Cannot determine exception specification: \""_s + snippet + u'"';
}
// Return whether noexcept(<value>) throws. noexcept() takes a constexpr value.
@@ -347,11 +331,13 @@ FunctionModelItem BuilderPrivate::createFunction(const CXCursor &cursor,
{
QString name = getCursorSpelling(cursor);
// Apply type fixes to "operator X &" -> "operator X&"
- if (name.startsWith(QLatin1String("operator ")))
+ if (name.startsWith(u"operator "))
name = fixTypeName(name);
- FunctionModelItem result(new _FunctionModelItem(m_model, name));
- setFileName(cursor, result.data());
- result->setType(createTypeInfo(clang_getCursorResultType(cursor)));
+ auto result = std::make_shared<_FunctionModelItem>(m_model, name);
+ setFileName(cursor, result.get());
+ const auto type = clang_getCursorResultType(cursor);
+ result->setType(createTypeInfo(type));
+ result->setScopeResolution(hasScopeResolution(type));
result->setFunctionType(t);
result->setScope(m_scope);
result->setStatic(clang_Cursor_getStorageClass(cursor) == CX_SC_Static);
@@ -360,7 +346,7 @@ FunctionModelItem BuilderPrivate::createFunction(const CXCursor &cursor,
case CXAvailability_Available:
break;
case CXAvailability_Deprecated:
- result->setDeprecated(true);
+ result->setAttribute(FunctionAttribute::Deprecated);
break;
case CXAvailability_NotAvailable: // "Foo(const Foo&) = delete;"
result->setDeleted(true);
@@ -399,13 +385,13 @@ FunctionModelItem BuilderPrivate::createMemberFunction(const CXCursor &cursor,
m_currentFunctionType == CodeModel::Signal || m_currentFunctionType == CodeModel::Slot
? m_currentFunctionType // by annotation
: functionTypeFromCursor(cursor);
- isTemplateCode |= m_currentClass->name().endsWith(QLatin1Char('>'));
+ isTemplateCode |= m_currentClass->name().endsWith(u'>');
auto result = createFunction(cursor, functionType, isTemplateCode);
result->setAccessPolicy(accessPolicy(clang_getCXXAccessSpecifier(cursor)));
result->setConstant(clang_CXXMethod_isConst(cursor) != 0);
- result->setStatic(clang_CXXMethod_isStatic(cursor) != 0);
- result->setVirtual(clang_CXXMethod_isVirtual(cursor) != 0);
- result->setAbstract(clang_CXXMethod_isPureVirtual(cursor) != 0);
+ result->setAttribute(FunctionAttribute::Static, clang_CXXMethod_isStatic(cursor) != 0);
+ result->setAttribute(FunctionAttribute::Virtual, clang_CXXMethod_isVirtual(cursor) != 0);
+ result->setAttribute(FunctionAttribute::Abstract, clang_CXXMethod_isPureVirtual(cursor) != 0);
return result;
}
@@ -421,13 +407,14 @@ void BuilderPrivate::qualifyConstructor(const CXCursor &cursor)
&& m_currentFunction->arguments().size() == 1
&& clang_CXXConstructor_isCopyConstructor(cursor) == 0
&& clang_CXXConstructor_isMoveConstructor(cursor) == 0) {
- m_currentFunction->setExplicit(clang_CXXConstructor_isConvertingConstructor(cursor) == 0);
+ m_currentFunction->setAttribute(FunctionAttribute::Explicit,
+ clang_CXXConstructor_isConvertingConstructor(cursor) == 0);
}
}
TemplateParameterModelItem BuilderPrivate::createTemplateParameter(const CXCursor &cursor) const
{
- return TemplateParameterModelItem(new _TemplateParameterModelItem(m_model, getCursorSpelling(cursor)));
+ return std::make_shared<_TemplateParameterModelItem>(m_model, getCursorSpelling(cursor));
}
TemplateParameterModelItem BuilderPrivate::createNonTypeTemplateParameter(const CXCursor &cursor) const
@@ -440,11 +427,12 @@ TemplateParameterModelItem BuilderPrivate::createNonTypeTemplateParameter(const
// CXCursor_VarDecl, CXCursor_FieldDecl cursors
void BuilderPrivate::addField(const CXCursor &cursor)
{
- VariableModelItem field(new _VariableModelItem(m_model, getCursorSpelling(cursor)));
+ auto field = std::make_shared<_VariableModelItem>(m_model, getCursorSpelling(cursor));
field->setAccessPolicy(accessPolicy(clang_getCXXAccessSpecifier(cursor)));
field->setScope(m_scope);
field->setType(createTypeInfo(cursor));
field->setMutable(clang_CXXField_isMutable(cursor) != 0);
+ setFileName(cursor, field.get());
m_currentField = field;
m_scopeStack.back()->addVariable(field);
}
@@ -453,14 +441,14 @@ void BuilderPrivate::addField(const CXCursor &cursor)
static QStringList qualifiedName(const QString &t)
{
QStringList result;
- int end = t.indexOf(QLatin1Char('<'));
+ int end = t.indexOf(u'<');
if (end == -1)
- end = t.indexOf(QLatin1Char('('));
+ end = t.indexOf(u'(');
if (end == -1)
end = t.size();
int lastPos = 0;
while (true) {
- const int nextPos = t.indexOf(colonColon(), lastPos);
+ const int nextPos = t.indexOf(u"::"_s, lastPos);
if (nextPos < 0 || nextPos >= end)
break;
result.append(t.mid(lastPos, nextPos - lastPos));
@@ -524,7 +512,7 @@ void BuilderPrivate::addTemplateInstantiations(const CXType &type,
&& !t->instantiations().isEmpty();
if (!parsed)
t->setInstantiations({});
- const QPair<int, int> pos = parsed
+ const auto pos = parsed
? parseTemplateArgumentList(*typeName, dummyTemplateArgumentHandler)
: t->parseTemplateArgumentList(*typeName);
if (pos.first != -1 && pos.second != -1 && pos.second > pos.first)
@@ -578,7 +566,7 @@ TypeInfo BuilderPrivate::createTypeInfoUncached(const CXType &type,
typeInfo.setConstant(clang_isConstQualifiedType(nestedType) != 0);
typeInfo.setVolatile(clang_isVolatileQualifiedType(nestedType) != 0);
- QString typeName = getTypeName(nestedType);
+ QString typeName = getResolvedTypeName(nestedType);
while (TypeInfo::stripLeadingConst(&typeName)
|| TypeInfo::stripLeadingVolatile(&typeName)) {
}
@@ -588,21 +576,21 @@ TypeInfo BuilderPrivate::createTypeInfoUncached(const CXType &type,
// the typedef source is named "type-parameter-0-0". Convert it back to the
// template parameter name. The CXTypes are the same for all templates and
// must not be cached.
- if (!m_currentClass.isNull() && typeName.startsWith(QLatin1String("type-parameter-0-"))) {
+ if (m_currentClass && typeName.startsWith(u"type-parameter-0-")) {
if (cacheable != nullptr)
*cacheable = false;
bool ok;
const int n = QStringView{typeName}.mid(17).toInt(&ok);
if (ok) {
auto currentTemplate = currentTemplateClass();
- if (!currentTemplate.isNull() && n < currentTemplate->templateParameters().size())
+ if (currentTemplate && n < currentTemplate->templateParameters().size())
typeName = currentTemplate->templateParameters().at(n)->name();
}
}
// Obtain template instantiations if the name has '<' (thus excluding
// typedefs like "std::string".
- if (typeName.contains(QLatin1Char('<')))
+ if (typeName.contains(u'<'))
addTemplateInstantiations(nestedType, &typeName, &typeInfo);
typeInfo.setQualifiedName(qualifiedName(typeName));
@@ -626,19 +614,18 @@ TypeInfo BuilderPrivate::createTypeInfo(const CXType &type) const
void BuilderPrivate::addTypeDef(const CXCursor &cursor, const CXType &cxType)
{
const QString target = getCursorSpelling(cursor);
- TypeDefModelItem item(new _TypeDefModelItem(m_model, target));
- setFileName(cursor, item.data());
+ auto item = std::make_shared<_TypeDefModelItem>(m_model, target);
+ setFileName(cursor, item.get());
item->setType(createTypeInfo(cxType));
item->setScope(m_scope);
m_scopeStack.back()->addTypeDef(item);
- m_cursorTypedefHash.insert(cursor, item);
}
ClassModelItem BuilderPrivate::currentTemplateClass() const
{
- for (int i = m_scopeStack.size() - 1; i >= 0; --i) {
- auto klass = qSharedPointerDynamicCast<_ClassModelItem>(m_scopeStack.at(i));
- if (!klass.isNull() && klass->isTemplate())
+ for (auto i = m_scopeStack.size() - 1; i >= 0; --i) {
+ auto klass = std::dynamic_pointer_cast<_ClassModelItem>(m_scopeStack.at(i));
+ if (klass && klass->isTemplate())
return klass;
}
return {};
@@ -648,7 +635,7 @@ void BuilderPrivate::startTemplateTypeAlias(const CXCursor &cursor)
{
const QString target = getCursorSpelling(cursor);
m_currentTemplateTypeAlias.reset(new _TemplateTypeAliasModelItem(m_model, target));
- setFileName(cursor, m_currentTemplateTypeAlias.data());
+ setFileName(cursor, m_currentTemplateTypeAlias.get());
m_currentTemplateTypeAlias->setScope(m_scope);
}
@@ -673,11 +660,17 @@ QString BuilderPrivate::cursorValueExpression(BaseVisitor *bv, const CXCursor &c
if (equalSign == std::string::npos)
return QString();
++equalSign;
- return QString::fromLocal8Bit(snippet.data() + equalSign,
- qsizetype(snippet.size() - equalSign)).trimmed();
+ QString result = QString::fromLocal8Bit(snippet.data() + equalSign,
+ qsizetype(snippet.size() - equalSign));
+ // Fix a default expression as read from code. Simplify white space
+ result.remove(u'\r');
+ return result.contains(u'"') ? result.trimmed() : result.simplified();
}
// Resolve a type (loop over aliases/typedefs), for example for base classes
+// Note: TypeAliasTemplateDecl ("using QVector<T>=QList<T>") is automatically
+// resolved by clang_getTypeDeclaration(), but it stops at
+// TypeAliasDecl / TypedefDecl.
struct TypeDeclaration
{
@@ -685,47 +678,41 @@ struct TypeDeclaration
CXCursor declaration;
};
-static TypeDeclaration resolveType(CXType type)
+static inline bool isTypeAliasDecl(const CXCursor &cursor)
+{
+ const auto kind = clang_getCursorKind(cursor);
+ return kind == CXCursor_TypeAliasDecl || kind == CXCursor_TypedefDecl;
+}
+
+static TypeDeclaration resolveBaseClassType(CXType type)
{
CXCursor decl = clang_getTypeDeclaration(type);
- if (type.kind != CXType_Unexposed) {
- while (true) {
- auto kind = clang_getCursorKind(decl);
- if (kind != CXCursor_TypeAliasDecl && kind != CXCursor_TypedefDecl)
- break;
- type = clang_getTypedefDeclUnderlyingType(decl);
- decl = clang_getTypeDeclaration(type);
- }
+ auto resolvedType = clang_getCursorType(decl);
+ if (resolvedType.kind != CXType_Invalid && resolvedType.kind != type.kind)
+ type = resolvedType;
+ while (isTypeAliasDecl(decl)) {
+ type = clang_getTypedefDeclUnderlyingType(decl);
+ decl = clang_getTypeDeclaration(type);
}
return {type, decl};
}
// Note: Return the baseclass for cursors like CXCursor_CXXBaseSpecifier,
// where the cursor spelling has "struct baseClass".
-QString BuilderPrivate::getBaseClassName(CXType type) const
+std::pair<QString, ClassModelItem> BuilderPrivate::getBaseClass(CXType type) const
{
- const auto decl = resolveType(type);
+ const auto decl = resolveBaseClassType(type);
// Note: spelling has "struct baseClass", use type
- QString baseClassName;
- if (decl.type.kind == CXType_Unexposed) {
- // The type is unexposed when the base class is a template type alias:
- // "class QItemSelection : public QList<X>" where QList is aliased to QVector.
- // Try to resolve via code model.
- TypeInfo info = createTypeInfo(decl.type);
- auto parentScope = m_scopeStack.at(m_scopeStack.size() - 2); // Current is class.
- auto resolved = TypeInfo::resolveType(info, parentScope);
- if (resolved != info)
- baseClassName = resolved.toString();
- }
- if (baseClassName.isEmpty())
- baseClassName = getTypeName(decl.type);
+ QString baseClassName = getTypeName(decl.type);
+ if (baseClassName.startsWith(u"std::")) // Simplify "std::" types
+ baseClassName = createTypeInfo(decl.type).toString();
auto it = m_cursorClassHash.constFind(decl.declaration);
// Not found: Set unqualified name. This happens in cases like
// "class X : public std::list<...>", "template<class T> class Foo : public T"
// and standard types like true_type, false_type.
if (it == m_cursorClassHash.constEnd())
- return baseClassName;
+ return {baseClassName, {}};
// Completely qualify the class name by looking it up and taking its scope
// plus the actual baseClass stripped off any scopes. Consider:
@@ -739,13 +726,13 @@ QString BuilderPrivate::getBaseClassName(CXType type) const
// "std::vector<T>").
const QStringList &baseScope = it.value()->scope();
if (!baseScope.isEmpty()) {
- const int lastSep = baseClassName.lastIndexOf(colonColon());
+ const int lastSep = baseClassName.lastIndexOf(u"::"_s);
if (lastSep >= 0)
- baseClassName.remove(0, lastSep + colonColon().size());
- baseClassName.prepend(colonColon());
- baseClassName.prepend(baseScope.join(colonColon()));
+ baseClassName.remove(0, lastSep + u"::"_s.size());
+ baseClassName.prepend(u"::"_s);
+ baseClassName.prepend(baseScope.join(u"::"_s));
}
- return baseClassName;
+ return {baseClassName, it.value()};
}
// Add a base class to the current class from CXCursor_CXXBaseSpecifier
@@ -753,39 +740,8 @@ void BuilderPrivate::addBaseClass(const CXCursor &cursor)
{
Q_ASSERT(clang_getCursorKind(cursor) == CXCursor_CXXBaseSpecifier);
const auto access = accessPolicy(clang_getCXXAccessSpecifier(cursor));
- QString baseClassName = getBaseClassName(clang_getCursorType(cursor));
- m_currentClass->addBaseClass(baseClassName, access);
-}
-
-static inline CXCursor definitionFromTypeRef(const CXCursor &typeRefCursor)
-{
- Q_ASSERT(typeRefCursor.kind == CXCursor_TypeRef);
- return clang_getTypeDeclaration(clang_getCursorType(typeRefCursor));
-}
-
-// Qualify function arguments or fields that are typedef'ed from another scope:
-// enum ConversionFlag {};
-// typedef QFlags<ConversionFlag> ConversionFlags;
-// class QTextCodec {
-// enum ConversionFlag {};
-// typedef QFlags<ConversionFlag> ConversionFlags;
-// struct ConverterState {
-// explicit ConverterState(ConversionFlags);
-// ^^ qualify to QTextCodec::ConversionFlags
-// ConversionFlags m_flags;
-// ^^ ditto
-
-template <class Item> // ArgumentModelItem, VariableModelItem
-void BuilderPrivate::qualifyTypeDef(const CXCursor &typeRefCursor, const QSharedPointer<Item> &item) const
-{
- TypeInfo type = item->type();
- if (type.qualifiedName().size() == 1) { // item's type is unqualified.
- const auto it = m_cursorTypedefHash.constFind(definitionFromTypeRef(typeRefCursor));
- if (it != m_cursorTypedefHash.constEnd() && !it.value()->scope().isEmpty()) {
- type.setQualifiedName(it.value()->scope() + type.qualifiedName());
- item->setType(type);
- }
- }
+ const auto baseClass = getBaseClass(clang_getCursorType(cursor));
+ m_currentClass->addBaseClass({baseClass.first, baseClass.second, access});
}
void BuilderPrivate::setFileName(const CXCursor &cursor, _CodeModelItem *item)
@@ -809,103 +765,115 @@ Builder::~Builder()
delete d;
}
-static const char *cBaseName(const char *fileName)
+static QString baseName(QString path)
{
- const char *lastSlash = std::strrchr(fileName, '/');
+ qsizetype lastSlash = path.lastIndexOf(u'/');
#ifdef Q_OS_WIN
- if (lastSlash == nullptr)
- lastSlash = std::strrchr(fileName, '\\');
+ if (lastSlash < 0)
+ lastSlash = path.lastIndexOf(u'\\');
#endif
- return lastSlash != nullptr ? (lastSlash + 1) : fileName;
+ if (lastSlash > 0)
+ path.remove(0, lastSlash + 1);
+ return path;
}
-static inline bool cCompareFileName(const char *f1, const char *f2)
+const char * BuilderPrivate::specialSystemHeaderReason(BuilderPrivate::SpecialSystemHeader sh)
{
-#ifdef Q_OS_WIN
- return _stricmp(f1, f2) == 0;
-#else
- return std::strcmp(f1, f2) == 0;
-#endif
+ static const QHash<SpecialSystemHeader, const char *> mapping {
+ {SpecialSystemHeader::OpenGL, "OpenGL"},
+ {SpecialSystemHeader::Types, "types"},
+ {SpecialSystemHeader::WhiteListed, "white listed"},
+ {SpecialSystemHeader::WhiteListedPath, "white listed path"}
+ };
+ return mapping.value(sh, "");
}
-#ifdef Q_OS_UNIX
-template<size_t N>
-static bool cStringStartsWith(const char *str, const char (&prefix)[N])
+bool BuilderPrivate::visitHeader(const QString &fileName) const
{
- return std::strncmp(prefix, str, N - 1) == 0;
-}
-#endif
-
-static bool cStringStartsWith(const char *str, const QByteArray &prefix)
-{
- return std::strncmp(prefix.constData(), str, int(prefix.size())) == 0;
+ auto it = m_systemHeaders.find(fileName);
+ if (it == m_systemHeaders.end()) {
+ it = m_systemHeaders.insert(fileName, specialSystemHeader(fileName));
+ if (ReportHandler::isDebug(ReportHandler::MediumDebug)) {
+ const QString &name = QDir::toNativeSeparators(fileName);
+ if (it.value() == SpecialSystemHeader::None) {
+ qCInfo(lcShiboken, "Skipping system header %s", qPrintable(name));
+ } else {
+ qCInfo(lcShiboken, "Parsing system header %s (%s)",
+ qPrintable(name), specialSystemHeaderReason(it.value()));
+ }
+ }
+ }
+ return it.value() != SpecialSystemHeader::None;
}
-bool BuilderPrivate::visitHeader(const char *cFileName) const
+BuilderPrivate::SpecialSystemHeader
+ BuilderPrivate::specialSystemHeader(const QString &fileName) const
{
// Resolve OpenGL typedefs although the header is considered a system header.
- const char *baseName = cBaseName(cFileName);
- if (cCompareFileName(baseName, "gl.h"))
- return true;
-#if defined(Q_OS_LINUX) || defined(Q_OS_MACOS)
- if (cStringStartsWith(cFileName, "/usr/include/stdint.h"))
- return true;
-#endif
-#ifdef Q_OS_LINUX
- if (cStringStartsWith(cFileName, "/usr/include/stdlib.h")
- || cStringStartsWith(cFileName, "/usr/include/sys/types.h")) {
- return true;
- }
-#endif // Q_OS_LINUX
-#ifdef Q_OS_MACOS
- // Parse the following system headers to get the correct typdefs for types like
- // int32_t, which are used in the macOS implementation of OpenGL framework.
- if (cCompareFileName(baseName, "gltypes.h")
- || cStringStartsWith(cFileName, "/usr/include/_types")
- || cStringStartsWith(cFileName, "/usr/include/_types")
- || cStringStartsWith(cFileName, "/usr/include/sys/_types")) {
- return true;
+ const QString baseName = clang::baseName(fileName);
+ if (baseName == u"gl.h"
+ || baseName == u"gl2.h"
+ || baseName == u"gl3.h"
+ || baseName == u"gl31.h"
+ || baseName == u"gl32.h"
+ || baseName == u"stdint.h" // Windows: int32_t, uint32_t
+ || baseName == u"stddef.h") { // size_t`
+ return SpecialSystemHeader::OpenGL;
}
-#endif // Q_OS_MACOS
- if (baseName) {
- for (const auto &systemInclude : m_systemIncludes) {
- if (systemInclude == baseName)
- return true;
+
+ switch (clang::platform()) {
+ case Platform::Unix:
+ if (fileName == u"/usr/include/stdlib.h"
+ || baseName == u"types.h"
+ || baseName == u"stdint-intn.h" // int32_t
+ || baseName == u"stdint-uintn.h") { // uint32_t
+ return SpecialSystemHeader::Types;
+ }
+ break;
+ case Platform::macOS:
+ // Parse the following system headers to get the correct typdefs for types like
+ // int32_t, which are used in the macOS implementation of OpenGL framework.
+ // They are installed under /Applications/Xcode.app/Contents/Developer/Platforms...
+ if (baseName == u"gltypes.h"
+ || fileName.contains(u"/usr/include/_types")
+ || fileName.contains(u"/usr/include/sys/_types")) {
+ return SpecialSystemHeader::Types;
}
+ break;
+ default:
+ break;
}
- for (const auto &systemIncludePath : m_systemIncludePaths) {
- if (cStringStartsWith(cFileName, systemIncludePath))
- return true;
+
+ // When building against system Qt (as it happens with yocto / Boot2Qt), the Qt headers are
+ // considered system headers by clang_Location_isInSystemHeader, and shiboken will not
+ // process them. We need to explicitly process them by checking against the list of
+ // include paths that were passed to shiboken's --force-process-system-include-paths option
+ // or specified via the <system-include> xml tag.
+ if (m_forceProcessSystemIncludes.contains(baseName))
+ return SpecialSystemHeader::WhiteListed;
+
+ if (std::any_of(m_forceProcessSystemIncludePaths.cbegin(),
+ m_forceProcessSystemIncludePaths.cend(),
+ [fileName](const QString &p) { return fileName.startsWith(p); })) {
+ return SpecialSystemHeader::WhiteListedPath;
}
- return false;
+
+ return SpecialSystemHeader::None;
}
-bool Builder::visitLocation(const CXSourceLocation &location) const
+bool Builder::visitLocation(const QString &fileName, LocationType locationType) const
{
- if (clang_Location_isInSystemHeader(location) == 0)
- return true;
- CXFile file; // void *
- unsigned line;
- unsigned column;
- unsigned offset;
- clang_getExpansionLocation(location, &file, &line, &column, &offset);
- const CXString cxFileName = clang_getFileName(file);
- // Has been observed to be 0 for invalid locations
- bool result = false;
- if (const char *cFileName = clang_getCString(cxFileName)) {
- result = d->visitHeader(cFileName);
- clang_disposeString(cxFileName);
- }
- return result;
+ return locationType != LocationType::System || d->visitHeader(fileName);
}
-void Builder::setSystemIncludes(const QByteArrayList &systemIncludes)
+void Builder::setForceProcessSystemIncludes(const QStringList &systemIncludes)
{
for (const auto &i : systemIncludes) {
- if (i.endsWith('/'))
- d->m_systemIncludePaths.append(i);
+ QFileInfo fi(i);
+ if (fi.exists() && fi.isDir())
+ d->m_forceProcessSystemIncludePaths.append(i);
else
- d->m_systemIncludes.append(i);
+ d->m_forceProcessSystemIncludes.append(i);
}
}
@@ -914,14 +882,14 @@ FileModelItem Builder::dom() const
Q_ASSERT(!d->m_scopeStack.isEmpty());
auto rootScope = d->m_scopeStack.constFirst();
rootScope->purgeClassDeclarations();
- return qSharedPointerDynamicCast<_FileModelItem>(rootScope);
+ return std::dynamic_pointer_cast<_FileModelItem>(rootScope);
}
static QString msgOutOfOrder(const CXCursor &cursor, const char *expectedScope)
{
- return getCursorKindName(cursor.kind) + QLatin1Char(' ')
- + getCursorSpelling(cursor) + QLatin1String(" encountered outside ")
- + QLatin1String(expectedScope) + QLatin1Char('.');
+ return getCursorKindName(cursor.kind) + u' '
+ + getCursorSpelling(cursor) + u" encountered outside "_s
+ + QLatin1StringView(expectedScope) + u'.';
}
static CodeModel::ClassType codeModelClassTypeFromCursor(CXCursorKind kind)
@@ -948,12 +916,16 @@ static NamespaceType namespaceType(const CXCursor &cursor)
static QString enumType(const CXCursor &cursor)
{
QString name = getCursorSpelling(cursor); // "enum Foo { v1, v2 };"
+ if (name.contains(u"unnamed enum")) // Clang 16.0
+ return {};
if (name.isEmpty()) {
// PYSIDE-1228: For "typedef enum { v1, v2 } Foo;", type will return
// "Foo" as expected. Care must be taken to exclude real anonymous enums.
name = getTypeName(clang_getCursorType(cursor));
- if (name.contains(QLatin1String("(anonymous")))
+ if (name.contains(u"(unnamed") // Clang 12.0.1
+ || name.contains(u"(anonymous")) { // earlier
name.clear();
+ }
}
return name;
}
@@ -966,16 +938,16 @@ BaseVisitor::StartTokenResult Builder::startToken(const CXCursor &cursor)
break;
case CXCursor_AnnotateAttr: {
const QString annotation = getCursorSpelling(cursor);
- if (annotation == QLatin1String("qt_slot"))
+ if (annotation == u"qt_slot")
d->m_currentFunctionType = CodeModel::Slot;
- else if (annotation == QLatin1String("qt_signal"))
+ else if (annotation == u"qt_signal")
d->m_currentFunctionType = CodeModel::Signal;
else
d->m_currentFunctionType = CodeModel::Normal;
}
break;
case CXCursor_CXXBaseSpecifier:
- if (d->m_currentClass.isNull()) {
+ if (!d->m_currentClass) {
const Diagnostic d(msgOutOfOrder(cursor, "class"), cursor, CXDiagnostic_Error);
qWarning() << d;
appendDiagnostic(d);
@@ -997,15 +969,15 @@ BaseVisitor::StartTokenResult Builder::startToken(const CXCursor &cursor)
|| !d->addClass(cursor, CodeModel::Class)) {
return Skip;
}
- d->m_currentClass->setName(d->m_currentClass->name() + templateBrackets());
- d->m_scope.back() += templateBrackets();
+ d->m_currentClass->setName(d->m_currentClass->name() + "<>"_L1);
+ d->m_scope.back() += "<>"_L1;
break;
case CXCursor_EnumDecl: {
QString name = enumType(cursor);
EnumKind kind = CEnum;
if (name.isEmpty()) {
kind = AnonymousEnum;
- name = QStringLiteral("enum_") + QString::number(++d->m_anonymousEnumCount);
+ name = "enum_"_L1 + QString::number(++d->m_anonymousEnumCount);
#if !CLANG_NO_ENUMDECL_ISSCOPED
} else if (clang_EnumDecl_isScoped(cursor) != 0) {
#else
@@ -1014,17 +986,21 @@ BaseVisitor::StartTokenResult Builder::startToken(const CXCursor &cursor)
kind = EnumClass;
}
d->m_currentEnum.reset(new _EnumModelItem(d->m_model, name));
- d->setFileName(cursor, d->m_currentEnum.data());
+ d->setFileName(cursor, d->m_currentEnum.get());
d->m_currentEnum->setScope(d->m_scope);
d->m_currentEnum->setEnumKind(kind);
- d->m_currentEnum->setSigned(isSigned(clang_getEnumDeclIntegerType(cursor).kind));
- if (!qSharedPointerDynamicCast<_ClassModelItem>(d->m_scopeStack.back()).isNull())
+ if (clang_getCursorAvailability(cursor) == CXAvailability_Deprecated)
+ d->m_currentEnum->setDeprecated(true);
+ const auto enumType = fullyResolveType(clang_getEnumDeclIntegerType(cursor));
+ d->m_currentEnum->setSigned(isSigned(enumType.kind));
+ d->m_currentEnum->setUnderlyingType(getTypeName(enumType));
+ if (std::dynamic_pointer_cast<_ClassModelItem>(d->m_scopeStack.back()))
d->m_currentEnum->setAccessPolicy(accessPolicy(clang_getCXXAccessSpecifier(cursor)));
}
break;
case CXCursor_EnumConstantDecl: {
const QString name = getCursorSpelling(cursor);
- if (d->m_currentEnum.isNull()) {
+ if (!d->m_currentEnum) {
const Diagnostic d(msgOutOfOrder(cursor, "enum"), cursor, CXDiagnostic_Error);
qWarning() << d;
appendDiagnostic(d);
@@ -1035,9 +1011,11 @@ BaseVisitor::StartTokenResult Builder::startToken(const CXCursor &cursor)
enumValue.setValue(clang_getEnumConstantDeclValue(cursor));
else
enumValue.setUnsignedValue(clang_getEnumConstantDeclUnsignedValue(cursor));
- EnumeratorModelItem enumConstant(new _EnumeratorModelItem(d->m_model, name));
+ auto enumConstant = std::make_shared<_EnumeratorModelItem>(d->m_model, name);
enumConstant->setStringValue(d->cursorValueExpression(this, cursor));
enumConstant->setValue(enumValue);
+ if (clang_getCursorAvailability(cursor) == CXAvailability_Deprecated)
+ enumConstant->setDeprecated(true);
d->m_currentEnum->addEnumerator(enumConstant);
}
break;
@@ -1081,6 +1059,7 @@ BaseVisitor::StartTokenResult Builder::startToken(const CXCursor &cursor)
}
}
d->m_currentFunction = d->createFunction(cursor, CodeModel::Normal, true);
+ d->setFileName(cursor, d->m_currentFunction.get());
d->m_scopeStack.back()->addFunction(d->m_currentFunction);
break;
case CXCursor_FunctionDecl:
@@ -1088,13 +1067,14 @@ BaseVisitor::StartTokenResult Builder::startToken(const CXCursor &cursor)
// operators). Note: CXTranslationUnit_SkipFunctionBodies must be off for
// clang_isCursorDefinition() to work here.
if (!d->m_withinFriendDecl || clang_isCursorDefinition(cursor) != 0) {
- int scope = d->m_scopeStack.size() - 1; // enclosing class
+ auto scope = d->m_scopeStack.size() - 1; // enclosing class
if (d->m_withinFriendDecl) {
// Friend declaration: go back to namespace or file scope.
for (--scope; d->m_scopeStack.at(scope)->kind() == _CodeModelItem::Kind_Class; --scope) {
}
}
d->m_currentFunction = d->createFunction(cursor, CodeModel::Normal, false);
+ d->m_currentFunction->setHiddenFriend(d->m_withinFriendDecl);
d->m_scopeStack.at(scope)->addFunction(d->m_currentFunction);
}
break;
@@ -1103,10 +1083,10 @@ BaseVisitor::StartTokenResult Builder::startToken(const CXCursor &cursor)
if (type == NamespaceType::Anonymous)
return Skip;
const QString name = getCursorSpelling(cursor);
- const NamespaceModelItem parentNamespaceItem = qSharedPointerDynamicCast<_NamespaceModelItem>(d->m_scopeStack.back());
- if (parentNamespaceItem.isNull()) {
+ const auto parentNamespaceItem = std::dynamic_pointer_cast<_NamespaceModelItem>(d->m_scopeStack.back());
+ if (!parentNamespaceItem) {
const QString message = msgOutOfOrder(cursor, "namespace")
- + QLatin1String(" (current scope: ") + d->m_scopeStack.back()->name() + QLatin1Char(')');
+ + u" (current scope: "_s + d->m_scopeStack.back()->name() + u')';
const Diagnostic d(message, cursor, CXDiagnostic_Error);
qWarning() << d;
appendDiagnostic(d);
@@ -1116,7 +1096,7 @@ BaseVisitor::StartTokenResult Builder::startToken(const CXCursor &cursor)
// in subsequent modules.
NamespaceModelItem namespaceItem = parentNamespaceItem->findNamespace(name);
namespaceItem.reset(new _NamespaceModelItem(d->m_model, name));
- d->setFileName(cursor, namespaceItem.data());
+ d->setFileName(cursor, namespaceItem.get());
namespaceItem->setScope(d->m_scope);
namespaceItem->setType(type);
parentNamespaceItem->addNamespace(namespaceItem);
@@ -1126,10 +1106,12 @@ BaseVisitor::StartTokenResult Builder::startToken(const CXCursor &cursor)
case CXCursor_ParmDecl:
// Skip in case of nested CXCursor_ParmDecls in case one parameter is a function pointer
// and function pointer typedefs.
- if (d->m_currentArgument.isNull() && !d->m_currentFunction.isNull()) {
+ if (!d->m_currentArgument && d->m_currentFunction) {
const QString name = getCursorSpelling(cursor);
d->m_currentArgument.reset(new _ArgumentModelItem(d->m_model, name));
- d->m_currentArgument->setType(d->createTypeInfo(cursor));
+ const auto type = clang_getCursorType(cursor);
+ d->m_currentArgument->setScopeResolution(hasScopeResolution(type));
+ d->m_currentArgument->setType(d->createTypeInfo(type));
d->m_currentFunction->addArgument(d->m_currentArgument);
QString defaultValueExpression = d->cursorValueExpression(this, cursor);
if (!defaultValueExpression.isEmpty()) {
@@ -1145,16 +1127,16 @@ BaseVisitor::StartTokenResult Builder::startToken(const CXCursor &cursor)
const TemplateParameterModelItem tItem = cursor.kind == CXCursor_TemplateTemplateParameter
? d->createTemplateParameter(cursor) : d->createNonTypeTemplateParameter(cursor);
// Apply to function/member template?
- if (!d->m_currentFunction.isNull()) {
+ if (d->m_currentFunction) {
d->m_currentFunction->setTemplateParameters(d->m_currentFunction->templateParameters() << tItem);
- } else if (!d->m_currentTemplateTypeAlias.isNull()) {
+ } else if (d->m_currentTemplateTypeAlias) {
d->m_currentTemplateTypeAlias->addTemplateParameter(tItem);
- } else if (!d->m_currentClass.isNull()) { // Apply to class
+ } else if (d->m_currentClass) { // Apply to class
const QString &tplParmName = tItem->name();
if (Q_UNLIKELY(!insertTemplateParameterIntoClassName(tplParmName, d->m_currentClass)
|| !insertTemplateParameterIntoClassName(tplParmName, &d->m_scope.back()))) {
- const QString message = QStringLiteral("Error inserting template parameter \"") + tplParmName
- + QStringLiteral("\" into ") + d->m_currentClass->name();
+ const QString message = "Error inserting template parameter \""_L1 + tplParmName
+ + "\" into "_L1 + d->m_currentClass->name();
const Diagnostic d(message, cursor, CXDiagnostic_Error);
qWarning() << d;
appendDiagnostic(d);
@@ -1168,7 +1150,7 @@ BaseVisitor::StartTokenResult Builder::startToken(const CXCursor &cursor)
d->startTemplateTypeAlias(cursor);
break;
case CXCursor_TypeAliasDecl: // May contain nested CXCursor_TemplateTypeParameter
- if (d->m_currentTemplateTypeAlias.isNull()) {
+ if (!d->m_currentTemplateTypeAlias) {
const CXType type = clang_getCanonicalType(clang_getCursorType(cursor));
if (type.kind > CXType_Unexposed)
d->addTypeDef(cursor, type);
@@ -1196,31 +1178,23 @@ BaseVisitor::StartTokenResult Builder::startToken(const CXCursor &cursor)
d->m_usingTypeRef = getCursorSpelling(cursor);
break;
case CXCursor_TypeRef:
- if (!d->m_currentFunction.isNull()) {
- if (d->m_currentArgument.isNull())
- d->qualifyTypeDef(cursor, d->m_currentFunction); // return type
- else
- d->qualifyTypeDef(cursor, d->m_currentArgument);
- } else if (!d->m_currentField.isNull()) {
- d->qualifyTypeDef(cursor, d->m_currentField);
- } else if (d->m_withinUsingDeclaration && d->m_usingTypeRef.isEmpty()) {
- d->m_usingTypeRef = d->getBaseClassName(clang_getCursorType(cursor));
- }
+ if (d->m_withinUsingDeclaration && d->m_usingTypeRef.isEmpty())
+ d->m_usingTypeRef = d->getBaseClass(clang_getCursorType(cursor)).first;
break;
case CXCursor_CXXFinalAttr:
- if (!d->m_currentFunction.isNull())
- d->m_currentFunction->setFinal(true);
- else if (!d->m_currentClass.isNull())
+ if (d->m_currentFunction)
+ d->m_currentFunction->setAttribute(FunctionAttribute::Final);
+ else if (d->m_currentClass)
d->m_currentClass->setFinal(true);
break;
case CXCursor_CXXOverrideAttr:
- if (!d->m_currentFunction.isNull())
- d->m_currentFunction->setOverride(true);
+ if (d->m_currentFunction)
+ d->m_currentFunction->setAttribute(FunctionAttribute::Override);
break;
case CXCursor_StaticAssert:
// Check for Q_PROPERTY() (see PySide6/global.h.in for an explanation
// how it is defined, and qdoc).
- if (clang_isDeclaration(cursor.kind) && !d->m_currentClass.isNull()) {
+ if (clang_isDeclaration(cursor.kind) && d->m_currentClass) {
auto snippet = getCodeSnippet(cursor);
const auto length = snippet.size();
if (length > 12 && *snippet.rbegin() == ')'
@@ -1232,7 +1206,7 @@ BaseVisitor::StartTokenResult Builder::startToken(const CXCursor &cursor)
break;
// UsingDeclaration: consists of a TypeRef (base) and OverloadedDeclRef (member name)
case CXCursor_UsingDeclaration:
- if (!d->m_currentClass.isNull())
+ if (d->m_currentClass)
d->m_withinUsingDeclaration = true;
break;
case CXCursor_OverloadedDeclRef:
@@ -1260,53 +1234,51 @@ bool Builder::endToken(const CXCursor &cursor)
case CXCursor_ClassTemplatePartialSpecialization:
d->popScope();
// Continue in outer class after leaving inner class?
- if (ClassModelItem lastClass = qSharedPointerDynamicCast<_ClassModelItem>(d->m_scopeStack.back()))
+ if (auto lastClass = std::dynamic_pointer_cast<_ClassModelItem>(d->m_scopeStack.back()))
d->m_currentClass = lastClass;
else
- d->m_currentClass.clear();
+ d->m_currentClass.reset();
d->m_currentFunctionType = CodeModel::Normal;
break;
case CXCursor_EnumDecl:
- // Add enum only if values were encountered, otherwise assume it
- // is a forward declaration of an enum class.
- if (!d->m_currentEnum.isNull() && d->m_currentEnum->hasValues())
+ if (d->m_currentEnum)
d->m_scopeStack.back()->addEnum(d->m_currentEnum);
- d->m_currentEnum.clear();
+ d->m_currentEnum.reset();
break;
case CXCursor_FriendDecl:
d->m_withinFriendDecl = false;
break;
case CXCursor_VarDecl:
case CXCursor_FieldDecl:
- d->m_currentField.clear();
+ d->m_currentField.reset();
break;
case CXCursor_Constructor:
d->qualifyConstructor(cursor);
- if (!d->m_currentFunction.isNull()) {
+ if (d->m_currentFunction) {
d->m_currentFunction->_determineType();
- d->m_currentFunction.clear();
+ d->m_currentFunction.reset();
}
break;
case CXCursor_Destructor:
case CXCursor_CXXMethod:
case CXCursor_FunctionDecl:
case CXCursor_FunctionTemplate:
- if (!d->m_currentFunction.isNull()) {
+ if (d->m_currentFunction) {
d->m_currentFunction->_determineType();
- d->m_currentFunction.clear();
+ d->m_currentFunction.reset();
}
break;
case CXCursor_ConversionFunction:
- if (!d->m_currentFunction.isNull()) {
+ if (d->m_currentFunction) {
d->m_currentFunction->setFunctionType(CodeModel::ConversionOperator);
- d->m_currentFunction.clear();
+ d->m_currentFunction.reset();
}
break;
case CXCursor_Namespace:
d->popScope();
break;
case CXCursor_ParmDecl:
- d->m_currentArgument.clear();
+ d->m_currentArgument.reset();
break;
case CXCursor_TypeAliasTemplateDecl:
d->m_currentTemplateTypeAlias.reset();
diff --git a/sources/shiboken6/ApiExtractor/clangparser/clangbuilder.h b/sources/shiboken6/ApiExtractor/clangparser/clangbuilder.h
index dc37dff0f..b2ec6d304 100644
--- a/sources/shiboken6/ApiExtractor/clangparser/clangbuilder.h
+++ b/sources/shiboken6/ApiExtractor/clangparser/clangbuilder.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef CLANGBUILDER_H
#define CLANGBUILDER_H
@@ -39,14 +14,14 @@ class BuilderPrivate;
class Builder : public BaseVisitor {
public:
- Q_DISABLE_COPY(Builder)
+ Q_DISABLE_COPY_MOVE(Builder)
Builder();
~Builder();
- void setSystemIncludes(const QByteArrayList &systemIncludes);
+ void setForceProcessSystemIncludes(const QStringList &systemIncludes);
- bool visitLocation(const CXSourceLocation &location) const override;
+ bool visitLocation(const QString &fileName, LocationType locationType) const override;
StartTokenResult startToken(const CXCursor &cursor) override;
bool endToken(const CXCursor &cursor) override;
diff --git a/sources/shiboken6/ApiExtractor/clangparser/clangdebugutils.cpp b/sources/shiboken6/ApiExtractor/clangparser/clangdebugutils.cpp
index 7123c22d8..3c002da9c 100644
--- a/sources/shiboken6/ApiExtractor/clangparser/clangdebugutils.cpp
+++ b/sources/shiboken6/ApiExtractor/clangparser/clangdebugutils.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "clangdebugutils.h"
#include "clangutils.h"
@@ -32,8 +7,6 @@
#include <QtCore/QDebug>
#include <QtCore/QString>
-#include <string.h>
-
#ifndef QT_NO_DEBUG_STREAM
#ifdef Q_OS_WIN
@@ -44,7 +17,7 @@ const char pathSep = '/';
static const char *baseName(const char *fileName)
{
- const char *b = strrchr(fileName, pathSep);
+ const char *b = std::strrchr(fileName, pathSep);
return b ? b + 1 : fileName;
}
@@ -74,59 +47,99 @@ QDebug operator<<(QDebug s, CX_CXXAccessSpecifier ac)
return s;
}
-QDebug operator<<(QDebug s, const CXType &t)
+struct formatCXTypeName
+{
+ explicit formatCXTypeName(const CXType &type) : m_type(type) {}
+
+ const CXType &m_type;
+};
+
+QDebug operator<<(QDebug debug, const formatCXTypeName &ft)
{
- CXString typeSpelling = clang_getTypeSpelling(t);
- s << typeSpelling;
+ CXString typeSpelling = clang_getTypeSpelling(ft.m_type);
+ debug << typeSpelling;
clang_disposeString(typeSpelling);
- return s;
+ return debug;
}
-QDebug operator<<(QDebug s, const CXCursor &cursor)
+QDebug operator<<(QDebug debug, const CXType &type)
{
- QDebugStateSaver saver(s);
- s.nospace();
- s.noquote();
+ QDebugStateSaver saver(debug);
+ debug.nospace();
+ debug.noquote();
+ debug << "CXType(";
+ if (type.kind == CXType_Invalid) {
+ debug << "invalid)";
+ return debug;
+ }
+
+ debug << type.kind;
+ switch (type.kind) {
+ case CXType_Unexposed:
+ debug << " [unexposed]";
+ break;
+ case CXType_Elaborated:
+ debug << " [elaborated]";
+ break;
+ default:
+ break;
+ }
+ debug << ", " << formatCXTypeName(type) << ')';
+ return debug;
+}
+
+QDebug operator<<(QDebug debug, const CXCursor &cursor)
+{
+ QDebugStateSaver saver(debug);
+ debug.nospace();
+ debug.noquote();
const CXCursorKind kind = clang_getCursorKind(cursor);
- s << kind;
- if (kind >= CXCursor_FirstInvalid && kind <= CXCursor_LastInvalid)
- return s;
+ debug << "CXCursor(";
+ if (kind >= CXCursor_FirstInvalid && kind <= CXCursor_LastInvalid) {
+ debug << "invalid)";
+ return debug;
+ }
+
+ const QString cursorSpelling = clang::getCursorSpelling(cursor);
+ debug << '"' << cursorSpelling << '"';
+ CXString cursorDisplay = clang_getCursorDisplayName(cursor);
+ if (const char *dpy = clang_getCString(cursorDisplay)) {
+ const QString display = QString::fromUtf8(dpy);
+ if (display != cursorSpelling)
+ debug << ", display=\"" << dpy << '"';
+ }
+ clang_disposeString(cursorDisplay);
+
+ debug << ", kind=" << kind;
+
const CXType type = clang_getCursorType(cursor);
switch (kind) {
case CXCursor_CXXAccessSpecifier:
- s << ' ' << clang_getCXXAccessSpecifier(cursor);
+ debug << ", " << clang_getCXXAccessSpecifier(cursor);
break;
case CXCursor_CXXBaseSpecifier:
- s << ", inherits=\"" << clang::getCursorSpelling(clang_getTypeDeclaration(type)) << '"';
+ debug << ", inherits=\"" << clang::getCursorSpelling(clang_getTypeDeclaration(type)) << '"';
break;
case CXCursor_CXXMethod:
case CXCursor_FunctionDecl:
case CXCursor_ConversionFunction:
- s << ", result type=\"" << clang_getCursorResultType(cursor) << '"';
+ debug << ", result type=\""
+ << formatCXTypeName(clang_getCursorResultType(cursor)) << '"';
break;
case CXCursor_TypedefDecl:
- s << ", underlyingType=\"" << clang_getTypedefDeclUnderlyingType(cursor) << '"';
+ debug << ", underlyingType=\""
+ << formatCXTypeName(clang_getTypedefDeclUnderlyingType(cursor)) << '"';
break;
default:
break;
}
- if (type.kind != CXType_Invalid)
- s << ", type=\"" << type << '"';
+ debug << ", type=\"" << formatCXTypeName(type) << '"';
if (clang_Cursor_hasAttrs(cursor))
- s << ", [attrs]";
+ debug << ", [attrs]";
- const QString cursorSpelling = clang::getCursorSpelling(cursor);
- if (!cursorSpelling.isEmpty())
- s << ", spelling=\"" << cursorSpelling << '"';
- CXString cursorDisplay = clang_getCursorDisplayName(cursor);
- if (const char *dpy = clang_getCString(cursorDisplay)) {
- const QString display = QString::fromUtf8(dpy);
- if (display != cursorSpelling)
- s << ", display=\"" << dpy << '"';
- }
- clang_disposeString(cursorDisplay);
- return s;
+ debug << ')';
+ return debug;
}
QDebug operator<<(QDebug s, const CXSourceLocation &location)
diff --git a/sources/shiboken6/ApiExtractor/clangparser/clangdebugutils.h b/sources/shiboken6/ApiExtractor/clangparser/clangdebugutils.h
index ae3840fb4..7aac8a575 100644
--- a/sources/shiboken6/ApiExtractor/clangparser/clangdebugutils.h
+++ b/sources/shiboken6/ApiExtractor/clangparser/clangdebugutils.h
@@ -1,35 +1,10 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef CLANGDEBUGUTILS_H
#define CLANGDEBUGUTILS_H
-#include <QtCore/QtGlobal>
+#include <QtCore/qtclasshelpermacros.h>
#include <clang-c/Index.h>
diff --git a/sources/shiboken6/ApiExtractor/clangparser/clangparser.cpp b/sources/shiboken6/ApiExtractor/clangparser/clangparser.cpp
index 8cf35641b..da6930476 100644
--- a/sources/shiboken6/ApiExtractor/clangparser/clangparser.cpp
+++ b/sources/shiboken6/ApiExtractor/clangparser/clangparser.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "clangparser.h"
#include "clangutils.h"
@@ -38,6 +13,8 @@
#include <QtCore/QScopedArrayPointer>
#include <QtCore/QString>
+using namespace Qt::StringLiterals;
+
namespace clang {
QString SourceFileCache::getFileName(CXFile file)
@@ -64,7 +41,7 @@ std::string_view SourceFileCache::getCodeSnippet(const CXCursor &cursor,
if (range.first.file != range.second.file) {
if (errorMessage)
- *errorMessage = QStringLiteral("Range spans several files");
+ *errorMessage = "Range spans several files"_L1;
return std::string_view(empty, 0);
}
@@ -73,7 +50,7 @@ std::string_view SourceFileCache::getCodeSnippet(const CXCursor &cursor,
const QString fileName = getFileName(range.first.file);
if (fileName.isEmpty()) {
if (errorMessage)
- *errorMessage = QStringLiteral("Range has no file");
+ *errorMessage = "Range has no file"_L1;
return std::string_view(empty, 0);
}
QFile file(fileName);
@@ -108,9 +85,9 @@ std::string_view SourceFileCache::getCodeSnippet(const CXCursor &cursor,
BaseVisitor::BaseVisitor() = default;
BaseVisitor::~BaseVisitor() = default;
-bool BaseVisitor::visitLocation(const CXSourceLocation &location) const
+bool BaseVisitor::visitLocation(const QString &, LocationType locationType) const
{
- return clang_Location_isFromMainFile(location) != 0;
+ return locationType != LocationType::System;
}
BaseVisitor::StartTokenResult BaseVisitor::cbHandleStartToken(const CXCursor &cursor)
@@ -148,6 +125,34 @@ std::string_view BaseVisitor::getCodeSnippet(const CXCursor &cursor)
return result;
}
+bool BaseVisitor::_handleVisitLocation(const CXSourceLocation &location)
+{
+ CXFile cxFile; // void *
+ unsigned line;
+ unsigned column;
+ unsigned offset;
+ clang_getExpansionLocation(location, &cxFile, &line, &column, &offset);
+
+ if (cxFile == m_currentCxFile) // Same file?
+ return m_visitCurrent;
+
+ const QString fileName = getFileName(cxFile);
+
+ LocationType locationType = LocationType::Unknown;
+ if (!fileName.isEmpty()) {
+ if (clang_Location_isFromMainFile(location) != 0)
+ locationType = LocationType::Main;
+ else if (clang_Location_isInSystemHeader(location) != 0)
+ locationType = LocationType::System;
+ else
+ locationType = LocationType::Other;
+ }
+
+ m_currentCxFile = cxFile;
+ m_visitCurrent = visitLocation(fileName, locationType);
+ return m_visitCurrent;
+}
+
QString BaseVisitor::getCodeSnippetString(const CXCursor &cursor)
{
const std::string_view result = getCodeSnippet(cursor);
@@ -162,7 +167,7 @@ static CXChildVisitResult
auto *bv = reinterpret_cast<BaseVisitor *>(clientData);
const CXSourceLocation location = clang_getCursorLocation(cursor);
- if (!bv->visitLocation(location))
+ if (!bv->_handleVisitLocation(location))
return CXChildVisit_Continue;
const BaseVisitor::StartTokenResult startResult = bv->cbHandleStartToken(cursor);
@@ -210,9 +215,9 @@ static QByteArray msgCreateTranslationUnit(const QByteArrayList &clangArgs, unsi
{
QByteArray result = "clang_parseTranslationUnit2(0x";
result += QByteArray::number(flags, 16);
- const int count = clangArgs.size();
+ const auto count = clangArgs.size();
result += ", cmd[" + QByteArray::number(count) + "]=";
- for (int i = 0; i < count; ++i) {
+ for (qsizetype i = 0; i < count; ++i) {
const QByteArray &arg = clangArgs.at(i);
if (i)
result += ' ';
@@ -243,7 +248,9 @@ static CXTranslationUnit createTranslationUnit(CXIndex index,
"-Wno-expansion-to-defined", // Workaround for warnings in Darwin stdlib, see
// https://github.com/darlinghq/darling/issues/204
#endif
- "-Wno-constant-logical-operand"
+ "-Wno-constant-logical-operand",
+ "-x",
+ "c++" // Treat .h as C++, not C
};
QByteArrayList clangArgs;
@@ -251,6 +258,7 @@ static CXTranslationUnit createTranslationUnit(CXIndex index,
clangArgs += emulatedCompilerOptions();
clangArgs += defaultArgs;
}
+ clangArgs += detectVulkan();
clangArgs += args;
QScopedArrayPointer<const char *> argv(byteArrayListToFlatArgV(clangArgs));
qDebug().noquote().nospace() << msgCreateTranslationUnit(clangArgs, flags);
@@ -302,7 +310,7 @@ bool parse(const QByteArrayList &clangArgs, bool addCompilerSupportArguments,
debug.nospace();
debug << "Errors in "
<< QDir::toNativeSeparators(QFile::decodeName(clangArgs.constLast())) << ":\n";
- for (const Diagnostic &diagnostic : qAsConst(diagnostics))
+ for (const Diagnostic &diagnostic : std::as_const(diagnostics))
debug << diagnostic << '\n';
}
diff --git a/sources/shiboken6/ApiExtractor/clangparser/clangparser.h b/sources/shiboken6/ApiExtractor/clangparser/clangparser.h
index d95ada602..4a46248e4 100644
--- a/sources/shiboken6/ApiExtractor/clangparser/clangparser.h
+++ b/sources/shiboken6/ApiExtractor/clangparser/clangparser.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef CLANGPARSER_H
#define CLANGPARSER_H
@@ -33,11 +8,11 @@
#include <QtCore/QByteArrayList>
#include <QtCore/QHash>
-#include <QtCore/QPair>
#include <QtCore/QString>
#include <QtCore/QList>
#include <string_view>
+#include <utility>
namespace clang {
@@ -56,8 +31,16 @@ private:
FileNameCache m_fileNameCache;
};
+enum class LocationType
+{
+ Main, // Main header parsed for bindings
+ Other, // A header parsed for bindings
+ System, // A system header
+ Unknown // Clang internal
+};
+
class BaseVisitor {
- Q_DISABLE_COPY(BaseVisitor)
+ Q_DISABLE_COPY_MOVE(BaseVisitor)
public:
using Diagnostics = QList<Diagnostic>;
@@ -68,7 +51,7 @@ public:
// Whether location should be visited.
// defaults to clang_Location_isFromMainFile()
- virtual bool visitLocation(const CXSourceLocation &location) const;
+ virtual bool visitLocation(const QString &fileName, LocationType locationType) const;
virtual StartTokenResult startToken(const CXCursor &cursor) = 0;
virtual bool endToken(const CXCursor &cursor) = 0;
@@ -84,9 +67,14 @@ public:
void setDiagnostics(const Diagnostics &d);
void appendDiagnostic(const Diagnostic &d);
+ // For usage by the parser
+ bool _handleVisitLocation( const CXSourceLocation &location);
+
private:
SourceFileCache m_fileCache;
Diagnostics m_diagnostics;
+ CXFile m_currentCxFile{};
+ bool m_visitCurrent = true;
};
bool parse(const QByteArrayList &clangArgs,
diff --git a/sources/shiboken6/ApiExtractor/clangparser/clangutils.cpp b/sources/shiboken6/ApiExtractor/clangparser/clangutils.cpp
index c7d471547..1651e09ec 100644
--- a/sources/shiboken6/ApiExtractor/clangparser/clangutils.cpp
+++ b/sources/shiboken6/ApiExtractor/clangparser/clangutils.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "clangutils.h"
@@ -33,38 +8,33 @@
#include <QtCore/QHashFunctions>
#include <QtCore/QProcess>
-bool operator==(const CXCursor &c1, const CXCursor &c2)
+#include <string_view>
+
+bool operator==(const CXCursor &c1, const CXCursor &c2) noexcept
{
return c1.kind == c2.kind
&& c1.xdata == c2.xdata
&& std::equal(c1.data, c1.data + sizeof(c1.data) / sizeof(c1.data[0]), c2.data);
}
-size_t qHash(const CXCursor &c, size_t seed)
+size_t qHash(const CXCursor &c, size_t seed) noexcept
{
- return qHash(c.kind) ^ qHash(c.xdata) ^ qHash(c.data[0])
- ^ qHash(c.data[1]) ^ qHash(c.data[2]) ^ seed;
+ return qHashMulti(seed, c.kind, c.xdata, c.data[0], c.data[1], c.data[2]);
}
-bool operator==(const CXType &t1, const CXType &t2)
+bool operator==(const CXType &t1, const CXType &t2) noexcept
{
return t1.kind == t2.kind && t1.data[0] == t2.data[0]
&& t1.data[1] == t2.data[1];
}
-size_t qHash(const CXType &ct, size_t seed)
+size_t qHash(const CXType &ct, size_t seed) noexcept
{
- return size_t(ct.kind) ^ size_t(0xFFFFFFFF & quintptr(ct.data[0]))
- ^ size_t(0xFFFFFFFF & quintptr(ct.data[1])) ^ seed;
+ return qHashMulti(seed, ct.kind, ct.data[0], ct.data[1]);
}
namespace clang {
-bool SourceLocation::equals(const SourceLocation &rhs) const
-{
- return file == rhs.file && offset == rhs.offset;
-}
-
SourceLocation getExpansionLocation(const CXSourceLocation &location)
{
SourceLocation result;
@@ -102,8 +72,8 @@ CXString getFileNameFromLocation(const CXSourceLocation &location)
SourceRange getCursorRange(const CXCursor &cursor)
{
const CXSourceRange extent = clang_getCursorExtent(cursor);
- return qMakePair(getExpansionLocation(clang_getRangeStart(extent)),
- getExpansionLocation(clang_getRangeEnd(extent)));
+ return std::make_pair(getExpansionLocation(clang_getRangeStart(extent)),
+ getExpansionLocation(clang_getRangeEnd(extent)));
}
QString getCursorKindName(CXCursorKind cursorKind)
@@ -130,6 +100,43 @@ QString getCursorDisplayName(const CXCursor &cursor)
return result;
}
+static inline bool isBuiltinType(CXTypeKind kind)
+{
+ return kind >= CXType_FirstBuiltin && kind <= CXType_LastBuiltin;
+}
+
+// Resolve elaborated types occurring with clang 16
+static CXType resolveElaboratedType(const CXType &type)
+{
+ if (!isBuiltinType(type.kind)) {
+ CXCursor decl = clang_getTypeDeclaration(type);
+ auto resolvedType = clang_getCursorType(decl);
+ if (resolvedType.kind != CXType_Invalid && resolvedType.kind != type.kind)
+ return resolvedType;
+ }
+ return type;
+}
+
+// Resolve typedefs
+static CXType resolveTypedef(const CXType &type)
+{
+ auto result = type;
+ while (result.kind == CXType_Typedef) {
+ auto decl = clang_getTypeDeclaration(result);
+ auto resolved = clang_getTypedefDeclUnderlyingType(decl);
+ if (resolved.kind == CXType_Invalid)
+ break;
+ result = resolved;
+ }
+ return result;
+}
+
+// Fully resolve a type from elaborated & typedefs
+CXType fullyResolveType(const CXType &type)
+{
+ return resolveTypedef(resolveElaboratedType(type));
+}
+
QString getTypeName(const CXType &type)
{
CXString typeSpelling = clang_getTypeSpelling(type);
@@ -138,6 +145,23 @@ QString getTypeName(const CXType &type)
return result;
}
+// Quick check for "::Type"
+bool hasScopeResolution(const CXType &type)
+{
+ CXString typeSpelling = clang_getTypeSpelling(type);
+ std::string_view spelling = clang_getCString(typeSpelling);
+ const bool result = spelling.compare(0, 2, "::") == 0
+ || spelling.find(" ::") != std::string::npos;
+ clang_disposeString(typeSpelling);
+ return result;
+}
+
+// Resolve elaborated types occurring with clang 16
+QString getResolvedTypeName(const CXType &type)
+{
+ return getTypeName(resolveElaboratedType(type));
+}
+
Diagnostic::Diagnostic(const QString &m, const CXCursor &c, CXDiagnosticSeverity s)
: message(m), source(Other), severity(s)
{
@@ -191,16 +215,17 @@ QList<Diagnostic> getDiagnostics(CXTranslationUnit tu)
return result;
}
-QPair<int, int> parseTemplateArgumentList(const QString &l,
- const TemplateArgumentHandler &handler,
- int from)
+std::pair<qsizetype, qsizetype>
+ parseTemplateArgumentList(const QString &l,
+ const TemplateArgumentHandler &handler,
+ qsizetype from)
{
- const int ltPos = l.indexOf(QLatin1Char('<'), from);
+ const auto ltPos = l.indexOf(u'<', from);
if (ltPos == - 1)
- return qMakePair(-1, -1);
- int startPos = ltPos + 1;
+ return std::make_pair(-1, -1);
+ auto startPos = ltPos + 1;
int level = 1;
- for (int p = startPos, end = l.size(); p < end; ) {
+ for (qsizetype p = startPos, end = l.size(); p < end; ) {
const char c = l.at(p).toLatin1();
switch (c) {
case ',':
@@ -209,9 +234,9 @@ QPair<int, int> parseTemplateArgumentList(const QString &l,
++p;
if (c == '>') {
if (--level == 0)
- return qMakePair(ltPos, p);
+ return std::make_pair(ltPos, p);
// Skip over next ',': "a<b<c,d>,e>"
- for (; p < end && (l.at(p).isSpace() || l.at(p) == QLatin1Char(',')); ++p) {}
+ for (; p < end && (l.at(p).isSpace() || l.at(p) == u','); ++p) {}
}
startPos = p;
break;
@@ -225,7 +250,7 @@ QPair<int, int> parseTemplateArgumentList(const QString &l,
break;
}
}
- return qMakePair(-1, -1);
+ return std::make_pair(-1, -1);
}
CXDiagnosticSeverity maxSeverity(const QList<Diagnostic> &ds)
@@ -281,9 +306,9 @@ QDebug operator<<(QDebug s, const Diagnostic &d)
if (d.source != Diagnostic::Clang)
s << " [other]";
- if (const int childMessagesCount = d.childMessages.size()) {
+ if (const auto childMessagesCount = d.childMessages.size()) {
s << '\n';
- for (int i = 0; i < childMessagesCount; ++i)
+ for (qsizetype i = 0; i < childMessagesCount; ++i)
s << " " << d.childMessages.at(i) << '\n';
}
diff --git a/sources/shiboken6/ApiExtractor/clangparser/clangutils.h b/sources/shiboken6/ApiExtractor/clangparser/clangutils.h
index 4fcc833b1..fbbf95f1b 100644
--- a/sources/shiboken6/ApiExtractor/clangparser/clangutils.h
+++ b/sources/shiboken6/ApiExtractor/clangparser/clangutils.h
@@ -1,49 +1,25 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef CLANGUTILS_H
#define CLANGUTILS_H
#include <clang-c/Index.h>
-#include <QtCore/QPair>
#include <QtCore/QString>
#include <QtCore/QStringList>
+#include <QtCore/QtCompare>
#include <QtCore/QList>
#include <functional>
+#include <utility>
QT_FORWARD_DECLARE_CLASS(QDebug)
-bool operator==(const CXCursor &c1, const CXCursor &c2);
-size_t qHash(const CXCursor &c, size_t seed = 0);
+bool operator==(const CXCursor &c1, const CXCursor &c2) noexcept;
+size_t qHash(const CXCursor &c, size_t seed = 0) noexcept;
-bool operator==(const CXType &t1, const CXType &t2);
-size_t qHash(const CXType &ct, size_t seed);
+bool operator==(const CXType &t1, const CXType &t2) noexcept;
+size_t qHash(const CXType &ct, size_t seed = 0) noexcept;
namespace clang {
@@ -51,6 +27,9 @@ QString getCursorKindName(CXCursorKind cursorKind);
QString getCursorSpelling(const CXCursor &cursor);
QString getCursorDisplayName(const CXCursor &cursor);
QString getTypeName(const CXType &type);
+bool hasScopeResolution(const CXType &type);
+CXType fullyResolveType(const CXType &type);
+QString getResolvedTypeName(const CXType &type);
inline QString getCursorTypeName(const CXCursor &cursor)
{ return getTypeName(clang_getCursorType(cursor)); }
inline QString getCursorResultTypeName(const CXCursor &cursor)
@@ -71,17 +50,18 @@ struct SourceLocation
unsigned line = 0;
unsigned column = 0;
unsigned offset = 0;
-};
-
-inline bool operator==(const SourceLocation &l1, const SourceLocation &l2)
-{ return l1.equals(l2); }
-inline bool operator!=(const SourceLocation &l1, const SourceLocation &l2)
-{ return !l1.equals(l2); }
+ friend constexpr bool comparesEqual(const SourceLocation &lhs,
+ const SourceLocation &rhs) noexcept
+ {
+ return lhs.file == rhs.file && lhs.offset == rhs.offset;
+ }
+ Q_DECLARE_EQUALITY_COMPARABLE_LITERAL_TYPE(SourceLocation)
+};
SourceLocation getExpansionLocation(const CXSourceLocation &location);
-using SourceRange =QPair<SourceLocation, SourceLocation>;
+using SourceRange = std::pair<SourceLocation, SourceLocation>;
SourceLocation getCursorLocation(const CXCursor &cursor);
CXString getFileNameFromLocation(const CXSourceLocation &location);
@@ -114,9 +94,10 @@ CXDiagnosticSeverity maxSeverity(const QList<Diagnostic> &ds);
// with each match (level and string). Return begin and end of the list.
using TemplateArgumentHandler = std::function<void (int, QStringView)>;
-QPair<int, int> parseTemplateArgumentList(const QString &l,
- const TemplateArgumentHandler &handler,
- int from = 0);
+std::pair<qsizetype, qsizetype>
+ parseTemplateArgumentList(const QString &l,
+ const TemplateArgumentHandler &handler,
+ qsizetype from = 0);
#ifndef QT_NO_DEBUG_STREAM
QDebug operator<<(QDebug, const SourceLocation &);
diff --git a/sources/shiboken6/ApiExtractor/clangparser/compilersupport.cpp b/sources/shiboken6/ApiExtractor/clangparser/compilersupport.cpp
index 7631916fb..4c13b141f 100644
--- a/sources/shiboken6/ApiExtractor/clangparser/compilersupport.cpp
+++ b/sources/shiboken6/ApiExtractor/clangparser/compilersupport.cpp
@@ -1,36 +1,14 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "compilersupport.h"
#include "header_paths.h"
+#include "clangutils.h"
#include <reporthandler.h>
+#include "qtcompat.h"
+
#include <QtCore/QDebug>
#include <QtCore/QDir>
#include <QtCore/QFile>
@@ -42,10 +20,11 @@
#include <clang-c/Index.h>
-#include <string.h>
#include <algorithm>
#include <iterator>
+using namespace Qt::StringLiterals;
+
namespace clang {
QVersionNumber libClangVersion()
@@ -53,6 +32,74 @@ QVersionNumber libClangVersion()
return QVersionNumber(CINDEX_VERSION_MAJOR, CINDEX_VERSION_MINOR);
}
+static Compiler _compiler =
+#if defined (Q_CC_CLANG)
+ Compiler::Clang;
+#elif defined (Q_CC_MSVC)
+ Compiler::Msvc;
+#else
+ Compiler::Gpp;
+#endif
+
+Compiler compiler() { return _compiler; }
+
+bool setCompiler(const QString &name)
+{
+ bool result = true;
+ if (name == u"msvc")
+ _compiler = Compiler::Msvc;
+ else if (name == u"g++")
+ _compiler = Compiler::Gpp;
+ else if (name == u"clang")
+ _compiler = Compiler::Clang;
+ else
+ result = false;
+ return result;
+}
+
+QString _compilerPath; // Pre-defined compiler path (from command line)
+
+const QString &compilerPath()
+{
+ return _compilerPath;
+}
+
+void setCompilerPath(const QString &name)
+{
+ _compilerPath = name;
+}
+
+static Platform _platform =
+#if defined (Q_OS_DARWIN)
+ Platform::macOS;
+#elif defined (Q_OS_WIN)
+ Platform::Windows;
+#else
+ Platform::Unix;
+#endif
+
+Platform platform() { return _platform; }
+
+bool setPlatform(const QString &name)
+{
+ bool result = true;
+ if (name == u"windows")
+ _platform = Platform::Windows;
+ else if (name == u"darwin")
+ _platform = Platform::macOS;
+ else if (name == u"unix")
+ _platform = Platform::Unix;
+ else
+ result = false;
+ return result;
+}
+
+// 3/2024: Use a recent MSVC2022 for libclang 18.X
+static QByteArray msvcCompatVersion()
+{
+ return libClangVersion() >= QVersionNumber(0, 64) ? "19.39"_ba : "19.26"_ba;
+}
+
static bool runProcess(const QString &program, const QStringList &arguments,
QByteArray *stdOutIn = nullptr, QByteArray *stdErrIn = nullptr)
{
@@ -91,11 +138,8 @@ static bool runProcess(const QString &program, const QStringList &arguments,
return true;
}
-#if defined(Q_CC_GNU)
-
static QByteArray frameworkPath() { return QByteArrayLiteral(" (framework directory)"); }
-# if defined(Q_OS_MACOS)
static void filterHomebrewHeaderPaths(HeaderPaths &headerPaths)
{
QByteArray homebrewPrefix = qgetenv("HOMEBREW_OPT");
@@ -123,7 +167,6 @@ static void filterHomebrewHeaderPaths(HeaderPaths &headerPaths)
}
}
}
-# endif
// Determine g++'s internal include paths from the output of
// g++ -E -x c++ - -v </dev/null
@@ -135,15 +178,20 @@ static void filterHomebrewHeaderPaths(HeaderPaths &headerPaths)
static HeaderPaths gppInternalIncludePaths(const QString &compiler)
{
HeaderPaths result;
- QStringList arguments;
- arguments << QStringLiteral("-E") << QStringLiteral("-x") << QStringLiteral("c++")
- << QStringLiteral("-") << QStringLiteral("-v");
+ QStringList arguments{u"-E"_s, u"-x"_s, u"c++"_s, u"-"_s, u"-v"_s};
QByteArray stdOut;
QByteArray stdErr;
if (!runProcess(compiler, arguments, &stdOut, &stdErr))
return result;
const QByteArrayList stdErrLines = stdErr.split('\n');
bool isIncludeDir = false;
+
+ if (ReportHandler::isDebug(ReportHandler::MediumDebug))
+ qCInfo(lcShiboken()).noquote().nospace()
+ << "gppInternalIncludePaths:\n compiler: " << compiler
+ << "\n stdOut: " << stdOut
+ << "\n stdErr: " << stdErr;
+
for (const QByteArray &line : stdErrLines) {
if (isIncludeDir) {
if (line.startsWith(QByteArrayLiteral("End of search list"))) {
@@ -161,60 +209,27 @@ static HeaderPaths gppInternalIncludePaths(const QString &compiler)
}
}
-# if defined(Q_OS_MACOS)
- filterHomebrewHeaderPaths(result);
-# endif
+ if (platform() == Platform::macOS)
+ filterHomebrewHeaderPaths(result);
+
return result;
}
-#endif // Q_CC_MSVC
// Detect Vulkan as supported from Qt 5.10 by checking the environment variables.
-static void detectVulkan(HeaderPaths *headerPaths)
+QByteArrayList detectVulkan()
{
static const char *vulkanVariables[] = {"VULKAN_SDK", "VK_SDK_PATH"};
for (const char *vulkanVariable : vulkanVariables) {
if (qEnvironmentVariableIsSet(vulkanVariable)) {
- const QByteArray path = qgetenv(vulkanVariable) + QByteArrayLiteral("/include");
- headerPaths->append(HeaderPath{path, HeaderType::System});
- break;
+ const auto option = QByteArrayLiteral("-isystem")
+ + qgetenv(vulkanVariable)
+ + QByteArrayLiteral("/include");
+ return {option};
}
}
+ return {};
}
-#if defined(Q_CC_GNU)
-enum class LinuxDistribution { RedHat, CentOs, Other };
-
-static LinuxDistribution linuxDistribution()
-{
- const QString &productType = QSysInfo::productType();
- if (productType == QLatin1String("rhel"))
- return LinuxDistribution::RedHat;
- if (productType.compare(QLatin1String("centos"), Qt::CaseInsensitive) == 0)
- return LinuxDistribution::CentOs;
- return LinuxDistribution::Other;
-}
-
-static bool checkProductVersion(const QVersionNumber &minimum,
- const QVersionNumber &excludedMaximum)
-{
- const QVersionNumber osVersion = QVersionNumber::fromString(QSysInfo::productVersion());
- return osVersion.isNull() || (osVersion >= minimum && osVersion < excludedMaximum);
-}
-
-static inline bool needsGppInternalHeaders()
-{
- const LinuxDistribution distro = linuxDistribution();
- switch (distro) {
- case LinuxDistribution::RedHat:
- case LinuxDistribution::CentOs:
- return checkProductVersion(QVersionNumber(6, 10), QVersionNumber(8));
- case LinuxDistribution::Other:
- break;
- }
- return false;
-}
-#endif // Q_CC_GNU
-
// For MSVC, we set the MS compatibility version and let Clang figure out its own
// options and include paths.
// For the others, we pass "-nostdinc" since libclang tries to add it's own system
@@ -222,9 +237,7 @@ static inline bool needsGppInternalHeaders()
// which causes std types not being found and construct -I/-F options from the
// include paths of the host compiler.
-#ifdef Q_CC_CLANG
static QByteArray noStandardIncludeOption() { return QByteArrayLiteral("-nostdinc"); }
-#endif
// The clang builtin includes directory is used to find the definitions for
// intrinsic functions and builtin types. It is necessary to use the clang
@@ -234,35 +247,40 @@ static QByteArray noStandardIncludeOption() { return QByteArrayLiteral("-nostdin
// Besides g++/Linux, as of MSVC 19.28.29334, MSVC needs clang includes
// due to PYSIDE-1433, LLVM-47099
-#if !defined(Q_OS_DARWIN)
-# define NEED_CLANG_BUILTIN_INCLUDES 1
-#else
-# define NEED_CLANG_BUILTIN_INCLUDES 0
-#endif
-#if NEED_CLANG_BUILTIN_INCLUDES
+static bool needsClangBuiltinIncludes()
+{
+ return platform() != Platform::macOS;
+}
+
+static QString queryLlvmConfigDir(const QString &arg)
+{
+ static const QString llvmConfig = QStandardPaths::findExecutable(u"llvm-config"_s);
+ if (llvmConfig.isEmpty())
+ return {};
+ QByteArray stdOut;
+ if (!runProcess(llvmConfig, QStringList{arg}, &stdOut))
+ return {};
+ const QString path = QFile::decodeName(stdOut.trimmed());
+ if (!QFileInfo::exists(path)) {
+ qWarning(R"(%s: "%s" as returned by llvm-config "%s" does not exist.)",
+ __FUNCTION__, qPrintable(QDir::toNativeSeparators(path)), qPrintable(arg));
+ return {};
+ }
+ return path;
+}
+
static QString findClangLibDir()
{
for (const char *envVar : {"LLVM_INSTALL_DIR", "CLANG_INSTALL_DIR"}) {
if (qEnvironmentVariableIsSet(envVar)) {
- const QString path = QFile::decodeName(qgetenv(envVar)) + QLatin1String("/lib");
+ const QString path = QFile::decodeName(qgetenv(envVar)) + u"/lib"_s;
if (QFileInfo::exists(path))
return path;
qWarning("%s: %s as pointed to by %s does not exist.", __FUNCTION__, qPrintable(path), envVar);
}
}
- const QString llvmConfig =
- QStandardPaths::findExecutable(QLatin1String("llvm-config"));
- if (!llvmConfig.isEmpty()) {
- QByteArray stdOut;
- if (runProcess(llvmConfig, QStringList{QLatin1String("--libdir")}, &stdOut)) {
- const QString path = QFile::decodeName(stdOut.trimmed());
- if (QFileInfo::exists(path))
- return path;
- qWarning("%s: %s as returned by llvm-config does not exist.", __FUNCTION__, qPrintable(path));
- }
- }
- return QString();
+ return queryLlvmConfigDir(u"--libdir"_s);
}
static QString findClangBuiltInIncludesDir()
@@ -272,7 +290,7 @@ static QString findClangBuiltInIncludesDir()
if (!clangPathLibDir.isEmpty()) {
QString candidate;
QVersionNumber lastVersionNumber(1, 0, 0);
- const QString clangDirName = clangPathLibDir + QLatin1String("/clang");
+ const QString clangDirName = clangPathLibDir + u"/clang"_s;
QDir clangDir(clangDirName);
const QFileInfoList versionDirs =
clangDir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot);
@@ -289,26 +307,46 @@ static QString findClangBuiltInIncludesDir()
}
}
if (!candidate.isEmpty())
- return candidate + QStringLiteral("/include");
+ return candidate + "/include"_L1;
}
- return QString();
+ return queryLlvmConfigDir(u"--includedir"_s);
}
-#endif // NEED_CLANG_BUILTIN_INCLUDES
-#if defined(Q_CC_CLANG) || defined(Q_CC_GNU)
-static QString compilerFromCMake(const QString &defaultCompiler)
+QString compilerFromCMake()
{
-// Added !defined(Q_OS_DARWIN) due to PYSIDE-1032
-# if defined(CMAKE_CXX_COMPILER) && !defined(Q_OS_DARWIN)
- Q_UNUSED(defaultCompiler);
+#ifdef CMAKE_CXX_COMPILER
return QString::fromLocal8Bit(CMAKE_CXX_COMPILER);
-# else
- return defaultCompiler;
-# endif
+#else
+ return {};
+#endif
+}
+
+// Return a compiler suitable for determining the internal include paths
+static QString compilerFromCMake(const QString &defaultCompiler)
+{
+ if (!compilerPath().isEmpty())
+ return compilerPath();
+ // Exclude macOS since cmakeCompiler returns the full path instead of the
+ // /usr/bin/clang shim, which results in the default SDK sysroot path
+ // missing (PYSIDE-1032)
+ if (platform() == Platform::macOS)
+ return defaultCompiler;
+ QString cmakeCompiler = compilerFromCMake();
+ if (cmakeCompiler.isEmpty())
+ return defaultCompiler;
+ QFileInfo fi(cmakeCompiler);
+ // Should be absolute by default, but a user may specify -DCMAKE_CXX_COMPILER=cl.exe
+ if (fi.isRelative())
+ return cmakeCompiler;
+ if (fi.exists())
+ return fi.absoluteFilePath();
+ // The compiler may not exist in case something like icecream or
+ // a non-standard-path was used on the build machine. Check
+ // the executable.
+ cmakeCompiler = QStandardPaths::findExecutable(fi.fileName());
+ return cmakeCompiler.isEmpty() ? defaultCompiler : cmakeCompiler;
}
-#endif // Q_CC_CLANG, Q_CC_GNU
-#if NEED_CLANG_BUILTIN_INCLUDES
static void appendClangBuiltinIncludes(HeaderPaths *p)
{
const QString clangBuiltinIncludesDir =
@@ -318,61 +356,48 @@ static void appendClangBuiltinIncludes(HeaderPaths *p)
"(neither by checking the environment variables LLVM_INSTALL_DIR, CLANG_INSTALL_DIR "
" nor running llvm-config). This may lead to parse errors.");
} else {
- qCInfo(lcShiboken, "CLANG builtins includes directory: %s",
+ qCInfo(lcShiboken, "CLANG v%d.%d, builtins includes directory: %s",
+ CINDEX_VERSION_MAJOR, CINDEX_VERSION_MINOR,
qPrintable(clangBuiltinIncludesDir));
p->append(HeaderPath{QFile::encodeName(clangBuiltinIncludesDir),
HeaderType::System});
}
}
-#endif // NEED_CLANG_BUILTIN_INCLUDES
// Returns clang options needed for emulating the host compiler
QByteArrayList emulatedCompilerOptions()
{
-#if defined(Q_CC_GNU)
- // Needed to silence a warning, but needsGppInternalHeaders is used below.
- // This seems to be a compiler bug on macOS.
- Q_UNUSED(needsGppInternalHeaders);
-#endif
QByteArrayList result;
-#if defined(Q_CC_MSVC)
- HeaderPaths headerPaths;
- result.append(QByteArrayLiteral("-fms-compatibility-version=19.26.28806"));
- result.append(QByteArrayLiteral("-fdelayed-template-parsing"));
- result.append(QByteArrayLiteral("-Wno-microsoft-enum-value"));
- // Fix yvals_core.h: STL1000: Unexpected compiler version, expected Clang 7 or newer (MSVC2017 update)
- result.append(QByteArrayLiteral("-D_ALLOW_COMPILER_AND_STL_VERSION_MISMATCH"));
-# if NEED_CLANG_BUILTIN_INCLUDES
- appendClangBuiltinIncludes(&headerPaths);
-# endif // NEED_CLANG_BUILTIN_INCLUDES
-
-#elif defined(Q_CC_CLANG)
- HeaderPaths headerPaths = gppInternalIncludePaths(compilerFromCMake(QStringLiteral("clang++")));
- result.append(noStandardIncludeOption());
-#elif defined(Q_CC_GNU)
HeaderPaths headerPaths;
+ switch (compiler()) {
+ case Compiler::Msvc:
+ result.append("-fms-compatibility-version="_ba + msvcCompatVersion());
+ result.append(QByteArrayLiteral("-fdelayed-template-parsing"));
+ result.append(QByteArrayLiteral("-Wno-microsoft-enum-value"));
+ result.append("/Zc:__cplusplus"_ba);
+ // Fix yvals_core.h: STL1000: Unexpected compiler version, expected Clang 7 or newer (MSVC2017 update)
+ result.append(QByteArrayLiteral("-D_ALLOW_COMPILER_AND_STL_VERSION_MISMATCH"));
+ if (needsClangBuiltinIncludes())
+ appendClangBuiltinIncludes(&headerPaths);
+ break;
+ case Compiler::Clang:
+ headerPaths.append(gppInternalIncludePaths(compilerFromCMake(u"clang++"_s)));
+ result.append(noStandardIncludeOption());
+ break;
+ case Compiler::Gpp:
+ if (needsClangBuiltinIncludes())
+ appendClangBuiltinIncludes(&headerPaths);
-# if NEED_CLANG_BUILTIN_INCLUDES
- appendClangBuiltinIncludes(&headerPaths);
-# endif // NEED_CLANG_BUILTIN_INCLUDES
-
- // Append the c++ include paths since Clang is unable to find <list> etc
- // on RHEL 7 with g++ 6.3 or CentOS 7.2.
- // A fix for this has been added to Clang 5.0, so, the code can be removed
- // once Clang 5.0 is the minimum version.
- if (needsGppInternalHeaders()) {
- const HeaderPaths gppPaths = gppInternalIncludePaths(compilerFromCMake(QStringLiteral("g++")));
+ // Append the c++ include paths since Clang is unable to find
+ // <type_traits> etc (g++ 11.3).
+ const HeaderPaths gppPaths = gppInternalIncludePaths(compilerFromCMake(u"g++"_s));
for (const HeaderPath &h : gppPaths) {
- if (h.path.contains("c++")
- || h.path.contains("sysroot")) { // centOS
+ if (h.path.contains("c++") || h.path.contains("sysroot"))
headerPaths.append(h);
- }
}
+ break;
}
-#else
- HeaderPaths headerPaths;
-#endif
- detectVulkan(&headerPaths);
+
std::transform(headerPaths.cbegin(), headerPaths.cend(),
std::back_inserter(result), HeaderPath::includeOption);
return result;
diff --git a/sources/shiboken6/ApiExtractor/clangparser/compilersupport.h b/sources/shiboken6/ApiExtractor/clangparser/compilersupport.h
index d9e213e73..462e8f205 100644
--- a/sources/shiboken6/ApiExtractor/clangparser/compilersupport.h
+++ b/sources/shiboken6/ApiExtractor/clangparser/compilersupport.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef COMPILERSUPPORT_H
#define COMPILERSUPPORT_H
@@ -32,6 +7,7 @@
#include <QtCore/QByteArrayList>
QT_FORWARD_DECLARE_CLASS(QVersionNumber)
+QT_FORWARD_DECLARE_CLASS(QString)
enum class LanguageLevel {
Default,
@@ -42,6 +18,18 @@ enum class LanguageLevel {
Cpp1Z
};
+enum class Compiler {
+ Msvc,
+ Gpp,
+ Clang
+};
+
+enum class Platform {
+ Unix,
+ Windows,
+ macOS
+};
+
namespace clang {
QVersionNumber libClangVersion();
@@ -50,6 +38,19 @@ LanguageLevel emulatedCompilerLanguageLevel();
const char *languageLevelOption(LanguageLevel l);
LanguageLevel languageLevelFromOption(const char *);
+
+QByteArrayList detectVulkan();
+
+Compiler compiler();
+bool setCompiler(const QString &name);
+
+QString compilerFromCMake();
+
+const QString &compilerPath();
+void setCompilerPath(const QString &name);
+
+Platform platform();
+bool setPlatform(const QString &name);
} // namespace clang
#endif // COMPILERSUPPORT_H
diff --git a/sources/shiboken6/ApiExtractor/classdocumentation.cpp b/sources/shiboken6/ApiExtractor/classdocumentation.cpp
new file mode 100644
index 000000000..637e4a422
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/classdocumentation.cpp
@@ -0,0 +1,381 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#include "classdocumentation.h"
+#include "messages.h"
+#include "debughelpers_p.h"
+
+#include <QtCore/QDebug>
+#include <QtCore/QBuffer>
+#include <QtCore/QFile>
+#include <QtCore/QXmlStreamReader>
+#include <QtCore/QXmlStreamAttributes>
+#include <QtCore/QXmlStreamWriter>
+
+#include <algorithm>
+
+using namespace Qt::StringLiterals;
+
+// Sort functions by name and argument count
+static bool functionDocumentationLessThan(const FunctionDocumentation &f1,
+ const FunctionDocumentation &f2)
+{
+ const int nc = f1.name.compare(f2.name);
+ if (nc != 0)
+ return nc < 0;
+ return f1.parameters.size() < f2.parameters.size();
+}
+
+static void sortDocumentation(ClassDocumentation *cd)
+{
+ std::stable_sort(cd->enums.begin(), cd->enums.end(),
+ [] (const EnumDocumentation &e1, const EnumDocumentation &e2) {
+ return e1.name < e2.name; });
+ std::stable_sort(cd->properties.begin(), cd->properties.end(),
+ [] (const PropertyDocumentation &p1, const PropertyDocumentation &p2) {
+ return p1.name < p2.name; });
+ std::stable_sort(cd->functions.begin(), cd->functions.end(),
+ functionDocumentationLessThan);
+}
+
+qsizetype ClassDocumentation::indexOfEnum(const QString &name) const
+{
+ for (qsizetype i = 0, size = enums.size(); i < size; ++i) {
+ if (enums.at(i).name == name)
+ return i;
+ }
+ return -1;
+}
+
+FunctionDocumentationList ClassDocumentation::findFunctionCandidates(const QString &name,
+ bool constant) const
+{
+ FunctionDocumentationList result;
+ std::copy_if(functions.cbegin(), functions.cend(),
+ std::back_inserter(result),
+ [name, constant](const FunctionDocumentation &fd) {
+ return fd.constant == constant && fd.name == name;
+ });
+ return result;
+}
+
+static bool matches(const FunctionDocumentation &fd, const FunctionDocumentationQuery &q)
+{
+ return fd.name == q.name && fd.constant == q.constant && fd.parameters == q.parameters;
+}
+
+qsizetype ClassDocumentation::indexOfFunction(const FunctionDocumentationList &fl,
+ const FunctionDocumentationQuery &q)
+{
+ for (qsizetype i = 0, size = fl.size(); i < size; ++i) {
+ if (matches(fl.at(i), q))
+ return i;
+ }
+ return -1;
+}
+
+qsizetype ClassDocumentation::indexOfProperty(const QString &name) const
+{
+ for (qsizetype i = 0, size = properties.size(); i < size; ++i) {
+ if (properties.at(i).name == name)
+ return i;
+ }
+ return -1;
+}
+
+enum class WebXmlCodeTag
+{
+ Class, Description, Enum, Function, Header, Parameter, Property, Typedef, Other
+};
+
+static WebXmlCodeTag tag(QStringView name)
+{
+ if (name == u"class" || name == u"namespace")
+ return WebXmlCodeTag::Class;
+ if (name == u"enum")
+ return WebXmlCodeTag::Enum;
+ if (name == u"function")
+ return WebXmlCodeTag::Function;
+ if (name == u"description")
+ return WebXmlCodeTag::Description;
+ if (name == u"header")
+ return WebXmlCodeTag::Header;
+ if (name == u"parameter")
+ return WebXmlCodeTag::Parameter;
+ if (name == u"property")
+ return WebXmlCodeTag::Property;
+ if (name == u"typedef")
+ return WebXmlCodeTag::Typedef;
+ return WebXmlCodeTag::Other;
+}
+
+static void parseWebXmlElement(WebXmlCodeTag tag, const QXmlStreamAttributes &attributes,
+ ClassDocumentation *cd)
+{
+ switch (tag) {
+ case WebXmlCodeTag::Class:
+ cd->name = attributes.value(u"name"_s).toString();
+ cd->type = ClassDocumentation::Class;
+ break;
+ case WebXmlCodeTag::Header:
+ cd->name = attributes.value(u"name"_s).toString();
+ cd->type = ClassDocumentation::Header;
+ break;
+ case WebXmlCodeTag::Enum: {
+ EnumDocumentation ed;
+ ed.name = attributes.value(u"name"_s).toString();
+ cd->enums.append(ed);
+ }
+ break;
+ case WebXmlCodeTag::Function: {
+ FunctionDocumentation fd;
+ fd.name = attributes.value(u"name"_s).toString();
+ fd.signature = attributes.value(u"signature"_s).toString();
+ fd.returnType = attributes.value(u"type"_s).toString();
+ fd.constant = attributes.value(u"const"_s) == u"true";
+ cd->functions.append(fd);
+ }
+ break;
+ case WebXmlCodeTag::Parameter:
+ Q_ASSERT(!cd->functions.isEmpty());
+ cd->functions.last().parameters.append(attributes.value(u"type"_s).toString());
+ break;
+ case WebXmlCodeTag::Property: {
+ PropertyDocumentation pd;
+ pd.name = attributes.value(u"name"_s).toString();
+ pd.brief = attributes.value(u"brief"_s).toString();
+ cd->properties.append(pd);
+ }
+ break;
+ default:
+ break;
+ }
+}
+
+// Retrieve the contents of <description>
+static QString extractWebXmlDescription(QXmlStreamReader &reader)
+{
+ QBuffer buffer;
+ buffer.open(QIODeviceBase::WriteOnly);
+ QXmlStreamWriter writer(&buffer);
+
+ do {
+ switch (reader.tokenType()) {
+ case QXmlStreamReader::StartElement:
+ writer.writeStartElement(reader.name().toString());
+ writer.writeAttributes(reader.attributes());
+ break;
+ case QXmlStreamReader::Characters:
+ writer.writeCharacters(reader.text().toString());
+ break;
+ case QXmlStreamReader::EndElement:
+ writer.writeEndElement();
+ if (reader.name() == u"description") {
+ buffer.close();
+ return QString::fromUtf8(buffer.buffer()).trimmed();
+ }
+ break;
+ default:
+ break;
+ }
+ reader.readNext();
+ } while (!reader.atEnd());
+
+ return {};
+}
+
+static QString msgXmlError(const QString &fileName, const QXmlStreamReader &reader)
+{
+ QString result;
+ QTextStream(&result) << fileName << ':' << reader.lineNumber() << ':'
+ << reader.columnNumber() << ':' << reader.errorString();
+ return result;
+}
+
+std::optional<ClassDocumentation> parseWebXml(const QString &fileName, QString *errorMessage)
+{
+ ClassDocumentation result;
+
+ QFile file(fileName);
+ if (!file.open(QIODevice::Text | QIODevice::ReadOnly)) {
+ *errorMessage = msgCannotOpenForReading(file);
+ return std::nullopt;
+ }
+
+ WebXmlCodeTag lastTag = WebXmlCodeTag::Other;
+ QXmlStreamReader reader(&file);
+ while (!reader.atEnd()) {
+ switch (reader.readNext()) {
+ case QXmlStreamReader::StartElement: {
+ const auto currentTag = tag(reader.name());
+ parseWebXmlElement(currentTag, reader.attributes(), &result);
+ switch (currentTag) { // Store relevant tags in lastTag
+ case WebXmlCodeTag::Class:
+ case WebXmlCodeTag::Function:
+ case WebXmlCodeTag::Enum:
+ case WebXmlCodeTag::Header:
+ case WebXmlCodeTag::Property:
+ case WebXmlCodeTag::Typedef:
+ lastTag = currentTag;
+ break;
+ case WebXmlCodeTag::Description: { // Append the description to the element
+ QString *target = nullptr;
+ switch (lastTag) {
+ case WebXmlCodeTag::Class:
+ target = &result.description;
+ break;
+ case WebXmlCodeTag::Function:
+ target = &result.functions.last().description;
+ break;
+ case WebXmlCodeTag::Enum:
+ target = &result.enums.last().description;
+ break;
+ case WebXmlCodeTag::Property:
+ target = &result.properties.last().description;
+ default:
+ break;
+ }
+ if (target != nullptr && target->isEmpty())
+ *target = extractWebXmlDescription(reader);
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ default:
+ break;
+ }
+ }
+
+ if (reader.error() != QXmlStreamReader::NoError) {
+ *errorMessage= msgXmlError(fileName, reader);
+ return std::nullopt;
+ }
+
+ sortDocumentation(&result);
+ return result;
+}
+
+QString webXmlModuleDescription(const QString &fileName, QString *errorMessage)
+{
+ QFile file(fileName);
+ if (!file.open(QIODevice::Text | QIODevice::ReadOnly)) {
+ *errorMessage = msgCannotOpenForReading(file);
+ return {};
+ }
+
+ QString result;
+ QXmlStreamReader reader(&file);
+ while (!reader.atEnd()) {
+ switch (reader.readNext()) {
+ case QXmlStreamReader::StartElement:
+ if (reader.name() == u"description")
+ result = extractWebXmlDescription(reader);
+ break;
+ default:
+ break;
+ }
+ }
+
+ if (reader.error() != QXmlStreamReader::NoError) {
+ *errorMessage= msgXmlError(fileName, reader);
+ return {};
+ }
+
+ return result;
+}
+
+static void formatDescription(QDebug &debug, const QString &desc)
+{
+ debug << "description=";
+ if (desc.isEmpty()) {
+ debug << "<empty>";
+ return;
+ }
+ if (debug.verbosity() < 3)
+ debug << desc.size() << " chars";
+ else
+ debug << '"' << desc << '"';
+}
+
+QDebug operator<<(QDebug debug, const EnumDocumentation &e)
+{
+ QDebugStateSaver saver(debug);
+ debug.noquote();
+ debug.nospace();
+ debug << "Enum(";
+ if (e.name.isEmpty()) {
+ debug << "invalid";
+ } else {
+ debug << e.name << ", ";
+ formatDescription(debug, e.description);
+ }
+ debug << ')';
+ return debug;
+}
+
+QDebug operator<<(QDebug debug, const PropertyDocumentation &p)
+{
+ QDebugStateSaver saver(debug);
+ debug.noquote();
+ debug.nospace();
+ debug << "Property(";
+ if (p.name.isEmpty()) {
+ debug << "invalid";
+ } else {
+ debug << p.name << ", ";
+ formatDescription(debug, p.description);
+ }
+ debug << ')';
+ return debug;
+}
+
+QDebug operator<<(QDebug debug, const FunctionDocumentation &f)
+{
+ QDebugStateSaver saver(debug);
+ debug.noquote();
+ debug.nospace();
+ debug << "Function(";
+ if (f.name.isEmpty()) {
+ debug << "invalid";
+ } else {
+ debug << f.name;
+ if (!f.returnType.isEmpty())
+ debug << ", returns " << f.returnType;
+ if (f.constant)
+ debug << ", const";
+ formatList(debug, ", parameters", f.parameters, ", ");
+ debug << ", signature=\"" << f.signature << "\", ";
+ formatDescription(debug, f.description);
+ }
+ debug << ')';
+ return debug;
+}
+
+QDebug operator<<(QDebug debug, const FunctionDocumentationQuery &q)
+{
+ QDebugStateSaver saver(debug);
+ debug.noquote();
+ debug.nospace();
+ debug << "FunctionQuery(" << q.name;
+ if (q.constant)
+ debug << ", const";
+ formatList(debug, ", parameters", q.parameters);
+ debug << ')';
+ return debug;
+}
+
+QDebug operator<<(QDebug debug, const ClassDocumentation &c)
+{
+ QDebugStateSaver saver(debug);
+ debug.noquote();
+ debug.nospace();
+ debug << "Class(" << c.name << ", ";
+ formatDescription(debug, c.description);
+ formatList(debug, ", enums", c.enums);
+ formatList(debug, ", properties", c.properties);
+ formatList(debug, ", functions", c.functions);
+ debug << ')';
+ return debug;
+}
diff --git a/sources/shiboken6/ApiExtractor/classdocumentation.h b/sources/shiboken6/ApiExtractor/classdocumentation.h
new file mode 100644
index 000000000..d47101389
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/classdocumentation.h
@@ -0,0 +1,82 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef CLASSDOCUMENTATION_H
+#define CLASSDOCUMENTATION_H
+
+#include <QtCore/QStringList>
+
+#include <optional>
+
+QT_FORWARD_DECLARE_CLASS(QDebug)
+
+/// An enumeration in a WebXML/doxygen document
+struct EnumDocumentation
+{
+ QString name;
+ QString description;
+};
+
+/// A QObject property in a WebXML/doxygen document
+struct PropertyDocumentation
+{
+ QString name;
+ QString brief;
+ QString description;
+};
+
+/// Helper struct for querying a function in a WebXML/doxygen document
+struct FunctionDocumentationQuery
+{
+ QString name;
+ QStringList parameters;
+ bool constant = false;
+};
+
+/// A function in a WebXML/doxygen document
+struct FunctionDocumentation : public FunctionDocumentationQuery
+{
+ QString signature;
+ QString returnType;
+ QString description;
+};
+
+using FunctionDocumentationList = QList<FunctionDocumentation>;
+
+/// A WebXML/doxygen document
+struct ClassDocumentation
+{
+ enum Type {
+ Class, // <class>, class/namespace
+ Header // <header>, grouped global functions/enums
+ };
+
+ qsizetype indexOfEnum(const QString &name) const;
+ FunctionDocumentationList findFunctionCandidates(const QString &name,
+ bool constant) const;
+ static qsizetype indexOfFunction(const FunctionDocumentationList &fl,
+ const FunctionDocumentationQuery &q);
+ qsizetype indexOfProperty(const QString &name) const;
+
+ Type type = Type::Class;
+ QString name;
+ QString description;
+
+ QList<EnumDocumentation> enums;
+ QList<PropertyDocumentation> properties;
+ FunctionDocumentationList functions;
+};
+
+/// Parse a WebXML class/namespace document
+std::optional<ClassDocumentation> parseWebXml(const QString &fileName, QString *errorMessage);
+
+/// Extract the module description from a WebXML module document
+QString webXmlModuleDescription(const QString &fileName, QString *errorMessage);
+
+QDebug operator<<(QDebug debug, const EnumDocumentation &e);
+QDebug operator<<(QDebug debug, const PropertyDocumentation &p);
+QDebug operator<<(QDebug debug, const FunctionDocumentationQuery &q);
+QDebug operator<<(QDebug debug, const FunctionDocumentation &f);
+QDebug operator<<(QDebug debug, const ClassDocumentation &c);
+
+#endif // CLASSDOCUMENTATION_H
diff --git a/sources/shiboken6/ApiExtractor/cmake_uninstall.cmake b/sources/shiboken6/ApiExtractor/cmake_uninstall.cmake
index df95fb9d8..4031b4e1a 100644
--- a/sources/shiboken6/ApiExtractor/cmake_uninstall.cmake
+++ b/sources/shiboken6/ApiExtractor/cmake_uninstall.cmake
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
IF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
MESSAGE(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\"")
ENDIF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
diff --git a/sources/shiboken6/ApiExtractor/codesnip.cpp b/sources/shiboken6/ApiExtractor/codesnip.cpp
new file mode 100644
index 000000000..e2cd5eb35
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/codesnip.cpp
@@ -0,0 +1,78 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#include "codesnip.h"
+
+#include "qtcompat.h"
+#include "exception.h"
+#include "typedatabase.h"
+
+#include <QtCore/QDebug>
+
+using namespace Qt::StringLiterals;
+
+QString TemplateInstance::expandCode() const
+{
+ const auto templateEntry = TypeDatabase::instance()->findTemplate(m_name);
+ if (!templateEntry) {
+ const QString m = u"<insert-template> referring to non-existing template '"_s
+ + m_name + u"'."_s;
+ throw Exception(m);
+ }
+
+ QString code = templateEntry->code();
+ for (auto it = replaceRules.cbegin(), end = replaceRules.cend(); it != end; ++it)
+ code.replace(it.key(), it.value());
+ while (!code.isEmpty() && code.at(code.size() - 1).isSpace())
+ code.chop(1);
+ QString result = u"// TEMPLATE - "_s + m_name + u" - START"_s;
+ if (!code.startsWith(u'\n'))
+ result += u'\n';
+ result += code;
+ result += u"\n// TEMPLATE - "_s + m_name + u" - END\n"_s;
+ return result;
+}
+
+// ---------------------- CodeSnipFragment
+QString CodeSnipFragment::code() const
+{
+ return m_instance ? m_instance->expandCode() : m_code;
+}
+
+// ---------------------- CodeSnipAbstract
+QString CodeSnipAbstract::code() const
+{
+ QString res;
+ for (const CodeSnipFragment &codeFrag : codeList)
+ res.append(codeFrag.code());
+
+ return res;
+}
+
+void CodeSnipAbstract::addCode(const QString &code)
+{
+ codeList.append(CodeSnipFragment(fixSpaces(code)));
+}
+
+void CodeSnipAbstract::purgeEmptyFragments()
+{
+ auto end = std::remove_if(codeList.begin(), codeList.end(),
+ [](const CodeSnipFragment &f) { return f.isEmpty(); });
+ codeList.erase(end, codeList.end());
+}
+
+QRegularExpression CodeSnipAbstract::placeHolderRegex(int index)
+{
+ return QRegularExpression(u'%' + QString::number(index) + "\\b"_L1);
+}
+
+void purgeEmptyCodeSnips(QList<CodeSnip> *list)
+{
+ for (auto it = list->begin(); it != list->end(); ) {
+ it->purgeEmptyFragments();
+ if (it->isEmpty())
+ it = list->erase(it);
+ else
+ ++it;
+ }
+}
diff --git a/sources/shiboken6/ApiExtractor/codesnip.h b/sources/shiboken6/ApiExtractor/codesnip.h
new file mode 100644
index 000000000..86834a1db
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/codesnip.h
@@ -0,0 +1,107 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef CODESNIP_H
+#define CODESNIP_H
+
+#include "codesniphelpers.h"
+#include "typesystem_enums.h"
+
+#include <QtCore/QList>
+#include <QtCore/QHash>
+#include <QtCore/QString>
+
+#include <memory>
+
+class TemplateInstance
+{
+public:
+ explicit TemplateInstance(const QString &name) : m_name(name) {}
+
+ void addReplaceRule(const QString &name, const QString &value)
+ {
+ replaceRules[name] = value;
+ }
+
+ QString expandCode() const;
+
+ QString name() const
+ {
+ return m_name;
+ }
+
+private:
+ const QString m_name;
+ QHash<QString, QString> replaceRules;
+};
+
+using TemplateInstancePtr = std::shared_ptr<TemplateInstance>;
+
+class CodeSnipFragment
+{
+public:
+ CodeSnipFragment() = default;
+ explicit CodeSnipFragment(const QString &code) : m_code(code) {}
+ explicit CodeSnipFragment(const TemplateInstancePtr &instance) : m_instance(instance) {}
+
+ bool isEmpty() const { return m_code.isEmpty() && !m_instance; }
+
+ QString code() const;
+
+ TemplateInstancePtr instance() const { return m_instance; }
+
+private:
+ QString m_code;
+ std::shared_ptr<TemplateInstance> m_instance;
+};
+
+class CodeSnipAbstract : public CodeSnipHelpers
+{
+public:
+ QString code() const;
+
+ void addCode(const QString &code);
+ void addCode(QStringView code) { addCode(code.toString()); }
+
+ void addTemplateInstance(const TemplateInstancePtr &ti)
+ {
+ codeList.append(CodeSnipFragment(ti));
+ }
+
+ bool isEmpty() const { return codeList.isEmpty(); }
+ void purgeEmptyFragments();
+
+ QList<CodeSnipFragment> codeList;
+
+ static QRegularExpression placeHolderRegex(int index);
+};
+
+class TemplateEntry : public CodeSnipAbstract
+{
+public:
+ explicit TemplateEntry(const QString &name) : m_name(name) {}
+
+ QString name() const
+ {
+ return m_name;
+ }
+
+private:
+ QString m_name;
+};
+
+class CodeSnip : public CodeSnipAbstract
+{
+public:
+ CodeSnip() = default;
+ explicit CodeSnip(TypeSystem::Language lang) : language(lang) {}
+
+ TypeSystem::Language language = TypeSystem::TargetLangCode;
+ TypeSystem::CodeSnipPosition position = TypeSystem::CodeSnipPositionAny;
+};
+
+/// Purge empty fragments and snippets caused by new line characters in
+/// conjunction with <insert-template>.
+void purgeEmptyCodeSnips(QList<CodeSnip> *list);
+
+#endif // CODESNIP_H
diff --git a/sources/shiboken6/ApiExtractor/codesniphelpers.cpp b/sources/shiboken6/ApiExtractor/codesniphelpers.cpp
index f9bae0a65..775cf10af 100644
--- a/sources/shiboken6/ApiExtractor/codesniphelpers.cpp
+++ b/sources/shiboken6/ApiExtractor/codesniphelpers.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "codesniphelpers.h"
@@ -51,9 +26,9 @@ QString CodeSnipHelpers::dedent(const QString &code)
if (code.isEmpty())
return code;
// Right trim if indent=0, or trim if single line
- if (!code.at(0).isSpace() || !code.contains(QLatin1Char('\n')))
+ if (!code.at(0).isSpace() || !code.contains(u'\n'))
return code.trimmed();
- const auto lines = QStringView{code}.split(QLatin1Char('\n'));
+ const auto lines = QStringView{code}.split(u'\n');
int spacesToRemove = std::numeric_limits<int>::max();
for (const auto &line : lines) {
if (!isEmpty(line)) {
@@ -68,35 +43,35 @@ QString CodeSnipHelpers::dedent(const QString &code)
for (const auto &line : lines) {
if (!isEmpty(line) && spacesToRemove < line.size())
result += line.mid(spacesToRemove).toString();
- result += QLatin1Char('\n');
+ result += u'\n';
}
return result;
}
QString CodeSnipHelpers::fixSpaces(QString code)
{
- code.remove(QLatin1Char('\r'));
+ code.remove(u'\r');
// Check for XML <tag>\n<space>bla...
- if (code.startsWith(QLatin1String("\n ")))
+ if (code.startsWith(u"\n "))
code.remove(0, 1);
while (!code.isEmpty() && code.back().isSpace())
code.chop(1);
code = dedent(code);
- if (!code.isEmpty() && !code.endsWith(QLatin1Char('\n')))
- code.append(QLatin1Char('\n'));
+ if (!code.isEmpty() && !code.endsWith(u'\n'))
+ code.append(u'\n');
return code;
}
// Prepend a line to the code, observing indentation
void CodeSnipHelpers::prependCode(QString *code, QString firstLine)
{
- while (!code->isEmpty() && code->front() == QLatin1Char('\n'))
+ while (!code->isEmpty() && code->front() == u'\n')
code->remove(0, 1);
if (!code->isEmpty() && code->front().isSpace()) {
const int indent = firstNonBlank(*code);
- firstLine.prepend(QString(indent, QLatin1Char(' ')));
+ firstLine.prepend(QString(indent, u' '));
}
- if (!firstLine.endsWith(QLatin1Char('\n')))
- firstLine += QLatin1Char('\n');
+ if (!firstLine.endsWith(u'\n'))
+ firstLine += u'\n';
code->prepend(firstLine);
}
diff --git a/sources/shiboken6/ApiExtractor/codesniphelpers.h b/sources/shiboken6/ApiExtractor/codesniphelpers.h
index d7da05ea0..e7a7545da 100644
--- a/sources/shiboken6/ApiExtractor/codesniphelpers.h
+++ b/sources/shiboken6/ApiExtractor/codesniphelpers.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef CODESNIPHELPERS_H
#define CODESNIPHELPERS_H
diff --git a/sources/shiboken6/ApiExtractor/complextypeentry.h b/sources/shiboken6/ApiExtractor/complextypeentry.h
new file mode 100644
index 000000000..5b884f2cc
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/complextypeentry.h
@@ -0,0 +1,179 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef COMPLEXTYPEENTRY_H
+#define COMPLEXTYPEENTRY_H
+
+#include "configurabletypeentry.h"
+#include "typesystem_enums.h"
+#include "modifications_typedefs.h"
+#include "pymethoddefentry.h"
+
+#include <QtCore/QSet>
+
+class ComplexTypeEntryPrivate;
+
+struct TypeSystemPyMethodDefEntry : public PyMethodDefEntry
+{
+ QStringList signatures;
+};
+
+struct TypeSystemProperty
+{
+ bool isValid() const { return !name.isEmpty() && !read.isEmpty() && !type.isEmpty(); }
+
+ QString type;
+ QString name;
+ QString read;
+ QString write;
+ QString reset;
+ QString designable;
+ QString notify; // Q_PROPERTY/C++ only
+ // Indicates whether actual code is generated instead of relying on libpyside.
+ bool generateGetSetDef = false;
+};
+
+class ComplexTypeEntry : public ConfigurableTypeEntry
+{
+public:
+ enum TypeFlag {
+ DisableWrapper = 0x1,
+ Deprecated = 0x4,
+ ForceAbstract = 0x8,
+ // Indicates that the instances are used to create hierarchies
+ // like widgets; parent ownership heuristics are enabled for them.
+ ParentManagement = 0x10,
+ DisableQtMetaObjectFunctions = 0x20,
+ Typedef = 0x40 // Result of a <typedef-type>
+ };
+ Q_DECLARE_FLAGS(TypeFlags, TypeFlag)
+
+ enum CopyableFlag {
+ CopyableSet,
+ NonCopyableSet,
+ Unknown
+ };
+
+ explicit ComplexTypeEntry(const QString &entryName, Type t, const QVersionNumber &vr,
+ const TypeEntryCPtr &parent);
+
+ bool isComplex() const override;
+
+ TypeFlags typeFlags() const;
+ void setTypeFlags(TypeFlags flags);
+
+ // Override command line options to generate nb_bool from
+ // operator bool or method isNull().
+ TypeSystem::BoolCast operatorBoolMode() const;
+ void setOperatorBoolMode(TypeSystem::BoolCast b);
+ TypeSystem::BoolCast isNullMode() const;
+ void setIsNullMode(TypeSystem::BoolCast b);
+
+ FunctionModificationList functionModifications() const;
+ void setFunctionModifications(const FunctionModificationList &functionModifications);
+ void addFunctionModification(const FunctionModification &functionModification);
+ FunctionModificationList functionModifications(const QStringList &signatures) const;
+
+ const CodeSnipList &codeSnips() const;
+ CodeSnipList &codeSnips();
+ void setCodeSnips(const CodeSnipList &codeSnips);
+ void addCodeSnip(const CodeSnip &codeSnip);
+
+ void setDocModification(const DocModificationList& docMods);
+ /// Class documentation modifications
+ DocModificationList docModifications() const;
+ /// Function documentation modifications (matching signature)
+ DocModificationList functionDocModifications() const;
+
+ /// Extra includes for function arguments determined by the meta builder.
+ const IncludeList &argumentIncludes() const;
+ void addArgumentInclude(const Include &newInclude);
+
+ AddedFunctionList addedFunctions() const;
+ void setAddedFunctions(const AddedFunctionList &addedFunctions);
+ void addNewFunction(const AddedFunctionPtr &addedFunction);
+
+ const QList<TypeSystemPyMethodDefEntry> &addedPyMethodDefEntrys() const;
+ void addPyMethodDef(const TypeSystemPyMethodDefEntry &p);
+
+ // Functions specified in the "generate-functions" attribute
+ const QSet<QString> &generateFunctions() const;
+ void setGenerateFunctions(const QSet<QString> &f);
+
+ void setFieldModifications(const FieldModificationList &mods);
+ FieldModificationList fieldModifications() const;
+
+ const QList<TypeSystemProperty> &properties() const;
+ void addProperty(const TypeSystemProperty &p);
+
+ QString defaultSuperclass() const;
+ void setDefaultSuperclass(const QString &sc);
+
+ QString qualifiedCppName() const override;
+
+ void setIsPolymorphicBase(bool on);
+ bool isPolymorphicBase() const;
+
+ void setPolymorphicIdValue(const QString &value);
+ QString polymorphicIdValue() const;
+
+ QString polymorphicNameFunction() const;
+ void setPolymorphicNameFunction(const QString &n);
+
+ QString targetType() const;
+ void setTargetType(const QString &code);
+
+ bool isGenericClass() const;
+ void setGenericClass(bool isGeneric);
+
+ bool deleteInMainThread() const;
+ void setDeleteInMainThread(bool d);
+
+ CopyableFlag copyable() const;
+ void setCopyable(CopyableFlag flag);
+
+ TypeSystem::QtMetaTypeRegistration qtMetaTypeRegistration() const;
+ void setQtMetaTypeRegistration(TypeSystem::QtMetaTypeRegistration r);
+
+ QString hashFunction() const;
+ void setHashFunction(const QString &hashFunction);
+
+ void setBaseContainerType(const ComplexTypeEntryCPtr &baseContainer);
+
+ ComplexTypeEntryCPtr baseContainerType() const;
+
+ TypeSystem::ExceptionHandling exceptionHandling() const;
+ void setExceptionHandling(TypeSystem::ExceptionHandling e);
+
+ TypeSystem::AllowThread allowThread() const;
+ void setAllowThread(TypeSystem::AllowThread allowThread);
+
+ QString defaultConstructor() const;
+ void setDefaultConstructor(const QString& defaultConstructor);
+ bool hasDefaultConstructor() const;
+
+ TypeEntry *clone() const override;
+
+ void useAsTypedef(const ComplexTypeEntryCPtr &source);
+
+ TypeSystem::SnakeCase snakeCase() const;
+ void setSnakeCase(TypeSystem::SnakeCase sc);
+
+ // Determined by AbstractMetaBuilder from the code model.
+ bool isValueTypeWithCopyConstructorOnly() const;
+ void setValueTypeWithCopyConstructorOnly(bool v);
+
+ // FIXME PYSIDE 7: Remove this
+ static bool isParentManagementEnabled();
+ static void setParentManagementEnabled(bool e);
+
+#ifndef QT_NO_DEBUG_STREAM
+ void formatDebug(QDebug &debug) const override;
+#endif
+protected:
+ explicit ComplexTypeEntry(ComplexTypeEntryPrivate *d);
+};
+
+Q_DECLARE_OPERATORS_FOR_FLAGS(ComplexTypeEntry::TypeFlags)
+
+#endif // COMPLEXTYPEENTRY_H
diff --git a/sources/shiboken6/ApiExtractor/conditionalstreamreader.cpp b/sources/shiboken6/ApiExtractor/conditionalstreamreader.cpp
index 20209769a..b6eda651c 100644
--- a/sources/shiboken6/ApiExtractor/conditionalstreamreader.cpp
+++ b/sources/shiboken6/ApiExtractor/conditionalstreamreader.cpp
@@ -1,36 +1,13 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "conditionalstreamreader.h"
#include <QtCore/QDebug>
#include <QtCore/QHash>
+using namespace Qt::StringLiterals;
+
// ProxyEntityResolver proxies a QXmlStreamEntityResolver set by the user
// on ConditionalStreamReader and stores entity definitions from the
// <?entity name value?> processing instruction in a cache
@@ -151,7 +128,7 @@ bool ConditionalStreamReader::readEntityDefinitonPi()
const auto data = m_reader.processingInstructionData();
const auto separator = data.indexOf(u' ');
if (separator <= 0 || separator == data.size() - 1) {
- m_reader.raiseError(u"Malformed entity definition: "_qs + data.toString());
+ m_reader.raiseError(u"Malformed entity definition: "_s + data.toString());
return false;
}
defineEntity(data.left(separator).toString(),
@@ -188,15 +165,15 @@ QStringList ConditionalStreamReader::platformConditions()
{
QStringList result;
#if defined (Q_OS_UNIX)
- result << QStringLiteral("unix");
+ result << "unix"_L1;
#endif
#if defined (Q_OS_LINUX)
- result << QStringLiteral("linux");
+ result << "linux"_L1;
#elif defined (Q_OS_MACOS)
- result << QStringLiteral("darwin");
+ result << "darwin"_L1;
#elif defined (Q_OS_WINDOWS)
- result << QStringLiteral("windows");
+ result << "windows"_L1;
#endif
return result;
}
diff --git a/sources/shiboken6/ApiExtractor/conditionalstreamreader.h b/sources/shiboken6/ApiExtractor/conditionalstreamreader.h
index db86ac1e6..730697525 100644
--- a/sources/shiboken6/ApiExtractor/conditionalstreamreader.h
+++ b/sources/shiboken6/ApiExtractor/conditionalstreamreader.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef CONDITIONALSTREAMREADER_H
#define CONDITIONALSTREAMREADER_H
@@ -51,6 +26,8 @@ class ProxyEntityResolver;
class ConditionalStreamReader
{
public:
+ Q_DISABLE_COPY_MOVE(ConditionalStreamReader)
+
using TokenType = QXmlStreamReader::TokenType;
explicit ConditionalStreamReader(QIODevice *iod);
explicit ConditionalStreamReader(const QString &s);
diff --git a/sources/shiboken6/ApiExtractor/configurabletypeentry.h b/sources/shiboken6/ApiExtractor/configurabletypeentry.h
new file mode 100644
index 000000000..59522e16c
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/configurabletypeentry.h
@@ -0,0 +1,28 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef CONFIGURABLETYPEENTRY_H
+#define CONFIGURABLETYPEENTRY_H
+
+#include "typesystem.h"
+
+class ConfigurableTypeEntryPrivate;
+
+class ConfigurableTypeEntry : public TypeEntry
+{
+public:
+ explicit ConfigurableTypeEntry(const QString &entryName, Type t,
+ const QVersionNumber &vr,
+ const TypeEntryCPtr &parent);
+
+ TypeEntry *clone() const override;
+
+ QString configCondition() const;
+ void setConfigCondition(const QString &c);
+ bool hasConfigCondition() const;
+
+protected:
+ explicit ConfigurableTypeEntry(ConfigurableTypeEntryPrivate *d);
+};
+
+#endif // CONFIGURABLETYPEENTRY_H
diff --git a/sources/shiboken6/ApiExtractor/constantvaluetypeentry.h b/sources/shiboken6/ApiExtractor/constantvaluetypeentry.h
new file mode 100644
index 000000000..a16a7ad12
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/constantvaluetypeentry.h
@@ -0,0 +1,23 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef CONSTANTVALUETYPEENTRY_H
+#define CONSTANTVALUETYPEENTRY_H
+
+#include "typesystem.h"
+
+// For primitive values, typically to provide a dummy type for
+// example the '2' in non-type template 'Array<2>'.
+class ConstantValueTypeEntry : public TypeEntry
+{
+public:
+ explicit ConstantValueTypeEntry(const QString& name,
+ const TypeEntryCPtr &parent);
+
+ TypeEntry *clone() const override;
+
+protected:
+ explicit ConstantValueTypeEntry(TypeEntryPrivate *d);
+};
+
+#endif // CONSTANTVALUETYPEENTRY_H
diff --git a/sources/shiboken6/ApiExtractor/containertypeentry.h b/sources/shiboken6/ApiExtractor/containertypeentry.h
new file mode 100644
index 000000000..b2003816b
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/containertypeentry.h
@@ -0,0 +1,63 @@
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef CONTAINERTYPEENTRY_H
+#define CONTAINERTYPEENTRY_H
+
+#include "complextypeentry.h"
+#include "customconversion_typedefs.h"
+
+class ContainerTypeEntryPrivate;
+
+struct OpaqueContainer // Generate an opaque container for an instantiation under name
+{
+ QStringList instantiations;
+ QString name;
+
+ QString templateParameters() const;
+};
+
+using OpaqueContainers = QList<OpaqueContainer>;
+
+class ContainerTypeEntry : public ComplexTypeEntry
+{
+public:
+
+ enum ContainerKind {
+ ListContainer,
+ SetContainer,
+ MapContainer,
+ MultiMapContainer,
+ PairContainer,
+ SpanContainer, // Fixed size
+ };
+
+ explicit ContainerTypeEntry(const QString &entryName, ContainerKind containerKind,
+ const QVersionNumber &vr, const TypeEntryCPtr &parent);
+
+ ContainerKind containerKind() const;
+
+ /// Number of template parameters (except allocators)
+ qsizetype templateParameterCount() const;
+
+ const OpaqueContainers &opaqueContainers() const;
+ void appendOpaqueContainers(const OpaqueContainers &l);
+ bool generateOpaqueContainer(const QStringList &instantiations) const;
+ QString opaqueContainerName(const QStringList &instantiations) const;
+
+ bool hasCustomConversion() const;
+ void setCustomConversion(const CustomConversionPtr &customConversion);
+ CustomConversionPtr customConversion() const;
+
+ TypeEntry *clone() const override;
+
+#ifndef QT_NO_DEBUG_STREAM
+ void formatDebug(QDebug &d) const override;
+#endif
+protected:
+ explicit ContainerTypeEntry(ContainerTypeEntryPrivate *d);
+};
+
+QDebug operator<<(QDebug d, const OpaqueContainer &oc);
+
+#endif // CONTAINERTYPEENTRY_H
diff --git a/sources/shiboken6/ApiExtractor/customconversion.cpp b/sources/shiboken6/ApiExtractor/customconversion.cpp
new file mode 100644
index 000000000..4cfd1b974
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/customconversion.cpp
@@ -0,0 +1,197 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#include "customconversion.h"
+#include "containertypeentry.h"
+#include "customtypenentry.h"
+#include "primitivetypeentry.h"
+#include "valuetypeentry.h"
+
+#include <QtCore/qdebug.h>
+
+using namespace Qt::StringLiterals;
+
+CustomConversion::CustomConversion(const TypeEntryCPtr &ownerType) :
+ m_ownerType(ownerType)
+{
+}
+
+TypeEntryCPtr CustomConversion::ownerType() const
+{
+ return m_ownerType;
+}
+
+QString CustomConversion::nativeToTargetConversion() const
+{
+ return m_nativeToTargetConversion;
+}
+
+void CustomConversion::setNativeToTargetConversion(const QString &nativeToTargetConversion)
+{
+ m_nativeToTargetConversion = nativeToTargetConversion;
+}
+
+bool CustomConversion::replaceOriginalTargetToNativeConversions() const
+{
+ return m_replaceOriginalTargetToNativeConversions;
+}
+
+void CustomConversion::setReplaceOriginalTargetToNativeConversions(bool r)
+{
+ m_replaceOriginalTargetToNativeConversions = r;
+}
+
+bool CustomConversion::hasTargetToNativeConversions() const
+{
+ return !(m_targetToNativeConversions.isEmpty());
+}
+
+TargetToNativeConversions &CustomConversion::targetToNativeConversions()
+{
+ return m_targetToNativeConversions;
+}
+
+const TargetToNativeConversions &CustomConversion::targetToNativeConversions() const
+{
+ return m_targetToNativeConversions;
+}
+
+void CustomConversion::addTargetToNativeConversion(const QString &sourceTypeName,
+ const QString &sourceTypeCheck,
+ const QString &conversion)
+{
+ m_targetToNativeConversions.append(TargetToNativeConversion(sourceTypeName,
+ sourceTypeCheck,
+ conversion));
+}
+
+TargetToNativeConversion::TargetToNativeConversion(const QString &sourceTypeName,
+ const QString &sourceTypeCheck,
+ const QString &conversion) :
+ m_sourceTypeName(sourceTypeName), m_sourceTypeCheck(sourceTypeCheck),
+ m_conversion(conversion)
+{
+}
+
+TypeEntryCPtr TargetToNativeConversion::sourceType() const
+{
+ return m_sourceType;
+}
+
+void TargetToNativeConversion::setSourceType(const TypeEntryCPtr &sourceType)
+{
+ m_sourceType = sourceType;
+}
+
+bool TargetToNativeConversion::isCustomType() const
+{
+ return m_sourceType == nullptr;
+}
+
+QString TargetToNativeConversion::sourceTypeName() const
+{
+ return m_sourceTypeName;
+}
+
+QString TargetToNativeConversion::sourceTypeCheck() const
+{
+ if (!m_sourceTypeCheck.isEmpty())
+ return m_sourceTypeCheck;
+
+ if (m_sourceType != nullptr && m_sourceType->isCustom()) {
+ const auto cte = std::static_pointer_cast<const CustomTypeEntry>(m_sourceType);
+ if (cte->hasCheckFunction()) {
+ QString result = cte->checkFunction();
+ if (result != u"true") // For PyObject, which is always true
+ result += u"(%in)"_s;
+ return result;
+ }
+ }
+
+ return {};
+}
+
+QString TargetToNativeConversion::conversion() const
+{
+ return m_conversion;
+}
+
+void TargetToNativeConversion::setConversion(const QString &conversion)
+{
+ m_conversion = conversion;
+}
+
+void TargetToNativeConversion::formatDebug(QDebug &debug) const
+{
+ debug << "(source=\"" << m_sourceTypeName << '"';
+ if (debug.verbosity() > 2)
+ debug << ", conversion=\"" << m_conversion << '"';
+ if (isCustomType())
+ debug << ", [custom]";
+ debug << ')';
+}
+
+CustomConversionPtr CustomConversion::getCustomConversion(const TypeEntryCPtr &type)
+{
+ if (type->isPrimitive())
+ return std::static_pointer_cast<const PrimitiveTypeEntry>(type)->customConversion();
+ if (type->isContainer())
+ return std::static_pointer_cast<const ContainerTypeEntry>(type)->customConversion();
+ if (type->isValue())
+ return std::static_pointer_cast<const ValueTypeEntry>(type)->customConversion();
+ return {};
+}
+
+void CustomConversion::formatDebug(QDebug &debug) const
+{
+ debug << "(owner=\"" << m_ownerType->qualifiedCppName() << '"';
+ if (!m_nativeToTargetConversion.isEmpty())
+ debug << ", nativeToTargetConversion=\"" << m_nativeToTargetConversion << '"';
+ if (!m_targetToNativeConversions.isEmpty()) {
+ debug << ", targetToNativeConversions=[";
+ for (qsizetype i = 0, size = m_targetToNativeConversions.size(); i < size; ++i) {
+ if (i)
+ debug << ", ";
+ debug << m_targetToNativeConversions.at(i);
+
+ }
+ debug << ']';
+ }
+ if (m_replaceOriginalTargetToNativeConversions)
+ debug << ", [replaceOriginalTargetToNativeConversions]";
+ debug << ')';
+}
+
+QDebug operator<<(QDebug debug, const TargetToNativeConversion &t)
+{
+ QDebugStateSaver saver(debug);
+ debug.noquote();
+ debug.nospace();
+ debug << "TargetToNativeConversion";
+ t.formatDebug(debug);
+ return debug;
+}
+
+QDebug operator<<(QDebug debug, const CustomConversion &c)
+{
+ QDebugStateSaver saver(debug);
+ debug.noquote();
+ debug.nospace();
+ debug << "CustomConversion";
+ c.formatDebug(debug);
+ return debug;
+}
+
+QDebug operator<<(QDebug debug, const CustomConversionPtr &cptr)
+{
+ QDebugStateSaver saver(debug);
+ debug.noquote();
+ debug.nospace();
+ debug << "CustomConversionPtr";
+ if (auto *c = cptr.get()) {
+ c->formatDebug(debug);
+ } else {
+ debug << "(0)";
+ }
+ return debug;
+}
diff --git a/sources/shiboken6/ApiExtractor/customconversion.h b/sources/shiboken6/ApiExtractor/customconversion.h
new file mode 100644
index 000000000..fd0a67759
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/customconversion.h
@@ -0,0 +1,81 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef CUSTOMCONVERSION_H
+#define CUSTOMCONVERSION_H
+
+#include "customconversion_typedefs.h"
+#include "typesystem_typedefs.h"
+
+#include <QtCore/QList>
+#include <QtCore/QString>
+
+QT_FORWARD_DECLARE_CLASS(QDebug)
+
+class TypeEntry;
+
+class TargetToNativeConversion
+{
+public:
+ explicit TargetToNativeConversion(const QString &sourceTypeName,
+ const QString &sourceTypeCheck,
+ const QString &conversion = {});
+
+ TypeEntryCPtr sourceType() const;
+ void setSourceType(const TypeEntryCPtr &sourceType);
+ bool isCustomType() const;
+ QString sourceTypeName() const;
+ QString sourceTypeCheck() const;
+ QString conversion() const;
+ void setConversion(const QString &conversion);
+
+ void formatDebug(QDebug &d) const;
+
+private:
+ TypeEntryCPtr m_sourceType;
+ QString m_sourceTypeName;
+ QString m_sourceTypeCheck;
+ QString m_conversion;
+};
+
+using TargetToNativeConversions = QList<TargetToNativeConversion>;
+
+class CustomConversion
+{
+public:
+ explicit CustomConversion(const TypeEntryCPtr &ownerType);
+
+ TypeEntryCPtr ownerType() const;
+ QString nativeToTargetConversion() const;
+ void setNativeToTargetConversion(const QString &nativeToTargetConversion);
+
+ /// Returns true if the target to C++ custom conversions should
+ /// replace the original existing ones, and false if the custom
+ /// conversions should be added to the original.
+ bool replaceOriginalTargetToNativeConversions() const;
+ void setReplaceOriginalTargetToNativeConversions(bool r);
+
+ bool hasTargetToNativeConversions() const;
+ TargetToNativeConversions &targetToNativeConversions();
+ const TargetToNativeConversions &targetToNativeConversions() const;
+ void addTargetToNativeConversion(const QString &sourceTypeName,
+ const QString &sourceTypeCheck,
+ const QString &conversion = QString());
+
+ /// Return the custom conversion of a type; helper for type system parser
+ static CustomConversionPtr getCustomConversion(const TypeEntryCPtr &type);
+
+ void formatDebug(QDebug &debug) const;
+
+private:
+ TypeEntryCPtr m_ownerType;
+ QString m_nativeToTargetConversion;
+ TargetToNativeConversions m_targetToNativeConversions;
+ bool m_replaceOriginalTargetToNativeConversions = false;
+};
+
+QDebug operator<<(QDebug debug, const TargetToNativeConversion &t);
+QDebug operator<<(QDebug debug, const CustomConversion &c);
+QDebug operator<<(QDebug debug, const CustomConversionPtr &cptr);
+
+#endif // CUSTOMCONVERSION_H
diff --git a/sources/shiboken6/ApiExtractor/customconversion_typedefs.h b/sources/shiboken6/ApiExtractor/customconversion_typedefs.h
new file mode 100644
index 000000000..6528f7d7b
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/customconversion_typedefs.h
@@ -0,0 +1,14 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef CUSTOMCONVERSION_TYPEDEFS_H
+#define CUSTOMCONVERSION_TYPEDEFS_H
+
+#include <QtCore/QList>
+
+#include <memory>
+
+class CustomConversion;
+using CustomConversionPtr = std::shared_ptr<CustomConversion>;
+
+#endif // CUSTOMCONVERSION_TYPEDEFS_H
diff --git a/sources/shiboken6/ApiExtractor/customtypenentry.h b/sources/shiboken6/ApiExtractor/customtypenentry.h
new file mode 100644
index 000000000..a57bb858f
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/customtypenentry.h
@@ -0,0 +1,30 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef CUSTOMTYPENENTRY_H
+#define CUSTOMTYPENENTRY_H
+
+#include "typesystem.h"
+
+class CustomTypeEntry : public TypeEntry
+{
+public:
+ explicit CustomTypeEntry(const QString &entryName, const QVersionNumber &vr,
+ const TypeEntryCPtr &parent);
+
+ TypeEntry *clone() const override;
+
+ bool hasCheckFunction() const;
+ QString checkFunction() const;
+ void setCheckFunction(const QString &f);
+
+#ifndef QT_NO_DEBUG_STREAM
+ void formatDebug(QDebug &d) const override;
+#endif
+
+protected:
+ explicit CustomTypeEntry(TypeEntryPrivate *d);
+};
+
+
+#endif // CUSTOMTYPENENTRY_H
diff --git a/sources/shiboken6/ApiExtractor/debughelpers_p.h b/sources/shiboken6/ApiExtractor/debughelpers_p.h
new file mode 100644
index 000000000..81ebbb3b9
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/debughelpers_p.h
@@ -0,0 +1,56 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef DEBUGHELPERS_P_H
+#define DEBUGHELPERS_P_H
+
+#include <QtCore/QDebug>
+#include <memory>
+
+template <class T>
+inline QDebug operator<<(QDebug debug, const std::shared_ptr<T> &ptr)
+{
+ QDebugStateSaver saver(debug);
+ debug.nospace();
+ debug << "std::shared_ptr(" << ptr.get() << ")";
+ return debug;
+}
+
+template <class It>
+inline void formatSequence(QDebug &d, It i1, It i2,
+ const char *separator=", ")
+{
+ for (It i = i1; i != i2; ++i) {
+ if (i != i1)
+ d << separator;
+ d << *i;
+ }
+}
+
+template <class It>
+inline static void formatPtrSequence(QDebug &d, It i1, It i2,
+ const char *separator=", ")
+{
+ for (It i = i1; i != i2; ++i) {
+ if (i != i1)
+ d << separator;
+ d << i->get();
+ }
+}
+
+template <class Container>
+static void formatList(QDebug &d, const char *name, const Container &c,
+ const char *separator=", ")
+{
+ if (const auto size = c.size()) {
+ d << ", " << name << '[' << size << "]=(";
+ for (qsizetype i = 0; i < size; ++i) {
+ if (i)
+ d << separator;
+ d << c.at(i);
+ }
+ d << ')';
+ }
+}
+
+#endif // DEBUGHELPERS_P_H
diff --git a/sources/shiboken6/ApiExtractor/dependency.h b/sources/shiboken6/ApiExtractor/dependency.h
index ee6301525..aa280de03 100644
--- a/sources/shiboken6/ApiExtractor/dependency.h
+++ b/sources/shiboken6/ApiExtractor/dependency.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef DEPENDENCY_H
#define DEPENDENCY_H
@@ -38,8 +13,8 @@
class AbstractMetaClass;
struct Dependency {
- AbstractMetaClass *parent;
- AbstractMetaClass *child;
+ AbstractMetaClassPtr parent;
+ AbstractMetaClassPtr child;
};
using Dependencies = QList<Dependency>;
diff --git a/sources/shiboken6/ApiExtractor/docparser.cpp b/sources/shiboken6/ApiExtractor/docparser.cpp
index 9445adf81..468fe1098 100644
--- a/sources/shiboken6/ApiExtractor/docparser.cpp
+++ b/sources/shiboken6/ApiExtractor/docparser.cpp
@@ -1,44 +1,25 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
#include "docparser.h"
+#include "abstractmetaargument.h"
#include "abstractmetaenum.h"
-#include "abstractmetafield.h"
#include "abstractmetafunction.h"
#include "abstractmetalang.h"
+#include "abstractmetatype.h"
#include "messages.h"
#include "modifications.h"
#include "reporthandler.h"
-#include "typesystem.h"
+#include "enumtypeentry.h"
+#include "complextypeentry.h"
#include "xmlutils.h"
+
+#include <QtCore/QBuffer>
#include <QtCore/QDebug>
#include <QtCore/QDir>
#include <QtCore/QTextStream>
-#include <QBuffer>
+
+#include "qtcompat.h"
#include <cstdlib>
#ifdef HAVE_LIBXSLT
@@ -48,15 +29,39 @@
#include <algorithm>
-DocParser::DocParser()
+using namespace Qt::StringLiterals;
+
+static inline bool isXpathDocModification(const DocModification &mod)
{
-#ifdef HAVE_LIBXSLT
- xmlSubstituteEntitiesDefault(1);
-#endif
+ return mod.mode() == TypeSystem::DocModificationXPathReplace;
}
+static inline bool isNotXpathDocModification(const DocModification &mod)
+{
+ return mod.mode() != TypeSystem::DocModificationXPathReplace;
+}
+
+static void removeXpathDocModifications(DocModificationList *l)
+{
+ l->erase(std::remove_if(l->begin(), l->end(), isXpathDocModification), l->end());
+}
+
+static void removeNonXpathDocModifications(DocModificationList *l)
+{
+ l->erase(std::remove_if(l->begin(), l->end(), isNotXpathDocModification), l->end());
+}
+
+DocParser::DocParser() = default;
DocParser::~DocParser() = default;
+void DocParser::fillGlobalFunctionDocumentation(const AbstractMetaFunctionPtr &)
+{
+}
+
+void DocParser::fillGlobalEnumDocumentation(AbstractMetaEnum &)
+{
+}
+
QString DocParser::getDocumentation(const XQueryPtr &xquery, const QString& query,
const DocModificationList& mods)
{
@@ -73,9 +78,16 @@ QString DocParser::execXQuery(const XQueryPtr &xquery, const QString& query)
return result;
}
+static bool usesRValueReference(const AbstractMetaArgument &a)
+{
+ return a.type().referenceType() == RValueReference;
+}
+
bool DocParser::skipForQuery(const AbstractMetaFunctionCPtr &func)
{
// Skip private functions and copies created by AbstractMetaClass::fixFunctions()
+ // Note: Functions inherited from templates will cause warnings about missing
+ // documentation, but they should at least be listed.
if (!func || func->isPrivate()
|| func->attributes().testFlag(AbstractMetaFunction::AddedMethod)
|| func->isModifiedRemoved()
@@ -91,25 +103,95 @@ bool DocParser::skipForQuery(const AbstractMetaFunctionCPtr &func)
default:
break;
}
- return false;
+
+ return std::any_of(func->arguments().cbegin(), func->arguments().cend(),
+ usesRValueReference);
}
-AbstractMetaFunctionCList DocParser::documentableFunctions(const AbstractMetaClass *metaClass)
+DocModificationList DocParser::getDocModifications(const AbstractMetaClassCPtr &cppClass)
+
{
- auto result = metaClass->functionsInTargetLang();
- for (int i = result.size() - 1; i >= 0; --i) {
- if (DocParser::skipForQuery(result.at(i)) || result.at(i)->isUserAdded())
- result.removeAt(i);
+ auto result = cppClass->typeEntry()->docModifications();
+ removeXpathDocModifications(&result);
+ return result;
+}
+
+static void filterBySignature(const AbstractMetaFunctionCPtr &func, DocModificationList *l)
+{
+ if (!l->isEmpty()) {
+ const QString minimalSignature = func->minimalSignature();
+ const auto filter = [&minimalSignature](const DocModification &mod) {
+ return mod.signature() != minimalSignature;
+ };
+ l->erase(std::remove_if(l->begin(), l->end(), filter), l->end());
+ }
+}
+
+DocModificationList DocParser::getDocModifications(const AbstractMetaFunctionCPtr &func,
+ const AbstractMetaClassCPtr &cppClass)
+{
+ DocModificationList result;
+ if (func->isUserAdded()) {
+ result = func->addedFunctionDocModifications();
+ removeXpathDocModifications(&result);
+ } else if (cppClass != nullptr) {
+ result = cppClass->typeEntry()->functionDocModifications();
+ removeXpathDocModifications(&result);
+ filterBySignature(func, &result);
}
return result;
}
-static inline bool isXpathDocModification(const DocModification &mod)
+DocModificationList DocParser::getXpathDocModifications(const AbstractMetaClassCPtr &cppClass)
{
- return mod.mode() == TypeSystem::DocModificationXPathReplace;
+ auto result = cppClass->typeEntry()->docModifications();
+ removeNonXpathDocModifications(&result);
+ return result;
+}
+
+DocModificationList DocParser::getXpathDocModifications(const AbstractMetaFunctionCPtr &func,
+ const AbstractMetaClassCPtr &cppClass)
+{
+ DocModificationList result;
+ if (func->isUserAdded()) {
+ result = func->addedFunctionDocModifications();
+ removeNonXpathDocModifications(&result);
+ } else if (cppClass != nullptr) {
+ result = cppClass->typeEntry()->functionDocModifications();
+ removeNonXpathDocModifications(&result);
+ filterBySignature(func, &result);
+ }
+ return result;
}
-QString DocParser::applyDocModifications(const DocModificationList& mods, const QString& xml)
+QString DocParser::enumBaseClass(const AbstractMetaEnum &e)
+{
+ switch (e.typeEntry()->pythonEnumType()) {
+ case TypeSystem::PythonEnumType::IntEnum:
+ return u"IntEnum"_s;
+ case TypeSystem::PythonEnumType::Flag:
+ return u"Flag"_s;
+ case TypeSystem::PythonEnumType::IntFlag:
+ return u"IntFlag"_s;
+ default:
+ break;
+ }
+ return e.typeEntry()->flags() != nullptr ? u"Flag"_s : u"Enum"_s;
+}
+
+AbstractMetaFunctionCList DocParser::documentableFunctions(const AbstractMetaClassCPtr &metaClass)
+{
+ auto result = metaClass->functionsInTargetLang();
+ for (auto i = result.size() - 1; i >= 0; --i) {
+ if (DocParser::skipForQuery(result.at(i)) || result.at(i)->isUserAdded())
+ result.removeAt(i);
+ }
+ result.append(metaClass->cppSignalFunctions());
+ return result;
+}
+
+QString DocParser::applyDocModifications(const DocModificationList& xpathMods,
+ const QString& xml)
{
const char xslPrefix[] =
R"(<xsl:template match="/">
@@ -123,32 +205,28 @@ R"(<xsl:template match="/">
</xsl:template>
)";
- if (mods.isEmpty() || xml.isEmpty()
- || !std::any_of(mods.cbegin(), mods.cend(), isXpathDocModification)) {
+ if (xpathMods.isEmpty() || xml.isEmpty())
return xml;
- }
- QString xsl = QLatin1String(xslPrefix);
- for (const DocModification &mod : mods) {
- if (isXpathDocModification(mod)) {
- QString xpath = mod.xpath();
- xpath.replace(QLatin1Char('"'), QLatin1String("&quot;"));
- xsl += QLatin1String("<xsl:template match=\"")
- + xpath + QLatin1String("\">")
- + mod.code() + QLatin1String("</xsl:template>\n");
- }
+ QString xsl = QLatin1StringView(xslPrefix);
+ for (const DocModification &mod : xpathMods) {
+ Q_ASSERT(isXpathDocModification(mod));
+ QString xpath = mod.xpath();
+ xpath.replace(u'"', u"&quot;"_s);
+ xsl += "<xsl:template match=\""_L1 + xpath + "\">"_L1
+ + mod.code() + "</xsl:template>\n"_L1;
}
QString errorMessage;
const QString result = xsl_transform(xml, xsl, &errorMessage);
if (!errorMessage.isEmpty())
qCWarning(lcShibokenDoc, "%s",
- qPrintable(msgXpathDocModificationError(mods, errorMessage)));
+ qPrintable(msgXpathDocModificationError(xpathMods, errorMessage)));
if (result == xml) {
- const QString message = QLatin1String("Query did not result in any modifications to \"")
- + xml + QLatin1Char('"');
+ const QString message = u"Query did not result in any modifications to \""_s
+ + xml + u'"';
qCWarning(lcShibokenDoc, "%s",
- qPrintable(msgXpathDocModificationError(mods, message)));
+ qPrintable(msgXpathDocModificationError(xpathMods, message)));
}
return result;
}
diff --git a/sources/shiboken6/ApiExtractor/docparser.h b/sources/shiboken6/ApiExtractor/docparser.h
index 206370bca..6d458b25a 100644
--- a/sources/shiboken6/ApiExtractor/docparser.h
+++ b/sources/shiboken6/ApiExtractor/docparser.h
@@ -1,38 +1,14 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef DOCPARSER_H
#define DOCPARSER_H
-#include "typesystem_typedefs.h"
#include "abstractmetalang_typedefs.h"
+#include "modifications_typedefs.h"
#include <QtCore/QString>
-#include <QtCore/QSharedPointer>
+
+#include <memory>
class AbstractMetaClass;
class DocModification;
@@ -40,16 +16,20 @@ class Documentation;
class XQuery;
+struct FunctionDocumentation;
+
class DocParser
{
public:
- Q_DISABLE_COPY(DocParser)
+ Q_DISABLE_COPY_MOVE(DocParser)
- using XQueryPtr = QSharedPointer<XQuery>;
+ using XQueryPtr = std::shared_ptr<XQuery>;
DocParser();
virtual ~DocParser();
- virtual void fillDocumentation(AbstractMetaClass* metaClass) = 0;
+ virtual void fillDocumentation(const AbstractMetaClassPtr &metaClass) = 0;
+ virtual void fillGlobalFunctionDocumentation(const AbstractMetaFunctionPtr &f);
+ virtual void fillGlobalEnumDocumentation(AbstractMetaEnum &e);
/**
* Process and retrieves documentation concerning the entire
@@ -114,12 +94,25 @@ public:
static bool skipForQuery(const AbstractMetaFunctionCPtr &func);
+ /// Helper to return the documentation modifications for a class
+ /// or a member function.
+ static DocModificationList getDocModifications(const AbstractMetaClassCPtr &cppClass);
+ static DocModificationList getDocModifications(const AbstractMetaFunctionCPtr &func,
+ const AbstractMetaClassCPtr &cppClass = {});
+ static DocModificationList getXpathDocModifications(const AbstractMetaClassCPtr &cppClass);
+ static DocModificationList getXpathDocModifications(const AbstractMetaFunctionCPtr &func,
+ const AbstractMetaClassCPtr &cppClass = {});
+
+ static QString enumBaseClass(const AbstractMetaEnum &e);
+
protected:
static QString getDocumentation(const XQueryPtr &xquery,
const QString &query,
const DocModificationList &mods);
- static AbstractMetaFunctionCList documentableFunctions(const AbstractMetaClass *metaClass);
+ static AbstractMetaFunctionCList documentableFunctions(const AbstractMetaClassCPtr &metaClass);
+
+ static QString applyDocModifications(const DocModificationList &xpathMods, const QString &xml);
private:
QString m_packageName;
@@ -127,7 +120,6 @@ private:
QString m_libSourceDir;
static QString execXQuery(const XQueryPtr &xquery, const QString &query) ;
- static QString applyDocModifications(const DocModificationList &mods, const QString &xml) ;
};
#endif // DOCPARSER_H
diff --git a/sources/shiboken6/ApiExtractor/documentation.cpp b/sources/shiboken6/ApiExtractor/documentation.cpp
index f4c016d97..33cf0e9fb 100644
--- a/sources/shiboken6/ApiExtractor/documentation.cpp
+++ b/sources/shiboken6/ApiExtractor/documentation.cpp
@@ -1,33 +1,10 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "documentation.h"
+#include <QtCore/QDebug>
+
Documentation::Documentation(const QString &detailed,
const QString &brief,
Format fmt) :
@@ -58,12 +35,6 @@ void Documentation::setFormat(Documentation::Format f)
m_format = f;
}
-bool Documentation::equals(const Documentation &rhs) const
-{
- return m_format == rhs.m_format && m_detailed == rhs.m_detailed
- && m_brief == rhs.m_brief;
-}
-
void Documentation::setDetailed(const QString &detailed)
{
m_detailed = detailed.trimmed();
@@ -73,3 +44,22 @@ void Documentation::setBrief(const QString &brief)
{
m_brief = brief.trimmed();
}
+
+#ifndef QT_NO_DEBUG_STREAM
+QDebug operator<<(QDebug debug, const Documentation &d)
+{
+ QDebugStateSaver saver(debug);
+ debug.noquote();
+ debug.nospace();
+ debug << "Documentation(";
+ if (!d.isEmpty()) {
+ debug << "format=" << d.format();
+ if (!d.brief().isEmpty())
+ debug << ", brief=\"" << d.brief() << '"';
+ if (!d.detailed().isEmpty())
+ debug << ", detailed=\"" << d.detailed() << '"';
+ }
+ debug << ')';
+ return debug;
+}
+#endif // QT_NO_DEBUG_STREAM
diff --git a/sources/shiboken6/ApiExtractor/documentation.h b/sources/shiboken6/ApiExtractor/documentation.h
index df2a3fd6f..df9d5d614 100644
--- a/sources/shiboken6/ApiExtractor/documentation.h
+++ b/sources/shiboken6/ApiExtractor/documentation.h
@@ -1,35 +1,13 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef DOCUMENTATION_H
#define DOCUMENTATION_H
#include <QtCore/QString>
+#include <QtCore/QtCompare>
+
+QT_FORWARD_DECLARE_CLASS(QDebug)
class Documentation
{
@@ -67,14 +45,21 @@ public:
void setBrief(const QString &brief);
private:
+ friend bool comparesEqual(const Documentation &lhs,
+ const Documentation &rhs) noexcept
+ {
+ return lhs.m_format == rhs.m_format && lhs.m_detailed == rhs.m_detailed
+ && lhs.m_brief == rhs.m_brief;
+ }
+ Q_DECLARE_EQUALITY_COMPARABLE(Documentation)
+
QString m_detailed;
QString m_brief;
Format m_format = Documentation::Native;
};
-inline bool operator==(const Documentation &d1, const Documentation &d2)
-{ return d1.equals(d2); }
-inline bool operator!=(const Documentation &d1, const Documentation &d2)
-{ return !d1.equals(d2); }
+#ifndef QT_NO_DEBUG_STREAM
+QDebug operator<<(QDebug debug, const Documentation &);
+#endif
#endif // DOCUMENTATION_H
diff --git a/sources/shiboken6/ApiExtractor/dotview.cpp b/sources/shiboken6/ApiExtractor/dotview.cpp
index 0ead28f68..0bd192257 100644
--- a/sources/shiboken6/ApiExtractor/dotview.cpp
+++ b/sources/shiboken6/ApiExtractor/dotview.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "dotview.h"
@@ -34,12 +9,14 @@
#include <QtCore/QProcess>
#include <QtCore/QTemporaryFile>
+using namespace Qt::StringLiterals;
+
bool showDotGraph(const QString &name, const QString &graph)
{
- const QString imageType = u"jpg"_qs;
+ constexpr auto imageType = "jpg"_L1;
// Write out the graph to a temporary file
- QTemporaryFile dotFile(QDir::tempPath() + u'/' + name + u"_XXXXXX.dot"_qs);
+ QTemporaryFile dotFile(QDir::tempPath() + u'/' + name + u"_XXXXXX.dot"_s);
if (!dotFile.open()) {
qWarning("Cannot open temporary file: %s", qPrintable(dotFile.errorString()));
return false;
@@ -51,7 +28,7 @@ bool showDotGraph(const QString &name, const QString &graph)
// Convert to image using "dot"
const QString imageFile = tempDotFile.left(tempDotFile.size() - 3) + imageType;
QProcess process;
- process.start(u"dot"_qs, {u"-T"_qs + imageType, u"-o"_qs + imageFile, tempDotFile});
+ process.start(u"dot"_s, {u"-T"_s + imageType, u"-o"_s + imageFile, tempDotFile});
if (!process.waitForStarted() || !process.waitForFinished()) {
qWarning("Image conversion failed: %s", qPrintable(process.errorString()));
return false;
@@ -66,9 +43,9 @@ bool showDotGraph(const QString &name, const QString &graph)
// Launch image. Should use QDesktopServices::openUrl(),
// but we don't link against QtGui
#ifdef Q_OS_UNIX
- const QString imageViewer = u"gwenview"_qs;
+ constexpr auto imageViewer = "gwenview"_L1;
#else
- const QString imageViewer = u"mspaint"_qs;
+ constexpr auto imageViewer = "mspaint"_L1;
#endif
if (!QProcess::startDetached(imageViewer, {imageFile})) {
qWarning("Failed to launch viewer: %s", qPrintable(imageViewer));
diff --git a/sources/shiboken6/ApiExtractor/dotview.h b/sources/shiboken6/ApiExtractor/dotview.h
index 462cc2b75..87fb7db65 100644
--- a/sources/shiboken6/ApiExtractor/dotview.h
+++ b/sources/shiboken6/ApiExtractor/dotview.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef DOTVIEW_H
#define DOTVIEW_H
diff --git a/sources/shiboken6/ApiExtractor/doxygenparser.cpp b/sources/shiboken6/ApiExtractor/doxygenparser.cpp
index ed589dd09..da790015f 100644
--- a/sources/shiboken6/ApiExtractor/doxygenparser.cpp
+++ b/sources/shiboken6/ApiExtractor/doxygenparser.cpp
@@ -1,57 +1,38 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "doxygenparser.h"
+#include "abstractmetaargument.h"
#include "abstractmetalang.h"
#include "abstractmetafield.h"
#include "abstractmetafunction.h"
#include "abstractmetaenum.h"
+#include "abstractmetatype.h"
#include "documentation.h"
#include "messages.h"
#include "modifications.h"
#include "propertyspec.h"
#include "reporthandler.h"
-#include "typesystem.h"
+#include "complextypeentry.h"
#include "xmlutils.h"
+#include "qtcompat.h"
+
#include <QtCore/QFile>
#include <QtCore/QDir>
+using namespace Qt::StringLiterals;
+
static QString getSectionKindAttr(const AbstractMetaFunctionCPtr &func)
{
if (func->isSignal())
- return QLatin1String("signal");
+ return u"signal"_s;
QString kind = func->isPublic()
- ? QLatin1String("public") : QLatin1String("protected");
+ ? u"public"_s : u"protected"_s;
if (func->isStatic())
- kind += QLatin1String("-static");
+ kind += u"-static"_s;
else if (func->isSlot())
- kind += QLatin1String("-slot");
+ kind += u"-slot"_s;
return kind;
}
@@ -60,7 +41,7 @@ Documentation DoxygenParser::retrieveModuleDocumentation()
return retrieveModuleDocumentation(packageName());
}
-void DoxygenParser::fillDocumentation(AbstractMetaClass* metaClass)
+void DoxygenParser::fillDocumentation(const AbstractMetaClassPtr &metaClass)
{
if (!metaClass)
return;
@@ -68,18 +49,17 @@ void DoxygenParser::fillDocumentation(AbstractMetaClass* metaClass)
QString doxyFileSuffix;
if (metaClass->enclosingClass()) {
doxyFileSuffix += metaClass->enclosingClass()->name();
- doxyFileSuffix += QLatin1String("_1_1"); // FIXME: Check why _1_1!!
+ doxyFileSuffix += u"_1_1"_s; // FIXME: Check why _1_1!!
}
doxyFileSuffix += metaClass->name();
- doxyFileSuffix += QLatin1String(".xml");
+ doxyFileSuffix += u".xml"_s;
- const char* prefixes[] = { "class", "struct", "namespace" };
+ static constexpr QLatin1StringView prefixes[] = { "class"_L1, "struct"_L1, "namespace"_L1 };
bool isProperty = false;
QString doxyFilePath;
- for (const char *prefix : prefixes) {
- doxyFilePath = documentationDataDirectory() + QLatin1Char('/')
- + QLatin1String(prefix) + doxyFileSuffix;
+ for (const auto &prefix : prefixes) {
+ doxyFilePath = documentationDataDirectory() + u'/' + prefix + doxyFileSuffix;
if (QFile::exists(doxyFilePath))
break;
doxyFilePath.clear();
@@ -95,20 +75,20 @@ void DoxygenParser::fillDocumentation(AbstractMetaClass* metaClass)
QString errorMessage;
XQueryPtr xquery = XQuery::create(doxyFilePath, &errorMessage);
- if (xquery.isNull()) {
+ if (!xquery) {
qCWarning(lcShibokenDoc, "%s", qPrintable(errorMessage));
return;
}
- static const QList<QPair<Documentation::Type, QString>> docTags = {
- { Documentation::Brief, QLatin1String("briefdescription") },
- { Documentation::Detailed, QLatin1String("detaileddescription") }
+ static const QList<std::pair<Documentation::Type, QString>> docTags = {
+ { Documentation::Brief, u"briefdescription"_s },
+ { Documentation::Detailed, u"detaileddescription"_s }
};
// Get class documentation
Documentation classDoc;
for (const auto &tag : docTags) {
- const QString classQuery = QLatin1String("/doxygen/compounddef/") + tag.second;
+ const QString classQuery = u"/doxygen/compounddef/"_s + tag.second;
QString doc = getDocumentation(xquery, classQuery,
metaClass->typeEntry()->docModifications());
if (doc.isEmpty())
@@ -123,37 +103,37 @@ void DoxygenParser::fillDocumentation(AbstractMetaClass* metaClass)
//Functions Documentation
const auto &funcs = DocParser::documentableFunctions(metaClass);
for (const auto &func : funcs) {
- QString query = QLatin1String("/doxygen/compounddef/sectiondef");
+ QString query = u"/doxygen/compounddef/sectiondef"_s;
// properties
if (func->isPropertyReader() || func->isPropertyWriter()
|| func->isPropertyResetter()) {
const auto prop = metaClass->propertySpecs().at(func->propertySpecIndex());
- query += QLatin1String("[@kind=\"property\"]/memberdef/name[text()=\"")
- + prop.name() + QLatin1String("\"]");
+ query += u"[@kind=\"property\"]/memberdef/name[text()=\""_s
+ + prop.name() + u"\"]"_s;
isProperty = true;
} else { // normal methods
QString kind = getSectionKindAttr(func);
- query += QLatin1String("[@kind=\"") + kind
- + QLatin1String("-func\"]/memberdef/name[text()=\"")
- + func->originalName() + QLatin1String("\"]");
+ query += u"[@kind=\""_s + kind
+ + u"-func\"]/memberdef/name[text()=\""_s
+ + func->originalName() + u"\"]"_s;
if (func->arguments().isEmpty()) {
- QString args = func->isConstant() ? QLatin1String("() const ") : QLatin1String("()");
- query += QLatin1String("/../argsstring[text()=\"") + args + QLatin1String("\"]");
+ QString args = func->isConstant() ? u"() const"_s : u"()"_s;
+ query += u"/../argsstring[text()=\""_s + args + u"\"]"_s;
} else {
int i = 1;
const AbstractMetaArgumentList &arguments = func->arguments();
for (const AbstractMetaArgument &arg : arguments) {
if (!arg.type().isPrimitive()) {
- query += QLatin1String("/../param[") + QString::number(i)
- + QLatin1String("]/type/ref[text()=\"")
+ query += u"/../param["_s + QString::number(i)
+ + u"]/type/ref[text()=\""_s
+ arg.type().cppSignature().toHtmlEscaped()
- + QLatin1String("\"]/../..");
+ + u"\"]/../.."_s;
} else {
- query += QLatin1String("/../param[") + QString::number(i)
- + QLatin1String("]/type[text(), \"")
+ query += u"/../param["_s + QString::number(i)
+ + u"]/type[text(), \""_s
+ arg.type().cppSignature().toHtmlEscaped()
- + QLatin1String("\"]/..");
+ + u"\"]/.."_s;
}
++i;
}
@@ -163,22 +143,23 @@ void DoxygenParser::fillDocumentation(AbstractMetaClass* metaClass)
for (const auto &tag : docTags) {
QString funcQuery(query);
if (!isProperty) {
- funcQuery += QLatin1String("/../") + tag.second;
+ funcQuery += u"/../"_s + tag.second;
} else {
- funcQuery = QLatin1Char('(') + funcQuery;
- funcQuery += u"/../"_qs + tag.second + u")[1]"_qs;
+ funcQuery = u'(' + funcQuery;
+ funcQuery += u"/../"_s + tag.second + u")[1]"_s;
}
- QString doc = getDocumentation(xquery, funcQuery, DocModificationList());
+ QString doc = getDocumentation(xquery, funcQuery,
+ DocParser::getXpathDocModifications(func, metaClass));
if (doc.isEmpty()) {
qCWarning(lcShibokenDoc, "%s",
- qPrintable(msgCannotFindDocumentation(doxyFilePath, metaClass, func.data(),
+ qPrintable(msgCannotFindDocumentation(doxyFilePath, func.get(),
funcQuery)));
} else {
funcDoc.setValue(doc, tag.first);
}
}
- qSharedPointerConstCast<AbstractMetaFunction>(func)->setDocumentation(funcDoc);
+ std::const_pointer_cast<AbstractMetaFunction>(func)->setDocumentation(funcDoc);
isProperty = false;
}
@@ -189,8 +170,8 @@ void DoxygenParser::fillDocumentation(AbstractMetaClass* metaClass)
Documentation fieldDoc;
for (const auto &tag : docTags) {
- QString query = QLatin1String("/doxygen/compounddef/sectiondef/memberdef/name[text()=\"")
- + field.name() + QLatin1String("\"]/../") + tag.second;
+ QString query = u"/doxygen/compounddef/sectiondef/memberdef/name[text()=\""_s
+ + field.name() + u"\"]/../"_s + tag.second;
QString doc = getDocumentation(xquery, query, DocModificationList());
if (doc.isEmpty()) {
qCWarning(lcShibokenDoc, "%s",
@@ -205,8 +186,8 @@ void DoxygenParser::fillDocumentation(AbstractMetaClass* metaClass)
//Enums
for (AbstractMetaEnum &meta_enum : metaClass->enums()) {
- QString query = QLatin1String("/doxygen/compounddef/sectiondef/memberdef[@kind=\"enum\"]/name[text()=\"")
- + meta_enum.name() + QLatin1String("\"]/..");
+ QString query = u"/doxygen/compounddef/sectiondef/memberdef[@kind=\"enum\"]/name[text()=\""_s
+ + meta_enum.name() + u"\"]/.."_s;
QString doc = getDocumentation(xquery, query, DocModificationList());
if (doc.isEmpty()) {
qCWarning(lcShibokenDoc, "%s",
@@ -219,24 +200,24 @@ void DoxygenParser::fillDocumentation(AbstractMetaClass* metaClass)
Documentation DoxygenParser::retrieveModuleDocumentation(const QString& name){
- QString sourceFile = documentationDataDirectory() + QLatin1String("/indexpage.xml");
+ QString sourceFile = documentationDataDirectory() + u"/indexpage.xml"_s;
if (!QFile::exists(sourceFile)) {
qCWarning(lcShibokenDoc).noquote().nospace()
<< "Can't find doxygen XML file for module " << name << ", tried: "
<< QDir::toNativeSeparators(sourceFile);
- return Documentation();
+ return {};
}
QString errorMessage;
XQueryPtr xquery = XQuery::create(sourceFile, &errorMessage);
- if (xquery.isNull()) {
+ if (!xquery) {
qCWarning(lcShibokenDoc, "%s", qPrintable(errorMessage));
return {};
}
// Module documentation
- QString query = QLatin1String("/doxygen/compounddef/detaileddescription");
+ QString query = u"/doxygen/compounddef/detaileddescription"_s;
const QString doc = getDocumentation(xquery, query, DocModificationList());
return Documentation(doc, {});
}
diff --git a/sources/shiboken6/ApiExtractor/doxygenparser.h b/sources/shiboken6/ApiExtractor/doxygenparser.h
index ada64ac18..4f6a9e53c 100644
--- a/sources/shiboken6/ApiExtractor/doxygenparser.h
+++ b/sources/shiboken6/ApiExtractor/doxygenparser.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef DOXYGENPARSER_H
#define DOXYGENPARSER_H
@@ -35,7 +10,7 @@ class DoxygenParser : public DocParser
{
public:
DoxygenParser() = default;
- void fillDocumentation(AbstractMetaClass *metaClass) override;
+ void fillDocumentation(const AbstractMetaClassPtr &metaClass) override;
Documentation retrieveModuleDocumentation() override;
Documentation retrieveModuleDocumentation(const QString& name) override;
};
diff --git a/sources/shiboken6/ApiExtractor/enclosingclassmixin.cpp b/sources/shiboken6/ApiExtractor/enclosingclassmixin.cpp
index 5d6394f11..2421ae527 100644
--- a/sources/shiboken6/ApiExtractor/enclosingclassmixin.cpp
+++ b/sources/shiboken6/ApiExtractor/enclosingclassmixin.cpp
@@ -1,38 +1,13 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "enclosingclassmixin.h"
#include "abstractmetalang.h"
-#include "typesystem.h"
+#include "namespacetypeentry.h"
-const AbstractMetaClass *EnclosingClassMixin::targetLangEnclosingClass() const
+AbstractMetaClassCPtr EnclosingClassMixin::targetLangEnclosingClass() const
{
- auto result = m_enclosingClass;
+ auto result = m_enclosingClass.lock();
while (result && !NamespaceTypeEntry::isVisibleScope(result->typeEntry()))
result = result->enclosingClass();
return result;
diff --git a/sources/shiboken6/ApiExtractor/enclosingclassmixin.h b/sources/shiboken6/ApiExtractor/enclosingclassmixin.h
index 61fbc816f..8d735d5ec 100644
--- a/sources/shiboken6/ApiExtractor/enclosingclassmixin.h
+++ b/sources/shiboken6/ApiExtractor/enclosingclassmixin.h
@@ -1,44 +1,24 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef ENCLOSINGCLASSMIXIN_H
#define ENCLOSINGCLASSMIXIN_H
+#include "abstractmetalang_typedefs.h"
+
class AbstractMetaClass;
class EnclosingClassMixin {
public:
- const AbstractMetaClass *enclosingClass() const { return m_enclosingClass; }
- void setEnclosingClass(const AbstractMetaClass *cls) { m_enclosingClass = cls; }
- const AbstractMetaClass *targetLangEnclosingClass() const;
+
+ const AbstractMetaClassCPtr enclosingClass() const
+ { return m_enclosingClass.lock(); }
+ void setEnclosingClass(const AbstractMetaClassCPtr &cls)
+ { m_enclosingClass = cls; }
+ AbstractMetaClassCPtr targetLangEnclosingClass() const;
private:
- const AbstractMetaClass *m_enclosingClass = nullptr;
+ std::weak_ptr<const AbstractMetaClass> m_enclosingClass;
};
#endif // ENCLOSINGCLASSMIXIN_H
diff --git a/sources/shiboken6/ApiExtractor/enumtypeentry.h b/sources/shiboken6/ApiExtractor/enumtypeentry.h
new file mode 100644
index 000000000..3360d7db5
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/enumtypeentry.h
@@ -0,0 +1,51 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef ENUMTYPEENTRY_H
+#define ENUMTYPEENTRY_H
+
+#include "configurabletypeentry.h"
+#include "typesystem_enums.h"
+
+class EnumTypeEntryPrivate;
+
+// EnumTypeEntry is configurable for global enums only
+class EnumTypeEntry : public ConfigurableTypeEntry
+{
+public:
+ explicit EnumTypeEntry(const QString &entryName,
+ const QVersionNumber &vr,
+ const TypeEntryCPtr &parent);
+
+ TypeSystem::PythonEnumType pythonEnumType() const;
+ void setPythonEnumType(TypeSystem::PythonEnumType t);
+
+ QString targetLangQualifier() const;
+
+ QString qualifier() const;
+
+ EnumValueTypeEntryCPtr nullValue() const;
+ void setNullValue(const EnumValueTypeEntryCPtr &n);
+
+ void setFlags(const FlagsTypeEntryPtr &flags);
+ FlagsTypeEntryPtr flags() const;
+
+ QString cppType() const;
+ void setCppType(const QString &t);
+
+ bool isEnumValueRejected(const QString &name) const;
+ void addEnumValueRejection(const QString &name);
+ QStringList enumValueRejections() const;
+
+ QString docFile() const;
+ void setDocFile(const QString &df);
+
+ TypeEntry *clone() const override;
+#ifndef QT_NO_DEBUG_STREAM
+ void formatDebug(QDebug &d) const override;
+#endif
+protected:
+ explicit EnumTypeEntry(EnumTypeEntryPrivate *d);
+};
+
+#endif // ENUMTYPEENTRY_H
diff --git a/sources/shiboken6/ApiExtractor/enumvaluetypeentry.h b/sources/shiboken6/ApiExtractor/enumvaluetypeentry.h
new file mode 100644
index 000000000..006b84e0a
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/enumvaluetypeentry.h
@@ -0,0 +1,31 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef ENUMVALUETYPEENTRY_H
+#define ENUMVALUETYPEENTRY_H
+
+#include "typesystem.h"
+
+class EnumTypeEntry;
+class EnumValueTypeEntryPrivate;
+
+// EnumValueTypeEntry is used for resolving integer type templates
+// like array<EnumValue>. Note: Dummy entries for integer values will
+// be created for non-type template parameters, where m_enclosingEnum==nullptr.
+class EnumValueTypeEntry : public TypeEntry
+{
+public:
+ explicit EnumValueTypeEntry(const QString& name, const QString& value,
+ const EnumTypeEntryCPtr &enclosingEnum,
+ bool isScopedEnum, const QVersionNumber &vr);
+
+ QString value() const;
+ EnumTypeEntryCPtr enclosingEnum() const;
+
+ TypeEntry *clone() const override;
+
+protected:
+ explicit EnumValueTypeEntry(EnumValueTypeEntryPrivate *d);
+};
+
+#endif // ENUMVALUETYPEENTRY_H
diff --git a/sources/shiboken6/ApiExtractor/exception.h b/sources/shiboken6/ApiExtractor/exception.h
index 36e94638a..396b56f5d 100644
--- a/sources/shiboken6/ApiExtractor/exception.h
+++ b/sources/shiboken6/ApiExtractor/exception.h
@@ -1,35 +1,10 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef EXCEPTION_H
#define EXCEPTION_H
-#include <QString>
+#include <QtCore/QString>
#include <string>
#include <exception>
diff --git a/sources/shiboken6/ApiExtractor/fileout.cpp b/sources/shiboken6/ApiExtractor/fileout.cpp
index 84455dd9e..6f9ec4d8a 100644
--- a/sources/shiboken6/ApiExtractor/fileout.cpp
+++ b/sources/shiboken6/ApiExtractor/fileout.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "fileout.h"
#include "messages.h"
@@ -67,20 +42,20 @@ FileOut::~FileOut()
}
}
-static QList<int> lcsLength(const QByteArrayList &a, const QByteArrayList &b)
+static QList<qsizetype> lcsLength(const QByteArrayList &a, const QByteArrayList &b)
{
- const int height = a.size() + 1;
- const int width = b.size() + 1;
+ const auto height = a.size() + 1;
+ const auto width = b.size() + 1;
- QList<int> res(width * height, 0);
+ QList<qsizetype> res(width * height, 0);
- for (int row = 1; row < height; row++) {
- for (int col = 1; col < width; col++) {
- if (a[row-1] == b[col-1])
- res[width * row + col] = res[width * (row-1) + col-1] + 1;
+ for (qsizetype row = 1; row < height; row++) {
+ for (qsizetype col = 1; col < width; col++) {
+ if (a.at(row - 1) == b.at(col - 1))
+ res[width * row + col] = res[width * (row - 1) + col - 1] + 1;
else
- res[width * row + col] = qMax(res[width * row + col-1],
- res[width * (row-1) + col]);
+ res[width * row + col] = qMax(res[width * row + col - 1],
+ res[width * (row - 1) + col]);
}
}
return res;
@@ -95,8 +70,8 @@ enum Type {
struct Unit
{
Type type;
- int start;
- int end;
+ qsizetype start;
+ qsizetype end;
void print(const QByteArrayList &a, const QByteArrayList &b) const;
};
@@ -106,33 +81,33 @@ void Unit::print(const QByteArrayList &a, const QByteArrayList &b) const
switch (type) {
case Unchanged:
if ((end - start) > 9) {
- for (int i = start; i <= start + 2; i++)
+ for (auto i = start; i <= start + 2; ++i)
std::printf(" %s\n", a.at(i).constData());
std::printf("%s=\n= %d more lines\n=%s\n",
- colorInfo, end - start - 6, colorReset);
- for (int i = end - 2; i <= end; i++)
+ colorInfo, int(end - start - 6), colorReset);
+ for (auto i = end - 2; i <= end; ++i)
std::printf(" %s\n", a.at(i).constData());
} else {
- for (int i = start; i <= end; i++)
+ for (auto i = start; i <= end; ++i)
std::printf(" %s\n", a.at(i).constData());
}
break;
case Add:
std::fputs(colorAdd, stdout);
- for (int i = start; i <= end; i++)
+ for (auto i = start; i <= end; ++i)
std::printf("+ %s\n", b.at(i).constData());
std::fputs(colorReset, stdout);
break;
case Delete:
std::fputs(colorDelete, stdout);
- for (int i = start; i <= end; i++)
+ for (auto i = start; i <= end; ++i)
std::printf("- %s\n", a.at(i).constData());
std::fputs(colorReset, stdout);
break;
}
}
-static void unitAppend(Type type, int pos, QList<Unit> *units)
+static void unitAppend(Type type, qsizetype pos, QList<Unit> *units)
{
if (!units->isEmpty() && units->last().type == type)
units->last().end = pos;
@@ -140,9 +115,9 @@ static void unitAppend(Type type, int pos, QList<Unit> *units)
units->append(Unit{type, pos, pos});
}
-static QList<Unit> diffHelper(const QList<int> &lcs,
- const QByteArrayList &a, const QByteArrayList &b,
- int row, int col)
+static QList<Unit> diffHelper(const QList<qsizetype> &lcs,
+ const QByteArrayList &a, const QByteArrayList &b,
+ qsizetype row, qsizetype col)
{
if (row > 0 && col > 0 && a.at(row - 1) == b.at(col - 1)) {
QList<Unit> result = diffHelper(lcs, a, b, row - 1, col - 1);
@@ -150,7 +125,7 @@ static QList<Unit> diffHelper(const QList<int> &lcs,
return result;
}
- const int width = b.size() + 1;
+ const auto width = b.size() + 1;
if (col > 0
&& (row == 0 || lcs.at(width * row + col -1 ) >= lcs.at(width * (row - 1) + col))) {
QList<Unit> result = diffHelper(lcs, a, b, row, col - 1);
@@ -200,7 +175,7 @@ FileOut::State FileOut::done()
if (!FileOut::m_dryRun) {
QDir dir(info.absolutePath());
if (!dir.mkpath(dir.absolutePath())) {
- const QString message = QStringLiteral("Unable to create directory '%1'")
+ const QString message = QString::fromLatin1("Unable to create directory '%1'")
.arg(QDir::toNativeSeparators(dir.absolutePath()));
throw Exception(message);
}
diff --git a/sources/shiboken6/ApiExtractor/fileout.h b/sources/shiboken6/ApiExtractor/fileout.h
index 5b5f33578..b11ad1e20 100644
--- a/sources/shiboken6/ApiExtractor/fileout.h
+++ b/sources/shiboken6/ApiExtractor/fileout.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef FILEOUT_H
#define FILEOUT_H
@@ -39,7 +14,7 @@ class FileOut
{
QByteArray m_buffer;
public:
- Q_DISABLE_COPY(FileOut)
+ Q_DISABLE_COPY_MOVE(FileOut)
enum State { Unchanged, Success };
diff --git a/sources/shiboken6/ApiExtractor/flagstypeentry.h b/sources/shiboken6/ApiExtractor/flagstypeentry.h
new file mode 100644
index 000000000..6eddcd12b
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/flagstypeentry.h
@@ -0,0 +1,36 @@
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef FLAGSTYPEENTRY_H
+#define FLAGSTYPEENTRY_H
+
+#include "typesystem.h"
+
+class EnumTypeEntry;
+class FlagsTypeEntryPrivate;
+
+// FlagsTypeEntry is configurable for global flags only
+class FlagsTypeEntry : public TypeEntry
+{
+public:
+ explicit FlagsTypeEntry(const QString &entryName, const QVersionNumber &vr,
+ const TypeEntryCPtr &parent);
+
+ QString originalName() const;
+ void setOriginalName(const QString &s);
+
+ QString flagsName() const;
+ void setFlagsName(const QString &name);
+
+ EnumTypeEntryPtr originator() const;
+ void setOriginator(const EnumTypeEntryPtr &e);
+
+ TypeEntry *clone() const override;
+
+protected:
+ explicit FlagsTypeEntry(FlagsTypeEntryPrivate *d);
+
+ QString buildTargetLangName() const override;
+};
+
+#endif // FLAGSTYPEENTRY_H
diff --git a/sources/shiboken6/ApiExtractor/functiontypeentry.h b/sources/shiboken6/ApiExtractor/functiontypeentry.h
new file mode 100644
index 000000000..53aa1fad6
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/functiontypeentry.h
@@ -0,0 +1,35 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef FUNCTIONTYPEENTRY_H
+#define FUNCTIONTYPEENTRY_H
+
+#include "typesystem.h"
+
+class FunctionTypeEntryPrivate;
+
+class FunctionTypeEntry : public TypeEntry
+{
+public:
+ explicit FunctionTypeEntry(const QString& name, const QString& signature,
+ const QVersionNumber &vr,
+ const TypeEntryCPtr &parent);
+
+ const QStringList &signatures() const;
+ bool hasSignature(const QString& signature) const;
+ void addSignature(const QString& signature);
+
+ QString docFile() const;
+ void setDocFile(const QString &df);
+
+ TypeEntry *clone() const override;
+
+#ifndef QT_NO_DEBUG_STREAM
+ void formatDebug(QDebug &d) const override;
+#endif
+
+protected:
+ explicit FunctionTypeEntry(FunctionTypeEntryPrivate *d);
+};
+
+#endif // FUNCTIONTYPEENTRY_H
diff --git a/sources/shiboken6/ApiExtractor/graph.h b/sources/shiboken6/ApiExtractor/graph.h
index 26aed4328..447a26da0 100644
--- a/sources/shiboken6/ApiExtractor/graph.h
+++ b/sources/shiboken6/ApiExtractor/graph.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef GRAPH_H
#define GRAPH_H
diff --git a/sources/shiboken6/ApiExtractor/header_paths.h b/sources/shiboken6/ApiExtractor/header_paths.h
index 0c25702ef..af4a768e8 100644
--- a/sources/shiboken6/ApiExtractor/header_paths.h
+++ b/sources/shiboken6/ApiExtractor/header_paths.h
@@ -1,37 +1,11 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef HEADER_PATHS_H
#define HEADER_PATHS_H
-#include <QByteArray>
-#include <QList>
-#include <QString>
+#include <QtCore/QByteArray>
+#include <QtCore/QList>
enum class HeaderType
{
diff --git a/sources/shiboken6/ApiExtractor/icecc.cmake b/sources/shiboken6/ApiExtractor/icecc.cmake
index b2bf071aa..fa8d3b7cf 100644
--- a/sources/shiboken6/ApiExtractor/icecc.cmake
+++ b/sources/shiboken6/ApiExtractor/icecc.cmake
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
include (CMakeForceCompiler)
option(ENABLE_ICECC "Enable icecc checking, for distributed compilation")
if (ENABLE_ICECC)
diff --git a/sources/shiboken6/ApiExtractor/include.cpp b/sources/shiboken6/ApiExtractor/include.cpp
index ea31d000a..aee6b7337 100644
--- a/sources/shiboken6/ApiExtractor/include.cpp
+++ b/sources/shiboken6/ApiExtractor/include.cpp
@@ -1,56 +1,44 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "include.h"
#include "textstream.h"
-#include <QDebug>
-#include <QDir>
-#include <QTextStream>
-#include <QHash>
+
+#include <QtCore/QDebug>
+#include <QtCore/QDir>
+#include <QtCore/QHash>
+#include <QtCore/QTextStream>
+
+#include "qtcompat.h"
+
+#include <algorithm>
+
+using namespace Qt::StringLiterals;
QString Include::toString() const
{
if (m_type == IncludePath)
- return QLatin1String("#include <") + m_name + QLatin1Char('>');
+ return u"#include <"_s + m_name + u'>';
if (m_type == LocalPath)
- return QLatin1String("#include \"") + m_name + QLatin1Char('"');
- return QLatin1String("import ") + m_name + QLatin1Char(';');
+ return u"#include \""_s + m_name + u'"';
+ return u"import "_s + m_name + u';';
}
-size_t qHash(const Include& inc)
+Qt::strong_ordering compareThreeWay(const Include &lhs, const Include &rhs) noexcept
{
- return qHash(inc.m_name);
+ if (lhs.m_type < rhs.m_type)
+ return Qt::strong_ordering::less;
+ if (lhs.m_type > rhs.m_type)
+ return Qt::strong_ordering::greater;
+ if (auto c = lhs.m_name.compare(rhs.m_name))
+ return c < 0 ? Qt::strong_ordering::less : Qt::strong_ordering::greater;
+ return Qt::strong_ordering::equal;
}
-QTextStream& operator<<(QTextStream& out, const Include& include)
+QTextStream& operator<<(QTextStream& out, const Include& g)
{
- if (include.isValid())
- out << include.toString() << Qt::endl;
+ if (g.isValid())
+ out << g.toString() << Qt::endl;
return out;
}
@@ -61,6 +49,19 @@ TextStream& operator<<(TextStream& out, const Include& include)
return out;
}
+TextStream& operator<<(TextStream &out, const IncludeGroup& g)
+{
+ if (!g.includes.isEmpty()) {
+ if (!g.title.isEmpty())
+ out << "\n// " << g.title << "\n";
+ auto includes = g.includes;
+ std::sort(includes.begin(), includes.end());
+ for (const Include &inc : std::as_const(includes))
+ out << inc.toString() << '\n';
+ }
+ return out;
+}
+
#ifndef QT_NO_DEBUG_STREAM
QDebug operator<<(QDebug d, const Include &i)
{
diff --git a/sources/shiboken6/ApiExtractor/include.h b/sources/shiboken6/ApiExtractor/include.h
index 405a8e3fb..875a941f9 100644
--- a/sources/shiboken6/ApiExtractor/include.h
+++ b/sources/shiboken6/ApiExtractor/include.h
@@ -1,36 +1,13 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef INCLUDE_H
#define INCLUDE_H
-#include <QString>
-#include <QList>
+#include <QtCore/QtCompare>
+#include <QtCore/QHashFunctions>
+#include <QtCore/QString>
+#include <QtCore/QList>
QT_BEGIN_NAMESPACE
class QTextStream;
@@ -67,23 +44,25 @@ public:
QString toString() const;
- bool operator<(const Include& other) const
+ int compare(const Include &rhs) const;
+
+private:
+ friend size_t qHash(Include &inc, size_t seed = 0) noexcept
{
- return m_name < other.m_name;
+ return qHashMulti(seed, inc.m_type, inc.m_name);
}
-
- bool operator==(const Include& other) const
+ friend bool comparesEqual(const Include &lhs, const Include &rhs) noexcept
{
- return m_type == other.m_type && m_name == other.m_name;
+ return lhs.m_type == rhs.m_type && lhs.m_name == rhs.m_name;
}
+ friend Qt::strong_ordering compareThreeWay(const Include &lhs,
+ const Include &rhs) noexcept;
+ Q_DECLARE_STRONGLY_ORDERED(Include)
- friend size_t qHash(const Include&);
- private:
- IncludeType m_type = IncludePath;
- QString m_name;
+ IncludeType m_type = IncludePath;
+ QString m_name;
};
-size_t qHash(const Include& inc);
QTextStream& operator<<(QTextStream& out, const Include& include);
TextStream& operator<<(TextStream& out, const Include& include);
#ifndef QT_NO_DEBUG_STREAM
@@ -92,4 +71,25 @@ QDebug operator<<(QDebug d, const Include &i);
using IncludeList = QList<Include>;
+struct IncludeGroup
+{
+ QString title;
+ IncludeList includes;
+
+ void append(const Include &include)
+ {
+ IncludeGroup::appendInclude(include, &includes);
+ }
+
+ static void appendInclude(const Include &include, IncludeList *list)
+ {
+ if (include.isValid() && !list->contains(include))
+ list->append(include);
+ }
+};
+
+TextStream& operator<<(TextStream &out, const IncludeGroup& include);
+
+using IncludeGroupList = QList<IncludeGroup>;
+
#endif
diff --git a/sources/shiboken6/ApiExtractor/messages.cpp b/sources/shiboken6/ApiExtractor/messages.cpp
index 796d18c4b..f9f46f520 100644
--- a/sources/shiboken6/ApiExtractor/messages.cpp
+++ b/sources/shiboken6/ApiExtractor/messages.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "messages.h"
#include "abstractmetaenum.h"
@@ -34,21 +9,40 @@
#include "modifications.h"
#include "sourcelocation.h"
#include "typedatabase.h"
-#include "typesystem.h"
+#include "functiontypeentry.h"
+#include "enumtypeentry.h"
+#include "smartpointertypeentry.h"
#include <codemodel.h>
-#include <QtCore/QCoreApplication>
+#include "qtcompat.h"
+
#include <QtCore/QDebug>
#include <QtCore/QDir>
#include <QtCore/QFile>
#include <QtCore/QStringList>
#include <QtCore/QXmlStreamReader>
-static inline QString colonColon() { return QStringLiteral("::"); }
+using namespace Qt::StringLiterals;
// abstractmetabuilder.cpp
-QString msgNoFunctionForModification(const AbstractMetaClass *klass,
+static QTextStream &operator<<(QTextStream &s, Access a)
+{
+ switch (a) {
+ case Access::Public:
+ s << "public";
+ break;
+ case Access::Protected:
+ s << "protected";
+ break;
+ case Access::Private:
+ s << "private";
+ break;
+ }
+ return s;
+}
+
+QString msgNoFunctionForModification(const AbstractMetaClassCPtr &klass,
const QString &signature,
const QString &originalSignature,
const QStringList &possibleSignatures,
@@ -68,8 +62,8 @@ QString msgNoFunctionForModification(const AbstractMetaClass *klass,
str << " " << s << '\n';
} else if (!allFunctions.isEmpty()) {
str << "\n No candidates were found. Member functions:\n";
- const int maxCount = qMin(10, allFunctions.size());
- for (int f = 0; f < maxCount; ++f)
+ const auto maxCount = qMin(qsizetype(10), allFunctions.size());
+ for (qsizetype f = 0; f < maxCount; ++f)
str << " " << allFunctions.at(f)->minimalSignature() << '\n';
if (maxCount < allFunctions.size())
str << " ...\n";
@@ -77,6 +71,67 @@ QString msgNoFunctionForModification(const AbstractMetaClass *klass,
return result;
}
+QString msgArgumentIndexOutOfRange(const AbstractMetaFunction *func, int index)
+{
+ QString result;
+ QTextStream str(&result);
+ str <<"Index " << index << " out of range for " << func->classQualifiedSignature() << '.';
+ return result;
+}
+
+QString msgTypeModificationFailed(const QString &type, int n,
+ const AbstractMetaFunction *func,
+ const QString &why)
+{
+ QString result;
+ QTextStream str(&result);
+ str << "Unable to modify the ";
+ if (n == 0)
+ str << "return type";
+ else
+ str << "type of argument " << n;
+
+ str << " of ";
+ if (auto c = func->ownerClass())
+ str << c->name() << "::";
+ str << func->signature() << " to \"" << type << "\": " << why;
+ return result;
+}
+
+QString msgInvalidArgumentModification(const AbstractMetaFunctionCPtr &func,
+ int argIndex)
+{
+ QString result;
+ QTextStream str(&result);
+ str << "Invalid ";
+ if (argIndex == 0)
+ str << "return type modification";
+ else
+ str << "modification of argument " << argIndex;
+ str << " for " << func->classQualifiedSignature();
+ return result;
+}
+
+QString msgArgumentOutOfRange(int number, int minValue, int maxValue)
+{
+ QString result;
+ QTextStream(&result) << "Argument number " << number
+ << " out of range " << minValue << ".." << maxValue << '.';
+ return result;
+}
+
+QString msgArgumentRemovalFailed(const AbstractMetaFunction *func, int n,
+ const QString &why)
+{
+ QString result;
+ QTextStream str(&result);
+ str << "Unable to remove argument " << n << " of ";
+ if (auto c = func->ownerClass())
+ str << c->name() << "::";
+ str << func->signature() << ": " << why;
+ return result;
+}
+
template <class Stream>
static void msgFormatEnumType(Stream &str,
const EnumModelItem &enumItem,
@@ -84,7 +139,7 @@ static void msgFormatEnumType(Stream &str,
{
switch (enumItem->enumKind()) {
case CEnum:
- str << "Enum '" << enumItem->qualifiedName().join(colonColon()) << '\'';
+ str << "Enum '" << enumItem->qualifiedName().join(u"::"_s) << '\'';
break;
case AnonymousEnum: {
const EnumeratorList &values = enumItem->enumerators();
@@ -107,7 +162,7 @@ static void msgFormatEnumType(Stream &str,
}
break;
case EnumClass:
- str << "Scoped enum '" << enumItem->qualifiedName().join(colonColon()) << '\'';
+ str << "Scoped enum '" << enumItem->qualifiedName().join(u"::"_s) << '\'';
break;
}
if (!className.isEmpty())
@@ -115,7 +170,7 @@ static void msgFormatEnumType(Stream &str,
}
static void formatAddedFuncError(const QString &addedFuncName,
- const AbstractMetaClass *context,
+ const AbstractMetaClassCPtr &context,
QTextStream &str)
{
if (context) {
@@ -131,12 +186,12 @@ static void formatAddedFuncError(const QString &addedFuncName,
QString msgAddedFunctionInvalidArgType(const QString &addedFuncName,
const QStringList &typeName,
int pos, const QString &why,
- const AbstractMetaClass *context)
+ const AbstractMetaClassCPtr &context)
{
QString result;
QTextStream str(&result);
formatAddedFuncError(addedFuncName, context, str);
- str << "Unable to translate type \"" << typeName.join(colonColon())
+ str << "Unable to translate type \"" << typeName.join(u"::"_s)
<< "\" of argument " << pos << " of added function \""
<< addedFuncName << "\": " << why;
return result;
@@ -144,18 +199,18 @@ QString msgAddedFunctionInvalidArgType(const QString &addedFuncName,
QString msgAddedFunctionInvalidReturnType(const QString &addedFuncName,
const QStringList &typeName, const QString &why,
- const AbstractMetaClass *context)
+ const AbstractMetaClassCPtr &context)
{
QString result;
QTextStream str(&result);
formatAddedFuncError(addedFuncName, context, str);
- str << "Unable to translate return type \"" << typeName.join(colonColon())
+ str << "Unable to translate return type \"" << typeName.join(u"::"_s)
<< "\" of added function \"" << addedFuncName << "\": "
<< why;
return result;
}
-QString msgUnnamedArgumentDefaultExpression(const AbstractMetaClass *context,
+QString msgUnnamedArgumentDefaultExpression(const AbstractMetaClassCPtr &context,
int n, const QString &className,
const AbstractMetaFunction *f)
{
@@ -168,7 +223,7 @@ QString msgUnnamedArgumentDefaultExpression(const AbstractMetaClass *context,
return result;
}
-QString msgClassOfEnumNotFound(const EnumTypeEntry *entry)
+QString msgClassOfEnumNotFound(const EnumTypeEntryCPtr &entry)
{
QString result;
QTextStream str(&result);
@@ -185,13 +240,14 @@ QString msgNoEnumTypeEntry(const EnumModelItem &enumItem,
QTextStream str(&result);
str << enumItem->sourceLocation();
msgFormatEnumType(str, enumItem, className);
- str << " does not have a type entry";
+ str << " does not have a type entry (type systems: "
+ << TypeDatabase::instance()->loadedTypeSystemNames() << ')';
return result;
}
QString msgNoEnumTypeConflict(const EnumModelItem &enumItem,
const QString &className,
- const TypeEntry *t)
+ const TypeEntryCPtr &t)
{
QString result;
QDebug debug(&result); // Use the debug operator for TypeEntry::Type
@@ -209,22 +265,28 @@ QString msgNamespaceNoTypeEntry(const NamespaceModelItem &item,
QString result;
QTextStream str(&result);
str << item->sourceLocation() << "namespace '" << fullName
- << "' does not have a type entry";
+ << "' does not have a type entry (type systems: "
+ << TypeDatabase::instance()->loadedTypeSystemNames() << ')';
return result;
}
-QString msgAmbiguousVaryingTypesFound(const QString &qualifiedName, const TypeEntries &te)
+QString msgNamespaceNotFound(const QString &name)
{
- QString result = QLatin1String("Ambiguous types of varying types found for \"") + qualifiedName
- + QLatin1String("\": ");
+ return u"namespace '"_s + name + u"' not found."_s;
+}
+
+QString msgAmbiguousVaryingTypesFound(const QString &qualifiedName, const TypeEntryCList &te)
+{
+ QString result = u"Ambiguous types of varying types found for \""_s + qualifiedName
+ + u"\": "_s;
QDebug(&result) << te;
return result;
}
-QString msgAmbiguousTypesFound(const QString &qualifiedName, const TypeEntries &te)
+QString msgAmbiguousTypesFound(const QString &qualifiedName, const TypeEntryCList &te)
{
- QString result = QLatin1String("Ambiguous types found for \"") + qualifiedName
- + QLatin1String("\": ");
+ QString result = u"Ambiguous types found for \""_s + qualifiedName
+ + u"\": "_s;
QDebug(&result) << te;
return result;
}
@@ -245,9 +307,9 @@ QString msgUnmatchedParameterType(const ArgumentModelItem &arg, int n,
QString msgUnmatchedReturnType(const FunctionModelItem &functionItem,
const QString &why)
{
- return QLatin1String("unmatched return type '")
+ return u"unmatched return type '"_s
+ functionItem->type().toString()
- + QLatin1String("': ") + why;
+ + u"': "_s + why;
}
QString msgSkippingFunction(const FunctionModelItem &functionItem,
@@ -255,11 +317,13 @@ QString msgSkippingFunction(const FunctionModelItem &functionItem,
{
QString result;
QTextStream str(&result);
- str << functionItem->sourceLocation() << "skipping ";
- if (functionItem->isAbstract())
+ str << functionItem->sourceLocation() << "skipping "
+ << functionItem->accessPolicy() << ' ';
+ const bool isAbstract = functionItem->attributes().testFlag(FunctionAttribute::Abstract);
+ if (isAbstract)
str << "abstract ";
str << "function '" << signature << "', " << why;
- if (functionItem->isAbstract()) {
+ if (isAbstract) {
str << "\nThis will lead to compilation errors due to not "
"being able to instantiate the wrapper.";
}
@@ -272,13 +336,12 @@ QString msgShadowingFunction(const AbstractMetaFunction *f1,
auto f2Class = f2->implementingClass();
QString result;
QTextStream str(&result);
- str << f2Class->sourceLocation() << "Shadowing: " << f1->implementingClass()->name()
- << "::" << f1->signature() << " and " << f2Class->name() << "::"
- << f2->signature();
+ str << f2Class->sourceLocation() << "Shadowing: " << f1->classQualifiedSignature()
+ << " and " << f2->classQualifiedSignature();
return result;
}
-QString msgSignalOverloaded(const AbstractMetaClass *c,
+QString msgSignalOverloaded(const AbstractMetaClassCPtr &c,
const AbstractMetaFunction *f)
{
QString result;
@@ -293,47 +356,59 @@ QString msgSkippingField(const VariableModelItem &field, const QString &classNam
{
QString result;
QTextStream str(&result);
- str << field->sourceLocation() << "skipping field '" << className
- << "::" << field->name() << "' with unmatched type '" << type << '\'';
+ str << field->sourceLocation() << "skipping " << field->accessPolicy()
+ << " field '" << className << "::" << field->name()
+ << "' with unmatched type '" << type << '\'';
return result;
}
static const char msgCompilationError[] =
"This could potentially lead to compilation errors.";
-QString msgTypeNotDefined(const TypeEntry *entry)
+QString msgTypeNotDefined(const TypeEntryCPtr &entry)
{
QString result;
QTextStream str(&result);
+ const bool hasConfigCondition = entry->isComplex()
+ && std::static_pointer_cast<const ConfigurableTypeEntry>(entry)->hasConfigCondition();
str << entry->sourceLocation() << "type '" <<entry->qualifiedCppName()
- << "' is specified in typesystem, but not defined. " << msgCompilationError;
+ << "' is specified in typesystem, but not defined";
+ if (hasConfigCondition)
+ str << " (disabled by configuration?).";
+ else
+ str << ". " << msgCompilationError;
return result;
}
-QString msgGlobalFunctionNotDefined(const FunctionTypeEntry *fte,
- const QString &signature)
+QString msgGlobalFunctionNotDefined(const FunctionTypeEntryCPtr &fte,
+ const QString &signature,
+ const QStringList &candidates)
{
QString result;
QTextStream str(&result);
str << fte->sourceLocation() << "Global function '" << signature
- << "' is specified in typesystem, but not defined. " << msgCompilationError;
+ << "' is specified in typesystem, but not defined.";
+ if (!candidates.isEmpty())
+ str << " Candidates are: " << candidates.join(u", "_s);
+ str << ' ' << msgCompilationError;
return result;
}
QString msgStrippingArgument(const FunctionModelItem &f, int i,
const QString &originalSignature,
- const ArgumentModelItem &arg)
+ const ArgumentModelItem &arg,
+ const QString &reason)
{
QString result;
QTextStream str(&result);
str << f->sourceLocation() << "Stripping argument #" << (i + 1) << " of "
<< originalSignature << " due to unmatched type \""
<< arg->type().toString() << "\" with default expression \""
- << arg->defaultValueExpression() << "\".";
+ << arg->defaultValueExpression() << "\": " << reason;
return result;
}
-QString msgEnumNotDefined(const EnumTypeEntry *t)
+QString msgEnumNotDefined(const EnumTypeEntryCPtr &t)
{
QString result;
QTextStream str(&result);
@@ -342,7 +417,7 @@ QString msgEnumNotDefined(const EnumTypeEntry *t)
return result;
}
-QString msgUnknownBase(const AbstractMetaClass *metaClass,
+QString msgUnknownBase(const AbstractMetaClassCPtr &metaClass,
const QString &baseClassName)
{
QString result;
@@ -352,7 +427,7 @@ QString msgUnknownBase(const AbstractMetaClass *metaClass,
return result;
}
-QString msgBaseNotInTypeSystem(const AbstractMetaClass *metaClass,
+QString msgBaseNotInTypeSystem(const AbstractMetaClassCPtr &metaClass,
const QString &baseClassName)
{
QString result;
@@ -375,20 +450,18 @@ QString msgArrayModificationFailed(const FunctionModelItem &functionItem,
QString msgCannotResolveEntity(const QString &name, const QString &reason)
{
- return QLatin1String("Cannot resolve entity \"") + name
- + QLatin1String("\": ") + reason;
+ return u"Cannot resolve entity \""_s + name + u"\": "_s + reason;
}
QString msgCannotSetArrayUsage(const QString &function, int i, const QString &reason)
{
- return function + QLatin1String(": Cannot use parameter ")
- + QString::number(i + 1) + QLatin1String(" as an array: ") + reason;
+ return function + u": Cannot use parameter "_s
+ + QString::number(i + 1) + u" as an array: "_s + reason;
}
QString msgUnableToTranslateType(const QString &t, const QString &why)
{
- return QLatin1String("Unable to translate type \"")
- + t + QLatin1String("\": ") + why;
+ return u"Unable to translate type \""_s + t + u"\": "_s + why;
}
QString msgUnableToTranslateType(const TypeInfo &typeInfo,
@@ -399,24 +472,24 @@ QString msgUnableToTranslateType(const TypeInfo &typeInfo,
QString msgCannotFindTypeEntry(const QString &t)
{
- return QLatin1String("Cannot find type entry for \"") + t + QLatin1String("\".");
+ return u"Cannot find type entry for \""_s + t + u"\"."_s;
}
QString msgCannotFindTypeEntryForSmartPointer(const QString &t, const QString &smartPointerType)
{
- return QLatin1String("Cannot find type entry \"") + t
- + QLatin1String("\" for instantiation of \"") + smartPointerType + QLatin1String("\".");
+ return u"Cannot find type entry \""_s + t
+ + u"\" for instantiation of \""_s +smartPointerType + u"\"."_s;
}
QString msgInvalidSmartPointerType(const TypeInfo &i)
{
- return QLatin1String("Invalid smart pointer type \"") + i.toString() + QLatin1String("\".");
+ return u"Invalid smart pointer type \""_s +i.toString() + u"\"."_s;
}
QString msgCannotFindSmartPointerInstantion(const TypeInfo &i)
{
- return QLatin1String("Cannot find instantiation of smart pointer type for \"")
- + i.toString() + QLatin1String("\".");
+ return u"Cannot find instantiation of smart pointer type for \""_s
+ + i.toString() + u"\"."_s;
}
QString msgCannotTranslateTemplateArgument(int i,
@@ -442,9 +515,9 @@ QString msgDisallowThread(const AbstractMetaFunction *f)
QString msgNamespaceToBeExtendedNotFound(const QString &namespaceName, const QString &packageName)
{
- return QLatin1String("The namespace '") + namespaceName
- + QLatin1String("' to be extended cannot be found in package ")
- + packageName + QLatin1Char('.');
+ return u"The namespace '"_s + namespaceName
+ + u"' to be extended cannot be found in package "_s
+ + packageName + u'.';
}
QString msgPropertyTypeParsingFailed(const QString &name, const QString &typeName,
@@ -459,12 +532,11 @@ QString msgPropertyTypeParsingFailed(const QString &name, const QString &typeNam
QString msgPropertyExists(const QString &className, const QString &name)
{
- return QLatin1String("class ") + className
- + QLatin1String(" already has a property \"") + name
- + QLatin1String("\" (defined by Q_PROPERTY).");
+ return u"class "_s + className + u" already has a property \""_s
+ + name + u"\" (defined by Q_PROPERTY)."_s;
}
-QString msgFunctionVisibilityModified(const AbstractMetaClass *c,
+QString msgFunctionVisibilityModified(const AbstractMetaClassCPtr &c,
const AbstractMetaFunction *f)
{
QString result;
@@ -474,7 +546,7 @@ QString msgFunctionVisibilityModified(const AbstractMetaClass *c,
return result;
}
-QString msgUsingMemberClassNotFound(const AbstractMetaClass *c,
+QString msgUsingMemberClassNotFound(const AbstractMetaClassCPtr &c,
const QString &baseClassName,
const QString &memberName)
{
@@ -492,40 +564,73 @@ QString msgCannotFindDocumentation(const QString &fileName,
const QString &query)
{
QString result;
- QTextStream(&result) << "Cannot find documentation for " << what
- << ' ' << name << " in:\n " << QDir::toNativeSeparators(fileName)
- << "\n using query:\n " << query;
+ QTextStream str(&result);
+ str << "Cannot find documentation for " << what
+ << ' ' << name << " in:\n " << QDir::toNativeSeparators(fileName);
+ if (!query.isEmpty())
+ str << "\n using query:\n " << query;
+ return result;
+}
+
+QString msgFallbackForDocumentation(const QString &fileName,
+ const char *what, const QString &name,
+ const QString &query)
+{
+ QString result;
+ QTextStream str(&result);
+ str << "Fallback used while trying to find documentation for " << what
+ << ' ' << name << " in:\n " << QDir::toNativeSeparators(fileName);
+ if (!query.isEmpty())
+ str << "\n using query:\n " << query;
+ return result;
+}
+
+static QString functionDescription(const AbstractMetaFunction *function)
+{
+ QString result = u'"' + function->classQualifiedSignature() + u'"';
+ if (function->flags().testFlag(AbstractMetaFunction::Flag::HiddenFriend))
+ result += u" (hidden friend)"_s;
+ if (function->flags().testFlag(AbstractMetaFunction::Flag::InheritedFromTemplate))
+ result += u" (inherited from template)"_s;
return result;
}
QString msgCannotFindDocumentation(const QString &fileName,
- const AbstractMetaClass *metaClass,
const AbstractMetaFunction *function,
const QString &query)
{
- const QString name = metaClass->name() + QLatin1String("::")
- + function->minimalSignature();
- return msgCannotFindDocumentation(fileName, "function", name, query);
+ return msgCannotFindDocumentation(fileName, "function",
+ functionDescription(function), query);
+}
+
+QString msgFallbackForDocumentation(const QString &fileName,
+ const AbstractMetaFunction *function,
+ const QString &query)
+{
+ return msgFallbackForDocumentation(fileName, "function",
+ functionDescription(function), query);
}
QString msgCannotFindDocumentation(const QString &fileName,
- const AbstractMetaClass *metaClass,
+ const AbstractMetaClassCPtr &metaClass,
const AbstractMetaEnum &e,
const QString &query)
{
- return msgCannotFindDocumentation(fileName, "enum",
- metaClass->name() + QLatin1String("::") + e.name(),
- query);
+ QString name = e.name();
+ if (metaClass != nullptr)
+ name.prepend(metaClass->name() + "::"_L1);
+ return msgCannotFindDocumentation(fileName, "enum", name, query);
}
QString msgCannotFindDocumentation(const QString &fileName,
- const AbstractMetaClass *metaClass,
+ const AbstractMetaClassCPtr &metaClass,
const AbstractMetaField &f,
const QString &query)
{
- return msgCannotFindDocumentation(fileName, "field",
- metaClass->name() + QLatin1String("::") + f.name(),
- query);
+ QString name = f.name();
+ if (metaClass != nullptr)
+ name.prepend(metaClass->name() + "::"_L1);
+ return msgCannotFindDocumentation(fileName, "field", name, query);
}
QString msgXpathDocModificationError(const DocModificationList& mods,
@@ -553,13 +658,13 @@ QString msgXpathDocModificationError(const DocModificationList& mods,
QString msgCannotOpenForReading(const QFile &f)
{
- return QStringLiteral("Failed to open file '%1' for reading: %2")
+ return QString::fromLatin1("Failed to open file '%1' for reading: %2")
.arg(QDir::toNativeSeparators(f.fileName()), f.errorString());
}
QString msgCannotOpenForWriting(const QFile &f)
{
- return QStringLiteral("Failed to open file '%1' for writing: %2")
+ return QString::fromLatin1("Failed to open file '%1' for writing: %2")
.arg(QDir::toNativeSeparators(f.fileName()), f.errorString());
}
@@ -576,80 +681,64 @@ QString msgWriteFailed(const QFile &f, qsizetype size)
QString msgCannotUseEnumAsInt(const QString &name)
{
- return QLatin1String("Cannot convert the protected scoped enum \"") + name
- + QLatin1String("\" to type int when generating wrappers for the protected hack. "
- "Compilation errors may occur when used as a function argument.");
+ return u"Cannot convert the protected scoped enum \""_s + name
+ + u"\" to type int when generating wrappers for the protected hack. "
+ "Compilation errors may occur when used as a function argument."_s;
}
-QString msgConversionTypesDiffer(const QString &varType, const QString &conversionType)
+QString msgCannotFindSmartPointerGetter(const SmartPointerTypeEntryCPtr &te)
{
- QString result;
- QTextStream str(&result);
- str << "Types of receiver variable ('" << varType
- << "') and %%CONVERTTOCPP type system variable ('" << conversionType
- << "') differ";
- QString strippedVarType = varType;
- QString strippedConversionType = conversionType;
- TypeInfo::stripQualifiers(&strippedVarType);
- TypeInfo::stripQualifiers(&strippedConversionType);
- if (strippedVarType == strippedConversionType)
- str << " in qualifiers. Please make sure the type is a distinct token";
- str << '.';
- return result;
+ return u"Getter \""_s + te->getter() + u"()\" of smart pointer \""_s
+ + te->name() + u"\" not found."_s;
}
-QString msgCannotFindSmartPointer(const QString &instantiationType,
- const AbstractMetaClassCList &pointers)
+QString msgCannotFindSmartPointerMethod(const SmartPointerTypeEntryCPtr &te, const QString &m)
{
- QString result;
- QTextStream str(&result);
- str << "Unable to find smart pointer type for " << instantiationType << " (known types:";
- for (auto t : pointers) {
- auto typeEntry = t->typeEntry();
- str << ' ' << typeEntry->targetLangName() << '/' << typeEntry->qualifiedCppName();
- }
- str << ").";
- return result;
+ return u"Method \""_s + m + u"()\" of smart pointer \""_s
+ + te->name() + u"\" not found."_s;
+}
+
+QString msgMethodNotFound(const AbstractMetaClassCPtr &klass, const QString &name)
+{
+ return u"Method \""_s + name + u"\" not found in class "_s
+ + klass->name() + u'.';
}
// main.cpp
-QString msgLeftOverArguments(const QVariantMap &remainingArgs)
+QString msgLeftOverArguments(const QString &remainingArgs, const QStringList &argV)
{
QString message;
QTextStream str(&message);
- str << "shiboken: Called with wrong arguments:";
- for (auto it = remainingArgs.cbegin(), end = remainingArgs.cend(); it != end; ++it) {
- str << ' ' << it.key();
- const QString value = it.value().toString();
- if (!value.isEmpty())
- str << ' ' << value;
- }
- str << "\nCommand line: " << QCoreApplication::arguments().join(QLatin1Char(' '));
+ str << "shiboken: Unprocessed arguments: " << remainingArgs
+ << "\nCommand line: " << argV.join(u' ');
return message;
}
QString msgInvalidVersion(const QString &package, const QString &version)
{
- return QLatin1String("Invalid version \"") + version
- + QLatin1String("\" specified for package ") + package + QLatin1Char('.');
+ return u"Invalid version \""_s + version
+ + u"\" specified for package "_s + package + u'.';
}
QString msgCyclicDependency(const QString &funcName, const QString &graphName,
- const QList<const AbstractMetaFunction *> &involvedConversions)
+ const AbstractMetaFunctionCList &cyclic,
+ const AbstractMetaFunctionCList &involvedConversions)
{
QString result;
QTextStream str(&result);
str << "Cyclic dependency found on overloaddata for \"" << funcName
- << "\" method! The graph boy saved the graph at \""
- << QDir::toNativeSeparators(graphName) << "\".";
- if (const int count = involvedConversions.size()) {
+ << "\" method! The graph boy saved the graph at \"" << QDir::toNativeSeparators(graphName)
+ << "\". Cyclic functions:";
+ for (const auto &c : cyclic)
+ str << ' ' << c->signature();
+ if (const auto count = involvedConversions.size()) {
str << " Implicit conversions (" << count << "): ";
- for (int i = 0; i < count; ++i) {
+ for (qsizetype i = 0; i < count; ++i) {
if (i)
str << ", \"";
str << involvedConversions.at(i)->signature() << '"';
- if (const AbstractMetaClass *c = involvedConversions.at(i)->implementingClass())
+ if (const auto c = involvedConversions.at(i)->implementingClass())
str << '(' << c->name() << ')';
}
}
@@ -658,19 +747,28 @@ QString msgCyclicDependency(const QString &funcName, const QString &graphName,
// shibokengenerator.cpp
-QString msgClassNotFound(const TypeEntry *t)
+QString msgClassNotFound(const TypeEntryCPtr &t)
{
- return QLatin1String("Could not find class \"")
+ return u"Could not find class \""_s
+ t->qualifiedCppName()
- + QLatin1String("\" in the code model. Maybe it is forward declared?");
+ + u"\" in the code model. Maybe it is forward declared?"_s;
+}
+
+QString msgEnclosingClassNotFound(const TypeEntryCPtr &t)
+{
+ QString result;
+ QTextStream str(&result);
+ str << "Warning: Enclosing class \"" << t->parent()->name()
+ << "\" of class \"" << t->name() << "\" not found.";
+ return result;
}
-QString msgUnknownOperator(const AbstractMetaFunction* func)
+QString msgUnknownOperator(const AbstractMetaFunction *func)
{
- QString result = QLatin1String("Unknown operator: \"") + func->originalName()
- + QLatin1Char('"');
- if (const AbstractMetaClass *c = func->implementingClass())
- result += QLatin1String(" in class: ") + c->name();
+ QString result = u"Unknown operator: \""_s + func->originalName()
+ + u'"';
+ if (const auto c = func->implementingClass())
+ result += u" in class: "_s + c->name();
return result;
}
@@ -680,7 +778,7 @@ QString msgWrongIndex(const char *varName, const QString &capture,
QString result;
QTextStream str(&result);
str << "Wrong index for " << varName << " variable (" << capture << ") on ";
- if (const AbstractMetaClass *c = func->implementingClass())
+ if (const auto c = func->implementingClass())
str << c->name() << "::";
str << func->signature();
return result;
@@ -698,8 +796,7 @@ QString msgCannotFindType(const QString &type, const QString &variable,
QString msgCannotBuildMetaType(const QString &s)
{
- return QLatin1String("Unable to build meta type for \"")
- + s + QLatin1String("\": ");
+ return u"Unable to build meta type for \""_s + s + u"\": "_s;
}
QString msgCouldNotFindMinimalConstructor(const QString &where, const QString &type, const QString &why)
@@ -723,17 +820,17 @@ QString msgRejectReason(const TypeRejection &r, const QString &needle)
QTextStream str(&result);
switch (r.matchType) {
case TypeRejection::ExcludeClass:
- str << " matches class exclusion \"" << r.className.pattern() << '"';
+ str << "matches class exclusion \"" << r.className.pattern() << '"';
break;
case TypeRejection::Function:
case TypeRejection::Field:
case TypeRejection::Enum:
- str << " matches class \"" << r.className.pattern() << "\" and \""
+ str << "matches class \"" << r.className.pattern() << "\" and \""
<< r.pattern.pattern() << '"';
break;
case TypeRejection::ArgumentType:
case TypeRejection::ReturnType:
- str << " matches class \"" << r.className.pattern() << "\" and \""
+ str << "matches class \"" << r.className.pattern() << "\" and \""
<< needle << "\" matches \"" << r.pattern.pattern() << '"';
break;
}
@@ -745,36 +842,36 @@ QString msgRejectReason(const TypeRejection &r, const QString &needle)
QString msgCannotFindNamespaceToExtend(const QString &name,
const QString &extendsPackage)
{
- return QLatin1String("Cannot find namespace ") + name
- + QLatin1String(" in package ") + extendsPackage;
+ return u"Cannot find namespace "_s + name
+ + u" in package "_s + extendsPackage;
}
QString msgExtendingNamespaceRequiresPattern(const QString &name)
{
- return QLatin1String("Namespace ") + name
- + QLatin1String(" requires a file pattern since it extends another namespace.");
+ return u"Namespace "_s + name
+ + u" requires a file pattern since it extends another namespace."_s;
}
QString msgInvalidRegularExpression(const QString &pattern, const QString &why)
{
- return QLatin1String("Invalid pattern \"") + pattern + QLatin1String("\": ") + why;
+ return u"Invalid pattern \""_s + pattern + u"\": "_s + why;
}
QString msgNoRootTypeSystemEntry()
{
- return QLatin1String("Type system entry appears out of order, there does not seem to be a root type system element.");
+ return u"Type system entry appears out of order, there does not seem to be a root type system element."_s;
}
QString msgIncorrectlyNestedName(const QString &name)
{
- return QLatin1String("Nesting types by specifying '::' is no longer supported (")
- + name + QLatin1String(").");
+ return u"Nesting types by specifying '::' is no longer supported ("_s
+ + name + u")."_s;
}
QString msgCannotFindView(const QString &viewedName, const QString &name)
{
- return QLatin1String("Unable to find viewed type ") + viewedName
- + QLatin1String(" for ") + name;
+ return u"Unable to find viewed type "_s + viewedName
+ + u" for "_s + name;
}
QString msgCannotFindSnippet(const QString &file, const QString &snippetLabel)
@@ -786,6 +883,21 @@ QString msgCannotFindSnippet(const QString &file, const QString &snippetLabel)
return result;
}
+QString msgSnippetError(const QString &context, const char *what)
+{
+ return "Error processing code snippet of "_L1 + context
+ + ": "_L1 + QString::fromUtf8(what);
+}
+
+QString msgUnableToResolveTypedef(const QString &sourceType, const QString &sourceName)
+{
+ QString result;
+ QTextStream(&result) << "Unable to resolve typedef \"" << sourceType
+ << "\": Could not find a value, container, object or smart pointer type named \""
+ << sourceName << "\".";
+ return result;
+}
+
// cppgenerator.cpp
QString msgPureVirtualFunctionRemoved(const AbstractMetaFunction *f)
@@ -814,11 +926,57 @@ QString msgUnknownTypeInArgumentTypeReplacement(const QString &typeReplaced,
QString msgDuplicateBuiltInTypeEntry(const QString &name)
{
- return u"A type entry duplicating the built-in type \""_qs
- + name + u"\" was found. It is ignored."_qs;
+ return u"A type entry duplicating the built-in type \""_s
+ + name + u"\" was found. It is ignored."_s;
}
QString msgDuplicateTypeEntry(const QString &name)
{
- return u"Duplicate type entry: '"_qs + name + u"'."_qs;
+ return u"Duplicate type entry: '"_s + name + u"'."_s;
+}
+
+QString msgInvalidTargetLanguageApiName(const QString &name)
+{
+ return u"Invalid target language API name \""_s
+ + name + u"\"."_s;
+}
+
+QString msgUnknownCheckFunction(const TypeEntryCPtr &t)
+{
+ return u"Unknown check function for type: '"_s
+ + t->qualifiedCppName() + u"'."_s;
+}
+
+QString msgArgumentClassNotFound(const AbstractMetaFunctionCPtr &func,
+ const TypeEntryCPtr &t)
+{
+ QString result;
+ QTextStream(&result) << "Internal Error: Class \"" << t->qualifiedCppName()
+ << "\" for \"" << func->classQualifiedSignature() << "\" not found!";
+ return result;
+}
+
+QString msgMissingCustomConversion(const TypeEntryCPtr &t)
+{
+ QString result;
+ QTextStream(&result) << "Entry \"" << t->qualifiedCppName()
+ << "\" is missing a custom conversion.";
+ return result;
+}
+
+QString msgUnknownArrayPointerConversion(const QString &s)
+{
+ return u"Warning: Falling back to pointer conversion for unknown array type \""_s
+ + s + u"\""_s;
+}
+
+QString msgMissingProjectFileMarker(const QString &name, const QByteArray &startMarker)
+{
+ return u"First line of project file \""_s + QDir::toNativeSeparators(name)
+ + u"\" must be the string \""_s + QString::fromLatin1(startMarker) + u"\"."_s;
+}
+
+QString msgInvalidLanguageLevel(const QString &l)
+{
+ return u"Invalid argument for language level: \""_s + l + u"\"."_s;
}
diff --git a/sources/shiboken6/ApiExtractor/messages.h b/sources/shiboken6/ApiExtractor/messages.h
index cc8c00d02..2899cbdfa 100644
--- a/sources/shiboken6/ApiExtractor/messages.h
+++ b/sources/shiboken6/ApiExtractor/messages.h
@@ -1,44 +1,19 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef MESSAGES_H
#define MESSAGES_H
#include "abstractmetalang_typedefs.h"
#include "parser/codemodel_fwd.h"
+#include "modifications_typedefs.h"
#include "typesystem_typedefs.h"
-#include <QtCore/QMap>
#include <QtCore/QString>
-#include <QtCore/QList>
class EnumTypeEntry;
class FunctionTypeEntry;
+class SmartPointerTypeEntry;
class TypeEntry;
class TypeInfo;
struct TypeRejection;
@@ -50,23 +25,37 @@ QT_FORWARD_DECLARE_CLASS(QXmlStreamReader)
QString msgAddedFunctionInvalidArgType(const QString &addedFuncName,
const QStringList &typeName,
int pos, const QString &why,
- const AbstractMetaClass *context = nullptr);
+ const AbstractMetaClassCPtr &context = {});
QString msgAddedFunctionInvalidReturnType(const QString &addedFuncName,
const QStringList &typeName, const QString &why,
- const AbstractMetaClass *context = nullptr);
+ const AbstractMetaClassCPtr &context = {});
-QString msgUnnamedArgumentDefaultExpression(const AbstractMetaClass *context,
+QString msgUnnamedArgumentDefaultExpression(const AbstractMetaClassCPtr &context,
int n, const QString &className,
const AbstractMetaFunction *f);
-QString msgNoFunctionForModification(const AbstractMetaClass *klass,
+QString msgArgumentIndexOutOfRange(const AbstractMetaFunction *func, int index);
+
+QString msgNoFunctionForModification(const AbstractMetaClassCPtr &klass,
const QString &signature,
const QString &originalSignature,
const QStringList &possibleSignatures,
const AbstractMetaFunctionCList &allFunctions);
-QString msgClassOfEnumNotFound(const EnumTypeEntry *entry);
+QString msgTypeModificationFailed(const QString &type, int n,
+ const AbstractMetaFunction *func,
+ const QString &why);
+
+QString msgInvalidArgumentModification(const AbstractMetaFunctionCPtr &func,
+ int argIndex);
+
+QString msgArgumentOutOfRange(int number, int minValue, int maxValue);
+
+QString msgArgumentRemovalFailed(const AbstractMetaFunction *func, int n,
+ const QString &why);
+
+QString msgClassOfEnumNotFound(const EnumTypeEntryCPtr &entry);
QString msgNoEnumTypeEntry(const EnumModelItem &enumItem,
const QString &className);
@@ -74,13 +63,15 @@ QString msgNoEnumTypeEntry(const EnumModelItem &enumItem,
QString msgNoEnumTypeConflict(const EnumModelItem &enumItem,
const QString &className,
- const TypeEntry *t);
+ const TypeEntryCPtr &t);
QString msgNamespaceNoTypeEntry(const NamespaceModelItem &item,
const QString &fullName);
-QString msgAmbiguousVaryingTypesFound(const QString &qualifiedName, const TypeEntries &te);
-QString msgAmbiguousTypesFound(const QString &qualifiedName, const TypeEntries &te);
+QString msgNamespaceNotFound(const QString &name);
+
+QString msgAmbiguousVaryingTypesFound(const QString &qualifiedName, const TypeEntryCList &te);
+QString msgAmbiguousTypesFound(const QString &qualifiedName, const TypeEntryCList &te);
QString msgUnmatchedParameterType(const ArgumentModelItem &arg, int n,
const QString &why);
@@ -91,7 +82,7 @@ QString msgUnmatchedReturnType(const FunctionModelItem &functionItem,
QString msgShadowingFunction(const AbstractMetaFunction *f1,
const AbstractMetaFunction *f2);
-QString msgSignalOverloaded(const AbstractMetaClass *c,
+QString msgSignalOverloaded(const AbstractMetaClassCPtr &c,
const AbstractMetaFunction *f);
QString msgSkippingFunction(const FunctionModelItem &functionItem,
@@ -100,21 +91,23 @@ QString msgSkippingFunction(const FunctionModelItem &functionItem,
QString msgSkippingField(const VariableModelItem &field, const QString &className,
const QString &type);
-QString msgTypeNotDefined(const TypeEntry *entry);
+QString msgTypeNotDefined(const TypeEntryCPtr &entry);
-QString msgGlobalFunctionNotDefined(const FunctionTypeEntry *fte,
- const QString &signature);
+QString msgGlobalFunctionNotDefined(const FunctionTypeEntryCPtr &fte,
+ const QString &signature,
+ const QStringList &candidates);
QString msgStrippingArgument(const FunctionModelItem &f, int i,
const QString &originalSignature,
- const ArgumentModelItem &arg);
+ const ArgumentModelItem &arg,
+ const QString &reason);
-QString msgEnumNotDefined(const EnumTypeEntry *t);
+QString msgEnumNotDefined(const EnumTypeEntryCPtr &t);
-QString msgUnknownBase(const AbstractMetaClass *metaClass,
+QString msgUnknownBase(const AbstractMetaClassCPtr &metaClass,
const QString &baseClassName);
-QString msgBaseNotInTypeSystem(const AbstractMetaClass *metaClass,
+QString msgBaseNotInTypeSystem(const AbstractMetaClassCPtr &metaClass,
const QString &baseClassName);
QString msgArrayModificationFailed(const FunctionModelItem &functionItem,
@@ -148,29 +141,36 @@ QString msgPropertyTypeParsingFailed(const QString &name, const QString &typeNam
const QString &why);
QString msgPropertyExists(const QString &className, const QString &name);
-QString msgFunctionVisibilityModified(const AbstractMetaClass *c,
+QString msgFunctionVisibilityModified(const AbstractMetaClassCPtr &c,
const AbstractMetaFunction *f);
-QString msgUsingMemberClassNotFound(const AbstractMetaClass *c,
+QString msgUsingMemberClassNotFound(const AbstractMetaClassCPtr &c,
const QString &baseClassName,
const QString &memberName);
QString msgCannotFindDocumentation(const QString &fileName,
const char *what, const QString &name,
- const QString &query);
+ const QString &query = {});
+
+QString msgFallbackForDocumentation(const QString &fileName,
+ const char *what, const QString &name,
+ const QString &query = {});
QString msgCannotFindDocumentation(const QString &fileName,
- const AbstractMetaClass *metaClass,
const AbstractMetaFunction *function,
- const QString &query);
+ const QString &query = {});
+
+QString msgFallbackForDocumentation(const QString &fileName,
+ const AbstractMetaFunction *function,
+ const QString &query = {});
QString msgCannotFindDocumentation(const QString &fileName,
- const AbstractMetaClass *metaClass,
+ const AbstractMetaClassCPtr &metaClass,
const AbstractMetaEnum &e,
- const QString &query);
+ const QString &query = {});
QString msgCannotFindDocumentation(const QString &fileName,
- const AbstractMetaClass *metaClass,
+ const AbstractMetaClassCPtr &metaClass,
const AbstractMetaField &f,
const QString &query);
@@ -185,12 +185,13 @@ QString msgWriteFailed(const QFile &f, qsizetype size);
QString msgCannotUseEnumAsInt(const QString &name);
-QString msgConversionTypesDiffer(const QString &varType, const QString &conversionType);
+QString msgCannotFindSmartPointerGetter(const SmartPointerTypeEntryCPtr &);
+
+QString msgCannotFindSmartPointerMethod(const SmartPointerTypeEntryCPtr &te, const QString &m);
-QString msgCannotFindSmartPointer(const QString &instantiationType,
- const AbstractMetaClassCList &pointers);
+QString msgMethodNotFound(const AbstractMetaClassCPtr &klass, const QString &name);
-QString msgLeftOverArguments(const QVariantMap &remainingArgs);
+QString msgLeftOverArguments(const QString &remainingArgs, const QStringList &argV);
QString msgInvalidVersion(const QString &package, const QString &version);
@@ -208,13 +209,18 @@ QString msgIncorrectlyNestedName(const QString &name);
QString msgCannotFindView(const QString &viewedName, const QString &name);
QString msgCannotFindSnippet(const QString &file, const QString &snippetLabel);
+QString msgSnippetError(const QString &context, const char *what);
+QString msgUnableToResolveTypedef(const QString &sourceType, const QString &sourceName);
QString msgCyclicDependency(const QString &funcName, const QString &graphName,
- const QList<const AbstractMetaFunction *> &involvedConversions);
+ const AbstractMetaFunctionCList &cyclic,
+ const AbstractMetaFunctionCList &involvedConversions);
-QString msgClassNotFound(const TypeEntry *t);
+QString msgClassNotFound(const TypeEntryCPtr &t);
-QString msgUnknownOperator(const AbstractMetaFunction* func);
+QString msgEnclosingClassNotFound(const TypeEntryCPtr &t);
+
+QString msgUnknownOperator(const AbstractMetaFunction *func);
QString msgWrongIndex(const char *varName, const QString &capture,
const AbstractMetaFunction *func);
@@ -236,5 +242,19 @@ QString msgUnknownTypeInArgumentTypeReplacement(const QString &typeReplaced,
QString msgDuplicateBuiltInTypeEntry(const QString &name);
QString msgDuplicateTypeEntry(const QString &name);
+QString msgInvalidTargetLanguageApiName(const QString &name);
+
+QString msgUnknownCheckFunction(const TypeEntryCPtr &t);
+
+QString msgArgumentClassNotFound(const AbstractMetaFunctionCPtr &func,
+ const TypeEntryCPtr &t);
+
+QString msgMissingCustomConversion(const TypeEntryCPtr &t);
+
+QString msgUnknownArrayPointerConversion(const QString &s);
+
+QString msgMissingProjectFileMarker(const QString &name, const QByteArray &startMarker);
+
+QString msgInvalidLanguageLevel(const QString &l);
#endif // MESSAGES_H
diff --git a/sources/shiboken6/ApiExtractor/modifications.cpp b/sources/shiboken6/ApiExtractor/modifications.cpp
index 118b511e6..d876e8035 100644
--- a/sources/shiboken6/ApiExtractor/modifications.cpp
+++ b/sources/shiboken6/ApiExtractor/modifications.cpp
@@ -1,102 +1,18 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "modifications.h"
-#include "modifications_p.h"
-#include "exception.h"
-#include "typedatabase.h"
-#include "typeparser.h"
-#include "typesystem.h"
+#include "codesnip.h"
+
+#include "qtcompat.h"
#include <QtCore/QDebug>
+#include <QtCore/QRegularExpression>
#include <algorithm>
#include <limits>
-static inline QString callOperator() { return QStringLiteral("operator()"); }
-
-QString TemplateInstance::expandCode() const
-{
- TemplateEntry *templateEntry = TypeDatabase::instance()->findTemplate(m_name);
- if (!templateEntry) {
- const QString m = QLatin1String("<insert-template> referring to non-existing template '")
- + m_name + QLatin1String("'.");
- throw Exception(m);
- }
-
- QString code = templateEntry->code();
- for (auto it = replaceRules.cbegin(), end = replaceRules.cend(); it != end; ++it)
- code.replace(it.key(), it.value());
- while (!code.isEmpty() && code.at(code.size() - 1).isSpace())
- code.chop(1);
- QString result = QLatin1String("// TEMPLATE - ") + m_name + QLatin1String(" - START");
- if (!code.startsWith(QLatin1Char('\n')))
- result += QLatin1Char('\n');
- result += code;
- result += QLatin1String("\n// TEMPLATE - ") + m_name + QLatin1String(" - END\n");
- return result;
-}
-
-// ---------------------- CodeSnipFragment
-QString CodeSnipFragment::code() const
-{
- return m_instance ? m_instance->expandCode() : m_code;
-}
-
-// ---------------------- CodeSnipAbstract
-QString CodeSnipAbstract::code() const
-{
- QString res;
- for (const CodeSnipFragment &codeFrag : codeList)
- res.append(codeFrag.code());
-
- return res;
-}
-
-void CodeSnipAbstract::addCode(const QString &code)
-{
- codeList.append(CodeSnipFragment(fixSpaces(code)));
-}
-
-QRegularExpression CodeSnipAbstract::placeHolderRegex(int index)
-{
- return QRegularExpression(QLatin1Char('%') + QString::number(index) + QStringLiteral("\\b"));
-}
-
-// ---------------------- Modification
-QString FunctionModification::accessModifierString() const
-{
- if (isPrivate()) return QLatin1String("private");
- if (isProtected()) return QLatin1String("protected");
- if (isPublic()) return QLatin1String("public");
- if (isFriendly()) return QLatin1String("friendly");
- return QString();
-}
+using namespace Qt::StringLiterals;
// ---------------------- FieldModification
@@ -108,6 +24,7 @@ public:
bool m_readable = true;
bool m_writable = true;
bool m_removed = false;
+ bool m_opaqueContainer = false;
TypeSystem::SnakeCase snakeCase = TypeSystem::SnakeCase::Unspecified;
};
@@ -117,8 +34,8 @@ FieldModification::FieldModification() : d(new FieldModificationData)
FieldModification::FieldModification(const FieldModification &) = default;
FieldModification &FieldModification::operator=(const FieldModification &) = default;
-FieldModification::FieldModification(FieldModification &&) = default;
-FieldModification &FieldModification::operator=(FieldModification &&) = default;
+FieldModification::FieldModification(FieldModification &&) noexcept = default;
+FieldModification &FieldModification::operator=(FieldModification &&) noexcept = default;
FieldModification::~FieldModification() = default;
QString FieldModification::name() const
@@ -181,193 +98,26 @@ void FieldModification::setRemoved(bool r)
d->m_removed = r;
}
-TypeSystem::SnakeCase FieldModification::snakeCase() const
-{
- return d->snakeCase;
-}
-
-void FieldModification::setSnakeCase(TypeSystem::SnakeCase s)
-{
- if (d->snakeCase != s)
- d->snakeCase = s;
-}
-
-// Helpers to split a parameter list of <add-function>, <declare-function>
-// (@ denoting names), like
-// "void foo(QList<X,Y> &@list@ = QList<X,Y>{1,2}, int @b@=5, ...)"
-namespace AddedFunctionParser {
-
-bool Argument::equals(const Argument &rhs) const
-{
- return type == rhs.type && name == rhs.name && defaultValue == rhs.defaultValue;
-}
-
-#ifndef QT_NO_DEBUG_STREAM
-QDebug operator<<(QDebug d, const Argument &a)
-{
- QDebugStateSaver saver(d);
- d.noquote();
- d.nospace();
- d << "Argument(type=\"" << a.type << '"';
- if (!a.name.isEmpty())
- d << ", name=\"" << a.name << '"';
- if (!a.defaultValue.isEmpty())
- d << ", defaultValue=\"" << a.defaultValue << '"';
- d << ')';
- return d;
-}
-#endif // QT_NO_DEBUG_STREAM
-
-// Helper for finding the end of a function parameter, observing
-// nested template parameters or lists.
-static int parameterTokenEnd(int startPos, QStringView paramString)
-{
- const int end = paramString.size();
- int nestingLevel = 0;
- for (int p = startPos; p < end; ++p) {
- switch (paramString.at(p).toLatin1()) {
- case ',':
- if (nestingLevel == 0)
- return p;
- break;
- case '<': // templates
- case '{': // initializer lists of default values
- case '(': // initialization, function pointers
- case '[': // array dimensions
- ++nestingLevel;
- break;
- case '>':
- case '}':
- case ')':
- case ']':
- --nestingLevel;
- break;
- }
- }
- return end;
-}
-
-// Split a function parameter list into string tokens containing one
-// parameters (including default value, etc).
-static QList<QStringView> splitParameterTokens(QStringView paramString)
+bool FieldModification::isOpaqueContainer() const
{
- QList<QStringView> result;
- int startPos = 0;
- for ( ; startPos < paramString.size(); ) {
- int end = parameterTokenEnd(startPos, paramString);
- result.append(paramString.mid(startPos, end - startPos).trimmed());
- startPos = end + 1;
- }
- return result;
+ return d->m_opaqueContainer;
}
-// Split a function parameter list
-Arguments splitParameters(QStringView paramString, QString *errorMessage)
+void FieldModification::setOpaqueContainer(bool r)
{
- Arguments result;
- const QList<QStringView> tokens = splitParameterTokens(paramString);
-
- for (const auto &t : tokens) {
- Argument argument;
- // Check defaultValue, "int @b@=5"
- const int equalPos = t.lastIndexOf(QLatin1Char('='));
- if (equalPos != -1) {
- const int defaultValuePos = equalPos + 1;
- argument.defaultValue =
- t.mid(defaultValuePos, t.size() - defaultValuePos).trimmed().toString();
- }
- QString typeString = (equalPos != -1 ? t.left(equalPos) : t).trimmed().toString();
- // Check @name@
- const int atPos = typeString.indexOf(QLatin1Char('@'));
- if (atPos != -1) {
- const int namePos = atPos + 1;
- const int nameEndPos = typeString.indexOf(QLatin1Char('@'), namePos);
- if (nameEndPos == -1) {
- if (errorMessage != nullptr) {
- *errorMessage = QLatin1String("Mismatched @ in \"")
- + paramString.toString() + QLatin1Char('"');
- }
- return {};
- }
- argument.name = typeString.mid(namePos, nameEndPos - namePos).trimmed();
- typeString.remove(atPos, nameEndPos - atPos + 1);
- }
- argument.type = typeString.trimmed();
- result.append(argument);
- }
-
- return result;
+ if (d->m_opaqueContainer != r)
+ d->m_opaqueContainer = r;
}
-} // namespace AddedFunctionParser
-
-AddedFunction::AddedFunction(const QString &name, const QList<Argument> &arguments,
- const TypeInfo &returnType) :
- m_name(name),
- m_arguments(arguments),
- m_returnType(returnType)
+TypeSystem::SnakeCase FieldModification::snakeCase() const
{
+ return d->snakeCase;
}
-AddedFunction::AddedFunctionPtr
- AddedFunction::createAddedFunction(const QString &signatureIn, const QString &returnTypeIn,
- QString *errorMessage)
-
+void FieldModification::setSnakeCase(TypeSystem::SnakeCase s)
{
- errorMessage->clear();
-
- QList<Argument> arguments;
- const TypeInfo returnType = returnTypeIn.isEmpty()
- ? TypeInfo::voidType()
- : TypeParser::parse(returnTypeIn, errorMessage);
- if (!errorMessage->isEmpty())
- return {};
-
- QStringView signature = QStringView{signatureIn}.trimmed();
-
- // Skip past "operator()(...)"
- const int parenSearchStartPos = signature.startsWith(callOperator())
- ? callOperator().size() : 0;
- const int openParenPos = signature.indexOf(QLatin1Char('('), parenSearchStartPos);
- if (openParenPos < 0) {
- return AddedFunctionPtr(new AddedFunction(signature.toString(),
- arguments, returnType));
- }
-
- const QString name = signature.left(openParenPos).trimmed().toString();
- const int closingParenPos = signature.lastIndexOf(QLatin1Char(')'));
- if (closingParenPos < 0) {
- *errorMessage = QLatin1String("Missing closing parenthesis");
- return {};
- }
-
- // Check for "foo() const"
- bool isConst = false;
- const int signatureLength = signature.length();
- const int qualifierLength = signatureLength - closingParenPos - 1;
- if (qualifierLength >= 5
- && signature.right(qualifierLength).contains(QLatin1String("const"))) {
- isConst = true;
- }
-
- const auto paramString = signature.mid(openParenPos + 1, closingParenPos - openParenPos - 1);
- const auto params = AddedFunctionParser::splitParameters(paramString, errorMessage);
- if (params.isEmpty() && !errorMessage->isEmpty())
- return {};
- for (const auto &p : params) {
- TypeInfo type = p.type == QLatin1String("...")
- ? TypeInfo::varArgsType() : TypeParser::parse(p.type, errorMessage);
- if (!errorMessage->isEmpty()) {
- errorMessage->prepend(u"Unable to parse added function "_qs + signatureIn
- + u": "_qs);
- return {};
- }
- arguments.append({type, p.name, p.defaultValue});
- }
-
- AddedFunctionPtr result(new AddedFunction(name, arguments, returnType));
- result->setConstant(isConst);
- return result;
+ if (d->snakeCase != s)
+ d->snakeCase = s;
}
// Remove the parameter names enclosed in '@' from an added function signature
@@ -416,17 +166,29 @@ QDebug operator<<(QDebug d, const CodeSnip &s)
QDebugStateSaver saver(d);
d.noquote();
d.nospace();
- d << "CodeSnip(language=" << s.language << ", position=" << s.position << ", \"";
- for (const auto &f : s.codeList) {
- const QString &code = f.code();
- const auto lines = QStringView{code}.split(QLatin1Char('\n'));
- for (int i = 0, size = lines.size(); i < size; ++i) {
- if (i)
- d << "\\n";
- d << lines.at(i).trimmed();
+ const auto size = s.codeList.size();
+ d << "CodeSnip(language=" << s.language << ", position=" << s.position
+ << ", fragments[" << size << "]=";
+ for (qsizetype i = 0; i < size; ++i) {
+ const auto &f = s.codeList.at(i);
+ if (i)
+ d << ", ";
+ d << '#' << i << ' ';
+ if (!f.instance()) {
+ d << '"';
+ const QString &code = f.code();
+ const auto lines = QStringView{code}.split(u'\n');
+ for (qsizetype i = 0, size = lines.size(); i < size; ++i) {
+ if (i)
+ d << "\\n";
+ d << lines.at(i).trimmed();
+ }
+ d << '"';
+ } else {
+ d << "template=\"" << f.instance()->name() << '"';
}
}
- d << "\")";
+ d << ')';
return d;
}
@@ -465,11 +227,11 @@ ArgumentModification::ArgumentModification(int idx) : d(new ArgumentModification
ArgumentModification::ArgumentModification(const ArgumentModification &) = default;
ArgumentModification &ArgumentModification::operator=(const ArgumentModification &) = default;
-ArgumentModification::ArgumentModification(ArgumentModification &&) = default;
-ArgumentModification &ArgumentModification::operator=(ArgumentModification &&) = default;
+ArgumentModification::ArgumentModification(ArgumentModification &&) noexcept = default;
+ArgumentModification &ArgumentModification::operator=(ArgumentModification &&) noexcept = default;
ArgumentModification::~ArgumentModification() = default;
-QString ArgumentModification::modifiedType() const
+const QString &ArgumentModification::modifiedType() const
{
return d->modified_type;
}
@@ -480,6 +242,11 @@ void ArgumentModification::setModifiedType(const QString &value)
d->modified_type = value;
}
+bool ArgumentModification::isTypeModified() const
+{
+ return !d->modified_type.isEmpty();
+}
+
QString ArgumentModification::pyiType() const
{
return d->pyiType;
@@ -642,7 +409,6 @@ public:
QString m_originalSignature;
QRegularExpression m_signaturePattern;
int m_overloadNumber = TypeSystem::OverloadNumberUnset;
- bool m_thread = false;
bool removed = false;
TypeSystem::AllowThread m_allowThread = TypeSystem::AllowThread::Unspecified;
TypeSystem::ExceptionHandling m_exceptionHandling = TypeSystem::ExceptionHandling::Unspecified;
@@ -655,8 +421,8 @@ FunctionModification::FunctionModification() : d(new FunctionModificationData)
FunctionModification::FunctionModification(const FunctionModification &) = default;
FunctionModification &FunctionModification::operator=(const FunctionModification &) = default;
-FunctionModification::FunctionModification(FunctionModification &&) = default;
-FunctionModification &FunctionModification::operator=(FunctionModification &&) = default;
+FunctionModification::FunctionModification(FunctionModification &&) noexcept = default;
+FunctionModification &FunctionModification::operator=(FunctionModification &&) noexcept = default;
FunctionModification::~FunctionModification() = default;
void FunctionModification::formatDebug(QDebug &debug) const
@@ -672,8 +438,6 @@ void FunctionModification::formatDebug(QDebug &debug) const
debug << ", renamedToName=\"" << d->renamedToName << '"';
if (d->m_allowThread != TypeSystem::AllowThread::Unspecified)
debug << ", allowThread=" << int(d->m_allowThread);
- if (d->m_thread)
- debug << ", thread";
if (d->m_exceptionHandling != TypeSystem::ExceptionHandling::Unspecified)
debug << ", exceptionHandling=" << int(d->m_exceptionHandling);
if (!d->m_snips.isEmpty())
@@ -776,17 +540,6 @@ void FunctionModification::setSnips(const CodeSnipList &snips)
}
// ---------------------- FunctionModification
-void FunctionModification::setIsThread(bool flag)
-{
- if (d->m_thread != flag)
- d->m_thread = flag;
-}
-
-bool FunctionModification::isThread() const
-{
- return d->m_thread;
-}
-
FunctionModification::AllowThread FunctionModification::allowThread() const
{
return d->m_allowThread;
@@ -798,21 +551,26 @@ void FunctionModification::setAllowThread(FunctionModification::AllowThread allo
d->m_allowThread = allow;
}
-bool FunctionModification::matches(const QString &functionSignature) const
+bool FunctionModification::matches(const QStringList &functionSignatures) const
{
- return d->m_signature.isEmpty()
- ? d->m_signaturePattern.match(functionSignature).hasMatch()
- : d->m_signature == functionSignature;
+ if (!d->m_signature.isEmpty())
+ return functionSignatures.contains(d->m_signature);
+
+ for (const auto &s : functionSignatures) {
+ if (d->m_signaturePattern.match(s).hasMatch())
+ return true;
+ }
+ return false;
}
bool FunctionModification::setSignature(const QString &s, QString *errorMessage)
{
- if (s.startsWith(QLatin1Char('^'))) {
+ if (s.startsWith(u'^')) {
d->m_signaturePattern.setPattern(s);
if (!d->m_signaturePattern.isValid()) {
if (errorMessage) {
- *errorMessage = QLatin1String("Invalid signature pattern: \"")
- + s + QLatin1String("\": ") + d->m_signaturePattern.errorString();
+ *errorMessage = u"Invalid signature pattern: \""_s
+ + s + u"\": "_s + d->m_signaturePattern.errorString();
}
return false;
}
@@ -894,6 +652,9 @@ QDebug operator<<(QDebug d, const ArgumentModification &a)
d << ", native ownership=" << a.nativeOwnership();
if (!a.renamedToName().isEmpty())
d << ", renamed_to=\"" << a.renamedToName() << '"';
+ const auto &rules = a.conversionRules();
+ if (!rules.isEmpty())
+ d << ", conversionRules[" << rules.size() << "]=" << rules;
d << ", owner=" << a.owner() << ')';
return d;
}
@@ -908,37 +669,4 @@ QDebug operator<<(QDebug d, const FunctionModification &fm)
d << ')';
return d;
}
-
-QDebug operator<<(QDebug d, const AddedFunction::Argument &a)
-{
- QDebugStateSaver saver(d);
- d.noquote();
- d.nospace();
- d << "Argument(";
- d << a.typeInfo;
- if (!a.name.isEmpty())
- d << ' ' << a.name;
- if (!a.defaultValue.isEmpty())
- d << " = " << a.defaultValue;
- d << ')';
- return d;
-}
-
-QDebug operator<<(QDebug d, const AddedFunction &af)
-{
- QDebugStateSaver saver(d);
- d.noquote();
- d.nospace();
- d << "AddedFunction(";
- if (af.access() == AddedFunction::Protected)
- d << "protected";
- if (af.isStatic())
- d << " static";
- d << af.returnType() << ' ' << af.name() << '(' << af.arguments() << ')';
- if (af.isConstant())
- d << " const";
- if (af.isDeclaration())
- d << " [declaration]";
- return d;
-}
#endif // !QT_NO_DEBUG_STREAM
diff --git a/sources/shiboken6/ApiExtractor/modifications.h b/sources/shiboken6/ApiExtractor/modifications.h
index b97d7f292..27a38f1aa 100644
--- a/sources/shiboken6/ApiExtractor/modifications.h
+++ b/sources/shiboken6/ApiExtractor/modifications.h
@@ -1,46 +1,18 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef MODIFICATIONS_H
#define MODIFICATIONS_H
#include "typesystem_enums.h"
-#include "typesystem_typedefs.h"
-#include "codesniphelpers.h"
-#include "parser/typeinfo.h"
+#include "modifications_typedefs.h"
#include <QtCore/QList>
-#include <QtCore/QRegularExpression>
#include <QtCore/QSharedDataPointer>
-#include <QtCore/QSharedPointer>
#include <QtCore/QString>
class ArgumentModificationData;
+class CodeSnip;
class FunctionModificationData;
class ModificationData;
class FieldModificationData;
@@ -49,28 +21,6 @@ QT_BEGIN_NAMESPACE
class QDebug;
QT_END_NAMESPACE
-class TemplateInstance
-{
-public:
- explicit TemplateInstance(const QString &name) : m_name(name) {}
-
- void addReplaceRule(const QString &name, const QString &value)
- {
- replaceRules[name] = value;
- }
-
- QString expandCode() const;
-
- QString name() const
- {
- return m_name;
- }
-
-private:
- const QString m_name;
- QHash<QString, QString> replaceRules;
-};
-
struct ReferenceCount
{
enum Action { // 0x01 - 0xff
@@ -107,73 +57,6 @@ struct ArgumentOwner
int index = InvalidIndex;
};
-using TemplateInstancePtr = QSharedPointer<TemplateInstance>;
-
-class CodeSnipFragment
-{
-public:
- CodeSnipFragment() = default;
- explicit CodeSnipFragment(const QString &code) : m_code(code) {}
- explicit CodeSnipFragment(const TemplateInstancePtr &instance) : m_instance(instance) {}
-
- QString code() const;
-
-private:
- QString m_code;
- QSharedPointer<TemplateInstance> m_instance;
-};
-
-class CodeSnipAbstract : public CodeSnipHelpers
-{
-public:
- QString code() const;
-
- void addCode(const QString &code);
- void addCode(QStringView code) { addCode(code.toString()); }
-
- void addTemplateInstance(const TemplateInstancePtr &ti)
- {
- codeList.append(CodeSnipFragment(ti));
- }
-
- QList<CodeSnipFragment> codeList;
-
- static QRegularExpression placeHolderRegex(int index);
-};
-
-class CustomFunction : public CodeSnipAbstract
-{
-public:
- explicit CustomFunction(const QString &n = QString()) : name(n) {}
-
- QString name;
- QString paramName;
-};
-
-class TemplateEntry : public CodeSnipAbstract
-{
-public:
- explicit TemplateEntry(const QString &name) : m_name(name) {}
-
- QString name() const
- {
- return m_name;
- }
-
-private:
- QString m_name;
-};
-
-class CodeSnip : public CodeSnipAbstract
-{
-public:
- CodeSnip() = default;
- explicit CodeSnip(TypeSystem::Language lang) : language(lang) {}
-
- TypeSystem::Language language = TypeSystem::TargetLangCode;
- TypeSystem::CodeSnipPosition position = TypeSystem::CodeSnipPositionAny;
-};
-
class ArgumentModification
{
public:
@@ -181,8 +64,8 @@ public:
explicit ArgumentModification(int idx);
ArgumentModification(const ArgumentModification &);
ArgumentModification &operator=(const ArgumentModification &);
- ArgumentModification(ArgumentModification &&);
- ArgumentModification &operator=(ArgumentModification &&);
+ ArgumentModification(ArgumentModification &&) noexcept;
+ ArgumentModification &operator=(ArgumentModification &&) noexcept;
~ArgumentModification();
// Reference count flags for this argument
@@ -190,8 +73,9 @@ public:
void addReferenceCount(const ReferenceCount &value);
// The text given for the new type of the argument
- QString modifiedType() const;
+ const QString &modifiedType() const;
void setModifiedType(const QString &value);
+ bool isTypeModified() const;
QString pyiType() const;
void setPyiType(const QString &value);
@@ -208,8 +92,8 @@ public:
void setNativeOwnership(TypeSystem::Ownership o);
// Different conversion rules
- const CodeSnipList &conversionRules() const;
- CodeSnipList &conversionRules();
+ const QList<CodeSnip> &conversionRules() const;
+ QList<CodeSnip> &conversionRules();
// QObject parent(owner) of this argument
ArgumentOwner owner() const;
@@ -250,15 +134,14 @@ public:
FunctionModification();
FunctionModification(const FunctionModification &);
FunctionModification &operator=(const FunctionModification &);
- FunctionModification(FunctionModification &&);
- FunctionModification &operator=(FunctionModification &&);
+ FunctionModification(FunctionModification &&) noexcept;
+ FunctionModification &operator=(FunctionModification &&) noexcept;
~FunctionModification();
enum ModifierFlag {
Private = 0x0001,
Protected = 0x0002,
- Public = 0x0003,
- Friendly = 0x0004,
+ Public = 0x0004,
AccessModifierMask = 0x000f,
Final = 0x0010,
@@ -271,7 +154,8 @@ public:
CodeInjection = 0x1000,
Rename = 0x2000,
Deprecated = 0x4000,
- ReplaceExpression = 0x8000
+ Undeprecated = 0x8000,
+ ReplaceExpression = 0x10000
};
Q_DECLARE_FLAGS(Modifiers, ModifierFlag);
@@ -306,10 +190,6 @@ public:
{
return accessModifier() == Public;
}
- bool isFriendly() const
- {
- return accessModifier() == Friendly;
- }
bool isFinal() const
{
return modifiers().testFlag(Final);
@@ -318,7 +198,6 @@ public:
{
return modifiers().testFlag(NonFinal);
}
- QString accessModifierString() const;
bool isDeprecated() const
{
@@ -338,13 +217,11 @@ public:
{
return modifiers().testFlag(CodeInjection);
}
- void setIsThread(bool flag);
- bool isThread() const;
AllowThread allowThread() const;
void setAllowThread(AllowThread allow);
- bool matches(const QString &functionSignature) const;
+ bool matches(const QStringList &functionSignatures) const;
bool setSignature(const QString &s, QString *errorMessage = nullptr);
QString signature() const;
@@ -358,10 +235,10 @@ public:
int overloadNumber() const;
void setOverloadNumber(int overloadNumber);
- const CodeSnipList &snips() const;
- CodeSnipList &snips();
+ const QList<CodeSnip> &snips() const;
+ QList<CodeSnip> &snips();
void appendSnip(const CodeSnip &snip);
- void setSnips(const CodeSnipList &snips);
+ void setSnips(const QList<CodeSnip> &snips);
const QList<ArgumentModification> &argument_mods() const;
QList<ArgumentModification> &argument_mods();
@@ -382,6 +259,7 @@ Q_DECLARE_OPERATORS_FOR_FLAGS(FunctionModification::Modifiers)
#ifndef QT_NO_DEBUG_STREAM
QDebug operator<<(QDebug d, const ReferenceCount &);
+QDebug operator<<(QDebug d, const CodeSnip &s);
QDebug operator<<(QDebug d, const ArgumentOwner &a);
QDebug operator<<(QDebug d, const ArgumentModification &a);
QDebug operator<<(QDebug d, const FunctionModification &fm);
@@ -393,8 +271,8 @@ public:
FieldModification();
FieldModification(const FieldModification &);
FieldModification &operator=(const FieldModification &);
- FieldModification(FieldModification &&);
- FieldModification &operator=(FieldModification &&);
+ FieldModification(FieldModification &&) noexcept;
+ FieldModification &operator=(FieldModification &&) noexcept;
~FieldModification();
QString name() const;
@@ -413,6 +291,9 @@ public:
bool isRemoved() const;
void setRemoved(bool r);
+ bool isOpaqueContainer() const;
+ void setOpaqueContainer(bool r);
+
TypeSystem::SnakeCase snakeCase() const;
void setSnakeCase(TypeSystem::SnakeCase s);
@@ -420,121 +301,6 @@ private:
QSharedDataPointer<FieldModificationData> d;
};
-/**
-* \internal
-* Struct used to store information about functions added by the typesystem.
-* This info will be used later to create a fake AbstractMetaFunction which
-* will be inserted into the right AbstractMetaClass.
-*/
-struct AddedFunction
-{
- using AddedFunctionPtr = QSharedPointer<AddedFunction>;
-
- /// Function access types.
- enum Access {
- Protected = 0x1,
- Public = 0x2
- };
-
- struct Argument
- {
- TypeInfo typeInfo;
- QString name;
- QString defaultValue;
- };
-
- /// Creates a new AddedFunction with a signature and a return type.
- explicit AddedFunction(const QString &name, const QList<Argument> &arguments,
- const TypeInfo &returnType);
-
- static AddedFunctionPtr createAddedFunction(const QString &signatureIn,
- const QString &returnTypeIn,
- QString *errorMessage);
-
- AddedFunction() = default;
-
- /// Returns the function name.
- QString name() const
- {
- return m_name;
- }
-
- /// Set the function access type.
- void setAccess(Access access)
- {
- m_access = access;
- }
-
- /// Returns the function access type.
- Access access() const
- {
- return m_access;
- }
-
- /// Returns the function return type.
- TypeInfo returnType() const
- {
- return m_returnType;
- }
-
- /// Returns a list of argument type infos.
- const QList<Argument> &arguments() const
- {
- return m_arguments;
- }
-
- /// Returns true if this is a constant method.
- bool isConstant() const
- {
- return m_isConst;
- }
- void setConstant(bool c) { m_isConst = c; };
-
- /// Set this method static.
- void setStatic(bool value)
- {
- m_isStatic = value;
- }
-
- /// Set this method as a classmethod.
- void setClassMethod(bool value)
- {
- m_isClassMethod = value;
- }
-
- /// Returns true if this is a static method.
- bool isStatic() const
- {
- return m_isStatic;
- }
-
- /// Returns true if this is a class method.
- bool isClassMethod() const
- {
- return m_isClassMethod;
- }
-
- bool isDeclaration() const { return m_isDeclaration; } // <declare-function>
- void setDeclaration(bool value) { m_isDeclaration = value; }
-
- FunctionModificationList modifications;
-
-private:
- QString m_name;
- QList<Argument> m_arguments;
- TypeInfo m_returnType;
- Access m_access = Public;
- bool m_isConst = false;
- bool m_isClassMethod = false;
- bool m_isStatic = false;
- bool m_isDeclaration = false;
-};
-
-#ifndef QT_NO_DEBUG_STREAM
-QDebug operator<<(QDebug d, const AddedFunction::Argument &a);
-QDebug operator<<(QDebug d, const AddedFunction &af);
-#endif
-
class DocModification
{
public:
diff --git a/sources/shiboken6/ApiExtractor/modifications_p.h b/sources/shiboken6/ApiExtractor/modifications_p.h
deleted file mode 100644
index c8f18308e..000000000
--- a/sources/shiboken6/ApiExtractor/modifications_p.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef MODIFICATIONS_P_H
-#define MODIFICATIONS_P_H
-
-#include <QtCore/QList>
-#include <QtCore/QString>
-#include <QtCore/QStringView>
-
-QT_BEGIN_NAMESPACE
-class QDebug;
-QT_END_NAMESPACE
-
-// Helpers to split a parameter list of <add-function>, <declare-function>
-// in a separate header for testing purposes
-
-namespace AddedFunctionParser {
-
-struct Argument
-{
- bool equals(const Argument &rhs) const;
-
- QString type;
- QString name;
- QString defaultValue;
-};
-
-using Arguments = QList<Argument>;
-
-inline bool operator==(const Argument &a1, const Argument &a2) { return a1.equals(a2); }
-inline bool operator!=(const Argument &a1, const Argument &a2) { return !a1.equals(a2); }
-
-#ifndef QT_NO_DEBUG_STREAM
-QDebug operator<<(QDebug d, const Argument &a);
-#endif
-
-Arguments splitParameters(QStringView paramString, QString *errorMessage = nullptr);
-
-} // namespace AddedFunctionParser
-
-#endif // MODIFICATIONS_P_H
diff --git a/sources/shiboken6/ApiExtractor/modifications_typedefs.h b/sources/shiboken6/ApiExtractor/modifications_typedefs.h
new file mode 100644
index 000000000..3b86c55d3
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/modifications_typedefs.h
@@ -0,0 +1,25 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef MODIFICATIONS_TYPEDEFS_H
+#define MODIFICATIONS_TYPEDEFS_H
+
+#include <QtCore/QList>
+
+#include <memory>
+
+class CodeSnip;
+class DocModification;
+
+struct AddedFunction;
+class FieldModification;
+class FunctionModification;
+
+using AddedFunctionPtr = std::shared_ptr<AddedFunction>;
+using AddedFunctionList = QList<AddedFunctionPtr>;
+using CodeSnipList = QList<CodeSnip>;
+using DocModificationList = QList<DocModification>;
+using FieldModificationList = QList<FieldModification>;
+using FunctionModificationList = QList<FunctionModification>;
+
+#endif // MODIFICATIONS_TYPEDEFS_H
diff --git a/sources/shiboken6/ApiExtractor/namespacetypeentry.h b/sources/shiboken6/ApiExtractor/namespacetypeentry.h
new file mode 100644
index 000000000..6ffd38430
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/namespacetypeentry.h
@@ -0,0 +1,51 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef NAMESPACETYPEENTRY_H
+#define NAMESPACETYPEENTRY_H
+
+#include "complextypeentry.h"
+
+class NamespaceTypeEntryPrivate;
+
+class NamespaceTypeEntry : public ComplexTypeEntry
+{
+public:
+ explicit NamespaceTypeEntry(const QString &entryName, const QVersionNumber &vr,
+ const TypeEntryCPtr &parent);
+
+ TypeEntry *clone() const override;
+
+ NamespaceTypeEntryCPtr extends() const;
+ void setExtends(const NamespaceTypeEntryCPtr &e);
+
+ const QRegularExpression &filePattern() const; // restrict files
+ void setFilePattern(const QRegularExpression &r);
+
+ bool hasPattern() const;
+
+ bool matchesFile(const QString &needle) const;
+
+ bool isVisible() const;
+ void setVisibility(TypeSystem::Visibility v);
+
+ // C++ 11 inline namespace, from code model
+ bool isInlineNamespace() const;
+ void setInlineNamespace(bool i);
+
+ static bool isVisibleScope(const TypeEntryCPtr &e);
+ static bool isVisibleScope(const TypeEntry *e);
+
+#ifndef QT_NO_DEBUG_STREAM
+ void formatDebug(QDebug &d) const override;
+#endif
+
+ // Whether to generate "using namespace" into wrapper
+ bool generateUsing() const;
+ void setGenerateUsing(bool generateUsing);
+
+protected:
+ explicit NamespaceTypeEntry(NamespaceTypeEntryPrivate *d);
+};
+
+#endif // NAMESPACETYPEENTRY_H
diff --git a/sources/shiboken6/ApiExtractor/objecttypeentry.h b/sources/shiboken6/ApiExtractor/objecttypeentry.h
new file mode 100644
index 000000000..da91e8ff4
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/objecttypeentry.h
@@ -0,0 +1,21 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef OBJECTTYPEENTRY_H
+#define OBJECTTYPEENTRY_H
+
+#include "complextypeentry.h"
+
+class ObjectTypeEntry : public ComplexTypeEntry
+{
+public:
+ explicit ObjectTypeEntry(const QString &entryName, const QVersionNumber &vr,
+ const TypeEntryCPtr &parent);
+
+ TypeEntry *clone() const override;
+
+protected:
+ explicit ObjectTypeEntry(ComplexTypeEntryPrivate *d);
+};
+
+#endif // OBJECTTYPEENTRY_H
diff --git a/sources/shiboken6/ApiExtractor/optionsparser.cpp b/sources/shiboken6/ApiExtractor/optionsparser.cpp
new file mode 100644
index 000000000..f2e64c7e4
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/optionsparser.cpp
@@ -0,0 +1,232 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#include "optionsparser.h"
+#include "messages.h"
+#include "exception.h"
+
+#include <QtCore/QDir>
+#include <QtCore/QTextStream>
+
+using namespace Qt::StringLiterals;
+
+template <class Stream> void formatBoolOption(Stream &s, const BoolOption &bo)
+{
+ switch (bo.source) {
+ case OptionSource::CommandLine:
+ s << "--";
+ break;
+ case OptionSource::CommandLineSingleDash:
+ s << '-';
+ break;
+ default:
+ break;
+ }
+ s << bo.option;
+ if (bo.source == OptionSource::ProjectFile)
+ s << " (project)";
+}
+
+template <class Stream> void formatOptionValue(Stream &s, const OptionValue &ov)
+{
+ switch (ov.source) {
+ case OptionSource::CommandLine:
+ s << "--";
+ break;
+ case OptionSource::CommandLineSingleDash:
+ s << '-';
+ break;
+ default:
+ break;
+ }
+ s << ov.option << '=' << ov.value;
+ if (ov.source == OptionSource::ProjectFile)
+ s << " (project)";
+}
+
+QTextStream &operator<<(QTextStream &s, const BoolOption &bo)
+{
+ formatBoolOption(s, bo);
+ return s;
+}
+
+QTextStream &operator<<(QTextStream &s, const OptionValue &ov)
+{
+ formatOptionValue(s, ov);
+ return s;
+}
+
+QDebug operator<<(QDebug debug, const BoolOption &bo)
+{
+ QDebugStateSaver saver(debug);
+ debug.noquote();
+ debug.nospace();
+ formatBoolOption(debug, bo);
+ return debug;
+}
+
+QDebug operator<<(QDebug debug, const OptionValue &v)
+{
+ QDebugStateSaver saver(debug);
+ debug.noquote();
+ debug.nospace();
+ formatOptionValue(debug, v);
+ return debug;
+}
+
+QDebug operator<<(QDebug debug, const Options &v)
+{
+ QDebugStateSaver saver(debug);
+ debug.noquote();
+ debug.nospace();
+ debug << "Options(";
+ if (!v.boolOptions.isEmpty())
+ debug << "bools=" << v.boolOptions;
+ if (!v.valueOptions.isEmpty())
+ debug << ", option values=" << v.valueOptions;
+ if (!v.positionalArguments.isEmpty())
+ debug << ", pos=" << v.positionalArguments;
+ debug << ')';
+ return debug;
+}
+
+QTextStream &operator<<(QTextStream &s, const OptionDescription &od)
+{
+ if (!od.name.startsWith(u'-'))
+ s << "--";
+ s << od.name;
+ if (od.description.isEmpty()) { // For formatting {{"-s", ""}, {"--short", "descr"}}
+ s << ", ";
+ } else {
+ s << '\n';
+ const auto lines = QStringView{od.description}.split(u'\n');
+ for (const auto &line : lines)
+ s << " " << line << '\n';
+ s << '\n';
+ }
+ return s;
+}
+
+QTextStream &operator<<(QTextStream &s, const OptionDescriptions &options)
+{
+ s.setFieldAlignment(QTextStream::AlignLeft);
+ for (const auto &od : options)
+ s << od;
+ return s;
+}
+
+OptionsParser::OptionsParser() noexcept = default;
+OptionsParser::~OptionsParser() = default;
+
+const QString &OptionsParser::pathSyntax()
+{
+ static const QString result =
+ u"<path>["_s + QDir::listSeparator() + u"<path>"_s
+ + QDir::listSeparator() + u"...]"_s;
+ return result;
+}
+
+bool OptionsParser::handleBoolOption(const QString &, OptionSource)
+{
+ return false;
+}
+
+bool OptionsParser::handleOption(const QString &, const QString &, OptionSource)
+{
+ return false;
+}
+
+void OptionsParser::process(Options *o)
+{
+ for (auto i = o->boolOptions.size() - 1; i >= 0; --i) {
+ const auto &opt = o->boolOptions.at(i);
+ if (handleBoolOption(opt.option, opt.source))
+ o->boolOptions.removeAt(i);
+ }
+ for (auto i = o->valueOptions.size() - 1; i >= 0; --i) {
+ const auto &opt = o->valueOptions.at(i);
+ if (handleOption(opt.option, opt.value, opt.source))
+ o->valueOptions.removeAt(i);
+ }
+}
+
+bool OptionsParserList::handleBoolOption(const QString &key, OptionSource source)
+{
+ for (const auto &p : std::as_const(m_parsers)) {
+ if (p->handleBoolOption(key, source))
+ return true;
+ }
+ return false;
+}
+
+bool OptionsParserList::handleOption(const QString &key, const QString &value, OptionSource source)
+{
+ for (const auto &p : std::as_const(m_parsers)) {
+ if (p->handleOption(key, value, source))
+ return true;
+ }
+ return false;
+}
+
+static void processOption(const QString &o, OptionSource source,
+ BoolOptions *bools, OptionValues *values)
+{
+ const auto equals = o.indexOf(u'=');
+ if (equals == -1) {
+ bools->append({o.trimmed(), source});
+ } else {
+ QString key = o.left(equals).trimmed();
+ QString value = o.mid(equals + 1).trimmed();
+ if (!value.isEmpty())
+ values->append({key, value, source});
+ }
+}
+
+static void readProjectFile(const QString &name, Options *o)
+{
+ const auto startMarker = "[generator-project]"_ba;
+
+ QFile file(name);
+ if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
+ throw Exception(msgCannotOpenForReading(file));
+
+ if (file.atEnd() || file.readLine().trimmed() != startMarker)
+ throw Exception(msgMissingProjectFileMarker(name, startMarker));
+
+ while (!file.atEnd()) {
+ const QByteArray lineB = file.readLine().trimmed();
+ if (!lineB.isEmpty() && !lineB.startsWith('#')) {
+ processOption(QString::fromUtf8(lineB), OptionSource::ProjectFile,
+ &o->boolOptions, &o->valueOptions);
+ }
+ }
+}
+
+void Options::setOptions(const QStringList &argv)
+{
+ const auto projectFileOption = "--project-file="_L1;
+ for (const auto &o : argv) {
+ if (o.startsWith(projectFileOption)) {
+ readProjectFile(o.sliced(projectFileOption.size()), this);
+ } else if (o.startsWith(u"--")) {
+ processOption(o.sliced(2), OptionSource::CommandLine,
+ &boolOptions, &valueOptions);
+ } else if (o.startsWith(u'-')) {
+ processOption(o.sliced(1), OptionSource::CommandLineSingleDash,
+ &boolOptions, &valueOptions);
+ } else {
+ positionalArguments.append(o);
+ }
+ }
+}
+
+QString Options::msgUnprocessedOptions() const
+{
+ QString result;
+ QTextStream str(&result);
+ for (const auto &b : boolOptions)
+ str << b << ' ';
+ for (const auto &v : valueOptions)
+ str << v << ' ';
+ return result.trimmed();
+}
diff --git a/sources/shiboken6/ApiExtractor/optionsparser.h b/sources/shiboken6/ApiExtractor/optionsparser.h
new file mode 100644
index 000000000..d5557dc15
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/optionsparser.h
@@ -0,0 +1,98 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef OPTIONSPARSER_H
+#define OPTIONSPARSER_H
+
+#include <QtCore/QString>
+#include <QtCore/QStringList>
+
+#include <memory>
+
+QT_FORWARD_DECLARE_CLASS(QTextStream)
+
+enum class OptionSource
+{
+ CommandLine, // "--option"
+ CommandLineSingleDash, // "-o"
+ ProjectFile
+};
+
+struct BoolOption
+{
+ QString option;
+ OptionSource source = OptionSource::CommandLine;
+};
+
+struct OptionValue // --option=value pair
+{
+ QString option;
+ QString value;
+ OptionSource source = OptionSource::CommandLine;
+};
+
+using BoolOptions = QList<BoolOption>;
+using OptionValues = QList<OptionValue>;
+
+struct Options // Options from command line and project file
+{
+ void setOptions(const QStringList &argv);
+ QString msgUnprocessedOptions() const;
+
+ BoolOptions boolOptions;
+ OptionValues valueOptions;
+ QStringList positionalArguments;
+};
+
+struct OptionDescription // For help formatting
+{
+ QString name;
+ QString description;
+};
+
+using OptionDescriptions = QList<OptionDescription>;
+
+QTextStream &operator<<(QTextStream &s, const BoolOption &bo);
+QTextStream &operator<<(QTextStream &s, const OptionValue &ov);
+QTextStream &operator<<(QTextStream &s, const OptionDescription &od);
+QTextStream &operator<<(QTextStream &s, const OptionDescriptions &options);
+
+class OptionsParser
+{
+public:
+ Q_DISABLE_COPY_MOVE(OptionsParser)
+
+ virtual ~OptionsParser();
+
+ // Return true to indicate the option was processed.
+ virtual bool handleBoolOption(const QString &key, OptionSource source);
+ virtual bool handleOption(const QString &key, const QString &value, OptionSource source);
+
+ void process(Options *);
+
+ static const QString &pathSyntax();
+
+protected:
+ OptionsParser() noexcept;
+};
+
+class OptionsParserList : public OptionsParser
+{
+public:
+ using OptionsParserPtr = std::shared_ptr<OptionsParser>;
+
+ void append(const OptionsParserPtr &parser) { m_parsers.append(parser); }
+ void clear() { m_parsers.clear(); }
+
+ bool handleBoolOption(const QString &key, OptionSource source) override;
+ bool handleOption(const QString &key, const QString &value, OptionSource source) override;
+
+private:
+ QList<OptionsParserPtr> m_parsers;
+};
+
+QDebug operator<<(QDebug debug, const BoolOption &bo);
+QDebug operator<<(QDebug debug, const OptionValue &v);
+QDebug operator<<(QDebug debug, const Options &v);
+
+#endif // OPTIONSPARSER_H
diff --git a/sources/shiboken6/ApiExtractor/parser/codemodel.cpp b/sources/shiboken6/ApiExtractor/parser/codemodel.cpp
index 82f5e1a2c..259a706dc 100644
--- a/sources/shiboken6/ApiExtractor/parser/codemodel.cpp
+++ b/sources/shiboken6/ApiExtractor/parser/codemodel.cpp
@@ -1,61 +1,29 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Copyright (C) 2002-2005 Roberto Raggi <roberto@kdevelop.org>
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// Copyright (C) 2002-2005 Roberto Raggi <roberto@kdevelop.org>
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "codemodel.h"
#include <sourcelocation.h>
+#include <debughelpers_p.h>
#include <QtCore/QDebug>
#include <QtCore/QDir>
#include <QtCore/QRegularExpression>
#include <algorithm>
-#include <functional>
-#include <iostream>
-// Predicate to find an item by name in a list of QSharedPointer<Item>
-template <class T> class ModelItemNamePredicate
-{
-public:
- explicit ModelItemNamePredicate(const QString &name) : m_name(name) {}
- bool operator()(const QSharedPointer<T> &item) const { return item->name() == m_name; }
-
-private:
- const QString m_name;
-};
+using namespace Qt::StringLiterals;
template <class T>
-static QSharedPointer<T> findModelItem(const QList<QSharedPointer<T> > &list, const QString &name)
+static std::shared_ptr<T> findModelItem(const QList<std::shared_ptr<T> > &list,
+ QAnyStringView name)
{
- const auto it = std::find_if(list.cbegin(), list.cend(), ModelItemNamePredicate<T>(name));
- return it != list.cend() ? *it : QSharedPointer<T>();
+ using ItemPtr = std::shared_ptr<T>;
+ auto pred = [name](const ItemPtr &item) { return item->name() == name; };
+ const auto it = std::find_if(list.cbegin(), list.cend(), pred);
+ return it != list.cend() ? *it : ItemPtr{};
}
// ---------------------------------------------------------------------------
@@ -76,7 +44,7 @@ void CodeModel::addFile(const FileModelItem &item)
m_files.append(item);
}
-FileModelItem CodeModel::findFile(const QString &name) const
+FileModelItem CodeModel::findFile(QAnyStringView name) const
{
return findModelItem(m_files, name);
}
@@ -94,11 +62,11 @@ static CodeModelItem findRecursion(const ScopeModelItem &scope,
return tp;
if (TemplateTypeAliasModelItem tta = scope->findTemplateTypeAlias(nameSegment))
return tta;
- return CodeModelItem();
+ return {};
}
if (auto nestedClass = scope->findClass(nameSegment))
return findRecursion(nestedClass, qualifiedName, segment + 1);
- if (auto namespaceItem = qSharedPointerDynamicCast<_NamespaceModelItem>(scope)) {
+ if (auto namespaceItem = std::dynamic_pointer_cast<_NamespaceModelItem>(scope)) {
for (const auto &nestedNamespace : namespaceItem->namespaces()) {
if (nestedNamespace->name() == nameSegment) {
if (auto item = findRecursion(nestedNamespace, qualifiedName, segment + 1))
@@ -106,7 +74,7 @@ static CodeModelItem findRecursion(const ScopeModelItem &scope,
}
}
}
- return CodeModelItem();
+ return {};
}
CodeModelItem CodeModel::findItem(const QStringList &qualifiedName, const ScopeModelItem &scope)
@@ -143,7 +111,7 @@ QDebug operator<<(QDebug d, const CodeModel *m)
d << "CodeModel(";
if (m) {
const NamespaceModelItem globalNamespaceP = m->globalNamespace();
- if (globalNamespaceP.data())
+ if (globalNamespaceP)
globalNamespaceP->formatDebug(d);
} else {
d << '0';
@@ -256,27 +224,27 @@ SourceLocation _CodeModelItem::sourceLocation() const
return SourceLocation(m_fileName, m_startLine);
}
-#ifndef QT_NO_DEBUG_STREAM
-template <class It>
-void formatSequence(QDebug &d, It i1, It i2, const char *separator=", ")
+const _ScopeModelItem *_CodeModelItem::enclosingScope() const
{
- for (It i = i1; i != i2; ++i) {
- if (i != i1)
- d << separator;
- d << *i;
- }
+ return m_enclosingScope;
}
-template <class It>
-static void formatPtrSequence(QDebug &d, It i1, It i2, const char *separator=", ")
+void _CodeModelItem::setEnclosingScope(const _ScopeModelItem *s)
+{
+ m_enclosingScope = s;
+}
+
+_ScopeModelItem::_ScopeModelItem(CodeModel *model, int kind)
+ : _CodeModelItem(model, kind)
+{
+}
+
+_ScopeModelItem::_ScopeModelItem(CodeModel *model, const QString &name, int kind)
+ : _CodeModelItem(model, name, kind)
{
- for (It i = i1; i != i2; ++i) {
- if (i != i1)
- d << separator;
- d << i->data();
- }
}
+#ifndef QT_NO_DEBUG_STREAM
void _CodeModelItem::formatKind(QDebug &d, int k)
{
switch (k) {
@@ -377,14 +345,6 @@ void _ClassModelItem::setTemplateParameters(const TemplateParameterList &templat
m_templateParameters = templateParameters;
}
-void _ClassModelItem::addBaseClass(const QString &name, Access accessPolicy)
-{
- _ClassModelItem::BaseClass baseClass;
- baseClass.name = name;
- baseClass.accessPolicy = accessPolicy;
- m_baseClasses.append(baseClass);
-}
-
bool _ClassModelItem::extendsClass(const QString &name) const
{
for (const BaseClass &bc : m_baseClasses) {
@@ -394,6 +354,16 @@ bool _ClassModelItem::extendsClass(const QString &name) const
return false;
}
+_ClassModelItem::_ClassModelItem(CodeModel *model, int kind)
+ : _ScopeModelItem(model, kind)
+{
+}
+
+_ClassModelItem::_ClassModelItem(CodeModel *model, const QString &name, int kind)
+ : _ScopeModelItem(model, name, kind)
+{
+}
+
const QList<_ClassModelItem::UsingMember> &_ClassModelItem::usingMembers() const
{
return m_usingMembers;
@@ -436,9 +406,9 @@ template <class List>
static void formatModelItemList(QDebug &d, const char *prefix, const List &l,
const char *separator = ", ")
{
- if (const int size = l.size()) {
+ if (const auto size = l.size()) {
d << prefix << '[' << size << "](";
- for (int i = 0; i < size; ++i) {
+ for (qsizetype i = 0; i < size; ++i) {
if (i)
d << separator;
l.at(i)->formatDebug(d);
@@ -455,7 +425,7 @@ void _ClassModelItem::formatDebug(QDebug &d) const
d << " [final]";
d << ", inherits=";
d << ", inherits=";
- for (int i = 0, size = m_baseClasses.size(); i < size; ++i) {
+ for (qsizetype i = 0, size = m_baseClasses.size(); i < size; ++i) {
if (i)
d << ", ";
d << m_baseClasses.at(i).name << " (" << m_baseClasses.at(i).accessPolicy << ')';
@@ -474,12 +444,12 @@ void _ClassModelItem::formatDebug(QDebug &d) const
// ---------------------------------------------------------------------------
FunctionModelItem _ScopeModelItem::declaredFunction(const FunctionModelItem &item)
{
- for (const FunctionModelItem &fun : qAsConst(m_functions)) {
+ for (const FunctionModelItem &fun : std::as_const(m_functions)) {
if (fun->name() == item->name() && fun->isSimilar(item))
return fun;
}
- return FunctionModelItem();
+ return {};
}
_ScopeModelItem::~_ScopeModelItem() = default;
@@ -492,30 +462,54 @@ void _ScopeModelItem::addEnumsDeclaration(const QString &enumsDeclaration)
void _ScopeModelItem::addClass(const ClassModelItem &item)
{
m_classes.append(item);
+ item->setEnclosingScope(this);
}
void _ScopeModelItem::addFunction(const FunctionModelItem &item)
{
m_functions.append(item);
+ item->setEnclosingScope(this);
}
void _ScopeModelItem::addVariable(const VariableModelItem &item)
{
m_variables.append(item);
+ item->setEnclosingScope(this);
}
void _ScopeModelItem::addTypeDef(const TypeDefModelItem &item)
{
m_typeDefs.append(item);
+ item->setEnclosingScope(this);
}
void _ScopeModelItem::addTemplateTypeAlias(const TemplateTypeAliasModelItem &item)
{
m_templateTypeAliases.append(item);
+ item->setEnclosingScope(this);
+}
+
+qsizetype _ScopeModelItem::indexOfEnum(const QString &name) const
+{
+ for (qsizetype i = 0, size = m_enums.size(); i < size; ++i) {
+ if (m_enums.at(i)->name() == name)
+ return i;
+ }
+ return -1;
}
void _ScopeModelItem::addEnum(const EnumModelItem &item)
{
+ item->setEnclosingScope(this);
+ // A forward declaration of an enum ("enum class Foo;") is undistinguishable
+ // from an enum without values ("enum class QCborTag {}"), so, add all
+ // enums and replace existing ones without values by ones with values.
+ const int index = indexOfEnum(item->name());
+ if (index >= 0) {
+ if (item->hasValues() && !m_enums.at(index)->hasValues())
+ m_enums[index] = item;
+ return;
+ }
m_enums.append(item);
}
@@ -555,12 +549,12 @@ template class LIBSAMPLE_EXPORT Tpl<54>;
*/
void _ScopeModelItem::purgeClassDeclarations()
{
- for (int i = m_classes.size() - 1; i >= 0; --i) {
+ for (auto i = m_classes.size() - 1; i >= 0; --i) {
auto klass = m_classes.at(i);
// For an empty class, check if there is a matching template
// definition, and remove it if this is the case.
if (!klass->isTemplate() && klass->isEmpty()) {
- const QString definitionPrefix = klass->name() + QLatin1Char('<');
+ const QString definitionPrefix = klass->name() + u'<';
const bool definitionFound =
std::any_of(m_classes.cbegin(), m_classes.cend(),
[definitionPrefix] (const ClassModelItem &c) {
@@ -624,57 +618,135 @@ void _ScopeModelItem::formatDebug(QDebug &d) const
}
#endif // !QT_NO_DEBUG_STREAM
-namespace {
// Predicate to match a non-template class name against the class list.
// "Vector" should match "Vector" as well as "Vector<T>" (as seen for methods
// from within the class "Vector").
-class ClassNamePredicate
+static bool matchClassNameNonTemplatePart(const ClassModelItem &item, const QString &name)
{
-public:
- explicit ClassNamePredicate(const QString &name) : m_name(name) {}
- bool operator()(const ClassModelItem &item) const
- {
- const QString &itemName = item->name();
- if (!itemName.startsWith(m_name))
- return false;
- return itemName.size() == m_name.size() || itemName.at(m_name.size()) == QLatin1Char('<');
- }
-
-private:
- const QString m_name;
-};
-} // namespace
+ const QString &itemName = item->name();
+ if (!itemName.startsWith(name))
+ return false;
+ return itemName.size() == name.size() || itemName.at(name.size()) == u'<';
+}
ClassModelItem _ScopeModelItem::findClass(const QString &name) const
{
// A fully qualified template is matched by name only
- const ClassList::const_iterator it = name.contains(QLatin1Char('<'))
- ? std::find_if(m_classes.begin(), m_classes.end(), ModelItemNamePredicate<_ClassModelItem>(name))
- : std::find_if(m_classes.begin(), m_classes.end(), ClassNamePredicate(name));
+ const ClassList::const_iterator it = name.contains(u'<')
+ ? std::find_if(m_classes.begin(), m_classes.end(),
+ [&name](const ClassModelItem &item) {
+ return item->name() == name; })
+ : std::find_if(m_classes.begin(), m_classes.end(),
+ [&name](const ClassModelItem &item) {
+ return matchClassNameNonTemplatePart(item, name); });
return it != m_classes.end() ? *it : ClassModelItem();
}
-VariableModelItem _ScopeModelItem::findVariable(const QString &name) const
+VariableModelItem _ScopeModelItem::findVariable(QAnyStringView name) const
{
return findModelItem(m_variables, name);
}
-TypeDefModelItem _ScopeModelItem::findTypeDef(const QString &name) const
+TypeDefModelItem _ScopeModelItem::findTypeDef(QAnyStringView name) const
{
return findModelItem(m_typeDefs, name);
}
-TemplateTypeAliasModelItem _ScopeModelItem::findTemplateTypeAlias(const QString &name) const
+TemplateTypeAliasModelItem _ScopeModelItem::findTemplateTypeAlias(QAnyStringView name) const
{
return findModelItem(m_templateTypeAliases, name);
}
-EnumModelItem _ScopeModelItem::findEnum(const QString &name) const
+EnumModelItem _ScopeModelItem::findEnum(QAnyStringView name) const
{
return findModelItem(m_enums, name);
}
-FunctionList _ScopeModelItem::findFunctions(const QString &name) const
+_ScopeModelItem::FindEnumByValueReturn
+ _ScopeModelItem::findEnumByValueHelper(QStringView fullValue,
+ QStringView enumValue) const
+{
+ const bool unqualified = fullValue.size() == enumValue.size();
+ QString scopePrefix = scope().join(u"::");
+ if (!scopePrefix.isEmpty())
+ scopePrefix += u"::"_s;
+ scopePrefix += name() + u"::"_s;
+
+ for (const auto &e : m_enums) {
+ const auto index = e->indexOfValue(enumValue);
+ if (index != -1) {
+ QString fullyQualifiedName = scopePrefix;
+ if (e->enumKind() != AnonymousEnum)
+ fullyQualifiedName += e->name() + u"::"_s;
+ fullyQualifiedName += e->enumerators().at(index)->name();
+ if (unqualified || fullyQualifiedName.endsWith(fullValue))
+ return {e, fullyQualifiedName};
+ // For standard enums, check the name without enum name
+ if (e->enumKind() == CEnum) {
+ const QString qualifiedName =
+ scopePrefix + e->enumerators().at(index)->name();
+ if (qualifiedName.endsWith(fullValue))
+ return {e, fullyQualifiedName};
+ }
+ }
+ }
+
+ return {};
+}
+
+// Helper to recursively find the scope of an enum value
+_ScopeModelItem::FindEnumByValueReturn
+ _ScopeModelItem::findEnumByValueRecursion(const _ScopeModelItem *scope,
+ QStringView fullValue,
+ QStringView enumValue,
+ bool searchSiblingNamespaces)
+{
+ if (const auto e = scope->findEnumByValueHelper(fullValue, enumValue))
+ return e;
+
+ if (auto *enclosingScope = scope->enclosingScope()) {
+ // The enclosing scope may have several sibling namespaces of that name.
+ if (searchSiblingNamespaces && scope->kind() == Kind_Namespace) {
+ if (auto *enclosingNamespace = dynamic_cast<const _NamespaceModelItem *>(enclosingScope)) {
+ for (const auto &sibling : enclosingNamespace->namespaces()) {
+ if (sibling.get() != scope && sibling->name() == scope->name()) {
+ if (const auto e = findEnumByValueRecursion(sibling.get(),
+ fullValue, enumValue, false)) {
+ return e;
+ }
+ }
+ }
+ }
+ }
+
+ if (const auto e = findEnumByValueRecursion(enclosingScope, fullValue, enumValue))
+ return e;
+ }
+
+ // PYSIDE-331: We need to also search the base classes.
+ if (auto *classItem = dynamic_cast<const _ClassModelItem *>(scope)) {
+ for (const auto &base : classItem->baseClasses()) {
+ if (base.klass) {
+ auto *c = base.klass.get();
+ if (const auto e = findEnumByValueRecursion(c, fullValue, enumValue))
+ return e;
+ }
+ }
+ }
+
+ return {};
+}
+
+_ScopeModelItem::FindEnumByValueReturn
+ _ScopeModelItem::findEnumByValue(QStringView value) const
+{
+ const auto lastQualifier = value.lastIndexOf(u"::");
+ const auto enumValue = lastQualifier == -1
+ ? value : value.mid(lastQualifier + 2);
+ return findEnumByValueRecursion(this, value, enumValue);
+}
+
+FunctionList _ScopeModelItem::findFunctions(QAnyStringView name) const
{
FunctionList result;
for (const FunctionModelItem &func : m_functions) {
@@ -685,16 +757,25 @@ FunctionList _ScopeModelItem::findFunctions(const QString &name) const
}
// ---------------------------------------------------------------------------
-_NamespaceModelItem::~_NamespaceModelItem()
+_NamespaceModelItem::_NamespaceModelItem(CodeModel *model, int kind)
+ : _ScopeModelItem(model, kind)
{
}
+_NamespaceModelItem::_NamespaceModelItem(CodeModel *model, const QString &name, int kind)
+ : _ScopeModelItem(model, name, kind)
+{
+}
+
+_NamespaceModelItem::~_NamespaceModelItem() = default;
+
void _NamespaceModelItem::addNamespace(NamespaceModelItem item)
{
+ item->setEnclosingScope(this);
m_namespaces.append(item);
}
-NamespaceModelItem _NamespaceModelItem::findNamespace(const QString &name) const
+NamespaceModelItem _NamespaceModelItem::findNamespace(QAnyStringView name) const
{
return findModelItem(m_namespaces, name);
}
@@ -726,10 +807,18 @@ void _NamespaceModelItem::formatDebug(QDebug &d) const
#endif // !QT_NO_DEBUG_STREAM
// ---------------------------------------------------------------------------
-_ArgumentModelItem::~_ArgumentModelItem()
+_ArgumentModelItem::_ArgumentModelItem(CodeModel *model, int kind)
+ : _CodeModelItem(model, kind)
{
}
+_ArgumentModelItem::_ArgumentModelItem(CodeModel *model, const QString &name, int kind)
+ : _CodeModelItem(model, name, kind)
+{
+}
+
+_ArgumentModelItem::~_ArgumentModelItem() = default;
+
TypeInfo _ArgumentModelItem::type() const
{
return m_type;
@@ -750,11 +839,23 @@ void _ArgumentModelItem::setDefaultValue(bool defaultValue)
m_defaultValue = defaultValue;
}
+bool _ArgumentModelItem::scopeResolution() const
+{
+ return m_scopeResolution;
+}
+
+void _ArgumentModelItem::setScopeResolution(bool v)
+{
+ m_scopeResolution = v;
+}
+
#ifndef QT_NO_DEBUG_STREAM
void _ArgumentModelItem::formatDebug(QDebug &d) const
{
_CodeModelItem::formatDebug(d);
d << ", type=" << m_type;
+ if (m_scopeResolution)
+ d << ", [m_scope resolution]";
if (m_defaultValue)
d << ", defaultValue=\"" << m_defaultValueExpression << '"';
}
@@ -773,12 +874,12 @@ bool _FunctionModelItem::isSimilar(const FunctionModelItem &other) const
if (isVariadics() != other->isVariadics())
return false;
- if (arguments().count() != other->arguments().count())
+ if (arguments().size() != other->arguments().size())
return false;
// ### check the template parameters
- for (int i = 0; i < arguments().count(); ++i) {
+ for (qsizetype i = 0; i < arguments().size(); ++i) {
ArgumentModelItem arg1 = arguments().at(i);
ArgumentModelItem arg2 = other->arguments().at(i);
@@ -789,6 +890,16 @@ bool _FunctionModelItem::isSimilar(const FunctionModelItem &other) const
return true;
}
+_FunctionModelItem::_FunctionModelItem(CodeModel *model, int kind)
+ : _MemberModelItem(model, kind), m_flags(0)
+{
+}
+
+_FunctionModelItem::_FunctionModelItem(CodeModel *model, const QString &name, int kind)
+ : _MemberModelItem(model, name, kind), m_flags(0)
+{
+}
+
ArgumentList _FunctionModelItem::arguments() const
{
return m_arguments;
@@ -819,55 +930,76 @@ void _FunctionModelItem::setVariadics(bool isVariadics)
m_isVariadics = isVariadics;
}
-bool _FunctionModelItem::isDefaultConstructor() const
+bool _FunctionModelItem::scopeResolution() const
{
- return m_functionType == CodeModel::Constructor
- && (m_arguments.isEmpty() || m_arguments.constFirst()->defaultValue());
+ return m_scopeResolution;
}
-bool _FunctionModelItem::isNoExcept() const
+void _FunctionModelItem::setScopeResolution(bool v)
{
- return m_exceptionSpecification == ExceptionSpecification::NoExcept;
+ m_scopeResolution = v;
}
-ExceptionSpecification _FunctionModelItem::exceptionSpecification() const
+bool _FunctionModelItem::isDefaultConstructor() const
{
- return m_exceptionSpecification;
+ return m_functionType == CodeModel::Constructor
+ && (m_arguments.isEmpty() || m_arguments.constFirst()->defaultValue());
}
-void _FunctionModelItem::setExceptionSpecification(ExceptionSpecification e)
+bool _FunctionModelItem::isSpaceshipOperator() const
{
- m_exceptionSpecification = e;
+ return m_functionType == CodeModel::ComparisonOperator
+ && name() == u"operator<=>";
}
-bool _FunctionModelItem::isDeleted() const
+bool _FunctionModelItem::isNoExcept() const
{
- return m_isDeleted;
+ return m_exceptionSpecification == ExceptionSpecification::NoExcept;
}
-void _FunctionModelItem::setDeleted(bool d)
+bool _FunctionModelItem::isOperator() const
{
- m_isDeleted = d;
+ bool result = false;
+ switch (m_functionType) {
+ case CodeModel::CallOperator:
+ case CodeModel::ConversionOperator:
+ case CodeModel::DereferenceOperator:
+ case CodeModel::ReferenceOperator:
+ case CodeModel::ArrowOperator:
+ case CodeModel::ArithmeticOperator:
+ case CodeModel::IncrementOperator:
+ case CodeModel::DecrementOperator:
+ case CodeModel::BitwiseOperator:
+ case CodeModel::LogicalOperator:
+ case CodeModel::ShiftOperator:
+ case CodeModel::SubscriptOperator:
+ case CodeModel::ComparisonOperator:
+ result = true;
+ break;
+ default:
+ break;
+ }
+ return result;
}
-bool _FunctionModelItem::isDeprecated() const
+ExceptionSpecification _FunctionModelItem::exceptionSpecification() const
{
- return m_isDeprecated;
+ return m_exceptionSpecification;
}
-void _FunctionModelItem::setDeprecated(bool d)
+void _FunctionModelItem::setExceptionSpecification(ExceptionSpecification e)
{
- m_isDeprecated = d;
+ m_exceptionSpecification = e;
}
-bool _FunctionModelItem::isVirtual() const
+bool _FunctionModelItem::isDeleted() const
{
- return m_isVirtual;
+ return m_isDeleted;
}
-void _FunctionModelItem::setVirtual(bool isVirtual)
+void _FunctionModelItem::setDeleted(bool d)
{
- m_isVirtual = isVirtual;
+ m_isDeleted = d;
}
bool _FunctionModelItem::isInline() const
@@ -875,60 +1007,19 @@ bool _FunctionModelItem::isInline() const
return m_isInline;
}
-bool _FunctionModelItem::isOverride() const
-{
- return m_isOverride;
-}
-
-void _FunctionModelItem::setOverride(bool o)
-{
- m_isOverride = o;
-}
-
-bool _FunctionModelItem::isFinal() const
-{
- return m_isFinal;
-}
-
-void _FunctionModelItem::setFinal(bool f)
-{
- m_isFinal = f;
-}
-
void _FunctionModelItem::setInline(bool isInline)
{
m_isInline = isInline;
}
-bool _FunctionModelItem::isExplicit() const
-{
- return m_isExplicit;
-}
-
-void _FunctionModelItem::setExplicit(bool isExplicit)
-{
- m_isExplicit = isExplicit;
-}
-
-bool _FunctionModelItem::isAbstract() const
+bool _FunctionModelItem::isHiddenFriend() const
{
- return m_isAbstract;
+ return m_isHiddenFriend;
}
-void _FunctionModelItem::setAbstract(bool isAbstract)
+void _FunctionModelItem::setHiddenFriend(bool f)
{
- m_isAbstract = isAbstract;
-}
-
-// Qt
-bool _FunctionModelItem::isInvokable() const
-{
- return m_isInvokable;
-}
-
-void _FunctionModelItem::setInvokable(bool isInvokable)
-{
- m_isInvokable = isInvokable;
+ m_isHiddenFriend = f;
}
QString _FunctionModelItem::typeSystemSignature() const // For dumping out type system files
@@ -936,7 +1027,7 @@ QString _FunctionModelItem::typeSystemSignature() const // For dumping out type
QString result;
QTextStream str(&result);
str << name() << '(';
- for (int a = 0, size = m_arguments.size(); a < size; ++a) {
+ for (qsizetype a = 0, size = m_arguments.size(); a < size; ++a) {
if (a)
str << ',';
m_arguments.at(a)->type().formatTypeSystemSignature(str);
@@ -980,6 +1071,7 @@ static const NameFunctionTypeHash &nameToOperatorFunction()
{u"operator>=", CodeModel::ComparisonOperator},
{u"operator==", CodeModel::ComparisonOperator},
{u"operator!=", CodeModel::ComparisonOperator},
+ {u"operator<=>", CodeModel::ComparisonOperator},
{u"operator!", CodeModel::LogicalOperator},
{u"operator&&", CodeModel::LogicalOperator},
{u"operator||", CodeModel::LogicalOperator},
@@ -1054,20 +1146,22 @@ void _FunctionModelItem::formatDebug(QDebug &d) const
d << " [deleted!]";
if (m_isInline)
d << " [inline]";
- if (m_isVirtual)
+ if (m_attributes.testFlag(FunctionAttribute::Virtual))
d << " [virtual]";
- if (m_isOverride)
+ if (m_attributes.testFlag(FunctionAttribute::Override))
d << " [override]";
- if (m_isDeprecated)
+ if (m_attributes.testFlag(FunctionAttribute::Deprecated))
d << " [deprecated]";
- if (m_isFinal)
+ if (m_attributes.testFlag(FunctionAttribute::Final))
d << " [final]";
- if (m_isAbstract)
+ if (m_attributes.testFlag(FunctionAttribute::Abstract))
d << " [abstract]";
- if (m_isExplicit)
+ if (m_attributes.testFlag(FunctionAttribute::Explicit))
d << " [explicit]";
if (m_isInvokable)
d << " [invokable]";
+ if (m_scopeResolution)
+ d << " [scope resolution]";
formatModelItemList(d, ", arguments=", m_arguments);
if (m_isVariadics)
d << ",...";
@@ -1075,6 +1169,16 @@ void _FunctionModelItem::formatDebug(QDebug &d) const
#endif // !QT_NO_DEBUG_STREAM
// ---------------------------------------------------------------------------
+_TypeDefModelItem::_TypeDefModelItem(CodeModel *model, int kind)
+ : _CodeModelItem(model, kind)
+{
+}
+
+_TypeDefModelItem::_TypeDefModelItem(CodeModel *model, const QString &name, int kind)
+ : _CodeModelItem(model, name, kind)
+{
+}
+
TypeInfo _TypeDefModelItem::type() const
{
return m_type;
@@ -1126,7 +1230,7 @@ void _TemplateTypeAliasModelItem::formatDebug(QDebug &d) const
{
_CodeModelItem::formatDebug(d);
d << ", <";
- for (int i = 0, count = m_templateParameters.size(); i < count; ++i) {
+ for (qsizetype i = 0, count = m_templateParameters.size(); i < count; ++i) {
if (i)
d << ", ";
d << m_templateParameters.at(i)->name();
@@ -1136,6 +1240,16 @@ void _TemplateTypeAliasModelItem::formatDebug(QDebug &d) const
#endif // !QT_NO_DEBUG_STREAM
// ---------------------------------------------------------------------------
+_EnumModelItem::_EnumModelItem(CodeModel *model, const QString &name, int kind)
+ : _CodeModelItem(model, name, kind)
+{
+}
+
+_EnumModelItem::_EnumModelItem(CodeModel *model, int kind)
+ : _CodeModelItem(model, kind)
+{
+}
+
Access _EnumModelItem::accessPolicy() const
{
return m_accessPolicy;
@@ -1158,6 +1272,15 @@ void _EnumModelItem::addEnumerator(const EnumeratorModelItem &item)
m_enumerators.append(item);
}
+qsizetype _EnumModelItem::indexOfValue(QStringView value) const
+{
+ for (qsizetype i = 0, size = m_enumerators.size(); i < size; ++i) {
+ if (m_enumerators.at(i)->name() == value)
+ return i;
+ }
+ return -1;
+}
+
bool _EnumModelItem::isSigned() const
{
return m_signed;
@@ -1168,6 +1291,26 @@ void _EnumModelItem::setSigned(bool s)
m_signed = s;
}
+QString _EnumModelItem::underlyingType() const
+{
+ return m_underlyingType;
+}
+
+void _EnumModelItem::setUnderlyingType(const QString &underlyingType)
+{
+ m_underlyingType = underlyingType;
+}
+
+bool _EnumModelItem::isDeprecated() const
+{
+ return m_deprecated;
+}
+
+void _EnumModelItem::setDeprecated(bool d)
+{
+ m_deprecated = d;
+}
+
#ifndef QT_NO_DEBUG_STREAM
void _EnumModelItem::formatDebug(QDebug &d) const
{
@@ -1182,6 +1325,8 @@ void _EnumModelItem::formatDebug(QDebug &d) const
d << " (class)";
break;
}
+ if (m_deprecated)
+ d << " (deprecated)";
if (!m_signed)
d << " (unsigned)";
formatModelItemList(d, ", enumerators=", m_enumerators);
@@ -1191,6 +1336,16 @@ void _EnumModelItem::formatDebug(QDebug &d) const
// ---------------------------------------------------------------------------
_EnumeratorModelItem::~_EnumeratorModelItem() = default;
+_EnumeratorModelItem::_EnumeratorModelItem(CodeModel *model, int kind)
+ : _CodeModelItem(model, kind)
+{
+}
+
+_EnumeratorModelItem::_EnumeratorModelItem(CodeModel *model, const QString &name, int kind)
+ : _CodeModelItem(model, name, kind)
+{
+}
+
QString _EnumeratorModelItem::stringValue() const
{
return m_stringValue;
@@ -1201,17 +1356,40 @@ void _EnumeratorModelItem::setStringValue(const QString &value)
m_stringValue = value;
}
+bool _EnumeratorModelItem::isDeprecated() const
+{
+ return m_deprecated;
+}
+
+void _EnumeratorModelItem::setDeprecated(bool d)
+{
+ m_deprecated = d;
+}
+
#ifndef QT_NO_DEBUG_STREAM
void _EnumeratorModelItem::formatDebug(QDebug &d) const
{
_CodeModelItem::formatDebug(d);
d << ", value=" << m_value << ", stringValue=\"" << m_stringValue << '"';
+ if (m_deprecated)
+ d << " (deprecated)";
}
#endif // !QT_NO_DEBUG_STREAM
// ---------------------------------------------------------------------------
_TemplateParameterModelItem::~_TemplateParameterModelItem() = default;
+_TemplateParameterModelItem::_TemplateParameterModelItem(CodeModel *model, int kind)
+ : _CodeModelItem(model, kind)
+{
+}
+
+_TemplateParameterModelItem::_TemplateParameterModelItem(CodeModel *model,
+ const QString &name, int kind)
+ : _CodeModelItem(model, name, kind)
+{
+}
+
TypeInfo _TemplateParameterModelItem::type() const
{
return m_type;
@@ -1275,6 +1453,16 @@ void _MemberModelItem::setStatic(bool isStatic)
m_isStatic = isStatic;
}
+_MemberModelItem::_MemberModelItem(CodeModel *model, int kind)
+ : _CodeModelItem(model, kind), m_flags(0)
+{
+}
+
+_MemberModelItem::_MemberModelItem(CodeModel *model, const QString &name, int kind)
+ : _CodeModelItem(model, name, kind), m_flags(0)
+{
+}
+
bool _MemberModelItem::isConstant() const
{
return m_isConstant;
diff --git a/sources/shiboken6/ApiExtractor/parser/codemodel.h b/sources/shiboken6/ApiExtractor/parser/codemodel.h
index 75ad60aaf..b31c09163 100644
--- a/sources/shiboken6/ApiExtractor/parser/codemodel.h
+++ b/sources/shiboken6/ApiExtractor/parser/codemodel.h
@@ -1,31 +1,6 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Copyright (C) 2002-2005 Roberto Raggi <roberto@kdevelop.org>
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// Copyright (C) 2002-2005 Roberto Raggi <roberto@kdevelop.org>
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef CODEMODEL_H
@@ -37,13 +12,14 @@
#include "typeinfo.h"
#include <QtCore/QHash>
-#include <QtCore/QPair>
#include <QtCore/QSet>
#include <QtCore/QString>
#include <QtCore/QStringList>
#include <QtCore/QList>
+#include <QtCore/QWeakPointer>
#include <optional>
+#include <utility>
QT_FORWARD_DECLARE_CLASS(QDebug)
@@ -56,7 +32,7 @@ class CodeModel
{
Q_GADGET
public:
- Q_DISABLE_COPY(CodeModel)
+ Q_DISABLE_COPY_MOVE(CodeModel)
enum FunctionType {
Normal,
@@ -98,7 +74,7 @@ public:
NamespaceModelItem globalNamespace() const;
void addFile(const FileModelItem &item);
- FileModelItem findFile(const QString &name) const;
+ FileModelItem findFile(QAnyStringView name) const;
static CodeModelItem findItem(const QStringList &qualifiedName,
const ScopeModelItem &scope);
@@ -115,8 +91,9 @@ QDebug operator<<(QDebug d, const CodeModel *m);
class _CodeModelItem
{
- Q_DISABLE_COPY(_CodeModelItem)
public:
+ Q_DISABLE_COPY_MOVE(_CodeModelItem)
+
enum Kind {
/* These are bit-flags resembling inheritance */
Kind_Scope = 0x1,
@@ -167,6 +144,9 @@ public:
inline CodeModel *model() const { return m_model; }
+ const _ScopeModelItem *enclosingScope() const;
+ void setEnclosingScope(const _ScopeModelItem *s);
+
#ifndef QT_NO_DEBUG_STREAM
static void formatKind(QDebug &d, int k);
virtual void formatDebug(QDebug &d) const;
@@ -178,6 +158,7 @@ protected:
private:
CodeModel *m_model;
+ const _ScopeModelItem *m_enclosingScope = nullptr;
int m_kind;
int m_startLine;
int m_startColumn;
@@ -195,12 +176,13 @@ QDebug operator<<(QDebug d, const _CodeModelItem *t);
class _ScopeModelItem: public _CodeModelItem
{
public:
+ Q_DISABLE_COPY_MOVE(_ScopeModelItem)
DECLARE_MODEL_NODE(Scope)
~_ScopeModelItem();
ClassList classes() const { return m_classes; }
- EnumList enums() const { return m_enums; }
+ const EnumList &enums() const { return m_enums; }
inline const FunctionList &functions() const { return m_functions; }
TypeDefList typeDefs() const { return m_typeDefs; }
TemplateTypeAliasList templateTypeAliases() const { return m_templateTypeAliases; }
@@ -214,11 +196,21 @@ public:
void addVariable(const VariableModelItem &item);
ClassModelItem findClass(const QString &name) const;
- EnumModelItem findEnum(const QString &name) const;
- FunctionList findFunctions(const QString &name) const;
- TypeDefModelItem findTypeDef(const QString &name) const;
- TemplateTypeAliasModelItem findTemplateTypeAlias(const QString &name) const;
- VariableModelItem findVariable(const QString &name) const;
+ EnumModelItem findEnum(QAnyStringView name) const;
+
+ struct FindEnumByValueReturn
+ {
+ operator bool() const { return bool(item); }
+
+ EnumModelItem item;
+ QString qualifiedName;
+ };
+ FindEnumByValueReturn findEnumByValue(QStringView value) const;
+
+ FunctionList findFunctions(QAnyStringView name) const;
+ TypeDefModelItem findTypeDef(QAnyStringView name) const;
+ TemplateTypeAliasModelItem findTemplateTypeAlias(QAnyStringView name) const;
+ VariableModelItem findVariable(QAnyStringView name) const;
void addEnumsDeclaration(const QString &enumsDeclaration);
QStringList enumsDeclarations() const { return m_enumsDeclarations; }
@@ -233,10 +225,9 @@ public:
#endif
protected:
- explicit _ScopeModelItem(CodeModel *model, int kind = __node_kind)
- : _CodeModelItem(model, kind) {}
- explicit _ScopeModelItem(CodeModel *model, const QString &name, int kind = __node_kind)
- : _CodeModelItem(model, name, kind) {}
+ explicit _ScopeModelItem(CodeModel *model, int kind = __node_kind);
+ explicit _ScopeModelItem(CodeModel *model, const QString &name,
+ int kind = __node_kind);
void appendScope(const _ScopeModelItem &other);
@@ -245,6 +236,15 @@ protected:
#endif
private:
+ qsizetype indexOfEnum(const QString &name) const;
+
+ FindEnumByValueReturn findEnumByValueHelper(QStringView fullValue,
+ QStringView value) const;
+ static FindEnumByValueReturn
+ findEnumByValueRecursion(const _ScopeModelItem *scope,
+ QStringView fullValue, QStringView value,
+ bool searchSiblingNamespaces = true);
+
ClassList m_classes;
EnumList m_enums;
TypeDefList m_typeDefs;
@@ -259,11 +259,13 @@ private:
class _ClassModelItem: public _ScopeModelItem
{
public:
+ Q_DISABLE_COPY_MOVE(_ClassModelItem)
DECLARE_MODEL_NODE(Class)
struct BaseClass
{
QString name;
+ ClassModelItem klass; // Might be null in case of templates
Access accessPolicy = Access::Public;
};
@@ -274,19 +276,18 @@ public:
Access access = Access::Public;
};
- explicit _ClassModelItem(CodeModel *model, int kind = __node_kind)
- : _ScopeModelItem(model, kind), m_classType(CodeModel::Class) {}
- explicit _ClassModelItem(CodeModel *model, const QString &name, int kind = __node_kind)
- : _ScopeModelItem(model, name, kind), m_classType(CodeModel::Class) {}
+ explicit _ClassModelItem(CodeModel *model, int kind = __node_kind);
+ explicit _ClassModelItem(CodeModel *model, const QString &name,
+ int kind = __node_kind);
~_ClassModelItem();
- QList<BaseClass> baseClasses() const { return m_baseClasses; }
+ const QList<BaseClass> &baseClasses() const { return m_baseClasses; }
const QList<UsingMember> &usingMembers() const;
void addUsingMember(const QString &className, const QString &memberName,
Access accessPolicy);
- void addBaseClass(const QString &name, Access accessPolicy);
+ void addBaseClass(const BaseClass &b) { m_baseClasses.append(b); }
TemplateParameterList templateParameters() const;
void setTemplateParameters(const TemplateParameterList &templateParameters);
@@ -313,7 +314,7 @@ private:
QList<BaseClass> m_baseClasses;
QList<UsingMember> m_usingMembers;
TemplateParameterList m_templateParameters;
- CodeModel::ClassType m_classType;
+ CodeModel::ClassType m_classType = CodeModel::Class;
QStringList m_propertyDeclarations;
bool m_final = false;
@@ -322,12 +323,12 @@ private:
class _NamespaceModelItem: public _ScopeModelItem
{
public:
+ Q_DISABLE_COPY_MOVE(_NamespaceModelItem)
DECLARE_MODEL_NODE(Namespace)
- explicit _NamespaceModelItem(CodeModel *model, int kind = __node_kind)
- : _ScopeModelItem(model, kind) {}
- explicit _NamespaceModelItem(CodeModel *model, const QString &name, int kind = __node_kind)
- : _ScopeModelItem(model, name, kind) {}
+ explicit _NamespaceModelItem(CodeModel *model, int kind = __node_kind);
+ explicit _NamespaceModelItem(CodeModel *model, const QString &name,
+ int kind = __node_kind);
~_NamespaceModelItem();
const NamespaceList &namespaces() const { return m_namespaces; }
@@ -337,7 +338,7 @@ public:
void addNamespace(NamespaceModelItem item);
- NamespaceModelItem findNamespace(const QString &name) const;
+ NamespaceModelItem findNamespace(QAnyStringView name) const;
void appendNamespace(const _NamespaceModelItem &other);
@@ -353,24 +354,23 @@ private:
class _FileModelItem: public _NamespaceModelItem
{
public:
+ Q_DISABLE_COPY_MOVE(_FileModelItem)
DECLARE_MODEL_NODE(File)
- explicit _FileModelItem(CodeModel *model, int kind = __node_kind)
- : _NamespaceModelItem(model, kind) {}
- explicit _FileModelItem(CodeModel *model, const QString &name, int kind = __node_kind)
- : _NamespaceModelItem(model, name, kind) {}
+ using _NamespaceModelItem::_NamespaceModelItem;
+
~_FileModelItem();
};
class _ArgumentModelItem: public _CodeModelItem
{
public:
+ Q_DISABLE_COPY_MOVE(_ArgumentModelItem)
DECLARE_MODEL_NODE(Argument)
- explicit _ArgumentModelItem(CodeModel *model, int kind = __node_kind)
- : _CodeModelItem(model, kind), m_defaultValue(false) {}
- explicit _ArgumentModelItem(CodeModel *model, const QString &name, int kind = __node_kind)
- : _CodeModelItem(model, name, kind), m_defaultValue(false) {}
+ explicit _ArgumentModelItem(CodeModel *model, int kind = __node_kind);
+ explicit _ArgumentModelItem(CodeModel *model, const QString &name,
+ int kind = __node_kind);
~_ArgumentModelItem();
TypeInfo type() const;
@@ -382,6 +382,10 @@ public:
QString defaultValueExpression() const { return m_defaultValueExpression; }
void setDefaultValueExpression(const QString &expr) { m_defaultValueExpression = expr; }
+ // Argument type has scope resolution "::ArgumentType"
+ bool scopeResolution() const;
+ void setScopeResolution(bool v);
+
#ifndef QT_NO_DEBUG_STREAM
void formatDebug(QDebug &d) const override;
#endif
@@ -389,18 +393,19 @@ public:
private:
TypeInfo m_type;
QString m_defaultValueExpression;
- bool m_defaultValue;
+ bool m_defaultValue = false;
+ bool m_scopeResolution = false;
};
class _MemberModelItem: public _CodeModelItem
{
public:
+ Q_DISABLE_COPY_MOVE(_MemberModelItem)
DECLARE_MODEL_NODE(Member)
- explicit _MemberModelItem(CodeModel *model, int kind = __node_kind)
- : _CodeModelItem(model, kind), m_accessPolicy(Access::Public), m_flags(0) {}
- explicit _MemberModelItem(CodeModel *model, const QString &name, int kind = __node_kind)
- : _CodeModelItem(model, name, kind), m_accessPolicy(Access::Public), m_flags(0) {}
+ explicit _MemberModelItem(CodeModel *model, int kind = __node_kind);
+ explicit _MemberModelItem(CodeModel *model, const QString &name,
+ int kind = __node_kind);
~_MemberModelItem();
bool isConstant() const;
@@ -443,7 +448,7 @@ public:
private:
TemplateParameterList m_templateParameters;
TypeInfo m_type;
- Access m_accessPolicy;
+ Access m_accessPolicy = Access::Public;
union {
struct {
uint m_isConstant: 1;
@@ -463,12 +468,12 @@ private:
class _FunctionModelItem: public _MemberModelItem
{
public:
+ Q_DISABLE_COPY_MOVE(_FunctionModelItem)
DECLARE_MODEL_NODE(Function)
- explicit _FunctionModelItem(CodeModel *model, int kind = __node_kind)
- : _MemberModelItem(model, kind), m_functionType(CodeModel::Normal), m_flags(0) {}
- explicit _FunctionModelItem(CodeModel *model, const QString &name, int kind = __node_kind)
- : _MemberModelItem(model, name, kind), m_functionType(CodeModel::Normal), m_flags(0) {}
+ explicit _FunctionModelItem(CodeModel *model, int kind = __node_kind);
+ explicit _FunctionModelItem(CodeModel *model, const QString &name,
+ int kind = __node_kind);
~_FunctionModelItem();
ArgumentList arguments() const;
@@ -480,42 +485,34 @@ public:
static std::optional<CodeModel::FunctionType> functionTypeFromName(QStringView name);
+ FunctionAttributes attributes() const { return m_attributes; }
+ void setAttributes(FunctionAttributes a) { m_attributes = a; }
+ void setAttribute(FunctionAttribute a, bool on = true) { m_attributes.setFlag(a, on); }
+
bool isDeleted() const;
void setDeleted(bool d);
- bool isDeprecated() const;
- void setDeprecated(bool d);
-
- bool isVirtual() const;
- void setVirtual(bool isVirtual);
-
- bool isOverride() const;
- void setOverride(bool o);
-
- bool isFinal() const;
- void setFinal(bool f);
-
bool isInline() const;
void setInline(bool isInline);
- bool isExplicit() const;
- void setExplicit(bool isExplicit);
-
- bool isInvokable() const; // Qt
- void setInvokable(bool isInvokable); // Qt
-
- bool isAbstract() const;
- void setAbstract(bool isAbstract);
+ bool isHiddenFriend() const;
+ void setHiddenFriend(bool f);
bool isVariadics() const;
void setVariadics(bool isVariadics);
+ bool scopeResolution() const; // Return type has scope resolution "::ReturnType"
+ void setScopeResolution(bool v);
+
bool isDefaultConstructor() const;
+ bool isSpaceshipOperator() const;
bool isSimilar(const FunctionModelItem &other) const;
bool isNoExcept() const;
+ bool isOperator() const;
+
ExceptionSpecification exceptionSpecification() const;
void setExceptionSpecification(ExceptionSpecification e);
@@ -532,19 +529,16 @@ private:
CodeModel::FunctionType _determineTypeHelper() const;
ArgumentList m_arguments;
- CodeModel::FunctionType m_functionType;
+ FunctionAttributes m_attributes;
+ CodeModel::FunctionType m_functionType = CodeModel::Normal;
union {
struct {
uint m_isDeleted: 1;
- uint m_isVirtual: 1;
- uint m_isOverride: 1;
- uint m_isFinal: 1;
- uint m_isDeprecated: 1;
uint m_isInline: 1;
- uint m_isAbstract: 1;
- uint m_isExplicit: 1;
uint m_isVariadics: 1;
+ uint m_isHiddenFriend: 1;
uint m_isInvokable : 1; // Qt
+ uint m_scopeResolution: 1;
};
uint m_flags;
};
@@ -556,10 +550,7 @@ class _VariableModelItem: public _MemberModelItem
public:
DECLARE_MODEL_NODE(Variable)
- explicit _VariableModelItem(CodeModel *model, int kind = __node_kind)
- : _MemberModelItem(model, kind) {}
- explicit _VariableModelItem(CodeModel *model, const QString &name, int kind = __node_kind)
- : _MemberModelItem(model, name, kind) {}
+ using _MemberModelItem::_MemberModelItem;
};
class _TypeDefModelItem: public _CodeModelItem
@@ -567,10 +558,9 @@ class _TypeDefModelItem: public _CodeModelItem
public:
DECLARE_MODEL_NODE(TypeDef)
- explicit _TypeDefModelItem(CodeModel *model, int kind = __node_kind)
- : _CodeModelItem(model, kind) {}
- explicit _TypeDefModelItem(CodeModel *model, const QString &name, int kind = __node_kind)
- : _CodeModelItem(model, name, kind) {}
+ explicit _TypeDefModelItem(CodeModel *model, int kind = __node_kind);
+ explicit _TypeDefModelItem(CodeModel *model, const QString &name,
+ int kind = __node_kind);
TypeInfo type() const;
void setType(const TypeInfo &type);
@@ -610,12 +600,11 @@ private:
class _EnumModelItem: public _CodeModelItem
{
public:
+ Q_DISABLE_COPY_MOVE(_EnumModelItem)
DECLARE_MODEL_NODE(Enum)
- explicit _EnumModelItem(CodeModel *model, const QString &name, int kind = __node_kind)
- : _CodeModelItem(model, name, kind) {}
- explicit _EnumModelItem(CodeModel *model, int kind = __node_kind)
- : _CodeModelItem(model, kind) {}
+ explicit _EnumModelItem(CodeModel *model, const QString &name, int kind = __node_kind);
+ explicit _EnumModelItem(CodeModel *model, int kind = __node_kind);
~_EnumModelItem();
Access accessPolicy() const;
@@ -628,29 +617,39 @@ public:
EnumKind enumKind() const { return m_enumKind; }
void setEnumKind(EnumKind kind) { m_enumKind = kind; }
+ qsizetype indexOfValue(QStringView value) const;
+
#ifndef QT_NO_DEBUG_STREAM
void formatDebug(QDebug &d) const override;
#endif
+ bool isDeprecated() const;
+ void setDeprecated(bool d);
+
bool isSigned() const;
void setSigned(bool s);
+ QString underlyingType() const;
+ void setUnderlyingType(const QString &underlyingType);
+
private:
+ QString m_underlyingType;
Access m_accessPolicy = Access::Public;
EnumeratorList m_enumerators;
EnumKind m_enumKind = CEnum;
+ bool m_deprecated = false;
bool m_signed = true;
};
class _EnumeratorModelItem: public _CodeModelItem
{
public:
+ Q_DISABLE_COPY_MOVE(_EnumeratorModelItem)
DECLARE_MODEL_NODE(Enumerator)
- explicit _EnumeratorModelItem(CodeModel *model, int kind = __node_kind)
- : _CodeModelItem(model, kind) {}
- explicit _EnumeratorModelItem(CodeModel *model, const QString &name, int kind = __node_kind)
- : _CodeModelItem(model, name, kind) {}
+ explicit _EnumeratorModelItem(CodeModel *model, int kind = __node_kind);
+ explicit _EnumeratorModelItem(CodeModel *model, const QString &name,
+ int kind = __node_kind);
~_EnumeratorModelItem();
QString stringValue() const;
@@ -659,6 +658,9 @@ public:
EnumValue value() const { return m_value; }
void setValue(EnumValue v) { m_value = v; }
+ bool isDeprecated() const;
+ void setDeprecated(bool d);
+
#ifndef QT_NO_DEBUG_STREAM
void formatDebug(QDebug &d) const override;
#endif
@@ -666,17 +668,18 @@ public:
private:
QString m_stringValue;
EnumValue m_value;
+ bool m_deprecated = false;
};
class _TemplateParameterModelItem: public _CodeModelItem
{
public:
+ Q_DISABLE_COPY_MOVE(_TemplateParameterModelItem)
DECLARE_MODEL_NODE(TemplateParameter)
- explicit _TemplateParameterModelItem(CodeModel *model, int kind = __node_kind)
- : _CodeModelItem(model, kind), m_defaultValue(false) {}
- explicit _TemplateParameterModelItem(CodeModel *model, const QString &name, int kind = __node_kind)
- : _CodeModelItem(model, name, kind), m_defaultValue(false) {}
+ explicit _TemplateParameterModelItem(CodeModel *model, int kind = __node_kind);
+ explicit _TemplateParameterModelItem(CodeModel *model, const QString &name,
+ int kind = __node_kind);
~_TemplateParameterModelItem();
TypeInfo type() const;
@@ -691,9 +694,7 @@ public:
private:
TypeInfo m_type;
- bool m_defaultValue;
+ bool m_defaultValue = false;
};
#endif // CODEMODEL_H
-
-// kate: space-indent on; indent-width 2; replace-tabs on;
diff --git a/sources/shiboken6/ApiExtractor/parser/codemodel_enums.h b/sources/shiboken6/ApiExtractor/parser/codemodel_enums.h
index 4f5121a08..e5c429bd0 100644
--- a/sources/shiboken6/ApiExtractor/parser/codemodel_enums.h
+++ b/sources/shiboken6/ApiExtractor/parser/codemodel_enums.h
@@ -1,34 +1,11 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef CODEMODEL_ENUMS_H
#define CODEMODEL_ENUMS_H
+#include <QtCore/qflags.h>
+
enum ReferenceType {
NoReference,
LValueReference,
@@ -68,4 +45,17 @@ enum class Access
Public
};
+enum class FunctionAttribute {
+ Abstract = 0x00000001,
+ Static = 0x00000002,
+ Virtual = 0x00000004,
+ Override = 0x00000008,
+ Final = 0x00000010,
+ Deprecated = 0x00000020, // Code annotation
+ Explicit = 0x00000040, // Constructor
+};
+
+Q_DECLARE_FLAGS(FunctionAttributes, FunctionAttribute)
+Q_DECLARE_OPERATORS_FOR_FLAGS(FunctionAttributes)
+
#endif // CODEMODEL_ENUMS_H
diff --git a/sources/shiboken6/ApiExtractor/parser/codemodel_fwd.h b/sources/shiboken6/ApiExtractor/parser/codemodel_fwd.h
index b138f2a2f..f0a25c9db 100644
--- a/sources/shiboken6/ApiExtractor/parser/codemodel_fwd.h
+++ b/sources/shiboken6/ApiExtractor/parser/codemodel_fwd.h
@@ -1,38 +1,14 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Copyright (C) 2002-2005 Roberto Raggi <roberto@kdevelop.org>
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// Copyright (C) 2002-2005 Roberto Raggi <roberto@kdevelop.org>
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef CODEMODEL_FWD_H
#define CODEMODEL_FWD_H
#include <QtCore/QList>
-#include <QtCore/QSharedPointer>
+
+#include <memory>
// forward declarations
class CodeModel;
@@ -52,20 +28,20 @@ class _VariableModelItem;
class _MemberModelItem;
class TypeInfo;
-using ArgumentModelItem = QSharedPointer<_ArgumentModelItem>;
-using ClassModelItem = QSharedPointer<_ClassModelItem>;
-using CodeModelItem = QSharedPointer<_CodeModelItem>;
-using EnumModelItem = QSharedPointer<_EnumModelItem>;
-using EnumeratorModelItem = QSharedPointer<_EnumeratorModelItem>;
-using FileModelItem = QSharedPointer<_FileModelItem>;
-using FunctionModelItem = QSharedPointer<_FunctionModelItem>;
-using NamespaceModelItem = QSharedPointer<_NamespaceModelItem>;
-using ScopeModelItem = QSharedPointer<_ScopeModelItem>;
-using TemplateParameterModelItem = QSharedPointer<_TemplateParameterModelItem>;
-using TypeDefModelItem = QSharedPointer<_TypeDefModelItem>;
-using TemplateTypeAliasModelItem = QSharedPointer<_TemplateTypeAliasModelItem>;
-using VariableModelItem = QSharedPointer<_VariableModelItem>;
-using MemberModelItem = QSharedPointer<_MemberModelItem>;
+using ArgumentModelItem = std::shared_ptr<_ArgumentModelItem>;
+using ClassModelItem = std::shared_ptr<_ClassModelItem>;
+using CodeModelItem = std::shared_ptr<_CodeModelItem>;
+using EnumModelItem = std::shared_ptr<_EnumModelItem>;
+using EnumeratorModelItem = std::shared_ptr<_EnumeratorModelItem>;
+using FileModelItem = std::shared_ptr<_FileModelItem>;
+using FunctionModelItem = std::shared_ptr<_FunctionModelItem>;
+using NamespaceModelItem = std::shared_ptr<_NamespaceModelItem>;
+using ScopeModelItem = std::shared_ptr<_ScopeModelItem>;
+using TemplateParameterModelItem = std::shared_ptr<_TemplateParameterModelItem>;
+using TypeDefModelItem = std::shared_ptr<_TypeDefModelItem>;
+using TemplateTypeAliasModelItem = std::shared_ptr<_TemplateTypeAliasModelItem>;
+using VariableModelItem = std::shared_ptr<_VariableModelItem>;
+using MemberModelItem = std::shared_ptr<_MemberModelItem>;
using ArgumentList = QList<ArgumentModelItem>;
using ClassList = QList<ClassModelItem>;
diff --git a/sources/shiboken6/ApiExtractor/parser/enumvalue.cpp b/sources/shiboken6/ApiExtractor/parser/enumvalue.cpp
index 2ee7398ea..3749e16a8 100644
--- a/sources/shiboken6/ApiExtractor/parser/enumvalue.cpp
+++ b/sources/shiboken6/ApiExtractor/parser/enumvalue.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "enumvalue.h"
@@ -32,12 +7,34 @@
#include <QtCore/QString>
#include <QtCore/QTextStream>
+using namespace Qt::StringLiterals;
+
QString EnumValue::toString() const
{
return m_type == EnumValue::Signed
? QString::number(m_value) : QString::number(m_unsignedValue);
}
+QString EnumValue::toHex(int fieldWidth) const
+{
+ QString result;
+ QTextStream str(&result);
+ // Note: Qt goofes up formatting of negative padded hex numbers, it ends up
+ // with "0x00-1". Write '-' before.
+ if (isNegative())
+ str << '-';
+ str << "0x" << Qt::hex;
+ if (fieldWidth) {
+ str.setFieldWidth(fieldWidth);
+ str.setPadChar(u'0');
+ }
+ if (m_type == EnumValue::Signed)
+ str << qAbs(m_value);
+ else
+ str << m_unsignedValue;
+ return result;
+}
+
void EnumValue::setValue(qint64 v)
{
m_value = v;
@@ -50,11 +47,37 @@ void EnumValue::setUnsignedValue(quint64 v)
m_type = Unsigned;
}
-bool EnumValue::equals(const EnumValue &rhs) const
+EnumValue EnumValue::toUnsigned() const
{
- if (m_type != rhs.m_type)
+ if (m_type == Unsigned)
+ return *this;
+ EnumValue result;
+ result.setUnsignedValue(m_value < 0 ? quint64(-m_value) : quint64(m_value));
+ return result;
+}
+
+bool comparesEqual(const EnumValue &lhs, const EnumValue &rhs) noexcept
+{
+ if (lhs.m_type != rhs.m_type)
return false;
- return m_type == Signed ? m_value == rhs.m_value : m_unsignedValue == rhs.m_unsignedValue;
+ return lhs.m_type == EnumValue::Signed
+ ? lhs.m_value == rhs.m_value : lhs.m_unsignedValue == rhs.m_unsignedValue;
+}
+
+void EnumValue::formatDebugHex(QDebug &d) const
+{
+ d << "0x" << Qt::hex;
+ formatDebug(d);
+ d << Qt::dec;
+}
+
+void EnumValue::formatDebug(QDebug &d) const
+{
+
+ if (m_type == EnumValue::Signed)
+ d << m_value;
+ else
+ d << m_unsignedValue << 'u';
}
#ifndef QT_NO_DEBUG_STREAM
@@ -64,10 +87,7 @@ QDebug operator<<(QDebug d,const EnumValue &v)
d.nospace();
d.noquote();
d << "EnumValue(";
- if (v.m_type == EnumValue::Signed)
- d << v.m_value;
- else
- d << v.m_unsignedValue << 'u';
+ v.formatDebug(d);
d << ')';
return d;
}
diff --git a/sources/shiboken6/ApiExtractor/parser/enumvalue.h b/sources/shiboken6/ApiExtractor/parser/enumvalue.h
index 3cd7d01a4..bbd5a712d 100644
--- a/sources/shiboken6/ApiExtractor/parser/enumvalue.h
+++ b/sources/shiboken6/ApiExtractor/parser/enumvalue.h
@@ -1,35 +1,12 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef ENUMVALUE_H
#define ENUMVALUE_H
-#include <QtCore/QtGlobal>
+#include <QtCore/qtypes.h>
+#include <QtCore/qtclasshelpermacros.h>
+#include <QtCore/QtCompare>
QT_FORWARD_DECLARE_CLASS(QDebug)
QT_FORWARD_DECLARE_CLASS(QString)
@@ -45,18 +22,29 @@ public:
};
QString toString() const;
+ QString toHex(int fieldWidth = 0) const;
Type type() { return m_type; }
qint64 value() const { return m_value; }
quint64 unsignedValue() const { return m_unsignedValue; }
bool isNullValue() const { return m_type == Signed ? m_value == 0 : m_unsignedValue == 0u; }
+ bool isNegative() const { return m_type == Signed && m_value < 0; }
void setValue(qint64 v);
void setUnsignedValue(quint64 v);
+ EnumValue toUnsigned() const;
+
bool equals(const EnumValue &rhs) const;
+ void formatDebug(QDebug &d) const;
+ void formatDebugHex(QDebug &d) const;
+
private:
+ friend bool comparesEqual(const EnumValue &lhs,
+ const EnumValue &rhs) noexcept;
+ Q_DECLARE_EQUALITY_COMPARABLE(EnumValue)
+
#ifndef QT_NO_DEBUG_STREAM
friend QDebug operator<<(QDebug, const EnumValue &);
#endif
@@ -70,9 +58,4 @@ private:
Type m_type = Signed;
};
-inline bool operator==(const EnumValue &e1, const EnumValue &e2)
-{ return e1.equals(e2); }
-inline bool operator!=(const EnumValue &e1, const EnumValue &e2)
-{ return !e1.equals(e2); }
-
#endif // ENUMVALUE_H
diff --git a/sources/shiboken6/ApiExtractor/parser/typeinfo.cpp b/sources/shiboken6/ApiExtractor/parser/typeinfo.cpp
index e3fdeac84..f8c5c31d8 100644
--- a/sources/shiboken6/ApiExtractor/parser/typeinfo.cpp
+++ b/sources/shiboken6/ApiExtractor/parser/typeinfo.cpp
@@ -1,37 +1,15 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Copyright (C) 2002-2005 Roberto Raggi <roberto@kdevelop.org>
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// Copyright (C) 2002-2005 Roberto Raggi <roberto@kdevelop.org>
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "typeinfo.h"
#include "codemodel.h"
#include <clangparser/clangutils.h>
+#include <debughelpers_p.h>
+
+#include "qtcompat.h"
#include <QtCore/QDebug>
#include <QtCore/QStack>
@@ -39,6 +17,8 @@
#include <iostream>
+using namespace Qt::StringLiterals;
+
class TypeInfoData : public QSharedData
{
@@ -67,10 +47,10 @@ public:
};
};
- ReferenceType m_referenceType;
+ ReferenceType m_referenceType = NoReference;
};
-TypeInfoData::TypeInfoData() : flags(0), m_referenceType(NoReference)
+TypeInfoData::TypeInfoData() : flags(0)
{
}
@@ -81,9 +61,8 @@ TypeInfo::TypeInfo() : d(new TypeInfoData)
TypeInfo::~TypeInfo() = default;
TypeInfo::TypeInfo(const TypeInfo &) = default;
TypeInfo& TypeInfo::operator=(const TypeInfo &) = default;
-TypeInfo::TypeInfo(TypeInfo &&) = default;
-TypeInfo& TypeInfo::operator=(TypeInfo &&) = default;
-
+TypeInfo::TypeInfo(TypeInfo &&) noexcept = default;
+TypeInfo &TypeInfo::operator=(TypeInfo &&) noexcept = default;
static inline TypeInfo createType(const QString &name)
{
@@ -94,13 +73,13 @@ static inline TypeInfo createType(const QString &name)
TypeInfo TypeInfo::voidType()
{
- static const TypeInfo result = createType(QLatin1String("void"));
+ static const TypeInfo result = createType(u"void"_s);
return result;
}
TypeInfo TypeInfo::varArgsType()
{
- static const TypeInfo result = createType(QLatin1String("..."));
+ static const TypeInfo result = createType(u"..."_s);
return result;
}
@@ -119,7 +98,7 @@ TypeInfo TypeInfo::combine(const TypeInfo &__lhs, const TypeInfo &__rhs)
__result.setArrayElements(__result.arrayElements() + __rhs.arrayElements());
- const auto instantiations = __rhs.instantiations();
+ const auto &instantiations = __rhs.instantiations();
for (const auto &i : instantiations)
__result.addInstantiation(i);
@@ -148,7 +127,7 @@ bool TypeInfoData::isVoid() const
&& m_arguments.isEmpty() && m_arrayElements.isEmpty()
&& m_instantiations.isEmpty()
&& m_qualifiedName.size() == 1
- && m_qualifiedName.constFirst() == QLatin1String("void");
+ && m_qualifiedName.constFirst() == u"void";
}
bool TypeInfo::isVoid() const
@@ -287,6 +266,12 @@ void TypeInfo::clearInstantiations()
d->m_instantiations.clear();
}
+bool TypeInfo::isPlain() const
+{
+ return d->m_constant == 0 && d->m_volatile == 0 && d->m_referenceType == NoReference
+ && d->m_indirections.isEmpty() && d->m_arrayElements.isEmpty();
+}
+
TypeInfo TypeInfo::resolveType(TypeInfo const &__type, const ScopeModelItem &__scope)
{
CodeModel *__model = __scope->model();
@@ -307,34 +292,34 @@ TypeInfo TypeInfo::resolveType(CodeModelItem __item, TypeInfo const &__type, con
otherType.setQualifiedName(__item->qualifiedName());
}
- if (TypeDefModelItem __typedef = qSharedPointerDynamicCast<_TypeDefModelItem>(__item)) {
+ if (TypeDefModelItem __typedef = std::dynamic_pointer_cast<_TypeDefModelItem>(__item)) {
const TypeInfo combined = TypeInfo::combine(__typedef->type(), otherType);
const CodeModelItem nextItem = __scope->model()->findItem(combined.qualifiedName(), __scope);
if (!nextItem)
return combined;
// PYSIDE-362, prevent recursion on opaque structs like
// typedef struct xcb_connection_t xcb_connection_t;
- if (nextItem.data() ==__item.data()) {
+ if (nextItem.get() ==__item.get()) {
std::cerr << "** WARNING Bailing out recursion of " << __FUNCTION__
- << "() on " << qPrintable(__type.qualifiedName().join(QLatin1String("::")))
+ << "() on " << qPrintable(__type.qualifiedName().join(u"::"_s))
<< std::endl;
return otherType;
}
return resolveType(nextItem, combined, __scope);
}
- if (TemplateTypeAliasModelItem templateTypeAlias = qSharedPointerDynamicCast<_TemplateTypeAliasModelItem>(__item)) {
+ if (TemplateTypeAliasModelItem templateTypeAlias = std::dynamic_pointer_cast<_TemplateTypeAliasModelItem>(__item)) {
TypeInfo combined = TypeInfo::combine(templateTypeAlias->type(), otherType);
// For the alias "template<typename T> using QList = QVector<T>" with
// other="QList<int>", replace the instantiations to obtain "QVector<int>".
auto aliasInstantiations = templateTypeAlias->type().instantiations();
const auto &concreteInstantiations = otherType.instantiations();
- const int count = qMin(aliasInstantiations.size(), concreteInstantiations.size());
- for (int i = 0; i < count; ++i)
- aliasInstantiations[i] = concreteInstantiations[i];
+ const auto count = qMin(aliasInstantiations.size(), concreteInstantiations.size());
+ for (qsizetype i = 0; i < count; ++i)
+ aliasInstantiations[i] = concreteInstantiations.at(i);
combined.setInstantiations(aliasInstantiations);
- const CodeModelItem nextItem = __scope->model()->findItem(combined.qualifiedName(), __scope);
+ const CodeModelItem nextItem = CodeModel::findItem(combined.qualifiedName(), __scope);
if (!nextItem)
return combined;
return resolveType(nextItem, combined, __scope);
@@ -362,6 +347,10 @@ public:
while (level < m_parseStack.size())
m_parseStack.pop();
TypeInfo instantiation;
+ if (name.startsWith(u"const ")) {
+ instantiation.setConstant(true);
+ name = name.mid(6);
+ }
instantiation.setQualifiedName(qualifiedName(name));
top()->addInstantiation(instantiation);
}
@@ -382,7 +371,8 @@ private:
QStack<TypeInfo *> m_parseStack;
};
-QPair<int, int> TypeInfo::parseTemplateArgumentList(const QString &l, int from)
+std::pair<qsizetype, qsizetype>
+ TypeInfo::parseTemplateArgumentList(const QString &l, qsizetype from)
{
return clang::parseTemplateArgumentList(l, clang::TemplateArgumentHandler(TypeInfoTemplateArgumentHandler(this)), from);
}
@@ -391,23 +381,23 @@ QString TypeInfo::toString() const
{
QString tmp;
if (isConstant())
- tmp += QLatin1String("const ");
+ tmp += u"const "_s;
if (isVolatile())
- tmp += QLatin1String("volatile ");
+ tmp += u"volatile "_s;
- tmp += d->m_qualifiedName.join(QLatin1String("::"));
+ tmp += d->m_qualifiedName.join(u"::"_s);
- if (const int instantiationCount = d->m_instantiations.size()) {
- tmp += QLatin1Char('<');
- for (int i = 0; i < instantiationCount; ++i) {
+ if (const auto instantiationCount = d->m_instantiations.size()) {
+ tmp += u'<';
+ for (qsizetype i = 0; i < instantiationCount; ++i) {
if (i)
- tmp += QLatin1String(", ");
+ tmp += u", "_s;
tmp += d->m_instantiations.at(i).toString();
}
- if (tmp.endsWith(QLatin1Char('>')))
- tmp += QLatin1Char(' ');
- tmp += QLatin1Char('>');
+ if (tmp.endsWith(u'>'))
+ tmp += u' ';
+ tmp += u'>';
}
for (Indirection i : d->m_indirections)
@@ -417,40 +407,37 @@ QString TypeInfo::toString() const
case NoReference:
break;
case LValueReference:
- tmp += QLatin1Char('&');
+ tmp += u'&';
break;
case RValueReference:
- tmp += QLatin1String("&&");
+ tmp += u"&&"_s;
break;
}
if (isFunctionPointer()) {
- tmp += QLatin1String(" (*)(");
- for (int i = 0; i < d->m_arguments.count(); ++i) {
+ tmp += u" (*)("_s;
+ for (qsizetype i = 0; i < d->m_arguments.size(); ++i) {
if (i != 0)
- tmp += QLatin1String(", ");
+ tmp += u", "_s;
tmp += d->m_arguments.at(i).toString();
}
- tmp += QLatin1Char(')');
+ tmp += u')';
}
- for (const QString &elt : d->m_arrayElements) {
- tmp += QLatin1Char('[');
- tmp += elt;
- tmp += QLatin1Char(']');
- }
+ for (const QString &elt : d->m_arrayElements)
+ tmp += u'[' + elt + u']';
return tmp;
}
bool TypeInfoData::equals(const TypeInfoData &other) const
{
- if (m_arrayElements.count() != other.m_arrayElements.count())
+ if (m_arrayElements.size() != other.m_arrayElements.size())
return false;
#if defined (RXX_CHECK_ARRAY_ELEMENTS) // ### it'll break
- for (int i = 0; i < arrayElements().count(); ++i) {
+ for (qsizetype i = 0; i < arrayElements().size(); ++i) {
QString elt1 = arrayElements().at(i).trimmed();
QString elt2 = other.arrayElements().at(i).trimmed();
@@ -465,34 +452,31 @@ bool TypeInfoData::equals(const TypeInfoData &other) const
&& m_instantiations == other.m_instantiations;
}
-bool TypeInfo::equals(const TypeInfo &other) const
+
+bool comparesEqual(const TypeInfo &lhs, const TypeInfo &rhs) noexcept
{
- return d.data() == other.d.data() || d->equals(*other.d);
+ return lhs.d.data() == rhs.d.data() || lhs.d->equals(*rhs.d);
}
QString TypeInfo::indirectionKeyword(Indirection i)
{
- return i == Indirection::Pointer
- ? QStringLiteral("*") : QStringLiteral("*const");
+ return i == Indirection::Pointer ? "*"_L1 : "*const"_L1;
}
-static inline QString constQualifier() { return QStringLiteral("const"); }
-static inline QString volatileQualifier() { return QStringLiteral("volatile"); }
-
bool TypeInfo::stripLeadingConst(QString *s)
{
- return stripLeadingQualifier(constQualifier(), s);
+ return stripLeadingQualifier("const"_L1, s);
}
bool TypeInfo::stripLeadingVolatile(QString *s)
{
- return stripLeadingQualifier(volatileQualifier(), s);
+ return stripLeadingQualifier("volatile"_L1, s);
}
-bool TypeInfo::stripLeadingQualifier(const QString &qualifier, QString *s)
+bool TypeInfo::stripLeadingQualifier(QLatin1StringView qualifier, QString *s)
{
// "const int x"
- const int qualifierSize = qualifier.size();
+ const auto qualifierSize = qualifier.size();
if (s->size() < qualifierSize + 1 || !s->startsWith(qualifier)
|| !s->at(qualifierSize).isSpace()) {
return false;
@@ -508,10 +492,8 @@ void TypeInfo::stripQualifiers(QString *s)
{
stripLeadingConst(s);
stripLeadingVolatile(s);
- while (s->endsWith(QLatin1Char('&')) || s->endsWith(QLatin1Char('*'))
- || s->endsWith(QLatin1Char(' '))) {
+ while (s->endsWith(u'&') || s->endsWith(u'*') || s->endsWith(u' '))
s->chop(1);
- }
}
// Helper functionality to simplify a raw standard type as returned by
@@ -522,7 +504,7 @@ void TypeInfo::stripQualifiers(QString *s)
bool TypeInfoData::isStdType() const
{
return m_qualifiedName.size() > 1
- && m_qualifiedName.constFirst() == QLatin1String("std");
+ && m_qualifiedName.constFirst() == u"std";
}
bool TypeInfo::isStdType() const
@@ -532,15 +514,15 @@ bool TypeInfo::isStdType() const
static inline bool discardStdType(const QString &name)
{
- return name == QLatin1String("allocator") || name == QLatin1String("less");
+ return name == u"allocator" || name == u"less";
}
void TypeInfoData::simplifyStdType()
{
Q_ASSERT(isStdType());
- if (m_qualifiedName.at(1).startsWith(QLatin1String("__")))
+ if (m_qualifiedName.at(1).startsWith(u"__"))
m_qualifiedName.removeAt(1);
- for (int t = m_instantiations.size() - 1; t >= 0; --t) {
+ for (auto t = m_instantiations.size() - 1; t >= 0; --t) {
if (m_instantiations.at(t).isStdType()) {
if (discardStdType(m_instantiations.at(t).qualifiedName().constLast()))
m_instantiations.removeAt(t);
@@ -560,7 +542,7 @@ void TypeInfo::formatTypeSystemSignature(QTextStream &str) const
{
if (d->m_constant)
str << "const ";
- str << d->m_qualifiedName.join(QLatin1String("::"));
+ str << d->m_qualifiedName.join(u"::"_s);
switch (d->m_referenceType) {
case NoReference:
break;
@@ -584,16 +566,6 @@ void TypeInfo::formatTypeSystemSignature(QTextStream &str) const
}
#ifndef QT_NO_DEBUG_STREAM
-template <class It>
-void formatSequence(QDebug &d, It i1, It i2, const char *separator=", ")
-{
- for (It i = i1; i != i2; ++i) {
- if (i != i1)
- d << separator;
- d << *i;
- }
-}
-
void TypeInfo::formatDebug(QDebug &debug) const
{
debug << '"';
diff --git a/sources/shiboken6/ApiExtractor/parser/typeinfo.h b/sources/shiboken6/ApiExtractor/parser/typeinfo.h
index 38e585726..e4f363b67 100644
--- a/sources/shiboken6/ApiExtractor/parser/typeinfo.h
+++ b/sources/shiboken6/ApiExtractor/parser/typeinfo.h
@@ -1,31 +1,6 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Copyright (C) 2002-2005 Roberto Raggi <roberto@kdevelop.org>
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// Copyright (C) 2002-2005 Roberto Raggi <roberto@kdevelop.org>
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TYPEINFO_H
#define TYPEINFO_H
@@ -35,8 +10,11 @@
#include <QtCore/QString>
#include <QtCore/QSharedDataPointer>
+#include <QtCore/QtCompare>
#include <QtCore/QStringList>
+#include <utility>
+
QT_FORWARD_DECLARE_CLASS(QDebug)
QT_FORWARD_DECLARE_CLASS(QTextStream)
@@ -53,8 +31,8 @@ public:
~TypeInfo();
TypeInfo(const TypeInfo &);
TypeInfo& operator=(const TypeInfo &);
- TypeInfo(TypeInfo &&);
- TypeInfo& operator=(TypeInfo &&);
+ TypeInfo(TypeInfo &&) noexcept;
+ TypeInfo &operator=(TypeInfo &&) noexcept;
static TypeInfo voidType();
static TypeInfo varArgsType();
@@ -102,11 +80,12 @@ public:
void addInstantiation(const TypeInfo &i);
void clearInstantiations();
- bool isStdType() const;
+ bool isPlain() const; // neither const,volatile, no indirections/references, array
- QPair<int, int> parseTemplateArgumentList(const QString &l, int from = 0);
+ bool isStdType() const;
- bool equals(const TypeInfo &other) const;
+ std::pair<qsizetype, qsizetype>
+ parseTemplateArgumentList(const QString &l, qsizetype from = 0);
// ### arrays and templates??
@@ -125,12 +104,16 @@ public:
static bool stripLeadingConst(QString *s);
static bool stripLeadingVolatile(QString *s);
- static bool stripLeadingQualifier(const QString &qualifier, QString *s);
+ static bool stripLeadingQualifier(QLatin1StringView qualifier, QString *s);
static void stripQualifiers(QString *s);
void simplifyStdType();
private:
+ friend bool comparesEqual(const TypeInfo &lhs,
+ const TypeInfo &rhs) noexcept;
+ Q_DECLARE_EQUALITY_COMPARABLE(TypeInfo)
+
QSharedDataPointer<TypeInfoData> d;
friend class TypeInfoTemplateArgumentHandler;
@@ -138,12 +121,6 @@ private:
static TypeInfo resolveType(CodeModelItem item, TypeInfo const &__type, const ScopeModelItem &__scope);
};
-inline bool operator==(const TypeInfo &t1, const TypeInfo &t2)
-{ return t1.equals(t2); }
-
-inline bool operator!=(const TypeInfo &t1, const TypeInfo &t2)
-{ return !t1.equals(t2); }
-
#ifndef QT_NO_DEBUG_STREAM
QDebug operator<<(QDebug d, const TypeInfo &t);
#endif
diff --git a/sources/shiboken6/ApiExtractor/predefined_templates.cpp b/sources/shiboken6/ApiExtractor/predefined_templates.cpp
new file mode 100644
index 000000000..992f735ac
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/predefined_templates.cpp
@@ -0,0 +1,276 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#include "predefined_templates.h"
+
+#include "qtcompat.h"
+
+using namespace Qt::StringLiterals;
+
+static QString pySequenceToCppContainer(const QString &insertFunc,
+ bool reserve)
+{
+ QString result = u"(%out).clear();\n"_s;
+ if (reserve) {
+ result += uR"(if (PyList_Check(%in)) {
+ const Py_ssize_t size = PySequence_Size(%in);
+ if (size > 10)
+ (%out).reserve(size);
+}
+
+)"_s;
+ }
+
+ result += uR"(Shiboken::AutoDecRef it(PyObject_GetIter(%in));
+while (true) {
+ Shiboken::AutoDecRef pyItem(PyIter_Next(it.object()));
+ if (pyItem.isNull()) {
+ if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration))
+ PyErr_Clear();
+ break;
+ }
+ %OUTTYPE_0 cppItem = %CONVERTTOCPP[%OUTTYPE_0](pyItem);
+ (%out).)"_s;
+
+ result += insertFunc;
+ result += uR"((cppItem);
+}
+)"_s;
+ return result;
+}
+
+// Convert a sequence to a limited/fixed array
+static QString pySequenceToCppArray()
+{
+ return uR"(Shiboken::AutoDecRef it(PyObject_GetIter(%in));
+for (auto oit = std::begin(%out), oend = std::end(%out); oit != oend; ++oit) {
+ Shiboken::AutoDecRef pyItem(PyIter_Next(it.object()));
+ if (pyItem.isNull()) {
+ if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration))
+ PyErr_Clear();
+ break;
+ }
+ %OUTTYPE_0 cppItem = %CONVERTTOCPP[%OUTTYPE_0](pyItem);
+ *oit = cppItem;
+}
+)"_s;
+}
+
+static constexpr auto stlMapKeyAccessor = "->first"_L1;
+static constexpr auto stlMapValueAccessor = "->second"_L1;
+static constexpr auto qtMapKeyAccessor = ".key()"_L1;
+static constexpr auto qtMapValueAccessor = ".value()"_L1;
+
+static QString cppMapToPyDict(bool isQMap)
+{
+ return uR"(PyObject *%out = PyDict_New();
+for (auto it = std::cbegin(%in), end = std::cend(%in); it != end; ++it) {
+ const auto &key = it)"_s
+ + (isQMap ? qtMapKeyAccessor : stlMapKeyAccessor)
+ + uR"(;
+ const auto &value = it)"_s
+ + (isQMap ? qtMapValueAccessor : stlMapValueAccessor)
+ + uR"(;
+ PyObject *pyKey = %CONVERTTOPYTHON[%INTYPE_0](key);
+ PyObject *pyValue = %CONVERTTOPYTHON[%INTYPE_1](value);
+ PyDict_SetItem(%out, pyKey, pyValue);
+ Py_DECREF(pyKey);
+ Py_DECREF(pyValue);
+}
+return %out;
+)"_s;
+}
+
+static QString pyDictToCppMap(bool isQMap)
+{
+ return uR"(PyObject *key;
+PyObject *value;
+%out.clear();
+Py_ssize_t pos = 0;
+while (PyDict_Next(%in, &pos, &key, &value)) {
+ %OUTTYPE_0 cppKey = %CONVERTTOCPP[%OUTTYPE_0](key);
+ %OUTTYPE_1 cppValue = %CONVERTTOCPP[%OUTTYPE_1](value);
+ %out.insert()"_s
+ // STL needs a pair
+ + (isQMap ? u"cppKey, cppValue"_s : u"{cppKey, cppValue}"_s) + uR"();
+}
+)"_s;
+}
+
+// Convert a STL or Qt multi map to Dict of Lists using upperBound()
+static QString cppMultiMapToPyDict(bool isQMultiMap)
+{
+ return uR"(PyObject *%out = PyDict_New();
+ for (auto it = std::cbegin(%in), end = std::cend(%in); it != end; ) {
+ const auto &key = it)"_s
+ + (isQMultiMap ? qtMapKeyAccessor : stlMapKeyAccessor)
+ + uR"(;
+ PyObject *pyKey = %CONVERTTOPYTHON[%INTYPE_0](key);
+ auto upper = %in.)"_s
+ + (isQMultiMap ? u"upperBound"_s : u"upper_bound"_s)
+ + uR"((key);
+ const auto count = Py_ssize_t(std::distance(it, upper));
+ PyObject *pyValues = PyList_New(count);
+ Py_ssize_t idx = 0;
+ for (; it != upper; ++it, ++idx) {
+ const auto &cppItem = it.value();
+ PyList_SET_ITEM(pyValues, idx, %CONVERTTOPYTHON[%INTYPE_1](cppItem));
+ }
+ PyDict_SetItem(%out, pyKey, pyValues);
+ Py_DECREF(pyKey);
+ }
+ return %out;
+)"_s;
+}
+
+// Convert a STL or Qt multi hash to Dict of Lists using equalRange()
+static QString cppMultiHashToPyDict(bool isQMultiHash)
+{
+ return uR"(PyObject *%out = PyDict_New();
+ for (auto it = std::cbegin(%in), end = std::cend(%in); it != end; ) {
+ const auto &key = it)"_s
+ + (isQMultiHash ? qtMapKeyAccessor : stlMapKeyAccessor)
+ + uR"(;
+ PyObject *pyKey = %CONVERTTOPYTHON[%INTYPE_0](key);
+ auto range = %in.equal_range(key);
+ const auto count = Py_ssize_t(std::distance(range.first, range.second));
+ PyObject *pyValues = PyList_New(count);
+ Py_ssize_t idx = 0;
+ for (; it != range.second; ++it, ++idx) {
+ const auto &cppItem = it.value();
+ PyList_SET_ITEM(pyValues, idx, %CONVERTTOPYTHON[%INTYPE_1](cppItem));
+ }
+ PyDict_SetItem(%out, pyKey, pyValues);
+ Py_DECREF(pyKey);
+ }
+ return %out;
+)"_s;
+}
+
+// Convert Dict of Lists to a STL or Qt multi hash/map
+static QString pyDictToCppMultiHash(bool isQMultiHash)
+{
+ return uR"(PyObject *key;
+ PyObject *values;
+ %out.clear();
+ Py_ssize_t pos = 0;
+ while (PyDict_Next(%in, &pos, &key, &values)) {
+ %OUTTYPE_0 cppKey = %CONVERTTOCPP[%OUTTYPE_0](key);
+ const Py_ssize_t size = PySequence_Size(values);
+ for (Py_ssize_t i = 0; i < size; ++i) {
+ Shiboken::AutoDecRef value(PySequence_GetItem(values, i));
+ %OUTTYPE_1 cppValue = %CONVERTTOCPP[%OUTTYPE_1](value);
+ %out.insert()"_s
+ + (isQMultiHash ? u"cppKey, cppValue"_s : u"{cppKey, cppValue}"_s)
+ + uR"();
+ }
+ }
+)"_s;
+}
+
+const PredefinedTemplates &predefinedTemplates()
+{
+ static const PredefinedTemplates result{
+ {u"shiboken_conversion_pylong_to_cpp"_s,
+ u"%out = %OUTTYPE(PyLong_AsLong(%in));\n"_s},
+
+ // QPair/std::pair
+ {u"shiboken_conversion_pysequence_to_cpppair"_s,
+ uR"(%out.first = %CONVERTTOCPP[%OUTTYPE_0](PySequence_Fast_GET_ITEM(%in, 0));
+%out.second = %CONVERTTOCPP[%OUTTYPE_1](PySequence_Fast_GET_ITEM(%in, 1));
+)"_s},
+
+ {u"shiboken_conversion_cpppair_to_pytuple"_s,
+ uR"(PyObject *%out = PyTuple_New(2);
+PyTuple_SET_ITEM(%out, 0, %CONVERTTOPYTHON[%INTYPE_0](%in.first));
+PyTuple_SET_ITEM(%out, 1, %CONVERTTOPYTHON[%INTYPE_1](%in.second));
+return %out;
+)"_s},
+
+ // Sequential containers
+ {u"shiboken_conversion_cppsequence_to_pylist"_s,
+ uR"(PyObject *%out = PyList_New(Py_ssize_t(%in.size()));
+Py_ssize_t idx = 0;
+for (auto it = std::cbegin(%in), end = std::cend(%in); it != end; ++it, ++idx) {
+ const auto &cppItem = *it;
+ PyList_SET_ITEM(%out, idx, %CONVERTTOPYTHON[%INTYPE_0](cppItem));
+}
+return %out;)"_s},
+
+ // PySet
+ {u"shiboken_conversion_cppsequence_to_pyset"_s,
+ uR"(PyObject *%out = PySet_New(nullptr);
+for (const auto &cppItem : %in) {
+ PySet_Add(%out, %CONVERTTOPYTHON[%INTYPE_0](cppItem));
+}
+return %out;)"_s},
+
+ {u"shiboken_conversion_pyiterable_to_cppsequentialcontainer"_s,
+ pySequenceToCppContainer(u"push_back"_s, false)},
+ {u"shiboken_conversion_pyiterable_to_cppsequentialcontainer_reserve"_s,
+ pySequenceToCppContainer(u"push_back"_s, true)},
+ {u"shiboken_conversion_pyiterable_to_cpparray"_s,
+ pySequenceToCppArray()},
+ {u"shiboken_conversion_pyiterable_to_cppsetcontainer"_s,
+ pySequenceToCppContainer(u"insert"_s, false)},
+
+ // Maps
+ {u"shiboken_conversion_stdmap_to_pydict"_s,
+ cppMapToPyDict(false)},
+ {u"shiboken_conversion_qmap_to_pydict"_s,
+ cppMapToPyDict(true)},
+ {u"shiboken_conversion_pydict_to_stdmap"_s,
+ pyDictToCppMap(false)},
+ {u"shiboken_conversion_pydict_to_qmap"_s,
+ pyDictToCppMap(true)},
+
+ // Multi maps
+ {u"shiboken_conversion_stdmultimap_to_pydict"_s,
+ cppMultiMapToPyDict(false)},
+ {u"shiboken_conversion_qmultimap_to_pydict"_s,
+ cppMultiMapToPyDict(true)},
+
+ // Multi hashes
+ {u"shiboken_conversion_stdunorderedmultimap_to_pydict"_s,
+ cppMultiHashToPyDict(false)},
+ {u"shiboken_conversion_qmultihash_to_pydict"_s,
+ cppMultiHashToPyDict(true)},
+
+ // STL multi hash/map
+ {u"shiboken_conversion_pydict_to_stdmultimap"_s,
+ pyDictToCppMultiHash(false)},
+ {u"shiboken_conversion_pydict_to_qmultihash"_s,
+ pyDictToCppMultiHash(true)}
+ };
+
+ return result;
+}
+
+QByteArray containerTypeSystemSnippet(const char *name, const char *type,
+ const char *include,
+ const char *nativeToTarget,
+ const char *targetToNativeType,
+ const char *targetToNative)
+{
+ QByteArray result = QByteArrayLiteral("<container-type name=\"")
+ + name + QByteArrayLiteral("\" type=\"") + type + R"(">
+ <include file-name=")" + include + R"(" location="global"/>
+ <conversion-rule>
+ <native-to-target>
+ <insert-template name=")" + nativeToTarget + R"("/>
+ </native-to-target>
+)";
+ if (targetToNativeType != nullptr) {
+ result += QByteArrayLiteral(R"( <target-to-native>
+ <add-conversion type=")") + targetToNativeType
+ + QByteArrayLiteral(R"(">
+ <insert-template name=")") + targetToNative + QByteArrayLiteral(R"("/>
+ </add-conversion>
+ </target-to-native>
+)");
+ }
+result += QByteArrayLiteral(R"( </conversion-rule>
+</container-type>
+)");
+ return result;
+}
diff --git a/sources/shiboken6/ApiExtractor/predefined_templates.h b/sources/shiboken6/ApiExtractor/predefined_templates.h
new file mode 100644
index 000000000..0cc2c7f32
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/predefined_templates.h
@@ -0,0 +1,27 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef PREDEFINED_TEMPLATES_H
+#define PREDEFINED_TEMPLATES_H
+
+#include <QtCore/QList>
+#include <QtCore/QString>
+
+struct PredefinedTemplate
+{
+ QString name;
+ QString content;
+};
+
+using PredefinedTemplates = QList<PredefinedTemplate>;
+
+const PredefinedTemplates &predefinedTemplates();
+
+// Create an XML snippet for a container type.
+QByteArray containerTypeSystemSnippet(const char *name, const char *type,
+ const char *include,
+ const char *nativeToTarget,
+ const char *targetToNativeType = nullptr,
+ const char *targetToNative = nullptr);
+
+#endif // PREDEFINED_TEMPLATES_H
diff --git a/sources/shiboken6/ApiExtractor/primitivetypeentry.h b/sources/shiboken6/ApiExtractor/primitivetypeentry.h
new file mode 100644
index 000000000..6faaf7a61
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/primitivetypeentry.h
@@ -0,0 +1,72 @@
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef PRIMITIVETYPEENTRY_H
+#define PRIMITIVETYPEENTRY_H
+
+#include "typesystem.h"
+#include "customconversion_typedefs.h"
+
+class PrimitiveTypeEntryPrivate;
+
+/// A PrimitiveTypeEntry is user-defined type with conversion rules, a C++
+/// primitive type for which a PrimitiveTypeConverter exists in libshiboken
+/// or a typedef to a C++ primitive type as determined by AbstractMetaBuilder.
+class PrimitiveTypeEntry : public TypeEntry
+{
+public:
+ explicit PrimitiveTypeEntry(const QString &entryName, const QVersionNumber &vr,
+ const TypeEntryCPtr &parent);
+
+ QString defaultConstructor() const;
+ void setDefaultConstructor(const QString& defaultConstructor);
+ bool hasDefaultConstructor() const;
+
+ /**
+ * The PrimitiveTypeEntry pointed by this type entry if it
+ * represents a typedef).
+ * \return the type referenced by the typedef, or a null pointer
+ * if the current object is not an typedef
+ */
+ PrimitiveTypeEntryPtr referencedTypeEntry() const;
+
+ /**
+ * Defines type referenced by this entry.
+ * \param referencedTypeEntry type referenced by this entry
+ */
+ void setReferencedTypeEntry(PrimitiveTypeEntryPtr referencedTypeEntry);
+
+ /// Returns whether this entry references another entry.
+ bool referencesType() const;
+
+ bool preferredTargetLangType() const;
+ void setPreferredTargetLangType(bool b);
+
+ bool hasCustomConversion() const;
+ void setCustomConversion(const CustomConversionPtr &customConversion);
+ CustomConversionPtr customConversion() const;
+
+ TypeEntry *clone() const override;
+
+#ifndef QT_NO_DEBUG_STREAM
+ void formatDebug(QDebug &d) const override;
+#endif
+
+protected:
+ explicit PrimitiveTypeEntry(PrimitiveTypeEntryPrivate *d);
+};
+
+/// Finds the most basic primitive type that the typedef represents,
+/// i.e. a type that is not an typedef'ed.
+/// \return the most basic non-typedef'ed primitive type represented
+/// by this typedef or self in case it is not a reference.
+PrimitiveTypeEntryCPtr basicReferencedTypeEntry(const PrimitiveTypeEntryCPtr &e);
+PrimitiveTypeEntryCPtr basicReferencedTypeEntry(const TypeEntryCPtr &e);
+
+/// Finds the basic primitive type that the typedef represents
+/// and was explicitly specified in the type system.
+/// \return the basic primitive type that was explicitly specified in
+/// the type system.
+PrimitiveTypeEntryCPtr basicReferencedNonBuiltinTypeEntry(const PrimitiveTypeEntryCPtr &e);
+
+#endif // PRIMITIVETYPEENTRY_H
diff --git a/sources/shiboken6/ApiExtractor/propertyspec.cpp b/sources/shiboken6/ApiExtractor/propertyspec.cpp
index f66eeeaf6..32b756fad 100644
--- a/sources/shiboken6/ApiExtractor/propertyspec.cpp
+++ b/sources/shiboken6/ApiExtractor/propertyspec.cpp
@@ -1,38 +1,16 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "propertyspec.h"
#include "abstractmetalang.h"
#include "abstractmetabuilder_p.h"
#include "abstractmetatype.h"
-#include "codemodel.h"
+#include "documentation.h"
#include "messages.h"
-#include "typesystem.h"
+#include "complextypeentry.h"
+#include "typeinfo.h"
+
+#include "qtcompat.h"
#include <QtCore/QHash>
@@ -42,6 +20,8 @@
#include <algorithm>
+using namespace Qt::StringLiterals;
+
class QPropertySpecData : public QSharedData
{
public:
@@ -52,6 +32,7 @@ public:
m_write(ts.write),
m_designable(ts.designable),
m_reset(ts.reset),
+ m_notify(ts.notify),
m_type(type),
m_generateGetSetDef(ts.generateGetSetDef)
{
@@ -62,6 +43,8 @@ public:
QString m_write;
QString m_designable;
QString m_reset;
+ QString m_notify;
+ Documentation m_documentation;
AbstractMetaType m_type;
int m_index = -1;
// Indicates whether actual code is generated instead of relying on libpyside.
@@ -76,8 +59,8 @@ QPropertySpec::QPropertySpec(const TypeSystemProperty &ts,
QPropertySpec::QPropertySpec(const QPropertySpec &) = default;
QPropertySpec &QPropertySpec::operator=(const QPropertySpec &) = default;
-QPropertySpec::QPropertySpec(QPropertySpec &&) = default;
-QPropertySpec &QPropertySpec::operator=(QPropertySpec &&) = default;
+QPropertySpec::QPropertySpec(QPropertySpec &&) noexcept = default;
+QPropertySpec &QPropertySpec::operator=(QPropertySpec &&) noexcept = default;
QPropertySpec::~QPropertySpec() = default;
const AbstractMetaType &QPropertySpec::type() const
@@ -91,7 +74,7 @@ void QPropertySpec::setType(const AbstractMetaType &t)
d->m_type = t;
}
-const TypeEntry *QPropertySpec::typeEntry() const
+TypeEntryCPtr QPropertySpec::typeEntry() const
{
return d->m_type.typeEntry();
}
@@ -107,6 +90,17 @@ void QPropertySpec::setName(const QString &name)
d->m_name = name;
}
+Documentation QPropertySpec::documentation() const
+{
+ return d->m_documentation;
+}
+
+void QPropertySpec::setDocumentation(const Documentation &doc)
+{
+ if (d->m_documentation != doc)
+ d->m_documentation = doc;
+}
+
QString QPropertySpec::read() const
{
return d->m_read;
@@ -156,6 +150,17 @@ void QPropertySpec::setReset(const QString &reset)
d->m_reset = reset;
}
+QString QPropertySpec::notify() const
+{
+ return d->m_notify;
+}
+
+void QPropertySpec::setNotify(const QString &notify)
+{
+ if (d->m_notify != notify)
+ d->m_notify = notify;
+}
+
int QPropertySpec::index() const
{
return d->m_index;
@@ -184,13 +189,15 @@ void QPropertySpec::setGenerateGetSetDef(bool generateGetSetDef)
TypeSystemProperty QPropertySpec::typeSystemPropertyFromQ_Property(const QString &declarationIn,
QString *errorMessage)
{
- enum class PropertyToken { None, Read, Write, Designable, Reset };
+ enum class PropertyToken { None, Read, Write, Designable, Reset, Notify, Member };
static const QHash<QString, PropertyToken> tokenLookup = {
- {QStringLiteral("READ"), PropertyToken::Read},
- {QStringLiteral("WRITE"), PropertyToken::Write},
- {QStringLiteral("DESIGNABLE"), PropertyToken::Designable},
- {QStringLiteral("RESET"), PropertyToken::Reset}
+ {"READ"_L1, PropertyToken::Read},
+ {"WRITE"_L1, PropertyToken::Write},
+ {"DESIGNABLE"_L1, PropertyToken::Designable},
+ {"RESET"_L1, PropertyToken::Reset},
+ {"NOTIFY"_L1, PropertyToken::Notify},
+ {"MEMBER"_L1, PropertyToken::Member}
};
errorMessage->clear();
@@ -200,7 +207,7 @@ TypeSystemProperty QPropertySpec::typeSystemPropertyFromQ_Property(const QString
// Q_PROPERTY(QString objectName READ objectName WRITE setObjectName NOTIFY objectNameChanged)
const QString declaration = declarationIn.simplified();
- auto propertyTokens = declaration.split(QLatin1Char(' '), Qt::SkipEmptyParts);
+ auto propertyTokens = declaration.split(u' ', Qt::SkipEmptyParts);
// To properly parse complicated type declarations like
// "Q_PROPERTY(const QList<QString > *objectName READ objectName ..."
@@ -209,17 +216,17 @@ TypeSystemProperty QPropertySpec::typeSystemPropertyFromQ_Property(const QString
const auto it = std::find_if(propertyTokens.cbegin(), propertyTokens.cend(),
[](const QString &t) { return tokenLookup.contains(t); });
if (it == propertyTokens.cend()) {
- *errorMessage = QLatin1String("Invalid property specification, READ missing");
+ *errorMessage = u"Invalid property specification, READ missing"_s;
return result;
}
- const int firstToken = int(it - propertyTokens.cbegin());
+ const auto firstToken = qsizetype(it - propertyTokens.cbegin());
if (firstToken < 2) {
- *errorMessage = QLatin1String("Insufficient number of tokens in property specification");
+ *errorMessage = u"Insufficient number of tokens in property specification"_s;
return result;
}
- for (int pos = firstToken; pos + 1 < propertyTokens.size(); pos += 2) {
+ for (qsizetype pos = firstToken; pos + 1 < propertyTokens.size(); pos += 2) {
switch (tokenLookup.value(propertyTokens.at(pos))) {
case PropertyToken::Read:
result.read = propertyTokens.at(pos + 1);
@@ -233,17 +240,25 @@ TypeSystemProperty QPropertySpec::typeSystemPropertyFromQ_Property(const QString
case PropertyToken::Designable:
result.designable = propertyTokens.at(pos + 1);
break;
+ case PropertyToken::Notify:
+ result.notify = propertyTokens.at(pos + 1);
+ break;
+ case PropertyToken::Member:
+ // Ignore MEMBER tokens introduced by QTBUG-16852 as Python
+ // properties are anyways generated for fields.
+ return {};
+
case PropertyToken::None:
break;
}
}
- const int namePos = firstToken - 1;
+ const auto namePos = firstToken - 1;
result.name = propertyTokens.at(namePos);
result.type = propertyTokens.constFirst();
- for (int pos = 1; pos < namePos; ++pos)
- result.type += QLatin1Char(' ') + propertyTokens.at(pos);
+ for (qsizetype pos = 1; pos < namePos; ++pos)
+ result.type += u' ' + propertyTokens.at(pos);
// Fix errors like "Q_PROPERTY(QXYSeries *series .." to be of type "QXYSeries*"
while (!result.name.isEmpty() && !result.name.at(0).isLetter()) {
@@ -251,7 +266,7 @@ TypeSystemProperty QPropertySpec::typeSystemPropertyFromQ_Property(const QString
result.name.remove(0, 1);
}
if (!result.isValid())
- *errorMessage = QLatin1String("Incomplete property specification");
+ *errorMessage = u"Incomplete property specification"_s;
return result;
}
@@ -259,7 +274,7 @@ TypeSystemProperty QPropertySpec::typeSystemPropertyFromQ_Property(const QString
// the AbstractMetaType from the type string.
std::optional<QPropertySpec>
QPropertySpec::fromTypeSystemProperty(AbstractMetaBuilderPrivate *b,
- AbstractMetaClass *metaClass,
+ const AbstractMetaClassPtr &metaClass,
const TypeSystemProperty &ts,
const QStringList &scopes,
QString *errorMessage)
@@ -275,7 +290,7 @@ std::optional<QPropertySpec>
auto type = b->translateType(info, metaClass, {}, &typeError);
if (!type.has_value()) {
const QStringList qualifiedName = info.qualifiedName();
- for (int j = scopes.size(); j >= 0 && !type; --j) {
+ for (auto j = scopes.size(); j >= 0 && !type; --j) {
info.setQualifiedName(scopes.mid(0, j) + qualifiedName);
type = b->translateType(info, metaClass, {}, &typeError);
}
@@ -292,7 +307,7 @@ std::optional<QPropertySpec>
// via TypeSystemProperty.
std::optional<QPropertySpec>
QPropertySpec::parseQ_Property(AbstractMetaBuilderPrivate *b,
- AbstractMetaClass *metaClass,
+ const AbstractMetaClassPtr &metaClass,
const QString &declarationIn,
const QStringList &scopes,
QString *errorMessage)
@@ -315,6 +330,8 @@ void QPropertySpec::formatDebug(QDebug &debug) const
debug << ", reset=" << d->m_reset;
if (!d->m_designable.isEmpty())
debug << ", designable=" << d->m_designable;
+ if (!d->m_documentation.isEmpty())
+ debug << ", doc=\"" << d->m_documentation << '"';
}
QDebug operator<<(QDebug d, const QPropertySpec &p)
diff --git a/sources/shiboken6/ApiExtractor/propertyspec.h b/sources/shiboken6/ApiExtractor/propertyspec.h
index 4121f72d2..9e2e0f3d4 100644
--- a/sources/shiboken6/ApiExtractor/propertyspec.h
+++ b/sources/shiboken6/ApiExtractor/propertyspec.h
@@ -1,36 +1,14 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef PROPERTYSPEC_H
#define PROPERTYSPEC_H
class AbstractMetaType;
+#include "abstractmetalang_typedefs.h"
+#include "typesystem_typedefs.h"
+
#include <QtCore/QStringList>
#include <QtCore/QSharedDataPointer>
@@ -39,6 +17,7 @@ class AbstractMetaType;
class AbstractMetaClass;
class AbstractMetaBuilderPrivate;
class AbstractMetaType;
+class Documentation;
class TypeEntry;
struct TypeSystemProperty;
@@ -54,8 +33,8 @@ public:
const AbstractMetaType &type);
QPropertySpec(const QPropertySpec &);
QPropertySpec &operator=(const QPropertySpec &);
- QPropertySpec(QPropertySpec &&);
- QPropertySpec &operator=(QPropertySpec &&);
+ QPropertySpec(QPropertySpec &&) noexcept;
+ QPropertySpec &operator=(QPropertySpec &&) noexcept;
~QPropertySpec();
static TypeSystemProperty typeSystemPropertyFromQ_Property(const QString &declarationIn,
@@ -64,14 +43,14 @@ public:
static std::optional<QPropertySpec>
fromTypeSystemProperty(AbstractMetaBuilderPrivate *b,
- AbstractMetaClass *metaClass,
+ const AbstractMetaClassPtr &metaClass,
const TypeSystemProperty &ts,
const QStringList &scopes,
QString *errorMessage);
static std::optional<QPropertySpec>
parseQ_Property(AbstractMetaBuilderPrivate *b,
- AbstractMetaClass *metaClass,
+ const AbstractMetaClassPtr &metaClass,
const QString &declarationIn,
const QStringList &scopes,
QString *errorMessage);
@@ -79,11 +58,14 @@ public:
const AbstractMetaType &type() const;
void setType(const AbstractMetaType &t);
- const TypeEntry *typeEntry() const;
+ TypeEntryCPtr typeEntry() const;
QString name() const;
void setName(const QString &name);
+ Documentation documentation() const;
+ void setDocumentation(const Documentation &doc);
+
QString read() const;
void setRead(const QString &read);
@@ -97,6 +79,9 @@ public:
QString reset() const;
void setReset(const QString &reset);
+ QString notify() const; // Q_PROPERTY/C++ only
+ void setNotify(const QString &notify);
+
int index() const;
void setIndex(int index);
diff --git a/sources/shiboken6/ApiExtractor/pymethoddefentry.cpp b/sources/shiboken6/ApiExtractor/pymethoddefentry.cpp
new file mode 100644
index 000000000..64d44378b
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/pymethoddefentry.cpp
@@ -0,0 +1,53 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#include "pymethoddefentry.h"
+#include "textstream.h"
+
+#include <QtCore/QDebug>
+
+TextStream &operator<<(TextStream &str, const castToPyCFunction &c)
+{
+ str << "reinterpret_cast<PyCFunction>(" << c.m_function << ')';
+ return str;
+}
+
+TextStream &operator<<(TextStream &s, const PyMethodDefEntry &e)
+{
+ s << "{\"" << e.name << "\", " << castToPyCFunction(e.function) <<", ";
+ if (e.methFlags.isEmpty()) {
+ s << '0';
+ } else {
+ for (qsizetype i = 0, size = e.methFlags.size(); i < size; ++i) {
+ if (i)
+ s << '|';
+ s << e.methFlags.at(i);
+ }
+ }
+ if (e.doc.isEmpty())
+ s << ", nullptr";
+ else
+ s << ", R\"(" << e.doc << ")\"";
+ s << '}';
+ return s;
+}
+
+TextStream &operator<<(TextStream &s, const PyMethodDefEntries &entries)
+{
+ for (const auto &e : entries)
+ s << e << ",\n";
+ return s;
+}
+
+QDebug operator<<(QDebug debug, const PyMethodDefEntry &e)
+{
+ QDebugStateSaver saver(debug);
+ debug.noquote();
+ debug.nospace();
+ debug << "PyMethodDefEntry(\"" << e.name << "\", " << e.function
+ << ", " << e.methFlags;
+ if (!e.doc.isEmpty())
+ debug << ", \"" << e.doc << '"';
+ debug << ')';
+ return debug;
+}
diff --git a/sources/shiboken6/ApiExtractor/pymethoddefentry.h b/sources/shiboken6/ApiExtractor/pymethoddefentry.h
new file mode 100644
index 000000000..a8694eb30
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/pymethoddefentry.h
@@ -0,0 +1,38 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef PYMETHODDEFENTRY_H
+#define PYMETHODDEFENTRY_H
+
+#include <QtCore/QByteArrayList>
+#include <QtCore/QString>
+
+QT_FORWARD_DECLARE_CLASS(QDebug)
+
+class TextStream;
+
+struct castToPyCFunction
+{
+ explicit castToPyCFunction(QAnyStringView function) noexcept :
+ m_function(function) {}
+
+ QAnyStringView m_function;
+};
+
+struct PyMethodDefEntry
+{
+ QString name;
+ QString function;
+ QByteArrayList methFlags; // "METH_O" etc.
+ QString doc;
+};
+
+using PyMethodDefEntries = QList<PyMethodDefEntry>;
+
+TextStream &operator<<(TextStream &str, const castToPyCFunction &e);
+TextStream &operator<<(TextStream &s, const PyMethodDefEntry &e);
+TextStream &operator<<(TextStream &s, const PyMethodDefEntries &e);
+
+QDebug operator<<(QDebug debug, const PyMethodDefEntry &e);
+
+#endif // PYMETHODDEFENTRY_H
diff --git a/sources/shiboken6/ApiExtractor/pythontypeentry.h b/sources/shiboken6/ApiExtractor/pythontypeentry.h
new file mode 100644
index 000000000..2e0fbda97
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/pythontypeentry.h
@@ -0,0 +1,29 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef PYTHONTYPEENTRY_H
+#define PYTHONTYPEENTRY_H
+
+#include "customtypenentry.h"
+#include "typesystem_enums.h"
+
+class PythonTypeEntry : public CustomTypeEntry
+{
+public:
+ explicit PythonTypeEntry(const QString &entryName,
+ const QString &checkFunction,
+ TypeSystem::CPythonType type);
+
+ TypeEntry *clone() const override;
+
+ TypeSystem::CPythonType cPythonType() const;
+
+#ifndef QT_NO_DEBUG_STREAM
+ void formatDebug(QDebug &d) const override;
+#endif
+
+protected:
+ explicit PythonTypeEntry(TypeEntryPrivate *d);
+};
+
+#endif // PYTHONTYPEENTRY_H
diff --git a/sources/shiboken6/ApiExtractor/qtcompat.h b/sources/shiboken6/ApiExtractor/qtcompat.h
new file mode 100644
index 000000000..3837dcfd2
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/qtcompat.h
@@ -0,0 +1,37 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef QTCOMPAT_H
+#define QTCOMPAT_H
+
+#include <QtCore/qtconfigmacros.h>
+
+#if QT_VERSION < 0x060400
+
+// QTBUG-98434, provide literals of Qt 6.4 for compatibility.
+
+# include <QtCore/QString>
+
+# define QLatin1StringView QLatin1String
+
+namespace Qt {
+inline namespace Literals {
+inline namespace StringLiterals {
+
+constexpr inline QLatin1String operator"" _L1(const char *str, size_t size) noexcept
+{
+ return QLatin1String(str, qsizetype(size));
+}
+
+inline QString operator"" _s(const char16_t *str, size_t size) noexcept
+{
+ return QString(QStringPrivate(nullptr, const_cast<char16_t *>(str), qsizetype(size)));
+}
+
+} // StringLiterals
+} // Literals
+} // Qt
+
+#endif // < 6.4
+
+#endif // QTCOMPAT_H
diff --git a/sources/shiboken6/ApiExtractor/qtdocparser.cpp b/sources/shiboken6/ApiExtractor/qtdocparser.cpp
index 9214dc6f4..5bd99bbd8 100644
--- a/sources/shiboken6/ApiExtractor/qtdocparser.cpp
+++ b/sources/shiboken6/ApiExtractor/qtdocparser.cpp
@@ -1,72 +1,69 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "qtdocparser.h"
+#include "classdocumentation.h"
+#include "abstractmetaargument.h"
#include "abstractmetaenum.h"
-#include "abstractmetafield.h"
#include "abstractmetafunction.h"
#include "abstractmetalang.h"
+#include "abstractmetatype.h"
#include "documentation.h"
#include "modifications.h"
#include "messages.h"
#include "propertyspec.h"
#include "reporthandler.h"
-#include "typesystem.h"
-#include "xmlutils.h"
+#include "flagstypeentry.h"
+#include "complextypeentry.h"
+#include "functiontypeentry.h"
+#include "enumtypeentry.h"
+
+#include "qtcompat.h"
#include <QtCore/QDir>
#include <QtCore/QFile>
-#include <QtCore/QTextStream>
-#include <QtCore/QXmlStreamAttributes>
-#include <QtCore/QXmlStreamReader>
-#include <QUrl>
+#include <QtCore/QUrl>
+
+using namespace Qt::StringLiterals;
+
+enum { debugFunctionSearch = 0 };
-static inline QString briefStartElement() { return QStringLiteral("<brief>"); }
-static inline QString briefEndElement() { return QStringLiteral("</brief>"); }
+constexpr auto briefStartElement = "<brief>"_L1;
+constexpr auto briefEndElement = "</brief>"_L1;
+constexpr auto webxmlSuffix = ".webxml"_L1;
Documentation QtDocParser::retrieveModuleDocumentation()
{
return retrieveModuleDocumentation(packageName());
}
-static void formatFunctionArgTypeQuery(QTextStream &str, const AbstractMetaArgument &arg)
+static void formatPreQualifications(QTextStream &str, const AbstractMetaType &type)
{
- const AbstractMetaType &metaType = arg.type();
- if (metaType.isConstant())
+ if (type.isConstant())
str << "const " ;
+}
+
+static void formatPostQualifications(QTextStream &str, const AbstractMetaType &type)
+{
+ if (type.referenceType() == LValueReference)
+ str << " &";
+ else if (type.referenceType() == RValueReference)
+ str << " &&";
+ else if (type.indirections())
+ str << ' ' << QByteArray(type.indirections(), '*');
+}
+
+static void formatFunctionUnqualifiedArgTypeQuery(QTextStream &str,
+ const AbstractMetaType &metaType)
+{
switch (metaType.typeUsagePattern()) {
case AbstractMetaType::FlagsPattern: {
// Modify qualified name "QFlags<Qt::AlignmentFlag>" with name "Alignment"
// to "Qt::Alignment" as seen by qdoc.
- const auto *flagsEntry = static_cast<const FlagsTypeEntry *>(metaType.typeEntry());
+ const auto flagsEntry = std::static_pointer_cast<const FlagsTypeEntry>(metaType.typeEntry());
QString name = flagsEntry->qualifiedCppName();
- if (name.endsWith(QLatin1Char('>')) && name.startsWith(QLatin1String("QFlags<"))) {
- const int lastColon = name.lastIndexOf(QLatin1Char(':'));
+ if (name.endsWith(u'>') && name.startsWith(u"QFlags<")) {
+ const int lastColon = name.lastIndexOf(u':');
if (lastColon != -1) {
name.replace(lastColon + 1, name.size() - lastColon - 1, metaType.name());
name.remove(0, 7);
@@ -80,10 +77,13 @@ static void formatFunctionArgTypeQuery(QTextStream &str, const AbstractMetaArgum
case AbstractMetaType::ContainerPattern: { // QVector<int>
str << metaType.typeEntry()->qualifiedCppName() << '<';
const auto instantiations = metaType.instantiations();
- for (int i = 0, size = instantiations.size(); i < size; ++i) {
+ for (qsizetype i = 0, size = instantiations.size(); i < size; ++i) {
if (i)
str << ", ";
- str << instantiations.at(i).typeEntry()->qualifiedCppName();
+ const auto &instantiation = instantiations.at(i);
+ formatPreQualifications(str, instantiation);
+ str << instantiation.typeEntry()->qualifiedCppName();
+ formatPostQualifications(str, instantiation);
}
str << '>';
}
@@ -92,170 +92,209 @@ static void formatFunctionArgTypeQuery(QTextStream &str, const AbstractMetaArgum
str << metaType.typeEntry()->qualifiedCppName();
break;
}
-
- if (metaType.referenceType() == LValueReference)
- str << " &";
- else if (metaType.referenceType() == RValueReference)
- str << " &&";
- else if (metaType.indirections())
- str << ' ' << QByteArray(metaType.indirections(), '*');
}
-enum FunctionMatchFlags
-{
- MatchArgumentCount = 0x1,
- MatchArgumentType = 0x2,
- DescriptionOnly = 0x4
-};
-
-static QString functionXQuery(const QString &classQuery,
- const AbstractMetaFunctionCPtr &func,
- unsigned matchFlags = MatchArgumentCount | MatchArgumentType
- | DescriptionOnly)
+static QString formatFunctionArgTypeQuery(const AbstractMetaType &metaType)
{
QString result;
- QTextStream str(&result);
- const AbstractMetaArgumentList &arguments = func->arguments();
- str << classQuery << "/function[@name=\"" << func->originalName()
- << "\" and @const=\"" << (func->isConstant() ? "true" : "false") << '"';
- if (matchFlags & MatchArgumentCount)
- str << " and count(parameter)=" << arguments.size();
- str << ']';
- if (!arguments.isEmpty() && (matchFlags & MatchArgumentType)) {
- for (int i = 0, size = arguments.size(); i < size; ++i) {
- str << "/parameter[" << (i + 1) << "][@type=\"";
- // Fixme: Use arguments.at(i)->type()->originalTypeDescription()
- // instead to get unresolved typedefs?
- formatFunctionArgTypeQuery(str, arguments.at(i));
- str << "\"]/..";
- }
- }
- if (matchFlags & DescriptionOnly)
- str << "/description";
+ QTextStream str(&result);formatPreQualifications(str, metaType);
+ formatFunctionUnqualifiedArgTypeQuery(str, metaType);
+ formatPostQualifications(str, metaType);
return result;
}
-static QStringList signaturesFromWebXml(QString w)
+QString QtDocParser::functionDocumentation(const QString &sourceFileName,
+ const ClassDocumentation &classDocumentation,
+ const AbstractMetaClassCPtr &metaClass,
+ const AbstractMetaFunctionCPtr &func,
+ QString *errorMessage)
{
- QStringList result;
- if (w.isEmpty())
- return result;
- w.prepend(QLatin1String("<root>")); // Fake root element
- w.append(QLatin1String("</root>"));
- QXmlStreamReader reader(w);
- while (!reader.atEnd()) {
- if (reader.readNext() == QXmlStreamReader::StartElement
- && reader.name() == QLatin1String("function")) {
- result.append(reader.attributes().value(QStringLiteral("signature")).toString());
- }
- }
- return result;
-}
+ errorMessage->clear();
-static QString msgArgumentCountMatch(const AbstractMetaFunction *func,
- const QStringList &matches)
-{
- QString result;
- QTextStream str(&result);
- str << "\n Note: Querying for the argument count=="
- << func->arguments().size() << " only yields " << matches.size()
- << " matches";
- if (!matches.isEmpty())
- str << ": \"" << matches.join(QLatin1String("\", \"")) << '"';
- return result;
+ const QString docString =
+ queryFunctionDocumentation(sourceFileName, classDocumentation, metaClass,
+ func, errorMessage);
+
+ const auto funcModifs = DocParser::getXpathDocModifications(func, metaClass);
+ return docString.isEmpty() || funcModifs.isEmpty()
+ ? docString : applyDocModifications(funcModifs, docString);
}
QString QtDocParser::queryFunctionDocumentation(const QString &sourceFileName,
- const AbstractMetaClass* metaClass,
- const QString &classQuery,
+ const ClassDocumentation &classDocumentation,
+ const AbstractMetaClassCPtr &metaClass,
const AbstractMetaFunctionCPtr &func,
- const DocModificationList &signedModifs,
- const XQueryPtr &xquery,
QString *errorMessage)
{
- DocModificationList funcModifs;
- for (const DocModification &funcModif : signedModifs) {
- if (funcModif.signature() == func->minimalSignature())
- funcModifs.append(funcModif);
+ // Search candidates by name and const-ness
+ FunctionDocumentationList candidates =
+ classDocumentation.findFunctionCandidates(func->name(), func->isConstant());
+ if (candidates.isEmpty()) {
+ *errorMessage = msgCannotFindDocumentation(sourceFileName, func.get())
+ + u" (no matches)"_s;
+ return {};
}
- // Properties
- if (func->isPropertyReader() || func->isPropertyWriter() || func->isPropertyResetter()) {
- const auto prop = metaClass->propertySpecs().at(func->propertySpecIndex());
- const QString propertyQuery = classQuery + QLatin1String("/property[@name=\"")
- + prop.name() + QLatin1String("\"]/description");
- const QString properyDocumentation = getDocumentation(xquery, propertyQuery, funcModifs);
- if (properyDocumentation.isEmpty()) {
- *errorMessage =
- msgCannotFindDocumentation(sourceFileName, metaClass, func.data(),
- propertyQuery);
+ // Try an exact query
+ FunctionDocumentationQuery fq;
+ fq.name = func->name();
+ fq.constant = func->isConstant();
+ for (const auto &arg : func->arguments())
+ fq.parameters.append(formatFunctionArgTypeQuery(arg.type()));
+
+ const auto funcFlags = func->flags();
+ // Re-add arguments removed by the metabuilder to binary operator functions
+ if (funcFlags.testFlag(AbstractMetaFunction::Flag::OperatorLeadingClassArgumentRemoved)
+ || funcFlags.testFlag(AbstractMetaFunction::Flag::OperatorTrailingClassArgumentRemoved)) {
+ QString classType = metaClass->qualifiedCppName();
+ if (!funcFlags.testFlag(AbstractMetaFunction::Flag::OperatorClassArgumentByValue)) {
+ classType.prepend(u"const "_s);
+ classType.append(u" &"_s);
}
- return properyDocumentation;
+ if (funcFlags.testFlag(AbstractMetaFunction::Flag::OperatorLeadingClassArgumentRemoved))
+ fq.parameters.prepend(classType);
+ else
+ fq.parameters.append(classType);
}
- // Query with full match of argument types
- const QString fullQuery = functionXQuery(classQuery, func);
- const QString result = getDocumentation(xquery, fullQuery, funcModifs);
- if (!result.isEmpty())
- return result;
- *errorMessage = msgCannotFindDocumentation(sourceFileName, metaClass, func.data(), fullQuery);
- if (func->arguments().isEmpty()) // No arguments, can't be helped
- return result;
- // Test whether some mismatch in argument types occurred by checking for
- // the argument count only. Include the outer <function> element.
- QString countOnlyQuery = functionXQuery(classQuery, func, MatchArgumentCount);
- QStringList signatures =
- signaturesFromWebXml(getDocumentation(xquery, countOnlyQuery, funcModifs));
- if (signatures.size() == 1) {
- // One match was found. Repeat the query restricted to the <description>
- // element and use the result with a warning.
- countOnlyQuery = functionXQuery(classQuery, func, MatchArgumentCount | DescriptionOnly);
- errorMessage->append(QLatin1String("\n Falling back to \"") + signatures.constFirst()
- + QLatin1String("\" obtained by matching the argument count only."));
- return getDocumentation(xquery, countOnlyQuery, funcModifs);
+ const qsizetype index = ClassDocumentation::indexOfFunction(candidates, fq);
+
+ if (debugFunctionSearch) {
+ qDebug() << __FUNCTION__ << metaClass->name() << fq << funcFlags << "returns"
+ << index << "\n " << candidates.value(index) << "\n " << candidates;
}
- *errorMessage += msgArgumentCountMatch(func.data(), signatures);
- return result;
+
+ if (index != -1)
+ return candidates.at(index).description;
+
+ // Fallback: Try matching by argument count
+ const auto parameterCount = func->arguments().size();
+ auto pend = std::remove_if(candidates.begin(), candidates.end(),
+ [parameterCount](const FunctionDocumentation &fd) {
+ return fd.parameters.size() != parameterCount; });
+ candidates.erase(pend, candidates.end());
+ if (candidates.size() == 1) {
+ const auto &match = candidates.constFirst();
+ QTextStream(errorMessage) << msgFallbackForDocumentation(sourceFileName, func.get())
+ << "\n Falling back to \"" << match.signature
+ << "\" obtained by matching the argument count only.";
+ return candidates.constFirst().description;
+ }
+
+ QTextStream(errorMessage) << msgCannotFindDocumentation(sourceFileName, func.get())
+ << " (" << candidates.size() << " candidates matching the argument count)";
+ return {};
}
// Extract the <brief> section from a WebXML (class) documentation and remove it
// from the source.
static QString extractBrief(QString *value)
{
- const auto briefStart = value->indexOf(briefStartElement());
+ const auto briefStart = value->indexOf(briefStartElement);
if (briefStart < 0)
return {};
- const auto briefEnd = value->indexOf(briefEndElement(),
- briefStart + briefStartElement().size());
+ const auto briefEnd = value->indexOf(briefEndElement,
+ briefStart + briefStartElement.size());
if (briefEnd < briefStart)
return {};
- const auto briefLength = briefEnd + briefEndElement().size() - briefStart;
+ const auto briefLength = briefEnd + briefEndElement.size() - briefStart;
QString briefValue = value->mid(briefStart, briefLength);
- briefValue.insert(briefValue.size() - briefEndElement().size(),
- QLatin1String("<rst> More_...</rst>"));
+ briefValue.insert(briefValue.size() - briefEndElement.size(),
+ u"<rst> More_...</rst>"_s);
value->remove(briefStart, briefLength);
return briefValue;
}
-void QtDocParser::fillDocumentation(AbstractMetaClass* metaClass)
+// Find the webxml file for global functions/enums
+// by the doc-file typesystem attribute or via include file.
+static QString findGlobalWebXmLFile(const QString &documentationDataDirectory,
+ const QString &docFile,
+ const Include &include)
+{
+ QString result;
+ if (!docFile.isEmpty()) {
+ result = documentationDataDirectory + u'/' + docFile;
+ if (!result.endsWith(webxmlSuffix))
+ result += webxmlSuffix;
+ return QFileInfo::exists(result) ? result : QString{};
+ }
+ if (include.name().isEmpty())
+ return {};
+ // qdoc "\headerfile <QtLogging>" directive produces "qtlogging.webxml"
+ result = documentationDataDirectory + u'/' +
+ QFileInfo(include.name()).baseName() + webxmlSuffix;
+ if (QFileInfo::exists(result))
+ return result;
+ // qdoc "\headerfile <qdrawutil.h>" produces "qdrawutil-h.webxml"
+ result.insert(result.size() - webxmlSuffix.size(), "-h"_L1);
+ return QFileInfo::exists(result) ? result : QString{};
+}
+
+void QtDocParser::fillGlobalFunctionDocumentation(const AbstractMetaFunctionPtr &f)
+{
+ auto te = f->typeEntry();
+ if (te == nullptr)
+ return;
+
+ const QString sourceFileName =
+ findGlobalWebXmLFile(documentationDataDirectory(), te->docFile(), te->include());
+ if (sourceFileName.isEmpty())
+ return;
+
+ QString errorMessage;
+ auto classDocumentationO = parseWebXml(sourceFileName, &errorMessage);
+ if (!classDocumentationO.has_value()) {
+ qCWarning(lcShibokenDoc, "%s", qPrintable(errorMessage));
+ return;
+ }
+ const QString detailed =
+ functionDocumentation(sourceFileName, classDocumentationO.value(),
+ {}, f, &errorMessage);
+ if (!errorMessage.isEmpty())
+ qCWarning(lcShibokenDoc, "%s", qPrintable(errorMessage));
+ const Documentation documentation(detailed, {});
+ f->setDocumentation(documentation);
+}
+
+void QtDocParser::fillGlobalEnumDocumentation(AbstractMetaEnum &e)
+{
+ auto te = e.typeEntry();
+ const QString sourceFileName =
+ findGlobalWebXmLFile(documentationDataDirectory(), te->docFile(), te->include());
+ if (sourceFileName.isEmpty())
+ return;
+
+ QString errorMessage;
+ auto classDocumentationO = parseWebXml(sourceFileName, &errorMessage);
+ if (!classDocumentationO.has_value()) {
+ qCWarning(lcShibokenDoc, "%s", qPrintable(errorMessage));
+ return;
+ }
+ if (!extractEnumDocumentation(classDocumentationO.value(), e)) {
+ qCWarning(lcShibokenDoc, "%s",
+ qPrintable(msgCannotFindDocumentation(sourceFileName, {}, e, {})));
+ }
+}
+
+void QtDocParser::fillDocumentation(const AbstractMetaClassPtr &metaClass)
{
if (!metaClass)
return;
- const AbstractMetaClass* context = metaClass->enclosingClass();
- while(context) {
- if (context->enclosingClass() == nullptr)
+ auto context = metaClass->enclosingClass();
+ while (context) {
+ if (!context->enclosingClass())
break;
context = context->enclosingClass();
}
- QString sourceFileRoot = documentationDataDirectory() + QLatin1Char('/')
+ QString sourceFileRoot = documentationDataDirectory() + u'/'
+ metaClass->qualifiedCppName().toLower();
- sourceFileRoot.replace(QLatin1String("::"), QLatin1String("-"));
+ sourceFileRoot.replace(u"::"_s, u"-"_s);
- QFileInfo sourceFile(sourceFileRoot + QStringLiteral(".webxml"));
+ QFileInfo sourceFile(sourceFileRoot + webxmlSuffix);
if (!sourceFile.exists())
- sourceFile.setFile(sourceFileRoot + QStringLiteral(".xml"));
+ sourceFile.setFile(sourceFileRoot + ".xml"_L1);
if (!sourceFile.exists()) {
qCWarning(lcShibokenDoc).noquote().nospace()
<< "Can't find qdoc file for class " << metaClass->name() << ", tried: "
@@ -265,33 +304,26 @@ void QtDocParser::fillDocumentation(AbstractMetaClass* metaClass)
const QString sourceFileName = sourceFile.absoluteFilePath();
QString errorMessage;
- XQueryPtr xquery = XQuery::create(sourceFileName, &errorMessage);
- if (xquery.isNull()) {
+
+ const auto classDocumentationO = parseWebXml(sourceFileName, &errorMessage);
+ if (!classDocumentationO.has_value()) {
qCWarning(lcShibokenDoc, "%s", qPrintable(errorMessage));
return;
}
- QString className = metaClass->name();
-
- // Class/Namespace documentation
- const QString classQuery = QLatin1String("/WebXML/document/")
- + (metaClass->isNamespace() ? QLatin1String("namespace") : QLatin1String("class"))
- + QLatin1String("[@name=\"") + className + QLatin1String("\"]");
- QString query = classQuery + QLatin1String("/description");
-
- DocModificationList signedModifs, classModifs;
- const DocModificationList &mods = metaClass->typeEntry()->docModifications();
- for (const DocModification &docModif : mods) {
- if (docModif.signature().isEmpty())
- classModifs.append(docModif);
- else
- signedModifs.append(docModif);
+ const auto &classDocumentation = classDocumentationO.value();
+ for (const auto &p : classDocumentation.properties) {
+ Documentation doc(p.description, p.brief);
+ metaClass->setPropertyDocumentation(p.name, doc);
}
- QString docString = getDocumentation(xquery, query, classModifs);
+ QString docString = applyDocModifications(DocParser::getXpathDocModifications(metaClass),
+ classDocumentation.description);
+
if (docString.isEmpty()) {
+ QString className = metaClass->name();
qCWarning(lcShibokenDoc, "%s",
- qPrintable(msgCannotFindDocumentation(sourceFileName, "class", className, query)));
+ qPrintable(msgCannotFindDocumentation(sourceFileName, "class", className, {})));
}
const QString brief = extractBrief(&docString);
@@ -305,12 +337,12 @@ void QtDocParser::fillDocumentation(AbstractMetaClass* metaClass)
const auto &funcs = DocParser::documentableFunctions(metaClass);
for (const auto &func : funcs) {
const QString detailed =
- queryFunctionDocumentation(sourceFileName, metaClass, classQuery,
- func, signedModifs, xquery, &errorMessage);
+ functionDocumentation(sourceFileName, classDocumentation,
+ metaClass, func, &errorMessage);
if (!errorMessage.isEmpty())
qCWarning(lcShibokenDoc, "%s", qPrintable(errorMessage));
const Documentation documentation(detailed, {});
- qSharedPointerConstCast<AbstractMetaFunction>(func)->setDocumentation(documentation);
+ std::const_pointer_cast<AbstractMetaFunction>(func)->setDocumentation(documentation);
}
#if 0
// Fields
@@ -326,24 +358,41 @@ void QtDocParser::fillDocumentation(AbstractMetaClass* metaClass)
#endif
// Enums
for (AbstractMetaEnum &meta_enum : metaClass->enums()) {
- query.clear();
- QTextStream(&query) << classQuery << "/enum[@name=\""
- << meta_enum.name() << "\"]/description";
- doc.setValue(getDocumentation(xquery, query, DocModificationList()));
- if (doc.isEmpty()) {
+ if (!extractEnumDocumentation(classDocumentation, meta_enum)) {
qCWarning(lcShibokenDoc, "%s",
- qPrintable(msgCannotFindDocumentation(sourceFileName, metaClass, meta_enum, query)));
+ qPrintable(msgCannotFindDocumentation(sourceFileName, metaClass, meta_enum, {})));
}
- meta_enum.setDocumentation(doc);
}
}
+bool QtDocParser::extractEnumDocumentation(const ClassDocumentation &classDocumentation,
+ AbstractMetaEnum &meta_enum)
+{
+ Documentation enumDoc;
+ const auto index = classDocumentation.indexOfEnum(meta_enum.name());
+ if (index == -1)
+ return false;
+ QString doc = classDocumentation.enums.at(index).description;
+ const auto firstPara = doc.indexOf(u"<para>");
+ if (firstPara != -1) {
+ const QString baseClass = QtDocParser::enumBaseClass(meta_enum);
+ if (baseClass != "Enum"_L1) {
+ const QString note = "(inherits <teletype>enum."_L1 + baseClass
+ + "</teletype>) "_L1;
+ doc.insert(firstPara + 6, note);
+ }
+ }
+ enumDoc.setValue(doc);
+ meta_enum.setDocumentation(enumDoc);
+ return true;
+}
+
static QString qmlReferenceLink(const QFileInfo &qmlModuleFi)
{
QString result;
QTextStream(&result) << "<para>The module also provides <link"
- << " type=\"page\""
- << " page=\"http://doc.qt.io/qt-5/" << qmlModuleFi.baseName() << ".html\""
+ << R"( type="page" page="https://doc.qt.io/qt-)" << QT_VERSION_MAJOR
+ << '/' << qmlModuleFi.baseName() << R"(.html")"
<< ">QML types</link>.</para>";
return result;
}
@@ -353,13 +402,13 @@ Documentation QtDocParser::retrieveModuleDocumentation(const QString& name)
// TODO: This method of acquiring the module name supposes that the target language uses
// dots as module separators in package names. Improve this.
QString moduleName = name;
- moduleName.remove(0, name.lastIndexOf(QLatin1Char('.')) + 1);
- const QString prefix = documentationDataDirectory() + QLatin1Char('/')
+ moduleName.remove(0, name.lastIndexOf(u'.') + 1);
+ if (moduleName == u"QtQuickControls2")
+ moduleName.chop(1);
+ const QString prefix = documentationDataDirectory() + u'/'
+ moduleName.toLower();
- QString sourceFile = prefix + QLatin1String(".xml");
- if (!QFile::exists(sourceFile))
- sourceFile = prefix + QLatin1String("-module.webxml");
+ const QString sourceFile = prefix + u"-index.webxml"_s;
if (!QFile::exists(sourceFile)) {
qCWarning(lcShibokenDoc).noquote().nospace()
<< "Can't find qdoc file for module " << name << ", tried: "
@@ -368,27 +417,24 @@ Documentation QtDocParser::retrieveModuleDocumentation(const QString& name)
}
QString errorMessage;
- XQueryPtr xquery = XQuery::create(sourceFile, &errorMessage);
- if (xquery.isNull()) {
+ QString docString = webXmlModuleDescription(sourceFile, &errorMessage);
+ if (!errorMessage.isEmpty()) {
qCWarning(lcShibokenDoc, "%s", qPrintable(errorMessage));
return {};
}
- // Module documentation
- QString query = QLatin1String("/WebXML/document/module[@name=\"")
- + moduleName + QLatin1String("\"]/description");
- const QString detailed = getDocumentation(xquery, query, DocModificationList());
- Documentation doc(detailed, {});
+ Documentation doc(docString, {});
if (doc.isEmpty()) {
- qCWarning(lcShibokenDoc, "%s", qPrintable(msgCannotFindDocumentation(sourceFile, "module", name, query)));
+ qCWarning(lcShibokenDoc, "%s",
+ qPrintable(msgCannotFindDocumentation(sourceFile, "module", name)));
return doc;
}
// If a QML module info file exists, insert a link to the Qt docs.
- const QFileInfo qmlModuleFi(prefix + QLatin1String("-qmlmodule.webxml"));
+ const QFileInfo qmlModuleFi(prefix + u"-qmlmodule.webxml"_s);
if (qmlModuleFi.isFile()) {
QString docString = doc.detailed();
- const int pos = docString.lastIndexOf(QLatin1String("</description>"));
+ const int pos = docString.lastIndexOf(u"</description>");
if (pos != -1) {
docString.insert(pos, qmlReferenceLink(qmlModuleFi));
doc.setDetailed(docString);
diff --git a/sources/shiboken6/ApiExtractor/qtdocparser.h b/sources/shiboken6/ApiExtractor/qtdocparser.h
index 4cc335282..f6ba5e47a 100644
--- a/sources/shiboken6/ApiExtractor/qtdocparser.h
+++ b/sources/shiboken6/ApiExtractor/qtdocparser.h
@@ -1,52 +1,39 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef QTDOCPARSER_H
#define QTDOCPARSER_H
#include "docparser.h"
+struct ClassDocumentation;
+
class QtDocParser : public DocParser
{
public:
QtDocParser() = default;
- void fillDocumentation(AbstractMetaClass* metaClass) override;
+ void fillDocumentation(const AbstractMetaClassPtr &metaClass) override;
+ void fillGlobalFunctionDocumentation(const AbstractMetaFunctionPtr &f) override;
+ void fillGlobalEnumDocumentation(AbstractMetaEnum &e) override;
+
Documentation retrieveModuleDocumentation() override;
Documentation retrieveModuleDocumentation(const QString& name) override;
private:
+ static QString functionDocumentation(const QString &sourceFileName,
+ const ClassDocumentation &classDocumentation,
+ const AbstractMetaClassCPtr &metaClass,
+ const AbstractMetaFunctionCPtr &func,
+ QString *errorMessage);
+
static QString queryFunctionDocumentation(const QString &sourceFileName,
- const AbstractMetaClass* metaClass,
- const QString &classQuery,
+ const ClassDocumentation &classDocumentation,
+ const AbstractMetaClassCPtr &metaClass,
const AbstractMetaFunctionCPtr &func,
- const DocModificationList &signedModifs,
- const XQueryPtr &xquery,
QString *errorMessage);
+ static bool extractEnumDocumentation(const ClassDocumentation &classDocumentation,
+ AbstractMetaEnum &meta_enum);
+
};
#endif // QTDOCPARSER_H
diff --git a/sources/shiboken6/ApiExtractor/reporthandler.cpp b/sources/shiboken6/ApiExtractor/reporthandler.cpp
index f0c5bf31e..23066ba21 100644
--- a/sources/shiboken6/ApiExtractor/reporthandler.cpp
+++ b/sources/shiboken6/ApiExtractor/reporthandler.cpp
@@ -1,40 +1,19 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "reporthandler.h"
-#include "typesystem.h"
#include "typedatabase.h"
+
+#include "qtcompat.h"
+
#include <QtCore/QElapsedTimer>
#include <QtCore/QSet>
#include <cstring>
#include <cstdarg>
#include <cstdio>
+using namespace Qt::StringLiterals;
+
#if defined(_WINDOWS) || defined(NOCOLOR)
#define COLOR_END ""
#define COLOR_WHITE ""
@@ -54,6 +33,7 @@ static ReportHandler::DebugLevel m_debugLevel = ReportHandler::NoDebug;
static QSet<QString> m_reportedWarnings;
static QString m_prefix;
static bool m_withinProgress = false;
+static QByteArray m_progressMessage;
static int m_step_warning = 0;
static QElapsedTimer m_timer;
@@ -84,11 +64,11 @@ void ReportHandler::setDebugLevel(ReportHandler::DebugLevel level)
bool ReportHandler::setDebugLevelFromArg(const QString &level)
{
bool result = true;
- if (level == QLatin1String("sparse"))
+ if (level == u"sparse")
ReportHandler::setDebugLevel(ReportHandler::SparseDebug);
- else if (level == QLatin1String("medium"))
+ else if (level == u"medium")
ReportHandler::setDebugLevel(ReportHandler::MediumDebug);
- else if (level == QLatin1String("full"))
+ else if (level == u"full")
ReportHandler::setDebugLevel(ReportHandler::FullDebug);
else
result = false;
@@ -123,7 +103,7 @@ void ReportHandler::setPrefix(const QString &p)
void ReportHandler::messageOutput(QtMsgType type, const QMessageLogContext &context, const QString &text)
{
// Check for file location separator added by SourceLocation
- int fileLocationPos = text.indexOf(QLatin1String(":\t"));
+ int fileLocationPos = text.indexOf(u":\t");
if (type == QtWarningMsg) {
if (m_silent || m_reportedWarnings.contains(text))
return;
@@ -142,12 +122,12 @@ void ReportHandler::messageOutput(QtMsgType type, const QMessageLogContext &cont
}
QString message = m_prefix;
if (!message.isEmpty())
- message.append(QLatin1Char(' '));
- const int prefixLength = message.size();
+ message.append(u' ');
+ const auto prefixLength = message.size();
message.append(text);
// Replace file location tab by space
if (fileLocationPos >= 0)
- message[prefixLength + fileLocationPos + 1] = QLatin1Char(' ');
+ message[prefixLength + fileLocationPos + 1] = u' ';
fprintf(stderr, "%s\n", qPrintable(qFormatLogMessage(type, context, message)));
}
@@ -168,9 +148,13 @@ void ReportHandler::startProgress(const QByteArray& str)
endProgress();
m_withinProgress = true;
- const auto ts = '[' + timeStamp() + ']';
- std::printf("%s %8s %-60s", qPrintable(m_prefix), ts.constData(), str.constData());
- std::fflush(stdout);
+ m_progressMessage = str;
+}
+
+static void indentStdout(qsizetype n)
+{
+ for (qsizetype i = 0; i < n; ++i)
+ fputc(' ', stdout);
}
void ReportHandler::endProgress()
@@ -179,11 +163,23 @@ void ReportHandler::endProgress()
return;
m_withinProgress = false;
+
+ std::fputs(m_prefix.toUtf8().constData(), stdout);
+ const auto ts = timeStamp();
+ if (ts.size() < 6)
+ indentStdout(6 - ts.size());
+ std::fputs(" [", stdout);
+ std::fputs(ts.constData(), stdout);
+ std::fputs("] ", stdout);
+ std::fputs(m_progressMessage.constData(), stdout);
+ if (m_progressMessage.size() < 60)
+ indentStdout(60 - m_progressMessage.size());
const char *endMessage = m_step_warning == 0
? "[" COLOR_GREEN "OK" COLOR_END "]\n"
: "[" COLOR_YELLOW "WARNING" COLOR_END "]\n";
std::fputs(endMessage, stdout);
std::fflush(stdout);
+ m_progressMessage.clear();
m_step_warning = 0;
}
diff --git a/sources/shiboken6/ApiExtractor/reporthandler.h b/sources/shiboken6/ApiExtractor/reporthandler.h
index 21f0e8933..b79adfa73 100644
--- a/sources/shiboken6/ApiExtractor/reporthandler.h
+++ b/sources/shiboken6/ApiExtractor/reporthandler.h
@@ -1,36 +1,11 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef REPORTHANDLER_H
#define REPORTHANDLER_H
-#include <QLoggingCategory>
-#include <QString>
+#include <QtCore/QLoggingCategory>
+#include <QtCore/QString>
Q_DECLARE_LOGGING_CATEGORY(lcShiboken)
Q_DECLARE_LOGGING_CATEGORY(lcShibokenDoc)
diff --git a/sources/shiboken6/ApiExtractor/smartpointertypeentry.h b/sources/shiboken6/ApiExtractor/smartpointertypeentry.h
new file mode 100644
index 000000000..7b712fe35
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/smartpointertypeentry.h
@@ -0,0 +1,57 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef SMARTPOINTERTYPEENTRY_H
+#define SMARTPOINTERTYPEENTRY_H
+
+#include "complextypeentry.h"
+
+class SmartPointerTypeEntryPrivate;
+
+struct SmartPointerInstantiation
+{
+ QString name; // user defined name
+ TypeEntryCPtr typeEntry;
+};
+
+class SmartPointerTypeEntry : public ComplexTypeEntry
+{
+public:
+ using Instantiations = QList<SmartPointerInstantiation>;
+
+ explicit SmartPointerTypeEntry(const QString &entryName,
+ const QString &getterName,
+ TypeSystem::SmartPointerType type,
+ const QString &refCountMethodName,
+ const QVersionNumber &vr,
+ const TypeEntryCPtr &parent);
+
+ TypeSystem::SmartPointerType smartPointerType() const;
+
+ QString getter() const;
+
+ QString refCountMethodName() const;
+
+ QString valueCheckMethod() const;
+ void setValueCheckMethod(const QString &);
+ QString nullCheckMethod() const;
+ void setNullCheckMethod(const QString &);
+ QString resetMethod() const;
+ void setResetMethod(const QString &);
+
+ TypeEntry *clone() const override;
+
+ const Instantiations &instantiations() const;
+ void setInstantiations(const Instantiations &i);
+ bool matchesInstantiation(const TypeEntryCPtr &e) const;
+
+ QString getTargetName(const AbstractMetaType &metaType) const;
+
+#ifndef QT_NO_DEBUG_STREAM
+ void formatDebug(QDebug &d) const override;
+#endif
+protected:
+ SmartPointerTypeEntry(SmartPointerTypeEntryPrivate *d);
+};
+
+#endif // SMARTPOINTERTYPEENTRY_H
diff --git a/sources/shiboken6/ApiExtractor/sourcelocation.cpp b/sources/shiboken6/ApiExtractor/sourcelocation.cpp
index 1ba66e05b..003f201ac 100644
--- a/sources/shiboken6/ApiExtractor/sourcelocation.cpp
+++ b/sources/shiboken6/ApiExtractor/sourcelocation.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "sourcelocation.h"
#include <QtCore/QDir>
diff --git a/sources/shiboken6/ApiExtractor/sourcelocation.h b/sources/shiboken6/ApiExtractor/sourcelocation.h
index 630a841d8..0b188dca3 100644
--- a/sources/shiboken6/ApiExtractor/sourcelocation.h
+++ b/sources/shiboken6/ApiExtractor/sourcelocation.h
@@ -1,35 +1,10 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef SOURCE_LOCATION_H
#define SOURCE_LOCATION_H
-#include <QString>
+#include <QtCore/QString>
QT_FORWARD_DECLARE_CLASS(QDebug)
QT_FORWARD_DECLARE_CLASS(QTextStream)
diff --git a/sources/shiboken6/ApiExtractor/templateargumententry.h b/sources/shiboken6/ApiExtractor/templateargumententry.h
new file mode 100644
index 000000000..9f2338022
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/templateargumententry.h
@@ -0,0 +1,26 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef TEMPLATEARGUMENTENTRY_H
+#define TEMPLATEARGUMENTENTRY_H
+
+#include "typesystem.h"
+
+class TemplateArgumentEntryPrivate;
+
+class TemplateArgumentEntry : public TypeEntry
+{
+public:
+ explicit TemplateArgumentEntry(const QString &entryName, const QVersionNumber &vr,
+ const TypeEntryCPtr &parent);
+
+ int ordinal() const;
+ void setOrdinal(int o);
+
+ TypeEntry *clone() const override;
+
+protected:
+ explicit TemplateArgumentEntry(TemplateArgumentEntryPrivate *d);
+};
+
+#endif // TEMPLATEARGUMENTENTRY_H
diff --git a/sources/shiboken6/ApiExtractor/tests/CMakeLists.txt b/sources/shiboken6/ApiExtractor/tests/CMakeLists.txt
index 97ae0f850..76c014fbb 100644
--- a/sources/shiboken6/ApiExtractor/tests/CMakeLists.txt
+++ b/sources/shiboken6/ApiExtractor/tests/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
set(CMAKE_AUTORCC ON)
macro(declare_test testname)
@@ -15,7 +18,7 @@ macro(declare_test testname)
${CMAKE_CURRENT_BINARY_DIR}
${apiextractor_SOURCE_DIR}
)
- target_link_libraries(${testname} PRIVATE apiextractor Qt${QT_MAJOR_VERSION}::Test)
+ target_link_libraries(${testname} PRIVATE apiextractor Qt::Test)
add_test(${testname} ${testname})
if (INSTALL_TESTS)
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${testname}
diff --git a/sources/shiboken6/ApiExtractor/tests/testabstractmetaclass.cpp b/sources/shiboken6/ApiExtractor/tests/testabstractmetaclass.cpp
index 850df753f..4b5da0c3a 100644
--- a/sources/shiboken6/ApiExtractor/tests/testabstractmetaclass.cpp
+++ b/sources/shiboken6/ApiExtractor/tests/testabstractmetaclass.cpp
@@ -1,95 +1,77 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "testabstractmetaclass.h"
#include "abstractmetabuilder.h"
-#include <QtTest/QTest>
#include "testutil.h"
+#include <abstractmetaargument.h>
#include <abstractmetafunction.h>
#include <abstractmetalang.h>
#include <usingmember.h>
#include <typesystem.h>
+#include <qtcompat.h>
+
+#include <QtTest/QTest>
+
+using namespace Qt::StringLiterals;
+
void TestAbstractMetaClass::testClassName()
{
- const char* cppCode ="class ClassName {};";
- const char* xmlCode = "<typesystem package=\"Foo\"><value-type name=\"ClassName\"/></typesystem>";
+ const char cppCode[] = "class ClassName {};";
+ const char xmlCode[] = R"(<typesystem package="Foo">
+ <value-type name="ClassName"/>
+</typesystem>)";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QCOMPARE(classes.count(), 1);
- QCOMPARE(classes[0]->name(), QLatin1String("ClassName"));
+ QCOMPARE(classes.size(), 1);
+ QCOMPARE(classes[0]->name(), u"ClassName");
}
void TestAbstractMetaClass::testClassNameUnderNamespace()
{
- const char* cppCode ="namespace Namespace { class ClassName {}; }\n";
- const char* xmlCode = R"XML(
+ const char cppCode[] = "namespace Namespace { class ClassName {}; }\n";
+ const char xmlCode[] = R"XML(
<typesystem package="Foo">
<namespace-type name="Namespace">
<value-type name="ClassName"/>
</namespace-type>
</typesystem>)XML";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QCOMPARE(classes.count(), 2); // 1 namespace + 1 class
- if (classes.constFirst()->name() != QLatin1String("ClassName"))
+ QCOMPARE(classes.size(), 2); // 1 namespace + 1 class
+ if (classes.constFirst()->name() != u"ClassName")
qSwap(classes[0], classes[1]);
- QCOMPARE(classes[0]->name(), QLatin1String("ClassName"));
- QCOMPARE(classes[0]->qualifiedCppName(), QLatin1String("Namespace::ClassName"));
- QCOMPARE(classes[1]->name(), QLatin1String("Namespace"));
+ QCOMPARE(classes[0]->name(), u"ClassName");
+ QCOMPARE(classes[0]->qualifiedCppName(), u"Namespace::ClassName");
+ QCOMPARE(classes[1]->name(), u"Namespace");
QVERIFY(classes[1]->isNamespace());
// Check ctors info
QVERIFY(classes[0]->hasConstructors());
QCOMPARE(classes[0]->functions().size(), 2); // default ctor + copy ctor
- auto ctors = classes[0]->queryFunctions(FunctionQueryOption::Constructors);
+ auto ctors = classes[0]->queryFunctions(FunctionQueryOption::AnyConstructor);
QCOMPARE(ctors.size(), 2);
- if (ctors.constFirst()->minimalSignature() != QLatin1String("ClassName()"))
+ if (ctors.constFirst()->minimalSignature() != u"ClassName()")
qSwap(ctors[0], ctors[1]);
QCOMPARE(ctors[0]->arguments().size(), 0);
- QCOMPARE(ctors[0]->minimalSignature(), QLatin1String("ClassName()"));
+ QCOMPARE(ctors[0]->minimalSignature(), u"ClassName()");
QCOMPARE(ctors[1]->arguments().size(), 1);
- QCOMPARE(ctors[1]->minimalSignature(), QLatin1String("ClassName(Namespace::ClassName)"));
+ QCOMPARE(ctors[1]->minimalSignature(), u"ClassName(Namespace::ClassName)");
QVERIFY(!classes[0]->hasPrivateDestructor());
- QVERIFY(classes[0]->hasCloneOperator()); // implicit default copy ctor
- QVERIFY(!classes[0]->hasHashFunction());
+ QVERIFY(classes[0]->isCopyConstructible()); // implicit default copy ctor
// This method is buggy and nobody wants to fix it or needs it fixed :-/
// QVERIFY(classes[0]->hasNonPrivateConstructor());
}
-static AbstractMetaFunctionCList virtualFunctions(const AbstractMetaClass *c)
+static AbstractMetaFunctionCList virtualFunctions(const AbstractMetaClassCPtr &c)
{
AbstractMetaFunctionCList result;
const auto &functions = c->functions();
@@ -128,18 +110,16 @@ public:
</typesystem>
)XML";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QCOMPARE(classes.count(), 4);
- AbstractMetaClass* a = AbstractMetaClass::findClass(classes, QLatin1String("A"));
- AbstractMetaClass* b = AbstractMetaClass::findClass(classes, QLatin1String("B"));
- AbstractMetaClass* c = AbstractMetaClass::findClass(classes, QLatin1String("C"));
- const AbstractMetaClass *f = AbstractMetaClass::findClass(classes, QLatin1String("F"));
+ QCOMPARE(classes.size(), 4);
+ const auto a = AbstractMetaClass::findClass(classes, "A");
+ const auto b = AbstractMetaClass::findClass(classes, "B");
+ const auto c = AbstractMetaClass::findClass(classes, "C");
+ const auto f = AbstractMetaClass::findClass(classes, "F");
QVERIFY(f);
- AbstractMetaClass* no_class = nullptr;
-
- QCOMPARE(a->baseClass(), no_class);
+ QCOMPARE(a->baseClass(), nullptr);
QCOMPARE(b->baseClass(), a);
QCOMPARE(c->baseClass(), b);
QCOMPARE(f->baseClass(), c);
@@ -179,11 +159,11 @@ public:
const auto funcF = virtualFunctionsF.constFirst();
QCOMPARE(funcA->ownerClass(), a);
- QVERIFY(funcC->attributes().testFlag(AbstractMetaFunction::VirtualCppMethod));
+ QVERIFY(funcC->isVirtual());
QCOMPARE(funcB->ownerClass(), b);
QCOMPARE(funcC->ownerClass(), c);
- QVERIFY(funcC->attributes().testFlag(AbstractMetaFunction::OverriddenCppMethod));
- QVERIFY(funcF->attributes().testFlag(AbstractMetaFunction::FinalCppMethod));
+ QVERIFY(funcC->cppAttributes().testFlag(FunctionAttribute::Override));
+ QVERIFY(funcF->cppAttributes().testFlag(FunctionAttribute::Final));
QCOMPARE(funcA->declaringClass(), a);
QCOMPARE(funcB->declaringClass(), a);
@@ -214,48 +194,49 @@ class Derived : public Base {};
</typesystem>
)XML";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- auto base = AbstractMetaClass::findClass(classes, QLatin1String("Base"));
+ const auto base = AbstractMetaClass::findClass(classes, "Base");
QVERIFY(base);
QVERIFY(base->isPolymorphic());
- auto derived = AbstractMetaClass::findClass(classes, QLatin1String("Derived"));
+ const auto derived = AbstractMetaClass::findClass(classes, "Derived");
QVERIFY(derived);
QVERIFY(derived->isPolymorphic());
}
void TestAbstractMetaClass::testDefaultValues()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
struct A {\n\
class B {};\n\
void method(B b = B());\n\
};\n";
- const char* xmlCode = R"XML(
+ const char xmlCode[] = R"XML(
<typesystem package="Foo">
<value-type name='A'>
<value-type name='B'/>
</value-type>
</typesystem>)XML";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QCOMPARE(classes.count(), 2);
- AbstractMetaClass* classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
- QCOMPARE(classA->queryFunctionsByName(QLatin1String("method")).count(), 1);
- const auto method = classA->queryFunctionsByName(QLatin1String("method")).constFirst();
+ QCOMPARE(classes.size(), 2);
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
+ const auto candidates = classA->queryFunctionsByName(u"method"_s);
+ QCOMPARE(candidates.size(), 1);
+ const auto &method = candidates.constFirst();
const AbstractMetaArgument &arg = method->arguments().constFirst();
QCOMPARE(arg.defaultValueExpression(), arg.originalDefaultValueExpression());
}
void TestAbstractMetaClass::testModifiedDefaultValues()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
struct A {\n\
class B {};\n\
void method(B b = B());\n\
};\n";
- const char* xmlCode = R"XML(
+ const char xmlCode[] = R"XML(
<typesystem package="Foo">
<value-type name='A'>
<modify-function signature='method(A::B)'>
@@ -267,39 +248,39 @@ void TestAbstractMetaClass::testModifiedDefaultValues()
</value-type>
</typesystem>)XML";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QCOMPARE(classes.count(), 2);
- AbstractMetaClass* classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
- const auto methodMatches = classA->queryFunctionsByName(QLatin1String("method"));
- QCOMPARE(methodMatches.count(), 1);
+ QCOMPARE(classes.size(), 2);
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
+ const auto methodMatches = classA->queryFunctionsByName(u"method"_s);
+ QCOMPARE(methodMatches.size(), 1);
const auto method = methodMatches.constFirst();
const AbstractMetaArgument &arg = method->arguments().constFirst();
- QCOMPARE(arg.defaultValueExpression(), QLatin1String("Hello"));
- QCOMPARE(arg.originalDefaultValueExpression(), QLatin1String("A::B()"));
+ QCOMPARE(arg.defaultValueExpression(), u"Hello");
+ QCOMPARE(arg.originalDefaultValueExpression(), u"A::B()");
}
void TestAbstractMetaClass::testInnerClassOfAPolymorphicOne()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
struct A {\n\
class B {};\n\
virtual void method();\n\
};\n";
- const char* xmlCode = R"XML(
+ const char xmlCode[] = R"XML(
<typesystem package="Foo">
<object-type name='A'>
<value-type name='B'/>
</object-type>
</typesystem>)XML";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QCOMPARE(classes.count(), 2);
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
+ QCOMPARE(classes.size(), 2);
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
QVERIFY(classA);
QVERIFY(classA->isPolymorphic());
- const AbstractMetaClass *classB = AbstractMetaClass::findClass(classes, QLatin1String("A::B"));
+ const auto classB = AbstractMetaClass::findClass(classes, "A::B");
QVERIFY(classB);
QVERIFY(!classB->isPolymorphic());
}
@@ -321,15 +302,15 @@ void TestAbstractMetaClass::testForwardDeclaredInnerClass()
</value-type>
</typesystem>)XML";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QCOMPARE(classes.count(), 2);
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
+ QCOMPARE(classes.size(), 2);
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
QVERIFY(classA);
- const AbstractMetaClass *classB = AbstractMetaClass::findClass(classes, QLatin1String("A::B"));
+ const auto classB = AbstractMetaClass::findClass(classes, "A::B");
QVERIFY(classB);
- const auto fooF = classB->findFunction(QLatin1String("foo"));
- QVERIFY(!fooF.isNull());
+ const auto fooF = classB->findFunction("foo");
+ QVERIFY(fooF);
}
void TestAbstractMetaClass::testSpecialFunctions()
@@ -352,35 +333,35 @@ void TestAbstractMetaClass::testSpecialFunctions()
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QCOMPARE(classes.count(), 2);
+ QCOMPARE(classes.size(), 2);
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
QVERIFY(classA);
- auto ctors = classA->queryFunctions(FunctionQueryOption::Constructors);
+ auto ctors = classA->queryFunctions(FunctionQueryOption::AnyConstructor);
QCOMPARE(ctors.size(), 2);
QCOMPARE(ctors.constFirst()->functionType(), AbstractMetaFunction::ConstructorFunction);
QCOMPARE(ctors.at(1)->functionType(), AbstractMetaFunction::CopyConstructorFunction);
- auto assigmentOps = classA->queryFunctionsByName(QLatin1String("operator="));
+ auto assigmentOps = classA->queryFunctionsByName(u"operator="_s);
QCOMPARE(assigmentOps.size(), 1);
QCOMPARE(assigmentOps.constFirst()->functionType(),
AbstractMetaFunction::AssignmentOperatorFunction);
- const AbstractMetaClass *classB = AbstractMetaClass::findClass(classes, QLatin1String("B"));
+ const auto classB = AbstractMetaClass::findClass(classes, "B");
QVERIFY(classB);
- ctors = classB->queryFunctions(FunctionQueryOption::Constructors);
+ ctors = classB->queryFunctions(FunctionQueryOption::AnyConstructor);
QCOMPARE(ctors.size(), 2);
QCOMPARE(ctors.constFirst()->functionType(), AbstractMetaFunction::ConstructorFunction);
QCOMPARE(ctors.at(1)->functionType(), AbstractMetaFunction::CopyConstructorFunction);
- assigmentOps = classA->queryFunctionsByName(QLatin1String("operator="));
+ assigmentOps = classA->queryFunctionsByName(u"operator="_s);
QCOMPARE(assigmentOps.size(), 1);
QCOMPARE(assigmentOps.constFirst()->functionType(), AbstractMetaFunction::AssignmentOperatorFunction);
}
void TestAbstractMetaClass::testClassDefaultConstructors()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
struct A {};\n\
\n\
struct B {\n\
@@ -406,7 +387,7 @@ void TestAbstractMetaClass::testClassDefaultConstructors()
struct F {\n\
F(int, int);\n\
};\n";
- const char* xmlCode = "\
+ const char xmlCode[] = "\
<typesystem package='Foo'>\n\
<primitive-type name='int'/>\n\
<value-type name='A'/>\n\
@@ -418,163 +399,163 @@ void TestAbstractMetaClass::testClassDefaultConstructors()
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QCOMPARE(classes.count(), 6);
+ QCOMPARE(classes.size(), 6);
- AbstractMetaClass* classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
QVERIFY(classA);
QCOMPARE(classA->functions().size(), 2);
- auto ctors = classA->queryFunctions(FunctionQueryOption::Constructors);
+ auto ctors = classA->queryFunctions(FunctionQueryOption::AnyConstructor);
QCOMPARE(ctors.size(), 2);
- if (ctors.constFirst()->minimalSignature() != QLatin1String("A()"))
+ if (ctors.constFirst()->minimalSignature() != u"A()")
qSwap(ctors[0], ctors[1]);
QCOMPARE(ctors[0]->arguments().size(), 0);
- QCOMPARE(ctors[0]->minimalSignature(), QLatin1String("A()"));
+ QCOMPARE(ctors[0]->minimalSignature(), u"A()");
QCOMPARE(ctors[1]->arguments().size(), 1);
- QCOMPARE(ctors[1]->minimalSignature(), QLatin1String("A(A)"));
+ QCOMPARE(ctors[1]->minimalSignature(), u"A(A)");
- AbstractMetaClass* classB = AbstractMetaClass::findClass(classes, QLatin1String("B"));
+ const auto classB = AbstractMetaClass::findClass(classes, "B");
QVERIFY(classB);
QCOMPARE(classB->functions().size(), 2);
- QCOMPARE(classB->functions().constFirst()->minimalSignature(), QLatin1String("B()"));
+ QCOMPARE(classB->functions().constFirst()->minimalSignature(), u"B()");
- AbstractMetaClass* classC = AbstractMetaClass::findClass(classes, QLatin1String("C"));
+ const auto classC = AbstractMetaClass::findClass(classes, "C");
QVERIFY(classC);
QCOMPARE(classC->functions().size(), 1);
- QCOMPARE(classC->functions().constFirst()->minimalSignature(), QLatin1String("C(C)"));
+ QCOMPARE(classC->functions().constFirst()->minimalSignature(), u"C(C)");
- AbstractMetaClass* classD = AbstractMetaClass::findClass(classes, QLatin1String("D"));
+ const auto classD = AbstractMetaClass::findClass(classes, "D");
QVERIFY(classD);
QCOMPARE(classD->functions().size(), 1);
- QCOMPARE(classD->functions().constFirst()->minimalSignature(), QLatin1String("D(D)"));
+ QCOMPARE(classD->functions().constFirst()->minimalSignature(), u"D(D)");
QVERIFY(classD->functions().constFirst()->isPrivate());
- AbstractMetaClass* classE = AbstractMetaClass::findClass(classes, QLatin1String("E"));
+ const auto classE = AbstractMetaClass::findClass(classes, "E");
QVERIFY(classE);
QVERIFY(classE->hasPrivateDestructor());
QCOMPARE(classE->functions().size(), 0);
- AbstractMetaClass* classF = AbstractMetaClass::findClass(classes, QLatin1String("F"));
+ const auto classF = AbstractMetaClass::findClass(classes, "F");
QVERIFY(classF);
- ctors = classF->queryFunctions(FunctionQueryOption::Constructors);
+ ctors = classF->queryFunctions(FunctionQueryOption::AnyConstructor);
QCOMPARE(ctors.size(), 2);
- if (ctors.constFirst()->minimalSignature() != QLatin1String("F(int,int)"))
+ if (ctors.constFirst()->minimalSignature() != u"F(int,int)")
qSwap(ctors[0], ctors[1]);
QCOMPARE(ctors[0]->arguments().size(), 2);
- QCOMPARE(ctors[0]->minimalSignature(), QLatin1String("F(int,int)"));
+ QCOMPARE(ctors[0]->minimalSignature(), u"F(int,int)");
QCOMPARE(ctors[1]->arguments().size(), 1);
- QCOMPARE(ctors[1]->minimalSignature(), QLatin1String("F(F)"));
+ QCOMPARE(ctors[1]->minimalSignature(), u"F(F)");
}
void TestAbstractMetaClass::testClassInheritedDefaultConstructors()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
struct A {\n\
A();\n\
private: \n\
A(const A&);\n\
};\n\
struct B : public A {};\n";
- const char* xmlCode = "\
+ const char xmlCode[] = "\
<typesystem package='Foo'>\n\
<object-type name='A'/>\n\
<object-type name='B'/>\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QCOMPARE(classes.count(), 2);
- AbstractMetaClass* classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
+ QCOMPARE(classes.size(), 2);
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
QVERIFY(classA);
- auto ctors = classA->queryFunctions(FunctionQueryOption::Constructors);
+ auto ctors = classA->queryFunctions(FunctionQueryOption::AnyConstructor);
QCOMPARE(ctors.size(), 2);
- if (ctors.constFirst()->minimalSignature() != QLatin1String("A()"))
+ if (ctors.constFirst()->minimalSignature() != u"A()")
qSwap(ctors[0], ctors[1]);
QCOMPARE(ctors[0]->arguments().size(), 0);
- QCOMPARE(ctors[0]->minimalSignature(), QLatin1String("A()"));
+ QCOMPARE(ctors[0]->minimalSignature(), u"A()");
QCOMPARE(ctors[1]->arguments().size(), 1);
- QCOMPARE(ctors[1]->minimalSignature(), QLatin1String("A(A)"));
+ QCOMPARE(ctors[1]->minimalSignature(), u"A(A)");
QVERIFY(ctors[1]->isPrivate());
- AbstractMetaClass* classB = AbstractMetaClass::findClass(classes, QLatin1String("B"));
+ const auto classB = AbstractMetaClass::findClass(classes, "B");
QVERIFY(classB);
ctors = classB->queryFunctions(FunctionQueryOption::Constructors);
QCOMPARE(ctors.size(), 1);
QCOMPARE(ctors.constFirst()->arguments().size(), 0);
- QCOMPARE(ctors.constFirst()->minimalSignature(), QLatin1String("B()"));
+ QCOMPARE(ctors.constFirst()->minimalSignature(), u"B()");
}
void TestAbstractMetaClass::testAbstractClassDefaultConstructors()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
struct A {\n\
virtual void method() = 0;\n\
};\n";
- const char* xmlCode = "\
+ const char xmlCode[] = "\
<typesystem package='Foo'>\n\
<object-type name='A'/>\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QCOMPARE(classes.count(), 1);
- AbstractMetaClass* classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
+ QCOMPARE(classes.size(), 1);
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
QVERIFY(classA);
const auto ctors = classA->queryFunctions(FunctionQueryOption::Constructors);
QCOMPARE(ctors.size(), 1);
QCOMPARE(ctors.constFirst()->arguments().size(), 0);
- QCOMPARE(ctors.constFirst()->minimalSignature(), QLatin1String("A()"));
+ QCOMPARE(ctors.constFirst()->minimalSignature(), u"A()");
}
void TestAbstractMetaClass::testObjectTypesMustNotHaveCopyConstructors()
{
- const char* cppCode ="struct A {};\n";
- const char* xmlCode = "\
+ const char cppCode[] = "struct A {};\n";
+ const char xmlCode[] = "\
<typesystem package='Foo'>\n\
<object-type name='A'/>\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QCOMPARE(classes.count(), 1);
- AbstractMetaClass* classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
+ QCOMPARE(classes.size(), 1);
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
QVERIFY(classA);
const auto ctors = classA->queryFunctions(FunctionQueryOption::Constructors);
QCOMPARE(ctors.size(), 1);
QCOMPARE(ctors.constFirst()->arguments().size(), 0);
- QCOMPARE(ctors.constFirst()->minimalSignature(), QLatin1String("A()"));
+ QCOMPARE(ctors.constFirst()->minimalSignature(), u"A()");
}
void TestAbstractMetaClass::testIsPolymorphic()
{
- const char* cppCode = "\
+ const char cppCode[] = "\
class A\n\
{\n\
public:\n\
A();\n\
- inline bool abc() const {}\n\
+ inline bool abc() const { return false; }\n\
};\n\
\n\
class B : public A\n\
{\n\
public:\n\
B();\n\
- inline bool abc() const {}\n\
+ inline bool abc() const { return false; }\n\
};\n";
- const char* xmlCode = "\
+ const char xmlCode[] = "\
<typesystem package='Foo'>\n\
<primitive-type name='bool'/>\n\
<value-type name='A'/>\n\
@@ -582,13 +563,13 @@ void TestAbstractMetaClass::testIsPolymorphic()
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QCOMPARE(classes.count(), 2);
- AbstractMetaClass* b = AbstractMetaClass::findClass(classes, QLatin1String("A"));
+ QCOMPARE(classes.size(), 2);
+ const auto b = AbstractMetaClass::findClass(classes, "A");
QVERIFY(!b->isPolymorphic());
- AbstractMetaClass* a = AbstractMetaClass::findClass(classes, QLatin1String("B"));
+ const auto a = AbstractMetaClass::findClass(classes, "B");
QVERIFY(!a->isPolymorphic());
}
@@ -612,12 +593,12 @@ class Derived : public BaseAlias2 {
)XML";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QCOMPARE(classes.count(), 2);
- auto base = AbstractMetaClass::findClass(classes, QLatin1String("Base"));
+ QCOMPARE(classes.size(), 2);
+ const auto base = AbstractMetaClass::findClass(classes, "Base");
QVERIFY(base);
- auto derived = AbstractMetaClass::findClass(classes, QLatin1String("Derived"));
+ const auto derived = AbstractMetaClass::findClass(classes, "Derived");
QVERIFY(derived);
QCOMPARE(derived->baseClasses().value(0), base);
}
@@ -663,7 +644,7 @@ void TestAbstractMetaClass::testFreeOperators()
</typesystem>)XML";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(code.constData(), xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
const auto classes = builder->classes();
QCOMPARE(classes.size(), 1);
QVERIFY(classes.constFirst()->hasArithmeticOperatorOverload());
@@ -697,15 +678,15 @@ public:
)XML";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QCOMPARE(classes.count(), 2);
- auto base = AbstractMetaClass::findClass(classes, QLatin1String("Base"));
+ QCOMPARE(classes.size(), 2);
+ const auto base = AbstractMetaClass::findClass(classes, "Base");
QVERIFY(base);
- auto derived = AbstractMetaClass::findClass(classes, QLatin1String("Derived"));
+ const auto derived = AbstractMetaClass::findClass(classes, "Derived");
QVERIFY(derived);
const auto usingMembers = derived->usingMembers();
- QCOMPARE(usingMembers.count(), 2);
+ QCOMPARE(usingMembers.size(), 2);
for (const auto &um : usingMembers) {
QCOMPARE(um.access, Access::Public);
QCOMPARE(um.baseClass, base);
@@ -752,13 +733,46 @@ void TestAbstractMetaClass::testUsingTemplateMembers()
)XML";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(code.constData(), xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- auto valueList = AbstractMetaClass::findClass(classes, QLatin1String("ValueList"));
+ const auto valueList = AbstractMetaClass::findClass(classes, "ValueList");
QVERIFY(valueList);
auto list = valueList->templateBaseClass();
- QVERIFY(valueList->isUsingMember(list, QLatin1String("append"), Access::Public));
- QCOMPARE(valueList->queryFunctionsByName(QLatin1String("append")).size(), 2);
+ QVERIFY(valueList->isUsingMember(list, u"append"_s, Access::Public));
+ QCOMPARE(valueList->queryFunctionsByName(u"append"_s).size(), 2);
+}
+
+void TestAbstractMetaClass::testGenerateFunctions()
+{
+ const char cppCode[] = R"CPP(
+class TestClass {
+public:
+ TestClass();
+
+ void alpha(int);
+ void beta(int);
+ void beta(double);
+ void gamma(int);
+};
+)CPP";
+
+ const char xmlCode[] = R"XML(
+<typesystem package='Foo'>
+ <object-type name='TestClass' generate-functions='beta(double);gamma'/>
+</typesystem>
+)XML";
+
+ QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
+ QVERIFY(builder);
+ AbstractMetaClassList classes = builder->classes();
+ const auto tc = AbstractMetaClass::findClass(classes, "TestClass");
+ // Verify that the constructor and 2 functions are generated.
+ const auto &functions = tc->functions();
+ QCOMPARE(functions.size(), 5);
+ const auto generateCount =
+ std::count_if(functions.cbegin(), functions.cend(),
+ [](const auto &af) { return af->generateBinding(); });
+ QCOMPARE(generateCount, 3);
}
QTEST_APPLESS_MAIN(TestAbstractMetaClass)
diff --git a/sources/shiboken6/ApiExtractor/tests/testabstractmetaclass.h b/sources/shiboken6/ApiExtractor/tests/testabstractmetaclass.h
index ab171d6b7..a6bd2bf06 100644
--- a/sources/shiboken6/ApiExtractor/tests/testabstractmetaclass.h
+++ b/sources/shiboken6/ApiExtractor/tests/testabstractmetaclass.h
@@ -1,35 +1,10 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TESTABSTRACTMETACLASS_H
#define TESTABSTRACTMETACLASS_H
-#include <QObject>
+#include <QtCore/QObject>
class AbstractMetaBuilder;
@@ -57,6 +32,7 @@ private slots:
void testUsingMembers();
void testUsingTemplateMembers_data();
void testUsingTemplateMembers();
+ void testGenerateFunctions();
};
#endif // TESTABSTRACTMETACLASS_H
diff --git a/sources/shiboken6/ApiExtractor/tests/testabstractmetatype.cpp b/sources/shiboken6/ApiExtractor/tests/testabstractmetatype.cpp
index 897940cd5..2c320c874 100644
--- a/sources/shiboken6/ApiExtractor/tests/testabstractmetatype.cpp
+++ b/sources/shiboken6/ApiExtractor/tests/testabstractmetatype.cpp
@@ -1,40 +1,22 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "testabstractmetatype.h"
-#include <QtTest/QTest>
#include "testutil.h"
+#include <abstractmetaargument.h>
#include <abstractmetafunction.h>
#include <abstractmetalang.h>
+#include <abstractmetatype.h>
#include <typesystem.h>
#include <parser/codemodel.h>
#include <typeparser.h>
+#include <qtcompat.h>
+
+#include <QtTest/QTest>
+
+using namespace Qt::StringLiterals;
+
void TestAbstractMetaType::parsing_data()
{
QTest::addColumn<QString>("input");
@@ -66,20 +48,20 @@ void TestAbstractMetaType::parsing()
void TestAbstractMetaType::testConstCharPtrType()
{
- const char* cppCode ="const char* justAtest();\n";
- const char* xmlCode = "<typesystem package=\"Foo\">\n\
+ const char cppCode[] = "const char* justAtest();\n";
+ const char xmlCode[] = "<typesystem package=\"Foo\">\n\
<primitive-type name='char'/>\n\
<function signature='justAtest()' />\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
QCOMPARE(builder->globalFunctions().size(), 1);
const auto func = builder->globalFunctions().constFirst();
AbstractMetaType rtype = func->type();
// Test properties of const char*
QVERIFY(!rtype.isVoid());
- QCOMPARE(rtype.package(), QLatin1String("Foo"));
- QCOMPARE(rtype.name(), QLatin1String("char"));
+ QCOMPARE(rtype.package(), u"Foo");
+ QCOMPARE(rtype.name(), u"char");
QVERIFY(rtype.isConstant());
QVERIFY(!rtype.isArray());
QVERIFY(!rtype.isContainer());
@@ -93,9 +75,9 @@ void TestAbstractMetaType::testConstCharPtrType()
void TestAbstractMetaType::testApiVersionSupported()
{
- const char* cppCode ="class foo {}; class foo2 {};\n\
+ const char cppCode[] = "class foo {}; class foo2 {};\n\
void justAtest(); void justAtest3();\n";
- const char* xmlCode = "<typesystem package='Foo'>\n\
+ const char xmlCode[] = "<typesystem package='Foo'>\n\
<value-type name='foo' since='0.1'/>\n\
<value-type name='foo2' since='1.0'/>\n\
<value-type name='foo3' since='1.1'/>\n\
@@ -104,8 +86,8 @@ void TestAbstractMetaType::testApiVersionSupported()
<function signature='justAtest3()'/>\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode,
- false, QLatin1String("1.0")));
- QVERIFY(!builder.isNull());
+ false, u"1.0"_s));
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
QCOMPARE(classes.size(), 2);
@@ -117,13 +99,13 @@ void TestAbstractMetaType::testApiVersionSupported()
void TestAbstractMetaType::testApiVersionNotSupported()
{
- const char* cppCode ="class object {};\n";
- const char* xmlCode = "<typesystem package='Foo'>\n\
+ const char cppCode[] = "class object {};\n";
+ const char xmlCode[] = "<typesystem package='Foo'>\n\
<value-type name='object' since='0.1'/>\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode,
- true, QLatin1String("0.1")));
- QVERIFY(!builder.isNull());
+ true, u"0.1"_s));
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
QCOMPARE(classes.size(), 1);
@@ -131,18 +113,18 @@ void TestAbstractMetaType::testApiVersionNotSupported()
void TestAbstractMetaType::testCharType()
{
- const char* cppCode ="char justAtest(); class A {};\n";
- const char* xmlCode = "<typesystem package=\"Foo\">\n\
+ const char cppCode[] = "char justAtest(); class A {};\n";
+ const char xmlCode[] = "<typesystem package=\"Foo\">\n\
<primitive-type name='char'/>\n\
<value-type name='A'/>\n\
<function signature='justAtest()'/>\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
QCOMPARE(classes.size(), 1);
- QCOMPARE(classes.constFirst()->package(), QLatin1String("Foo"));
+ QCOMPARE(classes.constFirst()->package(), u"Foo");
const auto functions = builder->globalFunctions();
QCOMPARE(functions.size(), 1);
@@ -150,8 +132,8 @@ void TestAbstractMetaType::testCharType()
AbstractMetaType rtype = func->type();
// Test properties of const char*
QVERIFY(!rtype.isVoid());
- QCOMPARE(rtype.package(), QLatin1String("Foo"));
- QCOMPARE(rtype.name(), QLatin1String("char"));
+ QCOMPARE(rtype.package(), u"Foo");
+ QCOMPARE(rtype.name(), u"char");
QVERIFY(!rtype.isConstant());
QVERIFY(!rtype.isArray());
QVERIFY(!rtype.isContainer());
@@ -165,28 +147,28 @@ void TestAbstractMetaType::testCharType()
void TestAbstractMetaType::testTypedef()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
struct A {\n\
void someMethod();\n\
};\n\
typedef A B;\n\
typedef B C;\n";
- const char* xmlCode = "<typesystem package=\"Foo\">\n\
+ const char xmlCode[] = "<typesystem package=\"Foo\">\n\
<value-type name='C' />\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
QCOMPARE(classes.size(), 1);
- const AbstractMetaClass *c = AbstractMetaClass::findClass(classes, QLatin1String("C"));
+ const auto c = AbstractMetaClass::findClass(classes, "C");
QVERIFY(c);
QVERIFY(c->isTypeDef());
}
void TestAbstractMetaType::testTypedefWithTemplates()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
template<typename T>\n\
class A {};\n\
\n\
@@ -194,52 +176,52 @@ void TestAbstractMetaType::testTypedefWithTemplates()
typedef A<B> C;\n\
\n\
void func(C c);\n";
- const char* xmlCode = "<typesystem package=\"Foo\">\n\
+ const char xmlCode[] = "<typesystem package=\"Foo\">\n\
<container-type name='A' type='list'/>\n\
<value-type name='B' />\n\
<function signature='func(A&lt;B&gt;)'/>\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
QCOMPARE(classes.size(), 1);
const auto functions = builder->globalFunctions();
- QCOMPARE(functions.count(), 1);
+ QCOMPARE(functions.size(), 1);
const auto function = functions.constFirst();
AbstractMetaArgumentList args = function->arguments();
- QCOMPARE(args.count(), 1);
+ QCOMPARE(args.size(), 1);
const AbstractMetaArgument &arg = args.constFirst();
AbstractMetaType metaType = arg.type();
- QCOMPARE(metaType.cppSignature(), QLatin1String("A<B >"));
+ QCOMPARE(metaType.cppSignature(), u"A<B>");
}
void TestAbstractMetaType::testObjectTypeUsedAsValue()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
class A {\n\
void method(A);\n\
};\n";
- const char* xmlCode = "<typesystem package='Foo'>\n\
+ const char xmlCode[] = "<typesystem package='Foo'>\n\
<object-type name='A'/>\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
QCOMPARE(classes.size(), 1);
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
QVERIFY(classA);
- const auto overloads = classA->queryFunctionsByName(QLatin1String("method"));
- QCOMPARE(overloads.count(), 1);
+ const auto overloads = classA->queryFunctionsByName(u"method"_s);
+ QCOMPARE(overloads.size(), 1);
const auto method = overloads.constFirst();
QVERIFY(method);
AbstractMetaArgumentList args = method->arguments();
- QCOMPARE(args.count(), 1);
+ QCOMPARE(args.size(), 1);
const AbstractMetaArgument &arg = args.constFirst();
AbstractMetaType metaType = arg.type();
- QCOMPARE(metaType.cppSignature(), QLatin1String("A"));
+ QCOMPARE(metaType.cppSignature(), u"A");
QVERIFY(metaType.isValue());
QVERIFY(metaType.typeEntry()->isObject());
}
diff --git a/sources/shiboken6/ApiExtractor/tests/testabstractmetatype.h b/sources/shiboken6/ApiExtractor/tests/testabstractmetatype.h
index b39a27a54..fdcf0c787 100644
--- a/sources/shiboken6/ApiExtractor/tests/testabstractmetatype.h
+++ b/sources/shiboken6/ApiExtractor/tests/testabstractmetatype.h
@@ -1,35 +1,10 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TESTABSTRACTMETATYPE_H
#define TESTABSTRACTMETATYPE_H
-#include <QObject>
+#include <QtCore/QObject>
class TestAbstractMetaType : public QObject
{
diff --git a/sources/shiboken6/ApiExtractor/tests/testaddfunction.cpp b/sources/shiboken6/ApiExtractor/tests/testaddfunction.cpp
index 1c5e31f35..a891e1e28 100644
--- a/sources/shiboken6/ApiExtractor/tests/testaddfunction.cpp
+++ b/sources/shiboken6/ApiExtractor/tests/testaddfunction.cpp
@@ -1,80 +1,67 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "testaddfunction.h"
-#include <QtTest/QTest>
#include "testutil.h"
+#include <abstractmetaargument.h>
#include <abstractmetafunction.h>
#include <abstractmetalang.h>
-#include <modifications.h>
-#include <modifications_p.h>
-#include <typesystem.h>
+#include <abstractmetatype.h>
+#include <codesnip.h>
+#include <addedfunction.h>
+#include <addedfunction_p.h>
+#include <complextypeentry.h>
+#include <primitivetypeentry.h>
+
+#include <qtcompat.h>
+
+#include <QtTest/QTest>
+
+using namespace Qt::StringLiterals;
+
+static constexpr auto voidT = "void"_L1;
void TestAddFunction::testParsingFuncNameAndConstness()
{
// generic test...
- const char sig1[] = "func(type1, const type2, const type3* const)";
+ static constexpr auto sig1 = "func(type1, const type2, const type3* const)"_L1;
QString errorMessage;
- auto f1 = AddedFunction::createAddedFunction(QLatin1String(sig1), QLatin1String("void"),
- &errorMessage);
- QVERIFY2(!f1.isNull(), qPrintable(errorMessage));
- QCOMPARE(f1->name(), QLatin1String("func"));
- QCOMPARE(f1->arguments().count(), 3);
+ auto f1 = AddedFunction::createAddedFunction(sig1, voidT, &errorMessage);
+ QVERIFY2(f1, qPrintable(errorMessage));
+ QCOMPARE(f1->name(), u"func");
+ QCOMPARE(f1->arguments().size(), 3);
TypeInfo retval = f1->returnType();
- QCOMPARE(retval.qualifiedName(), QStringList{QLatin1String("void")});
+ QCOMPARE(retval.qualifiedName(), QStringList{voidT});
QCOMPARE(retval.indirections(), 0);
QCOMPARE(retval.isConstant(), false);
QCOMPARE(retval.referenceType(), NoReference);
// test with a ugly template as argument and other ugly stuff
- const char sig2[] = " _fu__nc_ ( type1, const type2, const Abc<int& , C<char*> * > * *@my_name@, const type3* const ) const ";
- auto f2 = AddedFunction::createAddedFunction(QLatin1String(sig2),
- QLatin1String("const Abc<int& , C<char*> * > * *"),
+ static constexpr auto sig2 =
+ " _fu__nc_ ( type1, const type2, const Abc<int& , C<char*> * >"
+ " * *@my_name@, const type3* const ) const "_L1;
+ auto f2 = AddedFunction::createAddedFunction(sig2,
+ u"const Abc<int& , C<char*> * > * *"_s,
&errorMessage);
- QVERIFY2(!f2.isNull(), qPrintable(errorMessage));
- QCOMPARE(f2->name(), QLatin1String("_fu__nc_"));
+ QVERIFY2(f2, qPrintable(errorMessage));
+ QCOMPARE(f2->name(), u"_fu__nc_");
const auto &args = f2->arguments();
- QCOMPARE(args.count(), 4);
+ QCOMPARE(args.size(), 4);
retval = f2->returnType();
- QCOMPARE(retval.qualifiedName(), QStringList{QLatin1String("Abc")});
+ QCOMPARE(retval.qualifiedName(), QStringList{u"Abc"_s});
QCOMPARE(retval.instantiations().size(), 2);
- QCOMPARE(retval.toString(), QLatin1String("const Abc<int&, C<char*>*>**"));
+ QCOMPARE(retval.toString(), u"const Abc<int&, C<char*>*>**");
QCOMPARE(retval.indirections(), 2);
QCOMPARE(retval.isConstant(), true);
QCOMPARE(retval.referenceType(), NoReference);
QVERIFY(args.at(0).name.isEmpty());
QVERIFY(args.at(1).name.isEmpty());
- QCOMPARE(args.at(2).name, QLatin1String("my_name"));
+ QCOMPARE(args.at(2).name, u"my_name");
auto arg2Type = args.at(2).typeInfo;
- QCOMPARE(arg2Type.qualifiedName(), QStringList{QLatin1String("Abc")});
+ QCOMPARE(arg2Type.qualifiedName(), QStringList{u"Abc"_s});
QCOMPARE(arg2Type.instantiations().size(), 2);
- QCOMPARE(arg2Type.toString(), QLatin1String("const Abc<int&, C<char*>*>**"));
+ QCOMPARE(arg2Type.toString(), u"const Abc<int&, C<char*>*>**");
QCOMPARE(arg2Type.indirections(), 2);
QCOMPARE(arg2Type.isConstant(), true);
QCOMPARE(arg2Type.referenceType(), NoReference);
@@ -82,20 +69,17 @@ void TestAddFunction::testParsingFuncNameAndConstness()
QVERIFY(args.at(3).name.isEmpty());
// function with no args.
- const char sig3[] = "func()";
- auto f3 = AddedFunction::createAddedFunction(QLatin1String(sig3), QLatin1String("void"),
- &errorMessage);
- QVERIFY2(!f3.isNull(), qPrintable(errorMessage));
- QCOMPARE(f3->name(), QLatin1String("func"));
- QCOMPARE(f3->arguments().count(), 0);
+ auto f3 = AddedFunction::createAddedFunction("func()"_L1, voidT, &errorMessage);
+ QVERIFY2(f3, qPrintable(errorMessage));
+ QCOMPARE(f3->name(), u"func");
+ QCOMPARE(f3->arguments().size(), 0);
// const call operator
- const char sig4[] = "operator()(int)const";
- auto f4 = AddedFunction::createAddedFunction(QLatin1String(sig4), QLatin1String("int"),
- &errorMessage);
- QVERIFY2(!f4.isNull(), qPrintable(errorMessage));
- QCOMPARE(f4->name(), QLatin1String("operator()"));
- QCOMPARE(f4->arguments().count(), 1);
+ auto f4 = AddedFunction::createAddedFunction("operator()(int)const"_L1,
+ "int"_L1, &errorMessage);
+ QVERIFY2(f4, qPrintable(errorMessage));
+ QCOMPARE(f4->name(), u"operator()");
+ QCOMPARE(f4->arguments().size(), 1);
QVERIFY(f4->isConstant());
}
@@ -118,14 +102,15 @@ struct A {
</typesystem>)XML";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
- TypeDatabase* typeDb = TypeDatabase::instance();
+ QVERIFY(builder);
+ auto *typeDb = TypeDatabase::instance();
AbstractMetaClassList classes = builder->classes();
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
QVERIFY(classA);
- QCOMPARE(classA->functions().count(), 5); // default ctor, default copy ctor, func a() and the added functions
+ // default ctor, default copy ctor, func a() and the added functions
+ QCOMPARE(classA->functions().size(), 5);
- auto addedFunc = classA->findFunction(QLatin1String("b"));
+ auto addedFunc = classA->findFunction("b");
QVERIFY(addedFunc);
QCOMPARE(addedFunc->access(), Access::Protected);
QCOMPARE(addedFunc->functionType(), AbstractMetaFunction::NormalFunction);
@@ -139,14 +124,14 @@ struct A {
QVERIFY(!addedFunc->isStatic());
AbstractMetaType returnType = addedFunc->type();
- QCOMPARE(returnType.typeEntry(), typeDb->findPrimitiveType(QLatin1String("int")));
+ QCOMPARE(returnType.typeEntry(), typeDb->findPrimitiveType(u"int"_s));
const AbstractMetaArgumentList &args = addedFunc->arguments();
- QCOMPARE(args.count(), 3);
+ QCOMPARE(args.size(), 3);
QCOMPARE(args.at(0).type().typeEntry(), returnType.typeEntry());
- QCOMPARE(args.at(1).defaultValueExpression(), QLatin1String("4.6"));
- QCOMPARE(args.at(2).type().typeEntry(), typeDb->findType(QLatin1String("B")));
+ QCOMPARE(args.at(1).defaultValueExpression(), u"4.6");
+ QCOMPARE(args.at(2).type().typeEntry(), typeDb->findType(u"B"_s));
- auto addedCallOperator = classA->findFunction(QLatin1String("operator()"));
+ auto addedCallOperator = classA->findFunction("operator()");
QVERIFY(addedCallOperator);
}
@@ -161,11 +146,11 @@ void TestAddFunction::testAddFunctionConstructor()
</value-type>\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
QVERIFY(classA);
- QCOMPARE(classA->functions().count(), 3); // default and added ctors
+ QCOMPARE(classA->functions().size(), 3); // default and added ctors
const auto addedFunc = classA->functions().constLast();
QCOMPARE(addedFunc->access(), Access::Public);
QCOMPARE(addedFunc->functionType(), AbstractMetaFunction::ConstructorFunction);
@@ -184,11 +169,12 @@ void TestAddFunction::testAddFunctionTagDefaultValues()
</value-type>\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
QVERIFY(classA);
- QCOMPARE(classA->functions().count(), 3); // default ctor, default copy ctor and the added function
+ // default ctor, default copy ctor and the added function
+ QCOMPARE(classA->functions().size(), 3);
const auto addedFunc = classA->functions().constLast();
QCOMPARE(addedFunc->access(), Access::Public);
QCOMPARE(addedFunc->functionType(), AbstractMetaFunction::NormalFunction);
@@ -209,9 +195,9 @@ void TestAddFunction::testAddFunctionCodeSnippets()
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
QVERIFY(classA);
const auto addedFunc = classA->functions().constLast();
QVERIFY(addedFunc->hasInjectedCode());
@@ -219,13 +205,12 @@ void TestAddFunction::testAddFunctionCodeSnippets()
void TestAddFunction::testAddFunctionWithoutParenteses()
{
- const char sig1[] = "func";
+ static constexpr auto sig1 = "func"_L1;
QString errorMessage;
- auto f1 = AddedFunction::createAddedFunction(QLatin1String(sig1), QLatin1String("void"),
- &errorMessage);
- QVERIFY2(!f1.isNull(), qPrintable(errorMessage));
- QCOMPARE(f1->name(), QLatin1String("func"));
- QCOMPARE(f1->arguments().count(), 0);
+ auto f1 = AddedFunction::createAddedFunction(sig1, voidT, &errorMessage);
+ QVERIFY2(f1, qPrintable(errorMessage));
+ QCOMPARE(f1->name(), u"func");
+ QCOMPARE(f1->arguments().size(), 0);
QCOMPARE(f1->isConstant(), false);
const char cppCode[] = "struct A {};\n";
@@ -239,25 +224,26 @@ void TestAddFunction::testAddFunctionWithoutParenteses()
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
QVERIFY(classA);
- const auto addedFunc = classA->findFunction(QLatin1String("func"));
- QVERIFY(!addedFunc.isNull());
+ const auto addedFunc = classA->findFunction(sig1);
+ QVERIFY(addedFunc);
QVERIFY(addedFunc->hasInjectedCode());
- QCOMPARE(addedFunc->injectedCodeSnips(TypeSystem::CodeSnipPositionAny, TypeSystem::TargetLangCode).count(), 1);
+ const auto snips = addedFunc->injectedCodeSnips(TypeSystem::CodeSnipPositionAny,
+ TypeSystem::TargetLangCode);
+ QCOMPARE(snips.size(), 1);
}
void TestAddFunction::testAddFunctionWithDefaultArgs()
{
- const char sig1[] = "func";
+ static constexpr auto sig1 = "func"_L1;
QString errorMessage;
- auto f1 = AddedFunction::createAddedFunction(QLatin1String(sig1), QLatin1String("void"),
- &errorMessage);
- QVERIFY2(!f1.isNull(), qPrintable(errorMessage));
- QCOMPARE(f1->name(), QLatin1String("func"));
- QCOMPARE(f1->arguments().count(), 0);
+ auto f1 = AddedFunction::createAddedFunction(sig1, voidT, &errorMessage);
+ QVERIFY2(f1, qPrintable(errorMessage));
+ QCOMPARE(f1->name(), u"func");
+ QCOMPARE(f1->arguments().size(), 0);
QCOMPARE(f1->isConstant(), false);
const char cppCode[] = "struct A { };\n";
@@ -274,14 +260,14 @@ void TestAddFunction::testAddFunctionWithDefaultArgs()
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
QVERIFY(classA);
- const auto addedFunc = classA->findFunction(QLatin1String("func"));
- QVERIFY(!addedFunc.isNull());
+ const auto addedFunc = classA->findFunction(sig1);
+ QVERIFY(addedFunc);
const AbstractMetaArgument &arg = addedFunc->arguments().at(1);
- QCOMPARE(arg.defaultValueExpression(), QLatin1String("2"));
+ QCOMPARE(arg.defaultValueExpression(), u"2");
}
void TestAddFunction::testAddFunctionAtModuleLevel()
@@ -297,34 +283,33 @@ void TestAddFunction::testAddFunctionAtModuleLevel()
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
QVERIFY(classA);
- TypeDatabase* typeDb = TypeDatabase::instance();
+ auto *typeDb = TypeDatabase::instance();
- AddedFunctionList addedFuncs = typeDb->findGlobalUserFunctions(QLatin1String("func"));
+ AddedFunctionList addedFuncs = typeDb->findGlobalUserFunctions(u"func"_s);
QCOMPARE(addedFuncs.size(), 1);
- const FunctionModificationList mods = addedFuncs.constFirst()->modifications;
+ auto &mods = addedFuncs.constFirst()->modifications();
QCOMPARE(mods.size(), 1);
QVERIFY(mods.constFirst().isCodeInjection());
CodeSnip snip = mods.constFirst().snips().constFirst();
- QCOMPARE(snip.code().trimmed(), QLatin1String("custom_code();"));
+ QCOMPARE(snip.code().trimmed(), u"custom_code();");
}
void TestAddFunction::testAddFunctionWithVarargs()
{
- const char sig1[] = "func(int,char,...)";
QString errorMessage;
- auto f1 = AddedFunction::createAddedFunction(QLatin1String(sig1), QLatin1String("void"),
+ auto f1 = AddedFunction::createAddedFunction("func(int,char,...)"_L1, voidT,
&errorMessage);
- QVERIFY2(!f1.isNull(), qPrintable(errorMessage));
- QCOMPARE(f1->name(), QLatin1String("func"));
- QCOMPARE(f1->arguments().count(), 3);
+ QVERIFY2(f1, qPrintable(errorMessage));
+ QCOMPARE(f1->name(), u"func");
+ QCOMPARE(f1->arguments().size(), 3);
QVERIFY(!f1->isConstant());
const char cppCode[] = "struct A {};\n";
@@ -338,12 +323,12 @@ void TestAddFunction::testAddFunctionWithVarargs()
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
QVERIFY(classA);
- const auto addedFunc = classA->findFunction(QLatin1String("func"));
- QVERIFY(!addedFunc.isNull());
+ const auto addedFunc = classA->findFunction("func");
+ QVERIFY(addedFunc);
const AbstractMetaArgument &arg = addedFunc->arguments().constLast();
QVERIFY(arg.type().isVarargs());
QVERIFY(arg.type().typeEntry()->isVarargs());
@@ -362,12 +347,12 @@ void TestAddFunction::testAddStaticFunction()
</value-type>\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
QVERIFY(classA);
- const auto addedFunc = classA->findFunction(QLatin1String("func"));
- QVERIFY(!addedFunc.isNull());
+ const auto addedFunc = classA->findFunction("func");
+ QVERIFY(addedFunc);
QVERIFY(addedFunc->isStatic());
}
@@ -387,13 +372,13 @@ void TestAddFunction::testAddGlobalFunction()
<value-type name='B'/>\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
const auto globalFuncs = builder->globalFunctions();
- QCOMPARE(globalFuncs.count(), 2);
- const AbstractMetaClass *classB = AbstractMetaClass::findClass(builder->classes(), QLatin1String("B"));
+ QCOMPARE(globalFuncs.size(), 2);
+ const auto classB = AbstractMetaClass::findClass(builder->classes(), "B");
QVERIFY(classB);
- QVERIFY(!classB->findFunction(QLatin1String("globalFunc")));
- QVERIFY(!classB->findFunction(QLatin1String("globalFunc2")));
+ QVERIFY(!classB->findFunction("globalFunc"));
+ QVERIFY(!classB->findFunction("globalFunc2"));
QVERIFY(!globalFuncs[0]->injectedCodeSnips().isEmpty());
QVERIFY(!globalFuncs[1]->injectedCodeSnips().isEmpty());
}
@@ -412,10 +397,10 @@ void TestAddFunction::testAddFunctionWithApiVersion()
</add-function>\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode,
- true, QLatin1String("0.1")));
- QVERIFY(!builder.isNull());
+ true, u"0.1"_s));
+ QVERIFY(builder);
const auto globalFuncs = builder->globalFunctions();
- QCOMPARE(globalFuncs.count(), 1);
+ QCOMPARE(globalFuncs.size(), 1);
}
void TestAddFunction::testModifyAddedFunction()
@@ -436,16 +421,16 @@ void TestAddFunction::testModifyAddedFunction()
</typesystem>
)";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- AbstractMetaClass* foo = AbstractMetaClass::findClass(classes, QLatin1String("Foo"));
- const auto method = foo->findFunction(QLatin1String("method"));
- QVERIFY(!method.isNull());
+ const auto foo = AbstractMetaClass::findClass(classes, "Foo");
+ const auto method = foo->findFunction("method");
+ QVERIFY(method);
QCOMPARE(method->arguments().size(), 2);
const AbstractMetaArgument &arg = method->arguments().at(1);
- QCOMPARE(arg.defaultValueExpression(), QLatin1String("0"));
- QCOMPARE(arg.name(), QLatin1String("varName"));
- QCOMPARE(method->argumentName(2), QLatin1String("varName"));
+ QCOMPARE(arg.defaultValueExpression(), u"0");
+ QCOMPARE(arg.name(), u"varName");
+ QCOMPARE(method->argumentName(2), u"varName");
}
void TestAddFunction::testAddFunctionOnTypedef()
@@ -453,8 +438,6 @@ void TestAddFunction::testAddFunctionOnTypedef()
const char cppCode[] = "template<class T> class Foo { }; typedef Foo<int> FooInt;\n";
const char xmlCode[] = "\
<typesystem package='Package'>\n\
- <custom-type name='PySequence'/>\n\
- <primitive-type name='int'/>\n\
<value-type name='FooInt'>\n\
<add-function signature='FooInt(PySequence)'>\n\
<inject-code class='target' position='beginning'>custom_code();</inject-code>\n\
@@ -465,17 +448,17 @@ void TestAddFunction::testAddFunctionOnTypedef()
</value-type>\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- AbstractMetaClass* foo = AbstractMetaClass::findClass(classes, QLatin1String("FooInt"));
+ const auto foo = AbstractMetaClass::findClass(classes, "FooInt");
QVERIFY(foo);
QVERIFY(foo->hasNonPrivateConstructor());
- const auto &lst = foo->queryFunctions(FunctionQueryOption::Constructors);
+ const auto &lst = foo->queryFunctions(FunctionQueryOption::AnyConstructor);
for (const auto &f : lst)
QVERIFY(f->signature().startsWith(f->name()));
QCOMPARE(lst.size(), 2);
- const auto method = foo->findFunction(QLatin1String("method"));
- QVERIFY(!method.isNull());
+ const auto method = foo->findFunction("method");
+ QVERIFY(method);
}
void TestAddFunction::testAddFunctionWithTemplateArg()
@@ -489,11 +472,11 @@ void TestAddFunction::testAddFunctionWithTemplateArg()
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
QCOMPARE(builder->globalFunctions().size(), 1);
const auto func = builder->globalFunctions().constFirst();
const AbstractMetaArgument &arg = func->arguments().constFirst();
- QCOMPARE(arg.type().instantiations().count(), 1);
+ QCOMPARE(arg.type().instantiations().size(), 1);
}
// Test splitting of <add-function> parameter lists.
@@ -512,18 +495,18 @@ void TestAddFunction::testAddFunctionTypeParser_data()
QTest::newRow("1-arg")
<< QString::fromLatin1("int @a@=42")
- << Arguments{{QLatin1String("int"), QLatin1String("a"), QLatin1String("42")}};
+ << Arguments{{u"int"_s, u"a"_s, u"42"_s}};
QTest::newRow("2-args")
<< QString::fromLatin1("double @d@, int @a@=42")
- << Arguments{{QLatin1String("double"), QLatin1String("d"), {}},
- {QLatin1String("int"), QLatin1String("a"), QLatin1String("42")}};
+ << Arguments{{u"double"_s, u"d"_s, {}},
+ {u"int"_s, u"a"_s, u"42"_s}};
QTest::newRow("template-var_args")
<< QString::fromLatin1("const QList<X,Y> &@list@ = QList<X,Y>{1,2}, int @b@=5, ...")
- << Arguments{{QLatin1String("const QList<X,Y> &"), QLatin1String("list"), QLatin1String("QList<X,Y>{1,2}")},
- {QLatin1String("int"), QLatin1String("b"), QLatin1String("5")},
- {QLatin1String("..."), {}, {}}};
+ << Arguments{{u"const QList<X,Y> &"_s, u"list"_s, u"QList<X,Y>{1,2}"_s},
+ {u"int"_s, u"b"_s, u"5"_s},
+ {u"..."_s, {}, {}}};
}
void TestAddFunction::testAddFunctionTypeParser()
diff --git a/sources/shiboken6/ApiExtractor/tests/testaddfunction.h b/sources/shiboken6/ApiExtractor/tests/testaddfunction.h
index 195633030..77339609f 100644
--- a/sources/shiboken6/ApiExtractor/tests/testaddfunction.h
+++ b/sources/shiboken6/ApiExtractor/tests/testaddfunction.h
@@ -1,34 +1,9 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TESTADDFUNCTION_H
#define TESTADDFUNCTION_H
-#include <QObject>
+#include <QtCore/QObject>
class TestAddFunction : public QObject
{
diff --git a/sources/shiboken6/ApiExtractor/tests/testarrayargument.cpp b/sources/shiboken6/ApiExtractor/tests/testarrayargument.cpp
index 22cf7ab40..6e1820bed 100644
--- a/sources/shiboken6/ApiExtractor/tests/testarrayargument.cpp
+++ b/sources/shiboken6/ApiExtractor/tests/testarrayargument.cpp
@@ -1,48 +1,30 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "testarrayargument.h"
-#include <QtTest/QTest>
#include "testutil.h"
+#include <abstractmetaargument.h>
#include <abstractmetaenum.h>
#include <abstractmetafunction.h>
#include <abstractmetalang.h>
-#include <typesystem.h>
+#include <abstractmetatype.h>
+#include <primitivetypeentry.h>
#include <parser/enumvalue.h>
+#include <qtcompat.h>
+
+#include <QtTest/QTest>
+
+using namespace Qt::StringLiterals;
+
void TestArrayArgument::testArrayArgumentWithSizeDefinedByInteger()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
struct A {\n\
enum SomeEnum { Value0, Value1, NValues };\n\
void method(double[3]);\n\
};\n";
- const char* xmlCode = "\
+ const char xmlCode[] = "\
<typesystem package='Foo'>\n\
<primitive-type name='double'/>\n\
<object-type name='A'>\n\
@@ -52,19 +34,19 @@ void TestArrayArgument::testArrayArgumentWithSizeDefinedByInteger()
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
QVERIFY(!builder.isNull());
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(builder->classes(), QLatin1String("A"));
+ const auto classA = AbstractMetaClass::findClass(builder->classes(), "A");
QVERIFY(classA);
const AbstractMetaArgument &arg = classA->functions().constLast()->arguments().constFirst();
QVERIFY(arg.type().isArray());
QCOMPARE(arg.type().arrayElementCount(), 3);
- QCOMPARE(arg.type().arrayElementType()->name(), QLatin1String("double"));
+ QCOMPARE(arg.type().arrayElementType()->name(), u"double");
}
-static QString functionMinimalSignature(const AbstractMetaClass *c, const QString &name)
+static QString functionMinimalSignature(const AbstractMetaClassCPtr &c, const QString &name)
{
const auto f = c->findFunction(name);
- return f.isNull() ? QString() : f->minimalSignature();
+ return f ? f->minimalSignature() : QString();
}
void TestArrayArgument::testArraySignature()
@@ -90,33 +72,33 @@ void TestArrayArgument::testArraySignature()
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
QVERIFY(!builder.isNull());
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(builder->classes(), QLatin1String("A"));
- QCOMPARE(functionMinimalSignature(classA, QLatin1String("mi1")),
- QLatin1String("mi1(int[5])"));
- QCOMPARE(functionMinimalSignature(classA, QLatin1String("mi1c")),
- QLatin1String("mi1c(const int[5])"));
- QCOMPARE(functionMinimalSignature(classA, QLatin1String("mi1cu")),
- QLatin1String("mi1cu(const int[])"));
- QCOMPARE(functionMinimalSignature(classA, QLatin1String("mc1cu")),
- QLatin1String("mc1cu(const char*)"));
- QCOMPARE(functionMinimalSignature(classA, QLatin1String("mc1cup")),
- QLatin1String("mc1cup(const char*[])"));
- QCOMPARE(functionMinimalSignature(classA, QLatin1String("muc2")),
- QLatin1String("muc2(unsigned char*[2][3])"));
- QCOMPARE(functionMinimalSignature(classA, QLatin1String("mc2c")),
- QLatin1String("mc2c(const char*[5][6])"));
- QCOMPARE(functionMinimalSignature(classA, QLatin1String("mc2cu")),
- QLatin1String("mc2cu(const char[][2])"));
+ const auto classA = AbstractMetaClass::findClass(builder->classes(), "A");
+ QCOMPARE(functionMinimalSignature(classA, u"mi1"_s),
+ u"mi1(int[5])");
+ QCOMPARE(functionMinimalSignature(classA, u"mi1c"_s),
+ u"mi1c(const int[5])");
+ QCOMPARE(functionMinimalSignature(classA, u"mi1cu"_s),
+ u"mi1cu(const int[])");
+ QCOMPARE(functionMinimalSignature(classA, u"mc1cu"_s),
+ u"mc1cu(const char*)");
+ QCOMPARE(functionMinimalSignature(classA, u"mc1cup"_s),
+ u"mc1cup(const char*[])");
+ QCOMPARE(functionMinimalSignature(classA, u"muc2"_s),
+ u"muc2(unsigned char*[2][3])");
+ QCOMPARE(functionMinimalSignature(classA, u"mc2c"_s),
+ u"mc2c(const char*[5][6])");
+ QCOMPARE(functionMinimalSignature(classA, u"mc2cu"_s),
+ u"mc2cu(const char[][2])");
}
void TestArrayArgument::testArrayArgumentWithSizeDefinedByEnumValue()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
struct A {\n\
enum SomeEnum { Value0, Value1, NValues };\n\
void method(double[NValues]);\n\
};\n";
- const char* xmlCode = "\
+ const char xmlCode[] = "\
<typesystem package='Foo'>\n\
<primitive-type name='double'/>\n\
<object-type name='A'>\n\
@@ -126,28 +108,28 @@ void TestArrayArgument::testArrayArgumentWithSizeDefinedByEnumValue()
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
QVERIFY(!builder.isNull());
- AbstractMetaClass *classA = AbstractMetaClass::findClass(builder->classes(), QLatin1String("A"));
+ AbstractMetaClassPtr classA = AbstractMetaClass::findClass(builder->classes(), "A");
QVERIFY(classA);
- auto someEnum = classA->findEnum(QLatin1String("SomeEnum"));
+ auto someEnum = classA->findEnum(u"SomeEnum"_s);
QVERIFY(someEnum.has_value());
- auto nvalues = classA->findEnumValue(QLatin1String("NValues"));
+ auto nvalues = classA->findEnumValue(u"NValues"_s);
QVERIFY(nvalues.has_value());
const AbstractMetaArgument &arg = classA->functions().constLast()->arguments().constFirst();
QVERIFY(arg.type().isArray());
QCOMPARE(arg.type().arrayElementCount(), nvalues->value().value());
- QCOMPARE(arg.type().arrayElementType()->name(), QLatin1String("double"));
+ QCOMPARE(arg.type().arrayElementType()->name(), u"double");
};
void TestArrayArgument::testArrayArgumentWithSizeDefinedByEnumValueFromGlobalEnum()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
enum SomeEnum { Value0, Value1, NValues };\n\
struct A {\n\
void method(double[NValues]);\n\
};\n";
- const char* xmlCode = "\
+ const char xmlCode[] = "\
<typesystem package='Foo'>\n\
<primitive-type name='double'/>\n\
<enum-type name='SomeEnum'/>\n\
@@ -156,8 +138,8 @@ void TestArrayArgument::testArrayArgumentWithSizeDefinedByEnumValueFromGlobalEnu
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(builder->classes(), QLatin1String("A"));
+ QVERIFY(builder);
+ const auto classA = AbstractMetaClass::findClass(builder->classes(), "A");
QVERIFY(classA);
AbstractMetaEnum someEnum = builder->globalEnums().constFirst();
@@ -167,7 +149,7 @@ void TestArrayArgument::testArrayArgumentWithSizeDefinedByEnumValueFromGlobalEnu
const AbstractMetaArgument &arg = classA->functions().constLast()->arguments().constFirst();
QVERIFY(arg.type().isArray());
QCOMPARE(arg.type().arrayElementCount(), nvalues->value().value());
- QCOMPARE(arg.type().arrayElementType()->name(), QLatin1String("double"));
+ QCOMPARE(arg.type().arrayElementType()->name(), u"double");
};
QTEST_APPLESS_MAIN(TestArrayArgument)
diff --git a/sources/shiboken6/ApiExtractor/tests/testarrayargument.h b/sources/shiboken6/ApiExtractor/tests/testarrayargument.h
index 2e58ae6ee..75ef0f792 100644
--- a/sources/shiboken6/ApiExtractor/tests/testarrayargument.h
+++ b/sources/shiboken6/ApiExtractor/tests/testarrayargument.h
@@ -1,34 +1,9 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TESTARRAYARGUMENT_H
#define TESTARRAYARGUMENT_H
-#include <QObject>
+#include <QtCore/QObject>
class TestArrayArgument : public QObject
{
diff --git a/sources/shiboken6/ApiExtractor/tests/testcodeinjection.cpp b/sources/shiboken6/ApiExtractor/tests/testcodeinjection.cpp
index 1d7ba9666..4829e6c33 100644
--- a/sources/shiboken6/ApiExtractor/tests/testcodeinjection.cpp
+++ b/sources/shiboken6/ApiExtractor/tests/testcodeinjection.cpp
@@ -1,40 +1,22 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "testcodeinjection.h"
-#include <QFileInfo>
-#include <QDir>
-#include <QtTest/QTest>
#include "testutil.h"
#include <abstractmetalang.h>
+#include <codesnip.h>
#include <modifications.h>
#include <textstream.h>
-#include <typesystem.h>
+#include <complextypeentry.h>
+#include <valuetypeentry.h>
+
+#include <qtcompat.h>
+
+#include <QtCore/QDir>
+#include <QtCore/QFileInfo>
+#include <QtTest/QTest>
+
+using namespace Qt::StringLiterals;
void TestCodeInjections::testReadFile_data()
{
@@ -59,38 +41,40 @@ void TestCodeInjections::testReadFile()
QFETCH(QString, snippet);
QFETCH(QString, expected);
- const char* cppCode ="struct A {};\n";
+ const char cppCode[] = "struct A {};\n";
int argc = 0;
char *argv[] = {nullptr};
QCoreApplication app(argc, argv);
- QString attribute = QLatin1String("file='") + filePath + QLatin1Char('\'');
+ QString attribute = u"file='"_s + filePath + u'\'';
if (!snippet.isEmpty())
- attribute += QLatin1String(" snippet='") + snippet + QLatin1Char('\'');
+ attribute += u" snippet='"_s + snippet + u'\'';
- QString xmlCode = QLatin1String("\
+ QString xmlCode = u"\
<typesystem package=\"Foo\">\n\
<value-type name='A'>\n\
- <conversion-rule class='target' ") + attribute + QLatin1String("/>\n\
- <inject-code class='target' ") + attribute + QLatin1String("/>\n\
+ <conversion-rule class='target' "_s + attribute + u"/>\n\
+ <inject-code class='target' "_s + attribute + u"/>\n\
<value-type name='B'/>\n\
</value-type>\n\
- </typesystem>\n");
+ </typesystem>\n"_s;
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode.toLocal8Bit().constData()));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
- QCOMPARE(classA->typeEntry()->codeSnips().count(), 1);
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
+ QCOMPARE(classA->typeEntry()->codeSnips().size(), 1);
QString code = classA->typeEntry()->codeSnips().constFirst().code();
QVERIFY(code.indexOf(expected) != -1);
- code = classA->typeEntry()->targetConversionRule();
+ QVERIFY(classA->typeEntry()->isValue());
+ auto vte = std::static_pointer_cast<const ValueTypeEntry>(classA->typeEntry());
+ code = vte->targetConversionRule();
QVERIFY(code.indexOf(expected) != -1);
}
void TestCodeInjections::testInjectWithValidApiVersion()
{
- const char* cppCode ="struct A {};\n";
- const char* xmlCode = "\
+ const char cppCode[] = "struct A {};\n";
+ const char xmlCode[] = "\
<typesystem package='Foo'>\n\
<value-type name='A'>\n\
<inject-code class='target' since='1.0'>\n\
@@ -100,17 +84,17 @@ void TestCodeInjections::testInjectWithValidApiVersion()
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode,
- true, QLatin1String("1.0")));
- QVERIFY(!builder.isNull());
+ true, u"1.0"_s));
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- AbstractMetaClass* classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
- QCOMPARE(classA->typeEntry()->codeSnips().count(), 1);
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
+ QCOMPARE(classA->typeEntry()->codeSnips().size(), 1);
}
void TestCodeInjections::testInjectWithInvalidApiVersion()
{
- const char* cppCode ="struct A {};\n";
- const char* xmlCode = "\
+ const char cppCode[] = "struct A {};\n";
+ const char xmlCode[] = "\
<typesystem package=\"Foo\">\n\
<value-type name='A'>\n\
<inject-code class='target' since='1.0'>\n\
@@ -120,31 +104,28 @@ void TestCodeInjections::testInjectWithInvalidApiVersion()
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode,
- true, QLatin1String("0.1")));
- QVERIFY(!builder.isNull());
+ true, u"0.1"_s));
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
- QCOMPARE(classA->typeEntry()->codeSnips().count(), 0);
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
+ QCOMPARE(classA->typeEntry()->codeSnips().size(), 0);
}
void TestCodeInjections::testTextStream()
{
StringStream str(TextStream::Language::Cpp);
- str << "void foo(int a, int b) {\n";
- {
- Indentation i(str);
- str << "if (a == b)\n" << indent << "return a;\n" << outdent
- << "#if Q_OS_WIN\nprint()\n#endif\nreturn a + b;\n";
- }
- str << "}\n\n// A table\n|"
+ str << "void foo(int a, int b) {\n" << indent
+ << "if (a == b)\n" << indent << "return a;\n" << outdent
+ << "#if Q_OS_WIN\nprint()\n#endif\nreturn a + b;\n" << outdent
+ << "}\n\n// A table\n|"
<< AlignedField("bla", 40, QTextStream::AlignRight) << "|\n|"
<< AlignedField("bla", 40, QTextStream::AlignLeft) << "|\n|"
<< AlignedField(QString(), 40, QTextStream::AlignLeft) << "|\n";
str << "\n2nd table\n|" << AlignedField("bla", 3, QTextStream::AlignLeft)
<< '|' << AlignedField(QString{}, 0, QTextStream::AlignLeft) << "|\n";
-static const char expected[] = R"(void foo(int a, int b) {
+constexpr auto expected = R"(void foo(int a, int b) {
if (a == b)
return a;
#if Q_OS_WIN
@@ -160,9 +141,24 @@ static const char expected[] = R"(void foo(int a, int b) {
2nd table
|bla||
-)";
+)"_L1;
+
+ QCOMPARE(str.toString(), expected);
+}
+
+void TestCodeInjections::testTextStreamRst()
+{
+ // Test that sphinx error: "Inline strong start-string without end-string."
+ // is avoided, that is, characters following a formatting end are escaped.
+
+ StringStream str;
+ str << rstBold << "QObject" << rstBoldOff << "'s properties..."
+ << rstItalic << "some italic" << rstItalicOff << " followed by space.";
+
+ static const char16_t expected[] =
+ uR"(**QObject**\'s properties...*some italic* followed by space.)";
- QCOMPARE(str.toString(), QLatin1String(expected));
+ QCOMPARE(str.toString(), expected);
}
QTEST_APPLESS_MAIN(TestCodeInjections)
diff --git a/sources/shiboken6/ApiExtractor/tests/testcodeinjection.h b/sources/shiboken6/ApiExtractor/tests/testcodeinjection.h
index 05b95a11e..a164ea36e 100644
--- a/sources/shiboken6/ApiExtractor/tests/testcodeinjection.h
+++ b/sources/shiboken6/ApiExtractor/tests/testcodeinjection.h
@@ -1,35 +1,10 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TESTCODEINJECTIONS_H
#define TESTCODEINJECTIONS_H
-#include <QObject>
+#include <QtCore/QObject>
class AbstractMetaBuilder;
@@ -42,6 +17,7 @@ private slots:
void testInjectWithValidApiVersion();
void testInjectWithInvalidApiVersion();
void testTextStream();
+ void testTextStreamRst();
};
#endif
diff --git a/sources/shiboken6/ApiExtractor/tests/testcontainer.cpp b/sources/shiboken6/ApiExtractor/tests/testcontainer.cpp
index 3ee39e4ec..0bb72b3c1 100644
--- a/sources/shiboken6/ApiExtractor/tests/testcontainer.cpp
+++ b/sources/shiboken6/ApiExtractor/tests/testcontainer.cpp
@@ -1,41 +1,17 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "testcontainer.h"
#include <QtTest/QTest>
#include "testutil.h"
#include <abstractmetalang.h>
#include <abstractmetatype.h>
-#include <typesystem.h>
+#include <complextypeentry.h>
+#include <containertypeentry.h>
void TestContainer::testContainerType()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
namespace std {\n\
template<class T>\n\
class list {\n\
@@ -44,7 +20,7 @@ void TestContainer::testContainerType()
}\n\
class A : public std::list<int> {\n\
};\n";
- const char* xmlCode = "\
+ const char xmlCode[] = "\
<typesystem package='Foo'>\n\
<namespace-type name='std' generate='no' />\n\
<container-type name='std::list' type='list' />\n\
@@ -52,21 +28,21 @@ void TestContainer::testContainerType()
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, true));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QCOMPARE(classes.count(), 2);
+ QCOMPARE(classes.size(), 2);
//search for class A
- AbstractMetaClass* classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
QVERIFY(classA);
auto baseContainer = classA->typeEntry()->baseContainerType();
QVERIFY(baseContainer);
- QCOMPARE(reinterpret_cast<const ContainerTypeEntry*>(baseContainer)->containerKind(),
+ QCOMPARE(reinterpret_cast<const ContainerTypeEntry*>(baseContainer.get())->containerKind(),
ContainerTypeEntry::ListContainer);
}
void TestContainer::testListOfValueType()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
namespace std {\n\
template<class T>\n\
class list {\n\
@@ -76,7 +52,7 @@ void TestContainer::testListOfValueType()
class ValueType {};\n\
class A : public std::list<ValueType> {\n\
};\n";
- const char* xmlCode = "\
+ const char xmlCode[] = "\
<typesystem package='Foo'>\n\
<namespace-type name='std' generate='no'/>\n\
<container-type name='std::list' type='list'/>\n\
@@ -85,13 +61,13 @@ void TestContainer::testListOfValueType()
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, true));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QCOMPARE(classes.count(), 3);
+ QCOMPARE(classes.size(), 3);
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
QVERIFY(classA);
- QCOMPARE(classA->templateBaseClassInstantiations().count(), 1);
+ QCOMPARE(classA->templateBaseClassInstantiations().size(), 1);
const AbstractMetaType templateInstanceType =
classA->templateBaseClassInstantiations().constFirst();
diff --git a/sources/shiboken6/ApiExtractor/tests/testcontainer.h b/sources/shiboken6/ApiExtractor/tests/testcontainer.h
index 44e6636aa..3fd23c3f0 100644
--- a/sources/shiboken6/ApiExtractor/tests/testcontainer.h
+++ b/sources/shiboken6/ApiExtractor/tests/testcontainer.h
@@ -1,34 +1,9 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TESTCONTAINER_H
#define TESTCONTAINER_H
-#include <QObject>
+#include <QtCore/QObject>
class TestContainer : public QObject
{
diff --git a/sources/shiboken6/ApiExtractor/tests/testconversionoperator.cpp b/sources/shiboken6/ApiExtractor/tests/testconversionoperator.cpp
index 32071f533..8f2b277af 100644
--- a/sources/shiboken6/ApiExtractor/tests/testconversionoperator.cpp
+++ b/sources/shiboken6/ApiExtractor/tests/testconversionoperator.cpp
@@ -1,38 +1,19 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "testconversionoperator.h"
-#include <QtTest/QTest>
#include "testutil.h"
#include <abstractmetafunction.h>
#include <abstractmetalang.h>
+#include <abstractmetatype.h>
#include <typesystem.h>
+#include <qtcompat.h>
+
+#include <QtTest/QTest>
+
+using namespace Qt::StringLiterals;
+
void TestConversionOperator::testConversionOperator()
{
const char cppCode[] = "\
@@ -52,18 +33,18 @@ void TestConversionOperator::testConversionOperator()
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
- const AbstractMetaClass *classB = AbstractMetaClass::findClass(classes, QLatin1String("B"));
- const AbstractMetaClass *classC = AbstractMetaClass::findClass(classes, QLatin1String("C"));
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
+ const auto classB = AbstractMetaClass::findClass(classes, "B");
+ const auto classC = AbstractMetaClass::findClass(classes, "C");
QVERIFY(classA);
QVERIFY(classB);
QVERIFY(classC);
- QCOMPARE(classA->functions().count(), 2);
- QCOMPARE(classB->functions().count(), 3);
- QCOMPARE(classC->functions().count(), 3);
- QCOMPARE(classA->externalConversionOperators().count(), 2);
+ QCOMPARE(classA->functions().size(), 2);
+ QCOMPARE(classB->functions().size(), 3);
+ QCOMPARE(classC->functions().size(), 3);
+ QCOMPARE(classA->externalConversionOperators().size(), 2);
AbstractMetaFunctionCPtr convOp;
for (const auto &func : classB->functions()) {
@@ -72,7 +53,7 @@ void TestConversionOperator::testConversionOperator()
break;
}
}
- QVERIFY(!convOp.isNull());
+ QVERIFY(convOp);
QVERIFY(classA->externalConversionOperators().contains(convOp));
}
@@ -90,11 +71,11 @@ void TestConversionOperator::testConversionOperatorOfDiscardedClass()
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
QVERIFY(classA);
- QCOMPARE(classA->externalConversionOperators().count(), 0);
+ QCOMPARE(classA->externalConversionOperators().size(), 0);
}
void TestConversionOperator::testRemovedConversionOperator()
@@ -114,16 +95,16 @@ void TestConversionOperator::testRemovedConversionOperator()
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
- const AbstractMetaClass *classB = AbstractMetaClass::findClass(classes, QLatin1String("B"));
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
+ const auto classB = AbstractMetaClass::findClass(classes, "B");
QVERIFY(classA);
QVERIFY(classB);
- QCOMPARE(classA->functions().count(), 2);
- QCOMPARE(classB->functions().count(), 3);
- QCOMPARE(classA->externalConversionOperators().count(), 0);
- QCOMPARE(classA->implicitConversions().count(), 0);
+ QCOMPARE(classA->functions().size(), 2);
+ QCOMPARE(classB->functions().size(), 3);
+ QCOMPARE(classA->externalConversionOperators().size(), 0);
+ QCOMPARE(classA->implicitConversions().size(), 0);
}
void TestConversionOperator::testConversionOperatorReturningReference()
@@ -140,24 +121,24 @@ void TestConversionOperator::testConversionOperatorReturningReference()
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
- const AbstractMetaClass *classB = AbstractMetaClass::findClass(classes, QLatin1String("B"));
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
+ const auto classB = AbstractMetaClass::findClass(classes, "B");
QVERIFY(classA);
QVERIFY(classB);
- QCOMPARE(classA->functions().count(), 2);
- QCOMPARE(classB->functions().count(), 3);
- QCOMPARE(classA->externalConversionOperators().count(), 1);
+ QCOMPARE(classA->functions().size(), 2);
+ QCOMPARE(classB->functions().size(), 3);
+ QCOMPARE(classA->externalConversionOperators().size(), 1);
QCOMPARE(classA->externalConversionOperators().constFirst()->type().cppSignature(),
- QLatin1String("A"));
+ u"A");
QCOMPARE(classA->externalConversionOperators().constFirst()->ownerClass()->name(),
- QLatin1String("B"));
- QCOMPARE(classA->implicitConversions().count(), 1);
+ u"B");
+ QCOMPARE(classA->implicitConversions().size(), 1);
QCOMPARE(classA->implicitConversions().constFirst()->type().cppSignature(),
- QLatin1String("A"));
+ u"A");
QCOMPARE(classA->implicitConversions().constFirst()->ownerClass()->name(),
- QLatin1String("B"));
+ u"B");
}
void TestConversionOperator::testConversionOperatorReturningConstReference()
@@ -174,24 +155,24 @@ void TestConversionOperator::testConversionOperatorReturningConstReference()
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
- const AbstractMetaClass *classB = AbstractMetaClass::findClass(classes, QLatin1String("B"));
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
+ const auto classB = AbstractMetaClass::findClass(classes, "B");
QVERIFY(classA);
QVERIFY(classB);
- QCOMPARE(classA->functions().count(), 2);
- QCOMPARE(classB->functions().count(), 3);
- QCOMPARE(classA->externalConversionOperators().count(), 1);
+ QCOMPARE(classA->functions().size(), 2);
+ QCOMPARE(classB->functions().size(), 3);
+ QCOMPARE(classA->externalConversionOperators().size(), 1);
QCOMPARE(classA->externalConversionOperators().constFirst()->type().cppSignature(),
- QLatin1String("A"));
+ u"A"_s);
QCOMPARE(classA->externalConversionOperators().constFirst()->ownerClass()->name(),
- QLatin1String("B"));
- QCOMPARE(classA->implicitConversions().count(), 1);
+ u"B"_s);
+ QCOMPARE(classA->implicitConversions().size(), 1);
QCOMPARE(classA->implicitConversions().constFirst()->type().cppSignature(),
- QLatin1String("A"));
+ u"A"_s);
QCOMPARE(classA->implicitConversions().constFirst()->ownerClass()->name(),
- QLatin1String("B"));
+ u"B"_s);
}
QTEST_APPLESS_MAIN(TestConversionOperator)
diff --git a/sources/shiboken6/ApiExtractor/tests/testconversionoperator.h b/sources/shiboken6/ApiExtractor/tests/testconversionoperator.h
index b571a57a0..68288d240 100644
--- a/sources/shiboken6/ApiExtractor/tests/testconversionoperator.h
+++ b/sources/shiboken6/ApiExtractor/tests/testconversionoperator.h
@@ -1,34 +1,9 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TESTCONVERSIONOPERATOR_H
#define TESTCONVERSIONOPERATOR_H
-#include <QObject>
+#include <QtCore/QObject>
class TestConversionOperator : public QObject
{
diff --git a/sources/shiboken6/ApiExtractor/tests/testconversionruletag.cpp b/sources/shiboken6/ApiExtractor/tests/testconversionruletag.cpp
index 1f244bd83..b5efd92a6 100644
--- a/sources/shiboken6/ApiExtractor/tests/testconversionruletag.cpp
+++ b/sources/shiboken6/ApiExtractor/tests/testconversionruletag.cpp
@@ -1,64 +1,49 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "testconversionruletag.h"
-#include <QtTest/QTest>
#include "testutil.h"
#include <abstractmetalang.h>
-#include <typesystem.h>
-#include <QFile>
-#include <QTemporaryFile>
+#include <complextypeentry.h>
+#include <customconversion.h>
+#include <primitivetypeentry.h>
+#include <valuetypeentry.h>
+
+#include <qtcompat.h>
+
+#include <QtCore/QFile>
+#include <QtCore/QTemporaryFile>
+#include <QtTest/QTest>
+
+using namespace Qt::StringLiterals;
void TestConversionRuleTag::testConversionRuleTagWithFile()
{
// FIXME PYSIDE7 remove
// temp file used later
- const char conversionData[] = "Hi! I'm a conversion rule.";
+ constexpr auto conversionData = "Hi! I'm a conversion rule."_L1;
QTemporaryFile file;
- file.open();
- QCOMPARE(file.write(conversionData), qint64(sizeof(conversionData)-1));
+ QVERIFY(file.open());
+ QCOMPARE(file.write(conversionData.constData()), conversionData.size());
file.close();
const char cppCode[] = "struct A {};\n";
- QString xmlCode = QLatin1String("\
+ QString xmlCode = u"\
<typesystem package='Foo'>\n\
<value-type name='A'>\n\
- <conversion-rule class='target' file='") + file.fileName() + QLatin1String("'/>\n\
+ <conversion-rule class='target' file='"_s + file.fileName() + u"'/>\n\
</value-type>\n\
- </typesystem>\n");
+ </typesystem>\n"_s;
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode.toLocal8Bit().data()));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
QVERIFY(classA);
- const ComplexTypeEntry* typeEntry = classA->typeEntry();
- QVERIFY(typeEntry->hasTargetConversionRule());
- QCOMPARE(typeEntry->targetConversionRule(), QLatin1String(conversionData));
+ const auto typeEntry = classA->typeEntry();
+ QVERIFY(typeEntry->isValue());
+ auto vte = std::static_pointer_cast<const ValueTypeEntry>(typeEntry);
+ QVERIFY(vte->hasTargetConversionRule());
+ QCOMPARE(vte->targetConversionRule(), conversionData);
}
void TestConversionRuleTag::testConversionRuleTagReplace()
@@ -71,7 +56,7 @@ void TestConversionRuleTag::testConversionRuleTagReplace()
struct B {\n\
A createA();\n\
};\n";
- const char* xmlCode = "\
+ const char xmlCode[] = "\
<typesystem package='Foo'>\n\
<primitive-type name='int'/>\n\
<primitive-type name='char'/>\n\
@@ -100,48 +85,49 @@ void TestConversionRuleTag::testConversionRuleTagReplace()
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
- TypeDatabase* typeDb = TypeDatabase::instance();
- PrimitiveTypeEntry* typeA = typeDb->findPrimitiveType(QLatin1String("A"));
+ QVERIFY(builder);
+ auto *typeDb = TypeDatabase::instance();
+ auto typeA = typeDb->findPrimitiveType(u"A"_s);
QVERIFY(typeA);
- CustomConversion* conversion = typeA->customConversion();
- QVERIFY(conversion);
+ QVERIFY(typeA->hasCustomConversion());
+ auto conversion = typeA->customConversion();
QCOMPARE(typeA, conversion->ownerType());
QCOMPARE(conversion->nativeToTargetConversion().simplified(),
- QLatin1String("DoThis(); return ConvertFromCppToPython(%IN);"));
+ u"DoThis(); return ConvertFromCppToPython(%IN);");
QVERIFY(conversion->replaceOriginalTargetToNativeConversions());
QVERIFY(conversion->hasTargetToNativeConversions());
QCOMPARE(conversion->targetToNativeConversions().size(), 3);
- CustomConversion::TargetToNativeConversion* toNative = conversion->targetToNativeConversions().at(0);
- QVERIFY(toNative);
- QCOMPARE(toNative->sourceTypeName(), QLatin1String("TargetNone"));
- QVERIFY(toNative->isCustomType());
- QCOMPARE(toNative->sourceType(), nullptr);
- QCOMPARE(toNative->sourceTypeCheck(), QLatin1String("%IN == Target_None"));
- QCOMPARE(toNative->conversion().simplified(),
- QLatin1String("DoThat(); DoSomething(); %OUT = A();"));
+ QVERIFY(!conversion->targetToNativeConversions().isEmpty());
+ auto toNative = conversion->targetToNativeConversions().at(0);
+ QCOMPARE(toNative.sourceTypeName(), u"TargetNone");
+ QVERIFY(toNative.isCustomType());
+ QCOMPARE(toNative.sourceType(), nullptr);
+ QCOMPARE(toNative.sourceTypeCheck(), u"%IN == Target_None");
+ QCOMPARE(toNative.conversion().simplified(),
+ u"DoThat(); DoSomething(); %OUT = A();");
+ QVERIFY(conversion->targetToNativeConversions().size() > 1);
toNative = conversion->targetToNativeConversions().at(1);
- QVERIFY(toNative);
- QCOMPARE(toNative->sourceTypeName(), QLatin1String("B"));
- QVERIFY(!toNative->isCustomType());
- TypeEntry* typeB = typeDb->findType(QLatin1String("B"));
+ QCOMPARE(toNative.sourceTypeName(), u"B");
+ QVERIFY(!toNative.isCustomType());
+ auto typeB = typeDb->findType(u"B"_s);
QVERIFY(typeB);
- QCOMPARE(toNative->sourceType(), typeB);
- QCOMPARE(toNative->sourceTypeCheck(), QLatin1String("CheckIfInputObjectIsB(%IN)"));
- QCOMPARE(toNative->conversion().trimmed(), QLatin1String("%OUT = %IN.createA();"));
+ QCOMPARE(toNative.sourceType(), typeB);
+ QCOMPARE(toNative.sourceTypeCheck(), u"CheckIfInputObjectIsB(%IN)");
+ QCOMPARE(toNative.conversion().trimmed(), u"%OUT = %IN.createA();");
+ QVERIFY(conversion->targetToNativeConversions().size() > 2);
toNative = conversion->targetToNativeConversions().at(2);
- QVERIFY(toNative);
- QCOMPARE(toNative->sourceTypeName(), QLatin1String("String"));
- QVERIFY(toNative->isCustomType());
- QCOMPARE(toNative->sourceType(), nullptr);
- QCOMPARE(toNative->sourceTypeCheck(), QLatin1String("String_Check(%IN)"));
- QCOMPARE(toNative->conversion().trimmed(), QLatin1String("%OUT = new A(String_AsString(%IN), String_GetSize(%IN));"));
+ QCOMPARE(toNative.sourceTypeName(), u"String");
+ QVERIFY(toNative.isCustomType());
+ QCOMPARE(toNative.sourceType(), nullptr);
+ QCOMPARE(toNative.sourceTypeCheck(), u"String_Check(%IN)");
+ QCOMPARE(toNative.conversion().trimmed(),
+ u"%OUT = new A(String_AsString(%IN), String_GetSize(%IN));");
}
void TestConversionRuleTag::testConversionRuleTagAdd()
@@ -151,7 +137,7 @@ void TestConversionRuleTag::testConversionRuleTagAdd()
Date();\n\
Date(int, int, int);\n\
};\n";
- const char* xmlCode = "\
+ const char xmlCode[] = "\
<typesystem package='Foo'>\n\
<primitive-type name='int'/>\n\
<value-type name='Date'>\n\
@@ -167,12 +153,14 @@ if (!TargetDateTimeAPI) TargetDateTime_IMPORT;\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(builder->classes(), QLatin1String("Date"));
+ QVERIFY(builder);
+ const auto classA = AbstractMetaClass::findClass(builder->classes(), "Date");
QVERIFY(classA);
- CustomConversion* conversion = classA->typeEntry()->customConversion();
- QVERIFY(conversion);
+ QVERIFY(classA->typeEntry()->isValue());
+ auto vte = std::static_pointer_cast<const ValueTypeEntry>(classA->typeEntry());
+ QVERIFY(vte->hasCustomConversion());
+ auto conversion = vte->customConversion();
QCOMPARE(conversion->nativeToTargetConversion(), QString());
@@ -180,21 +168,21 @@ if (!TargetDateTimeAPI) TargetDateTime_IMPORT;\n\
QVERIFY(conversion->hasTargetToNativeConversions());
QCOMPARE(conversion->targetToNativeConversions().size(), 1);
- CustomConversion::TargetToNativeConversion *toNative =
- conversion->targetToNativeConversions().constFirst();
- QVERIFY(toNative);
- QCOMPARE(toNative->sourceTypeName(), QLatin1String("TargetDate"));
- QVERIFY(toNative->isCustomType());
- QCOMPARE(toNative->sourceType(), nullptr);
- QCOMPARE(toNative->sourceTypeCheck(), QLatin1String("TargetDate_Check(%IN)"));
- QCOMPARE(toNative->conversion().trimmed(),
- QLatin1String("if (!TargetDateTimeAPI) TargetDateTime_IMPORT;\n%OUT = new Date(TargetDate_Day(%IN), TargetDate_Month(%IN), TargetDate_Year(%IN));"));
+ QVERIFY(!conversion->targetToNativeConversions().isEmpty());
+ const auto &toNative = conversion->targetToNativeConversions().constFirst();
+ QCOMPARE(toNative.sourceTypeName(), u"TargetDate");
+ QVERIFY(toNative.isCustomType());
+ QCOMPARE(toNative.sourceType(), nullptr);
+ QCOMPARE(toNative.sourceTypeCheck(), u"TargetDate_Check(%IN)");
+ QCOMPARE(toNative.conversion().trimmed(),
+ uR"(if (!TargetDateTimeAPI) TargetDateTime_IMPORT;
+%OUT = new Date(TargetDate_Day(%IN), TargetDate_Month(%IN), TargetDate_Year(%IN));)");
}
void TestConversionRuleTag::testConversionRuleTagWithInsertTemplate()
{
const char cppCode[] = "struct A {};";
- const char* xmlCode = "\
+ const char xmlCode[] = "\
<typesystem package='Foo'>\n\
<primitive-type name='int'/>\n\
<!-- single line -->\n\
@@ -228,25 +216,25 @@ void TestConversionRuleTag::testConversionRuleTagWithInsertTemplate()
"// TEMPLATE - target_to_native - END";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
- TypeDatabase* typeDb = TypeDatabase::instance();
- PrimitiveTypeEntry* typeA = typeDb->findPrimitiveType(QLatin1String("A"));
+ QVERIFY(builder);
+ auto *typeDb = TypeDatabase::instance();
+ auto typeA = typeDb->findPrimitiveType(u"A"_s);
QVERIFY(typeA);
- CustomConversion* conversion = typeA->customConversion();
- QVERIFY(conversion);
+ QVERIFY(typeA->hasCustomConversion());
+ auto conversion = typeA->customConversion();
QCOMPARE(typeA, conversion->ownerType());
QCOMPARE(conversion->nativeToTargetConversion().trimmed(),
- QLatin1String(nativeToTargetExpected));
+ QLatin1StringView(nativeToTargetExpected));
QVERIFY(conversion->hasTargetToNativeConversions());
QCOMPARE(conversion->targetToNativeConversions().size(), 1);
- CustomConversion::TargetToNativeConversion* toNative = conversion->targetToNativeConversions().constFirst();
- QVERIFY(toNative);
- QCOMPARE(toNative->conversion().trimmed(),
- QLatin1String(targetToNativeExpected));
+ QVERIFY(!conversion->targetToNativeConversions().isEmpty());
+ const auto &toNative = conversion->targetToNativeConversions().constFirst();
+ QCOMPARE(toNative.conversion().trimmed(),
+ QLatin1StringView(targetToNativeExpected));
}
QTEST_APPLESS_MAIN(TestConversionRuleTag)
diff --git a/sources/shiboken6/ApiExtractor/tests/testconversionruletag.h b/sources/shiboken6/ApiExtractor/tests/testconversionruletag.h
index 894bd3d71..64d496cc3 100644
--- a/sources/shiboken6/ApiExtractor/tests/testconversionruletag.h
+++ b/sources/shiboken6/ApiExtractor/tests/testconversionruletag.h
@@ -1,34 +1,10 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TESTCONVERSIONRULE_H
#define TESTCONVERSIONRULE_H
-#include <QObject>
+
+#include <QtCore/QObject>
class TestConversionRuleTag : public QObject
{
diff --git a/sources/shiboken6/ApiExtractor/tests/testctorinformation.cpp b/sources/shiboken6/ApiExtractor/tests/testctorinformation.cpp
index 7718d3df6..c3a3ebef0 100644
--- a/sources/shiboken6/ApiExtractor/tests/testctorinformation.cpp
+++ b/sources/shiboken6/ApiExtractor/tests/testctorinformation.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "testctorinformation.h"
#include "abstractmetabuilder.h"
@@ -35,41 +10,47 @@
void TestCtorInformation::testCtorIsPrivate()
{
- const char* cppCode = "class Control { public: Control() {} };\n\
+ const char cppCode[] = "class Control { public: Control() {} };\n\
class Subject { private: Subject() {} };\n\
class CtorLess { };\n";
- const char* xmlCode = "<typesystem package='Foo'>\n\
+ const char xmlCode[] = "<typesystem package='Foo'>\n\
<value-type name='Control'/>\n\
<object-type name='Subject'/>\n\
<value-type name='CtorLess'/>\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QCOMPARE(classes.count(), 3);
- QCOMPARE(AbstractMetaClass::findClass(classes, QLatin1String("Control"))->hasNonPrivateConstructor(), true);
- QCOMPARE(AbstractMetaClass::findClass(classes, QLatin1String("Subject"))->hasNonPrivateConstructor(), false);
- QCOMPARE(AbstractMetaClass::findClass(classes, QLatin1String("CtorLess"))->hasNonPrivateConstructor(), true);
+ QCOMPARE(classes.size(), 3);
+ auto klass = AbstractMetaClass::findClass(classes, "Control");
+ QVERIFY(klass);
+ QVERIFY(klass->hasNonPrivateConstructor());
+ klass = AbstractMetaClass::findClass(classes, "Subject");
+ QVERIFY(klass);
+ QVERIFY(!klass->hasNonPrivateConstructor());
+ klass = AbstractMetaClass::findClass(classes, "CtorLess");
+ QVERIFY(klass);
+ QVERIFY(klass->hasNonPrivateConstructor());
}
void TestCtorInformation::testHasNonPrivateCtor()
{
- const char* cppCode = "template<typename T>\n\
+ const char cppCode[] = "template<typename T>\n\
struct Base { Base(double) {} };\n\
typedef Base<int> Derived;\n";
- const char* xmlCode = "<typesystem package='Foo'>\n\
+ const char xmlCode[] = "<typesystem package='Foo'>\n\
<primitive-type name='int'/>\n\
<primitive-type name='double'/>\n\
<object-type name='Base' generate='no'/>\n\
<object-type name='Derived'/>\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QCOMPARE(classes.count(), 2);
- const AbstractMetaClass *base = AbstractMetaClass::findClass(classes, QLatin1String("Base"));
+ QCOMPARE(classes.size(), 2);
+ const auto base = AbstractMetaClass::findClass(classes, "Base");
QCOMPARE(base->hasNonPrivateConstructor(), true);
- const AbstractMetaClass *derived = AbstractMetaClass::findClass(classes, QLatin1String("Derived"));
+ const auto derived = AbstractMetaClass::findClass(classes, "Derived");
QCOMPARE(derived->hasNonPrivateConstructor(), true);
}
diff --git a/sources/shiboken6/ApiExtractor/tests/testctorinformation.h b/sources/shiboken6/ApiExtractor/tests/testctorinformation.h
index ee655d450..58f1648e4 100644
--- a/sources/shiboken6/ApiExtractor/tests/testctorinformation.h
+++ b/sources/shiboken6/ApiExtractor/tests/testctorinformation.h
@@ -1,35 +1,10 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TESTCTORINFORMATION_H
#define TESTCTORINFORMATION_H
-#include <QObject>
+#include <QtCore/QObject>
class AbstractMetaBuilder;
diff --git a/sources/shiboken6/ApiExtractor/tests/testdroptypeentries.cpp b/sources/shiboken6/ApiExtractor/tests/testdroptypeentries.cpp
index 303532b65..16f50e69d 100644
--- a/sources/shiboken6/ApiExtractor/tests/testdroptypeentries.cpp
+++ b/sources/shiboken6/ApiExtractor/tests/testdroptypeentries.cpp
@@ -1,40 +1,20 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "testdroptypeentries.h"
-#include <QtTest/QTest>
#include "testutil.h"
#include <abstractmetaenum.h>
#include <abstractmetalang.h>
#include <typesystem.h>
#include <conditionalstreamreader.h>
-static const char* cppCode ="\
+#include <qtcompat.h>
+
+#include <QtTest/QTest>
+
+using namespace Qt::StringLiterals;
+
+static const char cppCode[] = "\
struct ValueA {};\n\
struct ValueB {};\n\
struct ObjectA {};\n\
@@ -49,7 +29,7 @@ static const char* cppCode ="\
void funcA();\n\
void funcB();\n";
-static const char* xmlCode = "\
+static const char xmlCode[] = "\
<typesystem package='Foo'>\n\
<value-type name='ValueA'/>\n\
<value-type name='ValueB'/>\n\
@@ -68,61 +48,61 @@ static const char* xmlCode = "\
void TestDropTypeEntries::testDropEntries()
{
- const QStringList droppedEntries{QLatin1String("Foo.ValueB"),
- QLatin1String("ObjectB"), // Check whether module can be omitted
- QLatin1String("Foo.NamespaceA.InnerClassA"),
- QLatin1String("Foo.NamespaceB"), QLatin1String("Foo.EnumB"),
- QLatin1String("Foo.funcB()"),
- QLatin1String("Foo.NamespaceA.InnerNamespaceA")};
+ const QStringList droppedEntries{u"Foo.ValueB"_s,
+ u"ObjectB"_s, // Check whether module can be omitted
+ u"Foo.NamespaceA.InnerClassA"_s,
+ u"Foo.NamespaceB"_s, u"Foo.EnumB"_s,
+ u"Foo.funcB()"_s,
+ u"Foo.NamespaceA.InnerNamespaceA"_s};
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false,
QString(), droppedEntries));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QVERIFY(AbstractMetaClass::findClass(classes, QLatin1String("ValueA")));
- QVERIFY(!AbstractMetaClass::findClass(classes, QLatin1String("ValueB")));
- QVERIFY(AbstractMetaClass::findClass(classes, QLatin1String("ObjectA")));
- QVERIFY(!AbstractMetaClass::findClass(classes, QLatin1String("ObjectB")));
- QVERIFY(AbstractMetaClass::findClass(classes, QLatin1String("NamespaceA")));
- QVERIFY(!AbstractMetaClass::findClass(classes, QLatin1String("NamespaceA::InnerClassA")));
- QVERIFY(!AbstractMetaClass::findClass(classes, QLatin1String("NamespaceB")));
+ QVERIFY(AbstractMetaClass::findClass(classes, "ValueA"));
+ QVERIFY(!AbstractMetaClass::findClass(classes, "ValueB"));
+ QVERIFY(AbstractMetaClass::findClass(classes, "ObjectA"));
+ QVERIFY(!AbstractMetaClass::findClass(classes, "ObjectB"));
+ QVERIFY(AbstractMetaClass::findClass(classes, "NamespaceA"));
+ QVERIFY(!AbstractMetaClass::findClass(classes, "NamespaceA::InnerClassA"));
+ QVERIFY(!AbstractMetaClass::findClass(classes, "NamespaceB"));
AbstractMetaEnumList globalEnums = builder->globalEnums();
- QCOMPARE(globalEnums.count(), 1);
- QCOMPARE(globalEnums.constFirst().name(), QLatin1String("EnumA"));
+ QCOMPARE(globalEnums.size(), 1);
+ QCOMPARE(globalEnums.constFirst().name(), u"EnumA");
- TypeDatabase* td = TypeDatabase::instance();
- QVERIFY(td->findType(QLatin1String("funcA")));
- QVERIFY(!td->findType(QLatin1String("funcB")));
+ auto *td = TypeDatabase::instance();
+ QVERIFY(td->findType(u"funcA"_s));
+ QVERIFY(!td->findType(u"funcB"_s));
}
void TestDropTypeEntries::testDontDropEntries()
{
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QVERIFY(AbstractMetaClass::findClass(classes, QLatin1String("ValueA")));
- QVERIFY(AbstractMetaClass::findClass(classes, QLatin1String("ValueB")));
- QVERIFY(AbstractMetaClass::findClass(classes, QLatin1String("ObjectA")));
- QVERIFY(AbstractMetaClass::findClass(classes, QLatin1String("ObjectB")));
- QVERIFY(AbstractMetaClass::findClass(classes, QLatin1String("NamespaceA")));
- QVERIFY(AbstractMetaClass::findClass(classes, QLatin1String("NamespaceA::InnerClassA")));
- QVERIFY(AbstractMetaClass::findClass(classes, QLatin1String("NamespaceB")));
+ QVERIFY(AbstractMetaClass::findClass(classes, "ValueA"));
+ QVERIFY(AbstractMetaClass::findClass(classes, "ValueB"));
+ QVERIFY(AbstractMetaClass::findClass(classes, "ObjectA"));
+ QVERIFY(AbstractMetaClass::findClass(classes, "ObjectB"));
+ QVERIFY(AbstractMetaClass::findClass(classes, "NamespaceA"));
+ QVERIFY(AbstractMetaClass::findClass(classes, "NamespaceA::InnerClassA"));
+ QVERIFY(AbstractMetaClass::findClass(classes, "NamespaceB"));
QCOMPARE(builder->globalEnums().size(), 2);
- TypeDatabase* td = TypeDatabase::instance();
- QVERIFY(td->findType(QLatin1String("funcA")));
- QVERIFY(td->findType(QLatin1String("funcB")));
+ auto *td = TypeDatabase::instance();
+ QVERIFY(td->findType(u"funcA"_s));
+ QVERIFY(td->findType(u"funcB"_s));
}
-static const char* cppCode2 ="\
+static const char cppCode2[] = "\
struct ValueA {\n\
void func();\n\
};\n";
-static const char* xmlCode2 = R"(
+static const char xmlCode2[] = R"(
<typesystem package='Foo'>
<value-type name='ValueA'>
<modify-function signature='func()' remove='all'/>
@@ -132,24 +112,24 @@ static const char* xmlCode2 = R"(
void TestDropTypeEntries::testDropEntryWithChildTags()
{
- QStringList droppedEntries(QLatin1String("Foo.ValueA"));
+ QStringList droppedEntries(u"Foo.ValueA"_s);
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode2, xmlCode2, false,
QString(), droppedEntries));
- QVERIFY(!builder.isNull());
- QVERIFY(!AbstractMetaClass::findClass(builder->classes(), QLatin1String("ValueA")));
+ QVERIFY(builder);
+ QVERIFY(!AbstractMetaClass::findClass(builder->classes(), "ValueA"));
}
void TestDropTypeEntries::testDontDropEntryWithChildTags()
{
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode2, xmlCode2, false));
- QVERIFY(!builder.isNull());
- QVERIFY(AbstractMetaClass::findClass(builder->classes(), QLatin1String("ValueA")));
+ QVERIFY(builder);
+ QVERIFY(AbstractMetaClass::findClass(builder->classes(), "ValueA"));
}
void TestDropTypeEntries::testConditionalParsing_data()
{
- const QString xml = QStringLiteral(R"(<?xml version="1.0" encoding="UTF-8"?>
+ const QString xml = R"(<?xml version="1.0" encoding="UTF-8"?>
<root>
<tag1>text</tag1>
<?if keyword1?>
@@ -165,17 +145,17 @@ void TestDropTypeEntries::testConditionalParsing_data()
<?if !keyword99?> <!-- Exclusion only -->
<tag6>text</tag6>
<?endif?>
-</root>)");
-
- const QString root = QStringLiteral("root");
- const QString tag1 = QStringLiteral("tag1");
- const QString tag2 = QStringLiteral("tag2");
- const QString tag3 = QStringLiteral("tag3");
- const QString tag4 = QStringLiteral("tag4");
- const QString tag5 = QStringLiteral("tag5");
- const QString tag6 = QStringLiteral("tag6");
- const QString keyword1 = QStringLiteral("keyword1");
- const QString keyword2 = QStringLiteral("keyword2");
+</root>)"_L1;
+
+ constexpr auto root = "root"_L1;
+ constexpr auto tag1 = "tag1"_L1;
+ constexpr auto tag2 = "tag2"_L1;
+ constexpr auto tag3 = "tag3"_L1;
+ constexpr auto tag4 = "tag4"_L1;
+ constexpr auto tag5 = "tag5"_L1;
+ constexpr auto tag6 = "tag6"_L1;
+ constexpr auto keyword1 = "keyword1"_L1;
+ constexpr auto keyword2 = "keyword2"_L1;
QTest::addColumn<QString>("xml");
QTest::addColumn<QStringList>("keywords");
@@ -224,11 +204,11 @@ void TestDropTypeEntries::testConditionalParsing()
void TestDropTypeEntries::testEntityParsing()
{
- const QString xml = QStringLiteral(R"(<?xml version="1.0" encoding="UTF-8"?>
+ const QString xml = R"(<?xml version="1.0" encoding="UTF-8"?>
<root>
<?entity testentity word1 word2?>
<text>bla &testentity;</text>
-</root>)");
+</root>)"_L1;
QString actual;
ConditionalStreamReader reader(xml);
diff --git a/sources/shiboken6/ApiExtractor/tests/testdroptypeentries.h b/sources/shiboken6/ApiExtractor/tests/testdroptypeentries.h
index d163b594d..98717bd21 100644
--- a/sources/shiboken6/ApiExtractor/tests/testdroptypeentries.h
+++ b/sources/shiboken6/ApiExtractor/tests/testdroptypeentries.h
@@ -1,35 +1,10 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TESTDROPTYPEENTRIES_H
#define TESTDROPTYPEENTRIES_H
-#include <QObject>
+#include <QtCore/QObject>
class TestDropTypeEntries : public QObject
{
diff --git a/sources/shiboken6/ApiExtractor/tests/testdtorinformation.cpp b/sources/shiboken6/ApiExtractor/tests/testdtorinformation.cpp
index 0eee8af24..2152d39de 100644
--- a/sources/shiboken6/ApiExtractor/tests/testdtorinformation.cpp
+++ b/sources/shiboken6/ApiExtractor/tests/testdtorinformation.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "testdtorinformation.h"
#include "abstractmetabuilder.h"
@@ -35,83 +10,147 @@
void TestDtorInformation::testDtorIsPrivate()
{
- const char* cppCode ="class Control { public: ~Control() {} }; class Subject { private: ~Subject() {} };";
- const char* xmlCode = "<typesystem package=\"Foo\"><value-type name=\"Control\"/><value-type name=\"Subject\"/></typesystem>";
+ const char cppCode[] = R"(class Control {
+public:
+ ~Control() {}
+};
+class Subject {
+private:
+ ~Subject() {}
+};
+)";
+ const char xmlCode[] = R"(<typesystem package="Foo">
+ <value-type name="Control"/>
+ <value-type name="Subject"/>
+</typesystem>)";
+
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QCOMPARE(classes.count(), 2);
- QCOMPARE(AbstractMetaClass::findClass(classes, QLatin1String("Control"))->hasPrivateDestructor(), false);
- QCOMPARE(AbstractMetaClass::findClass(classes, QLatin1String("Subject"))->hasPrivateDestructor(), true);
+ QCOMPARE(classes.size(), 2);
+ auto klass = AbstractMetaClass::findClass(classes, "Control");
+ QVERIFY(klass);
+ QVERIFY(!klass->hasPrivateDestructor());
+ klass = AbstractMetaClass::findClass(classes, "Subject");
+ QVERIFY(klass);
+ QVERIFY(klass->hasPrivateDestructor());
}
void TestDtorInformation::testDtorIsProtected()
{
- const char* cppCode ="class Control { public: ~Control() {} }; class Subject { protected: ~Subject() {} };";
- const char* xmlCode = "<typesystem package=\"Foo\"><value-type name=\"Control\"/><value-type name=\"Subject\"/></typesystem>";
+ const char cppCode[] = R"(class Control {
+public:
+ ~Control() {}
+};
+class Subject {
+protected:
+ ~Subject() {}
+};
+)";
+ const char xmlCode[] = R"(<typesystem package="Foo">
+ <value-type name="Control"/>
+ <value-type name="Subject"/>
+</typesystem>)";
+
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QCOMPARE(classes.count(), 2);
- QCOMPARE(AbstractMetaClass::findClass(classes, QLatin1String("Control"))->hasProtectedDestructor(), false);
- QCOMPARE(AbstractMetaClass::findClass(classes, QLatin1String("Subject"))->hasProtectedDestructor(), true);
+ QCOMPARE(classes.size(), 2);
+ auto klass = AbstractMetaClass::findClass(classes, "Control");
+ QVERIFY(klass);
+ QVERIFY(!klass->hasProtectedDestructor());
+ klass = AbstractMetaClass::findClass(classes, "Subject");
+ QVERIFY(klass);
+ QVERIFY(klass->hasProtectedDestructor());
}
void TestDtorInformation::testDtorIsVirtual()
{
- const char* cppCode ="class Control { public: ~Control() {} }; class Subject { protected: virtual ~Subject() {} };";
- const char* xmlCode = "<typesystem package=\"Foo\"><value-type name=\"Control\"/><value-type name=\"Subject\"/></typesystem>";
+ const char cppCode[] = R"(class Control {
+public:
+ ~Control() {}
+};
+class Subject {
+protected:
+ virtual ~Subject() {}
+};
+)";
+ const char xmlCode[] = R"(<typesystem package="Foo">
+ <value-type name="Control"/>
+ <value-type name="Subject"/>
+</typesystem>)";
+
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QCOMPARE(classes.count(), 2);
- QCOMPARE(AbstractMetaClass::findClass(classes, QLatin1String("Control"))->hasVirtualDestructor(), false);
- QCOMPARE(AbstractMetaClass::findClass(classes, QLatin1String("Subject"))->hasVirtualDestructor(), true);
+ QCOMPARE(classes.size(), 2);
+ auto klass = AbstractMetaClass::findClass(classes, "Control");
+ QVERIFY(klass);
+ QVERIFY(!klass->hasVirtualDestructor());
+ klass = AbstractMetaClass::findClass(classes, "Subject");
+ QVERIFY(klass);
+ QVERIFY(klass->hasVirtualDestructor());
}
void TestDtorInformation::testDtorFromBaseIsVirtual()
{
- const char* cppCode = R"CPP(class ControlBase { public: ~ControlBase() {} };
+ const char cppCode[] = R"CPP(class ControlBase { public: ~ControlBase() {} };
class Control : public ControlBase {};
class SubjectBase { public: virtual ~SubjectBase() {} };
class Subject : public SubjectBase {};
)CPP";
- const char* xmlCode = R"XML(<typesystem package="Foo"><value-type name="ControlBase"/>
+ const char xmlCode[] = R"XML(<typesystem package="Foo"><value-type name="ControlBase"/>
<value-type name="Control"/>"
<value-type name="SubjectBase"/>"
<value-type name="Subject"/>
</typesystem>
)XML";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QCOMPARE(classes.count(), 4);
+ QCOMPARE(classes.size(), 4);
- auto klass = AbstractMetaClass::findClass(classes, QLatin1String("ControlBase"));
+ auto klass = AbstractMetaClass::findClass(classes, "ControlBase");
QVERIFY(klass);
QVERIFY(!klass->hasVirtualDestructor());
- klass = AbstractMetaClass::findClass(classes, QLatin1String("Control"));
+ klass = AbstractMetaClass::findClass(classes, "Control");
QVERIFY(klass);
QVERIFY(!klass->hasVirtualDestructor());
- klass = AbstractMetaClass::findClass(classes, QLatin1String("SubjectBase"));
+ klass = AbstractMetaClass::findClass(classes, "SubjectBase");
QVERIFY(klass);
QVERIFY(klass->hasVirtualDestructor());
- klass = AbstractMetaClass::findClass(classes, QLatin1String("Subject"));
+ klass = AbstractMetaClass::findClass(classes, "Subject");
QVERIFY(klass);
QVERIFY(klass->hasVirtualDestructor());
}
void TestDtorInformation::testClassWithVirtualDtorIsPolymorphic()
{
- const char* cppCode ="class Control { public: virtual ~Control() {} }; class Subject { protected: virtual ~Subject() {} };";
- const char* xmlCode = "<typesystem package=\"Foo\"><value-type name=\"Control\"/><value-type name=\"Subject\"/></typesystem>";
+ const char cppCode[] = R"(class Control {
+public:
+ virtual ~Control() {}
+};
+class Subject {
+protected:
+ virtual ~Subject() {}
+};
+)";
+ const char xmlCode[] = R"(<typesystem package="Foo">
+ <value-type name="Control"/>
+ <value-type name="Subject"/>
+</typesystem>)";
+
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QCOMPARE(classes.count(), 2);
- QCOMPARE(AbstractMetaClass::findClass(classes, QLatin1String("Control"))->isPolymorphic(), true);
- QCOMPARE(AbstractMetaClass::findClass(classes, QLatin1String("Subject"))->isPolymorphic(), true);
+ QCOMPARE(classes.size(), 2);
+ auto klass = AbstractMetaClass::findClass(classes, "Control");
+ QVERIFY(klass);
+ QVERIFY(klass->isPolymorphic());
+ klass = AbstractMetaClass::findClass(classes, "Subject");
+ QVERIFY(klass);
+ QVERIFY(klass->isPolymorphic());
}
QTEST_APPLESS_MAIN(TestDtorInformation)
diff --git a/sources/shiboken6/ApiExtractor/tests/testdtorinformation.h b/sources/shiboken6/ApiExtractor/tests/testdtorinformation.h
index 0a57dd8d1..0f8cb59b3 100644
--- a/sources/shiboken6/ApiExtractor/tests/testdtorinformation.h
+++ b/sources/shiboken6/ApiExtractor/tests/testdtorinformation.h
@@ -1,35 +1,10 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TESTDTORINFORMATION_H
#define TESTDTORINFORMATION_H
-#include <QObject>
+#include <QtCore/QObject>
class AbstractMetaBuilder;
diff --git a/sources/shiboken6/ApiExtractor/tests/testenum.cpp b/sources/shiboken6/ApiExtractor/tests/testenum.cpp
index df744e994..c7c2b8b3b 100644
--- a/sources/shiboken6/ApiExtractor/tests/testenum.cpp
+++ b/sources/shiboken6/ApiExtractor/tests/testenum.cpp
@@ -1,43 +1,26 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "testenum.h"
-#include <QtTest/QTest>
#include "testutil.h"
+#include <abstractmetaargument.h>
#include <abstractmetaenum.h>
#include <abstractmetafunction.h>
#include <abstractmetalang.h>
-#include <typesystem.h>
+#include <abstractmetabuilder_p.h>
+#include <enumtypeentry.h>
+#include <flagstypeentry.h>
#include <parser/enumvalue.h>
+#include <qtcompat.h>
+
+#include <QtTest/QTest>
+
+using namespace Qt::StringLiterals;
+
void TestEnum::testEnumCppSignature()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
enum GlobalEnum { A, B };\n\
\n\
struct A {\n\
@@ -45,7 +28,7 @@ void TestEnum::testEnumCppSignature()
void method(ClassEnum);\n\
};\n\
void func(A::ClassEnum);\n";
- const char* xmlCode = "\
+ const char xmlCode[] = "\
<typesystem package=\"Foo\">\n\
<enum-type name='GlobalEnum'/>\n\
<value-type name='A'>\n\
@@ -55,52 +38,52 @@ void TestEnum::testEnumCppSignature()
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QCOMPARE(classes.count(), 1);
+ QCOMPARE(classes.size(), 1);
AbstractMetaEnumList globalEnums = builder->globalEnums();
- QCOMPARE(globalEnums.count(), 1);
- QCOMPARE(globalEnums.constFirst().name(), QLatin1String("GlobalEnum"));
+ QCOMPARE(globalEnums.size(), 1);
+ QCOMPARE(globalEnums.constFirst().name(), u"GlobalEnum");
// enum as parameter of a function
const auto functions = builder->globalFunctions();
- QCOMPARE(functions.count(), 1);
- QCOMPARE(functions.constFirst()->arguments().count(), 1);
+ QCOMPARE(functions.size(), 1);
+ QCOMPARE(functions.constFirst()->arguments().size(), 1);
QCOMPARE(functions.constFirst()->arguments().constFirst().type().cppSignature(),
- QLatin1String("A::ClassEnum"));
+ u"A::ClassEnum");
// enum as parameter of a method
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
- QCOMPARE(classA->enums().count(), 1);
- const auto funcs = classA->queryFunctionsByName(QLatin1String("method"));
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
+ QCOMPARE(classA->enums().size(), 1);
+ const auto funcs = classA->queryFunctionsByName(u"method"_s);
QVERIFY(!funcs.isEmpty());
const auto method = funcs.constFirst();
AbstractMetaArgument arg = method->arguments().constFirst();
- QCOMPARE(arg.type().name(), QLatin1String("ClassEnum"));
- QCOMPARE(arg.type().cppSignature(), QLatin1String("A::ClassEnum"));
- QCOMPARE(functions.constFirst()->arguments().count(), 1);
+ QCOMPARE(arg.type().name(), u"ClassEnum");
+ QCOMPARE(arg.type().cppSignature(), u"A::ClassEnum");
+ QCOMPARE(functions.constFirst()->arguments().size(), 1);
arg = functions.constFirst()->arguments().constFirst();
- QCOMPARE(arg.type().name(), QLatin1String("ClassEnum"));
- QCOMPARE(arg.type().cppSignature(), QLatin1String("A::ClassEnum"));
+ QCOMPARE(arg.type().name(), u"ClassEnum");
+ QCOMPARE(arg.type().cppSignature(), u"A::ClassEnum");
AbstractMetaEnumList classEnums = classA->enums();
QVERIFY(!classEnums.isEmpty());
- QCOMPARE(classEnums.constFirst().name(), QLatin1String("ClassEnum"));
- auto e = AbstractMetaClass::findEnumValue(classes, QLatin1String("CA"));
+ QCOMPARE(classEnums.constFirst().name(), u"ClassEnum");
+ auto e = AbstractMetaClass::findEnumValue(classes, u"CA"_s);
QVERIFY(e.has_value());
- e = AbstractMetaClass::findEnumValue(classes, QLatin1String("ClassEnum::CA"));
+ e = AbstractMetaClass::findEnumValue(classes, u"ClassEnum::CA"_s);
QVERIFY(e.has_value());
}
void TestEnum::testEnumWithApiVersion()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
struct A {\n\
enum ClassEnum { EnumA, EnumB };\n\
enum ClassEnum2 { EnumC, EnumD };\n\
};\n";
- const char* xmlCode = "\
+ const char xmlCode[] = "\
<typesystem package=\"Foo\">\n\
<value-type name='A'>\n\
<enum-type name='ClassEnum' since='0.1'/>\n\
@@ -109,22 +92,22 @@ void TestEnum::testEnumWithApiVersion()
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode,
- true, QLatin1String("0.1")));
- QVERIFY(!builder.isNull());
+ true, u"0.1"_s));
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QCOMPARE(classes.count(), 1);
- QCOMPARE(classes[0]->enums().count(), 1);
+ QCOMPARE(classes.size(), 1);
+ QCOMPARE(classes[0]->enums().size(), 1);
}
void TestEnum::testAnonymousEnum()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
enum { Global0, Global1 };\n\
struct A {\n\
enum { A0, A1 };\n\
enum { isThis = true, isThat = false };\n\
};\n";
- const char* xmlCode = "\
+ const char xmlCode[] = "\
<typesystem package=\"Foo\">\n\
<!-- Uses the first value of the enum to identify it. -->\n\
<enum-type identified-by-value='Global0'/>\n\
@@ -136,101 +119,101 @@ void TestEnum::testAnonymousEnum()
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaEnumList globalEnums = builder->globalEnums();
- QCOMPARE(globalEnums.count(), 1);
+ QCOMPARE(globalEnums.size(), 1);
QCOMPARE(globalEnums.constFirst().typeEntry()->qualifiedCppName(),
- QLatin1String("Global0"));
+ u"Global0");
QVERIFY(globalEnums.constFirst().isAnonymous());
AbstractMetaClassList classes = builder->classes();
- QCOMPARE(classes.count(), 1);
- QCOMPARE(classes[0]->enums().count(), 2);
+ QCOMPARE(classes.size(), 1);
+ QCOMPARE(classes[0]->enums().size(), 2);
- auto anonEnumA1 = classes[0]->findEnum(QLatin1String("A1"));
+ auto anonEnumA1 = classes[0]->findEnum(u"A1"_s);
QVERIFY(anonEnumA1.has_value());
QVERIFY(anonEnumA1->isAnonymous());
- QCOMPARE(anonEnumA1->typeEntry()->qualifiedCppName(), QLatin1String("A::A1"));
+ QCOMPARE(anonEnumA1->typeEntry()->qualifiedCppName(), u"A::A1");
AbstractMetaEnumValue enumValueA0 = anonEnumA1->values().constFirst();
- QCOMPARE(enumValueA0.name(), QLatin1String("A0"));
+ QCOMPARE(enumValueA0.name(), u"A0");
QCOMPARE(enumValueA0.value().value(), 0);
QCOMPARE(enumValueA0.stringValue(), QString());
AbstractMetaEnumValue enumValueA1 = anonEnumA1->values().constLast();
- QCOMPARE(enumValueA1.name(), QLatin1String("A1"));
+ QCOMPARE(enumValueA1.name(), u"A1");
QCOMPARE(enumValueA1.value().value(), 1);
QCOMPARE(enumValueA1.stringValue(), QString());
- auto anonEnumIsThis = classes[0]->findEnum(QLatin1String("isThis"));
+ auto anonEnumIsThis = classes[0]->findEnum(u"isThis"_s);
QVERIFY(anonEnumIsThis.has_value());
QVERIFY(anonEnumIsThis->isAnonymous());
- QCOMPARE(anonEnumIsThis->typeEntry()->qualifiedCppName(), QLatin1String("A::isThis"));
+ QCOMPARE(anonEnumIsThis->typeEntry()->qualifiedCppName(), u"A::isThis");
AbstractMetaEnumValue enumValueIsThis = anonEnumIsThis->values().constFirst();
- QCOMPARE(enumValueIsThis.name(), QLatin1String("isThis"));
+ QCOMPARE(enumValueIsThis.name(), u"isThis");
QCOMPARE(enumValueIsThis.value().value(), static_cast<int>(true));
- QCOMPARE(enumValueIsThis.stringValue(), QLatin1String("true"));
+ QCOMPARE(enumValueIsThis.stringValue(), u"true");
AbstractMetaEnumValue enumValueIsThat = anonEnumIsThis->values().constLast();
- QCOMPARE(enumValueIsThat.name(), QLatin1String("isThat"));
+ QCOMPARE(enumValueIsThat.name(), u"isThat");
QCOMPARE(enumValueIsThat.value().value(), static_cast<int>(false));
- QCOMPARE(enumValueIsThat.stringValue(), QLatin1String("false"));
+ QCOMPARE(enumValueIsThat.stringValue(), u"false");
}
void TestEnum::testGlobalEnums()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
enum EnumA { A0, A1 };\n\
enum EnumB { B0 = 2, B1 = 0x4 };\n";
- const char* xmlCode = "\
+ const char xmlCode[] = "\
<typesystem package=\"Foo\">\n\
<enum-type name='EnumA'/>\n\
<enum-type name='EnumB'/>\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaEnumList globalEnums = builder->globalEnums();
- QCOMPARE(globalEnums.count(), 2);
+ QCOMPARE(globalEnums.size(), 2);
AbstractMetaEnum enumA = globalEnums.constFirst();
- QCOMPARE(enumA.typeEntry()->qualifiedCppName(), QLatin1String("EnumA"));
+ QCOMPARE(enumA.typeEntry()->qualifiedCppName(), u"EnumA");
AbstractMetaEnumValue enumValueA0 = enumA.values().constFirst();
- QCOMPARE(enumValueA0.name(), QLatin1String("A0"));
+ QCOMPARE(enumValueA0.name(), u"A0");
QCOMPARE(enumValueA0.value().value(), 0);
QCOMPARE(enumValueA0.stringValue(), QString());
AbstractMetaEnumValue enumValueA1 = enumA.values().constLast();
- QCOMPARE(enumValueA1.name(), QLatin1String("A1"));
+ QCOMPARE(enumValueA1.name(), u"A1");
QCOMPARE(enumValueA1.value().value(), 1);
QCOMPARE(enumValueA1.stringValue(), QString());
AbstractMetaEnum enumB = globalEnums.constLast();
- QCOMPARE(enumB.typeEntry()->qualifiedCppName(), QLatin1String("EnumB"));
+ QCOMPARE(enumB.typeEntry()->qualifiedCppName(), u"EnumB");
AbstractMetaEnumValue enumValueB0 = enumB.values().constFirst();
- QCOMPARE(enumValueB0.name(), QLatin1String("B0"));
+ QCOMPARE(enumValueB0.name(), u"B0");
QCOMPARE(enumValueB0.value().value(), 2);
- QCOMPARE(enumValueB0.stringValue(), QLatin1String("2"));
+ QCOMPARE(enumValueB0.stringValue(), u"2");
AbstractMetaEnumValue enumValueB1 = enumB.values().constLast();
- QCOMPARE(enumValueB1.name(), QLatin1String("B1"));
+ QCOMPARE(enumValueB1.name(), u"B1");
QCOMPARE(enumValueB1.value().value(), 4);
- QCOMPARE(enumValueB1.stringValue(), QLatin1String("0x4"));
+ QCOMPARE(enumValueB1.stringValue(), u"0x4");
}
void TestEnum::testEnumValueFromNeighbourEnum()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
namespace A {\n\
enum EnumA { ValueA0, ValueA1 };\n\
enum EnumB { ValueB0 = A::ValueA1, ValueB1 = ValueA0 };\n\
};\n";
- const char* xmlCode = "\
+ const char xmlCode[] = "\
<typesystem package=\"Foo\">\n\
<namespace-type name='A'>\n\
<enum-type name='EnumA'/>\n\
@@ -239,44 +222,44 @@ void TestEnum::testEnumValueFromNeighbourEnum()
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QCOMPARE(classes.count(), 1);
- QCOMPARE(classes[0]->enums().count(), 2);
+ QCOMPARE(classes.size(), 1);
+ QCOMPARE(classes[0]->enums().size(), 2);
- auto enumA = classes[0]->findEnum(QLatin1String("EnumA"));
+ auto enumA = classes[0]->findEnum(u"EnumA"_s);
QVERIFY(enumA.has_value());
- QCOMPARE(enumA->typeEntry()->qualifiedCppName(), QLatin1String("A::EnumA"));
+ QCOMPARE(enumA->typeEntry()->qualifiedCppName(), u"A::EnumA");
AbstractMetaEnumValue enumValueA0 = enumA->values().constFirst();
- QCOMPARE(enumValueA0.name(), QLatin1String("ValueA0"));
+ QCOMPARE(enumValueA0.name(), u"ValueA0");
QCOMPARE(enumValueA0.value().value(), 0);
QCOMPARE(enumValueA0.stringValue(), QString());
AbstractMetaEnumValue enumValueA1 = enumA->values().constLast();
- QCOMPARE(enumValueA1.name(), QLatin1String("ValueA1"));
+ QCOMPARE(enumValueA1.name(), u"ValueA1");
QCOMPARE(enumValueA1.value().value(), 1);
QCOMPARE(enumValueA1.stringValue(), QString());
- auto enumB = classes[0]->findEnum(QLatin1String("EnumB"));
+ auto enumB = classes[0]->findEnum(u"EnumB"_s);
QVERIFY(enumB.has_value());
- QCOMPARE(enumB->typeEntry()->qualifiedCppName(), QLatin1String("A::EnumB"));
+ QCOMPARE(enumB->typeEntry()->qualifiedCppName(), u"A::EnumB");
AbstractMetaEnumValue enumValueB0 = enumB->values().constFirst();
- QCOMPARE(enumValueB0.name(), QLatin1String("ValueB0"));
+ QCOMPARE(enumValueB0.name(), u"ValueB0");
QCOMPARE(enumValueB0.value().value(), 1);
- QCOMPARE(enumValueB0.stringValue(), QLatin1String("A::ValueA1"));
+ QCOMPARE(enumValueB0.stringValue(), u"A::ValueA1");
AbstractMetaEnumValue enumValueB1 = enumB->values().constLast();
- QCOMPARE(enumValueB1.name(), QLatin1String("ValueB1"));
+ QCOMPARE(enumValueB1.name(), u"ValueB1");
QCOMPARE(enumValueB1.value().value(), 0);
- QCOMPARE(enumValueB1.stringValue(), QLatin1String("ValueA0"));
+ QCOMPARE(enumValueB1.stringValue(), u"ValueA0");
}
void TestEnum::testEnumValueFromExpression()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
struct A {\n\
enum EnumA : unsigned {\n\
ValueA0 = 3u,\n\
@@ -292,7 +275,7 @@ void TestEnum::testEnumValueFromExpression()
ValueB0 = ~3,\n\
};\n\
};\n";
- const char* xmlCode = "\
+ const char xmlCode[] = "\
<typesystem package=\"Foo\">\n\
<value-type name='A'>\n\
<enum-type name='EnumA'/>\n\
@@ -301,77 +284,77 @@ void TestEnum::testEnumValueFromExpression()
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
- AbstractMetaClass *classA = AbstractMetaClass::findClass(builder->classes(), QLatin1String("A"));
+ AbstractMetaClassPtr classA = AbstractMetaClass::findClass(builder->classes(), "A");
QVERIFY(classA);
- auto enumA = classA->findEnum(QLatin1String("EnumA"));
+ auto enumA = classA->findEnum(u"EnumA"_s);
QVERIFY(enumA.has_value());
QVERIFY(!enumA->isSigned());
- QCOMPARE(enumA->typeEntry()->qualifiedCppName(), QLatin1String("A::EnumA"));
+ QCOMPARE(enumA->typeEntry()->qualifiedCppName(), u"A::EnumA");
AbstractMetaEnumValue valueA0 = enumA->values().at(0);
- QCOMPARE(valueA0.name(), QLatin1String("ValueA0"));
- QCOMPARE(valueA0.stringValue(), QLatin1String("3u"));
+ QCOMPARE(valueA0.name(), u"ValueA0");
+ QCOMPARE(valueA0.stringValue(), u"3u");
QCOMPARE(valueA0.value().unsignedValue(), 3u);
AbstractMetaEnumValue valueA1 = enumA->values().at(1);
- QCOMPARE(valueA1.name(), QLatin1String("ValueA1"));
- QCOMPARE(valueA1.stringValue(), QLatin1String("~3u"));
+ QCOMPARE(valueA1.name(), u"ValueA1");
+ QCOMPARE(valueA1.stringValue(), u"~3u");
QCOMPARE(valueA1.value().unsignedValue(), ~3u);
AbstractMetaEnumValue valueA2 = enumA->values().at(2);
- QCOMPARE(valueA2.name(), QLatin1String("ValueA2"));
- QCOMPARE(valueA2.stringValue(), QLatin1String("0xffffffff"));
+ QCOMPARE(valueA2.name(), u"ValueA2");
+ QCOMPARE(valueA2.stringValue(), u"0xffffffff");
QCOMPARE(valueA2.value().unsignedValue(), 0xffffffffu);
AbstractMetaEnumValue valueA3 = enumA->values().at(3);
- QCOMPARE(valueA3.name(), QLatin1String("ValueA3"));
- QCOMPARE(valueA3.stringValue(), QLatin1String("0xf0"));
+ QCOMPARE(valueA3.name(), u"ValueA3");
+ QCOMPARE(valueA3.stringValue(), u"0xf0");
QCOMPARE(valueA3.value().unsignedValue(), 0xf0u);
AbstractMetaEnumValue valueA4 = enumA->values().at(4);
- QCOMPARE(valueA4.name(), QLatin1String("ValueA4"));
- QCOMPARE(valueA4.stringValue(), QLatin1String("8 |ValueA3"));
+ QCOMPARE(valueA4.name(), u"ValueA4");
+ QCOMPARE(valueA4.stringValue(), u"8 |ValueA3");
QCOMPARE(valueA4.value().unsignedValue(), 8|0xf0u);
AbstractMetaEnumValue valueA5 = enumA->values().at(5);
- QCOMPARE(valueA5.name(), QLatin1String("ValueA5"));
- QCOMPARE(valueA5.stringValue(), QLatin1String("ValueA3|32"));
+ QCOMPARE(valueA5.name(), u"ValueA5");
+ QCOMPARE(valueA5.stringValue(), u"ValueA3|32");
QCOMPARE(valueA5.value().unsignedValue(), 0xf0u|32);
AbstractMetaEnumValue valueA6 = enumA->values().at(6);
- QCOMPARE(valueA6.name(), QLatin1String("ValueA6"));
- QCOMPARE(valueA6.stringValue(), QLatin1String("ValueA3 >> 1"));
+ QCOMPARE(valueA6.name(), u"ValueA6");
+ QCOMPARE(valueA6.stringValue(), u"ValueA3 >> 1");
QCOMPARE(valueA6.value().unsignedValue(), 0xf0u >> 1);
AbstractMetaEnumValue valueA7 = enumA->values().at(7);
- QCOMPARE(valueA7.name(), QLatin1String("ValueA7"));
- QCOMPARE(valueA7.stringValue(), QLatin1String("ValueA3 << 1"));
+ QCOMPARE(valueA7.name(), u"ValueA7");
+ QCOMPARE(valueA7.stringValue(), u"ValueA3 << 1");
QCOMPARE(valueA7.value().unsignedValue(), 0xf0u << 1);
- const auto enumB = classA->findEnum(QLatin1String("EnumB"));
+ const auto enumB = classA->findEnum(u"EnumB"_s);
QVERIFY(enumB.has_value());
QVERIFY(enumB->isSigned());
- QCOMPARE(enumB->typeEntry()->qualifiedCppName(), QLatin1String("A::EnumB"));
+ QCOMPARE(enumB->typeEntry()->qualifiedCppName(), u"A::EnumB");
QCOMPARE(enumB->values().size(), 1);
const AbstractMetaEnumValue valueB0 = enumB->values().at(0);
- QCOMPARE(valueB0.name(), QLatin1String("ValueB0"));
- QCOMPARE(valueB0.stringValue(), QLatin1String("~3"));
+ QCOMPARE(valueB0.name(), u"ValueB0");
+ QCOMPARE(valueB0.stringValue(), u"~3");
QCOMPARE(valueB0.value().value(), ~3);
}
void TestEnum::testPrivateEnum()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
class A {\n\
private:\n\
enum PrivateEnum { Priv0 = 0x0f, Priv1 = 0xf0 };\n\
public:\n\
enum PublicEnum { Pub0 = Priv0, Pub1 = A::Priv1 };\n\
};\n";
- const char* xmlCode = "\
+ const char xmlCode[] = "\
<typesystem package=\"Foo\">\n\
<value-type name='A'>\n\
<enum-type name='PublicEnum'/>\n\
@@ -379,62 +362,216 @@ void TestEnum::testPrivateEnum()
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
- AbstractMetaClass *classA = AbstractMetaClass::findClass(builder->classes(), QLatin1String("A"));
+ const auto classA = AbstractMetaClass::findClass(builder->classes(), "A");
QVERIFY(classA);
- QCOMPARE(classA->enums().count(), 2);
+ QCOMPARE(classA->enums().size(), 2);
- auto privateEnum = classA->findEnum(QLatin1String("PrivateEnum"));
+ auto privateEnum = classA->findEnum(u"PrivateEnum"_s);
QVERIFY(privateEnum.has_value());
QVERIFY(privateEnum->isPrivate());
- QCOMPARE(privateEnum->typeEntry()->qualifiedCppName(), QLatin1String("A::PrivateEnum"));
+ QCOMPARE(privateEnum->typeEntry()->qualifiedCppName(), u"A::PrivateEnum");
- auto publicEnum = classA->findEnum(QLatin1String("PublicEnum"));
+ auto publicEnum = classA->findEnum(u"PublicEnum"_s);
QVERIFY(publicEnum.has_value());
- QCOMPARE(publicEnum->typeEntry()->qualifiedCppName(), QLatin1String("A::PublicEnum"));
+ QCOMPARE(publicEnum->typeEntry()->qualifiedCppName(), u"A::PublicEnum");
AbstractMetaEnumValue pub0 = publicEnum->values().constFirst();
- QCOMPARE(pub0.name(), QLatin1String("Pub0"));
+ QCOMPARE(pub0.name(), u"Pub0");
QCOMPARE(pub0.value().value(), 0x0f);
- QCOMPARE(pub0.stringValue(), QLatin1String("Priv0"));
+ QCOMPARE(pub0.stringValue(), u"Priv0");
AbstractMetaEnumValue pub1 = publicEnum->values().constLast();
- QCOMPARE(pub1.name(), QLatin1String("Pub1"));
+ QCOMPARE(pub1.name(), u"Pub1");
QCOMPARE(pub1.value().value(), 0xf0);
- QCOMPARE(pub1.stringValue(), QLatin1String("A::Priv1"));
+ QCOMPARE(pub1.stringValue(), u"A::Priv1");
}
void TestEnum::testTypedefEnum()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
typedef enum EnumA {\n\
A0,\n\
A1,\n\
} EnumA;\n";
- const char* xmlCode = "\
+ const char xmlCode[] = "\
<typesystem package=\"Foo\">\n\
<enum-type name='EnumA'/>\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaEnumList globalEnums = builder->globalEnums();
- QCOMPARE(globalEnums.count(), 1);
+ QCOMPARE(globalEnums.size(), 1);
AbstractMetaEnum enumA = globalEnums.constFirst();
- QCOMPARE(enumA.typeEntry()->qualifiedCppName(), QLatin1String("EnumA"));
+ QCOMPARE(enumA.typeEntry()->qualifiedCppName(), u"EnumA");
AbstractMetaEnumValue enumValueA0 = enumA.values().constFirst();
- QCOMPARE(enumValueA0.name(), QLatin1String("A0"));
+ QCOMPARE(enumValueA0.name(), u"A0");
QCOMPARE(enumValueA0.value().value(), 0);
- QCOMPARE(enumValueA0.stringValue(), QLatin1String(""));
+ QCOMPARE(enumValueA0.stringValue(), u"");
AbstractMetaEnumValue enumValueA1 = enumA.values().constLast();
- QCOMPARE(enumValueA1.name(), QLatin1String("A1"));
+ QCOMPARE(enumValueA1.name(), u"A1");
QCOMPARE(enumValueA1.value().value(), 1);
QCOMPARE(enumValueA1.stringValue(), QString());
}
+// Helper classes and functions for testing enum default value fixing.
+// Put the AbstractMetaBuilder into test fixture struct to avoid having
+// to re-parse for each data row.
+
+struct EnumDefaultValuesFixture
+{
+ std::shared_ptr<AbstractMetaBuilder> builder;
+
+ AbstractMetaType globalEnum;
+ AbstractMetaType testEnum;
+ AbstractMetaType testOptions;
+};
+
+Q_DECLARE_METATYPE(EnumDefaultValuesFixture)
+Q_DECLARE_METATYPE(AbstractMetaType)
+
+static int populateDefaultValuesFixture(EnumDefaultValuesFixture *fixture)
+{
+ static const char cppCode[] =R"(
+enum GlobalEnum { GE1, GE2 };
+namespace Test1
+{
+namespace Test2
+{
+ enum Enum1 { E1, E2 };
+ enum Option { O1, O2 };
+} // namespace Test2
+} // namespace Test1
+)";
+ static const char xmlCode[] = R"(
+<typesystem package="Foo">
+ <enum-type name='GlobalEnum'/>
+ <namespace-type name='Test1'>
+ <namespace-type name='Test2'>
+ <enum-type name='Enum1'/>
+ <enum-type name='Option' flags='Options'/>
+ </namespace-type>
+ </namespace-type>
+</typesystem>
+)";
+
+ fixture->builder.reset(TestUtil::parse(cppCode, xmlCode, false));
+ if (!fixture->builder)
+ return -1;
+
+ const auto globalEnums = fixture->builder->globalEnums();
+ if (globalEnums.size() != 1)
+ return -2;
+
+ fixture->globalEnum = AbstractMetaType(globalEnums.constFirst().typeEntry());
+ fixture->globalEnum.decideUsagePattern();
+
+ AbstractMetaClassCPtr testNamespace;
+ for (const auto &c : fixture->builder->classes()) {
+ if (c->name() == u"Test2") {
+ testNamespace = c;
+ break;
+ }
+ }
+ if (!testNamespace)
+ return -3;
+
+ const auto namespaceEnums = testNamespace->enums();
+ if (namespaceEnums.size() != 2)
+ return -4;
+ QList<EnumTypeEntryCPtr > enumTypeEntries{
+ std::static_pointer_cast<const EnumTypeEntry>(namespaceEnums.at(0).typeEntry()),
+ std::static_pointer_cast<const EnumTypeEntry>(namespaceEnums.at(1).typeEntry())};
+ if (enumTypeEntries.constFirst()->flags())
+ std::swap(enumTypeEntries[0], enumTypeEntries[1]);
+ fixture->testEnum = AbstractMetaType(enumTypeEntries.at(0));
+ fixture->testEnum.decideUsagePattern();
+ fixture->testOptions = AbstractMetaType(enumTypeEntries.at(1)->flags());
+ fixture->testOptions.decideUsagePattern();
+ return 0;
+}
+
+void TestEnum::testEnumDefaultValues_data()
+{
+ EnumDefaultValuesFixture fixture;
+ const int setupOk = populateDefaultValuesFixture(&fixture);
+
+ QTest::addColumn<EnumDefaultValuesFixture>("fixture");
+ QTest::addColumn<int>("setupOk"); // To verify setup
+ QTest::addColumn<AbstractMetaType>("metaType"); // Type and parameters for fixup
+ QTest::addColumn<QString>("input");
+ QTest::addColumn<QString>("expected");
+
+ // Global should just remain unmodified
+ QTest::newRow("global") << fixture << setupOk
+ << fixture.globalEnum << "GE1" << "GE1";
+ QTest::newRow("global-int") << fixture << setupOk
+ << fixture.globalEnum << "42" << "42";
+ QTest::newRow("global-hex-int") << fixture << setupOk
+ << fixture.globalEnum << "0x10" << "0x10";
+ QTest::newRow("global-int-cast") << fixture << setupOk
+ << fixture.globalEnum << "GlobalEnum(-1)" << "GlobalEnum(-1)";
+
+ // Namespaced enum as number should remain unmodified
+ QTest::newRow("namespace-enum-int") << fixture << setupOk
+ << fixture.testEnum << "42" << "42";
+ QTest::newRow("namespace-enum-hex-int") << fixture << setupOk
+ << fixture.testEnum << "0x10" << "0x10";
+ // Partial qualification of namespaced enum
+ QTest::newRow("namespace-enum-qualified") << fixture << setupOk
+ << fixture.testEnum << "Enum1::E1" << "Test1::Test2::Enum1::E1";
+ // Unqualified namespaced enums
+ QTest::newRow("namespace-enum-unqualified") << fixture << setupOk
+ << fixture.testEnum << "E1" << "Test1::Test2::Enum1::E1";
+ // Namespaced enums cast from int should be qualified by scope
+ QTest::newRow("namespace-enum-int-cast") << fixture << setupOk
+ << fixture.testEnum << "Enum1(-1)" << "Test1::Test2::Enum1(-1)";
+
+ // Namespaced option as number should remain unmodified
+ QTest::newRow("namespace-option-int") << fixture << setupOk
+ << fixture.testOptions << "0x10" << "0x10";
+ QTest::newRow("namespace-option-expression") << fixture << setupOk
+ << fixture.testOptions << "0x10 | 0x20" << "0x10 | 0x20";
+ QTest::newRow("namespace-option-expression1") << fixture << setupOk
+ << fixture.testOptions << "0x10 | Test1::Test2::Option::O1"
+ << "0x10 | Test1::Test2::Option::O1";
+ QTest::newRow("namespace-option-expression2") << fixture << setupOk
+ << fixture.testOptions << "0x10 | O1" << "0x10 | Test1::Test2::Option::O1";
+ // Complicated expressions - should remain unmodified
+ QTest::newRow("namespace-option-expression-paren") << fixture << setupOk
+ << fixture.testOptions << "0x10 | (0x20 | 0x40 | O1)"
+ << "0x10 | (0x20 | 0x40 | O1)";
+
+ // Option: Cast Enum from int should be qualified
+ QTest::newRow("namespace-option-int-cast") << fixture << setupOk
+ << fixture.testOptions << "Option(0x10)" << "Test1::Test2::Option(0x10)";
+ // Option: Cast Flags from int should be qualified
+ QTest::newRow("namespace-options-int-cast") << fixture << setupOk
+ << fixture.testOptions << "Options(0x10 | 0x20)" << "Test1::Test2::Options(0x10 | 0x20)";
+ QTest::newRow("namespace-option-cast-expression1") << fixture << setupOk
+ << fixture.testOptions << "Test1::Test2::Options(0x10 | Test1::Test2::Option::O1)"
+ << "Test1::Test2::Options(0x10 | Test1::Test2::Option::O1)";
+ QTest::newRow("namespace-option-cast-expression2") << fixture << setupOk
+ << fixture.testOptions << "Options(0x10 | O1)"
+ << "Test1::Test2::Options(0x10 | Test1::Test2::Option::O1)";
+}
+
+void TestEnum::testEnumDefaultValues()
+{
+ QFETCH(EnumDefaultValuesFixture, fixture);
+ QFETCH(int, setupOk);
+ QFETCH(AbstractMetaType, metaType);
+ QFETCH(QString, input);
+ QFETCH(QString, expected);
+ QCOMPARE(setupOk, 0);
+ const QString actual = fixture.builder->fixEnumDefault(metaType, input);
+ QCOMPARE(actual, expected);
+}
+
QTEST_APPLESS_MAIN(TestEnum)
diff --git a/sources/shiboken6/ApiExtractor/tests/testenum.h b/sources/shiboken6/ApiExtractor/tests/testenum.h
index 312551763..452755490 100644
--- a/sources/shiboken6/ApiExtractor/tests/testenum.h
+++ b/sources/shiboken6/ApiExtractor/tests/testenum.h
@@ -1,34 +1,10 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TESTENUM_H
#define TESTENUM_H
-#include <QObject>
+
+#include <QtCore/QObject>
class TestEnum : public QObject
{
@@ -42,6 +18,8 @@ private slots:
void testEnumValueFromExpression();
void testPrivateEnum();
void testTypedefEnum();
+ void testEnumDefaultValues_data();
+ void testEnumDefaultValues();
};
#endif
diff --git a/sources/shiboken6/ApiExtractor/tests/testextrainclude.cpp b/sources/shiboken6/ApiExtractor/tests/testextrainclude.cpp
index 90a6cd312..fcc409a42 100644
--- a/sources/shiboken6/ApiExtractor/tests/testextrainclude.cpp
+++ b/sources/shiboken6/ApiExtractor/tests/testextrainclude.cpp
@@ -1,41 +1,17 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "testextrainclude.h"
#include <QtTest/QTest>
#include "testutil.h"
#include <abstractmetalang.h>
-#include <typesystem.h>
+#include <complextypeentry.h>
+#include <typesystemtypeentry.h>
void TestExtraInclude::testClassExtraInclude()
{
- const char* cppCode ="struct A {};\n";
- const char* xmlCode = "\
+ const char cppCode[] = "struct A {};\n";
+ const char xmlCode[] = "\
<typesystem package='Foo'>\n\
<value-type name='A'>\n\
<extra-includes>\n\
@@ -45,20 +21,20 @@ void TestExtraInclude::testClassExtraInclude()
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
QVERIFY(classA);
QList<Include> includes = classA->typeEntry()->extraIncludes();
- QCOMPARE(includes.count(), 1);
- QCOMPARE(includes.constFirst().name(), QLatin1String("header.h"));
+ QCOMPARE(includes.size(), 1);
+ QCOMPARE(includes.constFirst().name(), u"header.h");
}
void TestExtraInclude::testGlobalExtraIncludes()
{
- const char* cppCode ="struct A {};\n";
- const char* xmlCode = "\
+ const char cppCode[] = "struct A {};\n";
+ const char xmlCode[] = "\
<typesystem package='Foo'>\n\
<extra-includes>\n\
<include file-name='header1.h' location='global'/>\n\
@@ -68,19 +44,19 @@ void TestExtraInclude::testGlobalExtraIncludes()
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QVERIFY(AbstractMetaClass::findClass(classes, QLatin1String("A")));
+ QVERIFY(AbstractMetaClass::findClass(classes, "A"));
- TypeDatabase* td = TypeDatabase::instance();
- const TypeSystemTypeEntry *module = td->defaultTypeSystemType();
+ auto *td = TypeDatabase::instance();
+ TypeSystemTypeEntryCPtr module = td->defaultTypeSystemType();
QVERIFY(module);
- QCOMPARE(module->name(), QLatin1String("Foo"));
+ QCOMPARE(module->name(), u"Foo");
QList<Include> includes = module->extraIncludes();
- QCOMPARE(includes.count(), 2);
- QCOMPARE(includes.constFirst().name(), QLatin1String("header1.h"));
- QCOMPARE(includes.constLast().name(), QLatin1String("header2.h"));
+ QCOMPARE(includes.size(), 2);
+ QCOMPARE(includes.constFirst().name(), u"header1.h");
+ QCOMPARE(includes.constLast().name(), u"header2.h");
}
QTEST_APPLESS_MAIN(TestExtraInclude)
diff --git a/sources/shiboken6/ApiExtractor/tests/testextrainclude.h b/sources/shiboken6/ApiExtractor/tests/testextrainclude.h
index 33c5377c7..6bcb57993 100644
--- a/sources/shiboken6/ApiExtractor/tests/testextrainclude.h
+++ b/sources/shiboken6/ApiExtractor/tests/testextrainclude.h
@@ -1,35 +1,10 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TESTEXTRAINCLUDE_H
#define TESTEXTRAINCLUDE_H
-#include <QObject>
+#include <QtCore/QObject>
class TestExtraInclude : public QObject
{
diff --git a/sources/shiboken6/ApiExtractor/tests/testfunctiontag.cpp b/sources/shiboken6/ApiExtractor/tests/testfunctiontag.cpp
index f58ea6f64..18eaf5774 100644
--- a/sources/shiboken6/ApiExtractor/tests/testfunctiontag.cpp
+++ b/sources/shiboken6/ApiExtractor/tests/testfunctiontag.cpp
@@ -1,38 +1,18 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "testfunctiontag.h"
-#include <QtTest/QTest>
#include "testutil.h"
#include <abstractmetafunction.h>
#include <modifications.h>
#include <typesystem.h>
+#include <qtcompat.h>
+
+#include <QtTest/QTest>
+
+using namespace Qt::StringLiterals;
+
void TestFunctionTag::testFunctionTagForSpecificSignature()
{
const char cppCode[] = "void globalFunction(int); void globalFunction(float); void dummy();\n";
@@ -43,9 +23,9 @@ void TestFunctionTag::testFunctionTagForSpecificSignature()
<function signature='globalFunction(int)'/>\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
- const TypeEntry *func = TypeDatabase::instance()->findType(QLatin1String("globalFunction"));
+ TypeEntryCPtr func = TypeDatabase::instance()->findType(u"globalFunction"_s);
QVERIFY(func);
QCOMPARE(builder->globalFunctions().size(), 1);
}
@@ -61,24 +41,24 @@ void TestFunctionTag::testFunctionTagForAllSignatures()
<function signature='globalFunction(float)'/>\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
- const TypeEntry *func = TypeDatabase::instance()->findType(QLatin1String("globalFunction"));
+ TypeEntryCPtr func = TypeDatabase::instance()->findType(u"globalFunction"_s);
QVERIFY(func);
QCOMPARE(builder->globalFunctions().size(), 2);
}
void TestFunctionTag::testRenameGlobalFunction()
{
- const char* cppCode ="void global_function_with_ugly_name();\n";
- const char* xmlCode = "\
+ const char cppCode[] = "void global_function_with_ugly_name();\n";
+ const char xmlCode[] = "\
<typesystem package='Foo'>\n\
<function signature='global_function_with_ugly_name()' rename='smooth'/>\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
- const TypeEntry *func = TypeDatabase::instance()->findType(QLatin1String("global_function_with_ugly_name"));
+ TypeEntryCPtr func = TypeDatabase::instance()->findType(u"global_function_with_ugly_name"_s);
QVERIFY(func);
QCOMPARE(builder->globalFunctions().size(), 1);
@@ -88,11 +68,11 @@ void TestFunctionTag::testRenameGlobalFunction()
QCOMPARE(metaFunc->modifications().size(), 1);
QVERIFY(metaFunc->modifications().constFirst().isRenameModifier());
QCOMPARE(metaFunc->modifications().constFirst().renamedToName(),
- QLatin1String("smooth"));
+ u"smooth");
- QCOMPARE(metaFunc->name(), QLatin1String("smooth"));
- QCOMPARE(metaFunc->originalName(), QLatin1String("global_function_with_ugly_name"));
- QCOMPARE(metaFunc->minimalSignature(), QLatin1String("global_function_with_ugly_name()"));
+ QCOMPARE(metaFunc->name(), u"smooth");
+ QCOMPARE(metaFunc->originalName(), u"global_function_with_ugly_name");
+ QCOMPARE(metaFunc->minimalSignature(), u"global_function_with_ugly_name()");
}
QTEST_APPLESS_MAIN(TestFunctionTag)
diff --git a/sources/shiboken6/ApiExtractor/tests/testfunctiontag.h b/sources/shiboken6/ApiExtractor/tests/testfunctiontag.h
index d68499cd9..7c60cb4e0 100644
--- a/sources/shiboken6/ApiExtractor/tests/testfunctiontag.h
+++ b/sources/shiboken6/ApiExtractor/tests/testfunctiontag.h
@@ -1,34 +1,10 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TESTFUNCTIONTAG_H
#define TESTFUNCTIONTAG_H
-#include <QObject>
+
+#include <QtCore/QObject>
class TestFunctionTag : public QObject
{
diff --git a/sources/shiboken6/ApiExtractor/tests/testimplicitconversions.cpp b/sources/shiboken6/ApiExtractor/tests/testimplicitconversions.cpp
index 9dcdec975..899d00ad4 100644
--- a/sources/shiboken6/ApiExtractor/tests/testimplicitconversions.cpp
+++ b/sources/shiboken6/ApiExtractor/tests/testimplicitconversions.cpp
@@ -1,41 +1,18 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "testimplicitconversions.h"
#include "testutil.h"
+#include <abstractmetaargument.h>
#include <abstractmetafunction.h>
#include <abstractmetalang.h>
-#include <typesystem.h>
+#include <abstractmetatype.h>
+#include <complextypeentry.h>
#include <QtTest/QTest>
void TestImplicitConversions::testWithPrivateCtors()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
class B;\n\
class C;\n\
class A {\n\
@@ -45,35 +22,35 @@ void TestImplicitConversions::testWithPrivateCtors()
};\n\
class B {};\n\
class C {};\n";
- const char* xmlCode = "\
+ const char xmlCode[] = "\
<typesystem package='Foo'>\n\
<value-type name='A'/>\n\
<value-type name='B'/>\n\
<value-type name='C'/>\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QCOMPARE(classes.count(), 3);
+ QCOMPARE(classes.size(), 3);
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
- const AbstractMetaClass *classC = AbstractMetaClass::findClass(classes, QLatin1String("C"));
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
+ const auto classC = AbstractMetaClass::findClass(classes, "C");
const auto implicitConvs = classA->implicitConversions();
- QCOMPARE(implicitConvs.count(), 1);
+ QCOMPARE(implicitConvs.size(), 1);
QCOMPARE(implicitConvs.constFirst()->arguments().constFirst().type().typeEntry(),
classC->typeEntry());
}
void TestImplicitConversions::testWithModifiedVisibility()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
class B;\n\
class A {\n\
public:\n\
A(const B&);\n\
};\n\
class B {};\n";
- const char* xmlCode = R"(
+ const char xmlCode[] = R"(
<typesystem package='Foo'>
<value-type name='A'>
<modify-function signature='A(const B&amp;)' access='private'/>
@@ -82,13 +59,13 @@ void TestImplicitConversions::testWithModifiedVisibility()
</typesystem>
)";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QCOMPARE(classes.count(), 2);
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
- const AbstractMetaClass *classB = AbstractMetaClass::findClass(classes, QLatin1String("B"));
+ QCOMPARE(classes.size(), 2);
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
+ const auto classB = AbstractMetaClass::findClass(classes, "B");
const auto implicitConvs = classA->implicitConversions();
- QCOMPARE(implicitConvs.count(), 1);
+ QCOMPARE(implicitConvs.size(), 1);
QCOMPARE(implicitConvs.constFirst()->arguments().constFirst().type().typeEntry(),
classB->typeEntry());
}
@@ -96,7 +73,7 @@ void TestImplicitConversions::testWithModifiedVisibility()
void TestImplicitConversions::testWithAddedCtor()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
class B;\n\
class A {\n\
public:\n\
@@ -104,7 +81,7 @@ void TestImplicitConversions::testWithAddedCtor()
};\n\
class B {};\n\
class C {};\n";
- const char* xmlCode = "\
+ const char xmlCode[] = "\
<typesystem package='Foo'>\n\
<custom-type name='TARGETLANGTYPE'/>\n\
<value-type name='A'>\n\
@@ -116,49 +93,49 @@ void TestImplicitConversions::testWithAddedCtor()
<value-type name='C'/>\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QCOMPARE(classes.count(), 3);
+ QCOMPARE(classes.size(), 3);
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
auto implicitConvs = classA->implicitConversions();
- QCOMPARE(implicitConvs.count(), 2);
+ QCOMPARE(implicitConvs.size(), 2);
// Added constructors with custom types should never result in implicit converters.
- const AbstractMetaClass *classB = AbstractMetaClass::findClass(classes, QLatin1String("B"));
+ const auto classB = AbstractMetaClass::findClass(classes, "B");
implicitConvs = classB->implicitConversions();
- QCOMPARE(implicitConvs.count(), 0);
+ QCOMPARE(implicitConvs.size(), 0);
}
void TestImplicitConversions::testWithExternalConversionOperator()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
class A {};\n\
struct B {\n\
operator A() const;\n\
};\n";
- const char* xmlCode = "\n\
+ const char xmlCode[] = "\n\
<typesystem package='Foo'>\n\
<value-type name='A'/>\n\
<value-type name='B'/>\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QCOMPARE(classes.count(), 2);
- AbstractMetaClass* classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
- AbstractMetaClass* classB = AbstractMetaClass::findClass(classes, QLatin1String("B"));
+ QCOMPARE(classes.size(), 2);
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
+ const auto classB = AbstractMetaClass::findClass(classes, "B");
const auto implicitConvs = classA->implicitConversions();
- QCOMPARE(implicitConvs.count(), 1);
+ QCOMPARE(implicitConvs.size(), 1);
const auto &externalConvOps = classA->externalConversionOperators();
- QCOMPARE(externalConvOps.count(), 1);
+ QCOMPARE(externalConvOps.size(), 1);
AbstractMetaFunctionCPtr convOp;
for (const auto &func : classB->functions()) {
if (func->isConversionOperator())
convOp = func;
}
- QVERIFY(!convOp.isNull());
+ QVERIFY(convOp);
QCOMPARE(implicitConvs.constFirst(), convOp);
}
diff --git a/sources/shiboken6/ApiExtractor/tests/testimplicitconversions.h b/sources/shiboken6/ApiExtractor/tests/testimplicitconversions.h
index da8ae4597..e0678c5f5 100644
--- a/sources/shiboken6/ApiExtractor/tests/testimplicitconversions.h
+++ b/sources/shiboken6/ApiExtractor/tests/testimplicitconversions.h
@@ -1,35 +1,10 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TESTIMPLICITCONVERSIONS_H
#define TESTIMPLICITCONVERSIONS_H
-#include <QObject>
+#include <QtCore/QObject>
class AbstractMetaBuilder;
diff --git a/sources/shiboken6/ApiExtractor/tests/testinserttemplate.cpp b/sources/shiboken6/ApiExtractor/tests/testinserttemplate.cpp
index fda6614f0..23cf0f9ea 100644
--- a/sources/shiboken6/ApiExtractor/tests/testinserttemplate.cpp
+++ b/sources/shiboken6/ApiExtractor/tests/testinserttemplate.cpp
@@ -1,42 +1,19 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "testinserttemplate.h"
#include <QtTest/QTest>
#include "testutil.h"
#include <abstractmetalang.h>
+#include <codesnip.h>
#include <modifications.h>
-#include <typesystem.h>
+#include <complextypeentry.h>
+#include <typesystemtypeentry.h>
void TestInsertTemplate::testInsertTemplateOnClassInjectCode()
{
- const char* cppCode ="struct A{};\n";
- const char* xmlCode = "\
+ const char cppCode[] = "struct A{};\n";
+ const char xmlCode[] = "\
<typesystem package='Foo'>\n\
<template name='code_template'>\n\
code template content\n\
@@ -48,20 +25,20 @@ void TestInsertTemplate::testInsertTemplateOnClassInjectCode()
</value-type>\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QCOMPARE(classes.count(), 1);
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
+ QCOMPARE(classes.size(), 1);
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
QVERIFY(classA);
- QCOMPARE(classA->typeEntry()->codeSnips().count(), 1);
+ QCOMPARE(classA->typeEntry()->codeSnips().size(), 1);
QString code = classA->typeEntry()->codeSnips().constFirst().code();
- QVERIFY(code.contains(QLatin1String("code template content")));
+ QVERIFY(code.contains(u"code template content"));
}
void TestInsertTemplate::testInsertTemplateOnModuleInjectCode()
{
- const char* cppCode ="";
- const char* xmlCode = "\
+ const char cppCode[] = "";
+ const char xmlCode[] = "\
<typesystem package='Foo'>\n\
<template name='code_template'>\n\
code template content\n\
@@ -71,17 +48,16 @@ void TestInsertTemplate::testInsertTemplateOnModuleInjectCode()
</inject-code>\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
QVERIFY(classes.isEmpty());
- const TypeSystemTypeEntry *module = TypeDatabase::instance()->defaultTypeSystemType();
+ TypeSystemTypeEntryCPtr module = TypeDatabase::instance()->defaultTypeSystemType();
QVERIFY(module);
- QCOMPARE(module->name(), QLatin1String("Foo"));
- QVERIFY(module);
- QCOMPARE(module->codeSnips().count(), 1);
+ QCOMPARE(module->name(), u"Foo");
+ QCOMPARE(module->codeSnips().size(), 1);
QString code = module->codeSnips().constFirst().code().trimmed();
- QVERIFY(code.contains(QLatin1String("code template content")));
+ QVERIFY(code.contains(u"code template content"));
}
QTEST_APPLESS_MAIN(TestInsertTemplate)
diff --git a/sources/shiboken6/ApiExtractor/tests/testinserttemplate.h b/sources/shiboken6/ApiExtractor/tests/testinserttemplate.h
index 99b171933..f4f67abc0 100644
--- a/sources/shiboken6/ApiExtractor/tests/testinserttemplate.h
+++ b/sources/shiboken6/ApiExtractor/tests/testinserttemplate.h
@@ -1,35 +1,10 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TESTINSERTTEMPLATE_H
#define TESTINSERTTEMPLATE_H
-#include <QObject>
+#include <QtCore/QObject>
class TestInsertTemplate : public QObject
{
diff --git a/sources/shiboken6/ApiExtractor/tests/testmodifydocumentation.cpp b/sources/shiboken6/ApiExtractor/tests/testmodifydocumentation.cpp
index 521f8d665..9cf2e0cc7 100644
--- a/sources/shiboken6/ApiExtractor/tests/testmodifydocumentation.cpp
+++ b/sources/shiboken6/ApiExtractor/tests/testmodifydocumentation.cpp
@@ -1,46 +1,26 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "testmodifydocumentation.h"
-
-#include <QCoreApplication>
-#include <QtCore/QTemporaryDir>
-#include <QtTest/QTest>
#include "testutil.h"
#include <abstractmetalang.h>
+#include <abstractmetafunction.h>
#include <documentation.h>
#include <modifications.h>
-#include <typesystem.h>
+#include <complextypeentry.h>
#include <qtdocparser.h>
+#include <qtcompat.h>
+
+#include <QtCore/QCoreApplication>
+#include <QtCore/QTemporaryDir>
+#include <QtTest/QTest>
+
+using namespace Qt::StringLiterals;
+
void TestModifyDocumentation::testModifyDocumentation()
{
- const char* cppCode ="struct B { void b(); }; class A {};\n";
+ const char cppCode[] = "struct B { void b(); }; class A {};\n";
const char xmlCode[] =
R"(<typesystem package="Foo">
<value-type name='B'>
@@ -53,22 +33,22 @@ R"(<typesystem package="Foo">
</typesystem>
)";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
- AbstractMetaClass *classA = AbstractMetaClass::findClass(builder->classes(), QLatin1String("A"));
+ QVERIFY(builder);
+ const auto classA = AbstractMetaClass::findClass(builder->classes(), "A");
QVERIFY(classA);
DocModificationList docMods = classA->typeEntry()->docModifications();
- QCOMPARE(docMods.count(), 2);
- QCOMPARE(docMods[0].code().trimmed(), QLatin1String("<brief>Modified Brief</brief>"));
+ QCOMPARE(docMods.size(), 2);
+ QCOMPARE(docMods[0].code().trimmed(), u"<brief>Modified Brief</brief>");
QCOMPARE(docMods[0].signature(), QString());
- QCOMPARE(docMods[1].code().trimmed(), QLatin1String("<para>Some changed contents here</para>"));
+ QCOMPARE(docMods[1].code().trimmed(), u"<para>Some changed contents here</para>");
QCOMPARE(docMods[1].signature(), QString());
// Create a temporary directory for the documentation file since libxml2
// cannot handle Qt resources.
- QTemporaryDir tempDir(QDir::tempPath() + QLatin1String("/shiboken_testmodifydocXXXXXX"));
+ QTemporaryDir tempDir(QDir::tempPath() + u"/shiboken_testmodifydocXXXXXX"_s);
QVERIFY2(tempDir.isValid(), qPrintable(tempDir.errorString()));
- const QString docFileName = QLatin1String("a.xml");
- QVERIFY(QFile::copy(QLatin1String(":/") + docFileName, tempDir.filePath(docFileName)));
+ constexpr auto docFileName = "a.xml"_L1;
+ QVERIFY(QFile::copy(u":/"_s + docFileName, tempDir.filePath(docFileName)));
QtDocParser docParser;
docParser.setDocumentationDataDirectory(tempDir.path());
@@ -89,7 +69,7 @@ R"(<?xml version="1.0"?>
)";
const QString expectedDocSimplified = QString::fromLatin1(expectedDoc).simplified();
// Check whether the first modification worked.
- QVERIFY(actualBriefSimplified.contains(QLatin1String("Modified Brief")));
+ QVERIFY(actualBriefSimplified.contains(u"Modified Brief"));
#ifndef HAVE_LIBXSLT
// QtXmlPatterns is unable to handle para[3] in style sheets,
@@ -99,6 +79,33 @@ R"(<?xml version="1.0"?>
QCOMPARE(actualDocSimplified, expectedDocSimplified);
}
+void TestModifyDocumentation::testInjectAddedFunctionDocumentation()
+{
+ const char cppCode[] ="class A {};\n";
+ const char xmlCode[] = R"XML(
+<typesystem package="Foo">
+ <value-type name='A'>
+ <add-function signature="foo(int@parameter_name@)">
+ <inject-documentation format="target" mode="append">
+ Injected documentation of added function foo.
+ </inject-documentation>
+ </add-function>
+ </value-type>
+</typesystem>
+)XML";
+ QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
+ QVERIFY(builder);
+ const auto classA = AbstractMetaClass::findClass(builder->classes(), "A");
+ QVERIFY(classA);
+ const auto f = classA->findFunction("foo");
+ QVERIFY(f);
+ QVERIFY(f->isUserAdded());
+ auto docMods = f->addedFunctionDocModifications();
+ QCOMPARE(docMods.size(), 1);
+ const QString code = docMods.constFirst().code();
+ QVERIFY(code.contains(u"Injected documentation of added function foo."));
+}
+
// We expand QTEST_MAIN macro but using QCoreApplication instead of QApplication
// because this test needs an event loop but can't use QApplication to avoid a crash
// on our ARMEL/FRAMANTLE buildbot
diff --git a/sources/shiboken6/ApiExtractor/tests/testmodifydocumentation.h b/sources/shiboken6/ApiExtractor/tests/testmodifydocumentation.h
index 6428a5697..c1cc8f480 100644
--- a/sources/shiboken6/ApiExtractor/tests/testmodifydocumentation.h
+++ b/sources/shiboken6/ApiExtractor/tests/testmodifydocumentation.h
@@ -1,41 +1,17 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TESTMODIFYDOCUMENTATION_H
#define TESTMODIFYDOCUMENTATION_H
-#include <QObject>
+#include <QtCore/QObject>
class TestModifyDocumentation : public QObject
{
Q_OBJECT
private slots:
void testModifyDocumentation();
+ void testInjectAddedFunctionDocumentation();
};
#endif
diff --git a/sources/shiboken6/ApiExtractor/tests/testmodifyfunction.cpp b/sources/shiboken6/ApiExtractor/tests/testmodifyfunction.cpp
index 0d95d5abb..a7d40f70a 100644
--- a/sources/shiboken6/ApiExtractor/tests/testmodifyfunction.cpp
+++ b/sources/shiboken6/ApiExtractor/tests/testmodifyfunction.cpp
@@ -1,40 +1,22 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "testmodifyfunction.h"
-#include <QtTest/QTest>
#include "testutil.h"
+#include <abstractmetaargument.h>
#include <abstractmetabuilder_p.h>
#include <abstractmetafunction.h>
#include <abstractmetalang.h>
+#include <abstractmetatype.h>
#include <modifications.h>
#include <typesystem.h>
+#include <qtcompat.h>
+
+#include <QtTest/QTest>
+
+using namespace Qt::StringLiterals;
+
void TestModifyFunction::testRenameArgument_data()
{
QTest::addColumn<QByteArray>("pattern");
@@ -46,7 +28,7 @@ void TestModifyFunction::testRenameArgument()
{
QFETCH(QByteArray, pattern);
- const char* cppCode ="\
+ const char cppCode[] = "\
struct A {\n\
void method(int=0);\n\
};\n";
@@ -64,23 +46,23 @@ void TestModifyFunction::testRenameArgument()
const QByteArray xmlCode = QByteArray(xmlCode1) + pattern + QByteArray(xmlCode2);
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode.constData(), false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
- const auto func = classA->findFunction(QLatin1String("method"));
- QVERIFY(!func.isNull());
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
+ const auto func = classA->findFunction("method");
+ QVERIFY(func);
- QCOMPARE(func->argumentName(1), QLatin1String("otherArg"));
+ QCOMPARE(func->argumentName(1), u"otherArg");
}
void TestModifyFunction::testOwnershipTransfer()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
struct A {};\n\
struct B {\n\
virtual A* method();\n\
};\n";
- const char* xmlCode = "\
+ const char xmlCode[] = "\
<typesystem package=\"Foo\">\n\
<object-type name='A' />\n\
<object-type name='B'>\n\
@@ -92,11 +74,11 @@ void TestModifyFunction::testOwnershipTransfer()
</object-type>\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- const AbstractMetaClass *classB = AbstractMetaClass::findClass(classes, QLatin1String("B"));
- const auto func = classB->findFunction(QLatin1String("method"));
- QVERIFY(!func.isNull());
+ const auto classB = AbstractMetaClass::findClass(classes, "B");
+ const auto func = classB->findFunction("method");
+ QVERIFY(func);
QCOMPARE(func->argumentTargetOwnership(func->ownerClass(), 0),
TypeSystem::CppOwnership);
@@ -105,7 +87,7 @@ void TestModifyFunction::testOwnershipTransfer()
void TestModifyFunction::invalidateAfterUse()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
struct A {\n\
virtual void call(int *a);\n\
};\n\
@@ -119,7 +101,7 @@ void TestModifyFunction::invalidateAfterUse()
};\n\
struct E : D {\n\
};\n";
- const char* xmlCode = "\
+ const char xmlCode[] = "\
<typesystem package='Foo'>\n\
<primitive-type name='int'/>\n\
<object-type name='A'>\n\
@@ -141,48 +123,48 @@ void TestModifyFunction::invalidateAfterUse()
<object-type name='E' />\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode,
- false, QLatin1String("0.1")));
- QVERIFY(!builder.isNull());
+ false, u"0.1"_s));
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- const AbstractMetaClass *classB = AbstractMetaClass::findClass(classes, QLatin1String("B"));
- auto func = classB->findFunction(QLatin1String("call"));
+ const auto classB = AbstractMetaClass::findClass(classes, "B");
+ auto func = classB->findFunction("call");
QCOMPARE(func->modifications().size(), 1);
QCOMPARE(func->modifications().at(0).argument_mods().size(), 1);
QVERIFY(func->modifications().at(0).argument_mods().at(0).resetAfterUse());
- const AbstractMetaClass *classC = AbstractMetaClass::findClass(classes, QLatin1String("C"));
+ const auto classC = AbstractMetaClass::findClass(classes, "C");
QVERIFY(classC);
- func = classC->findFunction(QLatin1String("call"));
+ func = classC->findFunction("call");
QCOMPARE(func->modifications().size(), 1);
QCOMPARE(func->modifications().at(0).argument_mods().size(), 1);
QVERIFY(func->modifications().at(0).argument_mods().at(0).resetAfterUse());
- func = classC->findFunction(QLatin1String("call2"));
+ func = classC->findFunction("call2");
QCOMPARE(func->modifications().size(), 1);
QCOMPARE(func->modifications().at(0).argument_mods().size(), 1);
QVERIFY(func->modifications().at(0).argument_mods().at(0).resetAfterUse());
- const AbstractMetaClass *classD = AbstractMetaClass::findClass(classes, QLatin1String("D"));
+ AbstractMetaClassCPtr classD = AbstractMetaClass::findClass(classes, "D");
QVERIFY(classD);
- func = classD->findFunction(QLatin1String("call"));
+ func = classD->findFunction("call");
QCOMPARE(func->modifications().size(), 1);
QCOMPARE(func->modifications().at(0).argument_mods().size(), 1);
QVERIFY(func->modifications().at(0).argument_mods().at(0).resetAfterUse());
- func = classD->findFunction(QLatin1String("call2"));
+ func = classD->findFunction("call2");
QCOMPARE(func->modifications().size(), 1);
QCOMPARE(func->modifications().at(0).argument_mods().size(), 1);
QVERIFY(func->modifications().at(0).argument_mods().at(0).resetAfterUse());
- const AbstractMetaClass *classE = AbstractMetaClass::findClass(classes, QLatin1String("E"));
+ const auto classE = AbstractMetaClass::findClass(classes, "E");
QVERIFY(classE);
- func = classE->findFunction(QLatin1String("call"));
+ func = classE->findFunction("call");
QVERIFY(func);
QCOMPARE(func->modifications().size(), 1);
QCOMPARE(func->modifications().at(0).argument_mods().size(), 1);
QVERIFY(func->modifications().at(0).argument_mods().at(0).resetAfterUse());
- func = classE->findFunction(QLatin1String("call2"));
+ func = classE->findFunction("call2");
QVERIFY(func);
QCOMPARE(func->modifications().size(), 1);
QCOMPARE(func->modifications().at(0).argument_mods().size(), 1);
@@ -191,13 +173,13 @@ void TestModifyFunction::invalidateAfterUse()
void TestModifyFunction::testWithApiVersion()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
struct A {};\n\
struct B {\n\
virtual A* method();\n\
virtual B* methodB();\n\
};\n";
- const char* xmlCode = "\
+ const char xmlCode[] = "\
<typesystem package='Foo'>\n\
<object-type name='A' />\n\
<object-type name='B'>\n\
@@ -214,16 +196,16 @@ void TestModifyFunction::testWithApiVersion()
</object-type>\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode,
- false, QLatin1String("0.1")));
- QVERIFY(!builder.isNull());
+ false, u"0.1"_s));
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- AbstractMetaClass* classB = AbstractMetaClass::findClass(classes, QLatin1String("B"));
- auto func = classB->findFunction(QLatin1String("method"));
+ const auto classB = AbstractMetaClass::findClass(classes, "B");
+ auto func = classB->findFunction("method");
auto returnOwnership = func->argumentTargetOwnership(func->ownerClass(), 0);
QCOMPARE(returnOwnership, TypeSystem::CppOwnership);
- func = classB->findFunction(QLatin1String("methodB"));
+ func = classB->findFunction("methodB");
returnOwnership = func->argumentTargetOwnership(func->ownerClass(), 0);
QVERIFY(returnOwnership != TypeSystem::CppOwnership);
}
@@ -253,44 +235,44 @@ struct A {
</typesystem>
)XML";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode,
- false, QLatin1String("0.1")));
- QVERIFY(!builder.isNull());
+ false, u"0.1"_s));
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
QVERIFY(classA);
// Nothing specified, true
- const auto f1 = classA->findFunction(QLatin1String("f1"));
- QVERIFY(!f1.isNull());
+ const auto f1 = classA->findFunction("f1");
+ QVERIFY(f1);
QVERIFY(!f1->allowThread());
// 'auto' specified, should be false for nontrivial function
- const auto f2 = classA->findFunction(QLatin1String("f2"));
- QVERIFY(!f2.isNull());
+ const auto f2 = classA->findFunction("f2");
+ QVERIFY(f2);
QVERIFY(f2->allowThread());
// 'no' specified, should be false
- const auto f3 = classA->findFunction(QLatin1String("f3"));
- QVERIFY(!f3.isNull());
+ const auto f3 = classA->findFunction("f3");
+ QVERIFY(f3);
QVERIFY(!f3->allowThread());
// Nothing specified, should be false for simple getter
- const auto getter1 = classA->findFunction(QLatin1String("getter1"));
- QVERIFY(!getter1.isNull());
+ const auto getter1 = classA->findFunction("getter1");
+ QVERIFY(getter1);
QVERIFY(!getter1->allowThread());
// Forced to true simple getter
- const auto getter2 = classA->findFunction(QLatin1String("getter2"));
- QVERIFY(!getter2.isNull());
+ const auto getter2 = classA->findFunction("getter2");
+ QVERIFY(getter2);
QVERIFY(getter2->allowThread()); // Forced to true simple getter
}
void TestModifyFunction::testGlobalFunctionModification()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
struct A {};\n\
void function(A* a = 0);\n";
- const char* xmlCode = "\
+ const char xmlCode[] = "\
<typesystem package='Foo'>\n\
<primitive-type name='A'/>\n\
<function signature='function(A*)'>\n\
@@ -304,23 +286,24 @@ void TestModifyFunction::testGlobalFunctionModification()
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
QCOMPARE(builder->globalFunctions().size(), 1);
- FunctionModificationList mods = TypeDatabase::instance()->functionModifications(QLatin1String("function(A*)"));
- QCOMPARE(mods.count(), 1);
+ auto *td = TypeDatabase::instance();
+ FunctionModificationList mods = td->globalFunctionModifications({u"function(A*)"_s});
+ QCOMPARE(mods.size(), 1);
const QList<ArgumentModification> &argMods = mods.constFirst().argument_mods();
- QCOMPARE(argMods.count(), 1);
+ QCOMPARE(argMods.size(), 1);
ArgumentModification argMod = argMods.constFirst();
- QCOMPARE(argMod.replacedDefaultExpression(), QLatin1String("A()"));
+ QCOMPARE(argMod.replacedDefaultExpression(), u"A()");
QVERIFY(!builder->globalFunctions().isEmpty());
const auto func = builder->globalFunctions().constFirst();
- QCOMPARE(func->arguments().count(), 1);
+ QCOMPARE(func->arguments().size(), 1);
const AbstractMetaArgument &arg = func->arguments().constFirst();
- QCOMPARE(arg.type().cppSignature(), QLatin1String("A *"));
- QCOMPARE(arg.originalDefaultValueExpression(), QLatin1String("0"));
- QCOMPARE(arg.defaultValueExpression(), QLatin1String("A()"));
+ QCOMPARE(arg.type().cppSignature(), u"A *");
+ QCOMPARE(arg.originalDefaultValueExpression(), u"0");
+ QCOMPARE(arg.defaultValueExpression(), u"A()");
}
// Tests modifications of exception handling and allow-thread
@@ -451,44 +434,44 @@ void TestModifyFunction::testScopedModifications()
QFETCH(bool, expectedAllowThread);
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode.constData(), xmlCode.constData(), false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(builder->classes(), QLatin1String("A"));
+ const auto classA = AbstractMetaClass::findClass(builder->classes(), "A");
QVERIFY(classA);
- auto f = classA->findFunction(QStringLiteral("unspecified"));
- QVERIFY(!f.isNull());
+ auto f = classA->findFunction("unspecified");
+ QVERIFY(f);
QCOMPARE(f->exceptionSpecification(), ExceptionSpecification::Unknown);
QCOMPARE(f->generateExceptionHandling(), expectedGenerateUnspecified);
QCOMPARE(f->allowThread(), expectedAllowThread);
- f = classA->findFunction(QStringLiteral("nonThrowing"));
- QVERIFY(!f.isNull());
+ f = classA->findFunction("nonThrowing");
+ QVERIFY(f);
QCOMPARE(f->exceptionSpecification(), ExceptionSpecification::NoExcept);
QCOMPARE(f->generateExceptionHandling(), expectedGenerateNonThrowing);
- f = classA->findFunction(QStringLiteral("throwing"));
- QVERIFY(!f.isNull());
+ f = classA->findFunction("throwing");
+ QVERIFY(f);
QCOMPARE(f->exceptionSpecification(), ExceptionSpecification::Throws);
QCOMPARE(f->generateExceptionHandling(), expectedGenerateThrowing);
}
void TestModifyFunction::testSnakeCaseRenaming_data()
{
- QTest::addColumn<QString>("name");
- QTest::addColumn<QString>("expected");
+ QTest::addColumn<QLatin1StringView>("name");
+ QTest::addColumn<QLatin1StringView>("expected");
QTest::newRow("s1")
- << QStringLiteral("snakeCaseFunc") << QStringLiteral("snake_case_func");
+ << "snakeCaseFunc"_L1 << "snake_case_func"_L1;
QTest::newRow("s2")
- << QStringLiteral("SnakeCaseFunc") << QStringLiteral("snake_case_func");
+ << "SnakeCaseFunc"_L1 << "snake_case_func"_L1;
QTest::newRow("consecutive-uppercase")
- << QStringLiteral("snakeCAseFunc") << QStringLiteral("snakeCAseFunc");
+ << "snakeCAseFunc"_L1 << "snakeCAseFunc"_L1;
}
void TestModifyFunction::testSnakeCaseRenaming()
{
- QFETCH(QString, name);
- QFETCH(QString, expected);
+ QFETCH(QLatin1StringView, name);
+ QFETCH(QLatin1StringView, expected);
const QString actual = AbstractMetaBuilder::getSnakeCaseName(name);
QCOMPARE(actual, expected);
diff --git a/sources/shiboken6/ApiExtractor/tests/testmodifyfunction.h b/sources/shiboken6/ApiExtractor/tests/testmodifyfunction.h
index a9a13a82b..8a4f5d826 100644
--- a/sources/shiboken6/ApiExtractor/tests/testmodifyfunction.h
+++ b/sources/shiboken6/ApiExtractor/tests/testmodifyfunction.h
@@ -1,35 +1,10 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TESTABSTRACTMETACLASS_H
#define TESTABSTRACTMETACLASS_H
-#include <QObject>
+#include <QtCore/QObject>
class TestModifyFunction : public QObject
{
diff --git a/sources/shiboken6/ApiExtractor/tests/testmultipleinheritance.cpp b/sources/shiboken6/ApiExtractor/tests/testmultipleinheritance.cpp
index 748adfc39..1cf4c8e0f 100644
--- a/sources/shiboken6/ApiExtractor/tests/testmultipleinheritance.cpp
+++ b/sources/shiboken6/ApiExtractor/tests/testmultipleinheritance.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "testmultipleinheritance.h"
#include <QtTest/QTest>
@@ -35,7 +10,7 @@
void TestMultipleInheritance::testVirtualClass()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
struct A {\n\
virtual ~A();\n\
virtual void theBug();\n\
@@ -47,7 +22,7 @@ void TestMultipleInheritance::testVirtualClass()
};\n\
struct D : C {\n\
};\n";
- const char* xmlCode = "\
+ const char xmlCode[] = "\
<typesystem package=\"Foo\">\n\
<object-type name='A' />\n\
<object-type name='B' />\n\
@@ -56,14 +31,14 @@ void TestMultipleInheritance::testVirtualClass()
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QCOMPARE(classes.count(), 4);
+ QCOMPARE(classes.size(), 4);
- const AbstractMetaClass *classD = AbstractMetaClass::findClass(classes, QLatin1String("D"));
+ const auto classD = AbstractMetaClass::findClass(classes, "D");
bool functionFound = false;
for (const auto &f : classD->functions()) {
- if (f->name() == QLatin1String("theBug")) {
+ if (f->name() == u"theBug") {
functionFound = true;
break;
}
diff --git a/sources/shiboken6/ApiExtractor/tests/testmultipleinheritance.h b/sources/shiboken6/ApiExtractor/tests/testmultipleinheritance.h
index 5ee8a21ea..ec9935305 100644
--- a/sources/shiboken6/ApiExtractor/tests/testmultipleinheritance.h
+++ b/sources/shiboken6/ApiExtractor/tests/testmultipleinheritance.h
@@ -1,35 +1,10 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TESTMULTIPLEINHERITANCE_H
#define TESTMULTIPLEINHERITANCE_H
-#include <QObject>
+#include <QtCore/QObject>
class AbstractMetaBuilder;
diff --git a/sources/shiboken6/ApiExtractor/tests/testnamespace.cpp b/sources/shiboken6/ApiExtractor/tests/testnamespace.cpp
index 99aabe780..3773e614a 100644
--- a/sources/shiboken6/ApiExtractor/tests/testnamespace.cpp
+++ b/sources/shiboken6/ApiExtractor/tests/testnamespace.cpp
@@ -1,41 +1,21 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "testnamespace.h"
-#include <QtTest/QTest>
#include "testutil.h"
#include <abstractmetalang.h>
#include <abstractmetaenum.h>
#include <typesystem.h>
+#include <qtcompat.h>
+
+#include <QtTest/QTest>
+
+using namespace Qt::StringLiterals;
+
void NamespaceTest::testNamespaceMembers()
{
- const char* cppCode = "\
+ const char cppCode[] = "\
namespace Namespace\n\
{\n\
enum Option {\n\
@@ -44,26 +24,26 @@ void NamespaceTest::testNamespaceMembers()
};\n\
void foo(Option opt);\n\
};\n";
- const char* xmlCode = "\
+ const char xmlCode[] = "\
<typesystem package='Foo'>\n\
<namespace-type name='Namespace'>\n\
<enum-type name='Option' />\n\
</namespace-type>\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- AbstractMetaClass *ns = AbstractMetaClass::findClass(classes, QLatin1String("Namespace"));
+ const auto ns = AbstractMetaClass::findClass(classes, "Namespace");
QVERIFY(ns);
- auto metaEnum = ns->findEnum(QLatin1String("Option"));
+ auto metaEnum = ns->findEnum(u"Option"_s);
QVERIFY(metaEnum.has_value());
- const auto func = ns->findFunction(QLatin1String("foo"));
- QVERIFY(!func.isNull());
+ const auto func = ns->findFunction("foo");
+ QVERIFY(func);
}
void NamespaceTest::testNamespaceInnerClassMembers()
{
- const char* cppCode = "\
+ const char cppCode[] = "\
namespace OuterNamespace\n\
{\n\
namespace InnerNamespace {\n\
@@ -72,7 +52,7 @@ void NamespaceTest::testNamespaceInnerClassMembers()
};\n\
};\n\
};\n";
- const char* xmlCode = "\
+ const char xmlCode[] = "\
<typesystem package='Foo'>\n\
<namespace-type name='OuterNamespace'>\n\
<namespace-type name='InnerNamespace'>\n\
@@ -81,16 +61,16 @@ void NamespaceTest::testNamespaceInnerClassMembers()
</namespace-type>\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- const AbstractMetaClass *ons = AbstractMetaClass::findClass(classes, QLatin1String("OuterNamespace"));
+ const auto ons = AbstractMetaClass::findClass(classes, "OuterNamespace");
QVERIFY(ons);
- const AbstractMetaClass *ins = AbstractMetaClass::findClass(classes, QLatin1String("OuterNamespace::InnerNamespace"));
+ const auto ins = AbstractMetaClass::findClass(classes, "OuterNamespace::InnerNamespace");
QVERIFY(ins);
- const AbstractMetaClass *sc = AbstractMetaClass::findClass(classes, QLatin1String("OuterNamespace::InnerNamespace::SomeClass"));
+ const auto sc = AbstractMetaClass::findClass(classes, "OuterNamespace::InnerNamespace::SomeClass");
QVERIFY(sc);
- const auto meth = sc->findFunction(QLatin1String("method"));
- QVERIFY(!meth.isNull());
+ const auto meth = sc->findFunction("method");
+ QVERIFY(meth);
}
QTEST_APPLESS_MAIN(NamespaceTest)
diff --git a/sources/shiboken6/ApiExtractor/tests/testnamespace.h b/sources/shiboken6/ApiExtractor/tests/testnamespace.h
index 5153a28a3..af46bdea3 100644
--- a/sources/shiboken6/ApiExtractor/tests/testnamespace.h
+++ b/sources/shiboken6/ApiExtractor/tests/testnamespace.h
@@ -1,35 +1,10 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TESTNAMESPACE_H
#define TESTNAMESPACE_H
-#include <QObject>
+#include <QtCore/QObject>
// The class is named 'NamespaceTest' to avoid clashes with Qt COIN using
// '-qtnamespace TestNamespace'.
diff --git a/sources/shiboken6/ApiExtractor/tests/testnestedtypes.cpp b/sources/shiboken6/ApiExtractor/tests/testnestedtypes.cpp
index d536c0538..10ca1a0f6 100644
--- a/sources/shiboken6/ApiExtractor/tests/testnestedtypes.cpp
+++ b/sources/shiboken6/ApiExtractor/tests/testnestedtypes.cpp
@@ -1,42 +1,25 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "testnestedtypes.h"
-#include <QtTest/QTest>
#include "testutil.h"
#include <abstractmetafunction.h>
#include <abstractmetalang.h>
+#include <abstractmetatype.h>
+#include <codesnip.h>
#include <modifications.h>
-#include <typesystem.h>
+#include <complextypeentry.h>
+#include <primitivetypeentry.h>
+
+#include <qtcompat.h>
+
+#include <QtTest/QTest>
+
+using namespace Qt::StringLiterals;
void TestNestedTypes::testNestedTypesModifications()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
namespace OuterNamespace {\n\
namespace InnerNamespace {\n\
struct SomeClass {\n\
@@ -44,7 +27,7 @@ void TestNestedTypes::testNestedTypesModifications()
};\n\
};\n\
};\n";
- const char* xmlCode = "\
+ const char xmlCode[] = "\
<typesystem package='Foo'>\n\
<namespace-type name='OuterNamespace'>\n\
<namespace-type name='InnerNamespace'>\n\
@@ -60,34 +43,35 @@ void TestNestedTypes::testNestedTypesModifications()
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- const AbstractMetaClass *ons = AbstractMetaClass::findClass(classes, QLatin1String("OuterNamespace"));
+ const auto ons = AbstractMetaClass::findClass(classes, "OuterNamespace");
QVERIFY(ons);
- const AbstractMetaClass *ins = AbstractMetaClass::findClass(classes, QLatin1String("OuterNamespace::InnerNamespace"));
+ const auto ins = AbstractMetaClass::findClass(classes, "OuterNamespace::InnerNamespace");
QVERIFY(ins);
- QCOMPARE(ins->functions().count(), 1);
- QCOMPARE(ins->typeEntry()->codeSnips().count(), 1);
+ QCOMPARE(ins->functions().size(), 1);
+ QCOMPARE(ins->typeEntry()->codeSnips().size(), 1);
CodeSnip snip = ins->typeEntry()->codeSnips().constFirst();
- QCOMPARE(snip.code().trimmed(), QLatin1String("custom_code1();"));
+ QCOMPARE(snip.code().trimmed(), u"custom_code1();");
const auto addedFunc = ins->functions().constFirst();
QVERIFY(addedFunc->isUserAdded());
QCOMPARE(addedFunc->access(), Access::Public);
QCOMPARE(addedFunc->functionType(), AbstractMetaFunction::NormalFunction);
QCOMPARE(addedFunc->type().minimalSignature(),
- QLatin1String("OuterNamespace::InnerNamespace::SomeClass"));
+ u"OuterNamespace::InnerNamespace::SomeClass");
QCOMPARE(addedFunc->modifications().size(), 1);
QVERIFY(addedFunc->modifications().constFirst().isCodeInjection());
snip = addedFunc->modifications().constFirst().snips().constFirst();
- QCOMPARE(snip.code().trimmed(), QLatin1String("custom_code2();"));
+ QCOMPARE(snip.code().trimmed(), u"custom_code2();");
- const AbstractMetaClass *sc = AbstractMetaClass::findClass(classes, QLatin1String("OuterNamespace::InnerNamespace::SomeClass"));
- QVERIFY(ins);
- QCOMPARE(sc->functions().count(), 2); // default constructor and removed method
+ const auto sc =
+ AbstractMetaClass::findClass(classes, "OuterNamespace::InnerNamespace::SomeClass");
+ QVERIFY(sc);
+ QCOMPARE(sc->functions().size(), 2); // default constructor and removed method
const auto removedFunc = sc->functions().constLast();
QVERIFY(removedFunc->isModifiedRemoved());
}
@@ -95,11 +79,11 @@ void TestNestedTypes::testNestedTypesModifications()
void TestNestedTypes::testDuplicationOfNestedTypes()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
namespace Namespace {\n\
class SomeClass {};\n\
};\n";
- const char* xmlCode = "\
+ const char xmlCode[] = "\
<typesystem package='Foo'>\n\
<namespace-type name='Namespace'>\n\
<value-type name='SomeClass'>\n\
@@ -109,22 +93,22 @@ void TestNestedTypes::testDuplicationOfNestedTypes()
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QCOMPARE(classes.count(), 2);
- const AbstractMetaClass *nspace = AbstractMetaClass::findClass(classes, QLatin1String("Namespace"));
+ QCOMPARE(classes.size(), 2);
+ const auto nspace = AbstractMetaClass::findClass(classes, "Namespace");
QVERIFY(nspace);
- const AbstractMetaClass *cls1 = AbstractMetaClass::findClass(classes, QLatin1String("SomeClass"));
+ const auto cls1 = AbstractMetaClass::findClass(classes, "SomeClass");
QVERIFY(cls1);
- const AbstractMetaClass *cls2 = AbstractMetaClass::findClass(classes, QLatin1String("Namespace::SomeClass"));
+ const auto cls2 = AbstractMetaClass::findClass(classes, "Namespace::SomeClass");
QVERIFY(cls2);
QCOMPARE(cls1, cls2);
- QCOMPARE(cls1->name(), QLatin1String("SomeClass"));
- QCOMPARE(cls1->qualifiedCppName(), QLatin1String("Namespace::SomeClass"));
+ QCOMPARE(cls1->name(), u"SomeClass");
+ QCOMPARE(cls1->qualifiedCppName(), u"Namespace::SomeClass");
- TypeEntry* t1 = TypeDatabase::instance()->findType(QLatin1String("Namespace::SomeClass"));
+ auto t1 = TypeDatabase::instance()->findType(u"Namespace::SomeClass"_s);
QVERIFY(t1);
- TypeEntry* t2 = TypeDatabase::instance()->findType(QLatin1String("SomeClass"));
+ auto t2 = TypeDatabase::instance()->findType(u"SomeClass"_s);
QVERIFY(!t2);
}
diff --git a/sources/shiboken6/ApiExtractor/tests/testnestedtypes.h b/sources/shiboken6/ApiExtractor/tests/testnestedtypes.h
index a870511ff..544ea05ab 100644
--- a/sources/shiboken6/ApiExtractor/tests/testnestedtypes.h
+++ b/sources/shiboken6/ApiExtractor/tests/testnestedtypes.h
@@ -1,34 +1,10 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TESTNESTEDTYPES_H
#define TESTNESTEDTYPES_H
-#include <QObject>
+
+#include <QtCore/QObject>
class TestNestedTypes : public QObject
{
diff --git a/sources/shiboken6/ApiExtractor/tests/testnumericaltypedef.cpp b/sources/shiboken6/ApiExtractor/tests/testnumericaltypedef.cpp
index de2f30135..9eef7ec47 100644
--- a/sources/shiboken6/ApiExtractor/tests/testnumericaltypedef.cpp
+++ b/sources/shiboken6/ApiExtractor/tests/testnumericaltypedef.cpp
@@ -1,45 +1,22 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "testnumericaltypedef.h"
#include <QtTest/QTest>
#include "testutil.h"
+#include <abstractmetaargument.h>
#include <abstractmetafunction.h>
#include <abstractmetalang.h>
+#include <abstractmetatype.h>
#include <typesystem.h>
void TestNumericalTypedef::testNumericalTypedef()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
typedef double real;\n\
void funcDouble(double);\n\
void funcReal(real);\n";
- const char* xmlCode = "\
+ const char xmlCode[] = "\
<typesystem package='Foo'>\n\
<primitive-type name='double'/>\n\
<primitive-type name='real'/>\n\
@@ -47,37 +24,37 @@ void TestNumericalTypedef::testNumericalTypedef()
<function signature='funcReal(real)'/>\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
QCOMPARE(builder->globalFunctions().size(), 2);
auto funcDouble = builder->globalFunctions().constFirst();
auto funcReal = builder->globalFunctions().constLast();
QVERIFY(funcReal);
- if (funcDouble->name() == QLatin1String("funcReal"))
+ if (funcDouble->name() == u"funcReal")
std::swap(funcDouble, funcReal);
- QCOMPARE(funcDouble->minimalSignature(), QLatin1String("funcDouble(double)"));
- QCOMPARE(funcReal->minimalSignature(), QLatin1String("funcReal(real)"));
+ QCOMPARE(funcDouble->minimalSignature(), u"funcDouble(double)");
+ QCOMPARE(funcReal->minimalSignature(), u"funcReal(real)");
const AbstractMetaType doubleType = funcDouble->arguments().constFirst().type();
- QCOMPARE(doubleType.cppSignature(), QLatin1String("double"));
+ QCOMPARE(doubleType.cppSignature(), u"double");
QVERIFY(doubleType.isPrimitive());
- QVERIFY(doubleType.typeEntry()->isCppPrimitive());
+ QVERIFY(isCppPrimitive(doubleType.typeEntry()));
const AbstractMetaType realType = funcReal->arguments().constFirst().type();
- QCOMPARE(realType.cppSignature(), QLatin1String("real"));
+ QCOMPARE(realType.cppSignature(), u"real");
QVERIFY(realType.isPrimitive());
- QVERIFY(realType.typeEntry()->isCppPrimitive());
+ QVERIFY(isCppPrimitive(realType.typeEntry()));
}
void TestNumericalTypedef::testUnsignedNumericalTypedef()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
typedef unsigned short custom_ushort;\n\
void funcUnsignedShort(unsigned short);\n\
void funcUShort(custom_ushort);\n";
- const char* xmlCode = "\
+ const char xmlCode[] = "\
<typesystem package='Foo'>\n\
<primitive-type name='short'/>\n\
<primitive-type name='unsigned short'/>\n\
@@ -86,27 +63,27 @@ void TestNumericalTypedef::testUnsignedNumericalTypedef()
<function signature='funcUShort(custom_ushort)'/>\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
QCOMPARE(builder->globalFunctions().size(), 2);
auto funcUnsignedShort = builder->globalFunctions().constFirst();
auto funcUShort = builder->globalFunctions().constLast();
- if (funcUnsignedShort->name() == QLatin1String("funcUShort"))
+ if (funcUnsignedShort->name() == u"funcUShort")
std::swap(funcUnsignedShort, funcUShort);
- QCOMPARE(funcUnsignedShort->minimalSignature(), QLatin1String("funcUnsignedShort(unsigned short)"));
- QCOMPARE(funcUShort->minimalSignature(), QLatin1String("funcUShort(custom_ushort)"));
+ QCOMPARE(funcUnsignedShort->minimalSignature(), u"funcUnsignedShort(unsigned short)");
+ QCOMPARE(funcUShort->minimalSignature(), u"funcUShort(custom_ushort)");
const AbstractMetaType unsignedShortType = funcUnsignedShort->arguments().constFirst().type();
- QCOMPARE(unsignedShortType.cppSignature(), QLatin1String("unsigned short"));
+ QCOMPARE(unsignedShortType.cppSignature(), u"unsigned short");
QVERIFY(unsignedShortType.isPrimitive());
- QVERIFY(unsignedShortType.typeEntry()->isCppPrimitive());
+ QVERIFY(isCppPrimitive(unsignedShortType.typeEntry()));
const AbstractMetaType ushortType = funcUShort->arguments().constFirst().type();
- QCOMPARE(ushortType.cppSignature(), QLatin1String("custom_ushort"));
+ QCOMPARE(ushortType.cppSignature(), u"custom_ushort");
QVERIFY(ushortType.isPrimitive());
- QVERIFY(ushortType.typeEntry()->isCppPrimitive());
+ QVERIFY(isCppPrimitive(ushortType.typeEntry()));
}
QTEST_APPLESS_MAIN(TestNumericalTypedef)
diff --git a/sources/shiboken6/ApiExtractor/tests/testnumericaltypedef.h b/sources/shiboken6/ApiExtractor/tests/testnumericaltypedef.h
index e4e051077..32f549836 100644
--- a/sources/shiboken6/ApiExtractor/tests/testnumericaltypedef.h
+++ b/sources/shiboken6/ApiExtractor/tests/testnumericaltypedef.h
@@ -1,35 +1,10 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TESTNUMERICALTYPEDEF_H
#define TESTNUMERICALTYPEDEF_H
-#include <QObject>
+#include <QtCore/QObject>
class TestNumericalTypedef : public QObject
{
diff --git a/sources/shiboken6/ApiExtractor/tests/testprimitivetypetag.cpp b/sources/shiboken6/ApiExtractor/tests/testprimitivetypetag.cpp
index e78f9f274..99cced09d 100644
--- a/sources/shiboken6/ApiExtractor/tests/testprimitivetypetag.cpp
+++ b/sources/shiboken6/ApiExtractor/tests/testprimitivetypetag.cpp
@@ -1,59 +1,39 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "testprimitivetypetag.h"
-#include <QtTest/QTest>
#include "testutil.h"
#include <abstractmetalang.h>
-#include <typesystem.h>
+#include <primitivetypeentry.h>
+
+#include <qtcompat.h>
+
+#include <QtTest/QTest>
+
+using namespace Qt::StringLiterals;
void TestPrimitiveTypeTag::testPrimitiveTypeDefaultConstructor()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
struct A {};\n\
struct B {};\n";
- const char* xmlCode = "\
+ const char xmlCode[] = "\
<typesystem package=\"Foo\">\n\
<primitive-type name='A' default-constructor='A()'/>\n\
<object-type name='B'/>\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QCOMPARE(classes.count(), 1);
- const AbstractMetaClass *classB = AbstractMetaClass::findClass(classes, QLatin1String("B"));
+ QCOMPARE(classes.size(), 1);
+ const auto classB = AbstractMetaClass::findClass(classes, "B");
QVERIFY(classB);
- PrimitiveTypeEntry* typeEntry = TypeDatabase::instance()->findPrimitiveType(QLatin1String("A"));
+ auto typeEntry = TypeDatabase::instance()->findPrimitiveType(u"A"_s);
QVERIFY(typeEntry);
QVERIFY(typeEntry->hasDefaultConstructor());
- QCOMPARE(typeEntry->defaultConstructor(), QLatin1String("A()"));
+ QCOMPARE(typeEntry->defaultConstructor(), u"A()");
}
QTEST_APPLESS_MAIN(TestPrimitiveTypeTag)
diff --git a/sources/shiboken6/ApiExtractor/tests/testprimitivetypetag.h b/sources/shiboken6/ApiExtractor/tests/testprimitivetypetag.h
index ee5f5159f..3a0e05138 100644
--- a/sources/shiboken6/ApiExtractor/tests/testprimitivetypetag.h
+++ b/sources/shiboken6/ApiExtractor/tests/testprimitivetypetag.h
@@ -1,35 +1,10 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TESTPRIMITIVETYPETAG_H
#define TESTPRIMITIVETYPETAG_H
-#include <QObject>
+#include <QtCore/QObject>
class TestPrimitiveTypeTag : public QObject
{
diff --git a/sources/shiboken6/ApiExtractor/tests/testrefcounttag.cpp b/sources/shiboken6/ApiExtractor/tests/testrefcounttag.cpp
index f3ffd0edf..f2e261624 100644
--- a/sources/shiboken6/ApiExtractor/tests/testrefcounttag.cpp
+++ b/sources/shiboken6/ApiExtractor/tests/testrefcounttag.cpp
@@ -1,46 +1,26 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "testrefcounttag.h"
-#include <QtTest/QTest>
#include "testutil.h"
#include <abstractmetafunction.h>
#include <abstractmetalang.h>
#include <modifications.h>
+#include <qtcompat.h>
+
+#include <QtTest/QTest>
+
+using namespace Qt::StringLiterals;
+
void TestRefCountTag::testReferenceCountTag()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
struct A {};\n\
struct B {\n\
void keepObject(B* b);\n\
};\n";
- const char* xmlCode = "\
+ const char xmlCode[] = "\
<typesystem package=\"Foo\">\n\
<object-type name='A'/>\n\
<object-type name='B'>\n\
@@ -52,11 +32,11 @@ void TestRefCountTag::testReferenceCountTag()
</object-type>\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- const AbstractMetaClass *classB = AbstractMetaClass::findClass(classes, QLatin1String("B"));
- const auto func = classB->findFunction(QLatin1String("keepObject"));
- QVERIFY(!func.isNull());
+ const auto classB = AbstractMetaClass::findClass(classes, "B");
+ const auto func = classB->findFunction("keepObject");
+ QVERIFY(func);
const auto refCount =
func->modifications().constFirst().argument_mods().constFirst().referenceCounts().constFirst();
QCOMPARE(refCount.action, ReferenceCount::Add);
@@ -64,12 +44,12 @@ void TestRefCountTag::testReferenceCountTag()
void TestRefCountTag::testWithApiVersion()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
struct A {};\n\
struct B {\n\
void keepObject(B*, B*);\n\
};\n";
- const char* xmlCode = "\
+ const char xmlCode[] = "\
<typesystem package=\"Foo\">\n\
<object-type name='A'/>\n\
<object-type name='B'>\n\
@@ -85,12 +65,12 @@ void TestRefCountTag::testWithApiVersion()
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode,
- false, QLatin1String("0.1")));
- QVERIFY(!builder.isNull());
+ false, u"0.1"_s));
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- const AbstractMetaClass *classB = AbstractMetaClass::findClass(classes, QLatin1String("B"));
- const auto func = classB->findFunction(QLatin1String("keepObject"));
- QVERIFY(!func.isNull());
+ const auto classB = AbstractMetaClass::findClass(classes, "B");
+ const auto func = classB->findFunction("keepObject");
+ QVERIFY(func);
const auto refCount =
func->modifications().constFirst().argument_mods().constFirst().referenceCounts().constFirst();
QCOMPARE(refCount.action, ReferenceCount::Add);
diff --git a/sources/shiboken6/ApiExtractor/tests/testrefcounttag.h b/sources/shiboken6/ApiExtractor/tests/testrefcounttag.h
index 4acbddcfc..6093c6f7b 100644
--- a/sources/shiboken6/ApiExtractor/tests/testrefcounttag.h
+++ b/sources/shiboken6/ApiExtractor/tests/testrefcounttag.h
@@ -1,35 +1,10 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TESTREFCOUNTTAG_H
#define TESTREFCOUNTTAG_H
-#include <QObject>
+#include <QtCore/QObject>
class TestRefCountTag : public QObject
{
diff --git a/sources/shiboken6/ApiExtractor/tests/testreferencetopointer.cpp b/sources/shiboken6/ApiExtractor/tests/testreferencetopointer.cpp
index b929ebd66..ae85c5a86 100644
--- a/sources/shiboken6/ApiExtractor/tests/testreferencetopointer.cpp
+++ b/sources/shiboken6/ApiExtractor/tests/testreferencetopointer.cpp
@@ -1,58 +1,35 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "testreferencetopointer.h"
#include <QtTest/QTest>
#include "testutil.h"
+#include <abstractmetaargument.h>
#include <abstractmetafunction.h>
#include <abstractmetalang.h>
+#include <abstractmetatype.h>
#include <typesystem.h>
void TestReferenceToPointer::testReferenceToPointerArgument()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
struct A {};\n\
struct B {\n\
void dummy(A*&);\n\
};\n";
- const char* xmlCode = "\
+ const char xmlCode[] = "\
<typesystem package=\"Foo\">\n\
<object-type name='A'/>\n\
<object-type name='B'/>\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- const AbstractMetaClass *classB = AbstractMetaClass::findClass(classes, QLatin1String("B"));
+ const auto classB = AbstractMetaClass::findClass(classes, "B");
QVERIFY(classB);
- const auto func = classB->findFunction(QLatin1String("dummy"));
- QVERIFY(!func.isNull());
- QCOMPARE(func->arguments().constFirst().type().minimalSignature(), QLatin1String("A*&"));
+ const auto func = classB->findFunction("dummy");
+ QVERIFY(func);
+ QCOMPARE(func->arguments().constFirst().type().minimalSignature(), u"A*&");
}
QTEST_APPLESS_MAIN(TestReferenceToPointer)
diff --git a/sources/shiboken6/ApiExtractor/tests/testreferencetopointer.h b/sources/shiboken6/ApiExtractor/tests/testreferencetopointer.h
index 0f717b55d..2a7b34807 100644
--- a/sources/shiboken6/ApiExtractor/tests/testreferencetopointer.h
+++ b/sources/shiboken6/ApiExtractor/tests/testreferencetopointer.h
@@ -1,35 +1,10 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TESTREFERENCETOPOINTER_H
#define TESTREFERENCETOPOINTER_H
-#include <QObject>
+#include <QtCore/QObject>
class TestReferenceToPointer : public QObject
{
diff --git a/sources/shiboken6/ApiExtractor/tests/testremovefield.cpp b/sources/shiboken6/ApiExtractor/tests/testremovefield.cpp
index 5fb2ff687..2cc82071b 100644
--- a/sources/shiboken6/ApiExtractor/tests/testremovefield.cpp
+++ b/sources/shiboken6/ApiExtractor/tests/testremovefield.cpp
@@ -1,46 +1,26 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "testremovefield.h"
#include <QtTest/QTest>
#include "testutil.h"
+#include <abstractmetaargument.h>
#include <abstractmetafield.h>
+#include <abstractmetafunction.h>
+#include <abstractmetatype.h>
#include <abstractmetalang.h>
#include <typesystem.h>
+using namespace Qt::StringLiterals;
+
void TestRemoveField::testRemoveField()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
struct A {\n\
int fieldA;\n\
int fieldB;\n\
};\n";
- const char* xmlCode = "\
+ const char xmlCode[] = "\
<typesystem package=\"Foo\">\n\
<primitive-type name='int'/>\n\
<value-type name='A'>\n\
@@ -48,13 +28,47 @@ void TestRemoveField::testRemoveField()
</value-type>\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
QVERIFY(classA);
QCOMPARE(classA->fields().size(), 1);
const AbstractMetaField &fieldA = classA->fields().constFirst();
- QCOMPARE(fieldA.name(), QLatin1String("fieldA"));
+ QCOMPARE(fieldA.name(), u"fieldA");
+}
+
+// Verify that 'static constexpr' fields are seen as static/const and
+// appear fully qualified for function parameter default values.
+void TestRemoveField::testConstExprField()
+{
+ const char cppCode[] = R"(
+struct A {
+ static constexpr int constExprField = 44;
+
+ void f(int iParam=constExprField);
+};
+)";
+
+ const char xmlCode[] = R"(
+<typesystem package="Foo">
+ <value-type name='A'/>
+</typesystem>
+)";
+
+ QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
+ QVERIFY(builder);
+ AbstractMetaClassList classes = builder->classes();
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
+ QVERIFY(classA);
+ const auto &fields = classA->fields();
+ QCOMPARE(fields.size(), 1);
+ QVERIFY(fields.constFirst().isStatic());
+ QVERIFY(fields.constFirst().type().isConstant());
+ const auto function = classA->findFunction("f"_L1);
+ QVERIFY(function);
+ const auto &arguments = function->arguments();
+ QCOMPARE(arguments.size(), 1);
+ QCOMPARE(arguments.constFirst().defaultValueExpression(), "A::constExprField"_L1);
}
QTEST_APPLESS_MAIN(TestRemoveField)
diff --git a/sources/shiboken6/ApiExtractor/tests/testremovefield.h b/sources/shiboken6/ApiExtractor/tests/testremovefield.h
index 8b52cc32f..05912d99e 100644
--- a/sources/shiboken6/ApiExtractor/tests/testremovefield.h
+++ b/sources/shiboken6/ApiExtractor/tests/testremovefield.h
@@ -1,41 +1,17 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TESTREMOVEFIELD_H
#define TESTREMOVEFIELD_H
-#include <QObject>
+#include <QtCore/QObject>
class TestRemoveField : public QObject
{
Q_OBJECT
private slots:
void testRemoveField();
+ void testConstExprField();
};
#endif
diff --git a/sources/shiboken6/ApiExtractor/tests/testremoveimplconv.cpp b/sources/shiboken6/ApiExtractor/tests/testremoveimplconv.cpp
index 41103c24e..87e318e95 100644
--- a/sources/shiboken6/ApiExtractor/tests/testremoveimplconv.cpp
+++ b/sources/shiboken6/ApiExtractor/tests/testremoveimplconv.cpp
@@ -1,50 +1,27 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "testremoveimplconv.h"
#include "testutil.h"
#include <QtTest/QTest>
+#include <abstractmetaargument.h>
#include <abstractmetafunction.h>
#include <abstractmetalang.h>
-#include <typesystem.h>
+#include <abstractmetatype.h>
+#include <complextypeentry.h>
// When a constructor able to trigger implicity conversions is removed
// it should not appear in the implicity conversion list.
void TestRemoveImplConv::testRemoveImplConv()
{
- const char* cppCode ="\
+ const char cppCode[] = "\
struct A {};\n\
struct B {};\n\
struct C {\n\
C(const A&);\n\
C(const B&);\n\
};\n";
- const char* xmlCode = "\
+ const char xmlCode[] = "\
<typesystem package=\"Foo\">\n\
<value-type name='A'/>\n\
<value-type name='B'/>\n\
@@ -53,17 +30,17 @@ void TestRemoveImplConv::testRemoveImplConv()
</value-type>\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QCOMPARE(classes.count(), 3);
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
+ QCOMPARE(classes.size(), 3);
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
QVERIFY(classA);
- const AbstractMetaClass *classB = AbstractMetaClass::findClass(classes, QLatin1String("B"));
+ const auto classB = AbstractMetaClass::findClass(classes, "B");
QVERIFY(classB);
- const AbstractMetaClass *classC = AbstractMetaClass::findClass(classes, QLatin1String("C"));
+ const auto classC = AbstractMetaClass::findClass(classes, "C");
QVERIFY(classC);
const auto implConv = classC->implicitConversions();
- QCOMPARE(implConv.count(), 1);
+ QCOMPARE(implConv.size(), 1);
QCOMPARE(implConv.constFirst()->arguments().constFirst().type().typeEntry(),
classB->typeEntry());
}
diff --git a/sources/shiboken6/ApiExtractor/tests/testremoveimplconv.h b/sources/shiboken6/ApiExtractor/tests/testremoveimplconv.h
index 9e96dc2e9..d11d30633 100644
--- a/sources/shiboken6/ApiExtractor/tests/testremoveimplconv.h
+++ b/sources/shiboken6/ApiExtractor/tests/testremoveimplconv.h
@@ -1,35 +1,10 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TESTREMOVEIMPLCONV_H
#define TESTREMOVEIMPLCONV_H
-#include <QObject>
+#include <QtCore/QObject>
class TestRemoveImplConv : public QObject
{
diff --git a/sources/shiboken6/ApiExtractor/tests/testremoveoperatormethod.cpp b/sources/shiboken6/ApiExtractor/tests/testremoveoperatormethod.cpp
index 9824d1bf0..17a069b5e 100644
--- a/sources/shiboken6/ApiExtractor/tests/testremoveoperatormethod.cpp
+++ b/sources/shiboken6/ApiExtractor/tests/testremoveoperatormethod.cpp
@@ -1,63 +1,44 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "testremoveoperatormethod.h"
-#include <QtTest/QTest>
#include "testutil.h"
#include <abstractmetafunction.h>
#include <abstractmetalang.h>
#include <typesystem.h>
+#include <qtcompat.h>
+
+#include <QtTest/QTest>
+
+using namespace Qt::StringLiterals;
+
void TestRemoveOperatorMethod::testRemoveOperatorMethod()
{
- const char* cppCode ="\
- #include <stdint.h>\n\
- \n\
- struct Char {};\n\
- struct ByteArray {};\n\
- struct String {};\n\
- \n\
- struct A {\n\
- A& operator>>(char&);\n\
- A& operator>>(char*);\n\
- A& operator>>(short&);\n\
- A& operator>>(unsigned short&);\n\
- A& operator>>(int&);\n\
- A& operator>>(unsigned int&);\n\
- A& operator>>(int64_t&);\n\
- A& operator>>(uint64_t&);\n\
- A& operator>>(float&);\n\
- A& operator>>(double&);\n\
- A& operator>>(Char&);\n\
- A& operator>>(ByteArray&);\n\
- A& operator>>(String&);\n\
- };\n";
- const char* xmlCode = "\
+ const char cppCode[] = R"(#include <cstdint>
+
+struct Char {};
+struct ByteArray {};
+struct String {};
+
+struct A {
+ A& operator>>(char&);
+ A& operator>>(char*);
+ A& operator>>(short&);
+ A& operator>>(unsigned short&);
+ A& operator>>(int&);
+ A& operator>>(unsigned int&);
+ A& operator>>(int64_t&);
+ A& operator>>(uint64_t&);
+ A& operator>>(float&);
+ A& operator>>(double&);
+ A& operator>>(Char&);
+ A& operator>>(ByteArray&);
+ A& operator>>(String&);
+};
+)";
+
+ const char xmlCode[] = "\
<typesystem package='Foo'>\n\
<primitive-type name='char'/>\n\
<primitive-type name='short'/>\n\
@@ -87,25 +68,25 @@ void TestRemoveOperatorMethod::testRemoveOperatorMethod()
</object-type>\n\
</typesystem>\n";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
QVERIFY(classA);
QCOMPARE(classA->functions().size(), 14);
QStringList removedSignatures;
- removedSignatures.append(QLatin1String("operator>>(char&)"));
- removedSignatures.append(QLatin1String("operator>>(char*)"));
- removedSignatures.append(QLatin1String("operator>>(short&)"));
- removedSignatures.append(QLatin1String("operator>>(unsigned short&)"));
- removedSignatures.append(QLatin1String("operator>>(int&)"));
- removedSignatures.append(QLatin1String("operator>>(unsigned int&)"));
- removedSignatures.append(QLatin1String("operator>>(int64_t&)"));
- removedSignatures.append(QLatin1String("operator>>(uint64_t&)"));
- removedSignatures.append(QLatin1String("operator>>(float&)"));
- removedSignatures.append(QLatin1String("operator>>(double&)"));
- removedSignatures.append(QLatin1String("operator>>(Char&)"));
- removedSignatures.append(QLatin1String("operator>>(String&)"));
- int notRemoved = classA->functions().size();
+ removedSignatures.append(u"operator>>(char&)"_s);
+ removedSignatures.append(u"operator>>(char*)"_s);
+ removedSignatures.append(u"operator>>(short&)"_s);
+ removedSignatures.append(u"operator>>(unsigned short&)"_s);
+ removedSignatures.append(u"operator>>(int&)"_s);
+ removedSignatures.append(u"operator>>(unsigned int&)"_s);
+ removedSignatures.append(u"operator>>(int64_t&)"_s);
+ removedSignatures.append(u"operator>>(uint64_t&)"_s);
+ removedSignatures.append(u"operator>>(float&)"_s);
+ removedSignatures.append(u"operator>>(double&)"_s);
+ removedSignatures.append(u"operator>>(Char&)"_s);
+ removedSignatures.append(u"operator>>(String&)"_s);
+ auto notRemoved = classA->functions().size();
for (const auto &f : classA->functions()) {
QCOMPARE(f->isModifiedRemoved(), bool(removedSignatures.contains(f->minimalSignature())));
notRemoved -= int(f->isModifiedRemoved());
diff --git a/sources/shiboken6/ApiExtractor/tests/testremoveoperatormethod.h b/sources/shiboken6/ApiExtractor/tests/testremoveoperatormethod.h
index 23c3e5144..6ec335e0c 100644
--- a/sources/shiboken6/ApiExtractor/tests/testremoveoperatormethod.h
+++ b/sources/shiboken6/ApiExtractor/tests/testremoveoperatormethod.h
@@ -1,35 +1,10 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TESTREMOVEOPERATORMETHOD_H
#define TESTREMOVEOPERATORMETHOD_H
-#include <QObject>
+#include <QtCore/QObject>
class TestRemoveOperatorMethod : public QObject
{
diff --git a/sources/shiboken6/ApiExtractor/tests/testresolvetype.cpp b/sources/shiboken6/ApiExtractor/tests/testresolvetype.cpp
index 4c2930234..67ebcc606 100644
--- a/sources/shiboken6/ApiExtractor/tests/testresolvetype.cpp
+++ b/sources/shiboken6/ApiExtractor/tests/testresolvetype.cpp
@@ -1,40 +1,33 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "testresolvetype.h"
-#include <QtTest/QTest>
#include "testutil.h"
+#include <abstractmetaargument.h>
+#include <abstractmetaenum.h>
+#include <abstractmetafunction.h>
#include <abstractmetalang.h>
-#include <typesystem.h>
+#include <abstractmetatype.h>
+#include <complextypeentry.h>
+#include <enumtypeentry.h>
+#include <primitivetypeentry.h>
+#include <typedatabase.h>
+
+#include <qtcompat.h>
+
+#include <QtTest/QTest>
+
+using namespace Qt::StringLiterals;
+
+void TestResolveType::initTestCase()
+{
+ // For enum lookup in testFixDefaultArguments()
+ AbstractMetaBuilder::setCodeModelTestMode(true);
+}
void TestResolveType::testResolveReturnTypeFromParentScope()
{
- const char* cppCode = "\n\
+ const char cppCode[] = "\n\
namespace A {\n\
struct B {\n\
struct C {};\n\
@@ -44,7 +37,7 @@ void TestResolveType::testResolveReturnTypeFromParentScope()
C* method();\n\
};\n\
};";
- const char* xmlCode = R"XML(
+ const char xmlCode[] = R"XML(
<typesystem package='Foo'>
<namespace-type name='A'>
<value-type name='B'>
@@ -54,14 +47,235 @@ void TestResolveType::testResolveReturnTypeFromParentScope()
</namespace-type>
</typesystem>)XML";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- const AbstractMetaClass *classD = AbstractMetaClass::findClass(classes, QLatin1String("A::D"));
+ const auto classD = AbstractMetaClass::findClass(classes, "A::D");
QVERIFY(classD);
- const auto meth = classD->findFunction(QLatin1String("method"));
- QVERIFY(!meth.isNull());
+ const auto meth = classD->findFunction("method");
+ QVERIFY(meth);
QVERIFY(meth);
}
-QTEST_APPLESS_MAIN(TestResolveType)
+// Helper classes and functions for testing default value fixing.
+// Put the AbstractMetaBuilder into test fixture struct to avoid having
+// to re-parse for each data row.
+
+struct DefaultValuesFixture
+{
+ std::shared_ptr<AbstractMetaBuilder> builder;
+
+ AbstractMetaType intType;
+ AbstractMetaType stringType;
+ AbstractMetaType classType;
+ AbstractMetaType listType;
+ AbstractMetaType enumType;
+ AbstractMetaClassCPtr klass{};
+};
+
+Q_DECLARE_METATYPE(DefaultValuesFixture)
+Q_DECLARE_METATYPE(AbstractMetaType)
+
+static int populateDefaultValuesFixture(DefaultValuesFixture *fixture)
+{
+ static const char cppCode[] =R"(
+#include <string>
+#include <list>
+
+namespace Namespace {
+class Test
+{
+public:
+ enum Enum { enumValue1, enumValue2 };
+
+ explicit Test(int x = INT_FIELD_1);
+ explicit Test(const std::string &t = std::string(CHAR_FIELD_1));
+
+ static void listFunc(std::list<Test> list = std::list<Test>());
+
+ static const int INT_FIELD_1 = 42;
+ static const char *CHAR_FIELD_1;
+ static const Enum DefaultValue = enumValue1;
+};
+} // Namespace
+)";
+ static const char xmlCode[] = R"(
+<typesystem package="Foo">
+ <namespace-type name='Namespace'>
+ <value-type name='Test'>
+ <enum-type name='Enum'/>
+ </value-type>
+ </namespace-type>
+ <container-type name="std::list" type="list"/>
+</typesystem>
+)";
+
+ fixture->builder.reset(TestUtil::parse(cppCode, xmlCode, false));
+ if (!fixture->builder)
+ return -1;
+
+ for (const auto &klass : fixture->builder->classes()) {
+ if (klass->name() == u"Test") {
+ fixture->klass = klass;
+ break;
+ }
+ }
+ if (!fixture->klass)
+ return -2;
+
+ fixture->classType = AbstractMetaType(fixture->klass->typeEntry());
+ fixture->classType.decideUsagePattern();
+
+ for (const auto &f : fixture->klass->findFunctions("Test")) {
+ if (f->functionType() == AbstractMetaFunction::ConstructorFunction
+ && f->arguments().size() == 1) {
+ const auto type = f->arguments().constFirst().type();
+ if (type.name() == u"int")
+ fixture->intType = type;
+ else
+ fixture->stringType = type;
+ }
+ }
+ if (fixture->intType.isVoid() || fixture->stringType.isVoid())
+ return -3;
+
+ auto listFunc = fixture->klass->findFunction("listFunc");
+ if (!listFunc || listFunc->arguments().size() != 1)
+ return -3;
+ fixture->listType = listFunc->arguments().constFirst().type();
+
+ fixture->enumType = AbstractMetaType(fixture->klass->enums().constFirst().typeEntry());
+ fixture->enumType.decideUsagePattern();
+ return 0;
+}
+
+void TestResolveType::testFixDefaultArguments_data()
+{
+ DefaultValuesFixture fixture;
+ const int setupOk = populateDefaultValuesFixture(&fixture);
+
+ QTest::addColumn<DefaultValuesFixture>("fixture");
+ QTest::addColumn<int>("setupOk"); // To verify setup
+ QTest::addColumn<AbstractMetaType>("metaType"); // Type and parameters for fixup
+ QTest::addColumn<QString>("input");
+ QTest::addColumn<QString>("expected");
+
+ QTest::newRow("int") << fixture << setupOk
+ << fixture.intType << "1" << "1";
+ QTest::newRow("int-macro") << fixture << setupOk
+ << fixture.intType << "GL_MACRO" << "GL_MACRO";
+ QTest::newRow("int-enum") << fixture << setupOk
+ << fixture.intType << "enumValue1" << "Namespace::Test::Enum::enumValue1";
+
+ // Test expansion of container types
+ QString expected = u"std::list<Namespace::Test>()"_s;
+ QTest::newRow("list")
+ << fixture << setupOk << fixture.listType
+ << expected << expected;
+ QTest::newRow("partially qualified list")
+ << fixture << setupOk << fixture.listType
+ << "std::list<Test>()" << expected;
+
+ // Test field expansion
+ expected = u"Namespace::Test::INT_FIELD_1"_s;
+ QTest::newRow("qualified class field")
+ << fixture << setupOk << fixture.intType
+ << expected << expected;
+ QTest::newRow("partially qualified class field")
+ << fixture << setupOk << fixture.intType
+ << "Test::INT_FIELD_1" << expected;
+ QTest::newRow("unqualified class field")
+ << fixture << setupOk << fixture.intType
+ << "INT_FIELD_1" << expected;
+
+ // Test field expansion when constructing some class
+ expected = u"QLatin1String(Namespace::Test::CHAR_FIELD_1)"_s;
+ QTest::newRow("class from qualified class field")
+ << fixture << setupOk << fixture.classType
+ << expected << expected;
+ QTest::newRow("class from partially qualified class field")
+ << fixture << setupOk << fixture.classType
+ << "QLatin1String(Test::CHAR_FIELD_1)" << expected;
+ QTest::newRow("class from unqualified class field")
+ << fixture << setupOk << fixture.classType
+ << "QLatin1String(CHAR_FIELD_1)" << expected;
+
+ // Test field expansion when constructing class itself
+ expected = u"Namespace::Test(Namespace::Test::CHAR_FIELD_1)"_s;
+ QTest::newRow("self from qualified class field")
+ << fixture << setupOk << fixture.classType
+ << expected << expected;
+ QTest::newRow("self from partially qualified class field")
+ << fixture << setupOk << fixture.classType
+ << "Test(Test::CHAR_FIELD_1)" << expected;
+ QTest::newRow("self from unqualified class field")
+ << fixture << setupOk << fixture.classType
+ << "Test(CHAR_FIELD_1)" << expected;
+
+ // Test enum expansion when constructing class itself
+ expected = u"Namespace::Test(Namespace::Test::Enum::enumValue1)"_s;
+ QTest::newRow("self from qualified enum")
+ << fixture << setupOk << fixture.classType
+ << expected << expected;
+ QTest::newRow("self from enum")
+ << fixture << setupOk << fixture.classType
+ << "Test(enumValue1)" << expected;
+
+ // Don't qualify fields to "Test::Enum::DefaultValue"
+ QTest::newRow("enum from static field")
+ << fixture << setupOk << fixture.enumType
+ << "DefaultValue" << u"Namespace::Test::DefaultValue"_s;
+}
+
+void TestResolveType::testFixDefaultArguments()
+{
+ QFETCH(DefaultValuesFixture, fixture);
+ QFETCH(int, setupOk);
+ QFETCH(AbstractMetaType, metaType);
+ QFETCH(QString, input);
+ QFETCH(QString, expected);
+ QCOMPARE(setupOk, 0);
+ const QString actual = fixture.builder->fixDefaultValue(input, metaType, fixture.klass);
+ QCOMPARE(actual, expected);
+}
+
+// Verify that the typedefs of the C++ 11 integer types (int32_t, ...)
+// are seen by the C++ parser, otherwise they are handled as unknown
+// primitive types, causing invalid code to be generated.
+// (see BuilderPrivate::visitHeader(),
+// sources/shiboken6/ApiExtractor/clangparser/clangbuilder.cpp).
+void TestResolveType::testCppTypes()
+{
+ static const char cppCode[] =R"(
+#include <cstdint>
+
+class Test
+{
+public:
+ explicit Test(int32_t v);
+};
+)";
+ static const char xmlCode[] = R"(
+<typesystem package="Foo">
+ <value-type name='Test'/>
+ <primitive-type name='int32_t'/>
+</typesystem>
+)";
+
+ QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
+ QVERIFY(builder);
+ AbstractMetaClassList classes = builder->classes();
+ const auto testClass = AbstractMetaClass::findClass(classes, "Test");
+ QVERIFY(testClass);
+
+ auto *tdb = TypeDatabase::instance();
+ auto int32TEntry = tdb->findType(u"int32_t"_s);
+ QVERIFY2(int32TEntry, "int32_t not found");
+ QVERIFY(int32TEntry->isPrimitive());
+ auto int32T = std::static_pointer_cast<const PrimitiveTypeEntry>(int32TEntry);
+ auto basicType = basicReferencedTypeEntry(int32T);
+ QVERIFY2(basicType != int32T,
+ "Typedef for int32_t not found. Check the system include paths.");
+}
+
+QTEST_APPLESS_MAIN(TestResolveType)
diff --git a/sources/shiboken6/ApiExtractor/tests/testresolvetype.h b/sources/shiboken6/ApiExtractor/tests/testresolvetype.h
index 62c08bcd7..a07855eab 100644
--- a/sources/shiboken6/ApiExtractor/tests/testresolvetype.h
+++ b/sources/shiboken6/ApiExtractor/tests/testresolvetype.h
@@ -1,41 +1,21 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TESTRESOLVETYPE_H
#define TESTRESOLVETYPE_H
-#include <QObject>
+#include <QtCore/QObject>
class TestResolveType : public QObject
{
Q_OBJECT
private slots:
+ void initTestCase();
+
void testResolveReturnTypeFromParentScope();
+ void testFixDefaultArguments_data();
+ void testFixDefaultArguments();
+ void testCppTypes();
};
#endif
diff --git a/sources/shiboken6/ApiExtractor/tests/testreverseoperators.cpp b/sources/shiboken6/ApiExtractor/tests/testreverseoperators.cpp
index 3ad77c86f..f4eecff2c 100644
--- a/sources/shiboken6/ApiExtractor/tests/testreverseoperators.cpp
+++ b/sources/shiboken6/ApiExtractor/tests/testreverseoperators.cpp
@@ -1,37 +1,16 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "testreverseoperators.h"
#include <QtTest/QTest>
#include "testutil.h"
+#include <abstractmetaargument.h>
#include <abstractmetafunction.h>
#include <abstractmetalang.h>
#include <typesystem.h>
+#include <clangparser/compilersupport.h>
+
+#include <algorithm>
void TestReverseOperators::testReverseSum()
{
@@ -46,16 +25,16 @@ void TestReverseOperators::testReverseSum()
</typesystem>";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- AbstractMetaClass* classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
QVERIFY(classA);
- QCOMPARE(classA->functions().count(), 4);
+ QCOMPARE(classA->functions().size(), 4);
AbstractMetaFunctionCPtr reverseOp;
AbstractMetaFunctionCPtr normalOp;
for (const auto &func : classA->functions()) {
- if (func->name() == QLatin1String("operator+")) {
+ if (func->name() == u"operator+") {
if (func->isReverseOperator())
reverseOp = func;
else
@@ -63,12 +42,12 @@ void TestReverseOperators::testReverseSum()
}
}
- QVERIFY(!normalOp.isNull());
+ QVERIFY(normalOp);
QVERIFY(!normalOp->isReverseOperator());
- QCOMPARE(normalOp->arguments().count(), 1);
- QVERIFY(!reverseOp.isNull());
+ QCOMPARE(normalOp->arguments().size(), 1);
+ QVERIFY(reverseOp);
QVERIFY(reverseOp->isReverseOperator());
- QCOMPARE(reverseOp->arguments().count(), 1);
+ QCOMPARE(reverseOp->arguments().size(), 1);
}
void TestReverseOperators::testReverseSumWithAmbiguity()
@@ -88,37 +67,63 @@ void TestReverseOperators::testReverseSumWithAmbiguity()
</typesystem>";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
QVERIFY(classA);
- QCOMPARE(classA->functions().count(), 4);
+ QCOMPARE(classA->functions().size(), 4);
- const AbstractMetaClass *classB = AbstractMetaClass::findClass(classes, QLatin1String("B"));
+ const auto classB = AbstractMetaClass::findClass(classes, "B");
QVERIFY(classB);
- QCOMPARE(classB->functions().count(), 4);
+ QCOMPARE(classB->functions().size(), 4);
AbstractMetaFunctionCPtr reverseOp;
AbstractMetaFunctionCPtr normalOp;
for (const auto &func : classB->functions()) {
- if (func->name() == QLatin1String("operator+")) {
+ if (func->name() == u"operator+") {
if (func->isReverseOperator())
reverseOp = func;
else
normalOp = func;
}
}
- QVERIFY(!normalOp.isNull());
+ QVERIFY(normalOp);
QVERIFY(!normalOp->isReverseOperator());
- QCOMPARE(normalOp->arguments().count(), 1);
- QCOMPARE(normalOp->minimalSignature(), QLatin1String("operator+(B,A)"));
- QVERIFY(!reverseOp.isNull());
+ QCOMPARE(normalOp->arguments().size(), 1);
+ QCOMPARE(normalOp->minimalSignature(), u"operator+(B,A)");
+ QVERIFY(reverseOp);
QVERIFY(reverseOp->isReverseOperator());
- QCOMPARE(reverseOp->arguments().count(), 1);
- QCOMPARE(reverseOp->minimalSignature(), QLatin1String("operator+(A,B)"));
+ QCOMPARE(reverseOp->arguments().size(), 1);
+ QCOMPARE(reverseOp->minimalSignature(), u"operator+(A,B)");
}
-
+void TestReverseOperators::testSpaceshipOperator()
+{
+ const char cppCode[] = R"(
+ class Test {
+ public:
+ explicit Test(int v);
+ int operator<=>(const Test &rhs) const = default;
+ };)";
+ const char xmlCode[] = R"(
+ <typesystem package="Foo">
+ <value-type name='Test'/>
+ </typesystem>)";
+ QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false,
+ {}, {}, LanguageLevel::Cpp20));
+ QVERIFY(builder);
+ AbstractMetaClassList classes = builder->classes();
+ QCOMPARE(classes.size(), 1);
+ const auto testClass = AbstractMetaClass::findClass(classes, "Test");
+ QVERIFY(testClass);
+ const auto &functions = testClass->functions();
+ // 6 operators should be synthesized
+ const auto count = std::count_if(functions.cbegin(), functions.cend(),
+ [](const AbstractMetaFunctionCPtr &f) {
+ return f->isComparisonOperator();
+ });
+ QCOMPARE(count, 6);
+}
QTEST_APPLESS_MAIN(TestReverseOperators)
diff --git a/sources/shiboken6/ApiExtractor/tests/testreverseoperators.h b/sources/shiboken6/ApiExtractor/tests/testreverseoperators.h
index ba3b43cfb..fb8d97c97 100644
--- a/sources/shiboken6/ApiExtractor/tests/testreverseoperators.h
+++ b/sources/shiboken6/ApiExtractor/tests/testreverseoperators.h
@@ -1,34 +1,9 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TESTREVERSEOPERATORS_H
#define TESTREVERSEOPERATORS_H
-#include <QObject>
+#include <QtCore/QObject>
class TestReverseOperators : public QObject
{
@@ -36,6 +11,7 @@ class TestReverseOperators : public QObject
private slots:
void testReverseSum();
void testReverseSumWithAmbiguity();
+ void testSpaceshipOperator();
};
#endif
diff --git a/sources/shiboken6/ApiExtractor/tests/testtemplates.cpp b/sources/shiboken6/ApiExtractor/tests/testtemplates.cpp
index aa1d0414c..ea37c6255 100644
--- a/sources/shiboken6/ApiExtractor/tests/testtemplates.cpp
+++ b/sources/shiboken6/ApiExtractor/tests/testtemplates.cpp
@@ -1,40 +1,23 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "testtemplates.h"
-#include <QtTest/QTest>
-#include <QtCore/QTextStream>
-#include <QTemporaryFile>
#include "testutil.h"
+#include <abstractmetaargument.h>
#include <abstractmetafield.h>
#include <abstractmetafunction.h>
#include <abstractmetalang.h>
-#include <typesystem.h>
+#include <abstractmetatype.h>
+#include <complextypeentry.h>
+#include <containertypeentry.h>
+
+#include <qtcompat.h>
+
+#include <QtCore/QTemporaryFile>
+#include <QtCore/QTextStream>
+#include <QtTest/QTest>
+
+using namespace Qt::StringLiterals;
void TestTemplates::testTemplateWithNamespace()
{
@@ -72,16 +55,16 @@ namespace Internet {
</typesystem>)XML").arg(file.fileName());
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, qPrintable(xmlCode1), false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- AbstractMetaClass* classB = AbstractMetaClass::findClass(classes, QLatin1String("Bookmarks"));
+ const auto classB = AbstractMetaClass::findClass(classes, "Bookmarks");
QVERIFY(classB);
- const auto func = classB->findFunction(QLatin1String("list"));
- QVERIFY(!func.isNull());
+ const auto func = classB->findFunction("list");
+ QVERIFY(func);
AbstractMetaType funcType = func->type();
QVERIFY(!funcType.isVoid());
- QCOMPARE(funcType.cppSignature(), QLatin1String("QList<Internet::Url >"));
+ QCOMPARE(funcType.cppSignature(), u"QList<Internet::Url>");
}
void TestTemplates::testTemplateOnContainers()
@@ -110,26 +93,26 @@ namespace Namespace {
</typesystem>)XML";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- AbstractMetaClass* classB = AbstractMetaClass::findClass(classes, QLatin1String("B"));
+ const auto classB = AbstractMetaClass::findClass(classes, "B");
QVERIFY(classB);
QVERIFY(!classB->baseClass());
QVERIFY(classB->baseClassName().isEmpty());
- const auto func = classB->findFunction(QLatin1String("foo"));
- QVERIFY(!func.isNull());
+ const auto func = classB->findFunction("foo");
+ QVERIFY(func);
AbstractMetaType argType = func->arguments().constFirst().type();
- QCOMPARE(argType.instantiations().count(), 1);
- QCOMPARE(argType.typeEntry()->qualifiedCppName(), QLatin1String("QList"));
+ QCOMPARE(argType.instantiations().size(), 1);
+ QCOMPARE(argType.typeEntry()->qualifiedCppName(), u"QList");
const AbstractMetaType &instance1 = argType.instantiations().constFirst();
- QCOMPARE(instance1.instantiations().count(), 1);
- QCOMPARE(instance1.typeEntry()->qualifiedCppName(), QLatin1String("Namespace::A"));
+ QCOMPARE(instance1.instantiations().size(), 1);
+ QCOMPARE(instance1.typeEntry()->qualifiedCppName(), u"Namespace::A");
const AbstractMetaType &instance2 = instance1.instantiations().constFirst();
- QCOMPARE(instance2.instantiations().count(), 0);
- QCOMPARE(instance2.typeEntry()->qualifiedCppName(), QLatin1String("Namespace::E1"));
+ QCOMPARE(instance2.instantiations().size(), 0);
+ QCOMPARE(instance2.typeEntry()->qualifiedCppName(), u"Namespace::E1");
}
void TestTemplates::testTemplateValueAsArgument()
@@ -147,14 +130,14 @@ void func(List<int> arg) {}
</typesystem>)XML";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
const auto globalFuncs = builder->globalFunctions();
- QCOMPARE(globalFuncs.count(), 1);
+ QCOMPARE(globalFuncs.size(), 1);
const auto func = globalFuncs.constFirst();
- QCOMPARE(func->minimalSignature(), QLatin1String("func(List<int>)"));
+ QCOMPARE(func->minimalSignature(), u"func(List<int>)");
QCOMPARE(func->arguments().constFirst().type().cppSignature(),
- QLatin1String("List<int >"));
+ u"List<int>");
}
void TestTemplates::testTemplatePointerAsArgument()
@@ -172,14 +155,14 @@ void func(List<int>* arg) {}
</typesystem>)XML";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaFunctionCList globalFuncs = builder->globalFunctions();
- QCOMPARE(globalFuncs.count(), 1);
+ QCOMPARE(globalFuncs.size(), 1);
const auto func = globalFuncs.constFirst();
- QCOMPARE(func->minimalSignature(), QLatin1String("func(List<int>*)"));
+ QCOMPARE(func->minimalSignature(), u"func(List<int>*)");
QCOMPARE(func->arguments().constFirst().type().cppSignature(),
- QLatin1String("List<int > *"));
+ u"List<int> *");
}
void TestTemplates::testTemplateReferenceAsArgument()
@@ -197,14 +180,14 @@ void func(List<int>& arg) {}
</typesystem>)XML";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
const auto globalFuncs = builder->globalFunctions();
- QCOMPARE(globalFuncs.count(), 1);
+ QCOMPARE(globalFuncs.size(), 1);
const auto func = globalFuncs.constFirst();
- QCOMPARE(func->minimalSignature(), QLatin1String("func(List<int>&)"));
+ QCOMPARE(func->minimalSignature(), u"func(List<int>&)");
QCOMPARE(func->arguments().constFirst().type().cppSignature(),
- QLatin1String("List<int > &"));
+ u"List<int> &");
}
void TestTemplates::testTemplateParameterFixup()
@@ -226,22 +209,21 @@ struct List {
</typesystem>)XML";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
const AbstractMetaClassList templates = builder->templates();
- QCOMPARE(templates.count(), 1);
- const AbstractMetaClass *list = templates.constFirst();
- // Verify that the parameter of "void append(List l)" gets fixed to "List<T >"
- const auto append = list->findFunction(QStringLiteral("append"));
- QVERIFY(!append.isNull());
+ QCOMPARE(templates.size(), 1);
+ AbstractMetaClassCPtr list = templates.constFirst();
+ // Verify that the parameter of "void append(List l)" gets fixed to "List<T>"
+ const auto append = list->findFunction("append");
+ QVERIFY(append);
QCOMPARE(append->arguments().size(), 1);
- QCOMPARE(append->arguments().at(0).type().cppSignature(), QLatin1String("List<T >"));
+ QCOMPARE(append->arguments().at(0).type().cppSignature(), u"List<T>");
// Verify that the parameter of "void erase(Iterator)" is not modified
- const auto erase = list->findFunction(QStringLiteral("erase"));
- QVERIFY(!erase.isNull());
+ const auto erase = list->findFunction("erase");
+ QVERIFY(erase);
QCOMPARE(erase->arguments().size(), 1);
- QEXPECT_FAIL("", "Clang: Some other code changes the parameter type", Abort);
- QCOMPARE(erase->arguments().at(0).type().cppSignature(), QLatin1String("List::Iterator"));
+ QCOMPARE(erase->arguments().at(0).type().cppSignature(), u"List::Iterator");
}
void TestTemplates::testInheritanceFromContainterTemplate()
@@ -267,17 +249,17 @@ struct FooBars : public ListContainer<FooBar> {};
</typesystem>)XML";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
AbstractMetaClassList templates = builder->templates();
- QCOMPARE(classes.count(), 2);
- QCOMPARE(templates.count(), 1);
+ QCOMPARE(classes.size(), 2);
+ QCOMPARE(templates.size(), 1);
- const AbstractMetaClass* foobars = AbstractMetaClass::findClass(classes, QLatin1String("FooBars"));
- QCOMPARE(foobars->functions().count(), 4);
+ const auto foobars = AbstractMetaClass::findClass(classes, "FooBars");
+ QCOMPARE(foobars->functions().size(), 4);
- const AbstractMetaClass *lc = templates.constFirst();
- QCOMPARE(lc->functions().count(), 2);
+ AbstractMetaClassCPtr lc = templates.constFirst();
+ QCOMPARE(lc->functions().size(), 2);
}
void TestTemplates::testTemplateInheritanceMixedWithForwardDeclaration()
@@ -304,15 +286,15 @@ template<SomeEnum type> struct Future {};
</typesystem>)XML";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- AbstractMetaClass* classB = AbstractMetaClass::findClass(classes, QLatin1String("B"));
+ const auto classB = AbstractMetaClass::findClass(classes, "B");
QVERIFY(classB);
QVERIFY(!classB->baseClass());
QVERIFY(classB->baseClassName().isEmpty());
// 3 functions: simple constructor, copy constructor and "method()".
- QCOMPARE(classB->functions().count(), 3);
+ QCOMPARE(classB->functions().size(), 3);
}
void TestTemplates::testTemplateInheritanceMixedWithNamespaceAndForwardDeclaration()
@@ -343,15 +325,15 @@ template<SomeEnum type> struct Future {};
</typesystem>)XML";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- AbstractMetaClass* classB = AbstractMetaClass::findClass(classes, QLatin1String("Namespace::B"));
+ const auto classB = AbstractMetaClass::findClass(classes, "Namespace::B");
QVERIFY(classB);
QVERIFY(!classB->baseClass());
QVERIFY(classB->baseClassName().isEmpty());
// 3 functions: simple constructor, copy constructor and "method()".
- QCOMPARE(classB->functions().count(), 3);
+ QCOMPARE(classB->functions().size(), 3);
}
void TestTemplates::testTypedefOfInstantiationOfTemplateClass()
@@ -363,7 +345,7 @@ enum ClassType {
};
template<ClassType CLASS_TYPE>
struct BaseTemplateClass {
- inline ClassType getClassType() const { CLASS_TYPE; }
+ inline ClassType getClassType() const { return CLASS_TYPE; }
};
typedef BaseTemplateClass<TypeOne> TypeOneClass;
}
@@ -379,30 +361,30 @@ typedef BaseTemplateClass<TypeOne> TypeOneClass;
</typesystem>)XML";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QCOMPARE(classes.count(), 3);
+ QCOMPARE(classes.size(), 3);
- const AbstractMetaClass* base = AbstractMetaClass::findClass(classes, QLatin1String("BaseTemplateClass"));
+ const auto base = AbstractMetaClass::findClass(classes, "BaseTemplateClass");
QVERIFY(base);
- const AbstractMetaClass* one = AbstractMetaClass::findClass(classes, QLatin1String("TypeOneClass"));
+ const auto one = AbstractMetaClass::findClass(classes, "TypeOneClass");
QVERIFY(one);
QCOMPARE(one->templateBaseClass(), base);
- QCOMPARE(one->functions().count(), base->functions().count());
+ QCOMPARE(one->functions().size(), base->functions().size());
QVERIFY(one->isTypeDef());
- const ComplexTypeEntry* oneType = one->typeEntry();
- const ComplexTypeEntry* baseType = base->typeEntry();
+ auto oneType = one->typeEntry();
+ auto baseType = base->typeEntry();
QCOMPARE(oneType->baseContainerType(), baseType);
- QCOMPARE(one->baseClassNames(), QStringList(QLatin1String("BaseTemplateClass<TypeOne>")));
+ QCOMPARE(one->baseClassNames(), QStringList(u"NSpace::BaseTemplateClass<NSpace::TypeOne>"_s));
QVERIFY(one->hasTemplateBaseClassInstantiations());
AbstractMetaTypeList instantiations = one->templateBaseClassInstantiations();
- QCOMPARE(instantiations.count(), 1);
+ QCOMPARE(instantiations.size(), 1);
const AbstractMetaType &inst = instantiations.constFirst();
QVERIFY(!inst.isEnum());
QVERIFY(!inst.typeEntry()->isEnum());
QVERIFY(inst.typeEntry()->isEnumValue());
- QCOMPARE(inst.cppSignature(), QLatin1String("NSpace::TypeOne"));
+ QCOMPARE(inst.cppSignature(), u"NSpace::TypeOne");
}
void TestTemplates::testContainerTypeIncompleteArgument()
@@ -428,27 +410,27 @@ typedef Vector<int> IntVector;
</typesystem>)XML";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, true));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- QCOMPARE(classes.count(), 1);
+ QCOMPARE(classes.size(), 1);
- AbstractMetaClass* vector = AbstractMetaClass::findClass(classes, QLatin1String("IntVector"));
+ const auto vector = AbstractMetaClass::findClass(classes, "IntVector");
QVERIFY(vector);
auto baseContainer = vector->typeEntry()->baseContainerType();
QVERIFY(baseContainer);
- QCOMPARE(reinterpret_cast<const ContainerTypeEntry*>(baseContainer)->containerKind(),
+ QCOMPARE(reinterpret_cast<const ContainerTypeEntry*>(baseContainer.get())->containerKind(),
ContainerTypeEntry::ListContainer);
- QCOMPARE(vector->functions().count(), 4);
+ QCOMPARE(vector->functions().size(), 4);
- const auto method = vector->findFunction(QLatin1String("method"));
- QVERIFY(!method.isNull());
- QCOMPARE(method->signature(), QLatin1String("method(const Vector<int > & vector)"));
+ const auto method = vector->findFunction("method");
+ QVERIFY(method);
+ QCOMPARE(method->signature(), u"method(const Vector<int> & vector)");
- const auto otherMethod = vector->findFunction(QLatin1String("otherMethod"));
- QVERIFY(!otherMethod.isNull());
- QCOMPARE(otherMethod->signature(), QLatin1String("otherMethod()"));
+ const auto otherMethod = vector->findFunction("otherMethod");
+ QVERIFY(otherMethod);
+ QCOMPARE(otherMethod->signature(), u"otherMethod()");
QVERIFY(!otherMethod->type().isVoid());
- QCOMPARE(otherMethod->type().cppSignature(), QLatin1String("Vector<int >"));
+ QCOMPARE(otherMethod->type().cppSignature(), u"Vector<int>");
}
void TestTemplates::testNonTypeTemplates()
@@ -472,12 +454,12 @@ Array<int, 2> foo();
</typesystem>)XML";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, true));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
auto functions = builder->globalFunctions();
- QCOMPARE(functions.count(), 1);
+ QCOMPARE(functions.size(), 1);
auto foo = functions.constFirst();
- QCOMPARE(foo->name(), QLatin1String("foo"));
- QCOMPARE(foo->type().name(), QLatin1String("Array"));
+ QCOMPARE(foo->name(), u"foo");
+ QCOMPARE(foo->type().name(), u"Array");
}
// Perform checks on template inheritance; a typedef of a template class
@@ -555,44 +537,42 @@ void TestTemplates::testTemplateTypeDefs()
const QByteArray cppBa = cpp.toLocal8Bit();
const QByteArray xmlBa = xml.toLocal8Bit();
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppBa.constData(), xmlBa.constData(), true));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- const AbstractMetaClass *optional = AbstractMetaClass::findClass(classes, QLatin1String("Optional"));
+ const auto optional = AbstractMetaClass::findClass(classes, "Optional");
QVERIFY(optional);
// Find the typedef'ed class
- const AbstractMetaClass *optionalInt =
- AbstractMetaClass::findClass(classes, QLatin1String("IntOptional"));
+ const auto optionalInt = AbstractMetaClass::findClass(classes, "IntOptional");
QVERIFY(optionalInt);
QCOMPARE(optionalInt->templateBaseClass(), optional);
// Find the class typedef'ed in the typesystem XML
- const AbstractMetaClass *xmlOptionalInt =
- AbstractMetaClass::findClass(classes, QLatin1String("XmlIntOptional"));
+ const auto xmlOptionalInt = AbstractMetaClass::findClass(classes, "XmlIntOptional");
QVERIFY(xmlOptionalInt);
QCOMPARE(xmlOptionalInt->templateBaseClass(), optional);
// Check whether the value() method now has an 'int' return
- const auto valueMethod = optionalInt->findFunction(QLatin1String("value"));
- QVERIFY(!valueMethod.isNull());
- QCOMPARE(valueMethod->type().cppSignature(), QLatin1String("int"));
+ const auto valueMethod = optionalInt->findFunction("value");
+ QVERIFY(valueMethod);
+ QCOMPARE(valueMethod->type().cppSignature(), u"int");
// ditto for typesystem XML
- const auto xmlValueMethod = xmlOptionalInt->findFunction(QLatin1String("value"));
- QVERIFY(!xmlValueMethod.isNull());
- QCOMPARE(xmlValueMethod->type().cppSignature(), QLatin1String("int"));
+ const auto xmlValueMethod = xmlOptionalInt->findFunction("value");
+ QVERIFY(xmlValueMethod);
+ QCOMPARE(xmlValueMethod->type().cppSignature(), u"int");
// Check whether the m_value field is of type 'int'
- const auto valueField = optionalInt->findField(QLatin1String("m_value"));
+ const auto valueField = optionalInt->findField(u"m_value");
QVERIFY(valueField.has_value());
- QCOMPARE(valueField->type().cppSignature(), QLatin1String("int"));
+ QCOMPARE(valueField->type().cppSignature(), u"int");
// ditto for typesystem XML
const auto xmlValueField =
- xmlOptionalInt->findField(QLatin1String("m_value"));
+ xmlOptionalInt->findField(u"m_value");
QVERIFY(xmlValueField.has_value());
- QCOMPARE(xmlValueField->type().cppSignature(), QLatin1String("int"));
+ QCOMPARE(xmlValueField->type().cppSignature(), u"int");
}
void TestTemplates::testTemplateTypeAliases()
@@ -626,22 +606,23 @@ public:
</typesystem>)XML";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, true));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- auto testClass = AbstractMetaClass::findClass(classes, QLatin1String("Test"));
+ const auto testClass = AbstractMetaClass::findClass(classes, "Test");
QVERIFY(testClass);
auto fields = testClass->fields();
- QCOMPARE(fields.count(), 1);
+ QCOMPARE(fields.size(), 1);
auto fieldType = testClass->fields().at(0).type();
- QCOMPARE(fieldType.name(), QLatin1String("Container1"));
+ QCOMPARE(fieldType.name(), u"Container1");
QCOMPARE(fieldType.instantiations().size(), 1);
- auto derived = AbstractMetaClass::findClass(classes, QLatin1String("Derived"));
+ const auto derived = AbstractMetaClass::findClass(classes, "Derived");
QVERIFY(derived);
auto base = derived->templateBaseClass();
- QCOMPARE(base->name(), QLatin1String("Container1"));
+ QVERIFY(base);
+ QCOMPARE(base->name(), u"Container1");
}
QTEST_APPLESS_MAIN(TestTemplates)
diff --git a/sources/shiboken6/ApiExtractor/tests/testtemplates.h b/sources/shiboken6/ApiExtractor/tests/testtemplates.h
index c96e7fe4a..36800f723 100644
--- a/sources/shiboken6/ApiExtractor/tests/testtemplates.h
+++ b/sources/shiboken6/ApiExtractor/tests/testtemplates.h
@@ -1,35 +1,10 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TESTTEMPLATES_H
#define TESTTEMPLATES_H
-#include <QObject>
+#include <QtCore/QObject>
class TestTemplates : public QObject
{
diff --git a/sources/shiboken6/ApiExtractor/tests/testtoposort.cpp b/sources/shiboken6/ApiExtractor/tests/testtoposort.cpp
index 6126c2b42..50cefcfe9 100644
--- a/sources/shiboken6/ApiExtractor/tests/testtoposort.cpp
+++ b/sources/shiboken6/ApiExtractor/tests/testtoposort.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "testtoposort.h"
#include "graph.h"
diff --git a/sources/shiboken6/ApiExtractor/tests/testtoposort.h b/sources/shiboken6/ApiExtractor/tests/testtoposort.h
index 012156dc9..4271d6a0e 100644
--- a/sources/shiboken6/ApiExtractor/tests/testtoposort.h
+++ b/sources/shiboken6/ApiExtractor/tests/testtoposort.h
@@ -1,35 +1,10 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TESTTOPOSORT_H
#define TESTTOPOSORT_H
-#include <QObject>
+#include <QtCore/QObject>
class TestTopoSort : public QObject
{
diff --git a/sources/shiboken6/ApiExtractor/tests/testtyperevision.cpp b/sources/shiboken6/ApiExtractor/tests/testtyperevision.cpp
index d8170f5e8..72dae8cc5 100644
--- a/sources/shiboken6/ApiExtractor/tests/testtyperevision.cpp
+++ b/sources/shiboken6/ApiExtractor/tests/testtyperevision.cpp
@@ -1,45 +1,27 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "testtyperevision.h"
-#include <QtTest/QTest>
#include "testutil.h"
#include <abstractmetaenum.h>
#include <abstractmetalang.h>
-#include <typesystem.h>
+#include <complextypeentry.h>
+#include <enumtypeentry.h>
+#include <flagstypeentry.h>
#include <typedatabase.h>
+#include <qtcompat.h>
+
+#include <QtTest/QTest>
+
+using namespace Qt::StringLiterals;
+
void TestTypeRevision::testRevisionAttr()
{
- const char* cppCode = "class Rev_0 {};"
+ const char cppCode[] = "class Rev_0 {};"
"class Rev_1 {};"
"class Rev_2 { public: enum Rev_3 { X }; enum Rev_5 { Y }; };";
- const char* xmlCode = "<typesystem package=\"Foo\">"
+ const char xmlCode[] = "<typesystem package=\"Foo\">"
"<value-type name=\"Rev_0\"/>"
"<value-type name=\"Rev_1\" revision=\"1\"/>"
"<object-type name=\"Rev_2\" revision=\"2\">"
@@ -48,25 +30,25 @@ void TestTypeRevision::testRevisionAttr()
"</object-type>"
"</typesystem>";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- const AbstractMetaClass *rev0 = AbstractMetaClass::findClass(classes, QLatin1String("Rev_0"));
+ const auto rev0 = AbstractMetaClass::findClass(classes, "Rev_0");
QCOMPARE(rev0->typeEntry()->revision(), 0);
- const AbstractMetaClass *rev1 = AbstractMetaClass::findClass(classes, QLatin1String("Rev_1"));
+ const auto rev1 = AbstractMetaClass::findClass(classes, "Rev_1");
QCOMPARE(rev1->typeEntry()->revision(), 1);
- AbstractMetaClass *rev2 = AbstractMetaClass::findClass(classes, QLatin1String("Rev_2"));
+ const auto rev2 = AbstractMetaClass::findClass(classes, "Rev_2");
QCOMPARE(rev2->typeEntry()->revision(), 2);
- auto rev3 = rev2->findEnum(QLatin1String("Rev_3"));
+ auto rev3 = rev2->findEnum(u"Rev_3"_s);
QVERIFY(rev3.has_value());
QCOMPARE(rev3->typeEntry()->revision(), 3);
- FlagsTypeEntry* rev4 = rev3->typeEntry()->flags();
+ auto rev4 = rev3->typeEntry()->flags();
QCOMPARE(rev4->revision(), 4);
- auto rev5 = rev2->findEnum(QLatin1String("Rev_5"));
+ auto rev5 = rev2->findEnum(u"Rev_5"_s);
QVERIFY(rev5.has_value());
- const EnumTypeEntry *revEnumTypeEntry = rev5->typeEntry();
+ EnumTypeEntryCPtr revEnumTypeEntry = rev5->typeEntry();
QCOMPARE(revEnumTypeEntry->revision(), 5);
QCOMPARE(revEnumTypeEntry->flags()->revision(), 5);
}
@@ -100,7 +82,7 @@ class Bar20 {};
)XML";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, true, version));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
QCOMPARE(builder->classes().size(), expectedClassCount);
}
diff --git a/sources/shiboken6/ApiExtractor/tests/testtyperevision.h b/sources/shiboken6/ApiExtractor/tests/testtyperevision.h
index 3832c3883..84af839d2 100644
--- a/sources/shiboken6/ApiExtractor/tests/testtyperevision.h
+++ b/sources/shiboken6/ApiExtractor/tests/testtyperevision.h
@@ -1,35 +1,10 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TESTTYPEREVISION_H
#define TESTTYPEREVISION_H
-#include <QObject>
+#include <QtCore/QObject>
class TestTypeRevision : public QObject
{
diff --git a/sources/shiboken6/ApiExtractor/tests/testutil.h b/sources/shiboken6/ApiExtractor/tests/testutil.h
index 56ce8a72e..dc4e3b2da 100644
--- a/sources/shiboken6/ApiExtractor/tests/testutil.h
+++ b/sources/shiboken6/ApiExtractor/tests/testutil.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TESTUTIL_H
#define TESTUTIL_H
@@ -43,27 +18,28 @@ namespace TestUtil
{
static AbstractMetaBuilder *parse(const char *cppCode, const char *xmlCode,
bool silent = true,
- const QString &apiVersion = QString(),
- const QStringList &dropTypeEntries = QStringList())
+ const QString &apiVersion = {},
+ const QStringList &dropTypeEntries = {},
+ LanguageLevel languageLevel = LanguageLevel::Default)
{
ReportHandler::setSilent(silent);
ReportHandler::startTimer();
- TypeDatabase* td = TypeDatabase::instance(true);
+ auto *td = TypeDatabase::instance(true);
if (apiVersion.isEmpty())
TypeDatabase::clearApiVersions();
- else if (!TypeDatabase::setApiVersion(QLatin1String("*"), apiVersion))
+ else if (!TypeDatabase::setApiVersion(QLatin1StringView("*"), apiVersion))
return nullptr;
td->setDropTypeEntries(dropTypeEntries);
QBuffer buffer;
// parse typesystem
buffer.setData(xmlCode);
if (!buffer.open(QIODevice::ReadOnly))
- return Q_NULLPTR;
+ return nullptr;
if (!td->parseFile(&buffer))
return nullptr;
buffer.close();
// parse C++ code
- QTemporaryFile tempSource(QDir::tempPath() + QLatin1String("/st_XXXXXX_main.cpp"));
+ QTemporaryFile tempSource(QDir::tempPath() + QLatin1StringView("/st_XXXXXX_main.cpp"));
if (!tempSource.open()) {
qWarning().noquote().nospace() << "Creation of temporary file failed: "
<< tempSource.errorString();
@@ -76,7 +52,7 @@ namespace TestUtil
auto builder = std::make_unique<AbstractMetaBuilder>();
try {
- if (!builder->build(arguments))
+ if (!builder->build(arguments, {}, true, languageLevel))
return nullptr;
} catch (const std::exception &e) {
qWarning("%s", e.what());
diff --git a/sources/shiboken6/ApiExtractor/tests/testvaluetypedefaultctortag.cpp b/sources/shiboken6/ApiExtractor/tests/testvaluetypedefaultctortag.cpp
index 1850025d6..98e30eac2 100644
--- a/sources/shiboken6/ApiExtractor/tests/testvaluetypedefaultctortag.cpp
+++ b/sources/shiboken6/ApiExtractor/tests/testvaluetypedefaultctortag.cpp
@@ -1,62 +1,37 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "testvaluetypedefaultctortag.h"
#include <QtTest/QTest>
#include "testutil.h"
#include <abstractmetalang.h>
-#include <typesystem.h>
+#include <complextypeentry.h>
void TestValueTypeDefaultCtorTag::testValueTypeDefaultCtorTagArgument()
{
- const char* cppCode ="\n\
+ const char cppCode[] = "\n\
struct A {\n\
A(int,int);\n\
};\n\
struct B {};\n\
";
- const char* xmlCode = "\n\
+ const char xmlCode[] = "\n\
<typesystem package='Foo'>\n\
<primitive-type name='int' />\n\
<value-type name='A' default-constructor='A(0, 0)' />\n\
<value-type name='B' />\n\
</typesystem>";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode, false));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
QVERIFY(classA);
QVERIFY(classA->typeEntry()->hasDefaultConstructor());
- QCOMPARE(classA->typeEntry()->defaultConstructor(), QLatin1String("A(0, 0)"));
+ QCOMPARE(classA->typeEntry()->defaultConstructor(), u"A(0, 0)");
- const AbstractMetaClass *classB = AbstractMetaClass::findClass(classes, QLatin1String("B"));
+ const auto classB = AbstractMetaClass::findClass(classes, "B");
QVERIFY(classB);
QVERIFY(!classB->typeEntry()->hasDefaultConstructor());
}
diff --git a/sources/shiboken6/ApiExtractor/tests/testvaluetypedefaultctortag.h b/sources/shiboken6/ApiExtractor/tests/testvaluetypedefaultctortag.h
index 244181707..192c07c1d 100644
--- a/sources/shiboken6/ApiExtractor/tests/testvaluetypedefaultctortag.h
+++ b/sources/shiboken6/ApiExtractor/tests/testvaluetypedefaultctortag.h
@@ -1,35 +1,10 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TESTVALUETYPEDEFAULTCTORTAG_H
#define TESTVALUETYPEDEFAULTCTORTAG_H
-#include <QObject>
+#include <QtCore/QObject>
class TestValueTypeDefaultCtorTag : public QObject
{
diff --git a/sources/shiboken6/ApiExtractor/tests/testvoidarg.cpp b/sources/shiboken6/ApiExtractor/tests/testvoidarg.cpp
index 6d155dacc..a600181a5 100644
--- a/sources/shiboken6/ApiExtractor/tests/testvoidarg.cpp
+++ b/sources/shiboken6/ApiExtractor/tests/testvoidarg.cpp
@@ -1,34 +1,10 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "testvoidarg.h"
#include <QtTest/QTest>
#include "testutil.h"
+#include <abstractmetaargument.h>
#include <abstractmetafunction.h>
#include <abstractmetalang.h>
#include <typesystem.h>
@@ -41,13 +17,13 @@ void TestVoidArg::testVoidParsedFunction()
<value-type name='A'/>\n\
</typesystem>";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
QVERIFY(classA);
- const auto addedFunc = classA->findFunction(QLatin1String("a"));
- QVERIFY(!addedFunc.isNull());
- QCOMPARE(addedFunc->arguments().count(), 0);
+ const auto addedFunc = classA->findFunction("a");
+ QVERIFY(addedFunc);
+ QCOMPARE(addedFunc->arguments().size(), 0);
}
void TestVoidArg::testVoidAddedFunction()
@@ -60,13 +36,13 @@ void TestVoidArg::testVoidAddedFunction()
</value-type>\n\
</typesystem>";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
QVERIFY(classA);
- const auto addedFunc = classA->findFunction(QLatin1String("a"));
- QVERIFY(!addedFunc.isNull());
- QCOMPARE(addedFunc->arguments().count(), 0);
+ const auto addedFunc = classA->findFunction("a");
+ QVERIFY(addedFunc);
+ QCOMPARE(addedFunc->arguments().size(), 0);
}
@@ -78,13 +54,13 @@ void TestVoidArg::testVoidPointerParsedFunction()
<value-type name='A' />\n\
</typesystem>";
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
- QVERIFY(!builder.isNull());
+ QVERIFY(builder);
AbstractMetaClassList classes = builder->classes();
- const AbstractMetaClass *classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
+ const auto classA = AbstractMetaClass::findClass(classes, "A");
QVERIFY(classA);
- const auto addedFunc = classA->findFunction(QLatin1String("a"));
- QVERIFY(!addedFunc.isNull());
- QCOMPARE(addedFunc->arguments().count(), 1);
+ const auto addedFunc = classA->findFunction("a");
+ QVERIFY(addedFunc);
+ QCOMPARE(addedFunc->arguments().size(), 1);
}
diff --git a/sources/shiboken6/ApiExtractor/tests/testvoidarg.h b/sources/shiboken6/ApiExtractor/tests/testvoidarg.h
index 44d90d075..191b9cfb2 100644
--- a/sources/shiboken6/ApiExtractor/tests/testvoidarg.h
+++ b/sources/shiboken6/ApiExtractor/tests/testvoidarg.h
@@ -1,34 +1,9 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TESTVOIDARG_H
#define TESTVOIDARG_H
-#include <QObject>
+#include <QtCore/QObject>
class TestVoidArg : public QObject
{
diff --git a/sources/shiboken6/ApiExtractor/textstream.cpp b/sources/shiboken6/ApiExtractor/textstream.cpp
index 364634f2d..83d981b2b 100644
--- a/sources/shiboken6/ApiExtractor/textstream.cpp
+++ b/sources/shiboken6/ApiExtractor/textstream.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "textstream.h"
@@ -75,6 +50,12 @@ qint64 TextStream::pos() const
return m_str.pos();
}
+void TextStream::setString(QString *string, QIODeviceBase::OpenMode openMode)
+{
+ m_str.setString(string, openMode);
+ m_rstFormattingEnd = false;
+}
+
void TextStream::putRepetitiveChars(char c, int count)
{
if (count > 0) {
@@ -87,6 +68,11 @@ void TextStream::putRepetitiveChars(char c, int count)
}
}
+void TextStream::_setRstFormattingEnd()
+{
+ m_rstFormattingEnd = true;
+}
+
void TextStream::setLastCharClass(CharClass c)
{
m_lastCharClass = c;
@@ -110,6 +96,11 @@ static TextStream::CharClass charClassHelper(Char c)
return TextStream::CharClass::NewLine;
case '#':
return TextStream::CharClass::Hash;
+ case ' ':
+ case '\t':
+ return TextStream::CharClass::Space;
+ case '\\':
+ return TextStream::CharClass::BackSlash;
default:
break;
}
@@ -124,6 +115,13 @@ static inline TextStream::CharClass charClass(QChar c)
void TextStream::checkIndent(CharClass upComingCharClass)
{
+ if (m_rstFormattingEnd) {
+ if (upComingCharClass != CharClass::Space && upComingCharClass != CharClass::NewLine
+ && upComingCharClass != CharClass::BackSlash) {
+ m_str << '\\';
+ }
+ m_rstFormattingEnd = false;
+ }
if (m_indentationEnabled && m_lastCharClass == CharClass::NewLine
&& (upComingCharClass != CharClass::NewLine
&& (m_language != Language::Cpp || upComingCharClass != CharClass::Hash))) {
@@ -135,7 +133,8 @@ void TextStream::checkIndent(CharClass upComingCharClass)
template <class Char>
void TextStream::putCharHelper(Char c)
{
- checkIndent(charClass(c));
+ const auto klass = charClass(c);
+ checkIndent(klass);
m_str << c;
}
@@ -150,7 +149,8 @@ void TextStream::putString(QStringView v)
// If there is no newline, write as a blob. This is important to make
// field formatting (alignment/width) working, else each char will be
// considered a field.
- checkIndent(charClass(*v.cbegin()));
+ const auto klass = charClass(*v.cbegin());
+ checkIndent(klass);
m_str << v;
m_lastCharClass = CharClass::Other;
}
@@ -225,6 +225,39 @@ void disableIndent(TextStream &s)
void ensureEndl(TextStream &s)
{
- if (s.lastChar() != QLatin1Char('\n'))
+ if (s.lastChar() != u'\n')
s << '\n';
}
+
+void rstBold(TextStream &s)
+{
+ s.putRawString("**");
+}
+
+void rstBoldOff(TextStream &s)
+{
+ s.putRawString("**");
+ s._setRstFormattingEnd();
+}
+
+void rstItalic(TextStream &s)
+{
+ s.putRawChar('*');
+}
+
+void rstItalicOff(TextStream &s)
+{
+ s.putRawChar('*');
+ s._setRstFormattingEnd();
+}
+
+void rstCode(TextStream &s)
+{
+ s.putRawString("``");
+}
+
+void rstCodeOff(TextStream &s)
+{
+ s.putRawString("``");
+ s._setRstFormattingEnd();
+}
diff --git a/sources/shiboken6/ApiExtractor/textstream.h b/sources/shiboken6/ApiExtractor/textstream.h
index dff79b939..228f36405 100644
--- a/sources/shiboken6/ApiExtractor/textstream.h
+++ b/sources/shiboken6/ApiExtractor/textstream.h
@@ -1,35 +1,11 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TEXTSTREAM_H
#define TEXTSTREAM_H
#include <QtCore/QTextStream>
+#include <QtCore/QString>
/// A text stream based on QTextStream with built-in indent.
class TextStream
@@ -46,7 +22,7 @@ public:
enum class CharClass
{
- Other, NewLine, Hash
+ Other, NewLine, Space, Hash, BackSlash
};
explicit TextStream(QIODevice *device, Language l = Language::None);
@@ -55,7 +31,7 @@ public:
virtual ~TextStream();
Language language() const { return m_language; }
- void setLanguage(const Language &language) { m_language = language; }
+ void setLanguage(Language language) { m_language = language; }
bool isIndentationEnabled() const { return m_indentationEnabled; }
void setIndentationEnabled(bool m)
@@ -79,8 +55,7 @@ public:
{ return m_str.fieldAlignment(); }
void setFieldAlignment(QTextStream::FieldAlignment al)
{ m_str.setFieldAlignment(al); }
- void setString(QString *string, QIODeviceBase::OpenMode openMode = QIODeviceBase::ReadWrite)
- { m_str.setString(string, openMode); }
+ void setString(QString *string, QIODeviceBase::OpenMode openMode = QIODeviceBase::ReadWrite);
QString *string() const { return m_str.string(); }
void flush() { m_str.flush(); }
void setDevice(QIODevice *device) { m_str.setDevice(device); }
@@ -98,7 +73,14 @@ public:
void putInt(int t);
void putSizeType(qsizetype t);
+ void putRawString(const char *s) { m_str << s; }
+ void putRawChar(char c) { m_str << c; }
+
TextStream &operator<<(QStringView v) { putString(v); return *this; }
+ TextStream &operator<<(const QString &qs) { putString(QStringView{qs}); return *this; }
+ TextStream &operator<<(QLatin1StringView lv) { putString(lv.constData()); return *this; }
+ TextStream &operator<<(QUtf8StringView uv) { putString(uv.data()); return *this; }
+ TextStream &operator<<(const QByteArray &ba) { putString(ba.constData()); return *this; }
TextStream &operator<<(QChar c) { putChar(c); return *this; }
TextStream &operator<<(const char *s) { putString(s); return *this; }
TextStream &operator<<(char c) { putChar(c); return *this; }
@@ -107,11 +89,13 @@ public:
TextStream &operator<<(qsizetype t) { putSizeType(t); return *this; }
#endif
- inline TextStream &operator<<(QTextStreamManipulator m) { m_str << m; return *this; }
+ inline TextStream &operator<<(const QTextStreamManipulator &m) { m_str << m; return *this; }
inline TextStream &operator<<(ManipulatorFunc f) { f(*this); return *this; }
void putRepetitiveChars(char c, int count);
+ void _setRstFormattingEnd();
+
protected:
void setLastCharClass(CharClass c);
@@ -126,6 +110,7 @@ private:
int m_tabWidth = 4;
int m_indentation = 0;
bool m_indentationEnabled = true;
+ bool m_rstFormattingEnd = false; // just past some **bla** where '\' needs to be enforced
Language m_language;
};
@@ -152,6 +137,19 @@ void disableIndent(TextStream &s);
// Works only for streams on strings
void ensureEndl(TextStream &s);
+void rstBold(TextStream &s);
+void rstBoldOff(TextStream &s);
+void rstCode(TextStream &s);
+void rstCodeOff(TextStream &s);
+void rstItalic(TextStream &s);
+void rstItalicOff(TextStream &s);
+
+inline TextStream &operator<<(TextStream &str, QAnyStringView asv)
+{
+ asv.visit([&str](auto s) { str << s; });
+ return str;
+}
+
/// Format an aligned field
template <class T>
class AlignedField
@@ -191,6 +189,28 @@ TextStream &operator<<(TextStream &str, const AlignedField<T> &fa)
return str;
}
+class Pad
+{
+public:
+ explicit Pad(char c, int count) : m_char(c), m_count(count) {}
+
+ void write(TextStream &str) const
+ {
+ for (int i = 0; i < m_count; ++i)
+ str << m_char;
+ }
+
+private:
+ const char m_char;
+ const int m_count;
+};
+
+inline TextStream &operator<<(TextStream &str, const Pad &pad)
+{
+ pad.write(str);
+ return str;
+}
+
class Indentation
{
public:
diff --git a/sources/shiboken6/ApiExtractor/typedatabase.cpp b/sources/shiboken6/ApiExtractor/typedatabase.cpp
index 6b63d2052..749c4baa3 100644
--- a/sources/shiboken6/ApiExtractor/typedatabase.cpp
+++ b/sources/shiboken6/ApiExtractor/typedatabase.cpp
@@ -1,71 +1,317 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "typedatabase.h"
-#include "typesystem.h"
-#include "typesystemparser.h"
+#include "abstractmetatype.h"
+#include "addedfunction.h"
+#include "messages.h"
+#include "typesystemparser_p.h"
+#include "complextypeentry.h"
+#include "constantvaluetypeentry.h"
+#include "containertypeentry.h"
+#include "customtypenentry.h"
+#include "debughelpers_p.h"
+#include "exception.h"
+#include "flagstypeentry.h"
+#include "functiontypeentry.h"
+#include "namespacetypeentry.h"
+#include "objecttypeentry.h"
+#include "primitivetypeentry.h"
+#include "optionsparser.h"
+#include "pythontypeentry.h"
+#include "smartpointertypeentry.h"
+#include "typedefentry.h"
+#include "typesystemtypeentry.h"
+#include "varargstypeentry.h"
+#include "voidtypeentry.h"
#include "conditionalstreamreader.h"
+#include "predefined_templates.h"
+#include "clangparser/compilersupport.h"
+#include "modifications.h"
+#include "qtcompat.h"
+
+#include <QtCore/QBuffer>
#include <QtCore/QFile>
#include <QtCore/QDebug>
#include <QtCore/QDir>
-#include <QtCore/QPair>
#include <QtCore/QList>
#include <QtCore/QRegularExpression>
#include <QtCore/QVersionNumber>
#include <QtCore/QXmlStreamReader>
#include "reporthandler.h"
-// #include <tr1/tuple>
+
#include <algorithm>
+#include <utility>
+
+using namespace Qt::StringLiterals;
+
+using TypeDatabaseParserContextPtr = std::shared_ptr<TypeDatabaseParserContext>;
// package -> api-version
static QString wildcardToRegExp(QString w)
{
- w.replace(QLatin1Char('?'), QLatin1Char('.'));
- w.replace(QLatin1Char('*'), QStringLiteral(".*"));
+ w.replace(u'?', u'.');
+ w.replace(u'*', ".*"_L1);
return w;
}
-using ApiVersion =QPair<QRegularExpression, QVersionNumber>;
+using ApiVersion = std::pair<QRegularExpression, QVersionNumber>;
using ApiVersions = QList<ApiVersion>;
Q_GLOBAL_STATIC(ApiVersions, apiVersions)
-TypeDatabase::TypeDatabase()
+struct PythonType
+{
+ QString name;
+ QString checkFunction;
+ TypeSystem::CPythonType type;
+};
+
+using PythonTypes = QList<PythonType>;
+
+static const PythonTypes &builtinPythonTypes()
+{
+ static const PythonTypes result{
+ // "Traditional" custom types
+ // numpy
+ {u"PyArrayObject"_s, u"PyArray_Check"_s, TypeSystem::CPythonType::Other},
+ {u"PyBuffer"_s, u"Shiboken::Buffer::checkType"_s, TypeSystem::CPythonType::Other},
+ {u"PyByteArray"_s, u"PyByteArray_Check"_s, TypeSystem::CPythonType::Other},
+ {u"PyBytes"_s, u"PyBytes_Check"_s, TypeSystem::CPythonType::Other},
+ {u"PyCallable"_s, u"PyCallable_Check"_s, TypeSystem::CPythonType::Other},
+ {u"PyDate"_s, u"PyDate_Check"_s, TypeSystem::CPythonType::Other},
+ {u"PyDateTime"_s, u"PyDateTime_Check_Check"_s, TypeSystem::CPythonType::Other},
+ {u"PyDict"_s, u"PyDict_Check"_s, TypeSystem::CPythonType::Other},
+ // Convenience macro in sbkconverter.h
+ {u"PyObject"_s, u"true"_s, TypeSystem::CPythonType::Other},
+ // shiboken-specific
+ {u"PyPathLike"_s, u"Shiboken::String::checkPath"_s, TypeSystem::CPythonType::Other},
+ {u"PySequence"_s, u"Shiboken::String::checkIterable"_s, TypeSystem::CPythonType::Other},
+ {u"PyUnicode"_s, u"PyUnicode_Check"_s, TypeSystem::CPythonType::String},
+ {u"PyTypeObject"_s, u"PyType_Check"_s, TypeSystem::CPythonType::Other},
+ {u"str"_s, u"Shiboken::String::check"_s, TypeSystem::CPythonType::String},
+ // Types used as target lang API types for primitive types
+ {u"PyBool"_s, u"PyBool_Check"_s, TypeSystem::CPythonType::Bool},
+ {u"PyComplex"_s, u"PyComplex_Check"_s, TypeSystem::CPythonType::Other},
+ {u"PyLong"_s, u"PyLong_Check"_s, TypeSystem::CPythonType::Integer},
+ {u"PyFloat"_s, u"PyFloat_Check"_s, TypeSystem::CPythonType::Float},
+ // Single character strings to match C++ char types
+ {u"SbkChar"_s, u"SbkChar_Check"_s, TypeSystem::CPythonType::String}
+ };
+ return result;
+}
+
+struct SuppressedWarning
+{
+ QRegularExpression pattern;
+ QString rawText;
+ bool generate; // Current type system
+ mutable bool matched = false;
+};
+
+QList<OptionDescription> TypeDatabase::options()
+{
+ return {
+ {u"api-version=<\"package mask\">,<\"version\">"_s,
+ u"Specify the supported api version used to generate the bindings"_s},
+ {u"drop-type-entries=\"<TypeEntry0>[;TypeEntry1;...]\""_s,
+ u"Semicolon separated list of type system entries (classes, namespaces,\n"
+ "global functions and enums) to be dropped from generation."_s},
+ {u"-T<path>"_s, {} },
+ {u"typesystem-paths="_s + OptionsParser::pathSyntax(),
+ u"Paths used when searching for typesystems"_s},
+ {u"force-process-system-include-paths="_s + OptionsParser::pathSyntax(),
+ u"Include paths that are considered as system headers by the C++ parser, but should still "
+ "be processed to extract types (e.g. Qt include paths in a yocto sysroot)"_s},
+ {u"keywords=keyword1[,keyword2,...]"_s,
+ u"A comma-separated list of keywords for conditional typesystem parsing"_s},
+ };
+}
+
+struct TypeDatabaseOptions
+{
+ QStringList m_dropTypeEntries;
+ QStringList m_forceProcessSystemIncludes;
+ QStringList m_typesystemKeywords;
+ QStringList m_typesystemPaths;
+ bool m_suppressWarnings = true;
+};
+
+class TypeDatabaseOptionsParser : public OptionsParser
+{
+public:
+ explicit TypeDatabaseOptionsParser(TypeDatabaseOptions *o) : m_options(o) {}
+
+ bool handleBoolOption(const QString &key, OptionSource source) override;
+ bool handleOption(const QString &key, const QString &value, OptionSource source) override;
+
+private:
+ TypeDatabaseOptions *m_options;
+};
+
+bool TypeDatabaseOptionsParser::handleBoolOption(const QString &key, OptionSource source)
+{
+ switch (source) {
+ case OptionSource::CommandLine:
+ case OptionSource::ProjectFile:
+ if (key == u"no-suppress-warnings") {
+ m_options->m_suppressWarnings = false;
+ return true;
+ }
+ break;
+ case OptionSource::CommandLineSingleDash:
+ if (key.startsWith(u'T')) { // "-T/path" ends up a bool option
+ m_options->m_typesystemPaths += key.sliced(1).split(QDir::listSeparator(),
+ Qt::SkipEmptyParts);
+ return true;
+ }
+ break;
+ }
+ return false;
+}
+
+bool TypeDatabaseOptionsParser::handleOption(const QString &key, const QString &value,
+ OptionSource source)
+{
+ if (source == OptionSource::CommandLineSingleDash)
+ return false;
+ if (key == u"api-version") {
+ const auto fullVersions = QStringView{value}.split(u'|');
+ for (const auto &fullVersion : fullVersions) {
+ const auto parts = fullVersion.split(u',');
+ const QString package = parts.size() == 1
+ ? u"*"_s : parts.constFirst().toString();
+ const QString version = parts.constLast().toString();
+ if (!TypeDatabase::setApiVersion(package, version))
+ throw Exception(msgInvalidVersion(package, version));
+ }
+ return true;
+ }
+
+ if (key == u"drop-type-entries") {
+ m_options->m_dropTypeEntries = value.split(u';');
+ m_options->m_dropTypeEntries.sort();
+ return true;
+ }
+
+ if (key == u"keywords") {
+ m_options->m_typesystemKeywords = value.split(u',');
+ return true;
+ }
+
+ if (key == u"typesystem-paths") {
+ m_options->m_typesystemPaths += value.split(QDir::listSeparator(),
+ Qt::SkipEmptyParts);
+ return true;
+ }
+
+ if (key == u"force-process-system-include-paths") {
+ m_options->m_forceProcessSystemIncludes += value.split(QDir::listSeparator(),
+ Qt::SkipEmptyParts);
+ return true;
+ }
+
+ if (source == OptionSource::ProjectFile) {
+ if (key == u"typesystem-path") {
+ m_options->m_typesystemPaths += value;
+ return true;
+ }
+ }
+
+ return false;
+}
+
+struct TypeDatabasePrivate : public TypeDatabaseOptions
+{
+ TypeSystemTypeEntryCPtr defaultTypeSystemType() const;
+ TypeEntryPtr findType(const QString &name) const;
+ TypeEntryCList findCppTypes(const QString &name) const;
+ bool addType(TypeEntryPtr e, QString *errorMessage = nullptr);
+ bool parseFile(QIODevice *device, TypeDatabase *db, bool generate = true);
+ static bool parseFile(const TypeDatabaseParserContextPtr &context,
+ QIODevice *device, bool generate = true);
+ bool parseFile(const TypeDatabaseParserContextPtr &context,
+ const QString &filename, const QString &currentPath, bool generate);
+ bool prepareParsing(QFile &file, const QString &origFileName,
+ const QString &currentPath = {});
+
+ QString modifiedTypesystemFilepath(const QString& tsFile,
+ const QString &currentPath) const;
+ void addBuiltInType(const TypeEntryPtr &e);
+ PrimitiveTypeEntryPtr addBuiltInPrimitiveType(const QString &name,
+ const TypeSystemTypeEntryCPtr &root,
+ const QString &rootPackage,
+ const CustomTypeEntryPtr &targetLang);
+ void addBuiltInCppStringPrimitiveType(const QString &name,
+ const QString &viewName,
+ const TypeSystemTypeEntryCPtr &root,
+ const QString &rootPackage,
+ const CustomTypeEntryPtr &targetLang);
+ void addBuiltInPrimitiveTypes();
+ void addBuiltInContainerTypes(const TypeDatabaseParserContextPtr &context);
+ bool addOpaqueContainers(const TypeDatabaseParserContextPtr &context);
+ TypeEntryMultiMapConstIteratorRange findTypeRange(const QString &name) const;
+ template <class Predicate>
+ TypeEntryCList findTypesHelper(const QString &name, Predicate pred) const;
+ template <class Type, class Predicate>
+ QList<std::shared_ptr<const Type> > findTypesByTypeHelper(Predicate pred) const;
+ TypeEntryPtr resolveTypeDefEntry(const TypedefEntryPtr &typedefEntry, QString *errorMessage);
+ template <class String>
+ bool isSuppressedWarningHelper(const String &s) const;
+ bool resolveSmartPointerInstantiations(const TypeDatabaseParserContextPtr &context);
+ void formatDebug(QDebug &d) const;
+ void formatBuiltinTypes(QDebug &d) const;
+
+ TypeEntryMultiMap m_entries; // Contains duplicate entries (cf addInlineNamespaceLookups).
+ TypeEntryMap m_flagsEntries;
+ TypedefEntryMap m_typedefEntries;
+ TemplateEntryMap m_templates;
+ QList<SuppressedWarning> m_suppressedWarnings;
+ QList<TypeSystemTypeEntryCPtr > m_typeSystemEntries; // maintain order, default is first.
+
+ AddedFunctionList m_globalUserFunctions;
+ FunctionModificationList m_functionMods;
+
+ QStringList m_requiredTargetImports;
+
+ QHash<QString, bool> m_parsedTypesystemFiles;
+
+ QList<TypeRejection> m_rejections;
+};
+
+static const char ENV_TYPESYSTEMPATH[] = "TYPESYSTEMPATH";
+
+TypeDatabase::TypeDatabase() : d(new TypeDatabasePrivate)
{
- addBuiltInType(new VoidTypeEntry());
- addBuiltInType(new VarargsTypeEntry());
+ // Environment TYPESYSTEMPATH
+ if (qEnvironmentVariableIsSet(ENV_TYPESYSTEMPATH)) {
+ d->m_typesystemPaths
+ += qEnvironmentVariable(ENV_TYPESYSTEMPATH).split(QDir::listSeparator(),
+ Qt::SkipEmptyParts);
+ }
+
+ d->addBuiltInType(TypeEntryPtr(new VoidTypeEntry()));
+ d->addBuiltInType(TypeEntryPtr(new VarargsTypeEntry()));
+ for (const auto &pt : builtinPythonTypes())
+ d->addBuiltInType(TypeEntryPtr(new PythonTypeEntry(pt.name, pt.checkFunction, pt.type)));
+
+ for (const auto &p : predefinedTemplates())
+ addTemplate(p.name, p.content);
+}
+
+TypeDatabase::~TypeDatabase()
+{
+ delete d;
}
-TypeDatabase::~TypeDatabase() = default;
+std::shared_ptr<OptionsParser> TypeDatabase::createOptionsParser()
+{
+ return std::make_shared<TypeDatabaseOptionsParser>(d);
+}
-TypeDatabase* TypeDatabase::instance(bool newInstance)
+TypeDatabase *TypeDatabase::instance(bool newInstance)
{
static TypeDatabase *db = nullptr;
if (!db || newInstance) {
@@ -91,12 +337,11 @@ static const IntTypeNormalizationEntries &intTypeNormalizationEntries()
static bool firstTime = true;
if (firstTime) {
firstTime = false;
- for (auto t : {"char", "short", "int", "long"}) {
- const QString intType = QLatin1String(t);
- if (!TypeDatabase::instance()->findType(QLatin1Char('u') + intType)) {
+ for (const auto &intType : {"char"_L1, "short"_L1, "int"_L1, "long"_L1}) {
+ if (!TypeDatabase::instance()->findType(u'u' + intType)) {
IntTypeNormalizationEntry entry;
- entry.replacement = QStringLiteral("unsigned ") + intType;
- entry.regex.setPattern(QStringLiteral("\\bu") + intType + QStringLiteral("\\b"));
+ entry.replacement = "unsigned "_L1 + intType;
+ entry.regex.setPattern("\\bu"_L1 + intType + "\\b"_L1);
Q_ASSERT(entry.regex.isValid());
result.append(entry);
}
@@ -159,9 +404,10 @@ QString TypeDatabase::normalizedSignature(const QString &signature)
{
// QMetaObject::normalizedSignature() changes const-ref to value and
// changes "unsigned int" to "uint" which is undone by the below code
- QString normalized = QLatin1String(QMetaObject::normalizedSignature(signature.toUtf8().constData()));
+ QByteArray normalizedB = QMetaObject::normalizedSignature(signature.toUtf8().constData());
+ QString normalized = QLatin1StringView(normalizedB);
- if (instance() && signature.contains(QLatin1String("unsigned"))) {
+ if (instance() && signature.contains(u"unsigned")) {
const IntTypeNormalizationEntries &entries = intTypeNormalizationEntries();
for (const auto &entry : entries)
normalized.replace(entry.regex, entry.replacement);
@@ -172,141 +418,185 @@ QString TypeDatabase::normalizedSignature(const QString &signature)
QStringList TypeDatabase::requiredTargetImports() const
{
- return m_requiredTargetImports;
+ return d->m_requiredTargetImports;
}
void TypeDatabase::addRequiredTargetImport(const QString& moduleName)
{
- if (!m_requiredTargetImports.contains(moduleName))
- m_requiredTargetImports << moduleName;
-}
-
-void TypeDatabase::addTypesystemPath(const QString& typesystem_paths)
-{
- #if defined(Q_OS_WIN32)
- const char path_splitter = ';';
- #else
- const char path_splitter = ':';
- #endif
- m_typesystemPaths += typesystem_paths.split(QLatin1Char(path_splitter));
+ if (!d->m_requiredTargetImports.contains(moduleName))
+ d->m_requiredTargetImports << moduleName;
}
QStringList TypeDatabase::typesystemKeywords() const
{
- QStringList result = m_typesystemKeywords;
- for (const auto &d : m_dropTypeEntries)
- result.append(QStringLiteral("no_") + d);
+ QStringList result = d->m_typesystemKeywords;
+ for (const auto &d : d->m_dropTypeEntries)
+ result.append("no_"_L1 + d);
+
+ switch (clang::emulatedCompilerLanguageLevel()) {
+ case LanguageLevel::Cpp11:
+ result.append(u"c++11"_s);
+ break;
+ case LanguageLevel::Cpp14:
+ result.append(u"c++14"_s);
+ break;
+ case LanguageLevel::Cpp17:
+ result.append(u"c++17"_s);
+ break;
+ case LanguageLevel::Cpp20:
+ result.append(u"c++20"_s);
+ break;
+ default:
+ break;
+ }
return result;
}
IncludeList TypeDatabase::extraIncludes(const QString& className) const
{
- ComplexTypeEntry* typeEntry = findComplexType(className);
- return typeEntry ? typeEntry->extraIncludes() : IncludeList();
+ auto typeEntry = findComplexType(className);
+ return typeEntry ? typeEntry->extraIncludes() : IncludeList();
+}
+
+const QStringList &TypeDatabase::forceProcessSystemIncludes() const
+{
+ return d->m_forceProcessSystemIncludes;
}
-void TypeDatabase::addSystemInclude(const QString &name)
+void TypeDatabase::addForceProcessSystemInclude(const QString &name)
{
- m_systemIncludes.append(name.toUtf8());
+ d->m_forceProcessSystemIncludes.append(name);
}
// Add a lookup for the short name excluding inline namespaces
// so that "std::shared_ptr" finds "std::__1::shared_ptr" as well.
-// Note: This inserts duplicate TypeEntry * into m_entries.
-void TypeDatabase::addInlineNamespaceLookups(const NamespaceTypeEntry *n)
+// Note: This inserts duplicate TypeEntryPtr into m_entries.
+void TypeDatabase::addInlineNamespaceLookups(const NamespaceTypeEntryCPtr &n)
{
TypeEntryList additionalEntries; // Store before modifying the hash
- for (TypeEntry *entry : qAsConst(m_entries)) {
+ for (const auto &entry : std::as_const(d->m_entries)) {
if (entry->isChildOf(n))
additionalEntries.append(entry);
}
- for (const auto &ae : qAsConst(additionalEntries))
- m_entries.insert(ae->shortName(), ae);
+ for (const auto &ae : std::as_const(additionalEntries))
+ d->m_entries.insert(ae->shortName(), ae);
}
-ContainerTypeEntry* TypeDatabase::findContainerType(const QString &name) const
+ContainerTypeEntryPtr TypeDatabase::findContainerType(const QString &name) const
{
QString template_name = name;
- int pos = name.indexOf(QLatin1Char('<'));
+ const auto pos = name.indexOf(u'<');
if (pos > 0)
template_name = name.left(pos);
- TypeEntry* type_entry = findType(template_name);
+ auto type_entry = findType(template_name);
if (type_entry && type_entry->isContainer())
- return static_cast<ContainerTypeEntry*>(type_entry);
- return nullptr;
+ return std::static_pointer_cast<ContainerTypeEntry>(type_entry);
+ return {};
}
-static bool inline useType(const TypeEntry *t)
+static bool inline useType(const TypeEntryCPtr &t)
{
return !t->isPrimitive()
- || static_cast<const PrimitiveTypeEntry *>(t)->preferredTargetLangType();
+ || std::static_pointer_cast<const PrimitiveTypeEntry>(t)->preferredTargetLangType();
}
-FunctionTypeEntry* TypeDatabase::findFunctionType(const QString& name) const
+FunctionTypeEntryPtr TypeDatabase::findFunctionType(const QString &name) const
{
- const auto entries = findTypeRange(name);
- for (TypeEntry *entry : entries) {
+ const auto entries = d->findTypeRange(name);
+ for (const TypeEntryPtr &entry : entries) {
if (entry->type() == TypeEntry::FunctionType && useType(entry))
- return static_cast<FunctionTypeEntry*>(entry);
+ return std::static_pointer_cast<FunctionTypeEntry>(entry);
}
- return nullptr;
+ return {};
}
-void TypeDatabase::addTypeSystemType(const TypeSystemTypeEntry *e)
+void TypeDatabase::addTypeSystemType(const TypeSystemTypeEntryCPtr &e)
{
- m_typeSystemEntries.append(e);
+ d->m_typeSystemEntries.append(e);
}
-const TypeSystemTypeEntry *TypeDatabase::findTypeSystemType(const QString &name) const
+TypeSystemTypeEntryCPtr TypeDatabase::findTypeSystemType(const QString &name) const
{
- for (auto entry : m_typeSystemEntries) {
+ for (auto entry : d->m_typeSystemEntries) {
if (entry->name() == name)
return entry;
}
- return nullptr;
+ return {};
}
-const TypeSystemTypeEntry *TypeDatabase::defaultTypeSystemType() const
+TypeSystemTypeEntryCPtr TypeDatabase::defaultTypeSystemType() const
+{
+ return d->defaultTypeSystemType();
+}
+
+QString TypeDatabase::loadedTypeSystemNames() const
+{
+ QString result;
+ for (const auto &entry : d->m_typeSystemEntries) {
+ if (!result.isEmpty())
+ result += u", "_s;
+ result += entry->name();
+ }
+ return result;
+}
+
+TypeSystemTypeEntryCPtr TypeDatabasePrivate::defaultTypeSystemType() const
{
return m_typeSystemEntries.value(0, nullptr);
}
QString TypeDatabase::defaultPackageName() const
{
- Q_ASSERT(!m_typeSystemEntries.isEmpty());
- return m_typeSystemEntries.constFirst()->name();
+ Q_ASSERT(!d->m_typeSystemEntries.isEmpty());
+ return d->m_typeSystemEntries.constFirst()->name();
}
-TypeEntry* TypeDatabase::findType(const QString& name) const
+TypeEntryPtr TypeDatabase::findType(const QString& name) const
+{
+ return d->findType(name);
+}
+
+TypeEntryPtr TypeDatabasePrivate::findType(const QString& name) const
{
const auto entries = findTypeRange(name);
- for (TypeEntry *entry : entries) {
+ for (const auto &entry : entries) {
if (useType(entry))
return entry;
}
- return nullptr;
+ return {};
}
template <class Predicate>
-TypeEntries TypeDatabase::findTypesHelper(const QString &name, Predicate pred) const
+TypeEntryCList TypeDatabasePrivate::findTypesHelper(const QString &name, Predicate pred) const
{
- TypeEntries result;
+ TypeEntryCList result;
const auto entries = findTypeRange(name);
- for (TypeEntry *entry : entries) {
+ for (const auto &entry : entries) {
if (pred(entry))
result.append(entry);
}
return result;
}
-TypeEntries TypeDatabase::findTypes(const QString &name) const
+template<class Type, class Predicate>
+QList<std::shared_ptr<const Type> > TypeDatabasePrivate::findTypesByTypeHelper(Predicate pred) const
{
- return findTypesHelper(name, useType);
+ QList<std::shared_ptr<const Type> > result;
+ for (const auto &entry : m_entries) {
+ if (pred(entry))
+ result.append(std::static_pointer_cast<const Type>(entry));
+ }
+ return result;
}
-static bool useCppType(const TypeEntry *t)
+TypeEntryCList TypeDatabase::findTypes(const QString &name) const
+{
+ return d->findTypesHelper(name, useType);
+}
+
+static bool useCppType(const TypeEntryCPtr &t)
{
bool result = false;
switch (t->type()) {
@@ -330,37 +620,48 @@ static bool useCppType(const TypeEntry *t)
return result;
}
-TypeEntries TypeDatabase::findCppTypes(const QString &name) const
+TypeEntryCList TypeDatabase::findCppTypes(const QString &name) const
+{
+ return d->findCppTypes(name);
+}
+
+TypeEntryCList TypeDatabasePrivate::findCppTypes(const QString &name) const
{
return findTypesHelper(name, useCppType);
}
-TypeEntryMultiMapConstIteratorRange TypeDatabase::findTypeRange(const QString &name) const
+const TypeEntryMultiMap &TypeDatabase::entries() const
+{
+ return d->m_entries;
+}
+
+const TypedefEntryMap &TypeDatabase::typedefEntries() const
+{
+ return d->m_typedefEntries;
+}
+
+TypeEntryMultiMapConstIteratorRange TypeDatabasePrivate::findTypeRange(const QString &name) const
{
const auto range = m_entries.equal_range(name);
return {range.first, range.second};
}
-PrimitiveTypeEntryList TypeDatabase::primitiveTypes() const
+PrimitiveTypeEntryCList TypeDatabase::primitiveTypes() const
{
- PrimitiveTypeEntryList returned;
- for (auto it = m_entries.cbegin(), end = m_entries.cend(); it != end; ++it) {
- TypeEntry *typeEntry = it.value();
- if (typeEntry->isPrimitive())
- returned.append(static_cast<PrimitiveTypeEntry *>(typeEntry));
- }
- return returned;
+ auto pred = [](const TypeEntryCPtr &t) { return t->isPrimitive(); };
+ return d->findTypesByTypeHelper<PrimitiveTypeEntry>(pred);
}
-ContainerTypeEntryList TypeDatabase::containerTypes() const
+ContainerTypeEntryCList TypeDatabase::containerTypes() const
{
- ContainerTypeEntryList returned;
- for (auto it = m_entries.cbegin(), end = m_entries.cend(); it != end; ++it) {
- TypeEntry *typeEntry = it.value();
- if (typeEntry->isContainer())
- returned.append(static_cast<ContainerTypeEntry *>(typeEntry));
- }
- return returned;
+ auto pred = [](const TypeEntryCPtr &t) { return t->isContainer(); };
+ return d->findTypesByTypeHelper<ContainerTypeEntry>(pred);
+}
+
+SmartPointerTypeEntryList TypeDatabase::smartPointerTypes() const
+{
+ auto pred = [](const TypeEntryCPtr &t) { return t->isSmartPointer(); };
+ return d->findTypesByTypeHelper<SmartPointerTypeEntry>(pred);
}
#ifndef QT_NO_DEBUG_STREAM
@@ -377,36 +678,15 @@ QDebug operator<<(QDebug d, const TypeRejection &r)
void TypeDatabase::addRejection(const TypeRejection &r)
{
- m_rejections << r;
-}
-
-static inline QString msgRejectReason(const TypeRejection &r, const QString &needle = QString())
-{
- QString result;
- QTextStream str(&result);
- switch (r.matchType) {
- case TypeRejection::ExcludeClass:
- str << " matches class exclusion \"" << r.className.pattern() << '"';
- break;
- case TypeRejection::Function:
- case TypeRejection::Field:
- case TypeRejection::Enum:
- str << " matches class \"" << r.className.pattern() << "\" and \"" << r.pattern.pattern() << '"';
- break;
- case TypeRejection::ArgumentType:
- case TypeRejection::ReturnType:
- str << " matches class \"" << r.className.pattern() << "\" and \"" << needle
- << "\" matches \"" << r.pattern.pattern() << '"';
- break;
- }
- return result;
+ d->m_rejections << r;
}
// Match class name only
bool TypeDatabase::isClassRejected(const QString& className, QString *reason) const
{
- for (const TypeRejection& r : m_rejections) {
+ for (const TypeRejection& r : d->m_rejections) {
if (r.matchType == TypeRejection::ExcludeClass && r.className.match(className).hasMatch()) {
+ r.matched = true;
if (reason)
*reason = msgRejectReason(r);
return true;
@@ -425,6 +705,7 @@ static bool findRejection(const QList<TypeRejection> &rejections,
for (const TypeRejection& r : rejections) {
if (r.matchType == matchType && r.pattern.match(name).hasMatch()
&& r.className.match(className).hasMatch()) {
+ r.matched = true;
if (reason)
*reason = msgRejectReason(r, name);
return true;
@@ -435,24 +716,24 @@ static bool findRejection(const QList<TypeRejection> &rejections,
bool TypeDatabase::isEnumRejected(const QString& className, const QString& enumName, QString *reason) const
{
- return findRejection(m_rejections, TypeRejection::Enum, className, enumName, reason);
+ return findRejection(d->m_rejections, TypeRejection::Enum, className, enumName, reason);
}
-TypeEntry *TypeDatabase::resolveTypeDefEntry(TypedefEntry *typedefEntry,
+TypeEntryPtr TypeDatabasePrivate::resolveTypeDefEntry(const TypedefEntryPtr &typedefEntry,
QString *errorMessage)
{
QString sourceName = typedefEntry->sourceType();
- const int lessThanPos = sourceName.indexOf(QLatin1Char('<'));
+ const auto lessThanPos = sourceName.indexOf(u'<');
if (lessThanPos != -1)
sourceName.truncate(lessThanPos);
- ComplexTypeEntry *source = nullptr;
- for (TypeEntry *e : findTypeRange(sourceName)) {
+ ComplexTypeEntryPtr source;
+ for (const auto &e : findTypeRange(sourceName)) {
switch (e->type()) {
case TypeEntry::BasicValueType:
case TypeEntry::ContainerType:
case TypeEntry::ObjectType:
case TypeEntry::SmartPointerType:
- source = dynamic_cast<ComplexTypeEntry *>(e);
+ source = std::dynamic_pointer_cast<ComplexTypeEntry>(e);
Q_ASSERT(source);
break;
default:
@@ -461,23 +742,34 @@ TypeEntry *TypeDatabase::resolveTypeDefEntry(TypedefEntry *typedefEntry,
}
if (!source) {
if (errorMessage)
- *errorMessage = QLatin1String("Unable to resolve typedef \"")
- + typedefEntry->sourceType() + QLatin1Char('"');
+ *errorMessage = msgUnableToResolveTypedef(typedefEntry->sourceType(), sourceName);
return nullptr;
}
- auto *result = static_cast<ComplexTypeEntry *>(source->clone());
+ m_typedefEntries.insert(typedefEntry->qualifiedCppName(), typedefEntry);
+ return TypeDatabase::initializeTypeDefEntry(typedefEntry, source);
+}
+
+ComplexTypeEntryPtr
+ TypeDatabase::initializeTypeDefEntry(const TypedefEntryPtr &typedefEntry,
+ const ComplexTypeEntryCPtr &source)
+{
+ ComplexTypeEntryPtr result(static_cast<ComplexTypeEntry *>(source->clone()));
result->useAsTypedef(typedefEntry);
typedefEntry->setSource(source);
typedefEntry->setTarget(result);
- m_typedefEntries.insert(typedefEntry->qualifiedCppName(), typedefEntry);
return result;
}
-bool TypeDatabase::addType(TypeEntry *e, QString *errorMessage)
+bool TypeDatabase::addType(const TypeEntryPtr &e, QString *errorMessage)
+{
+ return d->addType(e, errorMessage);
+}
+
+bool TypeDatabasePrivate::addType(TypeEntryPtr e, QString *errorMessage)
{
if (e->type() == TypeEntry::TypedefType) {
- e = resolveTypeDefEntry(static_cast<TypedefEntry *>(e), errorMessage);
+ e = resolveTypeDefEntry(std::static_pointer_cast<TypedefEntry>(e), errorMessage);
if (Q_UNLIKELY(!e))
return false;
}
@@ -486,11 +778,11 @@ bool TypeDatabase::addType(TypeEntry *e, QString *errorMessage)
}
// Add a dummy value entry for non-type template parameters
-ConstantValueTypeEntry *
+ConstantValueTypeEntryPtr
TypeDatabase::addConstantValueTypeEntry(const QString &value,
- const TypeEntry *parent)
+ const TypeEntryCPtr &parent)
{
- auto result = new ConstantValueTypeEntry(value, parent);
+ auto result = std::make_shared<ConstantValueTypeEntry>(value, parent);
result->setCodeGeneration(TypeEntry::GenerateNothing);
addType(result);
return result;
@@ -499,35 +791,36 @@ ConstantValueTypeEntry *
bool TypeDatabase::isFunctionRejected(const QString& className, const QString& functionName,
QString *reason) const
{
- return findRejection(m_rejections, TypeRejection::Function, className, functionName, reason);
+ return findRejection(d->m_rejections, TypeRejection::Function, className, functionName, reason);
}
bool TypeDatabase::isFieldRejected(const QString& className, const QString& fieldName,
QString *reason) const
{
- return findRejection(m_rejections, TypeRejection::Field, className, fieldName, reason);
+ return findRejection(d->m_rejections, TypeRejection::Field, className, fieldName, reason);
}
bool TypeDatabase::isArgumentTypeRejected(const QString& className, const QString& typeName,
QString *reason) const
{
- return findRejection(m_rejections, TypeRejection::ArgumentType, className, typeName, reason);
+ return findRejection(d->m_rejections, TypeRejection::ArgumentType, className, typeName, reason);
}
bool TypeDatabase::isReturnTypeRejected(const QString& className, const QString& typeName,
QString *reason) const
{
- return findRejection(m_rejections, TypeRejection::ReturnType, className, typeName, reason);
+ return findRejection(d->m_rejections, TypeRejection::ReturnType, className, typeName, reason);
}
-FlagsTypeEntry* TypeDatabase::findFlagsType(const QString &name) const
+FlagsTypeEntryPtr TypeDatabase::findFlagsType(const QString &name) const
{
- TypeEntry *fte = findType(name);
+ TypeEntryPtr fte = findType(name);
if (!fte) {
- fte = m_flagsEntries.value(name);
+ fte = d->m_flagsEntries.value(name);
if (!fte) {
//last hope, search for flag without scope inside of flags hash
- for (auto it = m_flagsEntries.cbegin(), end = m_flagsEntries.cend(); it != end; ++it) {
+ const auto end = d->m_flagsEntries.cend();
+ for (auto it = d->m_flagsEntries.cbegin(); it != end; ++it) {
if (it.key().endsWith(name)) {
fte = it.value();
break;
@@ -535,28 +828,45 @@ FlagsTypeEntry* TypeDatabase::findFlagsType(const QString &name) const
}
}
}
- return static_cast<FlagsTypeEntry *>(fte);
+ return std::static_pointer_cast<FlagsTypeEntry>(fte);
}
-void TypeDatabase::addFlagsType(FlagsTypeEntry *fte)
+void TypeDatabase::addFlagsType(const FlagsTypeEntryPtr &fte)
{
- m_flagsEntries[fte->originalName()] = fte;
+ d->m_flagsEntries[fte->originalName()] = fte;
}
-void TypeDatabase::addTemplate(TemplateEntry *t)
+TemplateEntryPtr TypeDatabase::findTemplate(const QString &name) const
{
- m_templates[t->name()] = t;
+ return d->m_templates[name];
+}
+
+void TypeDatabase::addTemplate(const TemplateEntryPtr &t)
+{
+ d->m_templates[t->name()] = t;
+}
+
+void TypeDatabase::addTemplate(const QString &name, const QString &code)
+{
+ auto te = std::make_shared<TemplateEntry>(name);
+ te->addCode(code);
+ addTemplate(te);
+}
+
+AddedFunctionList TypeDatabase::globalUserFunctions() const
+{
+ return d->m_globalUserFunctions;
}
void TypeDatabase::addGlobalUserFunctions(const AddedFunctionList &functions)
{
- m_globalUserFunctions << functions;
+ d->m_globalUserFunctions << functions;
}
AddedFunctionList TypeDatabase::findGlobalUserFunctions(const QString& name) const
{
AddedFunctionList addedFunctions;
- for (const AddedFunctionPtr &func : m_globalUserFunctions) {
+ for (const AddedFunctionPtr &func : d->m_globalUserFunctions) {
if (func->name() == name)
addedFunctions.append(func);
}
@@ -565,151 +875,384 @@ AddedFunctionList TypeDatabase::findGlobalUserFunctions(const QString& name) con
void TypeDatabase::addGlobalUserFunctionModifications(const FunctionModificationList &functionModifications)
{
- m_functionMods << functionModifications;
+ d->m_functionMods << functionModifications;
}
-QString TypeDatabase::globalNamespaceClassName(const TypeEntry * /*entry*/)
+QString TypeDatabase::globalNamespaceClassName(const TypeEntryCPtr & /*entry*/)
{
- return QLatin1String("Global");
+ return u"Global"_s;
}
-FunctionModificationList TypeDatabase::functionModifications(const QString& signature) const
+FunctionModificationList
+ TypeDatabase::globalFunctionModifications(const QStringList &signatures) const
{
FunctionModificationList lst;
- for (int i = 0; i < m_functionMods.count(); ++i) {
- const FunctionModification& mod = m_functionMods.at(i);
- if (mod.matches(signature))
+ for (const auto &mod : d->m_functionMods) {
+ if (mod.matches(signatures))
lst << mod;
}
return lst;
}
-bool TypeDatabase::addSuppressedWarning(const QString &warning, QString *errorMessage)
+bool TypeDatabase::addSuppressedWarning(const QString &warning, bool generate,
+ QString *errorMessage)
{
QString pattern;
- if (warning.startsWith(QLatin1Char('^')) && warning.endsWith(QLatin1Char('$'))) {
+ if (warning.startsWith(u'^') && warning.endsWith(u'$')) {
pattern = warning;
} else {
// Legacy syntax: Use wildcards '*' (unless escaped by '\')
- QList<int> asteriskPositions;
- const int warningSize = warning.size();
- for (int i = 0; i < warningSize; ++i) {
- if (warning.at(i) == QLatin1Char('\\'))
+ QList<qsizetype> asteriskPositions;
+ const auto warningSize = warning.size();
+ for (qsizetype i = 0, warningSize = warning.size(); i < warningSize; ++i) {
+ if (warning.at(i) == u'\\')
++i;
- else if (warning.at(i) == QLatin1Char('*'))
+ else if (warning.at(i) == u'*')
asteriskPositions.append(i);
}
asteriskPositions.append(warningSize);
- pattern.append(QLatin1Char('^'));
- int lastPos = 0;
- for (int a = 0, aSize = asteriskPositions.size(); a < aSize; ++a) {
+ pattern.append(u'^');
+ qsizetype lastPos = 0;
+ for (qsizetype a = 0, aSize = asteriskPositions.size(); a < aSize; ++a) {
if (a)
- pattern.append(QStringLiteral(".*"));
- const int nextPos = asteriskPositions.at(a);
+ pattern.append(".*"_L1);
+ const auto nextPos = asteriskPositions.at(a);
if (nextPos > lastPos)
pattern.append(QRegularExpression::escape(warning.mid(lastPos, nextPos - lastPos)));
lastPos = nextPos + 1;
}
- pattern.append(QLatin1Char('$'));
+ pattern.append(u'$');
}
QRegularExpression expression(pattern);
if (!expression.isValid()) {
- *errorMessage = QLatin1String("Invalid message pattern \"") + warning
- + QLatin1String("\": ") + expression.errorString();
+ *errorMessage = u"Invalid message pattern \""_s + warning
+ + u"\": "_s + expression.errorString();
return false;
}
expression.setPatternOptions(expression.patternOptions() | QRegularExpression::MultilineOption);
- m_suppressedWarnings.append(expression);
+ d->m_suppressedWarnings.append({expression, warning, generate});
return true;
}
bool TypeDatabase::isSuppressedWarning(QStringView s) const
{
- if (!m_suppressWarnings)
+ if (!d->m_suppressWarnings)
return false;
- return std::any_of(m_suppressedWarnings.cbegin(), m_suppressedWarnings.end(),
- [&s] (const QRegularExpression &e) {
- return e.match(s).hasMatch();
- });
+ auto wit = std::find_if(d->m_suppressedWarnings.cbegin(), d->m_suppressedWarnings.cend(),
+ [&s] (const SuppressedWarning &e) {
+ return e.pattern.matchView(s).hasMatch();
+ });
+ const bool found = wit != d->m_suppressedWarnings.cend();
+ if (found)
+ wit->matched = true;
+ return found;
}
QString TypeDatabase::modifiedTypesystemFilepath(const QString& tsFile, const QString &currentPath) const
{
+ return d->modifiedTypesystemFilepath(tsFile, currentPath);
+}
+
+void TypeDatabase::logUnmatched() const
+{
+ for (auto &sw : d->m_suppressedWarnings) {
+ if (sw.generate && !sw.matched)
+ qWarning("Unmatched suppressed warning: \"%s\"", qPrintable(sw.rawText));
+ }
+
+ for (auto &tr : d->m_rejections) {
+ if (tr.generate && !tr.matched) {
+ QDebug d = qWarning();
+ d.noquote();
+ d.nospace();
+ d << "Unmatched rejection: " << tr.matchType;
+ if (!tr.className.pattern().isEmpty())
+ d << " class " << tr.className.pattern();
+ if (!tr.pattern.pattern().isEmpty())
+ d << " \"" << tr.pattern.pattern() << '"';
+ }
+ }
+}
+
+QString TypeDatabasePrivate::modifiedTypesystemFilepath(const QString& tsFile,
+ const QString &currentPath) const
+{
const QFileInfo tsFi(tsFile);
if (tsFi.isAbsolute()) // No point in further lookups
return tsFi.absoluteFilePath();
if (tsFi.isFile()) // Make path absolute
return tsFi.absoluteFilePath();
if (!currentPath.isEmpty()) {
- const QFileInfo fi(currentPath + QLatin1Char('/') + tsFile);
+ const QFileInfo fi(currentPath + u'/' + tsFile);
if (fi.isFile())
return fi.absoluteFilePath();
}
for (const QString &path : m_typesystemPaths) {
- const QFileInfo fi(path + QLatin1Char('/') + tsFile);
+ const QFileInfo fi(path + u'/' + tsFile);
if (fi.isFile())
return fi.absoluteFilePath();
}
return tsFile;
}
-bool TypeDatabase::parseFile(const QString &filename, bool generate)
-{
- return parseFile(filename, QString(), generate);
+void TypeDatabasePrivate::addBuiltInContainerTypes(const TypeDatabaseParserContextPtr &context)
+{
+ // Unless the user has added the standard containers (potentially with
+ // some opaque types), add them by default.
+ const bool hasStdArray = findType(u"std::array"_s) != nullptr;
+ const bool hasStdPair = findType(u"std::pair"_s) != nullptr;
+ const bool hasStdList = findType(u"std::list"_s) != nullptr;
+ const bool hasStdVector = findType(u"std::vector"_s) != nullptr;
+ const bool hasStdMap = findType(u"std::map"_s) != nullptr;
+ const bool hasStdUnorderedMap = findType(u"std::unordered_map"_s) != nullptr;
+ const bool hasStdSpan = findType(u"std::span"_s) != nullptr;
+
+ if (hasStdPair && hasStdList && hasStdVector && hasStdMap && hasStdUnorderedMap)
+ return;
+
+ QByteArray ts = R"(<?xml version="1.0" encoding="UTF-8"?><typesystem>)";
+ if (!hasStdArray) {
+ ts += containerTypeSystemSnippet(
+ "std::array", "list", "array",
+ "shiboken_conversion_cppsequence_to_pylist",
+ "PySequence",
+ "shiboken_conversion_pyiterable_to_cpparray");
+ }
+ if (!hasStdPair) {
+ ts += containerTypeSystemSnippet(
+ "std::pair", "pair", "utility",
+ "shiboken_conversion_cpppair_to_pytuple",
+ "PySequence", "shiboken_conversion_pysequence_to_cpppair");
+ }
+ if (!hasStdList) {
+ ts += containerTypeSystemSnippet(
+ "std::list", "list", "list",
+ "shiboken_conversion_cppsequence_to_pylist",
+ "PySequence",
+ "shiboken_conversion_pyiterable_to_cppsequentialcontainer");
+ }
+ if (!hasStdVector) {
+ ts += containerTypeSystemSnippet(
+ "std::vector", "list", "vector",
+ "shiboken_conversion_cppsequence_to_pylist",
+ "PySequence",
+ "shiboken_conversion_pyiterable_to_cppsequentialcontainer_reserve");
+ }
+ if (!hasStdMap) {
+ ts += containerTypeSystemSnippet(
+ "std::map", "map", "map",
+ "shiboken_conversion_stdmap_to_pydict",
+ "PyDict", "shiboken_conversion_pydict_to_stdmap");
+ }
+ if (!hasStdUnorderedMap) {
+ ts += containerTypeSystemSnippet(
+ "std::unordered_map", "map", "unordered_map",
+ "shiboken_conversion_stdmap_to_pydict",
+ "PyDict", "shiboken_conversion_pydict_to_stdmap");
+ }
+ if (!hasStdSpan
+ && clang::emulatedCompilerLanguageLevel() >= LanguageLevel::Cpp20) {
+ auto spanSnip = containerTypeSystemSnippet(
+ "std::span", "span", "span",
+ "shiboken_conversion_cppsequence_to_pylist");
+ auto pos = spanSnip.indexOf('>');
+ spanSnip.insert(pos, R"( view-on="std::vector")");
+ ts += spanSnip;
+ }
+
+ ts += "</typesystem>";
+ QBuffer buffer(&ts);
+ buffer.open(QIODevice::ReadOnly);
+ const bool ok = parseFile(context, &buffer, true);
+ Q_ASSERT(ok);
}
-bool TypeDatabase::parseFile(const QString &filename, const QString &currentPath, bool generate)
+bool TypeDatabasePrivate::addOpaqueContainers(const TypeDatabaseParserContextPtr &context)
{
+ const auto &och = context->opaqueContainerHash;
+ for (auto it = och.cbegin(), end = och.cend(); it != end; ++it) {
+ const QString &name = it.key();
+ auto te = findType(name);
+ if (!te || !te->isContainer()) {
+ qCWarning(lcShiboken, "No container \"%s\" found.", qPrintable(name));
+ return false;
+ }
+ auto cte = std::static_pointer_cast<ContainerTypeEntry>(te);
+ cte->appendOpaqueContainers(it.value());
+ }
+ return true;
+}
- QString filepath = modifiedTypesystemFilepath(filename, currentPath);
- if (m_parsedTypesystemFiles.contains(filepath))
- return m_parsedTypesystemFiles[filepath];
+bool TypeDatabase::parseFile(const QString &filename, bool generate)
+{
+ QString filepath = modifiedTypesystemFilepath(filename, {});
+ QFile file(filepath);
+ return d->prepareParsing(file, filename) && d->parseFile(&file, this, generate);
+}
- m_parsedTypesystemFiles[filepath] = true; // Prevent recursion when including self.
+bool TypeDatabase::parseFile(const TypeDatabaseParserContextPtr &context,
+ const QString &filename, const QString &currentPath,
+ bool generate)
+{
+ return d->parseFile(context, filename, currentPath, generate);
+}
- QFile file(filepath);
+bool TypeDatabasePrivate::prepareParsing(QFile &file, const QString &origFileName,
+ const QString &currentPath)
+{
+ const QString &filepath = file.fileName();
if (!file.exists()) {
m_parsedTypesystemFiles[filepath] = false;
- QString message = QLatin1String("Can't find ") + filename;
+ QString message = u"Can't find "_s + origFileName;
if (!currentPath.isEmpty())
- message += QLatin1String(", current path: ") + currentPath;
- message += QLatin1String(", typesystem paths: ") + m_typesystemPaths.join(QLatin1String(", "));
- qCWarning(lcShiboken).noquote().nospace() << message;
+ message += u", current path: "_s + currentPath;
+ message += u", typesystem paths: "_s + m_typesystemPaths.join(u", "_s);
+ qCWarning(lcShiboken, "%s", qPrintable(message));
return false;
}
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
m_parsedTypesystemFiles[filepath] = false;
- qCWarning(lcShiboken).noquote().nospace()
- << "Can't open " << QDir::toNativeSeparators(filename) << ": " << file.errorString();
+ qCWarning(lcShiboken, "%s", qPrintable(msgCannotOpenForReading(file)));
return false;
}
- bool ok = parseFile(&file, generate);
+ m_parsedTypesystemFiles[filepath] = true;
+ return true;
+}
+
+bool TypeDatabasePrivate::parseFile(const TypeDatabaseParserContextPtr &context,
+ const QString &filename, const QString &currentPath,
+ bool generate)
+{
+ // Prevent recursion when including self.
+ QString filepath = modifiedTypesystemFilepath(filename, currentPath);
+ const auto it = m_parsedTypesystemFiles.constFind(filepath);
+ if (it != m_parsedTypesystemFiles.cend())
+ return it.value();
+
+ QFile file(filepath);
+ if (!prepareParsing(file, filename, currentPath))
+ return false;
+
+ const bool ok = parseFile(context, &file, generate);
m_parsedTypesystemFiles[filepath] = ok;
return ok;
}
-bool TypeDatabase::parseFile(QIODevice* device, bool generate)
+bool TypeDatabase::parseFile(QIODevice *device, bool generate)
+{
+ return d->parseFile(device, this, generate);
+}
+
+bool TypeDatabasePrivate::parseFile(QIODevice *device, TypeDatabase *db, bool generate)
+{
+ const auto context = std::make_shared<TypeDatabaseParserContext>();
+ context->db = db;
+
+ if (!parseFile(context, device, generate))
+ return false;
+
+ addBuiltInPrimitiveTypes();
+ addBuiltInContainerTypes(context);
+ return addOpaqueContainers(context)
+ && resolveSmartPointerInstantiations(context);
+}
+
+bool TypeDatabase::parseFile(const TypeDatabaseParserContextPtr &context,
+ QIODevice *device, bool generate)
+{
+ return d->parseFile(context, device, generate);
+}
+
+bool TypeDatabasePrivate::parseFile(const TypeDatabaseParserContextPtr &context,
+ QIODevice *device, bool generate)
{
ConditionalStreamReader reader(device);
- reader.setConditions(TypeDatabase::instance()->typesystemKeywords());
- TypeSystemParser handler(this, generate);
+ reader.setConditions(context->db->typesystemKeywords());
+ TypeSystemParser handler(context, generate);
const bool result = handler.parse(reader);
- if (!result)
+ if (!result) {
qCWarning(lcShiboken, "%s", qPrintable(handler.errorString()));
+ return false;
+ }
return result;
}
-PrimitiveTypeEntry *TypeDatabase::findPrimitiveType(const QString& name) const
+// Split a type list potentially with template types
+// "A<B,C>,D" -> ("A<B,C>", "D")
+static QStringList splitTypeList(const QString &s)
{
- const auto entries = findTypeRange(name);
- for (TypeEntry *entry : entries) {
+ QStringList result;
+ int templateDepth = 0;
+ qsizetype lastPos = 0;
+ const auto size = s.size();
+ for (qsizetype i = 0; i < size; ++i) {
+ switch (s.at(i).toLatin1()) {
+ case '<':
+ ++templateDepth;
+ break;
+ case '>':
+ --templateDepth;
+ break;
+ case ',':
+ if (templateDepth == 0) {
+ result.append(s.mid(lastPos, i - lastPos).trimmed());
+ lastPos = i + 1;
+ }
+ break;
+ }
+ }
+ if (lastPos < size)
+ result.append(s.mid(lastPos, size - lastPos).trimmed());
+ return result;
+}
+
+bool TypeDatabasePrivate::resolveSmartPointerInstantiations(const TypeDatabaseParserContextPtr &context)
+{
+ const auto &instantiations = context->smartPointerInstantiations;
+ for (auto it = instantiations.cbegin(), end = instantiations.cend(); it != end; ++it) {
+ auto smartPointerEntry = it.key();
+ const auto instantiationNames = splitTypeList(it.value());
+ SmartPointerTypeEntry::Instantiations instantiations;
+ instantiations.reserve(instantiationNames.size());
+ for (const auto &instantiation : instantiationNames) {
+ QString name;
+ QString type = instantiation;
+ const auto equalsPos = instantiation.indexOf(u'=');
+ if (equalsPos != -1) {
+ type.truncate(equalsPos);
+ name = instantiation.mid(equalsPos + 1);
+ }
+
+ const auto typeEntries = findCppTypes(type);
+ if (typeEntries.isEmpty()) {
+ const QString m = msgCannotFindTypeEntryForSmartPointer(type,
+ smartPointerEntry->name());
+ qCWarning(lcShiboken, "%s", qPrintable(m));
+ return false;
+ }
+ if (typeEntries.size() > 1) {
+ const QString m = msgAmbiguousTypesFound(type, typeEntries);
+ qCWarning(lcShiboken, "%s", qPrintable(m));
+ return false;
+ }
+ instantiations.append({name, typeEntries.constFirst()});
+ }
+ smartPointerEntry->setInstantiations(instantiations);
+ }
+ return true;
+}
+
+PrimitiveTypeEntryPtr TypeDatabase::findPrimitiveType(const QString& name) const
+{
+ const auto entries = d->findTypeRange(name);
+ for (const auto &entry : entries) {
if (entry->isPrimitive()) {
- auto *pe = static_cast<PrimitiveTypeEntry *>(entry);
+ auto pe = std::static_pointer_cast<PrimitiveTypeEntry>(entry);
if (pe->preferredTargetLangType())
return pe;
}
@@ -718,22 +1261,22 @@ PrimitiveTypeEntry *TypeDatabase::findPrimitiveType(const QString& name) const
return nullptr;
}
-ComplexTypeEntry* TypeDatabase::findComplexType(const QString& name) const
+ComplexTypeEntryPtr TypeDatabase::findComplexType(const QString& name) const
{
- const auto entries = findTypeRange(name);
- for (TypeEntry *entry : entries) {
+ const auto entries = d->findTypeRange(name);
+ for (const auto &entry : entries) {
if (entry->isComplex() && useType(entry))
- return static_cast<ComplexTypeEntry*>(entry);
+ return std::static_pointer_cast<ComplexTypeEntry>(entry);
}
return nullptr;
}
-ObjectTypeEntry* TypeDatabase::findObjectType(const QString& name) const
+ObjectTypeEntryPtr TypeDatabase::findObjectType(const QString& name) const
{
- const auto entries = findTypeRange(name);
- for (TypeEntry *entry : entries) {
+ const auto entries = d->findTypeRange(name);
+ for (const auto &entry : entries) {
if (entry && entry->isObject() && useType(entry))
- return static_cast<ObjectTypeEntry*>(entry);
+ return std::static_pointer_cast<ObjectTypeEntry>(entry);
}
return nullptr;
}
@@ -741,26 +1284,26 @@ ObjectTypeEntry* TypeDatabase::findObjectType(const QString& name) const
NamespaceTypeEntryList TypeDatabase::findNamespaceTypes(const QString& name) const
{
NamespaceTypeEntryList result;
- const auto entries = findTypeRange(name);
- for (TypeEntry *entry : entries) {
+ const auto entries = d->findTypeRange(name);
+ for (const auto &entry : entries) {
if (entry->isNamespace())
- result.append(static_cast<NamespaceTypeEntry*>(entry));
+ result.append(std::static_pointer_cast<NamespaceTypeEntry>(entry));
}
return result;
}
-NamespaceTypeEntry *TypeDatabase::findNamespaceType(const QString& name,
+NamespaceTypeEntryPtr TypeDatabase::findNamespaceType(const QString& name,
const QString &fileName) const
{
const auto entries = findNamespaceTypes(name);
// Preferably check on matching file name first, if a pattern was given.
if (!fileName.isEmpty()) {
- for (NamespaceTypeEntry *entry : entries) {
+ for (const auto &entry : entries) {
if (entry->hasPattern() && entry->matchesFile(fileName))
return entry;
}
}
- for (NamespaceTypeEntry *entry : entries) {
+ for (const auto &entry : entries) {
if (!entry->hasPattern())
return entry;
}
@@ -769,19 +1312,19 @@ NamespaceTypeEntry *TypeDatabase::findNamespaceType(const QString& name,
bool TypeDatabase::shouldDropTypeEntry(const QString& fullTypeName) const
{
- return m_dropTypeEntries.contains(fullTypeName);
+ return d->m_dropTypeEntries.contains(fullTypeName);
}
-void TypeDatabase::setDropTypeEntries(QStringList dropTypeEntries)
+void TypeDatabase::setDropTypeEntries(const QStringList &dropTypeEntries)
{
- m_dropTypeEntries = dropTypeEntries;
- m_dropTypeEntries.sort();
+ d->m_dropTypeEntries = dropTypeEntries;
+ d->m_dropTypeEntries.sort();
}
static bool computeTypeIndexes = true;
static int maxTypeIndex;
-static bool typeEntryLessThan(const TypeEntry* t1, const TypeEntry* t2)
+static bool typeEntryLessThan(const TypeEntryCPtr &t1, const TypeEntryCPtr &t2)
{
if (t1->revision() < t2->revision())
return true;
@@ -791,7 +1334,7 @@ static bool typeEntryLessThan(const TypeEntry* t1, const TypeEntry* t2)
static void _computeTypeIndexes()
{
- TypeDatabase* tdb = TypeDatabase::instance();
+ auto *tdb = TypeDatabase::instance();
TypeEntryList list;
@@ -799,7 +1342,7 @@ static void _computeTypeIndexes()
const auto &allEntries = tdb->entries();
list.reserve(allEntries.size());
for (auto tit = allEntries.cbegin(), end = allEntries.cend(); tit != end; ++tit) {
- TypeEntry *entry = tit.value();
+ const TypeEntryPtr &entry = tit.value();
if (entry->isPrimitive()
|| entry->isContainer()
|| entry->isFunction()
@@ -818,7 +1361,7 @@ static void _computeTypeIndexes()
std::sort(list.begin(), list.end(), typeEntryLessThan);
maxTypeIndex = 0;
- for (TypeEntry *e : qAsConst(list))
+ for (const TypeEntryPtr &e : std::as_const(list))
e->setSbkIndex(maxTypeIndex++);
computeTypeIndexes = false;
}
@@ -855,7 +1398,7 @@ bool TypeDatabase::setApiVersion(const QString& packageWildcardPattern, const QS
if (versionNumber.isNull())
return false;
ApiVersions &versions = *apiVersions();
- for (int i = 0, size = versions.size(); i < size; ++i) {
+ for (qsizetype i = 0, size = versions.size(); i < size; ++i) {
if (versions.at(i).first.pattern() == packagePattern) {
versions[i].second = versionNumber;
return true;
@@ -864,7 +1407,7 @@ bool TypeDatabase::setApiVersion(const QString& packageWildcardPattern, const QS
const QRegularExpression packageRegex(packagePattern);
if (!packageRegex.isValid())
return false;
- versions.append(qMakePair(packageRegex, versionNumber));
+ versions.append(std::make_pair(packageRegex, versionNumber));
return true;
}
@@ -874,7 +1417,7 @@ bool TypeDatabase::checkApiVersion(const QString &package,
const ApiVersions &versions = *apiVersions();
if (versions.isEmpty()) // Nothing specified: use latest.
return true;
- for (int i = 0, size = versions.size(); i < size; ++i) {
+ for (qsizetype i = 0, size = versions.size(); i < size; ++i) {
if (versions.at(i).first.match(package).hasMatch())
return versions.at(i).second >= vr.since
&& versions.at(i).second <= vr.until;
@@ -882,23 +1425,18 @@ bool TypeDatabase::checkApiVersion(const QString &package,
return false;
}
-#ifndef QT_NO_DEBUG_STREAM
+bool TypeDatabase::hasDroppedTypeEntries() const
+{
+ return !d->m_dropTypeEntries.isEmpty();
+}
-template <class Container, class Separator>
-static void formatList(QDebug &d, const char *name, const Container &c, Separator sep)
+#ifndef QT_NO_DEBUG_STREAM
+void TypeDatabase::formatDebug(QDebug &debug) const
{
- if (const int size = c.size()) {
- d << ", " << name << '[' << size << "]=(";
- for (int i = 0; i < size; ++i) {
- if (i)
- d << sep;
- d << c.at(i);
- }
- d << ')';
- }
+ d->formatDebug(debug);
}
-void TypeDatabase::formatDebug(QDebug &d) const
+void TypeDatabasePrivate::formatDebug(QDebug &d) const
{
d << "TypeDatabase("
<< "entries[" << m_entries.size() << "]=";
@@ -935,16 +1473,182 @@ void TypeDatabase::formatDebug(QDebug &d) const
d << ")\n";
}
d <<"\nglobalUserFunctions=" << m_globalUserFunctions << '\n';
- formatList(d, "globalFunctionMods", m_functionMods, '\n');
+ formatList(d, "globalFunctionMods", m_functionMods, "\n");
d << ')';
}
-void TypeDatabase::addBuiltInType(TypeEntry *e)
+// Helpers for dumping out primitive type info
+
+struct formatPrimitiveEntry
+{
+ explicit formatPrimitiveEntry(const PrimitiveTypeEntryCPtr &e) : m_pe(e) {}
+
+ PrimitiveTypeEntryCPtr m_pe;
+};
+
+QDebug operator<<(QDebug debug, const formatPrimitiveEntry &fe)
+{
+ QDebugStateSaver saver(debug);
+ debug.noquote();
+ debug.nospace();
+ const QString &name = fe.m_pe->name();
+ const QString &targetLangName = fe.m_pe->targetLangApiName();
+ debug << '"' << name << '"';
+ if (name != targetLangName)
+ debug << " (\"" << targetLangName << "\")";
+ if (fe.m_pe->isBuiltIn())
+ debug << " [builtin]";
+ if (isExtendedCppPrimitive(fe.m_pe)) {
+ debug << " [";
+ if (!isCppPrimitive(fe.m_pe))
+ debug << "extended ";
+ debug << "C++]";
+ }
+ return debug;
+}
+
+// Sort primitive types for displaying; base type and typedef'ed types
+struct PrimitiveFormatListEntry
+{
+ PrimitiveTypeEntryCPtr baseType;
+ PrimitiveTypeEntryCList typedefs;
+};
+
+static bool operator<(const PrimitiveFormatListEntry &e1, const PrimitiveFormatListEntry &e2)
+{
+ return e1.baseType->name() < e2.baseType->name();
+}
+
+using PrimitiveFormatListEntries = QList<PrimitiveFormatListEntry>;
+
+static qsizetype indexOf(const PrimitiveFormatListEntries &e, const PrimitiveTypeEntryCPtr &needle)
+{
+ for (qsizetype i = 0, size = e.size(); i < size; ++i) {
+ if (e.at(i).baseType == needle)
+ return i;
+ }
+ return -1;
+}
+
+void TypeDatabase::formatBuiltinTypes(QDebug debug) const
+{
+ QDebugStateSaver saver(debug);
+ debug.noquote();
+ debug.nospace();
+
+ // Determine base types and their typedef'ed types
+ QList<PrimitiveFormatListEntry> primitiveEntries;
+ for (const auto &e : std::as_const(d->m_entries)) {
+ if (e->isPrimitive()) {
+ auto pe = std::static_pointer_cast<const PrimitiveTypeEntry>(e);
+ auto basic = basicReferencedTypeEntry(pe);
+ if (basic != pe) {
+ const auto idx = indexOf(primitiveEntries, basic);
+ if (idx != -1)
+ primitiveEntries[idx].typedefs.append(pe);
+ else
+ primitiveEntries.append(PrimitiveFormatListEntry{basic, {pe}});
+ } else {
+ primitiveEntries.append(PrimitiveFormatListEntry{pe, {}});
+ }
+ }
+ }
+
+ std::sort(primitiveEntries.begin(), primitiveEntries.end());
+
+ for (const auto &e : std::as_const(primitiveEntries)) {
+ debug << "Primitive: " << formatPrimitiveEntry(e.baseType) << '\n';
+ for (const auto &pe : e.typedefs)
+ debug << " " << formatPrimitiveEntry(pe) << '\n';
+ }
+}
+
+void TypeDatabasePrivate::addBuiltInType(const TypeEntryPtr &e)
{
e->setBuiltIn(true);
addType(e);
}
+PrimitiveTypeEntryPtr
+ TypeDatabasePrivate::addBuiltInPrimitiveType(const QString &name,
+ const TypeSystemTypeEntryCPtr &root,
+ const QString &rootPackage,
+ const CustomTypeEntryPtr &targetLang)
+{
+ auto result = std::make_shared<PrimitiveTypeEntry>(name, QVersionNumber{}, root);
+ result->setTargetLangApiType(targetLang);
+ result->setTargetLangPackage(rootPackage);
+ addBuiltInType(result);
+ return result;
+}
+
+void TypeDatabasePrivate::addBuiltInCppStringPrimitiveType(const QString &name,
+ const QString &viewName,
+ const TypeSystemTypeEntryCPtr &root,
+ const QString &rootPackage,
+ const CustomTypeEntryPtr &targetLang)
+
+{
+ auto stringType = addBuiltInPrimitiveType(name, root, rootPackage,
+ targetLang);
+ auto viewType = addBuiltInPrimitiveType(viewName, root, rootPackage,
+ nullptr);
+ viewType->setViewOn(stringType);
+}
+
+void TypeDatabasePrivate::addBuiltInPrimitiveTypes()
+{
+ auto root = defaultTypeSystemType();
+ const QString &rootPackage = root->name();
+
+ // C++ primitive types
+ auto pyLongEntry = findType(u"PyLong"_s);
+ Q_ASSERT(pyLongEntry && pyLongEntry->isCustom());
+ auto pyLongCustomEntry = std::static_pointer_cast<CustomTypeEntry>(pyLongEntry);
+ auto pyBoolEntry = findType(u"PyBool"_s);
+ Q_ASSERT(pyBoolEntry && pyBoolEntry->isCustom());
+ auto sbkCharEntry = findType(u"SbkChar"_s);
+ Q_ASSERT(sbkCharEntry && sbkCharEntry->isCustom());
+ auto sbkCharCustomEntry = std::static_pointer_cast<CustomTypeEntry>(sbkCharEntry);
+
+ auto pyBoolCustomEntry = std::static_pointer_cast<CustomTypeEntry>(pyBoolEntry);
+ for (const auto &t : AbstractMetaType::cppIntegralTypes()) {
+ if (!m_entries.contains(t)) {
+ CustomTypeEntryPtr targetLangApi = pyLongCustomEntry;
+ if (t == u"bool")
+ targetLangApi = pyBoolCustomEntry;
+ else if (AbstractMetaType::cppCharTypes().contains(t))
+ targetLangApi = sbkCharCustomEntry;
+ addBuiltInPrimitiveType(t, root, rootPackage, targetLangApi);
+ }
+ }
+
+ auto pyFloatEntry = findType(u"PyFloat"_s);
+ Q_ASSERT(pyFloatEntry && pyFloatEntry->isCustom());
+ auto pyFloatCustomEntry = std::static_pointer_cast<CustomTypeEntry>(pyFloatEntry);
+ for (const auto &t : AbstractMetaType::cppFloatTypes()) {
+ if (!m_entries.contains(t))
+ addBuiltInPrimitiveType(t, root, rootPackage, pyFloatCustomEntry);
+ }
+
+ auto pyUnicodeEntry = findType(u"PyUnicode"_s);
+ Q_ASSERT(pyUnicodeEntry && pyUnicodeEntry->isCustom());
+ auto pyUnicodeCustomEntry = std::static_pointer_cast<CustomTypeEntry>(pyUnicodeEntry);
+
+ constexpr auto stdString = "std::string"_L1;
+ if (!m_entries.contains(stdString)) {
+ addBuiltInCppStringPrimitiveType(stdString, u"std::string_view"_s,
+ root, rootPackage,
+ pyUnicodeCustomEntry);
+ }
+ constexpr auto stdWString = "std::wstring"_L1;
+ if (!m_entries.contains(stdWString)) {
+ addBuiltInCppStringPrimitiveType(stdWString, u"std::wstring_view"_s,
+ root, rootPackage,
+ pyUnicodeCustomEntry);
+ }
+}
+
QDebug operator<<(QDebug d, const TypeDatabase &db)
{
QDebugStateSaver saver(d);
diff --git a/sources/shiboken6/ApiExtractor/typedatabase.h b/sources/shiboken6/ApiExtractor/typedatabase.h
index 347401968..d5adca324 100644
--- a/sources/shiboken6/ApiExtractor/typedatabase.h
+++ b/sources/shiboken6/ApiExtractor/typedatabase.h
@@ -1,64 +1,30 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TYPEDATABASE_H
#define TYPEDATABASE_H
#include "include.h"
+#include "modifications_typedefs.h"
#include "typedatabase_typedefs.h"
-#include "typesystem_enums.h"
-#include "typesystem_typedefs.h"
#include <QtCore/QRegularExpression>
#include <QtCore/QStringList>
#include <QtCore/QVersionNumber>
-QT_FORWARD_DECLARE_CLASS(QIODevice)
+#include <memory>
-class ComplexTypeEntry;
-class ContainerTypeEntry;
-class FlagsTypeEntry;
-class FunctionTypeEntry;
-class NamespaceTypeEntry;
-class ObjectTypeEntry;
-class TemplateEntry;
-class TypeEntry;
+QT_FORWARD_DECLARE_CLASS(QIODevice)
-struct TypeRejection;
+struct OptionDescription;
+class OptionsParser;
+struct TypeDatabasePrivate;
+struct TypeDatabaseParserContext;
QT_FORWARD_DECLARE_CLASS(QDebug)
int getMaxTypeIndex();
-class ContainerTypeEntry;
-class PrimitiveTypeEntry;
-class TypeSystemTypeEntry;
-
struct VersionRange
{
bool isNull() const
@@ -85,7 +51,9 @@ struct TypeRejection
QRegularExpression className;
QRegularExpression pattern;
- MatchType matchType;
+ MatchType matchType = ExcludeClass;
+ bool generate; // Current type system
+ mutable bool matched = false;
};
#ifndef QT_NO_DEBUG_STREAM
@@ -95,10 +63,14 @@ QDebug operator<<(QDebug d, const TypeRejection &r);
class TypeDatabase
{
TypeDatabase();
- Q_DISABLE_COPY(TypeDatabase)
public:
+ Q_DISABLE_COPY_MOVE(TypeDatabase)
+
~TypeDatabase();
+ static QList<OptionDescription> options();
+ std::shared_ptr<OptionsParser> createOptionsParser();
+
/**
* Return the type system instance.
* \param newInstance This parameter is useful just for unit testing, because singletons causes
@@ -113,39 +85,39 @@ public:
void addRequiredTargetImport(const QString &moduleName);
- void addTypesystemPath(const QString &typesystem_paths);
-
- void setTypesystemKeywords(const QStringList &keywords) { m_typesystemKeywords = keywords; }
QStringList typesystemKeywords() const;
IncludeList extraIncludes(const QString &className) const;
- const QByteArrayList &systemIncludes() const { return m_systemIncludes; }
- void addSystemInclude(const QString &name);
+ const QStringList &forceProcessSystemIncludes() const;
+ void addForceProcessSystemInclude(const QString &name);
- void addInlineNamespaceLookups(const NamespaceTypeEntry *n);
+ void addInlineNamespaceLookups(const NamespaceTypeEntryCPtr &n);
- PrimitiveTypeEntry *findPrimitiveType(const QString &name) const;
- ComplexTypeEntry *findComplexType(const QString &name) const;
- ObjectTypeEntry *findObjectType(const QString &name) const;
+ PrimitiveTypeEntryPtr findPrimitiveType(const QString &name) const;
+ ComplexTypeEntryPtr findComplexType(const QString &name) const;
+ ObjectTypeEntryPtr findObjectType(const QString &name) const;
NamespaceTypeEntryList findNamespaceTypes(const QString &name) const;
- NamespaceTypeEntry *findNamespaceType(const QString &name, const QString &fileName = QString()) const;
- ContainerTypeEntry *findContainerType(const QString &name) const;
- FunctionTypeEntry *findFunctionType(const QString &name) const;
- const TypeSystemTypeEntry *findTypeSystemType(const QString &name) const;
- const TypeSystemTypeEntry *defaultTypeSystemType() const;
+ NamespaceTypeEntryPtr findNamespaceType(const QString &name, const QString &fileName = QString()) const;
+ ContainerTypeEntryPtr findContainerType(const QString &name) const;
+ FunctionTypeEntryPtr findFunctionType(const QString &name) const;
+ TypeSystemTypeEntryCPtr findTypeSystemType(const QString &name) const;
+ TypeSystemTypeEntryCPtr defaultTypeSystemType() const;
+ QString loadedTypeSystemNames() const;
QString defaultPackageName() const;
- TypeEntry *findType(const QString &name) const;
- TypeEntries findTypes(const QString &name) const;
- TypeEntries findCppTypes(const QString &name) const;
+ TypeEntryPtr findType(const QString &name) const;
+ TypeEntryCList findTypes(const QString &name) const;
+ TypeEntryCList findCppTypes(const QString &name) const;
- const TypeEntryMultiMap &entries() const { return m_entries; }
- const TypedefEntryMap &typedefEntries() const { return m_typedefEntries; }
+ const TypeEntryMultiMap &entries() const;
+ const TypedefEntryMap &typedefEntries() const;
- PrimitiveTypeEntryList primitiveTypes() const;
+ PrimitiveTypeEntryCList primitiveTypes() const;
- ContainerTypeEntryList containerTypes() const;
+ ContainerTypeEntryCList containerTypes() const;
+
+ SmartPointerTypeEntryList smartPointerTypes() const;
void addRejection(const TypeRejection &);
bool isClassRejected(const QString &className, QString *reason = nullptr) const;
@@ -160,19 +132,24 @@ public:
bool isReturnTypeRejected(const QString &className, const QString &typeName,
QString *reason = nullptr) const;
- bool addType(TypeEntry *e, QString *errorMessage = nullptr);
- ConstantValueTypeEntry *addConstantValueTypeEntry(const QString &value,
- const TypeEntry *parent);
- void addTypeSystemType(const TypeSystemTypeEntry *e);
+ bool addType(const TypeEntryPtr &e, QString *errorMessage = nullptr);
+ ConstantValueTypeEntryPtr addConstantValueTypeEntry(const QString &value,
+ const TypeEntryCPtr &parent);
+ void addTypeSystemType(const TypeSystemTypeEntryCPtr &e);
+
+ static ComplexTypeEntryPtr
+ initializeTypeDefEntry(const TypedefEntryPtr &typedefEntry,
+ const ComplexTypeEntryCPtr &source);
- FlagsTypeEntry *findFlagsType(const QString &name) const;
- void addFlagsType(FlagsTypeEntry *fte);
+ FlagsTypeEntryPtr findFlagsType(const QString &name) const;
+ void addFlagsType(const FlagsTypeEntryPtr &fte);
- TemplateEntry *findTemplate(const QString &name) const { return m_templates[name]; }
+ TemplateEntryPtr findTemplate(const QString &name) const;
- void addTemplate(TemplateEntry *t);
+ void addTemplate(const TemplateEntryPtr &t);
+ void addTemplate(const QString &name, const QString &code);
- AddedFunctionList globalUserFunctions() const { return m_globalUserFunctions; }
+ AddedFunctionList globalUserFunctions() const;
void addGlobalUserFunctions(const AddedFunctionList &functions);
@@ -180,70 +157,51 @@ public:
void addGlobalUserFunctionModifications(const FunctionModificationList &functionModifications);
- FunctionModificationList functionModifications(const QString &signature) const;
-
- void setSuppressWarnings(bool on) { m_suppressWarnings = on; }
+ FunctionModificationList
+ globalFunctionModifications(const QStringList &signatures) const;
- bool addSuppressedWarning(const QString &warning, QString *errorMessage);
+ bool addSuppressedWarning(const QString &warning, bool generate, QString *errorMessage);
bool isSuppressedWarning(QStringView s) const;
- static QString globalNamespaceClassName(const TypeEntry *te);
+ static QString globalNamespaceClassName(const TypeEntryCPtr &te);
+ // Top level file parsing
bool parseFile(const QString &filename, bool generate = true);
- bool parseFile(const QString &filename, const QString &currentPath, bool generate);
+ bool parseFile(const std::shared_ptr<TypeDatabaseParserContext> &context,
+ const QString &filename, const QString &currentPath, bool generate);
+ // Top level QIODevice parsing for tests.
bool parseFile(QIODevice *device, bool generate = true);
+ bool parseFile(const std::shared_ptr<TypeDatabaseParserContext> &context,
+ QIODevice *device, bool generate = true);
static bool setApiVersion(const QString &package, const QString &version);
static void clearApiVersions();
static bool checkApiVersion(const QString &package, const VersionRange &vr);
- bool hasDroppedTypeEntries() const { return !m_dropTypeEntries.isEmpty(); }
+ bool hasDroppedTypeEntries() const;
bool shouldDropTypeEntry(const QString &fullTypeName) const;
- void setDropTypeEntries(QStringList dropTypeEntries);
+ void setDropTypeEntries(const QStringList &dropTypeEntries);
QString modifiedTypesystemFilepath(const QString &tsFile, const QString &currentPath = QString()) const;
+ void logUnmatched() const;
+
#ifndef QT_NO_DEBUG_STREAM
void formatDebug(QDebug &d) const;
#endif
+ void formatBuiltinTypes(QDebug debug) const;
+
private:
- void addBuiltInType(TypeEntry *e);
- TypeEntryMultiMapConstIteratorRange findTypeRange(const QString &name) const;
- template <class Predicate>
- TypeEntries findTypesHelper(const QString &name, Predicate pred) const;
- TypeEntry *resolveTypeDefEntry(TypedefEntry *typedefEntry, QString *errorMessage);
- template <class String>
- bool isSuppressedWarningHelper(const String &s) const;
-
- bool m_suppressWarnings = true;
- TypeEntryMultiMap m_entries; // Contains duplicate entries (cf addInlineNamespaceLookups).
- TypeEntryMap m_flagsEntries;
- TypedefEntryMap m_typedefEntries;
- TemplateEntryMap m_templates;
- QList<QRegularExpression> m_suppressedWarnings;
- QList<const TypeSystemTypeEntry *> m_typeSystemEntries; // maintain order, default is first.
-
- AddedFunctionList m_globalUserFunctions;
- FunctionModificationList m_functionMods;
-
- QStringList m_requiredTargetImports;
-
- QStringList m_typesystemPaths;
- QStringList m_typesystemKeywords;
- QHash<QString, bool> m_parsedTypesystemFiles;
-
- QList<TypeRejection> m_rejections;
-
- QStringList m_dropTypeEntries;
- QByteArrayList m_systemIncludes;
+ TypeDatabasePrivate *d;
};
#ifndef QT_NO_DEBUG_STREAM
+QDebug operator<<(QDebug d, const TypeEntryCPtr &te);
QDebug operator<<(QDebug d, const TypeEntry *te);
QDebug operator<<(QDebug d, const TypeDatabase &db);
#endif
diff --git a/sources/shiboken6/ApiExtractor/typedatabase_p.h b/sources/shiboken6/ApiExtractor/typedatabase_p.h
new file mode 100644
index 000000000..fc56c7961
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/typedatabase_p.h
@@ -0,0 +1,25 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef TYPEDATABASE_P_H
+#define TYPEDATABASE_P_H
+
+#include "typesystem_typedefs.h"
+#include "containertypeentry.h"
+
+#include <QtCore/QHash>
+#include <QtCore/QString>
+
+class TypeDatabase;
+
+struct TypeDatabaseParserContext
+{
+ using SmartPointerInstantiations = QHash<SmartPointerTypeEntryPtr, QString>;
+ using OpaqueContainerHash = QHash<QString, OpaqueContainers>;
+
+ TypeDatabase *db;
+ SmartPointerInstantiations smartPointerInstantiations;
+ OpaqueContainerHash opaqueContainerHash;
+};
+
+#endif // TYPEDATABASE_P_H
diff --git a/sources/shiboken6/ApiExtractor/typedatabase_typedefs.h b/sources/shiboken6/ApiExtractor/typedatabase_typedefs.h
index 03ad90463..f00c61570 100644
--- a/sources/shiboken6/ApiExtractor/typedatabase_typedefs.h
+++ b/sources/shiboken6/ApiExtractor/typedatabase_typedefs.h
@@ -1,48 +1,16 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TYPEDATABASE_TYPEDEFS_H
#define TYPEDATABASE_TYPEDEFS_H
+#include "typesystem_typedefs.h"
+
#include <QtCore/QMultiMap>
#include <QtCore/QString>
#include <QtCore/QList>
-class ConstantValueTypeEntry;
-class ContainerTypeEntry;
-class NamespaceTypeEntry;
-class PrimitiveTypeEntry;
-class TemplateEntry;
-class TypeEntry;
-class TypedefEntry;
-
-using TypeEntryList = QList<TypeEntry *>;
-using TemplateEntryMap =QMap<QString, TemplateEntry *>;
+using TemplateEntryMap =QMap<QString, TemplateEntryPtr>;
template <class Key, class Value>
struct QMultiMapConstIteratorRange // A range of iterator for a range-based for loop
@@ -56,14 +24,10 @@ struct QMultiMapConstIteratorRange // A range of iterator for a range-based for
ConstIterator m_end;
};
-using TypeEntryMultiMap = QMultiMap<QString, TypeEntry *>;
-using TypeEntryMultiMapConstIteratorRange = QMultiMapConstIteratorRange<QString, TypeEntry *>;
-
-using TypeEntryMap = QMap<QString, TypeEntry *>;
-using TypedefEntryMap = QMap<QString, TypedefEntry *>;
+using TypeEntryMultiMap = QMultiMap<QString, TypeEntryPtr>;
+using TypeEntryMultiMapConstIteratorRange = QMultiMapConstIteratorRange<QString, TypeEntryPtr>;
-using ContainerTypeEntryList = QList<const ContainerTypeEntry *>;
-using NamespaceTypeEntryList = QList<NamespaceTypeEntry *>;
-using PrimitiveTypeEntryList = QList<const PrimitiveTypeEntry *>;
+using TypeEntryMap = QMap<QString, TypeEntryPtr>;
+using TypedefEntryMap = QMap<QString, TypedefEntryPtr>;
#endif // TYPEDATABASE_TYPEDEFS_H
diff --git a/sources/shiboken6/ApiExtractor/typedefentry.h b/sources/shiboken6/ApiExtractor/typedefentry.h
new file mode 100644
index 000000000..44646972c
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/typedefentry.h
@@ -0,0 +1,37 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef TYPEDEFENTRY_H
+#define TYPEDEFENTRY_H
+
+#include "complextypeentry.h"
+
+class TypedefEntryPrivate;
+
+class TypedefEntry : public ComplexTypeEntry
+{
+public:
+ explicit TypedefEntry(const QString &entryName,
+ const QString &sourceType,
+ const QVersionNumber &vr,
+ const TypeEntryCPtr &parent);
+
+ QString sourceType() const;
+ void setSourceType(const QString &s);
+
+ TypeEntry *clone() const override;
+
+ ComplexTypeEntryCPtr source() const;
+ void setSource(const ComplexTypeEntryCPtr &source);
+
+ ComplexTypeEntryPtr target() const;
+ void setTarget(ComplexTypeEntryPtr target);
+
+#ifndef QT_NO_DEBUG_STREAM
+ void formatDebug(QDebug &d) const override;
+#endif
+protected:
+ explicit TypedefEntry(TypedefEntryPrivate *d);
+};
+
+#endif // TYPEDEFENTRY_H
diff --git a/sources/shiboken6/ApiExtractor/typeparser.cpp b/sources/shiboken6/ApiExtractor/typeparser.cpp
index fba3a8801..11d7bf641 100644
--- a/sources/shiboken6/ApiExtractor/typeparser.cpp
+++ b/sources/shiboken6/ApiExtractor/typeparser.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "typeparser.h"
#include <typeinfo.h>
@@ -33,6 +8,8 @@
#include <QtCore/QStack>
#include <QtCore/QTextStream>
+using namespace Qt::StringLiterals;
+
class Scanner
{
public:
@@ -60,7 +37,7 @@ public:
{
}
- Token nextToken(QString *errorMessage = Q_NULLPTR);
+ Token nextToken(QString *errorMessage = nullptr);
QString identifier() const;
QString msgParseError(const QString &why) const;
@@ -82,7 +59,7 @@ Scanner::Token Scanner::nextToken(QString *errorMessage)
Token tok = NoToken;
// remove whitespace
- while (m_pos < m_length && m_chars[m_pos] == QLatin1Char(' '))
+ while (m_pos < m_length && m_chars[m_pos] == u' ')
++m_pos;
m_tokenStart = m_pos;
@@ -108,7 +85,7 @@ Scanner::Token Scanner::nextToken(QString *errorMessage)
++m_pos;
break;
default:
- if (c.isLetterOrNumber() || c == QLatin1Char('_')) {
+ if (c.isLetterOrNumber() || c == u'_') {
tok = Identifier;
} else {
QString message;
@@ -131,7 +108,7 @@ Scanner::Token Scanner::nextToken(QString *errorMessage)
}
if (tok == Identifier) {
- if (c.isLetterOrNumber() || c == QLatin1Char('_'))
+ if (c.isLetterOrNumber() || c == u'_')
++m_pos;
else
break;
@@ -141,23 +118,23 @@ Scanner::Token Scanner::nextToken(QString *errorMessage)
if (tok == Identifier) {
switch (m_pos - m_tokenStart) {
case 5:
- if (m_chars[m_tokenStart] == QLatin1Char('c')
- && m_chars[m_tokenStart + 1] == QLatin1Char('o')
- && m_chars[m_tokenStart + 2] == QLatin1Char('n')
- && m_chars[m_tokenStart + 3] == QLatin1Char('s')
- && m_chars[m_tokenStart + 4] == QLatin1Char('t')) {
+ if (m_chars[m_tokenStart] == u'c'
+ && m_chars[m_tokenStart + 1] == u'o'
+ && m_chars[m_tokenStart + 2] == u'n'
+ && m_chars[m_tokenStart + 3] == u's'
+ && m_chars[m_tokenStart + 4] == u't') {
tok = ConstToken;
}
break;
case 8:
- if (m_chars[m_tokenStart] == QLatin1Char('v')
- && m_chars[m_tokenStart + 1] == QLatin1Char('o')
- && m_chars[m_tokenStart + 2] == QLatin1Char('l')
- && m_chars[m_tokenStart + 3] == QLatin1Char('a')
- && m_chars[m_tokenStart + 4] == QLatin1Char('t')
- && m_chars[m_tokenStart + 5] == QLatin1Char('i')
- && m_chars[m_tokenStart + 6] == QLatin1Char('l')
- && m_chars[m_tokenStart + 7] == QLatin1Char('e')) {
+ if (m_chars[m_tokenStart] == u'v'
+ && m_chars[m_tokenStart + 1] == u'o'
+ && m_chars[m_tokenStart + 2] == u'l'
+ && m_chars[m_tokenStart + 3] == u'a'
+ && m_chars[m_tokenStart + 4] == u't'
+ && m_chars[m_tokenStart + 5] == u'i'
+ && m_chars[m_tokenStart + 6] == u'l'
+ && m_chars[m_tokenStart + 7] == u'e') {
tok = VolatileToken;
}
break;
@@ -170,8 +147,8 @@ Scanner::Token Scanner::nextToken(QString *errorMessage)
QString Scanner::msgParseError(const QString &why) const
{
- return QStringLiteral("TypeParser: Unable to parse \"")
- + QString(m_chars, m_length) + QStringLiteral("\": ") + why;
+ return "TypeParser: Unable to parse \""_L1
+ + QString(m_chars, m_length) + "\": "_L1 + why;
}
TypeInfo TypeParser::parse(const QString &str, QString *errorMessage)
@@ -189,7 +166,7 @@ TypeInfo TypeParser::parse(const QString &str, QString *errorMessage)
Scanner::Token tok = scanner.nextToken(errorMessage);
while (tok != Scanner::NoToken) {
if (tok == Scanner::InvalidToken)
- return TypeInfo();
+ return {};
// switch (tok) {
// case Scanner::StarToken: printf(" - *\n"); break;
@@ -222,12 +199,12 @@ TypeInfo TypeParser::parse(const QString &str, QString *errorMessage)
stack.top().setReferenceType(RValueReference);
break;
case RValueReference:
- const QString message = scanner.msgParseError(QStringLiteral("Too many '&' qualifiers"));
+ const QString message = scanner.msgParseError("Too many '&' qualifiers"_L1);
if (errorMessage)
*errorMessage = message;
else
qWarning().noquote().nospace() << message;
- return TypeInfo();
+ return {};
}
break;
case Scanner::LessThanToken:
@@ -269,12 +246,12 @@ TypeInfo TypeParser::parse(const QString &str, QString *errorMessage)
case Scanner::OpenParenToken: // function pointers not supported
case Scanner::CloseParenToken: {
- const QString message = scanner.msgParseError(QStringLiteral("Function pointers are not supported"));
+ const QString message = scanner.msgParseError("Function pointers are not supported"_L1);
if (errorMessage)
*errorMessage = message;
else
qWarning().noquote().nospace() << message;
- return TypeInfo();
+ return {};
}
case Scanner::Identifier:
@@ -285,7 +262,7 @@ TypeInfo TypeParser::parse(const QString &str, QString *errorMessage)
colon_prefix = false;
} else {
QStringList qualifiedName = stack.top().qualifiedName();
- qualifiedName.last().append(QLatin1Char(' ') + scanner.identifier());
+ qualifiedName.last().append(u' ' + scanner.identifier());
stack.top().setQualifiedName(qualifiedName);
}
break;
@@ -304,11 +281,11 @@ TypeInfo TypeParser::parse(const QString &str, QString *errorMessage)
break;
}
- tok = scanner.nextToken();
+ tok = scanner.nextToken(errorMessage);
}
if (stack.isEmpty() || stack.constFirst().qualifiedName().isEmpty()) {
- *errorMessage = u"Unable to parse type \""_qs + str + u"\"."_qs;
+ *errorMessage = u"Unable to parse type \""_s + str + u"\"."_s;
return {};
}
return stack.constFirst();
diff --git a/sources/shiboken6/ApiExtractor/typeparser.h b/sources/shiboken6/ApiExtractor/typeparser.h
index 2359da7b2..97634b5db 100644
--- a/sources/shiboken6/ApiExtractor/typeparser.h
+++ b/sources/shiboken6/ApiExtractor/typeparser.h
@@ -1,36 +1,9 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TYPEPARSER_H
#define TYPEPARSER_H
-#include "parser/codemodel_enums.h"
-
#include <QtCore/QString>
class TypeInfo;
diff --git a/sources/shiboken6/ApiExtractor/typesystem.cpp b/sources/shiboken6/ApiExtractor/typesystem.cpp
index 678acefc3..99d42b668 100644
--- a/sources/shiboken6/ApiExtractor/typesystem.cpp
+++ b/sources/shiboken6/ApiExtractor/typesystem.cpp
@@ -1,94 +1,82 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "typesystem.h"
+#include "arraytypeentry.h"
+#include "codesnip.h"
+#include "complextypeentry.h"
+#include "configurabletypeentry.h"
+#include "constantvaluetypeentry.h"
+#include "containertypeentry.h"
+#include "customtypenentry.h"
+#include "debughelpers_p.h"
+#include "enumtypeentry.h"
+#include "enumvaluetypeentry.h"
+#include "flagstypeentry.h"
+#include "functiontypeentry.h"
+#include "include.h"
+#include "namespacetypeentry.h"
+#include "objecttypeentry.h"
+#include "primitivetypeentry.h"
+#include "pythontypeentry.h"
+#include "smartpointertypeentry.h"
+#include "templateargumententry.h"
+#include "typedefentry.h"
+#include "typesystemtypeentry.h"
+#include "valuetypeentry.h"
+#include "varargstypeentry.h"
+#include "voidtypeentry.h"
+#include "abstractmetatype.h"
#include "typedatabase.h"
#include "modifications.h"
-#include "messages.h"
#include "sourcelocation.h"
+#include "qtcompat.h"
+
#include <QtCore/QDebug>
#include <QtCore/QRegularExpression>
#include <QtCore/QSet>
+#include <QtCore/QVarLengthArray>
+
+using namespace Qt::StringLiterals;
-static QString buildName(const QString &entryName, const TypeEntry *parent)
+static QString buildName(const QString &entryName, const TypeEntryCPtr &parent)
{
return parent == nullptr || parent->type() == TypeEntry::TypeSystemType
- ? entryName : parent->name() + QLatin1String("::") + entryName;
+ ? entryName : parent->name() + u"::"_s + entryName;
}
// Access private class as 'd', cf macro Q_D()
#define S_D(Class) auto d = static_cast<Class##Private *>(d_func())
-static const QSet<QString> &primitiveCppTypes()
-{
- static QSet<QString> result;
- if (result.isEmpty()) {
- static const char *cppTypes[] = {
- "bool", "char", "double", "float", "int",
- "long", "long long", "short",
- "wchar_t"
- };
- for (const char *cppType : cppTypes)
- result.insert(QLatin1String(cppType));
- }
- return result;
-}
-
class TypeEntryPrivate
{
public:
+ TypeEntryPrivate(const TypeEntryPrivate &) = default; // Enable copy for cloning.
+ TypeEntryPrivate &operator=(const TypeEntryPrivate &) = delete;
+ TypeEntryPrivate(TypeEntryPrivate &&) = delete;
+ TypeEntryPrivate &operator=(TypeEntryPrivate &&) = delete;
+
explicit TypeEntryPrivate(const QString &entryName, TypeEntry::Type t, const QVersionNumber &vr,
- const TypeEntry *parent);
- virtual ~TypeEntryPrivate();
+ const TypeEntryCPtr &parent);
+ virtual ~TypeEntryPrivate() = default;
QString shortName() const;
- const TypeEntry *m_parent;
+ TypeEntryCPtr m_parent;
QString m_name; // C++ fully qualified
- QString m_targetLangApiName;
mutable QString m_cachedShortName; // C++ excluding inline namespaces
QString m_entryName;
QString m_targetLangPackage;
mutable QString m_cachedTargetLangName; // "Foo.Bar"
mutable QString m_cachedTargetLangEntryName; // "Bar"
- CustomFunction m_customConstructor;
- CustomFunction m_customDestructor;
- CodeSnipList m_codeSnips;
- DocModificationList m_docModifications;
IncludeList m_extraIncludes;
Include m_include;
- QString m_targetConversionRule;
QVersionNumber m_version;
- CustomConversion *m_customConversion = nullptr;
SourceLocation m_sourceLocation; // XML file
TypeEntry::CodeGeneration m_codeGeneration = TypeEntry::GenerateCode;
- TypeEntry *m_viewOn = nullptr;
+ TypeEntryPtr m_viewOn;
+ CustomTypeEntryPtr m_targetLangApiType;
int m_revision = 0;
int m_sbkIndex = 0;
TypeEntry::Type m_type;
@@ -98,7 +86,7 @@ public:
};
TypeEntryPrivate::TypeEntryPrivate(const QString &entryName, TypeEntry::Type t, const QVersionNumber &vr,
- const TypeEntry *parent) :
+ const TypeEntryCPtr &parent) :
m_parent(parent),
m_name(buildName(entryName, parent)),
m_entryName(entryName),
@@ -107,13 +95,8 @@ TypeEntryPrivate::TypeEntryPrivate(const QString &entryName, TypeEntry::Type t,
{
}
-TypeEntryPrivate::~TypeEntryPrivate()
-{
- delete m_customConversion;
-}
-
TypeEntry::TypeEntry(const QString &entryName, TypeEntry::Type t, const QVersionNumber &vr,
- const TypeEntry *parent) :
+ const TypeEntryCPtr &parent) :
TypeEntry(new TypeEntryPrivate(entryName, t, vr, parent))
{
}
@@ -124,31 +107,6 @@ TypeEntry::TypeEntry(TypeEntryPrivate *d) : m_d(d)
TypeEntry::~TypeEntry() = default;
-CodeSnipList TypeEntry::codeSnips() const
-{
- return m_d->m_codeSnips;
-}
-
-void TypeEntry::setCodeSnips(const CodeSnipList &codeSnips)
-{
- m_d->m_codeSnips = codeSnips;
-}
-
-void TypeEntry::addCodeSnip(const CodeSnip &codeSnip)
-{
- m_d->m_codeSnips << codeSnip;
-}
-
-void TypeEntry::setDocModification(const DocModificationList &docMods)
-{
- m_d->m_docModifications << docMods;
-}
-
-DocModificationList TypeEntry::docModifications() const
-{
- return m_d->m_docModifications;
-}
-
const IncludeList &TypeEntry::extraIncludes() const
{
return m_d->m_extraIncludes;
@@ -175,47 +133,31 @@ void TypeEntry::setInclude(const Include &inc)
// This is a workaround for preventing double inclusion of the QSharedPointer implementation
// header, which does not use header guards. In the previous parser this was not a problem
// because the Q_QDOC define was set, and the implementation header was never included.
- if (inc.name().endsWith(QLatin1String("qsharedpointer_impl.h"))) {
+ if (inc.name().endsWith(u"qsharedpointer_impl.h")) {
QString path = inc.name();
- path.remove(QLatin1String("_impl"));
+ path.remove(u"_impl"_s);
m_d->m_include = Include(inc.type(), path);
} else {
m_d->m_include = inc;
}
}
-void TypeEntry::setTargetConversionRule(const QString &conversionRule)
-{
- m_d->m_targetConversionRule = conversionRule;
-}
-
-QString TypeEntry::targetConversionRule() const
-{
- return m_d->m_targetConversionRule;
-}
-
QVersionNumber TypeEntry::version() const
{
return m_d->m_version;
}
-bool TypeEntry::hasTargetConversionRule() const
+bool isCppPrimitive(const TypeEntryCPtr &e)
{
- return !m_d->m_targetConversionRule.isEmpty();
-}
-
-bool TypeEntry::isCppPrimitive() const
-{
- if (!isPrimitive())
+ if (!e->isPrimitive())
return false;
- if (m_d->m_type == VoidType)
+ if (e->type() == TypeEntry::VoidType)
return true;
- const PrimitiveTypeEntry *referencedType =
- static_cast<const PrimitiveTypeEntry *>(this)->basicReferencedTypeEntry();
- const QString &typeName = referencedType ? referencedType->name() : m_d->m_name;
- return typeName.contains(QLatin1Char(' ')) || primitiveCppTypes().contains(typeName);
+ PrimitiveTypeEntryCPtr referencedType = basicReferencedTypeEntry(e);
+ const QString &typeName = referencedType->name();
+ return AbstractMetaType::cppPrimitiveTypes().contains(typeName);
}
TypeEntry::Type TypeEntry::type() const
@@ -223,17 +165,17 @@ TypeEntry::Type TypeEntry::type() const
return m_d->m_type;
}
-const TypeEntry *TypeEntry::parent() const
+TypeEntryCPtr TypeEntry::parent() const
{
return m_d->m_parent;
}
-void TypeEntry::setParent(const TypeEntry *p)
+void TypeEntry::setParent(const TypeEntryCPtr &p)
{
m_d->m_parent = p;
}
-bool TypeEntry::isChildOf(const TypeEntry *p) const
+bool TypeEntry::isChildOf(const TypeEntryCPtr &p) const
{
for (auto e = m_d->m_parent; e; e = e->parent()) {
if (e == p)
@@ -242,18 +184,18 @@ bool TypeEntry::isChildOf(const TypeEntry *p) const
return false;
}
-const TypeSystemTypeEntry *TypeEntry::typeSystemTypeEntry() const
+TypeSystemTypeEntryCPtr typeSystemTypeEntry(TypeEntryCPtr e)
{
- for (auto e = this; e; e = e->parent()) {
+ for (; e; e = e->parent()) {
if (e->type() == TypeEntry::TypeSystemType)
- return static_cast<const TypeSystemTypeEntry *>(e);
+ return std::static_pointer_cast<const TypeSystemTypeEntry>(e);
}
- return nullptr;
+ return {};
}
-const TypeEntry *TypeEntry::targetLangEnclosingEntry() const
+TypeEntryCPtr targetLangEnclosingEntry(const TypeEntryCPtr &e)
{
- auto result = m_d->m_parent;
+ auto result = e->parent();
while (result && result->type() != TypeEntry::TypeSystemType
&& !NamespaceTypeEntry::isVisibleScope(result)) {
result = result->parent();
@@ -296,6 +238,14 @@ bool TypeEntry::isSmartPointer() const
return m_d->m_type == SmartPointerType;
}
+bool TypeEntry::isUniquePointer() const
+{
+ if (m_d->m_type != SmartPointerType)
+ return false;
+ auto *ste = static_cast<const SmartPointerTypeEntry *>(this);
+ return ste->smartPointerType() == TypeSystem::SmartPointerType::Unique;
+}
+
bool TypeEntry::isArray() const
{
return m_d->m_type == ArrayType;
@@ -318,7 +268,7 @@ bool TypeEntry::isVarargs() const
bool TypeEntry::isCustom() const
{
- return m_d->m_type == CustomType;
+ return m_d->m_type == CustomType || m_d->m_type == PythonType;
}
bool TypeEntry::isTypeSystem() const
@@ -376,11 +326,11 @@ QString TypeEntry::name() const
QString TypeEntryPrivate::shortName() const
{
if (m_cachedShortName.isEmpty()) {
- QVarLengthArray<const TypeEntry *> parents;
+ QVarLengthArray<TypeEntryCPtr > parents;
bool foundInlineNamespace = false;
for (auto p = m_parent; p != nullptr && p->type() != TypeEntry::TypeSystemType; p = p->parent()) {
if (p->type() == TypeEntry::NamespaceType
- && static_cast<const NamespaceTypeEntry *>(p)->isInlineNamespace()) {
+ && std::static_pointer_cast<const NamespaceTypeEntry>(p)->isInlineNamespace()) {
foundInlineNamespace = true;
} else {
parents.append(p);
@@ -388,9 +338,9 @@ QString TypeEntryPrivate::shortName() const
}
if (foundInlineNamespace) {
m_cachedShortName.reserve(m_name.size());
- for (int i = parents.size() - 1; i >= 0; --i) {
+ for (auto i = parents.size() - 1; i >= 0; --i) {
m_cachedShortName.append(parents.at(i)->entryName());
- m_cachedShortName.append(QLatin1String("::"));
+ m_cachedShortName.append(u"::"_s);
}
m_cachedShortName.append(m_entryName);
} else {
@@ -425,6 +375,11 @@ bool TypeEntry::generateCode() const
return m_d->m_codeGeneration == GenerateCode;
}
+bool TypeEntry::shouldGenerate() const
+{
+ return generateCode() && NamespaceTypeEntry::isVisibleScope(this);
+}
+
int TypeEntry::revision() const
{
return m_d->m_revision;
@@ -440,15 +395,25 @@ QString TypeEntry::qualifiedCppName() const
return m_d->m_name;
}
-QString TypeEntry::targetLangApiName() const
+CustomTypeEntryCPtr TypeEntry::targetLangApiType() const
{
- return m_d->m_targetLangApiName.isEmpty()
- ? m_d->m_name : m_d->m_targetLangApiName;
+ return m_d->m_targetLangApiType;
}
-void TypeEntry::setTargetLangApiName(const QString &t)
+bool TypeEntry::hasTargetLangApiType() const
{
- m_d->m_targetLangApiName = t;
+ return m_d->m_targetLangApiType != nullptr;
+}
+
+void TypeEntry::setTargetLangApiType(const CustomTypeEntryPtr &cte)
+{
+ m_d->m_targetLangApiType = cte;
+}
+
+QString TypeEntry::targetLangApiName() const
+{
+ return m_d->m_targetLangApiType != nullptr
+ ? m_d->m_targetLangApiType->name() : m_d->m_name;
}
QString TypeEntry::targetLangName() const
@@ -469,9 +434,9 @@ QString TypeEntry::buildTargetLangName() const
for (auto p = parent(); p && p->type() != TypeEntry::TypeSystemType; p = p->parent()) {
if (NamespaceTypeEntry::isVisibleScope(p)) {
if (!result.isEmpty())
- result.prepend(QLatin1Char('.'));
+ result.prepend(u'.');
QString n = p->m_d->m_entryName;
- n.replace(QLatin1String("::"), QLatin1String(".")); // Primitive types may have "std::"
+ n.replace(u"::"_s, u"."_s); // Primitive types may have "std::"
result.prepend(n);
}
}
@@ -500,15 +465,13 @@ void TypeEntry::setSourceLocation(const SourceLocation &sourceLocation)
m_d->m_sourceLocation = sourceLocation;
}
-bool TypeEntry::isUserPrimitive() const
+bool isUserPrimitive(const TypeEntryCPtr &e)
{
- if (!isPrimitive())
+ if (!e->isPrimitive())
return false;
- const auto *trueType = static_cast<const PrimitiveTypeEntry *>(this);
- if (trueType->basicReferencedTypeEntry())
- trueType = trueType->basicReferencedTypeEntry();
- return trueType->isPrimitive() && !trueType->isCppPrimitive()
- && trueType->qualifiedCppName() != u"std::string";
+ const auto type = basicReferencedTypeEntry(e);
+ return !isCppPrimitive(type)
+ && type->qualifiedCppName() != u"std::string";
}
bool TypeEntry::isWrapperType() const
@@ -516,29 +479,23 @@ bool TypeEntry::isWrapperType() const
return isObject() || isValue() || isSmartPointer();
}
-bool TypeEntry::isCppIntegralPrimitive() const
+bool isCppIntegralPrimitive(const TypeEntryCPtr &e)
{
- if (!isCppPrimitive())
+ if (!isCppPrimitive(e))
return false;
- const auto *trueType = static_cast<const PrimitiveTypeEntry *>(this);
- if (trueType->basicReferencedTypeEntry())
- trueType = trueType->basicReferencedTypeEntry();
- QString typeName = trueType->qualifiedCppName();
- return !typeName.contains(u"double")
- && !typeName.contains(u"float")
- && !typeName.contains(u"wchar");
+ const auto type = basicReferencedTypeEntry(e);
+ return AbstractMetaType::cppIntegralTypes().contains(type->qualifiedCppName());
}
-bool TypeEntry::isExtendedCppPrimitive() const
+bool isExtendedCppPrimitive(const TypeEntryCPtr &e)
{
- if (isCppPrimitive())
+ if (isCppPrimitive(e))
return true;
- if (!isPrimitive())
+ if (!e->isPrimitive())
return false;
- const auto *trueType = static_cast<const PrimitiveTypeEntry *>(this);
- if (trueType->basicReferencedTypeEntry())
- trueType = trueType->basicReferencedTypeEntry();
- return trueType->qualifiedCppName() == u"std::string";
+ const auto type = basicReferencedTypeEntry(e);
+ const QString &name = type->qualifiedCppName();
+ return name == u"std::string" || name == u"std::wstring";
}
const TypeEntryPrivate *TypeEntry::d_func() const
@@ -555,7 +512,7 @@ QString TypeEntry::targetLangEntryName() const
{
if (m_d->m_cachedTargetLangEntryName.isEmpty()) {
m_d->m_cachedTargetLangEntryName = targetLangName();
- const int lastDot = m_d->m_cachedTargetLangEntryName.lastIndexOf(QLatin1Char('.'));
+ const int lastDot = m_d->m_cachedTargetLangEntryName.lastIndexOf(u'.');
if (lastDot != -1)
m_d->m_cachedTargetLangEntryName.remove(0, lastDot + 1);
}
@@ -574,27 +531,7 @@ void TypeEntry::setTargetLangPackage(const QString &p)
QString TypeEntry::qualifiedTargetLangName() const
{
- return targetLangPackage() + QLatin1Char('.') + targetLangName();
-}
-
-void TypeEntry::setCustomConstructor(const CustomFunction &func)
-{
- m_d->m_customConstructor = func;
-}
-
-CustomFunction TypeEntry::customConstructor() const
-{
- return m_d->m_customConstructor;
-}
-
-void TypeEntry::setCustomDestructor(const CustomFunction &func)
-{
- m_d->m_customDestructor = func;
-}
-
-CustomFunction TypeEntry::customDestructor() const
-{
- return m_d->m_customDestructor;
+ return targetLangPackage() + u'.' + targetLangName();
}
bool TypeEntry::isValue() const
@@ -607,27 +544,12 @@ bool TypeEntry::isComplex() const
return false;
}
-bool TypeEntry::hasCustomConversion() const
-{
- return m_d->m_customConversion != nullptr;
-}
-
-void TypeEntry::setCustomConversion(CustomConversion* customConversion)
-{
- m_d->m_customConversion = customConversion;
-}
-
-CustomConversion* TypeEntry::customConversion() const
-{
- return m_d->m_customConversion;
-}
-
-TypeEntry *TypeEntry::viewOn() const
+TypeEntryPtr TypeEntry::viewOn() const
{
return m_d->m_viewOn;
}
-void TypeEntry::setViewOn(TypeEntry *v)
+void TypeEntry::setViewOn(const TypeEntryPtr &v)
{
m_d->m_viewOn = v;
}
@@ -638,13 +560,15 @@ TypeEntry *TypeEntry::clone() const
}
// Take over parameters relevant for typedefs
-void TypeEntry::useAsTypedef(const TypeEntry *source)
+void TypeEntry::useAsTypedef(const TypeEntryCPtr &source)
{
// XML Typedefs are in the global namespace for now.
- m_d->m_parent = source->typeSystemTypeEntry();
+ m_d->m_parent = typeSystemTypeEntry(source);
m_d->m_entryName = source->m_d->m_entryName;
m_d->m_name = source->m_d->m_name;
m_d->m_targetLangPackage = source->m_d->m_targetLangPackage;
+ m_d->m_cachedTargetLangName.clear(); // Clear cached names.
+ m_d->m_cachedTargetLangEntryName.clear();
m_d->m_codeGeneration = source->m_d->m_codeGeneration;
m_d->m_version = source->m_d->m_version;
}
@@ -659,7 +583,7 @@ public:
};
CustomTypeEntry::CustomTypeEntry(const QString &entryName, const QVersionNumber &vr,
- const TypeEntry *parent) :
+ const TypeEntryCPtr &parent) :
TypeEntry(new CustomTypeEntryPrivate(entryName, CustomType, vr, parent))
{
}
@@ -693,17 +617,62 @@ void CustomTypeEntry::setCheckFunction(const QString &f)
d->m_checkFunction = f;
}
+// ----------------- PythonTypeEntry
+class PythonTypeEntryPrivate : public CustomTypeEntryPrivate
+{
+public:
+ using CustomTypeEntryPrivate::CustomTypeEntryPrivate;
+ explicit PythonTypeEntryPrivate(const QString &entryName,
+ const QString &checkFunction,
+ TypeSystem::CPythonType type) :
+ CustomTypeEntryPrivate(entryName, TypeEntry::PythonType, {}, {}),
+ m_cPythonType(type)
+ {
+ m_checkFunction = checkFunction;
+ }
+
+ TypeSystem::CPythonType m_cPythonType;
+};
+
+PythonTypeEntry::PythonTypeEntry(const QString &entryName,
+ const QString &checkFunction,
+ TypeSystem::CPythonType type) :
+ CustomTypeEntry(new PythonTypeEntryPrivate(entryName, checkFunction, type))
+{
+}
+
+TypeEntry *PythonTypeEntry::clone() const
+{
+ S_D(const PythonTypeEntry);
+ return new PythonTypeEntry(new PythonTypeEntryPrivate(*d));
+}
+
+TypeSystem::CPythonType PythonTypeEntry::cPythonType() const
+{
+ S_D(const PythonTypeEntry);
+ return d->m_cPythonType;
+}
+
+PythonTypeEntry::PythonTypeEntry(TypeEntryPrivate *d) :
+ CustomTypeEntry(d)
+{
+}
+
// ----------------- TypeSystemTypeEntry
class TypeSystemTypeEntryPrivate : public TypeEntryPrivate
{
public:
using TypeEntryPrivate::TypeEntryPrivate;
+ CodeSnipList m_codeSnips;
TypeSystem::SnakeCase m_snakeCase = TypeSystem::SnakeCase::Disabled;
+ QString m_subModuleOf;
+ QString m_namespaceBegin;
+ QString m_namespaceEnd;
};
TypeSystemTypeEntry::TypeSystemTypeEntry(const QString &entryName, const QVersionNumber &vr,
- const TypeEntry *parent) :
+ const TypeEntryCPtr &parent) :
TypeEntry(new TypeSystemTypeEntryPrivate(entryName, TypeSystemType, vr, parent))
{
}
@@ -719,6 +688,60 @@ TypeEntry *TypeSystemTypeEntry::clone() const
return new TypeSystemTypeEntry(new TypeSystemTypeEntryPrivate(*d));
}
+const CodeSnipList &TypeSystemTypeEntry::codeSnips() const
+{
+ S_D(const TypeSystemTypeEntry);
+ return d->m_codeSnips;
+}
+
+CodeSnipList &TypeSystemTypeEntry::codeSnips()
+{
+ S_D(TypeSystemTypeEntry);
+ return d->m_codeSnips;
+}
+
+void TypeSystemTypeEntry::addCodeSnip(const CodeSnip &codeSnip)
+{
+ S_D(TypeSystemTypeEntry);
+ d->m_codeSnips.append(codeSnip);
+}
+
+QString TypeSystemTypeEntry::subModuleOf() const
+{
+ S_D(const TypeSystemTypeEntry);
+ return d->m_subModuleOf;
+}
+
+void TypeSystemTypeEntry::setSubModule(const QString &s)
+{
+ S_D(TypeSystemTypeEntry);
+ d->m_subModuleOf = s;
+}
+
+const QString &TypeSystemTypeEntry::namespaceBegin() const
+{
+ S_D(const TypeSystemTypeEntry);
+ return d->m_namespaceBegin;
+}
+
+void TypeSystemTypeEntry::setNamespaceBegin(const QString &p)
+{
+ S_D(TypeSystemTypeEntry);
+ d->m_namespaceBegin = p;
+}
+
+const QString &TypeSystemTypeEntry::namespaceEnd() const
+{
+ S_D(const TypeSystemTypeEntry);
+ return d->m_namespaceEnd;
+}
+
+void TypeSystemTypeEntry::setNamespaceEnd(const QString &n)
+{
+ S_D(TypeSystemTypeEntry);
+ d->m_namespaceEnd = n;
+}
+
TypeSystem::SnakeCase TypeSystemTypeEntry::snakeCase() const
{
S_D(const TypeSystemTypeEntry);
@@ -733,7 +756,7 @@ void TypeSystemTypeEntry::setSnakeCase(TypeSystem::SnakeCase sc)
// ----------------- VoidTypeEntry
VoidTypeEntry::VoidTypeEntry() :
- TypeEntry(QLatin1String("void"), VoidType, QVersionNumber(0, 0), nullptr)
+ TypeEntry(u"void"_s, VoidType, QVersionNumber(0, 0), nullptr)
{
}
@@ -748,7 +771,7 @@ TypeEntry *VoidTypeEntry::clone() const
}
VarargsTypeEntry::VarargsTypeEntry() :
- TypeEntry(QLatin1String("..."), VarargsType, QVersionNumber(0, 0), nullptr)
+ TypeEntry(u"..."_s, VarargsType, QVersionNumber(0, 0), nullptr)
{
}
@@ -773,7 +796,7 @@ public:
};
TemplateArgumentEntry::TemplateArgumentEntry(const QString &entryName, const QVersionNumber &vr,
- const TypeEntry *parent) :
+ const TypeEntryCPtr &parent) :
TypeEntry(new TemplateArgumentEntryPrivate(entryName, TemplateArgumentType, vr, parent))
{
}
@@ -805,30 +828,30 @@ TemplateArgumentEntry::TemplateArgumentEntry(TemplateArgumentEntryPrivate *d) :
class ArrayTypeEntryPrivate : public TypeEntryPrivate
{
public:
- explicit ArrayTypeEntryPrivate(const TypeEntry *nested_type, const QVersionNumber &vr,
- const TypeEntry *parent) :
- TypeEntryPrivate(QLatin1String("Array"), TypeEntry::ArrayType, vr, parent),
+ explicit ArrayTypeEntryPrivate(const TypeEntryCPtr &nested_type, const QVersionNumber &vr,
+ const TypeEntryCPtr &parent) :
+ TypeEntryPrivate(u"Array"_s, TypeEntry::ArrayType, vr, parent),
m_nestedType(nested_type)
{
}
- const TypeEntry *m_nestedType;
+ TypeEntryCPtr m_nestedType;
};
-ArrayTypeEntry::ArrayTypeEntry(const TypeEntry *nested_type, const QVersionNumber &vr,
- const TypeEntry *parent) :
+ArrayTypeEntry::ArrayTypeEntry(const TypeEntryCPtr &nested_type, const QVersionNumber &vr,
+ const TypeEntryCPtr &parent) :
TypeEntry(new ArrayTypeEntryPrivate(nested_type, vr, parent))
{
Q_ASSERT(nested_type);
}
-void ArrayTypeEntry::setNestedTypeEntry(TypeEntry *nested)
+void ArrayTypeEntry::setNestedTypeEntry(const TypeEntryPtr &nested)
{
S_D(ArrayTypeEntry);
d->m_nestedType = nested;
}
-const TypeEntry *ArrayTypeEntry::nestedTypeEntry() const
+TypeEntryCPtr ArrayTypeEntry::nestedTypeEntry() const
{
S_D(const ArrayTypeEntry);
return d->m_nestedType;
@@ -837,7 +860,7 @@ const TypeEntry *ArrayTypeEntry::nestedTypeEntry() const
QString ArrayTypeEntry::buildTargetLangName() const
{
S_D(const ArrayTypeEntry);
- return d->m_nestedType->targetLangName() + QLatin1String("[]");
+ return d->m_nestedType->targetLangName() + u"[]"_s;
}
TypeEntry *ArrayTypeEntry::clone() const
@@ -856,19 +879,20 @@ class PrimitiveTypeEntryPrivate : public TypeEntryPrivate
{
public:
PrimitiveTypeEntryPrivate(const QString &entryName, const QVersionNumber &vr,
- const TypeEntry *parent) :
+ const TypeEntryCPtr &parent) :
TypeEntryPrivate(entryName, TypeEntry::PrimitiveType, vr, parent),
m_preferredTargetLangType(true)
{
}
QString m_defaultConstructor;
+ CustomConversionPtr m_customConversion;
+ PrimitiveTypeEntryPtr m_referencedTypeEntry;
uint m_preferredTargetLangType : 1;
- PrimitiveTypeEntry* m_referencedTypeEntry = nullptr;
};
PrimitiveTypeEntry::PrimitiveTypeEntry(const QString &entryName, const QVersionNumber &vr,
- const TypeEntry *parent) :
+ const TypeEntryCPtr &parent) :
TypeEntry(new PrimitiveTypeEntryPrivate(entryName, vr, parent))
{
}
@@ -891,26 +915,46 @@ bool PrimitiveTypeEntry::hasDefaultConstructor() const
return !d->m_defaultConstructor.isEmpty();
}
-PrimitiveTypeEntry *PrimitiveTypeEntry::referencedTypeEntry() const
+PrimitiveTypeEntryPtr PrimitiveTypeEntry::referencedTypeEntry() const
{
S_D(const PrimitiveTypeEntry);
return d->m_referencedTypeEntry;
}
-void PrimitiveTypeEntry::setReferencedTypeEntry(PrimitiveTypeEntry *referencedTypeEntry)
+void PrimitiveTypeEntry::setReferencedTypeEntry(PrimitiveTypeEntryPtr referencedTypeEntry)
{
S_D(PrimitiveTypeEntry);
d->m_referencedTypeEntry = referencedTypeEntry;
}
-PrimitiveTypeEntry *PrimitiveTypeEntry::basicReferencedTypeEntry() const
+PrimitiveTypeEntryCPtr basicReferencedTypeEntry(const PrimitiveTypeEntryCPtr &e)
{
- S_D(const PrimitiveTypeEntry);
- if (!d->m_referencedTypeEntry)
- return nullptr;
+ auto result = e;
+ while (auto referenced = result->referencedTypeEntry())
+ result = referenced;
+ return result;
+}
+
+PrimitiveTypeEntryCPtr basicReferencedTypeEntry(const TypeEntryCPtr &e)
+{
+ Q_ASSERT(e->isPrimitive());
+ return basicReferencedTypeEntry(std::static_pointer_cast<const PrimitiveTypeEntry>(e));
+}
+
+PrimitiveTypeEntryCPtr basicReferencedNonBuiltinTypeEntry(const PrimitiveTypeEntryCPtr &e)
+{
+ auto result = e;
+ for (; result->referencedTypeEntry() ; result = result->referencedTypeEntry()) {
+ if (!result->isBuiltIn())
+ break;
+ }
+ return result;
+}
- PrimitiveTypeEntry *baseReferencedTypeEntry = d->m_referencedTypeEntry->basicReferencedTypeEntry();
- return baseReferencedTypeEntry ? baseReferencedTypeEntry : d->m_referencedTypeEntry;
+bool PrimitiveTypeEntry::referencesType() const
+{
+ S_D(const PrimitiveTypeEntry);
+ return d->m_referencedTypeEntry != nullptr;
}
bool PrimitiveTypeEntry::preferredTargetLangType() const
@@ -925,6 +969,24 @@ void PrimitiveTypeEntry::setPreferredTargetLangType(bool b)
d->m_preferredTargetLangType = b;
}
+bool PrimitiveTypeEntry::hasCustomConversion() const
+{
+ S_D(const PrimitiveTypeEntry);
+ return bool(d->m_customConversion);
+}
+
+void PrimitiveTypeEntry::setCustomConversion(const CustomConversionPtr &customConversion)
+{
+ S_D(PrimitiveTypeEntry);
+ d->m_customConversion = customConversion;
+}
+
+CustomConversionPtr PrimitiveTypeEntry::customConversion() const
+{
+ S_D(const PrimitiveTypeEntry);
+ return d->m_customConversion;
+}
+
TypeEntry *PrimitiveTypeEntry::clone() const
{
S_D(const PrimitiveTypeEntry);
@@ -936,22 +998,85 @@ PrimitiveTypeEntry::PrimitiveTypeEntry(PrimitiveTypeEntryPrivate *d)
{
}
-// ----------------- EnumTypeEntry
-class EnumTypeEntryPrivate : public TypeEntryPrivate
+// ----------------- ConfigurableTypeEntry
+
+class ConfigurableTypeEntryPrivate : public TypeEntryPrivate
{
public:
using TypeEntryPrivate::TypeEntryPrivate;
- const EnumValueTypeEntry *m_nullValue = nullptr;
+ QString m_configCondition;
+};
+
+ConfigurableTypeEntry::ConfigurableTypeEntry(const QString &entryName, Type t,
+ const QVersionNumber &vr,
+ const TypeEntryCPtr &parent) :
+ TypeEntry(new ConfigurableTypeEntryPrivate(entryName, t, vr, parent))
+{
+}
+
+ConfigurableTypeEntry::ConfigurableTypeEntry(ConfigurableTypeEntryPrivate *d) :
+ TypeEntry(d)
+{
+}
+
+TypeEntry *ConfigurableTypeEntry::clone() const
+{
+ S_D(const ConfigurableTypeEntry);
+ return new ConfigurableTypeEntry(new ConfigurableTypeEntryPrivate(*d));
+}
+
+QString ConfigurableTypeEntry::configCondition() const
+{
+ S_D(const ConfigurableTypeEntry);
+ return d->m_configCondition;
+}
+
+void ConfigurableTypeEntry::setConfigCondition(const QString &c)
+{
+ S_D(ConfigurableTypeEntry);
+ d->m_configCondition = c;
+ if (!d->m_configCondition.startsWith(u'#'))
+ d->m_configCondition.prepend(u"#if ");
+}
+
+bool ConfigurableTypeEntry::hasConfigCondition() const
+{
+ S_D(const ConfigurableTypeEntry);
+ return !d->m_configCondition.isEmpty();
+}
+
+// ----------------- EnumTypeEntry
+class EnumTypeEntryPrivate : public ConfigurableTypeEntryPrivate
+{
+public:
+ using ConfigurableTypeEntryPrivate::ConfigurableTypeEntryPrivate;
+
+ EnumValueTypeEntryCPtr m_nullValue;
QStringList m_rejectedEnums;
- FlagsTypeEntry *m_flags = nullptr;
+ FlagsTypeEntryPtr m_flags;
+ QString m_cppType;
+ QString m_docFile;
+ TypeSystem::PythonEnumType m_pythonEnumType = TypeSystem::PythonEnumType::Unspecified;
};
EnumTypeEntry::EnumTypeEntry(const QString &entryName,
const QVersionNumber &vr,
- const TypeEntry *parent) :
- TypeEntry(new EnumTypeEntryPrivate(entryName, EnumType, vr, parent))
+ const TypeEntryCPtr &parent) :
+ ConfigurableTypeEntry(new EnumTypeEntryPrivate(entryName, EnumType, vr, parent))
+{
+}
+
+TypeSystem::PythonEnumType EnumTypeEntry::pythonEnumType() const
{
+ S_D(const EnumTypeEntry);
+ return d->m_pythonEnumType;
+}
+
+void EnumTypeEntry::setPythonEnumType(TypeSystem::PythonEnumType t)
+{
+ S_D(EnumTypeEntry);
+ d->m_pythonEnumType = t;
}
QString EnumTypeEntry::targetLangQualifier() const
@@ -971,30 +1096,42 @@ QString EnumTypeEntry::qualifier() const
parentEntry->name() : QString();
}
-const EnumValueTypeEntry *EnumTypeEntry::nullValue() const
+EnumValueTypeEntryCPtr EnumTypeEntry::nullValue() const
{
S_D(const EnumTypeEntry);
return d->m_nullValue;
}
-void EnumTypeEntry::setNullValue(const EnumValueTypeEntry *n)
+void EnumTypeEntry::setNullValue(const EnumValueTypeEntryCPtr &n)
{
S_D(EnumTypeEntry);
d->m_nullValue = n;
}
-void EnumTypeEntry::setFlags(FlagsTypeEntry *flags)
+void EnumTypeEntry::setFlags(const FlagsTypeEntryPtr &flags)
{
S_D(EnumTypeEntry);
d->m_flags = flags;
}
-FlagsTypeEntry *EnumTypeEntry::flags() const
+FlagsTypeEntryPtr EnumTypeEntry::flags() const
{
S_D(const EnumTypeEntry);
return d->m_flags;
}
+QString EnumTypeEntry::cppType() const
+{
+ S_D(const EnumTypeEntry);
+ return d->m_cppType;
+}
+
+void EnumTypeEntry::setCppType(const QString &t)
+{
+ S_D(EnumTypeEntry);
+ d->m_cppType = t;
+}
+
bool EnumTypeEntry::isEnumValueRejected(const QString &name) const
{
S_D(const EnumTypeEntry);
@@ -1013,6 +1150,18 @@ QStringList EnumTypeEntry::enumValueRejections() const
return d->m_rejectedEnums;
}
+QString EnumTypeEntry::docFile() const
+{
+ S_D(const EnumTypeEntry);
+ return d->m_docFile;
+}
+
+void EnumTypeEntry::setDocFile(const QString &df)
+{
+ S_D(EnumTypeEntry);
+ d->m_docFile = df;
+}
+
TypeEntry *EnumTypeEntry::clone() const
{
S_D(const EnumTypeEntry);
@@ -1020,7 +1169,7 @@ TypeEntry *EnumTypeEntry::clone() const
}
EnumTypeEntry::EnumTypeEntry(EnumTypeEntryPrivate *d) :
- TypeEntry(d)
+ ConfigurableTypeEntry(d)
{
}
@@ -1029,7 +1178,7 @@ class EnumValueTypeEntryPrivate : public TypeEntryPrivate
{
public:
EnumValueTypeEntryPrivate(const QString &name, const QString &value,
- const EnumTypeEntry *enclosingEnum,
+ const EnumTypeEntryCPtr &enclosingEnum,
bool isScopedEnum,
const QVersionNumber &vr) :
TypeEntryPrivate(name, TypeEntry::EnumValue, vr,
@@ -1040,11 +1189,11 @@ public:
}
QString m_value;
- const EnumTypeEntry *m_enclosingEnum;
+ EnumTypeEntryCPtr m_enclosingEnum;
};
EnumValueTypeEntry::EnumValueTypeEntry(const QString &name, const QString &value,
- const EnumTypeEntry *enclosingEnum,
+ const EnumTypeEntryCPtr &enclosingEnum,
bool isScopedEnum,
const QVersionNumber &vr) :
TypeEntry(new EnumValueTypeEntryPrivate(name, value, enclosingEnum, isScopedEnum, vr))
@@ -1057,7 +1206,7 @@ QString EnumValueTypeEntry::value() const
return d->m_value;
}
-const EnumTypeEntry *EnumValueTypeEntry::enclosingEnum() const
+EnumTypeEntryCPtr EnumValueTypeEntry::enclosingEnum() const
{
S_D(const EnumValueTypeEntry);
return d->m_enclosingEnum;
@@ -1082,11 +1231,11 @@ public:
QString m_originalName;
QString m_flagsName;
- EnumTypeEntry *m_enum = nullptr;
+ EnumTypeEntryPtr m_enum;
};
FlagsTypeEntry::FlagsTypeEntry(const QString &entryName, const QVersionNumber &vr,
- const TypeEntry *parent) :
+ const TypeEntryCPtr &parent) :
TypeEntry(new FlagsTypeEntryPrivate(entryName, FlagsType, vr, parent))
{
}
@@ -1095,7 +1244,7 @@ QString FlagsTypeEntry::buildTargetLangName() const
{
S_D(const FlagsTypeEntry);
QString on = d->m_originalName;
- on.replace(QLatin1String("::"), QLatin1String("."));
+ on.replace(u"::"_s, u"."_s);
return on;
}
@@ -1128,13 +1277,13 @@ void FlagsTypeEntry::setFlagsName(const QString &name)
d->m_flagsName = name;
}
-EnumTypeEntry *FlagsTypeEntry::originator() const
+EnumTypeEntryPtr FlagsTypeEntry::originator() const
{
S_D(const FlagsTypeEntry);
return d->m_enum;
}
-void FlagsTypeEntry::setOriginator(EnumTypeEntry *e)
+void FlagsTypeEntry::setOriginator(const EnumTypeEntryPtr &e)
{
S_D(FlagsTypeEntry);
d->m_enum = e;
@@ -1148,7 +1297,7 @@ TypeEntry *FlagsTypeEntry::clone() const
// ----------------- ConstantValueTypeEntry
ConstantValueTypeEntry::ConstantValueTypeEntry(const QString& name,
- const TypeEntry *parent) :
+ const TypeEntryCPtr &parent) :
TypeEntry(name, ConstantValueType, QVersionNumber(0, 0), parent)
{
}
@@ -1159,13 +1308,13 @@ ConstantValueTypeEntry::ConstantValueTypeEntry(TypeEntryPrivate *d) :
}
// ----------------- ComplexTypeEntry
-class ComplexTypeEntryPrivate : public TypeEntryPrivate
+class ComplexTypeEntryPrivate : public ConfigurableTypeEntryPrivate
{
public:
ComplexTypeEntryPrivate(const QString &entryName, TypeEntry::Type t,
const QVersionNumber &vr,
- const TypeEntry *parent) :
- TypeEntryPrivate(entryName, t, vr, parent),
+ const TypeEntryCPtr &parent) :
+ ConfigurableTypeEntryPrivate(entryName, t, vr, parent),
m_qualifiedCppName(buildName(entryName, parent)),
m_polymorphicBase(false),
m_genericClass(false),
@@ -1175,8 +1324,14 @@ public:
AddedFunctionList m_addedFunctions;
FunctionModificationList m_functionMods;
+ CodeSnipList m_codeSnips;
+ DocModificationList m_docModifications;
+ DocModificationList m_functionDocModifications;
+ IncludeList m_argumentIncludes;
+ QSet<QString> m_generateFunctions;
FieldModificationList m_fieldMods;
QList<TypeSystemProperty> m_properties;
+ QList<TypeSystemPyMethodDefEntry> m_PyMethodDefEntrys;
QString m_defaultConstructor;
QString m_defaultSuperclass;
QString m_qualifiedCppName;
@@ -1186,26 +1341,29 @@ public:
uint m_deleteInMainThread : 1;
QString m_polymorphicIdValue;
+ QString m_polymorphicNameFunction;
QString m_targetType;
ComplexTypeEntry::TypeFlags m_typeFlags;
ComplexTypeEntry::CopyableFlag m_copyableFlag = ComplexTypeEntry::Unknown;
QString m_hashFunction;
- const ComplexTypeEntry* m_baseContainerType = nullptr;
+ ComplexTypeEntryCPtr m_baseContainerType;
// For class functions
TypeSystem::ExceptionHandling m_exceptionHandling = TypeSystem::ExceptionHandling::Unspecified;
TypeSystem::AllowThread m_allowThread = TypeSystem::AllowThread::Unspecified;
TypeSystem::SnakeCase m_snakeCase = TypeSystem::SnakeCase::Unspecified;
TypeSystem::BoolCast m_operatorBoolMode = TypeSystem::BoolCast::Unspecified;
TypeSystem::BoolCast m_isNullMode = TypeSystem::BoolCast::Unspecified;
+ TypeSystem::QtMetaTypeRegistration m_qtMetaTypeRegistration =
+ TypeSystem::QtMetaTypeRegistration::Unspecified;
// Determined by AbstractMetaBuilder from the code model.
bool m_isValueTypeWithCopyConstructorOnly = false;
};
ComplexTypeEntry::ComplexTypeEntry(const QString &entryName, TypeEntry::Type t,
const QVersionNumber &vr,
- const TypeEntry *parent) :
- TypeEntry(new ComplexTypeEntryPrivate(entryName, t, vr, parent))
+ const TypeEntryCPtr &parent) :
+ ConfigurableTypeEntry(new ComplexTypeEntryPrivate(entryName, t, vr, parent))
{
}
@@ -1268,18 +1426,77 @@ void ComplexTypeEntry::addFunctionModification(const FunctionModification &funct
d->m_functionMods << functionModification;
}
-FunctionModificationList ComplexTypeEntry::functionModifications(const QString &signature) const
+FunctionModificationList
+ ComplexTypeEntry::functionModifications(const QStringList &signatures) const
{
S_D(const ComplexTypeEntry);
FunctionModificationList lst;
- for (int i = 0; i < d->m_functionMods.count(); ++i) {
- const FunctionModification &mod = d->m_functionMods.at(i);
- if (mod.matches(signature))
+ for (const auto &mod : std::as_const(d->m_functionMods)) {
+ if (mod.matches(signatures))
lst << mod;
}
return lst;
}
+const CodeSnipList &ComplexTypeEntry::codeSnips() const
+{
+ S_D(const ComplexTypeEntry);
+ return d->m_codeSnips;
+}
+
+CodeSnipList &ComplexTypeEntry::codeSnips()
+{
+ S_D(ComplexTypeEntry);
+ return d->m_codeSnips;
+}
+
+void ComplexTypeEntry::setCodeSnips(const CodeSnipList &codeSnips)
+{
+ S_D(ComplexTypeEntry);
+ d->m_codeSnips = codeSnips;
+}
+
+void ComplexTypeEntry::addCodeSnip(const CodeSnip &codeSnip)
+{
+ S_D(ComplexTypeEntry);
+ d->m_codeSnips << codeSnip;
+}
+
+void ComplexTypeEntry::setDocModification(const DocModificationList &docMods)
+{
+ S_D(ComplexTypeEntry);
+ for (const auto &m : docMods) {
+ if (m.signature().isEmpty())
+ d->m_docModifications << m;
+ else
+ d->m_functionDocModifications << m;
+ }
+}
+
+DocModificationList ComplexTypeEntry::docModifications() const
+{
+ S_D(const ComplexTypeEntry);
+ return d->m_docModifications;
+}
+
+DocModificationList ComplexTypeEntry::functionDocModifications() const
+{
+ S_D(const ComplexTypeEntry);
+ return d->m_functionDocModifications;
+}
+
+const IncludeList &ComplexTypeEntry::argumentIncludes() const
+{
+ S_D(const ComplexTypeEntry);
+ return d->m_argumentIncludes;
+}
+
+void ComplexTypeEntry::addArgumentInclude(const Include &newInclude)
+{
+ S_D(ComplexTypeEntry);
+ IncludeGroup::appendInclude(newInclude, &d->m_argumentIncludes);
+}
+
AddedFunctionList ComplexTypeEntry::addedFunctions() const
{
S_D(const ComplexTypeEntry);
@@ -1298,6 +1515,30 @@ void ComplexTypeEntry::addNewFunction(const AddedFunctionPtr &addedFunction)
d->m_addedFunctions << addedFunction;
}
+const QList<TypeSystemPyMethodDefEntry> &ComplexTypeEntry::addedPyMethodDefEntrys() const
+{
+ S_D(const ComplexTypeEntry);
+ return d->m_PyMethodDefEntrys;
+}
+
+void ComplexTypeEntry::addPyMethodDef(const TypeSystemPyMethodDefEntry &p)
+{
+ S_D(ComplexTypeEntry);
+ d->m_PyMethodDefEntrys.append(p);
+}
+
+const QSet<QString> &ComplexTypeEntry::generateFunctions() const
+{
+ S_D(const ComplexTypeEntry);
+ return d->m_generateFunctions;
+}
+
+void ComplexTypeEntry::setGenerateFunctions(const QSet<QString> &f)
+{
+ S_D(ComplexTypeEntry);
+ d->m_generateFunctions = f;
+}
+
void ComplexTypeEntry::setFieldModifications(const FieldModificationList &mods)
{
S_D(ComplexTypeEntry);
@@ -1364,6 +1605,18 @@ QString ComplexTypeEntry::polymorphicIdValue() const
return d->m_polymorphicIdValue;
}
+QString ComplexTypeEntry::polymorphicNameFunction() const
+{
+ S_D(const ComplexTypeEntry);
+ return d->m_polymorphicNameFunction;
+}
+
+void ComplexTypeEntry::setPolymorphicNameFunction(const QString &n)
+{
+ S_D(ComplexTypeEntry);
+ d->m_polymorphicNameFunction = n;
+}
+
QString ComplexTypeEntry::targetType() const
{
S_D(const ComplexTypeEntry);
@@ -1412,6 +1665,18 @@ void ComplexTypeEntry::setCopyable(ComplexTypeEntry::CopyableFlag flag)
d->m_copyableFlag = flag;
}
+TypeSystem::QtMetaTypeRegistration ComplexTypeEntry::qtMetaTypeRegistration() const
+{
+ S_D(const ComplexTypeEntry);
+ return d->m_qtMetaTypeRegistration;
+}
+
+void ComplexTypeEntry::setQtMetaTypeRegistration(TypeSystem::QtMetaTypeRegistration r)
+{
+ S_D(ComplexTypeEntry);
+ d->m_qtMetaTypeRegistration = r;
+}
+
QString ComplexTypeEntry::hashFunction() const
{
S_D(const ComplexTypeEntry);
@@ -1424,13 +1689,13 @@ void ComplexTypeEntry::setHashFunction(const QString &hashFunction)
d->m_hashFunction = hashFunction;
}
-void ComplexTypeEntry::setBaseContainerType(const ComplexTypeEntry *baseContainer)
+void ComplexTypeEntry::setBaseContainerType(const ComplexTypeEntryCPtr &baseContainer)
{
S_D(ComplexTypeEntry);
d->m_baseContainerType = baseContainer;
}
-const ComplexTypeEntry *ComplexTypeEntry::baseContainerType() const
+ComplexTypeEntryCPtr ComplexTypeEntry::baseContainerType() const
{
S_D(const ComplexTypeEntry);
return d->m_baseContainerType;
@@ -1502,6 +1767,19 @@ void ComplexTypeEntry::setValueTypeWithCopyConstructorOnly(bool v)
d->m_isValueTypeWithCopyConstructorOnly = v;
}
+// FIXME PYSIDE 7: Remove this and make "true" the default
+static bool parentManagementEnabled = false;
+
+bool ComplexTypeEntry::isParentManagementEnabled()
+{
+ return parentManagementEnabled;
+}
+
+void ComplexTypeEntry::setParentManagementEnabled(bool e)
+{
+ parentManagementEnabled = e;
+}
+
TypeEntry *ComplexTypeEntry::clone() const
{
S_D(const ComplexTypeEntry);
@@ -1509,16 +1787,17 @@ TypeEntry *ComplexTypeEntry::clone() const
}
// Take over parameters relevant for typedefs
-void ComplexTypeEntry::useAsTypedef(const ComplexTypeEntry *source)
+void ComplexTypeEntry::useAsTypedef(const ComplexTypeEntryCPtr &source)
{
S_D(ComplexTypeEntry);
TypeEntry::useAsTypedef(source);
d->m_qualifiedCppName = source->qualifiedCppName();
d->m_targetType = source->targetType();
+ d->m_typeFlags.setFlag(ComplexTypeEntry::Typedef);
}
ComplexTypeEntry::ComplexTypeEntry(ComplexTypeEntryPrivate *d) :
- TypeEntry(d)
+ ConfigurableTypeEntry(d)
{
}
@@ -1537,7 +1816,7 @@ public:
TypedefEntryPrivate(const QString &entryName,
const QString &sourceType,
const QVersionNumber &vr,
- const TypeEntry *parent) :
+ const TypeEntryCPtr &parent) :
ComplexTypeEntryPrivate(entryName, TypeEntry::TypedefType,
vr, parent),
m_sourceType(sourceType)
@@ -1545,12 +1824,12 @@ public:
}
QString m_sourceType;
- ComplexTypeEntry *m_source = nullptr;
- ComplexTypeEntry *m_target = nullptr;
+ ComplexTypeEntryCPtr m_source;
+ ComplexTypeEntryPtr m_target;
};
TypedefEntry::TypedefEntry(const QString &entryName, const QString &sourceType,
- const QVersionNumber &vr, const TypeEntry *parent) :
+ const QVersionNumber &vr, const TypeEntryCPtr &parent) :
ComplexTypeEntry(new TypedefEntryPrivate(entryName, sourceType, vr, parent))
{
}
@@ -1573,25 +1852,25 @@ TypeEntry *TypedefEntry::clone() const
return new TypedefEntry(new TypedefEntryPrivate(*d));
}
-ComplexTypeEntry *TypedefEntry::source() const
+ComplexTypeEntryCPtr TypedefEntry::source() const
{
S_D(const TypedefEntry);
return d->m_source;
}
-void TypedefEntry::setSource(ComplexTypeEntry *source)
+void TypedefEntry::setSource(const ComplexTypeEntryCPtr &source)
{
S_D(TypedefEntry);
d->m_source = source;
}
-ComplexTypeEntry *TypedefEntry::target() const
+ComplexTypeEntryPtr TypedefEntry::target() const
{
S_D(const TypedefEntry);
return d->m_target;
}
-void TypedefEntry::setTarget(ComplexTypeEntry *target)
+void TypedefEntry::setTarget(ComplexTypeEntryPtr target)
{
S_D(TypedefEntry);
d->m_target = target;
@@ -1609,18 +1888,41 @@ public:
ContainerTypeEntryPrivate(const QString &entryName,
ContainerTypeEntry::ContainerKind containerKind,
const QVersionNumber &vr,
- const TypeEntry *parent) :
+ const TypeEntryCPtr &parent) :
ComplexTypeEntryPrivate(entryName, TypeEntry::ContainerType, vr, parent),
m_containerKind(containerKind)
{
}
+ OpaqueContainers::const_iterator findOpaqueContainer(const QStringList &instantiations) const
+ {
+ return std::find_if(m_opaqueContainers.cbegin(), m_opaqueContainers.cend(),
+ [&instantiations](const OpaqueContainer &r) {
+ return r.instantiations == instantiations;
+ });
+ }
+
+ OpaqueContainers m_opaqueContainers;
+ CustomConversionPtr m_customConversion;
ContainerTypeEntry::ContainerKind m_containerKind;
};
+QString OpaqueContainer::templateParameters() const
+{
+ QString result;
+ result += u'<';
+ for (qsizetype i = 0, size = instantiations.size(); i < size; ++i) {
+ if (i)
+ result += u',';
+ result += instantiations.at(i);
+ }
+ result += u'>';
+ return result;
+}
+
ContainerTypeEntry::ContainerTypeEntry(const QString &entryName, ContainerKind containerKind,
const QVersionNumber &vr,
- const TypeEntry *parent) :
+ const TypeEntryCPtr &parent) :
ComplexTypeEntry(new ContainerTypeEntryPrivate(entryName, containerKind, vr, parent))
{
setCodeGeneration(GenerateForSubclass);
@@ -1632,6 +1934,67 @@ ContainerTypeEntry::ContainerKind ContainerTypeEntry::containerKind() const
return d->m_containerKind;
}
+qsizetype ContainerTypeEntry::templateParameterCount() const
+{
+ S_D(const ContainerTypeEntry);
+ qsizetype result = 1;
+ switch (d->m_containerKind) {
+ case MapContainer:
+ case MultiMapContainer:
+ case PairContainer:
+ case SpanContainer:
+ result = 2;
+ break;
+ case ListContainer:
+ case SetContainer:
+ break;
+ }
+ return result;
+}
+
+const OpaqueContainers &ContainerTypeEntry::opaqueContainers() const
+{
+ S_D(const ContainerTypeEntry);
+ return d->m_opaqueContainers;
+}
+
+void ContainerTypeEntry::appendOpaqueContainers(const OpaqueContainers &l)
+{
+ S_D(ContainerTypeEntry);
+ d->m_opaqueContainers.append(l);
+}
+
+bool ContainerTypeEntry::generateOpaqueContainer(const QStringList &instantiations) const
+{
+ S_D(const ContainerTypeEntry);
+ return d->findOpaqueContainer(instantiations) != d->m_opaqueContainers.cend();
+}
+
+QString ContainerTypeEntry::opaqueContainerName(const QStringList &instantiations) const
+{
+ S_D(const ContainerTypeEntry);
+ const auto it = d->findOpaqueContainer(instantiations);
+ return it != d->m_opaqueContainers.cend() ? it->name : QString{};
+}
+
+bool ContainerTypeEntry::hasCustomConversion() const
+{
+ S_D(const ContainerTypeEntry);
+ return bool(d->m_customConversion);
+}
+
+void ContainerTypeEntry::setCustomConversion(const CustomConversionPtr &customConversion)
+{
+ S_D(ContainerTypeEntry);
+ d->m_customConversion = customConversion;
+}
+
+CustomConversionPtr ContainerTypeEntry::customConversion() const
+{
+ S_D(const ContainerTypeEntry);
+ return d->m_customConversion;
+}
+
TypeEntry *ContainerTypeEntry::clone() const
{
S_D(const ContainerTypeEntry);
@@ -1649,32 +2012,53 @@ class SmartPointerTypeEntryPrivate : public ComplexTypeEntryPrivate
public:
SmartPointerTypeEntryPrivate(const QString &entryName,
const QString &getterName,
- const QString &smartPointerType,
+ TypeSystem::SmartPointerType type,
const QString &refCountMethodName,
- const QVersionNumber &vr, const TypeEntry *parent) :
+ const QVersionNumber &vr, const TypeEntryCPtr &parent) :
ComplexTypeEntryPrivate(entryName, TypeEntry::SmartPointerType, vr, parent),
m_getterName(getterName),
- m_smartPointerType(smartPointerType),
- m_refCountMethodName(refCountMethodName)
+ m_refCountMethodName(refCountMethodName),
+ m_smartPointerType(type)
{
}
+ qsizetype instantiationIndex(const TypeEntryCPtr &t) const;
+
QString m_getterName;
- QString m_smartPointerType;
QString m_refCountMethodName;
+ QString m_valueCheckMethod;
+ QString m_nullCheckMethod;
+ QString m_resetMethod;
SmartPointerTypeEntry::Instantiations m_instantiations;
+ TypeSystem::SmartPointerType m_smartPointerType;
};
+qsizetype SmartPointerTypeEntryPrivate::instantiationIndex(const TypeEntryCPtr &t) const
+{
+ for (qsizetype i = 0, size = m_instantiations.size(); i < size; ++i) {
+ if (m_instantiations.at(i).typeEntry == t)
+ return i;
+ }
+ return -1;
+}
+
SmartPointerTypeEntry::SmartPointerTypeEntry(const QString &entryName,
const QString &getterName,
- const QString &smartPointerType,
+ TypeSystem::SmartPointerType smartPointerType,
const QString &refCountMethodName,
- const QVersionNumber &vr, const TypeEntry *parent) :
+ const QVersionNumber &vr,
+ const TypeEntryCPtr &parent) :
ComplexTypeEntry(new SmartPointerTypeEntryPrivate(entryName, getterName, smartPointerType,
refCountMethodName, vr, parent))
{
}
+TypeSystem::SmartPointerType SmartPointerTypeEntry::smartPointerType() const
+{
+ S_D(const SmartPointerTypeEntry);
+ return d->m_smartPointerType;
+}
+
QString SmartPointerTypeEntry::getter() const
{
S_D(const SmartPointerTypeEntry);
@@ -1687,13 +2071,49 @@ QString SmartPointerTypeEntry::refCountMethodName() const
return d->m_refCountMethodName;
}
+QString SmartPointerTypeEntry::valueCheckMethod() const
+{
+ S_D(const SmartPointerTypeEntry);
+ return d->m_valueCheckMethod;
+}
+
+void SmartPointerTypeEntry::setValueCheckMethod(const QString &m)
+{
+ S_D(SmartPointerTypeEntry);
+ d->m_valueCheckMethod = m;
+}
+
+QString SmartPointerTypeEntry::nullCheckMethod() const
+{
+ S_D(const SmartPointerTypeEntry);
+ return d->m_nullCheckMethod;
+}
+
+void SmartPointerTypeEntry::setNullCheckMethod(const QString &f)
+{
+ S_D(SmartPointerTypeEntry);
+ d->m_nullCheckMethod = f;
+}
+
+QString SmartPointerTypeEntry::resetMethod() const
+{
+ S_D(const SmartPointerTypeEntry);
+ return d->m_resetMethod;
+}
+
+void SmartPointerTypeEntry::setResetMethod(const QString &f)
+{
+ S_D(SmartPointerTypeEntry);
+ d->m_resetMethod = f;
+}
+
TypeEntry *SmartPointerTypeEntry::clone() const
{
S_D(const SmartPointerTypeEntry);
return new SmartPointerTypeEntry(new SmartPointerTypeEntryPrivate(*d));
}
-SmartPointerTypeEntry::Instantiations SmartPointerTypeEntry::instantiations() const
+const SmartPointerTypeEntry::Instantiations &SmartPointerTypeEntry::instantiations() const
{
S_D(const SmartPointerTypeEntry);
return d->m_instantiations;
@@ -1710,10 +2130,38 @@ SmartPointerTypeEntry::SmartPointerTypeEntry(SmartPointerTypeEntryPrivate *d) :
{
}
-bool SmartPointerTypeEntry::matchesInstantiation(const TypeEntry *e) const
+bool SmartPointerTypeEntry::matchesInstantiation(const TypeEntryCPtr &e) const
{
S_D(const SmartPointerTypeEntry);
- return d->m_instantiations.isEmpty() || d->m_instantiations.contains(e);
+ // No instantiations specified, or match
+ return d->m_instantiations.isEmpty() || d->instantiationIndex(e) != -1;
+}
+
+static QString fixSmartPointerName(QString name)
+{
+ name.replace(u"::"_s, u"_"_s);
+ name.replace(u'<', u'_');
+ name.remove(u'>');
+ name.remove(u' ');
+ return name;
+}
+
+QString SmartPointerTypeEntry::getTargetName(const AbstractMetaType &metaType) const
+{
+ S_D(const SmartPointerTypeEntry);
+ auto instantiatedTe = metaType.instantiations().constFirst().typeEntry();
+ const auto index = d->instantiationIndex(instantiatedTe);
+ if (index != -1 && !d->m_instantiations.at(index).name.isEmpty())
+ return d->m_instantiations.at(index).name;
+
+ QString name = metaType.cppSignature();
+ const auto templatePos = name.indexOf(u'<');
+ if (templatePos != -1) { // "std::shared_ptr<A::B>" -> "shared_ptr<A::B>"
+ const auto colonPos = name.lastIndexOf(u"::"_s, templatePos);
+ if (colonPos != -1)
+ name.remove(0, colonPos + 2);
+ }
+ return fixSmartPointerName(name);
}
// ----------------- NamespaceTypeEntry
@@ -1723,7 +2171,7 @@ public:
using ComplexTypeEntryPrivate::ComplexTypeEntryPrivate;
QRegularExpression m_filePattern;
- const NamespaceTypeEntry *m_extends = nullptr;
+ NamespaceTypeEntryCPtr m_extends;
TypeSystem::Visibility m_visibility = TypeSystem::Visibility::Auto;
bool m_hasPattern = false;
bool m_inlineNamespace = false;
@@ -1731,7 +2179,7 @@ public:
};
NamespaceTypeEntry::NamespaceTypeEntry(const QString &entryName, const QVersionNumber &vr,
- const TypeEntry *parent) :
+ const TypeEntryCPtr &parent) :
ComplexTypeEntry(new NamespaceTypeEntryPrivate(entryName, NamespaceType, vr, parent))
{
}
@@ -1742,13 +2190,13 @@ TypeEntry *NamespaceTypeEntry::clone() const
return new NamespaceTypeEntry(new NamespaceTypeEntryPrivate(*d));
}
-const NamespaceTypeEntry *NamespaceTypeEntry::extends() const
+NamespaceTypeEntryCPtr NamespaceTypeEntry::extends() const
{
S_D(const NamespaceTypeEntry);
return d->m_extends;
}
-void NamespaceTypeEntry::setExtends(const NamespaceTypeEntry *e)
+void NamespaceTypeEntry::setExtends(const NamespaceTypeEntryCPtr &e)
{
S_D(NamespaceTypeEntry);
d->m_extends = e;
@@ -1811,6 +2259,11 @@ void NamespaceTypeEntry::setInlineNamespace(bool i)
d->m_inlineNamespace = i;
}
+bool NamespaceTypeEntry::isVisibleScope(const TypeEntryCPtr &e)
+{
+ return isVisibleScope(e.get());
+}
+
bool NamespaceTypeEntry::isVisibleScope(const TypeEntry *e)
{
return e->type() != TypeEntry::NamespaceType
@@ -1830,167 +2283,78 @@ void NamespaceTypeEntry::setGenerateUsing(bool generateUsing)
}
// ----------------- ValueTypeEntry
-ValueTypeEntry::ValueTypeEntry(const QString &entryName, const QVersionNumber &vr,
- const TypeEntry *parent) :
- ComplexTypeEntry(entryName, BasicValueType, vr, parent)
-{
-}
-
-bool ValueTypeEntry::isValue() const
-{
- return true;
-}
-TypeEntry *ValueTypeEntry::clone() const
+class ValueTypeEntryPrivate : public ComplexTypeEntryPrivate
{
- S_D(const ComplexTypeEntry);
- return new ValueTypeEntry(new ComplexTypeEntryPrivate(*d));
-}
-
-ValueTypeEntry::ValueTypeEntry(ComplexTypeEntryPrivate *d) :
- ComplexTypeEntry(d)
-{
-}
-
-ValueTypeEntry::ValueTypeEntry(const QString &entryName, Type t, const QVersionNumber &vr,
- const TypeEntry *parent) :
- ComplexTypeEntry(entryName, t, vr, parent)
-{
-}
-
-// ----------------- CustomConversion
-struct CustomConversion::CustomConversionPrivate
-{
- CustomConversionPrivate(const TypeEntry* ownerType)
- : ownerType(ownerType), replaceOriginalTargetToNativeConversions(false)
- {
- }
- const TypeEntry* ownerType;
- QString nativeToTargetConversion;
- bool replaceOriginalTargetToNativeConversions;
- TargetToNativeConversions targetToNativeConversions;
-};
+public:
+ using ComplexTypeEntryPrivate::ComplexTypeEntryPrivate;
-struct CustomConversion::TargetToNativeConversion::TargetToNativeConversionPrivate
-{
- TargetToNativeConversionPrivate()
- : sourceType(nullptr)
- {
- }
- const TypeEntry* sourceType;
- QString sourceTypeName;
- QString sourceTypeCheck;
- QString conversion;
+ QString m_targetConversionRule;
+ CustomConversionPtr m_customConversion;
};
-CustomConversion::CustomConversion(TypeEntry* ownerType)
-{
- m_d = new CustomConversionPrivate(ownerType);
- if (ownerType)
- ownerType->setCustomConversion(this);
-}
-
-CustomConversion::~CustomConversion()
-{
- qDeleteAll(m_d->targetToNativeConversions);
- delete m_d;
-}
-
-const TypeEntry* CustomConversion::ownerType() const
-{
- return m_d->ownerType;
-}
-
-QString CustomConversion::nativeToTargetConversion() const
-{
- return m_d->nativeToTargetConversion;
-}
-
-void CustomConversion::setNativeToTargetConversion(const QString& nativeToTargetConversion)
-{
- m_d->nativeToTargetConversion = nativeToTargetConversion;
-}
-
-bool CustomConversion::replaceOriginalTargetToNativeConversions() const
-{
- return m_d->replaceOriginalTargetToNativeConversions;
-}
-
-void CustomConversion::setReplaceOriginalTargetToNativeConversions(bool replaceOriginalTargetToNativeConversions)
-{
- m_d->replaceOriginalTargetToNativeConversions = replaceOriginalTargetToNativeConversions;
-}
-
-bool CustomConversion::hasTargetToNativeConversions() const
-{
- return !(m_d->targetToNativeConversions.isEmpty());
-}
-
-CustomConversion::TargetToNativeConversions& CustomConversion::targetToNativeConversions()
-{
- return m_d->targetToNativeConversions;
-}
-
-const CustomConversion::TargetToNativeConversions& CustomConversion::targetToNativeConversions() const
+ValueTypeEntry::ValueTypeEntry(const QString &entryName, const QVersionNumber &vr,
+ const TypeEntryCPtr &parent) :
+ ComplexTypeEntry(new ValueTypeEntryPrivate(entryName, BasicValueType, vr, parent))
{
- return m_d->targetToNativeConversions;
}
-void CustomConversion::addTargetToNativeConversion(const QString& sourceTypeName,
- const QString& sourceTypeCheck,
- const QString& conversion)
+bool ValueTypeEntry::hasCustomConversion() const
{
- m_d->targetToNativeConversions.append(new TargetToNativeConversion(sourceTypeName, sourceTypeCheck, conversion));
+ S_D(const ValueTypeEntry);
+ return bool(d->m_customConversion);
}
-CustomConversion::TargetToNativeConversion::TargetToNativeConversion(const QString& sourceTypeName,
- const QString& sourceTypeCheck,
- const QString& conversion)
+void ValueTypeEntry::setCustomConversion(const CustomConversionPtr &customConversion)
{
- m_d = new TargetToNativeConversionPrivate;
- m_d->sourceTypeName = sourceTypeName;
- m_d->sourceTypeCheck = sourceTypeCheck;
- m_d->conversion = conversion;
+ S_D(ValueTypeEntry);
+ d->m_customConversion = customConversion;
}
-CustomConversion::TargetToNativeConversion::~TargetToNativeConversion()
+CustomConversionPtr ValueTypeEntry::customConversion() const
{
- delete m_d;
+ S_D(const ValueTypeEntry);
+ return d->m_customConversion;
}
-const TypeEntry* CustomConversion::TargetToNativeConversion::sourceType() const
+void ValueTypeEntry::setTargetConversionRule(const QString &conversionRule)
{
- return m_d->sourceType;
+ S_D(ValueTypeEntry);
+ d->m_targetConversionRule = conversionRule;
}
-void CustomConversion::TargetToNativeConversion::setSourceType(const TypeEntry* sourceType)
+QString ValueTypeEntry::targetConversionRule() const
{
- m_d->sourceType = sourceType;
+ S_D(const ValueTypeEntry);
+ return d->m_targetConversionRule;
}
-bool CustomConversion::TargetToNativeConversion::isCustomType() const
+bool ValueTypeEntry::hasTargetConversionRule() const
{
- return !(m_d->sourceType);
+ S_D(const ValueTypeEntry);
+ return !d->m_targetConversionRule.isEmpty();
}
-QString CustomConversion::TargetToNativeConversion::sourceTypeName() const
+bool ValueTypeEntry::isValue() const
{
- return m_d->sourceTypeName;
+ return true;
}
-QString CustomConversion::TargetToNativeConversion::sourceTypeCheck() const
+TypeEntry *ValueTypeEntry::clone() const
{
- return m_d->sourceTypeCheck;
+ S_D(const ValueTypeEntry);
+ return new ValueTypeEntry(new ValueTypeEntryPrivate(*d));
}
-QString CustomConversion::TargetToNativeConversion::conversion() const
+ValueTypeEntry::ValueTypeEntry(ComplexTypeEntryPrivate *d) :
+ ComplexTypeEntry(d)
{
- return m_d->conversion;
}
-void CustomConversion::TargetToNativeConversion::setConversion(const QString& conversion)
+ValueTypeEntry::ValueTypeEntry(const QString &entryName, Type t, const QVersionNumber &vr,
+ const TypeEntryCPtr &parent) :
+ ComplexTypeEntry(entryName, t, vr, parent)
{
- m_d->conversion = conversion;
}
// ----------------- FunctionTypeEntry
@@ -1999,19 +2363,19 @@ class FunctionTypeEntryPrivate : public TypeEntryPrivate
public:
FunctionTypeEntryPrivate(const QString &entryName, const QString &signature,
const QVersionNumber &vr,
- const TypeEntry *parent) :
+ const TypeEntryCPtr &parent) :
TypeEntryPrivate(entryName, TypeEntry::FunctionType, vr, parent),
m_signatures(signature)
{
}
QStringList m_signatures;
- TypeSystem::SnakeCase m_snakeCase = TypeSystem::SnakeCase::Unspecified;
+ QString m_docFile;
};
FunctionTypeEntry::FunctionTypeEntry(const QString &entryName, const QString &signature,
const QVersionNumber &vr,
- const TypeEntry *parent) :
+ const TypeEntryCPtr &parent) :
TypeEntry(new FunctionTypeEntryPrivate(entryName, signature, vr, parent))
{
}
@@ -2034,16 +2398,16 @@ bool FunctionTypeEntry::hasSignature(const QString &signature) const
return d->m_signatures.contains(signature);
}
-TypeSystem::SnakeCase FunctionTypeEntry::snakeCase() const
+QString FunctionTypeEntry::docFile() const
{
S_D(const FunctionTypeEntry);
- return d->m_snakeCase;
+ return d->m_docFile;
}
-void FunctionTypeEntry::setSnakeCase(TypeSystem::SnakeCase sc)
+void FunctionTypeEntry::setDocFile(const QString &df)
{
S_D(FunctionTypeEntry);
- d->m_snakeCase = sc;
+ d->m_docFile = df;
}
TypeEntry *FunctionTypeEntry::clone() const
@@ -2059,7 +2423,7 @@ FunctionTypeEntry::FunctionTypeEntry(FunctionTypeEntryPrivate *d) :
// ----------------- ObjectTypeEntry
ObjectTypeEntry::ObjectTypeEntry(const QString &entryName, const QVersionNumber &vr,
- const TypeEntry *parent)
+ const TypeEntryCPtr &parent)
: ComplexTypeEntry(entryName, ObjectType, vr, parent)
{
}
@@ -2089,20 +2453,6 @@ ObjectTypeEntry::ObjectTypeEntry(ComplexTypeEntryPrivate *d) :
if (!var.isEmpty()) \
debug << ", " << var.size() << ' ' << name;
-template <class Container, class Separator>
-static void formatList(QDebug &d, const char *name, const Container &c, Separator sep)
-{
- if (const int size = c.size()) {
- d << ", " << name << '[' << size << "]=(";
- for (int i = 0; i < size; ++i) {
- if (i)
- d << sep;
- d << c.at(i);
- }
- d << ')';
- }
-}
-
void TypeEntry::formatDebug(QDebug &debug) const
{
const QString cppName = qualifiedCppName();
@@ -2110,11 +2460,13 @@ void TypeEntry::formatDebug(QDebug &debug) const
if (m_d->m_name != cppName)
debug << "\", cppName=\"" << cppName << '"';
debug << ", type=" << m_d->m_type << ", codeGeneration="
- << m_d->m_codeGeneration << ", target=\"" << targetLangName() << '"';
+ << m_d->m_codeGeneration;
+ const QString &targetName = targetLangName();
+ if (m_d->m_name != targetName)
+ debug << ", target=\"" << targetLangName() << '"';
FORMAT_NONEMPTY_STRING("package", m_d->m_targetLangPackage)
FORMAT_BOOL("stream", m_d->m_stream)
- FORMAT_LIST_SIZE("codeSnips", m_d->m_codeSnips)
- FORMAT_NONEMPTY_STRING("targetConversionRule", m_d->m_targetConversionRule)
+ FORMAT_BOOL("built-in", m_d->m_builtin)
if (m_d->m_viewOn)
debug << ", views=" << m_d->m_viewOn->name();
if (!m_d->m_version.isNull() && m_d->m_version > QVersionNumber(0, 0))
@@ -2130,6 +2482,16 @@ void TypeEntry::formatDebug(QDebug &debug) const
formatList(debug, "extraIncludes", m_d->m_extraIncludes, ", ");
}
+void PrimitiveTypeEntry::formatDebug(QDebug &debug) const
+{
+ TypeEntry::formatDebug(debug);
+ if (auto e = referencedTypeEntry()) {
+ debug << ", references";
+ for (; e ; e = e->referencedTypeEntry())
+ debug << ":\"" << e->qualifiedCppName() <<'"';
+ }
+}
+
void ComplexTypeEntry::formatDebug(QDebug &debug) const
{
S_D(const ComplexTypeEntry);
@@ -2149,16 +2511,31 @@ void ComplexTypeEntry::formatDebug(QDebug &debug) const
FORMAT_NONEMPTY_STRING("hash", d->m_hashFunction)
FORMAT_LIST_SIZE("addedFunctions", d->m_addedFunctions)
formatList(debug, "functionMods", d->m_functionMods, ", ");
+ FORMAT_LIST_SIZE("codeSnips", d->m_codeSnips)
FORMAT_LIST_SIZE("fieldMods", d->m_fieldMods)
}
+void CustomTypeEntry::formatDebug(QDebug &debug) const
+{
+ S_D(const CustomTypeEntry);
+ TypeEntry::formatDebug(debug);
+ debug << ", checkFunction=" << d->m_checkFunction;
+}
+
+void PythonTypeEntry::formatDebug(QDebug &debug) const
+{
+ S_D(const PythonTypeEntry);
+
+ CustomTypeEntry::formatDebug(debug);
+ debug << ", type=" << int(d->m_cPythonType);
+}
+
void FunctionTypeEntry::formatDebug(QDebug &debug) const
{
S_D(const FunctionTypeEntry);
TypeEntry::formatDebug(debug);
- debug << "signatures=" << d->m_signatures
- << ", snakeCase=" << int(d->m_snakeCase);
+ debug << "signatures=" << d->m_signatures;
}
void TypedefEntry::formatDebug(QDebug &debug) const
@@ -2175,6 +2552,8 @@ void EnumTypeEntry::formatDebug(QDebug &debug) const
S_D(const EnumTypeEntry);
TypeEntry::formatDebug(debug);
+ if (d->m_pythonEnumType != TypeSystem::PythonEnumType::Unspecified)
+ debug << ", python-type=" << int(d->m_pythonEnumType);
if (d->m_flags)
debug << ", flags=(" << d->m_flags << ')';
}
@@ -2191,12 +2570,23 @@ void NamespaceTypeEntry::formatDebug(QDebug &debug) const
debug << "[inline]";
}
+QDebug operator<<(QDebug d, const OpaqueContainer &oc)
+{
+ QDebugStateSaver saver(d);
+ d.noquote();
+ d.nospace();
+ d << "OpaqueContainer(\"" << oc.name << "\": " << oc.templateParameters() << ')';
+ return d;
+}
+
void ContainerTypeEntry::formatDebug(QDebug &debug) const
{
S_D(const ContainerTypeEntry);
ComplexTypeEntry::formatDebug(debug);
debug << ", type=" << d->m_containerKind << '"';
+ if (!d->m_opaqueContainers.isEmpty())
+ debug << ", opaque-containers=[" << d->m_opaqueContainers << ']';
}
void SmartPointerTypeEntry::formatDebug(QDebug &debug) const
@@ -2205,9 +2595,13 @@ void SmartPointerTypeEntry::formatDebug(QDebug &debug) const
ComplexTypeEntry::formatDebug(debug);
if (!d->m_instantiations.isEmpty()) {
- debug << ", instantiations[" << d->m_instantiations.size() << "]=(";
- for (auto i : d->m_instantiations)
- debug << i->name() << ',';
+ debug << "type=" << d->m_type << ", instantiations["
+ << d->m_instantiations.size() << "]=(";
+ for (const auto &i : d->m_instantiations) {
+ debug << i.typeEntry->name() << ',';
+ if (!i.name.isEmpty())
+ debug << "=\"" << i.name << '"';
+ }
debug << ')';
}
}
@@ -2226,6 +2620,12 @@ QDebug operator<<(QDebug d, const TypeEntry *te)
return d;
}
+QDebug operator<<(QDebug d, const TypeEntryCPtr &te)
+{
+ d << te.get();
+ return d;
+}
+
QDebug operator<<(QDebug d, const TemplateEntry *te)
{
QDebugStateSaver saver(d);
@@ -2240,4 +2640,10 @@ QDebug operator<<(QDebug d, const TemplateEntry *te)
d << ')';
return d;
}
+
+QDebug operator<<(QDebug d, const TemplateEntryCPtr &te)
+{
+ d << te.get();
+ return d;
+}
#endif // QT_NO_DEBUG_STREAM
diff --git a/sources/shiboken6/ApiExtractor/typesystem.h b/sources/shiboken6/ApiExtractor/typesystem.h
index f6a00cab5..a2e4debc8 100644
--- a/sources/shiboken6/ApiExtractor/typesystem.h
+++ b/sources/shiboken6/ApiExtractor/typesystem.h
@@ -1,84 +1,29 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TYPESYSTEM_H
#define TYPESYSTEM_H
-#include "typesystem_enums.h"
-#include "typesystem_typedefs.h"
#include "include.h"
+#include "typesystem_typedefs.h"
-#include <QtCore/QStringList>
+#include <QtCore/qobjectdefs.h>
+#include <QtCore/QString>
#include <QtCore/QScopedPointer>
-class CustomFunction;
-class CustomConversion;
-class EnumValueTypeEntry;
-class FlagsTypeEntry;
+class AbstractMetaType;
+class CustomTypeEntry;
+class PrimitiveTypeEntry;
class SourceLocation;
class TypeSystemTypeEntry;
class TypeEntryPrivate;
-class TemplateArgumentEntryPrivate;
-class ArrayTypeEntryPrivate;
-class PrimitiveTypeEntryPrivate;
-class EnumTypeEntryPrivate;
-class EnumValueTypeEntryPrivate;
-class FlagsTypeEntryPrivate;
-class ComplexTypeEntryPrivate;
-class TypedefEntryPrivate;
-class ContainerTypeEntryPrivate;
-class SmartPointerTypeEntryPrivate;
-class NamespaceTypeEntryPrivate;
-class FunctionTypeEntryPrivate;
-struct TargetToNativeConversionPrivate;
QT_BEGIN_NAMESPACE
class QDebug;
-class QRegularExpression;
-class QTextStream;
class QVersionNumber;
QT_END_NAMESPACE
-struct TypeSystemProperty
-{
- bool isValid() const { return !name.isEmpty() && !read.isEmpty() && !type.isEmpty(); }
-
- QString type;
- QString name;
- QString read;
- QString write;
- QString reset;
- QString designable;
- // Indicates whether actual code is generated instead of relying on libpyside.
- bool generateGetSetDef = false;
-};
-
class TypeEntry
{
Q_GADGET
@@ -101,6 +46,7 @@ public:
ArrayType,
TypeSystemType,
CustomType,
+ PythonType,
FunctionType,
SmartPointerType,
TypedefType
@@ -116,17 +62,14 @@ public:
Q_ENUM(CodeGeneration)
explicit TypeEntry(const QString &entryName, Type t, const QVersionNumber &vr,
- const TypeEntry *parent);
+ const TypeEntryCPtr &parent);
virtual ~TypeEntry();
Type type() const;
- const TypeEntry *parent() const;
- void setParent(const TypeEntry *p);
- bool isChildOf(const TypeEntry *p) const;
- const TypeSystemTypeEntry *typeSystemTypeEntry() const;
- // cf AbstractMetaClass::targetLangEnclosingClass()
- const TypeEntry *targetLangEnclosingEntry() const;
+ TypeEntryCPtr parent() const;
+ void setParent(const TypeEntryCPtr &);
+ bool isChildOf(const TypeEntryCPtr &p) const;
bool isPrimitive() const;
bool isEnum() const;
@@ -135,6 +78,7 @@ public:
bool isNamespace() const;
bool isContainer() const;
bool isSmartPointer() const;
+ bool isUniquePointer() const;
bool isArray() const;
bool isTemplateArgument() const;
bool isVoid() const;
@@ -170,6 +114,9 @@ public:
// on 'load-typesystem' tag
bool generateCode() const;
+ /// Returns whether the C++ generators should generate this entry
+ bool shouldGenerate() const;
+
int revision() const;
void setRevision(int r); // see typedatabase.cpp
int sbkIndex() const; // see typedatabase.cpp
@@ -183,8 +130,10 @@ public:
/// be a JNI name, for Python it should represent the CPython type name.
/// \return string representing the target language API name
/// Currently used only for PrimitiveTypeEntry (attribute "target").
+ CustomTypeEntryCPtr targetLangApiType() const;
+ bool hasTargetLangApiType() const;
+ void setTargetLangApiType(const CustomTypeEntryPtr &cte);
QString targetLangApiName() const;
- void setTargetLangApiName(const QString &t);
// The type's name in TargetLang
QString targetLangName() const; // "Foo.Bar"
@@ -197,22 +146,9 @@ public:
QString qualifiedTargetLangName() const;
- void setCustomConstructor(const CustomFunction &func);
- CustomFunction customConstructor() const;
-
- void setCustomDestructor(const CustomFunction &func);
- CustomFunction customDestructor() const;
-
virtual bool isValue() const;
virtual bool isComplex() const;
- CodeSnipList codeSnips() const;
- void setCodeSnips(const CodeSnipList &codeSnips);
- void addCodeSnip(const CodeSnip &codeSnip);
-
- void setDocModification(const DocModificationList& docMods);
- DocModificationList docModifications() const;
-
const IncludeList &extraIncludes() const;
void setExtraIncludes(const IncludeList &includes);
void addExtraInclude(const Include &newInclude);
@@ -220,49 +156,25 @@ public:
Include include() const;
void setInclude(const Include &inc);
- // FIXME PYSIDE7: Remove
- /// Set the target type conversion rule
- void setTargetConversionRule(const QString& conversionRule);
-
- /// Returns the target type conversion rule
- QString targetConversionRule() const;
-
QVersionNumber version() const;
- /// TODO-CONVERTER: mark as deprecated
- bool hasTargetConversionRule() const;
-
- bool isCppPrimitive() const;
-
- bool hasCustomConversion() const;
- void setCustomConversion(CustomConversion* customConversion);
- CustomConversion* customConversion() const;
-
// View on: Type to use for function argument conversion, fex
// std::string_view -> std::string for foo(std::string_view).
// cf AbstractMetaType::viewOn()
- TypeEntry *viewOn() const;
- void setViewOn(TypeEntry *v);
+ TypeEntryPtr viewOn() const;
+ void setViewOn(const TypeEntryPtr &v);
virtual TypeEntry *clone() const;
- void useAsTypedef(const TypeEntry *source);
+ void useAsTypedef(const TypeEntryCPtr &source);
SourceLocation sourceLocation() const;
void setSourceLocation(const SourceLocation &sourceLocation);
// Query functions for generators
- /// Returns true if the type is a primitive but not a C++ primitive.
- bool isUserPrimitive() const;
/// Returns true if the type passed has a Python wrapper for it.
/// Although namespace has a Python wrapper, it's not considered a type.
bool isWrapperType() const;
- /// Returns true if the type is a C++ integral primitive,
- /// i.e. bool, char, int, long, and their unsigned counterparts.
- bool isCppIntegralPrimitive() const;
- /// Returns true if the type is an extended C++ primitive, a void*,
- /// a const char*, or a std::string (cf isCppPrimitive()).
- bool isExtendedCppPrimitive() const;
#ifndef QT_NO_DEBUG_STREAM
virtual void formatDebug(QDebug &d) const;
@@ -282,544 +194,22 @@ private:
QScopedPointer<TypeEntryPrivate> m_d;
};
-class CustomTypeEntry : public TypeEntry
-{
-public:
- explicit CustomTypeEntry(const QString &entryName, const QVersionNumber &vr,
- const TypeEntry *parent);
-
- TypeEntry *clone() const override;
-
- bool hasCheckFunction() const;
- QString checkFunction() const;
- void setCheckFunction(const QString &f);
-
-protected:
- explicit CustomTypeEntry(TypeEntryPrivate *d);
-};
-
-class TypeSystemTypeEntry : public TypeEntry
-{
-public:
- explicit TypeSystemTypeEntry(const QString &entryName, const QVersionNumber &vr,
- const TypeEntry *parent);
-
- TypeEntry *clone() const override;
-
- TypeSystem::SnakeCase snakeCase() const;
- void setSnakeCase(TypeSystem::SnakeCase sc);
-
-protected:
- explicit TypeSystemTypeEntry(TypeEntryPrivate *d);
-};
-
-class VoidTypeEntry : public TypeEntry
-{
-public:
- VoidTypeEntry();
-
- TypeEntry *clone() const override;
-
-protected:
- explicit VoidTypeEntry(TypeEntryPrivate *d);
-};
-
-class VarargsTypeEntry : public TypeEntry
-{
-public:
- VarargsTypeEntry();
-
- TypeEntry *clone() const override;
-
-protected:
- explicit VarargsTypeEntry(TypeEntryPrivate *d);
-};
-
-class TemplateArgumentEntry : public TypeEntry
-{
-public:
- explicit TemplateArgumentEntry(const QString &entryName, const QVersionNumber &vr,
- const TypeEntry *parent);
-
- int ordinal() const;
- void setOrdinal(int o);
-
- TypeEntry *clone() const override;
-
-protected:
- explicit TemplateArgumentEntry(TemplateArgumentEntryPrivate *d);
-};
-
-class ArrayTypeEntry : public TypeEntry
-{
-public:
- explicit ArrayTypeEntry(const TypeEntry *nested_type, const QVersionNumber &vr,
- const TypeEntry *parent);
-
- void setNestedTypeEntry(TypeEntry *nested);
- const TypeEntry *nestedTypeEntry() const;
-
- TypeEntry *clone() const override;
-
-protected:
- explicit ArrayTypeEntry(ArrayTypeEntryPrivate *d);
-
- QString buildTargetLangName() const override;
-};
-
-class PrimitiveTypeEntry : public TypeEntry
-{
-public:
- explicit PrimitiveTypeEntry(const QString &entryName, const QVersionNumber &vr,
- const TypeEntry *parent);
-
- QString defaultConstructor() const;
- void setDefaultConstructor(const QString& defaultConstructor);
- bool hasDefaultConstructor() const;
-
- /**
- * The PrimitiveTypeEntry pointed by this type entry if it
- * represents a typedef).
- * /return the type referenced by the typedef, or a null pointer
- * if the current object is not an typedef
- */
- PrimitiveTypeEntry *referencedTypeEntry() const;
-
- /**
- * Defines type referenced by this entry.
- * /param referencedTypeEntry type referenced by this entry
- */
- void setReferencedTypeEntry(PrimitiveTypeEntry* referencedTypeEntry);
-
- /**
- * Finds the most basic primitive type that the typedef represents,
- * i.e. a type that is not an typedef'ed.
- * /return the most basic non-typedef'ed primitive type represented
- * by this typedef
- */
- PrimitiveTypeEntry* basicReferencedTypeEntry() const;
-
- bool preferredTargetLangType() const;
- void setPreferredTargetLangType(bool b);
-
- TypeEntry *clone() const override;
-
-protected:
- explicit PrimitiveTypeEntry(PrimitiveTypeEntryPrivate *d);
-};
-
-class EnumTypeEntry : public TypeEntry
-{
-public:
- explicit EnumTypeEntry(const QString &entryName,
- const QVersionNumber &vr,
- const TypeEntry *parent);
-
- QString targetLangQualifier() const;
-
- QString qualifier() const;
-
- const EnumValueTypeEntry *nullValue() const;
- void setNullValue(const EnumValueTypeEntry *n);
-
- void setFlags(FlagsTypeEntry *flags);
- FlagsTypeEntry *flags() const;
-
- bool isEnumValueRejected(const QString &name) const;
- void addEnumValueRejection(const QString &name);
- QStringList enumValueRejections() const;
-
- TypeEntry *clone() const override;
-#ifndef QT_NO_DEBUG_STREAM
- void formatDebug(QDebug &d) const override;
-#endif
-protected:
- explicit EnumTypeEntry(EnumTypeEntryPrivate *d);
-};
-
-// EnumValueTypeEntry is used for resolving integer type templates
-// like array<EnumValue>. Note: Dummy entries for integer values will
-// be created for non-type template parameters, where m_enclosingEnum==nullptr.
-class EnumValueTypeEntry : public TypeEntry
-{
-public:
- explicit EnumValueTypeEntry(const QString& name, const QString& value,
- const EnumTypeEntry* enclosingEnum,
- bool isScopedEnum, const QVersionNumber &vr);
-
- QString value() const;
- const EnumTypeEntry* enclosingEnum() const;
-
- TypeEntry *clone() const override;
-
-protected:
- explicit EnumValueTypeEntry(EnumValueTypeEntryPrivate *d);
-};
-
-class FlagsTypeEntry : public TypeEntry
-{
-public:
- explicit FlagsTypeEntry(const QString &entryName, const QVersionNumber &vr,
- const TypeEntry *parent);
-
- QString originalName() const;
- void setOriginalName(const QString &s);
-
- QString flagsName() const;
- void setFlagsName(const QString &name);
-
- EnumTypeEntry *originator() const;
- void setOriginator(EnumTypeEntry *e);
-
- TypeEntry *clone() const override;
-
-protected:
- explicit FlagsTypeEntry(FlagsTypeEntryPrivate *d);
-
- QString buildTargetLangName() const override;
-};
-
-// For primitive values, typically to provide a dummy type for
-// example the '2' in non-type template 'Array<2>'.
-class ConstantValueTypeEntry : public TypeEntry
-{
-public:
- explicit ConstantValueTypeEntry(const QString& name,
- const TypeEntry *parent);
-
- TypeEntry *clone() const override;
-
-protected:
- explicit ConstantValueTypeEntry(TypeEntryPrivate *d);
-};
-
-class ComplexTypeEntry : public TypeEntry
-{
-public:
- enum TypeFlag {
- DisableWrapper = 0x1,
- Deprecated = 0x4,
- ForceAbstract = 0x8
- };
- Q_DECLARE_FLAGS(TypeFlags, TypeFlag)
-
- enum CopyableFlag {
- CopyableSet,
- NonCopyableSet,
- Unknown
- };
-
- explicit ComplexTypeEntry(const QString &entryName, Type t, const QVersionNumber &vr,
- const TypeEntry *parent);
-
- bool isComplex() const override;
-
- TypeFlags typeFlags() const;
- void setTypeFlags(TypeFlags flags);
+TypeSystemTypeEntryCPtr typeSystemTypeEntry(TypeEntryCPtr e);
- // Override command line options to generate nb_bool from
- // operator bool or method isNull().
- TypeSystem::BoolCast operatorBoolMode() const;
- void setOperatorBoolMode(TypeSystem::BoolCast b);
- TypeSystem::BoolCast isNullMode() const;
- void setIsNullMode(TypeSystem::BoolCast b);
+// cf AbstractMetaClass::targetLangEnclosingClass()
+TypeEntryCPtr targetLangEnclosingEntry(const TypeEntryCPtr &e);
- FunctionModificationList functionModifications() const;
- void setFunctionModifications(const FunctionModificationList &functionModifications);
- void addFunctionModification(const FunctionModification &functionModification);
- FunctionModificationList functionModifications(const QString &signature) const;
+bool isCppPrimitive(const TypeEntryCPtr &e);
- AddedFunctionList addedFunctions() const;
- void setAddedFunctions(const AddedFunctionList &addedFunctions);
- void addNewFunction(const AddedFunctionPtr &addedFunction);
+/// Returns true if the type is a primitive but not a C++ primitive.
+bool isUserPrimitive(const TypeEntryCPtr &e);
- void setFieldModifications(const FieldModificationList &mods);
- FieldModificationList fieldModifications() const;
+/// Returns true if the type is a C++ integral primitive,
+/// i.e. bool, char, int, long, and their unsigned counterparts.
+bool isCppIntegralPrimitive(const TypeEntryCPtr &e);
- const QList<TypeSystemProperty> &properties() const;
- void addProperty(const TypeSystemProperty &p);
-
- QString defaultSuperclass() const;
- void setDefaultSuperclass(const QString &sc);
-
- QString qualifiedCppName() const override;
-
- void setIsPolymorphicBase(bool on);
- bool isPolymorphicBase() const;
-
- void setPolymorphicIdValue(const QString &value);
- QString polymorphicIdValue() const;
-
- QString targetType() const;
- void setTargetType(const QString &code);
-
- bool isGenericClass() const;
- void setGenericClass(bool isGeneric);
-
- bool deleteInMainThread() const;
- void setDeleteInMainThread(bool d);
-
- CopyableFlag copyable() const;
- void setCopyable(CopyableFlag flag);
-
- QString hashFunction() const;
- void setHashFunction(const QString &hashFunction);
-
- void setBaseContainerType(const ComplexTypeEntry *baseContainer);
-
- const ComplexTypeEntry *baseContainerType() const;
-
- TypeSystem::ExceptionHandling exceptionHandling() const;
- void setExceptionHandling(TypeSystem::ExceptionHandling e);
-
- TypeSystem::AllowThread allowThread() const;
- void setAllowThread(TypeSystem::AllowThread allowThread);
-
- QString defaultConstructor() const;
- void setDefaultConstructor(const QString& defaultConstructor);
- bool hasDefaultConstructor() const;
-
- TypeEntry *clone() const override;
-
- void useAsTypedef(const ComplexTypeEntry *source);
-
- TypeSystem::SnakeCase snakeCase() const;
- void setSnakeCase(TypeSystem::SnakeCase sc);
-
- // Determined by AbstractMetaBuilder from the code model.
- bool isValueTypeWithCopyConstructorOnly() const;
- void setValueTypeWithCopyConstructorOnly(bool v);
-
-#ifndef QT_NO_DEBUG_STREAM
- void formatDebug(QDebug &debug) const override;
-#endif
-protected:
- explicit ComplexTypeEntry(ComplexTypeEntryPrivate *d);
-};
-
-Q_DECLARE_OPERATORS_FOR_FLAGS(ComplexTypeEntry::TypeFlags)
-
-class TypedefEntry : public ComplexTypeEntry
-{
-public:
- explicit TypedefEntry(const QString &entryName,
- const QString &sourceType,
- const QVersionNumber &vr,
- const TypeEntry *parent);
-
- QString sourceType() const;
- void setSourceType(const QString &s);
-
- TypeEntry *clone() const override;
-
- ComplexTypeEntry *source() const;
- void setSource(ComplexTypeEntry *source);
-
- ComplexTypeEntry *target() const;
- void setTarget(ComplexTypeEntry *target);
-
-#ifndef QT_NO_DEBUG_STREAM
- void formatDebug(QDebug &d) const override;
-#endif
-protected:
- explicit TypedefEntry(TypedefEntryPrivate *d);
-};
-
-class ContainerTypeEntry : public ComplexTypeEntry
-{
- Q_GADGET
-public:
- enum ContainerKind {
- ListContainer,
- SetContainer,
- MapContainer,
- MultiMapContainer,
- PairContainer,
- };
- Q_ENUM(ContainerKind)
-
- explicit ContainerTypeEntry(const QString &entryName, ContainerKind containerKind,
- const QVersionNumber &vr, const TypeEntry *parent);
-
- ContainerKind containerKind() const;
-
- TypeEntry *clone() const override;
-
-#ifndef QT_NO_DEBUG_STREAM
- void formatDebug(QDebug &d) const override;
-#endif
-protected:
- explicit ContainerTypeEntry(ContainerTypeEntryPrivate *d);
-};
-
-class SmartPointerTypeEntry : public ComplexTypeEntry
-{
-public:
- using Instantiations = QList<const TypeEntry *>;
-
- explicit SmartPointerTypeEntry(const QString &entryName,
- const QString &getterName,
- const QString &smartPointerType,
- const QString &refCountMethodName,
- const QVersionNumber &vr,
- const TypeEntry *parent);
-
- QString getter() const;
-
- QString refCountMethodName() const;
-
- TypeEntry *clone() const override;
-
- Instantiations instantiations() const;
- void setInstantiations(const Instantiations &i);
- bool matchesInstantiation(const TypeEntry *e) const;
-
-#ifndef QT_NO_DEBUG_STREAM
- void formatDebug(QDebug &d) const override;
-#endif
-protected:
- SmartPointerTypeEntry(SmartPointerTypeEntryPrivate *d);
-};
-
-class NamespaceTypeEntry : public ComplexTypeEntry
-{
-public:
- explicit NamespaceTypeEntry(const QString &entryName, const QVersionNumber &vr,
- const TypeEntry *parent);
-
- TypeEntry *clone() const override;
-
- const NamespaceTypeEntry *extends() const;
- void setExtends(const NamespaceTypeEntry *e);
-
- const QRegularExpression &filePattern() const; // restrict files
- void setFilePattern(const QRegularExpression &r);
-
- bool hasPattern() const;
-
- bool matchesFile(const QString &needle) const;
-
- bool isVisible() const;
- void setVisibility(TypeSystem::Visibility v);
-
- // C++ 11 inline namespace, from code model
- bool isInlineNamespace() const;
- void setInlineNamespace(bool i);
-
- static bool isVisibleScope(const TypeEntry *e);
-
-#ifndef QT_NO_DEBUG_STREAM
- void formatDebug(QDebug &d) const override;
-#endif
-
- // Whether to generate "using namespace" into wrapper
- bool generateUsing() const;
- void setGenerateUsing(bool generateUsing);
-
-protected:
- explicit NamespaceTypeEntry(NamespaceTypeEntryPrivate *d);
-};
-
-class ValueTypeEntry : public ComplexTypeEntry
-{
-public:
- explicit ValueTypeEntry(const QString &entryName, const QVersionNumber &vr,
- const TypeEntry *parent);
-
- bool isValue() const override;
-
- TypeEntry *clone() const override;
-
-protected:
- explicit ValueTypeEntry(const QString &entryName, Type t, const QVersionNumber &vr,
- const TypeEntry *parent);
- explicit ValueTypeEntry(ComplexTypeEntryPrivate *d);
-};
-
-class FunctionTypeEntry : public TypeEntry
-{
-public:
- explicit FunctionTypeEntry(const QString& name, const QString& signature,
- const QVersionNumber &vr,
- const TypeEntry *parent);
-
- const QStringList &signatures() const;
- bool hasSignature(const QString& signature) const;
- void addSignature(const QString& signature);
-
- TypeSystem::SnakeCase snakeCase() const;
- void setSnakeCase(TypeSystem::SnakeCase sc);
-
- TypeEntry *clone() const override;
-
-#ifndef QT_NO_DEBUG_STREAM
- void formatDebug(QDebug &d) const override;
-#endif
-
-protected:
- explicit FunctionTypeEntry(FunctionTypeEntryPrivate *d);
-};
-
-class ObjectTypeEntry : public ComplexTypeEntry
-{
-public:
- explicit ObjectTypeEntry(const QString &entryName, const QVersionNumber &vr,
- const TypeEntry *parent);
-
- TypeEntry *clone() const override;
-
-protected:
- explicit ObjectTypeEntry(ComplexTypeEntryPrivate *d);
-};
-
-class CustomConversion
-{
-public:
- CustomConversion(TypeEntry* ownerType);
- ~CustomConversion();
-
- const TypeEntry* ownerType() const;
- QString nativeToTargetConversion() const;
- void setNativeToTargetConversion(const QString& nativeToTargetConversion);
-
- class TargetToNativeConversion
- {
- public:
- TargetToNativeConversion(const QString& sourceTypeName,
- const QString& sourceTypeCheck,
- const QString& conversion = QString());
- ~TargetToNativeConversion();
-
- const TypeEntry* sourceType() const;
- void setSourceType(const TypeEntry* sourceType);
- bool isCustomType() const;
- QString sourceTypeName() const;
- QString sourceTypeCheck() const;
- QString conversion() const;
- void setConversion(const QString& conversion);
- private:
- struct TargetToNativeConversionPrivate;
- TargetToNativeConversionPrivate* m_d;
- };
-
- /**
- * Returns true if the target to C++ custom conversions should
- * replace the original existing ones, and false if the custom
- * conversions should be added to the original.
- */
- bool replaceOriginalTargetToNativeConversions() const;
- void setReplaceOriginalTargetToNativeConversions(bool replaceOriginalTargetToNativeConversions);
-
- using TargetToNativeConversions = QList<TargetToNativeConversion *>;
- bool hasTargetToNativeConversions() const;
- TargetToNativeConversions& targetToNativeConversions();
- const TargetToNativeConversions& targetToNativeConversions() const;
- void addTargetToNativeConversion(const QString& sourceTypeName,
- const QString& sourceTypeCheck,
- const QString& conversion = QString());
-private:
- struct CustomConversionPrivate;
- CustomConversionPrivate* m_d;
-};
+/// Returns true if the type is an extended C++ primitive, a void*,
+/// a const char*, or a std::string (cf isCppPrimitive()).
+bool isExtendedCppPrimitive(const TypeEntryCPtr &e);
#endif // TYPESYSTEM_H
diff --git a/sources/shiboken6/ApiExtractor/typesystem_enums.h b/sources/shiboken6/ApiExtractor/typesystem_enums.h
index 1a972ec1f..9ecbb08a1 100644
--- a/sources/shiboken6/ApiExtractor/typesystem_enums.h
+++ b/sources/shiboken6/ApiExtractor/typesystem_enums.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TYPESYSTEM_ENUMS_H
#define TYPESYSTEM_ENUMS_H
@@ -43,10 +18,10 @@ enum Language {
};
enum class AllowThread {
+ Unspecified,
Allow,
Disallow,
- Auto,
- Unspecified
+ Auto
};
enum Ownership {
@@ -60,6 +35,7 @@ enum CodeSnipPosition {
CodeSnipPositionBeginning,
CodeSnipPositionEnd,
CodeSnipPositionDeclaration,
+ CodeSnipPositionPyOverride,
CodeSnipPositionAny
};
@@ -98,6 +74,38 @@ enum class BoolCast { // Generate nb_bool (overriding command line)
Enabled
};
+enum class CPythonType
+{
+ Bool,
+ Float,
+ Integer,
+ String,
+ Other
+};
+
+enum class QtMetaTypeRegistration
+{
+ Unspecified,
+ Enabled,
+ BaseEnabled, // Registration only for the base class of a hierarchy
+ Disabled
+};
+
+enum class SmartPointerType {
+ Shared,
+ Unique,
+ Handle,
+ ValueHandle
+};
+
+enum class PythonEnumType {
+ Unspecified,
+ Enum,
+ IntEnum,
+ Flag,
+ IntFlag
+};
+
enum : int { OverloadNumberUnset = -1, OverloadNumberDefault = 99999 };
} // namespace TypeSystem
diff --git a/sources/shiboken6/ApiExtractor/typesystem_typedefs.h b/sources/shiboken6/ApiExtractor/typesystem_typedefs.h
index e7a72aa46..5a4e12ff2 100644
--- a/sources/shiboken6/ApiExtractor/typesystem_typedefs.h
+++ b/sources/shiboken6/ApiExtractor/typesystem_typedefs.h
@@ -1,53 +1,79 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TYPESYSTEM_TYPEDEFS_H
#define TYPESYSTEM_TYPEDEFS_H
-#include <QtCore/QHash>
-#include <QtCore/QList>
-#include <QtCore/QSharedPointer>
#include <QtCore/QList>
-class CodeSnip;
-class DocModification;
+#include <memory>
-struct AddedFunction;
-class FieldModification;
-class FunctionModification;
+class ArrayTypeEntry;
+class ComplexTypeEntry;
+class ConfigurableTypeEntry;
+class ConstantValueTypeEntry;
+class ContainerTypeEntry;
+class CustomTypeEntry;
+class EnumTypeEntry;
+class EnumValueTypeEntry;
+class FlagsTypeEntry;
+class FunctionTypeEntry;
+class NamespaceTypeEntry;
+class ObjectTypeEntry;
+class PrimitiveTypeEntry;
+class SmartPointerTypeEntry;
+class TemplateEntry;
class TypeEntry;
+class TypedefEntry;
+class TypeSystemTypeEntry;
+class ValueTypeEntry;
+
+using ArrayTypeEntryPtr = std::shared_ptr<ArrayTypeEntry>;
+using ComplexTypeEntryPtr = std::shared_ptr<ComplexTypeEntry>;
+using ConfigurableTypeEntryPtr = std::shared_ptr<ConfigurableTypeEntry>;
+using ConstantValueTypeEntryPtr = std::shared_ptr<ConstantValueTypeEntry>;
+using ContainerTypeEntryPtr = std::shared_ptr<ContainerTypeEntry>;
+using CustomTypeEntryPtr = std::shared_ptr<CustomTypeEntry>;
+using EnumTypeEntryPtr = std::shared_ptr<EnumTypeEntry>;
+using EnumValueTypeEntryPtr = std::shared_ptr<EnumValueTypeEntry>;
+using FlagsTypeEntryPtr = std::shared_ptr<FlagsTypeEntry>;
+using FunctionTypeEntryPtr = std::shared_ptr<FunctionTypeEntry>;
+using NamespaceTypeEntryPtr = std::shared_ptr<NamespaceTypeEntry>;
+using ObjectTypeEntryPtr = std::shared_ptr<ObjectTypeEntry>;
+using PrimitiveTypeEntryPtr = std::shared_ptr<PrimitiveTypeEntry>;
+using SmartPointerTypeEntryPtr = std::shared_ptr<SmartPointerTypeEntry>;
+using TemplateEntryPtr = std::shared_ptr<TemplateEntry>;
+using TypeEntryPtr = std::shared_ptr<TypeEntry>;
+using TypedefEntryPtr = std::shared_ptr<TypedefEntry>;
+using TypeSystemTypeEntryPtr = std::shared_ptr<TypeSystemTypeEntry>;
+using ValueTypeEntryPtr = std::shared_ptr<ValueTypeEntry>;
+
+using ArrayTypeEntryCPtr = std::shared_ptr<const ArrayTypeEntry>;
+using ComplexTypeEntryCPtr = std::shared_ptr<const ComplexTypeEntry>;
+using ConstantValueTypeEntryCPtr = std::shared_ptr<const ConstantValueTypeEntry>;
+using ConfigurableTypeEntryCPtr = std::shared_ptr<const ConfigurableTypeEntry>;
+using ContainerTypeEntryCPtr = std::shared_ptr<const ContainerTypeEntry>;
+using CustomTypeEntryCPtr = std::shared_ptr<const CustomTypeEntry>;
+using EnumTypeEntryCPtr = std::shared_ptr<const EnumTypeEntry>;
+using EnumValueTypeEntryCPtr = std::shared_ptr<const EnumValueTypeEntry>;
+using FlagsTypeEntryCPtr = std::shared_ptr<const FlagsTypeEntry>;
+using FunctionTypeEntryCPtr = std::shared_ptr<const FunctionTypeEntry>;
+using NamespaceTypeEntryCPtr = std::shared_ptr<const NamespaceTypeEntry>;
+using ObjectTypeEntryCPtr = std::shared_ptr<const ObjectTypeEntry>;
+using PrimitiveTypeEntryCPtr = std::shared_ptr<const PrimitiveTypeEntry>;
+using SmartPointerTypeEntryCPtr = std::shared_ptr<const SmartPointerTypeEntry>;
+using TemplateEntryCPtr = std::shared_ptr<const TemplateEntry>;
+using TypeEntryCPtr = std::shared_ptr<const TypeEntry>;
+using TypedefEntryCPtr = std::shared_ptr<const TypedefEntry>;
+using TypeSystemTypeEntryCPtr = std::shared_ptr<const TypeSystemTypeEntry>;
+using ValueTypeEntryCPtr = std::shared_ptr<const ValueTypeEntry>;
-using AddedFunctionPtr = QSharedPointer<AddedFunction>;
-using AddedFunctionList = QList<AddedFunctionPtr>;
-using CodeSnipList = QList<CodeSnip>;
-using DocModificationList = QList<DocModification>;
-using FieldModificationList = QList<FieldModification>;
-using FunctionModificationList = QList<FunctionModification>;
-using TypeEntries = QList<const TypeEntry *>;
+using ComplexTypeEntryCList = QList<ComplexTypeEntryCPtr>;
+using ContainerTypeEntryCList = QList<ContainerTypeEntryCPtr>;
+using NamespaceTypeEntryList = QList<NamespaceTypeEntryPtr>;
+using PrimitiveTypeEntryCList = QList<PrimitiveTypeEntryCPtr>;
+using SmartPointerTypeEntryList = QList<SmartPointerTypeEntryCPtr>;
+using TypeEntryList = QList<TypeEntryPtr>;
+using TypeEntryCList = QList<TypeEntryCPtr>;
#endif // TYPESYSTEM_TYPEDEFS_H
diff --git a/sources/shiboken6/ApiExtractor/typesystemparser.cpp b/sources/shiboken6/ApiExtractor/typesystemparser.cpp
index 7ba7860f4..2b686e997 100644
--- a/sources/shiboken6/ApiExtractor/typesystemparser.cpp
+++ b/sources/shiboken6/ApiExtractor/typesystemparser.cpp
@@ -1,38 +1,33 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "typesystemparser.h"
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#include "typesystemparser_p.h"
+#include "anystringview_helpers.h"
+#include "addedfunction.h"
+#include "codesnip.h"
+#include "enumtypeentry.h"
+#include "containertypeentry.h"
+#include "customconversion.h"
+#include "customtypenentry.h"
+#include "flagstypeentry.h"
+#include "functiontypeentry.h"
+#include "namespacetypeentry.h"
+#include "objecttypeentry.h"
+#include "primitivetypeentry.h"
+#include "smartpointertypeentry.h"
+#include "typedefentry.h"
+#include "typesystemtypeentry.h"
+#include "valuetypeentry.h"
+#include "modifications.h"
#include "typedatabase.h"
#include "messages.h"
#include "reporthandler.h"
#include "sourcelocation.h"
#include "conditionalstreamreader.h"
+#include "qtcompat.h"
+
+#include <QtCore/QDebug>
#include <QtCore/QDir>
#include <QtCore/QFile>
#include <QtCore/QFileInfo>
@@ -49,74 +44,103 @@
#include <optional>
#include <memory>
-static inline QString allowThreadAttribute() { return QStringLiteral("allow-thread"); }
-static inline QString colonColon() { return QStringLiteral("::"); }
-static inline QString checkFunctionAttribute() { return QStringLiteral("check-function"); }
-static inline QString copyableAttribute() { return QStringLiteral("copyable"); }
-static inline QString accessAttribute() { return QStringLiteral("access"); }
-static inline QString actionAttribute() { return QStringLiteral("action"); }
-static inline QString quoteAfterLineAttribute() { return QStringLiteral("quote-after-line"); }
-static inline QString quoteBeforeLineAttribute() { return QStringLiteral("quote-before-line"); }
-static inline QString textAttribute() { return QStringLiteral("text"); }
-static inline QString nameAttribute() { return QStringLiteral("name"); }
-static inline QString sinceAttribute() { return QStringLiteral("since"); }
-static inline QString untilAttribute() { return QStringLiteral("until"); }
-static inline QString defaultSuperclassAttribute() { return QStringLiteral("default-superclass"); }
-static inline QString deleteInMainThreadAttribute() { return QStringLiteral("delete-in-main-thread"); }
-static inline QString deprecatedAttribute() { return QStringLiteral("deprecated"); }
-static inline QString disableWrapperAttribute() { return QStringLiteral("disable-wrapper"); }
-static inline QString exceptionHandlingAttribute() { return QStringLiteral("exception-handling"); }
-static inline QString extensibleAttribute() { return QStringLiteral("extensible"); }
-static inline QString fileNameAttribute() { return QStringLiteral("file-name"); }
-static inline QString flagsAttribute() { return QStringLiteral("flags"); }
-static inline QString forceAbstractAttribute() { return QStringLiteral("force-abstract"); }
-static inline QString forceIntegerAttribute() { return QStringLiteral("force-integer"); }
-static inline QString formatAttribute() { return QStringLiteral("format"); }
-static inline QString generateUsingAttribute() { return QStringLiteral("generate-using"); }
-static inline QString classAttribute() { return QStringLiteral("class"); }
-static inline QString generateAttribute() { return QStringLiteral("generate"); }
-static inline QString generateGetSetDefAttribute() { return QStringLiteral("generate-getsetdef"); }
-static inline QString genericClassAttribute() { return QStringLiteral("generic-class"); }
-static inline QString indexAttribute() { return QStringLiteral("index"); }
-static inline QString invalidateAfterUseAttribute() { return QStringLiteral("invalidate-after-use"); }
-static inline QString isNullAttribute() { return QStringLiteral("isNull"); }
-static inline QString locationAttribute() { return QStringLiteral("location"); }
-static inline QString modifiedTypeAttribute() { return QStringLiteral("modified-type"); }
-static inline QString operatorBoolAttribute() { return QStringLiteral("operator-bool"); }
-static inline QString pyiTypeAttribute() { return QStringLiteral("pyi-type"); }
-static inline QString overloadNumberAttribute() { return QStringLiteral("overload-number"); }
-static inline QString ownershipAttribute() { return QStringLiteral("owner"); }
-static inline QString packageAttribute() { return QStringLiteral("package"); }
-static inline QString positionAttribute() { return QStringLiteral("position"); }
-static inline QString preferredConversionAttribute() { return QStringLiteral("preferred-conversion"); }
-static inline QString preferredTargetLangTypeAttribute() { return QStringLiteral("preferred-target-lang-type"); }
-static inline QString removeAttribute() { return QStringLiteral("remove"); }
-static inline QString renameAttribute() { return QStringLiteral("rename"); }
-static inline QString readAttribute() { return QStringLiteral("read"); }
-static inline QString targetLangNameAttribute() { return QStringLiteral("target-lang-name"); }
-static inline QString writeAttribute() { return QStringLiteral("write"); }
-static inline QString replaceAttribute() { return QStringLiteral("replace"); }
-static inline QString toAttribute() { return QStringLiteral("to"); }
-static inline QString signatureAttribute() { return QStringLiteral("signature"); }
-static inline QString snippetAttribute() { return QStringLiteral("snippet"); }
-static inline QString snakeCaseAttribute() { return QStringLiteral("snake-case"); }
-static inline QString staticAttribute() { return QStringLiteral("static"); }
-static inline QString classmethodAttribute() { return QStringLiteral("classmethod"); }
-static inline QString threadAttribute() { return QStringLiteral("thread"); }
-static inline QString sourceAttribute() { return QStringLiteral("source"); }
-static inline QString streamAttribute() { return QStringLiteral("stream"); }
-static inline QString privateAttribute() { return QStringLiteral("private"); }
-static inline QString xPathAttribute() { return QStringLiteral("xpath"); }
-static inline QString virtualSlotAttribute() { return QStringLiteral("virtual-slot"); }
-static inline QString visibleAttribute() { return QStringLiteral("visible"); }
-static inline QString enumIdentifiedByValueAttribute() { return QStringLiteral("identified-by-value"); }
-
-static inline QString noAttributeValue() { return QStringLiteral("no"); }
-static inline QString yesAttributeValue() { return QStringLiteral("yes"); }
-static inline QString trueAttributeValue() { return QStringLiteral("true"); }
-static inline QString falseAttributeValue() { return QStringLiteral("false"); }
-
-static QList<CustomConversion *> customConversionsForReview;
+using namespace Qt::StringLiterals;
+
+constexpr auto allowThreadAttribute = "allow-thread"_L1;
+constexpr auto checkFunctionAttribute = "check-function"_L1;
+constexpr auto copyableAttribute = "copyable"_L1;
+constexpr auto accessAttribute = "access"_L1;
+constexpr auto actionAttribute = "action"_L1;
+constexpr auto quoteAfterLineAttribute = "quote-after-line"_L1;
+constexpr auto quoteBeforeLineAttribute = "quote-before-line"_L1;
+constexpr auto textAttribute = "text"_L1;
+constexpr auto nameAttribute = "name"_L1;
+constexpr auto sinceAttribute = "since"_L1;
+constexpr auto untilAttribute = "until"_L1;
+constexpr auto defaultSuperclassAttribute = "default-superclass"_L1;
+constexpr auto deleteInMainThreadAttribute = "delete-in-main-thread"_L1;
+constexpr auto deprecatedAttribute = "deprecated"_L1;
+constexpr auto disableWrapperAttribute = "disable-wrapper"_L1;
+constexpr auto docFileAttribute = "doc-file"_L1;
+constexpr auto exceptionHandlingAttribute = "exception-handling"_L1;
+constexpr auto extensibleAttribute = "extensible"_L1;
+constexpr auto fileNameAttribute = "file-name"_L1;
+constexpr auto fileAttribute = "file"_L1;
+constexpr auto flagsAttribute = "flags"_L1;
+constexpr auto forceAbstractAttribute = "force-abstract"_L1;
+constexpr auto forceIntegerAttribute = "force-integer"_L1;
+constexpr auto formatAttribute = "format"_L1;
+constexpr auto generateUsingAttribute = "generate-using"_L1;
+constexpr auto generateFunctionsAttribute = "generate-functions"_L1;
+constexpr auto classAttribute = "class"_L1;
+constexpr auto generateAttribute = "generate"_L1;
+constexpr auto generateGetSetDefAttribute = "generate-getsetdef"_L1;
+constexpr auto genericClassAttribute = "generic-class"_L1;
+constexpr auto indexAttribute = "index"_L1;
+constexpr auto invalidateAfterUseAttribute = "invalidate-after-use"_L1;
+constexpr auto isNullAttribute = "isNull"_L1;
+constexpr auto locationAttribute = "location"_L1;
+constexpr auto modifiedTypeAttribute = "modified-type"_L1;
+constexpr auto opaqueContainerAttribute = "opaque-containers"_L1;
+constexpr auto operatorBoolAttribute = "operator-bool"_L1;
+constexpr auto parentManagementAttribute = "parent-management"_L1;
+constexpr auto pyiTypeAttribute = "pyi-type"_L1;
+constexpr auto overloadNumberAttribute = "overload-number"_L1;
+constexpr auto ownershipAttribute = "owner"_L1;
+constexpr auto packageAttribute = "package"_L1;
+constexpr auto polymorphicBaseAttribute = "polymorphic-base"_L1;
+constexpr auto positionAttribute = "position"_L1;
+constexpr auto preferredConversionAttribute = "preferred-conversion"_L1;
+constexpr auto preferredTargetLangTypeAttribute = "preferred-target-lang-type"_L1;
+constexpr auto pythonEnumTypeAttribute = "python-type"_L1;
+constexpr auto pythonOverrideAttribute = "python-override"_L1;
+constexpr auto cppEnumTypeAttribute = "cpp-type"_L1;
+constexpr auto qtMetaObjectFunctionsAttribute = "qt-metaobject"_L1;
+constexpr auto qtMetaTypeAttribute = "qt-register-metatype"_L1;
+constexpr auto removeAttribute = "remove"_L1;
+constexpr auto renameAttribute = "rename"_L1;
+constexpr auto readAttribute = "read"_L1;
+constexpr auto targetLangNameAttribute = "target-lang-name"_L1;
+constexpr auto writeAttribute = "write"_L1;
+constexpr auto opaqueContainerFieldAttribute = "opaque-container"_L1;
+constexpr auto replaceAttribute = "replace"_L1;
+constexpr auto toAttribute = "to"_L1;
+constexpr auto signatureAttribute = "signature"_L1;
+constexpr auto snippetAttribute = "snippet"_L1;
+constexpr auto snakeCaseAttribute = "snake-case"_L1;
+constexpr auto staticAttribute = "static"_L1;
+constexpr auto classmethodAttribute = "classmethod"_L1;
+constexpr auto threadAttribute = "thread"_L1;
+constexpr auto sourceAttribute = "source"_L1;
+constexpr auto streamAttribute = "stream"_L1;
+constexpr auto privateAttribute = "private"_L1;
+constexpr auto xPathAttribute = "xpath"_L1;
+constexpr auto virtualSlotAttribute = "virtual-slot"_L1;
+constexpr auto visibleAttribute = "visible"_L1;
+constexpr auto enumIdentifiedByValueAttribute = "identified-by-value"_L1;
+constexpr auto subModuleOfAttribute = "submodule-of"_L1;
+
+constexpr auto noAttributeValue = "no"_L1;
+constexpr auto yesAttributeValue = "yes"_L1;
+constexpr auto trueAttributeValue = "true"_L1;
+constexpr auto falseAttributeValue = "false"_L1;
+
+static bool isTypeEntry(StackElement el)
+{
+ return el >= StackElement::FirstTypeEntry && el <= StackElement::LastTypeEntry;
+}
+
+static bool isComplexTypeEntry(StackElement el)
+{
+ return el >= StackElement::FirstTypeEntry && el <= StackElement::LastComplexTypeEntry;
+}
+
+static bool isDocumentation(StackElement el)
+{
+ return el >= StackElement::FirstDocumentation && el <= StackElement::LastDocumentation;
+}
+
+static QList<CustomConversionPtr> customConversionsForReview;
// Set a regular expression for rejection from text. By legacy, those are fixed
// strings, except for '*' meaning 'match all'. Enclosing in "^..$"
@@ -126,12 +150,12 @@ static bool setRejectionRegularExpression(const QString &patternIn,
QString *errorMessage)
{
QString pattern;
- if (patternIn.startsWith(QLatin1Char('^')) && patternIn.endsWith(QLatin1Char('$')))
+ if (patternIn.startsWith(u'^') && patternIn.endsWith(u'$'))
pattern = patternIn;
- else if (patternIn == QLatin1String("*"))
- pattern = QStringLiteral("^.*$");
+ else if (patternIn == u"*")
+ pattern = "^.*$"_L1;
else
- pattern = QLatin1Char('^') + QRegularExpression::escape(patternIn) + QLatin1Char('$');
+ pattern = u'^' + QRegularExpression::escape(patternIn) + u'$';
re->setPattern(pattern);
if (!re->isValid()) {
*errorMessage = msgInvalidRegularExpression(patternIn, re->errorString());
@@ -140,78 +164,66 @@ static bool setRejectionRegularExpression(const QString &patternIn,
return true;
}
+static inline bool hasFileSnippetAttributes(const QXmlStreamAttributes *attributes)
+{
+ return attributes->hasAttribute(fileAttribute);
+}
+
// Extract a snippet from a file within annotation "// @snippet label".
std::optional<QString>
extractSnippet(const QString &code, const QString &snippetLabel)
{
if (snippetLabel.isEmpty())
return code;
- const QString pattern = QStringLiteral(R"(^\s*//\s*@snippet\s+)")
+ const QString pattern = R"(^\s*//\s*@snippet\s+)"_L1
+ QRegularExpression::escape(snippetLabel)
- + QStringLiteral(R"(\s*$)");
+ + R"(\s*$)"_L1;
const QRegularExpression snippetRe(pattern);
Q_ASSERT(snippetRe.isValid());
bool useLine = false;
bool foundLabel = false;
QString result;
- const auto lines = QStringView{code}.split(QLatin1Char('\n'));
+ const auto lines = QStringView{code}.split(u'\n');
for (const auto &line : lines) {
- if (snippetRe.match(line).hasMatch()) {
+ if (snippetRe.matchView(line).hasMatch()) {
foundLabel = true;
useLine = !useLine;
if (!useLine)
break; // End of snippet reached
} else if (useLine)
- result += line.toString() + QLatin1Char('\n');
+ result += line.toString() + u'\n';
}
if (!foundLabel)
return {};
return CodeSnipAbstract::fixSpaces(result);
}
-template <class EnumType, Qt::CaseSensitivity cs = Qt::CaseInsensitive>
+template <class EnumType>
struct EnumLookup
{
QStringView name;
EnumType value;
};
-template <class EnumType, Qt::CaseSensitivity cs>
-bool operator==(const EnumLookup<EnumType, cs> &e1, const EnumLookup<EnumType, cs> &e2)
-{
- return e1.name.compare(e2.name, cs) == 0;
-}
-
-template <class EnumType, Qt::CaseSensitivity cs>
-bool operator<(const EnumLookup<EnumType, cs> &e1, const EnumLookup<EnumType, cs> &e2)
-{
- return e1.name.compare(e2.name, cs) < 0;
-}
-
// Helper macros to define lookup functions that take a QStringView needle
// and an optional default return value.
#define ENUM_LOOKUP_BEGIN(EnumType, caseSensitivity, functionName) \
static std::optional<EnumType> functionName(QStringView needle) \
{ \
- using HaystackEntry = EnumLookup<EnumType, caseSensitivity>; \
- static const HaystackEntry haystack[] =
-
-#define ENUM_LOOKUP_LINEAR_SEARCH() \
- const auto end = haystack + sizeof(haystack) / sizeof(haystack[0]); \
- const auto it = std::find(haystack, end, HaystackEntry{needle, {} }); \
+ using HaystackEntry = EnumLookup<EnumType>; \
+ constexpr auto cs = caseSensitivity; \
+ static constexpr HaystackEntry haystack[] =
+
+#define ENUM_LOOKUP_LINEAR_SEARCH \
+ auto pred = [cs, needle](const HaystackEntry &he) { \
+ return he.name.compare(needle, cs) == 0; \
+ }; \
+ auto end = std::cend(haystack); \
+ auto it = std::find_if(std::cbegin(haystack), end, pred); \
if (it != end) \
return it->value; \
- return {}; \
-}
-
-#define ENUM_LOOKUP_BINARY_SEARCH() \
- const auto end = haystack + sizeof(haystack) / sizeof(haystack[0]); \
- const HaystackEntry needleEntry{needle, {} }; \
- const auto lb = std::lower_bound(haystack, end, needleEntry); \
- if (lb != end && *lb == needleEntry) \
- return lb->value; \
- return {}; \
+ return std::nullopt; \
}
ENUM_LOOKUP_BEGIN(TypeSystem::AllowThread, Qt::CaseInsensitive,
@@ -223,7 +235,7 @@ ENUM_LOOKUP_BEGIN(TypeSystem::AllowThread, Qt::CaseInsensitive,
{u"no", TypeSystem::AllowThread::Disallow},
{u"false", TypeSystem::AllowThread::Disallow},
};
-ENUM_LOOKUP_LINEAR_SEARCH()
+ENUM_LOOKUP_LINEAR_SEARCH
ENUM_LOOKUP_BEGIN(TypeSystem::BoolCast, Qt::CaseInsensitive,
@@ -234,7 +246,28 @@ ENUM_LOOKUP_BEGIN(TypeSystem::BoolCast, Qt::CaseInsensitive,
{u"no", TypeSystem::BoolCast::Disabled},
{u"false", TypeSystem::BoolCast::Disabled},
};
-ENUM_LOOKUP_LINEAR_SEARCH()
+ENUM_LOOKUP_LINEAR_SEARCH
+
+ENUM_LOOKUP_BEGIN(TypeSystem::PythonEnumType, Qt::CaseSensitive,
+ pythonEnumTypeFromAttribute)
+ {
+ {u"Enum", TypeSystem::PythonEnumType::Enum},
+ {u"IntEnum", TypeSystem::PythonEnumType::IntEnum},
+ {u"Flag", TypeSystem::PythonEnumType::Flag},
+ {u"IntFlag", TypeSystem::PythonEnumType::IntFlag},
+ };
+ENUM_LOOKUP_LINEAR_SEARCH
+
+ENUM_LOOKUP_BEGIN(TypeSystem::QtMetaTypeRegistration, Qt::CaseSensitive,
+ qtMetaTypeFromAttribute)
+ {
+ {u"yes", TypeSystem::QtMetaTypeRegistration::Enabled},
+ {u"true", TypeSystem::QtMetaTypeRegistration::Enabled},
+ {u"base", TypeSystem::QtMetaTypeRegistration::BaseEnabled},
+ {u"no", TypeSystem::QtMetaTypeRegistration::Disabled},
+ {u"false", TypeSystem::QtMetaTypeRegistration::Disabled},
+ };
+ENUM_LOOKUP_LINEAR_SEARCH
ENUM_LOOKUP_BEGIN(TypeSystem::Language, Qt::CaseInsensitive,
languageFromAttribute)
@@ -244,7 +277,7 @@ ENUM_LOOKUP_BEGIN(TypeSystem::Language, Qt::CaseInsensitive,
{u"shell", TypeSystem::ShellCode}, // coloca no header, mas antes da declaracao da classe
{u"target", TypeSystem::TargetLangCode} // em algum lugar do cpp
};
-ENUM_LOOKUP_BINARY_SEARCH()
+ENUM_LOOKUP_LINEAR_SEARCH
ENUM_LOOKUP_BEGIN(TypeSystem::Ownership, Qt::CaseInsensitive,
ownershipFromFromAttribute)
@@ -253,7 +286,7 @@ ENUM_LOOKUP_BEGIN(TypeSystem::Ownership, Qt::CaseInsensitive,
{u"c++", TypeSystem::CppOwnership},
{u"default", TypeSystem::DefaultOwnership}
};
-ENUM_LOOKUP_LINEAR_SEARCH()
+ENUM_LOOKUP_LINEAR_SEARCH
ENUM_LOOKUP_BEGIN(AddedFunction::Access, Qt::CaseInsensitive,
addedFunctionAccessFromAttribute)
@@ -261,7 +294,7 @@ ENUM_LOOKUP_BEGIN(AddedFunction::Access, Qt::CaseInsensitive,
{u"public", AddedFunction::Public},
{u"protected", AddedFunction::Protected},
};
-ENUM_LOOKUP_LINEAR_SEARCH()
+ENUM_LOOKUP_LINEAR_SEARCH
ENUM_LOOKUP_BEGIN(FunctionModification::ModifierFlag, Qt::CaseSensitive,
modifierFromAttribute)
@@ -269,12 +302,11 @@ ENUM_LOOKUP_BEGIN(FunctionModification::ModifierFlag, Qt::CaseSensitive,
{u"private", FunctionModification::Private},
{u"public", FunctionModification::Public},
{u"protected", FunctionModification::Protected},
- {u"friendly", FunctionModification::Friendly},
{u"rename", FunctionModification::Rename},
{u"final", FunctionModification::Final},
{u"non-final", FunctionModification::NonFinal}
};
-ENUM_LOOKUP_LINEAR_SEARCH()
+ENUM_LOOKUP_LINEAR_SEARCH
ENUM_LOOKUP_BEGIN(ReferenceCount::Action, Qt::CaseInsensitive,
referenceCountFromAttribute)
@@ -285,7 +317,7 @@ ENUM_LOOKUP_BEGIN(ReferenceCount::Action, Qt::CaseInsensitive,
{u"set", ReferenceCount::Set},
{u"ignore", ReferenceCount::Ignore}
};
-ENUM_LOOKUP_LINEAR_SEARCH()
+ENUM_LOOKUP_LINEAR_SEARCH
ENUM_LOOKUP_BEGIN(ArgumentOwner::Action, Qt::CaseInsensitive,
argumentOwnerActionFromAttribute)
@@ -293,16 +325,17 @@ ENUM_LOOKUP_BEGIN(ArgumentOwner::Action, Qt::CaseInsensitive,
{u"add", ArgumentOwner::Add},
{u"remove", ArgumentOwner::Remove}
};
-ENUM_LOOKUP_LINEAR_SEARCH()
+ENUM_LOOKUP_LINEAR_SEARCH
ENUM_LOOKUP_BEGIN(TypeSystem::CodeSnipPosition, Qt::CaseInsensitive,
codeSnipPositionFromAttribute)
{
{u"beginning", TypeSystem::CodeSnipPositionBeginning},
{u"end", TypeSystem::CodeSnipPositionEnd},
- {u"declaration", TypeSystem::CodeSnipPositionDeclaration}
+ {u"declaration", TypeSystem::CodeSnipPositionDeclaration},
+ {u"override", TypeSystem::CodeSnipPositionPyOverride}
};
-ENUM_LOOKUP_LINEAR_SEARCH()
+ENUM_LOOKUP_LINEAR_SEARCH
ENUM_LOOKUP_BEGIN(Include::IncludeType, Qt::CaseInsensitive,
locationFromAttribute)
@@ -311,7 +344,7 @@ ENUM_LOOKUP_BEGIN(Include::IncludeType, Qt::CaseInsensitive,
{u"local", Include::LocalPath},
{u"target", Include::TargetLangImport}
};
-ENUM_LOOKUP_LINEAR_SEARCH()
+ENUM_LOOKUP_LINEAR_SEARCH
ENUM_LOOKUP_BEGIN(TypeSystem::DocModificationMode, Qt::CaseInsensitive,
docModificationFromAttribute)
@@ -320,7 +353,7 @@ ENUM_LOOKUP_BEGIN(TypeSystem::DocModificationMode, Qt::CaseInsensitive,
{u"prepend", TypeSystem::DocModificationPrepend},
{u"replace", TypeSystem::DocModificationReplace}
};
-ENUM_LOOKUP_LINEAR_SEARCH()
+ENUM_LOOKUP_LINEAR_SEARCH
ENUM_LOOKUP_BEGIN(ContainerTypeEntry::ContainerKind, Qt::CaseSensitive,
containerTypeFromAttribute)
@@ -336,9 +369,10 @@ ENUM_LOOKUP_BEGIN(ContainerTypeEntry::ContainerKind, Qt::CaseSensitive,
{u"multi-map", ContainerTypeEntry::MultiMapContainer},
{u"hash", ContainerTypeEntry::MapContainer},
{u"multi-hash", ContainerTypeEntry::MultiMapContainer},
- {u"pair", ContainerTypeEntry::PairContainer}
+ {u"pair", ContainerTypeEntry::PairContainer},
+ {u"span", ContainerTypeEntry::SpanContainer}
};
-ENUM_LOOKUP_LINEAR_SEARCH()
+ENUM_LOOKUP_LINEAR_SEARCH
ENUM_LOOKUP_BEGIN(TypeRejection::MatchType, Qt::CaseSensitive,
typeRejectionFromAttribute)
@@ -350,7 +384,7 @@ ENUM_LOOKUP_BEGIN(TypeRejection::MatchType, Qt::CaseSensitive,
{u"argument-type", TypeRejection::ArgumentType},
{u"return-type", TypeRejection::ReturnType}
};
-ENUM_LOOKUP_LINEAR_SEARCH()
+ENUM_LOOKUP_LINEAR_SEARCH
ENUM_LOOKUP_BEGIN(TypeSystem::ExceptionHandling, Qt::CaseSensitive,
exceptionHandlingFromAttribute)
@@ -362,28 +396,61 @@ ENUM_LOOKUP_BEGIN(TypeSystem::ExceptionHandling, Qt::CaseSensitive,
{u"yes", TypeSystem::ExceptionHandling::On},
{u"true", TypeSystem::ExceptionHandling::On},
};
-ENUM_LOOKUP_LINEAR_SEARCH()
+ENUM_LOOKUP_LINEAR_SEARCH
-ENUM_LOOKUP_BEGIN(StackElement::ElementType, Qt::CaseInsensitive,
- elementFromTag)
- {
- {u"add-conversion", StackElement::AddConversion}, // sorted!
+ENUM_LOOKUP_BEGIN(TypeSystem::SmartPointerType, Qt::CaseSensitive,
+ smartPointerTypeFromAttribute)
+{
+ {u"handle", TypeSystem::SmartPointerType::Handle},
+ {u"unique", TypeSystem::SmartPointerType::Unique},
+ {u"value-handle", TypeSystem::SmartPointerType::ValueHandle},
+ {u"shared", TypeSystem::SmartPointerType::Shared}
+};
+ENUM_LOOKUP_LINEAR_SEARCH
+
+template <class EnumType>
+static std::optional<EnumType>
+ lookupHashElement(const QHash<QStringView, EnumType> &hash,
+ QStringView needle, Qt::CaseSensitivity cs = Qt::CaseSensitive)
+{
+ auto end = hash.cend();
+ auto it = hash.constFind(needle);
+ if (it != end)
+ return it.value();
+ if (cs == Qt::CaseInsensitive) { // brute force search for the unlikely case mismatch
+ for (it = hash.cbegin(); it != end; ++it) {
+ if (it.key().compare(needle, cs) == 0)
+ return it.value();
+ }
+ }
+ return std::nullopt;
+}
+
+using StackElementHash = QHash<QStringView, StackElement>;
+
+static const StackElementHash &stackElementHash()
+{
+ static const StackElementHash result{
+ {u"add-conversion", StackElement::AddConversion},
{u"add-function", StackElement::AddFunction},
+ {u"add-pymethoddef", StackElement::AddPyMethodDef},
{u"array", StackElement::Array},
+ {u"configuration", StackElement::Configuration},
{u"container-type", StackElement::ContainerTypeEntry},
{u"conversion-rule", StackElement::ConversionRule},
- {u"custom-constructor", StackElement::CustomMetaConstructor},
- {u"custom-destructor", StackElement::CustomMetaDestructor},
+ {u"custom-constructor", StackElement::Unimplemented},
+ {u"custom-destructor", StackElement::Unimplemented},
{u"custom-type", StackElement::CustomTypeEntry},
{u"declare-function", StackElement::DeclareFunction},
{u"define-ownership", StackElement::DefineOwnership},
{u"enum-type", StackElement::EnumTypeEntry},
{u"extra-includes", StackElement::ExtraIncludes},
{u"function", StackElement::FunctionTypeEntry},
+ {u"import-file", StackElement::ImportFile},
{u"include", StackElement::Include},
{u"inject-code", StackElement::InjectCode},
{u"inject-documentation", StackElement::InjectDocumentation},
- {u"insert-template", StackElement::TemplateInstanceEnum},
+ {u"insert-template", StackElement::InsertTemplate},
{u"interface-type", StackElement::InterfaceTypeEntry},
{u"load-typesystem", StackElement::LoadTypesystem},
{u"modify-argument", StackElement::ModifyArgument},
@@ -394,6 +461,7 @@ ENUM_LOOKUP_BEGIN(StackElement::ElementType, Qt::CaseInsensitive,
{u"native-to-target", StackElement::NativeToTarget},
{u"no-null-pointer", StackElement::NoNullPointers},
{u"object-type", StackElement::ObjectTypeEntry},
+ {u"opaque-container", StackElement::OpaqueContainer},
{u"parent", StackElement::ParentOwner},
{u"primitive-type", StackElement::PrimitiveTypeEntry},
{u"property", StackElement::Property},
@@ -415,8 +483,30 @@ ENUM_LOOKUP_BEGIN(StackElement::ElementType, Qt::CaseInsensitive,
{u"typesystem", StackElement::Root},
{u"value-type", StackElement::ValueTypeEntry},
};
-ENUM_LOOKUP_BINARY_SEARCH()
+ return result;
+}
+
+static std::optional<StackElement> elementFromTag(QStringView needle)
+{
+ return lookupHashElement(stackElementHash(), needle,
+ Qt::CaseInsensitive); // FIXME PYSIDE-7: case sensitive
+}
+static QStringView tagFromElement(StackElement st)
+{
+ return stackElementHash().key(st);
+}
+
+#ifndef QT_NO_DEBUG_STREAM
+QDebug operator<<(QDebug d, StackElement st)
+{
+ QDebugStateSaver saver(d);
+ d.noquote();
+ d.nospace();
+ d << tagFromElement(st);
+ return d;
+}
+#endif // QT_NO_DEBUG_STREAM
ENUM_LOOKUP_BEGIN(TypeSystem::SnakeCase, Qt::CaseSensitive,
snakeCaseFromAttribute)
@@ -427,7 +517,7 @@ ENUM_LOOKUP_BEGIN(TypeSystem::SnakeCase, Qt::CaseSensitive,
{u"true", TypeSystem::SnakeCase::Enabled},
{u"both", TypeSystem::SnakeCase::Both},
};
-ENUM_LOOKUP_LINEAR_SEARCH()
+ENUM_LOOKUP_LINEAR_SEARCH
ENUM_LOOKUP_BEGIN(TypeSystem::Visibility, Qt::CaseSensitive,
visibilityFromAttribute)
@@ -438,12 +528,12 @@ ENUM_LOOKUP_BEGIN(TypeSystem::Visibility, Qt::CaseSensitive,
{u"yes", TypeSystem::Visibility::Visible},
{u"true", TypeSystem::Visibility::Visible},
};
-ENUM_LOOKUP_LINEAR_SEARCH()
+ENUM_LOOKUP_LINEAR_SEARCH
static int indexOfAttribute(const QXmlStreamAttributes &atts,
- QStringView name)
+ QAnyStringView name)
{
- for (int i = 0, size = atts.size(); i < size; ++i) {
+ for (qsizetype i = 0, size = atts.size(); i < size; ++i) {
if (atts.at(i).qualifiedName() == name)
return i;
}
@@ -452,8 +542,8 @@ static int indexOfAttribute(const QXmlStreamAttributes &atts,
static QString msgMissingAttribute(const QString &a)
{
- return QLatin1String("Required attribute '") + a
- + QLatin1String("' missing.");
+ return u"Required attribute '"_s + a
+ + u"' missing."_s;
}
QTextStream &operator<<(QTextStream &str, const QXmlStreamAttribute &attribute)
@@ -474,7 +564,7 @@ static QString msgUnusedAttributes(QStringView tag, const QXmlStreamAttributes &
QString result;
QTextStream str(&result);
str << attributes.size() << " attributes(s) unused on <" << tag << ">: ";
- for (int i = 0, size = attributes.size(); i < size; ++i) {
+ for (qsizetype i = 0, size = attributes.size(); i < size; ++i) {
if (i)
str << ", ";
str << attributes.at(i);
@@ -501,25 +591,25 @@ private:
QString TypeSystemEntityResolver::readFile(const QString &entityName, QString *errorMessage) const
{
QString fileName = entityName;
- if (!fileName.contains(QLatin1Char('.')))
- fileName += QLatin1String(".xml");
+ if (!fileName.contains(u'.'))
+ fileName += u".xml"_s;
QString path = TypeDatabase::instance()->modifiedTypesystemFilepath(fileName, m_currentPath);
if (!QFileInfo::exists(path)) // PySide6-specific hack
- fileName.prepend(QLatin1String("typesystem_"));
+ fileName.prepend(u"typesystem_"_s);
path = TypeDatabase::instance()->modifiedTypesystemFilepath(fileName, m_currentPath);
if (!QFileInfo::exists(path)) {
- *errorMessage = QLatin1String("Unable to resolve: ") + entityName;
- return QString();
+ *errorMessage = u"Unable to resolve: "_s + entityName;
+ return {};
}
QFile file(path);
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
*errorMessage = msgCannotOpenForReading(file);
- return QString();
+ return {};
}
QString result = QString::fromUtf8(file.readAll()).trimmed();
// Remove license header comments on which QXmlStreamReader chokes
- if (result.startsWith(QLatin1String("<!--"))) {
- const int commentEnd = result.indexOf(QLatin1String("-->"));
+ if (result.startsWith(u"<!--")) {
+ const auto commentEnd = result.indexOf(u"-->");
if (commentEnd != -1) {
result.remove(0, commentEnd + 3);
result = result.trimmed();
@@ -539,8 +629,24 @@ QString TypeSystemEntityResolver::resolveUndeclaredEntity(const QString &name)
return result;
}
-TypeSystemParser::TypeSystemParser(TypeDatabase *database, bool generate) :
- m_database(database),
+// State depending on element stack
+enum class ParserState
+{
+ None,
+ PrimitiveTypeNativeToTargetConversion,
+ PrimitiveTypeTargetToNativeConversion,
+ ArgumentConversion, // Argument conversion rule with class attribute
+ ArgumentNativeToTargetConversion,
+ ArgumentTargetToNativeConversion,
+ FunctionCodeInjection,
+ TypeEntryCodeInjection,
+ TypeSystemCodeInjection,
+ Template
+};
+
+TypeSystemParser::TypeSystemParser(const std::shared_ptr<TypeDatabaseParserContext> &context,
+ bool generate) :
+ m_context(context),
m_generate(generate ? TypeEntry::GenerateCode : TypeEntry::GenerateForSubclass)
{
}
@@ -581,7 +687,7 @@ static QString msgReaderError(const ConditionalStreamReader &reader, const QStri
}
static QString msgUnimplementedElementWarning(const ConditionalStreamReader &reader,
- QStringView name)
+ QAnyStringView name)
{
QString message;
QTextStream(&message) << "The element \"" << name
@@ -606,7 +712,7 @@ static inline QString msgUnimplementedAttributeWarning(const ConditionalStreamRe
static QString
msgUnimplementedAttributeValueWarning(const ConditionalStreamReader &reader,
- QStringView name, QStringView value)
+ QAnyStringView name, QAnyStringView value)
{
QString message;
QTextStream(&message) << "The value \"" << value
@@ -623,21 +729,22 @@ static inline
attribute.value());
}
-static bool addRejection(TypeDatabase *database, QXmlStreamAttributes *attributes,
+static bool addRejection(TypeDatabase *database, bool generate, QXmlStreamAttributes *attributes,
QString *errorMessage)
{
- const int classIndex = indexOfAttribute(*attributes, classAttribute());
+ const auto classIndex = indexOfAttribute(*attributes, classAttribute);
if (classIndex == -1) {
- *errorMessage = msgMissingAttribute(classAttribute());
+ *errorMessage = msgMissingAttribute(classAttribute);
return false;
}
TypeRejection rejection;
+ rejection.generate = generate;
const QString className = attributes->takeAt(classIndex).value().toString();
if (!setRejectionRegularExpression(className, &rejection.className, errorMessage))
return false;
- for (int i = attributes->size() - 1; i >= 0; --i) {
+ for (auto i = attributes->size() - 1; i >= 0; --i) {
const auto &attribute = attributes->at(i);
const auto name = attribute.qualifiedName();
const auto typeOpt = typeRejectionFromAttribute(name);
@@ -664,9 +771,9 @@ static bool addRejection(TypeDatabase *database, QXmlStreamAttributes *attribute
}
// Special case: When all fields except class are empty, completely exclude class
- if (className == QLatin1String("*")) {
- *errorMessage = QLatin1String("bad reject entry, neither 'class', 'function-name'"
- " nor 'field' specified");
+ if (className == u"*") {
+ *errorMessage = u"bad reject entry, neither 'class', 'function-name'"
+ " nor 'field' specified"_s;
return false;
}
rejection.matchType = TypeRejection::ExcludeClass;
@@ -679,10 +786,7 @@ bool TypeSystemParser::parse(ConditionalStreamReader &reader)
m_error.clear();
m_currentPath.clear();
m_currentFile.clear();
- m_smartPointerInstantiations.clear();
- const bool result = parseXml(reader) && setupSmartPointerInstantiations();
- m_smartPointerInstantiations.clear();
- return result;
+ return parseXml(reader);
}
bool TypeSystemParser::parseXml(ConditionalStreamReader &reader)
@@ -702,18 +806,25 @@ bool TypeSystemParser::parseXml(ConditionalStreamReader &reader)
case QXmlStreamReader::Invalid:
m_error = msgReaderError(reader, reader.errorString());
return false;
- case QXmlStreamReader::StartElement:
- if (!startElement(reader)) {
+ case QXmlStreamReader::StartElement: {
+ const auto elementTypeOpt = elementFromTag(reader.name());
+ if (!elementTypeOpt.has_value()) {
+ m_error = u"Unknown tag name: '"_s + reader.name().toString() + u'\'';
+ return false;
+ }
+ m_stack.push(elementTypeOpt.value());
+ if (!startElement(reader, m_stack.top())) {
m_error = msgReaderError(reader, m_error);
return false;
}
-
+ }
break;
case QXmlStreamReader::EndElement:
- if (!endElement(reader.name())) {
+ if (!endElement(m_stack.top())) {
m_error = msgReaderError(reader, m_error);
return false;
}
+ m_stack.pop();
break;
case QXmlStreamReader::Characters:
if (!characters(reader.text())) {
@@ -733,326 +844,302 @@ bool TypeSystemParser::parseXml(ConditionalStreamReader &reader)
return true;
}
-// Split a type list potentially with template types
-// "A<B,C>,D" -> ("A<B,C>", "D")
-static QStringList splitTypeList(const QString &s)
-{
- QStringList result;
- int templateDepth = 0;
- int lastPos = 0;
- const int size = s.size();
- for (int i = 0; i < size; ++i) {
- switch (s.at(i).toLatin1()) {
- case '<':
- ++templateDepth;
- break;
- case '>':
- --templateDepth;
- break;
- case ',':
- if (templateDepth == 0) {
- result.append(s.mid(lastPos, i - lastPos).trimmed());
- lastPos = i + 1;
- }
- break;
- }
- }
- if (lastPos < size)
- result.append(s.mid(lastPos, size - lastPos).trimmed());
- return result;
-}
-
-bool TypeSystemParser::setupSmartPointerInstantiations()
-{
- for (auto it = m_smartPointerInstantiations.cbegin(),
- end = m_smartPointerInstantiations.cend(); it != end; ++it) {
- auto smartPointerEntry = it.key();
- const auto instantiationNames = splitTypeList(it.value());
- SmartPointerTypeEntry::Instantiations instantiations;
- instantiations.reserve(instantiationNames.size());
- for (const auto &instantiationName : instantiationNames) {
- const auto types = m_database->findCppTypes(instantiationName);
- if (types.isEmpty()) {
- m_error =
- msgCannotFindTypeEntryForSmartPointer(instantiationName,
- smartPointerEntry->name());
- return false;
- }
- if (types.size() > 1) {
- m_error = msgAmbiguousTypesFound(instantiationName, types);
- return false;
- }
- instantiations.append(types.constFirst());
- }
- smartPointerEntry->setInstantiations(instantiations);
- }
- return true;
-}
-
-bool TypeSystemParser::endElement(QStringView localName)
+bool TypeSystemParser::endElement(StackElement element)
{
if (m_ignoreDepth) {
--m_ignoreDepth;
return true;
}
- if (m_currentDroppedEntry) {
- if (m_currentDroppedEntryDepth == 1) {
- m_current = m_currentDroppedEntry->parent;
- delete m_currentDroppedEntry;
- m_currentDroppedEntry = nullptr;
- m_currentDroppedEntryDepth = 0;
- } else {
- --m_currentDroppedEntryDepth;
- }
+ if (m_currentDroppedEntryDepth != 0) {
+ --m_currentDroppedEntryDepth;
return true;
}
- if (!localName.compare(QLatin1String("import-file"), Qt::CaseInsensitive))
+ if (element == StackElement::ImportFile)
return true;
- if (!m_current)
+ if (m_contextStack.isEmpty())
return true;
- switch (m_current->type) {
+ const auto &top = m_contextStack.top();
+
+ switch (element) {
+ case StackElement::Unimplemented:
+ return true;
case StackElement::Root:
if (m_generate == TypeEntry::GenerateCode) {
- TypeDatabase::instance()->addGlobalUserFunctions(m_contextStack.top()->addedFunctions);
- TypeDatabase::instance()->addGlobalUserFunctionModifications(m_contextStack.top()->functionMods);
- for (CustomConversion *customConversion : qAsConst(customConversionsForReview)) {
- const CustomConversion::TargetToNativeConversions &toNatives = customConversion->targetToNativeConversions();
- for (CustomConversion::TargetToNativeConversion *toNative : toNatives)
- toNative->setSourceType(m_database->findType(toNative->sourceTypeName()));
+ TypeDatabase::instance()->addGlobalUserFunctions(top->addedFunctions);
+ TypeDatabase::instance()->addGlobalUserFunctionModifications(top->functionMods);
+ for (const auto &customConversion : std::as_const(customConversionsForReview)) {
+ TargetToNativeConversions &toNatives =
+ customConversion->targetToNativeConversions();
+ for (auto &toNative : toNatives)
+ toNative.setSourceType(m_context->db->findType(toNative.sourceTypeName()));
}
}
+ purgeEmptyCodeSnips(&std::static_pointer_cast<TypeSystemTypeEntry>(top->entry)->codeSnips());
+ break;
+ case StackElement::FunctionTypeEntry:
+ TypeDatabase::instance()->addGlobalUserFunctionModifications(top->functionMods);
break;
case StackElement::ObjectTypeEntry:
case StackElement::ValueTypeEntry:
case StackElement::InterfaceTypeEntry:
case StackElement::ContainerTypeEntry:
case StackElement::NamespaceTypeEntry: {
- auto *centry = static_cast<ComplexTypeEntry *>(m_current->entry);
- auto top = m_contextStack.top();
+ Q_ASSERT(top->entry);
+ Q_ASSERT(top->entry->isComplex());
+ auto centry = std::static_pointer_cast<ComplexTypeEntry>(top->entry);
+ purgeEmptyCodeSnips(&centry->codeSnips());
centry->setAddedFunctions(top->addedFunctions);
centry->setFunctionModifications(top->functionMods);
centry->setFieldModifications(top->fieldMods);
- centry->setCodeSnips(top->codeSnips);
centry->setDocModification(top->docModifications);
}
break;
case StackElement::TypedefTypeEntry: {
- auto *centry = static_cast<TypedefEntry *>(m_current->entry)->target();
- auto top = m_contextStack.top();
+ auto centry = std::static_pointer_cast<TypedefEntry>(top->entry)->target();
centry->setAddedFunctions(centry->addedFunctions() + top->addedFunctions);
centry->setFunctionModifications(centry->functionModifications() + top->functionMods);
centry->setFieldModifications(centry->fieldModifications() + top->fieldMods);
- centry->setCodeSnips(centry->codeSnips() + top->codeSnips);
centry->setDocModification(centry->docModifications() + top->docModifications);
+ if (top->entry->isComplex()) {
+ auto cte = std::static_pointer_cast<const ComplexTypeEntry>(top->entry);
+ centry->setCodeSnips(centry->codeSnips() + cte->codeSnips());
+ }
}
break;
- case StackElement::AddFunction: {
+ case StackElement::AddFunction:
+ case StackElement::DeclareFunction: {
// Leaving add-function: Assign all modifications to the added function
- StackElementContext *top = m_contextStack.top();
const int modIndex = top->addedFunctionModificationIndex;
top->addedFunctionModificationIndex = -1;
Q_ASSERT(modIndex >= 0);
Q_ASSERT(!top->addedFunctions.isEmpty());
while (modIndex < top->functionMods.size())
- top->addedFunctions.last()->modifications.append(top->functionMods.takeAt(modIndex));
+ top->addedFunctions.last()->modifications().append(top->functionMods.takeAt(modIndex));
}
- break;
+ break;
case StackElement::NativeToTarget:
- case StackElement::AddConversion: {
- CustomConversion* customConversion = static_cast<TypeEntry*>(m_current->entry)->customConversion();
- if (!customConversion) {
- m_error = QLatin1String("CustomConversion object is missing.");
- return false;
- }
-
- QString code = m_contextStack.top()->codeSnips.takeLast().code();
- if (m_current->type == StackElement::AddConversion) {
- if (customConversion->targetToNativeConversions().isEmpty()) {
- m_error = QLatin1String("CustomConversion's target to native conversions missing.");
+ case StackElement::AddConversion:
+ switch (parserState()) {
+ case ParserState::PrimitiveTypeNativeToTargetConversion:
+ case ParserState::PrimitiveTypeTargetToNativeConversion: {
+ auto customConversion = CustomConversion::getCustomConversion(top->entry);
+ if (!customConversion) {
+ m_error = msgMissingCustomConversion(top->entry);
return false;
}
- customConversion->targetToNativeConversions().last()->setConversion(code);
- } else {
- customConversion->setNativeToTargetConversion(code);
- }
- }
- break;
- case StackElement::CustomMetaConstructor: {
- m_current->entry->setCustomConstructor(*m_current->value.customFunction);
- delete m_current->value.customFunction;
- }
- break;
- case StackElement::CustomMetaDestructor: {
- m_current->entry->setCustomDestructor(*m_current->value.customFunction);
- delete m_current->value.customFunction;
- }
- break;
- case StackElement::EnumTypeEntry:
- m_current->entry->setDocModification(m_contextStack.top()->docModifications);
- m_contextStack.top()->docModifications = DocModificationList();
- m_currentEnum = nullptr;
- break;
- case StackElement::Template:
- m_database->addTemplate(m_current->value.templateEntry);
- break;
- case StackElement::TemplateInstanceEnum:
- switch (m_current->parent->type) {
- case StackElement::InjectCode:
- if (m_current->parent->parent->type == StackElement::Root) {
- CodeSnipList snips = m_current->parent->entry->codeSnips();
- CodeSnip snip = snips.takeLast();
- TemplateInstancePtr ti(m_current->value.templateInstance);
- snip.addTemplateInstance(ti);
- snips.append(snip);
- m_current->parent->entry->setCodeSnips(snips);
- break;
+ QString code = top->conversionCodeSnips.constLast().code();
+ if (element == StackElement::AddConversion) {
+ if (customConversion->targetToNativeConversions().isEmpty()) {
+ m_error = u"CustomConversion's target to native conversions missing."_s;
+ return false;
+ }
+ customConversion->targetToNativeConversions().last().setConversion(code);
+ } else {
+ customConversion->setNativeToTargetConversion(code);
}
- Q_FALLTHROUGH();
- case StackElement::NativeToTarget:
- case StackElement::AddConversion: {
- TemplateInstancePtr ti(m_current->value.templateInstance);
- m_contextStack.top()->codeSnips.last().addTemplateInstance(ti);
}
break;
- case StackElement::Template: {
- TemplateInstancePtr ti(m_current->value.templateInstance);
- m_current->parent->value.templateEntry->addTemplateInstance(ti);
- }
- break;
- case StackElement::CustomMetaConstructor:
- case StackElement::CustomMetaDestructor: {
- TemplateInstancePtr ti(m_current->value.templateInstance);
- m_current->parent->value.customFunction->addTemplateInstance(ti);
- }
- break;
- case StackElement::ConversionRule: {
- TemplateInstancePtr ti(m_current->value.templateInstance);
- m_contextStack.top()->functionMods.last().argument_mods().last().conversionRules().last().addTemplateInstance(ti);
+
+ case ParserState::ArgumentNativeToTargetConversion: {
+ top->conversionCodeSnips.last().language = TypeSystem::TargetLangCode;
+ auto &lastArgMod = m_contextStack.top()->functionMods.last().argument_mods().last();
+ lastArgMod.conversionRules().append(top->conversionCodeSnips.constLast());
}
break;
- case StackElement::InjectCodeInFunction: {
- TemplateInstancePtr ti(m_current->value.templateInstance);
- m_contextStack.top()->functionMods.last().snips().last().addTemplateInstance(ti);
+ case ParserState::ArgumentTargetToNativeConversion: {
+ top->conversionCodeSnips.last().language = TypeSystem::NativeCode;
+ auto &lastArgMod = m_contextStack.top()->functionMods.last().argument_mods().last();
+ lastArgMod.conversionRules().append(top->conversionCodeSnips.constLast());
}
break;
default:
- break; // nada
+ break;
}
+ top->conversionCodeSnips.clear();
break;
+
+ case StackElement::EnumTypeEntry:
+ m_currentEnum = nullptr;
+ break;
+ case StackElement::Template:
+ m_context->db->addTemplate(m_templateEntry);
+ m_templateEntry = nullptr;
+ break;
+ case StackElement::InsertTemplate:
+ if (auto *snip = injectCodeTarget(1))
+ snip->addTemplateInstance(m_templateInstance);
+ m_templateInstance.reset();
+ break;
+
+ case StackElement::ModifyArgument:
+ purgeEmptyCodeSnips(&top->functionMods.last().argument_mods().last().conversionRules());
+ break;
+
default:
break;
}
- switch (m_current->type) {
- case StackElement::Root:
- case StackElement::NamespaceTypeEntry:
- case StackElement::InterfaceTypeEntry:
- case StackElement::ObjectTypeEntry:
- case StackElement::ValueTypeEntry:
- case StackElement::PrimitiveTypeEntry:
- case StackElement::TypedefTypeEntry:
- case StackElement::ContainerTypeEntry:
- delete m_contextStack.pop();
+ if (isTypeEntry(element) || element == StackElement::Root)
+ m_contextStack.pop();
+
+ return true;
+}
+
+ParserState TypeSystemParser::parserState(qsizetype offset) const
+{
+ const auto stackSize = m_stack.size() - offset;
+ if (stackSize <= 0 || m_contextStack.isEmpty())
+ return ParserState::None;
+
+ const auto last = stackSize - 1;
+
+ switch (m_stack.at(last)) {
+ // Primitive entry with conversion rule
+ case StackElement::NativeToTarget: // <conversion-rule><native-to-target>
+ if (stackSize > 2 && m_stack.at(last - 2) == StackElement::ModifyArgument)
+ return ParserState::ArgumentNativeToTargetConversion;
+ return ParserState::PrimitiveTypeNativeToTargetConversion;
+
+ case StackElement::AddConversion: // <conversion-rule><target-to-native><add-conversion>
+ if (stackSize > 3 && m_stack.at(last - 3) == StackElement::ModifyArgument)
+ return ParserState::ArgumentTargetToNativeConversion;
+ return ParserState::PrimitiveTypeTargetToNativeConversion;
+
+ case StackElement::ConversionRule:
+ if (stackSize > 1 && m_stack.at(last - 1) == StackElement::ModifyArgument)
+ return ParserState::ArgumentConversion;
break;
+
+ case StackElement::InjectCode:
+ switch (m_stack.value(last - 1, StackElement::None)) {
+ case StackElement::Root:
+ return ParserState::TypeSystemCodeInjection;
+ case StackElement::ModifyFunction:
+ case StackElement::AddFunction:
+ return ParserState::FunctionCodeInjection;
+ case StackElement::NamespaceTypeEntry:
+ case StackElement::ObjectTypeEntry:
+ case StackElement::ValueTypeEntry:
+ case StackElement::InterfaceTypeEntry:
+ return ParserState::TypeEntryCodeInjection;
+ default:
+ break;
+ }
+ break;
+
+ case StackElement::Template:
+ return ParserState::Template;
+
default:
break;
}
- StackElement *child = m_current;
- m_current = m_current->parent;
- delete(child);
+ return ParserState::None;
+}
- return true;
+// Return where to add injected code depending on elements.
+CodeSnipAbstract *TypeSystemParser::injectCodeTarget(qsizetype offset) const
+{
+ const auto state = parserState(offset);
+ if (state == ParserState::None)
+ return nullptr;
+
+ const auto &top = m_contextStack.top();
+ switch (state) {
+ case ParserState::PrimitiveTypeNativeToTargetConversion:
+ case ParserState::PrimitiveTypeTargetToNativeConversion:
+ case ParserState::ArgumentNativeToTargetConversion:
+ case ParserState::ArgumentTargetToNativeConversion:
+ return &top->conversionCodeSnips.last();
+ case ParserState::ArgumentConversion:
+ return &top->functionMods.last().argument_mods().last().conversionRules().last();
+ case ParserState::FunctionCodeInjection: {
+ auto &funcMod = top->functionMods.last();
+ funcMod.setModifierFlag(FunctionModification::CodeInjection);
+ return &funcMod.snips().last();
+ }
+ case ParserState::TypeEntryCodeInjection:
+ Q_ASSERT(top->entry->isComplex());
+ return &std::static_pointer_cast<ComplexTypeEntry>(top->entry)->codeSnips().last();
+ case ParserState::TypeSystemCodeInjection:
+ Q_ASSERT(top->entry->isTypeSystem());
+ return &std::static_pointer_cast<TypeSystemTypeEntry>(top->entry)->codeSnips().last();
+ case ParserState::Template:
+ return m_templateEntry.get();
+ default:
+ break;
+ }
+
+ return nullptr;
}
template <class String> // QString/QStringRef
bool TypeSystemParser::characters(const String &ch)
{
- if (m_currentDroppedEntry || m_ignoreDepth)
- return true;
-
- if (m_current->type == StackElement::Template) {
- m_current->value.templateEntry->addCode(ch);
+ const auto stackSize = m_stack.size();
+ if (m_currentDroppedEntryDepth != 0 || m_ignoreDepth != 0
+ || stackSize == 0 || m_stack.top() == StackElement::Unimplemented) {
return true;
}
- if (m_current->type == StackElement::CustomMetaConstructor || m_current->type == StackElement::CustomMetaDestructor) {
- m_current->value.customFunction->addCode(ch);
- return true;
- }
+ const StackElement type = m_stack.top();
- if (m_current->type == StackElement::ConversionRule
- && m_current->parent->type == StackElement::ModifyArgument) {
- m_contextStack.top()->functionMods.last().argument_mods().last().conversionRules().last().addCode(ch);
+ if (type == StackElement::Template) {
+ m_templateEntry->addCode(ch);
return true;
}
- if (m_current->type == StackElement::NativeToTarget || m_current->type == StackElement::AddConversion) {
- m_contextStack.top()->codeSnips.last().addCode(ch);
- return true;
+ if (m_contextStack.isEmpty()) {
+ m_error = msgNoRootTypeSystemEntry();
+ return false;
}
- if (m_current->parent) {
- if ((m_current->type & StackElement::CodeSnipMask)) {
- CodeSnipList snips;
- switch (m_current->parent->type) {
- case StackElement::Root:
- snips = m_current->parent->entry->codeSnips();
- snips.last().addCode(ch);
- m_current->parent->entry->setCodeSnips(snips);
- break;
- case StackElement::ModifyFunction:
- case StackElement::AddFunction:
- m_contextStack.top()->functionMods.last().snips().last().addCode(ch);
- m_contextStack.top()->functionMods.last().setModifierFlag(FunctionModification::CodeInjection);
- break;
- case StackElement::NamespaceTypeEntry:
- case StackElement::ObjectTypeEntry:
- case StackElement::ValueTypeEntry:
- case StackElement::InterfaceTypeEntry:
- m_contextStack.top()->codeSnips.last().addCode(ch);
- break;
- default:
- Q_ASSERT(false);
- }
- return true;
- }
+ if (auto *snip = injectCodeTarget()) {
+ snip->addCode(ch);
+ return true;
}
- if (m_current->type & StackElement::DocumentationMask)
- m_contextStack.top()->docModifications.last().setCode(ch);
+ if (isDocumentation(type)) {
+ const bool isAddedFunction = m_stack.value(m_stack.size() - 2, StackElement::None)
+ == StackElement::AddFunction;
+ const auto &top = m_contextStack.top();
+ auto &docModifications = isAddedFunction
+ ? top->addedFunctions.last()->docModifications()
+ : top->docModifications;
+ docModifications.last().setCode(ch);
+ }
return true;
}
bool TypeSystemParser::importFileElement(const QXmlStreamAttributes &atts)
{
- const QString fileName = atts.value(nameAttribute()).toString();
+ const QString fileName = atts.value(nameAttribute).toString();
if (fileName.isEmpty()) {
- m_error = QLatin1String("Required attribute 'name' missing for include-file tag.");
+ m_error = u"Required attribute 'name' missing for include-file tag."_s;
return false;
}
QFile file(fileName);
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
- file.setFileName(QLatin1String(":/trolltech/generator/") + fileName);
+ file.setFileName(u":/trolltech/generator/"_s + fileName);
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
m_error = msgCannotOpenForReading(file);
return false;
}
}
- const auto quoteFrom = atts.value(quoteAfterLineAttribute());
+ const auto quoteFrom = atts.value(quoteAfterLineAttribute);
bool foundFromOk = quoteFrom.isEmpty();
bool from = quoteFrom.isEmpty();
- const auto quoteTo = atts.value(quoteBeforeLineAttribute());
+ const auto quoteTo = atts.value(quoteBeforeLineAttribute);
bool foundToOk = quoteTo.isEmpty();
bool to = true;
@@ -1065,69 +1152,67 @@ bool TypeSystemParser::importFileElement(const QXmlStreamAttributes &atts)
break;
}
if (from && to)
- characters(line + QLatin1Char('\n'));
+ characters(line + u'\n');
if (!from && line.contains(quoteFrom)) {
from = true;
foundFromOk = true;
}
}
if (!foundFromOk || !foundToOk) {
- QString fromError = QStringLiteral("Could not find quote-after-line='%1' in file '%2'.")
- .arg(quoteFrom.toString(), fileName);
- QString toError = QStringLiteral("Could not find quote-before-line='%1' in file '%2'.")
- .arg(quoteTo.toString(), fileName);
+ QString fromError = QString::fromLatin1("Could not find quote-after-line='%1' in file '%2'.")
+ .arg(quoteFrom.toString(), fileName);
+ QString toError = QString::fromLatin1("Could not find quote-before-line='%1' in file '%2'.")
+ .arg(quoteTo.toString(), fileName);
if (!foundToOk)
m_error = toError;
if (!foundFromOk)
m_error = fromError;
if (!foundFromOk && !foundToOk)
- m_error = fromError + QLatin1Char(' ') + toError;
+ m_error = fromError + u' ' + toError;
return false;
}
return true;
}
-static bool convertBoolean(QStringView value, const QString &attributeName, bool defaultValue)
+static bool convertBoolean(QStringView value, QAnyStringView attributeName, bool defaultValue)
{
- if (value.compare(trueAttributeValue(), Qt::CaseInsensitive) == 0
- || value.compare(yesAttributeValue(), Qt::CaseInsensitive) == 0) {
+ if (value.compare(trueAttributeValue, Qt::CaseInsensitive) == 0
+ || value.compare(yesAttributeValue, Qt::CaseInsensitive) == 0) {
return true;
}
- if (value.compare(falseAttributeValue(), Qt::CaseInsensitive) == 0
- || value.compare(noAttributeValue(), Qt::CaseInsensitive) == 0) {
+ if (value.compare(falseAttributeValue, Qt::CaseInsensitive) == 0
+ || value.compare(noAttributeValue, Qt::CaseInsensitive) == 0) {
return false;
}
- const QString warn = QStringLiteral("Boolean value '%1' not supported in attribute '%2'. Use 'yes' or 'no'. Defaulting to '%3'.")
- .arg(value)
- .arg(attributeName,
- defaultValue ? yesAttributeValue() : noAttributeValue());
-
- qCWarning(lcShiboken).noquote().nospace() << warn;
+ qCWarning(lcShiboken).noquote().nospace() << "Boolean value '" << value
+ << "' not supported in attribute '" << attributeName
+ << "'. Use 'yes' or 'no'. Defaulting to '"
+ << (defaultValue ? yesAttributeValue : noAttributeValue) << "'.";
return defaultValue;
}
static bool convertRemovalAttribute(QStringView value)
{
return value == u"all" // Legacy
- || convertBoolean(value, removeAttribute(), false);
+ || convertBoolean(value, removeAttribute, false);
}
// Check whether an entry should be dropped, allowing for dropping the module
// name (match 'Class' and 'Module.Class').
static bool shouldDropTypeEntry(const TypeDatabase *db,
- const StackElement *element,
+ const TypeSystemParser::ContextStack &stack ,
QString name)
{
- for (auto e = element->parent; e ; e = e->parent) {
- if (e->entry) {
- if (e->entry->type() == TypeEntry::TypeSystemType) {
+ for (auto i = stack.size() - 1; i >= 0; --i) {
+ if (auto entry = stack.at(i)->entry) {
+ if (entry->type() == TypeEntry::TypeSystemType) {
if (db->shouldDropTypeEntry(name)) // Unqualified
return true;
}
- name.prepend(QLatin1Char('.'));
- name.prepend(e->entry->name());
+ name.prepend(u'.');
+ name.prepend(entry->name());
}
}
return db->shouldDropTypeEntry(name);
@@ -1136,10 +1221,10 @@ static bool shouldDropTypeEntry(const TypeDatabase *db,
// Returns empty string if there's no error.
static QString checkSignatureError(const QString& signature, const QString& tag)
{
- QString funcName = signature.left(signature.indexOf(QLatin1Char('('))).trimmed();
- static const QRegularExpression whiteSpace(QStringLiteral("\\s"));
+ QString funcName = signature.left(signature.indexOf(u'(')).trimmed();
+ static const QRegularExpression whiteSpace("\\s"_L1);
Q_ASSERT(whiteSpace.isValid());
- if (!funcName.startsWith(QLatin1String("operator ")) && funcName.contains(whiteSpace)) {
+ if (!funcName.startsWith(u"operator ") && funcName.contains(whiteSpace)) {
return QString::fromLatin1("Error in <%1> tag signature attribute '%2'.\n"
"White spaces aren't allowed in function names, "
"and return types should not be part of the signature.")
@@ -1148,20 +1233,24 @@ static QString checkSignatureError(const QString& signature, const QString& tag)
return QString();
}
-inline const TypeEntry *TypeSystemParser::currentParentTypeEntry() const
+inline TypeEntryCPtr TypeSystemParser::currentParentTypeEntry() const
{
- return m_current ? m_current->entry : nullptr;
+ const auto size = m_contextStack.size();
+ return size > 1 ? m_contextStack.at(size - 2)->entry : nullptr;
}
bool TypeSystemParser::checkRootElement()
{
- const bool ok = currentParentTypeEntry() != nullptr;
- if (!ok)
- m_error = msgNoRootTypeSystemEntry();
- return ok;
+ for (auto i = m_contextStack.size() - 1; i >= 0; --i) {
+ auto e = m_contextStack.at(i)->entry;
+ if (e && e->isTypeSystem())
+ return true;
+ }
+ m_error = msgNoRootTypeSystemEntry();
+ return false;
}
-static TypeEntry *findViewedType(const QString &name)
+static TypeEntryPtr findViewedType(const QString &name)
{
const auto range = TypeDatabase::instance()->entries().equal_range(name);
for (auto i = range.first; i != range.second; ++i) {
@@ -1178,20 +1267,21 @@ static TypeEntry *findViewedType(const QString &name)
return nullptr;
}
-bool TypeSystemParser::applyCommonAttributes(const ConditionalStreamReader &reader, TypeEntry *type,
+bool TypeSystemParser::applyCommonAttributes(const ConditionalStreamReader &reader,
+ const TypeEntryPtr &type,
QXmlStreamAttributes *attributes)
{
type->setSourceLocation(SourceLocation(m_currentFile,
reader.lineNumber()));
type->setCodeGeneration(m_generate);
- for (int i = attributes->size() - 1; i >= 0; --i) {
+ for (auto i = attributes->size() - 1; i >= 0; --i) {
const auto name = attributes->at(i).qualifiedName();
if (name == u"revision") {
type->setRevision(attributes->takeAt(i).value().toInt());
} else if (name == u"view-on") {
const QString name = attributes->takeAt(i).value().toString();
- TypeEntry *views = findViewedType(name);
- if (views == nullptr) {
+ TypeEntryPtr views = findViewedType(name);
+ if (!views) {
m_error = msgCannotFindView(name, type->name());
return false;
}
@@ -1201,61 +1291,62 @@ bool TypeSystemParser::applyCommonAttributes(const ConditionalStreamReader &read
return true;
}
-CustomTypeEntry *TypeSystemParser::parseCustomTypeEntry(const ConditionalStreamReader &,
+CustomTypeEntryPtr TypeSystemParser::parseCustomTypeEntry(const ConditionalStreamReader &,
const QString &name,
const QVersionNumber &since,
QXmlStreamAttributes *attributes)
{
if (!checkRootElement())
return nullptr;
- auto *result = new CustomTypeEntry(name, since, m_current->entry);
- for (int i = attributes->size() - 1; i >= 0; --i) {
+ auto result = std::make_shared<CustomTypeEntry>(name, since, m_contextStack.top()->entry);
+ for (auto i = attributes->size() - 1; i >= 0; --i) {
const auto name = attributes->at(i).qualifiedName();
- if (name == checkFunctionAttribute())
+ if (name == checkFunctionAttribute)
result->setCheckFunction(attributes->takeAt(i).value().toString());
}
return result;
}
-FlagsTypeEntry *
+FlagsTypeEntryPtr
TypeSystemParser::parseFlagsEntry(const ConditionalStreamReader &reader,
- EnumTypeEntry *enumEntry, QString flagName,
+ const EnumTypeEntryPtr &enumEntry, QString flagName,
const QVersionNumber &since,
QXmlStreamAttributes *attributes)
{
if (!checkRootElement())
return nullptr;
- auto ftype = new FlagsTypeEntry(QLatin1String("QFlags<") + enumEntry->name() + QLatin1Char('>'),
- since,
- currentParentTypeEntry()->typeSystemTypeEntry());
+ auto ftype = std::make_shared<FlagsTypeEntry>(u"QFlags<"_s + enumEntry->name() + u'>',
+ since,
+ typeSystemTypeEntry(currentParentTypeEntry()));
ftype->setOriginator(enumEntry);
ftype->setTargetLangPackage(enumEntry->targetLangPackage());
// Try toenumEntry get the guess the qualified flag name
- if (!flagName.contains(colonColon())) {
+ if (!flagName.contains(u"::"_s)) {
auto eq = enumEntry->qualifier();
if (!eq.isEmpty())
- flagName.prepend(eq + colonColon());
+ flagName.prepend(eq + u"::"_s);
}
ftype->setOriginalName(flagName);
if (!applyCommonAttributes(reader, ftype, attributes))
return nullptr;
- QStringList lst = flagName.split(colonColon());
- const QString targetLangFlagName = QStringList(lst.mid(0, lst.size() - 1)).join(QLatin1Char('.'));
+ QStringList lst = flagName.split(u"::"_s);
+ const QString name = lst.takeLast();
+ const QString targetLangFlagName = lst.join(u'.');
const QString &targetLangQualifier = enumEntry->targetLangQualifier();
if (targetLangFlagName != targetLangQualifier) {
- qCWarning(lcShiboken).noquote().nospace()
- << QStringLiteral("enum %1 and flags %2 (%3) differ in qualifiers")
- .arg(targetLangQualifier, lst.constFirst(), targetLangFlagName);
+ qCWarning(lcShiboken, "enum %s and flags %s (%s) differ in qualifiers",
+ qPrintable(targetLangQualifier), qPrintable(lst.value(0)),
+ qPrintable(targetLangFlagName));
}
- ftype->setFlagsName(lst.constLast());
+ ftype->setFlagsName(name);
enumEntry->setFlags(ftype);
- m_database->addFlagsType(ftype);
- m_database->addType(ftype);
+ m_context->db->addFlagsType(ftype);
+ m_context->db->addType(ftype);
const int revisionIndex =
indexOfAttribute(*attributes, u"flags-revision");
@@ -1265,160 +1356,259 @@ FlagsTypeEntry *
return ftype;
}
-SmartPointerTypeEntry *
+SmartPointerTypeEntryPtr
TypeSystemParser::parseSmartPointerEntry(const ConditionalStreamReader &reader,
const QString &name, const QVersionNumber &since,
QXmlStreamAttributes *attributes)
{
if (!checkRootElement())
return nullptr;
- QString smartPointerType;
+ TypeSystem::SmartPointerType smartPointerType = TypeSystem::SmartPointerType::Shared;
QString getter;
QString refCountMethodName;
+ QString valueCheckMethod;
+ QString nullCheckMethod;
+ QString resetMethod;
QString instantiations;
- for (int i = attributes->size() - 1; i >= 0; --i) {
+ for (auto i = attributes->size() - 1; i >= 0; --i) {
const auto name = attributes->at(i).qualifiedName();
- if (name == QLatin1String("type")) {
- smartPointerType = attributes->takeAt(i).value().toString();
- } else if (name == QLatin1String("getter")) {
+ if (name == u"type") {
+ const auto attribute = attributes->takeAt(i);
+ const auto typeOpt = smartPointerTypeFromAttribute(attribute.value());
+ if (!typeOpt.has_value()) {
+ m_error = msgInvalidAttributeValue(attribute);
+ return nullptr;
+ }
+ smartPointerType = typeOpt.value();
+ } else if (name == u"getter") {
getter = attributes->takeAt(i).value().toString();
- } else if (name == QLatin1String("ref-count-method")) {
+ } else if (name == u"ref-count-method") {
refCountMethodName = attributes->takeAt(i).value().toString();
- } else if (name == QLatin1String("instantiations")) {
+ } else if (name == u"instantiations") {
instantiations = attributes->takeAt(i).value().toString();
+ } else if (name == u"value-check-method") {
+ valueCheckMethod = attributes->takeAt(i).value().toString();
+ } else if (name == u"null-check-method") {
+ nullCheckMethod = attributes->takeAt(i).value().toString();
+ } else if (name == u"reset-method") {
+ resetMethod = attributes->takeAt(i).value().toString();
}
}
- if (smartPointerType.isEmpty()) {
- m_error = QLatin1String("No type specified for the smart pointer. Currently supported types: 'shared',");
- return nullptr;
- }
- if (smartPointerType != QLatin1String("shared")) {
- m_error = QLatin1String("Currently only the 'shared' type is supported.");
- return nullptr;
- }
-
if (getter.isEmpty()) {
- m_error = QLatin1String("No function getter name specified for getting the raw pointer held by the smart pointer.");
+ m_error = u"No function getter name specified for getting the raw pointer held by the smart pointer."_s;
return nullptr;
}
- QString signature = getter + QLatin1String("()");
+ QString signature = getter + u"()"_s;
signature = TypeDatabase::normalizedSignature(signature);
if (signature.isEmpty()) {
- m_error = QLatin1String("No signature for the smart pointer getter found.");
+ m_error = u"No signature for the smart pointer getter found."_s;
return nullptr;
}
QString errorString = checkSignatureError(signature,
- QLatin1String("smart-pointer-type"));
+ u"smart-pointer-type"_s);
if (!errorString.isEmpty()) {
m_error = errorString;
return nullptr;
}
- auto *type = new SmartPointerTypeEntry(name, getter, smartPointerType,
- refCountMethodName, since, currentParentTypeEntry());
+ if (smartPointerType == TypeSystem::SmartPointerType::Unique && resetMethod.isEmpty()) {
+ m_error = u"Unique pointers require a reset() method."_s;
+ return nullptr;
+ }
+
+ auto type = std::make_shared<SmartPointerTypeEntry>(name, getter, smartPointerType,
+ refCountMethodName, since,
+ currentParentTypeEntry());
if (!applyCommonAttributes(reader, type, attributes))
return nullptr;
- m_smartPointerInstantiations.insert(type, instantiations);
+ applyComplexTypeAttributes(reader, type, attributes);
+ type->setNullCheckMethod(nullCheckMethod);
+ type->setValueCheckMethod(valueCheckMethod);
+ type->setResetMethod(resetMethod);
+ m_context->smartPointerInstantiations.insert(type, instantiations);
return type;
}
-PrimitiveTypeEntry *
+PrimitiveTypeEntryPtr
TypeSystemParser::parsePrimitiveTypeEntry(const ConditionalStreamReader &reader,
const QString &name, const QVersionNumber &since,
QXmlStreamAttributes *attributes)
{
if (!checkRootElement())
return nullptr;
- auto *type = new PrimitiveTypeEntry(name, since, currentParentTypeEntry());
+ auto type = std::make_shared<PrimitiveTypeEntry>(name, since, currentParentTypeEntry());
+ QString targetLangApiName;
if (!applyCommonAttributes(reader, type, attributes))
return nullptr;
- for (int i = attributes->size() - 1; i >= 0; --i) {
+ for (auto i = attributes->size() - 1; i >= 0; --i) {
const auto name = attributes->at(i).qualifiedName();
- if (name == targetLangNameAttribute()) {
+ if (name == targetLangNameAttribute) {
type->setTargetLangName(attributes->takeAt(i).value().toString());
- } else if (name == QLatin1String("target-lang-api-name")) {
- type->setTargetLangApiName(attributes->takeAt(i).value().toString());
- } else if (name == preferredConversionAttribute()) {
+ } else if (name == u"target-lang-api-name") {
+ targetLangApiName = attributes->takeAt(i).value().toString();
+ } else if (name == preferredConversionAttribute) {
qCWarning(lcShiboken, "%s",
qPrintable(msgUnimplementedAttributeWarning(reader, name)));
- } else if (name == preferredTargetLangTypeAttribute()) {
+ } else if (name == preferredTargetLangTypeAttribute) {
const bool v = convertBoolean(attributes->takeAt(i).value(),
- preferredTargetLangTypeAttribute(), true);
+ preferredTargetLangTypeAttribute, true);
type->setPreferredTargetLangType(v);
- } else if (name == QLatin1String("default-constructor")) {
+ } else if (name == u"default-constructor") {
type->setDefaultConstructor(attributes->takeAt(i).value().toString());
}
}
- if (type->targetLangApiName().isEmpty())
- type->setTargetLangApiName(type->name());
+ if (!targetLangApiName.isEmpty()) {
+ auto e = m_context->db->findType(targetLangApiName);
+ if (!e || !e->isCustom()) {
+ m_error = msgInvalidTargetLanguageApiName(targetLangApiName);
+ return nullptr;
+ }
+ type->setTargetLangApiType(std::static_pointer_cast<CustomTypeEntry>(e));
+ }
type->setTargetLangPackage(m_defaultPackage);
return type;
}
-ContainerTypeEntry *
+// "int:QList_int;QString:QList_QString"
+bool TypeSystemParser::parseOpaqueContainers(QStringView s, OpaqueContainers *result)
+{
+ const auto entries = s.split(u';');
+ for (const auto &entry : entries) {
+ const auto values = entry.split(u':');
+ if (values.size() != 2) {
+ m_error = u"Error parsing the opaque container attribute: \""_s
+ + s.toString() + u"\"."_s;
+ return false;
+ }
+ OpaqueContainer oc;
+ oc.name = values.at(1).trimmed().toString();
+ const auto instantiations = values.at(0).split(u',', Qt::SkipEmptyParts);
+ for (const auto &instantiationV : instantiations) {
+ QString instantiation = instantiationV.trimmed().toString();
+ // Fix to match AbstractMetaType::signature() which is used for matching
+ // "Foo*" -> "Foo *"
+ const auto asteriskPos = instantiation.indexOf(u'*');
+ if (asteriskPos > 0 && !instantiation.at(asteriskPos - 1).isSpace())
+ instantiation.insert(asteriskPos, u' ');
+ oc.instantiations.append(instantiation);
+ }
+ result->append(oc);
+ }
+ return true;
+}
+
+ContainerTypeEntryPtr
TypeSystemParser::parseContainerTypeEntry(const ConditionalStreamReader &reader,
const QString &name, const QVersionNumber &since,
QXmlStreamAttributes *attributes)
{
if (!checkRootElement())
return nullptr;
- const int typeIndex = indexOfAttribute(*attributes, u"type");
+ const auto typeIndex = indexOfAttribute(*attributes, u"type");
if (typeIndex == -1) {
- m_error = QLatin1String("no 'type' attribute specified");
+ m_error = u"no 'type' attribute specified"_s;
return nullptr;
}
const auto typeName = attributes->at(typeIndex).value();
const auto containerTypeOpt = containerTypeFromAttribute(typeName);
if (!containerTypeOpt.has_value()) {
- m_error = QLatin1String("there is no container of type ") + typeName.toString();
+ m_error = u"there is no container of type "_s + typeName.toString();
return nullptr;
}
attributes->removeAt(typeIndex);
- auto *type = new ContainerTypeEntry(name, containerTypeOpt.value(),
- since, currentParentTypeEntry());
+ auto type = std::make_shared<ContainerTypeEntry>(name, containerTypeOpt.value(),
+ since, currentParentTypeEntry());
if (!applyCommonAttributes(reader, type, attributes))
return nullptr;
+ applyComplexTypeAttributes(reader, type, attributes);
+
+ for (auto i = attributes->size() - 1; i >= 0; --i) {
+ const auto name = attributes->at(i).qualifiedName();
+ if (name == opaqueContainerAttribute) {
+ const auto attribute = attributes->takeAt(i);
+ OpaqueContainers oc;
+ if (!parseOpaqueContainers(attribute.value(), &oc))
+ return nullptr;
+ type->appendOpaqueContainers(oc);
+ }
+ }
+
return type;
}
-EnumTypeEntry *
+bool TypeSystemParser::parseOpaqueContainerElement(QXmlStreamAttributes *attributes)
+{
+ QString containerName;
+ OpaqueContainers oc;
+ for (auto i = attributes->size() - 1; i >= 0; --i) {
+ const auto name = attributes->at(i).qualifiedName();
+ if (name == nameAttribute) {
+ containerName = attributes->takeAt(i).value().toString();
+ } else if (name == opaqueContainerAttribute) {
+ const auto attribute = attributes->takeAt(i);
+ if (!parseOpaqueContainers(attribute.value(), &oc))
+ return false;
+ }
+ }
+ if (containerName.isEmpty()) {
+ m_error = msgMissingAttribute(nameAttribute);
+ return false;
+ }
+ m_context->opaqueContainerHash[containerName].append(oc);
+ return true;
+}
+
+EnumTypeEntryPtr
TypeSystemParser::parseEnumTypeEntry(const ConditionalStreamReader &reader,
const QString &name, const QVersionNumber &since,
QXmlStreamAttributes *attributes)
{
if (!checkRootElement())
return nullptr;
- auto *entry = new EnumTypeEntry(name, since, currentParentTypeEntry());
+ auto entry = std::make_shared<EnumTypeEntry>(name, since, currentParentTypeEntry());
applyCommonAttributes(reader, entry, attributes);
entry->setTargetLangPackage(m_defaultPackage);
QString flagNames;
- for (int i = attributes->size() - 1; i >= 0; --i) {
+ for (auto i = attributes->size() - 1; i >= 0; --i) {
const auto name = attributes->at(i).qualifiedName();
- if (name == QLatin1String("upper-bound")) {
+ if (name == u"upper-bound") {
qCWarning(lcShiboken, "%s",
qPrintable(msgUnimplementedAttributeWarning(reader, name)));
- } else if (name == QLatin1String("lower-bound")) {
+ } else if (name == u"lower-bound") {
qCWarning(lcShiboken, "%s",
qPrintable(msgUnimplementedAttributeWarning(reader, name)));
- } else if (name == forceIntegerAttribute()) {
+ } else if (name == docFileAttribute) {
+ entry->setDocFile(attributes->takeAt(i).value().toString());
+ } else if (name == forceIntegerAttribute) {
qCWarning(lcShiboken, "%s",
qPrintable(msgUnimplementedAttributeWarning(reader, name)));
- } else if (name == extensibleAttribute()) {
+ } else if (name == pythonEnumTypeAttribute) {
+ const auto attribute = attributes->takeAt(i);
+ const auto typeOpt = pythonEnumTypeFromAttribute(attribute.value());
+ if (typeOpt.has_value()) {
+ entry->setPythonEnumType(typeOpt.value());
+ } else {
+ qCWarning(lcShiboken, "%s",
+ qPrintable(msgInvalidAttributeValue(attribute)));
+ }
+ } else if (name == cppEnumTypeAttribute) {
+ entry->setCppType(attributes->takeAt(i).value().toString());
+ } else if (name == extensibleAttribute) {
qCWarning(lcShiboken, "%s",
qPrintable(msgUnimplementedAttributeWarning(reader, name)));
- } else if (name == flagsAttribute()) {
+ } else if (name == flagsAttribute) {
flagNames = attributes->takeAt(i).value().toString();
}
}
// put in the flags parallel...
if (!flagNames.isEmpty()) {
- const QStringList &flagNameList = flagNames.split(QLatin1Char(','));
+ const QStringList &flagNameList = flagNames.split(u',');
for (const QString &flagName : flagNameList)
parseFlagsEntry(reader, entry, flagName.trimmed(), since, attributes);
}
@@ -1426,19 +1616,19 @@ EnumTypeEntry *
}
-NamespaceTypeEntry *
+NamespaceTypeEntryPtr
TypeSystemParser::parseNamespaceTypeEntry(const ConditionalStreamReader &reader,
const QString &name, const QVersionNumber &since,
QXmlStreamAttributes *attributes)
{
if (!checkRootElement())
return nullptr;
- std::unique_ptr<NamespaceTypeEntry> result(new NamespaceTypeEntry(name, since, currentParentTypeEntry()));
+ auto result = std::make_shared<NamespaceTypeEntry>(name, since, currentParentTypeEntry());
auto visibility = TypeSystem::Visibility::Unspecified;
- applyCommonAttributes(reader, result.get(), attributes);
- for (int i = attributes->size() - 1; i >= 0; --i) {
+ applyCommonAttributes(reader, result, attributes);
+ for (auto i = attributes->size() - 1; i >= 0; --i) {
const auto attributeName = attributes->at(i).qualifiedName();
- if (attributeName == QLatin1String("files")) {
+ if (attributeName == u"files") {
const QString pattern = attributes->takeAt(i).value().toString();
QRegularExpression re(pattern);
if (!re.isValid()) {
@@ -1446,11 +1636,11 @@ NamespaceTypeEntry *
return nullptr;
}
result->setFilePattern(re);
- } else if (attributeName == QLatin1String("extends")) {
+ } else if (attributeName == u"extends") {
const auto extendsPackageName = attributes->at(i).value();
auto allEntries = TypeDatabase::instance()->findNamespaceTypes(name);
auto extendsIt = std::find_if(allEntries.cbegin(), allEntries.cend(),
- [extendsPackageName] (const NamespaceTypeEntry *e) {
+ [extendsPackageName] (const NamespaceTypeEntryCPtr &e) {
return e->targetLangPackage() == extendsPackageName;
});
if (extendsIt == allEntries.cend()) {
@@ -1459,7 +1649,7 @@ NamespaceTypeEntry *
}
result->setExtends(*extendsIt);
attributes->removeAt(i);
- } else if (attributeName == visibleAttribute()) {
+ } else if (attributeName == visibleAttribute) {
const auto attribute = attributes->takeAt(i);
const auto visibilityOpt = visibilityFromAttribute(attribute.value());
if (!visibilityOpt.has_value()) {
@@ -1467,36 +1657,39 @@ NamespaceTypeEntry *
return nullptr;
}
visibility = visibilityOpt.value();
- } else if (attributeName == generateAttribute()) {
- if (!convertBoolean(attributes->takeAt(i).value(), generateAttribute(), true))
+ } else if (attributeName == generateAttribute) {
+ if (!convertBoolean(attributes->takeAt(i).value(), generateAttribute, true))
visibility = TypeSystem::Visibility::Invisible;
- } else if (attributeName == generateUsingAttribute()) {
- result->setGenerateUsing(convertBoolean(attributes->takeAt(i).value(), generateUsingAttribute(), true));
+ } else if (attributeName == generateUsingAttribute) {
+ result->setGenerateUsing(convertBoolean(attributes->takeAt(i).value(),
+ generateUsingAttribute, true));
}
}
if (visibility != TypeSystem::Visibility::Unspecified)
result->setVisibility(visibility);
// Handle legacy "generate" before the common handling
- applyComplexTypeAttributes(reader, result.get(), attributes);
+ applyComplexTypeAttributes(reader, result, attributes);
if (result->extends() && !result->hasPattern()) {
m_error = msgExtendingNamespaceRequiresPattern(name);
- return nullptr;
+ return {};
}
- return result.release();
+ return result;
}
-ValueTypeEntry *
+ValueTypeEntryPtr
TypeSystemParser::parseValueTypeEntry(const ConditionalStreamReader &reader,
const QString &name, const QVersionNumber &since,
QXmlStreamAttributes *attributes)
{
if (!checkRootElement())
return nullptr;
- auto *typeEntry = new ValueTypeEntry(name, since, currentParentTypeEntry());
- applyCommonAttributes(reader, typeEntry, attributes);
+ auto typeEntry = std::make_shared<ValueTypeEntry>(name, since, currentParentTypeEntry());
+ if (!applyCommonAttributes(reader, typeEntry, attributes))
+ return nullptr;
+ applyComplexTypeAttributes(reader, typeEntry, attributes);
const int defaultCtIndex =
indexOfAttribute(*attributes, u"default-constructor");
if (defaultCtIndex != -1)
@@ -1504,7 +1697,7 @@ ValueTypeEntry *
return typeEntry;
}
-FunctionTypeEntry *
+FunctionTypeEntryPtr
TypeSystemParser::parseFunctionTypeEntry(const ConditionalStreamReader &reader,
const QString &name, const QVersionNumber &since,
QXmlStreamAttributes *attributes)
@@ -1512,75 +1705,84 @@ FunctionTypeEntry *
if (!checkRootElement())
return nullptr;
- QString signature;
- TypeSystem::SnakeCase snakeCase = TypeSystem::SnakeCase::Disabled;
+ FunctionModification mod;
+ const auto oldAttributesSize = attributes->size();
+ if (!parseModifyFunctionAttributes(attributes, &mod))
+ return nullptr;
+ const bool hasModification = attributes->size() < oldAttributesSize;
- for (int i = attributes->size() - 1; i >= 0; --i) {
+ QString originalSignature;
+ QString docFile;
+ for (auto i = attributes->size() - 1; i >= 0; --i) {
const auto name = attributes->at(i).qualifiedName();
- if (name == signatureAttribute()) {
- signature = TypeDatabase::normalizedSignature(attributes->takeAt(i).value().toString());
- } else if (name == snakeCaseAttribute()) {
- const auto attribute = attributes->takeAt(i);
- const auto snakeCaseOpt = snakeCaseFromAttribute(attribute.value());
- if (!snakeCaseOpt.has_value()) {
- m_error = msgInvalidAttributeValue(attribute);
- return nullptr;
- }
- snakeCase = snakeCaseOpt.value();
- }
+ if (name == signatureAttribute)
+ originalSignature = attributes->takeAt(i).value().toString().simplified();
+ else if (name == docFileAttribute)
+ docFile = attributes->takeAt(i).value().toString();
}
+ const QString signature = TypeDatabase::normalizedSignature(originalSignature);
if (signature.isEmpty()) {
- m_error = msgMissingAttribute(signatureAttribute());
+ m_error = msgMissingAttribute(signatureAttribute);
return nullptr;
}
- TypeEntry *existingType = m_database->findType(name);
+ if (hasModification) {
+ mod.setOriginalSignature(originalSignature);
+ mod.setSignature(signature);
+ m_contextStack.top()->functionMods << mod;
+ }
+
+ TypeEntryPtr existingType = m_context->db->findType(name);
if (!existingType) {
- auto *result = new FunctionTypeEntry(name, signature, since, currentParentTypeEntry());
- result->setSnakeCase(snakeCase);
+ auto result = std::make_shared<FunctionTypeEntry>(name, signature, since,
+ currentParentTypeEntry());
+ result->setTargetLangPackage(m_defaultPackage);
+ result->setDocFile(docFile);
applyCommonAttributes(reader, result, attributes);
return result;
}
if (existingType->type() != TypeEntry::FunctionType) {
- m_error = QStringLiteral("%1 expected to be a function, but isn't! Maybe it was already declared as a class or something else.")
- .arg(name);
+ m_error = name + " expected to be a function, but isn't! Maybe it was already declared as a class or something else."_L1;
return nullptr;
}
- auto *result = reinterpret_cast<FunctionTypeEntry *>(existingType);
+ auto result = std::static_pointer_cast<FunctionTypeEntry>(existingType);
result->addSignature(signature);
return result;
}
-TypedefEntry *
+TypedefEntryPtr
TypeSystemParser::parseTypedefEntry(const ConditionalStreamReader &reader,
- const QString &name,
+ const QString &name, StackElement topElement,
const QVersionNumber &since,
QXmlStreamAttributes *attributes)
{
if (!checkRootElement())
return nullptr;
- if (m_current && m_current->type != StackElement::Root
- && m_current->type != StackElement::NamespaceTypeEntry) {
- m_error = QLatin1String("typedef entries must be nested in namespaces or type system.");
+ if (topElement != StackElement::Root
+ && topElement != StackElement::NamespaceTypeEntry) {
+ m_error = u"typedef entries must be nested in namespaces or type system."_s;
return nullptr;
}
- const int sourceIndex = indexOfAttribute(*attributes, sourceAttribute());
+ const auto sourceIndex = indexOfAttribute(*attributes, sourceAttribute);
if (sourceIndex == -1) {
- m_error = msgMissingAttribute(sourceAttribute());
+ m_error = msgMissingAttribute(sourceAttribute);
return nullptr;
}
const QString sourceType = attributes->takeAt(sourceIndex).value().toString();
- auto result = new TypedefEntry(name, sourceType, since, currentParentTypeEntry());
- applyCommonAttributes(reader, result, attributes);
+ auto result = std::make_shared<TypedefEntry>(name, sourceType, since,
+ currentParentTypeEntry());
+ if (!applyCommonAttributes(reader, result, attributes))
+ return nullptr;
+ applyComplexTypeAttributes(reader, result, attributes);
return result;
}
void TypeSystemParser::applyComplexTypeAttributes(const ConditionalStreamReader &reader,
- ComplexTypeEntry *ctype,
+ const ComplexTypeEntryPtr &ctype,
QXmlStreamAttributes *attributes) const
{
bool generate = true;
@@ -1589,34 +1791,40 @@ void TypeSystemParser::applyComplexTypeAttributes(const ConditionalStreamReader
auto allowThread = m_allowThread;
QString package = m_defaultPackage;
- for (int i = attributes->size() - 1; i >= 0; --i) {
+ for (auto i = attributes->size() - 1; i >= 0; --i) {
const auto name = attributes->at(i).qualifiedName();
- if (name == streamAttribute()) {
- ctype->setStream(convertBoolean(attributes->takeAt(i).value(), streamAttribute(), false));
- } else if (name == privateAttribute()) {
+ if (name == streamAttribute) {
+ ctype->setStream(convertBoolean(attributes->takeAt(i).value(), streamAttribute, false));
+ } else if (name == privateAttribute) {
ctype->setPrivate(convertBoolean(attributes->takeAt(i).value(),
- privateAttribute(), false));
- } else if (name == generateAttribute()) {
- generate = convertBoolean(attributes->takeAt(i).value(), generateAttribute(), true);
- } else if (name ==packageAttribute()) {
+ privateAttribute, false));
+ } else if (name == generateAttribute) {
+ generate = convertBoolean(attributes->takeAt(i).value(), generateAttribute, true);
+ } else if (name ==packageAttribute) {
package = attributes->takeAt(i).value().toString();
- } else if (name == defaultSuperclassAttribute()) {
+ } else if (name == defaultSuperclassAttribute) {
ctype->setDefaultSuperclass(attributes->takeAt(i).value().toString());
- } else if (name == genericClassAttribute()) {
+ } else if (name == genericClassAttribute) {
qCWarning(lcShiboken, "%s",
qPrintable(msgUnimplementedAttributeWarning(reader, name)));
- const bool v = convertBoolean(attributes->takeAt(i).value(), genericClassAttribute(), false);
+ const bool v = convertBoolean(attributes->takeAt(i).value(),
+ genericClassAttribute, false);
ctype->setGenericClass(v);
- } else if (name == targetLangNameAttribute()) {
+ } else if (name == targetLangNameAttribute) {
ctype->setTargetLangName(attributes->takeAt(i).value().toString());
- } else if (name == QLatin1String("polymorphic-base")) {
- ctype->setPolymorphicIdValue(attributes->takeAt(i).value().toString());
- } else if (name == QLatin1String("polymorphic-id-expression")) {
+ } else if (name == polymorphicBaseAttribute) {
+ const bool v = convertBoolean(attributes->takeAt(i).value(),
+ polymorphicBaseAttribute, false);
+ ctype->setIsPolymorphicBase(v);
+ } else if (name == u"polymorphic-name-function") {
+ ctype->setPolymorphicNameFunction(attributes->takeAt(i).value().toString());
+ } else if (name == u"polymorphic-id-expression") {
ctype->setPolymorphicIdValue(attributes->takeAt(i).value().toString());
- } else if (name == copyableAttribute()) {
- const bool v = convertBoolean(attributes->takeAt(i).value(), copyableAttribute(), false);
+ } else if (name == copyableAttribute) {
+ const bool v = convertBoolean(attributes->takeAt(i).value(),
+ copyableAttribute, false);
ctype->setCopyable(v ? ComplexTypeEntry::CopyableSet : ComplexTypeEntry::NonCopyableSet);
- } else if (name == exceptionHandlingAttribute()) {
+ } else if (name == exceptionHandlingAttribute) {
const auto attribute = attributes->takeAt(i);
const auto exceptionOpt = exceptionHandlingFromAttribute(attribute.value());
if (exceptionOpt.has_value()) {
@@ -1625,7 +1833,7 @@ void TypeSystemParser::applyComplexTypeAttributes(const ConditionalStreamReader
qCWarning(lcShiboken, "%s",
qPrintable(msgInvalidAttributeValue(attribute)));
}
- } else if (name == allowThreadAttribute()) {
+ } else if (name == allowThreadAttribute) {
const auto attribute = attributes->takeAt(i);
const auto allowThreadOpt = allowThreadFromAttribute(attribute.value());
if (allowThreadOpt.has_value()) {
@@ -1634,26 +1842,39 @@ void TypeSystemParser::applyComplexTypeAttributes(const ConditionalStreamReader
qCWarning(lcShiboken, "%s",
qPrintable(msgInvalidAttributeValue(attribute)));
}
- } else if (name == QLatin1String("held-type")) {
+ } else if (name == u"held-type") {
qCWarning(lcShiboken, "%s",
qPrintable(msgUnimplementedAttributeWarning(reader, name)));
- } else if (name == QLatin1String("hash-function")) {
+ } else if (name == u"hash-function") {
ctype->setHashFunction(attributes->takeAt(i).value().toString());
- } else if (name == forceAbstractAttribute()) {
- if (convertBoolean(attributes->takeAt(i).value(), forceAbstractAttribute(), false))
+ } else if (name == forceAbstractAttribute) {
+ if (convertBoolean(attributes->takeAt(i).value(), forceAbstractAttribute, false))
ctype->setTypeFlags(ctype->typeFlags() | ComplexTypeEntry::ForceAbstract);
- } else if (name == deprecatedAttribute()) {
- if (convertBoolean(attributes->takeAt(i).value(), deprecatedAttribute(), false))
+ } else if (name == deprecatedAttribute) {
+ if (convertBoolean(attributes->takeAt(i).value(), deprecatedAttribute, false))
ctype->setTypeFlags(ctype->typeFlags() | ComplexTypeEntry::Deprecated);
- } else if (name == disableWrapperAttribute()) {
- if (convertBoolean(attributes->takeAt(i).value(), disableWrapperAttribute(), false))
+ } else if (name == disableWrapperAttribute) {
+ if (convertBoolean(attributes->takeAt(i).value(), disableWrapperAttribute, false))
ctype->setTypeFlags(ctype->typeFlags() | ComplexTypeEntry::DisableWrapper);
- } else if (name == deleteInMainThreadAttribute()) {
- if (convertBoolean(attributes->takeAt(i).value(), deleteInMainThreadAttribute(), false))
+ } else if (name == deleteInMainThreadAttribute) {
+ if (convertBoolean(attributes->takeAt(i).value(), deleteInMainThreadAttribute, false))
ctype->setDeleteInMainThread(true);
- } else if (name == QLatin1String("target-type")) {
+ } else if (name == qtMetaObjectFunctionsAttribute) {
+ if (!convertBoolean(attributes->takeAt(i).value(),
+ qtMetaObjectFunctionsAttribute, true)) {
+ ctype->setTypeFlags(ctype->typeFlags()
+ | ComplexTypeEntry::DisableQtMetaObjectFunctions);
+ }
+ } else if (name == generateFunctionsAttribute) {
+ const auto names = attributes->takeAt(i).value();
+ const auto nameList = names.split(u';', Qt::SkipEmptyParts);
+ QSet<QString> nameSet;
+ for (const auto &name : nameList)
+ nameSet.insert(name.trimmed().toString());
+ ctype->setGenerateFunctions(nameSet);
+ } else if (name == u"target-type") {
ctype->setTargetType(attributes->takeAt(i).value().toString());
- } else if (name == snakeCaseAttribute()) {
+ } else if (name == snakeCaseAttribute) {
const auto attribute = attributes->takeAt(i);
const auto snakeCaseOpt = snakeCaseFromAttribute(attribute.value());
if (snakeCaseOpt.has_value()) {
@@ -1662,7 +1883,7 @@ void TypeSystemParser::applyComplexTypeAttributes(const ConditionalStreamReader
qCWarning(lcShiboken, "%s",
qPrintable(msgInvalidAttributeValue(attribute)));
}
- } else if (name == isNullAttribute()) {
+ } else if (name == isNullAttribute) {
const auto attribute = attributes->takeAt(i);
const auto boolCastOpt = boolCastFromAttribute(attribute.value());
if (boolCastOpt.has_value()) {
@@ -1671,7 +1892,7 @@ void TypeSystemParser::applyComplexTypeAttributes(const ConditionalStreamReader
qCWarning(lcShiboken, "%s",
qPrintable(msgInvalidAttributeValue(attribute)));
}
- } else if (name == operatorBoolAttribute()) {
+ } else if (name == operatorBoolAttribute) {
const auto attribute = attributes->takeAt(i);
const auto boolCastOpt = boolCastFromAttribute(attribute.value());
if (boolCastOpt.has_value()) {
@@ -1680,6 +1901,20 @@ void TypeSystemParser::applyComplexTypeAttributes(const ConditionalStreamReader
qCWarning(lcShiboken, "%s",
qPrintable(msgInvalidAttributeValue(attribute)));
}
+ } else if (name == qtMetaTypeAttribute) {
+ const auto attribute = attributes->takeAt(i);
+ const auto qtMetaTypeOpt = qtMetaTypeFromAttribute(attribute.value());
+ if (qtMetaTypeOpt.has_value()) {
+ ctype->setQtMetaTypeRegistration(qtMetaTypeOpt.value());
+ } else {
+ qCWarning(lcShiboken, "%s",
+ qPrintable(msgInvalidAttributeValue(attribute)));
+ }
+ } else if (name == parentManagementAttribute) {
+ const auto attribute = attributes->takeAt(i);
+ if (convertBoolean(attribute.value(), parentManagementAttribute, false))
+ ctype->setTypeFlags(ctype->typeFlags() | ComplexTypeEntry::ParentManagement);
+ ComplexTypeEntry::setParentManagementEnabled(true);
}
}
@@ -1698,40 +1933,66 @@ void TypeSystemParser::applyComplexTypeAttributes(const ConditionalStreamReader
ctype->setCodeGeneration(TypeEntry::GenerationDisabled);
}
+bool TypeSystemParser::parseConfiguration(StackElement topElement,
+ QXmlStreamAttributes *attributes)
+{
+ if (!isComplexTypeEntry(topElement)
+ && topElement != StackElement::EnumTypeEntry) {
+ m_error = u"<configuration> must be nested into a complex or enum type entry."_s;
+ return false;
+ }
+ QString condition;
+ for (auto i = attributes->size() - 1; i >= 0; --i) {
+ const auto name = attributes->at(i).qualifiedName();
+ if (name == u"condition") {
+ condition = attributes->takeAt(i).value().toString();
+ }
+ }
+ if (condition.isEmpty()) {
+ m_error = u"<configuration> requires a \"condition\" attribute."_s;
+ return false;
+ }
+ const auto topEntry = m_contextStack.top()->entry;
+ const auto configurableEntry = std::dynamic_pointer_cast<ConfigurableTypeEntry>(topEntry);
+ Q_ASSERT(configurableEntry);
+ configurableEntry->setConfigCondition(condition);
+ return true;
+}
+
bool TypeSystemParser::parseRenameFunction(const ConditionalStreamReader &,
QString *name, QXmlStreamAttributes *attributes)
{
QString signature;
QString rename;
- for (int i = attributes->size() - 1; i >= 0; --i) {
+ for (auto i = attributes->size() - 1; i >= 0; --i) {
const auto name = attributes->at(i).qualifiedName();
- if (name == signatureAttribute()) {
+ if (name == signatureAttribute) {
// Do not remove as it is needed for the type entry later on
- signature = attributes->at(i).value().toString();
- } else if (name == renameAttribute()) {
+ signature = attributes->at(i).value().toString().simplified();
+ } else if (name == renameAttribute) {
rename = attributes->takeAt(i).value().toString();
}
}
if (signature.isEmpty()) {
- m_error = msgMissingAttribute(signatureAttribute());
+ m_error = msgMissingAttribute(signatureAttribute);
return false;
}
- *name = signature.left(signature.indexOf(QLatin1Char('('))).trimmed();
+ *name = signature.left(signature.indexOf(u'(')).trimmed();
- QString errorString = checkSignatureError(signature, QLatin1String("function"));
+ QString errorString = checkSignatureError(signature, u"function"_s);
if (!errorString.isEmpty()) {
m_error = errorString;
return false;
}
if (!rename.isEmpty()) {
- static const QRegularExpression functionNameRegExp(QLatin1String("^[a-zA-Z_][a-zA-Z0-9_]*$"));
+ static const QRegularExpression functionNameRegExp(u"^[a-zA-Z_][a-zA-Z0-9_]*$"_s);
Q_ASSERT(functionNameRegExp.isValid());
if (!functionNameRegExp.match(rename).hasMatch()) {
- m_error = QLatin1String("can not rename '") + signature + QLatin1String("', '")
- + rename + QLatin1String("' is not a valid function name");
+ m_error = u"can not rename '"_s + signature + u"', '"_s
+ + rename + u"' is not a valid function name"_s;
return false;
}
FunctionModification mod;
@@ -1744,23 +2005,25 @@ bool TypeSystemParser::parseRenameFunction(const ConditionalStreamReader &,
return true;
}
-bool TypeSystemParser::parseInjectDocumentation(const ConditionalStreamReader &,
+bool TypeSystemParser::parseInjectDocumentation(const ConditionalStreamReader &, StackElement topElement,
QXmlStreamAttributes *attributes)
{
- const int validParent = StackElement::TypeEntryMask
- | StackElement::ModifyFunction
- | StackElement::ModifyField;
- if (!m_current->parent || (m_current->parent->type & validParent) == 0) {
- m_error = QLatin1String("inject-documentation must be inside modify-function, "
- "modify-field or other tags that creates a type");
+ const bool isAddFunction = topElement == StackElement::AddFunction;
+ const bool validParent = isTypeEntry(topElement)
+ || topElement == StackElement::ModifyFunction
+ || topElement == StackElement::ModifyField
+ || isAddFunction;
+ if (!validParent) {
+ m_error = u"inject-documentation must be inside modify-function, add-function"
+ "modify-field or other tags that creates a type"_s;
return false;
}
TypeSystem::DocModificationMode mode = TypeSystem::DocModificationReplace;
TypeSystem::Language lang = TypeSystem::NativeCode;
- for (int i = attributes->size() - 1; i >= 0; --i) {
+ for (auto i = attributes->size() - 1; i >= 0; --i) {
const auto name = attributes->at(i).qualifiedName();
- if (name == QLatin1String("mode")) {
+ if (name == u"mode") {
const auto attribute = attributes->takeAt(i);
const auto modeOpt = docModificationFromAttribute(attribute.value());
if (!modeOpt.has_value()) {
@@ -1768,7 +2031,7 @@ bool TypeSystemParser::parseInjectDocumentation(const ConditionalStreamReader &,
return false;
}
mode = modeOpt.value();
- } else if (name == formatAttribute()) {
+ } else if (name == formatAttribute) {
const auto attribute = attributes->takeAt(i);
const auto langOpt = languageFromAttribute(attribute.value());
if (!langOpt.has_value()) {
@@ -1779,53 +2042,66 @@ bool TypeSystemParser::parseInjectDocumentation(const ConditionalStreamReader &,
}
}
- QString signature = m_current->type & StackElement::TypeEntryMask
- ? QString() : m_currentSignature;
+ QString signature = isTypeEntry(topElement) ? QString() : m_currentSignature;
DocModification mod(mode, signature);
mod.setFormat(lang);
- m_contextStack.top()->docModifications << mod;
+ if (hasFileSnippetAttributes(attributes)) {
+ const auto snippetOptional = readFileSnippet(attributes);
+ if (!snippetOptional.has_value())
+ return false;
+ mod.setCode(snippetOptional.value().content);
+ }
+ auto &top = m_contextStack.top();
+ if (isAddFunction)
+ top->addedFunctions.last()->addDocModification(mod);
+ else
+ top->docModifications << mod;
return true;
}
bool TypeSystemParser::parseModifyDocumentation(const ConditionalStreamReader &,
+ StackElement topElement,
QXmlStreamAttributes *attributes)
{
- const int validParent = StackElement::TypeEntryMask
- | StackElement::ModifyFunction
- | StackElement::ModifyField;
- if (!m_current->parent || (m_current->parent->type & validParent) == 0) {
- m_error = QLatin1String("modify-documentation must be inside modify-function, "
- "modify-field or other tags that creates a type");
+ const bool validParent = isTypeEntry(topElement)
+ || topElement == StackElement::ModifyFunction
+ || topElement == StackElement::ModifyField;
+ if (!validParent) {
+ m_error = u"modify-documentation must be inside modify-function, "
+ "modify-field or other tags that creates a type"_s;
return false;
}
- const int xpathIndex = indexOfAttribute(*attributes, xPathAttribute());
+ const auto xpathIndex = indexOfAttribute(*attributes, xPathAttribute);
if (xpathIndex == -1) {
- m_error = msgMissingAttribute(xPathAttribute());
+ m_error = msgMissingAttribute(xPathAttribute);
return false;
}
const QString xpath = attributes->takeAt(xpathIndex).value().toString();
- QString signature = (m_current->type & StackElement::TypeEntryMask) ? QString() : m_currentSignature;
+ QString signature = isTypeEntry(topElement) ? QString() : m_currentSignature;
m_contextStack.top()->docModifications
<< DocModification(xpath, signature);
return true;
}
// m_exceptionHandling
-TypeSystemTypeEntry *TypeSystemParser::parseRootElement(const ConditionalStreamReader &,
+TypeSystemTypeEntryPtr TypeSystemParser::parseRootElement(const ConditionalStreamReader &,
const QVersionNumber &since,
QXmlStreamAttributes *attributes)
{
TypeSystem::SnakeCase snakeCase = TypeSystem::SnakeCase::Unspecified;
+ QString subModuleOf;
+ QString namespaceBegin;
+ QString namespaceEnd;
- for (int i = attributes->size() - 1; i >= 0; --i) {
+ for (auto i = attributes->size() - 1; i >= 0; --i) {
const auto name = attributes->at(i).qualifiedName();
- if (name == packageAttribute()) {
+ if (name == packageAttribute) {
m_defaultPackage = attributes->takeAt(i).value().toString();
- } else if (name == defaultSuperclassAttribute()) {
+ } else if (name == defaultSuperclassAttribute) {
m_defaultSuperclass = attributes->takeAt(i).value().toString();
- } else if (name == exceptionHandlingAttribute()) {
+ } else if (name == exceptionHandlingAttribute) {
const auto attribute = attributes->takeAt(i);
const auto exceptionOpt = exceptionHandlingFromAttribute(attribute.value());
if (exceptionOpt.has_value()) {
@@ -1834,7 +2110,7 @@ TypeSystemTypeEntry *TypeSystemParser::parseRootElement(const ConditionalStreamR
qCWarning(lcShiboken, "%s",
qPrintable(msgInvalidAttributeValue(attribute)));
}
- } else if (name == allowThreadAttribute()) {
+ } else if (name == allowThreadAttribute) {
const auto attribute = attributes->takeAt(i);
const auto allowThreadOpt = allowThreadFromAttribute(attribute.value());
if (allowThreadOpt.has_value()) {
@@ -1843,7 +2119,7 @@ TypeSystemTypeEntry *TypeSystemParser::parseRootElement(const ConditionalStreamR
qCWarning(lcShiboken, "%s",
qPrintable(msgInvalidAttributeValue(attribute)));
}
- } else if (name == snakeCaseAttribute()) {
+ } else if (name == snakeCaseAttribute) {
const auto attribute = attributes->takeAt(i);
const auto snakeCaseOpt = snakeCaseFromAttribute(attribute.value());
if (snakeCaseOpt.has_value()) {
@@ -1852,25 +2128,43 @@ TypeSystemTypeEntry *TypeSystemParser::parseRootElement(const ConditionalStreamR
qCWarning(lcShiboken, "%s",
qPrintable(msgInvalidAttributeValue(attribute)));
}
+ } else if (name == subModuleOfAttribute) {
+ subModuleOf = attributes->takeAt(i).value().toString();
+ } else if (name == "namespace-begin"_L1) {
+ namespaceBegin = attributes->takeAt(i).value().toString();
+ } else if (name == "namespace-end"_L1) {
+ namespaceEnd = attributes->takeAt(i).value().toString();
}
}
- auto *moduleEntry =
- const_cast<TypeSystemTypeEntry *>(m_database->findTypeSystemType(m_defaultPackage));
- const bool add = moduleEntry == nullptr;
+ if (m_defaultPackage.isEmpty()) { // Extending default, see addBuiltInContainerTypes()
+ auto moduleEntry = std::const_pointer_cast<TypeSystemTypeEntry>(m_context->db->defaultTypeSystemType());
+ Q_ASSERT(moduleEntry);
+ m_defaultPackage = moduleEntry->name();
+ return moduleEntry;
+ }
+
+ auto moduleEntry =
+ std::const_pointer_cast<TypeSystemTypeEntry>(m_context->db->findTypeSystemType(m_defaultPackage));
+ const bool add = !moduleEntry;
if (add) {
- moduleEntry = new TypeSystemTypeEntry(m_defaultPackage, since,
- currentParentTypeEntry());
+ moduleEntry.reset(new TypeSystemTypeEntry(m_defaultPackage, since,
+ currentParentTypeEntry()));
+ moduleEntry->setSubModule(subModuleOf);
}
moduleEntry->setCodeGeneration(m_generate);
moduleEntry->setSnakeCase(snakeCase);
+ if (!namespaceBegin.isEmpty())
+ moduleEntry->setNamespaceBegin(namespaceBegin);
+ if (!namespaceEnd.isEmpty())
+ moduleEntry->setNamespaceEnd(namespaceEnd);
if ((m_generate == TypeEntry::GenerateForSubclass ||
m_generate == TypeEntry::GenerateNothing) && !m_defaultPackage.isEmpty())
TypeDatabase::instance()->addRequiredTargetImport(m_defaultPackage);
if (add)
- m_database->addTypeSystemType(moduleEntry);
+ m_context->db->addTypeSystemType(moduleEntry);
return moduleEntry;
}
@@ -1879,22 +2173,22 @@ bool TypeSystemParser::loadTypesystem(const ConditionalStreamReader &,
{
QString typeSystemName;
bool generateChild = true;
- for (int i = attributes->size() - 1; i >= 0; --i) {
+ for (auto i = attributes->size() - 1; i >= 0; --i) {
const auto name = attributes->at(i).qualifiedName();
- if (name == nameAttribute())
+ if (name == nameAttribute)
typeSystemName = attributes->takeAt(i).value().toString();
- else if (name == generateAttribute())
- generateChild = convertBoolean(attributes->takeAt(i).value(), generateAttribute(), true);
+ else if (name == generateAttribute)
+ generateChild = convertBoolean(attributes->takeAt(i).value(), generateAttribute, true);
}
if (typeSystemName.isEmpty()) {
- m_error = QLatin1String("No typesystem name specified");
+ m_error = u"No typesystem name specified"_s;
return false;
}
const bool result =
- m_database->parseFile(typeSystemName, m_currentPath, generateChild
- && m_generate == TypeEntry::GenerateCode);
+ m_context->db->parseFile(m_context, typeSystemName, m_currentPath,
+ generateChild && m_generate == TypeEntry::GenerateCode);
if (!result)
- m_error = u"Failed to parse: '"_qs + typeSystemName + u'\'';
+ m_error = u"Failed to parse: '"_s + typeSystemName + u'\'';
return result;
}
@@ -1902,12 +2196,12 @@ bool TypeSystemParser::parseRejectEnumValue(const ConditionalStreamReader &,
QXmlStreamAttributes *attributes)
{
if (!m_currentEnum) {
- m_error = QLatin1String("<reject-enum-value> node must be used inside a <enum-type> node");
+ m_error = u"<reject-enum-value> node must be used inside a <enum-type> node"_s;
return false;
}
- const int nameIndex = indexOfAttribute(*attributes, nameAttribute());
+ const auto nameIndex = indexOfAttribute(*attributes, nameAttribute);
if (nameIndex == -1) {
- m_error = msgMissingAttribute(nameAttribute());
+ m_error = msgMissingAttribute(nameAttribute);
return false;
}
m_currentEnum->addEnumValueRejection(attributes->takeAt(nameIndex).value().toString());
@@ -1915,16 +2209,16 @@ bool TypeSystemParser::parseRejectEnumValue(const ConditionalStreamReader &,
}
bool TypeSystemParser::parseReplaceArgumentType(const ConditionalStreamReader &,
- const StackElement &topElement,
+ StackElement topElement,
QXmlStreamAttributes *attributes)
{
- if (topElement.type != StackElement::ModifyArgument) {
- m_error = QLatin1String("Type replacement can only be specified for argument modifications");
+ if (topElement != StackElement::ModifyArgument) {
+ m_error = u"Type replacement can only be specified for argument modifications"_s;
return false;
}
- const int modifiedTypeIndex = indexOfAttribute(*attributes, modifiedTypeAttribute());
+ const auto modifiedTypeIndex = indexOfAttribute(*attributes, modifiedTypeAttribute);
if (modifiedTypeIndex == -1) {
- m_error = QLatin1String("Type replacement requires 'modified-type' attribute");
+ m_error = u"Type replacement requires 'modified-type' attribute"_s;
return false;
}
m_contextStack.top()->functionMods.last().argument_mods().last().setModifiedType(
@@ -1933,24 +2227,24 @@ bool TypeSystemParser::parseReplaceArgumentType(const ConditionalStreamReader &,
}
bool TypeSystemParser::parseCustomConversion(const ConditionalStreamReader &,
- const StackElement &topElement,
+ StackElement topElement,
QXmlStreamAttributes *attributes)
{
- if (topElement.type != StackElement::ModifyArgument
- && topElement.type != StackElement::ValueTypeEntry
- && topElement.type != StackElement::PrimitiveTypeEntry
- && topElement.type != StackElement::ContainerTypeEntry) {
- m_error = QLatin1String("Conversion rules can only be specified for argument modification, "
- "value-type, primitive-type or container-type conversion.");
+ if (topElement != StackElement::ModifyArgument
+ && topElement != StackElement::ValueTypeEntry
+ && topElement != StackElement::PrimitiveTypeEntry
+ && topElement != StackElement::ContainerTypeEntry) {
+ m_error = u"Conversion rules can only be specified for argument modification, "
+ "value-type, primitive-type or container-type conversion."_s;
return false;
}
QString sourceFile;
QString snippetLabel;
TypeSystem::Language lang = TypeSystem::NativeCode;
- for (int i = attributes->size() - 1; i >= 0; --i) {
+ for (auto i = attributes->size() - 1; i >= 0; --i) {
const auto name = attributes->at(i).qualifiedName();
- if (name == classAttribute()) {
+ if (name == classAttribute) {
const auto languageAttribute = attributes->takeAt(i);
const auto langOpt = languageFromAttribute(languageAttribute.value());
if (!langOpt.has_value()) {
@@ -1958,28 +2252,33 @@ bool TypeSystemParser::parseCustomConversion(const ConditionalStreamReader &,
return false;
}
lang = langOpt.value();
- } else if (name == QLatin1String("file")) {
+ } else if (name == u"file") {
sourceFile = attributes->takeAt(i).value().toString();
- } else if (name == snippetAttribute()) {
+ } else if (name == snippetAttribute) {
snippetLabel = attributes->takeAt(i).value().toString();
}
}
- if (topElement.type == StackElement::ModifyArgument) {
+ const auto &top = m_contextStack.top();
+ if (topElement == StackElement::ModifyArgument) {
CodeSnip snip;
snip.language = lang;
- m_contextStack.top()->functionMods.last().argument_mods().last().conversionRules().append(snip);
+ top->functionMods.last().argument_mods().last().conversionRules().append(snip);
return true;
}
- if (topElement.entry->hasTargetConversionRule() || topElement.entry->hasCustomConversion()) {
- m_error = QLatin1String("Types can have only one conversion rule");
- return false;
+ ValueTypeEntryPtr valueTypeEntry;
+ if (top->entry->isValue()) {
+ valueTypeEntry = std::static_pointer_cast<ValueTypeEntry>(top->entry);
+ if (valueTypeEntry->hasTargetConversionRule() || valueTypeEntry->hasCustomConversion()) {
+ m_error = u"Types can have only one conversion rule"_s;
+ return false;
+ }
}
// The old conversion rule tag that uses a file containing the conversion
// will be kept temporarily for compatibility reasons. FIXME PYSIDE7: Remove
- if (!sourceFile.isEmpty()) {
+ if (valueTypeEntry != nullptr && !sourceFile.isEmpty()) {
if (m_generate != TypeEntry::GenerateForSubclass
&& m_generate != TypeEntry::GenerateNothing) {
qWarning(lcShiboken, "Specifying conversion rules by \"file\" is deprecated.");
@@ -1997,57 +2296,75 @@ bool TypeSystemParser::parseCustomConversion(const ConditionalStreamReader &,
m_error = msgCannotFindSnippet(sourceFile, snippetLabel);
return false;
}
- topElement.entry->setTargetConversionRule(conversionRuleOptional.value());
+ valueTypeEntry->setTargetConversionRule(conversionRuleOptional.value());
}
return true;
}
- auto *customConversion = new CustomConversion(m_current->entry);
+ auto customConversion = std::make_shared<CustomConversion>(top->entry);
+ if (top->entry->isPrimitive())
+ std::static_pointer_cast<PrimitiveTypeEntry>(top->entry)->setCustomConversion(customConversion);
+ else if (top->entry->isContainer())
+ std::static_pointer_cast<ContainerTypeEntry>(top->entry)->setCustomConversion(customConversion);
+ else if (top->entry->isValue())
+ std::static_pointer_cast<ValueTypeEntry>(top->entry)->setCustomConversion(customConversion);
customConversionsForReview.append(customConversion);
return true;
}
bool TypeSystemParser::parseNativeToTarget(const ConditionalStreamReader &,
- const StackElement &topElement,
+ StackElement topElement,
QXmlStreamAttributes *attributes)
{
- if (topElement.type != StackElement::ConversionRule) {
- m_error = QLatin1String("Native to Target conversion code can only be specified for custom conversion rules.");
+ if (topElement != StackElement::ConversionRule) {
+ m_error = u"Native to Target conversion code can only be specified for custom conversion rules."_s;
return false;
}
CodeSnip snip;
- if (!readFileSnippet(attributes, &snip))
+ if (!readCodeSnippet(attributes, &snip))
return false;
- m_contextStack.top()->codeSnips.append(snip);
+ m_contextStack.top()->conversionCodeSnips.append(snip);
return true;
}
bool TypeSystemParser::parseAddConversion(const ConditionalStreamReader &,
- const StackElement &topElement,
+ StackElement topElement,
QXmlStreamAttributes *attributes)
{
- if (topElement.type != StackElement::TargetToNative) {
- m_error = QLatin1String("Target to Native conversions can only be added inside 'target-to-native' tags.");
+ if (topElement != StackElement::TargetToNative) {
+ m_error = u"Target to Native conversions can only be added inside 'target-to-native' tags."_s;
return false;
}
QString sourceTypeName;
QString typeCheck;
CodeSnip snip;
- if (!readFileSnippet(attributes, &snip))
+ if (!readCodeSnippet(attributes, &snip))
return false;
- for (int i = attributes->size() - 1; i >= 0; --i) {
+
+ const auto &top = m_contextStack.top();
+ top->conversionCodeSnips.append(snip);
+
+ if (parserState() == ParserState::ArgumentTargetToNativeConversion)
+ return true;
+
+ for (auto i = attributes->size() - 1; i >= 0; --i) {
const auto name = attributes->at(i).qualifiedName();
- if (name == QLatin1String("type"))
+ if (name == u"type")
sourceTypeName = attributes->takeAt(i).value().toString();
- else if (name == QLatin1String("check"))
+ else if (name == u"check")
typeCheck = attributes->takeAt(i).value().toString();
}
+
if (sourceTypeName.isEmpty()) {
- m_error = QLatin1String("Target to Native conversions must specify the input type with the 'type' attribute.");
+ m_error = u"Target to Native conversions must specify the input type with the 'type' attribute."_s;
+ return false;
+ }
+ auto customConversion = CustomConversion::getCustomConversion(top->entry);
+ if (!customConversion) {
+ m_error = msgMissingCustomConversion(top->entry);
return false;
}
- m_current->entry->customConversion()->addTargetToNativeConversion(sourceTypeName, typeCheck);
- m_contextStack.top()->codeSnips.append(snip);
+ customConversion->addTargetToNativeConversion(sourceTypeName, typeCheck);
return true;
}
@@ -2056,17 +2373,17 @@ static bool parseIndex(const QString &index, int *result, QString *errorMessage)
bool ok = false;
*result = index.toInt(&ok);
if (!ok)
- *errorMessage = QStringLiteral("Cannot convert '%1' to integer").arg(index);
+ *errorMessage = QString::fromLatin1("Cannot convert '%1' to integer").arg(index);
return ok;
}
static bool parseArgumentIndex(const QString &index, int *result, QString *errorMessage)
{
- if (index == QLatin1String("return")) {
+ if (index == u"return") {
*result = 0;
return true;
}
- if (index == QLatin1String("this")) {
+ if (index == u"this") {
*result = -1;
return true;
}
@@ -2074,13 +2391,14 @@ static bool parseArgumentIndex(const QString &index, int *result, QString *error
}
bool TypeSystemParser::parseModifyArgument(const ConditionalStreamReader &,
- const StackElement &topElement, QXmlStreamAttributes *attributes)
-{
- if (topElement.type != StackElement::ModifyFunction
- && topElement.type != StackElement::AddFunction) {
- m_error = QString::fromLatin1("argument modification requires function"
- " modification as parent, was %1")
- .arg(topElement.type, 0, 16);
+ StackElement topElement, QXmlStreamAttributes *attributes)
+{
+ if (topElement != StackElement::ModifyFunction
+ && topElement != StackElement::AddFunction
+ && topElement != StackElement::DeclareFunction) {
+ m_error = u"Argument modification requires <modify-function>,"
+ " <add-function> or <declare-function> as parent, was "_s
+ + tagFromElement(topElement).toString();
return false;
}
@@ -2088,22 +2406,22 @@ bool TypeSystemParser::parseModifyArgument(const ConditionalStreamReader &,
QString renameTo;
QString pyiType;
bool resetAfterUse = false;
- for (int i = attributes->size() - 1; i >= 0; --i) {
+ for (auto i = attributes->size() - 1; i >= 0; --i) {
const auto name = attributes->at(i).qualifiedName();
- if (name == indexAttribute()) {
+ if (name == indexAttribute) {
index = attributes->takeAt(i).value().toString();
- } else if (name == invalidateAfterUseAttribute()) {
+ } else if (name == invalidateAfterUseAttribute) {
resetAfterUse = convertBoolean(attributes->takeAt(i).value(),
- invalidateAfterUseAttribute(), false);
- } else if (name == renameAttribute()) {
+ invalidateAfterUseAttribute, false);
+ } else if (name == renameAttribute) {
renameTo = attributes->takeAt(i).value().toString();
- } else if (name == pyiTypeAttribute()) {
+ } else if (name == pyiTypeAttribute) {
pyiType = attributes->takeAt(i).value().toString();
}
}
if (index.isEmpty()) {
- m_error = msgMissingAttribute(indexAttribute());
+ m_error = msgMissingAttribute(indexAttribute);
return false;
}
@@ -2120,10 +2438,10 @@ bool TypeSystemParser::parseModifyArgument(const ConditionalStreamReader &,
}
bool TypeSystemParser::parseNoNullPointer(const ConditionalStreamReader &reader,
- const StackElement &topElement, QXmlStreamAttributes *attributes)
+ StackElement topElement, QXmlStreamAttributes *attributes)
{
- if (topElement.type != StackElement::ModifyArgument) {
- m_error = QLatin1String("no-null-pointer requires argument modification as parent");
+ if (topElement != StackElement::ModifyArgument) {
+ m_error = u"no-null-pointer requires argument modification as parent"_s;
return false;
}
@@ -2141,19 +2459,19 @@ bool TypeSystemParser::parseNoNullPointer(const ConditionalStreamReader &reader,
}
bool TypeSystemParser::parseDefineOwnership(const ConditionalStreamReader &,
- const StackElement &topElement,
+ StackElement topElement,
QXmlStreamAttributes *attributes)
{
- if (topElement.type != StackElement::ModifyArgument) {
- m_error = QLatin1String("define-ownership requires argument modification as parent");
+ if (topElement != StackElement::ModifyArgument) {
+ m_error = u"define-ownership requires argument modification as parent"_s;
return false;
}
TypeSystem::Language lang = TypeSystem::TargetLangCode;
std::optional<TypeSystem::Ownership> ownershipOpt;
- for (int i = attributes->size() - 1; i >= 0; --i) {
+ for (auto i = attributes->size() - 1; i >= 0; --i) {
const auto name = attributes->at(i).qualifiedName();
- if (name == classAttribute()) {
+ if (name == classAttribute) {
const auto classAttribute = attributes->takeAt(i);
const auto langOpt = languageFromAttribute(classAttribute.value());
if (!langOpt.has_value() || langOpt.value() == TypeSystem::ShellCode) {
@@ -2161,7 +2479,7 @@ bool TypeSystemParser::parseDefineOwnership(const ConditionalStreamReader &,
return false;
}
lang = langOpt.value();
- } else if (name == ownershipAttribute()) {
+ } else if (name == ownershipAttribute) {
const auto attribute = attributes->takeAt(i);
ownershipOpt = ownershipFromFromAttribute(attribute.value());
if (!ownershipOpt.has_value()) {
@@ -2172,7 +2490,7 @@ bool TypeSystemParser::parseDefineOwnership(const ConditionalStreamReader &,
}
if (!ownershipOpt.has_value()) {
- m_error = QStringLiteral("unspecified ownership");
+ m_error = "unspecified ownership"_L1;
return false;
}
auto &lastArgMod = m_contextStack.top()->functionMods.last().argument_mods().last();
@@ -2191,17 +2509,17 @@ bool TypeSystemParser::parseDefineOwnership(const ConditionalStreamReader &,
// ### fixme PySide7: remove (replaced by attribute).
bool TypeSystemParser::parseRename(const ConditionalStreamReader &,
- const StackElement &topElement,
+ StackElement topElement,
QXmlStreamAttributes *attributes)
{
- if (topElement.type != StackElement::ModifyArgument) {
- m_error = QLatin1String("Argument modification parent required");
+ if (topElement != StackElement::ModifyArgument) {
+ m_error = u"Argument modification parent required"_s;
return false;
}
- const int toIndex = indexOfAttribute(*attributes, toAttribute());
+ const auto toIndex = indexOfAttribute(*attributes, toAttribute);
if (toIndex == -1) {
- m_error = msgMissingAttribute(toAttribute());
+ m_error = msgMissingAttribute(toAttribute);
return false;
}
const QString renamed_to = attributes->takeAt(toIndex).value().toString();
@@ -2213,19 +2531,22 @@ bool TypeSystemParser::parseModifyField(const ConditionalStreamReader &,
QXmlStreamAttributes *attributes)
{
FieldModification fm;
- for (int i = attributes->size() - 1; i >= 0; --i) {
+ for (auto i = attributes->size() - 1; i >= 0; --i) {
const auto name = attributes->at(i).qualifiedName();
- if (name == nameAttribute()) {
+ if (name == nameAttribute) {
fm.setName(attributes->takeAt(i).value().toString());
- } else if (name == removeAttribute()) {
+ } else if (name == removeAttribute) {
fm.setRemoved(convertRemovalAttribute(attributes->takeAt(i).value()));
- } else if (name == readAttribute()) {
- fm.setReadable(convertBoolean(attributes->takeAt(i).value(), readAttribute(), true));
- } else if (name == writeAttribute()) {
- fm.setWritable(convertBoolean(attributes->takeAt(i).value(), writeAttribute(), true));
- } else if (name == renameAttribute()) {
+ } else if (name == opaqueContainerFieldAttribute) {
+ fm.setOpaqueContainer(convertBoolean(attributes->takeAt(i).value(),
+ opaqueContainerFieldAttribute, false));
+ } else if (name == readAttribute) {
+ fm.setReadable(convertBoolean(attributes->takeAt(i).value(), readAttribute, true));
+ } else if (name == writeAttribute) {
+ fm.setWritable(convertBoolean(attributes->takeAt(i).value(), writeAttribute, true));
+ } else if (name == renameAttribute) {
fm.setRenamedToName(attributes->takeAt(i).value().toString());
- } else if (name == snakeCaseAttribute()) {
+ } else if (name == snakeCaseAttribute) {
const auto attribute = attributes->takeAt(i);
const auto snakeCaseOpt = snakeCaseFromAttribute(attribute.value());
if (snakeCaseOpt.has_value()) {
@@ -2237,7 +2558,7 @@ bool TypeSystemParser::parseModifyField(const ConditionalStreamReader &,
}
}
if (fm.name().isEmpty()) {
- m_error = msgMissingAttribute(nameAttribute());
+ m_error = msgMissingAttribute(nameAttribute);
return false;
}
m_contextStack.top()->fieldMods << fm;
@@ -2257,73 +2578,85 @@ static bool parseOverloadNumber(const QXmlStreamAttribute &attribute, int *overl
}
bool TypeSystemParser::parseAddFunction(const ConditionalStreamReader &,
- const StackElement &topElement,
- StackElement::ElementType t,
+ StackElement topElement,
+ StackElement t,
QXmlStreamAttributes *attributes)
{
- if (!(topElement.type
- & (StackElement::ComplexTypeEntryMask | StackElement::Root | StackElement::ContainerTypeEntry))) {
+ const bool validParent = isComplexTypeEntry(topElement)
+ || topElement == StackElement::Root
+ || topElement == StackElement::ContainerTypeEntry;
+ if (!validParent) {
m_error = QString::fromLatin1("Add/Declare function requires a complex/container type or a root tag as parent"
- ", was=%1").arg(topElement.type, 0, 16);
+ ", was=%1").arg(tagFromElement(topElement));
return false;
}
+
+ FunctionModification mod;
+ if (!(t == StackElement::AddFunction
+ ? parseBasicModifyFunctionAttributes(attributes, &mod)
+ : parseModifyFunctionAttributes(attributes, &mod))) {
+ return false;
+ }
+
QString originalSignature;
QString returnType;
bool staticFunction = false;
bool classMethod = false;
+ bool pythonOverride = false;
QString access;
- int overloadNumber = TypeSystem::OverloadNumberUnset;
- for (int i = attributes->size() - 1; i >= 0; --i) {
+ for (auto i = attributes->size() - 1; i >= 0; --i) {
const auto name = attributes->at(i).qualifiedName();
- if (name == QLatin1String("signature")) {
- originalSignature = attributes->takeAt(i).value().toString();
- } else if (name == QLatin1String("return-type")) {
+ if (name == signatureAttribute) {
+ originalSignature = attributes->takeAt(i).value().toString().simplified();
+ } else if (name == u"return-type") {
returnType = attributes->takeAt(i).value().toString();
- } else if (name == staticAttribute()) {
+ } else if (name == staticAttribute) {
staticFunction = convertBoolean(attributes->takeAt(i).value(),
- staticAttribute(), false);
- } else if (name == classmethodAttribute()) {
+ staticAttribute, false);
+ } else if (name == classmethodAttribute) {
classMethod = convertBoolean(attributes->takeAt(i).value(),
- classmethodAttribute(), false);
- } else if (name == accessAttribute()) {
+ classmethodAttribute, false);
+ } else if (name == accessAttribute) {
access = attributes->takeAt(i).value().toString();
- } else if (name == overloadNumberAttribute()) {
- if (!parseOverloadNumber(attributes->takeAt(i), &overloadNumber, &m_error))
- return false;
+ } else if (name == pythonOverrideAttribute) {
+ pythonOverride = convertBoolean(attributes->takeAt(i).value(),
+ pythonOverrideAttribute, false);
}
}
QString signature = TypeDatabase::normalizedAddedFunctionSignature(originalSignature);
if (signature.isEmpty()) {
- m_error = QLatin1String("No signature for the added function");
+ m_error = u"No signature for the added function"_s;
return false;
}
- QString errorString = checkSignatureError(signature, QLatin1String("add-function"));
+ QString errorString = checkSignatureError(signature, u"add-function"_s);
if (!errorString.isEmpty()) {
m_error = errorString;
return false;
}
AddedFunctionPtr func = AddedFunction::createAddedFunction(signature, returnType, &errorString);
- if (func.isNull()) {
+ if (!func) {
m_error = errorString;
return false;
}
func->setStatic(staticFunction);
func->setClassMethod(classMethod);
+ func->setPythonOverride(pythonOverride);
+ func->setTargetLangPackage(m_defaultPackage);
// Create signature for matching modifications
signature = TypeDatabase::normalizedSignature(originalSignature);
- if (!signature.contains(QLatin1Char('(')))
- signature += QLatin1String("()");
+ if (!signature.contains(u'('))
+ signature += u"()"_s;
m_currentSignature = signature;
if (!access.isEmpty()) {
const auto acessOpt = addedFunctionAccessFromAttribute(access);
if (!acessOpt.has_value()) {
- m_error = u"Bad access type '"_qs + access + u'\'';
+ m_error = u"Bad access type '"_s + access + u'\'';
return false;
}
func->setAccess(acessOpt.value());
@@ -2334,8 +2667,6 @@ bool TypeSystemParser::parseAddFunction(const ConditionalStreamReader &,
m_contextStack.top()->addedFunctionModificationIndex =
m_contextStack.top()->functionMods.size();
- FunctionModification mod;
- mod.setOverloadNumber(overloadNumber);
if (!mod.setSignature(m_currentSignature, &m_error))
return false;
mod.setOriginalSignature(originalSignature);
@@ -2343,156 +2674,217 @@ bool TypeSystemParser::parseAddFunction(const ConditionalStreamReader &,
return true;
}
-bool TypeSystemParser::parseProperty(const ConditionalStreamReader &, const StackElement &topElement,
+bool TypeSystemParser::parseAddPyMethodDef(const ConditionalStreamReader &,
+ StackElement topElement,
+ QXmlStreamAttributes *attributes)
+{
+ if (!isComplexTypeEntry(topElement)) {
+ m_error = u"add-pymethoddef requires a complex type as parent, was="_s
+ + tagFromElement(topElement).toString();
+ return false;
+ }
+
+ TypeSystemPyMethodDefEntry def;
+ for (auto i = attributes->size() - 1; i >= 0; --i) {
+ const auto name = attributes->at(i).qualifiedName();
+ if (name == nameAttribute) {
+ def.name = attributes->takeAt(i).value().toString();
+ } else if (name == u"doc") {
+ def.doc = attributes->takeAt(i).value().toString();
+ } else if (name == u"function") {
+ def.function = attributes->takeAt(i).value().toString();
+ } else if (name == u"flags") {
+ auto attribute = attributes->takeAt(i);
+ const auto flags = attribute.value().split(u'|', Qt::SkipEmptyParts);
+ for (const auto &flag : flags)
+ def.methFlags.append(flag.toString().toUtf8());
+ } else if (name == u"signatures") {
+ auto attribute = attributes->takeAt(i);
+ const auto signatures = attribute.value().split(u';', Qt::SkipEmptyParts);
+ for (const auto &signature : signatures)
+ def.signatures.append(signature.toString());
+ }
+ }
+
+ if (def.name.isEmpty() || def.function.isEmpty()) {
+ m_error = u"add-pymethoddef requires at least a name and a function attribute"_s;
+ return false;
+ }
+ std::static_pointer_cast<ComplexTypeEntry>(m_contextStack.top()->entry)->addPyMethodDef(def);
+ return true;
+}
+
+bool TypeSystemParser::parseProperty(const ConditionalStreamReader &, StackElement topElement,
QXmlStreamAttributes *attributes)
{
- if ((topElement.type & StackElement::ComplexTypeEntryMask) == 0) {
+ if (!isComplexTypeEntry(topElement)) {
m_error = QString::fromLatin1("Add property requires a complex type as parent"
- ", was=%1").arg(topElement.type, 0, 16);
+ ", was=%1").arg(tagFromElement(topElement));
return false;
}
TypeSystemProperty property;
- for (int i = attributes->size() - 1; i >= 0; --i) {
+ for (auto i = attributes->size() - 1; i >= 0; --i) {
const auto name = attributes->at(i).qualifiedName();
- if (name == nameAttribute()) {
+ if (name == nameAttribute) {
property.name = attributes->takeAt(i).value().toString();
- } else if (name == QLatin1String("get")) {
+ } else if (name == u"get") {
property.read = attributes->takeAt(i).value().toString();
- } else if (name == QLatin1String("type")) {
+ } else if (name == u"type") {
property.type = attributes->takeAt(i).value().toString();
- } else if (name == QLatin1String("set")) {
+ } else if (name == u"set") {
property.write = attributes->takeAt(i).value().toString();
- } else if (name == generateGetSetDefAttribute()) {
+ } else if (name == generateGetSetDefAttribute) {
property.generateGetSetDef =
convertBoolean(attributes->takeAt(i).value(),
- generateGetSetDefAttribute(), false);
+ generateGetSetDefAttribute, false);
}
}
if (!property.isValid()) {
- m_error = QLatin1String("<property> element is missing required attibutes (name/type/get).");
+ m_error = u"<property> element is missing required attibutes (name/type/get)."_s;
return false;
}
- static_cast<ComplexTypeEntry *>(topElement.entry)->addProperty(property);
+ std::static_pointer_cast<ComplexTypeEntry>(m_contextStack.top()->entry)->addProperty(property);
return true;
}
-bool TypeSystemParser::parseModifyFunction(const ConditionalStreamReader &reader,
- const StackElement &topElement,
- QXmlStreamAttributes *attributes)
+// Parse basic attributes applicable to <add-function>/<declare-function>/<function>
+// and <modify-function> (all that is not done by injected code).
+bool TypeSystemParser::parseBasicModifyFunctionAttributes(QXmlStreamAttributes *attributes,
+ FunctionModification *mod)
{
- if (!(topElement.type & StackElement::ComplexTypeEntryMask)) {
- m_error = QString::fromLatin1("Modify function requires complex type as parent"
- ", was=%1").arg(topElement.type, 0, 16);
- return false;
+ for (auto i = attributes->size() - 1; i >= 0; --i) {
+ const auto name = attributes->at(i).qualifiedName();
+ if (name == overloadNumberAttribute) {
+ int overloadNumber = TypeSystem::OverloadNumberUnset;
+ if (!parseOverloadNumber(attributes->takeAt(i), &overloadNumber, &m_error))
+ return false;
+ mod->setOverloadNumber(overloadNumber);
+ }
}
+ return true;
+}
- QString originalSignature;
- QString access;
- bool removed = false;
- QString rename;
- bool deprecated = false;
- bool isThread = false;
- int overloadNumber = TypeSystem::OverloadNumberUnset;
- TypeSystem::ExceptionHandling exceptionHandling = TypeSystem::ExceptionHandling::Unspecified;
- TypeSystem::AllowThread allowThread = TypeSystem::AllowThread::Unspecified;
- TypeSystem::SnakeCase snakeCase = TypeSystem::SnakeCase::Unspecified;
- for (int i = attributes->size() - 1; i >= 0; --i) {
+// Parse attributes applicable to <declare-function>/<function>
+// and <modify-function>.
+bool TypeSystemParser::parseModifyFunctionAttributes(QXmlStreamAttributes *attributes,
+ FunctionModification *mod)
+{
+ if (!parseBasicModifyFunctionAttributes(attributes, mod))
+ return false;
+
+ for (auto i = attributes->size() - 1; i >= 0; --i) {
const auto name = attributes->at(i).qualifiedName();
- if (name == QLatin1String("signature")) {
- originalSignature = attributes->takeAt(i).value().toString();
- } else if (name == accessAttribute()) {
- access = attributes->takeAt(i).value().toString();
- } else if (name == renameAttribute()) {
- rename = attributes->takeAt(i).value().toString();
- } else if (name == removeAttribute()) {
- removed = convertRemovalAttribute(attributes->takeAt(i).value());
- } else if (name == deprecatedAttribute()) {
- deprecated = convertBoolean(attributes->takeAt(i).value(),
- deprecatedAttribute(), false);
- } else if (name == threadAttribute()) {
- isThread = convertBoolean(attributes->takeAt(i).value(),
- threadAttribute(), false);
- } else if (name == allowThreadAttribute()) {
+ if (name == allowThreadAttribute) {
const QXmlStreamAttribute attribute = attributes->takeAt(i);
const auto allowThreadOpt = allowThreadFromAttribute(attribute.value());
if (!allowThreadOpt.has_value()) {
m_error = msgInvalidAttributeValue(attribute);
return false;
}
- allowThread = allowThreadOpt.value();
- } else if (name == exceptionHandlingAttribute()) {
+ mod->setAllowThread(allowThreadOpt.value());
+ } else if (name == exceptionHandlingAttribute) {
const auto attribute = attributes->takeAt(i);
const auto exceptionOpt = exceptionHandlingFromAttribute(attribute.value());
- if (exceptionOpt.has_value()) {
- exceptionHandling = exceptionOpt.value();
- } else {
- qCWarning(lcShiboken, "%s",
- qPrintable(msgInvalidAttributeValue(attribute)));
- }
- } else if (name == overloadNumberAttribute()) {
- if (!parseOverloadNumber(attributes->takeAt(i), &overloadNumber, &m_error))
+ if (!exceptionOpt.has_value()) {
+ m_error = msgInvalidAttributeValue(attribute);
return false;
- } else if (name == snakeCaseAttribute()) {
+ }
+ mod->setExceptionHandling(exceptionOpt.value());
+ } else if (name == snakeCaseAttribute) {
const auto attribute = attributes->takeAt(i);
const auto snakeCaseOpt = snakeCaseFromAttribute(attribute.value());
- if (snakeCaseOpt.has_value()) {
- snakeCase = snakeCaseOpt.value();
- } else {
- qCWarning(lcShiboken, "%s",
- qPrintable(msgInvalidAttributeValue(attribute)));
+ if (!snakeCaseOpt.has_value()) {
+ m_error = msgInvalidAttributeValue(attribute);
+ return false;
}
- } else if (name == virtualSlotAttribute()) {
+ mod->setSnakeCase(snakeCaseOpt.value());
+ } else if (name == deprecatedAttribute) {
+ const bool deprecated = convertBoolean(attributes->takeAt(i).value(),
+ deprecatedAttribute, false);
+ mod->setModifierFlag(deprecated ? FunctionModification::Deprecated
+ : FunctionModification::Undeprecated);
+ }
+ }
+ return true;
+}
+
+bool TypeSystemParser::parseModifyFunction(const ConditionalStreamReader &reader,
+ StackElement topElement,
+ QXmlStreamAttributes *attributes)
+{
+ const bool validParent = isComplexTypeEntry(topElement)
+ || topElement == StackElement::TypedefTypeEntry
+ || topElement == StackElement::FunctionTypeEntry;
+ if (!validParent) {
+ m_error = QString::fromLatin1("Modify function requires complex type as parent"
+ ", was=%1").arg(tagFromElement(topElement));
+ return false;
+ }
+
+ QString originalSignature;
+ FunctionModification mod;
+ if (!parseModifyFunctionAttributes(attributes, &mod))
+ return false;
+
+ QString access;
+ bool removed = false;
+ QString rename;
+ for (auto i = attributes->size() - 1; i >= 0; --i) {
+ const auto name = attributes->at(i).qualifiedName();
+ if (name == signatureAttribute) {
+ originalSignature = attributes->takeAt(i).value().toString().simplified();
+ } else if (name == accessAttribute) {
+ access = attributes->takeAt(i).value().toString();
+ } else if (name == renameAttribute) {
+ rename = attributes->takeAt(i).value().toString();
+ } else if (name == removeAttribute) {
+ removed = convertRemovalAttribute(attributes->takeAt(i).value());
+ } else if (name == virtualSlotAttribute || name == threadAttribute) {
qCWarning(lcShiboken, "%s",
qPrintable(msgUnimplementedAttributeWarning(reader, name)));
}
}
// Child of global <function>
- if (originalSignature.isEmpty() && topElement.entry->isFunction()) {
- auto f = static_cast<const FunctionTypeEntry *>(topElement.entry);
+ const auto &top = m_contextStack.top();
+ if (originalSignature.isEmpty() && top->entry->isFunction()) {
+ auto f = std::static_pointer_cast<const FunctionTypeEntry>(top->entry);
originalSignature = f->signatures().value(0);
}
const QString signature = TypeDatabase::normalizedSignature(originalSignature);
if (signature.isEmpty()) {
- m_error = QLatin1String("No signature for modified function");
+ m_error = u"No signature for modified function"_s;
return false;
}
- QString errorString = checkSignatureError(signature, QLatin1String("modify-function"));
+ QString errorString = checkSignatureError(signature, u"modify-function"_s);
if (!errorString.isEmpty()) {
m_error = errorString;
return false;
}
- FunctionModification mod;
if (!mod.setSignature(signature, &m_error))
return false;
mod.setOriginalSignature(originalSignature);
- mod.setExceptionHandling(exceptionHandling);
- mod.setOverloadNumber(overloadNumber);
- mod.setSnakeCase(snakeCase);
m_currentSignature = signature;
if (!access.isEmpty()) {
const auto modifierFlagOpt = modifierFromAttribute(access);
if (!modifierFlagOpt.has_value()) {
- m_error = u"Bad access type '"_qs + access + u'\'';
+ m_error = u"Bad access type '"_s + access + u'\'';
return false;
}
const FunctionModification::ModifierFlag m = modifierFlagOpt.value();
- if (m == FunctionModification::Final || m == FunctionModification::NonFinal) {
+ if (m == FunctionModification::NonFinal) {
qCWarning(lcShiboken, "%s",
qPrintable(msgUnimplementedAttributeValueWarning(reader,
- accessAttribute(), access)));
+ accessAttribute, access)));
}
mod.setModifierFlag(m);
}
- if (deprecated)
- mod.setModifierFlag(FunctionModification::Deprecated);
-
mod.setRemoved(removed);
if (!rename.isEmpty()) {
@@ -2500,25 +2892,21 @@ bool TypeSystemParser::parseModifyFunction(const ConditionalStreamReader &reader
mod.setModifierFlag(FunctionModification::Rename);
}
- mod.setIsThread(isThread);
- if (allowThread != TypeSystem::AllowThread::Unspecified)
- mod.setAllowThread(allowThread);
-
- m_contextStack.top()->functionMods << mod;
+ top->functionMods << mod;
return true;
}
bool TypeSystemParser::parseReplaceDefaultExpression(const ConditionalStreamReader &,
- const StackElement &topElement,
+ StackElement topElement,
QXmlStreamAttributes *attributes)
{
- if (!(topElement.type & StackElement::ModifyArgument)) {
- m_error = QLatin1String("Replace default expression only allowed as child of argument modification");
+ if (!(topElement & StackElement::ModifyArgument)) {
+ m_error = u"Replace default expression only allowed as child of argument modification"_s;
return false;
}
- const int withIndex = indexOfAttribute(*attributes, u"with");
+ const auto withIndex = indexOfAttribute(*attributes, u"with");
if (withIndex == -1 || attributes->at(withIndex).value().isEmpty()) {
- m_error = QLatin1String("Default expression replaced with empty string. Use remove-default-expression instead.");
+ m_error = u"Default expression replaced with empty string. Use remove-default-expression instead."_s;
return false;
}
@@ -2527,41 +2915,19 @@ bool TypeSystemParser::parseReplaceDefaultExpression(const ConditionalStreamRead
return true;
}
-CustomFunction *
- TypeSystemParser::parseCustomMetaConstructor(const ConditionalStreamReader &,
- StackElement::ElementType type,
- const StackElement &topElement,
- QXmlStreamAttributes *attributes)
-{
- QString functionName = topElement.entry->name().toLower()
- + (type == StackElement::CustomMetaConstructor
- ? QLatin1String("_create") : QLatin1String("_delete"));
- QString paramName = QLatin1String("copy");
- for (int i = attributes->size() - 1; i >= 0; --i) {
- const auto name = attributes->at(i).qualifiedName();
- if (name == nameAttribute())
- functionName = attributes->takeAt(i).value().toString();
- else if (name == QLatin1String("param-name"))
- paramName = attributes->takeAt(i).value().toString();
- }
- auto *func = new CustomFunction(functionName);
- func->paramName = paramName;
- return func;
-}
-
bool TypeSystemParser::parseReferenceCount(const ConditionalStreamReader &reader,
- const StackElement &topElement,
+ StackElement topElement,
QXmlStreamAttributes *attributes)
{
- if (topElement.type != StackElement::ModifyArgument) {
- m_error = QLatin1String("reference-count must be child of modify-argument");
+ if (topElement != StackElement::ModifyArgument) {
+ m_error = u"reference-count must be child of modify-argument"_s;
return false;
}
ReferenceCount rc;
- for (int i = attributes->size() - 1; i >= 0; --i) {
+ for (auto i = attributes->size() - 1; i >= 0; --i) {
const auto name = attributes->at(i).qualifiedName();
- if (name == actionAttribute()) {
+ if (name == actionAttribute) {
const QXmlStreamAttribute attribute = attributes->takeAt(i);
const auto actionOpt = referenceCountFromAttribute(attribute.value());
if (!actionOpt.has_value()) {
@@ -2578,7 +2944,7 @@ bool TypeSystemParser::parseReferenceCount(const ConditionalStreamReader &reader
default:
break;
}
- } else if (name == QLatin1String("variable-name")) {
+ } else if (name == u"variable-name") {
rc.varName = attributes->takeAt(i).value().toString();
}
}
@@ -2588,21 +2954,21 @@ bool TypeSystemParser::parseReferenceCount(const ConditionalStreamReader &reader
}
bool TypeSystemParser::parseParentOwner(const ConditionalStreamReader &,
- const StackElement &topElement,
+ StackElement topElement,
QXmlStreamAttributes *attributes)
{
- if (topElement.type != StackElement::ModifyArgument) {
- m_error = QLatin1String("parent-policy must be child of modify-argument");
+ if (topElement != StackElement::ModifyArgument) {
+ m_error = u"parent-policy must be child of modify-argument"_s;
return false;
}
ArgumentOwner ao;
- for (int i = attributes->size() - 1; i >= 0; --i) {
+ for (auto i = attributes->size() - 1; i >= 0; --i) {
const auto name = attributes->at(i).qualifiedName();
- if (name == indexAttribute()) {
+ if (name == indexAttribute) {
const QString index = attributes->takeAt(i).value().toString();
if (!parseArgumentIndex(index, &ao.index, &m_error))
return false;
- } else if (name == actionAttribute()) {
+ } else if (name == actionAttribute) {
const auto action = attributes->takeAt(i);
const auto actionOpt = argumentOwnerActionFromAttribute(action.value());
if (!actionOpt.has_value()) {
@@ -2616,46 +2982,62 @@ bool TypeSystemParser::parseParentOwner(const ConditionalStreamReader &,
return true;
}
-bool TypeSystemParser::readFileSnippet(QXmlStreamAttributes *attributes, CodeSnip *snip)
+std::optional<TypeSystemParser::Snippet>
+ TypeSystemParser::readFileSnippet(QXmlStreamAttributes *attributes)
{
- QString fileName;
- QString snippetLabel;
- for (int i = attributes->size() - 1; i >= 0; --i) {
+ Snippet result;
+ for (auto i = attributes->size() - 1; i >= 0; --i) {
const auto name = attributes->at(i).qualifiedName();
- if (name == QLatin1String("file")) {
- fileName = attributes->takeAt(i).value().toString();
- } else if (name == snippetAttribute()) {
- snippetLabel = attributes->takeAt(i).value().toString();
+ if (name == fileAttribute) {
+ result.fileName = attributes->takeAt(i).value().toString();
+ } else if (name == snippetAttribute) {
+ result.snippetLabel = attributes->takeAt(i).value().toString();
}
}
- if (fileName.isEmpty())
- return true;
- const QString resolved = m_database->modifiedTypesystemFilepath(fileName, m_currentPath);
+ if (result.fileName.isEmpty()) {
+ m_error = "Snippet missing file name"_L1;
+ return std::nullopt;
+ }
+ const QString resolved = m_context->db->modifiedTypesystemFilepath(result.fileName,
+ m_currentPath);
if (!QFile::exists(resolved)) {
- m_error = QLatin1String("File for inject code not exist: ")
- + QDir::toNativeSeparators(fileName);
- return false;
+ m_error = u"File for inject code not exist: "_s
+ + QDir::toNativeSeparators(result.fileName);
+ return std::nullopt;
}
QFile codeFile(resolved);
if (!codeFile.open(QIODevice::Text | QIODevice::ReadOnly)) {
m_error = msgCannotOpenForReading(codeFile);
- return false;
+ return std::nullopt;
}
- const auto codeOptional = extractSnippet(QString::fromUtf8(codeFile.readAll()), snippetLabel);
+ const auto contentOptional = extractSnippet(QString::fromUtf8(codeFile.readAll()),
+ result.snippetLabel);
codeFile.close();
- if (!codeOptional.has_value()) {
- m_error = msgCannotFindSnippet(resolved, snippetLabel);
- return false;
+ if (!contentOptional.has_value()) {
+ m_error = msgCannotFindSnippet(resolved, result.snippetLabel);
+ return std::nullopt;
}
+ result.content = contentOptional.value();
+ return result;
+}
+
+bool TypeSystemParser::readCodeSnippet(QXmlStreamAttributes *attributes, CodeSnip *snip)
+{
+ if (!hasFileSnippetAttributes(attributes))
+ return true; // Expecting inline content.
+ const auto snippetOptional = readFileSnippet(attributes);
+ if (!snippetOptional.has_value())
+ return false;
+ const auto snippet = snippetOptional.value();
- QString source = fileName;
- if (!snippetLabel.isEmpty())
- source += QLatin1String(" (") + snippetLabel + QLatin1Char(')');
+ QString source = snippet.fileName;
+ if (!snippet.snippetLabel.isEmpty())
+ source += " ("_L1 + snippet.snippetLabel + u')';
QString content;
QTextStream str(&content);
str << "// ========================================================================\n"
"// START of custom code block [file: "
- << source << "]\n" << codeOptional.value()
+ << source << "]\n" << snippet.content
<< "// END of custom code block [file: " << source
<< "]\n// ========================================================================\n";
snip->addCode(content);
@@ -2663,25 +3045,25 @@ bool TypeSystemParser::readFileSnippet(QXmlStreamAttributes *attributes, CodeSni
}
bool TypeSystemParser::parseInjectCode(const ConditionalStreamReader &,
- const StackElement &topElement,
- StackElement* element, QXmlStreamAttributes *attributes)
-{
- if (!(topElement.type & StackElement::ComplexTypeEntryMask)
- && (topElement.type != StackElement::AddFunction)
- && (topElement.type != StackElement::ModifyFunction)
- && (topElement.type != StackElement::Root)) {
- m_error = QLatin1String("wrong parent type for code injection");
+ StackElement topElement,
+ QXmlStreamAttributes *attributes)
+{
+ if (!isComplexTypeEntry(topElement)
+ && (topElement != StackElement::AddFunction)
+ && (topElement != StackElement::ModifyFunction)
+ && (topElement != StackElement::Root)) {
+ m_error = u"wrong parent type for code injection"_s;
return false;
}
TypeSystem::CodeSnipPosition position = TypeSystem::CodeSnipPositionBeginning;
TypeSystem::Language lang = TypeSystem::TargetLangCode;
CodeSnip snip;
- if (!readFileSnippet(attributes, &snip))
+ if (!readCodeSnippet(attributes, &snip))
return false;
- for (int i = attributes->size() - 1; i >= 0; --i) {
+ for (auto i = attributes->size() - 1; i >= 0; --i) {
const auto name = attributes->at(i).qualifiedName();
- if (name == classAttribute()) {
+ if (name == classAttribute) {
const auto attribute = attributes->takeAt(i);
const auto langOpt = languageFromAttribute(attribute.value());
if (!langOpt.has_value()) {
@@ -2689,7 +3071,7 @@ bool TypeSystemParser::parseInjectCode(const ConditionalStreamReader &,
return false;
}
lang = langOpt.value();
- } else if (name == positionAttribute()) {
+ } else if (name == positionAttribute) {
const auto attribute = attributes->takeAt(i);
const auto positionOpt = codeSnipPositionFromAttribute(attribute.value());
if (!positionOpt.has_value()) {
@@ -2703,32 +3085,36 @@ bool TypeSystemParser::parseInjectCode(const ConditionalStreamReader &,
snip.position = position;
snip.language = lang;
- if (topElement.type == StackElement::ModifyFunction
- || topElement.type == StackElement::AddFunction) {
+ switch (topElement) {
+ case StackElement::ModifyFunction:
+ case StackElement::AddFunction: {
FunctionModification &mod = m_contextStack.top()->functionMods.last();
mod.appendSnip(snip);
if (!snip.code().isEmpty())
mod.setModifierFlag(FunctionModification::CodeInjection);
- element->type = StackElement::InjectCodeInFunction;
- } else if (topElement.type == StackElement::Root) {
- element->entry->addCodeSnip(snip);
- } else if (topElement.type != StackElement::Root) {
- m_contextStack.top()->codeSnips << snip;
+ }
+ break;
+ case StackElement::Root:
+ std::static_pointer_cast<TypeSystemTypeEntry>(m_contextStack.top()->entry)->addCodeSnip(snip);
+ break;
+ default:
+ std::static_pointer_cast<ComplexTypeEntry>(m_contextStack.top()->entry)->addCodeSnip(snip);
+ break;
}
return true;
}
bool TypeSystemParser::parseInclude(const ConditionalStreamReader &,
- const StackElement &topElement,
- TypeEntry *entry, QXmlStreamAttributes *attributes)
+ StackElement topElement,
+ const TypeEntryPtr &entry, QXmlStreamAttributes *attributes)
{
QString fileName;
Include::IncludeType location = Include::IncludePath;
- for (int i = attributes->size() - 1; i >= 0; --i) {
+ for (auto i = attributes->size() - 1; i >= 0; --i) {
const auto name = attributes->at(i).qualifiedName();
- if (name == fileNameAttribute()) {
+ if (name == fileNameAttribute) {
fileName = attributes->takeAt(i).value().toString();
- } else if (name == locationAttribute()) {
+ } else if (name == locationAttribute) {
const auto attribute = attributes->takeAt(i);
const auto locationOpt = locationFromAttribute(attribute.value());
if (!locationOpt.has_value()) {
@@ -2740,13 +3126,16 @@ bool TypeSystemParser::parseInclude(const ConditionalStreamReader &,
}
Include inc(location, fileName);
- if (topElement.type
- & (StackElement::ComplexTypeEntryMask | StackElement::PrimitiveTypeEntry)) {
+ if (isComplexTypeEntry(topElement)
+ || topElement == StackElement::PrimitiveTypeEntry
+ || topElement == StackElement::ContainerTypeEntry
+ || topElement == StackElement::SmartPointerTypeEntry
+ || topElement == StackElement::TypedefTypeEntry) {
entry->setInclude(inc);
- } else if (topElement.type == StackElement::ExtraIncludes) {
+ } else if (topElement == StackElement::ExtraIncludes) {
entry->addExtraInclude(inc);
} else {
- m_error = QLatin1String("Only supported parent tags are primitive-type, complex types or extra-includes");
+ m_error = u"Only supported parent tags are primitive-type, complex types or extra-includes"_s;
return false;
}
return true;
@@ -2755,57 +3144,54 @@ bool TypeSystemParser::parseInclude(const ConditionalStreamReader &,
bool TypeSystemParser::parseSystemInclude(const ConditionalStreamReader &,
QXmlStreamAttributes *attributes)
{
- const int index = indexOfAttribute(*attributes, fileNameAttribute());
+ const auto index = indexOfAttribute(*attributes, fileNameAttribute);
if (index == -1) {
- m_error = msgMissingAttribute(fileNameAttribute());
+ m_error = msgMissingAttribute(fileNameAttribute);
return false;
}
- TypeDatabase::instance()->addSystemInclude(attributes->takeAt(index).value().toString());
+ TypeDatabase::instance()->addForceProcessSystemInclude(attributes->takeAt(index).value().toString());
return true;
}
TemplateInstance *
- TypeSystemParser::parseTemplateInstanceEnum(const ConditionalStreamReader &,
- const StackElement &topElement,
- QXmlStreamAttributes *attributes)
+ TypeSystemParser::parseInsertTemplate(const ConditionalStreamReader &,
+ StackElement topElement,
+ QXmlStreamAttributes *attributes)
{
- if (!(topElement.type & StackElement::CodeSnipMask) &&
- (topElement.type != StackElement::Template) &&
- (topElement.type != StackElement::CustomMetaConstructor) &&
- (topElement.type != StackElement::CustomMetaDestructor) &&
- (topElement.type != StackElement::NativeToTarget) &&
- (topElement.type != StackElement::AddConversion) &&
- (topElement.type != StackElement::ConversionRule)) {
- m_error = QLatin1String("Can only insert templates into code snippets, templates, custom-constructors, "\
- "custom-destructors, conversion-rule, native-to-target or add-conversion tags.");
+ if ((topElement != StackElement::InjectCode) &&
+ (topElement != StackElement::Template) &&
+ (topElement != StackElement::NativeToTarget) &&
+ (topElement != StackElement::AddConversion) &&
+ (topElement != StackElement::ConversionRule)) {
+ m_error = u"Can only insert templates into code snippets, templates, "\
+ "conversion-rule, native-to-target or add-conversion tags."_s;
return nullptr;
}
- const int nameIndex = indexOfAttribute(*attributes, nameAttribute());
+ const auto nameIndex = indexOfAttribute(*attributes, nameAttribute);
if (nameIndex == -1) {
- m_error = msgMissingAttribute(nameAttribute());
+ m_error = msgMissingAttribute(nameAttribute);
return nullptr;
}
return new TemplateInstance(attributes->takeAt(nameIndex).value().toString());
}
bool TypeSystemParser::parseReplace(const ConditionalStreamReader &,
- const StackElement &topElement,
- StackElement *element, QXmlStreamAttributes *attributes)
+ StackElement topElement, QXmlStreamAttributes *attributes)
{
- if (topElement.type != StackElement::TemplateInstanceEnum) {
- m_error = QLatin1String("Can only insert replace rules into insert-template.");
+ if (topElement != StackElement::InsertTemplate) {
+ m_error = u"Can only insert replace rules into insert-template."_s;
return false;
}
QString from;
QString to;
- for (int i = attributes->size() - 1; i >= 0; --i) {
+ for (auto i = attributes->size() - 1; i >= 0; --i) {
const auto name = attributes->at(i).qualifiedName();
- if (name == QLatin1String("from"))
+ if (name == u"from")
from = attributes->takeAt(i).value().toString();
- else if (name == toAttribute())
+ else if (name == toAttribute)
to = attributes->takeAt(i).value().toString();
}
- element->parent->value.templateInstance->addReplaceRule(from, to);
+ m_templateInstance->addReplaceRule(from, to);
return true;
}
@@ -2814,12 +3200,12 @@ bool TypeSystemParser::parseReplace(const ConditionalStreamReader &,
// or it's not possible to cover all primitive target language
// types (which we need to do in order to support fake meta objects)
bool TypeSystemParser::checkDuplicatedTypeEntry(const ConditionalStreamReader &reader,
- StackElement::ElementType t,
+ StackElement t,
const QString &name) const
{
if (t == StackElement::PrimitiveTypeEntry || t == StackElement::FunctionTypeEntry)
return true;
- const auto *duplicated = m_database->findType(name);
+ const auto duplicated = m_context->db->findType(name);
if (!duplicated || duplicated->isNamespace())
return true;
if (duplicated->isBuiltIn()) {
@@ -2845,7 +3231,7 @@ static bool parseVersion(const QString &versionSpec, const QString &package,
return true;
}
-bool TypeSystemParser::startElement(const ConditionalStreamReader &reader)
+bool TypeSystemParser::startElement(const ConditionalStreamReader &reader, StackElement element)
{
if (m_ignoreDepth) {
++m_ignoreDepth;
@@ -2856,14 +3242,14 @@ bool TypeSystemParser::startElement(const ConditionalStreamReader &reader)
QXmlStreamAttributes attributes = reader.attributes();
VersionRange versionRange;
- for (int i = attributes.size() - 1; i >= 0; --i) {
+ for (auto i = attributes.size() - 1; i >= 0; --i) {
const auto name = attributes.at(i).qualifiedName();
- if (name == sinceAttribute()) {
+ if (name == sinceAttribute) {
if (!parseVersion(attributes.takeAt(i).value().toString(),
m_defaultPackage, &versionRange.since, &m_error)) {
return false;
}
- } else if (name == untilAttribute()) {
+ } else if (name == untilAttribute) {
if (!parseVersion(attributes.takeAt(i).value().toString(),
m_defaultPackage, &versionRange.until, &m_error)) {
return false;
@@ -2872,89 +3258,76 @@ bool TypeSystemParser::startElement(const ConditionalStreamReader &reader)
}
if (!m_defaultPackage.isEmpty() && !versionRange.isNull()) {
- TypeDatabase* td = TypeDatabase::instance();
+ auto *td = TypeDatabase::instance();
if (!td->checkApiVersion(m_defaultPackage, versionRange)) {
++m_ignoreDepth;
return true;
}
}
- if (tagName.compare(QLatin1String("import-file"), Qt::CaseInsensitive) == 0)
+ if (element == StackElement::ImportFile)
return importFileElement(attributes);
- const auto elementTypeOpt = elementFromTag(tagName);
- if (!elementTypeOpt.has_value()) {
- m_error = u"Unknown tag name: '"_qs + tagName.toString() + u'\'';
- return false;
- }
-
- if (m_currentDroppedEntry) {
+ if (m_currentDroppedEntryDepth) {
++m_currentDroppedEntryDepth;
return true;
}
- std::unique_ptr<StackElement> element(new StackElement(m_current));
- element->type = elementTypeOpt.value();
-
- if (element->type == StackElement::Root && m_generate == TypeEntry::GenerateCode)
+ if (element == StackElement::Root && m_generate == TypeEntry::GenerateCode)
customConversionsForReview.clear();
- if (element->type == StackElement::CustomMetaConstructor
- || element->type == StackElement::CustomMetaDestructor) {
+ if (element == StackElement::Unimplemented) {
qCWarning(lcShiboken, "%s",
qPrintable(msgUnimplementedElementWarning(reader, tagName)));
+ return true;
}
- switch (element->type) {
- case StackElement::Root:
- case StackElement::NamespaceTypeEntry:
- case StackElement::InterfaceTypeEntry:
- case StackElement::ObjectTypeEntry:
- case StackElement::ValueTypeEntry:
- case StackElement::PrimitiveTypeEntry:
- case StackElement::TypedefTypeEntry:
- case StackElement::ContainerTypeEntry:
- m_contextStack.push(new StackElementContext());
- break;
- default:
- break;
+ if (isTypeEntry(element) || element == StackElement::Root)
+ m_contextStack.push(std::make_shared<StackElementContext>());
+
+ if (m_contextStack.isEmpty()) {
+ m_error = msgNoRootTypeSystemEntry();
+ return false;
}
- if (element->type & StackElement::TypeEntryMask) {
+ const auto &top = m_contextStack.top();
+ const StackElement topElement = m_stack.value(m_stack.size() - 2, StackElement::None);
+
+ if (isTypeEntry(element)) {
QString name;
- if (element->type != StackElement::FunctionTypeEntry) {
- const int nameIndex = indexOfAttribute(attributes, nameAttribute());
+ if (element != StackElement::FunctionTypeEntry) {
+ const auto nameIndex = indexOfAttribute(attributes, nameAttribute);
if (nameIndex != -1) {
name = attributes.takeAt(nameIndex).value().toString();
- } else if (element->type != StackElement::EnumTypeEntry) { // anonymous enum?
- m_error = msgMissingAttribute(nameAttribute());
+ } else if (element != StackElement::EnumTypeEntry) { // anonymous enum?
+ m_error = msgMissingAttribute(nameAttribute);
return false;
}
}
// Allow for primitive and/or std:: types only, else require proper nesting.
- if (element->type != StackElement::PrimitiveTypeEntry && name.contains(QLatin1Char(':'))
- && !name.contains(QLatin1String("std::"))) {
+ if (element != StackElement::PrimitiveTypeEntry && name.contains(u':')
+ && !name.contains(u"std::")) {
m_error = msgIncorrectlyNestedName(name);
return false;
}
- if (m_database->hasDroppedTypeEntries()) {
- const QString identifier = element->type == StackElement::FunctionTypeEntry
- ? attributes.value(signatureAttribute()).toString() : name;
- if (shouldDropTypeEntry(m_database, element.get(), identifier)) {
- m_currentDroppedEntry = element.release();
+ if (m_context->db->hasDroppedTypeEntries()) {
+ const QString identifier = element == StackElement::FunctionTypeEntry
+ ? attributes.value(signatureAttribute).toString().simplified() : name;
+ if (shouldDropTypeEntry(m_context->db, m_contextStack, identifier)) {
m_currentDroppedEntryDepth = 1;
if (ReportHandler::isDebug(ReportHandler::SparseDebug)) {
qCInfo(lcShiboken, "Type system entry '%s' was intentionally dropped from generation.",
qPrintable(identifier));
}
+ m_contextStack.pop();
return true;
}
}
// The top level tag 'function' has only the 'signature' tag
// and we should extract the 'name' value from it.
- if (element->type == StackElement::FunctionTypeEntry
+ if (element == StackElement::FunctionTypeEntry
&& !parseRenameFunction(reader, &name, &attributes)) {
return false;
}
@@ -2962,146 +3335,134 @@ bool TypeSystemParser::startElement(const ConditionalStreamReader &reader)
// We need to be able to have duplicate primitive type entries,
// or it's not possible to cover all primitive target language
// types (which we need to do in order to support fake meta objects)
- if (element->type != StackElement::PrimitiveTypeEntry
- && element->type != StackElement::FunctionTypeEntry) {
- TypeEntry *tmp = m_database->findType(name);
+ if (element != StackElement::PrimitiveTypeEntry
+ && element != StackElement::FunctionTypeEntry) {
+ TypeEntryPtr tmp = m_context->db->findType(name);
if (tmp && !tmp->isNamespace())
qCWarning(lcShiboken).noquote().nospace()
<< "Duplicate type entry: '" << name << '\'';
}
- if (element->type == StackElement::EnumTypeEntry) {
- const int enumIdentifiedByIndex = indexOfAttribute(attributes, enumIdentifiedByValueAttribute());
+ if (element == StackElement::EnumTypeEntry) {
+ const auto enumIdentifiedByIndex =
+ indexOfAttribute(attributes, enumIdentifiedByValueAttribute);
const QString identifiedByValue = enumIdentifiedByIndex != -1
? attributes.takeAt(enumIdentifiedByIndex).value().toString() : QString();
if (name.isEmpty()) {
name = identifiedByValue;
} else if (!identifiedByValue.isEmpty()) {
- m_error = QLatin1String("can't specify both 'name' and 'identified-by-value' attributes");
+ m_error = u"can't specify both 'name' and 'identified-by-value' attributes"_s;
return false;
}
}
if (name.isEmpty()) {
- m_error = QLatin1String("no 'name' attribute specified");
+ m_error = u"no 'name' attribute specified"_s;
return false;
}
- switch (element->type) {
+ switch (element) {
case StackElement::CustomTypeEntry:
- element->entry =
- parseCustomTypeEntry(reader, name, versionRange.since, &attributes);
- if (Q_UNLIKELY(!element->entry))
+ top->entry = parseCustomTypeEntry(reader, name, versionRange.since, &attributes);
+ if (Q_UNLIKELY(!top->entry))
return false;
break;
case StackElement::PrimitiveTypeEntry:
- element->entry = parsePrimitiveTypeEntry(reader, name, versionRange.since, &attributes);
- if (Q_UNLIKELY(!element->entry))
+ top->entry = parsePrimitiveTypeEntry(reader, name, versionRange.since, &attributes);
+ if (Q_UNLIKELY(!top->entry))
return false;
break;
case StackElement::ContainerTypeEntry:
- if (ContainerTypeEntry *ce = parseContainerTypeEntry(reader, name, versionRange.since, &attributes)) {
- applyComplexTypeAttributes(reader, ce, &attributes);
- element->entry = ce;
- } else {
+ top->entry = parseContainerTypeEntry(reader, name, versionRange.since, &attributes);
+ if (top->entry == nullptr)
return false;
- }
break;
case StackElement::SmartPointerTypeEntry:
- if (SmartPointerTypeEntry *se = parseSmartPointerEntry(reader, name, versionRange.since, &attributes)) {
- applyComplexTypeAttributes(reader, se, &attributes);
- element->entry = se;
- } else {
+ top->entry = parseSmartPointerEntry(reader, name, versionRange.since, &attributes);
+ if (top->entry == nullptr)
return false;
- }
break;
case StackElement::EnumTypeEntry:
m_currentEnum = parseEnumTypeEntry(reader, name, versionRange.since, &attributes);
if (Q_UNLIKELY(!m_currentEnum))
return false;
- element->entry = m_currentEnum;
+ top->entry = m_currentEnum;
break;
case StackElement::ValueTypeEntry:
- if (ValueTypeEntry *ve = parseValueTypeEntry(reader, name, versionRange.since, &attributes)) {
- applyComplexTypeAttributes(reader, ve, &attributes);
- element->entry = ve;
- } else {
+ top->entry = parseValueTypeEntry(reader, name, versionRange.since, &attributes);
+ if (top->entry == nullptr)
return false;
- }
break;
case StackElement::NamespaceTypeEntry:
- if (auto entry = parseNamespaceTypeEntry(reader, name, versionRange.since, &attributes))
- element->entry = entry;
- else
+ top->entry = parseNamespaceTypeEntry(reader, name, versionRange.since, &attributes);
+ if (top->entry == nullptr)
return false;
break;
case StackElement::ObjectTypeEntry:
- case StackElement::InterfaceTypeEntry:
+ case StackElement::InterfaceTypeEntry: {
if (!checkRootElement())
return false;
- element->entry = new ObjectTypeEntry(name, versionRange.since, currentParentTypeEntry());
- applyCommonAttributes(reader, element->entry, &attributes);
- applyComplexTypeAttributes(reader, static_cast<ComplexTypeEntry *>(element->entry), &attributes);
+ auto ce = std::make_shared<ObjectTypeEntry>(name, versionRange.since, currentParentTypeEntry());
+ top->entry = ce;
+ applyCommonAttributes(reader, top->entry, &attributes);
+ applyComplexTypeAttributes(reader, ce, &attributes);
+ }
break;
case StackElement::FunctionTypeEntry:
- element->entry = parseFunctionTypeEntry(reader, name, versionRange.since, &attributes);
- if (Q_UNLIKELY(!element->entry))
+ top->entry = parseFunctionTypeEntry(reader, name, versionRange.since, &attributes);
+ if (Q_UNLIKELY(!top->entry))
return false;
break;
case StackElement::TypedefTypeEntry:
- if (TypedefEntry *te = parseTypedefEntry(reader, name, versionRange.since, &attributes)) {
- applyComplexTypeAttributes(reader, te, &attributes);
- element->entry = te;
- } else {
+ top->entry = parseTypedefEntry(reader, name, topElement,
+ versionRange.since, &attributes);
+ if (top->entry == nullptr)
return false;
- }
break;
default:
Q_ASSERT(false);
}
- if (element->entry) {
- if (checkDuplicatedTypeEntry(reader, element->type, element->entry->name())
- && !m_database->addType(element->entry, &m_error)) {
+ if (top->entry) {
+ if (checkDuplicatedTypeEntry(reader, element, top->entry->name())
+ && !m_context->db->addType(top->entry, &m_error)) {
return false;
}
} else {
qCWarning(lcShiboken).noquote().nospace()
- << u"Type: "_qs + name + u" was rejected by typesystem"_qs;
+ << u"Type: "_s + name + u" was rejected by typesystem"_s;
}
- } else if (element->type == StackElement::InjectDocumentation) {
- if (!parseInjectDocumentation(reader, &attributes))
+ } else if (element == StackElement::InjectDocumentation) {
+ if (!parseInjectDocumentation(reader, topElement, &attributes))
return false;
- } else if (element->type == StackElement::ModifyDocumentation) {
- if (!parseModifyDocumentation(reader, &attributes))
+ } else if (element == StackElement::ModifyDocumentation) {
+ if (!parseModifyDocumentation(reader, topElement, &attributes))
return false;
- } else if (element->type != StackElement::None) {
- bool topLevel = element->type == StackElement::Root
- || element->type == StackElement::SuppressedWarning
- || element->type == StackElement::Rejection
- || element->type == StackElement::LoadTypesystem
- || element->type == StackElement::InjectCode
- || element->type == StackElement::ExtraIncludes
- || element->type == StackElement::SystemInclude
- || element->type == StackElement::ConversionRule
- || element->type == StackElement::AddFunction
- || element->type == StackElement::Template;
-
- if (!topLevel && m_current->type == StackElement::Root) {
- m_error = u"Tag requires parent: '"_qs + tagName.toString() + u'\'';
+ } else if (element != StackElement::None) {
+ bool topLevel = element == StackElement::Root
+ || element == StackElement::SuppressedWarning
+ || element == StackElement::Rejection
+ || element == StackElement::LoadTypesystem
+ || element == StackElement::InjectCode
+ || element == StackElement::ExtraIncludes
+ || element == StackElement::SystemInclude
+ || element == StackElement::ConversionRule
+ || element == StackElement::AddFunction
+ || element == StackElement::DeclareFunction
+ || element == StackElement::Template
+ || element == StackElement::OpaqueContainer;
+
+ if (!topLevel && m_stack.at(m_stack.size() - 2) == StackElement::Root) {
+ m_error = u"Tag requires parent: '"_s + tagName.toString() + u'\'';
return false;
}
- StackElement topElement = !m_current ? StackElement(nullptr) : *m_current;
- element->entry = topElement.entry;
-
- switch (element->type) {
+ switch (element) {
case StackElement::Root:
- element->entry = parseRootElement(reader, versionRange.since, &attributes);
- element->type = StackElement::Root;
+ top->entry = parseRootElement(reader, versionRange.since, &attributes);
break;
case StackElement::LoadTypesystem:
if (!loadTypesystem(reader, &attributes))
@@ -3124,15 +3485,24 @@ bool TypeSystemParser::startElement(const ConditionalStreamReader &reader)
return false;
break;
case StackElement::TargetToNative: {
- if (topElement.type != StackElement::ConversionRule) {
- m_error = QLatin1String("Target to Native conversions can only be specified for custom conversion rules.");
+ if (topElement != StackElement::ConversionRule) {
+ m_error = u"Target to Native conversions can only be specified for custom conversion rules."_s;
return false;
}
- const int replaceIndex = indexOfAttribute(attributes, replaceAttribute());
- const bool replace = replaceIndex == -1
- || convertBoolean(attributes.takeAt(replaceIndex).value(),
- replaceAttribute(), true);
- m_current->entry->customConversion()->setReplaceOriginalTargetToNativeConversions(replace);
+
+ const auto topParent = m_stack.value(m_stack.size() - 3, StackElement::None);
+ if (isTypeEntry(topParent)) {
+ const auto replaceIndex = indexOfAttribute(attributes, replaceAttribute);
+ const bool replace = replaceIndex == -1
+ || convertBoolean(attributes.takeAt(replaceIndex).value(),
+ replaceAttribute, true);
+ auto customConversion = CustomConversion::getCustomConversion(top->entry);
+ if (!customConversion) {
+ m_error = msgMissingCustomConversion(top->entry);
+ return false;
+ }
+ customConversion->setReplaceOriginalTargetToNativeConversions(replace);
+ }
}
break;
case StackElement::AddConversion:
@@ -3152,14 +3522,17 @@ bool TypeSystemParser::startElement(const ConditionalStreamReader &reader)
return false;
break;
case StackElement::SuppressedWarning: {
- const int textIndex = indexOfAttribute(attributes, textAttribute());
+ const auto textIndex = indexOfAttribute(attributes, textAttribute);
if (textIndex == -1) {
qCWarning(lcShiboken) << "Suppressed warning with no text specified";
} else {
const QString suppressedWarning =
attributes.takeAt(textIndex).value().toString();
- if (!m_database->addSuppressedWarning(suppressedWarning, &m_error))
+ if (!m_context->db->addSuppressedWarning(suppressedWarning,
+ m_generate == TypeEntry::GenerateCode,
+ &m_error)) {
return false;
+ }
}
}
break;
@@ -3168,12 +3541,12 @@ bool TypeSystemParser::startElement(const ConditionalStreamReader &reader)
return false;
break;
case StackElement::RemoveArgument:
- if (topElement.type != StackElement::ModifyArgument) {
- m_error = QLatin1String("Removing argument requires argument modification as parent");
+ if (topElement != StackElement::ModifyArgument) {
+ m_error = u"Removing argument requires argument modification as parent"_s;
return false;
}
- m_contextStack.top()->functionMods.last().argument_mods().last().setRemoved(true);
+ top->functionMods.last().argument_mods().last().setRemoved(true);
break;
case StackElement::ModifyField:
@@ -3182,7 +3555,11 @@ bool TypeSystemParser::startElement(const ConditionalStreamReader &reader)
break;
case StackElement::DeclareFunction:
case StackElement::AddFunction:
- if (!parseAddFunction(reader, topElement, element->type, &attributes))
+ if (!parseAddFunction(reader, topElement, element, &attributes))
+ return false;
+ break;
+ case StackElement::AddPyMethodDef:
+ if (!parseAddPyMethodDef(reader, topElement, &attributes))
return false;
break;
case StackElement::Property:
@@ -3198,12 +3575,7 @@ bool TypeSystemParser::startElement(const ConditionalStreamReader &reader)
return false;
break;
case StackElement::RemoveDefaultExpression:
- m_contextStack.top()->functionMods.last().argument_mods().last().setRemovedDefaultExpression(true);
- break;
- case StackElement::CustomMetaConstructor:
- case StackElement::CustomMetaDestructor:
- element->value.customFunction =
- parseCustomMetaConstructor(reader, element->type, topElement, &attributes);
+ top->functionMods.last().argument_mods().last().setRemovedDefaultExpression(true);
break;
case StackElement::ReferenceCount:
if (!parseReferenceCount(reader, topElement, &attributes))
@@ -3214,46 +3586,52 @@ bool TypeSystemParser::startElement(const ConditionalStreamReader &reader)
return false;
break;
case StackElement::Array:
- if (topElement.type != StackElement::ModifyArgument) {
- m_error = QLatin1String("array must be child of modify-argument");
+ if (topElement != StackElement::ModifyArgument) {
+ m_error = u"array must be child of modify-argument"_s;
return false;
}
- m_contextStack.top()->functionMods.last().argument_mods().last().setArray(true);
+ top->functionMods.last().argument_mods().last().setArray(true);
break;
case StackElement::InjectCode:
- if (!parseInjectCode(reader, topElement, element.get(), &attributes))
+ if (!parseInjectCode(reader, topElement, &attributes))
return false;
break;
case StackElement::Include:
- if (!parseInclude(reader, topElement, element->entry, &attributes))
+ if (!parseInclude(reader, topElement, top->entry, &attributes))
return false;
break;
case StackElement::Rejection:
- if (!addRejection(m_database, &attributes, &m_error))
+ if (!addRejection(m_context->db, m_generate == TypeEntry::GenerateCode,
+ &attributes, &m_error)) {
return false;
+ }
break;
case StackElement::SystemInclude:
if (!parseSystemInclude(reader, &attributes))
return false;
break;
case StackElement::Template: {
- const int nameIndex = indexOfAttribute(attributes, nameAttribute());
+ const auto nameIndex = indexOfAttribute(attributes, nameAttribute);
if (nameIndex == -1) {
- m_error = msgMissingAttribute(nameAttribute());
+ m_error = msgMissingAttribute(nameAttribute);
return false;
}
- element->value.templateEntry =
- new TemplateEntry(attributes.takeAt(nameIndex).value().toString());
+ m_templateEntry.reset(new TemplateEntry(attributes.takeAt(nameIndex).value().toString()));
}
break;
- case StackElement::TemplateInstanceEnum:
- element->value.templateInstance =
- parseTemplateInstanceEnum(reader, topElement, &attributes);
- if (!element->value.templateInstance)
+ case StackElement::InsertTemplate:
+ m_templateInstance.reset(parseInsertTemplate(reader, topElement, &attributes));
+ if (!m_templateInstance)
return false;
break;
case StackElement::Replace:
- if (!parseReplace(reader, topElement, element.get(), &attributes))
+ if (!parseReplace(reader, topElement, &attributes))
+ return false;
+ break;
+ case StackElement::OpaqueContainer:
+ if (!parseOpaqueContainerElement(&attributes))
+ case StackElement::Configuration:
+ if (!parseConfiguration(topElement, &attributes))
return false;
break;
default:
@@ -3266,6 +3644,5 @@ bool TypeSystemParser::startElement(const ConditionalStreamReader &reader)
qCWarning(lcShiboken, "%s", qPrintable(msgReaderWarning(reader, message)));
}
- m_current = element.release();
return true;
}
diff --git a/sources/shiboken6/ApiExtractor/typesystemparser.h b/sources/shiboken6/ApiExtractor/typesystemparser.h
deleted file mode 100644
index 903e84421..000000000
--- a/sources/shiboken6/ApiExtractor/typesystemparser.h
+++ /dev/null
@@ -1,287 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef TYPESYSTEMPARSER_H
-#define TYPESYSTEMPARSER_H
-
-#include "typesystem.h"
-#include "modifications.h"
-
-#include <QtCore/QStack>
-#include <QtCore/QHash>
-#include <QtCore/QScopedPointer>
-
-QT_FORWARD_DECLARE_CLASS(QVersionNumber)
-QT_FORWARD_DECLARE_CLASS(QXmlStreamAttributes)
-QT_FORWARD_DECLARE_CLASS(QXmlStreamReader)
-
-class ConditionalStreamReader;
-
-class TypeSystemEntityResolver;
-class TypeDatabase;
-class StackElement
-{
- public:
- enum ElementType {
- None = 0x0,
-
- // Type tags (0x1, ... , 0xff)
- ObjectTypeEntry = 0x1,
- ValueTypeEntry = 0x2,
- InterfaceTypeEntry = 0x3,
- NamespaceTypeEntry = 0x4,
- ComplexTypeEntryMask = 0x7,
-
- // Non-complex type tags (0x8, 0x9, ... , 0xf)
- PrimitiveTypeEntry = 0x8,
- EnumTypeEntry = 0x9,
- ContainerTypeEntry = 0xa,
- FunctionTypeEntry = 0xb,
- CustomTypeEntry = 0xc,
- SmartPointerTypeEntry = 0xd,
- TypedefTypeEntry = 0xe,
- TypeEntryMask = 0xf,
-
- // Documentation tags
- InjectDocumentation = 0x10,
- ModifyDocumentation = 0x20,
- DocumentationMask = 0xf0,
-
- // Simple tags (0x100, 0x200, ... , 0xf00)
- ExtraIncludes = 0x0100,
- Include = 0x0200,
- ModifyFunction = 0x0300,
- ModifyField = 0x0400,
- Root = 0x0500,
- CustomMetaConstructor = 0x0600,
- CustomMetaDestructor = 0x0700,
- SuppressedWarning = 0x0900,
- Rejection = 0x0a00,
- LoadTypesystem = 0x0b00,
- RejectEnumValue = 0x0c00,
- Template = 0x0d00,
- TemplateInstanceEnum = 0x0e00,
- Replace = 0x0f00,
- AddFunction = 0x1000,
- DeclareFunction = 0x1100,
- NativeToTarget = 0x1200,
- TargetToNative = 0x1300,
- AddConversion = 0x1400,
- SystemInclude = 0x1500,
- Property = 0x1600,
- SimpleMask = 0x3f00,
-
- // Code snip tags (0x1000, 0x2000, ... , 0xf000)
- InjectCode = 0x4000,
- InjectCodeInFunction = 0x8000,
- CodeSnipMask = 0xc000,
-
- // Function modifier tags (0x010000, 0x020000, ... , 0xf00000)
- Rename = 0x040000, // (modify-argument)
- ModifyArgument = 0x080000,
- Thread = 0x100000,
- FunctionModifiers = 0xff0000,
-
- // Argument modifier tags (0x01000000 ... 0xf0000000)
- ConversionRule = 0x01000000,
- ReplaceType = 0x02000000,
- ReplaceDefaultExpression = 0x04000000,
- RemoveArgument = 0x08000000,
- DefineOwnership = 0x10000000,
- RemoveDefaultExpression = 0x20000000,
- NoNullPointers = 0x40000000,
- ReferenceCount = 0x80000000,
- ParentOwner = 0x90000000,
- Array = 0xA0000000,
- ArgumentModifiers = 0xff000000
- };
-
- StackElement(StackElement *p) : entry(nullptr), type(None), parent(p) { }
-
- TypeEntry* entry;
- ElementType type;
- StackElement *parent;
-
- union {
- TemplateInstance* templateInstance;
- TemplateEntry* templateEntry;
- CustomFunction* customFunction;
- } value;
-};
-
-struct StackElementContext
-{
- CodeSnipList codeSnips;
- AddedFunctionList addedFunctions;
- FunctionModificationList functionMods;
- FieldModificationList fieldMods;
- DocModificationList docModifications;
- int addedFunctionModificationIndex = -1;
-};
-
-class TypeSystemParser
-{
-public:
- Q_DISABLE_COPY(TypeSystemParser)
-
- TypeSystemParser(TypeDatabase* database, bool generate);
- ~TypeSystemParser();
-
- bool parse(ConditionalStreamReader &reader);
-
- QString errorString() const { return m_error; }
-
-private:
- bool parseXml(ConditionalStreamReader &reader);
- bool setupSmartPointerInstantiations();
- bool startElement(const ConditionalStreamReader &reader);
- SmartPointerTypeEntry *parseSmartPointerEntry(const ConditionalStreamReader &,
- const QString &name,
- const QVersionNumber &since,
- QXmlStreamAttributes *attributes);
- bool endElement(QStringView localName);
- template <class String> // QString/QStringRef
- bool characters(const String &ch);
-
- bool importFileElement(const QXmlStreamAttributes &atts);
-
- const TypeEntry *currentParentTypeEntry() const;
- bool checkRootElement();
- bool applyCommonAttributes(const ConditionalStreamReader &reader, TypeEntry *type,
- QXmlStreamAttributes *attributes);
- PrimitiveTypeEntry *
- parsePrimitiveTypeEntry(const ConditionalStreamReader &, const QString &name,
- const QVersionNumber &since, QXmlStreamAttributes *);
- CustomTypeEntry *
- parseCustomTypeEntry(const ConditionalStreamReader &, const QString &name,
- const QVersionNumber &since, QXmlStreamAttributes *);
- ContainerTypeEntry *
- parseContainerTypeEntry(const ConditionalStreamReader &, const QString &name,
- const QVersionNumber &since, QXmlStreamAttributes *);
- EnumTypeEntry *
- parseEnumTypeEntry(const ConditionalStreamReader &, const QString &name,
- const QVersionNumber &since, QXmlStreamAttributes *);
- FlagsTypeEntry *
- parseFlagsEntry(const ConditionalStreamReader &, EnumTypeEntry *enumEntry,
- QString flagName, const QVersionNumber &since,
- QXmlStreamAttributes *);
-
- NamespaceTypeEntry *
- parseNamespaceTypeEntry(const ConditionalStreamReader &,
- const QString &name, const QVersionNumber &since,
- QXmlStreamAttributes *attributes);
-
- ValueTypeEntry *
- parseValueTypeEntry(const ConditionalStreamReader &, const QString &name,
- const QVersionNumber &since, QXmlStreamAttributes *);
- FunctionTypeEntry *
- parseFunctionTypeEntry(const ConditionalStreamReader &, const QString &name,
- const QVersionNumber &since, QXmlStreamAttributes *);
- TypedefEntry *
- parseTypedefEntry(const ConditionalStreamReader &, const QString &name,
- const QVersionNumber &since, QXmlStreamAttributes *);
- void applyComplexTypeAttributes(const ConditionalStreamReader &, ComplexTypeEntry *ctype,
- QXmlStreamAttributes *) const;
- bool parseRenameFunction(const ConditionalStreamReader &, QString *name,
- QXmlStreamAttributes *);
- bool parseInjectDocumentation(const ConditionalStreamReader &, QXmlStreamAttributes *);
- bool parseModifyDocumentation(const ConditionalStreamReader &, QXmlStreamAttributes *);
- TypeSystemTypeEntry *
- parseRootElement(const ConditionalStreamReader &, const QVersionNumber &since,
- QXmlStreamAttributes *);
- bool loadTypesystem(const ConditionalStreamReader &, QXmlStreamAttributes *);
- bool parseRejectEnumValue(const ConditionalStreamReader &, QXmlStreamAttributes *);
- bool parseReplaceArgumentType(const ConditionalStreamReader &, const StackElement &topElement,
- QXmlStreamAttributes *);
- bool parseCustomConversion(const ConditionalStreamReader &, const StackElement &topElement,
- QXmlStreamAttributes *);
- bool parseAddConversion(const ConditionalStreamReader &, const StackElement &topElement,
- QXmlStreamAttributes *);
- bool parseNativeToTarget(const ConditionalStreamReader &, const StackElement &topElement,
- QXmlStreamAttributes *attributes);
- bool parseModifyArgument(const ConditionalStreamReader &, const StackElement &topElement,
- QXmlStreamAttributes *attributes);
- bool parseNoNullPointer(const ConditionalStreamReader &, const StackElement &topElement,
- QXmlStreamAttributes *attributes);
- bool parseDefineOwnership(const ConditionalStreamReader &, const StackElement &topElement,
- QXmlStreamAttributes *);
- bool parseRename(const ConditionalStreamReader &, const StackElement &topElement,
- QXmlStreamAttributes *);
- bool parseModifyField(const ConditionalStreamReader &, QXmlStreamAttributes *);
- bool parseAddFunction(const ConditionalStreamReader &, const StackElement &topElement,
- StackElement::ElementType t, QXmlStreamAttributes *);
- bool parseProperty(const ConditionalStreamReader &, const StackElement &topElement,
- QXmlStreamAttributes *);
- bool parseModifyFunction(const ConditionalStreamReader &, const StackElement &topElement,
- QXmlStreamAttributes *);
- bool parseReplaceDefaultExpression(const ConditionalStreamReader &,
- const StackElement &topElement, QXmlStreamAttributes *);
- static CustomFunction *
- parseCustomMetaConstructor(const ConditionalStreamReader &,
- StackElement::ElementType type,
- const StackElement &topElement, QXmlStreamAttributes *);
- bool parseReferenceCount(const ConditionalStreamReader &, const StackElement &topElement,
- QXmlStreamAttributes *);
- bool parseParentOwner(const ConditionalStreamReader &, const StackElement &topElement,
- QXmlStreamAttributes *);
- bool readFileSnippet(QXmlStreamAttributes *attributes, CodeSnip *snip);
- bool parseInjectCode(const ConditionalStreamReader &, const StackElement &topElement,
- StackElement* element, QXmlStreamAttributes *);
- bool parseInclude(const ConditionalStreamReader &, const StackElement &topElement,
- TypeEntry *entry, QXmlStreamAttributes *);
- bool parseSystemInclude(const ConditionalStreamReader &, QXmlStreamAttributes *);
- TemplateInstance
- *parseTemplateInstanceEnum(const ConditionalStreamReader &, const StackElement &topElement,
- QXmlStreamAttributes *);
- bool parseReplace(const ConditionalStreamReader &, const StackElement &topElement,
- StackElement *element, QXmlStreamAttributes *);
- bool checkDuplicatedTypeEntry(const ConditionalStreamReader &reader,
- StackElement::ElementType t, const QString &name) const;
-
- TypeDatabase* m_database;
- StackElement* m_current = nullptr;
- StackElement* m_currentDroppedEntry = nullptr;
- int m_currentDroppedEntryDepth = 0;
- int m_ignoreDepth = 0;
- QString m_defaultPackage;
- QString m_defaultSuperclass;
- TypeSystem::ExceptionHandling m_exceptionHandling = TypeSystem::ExceptionHandling::Unspecified;
- TypeSystem::AllowThread m_allowThread = TypeSystem::AllowThread::Unspecified;
- QString m_error;
- const TypeEntry::CodeGeneration m_generate;
-
- EnumTypeEntry* m_currentEnum = nullptr;
- QStack<StackElementContext*> m_contextStack;
-
- QString m_currentSignature;
- QString m_currentPath;
- QString m_currentFile;
- QScopedPointer<TypeSystemEntityResolver> m_entityResolver;
- QHash<SmartPointerTypeEntry *, QString> m_smartPointerInstantiations;
-};
-
-#endif // TYPESYSTEMPARSER_H
diff --git a/sources/shiboken6/ApiExtractor/typesystemparser_p.h b/sources/shiboken6/ApiExtractor/typesystemparser_p.h
new file mode 100644
index 000000000..4d9d4fd92
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/typesystemparser_p.h
@@ -0,0 +1,297 @@
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+#ifndef TYPESYSTEMPARSER_H
+#define TYPESYSTEMPARSER_H
+
+#include "typesystem.h"
+#include "containertypeentry.h"
+#include "typedatabase.h"
+#include "typedatabase_p.h"
+#include "typesystem_typedefs.h"
+#include "codesnip.h"
+
+#include <QtCore/QStack>
+#include <QtCore/QHash>
+#include <QtCore/QScopedPointer>
+
+#include <memory>
+#include <optional>
+
+QT_FORWARD_DECLARE_CLASS(QVersionNumber)
+QT_FORWARD_DECLARE_CLASS(QXmlStreamAttributes)
+QT_FORWARD_DECLARE_CLASS(QXmlStreamReader)
+
+class ConditionalStreamReader;
+
+class TypeSystemEntityResolver;
+class TypeDatabase;
+
+class FlagsTypeEntry;
+class TypeSystemTypeEntry;
+class ValueTypeEntry;
+class EnumTypeEntry;
+
+enum class ParserState;
+
+enum class StackElement {
+ None,
+
+ // Type tags
+ ObjectTypeEntry,
+ FirstTypeEntry = ObjectTypeEntry,
+ ValueTypeEntry,
+ InterfaceTypeEntry,
+ NamespaceTypeEntry,
+ LastComplexTypeEntry = NamespaceTypeEntry,
+
+ // Non-complex type tags
+ PrimitiveTypeEntry,
+ EnumTypeEntry,
+ ContainerTypeEntry,
+ FunctionTypeEntry,
+ CustomTypeEntry,
+ SmartPointerTypeEntry,
+ TypedefTypeEntry,
+ LastTypeEntry = TypedefTypeEntry,
+
+ // Documentation tags
+ InjectDocumentation,
+ FirstDocumentation = InjectDocumentation,
+ ModifyDocumentation,
+ LastDocumentation = ModifyDocumentation,
+
+ // Simple tags
+ ExtraIncludes,
+ Include,
+ ModifyFunction,
+ ModifyField,
+ Root,
+ SuppressedWarning,
+ Rejection,
+ LoadTypesystem,
+ RejectEnumValue,
+ Template,
+ InsertTemplate,
+ Replace,
+ AddFunction,
+ AddPyMethodDef,
+ DeclareFunction,
+ NativeToTarget,
+ TargetToNative,
+ AddConversion,
+ SystemInclude,
+ Property,
+
+ // Code snip tags
+ InjectCode,
+
+ // Function modifier tags
+ Rename, // (modify-argument)
+ ModifyArgument,
+ Thread,
+
+ // Argument modifier tags
+ ConversionRule,
+ ReplaceType,
+ ReplaceDefaultExpression,
+ RemoveArgument,
+ DefineOwnership,
+ RemoveDefaultExpression,
+ NoNullPointers,
+ ReferenceCount,
+ ParentOwner,
+ Array,
+ ArgumentModifiers,
+
+ ImportFile,
+ OpaqueContainer,
+ Configuration,
+ Unimplemented
+};
+
+inline uint64_t operator&(StackElement s1, StackElement s2)
+{
+ return uint64_t(s1) & uint64_t(s2);
+}
+
+inline StackElement operator|(StackElement s1, StackElement s2)
+{
+ return StackElement(uint64_t(s1) | uint64_t(s2));
+}
+
+struct StackElementContext
+{
+ CodeSnipList conversionCodeSnips;
+ AddedFunctionList addedFunctions;
+ FunctionModificationList functionMods;
+ FieldModificationList fieldMods;
+ DocModificationList docModifications;
+ TypeEntryPtr entry;
+ int addedFunctionModificationIndex = -1;
+};
+
+class TypeSystemParser
+{
+public:
+ Q_DISABLE_COPY_MOVE(TypeSystemParser)
+
+ using StackElementContextPtr = std::shared_ptr<StackElementContext>;
+ using ContextStack = QStack<StackElementContextPtr>;
+
+ explicit TypeSystemParser(const std::shared_ptr<TypeDatabaseParserContext> &context,
+ bool generate);
+ ~TypeSystemParser();
+
+ bool parse(ConditionalStreamReader &reader);
+
+ QString errorString() const { return m_error; }
+
+private:
+ struct Snippet
+ {
+ QString content;
+ QString fileName;
+ QString snippetLabel;
+ };
+
+ bool parseXml(ConditionalStreamReader &reader);
+ bool setupSmartPointerInstantiations();
+ bool startElement(const ConditionalStreamReader &reader, StackElement element);
+ SmartPointerTypeEntryPtr parseSmartPointerEntry(const ConditionalStreamReader &,
+ const QString &name,
+ const QVersionNumber &since,
+ QXmlStreamAttributes *attributes);
+ bool endElement(StackElement element);
+ template <class String> // QString/QStringRef
+ bool characters(const String &ch);
+
+ bool importFileElement(const QXmlStreamAttributes &atts);
+
+ TypeEntryCPtr currentParentTypeEntry() const;
+ bool checkRootElement();
+ bool applyCommonAttributes(const ConditionalStreamReader &reader,
+ const TypeEntryPtr &type,
+ QXmlStreamAttributes *attributes);
+ PrimitiveTypeEntryPtr
+ parsePrimitiveTypeEntry(const ConditionalStreamReader &, const QString &name,
+ const QVersionNumber &since, QXmlStreamAttributes *);
+ CustomTypeEntryPtr
+ parseCustomTypeEntry(const ConditionalStreamReader &, const QString &name,
+ const QVersionNumber &since, QXmlStreamAttributes *);
+ bool parseOpaqueContainers(QStringView s, OpaqueContainers *result);
+ ContainerTypeEntryPtr
+ parseContainerTypeEntry(const ConditionalStreamReader &, const QString &name,
+ const QVersionNumber &since, QXmlStreamAttributes *);
+ bool parseOpaqueContainerElement(QXmlStreamAttributes *attributes);
+ EnumTypeEntryPtr
+ parseEnumTypeEntry(const ConditionalStreamReader &, const QString &name,
+ const QVersionNumber &since, QXmlStreamAttributes *);
+ FlagsTypeEntryPtr
+ parseFlagsEntry(const ConditionalStreamReader &, const EnumTypeEntryPtr &enumEntry,
+ QString flagName, const QVersionNumber &since,
+ QXmlStreamAttributes *);
+
+ NamespaceTypeEntryPtr
+ parseNamespaceTypeEntry(const ConditionalStreamReader &,
+ const QString &name, const QVersionNumber &since,
+ QXmlStreamAttributes *attributes);
+
+ ValueTypeEntryPtr
+ parseValueTypeEntry(const ConditionalStreamReader &, const QString &name,
+ const QVersionNumber &since, QXmlStreamAttributes *);
+ FunctionTypeEntryPtr
+ parseFunctionTypeEntry(const ConditionalStreamReader &, const QString &name,
+ const QVersionNumber &since, QXmlStreamAttributes *);
+ TypedefEntryPtr
+ parseTypedefEntry(const ConditionalStreamReader &, const QString &name,
+ StackElement topElement,
+ const QVersionNumber &since, QXmlStreamAttributes *);
+ void applyComplexTypeAttributes(const ConditionalStreamReader &, const ComplexTypeEntryPtr &ctype,
+ QXmlStreamAttributes *) const;
+ bool parseConfiguration(StackElement topElement,
+ QXmlStreamAttributes *attributes);
+ bool parseRenameFunction(const ConditionalStreamReader &, QString *name,
+ QXmlStreamAttributes *);
+ bool parseInjectDocumentation(const ConditionalStreamReader &, StackElement topElement,
+ QXmlStreamAttributes *);
+ bool parseModifyDocumentation(const ConditionalStreamReader &, StackElement topElement,
+ QXmlStreamAttributes *);
+ TypeSystemTypeEntryPtr
+ parseRootElement(const ConditionalStreamReader &, const QVersionNumber &since,
+ QXmlStreamAttributes *);
+ bool loadTypesystem(const ConditionalStreamReader &, QXmlStreamAttributes *);
+ bool parseRejectEnumValue(const ConditionalStreamReader &, QXmlStreamAttributes *);
+ bool parseReplaceArgumentType(const ConditionalStreamReader &, StackElement topElement,
+ QXmlStreamAttributes *);
+ bool parseCustomConversion(const ConditionalStreamReader &, StackElement topElement,
+ QXmlStreamAttributes *);
+ bool parseAddConversion(const ConditionalStreamReader &, StackElement topElement,
+ QXmlStreamAttributes *);
+ bool parseNativeToTarget(const ConditionalStreamReader &, StackElement topElement,
+ QXmlStreamAttributes *attributes);
+ bool parseModifyArgument(const ConditionalStreamReader &, StackElement topElement,
+ QXmlStreamAttributes *attributes);
+ bool parseNoNullPointer(const ConditionalStreamReader &, StackElement topElement,
+ QXmlStreamAttributes *attributes);
+ bool parseDefineOwnership(const ConditionalStreamReader &, StackElement topElement,
+ QXmlStreamAttributes *);
+ bool parseRename(const ConditionalStreamReader &, StackElement topElement,
+ QXmlStreamAttributes *);
+ bool parseModifyField(const ConditionalStreamReader &, QXmlStreamAttributes *);
+ bool parseAddFunction(const ConditionalStreamReader &, StackElement topElement,
+ StackElement t, QXmlStreamAttributes *);
+ bool parseAddPyMethodDef(const ConditionalStreamReader &,
+ StackElement topElement, QXmlStreamAttributes *attributes);
+ bool parseProperty(const ConditionalStreamReader &, StackElement topElement,
+ QXmlStreamAttributes *);
+ bool parseBasicModifyFunctionAttributes(QXmlStreamAttributes *,
+ FunctionModification *mod);
+ bool parseModifyFunctionAttributes(QXmlStreamAttributes *,
+ FunctionModification *mod);
+ bool parseModifyFunction(const ConditionalStreamReader &, StackElement topElement,
+ QXmlStreamAttributes *);
+ bool parseReplaceDefaultExpression(const ConditionalStreamReader &,
+ StackElement topElement, QXmlStreamAttributes *);
+ bool parseReferenceCount(const ConditionalStreamReader &, StackElement topElement,
+ QXmlStreamAttributes *);
+ bool parseParentOwner(const ConditionalStreamReader &, StackElement topElement,
+ QXmlStreamAttributes *);
+ std::optional<Snippet> readFileSnippet(QXmlStreamAttributes *attributes);
+ bool readCodeSnippet(QXmlStreamAttributes *attributes, CodeSnip *snip);
+ bool parseInjectCode(const ConditionalStreamReader &, StackElement topElement, QXmlStreamAttributes *);
+ bool parseInclude(const ConditionalStreamReader &, StackElement topElement,
+ const TypeEntryPtr &entry, QXmlStreamAttributes *);
+ bool parseSystemInclude(const ConditionalStreamReader &, QXmlStreamAttributes *);
+ TemplateInstance
+ *parseInsertTemplate(const ConditionalStreamReader &, StackElement topElement,
+ QXmlStreamAttributes *);
+ bool parseReplace(const ConditionalStreamReader &, StackElement topElement,
+ QXmlStreamAttributes *);
+ bool checkDuplicatedTypeEntry(const ConditionalStreamReader &reader,
+ StackElement t, const QString &name) const;
+ ParserState parserState(qsizetype offset = 0) const;
+ CodeSnipAbstract *injectCodeTarget(qsizetype offset = 0) const;
+
+ std::shared_ptr<TypeDatabaseParserContext> m_context;
+ QStack<StackElement> m_stack;
+ int m_currentDroppedEntryDepth = 0;
+ int m_ignoreDepth = 0;
+ QString m_defaultPackage;
+ QString m_defaultSuperclass;
+ TypeSystem::ExceptionHandling m_exceptionHandling = TypeSystem::ExceptionHandling::Unspecified;
+ TypeSystem::AllowThread m_allowThread = TypeSystem::AllowThread::Unspecified;
+ QString m_error;
+ const TypeEntry::CodeGeneration m_generate;
+
+ EnumTypeEntryPtr m_currentEnum;
+ TemplateInstancePtr m_templateInstance;
+ TemplateEntryPtr m_templateEntry;
+ ContextStack m_contextStack;
+
+ QString m_currentSignature;
+ QString m_currentPath;
+ QString m_currentFile;
+ QScopedPointer<TypeSystemEntityResolver> m_entityResolver;
+};
+
+#endif // TYPESYSTEMPARSER_H
diff --git a/sources/shiboken6/ApiExtractor/typesystemtypeentry.h b/sources/shiboken6/ApiExtractor/typesystemtypeentry.h
new file mode 100644
index 000000000..9b9670696
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/typesystemtypeentry.h
@@ -0,0 +1,40 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef TYPESYSTEMTYPEENTRY_H
+#define TYPESYSTEMTYPEENTRY_H
+
+#include "typesystem.h"
+#include "modifications_typedefs.h"
+#include "typesystem_enums.h"
+#include "typesystem_typedefs.h"
+
+class TypeSystemTypeEntry : public TypeEntry
+{
+public:
+ explicit TypeSystemTypeEntry(const QString &entryName, const QVersionNumber &vr,
+ const TypeEntryCPtr &parent);
+
+ TypeEntry *clone() const override;
+
+ TypeSystem::SnakeCase snakeCase() const;
+ void setSnakeCase(TypeSystem::SnakeCase sc);
+
+ const CodeSnipList &codeSnips() const;
+ CodeSnipList &codeSnips();
+ void addCodeSnip(const CodeSnip &codeSnip);
+
+ QString subModuleOf() const;
+ void setSubModule(const QString &);
+
+ const QString &namespaceBegin() const;
+ void setNamespaceBegin(const QString &n);
+
+ const QString &namespaceEnd() const;
+ void setNamespaceEnd(const QString &n);
+
+protected:
+ explicit TypeSystemTypeEntry(TypeEntryPrivate *d);
+};
+
+#endif // TYPESYSTEMTYPEENTRY_H
diff --git a/sources/shiboken6/ApiExtractor/usingmember.h b/sources/shiboken6/ApiExtractor/usingmember.h
index e3354f16d..346eab13c 100644
--- a/sources/shiboken6/ApiExtractor/usingmember.h
+++ b/sources/shiboken6/ApiExtractor/usingmember.h
@@ -1,43 +1,18 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef USINGMEMBER_H
#define USINGMEMBER_H
#include "abstractmetalang_typedefs.h"
-#include "parser/codemodel.h"
+#include "parser/codemodel_enums.h"
QT_FORWARD_DECLARE_CLASS(QDebug)
struct UsingMember // Introducing a base class member via 'using' directive
{
QString memberName;
- const AbstractMetaClass *baseClass;
+ AbstractMetaClassCPtr baseClass;
Access access;
};
diff --git a/sources/shiboken6/ApiExtractor/valuetypeentry.h b/sources/shiboken6/ApiExtractor/valuetypeentry.h
new file mode 100644
index 000000000..97bc26803
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/valuetypeentry.h
@@ -0,0 +1,40 @@
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef VALUETYPEENTRY_H
+#define VALUETYPEENTRY_H
+
+#include "complextypeentry.h"
+#include "customconversion_typedefs.h"
+
+class ValueTypeEntry : public ComplexTypeEntry
+{
+public:
+ explicit ValueTypeEntry(const QString &entryName, const QVersionNumber &vr,
+ const TypeEntryCPtr &parent);
+
+ bool hasCustomConversion() const;
+ void setCustomConversion(const CustomConversionPtr &customConversion);
+ CustomConversionPtr customConversion() const;
+
+ // FIXME PYSIDE7: Remove
+ /// Set the target type conversion rule
+ void setTargetConversionRule(const QString &conversionRule);
+
+ /// Returns the target type conversion rule
+ QString targetConversionRule() const;
+
+ /// TODO-CONVERTER: mark as deprecated
+ bool hasTargetConversionRule() const;
+
+ bool isValue() const override;
+
+ TypeEntry *clone() const override;
+
+protected:
+ explicit ValueTypeEntry(const QString &entryName, Type t, const QVersionNumber &vr,
+ const TypeEntryCPtr &parent);
+ explicit ValueTypeEntry(ComplexTypeEntryPrivate *d);
+};
+
+#endif // VALUETYPEENTRY_H
diff --git a/sources/shiboken6/ApiExtractor/varargstypeentry.h b/sources/shiboken6/ApiExtractor/varargstypeentry.h
new file mode 100644
index 000000000..b2a4f4d30
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/varargstypeentry.h
@@ -0,0 +1,20 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef VARARGSTYPEENTRY_H
+#define VARARGSTYPEENTRY_H
+
+#include "typesystem.h"
+
+class VarargsTypeEntry : public TypeEntry
+{
+public:
+ VarargsTypeEntry();
+
+ TypeEntry *clone() const override;
+
+protected:
+ explicit VarargsTypeEntry(TypeEntryPrivate *d);
+};
+
+#endif // VARARGSTYPEENTRY_H
diff --git a/sources/shiboken6/ApiExtractor/voidtypeentry.h b/sources/shiboken6/ApiExtractor/voidtypeentry.h
new file mode 100644
index 000000000..372c7c01f
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/voidtypeentry.h
@@ -0,0 +1,20 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef VOIDTYPEENTRY_H
+#define VOIDTYPEENTRY_H
+
+#include "typesystem.h"
+
+class VoidTypeEntry : public TypeEntry
+{
+public:
+ VoidTypeEntry();
+
+ TypeEntry *clone() const override;
+
+protected:
+ explicit VoidTypeEntry(TypeEntryPrivate *d);
+};
+
+#endif // VOIDTYPEENTRY_H
diff --git a/sources/shiboken6/ApiExtractor/xmlutils.cpp b/sources/shiboken6/ApiExtractor/xmlutils.cpp
index 6edca2fa5..ccacd4ce7 100644
--- a/sources/shiboken6/ApiExtractor/xmlutils.cpp
+++ b/sources/shiboken6/ApiExtractor/xmlutils.cpp
@@ -1,35 +1,14 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "xmlutils.h"
#include "xmlutils_libxslt.h"
+#include "qtcompat.h"
+
+using namespace Qt::StringLiterals;
+
XQuery::XQuery() = default;
XQuery::~XQuery() = default;
@@ -37,18 +16,18 @@ XQuery::~XQuery() = default;
QString XQuery::evaluate(QString xPathExpression, QString *errorMessage)
{
// XQuery can't have invalid XML characters
- xPathExpression.replace(QLatin1Char('&'), QLatin1String("&amp;"));
- xPathExpression.replace(QLatin1Char('<'), QLatin1String("&lt;"));
+ xPathExpression.replace(u'&', u"&amp;"_s);
+ xPathExpression.replace(u'<', u"&lt;"_s);
return doEvaluate(xPathExpression, errorMessage);
}
-QSharedPointer<XQuery> XQuery::create(const QString &focus, QString *errorMessage)
+std::shared_ptr<XQuery> XQuery::create(const QString &focus, QString *errorMessage)
{
#if defined(HAVE_LIBXSLT)
return libXml_createXQuery(focus, errorMessage);
#else
- *errorMessage = QLatin1String(__FUNCTION__) + QLatin1String(" is not implemented.");
- return QSharedPointer<XQuery>();
+ *errorMessage = QLatin1StringView(__FUNCTION__) + u" is not implemented."_s;
+ return std::shared_ptr<XQuery>();
#endif
}
@@ -57,7 +36,7 @@ QString xsl_transform(const QString &xml, const QString &xsl, QString *errorMess
#if defined(HAVE_LIBXSLT)
return libXslt_transform(xml, xsl, errorMessage);
#else
- *errorMessage = QLatin1String(__FUNCTION__) + QLatin1String(" is not implemented.");
+ *errorMessage = QLatin1StringView(__FUNCTION__) + u" is not implemented."_s;
return xml;
#endif
}
diff --git a/sources/shiboken6/ApiExtractor/xmlutils.h b/sources/shiboken6/ApiExtractor/xmlutils.h
index 879b7757a..ac23c9c9c 100644
--- a/sources/shiboken6/ApiExtractor/xmlutils.h
+++ b/sources/shiboken6/ApiExtractor/xmlutils.h
@@ -1,46 +1,22 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef XMLUTILS_H
#define XMLUTILS_H
-#include <QtCore/QSharedPointer>
#include <QtCore/QString>
+#include <memory>
+
class XQuery
{
public:
- Q_DISABLE_COPY(XQuery);
+ Q_DISABLE_COPY_MOVE(XQuery)
virtual ~XQuery();
QString evaluate(QString xPathExpression, QString *errorMessage);
- static QSharedPointer<XQuery> create(const QString &focus, QString *errorMessage);
+ static std::shared_ptr<XQuery> create(const QString &focus, QString *errorMessage);
protected:
XQuery();
diff --git a/sources/shiboken6/ApiExtractor/xmlutils_libxslt.cpp b/sources/shiboken6/ApiExtractor/xmlutils_libxslt.cpp
index e1e185130..5a9a26913 100644
--- a/sources/shiboken6/ApiExtractor/xmlutils_libxslt.cpp
+++ b/sources/shiboken6/ApiExtractor/xmlutils_libxslt.cpp
@@ -1,34 +1,11 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "xmlutils_libxslt.h"
#include "xmlutils.h"
+#include "qtcompat.h"
+
#include <QtCore/QByteArray>
#include <QtCore/QCoreApplication>
#include <QtCore/QDir>
@@ -44,6 +21,8 @@
#include <cstdlib>
#include <memory>
+using namespace Qt::StringLiterals;
+
static void cleanup()
{
xsltCleanupGlobals();
@@ -61,8 +40,6 @@ static void ensureInitialized()
}
}
-namespace {
-
// RAI Helpers for cleaning up libxml2/libxslt data
struct XmlDocDeleter // for std::unique_ptr<xmlDoc>
@@ -85,8 +62,6 @@ struct XmlXPathContextDeleter
void operator()(xmlXPathContextPtr xPathContext) { xmlXPathFreeContext(xPathContext); }
};
-} // namespace
-
using XmlDocUniquePtr = std::unique_ptr<xmlDoc, XmlDocDeleter>;
using XmlPathObjectUniquePtr = std::unique_ptr<xmlXPathObject, XmlXPathObjectDeleter>;
using XmlStyleSheetUniquePtr = std::unique_ptr<xsltStylesheet, XmlStyleSheetDeleter>;
@@ -109,13 +84,13 @@ static QByteArray formatNode(xmlNodePtr node, QString *errorMessage)
xmlSaveToIO(qbXmlOutputWriteCallback, qbXmlOutputCloseCallback,
&result, "UTF-8", 0);
if (!saveContext) {
- *errorMessage = QLatin1String("xmlSaveToIO() failed.");
+ *errorMessage = u"xmlSaveToIO() failed."_s;
return result;
}
const long saveResult = xmlSaveTree(saveContext, node);
xmlSaveClose(saveContext);
if (saveResult < 0)
- *errorMessage = QLatin1String("xmlSaveTree() failed.");
+ *errorMessage = u"xmlSaveTree() failed."_s;
return result;
}
@@ -144,8 +119,8 @@ QString LibXmlXQuery::doEvaluate(const QString &xPathExpression, QString *errorM
XmlPathObjectUniquePtr xPathObject(xmlXPathEvalExpression(xPathExpressionX, m_xpathContext.get()));
if (!xPathObject) {
- *errorMessage = QLatin1String("xmlXPathEvalExpression() failed for \"") + xPathExpression
- + QLatin1Char('"');
+ *errorMessage = u"xmlXPathEvalExpression() failed for \""_s + xPathExpression
+ + u'"';
return QString();
}
QString result;
@@ -162,39 +137,42 @@ QString LibXmlXQuery::doEvaluate(const QString &xPathExpression, QString *errorM
return result;
}
-QSharedPointer<XQuery> libXml_createXQuery(const QString &focus, QString *errorMessage)
+std::shared_ptr<XQuery> libXml_createXQuery(const QString &focus, QString *errorMessage)
{
- XmlDocUniquePtr doc(xmlParseFile(QFile::encodeName(focus).constData()));
+ XmlDocUniquePtr doc(xmlReadFile(QFile::encodeName(focus).constData(),
+ "utf-8", XML_PARSE_NOENT));
if (!doc) {
- *errorMessage = QLatin1String("libxml2: Cannot set focus to ") + QDir::toNativeSeparators(focus);
+ *errorMessage = u"libxml2: Cannot set focus to "_s + QDir::toNativeSeparators(focus);
return {};
}
XmlXPathContextUniquePtr xpathContext(xmlXPathNewContext(doc.get()));
if (!xpathContext) {
- *errorMessage = QLatin1String("libxml2: xmlXPathNewContext() failed");
+ *errorMessage = u"libxml2: xmlXPathNewContext() failed"_s;
return {};
}
- return QSharedPointer<XQuery>(new LibXmlXQuery(doc, xpathContext));
+ return std::shared_ptr<XQuery>(new LibXmlXQuery(doc, xpathContext));
}
// XSLT transformation
-static const char xsltPrefix[] = R"(<?xml version="1.0" encoding="UTF-8" ?>
+static constexpr auto xsltPrefix = R"(<?xml version="1.0" encoding="UTF-8" ?>
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-)";
+)"_L1;
QString libXslt_transform(const QString &xml, QString xsl, QString *errorMessage)
{
ensureInitialized();
// Read XML data
- if (!xsl.startsWith(QLatin1String("<?xml"))) {
- xsl.prepend(QLatin1String(xsltPrefix));
- xsl.append(QLatin1String("</xsl:transform>"));
+ if (!xsl.startsWith(u"<?xml")) {
+ xsl.prepend(xsltPrefix);
+ xsl.append(u"</xsl:transform>"_s);
}
const QByteArray xmlData = xml.toUtf8();
- XmlDocUniquePtr xmlDoc(xmlParseMemory(xmlData.constData(), xmlData.size()));
+
+ XmlDocUniquePtr xmlDoc(xmlReadMemory(xmlData.constData(), int(xmlData.size()),
+ "", "utf-8", XML_PARSE_NOENT));
if (!xmlDoc) {
- *errorMessage = QLatin1String("xmlParseMemory() failed for XML.");
+ *errorMessage = u"xmlParseMemory() failed for XML."_s;
return xml;
}
@@ -203,15 +181,14 @@ QString libXslt_transform(const QString &xml, QString xsl, QString *errorMessage
// xsltFreeStylesheet will delete this pointer
xmlDocPtr xslDoc = xmlParseMemory(xslData.constData(), xslData.size());
if (!xslDoc) {
- *errorMessage = QLatin1String("xmlParseMemory() failed for XSL \"")
- + xsl + QLatin1String("\".");
+ *errorMessage = u"xmlParseMemory() failed for XSL \""_s + xsl + u"\"."_s;
return xml;
};
// Parse XSL data
XmlStyleSheetUniquePtr xslt(xsltParseStylesheetDoc(xslDoc));
if (!xslt) {
- *errorMessage = QLatin1String("xsltParseStylesheetDoc() failed.");
+ *errorMessage = u"xsltParseStylesheetDoc() failed."_s;
return xml;
}
@@ -224,7 +201,7 @@ QString libXslt_transform(const QString &xml, QString xsl, QString *errorMessage
result = QString::fromUtf8(reinterpret_cast<char*>(buffer), bufferSize);
std::free(buffer);
} else {
- *errorMessage = QLatin1String("xsltSaveResultToString() failed.");
+ *errorMessage = u"xsltSaveResultToString() failed."_s;
result = xml;
}
return result.trimmed();
diff --git a/sources/shiboken6/ApiExtractor/xmlutils_libxslt.h b/sources/shiboken6/ApiExtractor/xmlutils_libxslt.h
index c32b3901d..0dd8eafcb 100644
--- a/sources/shiboken6/ApiExtractor/xmlutils_libxslt.h
+++ b/sources/shiboken6/ApiExtractor/xmlutils_libxslt.h
@@ -1,39 +1,15 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef XMLUTILS_LIBXSLT_H
#define XMLUTILS_LIBXSLT_H
#include <QtCore/QString>
-#include <QtCore/QSharedPointer>
+
+#include <memory>
class XQuery;
-QSharedPointer<XQuery> libXml_createXQuery(const QString &focus, QString *errorMessage);
+std::shared_ptr<XQuery> libXml_createXQuery(const QString &focus, QString *errorMessage);
QString libXslt_transform(const QString &xml, QString xsl, QString *errorMessage);
diff --git a/sources/shiboken6/ApiExtractor/xmlutils_qt.h b/sources/shiboken6/ApiExtractor/xmlutils_qt.h
index a9c9adfa2..274827044 100644
--- a/sources/shiboken6/ApiExtractor/xmlutils_qt.h
+++ b/sources/shiboken6/ApiExtractor/xmlutils_qt.h
@@ -1,39 +1,15 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef XMLUTILS_QT_H
#define XMLUTILS_QT_H
#include <QtCore/QString>
-#include <QtCore/QSharedPointer>
+
+#include <memory>
class XQuery;
-QSharedPointer<XQuery> qt_createXQuery(const QString &focus, QString *errorMessage);
+std::shared_ptr<XQuery> qt_createXQuery(const QString &focus, QString *errorMessage);
QString qt_xsl_transform(const QString &xml, QString xsl, QString *errorMessage);
diff --git a/sources/shiboken6/CMakeLists.txt b/sources/shiboken6/CMakeLists.txt
index de4b51c09..9e1bb09b3 100644
--- a/sources/shiboken6/CMakeLists.txt
+++ b/sources/shiboken6/CMakeLists.txt
@@ -1,227 +1,36 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
Include(icecc.cmake)
-cmake_minimum_required(VERSION 3.16)
-cmake_policy(VERSION 3.16)
+cmake_minimum_required(VERSION 3.18)
+cmake_policy(VERSION 3.18)
set(CMAKE_BUILD_TYPE Release CACHE STRING "Build Type")
+include(".cmake.conf")
project(shiboken6)
-include(CheckIncludeFileCXX)
-
-list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../cmake_helpers/")
-list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/data/")
-
-include(helpers)
-include(shiboken_helpers)
-
-option(BUILD_TESTS "Build tests." TRUE)
-option(USE_PYTHON_VERSION "Use specific python version to build shiboken6." "")
-option(DISABLE_DOCSTRINGS "Disable documentation extraction." FALSE)
-
-set (QT_MAJOR_VERSION 6)
-message(STATUS "Using Qt ${QT_MAJOR_VERSION}")
-find_package(Qt${QT_MAJOR_VERSION} 6.0 REQUIRED COMPONENTS Core)
-
-if (QUIET_BUILD)
- set_quiet_build()
-endif()
-
-if (USE_PYTHON_VERSION)
- shiboken_find_required_python(${USE_PYTHON_VERSION})
-else()
- shiboken_find_required_python()
-endif()
-
-setup_clang()
-
-set(SHIBOKEN_VERSION_FILE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/shiboken_version.py")
-set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS
- ${SHIBOKEN_VERSION_FILE_PATH}
-)
-execute_process(
- COMMAND ${PYTHON_EXECUTABLE} "${SHIBOKEN_VERSION_FILE_PATH}"
- OUTPUT_VARIABLE SHIBOKEN_VERSION_OUTPUT
- ERROR_VARIABLE SHIBOKEN_VERSION_OUTPUT_ERROR
- OUTPUT_STRIP_TRAILING_WHITESPACE)
-if (NOT SHIBOKEN_VERSION_OUTPUT)
- message(FATAL_ERROR "Could not identify shiboken version. \
- Error: ${SHIBOKEN_VERSION_OUTPUT_ERROR}")
-endif()
-
-list(GET SHIBOKEN_VERSION_OUTPUT 0 shiboken_MAJOR_VERSION)
-list(GET SHIBOKEN_VERSION_OUTPUT 1 shiboken_MINOR_VERSION)
-list(GET SHIBOKEN_VERSION_OUTPUT 2 shiboken_MICRO_VERSION)
-# a - alpha, b - beta, rc - rc
-list(GET SHIBOKEN_VERSION_OUTPUT 3 shiboken_PRE_RELEASE_VERSION_TYPE)
-# the number of the pre release (alpha1, beta3, rc7, etc.)
-list(GET SHIBOKEN_VERSION_OUTPUT 4 shiboken_PRE_RELEASE_VERSION)
-
-set(shiboken6_VERSION "${shiboken_MAJOR_VERSION}.${shiboken_MINOR_VERSION}.${shiboken_MICRO_VERSION}")
-set(shiboken6_library_so_version "${shiboken_MAJOR_VERSION}.${shiboken_MINOR_VERSION}")
-
-compute_config_py_values(shiboken6_VERSION)
-
-## For debugging the PYTHON* variables
-message(STATUS "PYTHONLIBS_FOUND: " ${PYTHONLIBS_FOUND})
-message(STATUS "PYTHON_LIBRARIES: " ${PYTHON_LIBRARIES})
-message(STATUS "PYTHON_INCLUDE_DIRS: " ${PYTHON_INCLUDE_DIRS})
-message(STATUS "PYTHON_DEBUG_LIBRARIES: " ${PYTHON_DEBUG_LIBRARIES})
-message(STATUS "PYTHONINTERP_FOUND: " ${PYTHONINTERP_FOUND})
-message(STATUS "PYTHON_EXECUTABLE: " ${PYTHON_EXECUTABLE})
-message(STATUS "PYTHON_VERSION: " ${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}.${PYTHON_VERSION_PATCH})
-
-if (NOT PYTHON_EXTENSION_SUFFIX)
- get_python_extension_suffix()
-endif()
-
-option(FORCE_LIMITED_API "Enable the limited API." "yes")
-set(PYTHON_LIMITED_API 0)
-
-shiboken_check_if_limited_api()
-
-if (PYTHON_LIMITED_API)
- set_limited_api()
-endif()
-
-if (NOT PYTHON_CONFIG_SUFFIX)
- set_python_config_suffix()
-endif()
-
-set(PYTHON_SHARED_LIBRARY_SUFFIX "${PYTHON_CONFIG_SUFFIX}")
-
-if (NOT PYTHON_CONFIG_SUFFIX)
- message(FATAL_ERROR
- "PYTHON_CONFIG_SUFFIX is empty. It should never be empty. Please file a bug report.")
-endif()
-
-message(STATUS "PYTHON_EXTENSION_SUFFIX: ${PYTHON_EXTENSION_SUFFIX}")
-message(STATUS "PYTHON_CONFIG_SUFFIX: ${PYTHON_CONFIG_SUFFIX}")
-message(STATUS "PYTHON_SHARED_LIBRARY_SUFFIX: ${PYTHON_SHARED_LIBRARY_SUFFIX}")
-
+include(cmake/ShibokenSetup.cmake)
-if (NOT PYTHON_SITE_PACKAGES)
- set_python_site_packages()
-endif()
-
-set_cmake_cxx_flags()
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D QT_NO_CAST_FROM_ASCII -D QT_NO_CAST_TO_ASCII")
-
-# Force usage of the C++17 standard
-set(CMAKE_CXX_STANDARD 17)
-set(CMAKE_CXX_STANDARD_REQUIRED ON)
+get_rpath_base_token(base)
-set(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)" )
-set(LIB_INSTALL_DIR "lib${LIB_SUFFIX}" CACHE PATH "The subdirectory relative to the install \
- prefix where libraries will be installed (default is /lib${LIB_SUFFIX})" FORCE)
-set(BIN_INSTALL_DIR "bin" CACHE PATH "The subdirectory relative to the install prefix where \
- dlls will be installed (default is /bin)" FORCE)
+set(CMAKE_INSTALL_RPATH ${base}/)
-if (WIN32)
- set(PATH_SEP "\;")
-else()
- set(PATH_SEP ":")
+if(SHIBOKEN_BUILD_TOOLS)
+ add_subdirectory(ApiExtractor) # Uses libclang
+ add_subdirectory(generator) # Uses ApiExtractor And QtCore
endif()
-if(CMAKE_HOST_APPLE)
- set(OSX_USE_LIBCPP "OFF" CACHE BOOL "Explicitly link the libc++ standard library \
- (useful for osx deployment targets lower than 10.9.")
- if(OSX_USE_LIBCPP)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
- endif()
+if(SHIBOKEN_BUILD_LIBS)
+ add_subdirectory(libshiboken) # Uses Python
+ add_subdirectory(shibokenmodule) # Uses libshiboken
+ add_subdirectory(data)
endif()
-# Build with Address sanitizer enabled if requested.
-# This may break things, so use at your own risk.
-if (SANITIZE_ADDRESS AND NOT MSVC)
- setup_sanitize_address()
-endif()
-
-# Detect if the python libs were compiled in debug mode
-# On Linux distros there is no standard way to check that.
-execute_process(
- COMMAND ${PYTHON_EXECUTABLE} -c "if True:
- import sys
- import sysconfig
- config_py_debug = sysconfig.get_config_var('Py_DEBUG')
- print(bool(config_py_debug))
- "
- OUTPUT_VARIABLE PYTHON_WITH_DEBUG
- OUTPUT_STRIP_TRAILING_WHITESPACE)
-
-# Detect if python interpeter was compiled with COUNT_ALLOCS define
-# Linux distros are inconsistent in setting the sysconfig.get_config_var('COUNT_ALLOCS') value
-execute_process(
- COMMAND ${PYTHON_EXECUTABLE} -c "if True:
- count_allocs = False
- import sys
- try:
- if sys.getcounts:
- count_allocs = True
- except:
- pass
-
- print(bool(count_allocs))
- "
- OUTPUT_VARIABLE PYTHON_WITH_COUNT_ALLOCS
- OUTPUT_STRIP_TRAILING_WHITESPACE)
-
-set(SHIBOKEN_BUILD_TYPE "${CMAKE_BUILD_TYPE}")
-
-if(CMAKE_BUILD_TYPE STREQUAL "Debug")
- set_debug_build()
-endif()
-
-######################################################################
-## Define the Python files involved in the build process.
-##
-## They are installed into the file system (see shibokenmodule)
-## and embedded into the libshiboken binary through a .zip file.
-######################################################################
-
-set(shiboken_python_files
- "signature/lib/__init__.py"
- "signature/lib/enum_sig.py"
- "signature/lib/pyi_generator.py"
- "signature/lib/tool.py"
- "signature/__init__.py"
- "signature/errorhandler.py"
- "signature/importhandler.py"
- "signature/layout.py"
- "signature/loader.py"
- "signature/mapping.py"
- "signature/parser.py"
- "__init__.py"
- "feature.py"
- )
-
-######################################################################
-# Adding sub directories to build
-######################################################################
-add_subdirectory(ApiExtractor)
-
-set(generator_plugin_DIR ${LIB_INSTALL_DIR}/generatorrunner${generator_SUFFIX})
-
-# uninstall target
-configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake"
- "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
- IMMEDIATE @ONLY)
-add_custom_target(uninstall "${CMAKE_COMMAND}"
- -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
-
-add_subdirectory(libshiboken)
add_subdirectory(doc)
-# deps found, compile the generator.
-if (Qt${QT_MAJOR_VERSION}Core_FOUND AND PYTHONINTERP_FOUND)
- add_subdirectory(generator)
- add_subdirectory(shibokenmodule)
-
- if (BUILD_TESTS)
- enable_testing()
- add_subdirectory(tests)
- endif()
-else()
- message(WARNING "Some dependencies were not found: shiboken6 generator compilation disabled!")
+if(BUILD_TESTS)
+ enable_testing()
+ add_subdirectory(tests)
endif()
-add_subdirectory(data)
diff --git a/sources/shiboken6/cmake/FindDocTools.cmake b/sources/shiboken6/cmake/FindDocTools.cmake
new file mode 100644
index 000000000..621a4ac15
--- /dev/null
+++ b/sources/shiboken6/cmake/FindDocTools.cmake
@@ -0,0 +1,39 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+find_program(SPHINX_BUILD sphinx-build DOC "Path to sphinx-build binary.")
+
+# graphviz dot appears to be used by sphinx and not by CMake directly. This is just found to check
+# if it exists.
+find_program(DOT_EXEC dot)
+
+# Lookup for qdoc and qhelpgenerator in multiple sources: ccache var, PATH or CMake package.
+set(qhelpgenerator_binary "")
+set(qdoc_binary "")
+if(QHELPGENERATOR_EXECUTABLE)
+ set(qhelpgenerator_binary "${QHELPGENERATOR_EXECUTABLE}")
+else()
+ find_package(Qt6 QUIET COMPONENTS Tools)
+ if(TARGET Qt6::qhelpgenerator)
+ get_target_property(qhelpgenerator_binary Qt6::qhelpgenerator IMPORTED_LOCATION)
+ else()
+ find_program(QHELPGENERATOR_EXECUTABLE qhelpgenerator DOC "Path to qhelpgenerator binary.")
+ if(QHELPGENERATOR_EXECUTABLE)
+ set(qhelpgenerator_binary "${QHELPGENERATOR_EXECUTABLE}")
+ endif()
+ endif()
+endif()
+
+if(QDOC_EXECUTABLE)
+ set(qdoc_binary "${QDOC_EXECUTABLE}")
+else()
+ find_package(Qt6 QUIET COMPONENTS Tools)
+ if(TARGET Qt6::qdoc)
+ get_target_property(qdoc_binary Qt6::qdoc IMPORTED_LOCATION)
+ else()
+ find_program(QDOC_EXECUTABLE qdoc DOC "Path to qdoc binary.")
+ if(QDOC_EXECUTABLE)
+ set(qdoc_binary "${QDOC_EXECUTABLE}")
+ endif()
+ endif()
+endif()
diff --git a/sources/shiboken6/cmake/ShibokenHelpers.cmake b/sources/shiboken6/cmake/ShibokenHelpers.cmake
new file mode 100644
index 000000000..8bc066102
--- /dev/null
+++ b/sources/shiboken6/cmake/ShibokenHelpers.cmake
@@ -0,0 +1,884 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+include(CMakeParseArguments)
+
+macro(set_limited_api)
+ if (WIN32 AND NOT EXISTS "${PYTHON_LIMITED_LIBRARIES}")
+ message(FATAL_ERROR "The Limited API was enabled, but ${PYTHON_LIMITED_LIBRARIES} was not found!")
+ endif()
+ message(STATUS "******************************************************")
+ message(STATUS "** Limited API enabled ${PYTHON_LIMITED_LIBRARIES}")
+ message(STATUS "******************************************************")
+endmacro()
+
+macro(set_debug_build)
+ set(SHIBOKEN_BUILD_TYPE "Debug")
+
+ if(NOT Python_LIBRARIES)
+ message(WARNING "Python debug shared library not found; \
+ assuming python was built with shared library support disabled.")
+ endif()
+
+ if(NOT PYTHON_WITH_DEBUG)
+ message(WARNING "Compiling shiboken6 with debug enabled, \
+ but the python executable was not compiled with debug support.")
+ else()
+ set(SBK_PKG_CONFIG_PY_DEBUG_DEFINITION " -DPy_DEBUG")
+ endif()
+
+ if (PYTHON_WITH_COUNT_ALLOCS)
+ set(SBK_PKG_CONFIG_PY_DEBUG_DEFINITION "${SBK_PKG_CONFIG_PY_DEBUG_DEFINITION} -DCOUNT_ALLOCS")
+ endif()
+endmacro()
+
+macro(setup_sanitize_address)
+ # Currently this does not check that the clang / gcc version used supports Address sanitizer,
+ # so once again, use at your own risk.
+ add_compile_options("-fsanitize=address" "-g" "-fno-omit-frame-pointer")
+ # We need to add the sanitize address option to all linked executables / shared libraries
+ # so that proper sanitizer symbols are linked in.
+ #
+ # Note that when running tests, you may need to set an additional environment variable
+ # in set_tests_properties for shiboken6 / pyside tests, or exported in your shell. Address
+ # sanitizer will tell you what environment variable needs to be exported. For example:
+ # export DYLD_INSERT_LIBRARIES=/Applications/Xcode.app/Contents/Developer/Toolchains/
+ # ./XcodeDefault.xctoolchain/usr/lib/clang/8.1.0/lib/darwin/libclang_rt.asan_osx_dynamic.dylib
+ set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_STANDARD_LIBRARIES} -fsanitize=address")
+endmacro()
+
+macro(set_cmake_cxx_flags)
+if(MSVC)
+ # Qt5: this flag has changed from /Zc:wchar_t- in Qt4.X
+ set(CMAKE_CXX_FLAGS "/Zc:wchar_t /GR /EHsc /DWIN32 /D_WINDOWS /D_SCL_SECURE_NO_WARNINGS")
+ #set(CMAKE_CXX_FLAGS "/Zc:wchar_t /GR /EHsc /DNOCOLOR /DWIN32 /D_WINDOWS /D_SCL_SECURE_NO_WARNINGS") # XXX
+else()
+ set (gcc_warnings_options "-Wall -Wextra -Wno-strict-aliasing")
+ # Clang has -Wno-bad-function-cast, but does not need it.
+ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
+ set (gcc_warnings_options "${gcc_warnings_options} -Wno-cast-function-type")
+ endif()
+ if(CMAKE_HOST_UNIX AND NOT CYGWIN)
+ add_definitions(-fPIC)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${gcc_warnings_options} -fvisibility=hidden")
+ endif()
+ set(CMAKE_CXX_FLAGS_DEBUG "-g")
+ option(ENABLE_GCC_OPTIMIZATION "Enable specific GCC flags to optimization library \
+ size and performance. Only available on Release Mode" 0)
+ if(ENABLE_GCC_OPTIMIZATION)
+ set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG -Os -Wl,-O1")
+ if(NOT CMAKE_HOST_APPLE)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,--hash-style=gnu")
+ endif()
+ endif()
+ if(CMAKE_HOST_APPLE)
+ # ALTERNATIVE_QT_INCLUDE_DIR is deprecated, because CMake takes care of finding the proper
+ # include folders using the qmake found in the environment. Only use it for now in case
+ # something goes wrong with the cmake process.
+ if(ALTERNATIVE_QT_INCLUDE_DIR AND NOT QT_INCLUDE_DIR)
+ set(QT_INCLUDE_DIR ${ALTERNATIVE_QT_INCLUDE_DIR})
+ endif()
+ endif()
+endif()
+
+endmacro()
+
+function(qfp_strip_library target)
+ # Strip unless macOS (/strip: error: symbols referenced by indirect symbol
+ # table entries that can't be stripped).
+ if (CMAKE_STRIP AND UNIX AND NOT APPLE AND NOT QFP_NO_STRIP
+ AND NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
+ set(post_command COMMAND ${CMAKE_STRIP} $<TARGET_FILE:${target}>)
+ add_custom_command(TARGET ${target} POST_BUILD ${post_command})
+ endif()
+
+endfunction()
+
+macro(shiboken_internal_set_python_site_packages)
+ # When cross-building, we can't run the target python executable to find out the information,
+ # so we allow an explicit variable assignment or use a default / sensible value.
+ if(SHIBOKEN_IS_CROSS_BUILD OR PYSIDE_IS_CROSS_BUILD OR QFP_FIND_NEW_PYTHON_PACKAGE)
+ # Allow manual assignment.
+ if(QFP_PYTHON_SITE_PACKAGES)
+ set(PYTHON_SITE_PACKAGES "${QFP_PYTHON_SITE_PACKAGES}")
+ else()
+ # Assumes POSIX.
+ # Convention can be checked in cpython's source code in
+ # Lib/sysconfig.py's _INSTALL_SCHEMES
+ set(__version_major_minor
+ "${Python_VERSION_MAJOR}.${Python_VERSION_MINOR}")
+
+ set(PYTHON_SITE_PACKAGES_WITHOUT_PREFIX
+ "lib/python${__version_major_minor}/site-packages")
+ set(PYTHON_SITE_PACKAGES
+ "${CMAKE_INSTALL_PREFIX}/${PYTHON_SITE_PACKAGES_WITHOUT_PREFIX}")
+ unset(__version_major_minor)
+ endif()
+ else()
+ execute_process(
+ COMMAND ${Python_EXECUTABLE} -c "if True:
+ import sysconfig
+ from os.path import sep
+
+ # /home/qt/dev/env/lib/python3.9/site-packages
+ lib_path = sysconfig.get_path('purelib')
+
+ # /home/qt/dev/env
+ data_path = sysconfig.get_path('data')
+
+ # /lib/python3.9/site-packages
+ rel_path = lib_path.replace(data_path, '')
+
+ print(f'${CMAKE_INSTALL_PREFIX}{rel_path}'.replace(sep, '/'))
+ "
+ OUTPUT_VARIABLE PYTHON_SITE_PACKAGES
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ endif()
+ if (NOT PYTHON_SITE_PACKAGES)
+ message(FATAL_ERROR "Could not detect Python module installation directory.")
+ elseif (APPLE)
+ message(STATUS "!!! The generated bindings will be installed on ${PYTHON_SITE_PACKAGES}, \
+ is it right!?")
+ endif()
+endmacro()
+
+macro(set_python_config_suffix)
+ if (PYTHON_LIMITED_API)
+ if(WIN32)
+ set(PYTHON_EXTENSION_SUFFIX "")
+ else()
+ set(PYTHON_EXTENSION_SUFFIX ".abi3")
+ endif()
+ set(PYTHON_CONFIG_SUFFIX ".abi3")
+ else()
+ set(PYTHON_CONFIG_SUFFIX "${PYTHON_EXTENSION_SUFFIX}")
+ endif()
+endmacro()
+
+macro(setup_clang)
+ # Find libclang using the environment variables LLVM_INSTALL_DIR,
+ # CLANG_INSTALL_DIR using standard cmake.
+ # Use CLANG_INCLUDE_DIRS and link to libclang.
+ if(DEFINED ENV{LLVM_INSTALL_DIR})
+ list(PREPEND CMAKE_PREFIX_PATH "$ENV{LLVM_INSTALL_DIR}")
+ list(PREPEND CMAKE_FIND_ROOT_PATH "$ENV{LLVM_INSTALL_DIR}")
+ elseif(DEFINED ENV{CLANG_INSTALL_DIR})
+ list(PREPEND CMAKE_PREFIX_PATH "$ENV{CLANG_INSTALL_DIR}")
+ list(PREPEND CMAKE_FIND_ROOT_PATH "$ENV{CLANG_INSTALL_DIR}")
+ endif()
+
+ find_package(Clang CONFIG REQUIRED)
+ # Need to explicitly handle the version check, because the Clang package doesn't.
+ if (LLVM_PACKAGE_VERSION AND LLVM_PACKAGE_VERSION VERSION_LESS "9.0")
+ message(FATAL_ERROR "You need LLVM version 9.0 or greater to build.")
+ endif()
+
+ # CLANG_LIBRARY is read out from the cmake cache to deploy libclang
+ get_target_property(CLANG_BUILD_TYPE libclang IMPORTED_CONFIGURATIONS)
+ get_target_property(CLANG_LIBRARY_NAME libclang IMPORTED_LOCATION_${CLANG_BUILD_TYPE})
+ set(CLANG_LIBRARY "${CLANG_LIBRARY_NAME}" CACHE FILEPATH "libclang")
+ message(STATUS "CLANG: ${Clang_DIR}, ${CLANG_LIBRARY} detected")
+endmacro()
+
+macro(set_quiet_build)
+ # Don't display "up-to-date / install" messages when installing, to reduce visual clutter.
+ set(CMAKE_INSTALL_MESSAGE NEVER)
+ # Override message not to display info messages when doing a quiet build.
+ function(message)
+ list(GET ARGV 0 MessageType)
+ if (MessageType STREQUAL FATAL_ERROR OR
+ MessageType STREQUAL SEND_ERROR OR
+ MessageType STREQUAL WARNING OR
+ MessageType STREQUAL AUTHOR_WARNING)
+ list(REMOVE_AT ARGV 0)
+ _message(${MessageType} "${ARGV}")
+ endif()
+ endfunction()
+endmacro()
+
+macro(get_python_extension_suffix)
+ # When cross-building, we can't run the target python executable to find out the information,
+ # so we rely on Python_SOABI being set by find_package(Python).
+ # Python_SOABI is only set by CMake 3.17+
+ # TODO: Lower this to CMake 3.16 if possible.
+ if(SHIBOKEN_IS_CROSS_BUILD)
+ # For android platform armv7a FindPython module return Python_SOABI as empty because
+ # it is unable to set Python_CONFIG i.e. find `python3-config` script
+ # This workaround sets the Python_SOABI manually for this platform.
+ if(CMAKE_SYSTEM_NAME STREQUAL "Android" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7-a")
+ set(Python_SOABI "cpython-311}")
+ endif()
+ if(NOT Python_SOABI)
+ message(FATAL_ERROR "Python_SOABI variable is empty.")
+ endif()
+ set(PYTHON_EXTENSION_SUFFIX ".${Python_SOABI}")
+ else()
+ # See PYSIDE-1841 / https://bugs.python.org/issue39825 for distutils vs sysconfig
+ execute_process(
+ COMMAND ${Python_EXECUTABLE} -c "if True:
+ import sys
+ if sys.version_info >= (3, 8, 2):
+ import sysconfig
+ suffix = sysconfig.get_config_var('EXT_SUFFIX')
+ else:
+ from distutils import sysconfig
+ suffix = sysconfig.get_config_var('EXT_SUFFIX')
+ pos = suffix.rfind('.')
+ if pos > 0:
+ print(suffix[:pos])
+ else:
+ print(f'Unable to determine PYTHON_EXTENSION_SUFFIX from EXT_SUFFIX: \"{suffix}\"',
+ file=sys.stderr)
+ "
+ OUTPUT_VARIABLE PYTHON_EXTENSION_SUFFIX
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ endif()
+ message(STATUS "PYTHON_EXTENSION_SUFFIX: " ${PYTHON_EXTENSION_SUFFIX})
+endmacro()
+
+macro(shiboken_parse_all_arguments prefix type flags options multiopts)
+ cmake_parse_arguments(${prefix} "${flags}" "${options}" "${multiopts}" ${ARGN})
+ if(DEFINED ${prefix}_UNPARSED_ARGUMENTS)
+ message(FATAL_ERROR "Unknown arguments were passed to ${type} (${${prefix}_UNPARSED_ARGUMENTS}).")
+ endif()
+endmacro()
+
+macro(shiboken_check_if_limited_api)
+ # TODO: Figure out how to use limited API libs when cross-building to Windows, if that's ever
+ # needed. Perhaps use host python to walk the libs of the target python installation.
+
+ if(NOT SHIBOKEN_IS_CROSS_BUILD AND WIN32)
+ # On Windows, PYTHON_LIBRARIES can be a list. Example:
+ # optimized;C:/Python36/libs/python36.lib;debug;C:/Python36/libs/python36_d.lib
+ # On other platforms, this result is not used at all.
+ execute_process(
+ COMMAND ${Python_EXECUTABLE} -c "if True:
+ from pathlib import Path
+ libs = r'${Python_LIBRARIES}'
+ libs = libs.split(';')
+ for lib in libs:
+ if ('\\\\' in lib or '/' in lib) and Path(lib).is_file():
+ lib = Path(lib)
+ prefix = lib.parent
+ py = lib.name
+ if py.startswith('python3'):
+ print(prefix / 'python3.lib')
+ break
+ "
+ OUTPUT_VARIABLE PYTHON_LIMITED_LIBRARIES
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ endif()
+
+ message(STATUS "PYTHON_LIMITED_LIBRARIES: " ${PYTHON_LIMITED_LIBRARIES})
+
+ if(FORCE_LIMITED_API OR SHIBOKEN_PYTHON_LIMITED_API)
+ set(PYTHON_LIMITED_API 1)
+ if(WIN32)
+ set(SHIBOKEN_PYTHON_LIBRARIES ${PYTHON_LIMITED_LIBRARIES})
+ endif()
+ endif()
+endmacro()
+
+
+macro(shiboken_find_required_python)
+ set(_shiboken_find_python_version_args "")
+ if(${ARGC} GREATER 0)
+ list(APPEND _shiboken_find_python_version_args "${ARGV0}")
+ endif()
+ # This function can also be called by consumers of ShibokenConfig.cmake package like pyside,
+ # that's why we also check for PYSIDE_IS_CROSS_BUILD (which is set by pyside project)
+ # and QFP_FIND_NEW_PYTHON_PACKAGE for an explicit opt in.
+ #
+ # We have to use FindPython package instead of FindPythonInterp to get required target Python
+ # information.
+ if(SHIBOKEN_IS_CROSS_BUILD OR PYSIDE_IS_CROSS_BUILD OR QFP_FIND_NEW_PYTHON_PACKAGE)
+ # We want FindPython to look in the sysroot for the python-config executable,
+ # but toolchain files might set CMAKE_FIND_ROOT_PATH_MODE_PROGRAM to NEVER because
+ # programs are mostly found for running and you usually can't run a target executable on
+ # a host platform. python-config can likely be ran though, because it's a shell script
+ # to be run on a host Linux.
+ set(_shiboken_backup_CMAKE_FIND_ROOT_PATH_MODE_PROGRAM
+ "${CMAKE_FIND_ROOT_PATH_MODE_PROGRAM}")
+ set(_shiboken_backup_CMAKE_FIND_ROOT_PATH
+ "${CMAKE_FIND_ROOT_PATH}")
+ set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY)
+ if(Python_ROOT_DIR)
+ list(PREPEND CMAKE_FIND_ROOT_PATH "${Python_ROOT_DIR}")
+ endif()
+
+ # We can't look for the Python interpreter because FindPython tries to execute it, which
+ # usually won't work on a host platform due to different architectures / platforms.
+ # Thus we only look for the Python include and lib directories which are part of the
+ # Development component.
+ find_package(
+ Python
+ ${_shiboken_find_python_version_args}
+ REQUIRED
+ COMPONENTS Development
+ )
+ set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM
+ "${_shiboken_backup_CMAKE_FIND_ROOT_PATH_MODE_PROGRAM}")
+ set(CMAKE_FIND_ROOT_PATH
+ "${_shiboken_backup_CMAKE_FIND_ROOT_PATH}")
+ else()
+ find_package(
+ Python
+ ${_shiboken_find_python_version_args}
+ REQUIRED
+ COMPONENTS Interpreter Development
+ )
+ endif()
+
+ shiboken_validate_python_version()
+
+ set(SHIBOKEN_PYTHON_INTERPRETER "${Python_EXECUTABLE}")
+ set_property(GLOBAL PROPERTY SHIBOKEN_PYTHON_INTERPRETER "${Python_EXECUTABLE}")
+endmacro()
+
+macro(shiboken_validate_python_version)
+ if(Python_VERSION_MAJOR EQUAL "3" AND Python_VERSION_MINOR LESS "7")
+ message(FATAL_ERROR
+ "Shiboken requires Python 3.7+.")
+ endif()
+endmacro()
+
+macro(shiboken_compute_python_includes)
+ shiboken_parse_all_arguments(
+ "SHIBOKEN_COMPUTE_INCLUDES" "shiboken_compute_python_includes"
+ "IS_CALLED_FROM_EXPORT" "" "" ${ARGN})
+
+
+ # If the installed shiboken config file is used,
+ # append the found Python include dirs as an interface property on the libshiboken target.
+ # This needs to be dynamic because the user of the library might have python installed
+ # in a different path than when shiboken was originally built.
+ # Otherwise if shiboken is currently being built itself (either as standalone, or super project
+ # build) append the include dirs as PUBLIC.
+ if (SHIBOKEN_COMPUTE_INCLUDES_IS_CALLED_FROM_EXPORT)
+ #TODO target_include_directories works on imported targets only starting with v3.11.0.
+ set_property(TARGET Shiboken6::libshiboken
+ APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${Python_INCLUDE_DIRS})
+ else()
+ target_include_directories(libshiboken
+ PUBLIC $<BUILD_INTERFACE:${Python_INCLUDE_DIRS}>)
+ endif()
+
+
+ set(SHIBOKEN_PYTHON_INCLUDE_DIRS "${Python_INCLUDE_DIRS}")
+
+ set_property(GLOBAL PROPERTY shiboken_python_include_dirs "${SHIBOKEN_PYTHON_INCLUDE_DIRS}")
+
+ message(STATUS
+ "SHIBOKEN_PYTHON_INCLUDE_DIRS computed to value: '${SHIBOKEN_PYTHON_INCLUDE_DIRS}'")
+endmacro()
+
+# Given a list of the following form:
+# optimized;C:/Python36/libs/python36.lib;debug;C:/Python36/libs/python36_d.lib
+# choose the corresponding library to use, based on the current configuration type.
+function(shiboken_get_library_for_current_config library_list current_config out_var)
+ list(FIND library_list "optimized" optimized_found)
+ list(FIND library_list "general" general_found)
+ list(FIND library_list "debug" debug_found)
+
+ if (optimized_found OR general_found OR debug_found)
+ # Iterate over library list to find the most appropriate library.
+ foreach(token ${library_list})
+ if(token STREQUAL "optimized" OR token STREQUAL "general")
+ set(is_debug 0)
+ set(token1 1)
+ set(lib "")
+ elseif(token STREQUAL "debug")
+ set(is_debug 1)
+ set(token1 1)
+ set(lib "")
+ elseif(EXISTS ${token})
+ set(lib ${token})
+ set(token2 1)
+ else()
+ set(token1 0)
+ set(token2 0)
+ set(lib "")
+ endif()
+
+ if(token1 AND token2)
+ if((is_debug AND lib AND current_config STREQUAL "Debug")
+ OR (NOT is_debug AND lib AND (NOT current_config STREQUAL "Debug")))
+ set(${out_var} ${lib} PARENT_SCOPE)
+ return()
+ endif()
+ endif()
+ endforeach()
+ else()
+ # No configuration specific libraries found, just set the original value.
+ set(${out_var} "${library_list}" PARENT_SCOPE)
+ endif()
+
+endfunction()
+
+macro(shiboken_compute_python_libraries)
+ shiboken_parse_all_arguments(
+ "SHIBOKEN_COMPUTE_LIBS" "shiboken_compute_python_libraries"
+ "IS_CALLED_FROM_EXPORT" "" "" ${ARGN})
+
+ if (NOT SHIBOKEN_PYTHON_LIBRARIES)
+ set(SHIBOKEN_PYTHON_LIBRARIES "")
+ endif()
+
+ if(WIN32 AND NOT SHIBOKEN_PYTHON_LIBRARIES)
+ set(SHIBOKEN_PYTHON_LIBRARIES ${Python_LIBRARIES})
+ endif()
+
+ # If the resulting variable
+ # contains a "debug;X;optimized;Y" list like described in shiboken_check_if_limited_api,
+ # make sure to pick just one, so that the final generator expressions are valid.
+ shiboken_get_library_for_current_config("${SHIBOKEN_PYTHON_LIBRARIES}" "${CMAKE_BUILD_TYPE}" "SHIBOKEN_PYTHON_LIBRARIES")
+
+ if(APPLE)
+ set(SHIBOKEN_PYTHON_LIBRARIES "-undefined dynamic_lookup")
+ endif()
+
+ # If the installed shiboken config file is used,
+ # append the computed Python libraries as an interface property on the libshiboken target.
+ # This needs to be dynamic because the user of the library might have python installed
+ # in a different path than when shiboken was originally built.
+ # Otherwise if shiboken is currently being built itself (either as standalone, or super project
+ # build) append the libraries as PUBLIC.
+ if (SHIBOKEN_COMPUTE_LIBS_IS_CALLED_FROM_EXPORT)
+ #TODO target_link_libraries works on imported targets only starting with v3.11.0.
+ set_property(TARGET Shiboken6::libshiboken
+ APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${SHIBOKEN_PYTHON_LIBRARIES})
+ else()
+ target_link_libraries(libshiboken
+ PUBLIC $<BUILD_INTERFACE:${SHIBOKEN_PYTHON_LIBRARIES}>)
+ endif()
+
+ set_property(GLOBAL PROPERTY shiboken_python_libraries "${SHIBOKEN_PYTHON_LIBRARIES}")
+
+ message(STATUS "SHIBOKEN_PYTHON_LIBRARIES computed to value: '${SHIBOKEN_PYTHON_LIBRARIES}'")
+endmacro()
+
+function(shiboken_check_if_built_and_target_python_are_compatible)
+ if(NOT SHIBOKEN_PYTHON_VERSION_MAJOR STREQUAL Python_VERSION_MAJOR)
+ message(FATAL_ERROR "The detected Python major version is not \
+compatible with the Python major version which was used when Shiboken was built.
+Built with: '${SHIBOKEN_PYTHON_VERSION_MAJOR}.${SHIBOKEN_PYTHON_VERSION_MINOR}' \
+Detected: '${Python_VERSION_MAJOR}.${Python_VERSION_MINOR}'")
+ else()
+ if(NOT SHIBOKEN_PYTHON_LIMITED_API
+ AND NOT SHIBOKEN_PYTHON_VERSION_MINOR STREQUAL Python_VERSION_MINOR)
+ message(FATAL_ERROR
+ "The detected Python minor version is not compatible with the Python minor \
+version which was used when Shiboken was built. Consider building shiboken with \
+FORCE_LIMITED_API set to '1', so that only the Python major version matters.
+Built with: '${SHIBOKEN_PYTHON_VERSION_MAJOR}.${SHIBOKEN_PYTHON_VERSION_MINOR}' \
+Detected: '${Python_VERSION_MAJOR}.${Python_VERSION_MINOR}'")
+ endif()
+ endif()
+endfunction()
+
+function(shiboken_internal_disable_pkg_config)
+ # Disable pkg-config by setting an empty executable path. There's no documented way to
+ # mark the package as not found, but we can force all pkg_check_modules calls to do nothing
+ # by setting the variable to an empty value.
+ set(PKG_CONFIG_EXECUTABLE "" CACHE STRING "Disabled pkg-config usage." FORCE)
+endfunction()
+
+function(shiboken_internal_disable_pkg_config_if_needed)
+ if(SHIBOKEN_SKIP_PKG_CONFIG_ADJUSTMENT)
+ return()
+ endif()
+
+ # pkg-config should not be used by default on Darwin platforms.
+ if(APPLE)
+ set(pkg_config_enabled OFF)
+ else()
+ set(pkg_config_enabled ON)
+ endif()
+
+ if(NOT pkg_config_enabled)
+ shiboken_internal_disable_pkg_config()
+ endif()
+endfunction()
+
+function(shiboken_internal_detect_if_cross_building)
+ if(CMAKE_CROSSCOMPILING OR QFP_SHIBOKEN_HOST_PATH)
+ set(is_cross_build TRUE)
+ else()
+ set(is_cross_build FALSE)
+ endif()
+ set(SHIBOKEN_IS_CROSS_BUILD "${is_cross_build}" PARENT_SCOPE)
+ message(STATUS "SHIBOKEN_IS_CROSS_BUILD: ${is_cross_build}")
+endfunction()
+
+function(shiboken_internal_decide_parts_to_build)
+ set(build_libs_default ON)
+ option(SHIBOKEN_BUILD_LIBS "Build shiboken libraries" ${build_libs_default})
+ message(STATUS "SHIBOKEN_BUILD_LIBS: ${SHIBOKEN_BUILD_LIBS}")
+
+ if(SHIBOKEN_IS_CROSS_BUILD)
+ set(build_tools_default OFF)
+ else()
+ set(build_tools_default ON)
+ endif()
+ option(SHIBOKEN_BUILD_TOOLS "Build shiboken tools" ${build_tools_default})
+ message(STATUS "SHIBOKEN_BUILD_TOOLS: ${SHIBOKEN_BUILD_TOOLS}")
+
+ if(SHIBOKEN_IS_CROSS_BUILD)
+ set(_shiboken_build_tests_default OFF)
+ elseif(SHIBOKEN_BUILD_LIBS)
+ set(_shiboken_build_tests_default ON)
+ endif()
+ option(BUILD_TESTS "Build tests." ${_shiboken_build_tests_default})
+ message(STATUS "BUILD_TESTS: ${BUILD_TESTS}")
+endfunction()
+
+function(shiboken_internal_find_host_shiboken_tools)
+ if(SHIBOKEN_IS_CROSS_BUILD)
+ set(find_package_extra_args)
+ if(QFP_SHIBOKEN_HOST_PATH)
+ list(APPEND find_package_extra_args PATHS "${QFP_SHIBOKEN_HOST_PATH}/lib/cmake")
+ list(PREPEND CMAKE_FIND_ROOT_PATH "${QFP_SHIBOKEN_HOST_PATH}")
+ endif()
+ find_package(
+ Shiboken6Tools 6 CONFIG
+ ${find_package_extra_args}
+ )
+
+ if(NOT Shiboken6Tools_DIR)
+ message(FATAL_ERROR
+ "Shiboken6Tools package was not found. "
+ "Please set QFP_SHIBOKEN_HOST_PATH to the location where the Shiboken6Tools CMake "
+ "package is installed.")
+ endif()
+ endif()
+endfunction()
+
+function(shiboken_internal_set_up_extra_dependency_paths)
+ set(extra_root_path_vars
+ QFP_QT_TARGET_PATH
+ QFP_PYTHON_TARGET_PATH
+ )
+ foreach(root_path IN LISTS extra_root_path_vars)
+ set(new_root_path_value "${${root_path}}")
+ if(new_root_path_value)
+ set(new_prefix_path "${CMAKE_PREFIX_PATH}")
+ list(PREPEND new_prefix_path "${new_root_path_value}/lib/cmake")
+ set(CMAKE_PREFIX_PATH "${new_prefix_path}")
+ set(CMAKE_PREFIX_PATH "${new_prefix_path}" PARENT_SCOPE)
+
+ # Need to adjust the prefix and root paths so that find_package(Qt) and other 3rd
+ # party packages are found successfully when they are located outside of the
+ # default sysroot (whatever that maybe for the target platform).
+ if(SHIBOKEN_IS_CROSS_BUILD)
+ set(new_root_path "${CMAKE_FIND_ROOT_PATH}")
+ list(PREPEND new_root_path "${new_root_path_value}")
+ set(CMAKE_FIND_ROOT_PATH "${new_root_path}")
+ set(CMAKE_FIND_ROOT_PATH "${new_root_path}" PARENT_SCOPE)
+ endif()
+ endif()
+ endforeach()
+endfunction()
+
+macro(compute_config_py_values
+ full_version_var_name
+ )
+ set(QT_MACOS_DEPLOYMENT_TARGET "")
+ if (Qt${QT_MAJOR_VERSION}Core_FOUND)
+ get_target_property(darwin_target Qt6::Core QT_DARWIN_MIN_DEPLOYMENT_TARGET)
+ if(darwin_target)
+ set(QT_MACOS_DEPLOYMENT_TARGET
+ "__qt_macos_min_deployment_target__ = '${darwin_target}'")
+ endif()
+ elseif(APPLE)
+ message(FATAL_ERROR "Qt6::Core should be found before calling this macro")
+ endif()
+
+ string(TIMESTAMP PACKAGE_BUILD_DATE "%Y-%m-%dT%H:%M:%S+00:00" UTC)
+ if (PACKAGE_BUILD_DATE)
+ set(PACKAGE_BUILD_DATE "__build_date__ = '${PACKAGE_BUILD_DATE}'")
+ endif()
+
+ if (PACKAGE_SETUP_PY_PACKAGE_VERSION)
+ set(PACKAGE_SETUP_PY_PACKAGE_VERSION_ASSIGNMENT "__setup_py_package_version__ = '${PACKAGE_SETUP_PY_PACKAGE_VERSION}'")
+ set(FINAL_PACKAGE_VERSION ${PACKAGE_SETUP_PY_PACKAGE_VERSION})
+ else()
+ set(FINAL_PACKAGE_VERSION ${${full_version_var_name}})
+ endif()
+
+ if (PACKAGE_SETUP_PY_PACKAGE_TIMESTAMP)
+ set(PACKAGE_SETUP_PY_PACKAGE_TIMESTAMP_ASSIGNMENT "__setup_py_package_timestamp__ = '${PACKAGE_SETUP_PY_PACKAGE_TIMESTAMP}'")
+ else()
+ set(PACKAGE_SETUP_PY_PACKAGE_TIMESTAMP_ASSIGNMENT "")
+ endif()
+
+ find_package(Git)
+ if(GIT_FOUND)
+ # Check if current source folder is inside a git repo, so that commit information can be
+ # queried.
+ execute_process(
+ COMMAND ${GIT_EXECUTABLE} rev-parse --git-dir
+ OUTPUT_VARIABLE PACKAGE_SOURCE_IS_INSIDE_REPO
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+ if(PACKAGE_SOURCE_IS_INSIDE_REPO)
+ # Force git dates to be UTC-based.
+ set(ENV{TZ} UTC)
+ execute_process(
+ COMMAND ${GIT_EXECUTABLE} --no-pager show --date=format-local:%Y-%m-%dT%H:%M:%S+00:00 -s --format=%cd HEAD
+ OUTPUT_VARIABLE PACKAGE_BUILD_COMMIT_DATE
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if(PACKAGE_BUILD_COMMIT_DATE)
+ set(PACKAGE_BUILD_COMMIT_DATE "__build_commit_date__ = '${PACKAGE_BUILD_COMMIT_DATE}'")
+ endif()
+ unset(ENV{TZ})
+
+ execute_process(
+ COMMAND ${GIT_EXECUTABLE} rev-parse HEAD
+ OUTPUT_VARIABLE PACKAGE_BUILD_COMMIT_HASH
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if(PACKAGE_BUILD_COMMIT_HASH)
+ set(PACKAGE_BUILD_COMMIT_HASH "__build_commit_hash__ = '${PACKAGE_BUILD_COMMIT_HASH}'")
+ endif()
+
+ execute_process(
+ COMMAND ${GIT_EXECUTABLE} describe HEAD
+ OUTPUT_VARIABLE PACKAGE_BUILD_COMMIT_HASH_DESCRIBED
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if(PACKAGE_BUILD_COMMIT_HASH_DESCRIBED)
+ set(PACKAGE_BUILD_COMMIT_HASH_DESCRIBED "__build_commit_hash_described__ = '${PACKAGE_BUILD_COMMIT_HASH_DESCRIBED}'")
+ endif()
+
+ endif()
+ endif()
+
+endmacro()
+
+# Creates a new target called "${library_name}_generator" which
+# depends on the mjb_rejected_classes.log file generated by shiboken.
+# This target is added as a dependency to ${library_name} target.
+# This file's timestamp informs cmake when the last generation was
+# done, without force-updating the timestamps of the generated class
+# cpp files.
+# In practical terms this means that changing some injection code in
+# an xml file that modifies only one specific class cpp file, will
+# not force rebuilding all the cpp files, and thus allow for better
+# incremental builds.
+macro(create_generator_target library_name)
+ add_custom_target(${library_name}_generator DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/mjb_rejected_classes.log")
+ add_dependencies(${library_name} ${library_name}_generator)
+endmacro()
+
+# Generate a shell script wrapper that sets environment variables for executing a specific tool.
+#
+# tool_name should be a unique tool name, preferably without spaces.
+# Returns the wrapper path in path_out_var.
+#
+# Currently adds the Qt lib dir and libclang to PATH / LD_LIBRARY_PATH / DYLD_LIBRARY_PATH.
+# Meant to be used as the first argument to add_custom_command's COMMAND option.
+# TODO: Remove tool_name as the tool_name for this function is always shiboken.
+function(shiboken_get_tool_shell_wrapper tool_name path_out_var)
+ # Generate the wrapper only once during the execution of CMake.
+ get_property(is_called GLOBAL PROPERTY "_shiboken_tool_wrapper_${tool_name}_created")
+
+ if(is_called)
+ get_property(wrapper_path GLOBAL PROPERTY "_shiboken_tool_wrapper_${tool_name}_path")
+ set(${path_out_var} "${wrapper_path}" PARENT_SCOPE)
+ return()
+ endif()
+
+ set(path_dirs "")
+ set(path_dirs_native "")
+
+ if(CMAKE_HOST_WIN32)
+ set(wrapper_script_extension ".bat")
+ else()
+ set(wrapper_script_extension ".sh")
+ endif()
+
+ # Try to get original host shiboken paths from exported target properties.
+ shiboken_get_host_tool_wrapper_properties(orig_qt_library_dir_absolute orig_libclang_lib_dir)
+
+ # Get path to the Qt bin/lib dir depending on the platform and developer input.
+ # Prefer values given on the command line, then the original host path if it exists, otherwise
+ # try to use the Qt install prefix and libclang env vars.
+ #
+ # Note that in a cross-compiling case, using the Qt install prefix is very likely
+ # wrong, because you want to use the location of the host Qt, not the target Qt. Same for
+ # libclang. Unfortunately we currently don't provide a host Qt and host libclang option via
+ # setup.py, so the manual cmake vars will have to suffice.
+ if(SHIBOKEN_WRAPPER_HOST_QT_LIB_PATH AND EXISTS "${SHIBOKEN_WRAPPER_HOST_QT_LIB_PATH}")
+ set(qt_library_dir_absolute "${SHIBOKEN_WRAPPER_HOST_QT_LIB_PATH}")
+ elseif(orig_qt_library_dir_absolute AND EXISTS "${orig_qt_library_dir_absolute}")
+ set(qt_library_dir_absolute "${orig_qt_library_dir_absolute}")
+ elseif(CMAKE_HOST_WIN32)
+ # in Windows the Qt dll are store `bin` in directory
+ set(qt_library_dir ${QT6_INSTALL_BINS})
+ else()
+ # in Unix the .so are stored in `lib` directory
+ set(qt_library_dir ${QT6_INSTALL_LIBS})
+ endif()
+
+ # Assert that Qt is already found.
+ if((QT6_INSTALL_PREFIX AND qt_library_dir) OR orig_qt_library_dir_absolute)
+ else()
+ message(FATAL_ERROR "Qt should have been found already by now.")
+ endif()
+
+ if(NOT qt_library_dir_absolute)
+ set(qt_library_dir_absolute "${QT6_INSTALL_PREFIX}/${qt_library_dir}")
+ endif()
+ list(APPEND path_dirs "${qt_library_dir_absolute}")
+
+ # Get libclang lib dir path.
+ # Prefer values given on the command line, then the original host path if it exists.
+ if(SHIBOKEN_WRAPPER_HOST_CLANG_LIB_PATH AND EXISTS "${SHIBOKEN_WRAPPER_HOST_CLANG_LIB_PATH}")
+ set(libclang_lib_dir "${SHIBOKEN_WRAPPER_HOST_CLANG_LIB_PATH}")
+ elseif(orig_libclang_lib_dir AND EXISTS "${orig_libclang_lib_dir}")
+ set(libclang_lib_dir "${orig_libclang_lib_dir}")
+ else()
+ # find libclang
+ find_libclang()
+ endif()
+
+ if(libclang_lib_dir)
+ list(APPEND path_dirs "${libclang_lib_dir}")
+ endif()
+
+ # Convert the paths from unix-style to native Windows style.
+ foreach(path_dir IN LISTS path_dirs)
+ if(EXISTS "${path_dir}")
+ file(TO_NATIVE_PATH "${path_dir}" path_dir_native)
+ list(APPEND path_dirs_native "${path_dir_native}")
+ endif()
+ endforeach()
+
+ set(wrapper_dir "${CMAKE_BINARY_DIR}/.qfp/bin")
+ file(MAKE_DIRECTORY "${wrapper_dir}")
+ set(wrapper_path "${wrapper_dir}/${tool_name}_wrapper${wrapper_script_extension}")
+
+ if(CMAKE_HOST_WIN32)
+ file(WRITE "${wrapper_path}" "@echo off
+set PATH=${path_dirs_native};%PATH%
+%*")
+ elseif(CMAKE_HOST_APPLE)
+ string(REPLACE ";" ":" path_dirs_native "${path_dirs_native}")
+ file(WRITE "${wrapper_path}" "#!/bin/bash
+export DYLD_LIBRARY_PATH=${path_dirs_native}:$DYLD_LIBRARY_PATH
+export DYLD_FRAMEWORK_PATH=${path_dirs_native}:$DYLD_FRAMEWORK_PATH
+$@")
+ else()
+ string(REPLACE ";" ":" path_dirs_native "${path_dirs_native}")
+ file(WRITE "${wrapper_path}" "#!/bin/bash
+export LD_LIBRARY_PATH=${path_dirs_native}:$LD_LIBRARY_PATH
+$@")
+ endif()
+
+ # Remember the creation of the file for a specific tool.
+ set_property(GLOBAL PROPERTY "_shiboken_tool_wrapper_${tool_name}_path" "${wrapper_path}")
+ set_property(GLOBAL PROPERTY "_shiboken_tool_wrapper_${tool_name}_created" TRUE)
+
+ # Save original host paths for future cross-builds.
+ shiboken_save_host_tool_wrapper_properties("${qt_library_dir_absolute}" "${libclang_lib_dir}")
+
+ # give execute permission to run the file
+ if(CMAKE_HOST_UNIX)
+ execute_process(COMMAND chmod +x ${wrapper_path})
+ endif()
+
+ set(${path_out_var} "${wrapper_path}" PARENT_SCOPE)
+endfunction()
+
+# Retrieve the original host shiboken runtime dependency paths from the installed (namespaced)
+# shiboken generator target.
+function(shiboken_get_host_tool_wrapper_properties out_qt_library_dir out_libclang_lib_dir)
+ if(TARGET Shiboken6::shiboken6)
+ get_target_property(qt_library_dir Shiboken6::shiboken6 _shiboken_original_qt_lib_dir)
+ if(NOT qt_library_dir)
+ set(qt_library_dir "")
+ endif()
+ get_target_property(libclang_lib_dir Shiboken6::shiboken6
+ _shiboken_original_libclang_lib_dir)
+ if(NOT libclang_lib_dir)
+ set(libclang_lib_dir "")
+ endif()
+ endif()
+
+ set(${out_qt_library_dir} "${qt_library_dir}" PARENT_SCOPE)
+ set(${out_libclang_lib_dir} "${libclang_lib_dir}" PARENT_SCOPE)
+endfunction()
+
+# Save original host shiboken runtime dependency paths as target properties, so they can be used
+# when generating the wrapper file for cross-builds.
+# Should only be done when shiboken is being built (aka it's a non-imported target).
+function(shiboken_save_host_tool_wrapper_properties qt_library_dir libclang_lib_dir)
+ if(TARGET shiboken6)
+ get_target_property(is_imported shiboken6 IMPORTED)
+ if(is_imported)
+ return()
+ endif()
+
+ set_target_properties(shiboken6 PROPERTIES
+ _shiboken_original_qt_lib_dir "${qt_library_dir}")
+ set_property(TARGET shiboken6 APPEND PROPERTY
+ EXPORT_PROPERTIES _shiboken_original_qt_lib_dir)
+ if(libclang_lib_dir)
+ set_target_properties(shiboken6 PROPERTIES
+ _shiboken_original_libclang_lib_dir "${libclang_lib_dir}")
+ set_property(TARGET shiboken6 APPEND PROPERTY
+ EXPORT_PROPERTIES _shiboken_original_libclang_lib_dir)
+ endif()
+ endif()
+endfunction()
+
+# Returns the platform-specific relative rpath base token, if it's supported.
+# If it's not supported, returns the string NO_KNOWN_RPATH_REL_BASE.
+function(get_rpath_base_token out_var)
+ if(APPLE)
+ set(rpath_rel_base "@loader_path")
+ elseif(UNIX)
+ set(rpath_rel_base "$ORIGIN")
+ else()
+ #has no effect on Windows
+ set(rpath_rel_base "NO_KNOWN_RPATH_REL_BASE")
+ endif()
+ set(${out_var} "${rpath_rel_base}" PARENT_SCOPE)
+endfunction()
+
+# Get path to libclang.dll/libclang.so depending on the platform
+macro(find_libclang)
+ if(CMAKE_HOST_WIN32)
+ set(libclang_directory_suffix "bin")
+ set(libclang_suffix ".dll")
+ else()
+ set(libclang_directory_suffix "lib")
+ if(CMAKE_HOST_APPLE)
+ set(libclang_suffix ".dylib")
+ else()
+ set(libclang_suffix ".so")
+ endif()
+ endif()
+
+ set(libclang_lib_dir "")
+ if(DEFINED ENV{LLVM_INSTALL_DIR})
+ set(libclang_lib_dir "$ENV{LLVM_INSTALL_DIR}/${libclang_directory_suffix}")
+ elseif(DEFINED ENV{CLANG_INSTALL_DIR})
+ set(libclang_lib_dir "$ENV{CLANG_INSTALL_DIR}/${libclang_directory_suffix}")
+ else()
+ message(WARNING
+ "Couldn't find libclang${libclang_suffix} "
+ "You will likely need to add it manually to PATH to ensure the build succeeds.")
+ endif()
+endmacro()
+
+# Allow setting a shiboken debug level from the the build system or from the environment
+# to all shiboken invocations.
+function(shiboken_get_debug_level out_var)
+ set(debug_level "")
+ if(SHIBOKEN_DEBUG_LEVEL)
+ set(debug_level "--debug-level=${SHIBOKEN_DEBUG_LEVEL}")
+ elseif(DEFINED $ENV{SHIBOKEN_DEBUG_LEVEL})
+ set(debug_level "--debug-level=$ENV{SHIBOKEN_DEBUG_LEVEL}")
+ endif()
+ set(${out_var} "${debug_level}" PARENT_SCOPE)
+endfunction()
diff --git a/sources/shiboken6/cmake/ShibokenSetup.cmake b/sources/shiboken6/cmake/ShibokenSetup.cmake
new file mode 100644
index 000000000..32823d9fa
--- /dev/null
+++ b/sources/shiboken6/cmake/ShibokenSetup.cmake
@@ -0,0 +1,192 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+include(CheckIncludeFileCXX)
+
+list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}")
+
+include(ShibokenHelpers)
+
+option(DISABLE_DOCSTRINGS "Disable documentation extraction." FALSE)
+
+shiboken_internal_disable_pkg_config_if_needed()
+shiboken_internal_detect_if_cross_building()
+
+# Note: For cross building, we rely on FindPython shipped with CMake 3.17+ to
+# provide the value of Python_SOABI.
+
+shiboken_internal_decide_parts_to_build()
+shiboken_internal_find_host_shiboken_tools()
+shiboken_internal_set_up_extra_dependency_paths()
+
+set(QT_MAJOR_VERSION 6)
+message(STATUS "Using Qt ${QT_MAJOR_VERSION}")
+find_package(Qt6 REQUIRED COMPONENTS Core)
+
+if(QUIET_BUILD)
+ set_quiet_build()
+endif()
+
+if(USE_PYTHON_VERSION)
+ shiboken_find_required_python(${USE_PYTHON_VERSION})
+else()
+ shiboken_find_required_python()
+endif()
+
+if(SHIBOKEN_BUILD_TOOLS)
+ setup_clang()
+endif()
+
+set(shiboken6_VERSION "${shiboken_MAJOR_VERSION}.${shiboken_MINOR_VERSION}.${shiboken_MICRO_VERSION}")
+set(shiboken6_library_so_version "${shiboken_MAJOR_VERSION}.${shiboken_MINOR_VERSION}")
+
+compute_config_py_values(shiboken6_VERSION)
+
+## For debugging the PYTHON* variables
+message(STATUS "Python_Development_FOUND: " ${Python_Development_FOUND})
+message(STATUS "Python_LIBRARIES: " ${Python_LIBRARIES})
+message(STATUS "Python_INCLUDE_DIRS: " ${Python_INCLUDE_DIRS})
+message(STATUS "Python_Interpreter_FOUND: " ${Python_Interpreter_FOUND})
+message(STATUS "Python_EXECUTABLE: " ${Python_EXECUTABLE})
+message(STATUS "Python_VERSION: " ${Python_VERSION_MAJOR}.${Python_VERSION_MINOR}.${Python_VERSION_PATCH})
+
+if(NOT PYTHON_EXTENSION_SUFFIX)
+ get_python_extension_suffix()
+endif()
+
+option(FORCE_LIMITED_API "Enable the limited API." "yes")
+set(PYTHON_LIMITED_API 0)
+
+shiboken_check_if_limited_api()
+
+if(PYTHON_LIMITED_API)
+ set_limited_api()
+endif()
+
+if(NOT PYTHON_CONFIG_SUFFIX)
+ set_python_config_suffix()
+endif()
+
+set(PYTHON_SHARED_LIBRARY_SUFFIX "${PYTHON_CONFIG_SUFFIX}")
+
+if(NOT PYTHON_CONFIG_SUFFIX)
+ message(FATAL_ERROR
+ "PYTHON_CONFIG_SUFFIX is empty. It should never be empty. Please file a bug report.")
+endif()
+
+message(STATUS "PYTHON_EXTENSION_SUFFIX: ${PYTHON_EXTENSION_SUFFIX}")
+message(STATUS "PYTHON_CONFIG_SUFFIX: ${PYTHON_CONFIG_SUFFIX}")
+message(STATUS "PYTHON_SHARED_LIBRARY_SUFFIX: ${PYTHON_SHARED_LIBRARY_SUFFIX}")
+
+
+if(NOT PYTHON_SITE_PACKAGES)
+ shiboken_internal_set_python_site_packages()
+endif()
+
+set_cmake_cxx_flags()
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D QT_NO_CAST_FROM_ASCII -D QT_NO_CAST_TO_ASCII")
+
+# Force usage of the C++17 standard
+set(CMAKE_CXX_STANDARD 17)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+
+set(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)" )
+set(LIB_INSTALL_DIR "lib${LIB_SUFFIX}" CACHE PATH "The subdirectory relative to the install \
+ prefix where libraries will be installed (default is /lib${LIB_SUFFIX})" FORCE)
+set(BIN_INSTALL_DIR "bin" CACHE PATH "The subdirectory relative to the install prefix where \
+ dlls will be installed (default is /bin)" FORCE)
+
+if(WIN32)
+ set(PATH_SEP "\;")
+else()
+ set(PATH_SEP ":")
+endif()
+
+if(CMAKE_HOST_APPLE)
+ set(OSX_USE_LIBCPP "OFF" CACHE BOOL "Explicitly link the libc++ standard library \
+ (useful for macOS deployment targets lower than 10.9.")
+ if(OSX_USE_LIBCPP)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
+ endif()
+endif()
+
+# Build with Address sanitizer enabled if requested.
+# This may break things, so use at your own risk.
+if(SANITIZE_ADDRESS AND NOT MSVC)
+ setup_sanitize_address()
+endif()
+
+# Detect if the python libs were compiled in debug mode
+# On Linux distros there is no standard way to check that.
+execute_process(
+ COMMAND ${Python_EXECUTABLE} -c "if True:
+ import sys
+ import sysconfig
+ config_py_debug = sysconfig.get_config_var('Py_DEBUG')
+ print(bool(config_py_debug))
+ "
+ OUTPUT_VARIABLE PYTHON_WITH_DEBUG
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+# Detect if python interpeter was compiled with COUNT_ALLOCS define
+# Linux distros are inconsistent in setting the sysconfig.get_config_var('COUNT_ALLOCS') value
+# We can't detect it when cross-building, because we can't run the target python executable.
+# TODO: Is there another way to detect this and is it relevant for cross-built python interpreters?
+# At the very least, upstream CPython removed COUNT_ALLOCS support in Python 3.9.
+if(SHIBOKEN_IS_CROSS_BUILD)
+ set(PYTHON_WITH_COUNT_ALLOCS 0)
+else()
+ execute_process(
+ COMMAND ${Python_EXECUTABLE} -c "if True:
+ count_allocs = False
+ import sys
+ try:
+ if sys.getcounts:
+ count_allocs = True
+ except:
+ pass
+
+ print(bool(count_allocs))
+ "
+ OUTPUT_VARIABLE PYTHON_WITH_COUNT_ALLOCS
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+endif()
+
+
+set(SHIBOKEN_BUILD_TYPE "${CMAKE_BUILD_TYPE}")
+
+if(CMAKE_BUILD_TYPE STREQUAL "Debug")
+ set_debug_build()
+endif()
+
+######################################################################
+## Define the Python files involved in the build process.
+##
+## They are installed into the file system (see shibokenmodule)
+## and embedded into the libshiboken binary through a .zip file.
+######################################################################
+
+set(shiboken_python_files
+ "signature/lib/__init__.py"
+ "signature/lib/enum_sig.py"
+ "signature/lib/pyi_generator.py"
+ "signature/lib/tool.py"
+ "signature/__init__.py"
+ "signature/errorhandler.py"
+ "signature/importhandler.py"
+ "signature/layout.py"
+ "signature/loader.py"
+ "signature/mapping.py"
+ "signature/parser.py"
+ "__init__.py"
+ "feature.py"
+ )
+
+# uninstall target
+configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake"
+ "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
+ IMMEDIATE @ONLY)
+add_custom_target(uninstall "${CMAKE_COMMAND}"
+ -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
+
+set(generator_plugin_DIR ${LIB_INSTALL_DIR}/generatorrunner${generator_SUFFIX})
diff --git a/sources/shiboken6/cmake_uninstall.cmake b/sources/shiboken6/cmake_uninstall.cmake
index df95fb9d8..4031b4e1a 100644
--- a/sources/shiboken6/cmake_uninstall.cmake
+++ b/sources/shiboken6/cmake_uninstall.cmake
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
IF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
MESSAGE(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\"")
ENDIF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
diff --git a/sources/shiboken6/config.tests/target_python_info/CMakeLists.txt b/sources/shiboken6/config.tests/target_python_info/CMakeLists.txt
new file mode 100644
index 000000000..b3f994017
--- /dev/null
+++ b/sources/shiboken6/config.tests/target_python_info/CMakeLists.txt
@@ -0,0 +1,47 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+cmake_minimum_required(VERSION 3.18)
+project(proj LANGUAGES CXX)
+
+include("${CMAKE_CURRENT_LIST_DIR}/../../cmake/ShibokenHelpers.cmake")
+
+shiboken_internal_detect_if_cross_building()
+shiboken_find_required_python()
+shiboken_internal_set_python_site_packages()
+
+message(STATUS "qfp:python_info:interpreter_found: ${Python_Interpreter_FOUND}")
+message(STATUS "qfp:python_info:development_found: ${Python_Development_FOUND}")
+message(STATUS "qfp:python_info:version: ${Python_VERSION}")
+message(STATUS "qfp:python_info:version_major: ${Python_VERSION_MAJOR}")
+message(STATUS "qfp:python_info:version_minor: ${Python_VERSION_MINOR}")
+message(STATUS "qfp:python_info:version_patch: ${Python_VERSION_PATCH}")
+message(STATUS "qfp:python_info:executable: ${Python_EXECUTABLE}")
+message(STATUS "qfp:python_info:include_dirs: ${Python_INCLUDE_DIRS}")
+message(STATUS "qfp:python_info:libraries: ${Python_LIBRARIES}")
+message(STATUS "qfp:python_info:library_dirs: ${Python_LIBRARY_DIRS}")
+message(STATUS "qfp:python_info:runtime_library_dirs: ${Python_RUNTIME_LIBRARY_DIRS}")
+# Python_SOABI will be empty with CMake < 3.17
+message(STATUS "qfp:python_info:so_abi: ${Python_SOABI}")
+message(STATUS "qfp:python_info:site_packages_dir: ${PYTHON_SITE_PACKAGES_WITHOUT_PREFIX}")
+message(STATUS "qfp:python_info:site_packages_dir_with_prefix: ${PYTHON_SITE_PACKAGES}")
+
+message(STATUS
+ "The following values might be unstable because they depend on private FindPython API")
+# This is using internal FindPython API and is subject to break.
+set(_PYTHON_PREFIX Python)
+if(COMMAND _python_get_config_var)
+ if(_${_PYTHON_PREFIX}_CONFIG)
+ message(STATUS "qfp:python_info:config_executable: ${_${_PYTHON_PREFIX}_CONFIG}")
+ endif()
+
+ _python_get_config_var(_${_PYTHON_PREFIX}_PREFIX PREFIX)
+ if(_${_PYTHON_PREFIX}_PREFIX)
+ message(STATUS "qfp:python_info:prefix: ${_${_PYTHON_PREFIX}_PREFIX}")
+ endif()
+ _python_get_config_var(_${_PYTHON_PREFIX}_CONFIGDIR CONFIGDIR)
+ if(_${_PYTHON_PREFIX}_CONFIGDIR)
+ message(STATUS "qfp:python_info:config_dir: ${_${_PYTHON_PREFIX}_CONFIGDIR}")
+ endif()
+endif()
+
diff --git a/sources/shiboken6/config.tests/target_qt_info/CMakeLists.txt b/sources/shiboken6/config.tests/target_qt_info/CMakeLists.txt
new file mode 100644
index 000000000..7cc6b6ffc
--- /dev/null
+++ b/sources/shiboken6/config.tests/target_qt_info/CMakeLists.txt
@@ -0,0 +1,39 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+cmake_minimum_required(VERSION 3.18)
+project(proj LANGUAGES CXX)
+
+include("${CMAKE_CURRENT_LIST_DIR}/../../cmake/ShibokenHelpers.cmake")
+
+shiboken_internal_detect_if_cross_building()
+shiboken_internal_set_up_extra_dependency_paths()
+find_package(Qt6 REQUIRED COMPONENTS Core)
+
+include(FeatureSummary)
+
+feature_summary(INCLUDE_QUIET_PACKAGES
+ WHAT PACKAGES_FOUND
+ REQUIRED_PACKAGES_NOT_FOUND
+ RECOMMENDED_PACKAGES_NOT_FOUND
+ OPTIONAL_PACKAGES_NOT_FOUND
+ RUNTIME_PACKAGES_NOT_FOUND
+ FATAL_ON_MISSING_REQUIRED_PACKAGES)
+
+message(STATUS "qfp:qt_info:QT_VERSION: ${Qt6_VERSION}")
+message(STATUS "qfp:qt_info:QT_INSTALL_PREFIX: ${QT6_INSTALL_PREFIX}")
+message(STATUS "qfp:qt_info:QT_INSTALL_ARCHDATA: ${QT6_INSTALL_PREFIX}/${QT6_INSTALL_ARCHDATA}")
+message(STATUS "qfp:qt_info:QT_INSTALL_BINS: ${QT6_INSTALL_PREFIX}/${QT6_INSTALL_BINS}")
+message(STATUS "qfp:qt_info:QT_INSTALL_CONFIGURATION: ${QT6_INSTALL_CONFIGURATION}")
+message(STATUS "qfp:qt_info:QT_INSTALL_DATA: ${QT6_INSTALL_PREFIX}/${QT6_INSTALL_DATA}")
+message(STATUS "qfp:qt_info:QT_INSTALL_DOCS: ${QT6_INSTALL_PREFIX}/${QT6_INSTALL_DOCS}")
+message(STATUS "qfp:qt_info:QT_INSTALL_EXAMPLES: ${QT6_INSTALL_PREFIX}/${QT6_INSTALL_EXAMPLES}")
+message(STATUS "qfp:qt_info:QT_INSTALL_HEADERS: ${QT6_INSTALL_PREFIX}/${QT6_INSTALL_HEADERS}")
+message(STATUS "qfp:qt_info:QT_INSTALL_LIBS: ${QT6_INSTALL_PREFIX}/${QT6_INSTALL_LIBS}")
+message(STATUS "qfp:qt_info:QT_INSTALL_LIBEXECS: ${QT6_INSTALL_PREFIX}/${QT6_INSTALL_LIBEXECS}")
+message(STATUS "qfp:qt_info:QT_INSTALL_PLUGINS: ${QT6_INSTALL_PREFIX}/${QT6_INSTALL_PLUGINS}")
+message(STATUS "qfp:qt_info:QT_INSTALL_QML: ${QT6_INSTALL_PREFIX}/${QT6_INSTALL_QML}")
+message(STATUS "qfp:qt_info:QT_INSTALL_TESTS: ${QT6_INSTALL_PREFIX}/${QT6_INSTALL_TESTS}")
+message(STATUS "qfp:qt_info:QT_INSTALL_TRANSLATIONS: ${QT6_INSTALL_PREFIX}/${QT6_INSTALL_TRANSLATIONS}")
+message(STATUS "qfp:qt_info:is_shared: ${QT6_IS_SHARED_LIBS_BUILD}")
+
diff --git a/sources/shiboken6/config.tests/target_qt_mkspec/CMakeLists.txt b/sources/shiboken6/config.tests/target_qt_mkspec/CMakeLists.txt
new file mode 100644
index 000000000..9f6513316
--- /dev/null
+++ b/sources/shiboken6/config.tests/target_qt_mkspec/CMakeLists.txt
@@ -0,0 +1,25 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+cmake_minimum_required(VERSION 3.18)
+project(dummy LANGUAGES CXX)
+
+include("${CMAKE_CURRENT_LIST_DIR}/../../cmake/ShibokenHelpers.cmake")
+
+shiboken_internal_detect_if_cross_building()
+shiboken_internal_set_up_extra_dependency_paths()
+find_package(Qt6 REQUIRED COMPONENTS Core)
+
+get_target_property(darwin_target Qt6::Core QT_DARWIN_MIN_DEPLOYMENT_TARGET)
+
+# Get macOS minimum deployment target
+message(STATUS "qfp:qt_info:QMAKE_MACOSX_DEPLOYMENT_TARGET: ${darwin_target}")
+
+# Get Qt build type
+if(QT_FEATURE_debug_and_release)
+ message(STATUS "qfp:qt_info:BUILD_TYPE: debug_and_release")
+elseif(QT_FEATURE_debug)
+ message(STATUS "qfp:qt_info:BUILD_TYPE: debug")
+else()
+ message(STATUS "qfp:qt_info:BUILD_TYPE: release")
+endif()
diff --git a/sources/shiboken6/data/CMakeLists.txt b/sources/shiboken6/data/CMakeLists.txt
index 46bd1bfa9..679eefe6a 100644
--- a/sources/shiboken6/data/CMakeLists.txt
+++ b/sources/shiboken6/data/CMakeLists.txt
@@ -1,13 +1,12 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
set(LIBRARY_OUTPUT_SUFFIX ${CMAKE_DEBUG_POSTFIX})
else()
set(LIBRARY_OUTPUT_SUFFIX ${CMAKE_RELEASE_POSTFIX})
endif()
-add_custom_target(data)
-add_dependencies(data shiboken6)
-get_target_property(SHIBOKEN_GENERATOR shiboken6 OUTPUT_NAME)
-
include(CMakePackageConfigHelpers)
# Build-tree / super project package config file.
@@ -33,7 +32,7 @@ endif()
configure_package_config_file(
"${CMAKE_CURRENT_SOURCE_DIR}/Shiboken6Config-spec.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/install/Shiboken6Config${PYTHON_CONFIG_SUFFIX}.cmake"
- INSTALL_DESTINATION "${LIB_INSTALL_DIR}/cmake/Shiboken6-${shiboken6_VERSION}"
+ INSTALL_DESTINATION "${LIB_INSTALL_DIR}/cmake/Shiboken6"
PATH_VARS SHIBOKEN_PYTHON_MODULE_DIR SHIBOKEN_SHARED_LIBRARY_DIR
)
@@ -45,16 +44,16 @@ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/shiboken6.pc.in"
"${CMAKE_CURRENT_BINARY_DIR}/shiboken6${shiboken6_SUFFIX}.pc" @ONLY)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/Shiboken6Config.cmake"
- DESTINATION "${LIB_INSTALL_DIR}/cmake/Shiboken6-${shiboken6_VERSION}")
+ DESTINATION "${LIB_INSTALL_DIR}/cmake/Shiboken6")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/install/Shiboken6Config${PYTHON_CONFIG_SUFFIX}.cmake"
- DESTINATION "${LIB_INSTALL_DIR}/cmake/Shiboken6-${shiboken6_VERSION}")
+ DESTINATION "${LIB_INSTALL_DIR}/cmake/Shiboken6")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/Shiboken6ConfigVersion.cmake"
- DESTINATION "${LIB_INSTALL_DIR}/cmake/Shiboken6-${shiboken6_VERSION}")
+ DESTINATION "${LIB_INSTALL_DIR}/cmake/Shiboken6")
-install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/shiboken_helpers.cmake"
- DESTINATION "${LIB_INSTALL_DIR}/cmake/Shiboken6-${shiboken6_VERSION}")
+install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../cmake/ShibokenHelpers.cmake"
+ DESTINATION "${LIB_INSTALL_DIR}/cmake/Shiboken6")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/shiboken6${shiboken6_SUFFIX}.pc"
DESTINATION "${LIB_INSTALL_DIR}/pkgconfig")
diff --git a/sources/shiboken6/data/Shiboken6Config-spec.cmake.in b/sources/shiboken6/data/Shiboken6Config-spec.cmake.in
index 06518d253..233404bc6 100644
--- a/sources/shiboken6/data/Shiboken6Config-spec.cmake.in
+++ b/sources/shiboken6/data/Shiboken6Config-spec.cmake.in
@@ -5,19 +5,19 @@
# This is the version of Python against which Shiboken was built. Not necessarily the version
# against which a downstream project is built (e.g. PySide6).
-set(SHIBOKEN_PYTHON_VERSION_MAJOR "@PYTHON_VERSION_MAJOR@")
-set(SHIBOKEN_PYTHON_VERSION_MINOR "@PYTHON_VERSION_MINOR@")
-set(SHIBOKEN_PYTHON_VERSION_PATCH "@PYTHON_VERSION_PATCH@")
+set(SHIBOKEN_PYTHON_VERSION_MAJOR "@Python_VERSION_MAJOR@")
+set(SHIBOKEN_PYTHON_VERSION_MINOR "@Python_VERSION_MINOR@")
+set(SHIBOKEN_PYTHON_VERSION_PATCH "@Python_VERSION_PATCH@")
set(SHIBOKEN_PYTHON_LIMITED_API "@PYTHON_LIMITED_API@")
# Import targets and call variable set up functions only when using an installed shiboken config
# file (so not during a regular shiboken build, or during a super project build).
-if (NOT TARGET Shiboken6::shiboken6)
+if (NOT TARGET Shiboken6::libshiboken)
include("${CMAKE_CURRENT_LIST_DIR}/Shiboken6Targets.cmake")
- include("${CMAKE_CURRENT_LIST_DIR}/shiboken_helpers.cmake")
+ include("${CMAKE_CURRENT_LIST_DIR}/ShibokenHelpers.cmake")
# Compute the python include and libraries path if needed (aka not part of super project build).
- shiboken_find_required_python(@PYTHON_VERSION_MAJOR@)
+ shiboken_find_required_python(@Python_VERSION_MAJOR@)
shiboken_check_if_built_and_target_python_are_compatible()
shiboken_check_if_limited_api()
shiboken_compute_python_includes(IS_CALLED_FROM_EXPORT)
diff --git a/sources/shiboken6/data/Shiboken6ToolsConfig.cmake.in b/sources/shiboken6/data/Shiboken6ToolsConfig.cmake.in
new file mode 100644
index 000000000..438b5c651
--- /dev/null
+++ b/sources/shiboken6/data/Shiboken6ToolsConfig.cmake.in
@@ -0,0 +1,7 @@
+@PACKAGE_INIT@
+
+cmake_minimum_required(VERSION 3.18)
+
+if(NOT TARGET Shiboken6::shiboken6)
+ include("${CMAKE_CURRENT_LIST_DIR}/Shiboken6ToolsTargets.cmake")
+endif()
diff --git a/sources/shiboken6/data/shiboken6.pc.in b/sources/shiboken6/data/shiboken6.pc.in
index 2ff841840..a82d23168 100644
--- a/sources/shiboken6/data/shiboken6.pc.in
+++ b/sources/shiboken6/data/shiboken6.pc.in
@@ -1,13 +1,12 @@
prefix=@CMAKE_INSTALL_PREFIX@
exec_prefix=@CMAKE_INSTALL_PREFIX@
-libdir=@LIB_INSTALL_DIR@
+libdir=@CMAKE_INSTALL_PREFIX@/@LIB_INSTALL_DIR@
includedir=@CMAKE_INSTALL_PREFIX@/include/shiboken6
-generator_location=@CMAKE_INSTALL_PREFIX@/bin/@SHIBOKEN_GENERATOR@
-python_interpreter=@PYTHON_EXECUTABLE@
-python_include_dir=@PYTHON_INCLUDE_DIRS@
+python_interpreter=@Python_EXECUTABLE@
+python_include_dir=@Python_INCLUDE_DIRS@
Name: shiboken6
Description: Support library for Python bindings created with the Shiboken6 generator.
Version: @shiboken6_VERSION@
Libs: @SHIBOKEN_PYTHON_LIBRARIES@ -L${libdir} -lshiboken6@shiboken6_SUFFIX@@PYTHON_SHARED_LIBRARY_SUFFIX@@LIBRARY_OUTPUT_SUFFIX@
-Cflags: -I@PYTHON_INCLUDE_DIRS@ -I${includedir}/@shiboken6_SUFFIX@@SBK_PKG_CONFIG_PY_DEBUG_DEFINITION@
+Cflags: -I@Python_INCLUDE_DIRS@ -I${includedir}/@shiboken6_SUFFIX@@SBK_PKG_CONFIG_PY_DEBUG_DEFINITION@
diff --git a/sources/shiboken6/data/shiboken_helpers.cmake b/sources/shiboken6/data/shiboken_helpers.cmake
deleted file mode 100644
index 7e772c7fd..000000000
--- a/sources/shiboken6/data/shiboken_helpers.cmake
+++ /dev/null
@@ -1,365 +0,0 @@
-include(CMakeParseArguments)
-
-macro(set_limited_api)
- if (WIN32 AND NOT EXISTS "${PYTHON_LIMITED_LIBRARIES}")
- message(FATAL_ERROR "The Limited API was enabled, but ${PYTHON_LIMITED_LIBRARIES} was not found!")
- endif()
- message(STATUS "******************************************************")
- message(STATUS "** Limited API enabled ${PYTHON_LIMITED_LIBRARIES}")
- message(STATUS "******************************************************")
-endmacro()
-
-macro(set_debug_build)
- set(SHIBOKEN_BUILD_TYPE "Debug")
-
- if(NOT PYTHON_DEBUG_LIBRARIES)
- message(WARNING "Python debug shared library not found; \
- assuming python was built with shared library support disabled.")
- endif()
-
- if(NOT PYTHON_WITH_DEBUG)
- message(WARNING "Compiling shiboken6 with debug enabled, \
- but the python executable was not compiled with debug support.")
- else()
- set(SBK_PKG_CONFIG_PY_DEBUG_DEFINITION " -DPy_DEBUG")
- endif()
-
- if (PYTHON_WITH_COUNT_ALLOCS)
- set(SBK_PKG_CONFIG_PY_DEBUG_DEFINITION "${SBK_PKG_CONFIG_PY_DEBUG_DEFINITION} -DCOUNT_ALLOCS")
- endif()
-endmacro()
-
-macro(setup_sanitize_address)
- # Currently this does not check that the clang / gcc version used supports Address sanitizer,
- # so once again, use at your own risk.
- add_compile_options("-fsanitize=address" "-g" "-fno-omit-frame-pointer")
- # We need to add the sanitize address option to all linked executables / shared libraries
- # so that proper sanitizer symbols are linked in.
- #
- # Note that when running tests, you may need to set an additional environment variable
- # in set_tests_properties for shiboken6 / pyside tests, or exported in your shell. Address
- # sanitizer will tell you what environment variable needs to be exported. For example:
- # export DYLD_INSERT_LIBRARIES=/Applications/Xcode.app/Contents/Developer/Toolchains/
- # ./XcodeDefault.xctoolchain/usr/lib/clang/8.1.0/lib/darwin/libclang_rt.asan_osx_dynamic.dylib
- set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_STANDARD_LIBRARIES} -fsanitize=address")
-endmacro()
-
-macro(set_cmake_cxx_flags)
-if(MSVC)
- # Qt5: this flag has changed from /Zc:wchar_t- in Qt4.X
- set(CMAKE_CXX_FLAGS "/Zc:wchar_t /GR /EHsc /DWIN32 /D_WINDOWS /D_SCL_SECURE_NO_WARNINGS")
- #set(CMAKE_CXX_FLAGS "/Zc:wchar_t /GR /EHsc /DNOCOLOR /DWIN32 /D_WINDOWS /D_SCL_SECURE_NO_WARNINGS") # XXX
-else()
- if(CMAKE_HOST_UNIX AND NOT CYGWIN)
- add_definitions(-fPIC)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -fvisibility=hidden -Wno-strict-aliasing")
- endif()
- set(CMAKE_CXX_FLAGS_DEBUG "-g")
- option(ENABLE_GCC_OPTIMIZATION "Enable specific GCC flags to optimization library \
- size and performance. Only available on Release Mode" 0)
- if(ENABLE_GCC_OPTIMIZATION)
- set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG -Os -Wl,-O1")
- if(NOT CMAKE_HOST_APPLE)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,--hash-style=gnu")
- endif()
- endif()
- if(CMAKE_HOST_APPLE)
- # ALTERNATIVE_QT_INCLUDE_DIR is deprecated, because CMake takes care of finding the proper
- # include folders using the qmake found in the environment. Only use it for now in case
- # something goes wrong with the cmake process.
- if(ALTERNATIVE_QT_INCLUDE_DIR AND NOT QT_INCLUDE_DIR)
- set(QT_INCLUDE_DIR ${ALTERNATIVE_QT_INCLUDE_DIR})
- endif()
- endif()
-endif()
-
-endmacro()
-
-macro(set_python_site_packages)
- execute_process(
- COMMAND ${PYTHON_EXECUTABLE} -c "if True:
- from distutils import sysconfig
- from os.path import sep
- print(sysconfig.get_python_lib(1, 0, prefix='${CMAKE_INSTALL_PREFIX}').replace(sep, '/'))
- "
- OUTPUT_VARIABLE PYTHON_SITE_PACKAGES
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- if (NOT PYTHON_SITE_PACKAGES)
- message(FATAL_ERROR "Could not detect Python module installation directory.")
- elseif (APPLE)
- message(STATUS "!!! The generated bindings will be installed on ${PYTHON_SITE_PACKAGES}, \
- is it right!?")
- endif()
-endmacro()
-
-macro(set_python_config_suffix)
- if (PYTHON_LIMITED_API)
- if(WIN32)
- set(PYTHON_EXTENSION_SUFFIX "")
- else()
- set(PYTHON_EXTENSION_SUFFIX ".abi3")
- endif()
- set(PYTHON_CONFIG_SUFFIX ".abi3")
- else()
- set(PYTHON_CONFIG_SUFFIX "${PYTHON_EXTENSION_SUFFIX}")
- endif()
-endmacro()
-
-macro(setup_clang)
- # Find libclang using the environment variables LLVM_INSTALL_DIR,
- # CLANG_INSTALL_DIR using standard cmake.
- # Use CLANG_INCLUDE_DIRS and link to libclang.
- if(DEFINED ENV{LLVM_INSTALL_DIR})
- list(PREPEND CMAKE_PREFIX_PATH "$ENV{LLVM_INSTALL_DIR}")
- list(PREPEND CMAKE_FIND_ROOT_PATH "$ENV{LLVM_INSTALL_DIR}")
- elseif(DEFINED ENV{CLANG_INSTALL_DIR})
- list(PREPEND CMAKE_PREFIX_PATH "$ENV{CLANG_INSTALL_DIR}")
- list(PREPEND CMAKE_FIND_ROOT_PATH "$ENV{CLANG_INSTALL_DIR}")
- endif()
-
- find_package(Clang CONFIG REQUIRED)
- # CLANG_LIBRARY is read out from the cmake cache to deploy libclang
- get_target_property(CLANG_BUILD_TYPE libclang IMPORTED_CONFIGURATIONS)
- get_target_property(CLANG_LIBRARY_NAME libclang IMPORTED_LOCATION_${CLANG_BUILD_TYPE})
- set(CLANG_LIBRARY "${CLANG_LIBRARY_NAME}" CACHE FILEPATH "libclang")
- message(STATUS "CLANG: ${Clang_DIR}, ${CLANG_LIBRARY} detected")
-endmacro()
-
-macro(set_quiet_build)
- # Don't display "up-to-date / install" messages when installing, to reduce visual clutter.
- set(CMAKE_INSTALL_MESSAGE NEVER)
- # Override message not to display info messages when doing a quiet build.
- function(message)
- list(GET ARGV 0 MessageType)
- if (MessageType STREQUAL FATAL_ERROR OR
- MessageType STREQUAL SEND_ERROR OR
- MessageType STREQUAL WARNING OR
- MessageType STREQUAL AUTHOR_WARNING)
- list(REMOVE_AT ARGV 0)
- _message(${MessageType} "${ARGV}")
- endif()
- endfunction()
-endmacro()
-
-macro(get_python_extension_suffix)
- execute_process(
- COMMAND ${PYTHON_EXECUTABLE} -c "if True:
- import re
- import sysconfig
- suffix = sysconfig.get_config_var('EXT_SUFFIX')
- res = re.search(r'^(.+)\\.', suffix)
- if res:
- suffix = res.group(1)
- else:
- suffix = ''
- print(suffix)
- "
- OUTPUT_VARIABLE PYTHON_EXTENSION_SUFFIX
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- message(STATUS "PYTHON_EXTENSION_SUFFIX: " ${PYTHON_EXTENSION_SUFFIX})
-endmacro()
-
-macro(shiboken_parse_all_arguments prefix type flags options multiopts)
- cmake_parse_arguments(${prefix} "${flags}" "${options}" "${multiopts}" ${ARGN})
- if(DEFINED ${prefix}_UNPARSED_ARGUMENTS)
- message(FATAL_ERROR "Unknown arguments were passed to ${type} (${${prefix}_UNPARSED_ARGUMENTS}).")
- endif()
-endmacro()
-
-macro(shiboken_check_if_limited_api)
- # On Windows, PYTHON_LIBRARIES can be a list. Example:
- # optimized;C:/Python36/libs/python36.lib;debug;C:/Python36/libs/python36_d.lib
- # On other platforms, this result is not used at all.
- execute_process(
- COMMAND ${PYTHON_EXECUTABLE} -c "if True:
- import os
- for lib in '${PYTHON_LIBRARIES}'.split(';'):
- if '/' in lib and os.path.isfile(lib):
- prefix, py = lib.rsplit('/', 1)
- if py.startswith('python3'):
- print(prefix + '/python3.lib')
- break
- "
- OUTPUT_VARIABLE PYTHON_LIMITED_LIBRARIES
- OUTPUT_STRIP_TRAILING_WHITESPACE)
-
- if(FORCE_LIMITED_API STREQUAL "yes")
- if (${PYTHON_VERSION_MAJOR} EQUAL 3 AND ${PYTHON_VERSION_MINOR} GREATER 4)
- # GREATER_EQUAL is available only from cmake 3.7 on. We mean python 3.5 .
- set(PYTHON_LIMITED_API 1)
- endif()
- if(WIN32)
- if (${PYTHON_VERSION_MAJOR} EQUAL 3 AND ${PYTHON_VERSION_MINOR} GREATER 4)
- # PYSIDE-560: XXX maybe add an option to setup.py as override
- set(SHIBOKEN_PYTHON_LIBRARIES ${PYTHON_LIMITED_LIBRARIES})
- endif()
- endif()
- endif()
-endmacro()
-
-
-macro(shiboken_find_required_python)
- if(${ARGC} GREATER 0)
- find_package(PythonInterp ${ARGV0} REQUIRED)
- find_package(PythonLibs ${ARGV0} REQUIRED)
- else()
- # If no version is specified, just use any interpreter that can be found (from PATH).
- # This is useful for super-project builds, so that the default system interpeter
- # gets picked up (e.g. /usr/bin/python and not /usr/bin/python2.7).
- find_package(PythonInterp REQUIRED)
- find_package(PythonLibs REQUIRED)
- endif()
- shiboken_validate_python_version()
-
- set(SHIBOKEN_PYTHON_INTERPRETER "${PYTHON_EXECUTABLE}")
- set_property(GLOBAL PROPERTY SHIBOKEN_PYTHON_INTERPRETER "${PYTHON_EXECUTABLE}")
-endmacro()
-
-macro(shiboken_validate_python_version)
- if(PYTHON_VERSION_MAJOR EQUAL "3" AND PYTHON_VERSION_MINOR LESS "5")
- message(FATAL_ERROR
- "Shiboken requires Python 3.5+.")
- endif()
-endmacro()
-
-macro(shiboken_compute_python_includes)
- shiboken_parse_all_arguments(
- "SHIBOKEN_COMPUTE_INCLUDES" "shiboken_compute_python_includes"
- "IS_CALLED_FROM_EXPORT" "" "" ${ARGN})
-
-
- # If the installed shiboken config file is used,
- # append the found Python include dirs as an interface property on the libshiboken target.
- # This needs to be dynamic because the user of the library might have python installed
- # in a different path than when shiboken was originally built.
- # Otherwise if shiboken is currently being built itself (either as standalone, or super project
- # build) append the include dirs as PUBLIC.
- if (SHIBOKEN_COMPUTE_INCLUDES_IS_CALLED_FROM_EXPORT)
- #TODO target_include_directories works on imported targets only starting with v3.11.0.
- set_property(TARGET Shiboken6::libshiboken
- APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${PYTHON_INCLUDE_DIRS})
- else()
- target_include_directories(libshiboken
- PUBLIC $<BUILD_INTERFACE:${PYTHON_INCLUDE_DIRS}>)
- endif()
-
-
- set(SHIBOKEN_PYTHON_INCLUDE_DIRS "${PYTHON_INCLUDE_DIRS}")
-
- set_property(GLOBAL PROPERTY shiboken_python_include_dirs "${SHIBOKEN_PYTHON_INCLUDE_DIRS}")
-
- message(STATUS
- "SHIBOKEN_PYTHON_INCLUDE_DIRS computed to value: '${SHIBOKEN_PYTHON_INCLUDE_DIRS}'")
-endmacro()
-
-# Given a list of the following form:
-# optimized;C:/Python36/libs/python36.lib;debug;C:/Python36/libs/python36_d.lib
-# choose the corresponding library to use, based on the current configuration type.
-function(shiboken_get_library_for_current_config library_list current_config out_var)
- list(FIND library_list "optimized" optimized_found)
- list(FIND library_list "general" general_found)
- list(FIND library_list "debug" debug_found)
-
- if (optimized_found OR general_found OR debug_found)
- # Iterate over library list to find the most appropriate library.
- foreach(token ${library_list})
- if(token STREQUAL "optimized" OR token STREQUAL "general")
- set(is_debug 0)
- set(token1 1)
- set(lib "")
- elseif(token STREQUAL "debug")
- set(is_debug 1)
- set(token1 1)
- set(lib "")
- elseif(EXISTS ${token})
- set(lib ${token})
- set(token2 1)
- else()
- set(token1 0)
- set(token2 0)
- set(lib "")
- endif()
-
- if(token1 AND token2)
- if((is_debug AND lib AND current_config STREQUAL "Debug")
- OR (NOT is_debug AND lib AND (NOT current_config STREQUAL "Debug")))
- set(${out_var} ${lib} PARENT_SCOPE)
- return()
- endif()
- endif()
- endforeach()
- else()
- # No configuration specific libraries found, just set the original value.
- set(${out_var} "${library_list}" PARENT_SCOPE)
- endif()
-
-endfunction()
-
-macro(shiboken_compute_python_libraries)
- shiboken_parse_all_arguments(
- "SHIBOKEN_COMPUTE_LIBS" "shiboken_compute_python_libraries"
- "IS_CALLED_FROM_EXPORT" "" "" ${ARGN})
-
- if (NOT SHIBOKEN_PYTHON_LIBRARIES)
- set(SHIBOKEN_PYTHON_LIBRARIES "")
- endif()
-
- if(CMAKE_BUILD_TYPE STREQUAL "Debug")
- if(WIN32 AND NOT SHIBOKEN_PYTHON_LIBRARIES)
- set(SHIBOKEN_PYTHON_LIBRARIES ${PYTHON_DEBUG_LIBRARIES})
- endif()
- endif()
-
- if(CMAKE_BUILD_TYPE STREQUAL "Release")
- if(WIN32 AND NOT SHIBOKEN_PYTHON_LIBRARIES)
- set(SHIBOKEN_PYTHON_LIBRARIES ${PYTHON_LIBRARIES})
- endif()
- endif()
-
- # If the resulting variable
- # contains a "debug;X;optimized;Y" list like described in shiboken_check_if_limited_api,
- # make sure to pick just one, so that the final generator expressions are valid.
- shiboken_get_library_for_current_config("${SHIBOKEN_PYTHON_LIBRARIES}" "${CMAKE_BUILD_TYPE}" "SHIBOKEN_PYTHON_LIBRARIES")
-
- if(APPLE)
- set(SHIBOKEN_PYTHON_LIBRARIES "-undefined dynamic_lookup")
- endif()
-
- # If the installed shiboken config file is used,
- # append the computed Python libraries as an interface property on the libshiboken target.
- # This needs to be dynamic because the user of the library might have python installed
- # in a different path than when shiboken was originally built.
- # Otherwise if shiboken is currently being built itself (either as standalone, or super project
- # build) append the libraries as PUBLIC.
- if (SHIBOKEN_COMPUTE_LIBS_IS_CALLED_FROM_EXPORT)
- #TODO target_link_libraries works on imported targets only starting with v3.11.0.
- set_property(TARGET Shiboken6::libshiboken
- APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${SHIBOKEN_PYTHON_LIBRARIES})
- else()
- target_link_libraries(libshiboken
- PUBLIC $<BUILD_INTERFACE:${SHIBOKEN_PYTHON_LIBRARIES}>)
- endif()
-
- set_property(GLOBAL PROPERTY shiboken_python_libraries "${SHIBOKEN_PYTHON_LIBRARIES}")
-
- message(STATUS "SHIBOKEN_PYTHON_LIBRARIES computed to value: '${SHIBOKEN_PYTHON_LIBRARIES}'")
-endmacro()
-
-function(shiboken_check_if_built_and_target_python_are_compatible)
- if(NOT SHIBOKEN_PYTHON_VERSION_MAJOR STREQUAL PYTHON_VERSION_MAJOR)
- message(FATAL_ERROR "The detected Python major version is not \
-compatible with the Python major version which was used when Shiboken was built.
-Built with: '${SHIBOKEN_PYTHON_VERSION_MAJOR}.${SHIBOKEN_PYTHON_VERSION_MINOR}' \
-Detected: '${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}'")
- else()
- if(NOT SHIBOKEN_PYTHON_LIMITED_API
- AND NOT SHIBOKEN_PYTHON_VERSION_MINOR STREQUAL PYTHON_VERSION_MINOR)
- message(FATAL_ERROR
- "The detected Python minor version is not compatible with the Python minor \
-version which was used when Shiboken was built. Consider building shiboken with \
-FORCE_LIMITED_API set to '1', so that only the Python major version matters.
-Built with: '${SHIBOKEN_PYTHON_VERSION_MAJOR}.${SHIBOKEN_PYTHON_VERSION_MINOR}' \
-Detected: '${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}'")
- endif()
- endif()
-endfunction()
diff --git a/sources/shiboken6/doc/CMakeLists.txt b/sources/shiboken6/doc/CMakeLists.txt
index 8d78eb400..eaef4ff29 100644
--- a/sources/shiboken6/doc/CMakeLists.txt
+++ b/sources/shiboken6/doc/CMakeLists.txt
@@ -1,50 +1,61 @@
-cmake_minimum_required(VERSION 3.16)
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+cmake_minimum_required(VERSION 3.18)
if(FULLDOCSBUILD EQUAL 0)
project(shiboken6_doc)
endif()
-find_program(SPHINX sphinx-build DOC "Path to sphinx-build binary.")
-if (SPHINX)
+list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/../cmake")
+include(FindDocTools)
+
+# Generate html by default.
+if(NOT DOC_OUTPUT_FORMAT)
+ set(DOC_OUTPUT_FORMAT "html")
+endif()
+
+if(SPHINX_BUILD)
message(STATUS "sphinx-build - found")
configure_file(conf.py.in conf.py @ONLY)
# conditional tag for sphinx build
#string(JOIN "_" SPHINX_TAG ${DOC_OUTPUT_FORMAT} "format")
add_custom_target(doc
- COMMAND ${SPHINX} -b ${DOC_OUTPUT_FORMAT} -c . ${CMAKE_CURRENT_SOURCE_DIR} html
- COMMENT "Generating HTMLs..."
+ COMMAND ${SPHINX_BUILD} -b ${DOC_OUTPUT_FORMAT} -j auto -c . ${CMAKE_CURRENT_SOURCE_DIR} html
+ COMMENT "Generating shiboken documentation HTML files"
VERBATIM)
- # Python script that will be called to update the QHP
- set(py_cmd "
-import fileinput
-import re
-try:
-\tfor line in fileinput.input('html/Shiboken.qhp',inplace=True,backup='.bak'):
-\t\tline_copy=line.strip()
-\t\tif not line_copy: # check for empty line
-\t\t\tcontinue
-\t\tmatch=re.match('(^.*virtualFolder.)doc(.*$)',line)
-\t\tif match:
-\t\t\trepl=''.join([match.group(1),'shiboken6',match.group(2)])
-\t\t\tprint(line.replace(match.group(0),repl),end=' ')
-\t\telse:
-\t\t\tprint(line)
-except:
-\tpass\n")
- file(GENERATE OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/py_script.py
- CONTENT ${py_cmd})
-
- # create a custom command to generate QCH
+
+ # Attach a POST_BUILD step to the 'doc' custom target to generate a QCH file.
if(DOC_OUTPUT_FORMAT STREQUAL "qthelp")
- file(TO_NATIVE_PATH ${CMAKE_CURRENT_BINARY_DIR}/html/Shiboken.qhp QHP_FILE)
- add_custom_command(TARGET doc POST_BUILD
- COMMAND ${PYTHON_EXECUTABLE} py_script.py # ${CMAKE_CURRENT_BINARY_DIR}/html/Shiboken.qhp
- COMMAND qhelpgenerator ${QHP_FILE}
- COMMENT "Genereting QCH based on the QHP..."
- VERBATIM)
+ if(qhelpgenerator_binary)
+ message(STATUS "qhelpgenerator - found")
+
+ # Python script that will be called to update the QHP
+ set(PATCH_QHP_SCRIPT "${CMAKE_CURRENT_LIST_DIR}/../../shiboken6/doc/scripts/patch_qhp.py")
+ file(TO_NATIVE_PATH ${CMAKE_CURRENT_BINARY_DIR}/html/Shiboken.qhp QHP_FILE)
+
+ if(SHIBOKEN_IS_CROSS_BUILD)
+ set(python_executable "${QFP_PYTHON_HOST_PATH}")
+ else()
+ set(python_executable "${Python_EXECUTABLE}")
+ endif()
+ if(NOT python_executable OR NOT EXISTS "${python_executable}")
+ message(FATAL_ERROR "No python executable found to build documentation.")
+ endif()
+
+ add_custom_command(TARGET doc POST_BUILD
+ COMMAND "${python_executable}" ${PATCH_QHP_SCRIPT} -v shiboken6 ${QHP_FILE}
+ COMMAND "${qhelpgenerator_binary}" ${QHP_FILE}
+ COMMENT "Generating shiboken documentation QCH files based on the QHP files"
+ VERBATIM)
+ else()
+ message(WARNING "qhelpgenerator - not found! qch generation disabled")
+ endif()
endif()
else()
- message(WARNING "sphinx-build - not found! doc target disabled")
+ if(NOT SPHINX_BUILD)
+ message(WARNING "sphinx-build - not found! doc target disabled")
+ endif()
if (WIN32)
# if jom is used and we have no sphinx, then jom will crash.
# so for windows, we always create a doc target (until jom gets fixed...)
diff --git a/sources/shiboken6/doc/_static/css/qt_font.css b/sources/shiboken6/doc/_static/css/qt_font.css
new file mode 100644
index 000000000..ce39943ef
--- /dev/null
+++ b/sources/shiboken6/doc/_static/css/qt_font.css
@@ -0,0 +1,15 @@
+@font-face {
+ font-family: 'Titillium Web';
+ font-style: normal;
+ font-weight: 400;
+ src: url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-regular.eot");
+ /* IE9 Compat Modes */
+ src: local("Titillium Web"),
+ local("TitilliumWeb-Regular"),
+ url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-regular.eot?#iefix") format("embedded-opentype"),
+ url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-regular.woff2") format("woff2"),
+ url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-regular.woff") format("woff"),
+ url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-regular.ttf") format("truetype"),
+ url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-regular.svg#TitilliumWeb") format("svg");
+ /* Legacy iOS */
+}
diff --git a/sources/shiboken6/doc/_static/css/qt_style.css b/sources/shiboken6/doc/_static/css/qt_style.css
new file mode 100644
index 000000000..08c4646c6
--- /dev/null
+++ b/sources/shiboken6/doc/_static/css/qt_style.css
@@ -0,0 +1,100 @@
+.text-center {
+ text-align: center !important;
+}
+
+.text-center img {
+ padding-top: 10px;
+ height: 70px !important;
+}
+
+.cover-img img {
+ object-fit: cover;
+ height: 50%;
+}
+
+/* Tables */
+.section .docutils.container td {
+ float:left;
+}
+
+table.docutils {
+ margin-right: auto;
+ margin-bottom: 10px;
+ border: none;
+ width: initial;
+ font-size: 0.8em;
+}
+
+table.docutils.colwidths-given td {
+ float: none;
+}
+
+table.docutils th,
+table.docutils td {
+ padding-left:0;
+ border: none;
+}
+
+table.docutils td ul {
+ margin:0
+}
+
+table.docutils td ul > li {
+ margin: 0 0 0.5em;
+}
+
+.hide {
+ display: none;
+}
+
+.fixed .container {
+ max-width:1280px;
+ margin:0 auto;
+ padding:0 3.9%; /* 0? */
+ position:relative;
+ overflow:visible
+}
+
+/* We cannot put a :download:`....` command inside
+ * a sphinx-design button, so we add some properties from the button
+ * to the download class to mimic it */
+code.download {
+ text-align: center;
+ color: var(--color-brand-primary);
+ display: block;
+ border-color: transparent;
+ background-color: transparent;
+ border: 1px solid var(--color-brand-primary) !important;
+ border-radius: 0.25rem;
+ font-size: 1rem;
+ font-weight: 400;
+ vertical-align: middle;
+ padding: .375rem .75rem;
+ user-select: none;
+ line-height: 1.5;
+ transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;
+}
+
+code.download:hover {
+ color: white;
+ background-color: var(--color-brand-primary);
+ border-color: var(--color-brand-primary);
+ text-decoration: none;
+ padding: .375rem .75rem;
+}
+
+dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple):first-child > dt {
+ font-size: +2.25rem;
+ font-weight: 700;
+ color: #ff00dd;
+}
+
+.theme-toggle svg{
+ width: +1.25rem;
+ height: +2.25rem;
+}
+
+.sd-card-title code span {
+ font-size: +1rem;
+ color: var(--color-brand-primary);
+}
diff --git a/sources/pyside6/doc/_themes/pysidedocs/static/pysidelogo.png b/sources/shiboken6/doc/_static/qtforpython.png
index 3a2f2bd17..3a2f2bd17 100644
--- a/sources/pyside6/doc/_themes/pysidedocs/static/pysidelogo.png
+++ b/sources/shiboken6/doc/_static/qtforpython.png
Binary files differ
diff --git a/sources/shiboken6/doc/_static/shiboken.png b/sources/shiboken6/doc/_static/shiboken.png
new file mode 100644
index 000000000..587d33329
--- /dev/null
+++ b/sources/shiboken6/doc/_static/shiboken.png
Binary files differ
diff --git a/sources/shiboken6/doc/_static/shiboken.svg b/sources/shiboken6/doc/_static/shiboken.svg
new file mode 100644
index 000000000..a13f3e9fb
--- /dev/null
+++ b/sources/shiboken6/doc/_static/shiboken.svg
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="1080"
+ zoomAndPan="magnify"
+ viewBox="0 0 810 809.999993"
+ height="1080"
+ preserveAspectRatio="xMidYMid meet"
+ version="1.0"
+ id="svg47"
+ sodipodi:docname="shiboken.svg"
+ inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <sodipodi:namedview
+ id="namedview49"
+ pagecolor="#ffffff"
+ bordercolor="#000000"
+ borderopacity="0.25"
+ inkscape:showpageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ inkscape:deskcolor="#d1d1d1"
+ showgrid="false"
+ inkscape:zoom="0.80648148"
+ inkscape:cx="505.28129"
+ inkscape:cy="540"
+ inkscape:window-width="2552"
+ inkscape:window-height="1432"
+ inkscape:window-x="1924"
+ inkscape:window-y="4"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg47" />
+ <defs
+ id="defs17">
+ <clipPath
+ id="25c649227a">
+ <path
+ d="M 187.234375 180.804688 L 622.011719 180.804688 L 622.011719 615.582031 L 187.234375 615.582031 Z M 187.234375 180.804688 "
+ clip-rule="nonzero"
+ id="path2" />
+ </clipPath>
+ <clipPath
+ id="a7a24c818d">
+ <path
+ d="M 475.953125 479.28125 L 728.5625 479.28125 L 728.5625 731.886719 L 475.953125 731.886719 Z M 475.953125 479.28125 "
+ clip-rule="nonzero"
+ id="path5" />
+ </clipPath>
+ <clipPath
+ id="9e94c67ce5">
+ <path
+ d="M 80.601562 479.28125 L 332.789062 479.28125 L 332.789062 731.886719 L 80.601562 731.886719 Z M 80.601562 479.28125 "
+ clip-rule="nonzero"
+ id="path8" />
+ </clipPath>
+ <clipPath
+ id="f807adb387">
+ <path
+ d="M 475.953125 81.417969 L 728.5625 81.417969 L 728.5625 333.609375 L 475.953125 333.609375 Z M 475.953125 81.417969 "
+ clip-rule="nonzero"
+ id="path11" />
+ </clipPath>
+ <clipPath
+ id="a7b91dab09">
+ <path
+ d="M 80.601562 81.417969 L 332.789062 81.417969 L 332.789062 333.609375 L 80.601562 333.609375 Z M 80.601562 81.417969 "
+ clip-rule="nonzero"
+ id="path14" />
+ </clipPath>
+ </defs>
+ <path
+ fill="#41cb51"
+ d="M 404.621094 459.0625 C 371.058594 459.0625 343.753906 431.75 343.753906 398.195312 C 343.753906 364.628906 371.058594 337.324219 404.621094 337.324219 C 438.179688 337.324219 465.492188 364.628906 465.492188 398.195312 C 465.492188 431.75 438.179688 459.0625 404.621094 459.0625 Z M 404.621094 459.0625 "
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path25" />
+ <g
+ clip-path="url(#25c649227a)"
+ id="g29">
+ <path
+ fill="#41cb51"
+ d="M 614.714844 363.132812 L 568.308594 355.550781 C 564.375 340.4375 558.351562 325.984375 550.351562 312.4375 L 577.464844 273.804688 C 579.890625 270.34375 579.480469 265.648438 576.5 262.65625 L 539.613281 225.769531 C 536.59375 222.742188 531.828125 222.371094 528.386719 224.855469 L 490.152344 252.335938 C 476.578125 244.351562 462.109375 238.34375 447.003906 234.4375 L 438.867188 187.996094 C 438.136719 183.839844 434.519531 180.804688 430.292969 180.804688 L 378.117188 180.804688 C 373.859375 180.804688 370.222656 183.890625 369.535156 188.101562 L 361.953125 234.535156 C 347.023438 238.421875 332.691406 244.371094 319.222656 252.273438 L 280.808594 224.820312 C 277.335938 222.351562 272.617188 222.742188 269.597656 225.742188 L 232.703125 262.628906 C 229.71875 265.613281 229.304688 270.308594 231.730469 273.761719 L 258.851562 312.5 C 250.886719 325.996094 244.902344 340.386719 240.980469 355.402344 L 194.511719 363.140625 C 190.3125 363.835938 187.234375 367.464844 187.234375 371.714844 L 187.234375 423.890625 C 187.234375 428.105469 190.261719 431.714844 194.40625 432.445312 L 240.894531 440.6875 C 244.78125 455.6875 250.746094 470.0625 258.675781 483.582031 L 231.214844 521.964844 C 228.746094 525.425781 229.136719 530.164062 232.136719 533.175781 L 269.023438 570.0625 C 272 573.035156 276.695312 573.453125 280.15625 571.035156 L 318.875 543.9375 C 332.320312 551.878906 346.703125 557.871094 361.78125 561.808594 L 369.535156 608.3125 C 370.242188 612.503906 373.867188 615.582031 378.117188 615.582031 L 430.292969 615.582031 C 434.5 615.582031 438.109375 612.554688 438.847656 608.40625 L 447.101562 561.914062 C 462.292969 557.984375 476.804688 551.949219 490.394531 543.921875 L 529.074219 571.035156 C 532.535156 573.460938 537.230469 573.050781 540.210938 570.070312 L 577.082031 533.183594 C 580.097656 530.164062 580.480469 525.410156 577.984375 521.957031 L 550.480469 483.730469 C 558.464844 470.175781 564.453125 455.714844 568.359375 440.609375 L 614.8125 432.460938 C 618.976562 431.722656 622.011719 428.105469 622.011719 423.890625 L 622.011719 371.714844 C 622.011719 367.453125 618.921875 363.820312 614.714844 363.132812 Z M 404.621094 502.539062 C 347.085938 502.539062 300.277344 455.722656 300.277344 398.183594 C 300.277344 340.65625 347.085938 293.847656 404.621094 293.847656 C 462.160156 293.847656 508.96875 340.65625 508.96875 398.183594 C 508.96875 455.722656 462.160156 502.539062 404.621094 502.539062 Z M 404.621094 502.539062 "
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path27" />
+ </g>
+ <g
+ clip-path="url(#a7a24c818d)"
+ id="g33">
+ <path
+ fill="#ffd43b"
+ d="M 653.035156 479.28125 C 653.035156 576.996094 573.667969 656.363281 475.953125 656.363281 L 475.953125 731.886719 C 615.484375 731.886719 728.5625 618.8125 728.5625 479.28125 Z M 653.035156 479.28125 "
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path31" />
+ </g>
+ <g
+ clip-path="url(#9e94c67ce5)"
+ id="g37">
+ <path
+ fill="#306998"
+ d="M 156.125 479.28125 C 156.125 576.996094 235.492188 656.363281 333.207031 656.363281 L 333.207031 731.886719 C 193.675781 731.886719 80.601562 618.8125 80.601562 479.28125 Z M 156.125 479.28125 "
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path35" />
+ </g>
+ <g
+ clip-path="url(#f807adb387)"
+ id="g41">
+ <path
+ fill="#306998"
+ d="M 653.035156 334.023438 C 653.035156 236.308594 573.667969 156.945312 475.953125 156.945312 L 475.953125 81.417969 C 615.484375 81.417969 728.5625 194.492188 728.5625 334.023438 Z M 653.035156 334.023438 "
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path39" />
+ </g>
+ <g
+ clip-path="url(#a7b91dab09)"
+ id="g45">
+ <path
+ fill="#ffd43b"
+ d="M 156.125 334.023438 C 156.125 236.308594 235.492188 156.945312 333.207031 156.945312 L 333.207031 81.417969 C 193.675781 81.417969 80.601562 194.492188 80.601562 334.023438 Z M 156.125 334.023438 "
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path43" />
+ </g>
+</svg>
diff --git a/sources/shiboken6/doc/_templates/layout.html b/sources/shiboken6/doc/_templates/layout.html
index 630fb9533..8f16e1cdf 100644
--- a/sources/shiboken6/doc/_templates/layout.html
+++ b/sources/shiboken6/doc/_templates/layout.html
@@ -42,7 +42,7 @@
{%- block footer %}
<div class="footer">
- <a href="http://www.qt.io/"><img src="{{ pathto('_static/logo_qt.png', 1) }}" alt="Qt" border="0" /></a>
+ <a href="https://www.qt.io/"><img src="{{ pathto('_static/logo_qt.png', 1) }}" alt="Qt" border="0" /></a>
<a href="http://www.python.org"><img src="{{ pathto('_static/logo_python.jpg', 1) }}" alt="Python" border="0" /></a>
<p>{{ copyright }}</p>
</div>
diff --git a/sources/shiboken6/doc/_themes/pysidedocs/searchbox.html b/sources/shiboken6/doc/_themes/pysidedocs/searchbox.html
deleted file mode 100644
index 55a972156..000000000
--- a/sources/shiboken6/doc/_themes/pysidedocs/searchbox.html
+++ /dev/null
@@ -1,12 +0,0 @@
-{%- if pagename != "search" %}
-<div id="searchbox" style="display: none">
- <h3>{{ _('Quick search') }}</h3>
- <form class="search" action="{{ pathto('search') }}" method="get">
- <input type="text" name="q" id="q" size="18" />
- <input type="submit" value="{{ _('Go') }}" id="search_button" />
- <input type="hidden" name="check_keywords" value="yes" />
- <input type="hidden" name="area" value="default" />
- </form>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-{%- endif %}
diff --git a/sources/shiboken6/doc/_themes/pysidedocs/static/bg_header.png b/sources/shiboken6/doc/_themes/pysidedocs/static/bg_header.png
deleted file mode 100644
index 843e7e2c5..000000000
--- a/sources/shiboken6/doc/_themes/pysidedocs/static/bg_header.png
+++ /dev/null
Binary files differ
diff --git a/sources/shiboken6/doc/_themes/pysidedocs/static/bg_topo.jpg b/sources/shiboken6/doc/_themes/pysidedocs/static/bg_topo.jpg
deleted file mode 100644
index 4229ae8db..000000000
--- a/sources/shiboken6/doc/_themes/pysidedocs/static/bg_topo.jpg
+++ /dev/null
Binary files differ
diff --git a/sources/shiboken6/doc/_themes/pysidedocs/static/fakebar.png b/sources/shiboken6/doc/_themes/pysidedocs/static/fakebar.png
deleted file mode 100644
index b45830e00..000000000
--- a/sources/shiboken6/doc/_themes/pysidedocs/static/fakebar.png
+++ /dev/null
Binary files differ
diff --git a/sources/shiboken6/doc/_themes/pysidedocs/static/logo_python.jpg b/sources/shiboken6/doc/_themes/pysidedocs/static/logo_python.jpg
deleted file mode 100644
index cd474efba..000000000
--- a/sources/shiboken6/doc/_themes/pysidedocs/static/logo_python.jpg
+++ /dev/null
Binary files differ
diff --git a/sources/shiboken6/doc/_themes/pysidedocs/static/logo_qt.png b/sources/shiboken6/doc/_themes/pysidedocs/static/logo_qt.png
deleted file mode 100644
index 39a4a26f3..000000000
--- a/sources/shiboken6/doc/_themes/pysidedocs/static/logo_qt.png
+++ /dev/null
Binary files differ
diff --git a/sources/shiboken6/doc/_themes/pysidedocs/static/pyside.css b/sources/shiboken6/doc/_themes/pysidedocs/static/pyside.css
deleted file mode 100644
index 9082e5caa..000000000
--- a/sources/shiboken6/doc/_themes/pysidedocs/static/pyside.css
+++ /dev/null
@@ -1,2197 +0,0 @@
-@import url('cookie-confirm.css') screen;
-
-/* -- admonitions -- */
-
-div.admonition {
- margin: 1.5em 0 1.5em;
- padding: 0;
-}
-
-div.admonition dt {
- font-weight: bold;
-}
-
-div.admonition dl {
- margin-bottom: 0;
-}
-
-p.admonition-title {
- margin: 0px 10px 5px 0px;
- font-weight: bold;
-}
-
-div.admonition code {
- font-family: inherit;
-}
-
-p.admonition-title + p {
- padding-left: 1em;
-}
-
-div.admonition a:after {
- content: ', ';
-}
-
-div.admonition a:last-child:after {
- content: '';
-}
-
-.body {
- width: 100%;
- background-color: #00FF00;
- clear: both;
- display:inline-block;
- background-color:#fff;
- padding: 25px 35px 20px 30px;
- -webkit-box-sizing:border-box;
- -moz-box-sizing:border-box;
- -ms-box-sizing:border-box;
- box-sizing:border-box;
-}
-.bodywrapper {
- position: relative;
- /*background-color: #0000ff;*/
-}
-.bodywrapper .admonition p.admonition-title {
- margin-bottom:5px
-}
-
-.bodywrapper .admonition p {
- margin:0
-}
-
-div.body p.centered {
- text-align: center;
- margin-top: 25px;
-}
-
-div.warning, div.seealso, div.note, div.important {
- padding: 6px 0px 6px 10px;
- border: none;
-}
-
-div.warning {
- background-color: #ffe4e4;
-}
-
-div.important {
- background-color: #fef9f3;
- border-left: 5px solid #feeec8;
-}
-
-div.seealso {
- background-color: #fff2d6;
-}
-
-div.note {
- background-color: #c5d3f4;
- border-left: 5px solid #7899f4;
-}
-
-table.docutils {
- margin-right: auto;
- margin-bottom: 10px;
- border: none;
- width: initial;
-}
-
-table.docutils.colwidths-given td {
- float: none;
-}
-
-table.docutils th,
-table.docutils td {
- padding-left:0;
- border: none;
-}
-
-table.docutils td ul {
- margin:0
-}
-
-table.docutils td ul > li {
- margin: 0 0 0.5em;
-}
-h2 em {
- float: right;
- font-size: 10px;
- position: relative;
- top: -20px;
-}
-
-.document {
- padding-bottom: 20px;
-}
-
-.documentwrapper {
- margin-left: 255px;
- position: relative;
-}
-@media screen and (max-width: 700px) {
- .documentwrapper {
- clear: both;
- margin-left: 0px;
- position: relative;
- }
-}
-
-.body blockquote {
- border: none;
- padding-left: 0;
- margin-bottom: 1.5em;
-}
-
-.sphinxsidebar {
- float: left;
- width: 186px;
- padding: 15px;
- text-align: left;
- background-color: #fff;
- clear: both;
-}
-
-.sphinxsidebar ul {
- padding: 0px;
- margin: 0px;
- list-style-position: inside;
-}
-
-.sphinxsidebar > ul {
- padding: 0px;
- margin: 0px;
-}
-
-.sphinxsidebar ul li li {
- margin-left: 10px;
- padding: 0px;
- font-size: 0.95em;
-}
-
-.sphinxsidebar ul a,
-.sphinxsidebar p.topless a {
- word-break: break-word;
-}
-
-.sphinxsidebar h3, .sphinxsidebar h3 a {
- color: #333;
-}
-
-.sphinxsidebar p.topless {
- margin: 1em 0 1em;
-}
-
-.pysidetoc ul {
- list-style: none;
- padding: 0px;
- margin: 0px;
-}
-
-.pysidetoc em {
- font-style: normal;
-}
-
-.pysidetoc strong {
- display: block;
- padding: 5px;
- margin: 0 10px 10px 0;
- border: none;
- background-color: #e2e2e2;
-}
-
-.section .docutils.container td {
- float:left;
-}
-
-.hide {
- display: none;
-}
-
-/* copy-notice */
-.document + p {
- margin-left: 255px;
- width: 70%;
- font-size: 0.75em;
- margin: 0 35px 15px 280px;
-}
-
-#searchbox {
- border-top: 1px solid #989898;
- padding-top: 10px;
- margin-left: -10px;
- margin-right: -10px;
- padding-left: 10px;
- padding-right: 10px;
-}
-
-#search_button {
- border: 1px solid #3A393A;
- background-color: #3A393A;
- color: white;
- cursor: pointer;
- -moz-border-radius: 5px;
- -webkit-border-radius: 5px;
- -khtml-border-radius: 5px;
-
-}
-
-form {
- margin: 0px;
- padding: 0px;
-}
-
-#searchbox h3 {
- padding: 10px 0 0 0;
- margin-bottom: 5px;
-}
-
-/* search field */
-form #q {
- width: 136px;
- /* height: 22px; */
- /* border: none; */
- margin: 0px;
- -moz-border-radius: 5px;
- -webkit-border-radius: 5px;
- -khtml-border-radius: 5px;
- margin-top: 2px;
- padding: 4px;
- line-height: 22px;
-}
-
-#search-results h2 {
- display: none;
-}
-
-#search-results h2 {
- display: none;
-}
-
-#search-results ul.search {
- margin: 0px;
- padding: 0px;
-}
-
-ul.search div.context {
- padding-left: 40px;
-}
-
-#installation td {
- text-align: center;
- font-weight: bold;
-}
-
-em {
- color: inherit;
- font-style:italic;
-}
-
-/******** REL bar *********/
-
-.related {
- display: inline;
-}
-
-.related h3 {
- display: none;
-}
-
-.align-center {
- text-align: center;
-}
-
-.contentstable {
- width: 100%;
-}
-
-.contentstable td {
- padding-left: 30px;
- vertical-align: top;
-}
-
-p.biglink a {
- font-size: 20px;
-}
-
-dt:target, .highlight {
- background-color: #fbe54e;
-}
-
-p.highlight-link {
- margin-top: 10px;
- font-size: 0.8em;
-}
-
-#synopsis table, table.field-list {
- margin: 1em 0 1em 0;
-}
-
-table.field-list tr {
- text-align: left;
-}
-
-tt.descname {
- font-size: 120%;
- font-weight: bold;
-}
-
-#functions ul, #virtual-functions ul, #slots ul, #signals ul, #static-functions ul {
- margin: 0;
- padding: 6px;
- border: 1px solid #ddd;
- border-radius: 0;
- background-color: #e2e2e2;
-}
-
-#functions p, #virtual-functions p, #slots p, #signals p, #static-functions p {
- margin: 0;
- padding: 0;
-}
-
-#functions li, #virtual-functions li, #slots li, #signals li, #static-functions li {
- list-style: none;
- margin: 5px;
- padding: 0;
- font-size: 90%;
-}
-
-#synopsis span.pre {
- color: #009491;
- font-weight: bolder;
-}
-
-#detailed-description .class dt,
-#detailed-description .method dt,
-#detailed-description .staticmethod dt,
-#detailed-description .attribute dt {
- margin: 0px;
- margin-bottom: 10px;
- padding: 10px;
- font-weight: bold;
- background-color: #e2e2e2;
- border: none;
- border-radius: 0;
-}
-
-#detailed-description dd > blockquote,
-#detailed-description dd > .field-list {
- font-family: 'Droid Sans Mono', monospace;
- font-size: small;
- border-left: 10px solid #e2e2e2;
- padding-left: 10px;
- margin-bottom: 1.5em;
-}
-
-#detailed-description dd > blockquote blockquote {
- border: none;
- padding: 0;
-}
-
-#detailed-description .class .field-odd,
-#detailed-description .method .field-odd,
-#detailed-description .staticmethod .field-odd,
-#detailed-description .attribute .field-odd {
- margin: 0;
- padding: 1px 0 0 0;
- background-color: #ffffff;
-
-}
-
-#detailed-description .class .field-even,
-#detailed-description .method .field-even,
-#detailed-description .staticmethod .field-even,
-#detailed-description .attribute .field-even {
- margin: 0;
- padding: 1px 0 0 0;
- background-color: #ffffff;
-}
-
-#detailed-description .class .field-odd li,
-#detailed-description .method .field-odd li,
-#detailed-description .staticmethod .field-odd li,
-#detailed-description .attribute .field-odd li {
- list-style: none;
- margin: 0;
- padding: 0;
-
-}
-
-#detailed-description .class .field-even li,
-#detailed-description .method .field-even li,
-#detailed-description .staticmethod .field-even li,
-#detailed-description .attribute .field-even li {
- list-style: none;
- margin: 0;
- padding: 0;
-}
-
-#detailed-description .class .field-odd p,
-#detailed-description .method .field-odd p,
-#detailed-description .staticmethod .field-odd p,
-#detailed-description .attribute .field-odd p{
- margin: 0;
- margin-left: 20px;
-
-}
-
-#detailed-description .class .field-even p,
-#detailed-description .method .field-even p,
-#detailed-description .staticmethod .field-even p,
-#detailed-description .attribute .field-even p{
- margin: 0;
- margin-left: 20px;
-}
-
-#detailed-description .class .field-odd p:last-child,
-#detailed-description .method .field-odd p:last-child,
-#detailed-description .staticmethod .field-odd p:last-child,
-#detailed-description .attribute .field-odd p:last-child {
- margin-bottom: 10px;
-
-}
-
-#detailed-description .class .field-even p:last-child,
-#detailed-description .method .field-even p:last-child,
-#detailed-description .staticmethod .field-even p:last-child,
-#detailed-description .attribute .field-even p:last-child{
- margin-bottom: 10px;
-}
-
-.document dl.attribute,
-.document dl.class,
-.document dl.method,
-.document dl.staticmethod {
- margin-top: 2em;
-}
-
-.document dl.attribute dd,
-.document dl.class dd,
-.document dl.method dd,
-.document dl.staticmethod dd {
- padding-left: 1em;
-}
-
-#detailed-description .attribute td:nth-child(1) {
- font-family: 'Droid Sans Mono', monospace;
-}
-
-/* Qt theme */
-#navbar {
- position:fixed;
- top:0;
- left:0;
- z-index:100;
- background:#fff;
- width:100%
-}
-#navbar .container, .fixed .container {
- max-width:1280px;
- margin:0 auto;
- padding:0 3.9%; /* 0? */
- position:relative;
- overflow:visible
-}
-#navbar .navbar-header {
- position:relative
-}
-#menuextras li a:hover span {
- color: #41cd52;
-}
-/* new header */
-#mm-wrap, #mm-wrap #mm-helper,
-#mm-wrap #mm-helper li.mm-item,
-#mm-wrap #mm-helper a.mm-link {
- -moz-transition: none;
- -o-transition: none;
- -webkit-transition: none;
- transition: none;
- -webkit-border-radius: 0 0 0 0;
- -moz-border-radius: 0 0 0 0;
- -ms-border-radius: 0 0 0 0;
- -o-border-radius: 0 0 0 0;
- border-radius: 0 0 0 0;
- -webkit-box-shadow: none;
- -moz-box-shadow: none;
- -ms-box-shadow: none;
- -o-box-shadow: none;
- box-shadow: none;
- background: none;
- border: 0;
- bottom: auto;
- box-sizing: border-box;
- clip: auto;
- color: #090e21;
- display: block;
- float: none;
- font-family: inherit;
- font-size: 14px;
- height: auto;
- left: auto;
- line-height: 1.7;
- list-style-type: none;
- margin: 0;
- min-height: 0;
- opacity: 1;
- outline: none;
- overflow: visible;
- padding: 0;
- position: relative;
- right: auto;
- text-align: left;
- text-decoration: none;
- text-transform: none;
- top: auto;
- vertical-align: baseline;
- visibility: inherit;
- width: auto;
-}
-#mm-wrap #mm-helper {
- visibility:visible;
- text-align:right;
- padding:0 0px 0 0px
-}
-#navbar #mm-wrap #mm-helper li.mm-item {
- border-right:solid #f3f3f4 1px;
- padding-right:30px;
- padding-left:30px
-}
-#navbar #mm-wrap #mm-helper li.mm-item > a:hover {
- opacity: .5
-}
-#mm-wrap #mm-helper > li.mm-item {
- margin:0 0 0 0;
- display:inline-block;
- height:auto;
- vertical-align:middle
-}
-#navbar #mm-wrap #mm-helper li.mm-item:nth-child(3) {
- border-right:0
-}
-#mm-wrap #mm-helper a.mm-link {
- cursor: pointer
-}
-@media (max-width: 1279px) {
- #navbar {
- padding:0;
- position:relative;
- }
- #navbar .container {
- max-width:100%
- }
- .container {
- padding:0 2%
- }
- .sphinxsidebar {
- top: 16px !important;
- }
-}
-#navbar .navbar-oneQt {
- display:inline;
- float:left;
- width:31px;
- color:#41cd52
-}
-#navbar .navbar-oneQt:before {
- content:attr(data-icon);
- position:absolute;
- top:14px;
- left:0;
- color:#41cd52;
- font-family:'Qt Icons';
- line-height:1;
- font-size:40px;
- transition:all 0.3s ease-in-out;
-}
-#mm-wrap {
- clear:both;
- background:rgba(255, 255, 255, 0.1);
- -webkit-border-radius:0px 0px 0px 0px;
- -moz-border-radius:0px 0px 0px 0px;
- -ms-border-radius:0px 0px 0px 0px;
- -o-border-radius:0px 0px 0px 0px;
- border-radius:0px 0px 0px 0px
-}
-#mm-wrap #mm-helper li.mm-item:last-child a {
- background:transparent url("icon_avatar.png") 50% 50% no-repeat !important;
- background-size:24px !important;
- width:24px !important;
- height:24px !important;
-}
-#navbar #mm-wrap #mm-helper li.mm-item > a {
- opacity:1;
- -webkit-transition:all 0.3s ease-in-out;
- -moz-transition:all 0.3s ease-in-out;
- -ms-transition:all 0.3s ease-in-out;
- -o-transition:all 0.3s ease-in-out;
- transition:all 0.3s ease-in-out;
-}
-#mm-wrap #mm-helper > li.mm-item > a.mm-link {
- border-top:0px solid #fff;
- border-left:0px solid #fff;
- border-right:0px solid #fff;
- border-bottom:0px solid #fff;
- outline:none;
- text-decoration:none;
- padding:0 0 0 0;
- line-height:70px;
- font-weight:normal;
- height:70px;
- vertical-align:baseline;
- text-align:left;
- width:auto;
- display:block;
- color:#090e21;
- text-transform:none;
- text-decoration:none;
- background:rgba(0, 0, 0, 0);
- -webkit-border-radius:0px 0px 0px 0px;
- -moz-border-radius:0px 0px 0px 0px;
- -ms-border-radius:0px 0px 0px 0px;
- -o-border-radius:0px 0px 0px 0px;
- border-radius:0px 0px 0px 0px;
- font-family:inherit;
- font-size:14px;
-}
-/* end new header */
-@media (min-width: 1320px) {
- .body .flowListDiv dl.flowList {
- -webkit-column-count:3;
- -moz-column-count:3;
- column-count:3
- }
-}
-@media (min-width: 1120px) {
- #navbar.fixed {
- -moz-box-shadow:0px 0px 8px rgba(0,0,0,0.23);
- -webkit-box-shadow:0px 0px 8px rgba(0,0,0,0.23);
- box-shadow:0px 0px 8px rgba(0,0,0,0.23)
- }
- #navbar.fixed #mm-wrap #mm-helper > li.mm-item > a.mm-link {
- height:50px;
- line-height:50px
- }
- #navbar.fixed .navbar-oneQt:before {
- font-size:35px;
- top:7px
- }
-
- .flowListDiv dl.flowList {
- -webkit-column-count:2;
- -moz-column-count:2;
- column-count:2
- }
-}
-@media (max-width: 1120px) {
- #navbar {
- padding:0;
- position:relative
- }
- #navbar .navbar-oneQt:before {
- left:10px
- }
- #navbar .container {
- max-width:100%;
- padding:0
- }
- #footerbar .container {
- padding:0
- }
- body .main {
- margin-top:0px
- }
- #footerbar .footer-main .footer-nav {
- padding:3.9% 0 3.9% 3%;
- border-bottom:1px solid #413d3b;
- float:none;
- display:block;
- width:auto
- }
- #footerbar .footer-main .theqtcompany {
- clear:both;
- float:left;
- margin:30px 0 8px 3%
- }
- #footerbar .footer-main .footer-social {
- float:left;
- padding:50px 0px 0px 3%
- }
- #footerbar #menu-footer-submenu {
- clear:both;
- float:none;
- display:block;
- padding:0px 0px 3.9% 3%
- }
- ul#menu-footer-submenu {
- margin-left: 0
- }
-}
-.cookies_yum {
- background-color:#cecfd5;
- display:none;
- width:100%
-}
-.cookies_yum img {
- width:25px;
- top:6px;
- display:inline-block;
- position:absolute;
- left:13px
-}
-.cookies_yum div {
- margin:0 auto;
- max-width:1280px;
- min-height:30px;
- padding:6px 0px 6px 0px;
- position:relative
-}
-.cookies_yum p {
- color:#09102b;
- margin:0px;
- font-size:0.79em;
- display:inline-block;
- line-height:1.2;
- padding:0 30px 0 50px
-}
-.cookies_yum p a {
- white-space:nowrap
-}
-.cookies_yum a:hover {
- color:#46a2da
-}
-.cookies_yum .close {
- width:15px;
- height:15px;
- background-image:url("cookiebar-x.png");
- background-size:15px 30px;
- background-position:top left;
- cursor:pointer;
- top:13px;
- right:13px;
- position:absolute;
- transition:none
-}
-.cookies_yum .close:hover {
- background-position:bottom left
-}
-#sidebar-toggle,#toc-toggle {
- width:24px;
- height:14px;
- background-size:24px 28px;
- cursor:pointer;
- background-image:url("list_expand.png");
- float:right
-}
-#sidebar-toggle.collapsed,
-#toc-toggle.collapsed {
- background-position:bottom left
-}
-#sidebar-content > h2 {
- display:none
-}
-#footerbar {
- background:#222840;
- color:#fff;
- font-size: 0.9em;
-}
-#footerbar.fixed {
- bottom:0;
- left:0;
- width:100%
-}
-#footerbar .footer-nav {
- display:inline;
- float:left
-}
-#footerbar .footer-main .footer-nav li {
- float:left;
- margin-right:1em
-}
-#footerbar .footer-main .footer-nav li a {
- display:block;
- padding:30px 0 10px 0;
- line-height:20px;
- height:20px;
- color:#fff;
- font-weight: 600;
-}
-#footerbar .footer-main .footer-nav li a:hover,#footerbar .footer-main .footer-nav li.current-menu-item a {
- color:#eee
-}
-#footerbar .footer-main .footer-nav .sub-menu {
- margin-left:0;
- margin-bottom:0
-}
-#footerbar .footer-main .footer-nav .sub-menu li {
- float:none;
- width: 100%;
-}
-#footerbar .footer-main .footer-nav .sub-menu ul {
- padding:1px 1em;
- font-size:0.786em;
- line-height:8px;
- float:none;
- color:#5d5b59;
- margin-bottom:0
-}
-#footerbar .footer-main .footer-nav .sub-menu li a {
- padding:2px 0;
- font-size:1em;
- float:none;
- color:#cecfd5;
- font-weight: 400;
-}
-#footerbar .footer-main .footer-nav .sub-menu li a:hover,#footerbar .footer-main .footer-nav .sub-menu li.current-menu-item a {
- color:#eee
-}
-#footerbar .theqtcompany {
- background:url("theqtcompany.png") no-repeat;
- background-size:100%;
- width:215px;
- height:68px;
- display:inline;
- float:right;
- margin:29px 0 28px 30px
-}
-#footerbar .footer-social {
- display:inline;
- float:right;
- width:164px
-}
-#footerbar .footer-main .footer-social>div {
- margin-left:0.1em;
- margin-bottom:10px
-}
-#footerbar .disclaimer {
- font-size:0.786em;
- line-height:2.73;
- color:#868584;
- padding-top:20px;
- padding-bottom:0.5%
-}
-#footerbar .disclaimer a {
- color:#bdbebf
-}
-#footerbar .disclaimer a:hover {
- color:#d6d6d6
-}
-#footerbar .disclaimer ul li {
- float:left;
- vertical-align:middle;
- margin-left:1.18em
-}
-#footerbar .disclaimer ul li:first-child {
- margin-left:0
-}
-#footerbar .disclaimer ul.lang-selector a {
- color:#506a34;
- color:rgba(128,195,66,0.3)
-}
-#footerbar .disclaimer ul.lang-selector a:hover {
- color:#80c342;
- color:rgba(128,195,66,0.7)
-}
-#menu-footer-menu, #menu-footer-menu ul {
- margin-left:0;
- margin-bottom:0
-}
-@font-face {
- font-family: 'Titillium Web';
- font-style: normal;
- font-weight: 400;
- src: url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-regular.eot");
- /* IE9 Compat Modes */
- src: local("Titillium Web"), local("TitilliumWeb-Regular"), url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-regular.eot?#iefix") format("embedded-opentype"), url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-regular.woff2") format("woff2"), url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-regular.woff") format("woff"), url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-regular.ttf") format("truetype"), url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-regular.svg#TitilliumWeb") format("svg");
- /* Legacy iOS */
-}
-/* titillium-web-italic - latin_latin-ext */
-@font-face {
- font-family: 'Titillium Web';
- font-style: italic;
- font-weight: 400;
- src: url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-italic.eot");
- /* IE9 Compat Modes */
- src: local("Titillium WebItalic"), local("TitilliumWeb-Italic"), url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-italic.eot?#iefix") format("embedded-opentype"), url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-italic.woff2") format("woff2"), url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-italic.woff") format("woff"), url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-italic.ttf") format("truetype"), url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-italic.svg#TitilliumWeb") format("svg");
- /* Legacy iOS */
-}
-/* titillium-web-600 - latin_latin-ext */
-@font-face {
- font-family: 'Titillium Web';
- font-style: normal;
- font-weight: 600;
- src: url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-600.eot");
- /* IE9 Compat Modes */
- src: local("Titillium WebSemiBold"), local("TitilliumWeb-SemiBold"), url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-600.eot?#iefix") format("embedded-opentype"), url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-600.woff2") format("woff2"), url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-600.woff") format("woff"), url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-600.ttf") format("truetype"), url("//d33sqmjvzgs8hq.cloudfront.net/wp-content/themes/oneqt/assets/fonts/titillium-web-v4-latin_latin-ext-600.svg#TitilliumWeb") format("svg");
- /* Legacy iOS */
-}
-@font-face {
- font-family: 'Droid Sans Mono', monospace;
- font-style:normal;
- font-weight:400;
- src:local("Droid Sans Mono"),local("DroidSansMono"),url(//fonts.gstatic.com/s/droidsansmono/v7/ns-m2xQYezAtqh7ai59hJUYuTAAIFFn5GTWtryCmBQ4.woff) format("woff")
-}
-@font-face {
- font-family:'Qt Icons';
- src:url("../style/icomoon.eot?-tgjuoj");
- src:url("../style/icomoon.eot?#iefix-tgjuoj") format("embedded-opentype"),url("../style/icomoon.woff?-tgjuoj") format("woff"),url("../style/icomoon.ttf?-tgjuoj") format("truetype"),url("../style/icomoon.svg?-tgjuoj#icomoon") format("svg");
- font-weight:normal;
- font-style:normal
-}
-@font-face {
- font-family:'social-icons';
- src:url("../style/social-icons.eot?54625607");
- src:url("../style/social-icons.eot?54625607#iefix") format("embedded-opentype"),
- url("../style/social-icons.woff?54625607") format("woff");
- font-weight:normal;
- font-style:normal
-}
-.clearfix:before,.clearfix:after {
- content:" ";
- display:table
-}
-.clearfix:after {
- clear:both
-}
-.clearfix {
- *zoom:1
-}
-.clearfix .right {
- float:right
-}
-html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video {
- margin:0;
- padding:0;
- border:0;
- font-size:100%
- line-height: 1.4;
-}
-html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,caption,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video {
- vertical-align:baseline
-}
-h1,h2,h3,h4,h5,h6 {
- font-weight:300
-}
-.body h2,.body h3,.body h4,.body h5,.body h6 {
- margin:1.5em 0 0.75em
-}
-.body h1 {
- margin-bottom:0.75em;
- font-size:2.25em;
-}
-.body h3.fn,.body h3.flags {
- color:#26282a;
- font-size:1.46em;
- padding:15px 0 15px 0;
- border-bottom:2px #eee solid;
- word-wrap:break-word
-}
-.body .fngroup {
- border-bottom:2px #eee solid;
- padding-bottom:15px;
- margin-bottom:1.5em
-}
-.body .fngroup h3.fngroupitem {
- margin:0;
- padding-bottom:0;
- border:none
-}
-.body h3.fn .name,
-.body h3 span.type,
-.qmlname span.name {
- font-weight: 400
-}
-.qmlname {
- font-size:1.46em
-}
-.qmlproto table {
- border:none;
- border-bottom:2px #eee solid
-}
-.qmlproto table p {
- max-width:100%
-}
-.qmlproto table tr {
- background-color:#fff
-}
-.qmlname td, .qmlname th {
- border:none;
- text-align:left;
- padding:5px 0 0 0
-}
-.qmlreadonly,.qmldefault {
- padding:0 5px 0 5px;
- font-size:0.75em;
- background-color:#eee;
- float:right
-}
-.qmlreadonly {
- color:#414141
-}
-.qmldefault {
- color:#D14141
-}
-.rightAlign {
- padding:3px 5px 3px 10px;
- text-align:right
-}
-.centerAlign.functionIndex {
- text-align:center;
- font-size:150%;
- margin-bottom: 1em
-}
-article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section {
- display:block
-}
-body {
- line-height:1;
- font-family:'Titillium Web', Arial, Helvetica, sans-serif;
- font-weight:400;
- transition-duration:1s;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
- font-size: 16px;
- background-color:#f3f3f4;
- color:#404244;
-}
-ol,ul {
- list-style-type: square;
- color: #17a81a;
-}
-.body ol,.body ul {
- margin-top:0.75em;
- margin-left:20px
-}
-.bodywrapper ol>li {
- list-style-type:decimal;
- margin-left:15px
-}
-.bodywrapper ol.a >li {
- list-style-type:lower-alpha;
-}
-.bodywrapper ol.A >li {
- list-style-type:upper-alpha;
-}
-.bodywrapper ol.i >li {
- list-style-type:lower-roman;
-}
-.bodywrapper ol.I >li {
- list-style-type:upper-roman;
-}
-.body li p {
- margin-top:1em
-}
-blockquote,q {
- quotes:none;
- border-left:10px solid #ddd;
- padding-left:10px
-}
-blockquote:before,blockquote:after,q:before,q:after {
- content:'';
- content:none;
- width:100%
-}
-table {
- border-collapse:collapse;
- border-spacing:0;
- margin-bottom:5px;
- width:100%
-}
-a {
- color:#17a81a;
- text-decoration:none;
- transition-duration:0.3s
-}
-a:hover {
- color:#17a81a
-}
-.main,#footerbar>div {
- max-width:1280px;
- width:95%;
- margin:0 auto
-}
-.main {
- margin-top:80px
-}
-@media (max-width: 1120px) {
- .main,.navbar-header,#footerbar>div {
- width: 100%;
- margin: 0;
- }
- .main .main-rounded {
- padding: 0 15px;
- }
-}
-.main_index {
- background-color:#fff
-}
-.sectionlist {
- margin-bottom:2em
-}
-[class*="col-"] {
- letter-spacing:normal
-}
-.landing,.main_index .row {
- letter-spacing:-0.31em
-}
-.main_index .row>div {
- letter-spacing:normal
-}
-.col-1 {
- clear: both;
- display:inline-block;
- background-color:#fff;
- padding: 25px 35px 20px 30px;
- -webkit-box-sizing:border-box;
- -moz-box-sizing:border-box;
- -ms-box-sizing:border-box;
- box-sizing:border-box;
-}
-.col-1 h2 {
- font-size:1.8em;
- font-weight:300;
- line-height:1.1;
- margin-bottom:0.83em;
- margin-top:1em
-}
-.icons1of3 img {
- display:inline-block;
- float:left;
- margin-right:0.75em;
- margin-top:-5px;
- width:2.75em
-}
-div.multi-column {
- position:relative
-}
-div.multi-column div {
- display:-moz-inline-box;
- display:inline-block;
- vertical-align:top;
- margin-top:1em;
- margin-right:2em;
- width:16em
-}
-.sidebar {
- display:block;
- position:relative;
- position:sticky;
- float:left;
- -webkit-box-sizing:border-box;
- -moz-box-sizing:border-box;
- -ms-box-sizing:border-box;
- box-sizing:border-box;
- width:20%;
- padding-right:20px
-}
-.sidebar li {
- text-overflow:ellipsis;
- overflow:hidden
-}
-.toc,.sectionlist {
- padding:25px;
- background-color:#fff;
- margin-bottom:1.25em
-}
-.sidebar .sectionlist p {
- margin-bottom:0
-}
-.sectionlist.promo {
- padding:0;
- background-color:#f3f3f4
-}
-.sidebar-content:empty {
- display:none;
- visibility:hidden
-}
-.col-2 h2,.toc h3,.sidebar-content h2,
-.sidebar-content h3,.sectionlist h2,
-.sphinxsidebar {
- position: -webkit-sticky;
- position: sticky;
- top: 0px;
- width: 200px;
- overflow: scroll;
- overflow-x: hidden;
- overflow-y: hidden;
-}
-.sphinxsidebar h3 {
- font-weight: bold;
- margin-bottom:1em;
-}
-
-/* On screens that are less than 700px wide, make the sidebar into a topbar */
-@media screen and (max-width: 700px) {
- .sphinxsidebar {
- top: 64px;
- /*overflow-x: hidden;
- overflow-y: hidden;*/
- width: 100%;
- height: auto;
- position: relative;
- }
- /*.sidebar a {float: left;}*/
- div.content {margin-left: 0;}
-}
-
-/* On screens that are less than 400px, display the bar vertically, instead of horizontally
-@media screen and (max-width: 400px) {
- .sphinxsidebar a {
- text-align: center;
- float: none;
- }
-}
-*/
-
-.toc h3 a {
- color:#404244
-}
-.title {
- font-size:2.25em;
- font-weight:300;
- letter-spacing:-1px;
- line-height:1.15em;
- margin-bottom:0.5em;
- word-wrap:break-word
-}
-.navigationbar,col-1 h2 {
- font-size:0.85em
-}
-.navigationbar h1 {
- font-size:2.5em;
- margin-bottom:0.85em;
- margin-top:0.85em
-}
-.navigationbar li {
- display:inline-block;
- margin-right:5px;
- position:relative;
- padding-right:10px;
- color:#585a5c
-}
-.navigationbar ul:last-of-type li a {
- color:#404244
-}
-.sectionlist li, .sphinxsidebar li {
- padding-bottom: 10px;
- line-height: 1.75em;
-}
-.col-1 ul {
- margin-bottom:1.56em
-}
-.bodywrapper li {
- margin-top:0.5em;
- line-height:1.25em
-}
-.bodywrapper li.level2 {
- margin-left:10px;
- margin-top:0.4em;
- font-size:0.9375em;
-}
-.bodywrapper p,
-.bodywrapper dd {
- line-height:1.25em;
- margin:1em 0 1em;
- color:#404244
-}
-.bodywrapper b {
- font-weight:600
-}
-.body ul,.body ol {
- /* margin-bottom:1.5em */
-}
-.bodywrapper ul ul {
- margin-top:0.5em
-}
-.bodywrapper .naviNextPrevious {
- margin-top:25px;
- max-width:100%;
- position: relative;
-}
-.naviNextPrevious.headerNavi,
-p.naviNextPrevious + p {
- display:none
-}
-.nextPage {
- float:right
-}
-.prevPage:before {
- content:"< "
-}
-.nextPage:after {
- content:" >"
-}
-.navigationbar li a {
- color:#404244
-}
-.navigationbar li:after {
- color:#404244;
- content:"›";
- display:inline-block;
- font-size:1.5em;
- line-height:1;
- position:absolute;
- right:-2px;
- top:-4px
-}
-.sub-navigation {
- margin-top:10px
-}
-.navigationbar li:last-child:after,.sub-navigation li:after {
- content:none
-}
-.navigationbar {
- margin-bottom:10px;
- line-height:1em
-}
-#buildversion {
- margin-bottom:10px;
- font-style:italic;
- font-size:small;
- float:right
-}
-.copy-notice {
- width:75%;
- font-size:0.75em;
- margin:20px 35px 0 10px;
- line-height:1.75em;
- float:right;
- color:#585a5c
-}
-.copy-notice.index {
- margin-top:10px;
- float:none
-}
-li a.active {
- color:#585a5c
-}
-.flowList {
- padding:25px
-}
-.flowListDiv dl {
- -webkit-column-count:1;
- -moz-column-count:1;
- column-count:1
-}
-.flowList dd {
- display:inline-block;
- margin-left:10px;
- width:90%;
- line-height:1.15em;
- overflow-x:hidden;
- text-overflow:ellipsis
-}
-.alphaChar {
- font-size:2em;
- position:absolute
-}
-.flowList.odd {
- background-color:#f9f9f9
-}
-.body ul>li,.doc-column ul>li {
- list-style-image:url("list_arrow.png");
- margin-left:15px;
- color:#404244;
- margin-top:0.65em;
- line-height:1em
-}
-.bodywrapper table p {
- margin:0px;
- padding:0px
-}
-.bodywrapper table p {
- margin:0px;
- padding:0px;
- min-height:1.25em
-}
-.bodywrapper .qmldoc {
- margin-top:0.75em;
-}
-.body h2 {
- margin-top: 1.5em;
- font-size:1.75em
-}
-.body h3 {
- font-size:1.35em
-}
-.body h4 {
- font-size:1.15em
-}
-.body p img {
- margin-top:0.75em;
- max-width:100%
-}
-.body .border img {
- box-shadow:3px 3px 8px 3px rgba(200,200,200,0.5)
-}
-.body .border .player {
- box-shadow:3px 3px 8px 3px rgba(200,200,200,0.5)
-}
-.body p.figCaption {
- transform:translateY(-30px);
- color:#606366;
- font-size:95%;
- margin-left:3px;
- font-style:italic
-}
-.body table {
- width:initial;
- vertical-align:initial
-}
-table .odd {
- background-color:#f9f9f9
-}
-table thead {
- text-align:left;
- padding-left:20px
-}
-table,table td,table th {
- border:1px solid #eee
-}
-table td,table th {
- padding:5px 20px;
- line-height:1.3
-}
-.body .fixed table td {
- min-width:50%;
- width:50%
-}
-table.alignedsummary,table.propsummary {
- width:initial
-}
-table.valuelist td.tblval {
- font-size:0.75em
-}
-div.main_index .row {
- border-bottom:10px solid #f3f3f4
-}
-div.main_index .row {
- position:relative
-}
-div.main_index .row>div {
- display:inline-block;
- width:50%;
- vertical-align:top;
- padding:2em 3em;
- -webkit-box-sizing:border-box;
- -moz-box-sizing:border-box;
- -ms-box-sizing:border-box;
- box-sizing:border-box
-}
-div.main_index h2 {
- font-size:2.1875em;
- margin-bottom:1em
-}
-#search_bar {
- width:40%;
- float:right
-}
-div.main_index .row:after {
- content:"";
- position:absolute;
- top:0;
- right:50%;
- height:100%;
- width:10px;
- background-color:#f3f3f4
-}
-div.table {
- overflow-x:auto
-}
-.body tr > td > pre {
- font-size:0.75em
-}
-p.qt_commercial {
- border:3px solid #5caa15;
- margin:0 auto;
- padding:15px;
- width:28%;
- text-align:center;
- clear:both
-}
-h1.qt_commercial {
- padding:20px;
- background-color:#5caa15;
- display:inline;
- float:right;
- font-size:1.25em;
- line-height:1.25em;
- height:1.25em;
- color:#fff
-}
-div.qt_commercial {
- border-top:5px solid #5caa15;
- margin-bottom:50px
-}
-div.pre {
- position:relative;
- height:auto
-}
-pre, .LegaleseLeft {
- background-color:#222840;
- color:#fff;
- display:block;
- font-family: 'Droid Sans Mono', monospace;
- line-height:1.5;
- overflow-x:auto;
- margin-bottom:25px;
- padding:25px;
- margin-top:0.75em;
- font-size: .8em;
-}
-.bodywrapper .LegaleseLeft p {
- color:#fff;
- white-space: pre-wrap;
-}
-pre .str,code .str {
- color:#aaaaaa
-}
-pre .kwd,code .kwd {
- color:#ffff55
-}
-pre .com,code .com {
- color:#55ffff
-}
-pre .typ,code .typ {
- color:#4f9d08
-}
-pre a .typ,code a .typ {
- color:#21be2b
-}
-pre .lit,code .lit {
- color:#ff55ff
-}
-pre .pun,code .pun {
- color:#fff
-}
-pre .pln,code .pln {
- color:#fff
-}
-@media print {
- pre {
- background-color:#eee !important
- }
- pre .str,code .str {
- color:#060
- }
- pre .kwd,code .kwd{
- color:#006;
- font-weight:bold
- }
- pre .com,code .com {
- color:#600
- }
- pre .typ,code .typ {
- color:#404;
- font-weight:bold
- }
- pre .lit,code .lit {
- color:#044
- }
- pre .pun,code .pun {
- color:#440
- }
- pre .pln,code .pln {
- color:#000
- }
-}
-pre.wrap {
- white-space:pre-wrap
-}
-pre span.wrap {
- display:none;
- background:url("wrap.png") no-repeat;
- right:0;
- top:2px;
- position:absolute;
- width:20px;
- height:14px;
- margin:4px;
- opacity:0.65
-}
-
-span.pre {
- color: black;
- font-family: monospace;
- font-weight: normal;
- background-color: #eaeaea;
- padding: 2px 4px;
- color: black;
- border-radius: 2px;
-}
-
-span.wrap:hover {
- opacity:1
-}
-span.wrap:active {
- opacity:0.75
-}
-.copy_text {
- background-color:#46a2da;
- color:#fff;
- border:2px solid #46a2da;
- padding:10px 16px;
- margin-left:-10px;
- margin-top:-50px;
- position:absolute;
- opacity:0;
- cursor:pointer;
- float:right
-}
-.copy_text:hover {
- background-color:#fff;
- color:#46a2da
-}
-code,.codelike {
- font-family: 'Droid Sans Mono', monospace;
-}
-#detailed-description .function dt > code,
-#detailed-description .function dt > em {
- font-weight:bold
-}
-h3.fn code {
- font-size:0.75em;
- float:right;
- background-color:#eee;
- padding:3px;
- margin: 3px 0 0 20px
-}
-pre:hover>.copy_text {
- display:inline-block;
- opacity:1;
- transition:0.5s ease
-}
-#main_title_bar {
- background:url("pyside-logo.png") no-repeat;
- background-size:100%;
- width:366px;
- height:86px;
- margin:15px 0 15px 0
-}
-#main_title_bar h1 {
- visibility:hidden
-}
-#main_title_bar .search_bar {
- letter-spacing:normal;
- width:50%;
- display:inline-block;
- -webkit-box-sizing:border-box;
- -moz-box-sizing:border-box;
- -ms-box-sizing:border-box;
- box-sizing:border-box;
- vertical-align:middle
-}
-#main_title_bar h1 {
- letter-spacing:normal;
- display:inline-block;
- -webkit-box-sizing:border-box;
- -moz-box-sizing:border-box;
- -ms-box-sizing:border-box;
- box-sizing:border-box;
- vertical-align:middle
-}
-#main_title_bar .search_bar * {
- letter-spacing:normal;
- padding:0;
- margin:0;
- border:none
-}
-#sidebar-toggle,#toc-toggle {
- display:none
-}
-@media (max-width: 980px) {
- body {
- font-size:calc-em(14px)
- }
- #main_title_bar>h1,#main_title_bar .search_bar {
- width:100%
- }
- #main_title_bar .search_bar {
- margin-bottom:15px
- }
- .main {
- margin-top:0px
- }
- .main_index .row {
- border:none !important
- }
- .title {
- font-size:1.5em;
- font-weight:400;
- word-wrap:break-word
- }
- .col-1,.body,.naviNextPrevious,.sidebar {
- padding:10px
- }
- .sidebar {
- position:relative;
- padding-top:0
- }
- .search .sidebar {
- display:none;
- visibility:hidden
- }
- .col-2 h2,.toc h3,.sidebar-content h2,.sidebar-content h3,.sectionlist h2 {
- text-align:center;
- margin-bottom:5px
- }
- div.main_index .row:after {
- content:none
- }
- div.main_index .row>div {
- display:block !important;
- width:100%;
- padding:15px;
- margin:0
- }
- .body,.sidebar,.col-1 {
- width:100%
- }
- .sidebar-content,.col-2,.toc {
- background-color:#fff;
- margin-bottom:1em;
- padding:20px
- }
- #sidebar-toggle,#toc-toggle {
- display:block
- }
- #sidebar-toggle.collapsed + h2 {
- display:block
- }
- .bodywrapper p {
- margin-bottom:1em;
- max-width:100%
- }
- table td,table th {
- padding:5px 5px
- }
- .sectionlist {
- padding:0
- }
- .sidebar > .sectionlist {
- padding:20px
- }
- .sectionlist.promo {
- max-width:46%;
- margin:0 auto 1em auto;
- float:left;
- padding:0 2%
- }
- .sidebar .sidebar-content {
- clear:both
- }
- .copy-notice {
- float:none;
- width:initial
- }
-}
-[id]:target > *:first-child,
-dt[id]:target {
- -webkit-animation:highlighter 3s;
- animation:highlighter 3s
-}
-@-webkit-keyframes highlighter {
- 25% {
- background-color:#d1e8f6;
- color:#444
- }
- 75% {
- background-color:#d1e8f6;
- color:#444
- }
-}
-@keyframes highlighter {
- 25% {
- background-color:#d1e8f6;
- color:#444
- }
- 75% {
- background-color:#d1e8f6;
- color:#444
- }
-}
-@-webkit-keyframes copypaste {
- 25% {
- opacity:1
- }
- 100% {
- border-radius:10px;
- margin-top:-50px;
- opacity:1
- }
-}
-@keyframes copypaste {
- 25% {
- opacity:1
- }
- 100% {
- border-radius:10px;
- margin-top:-50px;
- opacity:1
- }
-}
-#footer {
- clear:both
-}
-.footer-social i {
- font-family: "social-icons";
- font-style: normal;
- font-size:150%;
- margin: .55em;
- color: #cecfd5
-}
-.footer-social i:hover {
- color: #eee
-}
-.footer-social .icon-twitter:before {
- content: '\f099'
-}
-.footer-social .icon-facebook:before {
- content: '\f09a'
-}
-.footer-social .icon-youtube:before {
- content: '\f16a'
-}
-.menuextraslanguages {
- display:none;
- visibility:hidden
-}
-form.gsc-search-box {
- font-size: 25px !important;
- margin-top: 0 !important;
- margin-right: 0 !important;
- margin-bottom: 4px !important;
- margin-left: 0 !important;
- width: 102.5% !important;
-}
-table.gsc-search-box {
- border-style: none !important;
- border-width: 0 !important;
- border-spacing: 0 0 !important;
- width: 100% !important;
- margin-bottom: 2px !important;
-}
-
-table.gsc-search-box td {
- vertical-align: middle !important;
-}
-
-table.gsc-search-box td.gsc-input {
- padding-right: 0px !important;
-}
-table.gsc-search-box td.gsc-input input {
- background-position: 10px center !important;
-}
-
-td.gsc-search-button {
- width: 1% !important;
-}
-
-td.gsc-clear-button {
- width: 14px !important;
- visibility:hidden !important;
- display:none !important;
-}
-table.gsc-branding td,
-table.gsc-branding {
- margin: 0 0 0 0 !important;
- padding: 0 0 0 0 !important;
- border: none !important;
-}
-
-table.gsc-branding {
- border-style: none !important;
- border-width: 0 !important;
- border-spacing: 0 0 !important;
- width: 100% !important;
-}
-
-.gsc-branding-text {
- color: #676767 !important;
-}
-
-td.gsc-branding-text {
- vertical-align: top !important;
-}
-td.gsc-branding-text div.gsc-branding-text {
- padding-bottom: 2px !important;
- text-align: right !important;
- font-size: 11px !important;
- margin-right: 2px !important;
-}
-
-td.gsc-branding-img {
- width: 65px !important;
- vertical-align: bottom !important;
-}
-
-img.gsc-branding-img {
- padding-top: 1px !important;
- margin: 0 0 0 0 !important;
- padding-right: 0 !important;
- padding-left: 0 !important;
- padding-bottom: 0 !important;
- border: none !important;
- display: inline !important;
-}
-
-input.gsc-search-button {
- background-color: white !important;
- height: 35px !important;
- width: 25px !important;
- color: transparent !important;
- background-image: url("doc_search.png") !important;
- background-size: 25px auto;
- background-position: 0px 5px;
- background-repeat: no-repeat;
- margin-left: -43px !important;
- overflow: hidden;
- min-width: 20px !important;
-}
-
-input.gsc-search-button:hover {
- cursor: pointer;
-}
-
-input.gsc-search-button:focus {
- outline: none;
- box-shadow: none;
-}
-
-.gsc-search-box-tools .gsc-clear-button {
- display: none !important;
- visibility: none !important;
-}
-
-.gsc-overflow-hidden {
- overflow: hidden !important;
-}
-
-input.gsc-input {
- background-color: #fff !important;
- border: 1px solid #d6d6d6 !important;
- box-sizing: border-box !important;
- -moz-box-sizing: border-box !important;
- color: #868482 !important;
- outline: 0 none !important;
- padding: 9px 10px 10px !important;
- transition: color 0.5s ease 0s, box-shadow 0.5s ease 0s, background-color 0.5s ease 0s !important;
-}
-
-input {
- font-family: 'Titillium Web', Arial, Helvetica, sans-serif !important;
- line-height: 1.5 !important;
- font-weight: 300 !important;
- vertical-align:middle
-}
-
-input:focus {
- border-color: #46a2da;
- box-shadow: 0 0 5px #46a2da;
- color: #000;
-}
-
-.animation {
- width: 100%;
- border-style: none;
- border-width: 0
-}
-
-.player {
- width: auto;
- position: relative;
- display: table;
- margin-bottom:1.5em;
-}
-
-.playcontrol {
- display: none;
- background: url("play_icon.svg") no-repeat center,
- linear-gradient(
- rgba(0,0,0,0.15), rgba(0,0,0,0.15)
- );
- background-size: 25%;
- width: 100%;
- height: 100%;
- position: absolute;
- left: 0%;
- right: 0%;
- top: 0%;
- bottom: 0%;
- margin: auto
-}
-
-/* expand/collapse code sections */
-pre input {
- display:none;
- visibility:hidden
-}
-pre label {
- display:block;
- margin:-3px 3px 0 -16px;
- text-align:center;
- color:#21be2b;
- float:left;
-}
-pre label:hover {
- color:#fff
-}
-pre label::before {
- font-weight:600;
- font-size:16px;
- content:"+";
- display:inline-block;
- width:16px;
- height:16px
-}
-#ec_expand {
- height:16px;
- overflow:hidden;
- transition:height 0.35s;
-}
-#ec_expand::before {
- content:"...*/";
- color:#aaa;
- background-color:#3a4055;
- z-index:99 !important;
- right:25px;
- position:absolute
-}
-#ec_toggle:checked ~ #ec_expand {
- height:initial
-}
-#ec_toggle:checked ~ #ec_expand::before {
- content:""
-}
-#ec_toggle:checked ~ label::before {
- content:"-"
-}
-
-/* permalinks */
-h1:hover > .headerlink,
-h2:hover > .plink,
-h2:hover > .headerlink,
-h3:hover > .plink,
-h3:hover > .headerlink,
-h4:hover > .plink,
-h4:hover > .headerlink,
-h5:hover > .plink,
-h5:hover > .headerlink {
- opacity:1
-}
-a.plink, a.headerlink {
- opacity: 0;
- padding-left: 8px;
- font-size: 0.8em;
- font-weight: 600;
- transition: opacity 180ms ease-in-out
-}
-a.plink::before {
- content:'\00B6'
-}
-
-table.special {
- border: 3px;
- padding: 0px;
- border-collapse: separate;
- border-spacing: 20px;
- line-height: 1.5em;
- table-layout: fixed;
- width: 80%;
-}
-
-.special p {
- text-align: center;
- color: #3a4055;
-}
-
-.special a {
- display: block;
- border-bottom: 0;
- text-decoration: none;
-}
-
-.special a:hover {
- border-bottom: 0;
- text-decoration: none;
-}
-
-.special strong {
- color: #17a81a;
- font-size: 110%;
- font-weight: normal;
-}
-
-table.special th,
-table.special td {
- border: 1px solid #888;
- padding-top: 14px;
- padding-bottom: 14px;
- padding-left: 6px;
- padding-right: 5px;
- border-radius: 5px;
- -moz-border-radius: 5px;
- -webkit-border-radius: 5px;
- -khtml-border-radius: 5px;
- overflow: hidden;
-}
-
-.special td:hover {
- padding-top: 14px;
- padding-bottom: 10px;
- border-bottom: 4px solid #41cd52;
- overflow: hidden;
-}
-
-.command {
- font-family: monospace;
- font-weight: normal;
- background-color: #9cd1a6;
- padding: 2px 4px;
- color: black;
- border-radius: 2px;
-}
-
-div.leftside {
- width: 50%;
- padding: 0px 50px 0px 0px;
- float: left;
-}
-
-div.rightside {
- margin-left: 50%;
-}
-
-.btn-qt:hover,
-.btn-qt:active,
-.btn-qt:focus,
-.btn-qt.active {
- background: #41cd52;
- color: #fff !important;
- border-color: #fff;
-}
-
-.btn-link {
- color: #41cd52 !important;
-}
-
-.btn-link:hover {
- color: #222840 !important;
- text-decoration: underline;
-}
-
-/* Using !important is not recommended, but out CSS is being added
- * to the pages before the bootstrap ones, so we cannot override them
- * without using it */
-.btn-qt {
- color: #41cd52 !important;
- border-color: #41cd52 !important;
- font-weight: bold !important;
-}
-.card-img-top-main {
- padding-top: 10px;
- height: 70px !important;
-}
-
-.card-img-top {
- object-fit: contain;
- height: 120px;
- padding-top: 10px;
-}
diff --git a/sources/shiboken6/doc/_themes/pysidedocs/static/pysidelogo.png b/sources/shiboken6/doc/_themes/pysidedocs/static/pysidelogo.png
deleted file mode 100644
index 3a2f2bd17..000000000
--- a/sources/shiboken6/doc/_themes/pysidedocs/static/pysidelogo.png
+++ /dev/null
Binary files differ
diff --git a/sources/shiboken6/doc/_themes/pysidedocs/static/relbar_bg.png b/sources/shiboken6/doc/_themes/pysidedocs/static/relbar_bg.png
deleted file mode 100644
index 4036733a7..000000000
--- a/sources/shiboken6/doc/_themes/pysidedocs/static/relbar_bg.png
+++ /dev/null
Binary files differ
diff --git a/sources/shiboken6/doc/_themes/pysidedocs/theme.conf b/sources/shiboken6/doc/_themes/pysidedocs/theme.conf
deleted file mode 100644
index 01a4dd4a1..000000000
--- a/sources/shiboken6/doc/_themes/pysidedocs/theme.conf
+++ /dev/null
@@ -1,7 +0,0 @@
-[theme]
-inherit = default
-stylesheet = pyside.css
-pygments_style = none
-
-[options]
-nosidebar = false
diff --git a/sources/shiboken6/doc/_themes/pysidedocs_qthelp/static/pyside.css b/sources/shiboken6/doc/_themes/pysidedocs_qthelp/static/pyside.css
index aee5e4420..94134cacf 100644
--- a/sources/shiboken6/doc/_themes/pysidedocs_qthelp/static/pyside.css
+++ b/sources/shiboken6/doc/_themes/pysidedocs_qthelp/static/pyside.css
@@ -466,7 +466,7 @@ tt.descname {
position:relative
}
#menuextras li a:hover span {
- color: #41cd52;
+ color: #2cde85;
}
/* new header */
#mm-wrap, #mm-wrap #mm-helper,
@@ -557,14 +557,14 @@ tt.descname {
display:inline;
float:left;
width:31px;
- color:#41cd52
+ color:#2cde85
}
#navbar .navbar-oneQt:before {
content:attr(data-icon);
position:absolute;
top:14px;
left:0;
- color:#41cd52;
+ color:#2cde85;
font-family:'Qt Icons';
line-height:1;
font-size:40px;
@@ -1939,5 +1939,5 @@ table.special td {
.special td:hover {
padding-top: 2px;
padding-bottom: 2px;
- border-bottom: 4px solid #41cd52;
+ border-bottom: 4px solid #2cde85;
}
diff --git a/sources/shiboken6/doc/conf.py.in b/sources/shiboken6/doc/conf.py.in
index a54fa7ef2..b10f33b2a 100644
--- a/sources/shiboken6/doc/conf.py.in
+++ b/sources/shiboken6/doc/conf.py.in
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
#
-# PyQtB documentation build configuration file, created by
+# Shiboken documentation build configuration file, created by
# sphinx-quickstart on Wed Apr 22 15:04:20 2009.
#
# This file is execfile()d with the current directory set to its containing dir.
@@ -11,34 +11,59 @@
# All configuration values have a default; values that are commented out
# serve to show the default.
-import sys, os
+import sys
+import os
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#sys.path.append(os.path.abspath('.'))
+# documentation root, use Path(path).resolve() to make it absolute, like shown here.
+sys.path.append('@CMAKE_CURRENT_SOURCE_DIR@')
# -- General configuration -----------------------------------------------------
# Add any Sphinx extension module names here, as strings. They can be extensions
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.ifconfig',
- 'sphinx.ext.coverage', 'sphinx_panels']
+ 'sphinx.ext.coverage', 'sphinx.ext.intersphinx', 'sphinx.ext.todo',
+ 'sphinx.ext.graphviz',
+ 'sphinx.ext.viewcode',
+ 'sphinx_design', 'sphinx_copybutton',
+ 'myst_parser']
+
+myst_enable_extensions = [
+ "amsmath",
+ "colon_fence",
+ "deflist",
+ "dollarmath",
+ "fieldlist",
+ "html_admonition",
+ "html_image",
+ "replacements",
+ "smartquotes",
+ "strikethrough",
+ "substitution",
+ "tasklist",
+]
+myst_heading_anchors = 6
output_format='@DOC_OUTPUT_FORMAT@'
def setup(app):
app.add_config_value('output_format','qthelp','env')
-rst_epilog = """
-.. |project| replace:: Shiboken
+rst_epilog = """
+.. |project| replace:: Qt for Python
+.. |pymodname| replace:: Shiboken6
"""
# Add any paths that contain templates here, relative to this directory.
templates_path = ['@CMAKE_CURRENT_SOURCE_DIR@/_templates']
# The suffix of source filenames.
-source_suffix = '.rst'
+source_suffix = {
+ '.rst': 'restructuredtext',
+ '.md': 'markdown',
+}
# The encoding of source files.
source_encoding = 'utf-8'
@@ -48,16 +73,15 @@ master_doc = 'index'
# General information about the project.
project = u'Shiboken'
-copyright = u'© 2021 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation License version 1.3</a> as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.'
-
+copyright = u'2024 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 (https://www.gnu.org/licenses/fdl.html) as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The short X.Y version.
-version = '@shiboken_VERSION@'
+version = '@BINDING_API_VERSION@'
# The full version, including alpha/beta/rc tags.
-release = '@shiboken_VERSION@'
+release = '@BINDING_API_VERSION_FULL@'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
@@ -74,7 +98,8 @@ release = '@shiboken_VERSION@'
# List of directories, relative to source directory, that shouldn't be searched
# for source files.
-exclude_trees = ['_build']
+exclude_patterns = ['_build',
+ '**README.md']
# The reST default role (used for this markup: `text`) to use for all documents.
#default_role = None
@@ -92,6 +117,7 @@ add_function_parentheses = True
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
+pygments_dark_style = "monokai"
# A list of ignored prefixes for module index sorting.
#modindex_common_prefix = []
@@ -101,27 +127,40 @@ pygments_style = 'sphinx'
# The theme to use for HTML and HTML Help pages. Major themes that come with
# Sphinx are currently 'default' and 'sphinxdoc'.
-html_theme = 'pysidedocs'
+html_theme = 'furo'
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
-#html_theme_options = {
-#}
+html_theme_options = {
+ "dark_css_variables": {
+ "color-brand-primary": "#2cde85",
+ "color-brand-content": "#2cde85",
+ "color-admonition-title--important": "#2cde85",
+ "color-admonition-title-background--important": "#474b53",
+ "font-stack": "'Titillium Web', sans-serif",
+ },
+ "light_css_variables": {
+ "color-brand-primary": "#27138b",
+ "color-brand-content": "#27138b",
+ "color-admonition-title--important": "#27138b",
+ "font-stack": "'Titillium Web', sans-serif",
+ },
+}
# Add any paths that contain custom themes here, relative to this directory.
html_theme_path = ['@CMAKE_CURRENT_SOURCE_DIR@/_themes']
# The name for this set of Sphinx documents. If None, it defaults to
# "<project> v<release> documentation".
-#html_title = None
+html_title = "Shiboken"
# A shorter title for the navigation bar. Default is the same as html_title.
#html_short_title = None
# The name of an image file (relative to this directory) to place at the top
# of the sidebar.
-#html_logo = None
+html_logo = "@CMAKE_CURRENT_SOURCE_DIR@/_static/shiboken.png"
# The name of an image file (within the static path) to use as favicon of the
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
@@ -131,8 +170,12 @@ html_theme_path = ['@CMAKE_CURRENT_SOURCE_DIR@/_themes']
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
-#html_static_path = ['@CMAKE_CURRENT_SOURCE_DIR@/_static']
+html_static_path = ['@CMAKE_CURRENT_SOURCE_DIR@/_static']
+html_css_files = [
+ 'css/qt_font.css',
+ 'css/qt_style.css',
+]
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
# using the given strftime format.
#html_last_updated_fmt = '%b %d, %Y'
diff --git a/sources/shiboken6/doc/considerations.rst b/sources/shiboken6/doc/considerations.rst
index abab2c28d..ad913e7a6 100644
--- a/sources/shiboken6/doc/considerations.rst
+++ b/sources/shiboken6/doc/considerations.rst
@@ -6,6 +6,18 @@ Words of Advice
When writing or using Python bindings there is some things you must keep in mind.
+.. _rvalue_references:
+
+Rvalue References
+=================
+
+Normally, no bindings are generated for functions taking rvalue references.
+Experimental support has been added in 6.6. The functions need to be explicitly
+specified using the :ref:`add-function`, :ref:`declare-function` or
+:ref:`function` elements. For :ref:`value-type` objects, this does not have any
+implications since the arguments are copied in the generated code and the copy
+is moved from. For :ref:`object-type` objects however, it means that the object
+instance is moved from and should no longer be referenced.
.. _duck-punching-and-virtual-methods:
@@ -18,19 +30,19 @@ be tricky. That was an optimistic statement.
Let's see duck punching in action for educational purposes.
- .. code-block:: python
+.. code-block:: python
- import types
- import Binding
+ import types
+ import Binding
- obj = Binding.CppClass()
+ obj = Binding.CppClass()
- # CppClass has a virtual method called 'virtualMethod',
- # but we don't like it anymore.
- def myVirtualMethod(self_obj, arg):
- pass
+ # CppClass has a virtual method called 'virtualMethod',
+ # but we don't like it anymore.
+ def myVirtualMethod(self_obj, arg):
+ pass
- obj.virtualMethod = types.MethodType(myVirtualMethod, obj, Binding.CppClass)
+ obj.virtualMethod = types.MethodType(myVirtualMethod, obj, Binding.CppClass)
If some C++ code happens to call `CppClass::virtualMethod(...)` on the C++ object
@@ -46,17 +58,17 @@ Python-land by the usage of class constructors, like in the example above.
Brief interruption to show what I was saying:
- .. code-block:: python
+.. code-block:: python
- import types
- import Binding
+ import types
+ import Binding
- obj = Binding.createCppClass()
- def myVirtualMethod(self_obj, arg):
- pass
+ obj = Binding.createCppClass()
+ def myVirtualMethod(self_obj, arg):
+ pass
- # Punching a dead duck...
- obj.virtualMethod = types.MethodType(myVirtualMethod, obj, Binding.CppClass)
+ # Punching a dead duck...
+ obj.virtualMethod = types.MethodType(myVirtualMethod, obj, Binding.CppClass)
The `Binding.createCppClass()` factory method is just an example, C++ created objects
@@ -82,30 +94,30 @@ Below you can check the examples:
Example with old style class:
- .. code-block:: python
+.. code-block:: python
- from PySide6 import QtCore
+ from PySide6 import QtCore
- class MyOldStyleObject:
- pass
+ class MyOldStyleObject:
+ pass
- class MyObject(QtCore, MyOldStyleObject):
- pass
+ class MyObject(QtCore, MyOldStyleObject):
+ pass
this example will raise a 'TypeError' due to the limitation on PySide, to fix
this you will need use the new style class:
- .. code-block:: python
+.. code-block:: python
- from PySide6 import QtCore
+ from PySide6 import QtCore
- class MyOldStyleObject(object):
- pass
+ class MyOldStyleObject(object):
+ pass
- class MyObject(QtCore, MyOldStyleObject):
- pass
+ class MyObject(QtCore, MyOldStyleObject):
+ pass
All classes used for multiple inheritance with other PySide types need to have
@@ -181,4 +193,4 @@ What is 'inject code'?
That's how we call customized code that will be *injected* into the
generated at specific locations. They are specified inside the typesystem.
-.. _`Mailing list`: http://lists.qt-project.org/mailman/listinfo/pyside
+.. _`Mailing list`: https://lists.qt-project.org/mailman/listinfo/pyside
diff --git a/sources/shiboken6/doc/examples/index.rst b/sources/shiboken6/doc/examples/index.rst
index 92a64195e..e3575bc06 100644
--- a/sources/shiboken6/doc/examples/index.rst
+++ b/sources/shiboken6/doc/examples/index.rst
@@ -4,6 +4,20 @@ Examples
C++ examples
------------
-.. toctree::
+.. grid:: 1 4 4 4
+ :gutter: 2
- samplebinding.rst
+ .. grid-item-card:: Sample Binding
+ :class-item: cover-img
+ :link: ../../examples/example_samplebinding_samplebinding.html
+ :img-top: ../images/icecream.png
+
+ .. grid-item-card:: Scriptable Application
+ :class-item: cover-img
+ :link: ../../examples/example_scriptableapplication_scriptableapplication.html
+ :img-top: ../../../_images/example_no_image.png
+
+ .. grid-item-card:: Widget Binding
+ :class-item: cover-img
+ :link: ../../examples/example_widgetbinding_widgetbinding.html
+ :img-top: ../../../_images/example_no_image.png
diff --git a/sources/shiboken6/doc/examples/samplebinding.rst b/sources/shiboken6/doc/examples/samplebinding.rst
deleted file mode 100644
index 17a5bd38f..000000000
--- a/sources/shiboken6/doc/examples/samplebinding.rst
+++ /dev/null
@@ -1,246 +0,0 @@
-SampleBinding Example
-***********************
-
-This example showcases how you can use Shiboken to generate CPython-based
-binding code for a C++ library. The C++ library is called :code:`Universe`,
-with two classes: :code:`Icecream` and :code:`Truck`. Ice-creams are
-characterized by their flavor, and :code:`Truck` serves as a vehicle of
-:code:`Icecream` distribution for kids in a neighborhood.
-
-First, let's look at the definition of the two classes:
-
-.. code-block:: cpp
- :caption: icecream.h
-
- class Icecream
- {
- public:
- Icecream(const std::string &flavor);
- virtual Icecream *clone();
- virtual ~Icecream();
- virtual const std::string getFlavor();
-
- private:
- std::string m_flavor;
- };
-
-.. code-block:: cpp
- :caption: truck.h
-
- class Truck {
- public:
- Truck(bool leaveOnDestruction = false);
- Truck(const Truck &other);
- Truck& operator=(const Truck &other);
- ~Truck();
-
- void addIcecreamFlavor(Icecream *icecream);
- void printAvailableFlavors() const;
-
- bool deliver() const;
- void arrive() const;
- void leave() const;
-
- void setLeaveOnDestruction(bool value);
- void setArrivalMessage(const std::string &message);
-
- private:
- void clearFlavors();
-
- bool m_leaveOnDestruction = false;
- std::string m_arrivalMessage = "A new icecream truck has arrived!\n";
- std::vector m_flavors;
- };
-
-Here's a summary of what's included in the :code:`Universe` library:
-
-* The :code:`Icecream` polymorphic type, which is intended to be overridden.
-* The :code:`Icecream::getFlavor()` method returns the flavor depending on the
- actual derived type.
-* The :code:`Truck` value type that contains pointers, hence the copy
- constructor.
-* :code:`Truck` stores the :code:`Icecream` objects in a vector, which can be
- modified via :code:`Truck::addIcecreamFlavor()`.
-* The :code:`Truck’s` arrival message can be customized using its
- :code:`setArrivalMessage()` method.
-* The :code:`Truck::deliver()` method tells us if the ice-cream delivery was
- successful.
-
-Shiboken typesystem
-====================
-
-Now that the library definitions are in place, the Shiboken generator needs a
-header file that includes the types we are interested in:
-
-.. code-block:: cpp
- :caption: bindings.h
-
- #ifndef BINDINGS_H
- #define BINDINGS_H
- #include "icecream.h"
- #include "truck.h"
- #endif // BINDINGS_H
-
-In addition, Shiboken also requires an XML-based typesystem file that defines the
-relationship between C++ and Python types:
-
-.. code-block:: xml
- :caption: bindings.xml
-
- <?xml version="1.0"?>
- <typesystem package="Universe">
- <primitive-type name="bool"/>
- <primitive-type name="std::string"/>
- <object-type name="Icecream">
- <modify-function signature="clone()">
- <modify-argument index="0">
- <define-ownership owner="c++"/>
- </modify-argument>
- </modify-function>
- </object-type>
- <value-type name="Truck">
- <modify-function signature="addIcecreamFlavor(Icecream*)">
- <modify-argument index="1">
- <define-ownership owner="c++"/>
- </modify-argument>
- </modify-function>
- </value-type>
- </typesystem>
-
-One important thing to notice here is that we declare :code:`"bool"` and
-:code:`"std::string"` as primitive types. These types are used by some of the
-C++ methods as parameters or return types, so Shiboken must know about them.
-Then, Shiboken can generate relevant conversion code between C++ and Python, although
-most C++ primitive types are handled by Shiboken without additional code.
-
-Next, we declare the two aforementioned classes. One of them as an
-“object-type” and the other as a “value-type”. The main difference is that
-object-types are passed around in generated code as pointers, whereas
-value-types are copied (value semantics).
-
-By specifying the names of these classes in the typesystem file, Shiboken
-automatically tries to generate bindings for all methods of those
-classes. You need not mention all the methods manually in the XML file, unless
-you want to modify them.
-
-Object ownership rules
-=======================
-
-Shiboken doesn't know if Python or C++ are responsible for freeing the C++ objects that were
-allocated in the Python code, and assuming this might lead to errors.
-There can be cases where Python should release the C++ memory when the reference count of the
-Python object becomes zero, but it should never delete the underlying C++ object just from
-assuming that it will not be deleted by underlying C++ library, or if it's maybe parented to
-another object (like QWidgets).
-
-In our case, the :code:`clone()` method is only called inside the C++ library,
-and we assume that the C++ code takes care of releasing the cloned object.
-
-As for :code:`addIcecreamFlavor()`, we know that a :code:`Truck` owns the
-:code:`Icecream` object, and will remove it once the :code:`Truck` is
-destroyed. That's why the ownership is set to “c++” in the typesystem file,
-so that the C++ objects are not deleted when the corresponding Python names
-go out of scope.
-
-Build
-=====
-
-To build the :code:`Universe` custom library and then generate bindings for it,
-use the :file:`CMakeLists.txt` file provided with the example. Later, you can reuse
-the file for your own libraries with minor changes.
-
-Now, run the :command:`"cmake ."` command from the prompt to configure the
-project and build with the toolchain of your choice; we recommend the
-‘(N)Makefiles’ generator.
-
-As a result, you end up with two shared libraries:
-:file:`libuniverse.(so/dylib/dll)` and :file:`Universe.(so/pyd)`. The former is
-the custom C++ library, and the latter is the Python module to import in your
-Python script.
-
-For more details about these platforms, see the :file:`README.md` file.
-
-Use the Python module
-=====================
-
-The following script uses the :code:`Universe` module, derives a few types from
-:code:`Icecream`, implements virtual methods, instantiates objects, and much more:
-
-.. code-block:: python
- :caption: main.py
-
- from Universe import Icecream, Truck
-
- class VanillaChocolateIcecream(Icecream):
- def __init__(self, flavor=""):
- super(VanillaChocolateIcecream, self).__init__(flavor)
-
- def clone(self):
- return VanillaChocolateIcecream(self.getFlavor())
-
- def getFlavor(self):
- return "vanilla sprinked with chocolate"
-
- class VanillaChocolateCherryIcecream(VanillaChocolateIcecream):
- def __init__(self, flavor=""):
- super(VanillaChocolateIcecream, self).__init__(flavor)
-
- def clone(self):
- return VanillaChocolateCherryIcecream(self.getFlavor())
-
- def getFlavor(self):
- base_flavor = super(VanillaChocolateCherryIcecream, self).getFlavor()
- return base_flavor + " and a cherry"
-
- if __name__ == '__main__':
- leave_on_destruction = True
- truck = Truck(leave_on_destruction)
-
- flavors = ["vanilla", "chocolate", "strawberry"]
- for f in flavors:
- icecream = Icecream(f)
- truck.addIcecreamFlavor(icecream)
-
- truck.addIcecreamFlavor(VanillaChocolateIcecream())
- truck.addIcecreamFlavor(VanillaChocolateCherryIcecream())
-
- truck.arrive()
- truck.printAvailableFlavors()
- result = truck.deliver()
-
- if result:
- print("All the kids got some icecream!")
- else:
- print("Aww, someone didn't get the flavor they wanted...")
-
- if not result:
- special_truck = Truck(truck)
- del truck
-
- print("")
- special_truck.setArrivalMessage("A new SPECIAL icecream truck has arrived!\n")
- special_truck.arrive()
- special_truck.addIcecreamFlavor(Icecream("SPECIAL *magical* icecream"))
- special_truck.printAvailableFlavors()
- special_truck.deliver()
- print("Now everyone got the flavor they wanted!")
- special_truck.leave()
-
-After importing the classes from the :code:`Universe` module, it derives two
-types from :code:`Icecream` for different “flavors”. It then creates a
-:code:`truck` to deliver some regular flavored Icecreams and two special ones.
-
-If the delivery fails, a new :code:`truck` is created with the old flavors
-copied over, and a new *magical* flavor that will surely satisfy all customers.
-
-Try running it to see if the ice creams are delivered.
-
-.. note::
- You can find the sources for this example under
- :file:`<PYTHON_ENV_ROOT>/site-packages/lib/PySide6/examples/samplebinding`.
-
-Refer to the following topics for detailed information about using Shiboken:
- * :doc:`Type System Variables <../typesystem_variables>`
- * :doc:`User Defined Type Conversion <../typesystem_converters>`
- * :doc:`Object ownership <../typesystem_ownership>`
- * :doc:`Considerations and Frequently Asked Questions <../considerations>`
diff --git a/sources/shiboken6/doc/gettingstarted.rst b/sources/shiboken6/doc/gettingstarted.rst
index 6ab337680..cad49086d 100644
--- a/sources/shiboken6/doc/gettingstarted.rst
+++ b/sources/shiboken6/doc/gettingstarted.rst
@@ -11,13 +11,13 @@ need to continue if you already have a built PySide.
General Requirements
^^^^^^^^^^^^^^^^^^^^
- * **Python**: 3.6+
- * **Qt:** 6.0+
- * **libclang:** The libclang library, recommended: version 10 for 6.0+.
- Prebuilt versions of it can be `downloaded here`_.
- * **CMake:** 3.1+ is needed.
+* **Python**: 3.7+
+* **Qt:** 6.0+
+* **libclang:** The libclang library, recommended: version 10 for 6.0+.
+ Prebuilt versions of it can be `downloaded here`_.
+* **CMake:** 3.1+ is needed.
-.. _downloaded here: http://download.qt.io/development_releases/prebuilt/libclang/
+.. _downloaded here: https://download.qt.io/development_releases/prebuilt/libclang/
Simple build
^^^^^^^^^^^^
@@ -25,13 +25,13 @@ Simple build
If you need only Shiboken Generator, a simple build run would look like this::
# For the required libraries (this will also build the shiboken6 python module)
- python setup.py install --qmake=/path/to/qmake \
+ python setup.py install --qtpaths=/path/to/qtpaths \
--build-tests \
--verbose-build \
--internal-build-type=shiboken6
# For the executable
- python setup.py install --qmake=/path/to/qmake \
+ python setup.py install --qtpaths=/path/to/qtpaths \
--build-tests \
--verbose-build \
--internal-build-type=shiboken6-generator
@@ -40,7 +40,7 @@ The same can be used for the module, changing the value of ``internal-build-type
``shiboken6-module``.
.. warning:: If you are planning to use PySide too, for examples like
- 'scriptableapplication' you need to have build it as well. The main issue is
+ 'scriptableapplication' you need to have build it as well. The main issue is
that your PySide and Shiboken needs to be build using the same dependencies
from Qt and libclang.
@@ -54,7 +54,7 @@ You can get the ``shiboken6_generator`` wheels from Qt servers, and you can stil
via ``pip``::
pip install \
- --index-url=http://download.qt.io/official_releases/QtForPython/ \
+ --index-url=https://download.qt.io/official_releases/QtForPython/ \
--trusted-host download.qt.io \
shiboken6 pyside6 shiboken6_generator
@@ -62,11 +62,13 @@ via ``pip``::
The ``whl`` package cannot automatically discover in your system the location for:
* Clang installation,
-* ``qmake`` location with the same version as the one described in the wheel,
+* Qt location (indicated by the path of the ``qtpaths`` tool) with the same
+ version/build as the one described in the wheel,
* Qt libraries with the same package version.
So using this process requires you to manually modify the variables:
* ``CLANG_INSTALL_DIR`` must be set to where the libraries are,
-* ``PATH`` must include the location for a ``qmake`` with the same Qt version as the package,
+* ``PATH`` must include the location for the ``qtpaths`` tool with the same Qt
+ version as the package,
* ``LD_LIBRARY_PATH`` including the Qt libraries and Clang libraries paths.
diff --git a/sources/shiboken6/doc/images/boostgen.png b/sources/shiboken6/doc/images/boostgen.png
deleted file mode 100644
index ae9d9fc3d..000000000
--- a/sources/shiboken6/doc/images/boostgen.png
+++ /dev/null
Binary files differ
diff --git a/sources/shiboken6/doc/images/converter.png b/sources/shiboken6/doc/images/converter.png
index cd52e2769..3935fdc60 100644
--- a/sources/shiboken6/doc/images/converter.png
+++ b/sources/shiboken6/doc/images/converter.png
Binary files differ
diff --git a/sources/shiboken6/doc/images/converter.svg b/sources/shiboken6/doc/images/converter.svg
index 4305eb720..2df5c88e5 100644
--- a/sources/shiboken6/doc/images/converter.svg
+++ b/sources/shiboken6/doc/images/converter.svg
@@ -1,349 +1,2227 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ width="908.50861"
+ zoomAndPan="magnify"
+ viewBox="0 0 681.38145 434.11857"
+ height="578.82477"
+ preserveAspectRatio="xMidYMid"
+ version="1.0"
+ id="svg5080"
+ sodipodi:docname="converter.svg"
+ inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="206.375mm"
- height="100.54167mm"
- viewBox="0 0 206.375 100.54167"
- version="1.1"
- id="svg8"
- inkscape:version="0.92.2 2405546, 2018-03-11"
- sodipodi:docname="converter.svg">
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <sodipodi:namedview
+ id="namedview5082"
+ pagecolor="#ffffff"
+ bordercolor="#000000"
+ borderopacity="0.25"
+ inkscape:showpageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ inkscape:deskcolor="#d1d1d1"
+ showgrid="false"
+ inkscape:zoom="0.80648148"
+ inkscape:cx="413.52468"
+ inkscape:cy="205.2124"
+ inkscape:window-width="2552"
+ inkscape:window-height="1432"
+ inkscape:window-x="1924"
+ inkscape:window-y="4"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg5080" />
<defs
- id="defs2">
- <marker
- inkscape:isstock="true"
- style="overflow:visible"
- id="marker1623"
- refX="0"
- refY="0"
- orient="auto"
- inkscape:stockid="Arrow1Lend">
+ id="defs4108">
+ <g
+ id="g4028" />
+ <clipPath
+ id="24985ca8b2">
+ <path
+ d="m 325.10547,297.75 h 159.75 V 405 h -159.75 z m 0,0"
+ clip-rule="nonzero"
+ id="path4030" />
+ </clipPath>
+ <clipPath
+ id="3cea3902db">
+ <path
+ d="m 382.58984,359.24609 h 18 v 11.25 h -18 z m 0,0"
+ clip-rule="nonzero"
+ id="path4033" />
+ </clipPath>
+ <clipPath
+ id="dfab995897">
+ <path
+ d="m 325.10547,473.32031 h 159.75 v 107.25 h -159.75 z m 0,0"
+ clip-rule="nonzero"
+ id="path4036" />
+ </clipPath>
+ <clipPath
+ id="2d1327caba">
+ <path
+ d="m 411.91016,534.82031 h 18 v 11.25 h -18 z m 0,0"
+ clip-rule="nonzero"
+ id="path4039" />
+ </clipPath>
+ <clipPath
+ id="f03e985e13">
+ <path
+ d="m 113,313.11719 h 113.76172 v 76.5 H 113 Z m 0,0"
+ clip-rule="nonzero"
+ id="path4042" />
+ </clipPath>
+ <clipPath
+ id="c71ef1b2fa">
+ <path
+ d="m 112.76172,313.11719 h 114 v 76.5 h -114 z m 0,0"
+ clip-rule="nonzero"
+ id="path4045" />
+ </clipPath>
+ <clipPath
+ id="3bddcdf684">
+ <path
+ d="m 593.35156,488.69141 h 114 v 76.5 h -114 z m 0,0"
+ clip-rule="nonzero"
+ id="path4048" />
+ </clipPath>
+ <clipPath
+ id="cd19a8dfa8">
+ <path
+ d="m 588,313.11719 h 113.98828 v 76.5 H 588 Z m 0,0"
+ clip-rule="nonzero"
+ id="path4051" />
+ </clipPath>
+ <clipPath
+ id="61b05d6a70">
+ <path
+ d="m 125,427 h 89.71094 v 60 H 125 Z m 0,0"
+ clip-rule="nonzero"
+ id="path4054" />
+ </clipPath>
+ <clipPath
+ id="ea42d02648">
+ <path
+ d="m 124.77344,426.82031 h 89.9375 v 60.35547 h -89.9375 z m 0,0"
+ clip-rule="nonzero"
+ id="path4057" />
+ </clipPath>
+ <clipPath
+ id="84bd6662f0">
+ <path
+ d="m 125,497 h 89.71094 v 60 H 125 Z m 0,0"
+ clip-rule="nonzero"
+ id="path4060" />
+ </clipPath>
+ <clipPath
+ id="728d290ff8">
+ <path
+ d="m 124.77344,496.94922 h 89.9375 v 60.35547 h -89.9375 z m 0,0"
+ clip-rule="nonzero"
+ id="path4063" />
+ </clipPath>
+ <clipPath
+ id="00b091b271">
<path
- transform="matrix(-0.8,0,0,-0.8,-10,0)"
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
- d="M 0,0 5,-5 -12.5,0 5,5 Z"
- id="path1621"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:stockid="Arrow1Lend"
- orient="auto"
- refY="0"
- refX="0"
- id="marker1569"
- style="overflow:visible"
- inkscape:isstock="true"
- inkscape:collect="always">
+ d="m 125,567 h 89.71094 v 60 H 125 Z m 0,0"
+ clip-rule="nonzero"
+ id="path4066" />
+ </clipPath>
+ <clipPath
+ id="be13ebcaaa">
<path
- id="path1567"
- d="M 0,0 5,-5 -12.5,0 5,5 Z"
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="matrix(-0.8,0,0,-0.8,-10,0)"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:isstock="true"
- style="overflow:visible"
- id="marker1521"
- refX="0"
- refY="0"
- orient="auto"
- inkscape:stockid="Arrow1Lend"
- inkscape:collect="always">
+ d="m 124.77344,566.78125 h 89.9375 v 60.35156 h -89.9375 z m 0,0"
+ clip-rule="nonzero"
+ id="path4069" />
+ </clipPath>
+ <clipPath
+ id="12ef88673f">
<path
- transform="matrix(-0.8,0,0,-0.8,-10,0)"
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
- d="M 0,0 5,-5 -12.5,0 5,5 Z"
- id="path1519"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:stockid="Arrow1Lend"
- orient="auto"
- refY="0"
- refX="0"
- id="marker1479"
- style="overflow:visible"
- inkscape:isstock="true"
- inkscape:collect="always">
+ d="m 242.54687,336.47266 h 66 v 30 h -66 z m 0,0"
+ clip-rule="nonzero"
+ id="path4072" />
+ </clipPath>
+ <clipPath
+ id="4425bd08fe">
<path
- id="path1477"
- d="M 0,0 5,-5 -12.5,0 5,5 Z"
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="matrix(-0.8,0,0,-0.8,-10,0)"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:isstock="true"
- style="overflow:visible"
- id="marker1443"
- refX="0"
- refY="0"
- orient="auto"
- inkscape:stockid="Arrow1Lend"
- inkscape:collect="always">
+ d="m 503.92969,336.47266 h 66 v 30 h -66 z m 0,0"
+ clip-rule="nonzero"
+ id="path4075" />
+ </clipPath>
+ <clipPath
+ id="29f410bb45">
<path
- transform="matrix(-0.8,0,0,-0.8,-10,0)"
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
- d="M 0,0 5,-5 -12.5,0 5,5 Z"
- id="path1441"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:stockid="Arrow1Lend"
- orient="auto"
- refY="0"
- refX="0"
- id="Arrow1Lend"
- style="overflow:visible"
- inkscape:isstock="true"
- inkscape:collect="always">
+ d="m 503.92969,512.04297 h 66 v 30 h -66 z m 0,0"
+ clip-rule="nonzero"
+ id="path4078" />
+ </clipPath>
+ <clipPath
+ id="8612924f50">
<path
- id="path1154"
- d="M 0,0 5,-5 -12.5,0 5,5 Z"
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="matrix(-0.8,0,0,-0.8,-10,0)"
- inkscape:connector-curvature="0" />
- </marker>
+ d="m 236.54297,511.73437 h 66 v 30 h -66 z m 0,0"
+ clip-rule="nonzero"
+ id="path4081" />
+ </clipPath>
+ <clipPath
+ id="9616827f5c">
+ <path
+ d="m 238,451 h 62 v 38 h -62 z m 0,0"
+ clip-rule="nonzero"
+ id="path4084" />
+ </clipPath>
+ <clipPath
+ id="6d6215aef9">
+ <path
+ d="m 246.00781,440.04297 59.81641,27.89453 -12.67969,27.1875 -59.81641,-27.89063 z m 0,0"
+ clip-rule="nonzero"
+ id="path4087" />
+ </clipPath>
+ <clipPath
+ id="506e24dd3d">
+ <path
+ d="m 246.00781,440.04297 59.81641,27.89453 -12.67969,27.1875 -59.81641,-27.89063 z m 0,0"
+ clip-rule="nonzero"
+ id="path4090" />
+ </clipPath>
+ <clipPath
+ id="85c10bb5f0">
+ <path
+ d="m 246.00781,440.04297 59.81641,27.89453 -12.67969,27.1875 -59.81641,-27.89063 z m 0,0"
+ clip-rule="nonzero"
+ id="path4093" />
+ </clipPath>
+ <clipPath
+ id="96382ab88a">
+ <path
+ d="m 238,565 h 62 v 38 h -62 z m 0,0"
+ clip-rule="nonzero"
+ id="path4096" />
+ </clipPath>
+ <clipPath
+ id="8ee2f579d3">
+ <path
+ d="m 233.26953,586.86719 59.81641,-27.89063 12.67578,27.1875 -59.81641,27.89453 z m 0,0"
+ clip-rule="nonzero"
+ id="path4099" />
+ </clipPath>
+ <clipPath
+ id="c24345751d">
+ <path
+ d="m 246.00781,614.18359 59.81641,-27.89062 -12.67969,-27.19141 -59.81641,27.89453 z m 0,0"
+ clip-rule="nonzero"
+ id="path4102" />
+ </clipPath>
+ <clipPath
+ id="6c1dc82097">
+ <path
+ d="m 246.00781,614.18359 59.81641,-27.89062 -12.67969,-27.19141 -59.81641,27.89453 z m 0,0"
+ clip-rule="nonzero"
+ id="path4105" />
+ </clipPath>
</defs>
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="0.35"
- inkscape:cx="382.16184"
- inkscape:cy="-28.417621"
- inkscape:document-units="mm"
- inkscape:current-layer="layer1"
- showgrid="true"
- fit-margin-top="0"
- fit-margin-left="0"
- fit-margin-right="0"
- fit-margin-bottom="0"
- inkscape:window-width="1002"
- inkscape:window-height="1042"
- inkscape:window-x="10"
- inkscape:window-y="28"
- inkscape:window-maximized="0">
- <inkscape:grid
- type="xygrid"
- id="grid971"
- originx="-58.208333"
- originy="-68.791657" />
- </sodipodi:namedview>
- <metadata
- id="metadata5">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- inkscape:label="Layer 1"
- inkscape:groupmode="layer"
- id="layer1"
- transform="translate(-58.208333,-127.66667)">
+ <rect
+ x="-1.4210855e-14"
+ width="681.38147"
+ fill="#ffffff"
+ y="-2.8421709e-14"
+ height="434.11859"
+ fill-opacity="1"
+ id="rect4110"
+ style="stroke-width:0.559543" />
+ <path
+ fill="#41cb51"
+ d="M 256.85164,139.32657 V 62.127352 c 0,-0.9336 0.0898,-1.85938 0.27344,-2.77344 0.17968,-0.91406 0.44922,-1.80078 0.80468,-2.66406 0.35547,-0.86328 0.79297,-1.67969 1.3086,-2.45703 0.51562,-0.77344 1.10547,-1.49219 1.76172,-2.15235 0.65625,-0.66015 1.37109,-1.25 2.14453,-1.76562 0.77344,-0.51953 1.58984,-0.95703 2.44922,-1.3125 0.85937,-0.35938 1.74218,-0.62891 2.65625,-0.8086 0.91015,-0.18359 1.83203,-0.27343 2.76172,-0.27343 h 129.44531 c 0.92969,0 1.85156,0.0898 2.76172,0.27343 0.91406,0.17969 1.79687,0.44922 2.65625,0.8086 0.85937,0.35547 1.67578,0.79297 2.44922,1.3125 0.77343,0.51562 1.48828,1.10547 2.14453,1.76562 0.66015,0.66016 1.24609,1.37891 1.76172,2.15235 0.51562,0.77734 0.95312,1.59375 1.30859,2.45703 0.35547,0.86328 0.625,1.75 0.80469,2.66406 0.18359,0.91406 0.27343,1.83984 0.27343,2.77344 v 77.199218 c 0,0.93359 -0.0898,1.85937 -0.27343,2.77343 -0.17969,0.91407 -0.44922,1.80469 -0.80469,2.66407 -0.35547,0.86328 -0.79297,1.68359 -1.30859,2.45703 -0.51563,0.77734 -1.10157,1.49218 -1.76172,2.15234 -0.65625,0.66016 -1.3711,1.25 -2.14453,1.76953 -0.77344,0.51563 -1.58985,0.95313 -2.44922,1.3125 -0.85938,0.35547 -1.74219,0.625 -2.65625,0.8086 -0.91016,0.17968 -1.83203,0.27343 -2.76172,0.27343 H 271.0118 c -0.92969,0 -1.85157,-0.0937 -2.76172,-0.27343 -0.91407,-0.1836 -1.79688,-0.45313 -2.65625,-0.8086 -0.85938,-0.35937 -1.67578,-0.79687 -2.44922,-1.3125 -0.77344,-0.51953 -1.48828,-1.10937 -2.14453,-1.76953 -0.65625,-0.66016 -1.2461,-1.375 -1.76172,-2.15234 -0.51563,-0.77344 -0.95313,-1.59375 -1.3086,-2.45703 -0.35546,-0.85938 -0.625,-1.75 -0.80468,-2.66407 -0.1836,-0.91406 -0.27344,-1.83984 -0.27344,-2.77343 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path4116" />
+ <g
+ clip-path="url(#24985ca8b2)"
+ id="g4120"
+ transform="translate(-69.242111,-250.64609)">
+ <path
+ fill="#41cb51"
+ d="m 484.67187,312.77344 v 77.19922 c 0,0.98437 -0.0937,1.96093 -0.28515,2.92968 -0.19531,0.96875 -0.47656,1.90625 -0.85547,2.82032 -0.375,0.91015 -0.83594,1.77734 -1.38281,2.59765 -0.54688,0.82031 -1.16797,1.57813 -1.86328,2.27735 -0.69532,0.69531 -1.44922,1.32031 -2.26954,1.86718 -0.8164,0.55078 -1.67968,1.01172 -2.58984,1.39063 -0.90625,0.375 -1.84375,0.66015 -2.80859,0.85547 -0.96485,0.1914 -1.9375,0.28906 -2.92188,0.28906 h -129.4375 c -0.98437,0 -1.95703,-0.0977 -2.92187,-0.28906 -0.96485,-0.19532 -1.90235,-0.48047 -2.8086,-0.85547 -0.91015,-0.37891 -1.77343,-0.83985 -2.58984,-1.39063 -0.82031,-0.54687 -1.57422,-1.17187 -2.26953,-1.86718 -0.69531,-0.69922 -1.31641,-1.45704 -1.86328,-2.27735 -0.54688,-0.82031 -1.00782,-1.6875 -1.38282,-2.59765 -0.3789,-0.91407 -0.66015,-1.85157 -0.85546,-2.82032 -0.19141,-0.96875 -0.28516,-1.94531 -0.28516,-2.92968 v -77.19922 c 0,-0.98828 0.0937,-1.96485 0.28516,-2.9336 0.19531,-0.96484 0.47656,-1.90625 0.85546,-2.8164 0.375,-0.91407 0.83594,-1.77735 1.38282,-2.59766 0.54687,-0.82422 1.16797,-1.58203 1.86328,-2.27734 0.69531,-0.69922 1.44922,-1.32422 2.26953,-1.8711 0.81641,-0.54687 1.67969,-1.01172 2.58984,-1.38672 0.90625,-0.3789 1.84375,-0.66406 2.8086,-0.85546 0.96484,-0.19532 1.9375,-0.28907 2.92187,-0.28907 h 129.44141 c 0.98437,0 1.95703,0.0977 2.92187,0.28907 0.96485,0.1914 1.90235,0.47656 2.8086,0.85546 0.91015,0.37891 1.76953,0.83985 2.58984,1.38672 0.81641,0.55078 1.57422,1.17188 2.26953,1.8711 0.69531,0.69531 1.3125,1.45703 1.85938,2.27734 0.54687,0.82031 1.00781,1.68359 1.38281,2.59766 0.37891,0.91015 0.66406,1.85156 0.85547,2.8164 0.1914,0.96875 0.28515,1.94532 0.28515,2.9336 z m -157.76171,77.19922 c 0,0.8789 0.082,1.75 0.2539,2.61328 0.17188,0.85937 0.42578,1.69922 0.76172,2.51172 0.33594,0.8125 0.74609,1.58203 1.23047,2.3164 0.48828,0.73047 1.04297,1.40625 1.66016,2.02735 0.62109,0.62109 1.29687,1.17968 2.02343,1.66796 0.73047,0.48829 1.5,0.89844 2.3086,1.23438 0.80859,0.33984 1.64453,0.59375 2.5039,0.76562 0.85938,0.17188 1.72657,0.25391 2.60547,0.25391 h 129.44141 c 0.875,0 1.74609,-0.082 2.60547,-0.25391 0.85937,-0.17187 1.69531,-0.42578 2.5039,-0.76562 0.8086,-0.33594 1.57813,-0.74609 2.3086,-1.23438 0.72656,-0.48828 1.40234,-1.04687 2.01953,-1.66796 0.62109,-0.6211 1.17578,-1.29688 1.66015,-2.02735 0.48829,-0.73437 0.89844,-1.5039 1.23438,-2.3164 0.33594,-0.8125 0.58984,-1.65235 0.76172,-2.51172 0.16797,-0.86328 0.2539,-1.73438 0.2539,-2.61328 v -77.19922 c 0,-0.87891 -0.0859,-1.75 -0.2539,-2.61328 -0.17188,-0.86329 -0.42578,-1.69922 -0.76172,-2.51172 -0.33594,-0.8125 -0.74609,-1.58594 -1.23438,-2.31641 -0.48437,-0.73047 -1.03906,-1.41016 -1.66015,-2.03125 -0.61719,-0.62109 -1.29297,-1.17578 -2.01953,-1.66406 -0.73047,-0.48828 -1.5,-0.90235 -2.3086,-1.23828 -0.80859,-0.33594 -1.64453,-0.58985 -2.5039,-0.76172 -0.85938,-0.17188 -1.73047,-0.25781 -2.60547,-0.25781 H 340.25781 c -0.8789,0 -1.74609,0.0859 -2.60547,0.25781 -0.85937,0.17187 -1.69531,0.42578 -2.5039,0.76172 -0.8086,0.33593 -1.57813,0.75 -2.3086,1.23828 -0.72656,0.48828 -1.40234,1.04297 -2.02343,1.66406 -0.61719,0.62109 -1.17188,1.30078 -1.66016,2.03125 -0.48438,0.73047 -0.89453,1.50391 -1.23047,2.31641 -0.33594,0.8125 -0.58984,1.64843 -0.76172,2.51172 -0.17187,0.86328 -0.2539,1.73437 -0.2539,2.61328 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path4118" />
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4128"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(334.04375,371.84414)"
+ id="g4126">
+ <g
+ id="g4124">
+ <path
+ d="M 11.0625,-0.234375 C 9.550781,0.0664062 8.191406,0.21875 6.984375,0.21875 5.785156,0.21875 4.816406,0.0546875 4.078125,-0.265625 3.335938,-0.597656 2.765625,-1.113281 2.359375,-1.8125 1.960938,-2.507812 1.6875,-3.304688 1.53125,-4.203125 c -0.15625,-0.90625 -0.234375,-2.03125 -0.234375,-3.375 0,-1.351563 0.078125,-2.488281 0.234375,-3.40625 0.15625,-0.914063 0.429688,-1.722656 0.828125,-2.421875 0.40625,-0.707031 0.972656,-1.222656 1.703125,-1.546875 0.738281,-0.320313 1.691406,-0.484375 2.859375,-0.484375 1.175781,0 2.554687,0.164062 4.140625,0.484375 L 11,-13.53125 c -1.480469,-0.257812 -2.796875,-0.390625 -3.953125,-0.390625 -1.617187,0 -2.683594,0.480469 -3.203125,1.4375 -0.523438,0.960937 -0.78125,2.601563 -0.78125,4.921875 0,1.15625 0.046875,2.089844 0.140625,2.796875 0.09375,0.699219 0.28125,1.328125 0.5625,1.890625 0.28125,0.5625 0.6875,0.96875 1.21875,1.21875 0.53125,0.242188 1.3125,0.359375 2.34375,0.359375 1.039063,0 2.265625,-0.128906 3.671875,-0.390625 z m 0,0"
+ id="path4122" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4136"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(346.00962,371.84414)"
+ id="g4134">
+ <g
+ id="g4132">
+ <path
+ d="M 1.203125,-4.78125 V -6.265625 H 5.375 V -10.5625 h 1.53125 v 4.296875 h 4.203125 V -4.78125 H 6.90625 V -0.4375 H 5.375 v -4.34375 z m 0,0"
+ id="path4130" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4144"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(358.32742,371.84414)"
+ id="g4142">
+ <g
+ id="g4140">
+ <path
+ d="M 1.203125,-4.78125 V -6.265625 H 5.375 V -10.5625 h 1.53125 v 4.296875 h 4.203125 V -4.78125 H 6.90625 V -0.4375 H 5.375 v -4.34375 z m 0,0"
+ id="path4138" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4150"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(370.6414,371.84414)"
+ id="g4148">
+ <g
+ id="g4146" />
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4156"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(375.48053,371.84414)"
+ id="g4154">
+ <g
+ id="g4152" />
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4162"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(380.31967,371.84414)"
+ id="g4160">
+ <g
+ id="g4158" />
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4168"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(385.1588,371.84414)"
+ id="g4166">
+ <g
+ id="g4164" />
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4174"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(389.99794,371.84414)"
+ id="g4172">
+ <g
+ id="g4170" />
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4180"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(394.83707,371.84414)"
+ id="g4178">
+ <g
+ id="g4176" />
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4186"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(399.6762,371.84414)"
+ id="g4184">
+ <g
+ id="g4182" />
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4192"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(404.51534,371.84414)"
+ id="g4190">
+ <g
+ id="g4188" />
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4200"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(409.34843,371.84414)"
+ id="g4198">
+ <g
+ id="g4196">
+ <path
+ d="M 7.4375,-5.125 H 3.5625 V 0 H 1.875 v -15.21875 h 5.5625 c 1.65625,0 2.878906,0.40625 3.671875,1.21875 0.789063,0.804688 1.1875,2.03125 1.1875,3.6875 0,3.460938 -1.621094,5.1875 -4.859375,5.1875 z m -3.875,-1.5 h 3.84375 c 2.101562,0 3.15625,-1.226562 3.15625,-3.6875 0,-1.175781 -0.25,-2.039062 -0.75,-2.59375 -0.5,-0.550781 -1.304688,-0.828125 -2.40625,-0.828125 H 3.5625 Z m 0,0"
+ id="path4194" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4208"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(422.39211,371.84414)"
+ id="g4206">
+ <g
+ id="g4204">
+ <path
+ d="m 0.546875,-11 h 1.65625 l 2.75,9.5625 h 0.71875 L 8.453125,-11 H 10.09375 L 5.515625,4.890625 H 3.875 L 5.296875,0 h -1.625 z m 0,0"
+ id="path4202" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4216"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(433.01622,371.84414)"
+ id="g4214">
+ <g
+ id="g4212">
+ <path
+ d="m 7.28125,-9.5625 h -3.5 v 5.25 c 0,1.261719 0.085938,2.089844 0.265625,2.484375 0.1875,0.398437 0.628906,0.59375 1.328125,0.59375 l 1.953125,-0.125 L 7.4375,0 c -0.980469,0.15625 -1.730469,0.234375 -2.25,0.234375 -1.148438,0 -1.9375,-0.2734375 -2.375,-0.828125 -0.4375,-0.5625 -0.65625,-1.625 -0.65625,-3.1875 V -9.5625 H 0.59375 V -11 h 1.5625 v -3.359375 h 1.625 V -11 h 3.5 z m 0,0"
+ id="path4210" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4224"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(440.73684,371.84414)"
+ id="g4222">
+ <g
+ id="g4220">
+ <path
+ d="m 3.234375,0 h -1.65625 v -15.796875 h 1.65625 v 5.40625 c 1.175781,-0.550781 2.304687,-0.828125 3.390625,-0.828125 1.46875,0 2.453125,0.398438 2.953125,1.1875 0.507813,0.792969 0.765625,2.199219 0.765625,4.21875 V 0 H 8.6875 v -5.765625 c 0,-1.519531 -0.152344,-2.5625 -0.453125,-3.125 C 7.929688,-9.460938 7.300781,-9.75 6.34375,-9.75 c -0.929688,0 -1.824219,0.171875 -2.6875,0.515625 L 3.234375,-9.09375 Z m 0,0"
+ id="path4218" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4232"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(452.54873,371.84414)"
+ id="g4230">
+ <g
+ id="g4228">
+ <path
+ d="m 1.09375,-5.515625 c 0,-2.007813 0.359375,-3.460937 1.078125,-4.359375 0.71875,-0.894531 1.929687,-1.34375 3.640625,-1.34375 1.707031,0 2.914062,0.449219 3.625,1.34375 0.71875,0.898438 1.078125,2.351562 1.078125,4.359375 0,2 -0.339844,3.460937 -1.015625,4.375 -0.679688,0.90625 -1.914062,1.359375 -3.703125,1.359375 -1.78125,0 -3.011719,-0.453125 -3.6875,-1.359375 -0.679687,-0.914063 -1.015625,-2.375 -1.015625,-4.375 z m 1.703125,-0.03125 c 0,1.605469 0.191406,2.730469 0.578125,3.375 0.382812,0.648437 1.195312,0.96875 2.4375,0.96875 1.238281,0 2.050781,-0.316406 2.4375,-0.953125 0.382812,-0.644531 0.578125,-1.773438 0.578125,-3.390625 0,-1.613281 -0.214844,-2.722656 -0.640625,-3.328125 -0.429688,-0.613281 -1.21875,-0.921875 -2.375,-0.921875 -1.148438,0 -1.9375,0.308594 -2.375,0.921875 -0.429688,0.605469 -0.640625,1.714844 -0.640625,3.328125 z m 0,0"
+ id="path4226" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4240"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(464.16266,371.84414)"
+ id="g4238">
+ <g
+ id="g4236">
+ <path
+ d="M 3.234375,0 H 1.578125 V -11 H 3.21875 v 0.765625 c 1.1875,-0.65625 2.320312,-0.984375 3.40625,-0.984375 1.46875,0 2.453125,0.398438 2.953125,1.1875 0.507813,0.792969 0.765625,2.199219 0.765625,4.21875 V 0 h -1.625 v -5.765625 c 0,-1.519531 -0.152344,-2.5625 -0.453125,-3.125 C 7.960938,-9.460938 7.320312,-9.75 6.34375,-9.75 c -0.480469,0 -0.980469,0.074219 -1.5,0.21875 -0.523438,0.136719 -0.917969,0.273438 -1.1875,0.40625 l -0.421875,0.1875 z m 0,0"
+ id="path4234" />
+ </g>
+ </g>
+ </g>
+ <g
+ clip-path="url(#3cea3902db)"
+ id="g4244"
+ transform="translate(-69.242111,-250.64609)">
+ <path
+ fill="#ffffff"
+ d="m 400.46484,364.71094 -7.35156,-5.36328 c -0.11328,-0.082 -0.25,-0.0899 -0.375,-0.0274 -0.0586,0.0312 -0.1875,0.125 -0.1875,0.32031 v 2.9375 c 0,0.17969 -0.14453,0.32813 -0.32031,0.32813 h -9.28516 c -0.17578,0 -0.32031,0.14844 -0.32031,0.33203 v 3.29688 c 0,0.18359 0.14453,0.33203 0.32031,0.33203 h 9.28516 c 0.17578,0 0.32031,0.14843 0.32031,0.32812 v 2.9375 c 0,0.19531 0.12891,0.28906 0.1875,0.32031 0.125,0.0664 0.26172,0.0547 0.375,-0.0273 l 7.35156,-5.36328 c 0.0781,-0.0586 0.0859,-0.14063 0.0859,-0.17578 0,-0.0352 -0.008,-0.11719 -0.0859,-0.17578"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path4242" />
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4252"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(358.72771,337.8254)"
+ id="g4250">
+ <g
+ id="g4248">
+ <path
+ d="m 6.796875,0.234375 c -2.199219,0 -3.695313,-0.601563 -4.484375,-1.8125 -0.78125,-1.21875 -1.171875,-3.21875 -1.171875,-6 0,-2.789063 0.394531,-4.773437 1.1875,-5.953125 0.789063,-1.1875 2.28125,-1.78125 4.46875,-1.78125 1.300781,0 2.738281,0.183594 4.3125,0.546875 l -0.09375,1.984375 c -1.3125,-0.238281 -2.632813,-0.359375 -3.953125,-0.359375 -1.324219,0 -2.21875,0.398437 -2.6875,1.1875 -0.46875,0.78125 -0.703125,2.257813 -0.703125,4.421875 0,2.15625 0.222656,3.632812 0.671875,4.421875 0.457031,0.78125 1.347656,1.171875 2.671875,1.171875 1.320313,0 2.65625,-0.109375 4,-0.328125 l 0.07813,2.03125 c -1.511719,0.3125 -2.945312,0.46875 -4.296875,0.46875 z m 0,0"
+ id="path4246" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4260"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(370.69358,337.8254)"
+ id="g4258">
+ <g
+ id="g4256">
+ <path
+ d="m 2.046875,-9.796875 c 0.757813,-0.957031 2.019531,-1.4375 3.78125,-1.4375 1.757813,0 3.015625,0.480469 3.765625,1.4375 0.757812,0.949219 1.140625,2.375 1.140625,4.28125 0,1.90625 -0.371094,3.34375 -1.109375,4.3125 -0.730469,0.960937 -1.996094,1.4375 -3.796875,1.4375 -1.804687,0 -3.074219,-0.476563 -3.8125,-1.4375 -0.730469,-0.96875 -1.09375,-2.40625 -1.09375,-4.3125 0,-1.90625 0.375,-3.332031 1.125,-4.28125 z M 3.84375,-2.65625 c 0.34375,0.585938 1.003906,0.875 1.984375,0.875 0.976563,0 1.632813,-0.289062 1.96875,-0.875 C 8.140625,-3.25 8.3125,-4.210938 8.3125,-5.546875 c 0,-1.332031 -0.183594,-2.273437 -0.546875,-2.828125 -0.355469,-0.5625 -1,-0.84375 -1.9375,-0.84375 -0.9375,0 -1.589844,0.28125 -1.953125,0.84375 -0.355469,0.554688 -0.53125,1.496094 -0.53125,2.828125 0,1.335937 0.164062,2.296875 0.5,2.890625 z m 0,0"
+ id="path4254" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4268"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(382.3515,337.8254)"
+ id="g4266">
+ <g
+ id="g4264">
+ <path
+ d="M 3.84375,0 H 1.453125 v -11 h 2.375 v 0.6875 c 1.070313,-0.613281 2.082031,-0.921875 3.03125,-0.921875 1.46875,0 2.46875,0.417969 3,1.25 0.539063,0.824219 0.8125,2.1875 0.8125,4.09375 V 0 h -2.375 v -5.828125 c 0,-1.1875 -0.132813,-2.03125 -0.390625,-2.53125 -0.25,-0.5 -0.773438,-0.75 -1.5625,-0.75 -0.75,0 -1.46875,0.148437 -2.15625,0.4375 L 3.84375,-8.53125 Z m 0,0"
+ id="path4262" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4276"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(394.36136,337.8254)"
+ id="g4274">
+ <g
+ id="g4272">
+ <path
+ d="m 0.421875,-11 h 2.5 L 5.03125,-2.046875 H 5.734375 L 7.9375,-11 h 2.453125 L 7.53125,0 H 3.25 Z m 0,0"
+ id="path4270" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4284"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(405.16143,337.8254)"
+ id="g4282">
+ <g
+ id="g4280">
+ <path
+ d="m 9.28125,-1.984375 0.625,-0.0625 0.03125,1.78125 c -1.667969,0.3320312 -3.148438,0.5 -4.4375,0.5 -1.625,0 -2.796875,-0.441406 -3.515625,-1.328125 -0.710937,-0.894531 -1.0625,-2.328125 -1.0625,-4.296875 0,-3.894531 1.59375,-5.84375 4.78125,-5.84375 3.070313,0 4.609375,1.679687 4.609375,5.03125 l -0.15625,1.71875 h -6.8125 c 0.00781,0.90625 0.207031,1.574219 0.59375,2 0.382812,0.429687 1.097656,0.640625 2.140625,0.640625 1.039063,0 2.109375,-0.046875 3.203125,-0.140625 z M 7.96875,-6.34375 c 0,-1.082031 -0.171875,-1.835938 -0.515625,-2.265625 -0.34375,-0.4375 -0.929687,-0.65625 -1.75,-0.65625 -0.824219,0 -1.421875,0.230469 -1.796875,0.6875 -0.375,0.460937 -0.570312,1.203125 -0.578125,2.234375 z m 0,0"
+ id="path4278" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4292"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(416.33545,337.8254)"
+ id="g4290">
+ <g
+ id="g4288">
+ <path
+ d="m 1.453125,0 v -11 h 2.375 v 1.3125 c 1.25,-0.800781 2.492187,-1.316406 3.734375,-1.546875 v 2.390625 c -1.261719,0.25 -2.339844,0.574219 -3.234375,0.96875 L 3.84375,-7.671875 V 0 Z m 0,0"
+ id="path4286" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4300"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(424.27603,337.8254)"
+ id="g4298">
+ <g
+ id="g4296">
+ <path
+ d="M 7.375,-8.953125 H 4.328125 v 4.84375 c 0,0.898437 0.066406,1.492187 0.203125,1.78125 0.132812,0.292969 0.472656,0.4375 1.015625,0.4375 l 1.796875,-0.0625 0.109375,1.90625 c -0.980469,0.1875 -1.726563,0.28125 -2.234375,0.28125 -1.25,0 -2.109375,-0.28125 -2.578125,-0.84375 -0.460937,-0.570313 -0.6875,-1.648437 -0.6875,-3.234375 V -8.953125 H 0.546875 V -11 h 1.40625 v -3.1875 h 2.375 V -11 H 7.375 Z m 0,0"
+ id="path4294" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4308"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(432.15063,337.8254)"
+ id="g4306">
+ <g
+ id="g4304">
+ <path
+ d="m 9.28125,-1.984375 0.625,-0.0625 0.03125,1.78125 c -1.667969,0.3320312 -3.148438,0.5 -4.4375,0.5 -1.625,0 -2.796875,-0.441406 -3.515625,-1.328125 -0.710937,-0.894531 -1.0625,-2.328125 -1.0625,-4.296875 0,-3.894531 1.59375,-5.84375 4.78125,-5.84375 3.070313,0 4.609375,1.679687 4.609375,5.03125 l -0.15625,1.71875 h -6.8125 c 0.00781,0.90625 0.207031,1.574219 0.59375,2 0.382812,0.429687 1.097656,0.640625 2.140625,0.640625 1.039063,0 2.109375,-0.046875 3.203125,-0.140625 z M 7.96875,-6.34375 c 0,-1.082031 -0.171875,-1.835938 -0.515625,-2.265625 -0.34375,-0.4375 -0.929687,-0.65625 -1.75,-0.65625 -0.824219,0 -1.421875,0.230469 -1.796875,0.6875 -0.375,0.460937 -0.570312,1.203125 -0.578125,2.234375 z m 0,0"
+ id="path4302" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4316"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(443.32464,337.8254)"
+ id="g4314">
+ <g
+ id="g4312">
+ <path
+ d="m 1.453125,0 v -11 h 2.375 v 1.3125 c 1.25,-0.800781 2.492187,-1.316406 3.734375,-1.546875 v 2.390625 c -1.261719,0.25 -2.339844,0.574219 -3.234375,0.96875 L 3.84375,-7.671875 V 0 Z m 0,0"
+ id="path4310" />
+ </g>
+ </g>
+ </g>
+ <path
+ fill="#41cb51"
+ d="m 256.85164,314.90078 v -77.19921 c 0,-0.9336 0.0898,-1.85938 0.27344,-2.77344 0.17968,-0.91406 0.44922,-1.80469 0.80468,-2.66406 0.35547,-0.86329 0.79297,-1.6836 1.3086,-2.45704 0.51562,-0.77734 1.10547,-1.49218 1.76172,-2.15234 0.65625,-0.66016 1.37109,-1.25 2.14453,-1.76953 0.77344,-0.51563 1.58984,-0.95313 2.44922,-1.3125 0.85937,-0.35547 1.74218,-0.625 2.65625,-0.80859 0.91015,-0.17969 1.83203,-0.27344 2.76172,-0.27344 h 129.44531 c 0.92969,0 1.85156,0.0937 2.76172,0.27344 0.91406,0.18359 1.79687,0.45312 2.65625,0.80859 0.85937,0.35937 1.67578,0.79687 2.44922,1.3125 0.77343,0.51953 1.48828,1.10937 2.14453,1.76953 0.66015,0.66016 1.24609,1.375 1.76172,2.15234 0.51562,0.77344 0.95312,1.59375 1.30859,2.45704 0.35547,0.85937 0.625,1.75 0.80469,2.66406 0.18359,0.91406 0.27343,1.83984 0.27343,2.77344 v 77.19921 c 0,0.9336 -0.0898,1.85938 -0.27343,2.77344 -0.17969,0.91406 -0.44922,1.80078 -0.80469,2.66406 -0.35547,0.86329 -0.79297,1.67969 -1.30859,2.45704 -0.51563,0.77343 -1.10157,1.49218 -1.76172,2.15234 -0.65625,0.66016 -1.3711,1.25 -2.14453,1.76562 -0.77344,0.51954 -1.58985,0.95704 -2.44922,1.3125 -0.85938,0.35938 -1.74219,0.62891 -2.65625,0.8086 -0.91016,0.18359 -1.83203,0.27344 -2.76172,0.27344 H 271.0118 c -0.92969,0 -1.85157,-0.0899 -2.76172,-0.27344 -0.91407,-0.17969 -1.79688,-0.44922 -2.65625,-0.8086 -0.85938,-0.35546 -1.67578,-0.79296 -2.44922,-1.3125 -0.77344,-0.51562 -1.48828,-1.10546 -2.14453,-1.76562 -0.65625,-0.66016 -1.2461,-1.37891 -1.76172,-2.15234 -0.51563,-0.77735 -0.95313,-1.59375 -1.3086,-2.45704 -0.35546,-0.86328 -0.625,-1.75 -0.80468,-2.66406 -0.1836,-0.91406 -0.27344,-1.83984 -0.27344,-2.77344 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path4318" />
+ <g
+ clip-path="url(#dfab995897)"
+ id="g4322"
+ transform="translate(-69.242111,-250.64609)">
<path
- style="fill:#17a81a;fill-opacity:1;stroke:none;stroke-width:0.82824755;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- d="m 127,132.95834 0.0687,26.45833 h 63.43127 l 5.29167,-5.29167 v -26.45833 h -63.5 z"
- id="path3715-5-6-7-9-8-7"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="ccccccc" />
+ fill="#41cb51"
+ d="m 484.67187,488.34766 v 77.19531 c 0,0.98828 -0.0937,1.96484 -0.28515,2.93359 -0.19531,0.96875 -0.47656,1.90625 -0.85547,2.82031 -0.375,0.91016 -0.83594,1.77735 -1.38281,2.59766 -0.54688,0.82031 -1.16797,1.57813 -1.86328,2.27734 -0.69532,0.69532 -1.44922,1.32032 -2.26954,1.86719 -0.8164,0.54688 -1.67968,1.01172 -2.58984,1.39063 -0.90625,0.375 -1.84375,0.66015 -2.80859,0.85156 -0.96485,0.19531 -1.9375,0.28906 -2.92188,0.28906 h -129.4375 c -0.98437,0 -1.95703,-0.0937 -2.92187,-0.28906 -0.96485,-0.19141 -1.90235,-0.47656 -2.8086,-0.85156 -0.91015,-0.37891 -1.77343,-0.84375 -2.58984,-1.39063 -0.82031,-0.54687 -1.57422,-1.17187 -2.26953,-1.86719 -0.69531,-0.69921 -1.31641,-1.45703 -1.86328,-2.27734 -0.54688,-0.82031 -1.00782,-1.6875 -1.38282,-2.59766 -0.3789,-0.91406 -0.66015,-1.85156 -0.85546,-2.82031 -0.19141,-0.96875 -0.28516,-1.94531 -0.28516,-2.93359 v -77.19531 c 0,-0.98829 0.0937,-1.96485 0.28516,-2.9336 0.19531,-0.96875 0.47656,-1.90625 0.85546,-2.82031 0.375,-0.91016 0.83594,-1.77734 1.38282,-2.59766 0.54687,-0.82031 1.16797,-1.57812 1.86328,-2.27734 0.69531,-0.69531 1.44922,-1.32031 2.26953,-1.86719 0.81641,-0.54687 1.67969,-1.01172 2.58984,-1.39062 0.90625,-0.375 1.84375,-0.66016 2.8086,-0.85547 0.96484,-0.19141 1.9375,-0.28516 2.92187,-0.28516 h 129.44141 c 0.98437,0 1.95703,0.0937 2.92187,0.28906 0.96485,0.19141 1.90235,0.47657 2.8086,0.85547 0.91015,0.375 1.76953,0.83985 2.58984,1.38672 0.81641,0.55078 1.57422,1.17188 2.26953,1.8711 0.69531,0.69531 1.3125,1.45703 1.85938,2.27734 0.54687,0.82031 1.00781,1.68359 1.38281,2.59766 0.37891,0.91015 0.66406,1.84765 0.85547,2.8164 0.1914,0.96875 0.28515,1.94531 0.28515,2.9336 z m -157.76171,77.19531 c 0,0.88281 0.082,1.7539 0.2539,2.61328 0.17188,0.86328 0.42578,1.70312 0.76172,2.51562 0.33594,0.8125 0.74609,1.58204 1.23047,2.3125 0.48828,0.73438 1.04297,1.41016 1.66016,2.03125 0.62109,0.6211 1.29687,1.17579 2.02343,1.66407 0.73047,0.48828 1.5,0.90234 2.3086,1.23828 0.80859,0.33594 1.64453,0.58984 2.5039,0.76172 0.85938,0.17187 1.72657,0.25781 2.60547,0.25781 h 129.44141 c 0.875,0 1.74609,-0.0859 2.60547,-0.25781 0.85937,-0.17188 1.69531,-0.42578 2.5039,-0.76172 0.8086,-0.33594 1.57813,-0.75 2.3086,-1.23828 0.72656,-0.48828 1.40234,-1.04297 2.01953,-1.66407 0.62109,-0.62109 1.17578,-1.29687 1.66015,-2.03125 0.48829,-0.73046 0.89844,-1.5 1.23438,-2.3125 0.33594,-0.8125 0.58984,-1.65234 0.76172,-2.51562 0.16797,-0.85938 0.2539,-1.73047 0.2539,-2.61328 v -77.19531 c 0,-0.88282 -0.0859,-1.75391 -0.2539,-2.61329 -0.17188,-0.86328 -0.42578,-1.70312 -0.76172,-2.51562 -0.33594,-0.8125 -0.74609,-1.58203 -1.23438,-2.3125 -0.48437,-0.73438 -1.03906,-1.41016 -1.66015,-2.03125 -0.61719,-0.62109 -1.29297,-1.17578 -2.01953,-1.66406 -0.73047,-0.48828 -1.5,-0.90235 -2.3086,-1.23828 -0.80859,-0.33594 -1.64453,-0.58985 -2.5039,-0.76172 -0.85938,-0.17188 -1.73047,-0.25782 -2.60547,-0.25782 H 340.25781 c -0.8789,0 -1.74609,0.0859 -2.60547,0.25782 -0.85937,0.17187 -1.69531,0.42578 -2.5039,0.76172 -0.8086,0.33593 -1.57813,0.75 -2.3086,1.23828 -0.72656,0.48828 -1.40234,1.04297 -2.02343,1.66406 -0.61719,0.62109 -1.17188,1.29687 -1.66016,2.03125 -0.48438,0.73047 -0.89453,1.5 -1.23047,2.3125 -0.33594,0.8125 -0.58984,1.65234 -0.76172,2.51562 -0.17187,0.85938 -0.2539,1.73047 -0.2539,2.61329 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path4320" />
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4330"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(336.46249,547.41743)"
+ id="g4328">
+ <g
+ id="g4326">
+ <path
+ d="M 7.4375,-5.125 H 3.5625 V 0 H 1.875 v -15.21875 h 5.5625 c 1.65625,0 2.878906,0.40625 3.671875,1.21875 0.789063,0.804688 1.1875,2.03125 1.1875,3.6875 0,3.460938 -1.621094,5.1875 -4.859375,5.1875 z m -3.875,-1.5 h 3.84375 c 2.101562,0 3.15625,-1.226562 3.15625,-3.6875 0,-1.175781 -0.25,-2.039062 -0.75,-2.59375 -0.5,-0.550781 -1.304688,-0.828125 -2.40625,-0.828125 H 3.5625 Z m 0,0"
+ id="path4324" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4338"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(349.50617,547.41743)"
+ id="g4336">
+ <g
+ id="g4334">
+ <path
+ d="m 0.546875,-11 h 1.65625 l 2.75,9.5625 h 0.71875 L 8.453125,-11 H 10.09375 L 5.515625,4.890625 H 3.875 L 5.296875,0 h -1.625 z m 0,0"
+ id="path4332" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4346"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(360.13028,547.41743)"
+ id="g4344">
+ <g
+ id="g4342">
+ <path
+ d="m 7.28125,-9.5625 h -3.5 v 5.25 c 0,1.261719 0.085938,2.089844 0.265625,2.484375 0.1875,0.398437 0.628906,0.59375 1.328125,0.59375 l 1.953125,-0.125 L 7.4375,0 c -0.980469,0.15625 -1.730469,0.234375 -2.25,0.234375 -1.148438,0 -1.9375,-0.2734375 -2.375,-0.828125 -0.4375,-0.5625 -0.65625,-1.625 -0.65625,-3.1875 V -9.5625 H 0.59375 V -11 h 1.5625 v -3.359375 h 1.625 V -11 h 3.5 z m 0,0"
+ id="path4340" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4354"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(367.8509,547.41743)"
+ id="g4352">
+ <g
+ id="g4350">
+ <path
+ d="m 3.234375,0 h -1.65625 v -15.796875 h 1.65625 v 5.40625 c 1.175781,-0.550781 2.304687,-0.828125 3.390625,-0.828125 1.46875,0 2.453125,0.398438 2.953125,1.1875 0.507813,0.792969 0.765625,2.199219 0.765625,4.21875 V 0 H 8.6875 v -5.765625 c 0,-1.519531 -0.152344,-2.5625 -0.453125,-3.125 C 7.929688,-9.460938 7.300781,-9.75 6.34375,-9.75 c -0.929688,0 -1.824219,0.171875 -2.6875,0.515625 L 3.234375,-9.09375 Z m 0,0"
+ id="path4348" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4362"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(379.6628,547.41743)"
+ id="g4360">
+ <g
+ id="g4358">
+ <path
+ d="m 1.09375,-5.515625 c 0,-2.007813 0.359375,-3.460937 1.078125,-4.359375 0.71875,-0.894531 1.929687,-1.34375 3.640625,-1.34375 1.707031,0 2.914062,0.449219 3.625,1.34375 0.71875,0.898438 1.078125,2.351562 1.078125,4.359375 0,2 -0.339844,3.460937 -1.015625,4.375 -0.679688,0.90625 -1.914062,1.359375 -3.703125,1.359375 -1.78125,0 -3.011719,-0.453125 -3.6875,-1.359375 -0.679687,-0.914063 -1.015625,-2.375 -1.015625,-4.375 z m 1.703125,-0.03125 c 0,1.605469 0.191406,2.730469 0.578125,3.375 0.382812,0.648437 1.195312,0.96875 2.4375,0.96875 1.238281,0 2.050781,-0.316406 2.4375,-0.953125 0.382812,-0.644531 0.578125,-1.773438 0.578125,-3.390625 0,-1.613281 -0.214844,-2.722656 -0.640625,-3.328125 -0.429688,-0.613281 -1.21875,-0.921875 -2.375,-0.921875 -1.148438,0 -1.9375,0.308594 -2.375,0.921875 -0.429688,0.605469 -0.640625,1.714844 -0.640625,3.328125 z m 0,0"
+ id="path4356" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4370"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(391.27673,547.41743)"
+ id="g4368">
+ <g
+ id="g4366">
+ <path
+ d="M 3.234375,0 H 1.578125 V -11 H 3.21875 v 0.765625 c 1.1875,-0.65625 2.320312,-0.984375 3.40625,-0.984375 1.46875,0 2.453125,0.398438 2.953125,1.1875 0.507813,0.792969 0.765625,2.199219 0.765625,4.21875 V 0 h -1.625 v -5.765625 c 0,-1.519531 -0.152344,-2.5625 -0.453125,-3.125 C 7.960938,-9.460938 7.320312,-9.75 6.34375,-9.75 c -0.480469,0 -0.980469,0.074219 -1.5,0.21875 -0.523438,0.136719 -0.917969,0.273438 -1.1875,0.40625 l -0.421875,0.1875 z m 0,0"
+ id="path4364" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4376"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(403.08359,547.41743)"
+ id="g4374">
+ <g
+ id="g4372" />
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4382"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(407.92272,547.41743)"
+ id="g4380">
+ <g
+ id="g4378" />
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4388"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(412.76185,547.41743)"
+ id="g4386">
+ <g
+ id="g4384" />
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4394"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(417.60099,547.41743)"
+ id="g4392">
+ <g
+ id="g4390" />
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4400"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(422.44012,547.41743)"
+ id="g4398">
+ <g
+ id="g4396" />
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4406"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(427.27926,547.41743)"
+ id="g4404">
+ <g
+ id="g4402" />
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4412"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(432.11839,547.41743)"
+ id="g4410">
+ <g
+ id="g4408" />
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4420"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(436.95077,547.41743)"
+ id="g4418">
+ <g
+ id="g4416">
+ <path
+ d="M 11.0625,-0.234375 C 9.550781,0.0664062 8.191406,0.21875 6.984375,0.21875 5.785156,0.21875 4.816406,0.0546875 4.078125,-0.265625 3.335938,-0.597656 2.765625,-1.113281 2.359375,-1.8125 1.960938,-2.507812 1.6875,-3.304688 1.53125,-4.203125 c -0.15625,-0.90625 -0.234375,-2.03125 -0.234375,-3.375 0,-1.351563 0.078125,-2.488281 0.234375,-3.40625 0.15625,-0.914063 0.429688,-1.722656 0.828125,-2.421875 0.40625,-0.707031 0.972656,-1.222656 1.703125,-1.546875 0.738281,-0.320313 1.691406,-0.484375 2.859375,-0.484375 1.175781,0 2.554687,0.164062 4.140625,0.484375 L 11,-13.53125 c -1.480469,-0.257812 -2.796875,-0.390625 -3.953125,-0.390625 -1.617187,0 -2.683594,0.480469 -3.203125,1.4375 -0.523438,0.960937 -0.78125,2.601563 -0.78125,4.921875 0,1.15625 0.046875,2.089844 0.140625,2.796875 0.09375,0.699219 0.28125,1.328125 0.5625,1.890625 0.28125,0.5625 0.6875,0.96875 1.21875,1.21875 0.53125,0.242188 1.3125,0.359375 2.34375,0.359375 1.039063,0 2.265625,-0.128906 3.671875,-0.390625 z m 0,0"
+ id="path4414" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4428"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(448.91665,547.41743)"
+ id="g4426">
+ <g
+ id="g4424">
+ <path
+ d="M 1.203125,-4.78125 V -6.265625 H 5.375 V -10.5625 h 1.53125 v 4.296875 h 4.203125 V -4.78125 H 6.90625 V -0.4375 H 5.375 v -4.34375 z m 0,0"
+ id="path4422" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4436"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(461.23445,547.41743)"
+ id="g4434">
+ <g
+ id="g4432">
+ <path
+ d="M 1.203125,-4.78125 V -6.265625 H 5.375 V -10.5625 h 1.53125 v 4.296875 h 4.203125 V -4.78125 H 6.90625 V -0.4375 H 5.375 v -4.34375 z m 0,0"
+ id="path4430" />
+ </g>
+ </g>
+ </g>
+ <g
+ clip-path="url(#2d1327caba)"
+ id="g4440"
+ transform="translate(-69.242111,-250.64609)">
+ <path
+ fill="#ffffff"
+ d="m 429.78516,540.28516 -7.35157,-5.36329 c -0.10937,-0.082 -0.25,-0.0937 -0.375,-0.0273 -0.0547,0.0312 -0.1875,0.125 -0.1875,0.32031 v 2.9375 c 0,0.17969 -0.14453,0.32813 -0.32031,0.32813 h -9.28516 c -0.17578,0 -0.32031,0.14844 -0.32031,0.32812 v 3.30078 c 0,0.1836 0.14453,0.33204 0.32031,0.33204 h 9.28516 c 0.17578,0 0.32031,0.14453 0.32031,0.32812 v 2.9375 c 0,0.19531 0.13282,0.28906 0.1875,0.32031 0.125,0.0625 0.26563,0.0547 0.375,-0.0273 l 7.35157,-5.36328 c 0.0781,-0.0586 0.0898,-0.14453 0.0898,-0.17578 0,-0.0352 -0.0117,-0.11719 -0.0898,-0.17578"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path4438" />
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4448"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(358.72771,513.39871)"
+ id="g4446">
+ <g
+ id="g4444">
+ <path
+ d="m 6.796875,0.234375 c -2.199219,0 -3.695313,-0.601563 -4.484375,-1.8125 -0.78125,-1.21875 -1.171875,-3.21875 -1.171875,-6 0,-2.789063 0.394531,-4.773437 1.1875,-5.953125 0.789063,-1.1875 2.28125,-1.78125 4.46875,-1.78125 1.300781,0 2.738281,0.183594 4.3125,0.546875 l -0.09375,1.984375 c -1.3125,-0.238281 -2.632813,-0.359375 -3.953125,-0.359375 -1.324219,0 -2.21875,0.398437 -2.6875,1.1875 -0.46875,0.78125 -0.703125,2.257813 -0.703125,4.421875 0,2.15625 0.222656,3.632812 0.671875,4.421875 0.457031,0.78125 1.347656,1.171875 2.671875,1.171875 1.320313,0 2.65625,-0.109375 4,-0.328125 l 0.07813,2.03125 c -1.511719,0.3125 -2.945312,0.46875 -4.296875,0.46875 z m 0,0"
+ id="path4442" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4456"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(370.69358,513.39871)"
+ id="g4454">
+ <g
+ id="g4452">
+ <path
+ d="m 2.046875,-9.796875 c 0.757813,-0.957031 2.019531,-1.4375 3.78125,-1.4375 1.757813,0 3.015625,0.480469 3.765625,1.4375 0.757812,0.949219 1.140625,2.375 1.140625,4.28125 0,1.90625 -0.371094,3.34375 -1.109375,4.3125 -0.730469,0.960937 -1.996094,1.4375 -3.796875,1.4375 -1.804687,0 -3.074219,-0.476563 -3.8125,-1.4375 -0.730469,-0.96875 -1.09375,-2.40625 -1.09375,-4.3125 0,-1.90625 0.375,-3.332031 1.125,-4.28125 z M 3.84375,-2.65625 c 0.34375,0.585938 1.003906,0.875 1.984375,0.875 0.976563,0 1.632813,-0.289062 1.96875,-0.875 C 8.140625,-3.25 8.3125,-4.210938 8.3125,-5.546875 c 0,-1.332031 -0.183594,-2.273437 -0.546875,-2.828125 -0.355469,-0.5625 -1,-0.84375 -1.9375,-0.84375 -0.9375,0 -1.589844,0.28125 -1.953125,0.84375 -0.355469,0.554688 -0.53125,1.496094 -0.53125,2.828125 0,1.335937 0.164062,2.296875 0.5,2.890625 z m 0,0"
+ id="path4450" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4464"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(382.3515,513.39871)"
+ id="g4462">
+ <g
+ id="g4460">
+ <path
+ d="M 3.84375,0 H 1.453125 v -11 h 2.375 v 0.6875 c 1.070313,-0.613281 2.082031,-0.921875 3.03125,-0.921875 1.46875,0 2.46875,0.417969 3,1.25 0.539063,0.824219 0.8125,2.1875 0.8125,4.09375 V 0 h -2.375 v -5.828125 c 0,-1.1875 -0.132813,-2.03125 -0.390625,-2.53125 -0.25,-0.5 -0.773438,-0.75 -1.5625,-0.75 -0.75,0 -1.46875,0.148437 -2.15625,0.4375 L 3.84375,-8.53125 Z m 0,0"
+ id="path4458" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4472"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(394.36136,513.39871)"
+ id="g4470">
+ <g
+ id="g4468">
+ <path
+ d="m 0.421875,-11 h 2.5 L 5.03125,-2.046875 H 5.734375 L 7.9375,-11 h 2.453125 L 7.53125,0 H 3.25 Z m 0,0"
+ id="path4466" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4480"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(405.16143,513.39871)"
+ id="g4478">
+ <g
+ id="g4476">
+ <path
+ d="m 9.28125,-1.984375 0.625,-0.0625 0.03125,1.78125 c -1.667969,0.3320312 -3.148438,0.5 -4.4375,0.5 -1.625,0 -2.796875,-0.441406 -3.515625,-1.328125 -0.710937,-0.894531 -1.0625,-2.328125 -1.0625,-4.296875 0,-3.894531 1.59375,-5.84375 4.78125,-5.84375 3.070313,0 4.609375,1.679687 4.609375,5.03125 l -0.15625,1.71875 h -6.8125 c 0.00781,0.90625 0.207031,1.574219 0.59375,2 0.382812,0.429687 1.097656,0.640625 2.140625,0.640625 1.039063,0 2.109375,-0.046875 3.203125,-0.140625 z M 7.96875,-6.34375 c 0,-1.082031 -0.171875,-1.835938 -0.515625,-2.265625 -0.34375,-0.4375 -0.929687,-0.65625 -1.75,-0.65625 -0.824219,0 -1.421875,0.230469 -1.796875,0.6875 -0.375,0.460937 -0.570312,1.203125 -0.578125,2.234375 z m 0,0"
+ id="path4474" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4488"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(416.33545,513.39871)"
+ id="g4486">
+ <g
+ id="g4484">
+ <path
+ d="m 1.453125,0 v -11 h 2.375 v 1.3125 c 1.25,-0.800781 2.492187,-1.316406 3.734375,-1.546875 v 2.390625 c -1.261719,0.25 -2.339844,0.574219 -3.234375,0.96875 L 3.84375,-7.671875 V 0 Z m 0,0"
+ id="path4482" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4496"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(424.27603,513.39871)"
+ id="g4494">
+ <g
+ id="g4492">
+ <path
+ d="M 7.375,-8.953125 H 4.328125 v 4.84375 c 0,0.898437 0.066406,1.492187 0.203125,1.78125 0.132812,0.292969 0.472656,0.4375 1.015625,0.4375 l 1.796875,-0.0625 0.109375,1.90625 c -0.980469,0.1875 -1.726563,0.28125 -2.234375,0.28125 -1.25,0 -2.109375,-0.28125 -2.578125,-0.84375 -0.460937,-0.570313 -0.6875,-1.648437 -0.6875,-3.234375 V -8.953125 H 0.546875 V -11 h 1.40625 v -3.1875 h 2.375 V -11 H 7.375 Z m 0,0"
+ id="path4490" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4504"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(432.15063,513.39871)"
+ id="g4502">
+ <g
+ id="g4500">
+ <path
+ d="m 9.28125,-1.984375 0.625,-0.0625 0.03125,1.78125 c -1.667969,0.3320312 -3.148438,0.5 -4.4375,0.5 -1.625,0 -2.796875,-0.441406 -3.515625,-1.328125 -0.710937,-0.894531 -1.0625,-2.328125 -1.0625,-4.296875 0,-3.894531 1.59375,-5.84375 4.78125,-5.84375 3.070313,0 4.609375,1.679687 4.609375,5.03125 l -0.15625,1.71875 h -6.8125 c 0.00781,0.90625 0.207031,1.574219 0.59375,2 0.382812,0.429687 1.097656,0.640625 2.140625,0.640625 1.039063,0 2.109375,-0.046875 3.203125,-0.140625 z M 7.96875,-6.34375 c 0,-1.082031 -0.171875,-1.835938 -0.515625,-2.265625 -0.34375,-0.4375 -0.929687,-0.65625 -1.75,-0.65625 -0.824219,0 -1.421875,0.230469 -1.796875,0.6875 -0.375,0.460937 -0.570312,1.203125 -0.578125,2.234375 z m 0,0"
+ id="path4498" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4512"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(443.32464,513.39871)"
+ id="g4510">
+ <g
+ id="g4508">
+ <path
+ d="m 1.453125,0 v -11 h 2.375 v 1.3125 c 1.25,-0.800781 2.492187,-1.316406 3.734375,-1.546875 v 2.390625 c -1.261719,0.25 -2.339844,0.574219 -3.234375,0.96875 L 3.84375,-7.671875 V 0 Z m 0,0"
+ id="path4506" />
+ </g>
+ </g>
+ </g>
+ <g
+ clip-path="url(#f03e985e13)"
+ id="g4516"
+ transform="translate(-69.242111,-250.64609)">
+ <path
+ fill="#09102b"
+ d="m 113.46875,378.90234 v -55.07031 c 0,-0.66406 0.0625,-1.32422 0.19141,-1.97656 0.13281,-0.65235 0.32422,-1.28516 0.57812,-1.89844 0.25391,-0.61719 0.5625,-1.19922 0.9336,-1.75391 0.36718,-0.55468 0.78515,-1.0664 1.2539,-1.53515 0.46875,-0.46875 0.98047,-0.89063 1.53125,-1.26172 0.55469,-0.36719 1.13672,-0.67969 1.75,-0.93359 0.60938,-0.25782 1.24219,-0.44922 1.89453,-0.57813 0.64844,-0.12891 1.3086,-0.19531 1.96875,-0.19531 h 92.375 c 0.66016,0 1.32031,0.0664 1.96875,0.19531 0.65235,0.12891 1.28516,0.32031 1.89453,0.57813 0.61328,0.2539 1.19532,0.5664 1.75,0.93359 0.55078,0.37109 1.0625,0.79297 1.53125,1.26172 0.46875,0.46875 0.88672,0.98047 1.25391,1.53515 0.37109,0.55469 0.67969,1.13672 0.93359,1.75391 0.25391,0.61328 0.44532,1.24609 0.57813,1.89844 0.1289,0.65234 0.1914,1.3125 0.1914,1.97656 v 55.07031 c 0,0.66407 -0.0625,1.32422 -0.1914,1.97657 -0.13281,0.65234 -0.32422,1.28515 -0.57813,1.89843 -0.2539,0.61719 -0.5625,1.19922 -0.93359,1.75391 -0.36719,0.55469 -0.78516,1.06641 -1.25391,1.53516 -0.46875,0.46875 -0.98047,0.89062 -1.53125,1.26171 -0.55468,0.36719 -1.13672,0.67969 -1.75,0.9336 -0.60937,0.25781 -1.24218,0.44922 -1.89453,0.57812 -0.64844,0.12891 -1.30859,0.19532 -1.96875,0.19532 h -92.375 c -0.66015,0 -1.32031,-0.0664 -1.96875,-0.19532 -0.65234,-0.1289 -1.28515,-0.32031 -1.89453,-0.57812 -0.61328,-0.25391 -1.19531,-0.56641 -1.75,-0.9336 -0.55078,-0.37109 -1.0625,-0.79296 -1.53125,-1.26171 -0.46875,-0.46875 -0.88672,-0.98047 -1.2539,-1.53516 -0.3711,-0.55469 -0.67969,-1.13672 -0.9336,-1.75391 -0.2539,-0.61328 -0.44531,-1.24609 -0.57812,-1.89843 -0.12891,-0.65235 -0.19141,-1.3125 -0.19141,-1.97657 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path4514" />
+ </g>
+ <g
+ clip-path="url(#c71ef1b2fa)"
+ id="g4520"
+ transform="translate(-69.242111,-250.64609)">
+ <path
+ fill="#09102b"
+ d="m 226.62891,323.83203 v 55.06641 c 0,0.70312 -0.0703,1.40234 -0.20704,2.08984 -0.13671,0.69141 -0.33984,1.36328 -0.60546,2.01172 -0.26954,0.65234 -0.59766,1.26953 -0.98829,1.85156 -0.39062,0.58594 -0.83203,1.12891 -1.32812,1.625 -0.49609,0.5 -1.03906,0.94141 -1.62109,1.33594 -0.58204,0.39062 -1.19922,0.71875 -1.84766,0.98828 -0.64844,0.26953 -1.31641,0.47266 -2.00391,0.60938 -0.6875,0.13671 -1.38281,0.20703 -2.08593,0.20703 h -92.36719 c -0.70313,0 -1.39844,-0.0703 -2.08594,-0.20703 -0.6875,-0.13672 -1.35547,-0.33985 -2.0039,-0.60938 -0.64844,-0.26953 -1.26563,-0.59766 -1.84766,-0.98828 -0.58203,-0.39453 -1.125,-0.83594 -1.62109,-1.33594 -0.4961,-0.49609 -0.9375,-1.03906 -1.32813,-1.625 -0.39062,-0.58203 -0.71875,-1.19922 -0.98828,-1.85156 -0.26563,-0.64844 -0.46875,-1.32031 -0.60547,-2.01172 -0.13672,-0.6875 -0.20703,-1.38672 -0.20703,-2.08984 v -55.06641 c 0,-0.70312 0.0703,-1.39844 0.20703,-2.08984 0.13672,-0.69141 0.33984,-1.35938 0.60547,-2.01172 0.26953,-0.64844 0.59766,-1.26563 0.98828,-1.85156 0.39063,-0.58594 0.83203,-1.125 1.32813,-1.625 0.49609,-0.4961 1.03906,-0.94141 1.62109,-1.33204 0.58203,-0.39062 1.19922,-0.72265 1.84766,-0.99218 0.64843,-0.26953 1.3164,-0.47266 2.0039,-0.60938 0.6875,-0.13672 1.38281,-0.20703 2.08594,-0.20703 h 92.37109 c 0.69922,0 1.39453,0.0703 2.08203,0.20703 0.6875,0.13672 1.35547,0.33985 2.00391,0.60938 0.64844,0.26953 1.26562,0.60156 1.84766,0.99218 0.58593,0.39063 1.125,0.83594 1.62109,1.33204 0.49609,0.5 0.9375,1.03906 1.32812,1.625 0.39063,0.58593 0.71875,1.20312 0.98829,1.85156 0.26562,0.65234 0.46875,1.32031 0.60546,2.01172 0.13672,0.6914 0.20704,1.38672 0.20704,2.08984 z m -112.58203,55.06641 c 0,0.6289 0.0625,1.25 0.18359,1.86328 0.125,0.61719 0.30469,1.21484 0.54297,1.79297 0.23828,0.57812 0.53125,1.1289 0.8789,1.65234 0.34766,0.51953 0.74219,1.00391 1.1875,1.44531 0.44141,0.44532 0.92188,0.83985 1.44141,1.19141 0.51953,0.34766 1.07031,0.64062 1.64844,0.88281 0.57812,0.23828 1.17187,0.41797 1.78515,0.54297 0.61329,0.12109 1.23438,0.18359 1.85938,0.18359 h 92.37109 c 0.625,0 1.24219,-0.0625 1.85547,-0.18359 0.61328,-0.125 1.21094,-0.30469 1.78906,-0.54297 0.57813,-0.24219 1.125,-0.53515 1.64453,-0.88281 0.52344,-0.35156 1.00391,-0.74609 1.44532,-1.19141 0.4414,-0.4414 0.83593,-0.92578 1.18359,-1.44531 0.34766,-0.52344 0.64063,-1.07422 0.88281,-1.65234 0.23828,-0.57813 0.41797,-1.17578 0.53907,-1.79297 0.125,-0.61328 0.18359,-1.23438 0.18359,-1.86328 v -55.06641 c 0,-0.625 -0.0586,-1.24609 -0.18359,-1.86328 -0.1211,-0.61328 -0.30079,-1.21094 -0.53907,-1.79297 -0.24218,-0.57812 -0.53515,-1.12891 -0.88281,-1.64844 -0.34766,-0.52343 -0.74219,-1.0039 -1.18359,-1.44922 -0.44141,-0.44531 -0.92188,-0.83984 -1.44532,-1.1875 -0.51953,-0.34765 -1.0664,-0.64453 -1.64453,-0.88281 -0.57812,-0.24219 -1.17578,-0.42187 -1.78906,-0.54297 -0.61328,-0.125 -1.23047,-0.18359 -1.85547,-0.18359 h -92.37109 c -0.625,0 -1.24609,0.0586 -1.85938,0.18359 -0.61328,0.1211 -1.20703,0.30078 -1.78515,0.54297 -0.57813,0.23828 -1.12891,0.53516 -1.64844,0.88281 -0.51953,0.34766 -1,0.74219 -1.44141,1.1875 -0.44531,0.44532 -0.83984,0.92579 -1.1875,1.44922 -0.34765,0.51953 -0.64062,1.07032 -0.8789,1.64844 -0.23828,0.58203 -0.41797,1.17969 -0.54297,1.79297 -0.12109,0.61719 -0.18359,1.23828 -0.18359,1.86328 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path4518" />
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4528"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(126.50046,359.41913)"
+ id="g4526">
+ <g
+ id="g4524">
+ <path
+ d="M 11.0625,-0.234375 C 9.550781,0.0664062 8.191406,0.21875 6.984375,0.21875 5.785156,0.21875 4.816406,0.0546875 4.078125,-0.265625 3.335938,-0.597656 2.765625,-1.113281 2.359375,-1.8125 1.960938,-2.507812 1.6875,-3.304688 1.53125,-4.203125 c -0.15625,-0.90625 -0.234375,-2.03125 -0.234375,-3.375 0,-1.351563 0.078125,-2.488281 0.234375,-3.40625 0.15625,-0.914063 0.429688,-1.722656 0.828125,-2.421875 0.40625,-0.707031 0.972656,-1.222656 1.703125,-1.546875 0.738281,-0.320313 1.691406,-0.484375 2.859375,-0.484375 1.175781,0 2.554687,0.164062 4.140625,0.484375 L 11,-13.53125 c -1.480469,-0.257812 -2.796875,-0.390625 -3.953125,-0.390625 -1.617187,0 -2.683594,0.480469 -3.203125,1.4375 -0.523438,0.960937 -0.78125,2.601563 -0.78125,4.921875 0,1.15625 0.046875,2.089844 0.140625,2.796875 0.09375,0.699219 0.28125,1.328125 0.5625,1.890625 0.28125,0.5625 0.6875,0.96875 1.21875,1.21875 0.53125,0.242188 1.3125,0.359375 2.34375,0.359375 1.039063,0 2.265625,-0.128906 3.671875,-0.390625 z m 0,0"
+ id="path4522" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4536"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(138.46633,359.41913)"
+ id="g4534">
+ <g
+ id="g4532">
+ <path
+ d="M 1.203125,-4.78125 V -6.265625 H 5.375 V -10.5625 h 1.53125 v 4.296875 h 4.203125 V -4.78125 H 6.90625 V -0.4375 H 5.375 v -4.34375 z m 0,0"
+ id="path4530" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4544"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(150.78413,359.41913)"
+ id="g4542">
+ <g
+ id="g4540">
+ <path
+ d="M 1.203125,-4.78125 V -6.265625 H 5.375 V -10.5625 h 1.53125 v 4.296875 h 4.203125 V -4.78125 H 6.90625 V -0.4375 H 5.375 v -4.34375 z m 0,0"
+ id="path4538" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4550"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(163.10194,359.41913)"
+ id="g4548">
+ <g
+ id="g4546" />
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4558"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(167.94108,359.41913)"
+ id="g4556">
+ <g
+ id="g4554">
+ <path
+ d="m 0.28125,-13.703125 v -1.515625 h 11 v 1.515625 H 6.640625 V 0 H 4.96875 v -13.703125 z m 0,0"
+ id="path4552" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4566"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(179.51102,359.41913)"
+ id="g4564">
+ <g
+ id="g4562">
+ <path
+ d="m 0.546875,-11 h 1.65625 l 2.75,9.5625 h 0.71875 L 8.453125,-11 H 10.09375 L 5.515625,4.890625 H 3.875 L 5.296875,0 h -1.625 z m 0,0"
+ id="path4560" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4574"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(190.13512,359.41913)"
+ id="g4572">
+ <g
+ id="g4570">
+ <path
+ d="M 1.578125,4.890625 V -11 H 3.21875 v 0.796875 c 1.113281,-0.675781 2.210938,-1.015625 3.296875,-1.015625 1.394531,0 2.40625,0.445312 3.03125,1.328125 C 10.179688,-9.003906 10.5,-7.539062 10.5,-5.5 c 0,2.042969 -0.375,3.507812 -1.125,4.390625 -0.742188,0.886719 -1.964844,1.328125 -3.671875,1.328125 -0.898437,0 -1.71875,-0.078125 -2.46875,-0.234375 v 4.90625 z M 6.265625,-9.75 c -0.4375,0 -0.914063,0.074219 -1.421875,0.21875 -0.5,0.148438 -0.898438,0.292969 -1.1875,0.4375 l -0.421875,0.234375 v 7.40625 c 1.039063,0.167969 1.832031,0.25 2.375,0.25 1.1875,0 2.019531,-0.335937 2.5,-1.015625 0.476563,-0.675781 0.71875,-1.773438 0.71875,-3.296875 0,-1.53125 -0.21875,-2.617187 -0.65625,-3.265625 C 7.742188,-9.425781 7.109375,-9.75 6.265625,-9.75 Z m 0,0"
+ id="path4568" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4582"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(201.72705,359.41913)"
+ id="g4580">
+ <g
+ id="g4578">
+ <path
+ d="M 9.0625,-1.359375 9.703125,-1.4375 9.75,-0.125 C 8.070312,0.101562 6.640625,0.21875 5.453125,0.21875 c -1.585937,0 -2.710937,-0.457031 -3.375,-1.375 C 1.421875,-2.070312 1.09375,-3.5 1.09375,-5.4375 c 0,-3.851562 1.535156,-5.78125 4.609375,-5.78125 1.476563,0 2.582031,0.417969 3.3125,1.25 0.738281,0.824219 1.109375,2.121094 1.109375,3.890625 L 10.03125,-4.8125 H 2.765625 c 0,1.21875 0.21875,2.121094 0.65625,2.703125 0.445313,0.585937 1.21875,0.875 2.3125,0.875 1.09375,0 2.203125,-0.039063 3.328125,-0.125 z m -0.59375,-4.78125 c 0,-1.34375 -0.21875,-2.289063 -0.65625,-2.84375 -0.429688,-0.5625 -1.132812,-0.84375 -2.109375,-0.84375 -0.96875,0 -1.703125,0.292969 -2.203125,0.875 -0.492188,0.585937 -0.742188,1.523437 -0.75,2.8125 z m 0,0"
+ id="path4576" />
+ </g>
+ </g>
+ </g>
+ <path
+ fill="#09102b"
+ d="m 524.81258,303.82657 v -55.06641 c 0,-0.66406 0.0664,-1.32422 0.19531,-1.97656 0.12891,-0.65235 0.32031,-1.28516 0.57422,-1.90235 0.2539,-0.61328 0.5664,-1.19531 0.93359,-1.75 0.3711,-0.55468 0.78906,-1.0664 1.25781,-1.53515 0.46875,-0.47266 0.98047,-0.89063 1.53125,-1.26172 0.55079,-0.3711 1.13282,-0.67969 1.7461,-0.9375 0.61328,-0.25391 1.24609,-0.44531 1.89453,-0.57422 0.65234,-0.12891 1.30859,-0.19531 1.97266,-0.19531 h 92.37109 c 0.66406,0 1.32031,0.0664 1.97266,0.19531 0.64843,0.12891 1.28125,0.32031 1.89453,0.57422 0.61328,0.25781 1.19531,0.5664 1.74609,0.9375 0.55469,0.37109 1.0625,0.78906 1.53125,1.26172 0.46875,0.46875 0.89063,0.98047 1.25781,1.53515 0.36719,0.55469 0.67969,1.13672 0.9336,1.75 0.2539,0.61719 0.44531,1.25 0.57422,1.90235 0.1289,0.65234 0.19531,1.3125 0.19531,1.97656 v 55.06641 c 0,0.66796 -0.0664,1.32421 -0.19531,1.97656 -0.12891,0.65625 -0.32032,1.28906 -0.57422,1.90234 -0.25391,0.61328 -0.56641,1.19922 -0.9336,1.75391 -0.36718,0.55078 -0.78906,1.0625 -1.25781,1.53515 -0.46875,0.46875 -0.97656,0.89063 -1.53125,1.25782 -0.55078,0.37109 -1.13281,0.68359 -1.74609,0.9375 -0.61328,0.2539 -1.2461,0.44922 -1.89453,0.57812 -0.65235,0.12891 -1.3086,0.19531 -1.97266,0.19531 h -92.37109 c -0.66407,0 -1.32032,-0.0664 -1.97266,-0.19531 -0.64844,-0.1289 -1.28125,-0.32422 -1.89453,-0.57812 -0.61328,-0.25391 -1.19531,-0.56641 -1.7461,-0.9375 -0.55078,-0.36719 -1.0625,-0.78907 -1.53125,-1.25782 -0.46875,-0.47265 -0.88671,-0.98437 -1.25781,-1.53515 -0.36719,-0.55469 -0.67969,-1.14063 -0.93359,-1.75391 -0.25391,-0.61328 -0.44531,-1.24609 -0.57422,-1.90234 -0.12891,-0.65235 -0.19531,-1.3086 -0.19531,-1.97656 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path4584" />
+ <g
+ clip-path="url(#3bddcdf684)"
+ id="g4588"
+ transform="translate(-69.242111,-250.64609)">
<path
- style="fill:#3a4055;fill-opacity:1;stroke:none;stroke-width:0.67261654;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- d="m 68.791667,132.95834 v 26.45833 H 105.83333 L 111.125,154.125 V 127.66667 H 74.083333 Z"
- id="path3715-5-6-7-9-8-7-6-3"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="ccccccc" />
+ fill="#09102b"
+ d="m 707.21875,499.40625 v 55.06641 c 0,0.70312 -0.0703,1.39843 -0.20703,2.08984 -0.13672,0.69141 -0.33985,1.35937 -0.60938,2.01172 -0.26562,0.64844 -0.59765,1.26562 -0.98828,1.85156 -0.38672,0.58594 -0.83203,1.12891 -1.32812,1.625 -0.4961,0.49609 -1.03516,0.94141 -1.61719,1.33203 -0.58594,0.39063 -1.19922,0.72266 -1.84766,0.99219 -0.64843,0.26953 -1.3164,0.47266 -2.00781,0.60937 -0.6875,0.13672 -1.38281,0.20704 -2.08203,0.20704 h -92.36719 c -0.70312,0 -1.39844,-0.0703 -2.08594,-0.20704 -0.6875,-0.13671 -1.35546,-0.33984 -2.0039,-0.60937 -0.64844,-0.26953 -1.26563,-0.60156 -1.84766,-0.99219 -0.58594,-0.39062 -1.125,-0.83594 -1.62109,-1.33203 -0.4961,-0.49609 -0.9375,-1.03906 -1.32813,-1.625 -0.39062,-0.58594 -0.71875,-1.20312 -0.98828,-1.85156 -0.26953,-0.65235 -0.47265,-1.32031 -0.60937,-2.01172 -0.13672,-0.69141 -0.20313,-1.38672 -0.20313,-2.08984 v -55.06641 c 0,-0.70313 0.0664,-1.39844 0.20313,-2.08984 0.13672,-0.69141 0.33984,-1.35938 0.60937,-2.01172 0.26953,-0.64844 0.59766,-1.26953 0.98828,-1.85157 0.39063,-0.58593 0.83203,-1.1289 1.32813,-1.625 0.49609,-0.5 1.03515,-0.9414 1.62109,-1.33203 0.58203,-0.39062 1.19922,-0.72265 1.84766,-0.99218 0.64844,-0.26954 1.3164,-0.47266 2.0039,-0.60938 0.6875,-0.13672 1.38282,-0.20703 2.08594,-0.20703 h 92.36719 c 0.70312,0 1.39844,0.0703 2.08594,0.20703 0.6875,0.13672 1.35547,0.33984 2.0039,0.60938 0.64844,0.26953 1.26563,0.60156 1.84766,0.99218 0.58203,0.39063 1.12109,0.83594 1.61719,1.33203 0.49609,0.4961 0.9414,1.03907 1.33203,1.625 0.38672,0.58594 0.71875,1.20313 0.98437,1.85157 0.26953,0.65234 0.47266,1.32031 0.60938,2.01172 0.13672,0.6914 0.20703,1.38671 0.20703,2.08984 z m -112.58203,55.06641 c 0,0.625 0.0625,1.24609 0.18359,1.86328 0.1211,0.61328 0.30078,1.21093 0.54297,1.79297 0.23828,0.57812 0.53125,1.1289 0.87891,1.65234 0.34765,0.51953 0.74218,1.00391 1.18359,1.44531 0.44531,0.44531 0.92578,0.83985 1.44531,1.1875 0.51953,0.35156 1.06641,0.64453 1.64453,0.88281 0.57813,0.24219 1.17579,0.42188 1.78907,0.54297 0.61328,0.125 1.23047,0.1836 1.85937,0.1836 h 92.36719 c 0.625,0 1.24609,-0.0586 1.85937,-0.1836 0.61329,-0.12109 1.20704,-0.30078 1.78516,-0.54297 0.57813,-0.23828 1.12891,-0.53125 1.64844,-0.88281 0.51953,-0.34765 1,-0.74219 1.44531,-1.1875 0.44141,-0.4414 0.83594,-0.92578 1.18359,-1.44531 0.34766,-0.52344 0.64063,-1.07422 0.87891,-1.65234 0.23828,-0.58204 0.42188,-1.17969 0.54297,-1.79297 0.12109,-0.61719 0.18359,-1.23828 0.18359,-1.86328 v -55.06641 c 0,-0.625 -0.0625,-1.24609 -0.18359,-1.86328 -0.12109,-0.61328 -0.30469,-1.21094 -0.54297,-1.79297 -0.23828,-0.57813 -0.53125,-1.12891 -0.87891,-1.65234 -0.34765,-0.51954 -0.74218,-1.00391 -1.18359,-1.44532 -0.44531,-0.44531 -0.92578,-0.83984 -1.44531,-1.1875 -0.51953,-0.35156 -1.07031,-0.64453 -1.64844,-0.88281 -0.57812,-0.24219 -1.17187,-0.42187 -1.78516,-0.54687 -0.61328,-0.1211 -1.23437,-0.1836 -1.85937,-0.1836 h -92.36719 c -0.6289,0 -1.24609,0.0625 -1.85937,0.1836 -0.61328,0.125 -1.21094,0.30468 -1.78907,0.54687 -0.57812,0.23828 -1.125,0.53125 -1.64453,0.88281 -0.51953,0.34766 -1,0.74219 -1.44531,1.1875 -0.44141,0.44141 -0.83594,0.92578 -1.18359,1.44532 -0.34766,0.52343 -0.64063,1.07421 -0.87891,1.65234 -0.24219,0.58203 -0.42187,1.17969 -0.54297,1.79297 -0.12109,0.61719 -0.18359,1.23828 -0.18359,1.86328 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path4586" />
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4596"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(607.08883,534.99247)"
+ id="g4594">
+ <g
+ id="g4592">
+ <path
+ d="M 11.0625,-0.234375 C 9.550781,0.0664062 8.191406,0.21875 6.984375,0.21875 5.785156,0.21875 4.816406,0.0546875 4.078125,-0.265625 3.335938,-0.597656 2.765625,-1.113281 2.359375,-1.8125 1.960938,-2.507812 1.6875,-3.304688 1.53125,-4.203125 c -0.15625,-0.90625 -0.234375,-2.03125 -0.234375,-3.375 0,-1.351563 0.078125,-2.488281 0.234375,-3.40625 0.15625,-0.914063 0.429688,-1.722656 0.828125,-2.421875 0.40625,-0.707031 0.972656,-1.222656 1.703125,-1.546875 0.738281,-0.320313 1.691406,-0.484375 2.859375,-0.484375 1.175781,0 2.554687,0.164062 4.140625,0.484375 L 11,-13.53125 c -1.480469,-0.257812 -2.796875,-0.390625 -3.953125,-0.390625 -1.617187,0 -2.683594,0.480469 -3.203125,1.4375 -0.523438,0.960937 -0.78125,2.601563 -0.78125,4.921875 0,1.15625 0.046875,2.089844 0.140625,2.796875 0.09375,0.699219 0.28125,1.328125 0.5625,1.890625 0.28125,0.5625 0.6875,0.96875 1.21875,1.21875 0.53125,0.242188 1.3125,0.359375 2.34375,0.359375 1.039063,0 2.265625,-0.128906 3.671875,-0.390625 z m 0,0"
+ id="path4590" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4604"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(619.0547,534.99247)"
+ id="g4602">
+ <g
+ id="g4600">
+ <path
+ d="M 1.203125,-4.78125 V -6.265625 H 5.375 V -10.5625 h 1.53125 v 4.296875 h 4.203125 V -4.78125 H 6.90625 V -0.4375 H 5.375 v -4.34375 z m 0,0"
+ id="path4598" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4612"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(631.37251,534.99247)"
+ id="g4610">
+ <g
+ id="g4608">
+ <path
+ d="M 1.203125,-4.78125 V -6.265625 H 5.375 V -10.5625 h 1.53125 v 4.296875 h 4.203125 V -4.78125 H 6.90625 V -0.4375 H 5.375 v -4.34375 z m 0,0"
+ id="path4606" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4618"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(643.69031,534.99247)"
+ id="g4616">
+ <g
+ id="g4614" />
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4626"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(648.52945,534.99247)"
+ id="g4624">
+ <g
+ id="g4622">
+ <path
+ d="m 0.28125,-13.703125 v -1.515625 h 11 v 1.515625 H 6.640625 V 0 H 4.96875 v -13.703125 z m 0,0"
+ id="path4620" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4634"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(660.09939,534.99247)"
+ id="g4632">
+ <g
+ id="g4630">
+ <path
+ d="m 0.546875,-11 h 1.65625 l 2.75,9.5625 h 0.71875 L 8.453125,-11 H 10.09375 L 5.515625,4.890625 H 3.875 L 5.296875,0 h -1.625 z m 0,0"
+ id="path4628" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4642"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(670.72349,534.99247)"
+ id="g4640">
+ <g
+ id="g4638">
+ <path
+ d="M 1.578125,4.890625 V -11 H 3.21875 v 0.796875 c 1.113281,-0.675781 2.210938,-1.015625 3.296875,-1.015625 1.394531,0 2.40625,0.445312 3.03125,1.328125 C 10.179688,-9.003906 10.5,-7.539062 10.5,-5.5 c 0,2.042969 -0.375,3.507812 -1.125,4.390625 -0.742188,0.886719 -1.964844,1.328125 -3.671875,1.328125 -0.898437,0 -1.71875,-0.078125 -2.46875,-0.234375 v 4.90625 z M 6.265625,-9.75 c -0.4375,0 -0.914063,0.074219 -1.421875,0.21875 -0.5,0.148438 -0.898438,0.292969 -1.1875,0.4375 l -0.421875,0.234375 v 7.40625 c 1.039063,0.167969 1.832031,0.25 2.375,0.25 1.1875,0 2.019531,-0.335937 2.5,-1.015625 0.476563,-0.675781 0.71875,-1.773438 0.71875,-3.296875 0,-1.53125 -0.21875,-2.617187 -0.65625,-3.265625 C 7.742188,-9.425781 7.109375,-9.75 6.265625,-9.75 Z m 0,0"
+ id="path4636" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4650"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(682.31543,534.99247)"
+ id="g4648">
+ <g
+ id="g4646">
+ <path
+ d="M 9.0625,-1.359375 9.703125,-1.4375 9.75,-0.125 C 8.070312,0.101562 6.640625,0.21875 5.453125,0.21875 c -1.585937,0 -2.710937,-0.457031 -3.375,-1.375 C 1.421875,-2.070312 1.09375,-3.5 1.09375,-5.4375 c 0,-3.851562 1.535156,-5.78125 4.609375,-5.78125 1.476563,0 2.582031,0.417969 3.3125,1.25 0.738281,0.824219 1.109375,2.121094 1.109375,3.890625 L 10.03125,-4.8125 H 2.765625 c 0,1.21875 0.21875,2.121094 0.65625,2.703125 0.445313,0.585937 1.21875,0.875 2.3125,0.875 1.09375,0 2.203125,-0.039063 3.328125,-0.125 z m -0.59375,-4.78125 c 0,-1.34375 -0.21875,-2.289063 -0.65625,-2.84375 -0.429688,-0.5625 -1.132812,-0.84375 -2.109375,-0.84375 -0.96875,0 -1.703125,0.292969 -2.203125,0.875 -0.492188,0.585937 -0.742188,1.523437 -0.75,2.8125 z m 0,0"
+ id="path4644" />
+ </g>
+ </g>
+ </g>
+ <g
+ clip-path="url(#cd19a8dfa8)"
+ id="g4656"
+ transform="translate(-69.242111,-250.64609)">
<path
- style="fill:#848895;fill-opacity:1;stroke:none;stroke-width:0.52087492;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- d="M 58.208333,173.96875 V 185.875 h 48.947917 l 3.96875,-3.96875 V 170 H 62.177083 Z"
- id="path3715-5-6-7-9-8-7-6-56"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="ccccccc" />
+ fill="#306998"
+ d="m 588.69141,378.90234 v -55.07031 c 0,-0.66406 0.0664,-1.32422 0.19531,-1.97656 0.1289,-0.65235 0.32031,-1.28516 0.57422,-1.89844 0.2539,-0.61719 0.5664,-1.19922 0.93359,-1.75391 0.37109,-0.55468 0.78906,-1.0664 1.25781,-1.53515 0.46875,-0.46875 0.98047,-0.89063 1.53125,-1.26172 0.55078,-0.36719 1.13282,-0.67969 1.7461,-0.93359 0.61328,-0.25782 1.24609,-0.44922 1.89843,-0.57813 0.64844,-0.12891 1.30469,-0.19531 1.96875,-0.19531 h 92.3711 c 0.66406,0 1.32031,0.0664 1.97265,0.19531 0.65235,0.12891 1.28125,0.32031 1.89454,0.57813 0.61328,0.2539 1.19531,0.5664 1.74609,0.93359 0.55469,0.37109 1.0625,0.79297 1.53125,1.26172 0.46875,0.46875 0.89062,0.98047 1.25781,1.53515 0.36719,0.55469 0.67969,1.13672 0.9336,1.75391 0.2539,0.61328 0.44531,1.24609 0.57421,1.89844 0.12891,0.65234 0.19532,1.3125 0.19532,1.97656 v 55.07031 c 0,0.66407 -0.0664,1.32422 -0.19532,1.97657 -0.1289,0.65234 -0.32031,1.28515 -0.57421,1.89843 -0.25391,0.61719 -0.56641,1.19922 -0.9336,1.75391 -0.36719,0.55469 -0.78906,1.06641 -1.25781,1.53516 -0.46875,0.46875 -0.97656,0.89062 -1.53125,1.26171 -0.55078,0.36719 -1.13281,0.67969 -1.74609,0.9336 -0.61329,0.25781 -1.24219,0.44922 -1.89454,0.57812 -0.65234,0.12891 -1.30859,0.19532 -1.97265,0.19532 h -92.3711 c -0.66406,0 -1.32031,-0.0664 -1.96875,-0.19532 -0.65234,-0.1289 -1.28515,-0.32031 -1.89843,-0.57812 -0.61328,-0.25391 -1.19532,-0.56641 -1.7461,-0.9336 -0.55078,-0.37109 -1.0625,-0.79296 -1.53125,-1.26171 -0.46875,-0.46875 -0.88672,-0.98047 -1.25781,-1.53516 -0.36719,-0.55469 -0.67969,-1.13672 -0.93359,-1.75391 -0.25391,-0.61328 -0.44532,-1.24609 -0.57422,-1.89843 -0.12891,-0.65235 -0.19531,-1.3125 -0.19531,-1.97657 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path4652" />
<path
- style="fill:#17a81a;fill-opacity:1;stroke:none;stroke-width:0.82824755;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- d="m 127.00003,175.29167 0.0687,26.45833 H 190.5 l 5.29167,-5.29167 V 170 h -63.5 z"
- id="path3715-5-6-7-9-8-7-2"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="ccccccc" />
+ fill="#306998"
+ d="m 701.85547,323.83203 v 55.06641 c 0,0.70312 -0.0703,1.40234 -0.20703,2.08984 -0.13672,0.69141 -0.33985,1.36328 -0.60938,2.01172 -0.26562,0.65234 -0.59765,1.26953 -0.98437,1.85156 -0.39063,0.58594 -0.83594,1.12891 -1.33203,1.625 -0.4961,0.5 -1.03516,0.94141 -1.61719,1.33594 -0.58594,0.39062 -1.19922,0.71875 -1.84766,0.98828 -0.64844,0.26953 -1.3164,0.47266 -2.0039,0.60938 -0.69141,0.13671 -1.38672,0.20703 -2.08594,0.20703 h -92.36719 c -0.70312,0 -1.39844,-0.0703 -2.08594,-0.20703 -0.6875,-0.13672 -1.35547,-0.33985 -2.0039,-0.60938 -0.64844,-0.26953 -1.26563,-0.59766 -1.84766,-0.98828 -0.58594,-0.39453 -1.125,-0.83594 -1.62109,-1.33594 -0.4961,-0.49609 -0.9375,-1.03906 -1.32813,-1.625 -0.39062,-0.58203 -0.71875,-1.19922 -0.98828,-1.85156 -0.26953,-0.64844 -0.47266,-1.32031 -0.60937,-2.01172 -0.13672,-0.6875 -0.20313,-1.38672 -0.20313,-2.08984 v -55.06641 c 0,-0.70312 0.0664,-1.39844 0.20313,-2.08984 0.13671,-0.69141 0.33984,-1.35938 0.60937,-2.01172 0.26953,-0.64844 0.59766,-1.26563 0.98828,-1.85156 0.39063,-0.58594 0.83203,-1.125 1.32813,-1.625 0.49609,-0.4961 1.03515,-0.94141 1.62109,-1.33204 0.58203,-0.39062 1.19922,-0.72265 1.84766,-0.99218 0.64843,-0.26953 1.3164,-0.47266 2.0039,-0.60938 0.6875,-0.13672 1.38282,-0.20703 2.08594,-0.20703 h 92.36719 c 0.70312,0 1.39844,0.0703 2.08594,0.20703 0.6875,0.13672 1.35546,0.33985 2.0039,0.60938 0.64844,0.26953 1.26563,0.60156 1.84766,0.99218 0.58203,0.39063 1.125,0.83594 1.62109,1.33204 0.4961,0.5 0.9375,1.03906 1.32813,1.625 0.39062,0.58593 0.71875,1.20312 0.98437,1.85156 0.26953,0.65234 0.47266,1.32031 0.60938,2.01172 0.13672,0.6914 0.20703,1.38672 0.20703,2.08984 z m -112.58203,55.06641 c 0,0.6289 0.0625,1.25 0.18359,1.86328 0.12109,0.61719 0.30469,1.21484 0.54297,1.79297 0.23828,0.57812 0.53125,1.1289 0.87891,1.65234 0.34765,0.51953 0.74218,1.00391 1.18359,1.44531 0.44531,0.44532 0.92578,0.83985 1.44531,1.19141 0.51953,0.34766 1.07031,0.64062 1.64844,0.88281 0.57422,0.23828 1.17187,0.41797 1.78516,0.54297 0.61328,0.12109 1.23437,0.18359 1.85937,0.18359 h 92.36719 c 0.625,0 1.24609,-0.0625 1.85937,-0.18359 0.61328,-0.125 1.21094,-0.30469 1.78907,-0.54297 0.57421,-0.24219 1.125,-0.53515 1.64453,-0.88281 0.51953,-0.35156 1,-0.74609 1.44531,-1.19141 0.44141,-0.4414 0.83594,-0.92578 1.18359,-1.44531 0.34766,-0.52344 0.64063,-1.07422 0.87891,-1.65234 0.24219,-0.57813 0.42187,-1.17578 0.54297,-1.79297 0.12109,-0.61328 0.18359,-1.23438 0.18359,-1.86328 v -55.06641 c 0,-0.625 -0.0625,-1.24609 -0.18359,-1.86328 -0.1211,-0.61328 -0.30078,-1.21094 -0.54297,-1.79297 -0.23828,-0.57812 -0.53125,-1.12891 -0.87891,-1.64844 -0.34765,-0.52343 -0.74218,-1.0039 -1.18359,-1.44922 -0.44531,-0.44531 -0.92578,-0.83984 -1.44531,-1.1875 -0.51953,-0.34765 -1.07032,-0.64453 -1.64453,-0.88281 -0.57813,-0.24219 -1.17579,-0.42187 -1.78907,-0.54297 -0.61328,-0.125 -1.23437,-0.18359 -1.85937,-0.18359 h -92.36719 c -0.625,0 -1.24609,0.0586 -1.85937,0.18359 -0.61329,0.1211 -1.21094,0.30078 -1.78516,0.54297 -0.57813,0.23828 -1.12891,0.53516 -1.64844,0.88281 -0.51953,0.34766 -1,0.74219 -1.44531,1.1875 -0.44141,0.44532 -0.83594,0.92579 -1.18359,1.44922 -0.34766,0.51953 -0.64063,1.07032 -0.87891,1.64844 -0.23828,0.58203 -0.42188,1.17969 -0.54297,1.79297 -0.12109,0.61719 -0.18359,1.23828 -0.18359,1.86328 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path4654" />
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4664"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(611.5815,344.04413)"
+ id="g4662">
+ <g
+ id="g4660">
+ <path
+ d="M 7.4375,-5.125 H 3.5625 V 0 H 1.875 v -15.21875 h 5.5625 c 1.65625,0 2.878906,0.40625 3.671875,1.21875 0.789063,0.804688 1.1875,2.03125 1.1875,3.6875 0,3.460938 -1.621094,5.1875 -4.859375,5.1875 z m -3.875,-1.5 h 3.84375 c 2.101562,0 3.15625,-1.226562 3.15625,-3.6875 0,-1.175781 -0.25,-2.039062 -0.75,-2.59375 -0.5,-0.550781 -1.304688,-0.828125 -2.40625,-0.828125 H 3.5625 Z m 0,0"
+ id="path4658" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4672"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(624.62518,344.04413)"
+ id="g4670">
+ <g
+ id="g4668">
+ <path
+ d="m 0.546875,-11 h 1.65625 l 2.75,9.5625 h 0.71875 L 8.453125,-11 H 10.09375 L 5.515625,4.890625 H 3.875 L 5.296875,0 h -1.625 z m 0,0"
+ id="path4666" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4680"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(635.24928,344.04413)"
+ id="g4678">
+ <g
+ id="g4676">
+ <path
+ d="m 7.28125,-9.5625 h -3.5 v 5.25 c 0,1.261719 0.085938,2.089844 0.265625,2.484375 0.1875,0.398437 0.628906,0.59375 1.328125,0.59375 l 1.953125,-0.125 L 7.4375,0 c -0.980469,0.15625 -1.730469,0.234375 -2.25,0.234375 -1.148438,0 -1.9375,-0.2734375 -2.375,-0.828125 -0.4375,-0.5625 -0.65625,-1.625 -0.65625,-3.1875 V -9.5625 H 0.59375 V -11 h 1.5625 v -3.359375 h 1.625 V -11 h 3.5 z m 0,0"
+ id="path4674" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4688"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(642.96991,344.04413)"
+ id="g4686">
+ <g
+ id="g4684">
+ <path
+ d="m 3.234375,0 h -1.65625 v -15.796875 h 1.65625 v 5.40625 c 1.175781,-0.550781 2.304687,-0.828125 3.390625,-0.828125 1.46875,0 2.453125,0.398438 2.953125,1.1875 0.507813,0.792969 0.765625,2.199219 0.765625,4.21875 V 0 H 8.6875 v -5.765625 c 0,-1.519531 -0.152344,-2.5625 -0.453125,-3.125 C 7.929688,-9.460938 7.300781,-9.75 6.34375,-9.75 c -0.929688,0 -1.824219,0.171875 -2.6875,0.515625 L 3.234375,-9.09375 Z m 0,0"
+ id="path4682" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4696"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(654.7818,344.04413)"
+ id="g4694">
+ <g
+ id="g4692">
+ <path
+ d="m 1.09375,-5.515625 c 0,-2.007813 0.359375,-3.460937 1.078125,-4.359375 0.71875,-0.894531 1.929687,-1.34375 3.640625,-1.34375 1.707031,0 2.914062,0.449219 3.625,1.34375 0.71875,0.898438 1.078125,2.351562 1.078125,4.359375 0,2 -0.339844,3.460937 -1.015625,4.375 -0.679688,0.90625 -1.914062,1.359375 -3.703125,1.359375 -1.78125,0 -3.011719,-0.453125 -3.6875,-1.359375 -0.679687,-0.914063 -1.015625,-2.375 -1.015625,-4.375 z m 1.703125,-0.03125 c 0,1.605469 0.191406,2.730469 0.578125,3.375 0.382812,0.648437 1.195312,0.96875 2.4375,0.96875 1.238281,0 2.050781,-0.316406 2.4375,-0.953125 0.382812,-0.644531 0.578125,-1.773438 0.578125,-3.390625 0,-1.613281 -0.214844,-2.722656 -0.640625,-3.328125 -0.429688,-0.613281 -1.21875,-0.921875 -2.375,-0.921875 -1.148438,0 -1.9375,0.308594 -2.375,0.921875 -0.429688,0.605469 -0.640625,1.714844 -0.640625,3.328125 z m 0,0"
+ id="path4690" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4704"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(666.39573,344.04413)"
+ id="g4702">
+ <g
+ id="g4700">
+ <path
+ d="M 3.234375,0 H 1.578125 V -11 H 3.21875 v 0.765625 c 1.1875,-0.65625 2.320312,-0.984375 3.40625,-0.984375 1.46875,0 2.453125,0.398438 2.953125,1.1875 0.507813,0.792969 0.765625,2.199219 0.765625,4.21875 V 0 h -1.625 v -5.765625 c 0,-1.519531 -0.152344,-2.5625 -0.453125,-3.125 C 7.960938,-9.460938 7.320312,-9.75 6.34375,-9.75 c -0.480469,0 -0.980469,0.074219 -1.5,0.21875 -0.523438,0.136719 -0.917969,0.273438 -1.1875,0.40625 l -0.421875,0.1875 z m 0,0"
+ id="path4698" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4712"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(622.45064,374.79413)"
+ id="g4710">
+ <g
+ id="g4708">
+ <path
+ d="m 0.28125,-13.703125 v -1.515625 h 11 v 1.515625 H 6.640625 V 0 H 4.96875 v -13.703125 z m 0,0"
+ id="path4706" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4720"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(634.02058,374.79413)"
+ id="g4718">
+ <g
+ id="g4716">
+ <path
+ d="m 0.546875,-11 h 1.65625 l 2.75,9.5625 h 0.71875 L 8.453125,-11 H 10.09375 L 5.515625,4.890625 H 3.875 L 5.296875,0 h -1.625 z m 0,0"
+ id="path4714" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4728"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(644.64468,374.79413)"
+ id="g4726">
+ <g
+ id="g4724">
+ <path
+ d="M 1.578125,4.890625 V -11 H 3.21875 v 0.796875 c 1.113281,-0.675781 2.210938,-1.015625 3.296875,-1.015625 1.394531,0 2.40625,0.445312 3.03125,1.328125 C 10.179688,-9.003906 10.5,-7.539062 10.5,-5.5 c 0,2.042969 -0.375,3.507812 -1.125,4.390625 -0.742188,0.886719 -1.964844,1.328125 -3.671875,1.328125 -0.898437,0 -1.71875,-0.078125 -2.46875,-0.234375 v 4.90625 z M 6.265625,-9.75 c -0.4375,0 -0.914063,0.074219 -1.421875,0.21875 -0.5,0.148438 -0.898438,0.292969 -1.1875,0.4375 l -0.421875,0.234375 v 7.40625 c 1.039063,0.167969 1.832031,0.25 2.375,0.25 1.1875,0 2.019531,-0.335937 2.5,-1.015625 0.476563,-0.675781 0.71875,-1.773438 0.71875,-3.296875 0,-1.53125 -0.21875,-2.617187 -0.65625,-3.265625 C 7.742188,-9.425781 7.109375,-9.75 6.265625,-9.75 Z m 0,0"
+ id="path4722" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4736"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(656.23661,374.79413)"
+ id="g4734">
+ <g
+ id="g4732">
+ <path
+ d="M 9.0625,-1.359375 9.703125,-1.4375 9.75,-0.125 C 8.070312,0.101562 6.640625,0.21875 5.453125,0.21875 c -1.585937,0 -2.710937,-0.457031 -3.375,-1.375 C 1.421875,-2.070312 1.09375,-3.5 1.09375,-5.4375 c 0,-3.851562 1.535156,-5.78125 4.609375,-5.78125 1.476563,0 2.582031,0.417969 3.3125,1.25 0.738281,0.824219 1.109375,2.121094 1.109375,3.890625 L 10.03125,-4.8125 H 2.765625 c 0,1.21875 0.21875,2.121094 0.65625,2.703125 0.445313,0.585937 1.21875,0.875 2.3125,0.875 1.09375,0 2.203125,-0.039063 3.328125,-0.125 z m -0.59375,-4.78125 c 0,-1.34375 -0.21875,-2.289063 -0.65625,-2.84375 -0.429688,-0.5625 -1.132812,-0.84375 -2.109375,-0.84375 -0.96875,0 -1.703125,0.292969 -2.203125,0.875 -0.492188,0.585937 -0.742188,1.523437 -0.75,2.8125 z m 0,0"
+ id="path4730" />
+ </g>
+ </g>
+ </g>
+ <g
+ clip-path="url(#61b05d6a70)"
+ id="g4740"
+ transform="translate(-69.242111,-250.64609)">
<path
- style="fill:#848895;fill-opacity:1;stroke:none;stroke-width:0.52087492;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- d="m 58.208333,195.13542 v 11.90625 h 48.947917 l 3.96875,-3.96875 V 191.16667 H 62.177083 Z"
- id="path3715-5-6-7-9-8-7-6-56-7"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="ccccccc" />
+ fill="#306998"
+ d="m 125.32813,478.72266 v -43.44532 c 0,-0.52734 0.0508,-1.04687 0.15625,-1.5625 0.10156,-0.51172 0.25,-1.01172 0.45312,-1.49609 0.19922,-0.48828 0.44531,-0.94922 0.73438,-1.38281 0.29296,-0.4375 0.62109,-0.83985 0.99218,-1.21094 0.3711,-0.375 0.77344,-0.70313 1.20703,-0.99609 0.4375,-0.29297 0.89453,-0.53907 1.37891,-0.73829 0.48437,-0.20312 0.98437,-0.35156 1.49609,-0.45703 0.51172,-0.10156 1.03125,-0.15234 1.55469,-0.15234 h 72.875 c 0.52344,0 1.04297,0.0508 1.55859,0.15234 0.51172,0.10547 1.01172,0.25391 1.49219,0.45703 0.48438,0.19922 0.94531,0.44532 1.37891,0.73829 0.4375,0.29296 0.83984,0.62109 1.20703,0.99609 0.37109,0.37109 0.70312,0.77344 0.99219,1.21094 0.29297,0.43359 0.53906,0.89453 0.73828,1.38281 0.19922,0.48437 0.35156,0.98437 0.45312,1.49609 0.10157,0.51563 0.15235,1.03516 0.15235,1.5625 v 43.44532 c 0,0.52343 -0.0508,1.04296 -0.15235,1.55859 -0.10156,0.51562 -0.2539,1.01562 -0.45312,1.5 -0.19922,0.48437 -0.44531,0.94531 -0.73828,1.38281 -0.28907,0.4375 -0.6211,0.83985 -0.99219,1.21094 -0.36719,0.37109 -0.76953,0.70312 -1.20703,0.99219 -0.4336,0.29297 -0.89453,0.53906 -1.37891,0.74218 -0.48047,0.19922 -0.98047,0.35157 -1.49219,0.45313 -0.51562,0.10156 -1.03515,0.15234 -1.55859,0.15234 h -72.875 c -0.52344,0 -1.04297,-0.0508 -1.55469,-0.15234 -0.51172,-0.10156 -1.01172,-0.25391 -1.49609,-0.45313 -0.48438,-0.20312 -0.94141,-0.44921 -1.37891,-0.74218 -0.43359,-0.28907 -0.83593,-0.6211 -1.20703,-0.99219 -0.37109,-0.37109 -0.69922,-0.77344 -0.99218,-1.21094 -0.28907,-0.4375 -0.53516,-0.89844 -0.73438,-1.38281 -0.20312,-0.48438 -0.35156,-0.98438 -0.45312,-1.5 -0.10547,-0.51563 -0.15625,-1.03516 -0.15625,-1.55859 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path4738" />
+ </g>
+ <g
+ clip-path="url(#ea42d02648)"
+ id="g4744"
+ transform="translate(-69.242111,-250.64609)">
<path
- style="fill:#848895;fill-opacity:1;stroke:none;stroke-width:0.52087492;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- d="m 58.208343,216.30209 v 11.90625 h 48.947907 l 3.96875,-3.96875 V 212.33334 H 62.177093 Z"
- id="path3715-5-6-7-9-8-7-6-56-0"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="ccccccc" />
- <text
- xml:space="preserve"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05555534px;line-height:1.25;font-family:Titillium;-inkscape-font-specification:'Titillium, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
- x="65.68634"
- y="179.68727"
- id="text1032"><tspan
- sodipodi:role="line"
- id="tspan1030"
- x="65.68634"
- y="179.68727"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05555534px;font-family:Titillium;-inkscape-font-specification:'Titillium, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke-width:0.26458332">PythonType1</tspan></text>
- <text
- xml:space="preserve"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05555534px;line-height:1.25;font-family:Titillium;-inkscape-font-specification:'Titillium, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
- x="65.326508"
- y="200.85394"
- id="text1032-1"><tspan
- sodipodi:role="line"
- id="tspan1030-1"
- x="65.326508"
- y="200.85394"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05555534px;font-family:Titillium;-inkscape-font-specification:'Titillium, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke-width:0.26458332">PythonType2</tspan></text>
- <text
- xml:space="preserve"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05555534px;line-height:1.25;font-family:Titillium;-inkscape-font-specification:'Titillium, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
- x="65.319458"
- y="222.02061"
- id="text1032-4"><tspan
- sodipodi:role="line"
- id="tspan1030-6"
- x="65.319458"
- y="222.02061"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05555534px;font-family:Titillium;-inkscape-font-specification:'Titillium, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke-width:0.26458332">PythonType3</tspan></text>
- <text
- xml:space="preserve"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.58333302px;line-height:1.25;font-family:Titillium;-inkscape-font-specification:Titillium;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
- x="90.120621"
- y="139.29776"
- id="text1062"><tspan
- sodipodi:role="line"
- id="tspan1060"
- x="90.120621"
- y="139.29776"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.87777805px;font-family:Titillium;-inkscape-font-specification:'Titillium, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke-width:0.26458332">C++</tspan><tspan
- sodipodi:role="line"
- x="90.120621"
- y="152.52693"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.87777805px;font-family:Titillium;-inkscape-font-specification:'Titillium, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
- id="tspan1064">Type</tspan></text>
- <text
- xml:space="preserve"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.58333302px;line-height:1.25;font-family:Titillium;-inkscape-font-specification:Titillium;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
- x="135.41069"
- y="138.95909"
- id="text1068"><tspan
- sodipodi:role="line"
- id="tspan1066"
- x="135.41069"
- y="138.95909"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46666622px;font-family:Titillium;-inkscape-font-specification:'Titillium, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke-width:0.26458332">Converter</tspan><tspan
- sodipodi:role="line"
- x="135.41069"
- y="152.18826"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46666622px;font-family:Titillium;-inkscape-font-specification:'Titillium, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
- id="tspan1070">C++ -&gt; Python</tspan></text>
- <text
- xml:space="preserve"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.58333302px;line-height:1.25;font-family:Titillium;-inkscape-font-specification:Titillium;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
- x="135.41072"
- y="181.29242"
- id="text1068-9"><tspan
- sodipodi:role="line"
- id="tspan1066-7"
- x="135.41072"
- y="181.29242"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46666622px;font-family:Titillium;-inkscape-font-specification:'Titillium, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke-width:0.26458332">Converter</tspan><tspan
- sodipodi:role="line"
- x="135.41072"
- y="194.52159"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46666622px;font-family:Titillium;-inkscape-font-specification:'Titillium, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
- id="tspan1070-5">Python -&gt; C++</tspan></text>
+ fill="#306998"
+ d="m 214.60547,435.27734 v 43.44141 c 0,0.55469 -0.0508,1.10547 -0.16016,1.65234 -0.10937,0.54297 -0.26953,1.07032 -0.48047,1.58594 -0.21093,0.51172 -0.47265,1 -0.77734,1.46094 -0.30859,0.46094 -0.66016,0.88672 -1.05078,1.28125 -0.39063,0.39453 -0.81641,0.74219 -1.27735,1.05078 -0.46093,0.30859 -0.94531,0.57031 -1.45703,0.78125 -0.51172,0.21484 -1.03906,0.375 -1.58203,0.48047 -0.54297,0.10937 -1.08984,0.16406 -1.64453,0.16406 h -72.87109 c -0.55469,0 -1.10547,-0.0547 -1.64844,-0.16406 -0.54297,-0.10547 -1.07031,-0.26563 -1.57813,-0.48047 -0.51171,-0.21094 -1,-0.47266 -1.46093,-0.78125 -0.46094,-0.30859 -0.88672,-0.65625 -1.27735,-1.05078 -0.39062,-0.39453 -0.73828,-0.82031 -1.04687,-1.28125 -0.30859,-0.46094 -0.56641,-0.94922 -0.78125,-1.46094 -0.21094,-0.51562 -0.37109,-1.04297 -0.47656,-1.58594 -0.10938,-0.54687 -0.16407,-1.09765 -0.16407,-1.65234 v -43.44141 c 0,-0.55468 0.0547,-1.10547 0.16407,-1.65234 0.10547,-0.54297 0.26562,-1.07031 0.47656,-1.58594 0.21484,-0.51172 0.47266,-1 0.78125,-1.46094 0.30859,-0.46093 0.65625,-0.88671 1.04687,-1.28125 0.39063,-0.39453 0.81641,-0.74218 1.27735,-1.05078 0.46093,-0.30859 0.94922,-0.57031 1.46093,-0.78125 0.50782,-0.21484 1.03516,-0.375 1.57813,-0.48047 0.54297,-0.10937 1.09375,-0.16406 1.64844,-0.16406 h 72.87109 c 0.55469,0 1.10156,0.0547 1.64453,0.16406 0.54297,0.10547 1.07031,0.26563 1.58203,0.48047 0.51172,0.21094 1,0.47266 1.45703,0.78125 0.46094,0.3086 0.88672,0.66016 1.27735,1.05078 0.39453,0.39454 0.74219,0.82032 1.05078,1.28125 0.30469,0.46094 0.56641,0.94922 0.77734,1.46094 0.21094,0.51563 0.3711,1.04297 0.48047,1.58985 0.10938,0.54296 0.16016,1.09375 0.16016,1.64843 z m -88.81641,43.44141 c 0,0.49609 0.0469,0.98437 0.14453,1.47266 0.0937,0.48437 0.23829,0.95703 0.42579,1.41406 0.1875,0.45703 0.42187,0.89062 0.69531,1.30078 0.27344,0.41406 0.58594,0.79297 0.93359,1.14453 0.34766,0.34766 0.73047,0.66016 1.14063,0.9375 0.41015,0.27344 0.84375,0.50391 1.29687,0.69531 0.45703,0.1875 0.92578,0.33203 1.41016,0.42969 0.48437,0.0937 0.97265,0.14453 1.46875,0.14453 h 72.87109 c 0.49609,0 0.98438,-0.0508 1.46875,-0.14453 0.48438,-0.0977 0.95313,-0.24219 1.41016,-0.42969 0.45312,-0.1914 0.88672,-0.42187 1.29687,-0.69531 0.41016,-0.27734 0.78906,-0.58984 1.14063,-0.9375 0.34765,-0.35156 0.66015,-0.73047 0.93359,-1.14453 0.27344,-0.41016 0.50781,-0.84375 0.69531,-1.30078 0.1875,-0.45703 0.33203,-0.92969 0.42578,-1.41406 0.0977,-0.48829 0.14454,-0.97657 0.14454,-1.47266 v -43.44141 c 0,-0.49609 -0.0469,-0.98437 -0.14454,-1.47265 -0.0937,-0.48438 -0.23828,-0.95703 -0.42578,-1.41407 -0.1875,-0.45703 -0.42187,-0.89062 -0.69531,-1.30078 -0.27344,-0.41406 -0.58594,-0.79297 -0.93359,-1.14453 -0.35157,-0.34765 -0.73047,-0.66015 -1.14063,-0.9375 -0.41015,-0.27344 -0.84375,-0.5039 -1.29687,-0.69531 -0.45703,-0.1875 -0.92578,-0.33203 -1.41016,-0.42969 -0.48437,-0.0937 -0.97266,-0.14453 -1.46875,-0.14453 h -72.87109 c -0.4961,0 -0.98438,0.0508 -1.46875,0.14453 -0.48438,0.0977 -0.95313,0.24219 -1.41016,0.42969 -0.45312,0.19141 -0.88672,0.42187 -1.29687,0.69531 -0.41016,0.27735 -0.79297,0.58985 -1.14063,0.9375 -0.34765,0.35156 -0.66015,0.73047 -0.93359,1.14453 -0.27344,0.41016 -0.50781,0.84375 -0.69531,1.30078 -0.1875,0.45704 -0.33204,0.92969 -0.42579,1.41407 -0.0977,0.48828 -0.14453,0.97656 -0.14453,1.47265 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path4742" />
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4752"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(143.38693,451.22147)"
+ id="g4750">
+ <g
+ id="g4748">
+ <path
+ d="M 5.875,-4.046875 H 2.8125 V 0 H 1.46875 V -12.015625 H 5.875 c 1.300781,0 2.265625,0.320313 2.890625,0.953125 0.625,0.636719 0.9375,1.609375 0.9375,2.921875 0,2.730469 -1.277344,4.09375 -3.828125,4.09375 z M 2.8125,-5.21875 h 3.03125 c 1.65625,0 2.484375,-0.972656 2.484375,-2.921875 0,-0.925781 -0.199219,-1.601563 -0.59375,-2.03125 -0.386719,-0.4375 -1.015625,-0.65625 -1.890625,-0.65625 H 2.8125 Z m 0,0"
+ id="path4746" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4760"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(153.67768,451.22147)"
+ id="g4758">
+ <g
+ id="g4756">
+ <path
+ d="M 0.4375,-8.671875 H 1.734375 L 3.90625,-1.125 h 0.578125 l 2.1875,-7.546875 H 7.96875 L 4.359375,3.859375 H 3.0625 L 4.1875,0 H 2.90625 Z m 0,0"
+ id="path4754" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4768"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(162.05952,451.22147)"
+ id="g4766">
+ <g
+ id="g4764">
+ <path
+ d="M 5.75,-7.546875 H 2.984375 v 4.140625 c 0,1 0.070313,1.65625 0.21875,1.96875 0.144531,0.3125 0.488281,0.46875 1.03125,0.46875 L 5.78125,-1.078125 5.875,0 C 5.09375,0.125 4.5,0.1875 4.09375,0.1875 3.195312,0.1875 2.570312,-0.03125 2.21875,-0.46875 1.875,-0.90625 1.703125,-1.742188 1.703125,-2.984375 v -4.5625 H 0.46875 v -1.125 h 1.234375 v -2.65625 h 1.28125 v 2.65625 H 5.75 Z m 0,0"
+ id="path4762" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4776"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(168.15067,451.22147)"
+ id="g4774">
+ <g
+ id="g4772">
+ <path
+ d="M 2.546875,0 H 1.25 v -12.46875 h 1.296875 v 4.28125 c 0.925781,-0.445312 1.816406,-0.671875 2.671875,-0.671875 1.164062,0 1.945312,0.3125 2.34375,0.9375 0.394531,0.625 0.59375,1.742187 0.59375,3.34375 V 0 H 6.859375 V -4.546875 C 6.859375,-5.753906 6.738281,-6.578125 6.5,-7.015625 6.257812,-7.460938 5.757812,-7.6875 5,-7.6875 c -0.730469,0 -1.4375,0.132812 -2.125,0.390625 l -0.328125,0.125 z m 0,0"
+ id="path4770" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4784"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(177.4696,451.22147)"
+ id="g4782">
+ <g
+ id="g4780">
+ <path
+ d="m 0.875,-4.359375 c 0,-1.582031 0.28125,-2.726563 0.84375,-3.4375 0.5625,-0.707031 1.515625,-1.0625 2.859375,-1.0625 1.351563,0 2.3125,0.355469 2.875,1.0625 0.5625,0.710937 0.84375,1.855469 0.84375,3.4375 C 8.296875,-2.773438 8.03125,-1.625 7.5,-0.90625 6.96875,-0.1875 5.992188,0.171875 4.578125,0.171875 c -1.40625,0 -2.375,-0.359375 -2.90625,-1.078125 C 1.140625,-1.625 0.875,-2.773438 0.875,-4.359375 Z M 2.203125,-4.375 c 0,1.261719 0.148437,2.148438 0.453125,2.65625 0.3125,0.511719 0.957031,0.765625 1.9375,0.765625 0.976562,0 1.617188,-0.25 1.921875,-0.75 C 6.816406,-2.210938 6.96875,-3.101562 6.96875,-4.375 6.96875,-5.644531 6.796875,-6.519531 6.453125,-7 6.117188,-7.476562 5.5,-7.71875 4.59375,-7.71875 3.6875,-7.71875 3.0625,-7.476562 2.71875,-7 2.375,-6.519531 2.203125,-5.644531 2.203125,-4.375 Z m 0,0"
+ id="path4778" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4792"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(186.63236,451.22147)"
+ id="g4790">
+ <g
+ id="g4788">
+ <path
+ d="M 2.546875,0 H 1.25 v -8.671875 h 1.28125 v 0.59375 c 0.9375,-0.519531 1.832031,-0.78125 2.6875,-0.78125 1.164062,0 1.945312,0.3125 2.34375,0.9375 0.394531,0.625 0.59375,1.742187 0.59375,3.34375 V 0 H 6.875 v -4.546875 c 0,-1.207031 -0.121094,-2.03125 -0.359375,-2.46875 C 6.273438,-7.460938 5.769531,-7.6875 5,-7.6875 c -0.375,0 -0.765625,0.058594 -1.171875,0.171875 -0.40625,0.105469 -0.726563,0.210937 -0.953125,0.3125 l -0.328125,0.15625 z m 0,0"
+ id="path4786" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4800"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(145.18979,475.48154)"
+ id="g4798">
+ <g
+ id="g4796">
+ <path
+ d="m 0.21875,-10.8125 v -1.203125 h 8.6875 V -10.8125 H 5.25 V 0 H 3.921875 v -10.8125 z m 0,0"
+ id="path4794" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4808"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(154.31784,475.48154)"
+ id="g4806">
+ <g
+ id="g4804">
+ <path
+ d="M 0.4375,-8.671875 H 1.734375 L 3.90625,-1.125 h 0.578125 l 2.1875,-7.546875 H 7.96875 L 4.359375,3.859375 H 3.0625 L 4.1875,0 H 2.90625 Z m 0,0"
+ id="path4802" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4816"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(162.69968,475.48154)"
+ id="g4814">
+ <g
+ id="g4812">
+ <path
+ d="M 1.25,3.859375 V -8.671875 H 2.53125 V -8.0625 c 0.882812,-0.53125 1.753906,-0.796875 2.609375,-0.796875 1.09375,0 1.890625,0.355469 2.390625,1.0625 0.5,0.699219 0.75,1.855469 0.75,3.46875 0,1.605469 -0.292969,2.757813 -0.875,3.453125 C 6.820312,-0.175781 5.851562,0.171875 4.5,0.171875 c -0.710938,0 -1.359375,-0.0625 -1.953125,-0.1875 v 3.875 z M 4.953125,-7.6875 c -0.355469,0 -0.730469,0.058594 -1.125,0.171875 C 3.429688,-7.398438 3.113281,-7.285156 2.875,-7.171875 L 2.546875,-7 v 5.859375 c 0.820313,0.125 1.445313,0.1875 1.875,0.1875 0.9375,0 1.59375,-0.265625 1.96875,-0.796875 0.382813,-0.53125 0.578125,-1.394531 0.578125,-2.59375 0,-1.207031 -0.171875,-2.066406 -0.515625,-2.578125 -0.34375,-0.507813 -0.84375,-0.765625 -1.5,-0.765625 z m 0,0"
+ id="path4810" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4824"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(171.84508,475.48154)"
+ id="g4822">
+ <g
+ id="g4820">
+ <path
+ d="m 7.15625,-1.078125 0.5,-0.046875 0.03125,1.015625 C 6.375,0.078125 5.25,0.171875 4.3125,0.171875 3.0625,0.171875 2.175781,-0.1875 1.65625,-0.90625 1.132812,-1.632812 0.875,-2.757812 0.875,-4.28125 c 0,-3.050781 1.207031,-4.578125 3.625,-4.578125 1.164062,0 2.035156,0.328125 2.609375,0.984375 0.582031,0.65625 0.875,1.683594 0.875,3.078125 l -0.0625,1 H 2.1875 c 0,0.960937 0.171875,1.671875 0.515625,2.140625 0.351563,0.460938 0.957031,0.6875 1.8125,0.6875 0.863281,0 1.742187,-0.035156 2.640625,-0.109375 z M 6.6875,-4.84375 c 0,-1.0625 -0.171875,-1.8125 -0.515625,-2.25 C 5.828125,-7.539062 5.269531,-7.765625 4.5,-7.765625 c -0.773438,0 -1.351562,0.234375 -1.734375,0.703125 -0.386719,0.460938 -0.585937,1.199219 -0.59375,2.21875 z m 0,0"
+ id="path4818" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4830"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(180.6087,475.48154)"
+ id="g4828">
+ <g
+ id="g4826" />
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4838"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(184.42651,475.48154)"
+ id="g4836">
+ <g
+ id="g4834">
+ <path
+ d="M 6.75,-11.453125 V 0 H 5.421875 V -9.96875 L 2.46875,-8.015625 1.859375,-9.03125 5.5,-11.453125 Z m 0,0"
+ id="path4832" />
+ </g>
+ </g>
+ </g>
+ <g
+ clip-path="url(#84bd6662f0)"
+ id="g4842"
+ transform="translate(-69.242111,-250.64609)">
<path
- style="fill:#3a4055;fill-opacity:1;stroke:none;stroke-width:0.67261654;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- d="M 211.66667,175.29167 V 201.75 h 37.04166 L 254,196.45833 V 170 h -37.04167 z"
- id="path3715-5-6-7-9-8-7-6-3-9"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="ccccccc" />
- <text
- xml:space="preserve"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.58333302px;line-height:1.25;font-family:Titillium;-inkscape-font-specification:Titillium;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
- x="232.99562"
- y="181.63109"
- id="text1062-7"><tspan
- sodipodi:role="line"
- id="tspan1060-4"
- x="232.99562"
- y="181.63109"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.87777805px;font-family:Titillium;-inkscape-font-specification:'Titillium, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke-width:0.26458332">C++</tspan><tspan
- sodipodi:role="line"
- x="232.99562"
- y="194.86026"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.87777805px;font-family:Titillium;-inkscape-font-specification:'Titillium, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
- id="tspan1064-9">Type</tspan></text>
+ fill="#306998"
+ d="m 125.32813,548.84766 v -43.44532 c 0,-0.52343 0.0508,-1.04297 0.15625,-1.55859 0.10156,-0.51563 0.25,-1.01563 0.45312,-1.5 0.19922,-0.48438 0.44531,-0.94531 0.73438,-1.38281 0.29296,-0.4336 0.62109,-0.83985 0.99218,-1.21094 0.3711,-0.37109 0.77344,-0.70313 1.20703,-0.99219 0.4375,-0.29297 0.89453,-0.53906 1.37891,-0.73828 0.48437,-0.20312 0.98437,-0.35547 1.49609,-0.45703 0.51172,-0.10156 1.03125,-0.15234 1.55469,-0.15234 h 72.875 c 0.52344,0 1.04297,0.0508 1.55859,0.15234 0.51172,0.10156 1.01172,0.25391 1.49219,0.45703 0.48438,0.19922 0.94531,0.44531 1.37891,0.73828 0.4375,0.28906 0.83984,0.6211 1.20703,0.99219 0.37109,0.37109 0.70312,0.77734 0.99219,1.21094 0.29297,0.4375 0.53906,0.89843 0.73828,1.38281 0.19922,0.48437 0.35156,0.98437 0.45312,1.5 0.10157,0.51562 0.15235,1.03516 0.15235,1.55859 v 43.44532 c 0,0.52734 -0.0508,1.04687 -0.15235,1.5625 -0.10156,0.51171 -0.2539,1.01171 -0.45312,1.5 -0.19922,0.48437 -0.44531,0.94531 -0.73828,1.3789 -0.28907,0.4375 -0.6211,0.84375 -0.99219,1.21485 -0.36719,0.37109 -0.76953,0.69921 -1.20703,0.99218 -0.4336,0.29297 -0.89453,0.53907 -1.37891,0.73828 -0.48047,0.20313 -0.98047,0.35547 -1.49219,0.45704 -0.51562,0.10156 -1.03515,0.15234 -1.55859,0.15234 h -72.875 c -0.52344,0 -1.04297,-0.0508 -1.55469,-0.15234 -0.51172,-0.10157 -1.01172,-0.25391 -1.49609,-0.45704 -0.48438,-0.19921 -0.94141,-0.44531 -1.37891,-0.73828 -0.43359,-0.29297 -0.83593,-0.62109 -1.20703,-0.99218 -0.37109,-0.3711 -0.69922,-0.77735 -0.99218,-1.21485 -0.28907,-0.43359 -0.53516,-0.89453 -0.73438,-1.3789 -0.20312,-0.48829 -0.35156,-0.98829 -0.45312,-1.5 -0.10547,-0.51563 -0.15625,-1.03516 -0.15625,-1.5625 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path4840" />
+ </g>
+ <g
+ clip-path="url(#728d290ff8)"
+ id="g4846"
+ transform="translate(-69.242111,-250.64609)">
<path
- style="fill:#848895;fill-opacity:1;stroke:none;stroke-width:0.52087492;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- d="m 211.66667,131.63542 v 11.90625 h 48.94791 l 3.96875,-3.96875 v -11.90625 h -48.94791 z"
- id="path3715-5-6-7-9-8-7-6-56-0-1"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="ccccccc" />
- <text
- xml:space="preserve"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05555534px;line-height:1.25;font-family:Titillium;-inkscape-font-specification:'Titillium, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
- x="220.67876"
- y="137.35394"
- id="text1032-4-7"><tspan
- sodipodi:role="line"
- id="tspan1030-6-0"
- x="220.67876"
- y="137.35394"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05555534px;font-family:Titillium;-inkscape-font-specification:'Titillium, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke-width:0.26458332">PythonType</tspan></text>
+ fill="#306998"
+ d="m 214.60547,505.40234 v 43.44532 c 0,0.55468 -0.0508,1.10546 -0.16016,1.64843 -0.10937,0.54688 -0.26953,1.07422 -0.48047,1.58594 -0.21093,0.51563 -0.47265,1 -0.77734,1.46484 -0.30859,0.46094 -0.66016,0.88672 -1.05078,1.28125 -0.39063,0.39063 -0.81641,0.74219 -1.27735,1.05079 -0.46093,0.30859 -0.94531,0.57031 -1.45703,0.78125 -0.51172,0.21093 -1.03906,0.37109 -1.58203,0.48046 -0.54297,0.10938 -1.08984,0.16407 -1.64453,0.16407 h -72.87109 c -0.55469,0 -1.10547,-0.0547 -1.64844,-0.16407 -0.54297,-0.10937 -1.07031,-0.26953 -1.57813,-0.48046 -0.51171,-0.21094 -1,-0.47266 -1.46093,-0.78125 -0.46094,-0.3086 -0.88672,-0.66016 -1.27735,-1.05079 -0.39062,-0.39453 -0.73828,-0.82031 -1.04687,-1.28125 -0.30859,-0.46484 -0.56641,-0.94921 -0.78125,-1.46484 -0.21094,-0.51172 -0.37109,-1.03906 -0.47656,-1.58594 -0.10938,-0.54297 -0.16407,-1.09375 -0.16407,-1.64843 v -43.44532 c 0,-0.55468 0.0547,-1.10156 0.16407,-1.64843 0.10547,-0.54297 0.26562,-1.07422 0.47656,-1.58594 0.21484,-0.51172 0.47266,-1 0.78125,-1.46094 0.30859,-0.46094 0.65625,-0.89062 1.04687,-1.28125 0.39063,-0.39453 0.81641,-0.74609 1.27735,-1.05469 0.46093,-0.30859 0.94922,-0.5664 1.46093,-0.78125 0.50782,-0.21093 1.03516,-0.37109 1.57813,-0.48047 0.54297,-0.10937 1.09375,-0.16015 1.64844,-0.16015 h 72.87109 c 0.55469,0 1.10156,0.0547 1.64453,0.16015 0.54297,0.10938 1.07031,0.26954 1.58203,0.48438 0.51172,0.21094 1,0.47266 1.45703,0.78125 0.46094,0.30859 0.88672,0.65625 1.27735,1.05078 0.39453,0.39063 0.74219,0.82031 1.05078,1.28125 0.30469,0.46094 0.56641,0.94922 0.77734,1.46094 0.21094,0.51172 0.3711,1.04297 0.48047,1.58594 0.10938,0.54687 0.16016,1.09375 0.16016,1.64843 z m -88.81641,43.44532 c 0,0.49609 0.0469,0.98437 0.14453,1.46875 0.0937,0.48828 0.23829,0.95703 0.42579,1.41406 0.1875,0.45703 0.42187,0.89453 0.69531,1.30469 0.27344,0.41015 0.58594,0.79296 0.93359,1.14062 0.34766,0.35156 0.73047,0.66406 1.14063,0.9375 0.41015,0.27734 0.84375,0.50781 1.29687,0.69922 0.45703,0.1875 0.92578,0.33203 1.41016,0.42578 0.48437,0.0977 0.97265,0.14453 1.46875,0.14453 h 72.87109 c 0.49609,0 0.98438,-0.0469 1.46875,-0.14453 0.48438,-0.0937 0.95313,-0.23828 1.41016,-0.42578 0.45312,-0.19141 0.88672,-0.42188 1.29687,-0.69922 0.41016,-0.27344 0.78906,-0.58594 1.14063,-0.9375 0.34765,-0.34766 0.66015,-0.73047 0.93359,-1.14062 0.27344,-0.41016 0.50781,-0.84766 0.69531,-1.30469 0.1875,-0.45703 0.33203,-0.92578 0.42578,-1.41406 0.0977,-0.48438 0.14454,-0.97266 0.14454,-1.46875 v -43.44532 c 0,-0.49218 -0.0469,-0.98437 -0.14454,-1.46875 -0.0937,-0.48437 -0.23828,-0.95703 -0.42578,-1.41406 -0.1875,-0.45703 -0.42187,-0.89062 -0.69531,-1.30469 -0.27344,-0.41015 -0.58594,-0.78906 -0.93359,-1.14062 -0.35157,-0.35156 -0.73047,-0.66406 -1.14063,-0.9375 -0.41015,-0.27344 -0.84375,-0.50781 -1.29687,-0.69531 -0.45703,-0.19141 -0.92578,-0.33204 -1.41016,-0.42969 -0.48437,-0.0977 -0.97266,-0.14453 -1.46875,-0.14453 h -72.87109 c -0.4961,0 -0.98438,0.0469 -1.46875,0.14453 -0.48438,0.0976 -0.95313,0.23828 -1.41016,0.42969 -0.45312,0.1875 -0.88672,0.42187 -1.29687,0.69531 -0.41016,0.27344 -0.79297,0.58594 -1.14063,0.9375 -0.34765,0.35156 -0.66015,0.73047 -0.93359,1.14062 -0.27344,0.41407 -0.50781,0.84766 -0.69531,1.30469 -0.1875,0.45703 -0.33204,0.92969 -0.42579,1.41406 -0.0977,0.48438 -0.14453,0.97657 -0.14453,1.46875 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path4844" />
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4854"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(143.38693,521.34911)"
+ id="g4852">
+ <g
+ id="g4850">
+ <path
+ d="M 5.875,-4.046875 H 2.8125 V 0 H 1.46875 V -12.015625 H 5.875 c 1.300781,0 2.265625,0.320313 2.890625,0.953125 0.625,0.636719 0.9375,1.609375 0.9375,2.921875 0,2.730469 -1.277344,4.09375 -3.828125,4.09375 z M 2.8125,-5.21875 h 3.03125 c 1.65625,0 2.484375,-0.972656 2.484375,-2.921875 0,-0.925781 -0.199219,-1.601563 -0.59375,-2.03125 -0.386719,-0.4375 -1.015625,-0.65625 -1.890625,-0.65625 H 2.8125 Z m 0,0"
+ id="path4848" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4862"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(153.67768,521.34911)"
+ id="g4860">
+ <g
+ id="g4858">
+ <path
+ d="M 0.4375,-8.671875 H 1.734375 L 3.90625,-1.125 h 0.578125 l 2.1875,-7.546875 H 7.96875 L 4.359375,3.859375 H 3.0625 L 4.1875,0 H 2.90625 Z m 0,0"
+ id="path4856" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4870"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(162.05952,521.34911)"
+ id="g4868">
+ <g
+ id="g4866">
+ <path
+ d="M 5.75,-7.546875 H 2.984375 v 4.140625 c 0,1 0.070313,1.65625 0.21875,1.96875 0.144531,0.3125 0.488281,0.46875 1.03125,0.46875 L 5.78125,-1.078125 5.875,0 C 5.09375,0.125 4.5,0.1875 4.09375,0.1875 3.195312,0.1875 2.570312,-0.03125 2.21875,-0.46875 1.875,-0.90625 1.703125,-1.742188 1.703125,-2.984375 v -4.5625 H 0.46875 v -1.125 h 1.234375 v -2.65625 h 1.28125 v 2.65625 H 5.75 Z m 0,0"
+ id="path4864" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4878"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(168.15067,521.34911)"
+ id="g4876">
+ <g
+ id="g4874">
+ <path
+ d="M 2.546875,0 H 1.25 v -12.46875 h 1.296875 v 4.28125 c 0.925781,-0.445312 1.816406,-0.671875 2.671875,-0.671875 1.164062,0 1.945312,0.3125 2.34375,0.9375 0.394531,0.625 0.59375,1.742187 0.59375,3.34375 V 0 H 6.859375 V -4.546875 C 6.859375,-5.753906 6.738281,-6.578125 6.5,-7.015625 6.257812,-7.460938 5.757812,-7.6875 5,-7.6875 c -0.730469,0 -1.4375,0.132812 -2.125,0.390625 l -0.328125,0.125 z m 0,0"
+ id="path4872" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4886"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(177.4696,521.34911)"
+ id="g4884">
+ <g
+ id="g4882">
+ <path
+ d="m 0.875,-4.359375 c 0,-1.582031 0.28125,-2.726563 0.84375,-3.4375 0.5625,-0.707031 1.515625,-1.0625 2.859375,-1.0625 1.351563,0 2.3125,0.355469 2.875,1.0625 0.5625,0.710937 0.84375,1.855469 0.84375,3.4375 C 8.296875,-2.773438 8.03125,-1.625 7.5,-0.90625 6.96875,-0.1875 5.992188,0.171875 4.578125,0.171875 c -1.40625,0 -2.375,-0.359375 -2.90625,-1.078125 C 1.140625,-1.625 0.875,-2.773438 0.875,-4.359375 Z M 2.203125,-4.375 c 0,1.261719 0.148437,2.148438 0.453125,2.65625 0.3125,0.511719 0.957031,0.765625 1.9375,0.765625 0.976562,0 1.617188,-0.25 1.921875,-0.75 C 6.816406,-2.210938 6.96875,-3.101562 6.96875,-4.375 6.96875,-5.644531 6.796875,-6.519531 6.453125,-7 6.117188,-7.476562 5.5,-7.71875 4.59375,-7.71875 3.6875,-7.71875 3.0625,-7.476562 2.71875,-7 2.375,-6.519531 2.203125,-5.644531 2.203125,-4.375 Z m 0,0"
+ id="path4880" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4894"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(186.63236,521.34911)"
+ id="g4892">
+ <g
+ id="g4890">
+ <path
+ d="M 2.546875,0 H 1.25 v -8.671875 h 1.28125 v 0.59375 c 0.9375,-0.519531 1.832031,-0.78125 2.6875,-0.78125 1.164062,0 1.945312,0.3125 2.34375,0.9375 0.394531,0.625 0.59375,1.742187 0.59375,3.34375 V 0 H 6.875 v -4.546875 c 0,-1.207031 -0.121094,-2.03125 -0.359375,-2.46875 C 6.273438,-7.460938 5.769531,-7.6875 5,-7.6875 c -0.375,0 -0.765625,0.058594 -1.171875,0.171875 -0.40625,0.105469 -0.726563,0.210937 -0.953125,0.3125 l -0.328125,0.15625 z m 0,0"
+ id="path4888" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4902"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(145.18979,545.60918)"
+ id="g4900">
+ <g
+ id="g4898">
+ <path
+ d="m 0.21875,-10.8125 v -1.203125 h 8.6875 V -10.8125 H 5.25 V 0 H 3.921875 v -10.8125 z m 0,0"
+ id="path4896" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4910"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(154.31784,545.60918)"
+ id="g4908">
+ <g
+ id="g4906">
+ <path
+ d="M 0.4375,-8.671875 H 1.734375 L 3.90625,-1.125 h 0.578125 l 2.1875,-7.546875 H 7.96875 L 4.359375,3.859375 H 3.0625 L 4.1875,0 H 2.90625 Z m 0,0"
+ id="path4904" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4918"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(162.69968,545.60918)"
+ id="g4916">
+ <g
+ id="g4914">
+ <path
+ d="M 1.25,3.859375 V -8.671875 H 2.53125 V -8.0625 c 0.882812,-0.53125 1.753906,-0.796875 2.609375,-0.796875 1.09375,0 1.890625,0.355469 2.390625,1.0625 0.5,0.699219 0.75,1.855469 0.75,3.46875 0,1.605469 -0.292969,2.757813 -0.875,3.453125 C 6.820312,-0.175781 5.851562,0.171875 4.5,0.171875 c -0.710938,0 -1.359375,-0.0625 -1.953125,-0.1875 v 3.875 z M 4.953125,-7.6875 c -0.355469,0 -0.730469,0.058594 -1.125,0.171875 C 3.429688,-7.398438 3.113281,-7.285156 2.875,-7.171875 L 2.546875,-7 v 5.859375 c 0.820313,0.125 1.445313,0.1875 1.875,0.1875 0.9375,0 1.59375,-0.265625 1.96875,-0.796875 0.382813,-0.53125 0.578125,-1.394531 0.578125,-2.59375 0,-1.207031 -0.171875,-2.066406 -0.515625,-2.578125 -0.34375,-0.507813 -0.84375,-0.765625 -1.5,-0.765625 z m 0,0"
+ id="path4912" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4926"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(171.84508,545.60918)"
+ id="g4924">
+ <g
+ id="g4922">
+ <path
+ d="m 7.15625,-1.078125 0.5,-0.046875 0.03125,1.015625 C 6.375,0.078125 5.25,0.171875 4.3125,0.171875 3.0625,0.171875 2.175781,-0.1875 1.65625,-0.90625 1.132812,-1.632812 0.875,-2.757812 0.875,-4.28125 c 0,-3.050781 1.207031,-4.578125 3.625,-4.578125 1.164062,0 2.035156,0.328125 2.609375,0.984375 0.582031,0.65625 0.875,1.683594 0.875,3.078125 l -0.0625,1 H 2.1875 c 0,0.960937 0.171875,1.671875 0.515625,2.140625 0.351563,0.460938 0.957031,0.6875 1.8125,0.6875 0.863281,0 1.742187,-0.035156 2.640625,-0.109375 z M 6.6875,-4.84375 c 0,-1.0625 -0.171875,-1.8125 -0.515625,-2.25 C 5.828125,-7.539062 5.269531,-7.765625 4.5,-7.765625 c -0.773438,0 -1.351562,0.234375 -1.734375,0.703125 -0.386719,0.460938 -0.585937,1.199219 -0.59375,2.21875 z m 0,0"
+ id="path4920" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4932"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(180.6087,545.60918)"
+ id="g4930">
+ <g
+ id="g4928" />
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4940"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(184.42651,545.60918)"
+ id="g4938">
+ <g
+ id="g4936">
+ <path
+ d="m 8.515625,0 h -7.3125 v -1.125 l 3.34375,-3.53125 c 0.582031,-0.601562 1.003906,-1.0625 1.265625,-1.375 0.269531,-0.3125 0.507812,-0.679688 0.71875,-1.109375 0.21875,-0.425781 0.328125,-0.851563 0.328125,-1.28125 0,-0.738281 -0.203125,-1.257813 -0.609375,-1.5625 -0.40625,-0.300781 -1.039062,-0.453125 -1.890625,-0.453125 -0.75,0 -1.589844,0.101562 -2.515625,0.296875 l -0.453125,0.09375 -0.109375,-1.109375 c 1.101562,-0.3125 2.238281,-0.46875 3.40625,-0.46875 1.164062,0 2.046875,0.246094 2.640625,0.734375 0.601563,0.492187 0.90625,1.265625 0.90625,2.328125 0,0.8125 -0.183594,1.523438 -0.546875,2.125 -0.355469,0.605469 -0.976562,1.328125 -1.859375,2.171875 L 2.78125,-1.15625 h 5.734375 z m 0,0"
+ id="path4934" />
+ </g>
+ </g>
+ </g>
+ <g
+ clip-path="url(#00b091b271)"
+ id="g4944"
+ transform="translate(-69.242111,-250.64609)">
<path
- style="fill:none;stroke:#000000;stroke-width:0.26499999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
- d="M 111.125,143.54167 H 127"
- id="path1149"
- inkscape:connector-curvature="0" />
+ fill="#306998"
+ d="m 125.32813,618.67969 v -43.44532 c 0,-0.52343 0.0508,-1.04687 0.15625,-1.55859 0.10156,-0.51562 0.25,-1.01562 0.45312,-1.5 0.19922,-0.48437 0.44531,-0.94531 0.73438,-1.38281 0.29296,-0.4375 0.62109,-0.83985 0.99218,-1.21094 0.3711,-0.37109 0.77344,-0.70312 1.20703,-0.99609 0.4375,-0.28907 0.89453,-0.53907 1.37891,-0.73828 0.48437,-0.19922 0.98437,-0.35157 1.49609,-0.45313 0.51172,-0.10547 1.03125,-0.15625 1.55469,-0.15625 h 72.875 c 0.52344,0 1.04297,0.0508 1.55859,0.15625 0.51172,0.10156 1.01172,0.25391 1.49219,0.45313 0.48438,0.19921 0.94531,0.44921 1.37891,0.73828 0.4375,0.29297 0.83984,0.625 1.20703,0.99609 0.37109,0.37109 0.70312,0.77344 0.99219,1.21094 0.29297,0.4375 0.53906,0.89844 0.73828,1.38281 0.19922,0.48438 0.35156,0.98438 0.45312,1.5 0.10157,0.51172 0.15235,1.03516 0.15235,1.55859 v 43.44532 c 0,0.52343 -0.0508,1.04297 -0.15235,1.55859 -0.10156,0.51563 -0.2539,1.01563 -0.45312,1.5 -0.19922,0.48438 -0.44531,0.94531 -0.73828,1.38281 -0.28907,0.4375 -0.6211,0.83985 -0.99219,1.21094 -0.36719,0.37109 -0.76953,0.70313 -1.20703,0.99609 -0.4336,0.28907 -0.89453,0.53516 -1.37891,0.73829 -0.48047,0.19921 -0.98047,0.35156 -1.49219,0.45312 -0.51562,0.10547 -1.03515,0.15625 -1.55859,0.15625 h -72.875 c -0.52344,0 -1.04297,-0.0508 -1.55469,-0.15625 -0.51172,-0.10156 -1.01172,-0.25391 -1.49609,-0.45312 -0.48438,-0.20313 -0.94141,-0.44922 -1.37891,-0.73829 -0.43359,-0.29296 -0.83593,-0.625 -1.20703,-0.99609 -0.37109,-0.37109 -0.69922,-0.77344 -0.99218,-1.21094 -0.28907,-0.4375 -0.53516,-0.89843 -0.73438,-1.38281 -0.20312,-0.48437 -0.35156,-0.98437 -0.45312,-1.5 -0.10547,-0.51562 -0.15625,-1.03516 -0.15625,-1.55859 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path4942" />
+ </g>
+ <g
+ clip-path="url(#be13ebcaaa)"
+ id="g4948"
+ transform="translate(-69.242111,-250.64609)">
<path
- style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1443)"
- d="M 111.125,175.29167 H 127"
- id="path1433"
- inkscape:connector-curvature="0" />
+ fill="#306998"
+ d="m 214.60547,575.23437 v 43.44141 c 0,0.55859 -0.0508,1.10547 -0.16016,1.65234 -0.10937,0.54297 -0.26953,1.07422 -0.48047,1.58594 -0.21093,0.51172 -0.47265,1 -0.77734,1.46094 -0.30859,0.46094 -0.66016,0.89062 -1.05078,1.28125 -0.39063,0.39453 -0.81641,0.74219 -1.27735,1.05078 -0.46093,0.30859 -0.94531,0.57031 -1.45703,0.78125 -0.51172,0.21484 -1.03906,0.375 -1.58203,0.48438 -0.54297,0.10546 -1.08984,0.16015 -1.64453,0.16015 h -72.87109 c -0.55469,0 -1.10547,-0.0547 -1.64844,-0.16015 -0.54297,-0.10938 -1.07031,-0.26954 -1.57813,-0.48438 -0.51171,-0.21094 -1,-0.47266 -1.46093,-0.78125 -0.46094,-0.30859 -0.88672,-0.65625 -1.27735,-1.05078 -0.39062,-0.39063 -0.73828,-0.82031 -1.04687,-1.28125 -0.30859,-0.46094 -0.56641,-0.94922 -0.78125,-1.46094 -0.21094,-0.51172 -0.37109,-1.04297 -0.47656,-1.58594 -0.10938,-0.54687 -0.16407,-1.09375 -0.16407,-1.65234 v -43.44141 c 0,-0.55468 0.0547,-1.10546 0.16407,-1.64843 0.10547,-0.54688 0.26562,-1.07422 0.47656,-1.58594 0.21484,-0.51563 0.47266,-1.00391 0.78125,-1.46484 0.30859,-0.46094 0.65625,-0.88672 1.04687,-1.28125 0.39063,-0.39063 0.81641,-0.74219 1.27735,-1.05079 0.46093,-0.30859 0.94922,-0.57031 1.46093,-0.78125 0.50782,-0.21484 1.03516,-0.375 1.57813,-0.48046 0.54297,-0.10938 1.09375,-0.16407 1.64844,-0.16407 h 72.87109 c 0.55469,0 1.10156,0.0547 1.64453,0.16407 0.54297,0.10937 1.07031,0.26953 1.58203,0.48046 0.51172,0.21094 1,0.47266 1.45703,0.78125 0.46094,0.3086 0.88672,0.66016 1.27735,1.05079 0.39453,0.39453 0.74219,0.82031 1.05078,1.28125 0.30469,0.46484 0.56641,0.94921 0.77734,1.46484 0.21094,0.51172 0.3711,1.03906 0.48047,1.58594 0.10938,0.54297 0.16016,1.09375 0.16016,1.64843 z m -88.81641,43.44141 c 0,0.49609 0.0469,0.98828 0.14453,1.47266 0.0937,0.48437 0.23829,0.95703 0.42579,1.41406 0.1875,0.45703 0.42187,0.89062 0.69531,1.30078 0.27344,0.41406 0.58594,0.79297 0.93359,1.14453 0.34766,0.34766 0.73047,0.66016 1.14063,0.9375 0.41015,0.27344 0.84375,0.50781 1.29687,0.69531 0.45703,0.19141 0.92578,0.33204 1.41016,0.42969 0.48437,0.0977 0.97265,0.14453 1.46875,0.14453 h 72.87109 c 0.49609,0 0.98438,-0.0469 1.46875,-0.14453 0.48438,-0.0976 0.95313,-0.23828 1.41016,-0.42969 0.45312,-0.1875 0.88672,-0.42187 1.29687,-0.69531 0.41016,-0.27734 0.78906,-0.58984 1.14063,-0.9375 0.34765,-0.35156 0.66015,-0.73047 0.93359,-1.14453 0.27344,-0.41016 0.50781,-0.84375 0.69531,-1.30078 0.1875,-0.45703 0.33203,-0.92969 0.42578,-1.41406 0.0977,-0.48438 0.14454,-0.97657 0.14454,-1.47266 v -43.44141 c 0,-0.49609 -0.0469,-0.98437 -0.14454,-1.46875 -0.0937,-0.48828 -0.23828,-0.95703 -0.42578,-1.41406 -0.1875,-0.45703 -0.42187,-0.89453 -0.69531,-1.30469 -0.27344,-0.41015 -0.58594,-0.79296 -0.93359,-1.14062 -0.35157,-0.35156 -0.73047,-0.66406 -1.14063,-0.9375 -0.41015,-0.27734 -0.84375,-0.50781 -1.29687,-0.69922 -0.45703,-0.1875 -0.92578,-0.33203 -1.41016,-0.42969 -0.48437,-0.0937 -0.97266,-0.14453 -1.46875,-0.14453 h -72.87109 c -0.4961,0 -0.98438,0.0508 -1.46875,0.14453 -0.48438,0.0977 -0.95313,0.24219 -1.41016,0.42969 -0.45312,0.19141 -0.88672,0.42188 -1.29687,0.69922 -0.41016,0.27344 -0.79297,0.58594 -1.14063,0.9375 -0.34765,0.34766 -0.66015,0.73047 -0.93359,1.14062 -0.27344,0.41016 -0.50781,0.84766 -0.69531,1.30469 -0.1875,0.45703 -0.33204,0.92578 -0.42579,1.41406 -0.0977,0.48438 -0.14453,0.97266 -0.14453,1.46875 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path4946" />
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4956"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(143.38693,591.17926)"
+ id="g4954">
+ <g
+ id="g4952">
+ <path
+ d="M 5.875,-4.046875 H 2.8125 V 0 H 1.46875 V -12.015625 H 5.875 c 1.300781,0 2.265625,0.320313 2.890625,0.953125 0.625,0.636719 0.9375,1.609375 0.9375,2.921875 0,2.730469 -1.277344,4.09375 -3.828125,4.09375 z M 2.8125,-5.21875 h 3.03125 c 1.65625,0 2.484375,-0.972656 2.484375,-2.921875 0,-0.925781 -0.199219,-1.601563 -0.59375,-2.03125 -0.386719,-0.4375 -1.015625,-0.65625 -1.890625,-0.65625 H 2.8125 Z m 0,0"
+ id="path4950" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4964"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(153.67768,591.17926)"
+ id="g4962">
+ <g
+ id="g4960">
+ <path
+ d="M 0.4375,-8.671875 H 1.734375 L 3.90625,-1.125 h 0.578125 l 2.1875,-7.546875 H 7.96875 L 4.359375,3.859375 H 3.0625 L 4.1875,0 H 2.90625 Z m 0,0"
+ id="path4958" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4972"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(162.05952,591.17926)"
+ id="g4970">
+ <g
+ id="g4968">
+ <path
+ d="M 5.75,-7.546875 H 2.984375 v 4.140625 c 0,1 0.070313,1.65625 0.21875,1.96875 0.144531,0.3125 0.488281,0.46875 1.03125,0.46875 L 5.78125,-1.078125 5.875,0 C 5.09375,0.125 4.5,0.1875 4.09375,0.1875 3.195312,0.1875 2.570312,-0.03125 2.21875,-0.46875 1.875,-0.90625 1.703125,-1.742188 1.703125,-2.984375 v -4.5625 H 0.46875 v -1.125 h 1.234375 v -2.65625 h 1.28125 v 2.65625 H 5.75 Z m 0,0"
+ id="path4966" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4980"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(168.15067,591.17926)"
+ id="g4978">
+ <g
+ id="g4976">
+ <path
+ d="M 2.546875,0 H 1.25 v -12.46875 h 1.296875 v 4.28125 c 0.925781,-0.445312 1.816406,-0.671875 2.671875,-0.671875 1.164062,0 1.945312,0.3125 2.34375,0.9375 0.394531,0.625 0.59375,1.742187 0.59375,3.34375 V 0 H 6.859375 V -4.546875 C 6.859375,-5.753906 6.738281,-6.578125 6.5,-7.015625 6.257812,-7.460938 5.757812,-7.6875 5,-7.6875 c -0.730469,0 -1.4375,0.132812 -2.125,0.390625 l -0.328125,0.125 z m 0,0"
+ id="path4974" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4988"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(177.4696,591.17926)"
+ id="g4986">
+ <g
+ id="g4984">
+ <path
+ d="m 0.875,-4.359375 c 0,-1.582031 0.28125,-2.726563 0.84375,-3.4375 0.5625,-0.707031 1.515625,-1.0625 2.859375,-1.0625 1.351563,0 2.3125,0.355469 2.875,1.0625 0.5625,0.710937 0.84375,1.855469 0.84375,3.4375 C 8.296875,-2.773438 8.03125,-1.625 7.5,-0.90625 6.96875,-0.1875 5.992188,0.171875 4.578125,0.171875 c -1.40625,0 -2.375,-0.359375 -2.90625,-1.078125 C 1.140625,-1.625 0.875,-2.773438 0.875,-4.359375 Z M 2.203125,-4.375 c 0,1.261719 0.148437,2.148438 0.453125,2.65625 0.3125,0.511719 0.957031,0.765625 1.9375,0.765625 0.976562,0 1.617188,-0.25 1.921875,-0.75 C 6.816406,-2.210938 6.96875,-3.101562 6.96875,-4.375 6.96875,-5.644531 6.796875,-6.519531 6.453125,-7 6.117188,-7.476562 5.5,-7.71875 4.59375,-7.71875 3.6875,-7.71875 3.0625,-7.476562 2.71875,-7 2.375,-6.519531 2.203125,-5.644531 2.203125,-4.375 Z m 0,0"
+ id="path4982" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g4996"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(186.63236,591.17926)"
+ id="g4994">
+ <g
+ id="g4992">
+ <path
+ d="M 2.546875,0 H 1.25 v -8.671875 h 1.28125 v 0.59375 c 0.9375,-0.519531 1.832031,-0.78125 2.6875,-0.78125 1.164062,0 1.945312,0.3125 2.34375,0.9375 0.394531,0.625 0.59375,1.742187 0.59375,3.34375 V 0 H 6.875 v -4.546875 c 0,-1.207031 -0.121094,-2.03125 -0.359375,-2.46875 C 6.273438,-7.460938 5.769531,-7.6875 5,-7.6875 c -0.375,0 -0.765625,0.058594 -1.171875,0.171875 -0.40625,0.105469 -0.726563,0.210937 -0.953125,0.3125 l -0.328125,0.15625 z m 0,0"
+ id="path4990" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g5004"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(145.18979,615.43933)"
+ id="g5002">
+ <g
+ id="g5000">
+ <path
+ d="m 0.21875,-10.8125 v -1.203125 h 8.6875 V -10.8125 H 5.25 V 0 H 3.921875 v -10.8125 z m 0,0"
+ id="path4998" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g5012"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(154.31784,615.43933)"
+ id="g5010">
+ <g
+ id="g5008">
+ <path
+ d="M 0.4375,-8.671875 H 1.734375 L 3.90625,-1.125 h 0.578125 l 2.1875,-7.546875 H 7.96875 L 4.359375,3.859375 H 3.0625 L 4.1875,0 H 2.90625 Z m 0,0"
+ id="path5006" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g5020"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(162.69968,615.43933)"
+ id="g5018">
+ <g
+ id="g5016">
+ <path
+ d="M 1.25,3.859375 V -8.671875 H 2.53125 V -8.0625 c 0.882812,-0.53125 1.753906,-0.796875 2.609375,-0.796875 1.09375,0 1.890625,0.355469 2.390625,1.0625 0.5,0.699219 0.75,1.855469 0.75,3.46875 0,1.605469 -0.292969,2.757813 -0.875,3.453125 C 6.820312,-0.175781 5.851562,0.171875 4.5,0.171875 c -0.710938,0 -1.359375,-0.0625 -1.953125,-0.1875 v 3.875 z M 4.953125,-7.6875 c -0.355469,0 -0.730469,0.058594 -1.125,0.171875 C 3.429688,-7.398438 3.113281,-7.285156 2.875,-7.171875 L 2.546875,-7 v 5.859375 c 0.820313,0.125 1.445313,0.1875 1.875,0.1875 0.9375,0 1.59375,-0.265625 1.96875,-0.796875 0.382813,-0.53125 0.578125,-1.394531 0.578125,-2.59375 0,-1.207031 -0.171875,-2.066406 -0.515625,-2.578125 -0.34375,-0.507813 -0.84375,-0.765625 -1.5,-0.765625 z m 0,0"
+ id="path5014" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g5028"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(171.84508,615.43933)"
+ id="g5026">
+ <g
+ id="g5024">
+ <path
+ d="m 7.15625,-1.078125 0.5,-0.046875 0.03125,1.015625 C 6.375,0.078125 5.25,0.171875 4.3125,0.171875 3.0625,0.171875 2.175781,-0.1875 1.65625,-0.90625 1.132812,-1.632812 0.875,-2.757812 0.875,-4.28125 c 0,-3.050781 1.207031,-4.578125 3.625,-4.578125 1.164062,0 2.035156,0.328125 2.609375,0.984375 0.582031,0.65625 0.875,1.683594 0.875,3.078125 l -0.0625,1 H 2.1875 c 0,0.960937 0.171875,1.671875 0.515625,2.140625 0.351563,0.460938 0.957031,0.6875 1.8125,0.6875 0.863281,0 1.742187,-0.035156 2.640625,-0.109375 z M 6.6875,-4.84375 c 0,-1.0625 -0.171875,-1.8125 -0.515625,-2.25 C 5.828125,-7.539062 5.269531,-7.765625 4.5,-7.765625 c -0.773438,0 -1.351562,0.234375 -1.734375,0.703125 -0.386719,0.460938 -0.585937,1.199219 -0.59375,2.21875 z m 0,0"
+ id="path5022" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g5034"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(180.6087,615.43933)"
+ id="g5032">
+ <g
+ id="g5030" />
+ </g>
+ </g>
+ <g
+ fill="#fefeff"
+ fill-opacity="1"
+ id="g5042"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ transform="translate(184.42651,615.43933)"
+ id="g5040">
+ <g
+ id="g5038">
+ <path
+ d="m 1.25,-11.15625 c 1.082031,-0.320312 2.242188,-0.484375 3.484375,-0.484375 1.25,0 2.148437,0.242187 2.703125,0.71875 0.5625,0.46875 0.84375,1.226563 0.84375,2.265625 0,0.53125 -0.074219,0.917969 -0.21875,1.15625 -0.148438,0.230469 -0.261719,0.414062 -0.34375,0.546875 -0.085938,0.125 -0.199219,0.246094 -0.34375,0.359375 -0.25,0.199219 -0.453125,0.335938 -0.609375,0.40625 l -0.1875,0.125 c 0.675781,0.25 1.175781,0.5625 1.5,0.9375 0.320313,0.375 0.484375,0.992188 0.484375,1.84375 0,1.167969 -0.304688,2.039062 -0.90625,2.609375 -0.59375,0.5625 -1.53125,0.84375 -2.8125,0.84375 -1.023438,0 -2.101562,-0.1171875 -3.234375,-0.34375 l -0.53125,-0.125 0.125,-1.09375 C 2.453125,-1.128906 3.617188,-1 4.703125,-1 6.359375,-1.019531 7.1875,-1.765625 7.1875,-3.234375 c 0,-1.375 -0.789062,-2.085937 -2.359375,-2.140625 h -2.3125 v -1.15625 h 2.3125 c 0.488281,0 0.957031,-0.191406 1.40625,-0.578125 0.445313,-0.382813 0.671875,-0.894531 0.671875,-1.53125 0,-0.632813 -0.183594,-1.09375 -0.546875,-1.375 -0.355469,-0.289063 -0.953125,-0.4375 -1.796875,-0.4375 -0.929688,0 -1.839844,0.08984 -2.734375,0.265625 L 1.375,-10.109375 Z m 0,0"
+ id="path5036" />
+ </g>
+ </g>
+ </g>
+ <g
+ clip-path="url(#12ef88673f)"
+ id="g5046"
+ transform="translate(-69.242111,-250.64609)">
<path
- style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1479)"
- d="M 111.125,196.45834 127,185.875"
- id="path1469"
- inkscape:connector-curvature="0" />
+ fill="#000000"
+ d="m 293.44922,366.47266 15.07422,-14.98829 -15.07422,-15.01171 -3.37891,3.36328 9.27344,9.26562 h -56.76953 v 4.76563 h 56.76953 l -9.27344,9.23828 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path5044" />
+ </g>
+ <g
+ clip-path="url(#4425bd08fe)"
+ id="g5050"
+ transform="translate(-69.242111,-250.64609)">
<path
- style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1521)"
- d="M 111.125,217.625 127,201.75"
- id="path1511"
- inkscape:connector-curvature="0" />
+ fill="#000000"
+ d="m 554.83203,366.47266 15.07422,-14.98829 -15.07422,-15.01171 -3.38281,3.36328 9.27344,9.26562 h -56.76954 v 4.76563 h 56.76954 l -9.27344,9.23828 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path5048" />
+ </g>
+ <g
+ clip-path="url(#29f410bb45)"
+ id="g5054"
+ transform="translate(-69.242111,-250.64609)">
<path
- style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1569)"
- d="m 195.79166,185.875 h 15.875"
- id="path1559"
- inkscape:connector-curvature="0" />
+ fill="#000000"
+ d="m 554.83203,542.04297 15.07422,-14.98438 -15.07422,-15.01562 -3.38281,3.36719 9.27344,9.26562 h -56.76954 v 4.76563 h 56.76954 l -9.27344,9.23828 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path5052" />
+ </g>
+ <g
+ clip-path="url(#8612924f50)"
+ id="g5058"
+ transform="translate(-69.242111,-250.64609)">
<path
- style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1623)"
- d="m 195.79166,138.25001 h 15.875"
- id="path1613"
- inkscape:connector-curvature="0" />
+ fill="#000000"
+ d="m 287.44531,541.73437 15.07422,-14.98828 -15.07422,-15.01172 -3.3789,3.36329 9.26953,9.26562 h -56.76953 v 4.76953 h 56.76953 l -9.26953,9.23438 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path5056" />
+ </g>
+ <g
+ clip-path="url(#9616827f5c)"
+ id="g5068"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ clip-path="url(#6d6215aef9)"
+ id="g5066">
+ <g
+ clip-path="url(#506e24dd3d)"
+ id="g5064">
+ <g
+ clip-path="url(#85c10bb5f0)"
+ id="g5062">
+ <path
+ fill="#000000"
+ d="m 279.46094,488.74609 19.99609,-7.21093 -7.32031,-19.98047 -4.48438,1.625 4.48828,12.3125 -51.44921,-23.98828 -2.01563,4.32031 51.44922,23.98828 -12.30469,4.45312 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path5060" />
+ </g>
+ </g>
+ </g>
+ </g>
+ <g
+ clip-path="url(#96382ab88a)"
+ id="g5078"
+ transform="translate(-69.242111,-250.64609)">
+ <g
+ clip-path="url(#8ee2f579d3)"
+ id="g5076">
+ <g
+ clip-path="url(#c24345751d)"
+ id="g5074">
+ <g
+ clip-path="url(#6c1dc82097)"
+ id="g5072">
+ <path
+ fill="#000000"
+ d="m 279.46094,565.48437 19.99609,7.21094 -7.32031,19.97656 -4.48438,-1.62109 4.48828,-12.31641 -51.44921,23.99219 -2.01563,-4.32031 51.44922,-23.99219 -12.30469,-4.44922 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path5070" />
+ </g>
+ </g>
+ </g>
</g>
</svg>
diff --git a/sources/shiboken6/doc/images/genrunnerarch.png b/sources/shiboken6/doc/images/genrunnerarch.png
deleted file mode 100644
index db1077cd0..000000000
--- a/sources/shiboken6/doc/images/genrunnerarch.png
+++ /dev/null
Binary files differ
diff --git a/sources/shiboken6/doc/images/genrunnerarch.svg b/sources/shiboken6/doc/images/genrunnerarch.svg
deleted file mode 100644
index ea7eb73e7..000000000
--- a/sources/shiboken6/doc/images/genrunnerarch.svg
+++ /dev/null
@@ -1,654 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="980"
- height="380"
- id="svg2"
- sodipodi:version="0.32"
- inkscape:version="0.47pre4 r22446"
- version="1.0"
- sodipodi:docname="genrunnerarch.svg"
- inkscape:output_extension="org.inkscape.output.svg.inkscape"
- inkscape:export-filename="genrunnerarch.png"
- inkscape:export-xdpi="56.549999"
- inkscape:export-ydpi="56.549999">
- <defs
- id="defs4">
- <marker
- inkscape:stockid="EmptyDiamondL"
- orient="auto"
- refY="0"
- refX="0"
- id="EmptyDiamondL"
- style="overflow:visible">
- <path
- id="path3930"
- d="M 0,-7.0710768 -7.0710894,0 0,7.0710589 7.0710462,0 0,-7.0710768 z"
- style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
- transform="scale(0.8,0.8)" />
- </marker>
- <marker
- inkscape:stockid="EmptyTriangleInL"
- orient="auto"
- refY="0"
- refX="0"
- id="EmptyTriangleInL"
- style="overflow:visible">
- <path
- id="path3975"
- d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
- style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
- transform="matrix(-0.8,0,0,-0.8,4.8,0)" />
- </marker>
- <marker
- inkscape:stockid="Arrow1Sstart"
- orient="auto"
- refY="0"
- refX="0"
- id="Arrow1Sstart"
- style="overflow:visible">
- <path
- id="path3835"
- d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
- style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
- transform="matrix(0.2,0,0,0.2,1.2,0)" />
- </marker>
- <marker
- inkscape:stockid="Arrow1Mend"
- orient="auto"
- refY="0"
- refX="0"
- id="Arrow1Mend"
- style="overflow:visible">
- <path
- id="path3832"
- d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
- style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
- transform="matrix(-0.4,0,0,-0.4,-4,0)" />
- </marker>
- <marker
- inkscape:stockid="Tail"
- orient="auto"
- refY="0"
- refX="0"
- id="Tail"
- style="overflow:visible">
- <g
- id="g3859"
- transform="scale(-1.2,-1.2)">
- <path
- id="path3861"
- d="M -3.8048674,-3.9585227 0.54352094,0"
- style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:round;marker-start:none;marker-end:none" />
- <path
- id="path3863"
- d="M -1.2866832,-3.9585227 3.0617053,0"
- style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:round;marker-start:none;marker-end:none" />
- <path
- id="path3865"
- d="M 1.3053582,-3.9585227 5.6537466,0"
- style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:round;marker-start:none;marker-end:none" />
- <path
- id="path3867"
- d="M -3.8048674,4.1775838 0.54352094,0.21974226"
- style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:round;marker-start:none;marker-end:none" />
- <path
- id="path3869"
- d="M -1.2866832,4.1775838 3.0617053,0.21974226"
- style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:round;marker-start:none;marker-end:none" />
- <path
- id="path3871"
- d="M 1.3053582,4.1775838 5.6537466,0.21974226"
- style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:round;marker-start:none;marker-end:none" />
- </g>
- </marker>
- <marker
- inkscape:stockid="Arrow2Lend"
- orient="auto"
- refY="0"
- refX="0"
- id="Arrow2Lend"
- style="overflow:visible">
- <path
- id="path3636"
- style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
- d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
- transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
- </marker>
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 526.18109 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="744.09448 : 526.18109 : 1"
- inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
- id="perspective10" />
- <inkscape:perspective
- id="perspective3033"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3881"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3915"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3956"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective5100"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective5322"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective5365"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective5391"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <marker
- inkscape:stockid="EmptyTriangleInL"
- orient="auto"
- refY="0"
- refX="0"
- id="EmptyTriangleInL-4"
- style="overflow:visible">
- <path
- id="path3975-9"
- d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
- style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
- transform="matrix(-0.8,0,0,-0.8,4.8,0)" />
- </marker>
- <inkscape:perspective
- id="perspective5621"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective5643"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- <marker
- inkscape:stockid="EmptyDiamondL"
- orient="auto"
- refY="0"
- refX="0"
- id="EmptyDiamondL-7"
- style="overflow:visible">
- <path
- id="path3930-7"
- d="M 0,-7.0710768 -7.0710894,0 0,7.0710589 7.0710462,0 0,-7.0710768 z"
- style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
- transform="scale(0.8,0.8)" />
- </marker>
- </defs>
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- gridtolerance="10000"
- guidetolerance="10"
- objecttolerance="10"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="1.0716799"
- inkscape:cx="460.27913"
- inkscape:cy="148.01364"
- inkscape:document-units="px"
- inkscape:current-layer="layer1"
- showgrid="false"
- inkscape:window-width="1862"
- inkscape:window-height="1019"
- inkscape:window-x="20"
- inkscape:window-y="89"
- showguides="true"
- inkscape:guide-bbox="true"
- inkscape:window-maximized="0" />
- <metadata
- id="metadata7">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- inkscape:label="Layer 1"
- inkscape:groupmode="layer"
- id="layer1"
- transform="translate(472.44407,-697.53823)">
- <flowRoot
- xml:space="preserve"
- id="flowRoot3229"
- style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- transform="translate(2.0918751e-6,-6.0000008)"><flowRegion
- id="flowRegion3231"><rect
- id="rect3233"
- width="125.74072"
- height="40.5849"
- x="388.45547"
- y="279.5423" /></flowRegion><flowPara
- id="flowPara3235" /></flowRoot> <g
- id="g5867"
- transform="translate(6.7062969,-7.6922472)">
- <rect
- rx="3.4968286"
- ry="5.2462597"
- y="713.31403"
- x="-472.05276"
- height="363.61459"
- width="393.78473"
- id="rect3609"
- style="fill:#e4fae3;fill-opacity:0.65882353;stroke:#8eff89;stroke-width:0.78260708;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
- <text
- transform="scale(1.0000266,0.9999734)"
- id="text3601"
- y="742.43872"
- x="-275.16165"
- style="font-size:38.71272278px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#035800;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- xml:space="preserve"><tspan
- id="tspan3605"
- style="font-size:27.09890556px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#035800;fill-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
- y="742.43872"
- x="-275.16165"
- sodipodi:role="line"><tspan
- id="tspan2508"
- style="font-weight:bold">API Extractor</tspan></tspan></text>
- <g
- transform="matrix(0.9678438,0,0,0.9677923,-587.62742,-106.48682)"
- id="g3763">
- <rect
- style="fill:#bff3bc;fill-opacity:1;stroke:#0af400;stroke-width:0.79775763;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- id="rect3737"
- width="244.82956"
- height="101.59812"
- x="267.06232"
- y="905.13727"
- ry="3.1522403"
- rx="2.4096873" />
- <text
- xml:space="preserve"
- style="font-size:40px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#035800;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- x="389.39117"
- y="931.86993"
- id="text3739"><tspan
- sodipodi:role="line"
- x="389.39117"
- y="931.86993"
- style="font-size:22px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;text-anchor:middle;fill:#035800;fill-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans Bold"
- id="tspan3741">ApiExtractor</tspan><tspan
- id="tspan2523"
- sodipodi:role="line"
- x="389.39117"
- y="953.38947"
- style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#035800;fill-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans">commands the parsing and</tspan><tspan
- id="tspan2517"
- sodipodi:role="line"
- x="389.39117"
- y="973.38947"
- style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#035800;fill-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans">building of the data model</tspan><tspan
- id="tspan2519"
- sodipodi:role="line"
- x="389.39117"
- y="993.38947"
- style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#035800;fill-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans">and calls the user generators</tspan></text>
- </g>
- <rect
- rx="2.1814992"
- ry="5.2485871"
- y="713.45312"
- x="219.72128"
- height="363.77597"
- width="274.11292"
- id="rect9190"
- style="fill:#b8d1f1;fill-opacity:0.51184836;stroke:#0045a4;stroke-width:0.6182732;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
- <text
- transform="scale(1.0000266,0.9999734)"
- id="text9192"
- y="742.66901"
- x="357.65579"
- style="font-size:38.71272278px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#002e7a;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- xml:space="preserve"><tspan
- id="tspan9194"
- style="font-size:27.09890556px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#002e7a;fill-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
- y="742.66901"
- x="357.65579"
- sodipodi:role="line"><tspan
- id="tspan2512"
- style="font-weight:bold;fill:#002e7a;fill-opacity:1">front-end</tspan><tspan
- id="tspan2514"
- style="font-size:22px;fill:#002e7a;fill-opacity:1" /></tspan></text>
- <rect
- rx="2.2192271"
- ry="5.2485123"
- y="713.23639"
- x="-68.659073"
- height="363.77075"
- width="278.85358"
- id="rect9190-9"
- style="fill:#cbe990;fill-opacity:0.51184836;stroke:#6ca400;stroke-width:0.62359226;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
- <text
- transform="scale(1.0000266,0.9999734)"
- id="text9192-3"
- y="741.71094"
- x="70.291061"
- style="font-size:38.71272278px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#050800;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- xml:space="preserve"><tspan
- id="tspan9194-7"
- style="font-size:26px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;text-anchor:middle;fill:#050800;fill-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
- y="741.71094"
- x="70.291061"
- sodipodi:role="line">Generator Runner</tspan></text>
- <g
- transform="matrix(0.9678438,0,0,0.9677923,-687.04869,-241.74888)"
- id="g9234-4">
- <rect
- style="fill:#addc52;fill-opacity:1;stroke:#6ca400;stroke-width:0.73640609;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- id="rect9206-4"
- width="218.17299"
- height="83.517967"
- x="694.6994"
- y="1044.8701"
- ry="2.5912752"
- rx="2.4978092" />
- <text
- xml:space="preserve"
- style="font-size:40px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#035800;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- x="803.78589"
- y="1072.3693"
- id="text9208-3"><tspan
- sodipodi:role="line"
- x="803.78589"
- y="1072.3693"
- style="font-size:22px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;text-anchor:middle;fill:#050800;fill-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans Bold"
- id="tspan9210-0">Generator</tspan><tspan
- id="tspan9222-8"
- sodipodi:role="line"
- x="803.78589"
- y="1093.8888"
- style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#050800;fill-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans">base class for front-end</tspan><tspan
- id="tspan3946"
- sodipodi:role="line"
- x="803.78589"
- y="1113.8888"
- style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#050800;fill-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans">output classes</tspan></text>
- </g>
- <g
- transform="matrix(0.9678438,0,0,0.9677923,-726.09128,-46.791689)"
- id="g10497-6">
- <rect
- style="fill:#89b3e7;fill-opacity:1;stroke:#0049a4;stroke-width:1.04736876;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- id="rect10444-8"
- width="256.05252"
- height="143.95157"
- x="990.81482"
- y="843.58032"
- ry="4.4663219"
- rx="2.9314826" />
- <text
- xml:space="preserve"
- style="font-size:40px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#002758;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- x="1118.0945"
- y="873.04047"
- id="text10446-8"><tspan
- sodipodi:role="line"
- x="1118.0945"
- y="873.04047"
- style="font-size:22px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;text-anchor:middle;fill:#002758;fill-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans Bold"
- id="tspan10448-4">SpecificGenerator</tspan><tspan
- id="tspan4063"
- sodipodi:role="line"
- x="1118.0945"
- y="894.56"
- style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#002758;fill-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans">generators written for any</tspan><tspan
- id="tspan5381"
- sodipodi:role="line"
- x="1118.0945"
- y="914.56"
- style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#002758;fill-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans">desired output,</tspan><tspan
- id="tspan4065"
- sodipodi:role="line"
- x="1118.0945"
- y="934.56"
- style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#002758;fill-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"> e.g.: HppGenerator,</tspan><tspan
- id="tspan4071"
- sodipodi:role="line"
- x="1118.0945"
- y="954.56"
- style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#002758;fill-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans">CppGenerator,</tspan><tspan
- id="tspan4073"
- sodipodi:role="line"
- x="1118.0945"
- y="974.56"
- style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#002758;fill-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans">ConverterGenerator</tspan></text>
- </g>
- <path
- sodipodi:nodetypes="cc"
- transform="translate(109.91989,748.26874)"
- id="path4056"
- d="m -201.98482,41.728896 76.97065,5e-6"
- style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:6, 1;stroke-dashoffset:0" />
- <path
- sodipodi:nodetypes="cc"
- id="path4056-2"
- d="m 197.04022,787.89746 35.38656,0"
- style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-start:url(#EmptyTriangleInL)" />
- <g
- transform="matrix(0.9678438,0,0,0.9677923,-1010.4541,91.401187)"
- id="g10497">
- <rect
- style="fill:#addc52;fill-opacity:1;stroke:#6ca400;stroke-width:0.88060772;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- id="rect10444"
- width="256.21927"
- height="101.69494"
- x="990.73145"
- y="843.49695"
- ry="3.1552441"
- rx="2.9333918" />
- <text
- xml:space="preserve"
- style="font-size:40px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#035800;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- x="1012.22"
- y="870.08466"
- id="text10446"><tspan
- sodipodi:role="line"
- x="1012.22"
- y="870.08466"
- style="font-size:22px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;text-anchor:start;fill:#050800;fill-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans Bold"
- id="tspan10448">Generator App</tspan><tspan
- id="tspan10456"
- sodipodi:role="line"
- x="1012.22"
- y="891.60419"
- style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;text-anchor:start;fill:#050800;fill-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans">* loads generators</tspan><tspan
- id="tspan5353"
- sodipodi:role="line"
- x="1012.22"
- y="911.60419"
- style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;text-anchor:start;fill:#050800;fill-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans">* setup API Extractor</tspan><tspan
- id="tspan5355"
- sodipodi:role="line"
- x="1012.22"
- y="931.60419"
- style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;text-anchor:start;fill:#050800;fill-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans">* executes each generator</tspan></text>
- </g>
- <path
- sodipodi:nodetypes="cc"
- id="path4056-9"
- d="m 72.409302,850.57374 0,56.99122"
- style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:6, 1;stroke-dashoffset:0" />
- <path
- sodipodi:nodetypes="ccc"
- id="path4056-2-0"
- d="m -86.437722,825.54499 52.188784,0 0.06367,81.67009"
- style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-start:url(#EmptyDiamondL)" />
- <path
- sodipodi:nodetypes="cc"
- id="path4056-91"
- d="m -394.83596,853.70064 0,121.42437"
- style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:6, 1;stroke-dashoffset:0" />
- <g
- transform="matrix(0.9678438,0,0,0.9677923,-707.18032,-153.53291)"
- id="g3809">
- <rect
- style="fill:#bff3bc;fill-opacity:1;stroke:#0af400;stroke-width:1.00168562;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- id="rect3785"
- width="332.48172"
- height="82.830231"
- x="302.83319"
- y="1068.9153"
- ry="3.1461167"
- rx="3.8065021" />
- <text
- xml:space="preserve"
- style="font-size:40px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#035800;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- x="469.03497"
- y="1095.5493"
- id="text3787"><tspan
- id="tspan3791"
- sodipodi:role="line"
- x="469.03497"
- y="1095.5493"
- style="font-size:22px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;text-anchor:middle;fill:#035800;fill-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans Bold">AbstractMetaBuilder</tspan><tspan
- sodipodi:role="line"
- x="469.03497"
- y="1117.0688"
- style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#035800;fill-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
- id="tspan3807">builds the data model with information</tspan><tspan
- id="tspan2545"
- sodipodi:role="line"
- x="469.03497"
- y="1137.0688"
- style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#035800;fill-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans">from headers and binding directives</tspan><tspan
- id="tspan3795"
- sodipodi:role="line"
- x="469.03497"
- y="1157.0688"
- style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#035800;fill-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans" /></text>
- </g>
- <g
- transform="matrix(0.9678438,0,0,0.9677923,-755.89347,194.37862)"
- id="g3709">
- <rect
- style="fill:#bff3bc;fill-opacity:1;stroke:#0af400;stroke-width:0.69825613;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- id="rect2821"
- width="198.90968"
- height="93.892342"
- x="305.2475"
- y="807.38849"
- ry="2.6812849"
- rx="2.1703238" />
- <text
- xml:space="preserve"
- style="font-size:40px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#035800;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- x="405.17499"
- y="831.81903"
- id="text3611"><tspan
- id="tspan3687"
- sodipodi:role="line"
- x="405.17499"
- y="831.81903"
- style="font-size:22px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;text-anchor:middle;fill:#035800;fill-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans Bold">TypeDatabase</tspan><tspan
- id="tspan5641"
- sodipodi:role="line"
- x="405.17499"
- y="853.33856"
- style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#035800;fill-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans">parses typesystem</tspan><tspan
- id="tspan3689"
- sodipodi:role="line"
- x="405.17499"
- y="873.33856"
- style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#035800;fill-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans">and stores information</tspan></text>
- </g>
- <g
- transform="matrix(0.9678438,0,0,0.9677923,-589.50555,-13.923919)"
- id="g3728">
- <rect
- style="fill:#bff3bc;fill-opacity:1;stroke:#0af400;stroke-width:0.54871088;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- id="rect3625"
- width="117.15066"
- height="86.355225"
- x="133.25664"
- y="809.36938"
- ry="2.6793056"
- rx="1.3412292" />
- <text
- xml:space="preserve"
- style="font-size:40px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#035800;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- x="191.58197"
- y="838.75159"
- id="text3627"><tspan
- sodipodi:role="line"
- x="191.58197"
- y="838.75159"
- style="font-size:22px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;text-anchor:middle;fill:#035800;fill-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans Bold"
- id="tspan3631">Parser</tspan><tspan
- id="tspan3695"
- sodipodi:role="line"
- x="191.58197"
- y="860.27112"
- style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#035800;fill-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans">parses the</tspan><tspan
- id="tspan3697"
- sodipodi:role="line"
- x="191.58197"
- y="880.27112"
- style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#035800;fill-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans">lib headers</tspan></text>
- </g>
- <path
- sodipodi:nodetypes="ccc"
- id="path4056-2-0-1"
- d="m 197.39006,961.71122 158.27877,0 0.19429,-51.88885"
- style="fill:none;stroke:#000000;stroke-width:1.38812411;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:8.32874408, 1.38812401;stroke-dashoffset:0;marker-start:none" />
- </g>
- </g>
-</svg>
diff --git a/sources/shiboken6/doc/images/qtforpython-underthehood.png b/sources/shiboken6/doc/images/qtforpython-underthehood.png
index 64e30b1c5..295cefcf9 100644
--- a/sources/shiboken6/doc/images/qtforpython-underthehood.png
+++ b/sources/shiboken6/doc/images/qtforpython-underthehood.png
Binary files differ
diff --git a/sources/shiboken6/doc/images/qtforpython-underthehood.svg b/sources/shiboken6/doc/images/qtforpython-underthehood.svg
new file mode 100644
index 000000000..8924d9d4b
--- /dev/null
+++ b/sources/shiboken6/doc/images/qtforpython-underthehood.svg
@@ -0,0 +1,1502 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="972.87427"
+ zoomAndPan="magnify"
+ viewBox="0 0 729.6557 410.72465"
+ height="547.63287"
+ preserveAspectRatio="xMidYMid"
+ version="1.0"
+ id="svg684"
+ sodipodi:docname="qtforpython-underthehood.svg"
+ inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
+ inkscape:export-filename="qtforpython-underthehood.png"
+ inkscape:export-xdpi="96"
+ inkscape:export-ydpi="96"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <sodipodi:namedview
+ id="namedview686"
+ pagecolor="#ffffff"
+ bordercolor="#000000"
+ borderopacity="0.25"
+ inkscape:showpageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ inkscape:deskcolor="#d1d1d1"
+ showgrid="false"
+ inkscape:zoom="0.80648148"
+ inkscape:cx="400.50517"
+ inkscape:cy="272.16992"
+ inkscape:window-width="2552"
+ inkscape:window-height="1432"
+ inkscape:window-x="1924"
+ inkscape:window-y="4"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg684" />
+ <defs
+ id="defs94">
+ <filter
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="941f55d5ad">
+ <feColorMatrix
+ values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"
+ color-interpolation-filters="sRGB"
+ id="feColorMatrix2" />
+ </filter>
+ <filter
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="7900779894">
+ <feColorMatrix
+ values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0.2126 0.7152 0.0722 0 0"
+ color-interpolation-filters="sRGB"
+ id="feColorMatrix5" />
+ </filter>
+ <clipPath
+ id="43b70e6d50">
+ <path
+ d="m 329.69531,337.88281 h 134.25 v 134.25 h -134.25 z m 0,0"
+ clip-rule="nonzero"
+ id="path10" />
+ </clipPath>
+ <clipPath
+ id="5e0498f898">
+ <path
+ d="m 418.84375,430.04687 h 78 v 78 h -78 z m 0,0"
+ clip-rule="nonzero"
+ id="path13" />
+ </clipPath>
+ <clipPath
+ id="ee2fc7472f">
+ <path
+ d="m 296.76953,430.04687 h 77.87109 v 78 h -77.87109 z m 0,0"
+ clip-rule="nonzero"
+ id="path16" />
+ </clipPath>
+ <clipPath
+ id="e49c99af70">
+ <path
+ d="m 418.84375,307.19531 h 78 v 77.8711 h -78 z m 0,0"
+ clip-rule="nonzero"
+ id="path19" />
+ </clipPath>
+ <clipPath
+ id="9f18cca9db">
+ <path
+ d="m 296.76953,307.19531 h 77.87109 v 77.8711 h -77.87109 z m 0,0"
+ clip-rule="nonzero"
+ id="path22" />
+ </clipPath>
+ <clipPath
+ id="9c58565a54">
+ <path
+ d="m 240.875,207.47656 h 111.52734 v 82.5 H 240.875 Z m 0,0"
+ clip-rule="nonzero"
+ id="path25" />
+ </clipPath>
+ <clipPath
+ id="9d28a89d3d">
+ <path
+ d="m 46.855469,529 h 73.500001 v 30 H 46.855469 Z m 0,0"
+ clip-rule="nonzero"
+ id="path28" />
+ </clipPath>
+ <clipPath
+ id="0baef73a1e">
+ <path
+ d="m 163.94922,224.44922 h 69.75 v 72 h -69.75 z m 0,0"
+ clip-rule="nonzero"
+ id="path31" />
+ </clipPath>
+ <clipPath
+ id="1f4a27800a">
+ <path
+ d="M 62.34375,227.08203 H 153 V 293 H 62.34375 Z m 0,0"
+ clip-rule="nonzero"
+ id="path34" />
+ </clipPath>
+ <mask
+ id="e94e818b4b">
+ <g
+ filter="url(#941f55d5ad)"
+ id="g42">
+ <g
+ filter="url(#7900779894)"
+ transform="matrix(0.196004,0,0,0.194118,62.344152,227.08093)"
+ id="g40">
+ <image
+ x="0"
+ y="0"
+ width="463"
+ xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAc8AAAFUCAAAAABnsuh3AAAAAmJLR0QA/4ePzL8AAAc6SURBVHic7d1dbltVFIbhtfZxxBQS0fyXizR1UjVMjJKmtI1AgFpC+gc3iBvmUP8wBwbAbJyzNxfHTtskTuzjiO796X0uKxVFerXO52MKdVtAVa8MDqL7Iv8M3J4Y/gwL/PZQrwwPanLmZIGeIa4MH55Vlm7vp8Gi2vcMcbn/8KyTjPvMSOueVVwefE3O3HRa/r5QLw8PziojZ15a3meIK8ODs44ncualXc8QVwYHo04iZ25a9azicu/gbIntzE+b/Qz1l8MHbGeWWtynx9XhgxHbmaX57zPE1cH+iIdtnua+zyquDcmZrXl7hvpOf2/UYTszNefz1uOd4f5oydjOTM13nyE120nOXM3Vs4qrgwdsZ87med6GenXIduZtjvv0uDbcGy3x3pmz2XuGdKe3x3ZmbuaeVVxjO/M3636Gem3YZTuzN+N9hrg+7LKd+ZutZ4hbf3fZzgLM1LOKW/1dtrMEs+xnqLcG99jOIszQM8StwT2+sy3DzT3HOXnYFuHG/aziNjnLcVPPqt7usZ3luOF5G+rtwQ7bWY7r7zPErwY7vHcW5NqeVdzu7bCdJbmuZ6jvDnbYzqJcs58h3u2znYWZ3jPErfc8bEsz9XnLd7ZFmtazqjf7uyP+c93STOkZ6s3B7mjJyVmYq3uGuN3f5b2zQFf2rOLm+/tsZ4mu+nxb1ZsDtrNMV9wn21mwy/cZ4iYvKsW6dJ9V3OyzncW62LOqN3r32c5iXegZ6o1+l+0s16f7GeJ6r8vDtmCf3GcVN/p75CzZxz2rerO/x3YW7aOeod7osZ2F+7CfIa73uvxP3Ap3fp/NdvKwLdzkPqt6o98lZ/HG98l7p4jmPtlOFcHMrIpr79lOCR0zq+q1/j45JYRmO/fZTg0dC3G9z3aqCFXkRUVIqPkopCSss51KOgO2U0no8neQKQk1OZWEwH+uqyTwUUjKIn/fMvJDTy301EJPLfTUQk8t9NRCTy301EJPLfTUQk8t9NRCTy301EJPLfTUQk8t9NRCTy301EJPLfTUQk8t9NRCTy301EJPLfTUQk8t9NRCTy301EJPLfTUQk8t9NRCTy301EJPLfTUQk8t9NRCTy301EJPLfTUQk8t9NRCTy301EJPLfTUQk8t9NRCTy301EJPLfTUQk8t9NRCTy301EJPLfTUQk8t9NRCTy301EJPLfTUQk8t9NRCTy301EJPLfTUQk8t9NRCTy301EJPLfTUQk8t9NRCTy301EJPLfTUQk8t9NRCTy301EJPLfTUQk8t9NRCTy301EJPLfTUQk8t9NRCTy301EJPLfTUQk8t9NRCTy301EJPLfTUQk8t9NRCTy301EJPLfTUQk8t9NRCTy301EJPLfTUQk8t9NRCTy301EJPLfTUQk8t9NRCTy301EJPLfTUQk8t9NRCTy301EJPLfTUQk8t9NRCTy301EJPLfTUQk8t9NRCTy301EJPLfTUQk8t9NRCTy301EJPLfTUQk8t9NRCTy301EJPLfTUQk8t9NRCTy301EJPLfTUQk8t9NRCTy301EJPLfTUQk8t9NRCTy301EJPLfTUQk8t9NRCTy301EJPLfTUQk8t9NRCTy301EJPLfTUQk8t9NRCTy301EJPLfTUQk8t9NRCTx3JLNFTRvJoS/RUkTxW9i89RSSP7ie/dz73z4FbkTwGO3nK5yEN5zk9fe4fBYtLHt1fHVmI3KeAZjuPzKOxn+WbPGw98X2CgPPtTEbP8iWPbidPzaOZGZ+HCjf5KDQOyX6WLXkM9iEnz9uyTXKGyWOWniVLHt1eHVmIk19hPwt2YTvNuM+SJY/BTz7JyX2W63w740e/yH2W6vJ2mtGzWMmj++nR+GuEc7x/lil5DHb65NJecp9FmuQMFz/+8HmoRMmj+5vDC9tpxn0WKXl0f314cTvNuM8SJY/B3hxe2Y77LM4k56XtNKNneZJHt9OrttOM521xmu18PCUnPQsz/ZNtg+dtUZLH4K+n56RnUZJHtzdTH7ZGz6Jc8945wX6WI3l0f/fomuvkPgsyS056FiN5dH97Q06et6WY6Tq5z1I0H4VuzEnPMiSPwV9d96IyxvO2BDd9K/QB91mA5NFueO+c4M8PZS/Z+Cv4WZ6l3GfuknkM/vLx1f++8yJ6Zi6Zx2Avns+wnWb0zJ9Ht5fHs2ynGfuZufF1Hs/8HsJ95qzJ+fPsOemZsybnT9/P8S0BPXPm0e3HH+b50ofvh7I1ftjOc53cZ75a5aRnrlpspxnvK/nyurLjF/MOIvuZpeY6n7+cuw/3maMm57Nf5j839jNDTc7jFjm5zyx5XbW6TvYzQ811Pj1p1Yb7zE2T87tf250a+5mZZF63z0nP7Hhd2bO2OdnPvDQP2yenrbuwnzlpcn77tv2Z8bzNSLOdi+TkPrPidWWP3i0ygp3Z/pgR/g9eV3a4UE4+D2Xmm98WS9L559Z+FCwqffHXHwte2H8K+gdgTcZwAgAAAABJRU5ErkJggg=="
+ height="340"
+ preserveAspectRatio="xMidYMid"
+ id="image38" />
+ </g>
+ </g>
+ </mask>
+ <mask
+ id="8f2a27f6f4">
+ <g
+ filter="url(#941f55d5ad)"
+ id="g51">
+ <g
+ filter="url(#7900779894)"
+ transform="matrix(0.198482,0,0,0.198482,536.61425,471.98102)"
+ id="g49">
+ <image
+ x="0"
+ y="0"
+ width="461"
+ xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAc0AAAHNCAAAAABZLn/BAAAAAmJLR0QA/4ePzL8AAA53SURBVHic7d1djty4FQXgc6mqmayhPch7duFxP2UNhm0EWVhgd7wMj72JZAHBuNcw45J480CKXd31px+qdMk630OAmUEaRh9TIo8oCiAiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiWocs8UOd//Vff/3DLfGj6ZwF0hTx9x9f6SJ/T+isJv+PdP7+46u20fw/mS7IP4Kcv//4arfl2FxB9t85w1xR7l96091/umOYK8n8W2+6Nw937YZhriPvr73p3jzcdQ3DXEnW37vzbx7uOscs15Jzie/8/cNd54Rrk7XkG0ci/v7TXeeE19nV5Bub4u8/3rUNGOZ6sv3qnf/1gevMleX65Tv/+uEXhrmyTFfaxt9/Zpiry/PrZ2lgQ5bfP0sDI3IEwNLAigz3TZYGZsweUCwNDJk9NlkaGDI3Az6ctmRmCgzTlHkxcKeBLbNyYGlgzJwgmu71Z5YGlszYT+v8m3/fdW6Z7fI0xfQVSl8aZPzD0ExTw2BpYNHUscnSwKKJYXCdadK0OBimTZPyYGlg1JRAWBpYNSER7jQwa3wkcacBSwODRq9QWBoYNjIVEf/6M0sDq0aOTfG/Pty1DcO0aVyazt8//LLbKG+aNo2KhaWBcWOCYWlg3YhkWBqYNzwalgb2Dc6GpUEBhs5pWRqUYFg83GlQhmFjM+40YJjGDUozrDNZGpg3JB+WBqUYkFDTvf7M0qAIl6+0Tffm813LMEtwMSOWBgW5FBJLg5JcuNKyNCjK2ZxYGhTm3NgUlgaFOZsmS4PCnAmKpUFxTkfFnQblOZkVdxoU6FRYLA1KdCItFzZBc/5TluNzWudfszQo0LHAWBqU6sjYZGlQrGNpsjQo1WFiLA3KdZAZS4OCvQyNpUHJXqTG0qBoz2PjToOyPZvTcqdB4faSY2lQvKexydKgfE/J8ZOL5Utj0/l7hlm6PjyWBjWI6bE0qEKIj6VBHQRgaVANB5YG9RCWBhVxLA0q4rjToCIC7jSoh/v7p1e7LT85XQf579/ajQK8bdZAfNt0G4GKMtDiiReFdo1TUQ7Q0omHQIHdFgLmWTjxEhYn+ufP6qAQrlXKJQoVBQDx7Tbkyc8wliokCRWooEUTxyfjLJL0S00VhaATgHkWS56Kg5CnB7RhnmWS/Rqoz1N1wzxLJM9LvZindNiAK9DiyGFFqxB492PjlCvQwhymGZecKj+2YKNQliNjs7/eQttGmGdJjqYZ8oRAOwcJlfyV/1w0xYk0kQZo69RxOlSI02dgCiCqunEerYgCfKRt3tkTTQGI6lagrYhCGahxp6+0UVh1aiiIeMG17WKaqVBQdaJgoJZdTrPPU6G+EXDBYtiQ74iF+ZCION1BOSOya8jYBNL4lK77iYWfWUPTRCrhW3EsiIwaniZShduGgoh5mjMqTaQtCk65RcGgsWnubTnhFgVzxqeJWMJ7eGlYyJsyJc2+kPfSbiTcSxmpCcO+Qv6CqEChThrsRMAVqBWTxibC1TY0RN1GuWIxYmqaQFqBqncAH2lbMOlKG0nMsEEHr7zcrm9OmgBEVFSlkQ4db5+rm5lmrOQFW6gyz7XNuW/24pYwr8KCaF050nzKU7zj9HZFedLE3haFfnwy0evLlmZ6BKrQho9A15ExzactJ143ygXoCrKm2RfyKq04CPf4XVvmNAFo2Ii724Bbwq4tf5qpwu2ccovCdS2QJtBXuD7kyTCvZaE0gXDOiYrnMcbXs1nsJ4fLLYO8pkXHZrhncmhezYJpxsKPs6Drmf0M5Rw59l1sWs6iY5OubNGxSVfGNGvCNGvCNGvCNGvCNGvCNGuycpoK5SlE+azdHqjwGKJ8lnuGMkh/2ibYzeewcppA3HrCMHNY+b4pKlCFV+H9M4O1Z0GicCLgO0lZWBibAgH4TlIGa89pn97pDcds8hCFOdZPc29iq+B3HmYxMKeNr4CqAOIlrkCZ5xQWxibSDiJAOT5nMJIm8PROEjyPZZzIUJpIMyKfDshY+w9UGFvPUPoFi/PhkBM2CuPYSrM/plobUXjhCnQkW1daAE8zov5/ecEdzGCaQHyrN3xOO7xByECHMHal7YVDpSCKLrwOygvuEEbTTPMhEbT8zsNQRq+0QCr8wjGb3KIwhOE0994xiwtQxnmB6TSB/pgwVeEE9zKr981EIBCFA1Q975/nWXiGckmc4AKq6viA5QzzV9ogFLiAgsdsnlFImn2fIBqWK9yicFQxaT4digGVsHBhni+VcN8MBBBFvwSNRS7zfKacsRn0x6aKOh5ec6C0NOMxfnGU8vb5nPn15gEBABUR8UgTXQJQ4tgE9r6kHQo/DtConFnQvjAjEnUaTsPlfCgoc2wC6TsPfYPL4YkS75u9UOCGA4353aug3DQBiIqoSHjHjNfakq+0wf58iHGWOQt6EudDxf+tzKOG30KcAXFoVpEm+uL25lWSJgEofE5LLzDNmjDNmjDNmjDNmjDNmjDNmtxEmgq9jWP8bqM9ULmNtugm0kyHhdX+mOUmrrQA4PUGtoTdRJqiIgKP6t8xu4k0VVRFHFS9VH1zuYk04ylEcHF3X7Xz24r/oj63944Zqv3I682kmQ7F6L8KUOMMt/R9QcPFgxgBgY8n2FS3++R2xmYUBqWK1njM5s2lCY3HU2v/+kNFed5emvt7cNXVNTxvMc29Y6pR1/z2NtPc/86D6/+5gkBvNc10SFg89a2OSv4muqCjBBBJx47Xcczm7Y5N4KlR6Fwdh2Lc7tgE0qk12gCqqsX/1b7tNENDBFFxVWxMKP6vYw7pXOPSE72dnvYMqWXZybFZk1u/b9aFadaEadaEadaEadaEadaEadaEadaEadaEaQ6nsP4WKNMcTsw/0mbrPlzaG2a2nOfYHCm+zWKT2T+YRfGbrnY3+HFsDhfHpFexOh9imsNJfEkbnYjNt+6Z5hgqquog2tmc3/K+OZLG7wzCGXwFlGmO1a9TvLP3JW2uN8fqvwvgxANia/3JsTlFHJ+iYYs8YOScMI7NKfrxCefVwc4rDxybU/WToE7C20kWMM05whW3bXxjI05eaecIV1w7v0OOzbksLTuZZgZm4mSaNWFPWxOmWROmWROmWROmWROmWROmuazr7iDienNhes0tfhyby9JwsvGVBijTXJz3V9sSxjQX55xXqMgVvtxh52lOnUQFEGkdICpL7yHi2FyYqEJ041r030lacHxyTnsF4RFo1/hm4YehTPMqVFTg1aksuiWMaV5H3LOp4t2Cw5P3zeuIH6ZzELRxubLAOOLYvJ54DK6Xdov4ObPMmOY1xe88wOtGZYHPdjDNK4tfjmzFLfBOEtO8tv4dlk7CO0k582QXdG0SPxfZoAPUZX3HjGNzHf2KBXDQbCfKM821hDw7UcmXJ9NcT8zTdU2u+S3bg/WERqERwS6sXWaPLI7NdfUfXu4aefpO+mRMc23xkBN4J7OfsPBKuzZRURWBkxY6s8Ll2DQgXWJ/bOOXtCcOUI5NA8J0CKo/oVMvwNQZEcemHSoq6NTBTS38mKYhfaGAqXnySmtIXIA6QNtJO3A5No1JBa7fjB+fTNOc/ljGDhvFuBUo0zSofwT6o2l01CNQpmlSynMjY7YoME2jYqOgnRuRJ9M0S+OX0b2IuvAe6KX/C9O0LOzxQyc6bE8115uWCSBQbZzvF6DnBx/TtE0gENWtg+5EFOcbBV5pCxCee3rxmwsnNDLNIoRH2grfyLktYUyzDH1BpN1GTg9QplmK9L3I3U+xIDrcRMQ0y9EXRL7dqsOxHWFMsyRhOgRpdaPHHoEyzdKEEbpzcuSRNtMsz+ktCkyzRCFPD2jzLE+mWaaYp3TY7BXyTLNQYZUCL7uNC5+lU2Ga5YpLTi9//izxH5lmyfpGYbftv+y69p+I5ogvIvmuEY7NCsTXVrRtug3TrEDYotBu/sM0q6CQ3fbxnzxhpg6y237/8IU7SWqgMUxeacungnbz/cMXxzlt+VTUN4/vvzhV3jdLl8L0PGevAuqbx3e/OQ/upy2eim8e3/3WeIBplk6lbR7f/dZ0AJhm4VR2m8f3fZhMs2gqu+33919cDJOzoJKp7Lbf3311vv8XHJvFUki7/f7hq3uqDNgelGqvNEj/jlfaQu2XBgnTLNVeaZDwvlmmZ6VBwjSL9Lw0SJhmiV6UBgnTLNDL0iBhmuXpdxr4g//CNEsTS4Mv7khTwPagMMdKg4TrzbKoqG9+f/ftyGUWHJulUfjm8e2JMHnfLEsoDb41x8NkmkU5URokTLMgp0qDhGmW42RpkDDNYpwuDRKmWYhzpUHCFUoZzpYGCduDIhzdaXCIaZbh2E6DQ7xvluD4ToNDTLMAl0qDhFda+1R228e33y6HybFpXygNvp0pDRKmad2A0iDhetO2dKbBkDCZpm3DSoOEsyDLBpYGCdM0bVhpkHAWZNjQ0iBhmnYNLg0SpmnWxZ0Gh5imVZd3GhximkaNKQ0SrjdNUkG7+f3913FhMk2Twjrz7beBpUHC9aZBsTQ4taP9NKZp0cjSIOEsyJ7RpUHCNM0ZXxokTNOaCaVBwjSNmVIaJEzTlkmlQcL1piUKGbHT4BDTNGTkToNDXG/aMXanwSGmacjU0iDhLMgMFd88vp1SGiRM04pQGgzZ0X4a0zRiTmmQME0bZpUGCdM0YV5pkHC9acDc0iBhmuubXRokXG+ubn5pkHBsrm92aZBwFrQ2xdSdBoeY5spm7DQ4xDTXlaU0SHjfXJXKbnvyJOjxODbX1B9QkSlMrlBWlD65mCtMXmnXk680SDg215KxNEg4NleTrzRIOAtaSc7SIGGa68haGiRMcxV5S4OEaa4hz06DQ0xzBZl2GhyS7D+RLsq00+DID+YK5fpUvn/IWRok8kf2H0kX+L/87x8Z6zwiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgP+DzpdwlLjG1tvAAAAAElFTkSuQmCC"
+ height="461"
+ preserveAspectRatio="xMidYMid"
+ id="image47" />
+ </g>
+ </g>
+ </mask>
+ <clipPath
+ id="9cd47c7ee3">
+ <path
+ d="m 268,534 h 119 v 74 H 268 Z m 0,0"
+ clip-rule="nonzero"
+ id="path55" />
+ </clipPath>
+ <clipPath
+ id="69785d3302">
+ <path
+ d="m 284.80469,510.52344 111.6914,32.23828 -23.91797,82.86719 -111.6914,-32.23829 z m 0,0"
+ clip-rule="nonzero"
+ id="path58" />
+ </clipPath>
+ <clipPath
+ id="9c0953b9a2">
+ <path
+ d="m 372.87891,625.72656 -111.69141,-32.23437 23.91797,-82.8711 111.6914,32.23828 z m 0,0"
+ clip-rule="nonzero"
+ id="path61" />
+ </clipPath>
+ <clipPath
+ id="8e32f12866">
+ <path
+ d="m 372.87891,625.72656 -111.69141,-32.23437 23.91797,-82.8711 111.6914,32.23828 z m 0,0"
+ clip-rule="nonzero"
+ id="path64" />
+ </clipPath>
+ <clipPath
+ id="a3af3eb6b6">
+ <path
+ d="m 698.37109,329 h 48.75 v 135.9375 h -48.75 z m 0,0"
+ clip-rule="nonzero"
+ id="path67" />
+ </clipPath>
+ <clipPath
+ id="31f8f05393">
+ <path
+ d="m 508,316 h 77 v 50 h -77 z m 0,0"
+ clip-rule="nonzero"
+ id="path70" />
+ </clipPath>
+ <clipPath
+ id="41889181af">
+ <path
+ d="M 594.73828,339.63672 520.52344,380.56641 506.03516,354.29687 580.25,313.36719 Z m 0,0"
+ clip-rule="nonzero"
+ id="path73" />
+ </clipPath>
+ <clipPath
+ id="fe9d13e8b4">
+ <path
+ d="m 520.6875,380.47656 74.21484,-40.92969 -14.48828,-26.26953 -74.21094,40.92969 z m 0,0"
+ clip-rule="nonzero"
+ id="path76" />
+ </clipPath>
+ <clipPath
+ id="6c6e35ef02">
+ <path
+ d="m 520.6875,380.47656 74.21484,-40.92969 -14.48828,-26.26953 -74.21094,40.92969 z m 0,0"
+ clip-rule="nonzero"
+ id="path79" />
+ </clipPath>
+ <clipPath
+ id="9d2f7452d2">
+ <path
+ d="m 544,250 h 60.1875 v 43.51172 H 544 Z m 0,0"
+ clip-rule="nonzero"
+ id="path82" />
+ </clipPath>
+ <clipPath
+ id="5d999a0038">
+ <path
+ d="M 543.4375,219 H 560 v 8 h -16.5625 z m 0,0"
+ clip-rule="nonzero"
+ id="path85" />
+ </clipPath>
+ <clipPath
+ id="a4f0b4e13e">
+ <path
+ d="m 548,215.51172 h 47 V 249 h -47 z m 0,0"
+ clip-rule="nonzero"
+ id="path88" />
+ </clipPath>
+ <clipPath
+ id="0ea259bc34">
+ <path
+ d="m 595,215.51172 h 6 V 249 h -6 z m 0,0"
+ clip-rule="nonzero"
+ id="path91" />
+ </clipPath>
+ </defs>
+ <rect
+ style="fill:#ffffff;stroke:none;stroke-width:0.75"
+ id="rect1721"
+ width="728.9057"
+ height="409.97464"
+ x="0.375"
+ y="0.375" />
+ <path
+ fill="#41cb51"
+ d="m 353.33158,222.2777 c -10.36328,0 -18.79687,-8.4336 -18.79687,-18.79688 0,-10.36328 8.43359,-18.79297 18.79687,-18.79297 10.35938,0 18.79297,8.42969 18.79297,18.79297 0,10.36328 -8.43359,18.79688 -18.79297,18.79688 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path102" />
+ <g
+ clip-path="url(#43b70e6d50)"
+ id="g106"
+ transform="translate(-43.488732,-201.52699)">
+ <path
+ fill="#41cb51"
+ d="m 461.69141,394.18359 -14.32813,-2.33984 c -1.21484,-4.66797 -3.07422,-9.12891 -5.54687,-13.3125 l 8.37109,-11.92969 c 0.75,-1.07031 0.625,-2.51953 -0.29688,-3.4414 L 438.5,351.76953 c -0.92969,-0.93359 -2.40234,-1.05078 -3.46484,-0.28125 l -11.80469,8.48438 c -4.19141,-2.46485 -8.66016,-4.32032 -13.32422,-5.52735 l -2.51172,-14.33984 c -0.22656,-1.28516 -1.34375,-2.22266 -2.64844,-2.22266 h -16.10937 c -1.31641,0 -2.4375,0.95313 -2.65235,2.25391 l -2.33984,14.33984 c -4.60937,1.19922 -9.03516,3.03516 -13.19531,5.47656 l -11.86328,-8.47656 c -1.07032,-0.76172 -2.52735,-0.64062 -3.46094,0.28516 l -11.39063,11.39062 c -0.92187,0.91797 -1.05078,2.36719 -0.30078,3.4336 l 8.375,11.96484 c -2.46093,4.16406 -4.30859,8.60938 -5.51953,13.24609 l -14.34765,2.39063 c -1.29688,0.21484 -2.2461,1.33203 -2.2461,2.64453 v 16.11328 c 0,1.30078 0.9336,2.41406 2.21485,2.64063 l 14.35156,2.54687 c 1.20312,4.62891 3.04297,9.06641 5.49219,13.24219 l -8.48047,11.85156 c -0.76172,1.07031 -0.64063,2.53516 0.28515,3.46094 l 11.39063,11.39062 c 0.91797,0.91797 2.36719,1.04688 3.4375,0.30079 l 11.95703,-8.36719 c 4.14844,2.45312 8.58984,4.30078 13.24609,5.51953 l 2.39453,14.35937 c 0.21875,1.29297 1.33985,2.24219 2.65235,2.24219 h 16.10937 c 1.29688,0 2.41407,-0.93359 2.64063,-2.21484 l 2.54687,-14.35547 c 4.69141,-1.21484 9.17578,-3.07813 13.3711,-5.55469 l 11.9414,8.3711 c 1.07032,0.75 2.51953,0.625 3.44141,-0.29688 l 11.38281,-11.39062 c 0.9336,-0.92969 1.05078,-2.39844 0.28125,-3.46485 l -8.49219,-11.80469 c 2.46094,-4.1875 4.3125,-8.65234 5.51954,-13.3164 l 14.34375,-2.51563 c 1.28515,-0.22656 2.22265,-1.34375 2.22265,-2.64453 v -16.11328 c 0,-1.3125 -0.95312,-2.4375 -2.2539,-2.64844 z m -64.8711,43.04688 c -17.76953,0 -32.22265,-14.45703 -32.22265,-32.22266 0,-17.76562 14.45312,-32.21875 32.22265,-32.21875 17.76563,0 32.21875,14.45313 32.21875,32.21875 0,17.76563 -14.45312,32.22266 -32.21875,32.22266 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path104" />
+ </g>
+ <g
+ clip-path="url(#5e0498f898)"
+ id="g110"
+ transform="translate(-43.488732,-201.52699)">
+ <path
+ fill="#ffd43b"
+ d="m 473.52344,430.04687 c 0,30.17188 -24.50782,54.67969 -54.67969,54.67969 v 23.32031 c 43.08594,0 78,-34.91406 78,-78 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path108" />
+ </g>
+ <g
+ clip-path="url(#ee2fc7472f)"
+ id="g114"
+ transform="translate(-43.488732,-201.52699)">
+ <path
+ fill="#306998"
+ d="m 320.08984,430.04687 c 0,30.17188 24.50391,54.67969 54.67969,54.67969 v 23.32031 c -43.08594,0 -78,-34.91406 -78,-78 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path112" />
+ </g>
+ <g
+ clip-path="url(#e49c99af70)"
+ id="g118"
+ transform="translate(-43.488732,-201.52699)">
+ <path
+ fill="#306998"
+ d="m 473.52344,385.19531 c 0,-30.17187 -24.50782,-54.67969 -54.67969,-54.67969 v -23.32031 c 43.08594,0 78,34.91406 78,78 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path116" />
+ </g>
+ <g
+ clip-path="url(#9f18cca9db)"
+ id="g122"
+ transform="translate(-43.488732,-201.52699)">
+ <path
+ fill="#ffd43b"
+ d="m 320.08984,385.19531 c 0,-30.17187 24.50391,-54.67969 54.67969,-54.67969 v -23.32031 c -43.08594,0 -78,34.91406 -78,78 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path120" />
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g130"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(618.829,252.49077)"
+ id="g128">
+ <g
+ id="g126">
+ <path
+ d="m 10.484375,0.375 c -3.398437,0 -5.699219,-0.9375 -6.90625,-2.8125 -1.210937,-1.882812 -1.8125,-4.972656 -1.8125,-9.265625 0,-4.289063 0.609375,-7.347656 1.828125,-9.171875 1.21875,-1.820312 3.515625,-2.734375 6.890625,-2.734375 2.007813,0 4.222656,0.28125 6.640625,0.84375 L 17,-19.703125 C 14.957031,-20.066406 12.921875,-20.25 10.890625,-20.25 c -2.03125,0 -3.414063,0.605469 -4.140625,1.8125 -0.71875,1.210938 -1.078125,3.484375 -1.078125,6.828125 0,3.335937 0.347656,5.605469 1.046875,6.8125 0.695312,1.210937 2.0625,1.8125 4.09375,1.8125 2.039062,0 4.101562,-0.171875 6.1875,-0.515625 l 0.09375,3.125 c -2.324219,0.5 -4.527344,0.75 -6.609375,0.75 z m 0,0"
+ id="path124" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g138"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(636.53192,252.49077)"
+ id="g136">
+ <g
+ id="g134">
+ <path
+ d="m 11.1875,-7.21875 h -4.75 V 0 h -3.75 v -23.234375 h 8.5 c 5.269531,0 7.90625,2.601563 7.90625,7.796875 0,2.667969 -0.664062,4.703125 -1.984375,6.109375 -1.324219,1.40625 -3.296875,2.109375 -5.921875,2.109375 z m -4.75,-3.265625 h 4.71875 c 2.71875,0 4.078125,-1.648437 4.078125,-4.953125 0,-1.582031 -0.328125,-2.734375 -0.984375,-3.453125 -0.65625,-0.726563 -1.6875,-1.09375 -3.09375,-1.09375 H 6.4375 Z m 0,0"
+ id="path132" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g146"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(655.82879,252.49077)"
+ id="g144">
+ <g
+ id="g142">
+ <path
+ d="M 0.671875,-16.96875 H 4.3125 l 3.59375,13.8125 H 8.8125 l 3.609375,-13.8125 h 3.65625 L 9.640625,7.296875 H 6 L 8.046875,0 H 5.125 Z m 0,0"
+ id="path140" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g154"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(671.76817,252.49077)"
+ id="g152">
+ <g
+ id="g150">
+ <path
+ d="M 11.359375,-13.8125 H 6.6875 v 7.46875 c 0,1.375 0.097656,2.292969 0.296875,2.75 0.207031,0.449219 0.726563,0.671875 1.5625,0.671875 l 2.78125,-0.09375 L 11.5,-0.0625 C 9.988281,0.226562 8.835938,0.375 8.046875,0.375 c -1.929687,0 -3.25,-0.4375 -3.96875,-1.3125 -0.710937,-0.882812 -1.0625,-2.550781 -1.0625,-5 v -7.875 H 0.84375 v -3.15625 H 3.015625 V -21.875 H 6.6875 v 4.90625 h 4.671875 z m 0,0"
+ id="path148" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g162"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(683.16307,252.49077)"
+ id="g160">
+ <g
+ id="g158">
+ <path
+ d="M 5.9375,0 H 2.234375 V -24.015625 H 5.9375 v 7.9375 c 1.675781,-0.832031 3.222656,-1.25 4.640625,-1.25 2.257813,0 3.800781,0.640625 4.625,1.921875 0.832031,1.273438 1.25,3.375 1.25,6.3125 V 0 H 12.75 v -8.984375 c 0,-1.832031 -0.195312,-3.132813 -0.578125,-3.90625 -0.386719,-0.769531 -1.199219,-1.15625 -2.4375,-1.15625 -1.085937,0 -2.167969,0.183594 -3.25,0.546875 L 5.9375,-13.296875 Z m 0,0"
+ id="path156" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g170"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(700.9338,252.49077)"
+ id="g168">
+ <g
+ id="g166">
+ <path
+ d="m 3.171875,-15.125 c 1.164063,-1.46875 3.101563,-2.203125 5.8125,-2.203125 2.71875,0 4.65625,0.734375 5.8125,2.203125 1.164063,1.46875 1.75,3.671875 1.75,6.609375 0,2.9375 -0.570313,5.15625 -1.703125,6.65625 -1.125,1.492187 -3.078125,2.234375 -5.859375,2.234375 -2.78125,0 -4.742187,-0.742188 -5.875,-2.234375 -1.125,-1.5 -1.6875,-3.71875 -1.6875,-6.65625 0,-2.9375 0.582031,-5.140625 1.75,-6.609375 z M 5.9375,-4.109375 C 6.457031,-3.203125 7.472656,-2.75 8.984375,-2.75 c 1.519531,0 2.539063,-0.453125 3.0625,-1.359375 0.519531,-0.90625 0.78125,-2.382813 0.78125,-4.4375 0,-2.0625 -0.28125,-3.519531 -0.84375,-4.375 -0.554687,-0.863281 -1.554687,-1.296875 -3,-1.296875 -1.449219,0 -2.449219,0.433594 -3,1.296875 -0.554687,0.855469 -0.828125,2.3125 -0.828125,4.375 0,2.054687 0.257812,3.53125 0.78125,4.4375 z m 0,0"
+ id="path164" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g178"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(718.16191,252.49077)"
+ id="g176">
+ <g
+ id="g174">
+ <path
+ d="M 5.9375,0 H 2.234375 V -16.96875 H 5.90625 v 1.0625 c 1.644531,-0.945312 3.203125,-1.421875 4.671875,-1.421875 2.257813,0 3.800781,0.640625 4.625,1.921875 0.832031,1.273438 1.25,3.375 1.25,6.3125 V 0 H 12.78125 v -8.984375 c 0,-1.832031 -0.199219,-3.132813 -0.59375,-3.90625 -0.398438,-0.769531 -1.203125,-1.15625 -2.421875,-1.15625 -1.148437,0 -2.257813,0.230469 -3.328125,0.6875 l -0.5,0.203125 z m 0,0"
+ id="path172" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g186"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(618.829,286.99077)"
+ id="g184">
+ <g
+ id="g182">
+ <path
+ d="m 2.6875,0 v -23.234375 h 14.640625 v 3.28125 H 6.4375 v 6.59375 h 8.859375 v 3.25 H 6.4375 v 6.78125 H 17.328125 V 0 Z m 0,0"
+ id="path180" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g194"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(636.83714,286.99077)"
+ id="g192">
+ <g
+ id="g190">
+ <path
+ d="m 0.609375,-16.96875 h 3.9375 l 3.328125,5.875 3.359375,-5.875 H 15.15625 L 10.109375,-8.609375 15.15625,0 H 11.234375 L 7.875,-5.796875 4.546875,0 h -3.9375 L 5.53125,-8.515625 Z m 0,0"
+ id="path188" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g202"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(651.82693,286.99077)"
+ id="g200">
+ <g
+ id="g198">
+ <path
+ d="M 11.359375,-13.8125 H 6.6875 v 7.46875 c 0,1.375 0.097656,2.292969 0.296875,2.75 0.207031,0.449219 0.726563,0.671875 1.5625,0.671875 l 2.78125,-0.09375 L 11.5,-0.0625 C 9.988281,0.226562 8.835938,0.375 8.046875,0.375 c -1.929687,0 -3.25,-0.4375 -3.96875,-1.3125 -0.710937,-0.882812 -1.0625,-2.550781 -1.0625,-5 v -7.875 H 0.84375 v -3.15625 H 3.015625 V -21.875 H 6.6875 v 4.90625 h 4.671875 z m 0,0"
+ id="path196" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g210"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(663.22182,286.99077)"
+ id="g208">
+ <g
+ id="g206">
+ <path
+ d="m 14.3125,-3.046875 0.953125,-0.109375 0.0625,2.75 C 12.753906,0.113281 10.472656,0.375 8.484375,0.375 5.972656,0.375 4.164062,-0.3125 3.0625,-1.6875 1.96875,-3.070312 1.421875,-5.28125 1.421875,-8.3125 c 0,-6.007812 2.453125,-9.015625 7.359375,-9.015625 4.75,0 7.125,2.589844 7.125,7.765625 l -0.234375,2.640625 H 5.15625 c 0.019531,1.40625 0.320312,2.4375 0.90625,3.09375 0.59375,0.65625 1.691406,0.984375 3.296875,0.984375 1.601563,0 3.253906,-0.066406 4.953125,-0.203125 z m -2.03125,-6.71875 c 0,-1.675781 -0.265625,-2.847656 -0.796875,-3.515625 -0.53125,-0.664062 -1.433594,-1 -2.703125,-1 -1.261719,0 -2.183594,0.355469 -2.765625,1.0625 -0.574219,0.699219 -0.871094,1.851562 -0.890625,3.453125 z m 0,0"
+ id="path204" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g218"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(679.70382,286.99077)"
+ id="g216">
+ <g
+ id="g214">
+ <path
+ d="M 5.9375,0 H 2.234375 V -16.96875 H 5.90625 v 1.0625 c 1.644531,-0.945312 3.203125,-1.421875 4.671875,-1.421875 2.257813,0 3.800781,0.640625 4.625,1.921875 0.832031,1.273438 1.25,3.375 1.25,6.3125 V 0 H 12.78125 v -8.984375 c 0,-1.832031 -0.199219,-3.132813 -0.59375,-3.90625 -0.398438,-0.769531 -1.203125,-1.15625 -2.421875,-1.15625 -1.148437,0 -2.257813,0.230469 -3.328125,0.6875 l -0.5,0.203125 z m 0,0"
+ id="path212" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g226"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(697.47455,286.99077)"
+ id="g224">
+ <g
+ id="g222">
+ <path
+ d="m 14.015625,-13.46875 c -2.679687,-0.363281 -4.617187,-0.546875 -5.8125,-0.546875 -1.199219,0 -2.03125,0.148437 -2.5,0.4375 -0.460937,0.28125 -0.6875,0.730469 -0.6875,1.34375 0,0.605469 0.253906,1.03125 0.765625,1.28125 0.507812,0.25 1.707031,0.542969 3.59375,0.875 1.894531,0.324219 3.238281,0.835937 4.03125,1.53125 0.789062,0.699219 1.1875,1.945313 1.1875,3.734375 0,1.78125 -0.574219,3.09375 -1.71875,3.9375 -1.148438,0.8359375 -2.8125,1.25 -5,1.25 -1.386719,0 -3.132812,-0.195312 -5.234375,-0.578125 L 1.59375,-0.375 1.734375,-3.453125 c 2.707031,0.355469 4.660156,0.53125 5.859375,0.53125 1.195312,0 2.050781,-0.144531 2.5625,-0.4375 0.507812,-0.289063 0.765625,-0.773437 0.765625,-1.453125 0,-0.675781 -0.246094,-1.144531 -0.734375,-1.40625 C 9.707031,-6.476562 8.546875,-6.757812 6.703125,-7.0625 4.859375,-7.375 3.503906,-7.859375 2.640625,-8.515625 c -0.855469,-0.65625 -1.28125,-1.851563 -1.28125,-3.59375 0,-1.738281 0.59375,-3.035156 1.78125,-3.890625 1.1875,-0.863281 2.707031,-1.296875 4.5625,-1.296875 1.445313,0 3.222656,0.183594 5.328125,0.546875 l 1.046875,0.203125 z m 0,0"
+ id="path220" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g234"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(712.63391,286.99077)"
+ id="g232">
+ <g
+ id="g230">
+ <path
+ d="M 2.234375,0 V -16.96875 H 5.9375 V 0 Z m 0,-19.84375 V -23.75 H 5.9375 v 3.90625 z m 0,0"
+ id="path228" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g242"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(720.06086,286.99077)"
+ id="g240">
+ <g
+ id="g238">
+ <path
+ d="m 3.171875,-15.125 c 1.164063,-1.46875 3.101563,-2.203125 5.8125,-2.203125 2.71875,0 4.65625,0.734375 5.8125,2.203125 1.164063,1.46875 1.75,3.671875 1.75,6.609375 0,2.9375 -0.570313,5.15625 -1.703125,6.65625 -1.125,1.492187 -3.078125,2.234375 -5.859375,2.234375 -2.78125,0 -4.742187,-0.742188 -5.875,-2.234375 -1.125,-1.5 -1.6875,-3.71875 -1.6875,-6.65625 0,-2.9375 0.582031,-5.140625 1.75,-6.609375 z M 5.9375,-4.109375 C 6.457031,-3.203125 7.472656,-2.75 8.984375,-2.75 c 1.519531,0 2.539063,-0.453125 3.0625,-1.359375 0.519531,-0.90625 0.78125,-2.382813 0.78125,-4.4375 0,-2.0625 -0.28125,-3.519531 -0.84375,-4.375 -0.554687,-0.863281 -1.554687,-1.296875 -3,-1.296875 -1.449219,0 -2.449219,0.433594 -3,1.296875 -0.554687,0.855469 -0.828125,2.3125 -0.828125,4.375 0,2.054687 0.257812,3.53125 0.78125,4.4375 z m 0,0"
+ id="path236" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g250"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(737.28897,286.99077)"
+ id="g248">
+ <g
+ id="g246">
+ <path
+ d="M 5.9375,0 H 2.234375 V -16.96875 H 5.90625 v 1.0625 c 1.644531,-0.945312 3.203125,-1.421875 4.671875,-1.421875 2.257813,0 3.800781,0.640625 4.625,1.921875 0.832031,1.273438 1.25,3.375 1.25,6.3125 V 0 H 12.78125 v -8.984375 c 0,-1.832031 -0.199219,-3.132813 -0.59375,-3.90625 -0.398438,-0.769531 -1.203125,-1.15625 -2.421875,-1.15625 -1.148437,0 -2.257813,0.230469 -3.328125,0.6875 l -0.5,0.203125 z m 0,0"
+ id="path244" />
+ </g>
+ </g>
+ </g>
+ <g
+ clip-path="url(#9c58565a54)"
+ id="g254"
+ transform="translate(-43.488732,-201.52699)">
+ <path
+ fill="#09102b"
+ d="m 321.85156,262.05469 c -0.89844,-1.01172 -1.60547,-1.91016 -2.41406,-2.70703 -2.69531,-2.64454 -5.30078,-5.39844 -8.1875,-7.82422 -3.11328,-2.61719 -7.58984,-1.91016 -10.45703,1.125 -0.71485,0.75 -1.97656,0.98437 -3.11328,1.51172 -0.48828,1.21093 0.67187,1.74609 1.39062,2.42578 6.50781,6.16797 11.5625,13.44922 15.94531,21.17187 1.67969,2.95313 2.80469,6.23047 4.07813,9.40235 0.99609,2.48828 1.125,2.84375 3.84766,2.625 4.85546,-0.39063 9.08593,-2.03907 12.14453,-6.20313 5.32812,-7.23437 11.07422,-14.17187 15.0664,-22.29687 0.64453,-1.32032 1.125,-2.72657 2.01563,-4.89844 -3.98438,0.71484 -7.26172,0.6875 -9.36719,3.84765 -1.28906,1.9375 -2.60547,3.85157 -4.38281,6.4961 -0.45703,-2.78125 -0.73828,-4.70313 -1.08203,-6.60547 -2.60547,-14.33203 -8.38672,-27.26563 -19.23438,-37.11719 -9.86719,-8.97656 -21.45703,-15.17969 -35.35156,-15.35156 -11.67188,-0.13672 -21.69531,4.42969 -30.45313,11.76562 -3.5039,2.94141 -6.47265,6.53516 -9.58593,9.92188 -0.8086,0.87891 -1.25,2.07422 -1.85938,3.13672 0.23438,0.22656 0.47266,0.45312 0.70703,0.67578 1.4336,-0.88672 2.92188,-1.69922 4.27735,-2.69531 0.84375,-0.625 1.49609,-1.51563 2.20312,-2.3125 9.07813,-10.24219 20.54297,-12.97657 33.53125,-10.1875 9.91797,2.1289 18.11719,7.46484 25.00391,14.77343 7.28125,7.70313 12.21875,16.77735 15.17578,26.94141 0.13672,0.44922 0.24609,0.91406 0.32031,1.375 0.0156,0.20703 -0.0937,0.43359 -0.21875,1.00391 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path252" />
+ </g>
+ <g
+ clip-path="url(#9d28a89d3d)"
+ id="g258"
+ transform="translate(-43.488732,-201.52699)">
+ <path
+ fill="#09102b"
+ d="m 46.824219,529.01953 v 29.27344 h 73.558591 v -29.27344 z m 28.085937,22.82422 c -0.01563,0 -0.01563,0 -0.01563,0 h -3.992187 c -0.0625,0 -0.125,-0.0469 -0.167969,-0.0937 L 67.273438,546.34766 63.78125,551.75 c -0.03125,0.0469 -0.09375,0.0937 -0.152344,0.0937 h -3.964844 c -0.07812,0 -0.136718,-0.0469 -0.167968,-0.10938 -0.03125,-0.0586 -0.03125,-0.13671 0.01563,-0.19531 l 5.519531,-8.41406 -5.003906,-7.71484 c -0.02734,-0.0586 -0.02734,-0.13672 0,-0.19532 0.03125,-0.0625 0.09375,-0.10937 0.167968,-0.10937 h 3.859376 c 0.0625,0 0.121093,0.0469 0.167968,0.0937 l 3.125,4.98828 3.050782,-4.98828 c 0.04687,-0.0469 0.105468,-0.0937 0.167968,-0.0937 h 3.828125 c 0.07422,0 0.136719,0.0469 0.167969,0.10937 0.02734,0.0586 0.02734,0.13672 0,0.19532 l -5.035156,7.83593 5.507812,8.25 c 0.02734,0.043 0.05859,0.0899 0.05859,0.15235 0,0.10156 -0.07422,0.19531 -0.183594,0.19531 z m 17.644532,-0.19922 c 0,0.10547 -0.09375,0.19922 -0.199219,0.19922 h -3.0625 c -0.109375,0 -0.183594,-0.0937 -0.183594,-0.19922 v -11.32031 l -2.882813,11.36719 c -0.01562,0.0898 -0.08984,0.15234 -0.183593,0.15234 h -3.1875 c -0.08984,0 -0.167969,-0.0625 -0.183594,-0.15234 l -2.851563,-11.36719 v 11.32031 c 0,0.10547 -0.08984,0.19531 -0.195312,0.19531 h -3.082031 c -0.105469,0 -0.183594,-0.0898 -0.183594,-0.19531 v -16.33984 c 0,-0.10547 0.07813,-0.19922 0.183594,-0.19922 H 81.5 c 0.08984,0 0.167969,0.0586 0.183594,0.15234 l 2.773437,10.45313 2.761719,-10.45313 c 0.01563,-0.0937 0.08984,-0.15234 0.183594,-0.15234 h 4.953125 c 0.105469,0 0.199219,0.0937 0.199219,0.19922 z m 14.882812,0 c 0,0.10547 -0.0742,0.19922 -0.18359,0.19922 H 95.726562 c -0.105468,0 -0.183593,-0.0937 -0.183593,-0.19922 v -16.20312 c 0,-0.10547 0.07813,-0.19922 0.183593,-0.19922 h 3.308594 c 0.105469,0 0.199219,0.0937 0.199219,0.19922 v 13.26953 h 8.019535 c 0.10937,0 0.18359,0.0742 0.18359,0.17968 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path256" />
+ </g>
+ <path
+ fill="#09102b"
+ d="m 10.753456,359.80895 h 58.707032 v 6.48437 H 10.753456 Z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path260" />
+ <path
+ fill="#09102b"
+ d="m 10.761268,287.53551 v 36.91406 h 58.70703 v -36.91406 z m 51.84766,32.34766 H 17.620643 c -0.835937,0 -1.523437,-0.6836 -1.523437,-1.51954 0,-0.85546 0.6875,-1.52343 1.523437,-1.52343 h 44.988285 c 0.82031,0 1.52343,0.66797 1.52343,1.52343 0,0.83594 -0.70312,1.51954 -1.52343,1.51954 z m 0,-10.65235 H 17.620643 c -0.835937,0 -1.523437,-0.68359 -1.523437,-1.51953 0,-0.85156 0.6875,-1.52344 1.523437,-1.52344 h 44.988285 c 0.82031,0 1.52343,0.67188 1.52343,1.52344 0,0.83594 -0.70312,1.51953 -1.52343,1.51953 z m 0,-10.64844 H 17.620643 c -0.835937,0 -1.523437,-0.6875 -1.523437,-1.52343 0,-0.85157 0.6875,-1.52344 1.523437,-1.52344 h 44.988285 c 0.82031,0 1.52343,0.67187 1.52343,1.52344 0,0.83593 -0.70312,1.52343 -1.52343,1.52343 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path262" />
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g270"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(126.27432,523.15898)"
+ id="g268">
+ <g
+ id="g266">
+ <path
+ d="m 4.6875,-23.234375 4.984375,9.15625 5.046875,-9.15625 H 18.6875 L 11.8125,-11.4375 18.6875,0 H 14.484375 L 9.5,-8.75 4.40625,0 H 0.4375 l 6.921875,-11.234375 -6.921875,-12 z m 0,0"
+ id="path264" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g278"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(144.65551,523.15898)"
+ id="g276">
+ <g
+ id="g274">
+ <path
+ d="m 2.6875,0 v -23.234375 h 6.546875 l 5.1875,18.140625 5.1875,-18.140625 H 26.1875 V 0 H 22.390625 V -19.0625 H 21.875 l -5.484375,18.109375 h -3.9375 l -5.5,-18.109375 H 6.4375 V 0 Z m 0,0"
+ id="path272" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g286"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(172.73611,523.15898)"
+ id="g284">
+ <g
+ id="g282">
+ <path
+ d="M 15.703125,0 H 2.6875 v -23.234375 h 3.75 v 19.875 h 9.265625 z m 0,0"
+ id="path280" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g294"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(126.27432,557.65898)"
+ id="g292">
+ <g
+ id="g290">
+ <path
+ d="m 0.4375,-19.875 v -3.359375 H 17.40625 V -19.875 H 10.859375 V 0 H 7.0625 v -19.875 z m 0,0"
+ id="path288" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g302"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(143.36677,557.65898)"
+ id="g300">
+ <g
+ id="g298">
+ <path
+ d="M 0.671875,-16.96875 H 4.3125 l 3.59375,13.8125 H 8.8125 l 3.609375,-13.8125 h 3.65625 L 9.640625,7.296875 H 6 L 8.046875,0 H 5.125 Z m 0,0"
+ id="path296" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g310"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(159.30615,557.65898)"
+ id="g308">
+ <g
+ id="g306">
+ <path
+ d="M 2.234375,7.296875 V -16.96875 H 5.90625 v 1.0625 c 1.5625,-0.945312 3.019531,-1.421875 4.375,-1.421875 2.238281,0 3.875,0.683594 4.90625,2.046875 1.039062,1.367188 1.5625,3.664062 1.5625,6.890625 0,3.21875 -0.59375,5.484375 -1.78125,6.796875 -1.179688,1.3125 -3.117188,1.96875 -5.8125,1.96875 -0.929688,0 -2,-0.105469 -3.21875,-0.3125 v 7.234375 z m 7.40625,-21.34375 c -1.0625,0 -2.132813,0.242187 -3.203125,0.71875 l -0.5,0.234375 v 10 c 0.90625,0.1875 1.898438,0.28125 2.984375,0.28125 1.539063,0 2.601563,-0.441406 3.1875,-1.328125 0.582031,-0.882813 0.875,-2.390625 0.875,-4.515625 0,-3.59375 -1.117187,-5.390625 -3.34375,-5.390625 z m 0,0"
+ id="path304" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g318"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(176.77166,557.65898)"
+ id="g316">
+ <g
+ id="g314">
+ <path
+ d="m 14.3125,-3.046875 0.953125,-0.109375 0.0625,2.75 C 12.753906,0.113281 10.472656,0.375 8.484375,0.375 5.972656,0.375 4.164062,-0.3125 3.0625,-1.6875 1.96875,-3.070312 1.421875,-5.28125 1.421875,-8.3125 c 0,-6.007812 2.453125,-9.015625 7.359375,-9.015625 4.75,0 7.125,2.589844 7.125,7.765625 l -0.234375,2.640625 H 5.15625 c 0.019531,1.40625 0.320312,2.4375 0.90625,3.09375 0.59375,0.65625 1.691406,0.984375 3.296875,0.984375 1.601563,0 3.253906,-0.066406 4.953125,-0.203125 z m -2.03125,-6.71875 c 0,-1.675781 -0.265625,-2.847656 -0.796875,-3.515625 -0.53125,-0.664062 -1.433594,-1 -2.703125,-1 -1.261719,0 -2.183594,0.355469 -2.765625,1.0625 -0.574219,0.699219 -0.871094,1.851562 -0.890625,3.453125 z m 0,0"
+ id="path312" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g326"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(193.25366,557.65898)"
+ id="g324">
+ <g
+ id="g322">
+ <path
+ d="m 14.015625,-13.46875 c -2.679687,-0.363281 -4.617187,-0.546875 -5.8125,-0.546875 -1.199219,0 -2.03125,0.148437 -2.5,0.4375 -0.460937,0.28125 -0.6875,0.730469 -0.6875,1.34375 0,0.605469 0.253906,1.03125 0.765625,1.28125 0.507812,0.25 1.707031,0.542969 3.59375,0.875 1.894531,0.324219 3.238281,0.835937 4.03125,1.53125 0.789062,0.699219 1.1875,1.945313 1.1875,3.734375 0,1.78125 -0.574219,3.09375 -1.71875,3.9375 -1.148438,0.8359375 -2.8125,1.25 -5,1.25 -1.386719,0 -3.132812,-0.195312 -5.234375,-0.578125 L 1.59375,-0.375 1.734375,-3.453125 c 2.707031,0.355469 4.660156,0.53125 5.859375,0.53125 1.195312,0 2.050781,-0.144531 2.5625,-0.4375 0.507812,-0.289063 0.765625,-0.773437 0.765625,-1.453125 0,-0.675781 -0.246094,-1.144531 -0.734375,-1.40625 C 9.707031,-6.476562 8.546875,-6.757812 6.703125,-7.0625 4.859375,-7.375 3.503906,-7.859375 2.640625,-8.515625 c -0.855469,-0.65625 -1.28125,-1.851563 -1.28125,-3.59375 0,-1.738281 0.59375,-3.035156 1.78125,-3.890625 1.1875,-0.863281 2.707031,-1.296875 4.5625,-1.296875 1.445313,0 3.222656,0.183594 5.328125,0.546875 l 1.046875,0.203125 z m 0,0"
+ id="path320" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g334"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(208.41301,557.65898)"
+ id="g332">
+ <g
+ id="g330">
+ <path
+ d="M 0.671875,-16.96875 H 4.3125 l 3.59375,13.8125 H 8.8125 l 3.609375,-13.8125 h 3.65625 L 9.640625,7.296875 H 6 L 8.046875,0 H 5.125 Z m 0,0"
+ id="path328" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g342"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(224.35239,557.65898)"
+ id="g340">
+ <g
+ id="g338">
+ <path
+ d="m 14.015625,-13.46875 c -2.679687,-0.363281 -4.617187,-0.546875 -5.8125,-0.546875 -1.199219,0 -2.03125,0.148437 -2.5,0.4375 -0.460937,0.28125 -0.6875,0.730469 -0.6875,1.34375 0,0.605469 0.253906,1.03125 0.765625,1.28125 0.507812,0.25 1.707031,0.542969 3.59375,0.875 1.894531,0.324219 3.238281,0.835937 4.03125,1.53125 0.789062,0.699219 1.1875,1.945313 1.1875,3.734375 0,1.78125 -0.574219,3.09375 -1.71875,3.9375 -1.148438,0.8359375 -2.8125,1.25 -5,1.25 -1.386719,0 -3.132812,-0.195312 -5.234375,-0.578125 L 1.59375,-0.375 1.734375,-3.453125 c 2.707031,0.355469 4.660156,0.53125 5.859375,0.53125 1.195312,0 2.050781,-0.144531 2.5625,-0.4375 0.507812,-0.289063 0.765625,-0.773437 0.765625,-1.453125 0,-0.675781 -0.246094,-1.144531 -0.734375,-1.40625 C 9.707031,-6.476562 8.546875,-6.757812 6.703125,-7.0625 4.859375,-7.375 3.503906,-7.859375 2.640625,-8.515625 c -0.855469,-0.65625 -1.28125,-1.851563 -1.28125,-3.59375 0,-1.738281 0.59375,-3.035156 1.78125,-3.890625 1.1875,-0.863281 2.707031,-1.296875 4.5625,-1.296875 1.445313,0 3.222656,0.183594 5.328125,0.546875 l 1.046875,0.203125 z m 0,0"
+ id="path336" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g350"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(239.51175,557.65898)"
+ id="g348">
+ <g
+ id="g346">
+ <path
+ d="M 11.359375,-13.8125 H 6.6875 v 7.46875 c 0,1.375 0.097656,2.292969 0.296875,2.75 0.207031,0.449219 0.726563,0.671875 1.5625,0.671875 l 2.78125,-0.09375 L 11.5,-0.0625 C 9.988281,0.226562 8.835938,0.375 8.046875,0.375 c -1.929687,0 -3.25,-0.4375 -3.96875,-1.3125 -0.710937,-0.882812 -1.0625,-2.550781 -1.0625,-5 v -7.875 H 0.84375 v -3.15625 H 3.015625 V -21.875 H 6.6875 v 4.90625 h 4.671875 z m 0,0"
+ id="path344" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g358"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(250.90664,557.65898)"
+ id="g356">
+ <g
+ id="g354">
+ <path
+ d="m 14.3125,-3.046875 0.953125,-0.109375 0.0625,2.75 C 12.753906,0.113281 10.472656,0.375 8.484375,0.375 5.972656,0.375 4.164062,-0.3125 3.0625,-1.6875 1.96875,-3.070312 1.421875,-5.28125 1.421875,-8.3125 c 0,-6.007812 2.453125,-9.015625 7.359375,-9.015625 4.75,0 7.125,2.589844 7.125,7.765625 l -0.234375,2.640625 H 5.15625 c 0.019531,1.40625 0.320312,2.4375 0.90625,3.09375 0.59375,0.65625 1.691406,0.984375 3.296875,0.984375 1.601563,0 3.253906,-0.066406 4.953125,-0.203125 z m -2.03125,-6.71875 c 0,-1.675781 -0.265625,-2.847656 -0.796875,-3.515625 -0.53125,-0.664062 -1.433594,-1 -2.703125,-1 -1.261719,0 -2.183594,0.355469 -2.765625,1.0625 -0.574219,0.699219 -0.871094,1.851562 -0.890625,3.453125 z m 0,0"
+ id="path352" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g366"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(267.38864,557.65898)"
+ id="g364">
+ <g
+ id="g362">
+ <path
+ d="M 5.9375,0 H 2.234375 V -16.96875 H 5.90625 v 1.0625 c 1.601562,-0.945312 3.070312,-1.421875 4.40625,-1.421875 1.96875,0 3.40625,0.554687 4.3125,1.65625 2.050781,-1.101563 4.09375,-1.65625 6.125,-1.65625 2.039062,0 3.476562,0.632813 4.3125,1.890625 0.84375,1.25 1.265625,3.367188 1.265625,6.34375 V 0 H 22.65625 v -8.984375 c 0,-1.832031 -0.1875,-3.132813 -0.5625,-3.90625 -0.367188,-0.769531 -1.136719,-1.15625 -2.3125,-1.15625 -1.023438,0 -2.121094,0.230469 -3.296875,0.6875 L 15.90625,-13.125 c 0.1875,0.449219 0.28125,1.898438 0.28125,4.34375 V 0 h -3.671875 v -8.71875 c 0,-2.007812 -0.183594,-3.398438 -0.546875,-4.171875 -0.355469,-0.769531 -1.148438,-1.15625 -2.375,-1.15625 -1.125,0 -2.179688,0.230469 -3.15625,0.6875 l -0.5,0.203125 z m 0,0"
+ id="path360" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g374"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(295.06227,557.65898)"
+ id="g372">
+ <g
+ id="g370">
+ <path
+ d="m 14.015625,-13.46875 c -2.679687,-0.363281 -4.617187,-0.546875 -5.8125,-0.546875 -1.199219,0 -2.03125,0.148437 -2.5,0.4375 -0.460937,0.28125 -0.6875,0.730469 -0.6875,1.34375 0,0.605469 0.253906,1.03125 0.765625,1.28125 0.507812,0.25 1.707031,0.542969 3.59375,0.875 1.894531,0.324219 3.238281,0.835937 4.03125,1.53125 0.789062,0.699219 1.1875,1.945313 1.1875,3.734375 0,1.78125 -0.574219,3.09375 -1.71875,3.9375 -1.148438,0.8359375 -2.8125,1.25 -5,1.25 -1.386719,0 -3.132812,-0.195312 -5.234375,-0.578125 L 1.59375,-0.375 1.734375,-3.453125 c 2.707031,0.355469 4.660156,0.53125 5.859375,0.53125 1.195312,0 2.050781,-0.144531 2.5625,-0.4375 0.507812,-0.289063 0.765625,-0.773437 0.765625,-1.453125 0,-0.675781 -0.246094,-1.144531 -0.734375,-1.40625 C 9.707031,-6.476562 8.546875,-6.757812 6.703125,-7.0625 4.859375,-7.375 3.503906,-7.859375 2.640625,-8.515625 c -0.855469,-0.65625 -1.28125,-1.851563 -1.28125,-3.59375 0,-1.738281 0.59375,-3.035156 1.78125,-3.890625 1.1875,-0.863281 2.707031,-1.296875 4.5625,-1.296875 1.445313,0 3.222656,0.183594 5.328125,0.546875 l 1.046875,0.203125 z m 0,0"
+ id="path368" />
+ </g>
+ </g>
+ </g>
+ <g
+ clip-path="url(#0baef73a1e)"
+ id="g378"
+ transform="translate(-43.488732,-201.52699)">
+ <path
+ fill="#09102b"
+ d="m 230.94531,263.10547 h -1.21875 V 254.125 c 0,-0.36719 -0.0703,-0.72266 -0.21094,-1.0625 -0.13671,-0.33594 -0.33593,-0.63672 -0.59765,-0.89844 -0.25781,-0.25781 -0.55469,-0.45703 -0.89063,-0.59765 -0.33984,-0.14063 -0.6875,-0.21094 -1.05468,-0.21094 h -2.44922 v -10.71094 c 0.004,-0.31641 -0.10547,-0.58594 -0.32032,-0.8125 L 209.78516,225.0625 c -0.23047,-0.26172 -0.51954,-0.39453 -0.86329,-0.39844 h -35.35546 c -0.14844,0 -0.29688,0.0312 -0.4375,0.0898 -0.14063,0.0586 -0.26563,0.14062 -0.3711,0.25 -0.10937,0.10546 -0.1914,0.23046 -0.25,0.375 -0.0586,0.14062 -0.0859,0.28515 -0.0859,0.4414 v 25.55078 h -2.48828 c -0.36328,0 -0.71484,0.0703 -1.05468,0.21094 -0.33594,0.14063 -0.63282,0.34375 -0.89063,0.60156 -0.25781,0.26172 -0.45703,0.5586 -0.59766,0.89844 -0.14062,0.33984 -0.21093,0.69141 -0.21093,1.05859 v 12.70313 h -0.44141 c -0.36328,0 -0.71484,0.0703 -1.05078,0.21094 -0.33984,0.14062 -0.63672,0.34375 -0.89453,0.60156 -0.25781,0.26172 -0.45703,0.55859 -0.59766,0.89844 -0.13672,0.33984 -0.20703,0.6914 -0.20703,1.05859 0,0 0,0.10156 0,0.16016 l 3.17578,23.74218 c 0.0117,0.35938 0.0898,0.70313 0.23438,1.03125 0.14843,0.32422 0.34765,0.61329 0.60547,0.86329 0.25781,0.25 0.55078,0.4414 0.88281,0.57421 0.32812,0.13282 0.67187,0.19922 1.02734,0.19922 h 57.07813 c 0.35547,0 0.69922,-0.0664 1.02734,-0.19922 0.33203,-0.13281 0.625,-0.32421 0.87891,-0.57031 0.25781,-0.25 0.46093,-0.53515 0.60547,-0.86328 0.14453,-0.32422 0.22656,-0.66797 0.24218,-1.02344 l 3.95313,-27.5039 c 0.004,-0.0547 0.004,-0.10938 0,-0.16407 0,-0.36718 -0.0742,-0.71875 -0.21485,-1.05468 -0.14062,-0.33985 -0.33984,-0.63672 -0.59765,-0.89453 -0.25781,-0.25782 -0.55469,-0.45704 -0.89063,-0.59375 -0.33593,-0.14063 -0.6875,-0.21094 -1.05078,-0.21094 z m -61.48828,3.73828 V 254.125 c 0.004,-0.12109 0.0469,-0.22656 0.13281,-0.3125 0.082,-0.0859 0.1875,-0.12891 0.3086,-0.13281 h 2.48437 v 13.16406 z m 33.60938,-3.19141 -1.95704,3.19141 h -26.39453 v -39.87109 h 33.08594 v 13.67187 c 0.0117,0.30859 0.12109,0.56641 0.33984,0.78516 0.21485,0.21484 0.47657,0.32422 0.78125,0.33203 h 13.28907 v 21.34375 h -18.12891 c -0.42578,0 -0.75391,0.17969 -0.98047,0.54687 z m 21.45703,-0.54687 v -9.42578 h 2.48437 c 0.1211,0.004 0.22656,0.0469 0.3125,0.13281 0.082,0.0859 0.12891,0.19141 0.12891,0.3125 v 8.98047 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path376" />
+ </g>
+ <path
+ fill="#09102b"
+ d="m 138.5308,35.426124 h 17.95313 c 0.15234,0 0.29687,-0.0312 0.4375,-0.0898 0.14062,-0.0586 0.26562,-0.14062 0.375,-0.25 0.10546,-0.10547 0.1875,-0.23047 0.24609,-0.37109 0.0586,-0.14453 0.0898,-0.28907 0.0898,-0.44532 0,-0.15234 -0.0312,-0.29687 -0.0898,-0.4414 -0.0586,-0.14063 -0.14063,-0.26563 -0.24609,-0.3711 -0.10938,-0.10937 -0.23438,-0.1914 -0.375,-0.25 -0.14063,-0.0586 -0.28516,-0.0898 -0.4375,-0.0898 H 138.5308 c -0.15234,0 -0.29687,0.0312 -0.4375,0.0898 -0.14062,0.0586 -0.26562,0.14063 -0.37109,0.25 -0.10938,0.10547 -0.19141,0.23047 -0.25,0.3711 -0.0586,0.14453 -0.0859,0.28906 -0.0859,0.4414 0,0.15625 0.0273,0.30079 0.0859,0.44532 0.0586,0.14062 0.14062,0.26562 0.25,0.37109 0.10547,0.10938 0.23047,0.19141 0.37109,0.25 0.14063,0.0586 0.28516,0.0898 0.4375,0.0898 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path380" />
+ <path
+ fill="#09102b"
+ d="m 144.88236,56.051124 h -6.35156 c -0.15234,0 -0.29687,0.0274 -0.4375,0.0859 -0.14062,0.0586 -0.26562,0.14063 -0.37109,0.25 -0.10938,0.10938 -0.19141,0.23438 -0.25,0.375 -0.0586,0.14063 -0.0859,0.28906 -0.0859,0.44141 0,0.15234 0.0273,0.30078 0.0859,0.4414 0.0586,0.14063 0.14062,0.26563 0.25,0.375 0.10547,0.10938 0.23047,0.19141 0.37109,0.25 0.14063,0.0586 0.28516,0.0859 0.4375,0.0859 h 6.35156 c 0.15235,0 0.30078,-0.0273 0.44141,-0.0859 0.14062,-0.0586 0.26172,-0.14062 0.37109,-0.25 0.10547,-0.10937 0.19141,-0.23437 0.25,-0.375 0.0547,-0.14062 0.0859,-0.28906 0.0859,-0.4414 0,-0.15235 -0.0312,-0.30078 -0.0859,-0.44141 -0.0586,-0.14062 -0.14453,-0.26562 -0.25,-0.375 -0.10937,-0.10937 -0.23047,-0.1914 -0.37109,-0.25 -0.14063,-0.0586 -0.28906,-0.0859 -0.44141,-0.0859 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path382" />
+ <path
+ fill="#09102b"
+ d="m 158.89799,56.051124 h -8.54688 c -0.14843,0 -0.29687,0.0274 -0.4375,0.0859 -0.14062,0.0586 -0.26562,0.14063 -0.37109,0.25 -0.10938,0.10938 -0.19141,0.23438 -0.25,0.375 -0.0586,0.14063 -0.0859,0.28906 -0.0859,0.44141 0,0.15234 0.0273,0.30078 0.0859,0.4414 0.0586,0.14063 0.14062,0.26563 0.25,0.375 0.10547,0.10938 0.23047,0.19141 0.37109,0.25 0.14063,0.0586 0.28907,0.0859 0.4375,0.0859 h 8.54688 c 0.15234,0 0.29687,-0.0273 0.4375,-0.0859 0.14062,-0.0586 0.26562,-0.14062 0.375,-0.25 0.10547,-0.10937 0.1875,-0.23437 0.24609,-0.375 0.0586,-0.14062 0.0898,-0.28906 0.0898,-0.4414 0,-0.15235 -0.0312,-0.30078 -0.0898,-0.44141 -0.0586,-0.14062 -0.14062,-0.26562 -0.24609,-0.375 -0.10938,-0.10937 -0.23438,-0.1914 -0.375,-0.25 -0.14063,-0.0586 -0.28516,-0.0859 -0.4375,-0.0859 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path384" />
+ <path
+ fill="#09102b"
+ d="m 138.5308,40.613624 h 20.30078 c 0.15235,0 0.30078,-0.0273 0.44141,-0.0859 0.14062,-0.0586 0.26562,-0.14453 0.37109,-0.25 0.10938,-0.10938 0.19141,-0.23438 0.25,-0.375 0.0586,-0.14063 0.0859,-0.28907 0.0859,-0.44141 0,-0.15625 -0.0273,-0.30078 -0.0859,-0.44141 -0.0586,-0.14453 -0.14062,-0.26953 -0.25,-0.375 -0.10547,-0.10937 -0.23047,-0.1914 -0.37109,-0.25 -0.14063,-0.0586 -0.28906,-0.0898 -0.44141,-0.0898 H 138.5308 c -0.15234,0 -0.29687,0.0312 -0.4375,0.0898 -0.14062,0.0586 -0.26562,0.14063 -0.37109,0.25 -0.10938,0.10547 -0.19141,0.23047 -0.25,0.375 -0.0586,0.14063 -0.0859,0.28516 -0.0859,0.44141 0,0.15234 0.0273,0.30078 0.0859,0.44141 0.0586,0.14062 0.14062,0.26562 0.25,0.375 0.10547,0.10547 0.23047,0.1914 0.37109,0.25 0.14063,0.0586 0.28516,0.0859 0.4375,0.0859 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path386" />
+ <path
+ fill="#09102b"
+ d="M 166.35111,50.269874 H 138.5308 c -0.15234,0 -0.29687,0.0312 -0.4375,0.0898 -0.14062,0.0586 -0.26562,0.14062 -0.37109,0.25 -0.10938,0.10547 -0.19141,0.23047 -0.25,0.375 -0.0586,0.14062 -0.0859,0.28515 -0.0859,0.4414 0,0.15235 0.0273,0.29688 0.0859,0.44141 0.0586,0.14063 0.14062,0.26563 0.25,0.37109 0.10547,0.10938 0.23047,0.19532 0.37109,0.25391 0.14063,0.0586 0.28516,0.0859 0.4375,0.0859 h 27.82031 c 0.15235,0 0.29688,-0.0273 0.4375,-0.0859 0.14063,-0.0586 0.26563,-0.14453 0.3711,-0.25391 0.10937,-0.10546 0.1914,-0.23046 0.25,-0.37109 0.0586,-0.14453 0.0859,-0.28906 0.0859,-0.44141 0,-0.15625 -0.0273,-0.30078 -0.0859,-0.4414 -0.0586,-0.14453 -0.14063,-0.26953 -0.25,-0.375 -0.10547,-0.10938 -0.23047,-0.19141 -0.3711,-0.25 -0.14062,-0.0586 -0.28515,-0.0898 -0.4375,-0.0898 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path388" />
+ <path
+ fill="#09102b"
+ d="m 172.45268,44.351914 h -33.95704 c -0.15234,0 -0.30078,0.0312 -0.4414,0.0898 -0.14063,0.0586 -0.26172,0.14062 -0.3711,0.25 -0.10937,0.10547 -0.1914,0.23047 -0.25,0.375 -0.0586,0.14062 -0.0859,0.28516 -0.0859,0.44141 0,0.15234 0.0273,0.30078 0.0859,0.4414 0.0586,0.14063 0.14063,0.26563 0.25,0.375 0.10938,0.10547 0.23047,0.19141 0.3711,0.25 0.14062,0.0586 0.28906,0.0859 0.4414,0.0859 h 33.95704 c 0.15234,0 0.29687,-0.0273 0.4375,-0.0859 0.14062,-0.0586 0.26562,-0.14453 0.375,-0.25 0.10546,-0.10937 0.1875,-0.23437 0.24609,-0.375 0.0586,-0.14062 0.0898,-0.28906 0.0898,-0.4414 0,-0.15625 -0.0312,-0.30079 -0.0898,-0.44141 -0.0586,-0.14453 -0.14063,-0.26953 -0.24609,-0.375 -0.10938,-0.10938 -0.23438,-0.19141 -0.375,-0.25 -0.14063,-0.0586 -0.28516,-0.0898 -0.4375,-0.0898 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path390" />
+ <g
+ clip-path="url(#1f4a27800a)"
+ id="g398"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ mask="url(#e94e818b4b)"
+ id="g396">
+ <g
+ transform="matrix(0.196004,0,0,0.194118,62.344152,227.08093)"
+ id="g394">
+ <image
+ x="0"
+ y="0"
+ width="463"
+ xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAc8AAAFUCAIAAADNuyD8AAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nOy9eZwk11Xne869EZF77VW9t1rd6lZrtWRLtqzNLdkG2WC8YI/BZowHMzDAmAczvIGHPSB/BmMYYJ4Z5mOYZ8wYsMHyAhbGYMsWEpZkua1dLUsttdRbVVd1dW1ZWblGxL3n/XEjo7Krq7eqvFmZWeer/rSqqrPiRkbe+MW5554FoaO4m+4+9YNTU89PzW5SfgokEhJqJATEtT43hmGYZSEgICHX+jQugrvpbgDIjGROBPNFGQoAgUCAApC1lmGY9gbFWp/BhWKkFgBePHZiVlUEggAiQEQipDU9NYZhmPPTGbbte774HgDIjGRePHpiYiovBC1KLSEAG7cMw7Q52AFqa6zaqeenJvz8VLGMUiEQUV1qkaWWYZj2p+3VNvbVjgf5fJhHKQkI6lKLCCy0DMN0Au3tt419tQePjc2oKsgkASEhYCS4a3p2DMMwF0H72raLvtpjx09Mz0kEJECoyywisF3LMEzH0K6ehEVfbTA7tTAjhIMEgASIQIQILLUMw3QU7am2BABw1chVJ9XcPBSBPIiiDhCAAJC3xRiG6TTaT22NVfsgPCjGMmFNqcAx+roYf8BKyzBM59Fmamt8tVeNXCVGs858LvD1otQiAhI7EBiG6UzaSW0b4moLQRFDHS4mMGDkQ1jrc2QYhlkZ7aO2dV/tRG1+LqhooQHNf5HictkZhmE6mfZQ29hXS0fT1QKAQ4iIhBQX92KpZRims2kDtY19tXQ0RVMeSoy9B0icK8YwTHew1mob+2rH/XylqIUQRmoBgaWWYZguYm3VNvbVBvOzYQmFEI1SC7wrxjBM17B2ahv7avF4JigKEGBEFhGBgOvNMAzTXayR2sa+WjyeoXyCNBAQAhISRNEHrLUMw3QTa6G2sa92Mljwi0gaCHQUgxDlirHUMgzTZbRcbeN6tSfDQkHVNGojtZH3gFMYGIbpTtBp5WhxvdqXjo3ldRkQNWmTu1APQWCpZRimO2mdbRvXqz10bGxyapaATJXahhYMLLUMw3QrrfIkxL7ak8H8THFBI9TLzcQ1vVhqGYbpYlqitou+2mB+PqxojIonAlBUDIFhGKbLse+3bfTVLkotIdXb3TAMw6wH7Nq2sa/2pWOjk1NzoYjyxMx/HFbLMMy6waZxaaQWAMLd7rwqK0RBCAD12l4c7MUwzLqAgICELdvWOBDKU+XikCp5vgYUJn/BBCCwWcswzPrCzi5ZvC02Ec6XXF/DYhFFaohCYBiGWTdYUNtFX+3xsclK0SSJEdSllmMQGIZZjzRbbRd7iwX5meK8iIK8jJuWEDkMgWGY9UlT1bbBgZCf00VEocnYtVCPq2WpZRhmfYKiWUdqiKsdnVNFAVI3+GnZfcAwzDqnObbt6TUQ5iDulGtsW5ZahmHWO83woi7G1e5xC0FVm3bkLLUMwzAA0Kx42ziutjASFlJV0ALrbcW43AzDMEyd1e2SNW6LFVJVEThxCwbToZyllmEYBgBWpbaxr/bF48dnigUgGcXVRsFerLMMwzAxK9XE2FcbXO7MQlGETiSy9b+bd4oMwzCdzcr9to2+2oXYgQCNcbUMwzBMIxfvSYh9teNqrlFqTbtcllqGYZjluEi1jX21B0ePn6rmRViX2noVRTtnyTAM0+lcjN+2wVfrzsLCoq+WpZZhGObsXJzfNvbVLgyrYsJHJevdbgCA3bUMwzDn5sI8CY31aotJHzTGYV4IaDy2ds+TYRims7kAtW2Iqx2dKS9oAgFxWi7Xq2UYhrkQzmeTNvpq87pMGsVpcbXA2WIMwzDn5vx+20Vf7UhYSFVRSRH7ajm0lmEY5iI4uyfhNF+t2RaDKPYAwTRhYKllGIa5QM6itsv4ahf7khtfLUstwzDMhbOcaDbWq52juq+WO+YyDMOsiOX9tqfF1SZ9qG+LGQ8tSy3DMMyKON2TsHxcLdVrIBB3zGUYhlkZDWq76Ks9drqvtl4gnKWWYRhmpdQFNPbV+rudabXggtvQWYxrIHQDS3zuZ4mVJlrmR+ysZ5hVsei3XaxXOxzm3YqLblSv1tyRLLadQ6yMJlBPgBDmbxQShUABgABkXqlBE5D5o0FrIAICMInY5nej3xIg4si/WKNZhRnmYkDHSO3IVSMT4XyNAle5S/sv8A3VZiwrc/VdTAQARUqR1qAUaUVKgyYiDYQAnvBSIumg40pXgjDyCgAuugAUUBhQGFLo6yCkMKAgJCUARV1zBQoJwkFHoDBjxUc47xkyzDrHOfWDUyNXjbx4fHReV0ydGS6i2J4Q1csAIQKApsgy1USxiUpEDsp+p2/IGxhw+wfdgUG3NydzaZlKiWRKJl10E8KTKB10RMPn66BDQCEpRUqRCqO/w4quzocLBVUohAuFsFgIF2aCuZP+qdkgX89wMYYwIqIAEZ8h1S1oll2GMThTz0+Nh/k8lYka4mpZatsG84kIQESpQQcUBDoEIE8kPOG66GRE+tLU9p2pS3aktm9LbO53exMi4aLjoesKV66urXIjIYWhVgEFNe0XVXm8NjHuT47XTo5WTxyuHC+pkk+Br/2QQonSRddBBxF0/THAssusc5y5zWElrLjoRjUQEHhbrB2ILVkppCZd0bWqrqVEctgd7Hd7Nic27U1ftiO1fWdq+yZvwzmEjCjyxhIQncstZP7lNLeAeX1cVNNBx5FOEhI5gCEY2JHaGr8y1OGR6vEXy6+8VH7lSOX4XJCfCeZmgjkASMpkAj1CMg4N1lxm3YJ3PvkuTaf3yiXiYK81oVGMzGdR035ZVXqc7GXpS3eldlye3nV5+rLL0jsSInHm70ZfnNPTfoEJgaanp3nxWV6wOMqZR5v2Zw6VD79QfvmVylGjvwJFWqQkytjPyw91Zv1gYhJw3+PvjMO8+AZYK+qWLACg2eAKSUkQV2X33tT7mmsye7clt4x4Q/HrQwrrQQLLfF5Wc6yjqbKcClM9qiF2XyhSx6snXqkcfWLh2Ufzj0/4kx66AoVEaeYbW7vMeiBS2zsef1dcbsaYM2t9YusLI1sCBQL65IdaJWVixB3a13/znQO3bUlszMi0eaUiTaQRhdmSMr/YPp9XfD5U37XTRK5wzL8q0nPB3IHiwW/OPvBM8fliWFSkkjIpQLCHgel66rbtE++sp+dyYm6rMSojQVZ1raZrGxMjV2b2vGXwztf33uAJL36NBh07T9tNZJclrmEEABoIgBo368aqE1+f+daj808cqRyraT8r0wCoSLX5m2KYFVO3bZ94J4fUrhUIGJIqq/Ilya37+m/e13/L1dm95p+WXap3nB41yq4hfgslVf7WzL8+MPfI4wvPEOm0TGkOGmO6lFht37XWZ7K+iNVEk67q2ubExh8b+uE7Bm65JLkVABSpRm9sd1S5XKK2xlo31m5ZVR4rPPWVU19/vPCMg9IRDvtzme6D1bbV1CNnhSLlU9Dn9Lxt6IfeNfIjZvsrJIUAJkGgi7Wm0b0bkjKO3Zr2H87v/9zJL79cPkIASZHoVmcuERkfvb0huvXSdTSsti0ldtEWVSklk/v6b/7gpvduT26Fumc21tn10PAt1lyTEWfsXF8H90ze+9WpfxqvTaZkEgE16a5RjfgtBzrwKbD3EXvCddBhwW0rWG1bRBx1oEmXdeXa7JU/ueGddw7cCg1L7O62Z8/GEq+uefvjtZOfnbjnn6fvR0QX3W4SXAAgohFveFtykyJt513hserYTDArUFg5PLMiWG1bQZwSVtO1pEi8b+OPv2fkbTknq0g3BnJBB+6ANYtG34IC7aAEgPtmHvz/Tvz1WG0iI9Pd5MYNKXzvyDt+cesHS6psQxAF4B8d/7N/mrk/Kbzl81KYtcCorbPWp9HNGCcdAVV1dU961y9v+9nrc9cAQEihBLk+7dkziWqJEQGAg1KREiB+aHDflZnL/9fYZ74z92hCJCQK1S1GridcRMzItKW340Q3NS7Jw2bWHFZbWxipVaQCCn906M0f3vrvs07aRP4btxpLbSOx5kqURKRIb01u+sSuj/zVxBf/+uSXa7qWEInuiMnVoAFAgRbU5PeCp6+WmHaD1dYKRmpDCh10fmHrB9+74e0AoEkjoEDRERkKa0Js7wuKnDA/vfm9O1LbPjn66ZP+qYxId4Hgmv0xMxOaeNiGQvJMm8Jq22TiPTFfBxkn/Zs7/q/b+24yJq3RWTZpz01jvpyJ1nhD/80bvOGPH/3ky+UjGZnhCCemQ+GNy2ZiZEKirGl/xBv8/V0fvb3vJkUKAIzUIiLLxHkxVykOTw4p3JvZ/fFdv3l5endJlQVPWqYz4YnbZIzUbvCGf2fXb7wqd5XZ8+ENsRUQXzQJUpHantzye5d99JrsFSVVNr7dtT7BFWI7mLpTr8s6gNW2aRhfrU/+sDf48V2/cUVmT8hSuzoaLVxNemNi+Hd2/caV2T1FVepowbVK16fGdC6sts3BSG1AYVZm7r701/ZmdoekTOgoS+1qiN24Jj1kxBv67Ut/7dLU9rKusOAynQWrbROIg708dD9y6a9em7tSkXLqWsBSu0piZ7cpmbY9ueXXL/nwgNPvUxAHeDBM+8Nqu1qi9FOgkMIPb/vQLb03KtICOMyrydR9uEKRui531a9u/zkXHQJeNzAdA6vtqogTc6u69t4N73j78F1EJOpNyFkImsgSH+4bB257/8YfL6uKOEvbHoZpN1htVwsCVnT1xtx1/2HLB8C07eJtMTsshuICAsAHN733jv5bFnjHjOkQWG1XjpHUgIIRd+g/X/ILrnAVqTiudq3PbikU9Tqn8wJn6RzRDsSLBk1aoPilrT+zI7m9pmssuEz7w2q7KhCQCP7jtg9tT25RpM09v+ZS2yiamrQipUgpUCGFoQ4VKN0QlBnvQWnQ5jWBDhUoRUqTbkP9bdwx25rc9Itbf9qLnnPsUmDaGlbbFUJEDjoLYfGtQ29808BtALBWDsRYDRusUyKgOIdNopQoHXRc4bjCddCRKGKR9XUQ6BAR669xXeE46EiUAgUiatCK9BKjOBpxjULpG3fM3tB/812Dd9bIh7q7nGHaE66TsBJMqaqKruxK7fjgpvcCgFnYttKwbYx5MMKH8e5cPb6dSB+vjk/7s7Ph3GyQz4f5kipXda2m/Zr2AYCAAgoR0EMnIRIOOkmR7Hd7B5y+Abdv2BvantwSt1iP0aSJACPTfg1CLxqK1wgA+NDm9z9eeHa8dtIV3LOAaV9YbS8acz+bruPv3fj2TYkNptZXi6U2Kr9NCgBlQ6uruSD/XPHFH5QOvlI5OhXMllW5oqo1qlW1X9O1kEIiEIgIwvxC3JLSWMRA4AkvKRIJ4aVkKivT/U7/juTWKzK7r8tdvSmxAQBM8SpNWlNDg5/Wam4suJr0gNv3oc0/+bEjf2Q6SLbsHBjmomC1vWjqIV/V1+Re9WNDP0xEEmTLRiciI6zGUWA6ehXD0rh/8vHCMw/nv3+4ctSnwLhozQsQhQB0UHoyWxflSJJiZcL4L9NGEKiqa2VVmYQpoqNPLjzrTjuucLclNr+m59qbem/Ymdze5/aa81mr4ujRiIAA8OaBNzyU3/+t2X/NykwXVGVkuhJW25WgSKVE6t9t/gmTTtoCH0LsEcbTO4S/Ujn21MKzD849+vTCcyGFLroi0lbHlW70u3VRNXWsz3Gqjf8kUAgULrjmCETka/+l8uEXSof+auJLV2T23NJ74/W5a67PXW3s+vg6xOdp61qcgRn6fRvf+b3CE6EOOQKPaU9YbS8Ok6Tra/+u4Tuvz11jvm2N1BoRqW8QyRdKL31t+r79808erY4lhZcUyQR4jevos7XzOsepnvlPcRNGY9ELFB64CPBy+cgzxef6nb4be667s//WOwduNZobH6c1eoeI5h1r0ldk9vzI4Js+f/IrfU6vQmV7aIa5WFhtLw5EVKSGvMEPbPo35ictkNrYRWvs2ePVE/9n/AuPLTw15c8khDfg9hFpvZy2rv7Ezqa/nnCTckCR+pfZh78//9RXTn39pza9+7a+10G0h0Yta1Fh0kk0aQD4seEfeij/vVP+jCe6rVnvhcM1wNoWjgC7CIyLtqTKbx++a3NiQwvivRalFrREWVW1vzn5d7948Nfvm31gPljIyayLriKlSEOrFu9RFASQ8Qv3OjkCeq508KOvfOIjL3/icOWYcUHEzlPbV8lcH4kypHBnasedA7dq0MD1E5j2g9X2QjH2Wo1q25Jb3tR/OwBom7d07DQw0V0OykPlI//p0G/9z9E/L6pSUiQ94WjQuoU6uwQzaEgKEZMiIUA8kH/kwy/+5ldOfd2Y4S0TXIPZq3z3yNtGvKGAwhaMyDAXBavthYKIArCqam8auO2S1FZFyqQz2FC6RkctIgoUX5u+79cO3f3kwoGczJiu6bo9aozFzwNETItkUZX/8Ninfuvwf58N5iTK+GFgVXAbo8E2eMP7+m42xn57ppbxSn/dwmp7QZhIo6qubUtuvmvwTvNDRCs3Tiy1sefxL8a/8AfHPjUbzOVkJiS1OHp7EJ+JIu2gzMj0/bMP/epLv/1y+YiImudSiwQXEADePfKjWZnhsASm3WC1vSBMBVsCurn3xp2pS0IKo5IIduyUuOoKEf3RsT/7i/HPOygTwgvbO5LUnLYGnZWZQ5XDv/by3U8UnhUodEsEN2ZLctNdg3eUdSWuMsww7QCr7YWiSGVl9h3Db4G6i9CeYRvr+P8a+4svnro3IRIIoDphkz0OB06L1JQ/e/eRP3hy4YBsiYVrLo7xIbxp4PaUSHKtcaatYLW9UBTpV+Wu2JXeEatG0w3bxpApRPybk3/3xcl7MzJtvLSdIhx11VMpkZwL8r91+PcPFF8wLgXzAnvJtca3DgCXpy+7uffGhbAo15952yHTZD3Cant+jLBq0u8c/pHFn9iZ1CaeFxG/PfudPx//vIOO1eHsYd5IUiTngvn/duR/jNcmTd5dnI9gAyOsIYWecF/fd4MnXKtxI+3Kenu/HQOr7fkRKHwdXJG57OrMXnujGEk1sVNj1fFPjX020EHb1ia/EMzbSYnkWHXi40c+WVEVgULb9CeYMpICBADc3HvjZelLK7qKbdZKBxv+ZtYVrLbnR4Co6Mpdg3dmnYwJaWr6vRIHMJkw1T8e/fOJ2smESHS659EUS0vJ5JMLz/7pib8EgKg8pLXwLBMWHVI46PZfl706Pg0bYzHMRcFqex4QMKBgc2Ljq3PXQj1P1EYoQqw+X5r82sP5/RmZ0aDbyihbGUQEQEmR+NrUfd+Ze1SgUKDtDWcMZ2Pe3tF/S4/MhhRCu8beMusKVttzYe7bkipfn7v60tR2860towxIoBitjv/N5N95wj1bTZmOAxE1kUTpk/8XE387G+QdlLZtduM9eFXuqi3JTa1Ma2aYc8Bqey7MQjghvOuyVzfm/jcXI9+mRPfnT355yp9xsauKqhgHblqkny++dO/UN6CuhpaCE4z31ny9r+8W8wXbtsyaw2p7VkwoQk3XtiQ23dhzHQAIFNRsK6nRgH1m4QffmHkgKRJdWQ9bgUrL1N9NfX3Sn4reneXgBAC4ve8mT7jdsUpgOh1W27MSR8vvTu/cmtysSCEgWDCRYivvcye/HFLYaJp1DZE7FcVMMHfP5L1Q94DbMjnr129TYuTqzOWm95qVgS4atB2P0CbvkzkTVttzoUmnZPL1vTeYb5uug3GLM4Hi8cIzB4ovmAq2XYm5dA7KB+cemfZnGhs9NH8siGqPecK7re/1VV1dq47IDBPDansuFOi0SN2QexUAWNofi4/5j9PfmgvnXXSbPkRb4aAzE8x9Y+YBAFCgrObyaiAAuDq7NyezCrrHD850KKy254JIb09u2ZAYNkZo029XY9hKlM8XX3pi4ZmkSFA9HLUrMUEdNe0/PP/9mvYbm+s0nfjT2ugN783srumaWPUie/Vn2/V638Wzd/Ww2p4F0+0K6Kbe10Q/aPY0iuqFAwLA/sKT47VJT3idns5wbszTJS1TB0uHHsnvB5vmbZxv3e/2XZnZXVFVXIXvorG4u2ntvqI/ZDrJg8UNQtOPTptK8y3+08pKb50I9yU7CwgISEA39Fxna4R6WcUpf+aBuUfSImluxbbZz7ECETnoFNTC9wpP3jlwmwRpL4sXABQpAWJPeldGplcTVIdgtkjJE54EQSu1UkNSLjpg08h10U3JVFIkWqx6BORT0E2Ri02H1fashBTuSG7bmthkvm36HIpvhoOlQwdLh3qcXFcGfi3BmLdZmXms8PTx6tj25FbzyLExFhEhCADYk965JbnpRHXCrB5WciwECWJeLXz00l9948Bt82Ehqrp58bjCBZsdHP7D1p/+0Ob3t3IaEZCLzmw4/58O/dZEbXLFV6brYbVdBtNVsKTLr85dk5WZ6IcWrE6BAogezH/XEY69OoTthibtonu8OvZC6dD25FawWeRMAGrSl6Yu2ZLYeKRyPAGJ1VxnAsrINAD0Oj2rOSsb7zdewidFIikSzT34hdBDKqoiwpwF9tsug9kQC3V4Xe4qgSJK/Wyq1MaGbT4sfG/+CQ/d7vbYNmLM26RIPjD33ZCUJcMW6p+jkYC96d0uOrS6Eg0IqEgBQEghrQIbzs14I3c1J7YyzBX2KfB10N1+sFXCars8oQ6HvMEtic0AYKldtrnbvl94eiEsrrc5SkAeuo8Xnj7lT0c/sVkSDACuy12Vk9m4q9sqwUjJVwhYcEzFB1zVma3w/URN77nV8blhtV0GAeiTvyO5bdgdhHpSf3OHQESjtw/lv7cOK14bQ6yqa48XnrE7EkaLkr3p3WmZMlbY+nHatBIiColt23PBarsUIkIQNe1vT24Z8ga0CdJq6hQyQbUCRUmVXyy/AkDtVvHaNvHT5dH5x6CexWtlIEBE1KRzTnZjYsToLCuCDQgo0OF6sxsuClbbpRirEwG3J7cAgPHTNV1uNWgAeKLw7HxYcNBZP07bRhDgpfIrJVUyWbz2nAkm4OrK9OWss/YgoBDYk3AuWG2XIaBwwO27NLUdLNRGgHrJVwB4rvRCISx0cW2EcyNRFlXpycIBqGfZWqEusVdkdkO9foKtsdYfsVtGgw5N5SbmLLDang4BAoYUDroDO5LbAaDp1UyMG8FU1H6lckyBXm9uhBiJciEsPVV8DgDIWh2D+P6/IrPb9Fpfh8sIi9RnbqBD8/X6nMwXAqvt6WCktgNu39bkJk0aodm2LYHZFjtcPn6iOpHALs/WPRtEhIAhhEcqx8Ba0Z9G+pze7cktqklhCcwSAgrMc20dTuYLhNV2KQSEIDYnNgKAtmBwIaKJ+jxeGztRW0V2U4eDiATkoTfpTx+vjgkUtivyeMLbm9kd6PapddtVBDpY61Nod1htl6JJe8LbkdwGdmK/qF6JZrQ6XlRlaS22v/0xGZ+T/tSx6hjYebYtjkUkUexMXhJSuG5dN1bhYNvzsn5v9bNhAu+3JbfAYrBmMw8OABJlqMNjlVFXOGSrO1dn4AhnLswfqYyab+2JoLnK25NbNFjwDjEAPtu254PVdikayBXupXXb1oLcEgDkw8LR6qiHngZat+taIgIiB5yjleOKlIO2qnYgolHxQbe/V/YoYNdt8wkoWK8T+UJhtV0KkU6LpPHbNp3YpCqohcOVY6aTuY2BOgLjunWFe6I2kQ8LUA/YaPpARGSue4+T25zcwK5bG7An4byw2i6FALYmN5t4+6avN2MpmfSnFlRR2t+Ib3OM32a0NjEfFsxPbKzx41z+Hie3ydvACaY24F2y88Jqeya0M3lJ9JUFKTT3+eHKcYmy6f3SOw4CcFCe8qdm/Dnzrb3HjybKyPRGb8TnjTIL+MRqex5YbZdhW3KzvYMjIhEdi9R2vd/wRvIQ8Gh1FABW3zrsHGhSALApsYFImwIK9sZah4QUAKDNHkAdD6vtUghgY2LE6hABhUeqoxJYbSPXrYPOseqY1SYrdV8CjLiDWZnhutdNh2MSzgur7SLxXspGz7baBqPV8fUcadsIAUgU47WJwOZSNA5z7nf7ck5WkWLLtrlY/fi6A77hFzHFYnIym5PZ+Cc2BjrlT9d0jTdqDAQkUY7VJgJtcVMbEU1Jmj63NyszitQ6aDfeUkxMwnpfrJ0TVttFEFCBGvGGPOFaHWi0Os4+hEYkilP+dEmVrY5ixLXf6c3IjFpdyxzmTDgm4byw2p6GIjXiDXloRW0JoryxE7UJq1mqHQhq0uP+SbtjABJRn9OXlWlFisMSmktAIU/oc8NquwgCKtIbvCFXeFYGqN/aJ2oTfJ8vgQAmanbVFgAUKYGYc7Jml4wfeE2E/bbnhdV2EQRQpIbdQYlWkg7ie3vCP2WxeHanQqf8GasDxNd/yB0w/TKsDrfesOp27w5sZaZ3JqhB97t9ENVdtJVINhvMmuPzDR9DAJP+VP3r5l98MNcfEQCGvcEV50ybdvcBhXqlz2OBQlrIVDQH1KTVGgS3kYtujfyWj9thsNpGEBEKUKR7ZQ9Yu+EFiqquVpQJSCAbycEdC03Wu50D2YkXQDDFaQacPgediw/vRQ3U6+QAICkSqzkRG5+7yZoRKMQaRRaK6OoyZ4XVNsJMVg/drJOOftJ02xYIAaf9OZ8CMzVZamMI4FQwbb4QFlvmIAD0Oj0OytpFNtHSoFMi+dmJezbNbAhWWmlBgb6177V39N+iSTdXFo2C/6B48N6pb1qyFc46NIAAfLb0vGutilt3wFdnEQU652SSImm+tTRlZ8M5X/vIqQ11zHVGwIqqBDpwhWvP5I8rgTnoVKF2ESdJRECucPbPPxlSaJ7NFzt23ITpjv5bmm4Gmss4Whu/d/obkc+ktTuxSZFwhMPLtXPAahuBgIpUj5OrLxIt+A1NZdugEFBotSBAZ2Eeaeb6z4b5Dd6w7RF7nZxzkUUqjIIQUUomV/MMDkklLUW8AACAi05OZlts2xo0aJbac8Nqu4ginZORbYvWlo00O28AACAASURBVPkFtcAV/84EEQNS+aCwwRu2JxZR3UXZI9EhWkkd9zhoemVoUCveXrsQCIhVr23h9WwEAmhQGZlJylVtgJyN+C6dDwsBhXwzLMGssufCvO2BiKjP7Ylt24tyCPCndm74+pwbVtsY1ERpmUqgtdQGAgAohAvcO+BMTLBzIVyAusvFyigYRd1lZJrqP7E0FsMsgdV2EQ06ITxXGO+KjcbmBABFVTZtX5t7/E4HARXokq5YHSW2ZHudHH8ATIthtY0w4a9JkXDRBQt7ZERREGlFVzQQ3+pLQERNqqLsqm1MSqS5BhjTYlhtY1ADJTAhUVoqYmDCSH0dBdu2OECn/dGky6oCNqv2xX6DtExZG4RhlofVdhECnZAeWPMbGu+Br/3IjcAewwaMJ6Ec2bar2vc//1CstsxawGoLAABEiKCJkpgAAEslYwSKQAc+BbwzsyyadFmXARZ3FO2RFin+DJgWw2oLAJGZSUCeSICdtq/miIqUusiE0XWCKXe56EmwdoXMgdMyaWsAhjkLrLYRRCBQJKI8HxvB4QQACjT3HzyT+uONTJds8+izSlqk7Q6wRvBWQDvDahtDEkS9rIatqv6KlAbNtu0SzLPNJO9CS2Jg0zLFMQlMi2G1jaCo8KiMvrdzJ2qKbVu2Qs4AITRqa18HEzaLFTDMsrDaxpAA4aAEUyTBzg2vQCvuSHYWFm1b+2rrcG1ApuWw2kYY2za6Ca3d7Jo0sd/2LCBgSCrQrYjZcNHlJx7TYlhtY0hCgyfBDpq0SSRjP8IZkLFtAwrB/vWp52czTOtgtY04zba1hgLTNortqmVAAAUqJNNM0K7euujwh8C0GFbbCNPTybFu2yoCzbf52SCi1kTImWoYDNNKWG0XMf1aoi8tDYGCDdtlIQBAJKDW9H53Bast02pYbZdgVwodlBfbo2VdQdAi29b2IoZhzoTVdhG0XyjGASlBWGrg3engqvvQXDiWslcY5hyw2jZiXQMlSnsVHTsf1K3y27bGX7EGdOnb6g5YbU/Ddly9RCmiNSxbt8tgmhi2YqAufeARsOC2L6y2LcVB6aBgv+05acVziD8CpvWw2rYIYzVLdATvkp0dBBQtSWvmj4BpPay2rYOIHJQSeDf8bFBDEJ7lkVhtmZbDaruIBm2qothzfQkUkj0JZwexFSVpAICrVTCth9U2AhE16TBSWyuY/R8XXbNF060bNSuGWuhJUC3Zi2OYRlhtF9FAyqraEgFAUiZMYRquu3gmCIgtmZOBDniBwbQYVtsIBGPbhgBWHAmxtmZE2iQ4MI0gABAZT0sLhgui2jcM0zpYbRfRpOzZtkRk5DYrsw467Lo9EwKQIOv1Yuwa/iGrLdNyWG0jEFADGb8tWXCqYn2zPeukuVTCciABOShNazjbTpaAQv4AmBbDahuBAIri4qqWnKoIxrYVDm+RnQkBSZSucFtwcdi2ZVoPq20EIoakatoHAACyccMb/c7JDNu2y2JsW2hJMGygWW2ZVsNqC1D3GxBQTdfAcrWErMxI9tueTvRsI5AtU1sKbA+xJiBwBY72hdUWAAARCUAA+hSAtdgsjDwJxm/LLGKuDAGZTkUtUNuKqnZn+RYOK2xjWG3rECCir32wbNvmnKyL7Lc9HQQAQMSUTAIAkfVg5IquWD3+WoFd+QjpFlhtF0EQNZtqaw476A546JnuZKy5MQQkQWZEGgAQLV4Zc9yy6k61ZT9CO8NqG0MCsEa+ImXPsNKk0zKVEAkNBICcThZDQBJFRqZbM1xZV7ryQcfzqZ1htY0w4lfVVbN/YuNWNN5hABhw+xGQN8qWIFDW1dbqc4igm21bpn1htV1EgCirShwE1vTjx+lkI95gaypddRBEJCGybVtwacqq0pW7ZMTzqo1htY0hiaK0qLbNJ7bXhl1W26UYT0LasichdgdXdNXqQGsFz6p2htU2goxtq8sm5NYqw95ga+oKdhAEIFH2yizYjAmJH3hFVepCy5Zpb1htFxEoyqpS1T6YUgkWVppGR4xtywEJjZhg2z631+4oROYjKKlyVz7ueM3UzrDaRhCQQFFSsW1rcRNrxBviu2IJROSg0+f0gmXJQMRCuBBS2J0fQTe+p66B1XYRAaKkyn7db2tvW3zIHZDI3ckiKGrLTRKlUVvbY82HCyGp7lRbpo1htV0EEWvaL+qy+dbeSj8lU0PegOZmLQDQkLbroZuSyRY4WCLbthtd5/wIaWdYbSOICAgE4mwwB5ZnrUSxNbFJsXnVAAIYpy3ZXFUYIZ8PC91r2/JmQPvCahuBiCZ5dDqYBctq66CzNbFJcdvX08BBtx8ALCc0EwDMq7X121oVxK58hHQJrLanIVDMBnNWk3eNlGxObNKgu9S8WgkIsNEbjr62c/HjosWFoKBIrdW1Z61dt7DaLmIC7Gf8OastAs1GzdbE5pAUF6ZpZKSutpZARKN1U8GsT4HozsnPetu+dOWEWzkC5EwwG+io1HTTo8Biq23IG0iJpAbqyr2aFYCIG70Rq0NQ3bidCqYDHfDCgmkxrLaLGNt2Ophd7E7W7BsytmQzMrXBG+raqM+LIW7csNGybQsApn16ISwKFNCNC4v1PpnaG1bb0xAoZsN8uV5q2s7diACQEekRb8g4E9Y5iEhEjnAG3QGrA5kElnxYKKqSBEG8sGBaC6vtIqZGlyI9Xpu0NERcSTAj0xu9kZBCNkcAQIMedAcSItGCsfLB/EJYFF2bXcLTqX1htV3E1J9FgNHqCasDKVKucLclt/jaF7jeCyYgoCK1PbHFE669UcgEVAPMBnNFVZIoOTSVaTGstsswVpuwd3AT2AsAWxKbEiKhab2vZxEwJLUjtS1hU23jyz4Xzi+okkTRlVqL3AayjWG1PRM8YVNt4zJUm7yRYW8wWN8bZeZqBBRektwKgNpeO7LItIUZY9tCt3oSgJ0JbQur7VIQYKxqUW2hHuqwMTEy7A6GFFgdq82JUvhQbEtuBgCyWTvCxCFM+JNEBDYbTa4hCMAekraF1XYpCFhQC/NhwdICHxERUJMe8YaG3IFAh+u51i0CBhRsSWwaiNJ2rXQkM5fX1C8er530hEvr3oHDtB5W26Ugoq+Dw5XjAEBAlsrcmiIJW5ObBSKs41Ak40bYltgS11q09OCJay2O1yZddLq6Bec6nUvtD6vtUgQIX/uHK0fB3KIW7kpENJ1yrkjvzslcSKr5Y3QCxmlb07Xtyc29Ts58a+PBE3c7LoQLJ2oTrnC7Vm3X62O7I2C1XYpAUdO1Q+UjAGApAD7eKLsquzfnZBQp6Ma8pvNirq0AsT25FQAU2HrqxN2Op4KZ+bDQxVtkrLXtDKvtUhBQgTZhCQKEDRGMXbebExuG3SFTDGx9OhMCCoa8gUtT28Ca09ZgHm/HKqMSJBkXUXeyHmdRp8BquxTTjjAfFqb8aYHCkus2lpWrs5cLc/+vM4yB71Ow0Ru5NLkdAKzuFiKiInW0NuqgJKDuXnGvu8nUIbDangk5KPPh/Gh1Aqy5bmNnwvW5a3BdppMZAz/U4SZvZMgbNJ0srBr4vg6eL73kdLHTli3b9obVdikE4KAzG8wdr40BgKVcr0XbNrM3JzNdfP+fAw06KZNXZi4Hay5yaCibORXMjFXHnbWtkEDr0UHPGFhtl0GAqOrakcpxADB1DOypYa/Tc33umvWWUWYUJyTVI7Ov7b0erLnIARbX1QeKL9jLVbtACCCwmc9iMjiY9oQ/mzMg0//VO1I5Ph8uSOPms6QDRIh4c++Nprj1+rF6jBmrSQ97g3vSu+zFfkFDhYQDxefbYA1B9c4gVs7ERQcB2XPbnrDangECASWE90rl2KR/CqwtcmMVuDq7d8QbstoMrT1BgNf1vBps99mtu8hfKB1acxmiRbVtOggAnvDW1xzqKFhtl4GAXHRP+pNxwQQbVmesApsTG27qfY0plbJ+zFsAECjuGLgVbPbZNV4gRDxWGZsN82vesoEAfG3Fk2BENiES3R1u0dGw2i6DuUUlyIPlQwAgUYKFHmXm/ghJOejc0PMqB531000AAQMdXJ29Ymdye/QTy26E50svVlTF5DWs1UU2JWOs+m09dNfVBkBnwWq7DOYW9YR3oHiwrKKuOU2fxMZTKQAB4NW5a/dmLivrilgH3lsiEiAqunrXwD5XuFZ3ruIdzudKB4uqvNabSEgEgR3b1pAUCQTs8gnUsbDaLg8BecJ9sfzyXJiPfmLNmRDqcMQbui57tSYN3Z5URkQChU/+tuSW63JXm5/Ziv0iMvF8ZVV5pXwMLCdQXNApWfTbAgDkZJZ3ydoWVtvlMTpY1bUnCgfsjYKIiGgMrrcM3jnkDvjk2xuuHUBEAaKsym8eeMO25BZN2p4CIqIpmHuw9PJYbTwpEgR6rR9mFH/ENt51WqY84bLWtiestssTVbkG8fD8/vgnNgYysq5J78nsuj53jSaL5bTXnKjoF9W2JDa/sf9WqMd7WCr9E7sRXiy/fNI/5eLayxABBDoEm2EYOZll27Y9YbU9F4h4sHRoNsib5FpLFWqg7hR+z8jbXHShe+uBmTcb6OCm3ldfnrkspNBiUgMAADjoVHXt2dILpu1jO1xYs0tmKQwDAXNOth3eJnMmrLbnQoIsqfJjhScBQNsPGLg2d+Xt/a+vqIpAuxq0hoQUjnjDP7nhnQAgQFgs+oWogQBgrDrxdOFAWqTUmroRzAeKgCGFRCDs3HqIOOj2t0ESB7MMrLbnwvRW2V94CqIEd4vmrfEh/MSGd6Rl2qyvu0xw67XD/XcNv/WS1DZN2jxUbLpoAAAOll86FUw76Kzt9YwWMYghqYqu2GsItNEbISCOA2tDWG3PSt0YgVfKR+fDQlSpzw6mIBYRXZHZ/Z6RHzOZDt0kuCYUoab9KzN73r3hbVAPD7BaiUagCHTwr3OPpkRSr/3+GEDdtjVhhZam07bEZhNU1zWTp2tgtT0rZqMsKZJjtYnvF54GAHt3rNEdc/v9xMZ3XJu9sqTLlhabrcdIrSbtofsLW386I9PRZqA99avrzFht4omFZ11slyqLkdrqio2Dm/e4O72TgHDtkjiYs9El97MliEiizIeFxwtPQ71OlSVngpGkkFSf0/NLW3+m1+kJKewC8zY2YGtU++Dm997Yc72J+jLmvKVB40fXP8/c72u/bS4jCURfBwthEZodN4CI5vE17A2OeEPrttldO8Nqey4QUYPOyvTjhWeOVcYECqt7ZUTkoFSkrs9d/XObf8ok1LeNUqwQo6plVX5T/+3/duN74h/ae1PmiWgcFw/l9xsNagdDjwAQRE37+XC+/oPmHbzup+5xctdkr6hpv2vWRl0Dfx7nwVRfPFYdPVB6AeqBO/b2yow1rUm/c+StH9r8vrKqGDOwEwU33oWv6OqVmct/ZfvPIWIrNscQNWgA+Ne5R0/506Z8eJtcQAHok58PCwBATT0rcz0V6aRIXJ+9uqprojOnTRfDanseiEiDTojEfTMPVlXVaqJ9LEBmif2hLe9774a3F1VJAHZcTJhRPQGiqquXJrd/bOf/PeD2K1JWpTYe2nzxwNzDJVV20IH2sG0h6ujsz4cFAABqcns0xChn96rs3q3JTb4O1rouBHMa/GGcB2OOJUXiiYVnXyofbsFwkXVGGgB+dfvPf2Dje0qqEpuEtk+gKZi3IEGUVHl3etfvXfaRrcnNipREaVVqzcEVaInyscLTTy08Z7J12+e6CUBf+3PBPBhdbOqJmXI/mvQVmd2vzl1b1hXbySPMRcFqe34QwWzyfmXq6/Wf2F2jGbejGeKXtv3Mf9z2IUAIdNABgksAdUOyoIq397/+Dy/77W3JLUZqbQ9uPhcJAgDun/3OdDDjomups9wKICIA1EAzwSwACDsl6k1Ox12Dd/TIXEBBh7qhuhJW2wsBAUCifLzw9PHqWGx+2hqs7sCN04Xfv/FdH7v0vwx5AyVVjrfy2+0WMqdaz80NFamf2/Jv/9vO/zLkDcRWbQt8CCYx5PnSS9+ee6jHySloo44YJlLCRWcunK+oqkTZ9LAE87BRpF/fe8Od/bdUdQ0B2YHbJshLf/6KtT6HzkCgKKsyAby+9wYFdv2PplBLfHwNdGlq2619r5sOZo9WR0MKXXQFIjXEV60t5jQcdAIKAgq2J7f++o4Pv2P4LRJlLLVg2XlqhjCeyr+a+OJTCweSIqGpLZIaYhBAg06J1C19r805WROm1swzrPd3Q8RX91x7pHLs5cpRidLU34C2mTDrEmS1vSDM0l6RngvnX9f76gG3TxlHqs0UyVhwEYCAep2eNw7cNuD2j9UmTvqnNFBCeLDW90+ss5p0QS0MugPvGH7rRy79lT3pnZqIgCKpRev7VHFq7Ivll/949M9d0Z69MMz50K19rxv2BjXo5ra/jDP0NOmE8G7uvXFBlY5Ujy+ookDpCcdUrz/HpEXAJX8EIIJo/FYAChDRHxQShfGQAEv5uWC1vTDMHHLRnQpmep2e1/Rca+4TaMlmd+MQezO739B/c1qkC2phrDqOgK44LVGqBav1xuMbW3I+LGSdzJsH3/DL2372R4ffnBAJTYQA8QrAatp+tEzGqIzh7x/9k6PV47Z35FaMg868Ktza97rtya0aSDY7bCDOlNGkEzJxa99rd6cvRcB8OH/SPxXokEDHNnXsYSAgDZoANGgFSpEKSYUUhhQGFPo68Mn3ya+RX9W1qq5VdK2qqxVdKetqUZU1aE+4tp1sHQ46a30GHQMREVJCeN+Y+ZcfHrxje3KLIi0txzPFPlyo3xuK1JA78O+3vP/Hhn7o4fn9/zB138HyIRcdgVKCECjiNKrmnlh8tKiRIpAirUmHFPY4uQ9s+jd39N9yTfYKAAhJSRAirlHZklvPVHtxUN4/+9BjhafNwrkNb3sCEogVVTtePQEAwlqxiHijlYBu7r3x5t4bD5UPv1I5+lL5lWPVE6f86UK4UFQlV7gOSg3aRddcNBcdVzie8Bx0Eug56HjC9dCV6HjCddHx0HWE66KbEK6D0kE3K9NPLhy4f/Zhe204ugNW2wslWp1hYrQ6fu/UNz687UMt6yHWqLkm90GD3pAY/vGRH33TwBsOlQ//y9xD380/Nh8uVFSVgFzhuuhIYbylRPUM+ou4sQkIIydJtIREJCBj6ShSCeElROKS5JY39t9+e/9NmxMbAUCTJiCnJRtii2daXzg7KEth+QuTXw0oSIpku3lsDQioiTzhHq4cC3ToCsfGtWrcaAWKnn+70zt3p3feNXhnRVVr2jd2axyQK0xXDfMFoECx+DcIgaf98MwRkyLxwNwjVlvMdQGsthcBIipQWSdz79Q33jJ452XpS1u51RvfQgIFUhSQ2+vkbuh51Q09r5rfUngk/9j+wpPHq2OzQX46mK2oiitcBx0XHQelQAEIREtKT8VfY8P/0EisJlKkAgpDCnwKJYh+t3ezu3FjYuSazBW39d10WXpHfCBFynjxWrAh1kgUuQEAAF+Z+sfnigczMm1yydoTAvLQPVw5VlTFftFnb6B4lWOef4oUAEiUKZlMyeSqDl2/4Mb/4KAj0RGAiis9nhNW24vDiF1FVz47cc/v7PoNaHB+tUZf4lGidWJd7nudnrcOvfGtQ2+s6drzpZdeKh8erZ445c9MBdOn/Jl8mC+pigAUKI2dYrY74lwms+SMavgCadCKVEIkep2eEWdogzc84g1t8jbsTF9yZWbPBm+48YKYL1oT47UEMzoBSRTPF1/828m/TwjPvIs2NGwNZvFxuHJsQRX73T67G62AgIurosYJA6eXaVjZGRjLFwAyMi1QtEedtfaF1fbiMPaCh97D+f33z37njQO3N0Y4tfQ06lUIzO1aV0lKiMT1uWuuz10DAL72Z4L8bDC3oIpFVZoL5ueCfFGVfAqqulrVtbgNmiMcD11PeGmRTIlUWqaH3P4eJ5eVmV4nN+gO5JxsPLqxkhqLnqzJ9kgckmzq2H5q7LNzwXxWZhS1UYztmRCRRFlUpZfKh7cnt7bAGFzMCD/9sjRlYDMPMzItQLRJWcu2hdV2JZhs989O3HN97poBt78F22VnsqSoAhAgoIOCiDRoTYQInvA2JUY2JUYaf9G8QJHWDSmtpqaBQCHP0r1Gk1akEaPon0jucTGWqPVSG50YkAT865NferJ4oP2lFuqdgD3hfm/+iTcN3N7puV5mAkS2LXNO+AKtBAJKisSh8uG/nvgS1AuDre1tYxIizNcChCscCZKINGlFUUCPJm3OU6L0hJsUCePCS8lkUiQ84ToYNYwwvxWSUqQ0aVOR1kHpoIzjQ23HdV3IWw5JSRRPLzz3hZP3eui2SYOG80IAEuWTC89WdW2tz6U5ZGSKbdvzwmq7Eox5mJKpf5i+7+H8fpPm0CYWSiy75guBQoCQKCWIOOX33EDdH+egFFDfm2447Nq+QYirz5ByUE7Wpv7g2KfKutx6f85qQBD5sPB88SXzbQed+bJkZFogstieG1bblRC5C0HUdO2Pj396ojYZ5ZW15aqwUXwvCjjdZG4T4pAvidLX/h8c/9ThyrG2Dfk6GwIx0MEj89+HegemNpw5FwpRUiRFs8s+dB+stisEo0qMybHaxP84/r/r2TttKrhdQ+yxMXb6p8c/90j++20e8rUsCKhAG2eC8fms9RmtEKzHNqREstndf7oNVtuVYxazaZl6dP6xz4z/DbSHA7eLifchTb+if5z+1t+e/PuUTJrtvg4ybE0ASQK90er4I/nvA4LqEI/zmcQTPSvTa3kenQCr7WohIAfdz5388temvmniw1hwbRBfVUVKovjO3KP/7/H/bfoydJbUQt2346CcDwvfm38CbHZgahkZmengs28JrLarwtz/EgUBfXL00407Ziy4TSS+ntr0ZZh/6uNHPxlS2LalZ84LEWmglEg+U/zB0cqoRNnp3lu2bc8Lq+1qMQ5cF92Agt87+ifPLrzAgttclkjtgYXnP3bkjyq65qLbWTtjjZhlUEIkjlSOP5zfD/ViiWt9XisnIzPstz03rLZNwDhwXXTnw8JHD3/iqYUDphc6C+7qia4hgJHaF0qH7j7yR/NhwUO3/RMZzk09jjD5ten7ZoLZTs8OyLBtez46+wNuH4yF6wlvLsj/5su/++j84/J0C5c1dwUsWrWkJcqnFg78Py9//JQ/5Qmv06UW4jmD3tHq6L1T3wCI6vN26GzJyHTnnXRrYbVtGhgVzE8Udfnuw3/47ZmHTFKAqUXARu5FERe4MVdPovhOfv9vvvK7s8GcJ7zOdSAsARE16LRIfWHy3gPFFwRi/NY6brYYv203fCrWYLVtJsalkECvoqu/e/STfznxRQAQKOIQJRP6s9an2e5QvaaaImWeWP849a27D//3sqp0k9TGmJZ3fzL6mYqqCBSx2d5ZgsuehPPCnXKaDNYrW2vQjxeeGa2deFX2ynQ9/N5UpesysWgu5rGE9V4MoQ4/feJzf3riLxHAdD/ryqvnojtWmzhRm3hD/82mdaZx43bKm0XE8drkv8w95NTbTTJnwH3JLID1MoAOOs+XXnqs8PQlya1bkpuMEMf1tqFz7qVWErtcJIopf+YTR//nV6f+2ROu1SbHa4upppYQ3sHyy4WwcHPfjaar2OJUaai11p4g4qlg+pszDzjcfOussNraIXYaJEViMjj1cP6xGtWuyuyNOqMARb1nTi9ayECDG+GxwlMfO/yHTyw8m5UZUxK7K6UW4gcMgifc50ovTtambuq9wRHSlF7DerWXdn77iDgfLvzD9DddVtuz0uFBJ+2MWQ4rUmmRrurqZ8b/9pdf/MgThWcQo85OpiZ3p0dZ2sDIysP57z9XerHP6VGkulhqDfXHMyRF4mvT9/3XVz4x5c+cNk/afpc1I9PmqdDm57mGsG1rl7halYvOhH/q/tmHJv1T25Jb+txegULVnbmxQbfW59sWmGpqmxMbn1x4djbIu8KhddDMNbZwE8J7uXL04fn9GxMjl6S2CRQKFLTrPIlrxfna//Kpr5ldzbU+qfaEPQn2ie8iByUBPFd68dtz35kPCgNu35A3YLaDxBJnwjp2L9Trzuh+tw9RPDr/uINOd3sSYuKp4gp3Plx4cO67U/7MBm94yBs066TGWVF/cUsvyrIJOyZMuKwqX5u+rwvioK3BatsS4vmHiJ5wAx1+v/DUd+cfmwnmtiU39zq5uIwsnR6xuA4nbhSTAIiIl6d3PVc6eKwy6gp3nTx94tgvKaRAfHLhwPcKT8yHhU2JDb1OT8M8obh9ZCx/NmbLmfJqQhjjoeNTAoCvT3+7pCti/U3aC4PVtuWY6ZsWqZIuPb3wg+/OP3aocqTX6dngDccTV4FGgHgnbV1pbvyWFWmJcmti84P57wYUrsOLAIhpmSqGxaeKzz2S33+0Otbr9Ay5A3ErDZMcUY/gboLyNmpr1IMZSNeVfXHUBpElopIuH6uO7S88+fjCM77219UndTEg3vHEu9b6JNYjJkQMAGraB6CESFyVufwdw2+5Lnf1gNtnXhNGrW1xHQYwxIlkAsWfjn32rya+lJapbg22PQcN86SGgJ7wtiY27+u/+Yae6zYnNvQ5PRJl/GJFynT/RECoN68/94QxSh1tbkUDAgBIlGeaqIEOy7pcUdWCWhitnjhWPXG8Ona0MjoZTAU6bNzNW28f03khICDBartmxEtmgqjrok/B7tTOW/tfe3Vm7+7Uzg2JYfNKRcrcPEvunC6e2Y0hyYVw4Rdf/I2jldFENyaSnZcl80SDDnRIQLtSO67NXrEnvWtrcvNGb2TIHUjJ5LJHMNnPBERmwVRfNp173IWwOB8uzIeFglqYC+Yn/MkTtZPj1YkT/sQpfwYAJAisN2lGwEa3xnr7jM4Lq23bIUD4FBRVKS2Se9K7rsxc/pqea67NXDnoDTS+LF7oxfaLoQUTnYBMLly8XLU3Yvw2BYoH5777X1/5fU+46oTWYwAAEBNJREFUcaEfGyO2M43v2iimT0FV1wId9Lm9WxKbht3BQbd/ozcy4g32u32D7kCPzKVlKiPTCeEtOZomHVLo6yCgsKRK8+FCQS3MhwsL4cJ8uJAP5/NhYT4s5MOC+boYFgUKFx2n/qduC8OSTPT1+emcF1bb9sIImUAhUBDpiq76Ouh3ewec/o2Jkb3py67NXXlt9sqszJz5u4pUfXvt9PUjAhKuOHwqTmSKlpoQu/MAAARgFJNk078RtSBD+N0jf/zVqX/udXrCdebDPZPY2hWAJqbF10FIYUCBg05KJJMikRRJV7h1fZSIKEAIQAXa9L8gIEVagw4prGnfp8DXfkBBTfshhQKEg45EKVE6KCUKqjf4iaYBq+rFwGrbpph5bNy1AYUBhZq0KxwHnR6Zuzy9a0965+7MrkuSW3Mym5appEgsexAFmkjH+yWnBQ+dRRwp/qtBYAkoXjAueX2cXWrPvDWRTxLl0crofz5091Qw3dFFxJtLfOXNQj7yNoDWpDVpXd/mIqLYFIWGcIL4F0Wk3cKIMprGPQ3PV2B5XR2stm1N440EAASkiQi0sUcUqYTwtie2XpLautEb2ZQYGXIH+5yePqcnIzMZmU7LVNNPqaTKhXDBLDDnwvm96csuTW23Krix4yKk0EHnC5Nf/ZPRz5y5LmYMp3sb6n9dyC+eUZeOtbW5GLXlpOY2JZ7rsR0nEAGkRBlbMcdrY69UjoYUBhS66PS7fQNOX87JZGUmIzM5mcnIdMOfTEK4LnpJkfCEK0AAYEK4ApAAAgoV6YACs66sqEpFV8u6UlaVfFgohAtFVSqqUj6Ynwvn8+H8KX/67cN3/d5lHzWZx5YcuOZtEpHpAf6ekbc9nN//9MJznvBYDs6k8YI0LlNWeSimWbBt25EspgCYLWZEIggpDElpUIq0Jh2CMlUKXXRddFzhShQSpEQp0awWQaI0d5Vx55lFqCJtFNz87WtfEzkoBQoHpUTpoitQVHT1Izt+5a7BOxQpARbLAzaq+XPFg7/84keM0caCy3QKbNt2MI0JRQBAOqoJ66GL4Nb3yhZfo0n72q+HVcbhVY2+PIh+CxedgBKlg05GpOB0R54GDQRE9PmTX7khd+2QN2iqVdl7s1F8AtHV2b3v2fC2z07c0yNzIYSWRmQYG3AuWTewZAkZKyxhJMdGiwWiQCFRmL1ms93sRJvOkc0rzasa0jHrhzrNu6dJJ4Q7Vpvw0Lux97plz6S5bxAxCq7Ylbrk8cLTk8HU+gy/ZToWrrjYvZxNhmI5Xu7P8q6+Mw+FiAp01sn8/dQ/vVh6GeuFoOxV2zN+g5DCAbf/pza+20VHg7Y6IsM0F1ZbZoWYSNiyrvzZib+KfxL/3XwQkFCC1KR/aHDf7X2vr6jqheREMUybwGrLrBAjcwl0n1w48LWp+xBRgcVqeyY+IT7+z25+/7A3YEpJMExHwGrLrBxTMyWk8AuTfz/lzzjoKLK4usd6wzdN+pLU1p/c8C5f+9z8gukEEECz2jIrBxE1UFqkDlWOfHHyH6De+MdurQaK6rq+a+RHrstdXdHVxsaaDNNe1NPxkHfJmFVCRApUVmT+burrB4ovCIzyEeyZt0bKNemE8H528/uTIqltGtQMs3IIjAMMkFAQqy2zKuK8g4qu/p/xL4QUCvuPcJPZoUm/pufatw/9cFlXli3jwDBrSYPUAqHWrLbMqjFlv1Miub/wxNenvw31No62o8HM0d+38Z170rsqusoOXKaNaJBaIlNGjz0JTDMwqQcC5OdPfuWUP202smxvl0kUIalhb+gDG98tUXKmA9Mu1KXWlDsFoL5sdsemDay2TNPwhDtWHf/LiS+CSaBYrj9rszBHdlBq0m8e3HdL72t94vgEpg04XWoJqC+b3TwyuGPzRlZbpjkYmfOE9+3Zf32s8LREqUC3YFwTn/DzWz7Q6/SY9tosuMxaQY3bYoRIlM9O50dOjvT3AddJYJqFkTkXnYIqzgQzdwzc4gnPVL+1OqL5us/tRcBH5h9LioReaa8KhlkVBNiwLUZA+dz0ieHDzw88DQA7YAerLdM0zHZZUiQOV49vSmzYm9nd+E+WRoyr1VyW2nGg+MKx6lhKJNiHy7QYqktt9B9QXzYLI1UjtUfh6IP4IKst00yM9jkoD5YO7Ru4NedkwH6zSIEiJJUQ3oDb/935x0JSgju/Mq2kwao1UpvPTsNIdV//LQBwFI6acqSstkyTISKJcl4tVFT11r7XaSBRrxBmZTwEIBCAGvT25NbJ2qkDpYOucK2V22WY06AzHQjZ6RMjh5/vfxoA9sG+B/FB80pWW6bJRH19QBytju5J79qe3KJI2etddlpPQ8Q96V0Pz+8vqGILkiwYZomvFojyuekTI4en+k9A3YEQv5ZnJNN8iMhBp6TKf33ySzVdi4NhW1CtZtgb/OCmnwh1yNFgjG3o9GwxIOrNZfuGk0ZqAZb24WTblmk+xnubEN5o9USv03N1dq8GbbUWbeQaBkTEnalLXi4feblyNMHbZYw1jNRGWY11qd0yPHjVwB5o8NU2wrYtYwUiIiBHuPec+upo9YREafId7I0YV6uRKD+05X39bm9AIZcHY6xAgCai1jzlieZy0/nhk8MDfQCwD/Ytu23Ati1jhTj8diaY8ym4re91sY1p1cIFAA007A36FOyffzIhPN4uY5rMGSkMc6fH1d6Ndy/7e6y2jC1M+K0nvEOlw1dm9mxNbiIge9tlsNjznBBxT3rn0wvPnfBPeugSLfWgMczKWCauNpeF4dPias/2u+xJYCxSNzb1p8c/V9O1WGptb5eFpDIy/YFN70mKREiKpZZpDgTmaW7+A4pqIOwbuGUf7AM4z0Od1ZaxjivcF0qHvjD5VQBQYLeTWGO1mlv7XvfG/tu4GCPTFKIVEkU98mJframBcDZfbSPsSWDsUo/NotHaiRty1w15A/bCb8m0JEEkIg0kULym59rv5h+bC+clh98yqwMRtJm0RBoxn70gX20jPAUZu8TFE8aqE387+fcAIFE2V2oXG/NQ9C0AOCgB4KmF5xIiAUTsS2BWDkV/C0TjuO3PZnpHUlMDJwDgQXjwQqQWAByLp8gwAABgmp/nnOw3Zx54Q//rb+u7yRih0Iz4hNgRrEkDoMkSVqS+NfOdf56+/4XyoWJYSsqE5rIJzMpocCCYydabzWwZHryufxeC/yA8eOG7Aqy2TCuIe9t8ZvxvXpO7Ni3Tq3ekxgayIg1AEiUAFFXpO3OPfvnUPx6pHK/qWkJ4KZnkHAdmhTRILRAA4Fx2ioaL1/XvgtNrIFwIrLZMKzD+hITwXiofvmfy3n+3+SdXEw1mfsscUwMZp8FEbfK7+ce+MvX1Y9VRAcJBJyNTGoilllkhp0stAeazp04MH366/wSAvw/2XaADIQbveOJdds6UYZZBkcrKzJ/s+d2d6UtMrfELFFxjCzdGjxm9BoBj1bFvzTx4/9wjL5Vfycq0g07kp2iwfxnm4ohSGAAQgQABerKZ/Mjkg/33RS+4+GnFMQlMS5EoF8JSXhXuHLjVaOKFVL+NX2B+RaAwtu3zpZf+fPzzfzl+z7/kHy6rck5mY+ea+UWWWmYlxPas2RYD6s1mt4wMXtW/G85SA+FCYE8C0zqICBCSMvFQ/nvfnn3oTQO3haQckuf5lbojQoN20AGAkMIDxRfuOXnv08XnCqoo4P9v72564iqjOID/z3MHpszcYRhhWMCmRt1aExZduGlc+RFc+kn8AH4ANy5cuMCVYoza2giYtot2IfUlGo0pGwaBGeYOr2lh7j0unmcu00ppCsPcl/5/JISXWUBC/nk495zzSNUbjxB1tWtTeEi/D+XSSQFBbENh1S/P1Cfrvb7al6rV9mPa0vD0bib3nuiT+Y0v5ypv10aqZ9xdFvcbdDUsiGdgDsLDh3u/f9X87sHuSqTqiRkzVwCECFk0oAFQwPXVQlQAqfql2V7UAnjZWm0/pi0NlYiEGpbM2K/7f37d/P7DmQ/iQS9XK3h6tNdmcQHeQXj4Y/vOYvvO/d0VI1I0RfvfXHyVOqOWLsqdatXYZRtA1S/N1Kfqtar9/kWiFkxbGj4RCRH5XumLzYV3J66/VXq9P2HtB/ETMIHsdPe+ad1aat/76/Cfroa+V9anOw2YszQAJ5u9YC+8sbXaQUUtmLaUCDvOuxfuf7r++cdvfmT/xntFg64Hz0bt2uN/v92+fbv909ZR6zg6LnslQCJELBrQgCkgGimMvcEZCPwWpl1fLQYRtWDaUiLsvvtRGX2ws3Jze/H9yfe62hWIQOxzsD8O/r65vXhre2k/PPDEK0hh1BuJoKoRiwY0YK5W29vvBan6pWh6f7n2A3B8jr7a52HaUjJU1RNzGD2e31i4Pj5XG3H/r93f+XkxuLvYvrsb7pXMWNEU7ddD5ixdBrcW3K6bAUQn/PJMfeqd2hvA0TKWz92B8H/st6Vk2EHeoow2jjaKZnRu/NpScO+Ttc/mNxZW9n4bMSNXTDFunlWwdECXQgERtzhOBFXfn61P2iWKV3F1gFELzpJRgmySdjWcKIyPe5XNo6Y9zxakwI4uunzaW6AIu722VinP1qcG0ux1KlYSKDHx5u/d7l77uFMQr+L5HFKgIVC4ixjczTeALSBcXtSCaUvJiu+2GRUDgP0GNAQuYd3IOBRmYnAjDGfgNnFKi3htQtI/COWa2lsY4u1emHAjDJcbtWDaUuJOhhR4WSNdNrWDCzBuXy0C394tNrARhjOwkkBErwQFICoqkagoANO3r3aQfbXPw7QloleA6z8QFTUqCpnwS5gee1hzd4sNttnrVExbIso/7e1PhEqkqFVKM9MnIwzDKWKxbktEOed6D1RUFaKdSjOob9pa7Q3cGNrzAp5tiSjP4g1zIoIIgd9cn179pdaQc90tdhGcJSOinFJbp3VvIhr4rbWpR83XGu4Fw+2C4dmWiHLHLqMXuKCFwCAotxr1R81aMlELpi0R5VIcs6ISQXf8hKMWfEpGRHnTV0BQVVGkIWrBsy0R5YlCTwoIKgDaleZ6CqIWTFsiyg2NdyD0ojbwm43pVEQtmLZElA92s1ekYkQVgNHEH4s9g3VbIso8hdqeWiOqKohM2qIWPNsSUR6oRIDpDTEE/lZjKl1RC55tiSjD1F1zo719nYrI1WoTGmE4A8+2RJRVdq9XJGJUIVBgp2ILCOvuFamJWvBsS0QZpVB7r5iBzVrp+K1GfTWdUQuebYkoowQSKVzUQgJ/K22PxZ7BtCWi7LGPw4y4Gxk65WbKoxZMWyLKGlV1tzXbzzt+s1FfTXnUgnVbIsoWhYit14oI4lpt2qMWTFsiyhCFu4DBLlUMKikazH0hpi0RZYJdOAMVCFQMAj8Dtdp+TFsiSj+3RREqUIGmcTD3hZi2RJRqajtrxb1X1fQ3e52KaUtEqdbbC+7ucuxNi2UsasEOMCJKO1FRQFQhnUrGarX9eLYlolTTSNzTMdVOpZXRqAXwHyPPnEkObic1AAAAAElFTkSuQmCC"
+ height="340"
+ preserveAspectRatio="xMidYMid"
+ id="image392" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g406"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(62.344152,330.62669)"
+ id="g404">
+ <g
+ id="g402">
+ <path
+ d="M 11.78125,0.390625 C 8.039062,0.390625 5.4375,-0.613281 3.96875,-2.625 2.5,-4.632812 1.765625,-7.8125 1.765625,-12.15625 1.765625,-16.5 2.507812,-19.722656 4,-21.828125 5.5,-23.941406 8.09375,-25 11.78125,-25 c 3.6875,0 6.269531,1.046875 7.75,3.140625 1.488281,2.09375 2.234375,5.324219 2.234375,9.6875 0,2.875 -0.308594,5.199219 -0.921875,6.96875 -0.605469,1.773437 -1.601562,3.121094 -2.984375,4.046875 l 3.015625,4.859375 -3.703125,1.71875 -3.203125,-5.25 c -0.449219,0.144531 -1.179688,0.21875 -2.1875,0.21875 z M 7.109375,-5.1875 c 0.8125,1.398438 2.367187,2.09375 4.671875,2.09375 2.300781,0 3.851562,-0.6875 4.65625,-2.0625 0.800781,-1.375 1.203125,-3.703125 1.203125,-6.984375 0,-3.28125 -0.417969,-5.660156 -1.25,-7.140625 -0.824219,-1.488281 -2.359375,-2.234375 -4.609375,-2.234375 -2.25,0 -3.796875,0.746094 -4.640625,2.234375 -0.835937,1.480469 -1.25,3.851562 -1.25,7.109375 0,3.25 0.40625,5.578125 1.21875,6.984375 z m 0,0"
+ id="path400" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g414"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(85.1083,330.62669)"
+ id="g412">
+ <g
+ id="g410">
+ <path
+ d="M 12.03125,-14.625 H 7.078125 v 7.90625 c 0,1.460938 0.101563,2.429688 0.3125,2.90625 0.21875,0.480469 0.769531,0.71875 1.65625,0.71875 L 12,-3.203125 l 0.171875,3.125 c -1.605469,0.3125 -2.824219,0.46875 -3.65625,0.46875 -2.042969,0 -3.4375,-0.4609375 -4.1875,-1.390625 -0.75,-0.9375 -1.125,-2.695312 -1.125,-5.28125 V -14.625 h -2.3125 v -3.328125 h 2.3125 v -5.21875 h 3.875 v 5.21875 h 4.953125 z m 0,0"
+ id="path408" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g420"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(97.172393,330.62669)"
+ id="g418">
+ <g
+ id="g416" />
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g428"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(104.28144,330.62669)"
+ id="g426">
+ <g
+ id="g424">
+ <path
+ d="m 17.453125,0 v -10.640625 h -10.625 V 0 H 2.84375 V -24.609375 H 6.828125 V -14.125 h 10.625 v -10.484375 h 4.03125 V 0 Z m 0,0"
+ id="path422" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g436"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(127.7637,330.62669)"
+ id="g434">
+ <g
+ id="g432">
+ <path
+ d="m 15.15625,-3.234375 1.015625,-0.109375 0.0625,2.90625 c -2.730469,0.550781 -5.148437,0.828125 -7.25,0.828125 -2.65625,0 -4.570313,-0.726563 -5.734375,-2.1875 -1.15625,-1.457031 -1.734375,-3.789063 -1.734375,-7 0,-6.375 2.59375,-9.5625 7.78125,-9.5625 5.03125,0 7.546875,2.746094 7.546875,8.234375 l -0.25,2.796875 H 5.453125 c 0.03125,1.492187 0.351563,2.585937 0.96875,3.28125 0.625,0.6875 1.785156,1.03125 3.484375,1.03125 1.707031,0 3.457031,-0.070313 5.25,-0.21875 z M 13,-10.34375 c 0,-1.769531 -0.28125,-3.007812 -0.84375,-3.71875 -0.5625,-0.707031 -1.515625,-1.0625 -2.859375,-1.0625 -1.335937,0 -2.308594,0.375 -2.921875,1.125 -0.617188,0.742188 -0.933594,1.960938 -0.953125,3.65625 z m 0,0"
+ id="path430" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g444"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(145.21372,330.62669)"
+ id="g442">
+ <g
+ id="g440">
+ <path
+ d="m 15.65625,-12.421875 v 8.1875 c 0.03125,0.523437 0.171875,0.914063 0.421875,1.171875 0.25,0.25 0.640625,0.40625 1.171875,0.46875 l -0.109375,2.984375 c -2.0625,0 -3.65625,-0.4414062 -4.78125,-1.328125 -1.917969,0.8867188 -3.84375,1.328125 -5.78125,1.328125 -3.574219,0 -5.359375,-1.898437 -5.359375,-5.703125 0,-1.820312 0.484375,-3.140625 1.453125,-3.953125 0.96875,-0.8125 2.460937,-1.300781 4.484375,-1.46875 l 4.625,-0.40625 v -1.28125 c 0,-0.957031 -0.210938,-1.628906 -0.625,-2.015625 -0.417969,-0.382812 -1.039062,-0.578125 -1.859375,-0.578125 -1.53125,0 -3.445313,0.09375 -5.734375,0.28125 l -1.15625,0.07813 -0.140625,-2.765625 c 2.601563,-0.625 5,-0.9375 7.1875,-0.9375 2.195313,0 3.78125,0.476563 4.75,1.421875 0.96875,0.949219 1.453125,2.453125 1.453125,4.515625 z M 7.609375,-7.96875 c -1.648437,0.136719 -2.46875,1.03125 -2.46875,2.6875 0,1.65625 0.726563,2.484375 2.1875,2.484375 1.195313,0 2.46875,-0.191406 3.8125,-0.578125 L 11.78125,-3.59375 V -8.375 Z m 0,0"
+ id="path438" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g452"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(162.62784,330.62669)"
+ id="g450">
+ <g
+ id="g448">
+ <path
+ d="M 17.03125,-25.4375 V 0 h -3.890625 v -0.9375 c -1.742187,0.8867188 -3.34375,1.328125 -4.8125,1.328125 -2.34375,0 -4.0625,-0.703125 -5.15625,-2.109375 -1.085937,-1.414062 -1.625,-3.785156 -1.625,-7.109375 0,-3.332031 0.601563,-5.753906 1.8125,-7.265625 1.207031,-1.507812 3.09375,-2.265625 5.65625,-2.265625 0.863281,0 2.226563,0.15625 4.09375,0.46875 V -25.4375 Z M 12.5,-3.734375 l 0.609375,-0.25 V -14.625 c -1.4375,-0.238281 -2.765625,-0.359375 -3.984375,-0.359375 -2.417969,0 -3.625,2.015625 -3.625,6.046875 0,2.199219 0.28125,3.726562 0.84375,4.578125 0.5625,0.84375 1.453125,1.265625 2.671875,1.265625 1.21875,0 2.378906,-0.210938 3.484375,-0.640625 z m 0,0"
+ id="path446" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g460"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(181.22687,330.62669)"
+ id="g458">
+ <g
+ id="g456">
+ <path
+ d="m 15.15625,-3.234375 1.015625,-0.109375 0.0625,2.90625 c -2.730469,0.550781 -5.148437,0.828125 -7.25,0.828125 -2.65625,0 -4.570313,-0.726563 -5.734375,-2.1875 -1.15625,-1.457031 -1.734375,-3.789063 -1.734375,-7 0,-6.375 2.59375,-9.5625 7.78125,-9.5625 5.03125,0 7.546875,2.746094 7.546875,8.234375 l -0.25,2.796875 H 5.453125 c 0.03125,1.492187 0.351563,2.585937 0.96875,3.28125 0.625,0.6875 1.785156,1.03125 3.484375,1.03125 1.707031,0 3.457031,-0.070313 5.25,-0.21875 z M 13,-10.34375 c 0,-1.769531 -0.28125,-3.007812 -0.84375,-3.71875 -0.5625,-0.707031 -1.515625,-1.0625 -2.859375,-1.0625 -1.335937,0 -2.308594,0.375 -2.921875,1.125 -0.617188,0.742188 -0.933594,1.960938 -0.953125,3.65625 z m 0,0"
+ id="path454" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g468"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(198.6769,330.62669)"
+ id="g466">
+ <g
+ id="g464">
+ <path
+ d="M 2.375,0 V -17.953125 H 6.25 v 2.140625 c 2.03125,-1.3125 4.066406,-2.160156 6.109375,-2.546875 v 3.921875 c -2.0625,0.40625 -3.824219,0.933594 -5.28125,1.578125 L 6.28125,-12.53125 V 0 Z m 0,0"
+ id="path462" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g476"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(210.84872,330.62669)"
+ id="g474">
+ <g
+ id="g472">
+ <path
+ d="m 14.828125,-14.265625 c -2.824219,-0.375 -4.871094,-0.5625 -6.140625,-0.5625 -1.261719,0 -2.140625,0.152344 -2.640625,0.453125 -0.492187,0.292969 -0.734375,0.761719 -0.734375,1.40625 0,0.648438 0.269531,1.105469 0.8125,1.375 0.539062,0.261719 1.8125,0.5625 3.8125,0.90625 2,0.34375 3.414062,0.890625 4.25,1.640625 0.84375,0.742187 1.265625,2.058594 1.265625,3.953125 0,1.886719 -0.609375,3.273438 -1.828125,4.15625 -1.210938,0.8867188 -2.976562,1.328125 -5.296875,1.328125 -1.460937,0 -3.304687,-0.203125 -5.53125,-0.609375 L 1.6875,-0.390625 1.828125,-3.65625 c 2.875,0.375 4.945313,0.5625 6.21875,0.5625 1.269531,0 2.171875,-0.148438 2.703125,-0.453125 0.539062,-0.3125 0.8125,-0.828125 0.8125,-1.546875 0,-0.71875 -0.261719,-1.210938 -0.78125,-1.484375 -0.511719,-0.28125 -1.742188,-0.582031 -3.6875,-0.90625 -1.949219,-0.320313 -3.382812,-0.832031 -4.296875,-1.53125 -0.90625,-0.695313 -1.359375,-1.96875 -1.359375,-3.8125 0,-1.84375 0.625,-3.21875 1.875,-4.125 1.257812,-0.90625 2.875,-1.359375 4.84375,-1.359375 1.53125,0 3.410156,0.1875 5.640625,0.5625 l 1.109375,0.21875 z m 0,0"
+ id="path470" />
+ </g>
+ </g>
+ </g>
+ <g
+ mask="url(#8f2a27f6f4)"
+ id="g482"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="matrix(0.198482,0,0,0.198482,536.61425,471.98102)"
+ id="g480">
+ <image
+ x="0"
+ y="0"
+ width="461"
+ xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAc0AAAHNCAIAAADzJ7dKAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nOy9W9Nl13UdNub3dTfQaBIEqJCynIoT56IokitluxzHFeeBceUh5aekyvwRec8P4L9JlV/ymKokDyo/JFUp2bFkUbZoXUnKAEgAJNA3oLu/s/Kw5hhzzLX2+bpJgSJAniUKfXqfvfaalzHHnGvuvU8Dl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl3EZl/FFH/HzFuDnNr41vgXgvXc/eu+9jxBj8HjozwPbjHaKjagPMdYvXz7rvCMO5gb/m0LH4VxOjFuufvuiOTkQA5tOx3MHZduNcH7u4KzgrAiM7QKmZvB/0waD15RlVrF4LPzYWS3Oi9rnLt9NkWNfyi8XK9CO5FjnBtqsgZCpb53lK6QRop8wlnObWGPk3yOirDzWU9eFTVbZ4gBCcTwl/2wLHU05nLVOWJBxNIumPAixW9c6EO0WMF2d/+oXdwx8Y3zj2/g2gMePnwJIJM0/wv7k2BxJZqi/JCXtJx3N0mkRndHPB09E/RcSlnHAo/30+g8iihdK1MMRTZd2Mj8ch3SfkgJtuWRVNtXoykQJ63of2FbGvwIGDv2WQXuGyw4/lKgHpm0K1pemgTllVcKN0Owj661wwTrL8IZzENrNvnjEzBqxz3I9yk+m5jkonMHM9tdlStPUZduj7NwslPWiienAd7Er1uEm2ky3rKUr9cssGDlS8JdrfGN847fx29/Ct/7i+x/86MOPT7ga6ZCBMWN1VgxlchUdrIyGuxbAyPpiRjT/uHXWAFinRFTRgWU6bO4q1EBEYIx2FZ2OAMYsDStW+B1rrzEOMDBUgMSmJoVfiSvyWy0RFCTsWykXNUvymaADGQBjuKQVorxErWgL1TW03OKRqWNtCbIA94ngCSvxjbqgGyEwslwdY5bmFcGmxDD3ulMahGjtZlifNc/cIBRH+BluBHQI8TqriXg49xhm+hkcYyQWD5Bg8o+eABqolnLVjLAAvha2ktrwYyevswZiblUHA47LG1x2COnUMucw+zSXm1Kj4qVH/5kt5y/y+Nb41rfx7d/Cb/3+e/8W771+g1Mw0Itt0+RBqAFlYgVeHuiBKhgtwB2dWIX1dtCJz9AkVM0Y1c5T3EQEj2hrTxDk5cYYCvuV+KKzCQzuO9tqA7hUxJLWds8e21qoZKxZk00j1L8JKjAnUamA6WG2hbKMs213U8W8XOkcJ5MOO+g0BPEiaHeurgCjcMoOJbiZRjoUhAQGh1DnowahJalEc8pZCG186qm5qZmcPeGTfQp+GzN9T3Xl1hU/OEKLg0onnEkqnkKEn5aNzHRg9RDRLp7oiBnkvAbjXddV7IjKXw4hy1XNcca2NfeXi2dnTxbA97//4Y8/fHyDk2w+imWDTk60xMa2t/AmCmQgjgUjz6piHFj3sGLMW4pcSDUC7Jopl6JA5WGhdZCjOl+I+Fp00VZLMeJ/3WvbDX+KgQ56SUT7tGgZWRDmZ7Eta6lhcV1Zo9vHOruhdT2TeWB7qLhG/HYx+F7bDpIjnGskXO00rLylfGOmFXZsw22i5I01PSwQapuGnnJaJ7hroYUq/6GtHmgK+58ovqryPeWKRnzowCjb7gcPneIpxPLQrRAy4eGRohJkMHcGDyn/YdBRtyRsUXltHSikIOR9qswR1/ilGd/8p98E8ODrD77//Q/f//DxGKeIEayREGFJL8MseFAGj2wBhoE+ovNpIOZxT9I8OP8+2ElMBAcXkLTzmjYl+UJtoJHXzFCRCE2PrNkiayhExIjBHI/537lQhRxFqmCg8BUqKDVbqCjsg2qCmqKpGZxSYk52msEwhdadGM6nJmi1rYKQXpBHaP2UIVh+RrTAptSrRpAdLKg8rxQRMLomkgBWTSkKOwmyeAoTAcT81rkvun0om68Yqt0MQg110RFiPqKZc6H0SJlZ+6qg9bjgGBGzGSXjRoQOMqHfDqEO8hVCnNIgZEF0K4TqhGEahYINE1YZVwzAjAEz55hTWjOKSaIwIFubj1S7FITou1+CMUkWwL3feOvTcboZJ7qS+YcYSXfQ48xxKrDa9hzAUmJYqACNmxQqS2HieTI/WCred1WVPBUqPCGA3Op58ibbYgJ+6LyqsQSgrRvKsXQSqBT2g3tt0vu2TWByUylnunFr4bVtTjLxt06CHCG6M9MVDcmSVvct4nltQvOVW2U09IV6wWgtgnWnod3EK3cSYLG9tbAEoZ+mGeUe0YqHnQRCDFUmkvwDGGz2/vybUessUzOr7/JI7WLpgdKKBVCUheWmpbeDc82oXwqeFcne/Opr4627yTYkOpkguC/CTGXiq2RbwPqIMAqruR3fXit5kEfF9sLRLVTItvBQ0djYFgQZoaDbFIZqajvL26IrwL+vGw4/xU7QKOmAbWWinh68y9nYtiRFkRaQ5RO551zf1kMFRhnlt60Pk75wx51jWydxTfQuUE35aToJBQazNgi6YwiZkCUGOOsnaUY58XWazpkj8o9KG0yDQ39WGd/hYRqFLVQHD5tRezPa3Hq2k9A/l0eoG3UPu9M6aJ+wm2ly8kF6WygeC4R+8fsGsyf75IdPbn713njrHhiZtX0ChN3A3B7MhuzcYyMszLidDcQI8kPM/VRtNHxHw4l1V7fYVtS2fTX/F7zaEBkF94NWPaUqI0+gRiwWI5f3Umj+3+CXUqNChuLNEbZQBcMSD9giJBpZl+SLERgeYVdAEhm31sM6CSQobvlIte4MBuFUqdS0UFEiDDGUbVSJFFq+6yiDVMtFpVaQwqRLldbZSYiheVRCJMu+SChWDULN1GEk6xAaBSHVYkETV6XpTTLPjhYUoPWq38IEHSDqs5sgx0T6I01n/QReUwsdN6MEAzSB57WPm1Eo+wyHEE23hph4Pdse8x4MsgE9O4qpqXyY0HLSCCuMvG8mjQax9ws9dOPr3/6r7z8ZN8Cp7632LYZqrpmqk3SBicqQG+aXmOkcKnE9V5PnarnYcnKYDGvFt3USClietEtaCxV4/hiCC0ReyOUt21uxThtUctbVRg8Vij3FiOXD0k/wMBP5yA5IQ5URRifupZMgtkV2pPMrLlnFIRdqlrdS2qlqcRNgYoN+gQnGwtDdBJ9LukctxJxGk1OSFBnWFCkNVK/R6a1QjY4fauQQkkj6qtV62gmJJtxE7pGyDy+gvxdBSytrMiy3y25pRp35qsHPIWRFvSCk3HA2xMpEI+tZZK+tl7LE3/wUpr3QO47sQ5srjn7xxsA38I2v4Wu/hd/63vff/+DDh7PzPWicGPPGixjNQ6huT9n+CMDI20hZMw2g2DbTYJIzuXllW6FH6W4m5AVYNcvjAeW8/SsYZXioKI5UcfMmQDQ2aY8kMeOI/jwbLdx0yKrLh4XCDkFvU1pCWijDex41KwvW1g4hES97+TyodKVNA6tU9K+kJkza2p14wO/2wWafnJLJj/HLRkjvJ9A+zCPeptjbwdr3LGKbweGkIAgd2keUgfK1KsrGaMQurZ99g/n/eYtPm+/adGwJe4HQzrY9tzUIgbu9JcR6H8/38h5K0iAUqPMC6RGyLarLNmhWN7hH3wqhX8yhlxEmybIsWPpuhR73yl67wWvb0f09re5sa//Z+QJwBnO2gkL0KFTkOQzzKCiq2HYLFfSFqjzKxAOWTiCuaB5mfKsbm+lMrvO1iT4vO0STrYEevOwRmxhND6vKxZBq0RoRe1B7aYn2eQkVWS9cPCPNagppluwjCLkiWCkDFK6U0PX6aw7L82wtA3bZ6LBaSHVuww/42XrlL4GQLdSqyDKd2BZ+57hCLLE0+QtUqCXdhpOtAXWObT0TVIens20LMdPOYTDdECXezIfeZ1aY2MOGti+LUrasFzCpfqGGXkb4vXe/c/rB3VH+a50BMPDMOq1lLhri+cPckMEP9hPkWTs4ULwlfy9hDC4Ex+5SjYaJ6qQJy9hLX8KrGKGK1wHbseAFE9WJSGKHkerPq7barWcjMACGAkZ22Vn4MFpQbgJK4LYtcLatoI72msOgpKF3sBrhNhiUN43fF7bdM4r7hRohzkBoY1v9FcoUQqX1RYpwezOhHCoNfNOAxl/FNfI4dXEWuCVhi0wk/ErTS1GMjrZBCMz4CR08X9tSeHCJYwihz6VhXbYDCHlt6+mnZnHLkRqZRwbrEjWeYR7h6hgFY1PpF2aoJ/vd773//ocfX0cM45CljDdgeaiApt9zIL8jmKAdUyIxmmcQr/Cagy/aqkWv/tBZaWm9KWItf/CKTQvXDhlaTWixba8bfwZPJtDgfrcnv/QUotRSoG/m2voJUFwHAKs82Kj25xYMBrq4EVPz21iZqLxJjbQrRye+5jKp1qst6bE93ILUhnlkfTKBENJCZR8jmiWrtdpCIi1su4m3QMhr2/JI900lw+TYIIQGXdX7trT2ZwghTw/aIDqhW1Dzs3uEYQ5miiE11A7JTE8eoOkiMH7RnjfQywjf+977H37wKK7AG9VimYKR4BJpU/kg40EHVdRYqERkVKnK4A1H0m/Upqn+Ey0Ph3pe4r6ozhTgjFd8GkuhwWsGLFSiFYOJxUWjKR5FmB/9dQ3kVvzgNQcZIdjpA6lgXq6CQRq5p/zgskkcLlD5JTVlOzUFqT0v73VnL5O0xFmo+pCS1pSKyWjmqFBR+MmS4mj5qJhQlGHAc7+nXK6meiM0YgSdsbBthHdE9GQCOn50UNZbClXWZDQRElcNQmjqpJqWQuQvM7MMokAYee18zcHKEeR9/WFoU847gJCTo4vHDzAIKVIqcDqEfF8fC/C82g27QLZqmRSGPFKxnj40XPm244s/9Jzs3d/4ypPx3JPgqD8rCffa1jrgZWvk3/beP+q7LJVmxoPuMhE2ucMoti1R2kJV24LIXoF7dlarTaqxYTsp87SyfvUuyJJplWAnoQw0z7r1NQcyaXTrAVabLF3ahX+PahPfzpfljdbNw/VHstOUFDBPRCwb1jIHbUuNlpJzcdPSARANAc0UlbZ90yqjodQMehay6s/uBxMWCBkSSnds9bucUoBoRoi+BSk1yUlWhbfnVamQOwY1bun+O4Ri84ts675jHM0PraBZZpkpGJKttgVLrdUjMEJA1+WLPexlhHvjrXuncUIMYx2PFrFtBRIK9DK3ZyQYsHBbqCRg9x9M0H2Og05CbE4Vb6JxU0sGolG52ENFNY6IT2qqNjGNdFnKNVJQ69vadyNbVU7FIj6neCFsb70t9ciZ2vZW0B9wEyM6J9lnsS0dQhd64+eAbUUiErWzrdwk9ZZdtrRuEFoyvatpSjnbwp9AWNi2Jw442+qUnW03CMkIQYLGwra08rlOgs4XaixXbZ2E6oFubPvZdhIsYD0TyK1nmlFrJ4FqViOSIbn/YALREfGL0jdYXkY44ZRNxwjY3laQlntY6COKOtPu+hacGOlR7RxrvywWikmt7TUHkG2De7zaMXM7tGwhWzxwlxqCHFfXDbGhWdKBm8dQGHOrqKth2QnadpiCUg+gmk+5cx18ctvSh3hLWcECz8s6M0FTSn4ZUrMc2e1DpdKh3CkX903gz2BI25OTppjcs476iltx8lSa0yAkjZZgLppuW07KYwTq4T01CVsIhlXCgK6lyEspOJ9qC+gi/D0LNPHUwy3bLqKqtugQ4kIGIeOsxI+SSsdqNNrVPnvWtnSAwizFz7jIWFFnzvnUIaRxCCF30NaMchdET3tFuAoxRnoFWz62FkEHZzTnringyP9iD934+s6/+v7TcTNJViWSbyr9vpNALKoqM1VI1I5DFYGBtcrl3oLgBfkuAwB7rjb4msOgKGFbP3T2UdVZjndFJGHfqLZCwBMyZVv2g01Nq3fCOv6s0GERrBYVcHTbxqvRJq25RpLDI+ToqzaX2FX9UihXCI0mA/u2qE5CFYfzK/7LDmtlaI7wTnqH0Fh85CcTGG7zZYtKa29z+6Y4AQRqFDpdWySWvSzT6SeuNkqjtqhXfGO1qttBl/IW9kEJr8xnGrmPkHGA7TUH2pVfsQs0mo1ub0Y5C9uRxeBQhUQe8NhfgKe9GpQ5aDs9eDu2MJfpvrhjexlhLG3FhsSyVweKttUqWKJbv9ViFl2aSCh07s4LJlrmdZNvC4vppXKMsW0DPZwy2lewaFnbfMZNcI3Eth1Yh2xLcg1eNhPErK+yXdJvkmO5G9AzwQHbok6ASpUlirb8UR+jEXTlDxrN0qc9TR+wFOesareZdBwFg0OucbZtX1GSElVcI2/2MPYGy8FOedQcPclWT1WAPHz0mgO0d3G+kF92CEnT80FxAKGtNyKnH5kuz87AHfQYtxYDsMcVej/hsJOgg+e+MrZtweI12R5iXrTZ6rzsmLVrkD76iyf4Ig+9jPDd7//www8fDcDuCBSV0HBQ+YP2uYUKKj7L6OjA4tWKyMb6VYEyPyQ2h65b8YDGJ0HKZcQvvOno8WiEhWgrNFDIlthViTt0uJCHSi2UahbR2gXTysQVhlk/QaYdKxl/qU/LCo0W0a2zhcoC+j6ljOCx7be/2F8rfwx+GttdmWH2Mbb1HKaIOihvjTTVUYFRxgGEFsId5WsAfrdI7xtLiVb10uIj1hfEG/s7aDuEljhyjl6+aibajFD2Qf9qclWn1Aq+4IJRX71keyQYGB4KQmieWuKo5Nwh1BdyJoGFOZQzomn9BRx6GeF33/3D8YN7J5ySwshUOLIOAMfQHNWcm193GHkwi3ktwKpk66fluu7Ro9ccFA/pvto7DW0RHfTQEXPe3uucQpS0C+FSTQfWAdui0cpBmIWTVSTVQhcCGaA/mYBbOwkUb7hd9k5CLwlFQ+iyOQluoaK8QEkpYrZzSnwKm/f/OgyOfGQAMb8RMCuEKGFLgcJP+aypOWqKtWvps1p0Ck5MUYOWFaJXIZJHq7Ox0iDkopY3XU7paNFUHtGK3knozajUNDNFsS0PvsJrDods6+sa9a+dIvOR1BexmHJNR/hLZWAX+As51JP98+/+8IcfPIqrE1D4mcQH7dINCj2ZA2kdgQlGTF5fLDTEy50B1ryAgbLRYiI4+57QpiMXKrat4iMEueZgKVWB7Ysa0bQ0g9KulfAL20rUo4ubfRTk/prDskv/eb7m4OlB3LT55ZYfYOzJYnvNYRxpJAgdYM+D2W3rbEsjlJycUizgCTu64J/hDzCamgf9zd4bQWdbZRhdp/K6rVsrivicaykpdyG8tv0E/22Pgi2fD7dH8qbbtniz7ujA09tGsq3M8k3VF/J5A72MkCQbpyCgpsmhzmCaYvb78qAHmIDCtsA86LWJTkPkFZxt85rMjU7QsPiPWEOF7c7Zx8x3AyrM5p1lklj9xzaPkQeqrTyvEAxpiMKixeRUc3CKIB4eKo7LYfaBaYpMDGUz3rh3RSZLTa/wZ3jSkyUJzSW/tAhZ4gF2wlZfYJSbwvbp7m4TT6HSJQVg+4kU1n9cnHvEaR+FXBAkwtXipqBG8NDVREGLkRxKb173icqJK7M7BQ/iSteba8T2moNcIAhVc+tWCAk/ZtikmB4pCSFqtBrBvVkLs6Gc98KC7znkl9NAUav27ZEDw8LTF4qFbQvSxZuhIkeRggJk2UdEQQy3WZ4AvhhDz8le//qXH50+vYrr3GgUX2YpiHkUk8/SK24dyz8HtS0qVF6ltl2Kx1YjeCXYtyp0TBatdZcJ1vzIoDC2dYGXA7YQLK8uldToGgmUpTs2NT3bw6otFmwRVtvaP0omI/rutv1gAkXCEipp2a311nOAFx0HBeNiH4tt7GDIWdtPgsXeSehsi80+ezOqu+lAVBNP8b+kHBxC6PCuKeD98tRChGsH/TUH+6NsG3Zz4hyESk2UVZfgqrpv86zOL8S2olh3BrxpkP5gJ2FxDGqcg9B+cN8embWHTcE5CPks0+gLNUSyL75298Wb17hiJUh86vGCUdsl3npSfiy2RTlxzspDa6jwVGtzV0lYaNDcM2y7horNQgJLeYE78EZcIHcdveZwyLZo0d5im3l44SOolqFsPgUdW8tngNVHkFmhv6QQP4dOwhHoayfY247nOwmUcX/NYXkfSzDQxUEFDxO2+bH8IrGjFFmKsqNmFEHVzPXT/2CCbFKfozLrckPykG21TlFNF+9MM4ps2y47CCH01xzSXoQQxfxZQqgAz0h3LcqVX7y+gV5GeP61u3jrHgJ8EIpcO/WLxJL2WcFdTtD7+X1VT1VMcWusUAl2BjS0DbQFGy7b3J7Myw2RB8NOnhuSaiGE4iE3fMGf20/nsmIUlJcdTS6qb4Vg29YN0wja/nDzmDCL9TqqccJCsQyMTAbsFUAdNNufh7/moEpLsvGr8ssUt+0Eyyulu/ORNrlw4amRXBBODTkxGyIsxOlMzp+6Bfyp29oOFwyiJrdq2iR024pfakldsCsFt09BiCqXEVLJMADVc2DzKJgvZrz0B2/dPg4hMA0cQmjGkWQrCNGEJaqlkOnikBFa7AQtMMCHviJEcx77AX9NyBZaIaSDtC36XxXmgqUHhbygoGgVrkXTF2Toxte/+d3vPb55hqtAzAcMyt2+e2AtqxwtShoZQ5h+Vt4b5mPVpGLM9nmpuRif+4auykzbaDS2ta/6QmPCibJXeaBKdlCUsIrKi6C2r18WRV9033haJk+siw+FIYhQea5px7BkhT5nV2choNv9Xpvo+to9dNPlWHaCUaZrVNuPLAYHylYLl0mRKqEGJ4VtoMRYAl5sxWFstl0g1E3n+2UXLy92VDetEIrNPgUAmXzAZbf+B255zaFvouvDAiGQbRsSCkLiO1rBpDXQtokL8FKauW3NKKFInMfC+yf4pxy6eA1Csi0srlFYkrIrhPyEz/GwlxH+/Lvv//CDhxFjxEkeCYsluG1Df9o+I5pnSL2iA7CMamxr+DjkGofIDix3DzqJYCFimwjjqZHIhX6bHohqPlM67yfsvCn7tHgAYCFaXW7FgBmhxfxOCmPldxVZ9QBVpFpsSVdPujxEN6lkPme6g22gDp77yrjJ7VMhQQ/WV9BlrU1I3SqZVom4/U6N22dj2xUGji4ZXFmHs1p6WEyEqrP22wYIxMK26dz2Ri+21xx2CKVDe2FYhkWLozLv4Q0AVNwVhAxgxWvtK9VWhZ+iVGEzGD+v8poDg+IYQiLNLcSWKQu6PvdDLyPw6YIx4uSvuZFwclg9lRkvxLZWT0Fsm64Whe1N2EKq+xvCGreKTkMdWOtcBtjKtvxqZWrW27UTspRa1Vt0tt3YJDqw8voCrpEaKSMPuhHarK3DuLKthwr1nFoYrc9c0W77lfG4ULOP3+vYaxPBwPBwECqeJ6iR1oIbYWHbYRcQmOStrHa1rTpiW6MMX8jZVmK7hE5hoEaayxqj24dTtPdiyuHWAkidxL+0wvpPOYBMjTRIsw8lXPY60qFB6JBtbVc3AP+Ls62sR28Sg2Jbs69UDDHtnHQ7hBbC7cfdtuv+w+Ko2PbzzrN6GeFfvvOHL969F3EaUf9XxrXSQD6AYlJsK6eqLhERsqWeSdLYVrYTqow9sRGToH8wt/tgfu0+axOXhQD9YALLwSInyAa8C5XIMa5EFUAV0lD40WiD1/J0zbpTGjdRIeJLOVvbwU0x166bRqkE41Q7j6gL6z4nzBq1U95DBfyrYGB4qGhZCLetubpJ6kdbaL1zJI5NtlVQwwvFl0NoYduiWgO5zCu2Kr7Wictu14to5TK6I4OCli02AryTQP61EIsNQkuSoA6eBrBAqBN0SxKQrUv4oEZdzYx0Ee88yTMH2Tad0vePW3lLwfLDLc0oi6OI5hRJ+3kd6sn+2Xd/8P4HH0VcMReJYMqeBrvKllsvrCoo/uCD2pxBqA4c1bYAsNaD4ELLxk3RIkZbwrgmGuiX1ttaD64xmUjfn0zAIMn0H0xYFlpBT+ulDEsh33fc8MBGXc3Z1qPLNdJa1eFgnJtTaWN7OME2giQ+X9ShvATMLbWte9MDxuNfC4mbRH/UjemB5nG2nQdFVPZAW7OP9wS07iH2ind7e1eB3RtZxxAS9loK+Wlec1hxyyVuh1Cr+KT+1ow6hFAFddhyPVeBfRF6Qk9+ZvxPdbH0bXfMeMK+pU/lTvHOyZTt8/u8gV5GmCSLCLGXjCAsemoNNnrEvQG1qwKhtFx9qkBo6zoXCjZyyMDphiXAuFD+ra8+xRPbSjaP2xReqbKuxctrou1wIxfD8poDaiEeFOdPUVR6UDbfbIKShFVOEm/+fWiWLCBrK1Rcze6jEF+EQoUihLbblULVFEp3cRdrdrCQU/R64Wm2Lbb1g5IHxJdainQ3eEIaXgHPrJySgI9RiPc43x4VsU34vIhRSfMI8R5G8YX+URoNNFEPIdRIgdiDQbe2DfNTuZmXzOBYX3NwHpRtTYM0qYBXKZbWFoTkVkeI+2gJCoW5u8mbUdwc8RWHZlw9rpBoLggtSdor2VsgxCkJIZct8Lkc9jLClx6dno0I8Ee7rUALc1ulEzGEpU1VW4pJ5kZmMstBKpzylwthGPQaQWyLXg0hrQwygm8uSlqTEx48HYt5eZUMfbdLNVPkeUspuJiVUirNTWDKGS55X0gq3DJLopZHjhZqhQktKZUB2IO3w0MFMjwVeNUfTNgWUoiF/rvvBM0I6C0XmMAGoR0ManySpXDmNXJn0fAAACAASURBVAfVtg5arWgLQTRKgxeENNEh1CeWqFszCkVMa2tI7Vrhn3ML3+s/5YC+KEpy502PG2kEVMoB6anp2CHUeheLm1Y16R+WI0c/mPDKrzl4wtZBrXseQp+zIZJ99rU7pzfvnK5G77B6/HuShAITm54o/ym1GrZ0V6CAoO4mE3pU39YSVGx8UVAQGvMKKzftbLuAXkDZuWll29FErj12LrR0pGgpSWv4hlFGGJqFYMpSApxj2/JIj5a225WCQjtKj7kmY25O+fm/5lCxLewtG50mKQDrFuiRW5HWBqFxpJEgNOijZRPd2Haj6WXKmWZU/vXlnQQY22LtJLQqwTsJnTqPm1Ee1LniT9GMoke2TkJqWn0DKNepfM9K+LNrRn3+3lPQywjPvnbn2Zt3YCQbVJ52AzD/4ls8BbnyUivjGbO6CkvlQT6aT5vXT3TP7WztL2JibW7YiaF9B8RSLNRJsGRQMUP5RVsKXRdbutUm1642tc4d3Ny48hntvGRAnYRA6HHctvWTfaz2ge2PfGdaeyv/ysQOVM9EBi9RQdV45oCsF1xocKOqOCXpcoPB1xwqXuUFr8e1EMAIOdwJbn/VhcuJ4l7zQnChTmQTN+d+MCF1y1rQnRHVuonzEFIfZukspXiaOBomNUXXLHDRdGku9vhLcGt+ZAaZj4KJZPWaA/rDCdKItB70UXp6kVZBTXjXrK6OsLc1oyAr15aXaY9xEHqSDcm2FttDiaQq3Njx47BReHohz3T+eRr2MsKfP755Ma5O8ukwHlVy8szfa4pBuFU9RcBA4FkmsmU+oHw2Y3ouxD1GK3tVQh6taMUFWo3QZIbxWhWJy96qT8mLdI1Uc4F5KXMsgwKD9Sw7Jkmbftt1lFka2/YKqGAEY1uKvde2pQhpqEowL9K1Ymk0gJK3HqiKKFExb/z11giRfdBPONdJ8A/LZtCuedCMQol9xqHLDyb4rTBp9MqvOfQKt2Bw5CZhxuti0UFp1BeCTpCvU7Z68FYs7CLPy5GcGoTcREsKlMHLsB1CjrolxGAXWUPMaG61D9S7rW2UKURcJYTySmW025tRO4Q+NzxrLyP82fd+8P77H2VqHDivJ5xtmaKjh7Fvew+ANcoK8lyaPZm9XnMwArKvBvOWEcNZKPRQycWGLpuWoLZAoKk8Z7jPHGGKu3AoDLaZOVsvAWTHJCmqbXicNynwsNozBPplnkWsG6EEM3oq+5gHV5IC6kY+tQi5J3XvjWjfpGOzzx4q1LcFyf6VZ8HdPqjAQ/+q7LD2PFI+LiTSYotH5zuEVFvQ2mIrb8Is2yA3fu1OjG3HBrxiaio1ako1E1JwvgMbFIX2CWtWl4mafQxCa6e4x1GZQl/1XsfKtkIbWvQVurhwPRw8whYKymAs1F6c2yCE5JNYiPjzwrN6GeHPvvfe+x88HBjcywuJAwRxtHheYjXt6MkQ3THUeW//u3sEDdVRxKjuCBR/hQVcA+65xCu7WzxU6cHjrejolFFTbKH67Gq2cnDqVNUHvxy8CP8jblq4jyZaEx7WUMmvrHvQOAh0pduHfiiPmBONcIcRHz0mtjUo+P7xAEIizXPlrT77TnCHkDt0hVCvpDIfWA0rASkMUI+KlJ8EctdlM/hCNEVDKMeNWig57sA+tlDNFWUkuzYl2msO5ZTsgKbS48A+rwIhkWPJHGaBwxBTmBhWXSMcsC0pVTozSlK/nNnK96mL78lai/Zz1DeolxHe/TfP37tCvYYwzKMSt+0EddCSDGRHhZkOrqBvFLAwGmNS/1wAeS+7UZmxwcgHi0Sl6HmRYpNIsFq5lRpVqMBoyLZvh7JVGQhj5IGiIU20TgJrHyUNBHE2JRAbL7K169N2bXfZYzK2WRTHQkUTjZgcweg0LTxYqHj3Ro6h5626LeKz/CHYHNcm+rB0EpYU2K9QuuOI+1y77H2ScGN/MmGN670zoMR8zLZmPY9/1zQMe7J0dKx6wV75YxQVAXj11xx8Wxbd4A1CVMo9rkhRevOgQE+iFWK8DmS0JRtFbv7Clq8Kd+5Y82q7VzaqNY0+BzxrLyO89/4HH48QzR6EOgBFCD8fh+USA/KQcVOj5oXBc6UCVjp1sJw9+gHG6fwxaQvqhlJsdPfDGIShAv71bFEsO/QusOdqObsWtVm0Z0bhX/I1h2q9gU6JsmFss9CNoJg/Av1KssMW4hJWb1ivvNeNqWSYbOXrLhu4UCPcpfXmnYROPU4NTspy67q15xXbkwkgnpYfTNAmfEe7Lg4qaGVEmtrT1Uad0qh580DUVc1urqWD01lwEON5N63IzW1Sn7vBl5x9sGHdULeIN7p25aY9Ulo+YBZjoExPQGzr/UwJvKHl5zq++U+/+bXf/NrXf+vrO8mqnnUzAe47pfGmp1OYp0FUGsTOtgoVrDQttjVg0e90Q9JTPSGSW1ssfdsdtT1UmpoeKl6buEddTSkofYmtg1DJb5ObjJLm+UGy7WxLQx1Wc1iCtoeK2xybEWIJFfeIo9Y0EttmgPSssbPtIHOEs+0hhCjVSkO03sJNxbZlWHPoFtuNwtyhRaPOtvy0bMJ3tO+r+04ZBnhDO25l262hSeNEW6i3RO2J2u0HE9jXWTsi3r5Y7ROmZg+KtmE904yS+ocQavaJTU35Z5BpGSAQ21L/teajIkLCz2noOdmrX3/w+PR8BFBPjfTXwfumGEYlXgke7hc62woNL61tYRZ3tgUdz65n/VhCcdCEaPPF9oMJW20L2Iob2/rBW9gW3dnBWdi4gCcPhjHqvQwTmb3pEMRabC8aONueC5UeFZUYelKshkldxVa8hW3tJkyxLW57zeEYQhTvuHt7jm3dyB1C7u7o3HTAtlNSdLatDStwjm2xkuDqt6UM10STGQv2lpuTt7ItkdBq272TMA+urzkYrVNpgsHVPCpBNL1CzHtuTghdI0jfnW11tjEterMk6VeO6WWBG+rnMUSyn3zt6sWbV7i6mnoSYImwjvqlyV1w79x0tpMAc8MS24bFxkfLTvDVOgk4YFuire8jbgf9somuEn5pyflEzx/8dgGWR6OFSprg6J9yAAOd8jpv9p7yypsow8Koc+kkHHiEbmp8ITVNIynY2Zbfh7NIkdPBS2XnmlFcK/bPh31bnrbSkJ1WXnXPFtFU7obXtgBrEJHWxrZipVuaUQSeTMdPfZdtXPNqEKKDasor/GCCfmvkL9eMkpAWhcTeT9aMMn0NG3ZrBj1xZ7Ax2o86CT+f9xT0MsInX58kG9QyEnxq3limsDvKEYgoftS5wcKhlX7SmUFb8yLxFwoYw/2cFX0ipiF5FTZs+EMJQ885K/azHLRbNFN2asvz8rKjxEsdKZJDIUZZoM4HEIm/Cl0UTJMIZDqUxab5ltccUDroGfXIsjf07ojZh9WHBJJhQ7inzUVtaSPpMC8rTT2iqC/kWZRSzAWorDDxU4ZH8LcgtGiUNOVW0bo4V2HpUCm2VZHrbRM6EeYyikk7mAuK+ybtZDqIfPJfEZJHqNsSIcanIdtSnQYDpH8RXU2UbZX9z0FI2SjouwqxkCEGTGRdT5ploQIEb3l7uRPEgyQJghxmTK7TIaTFTEeoUyT7K9J7ULias47iQ7cEF8NsXimjvF58YjIs6f/Khm58/cHv/dlDfIoTf+sBYL6gntY4PH/LUiXeHF6MrBXuWF3Y81WltbXC9dpEi8IWFaUNbbOZYkf1aOmzWmPp3jaKt+ICqhF6leFzFzpbjCBS2DWCMVpyn70OB/0C5WA9aw/khm39pvyD4nnXMrayrtWMy6bBjitJHHhkV9N3G9rAVYUOf81BRmi3/cS2HAebpNv7tmYHHVw13SDk9mllI6vCtrVAmBr9q0EqdtOhW15UIkbupoNPlGOtJIxFi6Xz1hcanEIHpLfMFQah/Z9yKAUOtqSK5dJx2HLoEKJ5mV/L2iFfe1Esd9pludCMA2yvOfCq+kp3av4Kh72M8Cfffe8HH3wcGKifVMXyQLBp6o8R+/syZ/kC+df6CpUDsWyxYbG9eNRpYicFOYZfgW4YvK5Yd+Z0AmhwocopEOhhUOBCIbpB+VvxPzYs5tV8t8urqdqtjeQw+9DuicBBqBBYYaLUv/1ldHxgH+Mm/wpWW61tvp5ywjRqobLYZ6cM1IvFmRvqPqb2eMgQF4KiZDiAUE8ktZSq3SMiPoCQHMqcKs9WXikiWJ+mZynY6xH0CJGJ9hW5aSjg7aR/RNOyHg5DrOzesZfRt6aMDPneT1DGyzxipkNHl/msQwglXokqCPn5DiHfjmhTpU2bzFm20C5QdshNU274Znj9lfKsXkZIko1TtF+HSbS3MizNTXMYEaPK27V2y3Pbh8z28goppto9KJy1ZIge27zs8G8pq4DlbKtXryzW6IGgW8kQuXn0GsEkbGzbi6AKBuskQAe1DTQiDqcS2ccXAj1DtuU5YXlCbJuUS0+uvFnm3Ws3rGyLUVxDOzFWu0bnatvUvlibgrEcJ4TmXN72EyctmyTHz17b6vPSvUVjmdZSXADmPHVon7TwwM62ytOsZls9QsndreVpAn7vdTYacpreWOwAQjvhel/OMlgx4XKvjHpUHlESddPBDlL+sh4PehyFDF4iUk2x7c7Fbr2GVb+DPMC9N6dEW+hnPvQywr94518/e/dOxImij0xuYXoWxpk5mAbR2daxNFZ9/EjFPMqUDnqPFlC2/HCmdVsTfffB688FUffAGCmbQmyGJiE3T/fbl43oLf4P2FbkJgz1FALLH+gaSeVaq3KzzOjP/6f9pwRJKXJKibKqULblVTwmZcZaeZSaS3pzWq8qxlccVCUUFYxkrs28wgwjd5jpXtJJiFWjxrYwwl0cqrrepsCw2qw4Ki/M3EZCedlrDsstrPJmlXsSbM1kzp605/CJWwrpEFo3/hgOIZQ2UjMINVRRtUDIGTxcnmV1T/OwbA16k2o2WvCIdY/sbMtIZwopFYEG+J/lUE/2T7777g8++DHvGYFNgz1/goZY+gkip8N9khZsO1YD1tltIIp60qBuX4eI44+zlDyd5jSrKF4bVnte1RL44H0t7dINCj0mwYU8f4Ag8/rCMbREV17MpsDSxrpoqVmOsE2tB7cFi9uWNqlMZuhv+1YjGo9kdCOU/D1UStTOGtKubL8/0rbu0j8vP8Ao7G1+ueUHGGHJpLfSHUJdIxAPpIptaxVmdoltPooFP5xSHqSPLE6tdJ1fer+c+F47IrU9XL3cILTnAMopI2idAwraLt5CTCqXEZQNSV1/FTyrlxH+9Hvvvff+xxEnw6U3SQ/cabcCGtuCoWy7jyXpcRJA44KQajS0s21HQ9ti7J0ECUyNWm9ri23GdL1ULT/z/WKmDjGwk/5ypxgtVNrq2ya6Y4Bzz7NtxUBXsGgIVRMGReH9fuskNFRuoCcGvKzDFiqI1Zu+22ihsiSVbUMg/uLV8lArX2nT9TUHXuo2CKGvu98uO6xtz0NILnC2LVozJpD5+SGZwEpzBlJ9yyVugRDtvHjE7EQmpB1Wbuo3aZeFnG2t6KDocgqXOX7NoRMrbodQx3aKATOsUZCzLboRvFpvappvPDx/ZqNeRvjPHzw+vbjBjfXdwtyAxTq9MMFS25KOuKmrgwdsa+QyzDplXB482HJ22SrMdNDZ1ibCgFWGtoX8/kuUKI1tD/q2MslRbSvVjkPlsLbtue0c22IJFcieyT2s1udfKtyZMVa2XXkTt4Lh3CyLlsa2DqHo3oRR+SgYpM2cbYe+G2VPrD+YUP3KpTlLDCj+j9n2aJaw2uzDhRam6Gy7/AAjiap1Eo7ZFqbxXtu6m25hW4wm7Zo7jyHU2FbeIIRS59S01d63veZQmewVE3ZvRq2R0tG1sK3OR29hFRv8bHm2Xkb41asXb13hZH2lleOwMJqITxJzygqn2tIhn5cUW23NhO4mwMDUzKRJRfFdgKBj9PmIbQtDqVLlD4Zo9dno71ACWfq2L2dbQcr7tlo3Clj1rYG+JZW+I1tDRV+UmsoLyVe8wvaaw862bqK+pyundFgvTTRxGU1IrXELhNadQbbXihZVsGOpbfGZ/GAC/eLYeEknQa50QlRX91wnAeSn1ghBRtj5l8rONqPQc4Mpu5bwjTrPs20HlcXR9rxXCeRp/Azb0ik7hAaVKgA725pnK/Yl6kuaUQU8ueln+Z6CXkZ4+qtXz966ipPMNoxDI1Tf5f+Cx0eRESKK2hDQQ9ki1mmV+sCfsfcUHuKrKAEEkbI7YzK4JU+SomzVDeCHEO0651JsfZYL53Gqi3zkP1IxhZ8/jp7L5nlVfRd1holKqYapMzVqRBAFrLB41vVTPQZzRldQTZjpIkk2pYiy4PRDeNzORNhZd8pWyA4aapQU4OqpprypUHEIKWB6zaiQk/W4kAh5PkFfP85LrAZYz863UTCMiU02FbmC0FRSPiq2JRrD76GZRgkhBQvoUyJt35LXvwvJpwnT9lGmr1c4FCFLiBEGQlqVRKMkRA+lVNQ08nQekmGxDyxS4EYoQwTfEKi2M0XOcJ9KWKMHMu9yjzFMVLfqAiGnIFMz7cOIlh3KI+JxO/izGbrx9e3f+9OP8OyKlayTrMBnEQ47Lve0Co4WZG6sNo0/K6zsxxS3bZisvgPKEG4Rlb2tX7YIwOM5z+pBj5bSNHRWFYxWc1U1qBZJf82hSqpAvd5XfGFXq7rA2rulUViJweky9EHtf3R9GBy50EwcqXGI1dR5y0WzzLJn1KvKWKQyR5bpBk9o9ZfXkguEdvktAEZfKGzt9MkgNlUFDupLVUC6ThmW++BEyG19260eXG4eOISOnXIAPFXf3vIEUI+nDhJku83Ud2+tL2lqjkUGTaR4Q76AGbmjqxZC86xNqdp2SppfWv8DFubFtkkUB9F3DCGRACsnMbIi3TdJ5TIu1C6uvPhZj/Yywrs/+ODHMlHr5TVgrT2a3kksh+kr92hSRm9MkUvc6NVS6GyLjU08C7X9IAo6S5djnuNiL2y15hVj6qFqkQw612gP3rIVnQyWf5Ge9PTShEUj3GXvryKFYbYCq6Dfoyu6as0+XCgq902eEnd6I5cFIzrbGhiWNmLDiQG6QQj0pmY5hPz8BiGjRW2qBl9z4LVY4zrbDoFrKpOFLQ5MV4x5SKlmw3NsuwaLn7Dbh7dbk5zUNPAUtzyZsL3mkAxllKq018Lk0La9FBCiEm8LhLhQ2cfsACDK5OlXE0SJvPoies0BLcR66WaeYuRVJohhgi0c7SG2FC4eYq7yZzQGfhO/+Qf4g2/hW5Nkh8zOeqanAld1yRKu6jyvHKYaYWG05c0MYyHI7rniwYO3Y0OPbKpwrT1Ut/WwmM8rzOML9/Gyw0/oPB7I+FABW7TOkor+JvLVv1rYlpI3oDjQacyl9FjrC83tvqhQkYkWpvaqT2bhHO0+aed2Y7lRhiIcZlvYwc5BPTihoRirqnCF0BEXwzajUZieQmsLAmNbWWa1T19ooZLW99yJ2J2y2EfKmltb2LOv0yg1F9LWL0JfLTf1PbMKQrbQvjNYIwVGYRuEhjxrgQ9OUU3DjNIKdOKnyvQpx3DN0GxbYStfo3JtA2GPo9ICW4j1Ap+X6Knlsxl64+tfvPMHz969OoUnNKD2iBk2VSQ0opHOcK3klV3VLVSUodiUBQmK557/wQSmvGbxZRN9wLb8MPqUKnuFPz8fuWLrH0ExKbaVUzk7/zI3qrlGMtVoRmtlpreKukblEc01UWUVdL/Uxey0YupiqaF6lhHVXnMYKZxRjVxQoqwqNBqyUMHy2c93j5B2LRbXhYYtBBbdtaK95tD7gnCIofNjg5B5n8aiiSJnxXLQt8CjRQrc7ObZzraKC5MUnW0lPhgk7Po51++5TQxbMJZ4MrWJ527yunhNKp0ZmHr5bI6uV1u7Xts2DVpWuI2CUJTi1TrQwqS8aefLlWBd+NkNe+MrSfYKcrKTRWkorDsHdTdU3utUKFbCwrYgSxqk5uQk2nkBw1LEYp6DTbEW8oPLThAL6aOmeCYoTaE/umvR2bYmDudetTkTP0Eq2NgWLcbKSmPTCO4mCxsxYql2CCxUpqmJa0wOElMVgkEvWrOz2Dad0tOAoiXosoJTFBjajttnLRTcm1Hlze3iukL2D8S2YQYt3DW2hYhP6ziE0Dn3ltrWv10gJE23duqe6UtSfa6PW4TUd5XACrEGod1NhXYhYemrmHh4OYTyr0bo7ckEgBHQNqpbR8Qh5BugM4WqkJAwkBi09lkIfWY8q5cRZrvgFG2Nc6An3D2VQfirk/qepVvHGc1pbp4ttkV/zcEbU9zsrYS7LCo5myRHbAuzuO9S4QcX/NETDiwPOZJatV86o/NxXGvpioGPb3b1UFlX39l2sW3rZtSUsv1C0xYqSG5ytgV5dbpr0KF2n2MH/bykQd8NvsR2y53L/vEchDrboucqZ1skI6makrfkrmpBa6Fzueos2yJZbOiDnSabNPu0ZlSnsAaJatamchm2aybJQDK0O5W4Urub1sQAJoZercs7rcusINqw6mxbhRRr9JblrE2NcO2N4lEClJrdTUvRGj3Mdwh9Rjyr52Tx6288PH06ojL2wuiHvHkuVF6NbTW9VItNz1S+UlmYS5yCD17hRctmvmlNNsPLQS9rSOB1K7dMXOzDhQxYJJyCm5iVbMtTF7Z1jcq2ujjOhIp3meXQLfMfsi2WUIHUFNumTEkKFfE/zWsOg9d/VQhZqOA824KaNrYFfVBZo+F+4PifctBZYu2zbHtLJ+EM8HBLbXsbGHrjc2qSKc/F32rbsD/jqEQ1Cl4bNca27XPPNDRlSzmrmiI0//kHsa2sPE85w7YwCEWXDZbmeZUDCB3o+BnwbL2M8PWrF1++Ol2dWlbJlUpiW/6WUIHhY9nwLncwhaHgt7Vi7xyhs23r26L2SThkW++mEU/YgHXYnQn7rCnlmGH2MeP4QhVmL2FbIH8XgZEYxVRu+1xhbB5ZNJKot7OtvClpO9u2UFnYdljUR3GLyFUYilbq0Ne3s60Yz2fJkl1U3NKMiu5N5g9p19m29W1LoaMfTBCQjptRNF2Z0WatFHyukyCnWHAZhDa2LUkBtdtgESLSWt7H4kLRNRKE3Ecr2o2kij3dm44foOzTGz6ttoUS9hm23TU4tyc7w7boCftsM+ov+55C/csIX4sXX70+4TS0CU+6mk8Yt/COFFpbhpgySdYAoik2Z85zdFNvziq+iERbMC50ZBhD5ePNfJFBnQR9W3xp/YRJVfNwimrb4T7JrGzqDAnGKSltFHpqz8uFVk2pJnJitmxHmibCfqI7+CB31d3Qea3BH7omKgakZnkg3FC0LY8rdGV/xZh4Lf8H4+sZDGzIpj9D8TDtYDYqJwpHtM84gJAKakEIdrGy6gKh6B5haJWODD9Ir3wADIO4n8soSgOhwNZrDhJOuAqnTv0XJFw/gRrFMosWlr5ySkWfBSAYKanp8pqD8Fhq9heE9NYQIVS2DbOtahEpTQmbeBZNjskg2zosK4lKTZmCz3TOD8F3GTJZREhq2KNuAd3OoW11880NTtlWaZ2CHEJC4E8z9DLC7//LP3304tNxNUboPuYIFlkj1DxU6QJjE6AVnkszMT8g479N7LcFK5jRSLDVjEtHbOkkTA/YGvpq3SdZNQQRTbFLKoWtWFCJ1Pq2sNN6mbbWJryIlDWlxoDSAYL20k1ZXxb2msOQxXoF54WDVx8umCqUYbrULQ6f4t6k02FwNICo76SXMhClOZhHULfL3D6dbR0/9dHqqQYh94gVkgXaHUKwFd2M05YheRvu2/Zc7zyIB4WfHiY4vA9GyYqOdUQVRo8yGaFSINbo05Z6fS5dIK9XBbYfYNwgNHyhHikVJl6W2jleF4vgzkJoabaUX9qDt2Jb+DjzmkMcme5wgzsIgHlc3hx9nVcf9jLCH/35O+/+8KOrOOFK5pjmSbvxJcxpufZ8z2AO51Vv4U30r4rCOvTLkZolhzmG8rwi3OX+qgqP/EpbD9toRPc3VApZ0Q0Fj0Fkp9ShuaNb4GihCn6LJQM9i8Jk3eLlEf4VQs1PWWthW9YXLo/TlgJ+ntpoIo7ELp9Vii0T8YTkWgYF182tkf0LHObeHfTD7IN109AWXQKJYseiEaHl9jEIrXtbsedATgi5x14Ih/a1XkriyD7D7XNEqdgI13cCcWQfUcAeYpYzenh0irr9NQfZJwo42qJ5pSVEyZ6Ibnz62/MHAWLQ6iYSFGflt7ItX98P7u/o5ca2glCZyqPPGD9hYHFESvyJh72M8Efffee9Dz6KMQYLowzc9oBI4izbV2meA+xSmoVrqhSSTalqhbTNaqlM8WAxVjsDhwKIje3xgwDOfXUIepFIFWFKvBaTjoNyjHHW+pXRVrOPlNVE0ZG95jCqGKFV0jO5xtKyLJLweOBaDu6KCh5fGlhOGW4fLcTzWmuSle3k2GHRFRSbribqJGVb1GnIo0WBrQhZQNgptYgY3T6m78oXebLOzZxBD06Wbbf9BHfOfRmEOvYqontZt+45ehy1ufvmkplPP3aEard54z/4JpBFyJKwLXLHAiE5y8QDbV7GJ4pC1HZoH7p4NULuszNrwNnW0oeesBgOfYeQ2+eQgsT7ZvafZOhlhH/+zrc/efd6kqzFB0u+tAd7o3076BslmKF1tAtdRyhxM595saJFFKbzUSzg1pHnnG1Dh3s/QQedbV0w+qns6xpBUNBBc1sJ3ElhbX24NURe3QgprP+ANRJhHuQMmPaTYCvbClWOmCMfrR3S87I5d69h1u916AfPB01nSQPlwKE0XrzloF+QVraVfSwmi8jGCqGyjyC0awRLPMXU/TWHQblyrXqFNye1VznKBQsMXkK4tGd9XlJg/bG6KajUuuJBu40Bwqyn7nMLjt77iq0aXdlW4sF0tDAHPeXRBOwQWsMcAlAFRYW5CHd5ng3d7OL6YwhRKURB6JWHHxqQEwAAIABJREFUXkb45+98+5N3B8ZVFX1tS6eUAbphcP+n3UfQjWGZKqJLSdOE2VGWJVV0tlUK7ZCSI71DWmbMv1SE0NLpfAb2nBulx5JDOxXCuOnsThC2qFQ2oHgkrxA02C31AmwhFeZVk2Q9yPiohmLWtmtT0llSkHLHgcjbaVoXQlOzdaKp0dreiZo7KCbYl5oUHBRFt0DEtjsYCkJhi8rUS9tk6X7QsGZCo6Gyl0OodW8Jg7qPr4fb5ELdH0f/AUYo0+z44UKNcJ1t/WA/02xr9lHBiAJeKafwsGKdQis8OlFtj4INvzi1k67upoN8sGjECx9AqH131DNERbf3DcS2km/tiLhNGKHFttRheHPmlYZeRvij7/679z74EONKpYXjofRsD4goaOw3pxQq/kpKWtxTaxnXeZOqHodKnbS2gUJzUcCKTnML28Jfc9BWiagP84Gs1XKDs8mSVA6LIAM9IUu5HO42Cy0AGtsqUKtWM7SgOEk9HqIlzqO2h0qpiZVti0NkW6lm5UAjPs+dG9vCuMnZFpTYIFQ7pwK9m8skbEF7K4TWipiow6KmMyyMB0s8CV16ONuyVGFPri+ErUWDbaFXYlvnL0eLhN87CR1ssPdnjG356dXYlpNZokad9apse474jthWCxktVmutOgll8QHYlsT2NCXtYh+GbfPOS4aekx2/fv+j0zOMk+726p2eo1ABWN42UNc+jzVhirlUgsW2OAL9PGChAmeivS2wE591EmrFzrZAAWTglToJkrdVQ6bLWbZdSLPLBj/o4LOJWCi+xzahwD6VMTqZtbGtmKpM4sS3cFa8Qqg4KewlvIUKGoQsHiiH9n6zmUBgpcjVEbGckfKc3zvH3ow6N6tYpiC0o66xieUPVGFl5YZaOmJbHL/mQKcdQYhG3+8chOFhZVuH0C3bo5eyLRghrZPQI8R/5wRm0mKGMl2RlYknGBQ/DLuIJna3Hte2vVqHRXpjW1kZwPbgbdhCbrRc9FV5ViT75Gt4/iaG2q5RskxlN7atwPZ/TzSFNoMEqm/LmJQbAptBbaHjUFlo2vUXcSxsS6Fvr22XB13ylA1Lx7XtoGUI+jp4prbd6250ti37mBFoW060WYYt3RUoRhcnDU6OxWigkZ1QuNCupnuzFX0GvvQmBatsBIvq3nSDTqYJWm2LYlt+7mx7ezPqFdi2Zi0eoZv2hHTAtnUFFR7UuFcZhz+YIAsXVG9vJnhtO8p1jXDPQ6jY1gJwBV7fxfYfTOj3kRe2VYramlEFIWyJgRbWwYNMfw5CzrYowm1sa/3nsvsZtm3U5xB6pfcU9DICSRbcV9b9CFonipfqU92LSYTyAZ0pPf9gh3AUdflrDlRgGtQXCs9IFMIPzpkzscjWwWZKWoffCjqtQqmyLyKwv+YQErl+9ZK5w9gnJ1ncTkyIZGu/09WZaKh5Jm270WFRHX1iKsKrBJWPiJFO4VO1dQG+AEGLzL+FuHuAhyxXoakpkqrcKRnIYulE2d9jDMUCboJioUiSjQj+EwgVZkGPBII3BaUzgAMwCD8qgty8CeHBWYKZPCLZPH+gNEoYwCZmLkjOZDTY7RNtNbQoGqdGNw4YFKG0Ef2za7RAyC7sTqGYBiEUDCo8/UWgsAowJFewUWjPgUWUbeWRaAYMSwYCUhjCYXDyFNLmWvTpshViMgUjNjj0AhZdVUpQ4FiyjiP/ZaNeRvjdP/n45mlVsrzC8rxIlMK1RmWJVK7KPrFZKK/TnZaYVKSsG/y51t4/8hVp0bFM9HTdzeEVQa1oC2Up1Jri1dzxZ1r2F3kHCk+Vci0wYDl5jDJgzVUOWGxrTBG2kJtIRrAUmLrpgdtBf9TGPGmr1qgyhX8wTzYYQDWC8oemeYUi42/tHUnrKaSZSIycN2JznwTdjhmsZ7mxmjO96YL+mIFDaDedN3kKQmhCErW9REDZoV2kb8xVeqvAqAeq9FTC/DYJumxQCi0Q6gsN90X3SyPcRdMeR0CJvUQfF+qdBGdbEWG0kpFhY642nOQ6lfhLkdZZxgYhJAjbdsTcBJ87OLcW6jfKpk5Wz6I3Rcoy0ZxyOPxlhO++894HH2HczKcYFWhLQe5su8QDPQGLGb3ozRpWmwm1qgZJZLnV5849Av0ws0q8hTRto+GhAmrUzkkgWKhwoRADeQFLD9TjCgvbbgieV64yzUw3ohZdQgWqKA2LZYElCS32kfvLR/trDjOBEEDTGShTirJFNAds0kOFrm68VqCfV1tiCenQur6FSkGr2JaEGkP/t7Lt5N9IctZCK7C1E5OpoqFruaniRnDZlq+WSPG+rUKHoQBtCT0J2b+YTGyK/LY+VbOnQwjFBcuWvFHYHmKwKy8hpszKa/VeW1o5FPAQ266dBHg5JeW0adDup3+10DTNlZHlZHVgn84MAp6aOcEv2msOUjQXtXtSkB0OxvYywiRZlitByByEyqKe6eMIQBFOstFQAVLdEf5nNq9ojEo4Yigpsxixo6f1kZ2mlzyxxUPDlu8OivhGo1SaW2w0/CsVvD0etFhwIXhOjoJRi1WfZY6g6XpRIyyKMmxF0taA3wsbvAClHzSlaEB2Vg4/YFvLc86PLYqsrjwEvRP0sX0KeEnG2UmoWiaomdg2KTe9aruWspRDyImYEq6bKkvYaWHlBnR0LfsYmkgLlWA0PCE057bQF76IO0OXx8JOqQ4DneyzTLaxeA3tam49o2l7zUFvXwlUXvYuuz8CNTrUZfBW0vlXOKBpuDv2EHPKEiFYTQNUAduud/trDmd5Vi8j/M473/703evTuIHyfkLAgbVvuAZMf/O3fOBsO+j2AFQIlk7cwLLGpVLSU7SIsriDPuw0Onr1X2NbAsvrX1cNwtYSKrbvGY4o0q4OHrKthh8pRdKjR0kblu3Q1BREyl4+0YPHbFodBEjAtA5Xl2d4irMtWkjDbcuF0iMSD2bb0W27eXaYRmuY9XsdB685oAqN/JKipPjacFC2JYzBhRqEvBo1faXRgZpn2NZXZChAuEctpJgRNQky7QmqVrv1pHsb4e5lb993R7+CywaLIwqkuko3KCNU4VK3ZNs0VyPc5tbyZo8UZ1vZ1tMA7enp3JkKKhbD5tp1GtsW/VaYi3DrebZjntXLCL/zzref/rtADG640s7RnKcFl7aj60miqoMtVMxhtHNaXCsNthDkhhkils3z3M7BDcFErK3r+yNDSdl3i7GQxTVxj0lUbsbCtuCOowOJq/ZALesYsPpaMp3z5rDTWmx3anby0jkikaD1aithlYwl8CzUg8GBnqIagwgGujhqrbMQkqZnIFTeXAO7pmeTJ4FTLzIERUm0BcS2Oxgab3KhQsKtELI0xvyHo0jpWmgh8Zc659p32NrLVrxg19i2ywaarhGus60f3MDmWC29VgjtflmeTKCM+2sOnjUcQl0jGB4ahGxWzZXYFhJhlocrSC2cXM1c7eEE65d7xC6jv4zw8Rg3IMnaI4otVCjTHirYtpClp5cDHUxUdXnNwZRCociDooy+s+0CelnfWmwN9+5R29YtFbGAVWxLN1BN2zXltxHE0t5JkBbrjsZDhdZuobKQJjOBxzaMm9wCtSiNUGhr28AB1FPTMmV7zaGzrRNT4RJmH5TYIOib7g6hI9DvbNuI74BtmSDYi5YobMRN+/A/dIGTS+HFEvC6iXZG6PkDtEldameEbrE107NGR2YNqLYtvEUaHsVht0KIrlnuAQjV7eDOthuExFYiwdavK+iql2lNTVJWtTy9SN/Ytq1OhMvOi0dQdmpNFSm7tiCiJvpC5hQTfGfblWftZYTXPjp9MpJe5yVra2KBXUaOg1Apj/ZOQtkIZX3NclUBEbxHD8ox1eOJsq8VaL5Fwq1s68CqRIejWcZuYYy2h4qzLRkn3TDn6OAB29pCvkWSaqLggy0nM4HX3fCDzrY2sZI8yho9VBho6pEUDQW82UDqcmLaa1t00HuoOH7at3KKXWdptlQN1ZvvYltSFKzXTFQB0J1AJ/u+kFII5JeFSs7NMkVuaUY1b9I1q0e406vydUR9h/6agxomFEnYWJtXt7BtF8P5dMdqWd6wWiFmullY+EdOCtTuz7Catu1BcQChnW010WCPTl8vg1BjW3njoLZtPGsvI5yev3k64Zrh6DTxUomdbQufbtyePw+6nNLlXCcBGchBJgZZSql7XZSmXxaqUMFPwLZ5wFuEYjQRH/3REtL2mkOestboDfVeUKOzrR9c+m6keHMQpzjbHoGebNs920OltqmcMn1hhToO+rY4ZNtGDuvOoHLnT9JJUPC3O2z6ohZKCfcfTBhMZbH/YMItzajBg7d2EhyfWJpRC4R2tjVaz5Nhdra+rXCjrOINLGfbMNko65lOAoxt9fmIbYv7eFpb9JBti0adbT08aJ7D2rZrVGrubGuiAnWwStSfAEIUoBzaX3Oo9xTsZYTx/M3TDa4RI4pkJxRCFKYACGYAaRKWtYoVTTE7Pxhd08ex2YheDASNBD6gE5rIJ4kx/5LZIaJM0/Z0A00c02iKVxMdJVJ55CypKXfqaqGYN6XBgslfcwDBFCSpRiMR5jMu2iHSsyUnIbWYJoKB3vEnTZ3RcgPlTpER9EE3v3kqX3MAD6XoafvIaCmjoUFI9JTnGE5AnNTNyUPbdgjJJQJO0BQFrjQBltcc6KpE0WjwJiKjspH8EgYhLTTQ7AmHkFJOJNQbIEVhRoWwibYQy78o+PoGtIEurUdp3DISe6n1LCjAmK2l/KsooK6aKkhGDzHiIf/NpQC3qXRmhYde4dBXUUA1hLuvFRQi2W66AraipubR4AU1jxRQTQIyUYpcJnLMa+llhH/1u3/88OaTGww9JwvAb9VYPQUJ2cvbKkwsD7QoVT5HL8htG8tKotitohBordlUiR1BeyApOXiiSfWOSzKvuvePlGx7Tg6TEL6/Hk072prAInpbaam+LVptOypipiStwp1mqUXNF862rcKlDIsRdDz/1FeuOxfyi0hTkxI4fM2BPVo6I5WXtbF0P2j5MrLhpDTyuQ4/MLDNPkYm7fruJlfB6mK/UZYQYmqZFFYnDDSp6NdmooIQVaicZ/fxBaE0uHtkt49jr/BAD3DHxz1U+EKzEw0q505ZIeRsS31hpovlK37b5ipYOoSOep2yQ+1iK5VMufydS6C1FGAmEvJlH5gFljCXm4x2YV+5bGWfjlU3grNzexnhL9774EendMWMD6OvooxKAgb34nipykTtobJCjbzWkCrM9VKrQ42JQH2nChXKaE9IuBuqO7kshE0qVkNUMa3mVcbwWWaExiax2UdB3jsJ2gwJP9Or0bF02LfVaERcCxEKnnIMJeWjBYKHoWJXtv1U3SGWofNpezI5F2JV4sRX6O7ARceJICQtxpGaLjajy4njYL8cnM0HxcHKPeqCM2mwYPR/k4mx3TZznTq1AVIMrm2+vaYRhPx8TlkzffHj9ppDihzga8jz+KBx5wP3hVXaxxc6YFuvdg+/svzRHGonNJoDfU3LtkfTK8WFWVjB01qcCQMncTO4sy0WX7jlKU/z5mGIUTUtNL+O+M2hlxFIsvPSrE0GrRFRq3pMukCH+UEylSDFQYF2QVevJDYSFEFXJZFb0/qpcXZoAbtl46XtyrbGUyvoUdUExG5+r6OXvWLbhbY8IR1nI8OSvFkJPPi6jBExgIUyyh32YU28nW3h9kepLL9I5eNQWUAm3GAS7FzI6FrlFhN5/s1M10SVGMuKHiowpjZJnW0Hr1ZENtavKEouVJRb5kBVuM4nAZW8BxAy/EBxsVmvQUgesZRTEPKCgwt5fVALpZpFtCG3KJxZwx88Z6g9WXH3y9gWNfEc2w6sBOdTWhzJ1377y39l0e+V6av1JXcLExq224c2O6QvxoVDSEFxAKHeggCpZuBb+NbvvPP7n76L01jeNEbtzZFFbj1oZULY8gehQuhIpmU32kIFrVTEEQkO09BrW1jHBwxw+juzOKQT3bbSUJdNeFo2NcsG3DEnxEfvQsi1t7OtrNOasmTY+dWKJcNKGcrY9iBUHPQ5xypcC/K1Ej+aRTgVsOoFVwUJmZAuy+w410imMjFa3HaNBhWRqIYEemSXVlKihb2fdrBuf9SlbzmICMMV1WgQKlBVCLZeZ4HcSw2YRwxCO+okm1+/VhypMWmakUxwcFcxOOXoJ8Hwsk6CNJJd9k5Cb7W5moGyhrB6AIZheaGxFNkWQL3C6+zcAnwPc1iY14oOGM0dtLEmOva2hRKu3/r77/z+g3cRYyDbOTHo4qw6qHJxe7/XJxLp1slvlv2gpwgmAbkBFY6NhnQ5HWxsi/I6akvnHqNuGKhoGAoZ1YOtvN0QLFOWMwxYDfc9mN0IglQt1+hBq7Td0sK2f6kfYOyyadE14W1sW6QA/dEQXHrZ6ixc1/5Zhv70SFqG8DvcP9ahFq5aCIvu7C3wDPNmd2stBOLQuU9alMi8fT/FjmLb0OPFYfjBgVKc3/etS2x7DhibR+im8h3tMI4uXvah0Hym2+HrfaxiW2wGbxBCW7R99oM0r3d49JVDqGK3Yw8+C1723fIDjD6lJbBWgtB0sRR8Nivt09sC4eItZTin4M7f/aM/e/AQMYY9hzoMsIQVEMyDGFHIqhvkqZiEHmU1WB6DMOf13aAt5so8uG+pKkIYDGXEPLl+2I9v8CrnjTFUSo3ZVBrOtuSpZqNR2SIlF8maTYfZIaRmytFy+OjfgkbIUKk9YBWrI31hyKQHUhXVUp3WR61BTNhBxT/sg7hJssFkkxAeKoJdgdm2nHmBVIQ8FCx3Ff4xRrZ/qLxZewljSbjudXi5YRSzZDIRU+icefDIrZ3BZfNEEIKVdTS2ZZLMxUpaiVSHsEYQrVeEq6CwaK8QW9h8MFX0ikEpMDmWYT7jxHc5UqRIue7uG9sqii36mqf2IndkpIiCywgeKWYEg5DszCgYJulS5A5GCHo94mhXNFlQSAwBb6AnBpdapoAOrektIXTn33v6/PlgLhZ1RoEIxbZk6yDWojcVLGNzbZfYEdMYE02mirygV1xizh3dXpWInG1LI7GtLtVDRbEt3u+yCcFFYRaWvo0qCpui2qwlVZZ9zoeKIkGloG+Y/CDBZ2wLcwoJBSjLQ/eIvNzu3JQn0IMzbMpEzn0GO8ciEZzSjczXodqWP4wntqXfpqQDIyrqvAy3OPWFnLxNVGOukLVR/hLbeqgMqqwUUsFNjYwR9W2K4sG98mZnW52wJmxjmUWjJY4ahOgs0XoRXzFmmswf9QzinnXJYMBmHNVewSim7QyigmIlWe8kxBo7jQdsbhCrrD+4aNb+nhdIss62AdXt8E6C7OPV9DB3oBaCrEfAhCZOf0lTJoMGoTs/ePedt95+886duzc3N41tTeWYJQbNZc+zSOog3MIkK0vNUOl2LONaqKCzrRKdaFSFiUAZ59kWw7NaodTZFgOjIsnYVtf3YnwHfVPAJCEmKlTsbkCVpluoDAKr8ZfYFqURuD3Kg2NkaqdwZzNZX9RrGYHrMBPUXDkUJXNJy4VaWCpUMjoImDFg4RcCcC5EZShPbXF6fA43o9WqS6ZZ2RbtYFGYaVRhdsC2UAekasKqzwfKuvaU2BGE3OAW7Och5GhnyIjUXM2KHWfbYknCzRmJuG8cRmJgIlgLurW2XToJFMfdLY3a9mjnPkWZAzJM03BJafuapbodTPEjd+UE9gohQcTdxOBd2NbdlNRtbAtg3PnRhz969PDRgy89+MrbX7l319nW9gtJeKHCdxRdKSOSr0LR2gA0mtUadRrKMzjNpopheUVgLdx7qDgjGNum70ZxjqrcfA5BuuWXg1Yg1y9s61BYQgUYBJZIX4loJT4LFXQTpfoFBattSbLTERM30xfpkaS/3L22gtrYFh5yIqBoKSGGOZRzrYazr6xyBzbgOqzJtiPRwNI8Pa5SS6a01i4XQnQIHTajiLRDCC15ziGEbp9hV1AiZNqY+Zz7vHlJ9Q4VUH4DcyT4grF6CCGQcRxC87+xyAPZ1Dzi5ytMwi6eC1VOcTcE2x++P0/zjAO2Ne5uO4Mi3J1t9a2pKbMXhKhRdBeQqUwRZ1sQQpxPoTOZtKrEYbD5GuSlQakEjDlLTFUJRr2agbgzxvj000+fPXv28OOHDx48eOurb927d5exKu5xFi3Xm82Grk16H/wHaCoCpQxNKT6tstRpyEICKHPXXFNptdEgDcsiyacYTM9DVKyW4NCiIn4SjlUZ4qC0qaXxls14mfpTEnJWq015qgNLygoKWXCPUcwzihmUQ3m1LfF3y5OO4WPdhBJ2bWPLKeFflX+aL1aHaqI9OTyoWJCY21sDiqYh89Mj1LCFCkxsatSynWcyyx9CWk1xb0ZLG0mU4L4IwT3cTBB53aAo8+jIoB11nP5tbOuL2gZckJITRLK+BUF3VmNb2+Z73af0BmrkC/HB27a30kLRo2/ZJBX7wHShRiFiWloKHs6mbGVZxSRIao1t4VmgfpJmLL8qYoRrBZxsJUoFzCNmOsKgxAvjrgDGnZgt5DFePH/x0UcfPXz48I0vPfjqV9+6d/fu1dXVmPfHrH9mH0+zBTpizI/axQbsB8FHnBQ4zd9LzKtzVDHpZZT8bdXEYLVVoSLW9inAiWX2tDdmkZFpYMSJICLdD9R7Gqd8FH0Y9EqAMOh08u4Inrqf6Ji+yxBuPCHJqcNiQzWXStRlqyT+9rJXpUiYCworMMNShml/2NJy1rLFHkdfKXMoVFY2MdoNa4Ukk6oIV1ZDPfx5wqh/+dwB7WyC1bbTI4pw5zV3n0/0CO98VF9JwnRptaIgkh20YCSLMIyQ+b3AoIgAYuAUBJWHvafGZZZ5JGQ6gdZLsGGE6x4BZv06Tiw8gieOU1mFmEPy2jiNWKIvTWe9jipanVJPOEVqFyil+LGxbTr0RIdannFanLFLSzMeMvp0cwPwspeLWf2CcTJdKLYk868GQRIBnFobZACIv/G//u25NFDOj8CDB196+6tv37135/r6OtlW3w1JGEjIC1TVLyy4sf3CtBMWk4B5eqxfEZbpP0gZegtmayWitBHWeBCRlY3AHdzWUNBVxhWuOPtgHB992Vk/xaxXm9JOl0qvMNzBdVD28RrSfRRGqaCF59zFoRYqioecQVBm6A5/nh5qRk3hKssMxhqXn6FSwnRKGjJGFQ1tz94gFH2uQUh2aLtL576eAcaaGBkpUyLprI1INxGDpySEx8Kyv5aRlxCD0Xe3z8q2HmJp7zVnZCxre6vOiIwXBaSyj5nutr6tPjgpu203CGGxz84nlRhmjshllKvys3bv6Gwrvyk0vOnkRGxWrUgBcEe5NBDu6kcPHz56+PDBl7/0la985bXX7925cwfA6XSaFxSLhipX5K4iTVLbCi8aQg8gCSvDRKRXJF9hyGuNsLaAEBPlsMqBRx4qvzLpVU2g3FsBjng2np3KxLfx1ss47ez3t048+PIno+m45fyIxFjFRiAirq5xpf0wCrjZMJ17Atq5HDpsVfrLSyfbxZEHvZMFMN8xvEcDAZ+uBzd6zfHHZd22ojN+HXgVCI2my+CiwycWVmWiBPowcrI9GDPKyNO1mRD38TRb1DwC1LXoGcJXvOn2URHDald+83AbOmkaZkZ8fhgqLVN8EkwGkF2iKJ5VeWHECZcnWApqbMtLHzlULtsaYswoolR/zkXttuAGY27t63Vw0OwSnlDrENrYVuLllDucZtpmm+IKwKOHjx49fPTgwYMvv/ml+/fv33vt3hjjdDpVqlUKQ7+lrz0KmERUMPL3ZBlmnJKXFNxJdc2giupCTGfAtUGxz/VQCWo/26+16YuYOeFmnH713tdfu7p3wql8eoa4fjL6+8kmrqe82lo6t3ZIPk5j3Iybm3E64eZmnG5wOo2bm3Hz6enZx6dPTmNcxdV1XF/j6jquruP6Tty5jquRIT0UyUyZcwyT8KBvK4cq0RakBVOVC4RY1HsbIC8xzAEVuJ34hupBg4HKAihUKNkMVGFjCu8EnaBy4rNk33ffPC4yIq9UKZ7trGDHh8VKEZefJu5LUizbGiPnLNuti3pgkT8shSgoaGnRk8qLjGt74nNiYJZnlYsCKh3z26FFmQl4sUwJ8korcg+bDK69Qaj6CUYj1XUUqIAoAmXFOiWGOJYFOhWvH1MwM9aKHdy+YtPoDraRO5kxAri6ugLw+PHjx48f379//8tvfumNN9547fXXkm3hpWuln4hgstC7DdyB5EPey3NgQnAlhwkRCr5unVqcFbA8VCYWZW4PpGCLSnFYMR/W1rnG9cc3j/6XX/uf/4s3fv3J6UnE1W6uw/EyEhzLKUL5q195vcRPNW7GzfPx4sXpxQu8eD5uXpxevBgvno8XT26efHzz8NGLJ49vnjw+PX188/jJzdOHN48+ePbhhzePr+P6Xty5c3X3bty5jusx5jZnZJVpDmIeTUbw4LcGVjCntiK3PBvDsrh2dCECnubQDgvchQ928FFoKWEYriIviSFuag1Nmd870ao3gmFW3NQnqsqoB2/LUv4txenPgZnpijqd4kGltBeUmsZH6EaA7b69b9t8JDWTyJJsx6pRNXfHGIh6cjVI68ouifcwCjDrxUKye5PBc2chwPoSqNQdpmbZp+5X1GMUNqv/loKfJutZwZcmsmwNIj+PHfAscVEXn2z79OnTp0+fvv7662986cGXvvTg/hv3T3wIDNpVRLmmHqWieYV/Zrxq4TqCGWAgew4LRTdfZTbVF1ZoOLAUGMtCYZ6LBqxAYETE8/HiP7n/H/2N+//+OUP9wo8nN08f3Tx+fPPk4c2jD5796IfP33/v2Q/fffaDdz/94TvP3vvw+Y/uXd17/eq1e3EXESecsmoJx2I1QJfGWQ8GkBB958hqix2ozNcIuzEgfq8bAkPNw8qjDqEWKmAo9m/xChDy4IfYFhbYfcuZLbf1NYdQiTIwDtjWeBO9Mn/FAAAgAElEQVRW3oZIkJIoZa+bjNH4aGlJO0Er34vj9k2xHUvCoyXD+ggjqt+QHpZggwK3LOhs67ZF/7asUxScvGk74JVtBQaUaxAi2Z1tqebOtmGgtc7S3knIy9wpgByNnW0/+eSTTz755NHHj+4/eP0rX3nz/hv3TzeneZ/MHxWudxu41WjcV25gi3SYoaiGAHpgnY4hQX8csS3PWEMFbavVaoQKC8Snp2cAnp9eXB3uvX9RhhlTW5S4xvUb1/ffuL7vZ57G6ccvPvrxi49//PzjHzx//ztP/vgPHn/nj5786Yvx4vWr1+5e3b2K6xNOxKLaiGEuyDAL1jWw2uRMqOTHfNOv2LYFZ/aPGwi8GQXthBQqOsgPuZLXSqr+jBULQqS31rel1k4ZUaawZ9l4j0NBkzf6q6Nbt56kS2gtcd/e0NSKvpOzbaJ2vpSLhDvYM6FfnEoa24pj89tRrrQ2HP1VVOOZNYH3U7CtbUlrXVlbwOkQGjrf2RYQC5ly7CmMMfQQGFr3VmDBEdumre44ybJ9tNLuzrbPnn367NmnTx49uX//9a+89ZX7b9z3ZxKCT2SDFEqUoBpUyO1fRjRIvLx9rPicmtiRPW4VIc62ZYUzaRzscMGA1cJsnjvp9Tqurl65b/BFH1khjgHgNE4gZUz43onrr959+6t338Z9APjv3v6HP3r+4/eff/idJ3/8u4++/XuP/vXHLx7eu7p7J+5khSPy1t/bFi+52KL6JaEy5n9mr2DepBlGsuDNVrU9J8Qyq1OcVsEVhCz4td3xZpQajpN6hMxqRplG6I0pVfcEbb6nwZ/kmNUhn6VgKQhA/85DdWbQAc/EsLCttyzRZ6128FhgrGWtc2gfkYS/BdRec8g0x3X7O7AexWynlmwOg3N9Wx2005QIK88ahJge6iIgJ4h65k5pZVuIpcbwx8L4EMlBM8oXujNq60zR2eh6Kds+f/78xYsXTx4/ee3119/6lbfeuG9VzxjpKm0YtMUgLHXvGCVsxWR7Rp0ieF7zwkQGjRVGZVnzwfANncKmSKBN0cFfojF9nf8VoPnC4nymGgT3a1f3/tprX/9rr339b33pN/6HX/lHj2+efPvRH/4fP/rtf/nw9xX5V3HFvFpsa5WRbl5VzNsG3CLanCIvTubJWqNyO9gUHU44xhCMlqqGwkIF5n27HFTf5VyxrZpRqmUWCGkiZ5G2jE9ao20qU2SgPJLb+d0+KAkDrgChbsqnIUTTFke6B1idNLEtrPBkn5T20et90zkW5ukXjLwVJQ4jDTj3ynSziWQLtb4tdN3SqAwgQkC1/ottEww1gRWYbNT7ttyBAGEsJMLVSzYHFAQg+FzXfD6LBW8+yv9qbHtzOj158uTp06evvf7aV99++/6D+xERV8ECV5VRBHDKpsKpbkpGFiWzDhnaF05v1a9vwa1W+CE4jmrbIERjvqqgr8It2wuTLcwGyn+/1MPJd5rkKq6cdq/iajYZvvHV/+a/ffu/fufT9/6vH/2zf/aj/+eHzz54MV4AcTeuB1+g4KPmJwbtsmVRXvS9WLFPtMBIUCa0+YRn7vMiwt58mNcd1k/Q9XtnSVk8Vxxtr3MAIXSAzRM8l/Su17Jf9kclyQjz76cY9iWCpVFGR3QZmlSTjo3WYfwePkvVX+BkvvC6b4m+lQQVYgrbegaEYZ6GDLpVHFa31YqhFvvYQnCSXQh36Sec69vCSqtRfpGy/PUDpcJ6g2CKqB+g07ZpphB7UNcgdP32P/nrwacW4iqqDzSpR79yfJ5t5xhjvHjx4uHDR0+ePL6+vr6+c+cqruYbZZoyyKWlvZ6+BZE2gRARwZvH+VEiqAUG8mO1mcI2ZeahIeeVpZge6YZK4zwzruPqyc2T/+nr//hr935l2C2Jy5hOB5GwdFQi4iquvnLny3/ny3/rH//Kf/+f3f+bP37x8ccvHj4+PQ3Enbimt5RC00H0XZBwixTkFKMMIDmXuOFGfF4gsojSzq5KaTYZpgIx6poNQkZJEyfRq5UDCDlTewnW0RUW/w68TBCRARCqbQMxKioDFhts0IXZB7bQoInKdDRDVqOc1czOyiNgIQY7f7EPjw4RWD6gNjvooyQMMam4A8XlFublFFbWVTl129a85StLciLZApgZQb7ICwU7CTFJNq/KqpYP3yXQokBoP0VXLHSHWbLeqkmMMGXO819a24qDPv3k2Tt/8e69e/fefvut+w/u3713NyLmvTJUMmXCVMGaEllfRehTlq8doMwkxq10pMTreoYqeB7xA5oLS9oXTn3FIcKtcqNoEPeu7v6Dt/7eP3jr7/2/H/9//9sP/vfvPPnjH7348RtX96/j+mbchACaLhMY6nYZAC9qFofOI4UbVR+6S5Yuz2ZaxTG7mjw4V68aRDDoRV/sEGJdPMRrYgfxF4wUBqM6CrQqHoOkwZqwod4I1BskqR7NTyW1MzAFyuA9KFY1R/miPGIN3722pTMUgMF8an0PDJaWrI70wyIo+7S0B95xWajYW7fdhhDVHvVt5YE2ReSkSktcqB9MmFSrBtqc5D/AmJ1cqBWa1r2j8KimgeWUwRDIPHuebcHompz7/MXzd999795r9958680H99947fXXI3A6nSoCExhSaiB0vxVMJ9qIFOp5w8O7t2UpZ8yexxIcdB56qIBOHJ7MRwvmy3jJqJrCEnDeTMP4+2/+nb//5t/57R/93//nB7/97cd/+OjmyZfuPLgZN1tvCyLckZ4th271mjb1IKkl6DGvRrCwdzjPEwqqxq3HWYt8rMyE5qgllSRiNSBEXp2G6mq8jsNKq25diJBV7SVkmoH1LBjcQ5dR8Y+q5pp9GDUuiYtX2aLvFFXxjVFTnNahFAWyWKAe+p88VgvxztlAbcHTuJMQ1oBtGi2E6+WtA3LpJMy6WCbe+9Tma2izwnwxxYuln1Cz/OCo/dj1W9/8tWwaJDS5IUFwN5J7eHjftoxpWrGqVff2dHN6/Ojx0ydPn7+4icC9e/dm37bO14akMsa8DriXmAjNU+kGj4q0EYMNtjuDcBCsICopFnS00NqCuIrrJzdP/sdL3+CnGm6uQJwwBk7/8f3/8B+9/Q+/evft959/8Befvvva1b2ruDqNEzdEYZuVdIqcRcobolrUprW4DwVMgiWTdPgOsKqqooJA8nJVcwuELJe3FUGARYeQw5KnMcaLlHWCuhAMUNkS7cvQrRctqsqX8hrmYTljmBbwKkTJgASkWVWX9DiSbKUmSF6x9hMiwF7OTG8p9GAVF+nX+jFG3dbRQmsnwTPSYT8BuXTrJFifF9R3GDnYp4Y9N+7aTwCfsU012RGZ3Hr91jd/DVqQYAj2TVe2nZ0jBKL28ucCrNj2dHry5MknT58++/Q5gNfu3Yvrq51tMauOcsPcUnY9PVQkkKG2QEvLNutUEvNQKcJVqM9QmTx76c/+ZYay71VcBeIGN1e4+k/f+Jt/98v/5Qmn7zz5kxfj+b2rewMjG1DVHh3lS8uRYRQWR6ESPM0nEiyYRUO2P5MmR3DbU6sqtzM4N6JZIVRl8HqkalHLHwvbapPZ4h8L2yoFBLkWUZfzisj+w0VFmi1YKK1SS2UyibrlD8WRMk3zCBOh2NYJN4NbHmNVFWW9zra9heEBe8C2uLW8PWRbU0ps6ymHEOp+IV9N3cznleGSCgdw/dY/+bXKGWTbYlDSbhTfQgUvznQSChT8MNn26dOnnzz95Oknn2Dgtddeu+psy00eq4xKepkq2OJI4VleuxAVYLLsuVAx3FdtsoTK1eU+2Gc01EC4jmsAL8bNV+6++V+9+bf/g9f/+p88/fMfPv/g3tVdsEhj2RXe2PHYXth2nmAkaBH9/7P3bqHWZdl52DfW2ud+zn+pW3dVV1Wr2t3qq9Qtyw6SETYJjglOHHDAIQ9OCHEIGEIgRHkMIclLCBhjyIOwX2wCSUQeFCeQmAQcmSALhGJ1q9XqVl+qum5//ffruZ+z18jDGN83xtrn71Kr6/ytl1pVVJ2z9p5rzjnmGN/4xjfn3mfOTRrgGUrALe4WA+253cpPPgRt0dC24UUF1gq3RYvklRn1jjTlzuuyqszvFsiTwwJoM94ED1mgTQQNN2Ufn9tWAyC4PBVt0eKo0BZtRWweYg3j8pamkmg72yeimJQfKjN90YDcoZUvmoR+XUVbm7/af2hDWkFbjbw5cqurKilydDBulDUAhNmiqzIofmg0E7GvAyunoZt09KfrCSAojuO4XC73n+wfHR49evh478rulat7ZkPTbfuJbXl1ZXagn0V3vk8fqJl9ubim1UqnvNdCBfOkzX7ypVk+/Pj6KFevctZssfTlaONfuv4XvrD9uX/4wa//0wf/75qttWCqmoNr4Mqj6amlEhactMoZs4huN90c4KeUrGmfHdDyg02Z2vnNNZHFSxZA2wvqwe/VHdpNuaVhBrsa+awo5pu9uWWhYpqTMZlBw+cbAH1Ow7qYm+/qumS3L9qrDVMutsIKRUWtRUkTmIcYgbtXmZn+WGLHmEVihcSIDw84Rc/IIbSItxmUqt4INTqN7T+UfwpuWiUxp1+1ZcSHSBQ3dlMyrrfJLQp+wYweixMUtnhtQ1s5MKDjCjnQTAer1C8MGb2aWSoJx8cPHz7au3Ll2pU9G/NgkM545C/lbFDpF8OJ1/ShsqS18kwrD25ppKZKd3Q6VvNgeEPYj6H2Mq9ObOPg7Sc2XvzPPv23X9546X+8+RsjhjiTC+AC2hbpW2F/yoj9zaJRzthGER9kwtZb6v+l285APPeRubdRaCsfE1DOwAsMTsVDb9t54Uqml+N2Es1pissYMS8ZkmKA+YM4ZNx7hz7ElPNvYyM+zEAHmJmOoVmZQCbBSogRKZ4SYux6hrbxXNLYfB6rC9D2xm0/YlLnejP7rI6WLxUEd89sXFvMHagF7W+Q0VtrztkEssbEACwySwRsDXni3BpZNDS0NRrAE3kHDK5fnBtoXTiVuzU6w9rGT45PTk/uPXrw8Mq1q1ev7o3jaMOAPPlOahHFRH6NfiDrpGFjUn1BOu3ZEaivMSZThGWu65m8diEVcbNF+Pi6vKt7AhyTTwsb/72X/+3n1577tff+4dKXCxvjKzPynazmtEAGTPMCtq2dVrMX+MWkYghEgfhfBtTMCZJB2ZR+BHd+3ImEqSGmz0UD9xINe2lVQBN8vDASNs1gK4cAWPsoRwdxF2yFP5cQUngCMFZaMYqJxyczFss+fT9jtVPCovKBSZ8R7dWkvCUem9uH68XoXkXbuCVtJJfPzVJSaMoSZylmV1otrSd7lp2bdTQwu/BS5YYierOEXdoLRQafOR6dPB6wyM9LO7lrvEoFi+6GtH6aM0C1RNEBA7/CG11PuKgkPBVtz8/P79+99/D+g2vXr165cmVcjPqTOaWRNR/y9C5+7z7yb+jUgeeW3J3oC0bYLF02VyCTtbZCfewfX5d5idgGgTWzf/2Fv3x97drffefX9peH67ZY+qSF6ISxIyF5i3Bztnadm2BGA2e7KMWn3AGePHBSQ090EJJzQyBdhqMqpktgQmOy3sK1Mj2Ia17zKufseOH5x12KyBstEM/Lv72UEZfaCKvciR+Ry2qQYYpiMbSP88kGV1B4mgvIvxkzY8Gd9uYT+Tur7PxPA+5KSA1taWBzAJM+BsfXXTYGcckzQdIIyaU4bG9rAbnBCtrGH87pMi7J/yyTtcyHC7JV2ad5aZX1Q/prYmcIucbjhu6W+AVX3smWpLAJuoZolU8oIJ6nnmwrsAcEuJP7vbv333n7nft37x8fHbv7MA5paedXPCQdt/Awp0epQ0SJFzFiEvb5iUUYg1PYurrqqFdrhT6+nsWlRGv82oS/cPXP/Zdv/Opza9dPprOFjXDvwBqNuHwG/ttg1xvXE7AWtFlrK1ghifN0YX0S3GAk3Ug/DxDLoEgX8mI0aN4VcC3J1UsudEJY7mDVAIgCdFQVsE4gqH/bSxA4ehEQ46kKEogoEeCZQtL28awSQK1FBMDwyUmJyYYMAaW61qqAlfddTJYoshJiemxYjEBvCZQJJBqyM21lmJs5TyWwEJ7bx8VSmeESUsVkne8Rws4F3HgpH4iEXbmQG/+VEZRsou1gSBru5vR2Qm3MQGhrgsYUtwSpOf2Euvwn0bbddG8jJ9rmWNzNMQyDO+7de/D+u+/fuX33YP9wOU3jOIr7UDHncJjWeIu9uRkxOek3yjBe9Uu5Al2kSNLHNPanc7W9Lyx9+ZXdL/znr//t3cXO8XQ62kjPrTIwGqHoj5hsoE8yNmvuToqRHXKNi6EwusLbG24me0yFNjEsEzm5CZHKUgu+GJwat9H3CN6lHhjmoCkYInpqRuqiUE4MtIICenQKChGRLDczUsxKe5by1yYPdgESUhkqcVOTqlRTsJuj6DNqAejzjtAfwI6gFXGYIp+fwQqul7EtxpUYQT4rfGwuVMEtqBXa6t+noi0SeaotCVxzIa6L2uZfGAzyl15v3paAgGm5BMnh5RFQQ2S+Ad8YTedir3aqLgZbAjEwjoMDDx88vPH+B3du3Xn06PFyOS3GRUfbMKRChVuRibYhn0syRtwkKktg6Nah03frfExkf0qXoHbAsPTl1/a+8p+8+rc2xrVTP82vqrkQKoLbVoBnyYKKE6+SpupEb4iQ2fpHhYonSCGR1hjbQTmCm8QrrehTjw34lMPFvvuMSCurroJ+8MJoELaquhfazu3gbMVppgSSBuNWSgw5dzjIghQ0EKxnoBM3Qd7dclVx1WaBFGoZX7BaJm9NnOOsaaIe3tgit2KI614GCi6XN2lb8fVVg8Nbp11P6Nh6EW295s5RPt2F0FwIyO+fhTJWFkmBjAFpkOyftX7QXDc0+YHAmiRcHDachbIEiOb92wpW4i37MBvHEcDjR4/3n+zv7Gxv72zvXNldX1tfnp83tM1lTB8lVqe3qifPMiR+ZP0BTYsOWovdFv7j66dxFdT6sPTlX7z+y4+WT37tvX905mcLW0xc1CgXFSrpmQDqB1+RC/Uqm4gw5ipTClNDoLQ5cdrcIID2eKOoE2d1SJWDZ2gI6zXafPqMuGHWkR5XsKVwBedbaO7FyDpeoM/IRKsrhOMHEHqs4igxVTUGvI1fQ7oINCCNFUNvSbGpAVwRNu9JRU1qmr1q4c+1E8RP63piVownSReHn8vhzKxpW68Bp21RE+lTnt3RTWuVCr0l0lJ/SNLuhUzPZUiwSkEA3GW1XJcCtTSkbhbaKmxYFcjBOAKfQfAfi7ZPnuwfHBw+frK/s7199dqVtbW1Jb+YJksIUwRW1KiSIfENg6P5mtErvXkwHf/j66d7CWrNh8mnv/bCX3l49uh/vvW/Ln3JvbIioaKocvHywXy1mBEKeqRydp131rCpkw4yIDEEV+qGEfz0afcIiuyRMNlBUP1iPrxGDGZoq2kKW3MWfH9BQ3uW0kaD/oqxCi/OqCFivcpncHf/Im6uoC3IV9iREoyttOrT7hR+JalgBusFfIWYWQH3r3AhdibuWsFAosQq2s7HhnlHBbIraEtzdbSlB/BpfJsZfEGZnAaL9xnbBD2Vf/cMinJ60XiaxsAEE/R2hrYOqQdEc86tYe5FtD0+ODo5Ot5/sr+9s339+tW1tbX8gzlyDFLcZOJyFFA0YJgZzZXCG3KICjCm3I/x9qd6BdQOZpM7gH/35b/x3aM3f+fRvxhssHI0lbFo3iw8Nb66KtEKcFvdqgg3bWJ0tO1h6WJ2FlxBx6OKc3V6F6UgxSp1JGyyDp3sHa0jdQ2iT7UFLaApZxjwBa/45zD5tAIpuPg5cpSl8GWTjK+IY0Y2J9tAsIsGHM6M1gmhkts2Iyi7OGcEzne2mq0jzkg2s1o5YOVgbSoJQgnhqlp0bcSY+bzh+8xL2029pGk2gl8LusijUUZHjTVoRJVUMEvtHJ/WE9wuRsKX3s2VY/wUsSSCSVKQES8w3I62wzgAODk5OT093X+yv727fe36lY31zRRb3ckhYjg8PaG7aB4FuXBlV3DDTFIX6r8fXz+li1A7TD4NNvzHn/oP/tPDt+6fP1zYojytEBPlK1zKhrCwilUIZMWPUGvshK4KFcyxD8UJk4Fkewm4CBHRSbUAHmaNkCjMawyuiQAztJVBNF/6rXeWag2phbze2rb494bXViAuAO0syiEoyk4TV/rHHGbZqIEjTdQSobJFa6Ul62hb8y6QSOkTBZCtx5bplF6oNHM1E6kkMc7C3hr4ubfM9DTBp9all+FNye1mLxcazMwwmFucPECqBkBuX3ViHkian2nIusmHwTjcOF0gcCvbW2UGZs7oa8CQvqaTCZkzZymkFzP8kznnjx8+fu/tGzc/uHV6chIpWG9zDSdEHzPApjQ7vM5BOKbyL0n07Es04ePrp3p1qP3Exov/4af+JjX2RBZtVTldHKnumbaeWojSxWoHJtpO2rKwtnkFoMU/qBsGcK82zG0KAJYIlJ+gmZLR8DxYRMZETlWYKGyKHEBaatpXMcAwdTAlpEMzRbZNLsxhxytTA0HlJ5aB0TD5TdaXsqjD4Rx+vJRDIeRWbjBORCxPa5QvTbSvRl4/Ftl3vTRxRfiSgJjoWftOnnWAuQOT5243d6YcExOjS2XP4cGnidm2s9Euf9MnSkyIfydM0hN0X/7TXAiLzIqZUWxIGE9+mhQTOhgCWTO125z9UNy1MjqU0/kY5spslf8ogQphi9u2PC0NNhDV3adpevL4yf6TJ9vbO9efu76+sT6Og8N9ItjCqKTlSJwfLYHPPuagAxUZHNLZPr7+VC5DQC2Af+X6r/ze49//J/d/c3PYiG9QFHo27iZ9QMSwuA9RoJAXJFmOqbHjjhQFaq2jDEIyXE8Oi0RaltDJDylzmpFhwJF/GEbsqgPABW7blEHhFw3UaHjDrE6KNWwvNvcU05EXJxEi0YHggkcjIcUEPMem2lVj0KjErqoEaePvJbm4aq68Zq28WHNutLfX9bOsk+Jrqh9UDOITpYxwKp2k6RNRApitOET/rba/OqTmxxxARJaeUKULsDAmAWgbopJOThUi3HnaK51NRZzpjGotcqItOCmh7VN0Ww3RZnw2Cb+xYzQjCHYBAAcHBwcHB9vbO1evX9nc3FgsFkB9rXg8z/Q/ziRDJUDVm4uYwuwZXhRcIiv+6VzzPDLbCuin6P40BqY61c3sb73yN//g4I9und7htx9QdJ9Vat742gwcW+mnnyvIWxOhMDqTmqOt9XJSSAfyWgaA9pYrtwNoH91NJta4xIf0KIZoJKHJPSCnnSF1EcbOztAGfKEAJ6xHIJLmEDvZVhkji91EDcbqDDfb8MRM27zBjprV+mqi7T41IO7LtLqavaNiWOYwQquXahFoIBSON9ZyzpQNDmrWEbobdNfVS/phUY9zfujK6DKimOkCPDABgi0qOUDkME+3mh7B83mamCiucYVLB+c24Qxt+01dOcOGBYeHBwf7+9u721ev7m1ubq1vrAfnXdGryLblWILf5Lgm2z5LhFFeGzE+w27+5JfDl770CQMP62moP81hCOjhuLZ25d9/5d/5r9/8O7vjzjnOS8WiSxtFA6C5/CxUCD4VBhDjmJE3tvVqK9QoLY/RJWSABlUP8BnpQkUX40b4YWjwFMPoZSwKGmbasThRb6KU09v6fEbGjoIaJR+soABadDbhkeiwovAZj4Mw7LMLpiWNU7Saz+JSEADK1Jjx4rKPaC9KtwXHS1OWUTO4E55YcChfpqshYBa5MGWgetpFFwLdYCX19pfi10W7KW9oW16SvQFmBJP1mYCMDqJNTPSNACu0zdTRSUhMUwxXybGPHk9TEkS7OBozMxvt8ODw4OBge2t7b293a2d7c3ODaOtcak85V45L2ayxoOYez+aKMZ/7+XcPf3Dn9P7CRv9J+vtjsO9DXjbYYOPCxtHGhS22x82dcXt72N4ddxZ54A8Azv3cJww2DH8agCu+9It7P/8Lez/3+/vf2hw2lj7lDDJwGVBPKYrBUOk3K9o7+Wpo24McQmrL+4LNxkbybR3rg0SRH1gxXBfWAQG9DG4QVgTcHZjQ4nwVbWM87H3GzY1EMsdRM8q3deCz2YxQEYYs6BPesgmjOieyoiTY3NpeZkoYglJUi/eOWaAyC2aCjrYi+KZpMrNK4WlxTKJYQoeXlGmEYI5/Vh4hO63yQjDdtB35w+ymwxdKH0pvQrMUYVX8S+/vy7yKtiS0wsKGtkrLDYJny5XDanqClrvQFkV3ZwmJV2yUHR0dHR4ebm5t7exs7+7tbG5twlNJMCU19toJLUzL0ZfoWV1Hy+Nfv/mP/58Hv7Uzbi8xfcg7fzS2fRjqrb5m/UcbbVzY2sLGhS12xq3dcWd33Nkbd59fe+7ljZc+uf7iaxuvfGLjpWi19KU7RgwAehnx7C5R2smn3XHnr7/4V7/+5FuGIWss1WAN9ebYJO5TtM4voG2P3oZNszAjIvgFbFJCNjK4tC07Mu0DFCXIHomNINry4zxFXS6gbQNKW4H1jk1oiYF4J1yopNIZWiNlZZ9aCjD2SXa8o20+t9fKM7RdwU2OFsQelznFZzVNnxmhgI9N6lWtCDvqMzIyqMBJno6inF6cK9eoo/KPFKMumK5BCt3AkN/z3WhizLRuetY6M7R1gAWEXMeItml4uleirdar67a0XcUB0fXixxycCymENhRotisPgQ0DgJPj45Pj4/39/e2t7b2ru9tbW+6YfMqlLLTIEbQDIl7DesZQC1mtyNRTrjLhj3zlKS+utmo9OPxsOjvFGeAOv33qky+XmJa+nOB7485zi2svrD33qc2XP7f1xs/vfunzO58FMPk0uQ9Z9Wh5ntmVydoBfG3vy79y9c//5sPfvrLYW/o5QMGNVIZoxGJqHhhzga9LliDrIVxknCukV9CWzlhom9W6ntYIjjujKqXCJBpmrjXpuwXR0Y9EW/4sWkHuANgAACAASURBVNezC8oW7Waudo2tT7OAtUMGG3oHFMYtKuSpPXMoJt22zSwXcgU3OQBXjkydhetis1YzKiR1pQTHAmj5vHXgax3NS9eUZiqplPjhFKN+pG6rKVgznTJcpZ2FyhVmAeKZ8ZRXLnhHW2HC/OO3tMbqxxwy6cTunyyQpNn6mmm4mZWYN6XbQkJK2aMmlrFVjhBoe3pyenpyenBwsLm5eeX6ld3tnclnf3m3wEjD4CePf6Ja/k98hRO33z4MuT705R/5YmcuQlszG4D4mouFwbAO+uUSy3vnD26e3vn6/rf2FrsvrF3/9Oarv3Ltl/7yc39xzRbuLvHUubx/khn/uFeA7GDD0pc74/Zfef5f/t0n31j6OcMd8qo8ipeqVUHHCg2Zo20Ovr1kigEVtlYGgyK/vyQ8JV67WBNbZRe52wp9oCa/WoRP43F29RE0h+Vg2yuzhpgKeIhQC2uUVBqRLLRFTRN6W3s+2EovWT7WqNtKBUF9ur5O4JPL5IummRm5XmHfnAn29apWLYliLo/UvJkU9RKkXF9EW2FsirDScWdoK1Ko8OrprTsV+kT0w0L6hIAvbaAOKokV2s4MwC3UcDOrX/hP2ycV2lI0yPMheWRX6c5mY+1fmNBFAyGkRAbJYRfR9uzs7Ozs7PDocGNz49r1azs723JGb0OrFPahYHeJV9hjqpJTWX0W/1bUw6b54Do3ERfoul5MaOrP6PFpRI2CAQOwZmvr4xpgS1/eOLn13vEH39z/zv9y63/7N174V//6S3/VSGygsHtGUJsOaAB+8crP/dLVX/y/7v3mtcXVc19yHjKTa9mZL3swQGgrC9dPhVClY15QEtSfoV7yrtbN8aIwVjVTMiCLzY+IFpO8FrDKQpeU2nPvqWrxpmAoSXc0qY7SNgCVX4Jsxpkgvr+/EbiinwoXC4W24pAeVr6QIVhNnMTMTHxJRu4kgNbrNi/zEgT1c61IzTmb1IKsKMXSbbk2TCGZthON07CGautyLpFqhadzbJpXIdjgZoYhbDZ4YmfIsko/SVrpmXyiU8IYzOMLFqMtvSFIq4PyeTl6fHuCOeCDRVLMrwSLLwgD3Jl3FEXmqAPTSbbjQn3wYOVjDkJbAMMwxJ86Pzw4uvn+zXfffm9/f3/yKd6W3hHGnO2w/vQuJW1PdS+8YfZ11yxjk2sTGjJVpi3pneCJerm9OeLEfDI/L1ji1/xlRLu7w5c+TZjMbGPY2Bq3jqaTHx6/+/ff/x/+o2//6m89/J1u4Toe8Cws4z7YcDadbwwbv7j385vD5oQp3EbMesrz+PmBAXobo5u2tWR27nBg5Yw6mtyZYdtQJtdlAhwTiu6ZIMzbE9hRrE78WfV4aYJ4C0yoFVGiLwPzdPeYEMwnAmFhYhtDkThPGJVLxOyE9SZua+VCM5rZ7IOkAbOX1Cohz8lvQi105xymxJL6mEMCR1Fm1RCcUTmtbI7sMRjaStFgnN00H5t5ayX7cEbZYw8xRwRFLEJK5RbOlR9zcH2WI0MEgE/cVCnDynRC2yFc0Q0W35FoNriZJ5i5mQ9JYQttQdjTcd9E20RAM/dBoNkcPaWA0HxJN9zM4wSREW3j9ECmq57fU/4hpBJmo1DMZQZLmKeirZkNZu5+cnxy88at995+//HjJ8vlErGBRrDwRPqfFqcNoz4tVOgUE7O0PzVUGjrDK1QQjksPtjwAzUV388kBt/j8UkZDLp27T6T2GfijDevD+gS8dfTOf/XW3/l77/6Dw+WR8YODzw5qYwVHGwB8be/nfnb7M4fLowGDOzN0nkDwaUp/40s1pI62pCFxRahkVNvsJbYtgyfATWQbJIlGLqOSoQd5rhoXCPwkovsMyQttU6N1TLEUmSSnQMAsA0WqCPGW+CKIEdrmUOUJDWXShaYZohWEtfwh3zOriRDXqpo0gZXDka6Vh+Odn+xzUBFMC2tUEXQTZyS0VaIq/GpoC9Ra+Mr0vexTaMuHzEKMjC2JB6lNoK2GA+Fc5pv8UNnTXciBhdE2nriXAweLlVRDSUkzWKGMTCWBxwfqww6BsOB72UEqITFMkLRT6CXvpc7Guipd3Inw9EM+ICuXkoiymNDaz5iXyq/T09NbN26ub25cvXZ1Z3t7bX3NhiE3ynqc/VQuerNcrcocNM8GEVkVEBgeuSokGlb3XXGFaFtGZkdUBWMV2ueXnGQ3PAOD2WALAL9x+//8/uFbv/r63/701mthtGcnIASynPv5yxsvfWnn839w8B3M2TQ9TA6ec+1Kgtgu8UJGXskPXWSAF4wWlpHxmXwkHK5H15xEY2VBURwzA8FBCQ1JUbIjI0tOrpOrGX7RcHqG6c1zYgrxCDRPEJJqzHIhSAyZG8E5zaqUm7+pnjSwekqsy7YVlTkUEvSkUKSeSiE0I9p6ycMlSJqWbO7ngmM02adoslZktce8ZeQZRD+BW72efgfBD43cyDWGoMFkkPGc4DOWLykJJXN0rmqsMKuJAEqkvGRsF9TYDQms6ZwpGAVkJ3jGe1PAZb6wxFS4QCHpbS5OTn7GcI0Z9UcpCZDrmA3jeHZ6dvvm7fffu/Hg3oPjo2NDfmfNsyuEL1wZw/zF21LBy/NWZAFGVkastzDLdwBdxXO5KWoZKlhjmUiPjXpeQYE8J37bGbe+sf+H/8Vb/90fHXx/sOGZstoqXoBfuvZnX974xMl0YpXWnR6WVVE6WylZTsMlksnYVrZVvZyEqFXKQGNDzHMmJkuiKj6VhJHDd/aVwd+ECKhMTkhFJQ1OKAVRT20nmRHpkBAfdAlvHeViN6qF5kKQCwmmrd6P8gtyQ9FGJLp1qijfYe9tu4xiWA9VJ0d1ETgaWdkih6PEpmc9JQbYkEbwRudFivs0jctjbUbMDOaCfjdBIO09CyPROWdwaLQweH6NC5OTkamSMls4R1oMUbRnv7UgSlQ8bOZ6WKiC1D0iUlwLQtykc3Bilr5FJcFKSRDagqSVg7ZVtKWSMEPbCrAZGxrH8fz8/M6duzfev3H3zr2DgwMzW4wjovJRuDwT5HV5vMbXUnd6nqcfu6+GitMdwdxeKyMfYqgYmitA5WEktzAwn577NGlz40+eK+U49+WVxe47R+//Nz/8u985+J6g9hkZyt0HDEuf/uzez7+x+fpZHu2KHCFBS9jqLT97R1vkohfzFaNp9TKEtsxMCYheCwSyJ+cAeoma6Y0/KIlqUSqhemsIhkA6QAKOgNlSxDEq6lw4zMG988G5niCXuOhCatKCu5KBzV2IMMN+6av0kuiIBWxpIpmSVFs6EdGdHqwFrRtNa24KifpS7z0QRLqZxuatWhJF5yISJSoUkAzUkwMyFPLp1CyTmFC9pbUHgZ1rLsnjLaMPVogJ6HFOVqn5gbqDXok4tcRNoi242SXeY6ZWIKI3mOVioNAWtDqzmCqShrZFeSkmZEnWeMYFtF0up/v37t+6cfvWzduPHz+xAWvjGppfPDuo5bA+HG2fLsJ65f8PCRU6+4eECjN2E7q4Vs5yxrPuMcPZdL672Hn3+MZ/+/Z//8HJrYDaZ6EbgJQ20t5X9760PW7FB8NaqGSYUZll8g7OB/pfvppG7mg7ryQSD5DWrkpcZAoteyVnSJjOdRH5EkBrZecddQmyFMZ4PEfghIpUxMFd4VgurpvWFw2bZgm7JZXuBh2bVl0IzYXwtLYraKssRl9FaiJehjRFlbOOcgJbG3AbW8yoct7Koqy04rBngsOctayibS9EukJtDdDC9mYQ2gavbLDGupOvDzQV87xVdjdxHa2KEfwoRWTooWdPYzISbDNx0cOTohbE0Tz1MAJmLoFhjra0q19E28y63AezwlsU2jYlQTHsCR+BtstHDx/dunX75vu3bj6+DWC0kWNF/+GjX/TjIk0kJkxf5SU91VeoyON7Ndd8UakXYmc2D2yGd0PbAFQTxTKOiZ7hYV6cTWd7i923jt75e+/+g+Plsf5O+LOjtAC+uvuVq4srQWkvhAo0i+C2xKJ0fLHdpiTQxLOYrEzWKomZksDewezYeGdbFFq7A/RMQ7TWsHHkkiCy6AsaniKCZQeROgqH89aKC4mGr6AtLohR1EaUKlZdCLPROlpbMUGmkNmiCJtSBYmfcg2YRltBRHCtiTRumx5+oQQpCJZvMKUVkndu3tHWuCJaHGOP3leEAw0viqkQvG0Fbc19iKo+ltHlRMh0RaWXiJkOFBR1JoGmgaUJsJYHZ9gEgewzCQcoryXeIxFXg7AM6K7bBnxb3kwnJwTS8QNb+UYYa5imJLBFpi/VA4G20zTtPzp4++E733vwg/f2348TTkIQZ3FwKYDiTMLikWiuTB7hipYVYtKM3KhQthUWPwVtUYgAOlOy/uw0ppc4lbxKKmEA8Nl0tjtu//aj/+9/uvUbYNL66DZ5ymUw2NKnL+x89upib/JlI/jCJhGcaEKAMmFrTkBKAnc4yECItiJuK7aVFOP1kkIzQXMmSdbYsq2AWMyfDaEu+NgMPSORtcSlqMITg5N/sAo3cinXhia9bIXWEWhmYhTv1Bs0X6/RzsQob23nTHD2UikJwdESRGIOeZMZI8afzFdKgtzbZ8Fic93Wxayd0H+Rwvds4dUqkddbj3y+E+KFttwcM+EBnMhJRLNFUkp48W+QCVBQMQGXOEI4cK5/VkV6oyGdwfJdWUk6GUN6vggHfbqCIrfh0Prx5L+R161SNJB51NpLAtFM/A7BR6Vctk7ZgYufj3Q3wzgOS0yPTp/cOrpz6/DuS1svfHLnpbVhTe/pDPcj1svOKoHh13N4AofWWOUbp+De0IG4ifZOxbm4hrWMDTbJ5RQfYVRA9hOjIRVzGJZYbo0bv377H//KtV/63PYbsc4fxRpPvZg7JwBf3P7cm0dvuy/NBpexIOsBFZBRlob7SKLlI2OWhga18WsiAi1fjRS9pD/KbQkHVovVYS7egAa1CW1WyySQMi6BMwSYX5PjhbPmqFnEckUqJlmuakDMuHMXisero3IhZh2yIM6UmYVPLfuYsjXqfXoaOyq6SRCooRCA0pScGduipVK7wK8EYyB/wmyE8t52t2IBrS7U8tVqyg7lb2as2J2YZLk8HPRAQWAI/Blo4ai73NyG6MEKqKC0Go44GJ8c6msy5CHNxkxEbiyVLHHTeKrTDXnwlu8ryIdf1G2RRBVm+ohF9JWkBCKtWZAYBa3oMD+fkZJupFqptwXzsIWNDhydH73z5L2v3/nmDx+9c7I8ifc07QP9h5/gykowOUinEhMXVUS1QkVJm7SuUwkoOZcmUDedqR7E7qqU6aaEdcuC1fN/CEnQJ8oM7gDOprO///4/kvWemXRgAH7xylc3h40pDpE3oQyQv2fmFywCLK/DhwH3iRyk4r9VLAgM6KRJ3Bb8On2U6ZS9EzdUw4rATgD4UQXJAt4W1Ak0xAJD/H2GjGCSuBlv7hw4I3wipSZdShKHonXdhdLfJhpMLuTlD6a2hDEHMLXSigkjmk8dmm3WMA51E1Ei+rn5E58F8SnH5gkNntQXJJPtyaiKbeKiWy8L0FyipTHrIcbJdl48C7GWLzELsZhz2lq7QSApxwJ5OkT00TKpQZtgBGWjiVlzZMMM4qFlbk9oBjBwrz/9wkQvKBrILZUE3QfBcgF6jKZOqDXRIB86JE9XpBDZSXF5ujYhFd73bYLhJmNqCZk2RSiPp8uz9w8+uHl0+8XN51/e+eTWYlOY8pNzW00/y52Ytk1mQj2RAp/RJQ3PlHUnUhq0xKtsL+9RWwYPSAQ6OgOMSRrS6RyWBDxCzQzuC1t8ff8P/9nD3/5L1375oxP8H3XF0nxt9ytbw+bh8mi0McsAxkbRlPxZRQwztjw63udTIyjhlz1xEvSsg5RyiD4FbexYtFektdojsSlJU9m2Bqw3q5Y39iSqTqC0eruAMJwg1mdCyywg7TU0jiY0KW674kIEJmVNE+mTz0zNhboRgKnBuoYLYhk7tcLbwvZA2+RxGYaTsyyrbfEALXjZZ2J5VymW42kVLaFWb5BBZB8tJYEbrXZUKy5ezrx6iFEtTFWG1HVBpyWzgtUaMVBjezCqK7BkT0EgNqGItPlEySsmitrQNiHRwXKNNEKu1s4P8C2lQnj13akHusiwoiRE1RXarRAFHW1RN2U2QepyWn5weOvm0Z2Xtp7/5PZL24vtcciNsp8EbXNhRcOJX1Qy2qTk3OUK9DBTTDYCgpVQcSZng8svpXlh7kasglwspqFtFC4E+VgMwLH8jdv/x1+69stSZi4XbeNpk087i+03tl6/f/4wbUZVRE7vbfqt+qYTryoJJa6lW0fbtB1BjFFA4yaPJppzxnyJYykAFKTOX6Vt845y58paGLFP8W8Ag4jVZAalXAizZxOVhbZigoXveIoLdQBSOJf/8I5pvisA3dGW+QOCLQVZjjzLUjOui+Uqg1II1HP2xNH2os3mnZZWOEdbzr2LP5UYBMRN0qmR87EyhQ6zZAluyD+DaFk9i+/lzpipXsy6Q8dqA3mjrYoYdpbbTpYbJazYU+kjMIS7Gh0w4kI7E/mGEhmMOKR8Kf9L+moObnVIZLCmJITVE0pidK5TYNou00tORhP8GCh9IeSCwQYDbh7c/vqdb33/0Zv3j++fLc9yowwukP0xaud06QwXCTuh0CAjiRXQDFuVzBWxaZr0sICbhNEqOct1ZpmYjzW2ykdLi6ATux4f8cQTOzmDHxz+8Hcffz1qhT9u7j/JJRn9izs/O2DwisQ2ZE5W9aNyjGrzfFyzmQ5KMF8aDyeAK+miADKgVZkvrPZW+9uKwY29CveF1x3phPnsiZQE4HuyzM6OWHEmDljeYP3MnU3TcoG1iYwWHckfxGrDK7qy5MQjJRinCxmbgF5nzYXKucgMalESCDLkIoozImNVQj9gqDqfKEhVJmimKq7gfI83D2eIZW5gFmarzmT7slp3oVwdI9WIuEg3c/09hUQ8r6QSB1B9NYF7L0KKEuQrSGwQSy19lDQRSSLLAcVTE067nsA0A/bJdJWIYmLYljqGMW7Sq1NJ4E1nqUHMTSHDkxb7bHzOJbL+9q4vAEFjbx/evX1097mN517YvH5989r6uA5g8il8JIbchYhV4Aiv1ZEXBl4NOt9n3F+UKxhju2fynCHZiOLceiD56ttWSA3fWx11FkGbIFdHrUYbD5aH//ud//vPXfnahOlZ/FUenWf4mc3XBxsm9yFH1eEJnF0RDdSS6tV8pANUbMv3XCVTRoFumrpp1i6aBiIIQ1cJR4EKvR8ztKIXz7gtKDLkRPgEV2BzUjQCq2xTXmCVRm8HxHhzWKUkGIfKn9NJnqosaTwXXUhgpDt6VSHKvvSeQuqEJYVtjE2yQQ45A8Q1lJn1TM5ANtrs0KKAzmErrZoLreRLMWIwOrRMvSN32CJxxLNby/FIBU20RUuWSCwNM7iWlGx1ZhwZJsfpARYA5miLDq3lo/AyAMjGaSfy3Hyb7EVptk+KEDsLJdomodZFWIm2Zgwkyy0vr3F3wjsOo8HuHd+7f/Lg2tGV5zavP795fXOxCaEt99cuFtFKra5Mkz6EpLY9u6QyQpGRUeGaSrnCSuFJM1f8VKjQdQTBTwkVMADm8a9QySGa2RLTm8dv3zu7//zac/reAzyD689s/4yTZWAGNOnlXjOq+lFoizZN0ERM3f1AjEILZBiYo616L4hn+AmYdLO/jZ3WMCQ+rORI+XKFd698wbc1D1CYFdpaL2vBk3lOb7A+nhnwWXumzaZpzRlieEVRn4a28NlDCm29yGMZjTHjWQhn8QqrbKuoBgFY2U8zM9PDqAk0660krRWMLiWqr0hr0sSotpotf2Bg/64YYikY2JJ2M54kyJnyEGxU9W50vmgbecH6g3mmIBGM+1nC5gr6ylvZhTyZgoDluUFVE4IKabURaTo0ieTCebaQWbD5J8Gb/Sehh4o1To+QkSteWpHD14bFaMODk4dvPX77Ow++98PH7xyeHQ02JFlGusZFJaFFsKfsmWcizQNWA2JFpvkyi0f5t1NvsvLS5kzdjVQosYzy+U0wjTthqZBandJTXQnQgXVbe3D28J8//F0g/5Yzns31ifUXdscdEPrLf9MsIiymov6iktCwGCAKeHkMlyOvUhJ0LAGFoIU+vcTmv1Up026z6O1jU6tWd1tH6hb8XYKYKQkSH9H0WL5PQZAR1ZQE+RVats4R0IWyKG4ygmbUM01FtmdDa0V3b+h91Tok6JlGjgELrSrUNGdUB0+iM1QMVDZSpHTpwzid5iEgp65oak1WXQjz0bbsmPg6GPK4tilWBECG3HxKjHNSdmN+SCjM+UnqyFUDEUETS+wS2kJ7KQbxMxfaas2M+kukYMquIpwZRFVyOPFR8m6hbcB0mzNYhhAnyHAZe/EoS3btIreZc0SD44jQYlgMNjw53X9v/8a3H3z3+w/fPDg7TN2WYfJU0VYmCucxgI9OmybDSmPHGbWYes+9TsT0lpkJB3TijrYtUKGGpDDJa7QyXBT5ovpSRxhtfHj++F88+Sbn+pTJXsq1sMXPbL42MW4VtI2kgHeEUwqVCjwCSuWVChXmZ2n/TbfNUjv2DcoKoryzRem2LZNiZjqhbdc0Y9WUBbECCpgvCiGy0DZvmrw8KFPyJub2iuR0MZ9ZNeO5ZTKnYedJpRC/AbR3F/KaZmJcowiJtr0hWwlRwIpOlM3hK7qt5S0uvDWH76kXaSgjsjnnpbRXLtSxpjCtrUWLo1mILWo7W2mo6na9Rg7nxRFU9EPJX9sRFLQA7mHRiwwglzUQ1uMJFCWgmtygeowbXYRAVnXcFgbfp5dM1QbrJJDmonSHYpLGR5KViYXlo3IY+X7P6XD6INX0tEbotofnh0fnR/dPHl5Z33t15+Xd9d2MiqdBz4wINGJkTM5cORgP8bjqQmeqNsWe+CbpeOGINZSJIC8aq/AALdXaMh/JcNACcPUzhdkHJzfvnz14bu36M5UOPrP16d978k3YQFaYhmm1LeSlqPnWNGQ4oi1nXPaRYyF2aelPaPsGzNj0KslmBFa0MhNM3t104glJEeasHIQGTUcTcdJk48Lkz873zyJQA82VnrlxhChDJCOZzgZ7igvV1EDclzlAwcE+1IX0htaRmBZ6jilTJEwEfcpw1D6+tpSKKuTL1jrqPiwwkIjkbXjeOC9hkrkNLcTAnLQSYgtWoE1RViznvowx5EMuyHHGfIiWA0RDk1eyzWD0r37wlgSVyIrktvGjMftadBUGzgmn35Vv52GIeGmAUnRMgThBNhmE1OGIv5vq7hafyCeM+kVMsARbPoxenGHQ300KHxaMb0U4XZ7eO7r/4Pjh1fW9V3df2VvfeyroaGHkymFQHgVM2aDWNVElwh/0Omu0KF1BTt8cVz9UYE8N6HsHs4SqsbUwsx7YBsDXbXH//OEPjn743Np1h+ffIXsG12e2XhcSOSYGTyfySs0Cto5xRRdaQ9jqe3IBUD/ElQtA39fJBGM0odaoElggO8c3C12gEBadUjWAdtQCRctKD/NaxFpDqBVmnDsBK8c0iWhJIRNYY2bBmYmUj9M2LV3JmGqbNgr+wuPHBfegczppppXTZlKcCAnGlKQdENhEouZMLW6OievQ9rlNmU8Oz6mlv+jMcpmuJQlOWWMzywPVsxBbINEyfGVo+/dEQhNmgcGWgUeeFTMxrY5cD9oHsyhzY/jGTisP5DoQkaFhKd15A9tGCugdAbAIoSBNicaL2U9QENHE+HhFPtYak/SW00kTmE8jrSBTQT6OcDQQasF/DIMNACafHpw8un/yiGi7GwoDowvqVqHSqAXkO0Aed/GJdQx5vbH0ihlOtY5ykbSDt5dWuO2HnlEX2gp5Y2wZ2AqVxbC4d3r/zaN3/vyVX5jcx6eklY96BYx9cv0lEqaJneiMegsVB8wmZZynX6uj/JOMOjYPZo6f5MHKxlU0zkC2M1wJBTPCKEInkCXi5EM8GWS+h7DeG4KeOtFZkdvcoSSwTIp4b59A+0nsceGtNv+FuysWg++okkmT9qmPgTSKEJahPRNJq6rkE0JagNAW4Rwkfgn4lSTEuDPetS7tEyJahm7tOfQCQEUfgAUSE1SfMl3nSna0RYKOCZtBGk60NeRuDQE6YSETh9MauaKWSCtKhaT3gNYf+TsdLhNv8f80Zsv75BNGjOK+RVqCJJ4tHT0Lt7SiexbDt5ade4ldTgvUu6QnpBcQOR+fPvnmvW9f3dh7ffdVHzCYDUMuuIaftLiqJ+aa2rAQmIOx2o4kQSFD6JuRoLKUYr6jrZez4UPRtqbZqRZgC4wPp8fvHr/HwT2r3bDn157LwGJ6s1kKYagYJvfRfkzAt6f89MdcHl/SmBVjOT4DJ8qutG5HT0Ws6o+4zwBJawugpfqVnqC2utneXAlbK7iifDi5BbhSk0+jjYqfp9nhxzWMPf03X/pEti/cXKHhNF65KFZMp7Zke/1Mpp7NIEf+xwnCSZfac1A0gihGW0k+JgWx3opLNgsxGtwXzHF00abPFBsmKIJqaqojhNlklcTbBGQW1AQ9q5tVbKt76VpN+aXmSCpfwFU0NZyjH551hpeRNbSBUEowzktTzqXVKKrWyiQRPyS9R39kLim5TIxidniMZ9mYoRY2Pj7d//b9P3LDvUcPTk/Ptre2Bx+maRIhqm2WhDN5n+s4PfMdMxrjzgVudAHIqVkZNcdCcyyBu14qKAdxVENihHulnGziCxvvnz08Wh5vjZuTTxWyl3rtLXYXtgbyBSi9ad55Zzj105/f/dK/dPUXBhvRV/fHuz5k9DHf33n89X/x5JsLG73sFA5faAsk2tqsueCmEtUKlNABegIoJZEALRTW3BlKkHv0ZVKtEwhRhGNh47/54r/20toLZ35G6PhjjPDhV2Mtw6mf/uaDf/728XsjRlRueIoLkUBIBVJdTw+/IJgk2uajJN2wrRUZIZ9y7lGZFIDnEAAAIABJREFUl3sn1Zy7UHcqhVKGSV8dn68IgAWJLLj8VqMkmXQUmYwBlF7gQjYuZM6FwF9ARNB0Yik5SC4ya1mxXKJLEyV7ysoFiX5nWkDRXYEmYDOLZ7uqxBUMrGdkaZObmkhsR1vq0TNWQK4uQ7UsEbl1gC2GtQenD9+7c+Pmk1t+fbmxvbm5uQWfpokHhkpIUdZNai0jpjiRNqa/pE3DnRjXLCcaPoJhWUVZWy0l52Zvuhq9bXZTKWeCjxgfnD++f/bgU+PLP244/vgXPX204bm16w/OHg4FX0ohxvdmJO+M2//Wi391eDZi8csbn/yth79zdXFliSVJidcYGtq6tz1aQKSgZ7JslK/KlysLdmsThtIw4Lo0euty485w2VEvioczP/vc1mf+xif+WpyZu/Tr3Jf/5N4/FWwpB1At0WTI4ph7WIfVTeGpzaA5q6uieY1jqEY3Mp/Ifi2Eje5dOk8ba/HfOdqWjN6yWl4Lox7cgKk0UCSEgOoGCZbGWKDYynRQhC0Ak8s4uW9YolEqSRbJxZAqq5IadW5J3+IAzarIowPZjMQQgbYWdy3wH7M0z1Kd5E/sNz3USs0S2sIL2kqaI9IWH0+foOqb4OzwwYbFMJ4en9y5dXdtc31nZ2tnd297e9PdSW0VmjRPy7daO8I+kMFcuk2hbaRNJnyhLd0aT0VbdrTCMqDM2fzPG9pitMWD80f3zh98Ci8rQi79GjE+v3b93tn9AaP6sNVQsQnTxrD+u0++/v7Jzdc2Xzmbzi5Rx3DH2rB4deOVvcWuSjVVE6TOSuxxk56f5SAuqLG6yvJeHWr0WrKOtivYlEjdWJQisthIvGU0O5lOvrjzuTVbm3yatDl6SaZa2OJ7hz94+/j9vXF78slLOuhJZYWbN4AhtPW3deCbzwiFtjRSf26iBdNf8FbV2gK2p6EtbJ7eumFXWgFYlJaaOANySjpGYlsaglopIQsANZ2mW4hHSBYA59mQp8lYVRczs5qOENiKPMuTTCJpZL3RjB7lM+1pFW3pzbOZZiqRequlin9XH6SFKt7pAFo/pSQ0mg0vgAoEdLNhHMeT49Pjo+P9J4db25t7V/e2t7cRaFvh5dz442BJWzr0JW/PnOQlYbhKk6oqehKWbiuJakY5yDJaMIOIoOqv0HZh48OzR/fO7iMxQpXXJVzG0Y42PL+4PvkEWzh3eBqI0OndFjY+OHt44+Tma5uvLGwBruhHvJy88Mpi94vbn/v9/W+vD2uOyWbukGPiOcSkVRSAUF74tExGi7PRPJIjCDva6iFsq1f9AjaJEtLDDWd+/rntz2wM66nSXhLOyg2/dfDdhY0TqCEqFAheXcW6gLarSUXOqVgwddjRFox91pVlR5rfvTHmOdo26aZkt4Q/qJkTMG2l1aDAqIMdSG0gYi3dJNAnPyWVZ+kt38GCPEFeRVuwOCN6elcbTdQycFcuY07imBtmgEfCce2hIQAkT51l+FLlJ2NM48fB2yA1HLrXTSNueM9kHYLSAfPIRNR6gd/MhjClGZPxskNLYFQ8BDTrEl90xzDYOI6np6ePHj6+eePW++9/sL9/aIMNzMjhrPn/mTuSpHPluPEXx7UNdWLbyap5vjtFgFxvhmjOj9q/iKr2vkwN2buLP4aTjTbuLw8en+/ncJ8Nox1tfH7t+pRZwTgA1iW5vBHQ09qw9o39b3EHBpfLsnfHna/sfuHUTwcFgeX2V9CGANZgsoLg3JTJlwDdBlCGrUVvN+OOk96o5qgFRb2qdYlXa0H5zFhcO5vOP7H+4isbn0QHm8u7lr78xv63Bhu7m7ViyAX6hNFwSyWbnjY0IzXsKuqKoUDNDXnQIcMjX8xbhGDnohCTTANuWQ00o7GESvPKnuGEC9RhIea6VBvzyRYDSgw0aZ0KnCqSgoC28pFJ2XhiLYKWVTRTUZ4uJjrXWColBe727qXMpB/xJUgBJSKDaKtfAljl7XU7y4YZUnOKOWZjycdpgxlF1KCNRmcZmtAK2dzUKB0IBgzDAOD8bHl+tn98cLSxsX7t+tXt3R0mT0Jt7tRJdeb0WImKZKcyVLygzdMzK+eWLFNi83Lxo+5YK2UdLcg1jNAdbDieTg6XR+z0x4jCP/k1YLi6tjf5MozcNg+7h+adNVv8/pM/PJ1OtsYtdNN/hCsQdPJpsOGLO58/93OjUuyQd+jDY9DKNSYLZSHqCcVNvZY15yJk5OV0v4Se5GFNGuIboGXw6tQr05udTKdf2f3Ci+vPI1nTJUPt0XT87YPvjajjjIoOlI+lC3HuQlsT2fd6v2bEibSMa5VLkgSE8UhrU9OLOlAncGlBt1oRfbhKHRnxlM1y0TWjWpQF6lMUQ/IjknmBoDgti+EEEIa48+AtR2bUUAttdVCbSgKJZ06g7C1eJt9MBGkHb1dEAh/axya4oSc/TbRV1+X9+XXiZEA52MRK4Za6yr3JoSowY64UX3WHDQk4Dqobyn+DcgCjpcN5GgCWJ71smqajo+Pj45ON9fUrz13d3dkZBisNAJlBoGyX1ICu0BYh0T1WbtJZYyDdjQlLJyMqE4Ayh9KDtx+0QFWH0d0mwA+Xh4jv0fBuz0u7zGxjWG+4MWVEuDFqK5kubPFHh99/vNwPnL0sEDGuwifXX/zUxiuPz5+MNkwzFgmBahOwhK3Ieik/47hy1ARyMaGtwtlI03yOJq0At3ZfjXumFA10Mzvxkze2Xn9+7bqOBF7Kpcl+5+B7J9NJfJtl2oGD6nOxnCMFjYQwlzXI2OihYOQCQsCybpkO1ZDOTxKREOL8cKX2vRMFo60zACsivC+JkkGzuQ9mwEDak3UOK17STykL7pWbkTQ3fCSY5RA1taWXsK1TP4x9rSiDo9IO7dkqMAYYTKU9t7yMICrd1cqJDQMA5B+vQRRqbkQMVtQklOLbMQrABziG3PTqeoIyEqWTmCFMkgDViMQlg5kNMUy+NThh2IRqydAlA8EBWLlYcdYckx+fnNz+4Pa7b7/3+NHj8+U54MMwWPkVurTEfE4cNJ4YNLhNKczAfbLUcqivs0zx+LCHCnD+4RxvcS4PjpSezNe5KHGuZLRhfzoEEH+k9hlda7aeBjRVnJPTZ6Hq0t2BJZZ/sP8diLRcxiVIur529Qvbnz3x00as6ICVswygd1uJBdMk2mtSu8Le/cNbTaVx5F/BcbE8a2gCYJ4a0w7xh3O8kcQEJjN3X7f1n9l8HcASS8pel3DpOV9/8i2kY+coV8SoKYftLHGdfx9IQ6VKxuwiMfSCfSaaor+kVgmUqY8yBuAU1CYPrTDkUmeQxQ89xMhJoqOJi85YAAbyZCfEJ47lYYgk2Il4JnorjpukLsmdF9wbGtpSZHL5GoyNc1Zi5Yk+BD3KuqShIXZJsUnZSxCWQJ8TcLFlObtj3jE1CGUIahQMDOSDmYti9IGGM9D1xEs+TS/FuHI0ibYabz4ebNQ8iixA7n52dnbr5p13337vwYNHJycnAIb8hAPA1JznU2hnS9NlLDG2UqJNVQq588dCiuQYZLwVk/JgOVZ05CS/HfsxYDhaHp1N55dbe65c67amXT+xEfJCZNpNXuCG8fee/MGzGIa7X1nsfX7ns8fL4yGdV4nnKWhL3RZzJhuyYCMsRXsLbVF1sTf1trTOOdqiYZPxnQEKLrQ12Kmfvrr5yqsbLwMM0cszTvzwjf0/ICMQ6YkRJtqiZeuVEopakHe0JVzP0BbJjRLHiddqWEzf00YmtE06qL4iMnTsmQtC2NWirNB/56I7YIukxQnPCbUMslwSDllHg4AUS9k2Ka/IayK2RAYASuMigDyimjCI2VEGgLIEWX1axkBpBV1J8HQ6ToCQIqDtmm8pCVmhWVJeON1XNMiYrYz8l7KuynLOPhqGY3AfGeqUj6B+C4hRJzGOLNc/J2jUvJWWzGw6X965defh2trVa1e3d7Y2NzeGYZiWEyjDOg3FWp32Tr2Yo2tKnhTu5EXpWjJEJq1cFzl7Q5C8wTKNTmpnfr7Ecg2LP3ls/rjXmq1FnOW6WB6ABnOLtDGYDTZ8ff9b575c2KV9AXms9YTliPGNrdc2x43Jp1YUd4VUjjVHiDp+KIxUFMRNZ6iavFMSZDXSiNpNLl8G2lw0ALM0BhtOptNXNz75+tangIqOS7TS7ZO7N09v19gi4C+4kABLkut8RikLqDYFo8mb3TCvXOmZbu09jRkkJKjvoCs5QNfjjc91dpbF4Hy0GlveWjgDOIFPy84FMMKKYCJgoTSI7DbbSFgBjxIAK2jLtxcLgyyFdtSgjzf5LB9HLE2WkoiEkBRQfDlgltiCXFEqp0JPgrDX0dhkd5xRLQMqhNPr24yITKiDU0R8ZQMBGtIycsSWESkHgcICp+xuZuM4TtN0987dtYdre1d2tna2t7e3h2Hw5aQoFbNttaHs4jJRTie9OJNsrdlFoappUgzjBFY6sUbrZlj6cooPpEKTu+RrfVjzWbJAhWXOrUJlgN0+vfve8Qc/s/XqpY4iF+iT6y99ZuvTbx+9F6OSb4tYYU6m0qngLbzCswBZHqXbiu9AmbuhLRgxFWy1Uom26QGF8wpRX/rytc1Xdsedcz8fcZknusIlvr7/rXOfGIDOPFiUir7q3V2dd+Yz6m8ToummgZZvuY0kCGJQ0M2GyDRdo0XI2EV1xJtagXbyqRkWADzERPeWROrAAGE6a2Bn4QvJCgntmW6cgSoqlvpCngMj3Uv8p+wsWIYwLQ99gsdiStxMzSJVmay9mAVd5ukfOzMW8tRecjiNmJF0KjeErFk0s/gmGvtsSgJxPrqKhWIpouKwFAAzWpdBiOg3lBfO17IOdiG2ODGAQNv7dx/c+uD2rZu3nzx6sjQfx0HO48gqX6wq/R4FP7k0xNY88uIpKoTVS4Ka1cIq3ChbFX3Lrgy2jLPu0Cwv8wo7rA1rYjIUQuCzucWSOT3df2//9/sTLuUqnN389InnVg9onK6QEmGL59J0oJ6VukFiFOpwmOhtUwdW9AQQpb2rFljFevWbyeDcl1cXV0KchTD8UixDTviN/T84nU5BV46jhblcCXdGVaGPmaxr7nuYOZ4RZGe2jeAW2yCvn7VVBT9XbwkMrFqjNXlbam6pb8bjTCtbA451ie/5tlW0DVR2xmZQVlJJYpDPN8qSIYV/cyXNGJghrLqZgJxMEKyUyTkIbCRlESvRvWV1HfDrJTN4oS3r8pRozaWRGrS4CVzSeJyuxXmwJGnI6enHUloTgFmOWPoMbzI0asW8XhUmF4lVikmRlBCf8jyZT+O2AMbFYlpOjx8+vn3rzq0btx48fOTwYZTDJAcvhswYi7TMdc8HhjyVhNtJouj/BO/EZU/ocjloTILaHwx27udLLC8rYp96rdsah+YMGiYLJ6dlCjNgieXvPflmWvKS0CSec+7LrXHzja3Xl74EuYaVNYS2CmYlhbyS0ZiwtXTbQNcgvHPdlkOo30y6rRfJbcjcemTE25mffWL9hc9sfRqAZZK4nMu5WfKDwx8u+U0XwXG95XY5IKEQaMBHpzWmENK8Qsx+czWT0exFb02vFNqaFx54e7lJflCNChPaZoJMNcRV7AecAIvc8E92mMhG6pLHAFiWGF+MXRMukfMZrSaXcJyks/PXpvtxNFZ1d1MjKfWFkkCJUHooOFonc5WCnIZkp13ejce4yCvIOXNUpRpXGZEMNN3X2YrPozcoO6EJswFyrAmZsyRiwzLNoJs80oqX8NAUiETfpyoJ+4/3jw6Pnzx6srO7c/Xa3jiO05KqrfwkywqjVNfYkDEUU9epncvIsaSMKvPCQRPBjcgrdgZgwjRdXsQ+9VpgzHyNXpVEEs0fmUQdZj7hu4dvRml8iRKkjPfpzVdfWHvudDpj3UbqkgZXNkILckeZjtZlguAKCTSsZUZLQudOLoFyOYKsGjYshlROuA82nExnL6w//9ntNyafBpVbH/kK0WCw4TsH33+83OfJE54gzGFH/nGNODTM9HpmCPqqTPr0abLS6hTVaOf8WeuCBC3aMX+mgpZGk35Gmwe3dTIVI5ur2HamSXPE4aPAxEAsJ23jIR+OrpXAXUlgi1RJW6mS4ygSbKJFfLQKZGV1Y/7iLk2OBjqyQO4egBr0OASBLB1IVClRIMaboMWiQ0pCptX05XxUp33h18FBE4uKw5Iwk2mj3qgxy/lzrqCakY8tjyS31X9LSeCQpSSA/6ygrU/T0eHR/bv333vn/Xt3708+xd8n66c2fIVCpWtyCWDKztnQs2RCEnnPLCtCm6CbjpK8HQAwYhwurwJ96nWGc82l0o+R2iQLId1wDLDD5eEfHnyXueRy0oC7B4i8tvmpT228cpIfDPNOMwmsUDB75oZiUqtAnGhrOhATNQblBTTYzRJHyCzixsDM8JT7xcDNzDGtD4tPb7wKYJk6z+VcEg2+uf/tw+XRyC/xqUhORko8oLch6ykCYM4IjXIqWGuaYH1AJaELXGKp/WY6LasxZTL0IoAkGlISoqJl9RkkNiE4iJ2nbufhcg4zG4SdCV4iqEbRwQkcWdESsng7UCiq3IxqA/KYTbJOSrPUABxE6sQmr645RBoeGFTY66kmqBqsfCmlH0taSXocgCFEAOUEDNQfPLRsE5MV7aRDZqNszd4ZAmZmNkCoa6rCjWirl/SvQCjlODCvxLA72rILyg3MdEU/3cyGYXD3k+PTB/cevvPWu/fu3j8/X2a+S1KcEUjyKi+2ckdLtI3E6D6lwA3WEJlhU4B3FNo6GCSYRhufxZ8WT4uZATidTsk+MlQ4o0bSveDfMJxOZ3G66xKlg1iRyafXNl95dfPlkxAiAaQyiNJdUNUuTZkvTQkExTyQTCwIXyppRuVm4hZj0xOQeFSFl80hwx0+sdPwsxBnP7/zZxDk6/JSY7oQ8IcH3zlcHsVfGHEWx2RjLOMcDpuinkvCKMEqfVN5S/UzJyX5W+/JZfcE3BnaOgWcuX26C4mCFNqqrWrKpKQZpJm4DbxrAHwB1vAAbCB9TZxJxM06vKFjMpdY1fhQVQ6qWgwUGZigmbsSngoAMVMhkCCOrFTRzkE5YIPleRMXYXWLoZvl562c60KOSFZAxAWVCHNwAkaMi8XFQLQlW+UkQWCxnJUzzpgLWaXkijtnApZ1zchsUMsWc+aASYVj9cJsbj7EZ8tarVJ6gpP5ui+Xywf3Hjy6//DK1St71/bW1taGYYBLQ8reaCKuMlg0qVLKyU0s9kiPodGm6ZE+Fn/LyBfDQArzrFjtqZ8lnGjYyXqs2DrtFKt5PJ1848m38HIA3uVAbdj/fDofbPj05mvrtjblyueIxB+lJNDxJWYBDH7Vy+JWKLRlynQDJh5CwJzYgjPL9+fUi50B8Akwx2DDuZ9fXVz54s7PxkQuyyaBnAtbPDx7dOv0rhGpkjyBnFtGAQvT/E6gZAQgdiZ7KxDkytMh25/24BjoBrSkUDjRaKq1sMZ50RK2okMBEn/mIQt3YY2H6+efyCm4WQBt1rEqak/OkxiXXTkoHmRpX6JB5hahLWM0AKBt5ogoZ9GArCEyvXqBeyCPQzoOCtWzhOJszWTLoN1pA+EcYbwYI5y9pcldmEMWkhhY/2RsOEGW+UFKN2VLYT1MkZXWYVCRjw/JbBPCTA6m3rvVuYuXiEswXkVbmFZgcn/w4OGjR4/3ruztXdld31hfjGOkXi0cZ94ZEO8SpbIYkOszUWZYywPoJxMwYIzve31WKAucTmcKIdSwcyCMkFg0Vwq7dXrnwdnD62vXJtfNS7hisp/deuOl9Rfunz+Ms71O+Q8VzMoEaOyphUMOPi4tseKtMaBUPlKijQbG5M+buapaVgFNoMPSp+fXnvvE+ouXe6ILzCXfOfz+g/NH47BwKNDTZ7hKHKinRawhVUyPKQBkXaoGlKuqblD/HVXBx6m2cbqtQHYlHaJcSA0zelUQNDBIlFOHMZSBhTycMJP4QBnTKWNGUa8KiD8lLiK1g5QAnEDM0p5tTTU/s5U2nlgNseyHNJfScV35LcqIIJoOVR0sr/IlUHvWQS+JA9F1gizxWsS1MCOvQlwW7QFzXJXQIPjGtH2W4UaoSt0hdbbmCwGzaY1U3qKUyvRacZY2ZKSu6gkFxF5eHmICgEcPH73/7o07t+/u7x+cT+fDOCR1oPBNJaG8k4OkbgSqstYK2F7mBlYkkZ/WbC2+hPDZXad+ytVKtKUA0kMlppDpeLTxYHn4zf3vxCAvayRJKoCf3X7jxfXnTqcz3Uyjxdug9KZ8gFbzVrVLEUZeUHwKBFmTqzc9gQLuTLftLFDYEVrHxrDxhe3PxnsuEWQt/yYbvn3wvQdnDxe28DbT8psMDrCKT7YuqwkVPA+S1IxWuG3ECjNZWLuQxHWDthU7ZhMJEcabxrQkaI6ov6BCkM8mb82NFXf3QU+3XDpjnkjJMv9R9CP1OJbtYlrJYkUPYzwpFIPSUUIgXIcNiMhEIqN11Q91RWRSSNpWC6WWMXdnnhfaFmGvmitsZZIogquVySx1GQIrrYNcyewz3p2cklkl35G2N2SqLbQVAg8FZMhyP3EzExfzGetCQKQVRjO07bJKZtZkeT5gGAYze/LoyY33bt65defRo0fn58thHM0wYSIlpSdnh0UqTPilEJgJucYYz/dN7tvj1mjjdKlbKyvX2ZT7YCaPz//OQkWABfjCxsfn+9/c/zai8L4kZAn7n0/n19eufXL9Ex4mzfIi6yOirXgm6wnUDUGtaBqnAOYPgDpephCxG+OWjDMKskb3ThJjTWPaS0w749ZXdr8AYEjGeDmXuwfB/+HxuyfT6YABXmiFFsRkgDJGMBHSn/BmLzpmWb9JdE2CzEeBPKb4sdAWZd5q2MiCAFoE1poL5b/G8dvKoiRBZGnuBrOFyR6CAJAEO5mqSf2K2jLfS3qeyMpShyVLKgNANlW8luAa4RzQKnwutwGsmBnzN9HN22uux7Fspn8nsGbla2RtUM0FzSUxNbHDmq+RwRpFFPIIkJWEgR3yeZBDcazxgqPZTnzW2I2XOpIFjNNrTJZ2mjrRX3q1EpCxqQQjOp02ygDsPzrYf3ywvbO9vb29e2VnY319OU3uEzsmo8p8Ps8HSuz0d2M2UO1msAnLnXELwAQfi75f8nXmZ6T7OUtGF5jK6aksUAzDqZ+8efQ24rvmLhVq44fPbX/mtx79zuSTKX5mlUkbbwVtXL26N0mNIlaYvZrd+qpLJ9uFAtGYA9MLKPaYTb7cGjZ/bucLPTF/9Cty72jDD4/evXN6d31YD+8QCHZJtHsXQNfN+Se+so1XdqEdwwPFbQXcHW1V3wiLkcPQ23zFhZikoUqCFFiwXin8ghABYhUWznyXCc+Ei03GTGJbRuIKxdDY2DhcoW0yTMJ67EqbQj6hrcCJGxW0jQm92FpUlaW508CFttmSSQLUHXkzVquhbaIC11qkucQAlBAh/Zaor24FjHIGoJZWPIJ4CLDia1cCfXKaRFSuDRppYYLMoTHvUDSQpzbzc2pE23EAcLh/eHhweLC/v7W9eeXq1fWN9WnKTW+rPTmCNt107pqFthq/pesM28M2F/uPDcyf5Jp8Ol4ex7PTSVGj7aFCtp6vLmxx9+zeW0fvvLH1+uQTU8VHvdw9vkDuizs/e2Xcu3d2f83W5niqYGaGLqUvcNQY58nH0QK764zd5ZEPLBwTdyrRQNEGOhm5wmubn9ocN5e+vMTDIWa29OWA4c2jt2+e3F7Lj5PQFpVyvN1rP0GELydHypRnKoQAFCEzqn4U2jYXrFzlM59pJTnmhi5rr6RDoS3EkTUjYy4dWEU7lUpWGoAJmCOMnLudLE9TSTCKB8wtmZ0IdAGoyXgTDDB7Cl2NYODgLykLMK+VbpvFbSkJwVSZBKOtZKtUArK2ztGUbuupJKRMms5eUZcmM/JKShFZByLHlOgWCJOYSw2jQDXHh0GrXtHNbWE+nUoCqEg4RYVkC+AxHuNTsjZoSkICMZUEDTWVhHEYhuHo8PjB/UcfvPfB7Zu3z87Oh2GAIc9yySOoFSuuIxjS/khHinWC+eTTpm1sj1uc5TMB2gnTw/PHZhZFemW1DIwoA6vQRvIRX7PFvbMHf3T4/XjIJfLZATb59OWdz+8tds99aaBoSu6jUYWSQG5VIjIa4XWRP0q0VBJi5aXbgncYiCa01c7Hqm4LwN3XhrWv7n4ZhfiXc0l/eOvonfvnj9byRBeIpx3d6EJdDkyeGNpboWiCkDMIcnqICKaTJvdkRzJdgqZEVcvlmBlw3kQuVElayAu+2lB4piRERwMR0CTwJDcFlR7CRSOqKbcGAnLXJkUWY+Hq4pEctgsxAz3y0GWSWjpFzocGTYUzAUS6bdIsZQCGVq6Y01rUMT2jzvKAp0mascR41yDiFYlUlq6QAJcTLxy2FHq0GaVO42ektTraikfM0Ee+lIvlKWkTba3Q1mUvo+M6NZMSNLpuy0vOCNBWwDAOZnZyevro4eP3333/5o3bJ6enNgxpsmDGmb6ymqlRM1RYxoQFsfTl7rh9ZdwFM/VlBXC/lj7dO7uv77e1ih90SshIhvjIwhYPzh9+9/AHYfhLFCXNbMI02vD65qujjc6MT/Q3UtGI0uBWRnwUyQVJuhif8f0ruq3YVoZ3425CW+toy/wMpKQzfnX3S7jUXBgpfWGLg+XhuyfvjckNCuZQZUdxSY58hrYRTEnkKJYWbwox2joNI8kF44TEE2SBrGyk2ybg5tib+S+6ENU0F4ZoXYS2NH0m9aECGfBhSMC2IqsQZ8oQ9sQgSgORwcXbuFVOkS/PFIho5dPF9JKGOskbbKgnCxcNaGiLVJESb5Ke5Uv8yVuhXmxPdJoqx5Dm5DhcuDI03s+oDWMQN0mNkzO65t0BV/BmboPlkoqlMzSRQJ0emk3BeYkwEm1zZWzIl5ijM91RzJijrRsMA790mwnRCm2HwczOz86fPHly450vsKBjAAAgAElEQVQbH7z/wfHxCXmXGybpfUEwjMHAyktoAvB7SZ5buw4lncu7hNpLX949exArjjaeLpl1lpGhQlh99/jG0fJ4bVhzXB7U0uG+uvulzWFjya8ra9VoH1UMe1JMEjqd/LcYn9CWM51EmjqDm3MuAJmSI3zM4M6/pexw+O64/bPbfybfeHm8Pgbz7vH7bx+/vz6sO6bwZMKc0W20ZBGvmnuiLWl+UI+EmfS/0MQCbSeH25TpLJMJ+ZIqAxmZWJ0r5lO9YcZwO/S35au6gTCdo13xvVj0BeaigfO/ILGdmZ4bLpYlt0RNA/gxB4hSx1/CoaLqlOyceB3GGpAlALLyDBzi37UwZ7Zuuzu5QgFG7u78wzmS4JLbRRUrkM2Bxnq58Jcfc4BcjyoI/9gERFOTulLCcY4H1IsS6qo+B8G6LBNWB0sCMRf3IQIhua1Ys6X6Cu7uwWGD9jwGAmDOed4qNRmHF/4Olh9zELFlqObHyaZpOtg/PNg/3Nreuv7ctY3NjRATME2UtsmJJHYwPGJG5768ulY4+xPE6odcqnAnTPfOHgwYBGSM21ASMrRIMRjSZg5ft/UPTm6/efT2l3c/79Q6P/rl8JBov7r75Y1h4/j8dLDBk3OYBu+ro4JjoowgX5RVXQoD2bogdSILNt7hynBRSeAMVQRxg8Tx5Z0v2KVuBoJ8FsC7JzfePbmxM2xPmAhbnHmDuYIYFnnew4avKvZdUSw8i6dNzhMe6dj5epRxOUNn/DUoAQD9FfU+Hl2ZF9lEyTJH2IcdSylXXHD4GTStprUKWKcfWOVVwg7pcfqPMUeTz0JZKp7AufKwstE+xv0bYglrTZu3TZ4LiQaZITJdoxuo0DapZS5tVvBZqJuSSW3W9sMvacFG7tOiVsvOOl+klEsJpQpxxzpCwfWDOC4Ng6xHLLNBdhRZEc6VoPVyQFkucPZdSfDMAw490Di9CE241oreCIcfHR4dHhxubm9ev35tc3NzsbYA4NMkzHDNKycTwxjOcX5tceW5tWt4Bpe457kvH5zHwcwkIIqZHrqKbpEjB9aH9RunN988fvvLu593dxsuB2UsGeP0M1uvXV1ceXj+GEzcwk36aZWojdbJh2cwRHiy3mpOCfk7C9s52uZNeThDwb+29xVZ9VKgNtYittR+ePTu6XS6N+4spyBdyfXELjlTb3xEdCpNpIkI4JLIG6lcFc+5TcMoz8GQDHCTuUxnLHrQC4iGnq6XrI0ESU7ElDUw06JoLoviqzVQMJzhdWYIEAwlQKFFJFIAmvmCUZ5GMFVVDIx0ssPc0GYDbixSmHHCdv1CAG3QztMH6ecJS4U8bBlLTZyyhBnWVTQmBbX0goLcRE6dTXNx8NYjkijMU6/Nk14MXjEVpTmV2UpShH1pBfFCJSJXquIi0ZPSkJEl6NKmwwlC/xydzMvloYnM7OTo5MbBB9tbW1euXdnc3lxfXwfg0wSVpq6yJPWfpS+vr13bGbdj0/lDA/Mnvx6fPznz84UtSAs6FUp3nIcKVPEtbLx/dvDW0Ttplks93RUh8pXdL7x3ckNP7kjBsEQfsLhqQ9tZ2PPOrNUcqWuarcdC22zKqQ6wn9/90qXMui6Hwwcb7p3d/8HRDzeGDR1S9hqJkoephNdNopW1GkU+btKmknYwShgYIihEWwYhmHLFIbsmazP7GzsqM66kQKGtzYfacCSent/zHbVyUioxWQA8QGVSFZy6rZEAeuGV8SCJkgwJa2rW1GSd4y6/UEoiH+ChOc/HSulNeVCu4pREERGus005ilhFT3kz+SQE17I3FUxWnU5zBB7Go7RoUkgtt/5kQTTh2jhcJFhT+GD7mXMa8TT78pmmA9k6wTJGnWJFctwoLSwkci4HwCxiOZKEUcnVwtYY2vxkQmzq2jiOxycnH3xw6+YHtx7ce3ByfGLjYMMQymYGeR7awIRpwzY+tfEygDhDehnh+5Tr7tn9OLnBlNUFzVLQSFucvMkNNrlvDhtvH7135/RebFhdlkTrPDvztd0vL2zITqUFUTfIu23AqECNWBVddb6nGq60MoY6jZAllbdWK7rt5NMrG5/8xMYL8euli7N3T+9/7/DNzWHDMYmDNW4Y/4YI60RbYVK839mKccgFRbVKZ43KzUH6k06QERB7OcGFjJ0y9xg7goroFRdKgpmWVLlKZl1YnKHZ09vCSo2swqYyDzNHOrJIwlxJIN/Kt1H3yQU18mCnFiiyj8RJZvVCueKryGLDZ30VP/MmMFiuMsDcZSzDWSRFdoALqrJf5nnLhMp9sjSw1cNj/tkz7RazpXgg1slZls0I4g5+MVJz7ZJvoPSauRnW5l+rIU3A6JotmYj9M3kWtResgnjbkpOvku60jZvZYhxPj07vHN7d3NzY3tne2d3Z2t4CME1TkhMAGM78/Pn1629svQbAbLhc7U/GAnDz5BbZ3CxUDOpPRbTsL6iaNob1t47fef/k5ovrzwcFu6yxxRJ/be/Lg41LP4PWVcWZeNVsbCDXM41cbIREr3gfSlaWpymplE3kpdlBQoktffkLez936V+opjTz7smN22f3Xli7fu5L8lOGANfiwtjil9k0rannc8qZ91q1ntbi/g7tnaVzPYBR1WtCp7XBpanBgPiL6r0b2S/MKJHagCG385PwJcMjKU/hMn6BX+Bbllv+c77FWUApWad92NZNxxJE6MuQ1CCJcE6VOwAkrWfaQAUL5cra0Rc4tTrxYXkCxMgWfFaxGIlelSZgooIK9+i1s1cjD9dzmXJmrypxWlXmtXaZ3PIdmn+w/SgJcuhmsnX4rAFtGZgCoiSwNJYZc10X856Ktv0omLgtB+g22DiOJyen9+89uHXz9q0Pbh8eHA6N2xp86efXF9c+vfEa4qTwJWNsXW8dv0MO8v+z9ua/kmVbetBa+8R4p7yZWZk1z3O9V6/fe24b220juy2sZjDITC1AGAkQ4n/gd4TEbyAhCyRj6BaNaCP/gDHQ3eAeaLrb/YaasiqrsrIya8iqyvHevFPcGxHnLH7Y6/vWOpFZr7tdN169qrgR55y99xq+9a1vn4ggN8mp4oYFyxDrc5NhGXx58vXnxzdwwunwWUEZOD8898z4KRDZypcNyRI0CqQJy0DLSdIEDu4rBQr7uSDFvsxMtYAFmS2aAQoXtvz+xndOq7rUBzhEmXfzy4dXhjrsLE9DEiRJqiWZ2zoZz4IJnxD71Ffa4+yZ3vqIFOIIJPWRsypczxHDNZpsC4xRDMTpacJ6AZn2fwaqATIAf+yKxc1BqV0mZ6qsjJUBsEvC5zjnCAi9QHgVdtCxEGCeAqR84upn+DWCvBpbEAmKqkmnylln6ODNr+KhKALdNkQbPgNHU2/5xSE4Fi7g56SzgM0kFaUbKXzpPrGMQGml1WSZuWLI3ihx/wdrL+4xMLQS8HtPtxXgMroDoq2boQfB4uldObWzrfrh3cV8uTjZOzo6Go/HW1ubG1sb9eiTbn52eObZ6VMuzqbEOsWHiVydfYqiKdh5UICR9GkdtBb63imRXZ1db61ttEECnsJceZ0fbHz3yuFVgTbjARFVi3ghTO8HmRQIr3HhCjgm+jDu+0pC5DzxQkRUpRObNJMX156X0y4w9ZaU+8v99w8/GpVhlwi7pTWiYAiSFogRHAetf4CawD7gU2EfTcdUyFZx7EE7K1DTBBCQs0p848UlMNhQ+iNyDngirF4gTYG21YlFwJHqnS5Yq6k4pU6VKNr9ym3dqAJB0s/Cp8RQsz1hXdoV73UFXM0/mVDvg3cFxUDtBLIDxgpeXM/gUOpYZLwBFoIh5IzQZhV33SrwWQidVWsE9xTBgUry6d7xYkAWK15qcIr4cnwGFnPv89s0EOwsxhoXZuNE/A5Ir3jm1LeamwqIR4u53uJnKXRbAx+KRsSNbTCzBr3FekPMdSnTpBQtTWmX7eHB4a2bt7/47IuDvYNOurVm+vr6yyKSf7TmFJMZF+w+mX0q0ZA4Z01wk5toRxw2MKbaWTctk4+Ort6a34kwP7XpmYj8YPO7rXRSR0ejoi5e4W5ugYMAK+CziLrIbaBlYqmgTqkxA4SRxrFTJVVc2OK1tZc3Bxt1tqe1cLRasrvY/ejok7EOTbpa+Sh9ipDz0GUhaBq4LcDLcIqiToRDiW5BWKPQ0j7YmEgMNvFnZypAMr8tHzvjXqc5PfhIMr7zH8t+Q9kYiKvENXWLCmU8cgIhO8WuGJgfEWCFb2H3vkfn2Geb4o6DxMvqIit/ZyPL6lcLG2QUnxsgGDqNeSVA2THiCFBL4U11lDLBjbdefFBieSsYWZ7XBkssgnwPtNL696YJmn/3qnGpFupB0F/Kb2gloPQCbUVwKldpeMsvZgYeK+hiNHzqWVjvFvbp1shJDLfOhasB1Lp7FJYyf4UorNp13ezoeH582+7Yixef++HGmyLSaFPjwcJPp4ZlX89vHbZHvk7TDk1Hwla8GeQCrhM1kU5sWEYfHl29vbj3+PhRpP1pPl5df2lapq20cJhb2wkEdmXhUXRUMRMy3Op5aBACZ0jXp3UCPCX1i7P8XZOiMu/m39t4fa1MBK9+e79QNBCRy0efLG1JAAAghsSB9AoIyxRVIs8CW6XXmjhGS1DO+rejOdUuJDOAqAonqeOuX3iePcKOm002so5EdZXbis9WyW0xNynhZ/JCsJ+guarFJ+YlhugQ1Ao0TUq9s5+c08XQ5Gyu1GuKS4dSnFu7cmsFqOrl3SmaGCbpcBpiMYRF1jEejvMxG+imfvWiDqPZCu40da4hoqpFlLBrBSqaqoqW+iWHiksVwW0J9XuuAdVudgSNO8TpfOWmxUHfWGJVWDYNgFgnoKu2dqpUTQYZwn2P9YlYKcnV4SdjiQH+e6PT121FtQTDNahJ9TMOs+Pj2c6xzezT/c/n7RyqfnWGV95vw2157tXZp77l5bBk3uW4lUylQ74xh4NGqZiZNdrsLfevzz4Tkfpj4KeCtsSsSZm8ufH60pasfV2lsh26RqSzmIh0fvOGIb7BbaE/BoKwXUVeCiLEE66rNgkOjCKkqqoLW35n/dWi/JTLKRQ/XuSkO3nn8NKoDOt3R6BOGBVYi+csEj2KiuWscNvOQOSJdABZgmCUFhPtQKVB/417S5WYVkiN1sK0I+01UelcqzRlCGGg4LYW004DYehiYGwei0idGhM+IXE4c1Lu5SBarB7aSvBvxxyLPSuQr+BbTm/F+W+lccBIYwdbocvP9RNBddWnW2GaQymAxStRpbferQl4BdFWweY0oRGiB86rPQgafwfYOr6vvBD4KkD72VoxGpioIPR+Tn3my4XzUq8Dg2JqKKG1pjgCSrjBMC0KyfWq4Se/Jpbj9gq0lVTY3Lz1XDPYzCfgYoYA6sTGzei7514bleG1+5+9defd6/ufHy6OOqJtxbgKct9OSbg2+8y/2bYWQ0MPFMpIzgeD3SI5RaR+y/Wlww9n7bGSS53eY1SG39/87qJb1nYGChfys7IG36o1b2hqvRBgMMtkH20TpIpFYvfQ9kEVoi5+2S2fGD/6+PhRP/eUOgw69Kg9fvfgg/odXdHJJFYuAZ0Prii4fEZb0kmemNA2M02irQsOEjWmj7bp2sFdcW2KB47B3gVGwZYUXdoLqp6AI2L1vi6yl0qtnTirS5cUDRyFwfpFnGYDnUTZ9ogFIMQTCZ0ADX39U1EsDPNw0PZ8j0tK0rcUy6qVoJ7lmK9CG0NvRT9QCwg5onqYOVAoB0edJQuFrUIS4SCYpy+OwITjDAQ1miKBGI7ujzduMXIcpdOGGtBcFGoMOjIsuR4XQ8Jz6pXTG1fXfQyeC9EgRIZAaUG9g6Ww2xYyAjdNW+u2hht/8/G/dtyeDMug67ov9m98dfj1xemFC2vnNwbrTWmk3lQrLnUwEP6UD1Wtp394eKXrukEZRGFwkO1NCnqQgG5EVlT3j8vo3cMP9tr9aTOx+puep/SoXP7Njde7+ntX4Q/n9ciOqIWUnNwu1gscIJDHDPErvSjkd6ssyvFIGykzO35j7ZUzg00RJs6prVpEbpx8dXN+e7PZaK11pIOuV1GpLoTslZMHfll6UXGk+zE9EUw6lASgbU+CALhHN4AIkDi8T4yh1jki1r0Jnx9GjL+SR+yBEQeKWgiChQCoNDKwFRzIp6hOGxRg52gLoHA2iusJbdBDW3/XUYlnET5ARasrlMuvpWcVJzE+Isz38ci6vZoGWtZzI8fhFdB6EVACJ2KwVj3YAQfOItpKLiXqaYB1AZANQ2bWbKS5ADMnG4wFiURUjZOcvQcMEj7BFACfqB2ICu8SHFsT2ta3GXs+K/US4lK3AcYYEaIqL24+9+Lm80ftUdXp6odivzz86tbs1iOTR85Pzp0Zbw0S2qbi+6dK9coBl93yo6NPDGFFGu6wYd5/EG9TXRQkub841MH12ee353cfHV3QP8tMfvaDpezx8YUnx4/uLPY8itQJHaIX2VZPEm/ExAGyEl6iLROC0IM0Qc0mVkQoJU6nZlp01h6/tv7y1mDzFEWDvOq39t+rZDZXbxGCnrBC9OuHAFXzi0GEE7oxcyxO66EtkEQASmGEiAIFuXRDKbfBgwxCr/X5g1KCazqt5qxiRFaBYkwdhbIFvDRkuIMsNTx/6gwHyJcBMVDE+1RIdAJlJAR/EYs7jpDaFWnN9Qpha191AeA3IjKVJiPuBEBavvG2tmlUell3nFymc5254+qBbKn99WMhG1RFwUuEBn/EX9WMCCQtiiEiutCuOKyrYAGGeyUUbTA4iqqjeq25WKm6pGC4vUJDt5WoqbEyg71C9H5Qt0WoBdRX2OV2mUr5W8/8C4tuwa8Fq8cMy1BEvz66eXnnoyu7V28e3ao/DVvJKaHtT1QSXL5Uffvg/aPuSBWxYqALHk58KuAiZt5H04RWB6xDXjq8nGzxJ0zjT/PgRaZl+ubGG3M7Kc7RvNOEiAU9TSt2YlvERQb1OfqCPDAUnkywKxZAo5AUQihURFRnNi6jF6bPitTfKzrlRyfdT/bfLVJcbPacrfbIhg0+jjbfqGnWF/sU3pcJtPUES7qKJZHBIdXiLNIOkuJeg68R2glt6+W4EaFAJu/44Zko5D4Z5raJFMqWSsww8l1sL6BeKo9l8kFYEnOK6RYSIiawCabztKihxUSGVsdqB9ECQkq9SF5kRaMH0FYgcPsCBFteuLFCHcsgAqclUjzuFQvqmGy/QShRKFEcFAqMxvGKmCcBVQcB/CUICXNWXy0jUBLwr8rPfUNKkJZCOhJI59qTw37YGhUBGtQDaOtOAsyq1ylZ1W0Z+SE5qYpKJ90b26+8efY7Jh2IljLiVHTYDIuW27M7H+9e+2Dnyo2DLxftoqJtDQFywG96MCp/sv/OrD3xb+qqdQaAX7mFYzeYB3oZrBGppWom3UiHb++/P2uPf8bQf9YHSeJaM31z47Xj7gSrs5STzqc8zwG4bnQDr1Kw9BooFtiU0ZaWzkxQwIKdO4nObf789NlHRxck84jTe+wtDz4++qQkEoVdE0M8eaPkdnpgqliR48FDi4oIMUIIcwlthWSTJJdnkV0bDoOghIaA4IfpO/+A3pw4jMBvTtAwkFcVrd+LCMmqXhSaW8ix9W9X5AwAh+YZLXpUF8HZilh2PRDw4Z0FkYwbaFQSqOV4d1rzXtwObKJC0fAZq3N/IA0nkbb2olvw/pOqHtCKQlJgGdgllQKQQ7BJnpuGUTbzhpUm41SQStdG3KAHFmjNQAj2PUB1GMgE0qmHReXFkjQaON21J5I2dUB2G0rPzRb56tAcNRDE3xxAzfyHtv6dF/6NYRm23RJrFBR8/OHcVnaOd/bme7dmd8+Nzz6+fnHUjCQ4Twh0RKv64N7Z2weXTrqTSTOx5A76A6KTF1HjfgMqmecvWNKwDN4+eO+4O5k2k8j903h01hUtL06fn5RJCvtIQg7mDST1F8lVHJqSAWIdqpk5vJ6lC/p/PS3FVKSInnQnL02fvTh6RE4VZ1kg3z/8cG6LIvjuTYMXPCKF8YQgFCAswpG9cTzhMrkiQpskGmtwKi9IawMgGIgRJCAogcVSn3q2VYSp3Id5SEmBSk2CPc5KxAYKT2JXJVBffBCgPFS5GgeBthS/HJmxBOhiPno1aqJHdYTYuoKryLHALQE7tXa5QYDbdZYB0W5BobJvQB7xrotdJIbhqeQ9bMPd/Krg5Qbc6OE2MNbRz3ggK60jLkUZ5pf7h5XUE8ws6gwhSqg0GiEkarCrBk6WFYhrAazRaoS1vGw5xPuSWQeM0cFNOutrnECwouW4Pf7Fx/7Ka1svpCqLJPHQU49eExEZNkMzO5gfHC2Obs9un5ucfXz9selgwutiCNgW6sBAm69Obt6e39X6VYYIGre+BXh4wObSKkwg9HIqtUjcX+5dnV3/+eHPIZFPAYCIMo8Mz7289sLVo+ujMiTw5flg1kaBP5EbiQIiJAGxNtNIGAm+Q1Va2V/Xmj7v5i+uPbfWTOun9fQ0VpoX++O9d3zGaDXEgz/MjyrtiYySIjBLBtY4UTkUCtUK2gJYhQGqHBHoiRAGbPSrUWa+kpxC6uFkiCALj2iiE5G+IuZ3FHlCqr9fu/nahampavFEEewNBdo69qI1V4oKYqJWvMsx9C0os4q+qK/b1ik7zBBxXBYgVPbbYvUunA2y+C0RbgPSu1oceJxDkYr5XajuPI0zUDFQweoC/c6t+i/vsfFgxCpVzqwyaGrkK6KLFxK3pbf2dKmjZawL8iIuVfAWrGeaSat72muucTb1zl8VN4DiVgdvasGRcpeBFflCVMR1bwfZpbUXJxd++fl/fVTGVautOV2nKqgv7mkuXnXQDFT1uD356vDmO3cufbRz9XBxFAbrg6xqvR1S3jq4tLc8GGjj7wUJcmnbhUEXjoG/Fu1SdX9Ng+r1ooOf7r9LgDiVB9pJOTfcfn39lePuRKXg8/6GCm4oKeRTStqDmyJ9/rhmVQwNHM6qiz2u0b12QA0SHRFZdMsLo/PPTJ6SPradwmIBbW8dvMcVCWIFeCIG0RYLq2/RXBLIDPtAj/TuHpiY0bY+ENfCZPGzBN8yTixGppMvpBDCuSJi/lk+nylTs/Ia95PLng6/+FenCN6BT46bSyAzoEuokarFQQf9C7sxBWN0nlvQ6It4H0SNUo2OrfZGa416TL6KqCOT9CkG2oLbSh2z/jADKkLygqJMsdWqOWyGtsaRyWelUCASrResmRzXsIPo1BJIJSJS1MmIBYOtFUOKOB9EaATg+AwB7JiZ0SmuzIoZIbVUbxUQbKw0dUa17qonbObTZqU4e6quIsJ6wnpq0knEfU5dxNTqvf1t1/6HL/+7z248edKekOr3g59OhZslBI/63QLLbnl7dufu8d2z4+0nNx5fH67XOxag3uOJyo/33r6/3FtrppHP4Gue8OoJgFwkC8fqPep4y4g1Wn68/85/nJqtb/+o5aG1blRGr669uLClFx5wMRRaWEY0fb4LjgySbl3tJOuKkHSEBzZQCnUioZKJaCM6s5MXx88+PX5CREr0fd/2wXL4+fGNe4vdtEbxOaGpC5qr0nXsZgET0cSgzoKN4jl/P0IeMB0jLRtDVKzzNzojLoh41HvByyGE1jYEmZQmQF2DkKPwTWW65DpqotKZ6KDfyUK2YmpGA52QxtcFTshVpezSumvjqeqwABQkUXTArdaNeSSJllbPimLUYGziiVN37VkXpYdyAhRMcmUF1VcMGkMpqqqAWEXUa+AwXkJwaCwkvB5it/SgINBHgfHCEue0XMP9kBCgJIQNAy09BuqL3lk6kUQdetDWEvmsAg6c0FaA8oizWv2sfpBO5Kg7/jef/Vf+4oUfLrql1M8yG2tSzv6+O1J5M7+oSzp3j3fuHN8j2g7LoFqxk25YBjeOv7py9Inb0WiXTFXUrw+24YgkYDg8RIRiTZHy8eza/eXe9vCMnN5Dtaa5PDV+/LHRhePupKiCaSLx0EVlZOxRLY9+mO4BtJUae9AhTCLfCLhqptqcdPOnJ089NXmCXPu0HhWwfrp/aVE//AbMcyvX4EPj7SIQYo7HagpE33510kLuLxax/iDaCvr1Fd1WLIEm5qbpFA8hkjvKbK7T1elh0MS5wTD9DTPNfhA1K5h7Vk2ZicFGK1HGZje73xq1pE8qVJfqwLihqjJsiAwOYRHnqGVOOjAVS/9QSVBBC1XzGMVQ3IEhKXht8V489hjMrYh6a2zyxfv5OBx8sw6lkD/EKQl2HM05imsCbgB2vvXUqgAw4thTG0LdYCb1+aHrNUxMocQZd/awnys+CYAhcBGLSoxBiLZGZxgmiibOy6b330qKGnFmpqpFmuP25K89+pd/+bm/PS7jztpSf5VTWZ4kFuTL9rKi/D/6MME7RUvRsnOy+86d9y/vXLk9u3vSzik3/P79P/7s+Ma4jD3I0DxLoG3kXh3e/Wahcyn6b3SlIiqddW8dXHJ3kFl9uwfh7LHxxRfXnjuxuUpR72F75dGgS7LeOu8Wc+StHve1OYFkL821MbWoOrCsdmKNDp6dPCUiS2vhm1N4VGImIj/df3feLUT9R10BdqJARqWa6JzJEuxWNcqDUJVeQFcS9tHkOYPpVEFRBaBJsgNxqacnqP8TIeROE2ErXfO9hpABr330ugSLas0BaoBVjxSkF4uFsxwPj3qNQBFXhYLoqDNVI1szUB7HAxd8AQIuBqpb2tfEvEOKOLAiEYkAD0FbDQZXHehV0y+jyXMC6BBzIdaxCi7jxVSJfwpQFAE2uslVESQ0D9GWpZznBtqqwoUEnkq1zPt8cwiKFcSNXg4SMLCg+XWDkm86b2dHsoq26qhTQxgE1IHfxMdELXBFkYHkIFsO26Mfnv/ef/Ly39kebZ1086JNMNl6nbz6anSBp2uyCMuKG14wlUabURncP7n/wd0PP9y58uXh1yfLYxF5++DS3nK/aKlfFeAmui4AACAASURBVGC2mioUEwBYYLYsxb6jVKMZjNvExH6y/w6B49ujT7jd7NHRhRemzxy3x0WBfujoVVDBPZmNiCCOI7l+aGLkEbwra3MwqSmBl+a2eHR0od45WxB4p/IwsyJl2S0/Ob7eSRvhDwa62nCgsNc4MN9iqLP34Et7aBA2RcB8nF4kwgYbpBdZyZCQKyTXYCPLYgLXxBMRQpbclEogCobLUI6yzt/MZOCVULEWAl/FE8hcIglHaiCwrsZdCNyBUufuRBClnsCylA8zFF2QLbAuymp1FQa+DWq/6gHgvGMnQEhAXrxs0N2p1otlmAf2ey0Unx1uDnJD544OgcMWO7o5cG9uF/vx4MXQggTnAvnqbAGFGkvI1dMSWFHoSj2GS+qYWQr25FEUMVRTC1fVK5JgiRh+d+CoPfpLF37+P33lP3h0+sjhcjYoA+uLhhqSXOgTtdOyCLrwAJUESEBmIo00g8Fgb75/93jnibVHr8yuvXf/8tZo08Tw3QZct6RUwRB9tCUNrOaiBVzZEXt7/30BYz8tqBWR1tqBDp6fPDMqw846Cmjgs5LyXBh1K8lPrwThBVxT8V5ZW23UcbIuuvmjowsvTp/nRU7lUYtV0fLeweWjdtbUnQNhcPtaSC0tecSBT6knUElg0jtmiEMCIj+uWYGmXp4KgMMoXgSik1ZXfBfBKTzXp8TZOs5hIAmIJ9mOMumUxYPHHTMAu4N7gLZYFYoAThOCJusl9hFYQhAICW0RxeJmzJFAI3COD0NbWjfVuJyhiLg0rmFcTG81IZnrFancujGwX04BiGCjIaCir9H+i/Guc0Y0TDFZBefCA8HgyQFxWYC27lw0goqkw8oEA6RtSIBqLYzC20Uy2tbZa6LGHBvhk9HWxIqUzrrj7uRvPfU3//0X/q3z43OHy6Ohg6z4LIUxBNxGIVMPXFhOEtqyghii35HZmtKo6uHy6Dc+++0f3fjpY2curm2ujSfjruvMIrAwd8B1YBMQKacK7IV6aWJ6d3Hv8+Mvn548cVq6gcDGIvLM5Omnxk/cWtwe6rAL3Zpo61m0ArgZbQ1ZrQGUKPIpCyTyNdiJiiytfXx88ZHR2aUtG2lOkbO31hWRdw8uH7ZHRRufGAqDhEfCFxLUUU2we4KsFBQIwEAEIjFKmVKkLGSFMRBfZG2j2Xu21VTJSFphbbaoIDaoFkoCEssU5L6vZSCEQbWMtgLHYZEEJI29MQEBw7QZJSl4FS/UU6tai7QGMiuIUhQBddv7SjToHKfyAN+KTAYk8t4BGtGpDtCW2c8OztkwkVZQNaBTB5AGV2KoB3sViEQ+jMHXGgNrhBwQE9HTQzyHBUSSgK8H2HtzKiqEDPQDTMfqKgOL94judQSK4s2RNFQuE9Ei5aQ9WR+s/0cv/3u/9ORfnzbTo3bmIJvYK1NIgQxoEui4KOyiibKk4+gwEzXpxs34xtHX79/7cHG8uLe8d39/bzpdO7O9NZmOus77TeVVOBDSjNwnpYqTIKfgokVk0S1+uv/O05Mncr/y7R913GenTz05efzzkxujZuRfjBgMi/NxDxML8C6yEkme2JwBbX1LJnGtWtJNVFtrN5q1l6bPVVuf1u+oiwOFicgHhx8etbP1Zs16M1zBr2CBgLy0tJ6SIA9FW4wYoBS107M2F0laT0hvLRIvaj+jRVLqr4TQAwWb1/TD4plns4noIM3en2RqwbLQZ5M1OQNt2dLjYw4I6ArpqRg4eAq4EzkMl8dbHkLqSEtS7OQpQxDzg/UreKH4Y46AHQCmICFhYi4QNqSjqpdUFEwe4LVK5jllEesh76qSkGIgsRJCTnhR05pjX6vPD1CcBJbX0KotCgyH443vll6rf9NrDrvg9qxiJjZrZ3/54p//Oy/88kubz3fWzbt5BVnGh4/s7JcFiz3NCtqGJCHBbYn4uVmUgQ5+cvfdd3bf3xxttNbOT+bzk8XR4eF4Mjl7fns8GXv9dF2C2UIIg4+wapCgSBVVnXXHP91/71+98Eud2OD0fpZRTJbdcnuw9fTkid/bXQrY9IPJmZUETJt6oiDYUIAELQh7W3ZZmr0tKrKw5cXRI6+vvSx+T8jpCCNVNBjo4M7i3q35nSLhRgYeoEoTojGWWdTrW4DFXjgQOBG1SvwNrrXSoUoKg1TJ6ivBRusLfbSFB5ILJHzRW0iIUT20RYMramIDSZj4gC6a+2titkajnGoOXKoGZwNpvGIZ7qFOUU7mxMkmeU+pnhJpemjbszesqsoY89O4ke4tv4kGS0ZdMVZGQhErp4euYvxsDQgerCkFFYyYDH9JUhIAuMor4xDQkESrWZ/YOCiPDzjzIKCmA2Nget5WJ1XDt86qPQOVEAIS67XWujrIi5vP/tvP/ms//8j3Nwbr827emRUtsVpCJS4VTuvltIvGSfDIhxWfWArJTmxSxjcOv/ztm/9vUxpXA+sPlC0Wy+VydnQ4mU7Onj83mYwZtCFcwEw1jbnp0U8Vj6fWuquz62bdKd5bmuPhxcmz24OtpS2hWVfTYmsjoIGWdNhlKBoLaj//ORRbBRKdCg3LbrndnHl9/ZW6ZyWnszJR1fotwJcOPtxZ7g2Kf00Xu+nM+EjfBDSWaCv+eqBtZjxJ4STIegqDa/Ui3zVLDCqBrZpQFYnoM8xouwqyaW4Cs8fBeeYogcIqOICAmZVAyh9sA6UGbimZrgNfgbb9FE7MTBLjClEWUV5ZGjakHCaL3zNgosWo3UhGW+E2PJSoqAyYX/6zeh7AWm978Df9Yw5CHbX+sRKGlYAH2OODEQZYYMDUD3aHHFpP85vcAMm4n0Hrzyuof+pAOCuYV8TrE/+I90JYjTyDHzRfTh9yNZyEA5VXN7PW2tZaMxs34/Vm+vTaE3/72X/5n3vkz42bkZnNu7n4z5NYakZAjD3CUIuiXgSe17ccLdA8UFwQKWiszMw/gvfO7vvv7nywPTqztKVi2Iq2XWdHh7OjwxvTten2+bOT8aiUIqpW70fw5DDaI9GoJImaqWqjZW958N7hh29uvN5Zl1z+rR6E7JfXXrw4uvD58Y2xjutX/WM+wkbQgEcSlgR36yc22Z9FQeeDZdU84bU8OXliWIaLbllvST6Vh5l11jXaXD66cm+5Oy0T88oRSMqZ+yJWS4ggDHMogdvyZhqUHrP6Zb7WdZl9+WQQxAq1S11X8St36GyYaWwww7Yrum2HPiOHNxbCvSnnTGQcrAsDFFXp7bvUCUH3y2omOQ6eBNoGNRZxAiZs3AFgoTwSBIE7jrbqqKE0twDjKDL4mMrMrBMD9DCb4/YZapY4yJv0NAtoFETAWLJ3zkl3NJyRhJ5EHlhaPJoMbNPhhRxLBdXJEr4mctJ7aHov6AvhM0ctl/rAKZyus+CqB1grXWtdZ11n3bgZrQ/W15rp2dGZP3/++//8o3/pxc3n/N2uS0oF76BIpR0sNS0/dtcpDiM8GQ5cAjQGjTUNyuj28d1//MVvTZtppU6arZ50m9nR7OjgaLo+PXN2azqZDgaNqNY516InKUaZXU5mVESk0Wa/PXhn//365dwDPTU8qvuHr6y9cHH4yNXZ9YlMxLpIQLEOyZn8vCILBEO01GI/IO8aT3S7inTWrZW1Nzdel9P9InMxEWm0EZHrs88X3WKtTDuD9B/TIxgRYQhSvsykbvUYKNEWOW0AIRFgZB+mDHcsRC9O9CU+wmLClM1om8qbpnHASXtoKwwhoG2vrpjYgMUAIa1+o2XFoHplv6kT6FRjMjVV3KCKrl0kzhLur7uIm6DVyb06aRWBTOjHSpYg+Ca3OJiMCW1j1zndhGBxOFKNUKF+H1TFwtRjVrM6FHJ5dDrWBbIEzpl3drzggFeE5mKCAVrpWms76dp6m1LC2Iej7cpj9SB7+MsPHK+ijTaNNo2WQRlMmslaM54MpmvN9Om1J17ZevHlzRee33ym0ea4PTnpFggGZ+heUwK1s7YR0eTGD7fABVBGqCHXywFUkKkiKkVFfnz3rct7H28NN9uu5Xl1RqvFrNHj2fHR4dFkMjmzvTVdn45GIxHpug44ZL30QjLUpTTaHLaH7x9+JOIl6FT4rEu0thyW4TOTJ//p3k95ZfazpAJwEExLQAjRIxNVgixPiR6D+ddauzXY/LmNN6p/Tk0SMenEGi0fH127tbg9KkOTTlO+kRICpxQriimnksD599A2LdOICBrbERpZ5wNTZCDaCkCQsOsZioGC9rJyp5lkZSAXDzEgb683QjWvLw5QRBxtiGHVOYLPGAgxCtoI8SahbZ0sFwSwFJdqlCtXipWiUBLwt8NS78YkgTESGxIFuioHEU704Soy2lT6hye76OlYwEpGmKVsIatoG7vjAo0owTkQtXfjLTCift3yLz3511/ffnmoA+6rWvWdiPYSpoed3FzGWyu4Goc/gMN+aFEd6nDUjEc6GDfj7dGZc+Pts6Ptc+PtomXezufd/Hh5YipFtKm/1oeM7rsisMjj2GCPqK70NubOJhmJp5i1evD59Yro17Nb/+D6P1pv1jongMZaFaUsWURVm6aZz+c3v741no43Nzena9Pp2kREurajaxIZh9mtNhnlq/mte4udc8Ozpykd4L7jN9ZfPTv8vcP2qNEGXGIlOelExbukUUHNcAQ5lwBpLV3Hzd+JbQ/OPDd9urWuoLX69g9Vta4VLR/Prn11cnOkwxq9mhaA6UUk4t3+UQn4QBsfjrawU8pAbMeIY4Um3RbWZF3DviLA3ggwLL4oeHSBpLkpCl6Ak7AbTk7hRAdCnhETRtXw9Sm4i0iKN6ItXkFpehjahllw3zF4D/4Vuq2wl0QD6QRKcPuBXzfJgEmw8It5sXtQRe7fTkEFREXYz0tIuw6zPvkVdLB8vyZO8osigeOWVaKO89mqYk+ayb/4+N8YloERKZk+qZGx9F+iJ0IE9uPZ+ZR8FvLR8KqZmXWdmJktrW2tXXbL+/M9EatfOdiUgkORMBaoQwoJyEt8An6QBMVIP/J/Sb6L4k9UqUZuSvm1a//wy9nNaTOpOBtStVsxWRWj1VeaplmcLG4f3RlPJusb0/WN9bX1qZh0XecTjQaMeWDDMri32Png8MovbP+FRG1O4VEv9Z2NV7aazfvLvYEOuihZPZlPekATiEO3JhlxFW01njDMu4GW19dfFvfT6dxHIaCRIvLJ7NPd5f65wXYrLdkf3I2aHPjlf3OZYGKAg3514br7RQXAp5rYlFA0wGKFDAiXVukNxFwDcvaVhP7cHCCzkfFEckXJ9Nb12dRsA20B1Qh4QzMnD6KtP/UKuoq2wkpCigqRwDFIWFdQhAPInMw72vpU2WElBCOEBBlG95lvvJVgfz1gZPpGyxq4T+n3YegAowTUJdFAiMeMuHRpETPbXxx0iXoGPmKetvqWv2ArxyEm0hv59TiH/9I0HGveQAcxaSivEQwIEZQ9uItKgiVkDUXFWMkkHSiW0yB6BcBlNyqj3731B79z8/+bNOMKslwP8dbbrnwjHVK3HjYYNMvF/N6d2eH+4WRtsrW1uba+LmJAW61Tol401OGdxd3Lhx//wvZf6KyrPxz57R+QDtonx48/Mjr76fFnIsb8BVYyE74RbSV5rY+2K30rzxUTG+rw+xvfcXOd8h1dze5i77PjG0NtrL7mwwLpRMgbNJ5I0m1piPpOgGzqNjKiBdqGch3cjikufbS1n/kxB3kgAVdeDMNKvySIxHkJbYX0dsDEkBW0TZcyzhO6rS8LCp1jsKmgU4cX1KdL2qBuT2hvK3crBaOpe2Zkg/ifX4NJ3ENb2DykDGJrn2mxRPZvrMdNwKwJ2eBVnuUA1UCBtr0KAyWBSne9OobHgmuQNdo0RFDqBLBBKIr9twJ0UUt44QTMzgaoR7IWZGrcG1dwP4awnbAUwlySC+yxtlB+JEEeqw5sZcgQ7aMthotwUVEpd092f+XqrxvVeJyu6L0CbRUSFPMasQ60HSyXy73dvdnhbDwebW5vbWyuq6jrtqzdKo3oSTe/fvy5iNQvbJRMLr7FQ+GpV9deevfgMioHveLyK8rwz+C2ybuBtjyFJVAR6tZo+cHWm+I85BTWIj4xE5HPT258evzFyL/ZBzGOCZNDOcMKGsfWm1N9aFFRgvUDaEuAZsvtwRYb/H3dFi/i3paUoX30JAvhlITyZ/Ck/rmAAcrN7tAiBuDzlaqq1e9wUK6g9sb1dAuiY1JfBQApxQQjBKvfuZnDVL0QVkKkLuSaWf1ov4pRvuWtZSSXrv7UCTkLVVO/T0utF1vVYBltBbeCCfTjam8vCAblgFWqxiXNgJR2/wg0jVCxnU6jcimmrqo9EUVxO6vHvYeh+h+wgeNXPUzirYwvnGm1BRQOoSISJzLJ/Jli4XGsD1MbMsQzEK2GCILPfFeGV0JHht6gd1mYsdpzZZ4YDrqBmHTrg7Vf+eR/uXH0VSON1OhSqXEZAi7qtbtK1KqPzSt1fRgCoWmatm0PD45uf337i0+/3N/bp03o+k5sWIY3Tr76dPZF0YJu4xQeVm9cFfn+xnenZdpKZ6hsTgwcODKbqznPt8Qg5NQcEE/G+o8yTTRBUify5OSJ88Ozp7b9xRWJichnxzc+P/lypMPOpyFYUZSvpAAYywlWpHhReJY6NvkyIfv6iwJrENQIi4QzSqL1US2dzGROPAy1Hpas6QE7G0oaoprYgjphYXDF8cRlMdGBONUETMAP5gQqt+VeNb3+moLc1BSIk7ESrzp4rlyMgPZmBmkeX+a47RdTQd8JyuQrDS1Vo0H1c934GrTXiTCI94O6LdCAnGoltzwCAv+F3JRNgl+CTEsguiaOTp7n13Dz9o5gwUyn5NIDTUXQXqcy5vKOPGyeTAsaMm7QIwMBg4BEgNJOJYHTjlXnewm+aZ5+gRAQ8i1eonEtEbHWbGO48X/e+L9/79YfDsoADDeHDUI/jU1CzaGrZfC5k0BbbbTruuPZ7NbJyc7d3TPntzY2Ngp+D6MTG+nwxslXV2fXn50+ZdLpKd3dxfD83uYb02a83+432kjCC/YmJEdhlDAVaV3fQw4NquHtsO4PNr4rCBFyiG/zqDR/oAMxuTb7tLVOVPF92kgGf+ax0m+xta/bxluZ9kosUyRWJ0DtIMv9hdegkIQ/At22mphkw5EDyeCaBHXbuBpwnBMTlBBNntJohX1WIjaIrMsddBioHpsSzM/HYrxD9GRitkBGEK52xcM9oEusWBxSCRT1MwsZ3wJ36qfPkm5bevgjmDTYJgoFkvZhaOs816wIuAGYX0KLktTgwCdNY6Zo8NMwUgo0SaGFa2BYQFW9ioa+Ej/lIPQ8GVAC1vCJ8wuEJZwqqSxxOhFOCL/sVsNuIpeKEGHshvc0rTMGD5gVxB1aA19h19n6YPqTe+/8j5/8+nF7PCqjzjovzSImWiIXYOFUZqNE9XXb+q9ixWtN5blm8/n89ld37g12t7fPbJ7ZaJpGVUc6vD2/+8ns01+Uv8IUlNN4qH/PwPrTkydvz+/WidXrdwGauvKrAStoq+B0GnfduvNWMIu86Yeb3xN/Ndreb/mol/p6fuuj2bVJGRm+h0yC8WUMIpsKcBTR9BsHwpkTqoikfeCLNLJvto8/r+1Tj/nh1xV8AkGrsF0Ws85X7j8y+te/MwMhHpiKDAj5GK6irahiQ19AQiBKVk5t4q0f5u6u5z2rinu+COBs39OtYJpuyOg3w2BeHj01aYIqBTXMuq2A2NGidV3F85whiKmsoG0ldimpEAqaVySII/S9qQQKgCPMQ5EKERGXTGwvAi+fj6HAWBO/laCxlswjkbcYgMutvmSGxsRA/EJ9jUsoo1cYCGQazk+LoinhnchwYAm+CjDAPEu6eQEOaq2bNOPPZ1/9tx/9yldHX68P1ltpfU2KrMm1u5qHi7Qe2tJrbi78jxq24iaQdrm8c/vOzt2ds49sr22sT4eTYTO8fvz5UXu0Vu8nEz0ttK1z+8HGm+/sv18jgBlFZRtHWh9tbYXbWhwdVqbaICAVk2b8+vorNMi3X0K9Tv3MyM3FnY9nn4zLqJPOWS7CUaL1VoKmxCuyom/g3UBqIDJfYUZZAmsxEcoIMIKy5KAUIyMQKAJ+RSaJdtyBQVVW0BMtKvhFtQR6eIls1+QjqT8XWskEArjCqm9rBT+qiFh7L/M6YQKRzepcDY2cMB0rqYJGYpADHBRlRS/Fjgo0SJdx1PHUb60VpapBdsvCZnjDxOdX//YL1KmjgXSfYB4i7IEjnoi2oEEeZa5v1HUICT3WQvMI7JueI4+cJ3slqZdUIe8O+zmcw940D2pLfcWjK42mbv0aeJRZcUkNgRWFXPEWzFXXrrEuNBJ0ffTtcVkfK1RmLifm6ZyS8dd13aiMDhaHf/fDv3/5/pWN4Xprrc+VWps7yczUBBGhvkjI/aALXjeiUotBTzBYUry+l1JM7PbNO19cv3Hn7r3upLt2/OlXi1si0lmXS9efEZF6D0LpDzffbCoB8Bg3KNS+NBFsngBTmKyJ1pnQb0ArcMZKEq2V9jvrr02b8beZ9s9YyGfHX9yd3xvowO1fTewbF4g2iCFQbxUrUsCWsv7VaSteSWcJQBlJGbKvEwcwWU2nGDmvM2waTIRbShWaKu2FKYnFKNrIdJAURCPWiLkxQjyrBk5orK8E1ms5XfHZCziZeWUP6prupEEj56kXRIwMCJveHrQoMm61dFhiIJiIYXapcbagKXXyiivWksNrkSLyHh5/EfYWUQjM8YkGhw2ClvMuVlGNOaQNdFJTcPneTL1cJoOxuzMwEIHRVu6FAl0QEHsh2Fe+Y6j8pMDkESYsuWJwUJ6n0CaCoPf5xVwTH3ZLiqK6i5LVg+InU1iaD3TaFIyt2bAZitnf+/hX//D2jzZHG8tuSWuQooJagIkqLCg0cy0t4nynus5Ynjx+/ZMjqUWqE2uaRsTu3L49HI5+vLf3zvalF598blAGIlJZbV1LBOuf8aFw4mvrL22WjXvLXYSSgGnguobZ0r4BH9HPhrXd8gr2aCJaRFtrf7DxnVP8ALEAgYqWWXv8wcGVsY4765yFucGN3QLAgyxbwG2JlcJY8JWLRiT6Wh4kxQpSmUIuGK4KzmJLRcAMsolUhFsVbrK0Us8LEKUVhssH8qJP4QXf12Ieb3XXy4DM6k4Wq0Yzj1sB+iioYyU+lSHgXMUaLVWjzOgSt03nWgJGQ+nGjolTbhO/I8KpDDc4EvCFL0iKnYlVGoSVGtiPaLZukIMworqZ/FzHaHAxBbFQz2q3k5Iz1pe8iAWdDMmZu/MKPuqSCboKUDdaRRXU392gwW3d4zgs5pk4+Oo8BZTKq2jME8hVixxeRAlC3+49jeeC9paPIMQUHS2cmJvVuy//7pX/4f/68nfWB2uttQpyr7WLYq4FCahXhCvIsv2eGRQtpg9MnRmuPezOhKZpiumXN7/+J9d//6Pdq18d3py387pR5j80jQj+WWj0DY86h4EO3th41bPDMnwju+sMjbzPdYOaJcRWIFRwXgCMU8WltT+3+Z246Gk8gKCyu7x/6fDyqIz4DcDKxlvpM5RcAWGvM5bkUq8TRFtDafFejNyWJ/IssHsnVgDoKFGRr36kLwK8SMED4uaEGkBmxCXCrgBPJTNZg1NyM8GiMsicyakBS4LXCI9I2q761HFMUTkrZGDyYoQIzzhzsICPmC7ODBxYM58lXfCaExJGYm2kKBiSKQfeyYBlpUp+yvdTRCCwWOFqygohvQz3GYBPoTh4xJCKspBapl+JM7qfpTeXLLGyrNNdK8Mn3pvMQdLJWYL2kctjOTGegF8nVmys5pY3+M3oYrqJs08RVX3gh/N8jwkxs0abRbf8ry//d7/x5W+Pm3GHWaukuAFHdlB3N3AZdHjQIB8Xqw3xM7VACj2Bf1fHd9JtjNevH3720e7VC5Nzt2a3z4/PPjJ9ZDIYi0hnRr4gIhGsf4oH7frDzTd/d+cPpAgSuZZLMzZx3pu7lzA5vAtUIreKMMGRrbWPjS8+MX4Mwf9nmOfPWgIw5Pbi7iezTzebzVZasNBI4liG13tQK5QEESSDg6tbf4WwOxZideks2KfaFaYgxgGLOVCM2EPb1HRy9sL8cGXRcoQ758BKHSwT65bAXxkEFLoleplLSo7+GsnLrSdJ6eVqQr2YN+DiTNdxGNqNv5p6PUnIm/DFYc6RF1ZQusLQO8oD4AIne2+bdrjDBkJwgiHY7shqRCaSjblnuFNUIo+MPoqxVReHitS7A8Vi0ahRgWjevgCyPCG/AW0x8ThIiFuI1Hgu2bK58tSxGWfCXlDSNXw9UXpRSh74w6LI+NrQwjelOWlP/stL/83v3vyDSTN27sqQRp1KmN7bqECfTOt4BaMVLAp0eM1PpljGjTtEhIkNy/Dq/vX95cFTzRP353sHi8Pbx/e2R1uPrz86GUxy4FoaWf7Ujz+3+XOtdMOgGMmqlceRfwjpC5Ckj7a1djgxBjQV0ZnNv7/xnWmZ1BGDy3zrR/2uhg8Or7RmwlkycbCgAN4o1qh0vkwRYF9ELo4ibvr8A20FDEb6aCsZ+MJYQRnJhU0ehrbgqCwQkXYKllGNDTaiFNYSxGt+MhAjEiDieJNAlTF7cJDqZUVMgK0PWlHf1QbjZMX3n4SzBaqxQgsEac/xFbQlOgWIVe+wnSA0eg6GMhTjuDIr0Ohrnktau/Sj2cdQyZgEA7B7FayNUJNRDOANJEwoJvSfrKKYSDJfQlsW/Ae5rTgx0yybEm0tF7QH6gOs3q88cFR/niz6HoZRPThPVBFPkFQvMic1MZFhGe4vDv6L9/6rP7j9I4IsqlZKVzcJky9FikDKiNLC+gGCkWtvZaIJc3pVS0MMHJbh17NbXx/deuPMK0MdqurR8uhoeXT3ZGd7tPXkxuPTwTRSGzDwJ2IZWfDF8SNPTR6/eXK71A0xsBkDubZ0uDubXQuaYiZQBiY0Jc28m7+5U3RhmwAAIABJREFU8fqkmfyM+fwzP47a2dv7lyZl1ElHsoUgo7cdQ0RyoIL3aQSZLzexVKwqgXc//UmKfSS/qq6cJdJDQ0lnaRrReNWK2v0wV5XMo/BKXRfDUTPEE20Ltwmq5EmaI8CwCrIVNxVqXkVJYy/qAKEIFBfKXOTwc6D3SVWY6tTQ7rlZa5TFrl9VzGo+8S1sKrtcBeyDtIZT/KDK4wwESgkwscOn6sDrm6RQnIWGUAXaxinuT/X1eQm06jIIDeo8vr4LPTTO8+Nc4OZllf8XLgXX44DqUpDGDGFrsirlbPEO4Y6iJJdXA4OaabqoLxb1SbT/lqR5+qU4aZ+M1jWmRYpqGTejj/ev/Wdv/ed/eOdHk2YsApXEM0m986rmURUrXhMr0WO/py4OOpdz55tXEgZrnasixHCIJYsh8msKWVOaK/vXDpdH9RvL6jdJnrQnt2Z33r37/oc7Vw7mh3SMkNhK5eSMoYc/hjr4wcabS1vWJDdnr4a/6m0HaaOiFkBPMK9lfrRHnoFGeYEa6ODVtZdEZPV7e0/jcdTN3j64NCwDk46kxh3vDjGpNMjcS+o8h2UiyrvGQsTXFwTWDBCJrEfBrB6NY/iWY5wJrWdOWv362XTCt4RsWom2BhbomrwZ3xIUTbS61fkOF9AN1IfVTEtUTbVksUDwDNOo86Gm6WpJKHxQeWsvUWPci31Ftd5bgYF1ALdQEEgy9pi7ht5DqK0mV3A2L+oF1BFiV6brAt3W1Q8n42KAByH+IBWdzbIUAvFFpCDIDUgowv/mYkxbhmLhVRbKCAuw5LPqBAyXhF18FnQYZyrOrgEeIqb4vQe8ReSVQqnHBwn+WGT1sopCXAr0gaRh1FpfYF4P5oKyLANtTOQf3fjNv/fx/3TvZHdcQTYURkedoPrUDFTMMOQqW0bk4xo1WIIz9KIs6wlYcMSDqGr94soP71/ZXx48Mj7ftfO69kYbE1l27d3jnbvHO2dHZ57YeHxztFFbac9FR/SI4QcfjTY/2PzuP7z9j/Gd3wg7hBCCVESt3uygLB5Q7/oRYQK8U9ETW7y6/uK54Xbk1Wk8WEuuzT67v9zbbDZaa6vfyKYV5BV7uNZZZJBibc5ZrQOqAVXEtH5UA5iVjFLXGYEFHHWY60JPiIzNsZtSy4ODnxCh9dg4igdWdE8ioir1pxyoJ9S3sp4FtBURG9AkAUsqsA3yjyyw+irJbCoi9fecvEhFX6omQoijSckVSrQZuGBuACMkYqfM+YibjLDLwiJIEwdVzgM4JIiESGHvqaOK1PgFutcpgEym/jJ8rcGHMmYGZnDnpkRHicnB/QW4ljzpXgf28a1Ait59/nFtWZmnBUQamhARiCWgXAZEdFjXaIqoq7jS8eBenQdGgsnUY6Xb/vwHTkZleOv4zt+/+j//4xu/1WiZNCNQv1ojk7rumlN1VfZ54IoyHGgBujB8JmHyukIQYaRsT6+iijAswyt71/bm+49NLi48VQwTK/WMnfn9e/d2zwy3Ht949Mxoq94EFmj7DXtl1WGvrb88KkMuiG42uFVVTDpnJdTVPRIQfZKYg8ObNaon3fEba69sD84IQP+0oLYu6if779TbZlPgWj4qtEhPjSpFAklZnOuKKIUxErIcQ1cn3MTQAZ0mcGrMJMJPkKNEYQ0+qxJn8RSYizt4CoJSJ105pQefsXpLRJiJ6IBIGmRBnOO6BihoXxH8DpzmZqRsiqkjP/0SyOuk8/WEW5woGb4BTeQkqYjG7KWPtly2gCtTSrRwugoIOjRTIW3wqRisr0J64UArXht4PYu7AVi6UZt6cBMCboS7s7+09URiwkKWtGALQ/e3yAQ2CCE4zVPwTtguUJghGLpspDKS8oF5UupSIn/qvpMIne+VaE1sfbA2bxd/fPet//7jX3vr3nubo434CADAO81FWfpZlrj9YIxXsRRRPh1FMmgqEbAZBdBsCfR6qZiZWKNl1s6uH3zxwuZzhQ0KxlIvREVE7i/2d3fubw03H1t7dGu8SRkko22vKpmJyNZg8421Vz84+miow8S2EOEEW+SvBzPZhAh2bsClhHRWF93i9fWXx2VU7/w9XdGgtfbHe+802nS502DTLURM0G9hX43Ej+BBW+pQqdhkIL/wzAqQCdwMvmDATQ9tFxnEowq8g8wXV7PcPGL+jj14Bb7wvMyirbu0Xpx9lS/EVFUGhkhxnmJAqZiZEUoUUUCC4PkULTQCUYhteM8bAywsDUNa52uIw8mrPWF8jgT/PtryxbwPrZodR+hOXNRTkXWgEjOnNbwocIt2SPrECooR7BPcJIbEKwLIUNBXUCxgQ74ZxTAxyTtVhkjShFl5nqiGWLcl82CIiHGjsekc6j3udMzTaFByTxOTbmntpJmMyvC93cu/+dXv/O9f/Obh8mhrtLnsltVuYcpkWhRGABraEHje0dYXnvct3BQoahLxiw3brCfAF3AP4thUtBMbleGl3Q9/4cLPj5pxZ61I4r9pp7DRIlIOFocf7l7ZHG5cXLuwPdpaG66JSOcynTA6yRo2mrU3N15/++DSqBmZgPY5IUDSaJTPvgqYEcZznrxjacvzo3NPT56sriun993e9XFvufvJ7NP6y2AOq8xdFkwABtxrbPOZpsCruiBlDDvMpUiEQQiUbiKD2qcYNHhNtXlCW+K1AWGBpwLUFkDSipLA4IhJUU/A81Uloa5zgG7iobIgiJWTMKEREOigoHXRIMw+wSBfdV8JwUDqjHJcQduUUCTgtoQD4SnAvkDbTBPqUpWUOkqRW6+WyYCAwBk/zF/MtbNegZMgisk3o5jkWRlhFKwwyG0PxYASIFsZNtj9UpUOOtlDW1xYgkxigdHJkLQCMt2DPYRLamuep+Wpr8wTMCzuaeuW1jalOT8698n+p7/19W//H1/+P1f2rm0PN6eDsX/cy1mlmMI+/UKWlSxmsITLa9+W2iqwqAeUhFQ2a0o4w8Vh0L88p1GPB2Xw3u4Hc1tOFb8CCcMls/ugRUvRcrScXb1/bWO4fm5y9vzk7MZwQ/poi3C1gQ6+u/HqwhZFS2td4mUZJgIviEjOPyDnVamMiFS0zLrjNza/e2H0CN8+FT7LCvHWwXtQe4D2gbZUYCXjYw/42HMEisbahJgDtAHxCeyLNGRPHE0YqXS9QsxEybFQGFbOiir3DWgruKCmYiuh9Eh0W8jPgSQ0CLRF1NdrIhB9UE8zDKVRVsFxgrbTOgSKQBiyiZRkFuOAfbjul6yKDqxu/EksILUZJKF4NaWwOe9KCQ0wEoAys1XgShDqh6EYdYqHoJhECishr5qNhQfvJl7cR7HgjaGp5K1BpH1vbzG9oYRv1j3LuddTEnrFJysJK2gbIkjEj7CRl7ZrB6U5P9m6fXz31679r7/59e/85N67ozI8P95eWhs/joD6rbVzWkXbaNClr9u6TzwzIrZRVIVeEnqKZvEyxZN7qgp87iZrtPny6Os7J3fPjDYZYD2zZ4AwqWjbaDNbHn+2/8Wd43vbo60L00e2Rpv1DHq5tvNPj5+4OHrkpDspol3SFh9AWwSEKEOEOVQv6cRNpajOuuOXps8/NrpQI+B0RQMR+cneu3jKvpt4p/hPcFssQYRcJDpnRhHcgPg3S5JnlBwjOZV+QUrzEaBtr+NmbZA+2q6QYu+n0zXTKYZTgIIhgyIDJT+xQbgmskUpXlUIQHCrpOQSCeDQrJCBF+XcRYcgyBX0DDCWN4BGkKX2qQm/g/8xZBBuwiyBetenL5ADkNFuoUTeWPOIK4Bq/ntVO0UpewDFgL7sRZOS2u83kiIQIPYgiiU0x9jIsTjcwn/uZgmmlrSMaBxCZhLuVSaQpaQghhhnpDIMYoXixd/MbFgGG83ks8PPf/WTX//x3Xcu7105Wh5tDTZMbNEthT5MzaMKp+hCI8ER4MObF0ywg5o8DxfniK6QxcaMMRTVOT+JBWluNERV5dLuRy9sPItm4kGzi6AGGgxX0fZkefLV4ua9k92t4cbF6YWzk20B2lb3bQ+331h/5Q/u/2hapiIdmEDGJhjcQ95fBm1Ikjpou4kNZfDC9BkRaaVt5HR+eic/3j64BMxCrIVUymkwKnxFAY1AW2csBlbFMqaslH1zh5IghLwH0TbjJqQYxBQ4jjseKd5n35LqR34XIQKoxbvYQI02Ex4THfBg0FmFB8XSgkGK8gLyXli0dLAp0lkSygBXk736oIm5JZ4DU1oKeUSz0sleEmqqwrbgLwLGkpAYPl7VbY2BDXlBgs/yahLpFM2/G3JlDwcolgiTEAicm2QiTe8CDgwWcNARYZua920Jfzw+OLD0YbE/TwZlZq9EWxATR1qLiUbz5TapayuDUlTLOzuX/rcvfuOtnUu3Zrdn7WzaTNcHG510KBxRHOER5ZxBYyJRqw94H1MmtWxENJgwSYd7HqKBRcKlhAI/RGH2kp+7Cmu0vLvzwb/05N9otHTSrYowK25CGaj/q0rCol3cWd67P99fP1p7bHrx/PQcrXBuuP3a2sv/ZOf315u1rsMWCQIPRjDUe2WEKEePul6PKSfd4snx48+Mn3LXnBKZZRhfPbq2u7iPcIUjU6Qgrnpoi1QSQph55LAtIIxCiun1ewQPFET0v0AeXMQRgAOBY/XQNtdwIZDwLEkzDDUKaOBZBO+wtKBiCO8YMrNBmm+8ne7w8SZHEfVkX0L3m8R/FVbwPu5hnM5zHhkh6GrghQCuAHcuAyKwq3J1HSlJNPrntFqS4UrsK+YE2nIrz+hXFZW6cYD4Bnl3lHNuaWlFGCKYWB+ngnuwkisgrloL/k5JEaQJVU0igrDRb/m0nmBAnikpyhk7EosPsdrDBpU6bjRJQIfIlCJFVWsLLCZ3Tu7+0d2f/NZXv/vR3tWD5dGyW47LaH2wbmKtdZLroAS3lHA+nUVCC9tw1StB4BhE53jlz8JSYB9qT1QH1jRDC8MgAISJSNHmg/uXl92yacYi7AdIBhTlG0UUx/hAZo0WU1l2y/sne/vzgy8Ov3p87eKF6SOddUXLS2vPN+LJCL8xPsB9eggVCAJ/RHEpKifd8bOTp+ommJ6eOEut40f77yylrTdawBICe4QZUpFQSw7MhdCihHh1S+2o33XJEyUhcGUrwNHYcI/I7duHWJxh15AXOBFcBBb2ZfkC6Qs/DKeIxvGOhIwsVRkwtaJmkhAilxQ0JwAiCLhaCXoGtBUSDieubj1BbrjPvJrVSAzCbKrFBOeCGZdq1KKQHhBZ0QX7ZQXRTbQtJbA/Dx59ubu0xG4CBiCt8EtH3yZmBaMk8cWo64ABG34Vgh2DQA22+uMMFW4KeJ4l+4D8V6xAoWVhiZCoU0JZqx8f8HiuA3NyBYBmIcuIKqwMd1dL1Z1DDzMpWhppipYiZWntSTefd/OvZzf/6Z2f/t7tP7qyd3XeLepmUaPNcDC2IEHVmT5D96ffH+yQ5cW1qDBoArQQImKifXdGRCE74VVATCo3K2Idg15Y02BTqBc1og+Xs4/3r7159vV6v71Z/XJzmD81mPhvJno1uYwfZDhcHH58/9rnh18+vvboE+uPPTl+7KW15744+XKoQ/Pe0teh/sMKgk5RkfaBv6kB9xCdd4tnJ0+dHZ5Z2rKR5rT4rKDG/nT/vUW3GJZhArW6zA7slbWdINWjmSmRSAnjT5LXJIREcUEg1wwSlljgGAaMgYKC5HeT0CFJ4mBNj3ommIQnWcC3qGgnprEi4dVYhwe4toehg6UfrmBQlXzWOoNQNBIdrdarjtdelHvWguiLgDfjYwrhADVwNkdHJcty2UnQ/6wUAqBaZau0CbIEe3vIHqYiDKl9JYFSJf6ENXr9ckk+yh24pI9OGWEcUYi3ok/3jgGA6D5nHFQ/dznE079ErOu9kI5AZ756SRNiaFT+OrJfC0cUKfWbAIuUotpoY2Kz9nh/eThrZ4eLo08Pb1y+/9Ef3fnxlf1rJl3RUhlEvVEf0wmW7H7hFp94a0Gt1gNBvELDW3EbYaBtwBeYJEoGXeEvMx4MkKpgtBEvbGCBthwB1NVE3tl5/3vnvqPaCVcl6DYAd2CbgbpAc4C9n6ImNl/Or96//vXRrc3xxtOjJz6ZXZ8MJ13bCdrzaqqaxsx+RL7RPhjGQ3VpyzODMy9Mn/XRyumBrFmRctweXz/+zH+eErzEyYNDlazMVhlz0ZILEa1/SlQsOtKTDMKXdULFr5IuWCT3LAYc5ECqMQFMp64Bg2YgJttVpgWuUOHYAySqHZqkAGIfaMCCrIG2hCfjxjSt5X1qRJfP0Emyet12LHEBFkNIKIqeUJBgMCeKmpVciYC0oSv3o2JC6BfQyLutI7sULaOHriKTVtFWMkt30UKZfZ6/kE2CW0HfIQiQ1rK/Q+WVtGyUZNGhDovGpjqrP89LLkRU9Op1ficQFFwMUWP54oiHqCOKCq4i2mjpxGbt8fHyeLY4nnXHs+XxrJ3dPrl77eCzj/evfbx/7frBZyftfFiGwzIAsJKSuPKC4ioJsuBPl6cFO0kkD6kxkkRRJSkJgkaHUUKINg4EimMo+ujnTPvkRx8YUxDaLL6q1rXv7LzfiNZdPCyRNVNxY70FbCOYUVbAcD1qVESGZTBbzqQz2+t27u1OtifNqBGRrutCw+Z2PHyNRdOdppi2is67+TOTp15ce04A1qfCZyshKFrePnh/1h7XO2clgaw7O2igcJ0AMtOIZ00gu8IcjaQNQ1gPAtzcyQ7+zMW1jFwWRutBvAFAYbpebRAsgTCtjt2aDhCLFQVGp1NqCyIDWiLpp2R5AszgRg/acyYKSV+UBOXI3tezGSP/JgXtoS0GTfPgLlV9Ca10jI1OHMpB/F+Itn31VtJzEik/DgBQwZJR7v8VQKXjuXOrEC+5eIvJEpEFVUI0ndh13a2TO7P2mOEauGl9WHwIpCoD1wcNcsBjcLzyEnG1tmsXtmytXdpy2bXLbrns2tYWR8vjveX+vfnuzsnuvfnOvfnuznzv5uzW3ZN7RUvF1kkzmQ4mZtbV5abKU+1DTyJaXEKqSZICpzpTsAfqkEdPCwOhFgFD2Yu7C+J2L/FzNcuyHk1+vgIa0Z0j3in3oFz7shg/nx99eW++uzncNOsCRjUiPpf6KMACZUR5SRHmtomYjAfjx0YXj+4efXFwY+vM5nR9OplMJKEtaAvRVuFSjaIsYmZFy0k3f3R04eXpC5V+npZooKqttUXK2weXDtrDRopHGVs/sCWUK+EBiGO42oGqWkljhHglarQCTZBMrMa+8hiI9iGxBKMC7hPEOVtJqoOkXHMKAidymWFzIvPDuo38og1Asykkg3PAlexgct0XkZRB4qBnAE2MDtP2kVridi/fzKrmDJbJHEXKpM5cJR1FPIwdL6AtZ8OBaQbfH+FVgn9K5EK4J8WZEOTzkFGQensghpRlnXXmb+gIB2Ww1+3/6vV/8Ed3fzJtJvWzRj0H8g+ETppN720ehbcSAwbyxX+8Etiia5e2WHTLuS2W3XLRLRbdctEtDuYHs/a4KU2jpX5DVaNlUAbnx2cNvKaTzjrUEEv1WNRCOARNSOAm5PMBZ3GXlnHTRkFRRaNN6J1rCpKhFOYgZaGkINKIxE5NhE1+gLn27JhaExGTomXZLd/bvfxXL/7Fef0Yq0msn3COps4iXvtomwC8+qpIOVmePLX2xLNbT1/dvz6/OR9Ohhsb6+sba9O1NVHp2g4daUgrYGfRkYJOW6PNM5MnB6VZdItT/Lkabk59ePjxcXey3qz5T0u41foEEy9GRQEEZ0TzlI1TPHaB2vkwmM7R1hGJTSM7I4NPMjQmyhxzexA3eRjcymDCv+LdnE2ajEBKU9drIjIQDSwQ5xfiuyIiLE4P6a9TDfe1c/PX44ykA7sskFkElEUUF3LABY/xayrJAoSKWCNUoYfcX2BwVkphzKaPtukluLb3YjzqTDE3aozxWQGgrVDK6CkJeILU82m2XfvJ/rU/vvuTjcF6m3D2gQcra6KoEUD2DafwOEtnSOqYRFWrqJqfbI43zsiWeWpBQRZbWsvMkHS3A83FRi03dmwuvN9X6NXJHqjzJtEIrOIJop511fsnSv29KGGmGFxBtCUDSp1TEtdSv5dqaO3H39u5/IuP/dV5t/ANgywRCKpAYq9B8+OwftGtV7bFMxtPPj599PL9K+ujtcVice/OzsH+wXRturGxsb65Ls5t3cRZd8O0PTGWtjw7PPP6+ssioqf3WdsaAwNtbhx/fXtxp/QXF85MvC+LAHiSCQQhtYe2Gvgl9MPD0FYsWlp3PHPXuAeASCLtqfLFSsL0kTFAOaGtiDcokK16y4SkFSvqVZcBynDtojAn0ehughASM2ocUv8S5kalIgHYcYtU1LrqMvbbiduK9eIHMEvLggkKURa1MqYmqV7WRfYayJUdZbzkgBOuZI8hgbmKbAwWRozhqyxBGW1hEBjLI6xeUcfNeL1ZW2/Wlj8LZzEfQmWKlIei7MPOejDAKk6uvtJa10rn1cCXAGrIvgN3QaRClvUjtv6hxtd6KyKpdLq92LgBk0AAyCiQBVE9mdVZx2OUMCMNU4FAHD0gFtBD21SgLUWUis67xeW9K/Vr91Ig+go9C1h2UsWO1keQYQQpExFZWnt+vP30+hMDHXTWlVJKKctle3937+hwNr6/t7m1ubG1XoUmlA4ULLIek6K6tOXZwfYb66+ISCGmncajEysilw4/vLe8P9QBXJHLdo10gV5Mt62iLQqDn4sXA6lxnTgXaBuEUSWLRpGX/SqnjigV4vxZ5raq/RHTQMoVYVxfU6/+o/ABEn1FsIyJ6ACdHuGtt71lKUKi/XY/93gijwOyShguVCzFEngus8vnD3qdcwW8AiG7wgX6haCfnTF9ZUAI+LinvKaKwCKFCCEGkYxhgkDPKGL9jw/k2QsIbLphHoktnVgnXWdtJ53E0Wkf0EXC3DPCCZg6cCP4BIEoGQWszVAIwToNZEJZP7HsCpoM1mQhI7NEyHu1pv4It8JhjB5lOes5FQtSCARJglREuqGeRYKLZ0WAvYG3oKAT+JnNfLoaSMYb3hT55UCrujPfvX7w2dNrT9Qv55bVJisiMbZiA4vR+gjQFlFcRBfd8vmNZ8+Nzx4sD+oWU0XbtmsPDg6PZ8c7O7tntrc2z2wUp9nCG1XoQRNd2vL8cPvpyZNLa5tTFGdFzTrR5v2jD+8udjaadUiEgoBCYki8RmzKiJkP0AC7uA64raFQBpwBnT3AfGrgXWBNCp7Y447ALaWMlyrBymVXaoMkNUA0wo7cNpaA3CTYidT7uiw0UKR4ZC2oIusx91Zzb7hS9xH5eW0Y1NKV4BWLc0Woz8UWCFYX8oGFvdJNEoxsrxFe8Htv+RlGmPEMM7D0uh0NyFW0hCoFoJMAKqSY2FbLKjZDCS4F+0NNB7yIFdGODIl3tSUIQk3wMNXEtyQR1Z6U7sehBqC9IgHQPsNObyk6QppaYBOLaYG9Aqoyk6eeyhsFUBycBmGLyb1XwwM2rBNAOFSiQdEAeVD7E4CxMwl/17Ua0+xpAVJLGpdvSVW+yDs8AgXjDrQ5Ws4u7V5+afO5xWJZSsJggXKWCnBdZc9CIr1THL+saJm38xc3n3lkfHZnvjtoBvXjAKZWtGhjnXUns+M7J/Oduzvb57a3tjZUC+PNc0W0s25cxq+uv8x4kdN4VCFkoINlt/j8+EalTZ11Xv2CmXoRF640m6BScMG6AbLszREa+VxiVtQz92/ixXhFopWwfBl0NeB8XmYNNgIbE8dWPtE8h/6sEJwoMVhLz9GIRisKqFdTM+OmrqhYdaSqWI05Z+8qompFAGnmh9Q/rPJWFbUCeNQq7igqTTECmFpRBxaHAp+RONzVIPIEUr820FbJt9K9ksLkcEir1yvIfSyIGIzZiABS6j8m8J/4e+IiZqlzU0KxihTCcykeLjFtPtJVcKK7tQZsUVWr2+tqJIuraCuElUoHSzHVujY1K0FpIZyQh7t/vCq7KXxMo89quFjeylG3jSOe1upU1LBAkVoDqsbuaOLakKioFERXfduKAvmKd39eOwCYYqL+y0p+3RygNXT9ci5Y1ZkWVOcK/OHpFNyqRRit1fKOsk4bELpVSKgA0WhzuJy9v/vRqIy8/zT4VVULfKqqVrxI1jdL+FxNVQqzwU9VXdjimfVnLkzOL7uluq1921BFi5amaUxsuVjeuXnn06uf7+7uLZetiJRSUK+klXa9Wf+59TdEqsVNTulRfwHsyuza1/PbozJEu1Etox2gq8KKiLFtyfirQOQKcZ2jag00QwNtEueaAvtqb+13kjsIKgYSqTIX3/I0rte1DpSo7tyq/8tEjXeNq8XczOfGaXtGoFQYVtTVBTiCinZB8KmcmOH7DYKZSChxzo0Rh1Q2KvlR5YVAZ8HivExAtyhBUuLaIvhNk4QHvHWAbJL9iKGo1XdYwBSFK3WSgExh5wkO6NMAZQeTq+YVli/1ts8vA8bJa3lx5qeqnAnWiSlIE2U+SUwNs640rf4RYK5Fgxv4uyUJSkhbkcxt3VpexxUIy7ckSAFZGgwjYPEUcYSWUAY0DheoOR51CmRSLDVaOScOSo+DS+POFCck8bsacCbOheEfaOrhtDxLRS+Ny1VgFQ3HIe6CaorSvG5SN13SmhCLZiZFS2vtF0df3l/sD0oD8wkXIBWv2W5anxWVoE61akRsiYjJoJQXNp//0d23W2tRNI3GF5Wi/hPkrbV3bt7euXNv++z2xubaYDgspYhZ27Xro+n3Nt+QUxVnVbXrrFH56OjaVyc3vcwkkinG2kR2CQ+LMEkcPvvctgPUJPzCC4KERabVB04xZBQH6gLWPVpq8RfBD+dUnFCflWEEQGq0Gibph3NESHjUYnRBdaGPVXo/nOMzHDiQBWVMwcxLR9yBFKkjbszLL6yQoWIrsJd9nkIiZJMJaLzVw5Q91RwPfN5eTuCtGgURZw8MAAAgAElEQVRYtEaHpmkxaFzpaI1FhcihrGgsIMm1yE4KchUtjOGCShKGcrwkUtHBAA2ngRzCGXQWJGJH1wA21c6raMuapCm3ibZhd0WdC6PCRiF1ONAral4PHUmGDS7vO0RFE0xWq0CbV6hShl4Hcj7jtI+2pPxeQf26aP7cmRgbp0SFCzlHIf1SNaimTuIx81/zfWAeYzX7BmWwO7//0d7VN7dfO+5OihboAnB9DipB9QiqgVjigChERZt5N3/tzAtnRps7J/f9fiz1SQbyuAFEGzWzu3fu7uzcO3PmzPrG+ngybgbNk+PHtwab+LhtjzH8Mz+sdh8in8yu7y32zw/PtbKsrvAU51oJfQgthzMRYERwWyRjrExICMTSmom2iFYBJUgXyaeEUsGaainsYHm6PqYvPmNNZQMjcm68TlzOCG9I4ViWWKl9mieNGXobb3OMmw6ecehzrKagx5T3a45u3iC5NlaJiwsTzmrUjcVejywE1xaci+nxXSdXKrxiNMFOnlxTAPKp+JseoUSrWllwRZ8NeSiFGkV5xugeXwohTp2XeBeghlY5yH9cQQBYji0pB6AG1kX55UEC48XaeRpZrqpxcYLmHa9Q8lESpNrXwSIJ+LF+N7waRQYXZVAHalzWq2KldEj9V32F6kytFIKQcsWHczQs0REeLkR4wJnispFgmlZLQIVOB2FVgZdZH6p58R8TBpd6sCki3+3sc6wQDnwwkaEO7p7sfLT38XQwda0fnN5dT4hHb6U+mFsI+I2gxCKL6Lxdvnbmlc3BZpUOjFNARvog1Xumqto0jYjeu7d744svb9+6M98/eXPtdfFfigzZ4NsICFX0a7S5M7/72fEX4zKquxho9L02CfYE1E+pNAW9O7DJpZmEQaRaChplAEoM4ApWglHqCV7t0ymKi6R3PE3dPVAoIe34RHlzgp/rHYdzNsO1CKm+hsBuJDGW7FTT6v2zCkxRb6VzO4MinOOV2OBwJQKiEnVbEvcBFQRh0v+ft3frkew8ssUivr0z695d3aQo6kZpNBpdRtLRDAY+BnyBMQ+GYRwYsB/89/zo82LgvBiG/4Jhe0bmVSTFi8hmk82+VHXdsypzhx++tVbErm75jGeGTMyI1Zm59/6+iBVrrYidWaW36R0hU1WtCPvv2UcBihPtUTb64pRCHp/r0tIAck3dqLhUJ5bjjAENiSr2J33L7H5+yALVTzPJoXH9UFE5H0MMzRl9NYzlCTplF8fyzFit3J4VF0NszuIOjnFqb/H8NfeYfmnI0HfjvCCndAiQ5TLlVz2vVRLidBizWCcVK3J80TWnMDCg88BgH0Sbk3tX86XQ8VicWOuwxIKJaBULwMPCBh9Obk4/Of1smsLxhSglmW/Wx3Assi6IM3ZsZW7AaeN6Wr+69cr3d1//5Pyz4Cq0lTwjjgVm3H0chgg7Ojq6PLk8fOPO1xeP7ywPtsdt639OnNf553lb77+Mzeyzq4efXn6+bIuwSdBnKtFaWNCt9XwqKerQSHvy84oAf5aR9PIqAgB3xCedodGrylfMLbCxULjqYJ/lMlQelpWDUWUkZsD4BE0ShNyrc3nB6sFFG94M/xGlzDX5JHnDIaRB6jJusDBEEj9sojqwkLUgSxR5h85obtUtC/xJdxe0sxHcpoPScYq01k5d47oMN0fCLUvHcRJaxSg+EUtT9PmgqypmxIq3pZrCvDBq3ABrW5Lp9MmkOjeNPlAQuCw9ljm9n7qavmbmn1Bh3CM315eFIUPJMuegWAlQr4g6XSesa3YwEGohl0fRT4acmnw3jLYSIqbG3AC2DXZNzY/1wQhQUDOZxZ3nDcqw57YF0M62vQ4AXSkPN6mlI9y6+WYwZx7N28PLr764/HI5LIwEboQQqwnIR3KZbzfCAzMMy6AZvnL214c/3xm2J5tYeCpFU2Fh0X1bAakYhmF/ufudxf0Pn3/8wfFHn51+cbm+6r8JSH/s8p9hbIPH/Onq8y9WXy18OfU2E4HNm9y4dSxg0QLJydLoyWymRXVwq3jR5RZV0KSzKDSnQ7rPRZAkx/pZxxr8qXxNpN/uy+feQGZwh+mydVGZ3Lk8cAdg+TCLkZXmGuqpMqOfvCeHTR5wIeIMKThKlZM+HSMN1Y0K19ixSgB8oZPI+npUHFwdFowgSfLSb2vQaDRcTD3aLQsCtewgr82rgMP4IM7hRk20K3ELmlSeVTJOK1mD0AmDBZlupyyzOkTZRkuH3/cdrNocioIOmcmMu6nIIGyqPKWXbYEiktfkdagJjgZMQzBOZHqM5PA6HkyBQwEybnoZlZGuNUtQrQIUlvTE4beMupf2ddYF4XQwPkoQcceVMlU5w4jcQK/m5bD86urrT88/+/7ud8+m897CIxVcRggGkS0XSbLOcOWnwt2atZtY/+beL3eG7ZObU282FUU0rgpJoGt09Qhhf3XwF/uLvZvp5vT67Ozm/OnVs7vLO9/d/c7eYpdc0ZlAclwg/rJHh/TowyY2H11+ir9vPrGnxZ6c5ybzy6dHqX25fDo+zW2DrES6lMtg+i0zGTzEZ8TnZEtdQpa5DhwSu4mKslL0TWVvQQEhLSPwoRiKOnl1TjlMgB+RZ9nJmlegsBhparb8C01s9mRO5cj6DpE3vS1IVv2Vy4579iJAIfXDRcGWx6Kw2acQtfBEhQrTpsPF5nQkaA8xtgnSiTXmVg/xtJH4soW3dLukrjTpybCZaxg5nI27ccstgCicPQ75ych8yXFgR5AXk+GzzFrdaIk7PU4oy1kozkFW0k4KIYsnqwgsZYrpjG2BSx0hOYWAqsdOtjW2NTh9sKVRMkv/XU4XlJ4QDSui1QUJ3do2LQy8gPaF42PZFl9efv3p2ed//93/4tTOU7rT95jPE2UaTpQ3VgAb5w6bWP/izs/2F3vH1ycSvmL+vfzkKj2i0357/9dTTGE2ttEsLm4uLteXR6ujO8uD13e/e7Dct7p9Moz9ecJ188kmN/9q9fUHFx/vtG3+YTeUJBiH9SVhDBj4UF1aUSOqKmuZJtSZFksOdSuNeeqm6ULmRjZPavM6NtUkwelADa9h15rl9YrLsuZC6t7Io6q8qgS54Dr6GLFkT/W/zba3LE9u2OiGXJotJp+RcXUVLEWUKrHmdEGmhqF3xDAxvdUgtFh7bqS6rmZyX9YHAvJEog2nZQ3WrBCGPaMHitBuK+aMy8bi6dKiVLLKjJYuWQsbi3pOEy1mKXY7aJoTenFC4ey96emJeUKmvxEvdVIKhrhkI9mW1ZYAoH1C+NLbqrEIhJFLyl3I1uV4EUYRHX9Q90mGuLDxZDKTZR9J7NynBIzCpmTmFErWn/ymAKfWZlYK4RqFVDRIMxmt+TrWfzr//OTmdHR+uquvyfJtJW1zrZ2VS3FDEe62CV/4+PM7f/nl5SPqCNfF4Yd1Z1tllhT128NfmnOY5D620SJWm+vHl0+PVs8Plvvf3/ve3eUBpWVGsn9uetv55avrxx9cfLTVllOSIN1NFkE/V4gXCXCqv6RUxmFmS4mLGWOGCDe0IrLn7OziHioSF59sW4wnAE+ajoIPDkVJnh5JrUEoiSfYG4nAbb4SC7PmoDEaEQ7vMKps+BXBzioN0qvTfpMcSbnu1rpRdzpssHhkk2vlaw68a+3dmkJmPFpgaSE+7GXaFBu3cqzTiXLJrE0NQXhu80amArNqeGzucLHJQS88JIOwU1iCmxt+17XDqjoskbsZv8DTPyLP5OO/3osncLM+vGEi2cPiKNvUXdq8nmV9vcH7cLIF+gD0A70qMIFlKh1jCx4IPWsy/8Z0A6RdMgKc1Ny8dWvi0fkgGjMTHHd0AYG5dhzuIIrmtJ99mfQ5HUqkcQQiOtoCH09oWD0USvZdhlf+v2M+SniB78aVCoQAq6wY94VTmPUP/2+35WfnXzy8/GqrLfsqQQ/1YQgusNifada/YWHCut7c3Myb+SY2v7v36/6BgY4xJ8rxN4IwZWc/EObuU0yvbb36+s7rbKZImc0HH5q3zbQ5unr+3rP333n63vHq+RSTF4Z96fS2a1GzZmafXH12sj4bfIh0hCR9QKWHITjxnBxWJGzqtd0LXHiGP4nuiuBwJrZXXX69Nlzi4v6GCUkJ5/+xZQIpw/8LyXiSeMQqrP/WMWmepl40Dda/5sC1ugOW/eiJ23CCpD8LoekLGOGzwqVlpFH+bPgLKGkVxEGUB37+Gi+CfaERLb2tat8hHllitJ5uZrwaLBqkBcrkQf4kjeGS81ZYFoAWEZpr83UXFweWd9iPVtTp5Q94FQdKbLZg+lS59DrqFGS0ARG6qwsFw1r/qgJMkkO/ZAhChxAdcHJlyOB1iEPnxWx52labZZlB5OhqZkzlAjszG/oSE0+pLUJAgq6rL96VmjTK1osUzGh0mwqX9mnol9DX0znkRMq4SAvyTfpidAS5TYRXs6nsCKjYuDFtXVEni622/aezzx9efvXzO395db1qQh+XBvwHbTRijs2ZLhLKewg1m5h+e+9Xo4+ruDY5shRJyhHqu1eMbWL6zb1fjT4AVKJAekRHfOPk+uz5s/f3F/s/2H/9zvJg0RZGqsU65w2Yu5+vL945e3+7LfFt4Ll3i4RxhNXOy8wnmOuQVw2hNY0vB3zE/gQ0WCKjGlvtinbVRGr8wznId2dPJ70amzyAka617qj7RmfvE7KrzKOlFSetyzarDjig6Aseo4BT2CJmWLbzhqJXUFhSR74B/iVylkFS80wbwxdcF12P9qPZHBkj5yEhBAVrw2i4xLbatjjOa6JdPKMj+zXRjMFUuRb+//1wTRIspAkiUGmDGlZT833r9GWr3ZYhuoQusefZkoo3jC0Q2VclQKqiBnKHWEYIPqxl4HmutRoyABvo8DOQpVWjpjoXktqqjpxopM5ydNQhA5o09mYYnLqmAcZCVGEztn3PHpGRE4152ZoAXBISBGHRqJnk4z9jG59cPf38/CEp1RVu0VqtGp43GchdICklS27/3u53X9v+zufnD5RQvo/r9hxRmJlZW0/r393/63EYulG1NCfwJUR9t4d+fnP+h2cf7C/3X9/97t3lne1xy17Gtp1YjzfP3zp7d6stJ5uCU4kwDi9UqVRmhk9ewHrWRLEY9PBdwqomJeJN8l9iq8dTmaVa0SvQ/4ZeZtkT5rlU0XQ5e3VXHMvwjRxcaf5DVusRhtesnTC8+ciMMR9JwTIowLicn/ZXp2L5TpFIEFKo7k5acnZ8EroH/eF4q0gwN0K7VLJCNnHMeJPHpN5ZsMoqKbrM5q0kyWSl7J/88BIbcG5kROfz60AVcl+zvN5y8rpvl0nnSnkHfEYIve8RC3kljxnDB9txsZN7xj3yMmaqUKts26FF90a6I3wr5RBBLDGac5nkKiDdp8pId1+B7hOOHb5AhFtbnWRbY2diJZmge7AbUU2AWhdWlrkIUyahONNpMSz+ePrp09XR3rC7iU3RlUi4qyArDJJdXPEpHIzQ/+7+X39+/oDYcglSjyTsQOSiFsPi53f+crBhg/tUaRmqQVWC3a354uLm8oOjPx4s97+z8+rh1l19LIGfTAAEHl0//tPVg8PF3XVs/GUDUxAGiYP/TMlnf9IrH+HnHT5EjXt0kIqATrZF1knMMBmWHrC/WozzjG3z4lwq36m3BadDqACeuYNdTVmvtZmARD09TZfC3mCQXSaK41muokOU/aTnAIz/B4HUOwNQMSdue5lGWPdOjuaXFiZV3lB4KU+aIkZXUGeQWc7ZKGPwAIPXBzadsyKUDg7ttCBDz+jcU6jZ/P9Bs7MHjSZFrotYqJIRcFBzWCPiNBeVleTb3Gp+cAbD/Av5h2qkv+tQ6HzaZ0qc32aXK6sgVUFOIpPbD+OTbuxmjFRiYjwG1dGzc7kYYnTsMRIqBU/W9+BOTZl3iKVGBUggOLJj1E2Jj/TpNZm8HQZdB4q8YAFAyASF84ZFnyj0M5rbFLHVln88+fjp1dGiLYBTlh2lHetwMgNTb9bPB7qQ3jjXY+7+N/d/M/W5YWRz3ElT6toz2qxtYvOzg58cjAfUBMxZ4Hdc8INqscCsuW8Ny8v11Scnn75/9Mc/nX5+cn0KwJiFRfMWEW+dvde8sQ8A6ALx0CAVFCZ6knI5555hHHv2+XyPJsbjYJcOAc4mpJmBgUOZ2xYe1AC3L8/MKkkFjeqMgsEzJHFEijvi1XUs60o+iWBAa8+9mTinIyDCzEdTI1e6U84B5a+EB6KWxKoduX5wj9lRabluWckcZtCZhZohz2NDdYw86HTIYWeNKNAmRbLD4ZIT0TBFQSerKwHOQRb5Zz9mbKuQlE5O7zPC3jOEybk6CX4IpK4kDVFToOnhmSN2OzR39W2cTjA4ZMCcG1jthYTenvggVRmxJ3NYljczUUxJlcscFNGSG51l4pB4k6nAsVYAWlxrDku8HGtUmrRMSXwYwsqE1hlPtcphZrEclh+ffvp49eSXd392uRGxlq6hvzcK477Y4swnCUKpm//izs+2xq3NtOE+a2r4Ayq93UzrX9/95fa4FfhdhR0pplELw0aImdTcI6x5G9pytVl9fvrFk8und7fuvrJ9/97W3X7B883F70/fWTo+aVCcbPo5Y7CrYRTIQ4hJWxmUTkK8EzddoQRD6dalxarG2YXl+U0OpTyRl+TyqvmceXNZZgOb334bTuWMQ5ojm11I2TQz/k4fWFyjENNRkFsZCR2dbCslUpEUhqBg4ZQwPeltHYJHeaOnoAro/4h+MUikyMHMWN4O74fQkjsNDiuhNDByixTq/t7OA9BabuCf9RDUYMdQ56QZk2Fl4Euni7AF8JRzg35M0KLmv+ExUMlmcgi9sh202I1h9FPA99EtuBZB2NQ7aMGWRR6T3pZcJkKArqaHh967uJi2ojSXzDrtVN8d7uX2s2ejQtqiKU7XSL0OeCjwp8is1C8sCTAA25RjMGXG2XwF2LS5r+L647NPrzarwRtPD+3ihMJhKnPL4B+8kOgzANIBmf3F3s/v/HSKqS+P/VgoRFh0mLuvNqtfH/5id9yZJCRBh4EQdG/HvgHgULVYmDVvy7a43tw8On/00fHH7x99+OTymZldTldvnr67bGNwoiAale8LxJLuqXhbS+4zucsAfwQ+q9H5KlSe3dCGPFgAZsJ4QGSN1dETAJoDbxRva+ILPoNza6l6lReabZN2OCjQDpYHAtk9BWHDmWXHy0i/xO4IDEWHEAQl7IFx9qAadtWhxMSpNyhDiRTizEmC2kCjZqE4rYzDrRwr125GaWI9kMUt5JlyjWAep5aDFvT/EjFNHViy/xKOzccttlXI8x1QQ9glkIglbZDxoIY9ypzEptNChoxDAze9H5iYOXwjudAfqJ9Ii2C3hgacGBu7SNP6ihEw2NsolwzBPKVD664pNuMGjPkL4X5+SUP/lSNi1Dqv26vUbhtGLoJP0C1lU2ch7JDF+7rAE5PF9rD9zvH7J98/vbu8s57W9BVsyITyanMYiGBoEXVGTtsd2/A393775rN3F7aYfMN9C/gItrtvYvOd7Ve+v/e9Zv13kDZaM1krL9dW/rn1EP4sIlprLdrNtH5y+ez56vTJxZMPbj65iMu9thsx/+2vkJxs4esPYrryTO2G5O0LYA2siwYMyTbBq9xCtPkV5UZlPNOBWqluowZk5SUc5I7raenO8gddKFWeHShWh/GB5/JHuhDRW3JZimyvaClk1miRxvktlJJmdp2FKghetVLoegW4eneFLCoZUCnqH6q8KGNQDPNRe2Bb2pnkbP1X0KEOSwH+lR6OVHl+OAHK44wWKjP1OGnXWZYa/SDeTBrSgEuF0tb3HX144SI3S4Fhlo3shMv2N5HOnBOcLPaXyoKpTrKMkgVxLK5VSodikMzElwor0gzkkCiPDx0htkVAQvBn9RIFRLReYum+FKBEV4elTcu2fOf4/dObs1e37t/YTXOBpdyPRhzlHDQgAXL5WQrLm6VuEbHVlr89/NXNtN4ZvDp+cCIB26xdba5+e/irw8XBFBu38uuepSCR0UumKbO9kAUmgFprzVpEPF0d/a8f/++PHj96/bXXt3aWGT6CId1KhwmLi7usOmrUyiKTpNTgtgTMbIY1yOwnYmxFA+IcXnrmqYsnTcY0PK+VzQ7kssk3PH2RTONG+JraapAO77K4e9hIgMP7gIBInynNYL8oM7kg7oXy3oRmnq01p0/P95QFO9k19GIYPo6JxXbNNOoxYNEIduNyK8t7EqyJziSd2lO0tNaWd9SanJh9Mw+R7O2nU7ByHNqa5pszotPI1KmEZiKzQLmZMbyytVLgNNQUWpNNbXLK7pWdlOJ+GJGBZaERdFevY7letR3aaQQ+KQ1zQw+RLK8ehcgI1xEe1j+aDfiKeYyDVoIo8Nu8ZTuQA7cII0D1ErufBBntdGoQ1G7Rxi+vHj28fPST/Tea5WfMLazHn2Vngnvw09Bq+mj3rX9u3JzZdP/+7uuv77x2enMmsYloZO5c69V0/cu7Pzvc6h8GsGQPcUJrnNAEntDgSgaReJOAWVjzFh5vPXtvvVo/fPBwubW8f//e9u52/8Nl0wTJV3Yr205JcDZn20qyRCX0zqZ6QwzhCfanQfksDQGBjyTaVC5U/anWUKhVDMlI1EqM2fNiWyB1zrZT2VFqnIi1cwpW0fpCYXdc3BOo5ebuhu+j9DENqLeZxj4cjwamtDi28e/f5KGZ1W4yHfzAjx94/9MeGHg5p2aR5YsJLdZs7PY9zJGreo+134kKxzrz0m79r6ZYH1WGKLq9hAn/9R4vJXF3D/zhvN6pa6RqrVnntB7lOkkwzm3RKMDt9ZMphBlcYqKbXYkUiAl/TcY5ZAjMkkOdt3d7TNbv657/4RwNGdzoSwCrPrvUFN28YZWcuzJnei9TrI8auIU1mSB9UsDNvPEf0dmKTgFF2HqtCtrcT+DrgUCNRQGZW+vbQEdgAH6/Wix9fOf4vdXmauh/miZyYN6z0ePfuCYFkK/w/zFF1WEWNu2Nu78+/MXNdMO7KDyMW+7vbO4/PfjJ3rjX/7SM48TNEz6mtZi7e7Pcrud/9FRAUpr709XRg4uvhjaY2fXq+uHDL7/47Iuz09Obmxt3a62ZkXDMQlmEbPavRU3oKZLpgk5QJNhlDvOGCXpj4VMvaHiFwLtCLZoBUCTBfrb+/S6YLhoJeVujOQZRcnl9PRF0HWTq7vcsMFc0489ctvEoSyEBz/Rd9O9ndn8VYi5L5kJz16ff2l9PDqgg2O171rclaem+U1Z8sm10Y0CzVRgxgjUUxAjAQRYPeVWyLIbM4WRbtnyJS14XdGBcq3FfWDhF1yl638YjLDdgMLAlGojfS9gWNEjNJyHwcCUG1GrJc72T4AGkk556AILcHFkfNDDBy1j/ATyj8Cbh9ibWTP9il6I7YwCb9/MyJUZKpFMFmGUG+socJ8OJOIZyOAV6HklrUFZN2hNGsk8rAZCp2zPQUQ9jhNmibf3+6O3VdN3aABQjCr2OSKMz6eqQkonEeSF4oCjfxLQ37v7m8Fer6dq99XJgoGWA/Wa6+fH+j767853NtHHSqbgV6TN2c+BaU0HRBnp9UZRsYW8f/QHPubv70Iabm/VXD7/+4vOHJ8cnq9XKW2tDsyRbJ9uyvUD3Frx/JSKuTtMqbSG7BjvYb2ciJeI9DtMdxijtKlBDVr51y8vSq8qW9tN4XYNueelY0kHwEpVttRDpR0jl3Wx0z146W7S09eyVjBM1tqCONwQNumu34CYvJyzzu1p7WKRxAJCTCuMFe0nrBc3mUNbYqnO9aNYcbFUmAJ66mZ25wVajY9J8BBH71jgWeHTjvJPYDtNTCKFjaCjCwjsVUDncbjCQYWMMca9L/iifQhQ09/JOhIhStua9AHoZk68Rbca99GCRb0/FLYG3kg1s1DQnMlgQjUzM2I8jVU7jgpPpSe0BXTCIDCjokKWV6btgp4q+x8AEaPGMVpmveEQs2vCH5388vTm/uzhY02PLg88acVerBHkTameBQ8cWU8T2uPVXd366aKMmEjVVvY9YrS9/dvCT17ZfXce66U8yI9/mGcuc2FlZZw8lqc0S/EBVe/PZ2wwv6t/dh2HYrDdfP3q8WC7uHt7Z3tne2dkxt2kzaZIQpQiNNlC4oJ1jjMGZAdfEFWgubeIdK7cnWKEoCBNPY16RKTWuipbWaC/dZnDVGnh2VB1pWv4rBwg4dSF6VaJzr/q7m05rR4/Jq1F6ShduEhZjqQLCAQBRKJW/ZAIqqOV2EpkcfUNyYfAEgR5set+AAkEu2f1CGY1G2/GjgkyPEbRVsrPFyBv161t4OBOFawMpTDFdBp1SRMaVHYKJh9jNB4g02H8wP2mwukGSvgGViQQ2EN5plo6/BxFWQRXJAkK/ISOX9rbvBL5McHaul0zp3AhaDrbiQaNBMbcyWUBCacBpxfUO0g9sKSpYOOuXouPE/qzsn72R4SgnW5pfbVbvn3w09YkLWdxNS+y4c5rtfkWjt6XzxA+sRXc3n2J6Zevwpwc/uY4beBgryDZr5tfTzU/3f/za9qs309o9gYuCTm/LbDJUZZ3OV426Cwm7jtX7Jx8RpCINK2w7PXn05NHDrx9//fT87Ly11obBapnDhpm4Kdiw09467STsLTPKNZqxSEFNDuiq/WO7AxfICOXlWFskSlE82dpEO2V5DBknAzZjW+3I+H/1Qv20kBDr3wcDF4fYttcDJx+FbYG06gyCzYpRZmH0LdsS1iFpOn2NZZrZeIrlzQqFO9aCgQB4Aqzk5Ar4FkbNs4N2crBGJmIQmAnaq54EdzHZv4xD/2kPVp+Rw4x9M5Nu5LsMkpNkQ5CurYJgw47au5pkI0YNcg3P4P14OvU9To5X861+vfRXRqdtZjnX8MygF/6dsW2QRpJtkXzXfConCV2PELeg9zVSSFcW4tALH3svFzZl2IwAbJpha3+oK5Ebrb5Qe8oAACAASURBVD4lPDzGYfz9szc3sUlAz1msvw95Jp86KL2MzHN+0Q/2dWwOF4e/uPOz1XTdx+agIlgNW8fm7uLgjb0fjj52FekHOgMERmEhkdNRy8m2CnaQQswGHz46+fRsfT4zwimDmGIP47jZbI6eHj3+6slXX311enLqrfW5Lb0tDi7MBZorbCs6pn0slVcsJIpCbGucPHVau8W26G/Inm5l6FDIvePVCGMYjaTp5FajaZ0TdNDXVLZ16nLnWTBMopHlLIiGTmwhtyOgYm6rQsbgTIgtbOuVbTm3DbIFa4Q8DqEy8mZh4yDbutg2eQFSRtoCtDBH9mp3pNsGCkh+A6//q5Dof/wBtuksIueRRGe9uUu27bEsk9vCCnWSwtTOk8YQ4BCFBF2K98s5XQWiwVYVjYAMLrELB4P39n+8hG0japbBtlT3vthQNvG+bmDw/4yIJU8aqbd0MMQhVca4cDRtgQkUhMzlgM3L/kwmG4Ox4FkcfsWat384eivMHLfCzP4Mi6XnF/CKlegRsNKnbWJzf/vwF3f/cjWt3Ftw1Aq7ZX49Xb+x98Mf7nyvE7EG3TyTK+cYMMvbenWvsDCu5YaF2eDjm8fvbmLSXsSXyDQ9k7uP47DZbE6OTp98/eTLB1+enp4298q2gZ/YMZL7DIA1o7ctNtBEuLTHoD+xbf+RLTGn6liXGkPTiBZ553Vd7XrfExdT2NZkgctRLDIeW5wsa4Za3K87cgPzEqMrYo3yReexvYBBfc5BgbQT9OGaCwaf1RiAVOHCHhWMNzsEWk3yKLmO7o4oYn1RbFArBnOEyPcssczY9PLcWADv0DiF5p9Mlv+CB7OFdlXGy7vFg+GjD+CozRh9TRJ0whpXx6lI23pinjThk6IJWer/JjPmpJPGFwOOftrgHNaMq9HQoCQBC9KrvLLlMlxjUoJFiBY/cissUQMRpv9HpfQ5fg2G0Y/Axcpychgu9Dp+KpvGFjvvWjP/8vLRl5eP3tj7Qd+4ckmP0Xc56zVCauGhhGKkCTm0sGnw4Y29H7yyvLeJdcMvGcTuB2+rzfUP9773o/3v30w3gw2UO/I2Wh/Uk+u6mLVzneVFGCB3i1j6+Oazd2/iZuELAejWgi331Nl2nDbT+dn56urq+bOTg7sHB3f3+29IIN3Oi84oPSQpLEbFSlJmvuT3UCZEiVmmhEHoXgkel1DnwLheMchNsCE6ils0IpM/0GWyCvlkDg0MfhZLx4c/ApgR26LtctZ3F/IIUlkErTPhTBMRuD1s7FVYpiGk8T52DwYnby4PJZcFF8qmEflhgGFQ2CeixBheDAKSRWFvs4gMW1dHi6dEacTAN/4oFtWys++YgSlBDJ3MxHE0uEuqzikqHW6xjwSHfLLVxMplwTCGlYGuAaQsRacBcv6YRNzfS+lnPb7U23YKxobADH0xKiPikAvr1Bs8tkQE9e5qmED37lTffgQ50DuIKFtkVmACCYEHcvpXp6F39FC9wi3+8elbrX8EjIcyL/AnADWeaq530ErKaPZwulmzdj3dvLb9nZ8e/OR6c92sNaSiF465+xt7P3xl65VNbPIVMFlZgtPeknSEhvKay7e62dCGr1ZPHl0+5qqAkBDJgphlb83ItsMwTFNcXV09ffz0wacPjp8dTzHhSqxZFjeaITlZ+U04pzJkkOdBnwBXhNYe6kDIgqyCJhRQZaKDjgxWUtMMelkqNMos3TfaANQCaZcCoDYZOiFP3nqAW4W2sxTRMDVsy7x80tHVfIvhxGpOU2Ru3n+FAlJZWNGiGfsBMWmdJJh5awQ2iRpVAzlmEfmMbRvg07dMtnZObTCL4BlYWS0v7dFKWr+dh+N/3dmxBhgAf3sCu41ZsCCi7uz8OnWQxMysNc0Tyqha9hZmoHmZq7jhg7cGdM7Y1gDkoCbh9k+/DdQZ2tHjQ/ShxTJQlW1bC9nPiFbXJ8PH9CV5IBSYW9ARsLH2oOVwum64G/yVClI0UIbmJnLMIKfez9eILsxXGm1V/+y1TxH/cPRm638RIfhHDyz/l4YiLQQJ10nm+lsJyaRuvp7Wr29/96f7P15NN42/w9vNmvl6Wr+2/epPD358M924NS9/yAMnIgr4n7wgX2qWC8yXwmLZFu8e/+FiczXg88ONe3ZvEUU46TZzBNfLtLUWETfX66dPjj7/+POjZ0ebaW1mrTV3emtDe08zCLadQN4TOdzhRcG/PFZsS89U5wewaBPYloYz+nCuTxWm0OzCbD5PKFY6yvI6AecAJPI9UgitNtl2hNP1MPP+LSDikz1Fh7k1S3MbsioaH7g4E4SdYE31hIJgmtDPzS31jcoiwJiKQvBc7z7wbwhblO6ObhdbdzZI3ZNgzoYKcgiiGUFSe2Dz4B9d/zYe2R0zwTKaxtaA6cNG0OaEXmXYGELszT1DYZlVSzTANyBQ2j+BaSQfJU2QlYHlnxRwjX1oiukzQa1o0oNLA7mnK4qYfXWULozJ4ioSBOqBIbKAQzEOhgYXyMR/zPD1KgA4aJocxtaMBMKVEnMR1v+KiLHU3zl+/2a6AfvmtZHa6rf7+YJFxkEEM2kz37ae1q9u3f/J3o9W0/XF5nKKTd/oYH6+vnhj7wc/O/iL62kF6iqnhtXBRTi5Q0xLASES3GYHymRbbevtoz9cri+bQ+XNzPD9TubGCJMsGgZaZeoWEZspjp4eHz07Pjw83L+zt1gs2tBCXycjDbKP7PkKRkcBctpDJSI4OeV63Ix/jRcM2M8yUfNNm0SIIm9uErX6B4CUTyJIyFBMRJqqj0MDYpksPPJGhGdieEoag5DBSEZM15DqQrr1vKRzQGVGapO9oYQ4kFsHc1YIlyhPsGItnT+YT6wFIE89KuqA9kd4nBewKefmbJsL6r/Zh5d+pjhHsISyzC12H0puAThlwTvQq2swWP/ZKFCeMug9eTBJCiFRmQIi/WcnTSd3FQ9QpmUgwtDq+utcnysAWraRrCkfGouyJj2h36cORHVQNLV+kDOw0TWJ0wCtKo1T+SlMQwNdC/MIEAh26O6Xm4t3nr//u3t/fTOtk3PoFAx5jFQwMS+ZiQntrQKOHNpwNV395t4v/8c3/rvVdN1/fYGZubeL9cWvD3/+/d3Xb6abbqXBtM4SwJWZNgaAJcR3FPsOlW5+Hdd/PP14NV3vjbu9nwENR7U4HF9RQ8S2rgDJoZuZ2dGzo6Oj47uHd/b395bbW0NlWwmzqN+UGZEg/jt/kv0RF+bMIt4b6SAEiqBJJr48yZJ8SmLmWWBs9WqR8zyQ0C9saxYjZJ6YSXEqBiuIZy4JakBLxNiIbVnGElfPfMsaiOzMODkhgcCvBId3MfNg8/6EBAV7rdpGY5sjWktNLHgkoPsyOuemK/hWONZ4ccmwxklYQpmpyJKzTHMqjV7dSkvMaRpuvtrsSWOq+XOARzKGnJlZKGmkM/SnlqaVNEZ7QEqEyUP0XS2QyRljYQJQlnP216YniY/IhIGn8W8pp8KUc/3+SExQB4QHciw1XZEgwnFilkEn8uF6Wv/+2dt/d/93N7aGoVDo+W/TAWyvTKZD9NQrEW2mDd6uNte/uvvzv/vb3znbOeTA2/Xm5nx9PvRf0JXwMAoSKZSzxWRbAcBuvTXC+q8w/+T4+mT0QULAwuNclicVxRabW8b/iW8zfk/3+NnxydHzg8M7u7s7O7s74zhO00QLTO+UByVNmDHTBEBaT2aWR5nsq6SZvbSuQ/7gbScm3iTS5UJ6UlcMzk31lPiXLMMfRhwMzGC2J55mKB2HsRQhlxxlYLF9vJK7s1x9l/1wjE6S80gsGOux6kKNLC+kfrgyBGHH5RM+zoi7/IzV163ikW4ohZek0cHyTT+cTOKymRhGqjXopJZReIFbtFPjTpg5UJPxYAVBPMBlZJmgyJWmPr21Mgkys2QQJI3KYOhk8lzSLdKHqXvvFyDzaXrrXB/NRwq4RJMbFw5JVqFylYPJ8b+B7U20jc6GBBcUCexR/XbFegLJza2ZX2+uf3/09qKNF2trzjnUjIjcEu4m4wzeokRYYbBepM39Zlo/Wx3T5vT/YOlDa+Rri1IbxnI2MT4PphAqm/O1hW21rfef//H45mRso8hGqoj2RpO4tLFkWxCMns460o0yM3t+9Pz0+ene/u7O7u7+wV5h2/B6Vgkq3SfHBQCTIkUezBKnlLgUT+FVtwzkGhFnShcYrFwoCo8rMFRkIdkynmLl0Tjg03a4RUwwkm17vSb+61p4Dl41iiEIq+0X9aXUBVfJCatVGwHiMC2gaKcxusn8hSoK27oJApmAyraW5CZsfPMMWx9uFRqdDlx6YkamQQxjzi2JAKNrKn7dasDq9Mz61TKEL2Vbg9bRLRuSll6gJA3sXcSb1cxruVBFdpV8BuFhzBZrJr2tlts1nzZB/iNq7iPdamFbF5ZtjkOdhSOXmSQVp16IhOeILy6/fHT5eH/ck+uUCBa27VcurTzTzUFZjseMFdvM3EesrmkaNNcgEauj5Mi2lD5mps4JZqlguBdtfP/ko5Ob071xtytzrkgy1vMkMa1siz3WJ4EyL6nrbHt6cnZ2enF+dr6zu3Nw52CxHDdrelu6T09l7VziJW4lgPiZso/L9qLJhgYTBIWcTznZxcNLbSR0+8llS17KtqUa0xibxYheVeEyNu4zzyrCs1uGtqdRHZI8KGFsdGiKtcrUsc3yb6MIiJdfZFsTU4sqSoq9O8NyaZlnUzdpdC6a23JnGES5yNYYqW/jUQYZxsvLh8zZFhuyINg6MRsDRm5Rv0rznrw7azxUSZVtjSEss2yOEHT2vCSHEGU62A+jL8ecTNybJY7w5/ryXhl3HJVt9WQoWUbD37Nc2VbdtIoOi04SyFYd5YB/RHmbCiebhYTp4MPF+vLN43f//rv/+eXmqvVPMbjiNOecYGmZQFhGJS7LUfZoBhMWSlR1sJ5iJuqNkk9awLA52xp/ZloXbfz66unDy0c9CNMLzI1EpX5HNr3ZpERBb24TPW8Rr86252fnlxeX52fnO7vbh4eH42LcbDZJsnmyHDRV7mOF5njhpWxr0hWNcwBlRkIzCwa93s4XsbI2S8m9wLZl+hDWfy1dgN/FqGzHANHOVjT0MAQ9qg7fomEH7jSpOFlaYW7dn3dd8pyOOI08hmAduIk1SZgbxrsIPy7bddyVVgt+qoM5oIMxATQr27wvq4NPM7sg8L81kjXrm0U8XLf6bKZtPXJwgYCsnAW4qb/mXscm8DthTqb2HsQy/UZJcbwgTjO4HRdt9gV1i0txdbo8Sht5Ar14PwSbMXxYoY8XnLUviXVmk2MBPcePJGGnScERZaudxCLQxPb0ghL6dQFFgh413cNNDQ+wgjYQeoc7Z74dIoMPp+uzt47f3Rq2NGHogDYSuAxH+qVuBAJPObKAFTu2QH6miUBcor5XT/IMqHh3BVMkjTEUV9EzipTFdtv66OzTx1dPlm1pqJ0eR/zAnlCDl5IkkkUmqeeAo6dC/eltzWwYBne/urg6fvb8i88ffv3o8WYz8RNgpLb+AzBibhxUGjgsOryKndQA15N8AdIeqoB97ZhniwEKDjpHLL7/Ozh2AthxITI4PKvxDWCwEZFGe+VSOSIPEukcF4Y4CQe6MXFB6PeK8TRjBCWNlpQdd8Vx+iCRGqoTTK9uQerrqSydZCKbwpkZ03R9Ljgdchyazc7rEjinaH0bj2b0CkHrUcRA4wNOxWiJzMr4DU6mGsUeFgaLo2o827NDxzBzVHxJbMsQsrlEyhP2PW7or43TP1OnIgmBHclBDdsJnli+jG6pQyRnoqYbZRrQm+WWg7TfxbsTbH85dF1IRzGH6VIBRvBTFOSZuozsEvobm7eL9eX7Jx/1X3RgxnKS6lAncaYcdhCYbOXVPIQirvjnxs1sHgXJJ7rgnCRk4LIAjCArRiIsIraGrU9OP/366vGiLYKlIXOfN0lCqyFdBynCDG6IWLF8SVqVNoc78f77Fa+vr29ubs5Oz/Z2d++9cjguFlx5iHNN9c7FGYmFJtdfZnvF0XiCrZIaRtpXY8zJW9kCILq3LkRHaHVVuKKZjf2PF0Tg04AWlW0Vvabn8s5EM80U+Ov307erV3KeGO2cPLycOS1jn6KK4LU3axAmoqNOE+bHqth6mPi/6LeMzETRC/VubP+ktKkV384DtdTALlKBQl9iN4IphycJ1S6h0MMZ2xLylW0hqEZeLwdZsjQqAeFUp0+LFf1TqAxvaSJZDcAURbOMRMOtgZQ5XHCimaWKpTNZlqwvnukh5AdvjeaCiyX0coxiJIHsmUt4tYEUFIGBzVeTYjWmYfDhyerph6cf/3jvhzfT2mVqyTRk1EjUh0eDWyanNvIm//QCG0ZLXqSdDELZanpTzPovMKH9I387IacuhzgffFhtVp+ePbhYX97f2l5Pa7YHFuE6FyPv2pD8u2AIZEaYtdDnmgkxwIsyW3Hev+AwrafT07Ozs/O9/Z179+6Ny4W3XpRg21DD6qJU5GxK7iPOWGORgSaumO5gHi0J1fIECDVO2RPKX/1Q2daMV5S7MfOx55rOSERkpm6Jta0OCJHu2W7oBWC08caYqTdED2tIejD6tNKy3zLWACdJm+kggGFRnKD1xAz7KtmzrEx3jT7oTDTUopWIznrfCtFSLxAM5lHWWv2Dy2aZ7tf7bBgQMofZfRjDI1yjTHtdZNvIeITC6dIp+R4MvdHQobsxDg+YdZR+k7PqfqZHXtQWzC0rE4bnto0yEgRRkHd/wJg5WCgzTKt0QLYVFnLzsn4QFdoYAxKNbAt+DiYEbIvQL9v4dHX87vMPfnnwV9ebkxzRGgxFZVu8JMZtGWUZEDxawTDNLcq4FUQU2jIzayVrUd5FxFDT++wHgFq25YPLLx9cfLFsS96MClJ9j0bjv0grWjViLRYL1rIh95a+yLKVqDsuhsFBqWenF6cn53v7e3fv391aLodhCIuYSCY5vbVqYKmjMiW8lCKlgqMQimWM6+SNaLMJswNhQW5AwwaVsskWJtvGaLoXVZ7PwUASHpdW6xkVY8Y90g+k68G1aVVdoZd64ELBYyj75n03KF3akSQg1iMWIt7EujmSKCRrSQ+V2Izn4RRSPR3g8c2zbc9Pgk6OMNlWgHGqMeQuf6LJlywXqNQ8lMFC1zi4epyU7QLbtDKI6espkwSNsUWZIZSByynWwQtaSRqrgfMcElzp1vuWIp2P2dze4hxeAhNRhbawraCjgxRD0UZiEcUptjWybR6aEjj6eHx9/IeTDxfDGDdQvJfaWA4sGVZxcQmxdfx5aTFemI4KEWVuZqb8KI9GkrcM/+0baeER0/aw9eD84Z/Ov9galmFT5Wn60FAA+CiiR/UAJDQumCUJkeYYjNtjrc7Ylvi7OL84Oz3f3d89PLyz3NpaLMbOttmCMRVq1U0XKvMEI3XR2Oo9elFSV/sZujucLTK6xl3DhQL5Yr9+xtHlk/VfYt1lVS3NMhLt7jx3QiD9Ofg+Y08/C2abGVrzWklIO91J+oDIe2ely+qsWE2T6tAIWXGRiW/KRKu6IfC+DvrmCRYPCVwx7WSVnEfTeBDCshkMDIcNoaOyVQjdKyMPGfk7svJyHGlG4tJYjPlECF1PWRYGK5lz0tKWkEAlmpaownXJnGw+RTWkC7PEjsLRcx11p5xk3PZb6MvA+UH9N1PdkX8sw8T1cPjR579pE8Iswpu3TWw+O3vwZHW0aIsoVy6xS4zm9lFiEniVq7F5KzP3mc8nWojvEEzYsJiSKnmTlUQoxSrezD87f/jo6vH95eEmNv2wkirMgVxDk7kdtsh3pkVFi15sDvLlNeRexYQqkRLlPgx+dXH58PR8d293/87+zs721vbWFFNMQSfBM7GkivEIoV22l0+WK2kGk2TrnGuBSkI/ZYYETTqKGa1bmI3GnANrAl7RuyrrPdKVKWk9UYGOW3eEValO0nTQL95m25iVEVVFaTZ4rBlOLSGa/gcmiD6BbFHZ1ogNvEUpdkWVVvubf4DkVSMSkpkJmqGcnjVEY6EzgdvQLhHo+Efpqy3JywpD0vXR7N8i3Ftsqy14cSE1aVF7IrQkpplITVon5gInunqT3id5dcasDm3utAnxud9KtuWCfIY+yU9GxBh3yRri6GXn3SJtte0vr77+8PSjv73324vNZW/Ok3m03eTAKOFhxSTbhhIq4i84N7ppdgs2LzuWUyrSLbY1yoZFmI1tfHZ9/MnZp4PjDz8mKgv9ZEspK1/uSzKG4CKhwGi6cU3L250yh6VoSRFEgZA3jMPV1dXF+cXu7s7O3s7e/v7OztYU+kKZsU8uJUVTj7zhBy4XkUQNUfzMi24xaTT/RhtD1QDlWUlquaL17yloNemOuq8yi2wz+xbgYxm1klvJO0sxGUBs62TReRkRu8EUUg5FiXmrgmrCjqoaHScc5Viw7HkpZnXpeTCsZj2eIf+2Hi46M4HNMhhmZbXGht8AArW+jLBRGkOc2hNJI0huId7qlBILciq1VqRj/RbbGisjyaw7hjnbmojw9tyWsJ5hgtP6PuISLcdttrX5+l7KtvyQgVabACvXTFmPJK+iVN17iKlLg9f3tBwWDy+/+vj0T//Zq//2fH2BEIKzXqBRjlWM/YmJbUnK4Soem0FXR4DwRJpGk1uiEEVc/WXabR4RW235+fkXH599uj0sI6aycrvFtgAUJuU5rKGzq46m2L30b0BeCuBM6sqyebGkus62i+FytTq/uDw/u9je2Tq4e2dnZ3viHzqXCZ2zLfDS166i07bkeX3OtkK3lW3nJMGVl1BwS0XiPyPdExnaGHiD+S3RI0rx9heApqVFmYAXti0BTLYVAzDACawEjWvBMkX0thwHZ5uMvbhZ7U1ykuARUeUjdSorLnij7Nuk2owyYUAgAr2SKycE9HEZKakZ2GU+Ca2BVW6UWYYmXQ+f8FCDYyTZLPrCGGUe4VnQNOD6uEHHJ9hbkOMHXNQFl36HUBOky15zQuqpT4wZx5/FbyUDgIlU6JX8g1Rl5C6WBZ9k4d0azdjQhuPVycfnf7qJm9b/fHepgbrhalpzkjATn4RvaV1L4EN1K2F2jQmkcIWsosDJ1K0qKsu2+PrqyYcnn+4MW1PHVJBdvaYK6EOpeCqbkFn7CFYl+Rhr1MHV2pgRsrNe19mNy3lN1tzbOKxWq6urq4uLy+3t7Tt37+zsbeMX00SRZO0//Wg6Wcsa7xWSvlNGqxCE5Y904YVt5RKl53AyI2+UUDs7uUjmbPYKopfuuVhUShL2kX0Y5cVYfF1mgkxdQo27dzOXni/OACkt4txWM0yjFQnLuw08VMvL2+pWGaJOEiR+3/jD9R/2cHQklL7avlhyrzbdd0ygl1BRfdmN590GRiIsMGUrpZc+R/c654VJz5RFX6eZHN3OrE4l+ajtDqtT9EMU1MaagpIOv5itxLYwjMzSb/Et9GSYSWGbpkjRj7kuYeIuZ6EkDYMEaNbDY9HGT84+++Liy+9sv3ozXTumdUqBxS22pWmt8mHMYdYxEhYzr5cMnkYGaeQNcS9vRwGHZDPB1KKtNtefnH12ubnaG3c20wbiCvJJuz0vNKfkQ7WLRU1CY4PMPVB8a6cFUY0MFJZaBDlFg1zXfzHNzfXNzerm8uJyub28d+9wZ3cHXBsMWqjUXGgUn4aKzyxIVsQHcWie4KcjKJUKl0g9hEAFfxxlVRi1tClpItmJqKSYV0/sdFgLMTwfWwFcsFSi08NwQCSvUSWYZj5JJGc3qTZ2awRotDXBaUKCkaMTMGl2Odys/Mq3xLK8pvp2r26xtHmSq2DVg1q8IIZBzRQgRJLjyJQk23JMx2mEuiCXZ6ZdEtsmU8370pki32riJca1VbZCE4VaEYCs9dI78VwaamqwrdEYMUz5rB0MN0vW4ZYZjYJDNQasPOA+ZzJkaveI2B62Pj37/PPzL364+/3r6Tp9X3/kxGvmEI3FKm6XmSL1R306MppZYrM2XzdUFQsckbcrcmdhi2E8vj5+7/kH28PWJJ0hNFNJ1D9JYHhhuVkxV9847ZqnK2eDLsZKNLmcYrItqZn70E02vAtsu1mvL87Wq8vVYmtx7/693Z2dDCGd6MwXAFoke5QJ8aCqKfOEPvIobMvMIDHqiFL+++nHJHZ88hpwQVZR6P3XIacNDHMgtYFkW5n5zdoiD4+mJmfWJvT4la40QBTKECiGmbYMUkQ4frm0pMA0VDa011ip0ZziBUFmJqiVKvAbjb+dBxZBfoRAWdzKIKNhajAIDPhS98rEVjobtcYWrPQghUs5C7wpa166aCfi3J0OG5TaFH6FELlO6cSRzlsGnu/R1xxMOyIcHGiWaAoAwFKKdV8evzJT2HWeYpOUFbfbnXlzoBoGR+UYhW07mPTNnc5ALM/wWLblZxcPPrt4+F+1pYXxF8MKt6nz6V5JxOqiaI/Mw6OFhbW+s6CXT3LyEFeDB2iPUkZZ/9lQ1JcsLBY+Pr8+fff5B1ttGTZZrQbTWqyxkAACAEkm3GVcw+aUhq85mKLRrSMVYV6KSQLRv+bA3YbgKK/ptG3emptN07S6XD16+GhYLF559XBnZ6e11ppPUyHZ7JGtBMIK204wbOUlluuL3tbgjFzi21HihmlBjLQKYPf+7S36lqhjpPzUOaBGwJOvslGVfJlaW3SvOIFKgBaVZMGiSYLBeKxXOgREQSp+jWQTnEqIbZtZeJOK4zqedsJnDKuTYoWSt2/y4SCrnviZayN3zlsnN8OXfdIeERrGtxCvcMqII4vHTYpjdArmzLJaE6eQdR4yds9uZa4B7ygzk2zb8gPzM1upRt9pkIkpc4v+5zu48ERzsXG4SJBwy1dm1L7IenoSPwnYOusr1WapBoxh8eJOHBK3ZoGc6Vq5kT+efnx8/XxsY0mXmRl+T7d2ywIw4FRWBnvVHI1PkBb6hVV3DQvOXpaEqitG5HPgl8ZJxmzT/AAAIABJREFUbjQ3/+ry6weXD+8v722mDdZFFWGmzbw5+5Qew2BVmrAgBe6+GCGTJhBqBDA96otsaxQ2RBjs1lTENeqzU0TE+vr6qy8eLcbF/e/c397ZGsfRvZVfdJv+muUwo1Q3C5tgWrpfs8Cy881cL9fAkVOYfHK44fMGaMxQxsa4MCeyBZocGd9BMwGoUkdNXUft52sAoXgslvQDJJgsRfhURF0EDPko3QgcVk+2aW5LFXeVKamAeZQcp2k31pew/c09mCor83PuhTzal23Jbz2SWrZLOq3yAHtHBBjbTkkL0ZSJjrK0o0yeMifmyQ3ZRAp0kneTyeWmorAZFwBvy0iHhjmWro+7Z1ftHNYHSoQzJd3ZJv1SfI2EQl8PJ4tTyyL3Tc3Njiba8vYJnUjw8z9hsTNsvX/60aPV4zd2f7DarEBFL7J4PywHn4Azq4wbRv1S/Ex7ZVjZuxQSk1Gpp7XkJdP8wCJs8HaxuXz7+XsLX4ghACq1r4ZOSIXkkVMXDQupxEmulp0I/qWxcmYmp2VuypKmFT1JaUbFpfBfLnWZs627r6f1Vw+/WiwW91453NnZXiyX7j5jW97xrmxrKrfZPMGDGkc0B48SX2Z2g3xtZiOl3uR+uu7BykQBRnpiXhjr411r9E+aKNJeeLpVdaRZz4xRcM2ZL/ZEt+5V0KJotxwkSKuDSst5SW3WqBXcEonbgmEqPQEC/k0+XP/H2anDMNBD8EnpRjIelTSHiJDGIKuEUoCKQbPhCU2oo9Eswy/RpBpFT5eB1Er7wJlG+zJj5eAAJjsjS7al6qMTVdKiDIGIJUizOhUnCfIWOF7NxtIqgxX344VGe7DFgQk1yzCofHFKTicTLKAsnyy2h60PTj58fPXkrw7+YjWtyMWcWteTGrMWkq4Z2yInChQyU4m17JpgV1hTY9N2g2Wlj2YxtOH0+vzNo3eXbRFxu6uGRc1niBLwrRFRluUuzLLkXDmWUQ02GFqWqYFx13FEVa8IbI46UqyFaZJgufdw/P3d6esvHy+Wy7uHB9u729vbO63ZZqPP3FplW2IU1ImQC7jM0i22LQeKZAng/j2FoNeHImFyYKHRXtSodwYkKWvApLfQxIjqZ2wL0ixYYLgS6HqxL5VDDHNxaxaEkwr5GicMgK0TpCjECC3X6paY2YLwnFvaN/qIcpHOPeprGQwjLoHrrG9PwjWYLalJ9uFmZbMixnQ5ZpaGVl5QOqV2YDarTJm3FAKCAC6RZE7CpZrQ5JYOvszzZkcVaxclQ1QSuUF6WvMC85DxoxmwxBAihvRS5bQ+El/n1HkypDZwPARLeFiMPn599eRPZ5//p6/+XeGLer817X6xHqg3S4tLPBe2TSeLtKplTLfLcwlDpqBQtcS0YWaDt9Ob0/eef7jsX2PTqmBXEjsZqir580JK4yLcFTzTpfZbrrWrKQIgZVNJEJaa3lq2EiazhnwxNaSWcPdhHKZp/fjrJ4vl8uBgb2dvd29vx71tNpseW0asUnUhsKzUEns+SdaoHT+JydzMRvWqhJYEtofTS6GTZEFWkV5JpE5PKxktKggMUBpLe8I3zAmG5cPcJhdUm/tn2FZUrPJSwvITCLklo6coP8tRfCsPhZ4m42XTzOy4jcaF1SpIGIueMaijoNw1y7uHvfBofWeQpFioybaGIivA6avAf523mLiiwMgu5wZJt0V4S+rqQsCYZsoPqYtyI+Y1m1U63Q/JqWPCOUnQ+iy5v1Bp9VsswBwtmyyEhXDvYbY9br/9/A//zfXJ7rC9jokXSUZ5kWklabxbrQn5C+5Vq5BnEH0RGZVtu2SxtOZs7u7mm5g+OP34anO1P+5PsZnlU/4nHQiHQR4mgqwr8zrkKRSR5EfbNIu1DKLVAUvpheUG2UpYcQa6bpIVBz7lX+M4xmZz9PT49ORsd393Z3fnzp0Dc582G6AFnG2u89xmW6yesiO2zVnQLbY1s9FnRTPzts6NlEkCA429SULlc00Q6StRPvk2vb0bFc/SJMXMJuBad8ozrW2xuTMzxlsd87ktV63bSUX+LYkV9/4M7c+3RrUhackMU7msIDEZg4RLokuRYzvqOl8OpCvb8jaPPoGQxAh2o6fsgiYiQK5eDhzaEpIXk58mAWyrp9j8p8gaKc7Fjy50lxLOkFhiNrKSYQZykDrreHmg8F6X8iLbvnSSwFI0XSdi8mlrWL71/A8nN6d3lgfr9YpxphtO+s78pcm9xS+iRZmBGWXWsuS6bN7GWxSw9F2lz2/m62n9j8/e0u9kQC5VOSFNUqadgQgqJi2OZ4VpCbfZVmlmgQbpAVku0ajaQ5WXmlJAUPC6iLrfjOgL3nY6OTo5P7s4Pznb2985OLzr7hMmCX7LBNxiW/0stg2DsbS+rBLw/hiLoXDZHL2ln45ZrtRE7gI/dOvLk1P6ZGuzX+PsJk+ERv/2IKJ4VskIzRnVFYhhoXSESeBQZah5pYFNjBikAlLApuX9th4wi0Gc0/PMDKQAbuoDSmHwBoNQ0Ldb8REian78xuSwckaUJtLM5uFM1zcXgpmpNkQ9aD0C4lk6MlOJmIyKYTl8Q7nlYZg4vCRplmCl8aPks7WFoBSFsGIGOinUakyzXe9d0TbljCuUhDqgsbBYtuUHJ398ujr68f6PrKSweHLsi7pjVqm3rMtUOebpGYufrWwbqK/IFwoRy5KCbfvJ2zDZzT88e3PwISxSU5ykSQ5hMRdhDYKBMuhJpHQvhX01YJCZThm2svGZECXl20yWiAbCmoZCPJSlT7zWkYQP4xDTdHZ2fnV5dXJyvr+/d+fwTmstYuqSr+ltP3dlWzevJMv1I1H1pa45Y2R5mzZxa2rmztokEdMqUFaMaeiXuC34obKf3cPRxl8YRBh9KU9qc8+KibrRpIkJbrNtKIGCQG8AseW+UfnyfiGhQXXTz1Xj/i9/1D7M3M3dJiLMOb2qwfLsA6trRbHTyzLxs2iwVBErR3Xjsky8RYmHQIWnjO5DPqPQI7w0O15jbxKzUgU4RZ6pENV28EpBJ96no/1DQmmLy2DSTNRCo5YDd9PUUA6w+HNlgnKUqiRnn/NyI9QK0XSbkB5ARmcT0zvP//Drw18O3j91SvPK/9HZhGq+bjT3MG40oQlz8anE97a3DVFbH/7NCyQvaM3swfmXX15+PbaB9QgSqNYfWskpe46xMIVRGeEeQXpUZqA855b2HG1TrlSUku0QII6QhF5ydyEhCMKklLJLodds/o5hGKaIq8ur69X18fHzO4d3Du8eemORFv9P5nCxbeFw5oslppc6zEZLlqe1TIcrDAR/b3DJQZ9mqzNpdFMR0ktyYoPwRWoirte/5lA8aEi7ZWRYFgSJxKWzBVtD9Ury1IhreOC31hfR0/LY5dCSaz7o1jrp9jc2a+nz/zUeDs9CH2QW/NCoqdig7qKs3pkqUG7BX3PvnSX6hzBL54ioWesNWX+hyV4Z1QXcrbaZRcbZQPSPTppsiMq6v2b0tJRcD8dFQbGBGszRKDw7/5RH0olH4IO3puoky4Xg3is3AWAW+AIB68tnzJOmGPmP7oQaxaNzM01V6jpRT4p3j4jWGENJGFAd7lNMW235fx+9+d//6L/dHXZubMPzzAqfmkjSVRTw4M8eZjZJ6OGeg78D3DzPxNOJbVtycTcL2RS1niv7x6O3SPgRgV8B3lPmwlMngdpYpByHNWpUcjCZNZlfYxrIvL6CwMkX3RvnBJbknhkPfuGh8il8ETjbpFBKOK2FYdI192w9peub9dGTo+Onz+8e3r1zuD8MQ//jDnNkxtzb9jQxeSa3KyL2sBgNVrFgKqWz7wNng3ZQj3ohexkA0BqpbSlsm3Ew1hzVpbTsTB0dmoY+1hkvCm84fbiZecuhhVflibD++XUnJSgoOluTwGX1YSHRz21hZpNNLShz/xqPsGjeJptChju9vKlRyukVGwsNT01Pz4Zgpr8S0uHOH90iWlA3PM2Hi2JSvyjRHNxoak9rHHxL6bgld9009ZQ4P80PV6CmtM41+KEJdIC8z+RZc2Q5ta0BTwBEFWvnEk1Ypsq2uG6IDppr9zIlZUDyErbNBoMT7F4UxZaHxaIt/vHZW6c357vDLu9o439IiXjihedfwra9pvJbiuXWJSiHCEYHUyYo3JCqxwSWMBu8/V9Pf48KFQk7j7YQiBjDJrdFKDA8LZ0XCxkzqnkGLOcChE4uwESwkOWsT6lEb4xgU5K+EAU15Y6JmLk1DZaBKHpbipTYNmI6fnZ0fHx09/DOwZ0742Ickm3RINe7UeqZjXODqVcAwGRmPiaP4RVyNJ+hn7XSZoJJoRhOytVFrcxZs2OhWpn8E16RaJNonBMOWjui0p1DJeBP4wwml/HuQWHb5fOT0Fr1mMsqpS1ACzTZtDNs/4cv/rf/89nvV9O15zkYwH/qA6J169nm7XJz9en55wsfUzYBj+5toT9sx7rGqT03ba0nm0aCszCGOkeXFBgWXbCTZ4rNlHJUhOU1VQ9GU5ougcXOd3N0L94uwCEqeymWk+ZcVEETDrMUTZpKC4qjRSfEIzFV2RY8aIgStyGoKQqcnhqHGDO2FQiy3TKGtxNAe7o6+p8++fevLu9t+JGDGcP2xxS3SDZ/gNK19bR+bfv+37/+X95bHq5jbQoA9mXZscvZ24wak1vrxNSiuV+sr/7w/EPWPDlLAJMGmjpCUYSAynz27t+KIcuZkdVIK1lCr4SaZis7mKwcoornL2LOUNAscDe0d9m007zBVxlXVlrrvr/jZ8+Pn53cPbyzf7C33FqO41h+9WJKBZGt9bu/kOjRGMvELstJEw7+bBSUKCiX/vRDPCcsPpsJILfSG7kPDVVovUzMh2NQn3CjshlJIEb6pTXOAPaFBDeNxVAs5D544gSqh9smNnvDzr9/8B820ybd/sxqzPj2No/eekQJPnIe7r7dthZtjJgYsdmMi941va02a8wPZ81970G6AqdQ+ywNgjJKusguwlRqbOP6kgspQkWBZJ5Q+2Ehe56R9itvsdDxgOW7fek2w6woAqe3npJZtjxr/bJaVVokmxnbshaDLlsFylFKjx8ZS3wsLpqxr5y2psjM9bQzLP/nj/8XkezLH7f0N8hKfGLw8fj6+f/wo3/3X3/v703Zgi7mhqP8wEUDY32/es0SUDH48Pbxe1fTqmkWUAsnRIrqCROgZOBKDYql6YLS1Ryswuhq2MM309/wraQWtE4uYjUROcMgW5eiWNSI0zArBS/I5p69wtXw62meHz9/fvR8//Bgf293Z3dnXIz8WAIqUugsMoLYGx3u2CEpAmLvWkfeNl8vhzZWGS+9TTaP4mmRUQ7uOFrgSTCAiTKN0RwClSEOyXDBKYXQiV1ZWibyauVlnw18+xHyUGVTZu5TxP6w52NhUxbEn6PVBMDLX779yhSbSfwhynLjWLQG2Lj7Sndl4taBHoSn2ss0CBS2FP3e55vOK2DfJnJjAoJWOMvZqGgBq6Qiq/HtpIRmpcyLSAXsytSYa2Bch1CVba08SyNeWtQ+BBL5GDRfwy4uIKf0HZ7YehFvRj+ny1Zxb32eAMnH+qaI/XEvdf4/+niJr/XBh/W0/k9e+ZvXd147Xj1v3qSpRXstpbUyXhrHokEsPQtbtPEfnr21njZujYkqzGMGPoSbEZ1ZtQPoXmiouDyn5CvwfMZDpJYI5AwCqZm1MNJZCkY5WcZNIakguZWn+TxBnC0Tr7vDUvXOtmfPT0+PTw7uHOzs7+zv7S0W43ozWcm4cGhpvdKzjjl6mUEfa/RZHycnz7NEccEKiyc3a2rGw1B0QUostQZsVVKI8kokUCztBQ2YWoHi4bChrIT0rLMy0rW655/Ri5mbTzaBgrsmMVwsWkp8TSkNXzBS8EiFuVhNeDIsqeI22+LcKT0ClQphJj20FTxxErLe5nPL4hoewCv08dPsDkAKfqd/Mjl6Pa4Q+NK6tDSRamisoNBQRIkcNoFUH44OKp5FZ3+ebVGyapXNnLogp2fEYblDRDPAFyrbqo6TbRl2t4jsuMzcbGOTTUyjrit+CHIKWZ6WAwPa5raebl7bfuUnez/EbkhjQeDOHELOwcokoRBrpeSwcG//ePT2Tdws2zK9oHyYu7Hn7tYkCvQBOguNeq0KYEq+LFUaG+SI7Wt6CLUhxBwMWWSo5W7nGze6s0Jg86mgnHZGsHNk0YhIF1+eNbDt6cnp6cnZ+f75zs72wd07i8U48etknQ8r+VshPfwdRrX1CX32SXMjY7lZnEInL0XDYKDQ6SeNnmGularWGduqCJIqrT6J67kzf7TShbk8gUHmIMxD2u15eSbQ2GOI2eF6GBDi1LgpLNvYRBZkzQlkzrZKRsmQ+oBiHQgKK8NJq6zmUoA8NsiNOjGbiKQFoCPlymb3S8pbUi95n8HB0KXvu8W2Tt6jW05soOiVSKoWrsC6KDrJgJFtE5kMYX2SopBJo8tLw4tqUqYTHb3Wixg4CIDLYtXCSDkFzagJZplQI4OpkHQh15boFsUwnROsXW2u/s293/x4/42rzdXgjankSbgkq9WJqqQTEJroC/p2Rh8enD98dPU1UZrELL3lvNGSbYl1AZ8zU9kFwSBPN6ukwg1GA+KqL2OPnWopHtclFQVXH8F2O9XKAWCLEtRqzeJlnQvDqHUBXe42DIOZnZ+dX5xfnJ9dbO9u3713d7lY5J8nc8tdlsfI4giav3QfhDAiXDW7/Fw7y9xNdRvOEU4IoH3iRWYnanuNUVBd1wdMojoFvCJclwFVMTm01GIsTfKU0EIrHH4ilXWCm4HzkhmcnhkSdcMqEImI4lxQS9WlBcFnTMzSCNN/qrMg3MpAjuTGqsbQo7bfAGfe50UFzetbrCgpYUZlm7RZZcI1CWBkeXqUPYSj1mDOwurMGMDpywLNe5KIbgwqHjWclWwK36aOKISFbEqDagU8WS7hsw7NQk1Q+AxYBbUlWdW8mRZkTr/FQ73qGCPSF301Xf/04Md/sfejs/W5WxNey1xuZnUYXauOw6QbhE1ELNv274/evtxcDT4oGj3BgfKY8SD4qi+Afn7urMKcFtUUx9Q3r3Ut+mOd9gsEzyr9zvqqnORJQH3yVfux+ay4sh+Jymv5ZUwtE1oTWeTLvbPt1eXVarW6OL/Y3t6+d/9wsVzoMwliSPHkGJmBVI7oP1hGKy01wtI/AFFJFvsTomjO3Nm1gLp0JQ0NjJ13go2HBv1DUdO0zaJpy7uosikeRp8IZyVcJmkWq4K6oA6y7mo0BG3L0Xr3din3OVWiBSo+kAKjJHpliFodnTGLmCbj9AFi2W8Kl1Ha+wX4foCOSj6zLKwJL3tKoir8RkS8rAkn3GkZvDBqqp1bmX3eEoKwPFpkBOAEyZzPSp37aCN1Kl+ip6wSZiBZ4FAejc0mL2d0t4gbui6FtbgfQLdUdZJ/2QvprggdibesOFxHIveb2NxdHvz84C+Xw3K6ORtlibKjS0iaZb+TFiEpY6bNYbE1LP+fo3fO1xcLH5BGsi2JyVHP9CG1qe4RdICAd59sNj6F9AR5RV5fq6GEs9cFdIxlAaZAiRojrFGI8OCSPuWcPooZV0qUNRcL8LrQGhJNMkDHREa2Dc3MrlfXN9c3YNtX7y2XCxYEI+cWESOQCg7zsgtWbS9Aa3NPYUJ5LUnZXrOod/KsGkKOOLNjK7chuKn5WY2+COGcs3v2FGRbswSM68ZQpGflkpoOMN71E0j5+Xl6KvIAoY0cQeRj3jtH/2pEx5iW19PU5EHpIm/xC6XbZiPwEg1mX/stLG5ixDpkECt5kSXH4IWaP2uTUTe9hy6uHvULiaPpbPyHp70Ki/79FbJG8eEztkWTIUvDaPC7MUQ+F0sc1n2ZcJEsTdNUQiiNpRmaZZ2uwDRkyNlNT1qZ2zZycqRo0z4EUwX2jPC6DrEtK7KlH9WkJ9za1Wb1k70f/fLOz642q6E1Qg78ZMi9RwQ+IMoqn4MCzwJAZtE/U7i+/PD0o5vpejnuTVZl2z33AZ+XdY6d8RKRWWBRSoH6KQj8/jWHnoSgHPdsNZFmqMQz0+G0aFYEpnzNoaMETFBzypNFCPDBWMOnlxRLYKCKfKZnH4vuCWBk+SdzNufn5xcXF9u726+++sq4GGWZegXj74rz7LfaXYDPVCoiYqO4v8C2BI/8LN6TxZBqY5lJ+lo6p6TEWU8XTLs5jS6ObhpE+K1yhbNwJjedE/1P64oJZkh7H2GuEzMxxSX0opz7RIUScVRraupWU84svcuMbQtboOjn2mPmsz6vpC1tBU0BQMV/6+8lEJ9IpboTz28zlElomNUvrCUuqQ7myXzdPYN2zRkzbYsxEAMDN7Ol5X6Nr/STRe3x9Aa16Twl1s90UeVdp+ur8BdwKFUopomAqJMEN8PXHFAtqElVTxpJZ1sx31dxo2ZR/ryAdeb06+n6B7uv//LOX6021/0bicir2DMou2azUjGhnAEs/UPEZqst3zl+//j6+cJHN40MyWOkt1LMCm8jSIPc8YJ0AtyFVxL4anQiwd9Zl/6DYWSmkTlWRGXbTuSq0Dw+2RY5wBf4kqWzklk9Tg3T3Fbj/QZdC+6ZMO1vazjR5fnlZ2ef7+zu3n/1cLFYjuNgEVPEKLPmIFaZbyHYddse4esoV1OvSqSy1Wfm5WqsZ6ZEYs/rFyE2z9v4SaBFSGkcOgN6oSiOdiwb5HTbrGfkPkWf4g1gGMlYRIWNZawLqwnpxS8ypNQVJ9uixtmxJNu6wCeA1OkMu186L+hG9jZWKkPh5N1CzrtYo2RP2sy4FQ3aY+g+LQ51lnRCuqaDc1et5+Ck/1dFJuNiOZhx2pFiLbLEKnAqDi1hloHRLeD6JNnMMIPBQM/gsKjEZXXJtehrSb+qCBfVGJvUciw4QFpVsiwwUbRyLNSDaGZhsWjjzw7+4pWte4+uHi98lDCb0UyQNoRBXiEtoTJEPNsUsTvsvn383rPV87EtiBIxIZUlIc7OxWo0SEsz6QQ784pOdhevJBBc84SeSOU2Jd8NMyN1IrcLCQ19KWJUFIAEX5UUkRzFxgvBJvq8jEWs6DUjb85rp2K4S2Tcry4vP//0fHd/9969u8vtrcUwjIiDpZinmWOdlQ2wnRLbZj0bWsvsk4QtiXfflpgvuUJWEyZSphquJwcCiqczeTbv2o02im83ln1qWBYJColduDnDjcPM5o66GFqdNcHNc5jsQFEDn6EBGpJtScaC3rKOwCVfRYnnLnRuKywrT+piMyuY7qP6/FnyOX9Q2aN+RNhW12wc4srYiNJ1XYpn5KVDuAH02CfyXUHgwJ6npGE1XpJfCBeKWHD4Uk9pmlsU6FtBOQJrogO1Dij4+jaSCj2gCeyMM8Wl92eScy/1hbSup5tXt175N/d+fTWtmrfiWWaQfQnbkrTmBBwlf9aav3f64cn69M54MMWkFj4YQ57ZS76UsNnoL1fPawL+0hUx5rwaVa7QJA1XjI1Y+ZcJC6AbTRuDpjmfnKXKb2eejlIlhBSzLkspeq1GkkG2E5yusQAEp3EcVpdXX5xd7Ozt3Du8M5ZSCC94qa0TVUPKzc1VtiWW5uaMAkA11bYE9EjLF64N5+QEEaS9UXJFaEw/TWQRDoS72AtBm9qMtkT0K0OTRaHXXQwyb327rSoBlFrXC8XtCPcokW2zAXeSCK+V3pYPRdZVQS5h8jkjMv/GUM6okpkyhQyqntTCmktb7c5WILyEm74YEpGAEZa6alu9NtJEa6BayQumjSrGTFCnZRMOmTnumSG0kk8Az+qzbI4V9nS4Tv9GSSWmuDKATsxc+jgA1ksddsOq0NNslaWEu7tfTzevLO/97b3fXG5WzQe61CzwRLwxSVYUtuCGRsbMYjJbtuWD84dfXHxJLYiZ/Mm/FYNs7NRYcU70ztcBQlS95uIS86ibtAOWI1hlmjyXHKRk5SinQCyn48ZCYvln5iHJ7K+yqylMKTErTCbDNVt3WGKHVoVAJtteX64+OXowupxVjTA5p/JC6bSzKHNUIvIobOvZx2kBpeTZBCe/ANNEMbhcpClbxSCXT4EoJLDcs3shWUUsRXiYfhRKmdQatXdOQk05UxlVKiZjlwxxtVa2FCWGfFfOR4QtE8pLKc5PnWwhtqWNnKVNYE5GRS9p8O/ZjvQQzNhWSEzB0ZrzdOmhAGzANetL7gALQsiYIULfKI0vOCK8a45DnhQnLnWRbCs26+Rf8l4Il8RIx5J9hALE2LD6qxclTUYhl9L4mBFOGgoacJEi53UpffU/2vvBG3s/fLY6Hn1I5ac5STecvgR8AeKe9T8ISkzTzrj1f5z88dHV42VbckkMermMNIHEhjqs0ek9PT1S9TmSzpeybSpv6bFSU+sOKKjaX2XbGScxVYIMGFRsi7d1iOS4o/bCxszUm5WgAPcOS0o+tbSwLRkb0IphNNusRnmyeYQlnAyq8Croi301saPqk+FMFJB9BTebXNUXz11wW8EdYthWpiguhlXjgtLySlXzVGBXWDbJK1NCsdNEsUwSTPRDFpX6Oc2YQCoGpgdmzCW/6sp7+rKj6AjoMSzWRQQC/bWSpZkZc4/CxZVtKeE5BSxxQgrLvATbnd1HEGXOtoa+3ci2xrSDDROJiXLQMhzRzFqjjF3xmrlKNo8UHVxbNpqpAzvIUycME0/g4GoQewhnyiWjQbaNedI4vmVk2HQT6MFImlUm7BMllaS7skG2dd/EZm+x97f3fzvF1IAJsqZAROskIjBVZBkVvMi2O8Puh6cff3n5aGfYCdNsJVJn++rmFimnBLfYVsQA/jLRTU4h4I6ALvOsrXoDTOsU64m85ZLAn4X4IfmlkHLmO7faLCNVcnDexKAlw7MUoqaGvFxDw7OJYhnDiLCn05fPH3w16gifRTjRYsgoHIoYVrfe6RDnUmIsV9OgEhCqtqxM/yOdkAWJOA0oa41WghrHUCborCTmlCXrAAAgAElEQVRJrwQvZsILAc2aFYiMntVoqW8LrsxLmjgE0KoHZk2Q2Ih4pz6pH3DxRFGOpB28xF1G2Kxu5mybeRONFLatdKlQ0leUeR6zxyaOUKyjQGOi8xQJO4K7uknQIKQEeXaSbveRZcpQwq02gvuyAhwxvLZcih+rYdujEIptBTb94HMcCvwoJbY7KujZeEGJlmhS8iUPeFL6Kx+ksnOzdWzujXf/7at/u9qsWmvOOsT2ufiy4KSOF0YKdaYSYxtO1qcfn/1ptbneG/fW07qKhP+/5L3dtmTXcZ05Y5+sH4IgCRAoS7Zly0Nu2y3Rask/Utt0u4f8Au7RvuiX6IewnqOv+84voUtbLUuWLcE2aRIACaBQQKEKPwTxU1UZfbHimxErq3AsiZRE0jkGiVOZufdeK2LGnDNiZ54zzUnLH31HtgVY4gzoyaREBw8Iu75cVHPA2QB1R7/lkya1YjrotlQe6HSNUkiz7YhRSG3X1KhG8mEueW5LWgctGfgl21UVVQzFjqkP4u4H//lt/Wud5A1Zfq2bRJjgr0RApiYxATH21e1Mm/3qAcPna7adE6rUWE6XFoObMcyo5WikIjks7OEFMclL71jLrAiizN72rPYuFMOqK2zZrn8msUAHs10hmeqMVJbRXigoAbOpjpV22ebmNZohyFuxbWxR7P2Ixr3p3Vka0ys122IrqgYKjQb6AIoN96D0mAwdeLhBTLXZFY9NScv3AlAMVRXpsgYWvF17GJeQkFFHhND3ZhuHi6qJIgvd2HafJAyspWPZEC7RXO3mcD89FeG/5pCQdM7zizdf+NWv/fInTz49+IsMjkgOROxcNn2PgWPCzZRuHbe++4PXvvfxG7eubqYVMDRRPdFcolnAgrBVE6nSh43e6EQ0e+RheCoh7bc0vagqUoCdtIMSdLRmAyPiPvGkiFTarRgEkHLRi+BwtX+p8mOHRc3RLUULXC8xpEOpPI7z+YP3739w7239a+mPdWoQGeXeZXCpcCTM57Ct3SC6iUJMeSrNwgTVWy/YFvQjL/RxztBAuToNigx+Fzdsm0FrQ5YCIi982DT1b9OvQcTggIz1gVFKJW2SwAwMzGVNsUp+v7h8i4ElezTcouiJxuIy2MwfICr4ywWE4bRA4eIrCCbi1h63vB2omoGGq6MHKxkxVF6R0v5HGOo98iDcnRtuscCe+CSYUXWMPV3b8Ape1/ywHTAMdqHZlv0Mh2DtWb95uk69ZMLmS/3sxrax/pTDkH+N9ZtEM/vvUsTon+S0rYopP6KtTMJNZo2b/JWZtfC8cZz+wdd/9RQ3pE/DyEonOrX+WkVSwNBtZRBSyf6GUSoiz0++dHX7tY+//9rH37993EqdC4Ulmtpx6BNgBvIghm3I1WbUjjEC5x8X6WpZ7ZeGgpU3bVvO0xZ/D8fW9bsZ2RUD5a1COrrdbrYl3AH5pcMsQJn1x0JW2ZuViahiyk7x0fn48P1337v3ff2K9DvSb+nUg9JBuA1gSlEav6QffWvG5L3y8firRRFuM2cH90Vsexw0+9nvQcAm2wbTjpRi/Qkc29kilQrI0XNd9S1+KX2Uo1vm2dpQbJ+kebsxrFVHprL23VEGT6MviiHhpVdWZSU1T9grLYQSYxRUaDZw3VnlHsTJsDZ6BLpdalNMfQI98CNFDwQ2VV9zKNDj05rlL+eyfSG1nTO1WMHdjBmNkQabXBOVAGc2FShfAKXN0pDxIybuIugmKxj+AwHaQ7hNbxfQY1hzVM3ao1D9GaGBNeurebK9bA2cwn1pfcXprPPN4+Y3X/7NR/mo/mCSWcYd+ewX7JGDtsN3LzVEOjPiUOjVH3z/3qf3/8qtlx6fH+P7uy2ipAO4pJRx+B8EHelpC1GDVhyQcEB28as2IlTfX+tM0i4vkDWItNmBKrqjdr/ErdaqjLa4dSFlRnamJid1h2rXUja3qAcWrYoeNoMSGC6w7fzxJD/4/PP7974nSa9Ivy1JJ1X1q5Ez2LZ0x51SwLArsxlmW8tRZjEg5F3MUbszR5LbhJXNti5HdSZlAaNvt9S5tazko8+LbS3QVtoVNVx4pZpgD6BdzNyq0+gJgfpScnhcMRlsvdnW1yrXp4EmejWW1x2XYTCGI+QqjS0wZTWAT7MrCB86DJBPUu5WzXYriMPL1yY8IsoxQ/JQ9Gm2RXtKTPbmpEiv0IuHwsimX+fym3aUuphTx2i3KmUFo81HJcbDCAbH0cQps+1uEkuknqoSiiJXE2dUY9EKv5jgwO5qsFHWTsMDk8znrm7/xku/9iSfHMdBLCe1mr3UldR359Yqh6KXZ4mbx817n7777Y++c/PqRoo23WmcbLuiOlY2uljfYuxxUK2Mlqs745HJtRwqz4ZSZjxz+WhkaNtZaQx4F240+2vBtpViEt7MHZCe0NWmCHS2r1t10u0I850uCqETx5P84Pjq/efu6M4jvfvKIlkVz1IeW48ETWfTjLu+2h6upSu2ZgusRCV/pXBVtmqL7Fj3KbgdY9wPto12XpjQibrENDV5yUKf+xrZL5JZjNA83BItuYfe6nn48PDwlAOIjHVuLfgpQ2sl531adqFKMJnGIT0FlHYHcpMgegTAurcJxHdgg3dCgsNytYtdqWtyowu9VAh8zsA+u9iIbvrzQNIUhZnFqXUa/MVGiu5qx7qI5+gy0bViOQOnhACChFvGTWXowA1Vl/RTVeJE2pubgRluxUianwrqC31O+KmsiH75q3/3xRsv1F9Lio2K+8RbMJrhE3h79YTifOvq5rc+uvdfP/rO7ePWWWc3AzkFxilpgvfclXxjnpiKDdIgFqIj8Vlay3BvcgaDOHYmO5k7QKF8A5QU2zaR6TqPdzlQQtHSxq56m8RAqryvKS42ZHkuLxDH4/zg+Or9444k3fmG/u9XxOM05+tDzAKzR54oclGKEiNYIueWdgCd7DTb2vxR7uP2Awwpm5cK9mYuIp7i5aLEMIUgyJhEVK2QXdGGuqj8CmVfa4QfLskNNINtu9iFaNLsIyStTZpQ8iCgQwRptg3uiWeAMM9AjC385FNDGYI43GC9wWyb4bd5yUibt9SbWPZtLrEihK3IZg0TrJjjjbBvNCgQNgBDMRYFQDtGJLa1S3ugq+cKm0yrA2Yr0PSvMP9ohLBcssvF4LQ90DZ2uSBF9JAOGf6yjjQ/RRz/7K/8xllnm2KQnH6mxzLmDzPrnIBsNyZ14zi99cnb3/3otedvfPlJnt2IGB9JRFYMN7YVJKOOjdDU8bbuTabvNvh8oInWbmaFeV15SKdGbZRKcXm3iQCUCw23PAc1LdTuqUvhmrrUpTIKyZ4ho/eSGUe94fjg0ef3v3SnYPF//RuNx4ksqStwsi1ktrNtoIDIwWWEc9RjY72wtC5ly4t547Vh3lbsuxve2HYBiSeTIqWVTuXGtqJ9avMwaq1tDa6g67EB12xrxmTZg5HaUnQhUKAxovVMeqDRKv6ABAh7t6CevoDXKPnOZkzTw0jyYFvTw9aIoY1mwQVms60BHA6YAbjReCteuQBhErJ1bcTf1NByZAglGj/YViCo2LZ98KqiHGrYi0hfeAAHHGYd6EVHr0aysMxokbHoKunNR9mSqYbmWjBvHxWQoiR98+XfjHVeM+pCN9QazBsqEhqmh9Jh9bWC03H1wyeffOvDVz89f/4VfSXzCbWXFVQbtXaDdBqNw8G2KvVpHRAAdjtlpt441TgrzC1PCNY0or/ckYspOqfDDnR/3chtSe42oTl4zAT2QsLuDYpANoZ13GZI0vnDB+/ev/s93XmkO9+4IFnV31NggsN+vdChAgYUbEvNNkWNCHdVjAhnqu8nGtxuQ6mb1iGzQYUSA/oU21oXcqTCANgGG0LxuKR62sG1CD/N5Lpuvx0QBy824YJ6a8im6XCBiyI3enB74FSQ46bVBtXERpFXzGqebNuThJ0h7IEu/XjrTlw2alli9hTdzS5A1cSN5M+yQkggvSFy6jU/xdTsqkoxdVlkhHNQ0i4EWKvmlgGcst1dnepyR5Kym2Q/ORv0jW3DDJKQYidtsK1GCUc8ySe/+OW/8Te//AtpSG5C6anMHMfKIKAyAaqvknkjbtz79N3/9P5/fu7q9nn93c9iOahjs83bpM58g+PTKL5REbLVkKSe22JRC/4Zzql717WhgXlqI0F5e9u2A/CI0iQwkrp1ZJeSXyURnjddCON4cmdbi2pKenLog/Pb79+9q1+RXnlljguaZ6d7dK9ebOt3+XMZE/K97Kcj3JCvdOFkDJJlRi2cqWz+m3sbjVKEF1JPmC7MxfYzHFuHmVbrrE57XdBWwGZI8xXnl5xCQIUCqfGmQRKMBtwiRZcTpCIkjQRir9tUN71U2WqG0hJfTrqj6OKVG6ghn95yjCBuslSxKlx1KDvyvI20EYNattD92pwGWfdW1mULHubk6Zu1bHX7LUtbZnhsPPLghKLf0+31dTajYNTGjsM6vcsh2nWORqrd7rbARXdfkLQOCY1XLJ795su/cYoTfDxqEmzLMjP8scM8xy6umFTeOG48/Pz9//T+H92+upU6D2WtHBENQYlKIhIxNJ3gV62nPYzLQT23LRcEbw3ID4nBgqGNLfnFM0WlCveGEsTKa9kArcCXSe977BxjGUUGKVxppK63bDhrFLJCiuODJ2+8/8pd/Wvpd+QbXxePUy1w0NdkW2+zBDXajuuiJqMpwjfL1+FwEbNlBijM6oJaLylx3Ep3iqmN7LJ7rLjZlgKIKONXnUeHcuSxSlgtqFUQG7v7lcg5yrS4rZVF2hX7fMW2kBPwZBSqqr/FIC6PaBVJavDCHrutkuE8tJZjRwukILRlV3yroWyYqSKcwJV9IwFdSOpHVVSoBpSyDGEV5ibLI+24VhfJOkVR6SALs209rZwj3SFtdax7kUEH1ovhIYYAwi1AAv2b9Vs1GN0sgy47PtuS6XAjwqCsy9ZFOmmLacGN8tDx6Pz4n975xzeuTo+fPJHrEPUmiqTTKgfvVdyYKbh2j4jM8/c/fvOdT++/fOulR+dHeKOyiWrbtHC40U5xYeKlIqAi2DLh3+5r2GuXb8U9LzxFQbyI3VCarWAbJIyoGQAhvASofMSCG6MRUeLdA3emNythMsqidavA+kTo8eGDd96/e3d9GUG/pS96nGD8vczHWJRONusjmXCPk9TKVLpZ/MsEBO0eY9buD9sNFvUcGXmkHBGXrBi7ctmFnsm2Xs7o49K/lR+Pt/prewrlEXVBZkOgr4LpNK9UlMPo3wAPgoz6ybayD1MmvyJZG9u2y6k8Y0IXSI9BbA4/+tXpKC5D+o+2tZRbGxKHRqSyW2HSbXroWEccqORqoGHE9SciDoq7eGuMgIYFsM5m+vPfQbefDsBTbLtiO74Z4P1ytgvaaQFdn7fs/Trs67Xhg4YpzOQj+eHu2e0t/O9jN1jaws0qgRpNAMW2TYrH+qrC+YUbX/3GV//eVVw9jic2e8owJ1ntPUmzgeg4WzxRlCOOj5988gfv/9HNq5tjqMAhNg0bDsMhyEMDh7kSs77jQ98SUKDBn64HWi062/XJEnC4cEmYB8sz7mry5oO3WK62Jgbo5j9i0Og4XU9DqB4bx5L8otRj/egqXNtYH/D98ME79+++7i8j2OY8i2ensm7Api8eZJYR7LcceAw+C/pI3FyXMzynKlgXqOluaUS5kDjCXYsZ0Iq3rJlDwicOWIoN2bjTbmyWUVmRZtOVxbJ5Wf7eexZNSImd5bndj+cJi1t6Xth9Tda1THNCYGwk7Plqq4lPUf2BHRd7hx3gFnPbWEuADhCOVvIQvW3i5mqhRHEEsRmZIIYJbPPM62/UBLaqRasNm/fkt2iwbZu2aLY1a7SyLCUupZpc5htUiAEYhljxfC6l5coqXvSanb5jm0Akyu+JWOkUc9sVwmLb9TUHscK6ALbEXBYjMxHx2fnzb975zedPXz7nmY3BpnInK+gQC7iXh0iRrHOZp7j64MmH//7BH966unVWrvU1TK213dBzfGKWTEdWOaWgohVKxhCYS1eIv+bQTYU68ShjtTZokb9vnGlrVtCp7+E8Xa8D+AZoZXjpokkNB7tO17JcFMLIBtQh3XlkKM8ffnq+f/d1qb+McM2D3/Md7Nlsu/JeZIDuWR1jGzUXBQFxsy3zu8G2lsy+vWHhCk8XZnEIQXf3QdSGKU6NlbY3o0AHyuWNzUmC7A3Wc3Q12Kxs5JQa2xuR0oILm6/BnMQ7KE8L0igDD4RrV0DdgyMPaJdDWFeiSqoQl7SNSQLji6pE3Oa24orU6J0nX7VCR0fDoQY5Zls8lIcr0eRkqmvBIRZmTBXdoFhmW1lMhvrQiTlgzRq4PdgTsq+iVe/T6yJInBSBmWxVlZnYbh9Dzsfoe+KQY59qAlsBUqm8Oo5Pn3z6T1/+x/BsFXj7kap0ro68NMOlASiYuOjkiKuHn73/ygffeu7qS2edW4FMBntn4ztEVG1XQyWhgCHgZILvfqyejMFhy1jmOJGovjnsMg3VJcEwSe1uiRi2IURkgqttAEW5KmoGKGyM5Ac87F6Hbef5Q331/u07uvP5/DLCNY8TcE+TSTeW9owyqXdKLvfrVGOESxcsvapKShqeeqrcKCYCOnNO5hZJLURbUAdVnG7I2/DAq56j4dRQZB4Ew9kP1HEVFJuEWc/ZBgrnEemevaXFPdPl8Ckde5dkwKKRrqxqEYA285wmMFhxDCRqtLyRNaatwQxXQEAYj9yD2FHkx5Uw82db7qcZMbyJpq9xqaJclcWuJqJiZtYbjGLB7y5C8NymEBspujNZZ5iTTwwwr4FqZohdJgSKd/VJTVyMkQuHYZzDZuOdtEorHzePm7/24jdOV6dPH3/Gb95IWHyyrYZ+2dcmSpi4Jmadocf5+D++/8o5z53G6ZBq1ucikw2cUUCYsicpYGrvXCBqJ6Ny79pJ9q7R/VVxV0mrZw+TGGpmts3JYJYJy2TBWI0Gvnh9sm2fziiVMw2UV2N6fKivvKuXpcsvI1zzOBUaLNxbMbphmmGw+OQY6JCBXbKNeHa12mHhJ6vzHgAZyh1Gq5reaoX1tkurMZif8bLzMBmD4Lma+loeKnBK47YEeoQojC2t6bOFv4231K5u74pLX21Zu9gHynHCnM9Bkn2aj4WSCP8MR2PSa0f0OH/7rzGnSkpRyOdkWyBvXq+aUo7GnOy4OEtlotl2ASvLm+LL2t47nmnGa4XIisxICFWHc9F4y9AE4X2khpYD2+KYxXKx+dQ2yebhbMz37mYIJ9vWRsPRVnz25LO//7Vf/iu37tSW7R69d03nRUnaloz39jZDkRlxPM7Hv/vgP5yOU/amyCmlMu61UL+VC5602kQ1V4A5bHs8V/BZ8FmOI1tLB6a6v9nn2nINI9OyQEppGw3pnUfC3OJhBM1E0ktZUZZtIlt0DtjsFdwPP310//bLBdqnPif7RY+TL62eEw2ZbWM42Hbbb853QambrUhTgFxFTRFl4OQnoYgErVrsV1ECYqPFcEffzE2pxgXbWguAiNk2WqJFH9eMdcm25qtus+rYHFiqAjdoGmhzthF4FkTH2zMPuRTN2J5hODWkYjglLkS1VVsbDq6jOIJtaHMhq9YIol3PaAPq3NCqNNLWJF61OKprBEOQFbXJqGV0tC7FzaLCegbW9OPz8ot21rmx+P2WVh/yIIvXunWTz5Bp81A2uC0gZD2boXe2rUUecXzy5NN/9PX/5aVbLz45rztgOdd/4bwGv1ZhZHQU6Mtr8Uccjx4/+r33/uBGnNJRHSkWKQY8DO4vimeWcONwJMDDk4tOA0cQCCoOoY5gyCDkGrG4YNtZcMW27XNsyF3aTmbTLLUOQAsUG0AzeEPV4gp13fi689kzv4xwzePUDfwqGdiFJ+G/1gmAXbqNRteCvVjNUjS4Cr9uKK1IHeHNJC9NakovVgpMbHrmuEO/VzzkwMwv8//OtjI+2FoXkVnEbKtNc8W1RCM49Nq2FfDDtqCtyN3UEK0ctgtDsDAQ40VhfVPmYNjW/TBduflWLBtx9JaKi7z32JmLIPbATFCwvOnyf/16x8lsa7HNuQ3HzklMVy5bt0I2XXBpcoK0GAnVKhUFtBFswAcQGM0FEx/BmCM0BRxEVPx3mDWLSE8SiAIhjFAoHufjX3/xV587femzJ58fcGQnIU3j5sA0MBpeGytXbELx6sffe+fTd28cNzyXi5CD05ZU/WTstsnLLfs9Vf0CLFWZ1j6qMrY2YuAw0NSgpKckDRKOGC+r8wbbzoWKUnImXYAbQGcjMNgWyc9Q5FkP882Hd9+65ssI1zxOtXwL52AXERGiqxhMRckO1MQAUvOWE9OZi8mllxHeqsg8VkGtYHu0xvlwHzZvK/axJ+SZFsdzWyjYrbcbStJQIxqAyTocD2BEjbXHHXOIxZ+cWvs2C4It1nVqrevaLMU6sFDDp1sQNg1W617VykD4bIrkDXhLexQ7hj0asida6OiiX0+2acNT4UGtO8WRtdlANWCU8jqV11CSawrWbtKjI0ev5CLwWSxqudlalwcZmmGXSZMsK7bX+qTb8QUcuGW7qRBjgEKRaKfg+Pz8+S9++W/8ref/xtoHVNiOxQWEAGMoRh9tokkskZXgd9/7/WN9F3/ONeXItYzEBYtPtm2KwDyTWCzJnDEwSaioId4TdzG0QVn/8BYQDHANuoJPbbQXy4JS+7aImUmojFsfVREtu/AWNNeny9RDvfnwlbeu/zLCNY+T5xfNtoZ5Im/RKCuUs22Hsrk1e24L9pCmAhCQSU8zKaI2N20X8HsK58WqtmJN/rtR4EKjuW8jwaij4GS2NUVMJa3z1t277reHaq4QuhfO5R8DsBRaqrRdOi3QG/B6/FsjpIVB3EortR39ngnooWc67LkyEvi0yllNX7TMsLcUe3i3Lfcca1RdJZQ1NV56VFkCTkQQEErROKzIx6gHMiN8IjRdpUO18i+0p3EoHzusnNRYFzikANvQpsIKM5am5pbRIIwUlywrL9jWzsQEehVXH58//vUXvvnXv/TzhiDogl74QJAw7KzSLw1t7DRGSMcR/+7+76/DiTnjmSozcyaLA0GWCCuo6TgpniXpIyJ4+zZuVKa3kBrjwCrQHoEh5t6CmBLInFF3EbpK+yxdV8KcrOuu2rE1aZFcDLwS2Op51ln68OE7D99667/7ZYRrHqdZwBv/s/tMFK4VUsItGvsB/VbJjiFo2NEOc9xs65YaHT08TnCEF36Lb3JEuG5auU0+uEtWG8lU/z75sDCysc3SmiJGc5frezRUUbGtyGybZxhkGOOBPtqxiyEFHp5Tk2/z5MYjXaErEZFi3iAYIHGORnl9itNctj6zPwpAmAfrSh789vmSJMKbB942neVputqfyZ2NyPiIccF8bJbRy0gbYKMZqDuNMchSMCInrdZ3Rap+XHRQZzqiKIUN1O+UzsJ6JSl579r+wURnpdg82OHkTiIlcuT6msO4g1lse9F+ly05Ij598umvvvDLL936+qPz40NHYWhlFwPTrZGBuz4Ga/mXJybrGxgF9w8+/8ErH35rkY13yuXD9eZOyLYpRQdgKT2Oqt+B6vW2ep+LlVcC6Ni2OSL0B4Ue5qygoL4IIgvpWhagZjyd49505tziRMOK+VHz4DUyX1fdkglfrWI+Pnrw9p/wywjXPE6ysymUe2xiviiYmV0WqYS3Jg7AwEiksD5o7LqH050/l6I/VqJ6Ny9R6TmwbbUcbtDmKyqVw1anQofprZuPbZIQ5geQovGSy12dQtlB0DdBEaR2XXxpAoCAbQG2jkEWSbmULas/nFOmoz0rYDzoARPDMbxt/XUEcbuUcYiHPUURZpdhrGOYCfUQfGmLW5oql6cmCXCu7zlOhVB7pZE2dClwYz4v/3MjbhxGIMbUSpN37qg+VAOfntiMzRfbYhqSjgnnpFpZlft2+m5AnEP2i5Vzo++Tit60wvYoH79866W/+9X/SVLmOeKkvhHkdgY8VQG10+Rj9iv4FEaB5nyKq99/+IefnT+bSeArgy3x4z7aCls59za2rtblZOlplDn+iMRq6D3TqS3XNkKjYxMvEVQzkQXDXEBvwbf0QvV3eyjPNmW0s0hTuB+iIqp5olKkmUwSds7Q+YNPHr179zXpT/RlhGseJycHlKOTEe0QzEk4QirHPiYBXCD6CJs3LChK16qlAVIgXecwSm1Bcdcx2gRzlEZqEFR7427qpbG6Zgk0wmyrKI8w+r5hrjQRxViBzoQ21v8XHo2EHYQVZrOqNQmx9S0yT1vMhmyAN3ykwtFswYQeHOpNYHZjXUCsU9LQ+NzB9Fvq1IAqJ90GN7r8jADfQmppAYeADjVeB/fMuC1+9TfGrDB25ZK8J8IO0XfSanVUmh0WKERDicdljcKBNBbNtiM+k1uqCSH3cej44ZNPfv2Fb/zS878o6TiuCodJPGMs1TMBvylsc6lD9czonDpd3fi37/3+o/PjMsml3F64Ry42UTRUhf2ipjkvQplH3Llksy3QZQZmbKg3v7XJIVOnBdXeKDwN6+YMb2e6pszrVCt/HgOUdnU5IK3qHplFXcWHT55/9/bLuvPZn/DLCNc8TknvYPryDZfyZzIzjERPCkIF3RjU27A1bWfc/2QDXB587W/Dpol5ghm93H7nxLaaaKvHYuGlNb0pfK6YK2YtI4GNGgO/cEU06GJjWPIAp8P4qo0PnF3V0v+dUyWe9AiLtah27tKqCgkOqBCYJGq9+DX5ScmlkejBOBesZzsygtk+xDcGR3S2oUzjoOswB8tnuPBd3S3CY9Syb9ZEMRnH8rZ3ZEnPKZBK1buLKEAH9sCUXheBYmdTq7G01YmSgPYQEPom0+sA3pZHxCdPPvk7X/3bv/T8L2bmIfdCbSdW5n2O2ggoEXcQLIytWpJSv//gPz46P751dVNO2trWJUwQL5RFPV0dbnEkFHbNI1UAACAASURBVABtFV36YrbtwCd9wZQHDxmoeTd49WNFCiPjeYMsndH2v1U3yF9w+djKpdjC6q7q4KSID8/Pv5svSX+KLyNc8zgFut3a7O2jG2awwlY44WkoCXHsKVHhsGq62Vbeb1VdC52JU6OBryU6whoRNgt2zDRANLqWQWJyF+x6nmvx6nAjLHCOnECRDVZBpHsVH7g5L0rYZT5MZO8P/KrQN6qg2WsRuK1tbR+cWLB6WRVBkoycmA1aCoEi/MpR5jYVXe9CJnNC+VlsehhwjmydpWNYGKpxjbqWJHhupE0tdaS9cTjgMWOGQla8Whijz1dMwwLdz8kanWOG6Le4VFPqCA8ki2vNQ4s3znm+fXX7733lb0t6nI9vHDdMoY5u68igujahfZ+gJ3cr/jePG//to1ff+fTdBe5zZZ0iDwCbbZvRnHXusC/vkhsjPmWHI5hryoVEnXRq7PlpVwmXVV8jTEl4K8XzwrMBsxWvA4fq+41VkzYQ5YCc7TLZ57M+/PTR/VsvFWT/NJ+T/aLHCdxir2ho3GXVtnIstSchqFJJY5UMuJTJNdHQL2JbPYttqTGGGFuEbQd1EWEjzy182pAQVhvCFloz5OXq1lq8QDrCjcvM1IDGrrs2ZZPZbKt2mOPYnW1L2mGM6FFZwDsFKKn2i2wOtmU3zSDdnuATpfGk2kpaMMaM3poq8XEF+5/yFzQxo195BtvKy09q33Cpsje/9iSBF7qF7uoTrePaJPDIGG9L4N6aOhSiRg5DvLuRimpfW+hbduRY90BdjQ2EIA0vhEnx2fnzX3zuF37la39X0qGD23GLQTq6g20rrI7FmFX0O9ZBp+P0ew/+4JPzJ6fjqlY5xj8kDewYTrG/sVugAry30my710m6VJ5qUsPc5rEONZIb2w5R6Wtp0PZUfW+gqnTZ6q655qgsEsEBFbyXCJ/zg4fv3H/rz/JlhGsepwURqbs3GJ9dkd8GXPEIESzQhWeDhGP6WXuoL/a2GpU52bYk10Q06vwZEc5WQBN/NwzuRmrH7Qi9ZjXbBiu2vX3WyFEbjdQFikJQhKKtVqllFeYkoYNREB/8wf66wFLh+M8pAARjKyTsC/FVR7MiIe4iLFHvciniITyxdeWUi5pt5aKsQy5KsYlcXLostzvWliqZHkt7wGUFDDvgzscK0UqcpJAw+/WtN0ldsq3KYHX/VA6Dhr/eMt3ICKez4qzyrsgdh3nE8enjz37hy3/tG1/7n10WqxhtKi/ZNsneaKLhJPU7mBv83oP/+NGjj9fQYB//1CbiEhPWaeUl206mL5xv3nY8k7ttwuBUk6VB58KuGVN1UO2KbTbfTAPFMi1/tjjmoLFG+Gyehc9fnM/39eaDt/6MX0a45nGS0E6XzGhi1X2sFW2/G6GBJKt/c3D3m9wHqQtTsmatuJjbNqGNn4PMYWkuIxx+Kx5V1IzsgNq+m9Zz7MJH4xeh2rkQ43KbmKkhWP/JQJMM7ug5ULP+EPwV9LRfw+7JQ122494fPYjsHslzAWJRRDHKiNSmQpsHBqvriKLMKstEj3EHzEvzwgVnb7qV0nalSdY/VNfdeLE4Y9uKPGv0UlHvBHjNBQ1GTki1JI8IAK4It2HS/rAdMFcS6Rf3kkINNC8Priw/W9QKMtTFrlDqUPzt5//Wl0/PPTo/OsVp1MRyEPYmo/Yc2/VGcMemykGc4urTJ5995wevPc4nt3Vknkfn2stu5gPGlNQF1AZFeGhsm2om8B1Riqcw7EoXbjeia39yaSOqmXarTEtuR2ZX11VhfllPtVtA2AUecdw/v/Hgj//sX0a45nHqrhNjV2RJjBm4tJ7OFtIFBMxQMrytM1NhWCUt+YR+oomPOnQyMAGFgrau/tekFzZE8UEzqD1mYczmNMFpxSgsN03HPLtYXVpbWjM9ToDRLjyJg5cUN7Z3Y1tT3xbeFNJnyiTQqmtZ55Nt0KqXfPTEy64oMS0yY8TsSwFGbVzMbXsE4vmL09HUUORZrmd6nJ2C7W86itGTBIZ6LhvfOm//1RpvSvN2cDb9SQxRtATSHYHaAa/0lDYGhzgwzGZbA7x2xlNpXtkERnqUj1669fVfe+EbK3VNsl6dfQAu2HeTsgFl9wxhRZ4zbx43f/fBf3jvswc34iSEowce5jGJCgtvtkWTmV17GVS1SHnrpmrR84byZkaSsmx1rG4+xiS7KKLptyqzcej3h6LcTFDSIzLyiWpLAgno2Gq3j/ffe/vBG2/+KF9GuOZxWuKOkehbyaaelQ3QdGizNWZES0sAkUTObNtsGSrsAT9UUtCs5FO3gGxFyumqKUHCv/Qb4foBy6KqD9eC7WXV3Jj1kNNynWCCrzmozxdbE/zs2wCxubKCmNkWwFTwei+UYtvIPqPDW+zE782rdBD5VdlH7CHEzjGHWtMWj0fZWxFbMWjB3tyd3jJy6iu3PeP9vhMuqV9QFUKFUs9iW6IxtWctoRmxyDsgbPv/ZAbQ6r//EYYVYYt4xvr0p8iG0zdQnT0x4cDa21FX7UFfpYCvOdhTbSq9rnTE8fn507/15Zf/4Yu/KulYH8Bvawnt0e7PkCYZ45snQlTW4o5zPlHoDx/+0XufP+TXGiQn42+WoAXdKHRZb7ZnzBQPfBbhLYXKTodDPYqhK2QW6EqYvIiJQ97blVm1mOKPXbBpiMg4bB1Kob7L/7mxwM8ukn3njVd/xC8jXPM4yYA6bFqqMZADG/V3GthJ9Fv5oHyUvSwx6v7d36apsZWkiKN9UE+J5iRhdR9QjKXPJ/WtlVbLKueS2E09/Cnq2a1pkFhPtNT/aIsQq8whoV7LBdsehwcepnWNBRarrBFKQTMj+pPXQZlzdr5uVP8qzQv1K0sHfAeTqXRR0kEHJc+B7PVitFfpF9vuBd3z+MSQ4EFLWgG4R4awKX6B/hLBwUDMY0mxU79nttmW35TfrQCEF8ahCodUFkadP8IgXGlRs70P8wglQ9QoMWEYuBqMbpq55mi5OgXVDnSfMIYMjfQn5/Nfvf3zf/PLv/Do/PgUV5Nk58OEK1VXOGxmaU6tSbhoSdIfffBfPnz00Qs3vnauzxoYh1qf+e8GwSqk0ZyjXoWYKrOg1+pxxUGrQIU0PGJQ6oLJDgL+EAdsu+NwVmbWn9/gOmQ4vI6K8T5r69tC/TWHqtAj8+EPP3vnjVelH/XLCNc8TkO94bxqlJc69b86ejlS7SapSqPKZjAUPCHPKc1OMJw5eMpQkUVEplm1P1NQCaq2d22m1dIca99dM56eagXsHXJdAM5gZkPbt8AYNmVgyQ7McHrak8mOcpBBWYfqepO2CXBWGzAvWK/U3ZG4uDFU0VatrO3FsIJyCPGJ7V8Iaq+4asFdiEWg/XH4ely02pR2dr0IuKtriKImdq1CBTNmZ5Kdftu9OnRBwm5+vN4de1WWGbU4KZh+1Nt5y3QU9n9DZ4m0vWvYorYICXgkofO60sHROc9fPj33D178+yI0f5Kijer+3U5wbo8qIjPz1nHr7U/eefOHb13FlUjnXiWV+Rz9NUmrpon2a1Qr+ltJUrcvFZqscA4TEt2MzpKYVdEzomJOoxIcmkQb/OtaQ09h/a3mcqiIpxBLNvL98/Pv3HxJdz790b+McM3jZK8g394oUS9dUM+TvasodhrTWxNOqM8Inon4MHe0BjK03Gg2YPfmAeqD1WoRslqaHpwnOR1tmmD0Bp6LPsx7yAoGQtggiQ1VXrlsTCBRMFMOcsCJqVJtO9wKcIzZFuO7Jwb/SP9uL1hAG+VfPbRcggGd9jzANSIXbEbYpEWQ+04NpmkIJqaoI56jXAoxpeAj7HQadeHyqvBSx3Ejea9UZhbPX2ojdZQaubM+zXz47ak0zHztzKtDa3OEKSzpqDZkxSVIlcxK2PaWtHXOx/n4pZsv/q8v/UNJ8dTQ4JoHFjRbAizgdpChVz781lufvn17/eHFHZxuvAR9+aZFGnLgsMjMlyin27Y6e2iwUIf4wgQmXFex05fm/ovOhqlbOKJZrs+sFfbVW/fSaQ6Doh0BRi7P75+fv3f+sX0Z4ZrHqdAPaC7YlsZk9jxDJ0brQjmPvknaseXeY5cWSjFs3Ui9C3HpUTOyveJApTkshmqjFeCSiQ1o1Mim3I/0pGmZG+qt2HYE7Cm29erEHgRXTKPfdIUYFV+MPk7MkML+eLKtKlm6AB6rttmSSrGsh5Wy0QPjRiVz52iQEQFYyF6kjDJ3HUjDaE6MgBHF8Kim6cKvPXso03EkiMUQPZEJnzocSlwYAom5x3AVpNGjdeJYhM0Rcu9fLATBDnEbF+LYWUOBzFaz0f73SZ5fuPnCP/r6r53zPL8G9id8GJeVz0l8Skn/5cNv3f3k3ldOz591rhXSs/halVkP3sJjM8hqulVn0g2ftVWGCV3RYFsDHgPDkHRPaLI+P+kRAzSNqbU0i2PTmebcgzZG66LIOKSHP3x87+aP88sI1zxOrqHJtm3s0DrjproFb9guwcfaIPnZjnGRqQ9lIihYs+e26yyBYI3iphNReRyuPVuHmN6r2ZbMCArYLBzODSm0kdnZdjQuiyhz7Pxptl0LzKb1gkhEL7nC23SGDsASxYDluYUeNr0owpbAZ22bGe6hpxVsZ+GunLgJzxr0wvjEKsFm5c1jXrItexgtaNFzIWrFgsXS41yyLUF0rouCp+Dacvte31QIrylKs9JEaAbaHN+YUXVvlWAJvaZhyBbVEci1XW/WNABvn46rb7zw9444Hp+fnI7jT1O52wN2ZJ4g3YiTUt/+6NXPz48iIs8lkAOHYLMVLav6LdTccgSMdulGhHE49VkQcEv9Za9hGhWci4CbcFv6ZjKao9xJmys8E7CbGZ0skcqzIuLhe2/fe+NV3fn0x/hlhGsep5UfmGJjW+zKmLw4zGrP4FrKrZxbO+HmZozoc0jCVOQ+ty2dsqfxpE+oZUHfkwQ/6SRdsm3tuujFBoNdWOpX5igVDwTagCmabeeTF2y7eMCa1GwrWiWe7EoHkvswGt7FH85+o4ISFjFpdxLt1LEE67nG9U4wpufag5yH3ebW2saMkNt/joYmu4ppqtQViiiXc+qnWV3te8xtW82IXc4n0WtlpbmS2SjfBkCeJBTd5l71tuskMeq6QM6aZugAtzkau2DbJaa3r27+s5d/U+sXSf2JhwbPfFTMFKk863wVV9/+6Luv/uB7z119iYnWDGFfq7V1U1G8bFZhlx0YXLuPf/rYCEPN9T8q5KLbG9DXoMSeImObnG8fmzgzgXvDpwvZdLK2c1YEny6Q9O6P88sI1zxOFcohAU2D+yQBpBgw7RVoV21m1HPbrvEoWyAAV963r1tsK4cyQTUwohgYVEz/0uo3iQ1+aM7Kcey4GEiqHTSvk8yit2HANqaO6dOU4U2B7Em/e8/UdNjsNJZXWVAI6Be3QZIYFHxatDlerwB9F3q2H3A0G55mRHtWtZ9xGckyMjtJSBk+s5T6Zj7Tl9FVF9sqqW5iWHhzotUtgPe1TxLkFIZX6CJuUuhJQpsxsgWXjJFTbgNxkxQzQ5DZoz/R7hCOtVYAloo45/kUN7758m9wkWvq9E/xKPca+u4PXv/OD167dXXrbBGIJIRhyxh96zGIH7bJCyscUocJofWYyyDezEA3+nb46QzliHf0Ur6IbYcFXkuvdrKuuc6wTTt7UrcWdJbiuP/k+w/eeEO/8uf46YKnHycLjbryV0DSrUXScahAZkDjEdgLpJzCZOUo2fL0wgP6qr7utP+ooMiLSYhBgoE9jUx7W4ljIeLKH/3TENJ22sOlsYV1PpqoaLYVHnIBrn8EjYsaayFFbDbPFBZ31OXl1Js8J4um1YHTQrnbJxN8ENhxH0sWNrcX2euvoLpiaEuQoY5h7cudRFOsXREewjSPSqDO+5aGgAi2lXMPDRfbNkZr8XWYZzTI0Ihi43CIJExcjDg6seHzC5GO4com+/FdvkrqyHKPI5h1ZDR+myB+6flfvHPrpR/Ryc5HSX6EpG9/9N37nz34udt3HudjYOUQthpb4x3XgUPgYW1Oq75DKHEXBc51rWSMISps27ms6+LVosMXz2Rbl8qI+2wZFuTS0tAyFxkZVxHvvff2gzfe+PP4xtf1j1MPs44xEKiaLpI8uInNbUE4MuvTbFFvT2fAdwcPPEO2eZJKEcvvzxsuPb6wz5jnPLILOQOw9y0eDbaVsDPH0Xr4zPzZZpQNzMj6pB1GZLGjZi/dZUu0kk9wl2NaEh04eVhit7eOuW+6Lg/NPKH7NwFlpyeOLJatNsBcx4fXUchgOpT1O6GN6TqrfaU8Gl5UWnjgY/dmW8QI/t/YtmPvTNaxboLGlkz+JJ2y9e7BXrIjkcocQQy7tRVKB5Ffpo6iD192JJ+vluu7Gi9U6aiKoD4y12dxG6qCzwfK7W0FLJW+v7FgdKyhwY/zkUrlVVx98Oij//Lht28eN9c8bhG7R9V8tkFPhbDHXBU5e5LRjI2krUqpD8/St0eHl/s0HjhJlFI5k/6aQwrMErGtWlfrx/r2uesYRYDq5qnIyONKevDevXvzywh/gY8Tza+wnMZ8o0K8h8GbMtXlcnkfzCM42HC4haIy94oHaVmMttE0hjDb+Eha35ph/OYDLsu8J1IgS03FcpLCRk1uPj0qqzxR6e1T6iW34w0hHT3jVqrP4XY3GEaISxvl/ppD39uR1t9A4V0Gc/fb/hZRZcVHphbb0nG3gZH6CxBroYLw7IYoBkzhaHXstkfem21pCLEwB6my86uww7bVUPfS668blM3BePtkds6IpVMngmjb211LpqK+iyP4YeAQJql2xs0byu9GBbaVymQMvz3WPKKhHoEu8aZNkf75nX/SgPxxWNqIOOdZ0ps/fOuVD7/13I3bZ51d4jHGrBFSfb1zNoELhxTAznI1XGpjIWRUjkYEBrJN1TTFGkLjP3JiC2wKubRN4e1J9YdzcLj1Hiq53taXyYjQEQ8++uztN74r/YWOC/w4Ve1BCeV8utA61rSWPNoaAC4gF+w4G2zR5rCa5zajci1rXc+USrlmWkMFCzqhoPzSVLWdo3w9c4zq/pqUSNrIk6QYLaV9S9/eKJMTddcKASEAnpMYwzXhLDmKDsbozGiM8EZ2AQnxRQ3K9ngIQJdbBte05cmbcX5mGc4adBSJfcFm2qWVOa4SqACZbRmsrNR0c13shOVm3j6uV8hYBjorpkPy3XGWJkcHqXziQFcnVD2UGZoqvysdyiiwF1Dtv6iMnj20tA+oTtUniwGpiB7J9S9lnl+69eL6XYgG4Y/+yCwG+/4P3/zOD179+s0XHuWTofpzsOWOSSXEIDUHAxBCVwVAX96j2LZGCsQVePi2xYqXPLcF1tvNrkJqDsC7ONe5N6ftknCWR52kwZehiPcfP3fvxl/XnU/+XL+McM2jvqdg016bXk1X9KwHffeAboWjEE/BOZQYDuFoObfrKSBmJdzc5d0ddyG+uRD32RNVR7uI+IKUHP3RKcM0bqW16ARSxo8PoUh4pK2Ja1YyAVgOwiyodgwt8Baey41dML/oENo5VriK95m5EI+YOIVCIGWEX90zLsT3Pf6eEGnxs0hktM0ovYq0uNYNogqC50A9e9OKcWaJ7pIRbzRGeJZdB0iyAhdC0EJzrRXPcd2HMo6v01JJZGrc57XwRZBRV0X7DIew2FRuGqqs0zHj3EYa/vqs8z99+R+d4safvma/8LFwcnVcSXrlw2+d8zxDs4CTHa/WVLUzcVNuHOqCcAcCsrOz+RH6ow5AyIFjchYMfAmWPJlHobyegAkUu9NOPNMsZDuK5WTff/zcvccvSn/uX0a45nHKcmhl88pwUcHtaS1wxakt22nyoIGicQ63nFSqGFqKRIykSyJfvKOSCdHJucfl2ip2xbtHEZRzSb+Zz2BbqTl06ry802HxZf6G5QfbokPFYZZu8MOxQyF6Y+34ZwzCPMyTtrCOcrEtPNnDsGLbgJSHQuEUMKLDH9TaY5DmiKFHjBfWuEIUmJGqa22ESxlFmX23J1pn7FGQHZDaGgd9adkqNylgQUNQZ5J68YgAxrO5Qh5v4V0Lxqo2KV0DdUXVtnJc1x6usIGwkbwjjkfnz/+3l//JVfzZPzP7zMeqtHc/fe8PH/7xl66+dM5zC4Hk7YypyOQzoURVlxSJ4dex3HE4JjCUtXE3qrLI5SL/9jVSqWSfq7R5BrPXZ6etYY3nk1dnPfjhZ/du/PWKzp//52S/6HHqeBSNbpZkM3BmMmw/8jGav6wib2gKIOeIj0axV3nRsQxjyFuFCx6Owko2b7Zosq1MrpNtNZLkgY4rcA7XR1kOtk20g4prWtTOtkgqFs5sDjdwPqhyY35a4ekBfEd4NFvTR5ptcwpjYZQs+4IZfRaF7y50aor/4Rm84OgpF11B7IQLulQRULq2YOw+qyOz07ggM1lm51AlxiYY6Vi/iyGW397ulky2BUNTsZwfrbRtIix2r4a7prpI2fMVaFzDASNfESndvrr96y/+fWFCfywPrIfe+/zhHzz8o9tXt88dmcwM+03jZe0lcIkdfd+jyOltN7Ydz5KaVizVEEjOz+z2DFh3UtlPUp3dPKsqjfDubKseAPa9FunqrAfv3Xv7je/qzid/MV9GuOZxsinFc7Y76XoZd1GNrRKlYShXWQjGdMl5bit14My2dV5zczBFoiDq2OESaFC68MaUqEnrgm0bWyZ4t4m8C7EB+puThHZKbPaKE2+U2Vaus2xRbkZkfCUN1WfmgjHava0kFjicfLPtlHeNyQr/N+e6vmAd0yNoqwnksJdA1qDHdUqbLLxN5XxWggWrxaRFt2aXOWrXrnHYoDY6Q1O5n2Vi50bZVK0v9Lby8j2x0sa21vmOk2JPm6UHFOA/pjEY88NQPDo/+vUXfvXrN14YKPsxPByf7/zg1fc+f3Dn1suPzo+XfXf/l4bJAA5WEAlbwVrvCjsQjRCOEeqz2VYFyHQHwNMSE62ZSdnBVaX5Bh2DKbkbGmzbi8kcc1tdHfng/r268fUX9WWEax6ngRAPberHCoIZszBjphiaaH6sGpn9sCcBpj+11QnmurzRMVaXBuuSQ91k2v37zi4Dus5qu5N2fEO4tVUMh7pHGoQrSIIpYso0b8MYzJLqyhftbkU9laVEIsLb7EPSBVFEpWaV1Qw8/tWTkuy221I3sjIo2MYMpoyt+sy2MIaYzXXeyqaXgqYvRtkSTExTVXiVmIcoiX6P6Ygtspup3tLKU0Cb1iyhWsSwm5UcQdS4hZJ+snsPJiAu8kavtTSylzGGDTUqoCK41NVxfHb+/Jsv/8Zzpy81QH9Mj4j47Mnn/997/+H2ceuc5466MCSo7bDmMNyoZRobxaikp6Vw2pJROijeCLyvO1Xf5BzcJtTSgiEGhLcoxPrfMOGaZX1S0vHOo+/f//73/4K/jHDN42SX8gx3Uq8JOjAdqmpNM1NtU7a+CV/CXRe3krJ6rlPubCtYvhZKjM2vDeaNbd3lU3VudKs9qjNTsp6KMKUqkpExYDs/iK8HDuGyX13BkA1b6ip2+NZzQHiCdsodhU3z8FGtBfxscxFP2Y0SpWgVgW0z2Cnk2S0buQymdawktVGXJDeEGpOacAEy5gQl1ig4vDjNV24PSqBMfrmkg4hS4eEtQXybxQ2apHLDxQphDJhNfGpnI4b8ivN6eqKLmUXrks8XA+BIBAUVoXiS59986R8ccWiA6sf1+PjJD3/34R/cPN1Kj6AX0gFzTBdbOte4oUfzS76zPVqQ2pVD2GxrBwL28AfYNZImkoYWl/J7BD7YtgZONEGe3a3MWQvXls7Hwwd373//+3/xX0a45nGq/jXtAcfgrjQkcblaVqQsPApdbHugWhd9U47ffB6ZecCNkZl8oFG4oe1O0kis/JEQ+okyaL4NsukFeRnJPTzpT1inlmThpse0e0w72kW2iQekOCfbZurwAGrcClw7s2tTBaeVu/XrWB/LMUWw0x46RfXPLQFxHKMbH3ajf3sytjbd55bjjgpkXRZ3ACcGM7Z28abwtPDthAfVwdE4Tb7mQD6K8rfJTgq2TaX/qEb37mSk0l2k6UZCGXmo/lCAvX6J3QErtlmfDBFR/JHpoUyrc1nUVBZIvV9GHru6tGjHIFhlxKH4PB/9na/80l+9/XOSnuT5sCn/kR+pPOK49+k7//XDb3/lxvNPys8WuuzMQT3fzsDgrj0dXbG4TKWHDDbGGBAjb4Ww7ivM2xwJubhby3JWXNwkkN2ClB8ZbxTnwE01cQmUX53zwXt3773xnb+ULyNc8zhR1djMgfnBZ+FJs60I9adliArr0GWZoZHX6lK0ePBoJAfC5dBqTF8ktVqVSVNZj2TqB8rpZjkw5lDPUuJ8+9nEzsm+MbbJKGZeolP6IrZVxtFU4NDwxmkdi/oiMJRadLSUD4bwh7mL+OQ1Gu5asw0PyOZL4g+ryKKkHnqO3bVb9qG4eHcHOHPsrflHZltx/m0khHuiIZWCP8TRIay6S0WxcpCtxQPLitogh71Mz4sqGkfxO1vyMWbbyvzFJMFx1NbZYFp7ADL2G9ZSy2hM7Hd061znzIj4f777/96+unU+n3HvBteP9DjiePXj128eN9Ztr4Ief8OoWG46qagvu6Utko9YDf0IlhjqDftbtoSghtlWOwOo3SjGk1lULSUCW1v/bgdib7tiWd8gozK0OsRQ6MEPP3/7je9IPynjAj/in/+7/0Pcx24RVkXGbYfwthi97CfCdOI2l6mcNMjK/QEtqhsx2XP1Pxb90aAmXgmUr+rI7rl3KwZi59ACL7f8jMTggIvUjk2YvuEqmeEk+dZZm7sZtrrVUCtKb9L3cCqG1Q70hi5bUlosDx4C+i1RvGRbcJ9OHtzoyHit7ZiHKNCQWRDanUK6W/eQNpszIsRYHinZU6GGLcZsaV3anDijaRNUKXYHI2q3QtRNKZTX3lPrVAAAIABJREFU8EwMml+Qc6ynJwn0wAUctYGr7gre2NKG754pIk4NWEWc8/w4nzSrGltQ0TNrNZ/5D5AmonjEcTpOjMprje0XvVYYD2DVrXB3AmQH0C28yo2mqzhnwEYI2QxLjY1fRGvq3HQL4hEheyAToptGMoJ0huLB4+fefvyi3v3jv6wvI1zziP/93/5Lo6Hb6Qq83OvVc13BEaNshlgNXiVDkr0i2aImNJJGuYijIGucoUcM462U9uXy3RIKR1UbSFOnkOhxAvZSitFLdE/uqptsy47hZvmtfTU1dTpQxd6gabCaR4tbTc9I2dtu2/XGerGNbGuQ90HngZUny+ieqAaA72Oto3JbI+OgJ07hMBgE7T1H2Wukrpl8RBOmJoCDbH3RWsJ2pxq8dHi50Kh4+I09lHaZITb9HtftTU9SHTrflD5vna949AX7kc/46Qvf8gVvXPOyXsTgxrX3Jj6MOTq6KSY4lwSfGTSdUsytX4R7pY1teWkG2Euf1sIjxpm09aamJed/YSqUDx8/d3d9GUF/mZ+T/aLHyXruSSv3hxGO7oDxQ2tQOuaIfU+mJ1n9pH/C7dBsMnBXKWVyz6UDG/3aVFIwgdndl1+zNlMHRMVbylCv1mqnuBzHqFwuI6Cg2rpTurwLcHGrocdK64JQhBT8NK5VQWeAJaUth283lPbPC3vFhrgBzZP2KBYOOkdft+dGxa6OWlPTpNww0UaYddOlut4exHBlyOZ/DaSkwQBmW0NF0aXoUXJLQRBKLuDmn5t9zG4Je8/+19M8SaPR1L5G4M0g9A42ehP0JIJmzzyEzkO/DWC15RjE1zfcu7Gz9mznHS3cwgk6SNi6nu2X6BO6KmsvHvuMBGyjLiWGJMJ5Xv+LkXxBkFUkuUlSt27ykz3Adq+x8pXu/qZoqgCDI1rBjdDx8KNP7p7+8r+McM3jtIIKueWgK8nWa7BtT00wu616LY7r2BwVwbEq8PRMcyUJ5zxO4e4VtNQBnfRF+P36tnxfq5dv2AOlBOXuk9c6vS812xKOcNlTda7S6W3DJogtVsvZLAWneaNl7oLeNNJ223cRbAjNtg59xL66uRYCavK2v2hKBLxyfSCeRcE91y3uouiKdT18rRWNDF+w7QRQzwHR3g59HRANQujZjkYxAti13U2xZ/QtIBpsywIrGmjRNGNt2eTIDqvHKUmbJiv2gfIL7sWbyheGbQa6QYx+2xjmC8VHLasiQnOzU/KX0Me4tnH7NNtyAlKc6/RFssZh7Dgkc80A3cy1xmpOEozDwDGU3+8hkEaFjY/NrGWEjofv3r37vf+mOz/8S/8ywjWPU9f9iini1xEJShlyM50FkjgMMR2gMbD4pvDT5CLP9YZslRkOOdaDbXmbpEY5VmZb/vS+giwSt6hsto18Frs0ezVubL+7OJpt61y7t21eoDuowATjjO1mOVFaagDxw7b1jGzbskcnbTRTUWeb5ls722q2303VbaJAefqwEY9ajrvNEQxa5+jBi2Do5rHECBUIWqPDHzVQC1L9WImGRWFdGW2aTw5NtTozlebfInJqIZNVP2ZOe5LgCNblGqTaTGSlLWxIBek3OanHGI2wjW0X3GpVM9SpJr1mWw+SKLnLHI8FDZMYdF3a2NYQ39j2KRyyNJDT/TDwoM3SCOFGuJXRbg/6EgSoQmKebye7SFY/EV9GuOZxUgV3Y9vOiOt+IaicfijLZzVT8bauB63kZBj8FtJhw0ptO/u5bIWQXDtdd37w8JJYawLLjz5C0EO3SLGQSB9v42sD02TXdrPoy4DL0CCYmiRoVOZ6jC7NUBrNZ3RjTh17ALWCZZuNk8u2nm6odtV3H9fGcSOKaK5ayxkUjB5yfC736wWNpI2+xduk7NdGkJLyLLU7sXNbYmqmBnKlDdG78ZqaEwgLfpPKc+mqiaB7IW7aWFPNFYGe93XZMjHs+zRBpPqHUgit+Nri2ttGA7hHL74Dgq1v4hu9eHc0pVAa5zbGg7OoP+whpBcN8fLUpBt9ee933GvCaNmz0EeogZNQCE1iOE1jJZps68i5k5iGN6vkBtsia8W9y8m+8+j1+9/73k/OlxGueZxURVsAcGl0l4OxMHsWBRRX4TkovoqHyFXFtNKmtCo5fx49AjILMtzKKjxQqLdFn7fhl6OJnW2metITrHDoCj6x3F736EYFRp8TTratcMz7YAgMd0rHe3sY4AAHl4AzUxqhrgPLtnqUUcVR87rsqmueQBrRgr0HVTvykavFQUk8xgAgnTQ3JBvj2LMF4zmHgq2LoytOE1totHkj+mWzi4HktsXyAFTLM28+sOqZC1l9i/h8TxJC1+DE+oxDDb+fybZwXe5RFGzb1dKuLACDYhs01HlzjJy6WWgcmlRdowuE64X9WHEsuK5RTgWluwZ7qrXCBdC1FwRzWFSOHgDY8uAYgkMNT+KkGIculESwWlUWonBTx8N3797/3vd+or6McM3jdNFxu/attDVZ6zbS8rV33BJ5DgJcvDuKex2W6vw120I2e6zRbdsQVc+EU/ax3W0Xd5blKTTxC/W7F+lu0v0UBV7H8JLZpbBk4rFhUDE3H65nA6hW9/DtiYiVzdwBp1F5uX7jNYyewlxn3yzvuzvt/Nf/+HhhcVv0WkhIo3xRxGjuvLbqXBxe+KcSSnitkOSDDqFDwfUE36UNitl2uR2Ebkzd3cKHyT/NIKN3jirGTOe0IspfmJDGlQd6rCOLCizrfnohz2wtDjPbssenoyjvR2h1dy1AzMrg4MK2JuLA6PLzURReifUh9QvRy8H4/Wq6rj91AtG7sDKySmVO6VDjIMvdmOR4V0PKGQ9DMnwu5F820KPBlZxVNdt2wyt5XPAT9mWEax6n6fFgW9tNRfcQkEG37kGDKmMeOlDVy/qp6Wiworm8wDDUUqK6XKv8o8juwK5kX6ndrAzljDzG8AxHIfXyue5a5mBBKQ6GemXC1u7Q6GbbUN/IhRFmKTZNlHQtto7BluZ9Ym4Dz3nLiKFx7uBYBrKUMG2FFra1ZaMUd7btm7+jj8Po1mFEA94gHsJm1wgAu8kluuerqlubPXrRJnKD8LAkwrvBFkLiq3elh0kaFnD9ZxPqdolsE4ttK8E9VO6pKN6Qmy5Wb5kVNYSLFG9uebAt0SsZdNqsLsmGy+rCm7BuqP5wjv1/8Rs4DKAODm03RoqrTaibWexXqj9dUUrLJ3sk1Z+YEDoTQoNKC+UQMr0a7ChEsftFxD+yl0SVeAbR8NPOtvCBlFcPf/BJzWR/4scFfpzcMjfbYgKADpMvSWCZqGvRXsXJBk4a9Rfui8BJtEHA2zSZDwMxjaNtc+LMbEHJ/bB2g1Kh7jqR6g7B9laXYSOR4Ulv3UOiZ7NtMEkoFI55wzoa8nYHqj57dAxhvqYZsa5yO/gvVc1J+H4NRk/el6VW+LZnsq09mEXJW8W9EKYgvPY1TQiBJ253WuPXItRiFo8mbdVUAEqaVBtqkEfdiXDZ4wh4wOAM+YXiDllxQz+HylLTGFyTWygREBDVTB02Zs7pPk9Y9mMbnsDsIm3yQGPh0H6cBRiOYKA9Xt/izYHxBqWcHpWlnsdmaep0I5YMxJ43VzHWSW0OqFh3H6IHXsgTkwMyK4zVxrZyOi36sO3a7ll6/8ntt08/pzsf/wR+GeGax8nNjL3mCkm5D/fmRBjk99wUQsHpjna5GWu4BNiIrMmjARiTZNa1sM0ZbQbdjMiejjX1yHgZnqmkvXwKo2dLYvn1I1Qn80tRdn9yBqKAbQddUxE2ioNwA9Qvto1xaMLRfisVF2Xey7WEQ101AL0MhyzGWdMqNurtS9bp1uzRVsIzsrF/7CSG2/EwJdZyug2wHCmcTljG/4UMe9kQD2EAPVJDCmPmrkqGYVc5uR/xparrJOHBgcAPI6/S3xHDFmX0a299MydDTG8bFEZbTC8fCyvqQF2KA4f2r7kzdaNz64AobPP1wgcO2FVqm1InBTlLQaDOHDDAG1Efo+ic3byo2E5p9Dyjm0AHrPoTniHVGcrj/Se33370Nekv8y8j/NkeJwrYeNWcArSNSTMHXrPOYOvf3CmzbXkkOfcWZtqxPuPG9sxGpaHGbTzaujZoSLrvJNWx3fPYsxcFCAXeIARTuHT7LQt1LuPBLuU7n0VKDaVBuGbb2lu7x+ksMCjMXSbbQo91PDNTfFU4wpUmsryO9vJaH4azsNdg9zi2ljlZjNr7jAsSlO5Jxhr9NGdt6Imz9Cs4RtqItXy4cwQku//A4rUQq5voymWm+yYLptl2sMuIYnZT01puMaAetqGMCKIIYilE3yejYNz3meEvAD6sYEEa8hopc1+aY90oDuVHuJke2EDXifpu7Dpm669irgtqMOeHC1p9P2UAJ6lp49nJd8AqGH4qlE/i4Q8+efv0c/WOn9TPyX7R4yT68J56Q1NjdOKUdEiHKjkxdOT1fxq04dnT5CqYmEGYYrB9s23gndbytHoRXzSdyToBSKavMW78tlqA3WrJL4K+oQmuK6IaegG7UN3ohZpHc468dj7bHXAPap5mWxER9SSsA+LPB0i63NAF29be8gL6xW1PsS3XnB3coPbSGUDSDIiQ1aa6FGGvQS+kc0W+R0EjncUlPW7s/+JZ51SvcpQybHJEs52lhM7npCSzbZD6MfGso6pX4umqDAXHTralDOqKRNb2drGtHcloJH0k+SrvsRCfY4kLaQE8c9C/FNV1LMhsOjtpkJ1lR6O7vRXPhBhBZBPzcEnNtixvk2n0Gz3xaqyTzQA1ADmdj/v37959/b/pzsc/yV9GuOZxKlI0k5gWnCkcV5Ef5CrXhEZ/jUWSaNyHiagKdho8+W1X1EJamNLWuc5jFYyT6eebRhdpMh5gL15QSXRbgKhzF5qkqi52OO5vqAvAY6Rxp5f3GnB1+e4HwmO/3Df332fb5pk6JaW3NucyJ3bWGmES1ctZ9aw1uXjK2/Za9AVsGw78AAEJdUqbSvGzvVC/0s6f+XjXI2OHwbassbp7xk5hL1dipwJQa7mHBUR90AN+QIXWGbPBtr4uTFRcEQ1ezaGMtE3BG3PLckeODbkQiwVFY0kFVWiCrU8/ToSMkr4aihg8mfMFoKoRIJffKPNEvWBq4nHRKtBXggCulb6wcB/udRcIDGrLaMTpHPffvfvWT8OXEa55nKRBk3vL5Kap7YW9rjEz++u+v5sxXrjoz9RdsOilsRx2GHgA3pmQi0YRmkVHrecl23LAaNSGH5d/LBdVSd86t2peB+BaTMpeKWpOqcEhGmi3pxkzAII4JwlztjBqtStTPtQU1Q0zNVMADshPsp9xDLsNdcGw28n8FyPHC7ZtOjRCirnSmlRMmU1WOW06fh7W76aI62XHXU0MTaN4vMmIqJRCseWcMUKlIUZskHzsREVk74VyaF+OcOJLAsRAIoyEe5LUcfT9HuDUaU6MqS3ylKoJ8II7Q5XVFwyVo4R6vxXLZvHsWFmO3NHTQHrBmymx96mxx1hajqMG25LlzZUU+NGrZeeP05Fvf/76Oz8lX0a45nFSjKJb0SVDc6Jn5sh2AesMday7wZW/3AtLeDO5aJjntQ5CsTLRBD8aTWjqkr+2jdZd7MJaXFV1m20JXiyUsWBLDK9fzBxZmk1NO38u2ZMEc0gGPFoEuf4PgRlGpue2uqg62MjWMdsXudNuipDwGrK+lc9LM8oUvRJCNtEv4aHVTbCTXpHMmIsdTjSdh2gmZyueJIyhS53Qd7XQjhaOOrB4WMV0HZap0bBLzFNyosgGYbhNbq+3aBCkpPPd0cjdOVMZ2eiRzSZUWP7f6a6C6BkNtdGXrqgBYs3clEfotBmHJtyBw5IxGi1rQo5oNCidyB7nCGL04EaZ7hX2FqWtMXvyFK1Lf9gNaw9oKnNwdZX3791957Wfmi8jXPM4oWm94VayAlR0jbqnCbvUHBmb3nZ9hloGdsEfizUw3/4pMtbH9ro1ct+SmfU5Qjxn90NDdsEWtUblI5FR7FTva0DVLd02eoc9+eiiROG28w8wHSDRXqSjIx31aYAqyEBBvoBtY3HscSwrNO8GreLssZpd2hK4tuQZcawefo31An1strVdUw1t7HPaLcKkdt6QQbNtjNvEvE2hNONd8ESu39WMpmbUKfGVSTC67FvIYKeMduqY1ozgl1rbcpWB5t4Y8KjP+z4tekq3GEOkKnDCGrvhW+ja0DF2W6FVeK/NraMdcO9Qme2eJo6gR+/zUh55gKg1s1mpuxhxRmo0C321jDzKuQT3C4jGoXBjOIbnNsVmTJFGgtOheMo2jSKqkn5Ke5IYXl3pvXt333rtp+nLCNc8ToESgVe1UGcMmxfyb8C3AEeqcYi9agJUqNiWVk0+4frd9hqsJN8SKK9mmTRn2Eb7rhuslOvPcLittYeK5M9w2Cc0dWN0S6LrA+SqTSbLN+s9tXy2xd2WQuCSAlygurrXd3DcsmMgL73tMdxjSsW2TEwxsDLbcqzb4hx5jPZq2HgIcL2XxWWQE5iWlAZGKNxo9gJ7ORUkL4e2OIoBM2uaSSkecbRYD2+bWr/nv1VOMKaW2kqx/kJNO3XnOEOx3jREhz/RUKyYDuFwc3U6oL2iMeZQToHtdZjB1gkj17KMi7UlbHWMnCKcQHaLmuhsbHvrOx2I5MCh6jsd6m5qpCxq68lm15oPM2J4GwSgohE1PSQj/rKEer9TGGle6h1VEscos8SblWAebS0iuc25ajCefPDJm6/9lH0Z4ZrHCaiYLGErhBmbV+W5ZIuqVg8ZqpNf+Qt7WyOp6rvZFqBonQueUzcuY+QIUlZue+q46s8jADawANm6ULBXExvQCrlZamfIeGBVrQlflLOXX7Ax4XcMi4OWnwi6odmXL/i1IFyYKhxXsVp1XqqA+JNOVgi6usU5i0wsouWAGCJ65FfpTJvaYDSJHtGRJI6x3hCRfber542qBNhPRedjZTFtBNU3O8mNxinVbXlxuOdGZhmkPiDBwbbLvmadwv0MaruzLRRUCljWFwSoRcfncEpKrLLEJEiLHe4UkN60adodjMNEEMOMPK+3nrW37R6To2FbFifbdhGN8SkY4EEMm20J1UhvbF0sTkNWVDNw9kir41jMnL0ZDzCkM1BNxYuPvvTXjp/LOx+/8lP1ZYRrHieoE7EHrzHNm9Bi+hacRFENthOOkWMGDwuaLrtEgypQq/GjiyVh275N0T61LlUsq+k5G1vCcIyaoTxBcq3Qrb+oQ2FYG7P78tMrqWAgFtFU2lLuaVizi8tg1pMisMQygunYkXy3Es1nmDsWO8i7nRfCErDtymzfusEhCy4uv66Bg6VFLHcs0ETR/M+T0RsT5iqaGn3JddJkAT0E7XpWtILOV9hyiR/85Wu3HHe4enoLqg20EhA5g6JE7OVdLaCrWGzwBwLCphtEcg4yPTfY2gSxZTVI1/K34mNgUOtp9LYqZTgY07tGOEKl+hvbhpsjUgxnmiL65m+LmwUahWPjggncBa+JUS3pkJ4skv3sq5K+cecbr/x0frrg6cdplTFkqcbkxA1RdEGHAzfETVrQ8U0CMOVj8a7tRs3PSwon5kfPIjcnOLguoO6H21s3QujKILXmx4zsEbwUzYHCT7tmXaRwvL1AW50WnAYcZDrdXtqpwj+muLYR2IMczrg/Q6adbdXl5/E1mKYwgHWbrjbJY5jYfVzTvMccsgGp9CS6BAlvbGvj5o8wNbqKVhFaU8gCVg64MTanhOE3hCOy96x5FmZ/KXOJT23mcuwbBBq0ZvcuxDbHOdQ+sVdbG0LfyAB5sjpPdLky+lizbbtfht8tAn15NjsqEkwF6piuFiI4/BHQQnV9bjO5mcAWC2+fyJ8aDSty9EjDvHUVuH6qIqR4ovj4k7921JcR/s1P4edkv+hxsvexFgeGSCbPrQXIho7bkWZb2Zc02yL7GhmL6Zy5Y1GXBNvlMBZjjbmAhvarXmNx2KRVf32AidpLKAXoQWkVRnvbDWxmW0zoaMzTwGm2FeZnWHOp9xBlVKqkJtuG2XoMv6oC186xpE2yG9C9RNH0FmdzXe3E5Mx5m4zXGBV5hfW2UuJ5LMxPK7zWPGbml2z7lKZmZhtKNWRWlnFoboY7CTguXjHefMyeiWJRE7saXfYFhoVZqTYq5kh9LO0JayJbsjXWID4M3pIJJEScupiQ1q2CyMbWwHstn0VhnmHEtCoViF1j0Zaq4JpwM5I3xmjkt5ZILFygVa8jIVaIVqZ+C6GDbd1WrRCdr+7ff/Ot17+ddz7+xp1v/CyRrKT4rd/7Pwsf9FE93qEiIcvhM0SBmhuLoKQxOvK7xkGDOQyRhFDdcdRb/RNMAcDrzJut6B9pAMd4A9rqA4MQJG+VTWvC+SiLsIQouEuZJdhTeKNjoU0nm6jnmCTY39UcBCv0VMzENJZ4Q12dK7jctYgb7Vrods5yVu+YHMfo3pRdb+xJOjHl7H3ZbS21uB45jsCz1ovJylyOJwnmlWwvgGczejnQUdyg3Xgk59BoAWi0Z1sIN8aeGyUV3WwNo5IlqKYoL8xPj3GUY2Eum0OK9P+vJ5vlOUpPTxJQigFw051na80A9CwsDiZgv93bmbMVI5A+dvQX4MatEsSvlHTOiHM8fPett17/du3/t/Uz9li/59tDKGEvFwarLPo+Q3Zv1HB9agpQx47P29jtuY2v/rGdqK0kPBaGH5cKaoxWva5v46gqUxpAgB2mrTYGGHj640newrY1yMLSPlbHrktlHKrEz0AILL9dtGQ6ZMSBe2jCKnYxbW5LHJMESV1t2kqxb1C0BY5p/wajj+IbXeoqdiimzQz6IEdZlHmb9r0JZhPZhcZOhwZhjTW5wFzhbhzGhNZA7xRRmiN5XzF7dD4EIGagpF4tQ1j5AK6id05SAwiTZDfM/PJCbZtJgMEkoSFYgpMdw0rxRAbsqG0/DkaVURJLGw3FcDKjWgpXYcWS/TBkLucR/Htw0PpVU7CI3Nec3txK3CBdnSLvPn793ddf/2n/MsI1j1PaATbbFjSr8174aNtXHCQZ6dGV2aH38N31wB2pNEv3seB5cFAZ64GkNmCCKZqMbTWAlpnYg7LkflC9ZiYEk5eMVC4oTX/IA3qe7v3CVSsJlvfyGcRZxNfyt8FieMtUKNarmrYK1+LOVfkb6jl9PXwoHxAYFlX4KG7ljSV2V5gaxa4yO9AjErwEBh8TYTR1ii9sGVwBvIouZn+M8g5aHYoV5KE+oDH02OKpnjX0Wq2+RrfwdtOzri0VynqgFAYw3pomG7Y1LfWoaJF7o7ZtnAfDLCohIbMiw9KANytrO9sGUyMKwqG3KWFKsbHtqJYIj8ja3/RgKGnG6n/h+6EtLa09EHmfRbRSI1d1YES+d+/uu6+9/jPwZYRrHqdwl9+047Gr+4tQ8pm7rrmqyMarLWqdwHN3zPEi57AbKnKqgl96CpS2+WPxmDrLycCOGU9Z1CPCPWZm8rlJKfkAsGdiIOLgYjUtCMi/Pnir2VhXMCoaUVeNdNlMpWYM6C0puD2Ssd9HjiJ+Gy6UoX7hchGzPxJFBVlXBo0G9FwfvMVAwo+DbSEVqScJbNvsLaysy26WrSIjD4K+Wg01RaGS7bz5OY6jPZnZVsrkd0yHB/jc2GQKvyLrCZGMv1L71R3lhE3qwNuyIjdeEDgj1PpZmfw2co8IkPbuAy7YNv1HNYISia6WHu5SeEX764O3HpxYzddfRmiSDo/xVnqOw214DfwXlIDEwRXHcGNUSybKUOrSnoosqpEumQRwydHCt2mPZbYUIpsijN2IfO9evPmz8mWEax4nM2w3gTa4RZbFrViEwlK4m2gi05KoYews3uE3ALT1e/6rkOA24WXqXPiRMk2Hp0fi22a2vcZ8xDDU7QIgQd8u0DpD1cEhrI5RoYWI/g38yzf0/YeyU1L9iw7VgPLyM7M/aa7I7gzHkEEDm4rk9q+rMYgInwPTnKN0Qx8mM5XtLR5bV1avIgNBLSVlFBwa9zfmxGEY+tzY9lB9zaG0ijHOwsdg28j0LRyquWAy2VZ8hc7qqu3u5EiZMumWBNcduM+EN6GN+vM1jHKxm0VBVkP3DwvAx2iXtjudGeSPIQ8o4k8+CIQebGU9lxRDR0PH+kMR8si3wlts29W07jZy32xGzZpFNLKszloskst5YzV5TtvwzPS6VSxj0razrUui4N6gCY+zlgHa3pSn84dfffO1X5cOvfI7P6tOdj1O6obX2pVBZyWJlqpyOawAapYuBcmkWXikPBcouTcMYRS4mqYxEmX7gC2Oj5kZJxwMUPgaTVyM0VSbRzYeNc9wHazW2iiQJiPR6Zh7Iacorxhuu0r62fiC9ojhAmYvuJvOOg12UDZ6UeqlIlvPekY0mm2D806/DPbtV3pvKorAE1WCHfWebAzXlpiwab7Mub7QxrZOtbZJQhCgMUkmCM4lqKMLlixyWayOYbP0RQ1XihzSeaGLAqg0yLvkV2FICMzs2sw63SNbvLAnHJ9GzriTj8Vci0p5S+MN0f4HN6QgGPskYedaUKkhW9Yol9E8r7ODKkwcmiC6YCMctSqnQKkErGOg2ipXFR559bVHt34+bpzvvPPKu7+l3/6dZ5DTz9Aj/sXv/auypyXqueV2zG3Xy5Ko6XFTWRb7alNR+3Wk53f939VsrMxnla6artVq6bXSU3HMcKQ9AesV1zYi6NzVtZ12mjYOwftVFUp5qhmy+z55q+H98D6xIOhJXevshOmC5cHLNxV2g8Aio71KtbJ7eL0Q85kwo/hZxeCjMcXW/smE6WShKAiggghcMDImlWCL9JPTTOZFG8HL4w6TV9DjjY0kxeATIsmN7Xovk7xSPnQbg3v2jzMuxzoaHQc6WWN0PrgIgTG79IjWaUAhhuIn2dtg4VCDjTKjsyYb7sMRNL4vg0iooEJenmlryRn4CMZJJoFuIchr+pYCPsjtsd9REa9W8upJ4/g/AAAHp0lEQVRrj279/GfPrxP+jH2E65mPE9PObWggdaiso9QURZgxEe6WQhoW1V4jyHEBj/a/VF8YOKe3RjzJc9Xptx0xU/ekNemiekaUhrzlVsPngUFbhdHHzR1rm/TV+wwhLjTYNrq4bJopQi/fI7GK9zBIts6jKvGxyhx+NNWsHbZopKY9TnFY3+Mbszi/zXdB8CLVE2YLkU0m10PNlma6VB0JL26iCb8710IrXMsdUxDMca+u/eRaXqMDoelBuGAw47U66AFcX9dNGWxLGCqEaxAhXPpG41h9BULYzYqNoQYDr87afqSKos6djpitjju92lL9OKKzDWUIYi2LAVKDerPcBUdijJh6EX5yvX/FrrfWNVdaW9eojqjDruP80cc/Hy+tFf6PQLJaf+9WomtrzsNFzrmt7e2oXNr9mES7TxKoGHOTGVDdu11aRmoPSYxJ6iRWuQwuvtpFbEZvcrNDMytOY2h/VPtqL6xaG0zdEu0l8Mo6RRsBufJaV1zSdhX4yxYLFfGHC5rqBcVuKBxDtIhAmoIv2NbWEX1Zix+eaDigQSBwDhQR9VNLioZINzlPehNhrbJtamQto0FiLWuB+FkOQAl7txUPLycajKLj5Z7rBGzT9TPYNojhIE0BIO9EAG3KUE2EMI4rgp3kjrS2QzqKhSeOkmdFUd4WO72zbQEeBI6WagqqeVkWEHxLR6IK2lpjqqQyINzMAdXBth0zWt/Q8d47b7756rfOdz762fsywjWP+Bf//l/VjxUyuvOGBL368LOXwwQKvynKk4SeLDh3/X+2RdkZE23ROrjxYwql+jnHymi3P1WKyMXWz6mfHcci2N0LTgNnKmHAgb5w3YKwRvD6tbpuwvLPaCy9/IRbtuWjcdswoWYvmyRkxxsK7tbQKWeSwLuGyZ+TBOhsRB/dtR6vq3RVo5jzunOSwJu3SULFBW3ydcdaamN0tfu0ufbhYdKIB6/5IyhzeVxspbPZVoynGmbboGeAgFV4EgXbor6DpnN09KOMkhQ/PUlAdrdJQp/3Gf2metXuEfYg9nxuuGBpXppWqxmyLtk+oSXdPsW1PAW1pI5YFckWEH9b/+M8Tv1jGTDcTPPl8Fn42ekPsDCN00T2hjBuWU8bLuQ1MIiYP7sP0+M4Foc0/AVUktBwbJME1UJcfr6RbUlYpsr9MOaokVf/CACPHxrOJuDEZcZnLazFURTwSMV3v72dQek6UtXPFY9gjKoCYh8u2xm5o6fJWJ0h90xItJ39PknAGdWL0aGmbNb+7Ps9hJmb9n0Xdzca4tj0kaO2nzLf09v2u8dUQQ5eg9iHOWmVRuI+EMG1yuuNnpz9WeGXoYj91GMuOu4O2OEJWpvz0VL3BZ9A6donqkDnROSIoT1Oy3p4hsWxtrSXN4FlmXKoal0jbWzK05GuZzdno7GouqHuuW5bjbj32av3Xn3tZ/jLCNc8TmVW5yNa/tdnizStkUwADBo5Cktalmofcg0n6rECFLcOXyPOQTWbLwO4K+Guv5Vt3pIX1xMKS+rL20rpLlOS1Gtj264/bzqHPfMV8ZijncoGHJvKsH/jomPNti9zRGvXjMZNCLexVUlPsW3Co6PlSGeidtpGrULmuW3IpbM23xzKpjWJwbW18ubpANd1kMaCV4OPrtIrPXWs1ozT98HWTtfPfXOsPdnEL1CreNQap5FNhk3W+UoPiIK+0hc1YQ4Smkycib5P/0nUTHXIq0xOa8VN1H1Rl+ZadJcbSqEcReKpnCcNUr86+NRrrmUVaj3sIhFq/UtXCGzrtPWtncm2GvKtjDzeeyfvvfraz/aXEa55nOKZT4ORgBm2ScLlaCi3o7oiZcNBKbjFIXm8r8+QWCWNmWsq198GWL9FWTmOaf3n9INbIO914p4fjC7VB2pR3Fl5tI0+BlXmkTrHerYe58mR8jm0W1TTyQCjpC7WJj5ZZYziXoLroEnWx/Y4bWuStbNt77TTJkKVKZ0jDumsLsX+gUOO0JkflDpLh+LslnbbY//HT0J+XJqWvIVhfTjaS28tqPj+/+3bu3EbMRAAUFAFeFyHMpXgJlyvq1DqSIlCaZxyHeCAXeBI5tK8pxkef1gAC+AOIqXxZIwzQQ+XZ4kjITF+CZknxTr9IqdHK6PTr9KXqDuDmYAZ4TRube4V6p51qXdEGiM1rqlLrk6VZjpKuupFrm8/+pcDkX+K1mZSYvT2ZhLnnVN/8sp6yTV3WVs7vjbLeVgCR2vRnlr7/Pzx9velPb+3P6/f+J8RHni6+0pfNWPtHIeIvD9/HhXsuZ7HcTM/l2zrMTJILdRL1JD1ppbqoUerjhV9PNfuFSttP7aRs2APNT4Pu96tN/JhRM1Yz9rauK3LMwWZua3Lsfd7S9tRaclsrzc7vRWvnR/FjpUccZ1R1kZNmYaxGb9mI9scvFHq7hBnP0uutjed64+cG7XLN4ZkmaCzUVufj+dqI7NcTqA6AmWITqFL4JLCUmBZUssMreXWyZKR9prLNFumzpbmpbc1iTeSUVO5ZTHWMb3R1/0t/dG/j5+ttfb6u/1atjcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF/Hf4k/SJfqkqqVAAAAAElFTkSuQmCC"
+ height="461"
+ preserveAspectRatio="xMidYMid"
+ id="image478" />
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g490"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(633.94891,514.05933)"
+ id="g488">
+ <g
+ id="g486">
+ <path
+ d="M 0.8125,-23.234375 H 4.78125 L 8.109375,-3.25 H 8.8125 l 4.421875,-19.921875 h 4.40625 L 22.046875,-3.25 h 0.75 L 26.125,-23.234375 h 3.96875 L 25.515625,0 H 19.4375 l -4,-18.625 L 11.46875,0 H 5.359375 Z m 0,0"
+ id="path484" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g498"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(664.09827,514.05933)"
+ id="g496">
+ <g
+ id="g494">
+ <path
+ d="M 5.9375,0 H 2.234375 V -24.015625 H 5.9375 v 7.9375 c 1.675781,-0.832031 3.222656,-1.25 4.640625,-1.25 2.257813,0 3.800781,0.640625 4.625,1.921875 0.832031,1.273438 1.25,3.375 1.25,6.3125 V 0 H 12.75 v -8.984375 c 0,-1.832031 -0.195312,-3.132813 -0.578125,-3.90625 -0.386719,-0.769531 -1.199219,-1.15625 -2.4375,-1.15625 -1.085937,0 -2.167969,0.183594 -3.25,0.546875 L 5.9375,-13.296875 Z m 0,0"
+ id="path492" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g506"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(681.869,514.05933)"
+ id="g504">
+ <g
+ id="g502">
+ <path
+ d="m 14.3125,-3.046875 0.953125,-0.109375 0.0625,2.75 C 12.753906,0.113281 10.472656,0.375 8.484375,0.375 5.972656,0.375 4.164062,-0.3125 3.0625,-1.6875 1.96875,-3.070312 1.421875,-5.28125 1.421875,-8.3125 c 0,-6.007812 2.453125,-9.015625 7.359375,-9.015625 4.75,0 7.125,2.589844 7.125,7.765625 l -0.234375,2.640625 H 5.15625 c 0.019531,1.40625 0.320312,2.4375 0.90625,3.09375 0.59375,0.65625 1.691406,0.984375 3.296875,0.984375 1.601563,0 3.253906,-0.066406 4.953125,-0.203125 z m -2.03125,-6.71875 c 0,-1.675781 -0.265625,-2.847656 -0.796875,-3.515625 -0.53125,-0.664062 -1.433594,-1 -2.703125,-1 -1.261719,0 -2.183594,0.355469 -2.765625,1.0625 -0.574219,0.699219 -0.871094,1.851562 -0.890625,3.453125 z m 0,0"
+ id="path500" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g514"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(698.351,514.05933)"
+ id="g512">
+ <g
+ id="g510">
+ <path
+ d="m 14.3125,-3.046875 0.953125,-0.109375 0.0625,2.75 C 12.753906,0.113281 10.472656,0.375 8.484375,0.375 5.972656,0.375 4.164062,-0.3125 3.0625,-1.6875 1.96875,-3.070312 1.421875,-5.28125 1.421875,-8.3125 c 0,-6.007812 2.453125,-9.015625 7.359375,-9.015625 4.75,0 7.125,2.589844 7.125,7.765625 l -0.234375,2.640625 H 5.15625 c 0.019531,1.40625 0.320312,2.4375 0.90625,3.09375 0.59375,0.65625 1.691406,0.984375 3.296875,0.984375 1.601563,0 3.253906,-0.066406 4.953125,-0.203125 z m -2.03125,-6.71875 c 0,-1.675781 -0.265625,-2.847656 -0.796875,-3.515625 -0.53125,-0.664062 -1.433594,-1 -2.703125,-1 -1.261719,0 -2.183594,0.355469 -2.765625,1.0625 -0.574219,0.699219 -0.871094,1.851562 -0.890625,3.453125 z m 0,0"
+ id="path508" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g522"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(714.833,514.05933)"
+ id="g520">
+ <g
+ id="g518">
+ <path
+ d="M 2.4375,0 V -24.015625 H 6.140625 V 0 Z m 0,0"
+ id="path516" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g530"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(633.94891,548.55933)"
+ id="g528">
+ <g
+ id="g526">
+ <path
+ d="m 11.1875,-7.21875 h -4.75 V 0 h -3.75 v -23.234375 h 8.5 c 5.269531,0 7.90625,2.601563 7.90625,7.796875 0,2.667969 -0.664062,4.703125 -1.984375,6.109375 -1.324219,1.40625 -3.296875,2.109375 -5.921875,2.109375 z m -4.75,-3.265625 h 4.71875 c 2.71875,0 4.078125,-1.648437 4.078125,-4.953125 0,-1.582031 -0.328125,-2.734375 -0.984375,-3.453125 -0.65625,-0.726563 -1.6875,-1.09375 -3.09375,-1.09375 H 6.4375 Z m 0,0"
+ id="path524" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g538"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(653.24578,548.55933)"
+ id="g536">
+ <g
+ id="g534">
+ <path
+ d="M 14.796875,-11.734375 V -4 c 0.01953,0.5 0.144531,0.871094 0.375,1.109375 0.238281,0.230469 0.609375,0.382813 1.109375,0.453125 L 16.1875,0.375 c -1.949219,0 -3.453125,-0.4140625 -4.515625,-1.25 -1.8125,0.8359375 -3.636719,1.25 -5.46875,1.25 -3.367187,0 -5.046875,-1.796875 -5.046875,-5.390625 0,-1.71875 0.457031,-2.960937 1.375,-3.734375 0.914062,-0.769531 2.320312,-1.234375 4.21875,-1.390625 l 4.375,-0.375 v -1.21875 c 0,-0.90625 -0.199219,-1.535156 -0.59375,-1.890625 -0.398438,-0.363281 -0.980469,-0.546875 -1.75,-0.546875 -1.449219,0 -3.257812,0.08984 -5.421875,0.265625 l -1.09375,0.0625 -0.125,-2.609375 c 2.457031,-0.582031 4.722656,-0.875 6.796875,-0.875 2.070312,0 3.566406,0.449219 4.484375,1.34375 0.914063,0.886719 1.375,2.304687 1.375,4.25 z M 7.1875,-7.53125 c -1.5625,0.136719 -2.34375,0.984375 -2.34375,2.546875 0,1.5625 0.691406,2.34375 2.078125,2.34375 1.125,0 2.320313,-0.179687 3.59375,-0.546875 L 11.125,-3.390625 V -7.90625 Z m 0,0"
+ id="path532" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g546"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(669.69387,548.55933)"
+ id="g544">
+ <g
+ id="g542">
+ <path
+ d="m 8.578125,-17.328125 c 1.195313,0 2.613281,0.15625 4.25,0.46875 l 0.84375,0.171875 -0.140625,2.921875 c -1.78125,-0.1875 -3.105469,-0.28125 -3.96875,-0.28125 -1.71875,0 -2.875,0.386719 -3.46875,1.15625 -0.585938,0.773437 -0.875,2.21875 -0.875,4.34375 0,2.125 0.28125,3.59375 0.84375,4.40625 0.570312,0.8125 1.75,1.21875 3.53125,1.21875 L 13.5625,-3.1875 13.671875,-0.234375 C 11.390625,0.171875 9.671875,0.375 8.515625,0.375 5.929688,0.375 4.113281,-0.316406 3.0625,-1.703125 2.019531,-3.097656 1.5,-5.378906 1.5,-8.546875 c 0,-3.164063 0.550781,-5.421875 1.65625,-6.765625 1.101562,-1.34375 2.910156,-2.015625 5.421875,-2.015625 z m 0,0"
+ id="path540" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g554"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(683.93754,548.55933)"
+ id="g552">
+ <g
+ id="g550">
+ <path
+ d="M 5.9375,0 H 2.234375 V -24.015625 H 5.9375 v 13.875 l 2.109375,-0.203125 4,-6.625 H 16.1875 L 11.296875,-9.015625 16.453125,0 H 12.28125 L 8.140625,-7.15625 5.9375,-6.921875 Z m 0,0"
+ id="path548" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g562"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(700.11432,548.55933)"
+ id="g560">
+ <g
+ id="g558">
+ <path
+ d="M 14.796875,-11.734375 V -4 c 0.01953,0.5 0.144531,0.871094 0.375,1.109375 0.238281,0.230469 0.609375,0.382813 1.109375,0.453125 L 16.1875,0.375 c -1.949219,0 -3.453125,-0.4140625 -4.515625,-1.25 -1.8125,0.8359375 -3.636719,1.25 -5.46875,1.25 -3.367187,0 -5.046875,-1.796875 -5.046875,-5.390625 0,-1.71875 0.457031,-2.960937 1.375,-3.734375 0.914062,-0.769531 2.320312,-1.234375 4.21875,-1.390625 l 4.375,-0.375 v -1.21875 c 0,-0.90625 -0.199219,-1.535156 -0.59375,-1.890625 -0.398438,-0.363281 -0.980469,-0.546875 -1.75,-0.546875 -1.449219,0 -3.257812,0.08984 -5.421875,0.265625 l -1.09375,0.0625 -0.125,-2.609375 c 2.457031,-0.582031 4.722656,-0.875 6.796875,-0.875 2.070312,0 3.566406,0.449219 4.484375,1.34375 0.914063,0.886719 1.375,2.304687 1.375,4.25 z M 7.1875,-7.53125 c -1.5625,0.136719 -2.34375,0.984375 -2.34375,2.546875 0,1.5625 0.691406,2.34375 2.078125,2.34375 1.125,0 2.320313,-0.179687 3.59375,-0.546875 L 11.125,-3.390625 V -7.90625 Z m 0,0"
+ id="path556" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g570"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(716.56241,548.55933)"
+ id="g568">
+ <g
+ id="g566">
+ <path
+ d="m 17.0625,2.3125 c 0,3.707031 -2.683594,5.5625 -8.046875,5.5625 C 6.441406,7.875 4.53125,7.519531 3.28125,6.8125 2.039062,6.113281 1.421875,4.835938 1.421875,2.984375 1.421875,2.148438 1.625,1.429688 2.03125,0.828125 2.4375,0.234375 3.09375,-0.414062 4,-1.125 3.257812,-1.613281 2.890625,-2.4375 2.890625,-3.59375 c 0,-0.457031 0.300781,-1.191406 0.90625,-2.203125 L 4.109375,-6.3125 C 2.472656,-7.28125 1.65625,-8.972656 1.65625,-11.390625 c 0,-2.039063 0.609375,-3.535156 1.828125,-4.484375 1.226563,-0.945312 2.882813,-1.421875 4.96875,-1.421875 0.988281,0 1.96875,0.109375 2.9375,0.328125 L 11.90625,-16.859375 17.171875,-17 v 2.984375 l -2.828125,-0.15625 c 0.613281,0.792969 0.921875,1.71875 0.921875,2.78125 0,2.210937 -0.5625,3.742187 -1.6875,4.59375 -1.117187,0.84375 -2.859375,1.265625 -5.234375,1.265625 -0.585938,0 -1.078125,-0.046875 -1.484375,-0.140625 C 6.535156,-4.898438 6.375,-4.300781 6.375,-3.875 c 0,0.417969 0.207031,0.703125 0.625,0.859375 0.414062,0.15625 1.429688,0.246094 3.046875,0.265625 2.6875,0.023438 4.523437,0.386719 5.515625,1.09375 1,0.699219 1.5,2.019531 1.5,3.96875 z M 5.046875,2.640625 c 0,0.789063 0.316406,1.351563 0.953125,1.6875 0.632812,0.34375 1.722656,0.515625 3.265625,0.515625 2.726563,0 4.09375,-0.777344 4.09375,-2.328125 0,-0.886719 -0.246094,-1.449219 -0.734375,-1.6875 C 12.144531,0.585938 11.179688,0.457031 9.734375,0.4375 L 6.40625,0.234375 C 5.914062,0.640625 5.566406,1.019531 5.359375,1.375 5.148438,1.726562 5.046875,2.148438 5.046875,2.640625 Z m 0.28125,-14.03125 c 0,1.03125 0.242187,1.792969 0.734375,2.28125 0.5,0.492187 1.300781,0.734375 2.40625,0.734375 1.113281,0 1.910156,-0.242188 2.390625,-0.734375 0.488281,-0.488281 0.734375,-1.25 0.734375,-2.28125 0,-1.039063 -0.25,-1.804687 -0.75,-2.296875 -0.492188,-0.488281 -1.289062,-0.734375 -2.390625,-0.734375 -2.085937,0 -3.125,1.011719 -3.125,3.03125 z m 0,0"
+ id="path564" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g578"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(733.62094,548.55933)"
+ id="g576">
+ <g
+ id="g574">
+ <path
+ d="m 14.3125,-3.046875 0.953125,-0.109375 0.0625,2.75 C 12.753906,0.113281 10.472656,0.375 8.484375,0.375 5.972656,0.375 4.164062,-0.3125 3.0625,-1.6875 1.96875,-3.070312 1.421875,-5.28125 1.421875,-8.3125 c 0,-6.007812 2.453125,-9.015625 7.359375,-9.015625 4.75,0 7.125,2.589844 7.125,7.765625 l -0.234375,2.640625 H 5.15625 c 0.019531,1.40625 0.320312,2.4375 0.90625,3.09375 0.59375,0.65625 1.691406,0.984375 3.296875,0.984375 1.601563,0 3.253906,-0.066406 4.953125,-0.203125 z m -2.03125,-6.71875 c 0,-1.675781 -0.265625,-2.847656 -0.796875,-3.515625 -0.53125,-0.664062 -1.433594,-1 -2.703125,-1 -1.261719,0 -2.183594,0.355469 -2.765625,1.0625 -0.574219,0.699219 -0.871094,1.851562 -0.890625,3.453125 z m 0,0"
+ id="path572" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#000000"
+ fill-opacity="1"
+ id="g586"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(750.10294,548.55933)"
+ id="g584">
+ <g
+ id="g582">
+ <path
+ d="m 14.015625,-13.46875 c -2.679687,-0.363281 -4.617187,-0.546875 -5.8125,-0.546875 -1.199219,0 -2.03125,0.148437 -2.5,0.4375 -0.460937,0.28125 -0.6875,0.730469 -0.6875,1.34375 0,0.605469 0.253906,1.03125 0.765625,1.28125 0.507812,0.25 1.707031,0.542969 3.59375,0.875 1.894531,0.324219 3.238281,0.835937 4.03125,1.53125 0.789062,0.699219 1.1875,1.945313 1.1875,3.734375 0,1.78125 -0.574219,3.09375 -1.71875,3.9375 -1.148438,0.8359375 -2.8125,1.25 -5,1.25 -1.386719,0 -3.132812,-0.195312 -5.234375,-0.578125 L 1.59375,-0.375 1.734375,-3.453125 c 2.707031,0.355469 4.660156,0.53125 5.859375,0.53125 1.195312,0 2.050781,-0.144531 2.5625,-0.4375 0.507812,-0.289063 0.765625,-0.773437 0.765625,-1.453125 0,-0.675781 -0.246094,-1.144531 -0.734375,-1.40625 C 9.707031,-6.476562 8.546875,-6.757812 6.703125,-7.0625 4.859375,-7.375 3.503906,-7.859375 2.640625,-8.515625 c -0.855469,-0.65625 -1.28125,-1.851563 -1.28125,-3.59375 0,-1.738281 0.59375,-3.035156 1.78125,-3.890625 1.1875,-0.863281 2.707031,-1.296875 4.5625,-1.296875 1.445313,0 3.222656,0.183594 5.328125,0.546875 l 1.046875,0.203125 z m 0,0"
+ id="path580" />
+ </g>
+ </g>
+ </g>
+ <g
+ clip-path="url(#9cd47c7ee3)"
+ id="g596"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ clip-path="url(#69785d3302)"
+ id="g594">
+ <g
+ clip-path="url(#9c0953b9a2)"
+ id="g592">
+ <g
+ clip-path="url(#8e32f12866)"
+ id="g590">
+ <path
+ fill="#09102b"
+ d="m 358.17187,562.08984 c -1.19531,0.76172 -2.16015,1.45703 -3.19921,2.02344 -3.46094,1.87891 -6.86329,3.89453 -10.45313,5.5 -3.87109,1.73047 -8.14062,-0.26953 -10.125,-4.14453 -0.5,-0.96484 -1.69141,-1.5625 -2.67578,-2.41797 -0.13672,-1.35937 1.17969,-1.5625 2.09375,-2.03906 8.29297,-4.31641 15.45703,-10.17188 22.07812,-16.66406 2.53516,-2.48047 4.60938,-5.44922 6.80079,-8.26563 1.71875,-2.21484 1.94921,-2.53516 4.60546,-1.53125 4.74219,1.79297 8.49219,4.66797 10.34375,9.73828 3.22657,8.80469 6.95704,17.42969 8.59375,26.74219 0.26172,1.51172 0.33594,3.0625 0.59375,5.5 -3.77343,-1.86719 -7.05859,-2.78516 -8.24609,-6.56641 -0.72656,-2.32031 -1.48828,-4.61718 -2.5,-7.78906 -1.25781,2.66406 -2.09766,4.50781 -2.99219,6.32031 -6.76172,13.64844 -16.28906,24.96875 -29.98828,31.73828 -12.46484,6.16797 -25.84765,9.05469 -39.78906,5.21875 -11.70703,-3.23437 -20.39844,-10.70703 -27.02734,-20.60156 -2.64844,-3.96875 -4.57422,-8.4375 -6.70313,-12.73828 -0.55469,-1.11328 -0.65234,-2.44141 -0.95312,-3.68359 0.30078,-0.15625 0.60156,-0.31641 0.90625,-0.47657 1.17578,1.30469 2.42578,2.55469 3.48828,3.94532 0.66406,0.87109 1.05859,1.94922 1.53515,2.95312 6.10547,12.90625 16.76953,18.96094 30.5625,19.90625 10.53516,0.72656 20.27344,-2.26562 29.27735,-7.62109 9.51172,-5.64063 17.07812,-13.32813 22.98047,-22.6836 0.26953,-0.41406 0.51171,-0.84765 0.71875,-1.28906 0.0781,-0.20312 0.0351,-0.46484 0.0742,-1.07422 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path588" />
+ </g>
+ </g>
+ </g>
+ </g>
+ <g
+ clip-path="url(#a3af3eb6b6)"
+ id="g600"
+ transform="translate(-43.488732,-201.52699)">
+ <path
+ fill="#09102b"
+ d="m 704.36719,330.69531 c 1.40625,-2.07812 3.07422,-1.63672 4.66797,-1.07812 4.41406,1.53125 8.38281,3.79297 11.63281,7.23828 10.34375,10.98828 17.05859,23.99609 20.78125,38.50781 3.82031,14.875 2.98047,29.55469 -3.1211,43.75 -2.87109,6.67969 -6.11328,13.20703 -9.29687,20.03516 0.74219,-0.2461 1.6875,-0.47266 2.58203,-0.85938 6.08203,-2.59765 7.51172,-2.37109 12.3125,2.26953 1.07422,1.03516 1.95703,2.26563 3.19531,3.70703 -1.25,0.77735 -2.1289,1.35547 -3.04687,1.88672 -9.82422,5.69532 -19.75781,11.22266 -29.42188,17.19922 -2.34375,1.44531 -4.15234,1.31641 -6.14453,0.36719 -4.0039,-1.91797 -6.86328,-5.28906 -9.32812,-8.80078 -0.86328,-1.22656 -0.58203,-3.52344 -0.33594,-5.25781 1.86328,-12.69922 2.53906,-25.44922 1.51953,-38.23438 -0.32422,-3.98828 -1.25,-7.91797 -1.94922,-12.22656 1.26953,-0.47266 2.67969,0.3125 3.875,1.0664 5.60547,3.54297 10.27735,7.85157 11.26563,14.91797 0.46484,3.33985 0.95703,6.66797 1.39062,10.00782 0.19141,1.48437 0.23438,2.99218 0.375,4.83593 7.40625,-6.82031 14.4961,-36.78515 12.53906,-51.98437 -2.3789,-18.48047 -10.55859,-34.16406 -23.49218,-47.34766 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path598" />
+ </g>
+ <g
+ clip-path="url(#31f8f05393)"
+ id="g610"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ clip-path="url(#41889181af)"
+ id="g608">
+ <g
+ clip-path="url(#fe9d13e8b4)"
+ id="g606">
+ <g
+ clip-path="url(#6c6e35ef02)"
+ id="g604">
+ <path
+ fill="#09102b"
+ d="m 509.19922,356.76172 c -0.71094,1.38672 0.0273,2.15234 0.80469,2.83984 2.14062,1.92188 4.55078,3.38281 7.39453,4.10156 9.04687,2.27735 18.11718,1.99219 27.11328,-0.35156 9.22656,-2.40234 16.95703,-7.25781 22.86719,-14.80469 2.77734,-3.55078 5.36328,-7.2539 8.1289,-11.01953 0.0859,0.47657 0.2461,1.05469 0.30078,1.65235 0.39453,4.05468 0.94141,4.75781 4.89453,5.94922 0.88282,0.27343 1.8125,0.3789 2.96485,0.61328 0.0508,-0.90625 0.10547,-1.55469 0.11719,-2.20703 0.17968,-7.00391 0.23437,-14.01172 0.61328,-21.01172 0.0859,-1.69922 -0.52344,-2.63282 -1.62891,-3.42188 -2.23047,-1.58203 -4.91797,-2.11328 -7.55859,-2.39062 -0.92188,-0.0937 -2.08594,0.74609 -2.95703,1.39843 -6.35157,4.8125 -13.08594,9 -20.34375,12.28516 -2.26172,1.01953 -4.67579,1.70313 -7.22657,2.61719 0.1211,0.82422 0.96875,1.35156 1.73047,1.76562 3.59375,1.96094 7.32422,3.1836 11.46094,1.59766 1.95703,-0.75 3.91406,-1.48047 5.85547,-2.25 0.86719,-0.34375 1.69922,-0.77344 2.74219,-1.25 -1.50782,6.03516 -15.69532,18.84375 -24.54297,22.34766 -10.75782,4.26171 -21.71485,4.55859 -32.73047,1.53906 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path602" />
+ </g>
+ </g>
+ </g>
+ </g>
+ <g
+ clip-path="url(#9d2f7452d2)"
+ id="g614"
+ transform="translate(-43.488732,-201.52699)">
+ <path
+ fill="#09102b"
+ d="m 547.03516,293.51172 h 54.54296 c 1.38282,0 2.51563,-1.12891 2.51563,-2.50781 v -40.83594 h -59.57422 v 40.83594 c 0,1.3789 1.13281,2.50781 2.51563,2.50781 z m 16.36328,-33.44531 h 21.8125 c 1.5,0 2.72656,1.22265 2.72656,2.71484 0,1.49219 -1.22656,2.71484 -2.72656,2.71484 h -21.8125 c -1.4961,0 -2.72266,-1.22265 -2.72266,-2.71484 0,-1.49219 1.22656,-2.71484 2.72266,-2.71484 z m 0,0"
+ fill-opacity="1"
+ fill-rule="evenodd"
+ id="path612" />
+ </g>
+ <g
+ clip-path="url(#5d999a0038)"
+ id="g618"
+ transform="translate(-43.488732,-201.52699)">
+ <path
+ fill="#09102b"
+ d="m 554.07812,219.76172 h 1.70313 c 1.91797,0 3.48047,1.55859 3.48047,3.47265 0,1.91016 -1.5625,3.46875 -3.48047,3.46875 h -8.76953 c -1.91797,0 -3.48047,-1.55859 -3.48047,-3.46875 0,-1.83984 1.44922,-3.35546 3.26562,-3.46484 v 1.73828 c -0.85546,0.10938 -1.52734,0.84375 -1.52734,1.72656 0,0.87891 0.67188,1.61719 1.52734,1.72266 v 0.004 h 0.0469 c 0.0547,0.008 0.10937,0.008 0.16797,0.008 h 8.76953 c 0.95703,0 1.74219,-0.78125 1.74219,-1.73438 0,-0.95703 -0.78516,-1.73828 -1.74219,-1.73828 h -1.70313 z m 0,0"
+ fill-opacity="1"
+ fill-rule="nonzero"
+ id="path616" />
+ </g>
+ <g
+ clip-path="url(#a4f0b4e13e)"
+ id="g622"
+ transform="translate(-43.488732,-201.52699)">
+ <path
+ fill="#09102b"
+ d="M 594.1875,248.43359 H 548.53516 V 228.4375 h 7.24609 c 2.875,0 5.21875,-2.33594 5.21875,-5.20313 0,-2.86718 -2.34375,-5.20703 -5.21875,-5.20703 h -3.44141 v 5.20313 h -3.80468 v -6.04297 c 0,-0.92188 0.73437,-1.67578 1.6289,-1.67578 h 42.39453 c 0.89844,0 1.62891,0.7539 1.62891,1.67578 z m -39.69922,-5.64062 h 33.75 v 1.73047 h -33.75 z m 0,-4.61719 h 33.75 v 1.73438 h -33.75 z m 8.23047,-14.98047 h 17.28906 v 1.73438 h -17.28906 z m 4.13281,-3.77734 h 9.01953 v 1.73437 h -9.01953 z m -12.36328,14.14453 h 33.75 v 1.73437 h -33.75 z m 0,0"
+ fill-opacity="1"
+ fill-rule="evenodd"
+ id="path620" />
+ </g>
+ <g
+ clip-path="url(#0ea259bc34)"
+ id="g626"
+ transform="translate(-43.488732,-201.52699)">
+ <path
+ fill="#09102b"
+ d="m 595.92969,248.43359 h 4.14843 V 217.1875 c 0,-0.92188 -0.73437,-1.67578 -1.63281,-1.67578 h -2.95312 c 0.27734,0.49609 0.4375,1.07031 0.4375,1.67578 z m 0,0"
+ fill-opacity="1"
+ fill-rule="evenodd"
+ id="path624" />
+ </g>
+ <g
+ fill="#ffffff"
+ fill-opacity="1"
+ id="g634"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(549.69852,280.96421)"
+ id="g632">
+ <g
+ id="g630">
+ <path
+ d="m 4.421875,0.109375 c -0.75,0 -1.414063,-0.1484375 -1.984375,-0.453125 -0.5625,-0.3125 -1.007812,-0.773438 -1.328125,-1.390625 -0.3125,-0.625 -0.46875,-1.394531 -0.46875,-2.3125 0,-0.90625 0.15625,-1.671875 0.46875,-2.296875 0.320313,-0.625 0.765625,-1.085938 1.328125,-1.390625 0.570312,-0.3125 1.234375,-0.46875 1.984375,-0.46875 0.78125,0 1.441406,0.152344 1.984375,0.453125 0.539062,0.304688 0.925781,0.765625 1.15625,1.390625 l -1.15625,0.71875 H 6.265625 c -0.179687,-0.425781 -0.417969,-0.726563 -0.71875,-0.90625 -0.292969,-0.1875 -0.667969,-0.28125 -1.125,-0.28125 -0.679687,0 -1.203125,0.226563 -1.578125,0.671875 -0.375,0.4375 -0.5625,1.140625 -0.5625,2.109375 0,0.96875 0.1875,1.679687 0.5625,2.125 0.375,0.4375 0.898438,0.65625 1.578125,0.65625 1.050781,0 1.691406,-0.507813 1.921875,-1.53125 h 0.140625 l 1.1875,0.609375 C 7.441406,-1.414062 7.0625,-0.835938 6.53125,-0.453125 6,-0.078125 5.296875,0.109375 4.421875,0.109375 Z m 0,0"
+ id="path628" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#ffffff"
+ fill-opacity="1"
+ id="g642"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(557.62495,280.96421)"
+ id="g640">
+ <g
+ id="g638">
+ <path
+ d="m 4.171875,-8.09375 c 0.582031,0 1.078125,0.109375 1.484375,0.328125 0.414062,0.210937 0.726562,0.507813 0.9375,0.890625 0.207031,0.375 0.3125,0.820312 0.3125,1.328125 0,0.5 -0.105469,0.945313 -0.3125,1.328125 -0.210938,0.375 -0.523438,0.671875 -0.9375,0.890625 -0.40625,0.210937 -0.902344,0.3125 -1.484375,0.3125 H 2.65625 V 0 H 1.046875 v -8.09375 z m -0.203125,3.8125 c 0.882812,0 1.328125,-0.421875 1.328125,-1.265625 0,-0.84375 -0.445313,-1.265625 -1.328125,-1.265625 h -1.3125 v 2.53125 z m 0,0"
+ id="path636" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#ffffff"
+ fill-opacity="1"
+ id="g650"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(565.00968,280.96421)"
+ id="g648">
+ <g
+ id="g646">
+ <path
+ d="M 1.34375,2.59375 C 1.082031,2.59375 0.847656,2.570312 0.640625,2.53125 0.429688,2.488281 0.257812,2.4375 0.125,2.375 L 0.359375,1.125 0.46875,1.09375 C 0.5625,1.144531 0.675781,1.179688 0.8125,1.203125 0.945312,1.234375 1.085938,1.25 1.234375,1.25 1.472656,1.25 1.675781,1.21875 1.84375,1.15625 2.007812,1.09375 2.148438,0.984375 2.265625,0.828125 2.378906,0.679688 2.476562,0.476562 2.5625,0.21875 L 0.125,-6.09375 H 1.734375 L 3.25,-1.859375 h 0.140625 l 1.46875,-4.234375 h 1.5625 L 3.96875,0.375 C 3.769531,0.90625 3.550781,1.328125 3.3125,1.640625 3.082031,1.960938 2.804688,2.203125 2.484375,2.359375 2.171875,2.515625 1.789062,2.59375 1.34375,2.59375 Z m 0,0"
+ id="path644" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#ffffff"
+ fill-opacity="1"
+ id="g658"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(571.55424,280.96421)"
+ id="g656">
+ <g
+ id="g654">
+ <path
+ d="m 4.203125,-1.453125 0.40625,1.125 C 4.441406,-0.179688 4.234375,-0.0703125 3.984375,0 3.734375,0.0703125 3.445312,0.109375 3.125,0.109375 c -0.65625,0 -1.15625,-0.1757812 -1.5,-0.53125 -0.34375,-0.363281 -0.515625,-0.882813 -0.515625,-1.5625 v -2.90625 H 0.1875 v -1.21875 h 0.921875 v -1.1875 l 1.53125,-0.25 v 1.4375 H 4.375 v 1.21875 H 2.640625 v 2.78125 c 0,0.3125 0.0625,0.539063 0.1875,0.671875 0.125,0.136719 0.304687,0.203125 0.546875,0.203125 0.269531,0 0.507812,-0.070313 0.71875,-0.21875 z m 0,0"
+ id="path652" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#ffffff"
+ fill-opacity="1"
+ id="g666"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(576.2913,280.96421)"
+ id="g664">
+ <g
+ id="g662">
+ <path
+ d="m 0.875,0 v -8.546875 h 1.53125 v 3.25 l 0.125,0.015625 c 0.195312,-0.300781 0.441406,-0.53125 0.734375,-0.6875 0.300781,-0.164062 0.660156,-0.25 1.078125,-0.25 1.34375,0 2.015625,0.765625 2.015625,2.296875 V 0 h -1.53125 v -3.734375 c 0,-0.414063 -0.085937,-0.71875 -0.25,-0.90625 -0.167969,-0.1875 -0.421875,-0.28125 -0.765625,-0.28125 -0.4375,0 -0.78125,0.148437 -1.03125,0.4375 -0.25,0.28125 -0.375,0.726563 -0.375,1.328125 V 0 Z m 0,0"
+ id="path660" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#ffffff"
+ fill-opacity="1"
+ id="g674"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(583.43283,280.96421)"
+ id="g672">
+ <g
+ id="g670">
+ <path
+ d="M 3.546875,0.109375 C 2.953125,0.109375 2.425781,-0.0078125 1.96875,-0.25 1.519531,-0.5 1.171875,-0.859375 0.921875,-1.328125 c -0.25,-0.476563 -0.375,-1.050781 -0.375,-1.71875 0,-0.664063 0.125,-1.238281 0.375,-1.71875 0.25,-0.476563 0.597656,-0.835937 1.046875,-1.078125 0.457031,-0.25 0.984375,-0.375 1.578125,-0.375 0.59375,0 1.113281,0.125 1.5625,0.375 0.457031,0.242188 0.8125,0.601562 1.0625,1.078125 0.25,0.480469 0.375,1.054687 0.375,1.71875 0,0.667969 -0.125,1.242187 -0.375,1.71875 -0.25,0.46875 -0.605469,0.828125 -1.0625,1.078125 -0.449219,0.2421875 -0.96875,0.359375 -1.5625,0.359375 z m 0,-1.296875 c 0.945313,0 1.421875,-0.617188 1.421875,-1.859375 0,-0.644531 -0.125,-1.117187 -0.375,-1.421875 -0.242188,-0.300781 -0.589844,-0.453125 -1.046875,-0.453125 -0.949219,0 -1.421875,0.625 -1.421875,1.875 0,1.242187 0.472656,1.859375 1.421875,1.859375 z m 0,0"
+ id="path668" />
+ </g>
+ </g>
+ </g>
+ <g
+ fill="#ffffff"
+ fill-opacity="1"
+ id="g682"
+ transform="translate(-43.488732,-201.52699)">
+ <g
+ transform="translate(590.51908,280.96421)"
+ id="g680">
+ <g
+ id="g678">
+ <path
+ d="m 0.875,0 v -6.09375 h 1.46875 v 0.890625 l 0.125,0.03125 c 0.375,-0.695313 0.988281,-1.046875 1.84375,-1.046875 0.707031,0 1.222656,0.195312 1.546875,0.578125 0.332031,0.386719 0.5,0.945313 0.5,1.671875 V 0 h -1.53125 v -3.78125 c 0,-0.40625 -0.085937,-0.695312 -0.25,-0.875 C 4.421875,-4.832031 4.164062,-4.921875 3.8125,-4.921875 3.363281,-4.921875 3.015625,-4.78125 2.765625,-4.5 2.523438,-4.21875 2.40625,-3.769531 2.40625,-3.15625 V 0 Z m 0,0"
+ id="path676" />
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/sources/shiboken6/doc/images/shibokenqtarch.png b/sources/shiboken6/doc/images/shibokenqtarch.png
index 359413373..c20ba4624 100644
--- a/sources/shiboken6/doc/images/shibokenqtarch.png
+++ b/sources/shiboken6/doc/images/shibokenqtarch.png
Binary files differ
diff --git a/sources/shiboken6/doc/images/shibokenqtarch.svg b/sources/shiboken6/doc/images/shibokenqtarch.svg
index d9212f18c..8f52b8db4 100644
--- a/sources/shiboken6/doc/images/shibokenqtarch.svg
+++ b/sources/shiboken6/doc/images/shibokenqtarch.svg
@@ -2,24 +2,24 @@
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="275"
height="197.55103"
id="svg2"
sodipodi:version="0.32"
- inkscape:version="0.92.2 2405546, 2018-03-11"
+ inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
version="1.0"
sodipodi:docname="shibokenqtarch.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="shibokenqtarch.png"
inkscape:export-xdpi="90"
- inkscape:export-ydpi="90">
+ inkscape:export-ydpi="90"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs4">
<marker
@@ -54,23 +54,26 @@
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
- inkscape:zoom="1.0474359"
- inkscape:cx="110.19617"
- inkscape:cy="69.09871"
+ inkscape:zoom="2.0948718"
+ inkscape:cx="130.07956"
+ inkscape:cy="99.051407"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
- inkscape:window-width="1002"
- inkscape:window-height="1042"
- inkscape:window-x="10"
- inkscape:window-y="28"
+ inkscape:window-width="2552"
+ inkscape:window-height="1432"
+ inkscape:window-x="1924"
+ inkscape:window-y="4"
showguides="true"
inkscape:guide-bbox="true"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
- inkscape:window-maximized="0">
+ inkscape:window-maximized="0"
+ inkscape:showpageshadow="2"
+ inkscape:pagecheckerboard="0"
+ inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid44"
@@ -85,7 +88,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
+ <dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@@ -114,7 +117,7 @@
sodipodi:nodetypes="ccccccc" />
<text
xml:space="preserve"
- style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:16.68707466px;line-height:1.25;font-family:Titillium;-inkscape-font-specification:'Titillium, Semi-Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.12244904;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:16.6871px;line-height:1.25;font-family:Titillium;-inkscape-font-specification:'Titillium, Semi-Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.12245;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
x="120.87232"
y="334.88406"
id="text153"><tspan
@@ -122,10 +125,10 @@
id="tspan151"
x="120.87232"
y="334.88406"
- style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:16.68707466px;font-family:Titillium;-inkscape-font-specification:'Titillium, Semi-Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.12244904;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">Qt for Python</tspan></text>
+ style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:16.6871px;font-family:Titillium;-inkscape-font-specification:'Titillium, Semi-Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.12245;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">Qt for Python</tspan></text>
<text
xml:space="preserve"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.74510956px;line-height:1.25;font-family:Titillium;-inkscape-font-specification:Titillium;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.31862774"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.7451px;line-height:1.25;font-family:Titillium;-inkscape-font-specification:Titillium;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.318628"
x="121.09701"
y="354.01886"
id="text157"><tspan
@@ -133,7 +136,7 @@
x="121.09701"
y="354.01886"
id="tspan159"
- style="fill:#ffffff;fill-opacity:1;stroke-width:0.31862774">Qt classes and functions exported to Python</tspan></text>
+ style="fill:#ffffff;fill-opacity:1;stroke-width:0.318628">Qt classes and functions exported to Python</tspan></text>
<path
style="fill:#53586b;fill-opacity:1;stroke:none;stroke-width:2.20567369;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 106.0768,391.19877 v 44.89796 h 262.2093 l 12.7907,-11.22449 V 379.97428 H 117.53514 Z"
@@ -142,7 +145,7 @@
sodipodi:nodetypes="ccccccc" />
<text
xml:space="preserve"
- style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:16.68707466px;line-height:1.25;font-family:Titillium;-inkscape-font-specification:'Titillium, Semi-Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.41717955"
+ style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:16.6871px;line-height:1.25;font-family:Titillium;-inkscape-font-specification:'Titillium, Semi-Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.41718"
x="121.0225"
y="403.38095"
id="text153-2"><tspan
@@ -150,10 +153,10 @@
id="tspan151-9"
x="121.0225"
y="403.38095"
- style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:16.68707466px;font-family:Titillium;-inkscape-font-specification:'Titillium, Semi-Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke-width:0.41717955">Shiboken</tspan></text>
+ style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:16.6871px;font-family:Titillium;-inkscape-font-specification:'Titillium, Semi-Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke-width:0.41718">Shiboken</tspan></text>
<text
xml:space="preserve"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.74510956px;line-height:1.25;font-family:Titillium;-inkscape-font-specification:Titillium;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.31862774"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.7451px;line-height:1.25;font-family:Titillium;-inkscape-font-specification:Titillium;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.318628"
x="121.09701"
y="421.95245"
id="text157-1"><tspan
@@ -161,10 +164,10 @@
x="121.09701"
y="421.95245"
id="tspan159-2"
- style="fill:#ffffff;fill-opacity:1;stroke-width:0.31862774">Generator that exposes C++ classes to Python</tspan></text>
+ style="fill:#ffffff;fill-opacity:1;stroke-width:0.318628">Generator that exposes C++ classes to Python</tspan></text>
<text
xml:space="preserve"
- style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:17.95918465px;line-height:1.25;font-family:Titillium;-inkscape-font-specification:'Titillium, Semi-Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.31862774"
+ style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:17.9592px;line-height:1.25;font-family:Titillium;-inkscape-font-specification:'Titillium, Semi-Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.318628"
x="123.35368"
y="482.61551"
id="text157-1-7"><tspan
@@ -172,17 +175,17 @@
x="123.35368"
y="482.61551"
id="tspan159-2-0"
- style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:17.95918465px;font-family:Titillium;-inkscape-font-specification:'Titillium, Semi-Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke-width:0.31862774">CPython API</tspan></text>
+ style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:17.9592px;font-family:Titillium;-inkscape-font-specification:'Titillium, Semi-Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke-width:0.318628">CPython API</tspan></text>
<text
xml:space="preserve"
- style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:17.95918465px;line-height:1.25;font-family:Titillium;-inkscape-font-specification:'Titillium, Semi-Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.4132798"
- x="265.1445"
- y="483.19019"
+ style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:17.9592px;line-height:1.25;font-family:Titillium;-inkscape-font-specification:'Titillium, Semi-Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.41328"
+ x="271.38934"
+ y="483.42886"
id="text157-1-9"><tspan
sodipodi:role="line"
- x="265.1445"
- y="483.19019"
+ x="271.38934"
+ y="483.42886"
id="tspan159-2-3"
- style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:17.95918465px;font-family:Titillium;-inkscape-font-specification:'Titillium, Semi-Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke-width:0.4132798">Qt 5 Libraries</tspan></text>
+ style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:17.9592px;font-family:Titillium;-inkscape-font-specification:'Titillium, Semi-Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke-width:0.41328">Qt Libraries</tspan></text>
</g>
</svg>
diff --git a/sources/shiboken6/doc/index.rst b/sources/shiboken6/doc/index.rst
index 87d39113d..68f96dded 100644
--- a/sources/shiboken6/doc/index.rst
+++ b/sources/shiboken6/doc/index.rst
@@ -25,95 +25,92 @@ Shiboken
Documentation
=============
-.. ifconfig:: output_format == 'html'
+.. grid:: 1 3 3 3
+ :gutter: 2
- .. panels::
- :body: text-center
- :container: container-lg pb-3
- :column: col-lg-4 col-md-4 col-sm-6 col-xs-12 p-2
+ .. grid-item-card::
+ :class-item: text-center
Install and build from source.
-
+++
+ .. button-ref:: gettingstarted
+ :color: primary
+ :outline:
+ :expand:
- .. link-button:: gettingstarted
- :type: ref
- :text: Getting Started
- :classes: btn-qt btn-block stretched-link
- ---
+ Getting Started
- Binding generator executable.
+ .. grid-item-card::
+ :class-item: text-center
+ Binding generator executable.
+++
+ .. button-ref:: shibokengenerator
+ :color: primary
+ :outline:
+ :expand:
- .. link-button:: shibokengenerator
- :type: ref
- :text: Shiboken Generator
- :classes: btn-qt btn-block stretched-link
- ---
+ Shiboken Generator
- Python utility module.
+ .. grid-item-card::
+ :class-item: text-center
+ Python utility module.
+++
+ .. button-ref:: shibokenmodule
+ :color: primary
+ :outline:
+ :expand:
- .. link-button:: shibokenmodule
- :type: ref
- :text: Shiboken Module
- :classes: btn-qt btn-block stretched-link
+ Shiboken Module
- ---
+ .. grid-item-card::
+ :class-item: text-center
Reference and functionallities.
-
+++
+ .. button-ref:: typesystem
+ :color: primary
+ :outline:
+ :expand:
- .. link-button:: typesystem
- :type: ref
- :text: Type System
- :classes: btn-qt btn-block stretched-link
+ Type System
- ---
+ .. grid-item-card::
+ :class-item: text-center
Using Shiboken.
-
+++
+ .. button-ref:: examples/index
+ :color: primary
+ :outline:
+ :expand:
- .. link-button:: examples/index
- :type: ref
- :text: Examples
- :classes: btn-qt btn-block stretched-link
-
- ---
+ Examples
- Known issues and FAQ.
+ .. grid-item-card::
+ :class-item: text-center
+ Generating Python stub files.
+++
+ .. button-ref:: shiboken-genpyi
+ :color: primary
+ :outline:
+ :expand:
- .. link-button:: considerations
- :type: ref
- :text: Considerations
- :classes: btn-qt btn-block stretched-link
+ shiboken6-genpyi
-.. ifconfig:: output_format == 'qthelp'
+ .. grid-item-card::
+ :class-item: text-center
+
+ Known issues and FAQ.
+ +++
+ .. button-ref:: considerations
+ :color: primary
+ :outline:
+ :expand:
- <table class="special">
- <colgroup>
- <col style="width: 33%" />
- <col style="width: 33%" />
- <col style="width: 33%" />
- </colgroup>
- <tr>
- <td><a href="gettingstarted.html"><p><strong>Getting Started</strong><br/>Install and build from source.</p></a></td>
- <td><a href="shibokengenerator.html"><p><strong>Shiboken Generator</strong><br/>Binding generator executable.</p></a></td>
- <td><a href="shibokenmodule.html"><p><strong>Shiboken Module</strong><br/>Python utility module.</p></a></td>
- </tr>
- <tr>
- <td><a href="typesystem.html"><p><strong>Type System</strong><br/>Reference and functionality.</p></a></td>
- <td><a href="examples/index.html"><p><strong>Examples</strong><br/>Using Shiboken.</p></a></td>
- <td><a href="considerations.html"><p><strong>Considerations</strong><br/>Known issues and FAQ.</p></a></td>
- </tr>
-
- </table>
+ Considerations
.. toctree::
:hidden:
@@ -124,4 +121,5 @@ Documentation
shibokenmodule.rst
typesystem.rst
examples/index.rst
+ shiboken-genpyi.rst
considerations.rst
diff --git a/sources/shiboken6/doc/scripts/patch_qhp.py b/sources/shiboken6/doc/scripts/patch_qhp.py
new file mode 100644
index 000000000..750789698
--- /dev/null
+++ b/sources/shiboken6/doc/scripts/patch_qhp.py
@@ -0,0 +1,62 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+import fileinput
+import re
+import sys
+from argparse import ArgumentParser, RawTextHelpFormatter
+
+
+DESC="""Qhp file updater
+
+Replaces virtual folder ids in .qhp files preparing for
+registering the documentation in Qt Assistant."""
+
+
+VIRTUAL_FOLDER_PATTERN = re.compile("(^.*virtualFolder.)doc(.*$)")
+# Strip "PySide6.QtModule." from index entries
+INDEX_CLASS_PATTERN = re.compile(r'^(\s*<keyword name=")PySide6\.[^.]+\.(.*\(class in .*)$')
+INDEX_METHOD_PATTERN = re.compile(r'^(\s+<keyword name=".* \()PySide6\.[^.]+\.(.*>)$')
+
+
+virtual_folder = ""
+strip_pyside_module = False
+
+
+def process_line(line):
+ global virtual_folder
+ match = VIRTUAL_FOLDER_PATTERN.match(line)
+ if match:
+ print(f"{match.group(1)}{virtual_folder}{match.group(2)}")
+ return
+ if strip_pyside_module:
+ match = INDEX_METHOD_PATTERN.match(line)
+ if match:
+ print(f"{match.group(1)}{match.group(2)}")
+ return
+ match = INDEX_CLASS_PATTERN.match(line)
+ if match:
+ print(f"{match.group(1)}{match.group(2)}")
+ return
+ sys.stdout.write(line)
+
+
+if __name__ == '__main__':
+ arg_parser = ArgumentParser(description=DESC,
+ formatter_class=RawTextHelpFormatter)
+ arg_parser.add_argument('-v', '--vfolder', type=str,
+ help='String to be injected into the Qhp file.')
+ arg_parser.add_argument("--pyside", "-p", action="store_true",
+ help="Strip the PySide module path off the index entries.")
+ arg_parser.add_argument("file", type=str, help='Qhp filename.')
+ options = arg_parser.parse_args()
+ virtual_folder = options.vfolder
+ strip_pyside_module = options.pyside
+
+ try:
+ with fileinput.input(options.file, inplace=True,
+ backup=".bak") as fh:
+ for line in fh:
+ process_line(line)
+ except Exception as e:
+ print(f"WARNING: patch_qhp.py failed: {e}", file=sys.stderr)
diff --git a/sources/shiboken6/doc/shiboken-genpyi.rst b/sources/shiboken6/doc/shiboken-genpyi.rst
new file mode 100644
index 000000000..44d0edb97
--- /dev/null
+++ b/sources/shiboken6/doc/shiboken-genpyi.rst
@@ -0,0 +1,32 @@
+.. _shiboken6-genpyi:
+
+shiboken6-genpyi
+================
+
+`shiboken6-genpyi` is a command line tool to generate Python stub files
+(.pyi) for any shiboken binding-based module (not just PySide). Stub
+files define signatures of all classes, methods (including overloads),
+constants and enums of a module. Signatures also contain type hints.
+This helps your module integrate with Python type checkers and IDEs.
+For example, if you use any function from your module, your IDE's
+function lookup feature will show you the function signature and its
+parameters and return value including types.
+
+
+Usage
+-----
+
+To generate stub files for a module, run the following command:
+
+.. code-block:: bash
+
+ shiboken6-genpyi <module_names> [OPTIONS]
+
+where `<module_names>` is a space-separated list of module names (the
+modules must be importable from the working directory) and where
+`[OPTIONS]` can be one of the following:
+
+* **--quiet**: Run the tool quietly without output to stdout.
+* **--outpath <output_dir>**: Specify the output directory for the
+ generated stub files. If not specified, the stub files are generated
+ in the location of the module binary.
diff --git a/sources/shiboken6/doc/shibokengenerator.rst b/sources/shiboken6/doc/shibokengenerator.rst
index ddc2c64a1..14340ab69 100644
--- a/sources/shiboken6/doc/shibokengenerator.rst
+++ b/sources/shiboken6/doc/shibokengenerator.rst
@@ -52,13 +52,13 @@ Handwritten inputs
Creating new bindings involves creating several pieces of "code": the header,
the typesystem and, in most cases, the injected code.
-:header: A header with ``#include`` directives listing all the headers of the
- desired classes. This header is not referenced by the generated code.
- Alternatively, it is possible to pass a list of the headers of the
- desired classes directly on the command line. In this case,
- the command line option ``--use-global-header`` should be passed as
- well to prevent the headers from being suppressed in the generated
- code.
+**header** A header with ``#include`` directives listing all the headers of the
+ desired classes. This header is not referenced by the generated code.
+ Alternatively, it is possible to pass a list of the headers of the
+ desired classes directly on the command line. In this case,
+ the command line option ``--use-global-header`` should be passed as
+ well to prevent the headers from being suppressed in the generated
+ code.
::ref:`typesystem`: XML files that provides the developer with a tool to customize the
way that the generators will see the classes and functions. For
@@ -112,17 +112,30 @@ Options
``--avoid-protected-hack``
Avoid the use of the '#define protected public' hack.
-.. _use-isnull-as-nb-nonzero:
+.. _use-isnull-as-nb-bool:
-``--use-isnull-as-nb_nonzero``
+``--use-isnull-as-nb-bool``
If a class has an isNull() const method, it will be used to
compute the value of boolean casts (see :ref:`bool-cast`).
+ The legacy option ``--use-isnull-as-nb_nonzero`` has the
+ same effect, but should not be used any more.
-.. _use-operator-bool-as-nb-nonzero:
+``--lean-headers``
+ Forward declare classes in module headers instead of including their class
+ headers where possible.
-``--use-operator-bool-as-nb_nonzero``
+.. _use-operator-bool-as-nb-bool:
+
+``--use-operator-bool-as-nb-bool``
If a class has an operator bool, it will be used to compute
the value of boolean casts (see :ref:`bool-cast`).
+ The legacy option ``--use-operator-bool-as-nb_nonzero`` has the
+ same effect, but should not be used any more.
+
+.. _no-implicit-conversions:
+
+``--no-implicit-conversions``
+ Do not generate implicit_conversions for function arguments.
.. _api-version:
@@ -189,12 +202,21 @@ Options
When '-' is passed as the first option in the list, none of the options
built into shiboken will be added, allowing for a complete replacement.
+``--compiler=<type>``
+ Emulated compiler type (g++, msvc, clang)
+
+``--compiler-path=<file>``
+ Path to the compiler for determining builtin include paths
+
+``--platform=<file>``
+ Emulated platform (windows, darwin, unix)
+
.. _include-paths:
``-I<path>, --include-paths=<path>[:<path>:...]``
Include paths used by the C++ parser.
-... _system-include-paths:
+.. _system-include-paths:
``-isystem<path>, --system-include-paths=<path>[:<path>:...]``
System include paths used by the C++ parser
@@ -204,6 +226,12 @@ Options
``-F<path>, --framework-include-paths=<path>[:<path>:...]``
Framework include paths used by the C++ parser
+.. _force-process-system-include-paths:
+
+``--force-process-system-include-paths=<path>[:<path>:...]``
+ Include paths that are considered as system headers by the C++ parser,
+ but should still be processed to extract types
+
.. _language-level:
``--language-level=, -std=<level>``
@@ -229,6 +257,10 @@ Options
``--no-suppress-warnings``
Show all warnings.
+``--log-unmatched``
+ Prints :ref:`suppress-warning` and :ref:`rejection` elements that were
+ not matched. This is useful for cleaning up old type system files.
+
.. _silent:
``--silent``
@@ -244,6 +276,9 @@ Options
``--help``
Display this help and exit.
+``--print-builtin-types``
+ Print information about builtin types
+
.. _version:
``--version``
@@ -284,6 +319,12 @@ QtDocGenerator Options
List of additional XML files to be converted to .rst files
(for example, tutorials).
+``--inheritance-file=<file>``
+ Generate a JSON file containing the class inheritance.
+
+``--disable-inheritance-diagram``
+ Disable the generation of the inheritance diagram.
+
.. _project-file:
********************
@@ -301,18 +342,18 @@ The project file structure
Here follows a comprehensive example of a generator project file.
- .. code-block:: ini
+.. code-block:: ini
- [generator-project]
- generator-set = path/to/generator/CHOICE_GENERATOR
- header-file = DIR/global.h" />
- typesystem-file = DIR/typesystem_for_your_binding.xml
- output-directory location="OUTPUTDIR" />
- include-path = path/to/library/being/wrapped/headers/1
- include-path = path/to/library/being/wrapped/headers/2
- typesystem-path = path/to/directory/containing/type/system/files/1
- typesystem-path = path/to/directory/containing/type/system/files/2
- enable-parent-ctor-heuristic
+ [generator-project]
+ generator-set = path/to/generator/CHOICE_GENERATOR
+ header-file = DIR/global.h" />
+ typesystem-file = DIR/typesystem_for_your_binding.xml
+ output-directory location="OUTPUTDIR" />
+ include-path = path/to/library/being/wrapped/headers/1
+ include-path = path/to/library/being/wrapped/headers/2
+ typesystem-path = path/to/directory/containing/type/system/files/1
+ typesystem-path = path/to/directory/containing/type/system/files/2
+ enable-parent-ctor-heuristic
Project file tags
@@ -328,26 +369,25 @@ generator project file following simple conversion rules.
For tags without options, just write as an empty tag without any attributes.
Example:
- .. code-block:: bash
+.. code-block:: bash
- --BOOLEAN-ARGUMENT
+ --BOOLEAN-ARGUMENT
becomes
- .. code-block:: ini
+.. code-block:: ini
- BOOLEAN-ARGUMENT
+ BOOLEAN-ARGUMENT
and
- .. code-block:: bash
+.. code-block:: bash
- --VALUE-ARGUMENT=VALUE
+ --VALUE-ARGUMENT=VALUE
becomes
- .. code-block:: ini
-
- VALUE-ARGUMENT = VALUE
+.. code-block:: ini
+ VALUE-ARGUMENT = VALUE
diff --git a/sources/shiboken6/doc/shibokenmodule.rst b/sources/shiboken6/doc/shibokenmodule.rst
index d6bb12653..2f1c6d166 100644
--- a/sources/shiboken6/doc/shibokenmodule.rst
+++ b/sources/shiboken6/doc/shibokenmodule.rst
@@ -1,4 +1,4 @@
-. module:: shiboken
+.. module:: Shiboken
.. |maya| unicode:: Maya U+2122
@@ -19,6 +19,7 @@ Functions
* def :meth:`isOwnedByPython<shiboken.isOwnedByPython>` (obj)
* def :meth:`wasCreatedByPython<shiboken.wasCreatedByPython>` (obj)
* def :meth:`dump<shiboken.dump>` (obj)
+ * def :meth:`disassembleFrame<shiboken.disassembleFrame>` (marker)
Detailed description
^^^^^^^^^^^^^^^^^^^^
@@ -31,6 +32,11 @@ or just for debug purposes.
Some function description refer to "Shiboken based objects", wich means
Python objects instances of any Python Type created using Shiboken.
+To import the module:
+
+.. code-block:: python
+
+ from shiboken6 import Shiboken
.. function:: isValid(obj)
@@ -78,4 +84,59 @@ Python objects instances of any Python Type created using Shiboken.
creating their own bindings as no guarantee is provided that
the string format will be the same across different versions.
- If the object is not a Shiboken based object, a TypeError is thrown.
+ If the object is not a Shiboken based object, a message is printed.
+
+.. function:: disassembleFrame(label)
+
+ Prints the current executing Python frame to stdout and flushes.
+ The disassembly is decorated by some label. Example:
+
+ .. code-block:: python
+
+ lambda: 42
+
+ is shown from inside C++ as
+
+ .. code-block:: c
+
+ <label> BEGIN
+ 1 0 LOAD_CONST 1 (42)
+ 2 RETURN_VALUE
+ <label> END
+
+ When you want to set a breakpoint at the `disassembleFrame` function
+ and you use it from C++, you use the pure function name.
+
+ When you want to use it from Python, you can insert it into your Python
+ code and then maybe instead set a breakpoint at `SbkShibokenModule_disassembleFrame`
+ which is the generated wrapper.
+
+ `label` is a simple string in C++. In Python, you can use any object;
+ internally the `str` function is called with it.
+
+ This method should be used **only** for debug purposes by developers.
+
+ .. function:: dumpTypeGraph(file_name)
+
+ Dumps the inheritance graph of the types existing in libshiboken
+ to ``.dot`` file for use with `Graphviz <https://graphviz.org/>`_.
+
+.. function:: dumpWrapperMap()
+
+ Dumps the map of wrappers existing in libshiboken to standard error.
+
+ .. py:class:: VoidPtr(address, size = -1, writeable = 0)
+
+ :param address: (PyBuffer, SbkObject, int, VoidPtr)
+ :param size: int
+ :param writeable: int
+
+ Represents a chunk of memory by address and size and implements the ``buffer`` protocol.
+ It can be constructed from a ``buffer``, a Shiboken based object, a memory address
+ or another VoidPtr instance.
+
+ .. py:method:: toBytes()
+
+ :rtype: bytes
+
+ Returns the contents as ``bytes``.
diff --git a/sources/shiboken6/doc/typesystem.rst b/sources/shiboken6/doc/typesystem.rst
index 0f80da40b..e1e4fdda2 100644
--- a/sources/shiboken6/doc/typesystem.rst
+++ b/sources/shiboken6/doc/typesystem.rst
@@ -22,6 +22,7 @@ Define types
:maxdepth: 1
typesystem_specifying_types.rst
+ typesystem_builtin_types.rst
Code generation
---------------
@@ -40,6 +41,7 @@ Modifying types
typesystem_arguments.rst
typesystem_codeinjection.rst
typesystem_converters.rst
+ typesystem_containers.rst
typesystem_templates.rst
typesystem_modify_function.rst
typesystem_manipulating_objects.rst
diff --git a/sources/shiboken6/doc/typesystem_arguments.rst b/sources/shiboken6/doc/typesystem_arguments.rst
index ac5e1c826..d950b6c32 100644
--- a/sources/shiboken6/doc/typesystem_arguments.rst
+++ b/sources/shiboken6/doc/typesystem_arguments.rst
@@ -8,66 +8,77 @@ Modifying Arguments
conversion-rule
^^^^^^^^^^^^^^^
- The ``conversion-rule`` node allows you to write customized code to convert
- the given argument between the target language and C++.
- It is then a child of the :ref:`modify-argument` node:
+The ``conversion-rule`` node allows you to write customized code to convert
+the given argument between the target language and C++.
+It is then a child of the :ref:`modify-argument` node:
- .. code-block:: xml
+.. code-block:: xml
- <modify-argument index="2">
- <!-- for the second argument of the function -->
- <conversion-rule class="target | native">
- // the code
- </conversion-rule>
- </modify-argument>
+ <modify-argument index="2">
+ <!-- for the second argument of the function -->
+ <conversion-rule class="target | native">
+ // the code
+ </conversion-rule>
+ </modify-argument>
- This node is typically used in combination with the :ref:`replace-type` and
- :ref:`remove-argument` nodes. The given code is used instead of the generator's
- conversion code.
+The ``class`` attribute accepts one of the following values to define the
+conversion direction to be either ``target-to-native`` or ``native-to-target``:
- Writing %N in the code (where N is a number), will insert the name of the
- nth argument. Alternatively, %in and %out which will be replaced with the
- name of the conversion's input and output variable, respectively. Note the
- output variable must be declared explicitly, for example:
+* ``native``: Defines the conversion direction to be ``target-to-native``.
+ It is similar to the existing ``<target-to-native>`` element.
+ See :ref:`Conversion Rule Tag <conversion-rule-tag>` for more information.
- .. code-block:: xml
+* ``target``: Defines the conversion direction to be ``native-to-target``.
+ It is similar to the existing ``<native-to-target>`` element.
+ See :ref:`Conversion Rule Tag <conversion-rule-tag>` for more information.
- <conversion-rule class="native">
- bool %out = (bool) %in;
- </conversion-rule>
+This node is typically used in combination with the :ref:`replace-type` and
+:ref:`remove-argument` nodes. The given code is used instead of the generator's
+conversion code.
- .. note::
+Writing %N in the code (where N is a number), will insert the name of the
+nth argument. Alternatively, %in and %out which will be replaced with the
+name of the conversion's input and output variable, respectively. Note the
+output variable must be declared explicitly, for example:
- You can also use the ``conversion-rule`` node to specify
- :ref:`a conversion code which will be used instead of the generator's conversion code everywhere for a given type <conversion-rule-tag>`.
+.. code-block:: xml
+
+ <conversion-rule class="native">
+ bool %out = (bool) %in;
+ </conversion-rule>
+
+.. note::
+
+ You can also use the ``conversion-rule`` node to specify
+ :ref:`a conversion code which will be used instead of the generator's conversion code everywhere for a given type <conversion-rule-tag>`.
.. _remove-argument:
remove-argument
^^^^^^^^^^^^^^^
- The ``remove-argument`` node removes the given argument from the function's
- signature, and it is a child of the :ref:`modify-argument` node.
+The ``remove-argument`` node removes the given argument from the function's
+signature, and it is a child of the :ref:`modify-argument` node.
- .. code-block:: xml
+.. code-block:: xml
- <modify-argument>
- <remove-argument />
- </modify-argument>
+ <modify-argument>
+ <remove-argument />
+ </modify-argument>
.. _rename-to:
rename to
^^^^^^^^^
- The ``rename to`` node is used to rename a argument and use this new name in
- the generated code, and it is a child of the :ref:`modify-argument` node.
+The ``rename to`` node is used to rename a argument and use this new name in
+the generated code, and it is a child of the :ref:`modify-argument` node.
- .. code-block:: xml
+.. code-block:: xml
- <modify-argument>
- <rename to='...' />
- </modify-argument>
+ <modify-argument>
+ <rename to='...' />
+ </modify-argument>
.. warning:: This tag is deprecated, use the ``rename`` attribute from :ref:`modify-argument` tag instead.
@@ -76,143 +87,143 @@ rename to
remove-default-expression
^^^^^^^^^^^^^^^^^^^^^^^^^
- The ``remove-default-expression`` node disables the use of the default expression
- for the given argument, and it is a child of the :ref:`modify-argument` node.
+The ``remove-default-expression`` node disables the use of the default expression
+for the given argument, and it is a child of the :ref:`modify-argument` node.
- .. code-block:: xml
+.. code-block:: xml
- <modify-argument...>
- <remove-default-expression />
- </modify-argument>
+ <modify-argument...>
+ <remove-default-expression />
+ </modify-argument>
.. _replace-default-expression:
replace-default-expression
^^^^^^^^^^^^^^^^^^^^^^^^^^
- The ``replace-default-expression`` node replaces the specified argument with the
- expression specified by the ``with`` attribute, and it is a child of the
- :ref:`modify-argument` node.
+The ``replace-default-expression`` node replaces the specified argument with the
+expression specified by the ``with`` attribute, and it is a child of the
+:ref:`modify-argument` node.
- .. code-block:: xml
+.. code-block:: xml
- <modify-argument>
- <replace-default-expression with="..." />
- </modify-argument>
+ <modify-argument>
+ <replace-default-expression with="..." />
+ </modify-argument>
.. _replace-type:
replace-type
^^^^^^^^^^^^
- The ``replace-type`` node replaces the type of the given argument to the one
- specified by the ``modified-type`` attribute, and it is a child of the
- :ref:`modify-argument` node.
+The ``replace-type`` node replaces the type of the given argument to the one
+specified by the ``modified-type`` attribute, and it is a child of the
+:ref:`modify-argument` node.
- .. code-block:: xml
+.. code-block:: xml
- <modify-argument>
- <replace-type modified-type="..." />
- </modify-argument>
+ <modify-argument>
+ <replace-type modified-type="..." />
+ </modify-argument>
- If the new type is a class, the ``modified-type`` attribute must be set to
- the fully qualified name (including name of the package as well as the class
- name).
+If the new type is a class, the ``modified-type`` attribute must be set to
+the fully qualified name (including name of the package as well as the class
+name).
.. _define-ownership:
define-ownership
^^^^^^^^^^^^^^^^
- The ``define-ownership`` tag indicates that the function changes the ownership
- rules of the argument object, and it is a child of the
- :ref:`modify-argument` node.
- The ``class`` attribute specifies the class of
- function where to inject the ownership altering code
- (see :ref:`codegenerationterminology`). The ``owner`` attribute
- specifies the new ownership of the object. It accepts the following values:
-
- * target: the target language will assume full ownership of the object.
- The native resources will be deleted when the target language
- object is finalized.
- * c++: The native code assumes full ownership of the object. The target
- language object will not be garbage collected.
- * default: The object will get default ownership, depending on how it
- was created.
-
- .. code-block:: xml
-
- <modify-argument>
- <define-ownership class="target | native"
- owner="target | c++ | default" />
- </modify-argument>
+The ``define-ownership`` tag indicates that the function changes the ownership
+rules of the argument object, and it is a child of the
+:ref:`modify-argument` node.
+The ``class`` attribute specifies the class of
+function where to inject the ownership altering code
+(see :ref:`codegenerationterminology`). The ``owner`` attribute
+specifies the new ownership of the object. It accepts the following values:
+
+* target: the target language will assume full ownership of the object.
+ The native resources will be deleted when the target language
+ object is finalized.
+* c++: The native code assumes full ownership of the object. The target
+ language object will not be garbage collected.
+* default: The object will get default ownership, depending on how it
+ was created.
+
+.. code-block:: xml
+
+ <modify-argument>
+ <define-ownership class="target | native"
+ owner="target | c++ | default" />
+ </modify-argument>
.. _reference-count:
reference-count
^^^^^^^^^^^^^^^
- The ``reference-count`` tag dictates how an argument should be handled by the
- target language reference counting system (if there is any), it also indicates
- the kind of relationship the class owning the function being modified has with
- the argument. It is a child of the :ref:`modify-argument` node.
- For instance, in a model/view relation a view receiving a model
- as argument for a **setModel** method should increment the model's reference
- counting, since the model should be kept alive as much as the view lives.
- Remember that out hypothetical view could not become parent of the model,
- since the said model could be used by other views as well.
- The ``action`` attribute specifies what should be done to the argument
- reference counting when the modified method is called. It accepts the
- following values:
-
- * add: increments the argument reference counter.
- * add-all: increments the reference counter for each item in a collection.
- * remove: decrements the argument reference counter.
- * set: will assign the argument to the variable containing the reference.
- * ignore: does nothing with the argument reference counter
- (sounds worthless, but could be used in situations
- where the reference counter increase is mandatory
- by default).
-
- .. code-block:: xml
-
- <modify-argument>
- <reference-count action="add|add-all|remove|set|ignore" variable-name="..." />
- </modify-argument>
-
-
- The variable-name attribute specifies the name used for the variable that
- holds the reference(s).
+The ``reference-count`` tag dictates how an argument should be handled by the
+target language reference counting system (if there is any), it also indicates
+the kind of relationship the class owning the function being modified has with
+the argument. It is a child of the :ref:`modify-argument` node.
+For instance, in a model/view relation a view receiving a model
+as argument for a **setModel** method should increment the model's reference
+counting, since the model should be kept alive as much as the view lives.
+Remember that out hypothetical view could not become parent of the model,
+since the said model could be used by other views as well.
+The ``action`` attribute specifies what should be done to the argument
+reference counting when the modified method is called. It accepts the
+following values:
+
+* add: increments the argument reference counter.
+* add-all: increments the reference counter for each item in a collection.
+* remove: decrements the argument reference counter.
+* set: will assign the argument to the variable containing the reference.
+* ignore: does nothing with the argument reference counter
+ (sounds worthless, but could be used in situations
+ where the reference counter increase is mandatory
+ by default).
+
+.. code-block:: xml
+
+ <modify-argument>
+ <reference-count action="add|add-all|remove|set|ignore" variable-name="..." />
+ </modify-argument>
+
+
+The variable-name attribute specifies the name used for the variable that
+holds the reference(s).
.. _replace-value:
replace-value
^^^^^^^^^^^^^
- The ``replace-value`` attribute lets you replace the return statement of a
- function with a fixed string. This attribute can only be used for the
- argument at ``index`` 0, which is always the function's return value.
+The ``replace-value`` attribute lets you replace the return statement of a
+function with a fixed string. This attribute can only be used for the
+argument at ``index`` 0, which is always the function's return value.
- .. code-block:: xml
+.. code-block:: xml
- <modify-argument index="0" replace-value="this"/>
+ <modify-argument index="0" replace-value="this"/>
.. _parent:
parent
^^^^^^
- The ``parent`` node lets you define the argument parent which will
- take ownership of argument and will destroy the C++ child object when the
- parent is destroyed (see :ref:`ownership-parent`).
- It is a child of the :ref:`modify-argument` node.
+The ``parent`` node lets you define the argument parent which will
+take ownership of argument and will destroy the C++ child object when the
+parent is destroyed (see :ref:`ownership-parent`).
+It is a child of the :ref:`modify-argument` node.
- .. code-block:: xml
+.. code-block:: xml
- <modify-argument index="1">
- <parent index="this" action="add | remove" />
- </modify-argument>
+ <modify-argument index="1">
+ <parent index="this" action="add | remove" />
+ </modify-argument>
- In the ``index`` argument you must specify the parent argument. The action
- *add* creates a parent link between objects, while *remove* will undo the
- parentage relationship.
+In the ``index`` argument you must specify the parent argument. The action
+*add* creates a parent link between objects, while *remove* will undo the
+parentage relationship.
diff --git a/sources/shiboken6/doc/typesystem_builtin_types.rst b/sources/shiboken6/doc/typesystem_builtin_types.rst
new file mode 100644
index 000000000..dea253930
--- /dev/null
+++ b/sources/shiboken6/doc/typesystem_builtin_types.rst
@@ -0,0 +1,58 @@
+.. _builtin-types:
+
+Built-in Types
+--------------
+
+.. _primitive-cpp-types:
+
+Primitive C++ Types
+^^^^^^^^^^^^^^^^^^^
+
+Shiboken knows the C++ primitive types like int and float and gathers
+information about typedefs like `int32_t` and `size_t` at runtime while
+parsing C++ headers. Function overloads using these types will be
+automatically generated. To suppress a primitive type, use the
+:ref:`rejection` tag.
+
+In principle, there is no need to specify them in the typesystem
+file using the :ref:`primitive-type` tag.
+
+However, specifying a type means that the type name is used for
+matching signatures of functions for :ref:`modification <modify-function>`.
+So, it might make sense to specify architecture-dependent types like `size_t`
+to avoid having to spell out the resolved type, which might differ depending
+on platform.
+
+`std::string`, `std::wstring` and their associated view types
+`std::string_view`, `std::wstring_view` are also supported.
+
+
+.. _builtin-cpp-container-types:
+
+C++ Container Types
+^^^^^^^^^^^^^^^^^^^
+
+The C++ containers ``std::list``\, ``std::vector``\,
+``std::pair``\, ``std::map``\, ``std::span`` and ``std::unordered_map`` are
+built-in.
+To specify :ref:`opaque-containers`, use the :ref:`opaque-container` element.
+:ref:`container-type` can still be specified to modify the built-in behavior.
+For this case, a number of pre-defined conversion templates
+are provided (see :ref:`predefined_templates`).
+
+.. _cpython-types:
+
+CPython Types
+^^^^^^^^^^^^^
+
+Python types like `str` match types like `PyUnicode` in the *Concrete Objects
+Layer* of CPython. They have check functions like `PyUnicode_Check()`, which
+Shiboken generates into the code checking the function arguments.
+
+These types occur as parameters when :ref:`adding functions <add-function>`
+or :ref:`modifying types <replace-type>`, as type on `add-conversion`
+within a :ref:`conversion-rule` or as target language API types on
+:ref:`primitive-type`.
+
+They are built into Shiboken as :ref:`custom types <custom-type>` along
+with their check functions.
diff --git a/sources/shiboken6/doc/typesystem_codeinjection.rst b/sources/shiboken6/doc/typesystem_codeinjection.rst
index 055e876a8..03d5f4b16 100644
--- a/sources/shiboken6/doc/typesystem_codeinjection.rst
+++ b/sources/shiboken6/doc/typesystem_codeinjection.rst
@@ -12,11 +12,11 @@ should be written to depends upon the technology used on the generated binding c
This is the ``inject-code`` tag options that matters to |project|.
- .. code-block:: xml
+.. code-block:: xml
- <inject-code class="native | target" position="beginning | end">
- // custom code
- </inject-code>
+ <inject-code class="native | target" position="beginning | end">
+ // custom code
+ </inject-code>
inject-code tag
@@ -30,76 +30,79 @@ The ``position`` attribute specifies the location of the custom code in the
function.
- +---------------+------+-----------+--------------------------------------------------------------+
- |Parent Tag |Class |Position |Meaning |
- +===============+======+===========+==============================================================+
- |value-type, |native|beginning |Write to the beginning of a class wrapper ``.cpp`` file, right|
- |object-type | | |after the ``#include`` clauses. A common use would be to write|
- | | | |prototypes for custom functions whose definitions are put on a|
- | | | |``native/end`` code injection. |
- | | +-----------+--------------------------------------------------------------+
- | | |end |Write to the end of a class wrapper ``.cpp`` file. Could be |
- | | | |used to write custom/helper functions definitions for |
- | | | |prototypes declared on ``native/beginning``. |
- | +------+-----------+--------------------------------------------------------------+
- | |target|beginning |Put custom code on the beginning of the wrapper initializer |
- | | | |function (``init_CLASS(PyObject *module)``). This could be |
- | | | |used to manipulate the ``PyCLASS_Type`` structure before |
- | | | |registering it on Python. |
- | | +-----------+--------------------------------------------------------------+
- | | |end |Write the given custom code at the end of the class wrapper |
- | | | |initializer function (``init_CLASS(PyObject *module)``). The |
- | | | |code here will be executed after all the wrapped class |
- | | | |components have been initialized. |
- +---------------+------+-----------+--------------------------------------------------------------+
- |modify-function|native|beginning |Code here is put on the virtual method override of a C++ |
- | | | |wrapper class (the one responsible for passing C++ calls to a |
- | | | |Python override, if there is any), right after the C++ |
- | | | |arguments have been converted but before the Python call. |
- | | +-----------+--------------------------------------------------------------+
- | | |end |This code injection is put in a virtual method override on the|
- | | | |C++ wrapper class, after the call to Python and before |
- | | | |dereferencing the Python method and tuple of arguments. |
- | +------+-----------+--------------------------------------------------------------+
- | |target|beginning |This code is injected on the Python method wrapper |
- | | | |(``PyCLASS_METHOD(...)``), right after the decisor have found |
- | | | |which signature to call and also after the conversion of the |
- | | | |arguments to be used, but before the actual call. |
- | | +-----------+--------------------------------------------------------------+
- | | |end |This code is injected on the Python method wrapper |
- | | | |(``PyCLASS_METHOD(...)``), right after the C++ method call, |
- | | | |but still inside the scope created by the overload for each |
- | | | |signature. |
- | +------+-----------+--------------------------------------------------------------+
- | |shell |declaration|Used only for virtual functions. This code is injected at the |
- | | | |top. |
- | | +-----------+--------------------------------------------------------------+
- | | |beginning |Used only for virtual functions. The code is injected when the|
- | | | |function does not has a Python implementation, then the code |
- | | | |is inserted before c++ call |
- | | +-----------+--------------------------------------------------------------+
- | | |end |Same as above, but the code is inserted after c++ call |
- +---------------+------+-----------+--------------------------------------------------------------+
- |typesystem |native|beginning |Write code to the beginning of the module ``.cpp`` file, right|
- | | | |after the ``#include`` clauses. This position has a similar |
- | | | |purpose as the ``native/beginning`` position on a wrapper |
- | | | |class ``.cpp`` file, namely write function prototypes, but not|
- | | | |restricted to this use. |
- | | +-----------+--------------------------------------------------------------+
- | | |end |Write code to the end of the module ``.cpp`` file. Usually |
- | | | |implementations for function prototypes inserted at the |
- | | | |beginning of the file with a ``native/beginning`` code |
- | | | |injection. |
- | +------+-----------+--------------------------------------------------------------+
- | |target|beginning |Insert code at the start of the module initialization function|
- | | | |(``initMODULENAME()``), before the calling ``Py_InitModule``. |
- | | +-----------+--------------------------------------------------------------+
- | | |end |Insert code at the end of the module initialization function |
- | | | |(``initMODULENAME()``), but before the checking that emits a |
- | | | |fatal error in case of problems importing the module. |
- | | +-----------+--------------------------------------------------------------+
- | | |declaration|Insert code into module header. |
- +---------------+------+-----------+--------------------------------------------------------------+
++---------------+------+-----------+--------------------------------------------------------------+
+|Parent Tag |Class |Position |Meaning |
++===============+======+===========+==============================================================+
+|value-type, |native|beginning |Write to the beginning of a class wrapper ``.cpp`` file, right|
+|object-type | | |after the ``#include`` clauses. A common use would be to write|
+| | | |prototypes for custom functions whose definitions are put on a|
+| | | |``native/end`` code injection. |
+| | +-----------+--------------------------------------------------------------+
+| | |end |Write to the end of a class wrapper ``.cpp`` file. Could be |
+| | | |used to write custom/helper functions definitions for |
+| | | |prototypes declared on ``native/beginning``. |
+| +------+-----------+--------------------------------------------------------------+
+| |target|beginning |Put custom code on the beginning of the wrapper initializer |
+| | | |function (``init_CLASS(PyObject *module)``). This could be |
+| | | |used to manipulate the ``PyCLASS_Type`` structure before |
+| | | |registering it on Python. |
+| | +-----------+--------------------------------------------------------------+
+| | |end |Write the given custom code at the end of the class wrapper |
+| | | |initializer function (``init_CLASS(PyObject *module)``). The |
+| | | |code here will be executed after all the wrapped class |
+| | | |components have been initialized. |
++---------------+------+-----------+--------------------------------------------------------------+
+|modify-function|native|beginning |Code here is put on the virtual method override of a C++ |
+| | | |wrapper class (the one responsible for passing C++ calls to a |
+| | | |Python override, if there is any), right after the C++ |
+| | | |arguments have been converted but before the Python call. |
+| | +-----------+--------------------------------------------------------------+
+| | |end |This code injection is put in a virtual method override on the|
+| | | |C++ wrapper class, after the call to Python and before |
+| | | |dereferencing the Python method and tuple of arguments. |
+| +------+-----------+--------------------------------------------------------------+
+| |target|beginning |This code is injected on the Python method wrapper |
+| | | |(``PyCLASS_METHOD(...)``), right after the decisor have found |
+| | | |which signature to call and also after the conversion of the |
+| | | |arguments to be used, but before the actual call. |
+| | +-----------+--------------------------------------------------------------+
+| | |end |This code is injected on the Python method wrapper |
+| | | |(``PyCLASS_METHOD(...)``), right after the C++ method call, |
+| | | |but still inside the scope created by the overload for each |
+| | | |signature. |
+| +------+-----------+--------------------------------------------------------------+
+| |shell |declaration|Used only for virtual functions. This code is injected at the |
+| | | |top. |
+| | +-----------+--------------------------------------------------------------+
+| | |override |Used only for virtual functions. The code is injected before |
+| | | |the code calling the Python override. |
+| | +-----------+--------------------------------------------------------------+
+| | |beginning |Used only for virtual functions. The code is injected when the|
+| | | |function does not has a Python implementation, then the code |
+| | | |is inserted before c++ call |
+| | +-----------+--------------------------------------------------------------+
+| | |end |Same as above, but the code is inserted after c++ call |
++---------------+------+-----------+--------------------------------------------------------------+
+|typesystem |native|beginning |Write code to the beginning of the module ``.cpp`` file, right|
+| | | |after the ``#include`` clauses. This position has a similar |
+| | | |purpose as the ``native/beginning`` position on a wrapper |
+| | | |class ``.cpp`` file, namely write function prototypes, but not|
+| | | |restricted to this use. |
+| | +-----------+--------------------------------------------------------------+
+| | |end |Write code to the end of the module ``.cpp`` file. Usually |
+| | | |implementations for function prototypes inserted at the |
+| | | |beginning of the file with a ``native/beginning`` code |
+| | | |injection. |
+| +------+-----------+--------------------------------------------------------------+
+| |target|beginning |Insert code at the start of the module initialization function|
+| | | |(``initMODULENAME()``), before the calling ``Py_InitModule``. |
+| | +-----------+--------------------------------------------------------------+
+| | |end |Insert code at the end of the module initialization function |
+| | | |(``initMODULENAME()``), but before the checking that emits a |
+| | | |fatal error in case of problems importing the module. |
+| | +-----------+--------------------------------------------------------------+
+| | |declaration|Insert code into module header. |
++---------------+------+-----------+--------------------------------------------------------------+
Anatomy of Code Injection
@@ -110,16 +113,16 @@ and the places where each kind of code injection goes.
Below is the example C++ class for whom wrapper code will be generated.
- .. code-block:: c++
+.. code-block:: c++
- class InjectCode
- {
- public:
- InjectCode();
- double overloadedMethod(int arg);
- double overloadedMethod(double arg);
- virtual int virtualMethod(int arg);
- };
+ class InjectCode
+ {
+ public:
+ InjectCode();
+ double overloadedMethod(int arg);
+ double overloadedMethod(double arg);
+ virtual int virtualMethod(int arg);
+ };
From the C++ class, |project| will generate a ``injectcode_wrapper.cpp`` file
with the binding code. The next section will use a simplified version of the
@@ -168,21 +171,21 @@ of writing the actual name of the wrapped method/function.
In other words, use
- .. code-block:: xml
+.. code-block:: xml
- <inject-code class="target" position="beginning | end">
- %CPPSELF.originalMethodName();
- </inject-code>
+ <inject-code class="target" position="beginning | end">
+ %CPPSELF.originalMethodName();
+ </inject-code>
instead of
- .. code-block:: xml
+.. code-block:: xml
- <inject-code class="target" position="beginning | end">
- %CPPSELF.%FUNCTION_NAME();
- </inject-code>
+ <inject-code class="target" position="beginning | end">
+ %CPPSELF.%FUNCTION_NAME();
+ </inject-code>
Code Injection for Functions/Methods
@@ -197,30 +200,30 @@ On The Native Side
Notice that this is only used when there is a C++ wrapper, i.e. the wrapped
class is polymorphic.
- .. code-block:: c++
+.. code-block:: c++
- int InjectCodeWrapper::virtualMethod(int arg)
- {
- PyObject *method = BindingManager::instance().getOverride(this, "virtualMethod");
- if (!py_override)
- return this->InjectCode::virtualMethod(arg);
+ int InjectCodeWrapper::virtualMethod(int arg)
+ {
+ PyObject *method = BindingManager::instance().getOverride(this, "virtualMethod");
+ if (!py_override)
+ return this->InjectCode::virtualMethod(arg);
- (... here C++ arguments are converted to Python ...)
+ (... here C++ arguments are converted to Python ...)
- // INJECT-CODE: <modify-function><inject-code class="native" position="beginning">
- // Uses: pre method call custom code, modify the argument before the
- // Python call.
+ // INJECT-CODE: <modify-function><inject-code class="native" position="beginning">
+ // Uses: pre method call custom code, modify the argument before the
+ // Python call.
- (... Python method call goes in here ...)
+ (... Python method call goes in here ...)
- // INJECT-CODE: <modify-function><inject-code class="native" position="end">
- // Uses: post method call custom code, modify the result before delivering
- // it to C++ caller.
+ // INJECT-CODE: <modify-function><inject-code class="native" position="end">
+ // Uses: post method call custom code, modify the result before delivering
+ // it to C++ caller.
- (... Python method and argument tuple are dereferenced here ...)
+ (... Python method and argument tuple are dereferenced here ...)
- return Shiboken::Converter<int>::toCpp(method_result);
- }
+ return Shiboken::Converter<int>::toCpp(method_result);
+ }
On The Target Side
@@ -231,37 +234,37 @@ method that uses an overload decisor to call the correct C++ method based on the
arguments passed by the Python call. Each overloaded method signature has its
own ``beginning`` and ``end`` code injections.
- .. code-block:: c++
+.. code-block:: c++
- static PyObject *PyInjectCode_overloadedMethod(PyObject *self, PyObject *arg)
- {
- PyObject* py_result{};
- if (PyFloat_Check(arg)) {
- double cpp_arg0 = Shiboken::Converter<double >::toCpp(arg);
+ static PyObject *PyInjectCode_overloadedMethod(PyObject *self, PyObject *arg)
+ {
+ PyObject* py_result{};
+ if (PyFloat_Check(arg)) {
+ double cpp_arg0 = Shiboken::Converter<double >::toCpp(arg);
- // INJECT-CODE: <modify-function><inject-code class="target" position="beginning">
- // Uses: pre method call custom code.
+ // INJECT-CODE: <modify-function><inject-code class="target" position="beginning">
+ // Uses: pre method call custom code.
- py_result = Shiboken::Converter<double >::toPython(
- PyInjectCode_cptr(self)->InjectCode::overloadedMethod(cpp_arg0)
- );
+ py_result = Shiboken::Converter<double >::toPython(
+ PyInjectCode_cptr(self)->InjectCode::overloadedMethod(cpp_arg0)
+ );
- // INJECT-CODE: <modify-function><inject-code class="target" position="end">
- // Uses: post method call custom code.
+ // INJECT-CODE: <modify-function><inject-code class="target" position="end">
+ // Uses: post method call custom code.
- } else if (PyNumber_Check(arg)) {
- (... other overload calling code ...)
- } else goto PyInjectCode_overloadedMethod_TypeError;
+ } else if (PyNumber_Check(arg)) {
+ (... other overload calling code ...)
+ } else goto PyInjectCode_overloadedMethod_TypeError;
- if (PyErr_Occurred() || !py_result)
- return {};
+ if (PyErr_Occurred() || !py_result)
+ return {};
- return py_result;
+ return py_result;
- PyInjectCode_overloadedMethod_TypeError:
- PyErr_SetString(PyExc_TypeError, "'overloadedMethod()' called with wrong parameters.");
- return {};
- }
+ PyInjectCode_overloadedMethod_TypeError:
+ PyErr_SetString(PyExc_TypeError, "'overloadedMethod()' called with wrong parameters.");
+ return {};
+ }
.. _codeinjecting_classes:
@@ -277,35 +280,35 @@ On The Native Side
Those injections go in the body of the ``CLASSNAME_wrapper.cpp`` file for the
wrapped class.
- .. code-block:: c++
+.. code-block:: c++
- // Start of ``CLASSNAME_wrapper.cpp``
- #define protected public
- // default includes
- #include <shiboken.h>
- (...)
- #include "injectcode_wrapper.h"
- using namespace Shiboken;
-
- // INJECT-CODE: <value/object-type><inject-code class="native" position="beginning">
- // Uses: prototype declarations
+ // Start of ``CLASSNAME_wrapper.cpp``
+ #define protected public
+ // default includes
+ #include <shiboken.h>
+ (...)
+ #include "injectcode_wrapper.h"
+ using namespace Shiboken;
- (... C++ wrapper virtual methods, if any ...)
+ // INJECT-CODE: <value/object-type><inject-code class="native" position="beginning">
+ // Uses: prototype declarations
- (... Python wrapper code ...)
+ (... C++ wrapper virtual methods, if any ...)
- PyAPI_FUNC(void)
- init_injectcode(PyObject *module)
- {
- (...)
- }
+ (... Python wrapper code ...)
+ PyAPI_FUNC(void)
+ init_injectcode(PyObject *module)
+ {
(...)
+ }
- // INJECT-CODE: <value/object-type><inject-code class="native" position="end">
- // Uses: definition of functions prototyped at ``native/beginning``.
+ (...)
- // End of ``CLASSNAME_wrapper.cpp``
+ // INJECT-CODE: <value/object-type><inject-code class="native" position="end">
+ // Uses: definition of functions prototyped at ``native/beginning``.
+
+ // End of ``CLASSNAME_wrapper.cpp``
.. _codeinjecting_classes_target:
@@ -315,34 +318,34 @@ On The Target Side
Code injections to the class Python initialization function.
- .. code-block:: c++
+.. code-block:: c++
- // Start of ``CLASSNAME_wrapper.cpp``
+ // Start of ``CLASSNAME_wrapper.cpp``
- (...)
+ (...)
- PyAPI_FUNC(void)
- init_injectcode(PyObject *module)
- {
- // INJECT-CODE: <value/object-type><inject-code class="target" position="beginning">
- // Uses: Alter something in the PyInjectCode_Type (tp_flags value for example)
- // before registering it.
+ PyAPI_FUNC(void)
+ init_injectcode(PyObject *module)
+ {
+ // INJECT-CODE: <value/object-type><inject-code class="target" position="beginning">
+ // Uses: Alter something in the PyInjectCode_Type (tp_flags value for example)
+ // before registering it.
- if (PyType_Ready(&PyInjectCode_Type) < 0)
- return;
+ if (PyType_Ready(&PyInjectCode_Type) < 0)
+ return;
- Py_INCREF(&PyInjectCode_Type);
- PyModule_AddObject(module, "InjectCode",
- ((PyObject*)&PyInjectCode_Type));
+ Py_INCREF(&PyInjectCode_Type);
+ PyModule_AddObject(module, "InjectCode",
+ ((PyObject*)&PyInjectCode_Type));
- // INJECT-CODE: <value/object-type><inject-code class="target" position="end">
- // Uses: do something right after the class is registered, like set some static
- // variable injected on this same file elsewhere.
- }
+ // INJECT-CODE: <value/object-type><inject-code class="target" position="end">
+ // Uses: do something right after the class is registered, like set some static
+ // variable injected on this same file elsewhere.
+ }
- (...)
+ (...)
- // End of ``CLASSNAME_wrapper.cpp``
+ // End of ``CLASSNAME_wrapper.cpp``
Code Injection for Modules
==========================
@@ -365,30 +368,30 @@ This is very similar to class wrapper code injections :ref:`codeinjecting_classe
Notice that the inject code at ``target/end`` is inserted before the check for errors
to prevent bad custom code to pass unnoticed.
- .. code-block:: c++
+.. code-block:: c++
- // Start of ``MODULENAME_module_wrapper.cpp``
+ // Start of ``MODULENAME_module_wrapper.cpp``
- (...)
- initMODULENAME()
- {
- // INJECT-CODE: <typesystem><inject-code class="target" position="beginning">
- // Uses: do something before the module is created.
+ (...)
+ initMODULENAME()
+ {
+ // INJECT-CODE: <typesystem><inject-code class="target" position="beginning">
+ // Uses: do something before the module is created.
- PyObject *module = Py_InitModule("MODULENAME", MODULENAME_methods);
+ PyObject *module = Py_InitModule("MODULENAME", MODULENAME_methods);
- (... initialization of wrapped classes, namespaces, functions and enums ...)
+ (... initialization of wrapped classes, namespaces, functions and enums ...)
- // INJECT-CODE: <typesystem><inject-code class="target" position="end">
- // Uses: do something after the module is registered and initialized.
+ // INJECT-CODE: <typesystem><inject-code class="target" position="end">
+ // Uses: do something after the module is registered and initialized.
- if (PyErr_Occurred())
- Py_FatalError("can't initialize module sample");
- }
+ if (PyErr_Occurred())
+ Py_FatalError("can't initialize module sample");
+ }
- (...)
+ (...)
- // Start of ``MODULENAME_module_wrapper.cpp``
+ // Start of ``MODULENAME_module_wrapper.cpp``
In addition, code can be injected into the module header by specifying ``target``
and ``declaration``. This is useful for type definitions.
diff --git a/sources/shiboken6/doc/typesystem_containers.rst b/sources/shiboken6/doc/typesystem_containers.rst
new file mode 100644
index 000000000..b5593e20f
--- /dev/null
+++ b/sources/shiboken6/doc/typesystem_containers.rst
@@ -0,0 +1,284 @@
+.. _opaque-containers:
+
+*****************
+Opaque Containers
+*****************
+
+Normally, Python containers such as ``list`` or ``dict`` are passed when
+calling C++ functions taking a corresponding C++ container (see
+:ref:`container-type`).
+
+This means that for each call, the entire Python container is converted to
+a C++ container, which can be inefficient when for example creating plots
+from lists of points.
+
+To work around this, special opaque containers can generated which wrap an
+underlying C++ container directly (currently implemented for ``list`` types).
+They implement the sequence protocol and can be passed to the function
+instead of a Python list. Manipulations like adding or removing elements
+can applied directly to them using the C++ container functions.
+
+This is achieved by specifying the name and the instantiated type
+in the ``opaque-containers`` attribute of :ref:`container-type`
+or using the :ref:`opaque-container` element for existing container types.
+
+A second use case are public fields of container types. In the normal case,
+they are converted to Python containers on read access. By a field modification,
+(see :ref:`modify-field`), it is possible to obtain an opaque container
+which avoids the conversion and allows for direct modification of elements.
+
+Getters returning references can also be modified to return opaque containers.
+This is done by modifying the return type to the name of the opaque container
+(see :ref:`replace-type`).
+
+The table below lists the functions supported for opaque sequence containers
+besides the sequence protocol (element access via index and ``len()``). Both
+the STL and the Qt naming convention (which resembles Python's) are supported:
+
++-------------------------------------------+-----------------------------------+
+|Function | Description |
++-------------------------------------------+-----------------------------------+
+| ``push_back(value)``, ``append(value)`` | Appends *value* to the sequence. |
++-------------------------------------------+-----------------------------------+
+| ``push_front(value)``, ``prepend(value)`` | Prepends *value* to the sequence. |
++-------------------------------------------+-----------------------------------+
+| ``clear()`` | Clears the sequence. |
++-------------------------------------------+-----------------------------------+
+| ``pop_back()``, ``removeLast()`` | Removes the last element. |
++-------------------------------------------+-----------------------------------+
+| ``pop_front()``, ``removeFirst()`` | Removes the first element. |
++-------------------------------------------+-----------------------------------+
+| ``reserve(size)`` | For containers that support it |
+| | (``std::vector``, ``QList``), |
+| | allocate memory for at least |
+| | ``size`` elements, preventing |
+| | reallocations. |
++-------------------------------------------+-----------------------------------+
+| ``capacity()`` | For containers that support it |
+| | (``std::vector``, ``QList``), |
+| | return the number of elements |
+| | that can be stored without |
+| | reallocation. |
++-------------------------------------------+-----------------------------------+
+| ``data()`` | For containers that support it |
+| | (``std::vector``, ``QList``), |
+| | return a buffer viewing the |
+| | memory. |
++-------------------------------------------+-----------------------------------+
+| ``constData()`` | For containers that support it |
+| | (``std::vector``, ``QList``), |
+| | return a read-only buffer viewing |
+| | the memory. |
++-------------------------------------------+-----------------------------------+
+
+
+.. note:: ``std::span``, being a non-owning container, is currently replaced by a
+ ``std::vector`` for argument passing. This means that an opaque container
+ wrapping a ``std::span`` obtained from a function will be converted
+ to a ``std::vector`` by sequence conversion when passed to a function
+ taking a ``std::span``.
+ Opaque containers wrapping a ``std::vector`` can be passed without conversion.
+ This is currently experimental and subject to change.
+
+Following is an example on creating an opaque container named ``IntVector``
+from `std::vector<int>`, and using it in Python.
+
+We will consider three separate use cases.
+
+**Case 1** - When a Python list is passed to C++ function
+``TestOpaqueContainer.getVectorSum(const std::vector<int>&)`` as an opaque container
+
+.. code-block:: c
+
+ class TestOpaqueContainer
+ {
+ public:
+ static int getVectorSum(const std::vector<int>& intVector)
+ {
+ return std::accumulate(intVector.begin(), intVector.end(), 0);
+ }
+ };
+
+**Case 2** - When we have a C++ class named ``TestOpaqueContainer`` with a ``std::vector<int>``
+public variable
+
+.. code-block:: c
+
+ class TestOpaqueContainer
+ {
+ public:
+ std::vector<int> intVector;
+
+ };
+
+**Case 3** - When we have a C++ class named ``TestOpaqueContainer`` with a ``std::vector<int>`` as
+private variable and the variable is returned by a reference through a getter.
+
+.. code-block:: c
+
+ class TestOpaqueContainer
+ {
+ public:
+ std::vector<int>& getIntVector()
+ {
+ return this->intVector;
+ }
+
+ private:
+ std::vector<int> intVector;
+
+ };
+
+.. note:: Cases 2 and 3 are generally considered to be bad class design in C++. However, the purpose
+ of these examples are rather to show the different possibilities with opaque containers in
+ Shiboken than the class design.
+
+In all the three cases, we want to use ``intVector`` in Python through an opaque-container. The
+first thing to do is to create the corresponding ``<container-type />`` attribute in the typesystem
+file, making Shiboken aware of the ``IntVector``.
+
+.. code-block:: xml
+
+ <container-type name="std::vector" type="vector" opaque-containers="int:IntVector">
+ <include file-name="vector" location="global"/>
+ <conversion-rule>
+ <native-to-target>
+ <insert-template name="shiboken_conversion_cppsequence_to_pylist"/>
+ </native-to-target>
+ <target-to-native>
+ <add-conversion type="PySequence">
+ <insert-template name="shiboken_conversion_pyiterable_to_cppsequentialcontainer"/>
+ </add-conversion>
+ </target-to-native>
+ </conversion-rule>
+ </container-type>
+
+For the rest of the steps, we consider the three cases separately.
+
+**Case 1** - When a Python list is passed to a C++ function
+
+As the next step, we create a typesystem entry for the class ``TestOpaqueContainer``.
+
+.. code-block:: xml
+
+ <value-type name="TestOpaqueContainer" />
+
+In this case, the typesystem entry is simple and the function
+``getVectorSum(const std::vector<int>&)`` accepts ``IntVector`` as the parameter. This is
+because inherantly ``IntVector`` is the same as ``std::vector<int>``.
+
+Now, build the code to create the ``*_wrapper.cpp`` and ``*.so`` files which we import into Python.
+
+Verifying the usage in Python
+
+.. code-block:: bash
+
+ >>> vector = IntVector()
+ >>> vector.push_back(2)
+ >>> vector.push_back(3)
+ >>> len(vector)
+ 2
+ >>> TestOpaqueContainer.getVectorSum(vector)
+ vector sum is 5
+
+**Case 2** - When the variable is public
+
+We create a typesystem entry for the class ``TestOpaqueContainer``.
+
+.. code-block:: xml
+
+ <value-type name="TestOpaqueContainer">
+ <modify-field name="intVector" opaque-container="yes"/>
+ </value-type>
+
+In the ``<modify-field />`` notice the ``opaque-container="yes"``. Since the type
+of ``intVector`` is ``std::vector<int>``, it picks up the ``IntVector`` opaque
+container.
+
+Build the code to create the ``*_wrapper.cpp`` and ``*.so`` files which we import into Python.
+
+Verifying the usage in Python
+
+.. code-block:: bash
+
+ >>> test = TestOpaqueContainer()
+ >>> test
+ <Universe.TestOpaqueContainer object at 0x7fe17ef30c30>
+ >>> test.intVector.push_back(1)
+ >>> test.intVector.append(2)
+ >>> len(test.intVector)
+ 2
+ >>> test.intVector[1]
+ 2
+ >>> test.intVector.removeLast()
+ >>> len(test.intVector)
+ 1
+
+**Case 3** - When the variable is private and returned by reference through a getter
+
+Similar to the previous cases, we create a typesystem entry for the class ``TestOpaqueContainer``.
+
+.. code-block:: xml
+
+ <value-type name="TestOpaqueContainer">
+ <modify-function signature="getIntVector()">
+ <modify-argument index="return">
+ <replace-type modified-type="IntVector" />
+ </modify-argument>
+ </modify-function>
+ </value-type>
+
+In this case, we specify the name of the opaque container ``IntVector`` in the ``<replace-type />``
+field.
+
+Build the code to create the \*_wrapper.cpp and \*.so files which we import into Python.
+
+Verifying the usage in Python
+
+.. code-block:: bash
+
+ >>> test = TestOpaqueContainer()
+ >>> test
+ <Universe.TestOpaqueContainer object at 0x7f62b9094c30>
+ >>> vector = test.getIntVector()
+ >>> vector
+ <Universe.IntVector object at 0x7f62b91f7d00>
+ >>> vector.push_back(1)
+ >>> vector.push_back(2)
+ >>> len(vector)
+ 2
+ >>> vector[1]
+ 2
+ >>> vector.removeLast()
+ >>> len(vector)
+ 1
+
+In all the three cases, if we check out the corresponding wrapper class for the module, we will see
+the lines
+
+.. code-block:: c
+
+ static PyMethodDef IntVector_methods[] = {
+ {"push_back", reinterpret_cast<PyCFunction>(
+ ShibokenSequenceContainerPrivate<std::vector<int >>::push_back),METH_O, "push_back"},
+ {"append", reinterpret_cast<PyCFunction>(
+ ShibokenSequenceContainerPrivate<std::vector<int >>::push_back),METH_O, "append"},
+ {"clear", reinterpret_cast<PyCFunction>(
+ ShibokenSequenceContainerPrivate<std::vector<int >>::clear), METH_NOARGS, "clear"},
+ {"pop_back", reinterpret_cast<PyCFunction>(
+ ShibokenSequenceContainerPrivate<std::vector<int >>::pop_back), METH_NOARGS,
+ "pop_back"},
+ {"removeLast", reinterpret_cast<PyCFunction>(
+ ShibokenSequenceContainerPrivate<std::vector<int >>::pop_back), METH_NOARGS,
+ "removeLast"},
+ {nullptr, nullptr, 0, nullptr} // Sentinel
+ };
+
+This means, the above mentioned methods are available to be used in Python with the ``IntVector``
+opaque container.
+
+.. note:: `Plot example <https://doc.qt.io/qtforpython/examples/example_widgets_painting_plot.html>`_
+ demonstrates an example of using an opaque container `QPointList`, which wraps a C++
+ `QList<QPoint>`. The corresponding typesystem file where QPointList can be found `here
+ <https://code.qt.io/cgit/pyside/pyside-setup.git/tree/sources/pyside6/PySide6/QtCore/typesystem_core_common.xml>`_
+
diff --git a/sources/shiboken6/doc/typesystem_conversionrule.rst b/sources/shiboken6/doc/typesystem_conversionrule.rst
index 4ac2bd365..9a8f51c18 100644
--- a/sources/shiboken6/doc/typesystem_conversionrule.rst
+++ b/sources/shiboken6/doc/typesystem_conversionrule.rst
@@ -8,99 +8,99 @@ Conversion Rule Tag
conversion-rule
^^^^^^^^^^^^^^^
- The **conversion-rule** tag specifies how a **primitive-type**, a **container-type**,
- or a **value-type** may be converted to and from the native C++ language types to the
- target language types (see also :ref:`user-defined-type-conversion`).
-
- It is a child of the :ref:`container-type`, :ref:`primitive-type` or
- :ref:`value-type` and may contain :ref:`native-to-target` or
- :ref:`native-to-target` child nodes.
-
- .. code-block:: xml
-
- <value-type>
- <conversion-rule>
- <native-to-target>
- // Code to convert a native value to a target language object.
- </native-to-target>
- <target-to-native>
- <add-conversion type='TARGETTYPEA' check='TARGETTYPEA_CHECK(%in)'>
- // Code to convert target language type object of type TARGETTYPEA
- // to the C++ native type represented by the value/primitive/container-type.
- </add-conversion>
- <add-conversion type='TARGETTYPEB' check='TARGETTYPEB_CHECK(%in)'>
- // Code to convert target language type object of type TARGETTYPEB
- // to the C++ native type represented by the value/primitive/container-type.
- </add-conversion>
- </target-to-native>
- </conversion-rule>
- </value-type>
-
- The code can be inserted directly, via :ref:`add-conversion` (providing snippet
- functionality) or via :ref:`insert-template` (XML template,
- see :ref:`using-code-templates`).
-
- The example above show the structure of a complete conversion rule. Each of the
- child tags comprising the conversion rule are described in their own sections
- below.
-
- .. note::
-
- You can also use the ``conversion-rule`` node to specify customized code
- to convert a function argument between the target language and C++
- (see :ref:`conversionrule-on-arguments`).
+The **conversion-rule** tag specifies how a **primitive-type**, a **container-type**,
+or a **value-type** may be converted to and from the native C++ language types to the
+target language types (see also :ref:`user-defined-type-conversion`).
-.. _native-to-target:
-
-native-to-target
-^^^^^^^^^^^^^^^^
-
- The **native-to-target** tag tells how to convert a native C++ value to its
- target language equivalent. It is a child of the :ref:`conversion-rule` node.
- The text inside the tag is a C++ code the takes
- an input value an does what's needed to convert it to the output value.
- :ref:`insert-template` tags may be used to insert commonly repeating code.
+It is a child of the :ref:`container-type`, :ref:`primitive-type` or
+:ref:`value-type` and may contain :ref:`native-to-target` or
+:ref:`native-to-target` child nodes.
- .. code-block:: xml
+.. code-block:: xml
+ <value-type>
<conversion-rule>
<native-to-target>
// Code to convert a native value to a target language object.
</native-to-target>
+ <target-to-native>
+ <add-conversion type='TARGETTYPEA' check='TARGETTYPEA_CHECK(%in)'>
+ // Code to convert target language type object of type TARGETTYPEA
+ // to the C++ native type represented by the value/primitive/container-type.
+ </add-conversion>
+ <add-conversion type='TARGETTYPEB' check='TARGETTYPEB_CHECK(%in)'>
+ // Code to convert target language type object of type TARGETTYPEB
+ // to the C++ native type represented by the value/primitive/container-type.
+ </add-conversion>
+ </target-to-native>
</conversion-rule>
+ </value-type>
- Use the replace node to modify the template code.
- Notice that the generator must provide type system variables for the input
- and output values and types, namely **%in**, **%out**, **%INTYPE** and
- **%OUTTYPE**. In the case of container types, **%INTYPE** refers to the
- full container type (e.g. **"list<int>"**) and **%INTYPE_0**, **%INTYPE_1**,
- **%INTYPE_#**, should be replaced by the types used in the container template
- (e.g. **%INTYPE_0** correspondes to **"int"** for **"list<int>"**).
+The code can be inserted directly, via :ref:`add-conversion` (providing snippet
+functionality) or via :ref:`insert-template` (XML template,
+see :ref:`using-code-templates`).
- The ``file`` and ``snippet`` attributes are also supported (see :ref:`inject-code` nodes).
+The example above show the structure of a complete conversion rule. Each of the
+child tags comprising the conversion rule are described in their own sections
+below.
+
+.. note::
+
+ You can also use the ``conversion-rule`` node to specify customized code
+ to convert a function argument between the target language and C++
+ (see :ref:`conversionrule-on-arguments`).
+
+.. _native-to-target:
+
+native-to-target
+^^^^^^^^^^^^^^^^
+
+The **native-to-target** tag tells how to convert a native C++ value to its
+target language equivalent. It is a child of the :ref:`conversion-rule` node.
+The text inside the tag is a C++ code the takes
+an input value an does what's needed to convert it to the output value.
+:ref:`insert-template` tags may be used to insert commonly repeating code.
+
+.. code-block:: xml
+
+ <conversion-rule>
+ <native-to-target>
+ // Code to convert a native value to a target language object.
+ </native-to-target>
+ </conversion-rule>
+
+Use the replace node to modify the template code.
+Notice that the generator must provide type system variables for the input
+and output values and types, namely **%in**, **%out**, **%INTYPE** and
+**%OUTTYPE**. In the case of container types, **%INTYPE** refers to the
+full container type (e.g. **"list<int>"**) and **%INTYPE_0**, **%INTYPE_1**,
+**%INTYPE_#**, should be replaced by the types used in the container template
+(e.g. **%INTYPE_0** correspondes to **"int"** for **"list<int>"**).
+
+The ``file`` and ``snippet`` attributes are also supported (see :ref:`inject-code` nodes).
.. _target-to-native:
target-to-native
^^^^^^^^^^^^^^^^
- The **target-to-native** tag encloses at least one, but usually many, conversions
- from target language values to C++ native values. It is a child of the
- :ref:`conversion-rule` node and may have one or several :ref:`add-conversion`
- child nodes. The *optional* attribute ``replace`` tells if the target
- language to C++ conversions will be added to, or if they will replace the
- implicit conversions collected by *ApiExtractor*. The default
- value for it is *yes*.
+The **target-to-native** tag encloses at least one, but usually many, conversions
+from target language values to C++ native values. It is a child of the
+:ref:`conversion-rule` node and may have one or several :ref:`add-conversion`
+child nodes. The *optional* attribute ``replace`` tells if the target
+language to C++ conversions will be added to, or if they will replace the
+implicit conversions collected by *ApiExtractor*. The default
+value for it is *yes*.
- .. code-block:: xml
+.. code-block:: xml
- <conversion-rule>
- <target-to-native replace='yes|no'>\
- // List of target to native conversions meant to replace or expand
- // the already existing implicit conversions.
- </target-to-native>
- </conversion-rule>
+ <conversion-rule>
+ <target-to-native replace='yes|no'>
+ // List of target to native conversions meant to replace or expand
+ // the already existing implicit conversions.
+ </target-to-native>
+ </conversion-rule>
.. _add-conversion:
@@ -108,26 +108,26 @@ target-to-native
add-conversion
^^^^^^^^^^^^^^
- Each **add-conversion** tag adds a rule for conversion of a target language type,
- indicated by the ``type`` attribute, to the C++ native type represented by the
- **primitive-type**, a **container-type**, or **value-type**, to which the parent
- **conversion-rule** belongs.
- It is a child of the :ref:`target-to-native` node.
+Each **add-conversion** tag adds a rule for conversion of a target language type,
+indicated by the ``type`` attribute, to the C++ native type represented by the
+**primitive-type**, a **container-type**, or **value-type**, to which the parent
+**conversion-rule** belongs.
+It is a child of the :ref:`target-to-native` node.
- .. code-block:: xml
+.. code-block:: xml
- <target-to-native>
- <add-conversion type='TARGETTYPE' check='TARGETTYPECHECK(%in)'>
- // Code to convert target language type object of type TARGETTYPE_A
- // to the C++ native type represented by the value/primitive/container-type.
- </add-conversion>
- <target-to-native>
+ <target-to-native>
+ <add-conversion type='TARGETTYPE' check='TARGETTYPECHECK(%in)'>
+ // Code to convert target language type object of type TARGETTYPE_A
+ // to the C++ native type represented by the value/primitive/container-type.
+ </add-conversion>
+ <target-to-native>
- The ``check`` attribute tells how a target value should be checked to see if it belongs to
- the type expected. This attribute is *optional*, for it can be derived from the ``type``
- attribute, but it isn't unusual that some special check is needed. The variables
- **%in**, **%out**, **%INTYPE**, **%INTYPE_#**, and **%OUTTYPE**, must be provided by
- the generator as in the ``native-to-target`` tag.
+The ``check`` attribute tells how a target value should be checked to see if it belongs to
+the type expected. This attribute is *optional*, for it can be derived from the ``type``
+attribute, but it isn't unusual that some special check is needed. The variables
+**%in**, **%out**, **%INTYPE**, **%INTYPE_#**, and **%OUTTYPE**, must be provided by
+the generator as in the ``native-to-target`` tag.
- The ``file`` and ``snippet`` attributes are also supported (see :ref:`inject-code` nodes).
+The ``file`` and ``snippet`` attributes are also supported (see :ref:`inject-code` nodes).
diff --git a/sources/shiboken6/doc/typesystem_converters.rst b/sources/shiboken6/doc/typesystem_converters.rst
index 2e41758cd..ab6fba930 100644
--- a/sources/shiboken6/doc/typesystem_converters.rst
+++ b/sources/shiboken6/doc/typesystem_converters.rst
@@ -12,51 +12,51 @@ numbers, has a Python equivalent in the "complex" type.) Such classes, instead
of getting a Python wrapper, normally have conversions rules, from Python to
C++ and vice-versa.
- .. code-block:: c++
+.. code-block:: c++
- // C++ class
- struct Complex {
- Complex(double real, double imag);
- double real() const;
- double imag() const;
- };
+ // C++ class
+ struct Complex {
+ Complex(double real, double imag);
+ double real() const;
+ double imag() const;
+ };
- // Converting from C++ to Python using the CPython API:
- PyObject* pyCpxObj = PyComplex_FromDoubles(complex.real(), complex.imag());
+ // Converting from C++ to Python using the CPython API:
+ PyObject* pyCpxObj = PyComplex_FromDoubles(complex.real(), complex.imag());
- // Converting from Python to C++:
- double real = PyComplex_RealAsDouble(pyCpxObj);
- double imag = PyComplex_ImagAsDouble(pyCpxObj);
- Complex cpx(real, imag);
+ // Converting from Python to C++:
+ double real = PyComplex_RealAsDouble(pyCpxObj);
+ double imag = PyComplex_ImagAsDouble(pyCpxObj);
+ Complex cpx(real, imag);
For the user defined conversion code to be inserted in the proper places,
the :ref:`conversion-rule` tag must be used.
- .. code-block:: xml
+.. code-block:: xml
- <primitive-type name="Complex" target-lang-api-name="PyComplex">
- <include file-name="complex.h" location="global"/>
+ <primitive-type name="Complex" target-lang-api-name="PyComplex">
+ <include file-name="complex.h" location="global"/>
- <conversion-rule>
+ <conversion-rule>
- <native-to-target>
- return PyComplex_FromDoubles(%in.real(), %in.imag());
- </native-to-target>
+ <native-to-target>
+ return PyComplex_FromDoubles(%in.real(), %in.imag());
+ </native-to-target>
- <target-to-native>
- <!-- The 'check' attribute can be derived from the 'type' attribute,
- it is defined here to test the CHECKTYPE type system variable. -->
- <add-conversion type="PyComplex" check="%CHECKTYPE[Complex](%in)">
- double real = PyComplex_RealAsDouble(%in);
- double imag = PyComplex_ImagAsDouble(%in);
- %out = %OUTTYPE(real, imag);
- </add-conversion>
- </target-to-native>
+ <target-to-native>
+ <!-- The 'check' attribute can be derived from the 'type' attribute,
+ it is defined here to test the CHECKTYPE type system variable. -->
+ <add-conversion type="PyComplex" check="%CHECKTYPE[Complex](%in)">
+ double real = PyComplex_RealAsDouble(%in);
+ double imag = PyComplex_ImagAsDouble(%in);
+ %out = %OUTTYPE(real, imag);
+ </add-conversion>
+ </target-to-native>
- </conversion-rule>
+ </conversion-rule>
- </primitive-type>
+ </primitive-type>
The details will be given later, but the gist of it are the tags
@@ -78,53 +78,53 @@ of numbers to be accepted by wrapped C++ functions with "Complex" arguments,
an :ref:`add-conversion <add-conversion>` tag and a custom check must be added.
Here's how to do it:
- .. code-block:: xml
+.. code-block:: xml
- <!-- Code injection at module level. -->
- <inject-code class="native" position="beginning">
- static bool Check2TupleOfNumbers(PyObject* pyIn) {
- if (!PySequence_Check(pyIn) || !(PySequence_Size(pyIn) == 2))
- return false;
- Shiboken::AutoDecRef pyReal(PySequence_GetItem(pyIn, 0));
- if (!PyNumber_Check(pyReal))
- return false;
- Shiboken::AutoDecRef pyImag(PySequence_GetItem(pyIn, 1));
- if (!PyNumber_Check(pyImag))
- return false;
- return true;
- }
- </inject-code>
+ <!-- Code injection at module level. -->
+ <inject-code class="native" position="beginning">
+ static bool Check2TupleOfNumbers(PyObject* pyIn) {
+ if (!PySequence_Check(pyIn) || !(PySequence_Size(pyIn) == 2))
+ return false;
+ Shiboken::AutoDecRef pyReal(PySequence_GetItem(pyIn, 0));
+ if (!PyNumber_Check(pyReal))
+ return false;
+ Shiboken::AutoDecRef pyImag(PySequence_GetItem(pyIn, 1));
+ if (!PyNumber_Check(pyImag))
+ return false;
+ return true;
+ }
+ </inject-code>
- <primitive-type name="Complex" target-lang-api-name="PyComplex">
- <include file-name="complex.h" location="global"/>
+ <primitive-type name="Complex" target-lang-api-name="PyComplex">
+ <include file-name="complex.h" location="global"/>
- <conversion-rule>
+ <conversion-rule>
- <native-to-target>
- return PyComplex_FromDoubles(%in.real(), %in.imag());
- </native-to-target>
+ <native-to-target>
+ return PyComplex_FromDoubles(%in.real(), %in.imag());
+ </native-to-target>
- <target-to-native>
+ <target-to-native>
- <add-conversion type="PyComplex">
- double real = PyComplex_RealAsDouble(%in);
- double imag = PyComplex_ImagAsDouble(%in);
- %out = %OUTTYPE(real, imag);
- </add-conversion>
+ <add-conversion type="PyComplex">
+ double real = PyComplex_RealAsDouble(%in);
+ double imag = PyComplex_ImagAsDouble(%in);
+ %out = %OUTTYPE(real, imag);
+ </add-conversion>
- <add-conversion type="PySequence" check="Check2TupleOfNumbers(%in)">
- Shiboken::AutoDecRef pyReal(PySequence_GetItem(%in, 0));
- Shiboken::AutoDecRef pyImag(PySequence_GetItem(%in, 1));
- double real = %CONVERTTOCPP[double](pyReal);
- double imag = %CONVERTTOCPP[double](pyImag);
- %out = %OUTTYPE(real, imag);
- </add-conversion>
+ <add-conversion type="PySequence" check="Check2TupleOfNumbers(%in)">
+ Shiboken::AutoDecRef pyReal(PySequence_GetItem(%in, 0));
+ Shiboken::AutoDecRef pyImag(PySequence_GetItem(%in, 1));
+ double real = %CONVERTTOCPP[double](pyReal);
+ double imag = %CONVERTTOCPP[double](pyImag);
+ %out = %OUTTYPE(real, imag);
+ </add-conversion>
- </target-to-native>
+ </target-to-native>
- </conversion-rule>
+ </conversion-rule>
- </primitive-type>
+ </primitive-type>
.. _container_conversions:
@@ -138,43 +138,50 @@ except that they make use of the type system variables
|project| combines the conversion code for containers with the conversion
defined (or automatically generated) for the containers.
- .. code-block:: xml
-
- <container-type name="std::map" type="map">
- <include file-name="map" location="global"/>
-
- <conversion-rule>
-
- <native-to-target>
- PyObject* %out = PyDict_New();
- %INTYPE::const_iterator it = %in.begin();
- for (; it != %in.end(); ++it) {
- %INTYPE_0 key = it->first;
- %INTYPE_1 value = it->second;
- PyDict_SetItem(%out,
- %CONVERTTOPYTHON[%INTYPE_0](key),
- %CONVERTTOPYTHON[%INTYPE_1](value));
- }
- return %out;
- </native-to-target>
-
- <target-to-native>
-
- <add-conversion type="PyDict">
- PyObject* key;
- PyObject* value;
- Py_ssize_t pos = 0;
- while (PyDict_Next(%in, &amp;pos, &amp;key, &amp;value)) {
- %OUTTYPE_0 cppKey = %CONVERTTOCPP[%OUTTYPE_0](key);
- %OUTTYPE_1 cppValue = %CONVERTTOCPP[%OUTTYPE_1](value);
- %out.insert(%OUTTYPE::value_type(cppKey, cppValue));
- }
- </add-conversion>
+.. code-block:: xml
+
+ <container-type name="std::map" type="map">
+ <include file-name="map" location="global"/>
+
+ <conversion-rule>
+
+ <native-to-target>
+ PyObject* %out = PyDict_New();
+ %INTYPE::const_iterator it = %in.begin();
+ for (; it != %in.end(); ++it) {
+ %INTYPE_0 key = it->first;
+ %INTYPE_1 value = it->second;
+ PyDict_SetItem(%out,
+ %CONVERTTOPYTHON[%INTYPE_0](key),
+ %CONVERTTOPYTHON[%INTYPE_1](value));
+ }
+ return %out;
+ </native-to-target>
+
+ <target-to-native>
+
+ <add-conversion type="PyDict">
+ PyObject* key;
+ PyObject* value;
+ Py_ssize_t pos = 0;
+ while (PyDict_Next(%in, &amp;pos, &amp;key, &amp;value)) {
+ %OUTTYPE_0 cppKey = %CONVERTTOCPP[%OUTTYPE_0](key);
+ %OUTTYPE_1 cppValue = %CONVERTTOCPP[%OUTTYPE_1](value);
+ %out.insert(%OUTTYPE::value_type(cppKey, cppValue));
+ }
+ </add-conversion>
- </target-to-native>
- </conversion-rule>
- </container-type>
+ </target-to-native>
+ </conversion-rule>
+ </container-type>
+.. note:: The C++ containers ``std::list``\, ``std::vector``\,
+ ``std::pair``\, ``std::map``\, ``std::span`` and ``std::unordered_map`` are
+ built-in.
+ To specify :ref:`opaque-containers`, use the :ref:`opaque-container` element.
+ :ref:`container-type` can still be specified to modify the built-in behavior.
+ For this case, a number of pre-defined conversion templates
+ are provided (see :ref:`predefined_templates`).
.. _variables_and_functions:
@@ -185,14 +192,12 @@ Variables & Functions
.. _in:
**%in**
-
Variable replaced by the C++ input variable.
.. _out:
**%out**
-
Variable replaced by the C++ output variable. Needed to convey the
result of a Python to C++ conversion.
@@ -200,7 +205,6 @@ Variables & Functions
.. _intype:
**%INTYPE**
-
Used in Python to C++ conversions. It is replaced by the name of type for
which the conversion is being defined. Don't use the type's name directly.
@@ -208,14 +212,12 @@ Variables & Functions
.. _intype_n:
**%INTYPE_#**
-
Replaced by the name of the #th type used in a container.
.. _outtype:
**%OUTTYPE**
-
Used in Python to C++ conversions. It is replaced by the name of type for
which the conversion is being defined. Don't use the type's name directly.
@@ -223,71 +225,11 @@ Variables & Functions
.. _outtype_n:
**%OUTTYPE_#**
-
Replaced by the name of the #th type used in a container.
.. _checktype:
**%CHECKTYPE[CPPTYPE]**
-
Replaced by a |project| type checking function for a Python variable.
The C++ type is indicated by ``CPPTYPE``.
-
-
-.. _oldconverters:
-
-Converting The Old Converters
-=============================
-
-If you use |project| for your bindings, and has defined some type conversions
-using the ``Shiboken::Converter`` template, then you must update your converters
-to the new scheme.
-
-Previously your conversion rules were declared in one line, like this:
-
-
- .. code-block:: xml
-
- <primitive-type name="Complex" target-lang-api-name="PyComplex">
- <include file-name="complex.h" location="global"/>
- <conversion-rule file="complex_conversions.h"/>
- </primitive-type>
-
-
-And implemented in a separate C++ file, like this:
-
-
- .. code-block:: c++
-
- namespace Shiboken {
- template<> struct Converter<Complex>
- {
- static inline bool checkType(PyObject* pyObj) {
- return PyComplex_Check(pyObj);
- }
- static inline bool isConvertible(PyObject* pyObj) {
- return PyComplex_Check(pyObj);
- }
- static inline PyObject* toPython(void* cppobj) {
- return toPython(*reinterpret_cast<Complex*>(cppobj));
- }
- static inline PyObject* toPython(const Complex& cpx) {
- return PyComplex_FromDoubles(cpx.real(), cpx.imag());
- }
- static inline Complex toCpp(PyObject* pyobj) {
- double real = PyComplex_RealAsDouble(pyobj);
- double imag = PyComplex_ImagAsDouble(pyobj);
- return Complex(real, imag);
- }
- };
- }
-
-
-In this case, the parts of the implementation that will be used in the new
-conversion-rule are the ones in the two last method
-``static inline PyObject* toPython(const Complex& cpx)`` and
-``static inline Complex toCpp(PyObject* pyobj)``. The ``isConvertible`` method
-is gone, and the ``checkType`` is now an attribute of the :ref:`add-conversion <add-conversion>`
-tag. Refer back to the first example in this page and you will be able to
-correlate the above template with the new scheme of conversion rule definition.
diff --git a/sources/shiboken6/doc/typesystem_documentation.rst b/sources/shiboken6/doc/typesystem_documentation.rst
index f03d8b70a..4e7d18b99 100644
--- a/sources/shiboken6/doc/typesystem_documentation.rst
+++ b/sources/shiboken6/doc/typesystem_documentation.rst
@@ -4,48 +4,59 @@ Manipulating Documentation
inject-documentation
^^^^^^^^^^^^^^^^^^^^
- The inject-documentation node inserts the documentation into the generated
- documentation. This node is a child of the :ref:`object-type`,
- :ref:`value-type` and :ref:`modify-function` nodes.
+The inject-documentation node inserts the documentation into the generated
+documentation. This node is a child of the :ref:`object-type`,
+:ref:`value-type` and :ref:`modify-function` nodes.
- .. code-block:: xml
+.. code-block:: xml
- <value-type>
- <inject-documentation mode="append | prepend | replace" format="native | target" >
- // the documentation
- </inject-code>
- </value-type>
+ <value-type>
+ <inject-documentation mode="append | prepend | replace" format="native | target"
+ file="[file]" snippet="[label]">
+ // the documentation
+ </inject-code>
+ </value-type>
- The **mode** attribute default value is *replace*.
+The **mode** attribute default value is *replace*.
- The **format** attribute specifies when the documentation injection will
- occur and it accepts the following values:
+The **format** attribute specifies when the documentation injection will
+occur and it accepts the following values:
- * native: Before XML<->Backend transformation occur, so the injected code *must* be a valid XML.
- * target: After XML<->Backend transformation occur, so the injected code *must* be a valid backend format.
+* native: Before XML<->Backend transformation occur, so the injected code *must* be a valid XML.
+* target: After XML<->Backend transformation occur, so the injected code *must* be a valid backend format.
- At the moment the only supported backend is Sphinx.
+The optional ``file`` attribute specifies the file name
+(see :ref:`external-snippets`).
+
+The optional ``snippet`` attribute specifies the snippet label
+(see :ref:`external-snippets`).
+
+At the moment the only supported backend is Sphinx.
+
+If the injected documentation contains a Sphinx function directive, no
+directive will be auto-generated. This can be used to add parameter
+documentation to added functions.
modify-documentation
^^^^^^^^^^^^^^^^^^^^
- The modify-documentation node allows you to change the auto-generated
- documentation. . This node is a child of the :ref:`object-type`,
- :ref:`value-type` and :ref:`modify-function` nodes.
- API Extractor transforms XML's from `qdoc`_ (the Qt documentation
- tool) into .rst files to be processed later using `Sphinx`_. You can modify
- the XML before the transformation takes place.
+The modify-documentation node allows you to change the auto-generated
+documentation. . This node is a child of the :ref:`object-type`,
+:ref:`value-type` and :ref:`modify-function` nodes.
+API Extractor transforms XML's from `qdoc`_ (the Qt documentation
+tool) into .rst files to be processed later using `Sphinx`_. You can modify
+the XML before the transformation takes place.
.. _`qdoc`: https://doc.qt.io/qt-6/qdoc-index.html
.. _`Sphinx`: https://www.sphinx-doc.org/en/master
- .. code-block:: xml
+.. code-block:: xml
- <modify-documentation xpath="...">
- <!-- new documentation -->
- </modify-documentation>
+ <modify-documentation xpath="...">
+ <!-- new documentation -->
+ </modify-documentation>
- The **xpath** attribute is the `XPath`_ to the node that you want to modify.
+The **xpath** attribute is the `XPath`_ to the node that you want to modify.
.. _`XPath`: https://www.w3.org/TR/1999/REC-xpath-19991116/
diff --git a/sources/shiboken6/doc/typesystem_manipulating_objects.rst b/sources/shiboken6/doc/typesystem_manipulating_objects.rst
index 1e9a4569e..e024cdf00 100644
--- a/sources/shiboken6/doc/typesystem_manipulating_objects.rst
+++ b/sources/shiboken6/doc/typesystem_manipulating_objects.rst
@@ -8,75 +8,75 @@ Manipulating Object and Value Types
inject-code
^^^^^^^^^^^
- The ``inject-code`` node inserts the given code into the generated code for the
- given type or function, and it is a child of the :ref:`object-type`, :ref:`value-type`,
- :ref:`modify-function` and :ref:`add-function` nodes.
- It may contain :ref:`insert-template` child nodes.
+The ``inject-code`` node inserts the given code into the generated code for the
+given type or function, and it is a child of the :ref:`object-type`, :ref:`value-type`,
+:ref:`modify-function` and :ref:`add-function` nodes.
+It may contain :ref:`insert-template` child nodes.
- .. code-block:: xml
+.. code-block:: xml
- <inject-code class="native | target"
- position="beginning | end" since="..."
- file="[file]"
- snippet="[label]"/>
+ <inject-code class="native | target"
+ position="beginning | end" since="..."
+ file="[file]"
+ snippet="[label]"/>
- The ``class`` attribute specifies which module of the generated code that
- will be affected by the code injection
- (see :ref:`codegenerationterminology`). The ``class`` attribute accepts the
- following values:
+The ``class`` attribute specifies which module of the generated code that
+will be affected by the code injection
+(see :ref:`codegenerationterminology`). The ``class`` attribute accepts the
+following values:
- * ``native``: The c++ code
- * ``target``: The binding code
+* ``native``: The c++ code
+* ``target``: The binding code
- If the ``position`` attribute is set to *beginning* (the default), the code
- is inserted at the beginning of the function. If it is set to *end*, the code
- is inserted at the end of the function.
+If the ``position`` attribute is set to *beginning* (the default), the code
+is inserted at the beginning of the function. If it is set to *end*, the code
+is inserted at the end of the function.
- For a detailed description of how to above attributes interact,
- see :ref:`codeinjectionsemantics`.
+For a detailed description of how to above attributes interact,
+see :ref:`codeinjectionsemantics`.
- The optional ``file`` attribute specifies the file name
- (see :ref:`external-snippets`).
+The optional ``file`` attribute specifies the file name
+(see :ref:`external-snippets`).
- The optional ``snippet`` attribute specifies the snippet label
- (see :ref:`external-snippets`).
+The optional ``snippet`` attribute specifies the snippet label
+(see :ref:`external-snippets`).
- There are a number of placeholders which are replaced when injecting
- code (see :ref:`typesystemvariables`).
+There are a number of placeholders which are replaced when injecting
+code (see :ref:`typesystemvariables`).
- There are severals ways to specify the code:
+There are severals ways to specify the code:
Embedding Code into XML
=======================
- The code can be embedded into XML (be careful to use the correct XML entities
- for characters like '<', '>', '&'):
+The code can be embedded into XML (be careful to use the correct XML entities
+for characters like '<', '>', '&'):
- .. code-block:: xml
+.. code-block:: xml
- <value-type>
- <inject-code class="native | target"
- position="beginning | end" since="...">
- // the code
- </inject-code>
- </value-type>
+ <value-type>
+ <inject-code class="native | target"
+ position="beginning | end" since="...">
+ // the code
+ </inject-code>
+ </value-type>
Using a Template Specified in XML
=================================
- It is possible to create code templates for reuse in XML
- (see :ref:`using-code-templates`). This allows for replacing of custom
- placeholders.
+It is possible to create code templates for reuse in XML
+(see :ref:`using-code-templates`). This allows for replacing of custom
+placeholders.
- .. code-block:: xml
+.. code-block:: xml
- <value-type>
- <inject-code class="native | target" class="native | target">
- <insert-template name="template_name"/>
- </inject-code>
- </value-type>
+ <value-type>
+ <inject-code class="native | target" class="native | target">
+ <insert-template name="template_name"/>
+ </inject-code>
+ </value-type>
.. _external-snippets:
@@ -84,320 +84,473 @@ Using a Template Specified in XML
Using Snippets From External Files
==================================
- Code snippets can also be retrieved from external files found in the
- typesystem search path (see :ref:`typesystem-paths`).
+Code or documentation snippets can also be retrieved from external
+files found in the typesystem search path (see :ref:`typesystem-paths`).
- .. code-block:: xml
+.. code-block:: xml
- <value-type>
- <inject-code class="native | target"
- position="beginning | end" since="..."
- file="external_source.cpp"
- snippet="label"/>
- </value-type>
+ <value-type>
+ <inject-code class="native | target"
+ position="beginning | end" since="..."
+ file="external_source.cpp"
+ snippet="label"/>
+ </value-type>
- In the external file ``external_source.cpp``, the code between annotations
- of the form:
+In the external file ``external_source.cpp``, the code between annotations
+of the form:
- .. code-block:: c++
+.. code-block:: c++
+
+ // @snippet label
+ ...
+ // @snippet label
- // @snippet label
- ...
- // @snippet label
+will be extracted.
- will be extracted.
+.. _modify-field:
modify-field
^^^^^^^^^^^^
- The ``modify-field`` node allows you to alter the access privileges for a given
- C++ field when mapping it onto the target language, and it is a child of an
- :ref:`object-type` or a :ref:`value-type` node.
+The ``modify-field`` node allows you to alter the access privileges for a given
+C++ field when mapping it onto the target language, and it is a child of an
+:ref:`object-type` or a :ref:`value-type` node.
- .. code-block:: xml
+.. code-block:: xml
- <object-type>
- <modify-field name="..."
- write="true | false"
- read="true | false"
- remove="true | false"
- snake-case="yes | no | both" />
- </object-type>
+ <object-type>
+ <modify-field name="..."
+ write="true | false"
+ read="true | false"
+ remove="true | false"
+ opaque-container = "yes | no"
+ snake-case="yes | no | both" />
+ </object-type>
- The ``name`` attribute is the name of the field, the *optional* ``write``
- and ``read`` attributes specify the field's access privileges in the target
- language API (both are set to true by default).
+The ``name`` attribute is the name of the field, the *optional* ``write``
+and ``read`` attributes specify the field's access privileges in the target
+language API (both are set to true by default).
- The ``remove`` attribute is an *optional* boolean attribute, which can
- mark the field to be discarded on generation.
+The ``remove`` attribute is an *optional* boolean attribute, which can
+mark the field to be discarded on generation.
- The *optional* ``rename`` attribute can be used to change the name of the
- given field in the generated target language API.
+The *optional* ``rename`` attribute can be used to change the name of the
+given field in the generated target language API.
- The *optional* **snake-case** attribute allows for overriding the value
- specified on the class entry or **typesystem** element.
+The *optional* ``opaque-container`` attribute specifies whether
+an opaque container should be returned on read access
+(see :ref:`opaque-containers`).
+
+The *optional* **snake-case** attribute allows for overriding the value
+specified on the class entry or **typesystem** element.
.. _modify-function:
modify-function
^^^^^^^^^^^^^^^
- The ``modify-function`` node allows you to modify a given C++ function when
- mapping it onto the target language, and it is a child of a :ref:`function`,
- :ref:`namespace`, :ref:`object-type` or a :ref:`value-type` node.
- Use the :ref:`modify-argument` node to specify which argument the
- modification affects.
-
- .. code-block:: xml
-
- <object-type>
- <modify-function signature="..."
- since="..."
- remove="true | false"
- access="public | private | protected"
- allow-thread="true | auto | false"
- exception-handling="off | auto-off | auto-on | on"
- overload-number="number"
- rename="..."
- snake-case="yes | no | both" />
- </object-type>
-
- The ``signature`` attribute is a normalized C++ signature, excluding return
- values but including potential const declarations. It is not required
- when ``modify-function`` appears as a child of a :ref:`function` node to
- modify a global function.
-
- The ``since`` attribute specify the API version when this function was modified.
-
- The ``allow-thread`` attribute specifies whether a function should be wrapped
- into ``Py_BEGIN_ALLOW_THREADS`` and ``Py_END_ALLOW_THREADS``, that is,
- temporarily release the GIL (global interpreter lock). Doing so is required
- for any thread-related function (wait operations), functions that might call
- a virtual function (potentially reimplemented in Python), and recommended for
- lengthy I/O operations or similar. It has performance costs, though.
- The value ``auto`` means that it will be turned off for functions for which
- it is deemed to be safe, for example, simple getters.
- The attribute defaults to ``false``.
-
- The ``exception-handling`` attribute specifies whether to generate exception
- handling code (nest the function call into try / catch statements). It accepts
- the following values:
-
- * no, false: Do not generate exception handling code
- * auto-off: Generate exception handling code for functions
- declaring a non-empty ``throw`` list
- * auto-on: Generate exception handling code unless function
- declares ``noexcept``
- * yes, true: Always generate exception handling code
-
- The optional ``overload-number`` attribute specifies the position of the
- overload when checking arguments. Typically, when a number of overloads
- exists, as for in example in Qt:
-
- .. code-block:: c++
-
- void QPainter::drawLine(QPointF, QPointF);
- void QPainter::drawLine(QPoint, QPoint);
-
- they will be reordered such that the check for matching arguments for the
- one taking a ``QPoint`` is done first. This is to avoid a potentially
- costly implicit conversion from ``QPoint`` to ``QPointF`` when using the
- 2nd overload. There are cases though in which this is not desired;
- most prominently when a class inherits from a container and overloads exist
- for both types as is the case for the ``QPolygon`` class:
-
- .. code-block:: c++
-
- class QPolygon : public QList<QPoint> {};
-
- void QPainter::drawPolygon(QPolygon);
- void QPainter::drawPolygon(QList<QPoint>);
-
- By default, the overload taking a ``QList`` will be checked first, trying
- to avoid constructing a ``QPolygon`` from ``QList``. The type check for a
- list of points will succeed for a parameter of type ``QPolygon``, too,
- since it inherits ``QList``. This presents a problem since the sequence
- type check is costly due to it checking that each container element is a
- ``QPoint``. It is thus preferable to check for the ``QPolygon`` overload
- first. This is achieved by specifying numbers as follows:
-
- .. code-block:: xml
-
- <object-type name="QPainter">
- <modify-function signature="drawPolygon(QPolygon)" overload-number="0"/>
- <modify-function signature="drawPolygon(QList&lt;QPoint&gt;)" overload-number="1"/>
- </object-type>
-
- Numbers should be given for all overloads; otherwise, the order will be in
- declaration order.
-
- The ``remove`` attribute is an *optional* boolean attribute, which can
- mark the function to be discarded on generation.
-
- The *optional* ``rename`` attribute can be used to change the name of the
- given function in the generated target language API.
-
- The *optional* ``access`` attribute changes the access privileges of the
- given function in the generated target language API.
-
- The *optional* **snake-case** attribute allows for overriding the value
- specified on the class entry or **typesystem** element.
+The ``modify-function`` node allows you to modify a given C++ function when
+mapping it onto the target language, and it is a child of a :ref:`function`,
+:ref:`namespace`, :ref:`object-type` or a :ref:`value-type` node.
+Use the :ref:`modify-argument` node to specify which argument the
+modification affects.
+
+.. code-block:: xml
+
+ <object-type>
+ <modify-function signature="..."
+ since="..."
+ remove="true | false"
+ access="public | private | protected"
+ allow-thread="true | auto | false"
+ exception-handling="no | auto-off | auto-on | yes"
+ final="true | false"
+ overload-number="number"
+ rename="..."
+ snake-case="yes | no | both"
+ deprecated = "true | false" />
+ </object-type>
+
+The ``signature`` attribute is a normalized C++ signature, excluding return
+values but including potential const declarations. It is not required
+when ``modify-function`` appears as a child of a :ref:`function` node to
+modify a global function.
+
+The ``since`` attribute specify the API version when this function was modified.
+
+The ``allow-thread`` attribute specifies whether a function should be wrapped
+into ``Py_BEGIN_ALLOW_THREADS`` and ``Py_END_ALLOW_THREADS``, that is,
+temporarily release the GIL (global interpreter lock). Doing so is required
+for any thread-related function (wait operations), functions that might call
+a virtual function (potentially reimplemented in Python), and recommended for
+lengthy I/O operations or similar. It has performance costs, though.
+The value ``auto`` means that it will be turned off for functions for which
+it is deemed to be safe, for example, simple getters.
+The attribute defaults to ``false``.
+
+The ``exception-handling`` attribute specifies whether to generate exception
+handling code (nest the function call into try / catch statements). It accepts
+the following values:
+
+* no, false: Do not generate exception handling code
+* auto-off: Generate exception handling code for functions
+ declaring a non-empty ``throw`` list
+* auto-on: Generate exception handling code unless function
+ declares ``noexcept``
+* yes, true: Always generate exception handling code
+
+The optional ``overload-number`` attribute specifies the position of the
+overload when checking arguments. Typically, when a number of overloads
+exists, as for in example in Qt:
+
+.. code-block:: c++
+
+ void QPainter::drawLine(QPointF, QPointF);
+ void QPainter::drawLine(QPoint, QPoint);
+
+they will be reordered such that the check for matching arguments for the
+one taking a ``QPoint`` is done first. This is to avoid a potentially
+costly implicit conversion from ``QPoint`` to ``QPointF`` when using the
+2nd overload. There are cases though in which this is not desired;
+most prominently when a class inherits from a container and overloads exist
+for both types as is the case for the ``QPolygon`` class:
+
+.. code-block:: c++
+
+ class QPolygon : public QList<QPoint> {};
+
+ void QPainter::drawPolygon(QPolygon);
+ void QPainter::drawPolygon(QList<QPoint>);
+
+By default, the overload taking a ``QList`` will be checked first, trying
+to avoid constructing a ``QPolygon`` from ``QList``. The type check for a
+list of points will succeed for a parameter of type ``QPolygon``, too,
+since it inherits ``QList``. This presents a problem since the sequence
+type check is costly due to it checking that each container element is a
+``QPoint``. It is thus preferable to check for the ``QPolygon`` overload
+first. This is achieved by specifying numbers as follows:
+
+.. code-block:: xml
+
+ <object-type name="QPainter">
+ <modify-function signature="drawPolygon(QPolygon)" overload-number="0"/>
+ <modify-function signature="drawPolygon(QList&lt;QPoint&gt;)" overload-number="1"/>
+ </object-type>
+
+Numbers should be given for all overloads; otherwise, the order will be in
+declaration order.
+
+The optional ``final`` attribute can be specified for virtual functions
+and disables generating the code for overriding the function in Python
+(native call). This is useful when the result type is not constructible.
+
+The ``remove`` attribute is an *optional* boolean attribute, which can
+mark the function to be discarded on generation.
+
+The *optional* ``rename`` attribute can be used to change the name of the
+given function in the generated target language API.
+
+The *optional* ``access`` attribute changes the access privileges of the
+given function in the generated target language API.
+
+The *optional* **snake-case** attribute allows for overriding the value
+specified on the class entry or **typesystem** element.
+
+The *optional* **deprecated** attribute allows for overriding deprecation
+as detected by the C++ attribute. It works in both ways.
.. _add-function:
add-function
^^^^^^^^^^^^
- The ``add-function`` node allows you to add a given function onto the target
- language, and it is a child of an :ref:`object-type` or :ref:`value-type` nodes if the
- function is supposed to be a method, or :ref:`namespace` and :ref:`typesystem` if
- the function is supposed to be a function inside a namespace or a global function.
+The ``add-function`` node allows you to add a given function onto the target
+language, and it is a child of an :ref:`object-type` or :ref:`value-type` nodes if the
+function is supposed to be a method, or :ref:`namespace` and :ref:`typesystem` if
+the function is supposed to be a function inside a namespace or a global function.
+It may contain :ref:`modify-argument` nodes.
+
+Typically when adding a function some code must be injected to provide the function
+logic. This can be done using the :ref:`inject-code` node.
- Typically when adding a function some code must be injected to provide the function
- logic. This can be done using the :ref:`inject-code` node.
+.. code-block:: xml
- .. code-block:: xml
+ <object-type>
+ <add-function signature="..." return-type="..."
+ access="public | protected"
+ overload-number="number"
+ static="yes | no" classmethod="yes | no"
+ python-override ="yes | no"
+ since="..."/>
+ </object-type>
- <object-type>
- <add-function signature="..." return-type="..." access="public | protected" static="yes | no" classmethod="yes | no" since="..."/>
- </object-type>
+The ``return-type`` attribute defaults to *void*, the ``access`` to *public* and the ``static`` one to *no*.
- The ``return-type`` attribute defaults to *void*, the ``access`` to *public* and the ``static`` one to *no*.
+The ``since`` attribute specifies the API version when this function was added.
- The ``since`` attribute specifies the API version when this function was added.
+The ``classmethod`` attribute specifies whether the function should be a Python class method.
+It sets the METH_CLASS flag which means that ``PyTypeObject`` instead of an instance
+``PyObject`` is passed as self, which needs to be handled in injected code.
- The ``classmethod`` attribute specifies whether the function should be a Python class method.
- It sets the METH_CLASS flag which means that ``PyTypeObject`` instead of an instance
- ``PyObject`` is passed as self, which needs to be handled in injected code.
+For the *optional* attribute ``overload-number``, see :ref:`modify-function`.
- Note that the label "static" in Qt's class documentation almost always means that a Python
- ``classmethod`` should be generated, because an object's class is always accessible from the
- static C++ code, while Python needs the explicit "self" parameter that ``classmethod``
- provides.
+Note that the label "static" in Qt's class documentation almost always means that a Python
+``classmethod`` should be generated, because an object's class is always accessible from the
+static C++ code, while Python needs the explicit "self" parameter that ``classmethod``
+provides.
- Within the signature, names for the function parameters can be specified by
- enclosing them within the delimiter *@*:
+In order to create keyword argument supporting function parameters, enclose the specific
+function parameter with a *@* in the `signature` field.
- .. code-block::
+.. code-block:: xml
- void foo(int @parameter1@,float)
+ <add-function signature="foo(int @parameter1@,float @parameter2@)">
+ ...
+ </add-function>
+With keyword arguments, ``add-function`` makes it easy to specify a default argument
+within the `signature` field
- See :ref:`sequence-protocol` for adding the respective functions.
+.. code-block:: xml
+
+ <add-function signature="foo(int @parameter1@=1,float @parameter2@=2)">
+ ...
+ </add-function>
+
+See :ref:`sequence-protocol` for adding the respective functions.
+
+The *optional* attribute ``python-override`` indicates a special type
+of added function, a python-override that will be generated into
+the native wrapper (see :ref:`modifying-virtual-functions`).
.. _declare-function:
declare-function
^^^^^^^^^^^^^^^^
- The ``declare-function`` node allows you to declare a function present in
- the type and it is a child of an :ref:`object-type` or :ref:`value-type` nodes
- if the function is supposed to be a method, or :ref:`namespace` and
- :ref:`typesystem` if the function is supposed to be a function inside a
- namespace or a global function.
+The ``declare-function`` node allows you to declare a function present in
+the type and it is a child of an :ref:`object-type` or :ref:`value-type` nodes
+if the function is supposed to be a method, or :ref:`namespace` and
+:ref:`typesystem` if the function is supposed to be a function inside a
+namespace or a global function. It may contain :ref:`modify-argument` nodes.
+
+.. code-block:: xml
+
+ <container-type>
+ <declare-function signature="..." return-type="..." since="..."
+ allow-thread="true | auto | false"
+ exception-handling="off | auto-off | auto-on | on"
+ overload-number="number"
+ snake-case="yes | no | both"/>
+ </container-type>
+
+The ``return-type`` attribute defaults to *void*.
+
+The ``since`` attribute specifies the API version when this function was
+added.
+
+For the *optional* attributes ``allow-thread``, ``exception-handling``,
+``overload-number`` and ``snake-case``, see :ref:`modify-function`.
+
+This is useful to make functions known to shiboken which its code parser
+does not detect. For example, in Qt 6, the ``append()`` function of the
+``QList<T>`` container takes an argument of ``parameter_type`` which is
+specialized to ``T`` for simple types and ``const T &`` for complex types
+by some template expression which the code parser cannot resolve.
+In that case, the function can be declared with a simple signature:
+
+.. code-block:: xml
+
+ <container-type name="QList">
+ <declare-function signature="append(T)"/>
+ </container-type>
+
+This tells shiboken a public function of that signature exists and
+bindings will be created in specializations of ``QList``.
+
+
+.. _add-pymethoddef:
+
+add-pymethoddef
+^^^^^^^^^^^^^^^
+
+The ``add-pymethoddef`` element allows you to add a free function to
+the ``PyMethodDef`` array of the type. No argument or result conversion
+is generated, allowing for variadic functions and more flexible
+arguments checking.
- .. code-block:: xml
+.. code-block:: xml
- <container-type>
- <declare-function signature="..." return-type="..." since="..."/>
- </container-type>
+ <add-pymethoddef name="..." function="..." flags="..." doc="..."
+ signatures="..."/>
- The ``return-type`` attribute defaults to *void*.
+The ``name`` attribute specifies the name.
- The ``since`` attribute specifies the API version when this function was
- added.
+The ``function`` attribute specifies the implementation (a static function
+of type ``PyCFunction``).
- This is useful to make functions known to shiboken which its code parser
- does not detect. For example, in Qt 6, the ``append()`` function of the
- ``QList<T>`` container takes an argument of ``parameter_type`` which is
- specialized to ``T`` for simple types and ``const T &`` for complex types
- by some template expression which the code parser cannot resolve.
- In that case, the function can be declared with a simple signature:
+The ``flags`` attribute specifies the flags (typically ``METH_VARARGS``,
+see `Common Object Structures`_).
- .. code-block:: xml
+The optional ``doc`` attribute specifies the documentation to be set to the
+``ml_doc`` field.
- <container-type name="QList">
- <declare-function signature="append(T)"/>
- </container-type>
+The optional ``signatures`` attribute specifies a semicolon-separated list
+of signatures of the function.
- This tells shiboken a public function of that signature exists and
- bindings will be created in specializations of ``QList``.
+.. _Common Object Structures: https://docs.python.org/3/c-api/structures.html
.. _property-declare:
property
^^^^^^^^
- The ``property`` element allows you to specify properties consisting of
- a type and getter and setter functions.
+The ``property`` element allows you to specify properties consisting of
+a type and getter and setter functions.
+
+It may appear as a child of a complex type such as :ref:`object-type` or
+:ref:`value-type`.
+
+If the PySide6 extension is not present, code will be generated using the
+``PyGetSetDef`` struct, similar to what is generated for fields.
+
+If the PySide6 extension is present, those properties complement the
+properties obtained from the ``Q_PROPERTY`` macro in Qt-based code.
+The properties will be handled in ``libpyside`` unless code generation
+is forced.
+
+.. code-block:: xml
+
+ <property name="..." type="..." get="..." set="..."
+ generate-getsetdef="yes | no" since="..."/>
+
+The ``name`` attribute specifies the name of the property, the ``type``
+attribute specifies the C++ type and the ``get`` attribute specifies the
+name of the accessor function.
+
+The optional ``set`` attribute specifies name of the setter function.
+
+The optional ``generate-getsetdef`` attribute specifies whether to generate
+code for if the PySide6 extension is present (indicating this property is not
+handled by libpyside). It defaults to *no*.
+
+The optional ``since`` attribute specifies the API version when this
+property appears.
+
+For a typical C++ class, like:
+
+.. code-block:: c++
+
+ class Test {
+ public:
+ int getValue() const;
+ void setValue();
+ };
+
+``value`` can then be specified to be a property:
+
+.. code-block:: xml
+
+ <value-type name="Test">
+ <property name="value" type="int" get="getValue" set="setValue"/>
+
+With that, a more pythonic style can be used:
+
+.. code-block:: python
+
+ test = Test()
+ test.value = 42
+
+For Qt classes (with the PySide6 extension present), additional setters
+and getters that do not appear as ``Q_PROPERTY``, can be specified to
+be properties:
+
+.. code-block:: xml
+
+ <object-type name="QMainWindow">
+ <property name="centralWidget" type="QWidget *"
+ get="centralWidget" set="setCentralWidget"/>
+
+in addition to the normal properties of ``QMainWindow`` defined for
+Qt Designer usage.
+
+.. note:: In the *Qt* coding style, the property name typically conflicts
+ with the getter name. It is recommended to exclude the getter from the
+ wrapper generation using the ``remove`` function modification.
+
+.. _configuration-element:
- It may appear as a child of a complex type such as :ref:`object-type` or
- :ref:`value-type`.
+configuration
+^^^^^^^^^^^^^
- If the PySide6 extension is not present, code will be generated using the
- ``PyGetSetDef`` struct, similar to what is generated for fields.
+The ``configuration`` element allows you to generate a preprocessor
+condition excluding a type depending on an expression into the module
+header. This is specifically tailored to the
+`Qt Feature system <https://doc.qt.io/qt-6/configure-options.html>`_ ,
+but may also be used for similar systems.
- If the PySide6 extension is present, those properties complement the
- properties obtained from the ``Q_PROPERTY`` macro in Qt-based code.
- The properties will be handled in ``libpyside`` unless code generation
- is forced.
+It may appear as a child of a complex type such as :ref:`object-type` or
+:ref:`value-type`.
- .. code-block:: xml
+.. code-block:: xml
- <property name="..." type="..." get="..." set="..."
- generate-getsetdef="yes | no" since="..."/>
+ <configuration condition="..."/>
- The ``name`` attribute specifies the name of the property, the ``type``
- attribute specifies the C++ type and the ``get`` attribute specifies the
- name of the accessor function.
+The ``condition`` attribute specifies the preprocessor condition.
- The optional ``set`` attribute specifies name of the setter function.
+This is an alternative way of omitting classes depending on some
+configuration (see also option :ref:`drop-type-entries`) intended
+for building several configurations from one generated source tree,
+but still requires listing the correct source files in the
+``CMakeLists.txt`` file.
- The optional ``generate-getsetdef`` attribute specifies whether to generate
- code for if the PySide6 extension is present (indicating this property is not
- handled by libpyside). It defaults to *no*.
+.. _modifying-virtual-functions:
- The optional ``since`` attribute specifies the API version when this
- property appears.
+Modifying virtual functions
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
- For a typical C++ class, like:
+Some C++ virtual functions are unsuitable for Python bindings:
- .. code-block:: c++
+.. code-block:: c
- class Test {
- public:
- int getValue() const;
- void setValue();
- };
+ virtual void getInt(int *result) const;
- ``value`` can then be specified to be a property:
+In that case, you would modify it to return the integer instead (or a tuple
+in case of several out-parameters):
- .. code-block:: xml
+.. code-block:: c
- <value-type name="Test">
- <property name="value" type="int" get="getValue" set="setValue"/>
+ virtual int getInt() const;
- With that, a more pythonic style can be used:
+For the binding itself, use the common argument modifications (removing
+arguments, modifying return types with injected code snippets) to modify the
+signature.
- .. code-block:: python
+To make it possible to reimplement the function in Python with the modified
+signature, add a ``python-override`` function with that signature, using an
+arbitrary name for disambiguation:
- test = Test()
- test.value = 42
+.. code-block:: xml
- For Qt classes (with the PySide6 extension present), additional setters
- and getters that do not appear as ``Q_PROPERTY``, can be specified to
- be properties:
+ <add-function signature="getIntPyOverride()"
+ return-type="int" python-override="true"/>
- .. code-block:: xml
+This causes a static function performing the call into Python for the override
+to be generated into the native wrapper.
- <object-type name="QMainWindow">
- <property name="centralWidget" type="QWidget *" get="centralWidget" set="setCentralWidget"/>
+In the existing virtual function, inject a code snippet at the ``shell`` /
+``override`` position which calls the newly added function. The first 2
+arguments are the `Global interpreter lock handle` (``Shiboken::GilState``) and
+the Python method determined by the override check (``PyObject *``). The
+snippet then converts the arguments and return values and returns after that:
- in addition to the normal properties of ``QMainWindow`` defined for
- Qt Designer usage.
+.. code-block:: xml
- .. note:: In the *Qt* coding style, the property name typically conflicts
- with the getter name. It is recommended to exclude the getter from the
- wrapper generation using the ``remove`` function modification.
+ <modify-function signature="getInt(int*)const">
+ <inject-code class="shell" position="override">
+ *result = getIntPyOverride(gil, pyOverride.object());
+ return;
+ </inject-code>
+ </modify-function>
diff --git a/sources/shiboken6/doc/typesystem_modify_function.rst b/sources/shiboken6/doc/typesystem_modify_function.rst
index d7cb50dd6..54ac6412f 100644
--- a/sources/shiboken6/doc/typesystem_modify_function.rst
+++ b/sources/shiboken6/doc/typesystem_modify_function.rst
@@ -8,35 +8,37 @@ Modifying Functions
modify-argument
^^^^^^^^^^^^^^^
- Function modifications consist of a list of ``modify-argument`` nodes
- contained in a :ref:`modify-function` node. Use the :ref:`remove-argument`,
- :ref:`replace-default-expression`, :ref:`remove-default-expression`,
- :ref:`replace-type`, :ref:`reference-count` and :ref:`define-ownership`
- nodes to specify the details of the modification.
-
- .. code-block:: xml
-
- <modify-function>
- <modify-argument index="return | this | 1 ..." rename="..."
- invalidate-after-use = "true | false" pyi-type="...">
- // modifications
- </modify-argument>
- </modify-function>
-
- Set the ``index`` attribute to "1" for the first argument, "2" for the second
- one and so on. Alternatively, set it to "return" or "this" if you want to
- modify the function's return value or the object the function is called upon,
- respectively.
-
- The optional ``rename`` attribute is used to rename a argument and use this
- new name in the generated code.
-
- The optional ``pyi-type`` attribute specifies the type to appear in the
- signature strings and ``.pyi`` files. The type string is determined by
- checking this attribute value, the :ref:`replace-type` modification and
- the C++ type. The attribute can be used for example to enclose
- a pointer return value within ``Optional[]`` to indicate that ``None``
- can occur.
-
- For the optional ``invalidate-after-use`` attribute,
- see :ref:`invalidationafteruse` .
+Function modifications consist of a list of ``modify-argument`` nodes
+contained in :ref:`modify-function`, :ref:`add-function` or
+:ref:`declare-function` nodes. Use the :ref:`remove-argument`,
+:ref:`replace-default-expression`, :ref:`remove-default-expression`,
+:ref:`replace-type`, :ref:`reference-count` and :ref:`define-ownership`
+nodes to specify the details of the modification.
+
+.. code-block:: xml
+
+ <modify-function>
+ <modify-argument index="return | this | 1 ..." rename="..."
+ invalidate-after-use = "true | false" pyi-type="...">
+ // modifications
+ </modify-argument>
+ </modify-function>
+
+Set the ``index`` attribute to "1" for the first argument, "2" for the second
+one and so on. Alternatively, set it to "return" or "this" if you want to
+modify the function's return value or the object the function is called upon,
+respectively.
+
+The optional ``rename`` attribute is used to rename a argument and use this
+new name in the generated code. This attribute can be used to enable the usage
+of ``keyword arguments``.
+
+The optional ``pyi-type`` attribute specifies the type to appear in the
+signature strings and ``.pyi`` files. The type string is determined by
+checking this attribute value, the :ref:`replace-type` modification and
+the C++ type. The attribute can be used for example to enclose
+a pointer return value within ``Optional[]`` to indicate that ``None``
+can occur.
+
+For the optional ``invalidate-after-use`` attribute,
+see :ref:`invalidationafteruse` .
diff --git a/sources/shiboken6/doc/typesystem_ownership.rst b/sources/shiboken6/doc/typesystem_ownership.rst
index f9e705b4f..a5440e49e 100644
--- a/sources/shiboken6/doc/typesystem_ownership.rst
+++ b/sources/shiboken6/doc/typesystem_ownership.rst
@@ -58,39 +58,39 @@ The following situations can invalidate an object:
C++ taking ownership
--------------------
- When an object is passed to a function or method that takes ownership of it, the wrapper
- is invalidated as we can't be sure of when the object is destroyed, unless it has a
- :ref:`virtual destructor <ownership-virt-method>` or the transfer is due to the special case
- of :ref:`parent ownership <ownership-parent>`.
+When an object is passed to a function or method that takes ownership of it, the wrapper
+is invalidated as we can't be sure of when the object is destroyed, unless it has a
+:ref:`virtual destructor <ownership-virt-method>` or the transfer is due to the special case
+of :ref:`parent ownership <ownership-parent>`.
- Besides being passed as argument, the called object can have its ownership changed, like
- the `setParent` method in Qt's `QObject`.
+Besides being passed as argument, the called object can have its ownership changed, like
+the `setParent` method in Qt's `QObject`.
Invalidate after use
--------------------
- Objects marked with *invalidate-after-use* in the type system description always are
- virtual method arguments provided by a C++ originated call. They should be
- invalidated right after the Python function returns (see :ref:`invalidationafteruse`).
+Objects marked with *invalidate-after-use* in the type system description always are
+virtual method arguments provided by a C++ originated call. They should be
+invalidated right after the Python function returns (see :ref:`invalidationafteruse`).
.. _ownership-virt-method:
Objects with virtual methods
----------------------------
- A little bit of implementation details (see also :ref:`codegenerationterminology`):
- virtual methods are supported by creating a C++ class, the **shell**, that inherits
- from the class with virtual methods, the native one, and override those methods to check if
- any derived class in Python also override it.
+A little bit of implementation details (see also :ref:`codegenerationterminology`):
+virtual methods are supported by creating a C++ class, the **shell**, that inherits
+from the class with virtual methods, the native one, and override those methods to check if
+any derived class in Python also override it.
- If the class has a virtual destructor (and C++ classes with virtual methods should have), this
- C++ instance invalidates the wrapper only when the overridden destructor is called.
+If the class has a virtual destructor (and C++ classes with virtual methods should have), this
+C++ instance invalidates the wrapper only when the overridden destructor is called.
- An instance of the **shell** is created when created in Python. However,
- when the object is created in C++, like in a factory method or a parameter
- to a virtual function like ``QObject::event(QEvent *)``, the wrapped object
- is a C++ instance of the native class, not the **shell** one, and we cannot
- know when it is destroyed.
+An instance of the **shell** is created when created in Python. However,
+when the object is created in C++, like in a factory method or a parameter
+to a virtual function like ``QObject::event(QEvent *)``, the wrapped object
+is a C++ instance of the native class, not the **shell** one, and we cannot
+know when it is destroyed.
.. _ownership-parent:
@@ -108,45 +108,45 @@ for any C++ library with similar behavior.
Parentship heuristics
---------------------
- As the parent-child relationship is very common, |project| tries to automatically
- infer what methods falls into the parent-child scheme, adding the extra
- directives related to ownership.
+As the parent-child relationship is very common, |project| tries to automatically
+infer what methods falls into the parent-child scheme, adding the extra
+directives related to ownership.
- This heuristic will be triggered when generating code for a method and:
+This heuristic will be triggered when generating code for a method and:
- * The function is a constructor.
- * The argument name is `parent`.
- * The argument type is a pointer to an object.
+* The function is a constructor.
+* The argument name is `parent`.
+* The argument type is a pointer to an object.
- When triggered, the heuristic will set the argument named "parent"
- as the parent of the object being created by the constructor.
+When triggered, the heuristic will set the argument named "parent"
+as the parent of the object being created by the constructor.
- The main focus of this process was to remove a lot of hand written code from
- type system when binding Qt libraries. For Qt, this heuristic works in all cases,
- but be aware that it might not when binding your own libraries.
+The main focus of this process was to remove a lot of hand written code from
+type system when binding Qt libraries. For Qt, this heuristic works in all cases,
+but be aware that it might not when binding your own libraries.
- To activate this heuristic, use the :ref:`--enable-parent-ctor-heuristic <parent-heuristic>`
- command line switch.
+To activate this heuristic, use the :ref:`--enable-parent-ctor-heuristic <parent-heuristic>`
+command line switch.
.. _return-value-heuristics:
Return value heuristics
-----------------------
- When enabled, object returned as pointer in C++ will become child of the object on which the method
- was called.
+When enabled, object returned as pointer in C++ will become child of the object on which the method
+was called.
- To activate this heuristic, use the command line switch
- :ref:`--enable-return-value-heuristic <return-heuristic>`.
+To activate this heuristic, use the command line switch
+:ref:`--enable-return-value-heuristic <return-heuristic>`.
- To disable this heuristic for specific cases, specify ``default`` as
- ownership:
+To disable this heuristic for specific cases, specify ``default`` as
+ownership:
- .. code-block:: xml
+.. code-block:: xml
- <modify-argument index="0">
- <define-ownership class="target" owner="default" />
- </modify-argument>
+ <modify-argument index="0">
+ <define-ownership class="target" owner="default" />
+ </modify-argument>
Common pitfalls
===============
@@ -154,32 +154,32 @@ Common pitfalls
Not saving unowned objects references
-------------------------------------
- Sometimes when you pass an instance as argument to a method and the receiving
- instance will need that object to live indefinitely, but will not take ownership
- of the argument instance. In this case, you should hold a reference to the argument
- instance.
+Sometimes when you pass an instance as argument to a method and the receiving
+instance will need that object to live indefinitely, but will not take ownership
+of the argument instance. In this case, you should hold a reference to the argument
+instance.
- For example, let's say that you have a renderer class that will use a source class
- in a setSource method but will not take ownership of it. The following code is wrong,
- because when `render` is called the `Source` object created during the call to `setSource`
- is already destroyed.
+For example, let's say that you have a renderer class that will use a source class
+in a setSource method but will not take ownership of it. The following code is wrong,
+because when `render` is called the `Source` object created during the call to `setSource`
+is already destroyed.
- .. code-block:: python
+.. code-block:: python
- renderer.setModel(Source())
- renderer.render()
+ renderer.setModel(Source())
+ renderer.render()
- To solve this, you should hold a reference to the source object, like in
+To solve this, you should hold a reference to the source object, like in
- .. code-block:: python
+.. code-block:: python
- source = Source()
- renderer.setSource(source)
- renderer.render()
+ source = Source()
+ renderer.setSource(source)
+ renderer.render()
-Ownership Management in the Typesystem
-=======================================
+Ownership Management in the Typesystem
+======================================
Python Wrapper Code
-------------------
@@ -190,44 +190,44 @@ For this code, the ``class`` attribute takes the value ``target``
Ownership transfer from C++ to target
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- When an object currently owned by C++ has its ownership transferred
- back to the target language, the binding can know for sure when the object will be deleted and
- tie the C++ instance existence to the wrapper, calling the C++ destructor normally when the
- wrapper is deleted.
+When an object currently owned by C++ has its ownership transferred
+back to the target language, the binding can know for sure when the object will be deleted and
+tie the C++ instance existence to the wrapper, calling the C++ destructor normally when the
+wrapper is deleted.
- .. code-block:: xml
+.. code-block:: xml
- <modify-argument index="1">
- <define-ownership class="target" owner="target" />
- </modify-argument>
+ <modify-argument index="1">
+ <define-ownership class="target" owner="target" />
+ </modify-argument>
- A typical use case would be returning an object allocated in C++, for
- example from ``clone()`` or other factory methods.
+A typical use case would be returning an object allocated in C++, for
+example from ``clone()`` or other factory methods.
Ownership transfer from target to C++
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- In the opposite direction, when an object ownership is transferred from the target language
- to C++, the native code takes full control of the object life and you don't
- know when that object will be deleted, rendering the wrapper object invalid,
- unless you're wrapping an object with a virtual destructor,
- so you can override it and be notified of its destruction.
+In the opposite direction, when an object ownership is transferred from the target language
+to C++, the native code takes full control of the object life and you don't
+know when that object will be deleted, rendering the wrapper object invalid,
+unless you're wrapping an object with a virtual destructor,
+so you can override it and be notified of its destruction.
- By default it's safer to just render the wrapper
- object invalid and raise some error if the user tries to access
- one of this objects members or pass it as argument to some function, to avoid unpleasant segfaults.
- Also you should avoid calling the C++ destructor when deleting the wrapper.
+By default it's safer to just render the wrapper
+object invalid and raise some error if the user tries to access
+one of this objects members or pass it as argument to some function, to avoid unpleasant segfaults.
+Also you should avoid calling the C++ destructor when deleting the wrapper.
- .. code-block:: xml
+.. code-block:: xml
- <modify-argument index="1">
- <define-ownership class="target" owner="c++" />
- </modify-argument>
+ <modify-argument index="1">
+ <define-ownership class="target" owner="c++" />
+ </modify-argument>
- Use cases would be an returning a member object by pointer
- or passing an object by pointer into a function where the class
- takes ownership, for example
- ``QNetworkAccessManager::setCookieJar(QNetworkCookieJar *)``.
+Use cases would be an returning a member object by pointer
+or passing an object by pointer into a function where the class
+takes ownership, for example
+``QNetworkAccessManager::setCookieJar(QNetworkCookieJar *)``.
Parent-child relationship
^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -240,11 +240,11 @@ as long as the parent is, unless some other method can take the C++ ownership aw
One of the main uses of this scheme is Qt's object system, with ownership among QObject-derived
classes, creating "trees" of instances.
- .. code-block:: xml
+.. code-block:: xml
- <modify-argument index="this">
- <parent index="1" action="add"/>
- </modify-argument>
+ <modify-argument index="this">
+ <parent index="1" action="add"/>
+ </modify-argument>
In this example, the instance with the method that is being invoked (indicated by 'index="this"' on
modify-argument) will be marked as a child
@@ -253,7 +253,7 @@ parentship also transfers the ownership back to python.**
See `Object Trees and Object Ownership in Qt`_.
-.. _`Object Trees and Object Ownership in Qt`: http://doc.qt.io/qt-6/objecttrees.html
+.. _`Object Trees and Object Ownership in Qt`: https://doc.qt.io/qt-6/objecttrees.html
C++ Wrapper Code
----------------
@@ -284,8 +284,8 @@ In this case, you should use the ``invalidate-after-use`` attribute in the
:ref:`modify-argument` tag to mark the wrapper as invalid right after the
virtual method returns.
- .. code-block:: xml
+.. code-block:: xml
- <modify-argument index="2" invalidate-after-use="yes"/>
+ <modify-argument index="2" invalidate-after-use="yes"/>
In this example the second argument will be invalidated after this method call.
diff --git a/sources/shiboken6/doc/typesystem_solving_compilation.rst b/sources/shiboken6/doc/typesystem_solving_compilation.rst
index cca511d5b..705c2cd26 100644
--- a/sources/shiboken6/doc/typesystem_solving_compilation.rst
+++ b/sources/shiboken6/doc/typesystem_solving_compilation.rst
@@ -6,69 +6,75 @@ Solving compilation problems
suppress-warning
^^^^^^^^^^^^^^^^
- The generator will generate several warnings which may be irrelevant to the
- user. The ``suppress-warning`` node suppresses the specified warning, and it is
- a child of the :ref:`typesystem` node.
+The generator will generate several warnings which may be irrelevant to the
+user. The ``suppress-warning`` node suppresses the specified warning, and it is
+a child of the :ref:`typesystem` node.
- .. code-block:: xml
+.. code-block:: xml
- <typesystem>
- <suppress-warning text="..." />
- </typesystem>
+ <typesystem>
+ <suppress-warning text="..." />
+ </typesystem>
- The **text** attribute is the warning text to suppress, and may contain the *
- wildcard (use "" to escape regular expression matching if the warning contain
- a regular "*").
+The **text** attribute is the warning text to suppress, and may contain the *
+wildcard (use "" to escape regular expression matching if the warning contain
+a regular "*").
.. _extra-includes:
extra-includes
^^^^^^^^^^^^^^
- The ``extra-includes`` node contains declarations of additional include files,
- and it can be a child of the :ref:`namespace`, :ref:`value-type` and
- :ref:`object-type` nodes.
+The ``extra-includes`` node contains declarations of additional include files,
+and it can be a child of the :ref:`namespace`, :ref:`value-type`,
+:ref:`object-type` and :ref:`typesystem` and nodes.
- The generator automatically tries to read the global header for each type but
- sometimes it is required to include extra files in the generated C++ code to
- make sure that the code compiles. These files must be listed using include
- nodes within the extra-include node:
+The generator automatically tries to read the global header for each type but
+sometimes it is required to include extra files in the generated C++ code to
+make sure that the code compiles. These files must be listed using include
+nodes within the extra-include node:
- .. code-block:: xml
+.. code-block:: xml
- <value-type>
- <extra-includes>
- <include file-name="..." location="global | local"/>
- </extra-includes>
- </value-type>
+ <value-type>
+ <extra-includes>
+ <include file-name="..." location="global | local"/>
+ </extra-includes>
+ </value-type>
- The **file-name** attribute is the file to include, such as "QStringList".
- The **location** attribute is where the file is located: *global* means that
- the file is located in $INCLUDEPATH and will be included using #include <...>,
- *local* means that the file is in a local directory and will be included
- using #include "...".
+The **file-name** attribute is the file to include, such as "QStringList".
+The **location** attribute is where the file is located: *global* means that
+the file is located in $INCLUDEPATH and will be included using #include <...>,
+*local* means that the file is in a local directory and will be included
+using #include "...".
+When specified as a child of the :ref:`typesystem` node, the include
+directives are added to the module source file which contains
+the type converter and registration code. It can be used to specify
+additional includes required for the converter code snippets.
+
+.. _include-element:
include
^^^^^^^
- The ``include`` node specifies the name and location of a file that must be
- included, and it is a child of the :ref:`namespace`, :ref:`value-type`,
- :ref:`object-type` or :ref:`extra-includes` node.
+The ``include`` node specifies the name and location of a file that must be
+included, and it is a child of the :ref:`namespace`, :ref:`value-type`,
+:ref:`object-type` or :ref:`extra-includes` node.
- The generator automatically tries to read the global header for each type. Use
- the include node to override this behavior, providing an alternative file. The
- include node can also be used to specify extra include files.
+The generator automatically tries to read the global header for each type. Use
+the include node to override this behavior, providing an alternative file. The
+include node can also be used to specify extra include files.
- .. code-block:: xml
+.. code-block:: xml
- <value-type>
- <include file-name="..."
- location="global | local"/>
- </value-type>
+ <value-type>
+ <include file-name="..."
+ location="global | local"/>
+ </value-type>
- The **file-name** attribute is the file to include, such as "QStringList".
- The **location** attribute is where the file is located: *global* means that
- the file is located in $INCLUDEPATH and will be included using #include <...>,
- *local* means that the file is in a local directory and will be included
- using #include "...".
+The **file-name** attribute is the file to include, such as "QStringList".
+The **location** attribute is where the file is located: *global* means that
+the file is located in $INCLUDEPATH and will be included using #include <...>,
+*local* means that the file is in a local directory and will be included
+using #include "...".
diff --git a/sources/shiboken6/doc/typesystem_specialfunctions.rst b/sources/shiboken6/doc/typesystem_specialfunctions.rst
index 5c0c52663..78a6ff489 100644
--- a/sources/shiboken6/doc/typesystem_specialfunctions.rst
+++ b/sources/shiboken6/doc/typesystem_specialfunctions.rst
@@ -13,15 +13,15 @@ names, this is done using the :ref:`add-function` tag.
The special function names are:
- ============= =============================================== ==================== ===================
- Function name Parameters Return type CPython equivalent
- ============= =============================================== ==================== ===================
- __len__ PyObject* self Py_ssize_t PySequence_Size
- __getitem__ PyObject* self, Py_ssize_t _i PyObject* PySequence_GetItem
- __setitem__ PyObject* self, Py_ssize_t _i, PyObject* _value int PySequence_SetItem
- __contains__ PyObject* self, PyObject* _value int PySequence_Contains
- __concat__ PyObject* self, PyObject* _other PyObject* PySequence_Concat
- ============= =============================================== ==================== ===================
+============= =============================================== ==================== ===================
+Function name Parameters Return type CPython equivalent
+============= =============================================== ==================== ===================
+__len__ PyObject* self Py_ssize_t PySequence_Size
+__getitem__ PyObject* self, Py_ssize_t _i PyObject* PySequence_GetItem
+__setitem__ PyObject* self, Py_ssize_t _i, PyObject* _value int PySequence_SetItem
+__contains__ PyObject* self, PyObject* _value int PySequence_Contains
+__concat__ PyObject* self, PyObject* _other PyObject* PySequence_Concat
+============= =============================================== ==================== ===================
You just need to inform the function name to the :ref:`add-function` tag, without any
parameter or return type information, when you do it, |project| will create a C
@@ -47,8 +47,8 @@ in boolean expressions. In C++, this is commonly implemented as
In Python, the function ``__bool__`` is used for this. shiboken can generate
this functions depending on the command line options
-:ref:`--use-operator-bool-as-nb_nonzero <use-operator-bool-as-nb-nonzero>`
-and :ref:`--use-isnull-as-nb_nonzero <use-isnull-as-nb-nonzero>`,
+:ref:`--use-operator-bool-as-nb-bool <use-operator-bool-as-nb-bool>`
+and :ref:`--use-isnull-as-nb-bool <use-isnull-as-nb-bool>`,
which can be overridden by specifying the boolean attributes
**isNull** or **operator-bool** on the :ref:`value-type` or :ref:`object-type`
elements in typesystem XML.
diff --git a/sources/shiboken6/doc/typesystem_specifying_types.rst b/sources/shiboken6/doc/typesystem_specifying_types.rst
index 3b2e979b3..66e68ae2b 100644
--- a/sources/shiboken6/doc/typesystem_specifying_types.rst
+++ b/sources/shiboken6/doc/typesystem_specifying_types.rst
@@ -30,607 +30,864 @@ of the underlying parser.
typesystem
^^^^^^^^^^
- This is the root node containing all the type system information.
- It may contain :ref:`add-function`, :ref:`container-type`,
- :ref:`custom-type`, :ref:`enum-type`, :ref:`function`,
- :ref:`load-typesystem`, :ref:`namespace`, :ref:`object-type`,
- :ref:`primitive-type`, :ref:`rejection`, :ref:`smart-pointer-type`,
- :ref:`suppress-warning`, :ref:`template`, :ref:`system_include`,
- :ref:`typedef-type` or :ref:`value-type` child nodes.
+This is the root node containing all the type system information.
+It may contain :ref:`add-function`, :ref:`container-type`,
+:ref:`custom-type`, :ref:`enum-type`, :ref:`extra-includes`, :ref:`function`,
+:ref:`load-typesystem`, :ref:`namespace`, :ref:`object-type`,
+:ref:`opaque-container`,
+:ref:`primitive-type`, :ref:`rejection`, :ref:`smart-pointer-type`,
+:ref:`suppress-warning`, :ref:`template`, :ref:`system_include`,
+:ref:`typedef-type` or :ref:`value-type` child nodes.
- It can have a number of attributes, described below.
+It can have a number of attributes, described below.
- .. code-block:: xml
+.. code-block:: xml
- <typesystem package="..." default-superclass="..." allow-thread="..."
- exception-handling="..." snake-case="yes | no | both" >
- </typesystem>
+ <typesystem package="..."
+ submodule-of="..."
+ allow-thread="..."
+ exception-handling="..."
+ snake-case="yes | no | both"
+ namespace-begin="..."
+ namespace-end="..." >
+ </typesystem>
+
+The **package** attribute is a string describing the package to be used,
+e.g. "QtCore".
- The **package** attribute is a string describing the package to be used,
- e.g. "QtCore".
- The *optional* **default-superclass** attribute is the canonical C++ base class
- name of all objects, e.g., "object".
+The *optional* **submodule-of** attribute specifies the name of a module to
+which the module is added as a sub-module. This requires adapting the
+installation directory of the module accordingly.
- The *optional* attributes **allow-thread** and **exception-handling**
- specify the default handling for the corresponding function modification
- (see :ref:`modify-function`).
+The *optional* attributes **allow-thread** and **exception-handling**
+specify the default handling for the corresponding function modification
+(see :ref:`modify-function`).
- The *optional* **snake-case** attribute specifies whether function
- and field names will be automatically changed to the snake case
- style that is common in Python (for example, ``snakeCase`` will be
- changed to ``snake_case``).
+The *optional* **snake-case** attribute specifies whether function
+and field names will be automatically changed to the snake case
+style that is common in Python (for example, ``snakeCase`` will be
+changed to ``snake_case``).
- The value ``both`` means that the function or field will be exposed
- under both its original name and the snake case version. There are
- limitations to this though:
+The value ``both`` means that the function or field will be exposed
+under both its original name and the snake case version. There are
+limitations to this though:
- - When overriding a virtual function of a C++ class in Python,
- the snake case name must be used.
+- When overriding a virtual function of a C++ class in Python,
+ the snake case name must be used.
- - When static and non-static overloads of a class member function
- exist (as is the case for example for ``QFileInfo::exists()``),
- the snake case name must be used.
+- When static and non-static overloads of a class member function
+ exist (as is the case for example for ``QFileInfo::exists()``),
+ the snake case name must be used.
+
+The *optional* **namespace-begin** and **namespace-end** attributes will be
+generated around the forward declarations in the module header. This is
+intended for libraries which can optionally use inline namespaces
+to allow for linking several versions of them together.
+For example, for *Qt*, one would specify ``QT_BEGIN_NAMESPACE``,
+``QT_END_NAMESPACE``, respectively.
.. _load-typesystem:
load-typesystem
^^^^^^^^^^^^^^^
- The ``load-typesystem`` node specifies which type systems to load when mapping
- multiple libraries to another language or basing one library on another, and
- it is a child of the :ref:`typesystem` node.
+The ``load-typesystem`` node specifies which type systems to load when mapping
+multiple libraries to another language or basing one library on another, and
+it is a child of the :ref:`typesystem` node.
- .. code-block:: xml
+.. code-block:: xml
- <typesystem>
- <load-typesystem name="..." generate="yes | no" />
- </typesystem>
+ <typesystem>
+ <load-typesystem name="..." generate="yes | no" />
+ </typesystem>
- The **name** attribute is the filename of the typesystem to load, the
- **generate** attribute specifies whether code should be generated or not. The
- later must be specified when basing one library on another, making the generator
- able to understand inheritance hierarchies, primitive mapping, parameter types
- in functions, etc.
+The **name** attribute is the filename of the typesystem to load, the
+**generate** attribute specifies whether code should be generated or not. The
+later must be specified when basing one library on another, making the generator
+able to understand inheritance hierarchies, primitive mapping, parameter types
+in functions, etc.
- Most libraries will be based on both the QtCore and QtGui modules, in which
- case code generation for these libraries will be disabled.
+Most libraries will be based on both the QtCore and QtGui modules, in which
+case code generation for these libraries will be disabled.
.. _rejection:
rejection
^^^^^^^^^
- The ``rejection`` node rejects the given class, or the specified function
- or field, and it is a child of the :ref:`typesystem` node.
+The ``rejection`` node rejects the given class, or the specified function
+or field, and it is a child of the :ref:`typesystem` node.
- .. code-block:: xml
+.. code-block:: xml
- <typesystem>
- <rejection class="..."
- function-name="..."
- field-name="..." />
- </typesystem>
+ <typesystem>
+ <rejection class="..."
+ function-name="..."
+ argument-type="..."
+ field-name="..." />
+ </typesystem>
- The **class** attribute is the C++ class name of the class to reject. Use the
- *optional* **function-name** or **field-name** attributes to reject a particular
- function or field. Note that the **field-name** and **function-name** cannot
- be specified at the same time. To remove all occurrences of a given field or
- function, set the class attribute to \*.
+The **class** attribute is the C++ class name of the class to reject. Use
+the *optional* **function-name**, **argument-type**, or **field-name**
+attributes to reject a particular function, function with arguments of a
+particular type, or a field. Note that the **field-name** and
+**function-name**/**argument-type** cannot be specified at the same time.
+To remove all occurrences of a given field or function, set the class
+attribute to \*.
.. _primitive-type:
primitive-type
^^^^^^^^^^^^^^
- The ``primitive-type`` node describes how a primitive type is mapped from C++ to
- the target language, and is a child of the :ref:`typesystem` node. It may
- contain :ref:`conversion-rule` child nodes. Note that most primitives are
- already specified in the QtCore typesystem.
-
- .. code-block:: xml
-
- <typesystem>
- <primitive-type name="..."
- since="..."
- until="..."
- target-name="..."
- default-constructor="..."
- preferred-conversion="yes | no" />
- view-on="..."
- </typesystem>
+The ``primitive-type`` node describes how a primitive type is mapped from C++ to
+the target language, and is a child of the :ref:`typesystem` node. It may
+contain :ref:`conversion-rule` child nodes. Note that most primitives are
+already specified in the QtCore typesystem (see :ref:`primitive-cpp-types`).
+
+.. code-block:: xml
- The **name** attribute is the name of the primitive in C++, the optional,
- **target-name** attribute is the name of the primitive type in the target
- language. If the later two attributes are not specified their default value
- will be the same as the **name** attribute.
-
- The *optional* **since** value is used to specify the API version in which
- the type was introduced.
-
- Similarly, the *optional* **until** value can be used to specify the API
- version in which the type will be obsoleted.
-
- If the *optional* **preferred-conversion** attribute is set to *no*, it
- indicates that this version of the primitive type is not the preferred C++
- equivalent of the target language type. For example, in Python both "qint64"
- and "long long" become "long" but we should prefer the "qint64" version. For
- this reason we mark "long long" with preferred-conversion="no".
-
- The *optional* **default-constructor** specifies the minimal constructor
- call to build one value of the primitive-type. This is not needed when the
- primitive-type may be built with a default constructor (the one without
- arguments).
-
- The *optional* **preferred-conversion** attribute tells how to build a default
- instance of the primitive type. It should be a constructor call capable of
- creating a instance of the primitive type. Example: a class "Foo" could have
- a **preferred-conversion** value set to "Foo()". Usually this attribute is
- used only for classes declared as primitive types and not for primitive C++
- types, but that depends on the application using *ApiExtractor*.
-
- The *optional* **view-on** attribute specifies that the type is a view
- class like std::string_view or QStringView which has a constructor
- accepting another type like std::string or QString. Since typically
- no values can be assigned to view classes, no target-to-native conversion
- can be generated for them. Instead, an instance of the viewed class should
- be instantiated and passed to functions using the view class
- for argument types.
+ <typesystem>
+ <primitive-type name="..."
+ since="..."
+ until="..."
+ target-lang-api-name="..."
+ default-constructor="..."
+ preferred-conversion="yes | no"
+ view-on="..." />
+ </typesystem>
+
+The **name** attribute is the name of the primitive in C++.
+
+The optional **target-lang-api-name** attribute is the name of the
+primitive type in the target language, defaulting to the **name** attribute.
+
+The *optional* **since** value is used to specify the API version in which
+the type was introduced.
+
+Similarly, the *optional* **until** value can be used to specify the API
+version in which the type will be obsoleted.
+
+If the *optional* **preferred-conversion** attribute is set to *no*, it
+indicates that this version of the primitive type is not the preferred C++
+equivalent of the target language type. For example, in Python both "qint64"
+and "long long" become "long" but we should prefer the "qint64" version. For
+this reason we mark "long long" with preferred-conversion="no".
+
+The *optional* **default-constructor** specifies the minimal constructor
+call to build one value of the primitive-type. This is not needed when the
+primitive-type may be built with a default constructor (the one without
+arguments).
+
+The *optional* **preferred-conversion** attribute tells how to build a default
+instance of the primitive type. It should be a constructor call capable of
+creating a instance of the primitive type. Example: a class "Foo" could have
+a **preferred-conversion** value set to "Foo()". Usually this attribute is
+used only for classes declared as primitive types and not for primitive C++
+types, but that depends on the application using *ApiExtractor*.
+
+The *optional* **view-on** attribute specifies that the type is a view
+class like std::string_view or QStringView which has a constructor
+accepting another type like std::string or QString. Since typically
+no values can be assigned to view classes, no target-to-native conversion
+can be generated for them. Instead, an instance of the viewed class should
+be instantiated and passed to functions using the view class
+for argument types.
+
+See :ref:`predefined_templates` for built-in templates for standard type
+conversion rules.
.. _namespace:
namespace-type
^^^^^^^^^^^^^^
- The ``namespace-type`` node maps the given C++ namespace to the target
- language, and it is a child of the :ref:`typesystem` node or other
- ``namespace-type`` nodes. It may contain :ref:`add-function`,
- :ref:`declare-function`, :ref:`enum-type`, :ref:`extra-includes`,
- :ref:`modify-function`, ``namespace-type``, :ref:`object-type`,
- :ref:`smart-pointer-type`, :ref:`typedef-type` or :ref:`value-type`
- child nodes.
-
- .. code-block:: xml
-
- <typesystem>
- <namespace-type name="..."
- visible="true | auto | false"
- generate="yes | no"
- generate-using="yes | no"
- package="..."
- since="..."
- revision="..." />
- </typesystem>
+The ``namespace-type`` node maps the given C++ namespace to the target
+language, and it is a child of the :ref:`typesystem` node or other
+``namespace-type`` nodes. It may contain :ref:`add-function`,
+:ref:`declare-function`, :ref:`enum-type`, :ref:`extra-includes`,
+:ref:`include-element`, :ref:`modify-function`, ``namespace-type``,
+:ref:`object-type`, :ref:`smart-pointer-type`, :ref:`typedef-type` or :ref:`value-type`
+child nodes.
- The **name** attribute is the name of the namespace, e.g., "Qt".
+.. code-block:: xml
+
+ <typesystem>
+ <namespace-type name="..."
+ visible="true | auto | false"
+ generate="yes | no"
+ generate-using="yes | no"
+ package="..."
+ since="..."
+ extends = "..."
+ files = "..."
+ revision="..." />
+ </typesystem>
- The *optional* **visible** attribute is used specify whether the
- namespace is visible in the target language name. Its default value is
- **auto**. It means that normal namespaces are visible, but inline namespaces
- (as introduced in C++ 11) will not be visible.
+The **name** attribute is the name of the namespace, e.g., "Qt".
- The detection of inline namespaces requires shiboken to be built
- using LLVM 9.0.
+The *optional* **visible** attribute is used specify whether the
+namespace is visible in the target language name. Its default value is
+**auto**. It means that normal namespaces are visible, but inline namespaces
+(as introduced in C++ 11) will not be visible.
- The *optional* **generate** is a legacy attribute. Specifying
- **no** is equivalent to **visible="false"**.
+The detection of inline namespaces requires shiboken to be built
+using LLVM 9.0.
- The *optional* **generate-using** attribute specifies whether
- ``using namespace`` is generated into the wrapper code for classes within
- the namespace (default: **yes**). This ensures for example that not fully
- qualified enumeration values of default argument values compile.
- However, in rare cases, it might cause ambiguities and can then be turned
- off.
+The *optional* **generate** is a legacy attribute. Specifying
+**no** is equivalent to **visible="false"**.
- The **package** attribute can be used to override the package of the type system.
+The *optional* **generate-using** attribute specifies whether
+``using namespace`` is generated into the wrapper code for classes within
+the namespace (default: **yes**). This ensures for example that not fully
+qualified enumeration values of default argument values compile.
+However, in rare cases, it might cause ambiguities and can then be turned
+off.
- The *optional* **since** value is used to specify the API version of this type.
+The **package** attribute can be used to override the package of the type system.
- The **revision** attribute can be used to specify a revision for each type, easing the
- production of ABI compatible bindings.
+The *optional* **since** value is used to specify the API version of this type.
+
+The **revision** attribute can be used to specify a revision for each type, easing the
+production of ABI compatible bindings.
+
+The *optional* **extends** attribute specifies the module name where the given
+namespace first occurs in case of a namespace spanning several modules. For
+example, in Qt, the namespace ``Qt`` first occurs in the ``QtCore`` module and
+is further populated in the ``QtGui`` module. ``QtGui.Qt`` will then be
+generated extending ``QtCore.Qt`` if **extends** is specified.
+
+The *optional* **file** attribute specifies a regular expression matching the
+include files whose contents are to be associated with the current module in
+case of a namespace spanning several modules.
.. _enum-type:
enum-type
^^^^^^^^^
- The ``enum-type`` node maps the given enum from C++ to the target language,
- and it is a child of the :ref:`typesystem` node. Use
- :ref:`reject-enum-value` child nodes to reject values.
-
- .. code-block:: xml
-
- <typesystem>
- <enum-type name="..."
- identified-by-value="..."
- class="yes | no"
- since="..."
- flags="yes | no"
- flags-revision="..."
- lower-bound="..."
- upper-bound="..."
- force-integer="yes | no"
- extensible="yes | no"
- revision="..." />
- </typesystem>
+The ``enum-type`` node maps the given enum from C++ to the target language,
+and it is a child of the :ref:`typesystem` node. Use
+:ref:`reject-enum-value` child nodes to reject values.
+
+.. code-block:: xml
+
+ <typesystem>
+ <enum-type name="..."
+ identified-by-value="..."
+ class="yes | no"
+ since="..."
+ flags="yes | no"
+ flags-revision="..."
+ cpp-type = "..."
+ doc-file = "..."
+ python-type = "IntEnum | IntFlag"
+ lower-bound="..."
+ upper-bound="..."
+ force-integer="yes | no"
+ extensible="yes | no"
+ revision="..." />
+ </typesystem>
+
+The **name** attribute is the fully qualified C++ name of the enum
+(e.g.,"Qt::FillRule"). If the *optional* **flags** attribute is set to *yes*
+(the default is *no*), the generator will expect an existing QFlags<T> for the
+given enum type. The **lower-bound** and **upper-bound** attributes are used
+to specify runtime bounds checking for the enum value. The value must be a
+compilable target language statement, such as "QGradient.Spread.PadSpread"
+(taking again Python as an example). If the **force-integer** attribute is
+set to *yes* (the default is *no*), the generated target language code will
+use the target language integers instead of enums. And finally, the
+**extensible** attribute specifies whether the given enum can be extended
+with user values (the default is *no*).
+
+The *optional* **since** value is used to specify the API version of this type.
+
+The attribute **identified-by-value** helps to specify anonymous enums using the
+name of one of their values, which is unique for the anonymous enum scope.
+Notice that the **enum-type** tag can either have **name** or **identified-by-value**
+but not both.
- The **name** attribute is the fully qualified C++ name of the enum
- (e.g.,"Qt::FillRule"). If the *optional* **flags** attribute is set to *yes*
- (the default is *no*), the generator will expect an existing QFlags<T> for the
- given enum type. The **lower-bound** and **upper-bound** attributes are used
- to specify runtime bounds checking for the enum value. The value must be a
- compilable target language statement, such as "QGradient.Spread.PadSpread"
- (taking again Python as an example). If the **force-integer** attribute is
- set to *yes* (the default is *no*), the generated target language code will
- use the target language integers instead of enums. And finally, the
- **extensible** attribute specifies whether the given enum can be extended
- with user values (the default is *no*).
+The *optional* **python-type** attribute specifies the underlying
+Python type.
- The *optional* **since** value is used to specify the API version of this type.
+The *optional* **cpp-type** attribute specifies a C++ to be used for
+casting values. This can be useful for large values triggering MSVC
+signedness issues.
- The attribute **identified-by-value** helps to specify anonymous enums using the
- name of one of their values, which is unique for the anonymous enum scope.
- Notice that the **enum-type** tag can either have **name** or **identified-by-value**
- but not both.
+The *optional* **doc-file** attribute specifies the base name of the C++ or
+``.qdoc`` file indicated by ``\relates`` or ``\headerfile`` in ``qdoc``, to
+which the documentation of the enumeration is to be added and displayed in the
+case its a global enumeration. This attribute is for ``qdoc`` only.
- The **revision** attribute can be used to specify a revision for each type, easing the
- production of ABI compatible bindings.
+The **revision** attribute can be used to specify a revision for each type, easing the
+production of ABI compatible bindings.
- The **flags-revision** attribute has the same purposes of **revision** attribute but
- is used for the QFlag related to this enum.
+The **flags-revision** attribute has the same purposes of **revision** attribute but
+is used for the QFlag related to this enum.
.. _reject-enum-value:
reject-enum-value
^^^^^^^^^^^^^^^^^
- The ``reject-enum-value`` node rejects the enum value specified by the
- **name** attribute, and it is a child of the :ref:`enum-type` node.
+The ``reject-enum-value`` node rejects the enum value specified by the
+**name** attribute, and it is a child of the :ref:`enum-type` node.
- .. code-block:: xml
+.. code-block:: xml
- <enum-type>
- <reject-enum-value name="..."/>
- </enum-type>
+ <enum-type>
+ <reject-enum-value name="..."/>
+ </enum-type>
- This node is used when a C++ enum implementation has several identical numeric
- values, some of which are typically obsolete.
+This node is used when a C++ enum implementation has several identical numeric
+values, some of which are typically obsolete.
.. _value-type:
value-type
^^^^^^^^^^
- The ``value-type`` node indicates that the given C++ type is mapped onto the target
- language as a value type. This means that it is an object passed by value on C++,
- i.e. it is stored in the function call stack. It is a child of the :ref:`typesystem`
- node or other type nodes and may contain :ref:`add-function`,
- :ref:`declare-function`, :ref:`conversion-rule`, :ref:`enum-type`,
- :ref:`extra-includes`, :ref:`modify-function`, :ref:`object-type`,
- :ref:`smart-pointer-type`, :ref:`typedef-type` or further ``value-type``
- child nodes.
-
- .. code-block:: xml
-
- <typesystem>
- <value-type name="..." since="..."
- copyable="yes | no"
- allow-thread="..."
- disable-wrapper="yes | no"
- exception-handling="..."
- isNull ="yes | no"
- operator-bool="yes | no"
- hash-function="..."
- private="yes | no"
- stream="yes | no"
- default-constructor="..."
- revision="..."
- snake-case="yes | no | both" />
- </typesystem>
+The ``value-type`` node indicates that the given C++ type is mapped onto the target
+language as a value type. This means that it is an object passed by value on C++,
+i.e. it is stored in the function call stack. It is a child of the :ref:`typesystem`
+node or other type nodes and may contain :ref:`add-function`, :ref:`add-pymethoddef`,
+:ref:`configuration-element`, :ref:`declare-function`, :ref:`conversion-rule`,
+:ref:`enum-type`, :ref:`extra-includes`, :ref:`include-element`, :ref:`modify-function`,
+:ref:`object-type`, :ref:`smart-pointer-type`, :ref:`typedef-type` or further
+``value-type`` child nodes.
- The **name** attribute is the fully qualified C++ class name, such as
- "QMatrix" or "QPainterPath::Element". The **copyable** attribute is used to
- force or not specify if this type is copyable. The *optional* **hash-function**
- attribute informs the function name of a hash function for the type.
+.. code-block:: xml
- The *optional* attribute **stream** specifies whether this type will be able to
- use externally defined operators, like QDataStream << and >>. If equals to **yes**,
- these operators will be called as normal methods within the current class.
+ <typesystem>
+ <value-type name="..." since="..."
+ copyable="yes | no"
+ allow-thread="..."
+ disable-wrapper="yes | no"
+ exception-handling="..."
+ generate-functions="..."
+ isNull ="yes | no"
+ operator-bool="yes | no"
+ hash-function="..."
+ private="yes | no"
+ qt-register-metatype = "yes | no | base"
+ stream="yes | no"
+ default-constructor="..."
+ revision="..."
+ snake-case="yes | no | both" />
+ </typesystem>
- The *optional* **since** value is used to specify the API version of this type.
+The **name** attribute is the fully qualified C++ class name, such as
+"QMatrix" or "QPainterPath::Element". The **copyable** attribute is used to
+force or not specify if this type is copyable. The *optional* **hash-function**
+attribute informs the function name of a hash function for the type.
- The *optional* **default-constructor** specifies the minimal constructor
- call to build one instance of the value-type. This is not needed when the
- value-type may be built with a default constructor (the one without arguments).
- Usually a code generator may guess a minimal constructor for a value-type based
- on its constructor signatures, thus **default-constructor** is used only in
- very odd cases.
+The *optional* attribute **stream** specifies whether this type will be able to
+use externally defined operators, like QDataStream << and >>. If equals to **yes**,
+these operators will be called as normal methods within the current class.
- For the *optional* **disable-wrapper** attribute, see :ref:`object-type`.
+The *optional* **since** value is used to specify the API version of this type.
- For the *optional* **private** attribute, see :ref:`private_types`.
+The *optional* **default-constructor** specifies the minimal constructor
+call to build one instance of the value-type. This is not needed when the
+value-type may be built with a default constructor (the one without arguments).
+Usually a code generator may guess a minimal constructor for a value-type based
+on its constructor signatures, thus **default-constructor** is used only in
+very odd cases.
- The **revision** attribute can be used to specify a revision for each type, easing the
- production of ABI compatible bindings.
+For the *optional* **disable-wrapper** and **generate-functions**
+attributes, see :ref:`object-type`.
- The *optional* attributes **allow-thread** and **exception-handling**
- specify the default handling for the corresponding function modification
- (see :ref:`modify-function`).
+For the *optional* **private** attribute, see :ref:`private_types`.
- The *optional* **snake-case** attribute allows for overriding the value
- specified on the **typesystem** element.
+The *optional* **qt-register-metatype** attribute determines whether
+a Qt meta type registration is generated for ``name``. By
+default, this is generated for non-abstract, default-constructible
+types for usage in signals and slots.
+The value ``base`` means that the registration will be generated for the
+class in question but not for inheriting classes. This allows for
+restricting the registration to base classes of type hierarchies.
- The *optional* **isNull** and **operator-bool** attributes can be used
- to override the command line setting for generating bool casts
- (see :ref:`bool-cast`).
+The **revision** attribute can be used to specify a revision for each type, easing the
+production of ABI compatible bindings.
-.. _object-type:
+The *optional* attributes **allow-thread** and **exception-handling**
+specify the default handling for the corresponding function modification
+(see :ref:`modify-function`).
-object-type
-^^^^^^^^^^^
+The *optional* **snake-case** attribute allows for overriding the value
+specified on the **typesystem** element.
- The object-type node indicates that the given C++ type is mapped onto the target
- language as an object type. This means that it is an object passed by pointer on
- C++ and it is stored on the heap. It is a child of the :ref:`typesystem` node
- or other type nodes and may contain :ref:`add-function`,
- :ref:`declare-function`, :ref:`enum-type`, :ref:`extra-includes`,
- :ref:`modify-function`, ``object-type``, :ref:`smart-pointer-type`,
- :ref:`typedef-type` or :ref:`value-type` child nodes.
-
- .. code-block:: xml
-
- <typesystem>
- <object-type name="..."
- since="..."
- copyable="yes | no"
- allow-thread="..."
- disable-wrapper="yes | no"
- exception-handling="..."
- force-abstract="yes | no"
- hash-function="..."
- isNull ="yes | no"
- operator-bool="yes | no"
- private="yes | no"
- stream="yes | no"
- revision="..."
- snake-case="yes | no | both" />
- </typesystem>
+The *optional* **isNull** and **operator-bool** attributes can be used
+to override the command line setting for generating bool casts
+(see :ref:`bool-cast`).
- The **name** attribute is the fully qualified C++ class name. If there is no
- C++ base class, the default-superclass attribute can be used to specify a
- superclass for the given type, in the generated target language API. The
- **copyable** and **hash-function** attributes are the same as described for
- :ref:`value-type`.
+.. _object-type:
- The *optional* **force-abstract** attribute forces the class to be
- abstract, disabling its instantiation. The generator will normally detect
- this automatically unless the class inherits from an abstract base class
- that is not in the type system.
+object-type
+^^^^^^^^^^^
- The *optional* **disable-wrapper** attribute disables the generation of a
- **C++ Wrapper** (see :ref:`codegenerationterminology`). This will
- effectively disable overriding virtuals methods in Python for the class.
- It can be used when the class cannot be instantiated from Python and
- its virtual methods pose some problem for the code generator (by returning
- references, or using a default value that cannot be generated for a
- parameter, or similar).
+The object-type node indicates that the given C++ type is mapped onto the target
+language as an object type. This means that it is an object passed by pointer on
+C++ and it is stored on the heap. It is a child of the :ref:`typesystem` node
+or other type nodes and may contain :ref:`add-function`, :ref:`add-pymethoddef`,
+:ref:`configuration-element`, :ref:`declare-function`, :ref:`enum-type`,
+:ref:`extra-includes`, :ref:`include-element`, :ref:`modify-function`,
+``object-type``, :ref:`smart-pointer-type`, :ref:`typedef-type` or
+:ref:`value-type` child nodes.
- For the *optional* **private** attribute, see :ref:`private_types`.
+.. code-block:: xml
- The *optional* attribute **stream** specifies whether this type will be able to
- use externally defined operators, like QDataStream << and >>. If equals to **yes**,
- these operators will be called as normal methods within the current class.
+ <typesystem>
+ <object-type name="..."
+ since="..."
+ copyable="yes | no"
+ allow-thread="..."
+ disable-wrapper="yes | no"
+ exception-handling="..."
+ generate-functions="..."
+ force-abstract="yes | no"
+ hash-function="..."
+ isNull ="yes | no"
+ operator-bool="yes | no"
+ parent-management="yes | no"
+ polymorphic-id-expression="..."
+ polymorphic-name-function="..."
+ polymorphic-base="yes | no"
+ private="yes | no"
+ qt-metaobject="yes | no"
+ qt-register-metatype = "yes | no | base"
+ stream="yes | no"
+ revision="..."
+ snake-case="yes | no | both" />
+ </typesystem>
- The *optional* **since** value is used to specify the API version of this type.
+The **name** attribute is the fully qualified C++ class name. If there is no
+C++ base class, the default-superclass attribute can be used to specify a
+superclass for the given type, in the generated target language API. The
+**copyable** and **hash-function** attributes are the same as described for
+:ref:`value-type`.
+
+The *optional* **force-abstract** attribute forces the class to be
+abstract, disabling its instantiation. The generator will normally detect
+this automatically unless the class inherits from an abstract base class
+that is not in the type system.
+
+The *optional* **disable-wrapper** attribute disables the generation of a
+**C++ Wrapper** (see :ref:`codegenerationterminology`). This will
+effectively disable overriding virtuals methods in Python for the class.
+It can be used when the class cannot be instantiated from Python and
+its virtual methods pose some problem for the code generator (by returning
+references, or using a default value that cannot be generated for a
+parameter, or similar).
+
+For the *optional* **private** attribute, see :ref:`private_types`.
+
+The *optional* **qt-metaobject** attribute specifies whether
+the special Qt virtual functions ``metaObject()``,
+``metaCall()``, and ``metaCast()`` are generated. For classes
+using dynamic meta objects, for example, ``QDBusInterface``,
+it can be turned off.
+
+The *optional* **qt-register-metatype** attribute determines whether
+a Qt meta type registration is generated for ``name *``. By
+default, this is only generated for non-QObject types for usage
+in signals and slots.
+The value ``base`` means that the registration will be generated for the
+class in question but not for inheriting classes. This allows for
+restricting the registration to base classes of type hierarchies.
+
+The *optional* attribute **stream** specifies whether this type will be able to
+use externally defined operators, like QDataStream << and >>. If equals to **yes**,
+these operators will be called as normal methods within the current class.
+
+The *optional* **since** value is used to specify the API version of this type.
+
+The **revision** attribute can be used to specify a revision for each type, easing the
+production of ABI compatible bindings.
+
+The *optional* attributes **allow-thread** and **exception-handling**
+specify the default handling for the corresponding function modification
+(see :ref:`modify-function`).
+
+The *optional* **generate-functions** specifies a semicolon-separated
+list of function names or minimal signatures to be generated.
+This allows for restricting the functions for which bindings are generated.
+This also applies to virtual functions; so, all abstract functions
+need to be listed to prevent non-compiling code to be generated.
+If nothing is specified, bindings for all suitable functions are
+generated. Note that special functions (constructors, etc),
+cannot be specified.
+
+The *optional* **snake-case** attribute allows for overriding the value
+specified on the **typesystem** element.
+
+The *optional* **isNull** and **operator-bool** attributes can be used
+to override the command line setting for generating bool casts
+(see :ref:`bool-cast`).
+
+The *optional* **parent-management** attribute specifies that the class is
+used for building object trees consisting of parents and children, for
+example, user interfaces like the ``QWidget`` classes. For those classes,
+the heuristics enabled by :ref:`ownership-parent-heuristics` and
+:ref:`return-value-heuristics` are applied to automatically set parent
+relationships. Compatibility note: In shiboken 6, when no class of the
+type system has this attribute set, the heuristics will be applied
+to all classes. In shiboken 7, it will be mandatory to set the
+attribute.
+
+The *optional* **polymorphic-id-expression** attribute specifies an
+expression checking whether a base class pointer is of the matching
+type. For example, in a ``virtual eventHandler(BaseEvent *e)``
+function, this is used to construct a Python wrapper matching
+the derived class (for example, a ``MouseEvent`` or similar).
+The attribute value may contain placeholders:
+
+%1
+ Fully qualified class name
+
+%B
+ Fully qualified name of the base class (found by base class
+ search or as indicated by **polymorphic-base**).
+
+To check for a class inheriting ``BaseEvent``, specify:
- The **revision** attribute can be used to specify a revision for each type, easing the
- production of ABI compatible bindings.
+.. code-block:: xml
- The *optional* attributes **allow-thread** and **exception-handling**
- specify the default handling for the corresponding function modification
- (see :ref:`modify-function`).
+ <object-type name="MouseEvent"
+ polymorphic-id-expression="%B-&gt;type() == BaseEvent::MouseEvent"/>
- The *optional* **snake-case** attribute allows for overriding the value
- specified on the **typesystem** element.
+The *optional* **polymorphic-name-function** specifies the name of a
+function returning the type name of a derived class on the base class
+type entry. Normally, ``typeid(ptr).name()`` is used for this.
+However, this fails if the type hierarchy does not have virtual functions.
+In this case, a function is required which typically decides depending
+on some type enumeration.
- The *optional* **isNull** and **operator-bool** attributes can be used
- to override the command line setting for generating bool casts
- (see :ref:`bool-cast`).
+The *optional* **polymorphic-base** attribute indicates
+whether the class is the base class of a class hierarchy
+(used for the *%B* placeholder in **polymorphic-id-expression**).
interface-type
^^^^^^^^^^^^^^
- This type is deprecated and no longer has any effect. Use object-type instead.
+This type is deprecated and no longer has any effect. Use object-type instead.
.. _container-type:
container-type
^^^^^^^^^^^^^^
- The ``container-type`` node indicates that the given class is a container and
- must be handled using one of the conversion helpers provided by attribute **type**.
- It is a child of the :ref:`typesystem` node and may contain
- :ref:`conversion-rule` child nodes.
+The ``container-type`` node indicates that the given class is a container and
+must be handled using one of the conversion helpers provided by attribute **type**.
+It is a child of the :ref:`typesystem` node and may contain
+:ref:`conversion-rule` child nodes.
- .. code-block:: xml
+.. code-block:: xml
- <typesystem>
- <container-type name="..."
- since="..."
- type ="..." />
- </typesystem>
+ <typesystem>
+ <container-type name="..."
+ since="..."
+ type ="..."
+ opaque-containers ="..." />
+ </typesystem>
+
+The **name** attribute is the fully qualified C++ class name. The **type**
+attribute is used to indicate what conversion rule will be applied to the
+container. It can be one of: *list*, *set*, *map*, *multi-map* or *pair*.
+
+Some types were deprecated in 6.2: *string-list*, *linked-list*, *vector*,
+*stack* and *queue* are equivalent to *list*. *hash* and *multi-hash*
+are equivalent to *map* and *multi-map*, respectively.
+
+The *optional* **opaque-containers** attribute specifies a semi-colon separated
+list of mappings from instantiations to a type name for
+:ref:`opaque-containers`:
+
+.. code-block:: xml
+
+ <typesystem>
+ <container-type name="std::array"
+ opaque-containers ="int,3:IntArray3;float,4:FloatArray4">
- The **name** attribute is the fully qualified C++ class name. The **type**
- attribute is used to indicate what conversion rule will be applied to the
- container. It can be one of: *list*, *set*, *map*, *multi-map* or *pair*.
- Some types were deprecated in 6.2: *string-list*, *linked-list*, *vector*,
- *stack* and *queue* are equivalent to *list*. *hash* and *multi-hash*
- are equivalent to *map* and *multi-map*, respectively.
+The *optional* **since** value is used to specify the API version of this container.
- The *optional* **since** value is used to specify the API version of this container.
+Some common standard containers are :ref:`built-in <builtin-cpp-container-types>`,
+and there are also a number of useful
+:ref:`predefined conversion templates <predefined_templates>`.
+
+.. _opaque-container:
+
+opaque-container
+^^^^^^^^^^^^^^^^
+
+The ``opaque-container`` element can be used to add further instantiations
+of :ref:`opaque containers <opaque-containers>` to existing container types
+(built-in or specified by :ref:`container-type` in included modules).
+It is a child of the :ref:`typesystem` node.
+
+.. code-block:: xml
+
+ <typesystem>
+ <oqaque-container name="..." opaque-containers ="..." />
+ </typesystem>
+
+For the **name** and **opaque-containers** attributes,
+see :ref:`container-type`.
.. _typedef-type:
typedef-type
^^^^^^^^^^^^
- The ``typedef-type`` node allows for specifying typedefs in the typesystem. They
- are mostly equivalent to spelling out the typedef in the included header, which
- is often complicated when trying to wrap libraries whose source code cannot be
- easily extended.
- It is a child of the :ref:`typesystem` node or other type nodes.
+The ``typedef-type`` node allows for specifying typedefs in the typesystem. They
+are mostly equivalent to spelling out the typedef in the included header, which
+is often complicated when trying to wrap libraries whose source code cannot be
+easily extended.
+It is a child of the :ref:`typesystem` node or other type nodes.
- .. code-block:: xml
+.. code-block:: xml
- <typesystem>
- <typedef-type name="..."
- source="..."
- since="..." />
- </typesystem>
+ <typesystem>
+ <typedef-type name="..."
+ source="..."
+ since="..." />
+ </typesystem>
- The **source** attribute is the source. Example:
+The **source** attribute is the source. Example:
- .. code-block:: xml
+.. code-block:: xml
- <namespace-type name='std'>
- <value-type name='optional' generate='no'/>\n"
- </namespace-type>
- <typedef-type name="IntOptional" source="std::optional&lt;int&gt;"/>
+ <namespace-type name='std'>
+ <value-type name='optional' generate='no'/>\n"
+ </namespace-type>
+ <typedef-type name="IntOptional" source="std::optional&lt;int&gt;"/>
- is equivalent to
+is equivalent to
- .. code-block:: c++
+.. code-block:: c++
- typedef std::optional<int> IntOptional;
+ typedef std::optional<int> IntOptional;
- The *optional* **since** value is used to specify the API version of this type.
+The *optional* **since** value is used to specify the API version of this type.
.. _custom-type:
custom-type
^^^^^^^^^^^
- The ``custom-type`` node simply makes the parser aware of the existence of a target
- language type, thus avoiding errors when trying to find a type used in function
- signatures and other places. The proper handling of the custom type is meant to
- be done by a generator using the APIExractor.
- It is a child of the :ref:`typesystem` node.
+The ``custom-type`` node simply makes the parser aware of the existence of a target
+language type, thus avoiding errors when trying to find a type used in function
+signatures and other places. The proper handling of the custom type is meant to
+be done by a generator using the APIExractor.
+It is a child of the :ref:`typesystem` node.
- .. code-block:: xml
+.. code-block:: xml
- <typesystem>
- <custom-type name="..."
- check-function="..." />
- </typesystem>
+ <typesystem>
+ <custom-type name="..."
+ check-function="..." />
+ </typesystem>
- The **name** attribute is the name of the custom type, e.g., "PyObject".
+The **name** attribute is the name of the custom type, e.g., "PyObject".
- The *optional* **check-function** attribute can be used to specify a
- boolean check function that verifies if the PyObject is of the given type
- in the function overload decisor. While shiboken knows common check
- functions like ``PyLong_Check()`` or ``PyType_Check()``, it might be useful
- to provide one for function arguments modified to be custom types
- handled by injected code (see :ref:`replace-type`).
+The *optional* **check-function** attribute can be used to specify a
+boolean check function that verifies if the PyObject is of the given type
+in the function overload decisor. While shiboken knows common check
+functions like ``PyLong_Check()`` or ``PyType_Check()``, it might be useful
+to provide one for function arguments modified to be custom types
+handled by injected code (see :ref:`replace-type`).
+
+See :ref:`cpython-types` for built-in types.
.. _smart-pointer-type:
smart-pointer-type
^^^^^^^^^^^^^^^^^^
- The ``smart pointer`` type node indicates that the given class is a smart pointer
- and requires inserting calls to **getter** to access the pointeee.
- Currently, only the **type** *shared* is supported and the usage is limited
- to function return values.
- **ref-count-method** specifies the name of the method used to do reference counting.
- It is a child of the :ref:`typesystem` node or other type nodes.
-
- The *optional* attribute **instantiations** specifies for which instantiations
- of the smart pointer wrappers will be generated (comma-separated list).
- By default, this will happen for all instantiations found by code parsing.
- This might be a problem when linking different modules, since wrappers for the
- same instantiation might be generated into different modules, which then clash.
- Providing an instantiations list makes it possible to specify which wrappers
- will be generated into specific modules.
-
- .. code-block:: xml
-
- <typesystem>
- <smart-pointer-type name="..."
- since="..."
- type="..."
- getter="..."
- ref-count-method="..."
- instantiations="..."/>
- </typesystem>
+The ``smart pointer`` type node indicates that the given class is a smart pointer
+and requires inserting calls to **getter** to access the pointeee.
+Currently, the usage is limited to function return values.
+**ref-count-method** specifies the name of the method used to do reference counting.
+It is a child of the :ref:`typesystem` node or other type nodes.
+
+The *optional* attribute **instantiations** specifies for which instantiations
+of the smart pointer wrappers will be generated (comma-separated list).
+By default, this will happen for all instantiations found by code parsing.
+This might be a problem when linking different modules, since wrappers for the
+same instantiation might be generated into different modules, which then clash.
+Providing an instantiations list makes it possible to specify which wrappers
+will be generated into specific modules.
+
+.. code-block:: xml
+
+ <typesystem>
+ <smart-pointer-type name="..."
+ since="..."
+ type="shared | handle | value-handle | unique"
+ getter="..."
+ ref-count-method="..."
+ value-check-method="..."
+ null-check-method="..."
+ reset-method="..."
+ instantiations="..."/>
+ </typesystem>
+
+
+The *optional* attribute **value-check-method** specifies a method
+that can be used to check whether the pointer has a value.
+
+The *optional* attribute **null-check-method** specifies a method
+that can be used to check for ``nullptr``.
+
+The *optional* attribute **reset-method** specifies a method
+that can be used to clear the pointer.
+
+The *optional* instantiations attribute specifies a comma-separated
+list of instantiation types. When left empty, all instantiations
+found in the code will be generated. The type name might optionally
+be followed an equal sign and the Python type name, for example
+``instantiations="int=IntPtr,double=DoublePtr"``.
+It is also possible to specify a namespace delimited by ``::``.
+
+The *optional* attribute **type** specifies the type:
+
+*shared*
+ A standard shared pointer.
+*handle*
+ A basic pointer handle which has a getter function and an
+ ``operator->``.
+*value-handle*
+ A handle which has a getter function returning a value
+ (``T`` instead of ``T *`` as for the other types).
+ It can be used for ``std::optional``.
+*unique*
+ A standard, unique pointer (``std::unique_ptr``) or a similar
+ movable pointer.
+ Specifying the ``reset-method`` attribute is required for this work.
+
+The example below shows an entry for a ``std::shared_ptr``:
+
+.. code-block:: xml
+
+ <system-include file-name="memory"/>
+
+ <namespace-type name="std">
+ <include file-name="memory" location="global"/>
+ <modify-function signature="^.*$" remove="all"/>
+ <enum-type name="pointer_safety"/>
+ <smart-pointer-type name="shared_ptr" type="shared" getter="get"
+ ref-count-method="use_count"
+ instantiations="Integer">
+ <include file-name="memory" location="global"/>
+ </smart-pointer-type>
+ </namespace-type>
+
+If the smart pointer is the only relevant class from namespace ``std``,
+it can also be hidden:
+
+.. code-block:: xml
+
+ <namespace-type name="std" visible="no">
+ <smart-pointer-type name="shared_ptr" type="shared" getter="get"
+ ref-count-method="use_count"
+ instantiations="Integer">
+ <include file-name="memory" location="global"/>
+ </smart-pointer-type>
+ </namespace-type>
+
+First, shiboken is told to actually parse the system include files
+containing the class definition using the :ref:`system_include`
+element. For the ``namespace-type`` and ``smart-pointer-type``, the
+standard include files are given to override the internal implementation
+header ``shared_ptr.h``.
+This creates some wrapper sources which need to be added to the
+``CMakeLists.txt`` of the module.
.. _function:
function
^^^^^^^^
- The ``function`` node indicates that the given C++ global function is mapped
- onto the target language. It is a child of the :ref:`typesystem` node
- and may contain a :ref:`modify-function` child node.
+The ``function`` node indicates that the given C++ global function is mapped
+onto the target language. It is a child of the :ref:`typesystem` node
+and may contain a :ref:`modify-function` child node.
- .. code-block:: xml
+.. code-block:: xml
- <typesystem>
- <function signature="..." rename="..." since="..." snake-case="yes | no | both" />
- </typesystem>
+ <typesystem>
+ <function signature="..." rename="..." since="..."
+ allow-thread="true | auto | false"
+ doc-file = "..."
+ exception-handling="off | auto-off | auto-on | on"
+ overload-number="number"
+ snake-case="yes | no | both" />
+ </typesystem>
- There is a limitation; you cannot add a function overload using
- the :ref:`add-function` tag to an existent function.
+There is a limitation; you cannot add a function overload using
+the :ref:`add-function` tag to an existent function.
- The *optional* **since** attribute is used to specify the API version in which
- the function was introduced.
+The *optional* **since** attribute is used to specify the API version in which
+the function was introduced.
- The *optional* **rename** attribute is used to modify the function name.
+The *optional* **rename** attribute is used to modify the function name.
- The *optional* **snake-case** attribute allows for overriding the value
- specified on the **typesystem** element.
+The *optional* **doc-file** attribute specifies the base name of the C++ or
+``.qdoc`` file indicated by ``\relates`` or ``\headerfile`` in ``qdoc``, to
+which the documentation of the function is to be added and displayed in the
+case its a global function. This attribute is for ``qdoc`` only.
+
+For the *optional* attributes **allow-thread**, **exception-handling**,
+**overload-number** and **snake-case**, see :ref:`modify-function`.
.. _system_include:
system-include
^^^^^^^^^^^^^^
- The optional **system-include** specifies the name of a system include
- file or a system include path (indicated by a trailing slash) to be
- parsed. Normally, include files considered to be system include
- files are skipped by the C++ code parser. Its primary use case
- is exposing classes from the STL library.
- It is a child of the :ref:`typesystem` node.
+The optional **system-include** specifies the name of a system include
+file or a system include path (indicated by a trailing slash) to be
+parsed. Normally, include files considered to be system include
+files are skipped by the C++ code parser. Its primary use case
+is exposing classes from the STL library.
+It is a child of the :ref:`typesystem` node.
- .. code-block:: xml
+.. code-block:: xml
- <typesystem>
- <system-include file-name="memory"/>
- <system-include file-name="/usr/include/Qt/"/>
- </typesystem>
+ <typesystem>
+ <system-include file-name="memory"/>
+ <system-include file-name="/usr/include/Qt/"/>
+ </typesystem>
.. _conditional_processing:
Conditional Processing
^^^^^^^^^^^^^^^^^^^^^^
- Simple processing instructions are provided for including or excluding
- sections depending on the presence of keywords. The syntax is:
+Simple processing instructions are provided for including or excluding
+sections depending on the presence of keywords. The syntax is:
- .. code-block:: xml
+.. code-block:: xml
- <?if keyword !excluded_keyword ?>
- ...
- <?endif?>
+ <?if keyword !excluded_keyword ?>
+ ...
+ <?endif?>
- There are predefined keywords indicating the operating system (``windows``,
- ``unix`` and ``darwin``). The class names passed to the
- :ref:`--drop-type-entries <drop-type-entries>` command line option
- are also predefined, prefixed by ``no_``. This allows for example
- for enclosing added functions referring to those classes within
- ``<?if !no_ClassName?>``, ``<?endif?>``.
+There are predefined keywords indicating the operating system (``windows``,
+``unix`` and ``darwin``).
- Other keywords can be specified using the
- :ref:`--keywords <conditional_keywords>` command line option.
+The language level passed to the ``language-level`` command line option
+is reflected as ``c++11``, ``c++14``, ``c++17`` or ``c++20``.
+
+The class names passed to the
+:ref:`--drop-type-entries <drop-type-entries>` command line option
+are also predefined, prefixed by ``no_``. This allows for example
+for enclosing added functions referring to those classes within
+``<?if !no_ClassName?>``, ``<?endif?>``.
+
+Other keywords can be specified using the
+:ref:`--keywords <conditional_keywords>` command line option.
.. _private_types:
@@ -639,10 +896,10 @@ Defining Entities
It is possible to define entities using a simple processing instruction:
- .. code-block:: xml
+.. code-block:: xml
- <?entity name value?>
- <text>&name;</text>
+ <?entity name value?>
+ <text>&name;</text>
This allows for defining function signatures depending on platform
in conjunction with :ref:`conditional_processing`.
diff --git a/sources/shiboken6/doc/typesystem_templates.rst b/sources/shiboken6/doc/typesystem_templates.rst
index 795c9d97e..c32eb97d1 100644
--- a/sources/shiboken6/doc/typesystem_templates.rst
+++ b/sources/shiboken6/doc/typesystem_templates.rst
@@ -8,51 +8,126 @@ Using Code Templates
template
^^^^^^^^
- The ``template`` node registers a template that can be used to avoid
- duplicate code when extending the generated code, and it is a child of the
- :ref:`typesystem` node.
+The ``template`` node registers a template that can be used to avoid
+duplicate code when extending the generated code, and it is a child of the
+:ref:`typesystem` node.
- .. code-block:: xml
+.. code-block:: xml
- <typesystem>
- <template name="my_template">
- // the code
- </template>
- </typesystem>
+ <typesystem>
+ <template name="my_template">
+ // the code
+ </template>
+ </typesystem>
- Use the ``insert-template`` node to insert the template code (identified
- by the template's ``name`` attribute) into the generated code base.
+Use the ``insert-template`` node to insert the template code (identified
+by the template's ``name`` attribute) into the generated code base.
.. _insert-template:
insert-template
^^^^^^^^^^^^^^^
- The ``insert-template`` node includes the code template identified by the
- name attribute, and it can be a child of the :ref:`inject-code`,
- :ref:`conversion-rule`, :ref:`template`, ``custom-constructor``
- or ``custom-destructor`` nodes.
+The ``insert-template`` node includes the code template identified by the
+name attribute, and it can be a child of the :ref:`inject-code`,
+:ref:`conversion-rule` or :ref:`template` nodes.
- .. code-block:: xml
+.. code-block:: xml
- <inject-code class="target" position="beginning">
- <insert-template name="my_template" />
- </inject-code>
+ <inject-code class="target" position="beginning">
+ <insert-template name="my_template" />
+ </inject-code>
- Use the ``replace`` node to modify the template code.
+Use the ``replace`` node to modify the template code.
replace
^^^^^^^
- The ``replace`` node allows you to modify template code before inserting it into
- the generated code, and it can be a child of the :ref:`insert-template` node.
+The ``replace`` node allows you to modify template code before inserting it into
+the generated code, and it can be a child of the :ref:`insert-template` node.
- .. code-block:: xml
+.. code-block:: xml
- <insert-template name="my_template">
- <replace from="..." to="..." />
- </insert-template>
+ <insert-template name="my_template">
+ <replace from="..." to="..." />
+ </insert-template>
- This node will replace the attribute ``from`` with the value pointed by
- ``to``.
+This node will replace the attribute ``from`` with the value pointed by
+``to``.
+.. _predefined_templates:
+
+Predefined Templates
+--------------------
+
+There are a number of XML templates for conversion rules for STL and Qt types
+built into shiboken.
+
+Templates for :ref:`primitive-type`:
+
++---------------------------------------+--------------------------------+
+|Name | Description |
++---------------------------------------+--------------------------------+
+| ``shiboken_conversion_pylong_to_cpp`` | Convert a PyLong to a C++ type |
++---------------------------------------+--------------------------------+
+
+Templates for :ref:`container-type`:
+
+Some container types are :ref:`built-in <builtin-cpp-container-types>`.
+In case they need to explicitly specified, the following templates can be used:
+
++----------------------------------------------------------------------+------------------------------------------------------------------------------------+
+| ``shiboken_conversion_pysequence_to_cpppair`` | Convert a PySequence to a C++ pair (std::pair/QPair) |
++----------------------------------------------------------------------+------------------------------------------------------------------------------------+
+| ``shiboken_conversion_cpppair_to_pytuple`` | Convert a C++ pair (std::pair/QPair) to a PyTuple |
++----------------------------------------------------------------------+------------------------------------------------------------------------------------+
+| ``shiboken_conversion_cppsequence_to_pylist`` | Convert a C++ sequential container to a PyList |
++----------------------------------------------------------------------+------------------------------------------------------------------------------------+
+| ``shiboken_conversion_cppsequence_to_pyset`` | Convert a C++ sequential container to a PySet |
++----------------------------------------------------------------------+------------------------------------------------------------------------------------+
+| ``shiboken_conversion_pyiterable_to_cppsequentialcontainer`` | Convert an iterable Python type to a C++ sequential container (STL/Qt) |
++----------------------------------------------------------------------+------------------------------------------------------------------------------------+
+| ``shiboken_conversion_pyiterable_to_cppsequentialcontainer_reserve`` | Convert an iterable Python type to a C++ sequential container supporting reserve() |
++----------------------------------------------------------------------+------------------------------------------------------------------------------------+
+| ``shiboken_conversion_pyiterable_to_cpparray`` | Convert an iterable Python type to a fixed-size array (std::array, std::span) |
++----------------------------------------------------------------------+------------------------------------------------------------------------------------+
+| ``shiboken_conversion_pyiterable_to_cppsetcontainer`` | Convert a PySequence to a set-type C++ container (std::set/QSet) |
++----------------------------------------------------------------------+------------------------------------------------------------------------------------+
+| ``shiboken_conversion_stdmap_to_pydict`` | Convert a std::map/std::unordered_map to a PyDict |
++----------------------------------------------------------------------+------------------------------------------------------------------------------------+
+| ``shiboken_conversion_qmap_to_pydict`` | Convert a QMap/QHash to a PyDict |
++----------------------------------------------------------------------+------------------------------------------------------------------------------------+
+| ``shiboken_conversion_pydict_to_stdmap`` | Convert a PyDict to a std::map/std::unordered_map |
++----------------------------------------------------------------------+------------------------------------------------------------------------------------+
+| ``shiboken_conversion_pydict_to_qmap`` | Convert a PyDict to a QMap/QHash |
++----------------------------------------------------------------------+------------------------------------------------------------------------------------+
+| ``shiboken_conversion_stdmultimap_to_pydict`` | Convert a std::multimap to a PyDict of value lists |
++----------------------------------------------------------------------+------------------------------------------------------------------------------------+
+| ``shiboken_conversion_qmultimap_to_pydict`` | Convert a QMultiMap to a PyDict of value lists |
++----------------------------------------------------------------------+------------------------------------------------------------------------------------+
+| ``shiboken_conversion_stdunorderedmultimap_to_pydict`` | Convert a std::unordered_multimap to a PyDict of value lists |
++----------------------------------------------------------------------+------------------------------------------------------------------------------------+
+| ``shiboken_conversion_qmultihash_to_pydict`` | Convert a QMultiHash to a PyDict of value lists |
++----------------------------------------------------------------------+------------------------------------------------------------------------------------+
+| ``shiboken_conversion_pydict_to_stdmultimap`` | Convert a PyDict of value lists to std::multimap/std::unordered_multimap |
++----------------------------------------------------------------------+------------------------------------------------------------------------------------+
+| ``shiboken_conversion_pydict_to_qmultihash`` | Convert a PyDict of value lists to QMultiMap/QMultiHash |
++----------------------------------------------------------------------+------------------------------------------------------------------------------------+
+
+An entry for the type ``std::list`` using these templates looks like:
+
+.. code-block:: xml
+
+ <container-type name="std::list" type="list">
+ <include file-name="list" location="global"/>
+ <conversion-rule>
+ <native-to-target>
+ <insert-template name="shiboken_conversion_cppsequence_to_pylist"/>
+ </native-to-target>
+ <target-to-native>
+ <add-conversion type="PySequence">
+ <insert-template name="shiboken_conversion_pyiterable_to_cppsequentialcontainer"/>
+ </add-conversion>
+ </target-to-native>
+ </conversion-rule>
+ </container-type>
diff --git a/sources/shiboken6/doc/typesystem_variables.rst b/sources/shiboken6/doc/typesystem_variables.rst
index c6564513b..d40891b9b 100644
--- a/sources/shiboken6/doc/typesystem_variables.rst
+++ b/sources/shiboken6/doc/typesystem_variables.rst
@@ -20,32 +20,30 @@ Variables
.. _cpp_return_argument:
**%0**
-
Replaced by the C++ return variable of the Python method/function wrapper.
.. _arg_number:
**%<number>**
-
Replaced by the name of a C++ argument in the position indicated by ``<number>``.
The argument counting starts with ``%1``, since ``%0`` represents the return
variable name. If the number indicates a variable that was removed in the
type system description, but there is a default value for it, this value will
be used. Consider this example:
- .. code-block:: c++
+ .. code-block:: c++
- void argRemoval(int a0, int a1 = 123);
+ void argRemoval(int a0, int a1 = 123);
- .. code-block:: xml
+ .. code-block:: xml
- <modify-function signature="argRemoval(int, int)">
- <modify-argument index="2">
- <remove-argument/>
- </modify-argument>
- </modify-function>
+ <modify-function signature="argRemoval(int, int)">
+ <modify-argument index="2">
+ <remove-argument/>
+ </modify-argument>
+ </modify-function>
The ``%1`` will be replaced by the C++ argument name, and ``%2`` will get the
value ``123``.
@@ -54,7 +52,6 @@ Variables
.. _argument_names:
**%ARGUMENT_NAMES**
-
Replaced by a comma separated list with the names of all C++ arguments that
were not removed on the type system description for the method/function. When
the removed argument has a default value (original or provided in the type
@@ -66,37 +63,36 @@ Variables
Take the following method and related type system description as an example:
- .. code-block:: c++
+ .. code-block:: c++
- void argRemoval(int a0, Point a1 = Point(1, 2), bool a2 = true, Point a3 = Point(3, 4), int a4 = 56);
+ void argRemoval(int a0, Point a1 = Point(1, 2), bool a2 = true, Point a3 = Point(3, 4), int a4 = 56);
- .. code-block:: xml
+ .. code-block:: xml
- <modify-function signature="argRemoval(int, Point, bool, Point, int)">
- <modify-argument index="2">
- <remove-argument/>
- <replace-default-expression with="Point(6, 9)"/>
- </modify-argument>
- <modify-argument index="4">
- <remove-argument/>
- </modify-argument>
- </modify-function>
+ <modify-function signature="argRemoval(int, Point, bool, Point, int)">
+ <modify-argument index="2">
+ <remove-argument/>
+ <replace-default-expression with="Point(6, 9)"/>
+ </modify-argument>
+ <modify-argument index="4">
+ <remove-argument/>
+ </modify-argument>
+ </modify-function>
As seen on the XML description, the function's ``a1`` and ``a3`` arguments
were removed. If any ``inject-code`` for this function uses ``%ARGUMENT_NAMES``
the resulting list will be the equivalent of using individual argument type
system variables this way:
- .. code-block:: c++
+ .. code-block:: c++
- %1, Point(6, 9), %3, Point(3, 4), %5
+ %1, Point(6, 9), %3, Point(3, 4), %5
.. _arg_type:
**%ARG#_TYPE**
-
Replaced by the type of a C++ argument in the position indicated by ``#``.
The argument counting starts with ``%1``, since ``%0`` represents the return
variable in other contexts, but ``%ARG0_TYPE`` will not translate to the
@@ -104,18 +100,18 @@ Variables
:ref:`%RETURN_TYPE <return_type>` variable.
Example:
- .. code-block:: c++
+ .. code-block:: c++
- void argRemoval(int a0, int a1 = 123);
+ void argRemoval(int a0, int a1 = 123);
- .. code-block:: xml
+ .. code-block:: xml
- <modify-function signature="argRemoval(int, int)">
- <modify-argument index="2">
- <remove-argument/>
- </modify-argument>
- </modify-function>
+ <modify-function signature="argRemoval(int, int)">
+ <modify-argument index="2">
+ <remove-argument/>
+ </modify-argument>
+ </modify-function>
The ``%1`` will be replaced by the C++ argument name, and ``%2`` will get the
value ``123``.
@@ -124,40 +120,38 @@ Variables
.. _converttocpp:
**%CONVERTTOCPP[CPPTYPE]**
-
Replaced by a |project| conversion call that converts a Python variable
to a C++ variable of the type indicated by ``CPPTYPE``.
- Typically, this is a variable assignment:
+ Typically, this is a variable assignment:
- .. code-block:: c++
+ .. code-block:: c++
- double value = %CONVERTTOCPP[double](pyValue);
+ double value = %CONVERTTOCPP[double](pyValue);
- Pointer assignments are also possible:
+ Pointer assignments are also possible:
- .. code-block:: c++
+ .. code-block:: c++
- void f(double *valuePtr)
- {
- *valuePtr = %CONVERTTOCPP[double](pyValue);
+ void f(double *valuePtr)
+ {
+ *valuePtr = %CONVERTTOCPP[double](pyValue);
- Note however, that for variable definitions, the type must
- be a space-delimited token:
+ Note however, that for variable definitions, the type must
+ be a space-delimited token:
- .. code-block:: c++
+ .. code-block:: c++
- double * valuePtr = %CONVERTTOCPP[double](pyValue);
+ double * valuePtr = %CONVERTTOCPP[double](pyValue);
- since it otherwise would be indistinguishable from the pointer assignment
- above.
+ since it otherwise would be indistinguishable from the pointer assignment
+ above.
- It is possible to use "auto" as type.
+ It is possible to use "auto" as type.
.. _converttopython:
**%CONVERTTOPYTHON[CPPTYPE]**
-
Replaced by a |project| conversion call that converts a C++ variable of the
type indicated by ``CPPTYPE`` to the proper Python object.
@@ -165,7 +159,6 @@ Variables
.. _isconvertible:
**%ISCONVERTIBLE[CPPTYPE]**
-
Replaced by a |project| "isConvertible" call that checks if a Python
variable is convertible (via an implicit conversion or cast operator call)
to a C++ variable of the type indicated by ``CPPTYPE``.
@@ -174,7 +167,6 @@ Variables
.. _checktype:
**%CHECKTYPE[CPPTYPE]**
-
Replaced by a |project| "checkType" call that verifies if a Python
if of the type indicated by ``CPPTYPE``.
@@ -182,14 +174,12 @@ Variables
.. _cppself:
**%CPPSELF**
-
Replaced by the wrapped C++ object instance that owns the method in which the
code with this variable was inserted.
.. _cpptype:
**%CPPTYPE**
-
Replaced by the original name of the C++ class, without any namespace prefix,
that owns the method in which the code with this variable was inserted. It will
work on class level code injections also. Notice that ``CPPTYPE`` differs from
@@ -202,22 +192,18 @@ Variables
.. _function_name:
**%FUNCTION_NAME**
-
Replaced by the name of a function or method.
-
.. _py_return_argument:
**%PYARG_0**
-
Replaced by the name of the Python return variable of the Python method/function wrapper.
.. _pyarg:
**%PYARG_<number>**
-
Similar to ``%<number>``, but is replaced by the Python arguments (PyObjects)
received by the Python wrapper method.
@@ -228,16 +214,16 @@ Variables
The example
- .. code-block:: c++
+ .. code-block:: c++
- long a = PyLong_AS_LONG(%PYARG_1);
+ long a = PyLong_AS_LONG(%PYARG_1);
is equivalent of
- .. code-block:: c++
+ .. code-block:: c++
- long a = PyLong_AS_LONG(PyTuple_GET_ITEM(%PYTHON_ARGUMENTS, 0));
+ long a = PyLong_AS_LONG(PyTuple_GET_ITEM(%PYTHON_ARGUMENTS, 0));
The generator tries to be smart with attributions, but it will work for the
@@ -245,24 +231,23 @@ Variables
This example
- .. code-block:: c++
+ .. code-block:: c++
- Py_DECREF(%PYARG_1);
- %PYARG_1 = PyLong_FromLong(10);
+ Py_DECREF(%PYARG_1);
+ %PYARG_1 = PyLong_FromLong(10);
is equivalent of
- .. code-block:: c++
+ .. code-block:: c++
- Py_DECREF(PyTuple_GET_ITEM(%PYTHON_ARGUMENTS, 0));
- PyTuple_SET_ITEM(%PYTHON_ARGUMENTS, 0, PyLong_FromLong(10));
+ Py_DECREF(PyTuple_GET_ITEM(%PYTHON_ARGUMENTS, 0));
+ PyTuple_SET_ITEM(%PYTHON_ARGUMENTS, 0, PyLong_FromLong(10));
.. _pyself:
**%PYSELF**
-
Replaced by the Python wrapper variable (a PyObject) representing the instance
bounded to the Python wrapper method which receives the custom code.
@@ -270,7 +255,6 @@ Variables
.. _python_arguments:
**%PYTHON_ARGUMENTS**
-
Replaced by the pointer to the Python tuple with Python objects converted from
the C++ arguments received on the binding override of a virtual method.
This tuple is the same passed as arguments to the Python method overriding the
@@ -280,7 +264,6 @@ Variables
.. _python_method_override:
**%PYTHON_METHOD_OVERRIDE**
-
This variable is used only on :ref:`native method code injections
<codeinjecting_method_native>`, i.e. on the binding overrides for C++ virtual
methods. It is replaced by a pointer to the Python method override.
@@ -289,7 +272,6 @@ Variables
.. _pythontypeobject:
**%PYTHONTYPEOBJECT**
-
Replaced by the Python type object for the context in which it is inserted:
method or class modification.
@@ -297,7 +279,6 @@ Variables
.. _beginallowthreads:
**%BEGIN_ALLOW_THREADS**
-
Replaced by a thread state saving procedure.
Must match with a :ref:`%END_ALLOW_THREADS <endallowthreads>` variable.
@@ -305,7 +286,6 @@ Variables
.. _endallowthreads:
**%END_ALLOW_THREADS**
-
Replaced by a thread state restoring procedure.
Must match with a :ref:`%BEGIN_ALLOW_THREADS <beginallowthreads>` variable.
@@ -313,14 +293,12 @@ Variables
.. _return_type:
**%RETURN_TYPE**
-
Replaced by the type returned by a function or method.
.. _type:
**%TYPE**
-
Replaced by the name of the class to which a function belongs. May be used
in code injected at method or class level.
@@ -335,27 +313,27 @@ sections, below is an excerpt from the type system description of a |project|
test. It changes a method that received ``argc/argv`` arguments into something
that expects a Python sequence instead.
- .. code-block:: xml
-
- <modify-function signature="overloadedMethod(int, char**)">
- <modify-argument index="1">
- <replace-type modified-type="PySequence" />
- </modify-argument>
- <modify-argument index="2">
- <remove-argument />
- </modify-argument>
- <inject-code class="target" position="beginning">
- int argc;
- char** argv;
- if (!PySequence_to_argc_argv(%PYARG_1, &amp;argc, &amp;argv)) {
- PyErr_SetString(PyExc_TypeError, "error");
- return 0;
- }
- %RETURN_TYPE foo = %CPPSELF.%FUNCTION_NAME(argc, argv);
- %0 = %CONVERTTOPYTHON[%RETURN_TYPE](foo);
-
- for (int i = 0; i &lt; argc; ++i)
- delete[] argv[i];
- delete[] argv;
- </inject-code>
- </modify-function>
+.. code-block:: xml
+
+ <modify-function signature="overloadedMethod(int, char**)">
+ <modify-argument index="1">
+ <replace-type modified-type="PySequence" />
+ </modify-argument>
+ <modify-argument index="2">
+ <remove-argument />
+ </modify-argument>
+ <inject-code class="target" position="beginning">
+ int argc;
+ char** argv;
+ if (!PySequence_to_argc_argv(%PYARG_1, &amp;argc, &amp;argv)) {
+ PyErr_SetString(PyExc_TypeError, "error");
+ return 0;
+ }
+ %RETURN_TYPE foo = %CPPSELF.%FUNCTION_NAME(argc, argv);
+ %0 = %CONVERTTOPYTHON[%RETURN_TYPE](foo);
+
+ for (int i = 0; i &lt; argc; ++i)
+ delete[] argv[i];
+ delete[] argv;
+ </inject-code>
+ </modify-function>
diff --git a/sources/shiboken6/generator/CMakeLists.txt b/sources/shiboken6/generator/CMakeLists.txt
index 0296138e5..aebe2cd5e 100644
--- a/sources/shiboken6/generator/CMakeLists.txt
+++ b/sources/shiboken6/generator/CMakeLists.txt
@@ -1,17 +1,46 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(shibokengenerator)
+set(package_name "Shiboken6Tools")
+
+set(CMAKE_AUTOMOC ON)
+
+if(NOT (Qt${QT_MAJOR_VERSION}Core_FOUND AND Python_Interpreter_FOUND))
+ message(WARNING "Some dependencies were not found: shiboken6 generator compilation disabled!")
+ return()
+endif()
set(shiboken6_SRC
-generator.cpp
-shiboken/cppgenerator.cpp
-shiboken/headergenerator.cpp
-shiboken/overloaddata.cpp
-shiboken/shibokengenerator.cpp
+defaultvalue.cpp defaultvalue.h
+generator.cpp generator.h
+generatorcontext.cpp generatorcontext.h
main.cpp
+shiboken/configurablescope.h
+shiboken/cppgenerator.cpp shiboken/cppgenerator.h
+shiboken/cppgenerator_container.cpp
+shiboken/cppgenerator_smartpointer.cpp
+shiboken/ctypenames.h
+shiboken/generatorargument.cpp shiboken/generatorargument.h shiboken/generatorstrings.h
+shiboken/headergenerator.cpp shiboken/headergenerator.h
+shiboken/overloaddata.cpp shiboken/overloaddata.h
+shiboken/pytypenames.h
+shiboken/shibokengenerator.cpp shiboken/shibokengenerator.h
)
+find_libclang()
+
+if(${STANDALONE})
+ list(APPEND CMAKE_INSTALL_RPATH ${base}/Qt/lib)
+else()
+ list(APPEND CMAKE_INSTALL_RPATH ${QT6_INSTALL_PREFIX}/${QT6_INSTALL_LIBS}
+ ${libclang_lib_dir})
+endif()
+
add_executable(shiboken6 ${shiboken6_SRC})
add_executable(Shiboken6::shiboken6 ALIAS shiboken6)
add_dependencies(shiboken6 apiextractor)
+
set_target_properties(shiboken6 PROPERTIES OUTPUT_NAME shiboken6${shiboken6_SUFFIX})
target_include_directories(shiboken6 PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/shiboken
@@ -20,17 +49,24 @@ target_include_directories(shiboken6 PRIVATE
${CMAKE_CURRENT_BINARY_DIR}
${apiextractor_SOURCE_DIR}
)
-target_link_libraries(shiboken6 apiextractor Qt${QT_MAJOR_VERSION}::Core)
+target_link_libraries(shiboken6 apiextractor Qt::Core)
if (NOT DISABLE_DOCSTRINGS)
- target_sources(shiboken6 PRIVATE qtdoc/qtxmltosphinx.cpp qtdoc/qtdocgenerator.cpp)
- target_compile_definitions(shiboken6 PUBLIC DOCSTRINGS_ENABLED)
+ target_sources(shiboken6 PRIVATE
+ qtdoc/qtdocgenerator.cpp qtdoc/qtdocgenerator.h
+ qtdoc/qtxmltosphinx.cpp qtdoc/qtxmltosphinx.h
+ qtdoc/qtxmltosphinxinterface.h
+ qtdoc/rstformat.h)
+ target_compile_definitions(shiboken6 PUBLIC DOCSTRINGS_ENABLED QT_LEAN_HEADERS=1)
endif()
configure_file(shibokenconfig.h.in "${CMAKE_CURRENT_BINARY_DIR}/shibokenconfig.h" @ONLY)
install(TARGETS shiboken6
- EXPORT Shiboken6Targets
- DESTINATION "${CMAKE_INSTALL_PREFIX}/bin")
+ EXPORT "${package_name}Targets"
+ DESTINATION "bin")
+install(EXPORT "${package_name}Targets"
+ NAMESPACE "Shiboken6::"
+ DESTINATION ${LIB_INSTALL_DIR}/cmake/${package_name})
set(shiboken_generator_package_name "shiboken6_generator")
@@ -61,3 +97,25 @@ configure_file("${shiboken_version_path}"
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/_git_shiboken_generator_version.py"
DESTINATION "${PYTHON_SITE_PACKAGES}/${shiboken_generator_package_name}")
+
+include(CMakePackageConfigHelpers)
+
+# Single build-tree and install-tree Config file. There's no need for separate ones because we
+# don't specify any PATH_VARS, so the relative path of PACKAGE_PREFIX_DIR does not really matter.
+configure_package_config_file(
+ "${CMAKE_CURRENT_SOURCE_DIR}/../data/${package_name}Config.cmake.in"
+ "${CMAKE_CURRENT_BINARY_DIR}/${package_name}Config.cmake"
+ INSTALL_DESTINATION "${LIB_INSTALL_DIR}/cmake/${package_name}"
+)
+write_basic_package_version_file(
+ "${CMAKE_CURRENT_BINARY_DIR}/${package_name}ConfigVersion.cmake"
+ VERSION "${shiboken6_VERSION}"
+ COMPATIBILITY AnyNewerVersion
+ ARCH_INDEPENDENT
+)
+
+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${package_name}Config.cmake"
+ DESTINATION "${LIB_INSTALL_DIR}/cmake/${package_name}")
+
+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${package_name}ConfigVersion.cmake"
+ DESTINATION "${LIB_INSTALL_DIR}/cmake/${package_name}")
diff --git a/sources/shiboken6/generator/_config.py.in b/sources/shiboken6/generator/_config.py.in
index 985735fa4..ed7e67098 100644
--- a/sources/shiboken6/generator/_config.py.in
+++ b/sources/shiboken6/generator/_config.py.in
@@ -7,3 +7,4 @@ version_info = (@shiboken_MAJOR_VERSION@, @shiboken_MINOR_VERSION@, @shiboken_MI
@PACKAGE_BUILD_COMMIT_HASH_DESCRIBED@
@PACKAGE_SETUP_PY_PACKAGE_TIMESTAMP_ASSIGNMENT@
@PACKAGE_SETUP_PY_PACKAGE_VERSION_ASSIGNMENT@
+@QT_MACOS_DEPLOYMENT_TARGET@
diff --git a/sources/shiboken6/generator/defaultvalue.cpp b/sources/shiboken6/generator/defaultvalue.cpp
new file mode 100644
index 000000000..89cc9fa77
--- /dev/null
+++ b/sources/shiboken6/generator/defaultvalue.cpp
@@ -0,0 +1,120 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#include "defaultvalue.h"
+
+#include "qtcompat.h"
+
+#include <QtCore/QDebug>
+
+using namespace Qt::StringLiterals;
+
+// DefaultValue is used for storing default values of types for which code is
+// generated in different contexts:
+//
+// Context | Example: "Class *" | Example: "Class" with default Constructor
+// --------------------+-------------------------------+------------------------------------------
+// Variable | var{nullptr}; | var;
+// initializations | |
+// --------------------+-------------------------------+------------------------------------------
+// Return values | return nullptr; | return {}
+// --------------------+-------------------------------+------------------------------------------
+// constructor | static_cast<Class *>(nullptr) | Class()
+// arguments lists | |
+// (recursive, precise | |
+// matching). | |
+
+DefaultValue::DefaultValue(Type t, QString value) :
+ m_type(t), m_value(std::move(value))
+{
+}
+
+DefaultValue::DefaultValue(QString customValue) :
+ m_type(Custom), m_value(std::move(customValue))
+{
+}
+
+QString DefaultValue::returnValue() const
+{
+ switch (m_type) {
+ case DefaultValue::Boolean:
+ return u"false"_s;
+ case DefaultValue::CppScalar:
+ return u"0"_s;
+ case DefaultValue::Custom:
+ case DefaultValue::Enum:
+ return m_value;
+ case DefaultValue::Pointer:
+ return u"nullptr"_s;
+ case DefaultValue::Void:
+ return {};
+ case DefaultValue::DefaultConstructorWithDefaultValues:
+ return m_value + u"()"_s;
+ case DefaultValue::DefaultConstructor:
+ break;
+ }
+ return u"{}"_s;
+}
+
+QString DefaultValue::initialization() const
+{
+ switch (m_type) {
+ case DefaultValue::Boolean:
+ return u"{false}"_s;
+ case DefaultValue::CppScalar:
+ return u"{0}"_s;
+ case DefaultValue::Custom:
+ return u" = "_s + m_value;
+ case DefaultValue::Enum:
+ return u'{' + m_value + u'}';
+ case DefaultValue::Pointer:
+ return u"{nullptr}"_s;
+ case DefaultValue::Void:
+ Q_ASSERT(false);
+ break;
+ case DefaultValue::DefaultConstructor:
+ case DefaultValue::DefaultConstructorWithDefaultValues:
+ break;
+ }
+ return {};
+}
+
+QString DefaultValue::constructorParameter() const
+{
+ switch (m_type) {
+ case DefaultValue::Boolean:
+ return u"false"_s;
+ case DefaultValue::CppScalar: {
+ // PYSIDE-846: Use static_cast in case of "unsigned long" and similar
+ const QString cast = m_value.contains(u' ')
+ ? u"static_cast<"_s + m_value + u'>'
+ : m_value;
+ return cast + u"(0)"_s;
+ }
+ case DefaultValue::Custom:
+ case DefaultValue::Enum:
+ return m_value;
+ case DefaultValue::Pointer:
+ // Be precise here to be able to differentiate between constructors
+ // taking different pointer types, cf
+ // QTreeWidgetItemIterator(QTreeWidget *) and
+ // QTreeWidgetItemIterator(QTreeWidgetItemIterator *).
+ return u"static_cast<"_s + m_value + u"*>(nullptr)"_s;
+ case DefaultValue::Void:
+ Q_ASSERT(false);
+ break;
+ case DefaultValue::DefaultConstructor:
+ case DefaultValue::DefaultConstructorWithDefaultValues:
+ break;
+ }
+ return m_value + u"()"_s;
+}
+
+QDebug operator<<(QDebug debug, const DefaultValue &v)
+{
+ QDebugStateSaver saver(debug);
+ debug.noquote();
+ debug.nospace();
+ debug << "DefaultValue(" << v.type() << ", \"" << v.value() << "\")";
+ return debug;
+}
diff --git a/sources/shiboken6/generator/defaultvalue.h b/sources/shiboken6/generator/defaultvalue.h
new file mode 100644
index 000000000..d518d134f
--- /dev/null
+++ b/sources/shiboken6/generator/defaultvalue.h
@@ -0,0 +1,46 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef DEFAULTVALUE_H
+#define DEFAULTVALUE_H
+
+#include <QtCore/QString>
+
+QT_FORWARD_DECLARE_CLASS(QDebug);
+
+class DefaultValue
+{
+public:
+ enum Type
+ {
+ Boolean,
+ CppScalar, // A C++ scalar type (int,..) specified by value()
+ Custom, // A custom constructor/expression, uses value() as is
+ DefaultConstructor, // For classes named value()
+ DefaultConstructorWithDefaultValues, // as DefaultConstructor, but can't return {} though.
+ Enum, // Enum value as specified by value()
+ Pointer, // Pointer of type value()
+ Void // "", for return values only
+ };
+
+ explicit DefaultValue(Type t, QString value = QString());
+ explicit DefaultValue(QString customValue);
+
+ QString returnValue() const;
+ QString initialization() const;
+ QString constructorParameter() const;
+
+ QString value() const { return m_value; }
+ void setValue(const QString &value) { m_value = value; }
+
+ Type type() const { return m_type; }
+ void setType(Type type) { m_type = type; }
+
+private:
+ Type m_type;
+ QString m_value;
+};
+
+QDebug operator<<(QDebug debug, const DefaultValue &v);
+
+#endif // DEFAULTVALUE_H
diff --git a/sources/shiboken6/generator/generator.cpp b/sources/shiboken6/generator/generator.cpp
index 6a0183403..b224858c5 100644
--- a/sources/shiboken6/generator/generator.cpp
+++ b/sources/shiboken6/generator/generator.cpp
@@ -1,171 +1,43 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "generator.h"
+#include "defaultvalue.h"
+#include "generatorcontext.h"
#include "apiextractorresult.h"
-#include "ctypenames.h"
+#include "abstractmetaargument.h"
#include "abstractmetaenum.h"
-#include "abstractmetafield.h"
#include "abstractmetafunction.h"
#include "abstractmetalang.h"
-#include "parser/codemodel.h"
#include "messages.h"
+#include <optionsparser.h>
#include "reporthandler.h"
#include "fileout.h"
-#include "apiextractor.h"
-#include "typesystem.h"
+#include "arraytypeentry.h"
+#include "enumtypeentry.h"
+#include "enumvaluetypeentry.h"
+#include "namespacetypeentry.h"
+#include "primitivetypeentry.h"
+#include "typesystemtypeentry.h"
+#include <typedatabase.h>
+
+#include "qtcompat.h"
#include <QtCore/QDir>
#include <QtCore/QFile>
#include <QtCore/QFileInfo>
#include <QtCore/QRegularExpression>
-#include <QDebug>
-#include <typedatabase.h>
-
-/**
- * DefaultValue is used for storing default values of types for which code is
- * generated in different contexts:
- *
- * Context | Example: "Class *" | Example: "Class" with default Constructor
- * --------------------+-------------------------------+------------------------------------------
- * Variable | var{nullptr}; | var;
- * initializations | |
- * --------------------+-------------------------------+------------------------------------------
- * Return values | return nullptr; | return {}
- * --------------------+-------------------------------+------------------------------------------
- * constructor | static_cast<Class *>(nullptr) | Class()
- * arguments lists | |
- * (recursive, precise | |
- * matching). | |
- */
-
-DefaultValue::DefaultValue(Type t, QString value) :
- m_type(t), m_value(std::move(value))
-{
-}
-
-DefaultValue::DefaultValue(QString customValue) :
- m_type(Custom), m_value(std::move(customValue))
-{
-}
-
-QString DefaultValue::returnValue() const
-{
- switch (m_type) {
- case DefaultValue::Boolean:
- return QLatin1String("false");
- case DefaultValue::CppScalar:
- return QLatin1String("0");
- case DefaultValue::Custom:
- case DefaultValue::Enum:
- return m_value;
- case DefaultValue::Pointer:
- return QLatin1String("nullptr");
- case DefaultValue::Void:
- return QString();
- case DefaultValue::DefaultConstructorWithDefaultValues:
- return m_value + QLatin1String("()");
- case DefaultValue::DefaultConstructor:
- break;
- }
- return QLatin1String("{}");
-}
-
-QString DefaultValue::initialization() const
-{
- switch (m_type) {
- case DefaultValue::Boolean:
- return QLatin1String("{false}");
- case DefaultValue::CppScalar:
- return QLatin1String("{0}");
- case DefaultValue::Custom:
- return QLatin1String(" = ") + m_value;
- case DefaultValue::Enum:
- return QLatin1Char('{') + m_value + QLatin1Char('}');
- case DefaultValue::Pointer:
- return QLatin1String("{nullptr}");
- case DefaultValue::Void:
- Q_ASSERT(false);
- break;
- case DefaultValue::DefaultConstructor:
- case DefaultValue::DefaultConstructorWithDefaultValues:
- break;
- }
- return QString();
-}
-QString DefaultValue::constructorParameter() const
-{
- switch (m_type) {
- case DefaultValue::Boolean:
- return QLatin1String("false");
- case DefaultValue::CppScalar: {
- // PYSIDE-846: Use static_cast in case of "unsigned long" and similar
- const QString cast = m_value.contains(QLatin1Char(' '))
- ? QLatin1String("static_cast<") + m_value + QLatin1Char('>')
- : m_value;
- return cast + QLatin1String("(0)");
- }
- case DefaultValue::Custom:
- case DefaultValue::Enum:
- return m_value;
- case DefaultValue::Pointer:
- // Be precise here to be able to differentiate between constructors
- // taking different pointer types, cf
- // QTreeWidgetItemIterator(QTreeWidget *) and
- // QTreeWidgetItemIterator(QTreeWidgetItemIterator *).
- return QLatin1String("static_cast<") + m_value + QLatin1String("*>(nullptr)");
- case DefaultValue::Void:
- Q_ASSERT(false);
- break;
- case DefaultValue::DefaultConstructor:
- case DefaultValue::DefaultConstructorWithDefaultValues:
- break;
- }
- return m_value + QLatin1String("()");
-}
+using namespace Qt::StringLiterals;
-#ifndef QT_NO_DEBUG_STREAM
-QDebug operator<<(QDebug debug, const DefaultValue &v)
-{
- QDebugStateSaver saver(debug);
- debug.noquote();
- debug.nospace();
- debug << "DefaultValue(" << v.type() << ", \"" << v.value() << "\")";
- return debug;
-}
-#endif // !QT_NO_DEBUG_STREAM
+static constexpr auto ENABLE_PYSIDE_EXTENSIONS = "enable-pyside-extensions"_L1;
+static constexpr auto AVOID_PROTECTED_HACK = "avoid-protected-hack"_L1;
-QString GeneratorContext::smartPointerWrapperName() const
+struct GeneratorOptions
{
- Q_ASSERT(m_type == SmartPointer);
- return m_preciseClassType.cppSignature();
-}
+ bool usePySideExtensions = false;
+ bool avoidProtectedHack = false;
+};
struct Generator::GeneratorPrivate
{
@@ -173,13 +45,16 @@ struct Generator::GeneratorPrivate
QString outDir;
// License comment
QString licenseComment;
- QStringList instantiatedContainersNames;
- AbstractMetaTypeList instantiatedContainers;
- AbstractMetaTypeList instantiatedSmartPointers;
AbstractMetaClassCList m_invisibleTopNamespaces;
bool m_hasPrivateClasses = false;
+ static GeneratorOptions m_options;
};
+GeneratorOptions Generator::GeneratorPrivate::m_options;
+
+// Kept as a variable for a potential Qt-in-namespace support
+QString Generator::m_gsp = "::"_L1;
+
Generator::Generator() : m_d(new GeneratorPrivate)
{
}
@@ -193,17 +68,19 @@ bool Generator::setup(const ApiExtractorResult &api)
{
m_d->api = api;
const auto moduleEntry = TypeDatabase::instance()->defaultTypeSystemType();
- if (!moduleEntry || !moduleEntry->generateCode()) {
- qCWarning(lcShiboken) << "Couldn't find the package name!!";
+ if (!moduleEntry) {
+ qCWarning(lcShiboken,"Couldn't find the package name!!");
+ return false;
+ }
+ if (!moduleEntry->generateCode()) {
+ qCWarning(lcShiboken, "Code generation of root typesystem is disabled!!");
return false;
}
- collectInstantiatedContainersAndSmartPointers();
-
- for (auto c : api.classes()) {
+ for (const auto &c : api.classes()) {
if (c->enclosingClass() == nullptr && c->isInvisibleNamespace()) {
m_d->m_invisibleTopNamespaces.append(c);
- c->invisibleNamespaceRecursion([&](AbstractMetaClass *ic) {
+ c->invisibleNamespaceRecursion([&](const AbstractMetaClassCPtr &ic) {
m_d->m_invisibleTopNamespaces.append(ic);
});
}
@@ -212,150 +89,65 @@ bool Generator::setup(const ApiExtractorResult &api)
return doSetup();
}
-QString Generator::getSimplifiedContainerTypeName(const AbstractMetaType &type)
+QList<OptionDescription> Generator::options()
{
- const QString signature = type.cppSignature();
- if (!type.typeEntry()->isContainer() && !type.typeEntry()->isSmartPointer())
- return signature;
- QString typeName = signature;
- if (type.isConstant())
- typeName.remove(0, sizeof("const ") / sizeof(char) - 1);
- switch (type.referenceType()) {
- case NoReference:
- break;
- case LValueReference:
- typeName.chop(1);
- break;
- case RValueReference:
- typeName.chop(2);
- break;
- }
- while (typeName.endsWith(QLatin1Char('*')) || typeName.endsWith(QLatin1Char(' ')))
- typeName.chop(1);
- return typeName;
-}
-
-// Strip a "const QSharedPtr<const Foo> &" or similar to "QSharedPtr<Foo>" (PYSIDE-1016/454)
-AbstractMetaType canonicalSmartPtrInstantiation(const AbstractMetaType &type)
-{
- const AbstractMetaTypeList &instantiations = type.instantiations();
- Q_ASSERT(instantiations.size() == 1);
- const bool needsFix = type.isConstant() || type.referenceType() != NoReference;
- const bool pointeeNeedsFix = instantiations.constFirst().isConstant();
- if (!needsFix && !pointeeNeedsFix)
- return type;
- auto fixedType = type;
- fixedType.setReferenceType(NoReference);
- fixedType.setConstant(false);
- if (pointeeNeedsFix) {
- auto fixedPointeeType = instantiations.constFirst();
- fixedPointeeType.setConstant(false);
- fixedType.setInstantiations(AbstractMetaTypeList(1, fixedPointeeType));
- }
- return fixedType;
-}
-
-static inline const TypeEntry *pointeeTypeEntry(const AbstractMetaType &smartPtrType)
-{
- return smartPtrType.instantiations().constFirst().typeEntry();
+ return {
+ {AVOID_PROTECTED_HACK,
+ u"Avoid the use of the '#define protected public' hack."_s},
+ {ENABLE_PYSIDE_EXTENSIONS,
+ u"Enable PySide extensions, such as support for signal/slots,\n"
+ "use this if you are creating a binding for a Qt-based library."_s}
+ };
}
-void Generator::addInstantiatedContainersAndSmartPointers(const AbstractMetaType &type,
- const QString &context)
+class GeneratorOptionsParser : public OptionsParser
{
- for (const auto &t : type.instantiations())
- addInstantiatedContainersAndSmartPointers(t, context);
- const auto typeEntry = type.typeEntry();
- const bool isContainer = typeEntry->isContainer();
- if (!isContainer
- && !(typeEntry->isSmartPointer() && typeEntry->generateCode())) {
- return;
- }
- if (type.hasTemplateChildren()) {
- QString piece = isContainer ? QStringLiteral("container") : QStringLiteral("smart pointer");
- QString warning =
- QString::fromLatin1("Skipping instantiation of %1 '%2' because it has template"
- " arguments.").arg(piece, type.originalTypeDescription());
- if (!context.isEmpty())
- warning.append(QStringLiteral(" Calling context: ") + context);
-
- qCWarning(lcShiboken).noquote().nospace() << warning;
- return;
-
- }
- if (isContainer) {
- const QString typeName = getSimplifiedContainerTypeName(type);
- if (!m_d->instantiatedContainersNames.contains(typeName)) {
- m_d->instantiatedContainersNames.append(typeName);
- auto simplifiedType = type;
- simplifiedType.setIndirections(0);
- simplifiedType.setConstant(false);
- simplifiedType.setReferenceType(NoReference);
- simplifiedType.decideUsagePattern();
- m_d->instantiatedContainers.append(simplifiedType);
- }
- return;
- }
-
- // Is smart pointer. Check if the (const?) pointee is already known for the given
- // smart pointer type entry.
- auto pt = pointeeTypeEntry(type);
- const bool present =
- std::any_of(m_d->instantiatedSmartPointers.cbegin(), m_d->instantiatedSmartPointers.cend(),
- [typeEntry, pt] (const AbstractMetaType &t) {
- return t.typeEntry() == typeEntry && pointeeTypeEntry(t) == pt;
- });
- if (!present)
- m_d->instantiatedSmartPointers.append(canonicalSmartPtrInstantiation(type));
-}
+public:
+ explicit GeneratorOptionsParser(GeneratorOptions *o) : m_options(o) {}
-void Generator::collectInstantiatedContainersAndSmartPointers(const AbstractMetaFunctionCPtr &func)
-{
- addInstantiatedContainersAndSmartPointers(func->type(), func->signature());
- const AbstractMetaArgumentList &arguments = func->arguments();
- for (const AbstractMetaArgument &arg : arguments)
- addInstantiatedContainersAndSmartPointers(arg.type(), func->signature());
-}
+ bool handleBoolOption(const QString &key, OptionSource source) override;
-void Generator::collectInstantiatedContainersAndSmartPointers(const AbstractMetaClass *metaClass)
-{
- if (!metaClass->typeEntry()->generateCode())
- return;
- for (const auto &func : metaClass->functions())
- collectInstantiatedContainersAndSmartPointers(func);
- for (const AbstractMetaField &field : metaClass->fields())
- addInstantiatedContainersAndSmartPointers(field.type(), field.name());
- const AbstractMetaClassList &innerClasses = metaClass->innerClasses();
- for (AbstractMetaClass *innerClass : innerClasses)
- collectInstantiatedContainersAndSmartPointers(innerClass);
-}
+private:
+ GeneratorOptions *m_options;
+};
-void Generator::collectInstantiatedContainersAndSmartPointers()
+bool GeneratorOptionsParser::handleBoolOption(const QString & key, OptionSource source)
{
- for (const auto &func : m_d->api.globalFunctions())
- collectInstantiatedContainersAndSmartPointers(func);
- for (auto metaClass : m_d->api.classes())
- collectInstantiatedContainersAndSmartPointers(metaClass);
+ if (source == OptionSource::CommandLineSingleDash)
+ return false;
+ if (key == ENABLE_PYSIDE_EXTENSIONS)
+ return ( m_options->usePySideExtensions = true);
+ if (key == AVOID_PROTECTED_HACK)
+ return ( m_options->avoidProtectedHack = true);
+ return false;
}
-AbstractMetaTypeList Generator::instantiatedContainers() const
+std::shared_ptr<OptionsParser> Generator::createOptionsParser()
{
- return m_d->instantiatedContainers;
+ return std::make_shared<GeneratorOptionsParser>(&GeneratorPrivate::m_options);
}
-AbstractMetaTypeList Generator::instantiatedSmartPointers() const
-{
- return m_d->instantiatedSmartPointers;
-}
+QString Generator::fileNameForContextHelper(const GeneratorContext &context,
+ const QString &suffix,
+ FileNameFlags flags)
-Generator::OptionDescriptions Generator::options() const
{
- return OptionDescriptions();
-}
+ if (!context.forSmartPointer()) {
+ const auto metaClass = context.metaClass();
+ QString fileNameBase = flags.testFlag(FileNameFlag::UnqualifiedName)
+ ? metaClass->name() : metaClass->qualifiedCppName();
+ if (!flags.testFlag(FileNameFlag::KeepCase))
+ fileNameBase = fileNameBase.toLower();
+ fileNameBase.replace(u"::"_s, u"_"_s);
+ return fileNameBase + suffix;
+ }
-bool Generator::handleOption(const QString & /* key */, const QString & /* value */)
-{
- return false;
+ // FIXME: PYSIDE7: Use the above code path for all types. Note the file
+ // names will then change to reflect the namespaces of the pointee
+ // (smart/integer2).
+ const AbstractMetaType &smartPointerType = context.preciseType();
+ QString fileNameBase = getFileNameBaseForSmartPointer(smartPointerType);
+ return fileNameBase + suffix;
}
const AbstractMetaClassCList &Generator::invisibleTopNamespaces() const
@@ -363,12 +155,12 @@ const AbstractMetaClassCList &Generator::invisibleTopNamespaces() const
return m_d->m_invisibleTopNamespaces;
}
-PrimitiveTypeEntryList Generator::primitiveTypes()
+PrimitiveTypeEntryCList Generator::primitiveTypes()
{
return TypeDatabase::instance()->primitiveTypes();
}
-ContainerTypeEntryList Generator::containerTypes()
+ContainerTypeEntryCList Generator::containerTypes()
{
return TypeDatabase::instance()->containerTypes();
}
@@ -391,7 +183,7 @@ QString Generator::packageName()
static QString getModuleName()
{
QString result = TypeDatabase::instance()->defaultPackageName();
- result.remove(0, result.lastIndexOf(QLatin1Char('.')) + 1);
+ result.remove(0, result.lastIndexOf(u'.') + 1);
return result;
}
@@ -413,17 +205,19 @@ void Generator::setOutputDirectory(const QString &outDir)
bool Generator::generateFileForContext(const GeneratorContext &context)
{
- const AbstractMetaClass *cls = context.metaClass();
+ const auto cls = context.metaClass();
+ auto typeEntry = cls->typeEntry();
- if (!shouldGenerate(cls))
+ if (!shouldGenerate(typeEntry))
return true;
const QString fileName = fileNameForContext(context);
if (fileName.isEmpty())
return true;
- QString filePath = outputDirectory() + QLatin1Char('/') + subDirectoryForClass(cls)
- + QLatin1Char('/') + fileName;
+ QString filePath = outputDirectory() + u'/'
+ + subDirectoryForPackage(typeEntry->targetLangPackage())
+ + u'/' + fileName;
FileOut fileOut(filePath);
generateClass(fileOut.stream, context);
@@ -432,68 +226,64 @@ bool Generator::generateFileForContext(const GeneratorContext &context)
return true;
}
-QString Generator::getFileNameBaseForSmartPointer(const AbstractMetaType &smartPointerType,
- const AbstractMetaClass *smartPointerClass)
+QString Generator::getFileNameBaseForSmartPointer(const AbstractMetaType &smartPointerType)
{
const AbstractMetaType innerType = smartPointerType.getSmartPointerInnerType();
- QString fileName = smartPointerClass->qualifiedCppName().toLower();
- fileName.replace(QLatin1String("::"), QLatin1String("_"));
- fileName.append(QLatin1String("_"));
+ smartPointerType.typeEntry()->qualifiedCppName();
+ QString fileName = smartPointerType.typeEntry()->qualifiedCppName().toLower();
+ fileName.replace(u"::"_s, u"_"_s);
+ fileName.append(u"_"_s);
fileName.append(innerType.name().toLower());
return fileName;
}
-GeneratorContext Generator::contextForClass(const AbstractMetaClass *c) const
+GeneratorContext Generator::contextForClass(const AbstractMetaClassCPtr &c) const
{
GeneratorContext result;
result.m_metaClass = c;
return result;
}
-GeneratorContext Generator::contextForSmartPointer(const AbstractMetaClass *c,
- const AbstractMetaType &t)
+GeneratorContext
+ Generator::contextForSmartPointer(const AbstractMetaClassCPtr &c,
+ const AbstractMetaType &t,
+ const AbstractMetaClassCPtr &pointeeClass)
{
GeneratorContext result;
result.m_metaClass = c;
result.m_preciseClassType = t;
result.m_type = GeneratorContext::SmartPointer;
+ result.m_pointeeClass = pointeeClass;
return result;
}
bool Generator::generate()
{
- for (auto cls : m_d->api.classes()) {
+ for (const auto &cls : m_d->api.classes()) {
if (!generateFileForContext(contextForClass(cls)))
return false;
- if (shouldGenerate(cls) && cls->typeEntry()->isPrivate())
+ auto te = cls->typeEntry();
+ if (shouldGenerate(te) && te->isPrivate())
m_d->m_hasPrivateClasses = true;
}
- const auto smartPointers = m_d->api.smartPointers();
- for (const AbstractMetaType &type : qAsConst(m_d->instantiatedSmartPointers)) {
- const AbstractMetaClass *smartPointerClass =
- AbstractMetaClass::findClass(smartPointers, type.typeEntry());
- if (!smartPointerClass) {
- qCWarning(lcShiboken, "%s",
- qPrintable(msgCannotFindSmartPointer(type.cppSignature(),
- smartPointers)));
+ for (const auto &smp: m_d->api.instantiatedSmartPointers()) {
+ AbstractMetaClassCPtr pointeeClass;
+ const auto instantiatedType = smp.type.instantiations().constFirst().typeEntry();
+ if (instantiatedType->isComplex()) // not a C++ primitive
+ pointeeClass = AbstractMetaClass::findClass(m_d->api.classes(), instantiatedType);
+ if (!generateFileForContext(contextForSmartPointer(smp.specialized, smp.type,
+ pointeeClass))) {
return false;
}
- if (!generateFileForContext(contextForSmartPointer(smartPointerClass, type)))
- return false;
}
return finishGeneration();
}
-bool Generator::shouldGenerateTypeEntry(const TypeEntry *type)
-{
- return type->generateCode() && NamespaceTypeEntry::isVisibleScope(type);
-}
-
-bool Generator::shouldGenerate(const AbstractMetaClass *metaClass) const
+bool Generator::shouldGenerate(const TypeEntryCPtr &typeEntry) const
{
- return shouldGenerateTypeEntry(metaClass->typeEntry());
+ return typeEntry->shouldGenerate();
}
const ApiExtractorResult &Generator::api() const
@@ -506,24 +296,32 @@ bool Generator::hasPrivateClasses() const
return m_d->m_hasPrivateClasses;
}
-QString Generator::getFullTypeName(const TypeEntry *type)
+bool Generator::usePySideExtensions()
+{
+ return GeneratorPrivate::m_options.usePySideExtensions;
+}
+
+bool Generator::avoidProtectedHack()
+{
+ return GeneratorPrivate::m_options.avoidProtectedHack;
+}
+
+QString Generator::getFullTypeName(TypeEntryCPtr type)
{
QString result = type->qualifiedCppName();
if (type->isArray())
- type = static_cast<const ArrayTypeEntry *>(type)->nestedTypeEntry();
- if (!type->isCppPrimitive())
- result.prepend(QLatin1String("::"));
- return result;
+ type = std::static_pointer_cast<const ArrayTypeEntry>(type)->nestedTypeEntry();
+ return isCppPrimitive(type) ? result : addGlobalScopePrefix(result);
}
QString Generator::getFullTypeName(const AbstractMetaType &type)
{
if (type.isCString())
- return QLatin1String("const char*");
+ return u"const char*"_s;
if (type.isVoidPointer())
- return QLatin1String("void*");
+ return u"void*"_s;
if (type.typeEntry()->isContainer())
- return QLatin1String("::") + type.cppSignature();
+ return addGlobalScopePrefix(type.cppSignature());
QString typeName;
if (type.typeEntry()->isComplex() && type.hasInstantiations())
typeName = getFullTypeNameWithoutModifiers(type);
@@ -532,17 +330,19 @@ QString Generator::getFullTypeName(const AbstractMetaType &type)
return typeName + QString::fromLatin1("*").repeated(type.indirections());
}
-QString Generator::getFullTypeName(const AbstractMetaClass *metaClass)
+QString Generator::getFullTypeName(const AbstractMetaClassCPtr &metaClass)
{
- return QLatin1String("::") + metaClass->qualifiedCppName();
+ const QString &qualName = metaClass->qualifiedCppName();
+ // Typedefs are generated into the global namespace
+ return metaClass->isTypeDef() ? qualName : addGlobalScopePrefix(qualName);
}
QString Generator::getFullTypeNameWithoutModifiers(const AbstractMetaType &type)
{
if (type.isCString())
- return QLatin1String("const char*");
+ return u"const char*"_s;
if (type.isVoidPointer())
- return QLatin1String("void*");
+ return u"void*"_s;
if (!type.hasInstantiations())
return getFullTypeName(type.typeEntry());
QString typeName = type.cppSignature();
@@ -558,9 +358,9 @@ QString Generator::getFullTypeNameWithoutModifiers(const AbstractMetaType &type)
typeName.chop(2);
break;
}
- while (typeName.endsWith(QLatin1Char('*')) || typeName.endsWith(QLatin1Char(' ')))
+ while (typeName.endsWith(u'*') || typeName.endsWith(u' '))
typeName.chop(1);
- return QLatin1String("::") + typeName;
+ return addGlobalScopePrefix(typeName);
}
std::optional<DefaultValue>
@@ -573,29 +373,29 @@ std::optional<DefaultValue>
if (type.isContainer()) {
QString ctor = type.cppSignature();
- if (ctor.endsWith(QLatin1Char('*'))) {
+ if (ctor.endsWith(u'*')) {
ctor.chop(1);
return DefaultValue(DefaultValue::Pointer, ctor.trimmed());
}
- if (ctor.startsWith(QLatin1String("const ")))
+ if (ctor.startsWith(u"const "))
ctor.remove(0, sizeof("const ") / sizeof(char) - 1);
- if (ctor.endsWith(QLatin1Char('&'))) {
+ if (ctor.endsWith(u'&')) {
ctor.chop(1);
ctor = ctor.trimmed();
}
- return DefaultValue(DefaultValue::DefaultConstructor, QLatin1String("::") + ctor);
+ return DefaultValue(DefaultValue::DefaultConstructor, u"::"_s + ctor);
}
if (type.isNativePointer())
return DefaultValue(DefaultValue::Pointer, type.typeEntry()->qualifiedCppName());
if (type.isPointer())
- return DefaultValue(DefaultValue::Pointer, QLatin1String("::") + type.typeEntry()->qualifiedCppName());
+ return DefaultValue(DefaultValue::Pointer, getFullTypeName(type.typeEntry()));
if (type.typeEntry()->isSmartPointer())
return minimalConstructor(api, type.typeEntry());
if (type.typeEntry()->isComplex()) {
- auto cType = static_cast<const ComplexTypeEntry *>(type.typeEntry());
+ auto cType = std::static_pointer_cast<const ComplexTypeEntry>(type.typeEntry());
if (cType->hasDefaultConstructor())
return DefaultValue(DefaultValue::Custom, cType->defaultConstructor());
auto klass = AbstractMetaClass::findClass(api.classes(), cType);
@@ -620,41 +420,40 @@ std::optional<DefaultValue>
std::optional<DefaultValue>
Generator::minimalConstructor(const ApiExtractorResult &api,
- const TypeEntry *type,
+ const TypeEntryCPtr &type,
QString *errorString)
{
if (!type)
return {};
- if (type->isCppPrimitive()) {
+ if (isCppPrimitive(type)) {
const QString &name = type->qualifiedCppName();
- return name == QLatin1String("bool")
+ return name == u"bool"
? DefaultValue(DefaultValue::Boolean)
: DefaultValue(DefaultValue::CppScalar, name);
}
if (type->isEnum()) {
- const auto enumEntry = static_cast<const EnumTypeEntry *>(type);
- if (const auto *nullValue = enumEntry->nullValue())
+ const auto enumEntry = std::static_pointer_cast<const EnumTypeEntry>(type);
+ if (const auto nullValue = enumEntry->nullValue())
return DefaultValue(DefaultValue::Enum, nullValue->name());
return DefaultValue(DefaultValue::Custom,
- QLatin1String("static_cast< ::") + type->qualifiedCppName()
- + QLatin1String(">(0)"));
+ "static_cast< "_L1 + getFullTypeName(type) + ">(0)"_L1);
}
if (type->isFlags()) {
return DefaultValue(DefaultValue::Custom,
- type->qualifiedCppName() + QLatin1String("(0)"));
+ type->qualifiedCppName() + u"(0)"_s);
}
if (type->isPrimitive()) {
- QString ctor = static_cast<const PrimitiveTypeEntry *>(type)->defaultConstructor();
+ QString ctor = std::static_pointer_cast<const PrimitiveTypeEntry>(type)->defaultConstructor();
// If a non-C++ (i.e. defined by the user) primitive type does not have
// a default constructor defined by the user, the empty constructor is
// heuristically returned. If this is wrong the build of the generated
// bindings will tell.
return ctor.isEmpty()
- ? DefaultValue(DefaultValue::DefaultConstructorWithDefaultValues, QLatin1String("::")
+ ? DefaultValue(DefaultValue::DefaultConstructorWithDefaultValues, u"::"_s
+ type->qualifiedCppName())
: DefaultValue(DefaultValue::Custom, ctor);
}
@@ -673,25 +472,25 @@ std::optional<DefaultValue>
}
if (errorString != nullptr)
- *errorString = QLatin1String("No default value could be determined.");
+ *errorString = u"No default value could be determined."_s;
return {};
}
static QString constructorCall(const QString &qualifiedCppName, const QStringList &args)
{
- return QLatin1String("::") + qualifiedCppName + QLatin1Char('(')
- + args.join(QLatin1String(", ")) + QLatin1Char(')');
+ return u"::"_s + qualifiedCppName + u'('
+ + args.join(u", "_s) + u')';
}
std::optional<DefaultValue>
Generator::minimalConstructor(const ApiExtractorResult &api,
- const AbstractMetaClass *metaClass,
+ const AbstractMetaClassCPtr &metaClass,
QString *errorString)
{
if (!metaClass)
return {};
- auto cType = static_cast<const ComplexTypeEntry *>(metaClass->typeEntry());
+ auto cType = std::static_pointer_cast<const ComplexTypeEntry>(metaClass->typeEntry());
if (cType->hasDefaultConstructor())
return DefaultValue(DefaultValue::Custom, cType->defaultConstructor());
@@ -701,27 +500,27 @@ std::optional<DefaultValue>
const auto &constructors = metaClass->queryFunctions(FunctionQueryOption::Constructors);
for (const auto &ctor : constructors) {
if (!ctor->isUserAdded() && !ctor->isPrivate()
- && ctor->functionType() == AbstractMetaFunction::ConstructorFunction) {
+ && (ctor->isPublic() || !api.flags().testFlag(ApiExtractorFlag::AvoidProtectedHack))) {
// No arguments: Default constructible
const auto &arguments = ctor->arguments();
if (arguments.isEmpty()) {
return DefaultValue(DefaultValue::DefaultConstructor,
- QLatin1String("::") + qualifiedCppName);
+ u"::"_s + qualifiedCppName);
}
// First argument has unmodified default: Default constructible with values
if (arguments.constFirst().hasUnmodifiedDefaultValueExpression()) {
return DefaultValue(DefaultValue::DefaultConstructorWithDefaultValues,
- QLatin1String("::") + qualifiedCppName);
+ u"::"_s + qualifiedCppName);
}
// Examine arguments, exclude functions taking a self parameter
bool simple = true;
bool suitable = true;
- for (int i = 0, size = arguments.size();
+ for (qsizetype i = 0, size = arguments.size();
suitable && i < size && !arguments.at(i).hasOriginalDefaultValueExpression(); ++i) {
const AbstractMetaArgument &arg = arguments.at(i);
- const TypeEntry *aType = arg.type().typeEntry();
+ TypeEntryCPtr aType = arg.type().typeEntry();
suitable &= aType != cType;
- simple &= aType->isCppPrimitive() || aType->isEnum() || arg.type().isPointer();
+ simple &= isCppPrimitive(aType) || aType->isEnum() || arg.type().isPointer();
}
if (suitable)
candidates.insert(arguments.size() + (simple ? 0 : 100), ctor);
@@ -731,8 +530,7 @@ std::optional<DefaultValue>
for (auto it = candidates.cbegin(), end = candidates.cend(); it != end; ++it) {
const AbstractMetaArgumentList &arguments = it.value()->arguments();
QStringList args;
- for (int i = 0, size = arguments.size(); i < size; ++i) {
- const AbstractMetaArgument &arg = arguments.at(i);
+ for (const auto &arg : arguments) {
if (arg.hasModifiedDefaultValueExpression()) {
args << arg.defaultValueExpression(); // Spell out modified values
break;
@@ -751,7 +549,7 @@ std::optional<DefaultValue>
}
QString Generator::translateType(AbstractMetaType cType,
- const AbstractMetaClass *context,
+ const AbstractMetaClassCPtr &context,
Options options) const
{
QString s;
@@ -763,94 +561,141 @@ QString Generator::translateType(AbstractMetaType cType,
}
if (cType.isVoid()) {
- s = QLatin1String("void");
+ s = u"void"_s;
} else if (cType.isArray()) {
- s = translateType(*cType.arrayElementType(), context, options) + QLatin1String("[]");
+ s = translateType(*cType.arrayElementType(), context, options) + u"[]"_s;
} else {
+ AbstractMetaType copyType = cType;
if (options & Generator::ExcludeConst || options & Generator::ExcludeReference) {
- AbstractMetaType copyType = cType;
-
if (options & Generator::ExcludeConst)
copyType.setConstant(false);
-
if (options & Generator::ExcludeReference)
copyType.setReferenceType(NoReference);
+ }
- s = copyType.cppSignature();
- if (!copyType.typeEntry()->isVoid() && !copyType.typeEntry()->isCppPrimitive())
- s.prepend(QLatin1String("::"));
- } else {
- s = cType.cppSignature();
+ s = copyType.cppSignature();
+ const auto te = copyType.typeEntry();
+ if (!te->isVoid() && !isCppPrimitive(te)) { // Add scope resolution
+ const auto pos = s.indexOf(te->qualifiedCppName()); // Skip const/volatile
+ Q_ASSERT(pos >= 0);
+ s.insert(pos, u"::"_s);
}
}
return s;
}
+static const QHash<QString, QString> &pythonOperators()
+{
+ static const QHash<QString, QString> result = {
+ // call operator
+ {u"operator()"_s, u"__call__"_s},
+ // Arithmetic operators
+ {u"operator+"_s, u"__add__"_s},
+ {u"operator-"_s, u"__sub__"_s},
+ {u"operator*"_s, u"__mul__"_s},
+ {u"operator/"_s, u"__div__"_s},
+ {u"operator%"_s, u"__mod__"_s},
+ // Inplace arithmetic operators
+ {u"operator+="_s, u"__iadd__"_s},
+ {u"operator-="_s, u"__isub__"_s},
+ {u"operator++"_s, u"__iadd__"_s},
+ {u"operator--"_s, u"__isub__"_s},
+ {u"operator*="_s, u"__imul__"_s},
+ {u"operator%="_s, u"__imod__"_s},
+ // Bitwise operators
+ {u"operator&"_s, u"__and__"_s},
+ {u"operator^"_s, u"__xor__"_s},
+ {u"operator|"_s, u"__or__"_s},
+ {u"operator<<"_s, u"__lshift__"_s},
+ {u"operator>>"_s, u"__rshift__"_s},
+ {u"operator~"_s, u"__invert__"_s},
+ // Inplace bitwise operators
+ {u"operator&="_s, u"__iand__"_s},
+ {u"operator^="_s, u"__ixor__"_s},
+ {u"operator|="_s, u"__ior__"_s},
+ {u"operator<<="_s, u"__ilshift__"_s},
+ {u"operator>>="_s, u"__irshift__"_s},
+ // Comparison operators
+ {u"operator=="_s, u"__eq__"_s},
+ {u"operator!="_s, u"__ne__"_s},
+ {u"operator<"_s, u"__lt__"_s},
+ {u"operator>"_s, u"__gt__"_s},
+ {u"operator<="_s, u"__le__"_s},
+ {u"operator>="_s, u"__ge__"_s},
+ // Conversion (note bool has special handling with heuristics)
+ {u"operator int"_s, u"__int__"_s},
+ {u"operator double"_s, u"__float__"_s}
+ };
+ return result;
+}
+
+QString Generator::pythonOperatorFunctionName(const QString &cppOpFuncName)
+{
+ return pythonOperators().value(cppOpFuncName);
+}
-QString Generator::subDirectoryForClass(const AbstractMetaClass *clazz) const
+bool Generator::isPythonOperatorFunctionName(const QString &cppOpFuncName)
{
- return subDirectoryForPackage(clazz->package());
+ return pythonOperators().contains(cppOpFuncName);
}
QString Generator::subDirectoryForPackage(QString packageNameIn) const
{
if (packageNameIn.isEmpty())
packageNameIn = packageName();
- packageNameIn.replace(QLatin1Char('.'), QDir::separator());
+ packageNameIn.replace(u'.', QDir::separator());
return packageNameIn;
}
+QString Generator::addGlobalScopePrefix(const QString &t)
+{
+ return t.startsWith("std::"_L1) ? t : m_gsp + t;
+}
+
+QString Generator::globalScopePrefix(const GeneratorContext &classContext)
+{
+ return classContext.useWrapper() ? QString{} : m_gsp;
+}
+
template<typename T>
-static QString getClassTargetFullName_(const T *t, bool includePackageName)
+static QString getClassTargetFullName_(T t, bool includePackageName)
{
QString name = t->name();
- const AbstractMetaClass *context = t->enclosingClass();
+ AbstractMetaClassCPtr context = t->enclosingClass();
while (context) {
// If the type was marked as 'visible=false' we should not use it in
// the type name
if (NamespaceTypeEntry::isVisibleScope(context->typeEntry())) {
- name.prepend(QLatin1Char('.'));
+ name.prepend(u'.');
name.prepend(context->name());
}
context = context->enclosingClass();
}
if (includePackageName) {
- name.prepend(QLatin1Char('.'));
+ name.prepend(u'.');
name.prepend(t->package());
}
return name;
}
-QString getClassTargetFullName(const AbstractMetaClass *metaClass, bool includePackageName)
+QString getClassTargetFullName(const AbstractMetaClassCPtr &metaClass,
+ bool includePackageName)
{
return getClassTargetFullName_(metaClass, includePackageName);
}
-QString getClassTargetFullName(const AbstractMetaEnum &metaEnum, bool includePackageName)
+QString getClassTargetFullName(const AbstractMetaEnum &metaEnum,
+ bool includePackageName)
{
return getClassTargetFullName_(&metaEnum, includePackageName);
}
-QString getClassTargetFullName(const AbstractMetaType &metaType, bool includePackageName)
-{
- QString name = metaType.cppSignature();
- name.replace(QLatin1String("::"), QLatin1String("_"));
- name.replace(QLatin1Char('<'), QLatin1Char('_'));
- name.remove(QLatin1Char('>'));
- name.remove(QLatin1Char(' '));
- if (includePackageName) {
- name.prepend(QLatin1Char('.'));
- name.prepend(metaType.package());
- }
- return name;
-}
-
QString getFilteredCppSignatureString(QString signature)
{
- signature.replace(QLatin1String("::"), QLatin1String("_"));
- signature.replace(QLatin1Char('<'), QLatin1Char('_'));
- signature.replace(QLatin1Char('>'), QLatin1Char('_'));
- signature.replace(QLatin1Char(' '), QLatin1Char('_'));
+ signature.replace(u"::"_s, u"_"_s);
+ signature.replace(u'<', u'_');
+ signature.replace(u'>', u'_');
+ signature.replace(u' ', u'_');
return signature;
}
diff --git a/sources/shiboken6/generator/generator.h b/sources/shiboken6/generator/generator.h
index 115a59a13..5b051b599 100644
--- a/sources/shiboken6/generator/generator.h
+++ b/sources/shiboken6/generator/generator.h
@@ -1,189 +1,40 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef GENERATOR_H
#define GENERATOR_H
-#include <abstractmetatype.h>
+#include <abstractmetalang_typedefs.h>
#include <typedatabase_typedefs.h>
-#include <QtCore/QObject>
-#include <QtCore/QSharedPointer>
-#include <QtCore/QTextStream>
#include <QtCore/QList>
+#include <memory>
#include <optional>
+
class ApiExtractorResult;
-class AbstractMetaFunction;
-class AbstractMetaClass;
-class AbstractMetaEnum;
-class TypeEntry;
-class ComplexTypeEntry;
-class AbstractMetaType;
-class EnumTypeEntry;
-class FlagsTypeEntry;
+class GeneratorContext;
+class DefaultValue;
+struct OptionDescription;
+class OptionsParser;
class TextStream;
-QT_BEGIN_NAMESPACE
-class QFile;
-class QDebug;
-QT_END_NAMESPACE
-
-class PrimitiveTypeEntry;
-class ContainerTypeEntry;
-
-QString getClassTargetFullName(const AbstractMetaClass *metaClass, bool includePackageName = true);
-QString getClassTargetFullName(const AbstractMetaEnum &metaEnum, bool includePackageName = true);
-QString getClassTargetFullName(const AbstractMetaType &metaType, bool includePackageName = true);
+QString getClassTargetFullName(const AbstractMetaClassCPtr &metaClass,
+ bool includePackageName = true);
+QString getClassTargetFullName(const AbstractMetaEnum &metaEnum,
+ bool includePackageName = true);
QString getFilteredCppSignatureString(QString signature);
/**
- * PYSIDE-504: Handling the "protected hack"
- *
- * The problem: Creating wrappers when the class has private destructors.
- * You can see an example on Windows in qclipboard_wrapper.h and others.
- * Simply search for the text "// C++11: need to declare (unimplemented) destructor".
- *
- * The protected hack is the definition "#define protected public".
- * For most compilers, this "hack" is enabled, because the problem of private
- * destructors simply vanishes.
- *
- * If one does not want to use this hack, then a new problem arises:
- * C++11 requires that a destructor is declared in a wrapper class when it is
- * private in the base class. There is no implementation allowed!
- *
- * Unfortunately, MSVC in recent versions supports C++11, and due to restrictive
- * rules, it is impossible to use the hack with this compiler.
- * More unfortunate: Clang, when C++11 is enabled, also enforces a declaration
- * of a private destructor, but it falsely then creates a linker error!
- *
- * Originally, we wanted to remove the protected hack. But due to the Clang
- * problem, we gave up on removal of the protected hack and use it always
- * when we can. This might change again when the Clang problem is solved.
- */
-
-#ifdef Q_CC_MSVC
-const int alwaysGenerateDestructor = 1;
-#else
-const int alwaysGenerateDestructor = 0;
-#endif
-
-class DefaultValue
-{
-public:
- enum Type
- {
- Boolean,
- CppScalar, // A C++ scalar type (int,..) specified by value()
- Custom, // A custom constructor/expression, uses value() as is
- DefaultConstructor, // For classes named value()
- DefaultConstructorWithDefaultValues, // as DefaultConstructor, but can't return {} though.
- Enum, // Enum value as specified by value()
- Pointer, // Pointer of type value()
- Void // "", for return values only
- };
-
- explicit DefaultValue(Type t, QString value = QString());
- explicit DefaultValue(QString customValue);
-
- QString returnValue() const;
- QString initialization() const;
- QString constructorParameter() const;
-
- QString value() const { return m_value; }
- void setValue(const QString &value) { m_value = value; }
-
- Type type() const { return m_type; }
- void setType(Type type) { m_type = type; }
-
-private:
- Type m_type;
- QString m_value;
-};
-
-#ifndef QT_NO_DEBUG_STREAM
-QDebug operator<<(QDebug debug, const DefaultValue &v);
-#endif
-
-/**
- * A GeneratorContext object contains a pointer to an AbstractMetaClass and/or a specialized
- * AbstractMetaType, for which code is currently being generated.
- *
- * The main case is when the context contains only an AbstractMetaClass pointer, which is used
- * by different methods to generate appropriate expressions, functions, type names, etc.
- *
- * The second case is for generation of code for smart pointers. In this case the m_metaClass member
- * contains the generic template class of the smart pointer, and the m_preciseClassType member
- * contains the instantiated template type, e.g. a concrete shared_ptr<int>. To
- * distinguish this case, the member m_forSmartPointer is set to true.
- *
- * In the future the second case might be generalized for all template type instantiations.
- */
-class GeneratorContext {
- friend class ShibokenGenerator;
- friend class Generator;
-public:
- enum Type { Class, WrappedClass, SmartPointer };
-
- GeneratorContext() = default;
-
- const AbstractMetaClass *metaClass() const { return m_metaClass; }
- const AbstractMetaType &preciseType() const { return m_preciseClassType; }
-
- bool forSmartPointer() const { return m_type == SmartPointer; }
- bool useWrapper() const { return m_type == WrappedClass; }
-
- QString wrapperName() const
- {
- Q_ASSERT(m_type == WrappedClass);
- return m_wrappername;
- }
-
- QString smartPointerWrapperName() const;
-
-private:
- const AbstractMetaClass *m_metaClass = nullptr;
- AbstractMetaType m_preciseClassType;
- QString m_wrappername;
- Type m_type = Class;
-};
-
-/**
* Base class for all generators. The default implementations does nothing,
* you must subclass this to create your own generators.
*/
class Generator
-{
+{;
public:
- using OptionDescription = QPair<QString, QString>;
- using OptionDescriptions = QList<OptionDescription>;
+ Q_DISABLE_COPY_MOVE(Generator)
- /// Optiosn used around the generator code
+ /// Options used around the generator code
enum Option {
NoOption = 0x00000000,
ExcludeConst = 0x00000001,
@@ -198,13 +49,19 @@ public:
};
Q_DECLARE_FLAGS(Options, Option)
+ enum FileNameFlag {
+ UnqualifiedName = 0x1,
+ KeepCase = 0x2
+ };
+ Q_DECLARE_FLAGS(FileNameFlags, FileNameFlag)
+
Generator();
virtual ~Generator();
bool setup(const ApiExtractorResult &api);
- virtual OptionDescriptions options() const;
- virtual bool handleOption(const QString &key, const QString &value);
+ static QList<OptionDescription> options();
+ static std::shared_ptr<OptionsParser> createOptionsParser();
/// Returns the top namespace made invisible
const AbstractMetaClassCList &invisibleTopNamespaces() const;
@@ -237,6 +94,12 @@ public:
bool hasPrivateClasses() const;
+ /// Returns true if the user enabled PySide extensions (command line option)
+ static bool usePySideExtensions();
+ /// Returns true if the generated code should not use the
+ /// "#define protected public" hack.
+ static bool avoidProtectedHack();
+
/**
* Retrieves the name of the currently processed module.
* While package name is a complete package idetification, e.g. 'PySide.QtCore',
@@ -247,32 +110,34 @@ public:
*/
static QString moduleName();
+ static QString pythonOperatorFunctionName(const QString &cppOpFuncName);
+ static bool isPythonOperatorFunctionName(const QString &cppOpFuncName);
+
protected:
+ /// Helper for determining the file name
+ static QString fileNameForContextHelper(const GeneratorContext &context,
+ const QString &suffix,
+ FileNameFlags flags = {});
+
/// Returns all primitive types found by APIExtractor
- static PrimitiveTypeEntryList primitiveTypes();
+ static PrimitiveTypeEntryCList primitiveTypes();
/// Returns all container types found by APIExtractor
- static ContainerTypeEntryList containerTypes();
+ static ContainerTypeEntryCList containerTypes();
- virtual GeneratorContext contextForClass(const AbstractMetaClass *c) const;
- static GeneratorContext contextForSmartPointer(const AbstractMetaClass *c,
- const AbstractMetaType &t);
+ virtual GeneratorContext contextForClass(const AbstractMetaClassCPtr &c) const;
+ static GeneratorContext
+ contextForSmartPointer(const AbstractMetaClassCPtr &c, const AbstractMetaType &t,
+ const AbstractMetaClassCPtr &pointeeClass = {});
/// Generates a file for given AbstractMetaClass or AbstractMetaType (smart pointer case).
bool generateFileForContext(const GeneratorContext &context);
/// Returns the file base name for a smart pointer.
- static QString getFileNameBaseForSmartPointer(const AbstractMetaType &smartPointerType,
- const AbstractMetaClass *smartPointer);
-
- /// Returns true if the generator should generate any code for the TypeEntry.
- static bool shouldGenerateTypeEntry(const TypeEntry *) ;
+ static QString getFileNameBaseForSmartPointer(const AbstractMetaType &smartPointerType);
/// Returns true if the generator should generate any code for the AbstractMetaClass.
- virtual bool shouldGenerate(const AbstractMetaClass *) const;
-
- /// Returns the subdirectory used to write the binding code of an AbstractMetaClass.
- virtual QString subDirectoryForClass(const AbstractMetaClass *clazz) const;
+ virtual bool shouldGenerate(const TypeEntryCPtr &t) const;
/**
* Translate metatypes to binding source format.
@@ -282,7 +147,7 @@ protected:
* \return the metatype translated to binding source format
*/
QString translateType(AbstractMetaType metatype,
- const AbstractMetaClass *context,
+ const AbstractMetaClassCPtr &context,
Options options = NoOption) const;
/**
@@ -291,9 +156,9 @@ protected:
static QString packageName();
// Returns the full name of the type.
- static QString getFullTypeName(const TypeEntry *type);
+ static QString getFullTypeName(TypeEntryCPtr type);
static QString getFullTypeName(const AbstractMetaType &type);
- static QString getFullTypeName(const AbstractMetaClass *metaClass);
+ static QString getFullTypeName(const AbstractMetaClassCPtr &metaClass);
/**
* Returns the full qualified C++ name for an AbstractMetaType, but removing modifiers
@@ -308,14 +173,14 @@ protected:
* Returns a null string if it fails.
*/
static std::optional<DefaultValue>
- minimalConstructor(const ApiExtractorResult &api, const TypeEntry *type,
+ minimalConstructor(const ApiExtractorResult &api, const TypeEntryCPtr &type,
QString *errorString = nullptr);
static std::optional<DefaultValue>
minimalConstructor(const ApiExtractorResult &api, const AbstractMetaType &type,
QString *errorString = nullptr);
static std::optional<DefaultValue>
minimalConstructor(const ApiExtractorResult &api,
- const AbstractMetaClass *metaClass,
+ const AbstractMetaClassCPtr &metaClass,
QString *errorString = nullptr);
/**
@@ -324,7 +189,6 @@ protected:
* for which the file name must be returned
* \return the file name used to write the binding code for the class
*/
- virtual QString fileNameSuffix() const = 0;
virtual QString fileNameForContext(const GeneratorContext &context) const = 0;
@@ -350,24 +214,20 @@ protected:
*/
virtual QString subDirectoryForPackage(QString packageName = QString()) const;
- AbstractMetaTypeList instantiatedContainers() const;
- AbstractMetaTypeList instantiatedSmartPointers() const;
+ static QString addGlobalScopePrefix(const QString &t);
+ static QString globalScopePrefix(const GeneratorContext &classContext);
- static QString getSimplifiedContainerTypeName(const AbstractMetaType &type);
- void addInstantiatedContainersAndSmartPointers(const AbstractMetaType &type,
- const QString &context);
+ static QString m_gsp;
private:
struct GeneratorPrivate;
GeneratorPrivate *m_d;
- void collectInstantiatedContainersAndSmartPointers(const AbstractMetaFunctionCPtr &func);
- void collectInstantiatedContainersAndSmartPointers(const AbstractMetaClass *metaClass);
- void collectInstantiatedContainersAndSmartPointers();
};
Q_DECLARE_OPERATORS_FOR_FLAGS(Generator::Options)
-using GeneratorPtr = QSharedPointer<Generator>;
+Q_DECLARE_OPERATORS_FOR_FLAGS(Generator::FileNameFlags)
+
+using GeneratorPtr = std::shared_ptr<Generator>;
using Generators = QList<GeneratorPtr>;
#endif // GENERATOR_H
-
diff --git a/sources/shiboken6/generator/generatorcontext.cpp b/sources/shiboken6/generator/generatorcontext.cpp
new file mode 100644
index 000000000..b50c2effb
--- /dev/null
+++ b/sources/shiboken6/generator/generatorcontext.cpp
@@ -0,0 +1,38 @@
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#include "generatorcontext.h"
+#include <abstractmetalang.h>
+
+#include <QtCore/QDebug>
+
+using namespace Qt::StringLiterals;
+
+QString GeneratorContext::wrapperName() const
+{
+ Q_ASSERT(m_type == WrappedClass);
+ return m_wrappername;
+}
+
+QString GeneratorContext::effectiveClassName() const
+{
+ if (m_type == SmartPointer)
+ return m_preciseClassType.cppSignature();
+ return m_type == WrappedClass ? m_wrappername : m_metaClass->qualifiedCppName();
+}
+
+QDebug operator<<(QDebug debug, const GeneratorContext &c)
+{
+ QDebugStateSaver saver(debug);
+ debug.noquote();
+ debug.nospace();
+ debug << "GeneratorContext(\"" << c.metaClass()->name() << "\" ";
+ if (c.useWrapper())
+ debug << "[wrapper]";
+ else if (c.forSmartPointer())
+ debug << "[smart pointer] \"" << c.preciseType().cppSignature() << '"';
+ else
+ debug << "[class]";
+ debug << ')';
+ return debug;
+}
diff --git a/sources/shiboken6/generator/generatorcontext.h b/sources/shiboken6/generator/generatorcontext.h
new file mode 100644
index 000000000..2e58d4346
--- /dev/null
+++ b/sources/shiboken6/generator/generatorcontext.h
@@ -0,0 +1,56 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef GENERATORCONTEXT_H
+#define GENERATORCONTEXT_H
+
+#include <abstractmetalang_typedefs.h>
+#include <abstractmetatype.h>
+#include <QtCore/QList>
+
+QT_FORWARD_DECLARE_CLASS(QDebug);
+
+// A GeneratorContext object contains a pointer to an AbstractMetaClass and/or a specialized
+// AbstractMetaType, for which code is currently being generated.
+//
+// The main case is when the context contains only an AbstractMetaClass pointer, which is used
+// by different methods to generate appropriate expressions, functions, type names, etc.
+//
+// The second case is for generation of code for smart pointers. In this case the m_metaClass
+// member contains the generic template class of the smart pointer, and the m_preciseClassType
+// member contains the instantiated template type, e.g. a concrete shared_ptr<int>. To
+// distinguish this case, the member m_forSmartPointer is set to true.
+//
+// In the future the second case might be generalized for all template type instantiations.
+
+class GeneratorContext {
+ friend class ShibokenGenerator;
+ friend class Generator;
+public:
+ enum Type { Class, WrappedClass, SmartPointer };
+
+ GeneratorContext() = default;
+
+ AbstractMetaClassCPtr metaClass() const { return m_metaClass; }
+ const AbstractMetaType &preciseType() const { return m_preciseClassType; }
+ AbstractMetaClassCPtr pointeeClass() const { return m_pointeeClass; }
+
+ bool forSmartPointer() const { return m_type == SmartPointer; }
+ bool useWrapper() const { return m_type == WrappedClass; }
+
+ QString wrapperName() const;
+ /// Returns the wrapper name in case of useWrapper(), the qualified class
+ /// name or the smart pointer specialization.
+ QString effectiveClassName() const;
+
+private:
+ AbstractMetaClassCPtr m_metaClass;
+ AbstractMetaClassCPtr m_pointeeClass;
+ AbstractMetaType m_preciseClassType;
+ QString m_wrappername;
+ Type m_type = Class;
+};
+
+QDebug operator<<(QDebug debug, const GeneratorContext &c);
+
+#endif // GENERATORCONTEXT_H
diff --git a/sources/shiboken6/generator/main.cpp b/sources/shiboken6/generator/main.cpp
index 315e963c4..9871df206 100644
--- a/sources/shiboken6/generator/main.cpp
+++ b/sources/shiboken6/generator/main.cpp
@@ -1,701 +1,369 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QCoreApplication>
-#include <QLibrary>
-#include <QtCore/QFile>
-#include <QtCore/QDir>
-#include <QtCore/QVariant>
-#include <iostream>
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#include "shibokenconfig.h"
+#include "cppgenerator.h"
+#include "generator.h"
+#include "headergenerator.h"
+#include "qtdocgenerator.h"
+
#include <apiextractor.h>
#include <apiextractorresult.h>
+#include <exception.h>
#include <fileout.h>
+#include <messages.h>
+#include <optionsparser.h>
#include <reporthandler.h>
#include <typedatabase.h>
-#include <messages.h>
-#include "generator.h"
-#include "shibokenconfig.h"
-#include "cppgenerator.h"
-#include "headergenerator.h"
-#include "qtdocgenerator.h"
-#include <exception>
+#include <QtCore/QDir>
+#include <QtCore/QFile>
+#include <QtCore/QLibrary>
+#include <QtCore/QVariant>
-static const QChar clangOptionsSplitter = u',';
-static const QChar keywordsSplitter = u',';
-static const QChar dropTypeEntriesSplitter = u';';
-static const QChar apiVersionSplitter = u'|';
-
-static inline QString keywordsOption() { return QStringLiteral("keywords"); }
-static inline QString clangOptionOption() { return QStringLiteral("clang-option"); }
-static inline QString clangOptionsOption() { return QStringLiteral("clang-options"); }
-static inline QString apiVersionOption() { return QStringLiteral("api-version"); }
-static inline QString dropTypeEntriesOption() { return QStringLiteral("drop-type-entries"); }
-static inline QString languageLevelOption() { return QStringLiteral("language-level"); }
-static inline QString includePathOption() { return QStringLiteral("include-paths"); }
-static inline QString frameworkIncludePathOption() { return QStringLiteral("framework-include-paths"); }
-static inline QString systemIncludePathOption() { return QStringLiteral("system-include-paths"); }
-static inline QString typesystemPathOption() { return QStringLiteral("typesystem-paths"); }
-static inline QString helpOption() { return QStringLiteral("help"); }
-static inline QString diffOption() { return QStringLiteral("diff"); }
-static inline QString useGlobalHeaderOption() { return QStringLiteral("use-global-header"); }
-static inline QString dryrunOption() { return QStringLiteral("dry-run"); }
-static inline QString skipDeprecatedOption() { return QStringLiteral("skip-deprecated"); }
+#include "qtcompat.h"
-static const char helpHint[] = "Note: use --help or -h for more information.\n";
-
-using OptionDescriptions = Generator::OptionDescriptions;
+#include <exception>
+#include <iostream>
-struct CommandLineArguments
-{
- void addToOptionsList(const QString &option,
- const QString &value);
- void addToOptionsList(const QString &option,
- const QStringList &value);
- void addToOptionsList(const QString &option,
- const QString &listValue,
- QChar separator);
- void addToOptionsPathList(const QString &option,
- const QString &pathListValue)
- {
- addToOptionsList(option, pathListValue, QDir::listSeparator());
- }
+using namespace Qt::StringLiterals;
- QVariantMap options; // string,stringlist for path lists, etc.
- QStringList positionalArguments;
-};
+static const char helpHint[] = "Note: use --help or -h for more information.\n";
+static const char appName[] = "shiboken";
-void CommandLineArguments::addToOptionsList(const QString &option,
- const QString &value)
+static inline Generators docGenerators()
{
- auto it = options.find(option);
- if (it == options.end()) {
- options.insert(option, QVariant(QStringList(value)));
- } else {
- auto list = it.value().toStringList();
- list += value;
- options[option] = QVariant(list);
- }
+ Generators result;
+#ifdef DOCSTRINGS_ENABLED
+ result.append(GeneratorPtr(new QtDocGenerator));
+#endif
+ return result;
}
-void CommandLineArguments::addToOptionsList(const QString &option,
- const QStringList &value)
+static inline Generators shibokenGenerators()
{
- auto it = options.find(option);
- if (it == options.end()) {
- options.insert(option, QVariant(value));
- } else {
- auto list = it.value().toStringList();
- list += value;
- options[option] = QVariant(list);
- }
+ Generators result;
+ result << GeneratorPtr(new CppGenerator) << GeneratorPtr(new HeaderGenerator);
+ return result;
}
-void CommandLineArguments::addToOptionsList(const QString &option,
- const QString &listValue,
- QChar separator)
+struct CommonOptions
{
- const auto newValues = listValue.split(separator, Qt::SkipEmptyParts);
- addToOptionsList(option, newValues);
-}
+ QString generatorSet;
+ QString licenseComment;
+ QString outputDirectory = u"out"_s;
+ QStringList headers;
+ QString typeSystemFileName;
+ bool help = false;
+ bool version = false;
+ bool diff = false;
+ bool dryRun = false;
+ bool logUnmatched = false;
+ bool printBuiltinTypes = false;
+};
-static void printOptions(QTextStream &s, const OptionDescriptions &options)
+class CommonOptionsParser : public OptionsParser
{
- s.setFieldAlignment(QTextStream::AlignLeft);
- for (const auto &od : options) {
- if (!od.first.startsWith(QLatin1Char('-')))
- s << "--";
- s << od.first;
- if (od.second.isEmpty()) {
- s << ", ";
- } else {
- s << Qt::endl;
- const auto lines = QStringView{od.second}.split(QLatin1Char('\n'));
- for (const auto &line : lines)
- s << " " << line << Qt::endl;
- s << Qt::endl;
- }
- }
-}
+public:
+ explicit CommonOptionsParser(CommonOptions *o) : m_options(o) {}
-static std::optional<CommandLineArguments>
- processProjectFile(const QString &appName, QFile &projectFile)
-{
- QByteArray line = projectFile.readLine().trimmed();
- if (line.isEmpty() || line != "[generator-project]") {
- std::cerr << qPrintable(appName) << ": first line of project file \""
- << qPrintable(projectFile.fileName())
- << "\" must be the string \"[generator-project]\"\n";
- return {};
- }
+ bool handleBoolOption(const QString &key, OptionSource source) override;
+ bool handleOption(const QString &key, const QString &value, OptionSource source) override;
- CommandLineArguments args;
-
- while (!projectFile.atEnd()) {
- line = projectFile.readLine().trimmed();
- if (line.isEmpty())
- continue;
-
- int split = line.indexOf('=');
- QByteArray key;
- QString value;
- if (split > 0) {
- key = line.left(split).trimmed();
- value = QString::fromUtf8(line.mid(split + 1).trimmed());
- } else {
- key = line;
- }
+ static OptionDescriptions optionDescriptions();
- if (key == "include-path") {
- args.addToOptionsList(includePathOption(),
- QDir::toNativeSeparators(value));
- } else if (key == "framework-include-path") {
- args.addToOptionsList(frameworkIncludePathOption(),
- QDir::toNativeSeparators(value));
- } else if (key == "system-include-paths") {
- args.addToOptionsList(systemIncludePathOption(),
- QDir::toNativeSeparators(value));
- } else if (key == "typesystem-path") {
- args.addToOptionsList(typesystemPathOption(),
- QDir::toNativeSeparators(value));
- } else if (key == "language-level") {
- args.options.insert(languageLevelOption(), value);
- } else if (key == "clang-option") {
- args.addToOptionsList(clangOptionsOption(), value);
- } else if (key == "clang-options") {
- args.addToOptionsList(clangOptionsOption(),
- value, clangOptionsSplitter);
- } else if (key == "api-version") {
- args.addToOptionsList(apiVersionOption(),
- value, apiVersionSplitter);
- } else if (key == "keywords") {
- args.addToOptionsList(keywordsOption(),
- value, keywordsSplitter);
- } else if (key == "drop-type-entries") {
- args.addToOptionsList(dropTypeEntriesOption(),
- value, dropTypeEntriesSplitter);
- } else if (key == "header-file") {
- args.positionalArguments.prepend(value);
- } else if (key == "typesystem-file") {
- args.positionalArguments.append(value);
- } else {
- args.options.insert(QString::fromUtf8(key), value);
- }
- }
+private:
+ CommonOptions *m_options;
+};
- return args;
+OptionDescriptions CommonOptionsParser::optionDescriptions()
+{
+ return {
+ {u"debug-level=[sparse|medium|full]"_s,
+ u"Set the debug level"_s},
+ {u"documentation-only"_s,
+ u"Do not generates any code, just the documentation"_s},
+ {u"compiler=<type>"_s,
+ u"Emulated compiler type (g++, msvc, clang)"_s},
+ {u"platform=<name>"_s,
+ u"Emulated platform (windows, darwin, unix)"_s},
+ {u"compiler-path=<file>"_s,
+ u"Path to the compiler for determining builtin include paths"_s},
+ {u"generator-set=<\"generator module\">"_s,
+ u"generator-set to be used. e.g. qtdoc"_s},
+ {u"diff"_s, u"Print a diff of wrapper files"_s},
+ {u"dry-run"_s, u"Dry run, do not generate wrapper files"_s},
+ {u"-h"_s, {} },
+ {u"help"_s, u"Display this help and exit"_s},
+ {u"-I<path>"_s, {} },
+ {u"include-paths="_s + OptionsParser::pathSyntax(),
+ u"Include paths used by the C++ parser"_s},
+ {u"license-file=<license-file>"_s,
+ u"File used for copyright headers of generated files"_s},
+ {u"no-suppress-warnings"_s,
+ u"Show all warnings"_s},
+ {u"output-directory=<path>"_s,
+ u"The directory where the generated files will be written"_s},
+ {u"project-file=<file>"_s,
+ u"text file containing a description of the binding project.\n"
+ "Replaces and overrides command line arguments"_s},
+ {u"silent"_s, u"Avoid printing any message"_s},
+ {u"print-builtin-types"_s,
+ u"Print information about builtin types"_s},
+ {u"version"_s,
+ u"Output version information and exit"_s}
+ };
}
-static std::optional<CommandLineArguments> getProjectFileArguments()
+bool CommonOptionsParser::handleBoolOption(const QString &key, OptionSource source)
{
- QStringList arguments = QCoreApplication::arguments();
- QString appName = arguments.constFirst();
- arguments.removeFirst();
-
- QString projectFileName;
- for (const QString &arg : qAsConst(arguments)) {
- if (arg.startsWith(QLatin1String("--project-file"))) {
- int split = arg.indexOf(QLatin1Char('='));
- if (split > 0)
- projectFileName = arg.mid(split + 1).trimmed();
- break;
+ if (source == OptionSource::CommandLineSingleDash) {
+ if (key == u"h") {
+ m_options->help = true;
+ return true;
}
+ return false;
}
- if (projectFileName.isEmpty())
- return CommandLineArguments{};
-
- if (!QFile::exists(projectFileName)) {
- std::cerr << qPrintable(appName) << ": Project file \""
- << qPrintable(projectFileName) << "\" not found.\n";
- return {};
+ if (key == u"version") {
+ m_options->version = true;
+ return true;
}
-
- QFile projectFile(projectFileName);
- if (!projectFile.open(QIODevice::ReadOnly)) {
- std::cerr << qPrintable(appName) << ": Cannot open project file \""
- << qPrintable(projectFileName) << "\" : " << qPrintable(projectFile.errorString())
- << '\n';
- return {};
+ if (key == u"help") {
+ m_options->help = true;
+ return true;
}
- return processProjectFile(appName, projectFile);
-}
-
-static void getCommandLineArg(QString arg, int &argNum, CommandLineArguments &args)
-{
- if (arg.startsWith(QLatin1String("--"))) {
- arg.remove(0, 2);
- const int split = arg.indexOf(QLatin1Char('='));
- if (split < 0) {
- args.options.insert(arg, QString());
- return;
- }
- const QString option = arg.left(split);
- const QString value = arg.mid(split + 1).trimmed();
- if (option == includePathOption() || option == frameworkIncludePathOption()
- || option == systemIncludePathOption() || option == typesystemPathOption()) {
- args.addToOptionsPathList(option, value);
- } else if (option == apiVersionOption()) {
- args.addToOptionsList(apiVersionOption(), value, apiVersionSplitter);
- } else if (option == dropTypeEntriesOption()) {
- args.addToOptionsList(dropTypeEntriesOption(), value, dropTypeEntriesSplitter);
- } else if (option == clangOptionOption()) {
- args.addToOptionsList(clangOptionsOption(), value);
- } else if (option == clangOptionsOption()) {
- args.addToOptionsList(clangOptionsOption(), value, clangOptionsSplitter);
- } else if (option == keywordsOption()) {
- args.addToOptionsList(keywordsOption(), value, keywordsSplitter);
- } else {
- args.options.insert(option, value);
- }
- return;
+ if (key == u"diff") {
+ FileOut::setDiff(true);
+ return true;
}
- if (arg.startsWith(QLatin1Char('-'))) {
- arg.remove(0, 1);
- if (arg.startsWith(QLatin1Char('I'))) // Shorthand path arguments -I/usr/include...
- args.addToOptionsPathList(includePathOption(), arg.mid(1));
- else if (arg.startsWith(QLatin1Char('F')))
- args.addToOptionsPathList(frameworkIncludePathOption(), arg.mid(1));
- else if (arg.startsWith(QLatin1String("isystem")))
- args.addToOptionsPathList(systemIncludePathOption(), arg.mid(7));
- else if (arg.startsWith(QLatin1Char('T')))
- args.addToOptionsPathList(typesystemPathOption(), arg.mid(1));
- else if (arg == QLatin1String("h"))
- args.options.insert(helpOption(), QString());
- else if (arg.startsWith(QLatin1String("std=")))
- args.options.insert(languageLevelOption(), arg.mid(4));
- else
- args.options.insert(arg, QString());
- return;
+ if (key == u"dry-run") {
+ FileOut::setDryRun(true);
+ return true;
+ }
+ if (key == u"silent") {
+ ReportHandler::setSilent(true);
+ return true;
+ }
+ if (key == u"log-unmatched") {
+ m_options->logUnmatched = true;
+ return true;
+ }
+ if (key == u"print-builtin-types") {
+ m_options->printBuiltinTypes = true;
+ return true;
}
- if (argNum < args.positionalArguments.size())
- args.positionalArguments[argNum] = arg;
- else
- args.positionalArguments.append(arg);
- ++argNum;
-}
-
-static void getCommandLineArgs(CommandLineArguments &args)
-{
- const QStringList arguments = QCoreApplication::arguments();
- int argNum = 0;
- for (int i = 1, size = arguments.size(); i < size; ++i)
- getCommandLineArg(arguments.at(i).trimmed(), argNum, args);
-}
-static inline Generators docGenerators()
-{
- Generators result;
-#ifdef DOCSTRINGS_ENABLED
- result.append(GeneratorPtr(new QtDocGenerator));
-#endif
- return result;
+ return false;
}
-static inline Generators shibokenGenerators()
+bool CommonOptionsParser::handleOption(const QString &key, const QString &value,
+ OptionSource source)
{
- Generators result;
- result << GeneratorPtr(new CppGenerator) << GeneratorPtr(new HeaderGenerator);
- return result;
-}
+ if (source == OptionSource::CommandLineSingleDash)
+ return false;
+
+ if (key == u"generator-set" || key == u"generatorSet" /* legacy */) {
+ m_options->generatorSet = value;
+ return true;
+ }
+ if (key == u"license-file") {
+ QFile licenseFile(value);
+ if (!licenseFile.open(QIODevice::ReadOnly))
+ throw Exception(msgCannotOpenForReading(licenseFile));
+ m_options->licenseComment = QString::fromUtf8(licenseFile.readAll());
+ return true;
+ }
+ if (key == u"debug-level") {
+ if (!ReportHandler::setDebugLevelFromArg(value))
+ throw Exception(u"Invalid debug level: "_s + value);
+ return true;
+ }
+ if (key == u"output-directory") {
+ m_options->outputDirectory = value;
+ return true;
+ }
+ if (key == u"compiler") {
+ if (!clang::setCompiler(value))
+ throw Exception(u"Invalid value \""_s + value + u"\" passed to --compiler"_s);
+ return true;
+ }
+ if (key == u"compiler-path") {
+ clang::setCompilerPath(value);
+ return true;
+ }
+ if (key == u"platform") {
+ if (!clang::setPlatform(value))
+ throw Exception(u"Invalid value \""_s + value + u"\" passed to --platform"_s);
+ return true;
+ }
+
+ if (source == OptionSource::ProjectFile) {
+ if (key == u"header-file") {
+ m_options->headers.append(value);
+ return true;
+ }
+ if (key == u"typesystem-file") {
+ m_options->typeSystemFileName = value;
+ return true;
+ }
+ }
-static inline QString languageLevelDescription()
-{
- return QLatin1String("C++ Language level (c++11..c++17, default=")
- + QLatin1String(clang::languageLevelOption(clang::emulatedCompilerLanguageLevel()))
- + QLatin1Char(')');
+ return false;
}
void printUsage()
{
- const QChar pathSplitter = QDir::listSeparator();
+ const auto generatorOptions = Generator::options();
+
QTextStream s(stdout);
s << "Usage:\n "
- << "shiboken [options] header-file(s) typesystem-file\n\n"
- << "General options:\n";
- QString pathSyntax;
- QTextStream(&pathSyntax) << "<path>[" << pathSplitter << "<path>"
- << pathSplitter << "...]";
- OptionDescriptions generalOptions = {
- {QLatin1String("api-version=<\"package mask\">,<\"version\">"),
- QLatin1String("Specify the supported api version used to generate the bindings")},
- {QLatin1String("debug-level=[sparse|medium|full]"),
- QLatin1String("Set the debug level")},
- {QLatin1String("documentation-only"),
- QLatin1String("Do not generates any code, just the documentation")},
- {QLatin1String("drop-type-entries=\"<TypeEntry0>[;TypeEntry1;...]\""),
- QLatin1String("Semicolon separated list of type system entries (classes, namespaces,\n"
- "global functions and enums) to be dropped from generation.")},
- {keywordsOption() + QStringLiteral("=keyword1[,keyword2,...]"),
- QLatin1String("A comma-separated list of keywords for conditional typesystem parsing")},
- {clangOptionOption(),
- QLatin1String("Option to be passed to clang")},
- {clangOptionsOption(),
- QLatin1String("A comma-separated list of options to be passed to clang")},
- {QLatin1String("-F<path>"), {} },
- {QLatin1String("framework-include-paths=") + pathSyntax,
- QLatin1String("Framework include paths used by the C++ parser")},
- {QLatin1String("-isystem<path>"), {} },
- {QLatin1String("system-include-paths=") + pathSyntax,
- QLatin1String("System include paths used by the C++ parser")},
- {useGlobalHeaderOption(),
- QLatin1String("Use the global headers in generated code.")},
- {QLatin1String("generator-set=<\"generator module\">"),
- QLatin1String("generator-set to be used. e.g. qtdoc")},
- {skipDeprecatedOption(),
- QLatin1String("Skip deprecated functions")},
- {diffOption(), QLatin1String("Print a diff of wrapper files")},
- {dryrunOption(), QLatin1String("Dry run, do not generate wrapper files")},
- {QLatin1String("-h"), {} },
- {helpOption(), QLatin1String("Display this help and exit")},
- {QLatin1String("-I<path>"), {} },
- {QLatin1String("include-paths=") + pathSyntax,
- QLatin1String("Include paths used by the C++ parser")},
- {languageLevelOption() + QLatin1String("=, -std=<level>"),
- languageLevelDescription()},
- {QLatin1String("license-file=<license-file>"),
- QLatin1String("File used for copyright headers of generated files")},
- {QLatin1String("no-suppress-warnings"),
- QLatin1String("Show all warnings")},
- {QLatin1String("output-directory=<path>"),
- QLatin1String("The directory where the generated files will be written")},
- {QLatin1String("project-file=<file>"),
- QLatin1String("text file containing a description of the binding project.\n"
- "Replaces and overrides command line arguments")},
- {QLatin1String("silent"), QLatin1String("Avoid printing any message")},
- {QLatin1String("-T<path>"), {} },
- {QLatin1String("typesystem-paths=") + pathSyntax,
- QLatin1String("Paths used when searching for typesystems")},
- {QLatin1String("version"),
- QLatin1String("Output version information and exit")}
- };
- printOptions(s, generalOptions);
-
- const Generators generators = shibokenGenerators() + docGenerators();
- for (const GeneratorPtr &generator : generators) {
- const OptionDescriptions options = generator->options();
- if (!options.isEmpty()) {
- s << Qt::endl << generator->name() << " options:\n\n";
- printOptions(s, generator->options());
- }
- }
+ << "shiboken [options] header-file(s) typesystem-file\n\n"
+ << "General options:\n"
+ << CommonOptionsParser::optionDescriptions()
+ << ApiExtractor::options()
+ << TypeDatabase::options()
+ << "\nSource generator options:\n\n" << generatorOptions
+ << ShibokenGenerator::options();
+
+#ifdef DOCSTRINGS_ENABLED
+ s << "\nDocumentation Generator options:\n\n"
+ << generatorOptions << QtDocGenerator::options();
+#endif
}
static inline void printVerAndBanner()
{
- std::cout << "shiboken v" SHIBOKEN_VERSION << std::endl;
+ std::cout << appName << " v" << SHIBOKEN_VERSION << std::endl;
std::cout << "Copyright (C) 2016 The Qt Company Ltd." << std::endl;
}
-static inline void errorPrint(const QString &s)
+static inline void errorPrint(const QString &s, const QStringList &arguments)
{
- QStringList arguments = QCoreApplication::arguments();
- arguments.pop_front();
- std::cerr << "shiboken: " << qPrintable(s) << "\nCommand line:\n";
+ std::cerr << appName << ": " << qPrintable(s) << "\nCommand line:\n";
for (const auto &argument : arguments)
std::cerr << " \"" << qPrintable(argument) << "\"\n";
}
-static void parseIncludePathOption(const QString &option, HeaderType headerType,
- CommandLineArguments &args,
- ApiExtractor &extractor)
-{
- const auto it = args.options.find(option);
- if (it != args.options.end()) {
- const auto includePathListList = it.value().toStringList();
- args.options.erase(it);
- for (const QString &s : includePathListList) {
- auto path = QFile::encodeName(QDir::cleanPath(s));
- extractor.addIncludePath(HeaderPath{path, headerType});
- }
- }
-}
-
-int shibokenMain(int argc, char *argv[])
+int shibokenMain(const QStringList &argV)
{
// PYSIDE-757: Request a deterministic ordering of QHash in the code model
// and type system.
- qSetGlobalQHashSeed(0);
- // needed by qxmlpatterns
- QCoreApplication app(argc, argv);
+ QHashSeed::setDeterministicGlobalSeed();
+
ReportHandler::install();
if (ReportHandler::isDebug(ReportHandler::SparseDebug))
- qCInfo(lcShiboken()).noquote().nospace() << QCoreApplication::arguments().join(QLatin1Char(' '));
+ qCInfo(lcShiboken()).noquote().nospace() << appName << ' ' << argV.join(u' ');
- // Store command arguments in a map
- const auto projectFileArgumentsOptional = getProjectFileArguments();
- if (!projectFileArgumentsOptional.has_value())
- return EXIT_FAILURE;
-
- const CommandLineArguments projectFileArguments = projectFileArgumentsOptional.value();
- CommandLineArguments args = projectFileArguments;
- getCommandLineArgs(args);
- Generators generators;
+ Options options;
+ options.setOptions(argV);
- auto ait = args.options.find(QLatin1String("version"));
- if (ait != args.options.end()) {
- args.options.erase(ait);
+ CommonOptions commonOptions;
+ {
+ CommonOptionsParser parser(&commonOptions);
+ parser.process(&options);
+ }
+ if (commonOptions.version) {
printVerAndBanner();
return EXIT_SUCCESS;
}
-
- QString generatorSet;
- ait = args.options.find(QLatin1String("generator-set"));
- if (ait == args.options.end()) // Also check QLatin1String("generatorSet") command line argument for backward compatibility.
- ait = args.options.find(QLatin1String("generatorSet"));
- if (ait != args.options.end()) {
- generatorSet = ait.value().toString();
- args.options.erase(ait);
+ if (commonOptions.help) {
+ printUsage();
+ return EXIT_SUCCESS;
}
+ Generators generators;
+
+ OptionsParserList optionParser;
+ optionParser.append(Generator::createOptionsParser());
+ optionParser.append(TypeDatabase::instance()->createOptionsParser());
+ ApiExtractor extractor;
+ optionParser.append(extractor.createOptionsParser());
+
// Pre-defined generator sets.
- if (generatorSet == QLatin1String("qtdoc")) {
+ if (commonOptions.generatorSet == u"qtdoc") {
generators = docGenerators();
if (generators.isEmpty()) {
- errorPrint(QLatin1String("Doc strings extractions was not enabled in this shiboken build."));
+ errorPrint(u"Doc strings extractions was not enabled in this shiboken build."_s, argV);
return EXIT_FAILURE;
}
- } else if (generatorSet.isEmpty() || generatorSet == QLatin1String("shiboken")) {
+#ifdef DOCSTRINGS_ENABLED
+ optionParser.append(QtDocGenerator::createOptionsParser());
+#endif
+ } else if (commonOptions.generatorSet.isEmpty() || commonOptions.generatorSet == u"shiboken") {
generators = shibokenGenerators();
+ optionParser.append(ShibokenGenerator::createOptionsParser());
} else {
- errorPrint(QLatin1String("Unknown generator set, try \"shiboken\" or \"qtdoc\"."));
+ errorPrint(u"Unknown generator set, try \"shiboken\" or \"qtdoc\"."_s, argV);
return EXIT_FAILURE;
}
- ait = args.options.find(QLatin1String("help"));
- if (ait != args.options.end()) {
- args.options.erase(ait);
- printUsage();
- return EXIT_SUCCESS;
- }
-
- ait = args.options.find(diffOption());
- if (ait != args.options.end()) {
- args.options.erase(ait);
- FileOut::setDiff(true);
- }
-
- ait = args.options.find(useGlobalHeaderOption());
- if (ait != args.options.end()) {
- args.options.erase(ait);
- ApiExtractor::setUseGlobalHeader(true);
- }
-
- ait = args.options.find(dryrunOption());
- if (ait != args.options.end()) {
- args.options.erase(ait);
- FileOut::setDryRun(true);
- }
-
- QString licenseComment;
- ait = args.options.find(QLatin1String("license-file"));
- if (ait != args.options.end()) {
- QFile licenseFile(ait.value().toString());
- args.options.erase(ait);
- if (licenseFile.open(QIODevice::ReadOnly)) {
- licenseComment = QString::fromUtf8(licenseFile.readAll());
- } else {
- errorPrint(QStringLiteral("Could not open the file \"%1\" containing the license heading: %2").
- arg(QDir::toNativeSeparators(licenseFile.fileName()), licenseFile.errorString()));
- return EXIT_FAILURE;
- }
- }
-
- QString outputDirectory = QLatin1String("out");
- ait = args.options.find(QLatin1String("output-directory"));
- if (ait != args.options.end()) {
- outputDirectory = ait.value().toString();
- args.options.erase(ait);
- }
-
- if (!QDir(outputDirectory).exists()) {
- if (!QDir().mkpath(outputDirectory)) {
+ if (!QDir(commonOptions.outputDirectory).exists()) {
+ if (!QDir().mkpath(commonOptions.outputDirectory)) {
qCWarning(lcShiboken).noquote().nospace()
- << "Can't create output directory: " << QDir::toNativeSeparators(outputDirectory);
+ << "Can't create output directory: "
+ << QDir::toNativeSeparators(commonOptions.outputDirectory);
return EXIT_FAILURE;
}
}
// Create and set-up API Extractor
- ApiExtractor extractor;
- extractor.setLogDirectory(outputDirectory);
- ait = args.options.find(skipDeprecatedOption());
- if (ait != args.options.end()) {
- extractor.setSkipDeprecated(true);
- args.options.erase(ait);
- }
-
- ait = args.options.find(QLatin1String("silent"));
- if (ait != args.options.end()) {
- extractor.setSilent(true);
- args.options.erase(ait);
- } else {
- ait = args.options.find(QLatin1String("debug-level"));
- if (ait != args.options.end()) {
- const QString value = ait.value().toString();
- if (!ReportHandler::setDebugLevelFromArg(value)) {
- errorPrint(QLatin1String("Invalid debug level: ") + value);
- return EXIT_FAILURE;
- }
- args.options.erase(ait);
- }
- }
- ait = args.options.find(QLatin1String("no-suppress-warnings"));
- if (ait != args.options.end()) {
- args.options.erase(ait);
- extractor.setSuppressWarnings(false);
- }
- ait = args.options.find(apiVersionOption());
- if (ait != args.options.end()) {
- const QStringList &versions = ait.value().toStringList();
- args.options.erase(ait);
- for (const QString &fullVersion : versions) {
- QStringList parts = fullVersion.split(QLatin1Char(','));
- QString package;
- QString version;
- package = parts.count() == 1 ? QLatin1String("*") : parts.constFirst();
- version = parts.constLast();
- if (!extractor.setApiVersion(package, version)) {
- errorPrint(msgInvalidVersion(package, version));
- return EXIT_FAILURE;
- }
+ extractor.setLogDirectory(commonOptions.outputDirectory);
+
+ if (commonOptions.typeSystemFileName.isEmpty() && commonOptions.headers.isEmpty()) {
+ if (options.positionalArguments.size() < 2) {
+ errorPrint(u"Insufficient positional arguments, specify header-file and typesystem-file."_s,
+ argV);
+ std::cout << '\n';
+ printUsage();
+ return EXIT_FAILURE;
}
- }
-
- ait = args.options.find(dropTypeEntriesOption());
- if (ait != args.options.end()) {
- extractor.setDropTypeEntries(ait.value().toStringList());
- args.options.erase(ait);
- }
- ait = args.options.find(keywordsOption());
- if (ait != args.options.end()) {
- extractor.setTypesystemKeywords(ait.value().toStringList());
- args.options.erase(ait);
+ commonOptions.typeSystemFileName = options.positionalArguments.takeLast();
+ commonOptions.headers = options.positionalArguments;
}
- ait = args.options.find(typesystemPathOption());
- if (ait != args.options.end()) {
- extractor.addTypesystemSearchPath(ait.value().toStringList());
- args.options.erase(ait);
- }
-
- ait = args.options.find(clangOptionsOption());
- if (ait != args.options.end()) {
- extractor.setClangOptions(ait.value().toStringList());
- args.options.erase(ait);
- }
-
- parseIncludePathOption(includePathOption(), HeaderType::Standard,
- args, extractor);
- parseIncludePathOption(frameworkIncludePathOption(), HeaderType::Framework,
- args, extractor);
- parseIncludePathOption(systemIncludePathOption(), HeaderType::System,
- args, extractor);
-
- if (args.positionalArguments.size() < 2) {
- errorPrint(QLatin1String("Insufficient positional arguments, specify header-file and typesystem-file."));
- std::cout << '\n';
- printUsage();
- return EXIT_FAILURE;
- }
-
- const QString typeSystemFileName = args.positionalArguments.takeLast();
- QString messagePrefix = QFileInfo(typeSystemFileName).baseName();
- if (messagePrefix.startsWith(QLatin1String("typesystem_")))
+ QString messagePrefix = QFileInfo(commonOptions.typeSystemFileName).baseName();
+ if (messagePrefix.startsWith(u"typesystem_"))
messagePrefix.remove(0, 11);
- ReportHandler::setPrefix(QLatin1Char('(') + messagePrefix + QLatin1Char(')'));
+ ReportHandler::setPrefix(u'(' + messagePrefix + u')');
QFileInfoList cppFileNames;
- for (const QString &cppFileName : qAsConst(args.positionalArguments)) {
+ for (const QString &cppFileName : std::as_const(commonOptions.headers)) {
const QFileInfo cppFileNameFi(cppFileName);
if (!cppFileNameFi.isFile() && !cppFileNameFi.isSymLink()) {
- errorPrint(QLatin1Char('"') + cppFileName + QLatin1String("\" does not exist."));
+ errorPrint(u'"' + cppFileName + u"\" does not exist."_s, argV);
return EXIT_FAILURE;
}
cppFileNames.append(cppFileNameFi);
}
- // Pass option to all generators (Cpp/Header generator have the same options)
- for (ait = args.options.begin(); ait != args.options.end(); ) {
- bool found = false;
- for (const GeneratorPtr &generator : qAsConst(generators))
- found |= generator->handleOption(ait.key(), ait.value().toString());
- if (found)
- ait = args.options.erase(ait);
- else
- ++ait;
- }
-
- ait = args.options.find(languageLevelOption());
- if (ait != args.options.end()) {
- const QByteArray languageLevelBA = ait.value().toString().toLatin1();
- args.options.erase(ait);
- const LanguageLevel level = clang::languageLevelFromOption(languageLevelBA.constData());
- if (level == LanguageLevel::Default) {
- std::cout << "Invalid argument for language level: \""
- << languageLevelBA.constData() << "\"\n" << helpHint;
- return EXIT_FAILURE;
- }
- extractor.setLanguageLevel(level);
- }
+ optionParser.process(&options);
+ optionParser.clear();
- /* Make sure to remove the project file's arguments (if any) and
- * --project-file, also the arguments of each generator before
- * checking if there isn't any existing arguments in argsHandler.
- */
- args.options.remove(QLatin1String("project-file"));
- for (auto it = projectFileArguments.options.cbegin(), end = projectFileArguments.options.cend();
- it != end; ++it) {
- args.options.remove(it.key());
- }
-
- if (!args.options.isEmpty()) {
- errorPrint(msgLeftOverArguments(args.options));
+ if (!options.boolOptions.isEmpty() || !options.valueOptions.isEmpty()) {
+ errorPrint(msgLeftOverArguments(options.msgUnprocessedOptions(), argV), argV);
std::cout << helpHint;
return EXIT_FAILURE;
}
- if (typeSystemFileName.isEmpty()) {
+ if (commonOptions.typeSystemFileName.isEmpty()) {
std::cout << "You must specify a Type System file." << std::endl << helpHint;
return EXIT_FAILURE;
}
extractor.setCppFileNames(cppFileNames);
- extractor.setTypeSystem(typeSystemFileName);
-
- auto shibokenGenerator = dynamic_cast<const ShibokenGenerator *>(generators.constFirst().data());
- const bool usePySideExtensions = shibokenGenerator && shibokenGenerator->usePySideExtensions();
+ extractor.setTypeSystem(commonOptions.typeSystemFileName);
- const std::optional<ApiExtractorResult> apiOpt = extractor.run(usePySideExtensions);
+ ApiExtractorFlags apiExtractorFlags;
+ if (generators.constFirst()->usePySideExtensions())
+ apiExtractorFlags.setFlag(ApiExtractorFlag::UsePySideExtensions);
+ if (generators.constFirst()->avoidProtectedHack())
+ apiExtractorFlags.setFlag(ApiExtractorFlag::AvoidProtectedHack);
+ const std::optional<ApiExtractorResult> apiOpt = extractor.run(apiExtractorFlags);
if (!apiOpt.has_value()) {
- errorPrint(QLatin1String("Error running ApiExtractor."));
+ errorPrint(u"Error running ApiExtractor."_s, argV);
return EXIT_FAILURE;
}
@@ -708,32 +376,59 @@ int shibokenMain(int argc, char *argv[])
<< "\n\nType datase:\n" << *TypeDatabase::instance();
}
- for (const GeneratorPtr &g : qAsConst(generators)) {
- g->setOutputDirectory(outputDirectory);
- g->setLicenseComment(licenseComment);
- ReportHandler::startProgress(QByteArray("Running ") + g->name() + "...");
+ if (commonOptions.printBuiltinTypes)
+ TypeDatabase::instance()->formatBuiltinTypes(qInfo());
+
+ for (const GeneratorPtr &g : std::as_const(generators)) {
+ g->setOutputDirectory(commonOptions.outputDirectory);
+ g->setLicenseComment(commonOptions.licenseComment);
+ ReportHandler::startProgress("Ran "_ba + g->name() + '.');
const bool ok = g->setup(apiOpt.value()) && g->generate();
ReportHandler::endProgress();
if (!ok) {
- errorPrint(QLatin1String("Error running generator: ")
- + QLatin1String(g->name()) + QLatin1Char('.'));
+ errorPrint(u"Error running generator: "_s
+ + QLatin1StringView(g->name()) + u'.', argV);
return EXIT_FAILURE;
}
}
+ if (commonOptions.logUnmatched)
+ TypeDatabase::instance()->logUnmatched();
+
const QByteArray doneMessage = ReportHandler::doneMessage();
std::cout << doneMessage.constData() << std::endl;
return EXIT_SUCCESS;
}
+#ifndef Q_OS_WIN
+
+static inline QString argvToString(const char *arg)
+{
+ return QString::fromLocal8Bit(arg);
+}
+
int main(int argc, char *argv[])
+#else
+
+static inline QString argvToString(const wchar_t *arg)
+{
+ return QString::fromWCharArray(arg);
+}
+
+int wmain(int argc, wchar_t *argv[])
+#endif
{
int ex = EXIT_SUCCESS;
+
+ QStringList argV;
+ argV.reserve(argc - 1);
+ std::transform(argv + 1, argv + argc, std::back_inserter(argV), argvToString);
+
try {
- ex = shibokenMain(argc, argv);
+ ex = shibokenMain(argV);
} catch (const std::exception &e) {
- std::cerr << e.what() << std::endl;
+ std::cerr << appName << " error: " << e.what() << std::endl;
ex = EXIT_FAILURE;
}
return ex;
diff --git a/sources/shiboken6/generator/qtdoc/qtdocgenerator.cpp b/sources/shiboken6/generator/qtdoc/qtdocgenerator.cpp
index 8c768a57d..2797ff254 100644
--- a/sources/shiboken6/generator/qtdoc/qtdocgenerator.cpp
+++ b/sources/shiboken6/generator/qtdoc/qtdocgenerator.cpp
@@ -1,33 +1,11 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "qtdocgenerator.h"
+#include "generatorcontext.h"
+#include "codesnip.h"
#include "exception.h"
+#include "abstractmetaargument.h"
#include "apiextractorresult.h"
#include "qtxmltosphinx.h"
#include "rstformat.h"
@@ -37,6 +15,7 @@
#include <abstractmetafield.h>
#include <abstractmetafunction.h>
#include <abstractmetalang.h>
+#include "abstractmetalang_helpers.h"
#include <fileout.h>
#include <messages.h>
#include <modifications.h>
@@ -44,25 +23,97 @@
#include <reporthandler.h>
#include <textstream.h>
#include <typedatabase.h>
-#include <typesystem.h>
+#include <functiontypeentry.h>
+#include <enumtypeentry.h>
+#include <complextypeentry.h>
+#include <flagstypeentry.h>
+#include <primitivetypeentry.h>
#include <qtdocparser.h>
#include <doxygenparser.h>
+#include "qtcompat.h"
+
#include <QtCore/QTextStream>
#include <QtCore/QFile>
#include <QtCore/QDir>
+#include <QtCore/QJsonArray>
+#include <QtCore/QJsonDocument>
+#include <QtCore/QJsonObject>
+#include <QtCore/QSet>
#include <algorithm>
#include <limits>
-static inline QString additionalDocumentationOption() { return QStringLiteral("additional-documentation"); }
+using namespace Qt::StringLiterals;
+
+static inline QString classScope(const AbstractMetaClassCPtr &metaClass)
+{
+ return metaClass->fullName();
+}
+
+struct DocPackage
+{
+ QStringList classPages;
+ QStringList decoratorPages;
+ AbstractMetaFunctionCList globalFunctions;
+ AbstractMetaEnumList globalEnums;
+};
+
+struct DocGeneratorOptions
+{
+ QtXmlToSphinxParameters parameters;
+ QString extraSectionDir;
+ QString additionalDocumentationList;
+ QString inheritanceFile;
+ bool doxygen = false;
+ bool inheritanceDiagram = true;
+};
+
+struct GeneratorDocumentation
+{
+ struct Property
+ {
+ QString name;
+ Documentation documentation;
+ AbstractMetaType type;
+ AbstractMetaFunctionCPtr getter;
+ AbstractMetaFunctionCPtr setter;
+ AbstractMetaFunctionCPtr reset;
+ AbstractMetaFunctionCPtr notify;
+ };
+
+ AbstractMetaFunctionCList allFunctions;
+ AbstractMetaFunctionCList tocNormalFunctions; // Index lists
+ AbstractMetaFunctionCList tocVirtuals;
+ AbstractMetaFunctionCList tocSignalFunctions;
+ AbstractMetaFunctionCList tocSlotFunctions;
+ AbstractMetaFunctionCList tocStaticFunctions;
+
+ QList<Property> properties;
+};
+
+static bool operator<(const GeneratorDocumentation::Property &lhs,
+ const GeneratorDocumentation::Property &rhs)
+{
+ return lhs.name < rhs.name;
+}
+
+static QString propertyRefTarget(const QString &name)
+{
+ QString result = name;
+ // For sphinx referencing, disambiguate the target from the getter name
+ // by appending an invisible "Hangul choseong filler" character.
+ result.append(QChar(0x115F));
+ return result;
+}
+
+constexpr auto additionalDocumentationOption = "additional-documentation"_L1;
-static inline QString none() { return QStringLiteral("None"); }
+constexpr auto none = "None"_L1;
static bool shouldSkip(const AbstractMetaFunctionCPtr &func)
{
- // Constructors go to separate section
- if (DocParser::skipForQuery(func) || func->isConstructor())
+ if (DocParser::skipForQuery(func))
return true;
// Search a const clone (QImage::bits() vs QImage::bits() const)
@@ -75,12 +126,12 @@ static bool shouldSkip(const AbstractMetaFunctionCPtr &func)
if (f != func
&& f->isConstant()
&& f->name() == func->name()
- && f->arguments().count() == funcArgs.count()) {
+ && f->arguments().size() == funcArgs.size()) {
// Compare each argument
bool cloneFound = true;
const AbstractMetaArgumentList fargs = f->arguments();
- for (int i = 0, max = funcArgs.count(); i < max; ++i) {
+ for (qsizetype i = 0, max = funcArgs.size(); i < max; ++i) {
if (funcArgs.at(i).type().typeEntry() != fargs.at(i).type().typeEntry()) {
cloneFound = false;
break;
@@ -95,116 +146,205 @@ static bool shouldSkip(const AbstractMetaFunctionCPtr &func)
static bool functionSort(const AbstractMetaFunctionCPtr &func1, const AbstractMetaFunctionCPtr &func2)
{
- return func1->name() < func2->name();
+ const bool ctor1 = func1->isConstructor();
+ if (ctor1 != func2->isConstructor())
+ return ctor1;
+ const QString &name1 = func1->name();
+ const QString &name2 = func2->name();
+ if (name1 != name2)
+ return name1 < name2;
+ return func1->arguments().size() < func2->arguments().size();
}
-static inline QVersionNumber versionOf(const TypeEntry *te)
+static inline QVersionNumber versionOf(const TypeEntryCPtr &te)
{
if (te) {
const auto version = te->version();
if (!version.isNull() && version > QVersionNumber(0, 0))
return version;
}
- return QVersionNumber();
-}
-
-static const QHash<QString, QString> &operatorMapping()
-{
- static const QHash<QString, QString> result = {
- {QLatin1String("operator+"), QLatin1String("__add__")},
- {QLatin1String("operator+="), QLatin1String("__iadd__")},
- {QLatin1String("operator-"), QLatin1String("__sub__")},
- {QLatin1String("operator-="), QLatin1String("__isub__")},
- {QLatin1String("operator*"), QLatin1String("__mul__")},
- {QLatin1String("operator*="), QLatin1String("__imul__")},
- {QLatin1String("operator/"), QLatin1String("__div__")},
- {QLatin1String("operator/="), QLatin1String("__idiv__")},
- {QLatin1String("operator%"), QLatin1String("__mod__")},
- {QLatin1String("operator%="), QLatin1String("__imod__")},
- {QLatin1String("operator<<"), QLatin1String("__lshift__")},
- {QLatin1String("operator<<="), QLatin1String("__ilshift__")},
- {QLatin1String("operator>>"), QLatin1String("__rshift__")},
- {QLatin1String("operator>>="), QLatin1String("__irshift__")},
- {QLatin1String("operator&"), QLatin1String("__and__")},
- {QLatin1String("operator&="), QLatin1String("__iand__")},
- {QLatin1String("operator|"), QLatin1String("__or__")},
- {QLatin1String("operator|="), QLatin1String("__ior__")},
- {QLatin1String("operator^"), QLatin1String("__xor__")},
- {QLatin1String("operator^="), QLatin1String("__ixor__")},
- {QLatin1String("operator=="), QLatin1String("__eq__")},
- {QLatin1String("operator!="), QLatin1String("__ne__")},
- {QLatin1String("operator<"), QLatin1String("__lt__")},
- {QLatin1String("operator<="), QLatin1String("__le__")},
- {QLatin1String("operator>"), QLatin1String("__gt__")},
- {QLatin1String("operator>="), QLatin1String("__ge__")},
- };
- return result;
+ return {};
}
-static QString getFuncName(const AbstractMetaFunctionCPtr& cppFunc)
+struct docRef
{
- const auto it = operatorMapping().constFind(cppFunc->name());
- QString result = it != operatorMapping().cend() ? it.value() : cppFunc->name();
- result.replace(QLatin1String("::"), QLatin1String("."));
+ explicit docRef(const char *kind, QAnyStringView name) :
+ m_kind(kind), m_name(name) {}
+
+ const char *m_kind;
+ QAnyStringView m_name;
+};
+
+static TextStream &operator<<(TextStream &s, const docRef &dr)
+{
+ s << ':' << dr.m_kind << ":`" << dr.m_name << '`';
+ return s;
+}
+
+static QString fileNameToTocEntry(const QString &fileName)
+{
+ constexpr auto rstSuffix = ".rst"_L1;
+
+ QString result = fileName;
+ if (result.endsWith(rstSuffix))
+ result.chop(rstSuffix.size()); // Remove the .rst extension
+ // skip namespace if necessary
+ auto lastDot = result.lastIndexOf(u'.');
+ if (lastDot != -1)
+ result.remove(0, lastDot + 1);
return result;
}
+static void readExtraDoc(const QFileInfo &fi,
+ const QString &moduleName,
+ const QString &outputDir,
+ DocPackage *docPackage, QStringList *extraTocEntries)
+{
+ // Strip to "Property.rst" in output directory
+ const QString newFileName = fi.fileName().mid(moduleName.size() + 1);
+ QFile sourceFile(fi.absoluteFilePath());
+ if (!sourceFile.open(QIODevice::ReadOnly|QIODevice::Text)) {
+ qCWarning(lcShibokenDoc, "%s", qPrintable(msgCannotOpenForReading(sourceFile)));
+ return;
+ }
+ const QByteArray contents = sourceFile.readAll();
+ sourceFile.close();
+ QFile targetFile(outputDir + u'/' + newFileName);
+ if (!targetFile.open(QIODevice::WriteOnly|QIODevice::Text)) {
+ qCWarning(lcShibokenDoc, "%s", qPrintable(msgCannotOpenForWriting(targetFile)));
+ return;
+ }
+ targetFile.write(contents);
+ if (contents.contains("decorator::"))
+ docPackage->decoratorPages.append(newFileName);
+ else
+ docPackage->classPages.append(newFileName);
+ extraTocEntries->append(fileNameToTocEntry(newFileName));
+}
+
+// Format a short documentation reference (automatically dropping the prefix
+// by using '~'), usable for property/attributes ("attr").
+struct shortDocRef
+{
+ explicit shortDocRef(const char *kind, QAnyStringView name) :
+ m_kind(kind), m_name(name) {}
+
+ const char *m_kind;
+ QAnyStringView m_name;
+};
+
+static TextStream &operator<<(TextStream &s, const shortDocRef &sdr)
+{
+ s << ':' << sdr.m_kind << ":`~" << sdr.m_name << '`';
+ return s;
+}
+
+struct functionRef : public docRef
+{
+ explicit functionRef(QAnyStringView name) : docRef("meth", name) {}
+};
+
+struct classRef : public shortDocRef
+{
+ explicit classRef(QAnyStringView name) : shortDocRef("class", name) {}
+};
+
+struct propRef : public shortDocRef // Attribute/property (short) reference
+{
+ explicit propRef(const QString &target) :
+ shortDocRef("attr", target) {}
+};
+
+struct headline
+{
+ explicit headline(QAnyStringView title, char underLineChar = '-') :
+ m_title(title), m_underLineChar(underLineChar) {}
+
+ QAnyStringView m_title;
+ char m_underLineChar;
+};
+
+static TextStream &operator<<(TextStream &s, const headline &h)
+{
+ s << h.m_title << '\n' << Pad(h.m_underLineChar, h.m_title.size()) << "\n\n";
+ return s;
+}
+
+struct pyClass
+{
+ explicit pyClass(QAnyStringView name) : m_name(name) {}
+
+ QAnyStringView m_name;
+};
+
+static TextStream &operator<<(TextStream &s, pyClass c)
+{
+ s << ".. py:class:: " << c.m_name << "\n\n";
+ return s;
+}
+
+struct currentModule
+{
+ explicit currentModule(QAnyStringView module) : m_module(module) {}
+
+ QAnyStringView m_module;
+};
+
+static TextStream &operator<<(TextStream &s, const currentModule &m)
+{
+ s << ".. currentmodule:: " << m.m_module << "\n\n\n";
+ return s;
+}
+
+DocGeneratorOptions QtDocGenerator::m_options;
+
QtDocGenerator::QtDocGenerator()
{
- m_parameters.snippetComparison =
+ m_options.parameters.snippetComparison =
ReportHandler::debugLevel() >= ReportHandler::FullDebug;
}
QtDocGenerator::~QtDocGenerator() = default;
-QString QtDocGenerator::fileNameSuffix() const
+QString QtDocGenerator::fileNameSuffix()
{
- return QLatin1String(".rst");
+ return u".rst"_s;
}
-bool QtDocGenerator::shouldGenerate(const AbstractMetaClass *cls) const
+bool QtDocGenerator::shouldGenerate(const TypeEntryCPtr &te) const
{
- return Generator::shouldGenerate(cls)
- && cls->typeEntry()->type() != TypeEntry::SmartPointerType;
+ return Generator::shouldGenerate(te)
+ && te->type() != TypeEntry::SmartPointerType;
}
QString QtDocGenerator::fileNameForContext(const GeneratorContext &context) const
{
- const AbstractMetaClass *metaClass = context.metaClass();
- if (!context.forSmartPointer()) {
- return metaClass->name() + fileNameSuffix();
- }
- const AbstractMetaType &smartPointerType = context.preciseType();
- QString fileNameBase = getFileNameBaseForSmartPointer(smartPointerType, metaClass);
- return fileNameBase + fileNameSuffix();
+ return fileNameForContextHelper(context, fileNameSuffix(),
+ FileNameFlag::UnqualifiedName
+ | FileNameFlag::KeepCase);
}
void QtDocGenerator::writeFormattedBriefText(TextStream &s, const Documentation &doc,
- const AbstractMetaClass *metaclass) const
+ const QString &scope) const
{
- writeFormattedText(s, doc.brief(), doc.format(), metaclass);
+ writeFormattedText(s, doc.brief(), doc.format(), scope);
}
void QtDocGenerator::writeFormattedDetailedText(TextStream &s, const Documentation &doc,
- const AbstractMetaClass *metaclass) const
+ const QString &scope) const
{
- writeFormattedText(s, doc.detailed(), doc.format(), metaclass);
+ writeFormattedText(s, doc.detailed(), doc.format(), scope);
}
void QtDocGenerator::writeFormattedText(TextStream &s, const QString &doc,
Documentation::Format format,
- const AbstractMetaClass *metaClass) const
+ const QString &scope) const
{
- QString metaClassName;
-
- if (metaClass)
- metaClassName = metaClass->fullName();
-
if (format == Documentation::Native) {
- QtXmlToSphinx x(this, m_parameters, doc, metaClassName);
+ QtXmlToSphinx x(this, m_options.parameters, doc, scope);
s << x;
} else {
- const auto lines = QStringView{doc}.split(QLatin1Char('\n'));
+ const auto lines = QStringView{doc}.split(u'\n');
int typesystemIndentation = std::numeric_limits<int>::max();
// check how many spaces must be removed from the beginning of each line
for (const auto &line : lines) {
@@ -225,50 +365,71 @@ void QtDocGenerator::writeFormattedText(TextStream &s, const QString &doc,
s << '\n';
}
-static void writeInheritedByList(TextStream& s, const AbstractMetaClass* metaClass,
+static void writeInheritanceList(TextStream &s, const AbstractMetaClassCList& classes,
+ const char *label)
+{
+ s << "**" << label << ":** ";
+ for (qsizetype i = 0, size = classes.size(); i < size; ++i) {
+ if (i > 0)
+ s << ", ";
+ s << classRef(classes.at(i)->fullName());
+ }
+ s << "\n\n";
+}
+
+static void writeInheritedByList(TextStream &s, const AbstractMetaClassCPtr &metaClass,
const AbstractMetaClassCList& allClasses)
{
AbstractMetaClassCList res;
- for (auto c : allClasses) {
- if (c != metaClass && c->inheritsFrom(metaClass))
+ for (const auto &c : allClasses) {
+ if (c != metaClass && inheritsFrom(c, metaClass))
res << c;
}
- if (res.isEmpty())
- return;
+ if (!res.isEmpty())
+ writeInheritanceList(s, res, "Inherited by");
+}
+
+static void writeInheritedFromList(TextStream &s, const AbstractMetaClassCPtr &metaClass)
+{
+ AbstractMetaClassCList res;
- s << "**Inherited by:** ";
- QStringList classes;
- for (auto c : qAsConst(res))
- classes << QLatin1String(":ref:`") + c->name() + QLatin1Char('`');
- s << classes.join(QLatin1String(", ")) << "\n\n";
+ recurseClassHierarchy(metaClass, [&res, metaClass](const AbstractMetaClassCPtr &c) {
+ if (c.get() != metaClass.get())
+ res.append(c);
+ return false;
+ });
+
+ if (!res.isEmpty())
+ writeInheritanceList(s, res, "Inherits from");
}
void QtDocGenerator::generateClass(TextStream &s, const GeneratorContext &classContext)
{
- const AbstractMetaClass *metaClass = classContext.metaClass();
+ AbstractMetaClassCPtr metaClass = classContext.metaClass();
qCDebug(lcShibokenDoc).noquote().nospace() << "Generating Documentation for " << metaClass->fullName();
- m_packages[metaClass->package()] << fileNameForContext(classContext);
+ m_packages[metaClass->package()].classPages << fileNameForContext(classContext);
m_docParser->setPackageName(metaClass->package());
- m_docParser->fillDocumentation(const_cast<AbstractMetaClass*>(metaClass));
-
- QString className = metaClass->name();
- s << ".. _" << className << ":" << "\n\n";
- s << ".. currentmodule:: " << metaClass->package() << "\n\n\n";
+ m_docParser->fillDocumentation(std::const_pointer_cast<AbstractMetaClass>(metaClass));
- s << className << '\n';
- s << Pad('*', className.count()) << "\n\n";
+ s << currentModule(metaClass->package()) << pyClass(metaClass->name());
+ Indentation indent(s);
auto documentation = metaClass->documentation();
+ const QString scope = classScope(metaClass);
if (documentation.hasBrief())
- writeFormattedBriefText(s, documentation, metaClass);
-
- s << ".. inheritance-diagram:: " << metaClass->fullName()<< '\n'
- << " :parts: 2\n\n";
- // TODO: This would be a parameter in the future...
+ writeFormattedBriefText(s, documentation, scope);
+ if (!metaClass->baseClasses().isEmpty()) {
+ if (m_options.inheritanceDiagram) {
+ s << ".. inheritance-diagram:: " << metaClass->fullName()<< '\n'
+ << " :parts: 2\n\n";
+ } else {
+ writeInheritedFromList(s, metaClass);
+ }
+ }
writeInheritedByList(s, metaClass, api().classes());
@@ -278,123 +439,113 @@ void QtDocGenerator::generateClass(TextStream &s, const GeneratorContext &classC
if (metaClass->attributes().testFlag(AbstractMetaClass::Deprecated))
s << rstDeprecationNote("class");
- writeFunctionList(s, metaClass);
+ const GeneratorDocumentation doc = generatorDocumentation(metaClass);
- //Function list
- auto functionList = metaClass->functions();
- std::sort(functionList.begin(), functionList.end(), functionSort);
+ if (!doc.allFunctions.isEmpty() || !doc.properties.isEmpty()) {
+ s << '\n' << headline("Synopsis");
+ writePropertyToc(s, doc);
+ writeFunctionToc(s, u"Methods"_s, doc.tocNormalFunctions);
+ writeFunctionToc(s, u"Virtual methods"_s, doc.tocVirtuals);
+ writeFunctionToc(s, u"Slots"_s, doc.tocSlotFunctions);
+ writeFunctionToc(s, u"Signals"_s, doc.tocSignalFunctions);
+ writeFunctionToc(s, u"Static functions"_s, doc.tocStaticFunctions);
+ }
- s << "\nDetailed Description\n"
- "--------------------\n\n"
- << ".. _More:\n";
+ s << "\n.. note::\n"
+ " This documentation may contain snippets that were automatically\n"
+ " translated from C++ to Python. We always welcome contributions\n"
+ " to the snippet translation. If you see an issue with the\n"
+ " translation, you can also let us know by creating a ticket on\n"
+ " https:/bugreports.qt.io/projects/PYSIDE\n\n";
- writeInjectDocumentation(s, TypeSystem::DocModificationPrepend, metaClass, nullptr);
- if (!writeInjectDocumentation(s, TypeSystem::DocModificationReplace, metaClass, nullptr))
- writeFormattedDetailedText(s, documentation, metaClass);
+ s << '\n' << headline("Detailed Description") << ".. _More:\n";
- if (!metaClass->isNamespace())
- writeConstructors(s, metaClass);
- writeEnums(s, metaClass);
- if (!metaClass->isNamespace())
- writeFields(s, metaClass);
+ writeInjectDocumentation(s, TypeSystem::DocModificationPrepend, metaClass);
+ if (!writeInjectDocumentation(s, TypeSystem::DocModificationReplace, metaClass))
+ writeFormattedDetailedText(s, documentation, scope);
+ writeInjectDocumentation(s, TypeSystem::DocModificationAppend, metaClass);
+ writeEnums(s, metaClass->enums(), scope);
- QStringList uniqueFunctions;
- for (const auto &func : qAsConst(functionList)) {
- if (shouldSkip(func))
- continue;
+ if (!doc.properties.isEmpty())
+ writeProperties(s, doc, metaClass);
- if (func->isStatic())
- s << ".. staticmethod:: ";
- else
- s << ".. method:: ";
-
- writeFunction(s, metaClass, func, !uniqueFunctions.contains(func->name()));
- uniqueFunctions.append(func->name());
- }
+ if (!metaClass->isNamespace())
+ writeFields(s, metaClass);
- writeInjectDocumentation(s, TypeSystem::DocModificationAppend, metaClass, nullptr);
+ writeFunctions(s, doc.allFunctions, metaClass, scope);
}
-void QtDocGenerator::writeFunctionList(TextStream& s, const AbstractMetaClass* cppClass)
+void QtDocGenerator::writeFunctionToc(TextStream &s, const QString &title,
+ const AbstractMetaFunctionCList &functions)
{
- QStringList functionList;
- QStringList virtualList;
- QStringList signalList;
- QStringList slotList;
- QStringList staticFunctionList;
-
- const auto &classFunctions = cppClass->functions();
- for (const auto &func : classFunctions) {
- if (shouldSkip(func))
- continue;
-
- QString className;
- if (!func->isConstructor())
- className = cppClass->fullName() + QLatin1Char('.');
- else if (func->implementingClass() && func->implementingClass()->enclosingClass())
- className = func->implementingClass()->enclosingClass()->fullName() + QLatin1Char('.');
- QString funcName = getFuncName(func);
-
- QString str = QLatin1String("def :meth:`");
-
- str += funcName;
- str += QLatin1Char('<');
- if (!funcName.startsWith(className))
- str += className;
- str += funcName;
- str += QLatin1String(">` (");
- str += parseArgDocStyle(cppClass, func);
- str += QLatin1Char(')');
-
- if (func->isStatic())
- staticFunctionList << str;
- else if (func->isVirtual())
- virtualList << str;
- else if (func->isSignal())
- signalList << str;
- else if (func->isSlot())
- slotList << str;
- else
- functionList << str;
+ if (!functions.isEmpty()) {
+ s << headline(title, '^')
+ << ".. container:: function_list\n\n" << indent;
+ // Functions are sorted by the Metabuilder; erase overloads
+ QStringList toc;
+ toc.reserve(functions.size());
+ std::transform(functions.cbegin(), functions.end(),
+ std::back_inserter(toc), getFuncName);
+ toc.erase(std::unique(toc.begin(), toc.end()), toc.end());
+ for (const auto &func : toc)
+ s << "* def " << functionRef(func) << '\n';
+ s << outdent << "\n\n";
}
+}
- if (!functionList.isEmpty() || !staticFunctionList.isEmpty()) {
- QtXmlToSphinx::Table functionTable;
-
- s << "\nSynopsis\n--------\n\n";
+void QtDocGenerator::writePropertyToc(TextStream &s,
+ const GeneratorDocumentation &doc)
+{
+ if (doc.properties.isEmpty())
+ return;
- writeFunctionBlock(s, QLatin1String("Functions"), functionList);
- writeFunctionBlock(s, QLatin1String("Virtual functions"), virtualList);
- writeFunctionBlock(s, QLatin1String("Slots"), slotList);
- writeFunctionBlock(s, QLatin1String("Signals"), signalList);
- writeFunctionBlock(s, QLatin1String("Static functions"), staticFunctionList);
+ s << headline("Properties", '^')
+ << ".. container:: function_list\n\n" << indent;
+ for (const auto &prop : doc.properties) {
+ s << "* " << propRef(propertyRefTarget(prop.name));
+ if (prop.documentation.hasBrief())
+ s << " - " << prop.documentation.brief();
+ s << '\n';
}
+ s << outdent << "\n\n";
}
-void QtDocGenerator::writeFunctionBlock(TextStream& s, const QString& title, QStringList& functions)
+void QtDocGenerator::writeProperties(TextStream &s,
+ const GeneratorDocumentation &doc,
+ const AbstractMetaClassCPtr &cppClass) const
{
- if (!functions.isEmpty()) {
- s << title << '\n'
- << Pad('^', title.size()) << '\n';
-
- std::sort(functions.begin(), functions.end());
-
- s << ".. container:: function_list\n\n";
- Indentation indentation(s);
- for (const QString &func : qAsConst(functions))
- s << "* " << func << '\n';
- s << "\n\n";
+ s << "\n.. note:: Properties can be used directly when "
+ << "``from __feature__ import true_property`` is used or via accessor "
+ << "functions otherwise.\n\n";
+
+ const QString scope = classScope(cppClass);
+ for (const auto &prop : doc.properties) {
+ const QString type = translateToPythonType(prop.type, cppClass, /* createRef */ false);
+ s << ".. py:property:: " << propertyRefTarget(prop.name)
+ << "\n :type: " << type << "\n\n\n";
+ if (!prop.documentation.isEmpty())
+ writeFormattedText(s, prop.documentation.detailed(), Documentation::Native, scope);
+ s << "**Access functions:**\n";
+ if (prop.getter)
+ s << " * " << functionRef(prop.getter->name()) << '\n';
+ if (prop.setter)
+ s << " * " << functionRef(prop.setter->name()) << '\n';
+ if (prop.reset)
+ s << " * " << functionRef(prop.reset->name()) << '\n';
+ if (prop.notify)
+ s << " * Signal " << functionRef(prop.notify->name()) << '\n';
+ s << '\n';
}
}
-void QtDocGenerator::writeEnums(TextStream& s, const AbstractMetaClass* cppClass) const
+void QtDocGenerator::writeEnums(TextStream &s, const AbstractMetaEnumList &enums,
+ const QString &scope) const
{
- static const QString section_title = QLatin1String(".. attribute:: ");
-
- for (const AbstractMetaEnum &en : cppClass->enums()) {
- s << section_title << cppClass->fullName() << '.' << en.name() << "\n\n";
- writeFormattedDetailedText(s, en.documentation(), cppClass);
+ for (const AbstractMetaEnum &en : enums) {
+ s << pyClass(en.name());
+ Indentation indent(s);
+ writeFormattedDetailedText(s, en.documentation(), scope);
const auto version = versionOf(en.typeEntry());
if (!version.isNull())
s << rstVersionAdded(version);
@@ -402,116 +553,61 @@ void QtDocGenerator::writeEnums(TextStream& s, const AbstractMetaClass* cppClass
}
-void QtDocGenerator::writeFields(TextStream& s, const AbstractMetaClass* cppClass) const
+void QtDocGenerator::writeFields(TextStream &s, const AbstractMetaClassCPtr &cppClass) const
{
- static const QString section_title = QLatin1String(".. attribute:: ");
+ constexpr auto section_title = ".. attribute:: "_L1;
+ const QString scope = classScope(cppClass);
for (const AbstractMetaField &field : cppClass->fields()) {
s << section_title << cppClass->fullName() << "." << field.name() << "\n\n";
- writeFormattedDetailedText(s, field.documentation(), cppClass);
+ writeFormattedDetailedText(s, field.documentation(), scope);
}
}
-void QtDocGenerator::writeConstructors(TextStream& s, const AbstractMetaClass* cppClass) const
+QString QtDocGenerator::formatArgs(const AbstractMetaFunctionCPtr &func)
{
- static const QString sectionTitle = QLatin1String(".. class:: ");
-
- auto lst = cppClass->queryFunctions(FunctionQueryOption::Constructors | FunctionQueryOption::Visible);
- for (int i = lst.size() - 1; i >= 0; --i) {
- if (lst.at(i)->isModifiedRemoved() || lst.at(i)->functionType() == AbstractMetaFunction::MoveConstructorFunction)
- lst.removeAt(i);
- }
-
- bool first = true;
- QHash<QString, AbstractMetaArgument> arg_map;
-
- if (lst.isEmpty()) {
- s << sectionTitle << cppClass->fullName();
- } else {
- QByteArray pad;
- for (const auto &func : qAsConst(lst)) {
- s << pad;
- if (first) {
- first = false;
- s << sectionTitle;
- pad = QByteArray(sectionTitle.size(), ' ');
- }
- s << functionSignature(cppClass, func) << "\n\n";
-
- const auto version = versionOf(func->typeEntry());
- if (!version.isNull())
- s << pad << rstVersionAdded(version);
- if (func->attributes().testFlag(AbstractMetaFunction::Deprecated))
- s << pad << rstDeprecationNote("constructor");
-
- const AbstractMetaArgumentList &arguments = func->arguments();
- for (const AbstractMetaArgument &arg : arguments) {
- if (!arg_map.contains(arg.name())) {
- arg_map.insert(arg.name(), arg);
- }
- }
- }
- }
-
- s << '\n';
-
- for (auto it = arg_map.cbegin(), end = arg_map.cend(); it != end; ++it) {
- s.indent(2);
- writeParameterType(s, cppClass, it.value());
- s.outdent(2);
- }
-
- s << '\n';
-
- for (const auto &func : qAsConst(lst))
- writeFormattedDetailedText(s, func->documentation(), cppClass);
-}
-
-QString QtDocGenerator::parseArgDocStyle(const AbstractMetaClass* /* cppClass */,
- const AbstractMetaFunctionCPtr &func)
-{
- QString ret;
+ QString ret = u"("_s;
int optArgs = 0;
const AbstractMetaArgumentList &arguments = func->arguments();
for (const AbstractMetaArgument &arg : arguments) {
- if (func->argumentRemoved(arg.argumentIndex() + 1))
+ if (arg.isModifiedRemoved())
continue;
bool thisIsoptional = !arg.defaultValueExpression().isEmpty();
if (optArgs || thisIsoptional) {
- ret += QLatin1Char('[');
+ ret += u'[';
optArgs++;
}
if (arg.argumentIndex() > 0)
- ret += QLatin1String(", ");
+ ret += u", "_s;
ret += arg.name();
if (thisIsoptional) {
QString defValue = arg.defaultValueExpression();
- if (defValue == QLatin1String("QString()")) {
- defValue = QLatin1String("\"\"");
- } else if (defValue == QLatin1String("QStringList()")
- || defValue.startsWith(QLatin1String("QVector"))
- || defValue.startsWith(QLatin1String("QList"))) {
- defValue = QLatin1String("list()");
- } else if (defValue == QLatin1String("QVariant()")) {
- defValue = none();
+ if (defValue == u"QString()") {
+ defValue = u"\"\""_s;
+ } else if (defValue == u"QStringList()"
+ || defValue.startsWith(u"QVector")
+ || defValue.startsWith(u"QList")) {
+ defValue = u"list()"_s;
+ } else if (defValue == u"QVariant()") {
+ defValue = none;
} else {
- defValue.replace(QLatin1String("::"), QLatin1String("."));
- if (defValue == QLatin1String("nullptr"))
- defValue = none();
- else if (defValue == QLatin1String("0") && arg.type().isObject())
- defValue = none();
+ defValue.replace(u"::"_s, u"."_s);
+ if (defValue == u"nullptr")
+ defValue = none;
+ else if (defValue == u"0" && arg.type().isObject())
+ defValue = none;
}
- ret += QLatin1Char('=') + defValue;
+ ret += u'=' + defValue;
}
}
- ret += QString(optArgs, QLatin1Char(']'));
+ ret += QString(optArgs, u']') + u')';
return ret;
}
@@ -521,11 +617,9 @@ void QtDocGenerator::writeDocSnips(TextStream &s,
TypeSystem::Language language)
{
Indentation indentation(s);
- QStringList invalidStrings;
- const static QString startMarkup = QLatin1String("[sphinx-begin]");
- const static QString endMarkup = QLatin1String("[sphinx-end]");
-
- invalidStrings << QLatin1String("*") << QLatin1String("//") << QLatin1String("/*") << QLatin1String("*/");
+ static const QStringList invalidStrings{u"*"_s, u"//"_s, u"/*"_s, u"*/"_s};
+ const static QString startMarkup = u"[sphinx-begin]"_s;
+ const static QString endMarkup = u"[sphinx-end]"_s;
for (const CodeSnip &snip : codeSnips) {
if ((snip.position != position) ||
@@ -534,19 +628,19 @@ void QtDocGenerator::writeDocSnips(TextStream &s,
QString code = snip.code();
while (code.contains(startMarkup) && code.contains(endMarkup)) {
- int startBlock = code.indexOf(startMarkup) + startMarkup.size();
- int endBlock = code.indexOf(endMarkup);
+ const auto startBlock = code.indexOf(startMarkup) + startMarkup.size();
+ const auto endBlock = code.indexOf(endMarkup);
if ((startBlock == -1) || (endBlock == -1))
break;
QString codeBlock = code.mid(startBlock, endBlock - startBlock);
- const QStringList rows = codeBlock.split(QLatin1Char('\n'));
+ const QStringList rows = codeBlock.split(u'\n');
int currentRow = 0;
- int offset = 0;
+ qsizetype offset = 0;
for (QString row : rows) {
- for (const QString &invalidString : qAsConst(invalidStrings))
+ for (const QString &invalidString : std::as_const(invalidStrings))
row.remove(invalidString);
if (row.trimmed().size() == 0) {
@@ -558,9 +652,9 @@ void QtDocGenerator::writeDocSnips(TextStream &s,
if (currentRow == 0) {
//find offset
for (auto c : row) {
- if (c == QLatin1Char(' '))
+ if (c == u' ')
offset++;
- else if (c == QLatin1Char('\n'))
+ else if (c == u'\n')
offset = 0;
else
break;
@@ -575,304 +669,470 @@ void QtDocGenerator::writeDocSnips(TextStream &s,
}
}
-bool QtDocGenerator::writeInjectDocumentation(TextStream& s,
- TypeSystem::DocModificationMode mode,
- const AbstractMetaClass* cppClass,
- const AbstractMetaFunctionCPtr &func)
+bool QtDocGenerator::writeDocModifications(TextStream &s,
+ const DocModificationList &mods,
+ TypeSystem::DocModificationMode mode,
+ const QString &scope) const
{
- Indentation indentation(s);
bool didSomething = false;
-
- const DocModificationList &mods = cppClass->typeEntry()->docModifications();
for (const DocModification &mod : mods) {
if (mod.mode() == mode) {
- bool modOk = func ? mod.signature() == func->minimalSignature() : mod.signature().isEmpty();
-
- if (modOk) {
- Documentation::Format fmt;
-
- if (mod.format() == TypeSystem::NativeCode)
- fmt = Documentation::Native;
- else if (mod.format() == TypeSystem::TargetLangCode)
- fmt = Documentation::Target;
- else
- continue;
-
- writeFormattedText(s, mod.code(), fmt, cppClass);
+ switch (mod.format()) {
+ case TypeSystem::NativeCode:
+ writeFormattedText(s, mod.code(), Documentation::Native, scope);
+ didSomething = true;
+ break;
+ case TypeSystem::TargetLangCode:
+ writeFormattedText(s, mod.code(), Documentation::Target, scope);
didSomething = true;
+ break;
+ default:
+ break;
}
}
}
+ return didSomething;
+}
+bool QtDocGenerator::writeInjectDocumentation(TextStream &s,
+ TypeSystem::DocModificationMode mode,
+ const AbstractMetaClassCPtr &cppClass) const
+{
+ const bool didSomething =
+ writeDocModifications(s, DocParser::getDocModifications(cppClass),
+ mode, classScope(cppClass));
s << '\n';
- // TODO: Deprecate the use of doc string on glue code.
+ // FIXME PYSIDE-7: Deprecate the use of doc string on glue code.
// This is pre "add-function" and "inject-documentation" tags.
const TypeSystem::CodeSnipPosition pos = mode == TypeSystem::DocModificationPrepend
? TypeSystem::CodeSnipPositionBeginning : TypeSystem::CodeSnipPositionEnd;
- if (func)
- writeDocSnips(s, func->injectedCodeSnips(), pos, TypeSystem::TargetLangCode);
- else
- writeDocSnips(s, cppClass->typeEntry()->codeSnips(), pos, TypeSystem::TargetLangCode);
+ writeDocSnips(s, cppClass->typeEntry()->codeSnips(), pos, TypeSystem::TargetLangCode);
return didSomething;
}
-QString QtDocGenerator::functionSignature(const AbstractMetaClass* cppClass,
- const AbstractMetaFunctionCPtr &func)
+bool QtDocGenerator::writeInjectDocumentation(TextStream &s,
+ TypeSystem::DocModificationMode mode,
+ const DocModificationList &modifications,
+ const AbstractMetaFunctionCPtr &func,
+ const QString &scope) const
{
- QString funcName;
+ const bool didSomething = writeDocModifications(s, modifications, mode, scope);
+ s << '\n';
- funcName = cppClass->fullName();
- if (!func->isConstructor())
- funcName += QLatin1Char('.') + getFuncName(func);
+ // FIXME PYSIDE-7: Deprecate the use of doc string on glue code.
+ // This is pre "add-function" and "inject-documentation" tags.
+ const TypeSystem::CodeSnipPosition pos = mode == TypeSystem::DocModificationPrepend
+ ? TypeSystem::CodeSnipPositionBeginning : TypeSystem::CodeSnipPositionEnd;
+ writeDocSnips(s, func->injectedCodeSnips(), pos, TypeSystem::TargetLangCode);
+ return didSomething;
+}
- return funcName + QLatin1Char('(') + parseArgDocStyle(cppClass, func)
- + QLatin1Char(')');
+static QString inline toRef(const QString &t)
+{
+ return ":class:`~"_L1 + t + u'`';
}
QString QtDocGenerator::translateToPythonType(const AbstractMetaType &type,
- const AbstractMetaClass* cppClass) const
+ const AbstractMetaClassCPtr &cppClass,
+ bool createRef) const
{
static const QStringList nativeTypes =
- {boolT(), floatT(), intT(), pyObjectT(), pyStrT()};
+ {boolT, floatT, intT, pyObjectT, pyStrT};
- const QString name = type.name();
+ QString name = type.name();
if (nativeTypes.contains(name))
return name;
- static const QMap<QString, QString> typeMap = {
- { cPyObjectT(), pyObjectT() },
- { qStringT(), pyStrT() },
- { QLatin1String("uchar"), pyStrT() },
- { QLatin1String("QStringList"), QLatin1String("list of strings") },
- { qVariantT(), pyObjectT() },
- { QLatin1String("quint32"), intT() },
- { QLatin1String("uint32_t"), intT() },
- { QLatin1String("quint64"), intT() },
- { QLatin1String("qint64"), intT() },
- { QLatin1String("size_t"), intT() },
- { QLatin1String("int64_t"), intT() },
- { QLatin1String("qreal"), floatT() }
+ if (type.typeUsagePattern() == AbstractMetaType::PrimitivePattern) {
+ const auto &basicName = basicReferencedTypeEntry(type.typeEntry())->name();
+ if (AbstractMetaType::cppSignedIntTypes().contains(basicName)
+ || AbstractMetaType::cppUnsignedIntTypes().contains(basicName)) {
+ return intT;
+ }
+ if (AbstractMetaType::cppFloatTypes().contains(basicName))
+ return floatT;
+ }
+
+ static const QSet<QString> stringTypes = {
+ u"uchar"_s, u"std::string"_s, u"std::wstring"_s,
+ u"std::stringview"_s, u"std::wstringview"_s,
+ qStringT, u"QStringView"_s, u"QAnyStringView"_s, u"QUtf8StringView"_s
+ };
+ if (stringTypes.contains(name))
+ return pyStrT;
+
+ static const QHash<QString, QString> typeMap = {
+ { cPyObjectT, pyObjectT },
+ { u"QStringList"_s, u"list of strings"_s },
+ { qVariantT, pyObjectT }
};
- const auto found = typeMap.find(name);
- if (found != typeMap.end())
+ const auto found = typeMap.constFind(name);
+ if (found != typeMap.cend())
return found.value();
- QString strType;
- if (type.isConstant() && name == QLatin1String("char") && type.indirections() == 1) {
- strType = QLatin1String("str");
- } else if (name.startsWith(unsignedShortT())) {
- strType = intT();
- } else if (name.startsWith(unsignedT())) { // uint and ulong
- strType = intT();
- } else if (type.isContainer()) {
+ if (type.isFlags()) {
+ const auto fte = std::static_pointer_cast<const FlagsTypeEntry>(type.typeEntry());
+ auto enumTypeEntry = fte->originator();
+ auto enumName = enumTypeEntry->targetLangName();
+ if (createRef)
+ enumName.prepend(enumTypeEntry->targetLangPackage() + u'.');
+ return "Combination of "_L1 + (createRef ? toRef(enumName) : enumName);
+ } else if (type.isEnum()) {
+ auto enumTypeEntry = std::static_pointer_cast<const EnumTypeEntry>(type.typeEntry());
+ auto enumName = enumTypeEntry->targetLangName();
+ if (createRef)
+ enumName.prepend(enumTypeEntry->targetLangPackage() + u'.');
+ return createRef ? toRef(enumName) : enumName;
+ }
+
+ if (type.isConstant() && name == "char"_L1 && type.indirections() == 1)
+ return "str"_L1;
+
+ if (type.isContainer()) {
QString strType = translateType(type, cppClass, Options(ExcludeConst) | ExcludeReference);
- strType.remove(QLatin1Char('*'));
- strType.remove(QLatin1Char('>'));
- strType.remove(QLatin1Char('<'));
- strType.replace(QLatin1String("::"), QLatin1String("."));
- if (strType.contains(QLatin1String("QList")) || strType.contains(QLatin1String("QVector"))) {
- strType.replace(QLatin1String("QList"), QLatin1String("list of "));
- strType.replace(QLatin1String("QVector"), QLatin1String("list of "));
- } else if (strType.contains(QLatin1String("QHash")) || strType.contains(QLatin1String("QMap"))) {
- strType.remove(QLatin1String("QHash"));
- strType.remove(QLatin1String("QMap"));
- QStringList types = strType.split(QLatin1Char(','));
+ strType.remove(u'*');
+ strType.remove(u'>');
+ strType.remove(u'<');
+ strType.replace(u"::"_s, u"."_s);
+ if (strType.contains(u"QList") || strType.contains(u"QVector")) {
+ strType.replace(u"QList"_s, u"list of "_s);
+ strType.replace(u"QVector"_s, u"list of "_s);
+ } else if (strType.contains(u"QHash") || strType.contains(u"QMap")) {
+ strType.remove(u"QHash"_s);
+ strType.remove(u"QMap"_s);
+ QStringList types = strType.split(u',');
strType = QString::fromLatin1("Dictionary with keys of type %1 and values of type %2.")
.arg(types[0], types[1]);
}
- } else {
- auto k = AbstractMetaClass::findClass(api().classes(), type.typeEntry());
- strType = k ? k->fullName() : type.name();
- strType = QStringLiteral(":any:`") + strType + QLatin1Char('`');
+ return strType;
}
- return strType;
+
+ if (auto k = AbstractMetaClass::findClass(api().classes(), type.typeEntry()))
+ return createRef ? toRef(k->fullName()) : k->name();
+
+ return createRef ? toRef(name) : name;
}
-void QtDocGenerator::writeParameterType(TextStream& s, const AbstractMetaClass* cppClass,
+QString QtDocGenerator::getFuncName(const AbstractMetaFunctionCPtr &cppFunc)
+{
+ if (cppFunc->isConstructor())
+ return "__init__"_L1;
+ QString result = cppFunc->name();
+ if (cppFunc->isOperatorOverload()) {
+ const QString pythonOperator = Generator::pythonOperatorFunctionName(result);
+ if (!pythonOperator.isEmpty())
+ return pythonOperator;
+ }
+ result.replace(u"::"_s, u"."_s);
+ return result;
+}
+
+void QtDocGenerator::writeParameterType(TextStream &s,
+ const AbstractMetaClassCPtr &cppClass,
const AbstractMetaArgument &arg) const
{
s << ":param " << arg.name() << ": "
<< translateToPythonType(arg.type(), cppClass) << '\n';
}
-void QtDocGenerator::writeFunctionParametersType(TextStream &s, const AbstractMetaClass *cppClass,
+void QtDocGenerator::writeFunctionParametersType(TextStream &s,
+ const AbstractMetaClassCPtr &cppClass,
const AbstractMetaFunctionCPtr &func) const
{
s << '\n';
const AbstractMetaArgumentList &funcArgs = func->arguments();
for (const AbstractMetaArgument &arg : funcArgs) {
-
- if (func->argumentRemoved(arg.argumentIndex() + 1))
- continue;
-
- writeParameterType(s, cppClass, arg);
+ if (!arg.isModifiedRemoved())
+ writeParameterType(s, cppClass, arg);
}
- if (!func->isConstructor() && !func->isVoid()) {
-
- QString retType;
+ QString retType;
+ if (!func->isConstructor()) {
// check if the return type was modified
- for (const auto &mod : func->modifications()) {
- for (const ArgumentModification &argMod : mod.argument_mods()) {
- if (argMod.index() == 0) {
- retType = argMod.modifiedType();
- break;
- }
- }
- }
-
- if (retType.isEmpty())
+ retType = func->modifiedTypeName();
+ if (retType.isEmpty() && !func->isVoid())
retType = translateToPythonType(func->type(), cppClass);
- s << ":rtype: " << retType << '\n';
}
+
+ if (!retType.isEmpty())
+ s << ":rtype: " << retType << '\n';
+
s << '\n';
}
-void QtDocGenerator::writeFunction(TextStream& s, const AbstractMetaClass* cppClass,
- const AbstractMetaFunctionCPtr &func, bool indexed)
+static bool containsFunctionDirective(const DocModification &dm)
{
- s << functionSignature(cppClass, func);
+ return dm.mode() != TypeSystem::DocModificationXPathReplace
+ && dm.code().contains(".. py:"_L1);
+}
- {
+void QtDocGenerator::writeFunctions(TextStream &s, const AbstractMetaFunctionCList &funcs,
+ const AbstractMetaClassCPtr &cppClass, const QString &scope)
+{
+ QString lastName;
+ for (const auto &func : funcs) {
+ const bool indexed = func->name() != lastName;
+ lastName = func->name();
+ writeFunction(s, func, cppClass, scope, indexed);
+ }
+}
+
+void QtDocGenerator::writeFunction(TextStream &s, const AbstractMetaFunctionCPtr &func,
+ const AbstractMetaClassCPtr &cppClass,
+ const QString &scope, bool indexed)
+{
+ const auto modifications = DocParser::getDocModifications(func, cppClass);
+
+ // Enable injecting parameter documentation by adding a complete function directive.
+ if (std::none_of(modifications.cbegin(), modifications.cend(), containsFunctionDirective)) {
+ if (func->ownerClass() == nullptr)
+ s << ".. py:function:: ";
+ else
+ s << (func->isStatic() ? ".. py:staticmethod:: " : ".. py:method:: ");
+ s << getFuncName(func) << formatArgs(func);
Indentation indentation(s);
if (!indexed)
s << "\n:noindex:";
+ if (func->cppAttributes().testFlag(FunctionAttribute::Final))
+ s << "\n:final:";
+ else if (func->isAbstract())
+ s << "\n:abstractmethod:";
s << "\n\n";
writeFunctionParametersType(s, cppClass, func);
const auto version = versionOf(func->typeEntry());
if (!version.isNull())
s << rstVersionAdded(version);
- if (func->attributes().testFlag(AbstractMetaFunction::Deprecated))
+ if (func->isDeprecated())
s << rstDeprecationNote("function");
}
- writeInjectDocumentation(s, TypeSystem::DocModificationPrepend, cppClass, func);
- if (!writeInjectDocumentation(s, TypeSystem::DocModificationReplace, cppClass, func)) {
- writeFormattedBriefText(s, func->documentation(), cppClass);
- writeFormattedDetailedText(s, func->documentation(), cppClass);
+
+ writeFunctionDocumentation(s, func, modifications, scope);
+
+ if (auto propIndex = func->propertySpecIndex(); propIndex >= 0) {
+ const QString name = cppClass->propertySpecs().at(propIndex).name();
+ const QString target = propertyRefTarget(name);
+ if (func->isPropertyReader())
+ s << "\nGetter of property " << propRef(target) << " .\n\n";
+ else if (func->isPropertyWriter())
+ s << "\nSetter of property " << propRef(target) << " .\n\n";
+ else if (func->isPropertyResetter())
+ s << "\nReset function of property " << propRef(target) << " .\n\n";
+ else if (func->attributes().testFlag(AbstractMetaFunction::Attribute::PropertyNotify))
+ s << "\nNotification signal of property " << propRef(target) << " .\n\n";
}
- writeInjectDocumentation(s, TypeSystem::DocModificationAppend, cppClass, func);
}
-static void writeFancyToc(TextStream& s, const QStringList& items)
+void QtDocGenerator::writeFunctionDocumentation(TextStream &s, const AbstractMetaFunctionCPtr &func,
+ const DocModificationList &modifications,
+ const QString &scope) const
+
+{
+ writeInjectDocumentation(s, TypeSystem::DocModificationPrepend, modifications, func, scope);
+ if (!writeInjectDocumentation(s, TypeSystem::DocModificationReplace, modifications, func, scope)) {
+ writeFormattedBriefText(s, func->documentation(), scope);
+ writeFormattedDetailedText(s, func->documentation(), scope);
+ }
+ writeInjectDocumentation(s, TypeSystem::DocModificationAppend, modifications, func, scope);
+}
+
+static QStringList fileListToToc(const QStringList &items)
+{
+ QStringList result;
+ result.reserve(items.size());
+ std::transform(items.cbegin(), items.cend(), std::back_inserter(result),
+ fileNameToTocEntry);
+ return result;
+}
+
+static QStringList functionListToToc(const AbstractMetaFunctionCList &functions)
+{
+ QStringList result;
+ result.reserve(functions.size());
+ for (const auto &f : functions)
+ result.append(f->name());
+ // Functions are sorted by the Metabuilder; erase overloads
+ result.erase(std::unique(result.begin(), result.end()), result.end());
+ return result;
+}
+
+static QStringList enumListToToc(const AbstractMetaEnumList &enums)
+{
+ QStringList result;
+ result.reserve(enums.size());
+ for (const auto &e : enums)
+ result.append(e.name());
+ return result;
+}
+
+// Sort entries for a TOC by first character, dropping the
+// leading common Qt prefixes like 'Q'.
+static QChar sortKey(const QString &key)
+{
+ const auto size = key.size();
+ if (size >= 2 && (key.at(0) == u'Q' || key.at(0) == u'q') && key.at(1).isUpper())
+ return key.at(1); // "QClass" -> 'C', "qSin()" -> 'S'
+ if (size >= 3 && key.startsWith("Q_"_L1))
+ return key.at(2).toUpper(); // "Q_ARG" -> 'A'
+ if (size >= 4 && key.startsWith("QT_"_L1))
+ return key.at(3).toUpper(); // "QT_TR" -> 'T'
+ auto idx = 0;
+ for (; idx < size && key.at(idx) == u'_'; ++idx) {
+ } // "__init__" -> 'I'
+ return idx < size ? key.at(idx).toUpper() : u'A';
+}
+
+static void writeFancyToc(TextStream& s, QAnyStringView title,
+ const QStringList& items,
+ QLatin1StringView referenceType)
{
using TocMap = QMap<QChar, QStringList>;
+
+ if (items.isEmpty())
+ return;
+
TocMap tocMap;
- QChar Q = QLatin1Char('Q');
- QChar idx;
- for (QString item : items) {
- if (item.isEmpty())
- continue;
- item.chop(4); // Remove the .rst extension
- // skip namespace if necessary
- const QString className = item.split(QLatin1Char('.')).last();
- if (className.startsWith(Q) && className.length() > 1)
- idx = className[1];
- else
- idx = className[0];
- tocMap[idx] << item;
- }
+ for (const QString &item : items)
+ tocMap[sortKey(item)] << item;
static const qsizetype numColumns = 4;
QtXmlToSphinx::Table table;
for (auto it = tocMap.cbegin(), end = tocMap.cend(); it != end; ++it) {
QtXmlToSphinx::TableRow row;
- const QString charEntry = QLatin1String("**") + it.key() + QLatin1String("**");
+ const QString charEntry = u"**"_s + it.key() + u"**"_s;
row << QtXmlToSphinx::TableCell(charEntry);
- for (const QString &item : qAsConst(it.value())) {
+ for (const QString &item : std::as_const(it.value())) {
if (row.size() >= numColumns) {
table.appendRow(row);
row.clear();
row << QtXmlToSphinx::TableCell(QString{});
}
- const QString entry = QLatin1String("* :doc:`") + item + QLatin1Char('`');
+ const QString entry = "* :"_L1 + referenceType + ":`"_L1 + item + u'`';
row << QtXmlToSphinx::TableCell(entry);
}
- if (!row.isEmpty())
+ if (row.size() > 1)
table.appendRow(row);
}
table.normalize();
- s << ".. container:: pysidetoc\n\n";
+ s << '\n' << headline(title) << ".. container:: pysidetoc\n\n";
table.format(s);
}
bool QtDocGenerator::finishGeneration()
{
- if (!api().classes().isEmpty())
+ for (const auto &f : api().globalFunctions()) {
+ auto ncf = std::const_pointer_cast<AbstractMetaFunction>(f);
+ m_docParser->fillGlobalFunctionDocumentation(ncf);
+ m_packages[f->targetLangPackage()].globalFunctions.append(f);
+ }
+
+ for (auto e : api().globalEnums()) {
+ m_docParser->fillGlobalEnumDocumentation(e);
+ m_packages[e.typeEntry()->targetLangPackage()].globalEnums.append(e);
+ }
+
+ if (!m_packages.isEmpty())
writeModuleDocumentation();
- if (!m_additionalDocumentationList.isEmpty())
+ if (!m_options.additionalDocumentationList.isEmpty())
writeAdditionalDocumentation();
+ if (!m_options.inheritanceFile.isEmpty() && !writeInheritanceFile())
+ return false;
return true;
}
+bool QtDocGenerator::writeInheritanceFile()
+{
+ QFile inheritanceFile(m_options.inheritanceFile);
+ if (!inheritanceFile.open(QIODevice::WriteOnly | QIODevice::Text))
+ throw Exception(msgCannotOpenForWriting(m_options.inheritanceFile));
+
+ QJsonObject dict;
+ for (const auto &c : api().classes()) {
+ const auto &bases = c->baseClasses();
+ if (!bases.isEmpty()) {
+ QJsonArray list;
+ for (const auto &base : bases)
+ list.append(QJsonValue(base->fullName()));
+ dict[c->fullName()] = list;
+ }
+ }
+ QJsonDocument document;
+ document.setObject(dict);
+ inheritanceFile.write(document.toJson(QJsonDocument::Compact));
+ return true;
+}
+
+// Remove function entries that have extra documentation pages
+static inline void removeExtraDocs(const QStringList &extraTocEntries,
+ AbstractMetaFunctionCList *functions)
+{
+ auto predicate = [&extraTocEntries](const AbstractMetaFunctionCPtr &f) {
+ return extraTocEntries.contains(f->name());
+ };
+ functions->erase(std::remove_if(functions->begin(),functions->end(), predicate),
+ functions->end());
+}
+
void QtDocGenerator::writeModuleDocumentation()
{
- QMap<QString, QStringList>::iterator it = m_packages.begin();
- for (; it != m_packages.end(); ++it) {
- std::sort(it.value().begin(), it.value().end());
+ for (auto it = m_packages.begin(), end = m_packages.end(); it != end; ++it) {
+ auto &docPackage = it.value();
+ std::sort(docPackage.classPages.begin(), docPackage.classPages.end());
QString key = it.key();
- key.replace(QLatin1Char('.'), QLatin1Char('/'));
- QString outputDir = outputDirectory() + QLatin1Char('/') + key;
- FileOut output(outputDir + QLatin1String("/index.rst"));
+ key.replace(u'.', u'/');
+ QString outputDir = outputDirectory() + u'/' + key;
+ FileOut output(outputDir + u"/index.rst"_s);
TextStream& s = output.stream;
const QString &title = it.key();
- s << ".. module:: " << title << "\n\n"
- << title << '\n'
- << Pad('*', title.length()) << "\n\n";
+ s << ".. module:: " << title << "\n\n" << headline(title, '*');
// Store the it.key() in a QString so that it can be stripped off unwanted
// information when neeeded. For example, the RST files in the extras directory
// doesn't include the PySide# prefix in their names.
QString moduleName = it.key();
- const int lastIndex = moduleName.lastIndexOf(QLatin1Char('.'));
+ const int lastIndex = moduleName.lastIndexOf(u'.');
if (lastIndex >= 0)
moduleName.remove(0, lastIndex + 1);
// Search for extra-sections
- if (!m_extraSectionDir.isEmpty()) {
- QDir extraSectionDir(m_extraSectionDir);
+ QStringList extraTocEntries;
+ if (!m_options.extraSectionDir.isEmpty()) {
+ QDir extraSectionDir(m_options.extraSectionDir);
if (!extraSectionDir.exists()) {
- const QString m = QStringLiteral("Extra sections directory ") +
- m_extraSectionDir + QStringLiteral(" doesn't exist");
+ const QString m = u"Extra sections directory "_s +
+ m_options.extraSectionDir + u" doesn't exist"_s;
throw Exception(m);
}
// Filter for "QtCore.Property.rst", skipping module doc "QtCore.rst"
- const QString filter = moduleName + QLatin1String(".?*.rst");
+ const QString filter = moduleName + u".?*.rst"_s;
const auto fileList =
extraSectionDir.entryInfoList({filter}, QDir::Files, QDir::Name);
- for (const auto &fi : fileList) {
- // Strip to "Property.rst" in output directory
- const QString newFileName = fi.fileName().mid(moduleName.size() + 1);
- it.value().append(newFileName);
- const QString newFilePath = outputDir + QLatin1Char('/') + newFileName;
- if (QFile::exists(newFilePath))
- QFile::remove(newFilePath);
- if (!QFile::copy(fi.absoluteFilePath(), newFilePath)) {
- qCDebug(lcShibokenDoc).noquote().nospace() << "Error copying extra doc "
- << QDir::toNativeSeparators(fi.absoluteFilePath())
- << " to " << QDir::toNativeSeparators(newFilePath);
- }
- }
+ for (const auto &fi : fileList)
+ readExtraDoc(fi, moduleName, outputDir, &docPackage, &extraTocEntries);
}
- writeFancyToc(s, it.value());
+ removeExtraDocs(extraTocEntries, &docPackage.globalFunctions);
+ const bool hasGlobals = !docPackage.globalFunctions.isEmpty()
+ || !docPackage.globalEnums.isEmpty();
+ const QString globalsPage = moduleName + "_globals.rst"_L1;
s << ".. container:: hide\n\n" << indent
<< ".. toctree::\n" << indent
<< ":maxdepth: 1\n\n";
- for (const QString &className : qAsConst(it.value()))
+ if (hasGlobals)
+ s << globalsPage << '\n';
+ for (const QString &className : std::as_const(docPackage.classPages))
s << className << '\n';
- s << "\n\n" << outdent << outdent
- << "Detailed Description\n--------------------\n\n";
+ s << "\n\n" << outdent << outdent << headline("Detailed Description");
// module doc is always wrong and C++istic, so go straight to the extra directory!
- QFile moduleDoc(m_extraSectionDir + QLatin1Char('/') + moduleName
- + QLatin1String(".rst"));
+ QFile moduleDoc(m_options.extraSectionDir + u'/' + moduleName
+ + u".rst"_s);
if (moduleDoc.open(QIODevice::ReadOnly | QIODevice::Text)) {
s << moduleDoc.readAll();
moduleDoc.close();
@@ -882,14 +1142,48 @@ void QtDocGenerator::writeModuleDocumentation()
if (moduleDoc.format() == Documentation::Native) {
QString context = it.key();
QtXmlToSphinx::stripPythonQualifiers(&context);
- QtXmlToSphinx x(this, m_parameters, moduleDoc.detailed(), context);
+ QtXmlToSphinx x(this, m_options.parameters, moduleDoc.detailed(), context);
s << x;
} else {
s << moduleDoc.detailed();
}
}
+
+ writeFancyToc(s, "List of Classes", fileListToToc(docPackage.classPages),
+ "class"_L1);
+ writeFancyToc(s, "List of Decorators", fileListToToc(docPackage.decoratorPages),
+ "deco"_L1);
+ writeFancyToc(s, "List of Functions", functionListToToc(docPackage.globalFunctions),
+ "py:func"_L1);
+ writeFancyToc(s, "List of Enumerations", enumListToToc(docPackage.globalEnums),
+ "any"_L1);
+
output.done();
+
+ if (hasGlobals)
+ writeGlobals(it.key(), outputDir + u'/' + globalsPage, docPackage);
+ }
+}
+
+void QtDocGenerator::writeGlobals(const QString &package,
+ const QString &fileName,
+ const DocPackage &docPackage)
+{
+ FileOut output(fileName);
+ TextStream &s = output.stream;
+
+ // Write out functions with injected documentation
+ if (!docPackage.globalFunctions.isEmpty()) {
+ s << currentModule(package) << headline("Functions");
+ writeFunctions(s, docPackage.globalFunctions, {}, {});
+ }
+
+ if (!docPackage.globalEnums.isEmpty()) {
+ s << headline("Enumerations");
+ writeEnums(s, docPackage.globalEnums, package);
}
+
+ output.done();
}
static inline QString msgNonExistentAdditionalDocFile(const QString &dir,
@@ -904,7 +1198,7 @@ static inline QString msgNonExistentAdditionalDocFile(const QString &dir,
void QtDocGenerator::writeAdditionalDocumentation() const
{
- QFile additionalDocumentationFile(m_additionalDocumentationList);
+ QFile additionalDocumentationFile(m_options.additionalDocumentationList);
if (!additionalDocumentationFile.open(QIODevice::ReadOnly | QIODevice::Text))
throw Exception(msgCannotOpenForReading(additionalDocumentationFile));
@@ -923,14 +1217,14 @@ void QtDocGenerator::writeAdditionalDocumentation() const
continue;
const QString line = QFile::decodeName(lineBA);
// Parse "[directory]" specification
- if (line.size() > 2 && line.startsWith(QLatin1Char('[')) && line.endsWith(QLatin1Char(']'))) {
+ if (line.size() > 2 && line.startsWith(u'[') && line.endsWith(u']')) {
const QString dir = line.mid(1, line.size() - 2);
- if (dir.isEmpty() || dir == QLatin1String(".")) {
+ if (dir.isEmpty() || dir == u".") {
targetDir = outDir.absolutePath();
} else {
if (!outDir.exists(dir) && !outDir.mkdir(dir)) {
- const QString m = QStringLiteral("Cannot create directory ")
- + dir + QStringLiteral(" under ")
+ const QString m = "Cannot create directory "_L1
+ + dir + " under "_L1
+ QDir::toNativeSeparators(outputDirectory());
throw Exception(m);
}
@@ -938,11 +1232,11 @@ void QtDocGenerator::writeAdditionalDocumentation() const
}
} else {
// Normal file entry
- QFileInfo fi(m_parameters.docDataDir + QLatin1Char('/') + line);
+ QFileInfo fi(m_options.parameters.docDataDir + u'/' + line);
if (fi.isFile()) {
const QString rstFileName = fi.baseName() + rstSuffix;
- const QString rstFile = targetDir + QLatin1Char('/') + rstFileName;
- const QString context = targetDir.mid(targetDir.lastIndexOf(QLatin1Char('/')) + 1);
+ const QString rstFile = targetDir + u'/' + rstFileName;
+ const QString context = targetDir.mid(targetDir.lastIndexOf(u'/') + 1);
if (convertToRst(fi.absoluteFilePath(),
rstFile, context, &errorMessage)) {
++successCount;
@@ -956,7 +1250,7 @@ void QtDocGenerator::writeAdditionalDocumentation() const
// FIXME: This should be an exception, in principle, but it
// requires building all modules.
qCWarning(lcShibokenDoc, "%s",
- qPrintable(msgNonExistentAdditionalDocFile(m_parameters.docDataDir, line)));
+ qPrintable(msgNonExistentAdditionalDocFile(m_options.parameters.docDataDir, line)));
}
++count;
}
@@ -975,79 +1269,133 @@ void QtDocGenerator::writeAdditionalDocumentation() const
bool QtDocGenerator::doSetup()
{
- if (m_parameters.codeSnippetDirs.isEmpty()) {
- m_parameters.codeSnippetDirs =
- m_parameters.libSourceDir.split(QLatin1Char(PATH_SEP));
+ if (m_options.parameters.codeSnippetDirs.isEmpty()) {
+ m_options.parameters.codeSnippetDirs =
+ m_options.parameters.libSourceDir.split(QLatin1Char(PATH_SEP));
}
- if (m_docParser.isNull())
- m_docParser.reset(new QtDocParser);
+ if (m_docParser.isNull()) {
+ if (m_options.doxygen)
+ m_docParser.reset(new DoxygenParser);
+ else
+ m_docParser.reset(new QtDocParser);
+ }
- if (m_parameters.libSourceDir.isEmpty()
- || m_parameters.docDataDir.isEmpty()) {
+ if (m_options.parameters.libSourceDir.isEmpty()
+ || m_options.parameters.docDataDir.isEmpty()) {
qCWarning(lcShibokenDoc) << "Documentation data dir and/or Qt source dir not informed, "
"documentation will not be extracted from Qt sources.";
return false;
}
- m_docParser->setDocumentationDataDirectory(m_parameters.docDataDir);
- m_docParser->setLibrarySourceDirectory(m_parameters.libSourceDir);
- m_parameters.outputDirectory = outputDirectory();
+ m_docParser->setDocumentationDataDirectory(m_options.parameters.docDataDir);
+ m_docParser->setLibrarySourceDirectory(m_options.parameters.libSourceDir);
+ m_options.parameters.outputDirectory = outputDirectory();
return true;
}
-
-Generator::OptionDescriptions QtDocGenerator::options() const
+QList<OptionDescription> QtDocGenerator::options()
{
return {
- {QLatin1String("doc-parser=<parser>"),
- QLatin1String("The documentation parser used to interpret the documentation\n"
- "input files (qdoc|doxygen)")},
- {QLatin1String("documentation-code-snippets-dir=<dir>"),
- QLatin1String("Directory used to search code snippets used by the documentation")},
- {QLatin1String("documentation-data-dir=<dir>"),
- QLatin1String("Directory with XML files generated by documentation tool")},
- {QLatin1String("documentation-extra-sections-dir=<dir>"),
- QLatin1String("Directory used to search for extra documentation sections")},
- {QLatin1String("library-source-dir=<dir>"),
- QLatin1String("Directory where library source code is located")},
- {additionalDocumentationOption() + QLatin1String("=<file>"),
- QLatin1String("List of additional XML files to be converted to .rst files\n"
- "(for example, tutorials).")}
+ {u"doc-parser=<parser>"_s,
+ u"The documentation parser used to interpret the documentation\n"
+ "input files (qdoc|doxygen)"_s},
+ {u"documentation-code-snippets-dir=<dir>"_s,
+ u"Directory used to search code snippets used by the documentation"_s},
+ {u"snippets-path-rewrite=old:new"_s,
+ u"Replacements in code snippet path to find .cpp/.h snippets converted to Python"_s},
+ {u"documentation-data-dir=<dir>"_s,
+ u"Directory with XML files generated by documentation tool"_s},
+ {u"documentation-extra-sections-dir=<dir>"_s,
+ u"Directory used to search for extra documentation sections"_s},
+ {u"library-source-dir=<dir>"_s,
+ u"Directory where library source code is located"_s},
+ {additionalDocumentationOption + u"=<file>"_s,
+ u"List of additional XML files to be converted to .rst files\n"
+ "(for example, tutorials)."_s},
+ {u"inheritance-file=<file>"_s,
+ u"Generate a JSON file containing the class inheritance."_s},
+ {u"disable-inheritance-diagram"_s,
+ u"Disable the generation of the inheritance diagram."_s}
};
}
-bool QtDocGenerator::handleOption(const QString &key, const QString &value)
+class QtDocGeneratorOptionsParser : public OptionsParser
+{
+public:
+ explicit QtDocGeneratorOptionsParser(DocGeneratorOptions *o) : m_options(o) {}
+
+ bool handleBoolOption(const QString &key, OptionSource source) override;
+ bool handleOption(const QString &key, const QString &value, OptionSource source) override;
+
+private:
+ DocGeneratorOptions *m_options;
+};
+
+bool QtDocGeneratorOptionsParser::handleBoolOption(const QString &key, OptionSource)
+{
+ if (key == "disable-inheritance-diagram"_L1) {
+ m_options->inheritanceDiagram = false;
+ return true;
+ }
+ return false;
+}
+
+bool QtDocGeneratorOptionsParser::handleOption(const QString &key, const QString &value,
+ OptionSource source)
{
- if (key == QLatin1String("library-source-dir")) {
- m_parameters.libSourceDir = value;
+ if (source == OptionSource::CommandLineSingleDash)
+ return false;
+ if (key == u"library-source-dir") {
+ m_options->parameters.libSourceDir = value;
return true;
}
- if (key == QLatin1String("documentation-data-dir")) {
- m_parameters.docDataDir = value;
+ if (key == u"documentation-data-dir") {
+ m_options->parameters.docDataDir = value;
return true;
}
- if (key == QLatin1String("documentation-code-snippets-dir")) {
- m_parameters.codeSnippetDirs = value.split(QLatin1Char(PATH_SEP));
+ if (key == u"documentation-code-snippets-dir") {
+ m_options->parameters.codeSnippetDirs = value.split(QLatin1Char(PATH_SEP));
return true;
}
- if (key == QLatin1String("documentation-extra-sections-dir")) {
- m_extraSectionDir = value;
+
+ if (key == u"snippets-path-rewrite") {
+ const auto pos = value.indexOf(u':');
+ if (pos == -1)
+ return false;
+ m_options->parameters.codeSnippetRewriteOld= value.left(pos);
+ m_options->parameters.codeSnippetRewriteNew = value.mid(pos + 1);
return true;
}
- if (key == QLatin1String("doc-parser")) {
+
+ if (key == u"documentation-extra-sections-dir") {
+ m_options->extraSectionDir = value;
+ return true;
+ }
+ if (key == u"doc-parser") {
qCDebug(lcShibokenDoc).noquote().nospace() << "doc-parser: " << value;
- if (value == QLatin1String("doxygen"))
- m_docParser.reset(new DoxygenParser);
+ if (value == u"doxygen")
+ m_options->doxygen = true;
return true;
}
- if (key == additionalDocumentationOption()) {
- m_additionalDocumentationList = value;
+ if (key == additionalDocumentationOption) {
+ m_options->additionalDocumentationList = value;
return true;
}
+
+ if (key == u"inheritance-file") {
+ m_options->inheritanceFile = value;
+ return true;
+ }
+
return false;
}
+std::shared_ptr<OptionsParser> QtDocGenerator::createOptionsParser()
+{
+ return std::make_shared<QtDocGeneratorOptionsParser>(&m_options);
+}
+
bool QtDocGenerator::convertToRst(const QString &sourceFileName,
const QString &targetFileName,
const QString &context,
@@ -1063,20 +1411,65 @@ bool QtDocGenerator::convertToRst(const QString &sourceFileName,
sourceFile.close();
FileOut targetFile(targetFileName);
- QtXmlToSphinx x(this, m_parameters, doc, context);
+ QtXmlToSphinx x(this, m_options.parameters, doc, context);
targetFile.stream << x;
targetFile.done();
return true;
}
+GeneratorDocumentation
+ QtDocGenerator::generatorDocumentation(const AbstractMetaClassCPtr &cppClass)
+{
+ GeneratorDocumentation result;
+ const auto allFunctions = cppClass->functions();
+ result.allFunctions.reserve(allFunctions.size());
+ std::remove_copy_if(allFunctions.cbegin(), allFunctions.cend(),
+ std::back_inserter(result.allFunctions), shouldSkip);
+
+ std::stable_sort(result.allFunctions.begin(), result.allFunctions.end(), functionSort);
+
+ for (const auto &func : std::as_const(result.allFunctions)) {
+ if (func->isStatic())
+ result.tocStaticFunctions.append(func);
+ else if (func->isVirtual())
+ result.tocVirtuals.append(func);
+ else if (func->isSignal())
+ result.tocSignalFunctions.append(func);
+ else if (func->isSlot())
+ result.tocSlotFunctions.append(func);
+ else
+ result.tocNormalFunctions.append(func);
+ }
+
+ // Find the property getters/setters
+ for (const auto &spec: cppClass->propertySpecs()) {
+ GeneratorDocumentation::Property property;
+ property.name = spec.name();
+ property.type = spec.type();
+ property.documentation = spec.documentation();
+ if (!spec.read().isEmpty())
+ property.getter = AbstractMetaFunction::find(result.allFunctions, spec.read());
+ if (!spec.write().isEmpty())
+ property.setter = AbstractMetaFunction::find(result.allFunctions, spec.write());
+ if (!spec.reset().isEmpty())
+ property.reset = AbstractMetaFunction::find(result.allFunctions, spec.reset());
+ if (!spec.notify().isEmpty())
+ property.notify = AbstractMetaFunction::find(result.tocSignalFunctions, spec.notify());
+ result.properties.append(property);
+ }
+ std::sort(result.properties.begin(), result.properties.end());
+
+ return result;
+}
+
// QtXmlToSphinxDocGeneratorInterface
QString QtDocGenerator::expandFunction(const QString &function) const
{
- const int firstDot = function.indexOf(QLatin1Char('.'));
- const AbstractMetaClass *metaClass = nullptr;
+ const auto firstDot = function.indexOf(u'.');
+ AbstractMetaClassCPtr metaClass;
if (firstDot != -1) {
const auto className = QStringView{function}.left(firstDot);
- for (auto cls : api().classes()) {
+ for (const auto &cls : api().classes()) {
if (cls->name() == className) {
metaClass = cls;
break;
@@ -1097,12 +1490,11 @@ QString QtDocGenerator::expandClass(const QString &context,
return typeEntry->qualifiedTargetLangName();
// fall back to the old heuristic if the type wasn't found.
QString result = name;
- const auto rawlinklist = QStringView{name}.split(QLatin1Char('.'));
- QStringList splittedContext = context.split(QLatin1Char('.'));
+ const auto rawlinklist = QStringView{name}.split(u'.');
+ QStringList splittedContext = context.split(u'.');
if (rawlinklist.size() == 1 || rawlinklist.constFirst() == splittedContext.constLast()) {
splittedContext.removeLast();
- result.prepend(QLatin1Char('~') + splittedContext.join(QLatin1Char('.'))
- + QLatin1Char('.'));
+ result.prepend(u'~' + splittedContext.join(u'.') + u'.');
}
return result;
}
@@ -1110,10 +1502,10 @@ QString QtDocGenerator::expandClass(const QString &context,
QString QtDocGenerator::resolveContextForMethod(const QString &context,
const QString &methodName) const
{
- const auto currentClass = QStringView{context}.split(QLatin1Char('.')).constLast();
+ const auto currentClass = QStringView{context}.split(u'.').constLast();
- const AbstractMetaClass *metaClass = nullptr;
- for (auto cls : api().classes()) {
+ AbstractMetaClassCPtr metaClass;
+ for (const auto &cls : api().classes()) {
if (cls->name() == currentClass) {
metaClass = cls;
break;
@@ -1128,8 +1520,8 @@ QString QtDocGenerator::resolveContextForMethod(const QString &context,
funcList.append(func);
}
- const AbstractMetaClass *implementingClass = nullptr;
- for (const auto &func : qAsConst(funcList)) {
+ AbstractMetaClassCPtr implementingClass;
+ for (const auto &func : std::as_const(funcList)) {
implementingClass = func->implementingClass();
if (implementingClass->name() == currentClass)
break;
@@ -1139,7 +1531,7 @@ QString QtDocGenerator::resolveContextForMethod(const QString &context,
return implementingClass->typeEntry()->qualifiedTargetLangName();
}
- return QLatin1Char('~') + context;
+ return u'~' + context;
}
const QLoggingCategory &QtDocGenerator::loggingCategory() const
@@ -1159,8 +1551,8 @@ QtXmlToSphinxLink QtDocGenerator::resolveLink(const QtXmlToSphinxLink &link) con
{
if (link.type != QtXmlToSphinxLink::Reference || !isRelativeHtmlFile(link.linkRef))
return link;
- static const QString prefix = QStringLiteral("https://doc.qt.io/qt-")
- + QString::number(QT_VERSION_MAJOR) + QLatin1Char('/');
+ static const QString prefix = "https://doc.qt.io/qt-"_L1
+ + QString::number(QT_VERSION_MAJOR) + u'/';
QtXmlToSphinxLink resolved = link;
resolved.type = QtXmlToSphinxLink::External;
resolved.linkRef = prefix + link.linkRef;
@@ -1170,6 +1562,5 @@ QtXmlToSphinxLink QtDocGenerator::resolveLink(const QtXmlToSphinxLink &link) con
if (anchor != -1)
resolved.linkText.truncate(anchor);
}
- qDebug() << __FUNCTION__ << link << "->" << resolved;
return resolved;
}
diff --git a/sources/shiboken6/generator/qtdoc/qtdocgenerator.h b/sources/shiboken6/generator/qtdoc/qtdocgenerator.h
index ab2f2fd45..3b1c82e74 100644
--- a/sources/shiboken6/generator/qtdoc/qtdocgenerator.h
+++ b/sources/shiboken6/generator/qtdoc/qtdocgenerator.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef DOCGENERATOR_H
#define DOCGENERATOR_H
@@ -34,11 +9,15 @@
#include "generator.h"
#include "documentation.h"
+#include <optionsparser.h>
#include "typesystem_enums.h"
-#include "typesystem_typedefs.h"
+#include "modifications_typedefs.h"
#include "qtxmltosphinxinterface.h"
class DocParser;
+struct DocGeneratorOptions;
+struct GeneratorDocumentation;
+struct DocPackage;
/**
* The DocGenerator generates documentation from library being binded.
@@ -46,6 +25,8 @@ class DocParser;
class QtDocGenerator : public Generator, public QtXmlToSphinxDocGeneratorInterface
{
public:
+ Q_DISABLE_COPY_MOVE(QtDocGenerator)
+
QtDocGenerator();
~QtDocGenerator();
@@ -56,8 +37,8 @@ public:
return "QtDocGenerator";
}
- OptionDescriptions options() const override;
- bool handleOption(const QString &key, const QString &value) override;
+ static QList<OptionDescription> options();
+ static std::shared_ptr<OptionsParser> createOptionsParser();
// QtXmlToSphinxDocGeneratorInterface
QString expandFunction(const QString &function) const override;
@@ -68,63 +49,81 @@ public:
const QLoggingCategory &loggingCategory() const override;
QtXmlToSphinxLink resolveLink(const QtXmlToSphinxLink &) const override;
+ static QString getFuncName(const AbstractMetaFunctionCPtr &cppFunc);
+ static QString formatArgs(const AbstractMetaFunctionCPtr &func);
+
protected:
- bool shouldGenerate(const AbstractMetaClass *) const override;
- QString fileNameSuffix() const override;
+ bool shouldGenerate(const TypeEntryCPtr &) const override;
+ static QString fileNameSuffix();
QString fileNameForContext(const GeneratorContext &context) const override;
void generateClass(TextStream &ts, const GeneratorContext &classContext) override;
bool finishGeneration() override;
private:
- void writeEnums(TextStream& s, const AbstractMetaClass* cppClass) const;
-
- void writeFields(TextStream &s, const AbstractMetaClass *cppClass) const;
- static QString functionSignature(const AbstractMetaClass* cppClass,
- const AbstractMetaFunctionCPtr &func);
- void writeFunction(TextStream& s, const AbstractMetaClass* cppClass,
- const AbstractMetaFunctionCPtr &func, bool indexed = true);
- void writeFunctionParametersType(TextStream &s, const AbstractMetaClass *cppClass,
+ void writeEnums(TextStream &s, const AbstractMetaEnumList &enums,
+ const QString &scope) const;
+
+ void writeFields(TextStream &s, const AbstractMetaClassCPtr &cppClass) const;
+ void writeFunctions(TextStream &s, const AbstractMetaFunctionCList &funcs,
+ const AbstractMetaClassCPtr &cppClass, const QString &scope);
+ void writeFunction(TextStream &s, const AbstractMetaFunctionCPtr &func,
+ const AbstractMetaClassCPtr &cppClass = {},
+ const QString &scope = {}, bool indexed = true);
+ void writeFunctionDocumentation(TextStream &s, const AbstractMetaFunctionCPtr &func,
+ const DocModificationList &modifications,
+ const QString &scope) const;
+ void writeFunctionParametersType(TextStream &s, const AbstractMetaClassCPtr &cppClass,
const AbstractMetaFunctionCPtr &func) const;
- static void writeFunctionList(TextStream& s, const AbstractMetaClass* cppClass);
- static void writeFunctionBlock(TextStream& s, const QString& title,
- QStringList& functions);
- void writeParameterType(TextStream &s, const AbstractMetaClass *cppClass,
+ static void writeFunctionToc(TextStream &s, const QString &title,
+ const AbstractMetaFunctionCList &functions);
+ static void writePropertyToc(TextStream &s,
+ const GeneratorDocumentation &doc);
+ void writeProperties(TextStream &s,
+ const GeneratorDocumentation &doc,
+ const AbstractMetaClassCPtr &cppClass) const;
+ void writeParameterType(TextStream &s, const AbstractMetaClassCPtr &cppClass,
const AbstractMetaArgument &arg) const;
-
- void writeConstructors(TextStream &s, const AbstractMetaClass *cppClass) const;
-
void writeFormattedText(TextStream &s, const QString &doc,
Documentation::Format format,
- const AbstractMetaClass *metaClass = nullptr) const;
+ const QString &scope = {}) const;
void writeFormattedBriefText(TextStream &s, const Documentation &doc,
- const AbstractMetaClass *metaclass = nullptr) const;
+ const QString &scope = {}) const;
void writeFormattedDetailedText(TextStream &s, const Documentation &doc,
- const AbstractMetaClass *metaclass = nullptr) const;
-
- bool writeInjectDocumentation(TextStream& s, TypeSystem::DocModificationMode mode,
- const AbstractMetaClass* cppClass,
- const AbstractMetaFunctionCPtr &func);
+ const QString &scope = {}) const;
+
+ bool writeInjectDocumentation(TextStream &s, TypeSystem::DocModificationMode mode,
+ const AbstractMetaClassCPtr &cppClass) const;
+ bool writeInjectDocumentation(TextStream &s, TypeSystem::DocModificationMode mode,
+ const DocModificationList &modifications,
+ const AbstractMetaFunctionCPtr &func,
+ const QString &scope = {}) const;
+ bool writeDocModifications(TextStream &s, const DocModificationList &mods,
+ TypeSystem::DocModificationMode mode,
+ const QString &scope = {}) const;
static void writeDocSnips(TextStream &s, const CodeSnipList &codeSnips,
TypeSystem::CodeSnipPosition position, TypeSystem::Language language);
void writeModuleDocumentation();
+ void writeGlobals(const QString &package, const QString &fileName,
+ const DocPackage &docPackage);
void writeAdditionalDocumentation() const;
+ bool writeInheritanceFile();
- static QString parseArgDocStyle(const AbstractMetaClass *cppClass,
- const AbstractMetaFunctionCPtr &func);
- QString translateToPythonType(const AbstractMetaType &type, const AbstractMetaClass *cppClass) const;
+ QString translateToPythonType(const AbstractMetaType &type,
+ const AbstractMetaClassCPtr &cppClass,
+ bool createRef = true) const;
bool convertToRst(const QString &sourceFileName,
const QString &targetFileName,
const QString &context = QString(),
QString *errorMessage = nullptr) const;
- QString m_extraSectionDir;
+ static GeneratorDocumentation generatorDocumentation(const AbstractMetaClassCPtr &cppClass);
+
QStringList m_functionList;
- QMap<QString, QStringList> m_packages;
+ QMap<QString, DocPackage> m_packages;
QScopedPointer<DocParser> m_docParser;
- QtXmlToSphinxParameters m_parameters;
- QString m_additionalDocumentationList;
+ static DocGeneratorOptions m_options;
};
#endif // DOCGENERATOR_H
diff --git a/sources/shiboken6/generator/qtdoc/qtxmltosphinx.cpp b/sources/shiboken6/generator/qtdoc/qtxmltosphinx.cpp
index 4607f3f78..55c1d2090 100644
--- a/sources/shiboken6/generator/qtdoc/qtxmltosphinx.cpp
+++ b/sources/shiboken6/generator/qtdoc/qtxmltosphinx.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "qtxmltosphinx.h"
#include "exception.h"
@@ -32,16 +7,17 @@
#include <codesniphelpers.h>
#include "rstformat.h"
+#include "qtcompat.h"
+
#include <QtCore/QDebug>
#include <QtCore/QDir>
#include <QtCore/QFileInfo>
+#include <QtCore/QHash>
#include <QtCore/QLoggingCategory>
#include <QtCore/QRegularExpression>
#include <QtCore/QXmlStreamReader>
-static inline QString nameAttribute() { return QStringLiteral("name"); }
-static inline QString titleAttribute() { return QStringLiteral("title"); }
-static inline QString fullTitleAttribute() { return QStringLiteral("fulltitle"); }
+using namespace Qt::StringLiterals;
QString msgTagWarning(const QXmlStreamReader &reader, const QString &context,
const QString &tag, const QString &message)
@@ -59,16 +35,23 @@ QString msgTagWarning(const QXmlStreamReader &reader, const QString &context,
return result;
}
-QString msgFallbackWarning(const QXmlStreamReader &reader, const QString &context,
- const QString &tag, const QString &location,
- const QString &identifier, const QString &fallback)
+QString msgFallbackWarning(const QString &location, const QString &identifier,
+ const QString &fallback)
{
- QString message = QLatin1String("Falling back to \"")
- + QDir::toNativeSeparators(fallback) + QLatin1String("\" for \"")
- + location + QLatin1Char('"');
+ QString message = u"Falling back to \""_s
+ + QDir::toNativeSeparators(fallback) + u"\" for \""_s
+ + location + u'"';
if (!identifier.isEmpty())
- message += QLatin1String(" [") + identifier + QLatin1Char(']');
- return msgTagWarning(reader, context, tag, message);
+ message += u" ["_s + identifier + u']';
+ return message;
+}
+
+QString msgSnippetsResolveError(const QString &path, const QStringList &locations)
+{
+ QString result;
+ QTextStream(&result) << "Could not resolve \"" << path << R"(" in ")"
+ << locations.join(uR"(", ")"_s);
+ return result;
}
static bool isHttpLink(const QString &ref)
@@ -76,6 +59,20 @@ static bool isHttpLink(const QString &ref)
return ref.startsWith(u"http://") || ref.startsWith(u"https://");
}
+static QString trimRight(QString s)
+{
+ while (!s.isEmpty() && s.crbegin()->isSpace())
+ s.chop(1);
+ return s;
+}
+
+static QString trimLeadingNewlines(QString s)
+{
+ while (!s.isEmpty() && s.at(0) == u'\n')
+ s.remove(0, 1);
+ return s;
+}
+
QDebug operator<<(QDebug d, const QtXmlToSphinxLink &l)
{
static const QHash<QtXmlToSphinxLink::Type, const char *> typeName = {
@@ -99,6 +96,29 @@ QDebug operator<<(QDebug d, const QtXmlToSphinxLink &l)
return d;
}
+QDebug operator<<(QDebug debug, const QtXmlToSphinx::TableCell &c)
+{
+ QDebugStateSaver saver(debug);
+ debug.noquote();
+ debug.nospace();
+ debug << "Cell(\"" << c.data << '"';
+ if (c.colSpan != 0)
+ debug << ", colSpan=" << c.colSpan;
+ if (c.rowSpan != 0)
+ debug << ", rowSpan=" << c.rowSpan;
+ debug << ')';
+ return debug;
+}
+
+QDebug operator<<(QDebug debug, const QtXmlToSphinx::Table &t)
+{
+ QDebugStateSaver saver(debug);
+ debug.noquote();
+ debug.nospace();
+ t.formatDebug(debug);
+ return debug;
+}
+
static const char *linkKeyWord(QtXmlToSphinxLink::Type type)
{
switch (type) {
@@ -133,7 +153,7 @@ TextStream &operator<<(TextStream &str, const QtXmlToSphinxLink &linkContext)
const bool isExternal = linkContext.type == QtXmlToSphinxLink::External;
if (!linkContext.linkText.isEmpty()) {
writeEscapedRstText(str, linkContext.linkText);
- if (isExternal && !linkContext.linkText.endsWith(QLatin1Char(' ')))
+ if (isExternal && !linkContext.linkText.endsWith(u' '))
str << ' ';
str << '<';
}
@@ -285,7 +305,7 @@ void QtXmlToSphinx::callHandler(WebXmlTag t, QXmlStreamReader &r)
handleTableTag(r);
break;
case WebXmlTag::header:
- handleRowTag(r);
+ handleHeaderTag(r);
break;
case WebXmlTag::row:
handleRowTag(r);
@@ -397,33 +417,49 @@ void QtXmlToSphinx::callHandler(WebXmlTag t, QXmlStreamReader &r)
void QtXmlToSphinx::formatCurrentTable()
{
- if (m_currentTable.isEmpty())
+ Q_ASSERT(!m_tables.isEmpty());
+ auto &table = m_tables.back();
+ if (table.isEmpty())
return;
- m_currentTable.setHeaderEnabled(m_tableHasHeader);
- m_currentTable.normalize();
+ table.normalize();
m_output << '\n';
- m_currentTable.format(m_output);
+ table.format(m_output);
}
void QtXmlToSphinx::pushOutputBuffer()
{
- m_buffers.append(StringSharedPtr(new QString{}));
- m_output.setString(m_buffers.top().data());
+ m_buffers.append(std::make_shared<QString>());
+ m_output.setString(m_buffers.top().get());
}
QString QtXmlToSphinx::popOutputBuffer()
{
Q_ASSERT(!m_buffers.isEmpty());
- QString result(*m_buffers.top().data());
+ QString result(*m_buffers.top());
m_buffers.pop();
- m_output.setString(m_buffers.isEmpty() ? nullptr : m_buffers.top().data());
+ m_output.setString(m_buffers.isEmpty() ? nullptr : m_buffers.top().get());
return result;
}
+constexpr auto autoTranslatedPlaceholder = "AUTO_GENERATED\n"_L1;
+constexpr auto autoTranslatedNote =
+R"(.. warning::
+ This section contains snippets that were automatically
+ translated from C++ to Python and may contain errors.
+
+)"_L1;
+
+void QtXmlToSphinx::setAutoTranslatedNote(QString *str) const
+{
+ if (m_containsAutoTranslations)
+ str->replace(autoTranslatedPlaceholder, autoTranslatedNote);
+ else
+ str->remove(autoTranslatedPlaceholder);
+}
+
QString QtXmlToSphinx::transform(const QString& doc)
{
Q_ASSERT(m_buffers.isEmpty());
- Indentation indentation(m_output);
if (doc.trimmed().isEmpty())
return doc;
@@ -431,6 +467,9 @@ QString QtXmlToSphinx::transform(const QString& doc)
QXmlStreamReader reader(doc);
+ m_output << autoTranslatedPlaceholder;
+ Indentation indentation(m_output);
+
while (!reader.atEnd()) {
QXmlStreamReader::TokenType token = reader.readNext();
if (reader.hasError()) {
@@ -462,7 +501,7 @@ QString QtXmlToSphinx::transform(const QString& doc)
if (!m_inlineImages.isEmpty()) {
// Write out inline image definitions stored in handleInlineImageTag().
m_output << '\n' << disableIndent;
- for (const InlineImage &img : qAsConst(m_inlineImages))
+ for (const InlineImage &img : std::as_const(m_inlineImages))
m_output << ".. |" << img.tag << "| image:: " << img.href << '\n';
m_output << '\n' << enableIndent;
m_inlineImages.clear();
@@ -471,13 +510,14 @@ QString QtXmlToSphinx::transform(const QString& doc)
m_output.flush();
QString retval = popOutputBuffer();
Q_ASSERT(m_buffers.isEmpty());
+ setAutoTranslatedNote(&retval);
return retval;
}
static QString resolveFile(const QStringList &locations, const QString &path)
{
for (QString location : locations) {
- location.append(QLatin1Char('/'));
+ location.append(u'/');
location.append(path);
if (QFileInfo::exists(location))
return location;
@@ -485,25 +525,170 @@ static QString resolveFile(const QStringList &locations, const QString &path)
return QString();
}
-QString QtXmlToSphinx::readFromLocations(const QStringList &locations, const QString &path,
- const QString &identifier, QString *errorMessage)
+enum class SnippetType
{
+ Other, // .qdoc, .qml,...
+ CppSource, CppHeader // Potentially converted to Python
+};
+
+SnippetType snippetType(const QString &path)
+{
+ if (path.endsWith(u".cpp"))
+ return SnippetType::CppSource;
+ if (path.endsWith(u".h"))
+ return SnippetType::CppHeader;
+ return SnippetType::Other;
+}
+
+// Return the name of a .cpp/.h snippet converted to Python by snippets-translate
+static QString pySnippetName(const QString &path, SnippetType type)
+{
+ switch (type) {
+ case SnippetType::CppSource:
+ return path.left(path.size() - 3) + u"py"_s;
+ break;
+ case SnippetType::CppHeader:
+ return path + u".py"_s;
+ break;
+ default:
+ break;
+ }
+ return {};
+}
+
+QtXmlToSphinx::Snippet QtXmlToSphinx::readSnippetFromLocations(const QString &path,
+ const QString &identifier,
+ const QString &fallbackPath,
+ QString *errorMessage)
+{
+ // For anything else but C++ header/sources (no conversion to Python),
+ // use existing fallback paths first.
+ const auto type = snippetType(path);
+ if (type == SnippetType::Other && !fallbackPath.isEmpty()) {
+ const QString code = readFromLocation(fallbackPath, identifier, errorMessage);
+ return {code, code.isNull() ? Snippet::Error : Snippet::Fallback};
+ }
+
+ // For C++ header/sources, try snippets converted to Python first.
QString resolvedPath;
- if (path.endsWith(QLatin1String(".cpp"))) {
- const QString pySnippet = path.left(path.size() - 3) + QLatin1String("py");
- resolvedPath = resolveFile(locations, pySnippet);
+ const auto &locations = m_parameters.codeSnippetDirs;
+
+ if (type != SnippetType::Other) {
+ if (!fallbackPath.isEmpty() && !m_parameters.codeSnippetRewriteOld.isEmpty()) {
+ // Try looking up Python converted snippets by rewriting snippets paths
+ QString rewrittenPath = pySnippetName(fallbackPath, type);
+ if (!rewrittenPath.isEmpty()) {
+ rewrittenPath.replace(m_parameters.codeSnippetRewriteOld,
+ m_parameters.codeSnippetRewriteNew);
+ const QString code = readFromLocation(rewrittenPath, identifier, errorMessage);
+ m_containsAutoTranslations = true;
+ return {code, code.isNull() ? Snippet::Error : Snippet::Converted};
+ }
+ }
+
+ resolvedPath = resolveFile(locations, pySnippetName(path, type));
+ if (!resolvedPath.isEmpty()) {
+ const QString code = readFromLocation(resolvedPath, identifier, errorMessage);
+ return {code, code.isNull() ? Snippet::Error : Snippet::Converted};
+ }
+ }
+
+ resolvedPath = resolveFile(locations, path);
+ if (!resolvedPath.isEmpty()) {
+ const QString code = readFromLocation(resolvedPath, identifier, errorMessage);
+ return {code, code.isNull() ? Snippet::Error : Snippet::Resolved};
+ }
+
+ if (!fallbackPath.isEmpty()) {
+ *errorMessage = msgFallbackWarning(path, identifier, fallbackPath);
+ const QString code = readFromLocation(fallbackPath, identifier, errorMessage);
+ return {code, code.isNull() ? Snippet::Error : Snippet::Fallback};
}
- if (resolvedPath.isEmpty())
- resolvedPath = resolveFile(locations, path);
- if (resolvedPath.isEmpty()) {
- QTextStream(errorMessage) << "Could not resolve \"" << path << "\" in \""
- << locations.join(QLatin1String("\", \""));
- return QString(); // null
+
+ *errorMessage = msgSnippetsResolveError(path, locations);
+ return {{}, Snippet::Error};
+}
+
+// Helpers for extracting qdoc snippets "#/// [id]"
+static QString fileNameOfDevice(const QIODevice *inputFile)
+{
+ const auto *file = qobject_cast<const QFile *>(inputFile);
+ return file ? QDir::toNativeSeparators(file->fileName()) : u"<stdin>"_s;
+}
+
+static QString msgSnippetNotFound(const QIODevice &inputFile,
+ const QString &identifier)
+{
+ return u"Code snippet file found ("_s + fileNameOfDevice(&inputFile)
+ + u"), but snippet ["_s + identifier + u"] not found."_s;
+}
+
+static QString msgEmptySnippet(const QIODevice &inputFile, int lineNo,
+ const QString &identifier)
+{
+ return u"Empty code snippet ["_s + identifier + u"] at "_s
+ + fileNameOfDevice(&inputFile) + u':' + QString::number(lineNo);
+}
+
+// Pattern to match qdoc snippet IDs with "#/// [id]" comments and helper to find ID
+static const QRegularExpression &snippetIdPattern()
+{
+ static const QRegularExpression result(uR"RX((//|#) *! *\[([^]]+)\])RX"_s);
+ Q_ASSERT(result.isValid());
+ return result;
+}
+
+static bool matchesSnippetId(QRegularExpressionMatchIterator it,
+ const QString &identifier)
+{
+ while (it.hasNext()) {
+ if (it.next().captured(2) == identifier)
+ return true;
+ }
+ return false;
+}
+
+QString QtXmlToSphinx::readSnippet(QIODevice &inputFile, const QString &identifier,
+ QString *errorMessage)
+{
+ const QByteArray identifierBA = identifier.toUtf8();
+ // Lambda that matches the snippet id
+ const auto snippetIdPred = [&identifierBA, &identifier](const QByteArray &lineBA)
+ {
+ const bool isComment = lineBA.contains('/') || lineBA.contains('#');
+ if (!isComment || !lineBA.contains(identifierBA))
+ return false;
+ const QString line = QString::fromUtf8(lineBA);
+ return matchesSnippetId(snippetIdPattern().globalMatch(line), identifier);
+ };
+
+ // Find beginning, skip over
+ int lineNo = 1;
+ for (; !inputFile.atEnd() && !snippetIdPred(inputFile.readLine());
+ ++lineNo) {
+ }
+
+ if (inputFile.atEnd()) {
+ *errorMessage = msgSnippetNotFound(inputFile, identifier);
+ return {};
+ }
+
+ QString code;
+ for (; !inputFile.atEnd(); ++lineNo) {
+ const QString line = QString::fromUtf8(inputFile.readLine());
+ auto it = snippetIdPattern().globalMatch(line);
+ if (it.hasNext()) { // Skip snippet id lines
+ if (matchesSnippetId(it, identifier))
+ break;
+ } else {
+ code += line;
+ }
}
- qCDebug(m_generator->loggingCategory()).noquote().nospace()
- << "snippet file " << path
- << " [" << identifier << ']' << " resolved to " << resolvedPath;
- return readFromLocation(resolvedPath, identifier, errorMessage);
+
+ if (code.isEmpty())
+ *errorMessage = msgEmptySnippet(inputFile, lineNo, identifier);
+
+ return code;
}
QString QtXmlToSphinx::readFromLocation(const QString &location, const QString &identifier,
@@ -515,44 +700,18 @@ QString QtXmlToSphinx::readFromLocation(const QString &location, const QString &
QTextStream(errorMessage) << "Could not read code snippet file: "
<< QDir::toNativeSeparators(inputFile.fileName())
<< ": " << inputFile.errorString();
- return QString(); // null
+ return {}; // null
}
- QString code = QLatin1String(""); // non-null
+ QString code = u""_s; // non-null
if (identifier.isEmpty()) {
while (!inputFile.atEnd())
code += QString::fromUtf8(inputFile.readLine());
return CodeSnipHelpers::fixSpaces(code);
}
- const QRegularExpression searchString(QLatin1String("//!\\s*\\[")
- + identifier + QLatin1String("\\]"));
- Q_ASSERT(searchString.isValid());
- static const QRegularExpression codeSnippetCode(QLatin1String("//!\\s*\\[[\\w\\d\\s]+\\]"));
- Q_ASSERT(codeSnippetCode.isValid());
-
- bool getCode = false;
-
- while (!inputFile.atEnd()) {
- QString line = QString::fromUtf8(inputFile.readLine());
- if (getCode && !line.contains(searchString)) {
- line.remove(codeSnippetCode);
- code += line;
- } else if (line.contains(searchString)) {
- if (getCode)
- break;
- getCode = true;
- }
- }
-
- if (!getCode) {
- QTextStream(errorMessage) << "Code snippet file found ("
- << QDir::toNativeSeparators(location) << "), but snippet ["
- << identifier << "] not found.";
- return QString(); // null
- }
-
- return CodeSnipHelpers::fixSpaces(code);
+ code = readSnippet(inputFile, identifier, errorMessage);
+ return code.isEmpty() ? QString{} : CodeSnipHelpers::fixSpaces(code); // maintain isNull()
}
void QtXmlToSphinx::handleHeadingTag(QXmlStreamReader& reader)
@@ -562,7 +721,7 @@ void QtXmlToSphinx::handleHeadingTag(QXmlStreamReader& reader)
static char types[] = { '-', '^' };
QXmlStreamReader::TokenType token = reader.tokenType();
if (token == QXmlStreamReader::StartElement) {
- uint typeIdx = reader.attributes().value(QLatin1String("level")).toUInt();
+ uint typeIdx = reader.attributes().value(u"level"_s).toUInt();
if (typeIdx >= sizeof(types))
type = types[sizeof(types)-1];
else
@@ -615,63 +774,97 @@ void QtXmlToSphinx::handleParaTagEnd()
{
QString result = popOutputBuffer().simplified();
if (result.startsWith(u"**Warning:**"))
- result.replace(0, 12, QStringLiteral(".. warning:: "));
+ result.replace(0, 12, ".. warning:: "_L1);
else if (result.startsWith(u"**Note:**"))
- result.replace(0, 9, QStringLiteral(".. note:: "));
+ result.replace(0, 9, ".. note:: "_L1);
m_output << result << "\n\n";
}
void QtXmlToSphinx::handleItalicTag(QXmlStreamReader& reader)
{
- QXmlStreamReader::TokenType token = reader.tokenType();
- if (token == QXmlStreamReader::StartElement || token == QXmlStreamReader::EndElement) {
- m_insideItalic = !m_insideItalic;
- m_output << '*';
- } else if (token == QXmlStreamReader::Characters) {
+ switch (reader.tokenType()) {
+ case QXmlStreamReader::StartElement:
+ if (m_formattingDepth++ == 0) {
+ m_insideItalic = true;
+ m_output << rstItalic;
+ }
+ break;
+ case QXmlStreamReader::EndElement:
+ if (--m_formattingDepth == 0) {
+ m_insideItalic = false;
+ m_output << rstItalicOff;
+ }
+ break;
+ case QXmlStreamReader::Characters:
m_output << escape(reader.text().trimmed());
+ break;
+ default:
+ break;
}
}
void QtXmlToSphinx::handleBoldTag(QXmlStreamReader& reader)
{
- QXmlStreamReader::TokenType token = reader.tokenType();
- if (token == QXmlStreamReader::StartElement || token == QXmlStreamReader::EndElement) {
- m_insideBold = !m_insideBold;
- m_output << "**";
- } else if (token == QXmlStreamReader::Characters) {
+ switch (reader.tokenType()) {
+ case QXmlStreamReader::StartElement:
+ if (m_formattingDepth++ == 0) {
+ m_insideBold = true;
+ m_output << rstBold;
+ }
+ break;
+ case QXmlStreamReader::EndElement:
+ if (--m_formattingDepth == 0) {
+ m_insideBold = false;
+ m_output << rstBoldOff;
+ }
+ break;
+ case QXmlStreamReader::Characters:
m_output << escape(reader.text().trimmed());
+ break;
+ default:
+ break;
}
}
void QtXmlToSphinx::handleArgumentTag(QXmlStreamReader& reader)
{
- QXmlStreamReader::TokenType token = reader.tokenType();
- if (token == QXmlStreamReader::StartElement || token == QXmlStreamReader::EndElement)
- m_output << "``";
- else if (token == QXmlStreamReader::Characters)
+ switch (reader.tokenType()) {
+ case QXmlStreamReader::StartElement:
+ if (m_formattingDepth++ == 0)
+ m_output << rstCode;
+ break;
+ case QXmlStreamReader::EndElement:
+ if (--m_formattingDepth == 0)
+ m_output << rstCodeOff;
+ break;
+ case QXmlStreamReader::Characters:
m_output << reader.text().trimmed();
+ break;
+ default:
+ break;
+ }
}
-static inline QString functionLinkType() { return QStringLiteral("function"); }
-static inline QString classLinkType() { return QStringLiteral("class"); }
+constexpr auto functionLinkType = "function"_L1;
+constexpr auto classLinkType = "class"_L1;
static inline QString fixLinkType(QStringView type)
{
// TODO: create a flag PROPERTY-AS-FUNCTION to ask if the properties
// are recognized as such or not in the binding
- if (type == QLatin1String("property"))
- return functionLinkType();
- if (type == QLatin1String("typedef"))
- return classLinkType();
+ if (type == u"property")
+ return functionLinkType;
+ if (type == u"typedef")
+ return classLinkType;
return type.toString();
}
static inline QString linkSourceAttribute(const QString &type)
{
- if (type == functionLinkType() || type == classLinkType())
- return QLatin1String("raw");
- return type == QLatin1String("enum") || type == QLatin1String("page")
- ? type : QLatin1String("href");
+ if (type == functionLinkType || type == classLinkType)
+ return u"raw"_s;
+ return type == u"enum" || type == u"page"
+ ? type : u"href"_s;
}
// "See also" links may appear as nested links:
@@ -693,8 +886,8 @@ void QtXmlToSphinx::handleSeeAlsoTag(QXmlStreamReader& reader)
if (!textR.isEmpty()) {
const QString text = textR.toString();
if (m_seeAlsoContext.isNull()) {
- const QString type = text.endsWith(QLatin1String("()"))
- ? functionLinkType() : classLinkType();
+ const QString type = text.endsWith(u"()")
+ ? functionLinkType : classLinkType;
m_seeAlsoContext.reset(handleLinkStart(type, text));
}
handleLinkText(m_seeAlsoContext.data(), text);
@@ -713,12 +906,12 @@ void QtXmlToSphinx::handleSeeAlsoTag(QXmlStreamReader& reader)
}
}
-static inline QString fallbackPathAttribute() { return QStringLiteral("path"); }
+constexpr auto fallbackPathAttribute = "path"_L1;
template <class Indent> // const char*/class Indentor
void formatSnippet(TextStream &str, Indent indent, const QString &snippet)
{
- const auto lines = QStringView{snippet}.split(QLatin1Char('\n'));
+ const auto lines = QStringView{snippet}.split(u'\n');
for (const auto &line : lines) {
if (!line.trimmed().isEmpty())
str << indent << line;
@@ -744,55 +937,48 @@ void QtXmlToSphinx::handleSnippetTag(QXmlStreamReader& reader)
{
QXmlStreamReader::TokenType token = reader.tokenType();
if (token == QXmlStreamReader::StartElement) {
- const bool consecutiveSnippet = m_lastTagName == QLatin1String("snippet")
- || m_lastTagName == QLatin1String("dots") || m_lastTagName == QLatin1String("codeline");
+ const bool consecutiveSnippet = m_lastTagName == u"snippet"
+ || m_lastTagName == u"dots" || m_lastTagName == u"codeline";
if (consecutiveSnippet) {
m_output.flush();
- m_output.string()->chop(2);
+ m_output.string()->chop(1); // Strip newline from previous snippet
}
- QString location = reader.attributes().value(QLatin1String("location")).toString();
- QString identifier = reader.attributes().value(QLatin1String("identifier")).toString();
+ QString location = reader.attributes().value(u"location"_s).toString();
+ QString identifier = reader.attributes().value(u"identifier"_s).toString();
+ QString fallbackPath;
+ if (reader.attributes().hasAttribute(fallbackPathAttribute))
+ fallbackPath = reader.attributes().value(fallbackPathAttribute).toString();
QString errorMessage;
- const QString pythonCode =
- readFromLocations(m_parameters.codeSnippetDirs, location, identifier, &errorMessage);
+
+ const Snippet snippet = readSnippetFromLocations(location, identifier,
+ fallbackPath, &errorMessage);
if (!errorMessage.isEmpty())
warn(msgTagWarning(reader, m_context, m_lastTagName, errorMessage));
- // Fall back to C++ snippet when "path" attribute is present.
- // Also read fallback snippet when comparison is desired.
- QString fallbackCode;
- if ((pythonCode.isEmpty() || m_parameters.snippetComparison)
- && reader.attributes().hasAttribute(fallbackPathAttribute())) {
- const QString fallback = reader.attributes().value(fallbackPathAttribute()).toString();
- if (QFileInfo::exists(fallback)) {
- if (pythonCode.isEmpty())
- warn(msgFallbackWarning(reader, m_context, m_lastTagName, location, identifier, fallback));
- fallbackCode = readFromLocation(fallback, identifier, &errorMessage);
- if (!errorMessage.isEmpty())
- warn(msgTagWarning(reader, m_context, m_lastTagName, errorMessage));
- }
- }
- if (!pythonCode.isEmpty() && !fallbackCode.isEmpty() && m_parameters.snippetComparison)
- debug(msgSnippetComparison(location, identifier, pythonCode, fallbackCode));
+ if (m_parameters.snippetComparison && snippet.result == Snippet::Converted
+ && !fallbackPath.isEmpty()) {
+ const QString fallbackCode = readFromLocation(fallbackPath, identifier, &errorMessage);
+ debug(msgSnippetComparison(location, identifier, snippet.code, fallbackCode));
+ }
if (!consecutiveSnippet)
m_output << "::\n\n";
Indentation indentation(m_output);
- const QString code = pythonCode.isEmpty() ? fallbackCode : pythonCode;
- if (code.isEmpty())
+ if (snippet.result == Snippet::Error)
m_output << "<Code snippet \"" << location << ':' << identifier << "\" not found>\n";
else
- m_output << code << ensureEndl;
+ m_output << snippet.code << ensureEndl;
m_output << '\n';
}
}
+
void QtXmlToSphinx::handleDotsTag(QXmlStreamReader& reader)
{
QXmlStreamReader::TokenType token = reader.tokenType();
if (token == QXmlStreamReader::StartElement) {
- const bool consecutiveSnippet = m_lastTagName == QLatin1String("snippet")
- || m_lastTagName == QLatin1String("dots") || m_lastTagName == QLatin1String("codeline");
+ const bool consecutiveSnippet = m_lastTagName == u"snippet"
+ || m_lastTagName == u"dots" || m_lastTagName == u"codeline";
if (consecutiveSnippet) {
m_output.flush();
m_output.string()->chop(2);
@@ -800,7 +986,7 @@ void QtXmlToSphinx::handleDotsTag(QXmlStreamReader& reader)
m_output << "::\n\n";
}
pushOutputBuffer();
- int indent = reader.attributes().value(QLatin1String("indent")).toInt()
+ int indent = reader.attributes().value(u"indent"_s).toInt()
+ m_output.indentation() * m_output.tabWidth();
for (int i = 0; i < indent; ++i)
m_output << ' ';
@@ -817,12 +1003,11 @@ void QtXmlToSphinx::handleTableTag(QXmlStreamReader& reader)
if (token == QXmlStreamReader::StartElement) {
if (parentTag() == WebXmlTag::para)
handleParaTagEnd(); // End <para> to prevent the table from being rst-escaped
- m_currentTable.clear();
- m_tableHasHeader = false;
+ m_tables.push({});
} else if (token == QXmlStreamReader::EndElement) {
// write the table on m_output
formatCurrentTable();
- m_currentTable.clear();
+ m_tables.pop();
if (parentTag() == WebXmlTag::para)
handleParaTagStart();
}
@@ -834,11 +1019,11 @@ void QtXmlToSphinx::handleTermTag(QXmlStreamReader& reader)
if (token == QXmlStreamReader::StartElement) {
pushOutputBuffer();
} else if (token == QXmlStreamReader::Characters) {
- m_output << reader.text().toString().replace(QLatin1String("::"), QLatin1String("."));
+ m_output << reader.text().toString().replace(u"::"_s, u"."_s);
} else if (token == QXmlStreamReader::EndElement) {
TableCell cell;
cell.data = popOutputBuffer().trimmed();
- m_currentTable.appendRow(TableRow(1, cell));
+ m_tables.back().appendRow(TableRow(1, cell));
}
}
@@ -847,70 +1032,83 @@ void QtXmlToSphinx::handleItemTag(QXmlStreamReader& reader)
{
QXmlStreamReader::TokenType token = reader.tokenType();
if (token == QXmlStreamReader::StartElement) {
- if (m_currentTable.isEmpty())
- m_currentTable.appendRow({});
- TableRow& row = m_currentTable.last();
+ auto &table = m_tables.back();
+ if (table.isEmpty())
+ table.appendRow({});
+ TableRow& row = table.last();
TableCell cell;
- cell.colSpan = reader.attributes().value(QLatin1String("colspan")).toShort();
- cell.rowSpan = reader.attributes().value(QLatin1String("rowspan")).toShort();
+ cell.colSpan = reader.attributes().value(u"colspan"_s).toShort();
+ cell.rowSpan = reader.attributes().value(u"rowspan"_s).toShort();
row << cell;
pushOutputBuffer();
} else if (token == QXmlStreamReader::EndElement) {
- QString data = popOutputBuffer().trimmed();
- if (!m_currentTable.isEmpty()) {
- TableRow& row = m_currentTable.last();
+ QString data = trimLeadingNewlines(trimRight(popOutputBuffer()));
+ auto &table = m_tables.back();
+ if (!table.isEmpty()) {
+ TableRow& row = table.last();
if (!row.isEmpty())
row.last().data = data;
}
}
}
-void QtXmlToSphinx::handleRowTag(QXmlStreamReader& reader)
+void QtXmlToSphinx::handleHeaderTag(QXmlStreamReader &reader)
{
- QXmlStreamReader::TokenType token = reader.tokenType();
- if (token == QXmlStreamReader::StartElement) {
- m_tableHasHeader = reader.name() == QLatin1String("header");
- m_currentTable.appendRow({});
+ // <header> in WebXML is either a table header or a description of a
+ // C++ header with "name"/"href" attributes.
+ if (reader.tokenType() == QXmlStreamReader::StartElement
+ && !reader.attributes().hasAttribute(u"name"_s)) {
+ auto &table = m_tables.back();
+ table.setHeaderEnabled(true);
+ table.appendRow({});
}
}
+void QtXmlToSphinx::handleRowTag(QXmlStreamReader& reader)
+{
+ if (reader.tokenType() == QXmlStreamReader::StartElement)
+ m_tables.back().appendRow({});
+}
+
enum ListType { BulletList, OrderedList, EnumeratedList };
static inline ListType webXmlListType(QStringView t)
{
- if (t == QLatin1String("enum"))
+ if (t == u"enum")
return EnumeratedList;
- if (t == QLatin1String("ordered"))
+ if (t == u"ordered")
return OrderedList;
return BulletList;
}
void QtXmlToSphinx::handleListTag(QXmlStreamReader& reader)
{
- // BUG We do not support a list inside a table cell
static ListType listType = BulletList;
QXmlStreamReader::TokenType token = reader.tokenType();
if (token == QXmlStreamReader::StartElement) {
- listType = webXmlListType(reader.attributes().value(QLatin1String("type")));
+ m_tables.push({});
+ auto &table = m_tables.back();
+ listType = webXmlListType(reader.attributes().value(u"type"_s));
if (listType == EnumeratedList) {
- m_currentTable.appendRow(TableRow{TableCell(QLatin1String("Constant")),
- TableCell(QLatin1String("Description"))});
- m_tableHasHeader = true;
+ table.appendRow(TableRow{TableCell(u"Constant"_s),
+ TableCell(u"Description"_s)});
+ table.setHeaderEnabled(true);
}
m_output.indent();
} else if (token == QXmlStreamReader::EndElement) {
m_output.outdent();
- if (!m_currentTable.isEmpty()) {
+ const auto &table = m_tables.back();
+ if (!table.isEmpty()) {
switch (listType) {
case BulletList:
case OrderedList: {
m_output << '\n';
const char *separator = listType == BulletList ? "* " : "#. ";
const char *indentLine = listType == BulletList ? " " : " ";
- for (const TableCell &cell : m_currentTable.constFirst()) {
- const auto itemLines = QStringView{cell.data}.split(QLatin1Char('\n'));
+ for (const TableCell &cell : table.constFirst()) {
+ const auto itemLines = QStringView{cell.data}.split(u'\n');
m_output << separator << itemLines.constFirst() << '\n';
- for (int i = 1, max = itemLines.count(); i < max; ++i)
+ for (qsizetype i = 1, max = itemLines.size(); i < max; ++i)
m_output << indentLine << itemLines[i] << '\n';
}
m_output << '\n';
@@ -921,7 +1119,7 @@ void QtXmlToSphinx::handleListTag(QXmlStreamReader& reader)
break;
}
}
- m_currentTable.clear();
+ m_tables.pop();
}
}
@@ -931,7 +1129,7 @@ void QtXmlToSphinx::handleLinkTag(QXmlStreamReader& reader)
case QXmlStreamReader::StartElement: {
// <link> embedded in <see-also> means the characters of <see-also> are no link.
m_seeAlsoContext.reset();
- const QString type = fixLinkType(reader.attributes().value(QLatin1String("type")));
+ const QString type = fixLinkType(reader.attributes().value(u"type"_s));
const QString ref = reader.attributes().value(linkSourceAttribute(type)).toString();
m_linkContext.reset(handleLinkStart(type, ref));
}
@@ -952,8 +1150,8 @@ void QtXmlToSphinx::handleLinkTag(QXmlStreamReader& reader)
QtXmlToSphinxLink *QtXmlToSphinx::handleLinkStart(const QString &type, QString ref) const
{
- ref.replace(QLatin1String("::"), QLatin1String("."));
- ref.remove(QLatin1String("()"));
+ ref.replace(u"::"_s, u"."_s);
+ ref.remove(u"()"_s);
auto *result = new QtXmlToSphinxLink(ref);
if (m_insideBold)
@@ -963,25 +1161,25 @@ QtXmlToSphinxLink *QtXmlToSphinx::handleLinkStart(const QString &type, QString r
if (type == u"external" || isHttpLink(ref)) {
result->type = QtXmlToSphinxLink::External;
- } else if (type == functionLinkType() && !m_context.isEmpty()) {
+ } else if (type == functionLinkType && !m_context.isEmpty()) {
result->type = QtXmlToSphinxLink::Method;
- const auto rawlinklist = QStringView{result->linkRef}.split(QLatin1Char('.'));
+ const auto rawlinklist = QStringView{result->linkRef}.split(u'.');
if (rawlinklist.size() == 1 || rawlinklist.constFirst() == m_context) {
const auto lastRawLink = rawlinklist.constLast().toString();
QString context = m_generator->resolveContextForMethod(m_context, lastRawLink);
if (!result->linkRef.startsWith(context))
- result->linkRef.prepend(context + QLatin1Char('.'));
+ result->linkRef.prepend(context + u'.');
} else {
result->linkRef = m_generator->expandFunction(result->linkRef);
}
- } else if (type == functionLinkType() && m_context.isEmpty()) {
+ } else if (type == functionLinkType && m_context.isEmpty()) {
result->type = QtXmlToSphinxLink::Function;
- } else if (type == classLinkType()) {
+ } else if (type == classLinkType) {
result->type = QtXmlToSphinxLink::Class;
result->linkRef = m_generator->expandClass(m_context, result->linkRef);
- } else if (type == QLatin1String("enum")) {
+ } else if (type == u"enum") {
result->type = QtXmlToSphinxLink::Attribute;
- } else if (type == QLatin1String("page")) {
+ } else if (type == u"page") {
// Module, external web page or reference
if (result->linkRef == m_parameters.moduleName)
result->type = QtXmlToSphinxLink::Module;
@@ -995,7 +1193,7 @@ QtXmlToSphinxLink *QtXmlToSphinx::handleLinkStart(const QString &type, QString r
// <link raw="Model/View Classes" href="model-view-programming.html#model-view-classes"
// type="page" page="Model/View Programming">Model/View Classes</link>
-// <link type="page" page="http://doc.qt.io/qt-5/class.html">QML types</link>
+// <link type="page" page="https://doc.qt.io/qt-5/class.html">QML types</link>
// <link raw="Qt Quick" href="qtquick-index.html" type="page" page="Qt Quick">Qt Quick</link>
// <link raw="QObject" href="qobject.html" type="class">QObject</link>
// <link raw="Qt::Window" href="qt.html#WindowType-enum" type="enum" enum="Qt::WindowType">Qt::Window</link>
@@ -1010,16 +1208,16 @@ static QString fixLinkText(const QtXmlToSphinxLink *linkContext,
}
// For the language reference documentation, strip the module name.
// Clear the link text if that matches the function/class/enumeration name.
- const int lastSep = linktext.lastIndexOf(QLatin1String("::"));
+ const int lastSep = linktext.lastIndexOf(u"::");
if (lastSep != -1)
linktext.remove(0, lastSep + 2);
else
QtXmlToSphinx::stripPythonQualifiers(&linktext);
if (linkContext->linkRef == linktext)
- return QString();
+ return {};
if ((linkContext->type & QtXmlToSphinxLink::FunctionMask) != 0
- && (linkContext->linkRef + QLatin1String("()")) == linktext) {
- return QString();
+ && (linkContext->linkRef + u"()"_s) == linktext) {
+ return {};
}
return linktext;
}
@@ -1046,8 +1244,8 @@ static bool copyImage(const QString &href, const QString &docDataDir,
const QString &context, const QString &outputDir,
const QLoggingCategory &lc, QString *errorMessage)
{
- const QChar slash = QLatin1Char('/');
- const int lastSlash = href.lastIndexOf(slash);
+ const QChar slash = u'/';
+ const auto lastSlash = href.lastIndexOf(slash);
const QString imagePath = lastSlash != -1 ? href.left(lastSlash) : QString();
const QString imageFileName = lastSlash != -1 ? href.right(href.size() - lastSlash - 1) : href;
QFileInfo imageSource(docDataDir + slash + href);
@@ -1060,10 +1258,10 @@ static bool copyImage(const QString &href, const QString &docDataDir,
// FIXME: Not perfect yet, should have knowledge about namespaces (DataVis3D) or
// nested classes "Pyside2.QtGui.QTouchEvent.QTouchPoint".
QString relativeTargetDir = context;
- const int lastDot = relativeTargetDir.lastIndexOf(QLatin1Char('.'));
+ const auto lastDot = relativeTargetDir.lastIndexOf(u'.');
if (lastDot != -1)
relativeTargetDir.truncate(lastDot);
- relativeTargetDir.replace(QLatin1Char('.'), slash);
+ relativeTargetDir.replace(u'.', slash);
if (!imagePath.isEmpty())
relativeTargetDir += slash + imagePath;
@@ -1111,7 +1309,7 @@ void QtXmlToSphinx::handleImageTag(QXmlStreamReader& reader)
{
if (reader.tokenType() != QXmlStreamReader::StartElement)
return;
- const QString href = reader.attributes().value(QLatin1String("href")).toString();
+ const QString href = reader.attributes().value(u"href"_s).toString();
if (copyImage(href))
m_output << ".. image:: " << href << "\n\n";
}
@@ -1120,17 +1318,17 @@ void QtXmlToSphinx::handleInlineImageTag(QXmlStreamReader& reader)
{
if (reader.tokenType() != QXmlStreamReader::StartElement)
return;
- const QString href = reader.attributes().value(QLatin1String("href")).toString();
+ const QString href = reader.attributes().value(u"href"_s).toString();
if (!copyImage(href))
return;
// Handle inline images by substitution references. Insert a unique tag
// enclosed by '|' and define it further down. Determine tag from the base
//file name with number.
QString tag = href;
- int pos = tag.lastIndexOf(QLatin1Char('/'));
+ auto pos = tag.lastIndexOf(u'/');
if (pos != -1)
tag.remove(0, pos + 1);
- pos = tag.indexOf(QLatin1Char('.'));
+ pos = tag.indexOf(u'.');
if (pos != -1)
tag.truncate(pos);
tag += QString::number(m_inlineImages.size() + 1);
@@ -1142,7 +1340,7 @@ void QtXmlToSphinx::handleRawTag(QXmlStreamReader& reader)
{
QXmlStreamReader::TokenType token = reader.tokenType();
if (token == QXmlStreamReader::StartElement) {
- QString format = reader.attributes().value(QLatin1String("format")).toString();
+ QString format = reader.attributes().value(u"format"_s).toString();
m_output << ".. raw:: " << format.toLower() << "\n\n";
} else if (token == QXmlStreamReader::Characters) {
Indentation indent(m_output);
@@ -1195,11 +1393,11 @@ void QtXmlToSphinx::handlePageTag(QXmlStreamReader &reader)
m_output << disableIndent;
- const auto title = reader.attributes().value(titleAttribute());
+ const auto title = reader.attributes().value("title");
if (!title.isEmpty())
m_output << rstLabel(title.toString());
- const auto fullTitle = reader.attributes().value(fullTitleAttribute());
+ const auto fullTitle = reader.attributes().value("fulltitle");
const int size = fullTitle.isEmpty()
? writeEscapedRstText(m_output, title)
: writeEscapedRstText(m_output, fullTitle);
@@ -1212,7 +1410,7 @@ void QtXmlToSphinx::handleTargetTag(QXmlStreamReader &reader)
{
if (reader.tokenType() != QXmlStreamReader::StartElement)
return;
- const auto name = reader.attributes().value(nameAttribute());
+ const auto name = reader.attributes().value("name");
if (!name.isEmpty())
m_output << rstLabel(name.toString());
}
@@ -1232,14 +1430,14 @@ void QtXmlToSphinx::handleAnchorTag(QXmlStreamReader& reader)
QXmlStreamReader::TokenType token = reader.tokenType();
if (token == QXmlStreamReader::StartElement) {
QString anchor;
- if (reader.attributes().hasAttribute(QLatin1String("id")))
- anchor = reader.attributes().value(QLatin1String("id")).toString();
- else if (reader.attributes().hasAttribute(QLatin1String("name")))
- anchor = reader.attributes().value(QLatin1String("name")).toString();
+ if (reader.attributes().hasAttribute(u"id"_s))
+ anchor = reader.attributes().value(u"id"_s).toString();
+ else if (reader.attributes().hasAttribute(u"name"_s))
+ anchor = reader.attributes().value(u"name"_s).toString();
if (!anchor.isEmpty() && m_opened_anchor != anchor) {
m_opened_anchor = anchor;
if (!m_context.isEmpty())
- anchor.prepend(m_context + QLatin1Char('_'));
+ anchor.prepend(m_context + u'_');
m_output << rstLabel(anchor);
}
} else if (token == QXmlStreamReader::EndElement) {
@@ -1258,7 +1456,7 @@ void QtXmlToSphinx::handleQuoteFileTag(QXmlStreamReader& reader)
QXmlStreamReader::TokenType token = reader.tokenType();
if (token == QXmlStreamReader::Characters) {
QString location = reader.text().toString();
- location.prepend(m_parameters.libSourceDir + QLatin1Char('/'));
+ location.prepend(m_parameters.libSourceDir + u'/');
QString errorMessage;
QString code = readFromLocation(location, QString(), &errorMessage);
if (!errorMessage.isEmpty())
@@ -1273,51 +1471,72 @@ void QtXmlToSphinx::handleQuoteFileTag(QXmlStreamReader& reader)
}
}
+bool QtXmlToSphinx::Table::hasEmptyLeadingRow() const
+{
+ return !m_rows.isEmpty() && m_rows.constFirst().isEmpty();
+}
+
+bool QtXmlToSphinx::Table::hasEmptyTrailingRow() const
+{
+ return !m_rows.isEmpty() && m_rows.constLast().isEmpty();
+}
+
void QtXmlToSphinx::Table::normalize()
{
- if (m_normalized || isEmpty())
+ if (m_normalized)
+ return;
+
+ // Empty leading/trailing rows have been observed with nested tables
+ if (hasEmptyLeadingRow() || hasEmptyLeadingRow()) {
+ qWarning() << "QtXmlToSphinx: Table with leading/trailing empty columns found: " << *this;
+ while (hasEmptyTrailingRow())
+ m_rows.pop_back();
+ while (hasEmptyLeadingRow())
+ m_rows.pop_front();
+ }
+
+ if (isEmpty())
return;
//QDoc3 generates tables with wrong number of columns. We have to
//check and if necessary, merge the last columns.
- int maxCols = -1;
- for (const auto &row : qAsConst(m_rows)) {
- if (row.count() > maxCols)
- maxCols = row.count();
+ qsizetype maxCols = -1;
+ for (const auto &row : std::as_const(m_rows)) {
+ if (row.size() > maxCols)
+ maxCols = row.size();
}
if (maxCols <= 0)
return;
// add col spans
- for (int row = 0; row < m_rows.count(); ++row) {
- for (int col = 0; col < m_rows.at(row).count(); ++col) {
+ for (qsizetype row = 0; row < m_rows.size(); ++row) {
+ for (qsizetype col = 0; col < m_rows.at(row).size(); ++col) {
QtXmlToSphinx::TableCell& cell = m_rows[row][col];
bool mergeCols = (col >= maxCols);
if (cell.colSpan > 0) {
QtXmlToSphinx::TableCell newCell;
newCell.colSpan = -1;
- for (int i = 0, max = cell.colSpan-1; i < max; ++i) {
+ for (int i = 0, max = cell.colSpan-1; i < max; ++i)
m_rows[row].insert(col + 1, newCell);
- }
cell.colSpan = 0;
col++;
} else if (mergeCols) {
- m_rows[row][maxCols - 1].data += QLatin1Char(' ') + cell.data;
+ m_rows[row][maxCols - 1].data += u' ' + cell.data;
}
}
}
// row spans
- const int numCols = m_rows.constFirst().count();
- for (int col = 0; col < numCols; ++col) {
- for (int row = 0; row < m_rows.count(); ++row) {
- if (col < m_rows[row].count()) {
+ const qsizetype numCols = m_rows.constFirst().size();
+ for (qsizetype col = 0; col < numCols; ++col) {
+ for (qsizetype row = 0; row < m_rows.size(); ++row) {
+ if (col < m_rows[row].size()) {
QtXmlToSphinx::TableCell& cell = m_rows[row][col];
if (cell.rowSpan > 0) {
QtXmlToSphinx::TableCell newCell;
newCell.rowSpan = -1;
- int targetRow = row + 1;
- const int targetEndRow =
- std::min(targetRow + cell.rowSpan - 1, int(m_rows.count()));
+ qsizetype targetRow = row + 1;
+ const qsizetype targetEndRow =
+ std::min(targetRow + cell.rowSpan - 1, m_rows.size());
cell.rowSpan = 0;
for ( ; targetRow < targetEndRow; ++targetRow)
m_rows[targetRow].insert(col, newCell);
@@ -1337,16 +1556,17 @@ void QtXmlToSphinx::Table::format(TextStream& s) const
Q_ASSERT(isNormalized());
// calc width and height of each column and row
- const int headerColumnCount = m_rows.constFirst().count();
- QList<int> colWidths(headerColumnCount, 0);
- QList<int> rowHeights(m_rows.count(), 0);
- for (int i = 0, maxI = m_rows.count(); i < maxI; ++i) {
+ const qsizetype headerColumnCount = m_rows.constFirst().size();
+ QList<qsizetype> colWidths(headerColumnCount, 0);
+ QList<qsizetype> rowHeights(m_rows.size(), 0);
+ for (qsizetype i = 0, maxI = m_rows.size(); i < maxI; ++i) {
const QtXmlToSphinx::TableRow& row = m_rows.at(i);
- for (int j = 0, maxJ = std::min(row.count(), colWidths.size()); j < maxJ; ++j) {
- const auto rowLines = QStringView{row[j].data}.split(QLatin1Char('\n')); // cache this would be a good idea
+ for (qsizetype j = 0, maxJ = std::min(row.size(), colWidths.size()); j < maxJ; ++j) {
+ // cache this would be a good idea
+ const auto rowLines = QStringView{row[j].data}.split(u'\n');
for (const auto &str : rowLines)
- colWidths[j] = std::max(colWidths[j], int(str.size()));
- rowHeights[i] = std::max(rowHeights[i], int(rowLines.size()));
+ colWidths[j] = std::max(colWidths[j], str.size());
+ rowHeights[i] = std::max(rowHeights[i], rowLines.size());
}
}
@@ -1354,44 +1574,41 @@ void QtXmlToSphinx::Table::format(TextStream& s) const
return; // empty table (table with empty cells)
// create a horizontal line to be used later.
- QString horizontalLine = QLatin1String("+");
- for (int i = 0, max = colWidths.count(); i < max; ++i) {
- horizontalLine += QString(colWidths.at(i), QLatin1Char('-'));
- horizontalLine += QLatin1Char('+');
- }
+ QString horizontalLine = u"+"_s;
+ for (auto colWidth : colWidths)
+ horizontalLine += QString(colWidth, u'-') + u'+';
// write table rows
- for (int i = 0, maxI = m_rows.count(); i < maxI; ++i) { // for each row
+ for (qsizetype i = 0, maxI = m_rows.size(); i < maxI; ++i) { // for each row
const QtXmlToSphinx::TableRow& row = m_rows.at(i);
// print line
s << '+';
- for (int col = 0; col < headerColumnCount; ++col) {
- char c;
- if (col >= row.length() || row[col].rowSpan == -1)
+ for (qsizetype col = 0; col < headerColumnCount; ++col) {
+ char c = '-';
+ if (col >= row.size() || row[col].rowSpan == -1)
c = ' ';
else if (i == 1 && hasHeader())
c = '=';
- else
- c = '-';
s << Pad(c, colWidths.at(col)) << '+';
}
s << '\n';
// Print the table cells
- for (int rowLine = 0; rowLine < rowHeights[i]; ++rowLine) { // for each line in a row
- int j = 0;
- for (int maxJ = std::min(int(row.count()), headerColumnCount); j < maxJ; ++j) { // for each column
+ for (qsizetype rowLine = 0; rowLine < rowHeights.at(i); ++rowLine) { // for each line in a row
+ qsizetype j = 0;
+ for (qsizetype maxJ = std::min(row.size(), headerColumnCount); j < maxJ; ++j) { // for each column
const QtXmlToSphinx::TableCell& cell = row[j];
- const auto rowLines = QStringView{cell.data}.split(QLatin1Char('\n')); // FIXME: Cache this!!!
+ // FIXME: Cache this!!!
+ const auto rowLines = QStringView{cell.data}.split(u'\n');
if (!j || !cell.colSpan)
s << '|';
else
s << ' ';
- const int width = colWidths.at(j);
- if (rowLine < rowLines.count())
+ const auto width = int(colWidths.at(j));
+ if (rowLine < rowLines.size())
s << AlignedField(rowLines.at(rowLine), width);
else
s << Pad(' ', width);
@@ -1404,9 +1621,31 @@ void QtXmlToSphinx::Table::format(TextStream& s) const
s << horizontalLine << "\n\n";
}
+void QtXmlToSphinx::Table::formatDebug(QDebug &debug) const
+{
+ const auto rowCount = m_rows.size();
+ debug << "Table(" <<rowCount << " rows";
+ if (m_hasHeader)
+ debug << ", [header]";
+ if (m_normalized)
+ debug << ", [normalized]";
+ for (qsizetype r = 0; r < rowCount; ++r) {
+ const auto &row = m_rows.at(r);
+ const auto &colCount = row.size();
+ debug << ", row " << r << " [" << colCount << "]={";
+ for (qsizetype c = 0; c < colCount; ++c) {
+ if (c > 0)
+ debug << ", ";
+ debug << row.at(c);
+ }
+ debug << '}';
+ }
+ debug << ')';
+}
+
void QtXmlToSphinx::stripPythonQualifiers(QString *s)
{
- const int lastSep = s->lastIndexOf(QLatin1Char('.'));
+ const int lastSep = s->lastIndexOf(u'.');
if (lastSep != -1)
s->remove(0, lastSep + 1);
}
diff --git a/sources/shiboken6/generator/qtdoc/qtxmltosphinx.h b/sources/shiboken6/generator/qtdoc/qtxmltosphinx.h
index 55d6a79b1..398c5bc97 100644
--- a/sources/shiboken6/generator/qtdoc/qtxmltosphinx.h
+++ b/sources/shiboken6/generator/qtdoc/qtxmltosphinx.h
@@ -1,42 +1,16 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef QTXMLTOSPHINX_H
#define QTXMLTOSPHINX_H
#include <textstream.h>
-#include <QtCore/QHash>
#include <QtCore/QList>
#include <QtCore/QScopedPointer>
-#include <QtCore/QSharedPointer>
#include <QtCore/QStack>
-#include <QtCore/QTextStream>
+
+#include <memory>
QT_BEGIN_NAMESPACE
class QDebug;
@@ -67,7 +41,7 @@ public:
QString data;
TableCell(const QString& text = QString()) : data(text) {}
- TableCell(const char* text) : data(QLatin1String(text)) {}
+ TableCell(const char* text) : data(QString::fromLatin1(text)) {}
};
using TableRow = QList<TableCell>;
@@ -96,20 +70,19 @@ public:
return m_normalized;
}
- void clear() {
- m_normalized = false;
- m_rows.clear();
- }
-
void appendRow(const TableRow &row) { m_rows.append(row); }
- const TableRow &constFirst() { return m_rows.constFirst(); }
+ const TableRow &constFirst() const { return m_rows.constFirst(); }
TableRow &first() { return m_rows.first(); }
TableRow &last() { return m_rows.last(); }
void format(TextStream& s) const;
+ void formatDebug(QDebug &debug) const;
private:
+ bool hasEmptyLeadingRow() const;
+ bool hasEmptyTrailingRow() const;
+
QList<TableRow> m_rows;
bool m_hasHeader = false;
bool m_normalized = false;
@@ -128,8 +101,12 @@ public:
static void stripPythonQualifiers(QString *s);
+ // For testing
+ static QString readSnippet(QIODevice &inputFile, const QString &identifier,
+ QString *errorMessage);
+
private:
- using StringSharedPtr = QSharedPointer<QString>;
+ using StringSharedPtr = std::shared_ptr<QString>;
QString transform(const QString& doc);
@@ -155,6 +132,7 @@ private:
// table tagsvoid QtXmlToSphinx::handleValueTag(QXmlStreamReader& reader)
void handleTableTag(QXmlStreamReader& reader);
+ void handleHeaderTag(QXmlStreamReader& reader);
void handleRowTag(QXmlStreamReader& reader);
void handleItemTag(QXmlStreamReader& reader);
void handleRawTag(QXmlStreamReader& reader);
@@ -182,21 +160,40 @@ private:
QStack<StringSharedPtr> m_buffers; // Maintain address stability since it used in TextStream
- Table m_currentTable;
+ QStack<Table> m_tables; // Stack of tables, used for <table><list> with nested <item>
QScopedPointer<QtXmlToSphinxLink> m_linkContext; // for <link>
QScopedPointer<QtXmlToSphinxLink> m_seeAlsoContext; // for <see-also>foo()</see-also>
- bool m_tableHasHeader = false;
QString m_context;
const QtXmlToSphinxDocGeneratorInterface *m_generator;
const QtXmlToSphinxParameters &m_parameters;
+ int m_formattingDepth = 0;
bool m_insideBold = false;
bool m_insideItalic = false;
QString m_lastTagName;
QString m_opened_anchor;
QList<InlineImage> m_inlineImages;
- QString readFromLocations(const QStringList &locations, const QString &path,
- const QString &identifier, QString *errorMessage);
+ bool m_containsAutoTranslations = false;
+
+ struct Snippet
+ {
+ enum Result {
+ Converted, // C++ converted to Python
+ Resolved, // Otherwise resolved in snippet paths
+ Fallback, // Fallback from XML
+ Error
+ };
+
+ QString code;
+ Result result;
+ };
+
+ void setAutoTranslatedNote(QString *str) const;
+
+ Snippet readSnippetFromLocations(const QString &path,
+ const QString &identifier,
+ const QString &fallbackPath,
+ QString *errorMessage);
static QString readFromLocation(const QString &location, const QString &identifier,
QString *errorMessage);
void pushOutputBuffer();
@@ -213,5 +210,7 @@ inline TextStream& operator<<(TextStream& s, const QtXmlToSphinx& xmlToSphinx)
}
QDebug operator<<(QDebug d, const QtXmlToSphinxLink &l);
+QDebug operator<<(QDebug debug, const QtXmlToSphinx::Table &t);
+QDebug operator<<(QDebug debug, const QtXmlToSphinx::TableCell &c);
#endif // QTXMLTOSPHINX_H
diff --git a/sources/shiboken6/generator/qtdoc/qtxmltosphinxinterface.h b/sources/shiboken6/generator/qtdoc/qtxmltosphinxinterface.h
index d4e792d76..16eefad83 100644
--- a/sources/shiboken6/generator/qtdoc/qtxmltosphinxinterface.h
+++ b/sources/shiboken6/generator/qtdoc/qtxmltosphinxinterface.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef QTXMLTOSPHINXINTERFACE_H
#define QTXMLTOSPHINXINTERFACE_H
@@ -40,6 +15,8 @@ struct QtXmlToSphinxParameters
QString outputDirectory;
QString libSourceDir;
QStringList codeSnippetDirs;
+ QString codeSnippetRewriteOld;
+ QString codeSnippetRewriteNew;
bool snippetComparison = false;
};
diff --git a/sources/shiboken6/generator/qtdoc/rstformat.h b/sources/shiboken6/generator/qtdoc/rstformat.h
index d14ecc55d..8af7671fb 100644
--- a/sources/shiboken6/generator/qtdoc/rstformat.h
+++ b/sources/shiboken6/generator/qtdoc/rstformat.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef RSTFORMAT_H
#define RSTFORMAT_H
@@ -55,28 +30,6 @@ inline QByteArray rstDeprecationNote(const char *what)
+ what + QByteArrayLiteral(" is deprecated.\n\n");
}
-class Pad
-{
-public:
- explicit Pad(char c, int count) : m_char(c), m_count(count) {}
-
- void write(TextStream &str) const
- {
- for (int i = 0; i < m_count; ++i)
- str << m_char;
- }
-
-private:
- const char m_char;
- const int m_count;
-};
-
-inline TextStream &operator<<(TextStream &str, const Pad &pad)
-{
- pad.write(str);
- return str;
-}
-
template <class String>
inline int writeEscapedRstText(TextStream &str, const String &s)
{
@@ -116,14 +69,14 @@ inline TextStream &operator<<(TextStream &str, const escape &e)
// RST anchor string: Anything else but letters, numbers, '_' or '.' replaced by '-'
inline bool isValidRstLabelChar(QChar c)
{
- return c.isLetterOrNumber() || c == QLatin1Char('_') || c == QLatin1Char('.');
+ return c.isLetterOrNumber() || c == u'_' || c == u'.';
}
inline QString toRstLabel(QString s)
{
for (int i = 0, size = s.size(); i < size; ++i) {
if (!isValidRstLabelChar(s.at(i)))
- s[i] = QLatin1Char('-');
+ s[i] = u'-';
}
return s;
}
diff --git a/sources/shiboken6/generator/shiboken/configurablescope.h b/sources/shiboken6/generator/shiboken/configurablescope.h
new file mode 100644
index 000000000..9040c7ad9
--- /dev/null
+++ b/sources/shiboken6/generator/shiboken/configurablescope.h
@@ -0,0 +1,33 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef CONFIGURABLESCOPE_H
+#define CONFIGURABLESCOPE_H
+
+#include <textstream.h>
+#include <configurabletypeentry.h>
+
+/// Enclose a scope within preprocessor conditions for configurable entries
+class ConfigurableScope
+{
+public:
+ explicit ConfigurableScope(TextStream &s, const ConfigurableTypeEntryCPtr &t) :
+ m_stream(s),
+ m_hasConfigCondition(t->hasConfigCondition())
+ {
+ if (m_hasConfigCondition)
+ m_stream << t->configCondition() << '\n';
+ }
+
+ ~ConfigurableScope()
+ {
+ if (m_hasConfigCondition)
+ m_stream << "#endif\n";
+ }
+
+private:
+ TextStream &m_stream;
+ const bool m_hasConfigCondition;
+};
+
+#endif // CONFIGURABLESCOPE_H
diff --git a/sources/shiboken6/generator/shiboken/cppgenerator.cpp b/sources/shiboken6/generator/shiboken/cppgenerator.cpp
index 43a2b4e78..84d3c93d3 100644
--- a/sources/shiboken6/generator/shiboken/cppgenerator.cpp
+++ b/sources/shiboken6/generator/shiboken/cppgenerator.cpp
@@ -1,44 +1,27 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <memory>
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "cppgenerator.h"
+#include "configurablescope.h"
+#include "generatorargument.h"
+#include "generatorstrings.h"
+#include "defaultvalue.h"
+#include "generatorcontext.h"
+#include "codesnip.h"
+#include "customconversion.h"
+#include "headergenerator.h"
#include "apiextractorresult.h"
#include "ctypenames.h"
#include <exception.h>
#include "pytypenames.h"
#include "fileout.h"
#include "overloaddata.h"
+#include "pymethoddefentry.h"
#include <abstractmetaenum.h>
#include <abstractmetafield.h>
#include <abstractmetafunction.h>
#include <abstractmetalang.h>
+#include <abstractmetalang_helpers.h>
#include <messages.h>
#include <modifications.h>
#include <propertyspec.h>
@@ -46,80 +29,114 @@
#include <sourcelocation.h>
#include <textstream.h>
#include <typedatabase.h>
+#include <containertypeentry.h>
+#include <enumtypeentry.h>
+#include <flagstypeentry.h>
+#include <functiontypeentry.h>
+#include <namespacetypeentry.h>
+#include <primitivetypeentry.h>
+#include <smartpointertypeentry.h>
+#include <typesystemtypeentry.h>
+#include <valuetypeentry.h>
#include <parser/enumvalue.h>
+#include "qtcompat.h"
+
+#include <QtCore/QDebug>
#include <QtCore/QDir>
#include <QtCore/QMetaObject>
+#include <QtCore/QMetaType>
#include <QtCore/QRegularExpression>
#include <QtCore/QTextStream>
-#include <QtCore/QDebug>
-#include <QMetaType>
#include <algorithm>
#include <cstring>
+#include <memory>
+#include <set>
+
+using namespace Qt::StringLiterals;
-static const char CPP_ARG0[] = "cppArg0";
+static const char shibokenErrorsOccurred[] = "Shiboken::Errors::occurred() != nullptr";
-static inline QString reprFunction() { return QStringLiteral("__repr__"); }
+static constexpr auto virtualMethodStaticReturnVar = "result"_L1;
-QString CppGenerator::m_currentErrorCode(QLatin1String("{}"));
+static constexpr auto sbkObjectTypeF = "SbkObject_TypeF()"_L1;
+static const char initInheritanceFunction[] = "initInheritance";
-static const char typeNameFunc[] = R"CPP(
-template <class T>
-static const char *typeNameOf(const T &t)
+static QString mangleName(QString name)
{
- const char *typeName = typeid(t).name();
- auto size = std::strlen(typeName);
-#if defined(Q_CC_MSVC) // MSVC: "class QPaintDevice * __ptr64"
- if (auto lastStar = strchr(typeName, '*')) {
- // MSVC: "class QPaintDevice * __ptr64"
- while (*--lastStar == ' ') {
- }
- size = lastStar - typeName + 1;
- }
-#else // g++, Clang: "QPaintDevice *" -> "P12QPaintDevice"
- if (size > 2 && typeName[0] == 'P' && std::isdigit(typeName[1])) {
- ++typeName;
- --size;
- }
-#endif
- char *result = new char[size + 1];
- result[size] = '\0';
- memcpy(result, typeName, size);
- return result;
+ if (name == u"None" || name == u"False" || name == u"True" || name == u"from")
+ name += u'_';
+ return name;
}
-)CPP";
-// utility functions
-inline AbstractMetaType getTypeWithoutContainer(const AbstractMetaType &arg)
+struct sbkUnusedVariableCast
{
- if (arg.typeEntry()->isContainer()) {
- // only support containers with 1 type
- if (arg.instantiations().size() == 1)
- return arg.instantiations().constFirst();
- }
- return arg;
-}
+ explicit sbkUnusedVariableCast(QAnyStringView name) : m_name(name) {}
-// A helper for writing C++ return statements for either void ("return;")
-// or some return value ("return value;")
-class returnStatement
+ const QAnyStringView m_name;
+};
+
+TextStream &operator<<(TextStream &str, const sbkUnusedVariableCast &c)
{
-public:
- explicit returnStatement(QString s) : m_returnValue(std::move(s)) {}
+ str << "SBK_UNUSED(" << c.m_name << ")\n";
+ return str;
+}
- friend TextStream &operator<<(TextStream &s, const returnStatement &r);
+struct pyTypeGetSlot
+{
+ explicit pyTypeGetSlot(QAnyStringView funcType, QAnyStringView typeObject,
+ QAnyStringView aSlot) :
+ m_funcType(funcType), m_typeObject(typeObject), m_slot(aSlot) {}
-private:
- const QString m_returnValue;
+ const QAnyStringView m_funcType;
+ const QAnyStringView m_typeObject;
+ const QAnyStringView m_slot;
};
-TextStream &operator<<(TextStream &s, const returnStatement &r)
+TextStream &operator<<(TextStream &str, const pyTypeGetSlot &p)
+{
+ str << "reinterpret_cast<" << p.m_funcType << ">(PepType_GetSlot("
+ << p.m_typeObject << ", " << p.m_slot << "));\n";
+ return str;
+}
+
+TextStream &operator<<(TextStream &s, CppGenerator::ErrorReturn r)
{
s << "return";
- if (!r.m_returnValue.isEmpty())
- s << ' ' << r.m_returnValue;
- s << ';';
+ switch (r) {
+ case CppGenerator::ErrorReturn::Default:
+ s << " {}";
+ break;
+ case CppGenerator::ErrorReturn::Zero:
+ s << " 0";
+ break;
+ case CppGenerator::ErrorReturn::MinusOne:
+ s << " -1";
+ break;
+ case CppGenerator::ErrorReturn::Void:
+ break;
+ }
+ s << ";\n";
+ return s;
+}
+
+static constexpr auto converterVar = "converter"_L1;
+
+struct registerConverterName
+{
+ explicit registerConverterName(QAnyStringView typeName,
+ QAnyStringView varName = converterVar) :
+ m_typeName(typeName), m_varName(varName) {}
+
+ QAnyStringView m_typeName;
+ QAnyStringView m_varName;
+};
+
+TextStream &operator<<(TextStream &s, const registerConverterName &r)
+{
+ s << "Shiboken::Conversions::registerConverterName(" << r.m_varName
+ << ", \"" << r.m_typeName << "\");\n";
return s;
}
@@ -147,15 +164,15 @@ static bool contains(const ProtocolEntries &l, const QString &needle)
const ProtocolEntries &mappingProtocols()
{
static const ProtocolEntries result = {
- {QLatin1String("__mlen__"),
- QLatin1String("PyObject *self"),
- QLatin1String("Py_ssize_t")},
- {QLatin1String("__mgetitem__"),
- QLatin1String("PyObject *self, PyObject *_key"),
- QLatin1String("PyObject*")},
- {QLatin1String("__msetitem__"),
- QLatin1String("PyObject *self, PyObject *_key, PyObject *_value"),
- intT()}};
+ {u"__mlen__"_s,
+ u"PyObject *self"_s,
+ u"Py_ssize_t"_s},
+ {u"__mgetitem__"_s,
+ u"PyObject *self, PyObject *_key"_s,
+ u"PyObject*"_s},
+ {u"__msetitem__"_s,
+ u"PyObject *self, PyObject *_key, PyObject *_value"_s,
+ intT}};
return result;
}
@@ -164,157 +181,71 @@ const ProtocolEntries &mappingProtocols()
const ProtocolEntries &sequenceProtocols()
{
static const ProtocolEntries result = {
- {QLatin1String("__len__"),
- QLatin1String("PyObject *self"),
- QLatin1String("Py_ssize_t")},
- {QLatin1String("__getitem__"),
- QLatin1String("PyObject *self, Py_ssize_t _i"),
- QLatin1String("PyObject*")},
- {QLatin1String("__setitem__"),
- QLatin1String("PyObject *self, Py_ssize_t _i, PyObject *_value"),
- intT()},
- {QLatin1String("__getslice__"),
- QLatin1String("PyObject *self, Py_ssize_t _i1, Py_ssize_t _i2"),
- QLatin1String("PyObject*")},
- {QLatin1String("__setslice__"),
- QLatin1String("PyObject *self, Py_ssize_t _i1, Py_ssize_t _i2, PyObject *_value"),
- intT()},
- {QLatin1String("__contains__"),
- QLatin1String("PyObject *self, PyObject *_value"),
- intT()},
- {QLatin1String("__concat__"),
- QLatin1String("PyObject *self, PyObject *_other"),
- QLatin1String("PyObject*")}
+ {u"__len__"_s,
+ u"PyObject *self"_s,
+ u"Py_ssize_t"_s},
+ {u"__getitem__"_s,
+ u"PyObject *self, Py_ssize_t _i"_s,
+ u"PyObject*"_s},
+ {u"__setitem__"_s,
+ u"PyObject *self, Py_ssize_t _i, PyObject *_value"_s,
+ intT},
+ {u"__getslice__"_s,
+ u"PyObject *self, Py_ssize_t _i1, Py_ssize_t _i2"_s,
+ u"PyObject*"_s},
+ {u"__setslice__"_s,
+ u"PyObject *self, Py_ssize_t _i1, Py_ssize_t _i2, PyObject *_value"_s,
+ intT},
+ {u"__contains__"_s,
+ u"PyObject *self, PyObject *_value"_s,
+ intT},
+ {u"__concat__"_s,
+ u"PyObject *self, PyObject *_other"_s,
+ u"PyObject*"_s}
};
return result;
}
-CppGenerator::CppGenerator() = default;
-
-QString CppGenerator::fileNameSuffix() const
-{
- return QLatin1String("_wrapper.cpp");
-}
-
-QString CppGenerator::fileNameForContext(const GeneratorContext &context) const
-{
- const AbstractMetaClass *metaClass = context.metaClass();
- if (!context.forSmartPointer()) {
- QString fileNameBase = metaClass->qualifiedCppName().toLower();
- fileNameBase.replace(QLatin1String("::"), QLatin1String("_"));
- return fileNameBase + fileNameSuffix();
- }
- const AbstractMetaType &smartPointerType = context.preciseType();
- QString fileNameBase = getFileNameBaseForSmartPointer(smartPointerType, metaClass);
- return fileNameBase + fileNameSuffix();
-}
-
-static bool isInplaceAdd(const AbstractMetaFunctionCPtr &func)
-{
- return func->name() == u"operator+=";
-}
-
-static bool isIncrementOperator(const AbstractMetaFunctionCPtr &func)
-{
- return func->functionType() == AbstractMetaFunction::IncrementOperator;
-}
-
-static bool isDecrementOperator(const AbstractMetaFunctionCPtr &func)
-{
- return func->functionType() == AbstractMetaFunction::DecrementOperator;
-}
-
-// Filter predicate for operator functions
-static bool skipOperatorFunc(const AbstractMetaFunctionCPtr &func)
-{
- if (func->isModifiedRemoved() || func->usesRValueReferences())
- return true;
- const auto &name = func->name();
- return name == u"operator[]" || name == u"operator->" || name == u"operator!";
-}
-
-QList<AbstractMetaFunctionCList>
- CppGenerator::filterGroupedOperatorFunctions(const AbstractMetaClass *metaClass,
- OperatorQueryOptions query)
+// Return name of function to create PyObject wrapping a container
+static QString opaqueContainerCreationFunc(const AbstractMetaType &type)
{
- // ( func_name, num_args ) => func_list
- QMap<QPair<QString, int>, AbstractMetaFunctionCList> results;
-
- auto funcs = metaClass->operatorOverloads(query);
- auto end = std::remove_if(funcs.begin(), funcs.end(), skipOperatorFunc);
- funcs.erase(end, funcs.end());
-
- // If we have operator+=, we remove the operator++/-- which would
- // otherwise be used for emulating __iadd__, __isub__.
- if (std::any_of(funcs.cbegin(), funcs.cend(), isInplaceAdd)) {
- end = std::remove_if(funcs.begin(), funcs.end(),
- [] (const AbstractMetaFunctionCPtr &func) {
- return func->isIncDecrementOperator();
- });
- funcs.erase(end, funcs.end());
- } else {
- // If both prefix/postfix ++/-- are present, remove one
- if (std::count_if(funcs.begin(), funcs.end(), isIncrementOperator) > 1)
- funcs.erase(std::find_if(funcs.begin(), funcs.end(), isIncrementOperator));
- if (std::count_if(funcs.begin(), funcs.end(), isDecrementOperator) > 1)
- funcs.erase(std::find_if(funcs.begin(), funcs.end(), isDecrementOperator));
- }
-
- for (const auto &func : funcs) {
- int args;
- if (func->isComparisonOperator()) {
- args = -1;
- } else {
- args = func->arguments().size();
- }
- QPair<QString, int > op(func->name(), args);
- results[op].append(func);
- }
- QList<AbstractMetaFunctionCList> result;
- result.reserve(results.size());
- for (auto it = results.cbegin(), end = results.cend(); it != end; ++it)
- result.append(it.value());
+ const auto containerTypeEntry =
+ std::static_pointer_cast<const ContainerTypeEntry>(type.typeEntry());
+ const auto instantiationTypeEntry =
+ type.instantiations().constFirst().typeEntry();
+ QString result = u"create"_s;
+ if (type.isConstant())
+ result += u"Const"_s;
+ result += containerTypeEntry->opaqueContainerName(type.instantiationCppSignatures());
return result;
}
-AbstractMetaFunctionCPtr CppGenerator::boolCast(const AbstractMetaClass *metaClass) const
+// Write declaration of the function to create PyObject wrapping a container
+static void writeOpaqueContainerCreationFuncDecl(TextStream &s, const QString &name,
+ AbstractMetaType type)
{
- const auto *te = metaClass->typeEntry();
- auto mode = te->operatorBoolMode();
- if (useOperatorBoolAsNbNonZero()
- ? mode != TypeSystem::BoolCast::Disabled : mode == TypeSystem::BoolCast::Enabled) {
- const auto func = metaClass->findOperatorBool();
- if (!func.isNull())
- return func;
- }
-
- mode = te->isNullMode();
- if (useIsNullAsNbNonZero()
- ? mode != TypeSystem::BoolCast::Disabled : mode == TypeSystem::BoolCast::Enabled) {
- const auto func = metaClass->findQtIsNullMethod();
- if (!func.isNull())
- return func;
- }
- return {};
+ type.setReferenceType(NoReference);
+ // Maintain const
+ s << "PyObject *" << name << '(' << type.cppSignature() << "*);\n";
}
-std::optional<AbstractMetaType>
- CppGenerator::findSmartPointerInstantiation(const TypeEntry *entry) const
+CppGenerator::CppGenerator() = default;
+
+QString CppGenerator::fileNameForContext(const GeneratorContext &context) const
{
- for (const auto &i : instantiatedSmartPointers()) {
- if (i.instantiations().at(0).typeEntry() == entry)
- return i;
- }
- return {};
+ return fileNameForContextHelper(context, u"_wrapper.cpp"_s);
}
void CppGenerator::clearTpFuncs()
{
+ // Functions that should not be registered under a name in PyMethodDef,
+ // but under a special constant under slots.
m_tpFuncs = {
- {QLatin1String("__str__"), {}}, {QLatin1String("__str__"), {}},
- {reprFunction(), {}}, {QLatin1String("__iter__"), {}},
- {QLatin1String("__next__"), {}}
+ {u"__str__"_s, {}}, {u"__str__"_s, {}},
+ {REPR_FUNCTION, {}}, {u"__iter__"_s, {}},
+ {u"__next__"_s, {}}
};
+ m_nbFuncs = { {u"__abs__"_s, {}}, {u"__pow__"_s, {} }};
}
// Prevent ELF symbol qt_version_tag from being generated into the source
@@ -322,13 +253,13 @@ static const char includeQDebug[] =
"#ifndef QT_NO_VERSION_TAGGING\n"
"# define QT_NO_VERSION_TAGGING\n"
"#endif\n"
-"#include <QDebug>\n";
+"#include <QtCore/QDebug>\n";
-static QString chopType(QString s)
+QString CppGenerator::chopType(QString s)
{
- if (s.endsWith(QLatin1String("_Type")))
+ if (s.endsWith(u"_Type"))
s.chop(5);
- else if (s.endsWith(QLatin1String("_TypeF()")))
+ else if (s.endsWith(u"_TypeF()"))
s.chop(8);
return s;
}
@@ -336,133 +267,314 @@ static QString chopType(QString s)
static bool isStdSetterName(QString setterName, QString propertyName)
{
return setterName.size() == propertyName.size() + 3
- && setterName.startsWith(QLatin1String("set"))
+ && setterName.startsWith(u"set")
&& setterName.endsWith(QStringView{propertyName}.right(propertyName.size() - 1))
&& setterName.at(3) == propertyName.at(0).toUpper();
}
static QString buildPropertyString(const QPropertySpec &spec)
{
- QString text;
- text += QLatin1Char('"');
- text += spec.name();
- text += QLatin1Char(':');
+ QString text = u'"' + spec.name() + u':';
if (spec.read() != spec.name())
text += spec.read();
if (!spec.write().isEmpty()) {
- text += QLatin1Char(':');
+ text += u':';
if (!isStdSetterName(spec.write(), spec.name()))
text += spec.write();
}
- text += QLatin1Char('"');
+ text += u'"';
return text;
}
+static QString _plainName(const QString &s)
+{
+ auto cutPos = s.lastIndexOf(u"::"_s);
+ return cutPos < 0 ? s : s.right(s.length() - (cutPos + 2));
+}
+
+/**********************************************************************
+ *
+ * Decision whether to use an IntEnum/IntFlag
+ * ------------------------------------------
+ *
+ * Unfortunately, all attempts to drive this decision automagically
+ * did not work out. We therefore compile a list in with known
+ * IntEnum and IntFlag.
+ */
+
+/*
+ * This function is now unused and replaced by TypeSystem::PythonEnumType
+ */
+#if 0
+static QSet<QString> useIntSet()
+{
+ static const QSet<QString> result{
+ /* IntEnum */ u"PySide6.QtCore.QDataStream.Version"_s,
+ /* IntEnum */ u"PySide6.QtCore.QEvent.Type"_s,
+ /* IntEnum */ u"PySide6.QtCore.QLocale.FloatingPointPrecisionOption"_s,
+ /* IntFlag */ u"PySide6.QtCore.QLocale.LanguageCodeType"_s,
+ /* IntFlag */ u"PySide6.QtCore.QUrl.ComponentFormattingOption"_s,
+ // note: "QUrl::UrlFormattingOption" is set as IntFlag without flags
+ /* IntFlag */ u"PySide6.QtCore.QUrl.UrlFormattingOption"_s,
+ /* IntFlag */ u"PySide6.QtCore.Qt.AlignmentFlag"_s,
+ /* IntFlag */ u"PySide6.QtCore.Qt.FocusPolicy"_s,
+ /* IntEnum */ u"PySide6.QtCore.Qt.GestureType"_s,
+ /* IntEnum */ u"PySide6.QtCore.Qt.ItemDataRole"_s,
+ /* IntEnum */ u"PySide6.QtCore.Qt.Key"_s,
+ /* Flag */ u"PySide6.QtCore.Qt.Modifier"_s,
+ // note: "Qt::TextFlag" is set as IntFlag without flags
+ /* IntFlag */ u"PySide6.QtCore.Qt.TextFlag"_s,
+ /* IntFlag */ u"PySide6.QtCore.Qt.WindowType"_s,
+ // This is found in QtWidgets but should be in QtGui.
+ /* IntEnum */ u"PySide6.QtGui.QFileSystemModel.Roles"_s,
+ /* IntEnum */ u"PySide6.QtGui.QFont.Stretch"_s,
+ /* IntEnum */ u"PySide6.QtGui.QFont.Weight"_s,
+ /* IntEnum */ u"PySide6.QtGui.QTextDocument.ResourceType"_s,
+ /* IntEnum */ u"PySide6.QtGui.QTextFormat.FormatType"_s,
+ /* IntEnum */ u"PySide6.QtGui.QTextFormat.ObjectTypes"_s,
+ /* IntEnum */ u"PySide6.QtGui.QTextFormat.Property"_s,
+ /* IntEnum */ u"PySide6.QtWidgets.QDialog.DialogCode"_s,
+ /* IntEnum */ u"PySide6.QtWidgets.QFrame.Shadow"_s,
+ /* IntEnum */ u"PySide6.QtWidgets.QFrame.Shape"_s,
+ /* IntEnum */ u"PySide6.QtWidgets.QListWidgetItem.ItemType"_s,
+ /* IntFlag */ u"PySide6.QtWidgets.QMessageBox.StandardButton"_s,
+ // note: "QSizePolicy::PolicyFlag" is set as IntFlag without flags
+ /* IntFlag */ u"PySide6.QtWidgets.QSizePolicy.PolicyFlag"_s,
+ /* IntEnum */ u"PySide6.QtWidgets.QStyle.ComplexControl"_s,
+ /* IntEnum */ u"PySide6.QtWidgets.QStyle.ContentsType"_s,
+ /* IntEnum */ u"PySide6.QtWidgets.QStyle.ControlElement"_s,
+ /* IntEnum */ u"PySide6.QtWidgets.QStyle.PixelMetric"_s,
+ /* IntEnum */ u"PySide6.QtWidgets.QStyle.PrimitiveElement"_s,
+ /* IntEnum */ u"PySide6.QtWidgets.QStyle.StandardPixmap"_s,
+ /* IntEnum */ u"PySide6.QtWidgets.QStyle.StyleHint"_s,
+ /* IntEnum */ u"PySide6.QtWidgets.QStyle.SubElement"_s,
+ /* IntEnum */ u"PySide6.QtWidgets.QTableWidgetItem.ItemType"_s,
+ /* IntEnum */ u"PySide6.QtWidgets.QTreeWidgetItem.ItemType"_s,
+ /* IntEnum */ u"PySide6.QtCharts.QBoxSet.ValuePositions"_s,
+ /* IntEnum */ u"PySide6.QtMultimedia.QMediaPlayer.Loops"_s,
+ /* IntEnum */ u"PySide6.QtQuick.QSGGeometry.DrawingMode"_s,
+ /* IntEnum */ u"PySide6.QtWebEngineCore.QWebEngineScript.ScriptWorldId"_s,
+ // Added because it should really be used as number
+ /* IntEnum */ u"PySide6.QtCore.QMetaType.Type"_s,
+ /* IntEnum */ u"PySide6.QtSerialPort.QSerialPort.BaudRate"_s,
+ };
+ return result;
+}
+#endif
+
+static bool _shouldInheritInt(const AbstractMetaEnum &cppEnum)
+{
+ return !cppEnum.fullName().startsWith(u"PySide6."_s);
+}
+
+static QString BuildEnumFlagInfo(const AbstractMetaEnum &cppEnum)
+{
+ auto enumType = cppEnum.typeEntry();
+ QString result = _plainName(enumType->name());
+ auto flags = enumType->flags();
+ auto decision = enumType->pythonEnumType();
+ bool _int = _shouldInheritInt(cppEnum);
+ bool _flag = bool(flags);
+
+ if (decision != TypeSystem::PythonEnumType::Unspecified) {
+ _int = decision == TypeSystem::PythonEnumType::IntEnum ||
+ decision == TypeSystem::PythonEnumType::IntFlag;
+ _flag = decision == TypeSystem::PythonEnumType::Flag ||
+ decision == TypeSystem::PythonEnumType::IntFlag;
+ }
+ result += _flag ? (_int ? u":IntFlag"_s : u":Flag"_s)
+ : (_int ? u":IntEnum"_s : u":Enum"_s);
+ if (flags)
+ result += u':' + _plainName(flags->flagsName());
+ return u'"' + result + u'"';
+}
+
static void writePyGetSetDefEntry(TextStream &s, const QString &name,
const QString &getFunc, const QString &setFunc)
{
- s << "{const_cast<char *>(\"" << name << "\"), " << getFunc << ", "
- << (setFunc.isEmpty() ? QLatin1String(NULL_PTR) : setFunc) << "},\n";
+ s << "{const_cast<char *>(\"" << mangleName(name) << "\"), " << getFunc << ", "
+ << (setFunc.isEmpty() ? NULL_PTR : setFunc) << ", nullptr, nullptr},\n";
}
-/*!
- Function used to write the class generated binding code on the buffer
- \param s the output buffer
- \param metaClass the pointer to metaclass information
-*/
-void CppGenerator::generateClass(TextStream &s, const GeneratorContext &classContext)
+static bool generateRichComparison(const GeneratorContext &c)
{
- s.setLanguage(TextStream::Language::Cpp);
- const AbstractMetaClass *metaClass = classContext.metaClass();
+ const auto metaClass = c.metaClass();
+ if (c.forSmartPointer()) {
+ auto te = std::static_pointer_cast<const SmartPointerTypeEntry>(metaClass->typeEntry());
+ return te->smartPointerType() == TypeSystem::SmartPointerType::Shared;
+ }
+
+ return !metaClass->isNamespace() && metaClass->hasComparisonOperatorOverload();
+}
+
+void CppGenerator::generateIncludes(TextStream &s, const GeneratorContext &classContext,
+ const IncludeGroupList &includes,
+ const AbstractMetaClassCList &innerClasses) const
+{
+ const auto metaClass = classContext.metaClass();
// write license comment
s << licenseComment() << '\n';
- if (!avoidProtectedHack() && !metaClass->isNamespace() && !metaClass->hasPrivateDestructor()) {
- s << "//workaround to access protected functions\n";
- s << "#define protected public\n\n";
- }
+ const bool normalClass = !classContext.forSmartPointer();
+ // Normally only required for classes for which we want to generate protected API,
+ // but it needs to be generated into all files to ensure ODR for Unity builds.
+ if (!avoidProtectedHack())
+ s << HeaderGenerator::protectedHackDefine;
+ QByteArrayList cppIncludes{"typeinfo", "iterator", // for containers
+ "cctype", "cstring"};
// headers
s << "// default includes\n";
s << "#include <shiboken.h>\n";
- if (usePySideExtensions()) {
+ if (wrapperDiagnostics()) {
+ s << "#include <helper.h>\n";
+ cppIncludes << "iostream";
+ }
+
+ if (normalClass && usePySideExtensions()) {
s << includeQDebug;
- s << "#include <pysidesignal.h>\n"
- << "#include <pysideproperty.h>\n"
- << "#include <pyside.h>\n"
- << "#include <pysideqenum.h>\n"
+ if (metaClass->hasToStringCapability())
+ s << "#include <QtCore/QBuffer>\n";
+ if (isQObject(metaClass)) {
+ s << "#include <pysideqobject.h>\n"
+ << "#include <pysidesignal.h>\n"
+ << "#include <pysideproperty.h>\n"
+ << "#include <signalmanager.h>\n"
+ << "#include <pysidemetafunction.h>\n";
+ }
+ s << "#include <pysideqenum.h>\n"
+ << "#include <pysideqmetatype.h>\n"
+ << "#include <pysideutils.h>\n"
<< "#include <feature_select.h>\n"
<< "QT_WARNING_DISABLE_DEPRECATED\n\n";
- }
-
- s << "#include <typeinfo>\n";
- if (usePySideExtensions() && metaClass->isQObject()) {
- s << "#include <signalmanager.h>\n";
- s << "#include <pysidemetafunction.h>\n";
}
// The multiple inheritance initialization function
// needs the 'set' class from C++ STL.
- if (getMultipleInheritingClass(metaClass) != nullptr)
- s << "#include <algorithm>\n#include <set>\n";
- if (metaClass->generateExceptionHandling())
- s << "#include <exception>\n";
- s << "#include <iterator>\n"; // For containers
-
- if (wrapperDiagnostics())
- s << "#include <helper.h>\n#include <iostream>\n";
+ if (normalClass && getMultipleInheritingClass(metaClass) != nullptr)
+ cppIncludes << "algorithm" << "set";
+ if (normalClass && metaClass->generateExceptionHandling())
+ cppIncludes << "exception";
s << "\n// module include\n" << "#include \"" << getModuleHeaderFileName() << "\"\n";
if (hasPrivateClasses())
s << "#include \"" << getPrivateModuleHeaderFileName() << "\"\n";
- QString headerfile = fileNameForContext(classContext);
- headerfile.replace(QLatin1String(".cpp"), QLatin1String(".h"));
- s << "\n// main header\n" << "#include \"" << headerfile << "\"\n";
-
- s << '\n' << "// inner classes\n";
- const AbstractMetaClassList &innerClasses = metaClass->innerClasses();
- for (AbstractMetaClass *innerClass : innerClasses) {
- GeneratorContext innerClassContext = contextForClass(innerClass);
- if (shouldGenerate(innerClass) && !innerClass->typeEntry()->isSmartPointer()) {
- QString headerfile = fileNameForContext(innerClassContext);
- headerfile.replace(QLatin1String(".cpp"), QLatin1String(".h"));
- s << "#include \"" << headerfile << "\"\n";
+ s << "\n// main header\n" << "#include \""
+ << HeaderGenerator::headerFileNameForContext(classContext) << "\"\n";
+
+ if (!innerClasses.isEmpty()) {
+ s << "\n// inner classes\n";
+ for (const auto &innerClass : innerClasses) {
+ GeneratorContext innerClassContext = contextForClass(innerClass);
+ s << "#include \""
+ << HeaderGenerator::headerFileNameForContext(innerClassContext) << "\"\n";
}
}
- AbstractMetaEnumList classEnums = metaClass->enums();
- metaClass->getEnumsFromInvisibleNamespacesToBeGenerated(&classEnums);
+ if (avoidProtectedHack())
+ s << baseWrapperIncludes(classContext);
- //Extra includes
- QList<Include> includes;
- if (!classContext.useWrapper())
- includes += metaClass->typeEntry()->extraIncludes();
- for (const AbstractMetaEnum &cppEnum : qAsConst(classEnums))
- includes.append(cppEnum.typeEntry()->extraIncludes());
- if (!includes.isEmpty()) {
- s << "\n// Extra includes\n";
- std::sort(includes.begin(), includes.end());
- for (const Include &inc : qAsConst(includes))
- s << inc.toString() << '\n';
- s << '\n';
+ for (const auto &g : includes)
+ s << g;
+
+ // C++ includes
+ std::sort(cppIncludes.begin(), cppIncludes.end());
+ s << '\n';
+ for (const auto &i : std::as_const(cppIncludes))
+ s << "#include <" << i << ">\n";
+}
+
+// Write methods definition
+void CppGenerator::writePyMethodDefs(TextStream &s, const QString &className,
+ const QString &methodsDefinitions)
+{
+ s << "static PyMethodDef " << className << "_methods[] = {\n" << indent
+ << methodsDefinitions << METHOD_DEF_SENTINEL << outdent << "};\n\n";
+}
+
+void CppGenerator::writeModuleCodeSnips(TextStream &s, const CodeSnipList &codeSnips,
+ TypeSystem::CodeSnipPosition position,
+ TypeSystem::Language language) const
+{
+ if (!codeSnips.isEmpty()) {
+ try {
+ writeCodeSnips(s, codeSnips, position, language);
+ } catch (const std::exception &e) {
+ throw Exception(msgSnippetError("module source of "_L1 + moduleName(), e.what()));
+ }
+ }
+}
+
+bool CppGenerator::hasHashFunction(const AbstractMetaClassCPtr &c)
+{
+ return !c->typeEntry()->hashFunction().isEmpty()
+ || c->hasHashFunction();
+}
+
+static bool needsTypeDiscoveryFunction(const AbstractMetaClassCPtr &c)
+{
+ return c->baseClass() != nullptr
+ && (c->isPolymorphic() || !c->typeEntry()->polymorphicIdValue().isEmpty());
+}
+
+static void writeAddedTypeSignatures(TextStream &s, const ComplexTypeEntryCPtr &te)
+{
+ for (const auto &e : te->addedPyMethodDefEntrys()) {
+ if (auto count = e.signatures.size()) {
+ for (qsizetype i = 0; i < count; ++i) {
+ if (count > 1)
+ s << i << ':';
+ s << e.signatures.at(i) << '\n';
+ }
+ }
}
+}
- s << "\n#include <cctype>\n#include <cstring>\n";
+/// Function used to write the class generated binding code on the buffer
+/// \param s the output buffer
+/// \param classContext the pointer to metaclass information
+void CppGenerator::generateClass(TextStream &s, const GeneratorContext &classContext)
+{
+ if (classContext.forSmartPointer()) {
+ generateSmartPointerClass(s, classContext);
+ return;
+ }
- if (metaClass->typeEntry()->typeFlags() & ComplexTypeEntry::Deprecated)
+ s.setLanguage(TextStream::Language::Cpp);
+ AbstractMetaClassCPtr metaClass = classContext.metaClass();
+ const auto typeEntry = metaClass->typeEntry();
+
+ auto innerClasses = metaClass->innerClasses();
+ for (auto it = innerClasses.begin(); it != innerClasses.end(); ) {
+ auto innerTypeEntry = (*it)->typeEntry();
+ if (shouldGenerate(innerTypeEntry) && !innerTypeEntry->isSmartPointer())
+ ++it;
+ else
+ it = innerClasses.erase(it);
+ }
+
+ AbstractMetaEnumList classEnums = metaClass->enums();
+ metaClass->getEnumsFromInvisibleNamespacesToBeGenerated(&classEnums);
+
+ IncludeGroupList includeGroups;
+ if (!classContext.useWrapper() || !avoidProtectedHack())
+ includeGroups.append(classIncludes(metaClass));
+ generateIncludes(s, classContext, includeGroups, innerClasses);
+
+ if (typeEntry->typeFlags().testFlag(ComplexTypeEntry::Deprecated))
s << "#Deprecated\n";
// Use class base namespace
{
- const AbstractMetaClass *context = metaClass->enclosingClass();
+ AbstractMetaClassCPtr context = metaClass->enclosingClass();
while (context) {
if (context->isNamespace() && !context->enclosingClass()
- && static_cast<const NamespaceTypeEntry *>(context->typeEntry())->generateUsing()) {
+ && std::static_pointer_cast<const NamespaceTypeEntry>(context->typeEntry())->generateUsing()) {
s << "\nusing namespace " << context->qualifiedCppName() << ";\n";
break;
}
@@ -470,149 +582,109 @@ void CppGenerator::generateClass(TextStream &s, const GeneratorContext &classCon
}
}
- s << "\n\n" << typeNameFunc << '\n';
-
- // Create string literal for smart pointer getter method.
- if (classContext.forSmartPointer()) {
- const auto *typeEntry =
- static_cast<const SmartPointerTypeEntry *>(classContext.preciseType()
- .typeEntry());
- QString rawGetter = typeEntry->getter();
- s << "static const char * " << SMART_POINTER_GETTER << " = \"" << rawGetter << "\";";
- }
+ s << '\n';
// class inject-code native/beginning
- if (!metaClass->typeEntry()->codeSnips().isEmpty()) {
- writeClassCodeSnips(s, metaClass->typeEntry()->codeSnips(),
+ if (!typeEntry->codeSnips().isEmpty()) {
+ writeClassCodeSnips(s, typeEntry->codeSnips(),
TypeSystem::CodeSnipPositionBeginning, TypeSystem::NativeCode,
classContext);
s << '\n';
}
// python conversion rules
- if (metaClass->typeEntry()->hasTargetConversionRule()) {
- s << "// Python Conversion\n";
- s << metaClass->typeEntry()->targetConversionRule() << '\n';
+ if (typeEntry->isValue()) {
+ auto vte = std::static_pointer_cast<const ValueTypeEntry>(typeEntry);
+ if (vte->hasTargetConversionRule()) {
+ s << "// Python Conversion\n";
+ s << vte->targetConversionRule() << '\n';
+ }
}
if (classContext.useWrapper()) {
s << "// Native ---------------------------------------------------------\n\n";
if (avoidProtectedHack() && usePySideExtensions()) {
- s << "void " << classContext.wrapperName() << "::pysideInitQtMetaTypes()\n{\n";
- Indentation indent(s);
+ s << "void " << classContext.wrapperName() << "::pysideInitQtMetaTypes()\n{\n"
+ << indent;
writeInitQtMetaTypeFunctionBody(s, classContext);
- s << "}\n\n";
+ s << outdent << "}\n\n";
}
- const auto &funcs = filterFunctions(metaClass);
int maxOverrides = 0;
writeCacheResetNative(s, classContext);
- for (const auto &func : funcs) {
- const bool notAbstract = !func->isAbstract();
- if ((func->isPrivate() && notAbstract && !func->isVisibilityModifiedToPrivate())
- || (func->isModifiedRemoved() && notAbstract))
- continue;
- if (func->functionType() == AbstractMetaFunction::ConstructorFunction && !func->isUserAdded())
+ for (const auto &func : metaClass->functions()) {
+ const auto generation = functionGeneration(func);
+ if (generation.testFlag(FunctionGenerationFlag::WrapperConstructor))
writeConstructorNative(s, classContext, func);
- else if (shouldWriteVirtualMethodNative(func))
+ else if (generation.testFlag(FunctionGenerationFlag::VirtualMethod))
writeVirtualMethodNative(s, func, maxOverrides++);
}
- if (!avoidProtectedHack() || !metaClass->hasPrivateDestructor()) {
- if (usePySideExtensions() && metaClass->isQObject())
- writeMetaObjectMethod(s, classContext);
+ if (shouldGenerateMetaObjectFunctions(metaClass))
+ writeMetaObjectMethod(s, classContext);
+ if (!avoidProtectedHack() || !metaClass->hasPrivateDestructor())
writeDestructorNative(s, classContext);
- }
}
+ for (const auto &f : metaClass->userAddedPythonOverrides())
+ writeUserAddedPythonOverride(s, f);
+
StringStream smd(TextStream::Language::Cpp);
StringStream md(TextStream::Language::Cpp);
StringStream signatureStream(TextStream::Language::Cpp);
- s << "\n// Target ---------------------------------------------------------\n\n"
- << "extern \"C\" {\n";
+ s << openTargetExternC;
+
const auto &functionGroups = getFunctionGroups(metaClass);
for (auto it = functionGroups.cbegin(), end = functionGroups.cend(); it != end; ++it) {
+ if (contains(sequenceProtocols(), it.key()) || contains(mappingProtocols(), it.key()))
+ continue;
const AbstractMetaFunctionCList &overloads = it.value();
if (overloads.isEmpty())
continue;
const auto rfunc = overloads.constFirst();
- if (contains(sequenceProtocols(), rfunc->name())
- || contains(mappingProtocols(), rfunc->name())) {
- continue;
- }
-
OverloadData overloadData(overloads, api());
if (rfunc->isConstructor()) {
- // @TODO: Implement constructor support for smart pointers, so that they can be
- // instantiated in python code.
- if (classContext.forSmartPointer())
- continue;
writeConstructorWrapper(s, overloadData, classContext);
writeSignatureInfo(signatureStream, overloadData);
}
// call operators
- else if (rfunc->name() == QLatin1String("operator()")) {
+ else if (rfunc->name() == u"operator()") {
writeMethodWrapper(s, overloadData, classContext);
writeSignatureInfo(signatureStream, overloadData);
}
else if (!rfunc->isOperatorOverload()) {
-
- if (classContext.forSmartPointer()) {
- const auto *smartPointerTypeEntry =
- static_cast<const SmartPointerTypeEntry *>(
- classContext.preciseType().typeEntry());
-
- if (smartPointerTypeEntry->getter() == rfunc->name()) {
- // Replace the return type of the raw pointer getter method with the actual
- // return type.
- QString innerTypeName =
- classContext.preciseType().getSmartPointerInnerType().cppSignature();
- QString pointerToInnerTypeName = innerTypeName + QLatin1Char('*');
- // @TODO: This possibly leaks, but there are a bunch of other places where this
- // is done, so this will be fixed in bulk with all the other cases, because the
- // ownership of the pointers is not clear at the moment.
- auto pointerToInnerType =
- AbstractMetaType::fromString(pointerToInnerTypeName);
- Q_ASSERT(pointerToInnerType.has_value());
- auto mutableRfunc = overloads.constFirst();
- qSharedPointerConstCast<AbstractMetaFunction>(mutableRfunc)->setType(pointerToInnerType.value());
- } else if (smartPointerTypeEntry->refCountMethodName().isEmpty()
- || smartPointerTypeEntry->refCountMethodName() != rfunc->name()) {
- // Skip all public methods of the smart pointer except for the raw getter and
- // the ref count method.
- continue;
- }
- }
-
writeMethodWrapper(s, overloadData, classContext);
writeSignatureInfo(signatureStream, overloadData);
// For a mixture of static and member function overloads,
// a separate PyMethodDef entry is written which is referenced
// in the PyMethodDef list and later in getattro() for handling
// the non-static case.
+ const auto defEntries = methodDefinitionEntries(overloadData);
if (OverloadData::hasStaticAndInstanceFunctions(overloads)) {
QString methDefName = cpythonMethodDefinitionName(rfunc);
- smd << "static PyMethodDef " << methDefName << " = " << indent;
- writeMethodDefinitionEntries(smd, overloadData, 1);
- smd << outdent << ";\n\n";
+ smd << "static PyMethodDef " << methDefName << " = " << indent
+ << defEntries.constFirst() << outdent << ";\n\n";
}
- writeMethodDefinition(md, overloadData);
+ const auto &fname = rfunc->name();
+ if (!m_tpFuncs.contains(fname) && !m_nbFuncs.contains(fname))
+ md << defEntries;
}
}
+ for (const auto &pyMethodDef : typeEntry->addedPyMethodDefEntrys())
+ md << pyMethodDef << ",\n";
+
+ if (typeEntry->isValue())
+ writeCopyFunction(s, md, signatureStream, classContext);
+
const QString methodsDefinitions = md.toString();
const QString singleMethodDefinitions = smd.toString();
const QString className = chopType(cpythonTypeName(metaClass));
- if (metaClass->typeEntry()->isValue() || metaClass->typeEntry()->isSmartPointer()) {
- writeCopyFunction(s, classContext);
- signatureStream << fullPythonClassName(metaClass) << ".__copy__()\n";
- }
-
// Write single method definitions
s << singleMethodDefinitions;
@@ -628,77 +700,41 @@ void CppGenerator::generateClass(TextStream &s, const GeneratorContext &classCon
s << '\n';
s << "static const char *" << className << "_PropertyStrings[] = {\n" << indent;
- for (const auto &entry : qAsConst(sorter))
+ for (const auto &entry : std::as_const(sorter))
+ s << entry << ",\n";
+ s << NULL_PTR << " // Sentinel\n"
+ << outdent << "};\n\n";
+
+ }
+ // PYSIDE-1735: Write an EnumFlagInfo structure
+ QStringList sorter;
+ for (const auto &entry : std::as_const(classEnums))
+ sorter.append(BuildEnumFlagInfo(entry));
+ sorter.sort();
+ if (!sorter.empty()) {
+ s << "static const char *" << className << "_EnumFlagInfo[] = {\n" << indent;
+ for (const auto &entry : std::as_const(sorter))
s << entry << ",\n";
s << NULL_PTR << " // Sentinel\n"
<< outdent << "};\n\n";
}
// Write methods definition
- s << "static PyMethodDef " << className << "_methods[] = {\n" << indent
- << methodsDefinitions << '\n';
- if (metaClass->typeEntry()->isValue() || metaClass->typeEntry()->isSmartPointer()) {
- s << "{\"__copy__\", reinterpret_cast<PyCFunction>(" << className << "___copy__)"
- << ", METH_NOARGS},\n";
- }
- s << '{' << NULL_PTR << ", " << NULL_PTR << "} // Sentinel\n" << outdent
- << "};\n\n";
+ writePyMethodDefs(s, className, methodsDefinitions);
// Write tp_s/getattro function
const AttroCheck attroCheck = checkAttroFunctionNeeds(metaClass);
- if (attroCheck.testFlag(AttroCheckFlag::GetattroSmartPointer)) {
- writeSmartPointerGetattroFunction(s, classContext);
- writeSmartPointerSetattroFunction(s, classContext);
- } else {
- if ((attroCheck & AttroCheckFlag::GetattroMask) != 0)
- writeGetattroFunction(s, attroCheck, classContext);
- if ((attroCheck & AttroCheckFlag::SetattroMask) != 0)
- writeSetattroFunction(s, attroCheck, classContext);
- }
-
- const auto f = boolCast(metaClass);
- if (!f.isNull()) {
- ErrorCode errorCode(-1);
- s << "static int " << cpythonBaseName(metaClass) << "___nb_bool(PyObject *self)\n"
- << "{\n" << indent;
- writeCppSelfDefinition(s, classContext);
-
- const bool allowThread = f->allowThread();
- if (allowThread)
- s << "int result;\n" << BEGIN_ALLOW_THREADS << "\nresult = ";
- else
- s << "return ";
+ if ((attroCheck & AttroCheckFlag::GetattroMask) != 0)
+ writeGetattroFunction(s, attroCheck, classContext);
+ if ((attroCheck & AttroCheckFlag::SetattroMask) != 0)
+ writeSetattroFunction(s, attroCheck, classContext);
- if (f->isOperatorBool())
- s << '*' << CPP_SELF_VAR << " ? 1 : 0;\n";
- else
- s << CPP_SELF_VAR << "->isNull() ? 0 : 1;\n";
-
- if (allowThread)
- s << END_ALLOW_THREADS << "\nreturn result;\n";
- s << outdent << "}\n\n";
- }
-
- if (supportsNumberProtocol(metaClass) && !metaClass->typeEntry()->isSmartPointer()) {
- const QList<AbstractMetaFunctionCList> opOverloads = filterGroupedOperatorFunctions(
- metaClass,
- OperatorQueryOption::ArithmeticOp
- | OperatorQueryOption::IncDecrementOp
- | OperatorQueryOption::LogicalOp
- | OperatorQueryOption::BitwiseOp);
-
- for (const AbstractMetaFunctionCList &allOverloads : opOverloads) {
- AbstractMetaFunctionCList overloads;
- for (const auto &func : allOverloads) {
- if (!func->isModifiedRemoved()
- && !func->isPrivate()
- && (func->ownerClass() == func->implementingClass() || func->isAbstract()))
- overloads.append(func);
- }
-
- if (overloads.isEmpty())
- continue;
+ if (const auto f = boolCast(metaClass) ; f.has_value())
+ writeNbBoolFunction(classContext, f.value(), s);
+ if (supportsNumberProtocol(metaClass)) {
+ const auto numberProtocolOps = numberProtocolOperators(metaClass);
+ for (const auto &overloads : numberProtocolOps) {
OverloadData overloadData(overloads, api());
writeMethodWrapper(s, overloadData, classContext);
writeSignatureInfo(signatureStream, overloadData);
@@ -713,12 +749,12 @@ void CppGenerator::generateClass(TextStream &s, const GeneratorContext &classCon
writeMappingMethods(s, metaClass, classContext);
}
- if (!metaClass->isNamespace() && metaClass->hasComparisonOperatorOverload()) {
+ if (generateRichComparison(classContext)) {
s << "// Rich comparison\n";
writeRichCompareFunction(s, classContext);
}
- if (shouldGenerateGetSetList(metaClass) && !classContext.forSmartPointer()) {
+ if (shouldGenerateGetSetList(metaClass)) {
const AbstractMetaFieldList &fields = metaClass->fields();
for (const AbstractMetaField &metaField : fields) {
if (metaField.canGenerateGetter())
@@ -761,13 +797,13 @@ void CppGenerator::generateClass(TextStream &s, const GeneratorContext &classCon
cpythonGetterFunctionName(property, metaClass), setter);
}
}
- s << '{' << NULL_PTR << "} // Sentinel\n"
+ s << "{nullptr, nullptr, nullptr, nullptr, nullptr} // Sentinel\n"
<< outdent << "};\n\n";
}
- s << "} // extern \"C\"\n\n";
+ s << closeExternC;
- if (!metaClass->typeEntry()->hashFunction().isEmpty())
+ if (hasHashFunction(metaClass))
writeHashFunction(s, classContext);
// Write tp_traverse and tp_clear functions.
@@ -777,27 +813,38 @@ void CppGenerator::generateClass(TextStream &s, const GeneratorContext &classCon
writeClassDefinition(s, metaClass, classContext);
s << '\n';
- if (metaClass->isPolymorphic() && metaClass->baseClass())
+ if (needsTypeDiscoveryFunction(metaClass)) {
writeTypeDiscoveryFunction(s, metaClass);
-
- writeFlagsNumberMethodsDefinitions(s, classEnums);
- s << '\n';
+ s << '\n';
+ }
writeConverterFunctions(s, metaClass, classContext);
+ writeAddedTypeSignatures(signatureStream, typeEntry);
writeClassRegister(s, metaClass, classContext, signatureStream);
if (metaClass->hasStaticFields())
writeStaticFieldInitialization(s, metaClass);
// class inject-code native/end
- if (!metaClass->typeEntry()->codeSnips().isEmpty()) {
- writeClassCodeSnips(s, metaClass->typeEntry()->codeSnips(),
+ if (!typeEntry->codeSnips().isEmpty()) {
+ writeClassCodeSnips(s, typeEntry->codeSnips(),
TypeSystem::CodeSnipPositionEnd, TypeSystem::NativeCode,
classContext);
s << '\n';
}
}
+void CppGenerator::writeMethodWrapper(TextStream &s, TextStream &definitionStream,
+ TextStream &signatureStream,
+ const AbstractMetaFunctionCList &overloads,
+ const GeneratorContext &classContext) const
+{
+ OverloadData overloadData(overloads, api());
+ writeMethodWrapper(s, overloadData, classContext);
+ writeSignatureInfo(signatureStream, overloadData);
+ definitionStream << methodDefinitionEntries(overloadData);
+}
+
void CppGenerator::writeCacheResetNative(TextStream &s, const GeneratorContext &classContext)
{
s << "void " << classContext.wrapperName()
@@ -809,7 +856,7 @@ void CppGenerator::writeCacheResetNative(TextStream &s, const GeneratorContext &
void CppGenerator::writeConstructorNative(TextStream &s, const GeneratorContext &classContext,
const AbstractMetaFunctionCPtr &func) const
{
- const QString qualifiedName = classContext.wrapperName() + QLatin1String("::");
+ const QString qualifiedName = classContext.wrapperName() + u"::"_s;
s << functionSignature(func, qualifiedName, QString(),
OriginalTypeDescription | SkipDefaultValues);
s << " : ";
@@ -828,7 +875,7 @@ void CppGenerator::writeConstructorNative(TextStream &s, const GeneratorContext
}
void CppGenerator::writeDestructorNative(TextStream &s,
- const GeneratorContext &classContext) const
+ const GeneratorContext &classContext)
{
s << classContext.wrapperName() << "::~"
<< classContext.wrapperName() << "()\n{\n" << indent;
@@ -840,64 +887,51 @@ Shiboken::Object::destroy(wrapper, this);
)" << outdent << "}\n";
}
-static bool allArgumentsRemoved(const AbstractMetaFunctionCPtr& func)
-{
- if (func->arguments().isEmpty())
- return false;
- const AbstractMetaArgumentList &arguments = func->arguments();
- for (const AbstractMetaArgument &arg : arguments) {
- if (!func->argumentRemoved(arg.argumentIndex() + 1))
- return false;
- }
- return true;
-}
-
// Return type for error messages when getting invalid types from virtual
// methods implemented in Python in C++ wrappers
QString CppGenerator::getVirtualFunctionReturnTypeName(const AbstractMetaFunctionCPtr &func) const
{
if (func->type().isVoid())
- return QLatin1String("\"\"");
+ return u"\"\""_s;
- if (!func->typeReplaced(0).isEmpty())
- return QLatin1Char('"') + func->typeReplaced(0) + QLatin1Char('"');
+ if (func->isTypeModified())
+ return u'"' + func->modifiedTypeName() + u'"';
// SbkType would return null when the type is a container.
auto typeEntry = func->type().typeEntry();
if (typeEntry->isContainer()) {
- const auto *cte = static_cast<const ContainerTypeEntry *>(typeEntry);
+ const auto cte = std::static_pointer_cast<const ContainerTypeEntry>(typeEntry);
switch (cte->containerKind()) {
case ContainerTypeEntry::ListContainer:
+ case ContainerTypeEntry::SpanContainer:
break;
case ContainerTypeEntry::SetContainer:
- return uR"("set")"_qs;
+ return uR"("set")"_s;
break;
case ContainerTypeEntry::MapContainer:
case ContainerTypeEntry::MultiMapContainer:
- return uR"("dict")"_qs;
+ return uR"("dict")"_s;
break;
case ContainerTypeEntry::PairContainer:
- return uR"("tuple")"_qs;
+ return uR"("tuple")"_s;
break;
}
- return uR"("list")"_qs;
+ return uR"("list")"_s;
}
if (typeEntry->isSmartPointer())
- return QLatin1Char('"') + typeEntry->qualifiedCppName() + QLatin1Char('"');
+ return u'"' + typeEntry->qualifiedCppName() + u'"';
if (avoidProtectedHack()) {
auto metaEnum = api().findAbstractMetaEnum(func->type().typeEntry());
- if (metaEnum.has_value() && metaEnum->isProtected()) {
- return QLatin1Char('"') + protectedEnumSurrogateName(metaEnum.value())
- + QLatin1Char('"');
- }
+ if (metaEnum.has_value() && metaEnum->isProtected())
+ return u'"' + protectedEnumSurrogateName(metaEnum.value()) + u'"';
}
if (func->type().isPrimitive())
- return QLatin1Char('"') + func->type().name() + QLatin1Char('"');
+ return u'"' + func->type().name() + u'"';
- return QLatin1String("reinterpret_cast<PyTypeObject *>(Shiboken::SbkType< ")
- + typeEntry->qualifiedCppName() + QLatin1String(" >())->tp_name");
+ return u"Shiboken::SbkType< "_s
+ + typeEntry->qualifiedCppName() + u" >()->tp_name"_s;
}
// When writing an overridden method of a wrapper class, write the part
@@ -907,8 +941,8 @@ void CppGenerator::writeVirtualMethodCppCall(TextStream &s,
const QString &funcName,
const CodeSnipList &snips,
const AbstractMetaArgument *lastArg,
- const TypeEntry *retType,
- const QString &returnStatement) const
+ const TypeEntryCPtr &retType,
+ const QString &returnStatement, bool hasGil) const
{
if (!snips.isEmpty()) {
writeCodeSnips(s, snips, TypeSystem::CodeSnipPositionBeginning,
@@ -916,13 +950,17 @@ void CppGenerator::writeVirtualMethodCppCall(TextStream &s,
}
if (func->isAbstract()) {
- s << "PyErr_SetString(PyExc_NotImplementedError, \"pure virtual method '"
- << func->ownerClass()->name() << '.' << funcName
- << "()' not implemented.\");\n"
+ if (!hasGil)
+ s << "Shiboken::GilState gil;\n";
+ s << "Shiboken::Errors::setPureVirtualMethodError(\""
+ << func->ownerClass()->name() << '.' << funcName << "\");\n"
<< returnStatement << '\n';
return;
}
+ if (hasGil)
+ s << "gil.release();\n";
+
if (retType)
s << "return ";
s << "this->::" << func->implementingClass()->qualifiedCppName() << "::";
@@ -938,17 +976,24 @@ void CppGenerator::writeVirtualMethodCppCall(TextStream &s,
}
// Determine the return statement (void or a result value).
-QString CppGenerator::virtualMethodReturn(TextStream &s, const ApiExtractorResult &api,
- const AbstractMetaFunctionCPtr &func,
- const FunctionModificationList &functionModifications)
+
+CppGenerator::VirtualMethodReturn
+ CppGenerator::virtualMethodReturn(const ApiExtractorResult &api,
+ const AbstractMetaFunctionCPtr &func,
+ const FunctionModificationList &functionModifications)
{
- if (func->isVoid())
- return QLatin1String("return;");
+ VirtualMethodReturn result;
+ if (func->isVoid()) {
+ result.statement = "return;"_L1;
+ return result;
+ }
+
+ result.statement = "return "_L1;
const AbstractMetaType &returnType = func->type();
for (const FunctionModification &mod : functionModifications) {
for (const ArgumentModification &argMod : mod.argument_mods()) {
if (argMod.index() == 0 && !argMod.replacedDefaultExpression().isEmpty()) {
- static const QRegularExpression regex(QStringLiteral("%(\\d+)"));
+ static const QRegularExpression regex("%(\\d+)"_L1);
Q_ASSERT(regex.isValid());
QString expr = argMod.replacedDefaultExpression();
for (int offset = 0; ; ) {
@@ -956,7 +1001,7 @@ QString CppGenerator::virtualMethodReturn(TextStream &s, const ApiExtractorResul
if (!match.hasMatch())
break;
const int argId = match.capturedView(1).toInt() - 1;
- if (argId < 0 || argId > func->arguments().count()) {
+ if (argId < 0 || argId > func->arguments().size()) {
qCWarning(lcShiboken, "The expression used in return value contains an invalid index.");
break;
}
@@ -964,56 +1009,178 @@ QString CppGenerator::virtualMethodReturn(TextStream &s, const ApiExtractorResul
offset = match.capturedStart(1);
}
DefaultValue defaultReturnExpr(DefaultValue::Custom, expr);
- return QLatin1String("return ") + defaultReturnExpr.returnValue()
- + QLatin1Char(';');
+ result.statement += defaultReturnExpr.returnValue() + u';';
+ return result;
}
}
}
QString errorMessage;
const auto defaultReturnExpr = minimalConstructor(api, returnType, &errorMessage);
if (!defaultReturnExpr.has_value()) {
- QString errorMsg = QLatin1String(__FUNCTION__) + QLatin1String(": ");
- if (const AbstractMetaClass *c = func->implementingClass())
- errorMsg += c->qualifiedCppName() + QLatin1String("::");
- errorMsg += func->signature();
+ QString errorMsg = QLatin1StringView(__FUNCTION__) + u": "_s
+ + func->classQualifiedSignature();
errorMsg = msgCouldNotFindMinimalConstructor(errorMsg,
func->type().cppSignature(),
errorMessage);
- qCWarning(lcShiboken).noquote().nospace() << errorMsg;
- s << "\n#error " << errorMsg << '\n';
+ throw Exception(errorMsg);
+ }
+
+ result.needsReference = returnType.referenceType() == LValueReference;
+ result.statement += (result.needsReference
+ ? virtualMethodStaticReturnVar : defaultReturnExpr->returnValue()) + u';';
+ return result;
+}
+
+// Create an argument for Py_BuildValue() when writing virtual methods.
+// Return a pair of (argument, format-char).
+std::pair<QString, QChar> CppGenerator::virtualMethodNativeArg(const AbstractMetaFunctionCPtr &func,
+ const AbstractMetaArgument &arg)
+{
+ if (func->hasConversionRule(TypeSystem::TargetLangCode, arg.argumentIndex() + 1))
+ return {arg.name() + CONV_RULE_OUT_VAR_SUFFIX, u'N'};
+
+ const auto &type = arg.type();
+ auto argTypeEntry = type.typeEntry();
+ // Check for primitive types convertible by Py_BuildValue()
+ if (argTypeEntry->isPrimitive() && !type.isCString()) {
+ const auto pte = basicReferencedTypeEntry(argTypeEntry);
+ auto it = formatUnits().constFind(pte->name());
+ if (it != formatUnits().constEnd())
+ return {arg.name(), it.value()};
+ }
+
+ // Rest: convert
+ StringStream ac(TextStream::Language::Cpp);
+ writeToPythonConversion(ac, type, func->ownerClass(), arg.name());
+ return {ac.toString(), u'N'};
+}
+
+static const char PYTHON_ARGS_ARRAY[] = "pyArgArray";
+
+void CppGenerator::writeVirtualMethodNativeVectorCallArgs(TextStream &s,
+ const AbstractMetaFunctionCPtr &func,
+ const AbstractMetaArgumentList &arguments,
+ const QList<int> &invalidateArgs)
+{
+ Q_ASSERT(!arguments.isEmpty());
+ s << "PyObject *" << PYTHON_ARGS_ARRAY <<'[' << arguments.size() << "] = {\n" << indent;
+ const qsizetype last = arguments.size() - 1;
+ for (qsizetype i = 0; i <= last; ++i) {
+ const AbstractMetaArgument &arg = arguments.at(i);
+ if (func->hasConversionRule(TypeSystem::TargetLangCode, arg.argumentIndex() + 1)) {
+ s << arg.name() + CONV_RULE_OUT_VAR_SUFFIX;
+ } else {
+ writeToPythonConversion(s, arg.type(), func->ownerClass(), arg.name());
+ }
+ if (i < last)
+ s << ',';
+ s << '\n';
+ }
+ s << outdent << "};\n";
+
+ if (!invalidateArgs.isEmpty())
+ s << '\n';
+ for (int index : invalidateArgs) {
+ s << "const bool invalidateArg" << index << " = Py_REFCNT(" << PYTHON_ARGS_ARRAY <<
+ '[' << index - 1 << "]) == 1;\n";
+ }
+}
+
+void CppGenerator::writeVirtualMethodNativeArgs(TextStream &s,
+ const AbstractMetaFunctionCPtr &func,
+ const AbstractMetaArgumentList &arguments,
+ const QList<int> &invalidateArgs)
+{
+ s << "Shiboken::AutoDecRef " << PYTHON_ARGS << '(';
+ if (arguments.isEmpty()) {
+ s << "PyTuple_New(0));\n";
+ return;
+ }
+
+ QString format;
+ QStringList argConversions;
+ for (const AbstractMetaArgument &arg : arguments) {
+ auto argPair = virtualMethodNativeArg(func, arg);
+ argConversions.append(argPair.first);
+ format += argPair.second;
}
- if (returnType.referenceType() == LValueReference) {
- s << "static " << returnType.typeEntry()->qualifiedCppName()
- << " result;\n";
- return QLatin1String("return result;");
+
+ s << "Py_BuildValue(\"(" << format << ")\",\n"
+ << indent << argConversions.join(u",\n"_s) << outdent << "\n));\n";
+
+ for (int index : std::as_const(invalidateArgs)) {
+ s << "bool invalidateArg" << index << " = Py_REFCNT(PyTuple_GET_ITEM(" << PYTHON_ARGS
+ << ", " << index - 1 << ")) == 1;\n";
}
- return QLatin1String("return ") + defaultReturnExpr->returnValue()
- + QLatin1Char(';');
+}
+
+static bool isArgumentNotRemoved(const AbstractMetaArgument &a)
+{
+ return !a.isModifiedRemoved();
+}
+
+// PyObject_Vectorcall(): since 3.9
+static const char vectorCallCondition[] =
+ "#if !defined(PYPY_VERSION) && !defined(Py_LIMITED_API)\n";
+
+// PyObject_CallNoArgs(): since 3.9, stable API since 3.10
+static const char noArgsCallCondition[] =
+ "#if !defined(PYPY_VERSION) && ((defined(Py_LIMITED_API) && Py_LIMITED_API >= 0x030A0000) || !defined(Py_LIMITED_API))\n";
+static const char inverseNoArgsCallCondition[] =
+ "#if defined(PYPY_VERSION) || (defined(Py_LIMITED_API) && Py_LIMITED_API < 0x030A0000)\n";
+
+static inline void writeVirtualMethodStaticReturnVar(TextStream &s, const AbstractMetaFunctionCPtr &func)
+{
+ s << "static " << func->type().typeEntry()->qualifiedCppName() << ' '
+ << virtualMethodStaticReturnVar << ";\n";
+}
+
+static void writeFuncNameVar(TextStream &s, const AbstractMetaFunctionCPtr &func,
+ const QString &funcName)
+{
+ // PYSIDE-1019: Add info about properties
+ int propFlag = 0;
+ if (func->isPropertyReader())
+ propFlag |= 1;
+ if (func->isPropertyWriter())
+ propFlag |= 2;
+ if (propFlag && func->isStatic())
+ propFlag |= 4;
+ QString propStr;
+ if (propFlag != 90)
+ propStr = QString::number(propFlag) + u':';
+
+ if (propFlag != 0)
+ s << "// This method belongs to a property.\n";
+ s << "static const char *funcName = \"";
+ if (propFlag != 0)
+ s << propFlag << ':';
+ s << funcName << "\";\n";
}
void CppGenerator::writeVirtualMethodNative(TextStream &s,
const AbstractMetaFunctionCPtr &func,
int cacheIndex) const
{
- //skip metaObject function, this will be written manually ahead
- if (usePySideExtensions() && func->ownerClass() && func->ownerClass()->isQObject() &&
- ((func->name() == QLatin1String("metaObject")) || (func->name() == QLatin1String("qt_metacall"))))
- return;
-
- const TypeEntry *retType = func->type().typeEntry();
+ TypeEntryCPtr retType = func->type().typeEntry();
const QString funcName = func->isOperatorOverload()
? pythonOperatorFunctionName(func) : func->definitionNames().constFirst();
- QString prefix = wrapperName(func->ownerClass()) + QLatin1String("::");
- s << functionSignature(func, prefix, QString(), Generator::SkipDefaultValues|Generator::OriginalTypeDescription)
+ QString prefix = wrapperName(func->ownerClass()) + u"::"_s;
+ s << functionSignature(func, prefix, QString(), Generator::SkipDefaultValues |
+ Generator::OriginalTypeDescription)
<< "\n{\n" << indent;
- const QString returnStatement = virtualMethodReturn(s, api(), func,
- func->modifications());
+ const auto returnStatement = virtualMethodReturn(api(), func,
+ func->modifications());
- if (func->isAbstract() && func->isModifiedRemoved()) {
- qCWarning(lcShiboken, "%s", qPrintable(msgPureVirtualFunctionRemoved(func.data())));
- s << returnStatement << '\n' << outdent << "}\n\n";
+ if (returnStatement.needsReference)
+ writeVirtualMethodStaticReturnVar(s, func);
+
+ const bool isAbstract = func->isAbstract();
+ if (isAbstract && func->isModifiedRemoved()) {
+ qCWarning(lcShiboken, "%s", qPrintable(msgPureVirtualFunctionRemoved(func.get())));
+ s << returnStatement.statement << '\n' << outdent << "}\n\n";
return;
}
@@ -1022,7 +1189,7 @@ void CppGenerator::writeVirtualMethodNative(TextStream &s,
const AbstractMetaArgument *lastArg = func->arguments().isEmpty()
? nullptr : &func->arguments().constLast();
- //Write declaration/native injected code
+ // Write declaration/native injected code.
if (!snips.isEmpty()) {
writeCodeSnips(s, snips, TypeSystem::CodeSnipPositionDeclaration,
TypeSystem::ShellCode, func, false, lastArg);
@@ -1037,243 +1204,269 @@ void CppGenerator::writeVirtualMethodNative(TextStream &s,
<< cacheIndex << R"( << "]=" << m_PyMethodCache[)" << cacheIndex
<< R"(] << '\n';)" << '\n';
}
- // PYSIDE-803: Build a boolean cache for unused overrides.
- const bool multi_line = func->isVoid() || !snips.isEmpty() || func->isAbstract();
- s << "if (m_PyMethodCache[" << cacheIndex << "])" << (multi_line ? " {\n" : "\n");
- {
- Indentation indentation(s);
- writeVirtualMethodCppCall(s, func, funcName, snips, lastArg, retType,
- returnStatement);
- }
+ // PYSIDE-803: Build a boolean cache for unused overrides
+ const bool multi_line = func->isVoid() || !snips.isEmpty() || isAbstract;
+ s << "if (m_PyMethodCache[" << cacheIndex << "])" << (multi_line ? " {\n" : "\n")
+ << indent;
+ writeVirtualMethodCppCall(s, func, funcName, snips, lastArg, retType,
+ returnStatement.statement, false);
+ s << outdent;
if (multi_line)
s << "}\n";
s << "Shiboken::GilState gil;\n";
// Get out of virtual method call if someone already threw an error.
- s << "if (PyErr_Occurred())\n" << indent
- << returnStatement << '\n' << outdent;
-
- //PYSIDE-1019: Add info about properties.
- int propFlag = 0;
- if (func->isPropertyReader())
- propFlag |= 1;
- if (func->isPropertyWriter())
- propFlag |= 2;
- if (propFlag && func->isStatic())
- propFlag |= 4;
- QString propStr;
- if (propFlag)
- propStr = QString::number(propFlag) + QLatin1Char(':');
+ s << "if (" << shibokenErrorsOccurred << ")\n" << indent
+ << returnStatement.statement << '\n' << outdent;
s << "static PyObject *nameCache[2] = {};\n";
- if (propFlag)
- s << "// This method belongs to a property.\n";
- s << "static const char *funcName = \"" << propStr << funcName << "\";\n"
- << "Shiboken::AutoDecRef " << PYTHON_OVERRIDE_VAR
+ writeFuncNameVar(s, func, funcName);
+ s << "Shiboken::AutoDecRef " << PYTHON_OVERRIDE_VAR
<< "(Shiboken::BindingManager::instance().getOverride(this, nameCache, funcName));\n"
- << "if (" << PYTHON_OVERRIDE_VAR << ".isNull()) {\n"
- << indent << "gil.release();\n";
+ << "if (" << PYTHON_OVERRIDE_VAR << ".isNull()) {\n" << indent;
if (useOverrideCaching(func->ownerClass()))
s << "m_PyMethodCache[" << cacheIndex << "] = true;\n";
writeVirtualMethodCppCall(s, func, funcName, snips, lastArg, retType,
- returnStatement);
+ returnStatement.statement, true);
s << outdent << "}\n\n"; //WS
- writeConversionRule(s, func, TypeSystem::TargetLangCode, false);
-
- s << "Shiboken::AutoDecRef " << PYTHON_ARGS << "(";
+ if (!snips.isEmpty()) {
+ writeCodeSnips(s, snips, TypeSystem::CodeSnipPositionPyOverride,
+ TypeSystem::ShellCode, func, false, lastArg);
+ }
- if (func->arguments().isEmpty() || allArgumentsRemoved(func)) {
- s << "PyTuple_New(0));\n";
- } else {
- QStringList argConversions;
- const AbstractMetaArgumentList &arguments = func->arguments();
- for (const AbstractMetaArgument &arg : arguments) {
- if (func->argumentRemoved(arg.argumentIndex() + 1))
- continue;
+ writeVirtualMethodPythonOverride(s, func, snips, returnStatement);
+}
- const auto &argType = arg.type();
- const auto *argTypeEntry = argType.typeEntry();
- bool convert = argTypeEntry->isObject()
- || argTypeEntry->isValue()
- || argType.isValuePointer()
- || argType.isNativePointer()
- || argTypeEntry->isFlags()
- || argTypeEntry->isEnum()
- || argTypeEntry->isContainer()
- || argType.referenceType() == LValueReference;
-
- if (!convert && argTypeEntry->isPrimitive()) {
- const auto *pte = static_cast<const PrimitiveTypeEntry *>(argTypeEntry);
- if (pte->basicReferencedTypeEntry())
- pte = pte->basicReferencedTypeEntry();
- convert = !formatUnits().contains(pte->name());
- }
+void CppGenerator::writeVirtualMethodPythonOverride(TextStream &s,
+ const AbstractMetaFunctionCPtr &func,
+ const CodeSnipList &snips,
+ const VirtualMethodReturn &returnStatement) const
+{
+ writeConversionRule(s, func, TypeSystem::TargetLangCode, false);
- StringStream ac(TextStream::Language::Cpp);
- if (!func->conversionRule(TypeSystem::TargetLangCode, arg.argumentIndex() + 1).isEmpty()) {
- // Has conversion rule.
- ac << arg.name() + QLatin1String(CONV_RULE_OUT_VAR_SUFFIX);
+ bool invalidateReturn = false;
+ QList<int> invalidateArgs;
+ for (const FunctionModification &funcMod : func->modifications()) {
+ for (const ArgumentModification &argMod : funcMod.argument_mods()) {
+ const int index = argMod.index();
+ if (index == 0) {
+ if (argMod.targetOwnerShip() == TypeSystem::CppOwnership)
+ invalidateReturn = true;
} else {
- QString argName = arg.name();
- if (convert)
- writeToPythonConversion(ac, arg.type(), func->ownerClass(), argName);
- else
- ac << argName;
+ const int actualIndex = func->actualArgumentIndex(index - 1) + 1;
+ if (argMod.resetAfterUse() && !invalidateArgs.contains(actualIndex))
+ invalidateArgs.append(actualIndex);
}
-
- argConversions << ac.toString();
}
+ }
+ std::sort(invalidateArgs.begin(), invalidateArgs.end());
- s << "Py_BuildValue(\"(" << getFormatUnitString(func, false) << ")\",\n"
- << argConversions.join(QLatin1String(",\n")) << "\n));\n";
+ auto arguments = func->arguments();
+ auto removedEnd = std::stable_partition(arguments.begin(), arguments.end(),
+ isArgumentNotRemoved);
+ if (func->isAbstract()) { // Base function is not called, indicate unused arguments.
+ for (auto it = removedEnd; it != arguments.end(); ++it)
+ s << sbkUnusedVariableCast(it->name());
}
+ arguments.erase(removedEnd, arguments.end());
- bool invalidateReturn = false;
- QSet<int> invalidateArgs;
- for (const FunctionModification &funcMod : func->modifications()) {
- for (const ArgumentModification &argMod : funcMod.argument_mods()) {
- const int index = argMod.index();
- if (argMod.resetAfterUse() && !invalidateArgs.contains(index)) {
- invalidateArgs.insert(index);
- s << "bool invalidateArg" << index
- << " = PyTuple_GET_ITEM(" << PYTHON_ARGS << ", "
- << index - 1 << ")->ob_refcnt == 1;\n";
- } else if (index == 0 &&
- argMod.targetOwnerShip() == TypeSystem::CppOwnership) {
- invalidateReturn = true;
- }
+ // FIXME PYSIDE-7: new functions PyObject_Vectorcall() (since 3.9) and
+ // PyObject_CallNoArgs() (since 3.9, stable API since 3.10) might have
+ // become part of the stable API?
+
+ // Code snips might expect the args tuple, don't generate new code
+ const bool generateNewCall = snips.isEmpty();
+ const qsizetype argCount = arguments.size();
+ const char *newCallCondition = argCount == 0 ? noArgsCallCondition : vectorCallCondition;
+ if (generateNewCall) {
+ if (argCount > 0) {
+ s << newCallCondition;
+ writeVirtualMethodNativeVectorCallArgs(s, func, arguments, invalidateArgs);
+ s << "#else\n";
+ } else {
+ s << inverseNoArgsCallCondition;
}
}
+ writeVirtualMethodNativeArgs(s, func, arguments, invalidateArgs);
+ if (generateNewCall)
+ s << "#endif\n";
s << '\n';
if (!snips.isEmpty()) {
if (func->injectedCodeUsesPySelf())
s << "PyObject *pySelf = BindingManager::instance().retrieveWrapper(this);\n";
- const AbstractMetaArgument *lastArg = func->arguments().isEmpty() ? nullptr : &func->arguments().constLast();
+ const AbstractMetaArgument *lastArg = func->arguments().isEmpty()
+ ? nullptr : &func->arguments().constLast();
writeCodeSnips(s, snips, TypeSystem::CodeSnipPositionBeginning,
TypeSystem::NativeCode, func, false, lastArg);
}
+ qsizetype returnIndirections = 0;
+
if (!func->injectedCodeCallsPythonOverride()) {
+ if (generateNewCall) {
+ s << newCallCondition << "Shiboken::AutoDecRef " << PYTHON_RETURN_VAR << '(';
+ if (argCount > 0) {
+ s << "PyObject_Vectorcall(" << PYTHON_OVERRIDE_VAR << ", "
+ << PYTHON_ARGS_ARRAY << ", " << argCount << ", nullptr));\n";
+ for (int argIndex : std::as_const(invalidateArgs)) {
+ s << "if (invalidateArg" << argIndex << ")\n" << indent
+ << "Shiboken::Object::invalidate(" << PYTHON_ARGS_ARRAY
+ << '[' << (argIndex - 1) << "]);\n" << outdent;
+ }
+ for (qsizetype i = 0, size = arguments.size(); i < size; ++i)
+ s << "Py_DECREF(" << PYTHON_ARGS_ARRAY << '[' << i << "]);\n";
+ } else {
+ s << "PyObject_CallNoArgs(" << PYTHON_OVERRIDE_VAR << "));\n";
+ }
+ s << "#else\n";
+ }
s << "Shiboken::AutoDecRef " << PYTHON_RETURN_VAR << "(PyObject_Call("
- << PYTHON_OVERRIDE_VAR << ", " << PYTHON_ARGS << ", nullptr));\n"
+ << PYTHON_OVERRIDE_VAR << ", " << PYTHON_ARGS << ", nullptr));\n";
+
+ for (int argIndex : std::as_const(invalidateArgs)) {
+ s << "if (invalidateArg" << argIndex << ")\n" << indent
+ << "Shiboken::Object::invalidate(PyTuple_GET_ITEM(" << PYTHON_ARGS
+ << ", " << (argIndex - 1) << "));\n" << outdent;
+ }
+ if (generateNewCall)
+ s << "#endif\n";
+
+ s << "if (" << PYTHON_RETURN_VAR << ".isNull()) {\n" << indent
<< "// An error happened in python code!\n"
- << "if (" << PYTHON_RETURN_VAR << ".isNull()) {\n" << indent
- << "PyErr_Print();\n" << returnStatement << '\n' << outdent
- << "}\n";
+ << "Shiboken::Errors::storeErrorOrPrint();\n"
+ << returnStatement.statement << "\n" << outdent
+ << "}\n";
+
+ if (invalidateReturn) {
+ s << "bool invalidateArg0 = Py_REFCNT(" << PYTHON_RETURN_VAR << ") == 1;\n"
+ << "if (invalidateArg0)\n" << indent
+ << "Shiboken::Object::releaseOwnership(" << PYTHON_RETURN_VAR
+ << ".object());\n" << outdent;
+ }
if (!func->isVoid()) {
- if (invalidateReturn)
- s << "bool invalidateArg0 = " << PYTHON_RETURN_VAR << "->ob_refcnt == 1;\n";
- if (func->typeReplaced(0) != cPyObjectT()) {
+ if (func->modifiedTypeName() != cPyObjectT) {
s << "// Check return type\n";
- if (func->typeReplaced(0).isEmpty()) {
- s << "PythonToCppFunc " << PYTHON_TO_CPP_VAR << " = "
+
+ if (!func->isTypeModified()) {
+
+ s << PYTHON_TO_CPPCONVERSION_STRUCT << ' '
+ << PYTHON_TO_CPP_VAR << " =\n" << indent
<< cpythonIsConvertibleFunction(func->type())
- << PYTHON_RETURN_VAR << ");\n"
- << "if (!" << PYTHON_TO_CPP_VAR << ") {\n";
- {
- Indentation indent(s);
- s << "Shiboken::warning(PyExc_RuntimeWarning, 2, "\
- "\"Invalid return value in function %s, expected %s, got %s.\", \""
- << func->ownerClass()->name() << '.' << funcName << "\", "
- << getVirtualFunctionReturnTypeName(func)
- << ", Py_TYPE(" << PYTHON_RETURN_VAR << ")->tp_name);\n"
- << returnStatement << '\n';
- }
- s << "}\n";
+ << PYTHON_RETURN_VAR << ");\n" << outdent
+ << "if (!" << PYTHON_TO_CPP_VAR << ") {\n" << indent
+ << "Shiboken::Warnings::warnInvalidReturnValue(\""
+ << func->ownerClass()->name() << "\", funcName, "
+ << getVirtualFunctionReturnTypeName(func) << ", "
+ << "Py_TYPE(" << PYTHON_RETURN_VAR << ")->tp_name);\n"
+ << returnStatement.statement << '\n' << outdent
+ << "}\n";
} else {
- s << "// Check return type\n"
- << "bool typeIsValid = ";
- writeTypeCheck(s, func->type(), QLatin1String(PYTHON_RETURN_VAR),
- isNumber(func->type().typeEntry()), func->typeReplaced(0));
+ s << "bool typeIsValid = ";
+ if (func->isTypeModified()) {
+ writeTypeCheck(s, func->modifiedTypeName(), PYTHON_RETURN_VAR);
+ } else {
+ const bool numberType = isNumber(func->type().typeEntry());
+ writeTypeCheck(s, func->type(), PYTHON_RETURN_VAR, numberType);
+ }
+
s << ";\n";
s << "if (!typeIsValid";
if (func->type().isPointerToWrapperType())
s << " && " << PYTHON_RETURN_VAR << " != Py_None";
- s << ") {\n";
- {
- Indentation indent(s);
- s << "Shiboken::warning(PyExc_RuntimeWarning, 2, "\
- "\"Invalid return value in function %s, expected %s, got %s.\", \""
- << func->ownerClass()->name() << '.' << funcName << "\", "
- << getVirtualFunctionReturnTypeName(func)
- << ", Py_TYPE(" << PYTHON_RETURN_VAR << ")->tp_name);\n"
- << returnStatement << '\n';
- }
- s << "}\n";
+ s << ") {\n" << indent
+ << "Shiboken::Warnings::warnInvalidReturnValue(\""
+ << func->ownerClass()->name() << "\", funcName, "
+ << getVirtualFunctionReturnTypeName(func) << ", "
+ << "Py_TYPE(" << PYTHON_RETURN_VAR << ")->tp_name);\n"
+ << returnStatement.statement << '\n' << outdent
+ << "}\n";
}
}
- if (!func->conversionRule(TypeSystem::NativeCode, 0).isEmpty()) {
- // Has conversion rule.
- writeConversionRule(s, func, TypeSystem::NativeCode, QLatin1String(CPP_RETURN_VAR));
+ if (func->hasConversionRule(TypeSystem::NativeCode, 0)) {
+ writeConversionRule(s, func, TypeSystem::NativeCode, CPP_RETURN_VAR);
} else if (!func->injectedCodeHasReturnValueAttribution(TypeSystem::NativeCode)) {
- writePythonToCppTypeConversion(s, func->type(), QLatin1String(PYTHON_RETURN_VAR),
- QLatin1String(CPP_RETURN_VAR), func->implementingClass());
+ returnIndirections = writePythonToCppTypeConversion(
+ s, func->type(), PYTHON_RETURN_VAR,
+ CPP_RETURN_VAR, func->implementingClass(), {});
}
}
}
- if (invalidateReturn) {
- s << "if (invalidateArg0)\n" << indent
- << "Shiboken::Object::releaseOwnership(" << PYTHON_RETURN_VAR
- << ".object());\n" << outdent;
- }
- for (int argIndex : qAsConst(invalidateArgs)) {
- s << "if (invalidateArg" << argIndex << ")\n" << indent
- << "Shiboken::Object::invalidate(PyTuple_GET_ITEM(" << PYTHON_ARGS
- << ", " << (argIndex - 1) << "));\n" << outdent;
- }
-
-
for (const FunctionModification &funcMod : func->modifications()) {
for (const ArgumentModification &argMod : funcMod.argument_mods()) {
if (argMod.index() == 0
&& argMod.nativeOwnership() == TypeSystem::CppOwnership) {
- s << "if (Shiboken::Object::checkType(" << PYTHON_RETURN_VAR << "))\n";
- Indentation indent(s);
- s << "Shiboken::Object::releaseOwnership(" << PYTHON_RETURN_VAR << ");\n";
+ s << "if (Shiboken::Object::checkType(" << PYTHON_RETURN_VAR << "))\n" << indent
+ << "Shiboken::Object::releaseOwnership(" << PYTHON_RETURN_VAR << ");\n"
+ << outdent;
}
}
}
if (func->hasInjectedCode()) {
s << '\n';
- const AbstractMetaArgument *lastArg = func->arguments().isEmpty() ? nullptr : &func->arguments().constLast();
+ const AbstractMetaArgument *lastArg = func->arguments().isEmpty()
+ ? nullptr : &func->arguments().constLast();
writeCodeSnips(s, snips, TypeSystem::CodeSnipPositionEnd,
TypeSystem::NativeCode, func, false, lastArg);
}
if (!func->isVoid()) {
s << "return ";
+ TypeEntryCPtr retType = func->type().typeEntry();
if (avoidProtectedHack() && retType->isEnum()) {
auto metaEnum = api().findAbstractMetaEnum(retType);
bool isProtectedEnum = metaEnum.has_value() && metaEnum->isProtected();
if (isProtectedEnum) {
QString typeCast;
if (metaEnum->enclosingClass())
- typeCast += QLatin1String("::") + metaEnum->enclosingClass()->qualifiedCppName();
- typeCast += QLatin1String("::") + metaEnum->name();
+ typeCast += getFullTypeName(metaEnum->enclosingClass());
+ typeCast += u"::"_s + metaEnum->name();
s << '(' << typeCast << ')';
}
}
- if (func->type().isWrapperPassedByReference())
- s << " *";
+
+ if (returnIndirections > 0)
+ s << QByteArray(returnIndirections, '*');
s << CPP_RETURN_VAR << ";\n";
}
s << outdent << "}\n\n";
}
+void CppGenerator::writeUserAddedPythonOverride(TextStream &s,
+ const AbstractMetaFunctionCPtr &func) const
+{
+ TypeEntryCPtr retType = func->type().typeEntry();
+ const QString funcName = func->isOperatorOverload()
+ ? pythonOperatorFunctionName(func) : func->definitionNames().constFirst();
+
+ const CodeSnipList snips = func->hasInjectedCode()
+ ? func->injectedCodeSnips() : CodeSnipList();
+
+ QString prefix = wrapperName(func->ownerClass()) + u"::"_s;
+ s << '\n' << functionSignature(func, prefix, QString(), Generator::SkipDefaultValues |
+ Generator::OriginalTypeDescription)
+ << "\n{\n" << indent << sbkUnusedVariableCast("gil");
+
+ writeFuncNameVar(s, func, funcName);
+
+ const auto returnStatement = virtualMethodReturn(api(), func,
+ func->modifications());
+ writeVirtualMethodPythonOverride(s, func, snips, returnStatement);
+}
+
void CppGenerator::writeMetaObjectMethod(TextStream &s,
const GeneratorContext &classContext) const
{
@@ -1281,19 +1474,21 @@ void CppGenerator::writeMetaObjectMethod(TextStream &s,
const QString wrapperClassName = classContext.wrapperName();
const QString qualifiedCppName = classContext.metaClass()->qualifiedCppName();
s << "const QMetaObject *" << wrapperClassName << "::metaObject() const\n{\n";
- s << indent << "if (QObject::d_ptr->metaObject)\n"
+ s << indent << "if (QObject::d_ptr->metaObject != nullptr)\n"
<< indent << "return QObject::d_ptr->dynamicMetaObject();\n" << outdent
<< "SbkObject *pySelf = Shiboken::BindingManager::instance().retrieveWrapper(this);\n"
<< "if (pySelf == nullptr)\n"
<< indent << "return " << qualifiedCppName << "::metaObject();\n" << outdent
- << "return PySide::SignalManager::retrieveMetaObject(reinterpret_cast<PyObject *>(pySelf));\n"
+ << "return PySide::SignalManager::retrieveMetaObject("
+ "reinterpret_cast<PyObject *>(pySelf));\n"
<< outdent << "}\n\n";
// qt_metacall function
- s << "int " << wrapperClassName << "::qt_metacall(QMetaObject::Call call, int id, void **args)\n";
+ s << "int " << wrapperClassName
+ << "::qt_metacall(QMetaObject::Call call, int id, void **args)\n";
s << "{\n" << indent;
- const auto list = classContext.metaClass()->queryFunctionsByName(QLatin1String("qt_metacall"));
+ const auto list = classContext.metaClass()->queryFunctionsByName(u"qt_metacall"_s);
CodeSnipList snips;
if (list.size() == 1) {
@@ -1308,7 +1503,8 @@ void CppGenerator::writeMetaObjectMethod(TextStream &s,
}
s << "int result = " << qualifiedCppName << "::qt_metacall(call, id, args);\n"
- << "return result < 0 ? result : PySide::SignalManager::qt_metacall(this, call, id, args);\n"
+ << "return result < 0 ? result : PySide::SignalManager::qt_metacall("
+ "this, call, id, args);\n"
<< outdent << "}\n\n";
// qt_metacast function
@@ -1321,108 +1517,90 @@ void CppGenerator::writeMetaCast(TextStream &s,
const QString wrapperClassName = classContext.wrapperName();
const QString qualifiedCppName = classContext.metaClass()->qualifiedCppName();
s << "void *" << wrapperClassName << "::qt_metacast(const char *_clname)\n{\n"
- << indent << "if (!_clname)\n" << indent << "return {};\n" << outdent
+ << indent << "if (_clname == nullptr)\n" << indent << "return {};\n" << outdent
<< "SbkObject *pySelf = Shiboken::BindingManager::instance().retrieveWrapper(this);\n"
- << "if (pySelf && PySide::inherits(Py_TYPE(pySelf), _clname))\n"
+ << "if (pySelf != nullptr && PySide::inherits(Py_TYPE(pySelf), _clname))\n"
<< indent << "return static_cast<void *>(const_cast< "
<< wrapperClassName << " *>(this));\n" << outdent
<< "return " << qualifiedCppName << "::qt_metacast(_clname);\n"
<< outdent << "}\n\n";
}
-void CppGenerator::writeEnumConverterFunctions(TextStream &s, const AbstractMetaEnum &metaEnum) const
+static void generateDeprecatedValueWarnings(TextStream &c,
+ const AbstractMetaEnum &metaEnum,
+ bool useSurrogateName)
{
- if (metaEnum.isPrivate() || metaEnum.isAnonymous())
- return;
- writeEnumConverterFunctions(s, metaEnum.typeEntry());
+ EnumTypeEntryCPtr enumType = metaEnum.typeEntry();
+ const QString prefix = enumType->qualifiedCppName() + u"::"_s;
+ c << "switch (value) {\n";
+ const auto &deprecatedValues = metaEnum.deprecatedValues();
+ for (const auto &v : deprecatedValues) {
+ c << "case ";
+ if (useSurrogateName)
+ c << v.value().toString(); // Protected, use int representation
+ else
+ c << prefix << v.name();
+ c << ":\n" << indent
+ << "Shiboken::Warnings::warnDeprecatedEnumValue(\"" << enumType->name()
+ << "\", \"" << v.name() << "\");\nbreak;\n" << outdent;
+ }
+ if (deprecatedValues.size() < metaEnum.values().size())
+ c << "default:\n" << indent << "break;\n" << outdent;
+ c << "}\n";
}
-void CppGenerator::writeEnumConverterFunctions(TextStream &s, const TypeEntry *enumType) const
+void CppGenerator::writeEnumConverterFunctions(TextStream &s, const AbstractMetaEnum &metaEnum) const
{
- if (!enumType)
+ if (metaEnum.isPrivate() || metaEnum.isAnonymous())
return;
+ EnumTypeEntryCPtr enumType = metaEnum.typeEntry();
+ Q_ASSERT(enumType);
QString typeName = fixedCppTypeName(enumType);
QString enumPythonType = cpythonTypeNameExt(enumType);
- QString cppTypeName = getFullTypeName(enumType).trimmed();
- if (avoidProtectedHack()) {
- auto metaEnum = api().findAbstractMetaEnum(enumType);
- if (metaEnum.has_value() && metaEnum->isProtected())
- cppTypeName = protectedEnumSurrogateName(metaEnum.value());
- }
+ const bool useSurrogateName = avoidProtectedHack() && metaEnum.isProtected();
+ QString cppTypeName = useSurrogateName
+ ? protectedEnumSurrogateName(metaEnum) : getFullTypeName(enumType).trimmed();
+
StringStream c(TextStream::Language::Cpp);
- c << "*reinterpret_cast<" << cppTypeName << " *>(cppOut) =\n"
- << " ";
- if (enumType->isFlags())
- c << cppTypeName << "(QFlag(int(PySide::QFlags::getValue(reinterpret_cast<PySideQFlagsObject *>(pyIn)))))";
- else
- c << "static_cast<" << cppTypeName << ">(Shiboken::Enum::getValue(pyIn))";
- c << ";\n";
+ if (metaEnum.isDeprecated())
+ c << "Shiboken::Warnings::warnDeprecatedEnum(\"" << enumType->name() << "\");\n";
+
+ c << "const auto value = static_cast<" << cppTypeName
+ << ">(Shiboken::Enum::getValue(pyIn));\n";
+
+ // Warn about deprecated values unless it is protected+scoped (inaccessible values)
+ const bool valuesAcccessible = !useSurrogateName || metaEnum.enumKind() != EnumClass;
+ if (valuesAcccessible && metaEnum.hasDeprecatedValues())
+ generateDeprecatedValueWarnings(c, metaEnum, useSurrogateName);
+
+ c << "*reinterpret_cast<" << cppTypeName << " *>(cppOut) = value;\n";
+
+ ConfigurableScope configScope(s, enumType);
writePythonToCppFunction(s, c.toString(), typeName, typeName);
- QString pyTypeCheck = u"PyObject_TypeCheck(pyIn, "_qs + enumPythonType + u')';
+ QString pyTypeCheck = u"PyObject_TypeCheck(pyIn, "_s + enumPythonType + u')';
writeIsPythonConvertibleToCppFunction(s, typeName, typeName, pyTypeCheck);
c.clear();
c << "const int castCppIn = int(*reinterpret_cast<const "
- << cppTypeName << " *>(cppIn));\n" << "return ";
- if (enumType->isFlags()) {
- c << "reinterpret_cast<PyObject *>(PySide::QFlags::newObject(castCppIn, "
- << enumPythonType << "))";
- } else {
- c << "Shiboken::Enum::newItem(" << enumPythonType << ", castCppIn)";
- }
- c << ";\n";
+ << cppTypeName << " *>(cppIn));\n" << "return "
+ << "Shiboken::Enum::newItem(" << enumPythonType << ", castCppIn);\n";
writeCppToPythonFunction(s, c.toString(), typeName, typeName);
s << '\n';
+}
- if (enumType->isFlags())
- return;
-
- auto flags = reinterpret_cast<const EnumTypeEntry *>(enumType)->flags();
- if (!flags)
- return;
-
- // QFlags part.
-
- writeEnumConverterFunctions(s, flags);
-
- c.clear();
- cppTypeName = getFullTypeName(flags).trimmed();
- c << "*reinterpret_cast<" << cppTypeName << " *>(cppOut) =\n"
- << " " << cppTypeName
- << "(QFlag(int(Shiboken::Enum::getValue(pyIn))));\n";
-
- QString flagsTypeName = fixedCppTypeName(flags);
- writePythonToCppFunction(s, c.toString(), typeName, flagsTypeName);
- writeIsPythonConvertibleToCppFunction(s, typeName, flagsTypeName, pyTypeCheck);
-
- c.clear();
- c << "Shiboken::AutoDecRef pyLong(PyNumber_Long(pyIn));\n"
- << "*reinterpret_cast<" << cppTypeName << " *>(cppOut) =\n"
- << " " << cppTypeName
- << "(QFlag(int(PyLong_AsLong(pyLong.object()))));\n";
- // PYSIDE-898: Include an additional condition to detect if the type of the
- // enum corresponds to the object that is being evaluated.
- // Using only `PyNumber_Check(...)` is too permissive,
- // then we would have been unable to detect the difference between
- // a PolarOrientation and Qt::AlignmentFlag, which was the main
- // issue of the bug.
- const QString numberCondition = QStringLiteral("PyNumber_Check(pyIn) && ") + pyTypeCheck;
- writePythonToCppFunction(s, c.toString(), QLatin1String("number"), flagsTypeName);
- writeIsPythonConvertibleToCppFunction(s, QLatin1String("number"), flagsTypeName, numberCondition);
-}
-
-void CppGenerator::writeConverterFunctions(TextStream &s, const AbstractMetaClass *metaClass,
+void CppGenerator::writeConverterFunctions(TextStream &s, const AbstractMetaClassCPtr &metaClass,
const GeneratorContext &classContext) const
{
s << "// Type conversion functions.\n\n";
AbstractMetaEnumList classEnums = metaClass->enums();
+ auto typeEntry = metaClass->typeEntry();
metaClass->getEnumsFromInvisibleNamespacesToBeGenerated(&classEnums);
if (!classEnums.isEmpty())
s << "// Python to C++ enum conversion.\n";
- for (const AbstractMetaEnum &metaEnum : qAsConst(classEnums))
+ for (const AbstractMetaEnum &metaEnum : std::as_const(classEnums))
writeEnumConverterFunctions(s, metaEnum);
if (metaClass->isNamespace())
@@ -1440,123 +1618,121 @@ void CppGenerator::writeConverterFunctions(TextStream &s, const AbstractMetaClas
s << "// Python to C++ pointer conversion - returns the C++ object of the Python wrapper (keeps object identity).\n";
QString sourceTypeName = metaClass->name();
- QString targetTypeName = metaClass->name() + QLatin1String("_PTR");
+ QString targetTypeName = metaClass->name() + u"_PTR"_s;
StringStream c(TextStream::Language::Cpp);
c << "Shiboken::Conversions::pythonToCppPointer(" << cpythonType << ", pyIn, cppOut);";
writePythonToCppFunction(s, c.toString(), sourceTypeName, targetTypeName);
// "Is convertible" function for the Python object to C++ pointer conversion.
- const QString pyTypeCheck = QLatin1String("PyObject_TypeCheck(pyIn, reinterpret_cast<PyTypeObject *>(")
- + cpythonType + QLatin1String("))");
+ const QString pyTypeCheck = u"PyObject_TypeCheck(pyIn, "_s + cpythonType + u")"_s;
writeIsPythonConvertibleToCppFunction(s, sourceTypeName, targetTypeName, pyTypeCheck, QString(), true);
s << '\n';
// C++ pointer to a Python wrapper, keeping identity.
s << "// C++ to Python pointer conversion - tries to find the Python wrapper for the C++ object (keeps object identity).\n";
c.clear();
- if (usePySideExtensions() && metaClass->isQObject()) {
+ if (usePySideExtensions() && isQObject(metaClass)) {
c << "return PySide::getWrapperForQObject(reinterpret_cast<"
<< typeName << " *>(const_cast<void *>(cppIn)), " << cpythonType << ");\n";
} else {
- c << "auto pyOut = reinterpret_cast<PyObject *>(Shiboken::BindingManager::instance().retrieveWrapper(cppIn));\n"
- << "if (pyOut) {\n";
- {
- Indentation indent(c);
- c << "Py_INCREF(pyOut);\nreturn pyOut;\n";
- }
- c << "}\n"
- << "bool changedTypeName = false;\n"
- << "auto tCppIn = reinterpret_cast<const " << typeName << R"( *>(cppIn);
-const char *typeName = typeid(*tCppIn).name();
-auto sbkType = Shiboken::ObjectType::typeForTypeName(typeName);
-if (sbkType && Shiboken::ObjectType::hasSpecialCastFunction(sbkType)) {
- typeName = typeNameOf(tCppIn);
- changedTypeName = true;
-}
+ c << "auto *pyOut = reinterpret_cast<PyObject *>(Shiboken::BindingManager::instance().retrieveWrapper(cppIn));\n"
+ << "if (pyOut) {\n" << indent
+ << "Py_INCREF(pyOut);\nreturn pyOut;\n" << outdent
+ << "}\n"
+ << "bool exactType = false;\n"
+ << "auto *tCppIn = reinterpret_cast<const " << typeName << R"( *>(cppIn);
+const char *typeName = )";
+
+ const QString nameFunc = metaClass->typeEntry()->polymorphicNameFunction();
+ if (nameFunc.isEmpty())
+ c << "typeid(*tCppIn).name();\n";
+ else
+ c << nameFunc << "(tCppIn);\n";
+ c << R"(auto *sbkType = Shiboken::ObjectType::typeForTypeName(typeName);
+if (sbkType != nullptr && Shiboken::ObjectType::hasSpecialCastFunction(sbkType))
+ exactType = true;
)"
<< "PyObject *result = Shiboken::Object::newObject(" << cpythonType
- << R"(, const_cast<void *>(cppIn), false, /* exactType */ changedTypeName, typeName);
-if (changedTypeName)
- delete [] typeName;
+ << R"(, const_cast<void *>(cppIn), false, exactType, typeName);
return result;)";
}
std::swap(targetTypeName, sourceTypeName);
writeCppToPythonFunction(s, c.toString(), sourceTypeName, targetTypeName);
// The conversions for an Object Type end here.
- if (!metaClass->typeEntry()->isValue() && !metaClass->typeEntry()->isSmartPointer()) {
+ if (!typeEntry->isValue() && !typeEntry->isSmartPointer()) {
s << '\n';
return;
}
// Always copies C++ value (not pointer, and not reference) to a new Python wrapper.
s << '\n' << "// C++ to Python copy conversion.\n";
- if (!classContext.forSmartPointer())
- targetTypeName = metaClass->name();
- else
- targetTypeName = classContext.preciseType().name();
+ targetTypeName = metaClass->name();
- sourceTypeName = targetTypeName + QLatin1String("_COPY");
+ sourceTypeName = targetTypeName + u"_COPY"_s;
c.clear();
- QString computedWrapperName;
- if (!classContext.forSmartPointer()) {
- computedWrapperName = classContext.useWrapper()
- ? classContext.wrapperName() : metaClass->qualifiedCppName();
+ const bool isUniquePointer = classContext.forSmartPointer()
+ && typeEntry->isUniquePointer();
+
+ if (isUniquePointer) {
+ c << "auto *source = reinterpret_cast<" << typeName
+ << " *>(const_cast<void *>(cppIn));\n";
} else {
- computedWrapperName = classContext.smartPointerWrapperName();
+ c << "auto *source = reinterpret_cast<const " << typeName << " *>(cppIn);\n";
}
-
c << "return Shiboken::Object::newObject(" << cpythonType
- << ", new ::" << computedWrapperName << "(*reinterpret_cast<const "
- << typeName << " *>(cppIn)), true, true);";
+ << ", new " << globalScopePrefix(classContext) << classContext.effectiveClassName() << '('
+ << (isUniquePointer ? "std::move(*source)" : "*source")
+ << "), true, true);";
writeCppToPythonFunction(s, c.toString(), sourceTypeName, targetTypeName);
s << '\n';
// Python to C++ copy conversion.
s << "// Python to C++ copy conversion.\n";
- if (!classContext.forSmartPointer())
- sourceTypeName = metaClass->name();
- else
- sourceTypeName = classContext.preciseType().name();
+ sourceTypeName = metaClass->name();
- targetTypeName = sourceTypeName + QStringLiteral("_COPY");
+ targetTypeName = sourceTypeName + "_COPY"_L1;
c.clear();
- QString pyInVariable = QLatin1String("pyIn");
- QString wrappedCPtrExpression;
- if (!classContext.forSmartPointer())
- wrappedCPtrExpression = cpythonWrapperCPtr(metaClass->typeEntry(), pyInVariable);
- else
- wrappedCPtrExpression = cpythonWrapperCPtr(classContext.preciseType(), pyInVariable);
+ QString pyInVariable = u"pyIn"_s;
+ const QString outPtr = u"reinterpret_cast<"_s + typeName + u" *>(cppOut)"_s;
+ if (!classContext.forSmartPointer()) {
+ c << '*' << outPtr << " = *"
+ << cpythonWrapperCPtr(typeEntry, pyInVariable) << ';';
+ } else {
+ auto ste = std::static_pointer_cast<const SmartPointerTypeEntry>(typeEntry);
+ const QString resetMethod = ste->resetMethod();
+ c << "auto *ptr = " << outPtr << ";\n";
+ c << "if (" << pyInVariable << " == Py_None)\n" << indent;
+ if (resetMethod.isEmpty())
+ c << "*ptr = {};\n";
+ else
+ c << "ptr->" << resetMethod << "();\n";
+ const QString value = u'*' + cpythonWrapperCPtr(classContext.preciseType(), pyInVariable);
+ c << outdent << "else\n" << indent
+ << "*ptr = " << (isUniquePointer ? stdMove(value) : value) << ';';
+ }
- c << "*reinterpret_cast<" << typeName << " *>(cppOut) = *"
- << wrappedCPtrExpression << ';';
writePythonToCppFunction(s, c.toString(), sourceTypeName, targetTypeName);
// "Is convertible" function for the Python object to C++ value copy conversion.
- writeIsPythonConvertibleToCppFunction(s, sourceTypeName, targetTypeName, pyTypeCheck);
+ QString copyTypeCheck = pyTypeCheck;
+ if (classContext.forSmartPointer())
+ copyTypeCheck.prepend(pyInVariable + u" == Py_None || "_s);
+ writeIsPythonConvertibleToCppFunction(s, sourceTypeName, targetTypeName, copyTypeCheck);
s << '\n';
// User provided implicit conversions.
- CustomConversion *customConversion = metaClass->typeEntry()->customConversion();
-
// Implicit conversions.
- AbstractMetaFunctionCList implicitConvs;
- if (!customConversion || !customConversion->replaceOriginalTargetToNativeConversions()) {
- const auto &allImplicitConvs = api().implicitConversions(metaClass->typeEntry());
- for (const auto &func : allImplicitConvs) {
- if (!func->isUserAdded())
- implicitConvs << func;
- }
- }
+ const AbstractMetaFunctionCList implicitConvs = implicitConversions(typeEntry);
if (!implicitConvs.isEmpty())
s << "// Implicit conversions.\n";
AbstractMetaType targetType = AbstractMetaType::fromAbstractMetaClass(metaClass);
- for (const auto &conv : qAsConst(implicitConvs)) {
+ for (const auto &conv : std::as_const(implicitConvs)) {
if (conv->isModifiedRemoved())
continue;
@@ -1564,36 +1740,30 @@ return result;)";
QString toCppConv;
QString toCppPreConv;
if (conv->isConversionOperator()) {
- const AbstractMetaClass *sourceClass = conv->ownerClass();
- typeCheck = u"PyObject_TypeCheck(pyIn, "_qs
+ const auto sourceClass = conv->ownerClass();
+ typeCheck = u"PyObject_TypeCheck(pyIn, "_s
+ cpythonTypeNameExt(sourceClass->typeEntry()) + u')';
- toCppConv = QLatin1Char('*') + cpythonWrapperCPtr(sourceClass->typeEntry(), QLatin1String("pyIn"));
+ toCppConv = u'*' + cpythonWrapperCPtr(sourceClass->typeEntry(),
+ pyInVariable);
} else {
// Constructor that does implicit conversion.
- if (!conv->typeReplaced(1).isEmpty() || conv->isModifiedToArray(1))
+ const auto &firstArg = conv->arguments().constFirst();
+ if (firstArg.isTypeModified() || conv->isModifiedToArray(1))
continue;
- const AbstractMetaType sourceType = conv->arguments().constFirst().type();
- typeCheck = cpythonCheckFunction(sourceType);
- bool isUserPrimitiveWithoutTargetLangName = sourceType.isUserPrimitive()
- && sourceType.typeEntry()->targetLangApiName() == sourceType.typeEntry()->name();
- if (!sourceType.isWrapperType()
- && !isUserPrimitiveWithoutTargetLangName
- && !sourceType.typeEntry()->isEnum()
- && !sourceType.typeEntry()->isFlags()
- && !sourceType.typeEntry()->isContainer()) {
- typeCheck += QLatin1Char('(');
- }
+ const AbstractMetaType &sourceType = firstArg.type();
if (sourceType.isWrapperType()) {
- typeCheck += QLatin1String("pyIn)");
- toCppConv = (sourceType.referenceType() == LValueReference
- || !sourceType.isPointerToWrapperType())
- ? QLatin1String(" *") : QString();
- toCppConv += cpythonWrapperCPtr(sourceType.typeEntry(), QLatin1String("pyIn"));
- } else if (typeCheck.contains(QLatin1String("%in"))) {
- typeCheck.replace(QLatin1String("%in"), QLatin1String("pyIn"));
- typeCheck.append(QLatin1Char(')'));
- } else {
- typeCheck += QLatin1String("pyIn)");
+ if (sourceType.referenceType() == LValueReference
+ || !sourceType.isPointerToWrapperType()) {
+ toCppConv = u" *"_s;
+ }
+ toCppConv += cpythonWrapperCPtr(sourceType.typeEntry(), pyInVariable);
+ }
+
+ typeCheck = cpythonCheckFunction(sourceType);
+ if (typeCheck.endsWith(u", ")) {
+ typeCheck += pyInVariable + u')';
+ } else if (typeCheck != u"true" && typeCheck != u"false") {
+ typeCheck += u'(' + pyInVariable + u')';
}
if (sourceType.isUserPrimitive()
@@ -1604,13 +1774,15 @@ return result;)";
StringStream pc(TextStream::Language::Cpp);
pc << getFullTypeNameWithoutModifiers(sourceType) << " cppIn"
<< minimalConstructorExpression(api(), sourceType) << ";\n";
- writeToCppConversion(pc, sourceType, nullptr, QLatin1String("pyIn"), QLatin1String("cppIn"));
+ writeToCppConversion(pc, sourceType, pyInVariable,
+ u"cppIn"_s);
pc << ';';
toCppPreConv = pc.toString();
- toCppConv.append(QLatin1String("cppIn"));
+ toCppConv.append(u"cppIn"_s);
} else if (!sourceType.isWrapperType()) {
StringStream tcc(TextStream::Language::Cpp);
- writeToCppConversion(tcc, sourceType, metaClass, QLatin1String("pyIn"), QLatin1String("/*BOZO-1061*/"));
+ writeToCppConversion(tcc, sourceType, pyInVariable,
+ u"/*BOZO-1061*/"_s);
toCppConv = tcc.toString();
}
}
@@ -1620,62 +1792,61 @@ return result;)";
writePythonToCppConversionFunctions(s, sourceType, targetType, typeCheck, toCppConv, toCppPreConv);
}
- writeCustomConverterFunctions(s, customConversion);
+ if (typeEntry->isValue()) {
+ auto vte = std::static_pointer_cast<const ValueTypeEntry>(typeEntry);
+ writeCustomConverterFunctions(s, vte->customConversion());
+ }
}
void CppGenerator::writeCustomConverterFunctions(TextStream &s,
- const CustomConversion *customConversion) const
+ const CustomConversionPtr &customConversion) const
{
if (!customConversion)
return;
- const CustomConversion::TargetToNativeConversions &toCppConversions = customConversion->targetToNativeConversions();
+ const TargetToNativeConversions &toCppConversions = customConversion->targetToNativeConversions();
if (toCppConversions.isEmpty())
return;
- s << "// Python to C++ conversions for type '" << customConversion->ownerType()->qualifiedCppName() << "'.\n";
- for (CustomConversion::TargetToNativeConversion *toNative : toCppConversions)
- writePythonToCppConversionFunctions(s, toNative, customConversion->ownerType());
+ auto ownerType = customConversion->ownerType();
+ s << "// Python to C++ conversions for type '" << ownerType->qualifiedCppName() << "'.\n";
+ for (const auto &toNative : toCppConversions)
+ writePythonToCppConversionFunctions(s, toNative, ownerType);
s << '\n';
}
-void CppGenerator::writeConverterRegister(TextStream &s, const AbstractMetaClass *metaClass,
+void CppGenerator::writeConverterRegister(TextStream &s, const AbstractMetaClassCPtr &metaClass,
const GeneratorContext &classContext) const
{
- if (metaClass->isNamespace())
+ const auto typeEntry = metaClass->typeEntry();
+ if (typeEntry->isNamespace())
return;
s << "// Register Converter\n"
- << "SbkConverter *converter = Shiboken::Conversions::createConverter("
- << cpythonTypeName(metaClass) << ',' << '\n';
- {
- Indentation indent(s);
- QString sourceTypeName = metaClass->name();
- QString targetTypeName = sourceTypeName + QLatin1String("_PTR");
- s << pythonToCppFunctionName(sourceTypeName, targetTypeName) << ',' << '\n'
- << convertibleToCppFunctionName(sourceTypeName, targetTypeName) << ',' << '\n';
- std::swap(targetTypeName, sourceTypeName);
+ << "SbkConverter *converter = Shiboken::Conversions::createConverter(pyType,\n"
+ << indent;
+ QString sourceTypeName = metaClass->name();
+ QString targetTypeName = sourceTypeName + u"_PTR"_s;
+ s << pythonToCppFunctionName(sourceTypeName, targetTypeName) << ',' << '\n'
+ << convertibleToCppFunctionName(sourceTypeName, targetTypeName) << ',' << '\n';
+ std::swap(targetTypeName, sourceTypeName);
+ s << cppToPythonFunctionName(sourceTypeName, targetTypeName);
+ if (typeEntry->isValue() || typeEntry->isSmartPointer()) {
+ s << ',' << '\n';
+ sourceTypeName = metaClass->name() + u"_COPY"_s;
s << cppToPythonFunctionName(sourceTypeName, targetTypeName);
- if (metaClass->typeEntry()->isValue() || metaClass->typeEntry()->isSmartPointer()) {
- s << ',' << '\n';
- sourceTypeName = metaClass->name() + QLatin1String("_COPY");
- s << cppToPythonFunctionName(sourceTypeName, targetTypeName);
- }
}
- s << ");\n";
-
- s << '\n';
+ s << outdent << ");\n\n";
auto writeConversions = [&s](const QString &signature)
{
- s << "Shiboken::Conversions::registerConverterName(converter, \"" << signature << "\");\n"
- << "Shiboken::Conversions::registerConverterName(converter, \"" << signature << "*\");\n"
- << "Shiboken::Conversions::registerConverterName(converter, \"" << signature << "&\");\n";
+ s << registerConverterName(signature) << registerConverterName(signature + u'*')
+ << registerConverterName(signature + u'&');
};
auto writeConversionsForType = [writeConversions](const QString &fullTypeName)
{
- QStringList lst = fullTypeName.split(QLatin1String("::"),
+ QStringList lst = fullTypeName.split(u"::"_s,
Qt::SkipEmptyParts);
while (!lst.isEmpty()) {
- QString signature = lst.join(QLatin1String("::"));
+ QString signature = lst.join(u"::"_s);
writeConversions(signature);
lst.removeFirst();
}
@@ -1688,18 +1859,18 @@ void CppGenerator::writeConverterRegister(TextStream &s, const AbstractMetaClass
const QString &smartPointerType = classContext.preciseType().instantiations().at(0).cppSignature();
const QString &smartPointerName = classContext.preciseType().typeEntry()->name();
- QStringList lst = smartPointerType.split(QLatin1String("::"),
+ QStringList lst = smartPointerType.split(u"::"_s,
Qt::SkipEmptyParts);
while (!lst.isEmpty()) {
- QString signature = lst.join(QLatin1String("::"));
- writeConversions(smartPointerName + u'<' + signature + u" >"_qs);
+ QString signature = lst.join(u"::"_s);
+ writeConversions(smartPointerName + u'<' + signature + u'>');
lst.removeFirst();
}
writeConversionsForType(smartPointerType);
}
- s << "Shiboken::Conversions::registerConverterName(converter, typeid(::";
+ s << "Shiboken::Conversions::registerConverterName(converter, typeid(" << m_gsp;
QString qualifiedCppNameInvocation;
if (!classContext.forSmartPointer())
qualifiedCppNameInvocation = metaClass->qualifiedCppName();
@@ -1709,41 +1880,31 @@ void CppGenerator::writeConverterRegister(TextStream &s, const AbstractMetaClass
s << qualifiedCppNameInvocation << ").name());\n";
if (classContext.useWrapper()) {
- s << "Shiboken::Conversions::registerConverterName(converter, typeid(::"
+ s << "Shiboken::Conversions::registerConverterName(converter, typeid("
<< classContext.wrapperName() << ").name());\n";
}
- s << '\n';
-
- if (!metaClass->typeEntry()->isValue() && !metaClass->typeEntry()->isSmartPointer())
+ if (!typeEntry->isValue() && !typeEntry->isSmartPointer())
return;
// Python to C++ copy (value, not pointer neither reference) conversion.
- s << "// Add Python to C++ copy (value, not pointer neither reference) conversion to type converter.\n";
- QString sourceTypeName = metaClass->name();
- QString targetTypeName = sourceTypeName + QLatin1String("_COPY");
+ s << "\n// Add Python to C++ copy (value, not pointer neither reference) conversion to type converter.\n";
+ sourceTypeName = metaClass->name();
+ targetTypeName = sourceTypeName + u"_COPY"_s;
QString toCpp = pythonToCppFunctionName(sourceTypeName, targetTypeName);
QString isConv = convertibleToCppFunctionName(sourceTypeName, targetTypeName);
- writeAddPythonToCppConversion(s, QLatin1String("converter"), toCpp, isConv);
+ writeAddPythonToCppConversion(s, u"converter"_s, toCpp, isConv);
// User provided implicit conversions.
- CustomConversion *customConversion = metaClass->typeEntry()->customConversion();
// Add implicit conversions.
- AbstractMetaFunctionCList implicitConvs;
- if (!customConversion || !customConversion->replaceOriginalTargetToNativeConversions()) {
- const auto &allImplicitConvs = api().implicitConversions(metaClass->typeEntry());
- for (const auto &func : allImplicitConvs) {
- if (!func->isUserAdded())
- implicitConvs << func;
- }
- }
+ const AbstractMetaFunctionCList implicitConvs = implicitConversions(typeEntry);
if (!implicitConvs.isEmpty())
s << "// Add implicit conversions to type converter.\n";
AbstractMetaType targetType = AbstractMetaType::fromAbstractMetaClass(metaClass);
- for (const auto &conv : qAsConst(implicitConvs)) {
+ for (const auto &conv : std::as_const(implicitConvs)) {
if (conv->isModifiedRemoved())
continue;
AbstractMetaType sourceType;
@@ -1751,28 +1912,34 @@ void CppGenerator::writeConverterRegister(TextStream &s, const AbstractMetaClass
sourceType = AbstractMetaType::fromAbstractMetaClass(conv->ownerClass());
} else {
// Constructor that does implicit conversion.
- if (!conv->typeReplaced(1).isEmpty() || conv->isModifiedToArray(1))
+ const auto &firstArg = conv->arguments().constFirst();
+ if (firstArg.isTypeModified() || conv->isModifiedToArray(1))
continue;
- sourceType = conv->arguments().constFirst().type();
+ sourceType = firstArg.type();
}
QString toCpp = pythonToCppFunctionName(sourceType, targetType);
QString isConv = convertibleToCppFunctionName(sourceType, targetType);
- writeAddPythonToCppConversion(s, QLatin1String("converter"), toCpp, isConv);
+ writeAddPythonToCppConversion(s, u"converter"_s, toCpp, isConv);
}
- writeCustomConverterRegister(s, customConversion, QLatin1String("converter"));
+ if (typeEntry->isValue()) {
+ auto vte = std::static_pointer_cast<const ValueTypeEntry>(typeEntry);
+ writeCustomConverterRegister(s, vte->customConversion(), u"converter"_s);
+ }
}
-void CppGenerator::writeCustomConverterRegister(TextStream &s, const CustomConversion *customConversion,
+void CppGenerator::writeCustomConverterRegister(TextStream &s,
+ const CustomConversionPtr &customConversion,
const QString &converterVar)
{
if (!customConversion)
return;
- const CustomConversion::TargetToNativeConversions &toCppConversions = customConversion->targetToNativeConversions();
+ const TargetToNativeConversions &toCppConversions =
+ customConversion->targetToNativeConversions();
if (toCppConversions.isEmpty())
return;
s << "// Add user defined implicit conversions to type converter.\n";
- for (CustomConversion::TargetToNativeConversion *toNative : toCppConversions) {
+ for (const auto &toNative : toCppConversions) {
QString toCpp = pythonToCppFunctionName(toNative, customConversion->ownerType());
QString isConv = convertibleToCppFunctionName(toNative, customConversion->ownerType());
writeAddPythonToCppConversion(s, converterVar, toCpp, isConv);
@@ -1786,38 +1953,25 @@ void CppGenerator::writeContainerConverterFunctions(TextStream &s,
writePythonToCppConversionFunctions(s, containerType);
}
-void CppGenerator::writeSmartPointerConverterFunctions(TextStream &s,
- const AbstractMetaType &smartPointerType) const
+bool CppGenerator::needsArgumentErrorHandling(const OverloadData &overloadData)
{
- auto targetClass = AbstractMetaClass::findClass(api().classes(),
- smartPointerType.instantiations().at(0).typeEntry());
-
- if (targetClass) {
- const auto *smartPointerTypeEntry =
- static_cast<const SmartPointerTypeEntry *>(
- smartPointerType.typeEntry());
-
- // TODO: Missing conversion to smart pointer pointer type:
-
- s << "// Register smartpointer conversion for all derived classes\n";
- const auto classes = targetClass->typeSystemBaseClasses();
- for (auto k : classes) {
- if (smartPointerTypeEntry->matchesInstantiation(k->typeEntry())) {
- if (auto smartTargetType = findSmartPointerInstantiation(k->typeEntry())) {
- s << "// SmartPointer derived class: "
- << smartTargetType->cppSignature() << "\n";
- writePythonToCppConversionFunctions(s, smartPointerType, smartTargetType.value(), {}, {}, {});
- }
- }
- }
- }
+ if (overloadData.maxArgs() > 0)
+ return true;
+ // QObject constructors need error handling when passing properties as kwarg.
+ if (!usePySideExtensions())
+ return false;
+ auto rfunc = overloadData.referenceFunction();
+ return rfunc->functionType() == AbstractMetaFunction::ConstructorFunction
+ && isQObject(rfunc->ownerClass());
}
-void CppGenerator::writeMethodWrapperPreamble(TextStream &s,const OverloadData &overloadData,
- const GeneratorContext &context) const
+void CppGenerator::writeMethodWrapperPreamble(TextStream &s,
+ const OverloadData &overloadData,
+ const GeneratorContext &context,
+ ErrorReturn errorReturn)
{
const auto rfunc = overloadData.referenceFunction();
- const AbstractMetaClass *ownerClass = rfunc->targetLangOwner();
+ const auto ownerClass = rfunc->targetLangOwner();
Q_ASSERT(ownerClass == context.metaClass());
int minArgs = overloadData.minArgs();
int maxArgs = overloadData.maxArgs();
@@ -1827,33 +1981,31 @@ void CppGenerator::writeMethodWrapperPreamble(TextStream &s,const OverloadData &
if (rfunc->isConstructor()) {
// Check if the right constructor was called.
if (!ownerClass->hasPrivateDestructor()) {
- s << "if (Shiboken::Object::isUserType(self) && !Shiboken::ObjectType::canCallConstructor(self->ob_type, Shiboken::SbkType< ::";
+ s << "if (Shiboken::Object::isUserType(self) && "
+ << "!Shiboken::ObjectType::canCallConstructor(self->ob_type, Shiboken::SbkType< "
+ << m_gsp;
QString qualifiedCppName;
if (!context.forSmartPointer())
qualifiedCppName = ownerClass->qualifiedCppName();
else
qualifiedCppName = context.preciseType().cppSignature();
- s << qualifiedCppName << " >()))\n";
- Indentation indent(s);
- s << returnStatement(m_currentErrorCode) << '\n' << '\n';
+ s << qualifiedCppName << " >()))\n" << indent << errorReturn << outdent << '\n';
}
// Declare pointer for the underlying C++ object.
- s << "::";
- if (!context.forSmartPointer()) {
- s << (context.useWrapper() ? context.wrapperName() : ownerClass->qualifiedCppName());
- } else {
- s << context.smartPointerWrapperName();
- }
- s << " *cptr{};\n";
+ s << globalScopePrefix(context) << context.effectiveClassName() << " *cptr{};\n";
initPythonArguments = maxArgs > 0;
} else {
if (rfunc->implementingClass() &&
(!rfunc->implementingClass()->isNamespace() && overloadData.hasInstanceFunction())) {
- writeCppSelfDefinition(s, rfunc, context, overloadData.hasStaticFunction(),
- overloadData.hasClassMethod());
+ CppSelfDefinitionFlags flags;
+ if (overloadData.hasStaticFunction())
+ flags.setFlag(CppSelfDefinitionFlag::HasStaticOverload);
+ if (overloadData.hasClassMethod())
+ flags.setFlag(CppSelfDefinitionFlag::HasClassMethodOverload);
+ writeCppSelfDefinition(s, rfunc, context, errorReturn, flags);
}
if (!rfunc->isInplaceOperator() && overloadData.hasNonVoidReturnType())
s << "PyObject *" << PYTHON_RETURN_VAR << "{};\n";
@@ -1861,21 +2013,24 @@ void CppGenerator::writeMethodWrapperPreamble(TextStream &s,const OverloadData &
initPythonArguments = minArgs != maxArgs || maxArgs > 1;
}
- s << R"(Shiboken::AutoDecRef errInfo{};
-static const char *fullName = ")" << fullPythonFunctionName(rfunc, true)
- << "\";\nSBK_UNUSED(fullName)\n";
+ if (needsArgumentErrorHandling(overloadData))
+ s << "Shiboken::AutoDecRef errInfo{};\n";
+
+ s << "static const char fullName[] = \"" << fullPythonFunctionName(rfunc, true)
+ << "\";\nSBK_UNUSED(fullName)\n"
+ << "Shiboken::PythonContextMarker pcm;\n";
+ // PYSIDE-2335: Mark blocking calls like `exec` or `run` as such.
+ bool isBlockingFunction = rfunc->name() == u"exec"_s || rfunc->name() == u"exec_"_s
+ || rfunc->name() == u"run"_s;
+ if (isBlockingFunction)
+ s << "pcm.setBlocking();\n";
+
if (maxArgs > 0) {
s << "int overloadId = -1;\n"
- << "PythonToCppFunc " << PYTHON_TO_CPP_VAR;
- if (overloadData.pythonFunctionWrapperUsesListOfArguments()) {
- s << "[] = { " << NULL_PTR;
- for (int i = 1; i < maxArgs; ++i)
- s << ", " << NULL_PTR;
- s << " };\n";
- } else {
- s << "{};\n";
- }
- writeUnusedVariableCast(s, QLatin1String(PYTHON_TO_CPP_VAR));
+ << PYTHON_TO_CPPCONVERSION_STRUCT << ' ' << PYTHON_TO_CPP_VAR;
+ if (overloadData.pythonFunctionWrapperUsesListOfArguments())
+ s << '[' << maxArgs << ']';
+ s << ";\n" << sbkUnusedVariableCast(PYTHON_TO_CPP_VAR);
}
if (initPythonArguments) {
@@ -1884,7 +2039,7 @@ static const char *fullName = ")" << fullPythonFunctionName(rfunc, true)
&& !overloadData.pythonFunctionWrapperUsesListOfArguments()) {
s << "(" << PYTHON_ARG << " == 0 ? 0 : 1);\n";
} else {
- writeArgumentsInitializer(s, overloadData);
+ writeArgumentsInitializer(s, overloadData, errorReturn);
}
}
}
@@ -1892,20 +2047,23 @@ static const char *fullName = ")" << fullPythonFunctionName(rfunc, true)
void CppGenerator::writeConstructorWrapper(TextStream &s, const OverloadData &overloadData,
const GeneratorContext &classContext) const
{
- ErrorCode errorCode(-1);
+ const ErrorReturn errorReturn = ErrorReturn::MinusOne;
const auto rfunc = overloadData.referenceFunction();
- const AbstractMetaClass *metaClass = rfunc->ownerClass();
+ const auto metaClass = rfunc->ownerClass();
s << "static int\n";
s << cpythonFunctionName(rfunc)
<< "(PyObject *self, PyObject *args, PyObject *kwds)\n{\n" << indent;
+ if (overloadData.maxArgs() == 0 || metaClass->isAbstract())
+ s << sbkUnusedVariableCast("args");
+ s << sbkUnusedVariableCast("kwds");
- const bool needsMetaObject = usePySideExtensions() && metaClass->isQObject();
+ const bool needsMetaObject = usePySideExtensions() && isQObject(metaClass);
if (needsMetaObject)
s << "const QMetaObject *metaObject;\n";
- s << "SbkObject *sbkSelf = reinterpret_cast<SbkObject *>(self);\n";
+ s << "auto *sbkSelf = reinterpret_cast<SbkObject *>(self);\n";
if (metaClass->isAbstract() || metaClass->baseClassNames().size() > 1) {
s << "PyTypeObject *type = self->ob_type;\n"
@@ -1916,26 +2074,22 @@ void CppGenerator::writeConstructorWrapper(TextStream &s, const OverloadData &ov
if (metaClass->isAbstract()) {
// C++ Wrapper disabled: Abstract C++ class cannot be instantiated.
if (metaClass->typeEntry()->typeFlags().testFlag(ComplexTypeEntry::DisableWrapper)) {
- writeUnusedVariableCast(s, QStringLiteral("sbkSelf"));
- writeUnusedVariableCast(s, QStringLiteral("type"));
- writeUnusedVariableCast(s, QStringLiteral("myType"));
+ s << sbkUnusedVariableCast("sbkSelf")
+ << sbkUnusedVariableCast("type")
+ << sbkUnusedVariableCast("myType");
if (needsMetaObject)
- writeUnusedVariableCast(s, QStringLiteral("metaObject"));
- s << "PyErr_SetString(PyExc_NotImplementedError,\n" << indent
- << "\"Abstract class '" << metaClass->qualifiedCppName()
- << "' cannot be instantiated since the wrapper has been disabled.\");\n" << outdent
- << returnStatement(m_currentErrorCode) << outdent
- << "\n}\n\n";
+ s << sbkUnusedVariableCast("metaObject");
+ s << "Shiboken::Errors::setInstantiateAbstractClassDisabledWrapper(\""
+ << metaClass->qualifiedCppName() << "\");\n" << errorReturn << outdent
+ << "}\n\n";
return;
}
// Refuse to instantiate Abstract C++ class (via C++ Wrapper) unless it is
// a Python-derived class for which type != myType.
s << "if (type == myType) {\n" << indent
- << "PyErr_SetString(PyExc_NotImplementedError,\n" << indent
- << "\"'" << metaClass->qualifiedCppName()
- << "' represents a C++ abstract class and cannot be instantiated\");\n" << outdent
- << returnStatement(m_currentErrorCode) << '\n' << outdent
+ << "Shiboken::Errors::setInstantiateAbstractClass(\"" << metaClass->qualifiedCppName()
+ << "\");\n" << errorReturn << outdent
<< "}\n\n";
}
@@ -1948,29 +2102,37 @@ void CppGenerator::writeConstructorWrapper(TextStream &s, const OverloadData &ov
}
// PYSIDE-1478: Switching must also happen at object creation time.
- if (usePySideExtensions())
+ if (usePySideExtensions() && !classContext.forSmartPointer())
s << "PySide::Feature::Select(self);\n";
- writeMethodWrapperPreamble(s, overloadData, classContext);
+ writeMethodWrapperPreamble(s, overloadData, classContext, errorReturn);
s << '\n';
if (overloadData.maxArgs() > 0)
- writeOverloadedFunctionDecisor(s, overloadData);
+ writeOverloadedFunctionDecisor(s, overloadData, errorReturn);
- writeFunctionCalls(s, overloadData, classContext);
+ // Handles Python Multiple Inheritance
+ QString pre = needsMetaObject ? u"bool usesPyMI = "_s : u""_s;
+ s << "\n// PyMI support\n"
+ << pre << "Shiboken::callInheritedInit(self, args, kwds, fullName);\n"
+ << "if (" << shibokenErrorsOccurred << ")\n"
+ << indent << errorReturn << outdent << "\n";
+
+ writeFunctionCalls(s, overloadData, classContext, errorReturn);
s << '\n';
- s << "if (PyErr_Occurred() || !Shiboken::Object::setCppPointer(sbkSelf, Shiboken::SbkType< ::"
- << metaClass->qualifiedCppName() << " >(), cptr)) {\n";
- {
- Indentation indent(s);
- s << "delete cptr;\n";
- s << returnStatement(m_currentErrorCode) << '\n';
- }
- s << "}\n";
+ const QString typeName = classContext.forSmartPointer()
+ ? classContext.preciseType().cppSignature() : metaClass->qualifiedCppName();
+ s << "if (" << shibokenErrorsOccurred
+ << " || !Shiboken::Object::setCppPointer(sbkSelf, Shiboken::SbkType< "
+ << globalScopePrefix(classContext) << typeName << " >(), cptr)) {\n"
+ << indent << "delete cptr;\n" << errorReturn << outdent
+ << "}\n";
if (overloadData.maxArgs() > 0)
- s << "if (!cptr) goto " << cpythonFunctionName(rfunc) << "_TypeError;\n\n";
+ s << "if (cptr == nullptr)\n" << indent
+ << "return " << returnErrorWrongArguments(overloadData, errorReturn) << ";\n\n"
+ << outdent;
s << "Shiboken::Object::setValidCpp(sbkSelf, true);\n";
// If the created C++ object has a C++ wrapper the ownership is assigned to Python
@@ -1981,24 +2143,20 @@ void CppGenerator::writeConstructorWrapper(TextStream &s, const OverloadData &ov
s << "Shiboken::Object::setHasCppWrapper(sbkSelf, true);\n";
// Need to check if a wrapper for same pointer is already registered
// Caused by bug PYSIDE-217, where deleted objects' wrappers are not released
- s << "if (Shiboken::BindingManager::instance().hasWrapper(cptr)) {\n";
- {
- Indentation indent(s);
- s << "Shiboken::BindingManager::instance().releaseWrapper("
- "Shiboken::BindingManager::instance().retrieveWrapper(cptr));\n";
- }
- s << "}\nShiboken::BindingManager::instance().registerWrapper(sbkSelf, cptr);\n";
+ s << "if (Shiboken::BindingManager::instance().hasWrapper(cptr)) {\n" << indent
+ << "Shiboken::BindingManager::instance().releaseWrapper("
+ "Shiboken::BindingManager::instance().retrieveWrapper(cptr));\n" << outdent
+ << "}\nShiboken::BindingManager::instance().registerWrapper(sbkSelf, cptr);\n";
// Create metaObject and register signal/slot
- bool errHandlerNeeded = overloadData.maxArgs() > 0;
if (needsMetaObject) {
- errHandlerNeeded = true;
s << "\n// QObject setup\n"
<< "PySide::Signal::updateSourceObject(self);\n"
<< "metaObject = cptr->metaObject(); // <- init python qt properties\n"
<< "if (!errInfo.isNull() && PyDict_Check(errInfo.object())) {\n" << indent
- << "if (!PySide::fillQtProperties(self, metaObject, errInfo))\n" << indent
- << "goto " << cpythonFunctionName(rfunc) << "_TypeError;\n" << outdent << outdent
+ << "if (!PySide::fillQtProperties(self, metaObject, errInfo, usesPyMI))\n" << indent
+ << "return " << returnErrorWrongArguments(overloadData, errorReturn) << ";\n"
+ << outdent << outdent
<< "};\n";
}
@@ -2015,31 +2173,27 @@ void CppGenerator::writeConstructorWrapper(TextStream &s, const OverloadData &ov
}
if (hasCodeInjectionsAtEnd) {
// FIXME: C++ arguments are not available in code injection on constructor when position = end.
- s <<"switch (overloadId) {\n";
+ s << "switch (overloadId) {\n";
for (const auto &func : overloadData.overloads()) {
- Indentation indent(s);
+ s << indent;
const CodeSnipList &injectedCodeSnips = func->injectedCodeSnips();
for (const CodeSnip &cs : injectedCodeSnips) {
if (cs.position == TypeSystem::CodeSnipPositionEnd) {
s << "case " << metaClass->functions().indexOf(func) << ':' << '\n'
- << "{\n";
- {
- Indentation indent(s);
- writeCodeSnips(s, func->injectedCodeSnips(), TypeSystem::CodeSnipPositionEnd,
- TypeSystem::TargetLangCode, func,
- true /* usesPyArgs */, nullptr);
- }
- s << "}\nbreak;\n";
+ << "{\n" << indent;
+ writeCodeSnips(s, func->injectedCodeSnips(), TypeSystem::CodeSnipPositionEnd,
+ TypeSystem::TargetLangCode, func,
+ true /* usesPyArgs */, nullptr);
+ s << outdent << "}\nbreak;\n";
break;
}
}
+ s << outdent;
}
s << "}\n";
}
s << "\n\nreturn 1;\n";
- if (errHandlerNeeded)
- writeErrorSection(s, overloadData);
s<< outdent << "}\n\n";
}
@@ -2052,89 +2206,71 @@ void CppGenerator::writeMethodWrapper(TextStream &s, const OverloadData &overloa
s << "static PyObject *";
s << cpythonFunctionName(rfunc) << "(PyObject *self";
+ bool hasKwdArgs = false;
if (maxArgs > 0) {
- s << ", PyObject *" << (overloadData.pythonFunctionWrapperUsesListOfArguments() ? "args" : PYTHON_ARG);
- if (overloadData.hasArgumentWithDefaultValue() || rfunc->isCallOperator())
+ s << ", PyObject *"
+ << (overloadData.pythonFunctionWrapperUsesListOfArguments() ? u"args"_s : PYTHON_ARG);
+ hasKwdArgs = overloadData.hasArgumentWithDefaultValue() || rfunc->isCallOperator();
+ if (hasKwdArgs)
s << ", PyObject *kwds";
}
s << ")\n{\n" << indent;
+ if (rfunc->ownerClass() == nullptr || overloadData.hasStaticFunction())
+ s << sbkUnusedVariableCast(PYTHON_SELF_VAR);
+ if (hasKwdArgs)
+ s << sbkUnusedVariableCast("kwds");
writeMethodWrapperPreamble(s, overloadData, classContext);
s << '\n';
- /*
- * This code is intended for shift operations only:
- * Make sure reverse <</>> operators defined in other classes (specially from other modules)
- * are called. A proper and generic solution would require an reengineering in the operator
- * system like the extended converters.
- *
- * Solves #119 - QDataStream <</>> operators not working for QPixmap
- * http://bugs.openbossa.org/show_bug.cgi?id=119
- */
- bool hasReturnValue = overloadData.hasNonVoidReturnType();
- bool callExtendedReverseOperator = hasReturnValue
- && !rfunc->isInplaceOperator()
- && !rfunc->isCallOperator()
- && rfunc->isOperatorOverload();
-
- QScopedPointer<Indentation> reverseIndent;
-
- if (callExtendedReverseOperator) {
- QString revOpName = ShibokenGenerator::pythonOperatorFunctionName(rfunc).insert(2, QLatin1Char('r'));
+ // This code is intended for shift operations only: Make sure reverse <</>>
+ // operators defined in other classes (specially from other modules)
+ // are called. A proper and generic solution would require an reengineering
+ // in the operator system like the extended converters.
+ // Solves #119 - QDataStream <</>> operators not working for QPixmap.
+ const bool hasReturnValue = overloadData.hasNonVoidReturnType();
+
+ if (hasReturnValue && rfunc->functionType() == AbstractMetaFunction::ShiftOperator
+ && rfunc->isBinaryOperator()) {
// For custom classes, operations like __radd__ and __rmul__
// will enter an infinite loop.
- if (rfunc->isBinaryOperator() && revOpName.contains(QLatin1String("shift"))) {
- s << "Shiboken::AutoDecRef attrName(Py_BuildValue(\"s\", \"" << revOpName << "\"));\n";
- s << "if (!isReverse\n";
- {
- Indentation indent(s);
- s << "&& Shiboken::Object::checkType(" << PYTHON_ARG << ")\n"
- << "&& !PyObject_TypeCheck(" << PYTHON_ARG << ", self->ob_type)\n"
- << "&& PyObject_HasAttr(" << PYTHON_ARG << ", attrName)) {\n";
-
- // This PyObject_CallMethod call will emit lots of warnings like
- // "deprecated conversion from string constant to char *" during compilation
- // due to the method name argument being declared as "char *" instead of "const char *"
- // issue 6952 http://bugs.python.org/issue6952
- s << "PyObject *revOpMethod = PyObject_GetAttr(" << PYTHON_ARG << ", attrName);\n";
- s << "if (revOpMethod && PyCallable_Check(revOpMethod)) {\n";
- {
- Indentation indent(s);
- s << PYTHON_RETURN_VAR << " = PyObject_CallFunction(revOpMethod, \"O\", self);\n"
- << "if (PyErr_Occurred() && (PyErr_ExceptionMatches(PyExc_NotImplementedError)"
- << " || PyErr_ExceptionMatches(PyExc_AttributeError))) {\n";
- {
- Indentation indent(s);
- s << "PyErr_Clear();\n"
- << "Py_XDECREF(" << PYTHON_RETURN_VAR << ");\n"
- << PYTHON_RETURN_VAR << " = " << NULL_PTR << ";\n";
- }
- s << "}\n";
- }
- s << "}\n"
- << "Py_XDECREF(revOpMethod);\n\n";
- } //
- s << "}\n\n"
- << "// Do not enter here if other object has implemented a reverse operator.\n"
- << "if (!" << PYTHON_RETURN_VAR << ") {\n";
- reverseIndent.reset(new Indentation(s));
- } // binary shift operator
- }
-
- if (maxArgs > 0)
- writeOverloadedFunctionDecisor(s, overloadData);
-
- writeFunctionCalls(s, overloadData, classContext);
-
- if (!reverseIndent.isNull()) { // binary shift operator
- reverseIndent.reset();
- s << '\n' << "} // End of \"if (!" << PYTHON_RETURN_VAR << ")\"\n";
+ const QString pythonOp = ShibokenGenerator::pythonOperatorFunctionName(rfunc);
+ s << "static PyObject *attrName = Shiboken::PyMagicName::r"
+ << pythonOp.mid(2, pythonOp.size() -4) << "();\n" // Strip __
+ << "if (!isReverse\n" << indent
+ << "&& Shiboken::Object::checkType(" << PYTHON_ARG << ")\n"
+ << "&& !PyObject_TypeCheck(" << PYTHON_ARG << ", self->ob_type)\n"
+ << "&& PyObject_HasAttr(" << PYTHON_ARG << ", attrName)) {\n"
+ << "PyObject *revOpMethod = PyObject_GetAttr(" << PYTHON_ARG << ", attrName);\n"
+ << "if (revOpMethod && PyCallable_Check(revOpMethod)) {\n" << indent
+ << PYTHON_RETURN_VAR << " = PyObject_CallFunction(revOpMethod, \"O\", self);\n"
+ << "if (" << shibokenErrorsOccurred
+ << " && (PyErr_ExceptionMatches(PyExc_NotImplementedError)"
+ << " || PyErr_ExceptionMatches(PyExc_AttributeError))) {\n" << indent
+ << "PyErr_Clear();\n"
+ << "Py_XDECREF(" << PYTHON_RETURN_VAR << ");\n"
+ << PYTHON_RETURN_VAR << " = " << NULL_PTR << ";\n"
+ << outdent << "}\n"
+ << outdent << "}\n"
+ << "Py_XDECREF(revOpMethod);\n\n"
+ << outdent << "}\n\n"
+ << "// Do not enter here if other object has implemented a reverse operator.\n"
+ << "if (" << PYTHON_RETURN_VAR << " == nullptr) {\n" << indent;
+ if (maxArgs > 0)
+ writeOverloadedFunctionDecisor(s, overloadData, ErrorReturn::Default);
+ writeFunctionCalls(s, overloadData, classContext, ErrorReturn::Default);
+ s << outdent << '\n' << "} // End of \"if (!" << PYTHON_RETURN_VAR << ")\"\n";
+ } else { // binary shift operator
+ if (maxArgs > 0)
+ writeOverloadedFunctionDecisor(s, overloadData, ErrorReturn::Default);
+ writeFunctionCalls(s, overloadData, classContext, ErrorReturn::Default);
}
s << '\n';
- writeFunctionReturnErrorCheckSection(s, hasReturnValue && !rfunc->isInplaceOperator());
+ writeFunctionReturnErrorCheckSection(s, ErrorReturn::Default,
+ hasReturnValue && !rfunc->isInplaceOperator());
if (hasReturnValue) {
if (rfunc->isInplaceOperator()) {
@@ -2146,24 +2282,21 @@ void CppGenerator::writeMethodWrapper(TextStream &s, const OverloadData &overloa
s << "Py_RETURN_NONE;\n";
}
- if (maxArgs > 0)
- writeErrorSection(s, overloadData);
-
s<< outdent << "}\n\n";
}
-void CppGenerator::writeArgumentsInitializer(TextStream &s, const OverloadData &overloadData)
+void CppGenerator::writeArgumentsInitializer(TextStream &s, const OverloadData &overloadData,
+ ErrorReturn errorReturn)
{
const auto rfunc = overloadData.referenceFunction();
- s << "PyTuple_GET_SIZE(args);\n";
- writeUnusedVariableCast(s, QLatin1String("numArgs"));
+ s << "PyTuple_GET_SIZE(args);\n" << sbkUnusedVariableCast("numArgs");
int minArgs = overloadData.minArgs();
int maxArgs = overloadData.maxArgs();
s << "PyObject *";
s << PYTHON_ARGS << "[] = {"
- << QString(maxArgs, QLatin1Char('0')).split(QLatin1String(""), Qt::SkipEmptyParts).join(QLatin1String(", "))
+ << QByteArrayList(maxArgs, "nullptr").join(", ")
<< "};\n\n";
if (overloadData.hasVarargs()) {
@@ -2182,47 +2315,34 @@ void CppGenerator::writeArgumentsInitializer(TextStream &s, const OverloadData &
bool usesNamedArguments = overloadData.hasArgumentWithDefaultValue();
s << "// invalid argument lengths\n";
- bool ownerClassIsQObject = rfunc->ownerClass() && rfunc->ownerClass()->isQObject() && rfunc->isConstructor();
- if (usesNamedArguments) {
- if (!ownerClassIsQObject) {
- s << "if (numArgs > " << maxArgs << ") {\n";
- {
- Indentation indent(s);
- s << "static PyObject *const too_many = "
- "Shiboken::String::createStaticString(\">\");\n"
- << "errInfo.reset(too_many);\n"
- << "Py_INCREF(errInfo.object());\n"
- << "goto " << cpythonFunctionName(rfunc) << "_TypeError;\n";
- }
- s << '}';
- }
- if (minArgs > 0) {
- if (!ownerClassIsQObject)
- s << " else ";
- s << "if (numArgs < " << minArgs << ") {\n";
- {
- Indentation indent(s);
- s << "static PyObject *const too_few = "
- "Shiboken::String::createStaticString(\"<\");\n"
- << "errInfo.reset(too_few);\n"
- << "Py_INCREF(errInfo.object());\n"
- << "goto " << cpythonFunctionName(rfunc) << "_TypeError;\n";
- }
- s << '}';
- }
+
+ // Disable argument count checks for QObject constructors to allow for
+ // passing properties as KW args.
+ const auto owner = rfunc->ownerClass();
+ bool isQObjectConstructor = owner && isQObject(owner)
+ && rfunc->functionType() == AbstractMetaFunction::ConstructorFunction;
+
+ if (usesNamedArguments && !isQObjectConstructor) {
+ s << "errInfo.reset(Shiboken::checkInvalidArgumentCount(numArgs, "
+ << minArgs << ", " << maxArgs << "));\n"
+ << "if (!errInfo.isNull())\n" << indent
+ << "return " << returnErrorWrongArguments(overloadData, errorReturn) << ";\n"
+ << outdent;
}
+
const QList<int> invalidArgsLength = overloadData.invalidArgumentLengths();
if (!invalidArgsLength.isEmpty()) {
- QStringList invArgsLen;
- for (int i : qAsConst(invalidArgsLength))
- invArgsLen << u"numArgs == "_qs + QString::number(i);
- if (usesNamedArguments && (!ownerClassIsQObject || minArgs > 0))
- s << " else ";
- s << "if (" << invArgsLen.join(QLatin1String(" || ")) << ")\n";
- Indentation indent(s);
- s << "goto " << cpythonFunctionName(rfunc) << "_TypeError;";
+ s << "if (";
+ for (qsizetype i = 0, size = invalidArgsLength.size(); i < size; ++i) {
+ if (i)
+ s << " || ";
+ s << "numArgs == " << invalidArgsLength.at(i);
+ }
+ s << ")\n" << indent
+ << "return " << returnErrorWrongArguments(overloadData, errorReturn) << ";\n"
+ << outdent;
}
- s << "\n\n";
+ s << '\n';
QString funcName;
if (rfunc->isOperatorOverload())
@@ -2230,8 +2350,8 @@ void CppGenerator::writeArgumentsInitializer(TextStream &s, const OverloadData &
else
funcName = rfunc->name();
- QString argsVar = overloadData.hasVarargs() ? QLatin1String("nonvarargs") : QLatin1String("args");
- s << "if (!";
+ QString argsVar = overloadData.hasVarargs() ? u"nonvarargs"_s : u"args"_s;
+ s << "if (";
if (usesNamedArguments) {
s << "PyArg_ParseTuple(" << argsVar << ", \"|" << QByteArray(maxArgs, 'O')
<< ':' << funcName << '"';
@@ -2241,190 +2361,187 @@ void CppGenerator::writeArgumentsInitializer(TextStream &s, const OverloadData &
}
for (int i = 0; i < maxArgs; i++)
s << ", &(" << PYTHON_ARGS << '[' << i << "])";
- s << "))\n";
- {
- Indentation indent(s);
- s << returnStatement(m_currentErrorCode) << '\n';
- }
- s << '\n';
+ s << ") == 0)\n" << indent << errorReturn << outdent << '\n';
}
void CppGenerator::writeCppSelfConversion(TextStream &s, const GeneratorContext &context,
const QString &className, bool useWrapperClass)
{
- static const QString pythonSelfVar = QLatin1String("self");
+ if (context.forSmartPointer()) {
+ writeSmartPointerCppSelfConversion(s, context);
+ return;
+ }
+
if (useWrapperClass)
s << "static_cast<" << className << " *>(";
- if (!context.forSmartPointer())
- s << cpythonWrapperCPtr(context.metaClass(), pythonSelfVar);
- else
- s << cpythonWrapperCPtr(context.preciseType(), pythonSelfVar);
+ s << cpythonWrapperCPtr(context.metaClass(), PYTHON_SELF_VAR);
if (useWrapperClass)
s << ')';
}
+void CppGenerator::writeCppSelfVarDef(TextStream &s,
+ CppSelfDefinitionFlags flags)
+{
+ if (flags.testFlag(CppGenerator::CppSelfAsReference))
+ s << "auto &" << CPP_SELF_VAR << " = *";
+ else
+ s << "auto *" << CPP_SELF_VAR << " = ";
+}
+
void CppGenerator::writeCppSelfDefinition(TextStream &s,
const GeneratorContext &context,
- bool hasStaticOverload,
- bool hasClassMethodOverload,
- bool cppSelfAsReference) const
+ ErrorReturn errorReturn,
+ CppSelfDefinitionFlags flags)
{
- Q_ASSERT(!(cppSelfAsReference && hasStaticOverload));
+ Q_ASSERT(!(flags.testFlag(CppSelfAsReference) && flags.testFlag(HasStaticOverload)));
+ if (context.forSmartPointer()) {
+ writeSmartPointerCppSelfDefinition(s, context, errorReturn, flags);
+ return;
+ }
- const AbstractMetaClass *metaClass = context.metaClass();
+ AbstractMetaClassCPtr metaClass = context.metaClass();
const auto cppWrapper = context.metaClass()->cppWrapper();
// In the Python method, use the wrapper to access the protected
// functions.
const bool useWrapperClass = avoidProtectedHack()
&& cppWrapper.testFlag(AbstractMetaClass::CppProtectedHackWrapper);
Q_ASSERT(!useWrapperClass || context.useWrapper());
- QString className;
- if (!context.forSmartPointer()) {
- className = useWrapperClass
- ? context.wrapperName()
- : (QLatin1String("::") + metaClass->qualifiedCppName());
- } else {
- className = context.smartPointerWrapperName();
- }
+ const QString className = useWrapperClass
+ ? context.wrapperName() : getFullTypeName(metaClass);
- writeInvalidPyObjectCheck(s, QLatin1String("self"));
+ writeInvalidPyObjectCheck(s, PYTHON_SELF_VAR, errorReturn);
- if (cppSelfAsReference) {
- s << "auto &" << CPP_SELF_VAR << " = *";
+ if (flags.testFlag(CppSelfAsReference)) {
+ writeCppSelfVarDef(s, flags);
writeCppSelfConversion(s, context, className, useWrapperClass);
s << ";\n";
return;
}
- if (!hasStaticOverload) {
- if (!hasClassMethodOverload) {
+ if (!flags.testFlag(HasStaticOverload)) {
+ if (!flags.testFlag(HasClassMethodOverload)) {
// PYSIDE-131: The single case of a class method for now: tr().
- s << "auto " << CPP_SELF_VAR << " = ";
+ writeCppSelfVarDef(s, flags);
writeCppSelfConversion(s, context, className, useWrapperClass);
- s << ";\n";
- writeUnusedVariableCast(s, QLatin1String(CPP_SELF_VAR));
+ s << ";\n" << sbkUnusedVariableCast(CPP_SELF_VAR);
}
return;
}
- s << className << " *" << CPP_SELF_VAR << " = nullptr;\n";
- writeUnusedVariableCast(s, QLatin1String(CPP_SELF_VAR));
+ s << className << " *" << CPP_SELF_VAR << " = nullptr;\n"
+ << sbkUnusedVariableCast(CPP_SELF_VAR);
// Checks if the underlying C++ object is valid.
- s << "if (self)\n";
- {
- Indentation indent(s);
- s << CPP_SELF_VAR << " = ";
- writeCppSelfConversion(s, context, className, useWrapperClass);
- s << ";\n";
- }
+ s << "if (self)\n" << indent
+ << CPP_SELF_VAR << " = ";
+ writeCppSelfConversion(s, context, className, useWrapperClass);
+ s << ";\n"<< outdent;
}
void CppGenerator::writeCppSelfDefinition(TextStream &s,
const AbstractMetaFunctionCPtr &func,
const GeneratorContext &context,
- bool hasStaticOverload,
- bool hasClassMethodOverload) const
+ ErrorReturn errorReturn,
+ CppSelfDefinitionFlags flags)
{
if (!func->ownerClass() || func->isConstructor())
return;
if (func->isOperatorOverload() && func->isBinaryOperator()) {
QString checkFunc = cpythonCheckFunction(func->ownerClass()->typeEntry());
- s << "bool isReverse = " << checkFunc << PYTHON_ARG << ")\n";
- {
- Indentation indent1(s, 4);
- s << "&& !" << checkFunc << "self);\n";
- }
- s << "if (isReverse)\n";
- Indentation indent(s);
- s << "std::swap(self, " << PYTHON_ARG << ");\n";
+ s << "bool isReverse = " << checkFunc << PYTHON_ARG << ")\n"
+ << " && !" << checkFunc << "self);\n"
+ << "if (isReverse)\n" << indent
+ << "std::swap(self, " << PYTHON_ARG << ");\n" << outdent;
}
- writeCppSelfDefinition(s, context, hasStaticOverload, hasClassMethodOverload);
+ writeCppSelfDefinition(s, context, errorReturn, flags);
}
-void CppGenerator::writeErrorSection(TextStream &s, const OverloadData &overloadData)
+QString CppGenerator::returnErrorWrongArguments(const OverloadData &overloadData,
+ ErrorReturn errorReturn)
{
const auto rfunc = overloadData.referenceFunction();
- s << '\n' << cpythonFunctionName(rfunc) << "_TypeError:\n";
- Indentation indentation(s);
QString argsVar = overloadData.pythonFunctionWrapperUsesListOfArguments()
- ? QLatin1String("args") : QLatin1String(PYTHON_ARG);
- s << "Shiboken::setErrorAboutWrongArguments(" << argsVar << ", fullName, errInfo);\n"
- << "return " << m_currentErrorCode << ";\n";
+ ? u"args"_s : PYTHON_ARG;
+ switch (errorReturn) {
+ case ErrorReturn::Default:
+ return u"Shiboken::returnWrongArguments("_s + argsVar + u", fullName, errInfo)"_s;
+ case ErrorReturn::Zero:
+ return u"Shiboken::returnWrongArguments_Zero("_s + argsVar + u", fullName, errInfo)"_s;
+ case ErrorReturn::MinusOne:
+ return u"Shiboken::returnWrongArguments_MinusOne("_s + argsVar + u", fullName, errInfo)"_s;
+ case ErrorReturn::Void:
+ Q_ASSERT(false);
+ }
+ return {};
}
-void CppGenerator::writeFunctionReturnErrorCheckSection(TextStream &s, bool hasReturnValue)
+void CppGenerator::writeFunctionReturnErrorCheckSection(TextStream &s,
+ ErrorReturn errorReturn,
+ bool hasReturnValue)
{
- s << "if (PyErr_Occurred()";
+ s << "if (" << shibokenErrorsOccurred;
if (hasReturnValue)
- s << " || !" << PYTHON_RETURN_VAR;
- s << ") {\n";
- {
- Indentation indent(s);
- if (hasReturnValue)
- s << "Py_XDECREF(" << PYTHON_RETURN_VAR << ");\n";
- s << returnStatement(m_currentErrorCode) << '\n';
- }
- s << "}\n";
+ s << " || " << PYTHON_RETURN_VAR << " == nullptr";
+ s << ") {\n" << indent;
+ if (hasReturnValue)
+ s << "Py_XDECREF(" << PYTHON_RETURN_VAR << ");\n";
+ s << errorReturn << outdent << "}\n";
}
-void CppGenerator::writeInvalidPyObjectCheck(TextStream &s, const QString &pyObj)
+void CppGenerator::writeInvalidPyObjectCheck(TextStream &s, const QString &pyObj,
+ ErrorReturn errorReturn)
{
- s << "if (!Shiboken::Object::isValid(" << pyObj << "))\n";
- Indentation indent(s);
- s << returnStatement(m_currentErrorCode) << '\n';
+ s << "if (!Shiboken::Object::isValid(" << pyObj << "))\n"
+ << indent << errorReturn << outdent;
}
static QString pythonToCppConverterForArgumentName(const QString &argumentName)
{
- static const QRegularExpression pyArgsRegex(QLatin1String(PYTHON_ARGS)
- + QLatin1String(R"((\[\d+[-]?\d*\]))"));
+ static const QRegularExpression pyArgsRegex(PYTHON_ARGS
+ + uR"((\[\d+[-]?\d*\]))"_s);
Q_ASSERT(pyArgsRegex.isValid());
const QRegularExpressionMatch match = pyArgsRegex.match(argumentName);
- QString result = QLatin1String(PYTHON_TO_CPP_VAR);
+ QString result = PYTHON_TO_CPP_VAR;
if (match.hasMatch())
result += match.captured(1);
return result;
}
-void CppGenerator::writeTypeCheck(TextStream &s, AbstractMetaType argType,
- const QString &argumentName, bool isNumber,
- const QString &customType, bool rejectNull) const
+void CppGenerator::writeTypeCheck(TextStream &s, const QString &customType,
+ const QString &argumentName)
{
- QString customCheck;
- if (!customType.isEmpty()) {
- AbstractMetaType metaType;
- // PYSIDE-795: Note: XML-Overrides are handled in this shibokengenerator function!
- // This enables iterables for QMatrix4x4 for instance.
- auto customCheckResult = guessCPythonCheckFunction(customType);
- customCheck = customCheckResult.checkFunction;
- if (customCheckResult.type.has_value())
- argType = customCheckResult.type.value();
- }
+ QString errorMessage;
+ const auto metaTypeOpt = AbstractMetaType::fromString(customType, &errorMessage);
+ if (!metaTypeOpt.has_value())
+ throw Exception(errorMessage);
+ writeTypeCheck(s, metaTypeOpt.value(), argumentName,
+ ShibokenGenerator::isNumber(metaTypeOpt.value()));
+}
+void CppGenerator::writeTypeCheck(TextStream &s, const AbstractMetaType &argType,
+ const QString &argumentName, bool isNumber,
+ bool rejectNull)
+{
// TODO-CONVERTER: merge this with the code below.
- QString typeCheck;
- if (customCheck.isEmpty())
- typeCheck = cpythonIsConvertibleFunction(argType);
- else
- typeCheck = customCheck;
- typeCheck.append(u'(' +argumentName + u')');
+ QString typeCheck = cpythonIsConvertibleFunction(argType);
+ if (typeCheck != u"true") // For PyObject, which is always true
+ typeCheck.append(u'(' +argumentName + u')');
// TODO-CONVERTER -----------------------------------------------------------------------
- if (customCheck.isEmpty() && !argType.typeEntry()->isCustom()) {
+ if (!argType.typeEntry()->isCustom()) {
typeCheck = u'(' + pythonToCppConverterForArgumentName(argumentName)
- + u" = "_qs + typeCheck + u"))"_qs;
- if (!isNumber && argType.typeEntry()->isCppPrimitive()) {
+ + u" = "_s + typeCheck + u"))"_s;
+ if (!isNumber && isCppPrimitive(argType.typeEntry())) {
typeCheck.prepend(cpythonCheckFunction(argType) + u'('
- + argumentName + u") && "_qs);
+ + argumentName + u") && "_s);
}
}
// TODO-CONVERTER -----------------------------------------------------------------------
if (rejectNull)
- typeCheck = u'(' + argumentName + u" != Py_None && "_qs + typeCheck + u')';
+ typeCheck = u'(' + argumentName + u" != Py_None && "_s + typeCheck + u')';
s << typeCheck;
}
@@ -2432,14 +2549,20 @@ void CppGenerator::writeTypeCheck(TextStream &s, AbstractMetaType argType,
static void checkTypeViability(const AbstractMetaFunctionCPtr &func,
const AbstractMetaType &type, int argIdx)
{
+ const bool modified = argIdx == 0
+ ? func->isTypeModified()
+ : func->arguments().at(argIdx -1).isTypeModified();
+ const bool isRemoved = argIdx == 0
+ ? func->argumentRemoved(0)
+ : func->arguments().at(argIdx -1).isModifiedRemoved();
if (type.isVoid()
|| !type.typeEntry()->isPrimitive()
|| type.indirections() == 0
|| (type.indirections() == 1 && type.typeUsagePattern() == AbstractMetaType::NativePointerAsArrayPattern)
|| type.isCString()
- || func->argumentRemoved(argIdx)
- || !func->typeReplaced(argIdx).isEmpty()
- || !func->conversionRule(TypeSystem::All, argIdx).isEmpty()
+ || isRemoved
+ || modified
+ || func->hasConversionRule(TypeSystem::All, argIdx)
|| func->hasInjectedCode())
return;
QString message;
@@ -2463,20 +2586,20 @@ static void checkTypeViability(const AbstractMetaFunctionCPtr &func)
if (func->isUserAdded())
return;
checkTypeViability(func, func->type(), 0);
- for (int i = 0; i < func->arguments().count(); ++i)
- checkTypeViability(func, func->arguments().at(i).type(), i + 1);
+ for (qsizetype i = 0; i < func->arguments().size(); ++i)
+ checkTypeViability(func, func->arguments().at(i).type(), int(i + 1));
}
void CppGenerator::writeTypeCheck(TextStream &s,
- const QSharedPointer<OverloadDataNode> &overloadData,
- const QString &argumentName) const
+ const std::shared_ptr<OverloadDataNode> &overloadData,
+ const QString &argumentName)
{
- QSet<const TypeEntry *> numericTypes;
+ QSet<TypeEntryCPtr> numericTypes;
const OverloadDataList &siblings = overloadData->parent()->children();
for (const auto &sibling : siblings) {
for (const auto &func : sibling->overloads()) {
checkTypeViability(func);
- const AbstractMetaType &argType = sibling->argument(func)->type();
+ const AbstractMetaType &argType = sibling->overloadArgument(func)->type();
if (!argType.isPrimitive())
continue;
if (ShibokenGenerator::isNumber(argType.typeEntry()))
@@ -2486,30 +2609,33 @@ void CppGenerator::writeTypeCheck(TextStream &s,
// This condition trusts that the OverloadData object will arrange for
// PyLong type to come after the more precise numeric types (e.g. float and bool)
- AbstractMetaType argType = overloadData->argType();
+ AbstractMetaType argType = overloadData->modifiedArgType();
if (auto viewOn = argType.viewOn())
argType = *viewOn;
- bool numberType = numericTypes.count() == 1 || ShibokenGenerator::isPyInt(argType);
- QString customType = (overloadData->hasArgumentTypeReplace() ? overloadData->argumentTypeReplaced() : QString());
+ const bool numberType = numericTypes.size() == 1 || ShibokenGenerator::isPyInt(argType);
bool rejectNull =
shouldRejectNullPointerArgument(overloadData->referenceFunction(), overloadData->argPos());
- writeTypeCheck(s, argType, argumentName, numberType, customType, rejectNull);
+ writeTypeCheck(s, argType, argumentName, numberType, rejectNull);
}
-void CppGenerator::writeArgumentConversion(TextStream &s,
- const AbstractMetaType &argType,
- const QString &argName, const QString &pyArgName,
- const AbstractMetaClass *context,
- const QString &defaultValue,
- bool castArgumentAsUnused) const
+qsizetype CppGenerator::writeArgumentConversion(TextStream &s,
+ const AbstractMetaType &argType,
+ const QString &argName,
+ const QString &pyArgName,
+ ErrorReturn errorReturn,
+ const AbstractMetaClassCPtr &context,
+ const QString &defaultValue,
+ bool castArgumentAsUnused) const
{
+ qsizetype result = 0;
if (argType.typeEntry()->isCustom() || argType.typeEntry()->isVarargs())
- return;
+ return result;
if (argType.isWrapperType())
- writeInvalidPyObjectCheck(s, pyArgName);
- writePythonToCppTypeConversion(s, argType, pyArgName, argName, context, defaultValue);
+ writeInvalidPyObjectCheck(s, pyArgName, errorReturn);
+ result = writePythonToCppTypeConversion(s, argType, pyArgName, argName, context, defaultValue);
if (castArgumentAsUnused)
- writeUnusedVariableCast(s, argName);
+ s << sbkUnusedVariableCast(argName);
+ return result;
}
AbstractMetaType
@@ -2521,31 +2647,22 @@ AbstractMetaType
return {};
}
- QString typeReplaced = func->typeReplaced(index + 1);
- if (typeReplaced.isEmpty()) {
- auto argType = func->arguments().at(index).type();
- return argType.viewOn() ? *argType.viewOn() : argType;
- }
-
- auto argType = AbstractMetaType::fromString(typeReplaced);
- if (!argType.has_value())
- throw Exception(msgUnknownTypeInArgumentTypeReplacement(typeReplaced, func.data()));
- return argType.value();
+ auto argType = func->arguments().at(index).modifiedType();
+ return argType.viewOn() ? *argType.viewOn() : argType;
}
static inline QString arrayHandleType(const AbstractMetaTypeList &nestedArrayTypes)
{
switch (nestedArrayTypes.size()) {
case 1:
- return QStringLiteral("Shiboken::Conversions::ArrayHandle<")
- + nestedArrayTypes.constLast().minimalSignature()
- + QLatin1Char('>');
+ return "Shiboken::Conversions::ArrayHandle<"_L1
+ + nestedArrayTypes.constLast().minimalSignature() + u'>';
case 2:
- return QStringLiteral("Shiboken::Conversions::Array2Handle<")
+ return "Shiboken::Conversions::Array2Handle<"_L1
+ nestedArrayTypes.constLast().minimalSignature()
- + QStringLiteral(", ")
+ + ", "_L1
+ QString::number(nestedArrayTypes.constFirst().arrayElementCount())
- + QLatin1Char('>');
+ + u'>';
}
return QString();
}
@@ -2578,66 +2695,52 @@ static void writeMinimalConstructorExpression(TextStream &s,
s << '(' << defaultValue << ')';
}
-void CppGenerator::writePythonToCppTypeConversion(TextStream &s,
+qsizetype CppGenerator::writePythonToCppTypeConversion(TextStream &s,
const AbstractMetaType &type,
const QString &pyIn,
const QString &cppOut,
- const AbstractMetaClass *context,
+ const AbstractMetaClassCPtr &context,
const QString &defaultValue) const
{
- const TypeEntry *typeEntry = type.typeEntry();
+ TypeEntryCPtr typeEntry = type.typeEntry();
if (typeEntry->isCustom() || typeEntry->isVarargs())
- return;
+ return 0;
- QString cppOutAux = cppOut + QLatin1String("_local");
-
- const bool isPrimitive = typeEntry->isPrimitive();
- const bool isEnum = typeEntry->isEnum();
- const bool isFlags = typeEntry->isFlags();
- const bool treatAsPointer = type.valueTypeWithCopyConstructorOnlyPassed();
- bool isPointerOrObjectType = (type.isObjectType() || type.isPointer())
- && !type.isUserPrimitive() && !type.isExtendedCppPrimitive()
- && !isEnum && !isFlags;
- const bool isNotContainerEnumOrFlags = !typeEntry->isContainer()
- && !isEnum && !isFlags;
- const bool mayHaveImplicitConversion = type.referenceType() == LValueReference
- && !type.isUserPrimitive()
- && !type.isExtendedCppPrimitive()
- && isNotContainerEnumOrFlags
- && !(treatAsPointer || isPointerOrObjectType);
-
- // For implicit conversions or containers, either value or pointer conversion
- // may occur. An implicit conversion uses value conversion whereas the object
- // itself uses pointer conversion.
- const bool valueOrPointer = mayHaveImplicitConversion;
-
- const AbstractMetaTypeList &nestedArrayTypes = type.nestedArrayTypes();
- const bool isCppPrimitiveArray = !nestedArrayTypes.isEmpty()
- && nestedArrayTypes.constLast().isCppPrimitive();
- QString typeName = isCppPrimitiveArray
- ? arrayHandleType(nestedArrayTypes)
- : getFullTypeNameWithoutModifiers(type);
+ const auto arg = GeneratorArgument::fromMetaType(type);
+ const bool isPrimitive = arg.type == GeneratorArgument::Type::Primitive;
+
+ QString cppOutAux = cppOut + u"_local"_s;
+
+ QString typeName = arg.type == GeneratorArgument::Type::CppPrimitiveArray
+ ? arrayHandleType(type.nestedArrayTypes())
+ : getFullTypeNameWithoutModifiers(type);
bool isProtectedEnum = false;
- if (isEnum && avoidProtectedHack()) {
+ if (arg.type == GeneratorArgument::Type::Enum && avoidProtectedHack()) {
auto metaEnum = api().findAbstractMetaEnum(type.typeEntry());
if (metaEnum.has_value() && metaEnum->isProtected()) {
- typeName = wrapperName(context) + QLatin1String("::")
+ typeName = wrapperName(context) + u"::"_s
+ metaEnum.value().name();
isProtectedEnum = true;
}
}
s << typeName;
- if (isCppPrimitiveArray) {
+ switch (arg.conversion) {
+ case GeneratorArgument::Conversion::CppPrimitiveArray:
s << ' ' << cppOut;
- } else if (valueOrPointer) {
+ break;
+ case GeneratorArgument::Conversion::ValueOrPointer: {
// Generate either value conversion for &cppOutAux or pointer
// conversion for &cppOut
s << ' ' << cppOutAux;
- writeMinimalConstructorExpression(s, api(), type, isPrimitive, defaultValue);
+ // No default value for containers which can also be passed by pointer.
+ if (arg.type != GeneratorArgument::Type::Container || type.indirections() == 0)
+ writeMinimalConstructorExpression(s, api(), type, isPrimitive, defaultValue);
s << ";\n" << typeName << " *" << cppOut << " = &" << cppOutAux;
- } else if (treatAsPointer || isPointerOrObjectType) {
+ }
+ break;
+ case GeneratorArgument::Conversion::Pointer: {
s << " *" << cppOut;
if (!defaultValue.isEmpty()) {
const bool needsConstCast = !isNullPtr(defaultValue)
@@ -2650,7 +2753,9 @@ void CppGenerator::writePythonToCppTypeConversion(TextStream &s,
if (needsConstCast)
s << ')';
}
- } else {
+ }
+ break;
+ case GeneratorArgument::Conversion::Default:
s << ' ' << cppOut;
if (isProtectedEnum && avoidProtectedHack()) {
s << " = ";
@@ -2658,19 +2763,22 @@ void CppGenerator::writePythonToCppTypeConversion(TextStream &s,
s << "{}";
else
s << defaultValue;
- } else if (type.isUserPrimitive() || isEnum || isFlags) {
+ } else if (type.isUserPrimitive()
+ || arg.type == GeneratorArgument::Type::Enum
+ || arg.type == GeneratorArgument::Type::Flags) {
writeMinimalConstructorExpression(s, api(), typeEntry, isPrimitive, defaultValue);
- } else if (!type.isContainer() && !type.isSmartPointer()) {
+ } else if ((!type.isContainer() || type.indirections() == 0) && !type.isSmartPointer()) {
writeMinimalConstructorExpression(s, api(), type, isPrimitive, defaultValue);
}
+ break;
}
s << ";\n";
QString pythonToCppFunc = pythonToCppConverterForArgumentName(pyIn);
- QString pythonToCppCall = pythonToCppFunc + u'(' + pyIn + u", &"_qs
+ QString pythonToCppCall = pythonToCppFunc + u'(' + pyIn + u", &"_s
+ cppOut + u')';
- if (!mayHaveImplicitConversion) {
+ if (arg.conversion != GeneratorArgument::Conversion::ValueOrPointer) {
// pythonToCppFunc may be 0 when less parameters are passed and
// the defaultValue takes effect.
if (!defaultValue.isEmpty())
@@ -2678,7 +2786,7 @@ void CppGenerator::writePythonToCppTypeConversion(TextStream &s,
s << pythonToCppCall << ";\n";
if (!defaultValue.isEmpty())
s << outdent;
- return;
+ return arg.indirections;
}
// pythonToCppFunc may be 0 when less parameters are passed and
@@ -2686,8 +2794,7 @@ void CppGenerator::writePythonToCppTypeConversion(TextStream &s,
if (!defaultValue.isEmpty())
s << "if (" << pythonToCppFunc << ") {\n" << indent;
- s << "if (Shiboken::Conversions::isImplicitConversion(reinterpret_cast<PyTypeObject *>("
- << cpythonTypeNameExt(type) << "), " << pythonToCppFunc << "))\n"
+ s << "if (" << pythonToCppFunc << ".isValue())\n"
<< indent << pythonToCppFunc << '(' << pyIn << ", &" << cppOutAux << ");\n"
<< outdent << "else\n" << indent
<< pythonToCppCall << ";\n" << outdent;
@@ -2696,6 +2803,8 @@ void CppGenerator::writePythonToCppTypeConversion(TextStream &s,
s << '\n';
else
s << "}\n" << outdent;
+
+ return arg.indirections;
}
static void addConversionRuleCodeSnippet(CodeSnipList &snippetList, QString &rule,
@@ -2707,10 +2816,10 @@ static void addConversionRuleCodeSnippet(CodeSnipList &snippetList, QString &rul
if (rule.isEmpty())
return;
if (snippetLanguage == TypeSystem::TargetLangCode) {
- rule.replace(QLatin1String("%in"), inputName);
- rule.replace(QLatin1String("%out"), outputName + QLatin1String("_out"));
+ rule.replace(u"%in"_s, inputName);
+ rule.replace(u"%out"_s, outputName + u"_out"_s);
} else {
- rule.replace(QLatin1String("%out"), outputName);
+ rule.replace(u"%out"_s, outputName);
}
CodeSnip snip(snippetLanguage);
snip.position = (snippetLanguage == TypeSystem::NativeCode) ? TypeSystem::CodeSnipPositionAny : TypeSystem::CodeSnipPositionBeginning;
@@ -2753,17 +2862,19 @@ void CppGenerator::writeNoneReturn(TextStream &s, const AbstractMetaFunctionCPtr
}
}
-void CppGenerator::writeOverloadedFunctionDecisor(TextStream &s, const OverloadData &overloadData) const
+void CppGenerator::writeOverloadedFunctionDecisor(TextStream &s,
+ const OverloadData &overloadData,
+ ErrorReturn errorReturn) const
{
s << "// Overloaded function decisor\n";
const auto rfunc = overloadData.referenceFunction();
const AbstractMetaFunctionCList &functionOverloads = overloadData.overloads();
- for (int i = 0; i < functionOverloads.count(); i++) {
+ for (qsizetype i = 0; i < functionOverloads.size(); ++i) {
const auto func = functionOverloads.at(i);
s << "// " << i << ": ";
if (func->isStatic())
s << "static ";
- if (const auto *decl = func->declaringClass())
+ if (const auto &decl = func->declaringClass())
s << decl->name() << "::";
s << func->signatureComment() << '\n';
}
@@ -2773,18 +2884,16 @@ void CppGenerator::writeOverloadedFunctionDecisor(TextStream &s, const OverloadD
// Ensure that the direct overload that called this reverse
// is called.
if (rfunc->isOperatorOverload() && !rfunc->isCallOperator()) {
- s << "if (isReverse && overloadId == -1) {\n";
- {
- Indentation indent(s);
- s << "PyErr_SetString(PyExc_NotImplementedError, \"reverse operator not implemented.\");\n"
- << "return {};\n";
- }
- s << "}\n\n";
+ s << "if (isReverse && overloadId == -1) {\n" << indent
+ << "Shiboken::Errors::setReverseOperatorNotImplemented();\n"
+ << "return {};\n" << outdent
+ << "}\n\n";
}
s << "// Function signature not found.\n"
- << "if (overloadId == -1) goto "
- << cpythonFunctionName(overloadData.referenceFunction()) << "_TypeError;\n\n";
+ << "if (overloadId == -1)\n" << indent
+ << "return " << returnErrorWrongArguments(overloadData, errorReturn) << ";\n\n"
+ << outdent;
}
void CppGenerator::writeOverloadedFunctionDecisorEngine(TextStream &s,
@@ -2846,21 +2955,17 @@ void CppGenerator::writeOverloadedFunctionDecisorEngine(TextStream &s,
if (hasDefaultCall) {
isFirst = false;
int numArgs = node->argPos() + 1;
- s << "if (numArgs == " << numArgs << ") {\n";
- {
- Indentation indent(s);
- auto func = referenceFunction;
- for (const auto &child : children) {
- const auto defValFunc = child->getFunctionWithDefaultValue();
- if (!defValFunc.isNull()) {
- func = defValFunc;
- break;
- }
+ s << "if (numArgs == " << numArgs << ") {\n" << indent;
+ auto func = referenceFunction;
+ for (const auto &child : children) {
+ const auto defValFunc = child->getFunctionWithDefaultValue();
+ if (defValFunc) {
+ func = defValFunc;
+ break;
}
- s << "overloadId = " << overloadData.functionNumber(func)
- << "; // " << func->minimalSignature() << '\n';
}
- s << '}';
+ s << "overloadId = " << overloadData.functionNumber(func)
+ << "; // " << func->minimalSignature() << '\n' << outdent << '}';
}
for (auto child : children) {
@@ -2874,26 +2979,26 @@ void CppGenerator::writeOverloadedFunctionDecisorEngine(TextStream &s,
QString pyArgName = (usePyArgs && maxArgs > 1)
? pythonArgsAt(child->argPos())
- : QLatin1String(PYTHON_ARG);
+ : PYTHON_ARG;
auto od = child;
int startArg = od->argPos();
int sequenceArgCount = 0;
while (od && !od->argType().isVarargs()) {
- bool typeReplacedByPyObject = od->argumentTypeReplaced() == cPyObjectT();
+ const bool typeReplacedByPyObject = od->isTypeModified()
+ && od->modifiedArgType().name() == cPyObjectT;
if (!typeReplacedByPyObject) {
if (usePyArgs)
pyArgName = pythonArgsAt(od->argPos());
StringStream tck(TextStream::Language::Cpp);
auto func = od->referenceFunction();
- if (func->isConstructor() && func->arguments().count() == 1) {
- const AbstractMetaClass *ownerClass = func->ownerClass();
- const ComplexTypeEntry *baseContainerType = ownerClass->typeEntry()->baseContainerType();
+ if (func->isConstructor() && func->arguments().size() == 1) {
+ AbstractMetaClassCPtr ownerClass = func->ownerClass();
+ ComplexTypeEntryCPtr baseContainerType = ownerClass->typeEntry()->baseContainerType();
if (baseContainerType && baseContainerType == func->arguments().constFirst().type().typeEntry()
&& ownerClass->isCopyable()) {
- tck << '!' << cpythonCheckFunction(ownerClass->typeEntry()) << pyArgName << ")\n";
- Indentation indent(s);
- tck << "&& ";
+ tck << '!' << cpythonCheckFunction(ownerClass->typeEntry())
+ << pyArgName << ")\n" << indent << "&& " << outdent;
}
}
writeTypeCheck(tck, od, pyArgName);
@@ -2919,16 +3024,16 @@ void CppGenerator::writeOverloadedFunctionDecisorEngine(TextStream &s,
int numArgs = args.size() - OverloadData::numberOfRemovedArguments(refFunc);
if (isVarargs)
--numArgs;
- QString check = (isVarargs ? u"numArgs >= "_qs : u"numArgs == "_qs)
+ QString check = (isVarargs ? u"numArgs >= "_s : u"numArgs == "_s)
+ QString::number(numArgs);
typeChecks.prepend(check);
} else if (usePyArgs && sequenceArgCount > 0) {
- typeChecks.prepend(u"numArgs >= "_qs + QString::number(startArg + sequenceArgCount));
+ typeChecks.prepend(u"numArgs >= "_s + QString::number(startArg + sequenceArgCount));
} else if (refFunc->isOperatorOverload() && !refFunc->isCallOperator()) {
QString check;
if (!refFunc->isReverseOperator())
- check.append(QLatin1Char('!'));
- check.append(QLatin1String("isReverse"));
+ check.append(u'!');
+ check.append(u"isReverse"_s);
typeChecks.prepend(check);
}
@@ -2941,88 +3046,87 @@ void CppGenerator::writeOverloadedFunctionDecisorEngine(TextStream &s,
if (typeChecks.isEmpty()) {
s << "true";
} else {
- Indentation indent(s);
- s << typeChecks.join(QLatin1String("\n&& "));
+ s << indent << typeChecks.join(u"\n&& "_s) << outdent;
}
- s << ") {\n";
- {
- Indentation indent(s);
- writeOverloadedFunctionDecisorEngine(s, overloadData, child.data());
- }
- s << "}";
+ s << ") {\n" << indent;
+ writeOverloadedFunctionDecisorEngine(s, overloadData, child.get());
+ s << outdent << '}';
}
s << '\n';
}
void CppGenerator::writeFunctionCalls(TextStream &s, const OverloadData &overloadData,
- const GeneratorContext &context) const
+ const GeneratorContext &context,
+ ErrorReturn errorReturn) const
{
const AbstractMetaFunctionCList &overloads = overloadData.overloads();
s << "// Call function/method\n"
- << (overloads.count() > 1 ? "switch (overloadId) " : "") << "{\n";
- {
- Indentation indent(s);
- if (overloads.count() == 1) {
- writeSingleFunctionCall(s, overloadData, overloads.constFirst(), context);
- } else {
- for (int i = 0; i < overloads.count(); i++) {
- const auto func = overloads.at(i);
- s << "case " << i << ": // " << func->signature() << "\n{\n";
- {
- Indentation indent(s);
- writeSingleFunctionCall(s, overloadData, func, context);
- if (func->attributes().testFlag(AbstractMetaFunction::Deprecated)) {
- s << "PyErr_WarnEx(PyExc_DeprecationWarning, \"";
- if (auto cls = context.metaClass())
- s << cls->name() << '.';
- s << func->signature() << " is deprecated\", 1);\n";
- }
- s << "break;\n";
- }
- s << "}\n";
- }
+ << (overloads.size() > 1 ? "switch (overloadId) " : "") << "{\n" << indent;
+ if (overloads.size() == 1) {
+ writeSingleFunctionCall(s, overloadData, overloads.constFirst(), context,
+ errorReturn);
+ } else {
+ for (qsizetype i = 0; i < overloads.size(); ++i) {
+ const auto func = overloads.at(i);
+ s << "case " << i << ": // " << func->signature() << "\n{\n" << indent;
+ writeSingleFunctionCall(s, overloadData, func, context, errorReturn);
+ s << "break;\n" << outdent << "}\n";
}
}
- s << "}\n";
+ s << outdent << "}\n";
+}
+
+static void writeDeprecationWarning(TextStream &s,
+ const GeneratorContext &context,
+ const AbstractMetaFunctionCPtr &func,
+ CppGenerator::ErrorReturn errorReturn)
+{
+ s << "Shiboken::Warnings::warnDeprecated(\"";
+ if (const auto cls = context.metaClass())
+ s << cls->name() << "\", ";
+ // Check error in case "warning-as-error" is set.
+ s << '"' << func->signature().replace(u"::"_s, u"."_s) << "\");\n"
+ << "if (" << shibokenErrorsOccurred << ")\n"
+ << indent << errorReturn << outdent;
}
void CppGenerator::writeSingleFunctionCall(TextStream &s,
const OverloadData &overloadData,
const AbstractMetaFunctionCPtr &func,
- const GeneratorContext &context) const
+ const GeneratorContext &context,
+ ErrorReturn errorReturn) const
{
- if (func->isDeprecated()) {
- s << "Shiboken::warning(PyExc_DeprecationWarning, 1, \"Function: '"
- << func->signature().replace(QLatin1String("::"), QLatin1String("."))
- << "' is marked as deprecated, please check the documentation for more information.\");\n";
- }
+ if (func->isDeprecated())
+ writeDeprecationWarning(s, context, func, errorReturn);
if (func->functionType() == AbstractMetaFunction::EmptyFunction) {
- s << "PyErr_Format(PyExc_TypeError, \"%s is a private method.\", \""
- << func->signature().replace(QLatin1String("::"), QLatin1String("."))
- << "\");\n"
- << returnStatement(m_currentErrorCode) << '\n';
+ s << "Shiboken::Errors::setPrivateMethod(\""
+ << func->signature().replace(u"::"_s, u"."_s) << "\");\n"
+ << errorReturn;
return;
}
const bool usePyArgs = overloadData.pythonFunctionWrapperUsesListOfArguments();
// Handle named arguments.
- writeNamedArgumentResolution(s, func, usePyArgs, overloadData);
+ writeNamedArgumentResolution(s, func, usePyArgs, overloadData, errorReturn);
bool injectCodeCallsFunc = injectedCodeCallsCppFunction(context, func);
bool mayHaveUnunsedArguments = !func->isUserAdded() && func->hasInjectedCode() && injectCodeCallsFunc;
int removedArgs = 0;
- for (int argIdx = 0; argIdx < func->arguments().count(); ++argIdx) {
- bool hasConversionRule = !func->conversionRule(TypeSystem::NativeCode, argIdx + 1).isEmpty();
+
+ const auto argCount = func->arguments().size();
+ QList<qsizetype> indirections(argCount, 0);
+ for (qsizetype argIdx = 0; argIdx < argCount; ++argIdx) {
+ const bool hasConversionRule =
+ func->hasConversionRule(TypeSystem::NativeCode, int(argIdx + 1));
const AbstractMetaArgument &arg = func->arguments().at(argIdx);
- if (func->argumentRemoved(argIdx + 1)) {
+ if (arg.isModifiedRemoved()) {
if (!arg.defaultValueExpression().isEmpty()) {
- const QString cppArgRemoved = QLatin1String(CPP_ARG_REMOVED)
- + QString::number(argIdx);
+ const QString cppArgRemoved = CPP_ARG_REMOVED(argIdx);
s << getFullTypeName(arg.type()) << ' ' << cppArgRemoved;
- s << " = " << guessScopeForDefaultValue(func, arg) << ";\n";
- writeUnusedVariableCast(s, cppArgRemoved);
+ s << " = " << arg.defaultValueExpression() << ";\n"
+ << sbkUnusedVariableCast(cppArgRemoved);
} else if (!injectCodeCallsFunc && !func->isUserAdded() && !hasConversionRule) {
// When an argument is removed from a method signature and no other means of calling
// the method are provided (as with code injection) the generator must abort.
@@ -3041,22 +3145,22 @@ void CppGenerator::writeSingleFunctionCall(TextStream &s,
continue;
auto argType = getArgumentType(func, argIdx);
int argPos = argIdx - removedArgs;
- QString argName = QLatin1String(CPP_ARG) + QString::number(argPos);
- QString pyArgName = usePyArgs ? pythonArgsAt(argPos) : QLatin1String(PYTHON_ARG);
- QString defaultValue = guessScopeForDefaultValue(func, arg);
- writeArgumentConversion(s, argType, argName, pyArgName,
- func->implementingClass(), defaultValue,
- func->isUserAdded());
+ QString pyArgName = usePyArgs ? pythonArgsAt(argPos) : PYTHON_ARG;
+ indirections[argIdx] =
+ writeArgumentConversion(s, argType, CPP_ARG_N(argPos), pyArgName, errorReturn,
+ func->implementingClass(), arg.defaultValueExpression(),
+ func->isUserAdded());
}
s << '\n';
int numRemovedArgs = OverloadData::numberOfRemovedArguments(func);
- s << "if (!PyErr_Occurred()) {\n" << indent;
+ s << "if (Shiboken::Errors::occurred() == nullptr) {\n" << indent;
writeMethodCall(s, func, context,
overloadData.pythonFunctionWrapperUsesListOfArguments(),
- func->arguments().size() - numRemovedArgs);
+ func->arguments().size() - numRemovedArgs, indirections, errorReturn);
+
if (!func->isConstructor())
writeNoneReturn(s, func, overloadData.hasNonVoidReturnType());
s << outdent << "}\n";
@@ -3066,34 +3170,34 @@ QString CppGenerator::cppToPythonFunctionName(const QString &sourceTypeName, QSt
{
if (targetTypeName.isEmpty())
targetTypeName = sourceTypeName;
- return sourceTypeName + QLatin1String("_CppToPython_") + targetTypeName;
+ return sourceTypeName + u"_CppToPython_"_s + targetTypeName;
}
QString CppGenerator::pythonToCppFunctionName(const QString &sourceTypeName, const QString &targetTypeName)
{
- return sourceTypeName + QLatin1String("_PythonToCpp_") + targetTypeName;
+ return sourceTypeName + u"_PythonToCpp_"_s + targetTypeName;
}
QString CppGenerator::pythonToCppFunctionName(const AbstractMetaType &sourceType, const AbstractMetaType &targetType)
{
return pythonToCppFunctionName(fixedCppTypeName(sourceType), fixedCppTypeName(targetType));
}
-QString CppGenerator::pythonToCppFunctionName(const CustomConversion::TargetToNativeConversion *toNative,
- const TypeEntry *targetType)
+QString CppGenerator::pythonToCppFunctionName(const TargetToNativeConversion &toNative,
+ const TypeEntryCPtr &targetType)
{
return pythonToCppFunctionName(fixedCppTypeName(toNative), fixedCppTypeName(targetType));
}
QString CppGenerator::convertibleToCppFunctionName(const QString &sourceTypeName, const QString &targetTypeName)
{
- return QLatin1String("is_") + sourceTypeName + QLatin1String("_PythonToCpp_")
- + targetTypeName + QLatin1String("_Convertible");
+ return u"is_"_s + sourceTypeName + u"_PythonToCpp_"_s
+ + targetTypeName + u"_Convertible"_s;
}
QString CppGenerator::convertibleToCppFunctionName(const AbstractMetaType &sourceType, const AbstractMetaType &targetType)
{
return convertibleToCppFunctionName(fixedCppTypeName(sourceType), fixedCppTypeName(targetType));
}
-QString CppGenerator::convertibleToCppFunctionName(const CustomConversion::TargetToNativeConversion *toNative,
- const TypeEntry *targetType)
+QString CppGenerator::convertibleToCppFunctionName(const TargetToNativeConversion &toNative,
+ const TypeEntryCPtr &targetType)
{
return convertibleToCppFunctionName(fixedCppTypeName(toNative), fixedCppTypeName(targetType));
}
@@ -3103,9 +3207,10 @@ void CppGenerator::writeCppToPythonFunction(TextStream &s, const QString &code,
{
QString prettyCode = code;
- processCodeSnip(prettyCode);
+ const QString funcName = cppToPythonFunctionName(sourceTypeName, targetTypeName);
+ processCodeSnip(prettyCode, funcName);
- s << "static PyObject *" << cppToPythonFunctionName(sourceTypeName, targetTypeName)
+ s << "static PyObject *" << funcName
<< "(const void *cppIn)\n{\n" << indent << prettyCode
<< ensureEndl << outdent << "}\n";
}
@@ -3128,53 +3233,66 @@ static void replaceCppToPythonVariables(QString &code, const QString &typeName,
bool constRef = false)
{
CodeSnipAbstract::prependCode(&code, writeCppInRef(typeName, constRef));
- code.replace(QLatin1String("%INTYPE"), typeName);
- code.replace(QLatin1String("%OUTTYPE"), QLatin1String("PyObject *"));
- code.replace(QLatin1String("%in"), QLatin1String("cppInRef"));
- code.replace(QLatin1String("%out"), QLatin1String("pyOut"));
+ code.replace(u"%INTYPE"_s, typeName);
+ code.replace(u"%OUTTYPE"_s, u"PyObject *"_s);
+ code.replace(u"%in"_s, u"cppInRef"_s);
+ code.replace(u"%out"_s, u"pyOut"_s);
}
-void CppGenerator::writeCppToPythonFunction(TextStream &s, const CustomConversion *customConversion) const
+void CppGenerator::writeCppToPythonFunction(TextStream &s,
+ const CustomConversionPtr &customConversion) const
{
QString code = customConversion->nativeToTargetConversion();
- auto *ownerType = customConversion->ownerType();
+ auto ownerType = customConversion->ownerType();
const bool constRef = !ownerType->isPrimitive(); // PyCapsule needs a non-const ref
replaceCppToPythonVariables(code, getFullTypeName(ownerType), constRef);
writeCppToPythonFunction(s, code, fixedCppTypeName(customConversion->ownerType()));
}
+
+QString CppGenerator::containerNativeToTargetTypeName(const ContainerTypeEntryCPtr &type)
+{
+ QString result = type->targetLangApiName();
+ if (result != cPyObjectT) {
+ result = containerCpythonBaseName(type);
+ if (result == cPySequenceT)
+ result = cPyListT;
+ }
+ return result;
+}
+
void CppGenerator::writeCppToPythonFunction(TextStream &s, const AbstractMetaType &containerType) const
{
- const CustomConversion *customConversion = containerType.typeEntry()->customConversion();
- if (!customConversion) {
+ Q_ASSERT(containerType.typeEntry()->isContainer());
+ auto cte = std::static_pointer_cast<const ContainerTypeEntry>(containerType.typeEntry());
+ if (!cte->hasCustomConversion()) {
QString m;
QTextStream(&m) << "Can't write the C++ to Python conversion function for container type '"
<< containerType.typeEntry()->qualifiedCppName()
<< "' - no conversion rule was defined for it in the type system.";
throw Exception(m);
}
- if (!containerType.typeEntry()->isContainer()) {
- writeCppToPythonFunction(s, customConversion);
- return;
- }
+ const auto customConversion = cte->customConversion();
QString code = customConversion->nativeToTargetConversion();
- for (int i = 0; i < containerType.instantiations().count(); ++i) {
+ for (qsizetype i = 0; i < containerType.instantiations().size(); ++i) {
const AbstractMetaType &type = containerType.instantiations().at(i);
QString typeName = getFullTypeName(type);
if (type.isConstant())
- typeName = QLatin1String("const ") + typeName;
- code.replace(u"%INTYPE_"_qs + QString::number(i), typeName);
+ typeName = u"const "_s + typeName;
+ code.replace(u"%INTYPE_"_s + QString::number(i), typeName);
}
replaceCppToPythonVariables(code, getFullTypeNameWithoutModifiers(containerType), true);
- processCodeSnip(code);
- writeCppToPythonFunction(s, code, fixedCppTypeName(containerType));
+ processCodeSnip(code, containerType.typeEntry()->qualifiedCppName());
+ writeCppToPythonFunction(s, code, fixedCppTypeName(containerType),
+ containerNativeToTargetTypeName(cte));
}
void CppGenerator::writePythonToCppFunction(TextStream &s, const QString &code, const QString &sourceTypeName,
const QString &targetTypeName) const
{
QString prettyCode = code;
- processCodeSnip(prettyCode);
- s << "static void " << pythonToCppFunctionName(sourceTypeName, targetTypeName)
+ const QString funcName = pythonToCppFunctionName(sourceTypeName, targetTypeName);
+ processCodeSnip(prettyCode, funcName);
+ s << "static void " << funcName
<< "(PyObject *pyIn, void *cppOut)\n{\n" << indent << prettyCode
<< ensureEndl << outdent << "}\n";
}
@@ -3192,16 +3310,15 @@ void CppGenerator::writeIsPythonConvertibleToCppFunction(TextStream &s,
s << "static PythonToCppFunc " << convertibleToCppFunctionName(sourceTypeName, targetTypeName);
s << "(PyObject *pyIn)\n{\n" << indent;
if (acceptNoneAsCppNull) {
- s << "if (pyIn == Py_None)\n";
- Indentation indent(s);
- s << "return Shiboken::Conversions::nonePythonToCppNullPtr;\n";
- }
- s << "if (" << condition << ")\n";
- {
- Indentation indent(s);
- s << "return " << pythonToCppFuncName << ";\n";
+ s << "if (pyIn == Py_None)\n" << indent
+ << "return Shiboken::Conversions::nonePythonToCppNullPtr;\n" << outdent;
+ } else {
+ if (!condition.contains(u"pyIn"))
+ s << sbkUnusedVariableCast("pyIn");
}
- s << "return {};\n" << outdent << "}\n";
+ s << "if (" << condition << ")\n" << indent
+ << "return " << pythonToCppFuncName << ";\n" << outdent
+ << "return {};\n" << outdent << "}\n";
}
void CppGenerator::writePythonToCppConversionFunctions(TextStream &s,
@@ -3216,103 +3333,97 @@ void CppGenerator::writePythonToCppConversionFunctions(TextStream &s,
// Python to C++ conversion function.
StringStream c(TextStream::Language::Cpp);
if (conversion.isEmpty())
- conversion = QLatin1Char('*') + cpythonWrapperCPtr(sourceType, QLatin1String("pyIn"));
+ conversion = u'*' + cpythonWrapperCPtr(sourceType, u"pyIn"_s);
if (!preConversion.isEmpty())
c << preConversion << '\n';
const QString fullTypeName = targetType.isSmartPointer()
? targetType.cppSignature()
: getFullTypeName(targetType.typeEntry());
c << "*reinterpret_cast<" << fullTypeName << " *>(cppOut) = "
- << fullTypeName << '(' << conversion << ");";
+ << fullTypeName << '('
+ << (sourceType.isUniquePointer() ? stdMove(conversion) : conversion)
+ << ");";
QString sourceTypeName = fixedCppTypeName(sourceType);
QString targetTypeName = fixedCppTypeName(targetType);
writePythonToCppFunction(s, c.toString(), sourceTypeName, targetTypeName);
// Python to C++ convertible check function.
if (typeCheck.isEmpty())
- typeCheck = u"PyObject_TypeCheck(pyIn, "_qs + sourcePyType + u')';
+ typeCheck = u"PyObject_TypeCheck(pyIn, "_s + sourcePyType + u')';
writeIsPythonConvertibleToCppFunction(s, sourceTypeName, targetTypeName, typeCheck);
s << '\n';
}
void CppGenerator::writePythonToCppConversionFunctions(TextStream &s,
- const CustomConversion::TargetToNativeConversion *toNative,
- const TypeEntry *targetType) const
+ const TargetToNativeConversion &toNative,
+ const TypeEntryCPtr &targetType) const
{
// Python to C++ conversion function.
- QString code = toNative->conversion();
+ QString code = toNative.conversion();
QString inType;
- if (toNative->sourceType())
- inType = cpythonTypeNameExt(toNative->sourceType());
+ if (toNative.sourceType())
+ inType = cpythonTypeNameExt(toNative.sourceType());
else
- inType = u'(' + toNative->sourceTypeName() + u"_TypeF())"_qs;
- code.replace(QLatin1String("%INTYPE"), inType);
- code.replace(QLatin1String("%OUTTYPE"), targetType->qualifiedCppName());
- code.replace(QLatin1String("%in"), QLatin1String("pyIn"));
- code.replace(QLatin1String("%out"),
- QLatin1String("*reinterpret_cast<") + getFullTypeName(targetType) + QLatin1String(" *>(cppOut)"));
+ inType = u'(' + toNative.sourceTypeName() + u"_TypeF())"_s;
+ code.replace(u"%INTYPE"_s, inType);
+ code.replace(u"%OUTTYPE"_s, targetType->qualifiedCppName());
+ code.replace(u"%in"_s, u"pyIn"_s);
+ code.replace(u"%out"_s,
+ u"*reinterpret_cast<"_s + getFullTypeName(targetType) + u" *>(cppOut)"_s);
QString sourceTypeName = fixedCppTypeName(toNative);
QString targetTypeName = fixedCppTypeName(targetType);
writePythonToCppFunction(s, code, sourceTypeName, targetTypeName);
// Python to C++ convertible check function.
- QString typeCheck = toNative->sourceTypeCheck();
+ QString typeCheck = toNative.sourceTypeCheck();
if (typeCheck.isEmpty()) {
- QString pyTypeName = toNative->sourceTypeName();
- if (pyTypeName == QLatin1String("Py_None") || pyTypeName == QLatin1String("PyNone"))
- typeCheck = QLatin1String("%in == Py_None");
- else if (pyTypeName == QLatin1String("SbkEnumType"))
- typeCheck = QLatin1String("Shiboken::isShibokenEnum(%in)");
- else if (pyTypeName == QLatin1String("SbkObject"))
- typeCheck = QLatin1String("Shiboken::Object::checkType(%in)");
- else if (pyTypeName == cPyTypeObjectT())
- typeCheck = QLatin1String("PyType_Check(%in)");
- else if (pyTypeName == cPyObjectT())
- typeCheck = QLatin1String("PyObject_TypeCheck(%in, &PyBaseObject_Type)");
- // PYSIDE-795: We abuse PySequence for iterables
- else if (pyTypeName == cPySequenceT())
- typeCheck = QLatin1String("Shiboken::String::checkIterable(%in)");
- else if (pyTypeName.startsWith(QLatin1String("Py")))
- typeCheck = pyTypeName + QLatin1String("_Check(%in)");
+ QString pyTypeName = toNative.sourceTypeName();
+ if (pyTypeName == u"Py_None" || pyTypeName == u"PyNone")
+ typeCheck = u"%in == Py_None"_s;
+ else if (pyTypeName == u"SbkObject")
+ typeCheck = u"Shiboken::Object::checkType(%in)"_s;
}
if (typeCheck.isEmpty()) {
- if (!toNative->sourceType() || toNative->sourceType()->isPrimitive()) {
+ if (!toNative.sourceType() || toNative.sourceType()->isPrimitive()) {
QString m;
QTextStream(&m) << "User added implicit conversion for C++ type '" << targetType->qualifiedCppName()
<< "' must provide either an input type check function or a non primitive type entry.";
throw Exception(m);
}
- typeCheck = u"PyObject_TypeCheck(%in, "_qs
- + cpythonTypeNameExt(toNative->sourceType()) + u')';
+ typeCheck = u"PyObject_TypeCheck(%in, "_s
+ + cpythonTypeNameExt(toNative.sourceType()) + u')';
}
- typeCheck.replace(QLatin1String("%in"), QLatin1String("pyIn"));
- processCodeSnip(typeCheck);
+ typeCheck.replace(u"%in"_s, u"pyIn"_s);
+ processCodeSnip(typeCheck, targetType->qualifiedCppName());
writeIsPythonConvertibleToCppFunction(s, sourceTypeName, targetTypeName, typeCheck);
}
void CppGenerator::writePythonToCppConversionFunctions(TextStream &s, const AbstractMetaType &containerType) const
{
- const CustomConversion *customConversion = containerType.typeEntry()->customConversion();
- if (!customConversion) {
- //qFatal
- return;
- }
- const CustomConversion::TargetToNativeConversions &toCppConversions = customConversion->targetToNativeConversions();
- if (toCppConversions.isEmpty()) {
- //qFatal
- return;
- }
+ Q_ASSERT(containerType.typeEntry()->isContainer());
+ const auto cte = std::static_pointer_cast<const ContainerTypeEntry>(containerType.typeEntry());
+ const auto customConversion = cte->customConversion();
+ for (const auto &conv : customConversion->targetToNativeConversions())
+ writePythonToCppConversionFunction(s, containerType, conv);
+}
+
+void CppGenerator::writePythonToCppConversionFunction(TextStream &s,
+ const AbstractMetaType &containerType,
+ const TargetToNativeConversion &conv) const
+{
// Python to C++ conversion function.
QString cppTypeName = getFullTypeNameWithoutModifiers(containerType);
- QString code = toCppConversions.constFirst()->conversion();
- const QString line = QLatin1String("auto &cppOutRef = *reinterpret_cast<")
- + cppTypeName + QLatin1String(" *>(cppOut);");
+ QString code = conv.conversion();
+ const QString line = u"auto &cppOutRef = *reinterpret_cast<"_s
+ + cppTypeName + u" *>(cppOut);"_s;
CodeSnipAbstract::prependCode(&code, line);
- for (int i = 0; i < containerType.instantiations().count(); ++i) {
+ for (qsizetype i = 0; i < containerType.instantiations().size(); ++i) {
const AbstractMetaType &type = containerType.instantiations().at(i);
QString typeName = getFullTypeName(type);
- if (type.shouldDereferenceArgument()) {
+ // Containers of opaque containers are not handled here.
+ const auto generatorArg = GeneratorArgument::fromMetaType(type);
+ if (generatorArg.indirections > 0 && !type.generateOpaqueContainer()) {
for (int pos = 0; ; ) {
const QRegularExpressionMatch match = convertToCppRegEx().match(code, pos);
if (!match.hasMatch())
@@ -3320,26 +3431,27 @@ void CppGenerator::writePythonToCppConversionFunctions(TextStream &s, const Abst
pos = match.capturedEnd();
const QString varName = match.captured(1);
QString rightCode = code.mid(pos);
- rightCode.replace(varName, QLatin1Char('*') + varName);
+ rightCode.replace(varName, u'*' + varName);
code.replace(pos, code.size() - pos, rightCode);
}
- typeName.append(QLatin1String(" *"));
+ typeName.append(u" *"_s);
}
- code.replace(u"%OUTTYPE_"_qs + QString::number(i), typeName);
+ code.replace(u"%OUTTYPE_"_s + QString::number(i), typeName);
}
- code.replace(QLatin1String("%OUTTYPE"), cppTypeName);
- code.replace(QLatin1String("%in"), QLatin1String("pyIn"));
- code.replace(QLatin1String("%out"), QLatin1String("cppOutRef"));
+ code.replace(u"%OUTTYPE"_s, cppTypeName);
+ code.replace(u"%in"_s, u"pyIn"_s);
+ code.replace(u"%out"_s, u"cppOutRef"_s);
QString typeName = fixedCppTypeName(containerType);
- writePythonToCppFunction(s, code, typeName, typeName);
+ const QString &sourceTypeName = conv.sourceTypeName();
+ writePythonToCppFunction(s, code, sourceTypeName, typeName);
// Python to C++ convertible check function.
QString typeCheck = cpythonCheckFunction(containerType);
if (typeCheck.isEmpty())
- typeCheck = QLatin1String("false");
+ typeCheck = u"false"_s;
else
- typeCheck = typeCheck + QLatin1String("pyIn)");
- writeIsPythonConvertibleToCppFunction(s, typeName, typeName, typeCheck);
+ typeCheck = typeCheck + u"pyIn)"_s;
+ writeIsPythonConvertibleToCppFunction(s, sourceTypeName, typeName, typeCheck);
s << '\n';
}
@@ -3371,139 +3483,168 @@ void CppGenerator::writeSetPythonToCppPointerConversion(TextStream &s,
converterVar, pythonToCppFunc, isConvertibleFunc);
}
-void CppGenerator::writeNamedArgumentResolution(TextStream &s, const AbstractMetaFunctionCPtr &func,
- bool usePyArgs, const OverloadData &overloadData) const
+// PYSIDE-1986: Some QObject derived classes, (QVBoxLayout) do not have default
+// arguments, which breaks setting properties by named arguments. Force the
+// handling code to be generated nevertheless for applicable widget classes,
+// so that the mechanism of falling through to the error handling to set
+// the properties works nevertheless.
+static bool forceQObjectNamedArguments(const AbstractMetaFunctionCPtr &func)
+{
+ if (func->functionType() != AbstractMetaFunction::ConstructorFunction)
+ return false;
+ const auto owner = func->ownerClass();
+ Q_ASSERT(owner);
+ if (!isQObject(owner))
+ return false;
+ const QString &name = owner->name();
+ return name == u"QVBoxLayout" || name == u"QHBoxLayout"
+ || name == u"QSplitterHandle" || name == u"QSizeGrip";
+}
+
+void CppGenerator::writeNamedArgumentResolution(TextStream &s,
+ const AbstractMetaFunctionCPtr &func,
+ bool usePyArgs,
+ const OverloadData &overloadData,
+ ErrorReturn errorReturn)
{
const AbstractMetaArgumentList &args = OverloadData::getArgumentsWithDefaultValues(func);
- if (args.isEmpty()) {
+ const bool hasDefaultArguments = !args.isEmpty();
+ const bool force = !hasDefaultArguments && usePySideExtensions()
+ && forceQObjectNamedArguments(func);
+ if (!hasDefaultArguments && !force) {
if (overloadData.hasArgumentWithDefaultValue()) {
// PySide-535: Allow for empty dict instead of nullptr in PyPy
- s << "if (kwds && PyDict_Size(kwds) > 0) {\n";
- {
- Indentation indent(s);
- s << "errInfo.reset(kwds);\n"
- << "Py_INCREF(errInfo.object());\n"
- << "goto " << cpythonFunctionName(func) << "_TypeError;\n";
- }
- s << "}\n";
+ s << "if (kwds != nullptr && PyDict_Size(kwds) > 0) {\n" << indent
+ << "errInfo.reset(kwds);\n"
+ << "Py_INCREF(errInfo.object());\n"
+ << "return " << returnErrorWrongArguments(overloadData, errorReturn) << ";\n"
+ << outdent << "}\n";
}
return;
}
// PySide-535: Allow for empty dict instead of nullptr in PyPy
- s << "if (kwds && PyDict_Size(kwds) > 0) {\n";
- {
- Indentation indent(s);
- s << "PyObject *value{};\n"
- << "PyObject *kwds_dup = PyDict_Copy(kwds);\n";
- for (const AbstractMetaArgument &arg : args) {
- const int pyArgIndex = arg.argumentIndex()
- - OverloadData::numberOfRemovedArguments(func, arg.argumentIndex());
- QString pyArgName = usePyArgs ? pythonArgsAt(pyArgIndex) : QLatin1String(PYTHON_ARG);
- QString pyKeyName = QLatin1String("key_") + arg.name();
- s << "static PyObject *const " << pyKeyName
- << " = Shiboken::String::createStaticString(\"" << arg.name() << "\");\n"
- << "if (PyDict_Contains(kwds, " << pyKeyName << ")) {\n";
- {
- Indentation indent(s);
- s << "value = PyDict_GetItem(kwds, " << pyKeyName << ");\n"
- << "if (value && " << pyArgName << ") {\n";
- {
- Indentation indent(s);
- s << "errInfo.reset(" << pyKeyName << ");\n"
- << "Py_INCREF(errInfo.object());\n"
- << "goto " << cpythonFunctionName(func) << "_TypeError;\n";
- }
- s << "}\nif (value) {\n";
- {
- Indentation indent(s);
- s << pyArgName << " = value;\nif (!";
- writeTypeCheck(s, arg.type(), pyArgName, isNumber(arg.type().typeEntry()),
- func->typeReplaced(arg.argumentIndex() + 1));
- s << ")\n";
- {
- Indentation indent(s);
- s << "goto " << cpythonFunctionName(func) << "_TypeError;\n";
- }
- }
- s << "}\nPyDict_DelItem(kwds_dup, " << pyKeyName << ");\n";
- }
- s << "}\n";
- }
- // PYSIDE-1305: Handle keyword args correctly.
- // Normal functions handle their parameters immediately.
- // For constructors that are QObject, we need to delay that
- // until extra keyword signals and properties are handled.
- s << "if (PyDict_Size(kwds_dup) > 0) {\n";
- {
- Indentation indent(s);
- s << "errInfo.reset(kwds_dup);\n";
- if (!(func->isConstructor() && func->ownerClass()->isQObject()))
- s << "goto " << cpythonFunctionName(func) << "_TypeError;\n";
- else
- s << "// fall through to handle extra keyword signals and properties\n";
- }
- s << "}\n";
- }
- s << "}\n";
+ s << "if (kwds && PyDict_Size(kwds) > 0) {\n" << indent;
+ if (!force)
+ s << "PyObject *value{};\n";
+ s << "Shiboken::AutoDecRef kwds_dup(PyDict_Copy(kwds));\n";
+ for (const AbstractMetaArgument &arg : args) {
+ const int pyArgIndex = arg.argumentIndex()
+ - OverloadData::numberOfRemovedArguments(func, arg.argumentIndex());
+ QString pyArgName = usePyArgs ? pythonArgsAt(pyArgIndex)
+ : PYTHON_ARG;
+ QString pyKeyName = u"key_"_s + arg.name();
+ s << "static PyObject *const " << pyKeyName
+ << " = Shiboken::String::createStaticString(\"" << arg.name() << "\");\n"
+ << "if (PyDict_Contains(kwds, " << pyKeyName << ") != 0) {\n" << indent
+ << "value = PyDict_GetItem(kwds, " << pyKeyName << ");\n"
+ << "if (value != nullptr && " << pyArgName << " != nullptr ) {\n"
+ << indent << "errInfo.reset(" << pyKeyName << ");\n"
+ << "Py_INCREF(errInfo.object());\n"
+ << "return " << returnErrorWrongArguments(overloadData, errorReturn) << ";\n"
+ << outdent << "}\nif (value != nullptr) {\n" << indent
+ << pyArgName << " = value;\nif (!";
+ const auto &type = arg.modifiedType();
+ writeTypeCheck(s, type, pyArgName, isNumber(type.typeEntry()), {});
+ s << ")\n" << indent
+ << "return " << returnErrorWrongArguments(overloadData, errorReturn) << ";\n"
+ << outdent << outdent
+ << "}\nPyDict_DelItem(kwds_dup, " << pyKeyName << ");\n"
+ << outdent << "}\n";
+ }
+ // PYSIDE-1305: Handle keyword args correctly.
+ // Normal functions handle their parameters immediately.
+ // For constructors that are QObject, we need to delay that
+ // until extra keyword signals and properties are handled.
+ s << "if (PyDict_Size(kwds_dup) > 0) {\n" << indent
+ << "errInfo.reset(kwds_dup.release());\n";
+ if (!(func->isConstructor() && isQObject(func->ownerClass())))
+ s << "return " << returnErrorWrongArguments(overloadData, errorReturn) << ";\n";
+ else
+ s << "// fall through to handle extra keyword signals and properties\n";
+ s << outdent << "}\n"
+ << outdent << "}\n";
}
QString CppGenerator::argumentNameFromIndex(const ApiExtractorResult &api,
- const AbstractMetaFunctionCPtr &func, int argIndex,
- const AbstractMetaClass **wrappedClass,
- QString *errorMessage)
-{
- if (errorMessage != nullptr)
- errorMessage->clear();
- *wrappedClass = nullptr;
- QString pyArgName;
- if (argIndex == -1) {
- pyArgName = QLatin1String("self");
- *wrappedClass = func->implementingClass();
- } else if (argIndex == 0) {
- const auto funcType = func->type();
- AbstractMetaType returnType = getTypeWithoutContainer(funcType);
- if (!returnType.isVoid()) {
- pyArgName = QLatin1String(PYTHON_RETURN_VAR);
- *wrappedClass = AbstractMetaClass::findClass(api.classes(), returnType.typeEntry());
- if (*wrappedClass == nullptr && errorMessage != nullptr)
- *errorMessage = msgClassNotFound(returnType.typeEntry());
- } else {
- if (errorMessage != nullptr) {
- QTextStream str(errorMessage);
- str << "Invalid Argument index (0, return value) on function modification: "
- << funcType.name() << ' ';
- if (const AbstractMetaClass *declaringClass = func->declaringClass())
- str << declaringClass->name() << "::";
- str << func->name() << "()";
- }
- }
+ const AbstractMetaFunctionCPtr &func, int argIndex)
+{
+ switch (argIndex) {
+ case -1:
+ return PYTHON_SELF_VAR;
+ case 0:
+ return PYTHON_RETURN_VAR;
+ case 1: { // Single argument?
+ OverloadData data(getFunctionGroups(func->implementingClass()).value(func->name()), api);
+ if (!data.pythonFunctionWrapperUsesListOfArguments())
+ return PYTHON_ARG;
+ break;
+ }
+ }
+ return pythonArgsAt(argIndex - 1);
+}
+
+AbstractMetaClassCPtr
+CppGenerator::argumentClassFromIndex(const ApiExtractorResult &api,
+ const AbstractMetaFunctionCPtr &func, int argIndex)
+{
+ if (argIndex == -1)
+ return func->implementingClass();
+
+ AbstractMetaType type;
+ if (argIndex == 0) {
+ type = func->type();
} else {
- int realIndex = argIndex - 1 - OverloadData::numberOfRemovedArguments(func, argIndex - 1);
- AbstractMetaType argType = getTypeWithoutContainer(func->arguments().at(realIndex).type());
- *wrappedClass = AbstractMetaClass::findClass(api.classes(), argType.typeEntry());
- if (*wrappedClass == nullptr && errorMessage != nullptr)
- *errorMessage = msgClassNotFound(argType.typeEntry());
- if (argIndex == 1
- && !func->isConstructor()
- && OverloadData::isSingleArgument(getFunctionGroups(func->implementingClass()).value(func->name())))
- pyArgName = QLatin1String(PYTHON_ARG);
- else
- pyArgName = pythonArgsAt(argIndex - 1);
+ const int arg = argIndex - 1;
+ const int realIndex = arg - OverloadData::numberOfRemovedArguments(func, arg);
+ type = func->arguments().at(realIndex).type();
}
- return pyArgName;
+
+ if (type.typeEntry()->isContainer()) {
+ // only support containers with 1 type
+ if (type.instantiations().size() == 1)
+ type = type.instantiations().constFirst();
+ }
+
+ auto te = type.typeEntry();
+ if (type.isVoid() || !te->isComplex())
+ throw Exception(msgInvalidArgumentModification(func, argIndex));
+ const auto result = AbstractMetaClass::findClass(api.classes(), te);
+ if (!result)
+ throw Exception(msgClassNotFound(te));
+ return result;
}
+const char tryBlock[] = R"(
+PyObject *errorType{};
+PyObject *errorString{};
+try {
+)";
+
const char defaultExceptionHandling[] = R"(} catch (const std::exception &e) {
- PyErr_SetString(PyExc_RuntimeError, e.what());
+ errorType = PyExc_RuntimeError;
+ errorString = Shiboken::String::fromCString(e.what());
} catch (...) {
- PyErr_SetString(PyExc_RuntimeError, "An unknown exception was caught");
+ errorType = PyExc_RuntimeError;
+ errorString = Shiboken::Messages::unknownException();
}
)";
+const char propagateException[] = R"(
+if (errorType != nullptr)
+ PyErr_SetObject(errorType, errorString);
+)";
+
+static QString explicitConversion(const QString &v, const AbstractMetaType &t)
+{
+ return t.plainType().cppSignature() + u'(' + v + u')';
+}
+
void CppGenerator::writeMethodCall(TextStream &s, const AbstractMetaFunctionCPtr &func,
const GeneratorContext &context, bool usesPyArgs,
- int maxArgs) const
+ int maxArgs,
+ const QList<qsizetype> &argumentIndirections,
+ ErrorReturn errorReturn) const
{
s << "// " << func->minimalSignature() << (func->isReverseOperator() ? " [reverse operator]": "") << '\n';
if (func->isConstructor()) {
@@ -3520,14 +3661,10 @@ void CppGenerator::writeMethodCall(TextStream &s, const AbstractMetaFunctionCPtr
}
if (func->isAbstract()) {
- s << "if (Shiboken::Object::hasCppWrapper(reinterpret_cast<SbkObject *>(self))) {\n";
- {
- Indentation indent(s);
- s << "PyErr_SetString(PyExc_NotImplementedError, \"pure virtual method '";
- s << func->ownerClass()->name() << '.' << func->name() << "()' not implemented.\");\n";
- s << returnStatement(m_currentErrorCode) << '\n';
- }
- s << "}\n";
+ s << "if (Shiboken::Object::hasCppWrapper(reinterpret_cast<SbkObject *>(self))) {\n"
+ << indent << "Shiboken::Errors::setPureVirtualMethodError(\""
+ << func->ownerClass()->name() << '.' << func->name() << "\");\n"
+ << errorReturn << outdent << "}\n";
}
// Used to provide contextual information to custom code writer function.
@@ -3543,8 +3680,7 @@ void CppGenerator::writeMethodCall(TextStream &s, const AbstractMetaFunctionCPtr
if (maxArgs > 0 && maxArgs < func->arguments().size() - OverloadData::numberOfRemovedArguments(func)) {
int removedArgs = 0;
for (int i = 0; i < maxArgs + removedArgs; i++) {
- lastArg = &func->arguments().at(i);
- if (func->argumentRemoved(i + 1))
+ if (func->arguments().at(i).isModifiedRemoved())
removedArgs++;
}
} else if (maxArgs != 0 && !func->arguments().isEmpty()) {
@@ -3557,15 +3693,17 @@ void CppGenerator::writeMethodCall(TextStream &s, const AbstractMetaFunctionCPtr
writeConversionRule(s, func, TypeSystem::NativeCode, usesPyArgs);
+ bool generateExceptionHandling = false;
+
if (!func->isUserAdded()) {
QStringList userArgs;
if (func->functionType() != AbstractMetaFunction::CopyConstructorFunction) {
int removedArgs = 0;
for (int i = 0; i < maxArgs + removedArgs; i++) {
const AbstractMetaArgument &arg = func->arguments().at(i);
- bool hasConversionRule = !func->conversionRule(TypeSystem::NativeCode,
- arg.argumentIndex() + 1).isEmpty();
- if (func->argumentRemoved(i + 1)) {
+ const bool hasConversionRule =
+ func->hasConversionRule(TypeSystem::NativeCode, arg.argumentIndex() + 1);
+ if (arg.isModifiedRemoved()) {
// If some argument with default value is removed from a
// method signature, the said value must be explicitly
// added to the method call.
@@ -3573,22 +3711,26 @@ void CppGenerator::writeMethodCall(TextStream &s, const AbstractMetaFunctionCPtr
// If have conversion rules I will use this for removed args
if (hasConversionRule)
- userArgs << arg.name() + QLatin1String(CONV_RULE_OUT_VAR_SUFFIX);
+ userArgs << arg.name() + CONV_RULE_OUT_VAR_SUFFIX;
else if (!arg.defaultValueExpression().isEmpty())
- userArgs.append(QLatin1String(CPP_ARG_REMOVED) + QString::number(i));
+ userArgs.append(CPP_ARG_REMOVED(i));
} else {
if (hasConversionRule) {
- userArgs.append(arg.name() + QLatin1String(CONV_RULE_OUT_VAR_SUFFIX));
+ userArgs.append(arg.name() + CONV_RULE_OUT_VAR_SUFFIX);
} else {
const int idx = arg.argumentIndex() - removedArgs;
- const bool deRef = arg.type().shouldDereferenceArgument();
- QString argName;
- if (deRef)
- argName += QLatin1Char('*');
- argName += QLatin1String(CPP_ARG) + QString::number(idx);
+ const auto deRef = argumentIndirections.at(i);
+ QString argName = AbstractMetaType::dereferencePrefix(deRef)
+ + CPP_ARG_N(idx);
userArgs.append(argName);
}
}
+ // "Pass unique ptr by value" pattern: Apply std::move()
+ auto type = arg.type();
+ if (type.useStdMove())
+ userArgs.last() = stdMove(userArgs.constLast());
+ else if (type.viewOn() != nullptr)
+ userArgs.last() = explicitConversion(userArgs.constLast(), type);
}
// If any argument's default value was modified the method must be called
@@ -3598,19 +3740,19 @@ void CppGenerator::writeMethodCall(TextStream &s, const AbstractMetaFunctionCPtr
QStringList otherArgs;
bool otherArgsModified = false;
bool argsClear = true;
- for (int i = func->arguments().size() - 1; i >= maxArgs + removedArgs; i--) {
+ for (auto i = func->arguments().size() - 1; i >= maxArgs + removedArgs; i--) {
const AbstractMetaArgument &arg = func->arguments().at(i);
const bool defValModified = arg.hasModifiedDefaultValueExpression();
- bool hasConversionRule = !func->conversionRule(TypeSystem::NativeCode,
- arg.argumentIndex() + 1).isEmpty();
+ const bool hasConversionRule =
+ func->hasConversionRule(TypeSystem::NativeCode, arg.argumentIndex() + 1);
if (argsClear && !defValModified && !hasConversionRule)
continue;
argsClear = false;
- otherArgsModified |= defValModified || hasConversionRule || func->argumentRemoved(i + 1);
+ otherArgsModified |= defValModified || hasConversionRule || arg.isModifiedRemoved();
if (hasConversionRule)
- otherArgs.prepend(arg.name() + QLatin1String(CONV_RULE_OUT_VAR_SUFFIX));
+ otherArgs.prepend(arg.name() + CONV_RULE_OUT_VAR_SUFFIX);
else
- otherArgs.prepend(QLatin1String(CPP_ARG_REMOVED) + QString::number(i));
+ otherArgs.prepend(CPP_ARG_REMOVED(i));
}
if (otherArgsModified)
userArgs << otherArgs;
@@ -3621,16 +3763,14 @@ void CppGenerator::writeMethodCall(TextStream &s, const AbstractMetaFunctionCPtr
StringStream uva(TextStream::Language::Cpp);
if (func->isOperatorOverload() && !func->isCallOperator()) {
- QString firstArg(QLatin1Char('('));
+ QString firstArg(u'(');
if (!func->isPointerOperator()) // no de-reference operator
- firstArg += QLatin1Char('*');
- firstArg += QLatin1String(CPP_SELF_VAR);
- firstArg += QLatin1Char(')');
- QString secondArg = QLatin1String(CPP_ARG0);
- if (!func->isUnaryOperator()
- && func->arguments().constFirst().type().shouldDereferenceArgument()) {
- AbstractMetaType::dereference(&secondArg);
- }
+ firstArg += u'*';
+ firstArg += CPP_SELF_VAR;
+ firstArg += u')';
+ QString secondArg = CPP_ARG0;
+ if (!func->isUnaryOperator())
+ AbstractMetaType::applyDereference(&secondArg, argumentIndirections.at(0));
if (func->isUnaryOperator())
std::swap(firstArg, secondArg);
@@ -3643,7 +3783,7 @@ void CppGenerator::writeMethodCall(TextStream &s, const AbstractMetaFunctionCPtr
std::swap(firstArg, secondArg);
// Emulate operator+=/-= (__iadd__, __isub__) by using ++/--
- if (((op == QLatin1String("++")) || (op == QLatin1String("--"))) && !func->isReverseOperator()) {
+ if (((op == u"++") || (op == u"--")) && !func->isReverseOperator()) {
s << "\nfor (int i = 0; i < " << secondArg
<< "; ++i, " << op << firstArg << ");\n";
mc << firstArg;
@@ -3658,31 +3798,23 @@ void CppGenerator::writeMethodCall(TextStream &s, const AbstractMetaFunctionCPtr
isCtor = true;
const auto owner = func->ownerClass();
Q_ASSERT(owner == context.metaClass());
- QString className = context.useWrapper()
- ? context.wrapperName() : owner->qualifiedCppName();
-
- if (func->functionType() == AbstractMetaFunction::CopyConstructorFunction && maxArgs == 1) {
- mc << "new ::" << className << "(*" << CPP_ARG0 << ')';
+ if (func->functionType() == AbstractMetaFunction::CopyConstructorFunction
+ && maxArgs == 1) {
+ mc << "new " << globalScopePrefix(context) << context.effectiveClassName()
+ << "(*" << CPP_ARG0 << ')';
} else {
- QString ctorCall = className + QLatin1Char('(') + userArgs.join(QLatin1String(", ")) + QLatin1Char(')');
- if (usePySideExtensions() && owner->isQObject()) {
+ const QString ctorCall = context.effectiveClassName() + u'('
+ + userArgs.join(u", "_s) + u')';
+ if (usePySideExtensions() && isQObject(owner)) {
s << "void *addr = PySide::nextQObjectMemoryAddr();\n";
- uva << "if (addr) {\n";
- {
- Indentation indent(uva);
-
- uva << "cptr = new (addr) ::" << ctorCall << ";\n"
- << "PySide::setNextQObjectMemoryAddr(0);"
- << '\n';
- }
- uva << "} else {\n";
- {
- Indentation indent(uva);
- uva << "cptr = new ::" << ctorCall << ";\n";
- }
- uva << "}\n";
+ uva << "if (addr != nullptr) {\n" << indent
+ << "cptr = new (addr) " << globalScopePrefix(context) << ctorCall
+ << ";\nPySide::setNextQObjectMemoryAddr(nullptr);\n" << outdent
+ << "} else {\n" << indent
+ << "cptr = new " << globalScopePrefix(context) << ctorCall << ";\n"
+ << outdent << "}\n";
} else {
- mc << "new ::" << ctorCall;
+ mc << "new " << globalScopePrefix(context) << ctorCall;
}
}
} else {
@@ -3696,21 +3828,22 @@ void CppGenerator::writeMethodCall(TextStream &s, const AbstractMetaFunctionCPtr
const bool hasWrapper = shouldGenerateCppWrapper(ownerClass);
if (!avoidProtectedHack() || !func->isProtected() || !hasWrapper) {
if (func->isStatic()) {
- mc << "::" << methodCallClassName << "::";
+ mc << m_gsp << methodCallClassName << "::";
} else {
+ const QString cppSelfVar = CPP_SELF_VAR;
const QString selfVarCast = func->ownerClass() == func->implementingClass()
- ? QLatin1String(CPP_SELF_VAR)
- : QLatin1String("reinterpret_cast<") + methodCallClassName
- + QLatin1String(" *>(") + QLatin1String(CPP_SELF_VAR) + QLatin1Char(')');
+ ? cppSelfVar
+ : u"reinterpret_cast<"_s + methodCallClassName
+ + u" *>("_s + cppSelfVar + u')';
if (func->isConstant()) {
if (avoidProtectedHack()) {
- mc << "const_cast<const ::";
+ mc << "const_cast<const " << globalScopePrefix(context);
if (ownerClass->cppWrapper().testFlag(AbstractMetaClass::CppProtectedHackWrapper)) {
// PYSIDE-500: Need a special wrapper cast when inherited
const QString selfWrapCast = ownerClass == func->implementingClass()
- ? QLatin1String(CPP_SELF_VAR)
- : QLatin1String("reinterpret_cast<") + wrapperName(ownerClass)
- + QLatin1String(" *>(") + QLatin1String(CPP_SELF_VAR) + QLatin1Char(')');
+ ? cppSelfVar
+ : u"reinterpret_cast<"_s + wrapperName(ownerClass)
+ + u" *>("_s + cppSelfVar + u')';
mc << wrapperName(ownerClass);
mc << " *>(" << selfWrapCast << ")->";
}
@@ -3719,7 +3852,7 @@ void CppGenerator::writeMethodCall(TextStream &s, const AbstractMetaFunctionCPtr
mc << " *>(" << selfVarCast << ")->";
}
} else {
- mc << "const_cast<const ::" << methodCallClassName;
+ mc << "const_cast<const " << m_gsp << methodCallClassName;
mc << " *>(" << selfVarCast << ")->";
}
} else {
@@ -3735,26 +3868,26 @@ void CppGenerator::writeMethodCall(TextStream &s, const AbstractMetaFunctionCPtr
if (!func->isStatic()) {
const bool directInheritance = context.metaClass() == ownerClass;
mc << (directInheritance ? "static_cast" : "reinterpret_cast")
- << "<::" << wrapperName(ownerClass) << " *>(" << CPP_SELF_VAR << ")->";
+ << '<' << wrapperName(ownerClass) << " *>("
+ << CPP_SELF_VAR << ")->";
}
if (!func->isAbstract())
mc << (func->isProtected() ? wrapperName(func->ownerClass()) :
- QLatin1String("::")
- + methodCallClassName) << "::";
+ m_gsp + methodCallClassName) << "::";
mc << func->originalName() << "_protected";
}
} else {
mc << func->originalName();
}
- mc << '(' << userArgs.join(QLatin1String(", ")) << ')';
+ mc << '(' << userArgs.join(u", "_s) << ')';
if (!func->isAbstract() && func->isVirtual()) {
if (!avoidProtectedHack() || !func->isProtected()) {
QString virtualCall = mc;
QString normalCall = virtualCall;
- virtualCall.replace(QLatin1String("%CLASS_NAME"),
+ virtualCall.replace(u"%CLASS_NAME"_s,
methodCallClassName);
- normalCall.remove(QLatin1String("::%CLASS_NAME::"));
+ normalCall.remove(u"::%CLASS_NAME::"_s);
mc.clear();
mc << "Shiboken::Object::hasCppWrapper(reinterpret_cast<SbkObject *>(self))\n"
<< " ? " << virtualCall << '\n'
@@ -3766,9 +3899,9 @@ void CppGenerator::writeMethodCall(TextStream &s, const AbstractMetaFunctionCPtr
if (!injectedCodeCallsCppFunction(context, func)) {
const bool allowThread = func->allowThread();
- const bool generateExceptionHandling = func->generateExceptionHandling();
+ generateExceptionHandling = func->generateExceptionHandling();
if (generateExceptionHandling) {
- s << "try {\n" << indent;
+ s << tryBlock << indent;
if (allowThread) {
s << "Shiboken::ThreadStateSaver threadSaver;\n"
<< "threadSaver.save();\n";
@@ -3788,13 +3921,13 @@ void CppGenerator::writeMethodCall(TextStream &s, const AbstractMetaFunctionCPtr
if (metaEnum.has_value()) {
QString enumName;
if (metaEnum->isProtected()) {
- enumName = context.wrapperName() + QLatin1String("::")
+ enumName = context.wrapperName() + u"::"_s
+ metaEnum.value().name();
} else {
enumName = func->type().cppSignature();
}
- const QString methodCall = enumName + QLatin1Char('(')
- + mc.toString() + QLatin1Char(')');
+ const QString methodCall = enumName + u'('
+ + mc.toString() + u')';
mc.clear();
mc << methodCall;
s << enumName;
@@ -3806,9 +3939,9 @@ void CppGenerator::writeMethodCall(TextStream &s, const AbstractMetaFunctionCPtr
s << func->type().cppSignature();
if (func->type().isObjectTypeUsedAsValueType()) {
s << '*';
- methodCall = QLatin1String("new ")
+ methodCall = u"new "_s
+ func->type().typeEntry()->qualifiedCppName()
- + QLatin1Char('(') + mc.toString() + QLatin1Char(')');
+ + u'(' + mc.toString() + u')';
}
}
s << " " << CPP_RETURN_VAR << " = " << methodCall << ";\n";
@@ -3818,21 +3951,29 @@ void CppGenerator::writeMethodCall(TextStream &s, const AbstractMetaFunctionCPtr
if (allowThread) {
s << (generateExceptionHandling
- ? "threadSaver.restore();" : END_ALLOW_THREADS) << '\n';
+ ? u"threadSaver.restore();"_s : END_ALLOW_THREADS) << '\n';
}
// Convert result
- if (!func->conversionRule(TypeSystem::TargetLangCode, 0).isEmpty()) {
- writeConversionRule(s, func, TypeSystem::TargetLangCode, QLatin1String(PYTHON_RETURN_VAR));
+ const auto funcType = func->type();
+ if (func->hasConversionRule(TypeSystem::TargetLangCode, 0)) {
+ writeConversionRule(s, func, TypeSystem::TargetLangCode,
+ PYTHON_RETURN_VAR);
} else if (!isCtor && !func->isInplaceOperator() && !func->isVoid()
&& !func->injectedCodeHasReturnValueAttribution(TypeSystem::TargetLangCode)) {
- s << PYTHON_RETURN_VAR << " = ";
if (func->type().isObjectTypeUsedAsValueType()) {
- s << "Shiboken::Object::newObject("
+ s << PYTHON_RETURN_VAR << " = Shiboken::Object::newObject("
<< cpythonTypeNameExt(func->type().typeEntry())
<< ", " << CPP_RETURN_VAR << ", true, true)";
+ } else if (func->generateOpaqueContainerReturn()) {
+ const QString creationFunc = opaqueContainerCreationFunc(funcType);
+ writeOpaqueContainerCreationFuncDecl(s, creationFunc, funcType);
+ s << PYTHON_RETURN_VAR << " = " << creationFunc
+ << "(&" << CPP_RETURN_VAR << ");\n";
} else {
- writeToPythonConversion(s, func->type(), func->ownerClass(), QLatin1String(CPP_RETURN_VAR));
+ s << PYTHON_RETURN_VAR << " = ";
+ writeToPythonConversion(s, funcType, func->ownerClass(),
+ CPP_RETURN_VAR);
}
s << ";\n";
}
@@ -3840,8 +3981,8 @@ void CppGenerator::writeMethodCall(TextStream &s, const AbstractMetaFunctionCPtr
if (generateExceptionHandling) { // "catch" code
s << outdent << defaultExceptionHandling;
}
- }
- }
+ } // !injected code calls C++ function
+ } // !userAdded
if (func->hasInjectedCode() && !func->isConstructor())
writeCodeSnips(s, snips, TypeSystem::CodeSnipPositionEnd,
@@ -3868,25 +4009,11 @@ void CppGenerator::writeMethodCall(TextStream &s, const AbstractMetaFunctionCPtr
if (!ownership_mods.isEmpty()) {
s << '\n' << "// Ownership transferences.\n";
- for (const ArgumentModification &arg_mod : qAsConst(ownership_mods)) {
- const AbstractMetaClass *wrappedClass = nullptr;
- QString errorMessage;
- QString pyArgName = argumentNameFromIndex(api(), func, arg_mod.index(),
- &wrappedClass, &errorMessage);
- if (!wrappedClass) {
- QString message;
- QTextStream str(&message);
- str << "Invalid ownership modification for argument " << arg_mod.index()
- << " (" << pyArgName << ") of ";
- if (const AbstractMetaClass *declaringClass = func->declaringClass())
- str << declaringClass->name() << "::";
- str << func->name() << "(): " << errorMessage;
- qCWarning(lcShiboken, "%s", qPrintable(message));
- s << "#error " << message << '\n';
- break;
- }
+ for (const ArgumentModification &arg_mod : std::as_const(ownership_mods)) {
+ const int argIndex = arg_mod.index();
+ const QString pyArgName = argumentNameFromIndex(api(), func, argIndex);
- if (arg_mod.index() == 0 || arg_mod.owner().index == 0)
+ if (argIndex == 0 || arg_mod.owner().index == 0)
hasReturnPolicy = true;
// The default ownership does nothing. This is useful to avoid automatic heuristically
@@ -3898,11 +4025,9 @@ void CppGenerator::writeMethodCall(TextStream &s, const AbstractMetaFunctionCPtr
s << "Shiboken::Object::";
if (ownership == TypeSystem::TargetLangOwnership) {
s << "getOwnership(" << pyArgName << ");";
- } else if (wrappedClass->hasVirtualDestructor()) {
- if (arg_mod.index() == 0)
- s << "releaseOwnership(" << PYTHON_RETURN_VAR << ");";
- else
- s << "releaseOwnership(" << pyArgName << ");";
+ } else if (auto ac = argumentClassFromIndex(api(), func, argIndex);
+ ac && ac->hasVirtualDestructor()) {
+ s << "releaseOwnership(" << pyArgName << ");";
} else {
s << "invalidate(" << pyArgName << ");";
}
@@ -3910,7 +4035,7 @@ void CppGenerator::writeMethodCall(TextStream &s, const AbstractMetaFunctionCPtr
}
} else if (!refcount_mods.isEmpty()) {
- for (const ArgumentModification &arg_mod : qAsConst(refcount_mods)) {
+ for (const ArgumentModification &arg_mod : std::as_const(refcount_mods)) {
ReferenceCount refCount = arg_mod.referenceCounts().constFirst();
if (refCount.action != ReferenceCount::Set
&& refCount.action != ReferenceCount::Remove
@@ -3918,28 +4043,9 @@ void CppGenerator::writeMethodCall(TextStream &s, const AbstractMetaFunctionCPtr
qCWarning(lcShiboken) << "\"set\", \"add\" and \"remove\" are the only values supported by Shiboken for action attribute of reference-count tag.";
continue;
}
- const AbstractMetaClass *wrappedClass = nullptr;
-
- QString pyArgName;
- if (refCount.action == ReferenceCount::Remove) {
- pyArgName = QLatin1String("Py_None");
- } else {
- QString errorMessage;
- pyArgName = argumentNameFromIndex(api(), func, arg_mod.index(),
- &wrappedClass, &errorMessage);
- if (pyArgName.isEmpty()) {
- QString message;
- QTextStream str(&message);
- str << "Invalid reference count modification for argument "
- << arg_mod.index() << " of ";
- if (const AbstractMetaClass *declaringClass = func->declaringClass())
- str << declaringClass->name() << "::";
- str << func->name() << "(): " << errorMessage;
- qCWarning(lcShiboken, "%s", qPrintable(message));
- s << "#error " << message << "\n\n";
- break;
- }
- }
+ const int argIndex = arg_mod.index();
+ const QString pyArgName = refCount.action == ReferenceCount::Remove
+ ? u"Py_None"_s : argumentNameFromIndex(api(), func, argIndex);
if (refCount.action == ReferenceCount::Add || refCount.action == ReferenceCount::Set)
s << "Shiboken::Object::keepReference(";
@@ -3949,25 +4055,28 @@ void CppGenerator::writeMethodCall(TextStream &s, const AbstractMetaFunctionCPtr
s << "reinterpret_cast<SbkObject *>(self), \"";
QString varName = arg_mod.referenceCounts().constFirst().varName;
if (varName.isEmpty())
- varName = func->minimalSignature() + QString::number(arg_mod.index());
+ varName = func->minimalSignature() + QString::number(argIndex);
s << varName << "\", " << pyArgName
<< (refCount.action == ReferenceCount::Add ? ", true" : "")
<< ");\n";
- if (arg_mod.index() == 0)
+ if (argIndex == 0)
hasReturnPolicy = true;
}
}
writeParentChildManagement(s, func, usesPyArgs, !hasReturnPolicy);
+
+ if (generateExceptionHandling)
+ s << propagateException;
}
-QStringList CppGenerator::getAncestorMultipleInheritance(const AbstractMetaClass *metaClass)
+QStringList CppGenerator::getAncestorMultipleInheritance(const AbstractMetaClassCPtr &metaClass)
{
QStringList result;
- const AbstractMetaClassList &baseClases = metaClass->typeSystemBaseClasses();
+ const auto &baseClases = metaClass->typeSystemBaseClasses();
if (!baseClases.isEmpty()) {
- for (const AbstractMetaClass *baseClass : baseClases) {
+ for (const auto &baseClass : baseClases) {
QString offset;
QTextStream(&offset) << "reinterpret_cast<uintptr_t>(static_cast<const "
<< baseClass->qualifiedCppName() << " *>(class_ptr)) - base";
@@ -3980,246 +4089,203 @@ QStringList CppGenerator::getAncestorMultipleInheritance(const AbstractMetaClass
result.append(offset);
}
- for (const AbstractMetaClass *baseClass : baseClases)
+ for (const auto &baseClass : baseClases)
result.append(getAncestorMultipleInheritance(baseClass));
}
return result;
}
-void CppGenerator::writeMultipleInheritanceInitializerFunction(TextStream &s, const AbstractMetaClass *metaClass)
+void CppGenerator::writeMultipleInheritanceInitializerFunction(TextStream &s,
+ const AbstractMetaClassCPtr &metaClass)
{
QString className = metaClass->qualifiedCppName();
const QStringList ancestors = getAncestorMultipleInheritance(metaClass);
- s << "static int mi_offsets[] = { ";
- for (int i = 0; i < ancestors.size(); i++)
- s << "-1, ";
- s << "-1 };\n"
- << "int *\n"
+ s << "int *\n"
<< multipleInheritanceInitializerFunctionName(metaClass) << "(const void *cptr)\n"
- << "{\n" << indent
- << "if (mi_offsets[0] == -1) {\n";
- {
- Indentation indent(s);
- s << "std::set<int> offsets;\n"
- << "const auto *class_ptr = reinterpret_cast<const " << className << " *>(cptr);\n"
- << "const auto base = reinterpret_cast<uintptr_t>(class_ptr);\n";
-
- for (const QString &ancestor : ancestors)
- s << "offsets.insert(int(" << ancestor << "));\n";
-
- s << "\noffsets.erase(0);\n\n"
- << "std::copy(offsets.cbegin(), offsets.cend(), mi_offsets);\n";
- }
- s << "}\nreturn mi_offsets;\n" << outdent << "}\n";
-}
-
-void CppGenerator::writeSpecialCastFunction(TextStream &s, const AbstractMetaClass *metaClass)
+ << "{\n" << indent;
+ s << "static int mi_offsets[] = {-2";
+ for (qsizetype i = 0; i < ancestors.size(); i++)
+ s << ", 0";
+ s << "};\n"
+ << "if (mi_offsets[0] == -2) {\n" << indent
+ << "const auto *class_ptr = reinterpret_cast<const " << className << " *>(cptr);\n"
+ << "const auto base = reinterpret_cast<uintptr_t>(class_ptr);\n"
+ << "int *p = mi_offsets;\n";
+
+ for (const QString &ancestor : ancestors)
+ s << "*p++ = int(" << ancestor << ");\n";
+ s << "std::sort(mi_offsets, p);\n"
+ << "auto *end = std::unique(mi_offsets, p);\n"
+ << "*end++ = -1;\n"
+ << "if (mi_offsets[0] == 0)\n"
+ << indent
+ << "std::memmove(&mi_offsets[0], &mi_offsets[1], (end - mi_offsets - 1) * sizeof(int));\n"
+ << outdent << outdent
+ << "}\nreturn mi_offsets;\n" << outdent << "}\n";
+}
+
+void CppGenerator::writeSpecialCastFunction(TextStream &s, const AbstractMetaClassCPtr &metaClass)
{
QString className = metaClass->qualifiedCppName();
s << "static void * " << cpythonSpecialCastFunctionName(metaClass)
<< "(void *obj, PyTypeObject *desiredType)\n{\n" << indent
- << "auto me = reinterpret_cast< ::" << className << " *>(obj);\n";
+ << "auto me = reinterpret_cast< " << m_gsp << className << " *>(obj);\n";
bool firstClass = true;
- const AbstractMetaClassList &allAncestors = metaClass->allTypeSystemAncestors();
- for (const AbstractMetaClass *baseClass : allAncestors) {
+ const auto &allAncestors = metaClass->allTypeSystemAncestors();
+ for (const auto &baseClass : allAncestors) {
if (!firstClass)
s << "else ";
- s << "if (desiredType == " << cpythonTypeNameExt(baseClass->typeEntry()) << ")\n";
- Indentation indent(s);
- s << "return static_cast< ::" << baseClass->qualifiedCppName() << " *>(me);\n";
+ s << "if (desiredType == " << cpythonTypeNameExt(baseClass->typeEntry())
+ << ")\n" << indent
+ << "return static_cast< " << getFullTypeName(baseClass) << " *>(me);\n"
+ << outdent;
firstClass = false;
}
s << "return me;\n" << outdent << "}\n\n";
}
void CppGenerator::writePrimitiveConverterInitialization(TextStream &s,
- const CustomConversion *customConversion)
+ const CustomConversionPtr &customConversion)
{
- const TypeEntry *type = customConversion->ownerType();
+ TypeEntryCPtr type = customConversion->ownerType();
QString converter = converterObject(type);
s << "// Register converter for type '" << type->qualifiedTargetLangName() << "'.\n"
<< converter << " = Shiboken::Conversions::createConverter(";
- if (type->targetLangApiName() == type->name())
- s << '0';
- else if (type->targetLangApiName() == cPyObjectT())
+ if (!type->hasTargetLangApiType())
+ s << "nullptr";
+ else if (type->targetLangApiName() == cPyObjectT)
s << "&PyBaseObject_Type";
else
s << '&' << type->targetLangApiName() << "_Type";
QString typeName = fixedCppTypeName(type);
s << ", " << cppToPythonFunctionName(typeName, typeName) << ");\n"
- << "Shiboken::Conversions::registerConverterName(" << converter << ", \""
- << type->qualifiedCppName() << "\");\n";
+ << registerConverterName(type->qualifiedCppName(), converter);
writeCustomConverterRegister(s, customConversion, converter);
}
-void CppGenerator::writeEnumConverterInitialization(TextStream &s, const AbstractMetaEnum &metaEnum)
+static void registerConverterInScopes(TextStream &s, QStringView signature,
+ QAnyStringView varName = converterVar)
{
- if (metaEnum.isPrivate() || metaEnum.isAnonymous())
- return;
- writeEnumConverterInitialization(s, metaEnum.typeEntry());
+ while (true) {
+ s << registerConverterName(signature, varName);
+ const auto qualifierPos = signature.indexOf("::"_L1);
+ if (qualifierPos == -1)
+ break;
+ signature = signature.sliced(qualifierPos + 2);
+ }
}
-void CppGenerator::writeEnumConverterInitialization(TextStream &s, const TypeEntry *enumType)
+void CppGenerator::writeEnumConverterInitialization(TextStream &s, const AbstractMetaEnum &metaEnum)
{
- if (!enumType)
+ if (metaEnum.isPrivate() || metaEnum.isAnonymous())
return;
- QString enumFlagName = enumType->isFlags() ? QLatin1String("flag") : QLatin1String("enum");
- QString enumPythonType = cpythonTypeNameExt(enumType);
-
- const FlagsTypeEntry *flags = nullptr;
- if (enumType->isFlags())
- flags = static_cast<const FlagsTypeEntry *>(enumType);
-
- s << "// Register converter for " << enumFlagName << " '" << enumType->qualifiedCppName()
- << "'.\n{\n";
- {
- Indentation indent(s);
- QString typeName = fixedCppTypeName(enumType);
- s << "SbkConverter *converter = Shiboken::Conversions::createConverter("
- << enumPythonType << ',' << '\n';
- {
- Indentation indent(s);
- s << cppToPythonFunctionName(typeName, typeName) << ");\n";
- }
+ EnumTypeEntryCPtr enumType = metaEnum.typeEntry();
+ Q_ASSERT(enumType);
- if (flags) {
- QString enumTypeName = fixedCppTypeName(flags->originator());
- QString toCpp = pythonToCppFunctionName(enumTypeName, typeName);
- QString isConv = convertibleToCppFunctionName(enumTypeName, typeName);
- writeAddPythonToCppConversion(s, QLatin1String("converter"), toCpp, isConv);
- }
+ static const char enumPythonVar[] = "EType";
- QString toCpp = pythonToCppFunctionName(typeName, typeName);
- QString isConv = convertibleToCppFunctionName(typeName, typeName);
- writeAddPythonToCppConversion(s, QLatin1String("converter"), toCpp, isConv);
+ s << "// Register converter for enum '" << enumType->qualifiedCppName()
+ << "'.\n{\n" << indent;
- if (flags) {
- QString toCpp = pythonToCppFunctionName(QLatin1String("number"), typeName);
- QString isConv = convertibleToCppFunctionName(QLatin1String("number"), typeName);
- writeAddPythonToCppConversion(s, QLatin1String("converter"), toCpp, isConv);
- }
+ const QString typeName = fixedCppTypeName(enumType);
+ s << "SbkConverter *converter = Shiboken::Conversions::createConverter("
+ << enumPythonVar << ',' << '\n' << indent
+ << cppToPythonFunctionName(typeName, typeName) << ");\n" << outdent;
- s << "Shiboken::Enum::setTypeConverter(" << enumPythonType
- << ", converter, " << (enumType->isFlags() ? "true" : "false") << ");\n";
-
- QString signature = enumType->qualifiedCppName();
- // Replace "QFlags<Class::Option>" by "Class::Options"
- if (flags && signature.startsWith(QLatin1String("QFlags<")) && signature.endsWith(QLatin1Char('>'))) {
- signature.chop(1);
- signature.remove(0, 7);
- const int lastQualifierPos = signature.lastIndexOf(QLatin1String("::"));
- if (lastQualifierPos != -1) {
- signature.replace(lastQualifierPos + 2, signature.size() - lastQualifierPos - 2,
- flags->flagsName());
- } else {
- signature = flags->flagsName();
- }
- }
+ const QString toCpp = pythonToCppFunctionName(typeName, typeName);
+ const QString isConv = convertibleToCppFunctionName(typeName, typeName);
+ writeAddPythonToCppConversion(s, u"converter"_s, toCpp, isConv);
+ s << "Shiboken::Enum::setTypeConverter(" << enumPythonVar
+ << ", converter);\n";
- while (true) {
- s << "Shiboken::Conversions::registerConverterName(converter, \""
- << signature << "\");\n";
- const int qualifierPos = signature.indexOf(QLatin1String("::"));
- if (qualifierPos != -1)
- signature.remove(0, qualifierPos + 2);
- else
- break;
- }
- }
- s << "}\n";
+ registerConverterInScopes(s, enumType->qualifiedCppName());
+ if (auto flags = enumType->flags())
+ s << "// Register converter for flag '" << flags->qualifiedCppName() << "'.\n"
+ << registerConverterName(flags->name()) // QMetaType
+ << registerConverterName(flags->originalName()); // Signals with flags
- if (!flags)
- writeEnumConverterInitialization(s, static_cast<const EnumTypeEntry *>(enumType)->flags());
+ s << outdent << "}\n";
}
-void CppGenerator::writeContainerConverterInitialization(TextStream &s, const AbstractMetaType &type) const
+QString CppGenerator::writeContainerConverterInitialization(TextStream &s,
+ const AbstractMetaType &type,
+ const ApiExtractorResult &api)
{
- QByteArray cppSignature = QMetaObject::normalizedSignature(type.cppSignature().toUtf8());
+ const auto cppSignature =
+ QString::fromUtf8(QMetaObject::normalizedSignature(type.cppSignature().toUtf8()));
s << "// Register converter for type '" << cppSignature << "'.\n";
- QString converter = converterObject(type);
+ const QString converter = converterObject(type);
s << converter << " = Shiboken::Conversions::createConverter(";
- if (type.typeEntry()->targetLangApiName() == cPyObjectT()) {
+
+ Q_ASSERT(type.typeEntry()->isContainer());
+ const auto typeEntry = std::static_pointer_cast<const ContainerTypeEntry>(type.typeEntry());
+
+ const QString targetTypeName = containerNativeToTargetTypeName(typeEntry);
+ if (targetTypeName == cPyObjectT) {
s << "&PyBaseObject_Type";
} else {
- QString baseName = cpythonBaseName(type.typeEntry());
- if (baseName == cPySequenceT())
- baseName = cPyListT();
- s << '&' << baseName << "_Type";
- }
- QString typeName = fixedCppTypeName(type);
- s << ", " << cppToPythonFunctionName(typeName, typeName) << ");\n";
- QString toCpp = pythonToCppFunctionName(typeName, typeName);
- QString isConv = convertibleToCppFunctionName(typeName, typeName);
- s << "Shiboken::Conversions::registerConverterName(" << converter << ", \"" << cppSignature << "\");\n";
- if (usePySideExtensions() && cppSignature.startsWith("const ") && cppSignature.endsWith("&")) {
- cppSignature.chop(1);
- cppSignature.remove(0, sizeof("const ") / sizeof(char) - 1);
- s << "Shiboken::Conversions::registerConverterName(" << converter << ", \"" << cppSignature << "\");\n";
+ s << '&' << targetTypeName << "_Type";
}
- writeAddPythonToCppConversion(s, converterObject(type), toCpp, isConv);
-}
-void CppGenerator::writeSmartPointerConverterInitialization(TextStream &s, const AbstractMetaType &type) const
-{
- const QByteArray cppSignature = type.cppSignature().toUtf8();
- auto writeConversionRegister = [&s](const AbstractMetaType &sourceType, const QString &targetTypeName, const QString &targetConverter)
- {
- const QString sourceTypeName = fixedCppTypeName(sourceType);
- const QString toCpp = pythonToCppFunctionName(sourceTypeName, targetTypeName);
- const QString isConv = convertibleToCppFunctionName(sourceTypeName, targetTypeName);
-
- writeAddPythonToCppConversion(s, targetConverter, toCpp, isConv);
- };
+ const QString typeName = fixedCppTypeName(type);
+ s << ", " << cppToPythonFunctionName(typeName, targetTypeName) << ");\n";
- auto klass = AbstractMetaClass::findClass(api().classes(), type.instantiations().at(0).typeEntry());
- if (!klass)
- return;
+ s << registerConverterName(cppSignature, converter);
+ if (usePySideExtensions() && cppSignature.startsWith("const "_L1)
+ && cppSignature.endsWith(u'&')) {
+ auto underlyingType = QStringView{cppSignature}.sliced(6, cppSignature.size() - 7);
+ s << registerConverterName(underlyingType, converter);
+ }
- const auto classes = klass->typeSystemBaseClasses();
- if (classes.isEmpty())
- return;
+ for (const auto &conv : typeEntry->customConversion()->targetToNativeConversions()) {
+ const QString &sourceTypeName = conv.sourceTypeName();
+ QString toCpp = pythonToCppFunctionName(sourceTypeName, typeName);
+ QString isConv = convertibleToCppFunctionName(sourceTypeName, typeName);
+ writeAddPythonToCppConversion(s, converter, toCpp, isConv);
+ }
- s << "// Register SmartPointer converter for type '" << cppSignature << "'." << '\n'
- << "///////////////////////////////////////////////////////////////////////////////////////\n\n";
-
- for (auto k : classes) {
- auto smartTargetType = findSmartPointerInstantiation(k->typeEntry());
- if (smartTargetType.has_value()) {
- s << "// Convert to SmartPointer derived class: ["
- << smartTargetType->cppSignature() << "]\n";
- const QString converter = u"Shiboken::Conversions::getConverter(\""_qs
- + smartTargetType->cppSignature() + u"\")"_qs;
- writeConversionRegister(type, fixedCppTypeName(smartTargetType.value()), converter);
- } else {
- s << "// Class not found:" << type.instantiations().at(0).cppSignature();
+ auto typedefItPair = api.typedefTargetToName().equal_range(type.cppSignature());
+ if (typedefItPair.first != typedefItPair.second) {
+ auto *typeDb = TypeDatabase::instance();
+ s << "// Register converters for type aliases of " << cppSignature << "'.\n";
+ for (auto it = typedefItPair.first; it != typedefItPair.second; ++it) {
+ if (!typeDb->findType(it.value()))
+ s << registerConverterName(it.value(), converter);
}
}
- s << "///////////////////////////////////////////////////////////////////////////////////////" << '\n' << '\n';
+ return converter;
+}
+
+QString CppGenerator::typeInitStruct(const TypeEntryCPtr &te)
+{
+ return cppApiVariableName(te->targetLangPackage()) + u'['
+ + getTypeIndexVariableName(te) + u']';
}
-void CppGenerator::writeExtendedConverterInitialization(TextStream &s, const TypeEntry *externalType,
+void CppGenerator::writeExtendedConverterInitialization(TextStream &s,
+ const TypeEntryCPtr &externalType,
const AbstractMetaClassCList &conversions)
{
s << "// Extended implicit conversions for " << externalType->qualifiedTargetLangName()
<< ".\n";
- for (const AbstractMetaClass *sourceClass : conversions) {
- const QString converterVar = cppApiVariableName(externalType->targetLangPackage()) + QLatin1Char('[')
- + getTypeIndexVariableName(externalType) + u']';
+ for (const auto &sourceClass : conversions) {
QString sourceTypeName = fixedCppTypeName(sourceClass->typeEntry());
QString targetTypeName = fixedCppTypeName(externalType);
QString toCpp = pythonToCppFunctionName(sourceTypeName, targetTypeName);
QString isConv = convertibleToCppFunctionName(sourceTypeName, targetTypeName);
- writeAddPythonToCppConversion(s, converterVar, toCpp, isConv);
+ if (!externalType->isPrimitive())
+ s << cpythonTypeNameExt(externalType) << ";\n";
+ writeAddPythonToCppConversion(s, typeInitStruct(externalType), toCpp, isConv);
}
}
-QString CppGenerator::multipleInheritanceInitializerFunctionName(const AbstractMetaClass *metaClass)
+QString CppGenerator::multipleInheritanceInitializerFunctionName(const AbstractMetaClassCPtr &metaClass)
{
- return cpythonBaseName(metaClass->typeEntry()) + QLatin1String("_mi_init");
+ return cpythonBaseName(metaClass->typeEntry()) + u"_mi_init"_s;
}
-bool CppGenerator::supportsMappingProtocol(const AbstractMetaClass *metaClass)
+bool CppGenerator::supportsMappingProtocol(const AbstractMetaClassCPtr &metaClass)
{
for (const auto &m : mappingProtocols()) {
if (metaClass->hasFunction(m.name))
@@ -4229,7 +4295,7 @@ bool CppGenerator::supportsMappingProtocol(const AbstractMetaClass *metaClass)
return false;
}
-bool CppGenerator::supportsNumberProtocol(const AbstractMetaClass *metaClass) const
+bool CppGenerator::supportsNumberProtocol(const AbstractMetaClassCPtr &metaClass)
{
return metaClass->hasArithmeticOperatorOverload()
|| metaClass->hasIncDecrementOperatorOverload()
@@ -4238,18 +4304,18 @@ bool CppGenerator::supportsNumberProtocol(const AbstractMetaClass *metaClass) co
|| hasBoolCast(metaClass);
}
-bool CppGenerator::supportsSequenceProtocol(const AbstractMetaClass *metaClass)
+bool CppGenerator::supportsSequenceProtocol(const AbstractMetaClassCPtr &metaClass)
{
for (const auto &seq : sequenceProtocols()) {
if (metaClass->hasFunction(seq.name))
return true;
}
- const ComplexTypeEntry *baseType = metaClass->typeEntry()->baseContainerType();
+ ComplexTypeEntryCPtr baseType = metaClass->typeEntry()->baseContainerType();
return baseType && baseType->isContainer();
}
-bool CppGenerator::shouldGenerateGetSetList(const AbstractMetaClass *metaClass) const
+bool CppGenerator::shouldGenerateGetSetList(const AbstractMetaClassCPtr &metaClass)
{
for (const AbstractMetaField &f : metaClass->fields()) {
if (!f.isStatic())
@@ -4267,63 +4333,57 @@ bool CppGenerator::shouldGenerateGetSetList(const AbstractMetaClass *metaClass)
struct pyTypeSlotEntry
{
- explicit pyTypeSlotEntry(const char *name, const QString &function) :
+ explicit pyTypeSlotEntry(QAnyStringView name, QAnyStringView function) :
m_name(name), m_function(function) {}
- const char *m_name;
- const QString &m_function;
+ QAnyStringView m_name;
+ QAnyStringView m_function;
};
TextStream &operator<<(TextStream &str, const pyTypeSlotEntry &e)
{
- str << '{' << e.m_name << ',';
- const int padding = qMax(0, 18 - int(strlen(e.m_name)));
- for (int p = 0; p < padding; ++p)
- str << ' ';
- if (e.m_function.isEmpty())
- str << NULL_PTR;
- else
- str << "reinterpret_cast<void *>(" << e.m_function << ')';
- str << "},\n";
+ if (!e.m_function.isEmpty()) {
+ str << '{' << e.m_name << ',' << Pad(' ', qMax(0, 18 - e.m_name.size()))
+ << "reinterpret_cast<void *>(" << e.m_function << ")},\n";
+ }
return str;
}
void CppGenerator::writeClassDefinition(TextStream &s,
- const AbstractMetaClass *metaClass,
+ const AbstractMetaClassCPtr &metaClass,
const GeneratorContext &classContext)
{
- QString tp_flags;
QString tp_init;
QString tp_new;
QString tp_dealloc;
QString tp_hash;
QString tp_call;
const QString className = chopType(cpythonTypeName(metaClass));
- QString baseClassName;
AbstractMetaFunctionCList ctors;
- const auto &allCtors = metaClass->queryFunctions(FunctionQueryOption::Constructors);
+ const auto &allCtors = metaClass->queryFunctions(FunctionQueryOption::AnyConstructor);
for (const auto &f : allCtors) {
- if (!f->isPrivate() && !f->isModifiedRemoved() && !classContext.forSmartPointer())
+ if (!f->isPrivate() && !f->isModifiedRemoved()
+ && f->functionType() != AbstractMetaFunction::MoveConstructorFunction) {
ctors.append(f);
+ }
}
- if (!metaClass->baseClass())
- baseClassName = QLatin1String("SbkObject_TypeF()");
-
bool onlyPrivCtor = !metaClass->hasNonPrivateConstructor();
const bool isQApp = usePySideExtensions()
- && metaClass->inheritsFrom(u"QCoreApplication"_qs);
+ && inheritsFrom(metaClass, u"QCoreApplication"_s);
- tp_flags = QLatin1String("Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE");
+ QString tp_flags = u"Py_TPFLAGS_DEFAULT"_s;
+ if (!metaClass->attributes().testFlag(AbstractMetaClass::FinalCppClass))
+ tp_flags += u"|Py_TPFLAGS_BASETYPE"_s;
if (metaClass->isNamespace() || metaClass->hasPrivateDestructor()) {
tp_dealloc = metaClass->hasPrivateDestructor() ?
- QLatin1String("SbkDeallocWrapperWithPrivateDtor") :
- QLatin1String("Sbk_object_dealloc /* PYSIDE-832: Prevent replacement of \"0\" with subtype_dealloc. */");
+ u"SbkDeallocWrapperWithPrivateDtor"_s :
+ u"Sbk_object_dealloc /* PYSIDE-832: Prevent replacement of \"0\" with subtype_dealloc. */"_s;
tp_init.clear();
} else {
tp_dealloc = isQApp
- ? QLatin1String("&SbkDeallocQAppWrapper") : QLatin1String("&SbkDeallocWrapper");
+ ? u"&SbkDeallocQAppWrapper"_s : u"&SbkDeallocWrapper"_s;
if (!onlyPrivCtor && !ctors.isEmpty())
tp_init = cpythonFunctionName(ctors.constFirst());
}
@@ -4335,53 +4395,59 @@ void CppGenerator::writeClassDefinition(TextStream &s,
? cpythonSetattroFunctionName(metaClass) : QString();
if (metaClass->hasPrivateDestructor() || onlyPrivCtor) {
- // tp_flags = QLatin1String("Py_TPFLAGS_DEFAULT");
+ // tp_flags = u"Py_TPFLAGS_DEFAULT"_s;
// This is not generally possible, because PySide does not care about
// privacy the same way. This worked before the heap types were used,
// because inheritance is not really checked for static types.
- // Instead, we check this at runtime, see SbkObjectTypeTpNew.
- if (metaClass->fullName().startsWith(QLatin1String("PySide6.Qt"))) {
+ // Instead, we check this at runtime, see SbkObjectType_tp_new.
+ if (metaClass->fullName().startsWith(u"PySide6.Qt")) {
// PYSIDE-595: No idea how to do non-inheritance correctly.
// Since that is only relevant in shiboken, I used a shortcut for
// PySide.
- tp_new = QLatin1String("SbkObjectTpNew");
+ tp_new = u"SbkObject_tp_new"_s;
}
else {
- tp_new = QLatin1String("SbkDummyNew /* PYSIDE-595: Prevent replacement "
- "of \"0\" with base->tp_new. */");
+ tp_new = u"SbkDummyNew /* PYSIDE-595: Prevent replacement "
+ "of \"0\" with base->tp_new. */"_s;
}
}
else if (isQApp) {
- tp_new = QLatin1String("SbkQAppTpNew"); // PYSIDE-571: need singleton app
+ tp_new = u"SbkQApp_tp_new"_s; // PYSIDE-571: need singleton app
}
else {
- tp_new = QLatin1String("SbkObjectTpNew");
+ tp_new = u"SbkObject_tp_new"_s;
}
- tp_flags.append(QLatin1String("|Py_TPFLAGS_HAVE_GC"));
+ tp_flags.append(u"|Py_TPFLAGS_HAVE_GC"_s);
QString tp_richcompare;
- if (!metaClass->isNamespace() && metaClass->hasComparisonOperatorOverload())
- tp_richcompare = cpythonBaseName(metaClass) + QLatin1String("_richcompare");
+ if (generateRichComparison(classContext))
+ tp_richcompare = cpythonBaseName(metaClass) + u"_richcompare"_s;
+ const bool isSmartPointer = classContext.forSmartPointer();
QString tp_getset;
- if (shouldGenerateGetSetList(metaClass) && !classContext.forSmartPointer())
+ if (shouldGenerateGetSetList(metaClass) && !isSmartPointer)
tp_getset = cpythonGettersSettersDefinitionName(metaClass);
// search for special functions
clearTpFuncs();
for (const auto &func : metaClass->functions()) {
- if (m_tpFuncs.contains(func->name()))
- m_tpFuncs[func->name()] = cpythonFunctionName(func);
+ // Special non-operator functions identified by name
+ auto it = m_tpFuncs.find(func->name());
+ if (it != m_tpFuncs.end())
+ it.value() = cpythonFunctionName(func);
+ else if ( it = m_nbFuncs.find(func->name()); it != m_nbFuncs.end() )
+ it.value() = cpythonFunctionName(func);
}
- if (m_tpFuncs.value(reprFunction()).isEmpty()
- && metaClass->hasToStringCapability()) {
- m_tpFuncs[reprFunction()] = writeReprFunction(s,
- classContext,
- metaClass->toStringCapabilityIndirections());
+ if (m_tpFuncs.value(REPR_FUNCTION).isEmpty()
+ && (isSmartPointer || metaClass->hasToStringCapability())) {
+ const QString name = isSmartPointer
+ ? writeSmartPointerReprFunction(s, classContext)
+ : writeReprFunction(s, classContext, metaClass->toStringCapabilityIndirections());
+ m_tpFuncs[REPR_FUNCTION] = name;
}
// class or some ancestor has multiple inheritance
- const AbstractMetaClass *miClass = getMultipleInheritingClass(metaClass);
+ const auto miClass = getMultipleInheritingClass(metaClass);
if (miClass) {
if (metaClass == miClass)
writeMultipleInheritanceInitializerFunction(s, metaClass);
@@ -4392,39 +4458,33 @@ void CppGenerator::writeClassDefinition(TextStream &s,
s << "// Class Definition -----------------------------------------------\n"
"extern \"C\" {\n";
- if (!metaClass->typeEntry()->hashFunction().isEmpty())
- tp_hash = QLatin1Char('&') + cpythonBaseName(metaClass) + QLatin1String("_HashFunc");
-
- const auto callOp = metaClass->findFunction(QLatin1String("operator()"));
- if (!callOp.isNull() && !callOp->isModifiedRemoved())
- tp_call = QLatin1Char('&') + cpythonFunctionName(callOp);
+ if (hasHashFunction(metaClass))
+ tp_hash = u'&' + cpythonBaseName(metaClass) + u"_HashFunc"_s;
- QString computedClassTargetFullName;
- if (!classContext.forSmartPointer())
- computedClassTargetFullName = getClassTargetFullName(metaClass);
- else
- computedClassTargetFullName = getClassTargetFullName(classContext.preciseType());
+ const auto callOp = metaClass->findFunction("operator()");
+ if (callOp && !callOp->isModifiedRemoved())
+ tp_call = u'&' + cpythonFunctionName(callOp);
- const QString typePtr = QLatin1String("_") + className
- + QLatin1String("_Type");
+ const QString typePtr = u"_"_s + className
+ + u"_Type"_s;
s << "static PyTypeObject *" << typePtr << " = nullptr;\n"
<< "static PyTypeObject *" << className << "_TypeF(void)\n"
<< "{\n" << indent << "return " << typePtr << ";\n" << outdent
<< "}\n\nstatic PyType_Slot " << className << "_slots[] = {\n" << indent
<< "{Py_tp_base, nullptr}, // inserted by introduceWrapperType\n"
<< pyTypeSlotEntry("Py_tp_dealloc", tp_dealloc)
- << pyTypeSlotEntry("Py_tp_repr", m_tpFuncs.value(reprFunction()))
+ << pyTypeSlotEntry("Py_tp_repr", m_tpFuncs.value(REPR_FUNCTION))
<< pyTypeSlotEntry("Py_tp_hash", tp_hash)
<< pyTypeSlotEntry("Py_tp_call", tp_call)
- << pyTypeSlotEntry("Py_tp_str", m_tpFuncs.value(QLatin1String("__str__")))
+ << pyTypeSlotEntry("Py_tp_str", m_tpFuncs.value(u"__str__"_s))
<< pyTypeSlotEntry("Py_tp_getattro", tp_getattro)
<< pyTypeSlotEntry("Py_tp_setattro", tp_setattro)
- << pyTypeSlotEntry("Py_tp_traverse", className + QLatin1String("_traverse"))
- << pyTypeSlotEntry("Py_tp_clear", className + QLatin1String("_clear"))
+ << pyTypeSlotEntry("Py_tp_traverse", className + u"_traverse"_s)
+ << pyTypeSlotEntry("Py_tp_clear", className + u"_clear"_s)
<< pyTypeSlotEntry("Py_tp_richcompare", tp_richcompare)
- << pyTypeSlotEntry("Py_tp_iter", m_tpFuncs.value(QLatin1String("__iter__")))
- << pyTypeSlotEntry("Py_tp_iternext", m_tpFuncs.value(QLatin1String("__next__")))
- << pyTypeSlotEntry("Py_tp_methods", className + QLatin1String("_methods"))
+ << pyTypeSlotEntry("Py_tp_iter", m_tpFuncs.value(u"__iter__"_s))
+ << pyTypeSlotEntry("Py_tp_iternext", m_tpFuncs.value(u"__next__"_s))
+ << pyTypeSlotEntry("Py_tp_methods", className + u"_methods"_s)
<< pyTypeSlotEntry("Py_tp_getset", tp_getset)
<< pyTypeSlotEntry("Py_tp_init", tp_init)
<< pyTypeSlotEntry("Py_tp_new", tp_new);
@@ -4437,61 +4497,58 @@ void CppGenerator::writeClassDefinition(TextStream &s,
writeTypeAsMappingDefinition(s, metaClass);
}
if (supportsNumberProtocol(metaClass)) {
- // This one must come last. See the function itself.
s << "// type supports number protocol\n";
writeTypeAsNumberDefinition(s, metaClass);
}
s << "{0, " << NULL_PTR << "}\n" << outdent << "};\n";
- int packageLevel = packageName().count(QLatin1Char('.')) + 1;
+ int packageLevel = packageName().count(u'.') + 1;
s << "static PyType_Spec " << className << "_spec = {\n" << indent
- << '"' << packageLevel << ':' << computedClassTargetFullName << "\",\n"
+ << '"' << packageLevel << ':' << getClassTargetFullName(metaClass) << "\",\n"
<< "sizeof(SbkObject),\n0,\n" << tp_flags << ",\n"
<< className << "_slots\n" << outdent
<< "};\n\n} //extern \"C\"\n";
}
void CppGenerator::writeMappingMethods(TextStream &s,
- const AbstractMetaClass *metaClass,
+ const AbstractMetaClassCPtr &metaClass,
const GeneratorContext &context) const
{
for (const auto & m : mappingProtocols()) {
const auto func = metaClass->findFunction(m.name);
- if (func.isNull())
+ if (!func)
continue;
QString funcName = cpythonFunctionName(func);
CodeSnipList snips = func->injectedCodeSnips(TypeSystem::CodeSnipPositionAny, TypeSystem::TargetLangCode);
- s << m.returnType << ' ' << funcName << '(' << m.arguments << ")\n{\n";
- writeInvalidPyObjectCheck(s, QLatin1String("self"));
+ s << m.returnType << ' ' << funcName << '(' << m.arguments << ")\n{\n" << indent;
- writeCppSelfDefinition(s, func, context);
+ writeCppSelfDefinition(s, func, context, ErrorReturn::Default);
const AbstractMetaArgument *lastArg = func->arguments().isEmpty()
? nullptr : &func->arguments().constLast();
writeCodeSnips(s, snips, TypeSystem::CodeSnipPositionAny,
TypeSystem::TargetLangCode, func, false, lastArg);
- s<< "}\n\n";
+ s << outdent << "}\n\n";
}
}
void CppGenerator::writeSequenceMethods(TextStream &s,
- const AbstractMetaClass *metaClass,
+ const AbstractMetaClassCPtr &metaClass,
const GeneratorContext &context) const
{
bool injectedCode = false;
for (const auto &seq : sequenceProtocols()) {
const auto func = metaClass->findFunction(seq.name);
- if (func.isNull())
+ if (!func)
continue;
injectedCode = true;
QString funcName = cpythonFunctionName(func);
CodeSnipList snips = func->injectedCodeSnips(TypeSystem::CodeSnipPositionAny, TypeSystem::TargetLangCode);
s << seq.returnType << ' ' << funcName << '(' << seq.arguments << ")\n{\n" << indent;
- writeInvalidPyObjectCheck(s, QLatin1String("self"));
- writeCppSelfDefinition(s, func, context);
+ writeCppSelfDefinition(s, func, context, ErrorReturn::Default);
const AbstractMetaArgument *lastArg = func->arguments().isEmpty() ? nullptr : &func->arguments().constLast();
writeCodeSnips(s, snips,TypeSystem::CodeSnipPositionAny,
@@ -4507,26 +4564,26 @@ void CppGenerator::writeSequenceMethods(TextStream &s,
static const QHash<QString, QString> &sqFuncs()
{
static const QHash<QString, QString> result = {
- {QLatin1String("__concat__"), QLatin1String("sq_concat")},
- {QLatin1String("__contains__"), QLatin1String("sq_contains")},
- {QLatin1String("__getitem__"), QLatin1String("sq_item")},
- {QLatin1String("__getslice__"), QLatin1String("sq_slice")},
- {QLatin1String("__len__"), QLatin1String("sq_length")},
- {QLatin1String("__setitem__"), QLatin1String("sq_ass_item")},
- {QLatin1String("__setslice__"), QLatin1String("sq_ass_slice")}
+ {u"__concat__"_s, u"Py_sq_concat"_s},
+ {u"__contains__"_s, u"Py_sq_contains"_s},
+ {u"__getitem__"_s, u"Py_sq_item"_s},
+ {u"__getslice__"_s, u"Py_sq_slice"_s},
+ {u"__len__"_s, u"Py_sq_length"_s},
+ {u"__setitem__"_s, u"Py_sq_ass_item"_s},
+ {u"__setslice__"_s, u"Py_sq_ass_slice"_s}
};
return result;
}
void CppGenerator::writeTypeAsSequenceDefinition(TextStream &s,
- const AbstractMetaClass *metaClass)
+ const AbstractMetaClassCPtr &metaClass)
{
bool hasFunctions = false;
QMap<QString, QString> funcs;
for (const auto &seq : sequenceProtocols()) {
const auto func = metaClass->findFunction(seq.name);
- if (!func.isNull()) {
- funcs.insert(seq.name, QLatin1Char('&') + cpythonFunctionName(func));
+ if (func) {
+ funcs.insert(seq.name, u'&' + cpythonFunctionName(func));
hasFunctions = true;
}
}
@@ -4535,46 +4592,42 @@ void CppGenerator::writeTypeAsSequenceDefinition(TextStream &s,
//use default implementation
if (!hasFunctions) {
- funcs[QLatin1String("__len__")] = baseName + QLatin1String("__len__");
- funcs[QLatin1String("__getitem__")] = baseName + QLatin1String("__getitem__");
- funcs[QLatin1String("__setitem__")] = baseName + QLatin1String("__setitem__");
+ funcs[u"__len__"_s] = baseName + u"__len__"_s;
+ funcs[u"__getitem__"_s] = baseName + u"__getitem__"_s;
+ funcs[u"__setitem__"_s] = baseName + u"__setitem__"_s;
}
for (auto it = sqFuncs().cbegin(), end = sqFuncs().cend(); it != end; ++it) {
const QString &sqName = it.key();
auto fit = funcs.constFind(sqName);
- if (fit != funcs.constEnd()) {
- s << "{Py_" << it.value() << ", reinterpret_cast<void *>("
- << fit.value() << ")},\n";
- }
+ if (fit != funcs.constEnd())
+ s << pyTypeSlotEntry(it.value(), fit.value());
}
}
void CppGenerator::writeTypeAsMappingDefinition(TextStream &s,
- const AbstractMetaClass *metaClass)
+ const AbstractMetaClassCPtr &metaClass)
{
// Sequence protocol structure members names
static const QHash<QString, QString> mpFuncs{
- {QLatin1String("__mlen__"), QLatin1String("mp_length")},
- {QLatin1String("__mgetitem__"), QLatin1String("mp_subscript")},
- {QLatin1String("__msetitem__"), QLatin1String("mp_ass_subscript")},
+ {u"__mlen__"_s, u"Py_mp_length"_s},
+ {u"__mgetitem__"_s, u"Py_mp_subscript"_s},
+ {u"__msetitem__"_s, u"Py_mp_ass_subscript"_s},
};
QMap<QString, QString> funcs;
for (const auto &m : mappingProtocols()) {
const auto func = metaClass->findFunction(m.name);
- if (!func.isNull()) {
- const QString entry = QLatin1String("reinterpret_cast<void *>(&")
- + cpythonFunctionName(func) + QLatin1Char(')');
+ if (func) {
+ const QString entry = u"reinterpret_cast<void *>(&"_s
+ + cpythonFunctionName(func) + u')';
funcs.insert(m.name, entry);
- } else {
- funcs.insert(m.name, QLatin1String(NULL_PTR));
}
}
for (auto it = mpFuncs.cbegin(), end = mpFuncs.cend(); it != end; ++it) {
const auto fit = funcs.constFind(it.key());
if (fit != funcs.constEnd())
- s << "{Py_" << it.value() << ", " << fit.value() << "},\n";
+ s << pyTypeSlotEntry(it.value(), fit.value());
}
}
@@ -4582,106 +4635,103 @@ void CppGenerator::writeTypeAsMappingDefinition(TextStream &s,
static const QHash<QString, QString> &nbFuncs()
{
static const QHash<QString, QString> result = {
- {QLatin1String("__add__"), QLatin1String("nb_add")},
- {QLatin1String("__sub__"), QLatin1String("nb_subtract")},
- {QLatin1String("__mul__"), QLatin1String("nb_multiply")},
- {QLatin1String("__div__"), QLatin1String("nb_divide")},
- {QLatin1String("__mod__"), QLatin1String("nb_remainder")},
- {QLatin1String("__neg__"), QLatin1String("nb_negative")},
- {QLatin1String("__pos__"), QLatin1String("nb_positive")},
- {QLatin1String("__invert__"), QLatin1String("nb_invert")},
- {QLatin1String("__lshift__"), QLatin1String("nb_lshift")},
- {QLatin1String("__rshift__"), QLatin1String("nb_rshift")},
- {QLatin1String("__and__"), QLatin1String("nb_and")},
- {QLatin1String("__xor__"), QLatin1String("nb_xor")},
- {QLatin1String("__or__"), QLatin1String("nb_or")},
- {QLatin1String("__iadd__"), QLatin1String("nb_inplace_add")},
- {QLatin1String("__isub__"), QLatin1String("nb_inplace_subtract")},
- {QLatin1String("__imul__"), QLatin1String("nb_inplace_multiply")},
- {QLatin1String("__idiv__"), QLatin1String("nb_inplace_divide")},
- {QLatin1String("__imod__"), QLatin1String("nb_inplace_remainder")},
- {QLatin1String("__ilshift__"), QLatin1String("nb_inplace_lshift")},
- {QLatin1String("__irshift__"), QLatin1String("nb_inplace_rshift")},
- {QLatin1String("__iand__"), QLatin1String("nb_inplace_and")},
- {QLatin1String("__ixor__"), QLatin1String("nb_inplace_xor")},
- {QLatin1String("__ior__"), QLatin1String("nb_inplace_or")},
- {boolT(), QLatin1String("nb_nonzero")}
+ {u"__abs__"_s, u"Py_nb_absolute"_s},
+ {u"__add__"_s, u"Py_nb_add"_s},
+ {u"__sub__"_s, u"Py_nb_subtract"_s},
+ {u"__mul__"_s, u"Py_nb_multiply"_s},
+ {u"__div__"_s, u"Py_nb_true_divide"_s},
+ {u"__mod__"_s, u"Py_nb_remainder"_s},
+ {u"__neg__"_s, u"Py_nb_negative"_s},
+ {u"__pos__"_s, u"Py_nb_positive"_s},
+ {u"__pow__"_s, u"Py_nb_power"_s},
+ {u"__invert__"_s, u"Py_nb_invert"_s},
+ {u"__lshift__"_s, u"Py_nb_lshift"_s},
+ {u"__rshift__"_s, u"Py_nb_rshift"_s},
+ {u"__and__"_s, u"Py_nb_and"_s},
+ {u"__xor__"_s, u"Py_nb_xor"_s},
+ {u"__or__"_s, u"Py_nb_or"_s},
+ {u"__iadd__"_s, u"Py_nb_inplace_add"_s},
+ {u"__isub__"_s, u"Py_nb_inplace_subtract"_s},
+ {u"__imul__"_s, u"Py_nb_inplace_multiply"_s},
+ {u"__imod__"_s, u"Py_nb_inplace_remainder"_s},
+ {u"__ilshift__"_s, u"Py_nb_inplace_lshift"_s},
+ {u"__irshift__"_s, u"Py_nb_inplace_rshift"_s},
+ {u"__iand__"_s, u"Py_nb_inplace_and"_s},
+ {u"__ixor__"_s, u"Py_nb_inplace_xor"_s},
+ {u"__ior__"_s, u"Py_nb_inplace_or"_s},
+ {u"__bool__"_s, u"Py_nb_bool"_s},
+ {u"__int__"_s, u"Py_nb_int"_s},
+ {u"__float__"_s, u"Py_nb_float"_s}
};
return result;
}
-void CppGenerator::writeTypeAsNumberDefinition(TextStream &s, const AbstractMetaClass *metaClass) const
+void CppGenerator::writeTypeAsNumberDefinition(TextStream &s, const AbstractMetaClassCPtr &metaClass) const
{
QMap<QString, QString> nb;
- const QList<AbstractMetaFunctionCList> opOverloads =
- filterGroupedOperatorFunctions(metaClass,
- OperatorQueryOption::ArithmeticOp
- | OperatorQueryOption::IncDecrementOp
- | OperatorQueryOption::LogicalOp
- | OperatorQueryOption::BitwiseOp);
-
- for (const AbstractMetaFunctionCList &opOverload : opOverloads) {
+ const QList<AbstractMetaFunctionCList> opOverloads = numberProtocolOperators(metaClass);
+ for (const auto &opOverload : opOverloads) {
const auto rfunc = opOverload.at(0);
QString opName = ShibokenGenerator::pythonOperatorFunctionName(rfunc);
nb[opName] = cpythonFunctionName(rfunc);
}
+ for (auto it = m_nbFuncs.cbegin(), end = m_nbFuncs.cend(); it != end; ++it) {
+ if (!it.value().isEmpty())
+ nb.insert(it.key(), it.value());
+ }
+
QString baseName = cpythonBaseName(metaClass);
if (hasBoolCast(metaClass))
- nb.insert(boolT(), baseName + QLatin1String("___nb_bool"));
+ nb.insert(u"__bool__"_s, baseName + u"___nb_bool"_s);
for (auto it = nbFuncs().cbegin(), end = nbFuncs().cend(); it != end; ++it) {
const QString &nbName = it.key();
- if (nbName == QLatin1String("__div__") || nbName == QLatin1String("__idiv__"))
- continue; // excludeFromPy3K
const auto nbIt = nb.constFind(nbName);
- if (nbIt != nb.constEnd()) {
- const QString fixednbName = nbName == boolT()
- ? QLatin1String("nb_bool") : it.value();
- s << "{Py_" << fixednbName << ", reinterpret_cast<void *>("
- << nbIt.value() << ")},\n";
- }
- }
-
- auto nbIt = nb.constFind(QLatin1String("__div__"));
- if (nbIt != nb.constEnd())
- s << "{Py_nb_true_divide, reinterpret_cast<void *>(" << nbIt.value() << ")},\n";
-
- nbIt = nb.constFind(QLatin1String("__idiv__"));
- if (nbIt != nb.constEnd()) {
- s << "// This function is unused in Python 3. We reference it here.\n"
- << "{0, reinterpret_cast<void *>(" << nbIt.value() << ")},\n"
- << "// This list is ending at the first 0 entry.\n"
- << "// Therefore, we need to put the unused functions at the very end.\n";
+ if (nbIt != nb.constEnd())
+ s << pyTypeSlotEntry(it.value(), nbIt.value());
}
}
-void CppGenerator::writeTpTraverseFunction(TextStream &s, const AbstractMetaClass *metaClass)
+void CppGenerator::writeTpTraverseFunction(TextStream &s, const AbstractMetaClassCPtr &metaClass)
{
QString baseName = cpythonBaseName(metaClass);
s << "static int " << baseName
<< "_traverse(PyObject *self, visitproc visit, void *arg)\n{\n" << indent
- << "return SbkObject_TypeF()->tp_traverse(self, visit, arg);\n"
+ << "auto traverseProc = "
+ << pyTypeGetSlot("traverseproc", sbkObjectTypeF, "Py_tp_traverse") << ";\n"
+ << "return traverseProc(self, visit, arg);\n"
<< outdent << "}\n";
}
-void CppGenerator::writeTpClearFunction(TextStream &s, const AbstractMetaClass *metaClass)
+void CppGenerator::writeTpClearFunction(TextStream &s, const AbstractMetaClassCPtr &metaClass)
{
QString baseName = cpythonBaseName(metaClass);
s << "static int " << baseName << "_clear(PyObject *self)\n{\n" << indent
- << "return reinterpret_cast<PyTypeObject *>(SbkObject_TypeF())->tp_clear(self);\n"
+ << "auto clearProc = "
+ << pyTypeGetSlot("inquiry", sbkObjectTypeF, "Py_tp_clear") << ";\n"
+ << "return clearProc(self);\n"
<< outdent << "}\n";
}
-void CppGenerator::writeCopyFunction(TextStream &s, const GeneratorContext &context) const
+QString CppGenerator::writeCopyFunction(TextStream &s,
+ TextStream &definitionStream,
+ TextStream &signatureStream,
+ const GeneratorContext &context)
{
- const AbstractMetaClass *metaClass = context.metaClass();
+ const auto metaClass = context.metaClass();
const QString className = chopType(cpythonTypeName(metaClass));
- s << "static PyObject *" << className << "___copy__(PyObject *self)\n"
- << "{\n" << indent;
- writeCppSelfDefinition(s, context, false, false, true);
+ const QString funcName = className + u"__copy__"_s;
+
+ signatureStream << fullPythonClassName(metaClass) << ".__copy__()\n";
+ definitionStream << PyMethodDefEntry{u"__copy__"_s, funcName, {"METH_NOARGS"_ba}, {}}
+ << ",\n";
+
+ s << "static PyObject *" << funcName << "(PyObject *self)\n"
+ << "{\n" << indent;
+ writeCppSelfDefinition(s, context, ErrorReturn::Default, CppSelfDefinitionFlag::CppSelfAsReference);
QString conversionCode;
if (!context.forSmartPointer())
conversionCode = cpythonToPythonConversionFunction(metaClass);
@@ -4690,19 +4740,21 @@ void CppGenerator::writeCopyFunction(TextStream &s, const GeneratorContext &cont
s << "PyObject *" << PYTHON_RETURN_VAR << " = " << conversionCode
<< CPP_SELF_VAR << ");\n";
- writeFunctionReturnErrorCheckSection(s);
+ writeFunctionReturnErrorCheckSection(s, ErrorReturn::Default);
s << "return " << PYTHON_RETURN_VAR << ";\n" << outdent
<< "}\n\n";
+
+ return funcName;
}
static inline void writeGetterFunctionStart(TextStream &s, const QString &funcName)
{
- s << "static PyObject *" << funcName << "(PyObject *self, void *)\n"
+ s << "static PyObject *" << funcName << "(PyObject *self, void * /* closure */)\n"
<< "{\n" << indent;
}
QString CppGenerator::cppFieldAccess(const AbstractMetaField &metaField,
- const GeneratorContext &context) const
+ const GeneratorContext &context)
{
QString result;
QTextStream str(&result);
@@ -4716,9 +4768,8 @@ QString CppGenerator::cppFieldAccess(const AbstractMetaField &metaField,
void CppGenerator::writeGetterFunction(TextStream &s,
const AbstractMetaField &metaField,
- const GeneratorContext &context) const
+ const GeneratorContext &context)
{
- ErrorCode errorCode(QString::fromLatin1(NULL_PTR));
writeGetterFunctionStart(s, cpythonGetterFunctionName(metaField));
writeCppSelfDefinition(s, context);
@@ -4729,6 +4780,17 @@ void CppGenerator::writeGetterFunction(TextStream &s,
&& !fieldType.isPointer();
QString cppField = cppFieldAccess(metaField, context);
+
+ if (metaField.generateOpaqueContainer()
+ && fieldType.generateOpaqueContainer()) {
+ const QString creationFunc = opaqueContainerCreationFunc(fieldType);
+ writeOpaqueContainerCreationFuncDecl(s, creationFunc, fieldType);
+ s << "PyObject *pyOut = " << creationFunc
+ << "(&" << cppField << ");\nPy_IncRef(pyOut);\n"
+ << "return pyOut;\n" << outdent << "}\n";
+ return;
+ }
+
if (newWrapperSameObject) {
cppField.prepend(u"&(");
cppField.append(u')');
@@ -4736,41 +4798,38 @@ void CppGenerator::writeGetterFunction(TextStream &s,
if (fieldType.isCppIntegralPrimitive() || fieldType.isEnum()) {
s << getFullTypeNameWithoutModifiers(fieldType) << " cppOut_local = " << cppField << ";\n";
- cppField = QLatin1String("cppOut_local");
+ cppField = u"cppOut_local"_s;
}
s << "PyObject *pyOut = {};\n";
if (newWrapperSameObject) {
// Special case colocated field with same address (first field in a struct)
s << "if (reinterpret_cast<void *>("
- << cppField
- << ") == reinterpret_cast<void *>("
- << CPP_SELF_VAR << ")) {\n";
- {
- Indentation indent(s);
- s << "pyOut = reinterpret_cast<PyObject *>(Shiboken::Object::findColocatedChild("
- << "reinterpret_cast<SbkObject *>(self), "
- << cpythonTypeNameExt(fieldType)
- << "));\n";
- s << "if (pyOut) {\n";
- {
- Indentation indent(s);
- s << "Py_IncRef(pyOut);\n"
- << "return pyOut;\n";
- }
- s << "}\n";
- }
+ << cppField << ") == reinterpret_cast<void *>("
+ << CPP_SELF_VAR << ")) {\n" << indent
+ << "pyOut = reinterpret_cast<PyObject *>(Shiboken::Object::findColocatedChild("
+ << "reinterpret_cast<SbkObject *>(self), "
+ << cpythonTypeNameExt(fieldType) << "));\n"
+ << "if (pyOut != nullptr) {\n" << indent
+ << "Py_IncRef(pyOut);\n"
+ << "return pyOut;\n"
+ << outdent << "}\n";
// Check if field wrapper has already been created.
- s << "} else if (Shiboken::BindingManager::instance().hasWrapper(" << cppField << ")) {" << "\n";
- {
- Indentation indent(s);
- s << "pyOut = reinterpret_cast<PyObject *>(Shiboken::BindingManager::instance().retrieveWrapper("
- << cppField << "));" << "\n"
- << "Py_IncRef(pyOut);" << "\n"
- << "return pyOut;" << "\n";
- }
- s << "}\n";
- // Create and register new wrapper
+ s << outdent << "} else if (Shiboken::BindingManager::instance().hasWrapper("
+ << cppField << ")) {" << "\n" << indent
+ << "pyOut = reinterpret_cast<PyObject *>(Shiboken::BindingManager::instance().retrieveWrapper("
+ << cppField << "));" << "\n"
+ << "Py_IncRef(pyOut);" << "\n"
+ << "return pyOut;" << "\n"
+ << outdent << "}\n";
+ // Create and register new wrapper. We force a pointer conversion also
+ // for wrapped value types so that they refer to the struct member,
+ // avoiding any trouble copying them. Add a parent relationship to
+ // properly notify if the struct is deleted (see protected_test.py,
+ // testProtectedValueTypeProperty()). Note that this has currently
+ // unsolved issues when using temporary Python lists of structs
+ // which can cause elements to be reported deleted in expressions like
+ // "foo.list_of_structs[2].field".
s << "pyOut = "
<< "Shiboken::Object::newObject(" << cpythonTypeNameExt(fieldType)
<< ", " << cppField << ", false, true);\n"
@@ -4783,57 +4842,52 @@ void CppGenerator::writeGetterFunction(TextStream &s,
}
// Write a getter for QPropertySpec
-void CppGenerator::writeGetterFunction(TextStream &s, const QPropertySpec &property,
- const GeneratorContext &context) const
+void CppGenerator::writeGetterFunction(TextStream &s,
+ const QPropertySpec &property,
+ const GeneratorContext &context)
{
- ErrorCode errorCode(0);
writeGetterFunctionStart(s, cpythonGetterFunctionName(property, context.metaClass()));
writeCppSelfDefinition(s, context);
- const QString value = QStringLiteral("value");
+ const QString value = "value"_L1;
s << "auto " << value << " = " << CPP_SELF_VAR << "->" << property.read() << "();\n"
- << "auto pyResult = ";
+ << "auto *pyResult = ";
writeToPythonConversion(s, property.type(), context.metaClass(), value);
- s << ";\nif (PyErr_Occurred() || !pyResult) {\n";
- {
- Indentation indent(s);
- s << "Py_XDECREF(pyResult);\nreturn {};\n";
- }
- s << "}\nreturn pyResult;\n" << outdent << "}\n\n";
+ s << ";\nif (" << shibokenErrorsOccurred << " || pyResult == nullptr) {\n"
+ << indent << "Py_XDECREF(pyResult);\nreturn {};\n" << outdent
+ << "}\nreturn pyResult;\n" << outdent << "}\n\n";
}
// Write setter function preamble (type checks on "pyIn")
-void CppGenerator::writeSetterFunctionPreamble(TextStream &s, const QString &name,
+void CppGenerator::writeSetterFunctionPreamble(TextStream &s,
+ const QString &name,
const QString &funcName,
const AbstractMetaType &type,
- const GeneratorContext &context) const
+ const GeneratorContext &context)
{
- s << "static int " << funcName << "(PyObject *self, PyObject *pyIn, void *)\n"
+ s << "static int " << funcName << "(PyObject *self, PyObject *pyIn, void * /* closure */)\n"
<< "{\n" << indent;
- writeCppSelfDefinition(s, context);
+ writeCppSelfDefinition(s, context, ErrorReturn::Zero);
s << "if (pyIn == " << NULL_PTR << ") {\n" << indent
- << "PyErr_SetString(PyExc_TypeError, \"'"
- << name << "' may not be deleted\");\n"
+ << "Shiboken::Errors::setInvalidTypeDeletion(\"" << name << "\");\n"
<< "return -1;\n"
<< outdent << "}\n";
- s << "PythonToCppFunc " << PYTHON_TO_CPP_VAR << "{nullptr};\n"
+ s << PYTHON_TO_CPPCONVERSION_STRUCT << ' ' << PYTHON_TO_CPP_VAR << ";\n"
<< "if (!";
- writeTypeCheck(s, type, QLatin1String("pyIn"), isNumber(type.typeEntry()));
+ writeTypeCheck(s, type, u"pyIn"_s, isNumber(type.typeEntry()));
s << ") {\n" << indent
- << "PyErr_SetString(PyExc_TypeError, \"wrong type attributed to '"
- << name << "', '" << type.name() << "' or convertible type expected\");\n"
+ << "Shiboken::Errors::setSetterTypeError(\"" << name << "\", \""
+ << type.name() << "\");\n"
<< "return -1;\n"
<< outdent << "}\n\n";
}
void CppGenerator::writeSetterFunction(TextStream &s,
const AbstractMetaField &metaField,
- const GeneratorContext &context) const
+ const GeneratorContext &context)
{
- ErrorCode errorCode(0);
-
const AbstractMetaType &fieldType = metaField.type();
writeSetterFunctionPreamble(s, metaField.name(), cpythonSetterFunctionName(metaField),
fieldType, context);
@@ -4864,215 +4918,182 @@ void CppGenerator::writeSetterFunction(TextStream &s,
}
// Write a setter for QPropertySpec
-void CppGenerator::writeSetterFunction(TextStream &s, const QPropertySpec &property,
- const GeneratorContext &context) const
+void CppGenerator::writeSetterFunction(TextStream &s,
+ const QPropertySpec &property,
+ const GeneratorContext &context)
{
- ErrorCode errorCode(0);
- writeSetterFunctionPreamble(s, property.name(),
+ writeSetterFunctionPreamble(s,
+ property.name(),
cpythonSetterFunctionName(property, context.metaClass()),
property.type(), context);
s << "auto cppOut = " << CPP_SELF_VAR << "->" << property.read() << "();\n"
<< PYTHON_TO_CPP_VAR << "(pyIn, &cppOut);\n"
- << "if (PyErr_Occurred())\n";
- {
- Indentation indent(s);
- s << "return -1;\n";
- }
- s << CPP_SELF_VAR << "->" << property.write() << "(cppOut);\n"
+ << "if (" << shibokenErrorsOccurred << ")\n" << indent
+ << "return -1;\n" << outdent
+ << CPP_SELF_VAR << "->" << property.write() << "(cppOut);\n"
<< "return 0;\n" << outdent << "}\n\n";
}
-void CppGenerator::writeRichCompareFunction(TextStream &s,
- const GeneratorContext &context) const
+void CppGenerator::writeRichCompareFunctionHeader(TextStream &s,
+ const QString &baseName,
+ const GeneratorContext &context)
{
- const AbstractMetaClass *metaClass = context.metaClass();
- QString baseName = cpythonBaseName(metaClass);
s << "static PyObject * ";
s << baseName << "_richcompare(PyObject *self, PyObject *" << PYTHON_ARG
<< ", int op)\n{\n" << indent;
- writeCppSelfDefinition(s, context, false, false, true);
- writeUnusedVariableCast(s, QLatin1String(CPP_SELF_VAR));
- s << "PyObject *" << PYTHON_RETURN_VAR << "{};\n"
- << "PythonToCppFunc " << PYTHON_TO_CPP_VAR << ";\n";
- writeUnusedVariableCast(s, QLatin1String(PYTHON_TO_CPP_VAR));
- s << '\n';
+ writeCppSelfDefinition(s, context, ErrorReturn::Default, CppSelfDefinitionFlag::CppSelfAsReference);
+ s << sbkUnusedVariableCast(CPP_SELF_VAR)
+ << "PyObject *" << PYTHON_RETURN_VAR << "{};\n"
+ << PYTHON_TO_CPPCONVERSION_STRUCT << ' ' << PYTHON_TO_CPP_VAR << ";\n"
+ << sbkUnusedVariableCast(PYTHON_TO_CPP_VAR) << '\n';
+}
- s << "switch (op) {\n";
- {
- Indentation indent(s);
- const QList<AbstractMetaFunctionCList> &groupedFuncs =
- filterGroupedOperatorFunctions(metaClass, OperatorQueryOption::ComparisonOp);
- for (const AbstractMetaFunctionCList &overloads : groupedFuncs) {
- const auto rfunc = overloads[0];
+void CppGenerator::writeRichCompareFunction(TextStream &s,
+ const GeneratorContext &context) const
+{
+ const auto metaClass = context.metaClass();
+ QString baseName = cpythonBaseName(metaClass);
+ writeRichCompareFunctionHeader(s, baseName, context);
- QString operatorId = ShibokenGenerator::pythonRichCompareOperatorId(rfunc);
- s << "case " << operatorId << ':' << '\n';
+ s << "switch (op) {\n" << indent;
+ const QList<AbstractMetaFunctionCList> &groupedFuncs =
+ filterGroupedOperatorFunctions(metaClass, OperatorQueryOption::ComparisonOp);
+ for (const AbstractMetaFunctionCList &overloads : groupedFuncs) {
+ const auto rfunc = overloads[0];
- Indentation indent(s);
+ const auto op = rfunc->comparisonOperatorType().value();
+ s << "case " << AbstractMetaFunction::pythonRichCompareOpCode(op)
+ << ":\n" << indent;
- QString op = rfunc->originalName();
- op = op.right(op.size() - QLatin1String("operator").size());
+ int alternativeNumericTypes = 0;
+ for (const auto &func : overloads) {
+ if (!func->isStatic() &&
+ ShibokenGenerator::isNumber(func->arguments().at(0).type().typeEntry()))
+ alternativeNumericTypes++;
+ }
- int alternativeNumericTypes = 0;
- for (const auto &func : overloads) {
- if (!func->isStatic() &&
- ShibokenGenerator::isNumber(func->arguments().at(0).type().typeEntry()))
- alternativeNumericTypes++;
+ bool first = true;
+ OverloadData overloadData(overloads, api());
+ const OverloadDataList &nextOverloads = overloadData.children();
+ for (const auto &od : nextOverloads) {
+ const auto func = od->referenceFunction();
+ if (func->isStatic())
+ continue;
+ auto argType = getArgumentType(func, 0);
+ if (!first) {
+ s << " else ";
+ } else {
+ first = false;
}
-
- bool first = true;
- OverloadData overloadData(overloads, api());
- const OverloadDataList &nextOverloads = overloadData.children();
- for (const auto &od : nextOverloads) {
- const auto func = od->referenceFunction();
- if (func->isStatic())
- continue;
- auto argType = getArgumentType(func, 0);
- if (!first) {
- s << " else ";
- } else {
- first = false;
- }
- s << "if (";
- writeTypeCheck(s, argType, QLatin1String(PYTHON_ARG), alternativeNumericTypes == 1 || isPyInt(argType));
- s << ") {\n";
- {
- Indentation indent(s);
- s << "// " << func->signature() << '\n';
- writeArgumentConversion(s, argType, QLatin1String(CPP_ARG0),
- QLatin1String(PYTHON_ARG), metaClass,
- QString(), func->isUserAdded());
-
- // If the function is user added, use the inject code
- bool generateOperatorCode = true;
- if (func->isUserAdded()) {
- CodeSnipList snips = func->injectedCodeSnips();
- if (!snips.isEmpty()) {
- writeCodeSnips(s, snips, TypeSystem::CodeSnipPositionAny,
- TypeSystem::TargetLangCode, func,
- false /* uses PyArgs */, &func->arguments().constLast());
- generateOperatorCode = false;
- }
- }
- if (generateOperatorCode) {
- if (!func->isVoid())
- s << func->type().cppSignature() << " " << CPP_RETURN_VAR << " = ";
- // expression
- if (func->isPointerOperator())
- s << '&';
- s << CPP_SELF_VAR << ' ' << op << '(';
- if (argType.shouldDereferenceArgument())
- s << '*';
- s << CPP_ARG0 << ");\n"
- << PYTHON_RETURN_VAR << " = ";
- if (!func->isVoid())
- writeToPythonConversion(s, func->type(), metaClass, QLatin1String(CPP_RETURN_VAR));
- else
- s << "Py_None;\n" << "Py_INCREF(Py_None)";
- s << ";\n";
- }
+ s << "if (";
+ writeTypeCheck(s, argType, PYTHON_ARG,
+ alternativeNumericTypes == 1 || isPyInt(argType));
+ s << ") {\n" << indent
+ << "// " << func->signature() << '\n';
+ writeArgumentConversion(s, argType, CPP_ARG0,
+ PYTHON_ARG, ErrorReturn::Default,
+ metaClass,
+ QString(), func->isUserAdded());
+ // If the function is user added, use the inject code
+ bool generateOperatorCode = true;
+ if (func->isUserAdded()) {
+ CodeSnipList snips = func->injectedCodeSnips();
+ if (!snips.isEmpty()) {
+ writeCodeSnips(s, snips, TypeSystem::CodeSnipPositionAny,
+ TypeSystem::TargetLangCode, func,
+ false /* uses PyArgs */, &func->arguments().constLast());
+ generateOperatorCode = false;
}
- s << '}';
}
-
- s << " else {\n";
- if (operatorId == QLatin1String("Py_EQ") || operatorId == QLatin1String("Py_NE")) {
- Indentation indent(s);
- s << PYTHON_RETURN_VAR << " = "
- << (operatorId == QLatin1String("Py_EQ") ? "Py_False" : "Py_True") << ";\n"
- << "Py_INCREF(" << PYTHON_RETURN_VAR << ");\n";
- } else {
- Indentation indent(s);
- s << "goto " << baseName << "_RichComparison_TypeError;\n";
+ if (generateOperatorCode) {
+ if (!func->isVoid())
+ s << func->type().cppSignature() << " " << CPP_RETURN_VAR << " = ";
+ // expression
+ if (func->isPointerOperator())
+ s << '&';
+ s << CPP_SELF_VAR << ' '
+ << AbstractMetaFunction::cppComparisonOperator(op) << " (";
+ auto generatorArg = GeneratorArgument::fromMetaType(argType);
+ if (generatorArg.indirections != 0)
+ s << QByteArray(generatorArg.indirections, '*');
+ s << CPP_ARG0 << ");\n"
+ << PYTHON_RETURN_VAR << " = ";
+ if (!func->isVoid()) {
+ writeToPythonConversion(s, func->type(), metaClass,
+ CPP_RETURN_VAR);
+ } else {
+ s << "Py_None;\n" << "Py_INCREF(Py_None)";
+ }
+ s << ";\n";
}
- s << "}\n\n";
-
- s << "break;\n";
+ s << outdent << '}';
}
- s << "default:\n";
- {
- Indentation indent(s);
- s << "// PYSIDE-74: By default, we redirect to object's tp_richcompare (which is `==`, `!=`).\n"
- << "return FallbackRichCompare(self, " << PYTHON_ARG << ", op);\n"
- << "goto " << baseName << "_RichComparison_TypeError;\n";
+
+ s << " else {\n";
+ if (op == AbstractMetaFunction::OperatorEqual ||
+ op == AbstractMetaFunction::OperatorNotEqual) {
+ s << indent << PYTHON_RETURN_VAR << " = "
+ << (op == AbstractMetaFunction::OperatorEqual ? "Py_False" : "Py_True") << ";\n"
+ << "Py_INCREF(" << PYTHON_RETURN_VAR << ");\n" << outdent;
+ } else {
+ s << indent << "return Shiboken::returnFromRichCompare("
+ << PYTHON_RETURN_VAR << ");\n" << outdent;
}
- }
- s << "}\n\n";
+ s << "}\n\n";
- s << "if (" << PYTHON_RETURN_VAR << " && !PyErr_Occurred())\n";
- {
- Indentation indent(s);
- s << "return " << PYTHON_RETURN_VAR << ";\n";
+ s << "break;\n" << outdent;
}
- s << baseName << "_RichComparison_TypeError:\n"
- << "PyErr_SetString(PyExc_NotImplementedError, \"operator not implemented.\");\n"
- << returnStatement(m_currentErrorCode) << '\n' << '\n'
- << outdent << "}\n\n";
+ s << "default:\n" << indent
+ << richCompareComment
+ << "return FallbackRichCompare(self, " << PYTHON_ARG << ", op);\n"
+ << outdent << outdent << "}\n\n"
+ << "return Shiboken::returnFromRichCompare(" << PYTHON_RETURN_VAR << ");\n" << outdent
+ << "}\n\n";
}
-QString CppGenerator::methodDefinitionParameters(const OverloadData &overloadData) const
+// Return a flag combination for PyMethodDef
+QByteArrayList CppGenerator::methodDefinitionParameters(const OverloadData &overloadData) const
{
const bool usePyArgs = overloadData.pythonFunctionWrapperUsesListOfArguments();
- const auto func = overloadData.referenceFunction();
int min = overloadData.minArgs();
int max = overloadData.maxArgs();
- QString result;
- QTextStream s(&result);
- s << "reinterpret_cast<PyCFunction>("
- << cpythonFunctionName(func) << "), ";
+ QByteArrayList result;
if ((min == max) && (max < 2) && !usePyArgs) {
- if (max == 0)
- s << "METH_NOARGS";
- else
- s << "METH_O";
+ result.append(max == 0 ? QByteArrayLiteral("METH_NOARGS")
+ : QByteArrayLiteral("METH_O"));
} else {
- s << "METH_VARARGS";
+ result.append(QByteArrayLiteral("METH_VARARGS"));
if (overloadData.hasArgumentWithDefaultValue())
- s << "|METH_KEYWORDS";
+ result.append(QByteArrayLiteral("METH_KEYWORDS"));
}
// METH_STATIC causes a crash when used for global functions (also from
// invisible namespaces).
- auto ownerClass = func->ownerClass();
+ const auto ownerClass = overloadData.referenceFunction()->ownerClass();
if (ownerClass
- && !invisibleTopNamespaces().contains(const_cast<AbstractMetaClass *>(ownerClass))) {
+ && !invisibleTopNamespaces().contains(std::const_pointer_cast<AbstractMetaClass>(ownerClass))) {
if (overloadData.hasStaticFunction())
- s << "|METH_STATIC";
+ result.append(QByteArrayLiteral("METH_STATIC"));
if (overloadData.hasClassMethod())
- s << "|METH_CLASS";
+ result.append(QByteArrayLiteral("METH_CLASS"));
}
return result;
}
-void CppGenerator::writeMethodDefinitionEntries(TextStream &s,
- const OverloadData &overloadData,
- qsizetype maxEntries) const
+QList<PyMethodDefEntry>
+ CppGenerator::methodDefinitionEntries(const OverloadData &overloadData) const
{
- const QStringList names = overloadData.referenceFunction()->definitionNames();
- const QString parameters = methodDefinitionParameters(overloadData);
- const qsizetype count = maxEntries > 0
- ? qMin(names.size(), maxEntries) : names.size();
- for (qsizetype i = 0; i < count; ++i) {
- if (i)
- s << ",\n";
- s << "{\"" << names.at(i) << "\", " << parameters << '}';
- }
-}
-void CppGenerator::writeMethodDefinition(TextStream &s,
- const OverloadData &overloadData) const
-{
- const auto func = overloadData.referenceFunction();
- if (m_tpFuncs.contains(func->name()))
- return;
+ const QStringList names = overloadData.referenceFunction()->definitionNames();
+ const QString funcName = cpythonFunctionName(overloadData.referenceFunction());
+ const QByteArrayList parameters = methodDefinitionParameters(overloadData);
- if (OverloadData::hasStaticAndInstanceFunctions(overloadData.overloads())) {
- s << cpythonMethodDefinitionName(func);
- } else {
- writeMethodDefinitionEntries(s, overloadData);
- }
- s << ',' << '\n';
+ QList<PyMethodDefEntry> result;
+ result.reserve(names.size());
+ for (const auto &name : names)
+ result.append({name, funcName, parameters, {}});
+ return result;
}
// Format the type signature of a function parameter
@@ -5110,12 +5131,6 @@ QString CppGenerator::signatureParameter(const AbstractMetaArgument &arg) const
if (size > 1)
s << ']';
- if (!arg.defaultValueExpression().isEmpty()) {
- s << '=';
- QString e = arg.defaultValueExpression();
- e.replace(QLatin1String("::"), QLatin1String("."));
- s << e;
- }
return result;
}
@@ -5132,181 +5147,213 @@ void CppGenerator::writeSignatureInfo(TextStream &s, const OverloadData &overloa
// PYSIDE-1328: `self`-ness cannot be computed in Python because there are mixed cases.
// Toplevel functions like `PySide6.QtCore.QEnum` are always self-less.
if (!(f->isStatic()) && f->ownerClass())
- args << QLatin1String("self");
+ args << PYTHON_SELF_VAR;
const auto &arguments = f->arguments();
for (qsizetype i = 0, size = arguments.size(); i < size; ++i) {
- QString t = f->pyiTypeReplaced(i + 1);
- if (t.isEmpty()) {
- t = signatureParameter(arguments.at(i));
- } else {
- t.prepend(u':');
- t.prepend(arguments.at(i).name());
+ const auto n = i + 1;
+ const auto &arg = arguments.at(i);
+ if (!f->argumentRemoved(n)) {
+ QString t = f->pyiTypeReplaced(n);
+ if (t.isEmpty()) {
+ t = signatureParameter(arg);
+ } else {
+ t.prepend(u':');
+ t.prepend(arg.name());
+ }
+ QString defaultValue = arg.defaultValueExpression();
+ if (!defaultValue.isEmpty())
+ t += u'=' + defaultValue.replace(u"::"_s, u"."_s);
+ args.append(t);
}
- args.append(t);
}
// mark the multiple signatures as such, to make it easier to generate different code
if (multiple)
s << idx-- << ':';
- s << funcName << '(' << args.join(QLatin1Char(',')) << ')';
- if (!f->isVoid()) {
- QString t = f->pyiTypeReplaced(0);
- if (t.isEmpty())
- t = f->type().pythonSignature();
- s << "->" << t;
- }
+ s << funcName << '(' << args.join(u',') << ')';
+
+ QString returnType = f->pyiTypeReplaced(0); // pyi or modified type
+ if (returnType.isEmpty() && !f->isVoid())
+ returnType = f->type().pythonSignature();
+ if (!returnType.isEmpty())
+ s << "->" << returnType;
+
s << '\n';
}
}
-void CppGenerator::writeEnumsInitialization(TextStream &s, AbstractMetaEnumList &enums) const
+void CppGenerator::writeEnumsInitialization(TextStream &s, AbstractMetaEnumList &enums)
{
if (enums.isEmpty())
return;
- s << "// Initialization of enums.\n\n";
- for (const AbstractMetaEnum &cppEnum : qAsConst(enums)) {
+ bool preambleWritten = false;
+ bool etypeUsed = false;
+
+ for (const AbstractMetaEnum &cppEnum : std::as_const(enums)) {
if (cppEnum.isPrivate())
continue;
- writeEnumInitialization(s, cppEnum);
+ if (!preambleWritten) {
+ s << "// Initialization of enums.\n"
+ << "Shiboken::AutoDecRef tpDict{};\n"
+ << "PyTypeObject *EType{};\n\n";
+ preambleWritten = true;
+ }
+ ConfigurableScope configScope(s, cppEnum.typeEntry());
+ etypeUsed |= writeEnumInitialization(s, cppEnum);
}
+ if (preambleWritten && !etypeUsed)
+ s << sbkUnusedVariableCast("EType");
}
-static QString mangleName(QString name)
+static qsizetype maxLineLength(const QStringList &list)
{
- if ( name == QLatin1String("None")
- || name == QLatin1String("False")
- || name == QLatin1String("True"))
- name += QLatin1Char('_');
- return name;
+ qsizetype result = 0;
+ for (const auto &s : list) {
+ if (auto len = s.size(); len > result)
+ result = len;
+ }
+ return result;
}
-void CppGenerator::writeEnumInitialization(TextStream &s, const AbstractMetaEnum &cppEnum) const
+bool CppGenerator::writeEnumInitialization(TextStream &s, const AbstractMetaEnum &cppEnum)
{
- const AbstractMetaClass *enclosingClass = cppEnum.targetLangEnclosingClass();
- bool hasUpperEnclosingClass = enclosingClass && enclosingClass->targetLangEnclosingClass() != nullptr;
- const EnumTypeEntry *enumTypeEntry = cppEnum.typeEntry();
+ const auto enclosingClass = cppEnum.targetLangEnclosingClass();
+ const bool hasUpperEnclosingClass = enclosingClass
+ && enclosingClass->targetLangEnclosingClass();
+ EnumTypeEntryCPtr enumTypeEntry = cppEnum.typeEntry();
QString enclosingObjectVariable;
if (enclosingClass)
enclosingObjectVariable = cpythonTypeName(enclosingClass);
else if (hasUpperEnclosingClass)
- enclosingObjectVariable = QLatin1String("enclosingClass");
+ enclosingObjectVariable = u"enclosingClass"_s;
else
- enclosingObjectVariable = QLatin1String("module");
+ enclosingObjectVariable = u"module"_s;
s << "// Initialization of ";
s << (cppEnum.isAnonymous() ? "anonymous enum identified by enum value" : "enum");
s << " '" << cppEnum.name() << "'.\n";
- QString enumVarTypeObj;
- if (!cppEnum.isAnonymous()) {
- int packageLevel = packageName().count(QLatin1Char('.')) + 1;
- FlagsTypeEntry *flags = enumTypeEntry->flags();
- if (flags) {
- // The following could probably be made nicer:
- // We need 'flags->flagsName()' with the full module/class path.
- QString fullPath = getClassTargetFullName(cppEnum);
- fullPath.truncate(fullPath.lastIndexOf(QLatin1Char('.')) + 1);
- s << cpythonTypeNameExt(flags) << " = PySide::QFlags::create(\""
- << packageLevel << ':' << fullPath << flags->flagsName() << "\", "
- << cpythonEnumName(cppEnum) << "_number_slots);\n";
- }
+ const QString userType = cppEnum.typeEntry()->cppType();
+ const bool isSigned = cppEnum.isSigned() && !userType.contains(u"unsigned"_s);
+ const bool isAccessible = !avoidProtectedHack() || !cppEnum.isProtected();
+ const auto enumValues = cppEnum.nonRejectedValues();
- enumVarTypeObj = cpythonTypeNameExt(enumTypeEntry);
-
- s << enumVarTypeObj << " = Shiboken::Enum::"
- << ((enclosingClass || hasUpperEnclosingClass) ? "createScopedEnum" : "createGlobalEnum")
- << '(' << enclosingObjectVariable << ',' << '\n';
- {
- Indentation indent(s);
- s << '"' << cppEnum.name() << "\",\n"
- << '"' << packageLevel << ':' << getClassTargetFullName(cppEnum) << "\",\n"
- << '"' << cppEnum.qualifiedCppName() << '"';
- if (flags)
- s << ",\n" << cpythonTypeNameExt(flags);
- s << ");\n";
- }
- s << "if (!" << cpythonTypeNameExt(cppEnum.typeEntry()) << ")\n";
- {
- Indentation indent(s);
- s << returnStatement(m_currentErrorCode) << "\n\n";
+ const QString prefix = cppEnum.name();
+
+ const QString intType = userType.isEmpty() ? cppEnum.underlyingType() : userType;
+
+ // Create a list of values
+ const QString initializerValues = prefix + u"_InitializerValues"_s;
+ const QString initializerName = prefix + u"_Initializer"_s;
+
+ // Build maybe array of enum names.
+ if (cppEnum.enumKind() != AnonymousEnum) {
+ s << "const char *" << initializerName << "[] = {\n" << indent;
+ for (const auto &enumValue : enumValues) {
+ QString name = mangleName(enumValue.name());
+ s << '\"' << name << "\",\n";
}
+ s << "nullptr};\n" << outdent;
}
- for (const AbstractMetaEnumValue &enumValue : cppEnum.values()) {
- if (enumTypeEntry->isEnumValueRejected(enumValue.name()))
- continue;
+ int targetHexLen = 0;
+ QString usedIntType = userType;
+ if (usedIntType.isEmpty()) {
+ const int usedBits = cppEnum.usedBits();
+ targetHexLen = usedBits / 4;
+ usedIntType = AbstractMetaEnum::intTypeForSize(usedBits, cppEnum.isSigned());
+ }
- QString enumValueText;
- if (!avoidProtectedHack() || !cppEnum.isProtected()) {
- enumValueText = QLatin1String("(long) ");
- if (cppEnum.enclosingClass())
- enumValueText += cppEnum.enclosingClass()->qualifiedCppName() + QLatin1String("::");
- // Fully qualify the value which is required for C++ 11 enum classes.
- if (!cppEnum.isAnonymous())
- enumValueText += cppEnum.name() + QLatin1String("::");
- enumValueText += enumValue.name();
- } else {
- enumValueText += enumValue.value().toString();
- }
+ if (usedIntType != intType)
+ s << "// \"" << usedIntType << "\" used instead of \"" << intType << "\"\n";
- const QString mangledName = mangleName(enumValue.name());
- switch (cppEnum.enumKind()) {
- case AnonymousEnum:
+ // Calculating formatting columns
+ QString enumValuePrefix;
+ if (isAccessible) {
+ if (cppEnum.enclosingClass())
+ enumValuePrefix += cppEnum.enclosingClass()->qualifiedCppName() + u"::"_s;
+ if (!cppEnum.isAnonymous())
+ enumValuePrefix += cppEnum.name() + u"::"_s;
+ }
+
+ // Build array of enum values
+ if (enumValues.isEmpty()) {
+ s << "const " << usedIntType << " *" << initializerValues << "{};\n";
+ } else {
+ QStringList values;
+ values.reserve(enumValues.size());
+ s << "constexpr " << usedIntType << ' ' << initializerValues << "[] = {\n" << indent;
+ for (qsizetype idx = 0, last = enumValues.size() - 1; idx <= last; ++idx) {
+ const auto &enumValue = enumValues.at(idx);
+ QString line = usedIntType + u'(' + (isAccessible
+ ? enumValuePrefix + enumValue.name()
+ : enumValue.value().toString()) + u')';
+ if (idx != last)
+ line += u',';
+ values.append(line);
+ }
+
+ const auto len = maxLineLength(values) + 1;
+ for (qsizetype idx = 0, size = enumValues.size(); idx < size; ++idx) {
+ const auto &enumValue = enumValues.at(idx).value();
+ const char *numberSpace = enumValue.isNegative() ? " " : " ";
+ s << values.at(idx) << Pad(' ', len - values.at(idx).size())
+ << "//" << numberSpace << enumValue.toHex(targetHexLen)
+ << numberSpace << enumValue.toString() << '\n';
+ }
+ s << "};\n" << outdent;
+ }
+
+ // Build initialization of anonymous enums
+ if (cppEnum.enumKind() == AnonymousEnum) {
+ int idx = 0;
+ for (const auto &enumValue : enumValues) {
+ const QString mangledName = mangleName(enumValue.name());
+ const QString pyValue = initializerValues + u'[' + QString::number(idx++) + u']';
if (enclosingClass || hasUpperEnclosingClass) {
- s << "{\n";
- {
- Indentation indent(s);
- s << "PyObject *anonEnumItem = PyLong_FromLong(" << enumValueText << ");\n"
- << "if (PyDict_SetItemString(reinterpret_cast<PyTypeObject *>("
- << enclosingObjectVariable
- << ")->tp_dict, \"" << mangledName << "\", anonEnumItem) < 0)\n";
- {
- Indentation indent(s);
- s << returnStatement(m_currentErrorCode) << '\n';
- }
- s << "Py_DECREF(anonEnumItem);\n";
- }
- s << "}\n";
+ s << "tpDict.reset(PepType_GetDict(reinterpret_cast<PyTypeObject *>("
+ << enclosingObjectVariable << ")));\n"
+ << "PyDict_SetItemString(tpDict.object(), \"" << mangledName << "\",\n"
+ << indent << (isSigned ? "PyLong_FromLongLong" : "PyLong_FromUnsignedLongLong")
+ << "(" << pyValue << "));\n" << outdent;
} else {
- s << "if (PyModule_AddIntConstant(module, \"" << mangledName << "\", ";
- s << enumValueText << ") < 0)\n";
- {
- Indentation indent(s);
- s << returnStatement(m_currentErrorCode) << '\n';
- }
+ s << "PyModule_AddObject(module, \"" << mangledName << "\",\n" << indent
+ << (isSigned ? "PyLong_FromLongLong" : "PyLong_FromUnsignedLongLong") << "("
+ << pyValue << "));\n" << outdent;
}
- break;
- case CEnum: {
- s << "if (!Shiboken::Enum::";
- s << ((enclosingClass || hasUpperEnclosingClass) ? "createScopedEnumItem" : "createGlobalEnumItem");
- s << '(' << enumVarTypeObj << ',' << '\n';
- Indentation indent(s);
- s << enclosingObjectVariable << ", \"" << mangledName << "\", "
- << enumValueText << "))\n"
- << returnStatement(m_currentErrorCode) << '\n';
- }
- break;
- case EnumClass: {
- s << "if (!Shiboken::Enum::createScopedEnumItem("
- << enumVarTypeObj << ',' << '\n';
- Indentation indent(s);
- s << enumVarTypeObj<< ", \"" << mangledName << "\", "
- << enumValueText << "))\n"
- << returnStatement(m_currentErrorCode) << '\n';
- }
- break;
}
}
+ bool etypeUsed = false;
+
+ QString enumVarTypeObj = cpythonTypeNameExtSet(enumTypeEntry);
+ if (!cppEnum.isAnonymous()) {
+ int packageLevel = packageName().count(u'.') + 1;
+ s << "EType = Shiboken::Enum::"
+ << "createPythonEnum"
+ << '(' << enclosingObjectVariable << ",\n" << indent
+ << '"' << packageLevel << ':' << getClassTargetFullName(cppEnum) << "\",\n"
+ << initializerName << ", " << initializerValues << ");\n" << outdent
+ << enumVarTypeObj << " = EType;\n";
+ etypeUsed = true;
+ }
+
+ if (cppEnum.typeEntry()->flags()) {
+ s << "// PYSIDE-1735: Mapping the flags class to the same enum class.\n"
+ << cpythonTypeNameExtSet(cppEnum.typeEntry()->flags()) << " =\n"
+ << indent << "EType;\n" << outdent;
+ }
writeEnumConverterInitialization(s, cppEnum);
s << "// End of '" << cppEnum.name() << "' enum";
if (cppEnum.typeEntry()->flags())
s << "/flags";
s << ".\n\n";
+
+ return etypeUsed;
}
-void CppGenerator::writeSignalInitialization(TextStream &s, const AbstractMetaClass *metaClass)
+void CppGenerator::writeSignalInitialization(TextStream &s, const AbstractMetaClassCPtr &metaClass)
{
// Try to check something and print some warnings
const auto &signalFuncs = metaClass->cppSignalFunctions();
@@ -5328,155 +5375,31 @@ void CppGenerator::writeSignalInitialization(TextStream &s, const AbstractMetaCl
}
}
- s << "PySide::Signal::registerSignals(" << cpythonTypeName(metaClass) << ", &::"
+ s << "PySide::Signal::registerSignals(pyType, &" << m_gsp
<< metaClass->qualifiedCppName() << "::staticMetaObject);\n";
}
-void CppGenerator::writeFlagsToLong(TextStream &s, const AbstractMetaEnum &cppEnum)
-{
- FlagsTypeEntry *flagsEntry = cppEnum.typeEntry()->flags();
- if (!flagsEntry)
- return;
- s << "static PyObject *" << cpythonEnumName(cppEnum) << "_long(PyObject *self)\n"
- << "{\n" << indent
- << "int val;\n";
- AbstractMetaType flagsType = AbstractMetaType::fromTypeEntry(flagsEntry);
- s << cpythonToCppConversionFunction(flagsType) << "self, &val);\n"
- << "return Shiboken::Conversions::copyToPython(Shiboken::Conversions::PrimitiveTypeConverter<int>(), &val);\n"
- << outdent << "}\n";
-}
-
-void CppGenerator::writeFlagsNonZero(TextStream &s, const AbstractMetaEnum &cppEnum)
-{
- FlagsTypeEntry *flagsEntry = cppEnum.typeEntry()->flags();
- if (!flagsEntry)
- return;
- s << "static int " << cpythonEnumName(cppEnum) << "__nonzero(PyObject *self)\n";
- s << "{\n" << indent << "int val;\n";
- AbstractMetaType flagsType = AbstractMetaType::fromTypeEntry(flagsEntry);
- s << cpythonToCppConversionFunction(flagsType) << "self, &val);\n"
- << "return val != 0;\n"
- << outdent << "}\n";
-}
-
-void CppGenerator::writeFlagsMethods(TextStream &s, const AbstractMetaEnum &cppEnum)
-{
- writeFlagsBinaryOperator(s, cppEnum, QLatin1String("and"), QLatin1String("&"));
- writeFlagsBinaryOperator(s, cppEnum, QLatin1String("or"), QLatin1String("|"));
- writeFlagsBinaryOperator(s, cppEnum, QLatin1String("xor"), QLatin1String("^"));
-
- writeFlagsUnaryOperator(s, cppEnum, QLatin1String("invert"), QLatin1String("~"));
- writeFlagsToLong(s, cppEnum);
- writeFlagsNonZero(s, cppEnum);
-
- s << '\n';
-}
-
-void CppGenerator::writeFlagsNumberMethodsDefinition(TextStream &s, const AbstractMetaEnum &cppEnum)
-{
- QString cpythonName = cpythonEnumName(cppEnum);
-
- s << "static PyType_Slot " << cpythonName << "_number_slots[] = {\n" << indent
- << "{Py_nb_bool, reinterpret_cast<void *>(" << cpythonName << "__nonzero)},\n"
- << "{Py_nb_invert, reinterpret_cast<void *>(" << cpythonName << "___invert__)},\n"
- << "{Py_nb_and, reinterpret_cast<void *>(" << cpythonName << "___and__)},\n"
- << "{Py_nb_xor, reinterpret_cast<void *>(" << cpythonName << "___xor__)},\n"
- << "{Py_nb_or, reinterpret_cast<void *>(" << cpythonName << "___or__)},\n"
- << "{Py_nb_int, reinterpret_cast<void *>(" << cpythonName << "_long)},\n"
- << "{Py_nb_index, reinterpret_cast<void *>(" << cpythonName << "_long)},\n"
- << "{0, " << NULL_PTR << "} // sentinel\n" << outdent
- << "};\n\n";
-}
-
-void CppGenerator::writeFlagsNumberMethodsDefinitions(TextStream &s,
- const AbstractMetaEnumList &enums)
-{
- for (const AbstractMetaEnum &e : enums) {
- if (!e.isAnonymous() && !e.isPrivate() && e.typeEntry()->flags()) {
- writeFlagsMethods(s, e);
- writeFlagsNumberMethodsDefinition(s, e);
- s << '\n';
- }
- }
-}
-
-void CppGenerator::writeFlagsBinaryOperator(TextStream &s, const AbstractMetaEnum &cppEnum,
- const QString &pyOpName, const QString &cppOpName)
-{
- FlagsTypeEntry *flagsEntry = cppEnum.typeEntry()->flags();
- Q_ASSERT(flagsEntry);
-
- s << "PyObject *" << cpythonEnumName(cppEnum) << "___" << pyOpName
- << "__(PyObject *self, PyObject *" << PYTHON_ARG << ")\n{\n" << indent;
-
- AbstractMetaType flagsType = AbstractMetaType::fromTypeEntry(flagsEntry);
- s << "::" << flagsEntry->originalName() << " cppResult, " << CPP_SELF_VAR
- << ", cppArg;\n"
- << CPP_SELF_VAR << " = static_cast<::" << flagsEntry->originalName()
- << ">(int(PyLong_AsLong(self)));\n"
- // PYSIDE-1436: Need to error check self as well because operators are used
- // sometimes with swapped args.
- << "if (PyErr_Occurred())\n" << indent
- << "return nullptr;\n" << outdent
- << "cppArg = static_cast<" << flagsEntry->originalName()
- << ">(int(PyLong_AsLong(" << PYTHON_ARG << ")));\n"
- << "if (PyErr_Occurred())\n" << indent
- << "return nullptr;\n" << outdent
- << "cppResult = " << CPP_SELF_VAR << " " << cppOpName << " cppArg;\n"
- << "return ";
- writeToPythonConversion(s, flagsType, nullptr, QLatin1String("cppResult"));
- s << ";\n" << outdent << "}\n\n";
-}
-
-void CppGenerator::writeFlagsUnaryOperator(TextStream &s, const AbstractMetaEnum &cppEnum,
- const QString &pyOpName,
- const QString &cppOpName, bool boolResult)
-{
- FlagsTypeEntry *flagsEntry = cppEnum.typeEntry()->flags();
- Q_ASSERT(flagsEntry);
-
- s << "PyObject *" << cpythonEnumName(cppEnum) << "___" << pyOpName
- << "__(PyObject *self, PyObject *" << PYTHON_ARG << ")\n{\n" << indent;
-
- AbstractMetaType flagsType = AbstractMetaType::fromTypeEntry(flagsEntry);
- s << "::" << flagsEntry->originalName() << " " << CPP_SELF_VAR << ";\n"
- << cpythonToCppConversionFunction(flagsType) << "self, &" << CPP_SELF_VAR
- << ");\n";
- if (boolResult)
- s << "bool";
- else
- s << "::" << flagsEntry->originalName();
- s << " cppResult = " << cppOpName << CPP_SELF_VAR << ";\n"
- << "return ";
- if (boolResult)
- s << "PyBool_FromLong(cppResult)";
- else
- writeToPythonConversion(s, flagsType, nullptr, QLatin1String("cppResult"));
- s << ";\n" << outdent << "}\n\n";
-}
-
-QString CppGenerator::getSimpleClassInitFunctionName(const AbstractMetaClass *metaClass)
+QString CppGenerator::getSimpleClassInitFunctionName(const AbstractMetaClassCPtr &metaClass)
{
QString initFunctionName;
// Disambiguate namespaces per module to allow for extending them.
if (metaClass->isNamespace())
initFunctionName += moduleName();
initFunctionName += metaClass->qualifiedCppName();
- initFunctionName.replace(QLatin1String("::"), QLatin1String("_"));
+ initFunctionName.replace(u"::"_s, u"_"_s);
return initFunctionName;
}
-QString CppGenerator::getSimpleClassStaticFieldsInitFunctionName(const AbstractMetaClass *metaClass)
+QString
+ CppGenerator::getSimpleClassStaticFieldsInitFunctionName(const AbstractMetaClassCPtr &metaClass)
{
- return QLatin1String("init_") + getSimpleClassInitFunctionName(metaClass)
- + QLatin1String("StaticFields");
+ return u"init_"_s + getSimpleClassInitFunctionName(metaClass)
+ + u"StaticFields"_s;
}
QString CppGenerator::getInitFunctionName(const GeneratorContext &context)
{
- return !context.forSmartPointer()
- ? getSimpleClassInitFunctionName(context.metaClass())
- : getFilteredCppSignatureString(context.preciseType().cppSignature());
+ return getSimpleClassInitFunctionName(context.metaClass());
}
void CppGenerator::writeSignatureStrings(TextStream &s,
@@ -5490,7 +5413,7 @@ void CppGenerator::writeSignatureStrings(TextStream &s,
const auto lines = QStringView{signatures}.split(u'\n', Qt::SkipEmptyParts);
for (auto line : lines) {
// must anything be escaped?
- if (line.contains(QLatin1Char('"')) || line.contains(QLatin1Char('\\')))
+ if (line.contains(u'"') || line.contains(u'\\'))
s << "R\"CPP(" << line << ")CPP\",\n";
else
s << '"' << line << "\",\n";
@@ -5499,13 +5422,13 @@ void CppGenerator::writeSignatureStrings(TextStream &s,
}
// Return the class name for which to invoke the destructor
-QString CppGenerator::destructorClassName(const AbstractMetaClass *metaClass,
- const GeneratorContext &classContext) const
+QString CppGenerator::destructorClassName(const AbstractMetaClassCPtr &metaClass,
+ const GeneratorContext &classContext)
{
if (metaClass->isNamespace() || metaClass->hasPrivateDestructor())
return {};
if (classContext.forSmartPointer())
- return classContext.smartPointerWrapperName();
+ return classContext.effectiveClassName();
const bool isValue = metaClass->typeEntry()->isValue();
const bool hasProtectedDestructor = metaClass->hasProtectedDestructor();
if (((avoidProtectedHack() && hasProtectedDestructor) || isValue)
@@ -5517,124 +5440,154 @@ QString CppGenerator::destructorClassName(const AbstractMetaClass *metaClass,
return metaClass->qualifiedCppName();
}
+// Return the base type entries for introduceWrapperType()
+static ComplexTypeEntryCList pyBaseTypeEntries(const AbstractMetaClassCPtr &metaClass)
+{
+ ComplexTypeEntryCList result;
+ if (metaClass->isNamespace()) {
+ if (auto extended = metaClass->extendedNamespace())
+ result.append(extended->typeEntry());
+ return result;
+ }
+
+ const auto &baseClasses = metaClass->typeSystemBaseClasses();
+ for (auto base : baseClasses) {
+ for (; base != nullptr; base = base->baseClass()) { // Find a type that is not disabled.
+ const auto ct = base->typeEntry()->codeGeneration();
+ if (ct == TypeEntry::GenerateCode || ct == TypeEntry::GenerateForSubclass)
+ break;
+ }
+ result.append(base->typeEntry());
+ }
+ return result;
+}
+
+// Return the base type strings for introduceWrapperType()
+QStringList CppGenerator::pyBaseTypes(const AbstractMetaClassCPtr &metaClass)
+{
+ const auto &baseEntries = pyBaseTypeEntries(metaClass);
+ QStringList result;
+ for (const auto &baseEntry : baseEntries)
+ result.append("reinterpret_cast<PyObject *>("_L1 + cpythonTypeNameExt(baseEntry) + u')');
+ if (result.isEmpty()) // no base classes -> SbkObjectType.
+ result.append(sbkObjectTypeF);
+ return result;
+}
+
+void CppGenerator::writeInitInheritance(TextStream &s) const
+{
+ s << "static void " << initInheritanceFunction << "()\n{\n" << indent
+ << "auto &bm = Shiboken::BindingManager::instance();\n"
+ << sbkUnusedVariableCast("bm");
+ for (const auto &cls : api().classes()){
+ auto te = cls->typeEntry();
+ if (shouldGenerate(te)) {
+ const auto &baseEntries = pyBaseTypeEntries(cls);
+ if (!baseEntries.isEmpty()) {
+ const QString childTypeInitStruct = typeInitStruct(cls->typeEntry());
+ for (const auto &baseEntry : baseEntries) {
+ s << "bm.addClassInheritance(&" << typeInitStruct(baseEntry) << ",\n"
+ << Pad(' ', 23) << '&' << childTypeInitStruct << ");\n";
+ }
+ }
+ }
+ }
+ s << outdent << "}\n\n";
+}
+
void CppGenerator::writeClassRegister(TextStream &s,
- const AbstractMetaClass *metaClass,
+ const AbstractMetaClassCPtr &metaClass,
const GeneratorContext &classContext,
const QString &signatures) const
{
- const ComplexTypeEntry *classTypeEntry = metaClass->typeEntry();
+ ComplexTypeEntryCPtr classTypeEntry = metaClass->typeEntry();
- const AbstractMetaClass *enc = metaClass->targetLangEnclosingClass();
- QString enclosingObjectVariable = enc ? QLatin1String("enclosingClass") : QLatin1String("module");
+ AbstractMetaClassCPtr enc = metaClass->targetLangEnclosingClass();
+ QString enclosingObjectVariable = enc ? u"enclosingClass"_s : u"module"_s;
QString pyTypeName = cpythonTypeName(metaClass);
QString initFunctionName = getInitFunctionName(classContext);
// PYSIDE-510: Create a signatures string for the introspection feature.
writeSignatureStrings(s, signatures, initFunctionName, "functions");
- s << "void init_" << initFunctionName;
- s << "(PyObject *" << enclosingObjectVariable << ")\n{\n" << indent;
+ s << "PyTypeObject *init_" << initFunctionName
+ << "(PyObject *" << enclosingObjectVariable << ")\n{\n" << indent;
+
+ const QString globalTypeVarExpr = !classContext.forSmartPointer()
+ ? cpythonTypeNameExtSet(classTypeEntry)
+ : cpythonTypeNameExtSet(classContext.preciseType());
+ s << "if (" << globalTypeVarExpr << " != nullptr)\n" << indent
+ << "return " << globalTypeVarExpr << ";\n\n" << outdent;
// Multiple inheritance
- QString pyTypeBasesVariable = chopType(pyTypeName) + QLatin1String("_Type_bases");
- const AbstractMetaClassList baseClasses = metaClass->typeSystemBaseClasses();
- if (metaClass->baseClassNames().size() > 1) {
- s << "PyObject *" << pyTypeBasesVariable
- << " = PyTuple_Pack(" << baseClasses.size() << ',' << '\n';
- Indentation indent(s);
- for (int i = 0, size = baseClasses.size(); i < size; ++i) {
- if (i)
- s << ",\n";
- s << "reinterpret_cast<PyObject *>("
- << cpythonTypeNameExt(baseClasses.at(i)->typeEntry()) << ')';
- }
- s << ");\n\n";
+ QString pyTypeBasesVariable = chopType(pyTypeName) + u"_Type_bases"_s;
+ const QStringList pyBases = pyBaseTypes(metaClass);
+ s << "Shiboken::AutoDecRef " << pyTypeBasesVariable << "(PyTuple_Pack("
+ << pyBases.size() << ",\n" << indent;
+ for (qsizetype i = 0, size = pyBases.size(); i < size; ++i) {
+ if (i)
+ s << ",\n";
+ s << pyBases.at(i);
}
+ s << "));\n\n" << outdent;
// Create type and insert it in the module or enclosing class.
- const QString typePtr = QLatin1String("_") + chopType(pyTypeName)
- + QLatin1String("_Type");
+ const QString typePtr = u"_"_s + chopType(pyTypeName)
+ + u"_Type"_s;
- s << typePtr << " = Shiboken::ObjectType::introduceWrapperType(\n";
- {
- Indentation indent(s);
- // 1:enclosingObject
- s << enclosingObjectVariable << ",\n";
- QString typeName;
- if (!classContext.forSmartPointer())
- typeName = metaClass->name();
- else
- typeName = classContext.preciseType().cppSignature();
+ s << typePtr << " = Shiboken::ObjectType::introduceWrapperType(\n" << indent;
+ // 1:enclosingObject
+ s << enclosingObjectVariable << ",\n";
- // 2:typeName
- s << "\"" << typeName << "\",\n";
+ // 2:typeName
+ s << "\"" << metaClass->name() << "\",\n";
- // 3:originalName
- s << "\"";
- if (!classContext.forSmartPointer()) {
- s << metaClass->qualifiedCppName();
- if (classTypeEntry->isObject())
- s << '*';
- } else {
- s << classContext.preciseType().cppSignature();
- }
+ // 3:originalName
+ s << "\"";
+ if (!classContext.forSmartPointer()) {
+ s << metaClass->qualifiedCppName();
+ if (classTypeEntry->isObject())
+ s << '*';
+ } else {
+ s << classContext.preciseType().cppSignature();
+ }
- s << "\",\n";
- // 4:typeSpec
- s << '&' << chopType(pyTypeName) << "_spec,\n";
+ s << "\",\n";
+ // 4:typeSpec
+ s << '&' << chopType(pyTypeName) << "_spec,\n";
- // 5:cppObjDtor
- QString dtorClassName = destructorClassName(metaClass, classContext);
- if (dtorClassName.isEmpty())
- s << "nullptr,\n";
- else
- s << "&Shiboken::callCppDestructor< ::" << dtorClassName << " >,\n";
-
- // 6:baseType: Find a type that is not disabled.
- auto base = metaClass->isNamespace()
- ? metaClass->extendedNamespace() : metaClass->baseClass();
- if (!metaClass->isNamespace()) {
- for (; base != nullptr; base = base->baseClass()) {
- const auto ct = base->typeEntry()->codeGeneration();
- if (ct == TypeEntry::GenerateCode || ct == TypeEntry::GenerateForSubclass)
- break;
- }
- }
- if (base) {
- s << cpythonTypeNameExt(base->typeEntry()) << ",\n";
- } else {
- s << "0,\n";
- }
+ // 5:cppObjDtor
+ QString dtorClassName = destructorClassName(metaClass, classContext);
+ if (dtorClassName.isEmpty())
+ s << "nullptr,\n";
+ else
+ s << "&Shiboken::callCppDestructor< " << globalScopePrefix(classContext)
+ << dtorClassName << " >,\n";
+
+ // 7:baseTypes
+ s << pyTypeBasesVariable << ".object()," << '\n';
+
+ // 8:wrapperflags
+ QByteArrayList wrapperFlags;
+ if (enc)
+ wrapperFlags.append(QByteArrayLiteral("Shiboken::ObjectType::WrapperFlags::InnerClass"));
+ if (metaClass->deleteInMainThread())
+ wrapperFlags.append(QByteArrayLiteral("Shiboken::ObjectType::WrapperFlags::DeleteInMainThread"));
+ if (classTypeEntry->isValue())
+ wrapperFlags.append("Shiboken::ObjectType::WrapperFlags::Value"_ba);
+ if (wrapperFlags.isEmpty())
+ s << '0';
+ else
+ s << wrapperFlags.join(" | ");
- // 7:baseTypes
- if (metaClass->baseClassNames().size() > 1)
- s << pyTypeBasesVariable << ',' << '\n';
- else
- s << "0,\n";
-
- // 8:wrapperflags
- QByteArrayList wrapperFlags;
- if (enc)
- wrapperFlags.append(QByteArrayLiteral("Shiboken::ObjectType::WrapperFlags::InnerClass"));
- if (metaClass->deleteInMainThread())
- wrapperFlags.append(QByteArrayLiteral("Shiboken::ObjectType::WrapperFlags::DeleteInMainThread"));
- if (wrapperFlags.isEmpty())
- s << '0';
- else
- s << wrapperFlags.join(" | ");
- }
- s << ");\nauto pyType = reinterpret_cast<PyTypeObject *>(" << typePtr << ");\n"
+ s << outdent << ");\nauto *pyType = " << pyTypeName << "; // references "
+ << typePtr << "\n"
<< "InitSignatureStrings(pyType, " << initFunctionName << "_SignatureStrings);\n";
- if (usePySideExtensions())
- s << "SbkObjectType_SetPropertyStrings(reinterpret_cast<PyTypeObject *>(" << typePtr << "), "
+ if (usePySideExtensions() && !classContext.forSmartPointer())
+ s << "SbkObjectType_SetPropertyStrings(pyType, "
<< chopType(pyTypeName) << "_PropertyStrings);\n";
-
- if (!classContext.forSmartPointer())
- s << cpythonTypeNameExt(classTypeEntry) << '\n';
- else
- s << cpythonTypeNameExt(classContext.preciseType()) << '\n';
- s << " = " << pyTypeName << ";\n\n";
+ s << globalTypeVarExpr << " = pyType;\n\n";
// Register conversions for the type.
writeConverterRegister(s, metaClass, classContext);
@@ -5649,7 +5602,7 @@ void CppGenerator::writeClassRegister(TextStream &s,
}
// Fill multiple inheritance data, if needed.
- const AbstractMetaClass *miClass = getMultipleInheritingClass(metaClass);
+ const auto miClass = getMultipleInheritingClass(metaClass);
if (miClass) {
s << "MultipleInheritanceInitFunction func = ";
if (miClass == metaClass) {
@@ -5665,15 +5618,19 @@ void CppGenerator::writeClassRegister(TextStream &s,
}
// Set typediscovery struct or fill the struct of another one
- if (metaClass->isPolymorphic() && metaClass->baseClass()) {
- s << "Shiboken::ObjectType::setTypeDiscoveryFunctionV2(" << cpythonTypeName(metaClass)
- << ", &" << cpythonBaseName(metaClass) << "_typeDiscovery);\n\n";
+ if (needsTypeDiscoveryFunction(metaClass)) {
+ s << "Shiboken::ObjectType::setTypeDiscoveryFunctionV2(\n" << indent
+ << cpythonTypeName(metaClass)
+ << ", &" << cpythonBaseName(metaClass) << "_typeDiscovery);" << outdent << "\n\n";
}
AbstractMetaEnumList classEnums = metaClass->enums();
metaClass->getEnumsFromInvisibleNamespacesToBeGenerated(&classEnums);
- ErrorCode errorCode(QString::fromLatin1(""));
+ if (!classContext.forSmartPointer() && !classEnums.isEmpty())
+ s << "// Pass the ..._EnumFlagInfo to the class.\n"
+ << "SbkObjectType_SetEnumFlagInfo(pyType, " << chopType(pyTypeName)
+ << "_EnumFlagInfo);\n\n";
writeEnumsInitialization(s, classEnums);
if (metaClass->hasSignals())
@@ -5694,26 +5651,40 @@ void CppGenerator::writeClassRegister(TextStream &s,
writeInitQtMetaTypeFunctionBody(s, classContext);
}
- if (usePySideExtensions() && metaClass->isQObject()) {
- s << "Shiboken::ObjectType::setSubTypeInitHook(" << pyTypeName
- << ", &PySide::initQObjectSubType);\n"
- << "PySide::initDynamicMetaObject(" << pyTypeName << ", &::"
- << metaClass->qualifiedCppName() << "::staticMetaObject, sizeof(";
- if (shouldGenerateCppWrapper(metaClass))
- s << wrapperName(metaClass);
- else
- s << "::" << metaClass->qualifiedCppName();
- s << "));\n";
+ if (usePySideExtensions() && isQObject(metaClass)) {
+ s << "Shiboken::ObjectType::setSubTypeInitHook(pyType, &PySide::initQObjectSubType);\n"
+ << "PySide::initDynamicMetaObject(pyType, &" << m_gsp
+ << metaClass->qualifiedCppName() << "::staticMetaObject, sizeof("
+ << (shouldGenerateCppWrapper(metaClass)
+ ? wrapperName(metaClass) : getFullTypeName(metaClass))
+ << "));\n";
}
- s << outdent << "}\n";
+ s << "\nreturn pyType;\n" << outdent << "}\n";
}
-void CppGenerator::writeStaticFieldInitialization(TextStream &s, const AbstractMetaClass *metaClass)
+void CppGenerator::writeStaticFieldInitialization(TextStream &s,
+ const AbstractMetaClassCPtr &metaClass)
{
- s << "\nvoid " << getSimpleClassStaticFieldsInitFunctionName(metaClass)
- << "()\n{\n" << indent << "auto dict = reinterpret_cast<PyTypeObject *>("
- << cpythonTypeName(metaClass) << ")->tp_dict;\n";
+ // cpythonTypeName == "Sbk_QRhiShaderResourceBinding_Data_TypeF"
+ QString name = cpythonTypeName(metaClass);
+ const auto parts = QStringView{name}.split(u'_', Qt::SkipEmptyParts);
+ if (parts.size() < 4) {
+ s << "\nPyTypeObject *" << getSimpleClassStaticFieldsInitFunctionName(metaClass)
+ << "(PyObject *module)\n{\n" << indent
+ << "auto *obType = PyObject_GetAttrString(module, \"" << metaClass->name() << "\");\n"
+ << "auto *type = reinterpret_cast<PyTypeObject *>(obType);\n"
+ << "Shiboken::AutoDecRef dict(PepType_GetDict(type));\n";
+ } else {
+ s << "\nPyTypeObject *" << getSimpleClassStaticFieldsInitFunctionName(metaClass)
+ << "(PyObject *module)\n{\n" << indent
+ << "auto *obContainerType = PyObject_GetAttrString(module, \""
+ << parts.at(1) << "\");\n"
+ << "auto *obType = PyObject_GetAttrString(obContainerType, \""
+ << parts.at(2) << "\");\n"
+ << "auto *type = reinterpret_cast<PyTypeObject *>(obType);\n"
+ << "Shiboken::AutoDecRef dict(PepType_GetDict(type));\n";
+ }
for (const AbstractMetaField &field : metaClass->fields()) {
if (field.isStatic()) {
s << "PyDict_SetItemString(dict, \"" << field.name()
@@ -5722,12 +5693,59 @@ void CppGenerator::writeStaticFieldInitialization(TextStream &s, const AbstractM
s << ");\n";
}
}
- s << '\n' << outdent << "}\n";
+ s << "return type;\n" << outdent << "}\n";
+}
+
+enum class QtRegisterMetaType
+{
+ None, Pointer, Value
+};
+
+static bool hasQtMetaTypeRegistrationSpec(const AbstractMetaClassCPtr &c)
+{
+ return c->typeEntry()->qtMetaTypeRegistration() !=
+ TypeSystem::QtMetaTypeRegistration::Unspecified;
+}
+
+// Returns if and how to register the Qt meta type. By default, "pointer" for
+// non-QObject object types and "value" for non-abstract, default-constructible
+// value types.
+QtRegisterMetaType qtMetaTypeRegistration(const AbstractMetaClassCPtr &c)
+{
+ if (c->isNamespace())
+ return QtRegisterMetaType::None;
+
+ // Specified in type system?
+ const bool isObject = c->isObjectType();
+ switch (c->typeEntry()->qtMetaTypeRegistration()) {
+ case TypeSystem::QtMetaTypeRegistration::Disabled:
+ return QtRegisterMetaType::None;
+ case TypeSystem::QtMetaTypeRegistration::Enabled:
+ case TypeSystem::QtMetaTypeRegistration::BaseEnabled:
+ return isObject ? QtRegisterMetaType::Pointer : QtRegisterMetaType::Value;
+ case TypeSystem::QtMetaTypeRegistration::Unspecified:
+ break;
+ }
+
+ // Is there a "base" specification in some base class, meaning only the
+ // base class is to be registered?
+ if (auto base = recurseClassHierarchy(c, hasQtMetaTypeRegistrationSpec)) {
+ const auto baseSpec = base->typeEntry()->qtMetaTypeRegistration();
+ if (baseSpec == TypeSystem::QtMetaTypeRegistration::BaseEnabled)
+ return QtRegisterMetaType::None;
+ }
+
+ // Default.
+ if (isObject)
+ return isQObject(c) ? QtRegisterMetaType::None : QtRegisterMetaType::Pointer;
+
+ return !c->isAbstract() && c->isDefaultConstructible()
+ ? QtRegisterMetaType::Value : QtRegisterMetaType::None;
}
void CppGenerator::writeInitQtMetaTypeFunctionBody(TextStream &s, const GeneratorContext &context)
{
- const AbstractMetaClass *metaClass = context.metaClass();
+ const auto metaClass = context.metaClass();
// Gets all class name variants used on different possible scopes
QStringList nameVariants;
if (!context.forSmartPointer())
@@ -5735,10 +5753,10 @@ void CppGenerator::writeInitQtMetaTypeFunctionBody(TextStream &s, const Generato
else
nameVariants << context.preciseType().cppSignature();
- const AbstractMetaClass *enclosingClass = metaClass->enclosingClass();
+ AbstractMetaClassCPtr enclosingClass = metaClass->enclosingClass();
while (enclosingClass) {
if (enclosingClass->typeEntry()->generateCode())
- nameVariants << (enclosingClass->name() + QLatin1String("::") + nameVariants.constLast());
+ nameVariants << (enclosingClass->name() + u"::"_s + nameVariants.constLast());
enclosingClass = enclosingClass->enclosingClass();
}
@@ -5748,69 +5766,74 @@ void CppGenerator::writeInitQtMetaTypeFunctionBody(TextStream &s, const Generato
else
className = context.preciseType().cppSignature();
- if (!metaClass->isNamespace() && !metaClass->isAbstract()) {
- // Qt metatypes are registered only on their first use, so we do this now.
- bool canBeValue = false;
- if (!metaClass->isObjectType()) {
- // check if there's a empty ctor
- for (const auto &func : metaClass->functions()) {
- if (func->isConstructor() && !func->arguments().count()) {
- canBeValue = true;
- break;
- }
- }
- }
-
- if (canBeValue) {
- for (const QString &name : qAsConst(nameVariants)) {
- s << "qRegisterMetaType< ::" << className << " >(\"" << name << "\");\n";
- }
- }
+ // Register meta types for signal/slot connections to work
+ // Qt metatypes are registered only on their first use, so we do this now.
+ switch (qtMetaTypeRegistration(metaClass)) {
+ case QtRegisterMetaType::None:
+ break;
+ case QtRegisterMetaType::Pointer:
+ s << "qRegisterMetaType< " << m_gsp << className << " *>();\n";
+ break;
+ case QtRegisterMetaType::Value:
+ for (const QString &name : std::as_const(nameVariants))
+ s << "qRegisterMetaType< " << m_gsp << className << " >(\"" << name << "\");\n";
+ break;
}
for (const AbstractMetaEnum &metaEnum : metaClass->enums()) {
if (!metaEnum.isPrivate() && !metaEnum.isAnonymous()) {
- for (const QString &name : qAsConst(nameVariants)) {
- s << "qRegisterMetaType< ::"
+ for (const QString &name : std::as_const(nameVariants)) {
+ s << "qRegisterMetaType< " << m_gsp
<< metaEnum.typeEntry()->qualifiedCppName() << " >(\""
<< name << "::" << metaEnum.name() << "\");\n";
}
- if (metaEnum.typeEntry()->flags()) {
- QString n = metaEnum.typeEntry()->flags()->originalName();
- s << "qRegisterMetaType< ::" << n << " >(\"" << n << "\");\n";
- }
}
}
}
-void CppGenerator::writeTypeDiscoveryFunction(TextStream &s, const AbstractMetaClass *metaClass)
+void CppGenerator::replacePolymorphicIdPlaceHolders(const AbstractMetaClassCPtr &metaClass,
+ QString *id)
+{
+ if (id->contains("%1"_L1)) {
+ QString replacement = " reinterpret_cast< "_L1 + m_gsp + metaClass->qualifiedCppName()
+ + " *>(cptr)"_L1;
+ id->replace("%1"_L1, replacement);
+ }
+ if (id->contains("%B"_L1)) {
+ auto baseClass = metaClass;
+ while (!baseClass->typeEntry()->isPolymorphicBase() && baseClass->baseClass())
+ baseClass = baseClass->baseClass();
+ QString replacement = " reinterpret_cast< "_L1 + m_gsp + baseClass->qualifiedCppName()
+ + " *>(cptr)"_L1;
+ id->replace("%B"_L1, replacement);
+ }
+}
+
+void CppGenerator::writeTypeDiscoveryFunction(TextStream &s,
+ const AbstractMetaClassCPtr &metaClass)
{
QString polymorphicExpr = metaClass->typeEntry()->polymorphicIdValue();
s << "static void *" << cpythonBaseName(metaClass)
- << "_typeDiscovery(void *cptr, PyTypeObject *instanceType)\n{\n" << indent;
+ << "_typeDiscovery(void *cptr, PyTypeObject *instanceType)\n{\n" << indent
+ << sbkUnusedVariableCast("cptr")
+ << sbkUnusedVariableCast("instanceType");
if (!polymorphicExpr.isEmpty()) {
- polymorphicExpr = polymorphicExpr.replace(QLatin1String("%1"),
- QLatin1String(" reinterpret_cast< ::")
- + metaClass->qualifiedCppName()
- + QLatin1String(" *>(cptr)"));
- s << " if (" << polymorphicExpr << ")\n";
- {
- Indentation indent(s);
- s << "return cptr;\n";
- }
+ replacePolymorphicIdPlaceHolders(metaClass, &polymorphicExpr);
+ s << "if (" << polymorphicExpr << ")\n" << indent
+ << "return cptr;\n" << outdent;
} else if (metaClass->isPolymorphic()) {
- const AbstractMetaClassList &ancestors = metaClass->allTypeSystemAncestors();
- for (AbstractMetaClass *ancestor : ancestors) {
+ const auto &ancestors = metaClass->allTypeSystemAncestors();
+ for (const auto &ancestor : ancestors) {
if (ancestor->baseClass())
continue;
if (ancestor->isPolymorphic()) {
- s << "if (instanceType == Shiboken::SbkType< ::"
- << ancestor->qualifiedCppName() << " >())\n";
- Indentation indent(s);
- s << "return dynamic_cast< ::" << metaClass->qualifiedCppName()
- << " *>(reinterpret_cast< ::"<< ancestor->qualifiedCppName() << " *>(cptr));\n";
+ s << "if (instanceType == Shiboken::SbkType< " << m_gsp
+ << ancestor->qualifiedCppName() << " >())\n" << indent
+ << "return dynamic_cast< " << getFullTypeName(metaClass)
+ << " *>(reinterpret_cast< "<< getFullTypeName(ancestor)
+ << " *>(cptr));\n" << outdent;
} else {
qCWarning(lcShiboken).noquote().nospace()
<< metaClass->qualifiedCppName() << " inherits from a non polymorphic type ("
@@ -5823,7 +5846,8 @@ void CppGenerator::writeTypeDiscoveryFunction(TextStream &s, const AbstractMetaC
s << "return {};\n" << outdent << "}\n\n";
}
-void CppGenerator::writeSetattroDefinition(TextStream &s, const AbstractMetaClass *metaClass) const
+void CppGenerator::writeSetattroDefinition(TextStream &s,
+ const AbstractMetaClassCPtr &metaClass)
{
s << "static int " << ShibokenGenerator::cpythonSetattroFunctionName(metaClass)
<< "(PyObject *self, PyObject *name, PyObject *value)\n{\n" << indent;
@@ -5833,7 +5857,7 @@ void CppGenerator::writeSetattroDefinition(TextStream &s, const AbstractMetaClas
}
}
-inline void CppGenerator::writeSetattroDefaultReturn(TextStream &s)
+void CppGenerator::writeSetattroDefaultReturn(TextStream &s)
{
s << "return PyObject_GenericSetAttr(self, name, value);\n"
<< outdent << "}\n\n";
@@ -5843,7 +5867,7 @@ void CppGenerator::writeSetattroFunction(TextStream &s, AttroCheck attroCheck,
const GeneratorContext &context) const
{
Q_ASSERT(!context.forSmartPointer());
- const AbstractMetaClass *metaClass = context.metaClass();
+ const auto metaClass = context.metaClass();
writeSetattroDefinition(s, metaClass);
// PYSIDE-1019: Switch tp_dict before doing tp_setattro.
@@ -5853,62 +5877,36 @@ void CppGenerator::writeSetattroFunction(TextStream &s, AttroCheck attroCheck,
// PYSIDE-803: Detect duck-punching; clear cache if a method is set.
if (attroCheck.testFlag(AttroCheckFlag::SetattroMethodOverride)
&& context.useWrapper()) {
- s << "if (value && PyCallable_Check(value)) {\n" << indent
- << "auto plain_inst = " << cpythonWrapperCPtr(metaClass, QLatin1String("self")) << ";\n"
- << "auto inst = dynamic_cast<" << context.wrapperName() << " *>(plain_inst);\n"
- << "if (inst)\n" << indent
+ s << "if (value != nullptr && PyCallable_Check(value) != 0) {\n" << indent
+ << "auto plain_inst = " << cpythonWrapperCPtr(metaClass, PYTHON_SELF_VAR) << ";\n"
+ << "auto *inst = dynamic_cast<" << context.wrapperName() << " *>(plain_inst);\n"
+ << "if (inst != nullptr)\n" << indent
<< "inst->resetPyMethodCache();\n" << outdent << outdent
<< "}\n";
}
if (attroCheck.testFlag(AttroCheckFlag::SetattroQObject)) {
s << "Shiboken::AutoDecRef pp(reinterpret_cast<PyObject *>(PySide::Property::getObject(self, name)));\n"
- << "if (!pp.isNull())\n";
- Indentation indent(s);
- s << "return PySide::Property::setValue(reinterpret_cast<PySideProperty *>(pp.object()), self, value);\n";
+ << "if (!pp.isNull())\n" << indent
+ << "return PySide::Property::setValue(reinterpret_cast<PySideProperty *>(pp.object()), self, value);\n"
+ << outdent;
}
if (attroCheck.testFlag(AttroCheckFlag::SetattroUser)) {
auto func = AbstractMetaClass::queryFirstFunction(metaClass->functions(),
FunctionQueryOption::SetAttroFunction);
Q_ASSERT(func);
- s << "{\n";
- {
- Indentation indent(s);
- s << "auto " << CPP_SELF_VAR << " = "
- << cpythonWrapperCPtr(metaClass, QLatin1String("self")) << ";\n";
- writeClassCodeSnips(s, func->injectedCodeSnips(), TypeSystem::CodeSnipPositionAny,
- TypeSystem::TargetLangCode, context);
- }
- s << "}\n";
+ s << "{\n" << indent
+ << "auto " << CPP_SELF_VAR << " = "
+ << cpythonWrapperCPtr(metaClass, PYTHON_SELF_VAR) << ";\n";
+ writeClassCodeSnips(s, func->injectedCodeSnips(), TypeSystem::CodeSnipPositionAny,
+ TypeSystem::TargetLangCode, context);
+ s << outdent << "}\n";
}
writeSetattroDefaultReturn(s);
}
-void CppGenerator::writeSmartPointerSetattroFunction(TextStream &s,
- const GeneratorContext &context) const
-{
- Q_ASSERT(context.forSmartPointer());
- writeSetattroDefinition(s, context.metaClass());
- s << "// Try to find the 'name' attribute, by retrieving the PyObject for the corresponding C++ object held by the smart pointer.\n"
- << "PyObject *rawObj = PyObject_CallMethod(self, "
- << SMART_POINTER_GETTER << ", 0);\n";
- s << "if (rawObj) {\n";
- {
- Indentation indent(s);
- s << "int hasAttribute = PyObject_HasAttr(rawObj, name);\n"
- << "if (hasAttribute) {\n";
- {
- Indentation indent(s);
- s << "return PyObject_GenericSetAttr(rawObj, name, value);\n";
- }
- s << "}\nPy_DECREF(rawObj);\n";
- }
- s << "}\n";
- writeSetattroDefaultReturn(s);
-}
-
-void CppGenerator::writeGetattroDefinition(TextStream &s, const AbstractMetaClass *metaClass)
+void CppGenerator::writeGetattroDefinition(TextStream &s, const AbstractMetaClassCPtr &metaClass)
{
s << "static PyObject *" << cpythonGetattroFunctionName(metaClass)
<< "(PyObject *self, PyObject *name)\n{\n" << indent;
@@ -5918,11 +5916,11 @@ QString CppGenerator::qObjectGetAttroFunction() const
{
static QString result;
if (result.isEmpty()) {
- auto qobjectClass = AbstractMetaClass::findClass(api().classes(), qObjectT());
+ auto qobjectClass = AbstractMetaClass::findClass(api().classes(), qObjectT);
Q_ASSERT(qobjectClass);
- result = QLatin1String("PySide::getMetaDataFromQObject(")
- + cpythonWrapperCPtr(qobjectClass, QLatin1String("self"))
- + QLatin1String(", self, name)");
+ result = u"PySide::getHiddenDataFromQObject("_s
+ + cpythonWrapperCPtr(qobjectClass, PYTHON_SELF_VAR)
+ + u", self, name)"_s;
}
return result;
}
@@ -5931,68 +5929,49 @@ void CppGenerator::writeGetattroFunction(TextStream &s, AttroCheck attroCheck,
const GeneratorContext &context) const
{
Q_ASSERT(!context.forSmartPointer());
- const AbstractMetaClass *metaClass = context.metaClass();
+ const auto metaClass = context.metaClass();
writeGetattroDefinition(s, metaClass);
// PYSIDE-1019: Switch tp_dict before doing tp_getattro.
if (usePySideExtensions())
s << "PySide::Feature::Select(self);\n";
- const QString getattrFunc = usePySideExtensions() && metaClass->isQObject()
- ? qObjectGetAttroFunction() : QLatin1String("PyObject_GenericGetAttr(self, name)");
+ const QString getattrFunc = usePySideExtensions() && isQObject(metaClass)
+ ? qObjectGetAttroFunction() : u"PyObject_GenericGetAttr(self, name)"_s;
if (attroCheck.testFlag(AttroCheckFlag::GetattroOverloads)) {
s << "// Search the method in the instance dict\n"
- << "if (auto ob_dict = reinterpret_cast<SbkObject *>(self)->ob_dict) {\n";
- {
- Indentation indent(s);
- s << "if (auto meth = PyDict_GetItem(ob_dict, name)) {\n";
- {
- Indentation indent(s);
- s << "Py_INCREF(meth);\n"
- << "return meth;\n";
- }
- s << "}\n";
- }
- s << "}\n"
+ << "auto *ob_dict = SbkObject_GetDict_NoRef(self);\n";
+ s << "if (auto *meth = PyDict_GetItem(ob_dict, name)) {\n" << indent
+ << "Py_INCREF(meth);\nreturn meth;\n" << outdent << "}\n"
<< "// Search the method in the type dict\n"
- << "if (Shiboken::Object::isUserType(self)) {\n";
- {
- Indentation indent(s);
- // PYSIDE-772: Perform optimized name mangling.
- s << "Shiboken::AutoDecRef tmp(_Pep_PrivateMangle(self, name));\n"
- << "if (auto meth = PyDict_GetItem(Py_TYPE(self)->tp_dict, tmp)) {\n";
- {
- Indentation indent(s);
- // PYSIDE-1523: PyFunction_Check is not accepting compiled functions.
- s << "if (strcmp(Py_TYPE(meth)->tp_name, \"compiled_function\") == 0)\n";
- {
- Indentation indent(s);
- s << "return Py_TYPE(meth)->tp_descr_get(meth, self, nullptr);\n";
- }
- s << "return PyFunction_Check(meth) ? PyMethod_New(meth, self)\n"
- << " : " << getattrFunc << ";\n";
- }
- s << "}\n";
- }
- s << "}\n";
+ << "if (Shiboken::Object::isUserType(self)) {\n" << indent;
+ // PYSIDE-772: Perform optimized name mangling.
+ s << "Shiboken::AutoDecRef tmp(_Pep_PrivateMangle(self, name));\n"
+ << "Shiboken::AutoDecRef tpDict(PepType_GetDict(Py_TYPE(self)));\n"
+ << "if (auto *meth = PyDict_GetItem(tpDict.object(), tmp)) {\n" << indent;
+ // PYSIDE-1523: PyFunction_Check is not accepting compiled functions.
+ s << "if (std::strcmp(Py_TYPE(meth)->tp_name, \"compiled_function\") == 0) {\n" << indent
+ << "auto descrGetFunc = "
+ << pyTypeGetSlot("descrgetfunc", "Py_TYPE(meth)", "Py_tp_descr_get") << ";\n"
+ << "return descrGetFunc(meth, self, nullptr);\n" << outdent
+ << "}\nreturn PyFunction_Check(meth) ? PyMethod_New(meth, self)\n"
+ << " : " << getattrFunc << ";\n" << outdent
+ << "}\n" << outdent << "}\n";
const auto &funcs = getMethodsWithBothStaticAndNonStaticMethods(metaClass);
for (const auto &func : funcs) {
QString defName = cpythonMethodDefinitionName(func);
- s << "static PyMethodDef non_static_" << defName << " = {\n";
- {
- Indentation indent(s);
- s << defName << ".ml_name,\n"
- << defName << ".ml_meth,\n"
- << defName << ".ml_flags & (~METH_STATIC),\n"
- << defName << ".ml_doc,\n";
- }
- s << "};\n"
+ s << "static PyMethodDef non_static_" << defName << " = {\n" << indent
+ << defName << ".ml_name,\n"
+ << defName << ".ml_meth,\n"
+ << defName << ".ml_flags & (~METH_STATIC),\n"
+ << defName << ".ml_doc,\n" << outdent
+ << "};\n"
<< "if (Shiboken::String::compare(name, \""
- << func->definitionNames().constFirst() << "\") == 0)\n";
- Indentation indent(s);
- s << "return PyCFunction_NewEx(&non_static_" << defName << ", self, 0);\n";
+ << func->definitionNames().constFirst() << "\") == 0)\n" << indent
+ << "return PyCFunction_NewEx(&non_static_" << defName << ", self, 0);\n"
+ << outdent;
}
}
@@ -6000,93 +5979,108 @@ void CppGenerator::writeGetattroFunction(TextStream &s, AttroCheck attroCheck,
auto func = AbstractMetaClass::queryFirstFunction(metaClass->functions(),
FunctionQueryOption::GetAttroFunction);
Q_ASSERT(func);
- s << "{\n";
- {
- Indentation indent(s);
- s << "auto " << CPP_SELF_VAR << " = "
- << cpythonWrapperCPtr(metaClass, QLatin1String("self")) << ";\n";
- writeClassCodeSnips(s, func->injectedCodeSnips(), TypeSystem::CodeSnipPositionAny,
- TypeSystem::TargetLangCode, context);
- }
- s << "}\n";
+ s << "{\n" << indent
+ << "auto " << CPP_SELF_VAR << " = "
+ << cpythonWrapperCPtr(metaClass, PYTHON_SELF_VAR) << ";\n";
+ writeClassCodeSnips(s, func->injectedCodeSnips(), TypeSystem::CodeSnipPositionAny,
+ TypeSystem::TargetLangCode, context);
+ s << outdent << "}\n";
}
s << "return " << getattrFunc << ";\n" << outdent << "}\n\n";
}
-void CppGenerator::writeSmartPointerGetattroFunction(TextStream &s, const GeneratorContext &context)
+void CppGenerator::writeNbBoolExpression(TextStream &s, const BoolCastFunction &f,
+ bool invert)
{
- Q_ASSERT(context.forSmartPointer());
- const AbstractMetaClass *metaClass = context.metaClass();
- writeGetattroDefinition(s, metaClass);
- s << "PyObject *tmp = PyObject_GenericGetAttr(self, name);\n"
- << "if (tmp)\n";
- {
- Indentation indent(s);
- s << "return tmp;\n";
- }
- s << "if (!PyErr_ExceptionMatches(PyExc_AttributeError))\n";
- {
- Indentation indent(s);
- s << "return nullptr;\n";
+ if (f.function->isOperatorBool()) {
+ if (invert)
+ s << '!';
+ s << '*' << CPP_SELF_VAR;
+ return;
}
- s << "PyErr_Clear();\n";
+ if (invert != f.invert)
+ s << '!';
+ s << CPP_SELF_VAR << "->" << f.function->name() << "()";
+}
- // This generates the code which dispatches access to member functions
- // and fields from the smart pointer to its pointee.
- s << "// Try to find the 'name' attribute, by retrieving the PyObject for "
- "the corresponding C++ object held by the smart pointer.\n"
- << "if (auto rawObj = PyObject_CallMethod(self, "
- << SMART_POINTER_GETTER << ", 0)) {\n";
- {
- Indentation indent(s);
- s << "if (auto attribute = PyObject_GetAttr(rawObj, name))\n";
- {
- Indentation indent(s);
- s << "tmp = attribute;\n";
- }
- s << "Py_DECREF(rawObj);\n";
- }
- s << "}\n"
- << "if (!tmp) {\n";
- {
- Indentation indent(s);
- s << R"(PyTypeObject *tp = Py_TYPE(self);
-PyErr_Format(PyExc_AttributeError,
- "'%.50s' object has no attribute '%.400s'",
- tp->tp_name, Shiboken::String::toCString(name));
-)";
- }
- s << "}\n"
- << "return tmp;\n" << outdent << "}\n\n";
+void CppGenerator::writeNbBoolFunction(const GeneratorContext &context,
+ const BoolCastFunction &f,
+ TextStream &s)
+{
+ s << "static int " << cpythonBaseName(context.metaClass()) << "___nb_bool(PyObject *self)\n"
+ << "{\n" << indent;
+ writeCppSelfDefinition(s, context, ErrorReturn::MinusOne);
+
+ const bool allowThread = f.function->allowThread();
+ if (allowThread)
+ s << "int result;\n" << BEGIN_ALLOW_THREADS << "\nresult = ";
+ else
+ s << "return ";
+
+ writeNbBoolExpression(s, f);
+ s << " ? 1 : 0;\n";
+
+ if (allowThread)
+ s << END_ALLOW_THREADS << "\nreturn result;\n";
+ s << outdent << "}\n\n";
}
// Write declaration and invocation of the init function for the module init
// function.
void CppGenerator::writeInitFunc(TextStream &declStr, TextStream &callStr,
const QString &initFunctionName,
- const TypeEntry *enclosingEntry)
+ const TypeEntryCPtr &enclosingEntry,
+ const QString &pythonName, bool lazy)
{
- const bool hasParent =
- enclosingEntry && enclosingEntry->type() != TypeEntry::TypeSystemType;
- declStr << "void init_" << initFunctionName << "(PyObject *"
+ const QString functionName = "init_"_L1 + initFunctionName;
+ const bool hasParent = enclosingEntry && enclosingEntry->type() != TypeEntry::TypeSystemType;
+ declStr << "PyTypeObject *" << functionName << "(PyObject *"
<< (hasParent ? "enclosingClass" : "module") << ");\n";
- callStr << "init_" << initFunctionName;
- if (hasParent) {
- callStr << "(reinterpret_cast<PyTypeObject *>("
- << cpythonTypeNameExt(enclosingEntry) << ")->tp_dict);\n";
+
+ if (!lazy) {
+ const QString enclosing = hasParent
+ ? "reinterpret_cast<PyObject *>("_L1 + cpythonTypeNameExt(enclosingEntry) + u')'
+ : "module"_L1;
+ callStr << functionName << '(' << enclosing << ");\n";
+ } else if (hasParent) {
+ const QString &enclosingName = enclosingEntry->name();
+ const auto parts = QStringView{enclosingName}.split(u"::", Qt::SkipEmptyParts);
+ callStr << "Shiboken::Module::AddTypeCreationFunction("
+ << "module, \"" << pythonName << "\", " << functionName << ", \"";
+ for (qsizetype i = 0; i < parts.size(); ++i) {
+ if (i > 0)
+ callStr << "\", \"";
+ callStr << parts.at(i);
+ }
+ callStr << "\");\n";
} else {
- callStr << "(module);\n";
+ callStr << "Shiboken::Module::AddTypeCreationFunction("
+ << "module, \"" << pythonName << "\", "
+ << "init_" << initFunctionName << ");\n";
}
}
+static void writeSubModuleHandling(TextStream &s, const QString &moduleName,
+ const QString &subModuleOf)
+{
+ s << "{\n" << indent
+ << "Shiboken::AutoDecRef parentModule(Shiboken::Module::import(\""
+ << subModuleOf << "\"));\n"
+ << "if (parentModule.isNull())\n" << indent
+ << "return nullptr;\n" << outdent
+ << "if (PyModule_AddObject(parentModule.object(), \"" << moduleName
+ << "\", module) < 0)\n"
+ << indent << "return nullptr;\n" << outdent << outdent << "}\n";
+}
+
bool CppGenerator::finishGeneration()
{
//Generate CPython wrapper file
StringStream s_classInitDecl(TextStream::Language::Cpp);
StringStream s_classPythonDefines(TextStream::Language::Cpp);
- QSet<Include> includes;
+ std::set<Include> includes;
StringStream s_globalFunctionImpl(TextStream::Language::Cpp);
StringStream s_globalFunctionDef(TextStream::Language::Cpp);
StringStream signatureStream(TextStream::Language::Cpp);
@@ -6095,8 +6089,8 @@ bool CppGenerator::finishGeneration()
for (auto it = functionGroups.cbegin(), end = functionGroups.cend(); it != end; ++it) {
const AbstractMetaFunctionCList &overloads = it.value();
for (const auto &func : overloads) {
- if (func->typeEntry())
- includes << func->typeEntry()->include();
+ if (auto te = func->typeEntry())
+ includes.insert(te->include());
}
if (overloads.isEmpty())
@@ -6108,34 +6102,69 @@ bool CppGenerator::finishGeneration()
writeMethodWrapper(s_globalFunctionImpl, overloadData, classContext);
writeSignatureInfo(signatureStream, overloadData);
- writeMethodDefinition(s_globalFunctionDef, overloadData);
+ s_globalFunctionDef << methodDefinitionEntries(overloadData);
}
AbstractMetaClassCList classesWithStaticFields;
- for (auto cls : api().classes()){
- if (shouldGenerate(cls)) {
+ for (const auto &cls : api().classes()){
+ auto te = cls->typeEntry();
+ if (shouldGenerate(te)) {
+ const bool hasConfigCondition = te->hasConfigCondition();
+ if (hasConfigCondition) {
+ s_classInitDecl << te->configCondition() << '\n';
+ s_classPythonDefines << te->configCondition() << '\n';
+ }
writeInitFunc(s_classInitDecl, s_classPythonDefines,
getSimpleClassInitFunctionName(cls),
- cls->typeEntry()->targetLangEnclosingEntry());
+ targetLangEnclosingEntry(te), cls->name());
if (cls->hasStaticFields()) {
- s_classInitDecl << "void "
- << getSimpleClassStaticFieldsInitFunctionName(cls) << "();\n";
+ s_classInitDecl << "PyTypeObject *"
+ << getSimpleClassStaticFieldsInitFunctionName(cls) << "(PyObject *module);\n";
classesWithStaticFields.append(cls);
}
+ if (hasConfigCondition) {
+ s_classInitDecl << "#endif\n";
+ s_classPythonDefines << "#endif\n";
+ }
}
}
// Initialize smart pointer types.
- const auto &smartPtrs = instantiatedSmartPointers();
- for (const AbstractMetaType &metaType : smartPtrs) {
- GeneratorContext context = contextForSmartPointer(nullptr, metaType);
+ for (const auto &smp : api().instantiatedSmartPointers()) {
+ GeneratorContext context = contextForSmartPointer(smp.specialized, smp.type);
+ const auto enclosingClass = context.metaClass()->enclosingClass();
+ auto enclosingTypeEntry = enclosingClass
+ ? enclosingClass->typeEntry()
+ : targetLangEnclosingEntry(smp.type.typeEntry());
+
writeInitFunc(s_classInitDecl, s_classPythonDefines,
getInitFunctionName(context),
- metaType.typeEntry()->targetLangEnclosingEntry());
+ enclosingTypeEntry, smp.type.name());
+ includes.insert(smp.type.instantiations().constFirst().typeEntry()->include());
+ }
+
+ for (auto &instantiatedContainer : api().instantiatedContainers()) {
+ includes.insert(instantiatedContainer.typeEntry()->include());
+ for (const auto &inst : instantiatedContainer.instantiations())
+ includes.insert(inst.typeEntry()->include());
+ }
+
+ const ExtendedConverterData extendedConverters = getExtendedConverters();
+ for (auto it = extendedConverters.cbegin(), end = extendedConverters.cend(); it != end; ++it) {
+ TypeEntryCPtr te = it.key();
+ includes.insert(te->include());
+ for (const auto &metaClass : it.value())
+ includes.insert(metaClass->typeEntry()->include());
+ }
+
+ const QList<CustomConversionPtr> &typeConversions = getPrimitiveCustomConversions();
+ for (const auto &c : typeConversions) {
+ if (auto te = c->ownerType())
+ includes.insert(te->include());
}
- QString moduleFileName(outputDirectory() + QLatin1Char('/') + subDirectoryForPackage(packageName()));
- moduleFileName += QLatin1Char('/') + moduleName().toLower() + QLatin1String("_module_wrapper.cpp");
+ QString moduleFileName(outputDirectory() + u'/' + subDirectoryForPackage(packageName()));
+ moduleFileName += u'/' + moduleName().toLower() + u"_module_wrapper.cpp"_s;
FileOut file(moduleFileName);
@@ -6149,60 +6178,78 @@ bool CppGenerator::finishGeneration()
#include <algorithm>
#include <signature.h>
)";
+
+ if (!api().instantiatedContainers().isEmpty())
+ s << "#include <sbkcontainer.h>\n#include <sbkstaticstrings.h>\n";
+
if (usePySideExtensions()) {
s << includeQDebug;
- s << R"(#include <pyside.h>
+ s << R"(#include <pysidecleanup.h>
#include <pysideqenum.h>
#include <feature_select.h>
+#include <pysidestaticstrings.h>
)";
}
s << "#include \"" << getModuleHeaderFileName() << '"' << "\n\n";
- for (const Include &include : qAsConst(includes))
+ for (const Include &include : includes)
s << include;
s << '\n';
// Global enums
AbstractMetaEnumList globalEnums = api().globalEnums();
- for (const AbstractMetaClass *nsp : invisibleTopNamespaces())
+ for (const auto &nsp : invisibleTopNamespaces()) {
+ const auto oldSize = globalEnums.size();
nsp->getEnumsToBeGenerated(&globalEnums);
+ if (globalEnums.size() > oldSize)
+ s << nsp->typeEntry()->include();
+ }
TypeDatabase *typeDb = TypeDatabase::instance();
- const TypeSystemTypeEntry *moduleEntry = typeDb->defaultTypeSystemType();
+ TypeSystemTypeEntryCPtr moduleEntry = typeDb->defaultTypeSystemType();
Q_ASSERT(moduleEntry);
- //Extra includes
- s << '\n' << "// Extra includes\n";
+ s << '\n';
+ // Extra includes
QList<Include> extraIncludes = moduleEntry->extraIncludes();
- for (const AbstractMetaEnum &cppEnum : qAsConst(globalEnums))
+ for (const AbstractMetaEnum &cppEnum : std::as_const(globalEnums))
extraIncludes.append(cppEnum.typeEntry()->extraIncludes());
- std::sort(extraIncludes.begin(), extraIncludes.end());
- for (const Include &inc : qAsConst(extraIncludes))
- s << inc;
- s << '\n'
- << "// Current module's type array.\n"
- << "PyTypeObject **" << cppApiVariableName() << " = nullptr;\n"
+ if (!extraIncludes.isEmpty()) {
+ s << "// Extra includes\n";
+ std::sort(extraIncludes.begin(), extraIncludes.end());
+ for (const Include &inc : std::as_const(extraIncludes))
+ s << inc;
+ s << '\n';
+ }
+
+ // FIXME PYSIDE-7: Remove backwards compatible structure
+ s << "// Current module's type array.\n"
+ << "Shiboken::Module::TypeInitStruct *" << cppApiVariableName() << " = nullptr;\n"
+ << "// Backwards compatible structure with identical indexing.\n"
+ << "PyTypeObject **" << cppApiVariableNameOld() << " = nullptr;\n"
<< "// Current module's PyObject pointer.\n"
<< "PyObject *" << pythonModuleObjectName() << " = nullptr;\n"
<< "// Current module's converter array.\n"
- << "SbkConverter **" << convertersVariableName() << " = nullptr;\n";
+ << "SbkConverter **" << convertersVariableName() << " = nullptr;\n\n";
const CodeSnipList snips = moduleEntry->codeSnips();
// module inject-code native/beginning
- if (!snips.isEmpty())
- writeCodeSnips(s, snips, TypeSystem::CodeSnipPositionBeginning, TypeSystem::NativeCode);
+ writeModuleCodeSnips(s, snips, TypeSystem::CodeSnipPositionBeginning, TypeSystem::NativeCode);
// cleanup staticMetaObject attribute
if (usePySideExtensions()) {
+ QString iType = cppApiVariableName() + "[i].type"_L1;
+ QString iName = cppApiVariableName() + "[i].fullName"_L1;
+
s << "void cleanTypesAttributes() {\n" << indent
- << "for (int i = 0, imax = SBK_" << moduleName()
- << "_IDX_COUNT; i < imax; i++) {\n" << indent
- << "PyObject *pyType = reinterpret_cast<PyObject *>(" << cppApiVariableName() << "[i]);\n"
- << "Shiboken::AutoDecRef attrName(Py_BuildValue(\"s\", \"staticMetaObject\"));\n"
- << "if (pyType && PyObject_HasAttr(pyType, attrName))\n" << indent
+ << "static PyObject *attrName = Shiboken::PyName::qtStaticMetaObject();\n"
+ << "const int imax = SBK_" << moduleName() << "_IDX_COUNT;\n"
+ << "for (int i = 0; i < imax && " << iName << " != nullptr; ++i) {\n" << indent
+ << "auto *pyType = reinterpret_cast<PyObject *>(" << iType << ");\n"
+ << "if (pyType != nullptr && PyObject_HasAttr(pyType, attrName))\n" << indent
<< "PyObject_SetAttr(pyType, attrName, Py_None);\n" << outdent
- << outdent << "}\n" << outdent << "}\n";
+ << outdent << "}\n" << outdent << "}\n\n";
}
s << "// Global functions "
@@ -6210,7 +6257,7 @@ bool CppGenerator::finishGeneration()
<< s_globalFunctionImpl.toString() << '\n'
<< "static PyMethodDef " << moduleName() << "_methods[] = {\n" << indent
<< s_globalFunctionDef.toString()
- << "{0} // Sentinel\n" << outdent << "};\n\n"
+ << METHOD_DEF_SENTINEL << outdent << "};\n\n"
<< "// Classes initialization functions "
<< "------------------------------------------------------------\n"
<< s_classInitDecl.toString() << '\n';
@@ -6220,12 +6267,8 @@ bool CppGenerator::finishGeneration()
s << "// Enum definitions "
<< "------------------------------------------------------------\n";
- for (const AbstractMetaEnum &cppEnum : qAsConst(globalEnums)) {
- if (cppEnum.isAnonymous() || cppEnum.isPrivate())
- continue;
+ for (const AbstractMetaEnum &cppEnum : std::as_const(globalEnums))
writeEnumConverterFunctions(s, cppEnum);
- s << '\n';
- }
if (convImpl.size() > 0) {
s << "// Enum converters "
@@ -6235,7 +6278,6 @@ bool CppGenerator::finishGeneration()
<< "} // namespace Shiboken\n\n";
}
- writeFlagsNumberMethodsDefinitions(s, globalEnums);
s << '\n';
}
@@ -6243,20 +6285,19 @@ bool CppGenerator::finishGeneration()
if (!requiredModules.isEmpty())
s << "// Required modules' type and converter arrays.\n";
for (const QString &requiredModule : requiredModules) {
- s << "PyTypeObject **" << cppApiVariableName(requiredModule) << ";\n"
+ s << "Shiboken::Module::TypeInitStruct *" << cppApiVariableName(requiredModule) << ";\n"
<< "SbkConverter **" << convertersVariableName(requiredModule) << ";\n";
}
s << "\n// Module initialization "
<< "------------------------------------------------------------\n";
- ExtendedConverterData extendedConverters = getExtendedConverters();
if (!extendedConverters.isEmpty()) {
s << '\n' << "// Extended Converters.\n\n";
for (ExtendedConverterData::const_iterator it = extendedConverters.cbegin(), end = extendedConverters.cend(); it != end; ++it) {
- const TypeEntry *externalType = it.key();
+ TypeEntryCPtr externalType = it.key();
s << "// Extended implicit conversions for "
<< externalType->qualifiedTargetLangName() << '.' << '\n';
- for (const AbstractMetaClass *sourceClass : it.value()) {
+ for (const auto &sourceClass : it.value()) {
AbstractMetaType sourceType = AbstractMetaType::fromAbstractMetaClass(sourceClass);
AbstractMetaType targetType = AbstractMetaType::fromTypeEntry(externalType);
writePythonToCppConversionFunctions(s, sourceType, targetType);
@@ -6264,10 +6305,9 @@ bool CppGenerator::finishGeneration()
}
}
- const QList<const CustomConversion *> &typeConversions = getPrimitiveCustomConversions();
if (!typeConversions.isEmpty()) {
s << "\n// Primitive Type converters.\n\n";
- for (const CustomConversion *conversion : typeConversions) {
+ for (const auto &conversion : typeConversions) {
s << "// C++ to Python conversion for primitive type '" << conversion->ownerType()->qualifiedCppName() << "'.\n";
writeCppToPythonFunction(s, conversion);
writeCustomConverterFunctions(s, conversion);
@@ -6275,23 +6315,32 @@ bool CppGenerator::finishGeneration()
s << '\n';
}
- const auto &containers = instantiatedContainers();
+ QHash<AbstractMetaType, OpaqueContainerData> opaqueContainers;
+ const auto &containers = api().instantiatedContainers();
+ QSet<AbstractMetaType> valueConverters;
if (!containers.isEmpty()) {
s << "// Container Type converters.\n\n";
for (const AbstractMetaType &container : containers) {
- s << "// C++ to Python conversion for container type '" << container.cppSignature() << "'.\n";
+ s << "// C++ to Python conversion for container type '"
+ << container.cppSignature() << "'.\n";
writeContainerConverterFunctions(s, container);
+ if (container.generateOpaqueContainer()) {
+ auto data = writeOpaqueContainerConverterFunctions(s, container,
+ &valueConverters);
+ opaqueContainers.insert(container, data);
+ }
}
s << '\n';
}
// Implicit smart pointers conversions
- const auto smartPointersList = instantiatedSmartPointers();
+ const auto &smartPointersList = api().instantiatedSmartPointers();
if (!smartPointersList.isEmpty()) {
s << "// SmartPointers converters.\n\n";
- for (const AbstractMetaType &smartPointer : smartPointersList) {
- s << "// C++ to Python conversion for smart pointer type '" << smartPointer.cppSignature() << "'.\n";
- writeSmartPointerConverterFunctions(s, smartPointer);
+ for (const auto &smp : smartPointersList) {
+ s << "// C++ to Python conversion for smart pointer type '"
+ << smp.type.cppSignature() << "'.\n";
+ writeSmartPointerConverterFunctions(s, smp.type);
}
s << '\n';
}
@@ -6310,6 +6359,8 @@ bool CppGenerator::finishGeneration()
// PYSIDE-510: Create a signatures string for the introspection feature.
writeSignatureStrings(s, signatureStream.toString(), moduleName(), "global functions");
+ writeInitInheritance(s);
+
// Write module init function
const QString globalModuleVar = pythonModuleObjectName();
s << "extern \"C\" LIBSHIBOKEN_EXPORT PyObject *PyInit_"
@@ -6318,10 +6369,9 @@ bool CppGenerator::finishGeneration()
s << "if (" << globalModuleVar << " != nullptr)\n"
<< indent << "return " << globalModuleVar << ";\n" << outdent;
- ErrorCode errorCode(QLatin1String("nullptr"));
// module inject-code target/beginning
- if (!snips.isEmpty())
- writeCodeSnips(s, snips, TypeSystem::CodeSnipPositionBeginning, TypeSystem::TargetLangCode);
+ writeModuleCodeSnips(s, snips, TypeSystem::CodeSnipPositionBeginning,
+ TypeSystem::TargetLangCode);
for (const QString &requiredModule : requiredModules) {
s << "{\n" << indent
@@ -6335,11 +6385,27 @@ bool CppGenerator::finishGeneration()
<< "}\n\n";
}
- int maxTypeIndex = getMaxTypeIndex() + instantiatedSmartPointers().size();
+ int maxTypeIndex = getMaxTypeIndex() + api().instantiatedSmartPointers().size();
if (maxTypeIndex) {
- s << "// Create an array of wrapper types for the current module.\n"
- << "static PyTypeObject *cppApi[SBK_" << moduleName() << "_IDX_COUNT];\n"
- << cppApiVariableName() << " = cppApi;\n\n";
+ s << "// Create an array of wrapper types/names for the current module.\n"
+ << "static Shiboken::Module::TypeInitStruct cppApi[] = {\n" << indent;
+
+ // Windows did not like an array of QString.
+ QStringList typeNames;
+ for (int idx = 0; idx < maxTypeIndex; ++idx)
+ typeNames.append("+++ unknown entry #"_L1 + QString::number(idx)
+ + " in "_L1 + moduleName());
+
+ collectFullTypeNamesArray(typeNames);
+
+ for (auto typeName : typeNames)
+ s << "{nullptr, \"" << typeName << "\"},\n";
+
+ s << "{nullptr, nullptr}\n" << outdent << "};\n"
+ << "// The new global structure consisting of (type, name) pairs.\n"
+ << cppApiVariableName() << " = cppApi;\n"
+ << "// The backward compatible alias with upper case indexes.\n"
+ << cppApiVariableNameOld() << " = reinterpret_cast<PyTypeObject **>(cppApi);\n\n";
}
s << "// Create an array of primitive type converters for the current module.\n"
@@ -6349,13 +6415,18 @@ bool CppGenerator::finishGeneration()
<< "PyObject *module = Shiboken::Module::create(\"" << moduleName()
<< "\", &moduledef);\n\n"
<< "// Make module available from global scope\n"
- << globalModuleVar << " = module;\n\n"
- << "// Initialize classes in the type system\n"
+ << globalModuleVar << " = module;\n\n";
+
+ const QString subModuleOf = typeDb->defaultTypeSystemType()->subModuleOf();
+ if (!subModuleOf.isEmpty())
+ writeSubModuleHandling(s, moduleName(), subModuleOf);
+
+ s << "// Initialize classes in the type system\n"
<< s_classPythonDefines.toString();
if (!typeConversions.isEmpty()) {
s << '\n';
- for (const CustomConversion *conversion : typeConversions) {
+ for (const auto &conversion : typeConversions) {
writePrimitiveConverterInitialization(s, conversion);
s << '\n';
}
@@ -6364,15 +6435,29 @@ bool CppGenerator::finishGeneration()
if (!containers.isEmpty()) {
s << '\n';
for (const AbstractMetaType &container : containers) {
- writeContainerConverterInitialization(s, container);
+ const QString converterObj = writeContainerConverterInitialization(s, container, api());
+ const auto it = opaqueContainers.constFind(container);
+ if (it != opaqueContainers.constEnd()) {
+ writeSetPythonToCppPointerConversion(s, converterObj,
+ it.value().pythonToConverterFunctionName,
+ it.value().converterCheckFunctionName);
+ }
s << '\n';
}
}
+ if (!opaqueContainers.isEmpty()) {
+ s << "\n// Opaque container type registration\n"
+ << "PyObject *ob_type{};\n";
+ for (const auto &d : opaqueContainers)
+ s << d.registrationCode;
+ s << '\n';
+ }
+
if (!smartPointersList.isEmpty()) {
s << '\n';
- for (const AbstractMetaType &smartPointer : smartPointersList) {
- writeSmartPointerConverterInitialization(s, smartPointer);
+ for (const auto &smp : smartPointersList) {
+ writeSmartPointerConverterInitialization(s, smp.type);
s << '\n';
}
}
@@ -6388,21 +6473,14 @@ bool CppGenerator::finishGeneration()
writeEnumsInitialization(s, globalEnums);
s << "// Register primitive types converters.\n";
- const PrimitiveTypeEntryList &primitiveTypeList = primitiveTypes();
- for (const PrimitiveTypeEntry *pte : primitiveTypeList) {
- if (!pte->generateCode() || !pte->isCppPrimitive())
+ const PrimitiveTypeEntryCList &primitiveTypeList = primitiveTypes();
+ for (const auto &pte : primitiveTypeList) {
+ if (!pte->generateCode() || !isCppPrimitive(pte))
continue;
- const TypeEntry *referencedType = pte->basicReferencedTypeEntry();
- if (!referencedType)
+ if (!pte->referencesType())
continue;
- QString converter = converterObject(referencedType);
- QStringList cppSignature = pte->qualifiedCppName().split(QLatin1String("::"), Qt::SkipEmptyParts);
- while (!cppSignature.isEmpty()) {
- QString signature = cppSignature.join(QLatin1String("::"));
- s << "Shiboken::Conversions::registerConverterName("
- << converter << ", \"" << signature << "\");\n";
- cppSignature.removeFirst();
- }
+ TypeEntryCPtr referencedType = basicReferencedTypeEntry(pte);
+ registerConverterInScopes(s, pte->qualifiedCppName(), converterObject(referencedType));
}
s << '\n';
@@ -6414,27 +6492,29 @@ bool CppGenerator::finishGeneration()
// of the previously registered types (PYSIDE-1529).
if (!classesWithStaticFields.isEmpty()) {
s << "\n// Static field initialization\n";
- for (auto cls : qAsConst(classesWithStaticFields))
- s << getSimpleClassStaticFieldsInitFunctionName(cls) << "();\n";
+ for (const auto &cls : std::as_const(classesWithStaticFields)) {
+ ConfigurableScope configScope(s, cls->typeEntry());
+ s << getSimpleClassStaticFieldsInitFunctionName(cls) << "(module);\n";
+ }
}
- s << "\nif (PyErr_Occurred()) {\n" << indent
+ s << '\n' << initInheritanceFunction << "();\n"
+ << "\nif (" << shibokenErrorsOccurred << ") {\n" << indent
<< "PyErr_Print();\n"
<< "Py_FatalError(\"can't initialize module " << moduleName() << "\");\n"
<< outdent << "}\n";
// module inject-code target/end
- if (!snips.isEmpty())
- writeCodeSnips(s, snips, TypeSystem::CodeSnipPositionEnd, TypeSystem::TargetLangCode);
+ writeModuleCodeSnips(s, snips, TypeSystem::CodeSnipPositionEnd, TypeSystem::TargetLangCode);
// module inject-code native/end
- if (!snips.isEmpty())
- writeCodeSnips(s, snips, TypeSystem::CodeSnipPositionEnd, TypeSystem::NativeCode);
+ writeModuleCodeSnips(s, snips, TypeSystem::CodeSnipPositionEnd, TypeSystem::NativeCode);
if (usePySideExtensions()) {
- for (const AbstractMetaEnum &metaEnum : qAsConst(globalEnums))
+ for (const AbstractMetaEnum &metaEnum : std::as_const(globalEnums))
if (!metaEnum.isAnonymous()) {
- s << "qRegisterMetaType< ::" << metaEnum.typeEntry()->qualifiedCppName()
+ ConfigurableScope configScope(s, metaEnum.typeEntry());
+ s << "qRegisterMetaType< " << getFullTypeName(metaEnum.typeEntry())
<< " >(\"" << metaEnum.name() << "\");\n";
}
@@ -6442,7 +6522,7 @@ bool CppGenerator::finishGeneration()
s << "PySide::registerCleanupFunction(cleanTypesAttributes);\n\n";
}
- // finish the rest of __signature__ initialization.
+ // finish the rest of get_signature() initialization.
s << "FinishSignatureInitialization(module, " << moduleName()
<< "_SignatureStrings);\n"
<< "\nreturn module;\n" << outdent << "}\n";
@@ -6459,12 +6539,35 @@ static ArgumentOwner getArgumentOwner(const AbstractMetaFunctionCPtr &func, int
return argOwner;
}
+// Whether to enable parent ownership heuristic for a function and its argument.
+// Both must belong to the same class hierarchy and have the same
+// type entry enabling parent management.
+static bool useParentHeuristics(const ApiExtractorResult &api,
+ const AbstractMetaFunctionCPtr &func,
+ const AbstractMetaType &argType)
+{
+ if (!ComplexTypeEntry::isParentManagementEnabled()) // FIXME PYSIDE 7: Remove this
+ return true;
+ const auto owner = func->ownerClass();
+ if (!owner)
+ return false;
+ auto ownerEntry = parentManagementEntry(owner);
+ if (!ownerEntry)
+ return false;
+ auto argTypeEntry = argType.typeEntry();
+ if (!argTypeEntry->isComplex())
+ return false;
+ const auto argClass = AbstractMetaClass::findClass(api.classes(), argTypeEntry);
+ return argClass && parentManagementEntry(argClass) == ownerEntry;
+}
+
bool CppGenerator::writeParentChildManagement(TextStream &s, const AbstractMetaFunctionCPtr &func,
int argIndex,
bool usePyArgs, bool useHeuristicPolicy) const
{
- const int numArgs = func->arguments().count();
+ const int numArgs = func->arguments().size();
bool ctorHeuristicEnabled = func->isConstructor() && useCtorHeuristic() && useHeuristicPolicy;
+ bool heuristicTriggered = false;
ArgumentOwner argOwner = getArgumentOwner(func, argIndex);
ArgumentOwner::Action action = argOwner.action;
@@ -6472,10 +6575,12 @@ bool CppGenerator::writeParentChildManagement(TextStream &s, const AbstractMetaF
int childIndex = argIndex;
if (ctorHeuristicEnabled && argIndex > 0 && argIndex <= numArgs) {
const AbstractMetaArgument &arg = func->arguments().at(argIndex-1);
- if (arg.name() == QLatin1String("parent") && arg.type().isObjectType()) {
+ if (arg.name() == u"parent" && arg.type().isObjectType()
+ && useParentHeuristics(api(), func, arg.type())) {
action = ArgumentOwner::Add;
parentIndex = argIndex;
childIndex = -1;
+ heuristicTriggered = true;
}
}
@@ -6487,28 +6592,32 @@ bool CppGenerator::writeParentChildManagement(TextStream &s, const AbstractMetaF
<< "Argument index for parent tag out of bounds: " << func->signature();
if (action == ArgumentOwner::Remove) {
- parentVariable = QLatin1String("Py_None");
+ parentVariable = u"Py_None"_s;
} else {
if (parentIndex == 0) {
- parentVariable = QLatin1String(PYTHON_RETURN_VAR);
+ parentVariable = PYTHON_RETURN_VAR;
} else if (parentIndex == -1) {
- parentVariable = QLatin1String("self");
+ parentVariable = PYTHON_SELF_VAR;
} else {
parentVariable = usePyArgs
- ? pythonArgsAt(parentIndex - 1) : QLatin1String(PYTHON_ARG);
+ ? pythonArgsAt(parentIndex - 1) : PYTHON_ARG;
}
}
if (childIndex == 0) {
- childVariable = QLatin1String(PYTHON_RETURN_VAR);
+ childVariable = PYTHON_RETURN_VAR;
} else if (childIndex == -1) {
- childVariable = QLatin1String("self");
+ childVariable = PYTHON_SELF_VAR;
} else {
childVariable = usePyArgs
- ? pythonArgsAt(childIndex - 1) : QLatin1String(PYTHON_ARG);
+ ? pythonArgsAt(childIndex - 1) : PYTHON_ARG;
}
- s << "Shiboken::Object::setParent(" << parentVariable << ", " << childVariable << ");\n";
+ s << "// Ownership transferences";
+ if (heuristicTriggered)
+ s << " (constructor heuristics)";
+ s << ".\nShiboken::Object::setParent(" << parentVariable << ", "
+ << childVariable << ");\n";
return true;
}
@@ -6519,7 +6628,7 @@ void CppGenerator::writeParentChildManagement(TextStream &s, const AbstractMetaF
bool usesPyArgs,
bool useHeuristicForReturn) const
{
- const int numArgs = func->arguments().count();
+ const int numArgs = func->arguments().size();
// -1 = return value
// 0 = self
@@ -6539,27 +6648,40 @@ void CppGenerator::writeReturnValueHeuristics(TextStream &s, const AbstractMetaF
|| type.isVoid()
|| func->isStatic()
|| func->isConstructor()
- || !func->typeReplaced(0).isEmpty()) {
+ || func->isTypeModified()
+ || !useParentHeuristics(api(), func, type)
+ // Something like parent(), parentWidget(): No child relationship here.
+ || (func->maybeAccessor() && func->name().startsWith(u"parent"))) {
return;
}
ArgumentOwner argOwner = getArgumentOwner(func, ArgumentOwner::ReturnIndex);
if (argOwner.action == ArgumentOwner::Invalid || argOwner.index != ArgumentOwner::ThisIndex) {
- if (type.isPointerToWrapperType())
- s << "Shiboken::Object::setParent(self, " << PYTHON_RETURN_VAR << ");\n";
+ if (type.isPointerToWrapperType()) {
+ s << "// Ownership transferences (return value heuristics).\n"
+ << "Shiboken::Object::setParent(self, " << PYTHON_RETURN_VAR << ");\n";
+ }
}
}
-void CppGenerator::writeHashFunction(TextStream &s, const GeneratorContext &context) const
+void CppGenerator::writeHashFunction(TextStream &s, const GeneratorContext &context)
{
- const AbstractMetaClass *metaClass = context.metaClass();
+ const auto metaClass = context.metaClass();
const char hashType[] = "Py_hash_t";
s << "static " << hashType << ' ' << cpythonBaseName(metaClass)
- << "_HashFunc(PyObject *self) {\n" << indent;
+ << "_HashFunc(PyObject *self)\n{\n" << indent;
writeCppSelfDefinition(s, context);
- s << "return " << hashType << '('
- << metaClass->typeEntry()->hashFunction() << '(';
- if (!metaClass->isObjectType())
+
+ bool deref = true;
+ QString name = metaClass->typeEntry()->hashFunction();
+ if (name.isEmpty())
+ name = metaClass->hashFunction();
+ else
+ deref = !metaClass->isObjectType();
+ Q_ASSERT(!name.isEmpty());
+
+ s << "return " << hashType << '(' << name << '(';
+ if (deref)
s << '*';
s << CPP_SELF_VAR << "));\n"
<< outdent << "}\n\n";
@@ -6568,21 +6690,22 @@ void CppGenerator::writeHashFunction(TextStream &s, const GeneratorContext &cont
void CppGenerator::writeDefaultSequenceMethods(TextStream &s,
const GeneratorContext &context) const
{
- const AbstractMetaClass *metaClass = context.metaClass();
- ErrorCode errorCode(0);
+ const auto metaClass = context.metaClass();
+ ErrorReturn errorReturn = ErrorReturn::Zero;
// __len__
- s << "Py_ssize_t " << cpythonBaseName(metaClass->typeEntry())
+ const QString namePrefix = cpythonBaseName(metaClass->typeEntry());
+ s << "Py_ssize_t " << namePrefix
<< "__len__(PyObject *self)\n{\n" << indent;
- writeCppSelfDefinition(s, context);
+ writeCppSelfDefinition(s, context, errorReturn);
s << "return " << CPP_SELF_VAR << "->size();\n"
<< outdent << "}\n";
// __getitem__
- s << "PyObject *" << cpythonBaseName(metaClass->typeEntry())
+ s << "PyObject *" << namePrefix
<< "__getitem__(PyObject *self, Py_ssize_t _i)\n{\n" << indent;
- writeCppSelfDefinition(s, context);
- writeIndexError(s, QLatin1String("index out of bounds"));
+ writeCppSelfDefinition(s, context, errorReturn);
+ writeIndexError(s, u"index out of bounds"_s, errorReturn);
s << metaClass->qualifiedCppName() << "::const_iterator _item = "
<< CPP_SELF_VAR << "->begin();\n"
@@ -6599,29 +6722,25 @@ void CppGenerator::writeDefaultSequenceMethods(TextStream &s,
const AbstractMetaType &itemType = instantiations.constFirst();
s << "return ";
- writeToPythonConversion(s, itemType, metaClass, QLatin1String("*_item"));
+ writeToPythonConversion(s, itemType, metaClass, u"*_item"_s);
s << ";\n" << outdent << "}\n";
// __setitem__
- ErrorCode errorCode2(-1);
- s << "int " << cpythonBaseName(metaClass->typeEntry())
+ s << "int " << namePrefix
<< "__setitem__(PyObject *self, Py_ssize_t _i, PyObject *pyArg)\n{\n"
<< indent;
- writeCppSelfDefinition(s, context);
- writeIndexError(s, QLatin1String("list assignment index out of range"));
+ errorReturn = ErrorReturn::MinusOne;
+ writeCppSelfDefinition(s, context, errorReturn);
+ writeIndexError(s, u"list assignment index out of range"_s, errorReturn);
- s << "PythonToCppFunc " << PYTHON_TO_CPP_VAR << ";\n"
+ s << PYTHON_TO_CPPCONVERSION_STRUCT << ' ' << PYTHON_TO_CPP_VAR << ";\n"
<< "if (!";
- writeTypeCheck(s, itemType, QLatin1String("pyArg"), isNumber(itemType.typeEntry()));
- s << ") {\n";
- {
- Indentation indent(s);
- s << "PyErr_SetString(PyExc_TypeError, \"attributed value with wrong type, '"
- << itemType.name() << "' or other convertible type expected\");\n"
- << "return -1;\n";
- }
- s << "}\n";
- writeArgumentConversion(s, itemType, QLatin1String("cppValue"), QLatin1String("pyArg"), metaClass);
+ writeTypeCheck(s, itemType, u"pyArg"_s, isNumber(itemType.typeEntry()));
+ s << ") {\n" << indent
+ << "Shiboken::Errors::setSequenceTypeError(\"" << itemType.name() << "\");\n"
+ << "return -1;\n" << outdent << "}\n";
+ writeArgumentConversion(s, itemType, u"cppValue"_s,
+ u"pyArg"_s, errorReturn, metaClass);
s << metaClass->qualifiedCppName() << "::iterator _item = "
<< CPP_SELF_VAR << "->begin();\n"
@@ -6630,25 +6749,28 @@ void CppGenerator::writeDefaultSequenceMethods(TextStream &s,
s << "return {};\n" << outdent << "}\n";
}
-void CppGenerator::writeIndexError(TextStream &s, const QString &errorMsg)
+void CppGenerator::writeIndexError(TextStream &s, const QString &errorMsg,
+ ErrorReturn errorReturn)
{
- s << "if (_i < 0 || _i >= (Py_ssize_t) " << CPP_SELF_VAR << "->size()) {\n";
- {
- Indentation indent(s);
- s << "PyErr_SetString(PyExc_IndexError, \"" << errorMsg << "\");\n"
- << returnStatement(m_currentErrorCode) << '\n';
- }
- s << "}\n";
+ s << "if (_i < 0 || _i >= (Py_ssize_t) " << CPP_SELF_VAR << "->size()) {\n"
+ << indent << "PyErr_SetString(PyExc_IndexError, \"" << errorMsg << "\");\n"
+ << errorReturn << outdent << "}\n";
+}
+
+QString CppGenerator::writeReprFunctionHeader(TextStream &s, const GeneratorContext &context)
+{
+ QString funcName = cpythonBaseName(context.metaClass()) + REPR_FUNCTION;
+ s << "extern \"C\"\n{\n"
+ << "static PyObject *" << funcName << "(PyObject *self)\n{\n" << indent;
+ return funcName;
}
QString CppGenerator::writeReprFunction(TextStream &s,
const GeneratorContext &context,
- uint indirections) const
+ uint indirections)
{
- const AbstractMetaClass *metaClass = context.metaClass();
- QString funcName = cpythonBaseName(metaClass) + reprFunction();
- s << "extern \"C\"\n{\n"
- << "static PyObject *" << funcName << "(PyObject *self)\n{\n" << indent;
+ const auto metaClass = context.metaClass();
+ QString funcName = writeReprFunctionHeader(s, context);
writeCppSelfDefinition(s, context);
s << R"(QBuffer buffer;
buffer.open(QBuffer::ReadWrite);
@@ -6659,27 +6781,25 @@ dbg << )";
s << CPP_SELF_VAR << R"(;
buffer.close();
QByteArray str = buffer.data();
-int idx = str.indexOf('(');
+const auto idx = str.indexOf('(');
+auto *typeName = Py_TYPE(self)->tp_name;
if (idx >= 0)
-)";
- {
- Indentation indent(s);
- s << "str.replace(0, idx, Py_TYPE(self)->tp_name);\n";
- }
- s << "str = str.trimmed();\n"
- << "PyObject *mod = PyDict_GetItem(Py_TYPE(self)->tp_dict, Shiboken::PyMagicName::module());\n";
+)" << indent << "str.replace(0, idx, typeName);\n" << outdent
+ << "str = str.trimmed();\n"
+ << "Shiboken::AutoDecRef tpDict(PepType_GetDict(Py_TYPE(self)));\n"
+ << "PyObject *mod = PyDict_GetItem(tpDict.object(), Shiboken::PyMagicName::module());\n";
// PYSIDE-595: The introduction of heap types has the side effect that the module name
// is always prepended to the type name. Therefore the strchr check:
- s << "if (mod && !strchr(str, '.'))\n";
- {
- Indentation indent(s);
- s << "return Shiboken::String::fromFormat(\"<%s.%s at %p>\", Shiboken::String::toCString(mod), str.constData(), self);\n";
- }
- s << "else\n";
- {
- Indentation indent(s);
- s << "return Shiboken::String::fromFormat(\"<%s at %p>\", str.constData(), self);\n";
- }
- s << outdent << "}\n} // extern C\n\n";
+ s << "if (mod != nullptr && std::strchr(typeName, '.') == nullptr)\n" << indent
+ << "return Shiboken::String::fromFormat(\"<%s.%s at %p>\","
+ " Shiboken::String::toCString(mod), str.constData(), self);\n"
+ << outdent
+ << "return Shiboken::String::fromFormat(\"<%s at %p>\", str.constData(), self);\n";
+ writeReprFunctionFooter(s);
return funcName;
}
+
+void CppGenerator::writeReprFunctionFooter(TextStream &s)
+{
+ s << outdent << "}\n} // extern C\n\n";
+}
diff --git a/sources/shiboken6/generator/shiboken/cppgenerator.h b/sources/shiboken6/generator/shiboken/cppgenerator.h
index 8f6a19ced..a31c2ca14 100644
--- a/sources/shiboken6/generator/shiboken/cppgenerator.h
+++ b/sources/shiboken6/generator/shiboken/cppgenerator.h
@@ -1,41 +1,23 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef CPPGENERATOR_H
#define CPPGENERATOR_H
#include "shibokengenerator.h"
-#include "abstractmetalang_enums.h"
+#include "include.h"
+#include "modifications_typedefs.h"
-#include <QtCore/QSharedPointer>
+#include <QtCore/QFlags>
+#include <QtCore/QSet>
+#include <QtCore/QHash>
+
+#include <memory>
+#include <utility>
class OverloadDataNode;
class OverloadDataRootNode;
+struct PyMethodDefEntry;
/**
* The CppGenerator generate the implementations of C++ bindings classes.
@@ -43,105 +25,200 @@ class OverloadDataRootNode;
class CppGenerator : public ShibokenGenerator
{
public:
+ enum class ErrorReturn {
+ Default, // "{}"
+ Zero,
+ MinusOne,
+ Void
+ };
+
+ enum CppSelfDefinitionFlag {
+ HasStaticOverload = 0x1,
+ HasClassMethodOverload = 0x2,
+ CppSelfAsReference = 0x4
+ };
+ Q_DECLARE_FLAGS(CppSelfDefinitionFlags, CppSelfDefinitionFlag)
+
CppGenerator();
const char *name() const override { return "Source generator"; }
protected:
- QString fileNameSuffix() const override;
QString fileNameForContext(const GeneratorContext &context) const override;
- static QList<AbstractMetaFunctionCList>
- filterGroupedOperatorFunctions(const AbstractMetaClass *metaClass,
- OperatorQueryOptions query);
void generateClass(TextStream &s, const GeneratorContext &classContext) override;
bool finishGeneration() override;
private:
+ struct VirtualMethodReturn
+ {
+ QString statement;
+ bool needsReference = false;
+ };
+
+
+ void generateSmartPointerClass(TextStream &s, const GeneratorContext &classContext);
+ void generateIncludes(TextStream &s, const GeneratorContext &classContext,
+ const IncludeGroupList &includes = {},
+ const AbstractMetaClassCList &innerClasses = {}) const;
static void writeInitFunc(TextStream &declStr, TextStream &callStr,
const QString &initFunctionName,
- const TypeEntry *enclosingEntry = nullptr);
+ const TypeEntryCPtr &enclosingEntry,
+ const QString &pythonName, bool lazy = true);
static void writeCacheResetNative(TextStream &s, const GeneratorContext &classContext);
void writeConstructorNative(TextStream &s, const GeneratorContext &classContext,
const AbstractMetaFunctionCPtr &func) const;
- void writeDestructorNative(TextStream &s, const GeneratorContext &classContext) const;
+ static void writeDestructorNative(TextStream &s, const GeneratorContext &classContext);
QString getVirtualFunctionReturnTypeName(const AbstractMetaFunctionCPtr &func) const;
- void writeVirtualMethodNative(TextStream &s, const AbstractMetaFunctionCPtr &func,
+ static std::pair<QString, QChar> virtualMethodNativeArg(const AbstractMetaFunctionCPtr &func,
+ const AbstractMetaArgument &arg);
+ static void writeVirtualMethodNativeVectorCallArgs(TextStream &s,
+ const AbstractMetaFunctionCPtr &func,
+ const AbstractMetaArgumentList &arguments,
+ const QList<int> &invalidateArgs);
+ static void writeVirtualMethodNativeArgs(TextStream &s,
+ const AbstractMetaFunctionCPtr &func,
+ const AbstractMetaArgumentList &arguments,
+ const QList<int> &invalidateArgs);
+ void writeVirtualMethodNative(TextStream &s,
+ const AbstractMetaFunctionCPtr &func,
int cacheIndex) const;
+ void writeVirtualMethodPythonOverride(TextStream &s,
+ const AbstractMetaFunctionCPtr &func,
+ const CodeSnipList &snips,
+ const VirtualMethodReturn &returnStatement) const;
+ void writeUserAddedPythonOverride(TextStream &s,
+ const AbstractMetaFunctionCPtr &func) const;
void writeVirtualMethodCppCall(TextStream &s, const AbstractMetaFunctionCPtr &func,
- const QString &funcName, const CodeSnipList &snips,
- const AbstractMetaArgument *lastArg, const TypeEntry *retType,
- const QString &returnStatement) const;
- static QString virtualMethodReturn(TextStream &s, const ApiExtractorResult &api,
- const AbstractMetaFunctionCPtr &func,
- const FunctionModificationList &functionModifications);
+ const QString &funcName, const QList<CodeSnip> &snips,
+ const AbstractMetaArgument *lastArg, const TypeEntryCPtr &retType,
+ const QString &returnStatement, bool hasGil) const;
+
+ static VirtualMethodReturn virtualMethodReturn(const ApiExtractorResult &api,
+ const AbstractMetaFunctionCPtr &func,
+ const FunctionModificationList &functionModifications);
void writeMetaObjectMethod(TextStream &s, const GeneratorContext &classContext) const;
static void writeMetaCast(TextStream &s, const GeneratorContext &classContext);
- void writeEnumConverterFunctions(TextStream &s, const TypeEntry *enumType) const;
void writeEnumConverterFunctions(TextStream &s, const AbstractMetaEnum &metaEnum) const;
- void writeConverterFunctions(TextStream &s, const AbstractMetaClass *metaClass,
+ void writeConverterFunctions(TextStream &s, const AbstractMetaClassCPtr &metaClass,
const GeneratorContext &classContext) const;
void writeCustomConverterFunctions(TextStream &s,
- const CustomConversion *customConversion) const;
- void writeConverterRegister(TextStream &s, const AbstractMetaClass *metaClass,
+ const CustomConversionPtr &customConversion) const;
+ void writeConverterRegister(TextStream &s, const AbstractMetaClassCPtr &metaClass,
const GeneratorContext &classContext) const;
- static void writeCustomConverterRegister(TextStream &s, const CustomConversion *customConversion,
+ static void writeCustomConverterRegister(TextStream &s,
+ const CustomConversionPtr &customConversion,
const QString &converterVar);
void writeContainerConverterFunctions(TextStream &s,
const AbstractMetaType &containerType) const;
+ struct OpaqueContainerData
+ {
+ QString name;
+ QString checkFunctionName;
+ QString converterCheckFunctionName;
+ QString pythonToConverterFunctionName;
+ QString registrationCode;
+ };
+
+ OpaqueContainerData
+ writeOpaqueContainerConverterFunctions(TextStream &s,
+ const AbstractMetaType &containerType,
+ QSet<AbstractMetaType> *valueTypes) const;
+ void writeOpaqueContainerValueConverter(TextStream &s,
+ const AbstractMetaType &valueType) const;
+
void writeSmartPointerConverterFunctions(TextStream &s,
const AbstractMetaType &smartPointerType) const;
- void writeMethodWrapperPreamble(TextStream &s, const OverloadData &overloadData,
- const GeneratorContext &context) const;
- void writeConstructorWrapper(TextStream &s, const OverloadData &overloadData,
+ static bool needsArgumentErrorHandling(const OverloadData &overloadData);
+ static void writeMethodWrapperPreamble(TextStream &s,
+ const OverloadData &overloadData,
+ const GeneratorContext &context,
+ ErrorReturn errorReturn = ErrorReturn::Default);
+ void writeConstructorWrapper(TextStream &s,
+ const OverloadData &overloadData,
const GeneratorContext &classContext) const;
void writeMethodWrapper(TextStream &s, const OverloadData &overloadData,
const GeneratorContext &classContext) const;
- static void writeArgumentsInitializer(TextStream &s, const OverloadData &overloadData);
+ void writeMethodWrapper(TextStream &s, TextStream &definitionStream,
+ TextStream &signatureStream,
+ const AbstractMetaFunctionCList &overloads,
+ const GeneratorContext &classContext) const;
+ static void writeArgumentsInitializer(TextStream &s, const OverloadData &overloadData,
+ ErrorReturn errorReturn = ErrorReturn::Default);
static void writeCppSelfConversion(TextStream &s,
const GeneratorContext &context,
const QString &className,
bool useWrapperClass);
- void writeCppSelfDefinition(TextStream &s,
- const AbstractMetaFunctionCPtr &func,
- const GeneratorContext &context,
- bool hasStaticOverload = false,
- bool hasClassMethodOverload = false) const;
- void writeCppSelfDefinition(TextStream &s,
- const GeneratorContext &context,
- bool hasStaticOverload = false,
- bool hasClassMethodOverload = false,
- bool cppSelfAsReference = false) const;
-
- static void writeErrorSection(TextStream &s, const OverloadData &overloadData) ;
- static void writeFunctionReturnErrorCheckSection(TextStream &s, bool hasReturnValue = true);
+ static void writeSmartPointerCppSelfConversion(TextStream &s,
+ const GeneratorContext &context);
+
+ static void writeCppSelfVarDef(TextStream &s, CppSelfDefinitionFlags flags = {});
+ static void writeSmartPointerCppSelfDefinition(TextStream &s,
+ const GeneratorContext &,
+ ErrorReturn errorReturn = ErrorReturn::Default,
+ CppSelfDefinitionFlags flags = {});
+ static void writeCppSelfDefinition(TextStream &s,
+ const AbstractMetaFunctionCPtr &func,
+ const GeneratorContext &context,
+ ErrorReturn errorReturn = ErrorReturn::Default,
+ CppSelfDefinitionFlags flags = {});
+ static void writeCppSelfDefinition(TextStream &s,
+ const GeneratorContext &context,
+ ErrorReturn errorReturn = ErrorReturn::Default,
+ CppSelfDefinitionFlags flags = {});
- /// Writes the check section for the validity of wrapped C++ objects.
- static void writeInvalidPyObjectCheck(TextStream &s, const QString &pyObj);
+ static void writeErrorSection(TextStream &s,
+ const OverloadData &overloadData,
+ ErrorReturn errorReturn);
- void writeTypeCheck(TextStream &s, AbstractMetaType argType, const QString &argumentName,
- bool isNumber = false, const QString &customType = QString(),
- bool rejectNull = false) const;
- void writeTypeCheck(TextStream& s, const QSharedPointer<OverloadDataNode> &overloadData,
- const QString &argumentName) const;
+ static QString returnErrorWrongArguments(const OverloadData &overloadData,
+ ErrorReturn errorReturn);
- static void writeTypeDiscoveryFunction(TextStream &s, const AbstractMetaClass *metaClass);
+ static void writeFunctionReturnErrorCheckSection(TextStream &s,
+ ErrorReturn errorReturn,
+ bool hasReturnValue = true);
- void writeSetattroDefinition(TextStream &s, const AbstractMetaClass *metaClass) const;
+ /// Writes the check section for the validity of wrapped C++ objects.
+ static void writeInvalidPyObjectCheck(TextStream &s, const QString &pyObj,
+ ErrorReturn errorReturn);
+
+ static void writeTypeCheck(TextStream &s, const AbstractMetaType &argType,
+ const QString &argumentName,
+ bool isNumber = false, bool rejectNull = false);
+ static void writeTypeCheck(TextStream &s, const QString &customType,
+ const QString &argumentName);
+ static void writeTypeCheck(TextStream& s, const std::shared_ptr<OverloadDataNode> &overloadData,
+ const QString &argumentName);
+
+ static void replacePolymorphicIdPlaceHolders(const AbstractMetaClassCPtr &metaClass,
+ QString *id);
+ static void writeTypeDiscoveryFunction(TextStream &s,
+ const AbstractMetaClassCPtr &metaClass);
+
+ static void writeSetattroDefinition(TextStream &s, const AbstractMetaClassCPtr &metaClass);
static void writeSetattroDefaultReturn(TextStream &s);
- void writeSmartPointerSetattroFunction(TextStream &s, const GeneratorContext &context) const;
- void writeSetattroFunction(TextStream &s, AttroCheck attroCheck,
+ static void writeSmartPointerSetattroFunction(TextStream &s,
+ const GeneratorContext &context);
+ void writeSetattroFunction(TextStream &s,
+ AttroCheck attroCheck,
const GeneratorContext &context) const;
- static void writeGetattroDefinition(TextStream &s, const AbstractMetaClass *metaClass);
- static void writeSmartPointerGetattroFunction(TextStream &s, const GeneratorContext &context);
+ static void writeGetattroDefinition(TextStream &s, const AbstractMetaClassCPtr &metaClass);
+ static void writeSmartPointerGetattroFunction(TextStream &s,
+ const GeneratorContext &context,
+ const BoolCastFunctionOptional &boolCast);
void writeGetattroFunction(TextStream &s, AttroCheck attroCheck,
const GeneratorContext &context) const;
QString qObjectGetAttroFunction() const;
+ static void writeNbBoolFunction(const GeneratorContext &context,
+ const BoolCastFunction &f,
+ TextStream &s);
+ static void writeNbBoolExpression(TextStream &s, const BoolCastFunction &f, bool invert = false);
+
/**
* Writes Python to C++ conversions for arguments on Python wrappers.
* If implicit conversions, and thus new object allocation, are needed,
@@ -154,11 +231,12 @@ private:
* \param defaultValue an optional default value to be used instead of the conversion result
* \param castArgumentAsUnused if true the converted argument is cast as unused to avoid compiler warnings
*/
- void writeArgumentConversion(TextStream &s, const AbstractMetaType &argType,
- const QString &argName, const QString &pyArgName,
- const AbstractMetaClass *context = nullptr,
- const QString &defaultValue = QString(),
- bool castArgumentAsUnused = false) const;
+ qsizetype writeArgumentConversion(TextStream &s, const AbstractMetaType &argType,
+ const QString &argName, const QString &pyArgName,
+ ErrorReturn errorReturn,
+ const AbstractMetaClassCPtr &context = {},
+ const QString &defaultValue = QString(),
+ bool castArgumentAsUnused = false) const;
/**
* Returns the AbstractMetaType for a function argument.
@@ -171,12 +249,15 @@ private:
static AbstractMetaType
getArgumentType(const AbstractMetaFunctionCPtr &func, int index);
- void writePythonToCppTypeConversion(TextStream &s,
+ /// Writes the Python to C++ Conversion for function arguments and return
+ /// values of virtual methods for wrappers.
+ /// \return The number of indirections in case of return types
+ qsizetype writePythonToCppTypeConversion(TextStream &s,
const AbstractMetaType &type,
const QString &pyIn,
const QString &cppOut,
- const AbstractMetaClass *context = nullptr,
- const QString &defaultValue = QString()) const;
+ const AbstractMetaClassCPtr &context = {},
+ const QString &defaultValue = {}) const;
/// Writes the conversion rule for arguments of regular and virtual methods.
void writeConversionRule(TextStream &s, const AbstractMetaFunctionCPtr &func,
@@ -203,7 +284,8 @@ private:
* \param s text stream to write
* \param overloadData the overload data describing all the possible overloads for the function/method
*/
- void writeOverloadedFunctionDecisor(TextStream &s, const OverloadData &overloadData) const;
+ void writeOverloadedFunctionDecisor(TextStream &s, const OverloadData &overloadData,
+ ErrorReturn errorReturn) const;
/// Recursive auxiliar method to the other writeOverloadedFunctionDecisor.
void writeOverloadedFunctionDecisorEngine(TextStream &s,
const OverloadData &overloadData,
@@ -212,13 +294,15 @@ private:
/// Writes calls to all the possible method/function overloads.
void writeFunctionCalls(TextStream &s,
const OverloadData &overloadData,
- const GeneratorContext &context) const;
+ const GeneratorContext &context,
+ ErrorReturn errorReturn) const;
/// Writes the call to a single function usually from a collection of overloads.
void writeSingleFunctionCall(TextStream &s,
const OverloadData &overloadData,
const AbstractMetaFunctionCPtr &func,
- const GeneratorContext &context) const;
+ const GeneratorContext &context,
+ ErrorReturn errorReturn) const;
/// Returns the name of a C++ to Python conversion function.
static QString cppToPythonFunctionName(const QString &sourceTypeName, QString targetTypeName = QString());
@@ -226,18 +310,22 @@ private:
/// Returns the name of a Python to C++ conversion function.
static QString pythonToCppFunctionName(const QString &sourceTypeName, const QString &targetTypeName);
static QString pythonToCppFunctionName(const AbstractMetaType &sourceType, const AbstractMetaType &targetType);
- static QString pythonToCppFunctionName(const CustomConversion::TargetToNativeConversion *toNative, const TypeEntry *targetType);
+ static QString pythonToCppFunctionName(const TargetToNativeConversion &toNative,
+ const TypeEntryCPtr &targetType);
/// Returns the name of a Python to C++ convertible check function.
static QString convertibleToCppFunctionName(const QString &sourceTypeName, const QString &targetTypeName);
static QString convertibleToCppFunctionName(const AbstractMetaType &sourceType, const AbstractMetaType &targetType);
- static QString convertibleToCppFunctionName(const CustomConversion::TargetToNativeConversion *toNative, const TypeEntry *targetType);
+ static QString convertibleToCppFunctionName(const TargetToNativeConversion &toNative,
+ const TypeEntryCPtr &targetType);
/// Writes a C++ to Python conversion function.
void writeCppToPythonFunction(TextStream &s, const QString &code, const QString &sourceTypeName,
QString targetTypeName = QString()) const;
- void writeCppToPythonFunction(TextStream &s, const CustomConversion *customConversion) const;
+ void writeCppToPythonFunction(TextStream &s, const CustomConversionPtr &customConversion) const;
void writeCppToPythonFunction(TextStream &s, const AbstractMetaType &containerType) const;
+ /// Main target type name of a container (for naming the functions).
+ static QString containerNativeToTargetTypeName(const ContainerTypeEntryCPtr &type);
/// Writes a Python to C++ conversion function.
void writePythonToCppFunction(TextStream &s, const QString &code, const QString &sourceTypeName,
@@ -260,13 +348,17 @@ private:
const QString &preConversion = QString()) const;
/// Writes a pair of Python to C++ conversion and check functions for implicit conversions.
void writePythonToCppConversionFunctions(TextStream &s,
- const CustomConversion::TargetToNativeConversion *toNative,
- const TypeEntry *targetType) const;
+ const TargetToNativeConversion &toNative,
+ const TypeEntryCPtr &targetType) const;
/// Writes a pair of Python to C++ conversion and check functions for instantiated container types.
void writePythonToCppConversionFunctions(TextStream &s,
const AbstractMetaType &containerType) const;
+ void writePythonToCppConversionFunction(TextStream &s,
+ const AbstractMetaType &containerType,
+ const TargetToNativeConversion &conv) const;
+
static void writeAddPythonToCppConversion(TextStream &s, const QString &converterVar,
const QString &pythonToCppFunc,
const QString &isConvertibleFunc);
@@ -275,120 +367,124 @@ private:
const QString &pythonToCppFunc,
const QString &isConvertibleFunc);
- void writeNamedArgumentResolution(TextStream &s, const AbstractMetaFunctionCPtr &func,
- bool usePyArgs, const OverloadData &overloadData) const;
+ static void writeNamedArgumentResolution(TextStream &s,
+ const AbstractMetaFunctionCPtr &func,
+ bool usePyArgs,
+ const OverloadData &overloadData,
+ ErrorReturn errorReturn);
/// Returns a string containing the name of an argument for the given function and argument index.
static QString argumentNameFromIndex(const ApiExtractorResult &api,
- const AbstractMetaFunctionCPtr &func, int argIndex,
- const AbstractMetaClass **wrappedClass,
- QString *errorMessage = nullptr);
+ const AbstractMetaFunctionCPtr &func, int argIndex);
+ /// Returns the class for an ownership modification of the argument.
+ /// Throws if the argument is not a class or cannot be found.
+ static AbstractMetaClassCPtr
+ argumentClassFromIndex(const ApiExtractorResult &api,
+ const AbstractMetaFunctionCPtr &func, int argIndex);
+
void writeMethodCall(TextStream &s, const AbstractMetaFunctionCPtr &func,
const GeneratorContext &context, bool usesPyArgs,
- int maxArgs) const;
+ int maxArgs, const QList<qsizetype> &argumentIndirections,
+ ErrorReturn errorReturn) const;
static QString getInitFunctionName(const GeneratorContext &context) ;
- static QString getSimpleClassInitFunctionName(const AbstractMetaClass *metaClass) ;
- static QString getSimpleClassStaticFieldsInitFunctionName(const AbstractMetaClass *metaClass);
+ static QString getSimpleClassInitFunctionName(const AbstractMetaClassCPtr &metaClass);
+ static QString
+ getSimpleClassStaticFieldsInitFunctionName(const AbstractMetaClassCPtr &metaClass);
static void writeSignatureStrings(TextStream &s, const QString &signatures,
const QString &arrayName,
const char *comment);
+ void writeInitInheritance(TextStream &s) const;
void writeClassRegister(TextStream &s,
- const AbstractMetaClass *metaClass,
+ const AbstractMetaClassCPtr &metaClass,
const GeneratorContext &classContext,
const QString &signatures) const;
- QString destructorClassName(const AbstractMetaClass *metaClass,
- const GeneratorContext &classContext) const;
+ static QStringList pyBaseTypes(const AbstractMetaClassCPtr &metaClass);
+ static QString destructorClassName(const AbstractMetaClassCPtr &metaClass,
+ const GeneratorContext &classContext);
static void writeStaticFieldInitialization(TextStream &s,
- const AbstractMetaClass *metaClass);
+ const AbstractMetaClassCPtr &metaClass);
void writeClassDefinition(TextStream &s,
- const AbstractMetaClass *metaClass,
+ const AbstractMetaClassCPtr &metaClass,
const GeneratorContext &classContext);
- QString methodDefinitionParameters(const OverloadData &overloadData) const;
- void writeMethodDefinitionEntries(TextStream &s,
- const OverloadData &overloadData,
- qsizetype maxEntries = -1) const;
- void writeMethodDefinition(TextStream &s,
- const OverloadData &overloadData) const;
+ QByteArrayList methodDefinitionParameters(const OverloadData &overloadData) const;
+ QList<PyMethodDefEntry> methodDefinitionEntries(const OverloadData &overloadData) const;
+
void writeSignatureInfo(TextStream &s, const OverloadData &overloads) const;
QString signatureParameter(const AbstractMetaArgument &arg) const;
/// Writes the implementation of all methods part of python sequence protocol
void writeSequenceMethods(TextStream &s,
- const AbstractMetaClass *metaClass,
+ const AbstractMetaClassCPtr &metaClass,
const GeneratorContext &context) const;
static void writeTypeAsSequenceDefinition(TextStream &s,
- const AbstractMetaClass *metaClass);
+ const AbstractMetaClassCPtr &metaClass);
/// Writes the PyMappingMethods structure for types that supports the python mapping protocol.
static void writeTypeAsMappingDefinition(TextStream &s,
- const AbstractMetaClass *metaClass);
+ const AbstractMetaClassCPtr &metaClass);
void writeMappingMethods(TextStream &s,
- const AbstractMetaClass *metaClass,
+ const AbstractMetaClassCPtr &metaClass,
const GeneratorContext &context) const;
- void writeTypeAsNumberDefinition(TextStream &s, const AbstractMetaClass *metaClass) const;
-
- static void writeTpTraverseFunction(TextStream &s, const AbstractMetaClass *metaClass);
- static void writeTpClearFunction(TextStream &s, const AbstractMetaClass *metaClass);
-
- void writeCopyFunction(TextStream &s, const GeneratorContext &context) const;
+ void writeTypeAsNumberDefinition(TextStream &s, const AbstractMetaClassCPtr &metaClass) const;
+
+ static void writeTpTraverseFunction(TextStream &s, const AbstractMetaClassCPtr &metaClass);
+ static void writeTpClearFunction(TextStream &s, const AbstractMetaClassCPtr &metaClass);
+
+ static QString writeCopyFunction(TextStream &s, TextStream &definitionStream,
+ TextStream &signatureStream, const GeneratorContext &context);
+
+ static QString cppFieldAccess(const AbstractMetaField &metaField,
+ const GeneratorContext &context);
+ static void writeGetterFunction(TextStream &s,
+ const AbstractMetaField &metaField,
+ const GeneratorContext &context);
+ static void writeGetterFunction(TextStream &s,
+ const QPropertySpec &property,
+ const GeneratorContext &context);
+ static void writeSetterFunctionPreamble(TextStream &s,
+ const QString &name,
+ const QString &funcName,
+ const AbstractMetaType &type,
+ const GeneratorContext &context);
+ static void writeSetterFunction(TextStream &s,
+ const AbstractMetaField &metaField,
+ const GeneratorContext &context);
+ static void writeSetterFunction(TextStream &s,
+ const QPropertySpec &property,
+ const GeneratorContext &context);
+
+ static void writeRichCompareFunctionHeader(TextStream &s,
+ const QString &baseName,
+ const GeneratorContext &context);
+ void writeRichCompareFunction(TextStream &s, const GeneratorContext &context) const;
+ void writeSmartPointerRichCompareFunction(TextStream &s, const GeneratorContext &context) const;
- QString cppFieldAccess(const AbstractMetaField &metaField,
- const GeneratorContext &context) const;
- void writeGetterFunction(TextStream &s,
- const AbstractMetaField &metaField,
- const GeneratorContext &context) const;
- void writeGetterFunction(TextStream &s,
- const QPropertySpec &property,
- const GeneratorContext &context) const;
- void writeSetterFunctionPreamble(TextStream &s,
- const QString &name,
- const QString &funcName,
- const AbstractMetaType &type,
- const GeneratorContext &context) const;
- void writeSetterFunction(TextStream &s,
- const AbstractMetaField &metaField,
- const GeneratorContext &context) const;
- void writeSetterFunction(TextStream &s,
- const QPropertySpec &property,
- const GeneratorContext &context) const;
+ static void writeEnumsInitialization(TextStream &s, AbstractMetaEnumList &enums);
+ static bool writeEnumInitialization(TextStream &s, const AbstractMetaEnum &metaEnum);
- void writeRichCompareFunction(TextStream &s, const GeneratorContext &context) const;
+ static void writeSignalInitialization(TextStream &s, const AbstractMetaClassCPtr &metaClass);
- void writeEnumsInitialization(TextStream &s, AbstractMetaEnumList &enums) const;
- void writeEnumInitialization(TextStream &s, const AbstractMetaEnum &metaEnum) const;
-
- static void writeSignalInitialization(TextStream &s, const AbstractMetaClass *metaClass);
-
- static void writeFlagsMethods(TextStream &s, const AbstractMetaEnum &cppEnum);
- static void writeFlagsToLong(TextStream &s, const AbstractMetaEnum &cppEnum);
- static void writeFlagsNonZero(TextStream &s, const AbstractMetaEnum &cppEnum);
- static void writeFlagsNumberMethodsDefinition(TextStream &s, const AbstractMetaEnum &cppEnum);
- static void writeFlagsNumberMethodsDefinitions(TextStream &s,
- const AbstractMetaEnumList &enums);
- static void writeFlagsBinaryOperator(TextStream &s,
- const AbstractMetaEnum &cppEnum,
- const QString &pyOpName,
- const QString &cppOpName);
- static void writeFlagsUnaryOperator(TextStream &s,
- const AbstractMetaEnum &cppEnum,
- const QString &pyOpName,
- const QString &cppOpName,
- bool boolResult = false);
-
- /// Writes the function that registers the multiple inheritance information for the classes that need it.
- static void writeMultipleInheritanceInitializerFunction(TextStream &s, const AbstractMetaClass *metaClass);
- /// Writes the implementation of special cast functions, used when we need to cast a class with multiple inheritance.
- static void writeSpecialCastFunction(TextStream &s, const AbstractMetaClass *metaClass);
+ /// Writes the function that registers the multiple inheritance information
+ /// for the classes that need it.
+ static void writeMultipleInheritanceInitializerFunction(TextStream &s,
+ const AbstractMetaClassCPtr &metaClass);
+ /// Writes the implementation of special cast functions, used when we need
+ /// to cast a class with multiple inheritance.
+ static void writeSpecialCastFunction(TextStream &s, const AbstractMetaClassCPtr &metaClass);
static void writePrimitiveConverterInitialization(TextStream &s,
- const CustomConversion *customConversion);
- static void writeEnumConverterInitialization(TextStream &s, const TypeEntry *enumType);
+ const CustomConversionPtr &customConversion);
static void writeEnumConverterInitialization(TextStream &s, const AbstractMetaEnum &metaEnum);
- void writeContainerConverterInitialization(TextStream &s, const AbstractMetaType &type) const;
+ static QString writeContainerConverterInitialization(TextStream &s,
+ const AbstractMetaType &type,
+ const ApiExtractorResult &api);
void writeSmartPointerConverterInitialization(TextStream &s, const AbstractMetaType &ype) const;
- static void writeExtendedConverterInitialization(TextStream &s, const TypeEntry *externalType,
+
+ static QString typeInitStruct(const TypeEntryCPtr &te);
+ static void writeExtendedConverterInitialization(TextStream &s,
+ const TypeEntryCPtr &externalType,
const AbstractMetaClassCList &conversions);
void writeParentChildManagement(TextStream &s, const AbstractMetaFunctionCPtr &func,
@@ -407,63 +503,65 @@ private:
* \return name of the multiple inheritance information initializer function or
* an empty string if there is no multiple inheritance in its ancestry.
*/
- static QString multipleInheritanceInitializerFunctionName(const AbstractMetaClass *metaClass);
+ static QString multipleInheritanceInitializerFunctionName(const AbstractMetaClassCPtr &metaClass);
/// Returns a list of all classes to which the given class could be cast.
- static QStringList getAncestorMultipleInheritance(const AbstractMetaClass *metaClass);
+ static QStringList getAncestorMultipleInheritance(const AbstractMetaClassCPtr &metaClass);
/// Returns true if the given class supports the python number protocol
- bool supportsNumberProtocol(const AbstractMetaClass *metaClass) const;
+ static bool supportsNumberProtocol(const AbstractMetaClassCPtr &metaClass);
/// Returns true if the given class supports the python sequence protocol
- static bool supportsSequenceProtocol(const AbstractMetaClass *metaClass) ;
+ static bool supportsSequenceProtocol(const AbstractMetaClassCPtr &metaClass) ;
/// Returns true if the given class supports the python mapping protocol
- static bool supportsMappingProtocol(const AbstractMetaClass *metaClass) ;
+ static bool supportsMappingProtocol(const AbstractMetaClassCPtr &metaClass) ;
/// Returns true if generator should produce getters and setters for the given class.
- bool shouldGenerateGetSetList(const AbstractMetaClass *metaClass) const;
+ static bool shouldGenerateGetSetList(const AbstractMetaClassCPtr &metaClass);
- void writeHashFunction(TextStream &s, const GeneratorContext &context) const;
+ static bool hasHashFunction(const AbstractMetaClassCPtr &c);
+ static void writeHashFunction(TextStream &s, const GeneratorContext &context);
/// Write default implementations for sequence protocol
void writeDefaultSequenceMethods(TextStream &s, const GeneratorContext &context) const;
/// Helper function for writeStdListWrapperMethods.
- static void writeIndexError(TextStream &s, const QString &errorMsg);
-
- QString writeReprFunction(TextStream &s, const GeneratorContext &context,
- uint indirections) const;
-
- AbstractMetaFunctionCPtr boolCast(const AbstractMetaClass *metaClass) const;
- bool hasBoolCast(const AbstractMetaClass *metaClass) const
- { return !boolCast(metaClass).isNull(); }
+ static void writeIndexError(TextStream &s, const QString &errorMsg,
+ ErrorReturn errorReturn);
+
+ static QString writeReprFunctionHeader(TextStream &s, const GeneratorContext &context);
+ static QString writeReprFunction(TextStream &s,
+ const GeneratorContext &context,
+ uint indirections);
+ static QString writeSmartPointerReprFunction(TextStream &s,
+ const GeneratorContext &context);
+ static QString writeSmartPointerDirFunction(TextStream &s,
+ TextStream &definitionStream,
+ TextStream &signatureStream,
+ const GeneratorContext &context);
+ static void writeReprFunctionFooter(TextStream &s);
+ static void writePyMethodDefs(TextStream &s, const QString &className,
+ const QString &methodsDefinitions);
+
+ void writeModuleCodeSnips(TextStream &s, const CodeSnipList &codeSnips,
+ TypeSystem::CodeSnipPosition position,
+ TypeSystem::Language language) const;
+
+ static bool hasBoolCast(const AbstractMetaClassCPtr &metaClass)
+ { return boolCast(metaClass).has_value(); }
std::optional<AbstractMetaType>
- findSmartPointerInstantiation(const TypeEntry *entry) const;
-
+ findSmartPointerInstantiation(const SmartPointerTypeEntryCPtr &pointer,
+ const TypeEntryCPtr &pointee) const;
void clearTpFuncs();
+ static QString chopType(QString s);
QHash<QString, QString> m_tpFuncs;
-
- static QString m_currentErrorCode;
-
- /// Helper class to set and restore the current error code.
- class ErrorCode {
- public:
- explicit ErrorCode(QString errorCode) {
- m_savedErrorCode = CppGenerator::m_currentErrorCode;
- CppGenerator::m_currentErrorCode = errorCode;
- }
- explicit ErrorCode(int errorCode) {
- m_savedErrorCode = CppGenerator::m_currentErrorCode;
- CppGenerator::m_currentErrorCode = QString::number(errorCode);
- }
- ~ErrorCode() {
- CppGenerator::m_currentErrorCode = m_savedErrorCode;
- }
- private:
- QString m_savedErrorCode;
- };
+ QHash<QString, QString> m_nbFuncs;
};
+Q_DECLARE_OPERATORS_FOR_FLAGS(CppGenerator::CppSelfDefinitionFlags)
+
+TextStream &operator<<(TextStream &s, CppGenerator::ErrorReturn r);
+
#endif // CPPGENERATOR_H
diff --git a/sources/shiboken6/generator/shiboken/cppgenerator_container.cpp b/sources/shiboken6/generator/shiboken/cppgenerator_container.cpp
new file mode 100644
index 000000000..00e0cabea
--- /dev/null
+++ b/sources/shiboken6/generator/shiboken/cppgenerator_container.cpp
@@ -0,0 +1,272 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#include "cppgenerator.h"
+#include "generatorstrings.h"
+#include <abstractmetalang.h>
+#include "apiextractorresult.h"
+#include "ctypenames.h"
+#include "containertypeentry.h"
+#include "textstream.h"
+#include "typedatabase.h"
+
+#include <QtCore/QDebug>
+
+#include <algorithm>
+
+using namespace Qt::StringLiterals;
+
+// Write a PyMethodDef entry, allowing for registering C++ functions
+// under different names for Python.
+static void writeMethod(TextStream &s, const QString &privateObjType,
+ const char *cppName, const char *pythonName,
+ const char *flags)
+{
+ if (pythonName == nullptr)
+ pythonName = cppName;
+ s << "{\"" << pythonName << "\", reinterpret_cast<PyCFunction>("
+ << privateObjType << "::" << cppName << "), "<< flags
+ << ", \"" << /* doc */ pythonName << "\"},\n";
+}
+
+static inline void writeMethod(TextStream &s, const QString &privateObjType,
+ const char *cppName, const char *pythonName = nullptr)
+{
+ writeMethod(s, privateObjType, cppName, pythonName, "METH_O");
+}
+
+static inline void writeNoArgsMethod(TextStream &s, const QString &privateObjType,
+ const char *cppName, const char *pythonName = nullptr)
+{
+ writeMethod(s, privateObjType, cppName, pythonName, "METH_NOARGS");
+}
+
+static void writeSlot(TextStream &s, const char *tpName, const char *value)
+{
+ s << '{' << tpName << ", reinterpret_cast<void *>(" << value << ")},\n";
+}
+
+static void writeSlot(TextStream &s, const QString &privateObjType,
+ const char *tpName, const char *methodName)
+{
+ s << '{' << tpName << ", reinterpret_cast<void *>(" << privateObjType
+ << "::" << methodName << ")},\n";
+}
+
+// Write creation function from C++ reference, used by field accessors
+// and getters which are within extern "C"
+
+enum ContainerCreationFlag
+{
+ None = 0,
+ Const = 0x1,
+ Allocate = 0x2
+};
+
+Q_DECLARE_FLAGS(ContainerCreationFlags, ContainerCreationFlag)
+Q_DECLARE_OPERATORS_FOR_FLAGS(ContainerCreationFlags)
+
+static void writeContainerCreationFunc(TextStream &s,
+ const QString &funcName,
+ const QString &typeFName,
+ const QString &containerSignature,
+ ContainerCreationFlags flags = {})
+{
+
+ // creation function from C++ reference, used by field accessors
+ // which are within extern "C"
+ s << "extern \"C\" PyObject *" << funcName << '(';
+ if (flags.testFlag(ContainerCreationFlag::Const))
+ s << "const ";
+ s << containerSignature << "* ct)\n{\n" << indent
+ << "auto *container = PyObject_New(ShibokenContainer, " << typeFName << "());\n"
+ << "auto *d = new ShibokenSequenceContainerPrivate<"
+ << containerSignature << ">();\n";
+ if (flags.testFlag(ContainerCreationFlag::Allocate)) {
+ s << "d->m_list = new " << containerSignature << "(*ct);\n"
+ << "d->m_ownsList = true;\n";
+ } else if (flags.testFlag(ContainerCreationFlag::Const)) {
+ s << "d->m_list = const_cast<" << containerSignature << " *>(ct);\n"
+ << "d->m_const = true;\n";
+ } else {
+ s << "d->m_list = ct;\n";
+ }
+ s << "container->d = d;\n";
+ s << "return reinterpret_cast<PyObject *>(container);\n" << outdent
+ << "}\n\n";
+}
+
+// Generate template specialization of value converter helper
+void CppGenerator::writeOpaqueContainerValueConverter(TextStream &s,
+ const AbstractMetaType &valueType) const
+{
+ // Generate template specialization of value converter helper unless it is already there
+ const QString valueTypeName = valueType.cppSignature();
+ const QString checkFunction = cpythonCheckFunction(valueType);
+
+ s << "template <>\nstruct ShibokenContainerValueConverter<"
+ << valueTypeName << ">\n{\n";
+ // Type check
+ s << indent << "static bool checkValue(PyObject *" << PYTHON_ARG << ")\n{\n"
+ << indent << "return " << checkFunction;
+ if (!checkFunction.contains(u'('))
+ s << '(';
+ s << PYTHON_ARG << ");\n"
+ << outdent << "}\n\n";
+
+ // C++ to Python
+ const bool passByConstRef = valueType.indirectionsV().isEmpty()
+ && !valueType.isCppPrimitive();
+ s << "static PyObject *convertValueToPython(";
+ if (passByConstRef)
+ s << "const ";
+ s << valueTypeName << ' ';
+ if (passByConstRef)
+ s << '&';
+ s << CPP_ARG << ")\n{\n" << indent << "return ";
+ writeToPythonConversion(s, valueType, nullptr, CPP_ARG);
+ s << ";\n" << outdent << "}\n\n";
+
+ // Python to C++
+ s << "static std::optional<" << valueTypeName << "> convertValueToCpp(PyObject *"
+ << PYTHON_ARG << ")\n{\n" << indent;
+ s << PYTHON_TO_CPPCONVERSION_STRUCT << ' ' << PYTHON_TO_CPP_VAR << ";\n"
+ << "if (!(";
+ writeTypeCheck(s, valueType, PYTHON_ARG), isNumber(valueType.typeEntry());
+ s << ")) {\n" << indent
+ << "Shiboken::Errors::setWrongContainerType();\n"
+ << "return {};\n" << outdent << "}\n";
+ writePythonToCppTypeConversion(s, valueType, PYTHON_ARG, CPP_ARG, nullptr, {});
+ s << "return " << CPP_ARG << ";\n" << outdent << "}\n" << outdent << "};\n\n";
+}
+
+// Generate code for a type wrapping a C++ container instantiation
+CppGenerator::OpaqueContainerData
+ CppGenerator::writeOpaqueContainerConverterFunctions(TextStream &s,
+ const AbstractMetaType &containerType,
+ QSet<AbstractMetaType> *valueTypes) const
+{
+ OpaqueContainerData result;
+ const auto &valueType = containerType.instantiations().constFirst();
+ const auto containerTypeEntry = std::static_pointer_cast<const ContainerTypeEntry>(containerType.typeEntry());
+ result.name =
+ containerTypeEntry->opaqueContainerName(containerType.instantiationCppSignatures());
+
+ const auto cppSignature = containerType.cppSignature();
+ s << "\n// Binding for " << cppSignature << "\n\n";
+
+ if (!valueTypes->contains(valueType)) {
+ valueTypes->insert(valueType);
+ writeOpaqueContainerValueConverter(s, valueType);
+ }
+
+ const QString privateObjType = u"ShibokenSequenceContainerPrivate<"_s
+ + cppSignature + u'>';
+
+ // methods
+ const QString &containerName = containerType.name();
+ const bool isStdVector = containerName == u"std::vector";
+ const auto kind = containerTypeEntry->containerKind();
+ const bool isFixed = kind == ContainerTypeEntry::SpanContainer || containerName == u"std::array";
+ const QString methods = result.name + u"_methods"_s;
+ s << "static PyMethodDef " << methods << "[] = {\n" << indent;
+ if (!isFixed) {
+ writeMethod(s, privateObjType, "push_back");
+ writeMethod(s, privateObjType, "push_back", "append"); // Qt convention
+ writeNoArgsMethod(s, privateObjType, "clear");
+ writeNoArgsMethod(s, privateObjType, "pop_back");
+ writeNoArgsMethod(s, privateObjType, "pop_back", "removeLast"); // Qt convention
+ if (!isStdVector) {
+ writeMethod(s, privateObjType, "push_front");
+ writeMethod(s, privateObjType, "push_front", "prepend"); // Qt convention
+ writeNoArgsMethod(s, privateObjType, "pop_front");
+ writeMethod(s, privateObjType, "pop_front", "removeFirst"); // Qt convention
+ }
+ writeMethod(s, privateObjType, "reserve"); // SFINAE'd out for list
+ writeNoArgsMethod(s, privateObjType, "capacity");
+ }
+ writeNoArgsMethod(s, privateObjType, "data");
+ writeNoArgsMethod(s, privateObjType, "constData");
+ s << "{nullptr, nullptr, 0, nullptr} // Sentinel\n"
+ << outdent << "};\n\n";
+
+ // slots
+ const QString slotsList = result.name + u"_slots"_s;
+ s << "static PyType_Slot " << slotsList << "[] = {\n" << indent;
+ writeSlot(s, privateObjType, "Py_tp_init", "tpInit");
+ const auto *tpNew = containerTypeEntry->viewOn() == nullptr ? "tpNew" : "tpNewInvalid";
+ writeSlot(s, privateObjType, "Py_tp_new", tpNew);
+ writeSlot(s, privateObjType, "Py_tp_free", "tpFree");
+ writeSlot(s, "Py_tp_dealloc", "Sbk_object_dealloc"); // FIXME?
+ writeSlot(s, "Py_tp_methods", methods.toUtf8().constData());
+ writeSlot(s, privateObjType, "Py_sq_ass_item", "sqSetItem");
+ writeSlot(s, privateObjType, "Py_sq_length", "sqLen");
+ writeSlot(s, privateObjType, "Py_sq_item", "sqGetItem");
+ s << "{0, nullptr}\n" << outdent << "};\n\n";
+
+ // spec
+ const QString specName = result.name + u"_spec"_s;
+ const QString name = TypeDatabase::instance()->defaultPackageName()
+ + u'.' + result.name;
+ s << "static PyType_Spec " << specName << " = {\n" << indent
+ << "\"" << name.count(u'.') << ':' << name << "\",\n"
+ << "sizeof(ShibokenContainer),\n0,\nPy_TPFLAGS_DEFAULT,\n"
+ << slotsList << outdent << "\n};\n\n";
+
+ // type creation function that sets a key in the type dict.
+ const QString typeCreationFName = u"create"_s + result.name + u"Type"_s;
+ s << "static inline PyTypeObject *" << typeCreationFName << "()\n{\n" << indent
+ << "auto *result = reinterpret_cast<PyTypeObject *>(SbkType_FromSpec(&"
+ << specName << "));\nPy_INCREF(Py_True);\n"
+ << "Shiboken::AutoDecRef tpDict(PepType_GetDict(result));\n"
+ << "PyDict_SetItem(tpDict.object(), "
+ "Shiboken::PyMagicName::opaque_container(), Py_True);\n"
+ << "return result;\n" << outdent << "}\n\n";
+
+ // _TypeF() function
+ const QString typeFName = result.name + u"_TypeF"_s;
+ s << "static PyTypeObject *" << typeFName << "()\n{\n" << indent
+ << "static PyTypeObject *type = " << typeCreationFName
+ << "();\nreturn type;\n" << outdent << "}\n\n";
+
+ // creation functions from C++ references
+ ContainerCreationFlags flags;
+ if (kind == ContainerTypeEntry::SpanContainer)
+ flags.setFlag(ContainerCreationFlag::Allocate);
+
+ writeContainerCreationFunc(s, u"create"_s + result.name, typeFName,
+ containerType.cppSignature(), flags);
+ flags.setFlag(ContainerCreationFlag::Const);
+ writeContainerCreationFunc(s, u"createConst"_s + result.name, typeFName,
+ containerType.cppSignature(), flags);
+
+ // Check function
+ result.checkFunctionName = result.name + u"_Check"_s;
+ s << "extern \"C\" int " << result.checkFunctionName << "(PyObject *" << PYTHON_ARG
+ << ")\n{\n" << indent << "return " << PYTHON_ARG << " != nullptr && "
+ << PYTHON_ARG << " != Py_None && " << PYTHON_ARG << "->ob_type == "
+ << typeFName << "();\n" << outdent << "}\n\n";
+
+ // SBK converter Python to C++
+ result.pythonToConverterFunctionName = u"PythonToCpp"_s + result.name;
+ s << "extern \"C\" void " << result.pythonToConverterFunctionName
+ << "(PyObject *" << PYTHON_ARG << ", void *cppOut)\n{\n" << indent
+ << "auto *d = ShibokenSequenceContainerPrivate<" << cppSignature
+ << ">::get(" << PYTHON_ARG << ");\n"
+ << "*reinterpret_cast<" << cppSignature << "**>(cppOut) = d->m_list;\n"
+ << outdent << "}\n\n";
+
+ // SBK check function for converting Python to C++ that returns the converter
+ result.converterCheckFunctionName = u"is"_s + result.name + u"PythonToCppConvertible"_s;
+ s << "extern \"C\" PythonToCppFunc " << result.converterCheckFunctionName
+ << "(PyObject *" << PYTHON_ARG << ")\n{\n" << indent << "if ("
+ << result.checkFunctionName << '(' << PYTHON_ARG << "))\n" << indent
+ << "return " << result.pythonToConverterFunctionName << ";\n"
+ << outdent << "return {};\n" << outdent << "}\n\n";
+
+ QTextStream(&result.registrationCode) << "ob_type = reinterpret_cast<PyObject *>("
+ << typeFName
+ << "());\nPy_XINCREF(ob_type);\nPyModule_AddObject(module, \""
+ << result.name << "\", ob_type);\n";
+ return result;
+}
diff --git a/sources/shiboken6/generator/shiboken/cppgenerator_smartpointer.cpp b/sources/shiboken6/generator/shiboken/cppgenerator_smartpointer.cpp
new file mode 100644
index 000000000..1b893640a
--- /dev/null
+++ b/sources/shiboken6/generator/shiboken/cppgenerator_smartpointer.cpp
@@ -0,0 +1,486 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#include "cppgenerator.h"
+#include "generatorstrings.h"
+#include "generatorcontext.h"
+#include <apiextractorresult.h>
+#include <abstractmetafunction.h>
+#include <abstractmetalang.h>
+#include <codesnip.h>
+#include <exception.h>
+#include <messages.h>
+#include <textstream.h>
+#include <overloaddata.h>
+#include <smartpointertypeentry.h>
+
+#include <QtCore/QDebug>
+
+using namespace Qt::StringLiterals;
+
+static const char smartPtrComment[] =
+ "// Try to find the 'name' attribute, by retrieving the PyObject for "
+ "the corresponding C++ object held by the smart pointer.\n";
+
+static QString smartPointerGetter(const GeneratorContext &context)
+{
+ const auto te = context.metaClass()->typeEntry();
+ Q_ASSERT(te->isSmartPointer());
+ return std::static_pointer_cast<const SmartPointerTypeEntry>(te)->getter();
+}
+
+struct callGetter
+{
+ explicit callGetter(const GeneratorContext &context) : m_context(context) {}
+
+ const GeneratorContext &m_context;
+};
+
+TextStream &operator<<(TextStream &str, const callGetter &c)
+{
+ str << "PyObject_CallMethod(self, \"" << smartPointerGetter(c.m_context) << "\", 0)";
+ return str;
+}
+
+// Helpers to collect all smart pointer pointee base classes
+static AbstractMetaClassCList
+ findSmartPointeeBaseClasses(const ApiExtractorResult &api,
+ const AbstractMetaType &smartPointerType)
+{
+ AbstractMetaClassCList result;
+ auto instantiationsTe = smartPointerType.instantiations().at(0).typeEntry();
+ auto targetClass = AbstractMetaClass::findClass(api.classes(), instantiationsTe);
+ if (targetClass != nullptr)
+ result = targetClass->allTypeSystemAncestors();
+ return result;
+}
+
+using ComparisonOperatorList = QList<AbstractMetaFunction::ComparisonOperatorType>;
+
+// Return the available comparison operators for smart pointers
+static ComparisonOperatorList smartPointeeComparisons(const GeneratorContext &context)
+{
+ Q_ASSERT(context.forSmartPointer());
+ auto te = context.preciseType().instantiations().constFirst().typeEntry();
+ if (isExtendedCppPrimitive(te)) { // Primitive pointee types have all
+ return {AbstractMetaFunction::OperatorEqual,
+ AbstractMetaFunction::OperatorNotEqual,
+ AbstractMetaFunction::OperatorLess,
+ AbstractMetaFunction::OperatorLessEqual,
+ AbstractMetaFunction::OperatorGreater,
+ AbstractMetaFunction::OperatorGreaterEqual};
+ }
+
+ const auto pointeeClass = context.pointeeClass();
+ if (!pointeeClass)
+ return {};
+
+ ComparisonOperatorList result;
+ const auto &comparisons =
+ pointeeClass->operatorOverloads(OperatorQueryOption::SymmetricalComparisonOp);
+ for (const auto &f : comparisons) {
+ const auto ct = f->comparisonOperatorType().value();
+ if (!result.contains(ct))
+ result.append(ct);
+ }
+ return result;
+}
+
+std::optional<AbstractMetaType>
+ CppGenerator::findSmartPointerInstantiation(const SmartPointerTypeEntryCPtr &pointer,
+ const TypeEntryCPtr &pointee) const
+{
+ for (const auto &smp : api().instantiatedSmartPointers()) {
+ const auto &i = smp.type;
+ if (i.typeEntry() == pointer && i.instantiations().at(0).typeEntry() == pointee)
+ return i;
+ }
+ return {};
+}
+
+static bool hasParameterPredicate(const AbstractMetaFunctionCPtr &f)
+{
+ return !f->arguments().isEmpty();
+}
+
+void CppGenerator::generateSmartPointerClass(TextStream &s, const GeneratorContext &classContext)
+{
+ s.setLanguage(TextStream::Language::Cpp);
+ AbstractMetaClassCPtr metaClass = classContext.metaClass();
+ const auto typeEntry = std::static_pointer_cast<const SmartPointerTypeEntry>(metaClass->typeEntry());
+ const bool hasPointeeClass = classContext.pointeeClass() != nullptr;
+ const auto smartPointerType = typeEntry->smartPointerType();
+ const bool isValueHandle = smartPointerType ==TypeSystem::SmartPointerType::ValueHandle;
+
+ IncludeGroup includes{u"Extra includes"_s, typeEntry->extraIncludes()};
+ if (hasPointeeClass)
+ includes.append(classContext.pointeeClass()->typeEntry()->include());
+ includes.includes.append({Include::IncludePath, u"sbksmartpointer.h"_s});
+ generateIncludes(s, classContext, {includes});
+
+ s << '\n';
+
+ // class inject-code native/beginning
+ if (!typeEntry->codeSnips().isEmpty()) {
+ writeClassCodeSnips(s, typeEntry->codeSnips(),
+ TypeSystem::CodeSnipPositionBeginning, TypeSystem::NativeCode,
+ classContext);
+ s << '\n';
+ }
+
+ StringStream smd(TextStream::Language::Cpp);
+ StringStream md(TextStream::Language::Cpp);
+ StringStream signatureStream(TextStream::Language::Cpp);
+
+ s << openTargetExternC;
+
+ const auto &functionGroups = getFunctionGroups(metaClass);
+
+ // Skip all public methods of the smart pointer except for the special
+ // methods declared in the type entry.
+
+ auto ctors = metaClass->queryFunctions(FunctionQueryOption::Constructors);
+ if (!hasPointeeClass && !isValueHandle) { // Cannot generate "int*"
+ auto end = std::remove_if(ctors.begin(), ctors.end(), hasParameterPredicate);
+ ctors.erase(end, ctors.end());
+ }
+
+ if (!ctors.isEmpty()) {
+ OverloadData overloadData(ctors, api());
+ writeConstructorWrapper(s, overloadData, classContext);
+ writeSignatureInfo(signatureStream, overloadData);
+ }
+
+ if (!typeEntry->resetMethod().isEmpty()) {
+ auto it = functionGroups.constFind(typeEntry->resetMethod());
+ if (it == functionGroups.cend())
+ throw Exception(msgCannotFindSmartPointerMethod(typeEntry, typeEntry->resetMethod()));
+ AbstractMetaFunctionCList resets = it.value();
+ if (!hasPointeeClass && !isValueHandle) { // Cannot generate "int*"
+ auto end = std::remove_if(resets.begin(), resets.end(), hasParameterPredicate);
+ resets.erase(end, resets.end());
+ }
+ if (!resets.isEmpty())
+ writeMethodWrapper(s, md, signatureStream, resets, classContext);
+ }
+
+ auto it = functionGroups.constFind(typeEntry->getter());
+ if (it == functionGroups.cend() || it.value().size() != 1)
+ throw Exception(msgCannotFindSmartPointerGetter(typeEntry));
+
+ writeMethodWrapper(s, md, signatureStream, it.value(), classContext);
+
+ QStringList optionalMethods;
+ if (!typeEntry->refCountMethodName().isEmpty())
+ optionalMethods.append(typeEntry->refCountMethodName());
+ const QString valueCheckMethod = typeEntry->valueCheckMethod();
+ if (!valueCheckMethod.isEmpty() && !valueCheckMethod.startsWith(u"operator"))
+ optionalMethods.append(valueCheckMethod);
+ if (!typeEntry->nullCheckMethod().isEmpty())
+ optionalMethods.append(typeEntry->nullCheckMethod());
+
+ for (const QString &optionalMethod : optionalMethods) {
+ auto it = functionGroups.constFind(optionalMethod);
+ if (it == functionGroups.cend() || it.value().size() != 1)
+ throw Exception(msgCannotFindSmartPointerMethod(typeEntry, optionalMethod));
+ writeMethodWrapper(s, md, signatureStream, it.value(), classContext);
+ }
+
+ writeCopyFunction(s, md, signatureStream, classContext);
+ writeSmartPointerDirFunction(s, md, signatureStream, classContext);
+
+ const QString methodsDefinitions = md.toString();
+ const QString singleMethodDefinitions = smd.toString();
+
+ const QString className = chopType(cpythonTypeName(typeEntry));
+
+ // Write single method definitions
+ s << singleMethodDefinitions;
+
+ // Write methods definition
+ writePyMethodDefs(s, className, methodsDefinitions);
+
+ // Write tp_s/getattro function
+ const auto boolCastOpt = boolCast(metaClass);
+ writeSmartPointerGetattroFunction(s, classContext, boolCastOpt);
+ writeSmartPointerSetattroFunction(s, classContext);
+
+ if (boolCastOpt.has_value())
+ writeNbBoolFunction(classContext, boolCastOpt.value(), s);
+
+ if (smartPointerType == TypeSystem::SmartPointerType::Shared)
+ writeSmartPointerRichCompareFunction(s, classContext);
+
+ s << closeExternC;
+
+ if (hasHashFunction(metaClass))
+ writeHashFunction(s, classContext);
+
+ // Write tp_traverse and tp_clear functions.
+ writeTpTraverseFunction(s, metaClass);
+ writeTpClearFunction(s, metaClass);
+
+ writeClassDefinition(s, metaClass, classContext);
+
+ s << '\n';
+
+ writeConverterFunctions(s, metaClass, classContext);
+ writeClassRegister(s, metaClass, classContext, signatureStream);
+
+ // class inject-code native/end
+ if (!typeEntry->codeSnips().isEmpty()) {
+ writeClassCodeSnips(s, typeEntry->codeSnips(),
+ TypeSystem::CodeSnipPositionEnd, TypeSystem::NativeCode,
+ classContext);
+ s << '\n';
+ }
+}
+
+void CppGenerator::writeSmartPointerConverterFunctions(TextStream &s,
+ const AbstractMetaType &smartPointerType) const
+{
+ const auto baseClasses = findSmartPointeeBaseClasses(api(), smartPointerType);
+ if (baseClasses.isEmpty())
+ return;
+
+ auto smartPointerTypeEntry =
+ std::static_pointer_cast<const SmartPointerTypeEntry>(smartPointerType.typeEntry());
+
+ // TODO: Missing conversion to smart pointer pointer type:
+
+ s << "// Register smartpointer conversion for all derived classes\n";
+ for (const auto &base : baseClasses) {
+ auto baseTe = base->typeEntry();
+ if (smartPointerTypeEntry->matchesInstantiation(baseTe)) {
+ if (auto opt = findSmartPointerInstantiation(smartPointerTypeEntry, baseTe)) {
+ const auto smartTargetType = opt.value();
+ s << "// SmartPointer derived class: "
+ << smartTargetType.cppSignature() << "\n";
+ writePythonToCppConversionFunctions(s, smartPointerType,
+ smartTargetType, {}, {}, {});
+ }
+ }
+ }
+}
+
+void CppGenerator::writeSmartPointerCppSelfConversion(TextStream &s,
+ const GeneratorContext &context)
+{
+ Q_ASSERT(context.forSmartPointer());
+ s << cpythonWrapperCPtr(context.preciseType(), u"self"_s);
+}
+
+void CppGenerator::writeSmartPointerCppSelfDefinition(TextStream &s,
+ const GeneratorContext &context,
+ ErrorReturn errorReturn,
+ CppSelfDefinitionFlags flags)
+{
+ Q_ASSERT(context.forSmartPointer());
+ writeInvalidPyObjectCheck(s, u"self"_s, errorReturn);
+ writeCppSelfVarDef(s, flags);
+ writeSmartPointerCppSelfConversion(s, context);
+ s << ";\n";
+}
+
+void CppGenerator::writeSmartPointerConverterInitialization(TextStream &s,
+ const AbstractMetaType &type) const
+{
+ const QByteArray cppSignature = type.cppSignature().toUtf8();
+ auto writeConversionRegister = [&s](const AbstractMetaType &sourceType,
+ const QString &targetTypeName,
+ const QString &targetConverter)
+ {
+ const QString sourceTypeName = fixedCppTypeName(sourceType);
+ const QString toCpp = pythonToCppFunctionName(sourceTypeName, targetTypeName);
+ const QString isConv = convertibleToCppFunctionName(sourceTypeName, targetTypeName);
+
+ writeAddPythonToCppConversion(s, targetConverter, toCpp, isConv);
+ };
+
+ const auto classes = findSmartPointeeBaseClasses(api(), type);
+ if (classes.isEmpty())
+ return;
+
+ auto smartPointerTypeEntry = std::static_pointer_cast<const SmartPointerTypeEntry>(type.typeEntry());
+
+ s << "// Register SmartPointer converter for type '" << cppSignature << "'." << '\n'
+ << "///////////////////////////////////////////////////////////////////////////////////////\n\n";
+
+ for (const auto &base : classes) {
+ auto baseTe = base->typeEntry();
+ if (auto opt = findSmartPointerInstantiation(smartPointerTypeEntry, baseTe)) {
+ const auto smartTargetType = opt.value();
+ s << "// Convert to SmartPointer derived class: ["
+ << smartTargetType.cppSignature() << "]\n";
+ const QString converter = u"Shiboken::Conversions::getConverter(\""_s
+ + smartTargetType.cppSignature() + u"\")"_s;
+ writeConversionRegister(type, fixedCppTypeName(smartTargetType), converter);
+ } else {
+ s << "// Class not found:" << type.instantiations().at(0).cppSignature();
+ }
+ }
+
+ s << "///////////////////////////////////////////////////////////////////////////////////////" << '\n' << '\n';
+}
+
+void CppGenerator::writeSmartPointerRichCompareFunction(TextStream &s,
+ const GeneratorContext &context) const
+{
+ static const char selfPointeeVar[] = "cppSelfPointee";
+ static const char cppArg0PointeeVar[] = "cppArg0Pointee";
+
+ const auto metaClass = context.metaClass();
+ QString baseName = cpythonBaseName(metaClass);
+ writeRichCompareFunctionHeader(s, baseName, context);
+
+ s << "if (";
+ writeTypeCheck(s, context.preciseType(), PYTHON_ARG);
+ s << ") {\n" << indent;
+ writeArgumentConversion(s, context.preciseType(), CPP_ARG0,
+ PYTHON_ARG, ErrorReturn::Default, metaClass);
+
+ const auto te = context.preciseType().typeEntry();
+ Q_ASSERT(te->isSmartPointer());
+ const auto ste = std::static_pointer_cast<const SmartPointerTypeEntry>(te);
+
+ s << "const auto *" << selfPointeeVar << " = " << CPP_SELF_VAR
+ << '.' << ste->getter() << "();\n";
+ s << "const auto *" << cppArg0PointeeVar << " = " << CPP_ARG0
+ << '.' << ste->getter() << "();\n";
+
+ // If we have an object without any comparisons, only generate a simple
+ // equality check by pointee address
+ auto availableOps = smartPointeeComparisons(context);
+ const bool comparePointeeAddressOnly = availableOps.isEmpty();
+ if (comparePointeeAddressOnly) {
+ availableOps << AbstractMetaFunction::OperatorEqual
+ << AbstractMetaFunction::OperatorNotEqual;
+ } else {
+ // For value types with operators, we complain about nullptr
+ s << "if (" << selfPointeeVar << " == nullptr || " << cppArg0PointeeVar
+ << " == nullptr) {\n" << indent
+ << "PyErr_SetString(PyExc_NotImplementedError, \"nullptr passed to comparison.\");\n"
+ << ErrorReturn::Default << '\n' << outdent << "}\n";
+ }
+
+ s << "bool " << CPP_RETURN_VAR << "= false;\n"
+ << "switch (op) {\n";
+ for (auto op : availableOps) {
+ s << "case " << AbstractMetaFunction::pythonRichCompareOpCode(op) << ":\n"
+ << indent << CPP_RETURN_VAR << " = ";
+ if (comparePointeeAddressOnly) {
+ s << selfPointeeVar << ' ' << AbstractMetaFunction::cppComparisonOperator(op)
+ << ' ' << cppArg0PointeeVar << ";\n";
+ } else {
+ // Shortcut for equality: Check pointee address
+ if (op == AbstractMetaFunction::OperatorEqual
+ || op == AbstractMetaFunction::OperatorLessEqual
+ || op == AbstractMetaFunction::OperatorGreaterEqual) {
+ s << selfPointeeVar << " == " << cppArg0PointeeVar << " || ";
+ }
+ // Generate object's comparison
+ s << "*" << selfPointeeVar << ' '
+ << AbstractMetaFunction::cppComparisonOperator(op) << " *"
+ << cppArg0PointeeVar << ";\n";
+ }
+ s << "break;\n" << outdent;
+
+ }
+ if (availableOps.size() < 6) {
+ s << "default:\n" << indent
+ << richCompareComment
+ << "return FallbackRichCompare(self, " << PYTHON_ARG << ", op);\n" << outdent;
+ }
+ s << "}\n" << PYTHON_RETURN_VAR << " = " << CPP_RETURN_VAR
+ << " ? Py_True : Py_False;\n"
+ << "Py_INCREF(" << PYTHON_RETURN_VAR << ");\n"
+ << outdent << "}\n"
+ << "return Shiboken::returnFromRichCompare(" << PYTHON_RETURN_VAR << ");\n"
+ << outdent << "}\n\n";
+}
+
+void CppGenerator::writeSmartPointerSetattroFunction(TextStream &s,
+ const GeneratorContext &context)
+{
+ Q_ASSERT(context.forSmartPointer());
+ writeSetattroDefinition(s, context.metaClass());
+ s << smartPtrComment
+ << "if (auto *rawObj = " << callGetter(context) << ") {\n" << indent
+ << "if (PyObject_HasAttr(rawObj, name) != 0)\n" << indent
+ << "return PyObject_GenericSetAttr(rawObj, name, value);\n" << outdent
+ << "Py_DECREF(rawObj);\n" << outdent
+ << "}\n";
+ writeSetattroDefaultReturn(s);
+}
+
+void CppGenerator::writeSmartPointerGetattroFunction(TextStream &s,
+ const GeneratorContext &context,
+ const BoolCastFunctionOptional &boolCast)
+{
+ Q_ASSERT(context.forSmartPointer());
+ const auto metaClass = context.metaClass();
+ writeGetattroDefinition(s, metaClass);
+ s << "PyObject *tmp = PyObject_GenericGetAttr(self, name);\n"
+ << "if (tmp)\n" << indent << "return tmp;\n" << outdent
+ << "if (PyErr_ExceptionMatches(PyExc_AttributeError) == 0)\n"
+ << indent << "return nullptr;\n" << outdent
+ << "PyErr_Clear();\n";
+
+ if (boolCast.has_value()) {
+ writeSmartPointerCppSelfDefinition(s, context);
+ s << "if (";
+ writeNbBoolExpression(s, boolCast.value(), true /* invert */);
+ s << ") {\n" << indent
+ << R"(PyTypeObject *tp = Py_TYPE(self);
+PyErr_Format(PyExc_AttributeError, "Attempt to retrieve '%s' from null object '%s'.",
+ Shiboken::String::toCString(name), tp->tp_name);
+return nullptr;
+)" << outdent << "}\n";
+ }
+
+ // This generates the code which dispatches access to member functions
+ // and fields from the smart pointer to its pointee.
+ s << smartPtrComment
+ << "if (auto *rawObj = " << callGetter(context) << ") {\n" << indent
+ << "if (auto *attribute = PyObject_GetAttr(rawObj, name))\n"
+ << indent << "tmp = attribute;\n" << outdent
+ << "Py_DECREF(rawObj);\n" << outdent
+ << "}\n"
+ << "if (!tmp) {\n" << indent
+ << R"(PyTypeObject *tp = Py_TYPE(self);
+PyErr_Format(PyExc_AttributeError,
+ "'%.50s' object has no attribute '%.400s'",
+ tp->tp_name, Shiboken::String::toCString(name));
+)" << outdent
+ << "}\n"
+ << "return tmp;\n" << outdent << "}\n\n";
+}
+
+QString CppGenerator::writeSmartPointerReprFunction(TextStream &s,
+ const GeneratorContext &context)
+{
+ const auto metaClass = context.metaClass();
+ QString funcName = writeReprFunctionHeader(s, context);
+ s << "Shiboken::AutoDecRef pointee(" << callGetter(context) << ");\n"
+ << "return Shiboken::SmartPointer::repr(self, pointee);\n";
+ writeReprFunctionFooter(s);
+ return funcName;
+}
+
+QString CppGenerator::writeSmartPointerDirFunction(TextStream &s, TextStream &definitionStream,
+ TextStream &signatureStream,
+ const GeneratorContext &context)
+{
+ QString funcName = cpythonBaseName(context.metaClass()) + u"__dir__"_s;
+
+ signatureStream << fullPythonClassName(context.metaClass()) << ".__dir__()\n";
+ definitionStream << PyMethodDefEntry{u"__dir__"_s, funcName, {"METH_NOARGS"_ba}, {}}
+ << ",\n";
+
+ s << "extern \"C\"\n{\n"
+ << "static PyObject *" << funcName << "(PyObject *self)\n{\n" << indent
+ << "Shiboken::AutoDecRef pointee(" << callGetter(context) << ");\n"
+ << "return Shiboken::SmartPointer::dir(self, pointee);\n"
+ << outdent << "}\n} // extern C\n\n";
+ return funcName;
+}
diff --git a/sources/shiboken6/generator/shiboken/ctypenames.h b/sources/shiboken6/generator/shiboken/ctypenames.h
index abac261d5..f665b30ff 100644
--- a/sources/shiboken6/generator/shiboken/ctypenames.h
+++ b/sources/shiboken6/generator/shiboken/ctypenames.h
@@ -1,56 +1,31 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef CTYPENAMES_H
#define CTYPENAMES_H
#include <QtCore/QString>
-static inline QString boolT() { return QStringLiteral("bool"); }
-static inline QString intT() { return QStringLiteral("int"); }
-static inline QString unsignedT() { return QStringLiteral("unsigned"); }
-static inline QString unsignedIntT() { return QStringLiteral("unsigned int"); }
-static inline QString longT() { return QStringLiteral("long"); }
-static inline QString unsignedLongT() { return QStringLiteral("unsigned long"); }
-static inline QString shortT() { return QStringLiteral("short"); }
-static inline QString unsignedShortT() { return QStringLiteral("unsigned short"); }
-static inline QString unsignedCharT() { return QStringLiteral("unsigned char"); }
-static inline QString longLongT() { return QStringLiteral("long long"); }
-static inline QString unsignedLongLongT() { return QStringLiteral("unsigned long long"); }
-static inline QString charT() { return QStringLiteral("char"); }
-static inline QString floatT() { return QStringLiteral("float"); }
-static inline QString doubleT() { return QStringLiteral("double"); }
-static inline QString constCharPtrT() { return QStringLiteral("const char*"); }
+constexpr auto boolT = QLatin1StringView("bool");
+constexpr auto intT = QLatin1StringView("int");
+constexpr auto unsignedT = QLatin1StringView("unsigned");
+constexpr auto unsignedIntT = QLatin1StringView("unsigned int");
+constexpr auto longT = QLatin1StringView("long");
+constexpr auto unsignedLongT = QLatin1StringView("unsigned long");
+constexpr auto shortT = QLatin1StringView("short");
+constexpr auto unsignedShortT = QLatin1StringView("unsigned short");
+constexpr auto unsignedCharT = QLatin1StringView("unsigned char");
+constexpr auto longLongT = QLatin1StringView("long long");
+constexpr auto unsignedLongLongT = QLatin1StringView("unsigned long long");
+constexpr auto charT = QLatin1StringView("char");
+constexpr auto floatT = QLatin1StringView("float");
+constexpr auto doubleT = QLatin1StringView("double");
+constexpr auto constCharPtrT = QLatin1StringView("const char*");
-static inline QString qByteArrayT() { return QStringLiteral("QByteArray"); }
-static inline QString qMetaObjectT() { return QStringLiteral("QMetaObject"); }
-static inline QString qObjectT() { return QStringLiteral("QObject"); }
-static inline QString qStringT() { return QStringLiteral("QString"); }
-static inline QString qVariantT() { return QStringLiteral("QVariant"); }
+constexpr auto qByteArrayT = QLatin1StringView("QByteArray");
+constexpr auto qMetaObjectT = QLatin1StringView("QMetaObject");
+constexpr auto qObjectT = QLatin1StringView("QObject");
+constexpr auto qStringT = QLatin1StringView("QString");
+constexpr auto qVariantT = QLatin1StringView("QVariant");
#endif // CTYPENAMES_H
diff --git a/sources/shiboken6/generator/shiboken/generatorargument.cpp b/sources/shiboken6/generator/shiboken/generatorargument.cpp
new file mode 100644
index 000000000..e81ad0797
--- /dev/null
+++ b/sources/shiboken6/generator/shiboken/generatorargument.cpp
@@ -0,0 +1,110 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#include "generatorargument.h"
+#include <abstractmetatype.h>
+#include <messages.h>
+#include <typesystem.h>
+
+#include <QtCore/QDebug>
+#include <QtCore/QSet>
+
+static bool isCppPrimitiveString(const AbstractMetaType &type)
+{
+ return type.referenceType() == NoReference && type.indirections() == 1
+ && AbstractMetaType::cppSignedCharTypes().contains(type.name());
+}
+
+GeneratorArgument GeneratorArgument::fromMetaType(const AbstractMetaType &type)
+{
+ GeneratorArgument result;
+
+ const auto typeEntry = type.typeEntry();
+ if (typeEntry->isCustom() || typeEntry->isVarargs())
+ return result;
+
+ result.indirections = -type.indirectionsV().size();
+ if (isCppPrimitiveString(type)
+ || type.isVoidPointer()
+ || type.typeUsagePattern() == AbstractMetaType::NativePointerAsArrayPattern) {
+ result.indirections += 1;
+ }
+
+ if (typeEntry->isEnum()) {
+ result.type = Type::Enum;
+ } else if (typeEntry->isFlags()) {
+ result.type = Type::Flags;
+ } else if (typeEntry->isContainer()) {
+ result.type = Type::Container;
+ } else {
+ if (typeEntry->isPrimitive())
+ result.type = Type::Primitive;
+
+ const AbstractMetaTypeList &nestedArrayTypes = type.nestedArrayTypes();
+ if (!nestedArrayTypes.isEmpty()) {
+ if (nestedArrayTypes.constLast().isCppPrimitive()) {
+ result.type = Type::CppPrimitiveArray;
+ } else {
+ static QSet<QString> warnedTypes;
+ const QString &signature = type.cppSignature();
+ if (!warnedTypes.contains(signature)) {
+ warnedTypes.insert(signature);
+ qWarning("%s", qPrintable(msgUnknownArrayPointerConversion(signature)));
+ }
+ result.indirections -= 1;
+ }
+ }
+ }
+
+ if (result.type == Type::Other || result.type == Type::Primitive) {
+ if (type.valueTypeWithCopyConstructorOnlyPassed()) {
+ result.flags.setFlag(Flag::TreatAsPointer);
+ } else if ((type.isObjectType() || type.isPointer())
+ && !type.isUserPrimitive() && !type.isExtendedCppPrimitive()) {
+ result.flags.setFlag(Flag::PointerOrObjectType);
+ } else if (type.referenceType() == LValueReference
+ && !type.isUserPrimitive()
+ && !type.isExtendedCppPrimitive()) {
+ result.flags.setFlag(Flag::MayHaveImplicitConversion);
+ }
+ }
+
+ // For implicit conversions or containers, either value or pointer conversion
+ // may occur. An implicit conversion uses value conversion whereas the object
+ // itself uses pointer conversion. For containers, the PyList/container
+ // conversion is by value whereas opaque containers use pointer conversion.
+ // For a container passed by pointer, a local variable is also needed.
+ if (result.flags.testFlag(Flag::MayHaveImplicitConversion)
+ || type.generateOpaqueContainer()
+ || (result.type == Type::Container && result.indirections != 0)) {
+ result.flags.setFlag(Flag::ValueOrPointer);
+ }
+
+ if (result.type == Type::CppPrimitiveArray) {
+ result.conversion = Conversion::CppPrimitiveArray;
+ } else if (result.flags.testFlag(Flag::ValueOrPointer)) {
+ result.conversion = Conversion::ValueOrPointer;
+ ++result.indirections;
+ } else if (result.flags.testAnyFlags(Flag::TreatAsPointer | Flag::PointerOrObjectType)) {
+ result.conversion = Conversion::Pointer;
+ ++result.indirections;
+ }
+
+ return result;
+}
+
+QDebug operator<<(QDebug debug, const GeneratorArgument &a)
+{
+ QDebugStateSaver saver(debug);
+ debug.noquote();
+ debug.nospace();
+ debug << "GeneratorArgument(" << a.type;
+ if (a.conversion != GeneratorArgument::Conversion::Default)
+ debug << ", conversion=" << a.conversion;
+ if (a.flags)
+ debug << ", flags(" << a.flags;
+ if (a.indirections != 0)
+ debug << ", indirections=" << a.indirections;
+ debug << ')';
+ return debug;
+}
diff --git a/sources/shiboken6/generator/shiboken/generatorargument.h b/sources/shiboken6/generator/shiboken/generatorargument.h
new file mode 100644
index 000000000..385ad0f63
--- /dev/null
+++ b/sources/shiboken6/generator/shiboken/generatorargument.h
@@ -0,0 +1,60 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef GENERATORARGUMENT_H
+#define GENERATORARGUMENT_H
+
+#include <QtCore/QFlags>
+#include <QtCore/qobjectdefs.h>
+
+QT_FORWARD_DECLARE_CLASS(QDebug)
+
+class AbstractMetaType;
+
+/// A struct containing information on how the generator processes a function argument.
+struct GeneratorArgument
+{
+ Q_GADGET
+
+public:
+ enum class Type {
+ Other,
+ Primitive,
+ Enum,
+ Flags,
+ Container,
+ CppPrimitiveArray
+ };
+ Q_ENUM(Type)
+
+ enum class Conversion {
+ Default,
+ CppPrimitiveArray, // Similar to Default except default values
+ Pointer,
+ ValueOrPointer
+ };
+ Q_ENUM(Conversion)
+
+ enum class Flag {
+ TreatAsPointer = 0x1,
+ PointerOrObjectType = 0x2,
+ MayHaveImplicitConversion = 0x4,
+ ValueOrPointer = 0x8,
+ };
+ Q_ENUM(Flag)
+ Q_DECLARE_FLAGS(Flags, Flag)
+
+ static GeneratorArgument fromMetaType(const AbstractMetaType &type);
+
+ Flags flags;
+ /// Indirections from generated "cppArg<n>" variable to function argument.
+ qsizetype indirections = 0;
+ Type type = Type::Other;
+ Conversion conversion = Conversion::Default;
+};
+
+Q_DECLARE_OPERATORS_FOR_FLAGS(GeneratorArgument::Flags)
+
+QDebug operator<<(QDebug debug, const GeneratorArgument &a);
+
+#endif // GENERATORARGUMENT_H
diff --git a/sources/shiboken6/generator/shiboken/generatorstrings.h b/sources/shiboken6/generator/shiboken/generatorstrings.h
new file mode 100644
index 000000000..9ce91e599
--- /dev/null
+++ b/sources/shiboken6/generator/shiboken/generatorstrings.h
@@ -0,0 +1,39 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef GENERATORSTRINGS_H
+#define GENERATORSTRINGS_H
+
+#include <QtCore/QString>
+
+QString CPP_ARG_N(int i);
+QString CPP_ARG_REMOVED(int i);
+
+constexpr auto CPP_RETURN_VAR = QLatin1StringView("cppResult");
+constexpr auto CPP_SELF_VAR = QLatin1StringView("cppSelf");
+constexpr auto CPP_ARG = QLatin1StringView("cppArg");
+constexpr auto NULL_PTR = QLatin1StringView("nullptr");
+constexpr auto PYTHON_ARG = QLatin1StringView("pyArg");
+constexpr auto PYTHON_ARGS = QLatin1StringView("pyArgs");
+constexpr auto PYTHON_OVERRIDE_VAR = QLatin1StringView("pyOverride");
+constexpr auto PYTHON_RETURN_VAR = QLatin1StringView("pyResult");
+constexpr auto PYTHON_SELF_VAR = QLatin1StringView("self");
+constexpr auto PYTHON_TO_CPP_VAR = QLatin1StringView("pythonToCpp");
+
+constexpr auto CONV_RULE_OUT_VAR_SUFFIX = QLatin1StringView("_out");
+constexpr auto BEGIN_ALLOW_THREADS
+ = QLatin1StringView("PyThreadState *_save = PyEval_SaveThread(); // Py_BEGIN_ALLOW_THREADS");
+constexpr auto END_ALLOW_THREADS
+ = QLatin1StringView("PyEval_RestoreThread(_save); // Py_END_ALLOW_THREADS");
+
+constexpr auto REPR_FUNCTION = QLatin1StringView("__repr__");
+
+constexpr auto CPP_ARG0 = QLatin1StringView("cppArg0");
+
+extern const char *const METHOD_DEF_SENTINEL;
+extern const char *const PYTHON_TO_CPPCONVERSION_STRUCT;
+extern const char *const openTargetExternC;
+extern const char *const closeExternC;
+extern const char *const richCompareComment;
+
+#endif // GENERATORSTRINGS_H
diff --git a/sources/shiboken6/generator/shiboken/headergenerator.cpp b/sources/shiboken6/generator/shiboken/headergenerator.cpp
index 0f3dd9fba..1f574b47c 100644
--- a/sources/shiboken6/generator/shiboken/headergenerator.cpp
+++ b/sources/shiboken6/generator/shiboken/headergenerator.cpp
@@ -1,76 +1,106 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "headergenerator.h"
+#include "configurablescope.h"
+#include "generatorcontext.h"
#include <apiextractorresult.h>
+#include <abstractmetaargument.h>
#include <abstractmetaenum.h>
#include <abstractmetafield.h>
#include <abstractmetafunction.h>
#include <abstractmetalang.h>
#include <abstractmetalang_helpers.h>
-#include <modifications.h>
+#include <codesnip.h>
+#include <clangparser/compilersupport.h>
+#include <exception.h>
#include <typedatabase.h>
#include <reporthandler.h>
#include <textstream.h>
#include <fileout.h>
-#include "parser/codemodel.h"
+#include "containertypeentry.h"
+#include "enumtypeentry.h"
+#include "flagstypeentry.h"
+#include <messages.h>
+#include "namespacetypeentry.h"
+#include "primitivetypeentry.h"
+#include "typedefentry.h"
+#include "typesystemtypeentry.h"
+
+#include "qtcompat.h"
#include <algorithm>
+#include <set>
#include <QtCore/QDir>
#include <QtCore/QTextStream>
#include <QtCore/QVariant>
#include <QtCore/QDebug>
-QString HeaderGenerator::fileNameSuffix() const
+using namespace Qt::StringLiterals;
+
+struct IndexValue
+{
+ QString name; // "SBK_..."
+ int value;
+ QString comment;
+};
+
+TextStream &operator<<(TextStream &s, const IndexValue &iv)
+{
+ s << " " << AlignedField(iv.name, 56) << " = " << iv.value << ',';
+ if (!iv.comment.isEmpty())
+ s << " // " << iv.comment;
+ s << '\n';
+ return s;
+}
+
+// PYSIDE-504: Handling the "protected hack"
+// The problem: Creating wrappers when the class has private destructors.
+// You can see an example on Windows in qclipboard_wrapper.h and others.
+// Simply search for the text "// C++11: need to declare (unimplemented) destructor".
+// The protected hack is the definition "#define protected public".
+// For most compilers, this "hack" is enabled, because the problem of private
+// destructors simply vanishes.
+//
+// If one does not want to use this hack, then a new problem arises:
+// C++11 requires that a destructor is declared in a wrapper class when it is
+// private in the base class. There is no implementation allowed!
+//
+// Unfortunately, MSVC in recent versions supports C++11, and due to restrictive
+// rules, it is impossible to use the hack with this compiler.
+// More unfortunate: Clang, when C++11 is enabled, also enforces a declaration
+// of a private destructor, but it falsely then creates a linker error!
+//
+// Originally, we wanted to remove the protected hack. But due to the Clang
+// problem, we gave up on removal of the protected hack and use it always
+// when we can. This might change again when the Clang problem is solved.
+
+static bool alwaysGenerateDestructorDeclaration()
{
- return QLatin1String("_wrapper.h");
+ return clang::compiler() == Compiler::Msvc;
}
+const char *HeaderGenerator::protectedHackDefine = R"(// Workaround to access protected functions
+#ifndef protected
+# define protected public
+#endif
+
+)";
+
QString HeaderGenerator::fileNameForContext(const GeneratorContext &context) const
{
- const AbstractMetaClass *metaClass = context.metaClass();
- if (!context.forSmartPointer()) {
- QString fileNameBase = metaClass->qualifiedCppName().toLower();
- fileNameBase.replace(QLatin1String("::"), QLatin1String("_"));
- return fileNameBase + fileNameSuffix();
- }
- QString fileNameBase = getFileNameBaseForSmartPointer(context.preciseType(), metaClass);
- return fileNameBase + fileNameSuffix();
+ return headerFileNameForContext(context);
}
-void HeaderGenerator::writeCopyCtor(TextStream &s, const AbstractMetaClass *metaClass) const
+void HeaderGenerator::writeCopyCtor(TextStream &s,
+ const AbstractMetaClassCPtr &metaClass)
{
s << wrapperName(metaClass) << "(const " << metaClass->qualifiedCppName()
<< "& self) : " << metaClass->qualifiedCppName() << "(self)\n{\n}\n\n";
}
-static void writeProtectedEnums(TextStream &s, const AbstractMetaClass *metaClass)
+static void writeProtectedEnums(TextStream &s, const AbstractMetaClassCPtr &metaClass)
{
const QString name = metaClass->qualifiedCppName();
for (const auto &e : metaClass->enums()) {
@@ -79,145 +109,181 @@ static void writeProtectedEnums(TextStream &s, const AbstractMetaClass *metaClas
}
}
-void HeaderGenerator::generateClass(TextStream &s, const GeneratorContext &classContextIn)
+void HeaderGenerator::generateClass(TextStream &s, const GeneratorContext &classContext)
{
- GeneratorContext classContext = classContextIn;
- const AbstractMetaClass *metaClass = classContext.metaClass();
- m_inheritedOverloads.clear();
+ const AbstractMetaClassCPtr metaClass = classContext.metaClass();
// write license comment
s << licenseComment();
- QString wrapperName;
- if (!classContext.forSmartPointer()) {
- wrapperName = classContext.useWrapper()
- ? classContext.wrapperName() : metaClass->qualifiedCppName();
- } else {
- wrapperName = classContext.smartPointerWrapperName();
- }
- QString outerHeaderGuard = getFilteredCppSignatureString(wrapperName).toUpper();
- QString innerHeaderGuard;
+ QString wrapperName = classContext.effectiveClassName();
+ QString outerHeaderGuard = getFilteredCppSignatureString(wrapperName);
// Header
s << "#ifndef SBK_" << outerHeaderGuard << "_H\n";
s << "#define SBK_" << outerHeaderGuard << "_H\n\n";
if (!avoidProtectedHack())
- s << "#define protected public\n\n";
+ s << protectedHackDefine;
- //Includes
- auto typeEntry = metaClass->typeEntry();
- s << typeEntry->include() << '\n';
- if (classContext.useWrapper() && !typeEntry->extraIncludes().isEmpty()) {
- s << "\n// Extra includes\n";
- for (const Include &inc : typeEntry->extraIncludes())
- s << inc.toString() << '\n';
+ // Includes
+ s << metaClass->typeEntry()->include() << '\n';
+ for (auto &inst : metaClass->templateBaseClassInstantiations())
+ s << inst.typeEntry()->include();
+
+ if (classContext.useWrapper())
+ writeWrapperClass(s, wrapperName, classContext);
+
+ s << "#endif // SBK_" << outerHeaderGuard << "_H\n\n";
+}
+
+void HeaderGenerator::writeWrapperClass(TextStream &s,
+ const QString &wrapperName,
+ const GeneratorContext &classContext) const
+{
+ const auto metaClass = classContext.metaClass();
+
+ if (avoidProtectedHack()) {
+ const auto includeGroups = classIncludes(metaClass);
+ for( const auto &includeGroup : includeGroups)
+ s << includeGroup;
}
- if (classContext.useWrapper() && usePySideExtensions() && metaClass->isQObject())
+ if (usePySideExtensions() && isQObject(metaClass))
s << "namespace PySide { class DynamicQMetaObject; }\n\n";
- while (classContext.useWrapper()) {
- if (!innerHeaderGuard.isEmpty()) {
- s << "# ifndef SBK_" << innerHeaderGuard << "_H\n";
- s << "# define SBK_" << innerHeaderGuard << "_H\n\n";
- s << "// Inherited base class:\n";
+ writeWrapperClassDeclaration(s, wrapperName, classContext);
+
+ // PYSIDE-500: Use also includes for inherited wrapper classes other
+ // modules, because without the protected hack, we sometimes need to
+ // cast inherited wrappers. CppGenerator generates include statements for
+ // the classes of the current module. For other modules, we insert the
+ // declarations as recursive headers, since wrapper headers are not
+ // installed. This keeps the file structure as simple as before the
+ // enhanced inheritance.
+ if (avoidProtectedHack()) {
+ const auto &baseClasses = allBaseClasses(classContext.metaClass());
+ for (const auto &baseClass : baseClasses) {
+ const auto gen = baseClass->typeEntry()->codeGeneration();
+ if (gen == TypeEntry::GenerateForSubclass) { // other module
+ const auto baseContext = contextForClass(baseClass);
+ if (baseContext.useWrapper())
+ writeInheritedWrapperClassDeclaration(s, baseContext);
+ }
}
+ }
+}
- // Class
- s << "class " << wrapperName
- << " : public " << metaClass->qualifiedCppName()
- << "\n{\npublic:\n" << indent;
-
- // Make protected enums accessible
- if (avoidProtectedHack()) {
- recurseClassHierarchy(metaClass, [&s] (const AbstractMetaClass *metaClass) {
- writeProtectedEnums(s, metaClass);
- return false;
- });
- }
+void HeaderGenerator::writeInheritedWrapperClassDeclaration(TextStream &s,
+ const GeneratorContext &classContext) const
+{
+ const QString wrapperName = classContext.effectiveClassName();
+ const QString innerHeaderGuard =
+ getFilteredCppSignatureString(wrapperName).toUpper();
- if (avoidProtectedHack() && metaClass->hasProtectedFields()) {
- s << "\n// Make protected fields accessible\n";
- const QString name = metaClass->qualifiedCppName();
- for (const auto &f : metaClass->fields()) {
- if (f.isProtected())
- s << "using " << name << "::" << f.originalName() << ";\n";
- }
- s << '\n';
- }
+ s << "# ifndef SBK_" << innerHeaderGuard << "_H\n"
+ << "# define SBK_" << innerHeaderGuard << "_H\n\n"
+ << "// Inherited base class:\n";
- const auto &funcs = filterFunctions(metaClass);
- int maxOverrides = 0;
- for (const auto &func : funcs) {
- if (!func->attributes().testFlag(AbstractMetaFunction::FinalCppMethod)) {
- writeFunction(s, func);
- // PYSIDE-803: Build a boolean cache for unused overrides.
- if (shouldWriteVirtualMethodNative(func))
- maxOverrides++;
- }
- }
- if (!maxOverrides)
- maxOverrides = 1;
-
- //destructor
- // PYSIDE-504: When C++ 11 is used, then the destructor must always be declared.
- // See abstractmetalang.cpp, determineCppWrapper() and generator.h for further
- // reference.
- if (!avoidProtectedHack() || !metaClass->hasPrivateDestructor() || alwaysGenerateDestructor) {
- if (avoidProtectedHack() && metaClass->hasPrivateDestructor())
- s << "// C++11: need to declare (unimplemented) destructor because "
- "the base class destructor is private.\n";
- s << '~' << wrapperName << "();\n";
+ writeWrapperClassDeclaration(s, wrapperName, classContext);
+
+ s << "# endif // SBK_" << innerHeaderGuard << "_H\n\n";
+}
+
+void HeaderGenerator::writeWrapperClassDeclaration(TextStream &s,
+ const QString &wrapperName,
+ const GeneratorContext &classContext) const
+{
+ const AbstractMetaClassCPtr metaClass = classContext.metaClass();
+ const auto typeEntry = metaClass->typeEntry();
+ InheritedOverloadSet inheritedOverloads;
+
+ // write license comment
+ s << licenseComment();
+
+ // Class
+ s << "class " << wrapperName
+ << " : public " << metaClass->qualifiedCppName()
+ << "\n{\npublic:\n" << indent
+ << wrapperName << "(const " << wrapperName << " &) = delete;\n"
+ << wrapperName << "& operator=(const " << wrapperName << " &) = delete;\n"
+ << wrapperName << '(' << wrapperName << " &&) = delete;\n"
+ << wrapperName << "& operator=(" << wrapperName << " &&) = delete;\n\n";
+
+ // Make protected enums accessible
+ if (avoidProtectedHack()) {
+ recurseClassHierarchy(metaClass, [&s] (const AbstractMetaClassCPtr &metaClass) {
+ writeProtectedEnums(s, metaClass);
+ return false;
+ });
+ }
+
+ if (avoidProtectedHack() && metaClass->hasProtectedFields()) {
+ s << "\n// Make protected fields accessible\n";
+ const QString name = metaClass->qualifiedCppName();
+ for (const auto &f : metaClass->fields()) {
+ if (f.isProtected())
+ s << "using " << name << "::" << f.originalName() << ";\n";
}
+ s << '\n';
+ }
+
+ int maxOverrides = 0;
+ for (const auto &func : metaClass->functions()) {
+ const auto generation = functionGeneration(func);
+ writeFunction(s, func, &inheritedOverloads, generation);
+ // PYSIDE-803: Build a boolean cache for unused overrides.
+ if (generation.testFlag(FunctionGenerationFlag::VirtualMethod))
+ maxOverrides++;
+ }
+ if (!maxOverrides)
+ maxOverrides = 1;
+
+ //destructor
+ // PYSIDE-504: When C++ 11 is used, then the destructor must always be declared.
+ if (!avoidProtectedHack() || !metaClass->hasPrivateDestructor()
+ || alwaysGenerateDestructorDeclaration()) {
+ if (avoidProtectedHack() && metaClass->hasPrivateDestructor())
+ s << "// C++11: need to declare (unimplemented) destructor because "
+ "the base class destructor is private.\n";
+ s << '~' << wrapperName << "()";
+ if (metaClass->hasVirtualDestructor())
+ s << " override";
+ s << ";\n";
+ }
- writeClassCodeSnips(s, metaClass->typeEntry()->codeSnips(),
- TypeSystem::CodeSnipPositionDeclaration, TypeSystem::NativeCode,
- classContext);
+ writeClassCodeSnips(s, typeEntry->codeSnips(),
+ TypeSystem::CodeSnipPositionDeclaration, TypeSystem::NativeCode,
+ classContext);
- if ((!avoidProtectedHack() || !metaClass->hasPrivateDestructor())
- && usePySideExtensions() && metaClass->isQObject()) {
- s << outdent << "public:\n" << indent <<
-R"(int qt_metacall(QMetaObject::Call call, int id, void **args) override;
+ if (shouldGenerateMetaObjectFunctions(metaClass)) {
+ s << R"(
+const ::QMetaObject * metaObject() const override;
+int qt_metacall(QMetaObject::Call call, int id, void **args) override;
void *qt_metacast(const char *_clname) override;
)";
- }
+ }
- if (!m_inheritedOverloads.isEmpty()) {
- s << "// Inherited overloads, because the using keyword sux\n";
- for (const auto &func : qAsConst(m_inheritedOverloads))
- writeMemberFunctionWrapper(s, func);
- m_inheritedOverloads.clear();
- }
+ if (!inheritedOverloads.isEmpty()) {
+ s << "// Inherited overloads, because the using keyword sux\n";
+ for (const auto &func : std::as_const(inheritedOverloads))
+ writeMemberFunctionWrapper(s, func);
+ }
- if (usePySideExtensions())
- s << "static void pysideInitQtMetaTypes();\n";
-
- s << "void resetPyMethodCache();\n"
- << outdent << "private:\n" << indent
- << "mutable bool m_PyMethodCache[" << maxOverrides << "];\n"
- << outdent << "};\n\n";
- if (!innerHeaderGuard.isEmpty())
- s << "# endif // SBK_" << innerHeaderGuard << "_H\n\n";
-
- // PYSIDE-500: Use also includes for inherited wrapper classes, because
- // without the protected hack, we sometimes need to cast inherited wrappers.
- // But we don't use multiple include files. Instead, they are inserted as recursive
- // headers. This keeps the file structure as simple as before the enhanced inheritance.
- metaClass = metaClass->baseClass();
- if (!metaClass || !avoidProtectedHack())
- break;
- classContext = contextForClass(metaClass);
- if (!classContext.forSmartPointer()) {
- wrapperName = classContext.useWrapper()
- ? classContext.wrapperName() : metaClass->qualifiedCppName();
- } else {
- wrapperName = classContext.smartPointerWrapperName();
- }
- innerHeaderGuard = getFilteredCppSignatureString(wrapperName).toUpper();
+ if (usePySideExtensions())
+ s << "static void pysideInitQtMetaTypes();\n";
+
+ s << "void resetPyMethodCache();\n"
+ << outdent << "private:\n" << indent;
+
+ if (!metaClass->userAddedPythonOverrides().isEmpty()) {
+ for (const auto &f : metaClass->userAddedPythonOverrides())
+ s << functionSignature(f, {}, {}, Generator::OriginalTypeDescription) << ";\n";
+ s << '\n';
}
- s << "#endif // SBK_" << outerHeaderGuard << "_H\n\n";
+ s << "mutable bool m_PyMethodCache[" << maxOverrides << "];\n"
+ << outdent << "};\n\n";
}
// Write an inline wrapper around a function
@@ -227,8 +293,6 @@ void HeaderGenerator::writeMemberFunctionWrapper(TextStream &s,
{
Q_ASSERT(!func->isConstructor() && !func->isOperatorOverload());
s << "inline ";
- if (func->isStatic())
- s << "static ";
s << functionSignature(func, {}, postfix, Generator::OriginalTypeDescription)
<< " { ";
if (!func->isVoid())
@@ -248,58 +312,52 @@ void HeaderGenerator::writeMemberFunctionWrapper(TextStream &s,
if (i > 0)
s << ", ";
const AbstractMetaArgument &arg = arguments.at(i);
- const TypeEntry *enumTypeEntry = nullptr;
- if (arg.type().isFlags())
- enumTypeEntry = static_cast<const FlagsTypeEntry *>(arg.type().typeEntry())->originator();
- else if (arg.type().isEnum())
- enumTypeEntry = arg.type().typeEntry();
- if (enumTypeEntry)
- s << arg.type().cppSignature() << '(' << arg.name() << ')';
- else
+ const auto &type = arg.type();
+ TypeEntryCPtr enumTypeEntry;
+ if (type.isFlags())
+ enumTypeEntry = std::static_pointer_cast<const FlagsTypeEntry>(type.typeEntry())->originator();
+ else if (type.isEnum())
+ enumTypeEntry = type.typeEntry();
+ if (enumTypeEntry) {
+ s << type.cppSignature() << '(' << arg.name() << ')';
+ } else if (type.passByValue() && type.isUniquePointer()) {
+ s << stdMove(arg.name());
+ } else {
s << arg.name();
+ }
}
s << "); }\n";
}
-void HeaderGenerator::writeFunction(TextStream &s, const AbstractMetaFunctionCPtr &func)
+void HeaderGenerator::writeFunction(TextStream &s, const AbstractMetaFunctionCPtr &func,
+ InheritedOverloadSet *inheritedOverloads,
+ FunctionGeneration generation) const
{
// do not write copy ctors here.
- if (!func->isPrivate() && func->functionType() == AbstractMetaFunction::CopyConstructorFunction) {
+ if (generation.testFlag(FunctionGenerationFlag::WrapperSpecialCopyConstructor)) {
writeCopyCtor(s, func->ownerClass());
return;
}
- if (func->isUserAdded())
- return;
-
- if (avoidProtectedHack() && func->isProtected() && !func->isConstructor()
- && !func->isOperatorOverload()) {
- writeMemberFunctionWrapper(s, func, QLatin1String("_protected"));
- }
- // pure virtual functions need a default implementation
- const bool notAbstract = !func->isAbstract();
- if ((func->isPrivate() && notAbstract && !func->isVisibilityModifiedToPrivate())
- || (func->isModifiedRemoved() && notAbstract))
- return;
+ if (generation.testFlag(FunctionGenerationFlag::ProtectedWrapper))
+ writeMemberFunctionWrapper(s, func, u"_protected"_s);
- if (avoidProtectedHack() && func->ownerClass()->hasPrivateDestructor()
- && (func->isAbstract() || func->isVirtual()))
+ if (generation.testFlag(FunctionGenerationFlag::WrapperConstructor)) {
+ Options option = func->hasSignatureModifications()
+ ? Generator::OriginalTypeDescription : Generator::NoOption;
+ s << functionSignature(func, {}, {}, option) << ";\n";
return;
+ }
- if (func->isConstructor() || func->isAbstract() || func->isVirtual()) {
- Options virtualOption = Generator::OriginalTypeDescription;
-
- const bool virtualFunc = func->isVirtual() || func->isAbstract();
- if (!virtualFunc && !func->hasSignatureModifications())
- virtualOption = Generator::NoOption;
-
- s << functionSignature(func, QString(), QString(), virtualOption);
+ const bool isVirtual = generation.testFlag(FunctionGenerationFlag::VirtualMethod);
+ if (isVirtual) {
+ s << functionSignature(func, {}, {}, Generator::OriginalTypeDescription)
+ << " override;\n";
+ }
- if (virtualFunc)
- s << " override";
- s << ";\n";
- // Check if this method hide other methods in base classes
+ // Check if this method hide other methods in base classes
+ if (isVirtual) {
for (const auto &f : func->ownerClass()->functions()) {
if (f != func
&& !f->isConstructor()
@@ -308,7 +366,7 @@ void HeaderGenerator::writeFunction(TextStream &s, const AbstractMetaFunctionCPt
&& !f->isAbstract()
&& !f->isStatic()
&& f->name() == func->name()) {
- m_inheritedOverloads << f;
+ inheritedOverloads->insert(f);
}
}
@@ -318,28 +376,14 @@ void HeaderGenerator::writeFunction(TextStream &s, const AbstractMetaFunctionCPt
}
}
-static void _writeTypeIndexValue(TextStream &s, const QString &variableName,
- int typeIndex)
-{
- s << " " << AlignedField(variableName, 56) << " = " << typeIndex;
-}
-
-static inline void _writeTypeIndexValueLine(TextStream &s,
- const QString &variableName,
- int typeIndex)
-{
- _writeTypeIndexValue(s, variableName, typeIndex);
- s << ",\n";
-}
-
// Find equivalent typedefs "using Foo=QList<int>", "using Bar=QList<int>"
-static const AbstractMetaClass *
+static AbstractMetaClassCPtr
findEquivalentTemplateTypedef(const AbstractMetaClassCList &haystack,
- const AbstractMetaClass *needle)
+ const AbstractMetaClassCPtr &needle)
{
- auto *templateBaseClass = needle->templateBaseClass();
+ auto templateBaseClass = needle->templateBaseClass();
const auto &instantiations = needle->templateBaseClassInstantiations();
- for (auto *candidate : haystack) {
+ for (const auto &candidate : haystack) {
if (candidate->isTypeDef()
&& candidate->templateBaseClass() == templateBaseClass
&& candidate->templateBaseClassInstantiations() == instantiations) {
@@ -349,19 +393,20 @@ static const AbstractMetaClass *
return nullptr;
}
-void HeaderGenerator::writeTypeIndexValueLine(TextStream &s, const ApiExtractorResult &api,
- const TypeEntry *typeEntry)
+void HeaderGenerator::collectTypeEntryTypeIndexes(const ApiExtractorResult &api,
+ const TypeEntryCPtr &typeEntry,
+ IndexValues *indexValues)
{
if (!typeEntry || !typeEntry->generateCode())
return;
- s.setFieldAlignment(QTextStream::AlignLeft);
const int typeIndex = typeEntry->sbkIndex();
- _writeTypeIndexValueLine(s, getTypeIndexVariableName(typeEntry), typeIndex);
+ indexValues->append({getTypeIndexVariableName(typeEntry), typeIndex, {}});
+
if (typeEntry->isComplex()) {
// For a typedef "using Foo=QList<int>", write a type index
// SBK_QLIST_INT besides SBK_FOO which is then matched by function
// argument. Check against duplicate typedefs for the same types.
- const auto *cType = static_cast<const ComplexTypeEntry *>(typeEntry);
+ const auto cType = std::static_pointer_cast<const ComplexTypeEntry>(typeEntry);
if (cType->baseContainerType()) {
auto metaClass = AbstractMetaClass::findClass(api.classes(), cType);
Q_ASSERT(metaClass != nullptr);
@@ -371,20 +416,21 @@ void HeaderGenerator::writeTypeIndexValueLine(TextStream &s, const ApiExtractorR
metaClass) == nullptr) {
const QString indexVariable =
getTypeAlternateTemplateIndexVariableName(metaClass);
- _writeTypeIndexValueLine(s, indexVariable, typeIndex);
+ indexValues->append({indexVariable, typeIndex, {}});
m_alternateTemplateIndexes.append(m_alternateTemplateIndexes);
}
}
}
if (typeEntry->isEnum()) {
- auto ete = static_cast<const EnumTypeEntry *>(typeEntry);
+ auto ete = std::static_pointer_cast<const EnumTypeEntry>(typeEntry);
if (ete->flags())
- writeTypeIndexValueLine(s, api, ete->flags());
+ collectTypeEntryTypeIndexes(api, ete->flags(), indexValues);
}
}
-void HeaderGenerator::writeTypeIndexValueLines(TextStream &s, const ApiExtractorResult &api,
- const AbstractMetaClass *metaClass)
+void HeaderGenerator::collectClassTypeIndexes(const ApiExtractorResult &api,
+ const AbstractMetaClassCPtr &metaClass,
+ IndexValues *indexValues)
{
auto typeEntry = metaClass->typeEntry();
if (!typeEntry->generateCode())
@@ -392,16 +438,16 @@ void HeaderGenerator::writeTypeIndexValueLines(TextStream &s, const ApiExtractor
// enum indices are required for invisible namespaces as well.
for (const AbstractMetaEnum &metaEnum : metaClass->enums()) {
if (!metaEnum.isPrivate())
- writeTypeIndexValueLine(s, api, metaEnum.typeEntry());
+ collectTypeEntryTypeIndexes(api, metaEnum.typeEntry(), indexValues);
}
if (NamespaceTypeEntry::isVisibleScope(typeEntry))
- writeTypeIndexValueLine(s, api, metaClass->typeEntry());
+ collectTypeEntryTypeIndexes(api, typeEntry, indexValues);
}
// Format the typedefs for the typedef entries to be generated
static void formatTypeDefEntries(TextStream &s)
{
- QList<const TypedefEntry *> entries;
+ QList<TypedefEntryCPtr> entries;
const auto typeDbEntries = TypeDatabase::instance()->typedefEntries();
for (auto it = typeDbEntries.cbegin(), end = typeDbEntries.cend(); it != end; ++it) {
if (it.value()->generateCode() != 0)
@@ -410,76 +456,258 @@ static void formatTypeDefEntries(TextStream &s)
if (entries.isEmpty())
return;
s << "\n// typedef entries\n";
- for (const auto e : entries) {
+ for (const auto &e : entries) {
const QString name = e->qualifiedCppName();
// Fixme: simplify by using nested namespaces in C++ 17.
const auto components = QStringView{name}.split(u"::");
- const int nameSpaceCount = components.size() - 1;
- for (int n = 0; n < nameSpaceCount; ++n)
+ const auto nameSpaceCount = components.size() - 1;
+ for (qsizetype n = 0; n < nameSpaceCount; ++n)
s << "namespace " << components.at(n) << " {\n";
s << "using " << components.constLast() << " = " << e->sourceType() << ";\n";
- for (int n = 0; n < nameSpaceCount; ++n)
+ for (qsizetype n = 0; n < nameSpaceCount; ++n)
s << "}\n";
}
s << '\n';
}
+// Helpers for forward-declaring classes in the module header for the
+// specialization of the SbkType template functions. This is possible if the
+// class does not have inner types or enums which need to be known.
+static bool canForwardDeclare(const AbstractMetaClassCPtr &c)
+{
+ if (c->isNamespace() || !c->enums().isEmpty()
+ || !c->innerClasses().isEmpty() || c->isTypeDef()) {
+ return false;
+ }
+ if (auto encl = c->enclosingClass())
+ return encl->isNamespace();
+ return true;
+}
-bool HeaderGenerator::finishGeneration()
+static void writeForwardDeclaration(TextStream &s, const AbstractMetaClassCPtr &c)
{
- // Generate the main header for this module.
- // This header should be included by binding modules
- // extendind on top of this one.
- QSet<Include> includes;
- QSet<Include> privateIncludes;
- StringStream macrosStream(TextStream::Language::Cpp);
+ Q_ASSERT(!c->isNamespace());
+ const bool isStruct = c->attributes().testFlag(AbstractMetaClass::Struct);
+ s << (isStruct ? "struct " : "class ");
+ // Do not use name as this can be modified/renamed for target lang.
+ const QString qualifiedCppName = c->qualifiedCppName();
+ const auto lastQualifier = qualifiedCppName.lastIndexOf(u':');
+ if (lastQualifier != -1)
+ s << QStringView{qualifiedCppName}.mid(lastQualifier + 1);
+ else
+ s << qualifiedCppName;
+ s << ";\n";
+}
- const auto snips = TypeDatabase::instance()->defaultTypeSystemType()->codeSnips();
- if (!snips.isEmpty()) {
- writeCodeSnips(macrosStream, snips, TypeSystem::CodeSnipPositionDeclaration,
- TypeSystem::TargetLangCode);
+// Helpers for writing out namespaces hierarchically when writing class
+// forward declarations to the module header. Ensure inline namespaces
+// are marked as such (else clang complains) and namespaces are ordered.
+struct NameSpace {
+ AbstractMetaClassCPtr nameSpace;
+ AbstractMetaClassCList classes;
+};
+
+static bool operator<(const NameSpace &n1, const NameSpace &n2)
+{
+ return n1.nameSpace->name() < n2.nameSpace->name();
+}
+
+using NameSpaces = QList<NameSpace>;
+
+static qsizetype indexOf(const NameSpaces &nsps, const AbstractMetaClassCPtr &needle)
+{
+ for (qsizetype i = 0, count = nsps.size(); i < count; ++i) {
+ if (nsps.at(i).nameSpace == needle)
+ return i;
}
+ return -1;
+}
- macrosStream << "// Type indices\nenum : int {\n";
- AbstractMetaClassCList classList = api().classes();
+static void writeNamespaceForwardDeclarationRecursion(TextStream &s, qsizetype idx,
+ const NameSpaces &nameSpaces)
+{
+ auto &root = nameSpaces.at(idx);
+ s << '\n';
+ if (root.nameSpace->isInlineNamespace())
+ s << "inline ";
+ s << "namespace " << root.nameSpace->name() << " {\n" << indent;
+ for (const auto &c : root.classes)
+ writeForwardDeclaration(s, c);
+
+ for (qsizetype i = 0, count = nameSpaces.size(); i < count; ++i) {
+ if (i != idx && nameSpaces.at(i).nameSpace->enclosingClass() == root.nameSpace)
+ writeNamespaceForwardDeclarationRecursion(s, i, nameSpaces);
+ }
+ s << outdent << "}\n";
+}
+
+static void writeForwardDeclarations(TextStream &s,
+ const AbstractMetaClassCList &classList)
+{
+ NameSpaces nameSpaces;
+
+ s << '\n';
+ auto typeSystemEntry = TypeDatabase::instance()->defaultTypeSystemType();
+ if (!typeSystemEntry->namespaceBegin().isEmpty())
+ s << typeSystemEntry->namespaceBegin() << '\n';
+
+ for (const auto &c : classList) {
+ if (auto encl = c->enclosingClass()) {
+ Q_ASSERT(encl->isNamespace());
+ auto idx = indexOf(nameSpaces, encl);
+ if (idx != -1) {
+ nameSpaces[idx].classes.append(c);
+ } else {
+ nameSpaces.append(NameSpace{encl, {c}});
+ for (auto enclNsp = encl->enclosingClass(); enclNsp;
+ enclNsp = enclNsp->enclosingClass()) {
+ idx = indexOf(nameSpaces, enclNsp);
+ if (idx == -1)
+ nameSpaces.append(NameSpace{enclNsp, {}});
+ }
+ }
+ } else {
+ writeForwardDeclaration(s, c);
+ }
+ }
+
+ std::sort(nameSpaces.begin(), nameSpaces.end());
+
+ // Recursively write out namespaces starting at the root elements.
+ for (qsizetype i = 0, count = nameSpaces.size(); i < count; ++i) {
+ const auto &nsp = nameSpaces.at(i);
+ if (nsp.nameSpace->enclosingClass() == nullptr)
+ writeNamespaceForwardDeclarationRecursion(s, i, nameSpaces);
+ }
+
+ if (!typeSystemEntry->namespaceEnd().isEmpty())
+ s << typeSystemEntry->namespaceEnd() << '\n';
+}
+
+// Include parameters required for the module/private module header
+
+using ConditionalIncludeMap = QMap<QString, IncludeGroup>;
+
+static TextStream &operator<<(TextStream &s, const ConditionalIncludeMap &m)
+{
+ for (auto it = m.cbegin(), end = m.cend(); it != end; ++it)
+ s << it.key() << '\n' << it.value() << "#endif\n";
+ return s;
+}
- std::sort(classList.begin(), classList.end(), [](const AbstractMetaClass *a, const AbstractMetaClass *b) {
- return a->typeEntry()->sbkIndex() < b->typeEntry()->sbkIndex();
- });
+struct ModuleHeaderParameters
+{
+ AbstractMetaClassCList forwardDeclarations;
+ std::set<Include> includes;
+ ConditionalIncludeMap conditionalIncludes;
+ QString typeFunctions;
+};
+
+HeaderGenerator::IndexValues
+ HeaderGenerator::collectTypeIndexes(const AbstractMetaClassCList &classList)
+{
+ IndexValues result;
- for (const AbstractMetaClass *metaClass : classList)
- writeTypeIndexValueLines(macrosStream, api(), metaClass);
+ for (const auto &metaClass : classList)
+ collectClassTypeIndexes(api(), metaClass, &result);
for (const AbstractMetaEnum &metaEnum : api().globalEnums())
- writeTypeIndexValueLine(macrosStream, api(), metaEnum.typeEntry());
+ collectTypeEntryTypeIndexes(api(), metaEnum.typeEntry(), &result);
// Write the smart pointer define indexes.
int smartPointerCountIndex = getMaxTypeIndex();
int smartPointerCount = 0;
- const AbstractMetaTypeList &instantiatedSmartPtrs = instantiatedSmartPointers();
- for (const AbstractMetaType &metaType : instantiatedSmartPtrs) {
- QString indexName = getTypeIndexVariableName(metaType);
- _writeTypeIndexValue(macrosStream, indexName, smartPointerCountIndex);
- macrosStream << ", // " << metaType.cppSignature() << '\n';
+ for (const auto &smp : api().instantiatedSmartPointers()) {
+ QString indexName = getTypeIndexVariableName(smp.type);
+ result.append({indexName, smartPointerCountIndex, smp.type.cppSignature()});
// Add a the same value for const pointees (shared_ptr<const Foo>).
- const auto ptrName = metaType.typeEntry()->entryName();
- int pos = indexName.indexOf(ptrName, 0, Qt::CaseInsensitive);
+ const auto ptrName = smp.type.typeEntry()->entryName();
+ const auto pos = indexName.indexOf(ptrName, 0, Qt::CaseInsensitive);
if (pos >= 0) {
- indexName.insert(pos + ptrName.size() + 1, QLatin1String("CONST"));
- _writeTypeIndexValue(macrosStream, indexName, smartPointerCountIndex);
- macrosStream << ", // (const)\n";
+ indexName.insert(pos + ptrName.size() + 1, u"const"_s);
+ result.append({indexName, smartPointerCountIndex, "(const)"_L1});
}
++smartPointerCountIndex;
++smartPointerCount;
}
+ result.append({"SBK_"_L1 + moduleName() + "_IDX_COUNT"_L1,
+ getMaxTypeIndex() + smartPointerCount, {}});
+ return result;
+}
+
+HeaderGenerator::IndexValues HeaderGenerator::collectConverterIndexes() const
+{
+ IndexValues result;
+ const auto &primitives = primitiveTypes();
+ int pCount = 0;
+ for (const auto &ptype : primitives) {
+ // Note: do not generate indices for typedef'd primitive types as
+ // they'll use the primitive type converters instead, so we
+ // don't need to create any other.
+ if (ptype->generateCode() && ptype->customConversion() != nullptr)
+ result.append({getTypeIndexVariableName(ptype), pCount++, {}});
+ }
+
+ for (const AbstractMetaType &container : api().instantiatedContainers()) {
+ result.append({getTypeIndexVariableName(container),
+ pCount++, container.cppSignature()});
+ }
+
+ // Because on win32 the compiler will not accept a zero length array.
+ if (pCount == 0)
+ pCount++;
+ result.append({"SBK_"_L1 + moduleName() + "_CONVERTERS_IDX_COUNT"_L1,
+ pCount, {}});
+ return result;
+}
+
+// PYSIDE-2404: Write the enums in unchanged case for reuse in type imports.
+// For conpatibility, we create them in uppercase, too and with
+// doubled index for emulating the former type-only case.
+//
+// FIXME: Remove in PySide 7. (See the note in `parser.py`)
+//
+static IndexValue typeIndexUpper(struct IndexValue const &ti)
+{
+ QString modi = ti.name.toUpper();
+ if (modi == ti.name)
+ modi = u"// "_s + modi;
+ return {modi, ti.value * 2, ti.comment};
+}
+
+bool HeaderGenerator::finishGeneration()
+{
+ // Generate the main header for this module. This header should be included
+ // by binding modules extending on top of this one.
+ ModuleHeaderParameters parameters;
+ ModuleHeaderParameters privateParameters;
+ StringStream macrosStream(TextStream::Language::Cpp);
+
+ const auto snips = TypeDatabase::instance()->defaultTypeSystemType()->codeSnips();
+ writeModuleCodeSnips(macrosStream, snips, TypeSystem::CodeSnipPositionDeclaration,
+ TypeSystem::TargetLangCode);
+
+ auto classList = api().classes();
+
+ std::sort(classList.begin(), classList.end(),
+ [](const AbstractMetaClassCPtr &a, const AbstractMetaClassCPtr &b) {
+ return a->typeEntry()->sbkIndex() < b->typeEntry()->sbkIndex();
+ });
+
+ const auto typeIndexes = collectTypeIndexes(classList);
+
+ macrosStream << "\n// Type indices\nenum [[deprecated]] : int {\n";
+ for (const auto &ti : typeIndexes)
+ macrosStream << typeIndexUpper(ti);
+ macrosStream << "};\n";
- _writeTypeIndexValue(macrosStream,
- QLatin1String("SBK_") + moduleName() + QLatin1String("_IDX_COUNT"),
- getMaxTypeIndex() + smartPointerCount);
- macrosStream << "\n};\n";
+ macrosStream << "\n// Type indices\nenum : int {\n";
+ for (const auto &ti : typeIndexes)
+ macrosStream << ti;
+ macrosStream << "};\n\n";
macrosStream << "// This variable stores all Python types exported by this module.\n";
- macrosStream << "extern PyTypeObject **" << cppApiVariableName() << ";\n\n";
+ macrosStream << "extern Shiboken::Module::TypeInitStruct *" << cppApiVariableName() << ";\n\n";
macrosStream << "// This variable stores the Python module object exported by this module.\n";
macrosStream << "extern PyObject *" << pythonModuleObjectName() << ";\n\n";
macrosStream << "// This variable stores all type converters exported by this module.\n";
@@ -487,33 +715,16 @@ bool HeaderGenerator::finishGeneration()
// TODO-CONVERTER ------------------------------------------------------------------------------
// Using a counter would not do, a fix must be made to APIExtractor's getTypeIndex().
- macrosStream << "// Converter indices\nenum : int {\n";
- const PrimitiveTypeEntryList &primitives = primitiveTypes();
- int pCount = 0;
- for (const PrimitiveTypeEntry *ptype : primitives) {
- /* Note: do not generate indices for typedef'd primitive types
- * as they'll use the primitive type converters instead, so we
- * don't need to create any other.
- */
- if (!ptype->generateCode() || !ptype->customConversion())
- continue;
-
- _writeTypeIndexValueLine(macrosStream, getTypeIndexVariableName(ptype), pCount++);
- }
-
- const AbstractMetaTypeList &containers = instantiatedContainers();
- for (const AbstractMetaType &container : containers) {
- _writeTypeIndexValue(macrosStream, getTypeIndexVariableName(container), pCount);
- macrosStream << ", // " << container.cppSignature() << '\n';
- pCount++;
- }
+ const auto converterIndexes = collectConverterIndexes();
+ macrosStream << "// Converter indices\nenum [[deprecated]] : int {\n";
+ for (const auto &ci : converterIndexes)
+ macrosStream << typeIndexUpper(ci);
+ macrosStream << "};\n\n";
- // Because on win32 the compiler will not accept a zero length array.
- if (pCount == 0)
- pCount++;
- _writeTypeIndexValue(macrosStream, QStringLiteral("SBK_%1_CONVERTERS_IDX_COUNT")
- .arg(moduleName()), pCount);
- macrosStream << "\n};\n";
+ macrosStream << "// Converter indices\nenum : int {\n";
+ for (const auto &ci : converterIndexes)
+ macrosStream << ci;
+ macrosStream << "};\n";
formatTypeDefEntries(macrosStream);
@@ -521,36 +732,46 @@ bool HeaderGenerator::finishGeneration()
macrosStream << "// Macros for type check\n";
- StringStream typeFunctions(TextStream::Language::Cpp);
- StringStream privateTypeFunctions(TextStream::Language::Cpp);
- if (usePySideExtensions()) {
- typeFunctions << "QT_WARNING_PUSH\n";
- typeFunctions << "QT_WARNING_DISABLE_DEPRECATED\n";
- }
+ TextStream typeFunctions(&parameters.typeFunctions, TextStream::Language::Cpp);
+ TextStream privateTypeFunctions(&privateParameters.typeFunctions, TextStream::Language::Cpp);
+
for (const AbstractMetaEnum &cppEnum : api().globalEnums()) {
if (!cppEnum.isAnonymous()) {
- includes << cppEnum.typeEntry()->include();
+ const auto te = cppEnum.typeEntry();
+ if (te->hasConfigCondition())
+ parameters.conditionalIncludes[te->configCondition()].append(te->include());
+ else
+ parameters.includes.insert(cppEnum.typeEntry()->include());
writeSbkTypeFunction(typeFunctions, cppEnum);
}
}
StringStream protEnumsSurrogates(TextStream::Language::Cpp);
- for (auto metaClass : classList) {
- if (!shouldGenerate(metaClass))
+ for (const auto &metaClass : classList) {
+ const auto classType = metaClass->typeEntry();
+ if (!shouldGenerate(classType))
continue;
- //Includes
- const TypeEntry *classType = metaClass->typeEntry();
+ // Includes
const bool isPrivate = classType->isPrivate();
- auto &includeList = isPrivate ? privateIncludes : includes;
- includeList << classType->include();
+ auto &par = isPrivate ? privateParameters : parameters;
+ const auto classInclude = classType->include();
+ const bool hasConfigCondition = classType->hasConfigCondition();
+ if (leanHeaders() && canForwardDeclare(metaClass))
+ par.forwardDeclarations.append(metaClass);
+ else if (hasConfigCondition)
+ par.conditionalIncludes[classType->configCondition()].append(classInclude);
+ else
+ par.includes.insert(classInclude);
+
auto &typeFunctionsStr = isPrivate ? privateTypeFunctions : typeFunctions;
+ ConfigurableScope configScope(typeFunctionsStr, classType);
for (const AbstractMetaEnum &cppEnum : metaClass->enums()) {
if (cppEnum.isAnonymous() || cppEnum.isPrivate())
continue;
- EnumTypeEntry *enumType = cppEnum.typeEntry();
- includeList << enumType->include();
+ if (const auto inc = cppEnum.typeEntry()->include(); inc != classInclude)
+ par.includes.insert(inc);
writeProtectedEnumSurrogate(protEnumsSurrogates, cppEnum);
writeSbkTypeFunction(typeFunctionsStr, cppEnum);
}
@@ -559,19 +780,16 @@ bool HeaderGenerator::finishGeneration()
writeSbkTypeFunction(typeFunctionsStr, metaClass);
}
- for (const AbstractMetaType &metaType : instantiatedSmartPtrs) {
- const TypeEntry *classType = metaType.typeEntry();
- includes << classType->include();
- writeSbkTypeFunction(typeFunctions, metaType);
+ for (const auto &smp : api().instantiatedSmartPointers()) {
+ parameters.includes.insert(smp.type.typeEntry()->include());
+ writeSbkTypeFunction(typeFunctions, smp.type);
}
- if (usePySideExtensions())
- typeFunctions << "QT_WARNING_POP\n";
- const QString moduleHeaderDir = outputDirectory() + QLatin1Char('/')
- + subDirectoryForPackage(packageName()) + QLatin1Char('/');
+ const QString moduleHeaderDir = outputDirectory() + u'/'
+ + subDirectoryForPackage(packageName()) + u'/';
const QString moduleHeaderFileName(moduleHeaderDir + getModuleHeaderFileName());
- QString includeShield(QLatin1String("SBK_") + moduleName().toUpper() + QLatin1String("_PYTHON_H"));
+ QString includeShield(u"SBK_"_s + moduleName().toUpper() + u"_PYTHON_H"_s);
FileOut file(moduleHeaderFileName);
TextStream &s = file.stream;
@@ -588,34 +806,40 @@ bool HeaderGenerator::finishGeneration()
}
s << "#include <sbkpython.h>\n";
+ s << "#include <sbkmodule.h>\n";
s << "#include <sbkconverter.h>\n";
QStringList requiredTargetImports = TypeDatabase::instance()->requiredTargetImports();
if (!requiredTargetImports.isEmpty()) {
s << "// Module Includes\n";
- for (const QString &requiredModule : qAsConst(requiredTargetImports))
+ for (const QString &requiredModule : std::as_const(requiredTargetImports))
s << "#include <" << getModuleHeaderFileName(requiredModule) << ">\n";
s<< '\n';
}
s << "// Bound library includes\n";
- for (const Include &include : qAsConst(includes))
+ for (const Include &include : parameters.includes)
s << include;
+ s << parameters.conditionalIncludes;
- if (!primitiveTypes().isEmpty()) {
- s << "// Conversion Includes - Primitive Types\n";
- const PrimitiveTypeEntryList &primitiveTypeList = primitiveTypes();
- for (const PrimitiveTypeEntry *ptype : primitiveTypeList)
- s << ptype->include();
- s<< '\n';
- }
+ if (leanHeaders()) {
+ writeForwardDeclarations(s, parameters.forwardDeclarations);
+ } else {
+ if (!primitiveTypes().isEmpty()) {
+ s << "// Conversion Includes - Primitive Types\n";
+ const auto &primitiveTypeList = primitiveTypes();
+ for (const auto &ptype : primitiveTypeList)
+ s << ptype->include();
+ s<< '\n';
+ }
- if (!containerTypes().isEmpty()) {
- s << "// Conversion Includes - Container Types\n";
- const ContainerTypeEntryList &containerTypeList = containerTypes();
- for (const ContainerTypeEntry *ctype : containerTypeList)
- s << ctype->include();
- s<< '\n';
+ if (!containerTypes().isEmpty()) {
+ s << "// Conversion Includes - Container Types\n";
+ const ContainerTypeEntryCList &containerTypeList = containerTypes();
+ for (const auto &ctype : containerTypeList)
+ s << ctype->include();
+ s<< '\n';
+ }
}
s << macrosStream.toString() << '\n';
@@ -625,25 +849,21 @@ bool HeaderGenerator::finishGeneration()
<< protEnumsSurrogates.toString() << '\n';
}
- s << "namespace Shiboken\n{\n\n"
- << "// PyType functions, to get the PyObjectType for a type T\n"
- << typeFunctions.toString() << '\n'
- << "} // namespace Shiboken\n\n"
- << "#endif // " << includeShield << "\n\n";
+ writeTypeFunctions(s, parameters.typeFunctions);
+
+ s << "#endif // " << includeShield << "\n\n";
file.done();
- if (hasPrivateClasses()) {
- writePrivateHeader(moduleHeaderDir, includeShield,
- privateIncludes, privateTypeFunctions.toString());
- }
+ if (hasPrivateClasses())
+ writePrivateHeader(moduleHeaderDir, includeShield, privateParameters);
+
return true;
}
void HeaderGenerator::writePrivateHeader(const QString &moduleHeaderDir,
const QString &publicIncludeShield,
- const QSet<Include> &privateIncludes,
- const QString &privateTypeFunctions)
+ const ModuleHeaderParameters &parameters)
{
// Write includes and type functions of private classes
@@ -651,63 +871,90 @@ void HeaderGenerator::writePrivateHeader(const QString &moduleHeaderDir,
TextStream &ps = privateFile.stream;
ps.setLanguage(TextStream::Language::Cpp);
QString privateIncludeShield =
- publicIncludeShield.left(publicIncludeShield.size() - 2)
- + QStringLiteral("_P_H");
+ publicIncludeShield.left(publicIncludeShield.size() - 2) + "_P_H"_L1;
ps << licenseComment()<< "\n\n";
ps << "#ifndef " << privateIncludeShield << '\n';
ps << "#define " << privateIncludeShield << "\n\n";
- for (const Include &include : qAsConst(privateIncludes))
+ for (const Include &include : parameters.includes)
ps << include;
+ ps << parameters.conditionalIncludes;
ps << '\n';
+ if (leanHeaders())
+ writeForwardDeclarations(ps, parameters.forwardDeclarations);
+
+ writeTypeFunctions(ps, parameters.typeFunctions);
+
+ ps << "#endif\n";
+ privateFile.done();
+}
+
+void HeaderGenerator::writeTypeFunctions(TextStream &s, const QString &typeFunctions)
+{
+ if (typeFunctions.isEmpty())
+ return;
+
if (usePySideExtensions())
- ps << "QT_WARNING_PUSH\nQT_WARNING_DISABLE_DEPRECATED\n";
+ s << "QT_WARNING_PUSH\nQT_WARNING_DISABLE_DEPRECATED\n";
- ps << "namespace Shiboken\n{\n\n"
+ s << "namespace Shiboken\n{\n\n"
<< "// PyType functions, to get the PyObjectType for a type T\n"
- << privateTypeFunctions << '\n'
+ << typeFunctions << '\n'
<< "} // namespace Shiboken\n\n";
if (usePySideExtensions())
- ps << "QT_WARNING_POP\n";
-
- ps << "#endif\n";
- privateFile.done();
+ s << "QT_WARNING_POP\n";
}
-void HeaderGenerator::writeProtectedEnumSurrogate(TextStream &s, const AbstractMetaEnum &cppEnum) const
+void HeaderGenerator::writeProtectedEnumSurrogate(TextStream &s, const AbstractMetaEnum &cppEnum)
{
if (avoidProtectedHack() && cppEnum.isProtected())
s << "enum " << protectedEnumSurrogateName(cppEnum) << " {};\n";
}
-void HeaderGenerator::writeSbkTypeFunction(TextStream &s, const AbstractMetaEnum &cppEnum) const
+void HeaderGenerator::writeSbkTypeFunction(TextStream &s, const AbstractMetaEnum &cppEnum)
{
const QString enumName = avoidProtectedHack() && cppEnum.isProtected()
? protectedEnumSurrogateName(cppEnum)
: cppEnum.qualifiedCppName();
+ const auto te = cppEnum.typeEntry();
+ ConfigurableScope configScope(s, te);
+ s << "template<> inline PyTypeObject *SbkType< " << m_gsp << enumName << " >() ";
+ s << "{ return " << cpythonTypeNameExt(te) << "; }\n";
- s << "template<> inline PyTypeObject *SbkType< ::" << enumName << " >() ";
- s << "{ return " << cpythonTypeNameExt(cppEnum.typeEntry()) << "; }\n";
-
- FlagsTypeEntry *flag = cppEnum.typeEntry()->flags();
+ const auto flag = cppEnum.typeEntry()->flags();
if (flag) {
- s << "template<> inline PyTypeObject *SbkType< ::" << flag->name() << " >() "
+ s << "template<> inline PyTypeObject *SbkType< " << m_gsp << flag->name() << " >() "
<< "{ return " << cpythonTypeNameExt(flag) << "; }\n";
}
}
-void HeaderGenerator::writeSbkTypeFunction(TextStream &s, const AbstractMetaClass *cppClass)
+void HeaderGenerator::writeSbkTypeFunction(TextStream &s, const AbstractMetaClassCPtr &cppClass)
{
- s << "template<> inline PyTypeObject *SbkType< ::" << cppClass->qualifiedCppName() << " >() "
- << "{ return reinterpret_cast<PyTypeObject *>(" << cpythonTypeNameExt(cppClass->typeEntry()) << "); }\n";
+ s << "template<> inline PyTypeObject *SbkType< "
+ << getFullTypeName(cppClass) << " >() "
+ << "{ return " << cpythonTypeNameExt(cppClass->typeEntry()) << "; }\n";
}
void HeaderGenerator::writeSbkTypeFunction(TextStream &s, const AbstractMetaType &metaType)
{
- s << "template<> inline PyTypeObject *SbkType< ::" << metaType.cppSignature() << " >() "
+ s << "template<> inline PyTypeObject *SbkType< "
+ << m_gsp << metaType.cppSignature() << " >() "
<< "{ return " << cpythonTypeNameExt(metaType) << "; }\n";
}
+
+void HeaderGenerator::writeModuleCodeSnips(TextStream &s, const CodeSnipList &codeSnips,
+ TypeSystem::CodeSnipPosition position,
+ TypeSystem::Language language) const
+{
+ if (!codeSnips.isEmpty()) {
+ try {
+ writeCodeSnips(s, codeSnips, position, language);
+ } catch (const std::exception &e) {
+ throw Exception(msgSnippetError("module header of "_L1 + moduleName(), e.what()));
+ }
+ }
+}
diff --git a/sources/shiboken6/generator/shiboken/headergenerator.h b/sources/shiboken6/generator/shiboken/headergenerator.h
index 3d64158e7..03b98e743 100644
--- a/sources/shiboken6/generator/shiboken/headergenerator.h
+++ b/sources/shiboken6/generator/shiboken/headergenerator.h
@@ -1,39 +1,19 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef HEADERGENERATOR_H
#define HEADERGENERATOR_H
#include "shibokengenerator.h"
+#include "include.h"
+#include "modifications_typedefs.h"
+#include <QtCore/QList>
#include <QtCore/QSet>
+struct IndexValue;
class AbstractMetaFunction;
+struct ModuleHeaderParameters;
/**
* The HeaderGenerator generate the declarations of C++ bindings classes.
@@ -41,36 +21,54 @@ class AbstractMetaFunction;
class HeaderGenerator : public ShibokenGenerator
{
public:
- OptionDescriptions options() const override { return OptionDescriptions(); }
-
const char *name() const override { return "Header generator"; }
+ static const char *protectedHackDefine;
+
protected:
- QString fileNameSuffix() const override;
QString fileNameForContext(const GeneratorContext &context) const override;
void generateClass(TextStream &s, const GeneratorContext &classContext) override;
bool finishGeneration() override;
private:
- void writeCopyCtor(TextStream &s, const AbstractMetaClass *metaClass) const;
- void writeFunction(TextStream &s, const AbstractMetaFunctionCPtr &func);
- void writeSbkTypeFunction(TextStream &s, const AbstractMetaEnum &cppEnum) const;
- static void writeSbkTypeFunction(TextStream &s, const AbstractMetaClass *cppClass) ;
- static void writeSbkTypeFunction(TextStream &s, const AbstractMetaType &metaType) ;
- void writeTypeIndexValueLine(TextStream &s, const ApiExtractorResult &api,
- const TypeEntry *typeEntry);
- void writeTypeIndexValueLines(TextStream &s, const ApiExtractorResult &api,
- const AbstractMetaClass *metaClass);
- void writeProtectedEnumSurrogate(TextStream &s, const AbstractMetaEnum &cppEnum) const;
+ using InheritedOverloadSet = QSet<AbstractMetaFunctionCPtr>;
+ using IndexValues = QList<IndexValue>;
+
+ IndexValues collectTypeIndexes(const AbstractMetaClassCList &classList);
+ IndexValues collectConverterIndexes() const;
+
+ static void writeCopyCtor(TextStream &s, const AbstractMetaClassCPtr &metaClass);
+ void writeFunction(TextStream &s,
+ const AbstractMetaFunctionCPtr &func,
+ InheritedOverloadSet *inheritedOverloads,
+ FunctionGeneration generation) const;
+ static void writeSbkTypeFunction(TextStream &s, const AbstractMetaEnum &cppEnum);
+ static void writeSbkTypeFunction(TextStream &s, const AbstractMetaClassCPtr &cppClass);
+ static void writeSbkTypeFunction(TextStream &s, const AbstractMetaType &metaType);
+ void collectTypeEntryTypeIndexes(const ApiExtractorResult &api,
+ const TypeEntryCPtr &typeEntry,
+ IndexValues *indexValues);
+ void collectClassTypeIndexes(const ApiExtractorResult &api,
+ const AbstractMetaClassCPtr &metaClass,
+ IndexValues *indexValues);
+ static void writeProtectedEnumSurrogate(TextStream &s, const AbstractMetaEnum &cppEnum);
void writeMemberFunctionWrapper(TextStream &s,
const AbstractMetaFunctionCPtr &func,
const QString &postfix = {}) const;
void writePrivateHeader(const QString &moduleHeaderDir,
const QString &publicIncludeShield,
- const QSet<Include> &privateIncludes,
- const QString &privateTypeFunctions);
+ const ModuleHeaderParameters &parameters);
+ static void writeTypeFunctions(TextStream &s, const QString &typeFunctions);
+ void writeWrapperClassDeclaration(TextStream &s,
+ const QString &wrapperName,
+ const GeneratorContext &classContext) const;
+ void writeWrapperClass(TextStream &s, const QString &wrapperName, const GeneratorContext &classContext) const;
+ void writeInheritedWrapperClassDeclaration(TextStream &s,
+ const GeneratorContext &classContext) const;
+ void writeModuleCodeSnips(TextStream &s, const CodeSnipList &codeSnips,
+ TypeSystem::CodeSnipPosition position,
+ TypeSystem::Language language) const;
- QSet<AbstractMetaFunctionCPtr> m_inheritedOverloads;
AbstractMetaClassCList m_alternateTemplateIndexes;
};
diff --git a/sources/shiboken6/generator/shiboken/overloaddata.cpp b/sources/shiboken6/generator/shiboken/overloaddata.cpp
index 5ad2087d3..c28fcdc1a 100644
--- a/sources/shiboken6/generator/shiboken/overloaddata.cpp
+++ b/sources/shiboken6/generator/shiboken/overloaddata.cpp
@@ -1,42 +1,23 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <abstractmetafunction.h>
#include <apiextractorresult.h>
#include <abstractmetalang.h>
#include <dotview.h>
#include <reporthandler.h>
-#include <typesystem.h>
+#include <complextypeentry.h>
+#include <containertypeentry.h>
+#include <primitivetypeentry.h>
#include <graph.h>
#include "overloaddata.h"
+#include "messages.h"
#include "ctypenames.h"
#include "pytypenames.h"
#include "textstream.h"
+#include "exception.h"
+
+#include "qtcompat.h"
#include <QtCore/QDir>
#include <QtCore/QFile>
@@ -45,37 +26,27 @@
#include <algorithm>
#include <utility>
-static const TypeEntry *getReferencedTypeEntry(const TypeEntry *typeEntry)
-{
- if (typeEntry->isPrimitive()) {
- auto pte = dynamic_cast<const PrimitiveTypeEntry *>(typeEntry);
- while (pte->referencedTypeEntry())
- pte = pte->referencedTypeEntry();
- typeEntry = pte;
- }
- return typeEntry;
-}
+using namespace Qt::StringLiterals;
static QString getTypeName(const AbstractMetaType &type)
{
- const TypeEntry *typeEntry = getReferencedTypeEntry(type.typeEntry());
+ TypeEntryCPtr typeEntry = type.typeEntry();
+ if (typeEntry->isPrimitive())
+ typeEntry = basicReferencedTypeEntry(typeEntry);
QString typeName = typeEntry->name();
if (typeEntry->isContainer()) {
QStringList types;
for (const auto &cType : type.instantiations()) {
- const TypeEntry *typeEntry = getReferencedTypeEntry(cType.typeEntry());
+ TypeEntryCPtr typeEntry = cType.typeEntry();
+ if (typeEntry->isPrimitive())
+ typeEntry = basicReferencedTypeEntry(typeEntry);
types << typeEntry->name();
}
- typeName += QLatin1Char('<') + types.join(QLatin1Char(',')) + QLatin1String(" >");
+ typeName += u'<' + types.join(u',') + u" >"_s;
}
return typeName;
}
-static QString getTypeName(const OverloadDataNodePtr &ov)
-{
- return ov->hasArgumentTypeReplace() ? ov->argumentTypeReplaced() : getTypeName(ov->argType());
-}
-
static bool typesAreEqual(const AbstractMetaType &typeA, const AbstractMetaType &typeB)
{
if (typeA.typeEntry() == typeB.typeEntry()) {
@@ -83,7 +54,7 @@ static bool typesAreEqual(const AbstractMetaType &typeA, const AbstractMetaType
if (typeA.instantiations().size() != typeB.instantiations().size())
return false;
- for (int i = 0; i < typeA.instantiations().size(); ++i) {
+ for (qsizetype i = 0; i < typeA.instantiations().size(); ++i) {
if (!typesAreEqual(typeA.instantiations().at(i), typeB.instantiations().at(i)))
return false;
}
@@ -117,33 +88,8 @@ static QString getImplicitConversionTypeName(const AbstractMetaType &containerTy
for (const auto &otherType : containerType.instantiations())
types << (otherType == instantiation ? impConv : getTypeName(otherType));
- return containerType.typeEntry()->qualifiedCppName() + QLatin1Char('<')
- + types.join(QLatin1String(", ")) + QLatin1String(" >");
-}
-
-// overloaddata.cpp
-static QString msgCyclicDependency(const QString &funcName, const QString &graphName,
- const AbstractMetaFunctionCList &cyclic,
- const AbstractMetaFunctionCList &involvedConversions)
-{
- QString result;
- QTextStream str(&result);
- str << "Cyclic dependency found on overloaddata for \"" << funcName
- << "\" method! The graph boy saved the graph at \"" << QDir::toNativeSeparators(graphName)
- << "\". Cyclic functions:";
- for (const auto &c : cyclic)
- str << ' ' << c->signature();
- if (const int count = involvedConversions.size()) {
- str << " Implicit conversions (" << count << "): ";
- for (int i = 0; i < count; ++i) {
- if (i)
- str << ", \"";
- str << involvedConversions.at(i)->signature() << '"';
- if (const AbstractMetaClass *c = involvedConversions.at(i)->implementingClass())
- str << '(' << c->name() << ')';
- }
- }
- return result;
+ return containerType.typeEntry()->qualifiedCppName() + u'<'
+ + types.join(u", "_s) + u" >"_s;
}
static inline int overloadNumber(const OverloadDataNodePtr &o)
@@ -179,6 +125,7 @@ using OverloadGraph = Graph<QString>;
void OverloadDataRootNode::sortNextOverloads(const ApiExtractorResult &api)
{
QHash<QString, OverloadDataList> typeToOverloads;
+ using Edge = std::pair<QString, QString>;
bool checkPyObject = false;
bool checkPySequence = false;
@@ -188,13 +135,13 @@ void OverloadDataRootNode::sortNextOverloads(const ApiExtractorResult &api)
// Primitive types that are not int, long, short,
// char and their respective unsigned counterparts.
- static const QStringList nonIntegerPrimitives{floatT(), doubleT(), boolT()};
+ static const QStringList nonIntegerPrimitives{floatT, doubleT, boolT};
// Signed integer primitive types.
- static const QStringList signedIntegerPrimitives{intT(), shortT(), longT(), longLongT()};
+ static const QStringList signedIntegerPrimitives{intT, shortT, longT, longLongT};
// sort the children overloads
- for (const auto &ov : qAsConst(m_children))
+ for (const auto &ov : std::as_const(m_children))
ov->sortNextOverloads(api);
if (m_children.size() <= 1 || sortByOverloadNumberModification(m_children))
@@ -205,8 +152,8 @@ void OverloadDataRootNode::sortNextOverloads(const ApiExtractorResult &api)
// with graph sorting using integers.
OverloadGraph graph;
- for (const auto &ov : qAsConst(m_children)) {
- const QString typeName = getTypeName(ov);
+ for (const auto &ov : std::as_const(m_children)) {
+ const QString typeName = getTypeName(ov->modifiedArgType());
auto it = typeToOverloads.find(typeName);
if (it == typeToOverloads.end()) {
typeToOverloads.insert(typeName, {ov});
@@ -215,15 +162,15 @@ void OverloadDataRootNode::sortNextOverloads(const ApiExtractorResult &api)
it.value().append(ov);
}
- if (!checkPyObject && typeName == cPyObjectT())
+ if (!checkPyObject && typeName == cPyObjectT)
checkPyObject = true;
- else if (!checkPySequence && typeName == cPySequenceT())
+ else if (!checkPySequence && typeName == cPySequenceT)
checkPySequence = true;
- else if (!checkPyBuffer && typeName == cPyBufferT())
+ else if (!checkPyBuffer && typeName == cPyBufferT)
checkPyBuffer = true;
- else if (!checkQVariant && typeName == qVariantT())
+ else if (!checkQVariant && typeName == qVariantT)
checkQVariant = true;
- else if (!checkQString && typeName == qStringT())
+ else if (!checkQString && typeName == qStringT)
checkQString = true;
for (const auto &instantiation : ov->argType().instantiations()) {
@@ -236,7 +183,7 @@ void OverloadDataRootNode::sortNextOverloads(const ApiExtractorResult &api)
// as Point must come before the PointF instantiation, or else list<Point> will never
// be called. In the case of primitive types, list<double> must come before list<int>.
if (instantiation.isPrimitive() && (signedIntegerPrimitives.contains(instantiation.name()))) {
- for (const QString &primitive : qAsConst(nonIntegerPrimitives))
+ for (const QString &primitive : std::as_const(nonIntegerPrimitives))
graph.addNode(getImplicitConversionTypeName(ov->argType(), instantiation, nullptr, primitive));
} else {
const auto &funcs = api.implicitConversions(instantiation);
@@ -249,9 +196,9 @@ void OverloadDataRootNode::sortNextOverloads(const ApiExtractorResult &api)
// Create the graph of type dependencies based on implicit conversions.
// All C++ primitive types, add any forgotten type AT THE END OF THIS LIST!
- static const QStringList primitiveTypes{intT(), unsignedIntT(), longT(), unsignedLongT(),
- shortT(), unsignedShortT(), boolT(), unsignedCharT(), charT(), floatT(),
- doubleT(), constCharPtrT()};
+ static const QStringList primitiveTypes{intT, unsignedIntT, longT, unsignedLongT,
+ shortT, unsignedShortT, boolT, unsignedCharT, charT, floatT,
+ doubleT, constCharPtrT};
QStringList foundPrimitiveTypeIds;
for (const auto &p : primitiveTypes) {
@@ -260,15 +207,15 @@ void OverloadDataRootNode::sortNextOverloads(const ApiExtractorResult &api)
}
if (checkPySequence && checkPyObject)
- graph.addEdge(cPySequenceT(), cPyObjectT());
+ graph.addEdge(cPySequenceT, cPyObjectT);
QStringList classesWithIntegerImplicitConversion;
AbstractMetaFunctionCList involvedConversions;
- for (const auto &ov : qAsConst(m_children)) {
+ for (const auto &ov : std::as_const(m_children)) {
const AbstractMetaType &targetType = ov->argType();
- const QString targetTypeEntryName = getTypeName(ov);
+ const QString targetTypeEntryName = getTypeName(ov->modifiedArgType());
// Process implicit conversions
const auto &functions = api.implicitConversions(targetType);
@@ -279,7 +226,7 @@ void OverloadDataRootNode::sortNextOverloads(const ApiExtractorResult &api)
else
convertibleType = getTypeName(function->arguments().constFirst().type());
- if (convertibleType == intT() || convertibleType == unsignedIntT())
+ if (convertibleType == intT || convertibleType == unsignedIntT)
classesWithIntegerImplicitConversion << targetTypeEntryName;
if (!graph.hasNode(convertibleType))
@@ -294,10 +241,12 @@ void OverloadDataRootNode::sortNextOverloads(const ApiExtractorResult &api)
// Process inheritance relationships
if (targetType.isValue() || targetType.isObject()) {
- auto metaClass = AbstractMetaClass::findClass(api.classes(),
- targetType.typeEntry());
- const AbstractMetaClassList &ancestors = metaClass->allTypeSystemAncestors();
- for (const AbstractMetaClass *ancestor : ancestors) {
+ const auto te = targetType.typeEntry();
+ auto metaClass = AbstractMetaClass::findClass(api.classes(), te);
+ if (!metaClass)
+ throw Exception(msgArgumentClassNotFound(m_overloads.constFirst(), te));
+ const auto &ancestors = metaClass->allTypeSystemAncestors();
+ for (const auto &ancestor : ancestors) {
QString ancestorTypeName = ancestor->typeEntry()->name();
if (!graph.hasNode(ancestorTypeName))
continue;
@@ -314,7 +263,7 @@ void OverloadDataRootNode::sortNextOverloads(const ApiExtractorResult &api)
graph.addEdge(convertible, targetTypeEntryName);
if (instantiation.isPrimitive() && (signedIntegerPrimitives.contains(instantiation.name()))) {
- for (const QString &primitive : qAsConst(nonIntegerPrimitives)) {
+ for (const QString &primitive : std::as_const(nonIntegerPrimitives)) {
QString convertibleTypeName =
getImplicitConversionTypeName(ov->argType(), instantiation, nullptr, primitive);
// Avoid cyclic dependency.
@@ -339,28 +288,28 @@ void OverloadDataRootNode::sortNextOverloads(const ApiExtractorResult &api)
if ((checkPySequence || checkPyObject || checkPyBuffer)
- && !targetTypeEntryName.contains(cPyObjectT())
- && !targetTypeEntryName.contains(cPyBufferT())
- && !targetTypeEntryName.contains(cPySequenceT())) {
+ && !targetTypeEntryName.contains(cPyObjectT)
+ && !targetTypeEntryName.contains(cPyBufferT)
+ && !targetTypeEntryName.contains(cPySequenceT)) {
if (checkPySequence) {
// PySequence will be checked after all more specific types, but before PyObject.
- graph.addEdge(targetTypeEntryName, cPySequenceT());
+ graph.addEdge(targetTypeEntryName, cPySequenceT);
} else if (checkPyBuffer) {
// PySequence will be checked after all more specific types, but before PyObject.
- graph.addEdge(targetTypeEntryName, cPyBufferT());
+ graph.addEdge(targetTypeEntryName, cPyBufferT);
} else {
// Add dependency on PyObject, so its check is the last one (too generic).
- graph.addEdge(targetTypeEntryName, cPyObjectT());
+ graph.addEdge(targetTypeEntryName, cPyObjectT);
}
- } else if (checkQVariant && targetTypeEntryName != qVariantT()) {
- if (!graph.containsEdge(qVariantT(), targetTypeEntryName)) // Avoid cyclic dependency.
- graph.addEdge(targetTypeEntryName, qVariantT());
+ } else if (checkQVariant && targetTypeEntryName != qVariantT) {
+ if (!graph.containsEdge(qVariantT, targetTypeEntryName)) // Avoid cyclic dependency.
+ graph.addEdge(targetTypeEntryName, qVariantT);
} else if (checkQString && ov->argType().isPointer()
- && targetTypeEntryName != qStringT()
- && targetTypeEntryName != qByteArrayT()
- && (!checkPyObject || targetTypeEntryName != cPyObjectT())) {
- if (!graph.containsEdge(qStringT(), targetTypeEntryName)) // Avoid cyclic dependency.
- graph.addEdge(targetTypeEntryName, qStringT());
+ && targetTypeEntryName != qStringT
+ && targetTypeEntryName != qByteArrayT
+ && (!checkPyObject || targetTypeEntryName != cPyObjectT)) {
+ if (!graph.containsEdge(qStringT, targetTypeEntryName)) // Avoid cyclic dependency.
+ graph.addEdge(targetTypeEntryName, qStringT);
}
if (targetType.isEnum()) {
@@ -371,25 +320,36 @@ void OverloadDataRootNode::sortNextOverloads(const ApiExtractorResult &api)
}
// QByteArray args need to be checked after QString args
- if (graph.hasNode(qStringT()) && graph.hasNode(qByteArrayT()))
- graph.addEdge(qStringT(), qByteArrayT());
+ if (graph.hasNode(qStringT) && graph.hasNode(qByteArrayT))
+ graph.addEdge(qStringT, qByteArrayT);
- for (const auto &ov : qAsConst(m_children)) {
+ static const Edge rangeOrder[] =
+ {{doubleT, floatT},
+ {longLongT, longT}, {longLongT, intT}, {intT, shortT},
+ {unsignedLongLongT, unsignedLongT}, {unsignedLongLongT, unsignedT},
+ {unsignedLongLongT, unsignedIntT}, {unsignedT, unsignedShortT}
+ };
+ for (const auto &r : rangeOrder) {
+ if (graph.hasNode(r.first) && graph.hasNode(r.second))
+ graph.addEdge(r.first, r.second);
+ }
+
+ for (const auto &ov : std::as_const(m_children)) {
const AbstractMetaType &targetType = ov->argType();
if (!targetType.isEnum())
continue;
QString targetTypeEntryName = getTypeName(targetType);
// Enum values must precede types implicitly convertible from "int" or "unsigned int".
- for (const QString &implicitFromInt : qAsConst(classesWithIntegerImplicitConversion))
+ for (const QString &implicitFromInt : std::as_const(classesWithIntegerImplicitConversion))
graph.addEdge(targetTypeEntryName, implicitFromInt);
}
// Special case for double(int i) (not tracked by m_generator->implicitConversions
- for (const QString &signedIntegerName : qAsConst(signedIntegerPrimitives)) {
+ for (const QString &signedIntegerName : std::as_const(signedIntegerPrimitives)) {
if (graph.hasNode(signedIntegerName)) {
- for (const QString &nonIntegerName : qAsConst(nonIntegerPrimitives)) {
+ for (const QString &nonIntegerName : std::as_const(nonIntegerPrimitives)) {
if (graph.hasNode(nonIntegerName))
graph.addEdge(nonIntegerName, signedIntegerName);
}
@@ -401,10 +361,10 @@ void OverloadDataRootNode::sortNextOverloads(const ApiExtractorResult &api)
if (!unmappedResult.isValid()) {
QString funcName = referenceFunction()->name();
if (auto owner = referenceFunction()->ownerClass())
- funcName.prepend(owner->name() + QLatin1Char('.'));
+ funcName.prepend(owner->name() + u'.');
// Dump overload graph
- QString graphName = QDir::tempPath() + QLatin1Char('/') + funcName + QLatin1String(".dot");
+ QString graphName = QDir::tempPath() + u'/' + funcName + u".dot"_s;
graph.dumpDot(graphName, [] (const QString &n) { return n; });
AbstractMetaFunctionCList cyclic;
for (const auto &typeName : unmappedResult.cyclic) {
@@ -432,9 +392,9 @@ static std::pair<int, int> getMinMaxArgs(const AbstractMetaFunctionCPtr &func)
int defaultValueIndex = -1;
const auto &arguments = func->arguments();
int argIndex = 0;
- for (qsizetype i = 0, size = arguments.size(); i < size; ++i) {
- if (!func->argumentRemoved(int(i + 1))) {
- if (defaultValueIndex < 0 && arguments.at(i).hasDefaultValueExpression())
+ for (const auto &arg : arguments) {
+ if (!arg.isModifiedRemoved()) {
+ if (defaultValueIndex < 0 && arg.hasDefaultValueExpression())
defaultValueIndex = argIndex;
++argIndex;
}
@@ -479,9 +439,8 @@ OverloadData::OverloadData(const AbstractMetaFunctionCList &overloads,
OverloadDataRootNode *currentOverloadData = this;
const AbstractMetaArgumentList &arguments = func->arguments();
for (const AbstractMetaArgument &arg : arguments) {
- if (func->argumentRemoved(arg.argumentIndex() + 1))
- continue;
- currentOverloadData = currentOverloadData->addOverloadDataNode(func, arg);
+ if (!arg.isModifiedRemoved())
+ currentOverloadData = currentOverloadData->addOverloadDataNode(func, arg);
}
}
@@ -492,9 +451,10 @@ OverloadData::OverloadData(const AbstractMetaFunctionCList &overloads,
OverloadDataNode::OverloadDataNode(const AbstractMetaFunctionCPtr &func,
OverloadDataRootNode *parent,
- const AbstractMetaType &argType, int argPos,
+ const AbstractMetaArgument &argument,
+ int argPos,
const QString argTypeReplaced) :
- m_argType(argType),
+ m_argument(argument),
m_argTypeReplaced(argTypeReplaced),
m_parent(parent),
m_argPos(argPos)
@@ -511,44 +471,37 @@ void OverloadDataNode::addOverload(const AbstractMetaFunctionCPtr &func)
OverloadDataNode *OverloadDataRootNode::addOverloadDataNode(const AbstractMetaFunctionCPtr &func,
const AbstractMetaArgument &arg)
{
- const AbstractMetaType &argType = arg.type();
OverloadDataNodePtr overloadData;
if (!func->isOperatorOverload()) {
- for (const auto &tmp : qAsConst(m_children)) {
+ for (const auto &tmp : std::as_const(m_children)) {
// TODO: 'const char *', 'char *' and 'char' will have the same TypeEntry?
// If an argument have a type replacement, then we should create a new overloaddata
// for it, unless the next argument also have a identical type replacement.
- QString replacedArg = func->typeReplaced(tmp->argPos() + 1);
- bool argsReplaced = !replacedArg.isEmpty() || tmp->hasArgumentTypeReplace();
- if ((!argsReplaced && typesAreEqual(tmp->argType(), argType))
- || (argsReplaced && replacedArg == tmp->argumentTypeReplaced())) {
+ if (typesAreEqual(tmp->modifiedArgType(), arg.modifiedType())) {
tmp->addOverload(func);
overloadData = tmp;
}
}
}
- if (overloadData.isNull()) {
- QString typeReplaced = func->typeReplaced(arg.argumentIndex() + 1);
+ if (!overloadData) {
const int argpos = argPos() + 1;
- overloadData.reset(new OverloadDataNode(func, this, argType, argpos,
- typeReplaced));
+ overloadData.reset(new OverloadDataNode(func, this, arg, argpos));
m_children.append(overloadData);
}
- return overloadData.data();
+ return overloadData.get();
}
bool OverloadData::hasNonVoidReturnType() const
{
for (const auto &func : m_overloads) {
- const QString typeReplaced = func->typeReplaced(0);
- if (typeReplaced.isEmpty()) {
- if (!func->argumentRemoved(0) && !func->type().isVoid())
+ if (func->isTypeModified()) {
+ if (func->modifiedTypeName() != u"void")
return true;
} else {
- if (typeReplaced != u"void")
+ if (!func->argumentRemoved(0) && !func->type().isVoid())
return true;
}
}
@@ -641,7 +594,7 @@ AbstractMetaFunctionCPtr OverloadDataRootNode::referenceFunction() const
return m_overloads.constFirst();
}
-const AbstractMetaArgument *OverloadDataNode::argument(const AbstractMetaFunctionCPtr &func) const
+const AbstractMetaArgument *OverloadDataNode::overloadArgument(const AbstractMetaFunctionCPtr &func) const
{
if (isRoot() || !m_overloads.contains(func))
return nullptr;
@@ -649,7 +602,7 @@ const AbstractMetaArgument *OverloadDataNode::argument(const AbstractMetaFunctio
int argPos = 0;
int removed = 0;
for (int i = 0; argPos <= m_argPos; i++) {
- if (func->argumentRemoved(i + 1))
+ if (func->arguments().at(i).isModifiedRemoved())
removed++;
else
argPos++;
@@ -661,7 +614,7 @@ const AbstractMetaArgument *OverloadDataNode::argument(const AbstractMetaFunctio
bool OverloadDataRootNode::nextArgumentHasDefaultValue() const
{
for (const auto &overloadData : m_children) {
- if (!overloadData->getFunctionWithDefaultValue().isNull())
+ if (overloadData->getFunctionWithDefaultValue())
return true;
}
return false;
@@ -669,20 +622,20 @@ bool OverloadDataRootNode::nextArgumentHasDefaultValue() const
static const OverloadDataRootNode *_findNextArgWithDefault(const OverloadDataRootNode *overloadData)
{
- if (!overloadData->getFunctionWithDefaultValue().isNull())
+ if (overloadData->getFunctionWithDefaultValue())
return overloadData;
const OverloadDataRootNode *result = nullptr;
const OverloadDataList &data = overloadData->children();
for (const auto &odata : data) {
- const auto *tmp = _findNextArgWithDefault(odata.data());
+ const auto *tmp = _findNextArgWithDefault(odata.get());
if (!result || (tmp && result->argPos() > tmp->argPos()))
result = tmp;
}
return result;
}
-const OverloadDataRootNode *OverloadDataRootNode::findNextArgWithDefault()
+const OverloadDataRootNode *OverloadDataRootNode::findNextArgWithDefault() const
{
return _findNextArgWithDefault(this);
}
@@ -698,11 +651,11 @@ bool OverloadDataRootNode::isFinalOccurrence(const AbstractMetaFunctionCPtr &fun
AbstractMetaFunctionCPtr OverloadDataRootNode::getFunctionWithDefaultValue() const
{
- const int argpos = argPos();
+ const qsizetype argpos = argPos();
for (const auto &func : m_overloads) {
- int removedArgs = 0;
- for (int i = 0; i <= argpos + removedArgs; i++) {
- if (func->argumentRemoved(i + 1))
+ qsizetype removedArgs = 0;
+ for (qsizetype i = 0; i <= argpos + removedArgs; i++) {
+ if (func->arguments().at(i).isModifiedRemoved())
removedArgs++;
}
if (func->arguments().at(argpos + removedArgs).hasDefaultValueExpression())
@@ -718,8 +671,8 @@ QList<int> OverloadData::invalidArgumentLengths() const
for (const auto &func : m_overloads) {
const AbstractMetaArgumentList args = func->arguments();
int offset = 0;
- for (int i = 0; i < args.size(); ++i) {
- if (func->argumentRemoved(i+1)) {
+ for (qsizetype i = 0; i < args.size(); ++i) {
+ if (func->arguments().at(i).isModifiedRemoved()) {
offset++;
} else {
if (args.at(i).hasDefaultValueExpression())
@@ -740,38 +693,22 @@ QList<int> OverloadData::invalidArgumentLengths() const
int OverloadData::numberOfRemovedArguments(const AbstractMetaFunctionCPtr &func)
{
- int removed = 0;
- for (int i = 0, size = int(func->arguments().size()); i < size; ++i) {
- if (func->argumentRemoved(i + 1))
- ++removed;
- }
- return removed;
+ return std::count_if(func->arguments().cbegin(), func->arguments().cend(),
+ [](const AbstractMetaArgument &a) { return a.isModifiedRemoved(); });
}
int OverloadData::numberOfRemovedArguments(const AbstractMetaFunctionCPtr &func, int finalArgPos)
{
Q_ASSERT(finalArgPos >= 0);
int removed = 0;
- const int size = func->arguments().size();
- for (int i = 0; i < qMin(size, finalArgPos + removed); ++i) {
- if (func->argumentRemoved(i + 1))
+ const auto size = func->arguments().size();
+ for (qsizetype i = 0; i < qMin(size, qsizetype(finalArgPos + removed)); ++i) {
+ if (func->arguments().at(i).isModifiedRemoved())
++removed;
}
return removed;
}
-bool OverloadData::isSingleArgument(const AbstractMetaFunctionCList &overloads)
-{
- bool singleArgument = true;
- for (const auto &func : overloads) {
- if (func->arguments().size() - numberOfRemovedArguments(func) != 1) {
- singleArgument = false;
- break;
- }
- }
- return singleArgument;
-}
-
void OverloadData::dumpGraph(const QString &filename) const
{
QFile file(filename);
@@ -796,9 +733,9 @@ bool OverloadData::showGraph() const
static inline QString toHtml(QString s)
{
- s.replace(QLatin1Char('<'), QLatin1String("&lt;"));
- s.replace(QLatin1Char('>'), QLatin1String("&gt;"));
- s.replace(QLatin1Char('&'), QLatin1String("&amp;"));
+ s.replace(u'<', u"&lt;"_s);
+ s.replace(u'>', u"&gt;"_s);
+ s.replace(u'&', u"&amp;"_s);
return s;
}
@@ -839,11 +776,11 @@ void OverloadDataRootNode::dumpRootGraph(QTextStream &s, int minArgs, int maxArg
// Shows type changes for all function signatures
for (const auto &func : m_overloads) {
- if (func->typeReplaced(0).isEmpty())
+ if (!func->isTypeModified())
continue;
s << "<tr><td bgcolor=\"gray\" align=\"right\">f" << functionNumber(func);
s << "-type</td><td bgcolor=\"gray\" align=\"left\">";
- s << toHtml(func->typeReplaced(0)) << "</td></tr>";
+ s << toHtml(func->modifiedTypeName()) << "</td></tr>";
}
// Minimum and maximum number of arguments
@@ -877,7 +814,7 @@ void OverloadDataRootNode::dumpRootGraph(QTextStream &s, int minArgs, int maxArg
void OverloadDataNode::dumpNodeGraph(QTextStream &s) const
{
- QString argId = QLatin1String("arg_") + QString::number(quintptr(this));
+ QString argId = u"arg_"_s + QString::number(quintptr(this));
s << argId << ";\n";
s << " \"" << argId << "\" [shape=\"plaintext\" style=\"filled,bold\" margin=\"0\" fontname=\"freemono\" fillcolor=\"white\" penwidth=1 ";
@@ -888,10 +825,10 @@ void OverloadDataNode::dumpNodeGraph(QTextStream &s) const
s << "<font color=\"white\" point-size=\"11\">arg #" << argPos() << "</font></td></tr>";
// Argument type information
- QString type = hasArgumentTypeReplace() ? argumentTypeReplaced() : argType().cppSignature();
+ const QString type = modifiedArgType().cppSignature();
s << "<tr><td bgcolor=\"gray\" align=\"right\">type</td><td bgcolor=\"gray\" align=\"left\">";
s << toHtml(type) << "</td></tr>";
- if (hasArgumentTypeReplace()) {
+ if (isTypeModified()) {
s << "<tr><td bgcolor=\"gray\" align=\"right\">orig. type</td><td bgcolor=\"gray\" align=\"left\">";
s << toHtml(argType().cppSignature()) << "</td></tr>";
}
@@ -908,7 +845,7 @@ void OverloadDataNode::dumpNodeGraph(QTextStream &s) const
// Show default values (original and modified) for various functions
for (const auto &func : m_overloads) {
- const AbstractMetaArgument *arg = argument(func);
+ const AbstractMetaArgument *arg = overloadArgument(func);
if (!arg)
continue;
const int n = root->functionNumber(func);
@@ -969,9 +906,7 @@ bool OverloadData::hasArgumentWithDefaultValue(const AbstractMetaFunctionCPtr &f
{
const AbstractMetaArgumentList &arguments = func->arguments();
for (const AbstractMetaArgument &arg : arguments) {
- if (func->argumentRemoved(arg.argumentIndex() + 1))
- continue;
- if (arg.hasDefaultValueExpression())
+ if (!arg.isModifiedRemoved() && arg.hasDefaultValueExpression())
return true;
}
return false;
@@ -983,7 +918,7 @@ AbstractMetaArgumentList OverloadData::getArgumentsWithDefaultValues(const Abstr
const AbstractMetaArgumentList &arguments = func->arguments();
for (const AbstractMetaArgument &arg : arguments) {
if (!arg.hasDefaultValueExpression()
- || func->argumentRemoved(arg.argumentIndex() + 1))
+ || arg.isModifiedRemoved())
continue;
args << arg;
}
@@ -1010,7 +945,7 @@ void OverloadDataRootNode::formatOverloads(QDebug &d) const
if (count < 2)
return;
d << "=(";
- for (int i = 0; i < count; ++i) {
+ for (qsizetype i = 0; i < count; ++i) {
if (i)
d << '\n';
d << m_overloads.at(i)->signature();
@@ -1024,7 +959,7 @@ void OverloadDataRootNode::formatNextOverloadData(QDebug &d) const
d << ", next[" << count << ']';
if (d.verbosity() >= 3) {
d << "=(";
- for (int i = 0; i < count; ++i) {
+ for (qsizetype i = 0; i < count; ++i) {
if (i)
d << '\n';
m_children.at(i)->formatDebug(d);
@@ -1044,9 +979,12 @@ void OverloadDataNode::formatDebug(QDebug &d) const
{
d << "OverloadDataNode(";
formatReferenceFunction(d);
- d << ", argType=" << m_argType << ", argPos=" << m_argPos;
- if (!m_argTypeReplaced.isEmpty())
- d << ", argTypeReplaced=\"" << m_argTypeReplaced << '"';
+ d << ", argPos=" << m_argPos;
+ if (m_argument.argumentIndex() != m_argPos)
+ d << ", argIndex=" << m_argument.argumentIndex();
+ d << ", argType=\"" << m_argument.type().cppSignature() << '"';
+ if (isTypeModified())
+ d << ", modifiedArgType=\"" << modifiedArgType().cppSignature() << '"';
formatOverloads(d);
formatNextOverloadData(d);
d << ')';
diff --git a/sources/shiboken6/generator/shiboken/overloaddata.h b/sources/shiboken6/generator/shiboken/overloaddata.h
index 0271fd3d0..875a5a8b5 100644
--- a/sources/shiboken6/generator/shiboken/overloaddata.h
+++ b/sources/shiboken6/generator/shiboken/overloaddata.h
@@ -1,45 +1,22 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef OVERLOADDATA_H
#define OVERLOADDATA_H
#include <apiextractorresult.h>
+#include <abstractmetaargument.h>
#include <QtCore/QBitArray>
#include <QtCore/QList>
-#include <QtCore/QSharedPointer>
+
+#include <memory>
QT_FORWARD_DECLARE_CLASS(QDebug)
QT_FORWARD_DECLARE_CLASS(QTextStream)
class OverloadDataNode;
-using OverloadDataNodePtr = QSharedPointer<OverloadDataNode>;
+using OverloadDataNodePtr = std::shared_ptr<OverloadDataNode>;
using OverloadDataList = QList<OverloadDataNodePtr>;
/// The root node of OverloadData. It contains all functions
@@ -69,7 +46,7 @@ public:
AbstractMetaFunctionCPtr getFunctionWithDefaultValue() const;
/// Returns the nearest occurrence, including this instance, of an argument with a default value.
- const OverloadDataRootNode *findNextArgWithDefault();
+ const OverloadDataRootNode *findNextArgWithDefault() const;
bool isFinalOccurrence(const AbstractMetaFunctionCPtr &func) const;
int functionNumber(const AbstractMetaFunctionCPtr &func) const;
@@ -104,7 +81,7 @@ class OverloadDataNode : public OverloadDataRootNode
public:
explicit OverloadDataNode(const AbstractMetaFunctionCPtr &func,
OverloadDataRootNode *parent,
- const AbstractMetaType &argType, int argPos,
+ const AbstractMetaArgument &arg, int argPos,
const QString argTypeReplaced = {});
void addOverload(const AbstractMetaFunctionCPtr &func);
@@ -112,23 +89,25 @@ public:
const OverloadDataRootNode *parent() const override;
void dumpNodeGraph(QTextStream &s) const;
- const AbstractMetaType &argType() const { return m_argType; }
+ const AbstractMetaArgument &argument() const
+ { return m_argument; }
+ const AbstractMetaType &argType() const { return m_argument.type(); }
+ const AbstractMetaType &modifiedArgType() const { return m_argument.modifiedType(); }
- bool hasArgumentTypeReplace() const { return !m_argTypeReplaced.isEmpty(); }
- const QString &argumentTypeReplaced() const { return m_argTypeReplaced; }
+ bool isTypeModified() const { return m_argument.isTypeModified(); }
- const AbstractMetaArgument *argument(const AbstractMetaFunctionCPtr &func) const;
+ const AbstractMetaArgument *overloadArgument(const AbstractMetaFunctionCPtr &func) const;
#ifndef QT_NO_DEBUG_STREAM
void formatDebug(QDebug &d) const override;
#endif
private:
- AbstractMetaType m_argType;
+ AbstractMetaArgument m_argument;
QString m_argTypeReplaced;
OverloadDataRootNode *m_parent = nullptr;
- int m_argPos = -1;
+ int m_argPos = -1; // Position excluding modified/removed arguments.
};
class OverloadData : public OverloadDataRootNode
@@ -174,8 +153,6 @@ public:
static int numberOfRemovedArguments(const AbstractMetaFunctionCPtr &func);
static int numberOfRemovedArguments(const AbstractMetaFunctionCPtr &func, int finalArgPos);
- /// Returns true if all overloads have no more than one argument.
- static bool isSingleArgument(const AbstractMetaFunctionCList &overloads);
void dumpGraph(const QString &filename) const;
QString dumpGraph() const;
diff --git a/sources/shiboken6/generator/shiboken/pytypenames.h b/sources/shiboken6/generator/shiboken/pytypenames.h
index caeb6f671..6c7658ff6 100644
--- a/sources/shiboken6/generator/shiboken/pytypenames.h
+++ b/sources/shiboken6/generator/shiboken/pytypenames.h
@@ -1,55 +1,29 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef PYTYPENAMES_H
#define PYTYPENAMES_H
#include <QtCore/QString>
-static inline QString pyBoolT() { return QStringLiteral("PyBool"); }
-static inline QString pyFloatT() { return QStringLiteral("PyFloat"); }
-static inline QString pyIntT() { return QStringLiteral("PyLong"); }
-static inline QString pyLongT() { return QStringLiteral("PyLong"); }
-static inline QString pyObjectT() { return QStringLiteral("object"); }
-static inline QString pyStrT() { return QStringLiteral("str"); }
+constexpr auto pyBoolT = QLatin1StringView ("PyBool");
+constexpr auto pyFloatT = QLatin1StringView ("PyFloat");
+constexpr auto pyLongT = QLatin1StringView ("PyLong");
+constexpr auto pyObjectT = QLatin1StringView ("object");
+constexpr auto pyStrT = QLatin1StringView ("str");
// PYSIDE-1499: A custom type determined by existence of an `__fspath__` attribute.
-static inline QString pyPathLikeT() { return QStringLiteral("PyPathLike"); }
+constexpr auto pyPathLikeT = QLatin1StringView ("PyPathLike");
-static inline QString cPyBufferT() { return QStringLiteral("PyBuffer"); }
-static inline QString cPyListT() { return QStringLiteral("PyList"); }
-static inline QString cPyObjectT() { return QStringLiteral("PyObject"); }
-static inline QString cPySequenceT() { return QStringLiteral("PySequence"); }
-static inline QString cPyTypeObjectT() { return QStringLiteral("PyTypeObject"); }
+constexpr auto cPyBufferT = QLatin1StringView ("PyBuffer");
+constexpr auto cPyListT = QLatin1StringView ("PyList");
+constexpr auto cPyObjectT = QLatin1StringView ("PyObject");
+constexpr auto cPySequenceT = QLatin1StringView ("PySequence");
+constexpr auto cPyTypeObjectT = QLatin1StringView ("PyTypeObject");
// numpy
-static inline QString cPyArrayObjectT() { return QStringLiteral("PyArrayObject"); }
+constexpr auto cPyArrayObjectT = QLatin1StringView ("PyArrayObject");
-static inline QString sbkCharT() { return QStringLiteral("SbkChar"); }
+constexpr auto sbkCharT = QLatin1StringView ("SbkChar");
#endif // PYTYPENAMES_H
diff --git a/sources/shiboken6/generator/shiboken/shibokengenerator.cpp b/sources/shiboken6/generator/shiboken/shibokengenerator.cpp
index 20ae7d76e..a1417e5d9 100644
--- a/sources/shiboken6/generator/shiboken/shibokengenerator.cpp
+++ b/sources/shiboken6/generator/shiboken/shibokengenerator.cpp
@@ -1,34 +1,16 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "shibokengenerator.h"
+#include "generatorstrings.h"
+#include "generatorargument.h"
+#include "defaultvalue.h"
+#include "generatorcontext.h"
#include "apiextractorresult.h"
+#include "codesnip.h"
+#include "customconversion.h"
#include "ctypenames.h"
+#include <abstractmetabuilder.h>
#include <abstractmetaenum.h>
#include <abstractmetafield.h>
#include <abstractmetafunction.h>
@@ -39,93 +21,96 @@
#include <messages.h>
#include <modifications.h>
#include "overloaddata.h"
+#include <optionsparser.h>
#include "propertyspec.h"
#include "pytypenames.h"
#include <reporthandler.h>
#include <textstream.h>
#include <typedatabase.h>
-#include <abstractmetabuilder.h>
+#include <containertypeentry.h>
+#include <customtypenentry.h>
+#include <enumtypeentry.h>
+#include <flagstypeentry.h>
+#include <namespacetypeentry.h>
+#include <primitivetypeentry.h>
+#include <pythontypeentry.h>
+#include <smartpointertypeentry.h>
+#include <valuetypeentry.h>
+
#include <iostream>
+#include "qtcompat.h"
+
#include <QtCore/QDir>
#include <QtCore/QDebug>
#include <QtCore/QRegularExpression>
+
+#include <algorithm>
#include <limits>
#include <memory>
+#include <utility>
-static const char AVOID_PROTECTED_HACK[] = "avoid-protected-hack";
-static const char PARENT_CTOR_HEURISTIC[] = "enable-parent-ctor-heuristic";
-static const char RETURN_VALUE_HEURISTIC[] = "enable-return-value-heuristic";
-static const char ENABLE_PYSIDE_EXTENSIONS[] = "enable-pyside-extensions";
-static const char DISABLE_VERBOSE_ERROR_MESSAGES[] = "disable-verbose-error-messages";
-static const char USE_ISNULL_AS_NB_NONZERO[] = "use-isnull-as-nb_nonzero";
-static const char USE_OPERATOR_BOOL_AS_NB_NONZERO[] = "use-operator-bool-as-nb_nonzero";
-static const char WRAPPER_DIAGNOSTICS[] = "wrapper-diagnostics";
-
-const char *CPP_ARG = "cppArg";
-const char *CPP_ARG_REMOVED = "removed_cppArg";
-const char *CPP_RETURN_VAR = "cppResult";
-const char *CPP_SELF_VAR = "cppSelf";
-const char *NULL_PTR = "nullptr";
-const char *PYTHON_ARG = "pyArg";
-const char *PYTHON_ARGS = "pyArgs";
-const char *PYTHON_OVERRIDE_VAR = "pyOverride";
-const char *PYTHON_RETURN_VAR = "pyResult";
-const char *PYTHON_TO_CPP_VAR = "pythonToCpp";
-const char *SMART_POINTER_GETTER = "kSmartPointerGetter";
-
-const char *CONV_RULE_OUT_VAR_SUFFIX = "_out";
-const char *BEGIN_ALLOW_THREADS =
- "PyThreadState *_save = PyEval_SaveThread(); // Py_BEGIN_ALLOW_THREADS";
-const char *END_ALLOW_THREADS = "PyEval_RestoreThread(_save); // Py_END_ALLOW_THREADS";
-
-// Return a prefix to fully qualify value, eg:
-// resolveScopePrefix("Class::NestedClass::Enum::Value1", "Enum::Value1")
-// -> "Class::NestedClass::")
-static QString resolveScopePrefix(const QStringList &scopeList, const QString &value)
-{
- QString name;
- for (int i = scopeList.size() - 1 ; i >= 0; --i) {
- const QString prefix = scopeList.at(i) + QLatin1String("::");
- if (value.startsWith(prefix))
- name.clear();
- else
- name.prepend(prefix);
- }
- return name;
-}
+using namespace Qt::StringLiterals;
+
+static constexpr auto PARENT_CTOR_HEURISTIC = "enable-parent-ctor-heuristic"_L1;
+static constexpr auto RETURN_VALUE_HEURISTIC = "enable-return-value-heuristic"_L1;
+static constexpr auto DISABLE_VERBOSE_ERROR_MESSAGES = "disable-verbose-error-messages"_L1;
+static constexpr auto USE_ISNULL_AS_NB_BOOL = "use-isnull-as-nb-bool"_L1;
+// FIXME PYSIDE 7: Remove USE_ISNULL_AS_NB_NONZERO/USE_OPERATOR_BOOL_AS_NB_NONZERO
+static constexpr auto USE_ISNULL_AS_NB_NONZERO = "use-isnull-as-nb_nonzero"_L1;
+static constexpr auto USE_OPERATOR_BOOL_AS_NB_BOOL = "use-operator-bool-as-nb-bool"_L1;
+static constexpr auto USE_OPERATOR_BOOL_AS_NB_NONZERO = "use-operator-bool-as-nb-nonzero"_L1;
+static constexpr auto WRAPPER_DIAGNOSTICS = "wrapper-diagnostics"_L1;
+static constexpr auto NO_IMPLICIT_CONVERSIONS = "no-implicit-conversions"_L1;
+static constexpr auto LEAN_HEADERS = "lean-headers"_L1;
-static inline QStringList splitClassScope(const AbstractMetaClass *scope)
+QString CPP_ARG_N(int i)
{
- return scope->qualifiedCppName().split(QLatin1String("::"), Qt::SkipEmptyParts);
+ return CPP_ARG + QString::number(i);
}
-static QString resolveScopePrefix(const AbstractMetaClass *scope, const QString &value)
+constexpr auto CPP_ARG_REMOVED_PREFIX = "removed_cppArg"_L1;
+
+QString CPP_ARG_REMOVED(int i)
{
- return scope
- ? resolveScopePrefix(splitClassScope(scope), value)
- : QString();
+ return CPP_ARG_REMOVED_PREFIX + QString::number(i);
}
-static QString resolveScopePrefix(const AbstractMetaEnum &metaEnum,
- const QString &value)
+const char *const METHOD_DEF_SENTINEL = "{nullptr, nullptr, 0, nullptr} // Sentinel\n";
+const char *const PYTHON_TO_CPPCONVERSION_STRUCT = "Shiboken::Conversions::PythonToCppConversion";
+
+const char *const openTargetExternC = R"(
+// Target ---------------------------------------------------------
+
+extern "C" {
+)";
+const char *const closeExternC = "} // extern \"C\"\n\n";
+const char *const richCompareComment =
+ "// PYSIDE-74: By default, we redirect to object's tp_richcompare (which is `==`, `!=`).\n";
+
+struct ShibokenGeneratorOptions
{
- QStringList parts;
- if (const AbstractMetaClass *scope = metaEnum.enclosingClass())
- parts.append(splitClassScope(scope));
- // Fully qualify the value which is required for C++ 11 enum classes.
- if (!metaEnum.isAnonymous())
- parts.append(metaEnum.name());
- return resolveScopePrefix(parts, value);
-}
+ bool useCtorHeuristic = false;
+ bool userReturnValueHeuristic = false;
+ bool verboseErrorMessagesDisabled = false;
+ bool useIsNullAsNbBool = false;
+ // FIXME PYSIDE 7 Flip m_leanHeaders default or remove?
+ bool leanHeaders = false;
+ bool useOperatorBoolAsNbBool = false;
+ // FIXME PYSIDE 7 Flip generateImplicitConversions default or remove?
+ bool generateImplicitConversions = true;
+ bool wrapperDiagnostics = false;
+};
struct GeneratorClassInfoCacheEntry
{
ShibokenGenerator::FunctionGroups functionGroups;
+ QList<AbstractMetaFunctionCList> numberProtocolOperators;
+ BoolCastFunctionOptional boolCastFunctionO;
bool needsGetattroFunction = false;
};
-using GeneratorClassInfoCache = QHash<const AbstractMetaClass *, GeneratorClassInfoCacheEntry>;
+using GeneratorClassInfoCache = QHash<AbstractMetaClassCPtr, GeneratorClassInfoCacheEntry>;
Q_GLOBAL_STATIC(GeneratorClassInfoCache, generatorClassInfoCache)
@@ -141,14 +126,18 @@ const ShibokenGenerator::TypeSystemConverterRegExps &
ShibokenGenerator::typeSystemConvRegExps()
{
static const TypeSystemConverterRegExps result = {
- QRegularExpression(QLatin1String(CHECKTYPE_REGEX)),
- QRegularExpression(QLatin1String(ISCONVERTIBLE_REGEX)),
- QRegularExpression(QLatin1String(CONVERTTOCPP_REGEX)),
- QRegularExpression(QLatin1String(CONVERTTOPYTHON_REGEX))
+ QRegularExpression(QLatin1StringView(CHECKTYPE_REGEX)),
+ QRegularExpression(QLatin1StringView(ISCONVERTIBLE_REGEX)),
+ QRegularExpression(QLatin1StringView(CONVERTTOCPP_REGEX)),
+ QRegularExpression(QLatin1StringView(CONVERTTOPYTHON_REGEX))
};
return result;
}
+// Options are static to avoid duplicated handling since ShibokenGenerator
+// is instantiated for HeaderGenerator and CppGenerator.
+ShibokenGeneratorOptions ShibokenGenerator::m_options;
+
ShibokenGenerator::ShibokenGenerator() = default;
ShibokenGenerator::~ShibokenGenerator() = default;
@@ -157,64 +146,65 @@ ShibokenGenerator::~ShibokenGenerator() = default;
static const QHash<QString, QString> &primitiveTypesCorrespondences()
{
static const QHash<QString, QString> result = {
- {QLatin1String("bool"), pyBoolT()},
- {QLatin1String("char"), sbkCharT()},
- {QLatin1String("signed char"), sbkCharT()},
- {QLatin1String("unsigned char"), sbkCharT()},
- {intT(), pyIntT()},
- {QLatin1String("signed int"), pyIntT()},
- {QLatin1String("uint"), pyIntT()},
- {QLatin1String("unsigned int"), pyIntT()},
- {shortT(), pyIntT()},
- {QLatin1String("ushort"), pyIntT()},
- {QLatin1String("signed short"), pyIntT()},
- {QLatin1String("signed short int"), pyIntT()},
- {unsignedShortT(), pyIntT()},
- {QLatin1String("unsigned short int"), pyIntT()},
- {longT(), pyIntT()},
- {doubleT(), pyFloatT()},
- {floatT(), pyFloatT()},
- {QLatin1String("unsigned long"), pyLongT()},
- {QLatin1String("signed long"), pyLongT()},
- {QLatin1String("ulong"), pyLongT()},
- {QLatin1String("unsigned long int"), pyLongT()},
- {QLatin1String("long long"), pyLongT()},
- {QLatin1String("__int64"), pyLongT()},
- {QLatin1String("unsigned long long"), pyLongT()},
- {QLatin1String("unsigned __int64"), pyLongT()},
- {QLatin1String("size_t"), pyLongT()}
+ {u"bool"_s, pyBoolT},
+ {u"char"_s, sbkCharT},
+ {u"signed char"_s, sbkCharT},
+ {u"unsigned char"_s, sbkCharT},
+ {intT, pyLongT},
+ {u"signed int"_s, pyLongT},
+ {u"uint"_s, pyLongT},
+ {u"unsigned int"_s, pyLongT},
+ {shortT, pyLongT},
+ {u"ushort"_s, pyLongT},
+ {u"signed short"_s, pyLongT},
+ {u"signed short int"_s, pyLongT},
+ {unsignedShortT, pyLongT},
+ {u"unsigned short int"_s, pyLongT},
+ {longT, pyLongT},
+ {doubleT, pyFloatT},
+ {floatT, pyFloatT},
+ {u"unsigned long"_s, pyLongT},
+ {u"signed long"_s, pyLongT},
+ {u"ulong"_s, pyLongT},
+ {u"unsigned long int"_s, pyLongT},
+ {u"long long"_s, pyLongT},
+ {u"__int64"_s, pyLongT},
+ {u"unsigned long long"_s, pyLongT},
+ {u"unsigned __int64"_s, pyLongT},
+ {u"size_t"_s, pyLongT}
};
return result;
}
-// Format units for C++->Python->C++ conversion
-const QHash<QString, QString> &ShibokenGenerator::formatUnits()
-{
- static const QHash<QString, QString> result = {
- {QLatin1String("char"), QLatin1String("b")},
- {QLatin1String("unsigned char"), QLatin1String("B")},
- {intT(), QLatin1String("i")},
- {QLatin1String("unsigned int"), QLatin1String("I")},
- {shortT(), QLatin1String("h")},
- {unsignedShortT(), QLatin1String("H")},
- {longT(), QLatin1String("l")},
- {unsignedLongLongT(), QLatin1String("k")},
- {longLongT(), QLatin1String("L")},
- {QLatin1String("__int64"), QLatin1String("L")},
- {unsignedLongLongT(), QLatin1String("K")},
- {QLatin1String("unsigned __int64"), QLatin1String("K")},
- {doubleT(), QLatin1String("d")},
- {floatT(), QLatin1String("f")},
+const QHash<QString, QChar> &ShibokenGenerator::formatUnits()
+{
+ static const QHash<QString, QChar> result = {
+ {u"char"_s, u'b'},
+ {u"unsigned char"_s, u'B'},
+ {intT, u'i'},
+ {u"unsigned int"_s, u'I'},
+ {shortT, u'h'},
+ {unsignedShortT, u'H'},
+ {longT, u'l'},
+ {unsignedLongLongT, u'k'},
+ {longLongT, u'L'},
+ {u"__int64"_s, u'L'},
+ {unsignedLongLongT, u'K'},
+ {u"unsigned __int64"_s, u'K'},
+ {doubleT, u'd'},
+ {floatT, u'f'},
};
return result;
}
QString ShibokenGenerator::translateTypeForWrapperMethod(const AbstractMetaType &cType,
- const AbstractMetaClass *context,
+ const AbstractMetaClassCPtr &context,
Options options) const
{
- if (cType.isArray())
- return translateTypeForWrapperMethod(*cType.arrayElementType(), context, options) + QLatin1String("[]");
+ if (cType.isArray()) {
+ return translateTypeForWrapperMethod(*cType.arrayElementType(), context, options)
+ + u"[]"_s;
+ }
if (avoidProtectedHack() && cType.isEnum()) {
auto metaEnum = api().findAbstractMetaEnum(cType.typeEntry());
@@ -225,7 +215,7 @@ QString ShibokenGenerator::translateTypeForWrapperMethod(const AbstractMetaType
return translateType(cType, context, options);
}
-bool ShibokenGenerator::shouldGenerateCppWrapper(const AbstractMetaClass *metaClass) const
+bool ShibokenGenerator::shouldGenerateCppWrapper(const AbstractMetaClassCPtr &metaClass)
{
const auto wrapper = metaClass->cppWrapper();
return wrapper.testFlag(AbstractMetaClass::CppVirtualMethodWrapper)
@@ -233,37 +223,158 @@ bool ShibokenGenerator::shouldGenerateCppWrapper(const AbstractMetaClass *metaCl
&& wrapper.testFlag(AbstractMetaClass::CppProtectedHackWrapper));
}
-bool ShibokenGenerator::shouldWriteVirtualMethodNative(const AbstractMetaFunctionCPtr &func) const
+bool ShibokenGenerator::shouldGenerateMetaObjectFunctions(const AbstractMetaClassCPtr &metaClass)
+{
+ return usePySideExtensions()
+ && (!avoidProtectedHack() || !metaClass->hasPrivateDestructor())
+ && !metaClass->typeEntry()->typeFlags()
+ .testFlag(ComplexTypeEntry::DisableQtMetaObjectFunctions)
+ && isQObject(metaClass);
+}
+
+ShibokenGenerator::FunctionGeneration ShibokenGenerator::functionGeneration(
+ const AbstractMetaFunctionCPtr &func)
+{
+ FunctionGeneration result;
+
+ const auto functionType = func->functionType();
+ switch (functionType) {
+ case AbstractMetaFunction::ConversionOperator:
+ case AbstractMetaFunction::AssignmentOperatorFunction:
+ case AbstractMetaFunction::MoveAssignmentOperatorFunction:
+ case AbstractMetaFunction::DestructorFunction:
+ case AbstractMetaFunction::SignalFunction:
+ case AbstractMetaFunction::GetAttroFunction:
+ case AbstractMetaFunction::SetAttroFunction:
+ return result;
+ default:
+ if (func->isUserAdded() || func->usesRValueReferences() || !func->isWhiteListed())
+ return result;
+ break;
+ }
+
+ const bool notModifiedRemoved = !func->isModifiedRemoved();
+ const bool isPrivate = func->isPrivate() && !func->isVisibilityModifiedToPrivate();
+ switch (functionType) {
+ case AbstractMetaFunction::ConstructorFunction:
+ if (!isPrivate && notModifiedRemoved)
+ result.setFlag(FunctionGenerationFlag::WrapperConstructor);
+ return result;
+ case AbstractMetaFunction::CopyConstructorFunction:
+ if (!isPrivate && notModifiedRemoved)
+ result.setFlag(FunctionGenerationFlag::WrapperSpecialCopyConstructor);
+ return result;
+ case AbstractMetaFunction::NormalFunction:
+ case AbstractMetaFunction::SlotFunction:
+ if (avoidProtectedHack() && func->isProtected())
+ result.setFlag(FunctionGenerationFlag::ProtectedWrapper);
+ break;
+ default:
+ break;
+ }
+
+ // Check on virtuals (including operators).
+ const bool isAbstract = func->isAbstract();
+ if (!(isAbstract || func->isVirtual())
+ || func->cppAttributes().testFlag(FunctionAttribute::Final)
+ || func->isModifiedFinal()) {
+ return result;
+ }
+
+ // MetaObject virtuals only need to be declared; CppGenerator creates a
+ // special implementation.
+ if (functionType == AbstractMetaFunction::NormalFunction
+ && usePySideExtensions() && isQObject(func->ownerClass())) {
+ const QString &name = func->name();
+ if (name == u"metaObject"_s || name == u"qt_metacall") {
+ result.setFlag(FunctionGenerationFlag::QMetaObjectMethod);
+ return result;
+ }
+ }
+
+ // Pure virtual functions need a default implementation even if private.
+ if (isAbstract || (notModifiedRemoved && !isPrivate))
+ result.setFlag(FunctionGenerationFlag::VirtualMethod);
+
+ return result;
+}
+
+AbstractMetaFunctionCList ShibokenGenerator::implicitConversions(const TypeEntryCPtr &t) const
{
- // PYSIDE-803: Extracted this because it is used multiple times.
- const AbstractMetaClass *metaClass = func->ownerClass();
- return (!avoidProtectedHack() || !metaClass->hasPrivateDestructor())
- && ((func->isVirtual() || func->isAbstract())
- && !func->attributes().testFlag(AbstractMetaFunction::FinalCppMethod));
+ if (!generateImplicitConversions() || !t->isValue())
+ return {};
+ auto vte = std::static_pointer_cast<const ValueTypeEntry>(t);
+ auto customConversion = vte->customConversion();
+ if (customConversion && customConversion->replaceOriginalTargetToNativeConversions())
+ return {};
+
+ auto result = api().implicitConversions(t);
+ auto end = std::remove_if(result.begin(), result.end(),
+ [](const AbstractMetaFunctionCPtr &f) {
+ return f->isUserAdded();
+ });
+ result.erase(end, result.end());
+ return result;
}
-QString ShibokenGenerator::wrapperName(const AbstractMetaClass *metaClass) const
+QString ShibokenGenerator::wrapperName(const AbstractMetaClassCPtr &metaClass)
{
Q_ASSERT(shouldGenerateCppWrapper(metaClass));
QString result = metaClass->name();
if (metaClass->enclosingClass()) // is a inner class
- result.replace(QLatin1String("::"), QLatin1String("_"));
- return result + QLatin1String("Wrapper");
+ result.replace(u"::"_s, u"_"_s);
+ return result + u"Wrapper"_s;
}
-QString ShibokenGenerator::fullPythonClassName(const AbstractMetaClass *metaClass)
+QString ShibokenGenerator::fullPythonClassName(const AbstractMetaClassCPtr &metaClass)
{
QString fullClassName = metaClass->name();
- const AbstractMetaClass *enclosing = metaClass->enclosingClass();
+ auto enclosing = metaClass->enclosingClass();
while (enclosing) {
if (NamespaceTypeEntry::isVisibleScope(enclosing->typeEntry()))
- fullClassName.prepend(enclosing->name() + QLatin1Char('.'));
+ fullClassName.prepend(enclosing->name() + u'.');
enclosing = enclosing->enclosingClass();
}
- fullClassName.prepend(packageName() + QLatin1Char('.'));
+ fullClassName.prepend(metaClass->typeEntry()->targetLangPackage() + u'.');
return fullClassName;
}
+QString ShibokenGenerator::headerFileNameForContext(const GeneratorContext &context)
+{
+ return fileNameForContextHelper(context, u"_wrapper.h"_s);
+}
+
+// PYSIDE-500: When avoiding the protected hack, also include the inherited
+// wrapper classes of the *current* module, because without the protected hack,
+// we sometimes need to cast inherited wrappers. Inherited classes
+// of *other* modules are completely regenerated by the header generator
+// since the wrapper headers are not installed.
+
+IncludeGroup ShibokenGenerator::baseWrapperIncludes(const GeneratorContext &classContext) const
+{
+ IncludeGroup result{u"Wrappers"_s, {}};
+ if (!classContext.useWrapper() || !avoidProtectedHack()
+ || classContext.forSmartPointer()) {
+ return result;
+ }
+
+ const auto moduleEntry = TypeDatabase::instance()->defaultTypeSystemType();
+ const auto &baseClasses = allBaseClasses(classContext.metaClass());
+ for (const auto &base : baseClasses) {
+ const auto te = base->typeEntry();
+ if (te->codeGeneration() == TypeEntry::GenerateCode) { // current module
+ const auto context = contextForClass(base);
+ if (context.useWrapper()) {
+ const QString header = headerFileNameForContext(context);
+ const auto type = typeSystemTypeEntry(te) == moduleEntry
+ ? Include::LocalPath : Include::IncludePath;
+ result.append(Include(type, header));
+ }
+ }
+ }
+ return result;
+}
+
QString ShibokenGenerator::fullPythonFunctionName(const AbstractMetaFunctionCPtr &func, bool forceFunc)
{
QString funcName;
@@ -276,24 +387,29 @@ QString ShibokenGenerator::fullPythonFunctionName(const AbstractMetaFunctionCPtr
if (func->isConstructor()) {
funcName = fullClassName;
if (forceFunc)
- funcName.append(QLatin1String(".__init__"));
+ funcName.append(u".__init__"_s);
}
else {
- funcName.prepend(fullClassName + QLatin1Char('.'));
+ funcName.prepend(fullClassName + u'.');
}
}
else {
- funcName = packageName() + QLatin1Char('.') + func->name();
+ funcName = packageName() + u'.' + func->name();
}
return funcName;
}
+bool ShibokenGenerator::wrapperDiagnostics()
+{
+ return m_options.wrapperDiagnostics;
+}
+
QString ShibokenGenerator::protectedEnumSurrogateName(const AbstractMetaEnum &metaEnum)
{
QString result = metaEnum.fullName();
- result.replace(QLatin1Char('.'), QLatin1Char('_'));
- result.replace(QLatin1String("::"), QLatin1String("_"));
- return result + QLatin1String("_Surrogate");
+ result.replace(u'.', u'_');
+ result.replace(u"::"_s, u"_"_s);
+ return result + u"_Surrogate"_s;
}
QString ShibokenGenerator::cpythonFunctionName(const AbstractMetaFunctionCPtr &func)
@@ -305,16 +421,16 @@ QString ShibokenGenerator::cpythonFunctionName(const AbstractMetaFunctionCPtr &f
if (func->implementingClass()) {
result = cpythonBaseName(func->implementingClass()->typeEntry());
if (func->isConstructor()) {
- result += QLatin1String("_Init");
+ result += u"_Init"_s;
} else {
- result += QLatin1String("Func_");
+ result += u"Func_"_s;
if (func->isOperatorOverload())
result += ShibokenGenerator::pythonOperatorFunctionName(func);
else
result += func->name();
}
} else {
- result = QLatin1String("Sbk") + moduleName() + QLatin1String("Module_") + func->name();
+ result = u"Sbk"_s + moduleName() + u"Module_"_s + func->name();
}
return result;
@@ -323,37 +439,37 @@ QString ShibokenGenerator::cpythonFunctionName(const AbstractMetaFunctionCPtr &f
QString ShibokenGenerator::cpythonMethodDefinitionName(const AbstractMetaFunctionCPtr &func)
{
if (!func->ownerClass())
- return QString();
- return cpythonBaseName(func->ownerClass()->typeEntry()) + QLatin1String("Method_")
+ return {};
+ return cpythonBaseName(func->ownerClass()->typeEntry()) + u"Method_"_s
+ func->name();
}
-QString ShibokenGenerator::cpythonGettersSettersDefinitionName(const AbstractMetaClass *metaClass)
+QString ShibokenGenerator::cpythonGettersSettersDefinitionName(const AbstractMetaClassCPtr &metaClass)
{
- return cpythonBaseName(metaClass) + QLatin1String("_getsetlist");
+ return cpythonBaseName(metaClass) + u"_getsetlist"_s;
}
-QString ShibokenGenerator::cpythonSetattroFunctionName(const AbstractMetaClass *metaClass)
+QString ShibokenGenerator::cpythonSetattroFunctionName(const AbstractMetaClassCPtr &metaClass)
{
- return cpythonBaseName(metaClass) + QLatin1String("_setattro");
+ return cpythonBaseName(metaClass) + u"_setattro"_s;
}
-QString ShibokenGenerator::cpythonGetattroFunctionName(const AbstractMetaClass *metaClass)
+QString ShibokenGenerator::cpythonGetattroFunctionName(const AbstractMetaClassCPtr &metaClass)
{
- return cpythonBaseName(metaClass) + QLatin1String("_getattro");
+ return cpythonBaseName(metaClass) + u"_getattro"_s;
}
QString ShibokenGenerator::cpythonGetterFunctionName(const QString &name,
- const AbstractMetaClass *enclosingClass)
+ const AbstractMetaClassCPtr &enclosingClass)
{
- return cpythonBaseName(enclosingClass) + QStringLiteral("_get_") + name;
+ return cpythonBaseName(enclosingClass) + "_get_"_L1 + name;
}
QString ShibokenGenerator::cpythonSetterFunctionName(const QString &name,
- const AbstractMetaClass *enclosingClass)
+ const AbstractMetaClassCPtr &enclosingClass)
{
- return cpythonBaseName(enclosingClass) + QStringLiteral("_set_") + name;
+ return cpythonBaseName(enclosingClass) + "_set_"_L1 + name;
}
QString ShibokenGenerator::cpythonGetterFunctionName(const AbstractMetaField &metaField)
@@ -367,13 +483,13 @@ QString ShibokenGenerator::cpythonSetterFunctionName(const AbstractMetaField &me
}
QString ShibokenGenerator::cpythonGetterFunctionName(const QPropertySpec &property,
- const AbstractMetaClass *metaClass)
+ const AbstractMetaClassCPtr &metaClass)
{
return cpythonGetterFunctionName(property.name(), metaClass);
}
QString ShibokenGenerator::cpythonSetterFunctionName(const QPropertySpec &property,
- const AbstractMetaClass *metaClass)
+ const AbstractMetaClassCPtr &metaClass)
{
return cpythonSetterFunctionName(property.name(), metaClass);
}
@@ -381,159 +497,15 @@ QString ShibokenGenerator::cpythonSetterFunctionName(const QPropertySpec &proper
static QString cpythonEnumFlagsName(const QString &moduleName,
const QString &qualifiedCppName)
{
- QString result = QLatin1String("Sbk") + moduleName + QLatin1Char('_') + qualifiedCppName;
- result.replace(QLatin1String("::"), QLatin1String("_"));
+ QString result = u"Sbk"_s + moduleName + u'_' + qualifiedCppName;
+ result.replace(u"::"_s, u"_"_s);
return result;
}
-// Return the scope for fully qualifying the enumeration including trailing "::".
-static QString searchForEnumScope(const AbstractMetaClass *metaClass, const QString &value)
-{
- if (!metaClass)
- return QString();
- for (const AbstractMetaEnum &metaEnum : metaClass->enums()) {
- auto v = metaEnum.findEnumValue(value);
- if (v.has_value())
- return resolveScopePrefix(metaEnum, value);
- }
- // PYSIDE-331: We need to also search the base classes.
- QString ret = searchForEnumScope(metaClass->enclosingClass(), value);
- if (ret.isEmpty())
- ret = searchForEnumScope(metaClass->baseClass(), value);
- return ret;
-}
-
-// Handle QFlags<> for guessScopeForDefaultValue()
-QString ShibokenGenerator::guessScopeForDefaultFlagsValue(const AbstractMetaFunctionCPtr &func,
- const AbstractMetaArgument &arg,
- const QString &value) const
-{
- // Numeric values -> "Options(42)"
- static const QRegularExpression numberRegEx(QStringLiteral("^\\d+$")); // Numbers to flags
- Q_ASSERT(numberRegEx.isValid());
- if (numberRegEx.match(value).hasMatch()) {
- QString typeName = translateTypeForWrapperMethod(arg.type(), func->implementingClass());
- if (arg.type().isConstant())
- typeName.remove(0, sizeof("const ") / sizeof(char) - 1);
- switch (arg.type().referenceType()) {
- case NoReference:
- break;
- case LValueReference:
- typeName.chop(1);
- break;
- case RValueReference:
- typeName.chop(2);
- break;
- }
- return typeName + QLatin1Char('(') + value + QLatin1Char(')');
- }
-
- // "Options(Option1 | Option2)" -> "Options(Class::Enum::Option1 | Class::Enum::Option2)"
- static const QRegularExpression enumCombinationRegEx(QStringLiteral("^([A-Za-z_][\\w:]*)\\(([^,\\(\\)]*)\\)$")); // FlagName(EnumItem|EnumItem|...)
- Q_ASSERT(enumCombinationRegEx.isValid());
- const QRegularExpressionMatch match = enumCombinationRegEx.match(value);
- if (match.hasMatch()) {
- const QString expression = match.captured(2).trimmed();
- if (expression.isEmpty())
- return value;
- const QStringList enumItems = expression.split(QLatin1Char('|'));
- const QString scope = searchForEnumScope(func->implementingClass(),
- enumItems.constFirst().trimmed());
- if (scope.isEmpty())
- return value;
- QString result;
- QTextStream str(&result);
- str << match.captured(1) << '('; // Flag name
- for (int i = 0, size = enumItems.size(); i < size; ++i) {
- if (i)
- str << '|';
- str << scope << enumItems.at(i).trimmed();
- }
- str << ')';
- return result;
- }
- // A single flag "Option1" -> "Class::Enum::Option1"
- return searchForEnumScope(func->implementingClass(), value) + value;
-}
-
-/*
- * This function uses some heuristics to find out the scope for a given
- * argument default value since they must be fully qualified when used outside the class:
- * class A {
- * enum Enum { e1, e1 };
- * void foo(Enum e = e1);
- * }
- * should be qualified to:
- * A::Enum cppArg0 = A::Enum::e1;
- *
- * New situations may arise in the future and
- * this method should be updated, do it with care.
- */
-QString ShibokenGenerator::guessScopeForDefaultValue(const AbstractMetaFunctionCPtr &func,
- const AbstractMetaArgument &arg) const
-{
- QString value = arg.defaultValueExpression();
-
- if (value.isEmpty() || value == QLatin1String("{}")
- || arg.hasModifiedDefaultValueExpression()
- || arg.type().isPointer()) {
- return value;
- }
-
- static const QRegularExpression enumValueRegEx(QStringLiteral("^([A-Za-z_]\\w*)?$"));
- Q_ASSERT(enumValueRegEx.isValid());
- // Do not qualify macros by class name, eg QSGGeometry(..., int t = GL_UNSIGNED_SHORT);
- static const QRegularExpression macroRegEx(QStringLiteral("^[A-Z_][A-Z0-9_]*$"));
- Q_ASSERT(macroRegEx.isValid());
- if (arg.type().isPrimitive() && macroRegEx.match(value).hasMatch())
- return value;
-
- QString prefix;
- if (arg.type().isEnum()) {
- auto metaEnum = api().findAbstractMetaEnum(arg.type().typeEntry());
- if (metaEnum.has_value())
- prefix = resolveScopePrefix(metaEnum.value(), value);
- } else if (arg.type().isFlags()) {
- value = guessScopeForDefaultFlagsValue(func, arg, value);
- } else if (arg.type().typeEntry()->isValue()) {
- auto metaClass = AbstractMetaClass::findClass(api().classes(),
- arg.type().typeEntry());
- if (enumValueRegEx.match(value).hasMatch() && value != QLatin1String("NULL"))
- prefix = resolveScopePrefix(metaClass, value);
- } else if (arg.type().isPrimitive() && arg.type().name() == intT()) {
- if (enumValueRegEx.match(value).hasMatch() && func->implementingClass())
- prefix = resolveScopePrefix(func->implementingClass(), value);
- } else if (arg.type().isPrimitive()) {
- static const QRegularExpression unknowArgumentRegEx(QStringLiteral("^(?:[A-Za-z_][\\w:]*\\()?([A-Za-z_]\\w*)(?:\\))?$")); // [PrimitiveType(] DESIREDNAME [)]
- Q_ASSERT(unknowArgumentRegEx.isValid());
- const QRegularExpressionMatch match = unknowArgumentRegEx.match(value);
- if (match.hasMatch() && func->implementingClass()) {
- for (const AbstractMetaField &field : func->implementingClass()->fields()) {
- if (match.captured(1).trimmed() == field.name()) {
- QString fieldName = field.name();
- if (field.isStatic()) {
- prefix = resolveScopePrefix(func->implementingClass(), value);
- fieldName.prepend(prefix);
- prefix.clear();
- } else {
- fieldName.prepend(QLatin1String(CPP_SELF_VAR) + QLatin1String("->"));
- }
- value.replace(match.captured(1), fieldName);
- break;
- }
- }
- }
- }
-
- if (!prefix.isEmpty())
- value.prepend(prefix);
- return value;
-}
-
-QString ShibokenGenerator::cpythonEnumName(const EnumTypeEntry *enumEntry)
+QString ShibokenGenerator::cpythonEnumName(const EnumTypeEntryCPtr &enumEntry)
{
QString p = enumEntry->targetLangPackage();
- p.replace(QLatin1Char('.'), QLatin1Char('_'));
+ p.replace(u'.', u'_');
return cpythonEnumFlagsName(p, enumEntry->qualifiedCppName());
}
@@ -542,27 +514,25 @@ QString ShibokenGenerator::cpythonEnumName(const AbstractMetaEnum &metaEnum)
return cpythonEnumName(metaEnum.typeEntry());
}
-QString ShibokenGenerator::cpythonFlagsName(const FlagsTypeEntry *flagsEntry)
+QString ShibokenGenerator::cpythonFlagsName(const FlagsTypeEntryCPtr &flagsEntry)
{
QString p = flagsEntry->targetLangPackage();
- p.replace(QLatin1Char('.'), QLatin1Char('_'));
+ p.replace(u'.', u'_');
return cpythonEnumFlagsName(p, flagsEntry->originalName());
}
QString ShibokenGenerator::cpythonFlagsName(const AbstractMetaEnum *metaEnum)
{
- const FlagsTypeEntry *flags = metaEnum->typeEntry()->flags();
- if (!flags)
- return QString();
- return cpythonFlagsName(flags);
+ const auto flags = metaEnum->typeEntry()->flags();
+ return flags ? cpythonFlagsName(flags) : QString{};
}
-QString ShibokenGenerator::cpythonSpecialCastFunctionName(const AbstractMetaClass *metaClass)
+QString ShibokenGenerator::cpythonSpecialCastFunctionName(const AbstractMetaClassCPtr &metaClass)
{
- return cpythonBaseName(metaClass->typeEntry()) + QLatin1String("SpecialCastFunction");
+ return cpythonBaseName(metaClass->typeEntry()) + u"SpecialCastFunction"_s;
}
-QString ShibokenGenerator::cpythonWrapperCPtr(const AbstractMetaClass *metaClass,
+QString ShibokenGenerator::cpythonWrapperCPtr(const AbstractMetaClassCPtr &metaClass,
const QString &argName)
{
return cpythonWrapperCPtr(metaClass->typeEntry(), argName);
@@ -572,46 +542,47 @@ QString ShibokenGenerator::cpythonWrapperCPtr(const AbstractMetaType &metaType,
const QString &argName)
{
if (!metaType.isWrapperType())
- return QString();
- return QLatin1String("reinterpret_cast< ::") + metaType.cppSignature()
- + QLatin1String(" *>(Shiboken::Conversions::cppPointer(") + cpythonTypeNameExt(metaType)
- + QLatin1String(", reinterpret_cast<SbkObject *>(") + argName + QLatin1String(")))");
+ return {};
+ return u"reinterpret_cast< ::"_s + metaType.cppSignature()
+ + u" *>(Shiboken::Conversions::cppPointer("_s + cpythonTypeNameExt(metaType)
+ + u", reinterpret_cast<SbkObject *>("_s + argName + u")))"_s;
}
-QString ShibokenGenerator::cpythonWrapperCPtr(const TypeEntry *type,
+QString ShibokenGenerator::cpythonWrapperCPtr(const TypeEntryCPtr &type,
const QString &argName)
{
if (!type->isWrapperType())
return QString();
- return QLatin1String("reinterpret_cast< ::") + type->qualifiedCppName()
- + QLatin1String(" *>(Shiboken::Conversions::cppPointer(") + cpythonTypeNameExt(type)
- + QLatin1String(", reinterpret_cast<SbkObject *>(") + argName + QLatin1String(")))");
+ return u"reinterpret_cast< "_s + getFullTypeName(type)
+ + u" *>(Shiboken::Conversions::cppPointer("_s + cpythonTypeNameExt(type)
+ + u", reinterpret_cast<SbkObject *>("_s + argName + u")))"_s;
}
void ShibokenGenerator::writeToPythonConversion(TextStream & s, const AbstractMetaType &type,
- const AbstractMetaClass * /* context */,
+ const AbstractMetaClassCPtr & /* context */,
const QString &argumentName)
{
s << cpythonToPythonConversionFunction(type) << argumentName << ')';
}
-void ShibokenGenerator::writeToCppConversion(TextStream &s, const AbstractMetaClass *metaClass,
+void ShibokenGenerator::writeToCppConversion(TextStream &s,
+ const AbstractMetaClassCPtr &metaClass,
const QString &inArgName, const QString &outArgName)
{
s << cpythonToCppConversionFunction(metaClass) << inArgName << ", &" << outArgName << ')';
}
void ShibokenGenerator::writeToCppConversion(TextStream &s, const AbstractMetaType &type,
- const AbstractMetaClass *context, const QString &inArgName,
+ const QString &inArgName,
const QString &outArgName)
{
- s << cpythonToCppConversionFunction(type, context) << inArgName << ", &" << outArgName << ')';
+ s << cpythonToCppConversionFunction(type) << inArgName << ", &" << outArgName << ')';
}
bool ShibokenGenerator::shouldRejectNullPointerArgument(const AbstractMetaFunctionCPtr &func,
int argIndex)
{
- if (argIndex < 0 || argIndex >= func->arguments().count())
+ if (argIndex < 0 || argIndex >= func->arguments().size())
return false;
const AbstractMetaArgument &arg = func->arguments().at(argIndex);
@@ -622,7 +593,7 @@ bool ShibokenGenerator::shouldRejectNullPointerArgument(const AbstractMetaFuncti
// necessary because the type checking would handle that already.
if (!arg.type().isPointer())
return false;
- if (func->argumentRemoved(argIndex + 1))
+ if (arg.isModifiedRemoved())
return false;
for (const auto &funcMod : func->modifications()) {
for (const ArgumentModification &argMod : funcMod.argument_mods()) {
@@ -633,195 +604,152 @@ bool ShibokenGenerator::shouldRejectNullPointerArgument(const AbstractMetaFuncti
return false;
}
-QString ShibokenGenerator::getFormatUnitString(const AbstractMetaFunctionCPtr &func, bool incRef)
-{
- QString result;
- const char objType = (incRef ? 'O' : 'N');
- const AbstractMetaArgumentList &arguments = func->arguments();
- for (const AbstractMetaArgument &arg : arguments) {
- if (func->argumentRemoved(arg.argumentIndex() + 1))
- continue;
-
- const auto &type = arg.type();
- if (!func->typeReplaced(arg.argumentIndex() + 1).isEmpty()) {
- result += QLatin1Char(objType);
- } else if (arg.type().isObject()
- || type.isValue()
- || type.isValuePointer()
- || type.isNativePointer()
- || type.isEnum()
- || type.isFlags()
- || type.isContainer()
- || type.isSmartPointer()
- || type.referenceType() == LValueReference) {
- result += QLatin1Char(objType);
- } else if (type.isPrimitive()) {
- const auto *ptype =
- static_cast<const PrimitiveTypeEntry *>(type.typeEntry());
- if (ptype->basicReferencedTypeEntry())
- ptype = ptype->basicReferencedTypeEntry();
- const auto it = formatUnits().constFind(ptype->name());
- if (it != formatUnits().cend())
- result += it.value();
- else
- result += QLatin1Char(objType);
- } else if (type.isCString()) {
- result += QLatin1Char('z');
- } else {
- qCWarning(lcShiboken).noquote().nospace()
- << "Method: " << func->ownerClass()->qualifiedCppName()
- << "::" << func->signature() << " => Arg:"
- << arg.name() << "index: " << arg.argumentIndex()
- << " - cannot be handled properly. Use an inject-code to fix it!";
- result += QLatin1Char('?');
- }
- }
- return result;
-}
-
QString ShibokenGenerator::cpythonBaseName(const AbstractMetaType &type)
{
if (type.isCString())
- return QLatin1String("PyString");
+ return u"PyString"_s;
return cpythonBaseName(type.typeEntry());
}
-QString ShibokenGenerator::cpythonBaseName(const AbstractMetaClass *metaClass)
+QString ShibokenGenerator::cpythonBaseName(const AbstractMetaClassCPtr &metaClass)
{
return cpythonBaseName(metaClass->typeEntry());
}
-QString ShibokenGenerator::cpythonBaseName(const TypeEntry *type)
+QString ShibokenGenerator::containerCpythonBaseName(const ContainerTypeEntryCPtr &ctype)
+{
+ switch (ctype->containerKind()) {
+ case ContainerTypeEntry::SetContainer:
+ return u"PySet"_s;
+ case ContainerTypeEntry::MapContainer:
+ case ContainerTypeEntry::MultiMapContainer:
+ return u"PyDict"_s;
+ case ContainerTypeEntry::ListContainer:
+ case ContainerTypeEntry::PairContainer:
+ case ContainerTypeEntry::SpanContainer:
+ break;
+ default:
+ Q_ASSERT(false);
+ }
+ return cPySequenceT;
+}
+
+QString ShibokenGenerator::cpythonBaseName(const TypeEntryCPtr &type)
{
QString baseName;
if (type->isWrapperType() || type->isNamespace()) { // && type->referenceType() == NoReference) {
- baseName = QLatin1String("Sbk_") + type->name();
+ baseName = u"Sbk_"_s + type->name();
} else if (type->isPrimitive()) {
- const auto *ptype = static_cast<const PrimitiveTypeEntry *>(type);
- while (ptype->basicReferencedTypeEntry())
- ptype = ptype->basicReferencedTypeEntry();
- if (ptype->targetLangApiName() == ptype->name())
- baseName = pythonPrimitiveTypeName(ptype->name());
- else
- baseName = ptype->targetLangApiName();
+ const auto ptype = basicReferencedTypeEntry(type);
+ baseName = ptype->hasTargetLangApiType()
+ ? ptype->targetLangApiName() : pythonPrimitiveTypeName(ptype->name());
} else if (type->isEnum()) {
- baseName = cpythonEnumName(static_cast<const EnumTypeEntry *>(type));
+ baseName = cpythonEnumName(std::static_pointer_cast<const EnumTypeEntry>(type));
} else if (type->isFlags()) {
- baseName = cpythonFlagsName(static_cast<const FlagsTypeEntry *>(type));
+ baseName = cpythonFlagsName(std::static_pointer_cast<const FlagsTypeEntry>(type));
} else if (type->isContainer()) {
- const auto *ctype = static_cast<const ContainerTypeEntry *>(type);
- switch (ctype->containerKind()) {
- case ContainerTypeEntry::ListContainer:
- //baseName = "PyList";
- //break;
- case ContainerTypeEntry::PairContainer:
- //baseName = "PyTuple";
- baseName = cPySequenceT();
- break;
- case ContainerTypeEntry::SetContainer:
- baseName = QLatin1String("PySet");
- break;
- case ContainerTypeEntry::MapContainer:
- case ContainerTypeEntry::MultiMapContainer:
- baseName = QLatin1String("PyDict");
- break;
- default:
- Q_ASSERT(false);
- }
+ const auto ctype = std::static_pointer_cast<const ContainerTypeEntry>(type);
+ baseName = containerCpythonBaseName(ctype);
} else {
- baseName = cPyObjectT();
+ baseName = cPyObjectT;
}
- return baseName.replace(QLatin1String("::"), QLatin1String("_"));
+ return baseName.replace(u"::"_s, u"_"_s);
}
-QString ShibokenGenerator::cpythonTypeName(const AbstractMetaClass *metaClass)
+QString ShibokenGenerator::cpythonTypeName(const AbstractMetaClassCPtr &metaClass)
{
return cpythonTypeName(metaClass->typeEntry());
}
-QString ShibokenGenerator::cpythonTypeName(const TypeEntry *type)
-{
- return cpythonBaseName(type) + QLatin1String("_TypeF()");
-}
-
-QString ShibokenGenerator::cpythonTypeNameExt(const TypeEntry *type)
+QString ShibokenGenerator::cpythonTypeName(const TypeEntryCPtr &type)
{
- return cppApiVariableName(type->targetLangPackage()) + QLatin1Char('[')
- + getTypeIndexVariableName(type) + QLatin1Char(']');
+ return cpythonBaseName(type) + u"_TypeF()"_s;
}
QString ShibokenGenerator::converterObject(const AbstractMetaType &type)
{
if (type.isCString())
- return QLatin1String("Shiboken::Conversions::PrimitiveTypeConverter<const char *>()");
+ return u"Shiboken::Conversions::PrimitiveTypeConverter<const char *>()"_s;
if (type.isVoidPointer())
- return QLatin1String("Shiboken::Conversions::PrimitiveTypeConverter<void *>()");
+ return u"Shiboken::Conversions::PrimitiveTypeConverter<void *>()"_s;
const AbstractMetaTypeList nestedArrayTypes = type.nestedArrayTypes();
if (!nestedArrayTypes.isEmpty() && nestedArrayTypes.constLast().isCppPrimitive()) {
- return QStringLiteral("Shiboken::Conversions::ArrayTypeConverter<")
+ return "Shiboken::Conversions::ArrayTypeConverter<"_L1
+ nestedArrayTypes.constLast().minimalSignature()
- + QLatin1String(">(") + QString::number(nestedArrayTypes.size())
- + QLatin1Char(')');
+ + u">("_s + QString::number(nestedArrayTypes.size())
+ + u')';
}
auto typeEntry = type.typeEntry();
if (typeEntry->isContainer() || typeEntry->isSmartPointer()) {
return convertersVariableName(typeEntry->targetLangPackage())
- + QLatin1Char('[') + getTypeIndexVariableName(type) + QLatin1Char(']');
+ + u'[' + getTypeIndexVariableName(type) + u']';
}
return converterObject(typeEntry);
}
-QString ShibokenGenerator::converterObject(const TypeEntry *type)
+QString ShibokenGenerator::converterObject(const TypeEntryCPtr &type)
{
- if (type->isExtendedCppPrimitive())
+ if (isExtendedCppPrimitive(type))
return QString::fromLatin1("Shiboken::Conversions::PrimitiveTypeConverter<%1>()")
.arg(type->qualifiedCppName());
if (type->isWrapperType())
return QString::fromLatin1("PepType_SOTP(reinterpret_cast<PyTypeObject *>(%1))->converter")
.arg(cpythonTypeNameExt(type));
- if (type->isEnum())
+ if (type->isEnum() || type->isFlags())
return QString::fromLatin1("PepType_SETP(reinterpret_cast<SbkEnumType *>(%1))->converter")
.arg(cpythonTypeNameExt(type));
- if (type->isFlags())
- return QString::fromLatin1("PepType_PFTP(reinterpret_cast<PySideQFlagsType *>(%1))->converter")
- .arg(cpythonTypeNameExt(type));
if (type->isArray()) {
qDebug() << "Warning: no idea how to handle the Qt5 type " << type->qualifiedCppName();
- return QString();
+ return {};
}
/* the typedef'd primitive types case */
- const auto *pte = dynamic_cast<const PrimitiveTypeEntry *>(type);
+ auto pte = std::dynamic_pointer_cast<const PrimitiveTypeEntry>(type);
if (!pte) {
qDebug() << "Warning: the Qt5 primitive type is unknown" << type->qualifiedCppName();
- return QString();
+ return {};
}
- if (pte->basicReferencedTypeEntry())
- pte = pte->basicReferencedTypeEntry();
- if (pte->isPrimitive() && !pte->isCppPrimitive() && !pte->customConversion()) {
- return u"Shiboken::Conversions::PrimitiveTypeConverter<"_qs
- + pte->qualifiedCppName() + u">()"_qs;
+ pte = basicReferencedTypeEntry(pte);
+ if (pte->isPrimitive() && !isCppPrimitive(pte) && !pte->customConversion()) {
+ return u"Shiboken::Conversions::PrimitiveTypeConverter<"_s
+ + pte->qualifiedCppName() + u">()"_s;
}
return convertersVariableName(type->targetLangPackage())
- + QLatin1Char('[') + getTypeIndexVariableName(type) + QLatin1Char(']');
+ + u'[' + getTypeIndexVariableName(type) + u']';
}
-QString ShibokenGenerator::cpythonTypeNameExt(const AbstractMetaType &type)
+QString ShibokenGenerator::cpythonTypeNameExtSet(const TypeEntryCPtr &type)
{
- return cppApiVariableName(type.typeEntry()->targetLangPackage()) + QLatin1Char('[')
- + getTypeIndexVariableName(type) + QLatin1Char(']');
+ return cppApiVariableName(type->targetLangPackage()) + u'['
+ + getTypeIndexVariableName(type) + "].type"_L1;
}
-static inline QString unknownOperator() { return QStringLiteral("__UNKNOWN_OPERATOR__"); }
+QString ShibokenGenerator::cpythonTypeNameExtSet(const AbstractMetaType &type)
+{
+ return cppApiVariableName(type.typeEntry()->targetLangPackage()) + u'['
+ + getTypeIndexVariableName(type) + "].type"_L1;
+}
-QString ShibokenGenerator::fixedCppTypeName(const CustomConversion::TargetToNativeConversion *toNative)
+QString ShibokenGenerator::cpythonTypeNameExt(const TypeEntryCPtr &type)
{
- if (toNative->sourceType())
- return fixedCppTypeName(toNative->sourceType());
- return toNative->sourceTypeName();
+ return "Shiboken::Module::get("_L1 + cppApiVariableName(type->targetLangPackage())
+ + u'[' + getTypeIndexVariableName(type) + "])"_L1;
+}
+
+QString ShibokenGenerator::cpythonTypeNameExt(const AbstractMetaType &type)
+{
+ return u"Shiboken::Module::get("_s + cppApiVariableName(type.typeEntry()->targetLangPackage())
+ + u'[' + getTypeIndexVariableName(type) + "])"_L1;
+}
+
+QString ShibokenGenerator::fixedCppTypeName(const TargetToNativeConversion &toNative)
+{
+ if (toNative.sourceType())
+ return fixedCppTypeName(toNative.sourceType());
+ return toNative.sourceTypeName();
}
QString ShibokenGenerator::fixedCppTypeName(const AbstractMetaType &type)
{
@@ -830,22 +758,22 @@ QString ShibokenGenerator::fixedCppTypeName(const AbstractMetaType &type)
static QString _fixedCppTypeName(QString typeName)
{
- typeName.remove(QLatin1Char(' '));
- typeName.replace(QLatin1Char('.'), QLatin1Char('_'));
- typeName.replace(QLatin1Char(','), QLatin1Char('_'));
- typeName.replace(QLatin1Char('<'), QLatin1Char('_'));
- typeName.replace(QLatin1Char('>'), QLatin1Char('_'));
- typeName.replace(QLatin1String("::"), QLatin1String("_"));
- typeName.replace(QLatin1String("*"), QLatin1String("PTR"));
- typeName.replace(QLatin1String("&"), QLatin1String("REF"));
+ typeName.remove(u' ');
+ typeName.replace(u'.', u'_');
+ typeName.replace(u',', u'_');
+ typeName.replace(u'<', u'_');
+ typeName.replace(u'>', u'_');
+ typeName.replace(u"::"_s, u"_"_s);
+ typeName.replace(u"*"_s, u"PTR"_s);
+ typeName.replace(u"&"_s, u"REF"_s);
return typeName;
}
-QString ShibokenGenerator::fixedCppTypeName(const TypeEntry *type, QString typeName)
+QString ShibokenGenerator::fixedCppTypeName(const TypeEntryCPtr &type, QString typeName)
{
if (typeName.isEmpty())
typeName = type->qualifiedCppName();
if (!type->generateCode()) {
- typeName.prepend(QLatin1Char('_'));
+ typeName.prepend(u'_');
typeName.prepend(type->targetLangPackage());
}
return _fixedCppTypeName(typeName);
@@ -853,120 +781,66 @@ QString ShibokenGenerator::fixedCppTypeName(const TypeEntry *type, QString typeN
QString ShibokenGenerator::pythonPrimitiveTypeName(const QString &cppTypeName)
{
- QString rv = primitiveTypesCorrespondences().value(cppTypeName, QString());
- if (rv.isEmpty()) {
- // activate this when some primitive types are missing,
- // i.e. when shiboken itself fails to build.
- // In general, this is valid while just called by isNumeric()
- // used on Qt5, 2015-09-20
- if (false) {
- std::cerr << "primitive type not found: " << qPrintable(cppTypeName) << std::endl;
- abort();
- }
- }
- return rv;
-}
-
-QString ShibokenGenerator::pythonPrimitiveTypeName(const PrimitiveTypeEntry *type)
-{
- while (type->basicReferencedTypeEntry())
- type = type->basicReferencedTypeEntry();
- return pythonPrimitiveTypeName(type->name());
-}
-
-static const QHash<QString, QString> &pythonOperators()
-{
- static const QHash<QString, QString> result = {
- // call operator
- {QLatin1String("operator()"), QLatin1String("call")},
- // Arithmetic operators
- {QLatin1String("operator+"), QLatin1String("add")},
- {QLatin1String("operator-"), QLatin1String("sub")},
- {QLatin1String("operator*"), QLatin1String("mul")},
- {QLatin1String("operator/"), QLatin1String("div")},
- {QLatin1String("operator%"), QLatin1String("mod")},
- // Inplace arithmetic operators
- {QLatin1String("operator+="), QLatin1String("iadd")},
- {QLatin1String("operator-="), QLatin1String("isub")},
- {QLatin1String("operator++"), QLatin1String("iadd")},
- {QLatin1String("operator--"), QLatin1String("isub")},
- {QLatin1String("operator*="), QLatin1String("imul")},
- {QLatin1String("operator/="), QLatin1String("idiv")},
- {QLatin1String("operator%="), QLatin1String("imod")},
- // Bitwise operators
- {QLatin1String("operator&"), QLatin1String("and")},
- {QLatin1String("operator^"), QLatin1String("xor")},
- {QLatin1String("operator|"), QLatin1String("or")},
- {QLatin1String("operator<<"), QLatin1String("lshift")},
- {QLatin1String("operator>>"), QLatin1String("rshift")},
- {QLatin1String("operator~"), QLatin1String("invert")},
- // Inplace bitwise operators
- {QLatin1String("operator&="), QLatin1String("iand")},
- {QLatin1String("operator^="), QLatin1String("ixor")},
- {QLatin1String("operator|="), QLatin1String("ior")},
- {QLatin1String("operator<<="), QLatin1String("ilshift")},
- {QLatin1String("operator>>="), QLatin1String("irshift")},
- // Comparison operators
- {QLatin1String("operator=="), QLatin1String("eq")},
- {QLatin1String("operator!="), QLatin1String("ne")},
- {QLatin1String("operator<"), QLatin1String("lt")},
- {QLatin1String("operator>"), QLatin1String("gt")},
- {QLatin1String("operator<="), QLatin1String("le")},
- {QLatin1String("operator>="), QLatin1String("ge")},
- };
- return result;
-}
-
-QString ShibokenGenerator::pythonOperatorFunctionName(const QString &cppOpFuncName)
-{
- QString value = pythonOperators().value(cppOpFuncName);
- if (value.isEmpty())
- return unknownOperator();
- value.prepend(QLatin1String("__"));
- value.append(QLatin1String("__"));
- return value;
+ const auto &mapping = primitiveTypesCorrespondences();
+ const auto it = mapping.constFind(cppTypeName);
+ if (it == mapping.cend())
+ throw Exception(u"Primitive type not found: "_s + cppTypeName);
+ return it.value();
}
QString ShibokenGenerator::pythonOperatorFunctionName(const AbstractMetaFunctionCPtr &func)
{
- QString op = pythonOperatorFunctionName(func->originalName());
- if (op == unknownOperator())
- qCWarning(lcShiboken).noquote().nospace() << msgUnknownOperator(func.data());
+ QString op = Generator::pythonOperatorFunctionName(func->originalName());
+ if (op.isEmpty()) {
+ qCWarning(lcShiboken).noquote().nospace() << msgUnknownOperator(func.get());
+ return "__UNKNOWN_OPERATOR__"_L1;
+ }
if (func->arguments().isEmpty()) {
- if (op == QLatin1String("__sub__"))
- op = QLatin1String("__neg__");
- else if (op == QLatin1String("__add__"))
- op = QLatin1String("__pos__");
+ if (op == u"__sub__")
+ op = u"__neg__"_s;
+ else if (op == u"__add__")
+ op = u"__pos__"_s;
} else if (func->isStatic() && func->arguments().size() == 2) {
// If a operator overload function has 2 arguments and
// is static we assume that it is a reverse operator.
- op = op.insert(2, QLatin1Char('r'));
+ op = op.insert(2, u'r');
}
return op;
}
-QString ShibokenGenerator::pythonRichCompareOperatorId(const QString &cppOpFuncName)
-{
- return QLatin1String("Py_") + pythonOperators().value(cppOpFuncName).toUpper();
-}
-
-QString ShibokenGenerator::pythonRichCompareOperatorId(const AbstractMetaFunctionCPtr &func)
+bool ShibokenGenerator::isNumber(const QString &cpythonApiName)
{
- return pythonRichCompareOperatorId(func->originalName());
+ return cpythonApiName == pyFloatT || cpythonApiName == pyLongT
+ || cpythonApiName == pyBoolT;
}
-bool ShibokenGenerator::isNumber(const QString &cpythonApiName)
+static std::optional<TypeSystem::CPythonType>
+ targetLangApiCPythonType(const PrimitiveTypeEntryCPtr &t)
{
- return cpythonApiName == pyIntT()
- || cpythonApiName == pyFloatT() || cpythonApiName == pyLongT()
- || cpythonApiName == pyBoolT();
+ if (!t->hasTargetLangApiType())
+ return {};
+ const auto cte = t->targetLangApiType();
+ if (cte->type() != TypeEntry::PythonType)
+ return {};
+ return std::static_pointer_cast<const PythonTypeEntry>(cte)->cPythonType();
}
-bool ShibokenGenerator::isNumber(const TypeEntry *type)
+bool ShibokenGenerator::isNumber(const TypeEntryCPtr &type)
{
if (!type->isPrimitive())
return false;
- return isNumber(pythonPrimitiveTypeName(static_cast<const PrimitiveTypeEntry *>(type)));
+ const auto pte = basicReferencedTypeEntry(type);
+ const auto cPythonTypeOpt = targetLangApiCPythonType(pte);
+ // FIXME PYSIDE-1660: Return false here after making primitive types built-in?
+ if (!cPythonTypeOpt.has_value()) {
+ const auto &mapping = primitiveTypesCorrespondences();
+ const auto it = mapping.constFind(pte->name());
+ return it != mapping.cend() && isNumber(it.value());
+ }
+ const auto cPythonType = cPythonTypeOpt.value();
+ return cPythonType == TypeSystem::CPythonType::Bool
+ || cPythonType == TypeSystem::CPythonType::Float
+ || cPythonType == TypeSystem::CPythonType::Integer;
}
bool ShibokenGenerator::isNumber(const AbstractMetaType &type)
@@ -974,12 +848,19 @@ bool ShibokenGenerator::isNumber(const AbstractMetaType &type)
return isNumber(type.typeEntry());
}
-bool ShibokenGenerator::isPyInt(const TypeEntry *type)
+bool ShibokenGenerator::isPyInt(const TypeEntryCPtr &type)
{
if (!type->isPrimitive())
return false;
- return pythonPrimitiveTypeName(static_cast<const PrimitiveTypeEntry *>(type))
- == QLatin1String("PyLong");
+ const auto pte = basicReferencedTypeEntry(type);
+ const auto cPythonTypeOpt = targetLangApiCPythonType(pte);
+ // FIXME PYSIDE-1660: Return false here after making primitive types built-in?
+ if (!cPythonTypeOpt.has_value()) {
+ const auto &mapping = primitiveTypesCorrespondences();
+ const auto it = mapping.constFind(pte->name());
+ return it != mapping.cend() && it.value() == pyLongT;
+ }
+ return cPythonTypeOpt.value() == TypeSystem::CPythonType::Integer;
}
bool ShibokenGenerator::isPyInt(const AbstractMetaType &type)
@@ -989,48 +870,46 @@ bool ShibokenGenerator::isPyInt(const AbstractMetaType &type)
bool ShibokenGenerator::isNullPtr(const QString &value)
{
- return value == QLatin1String("0") || value == QLatin1String("nullptr")
- || value == QLatin1String("NULLPTR") || value == QLatin1String("{}");
+ return value == u"0" || value == u"nullptr"
+ || value == u"NULLPTR" || value == u"{}";
}
-QString ShibokenGenerator::cpythonCheckFunction(AbstractMetaType metaType) const
+QString ShibokenGenerator::cpythonCheckFunction(AbstractMetaType metaType)
{
- const auto *typeEntry = metaType.typeEntry();
+ const auto typeEntry = metaType.typeEntry();
if (typeEntry->isCustom()) {
- const auto *cte = static_cast<const CustomTypeEntry *>(typeEntry);
+ const auto cte = std::static_pointer_cast<const CustomTypeEntry>(typeEntry);
if (cte->hasCheckFunction())
return cte->checkFunction();
- auto customCheckResult = guessCPythonCheckFunction(typeEntry->name());
- if (!customCheckResult.checkFunction.isEmpty())
- return customCheckResult.checkFunction;
- if (customCheckResult.type.has_value())
- metaType = customCheckResult.type.value();
+ throw Exception(msgUnknownCheckFunction(typeEntry));
}
if (metaType.isExtendedCppPrimitive()) {
if (metaType.isCString())
- return QLatin1String("Shiboken::String::check");
+ return u"Shiboken::String::check"_s;
if (metaType.isVoidPointer())
- return QLatin1String("PyObject_Check");
+ return u"true"_s;
return cpythonCheckFunction(typeEntry);
}
if (typeEntry->isContainer()) {
- QString typeCheck = QLatin1String("Shiboken::Conversions::");
+ QString typeCheck = u"Shiboken::Conversions::"_s;
ContainerTypeEntry::ContainerKind type =
- static_cast<const ContainerTypeEntry *>(typeEntry)->containerKind();
+ std::static_pointer_cast<const ContainerTypeEntry>(typeEntry)->containerKind();
if (type == ContainerTypeEntry::ListContainer
|| type == ContainerTypeEntry::SetContainer) {
+ const QString containerType = type == ContainerTypeEntry::SetContainer
+ ? u"Iterable"_s : u"Sequence"_s;
const AbstractMetaType &type = metaType.instantiations().constFirst();
if (type.isPointerToWrapperType()) {
- typeCheck += u"checkSequenceTypes("_qs + cpythonTypeNameExt(type) + u", "_qs;
+ typeCheck += u"check"_s + containerType + u"Types("_s
+ + cpythonTypeNameExt(type) + u", "_s;
} else if (type.isWrapperType()) {
- typeCheck += QLatin1String("convertibleSequenceTypes(");
- typeCheck += cpythonTypeNameExt(type);
- typeCheck += QLatin1String(", ");
+ typeCheck += u"convertible"_s + containerType
+ + u"Types("_s + cpythonTypeNameExt(type) + u", "_s;
} else {
- typeCheck += u"convertibleSequenceTypes("_qs + converterObject(type)
- + u", "_qs;
+ typeCheck += u"convertible"_s + containerType
+ + u"Types("_s + converterObject(type) + u", "_s;
}
} else if (type == ContainerTypeEntry::MapContainer
|| type == ContainerTypeEntry::MultiMapContainer
@@ -1038,23 +917,25 @@ QString ShibokenGenerator::cpythonCheckFunction(AbstractMetaType metaType) const
QString pyType;
if (type == ContainerTypeEntry::PairContainer)
- pyType = u"Pair"_qs;
+ pyType = u"Pair"_s;
else if (type == ContainerTypeEntry::MultiMapContainer)
- pyType = u"MultiDict"_qs;
+ pyType = u"MultiDict"_s;
else
- pyType = u"Dict"_qs;
+ pyType = u"Dict"_s;
const AbstractMetaType &firstType = metaType.instantiations().constFirst();
const AbstractMetaType &secondType = metaType.instantiations().constLast();
if (firstType.isPointerToWrapperType() && secondType.isPointerToWrapperType()) {
- typeCheck += QString::fromLatin1("check%1Types(%2, %3, ")
- .arg(pyType, cpythonTypeNameExt(firstType), cpythonTypeNameExt(secondType));
+ QTextStream(&typeCheck) << "check" << pyType << "Types("
+ << cpythonTypeNameExt(firstType) << ", "
+ << cpythonTypeNameExt(secondType) << ", ";
} else {
- typeCheck += QString::fromLatin1("convertible%1Types(%2, %3, %4, %5, ")
- .arg(pyType, converterObject(firstType),
- firstType.isPointerToWrapperType() ? QLatin1String("true") : QLatin1String("false"),
- converterObject(secondType),
- secondType.isPointerToWrapperType() ? QLatin1String("true") : QLatin1String("false"));
+ QTextStream(&typeCheck) << "convertible" << pyType << "Types("
+ << converterObject(firstType) << ", "
+ << (firstType.isPointerToWrapperType() ? "true" : "false")
+ << ", " << converterObject(secondType) << ", "
+ << (secondType.isPointerToWrapperType() ? "true" :"false")
+ << ", ";
}
}
return typeCheck;
@@ -1062,231 +943,192 @@ QString ShibokenGenerator::cpythonCheckFunction(AbstractMetaType metaType) const
return cpythonCheckFunction(typeEntry);
}
-QString ShibokenGenerator::cpythonCheckFunction(const TypeEntry *type) const
+QString ShibokenGenerator::cpythonCheckFunction(TypeEntryCPtr type)
{
if (type->isCustom()) {
- const auto *cte = static_cast<const CustomTypeEntry *>(type);
+ const auto cte = std::static_pointer_cast<const CustomTypeEntry>(type);
if (cte->hasCheckFunction())
return cte->checkFunction();
- auto customCheckResult = guessCPythonCheckFunction(type->name());
- if (customCheckResult.type.has_value())
- return cpythonCheckFunction(customCheckResult.type.value());
- return customCheckResult.checkFunction;
+ throw Exception(msgUnknownCheckFunction(type));
}
if (type->isEnum() || type->isFlags() || type->isWrapperType())
- return u"SbkObject_TypeCheck("_qs + cpythonTypeNameExt(type) + u", "_qs;
- if (type->isExtendedCppPrimitive()) {
- return pythonPrimitiveTypeName(static_cast<const PrimitiveTypeEntry *>(type))
- + QLatin1String("_Check");
- }
- QString typeCheck;
- if (type->targetLangApiName() == type->name())
- typeCheck = cpythonIsConvertibleFunction(type);
- else if (type->targetLangApiName() == QLatin1String("PyUnicode"))
- typeCheck = QLatin1String("Shiboken::String::check");
- else
- typeCheck = type->targetLangApiName() + QLatin1String("_Check");
- return typeCheck;
-}
-
-ShibokenGenerator::CPythonCheckFunctionResult
- ShibokenGenerator::guessCPythonCheckFunction(const QString &type)
-{
- // PYSIDE-795: We abuse PySequence for iterables.
- // This part handles the overrides in the XML files.
- if (type == cPySequenceT())
- return {QLatin1String("Shiboken::String::checkIterable"), {}};
-
- if (type == cPyTypeObjectT())
- return {QLatin1String("PyType_Check"), {}};
-
- if (type == cPyBufferT())
- return {QLatin1String("Shiboken::Buffer::checkType"), {}};
+ return u"SbkObject_TypeCheck("_s + cpythonTypeNameExt(type) + u", "_s;
- if (type == pyStrT())
- return {QLatin1String("Shiboken::String::check"), {}};
+ if (type->isPrimitive())
+ type = basicReferencedTypeEntry(type);
- if (type == cPyArrayObjectT())
- return {QLatin1String("PyArray_Check"), {}};
-
- // PYSIDE-1499: We replace some strings by path objects.
- if (type == pyPathLikeT())
- return {QLatin1String("Shiboken::String::checkPath"), {}};
+ if (auto tla = type->targetLangApiType()) {
+ if (tla->hasCheckFunction())
+ return tla->checkFunction();
+ }
- CPythonCheckFunctionResult result;
- result.type = AbstractMetaType::fromString(type);
+ if (isExtendedCppPrimitive(type))
+ return pythonPrimitiveTypeName(type->name()) + u"_Check"_s;
- if (!result.type.has_value()) {
- result.checkFunction = type + QLatin1String("_Check");
- } else if (result.type->typeEntry()->isCustom()) {
- auto ct = static_cast<const CustomTypeEntry *>(result.type->typeEntry());
- result.checkFunction = ct->checkFunction();
- if (result.checkFunction.isEmpty())
- result.checkFunction = type + QLatin1String("_Check");
- }
- return result;
+ return cpythonIsConvertibleFunction(type);
}
-QString ShibokenGenerator::cpythonIsConvertibleFunction(const TypeEntry *type)
+QString ShibokenGenerator::cpythonIsConvertibleFunction(const TypeEntryCPtr &type)
{
if (type->isWrapperType()) {
- QString result = QLatin1String("Shiboken::Conversions::");
+ QString result = u"Shiboken::Conversions::"_s;
bool isValue = false;
if (type->isValue()) {
- const auto *cte = static_cast<const ComplexTypeEntry *>(type);
+ const auto cte = std::static_pointer_cast<const ComplexTypeEntry>(type);
isValue = !cte->isValueTypeWithCopyConstructorOnly();
}
- result += isValue
- ? QLatin1String("isPythonToCppValueConvertible")
- : QLatin1String("isPythonToCppPointerConvertible");
- result += QLatin1String("(")
- + cpythonTypeNameExt(type) + QLatin1String(", ");
+ result += isValue ? u"isPythonToCppValueConvertible"_s
+ : u"isPythonToCppPointerConvertible"_s;
+ result += u"("_s + cpythonTypeNameExt(type) + u", "_s;
return result;
}
return QString::fromLatin1("Shiboken::Conversions::isPythonToCppConvertible(%1, ")
.arg(converterObject(type));
}
-QString ShibokenGenerator::cpythonIsConvertibleFunction(AbstractMetaType metaType) const
+
+QString ShibokenGenerator::cpythonIsConvertibleFunction(const AbstractMetaType &metaType)
{
- if (metaType.typeEntry()->isCustom()) {
- const auto *cte = static_cast<const CustomTypeEntry *>(metaType.typeEntry());
+ const auto typeEntry = metaType.typeEntry();
+ if (typeEntry->isCustom()) {
+ const auto cte = std::static_pointer_cast<const CustomTypeEntry>(typeEntry);
if (cte->hasCheckFunction())
return cte->checkFunction();
- auto customCheckResult = guessCPythonCheckFunction(metaType.typeEntry()->name());
- if (!customCheckResult.checkFunction.isEmpty())
- return customCheckResult.checkFunction;
- if (customCheckResult.type.has_value())
- metaType = customCheckResult.type.value();
+ throw Exception(msgUnknownCheckFunction(typeEntry));
}
- QString result = QLatin1String("Shiboken::Conversions::");
+ QString result = u"Shiboken::Conversions::"_s;
+ if (metaType.generateOpaqueContainer()) {
+ result += u"pythonToCppReferenceConversion("_s
+ + converterObject(metaType) + u", "_s;
+ return result;
+ }
if (metaType.isWrapperType()) {
- if (metaType.isPointer() || metaType.isValueTypeWithCopyConstructorOnly())
- result += QLatin1String("isPythonToCppPointerConvertible");
- else if (metaType.referenceType() == LValueReference)
- result += QLatin1String("isPythonToCppReferenceConvertible");
- else
- result += QLatin1String("isPythonToCppValueConvertible");
- result += u'(' + cpythonTypeNameExt(metaType) + u", "_qs;
+ if (metaType.isPointer() || metaType.isValueTypeWithCopyConstructorOnly()) {
+ result += u"pythonToCppPointerConversion"_s;
+ } else if (metaType.referenceType() == LValueReference
+ || (metaType.referenceType() == RValueReference && typeEntry->isObject())) {
+ result += u"pythonToCppReferenceConversion"_s;
+ } else {
+ result += u"pythonToCppValueConversion"_s;
+ }
+ result += u'(' + cpythonTypeNameExt(metaType) + u", "_s;
return result;
}
- result += QLatin1String("isPythonToCppConvertible(") + converterObject(metaType);
+ result += u"pythonToCppConversion("_s + converterObject(metaType);
// Write out array sizes if known
const AbstractMetaTypeList nestedArrayTypes = metaType.nestedArrayTypes();
if (!nestedArrayTypes.isEmpty() && nestedArrayTypes.constLast().isCppPrimitive()) {
const int dim1 = metaType.arrayElementCount();
const int dim2 = nestedArrayTypes.constFirst().isArray()
? nestedArrayTypes.constFirst().arrayElementCount() : -1;
- result += QLatin1String(", ") + QString::number(dim1)
- + QLatin1String(", ") + QString::number(dim2);
+ result += u", "_s + QString::number(dim1)
+ + u", "_s + QString::number(dim2);
}
- result += QLatin1String(", ");
+ result += u", "_s;
return result;
}
-QString ShibokenGenerator::cpythonIsConvertibleFunction(const AbstractMetaArgument &metaArg) const
+QString ShibokenGenerator::cpythonIsConvertibleFunction(const AbstractMetaArgument &metaArg)
{
return cpythonIsConvertibleFunction(metaArg.type());
}
-QString ShibokenGenerator::cpythonToCppConversionFunction(const AbstractMetaClass *metaClass)
+QString ShibokenGenerator::cpythonToCppConversionFunction(const AbstractMetaClassCPtr &metaClass)
{
- return QLatin1String("Shiboken::Conversions::pythonToCppPointer(")
- + cpythonTypeNameExt(metaClass->typeEntry()) + QLatin1String(", ");
+ return u"Shiboken::Conversions::pythonToCppPointer("_s
+ + cpythonTypeNameExt(metaClass->typeEntry()) + u", "_s;
}
-QString ShibokenGenerator::cpythonToCppConversionFunction(const AbstractMetaType &type,
- const AbstractMetaClass * /* context */)
+QString ShibokenGenerator::cpythonToCppConversionFunction(const AbstractMetaType &type)
{
if (type.isWrapperType()) {
- return QLatin1String("Shiboken::Conversions::pythonToCpp")
- + (type.isPointer() ? QLatin1String("Pointer") : QLatin1String("Copy"))
- + u'(' + cpythonTypeNameExt(type) + QLatin1String(", ");
+ return u"Shiboken::Conversions::pythonToCpp"_s
+ + (type.isPointer() ? u"Pointer"_s : u"Copy"_s)
+ + u'(' + cpythonTypeNameExt(type) + u", "_s;
}
- return QStringLiteral("Shiboken::Conversions::pythonToCppCopy(%1, ")
- .arg(converterObject(type));
+ return "Shiboken::Conversions::pythonToCppCopy("_L1
+ + converterObject(type) + ", "_L1;
}
-QString ShibokenGenerator::cpythonToPythonConversionFunction(const AbstractMetaType &type,
- const AbstractMetaClass * /* context */)
+QString ShibokenGenerator::cpythonToPythonConversionFunction(const AbstractMetaType &type)
{
if (type.isWrapperType()) {
QString conversion;
if (type.referenceType() == LValueReference
&& !(type.isValue() && type.isConstant()) && !type.isPointer()) {
- conversion = QLatin1String("reference");
+ conversion = u"reference"_s;
} else if (type.isValue() || type.isSmartPointer()) {
- conversion = QLatin1String("copy");
+ conversion = u"copy"_s;
} else {
- conversion = QLatin1String("pointer");
+ conversion = u"pointer"_s;
}
- QString result = QLatin1String("Shiboken::Conversions::") + conversion
- + QLatin1String("ToPython(")
- + cpythonTypeNameExt(type) + QLatin1String(", ");
- if (conversion != QLatin1String("pointer"))
- result += QLatin1Char('&');
+ QString result = u"Shiboken::Conversions::"_s + conversion
+ + u"ToPython("_s
+ + cpythonTypeNameExt(type) + u", "_s;
+ if (conversion != u"pointer")
+ result += u'&';
return result;
}
- return QStringLiteral("Shiboken::Conversions::copyToPython(%1, %2")
- .arg(converterObject(type),
- (type.isCString() || type.isVoidPointer()) ? QString() : QLatin1String("&"));
+
+ const auto indirections = type.indirections() - 1;
+ return u"Shiboken::Conversions::copyToPython("_s + converterObject(type)
+ + u", "_s + AbstractMetaType::dereferencePrefix(indirections);
}
-QString ShibokenGenerator::cpythonToPythonConversionFunction(const AbstractMetaClass *metaClass)
+QString ShibokenGenerator::cpythonToPythonConversionFunction(const AbstractMetaClassCPtr &metaClass)
{
return cpythonToPythonConversionFunction(metaClass->typeEntry());
}
-QString ShibokenGenerator::cpythonToPythonConversionFunction(const TypeEntry *type)
+QString ShibokenGenerator::cpythonToPythonConversionFunction(const TypeEntryCPtr &type)
{
if (type->isWrapperType()) {
- const QString conversion = type->isValue() ? QLatin1String("copy") : QLatin1String("pointer");
- QString result = QLatin1String("Shiboken::Conversions::") + conversion
- + QLatin1String("ToPython(") + cpythonTypeNameExt(type)
- + QLatin1String(", ");
- if (conversion != QLatin1String("pointer"))
- result += QLatin1Char('&');
+ const QString conversion = type->isValue() ? u"copy"_s : u"pointer"_s;
+ QString result = u"Shiboken::Conversions::"_s + conversion
+ + u"ToPython("_s + cpythonTypeNameExt(type)
+ + u", "_s;
+ if (conversion != u"pointer")
+ result += u'&';
return result;
}
- return u"Shiboken::Conversions::copyToPython("_qs
- + converterObject(type) + u", &"_qs;
+ return u"Shiboken::Conversions::copyToPython("_s
+ + converterObject(type) + u", &"_s;
}
QString ShibokenGenerator::argumentString(const AbstractMetaFunctionCPtr &func,
const AbstractMetaArgument &argument,
Options options) const
{
- QString modified_type;
- if (!(options & OriginalTypeDescription))
- modified_type = func->typeReplaced(argument.argumentIndex() + 1);
- QString arg;
+ auto type = options.testFlag(OriginalTypeDescription)
+ ? argument.type() : argument.modifiedType();
- if (modified_type.isEmpty())
- arg = translateType(argument.type(), func->implementingClass(), options);
- else
- arg = modified_type.replace(QLatin1Char('$'), QLatin1Char('.'));
+
+ QString arg = translateType(type, func->implementingClass(), options);
+
+ if (argument.isTypeModified())
+ arg.replace(u'$', u'.'); // Haehh?
// "int a", "int a[]"
- const int arrayPos = arg.indexOf(QLatin1Char('['));
+ const auto arrayPos = arg.indexOf(u'[');
if (arrayPos != -1)
- arg.insert(arrayPos, QLatin1Char(' ') + argument.name());
+ arg.insert(arrayPos, u' ' + argument.name());
else
- arg.append(QLatin1Char(' ') + argument.name());
+ arg.append(u' ' + argument.name());
if ((options & Generator::SkipDefaultValues) != Generator::SkipDefaultValues &&
!argument.originalDefaultValueExpression().isEmpty())
{
QString default_value = argument.originalDefaultValueExpression();
- if (default_value == QLatin1String("NULL"))
- default_value = QLatin1String(NULL_PTR);
+ if (default_value == u"NULL")
+ default_value = NULL_PTR;
//WORKAROUND: fix this please
- if (default_value.startsWith(QLatin1String("new ")))
+ if (default_value.startsWith(u"new "))
default_value.remove(0, 4);
- arg += QLatin1String(" = ") + default_value;
+ arg += u" = "_s + default_value;
}
return arg;
@@ -1304,21 +1146,23 @@ void ShibokenGenerator::writeFunctionArguments(TextStream &s,
const AbstractMetaFunctionCPtr &func,
Options options) const
{
- AbstractMetaArgumentList arguments = func->arguments();
-
int argUsed = 0;
- for (int i = 0; i < arguments.size(); ++i) {
- if ((options & Generator::SkipRemovedArguments) && func->argumentRemoved(i+1))
+ if (func->isUserAddedPythonOverride()) {
+ s << "Shiboken::GilState &gil, PyObject *" << PYTHON_OVERRIDE_VAR;
+ argUsed += 2;
+ }
+ for (const auto &arg : func->arguments()) {
+ if (options.testFlag(Generator::SkipRemovedArguments) && arg.isModifiedRemoved())
continue;
if (argUsed != 0)
s << ", ";
- writeArgument(s, func, arguments[i], options);
+ writeArgument(s, func, arg, options);
argUsed++;
}
}
-GeneratorContext ShibokenGenerator::contextForClass(const AbstractMetaClass *c) const
+GeneratorContext ShibokenGenerator::contextForClass(const AbstractMetaClassCPtr &c) const
{
GeneratorContext result = Generator::contextForClass(c);
if (shouldGenerateCppWrapper(c)) {
@@ -1330,9 +1174,8 @@ GeneratorContext ShibokenGenerator::contextForClass(const AbstractMetaClass *c)
QString ShibokenGenerator::functionReturnType(const AbstractMetaFunctionCPtr &func, Options options) const
{
- QString modifiedReturnType = QString(func->typeReplaced(0));
- if (!modifiedReturnType.isEmpty() && !(options & OriginalTypeDescription))
- return modifiedReturnType;
+ if (func->isTypeModified() && !options.testFlag(OriginalTypeDescription))
+ return func->modifiedTypeName();
return translateType(func->type(), func->implementingClass(), options);
}
@@ -1344,6 +1187,8 @@ QString ShibokenGenerator::functionSignature(const AbstractMetaFunctionCPtr &fun
{
StringStream s(TextStream::Language::Cpp);
// The actual function
+ if (!options.testFlag(Option::SkipDefaultValues) && func->isStatic()) // Declaration
+ s << "static ";
if (func->isEmptyFunction() || func->needsReturnType())
s << functionReturnType(func, options) << ' ';
else
@@ -1375,14 +1220,18 @@ void ShibokenGenerator::writeArgumentNames(TextStream &s,
int argCount = 0;
for (const auto &argument : arguments) {
const int index = argument.argumentIndex() + 1;
- if ((options & Generator::SkipRemovedArguments) && (func->argumentRemoved(index)))
+ if (options.testFlag(Generator::SkipRemovedArguments) && argument.isModifiedRemoved())
continue;
+ const auto &type = argument.type();
+ if (argCount > 0)
+ s << ", ";
+ const bool isVirtualCall = options.testFlag(Option::VirtualCall);
+ const bool useStdMove = isVirtualCall && type.isUniquePointer() && type.passByValue();
+ s << (useStdMove ? stdMove(argument.name()) : argument.name());
- s << ((argCount > 0) ? ", " : "") << argument.name();
-
- if (((options & Generator::VirtualCall) == 0)
- && (!func->conversionRule(TypeSystem::NativeCode, index).isEmpty()
- || !func->conversionRule(TypeSystem::TargetLangCode, index).isEmpty())
+ if (!isVirtualCall
+ && (func->hasConversionRule(TypeSystem::NativeCode, index)
+ || func->hasConversionRule(TypeSystem::TargetLangCode, index))
&& !func->isConstructor()) {
s << CONV_RULE_OUT_VAR_SUFFIX;
}
@@ -1401,55 +1250,18 @@ void ShibokenGenerator::writeFunctionCall(TextStream &s,
s << ')';
}
-void ShibokenGenerator::writeUnusedVariableCast(TextStream &s, const QString &variableName)
-{
- s << "SBK_UNUSED(" << variableName<< ")\n";
-}
-
-static bool filterFunction(const AbstractMetaFunctionCPtr &func, bool avoidProtectedHack)
-{
- switch (func->functionType()) {
- case AbstractMetaFunction::DestructorFunction:
- case AbstractMetaFunction::SignalFunction:
- case AbstractMetaFunction::GetAttroFunction:
- case AbstractMetaFunction::SetAttroFunction:
- return false;
- default:
- break;
- }
- if (func->usesRValueReferences())
- return false;
- if (func->isModifiedRemoved() && !func->isAbstract()
- && (!avoidProtectedHack || !func->isProtected())) {
- return false;
- }
- return true;
-}
-
-AbstractMetaFunctionCList ShibokenGenerator::filterFunctions(const AbstractMetaClass *metaClass) const
-{
- AbstractMetaFunctionCList result;
- const AbstractMetaFunctionCList &funcs = metaClass->functions();
- result.reserve(funcs.size());
- for (const auto &func : funcs) {
- if (filterFunction(func, avoidProtectedHack()))
- result.append(func);
- }
- return result;
-}
-
ShibokenGenerator::ExtendedConverterData ShibokenGenerator::getExtendedConverters() const
{
ExtendedConverterData extConvs;
- for (auto metaClass : api().classes()) {
+ for (const auto &metaClass : api().classes()) {
// Use only the classes for the current module.
- if (!shouldGenerate(metaClass))
+ if (!shouldGenerate(metaClass->typeEntry()))
continue;
const auto &overloads = metaClass->operatorOverloads(OperatorQueryOption::ConversionOp);
for (const auto &convOp : overloads) {
// Get only the conversion operators that return a type from another module,
// that are value-types and were not removed in the type system.
- const TypeEntry *convType = convOp->type().typeEntry();
+ const auto convType = convOp->type().typeEntry();
if (convType->generateCode() || !convType->isValue()
|| convOp->isModifiedRemoved())
continue;
@@ -1459,15 +1271,13 @@ ShibokenGenerator::ExtendedConverterData ShibokenGenerator::getExtendedConverter
return extConvs;
}
-QList<const CustomConversion *> ShibokenGenerator::getPrimitiveCustomConversions()
+QList<CustomConversionPtr> ShibokenGenerator::getPrimitiveCustomConversions()
{
- QList<const CustomConversion *> conversions;
- const PrimitiveTypeEntryList &primitiveTypeList = primitiveTypes();
- for (const PrimitiveTypeEntry *type : primitiveTypeList) {
- if (!shouldGenerateTypeEntry(type) || !type->isUserPrimitive() || !type->customConversion())
- continue;
-
- conversions << type->customConversion();
+ QList<CustomConversionPtr> conversions;
+ const auto &primitiveTypeList = primitiveTypes();
+ for (const auto &type : primitiveTypeList) {
+ if (type->shouldGenerate() && isUserPrimitive(type) && type->hasCustomConversion())
+ conversions << type->customConversion();
}
return conversions;
}
@@ -1480,20 +1290,20 @@ static QString getArgumentsFromMethodCall(const QString &str)
// For more information check this:
// http://perl.plover.com/yak/regex/samples/slide083.html
static QLatin1String funcCall("%CPPSELF.%FUNCTION_NAME");
- int pos = str.indexOf(funcCall);
+ auto pos = str.indexOf(funcCall);
if (pos == -1)
return QString();
pos = pos + funcCall.size();
- while (str.at(pos) == QLatin1Char(' ') || str.at(pos) == QLatin1Char('\t'))
+ while (str.at(pos) == u' ' || str.at(pos) == u'\t')
++pos;
- if (str.at(pos) == QLatin1Char('('))
+ if (str.at(pos) == u'(')
++pos;
int begin = pos;
int counter = 1;
while (counter != 0) {
- if (str.at(pos) == QLatin1Char('('))
+ if (str.at(pos) == u'(')
++counter;
- else if (str.at(pos) == QLatin1Char(')'))
+ else if (str.at(pos) == u')')
--counter;
++pos;
}
@@ -1518,14 +1328,13 @@ void ShibokenGenerator::processClassCodeSnip(QString &code, const GeneratorConte
auto metaClass = context.metaClass();
// Replace template variable by the Python Type object
// for the class context in which the variable is used.
- code.replace(QLatin1String("%PYTHONTYPEOBJECT"),
- u"(*"_qs + cpythonTypeName(metaClass) + u')');
- const QString className = context.useWrapper()
- ? context.wrapperName() : metaClass->qualifiedCppName();
- code.replace(QLatin1String("%TYPE"), className);
- code.replace(QLatin1String("%CPPTYPE"), metaClass->name());
+ code.replace(u"%PYTHONTYPEOBJECT"_s,
+ u"(*"_s + cpythonTypeName(metaClass) + u')');
+ const QString className = context.effectiveClassName();
+ code.replace(u"%TYPE"_s, className);
+ code.replace(u"%CPPTYPE"_s, metaClass->name());
- processCodeSnip(code);
+ processCodeSnip(code, context.effectiveClassName());
}
void ShibokenGenerator::processCodeSnip(QString &code) const
@@ -1543,6 +1352,15 @@ void ShibokenGenerator::processCodeSnip(QString &code) const
replaceTypeCheckTypeSystemVariable(code);
}
+void ShibokenGenerator::processCodeSnip(QString &code, const QString &context) const
+{
+ try {
+ processCodeSnip(code);
+ } catch (const std::exception &e) {
+ throw Exception(msgSnippetError(context, e.what()));
+ }
+}
+
ShibokenGenerator::ArgumentVarReplacementList
ShibokenGenerator::getArgumentReplacement(const AbstractMetaFunctionCPtr &func,
bool usePyArgs, TypeSystem::Language language,
@@ -1552,36 +1370,30 @@ ShibokenGenerator::ArgumentVarReplacementList
TypeSystem::Language convLang = (language == TypeSystem::TargetLangCode)
? TypeSystem::NativeCode : TypeSystem::TargetLangCode;
int removed = 0;
- for (int i = 0; i < func->arguments().size(); ++i) {
+ for (qsizetype i = 0; i < func->arguments().size(); ++i) {
const AbstractMetaArgument &arg = func->arguments().at(i);
QString argValue;
if (language == TypeSystem::TargetLangCode) {
- bool hasConversionRule = !func->conversionRule(convLang, i+1).isEmpty();
- const bool argRemoved = func->argumentRemoved(i+1);
+ const bool hasConversionRule = func->hasConversionRule(convLang, i + 1);
+ const bool argRemoved = arg.isModifiedRemoved();
if (argRemoved)
++removed;
if (argRemoved && hasConversionRule)
- argValue = arg.name() + QLatin1String(CONV_RULE_OUT_VAR_SUFFIX);
+ argValue = arg.name() + CONV_RULE_OUT_VAR_SUFFIX;
else if (argRemoved || (lastArg && arg.argumentIndex() > lastArg->argumentIndex()))
- argValue = QLatin1String(CPP_ARG_REMOVED) + QString::number(i);
+ argValue = CPP_ARG_REMOVED(i);
if (!argRemoved && argValue.isEmpty()) {
int argPos = i - removed;
- AbstractMetaType type = arg.type();
- QString typeReplaced = func->typeReplaced(arg.argumentIndex() + 1);
- if (!typeReplaced.isEmpty()) {
- auto builtType = AbstractMetaType::fromString(typeReplaced);
- if (builtType.has_value())
- type = builtType.value();
- }
+ AbstractMetaType type = arg.modifiedType();
if (type.typeEntry()->isCustom()) {
argValue = usePyArgs
- ? pythonArgsAt(argPos) : QLatin1String(PYTHON_ARG);
+ ? pythonArgsAt(argPos) : PYTHON_ARG;
} else {
argValue = hasConversionRule
- ? arg.name() + QLatin1String(CONV_RULE_OUT_VAR_SUFFIX)
- : QLatin1String(CPP_ARG) + QString::number(argPos);
- if (type.shouldDereferenceArgument())
- AbstractMetaType::dereference(&argValue);
+ ? arg.name() + CONV_RULE_OUT_VAR_SUFFIX
+ : CPP_ARG_N(argPos);
+ const auto generatorArg = GeneratorArgument::fromMetaType(type);
+ AbstractMetaType::applyDereference(&argValue, generatorArg.indirections);
}
}
} else {
@@ -1621,13 +1433,12 @@ void ShibokenGenerator::writeCodeSnips(TextStream &s,
static void replacePyArg0(TypeSystem::Language language, QString *code)
{
- static const QString pyArg0 = u"%PYARG_0"_qs;
- static const QString pyReturn = QLatin1String(PYTHON_RETURN_VAR);
+ static constexpr auto pyArg0 = "%PYARG_0"_L1;
if (!code->contains(pyArg0))
return;
if (language != TypeSystem::NativeCode) {
- code->replace(pyArg0, pyReturn);
+ code->replace(pyArg0, PYTHON_RETURN_VAR);
return;
}
@@ -1636,13 +1447,13 @@ static void replacePyArg0(TypeSystem::Language language, QString *code)
// situations (fex _PyVarObject_CAST(op) defined as ((PyVarObject*)(op))).
// Append ".object()" unless it is followed by a '.' indicating explicit
// AutoDecRef member invocation.
- static const QString pyObject = pyReturn + u".object()"_qs;
+ static const QString pyObject = PYTHON_RETURN_VAR + u".object()"_s;
qsizetype pos{};
while ( (pos = code->indexOf(pyArg0)) >= 0) {
const auto next = pos + pyArg0.size();
const bool memberInvocation = next < code->size() && code->at(next) == u'.';
code->replace(pos, pyArg0.size(),
- memberInvocation ? pyReturn : pyObject);
+ memberInvocation ? PYTHON_RETURN_VAR : pyObject);
}
}
@@ -1661,112 +1472,112 @@ void ShibokenGenerator::writeCodeSnips(TextStream &s,
// Replace %PYARG_# variables.
replacePyArg0(language, &code);
- static const QRegularExpression pyArgsRegex(QStringLiteral("%PYARG_(\\d+)"));
+ static const QRegularExpression pyArgsRegex("%PYARG_(\\d+)"_L1);
Q_ASSERT(pyArgsRegex.isValid());
if (language == TypeSystem::TargetLangCode) {
if (usePyArgs) {
- code.replace(pyArgsRegex, QLatin1String(PYTHON_ARGS) + QLatin1String("[\\1-1]"));
+ code.replace(pyArgsRegex, PYTHON_ARGS + u"[\\1-1]"_s);
} else {
- static const QRegularExpression pyArgsRegexCheck(QStringLiteral("%PYARG_([2-9]+)"));
+ static const QRegularExpression pyArgsRegexCheck("%PYARG_([2-9]+)"_L1);
Q_ASSERT(pyArgsRegexCheck.isValid());
const QRegularExpressionMatch match = pyArgsRegexCheck.match(code);
if (match.hasMatch()) {
qCWarning(lcShiboken).noquote().nospace()
- << msgWrongIndex("%PYARG", match.captured(1), func.data());
+ << msgWrongIndex("%PYARG", match.captured(1), func.get());
return;
}
- code.replace(QLatin1String("%PYARG_1"), QLatin1String(PYTHON_ARG));
+ code.replace(u"%PYARG_1"_s, PYTHON_ARG);
}
} else {
// Replaces the simplest case of attribution to a
// Python argument on the binding virtual method.
- static const QRegularExpression pyArgsAttributionRegex(QStringLiteral("%PYARG_(\\d+)\\s*=[^=]\\s*([^;]+)"));
+ static const QRegularExpression pyArgsAttributionRegex("%PYARG_(\\d+)\\s*=[^=]\\s*([^;]+)"_L1);
Q_ASSERT(pyArgsAttributionRegex.isValid());
- code.replace(pyArgsAttributionRegex, QLatin1String("PyTuple_SET_ITEM(")
- + QLatin1String(PYTHON_ARGS) + QLatin1String(", \\1-1, \\2)"));
- code.replace(pyArgsRegex, QLatin1String("PyTuple_GET_ITEM(")
- + QLatin1String(PYTHON_ARGS) + QLatin1String(", \\1-1)"));
+ code.replace(pyArgsAttributionRegex, u"PyTuple_SET_ITEM("_s
+ + PYTHON_ARGS + u".object(), \\1-1, \\2)"_s);
+ code.replace(pyArgsRegex, u"PyTuple_GET_ITEM("_s
+ + PYTHON_ARGS + u".object(), \\1-1)"_s);
}
// Replace %ARG#_TYPE variables.
const AbstractMetaArgumentList &arguments = func->arguments();
for (const AbstractMetaArgument &arg : arguments) {
- QString argTypeVar = u"%ARG"_qs + QString::number(arg.argumentIndex() + 1)
- + u"_TYPE"_qs;
+ QString argTypeVar = u"%ARG"_s + QString::number(arg.argumentIndex() + 1)
+ + u"_TYPE"_s;
QString argTypeVal = arg.type().cppSignature();
code.replace(argTypeVar, argTypeVal);
}
- static const QRegularExpression cppArgTypeRegexCheck(QStringLiteral("%ARG(\\d+)_TYPE"));
+ static const QRegularExpression cppArgTypeRegexCheck("%ARG(\\d+)_TYPE"_L1);
Q_ASSERT(cppArgTypeRegexCheck.isValid());
QRegularExpressionMatchIterator rit = cppArgTypeRegexCheck.globalMatch(code);
while (rit.hasNext()) {
QRegularExpressionMatch match = rit.next();
qCWarning(lcShiboken).noquote().nospace()
- << msgWrongIndex("%ARG#_TYPE", match.captured(1), func.data());
+ << msgWrongIndex("%ARG#_TYPE", match.captured(1), func.get());
}
// Replace template variable for return variable name.
if (func->isConstructor()) {
- code.replace(QLatin1String("%0."), QLatin1String("cptr->"));
- code.replace(QLatin1String("%0"), QLatin1String("cptr"));
+ code.replace(u"%0."_s, u"cptr->"_s);
+ code.replace(u"%0"_s, u"cptr"_s);
} else if (!func->isVoid()) {
QString returnValueOp = func->type().isPointerToWrapperType()
- ? QLatin1String("%1->") : QLatin1String("%1.");
+ ? u"%1->"_s : u"%1."_s;
if (func->type().isWrapperType())
- code.replace(QLatin1String("%0."), returnValueOp.arg(QLatin1String(CPP_RETURN_VAR)));
- code.replace(QLatin1String("%0"), QLatin1String(CPP_RETURN_VAR));
+ code.replace(u"%0."_s, returnValueOp.arg(CPP_RETURN_VAR));
+ code.replace(u"%0"_s, CPP_RETURN_VAR);
}
// Replace template variable for self Python object.
QString pySelf = language == TypeSystem::NativeCode
- ? QLatin1String("pySelf") : QLatin1String("self");
- code.replace(QLatin1String("%PYSELF"), pySelf);
+ ? u"pySelf"_s : u"self"_s;
+ code.replace(u"%PYSELF"_s, pySelf);
// Replace template variable for a pointer to C++ of this object.
if (func->implementingClass()) {
- QString replacement = func->isStatic() ? QLatin1String("%1::") : QLatin1String("%1->");
+ QString replacement = func->isStatic() ? u"%1::"_s : u"%1->"_s;
QString cppSelf;
if (func->isStatic())
cppSelf = func->ownerClass()->qualifiedCppName();
else if (language == TypeSystem::NativeCode)
- cppSelf = QLatin1String("this");
+ cppSelf = u"this"_s;
else
- cppSelf = QLatin1String(CPP_SELF_VAR);
+ cppSelf = CPP_SELF_VAR;
// On comparison operator CPP_SELF_VAR is always a reference.
if (func->isComparisonOperator())
- replacement = QLatin1String("%1.");
+ replacement = u"%1."_s;
if (func->isVirtual() && !func->isAbstract() && (!avoidProtectedHack() || !func->isProtected())) {
QString methodCallArgs = getArgumentsFromMethodCall(code);
if (!methodCallArgs.isEmpty()) {
- const QString pattern = u"%CPPSELF.%FUNCTION_NAME("_qs + methodCallArgs + u')';
- QString replacement = u"(Shiboken::Object::hasCppWrapper(reinterpret_cast<SbkObject *>("_qs
- + pySelf + u")) ? "_qs;
- if (func->name() == QLatin1String("metaObject")) {
+ const QString pattern = u"%CPPSELF.%FUNCTION_NAME("_s + methodCallArgs + u')';
+ QString replacement = u"(Shiboken::Object::hasCppWrapper(reinterpret_cast<SbkObject *>("_s
+ + pySelf + u")) ? "_s;
+ if (func->name() == u"metaObject") {
QString wrapperClassName = wrapperName(func->ownerClass());
QString cppSelfVar = avoidProtectedHack()
- ? u"%CPPSELF"_qs
- : u"reinterpret_cast<"_qs + wrapperClassName + u" *>(%CPPSELF)"_qs;
- replacement += cppSelfVar + u"->::"_qs + wrapperClassName
- + u"::%FUNCTION_NAME("_qs + methodCallArgs
- + u") : %CPPSELF.%FUNCTION_NAME("_qs + methodCallArgs + u"))"_qs;
+ ? u"%CPPSELF"_s
+ : u"reinterpret_cast<"_s + wrapperClassName + u" *>(%CPPSELF)"_s;
+ replacement += cppSelfVar + u"->::"_s + wrapperClassName
+ + u"::%FUNCTION_NAME("_s + methodCallArgs
+ + u") : %CPPSELF.%FUNCTION_NAME("_s + methodCallArgs + u"))"_s;
} else {
- replacement += u"%CPPSELF->::%TYPE::%FUNCTION_NAME("_qs + methodCallArgs
- + u") : %CPPSELF.%FUNCTION_NAME("_qs + methodCallArgs + u"))"_qs;
+ replacement += u"%CPPSELF->::%TYPE::%FUNCTION_NAME("_s + methodCallArgs
+ + u") : %CPPSELF.%FUNCTION_NAME("_s + methodCallArgs + u"))"_s;
}
code.replace(pattern, replacement);
}
}
- code.replace(QLatin1String("%CPPSELF."), replacement.arg(cppSelf));
- code.replace(QLatin1String("%CPPSELF"), cppSelf);
+ code.replace(u"%CPPSELF."_s, replacement.arg(cppSelf));
+ code.replace(u"%CPPSELF"_s, cppSelf);
- if (code.indexOf(QLatin1String("%BEGIN_ALLOW_THREADS")) > -1) {
- if (code.count(QLatin1String("%BEGIN_ALLOW_THREADS")) == code.count(QLatin1String("%END_ALLOW_THREADS"))) {
- code.replace(QLatin1String("%BEGIN_ALLOW_THREADS"), QLatin1String(BEGIN_ALLOW_THREADS));
- code.replace(QLatin1String("%END_ALLOW_THREADS"), QLatin1String(END_ALLOW_THREADS));
+ if (code.indexOf(u"%BEGIN_ALLOW_THREADS") > -1) {
+ if (code.count(u"%BEGIN_ALLOW_THREADS"_s) == code.count(u"%END_ALLOW_THREADS"_s)) {
+ code.replace(u"%BEGIN_ALLOW_THREADS"_s, BEGIN_ALLOW_THREADS);
+ code.replace(u"%END_ALLOW_THREADS"_s, END_ALLOW_THREADS);
} else {
qCWarning(lcShiboken) << "%BEGIN_ALLOW_THREADS and %END_ALLOW_THREADS mismatch";
}
@@ -1775,11 +1586,11 @@ void ShibokenGenerator::writeCodeSnips(TextStream &s,
// replace template variable for the Python Type object for the
// class implementing the method in which the code snip is written
if (func->isStatic()) {
- code.replace(QLatin1String("%PYTHONTYPEOBJECT"),
- u"(*"_qs + cpythonTypeName(func->implementingClass()) + u')');
+ code.replace(u"%PYTHONTYPEOBJECT"_s,
+ u"(*"_s + cpythonTypeName(func->implementingClass()) + u')');
} else {
- code.replace(QLatin1String("%PYTHONTYPEOBJECT."), pySelf + QLatin1String("->ob_type->"));
- code.replace(QLatin1String("%PYTHONTYPEOBJECT"), pySelf + QLatin1String("->ob_type"));
+ code.replace(u"%PYTHONTYPEOBJECT."_s, pySelf + u"->ob_type->"_s);
+ code.replace(u"%PYTHONTYPEOBJECT"_s, pySelf + u"->ob_type"_s);
}
}
@@ -1789,28 +1600,23 @@ void ShibokenGenerator::writeCodeSnips(TextStream &s,
QStringList args;
for (const ArgumentVarReplacementPair &pair : argReplacements) {
- if (pair.second.startsWith(QLatin1String(CPP_ARG_REMOVED)))
+ if (pair.second.startsWith(CPP_ARG_REMOVED_PREFIX))
continue;
args << pair.second;
}
- code.replace(QLatin1String("%ARGUMENT_NAMES"), args.join(QLatin1String(", ")));
+ code.replace(u"%ARGUMENT_NAMES"_s, args.join(u", "_s));
for (const ArgumentVarReplacementPair &pair : argReplacements) {
const AbstractMetaArgument &arg = pair.first;
int idx = arg.argumentIndex() + 1;
- AbstractMetaType type = arg.type();
- QString typeReplaced = func->typeReplaced(arg.argumentIndex() + 1);
- if (!typeReplaced.isEmpty()) {
- auto builtType = AbstractMetaType::fromString(typeReplaced);
- if (builtType.has_value())
- type = builtType.value();
- }
+ AbstractMetaType type = arg.modifiedType();
if (type.isWrapperType()) {
QString replacement = pair.second;
- if (type.shouldDereferenceArgument())
+ const auto generatorArg = GeneratorArgument::fromMetaType(type);
+ if (generatorArg.indirections > 0)
AbstractMetaType::stripDereference(&replacement);
if (type.referenceType() == LValueReference || type.isPointer())
- code.replace(u'%' + QString::number(idx) + u'.', replacement + u"->"_qs);
+ code.replace(u'%' + QString::number(idx) + u'.', replacement + u"->"_s);
}
code.replace(CodeSnipAbstract::placeHolderRegex(idx), pair.second);
}
@@ -1819,11 +1625,11 @@ void ShibokenGenerator::writeCodeSnips(TextStream &s,
// Replaces template %PYTHON_ARGUMENTS variable with a pointer to the Python tuple
// containing the converted virtual method arguments received from C++ to be passed
// to the Python override.
- code.replace(QLatin1String("%PYTHON_ARGUMENTS"), QLatin1String(PYTHON_ARGS));
+ code.replace(u"%PYTHON_ARGUMENTS"_s, PYTHON_ARGS);
// replace variable %PYTHON_METHOD_OVERRIDE for a pointer to the Python method
// override for the C++ virtual method in which this piece of code was inserted
- code.replace(QLatin1String("%PYTHON_METHOD_OVERRIDE"), QLatin1String(PYTHON_OVERRIDE_VAR));
+ code.replace(u"%PYTHON_METHOD_OVERRIDE"_s, PYTHON_OVERRIDE_VAR);
}
if (avoidProtectedHack()) {
@@ -1843,23 +1649,23 @@ void ShibokenGenerator::writeCodeSnips(TextStream &s,
}
if (isProtected) {
- code.replace(QLatin1String("%TYPE::%FUNCTION_NAME"),
- QStringLiteral("%1::%2_protected")
- .arg(wrapperName(func->ownerClass()), func->originalName()));
- code.replace(QLatin1String("%FUNCTION_NAME"),
- func->originalName() + QLatin1String("_protected"));
+ code.replace(u"%TYPE::%FUNCTION_NAME"_s,
+ wrapperName(func->ownerClass()) + "::"_L1
+ + func->originalName() + "_protected"_L1);
+ code.replace(u"%FUNCTION_NAME"_s,
+ func->originalName() + u"_protected"_s);
}
}
if (func->isConstructor() && shouldGenerateCppWrapper(func->ownerClass()))
- code.replace(QLatin1String("%TYPE"), wrapperName(func->ownerClass()));
+ code.replace(u"%TYPE"_s, wrapperName(func->ownerClass()));
if (func->ownerClass())
- code.replace(QLatin1String("%CPPTYPE"), func->ownerClass()->name());
+ code.replace(u"%CPPTYPE"_s, func->ownerClass()->name());
replaceTemplateVariables(code, func);
- processCodeSnip(code);
+ processCodeSnip(code, func->classQualifiedSignature());
s << "// Begin code injection\n" << code << "// End of code injection\n\n";
}
@@ -1867,7 +1673,7 @@ void ShibokenGenerator::writeCodeSnips(TextStream &s,
// and false if it is a variable.
static bool isVariable(const QString &code)
{
- static const QRegularExpression expr(QStringLiteral("^\\s*\\*?\\s*[A-Za-z_][A-Za-z_0-9.]*\\s*(?:\\[[^\\[]+\\])*$"));
+ static const QRegularExpression expr("^\\s*\\*?\\s*[A-Za-z_][A-Za-z_0-9.]*\\s*(?:\\[[^\\[]+\\])*$"_L1);
Q_ASSERT(expr.isValid());
return expr.match(code.trimmed()).hasMatch();
}
@@ -1880,15 +1686,15 @@ static QString miniNormalizer(const QString &varType)
QString normalized = varType.trimmed();
if (normalized.isEmpty())
return normalized;
- if (normalized.startsWith(QLatin1String("::")))
+ if (normalized.startsWith(u"::"))
normalized.remove(0, 2);
QString suffix;
- while (normalized.endsWith(QLatin1Char('*')) || normalized.endsWith(QLatin1Char('&'))) {
- suffix.prepend(normalized.at(normalized.count() - 1));
+ while (normalized.endsWith(u'*') || normalized.endsWith(u'&')) {
+ suffix.prepend(normalized.at(normalized.size() - 1));
normalized.chop(1);
normalized = normalized.trimmed();
}
- const QString result = normalized + QLatin1Char(' ') + suffix;
+ const QString result = normalized + u' ' + suffix;
return result.trimmed();
}
// The position must indicate the first character after the opening '('.
@@ -1899,7 +1705,7 @@ static QString getConverterTypeSystemVariableArgument(const QString &code, int p
QString arg;
int parenthesisDepth = 0;
int count = 0;
- while (pos + count < code.count()) {
+ while (pos + count < code.size()) {
char c = code.at(pos+count).toLatin1(); // toAscii is gone
if (c == '(') {
++parenthesisDepth;
@@ -1920,15 +1726,15 @@ static QString getConverterTypeSystemVariableArgument(const QString &code, int p
const QHash<int, QString> &ShibokenGenerator::typeSystemConvName()
{
static const QHash<int, QString> result = {
- {TypeSystemCheckFunction, QLatin1String("checkType")},
- {TypeSystemIsConvertibleFunction, QLatin1String("isConvertible")},
- {TypeSystemToCppFunction, QLatin1String("toCpp")},
- {TypeSystemToPythonFunction, QLatin1String("toPython")}
+ {TypeSystemCheckFunction, u"checkType"_s},
+ {TypeSystemIsConvertibleFunction, u"isConvertible"_s},
+ {TypeSystemToCppFunction, u"toCpp"_s},
+ {TypeSystemToPythonFunction, u"toPython"_s}
};
return result;
}
-using StringPair = QPair<QString, QString>;
+using StringPair = std::pair<QString, QString>;
void ShibokenGenerator::replaceConverterTypeSystemVariable(TypeSystemConverterVariable converterVariable,
QString &code) const
@@ -1954,7 +1760,7 @@ void ShibokenGenerator::replaceConverterTypeSystemVariable(TypeSystemConverterVa
StringStream c(TextStream::Language::Cpp);
int end = match.capturedStart();
int start = end;
- while (start > 0 && code.at(start) != QLatin1Char('\n'))
+ while (start > 0 && code.at(start) != u'\n')
--start;
while (code.at(start).isSpace())
++start;
@@ -1963,16 +1769,13 @@ void ShibokenGenerator::replaceConverterTypeSystemVariable(TypeSystemConverterVa
varType = miniNormalizer(varType);
QString varName = list.at(1).trimmed();
if (!varType.isEmpty()) {
- const QString conversionSignature = conversionType.cppSignature();
- if (varType != QLatin1String("auto") && varType != conversionSignature)
- throw Exception(msgConversionTypesDiffer(varType, conversionSignature));
c << getFullTypeName(conversionType) << ' ' << varName
<< minimalConstructorExpression(api(), conversionType) << ";\n";
}
c << cpythonToCppConversionFunction(conversionType);
QString prefix;
if (!AbstractMetaType::stripDereference(&varName))
- prefix = QLatin1Char('&');
+ prefix = u'&';
QString arg = getConverterTypeSystemVariableArgument(code, match.capturedEnd());
conversionString += arg;
c << arg << ", " << prefix << '(' << varName << ')';
@@ -1982,8 +1785,8 @@ void ShibokenGenerator::replaceConverterTypeSystemVariable(TypeSystemConverterVa
case TypeSystemCheckFunction:
conversion = cpythonCheckFunction(conversionType);
if (conversionType.typeEntry()->isPrimitive()
- && (conversionType.typeEntry()->name() == cPyObjectT()
- || !conversion.endsWith(QLatin1Char(' ')))) {
+ && (conversionType.typeEntry()->name() == cPyObjectT
+ || !conversion.endsWith(u' '))) {
conversion += u'(';
break;
}
@@ -2005,17 +1808,17 @@ void ShibokenGenerator::replaceConverterTypeSystemVariable(TypeSystemConverterVa
<< code << '\'';
throw Exception(m);
}
- if (conversion.contains(QLatin1String("%in"))) {
- conversion.prepend(QLatin1Char('('));
- conversion.replace(QLatin1String("%in"), arg);
+ if (conversion.contains(u"%in")) {
+ conversion.prepend(u'(');
+ conversion.replace(u"%in"_s, arg);
} else {
conversion += arg;
}
}
}
- replacements.append(qMakePair(conversionString, conversion));
+ replacements.append(std::make_pair(conversionString, conversion));
}
- for (const StringPair &rep : qAsConst(replacements))
+ for (const StringPair &rep : std::as_const(replacements))
code.replace(rep.first, rep.second);
}
@@ -2024,9 +1827,9 @@ bool ShibokenGenerator::injectedCodeCallsCppFunction(const GeneratorContext &con
{
if (func->injectedCodeContains(u"%FUNCTION_NAME("))
return true;
- QString funcCall = func->originalName() + QLatin1Char('(');
+ QString funcCall = func->originalName() + u'(';
if (func->isConstructor())
- funcCall.prepend(QLatin1String("new "));
+ funcCall.prepend(u"new "_s);
if (func->injectedCodeContains(funcCall))
return true;
if (!func->isConstructor())
@@ -2036,18 +1839,17 @@ bool ShibokenGenerator::injectedCodeCallsCppFunction(const GeneratorContext &con
const auto owner = func->ownerClass();
if (!owner->isPolymorphic())
return false;
- const QString className = context.useWrapper()
- ? context.wrapperName() : owner->qualifiedCppName();
- const QString wrappedCtorCall = QLatin1String("new ") + className + QLatin1Char('(');
+ const QString wrappedCtorCall = u"new "_s + context.effectiveClassName() + u'(';
return func->injectedCodeContains(wrappedCtorCall);
}
-bool ShibokenGenerator::useOverrideCaching(const AbstractMetaClass *metaClass)
+bool ShibokenGenerator::useOverrideCaching(const AbstractMetaClassCPtr &metaClass)
{
return metaClass->isPolymorphic();
}
-ShibokenGenerator::AttroCheck ShibokenGenerator::checkAttroFunctionNeeds(const AbstractMetaClass *metaClass) const
+ShibokenGenerator::AttroCheck ShibokenGenerator::checkAttroFunctionNeeds(
+ const AbstractMetaClassCPtr &metaClass)
{
AttroCheck result;
if (metaClass->typeEntry()->isSmartPointer()) {
@@ -2059,7 +1861,7 @@ ShibokenGenerator::AttroCheck ShibokenGenerator::checkAttroFunctionNeeds(const A
FunctionQueryOption::GetAttroFunction)) {
result |= AttroCheckFlag::GetattroUser;
}
- if (usePySideExtensions() && metaClass->qualifiedCppName() == qObjectT())
+ if (usePySideExtensions() && metaClass->qualifiedCppName() == qObjectT)
result |= AttroCheckFlag::SetattroQObject;
if (useOverrideCaching(metaClass))
result |= AttroCheckFlag::SetattroMethodOverride;
@@ -2071,14 +1873,14 @@ ShibokenGenerator::AttroCheck ShibokenGenerator::checkAttroFunctionNeeds(const A
// QObject, the property code needs to be generated, too.
if ((result & AttroCheckFlag::SetattroMask) != 0
&& !result.testFlag(AttroCheckFlag::SetattroQObject)
- && metaClass->isQObject()) {
+ && isQObject(metaClass)) {
result |= AttroCheckFlag::SetattroQObject;
}
}
return result;
}
-bool ShibokenGenerator::classNeedsGetattroFunctionImpl(const AbstractMetaClass *metaClass)
+bool ShibokenGenerator::classNeedsGetattroFunctionImpl(const AbstractMetaClassCPtr &metaClass)
{
if (!metaClass)
return false;
@@ -2087,7 +1889,7 @@ bool ShibokenGenerator::classNeedsGetattroFunctionImpl(const AbstractMetaClass *
const auto &functionGroup = getFunctionGroups(metaClass);
for (auto it = functionGroup.cbegin(), end = functionGroup.cend(); it != end; ++it) {
AbstractMetaFunctionCList overloads;
- for (const auto &func : qAsConst(it.value())) {
+ for (const auto &func : std::as_const(it.value())) {
if (func->isAssignmentOperator() || func->isConversionOperator()
|| func->isModifiedRemoved()
|| func->isPrivate() || func->ownerClass() != func->implementingClass()
@@ -2104,14 +1906,14 @@ bool ShibokenGenerator::classNeedsGetattroFunctionImpl(const AbstractMetaClass *
}
AbstractMetaFunctionCList
- ShibokenGenerator::getMethodsWithBothStaticAndNonStaticMethods(const AbstractMetaClass *metaClass)
+ ShibokenGenerator::getMethodsWithBothStaticAndNonStaticMethods(const AbstractMetaClassCPtr &metaClass)
{
AbstractMetaFunctionCList methods;
if (metaClass) {
const auto &functionGroups = getFunctionGroups(metaClass);
for (auto it = functionGroups.cbegin(), end = functionGroups.cend(); it != end; ++it) {
AbstractMetaFunctionCList overloads;
- for (const auto &func : qAsConst(it.value())) {
+ for (const auto &func : std::as_const(it.value())) {
if (func->isAssignmentOperator() || func->isConversionOperator()
|| func->isModifiedRemoved()
|| func->isPrivate() || func->ownerClass() != func->implementingClass()
@@ -2128,7 +1930,8 @@ AbstractMetaFunctionCList
return methods;
}
-const AbstractMetaClass *ShibokenGenerator::getMultipleInheritingClass(const AbstractMetaClass *metaClass)
+AbstractMetaClassCPtr
+ ShibokenGenerator::getMultipleInheritingClass(const AbstractMetaClassCPtr &metaClass)
{
if (!metaClass || metaClass->baseClassNames().isEmpty())
return nullptr;
@@ -2139,24 +1942,48 @@ const AbstractMetaClass *ShibokenGenerator::getMultipleInheritingClass(const Abs
QString ShibokenGenerator::getModuleHeaderFileBaseName(const QString &moduleName)
{
- return moduleCppPrefix(moduleName).toLower() + QStringLiteral("_python");
+ return moduleCppPrefix(moduleName).toLower() + "_python"_L1;
}
QString ShibokenGenerator::getModuleHeaderFileName(const QString &moduleName)
{
- return getModuleHeaderFileBaseName(moduleName) + QStringLiteral(".h");
+ return getModuleHeaderFileBaseName(moduleName) + ".h"_L1;
}
QString ShibokenGenerator::getPrivateModuleHeaderFileName(const QString &moduleName)
{
- return getModuleHeaderFileBaseName(moduleName) + QStringLiteral("_p.h");
+ return getModuleHeaderFileBaseName(moduleName) + "_p.h"_L1;
+}
+
+IncludeGroupList ShibokenGenerator::classIncludes(const AbstractMetaClassCPtr &metaClass) const
+{
+ IncludeGroupList result;
+ const auto typeEntry = metaClass->typeEntry();
+ //Extra includes
+ result.append(IncludeGroup{u"Extra includes"_s,
+ typeEntry->extraIncludes()});
+
+ result.append({u"Enum includes"_s, {}});
+ for (const auto &cppEnum : metaClass->enums())
+ result.back().includes.append(cppEnum.typeEntry()->extraIncludes());
+
+ result.append({u"Argument includes"_s, typeEntry->argumentIncludes()});
+ const auto implicitConvs = implicitConversions(typeEntry);
+ for (const auto &f : implicitConvs) {
+ if (f->isConversionOperator()) {
+ const auto source = f->ownerClass();
+ Q_ASSERT(source);
+ result.back().append(source->typeEntry()->include());
+ }
+ }
+ return result;
}
/*
static void dumpFunction(AbstractMetaFunctionList lst)
{
qDebug() << "DUMP FUNCTIONS: ";
- for (AbstractMetaFunction *func : qAsConst(lst))
+ for (AbstractMetaFunction *func : std::as_const(lst))
qDebug() << "*" << func->ownerClass()->name()
<< func->signature()
<< "Private: " << func->isPrivate()
@@ -2200,29 +2027,47 @@ ShibokenGenerator::FunctionGroups ShibokenGenerator::getGlobalFunctionGroups() c
{
FunctionGroups results;
insertIntoFunctionGroups(api().globalFunctions(), &results);
- for (auto nsp : invisibleTopNamespaces())
+ for (const auto &nsp : invisibleTopNamespaces())
insertIntoFunctionGroups(nsp->functions(), &results);
return results;
}
-const GeneratorClassInfoCacheEntry &ShibokenGenerator::getGeneratorClassInfo(const AbstractMetaClass *scope)
+const GeneratorClassInfoCacheEntry &
+ ShibokenGenerator::getGeneratorClassInfo(const AbstractMetaClassCPtr &scope)
{
auto cache = generatorClassInfoCache();
auto it = cache->find(scope);
if (it == cache->end()) {
it = cache->insert(scope, {});
- it.value().functionGroups = getFunctionGroupsImpl(scope);
- it.value().needsGetattroFunction = classNeedsGetattroFunctionImpl(scope);
+ auto &entry = it.value();
+ entry.functionGroups = getFunctionGroupsImpl(scope);
+ entry.needsGetattroFunction = classNeedsGetattroFunctionImpl(scope);
+ entry.numberProtocolOperators = getNumberProtocolOperators(scope);
+ entry.boolCastFunctionO = getBoolCast(scope);
}
return it.value();
}
-ShibokenGenerator::FunctionGroups ShibokenGenerator::getFunctionGroups(const AbstractMetaClass *scope)
+ShibokenGenerator::FunctionGroups
+ ShibokenGenerator::getFunctionGroups(const AbstractMetaClassCPtr &scope)
{
Q_ASSERT(scope);
return getGeneratorClassInfo(scope).functionGroups;
}
+QList<AbstractMetaFunctionCList>
+ ShibokenGenerator::numberProtocolOperators(const AbstractMetaClassCPtr &scope)
+{
+ Q_ASSERT(scope);
+ return getGeneratorClassInfo(scope).numberProtocolOperators;
+}
+
+BoolCastFunctionOptional ShibokenGenerator::boolCast(const AbstractMetaClassCPtr &scope)
+{
+ Q_ASSERT(scope);
+ return getGeneratorClassInfo(scope).boolCastFunctionO;
+}
+
// Use non-const overloads only, for example, "foo()" and "foo()const"
// the second is removed.
static void removeConstOverloads(AbstractMetaFunctionCList *overloads)
@@ -2231,7 +2076,7 @@ static void removeConstOverloads(AbstractMetaFunctionCList *overloads)
const auto &f = overloads->at(i);
if (f->isConstant()) {
for (qsizetype c = 0, size = overloads->size(); c < size; ++c) {
- if (f->isConstOverloadOf(overloads->at(c).data())) {
+ if (f->isConstOverloadOf(overloads->at(c).get())) {
overloads->removeAt(i);
break;
}
@@ -2240,7 +2085,8 @@ static void removeConstOverloads(AbstractMetaFunctionCList *overloads)
}
}
-ShibokenGenerator::FunctionGroups ShibokenGenerator::getFunctionGroupsImpl(const AbstractMetaClass *scope)
+ShibokenGenerator::FunctionGroups
+ ShibokenGenerator::getFunctionGroupsImpl(const AbstractMetaClassCPtr &scope)
{
AbstractMetaFunctionCList lst = scope->functions();
scope->getFunctionsFromInvisibleNamespacesToBeGenerated(&lst);
@@ -2271,13 +2117,156 @@ ShibokenGenerator::FunctionGroups ShibokenGenerator::getFunctionGroupsImpl(const
return results;
}
+static bool removeNumberProtocolOperator(const AbstractMetaFunctionCPtr &f)
+{
+ return !f->generateBinding()
+ || (f->ownerClass() != f->implementingClass() && !f->isAbstract());
+}
+
+QList<AbstractMetaFunctionCList>
+ ShibokenGenerator::getNumberProtocolOperators(const AbstractMetaClassCPtr &metaClass)
+{
+ QList<AbstractMetaFunctionCList> result;
+ if (metaClass->isNamespace())
+ return result;
+ result = filterGroupedOperatorFunctions(
+ metaClass,
+ OperatorQueryOption::ArithmeticOp
+ | OperatorQueryOption::IncDecrementOp
+ | OperatorQueryOption::LogicalOp
+ | OperatorQueryOption::BitwiseOp
+ | OperatorQueryOption::ConversionOp);
+
+ for (auto i = result.size() - 1; i >= 0; --i) {
+ AbstractMetaFunctionCList &l = result[i];
+ auto rend = std::remove_if(l.begin(), l.end(), removeNumberProtocolOperator);
+ l.erase(rend, l.end());
+ if (l.isEmpty())
+ result.removeAt(i);
+ }
+
+ return result;
+}
+
+BoolCastFunctionOptional
+ShibokenGenerator::getBoolCast(const AbstractMetaClassCPtr &metaClass)
+{
+ if (metaClass->isNamespace())
+ return std::nullopt;
+
+ const auto te = metaClass->typeEntry();
+ if (te->isSmartPointer()) {
+ auto ste = std::static_pointer_cast<const SmartPointerTypeEntry>(te);
+
+ auto valueCheckMethod = ste->valueCheckMethod();
+ if (!valueCheckMethod.isEmpty()) {
+ const auto func = metaClass->findFunction(valueCheckMethod);
+ if (!func)
+ throw Exception(msgMethodNotFound(metaClass, valueCheckMethod));
+ return BoolCastFunction{func, false};
+ }
+
+ auto nullCheckMethod = ste->nullCheckMethod();
+ if (!nullCheckMethod.isEmpty()) {
+ const auto func = metaClass->findFunction(nullCheckMethod);
+ if (!func)
+ throw Exception(msgMethodNotFound(metaClass, nullCheckMethod));
+ return BoolCastFunction{func, true};
+ }
+ }
+
+ auto mode = te->operatorBoolMode();
+ if (useOperatorBoolAsNbBool()
+ ? mode != TypeSystem::BoolCast::Disabled : mode == TypeSystem::BoolCast::Enabled) {
+ const auto func = metaClass->findOperatorBool();
+ if (func)
+ return BoolCastFunction{func, false};
+ }
+
+ mode = te->isNullMode();
+ if (useIsNullAsNbBool()
+ ? mode != TypeSystem::BoolCast::Disabled : mode == TypeSystem::BoolCast::Enabled) {
+ const auto func = metaClass->findQtIsNullMethod();
+ if (func)
+ return BoolCastFunction{func, true};
+ }
+ return std::nullopt;
+}
+
+static bool isInplaceAdd(const AbstractMetaFunctionCPtr &func)
+{
+ return func->name() == u"operator+=";
+}
+
+static bool isIncrementOperator(const AbstractMetaFunctionCPtr &func)
+{
+ return func->functionType() == AbstractMetaFunction::IncrementOperator;
+}
+
+static bool isDecrementOperator(const AbstractMetaFunctionCPtr &func)
+{
+ return func->functionType() == AbstractMetaFunction::DecrementOperator;
+}
+
+// Filter predicate for operator functions
+static bool skipOperatorFunc(const AbstractMetaFunctionCPtr &func)
+{
+ if (func->isModifiedRemoved() || func->usesRValueReferences())
+ return true;
+ const auto &name = func->name();
+ return name == u"operator[]" || name == u"operator->" || name == u"operator!"
+ || name == u"operator/="; // __idiv__ is not needed in Python3
+}
+
+QList<AbstractMetaFunctionCList>
+ShibokenGenerator::filterGroupedOperatorFunctions(const AbstractMetaClassCPtr &metaClass,
+ OperatorQueryOptions query)
+{
+ // ( func_name, num_args ) => func_list
+ QMap<std::pair<QString, int>, AbstractMetaFunctionCList> results;
+ auto funcs = metaClass->operatorOverloads(query);
+ auto end = std::remove_if(funcs.begin(), funcs.end(), skipOperatorFunc);
+ funcs.erase(end, funcs.end());
+ // If we have operator+=, we remove the operator++/-- which would
+ // otherwise be used for emulating __iadd__, __isub__.
+ if (std::any_of(funcs.cbegin(), funcs.cend(), isInplaceAdd)) {
+ end = std::remove_if(funcs.begin(), funcs.end(),
+ [] (const AbstractMetaFunctionCPtr &func) {
+ return func->isIncDecrementOperator();
+ });
+ funcs.erase(end, funcs.end());
+ } else {
+ // If both prefix/postfix ++/-- are present, remove one
+ if (std::count_if(funcs.begin(), funcs.end(), isIncrementOperator) > 1)
+ funcs.erase(std::find_if(funcs.begin(), funcs.end(), isIncrementOperator));
+ if (std::count_if(funcs.begin(), funcs.end(), isDecrementOperator) > 1)
+ funcs.erase(std::find_if(funcs.begin(), funcs.end(), isDecrementOperator));
+ }
+ for (const auto &func : funcs) {
+ int args;
+ if (func->isComparisonOperator()) {
+ args = -1;
+ } else {
+ args = func->arguments().size();
+ }
+ auto op = std::make_pair(func->name(), args);
+ results[op].append(func);
+ }
+ QList<AbstractMetaFunctionCList> result;
+ result.reserve(results.size());
+ for (auto it = results.cbegin(), end = results.cend(); it != end; ++it)
+ result.append(it.value());
+ return result;
+}
+
static bool hidesBaseClassFunctions(const AbstractMetaFunctionCPtr &f)
{
- return 0 == (f->attributes()
- & (AbstractMetaFunction::OverriddenCppMethod | AbstractMetaFunction::FinalCppMethod));
+ auto attributes = f->cppAttributes();
+ return !attributes.testFlag(FunctionAttribute::Override)
+ && !attributes.testFlag(FunctionAttribute::Final);
}
-void ShibokenGenerator::getInheritedOverloads(const AbstractMetaClass *scope,
+void ShibokenGenerator::getInheritedOverloads(const AbstractMetaClassCPtr &scope,
AbstractMetaFunctionCList *overloads)
{
if (overloads->isEmpty() || scope->isNamespace() || scope->baseClasses().isEmpty())
@@ -2303,7 +2292,8 @@ void ShibokenGenerator::getInheritedOverloads(const AbstractMetaClass *scope,
AbstractMetaFunctionCList baseCandidates;
- auto basePredicate = [&functionName, &seenSignatures, &baseCandidates](const AbstractMetaClass *b) {
+ auto basePredicate = [&functionName, &seenSignatures, &baseCandidates]
+ (const AbstractMetaClassCPtr &b) {
for (const auto &f : b->functions()) {
if (f->generateBinding() && f->name() == functionName) {
const QString signature = f->minimalSignature();
@@ -2316,7 +2306,7 @@ void ShibokenGenerator::getInheritedOverloads(const AbstractMetaClass *scope,
return false; // Keep going
};
- for (const auto *baseClass : scope->baseClasses())
+ for (const auto &baseClass : scope->baseClasses())
recurseClassHierarchy(baseClass, basePredicate);
// Remove the ones that are not made visible with using declarations
@@ -2346,256 +2336,236 @@ void ShibokenGenerator::getInheritedOverloads(const AbstractMetaClass *scope,
}
}
-Generator::OptionDescriptions ShibokenGenerator::options() const
+QList<OptionDescription> ShibokenGenerator::options()
{
return {
- {QLatin1String(AVOID_PROTECTED_HACK),
- QLatin1String("Avoid the use of the '#define protected public' hack.")},
- {QLatin1String(DISABLE_VERBOSE_ERROR_MESSAGES),
- QLatin1String("Disable verbose error messages. Turn the python code hard to debug\n"
- "but safe few kB on the generated bindings.")},
- {QLatin1String(PARENT_CTOR_HEURISTIC),
- QLatin1String("Enable heuristics to detect parent relationship on constructors.")},
- {QLatin1String(ENABLE_PYSIDE_EXTENSIONS),
- QLatin1String("Enable PySide extensions, such as support for signal/slots,\n"
- "use this if you are creating a binding for a Qt-based library.")},
- {QLatin1String(RETURN_VALUE_HEURISTIC),
- QLatin1String("Enable heuristics to detect parent relationship on return values\n"
- "(USE WITH CAUTION!)")},
- {QLatin1String(USE_ISNULL_AS_NB_NONZERO),
- QLatin1String("If a class have an isNull() const method, it will be used to compute\n"
- "the value of boolean casts")},
- {QLatin1String(USE_OPERATOR_BOOL_AS_NB_NONZERO),
- QLatin1String("If a class has an operator bool, it will be used to compute\n"
- "the value of boolean casts")},
- {QLatin1String(WRAPPER_DIAGNOSTICS),
- QLatin1String("Generate diagnostic code around wrappers")}
+ {DISABLE_VERBOSE_ERROR_MESSAGES,
+ u"Disable verbose error messages. Turn the python code hard to debug\n"
+ "but safe few kB on the generated bindings."_s},
+ {PARENT_CTOR_HEURISTIC,
+ u"Enable heuristics to detect parent relationship on constructors."_s},
+ {RETURN_VALUE_HEURISTIC,
+ u"Enable heuristics to detect parent relationship on return values\n"
+ "(USE WITH CAUTION!)"_s},
+ {USE_ISNULL_AS_NB_BOOL,
+ u"If a class have an isNull() const method, it will be used to compute\n"
+ "the value of boolean casts"_s},
+ {LEAN_HEADERS,
+ u"Forward declare classes in module headers"_s},
+ {USE_OPERATOR_BOOL_AS_NB_BOOL,
+ u"If a class has an operator bool, it will be used to compute\n"
+ "the value of boolean casts"_s},
+ {NO_IMPLICIT_CONVERSIONS,
+ u"Do not generate implicit_conversions for function arguments."_s},
+ {WRAPPER_DIAGNOSTICS,
+ u"Generate diagnostic code around wrappers"_s}
};
}
-bool ShibokenGenerator::handleOption(const QString &key, const QString & /* value */)
-{
- if (key == QLatin1String(PARENT_CTOR_HEURISTIC))
- return (m_useCtorHeuristic = true);
- if (key == QLatin1String(ENABLE_PYSIDE_EXTENSIONS))
- return (m_usePySideExtensions = true);
- if (key == QLatin1String(RETURN_VALUE_HEURISTIC))
- return (m_userReturnValueHeuristic = true);
- if (key == QLatin1String(DISABLE_VERBOSE_ERROR_MESSAGES))
- return (m_verboseErrorMessagesDisabled = true);
- if (key == QLatin1String(USE_ISNULL_AS_NB_NONZERO))
- return (m_useIsNullAsNbNonZero = true);
- if (key == QLatin1String(USE_OPERATOR_BOOL_AS_NB_NONZERO))
- return (m_useOperatorBoolAsNbNonZero = true);
- if (key == QLatin1String(AVOID_PROTECTED_HACK))
- return (m_avoidProtectedHack = true);
- if (key == QLatin1String(WRAPPER_DIAGNOSTICS))
- return (m_wrapperDiagnostics = true);
- return false;
-}
-
-static void getCode(QStringList &code, const CodeSnipList &codeSnips)
-{
- for (const CodeSnip &snip : qAsConst(codeSnips))
- code.append(snip.code());
-}
-
-static void getCode(QStringList &code, const TypeEntry *type)
+class ShibokenGeneratorOptionsParser : public OptionsParser
{
- getCode(code, type->codeSnips());
-
- CustomConversion *customConversion = type->customConversion();
- if (!customConversion)
- return;
+public:
+ explicit ShibokenGeneratorOptionsParser(ShibokenGeneratorOptions *o) : m_options(o) {}
- if (!customConversion->nativeToTargetConversion().isEmpty())
- code.append(customConversion->nativeToTargetConversion());
-
- const CustomConversion::TargetToNativeConversions &toCppConversions = customConversion->targetToNativeConversions();
- if (toCppConversions.isEmpty())
- return;
+ bool handleBoolOption(const QString & key, OptionSource source) override;
- for (CustomConversion::TargetToNativeConversion *toNative : qAsConst(toCppConversions))
- code.append(toNative->conversion());
-}
+private:
+ ShibokenGeneratorOptions *m_options;
+};
-bool ShibokenGenerator::doSetup()
+bool ShibokenGeneratorOptionsParser::handleBoolOption(const QString &key, OptionSource source)
{
- QStringList snips;
- const PrimitiveTypeEntryList &primitiveTypeList = primitiveTypes();
- for (const PrimitiveTypeEntry *type : primitiveTypeList)
- getCode(snips, type);
- const ContainerTypeEntryList &containerTypeList = containerTypes();
- for (const ContainerTypeEntry *type : containerTypeList)
- getCode(snips, type);
- for (auto metaClass : api().classes())
- getCode(snips, metaClass->typeEntry());
-
- const TypeSystemTypeEntry *moduleEntry = TypeDatabase::instance()->defaultTypeSystemType();
- Q_ASSERT(moduleEntry);
- getCode(snips, moduleEntry);
-
- const auto &functionGroups = getGlobalFunctionGroups();
- for (auto it = functionGroups.cbegin(), end = functionGroups.cend(); it != end; ++it) {
- for (const auto &func : it.value())
- getCode(snips, func->injectedCodeSnips());
- }
-
- for (const QString &code : qAsConst(snips)) {
- collectContainerTypesFromConverterMacros(code, true);
- collectContainerTypesFromConverterMacros(code, false);
+ if (source == OptionSource::CommandLineSingleDash)
+ return false;
+ if (key == PARENT_CTOR_HEURISTIC)
+ return (m_options->useCtorHeuristic = true);
+ if (key == RETURN_VALUE_HEURISTIC)
+ return (m_options->userReturnValueHeuristic = true);
+ if (key == DISABLE_VERBOSE_ERROR_MESSAGES)
+ return (m_options->verboseErrorMessagesDisabled = true);
+ if (key == USE_ISNULL_AS_NB_BOOL || key == USE_ISNULL_AS_NB_NONZERO) {
+ return (m_options->useIsNullAsNbBool = true);
+ }
+ if (key == LEAN_HEADERS)
+ return (m_options->leanHeaders= true);
+ if (key == USE_OPERATOR_BOOL_AS_NB_BOOL || key == USE_OPERATOR_BOOL_AS_NB_NONZERO) {
+ return (m_options->useOperatorBoolAsNbBool = true);
+ }
+ if (key == NO_IMPLICIT_CONVERSIONS) {
+ m_options->generateImplicitConversions = false;
+ return true;
}
+ if (key == WRAPPER_DIAGNOSTICS)
+ return (m_options->wrapperDiagnostics = true);
+ return false;
+}
- return true;
+std::shared_ptr<OptionsParser> ShibokenGenerator::createOptionsParser()
+{
+ return std::make_shared<ShibokenGeneratorOptionsParser>(&m_options);
}
-void ShibokenGenerator::collectContainerTypesFromConverterMacros(const QString &code, bool toPythonMacro)
+bool ShibokenGenerator::doSetup()
{
- QString convMacro = toPythonMacro ? QLatin1String("%CONVERTTOPYTHON[") : QLatin1String("%CONVERTTOCPP[");
- int offset = toPythonMacro ? sizeof("%CONVERTTOPYTHON") : sizeof("%CONVERTTOCPP");
- int start = 0;
- QString errorMessage;
- while ((start = code.indexOf(convMacro, start)) != -1) {
- int end = code.indexOf(QLatin1Char(']'), start);
- start += offset;
- if (code.at(start) != QLatin1Char('%')) {
- QString typeString = code.mid(start, end - start);
- auto type = AbstractMetaType::fromString(typeString, &errorMessage);
- if (type.has_value()) {
- addInstantiatedContainersAndSmartPointers(type.value(), type->originalTypeDescription());
- } else {
- QString m;
- QTextStream(&m) << __FUNCTION__ << ": Cannot translate type \""
- << typeString << "\": " << errorMessage;
- throw Exception(m);
- }
- }
- start = end;
- }
+ return true;
}
-bool ShibokenGenerator::useCtorHeuristic() const
+bool ShibokenGenerator::useCtorHeuristic()
{
- return m_useCtorHeuristic;
+ return m_options.useCtorHeuristic;
}
-bool ShibokenGenerator::useReturnValueHeuristic() const
+bool ShibokenGenerator::useReturnValueHeuristic()
{
- return m_userReturnValueHeuristic;
+ return m_options.userReturnValueHeuristic;
}
-bool ShibokenGenerator::usePySideExtensions() const
+bool ShibokenGenerator::useIsNullAsNbBool()
{
- return m_usePySideExtensions;
+ return m_options.useIsNullAsNbBool;
}
-bool ShibokenGenerator::useIsNullAsNbNonZero() const
+bool ShibokenGenerator::leanHeaders()
{
- return m_useIsNullAsNbNonZero;
+ return m_options.leanHeaders;
}
-bool ShibokenGenerator::useOperatorBoolAsNbNonZero() const
+bool ShibokenGenerator::useOperatorBoolAsNbBool()
{
- return m_useOperatorBoolAsNbNonZero;
+ return m_options.useOperatorBoolAsNbBool;
}
-bool ShibokenGenerator::avoidProtectedHack() const
+bool ShibokenGenerator::generateImplicitConversions()
{
- return m_avoidProtectedHack;
+ return m_options.generateImplicitConversions;
}
QString ShibokenGenerator::moduleCppPrefix(const QString &moduleName)
{
QString result = moduleName.isEmpty() ? packageName() : moduleName;
- result.replace(QLatin1Char('.'), QLatin1Char('_'));
+ result.replace(u'.', u'_');
return result;
}
+QString ShibokenGenerator::cppApiVariableNameOld(const QString &moduleName)
+{
+ return "Sbk"_L1 + moduleCppPrefix(moduleName) + "Types"_L1;
+}
+
QString ShibokenGenerator::cppApiVariableName(const QString &moduleName)
{
- return QLatin1String("Sbk") + moduleCppPrefix(moduleName)
- + QLatin1String("Types");
+ return "Sbk"_L1 + moduleCppPrefix(moduleName) + "TypeStructs"_L1;
}
QString ShibokenGenerator::pythonModuleObjectName(const QString &moduleName)
{
- return QLatin1String("Sbk") + moduleCppPrefix(moduleName)
- + QLatin1String("ModuleObject");
+ return "Sbk"_L1 + moduleCppPrefix(moduleName) + "ModuleObject"_L1;
}
QString ShibokenGenerator::convertersVariableName(const QString &moduleName)
{
- QString result = cppApiVariableName(moduleName);
+ QString result = cppApiVariableNameOld(moduleName);
result.chop(1);
- result.append(QLatin1String("Converters"));
+ result.append(u"Converters"_s);
return result;
}
static QString processInstantiationsVariableName(const AbstractMetaType &type)
{
- QString res = QLatin1Char('_') + _fixedCppTypeName(type.typeEntry()->qualifiedCppName()).toUpper();
+ QString res = u'_' + _fixedCppTypeName(type.typeEntry()->qualifiedCppName());
for (const auto &instantiation : type.instantiations()) {
res += instantiation.isContainer()
? processInstantiationsVariableName(instantiation)
- : QLatin1Char('_') + _fixedCppTypeName(instantiation.cppSignature()).toUpper();
+ : u'_' + _fixedCppTypeName(instantiation.cppSignature());
}
return res;
}
static void appendIndexSuffix(QString *s)
{
- if (!s->endsWith(QLatin1Char('_')))
- s->append(QLatin1Char('_'));
- s->append(QStringLiteral("IDX"));
+ if (!s->endsWith(u'_'))
+ s->append(u'_');
+ s->append("IDX"_L1);
}
-QString ShibokenGenerator::getTypeAlternateTemplateIndexVariableName(const AbstractMetaClass *metaClass)
+QString
+ ShibokenGenerator::getTypeAlternateTemplateIndexVariableName(const AbstractMetaClassCPtr &metaClass)
{
- const AbstractMetaClass *templateBaseClass = metaClass->templateBaseClass();
+ const auto templateBaseClass = metaClass->templateBaseClass();
Q_ASSERT(templateBaseClass);
- QString result = QLatin1String("SBK_")
- + _fixedCppTypeName(templateBaseClass->typeEntry()->qualifiedCppName()).toUpper();
+ QString result = u"SBK_"_s
+ + _fixedCppTypeName(templateBaseClass->typeEntry()->qualifiedCppName());
for (const auto &instantiation : metaClass->templateBaseClassInstantiations())
result += processInstantiationsVariableName(instantiation);
appendIndexSuffix(&result);
return result;
}
-QString ShibokenGenerator::getTypeIndexVariableName(const AbstractMetaClass *metaClass)
+QString ShibokenGenerator::getTypeIndexVariableName(const AbstractMetaClassCPtr &metaClass)
{
return getTypeIndexVariableName(metaClass->typeEntry());
}
-QString ShibokenGenerator::getTypeIndexVariableName(const TypeEntry *type)
+QString ShibokenGenerator::getTypeIndexVariableName(TypeEntryCPtr type)
{
- if (type->isCppPrimitive()) {
- const auto *trueType = static_cast<const PrimitiveTypeEntry *>(type);
- if (trueType->basicReferencedTypeEntry())
- type = trueType->basicReferencedTypeEntry();
- }
- QString result = QLatin1String("SBK_");
+ if (isCppPrimitive(type))
+ type = basicReferencedTypeEntry(type);
+ QString result = u"SBK_"_s;
// Disambiguate namespaces per module to allow for extending them.
if (type->isNamespace()) {
QString package = type->targetLangPackage();
- const int dot = package.lastIndexOf(QLatin1Char('.'));
+ const int dot = package.lastIndexOf(u'.');
result += QStringView{package}.right(package.size() - (dot + 1));
}
- result += _fixedCppTypeName(type->qualifiedCppName()).toUpper();
+ result += _fixedCppTypeName(type->qualifiedCppName());
appendIndexSuffix(&result);
return result;
}
QString ShibokenGenerator::getTypeIndexVariableName(const AbstractMetaType &type)
{
- QString result = QLatin1String("SBK");
+ QString result = u"SBK"_s;
if (type.typeEntry()->isContainer())
- result += QLatin1Char('_') + moduleName().toUpper();
+ result += u'_' + moduleName();
result += processInstantiationsVariableName(type);
appendIndexSuffix(&result);
return result;
}
-bool ShibokenGenerator::verboseErrorMessagesDisabled() const
+void collectfromTypeEntry(TypeEntryCPtr entry, QStringList &typeNames)
+{
+ if (entry->shouldGenerate()) {
+ typeNames[entry->sbkIndex()] = entry->qualifiedTargetLangName();
+ if (entry->isEnum()) {
+ auto ete = std::static_pointer_cast<const EnumTypeEntry>(entry);
+ if (ete->flags()) {
+ auto entry = ete->flags();
+ typeNames[entry->sbkIndex()] = entry->qualifiedTargetLangName();
+ }
+ }
+ }
+}
+
+void ShibokenGenerator::collectFullTypeNamesArray(QStringList &typeNames)
+{
+ for (const auto &metaClass : api().classes()) {
+ collectfromTypeEntry(metaClass->typeEntry(), typeNames);
+
+ for (const AbstractMetaEnum &metaEnum : metaClass->enums())
+ collectfromTypeEntry(metaEnum.typeEntry(), typeNames);
+
+ int smartPointerCountIndex = getMaxTypeIndex();
+ for (const auto &smp : api().instantiatedSmartPointers()) {
+ auto entry = smp.type.typeEntry();
+ typeNames[smartPointerCountIndex] = entry->qualifiedTargetLangName();
+ ++smartPointerCountIndex;
+ }
+ }
+ for (const AbstractMetaEnum &metaEnum : api().globalEnums())
+ collectfromTypeEntry(metaEnum.typeEntry(), typeNames);
+}
+
+bool ShibokenGenerator::verboseErrorMessagesDisabled()
{
- return m_verboseErrorMessagesDisabled;
+ return m_options.verboseErrorMessagesDisabled;
}
bool ShibokenGenerator::pythonFunctionWrapperUsesListOfArguments(const AbstractMetaFunctionCPtr &func) const
@@ -2618,57 +2588,62 @@ QString ShibokenGenerator::minimalConstructorExpression(const ApiExtractorResult
return ctor->initialization();
const QString message =
- msgCouldNotFindMinimalConstructor(QLatin1String(__FUNCTION__),
+ msgCouldNotFindMinimalConstructor(QLatin1StringView(__FUNCTION__),
type.cppSignature(), errorMessage);
qCWarning(lcShiboken()).noquote() << message;
- return u";\n#error "_qs + message + u'\n';
+ return u";\n#error "_s + message + u'\n';
}
QString ShibokenGenerator::minimalConstructorExpression(const ApiExtractorResult &api,
- const TypeEntry *type)
+ const TypeEntryCPtr &type)
{
- if (type->isExtendedCppPrimitive())
+ if (isExtendedCppPrimitive(type))
return {};
const auto ctor = minimalConstructor(api, type);
if (ctor.has_value())
return ctor->initialization();
- const QString message = msgCouldNotFindMinimalConstructor(QLatin1String(__FUNCTION__),
- type->qualifiedCppName());
+ const QString message =
+ msgCouldNotFindMinimalConstructor(QLatin1StringView(__FUNCTION__),
+ type->qualifiedCppName());
qCWarning(lcShiboken()).noquote() << message;
- return u";\n#error "_qs + message + u'\n';
+ return u";\n#error "_s + message + u'\n';
}
QString ShibokenGenerator::pythonArgsAt(int i)
{
- return QLatin1String(PYTHON_ARGS) + QLatin1Char('[')
- + QString::number(i) + QLatin1Char(']');
+ return PYTHON_ARGS + u'[' + QString::number(i) + u']';
}
void ShibokenGenerator::replaceTemplateVariables(QString &code,
const AbstractMetaFunctionCPtr &func) const
{
- const AbstractMetaClass *cpp_class = func->ownerClass();
+ const auto cpp_class = func->ownerClass();
if (cpp_class)
- code.replace(QLatin1String("%TYPE"), cpp_class->name());
+ code.replace(u"%TYPE"_s, cpp_class->name());
const AbstractMetaArgumentList &argument = func->arguments();
for (const AbstractMetaArgument &arg : argument)
- code.replace(QLatin1Char('%') + QString::number(arg.argumentIndex() + 1), arg.name());
+ code.replace(u'%' + QString::number(arg.argumentIndex() + 1), arg.name());
//template values
- code.replace(QLatin1String("%RETURN_TYPE"), translateType(func->type(), cpp_class));
- code.replace(QLatin1String("%FUNCTION_NAME"), func->originalName());
+ code.replace(u"%RETURN_TYPE"_s, translateType(func->type(), cpp_class));
+ code.replace(u"%FUNCTION_NAME"_s, func->originalName());
- if (code.contains(QLatin1String("%ARGUMENT_NAMES"))) {
+ if (code.contains(u"%ARGUMENT_NAMES")) {
StringStream aux_stream;
writeArgumentNames(aux_stream, func, Generator::SkipRemovedArguments);
- code.replace(QLatin1String("%ARGUMENT_NAMES"), aux_stream);
+ code.replace(u"%ARGUMENT_NAMES"_s, aux_stream);
}
- if (code.contains(QLatin1String("%ARGUMENTS"))) {
+ if (code.contains(u"%ARGUMENTS")) {
StringStream aux_stream;
writeFunctionArguments(aux_stream, func, Options(SkipDefaultValues) | SkipRemovedArguments);
- code.replace(QLatin1String("%ARGUMENTS"), aux_stream);
+ code.replace(u"%ARGUMENTS"_s, aux_stream);
}
}
+
+QString ShibokenGenerator::stdMove(const QString &c)
+{
+ return u"std::move("_s + c + u')';
+}
diff --git a/sources/shiboken6/generator/shiboken/shibokengenerator.h b/sources/shiboken6/generator/shiboken/shibokengenerator.h
index 03ebf2d2e..22ee73fa2 100644
--- a/sources/shiboken6/generator/shiboken/shibokengenerator.h
+++ b/sources/shiboken6/generator/shiboken/shibokengenerator.h
@@ -1,66 +1,42 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef SHIBOKENGENERATOR_H
#define SHIBOKENGENERATOR_H
-extern const char *CPP_ARG;
-extern const char *CPP_ARG_REMOVED;
-extern const char *CPP_RETURN_VAR;
-extern const char *CPP_SELF_VAR;
-extern const char *NULL_PTR;
-extern const char *PYTHON_ARG;
-extern const char *PYTHON_ARGS;
-extern const char *PYTHON_OVERRIDE_VAR;
-extern const char *PYTHON_RETURN_VAR;
-extern const char *PYTHON_TO_CPP_VAR;
-extern const char *SMART_POINTER_GETTER;
-
-extern const char *CONV_RULE_OUT_VAR_SUFFIX;
-extern const char *BEGIN_ALLOW_THREADS;
-extern const char *END_ALLOW_THREADS;
-
#include <generator.h>
-#include "typesystem.h"
+#include "customconversion_typedefs.h"
+#include "abstractmetalang_enums.h"
+#include "typesystem_typedefs.h"
+#include "typesystem_enums.h"
#include <QtCore/QRegularExpression>
#include <array>
+#include <optional>
+class EnumTypeEntry;
+class FlagsTypeEntry;
class DocParser;
class CodeSnip;
class QPropertySpec;
class OverloadData;
-class TextStream;
+class TargetToNativeConversion;
struct GeneratorClassInfoCacheEntry;
+struct IncludeGroup;
+struct ShibokenGeneratorOptions;
+
+class TextStream;
+
+// Function to be used for implementing nb_bool
+struct BoolCastFunction
+{
+ AbstractMetaFunctionCPtr function;
+ bool invert = false; // Function is "isNull()", (invert result).
+};
-QT_FORWARD_DECLARE_CLASS(TextStream)
+using BoolCastFunctionOptional = std::optional<BoolCastFunction>;
/**
* Abstract generator that contains common methods used in CppGenerator and HeaderGenerator.
@@ -68,6 +44,29 @@ QT_FORWARD_DECLARE_CLASS(TextStream)
class ShibokenGenerator : public Generator
{
public:
+ Q_DISABLE_COPY_MOVE(ShibokenGenerator)
+
+ /// Besides the actual bindings (see AbstractMetaFunction::generateBinding(),
+ /// some functions need to be generated into the wrapper class
+ /// (virtual method/avoid protected hack expose).
+ enum class FunctionGenerationFlag
+ {
+ None = 0x0,
+ /// Virtual method overridable in Python
+ VirtualMethod = 0x1,
+ /// Special QObject virtuals
+ QMetaObjectMethod = 0x2,
+ /// Needs a protected wrapper for avoidProtectedHack()
+ /// public "foo_protected()" calling "foo()"
+ ProtectedWrapper = 0x4, //
+ /// Pass through constructor
+ WrapperConstructor = 0x8,
+ /// Generate a special copy constructor
+ /// "FooBar_Wrapper(const Foo&)" for constructing a wrapper from a value
+ WrapperSpecialCopyConstructor = 0x10
+ };
+ Q_DECLARE_FLAGS(FunctionGeneration, FunctionGenerationFlag);
+
enum class AttroCheckFlag
{
None = 0x0,
@@ -90,18 +89,18 @@ public:
const char *name() const override { return "Shiboken"; }
- /// Returns true if the user enabled PySide extensions.
- bool usePySideExtensions() const;
+ static QList<OptionDescription> options();
+ static std::shared_ptr<OptionsParser> createOptionsParser();
static QString minimalConstructorExpression(const ApiExtractorResult &api,
const AbstractMetaType &type);
static QString minimalConstructorExpression(const ApiExtractorResult &api,
- const TypeEntry *type);
+ const TypeEntryCPtr &type);
protected:
bool doSetup() override;
- GeneratorContext contextForClass(const AbstractMetaClass *c) const override;
+ GeneratorContext contextForClass(const AbstractMetaClassCPtr &c) const override;
/**
* Returns a map with all functions grouped, the function name is used as key.
@@ -109,7 +108,12 @@ protected:
* \param scope Where to search for functions, null means all global functions.
*/
FunctionGroups getGlobalFunctionGroups() const;
- static FunctionGroups getFunctionGroups(const AbstractMetaClass *scope);
+ static FunctionGroups getFunctionGroups(const AbstractMetaClassCPtr &scope);
+
+ static QList<AbstractMetaFunctionCList>
+ numberProtocolOperators(const AbstractMetaClassCPtr &scope);
+
+ static BoolCastFunctionOptional boolCast(const AbstractMetaClassCPtr &scope);
/**
* Returns all different inherited overloads of func, and includes func as well.
@@ -122,17 +126,17 @@ protected:
/// Write user's custom code snippets at class or module level.
void writeClassCodeSnips(TextStream &s,
- const CodeSnipList &codeSnips,
+ const QList<CodeSnip> &codeSnips,
TypeSystem::CodeSnipPosition position,
TypeSystem::Language language,
const GeneratorContext &context) const;
void writeCodeSnips(TextStream &s,
- const CodeSnipList &codeSnips,
+ const QList<CodeSnip> &codeSnips,
TypeSystem::CodeSnipPosition position,
TypeSystem::Language language) const;
/// Write user's custom code snippets at function level.
void writeCodeSnips(TextStream &s,
- const CodeSnipList &codeSnips,
+ const QList<CodeSnip> &codeSnips,
TypeSystem::CodeSnipPosition position,
TypeSystem::Language language,
const AbstractMetaFunctionCPtr &func,
@@ -141,6 +145,7 @@ protected:
/// Replaces variables for the user's custom code at global or class level.
void processCodeSnip(QString &code) const;
+ void processCodeSnip(QString &code, const QString &context) const;
void processClassCodeSnip(QString &code, const GeneratorContext &context) const;
/**
@@ -166,171 +171,166 @@ protected:
int arg_count = -1) const;
/// Returns the top-most class that has multiple inheritance in the ancestry.
- static const AbstractMetaClass *getMultipleInheritingClass(const AbstractMetaClass *metaClass);
+ static AbstractMetaClassCPtr
+ getMultipleInheritingClass(const AbstractMetaClassCPtr &metaClass);
- static bool useOverrideCaching(const AbstractMetaClass *metaClass);
- AttroCheck checkAttroFunctionNeeds(const AbstractMetaClass *metaClass) const;
+ static bool useOverrideCaching(const AbstractMetaClassCPtr &metaClass);
+ static AttroCheck checkAttroFunctionNeeds(const AbstractMetaClassCPtr &metaClass);
- /// Returns a list of methods of the given class where each one is part of a different overload with both static and non-static method.
+ /// Returns a list of methods of the given class where each one is part of
+ /// a different overload with both static and non-static method.
static AbstractMetaFunctionCList
- getMethodsWithBothStaticAndNonStaticMethods(const AbstractMetaClass *metaClass);
+ getMethodsWithBothStaticAndNonStaticMethods(const AbstractMetaClassCPtr &metaClass);
static void writeToPythonConversion(TextStream &s,
const AbstractMetaType &type,
- const AbstractMetaClass *context,
+ const AbstractMetaClassCPtr &context,
const QString &argumentName);
static void writeToCppConversion(TextStream &s,
const AbstractMetaType &type,
- const AbstractMetaClass *context,
const QString &inArgName,
const QString &outArgName);
static void writeToCppConversion(TextStream &s,
- const AbstractMetaClass *metaClass, const QString &inArgName,
+ const AbstractMetaClassCPtr &metaClass,
+ const QString &inArgName,
const QString &outArgName);
/// Returns true if the argument is a pointer that rejects nullptr values.
static bool shouldRejectNullPointerArgument(const AbstractMetaFunctionCPtr &func,
int argIndex);
- /// Verifies if the class should have a C++ wrapper generated for it, instead of only a Python wrapper.
- bool shouldGenerateCppWrapper(const AbstractMetaClass *metaClass) const;
+ /// Verifies if the class should have a C++ wrapper generated for it,
+ /// instead of only a Python wrapper.
+ static bool shouldGenerateCppWrapper(const AbstractMetaClassCPtr &metaClass);
- /// Condition to call WriteVirtualMethodNative. Was extracted because also used to count these calls.
- bool shouldWriteVirtualMethodNative(const AbstractMetaFunctionCPtr &func) const;
+ static bool shouldGenerateMetaObjectFunctions(const AbstractMetaClassCPtr &metaClass);
- QString wrapperName(const AbstractMetaClass *metaClass) const;
+ /// Returns which functions need to be generated into the wrapper class
+ static FunctionGeneration functionGeneration(const AbstractMetaFunctionCPtr &func);
+
+ // Return a list of implicit conversions if generation is enabled.
+ AbstractMetaFunctionCList implicitConversions(const TypeEntryCPtr &t) const;
+
+ static QString wrapperName(const AbstractMetaClassCPtr &metaClass);
+
+ static QString fullPythonClassName(const AbstractMetaClassCPtr &metaClass);
+
+ static QString headerFileNameForContext(const GeneratorContext &context);
+ IncludeGroup baseWrapperIncludes(const GeneratorContext &classContext) const;
- static QString fullPythonClassName(const AbstractMetaClass *metaClass);
static QString fullPythonFunctionName(const AbstractMetaFunctionCPtr &func, bool forceFunc);
- bool wrapperDiagnostics() const { return m_wrapperDiagnostics; }
+ static bool wrapperDiagnostics();
static QString protectedEnumSurrogateName(const AbstractMetaEnum &metaEnum);
static QString pythonPrimitiveTypeName(const QString &cppTypeName);
- static QString pythonPrimitiveTypeName(const PrimitiveTypeEntry *type);
- static QString pythonOperatorFunctionName(const QString &cppOpFuncName);
static QString pythonOperatorFunctionName(const AbstractMetaFunctionCPtr &func);
- static QString pythonRichCompareOperatorId(const QString &cppOpFuncName);
- static QString pythonRichCompareOperatorId(const AbstractMetaFunctionCPtr &func);
+ static QList<AbstractMetaFunctionCList>
+ filterGroupedOperatorFunctions(const AbstractMetaClassCPtr &metaClass,
+ OperatorQueryOptions query);
- static QString fixedCppTypeName(const CustomConversion::TargetToNativeConversion *toNative);
+ static QString fixedCppTypeName(const TargetToNativeConversion &toNative);
static QString fixedCppTypeName(const AbstractMetaType &type);
- static QString fixedCppTypeName(const TypeEntry *type, QString typeName = QString());
+ static QString fixedCppTypeName(const TypeEntryCPtr &type, QString typeName = {});
static bool isNumber(const QString &cpythonApiName);
- static bool isNumber(const TypeEntry *type);
+ static bool isNumber(const TypeEntryCPtr &type);
static bool isNumber(const AbstractMetaType &type);
- static bool isPyInt(const TypeEntry *type);
+ static bool isPyInt(const TypeEntryCPtr &type);
static bool isPyInt(const AbstractMetaType &type);
static bool isNullPtr(const QString &value);
static QString converterObject(const AbstractMetaType &type) ;
- static QString converterObject(const TypeEntry *type);
+ static QString converterObject(const TypeEntryCPtr &type);
- static QString cpythonBaseName(const AbstractMetaClass *metaClass);
- static QString cpythonBaseName(const TypeEntry *type);
+ static QString cpythonBaseName(const AbstractMetaClassCPtr &metaClass);
+ static QString cpythonBaseName(const TypeEntryCPtr &type);
+ static QString containerCpythonBaseName(const ContainerTypeEntryCPtr &ctype);
static QString cpythonBaseName(const AbstractMetaType &type);
- static QString cpythonTypeName(const AbstractMetaClass *metaClass);
- static QString cpythonTypeName(const TypeEntry *type);
- static QString cpythonTypeNameExt(const TypeEntry *type);
- static QString cpythonTypeNameExt(const AbstractMetaType &type) ;
- QString cpythonCheckFunction(const TypeEntry *type) const;
- QString cpythonCheckFunction(AbstractMetaType metaType) const;
- /**
- * Receives the argument \p type and tries to find the appropriate AbstractMetaType for it
- * or a custom type check.
- * \param type A string representing the type to be discovered.
- * \param metaType A pointer to an AbstractMetaType pointer, to where write a new meta type object
- * if one is produced from the \p type string. This object must be deallocated by
- * the caller. It will set the target variable to nullptr, is \p type is a Python type.
- * \return A custom check if \p type is a custom type, or an empty string if \p metaType
- * receives an existing type object.
- */
- struct CPythonCheckFunctionResult
- {
- QString checkFunction;
- std::optional<AbstractMetaType> type;
- };
- static CPythonCheckFunctionResult guessCPythonCheckFunction(const QString &type);
- static QString cpythonIsConvertibleFunction(const TypeEntry *type);
- QString cpythonIsConvertibleFunction(AbstractMetaType metaType) const;
- QString cpythonIsConvertibleFunction(const AbstractMetaArgument &metaArg) const;
-
- static QString cpythonToCppConversionFunction(const AbstractMetaClass *metaClass) ;
- static QString cpythonToCppConversionFunction(const AbstractMetaType &type,
- const AbstractMetaClass *context = nullptr);
- static QString cpythonToPythonConversionFunction(const AbstractMetaType &type,
- const AbstractMetaClass *context = nullptr);
- static QString cpythonToPythonConversionFunction(const AbstractMetaClass *metaClass);
- static QString cpythonToPythonConversionFunction(const TypeEntry *type);
+ static QString cpythonTypeName(const AbstractMetaClassCPtr &metaClass);
+ static QString cpythonTypeName(const TypeEntryCPtr &type);
+ static QString cpythonTypeNameExtSet(const TypeEntryCPtr &type);
+ static QString cpythonTypeNameExtSet(const AbstractMetaType &type);
+ static QString cpythonTypeNameExt(const TypeEntryCPtr &type);
+ static QString cpythonTypeNameExt(const AbstractMetaType &type);
+ static QString cpythonCheckFunction(TypeEntryCPtr type);
+ static QString cpythonCheckFunction(AbstractMetaType metaType);
+ static QString cpythonIsConvertibleFunction(const TypeEntryCPtr &type);
+ static QString cpythonIsConvertibleFunction(const AbstractMetaType &metaType);
+ static QString cpythonIsConvertibleFunction(const AbstractMetaArgument &metaArg);
+
+ static QString cpythonToCppConversionFunction(const AbstractMetaClassCPtr &metaClass) ;
+ static QString cpythonToCppConversionFunction(const AbstractMetaType &type);
+ static QString cpythonToPythonConversionFunction(const AbstractMetaType &type);
+ static QString cpythonToPythonConversionFunction(const AbstractMetaClassCPtr &metaClass);
+ static QString cpythonToPythonConversionFunction(const TypeEntryCPtr &type);
static QString cpythonFunctionName(const AbstractMetaFunctionCPtr &func) ;
static QString cpythonMethodDefinitionName(const AbstractMetaFunctionCPtr &func);
- static QString cpythonGettersSettersDefinitionName(const AbstractMetaClass *metaClass);
- static QString cpythonGetattroFunctionName(const AbstractMetaClass *metaClass);
- static QString cpythonSetattroFunctionName(const AbstractMetaClass *metaClass);
+ static QString cpythonGettersSettersDefinitionName(const AbstractMetaClassCPtr &metaClass);
+ static QString cpythonGetattroFunctionName(const AbstractMetaClassCPtr &metaClass);
+ static QString cpythonSetattroFunctionName(const AbstractMetaClassCPtr &metaClass);
static QString cpythonGetterFunctionName(const AbstractMetaField &metaField);
static QString cpythonSetterFunctionName(const AbstractMetaField &metaField);
static QString cpythonGetterFunctionName(const QPropertySpec &property,
- const AbstractMetaClass *metaClass);
+ const AbstractMetaClassCPtr &metaClass);
static QString cpythonSetterFunctionName(const QPropertySpec &property,
- const AbstractMetaClass *metaClass);
- static QString cpythonWrapperCPtr(const AbstractMetaClass *metaClass,
- const QString &argName = QLatin1String("self"));
- static QString cpythonWrapperCPtr(const AbstractMetaType &metaType,
+ const AbstractMetaClassCPtr &metaClass);
+ static QString cpythonWrapperCPtr(const AbstractMetaClassCPtr &metaClass,
+ const QString &argName = QLatin1StringView("self"));
+ static QString cpythonWrapperCPtr(const AbstractMetaType &metaType,
const QString &argName);
- static QString cpythonWrapperCPtr(const TypeEntry *type, const QString &argName);
-
- /// Guesses the scope to where belongs an argument's default value.
- QString guessScopeForDefaultValue(const AbstractMetaFunctionCPtr &func,
- const AbstractMetaArgument &arg) const;
- QString guessScopeForDefaultFlagsValue(const AbstractMetaFunctionCPtr &func,
- const AbstractMetaArgument &arg,
- const QString &value) const;
+ static QString cpythonWrapperCPtr(const TypeEntryCPtr &type, const QString &argName);
- static QString cpythonEnumName(const EnumTypeEntry *enumEntry);
+ static QString cpythonEnumName(const EnumTypeEntryCPtr &enumEntry);
static QString cpythonEnumName(const AbstractMetaEnum &metaEnum);
- static QString cpythonFlagsName(const FlagsTypeEntry *flagsEntry);
+ static QString cpythonFlagsName(const FlagsTypeEntryCPtr &flagsEntry);
static QString cpythonFlagsName(const AbstractMetaEnum *metaEnum);
- /// Returns the special cast function name, the function used to proper cast class with multiple inheritance.
- static QString cpythonSpecialCastFunctionName(const AbstractMetaClass *metaClass);
+ /// Returns the special cast function name, the function used to proper cast
+ /// class with multiple inheritance.
+ static QString cpythonSpecialCastFunctionName(const AbstractMetaClassCPtr &metaClass);
- static QString getFormatUnitString(const AbstractMetaFunctionCPtr &func, bool incRef = false);
-
- /// Returns the file name for the module global header. If no module name is provided the current will be used.
+ /// Returns the file name for the module global header. If no module name
+ /// is provided the current will be used.
static QString getModuleHeaderFileName(const QString &moduleName = QString());
static QString getPrivateModuleHeaderFileName(const QString &moduleName = QString());
- OptionDescriptions options() const override;
- bool handleOption(const QString &key, const QString &value) override;
+ /// Includes for header (native wrapper class) or binding source
+ QList<IncludeGroup> classIncludes(const AbstractMetaClassCPtr &metaClass) const;
/// Returns true if the user enabled the so called "parent constructor heuristic".
- bool useCtorHeuristic() const;
+ static bool useCtorHeuristic();
/// Returns true if the user enabled the so called "return value heuristic".
- bool useReturnValueHeuristic() const;
+ static bool useReturnValueHeuristic();
/// Returns true if the generator should use the result of isNull()const to compute boolean casts.
- bool useIsNullAsNbNonZero() const;
+ static bool useIsNullAsNbBool();
+ /// Whether to generate lean module headers
+ static bool leanHeaders();
/// Returns true if the generator should use operator bool to compute boolean casts.
- bool useOperatorBoolAsNbNonZero() const;
- /// Returns true if the generated code should use the "#define protected public" hack.
- bool avoidProtectedHack() const;
+ static bool useOperatorBoolAsNbBool();
+ /// Generate implicit conversions of function arguments
+ static bool generateImplicitConversions();
+ static QString cppApiVariableNameOld(const QString &moduleName = {});
static QString cppApiVariableName(const QString &moduleName = QString());
static QString pythonModuleObjectName(const QString &moduleName = QString());
static QString convertersVariableName(const QString &moduleName = QString());
/// Returns the type index variable name for a given class.
- static QString getTypeIndexVariableName(const AbstractMetaClass *metaClass);
+ static QString getTypeIndexVariableName(const AbstractMetaClassCPtr &metaClass);
/// Returns the type index variable name for a given typedef for a template
/// class instantiation made of the template class and the instantiation values
- static QString getTypeAlternateTemplateIndexVariableName(const AbstractMetaClass *metaClass);
- static QString getTypeIndexVariableName(const TypeEntry *type);
+ static QString getTypeAlternateTemplateIndexVariableName(const AbstractMetaClassCPtr &metaClass);
+ static QString getTypeIndexVariableName(TypeEntryCPtr type);
static QString getTypeIndexVariableName(const AbstractMetaType &type) ;
+ /// Collect all type names as an array for initializing the type/name struct.
+ void collectFullTypeNamesArray(QStringList &typeNames);
+
/// Returns true if the user don't want verbose error messages on the generated bindings.
- bool verboseErrorMessagesDisabled() const;
+ static bool verboseErrorMessagesDisabled();
void collectContainerTypesFromConverterMacros(const QString &code, bool toPythonMacro);
@@ -338,18 +338,14 @@ protected:
const AbstractMetaFunctionCPtr &metaFunc,
Options options = NoOption);
- static void writeUnusedVariableCast(TextStream &s, const QString &variableName);
-
- AbstractMetaFunctionCList filterFunctions(const AbstractMetaClass *metaClass) const;
-
// All data about extended converters: the type entries of the target type, and a
// list of AbstractMetaClasses accepted as argument for the conversion.
- using ExtendedConverterData = QHash<const TypeEntry *, AbstractMetaClassCList>;
+ using ExtendedConverterData = QHash<TypeEntryCPtr, AbstractMetaClassCList>;
/// Returns all extended conversions for the current module.
ExtendedConverterData getExtendedConverters() const;
/// Returns a list of converters for the non wrapper types of the current module.
- static QList<const CustomConversion *> getPrimitiveCustomConversions() ;
+ static QList<CustomConversionPtr> getPrimitiveCustomConversions();
/// Returns true if the Python wrapper for the received OverloadData must accept a list of arguments.
bool pythonFunctionWrapperUsesListOfArguments(const AbstractMetaFunctionCPtr &func) const;
@@ -359,21 +355,28 @@ protected:
static QString pythonArgsAt(int i);
- static const QHash<QString, QString> &formatUnits();
+ /// Return the format character for C++->Python->C++ conversion (Py_BuildValue)
+ static const QHash<QString, QChar> &formatUnits();
+
+ static QString stdMove(const QString &c);
private:
static QString getModuleHeaderFileBaseName(const QString &moduleName = QString());
static QString cpythonGetterFunctionName(const QString &name,
- const AbstractMetaClass *enclosingClass);
+ const AbstractMetaClassCPtr &enclosingClass);
static QString cpythonSetterFunctionName(const QString &name,
- const AbstractMetaClass *enclosingClass);
+ const AbstractMetaClassCPtr &enclosingClass);
- static const GeneratorClassInfoCacheEntry &getGeneratorClassInfo(const AbstractMetaClass *scope);
- static FunctionGroups getFunctionGroupsImpl(const AbstractMetaClass *scope);
- static bool classNeedsGetattroFunctionImpl(const AbstractMetaClass *metaClass);
+ static const GeneratorClassInfoCacheEntry &
+ getGeneratorClassInfo(const AbstractMetaClassCPtr &scope);
+ static FunctionGroups getFunctionGroupsImpl(const AbstractMetaClassCPtr &scope);
+ static QList<AbstractMetaFunctionCList>
+ getNumberProtocolOperators(const AbstractMetaClassCPtr &metaClass);
+ static BoolCastFunctionOptional getBoolCast(const AbstractMetaClassCPtr &metaClass);
+ static bool classNeedsGetattroFunctionImpl(const AbstractMetaClassCPtr &metaClass);
QString translateTypeForWrapperMethod(const AbstractMetaType &cType,
- const AbstractMetaClass *context,
+ const AbstractMetaClassCPtr &context,
Options opt = NoOption) const;
/**
@@ -382,7 +385,7 @@ private:
* \param func the metafunction to be searched in subclasses.
* \param seen the function's minimal signatures already seen.
*/
- static void getInheritedOverloads(const AbstractMetaClass *scope,
+ static void getInheritedOverloads(const AbstractMetaClassCPtr &scope,
AbstractMetaFunctionCList *overloads);
@@ -411,7 +414,7 @@ private:
QString functionReturnType(const AbstractMetaFunctionCPtr &func, Options options = NoOption) const;
/// Utility function for writeCodeSnips.
- using ArgumentVarReplacementPair = QPair<AbstractMetaArgument, QString>;
+ using ArgumentVarReplacementPair = std::pair<AbstractMetaArgument, QString>;
using ArgumentVarReplacementList = QList<ArgumentVarReplacementPair>;
static ArgumentVarReplacementList
getArgumentReplacement(const AbstractMetaFunctionCPtr &func,
@@ -419,7 +422,7 @@ private:
const AbstractMetaArgument *lastArg);
/// Returns a string with the user's custom code snippets that comply with \p position and \p language.
- static QString getCodeSnippets(const CodeSnipList &codeSnips,
+ static QString getCodeSnippets(const QList<CodeSnip> &codeSnips,
TypeSystem::CodeSnipPosition position,
TypeSystem::Language language);
@@ -473,14 +476,7 @@ private:
void replaceTemplateVariables(QString &code,
const AbstractMetaFunctionCPtr &func) const;
- bool m_useCtorHeuristic = false;
- bool m_userReturnValueHeuristic = false;
- bool m_usePySideExtensions = false;
- bool m_verboseErrorMessagesDisabled = false;
- bool m_useIsNullAsNbNonZero = false;
- bool m_useOperatorBoolAsNbNonZero = false;
- bool m_avoidProtectedHack = false;
- bool m_wrapperDiagnostics = false;
+ static ShibokenGeneratorOptions m_options;
/// Type system converter variable replacement names and regular expressions.
static const QHash<int, QString> &typeSystemConvName();
@@ -489,6 +485,7 @@ private:
static const TypeSystemConverterRegExps &typeSystemConvRegExps();
};
+Q_DECLARE_OPERATORS_FOR_FLAGS(ShibokenGenerator::FunctionGeneration);
Q_DECLARE_OPERATORS_FOR_FLAGS(ShibokenGenerator::AttroCheck);
#endif // SHIBOKENGENERATOR_H
diff --git a/sources/shiboken6/generatorrunnermacros.h b/sources/shiboken6/generatorrunnermacros.h
index 1f1119dfa..1b204bf62 100644
--- a/sources/shiboken6/generatorrunnermacros.h
+++ b/sources/shiboken6/generatorrunnermacros.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef GENERATORRUNNERMACROS_H
#define GENERATORRUNNERMACROS_H
diff --git a/sources/shiboken6/generators/shiboken/shiboken.cpp b/sources/shiboken6/generators/shiboken/shiboken.cpp
deleted file mode 100644
index a047c15f1..000000000
--- a/sources/shiboken6/generators/shiboken/shiboken.cpp
+++ /dev/null
@@ -1,32 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "cppgenerator.h"
-#include "headergenerator.h"
-
-EXPORT_GENERATOR_PLUGIN(new CppGenerator << new HeaderGenerator)
diff --git a/sources/shiboken6/icecc.cmake b/sources/shiboken6/icecc.cmake
index b2bf071aa..fa8d3b7cf 100644
--- a/sources/shiboken6/icecc.cmake
+++ b/sources/shiboken6/icecc.cmake
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
include (CMakeForceCompiler)
option(ENABLE_ICECC "Enable icecc checking, for distributed compilation")
if (ENABLE_ICECC)
diff --git a/sources/shiboken6/libshiboken/CMakeLists.txt b/sources/shiboken6/libshiboken/CMakeLists.txt
index 3e1b14594..b5bbb498a 100644
--- a/sources/shiboken6/libshiboken/CMakeLists.txt
+++ b/sources/shiboken6/libshiboken/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(libshiboken)
option(ENABLE_VERSION_SUFFIX "Used to use current version in suffix to generated files. This is used to allow multiples versions installed simultaneous." FALSE)
@@ -23,13 +26,25 @@ else()
set(embedding_option "")
endif()
+if(SHIBOKEN_IS_CROSS_BUILD)
+ set(host_python_path "${QFP_PYTHON_HOST_PATH}")
+ set(use_pyc_in_embedding FALSE)
+else()
+ set(host_python_path "${Python_EXECUTABLE}")
+ if(PYTHON_LIMITED_API)
+ set(use_pyc_in_embedding FALSE)
+ else()
+ set(use_pyc_in_embedding TRUE)
+ endif()
+endif()
+
add_custom_command(
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/embed/signature_bootstrap_inc.h"
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/embed/signature_inc.h"
- COMMAND ${PYTHON_EXECUTABLE} -E
+ COMMAND ${host_python_path} -E
"${CMAKE_CURRENT_SOURCE_DIR}/embed/embedding_generator.py"
--cmake-dir "${CMAKE_CURRENT_BINARY_DIR}/embed"
- --limited-api ${PYTHON_LIMITED_API}
+ --use-pyc ${use_pyc_in_embedding}
${embedding_option}
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/embed/embedding_generator.py"
"${CMAKE_CURRENT_SOURCE_DIR}/embed/signature_bootstrap.py"
@@ -43,42 +58,49 @@ set(libshiboken_VERSION "${libshiboken_MAJOR_VERSION}.${libshiboken_MINOR_VERSIO
set(libshiboken_SOVERSION "${shiboken6_library_so_version}")
set(libshiboken_SRC
-basewrapper.cpp
-debugfreehook.cpp
-gilstate.cpp
-helper.cpp
-sbkarrayconverter.cpp
-sbkconverter.cpp
-sbkenum.cpp
-sbkfeature_base.cpp
-sbkmodule.cpp
-sbkstring.cpp
-sbkstaticstrings.cpp
-sbktypefactory.cpp
-bindingmanager.cpp
-threadstatesaver.cpp
-shibokenbuffer.cpp
-pep384impl.cpp
-voidptr.cpp
-bufferprocs_py37.cpp
+autodecref.h
+basewrapper.cpp basewrapper.h basewrapper_p.h
+bindingmanager.cpp bindingmanager.h
+bufferprocs_py37.cpp bufferprocs_py37.h
+debugfreehook.cpp debugfreehook.h
+gilstate.cpp gilstate.h
+helper.cpp helper.h
+pep384impl.cpp pep384impl.h
+pyobjectholder.h
+sbkarrayconverter.cpp sbkarrayconverter.h sbkarrayconverter_p.h
+sbkcontainer.cpp sbkcontainer.h
+sbkconverter.cpp sbkconverter.h sbkconverter_p.h
+sbkcppstring.cpp sbkcppstring.h sbkcpptonumpy.h
+sbkenum.cpp sbkenum.h
+sbkerrors.cpp sbkerrors.h
+sbkfeature_base.cpp sbkfeature_base.h
+sbkmodule.cpp sbkmodule.h
+sbknumpy.cpp sbknumpycheck.h
+sbknumpyview.h
+sbkpython.h
+sbksmartpointer.cpp sbksmartpointer.h
+sbkstaticstrings.cpp sbkstaticstrings.h sbkstaticstrings_p.h
+sbkstring.cpp sbkstring.h
+sbktypefactory.cpp sbktypefactory.h
+sbkwindows.h
+shiboken.h
+shibokenbuffer.cpp shibokenbuffer.h
+shibokenmacros.h
+threadstatesaver.cpp threadstatesaver.h
+voidptr.cpp voidptr.h
embed/signature_bootstrap_inc.h
embed/signature_inc.h
-signature/signature.cpp
+signature/signature.cpp signature.h signature_p.h
signature/signature_globals.cpp
signature/signature_extend.cpp
signature/signature_helper.cpp
)
-if (NOT "${NUMPY_INCLUDE_DIR}" STREQUAL "")
- message(STATUS "NUMPY_INCLUDE_DIR: " ${NUMPY_INCLUDE_DIR})
- list(APPEND libshiboken_SRC sbknumpyarrayconverter.cpp)
-else()
- message(STATUS "NUMPY not found")
-endif()
-
-set(APIEXTRACTOR_EXTRA_INCLUDES ${APIEXTRACTOR_EXTRA_INCLUDES} ${LIBXSLT_INCLUDE_DIR} ${LIBXML2_INCLUDE_DIR})
+# This is needed to let the header obey a variable in "pep384impl.h".
+# Note: This must be set on the cpp file!
+set_property(SOURCE "pep384impl.cpp" PROPERTY SKIP_UNITY_BUILD_INCLUSION ON)
add_library(libshiboken SHARED ${libshiboken_SRC})
add_library(Shiboken6::libshiboken ALIAS libshiboken)
@@ -90,10 +112,16 @@ target_include_directories(libshiboken PUBLIC
)
if (NOT "${NUMPY_INCLUDE_DIR}" STREQUAL "")
+ message(STATUS "NUMPY_INCLUDE_DIR: " ${NUMPY_INCLUDE_DIR})
target_include_directories(libshiboken PRIVATE ${NUMPY_INCLUDE_DIR})
target_compile_definitions(libshiboken PRIVATE -DHAVE_NUMPY
PRIVATE -DNPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION)
+else()
+ message(STATUS "NUMPY not found")
+endif()
+if(SHIBOKEN_IS_CROSS_BUILD)
+ target_compile_definitions(libshiboken PRIVATE -DSHIBOKEN_NO_EMBEDDING_PYC=1)
endif()
shiboken_compute_python_includes()
@@ -122,6 +150,8 @@ set_target_properties(libshiboken PROPERTIES OUTPUT_NAME "shiboken6${shiboken6_S
SOVERSION ${libshiboken_SOVERSION}
DEFINE_SYMBOL BUILD_LIBSHIBOKEN)
+qfp_strip_library("libshiboken")
+
install(FILES
autodecref.h
basewrapper.h
@@ -129,13 +159,20 @@ install(FILES
bindingmanager.h
gilstate.h
helper.h
+ pyobjectholder.h
sbkarrayconverter.h
+ sbkcontainer.h
sbkconverter.h
+ sbkcpptonumpy.h
sbkenum.h
- sbkenum_p.h
+ sbkerrors.h
sbkfeature_base.h
sbkmodule.h
+ sbknumpycheck.h
+ sbknumpyview.h
sbkstring.h
+ sbkcppstring.h
+ sbksmartpointer.h
sbkstaticstrings.h
sbktypefactory.h
shiboken.h
@@ -143,13 +180,15 @@ install(FILES
threadstatesaver.h
shibokenbuffer.h
sbkpython.h
+ sbkwindows.h
pep384impl.h
+ pep384ext.h
voidptr.h
bufferprocs_py37.h
"${CMAKE_CURRENT_BINARY_DIR}/sbkversion.h"
signature.h
- signature/signature_p.h
+ signature_p.h
DESTINATION include/shiboken6${shiboken6_SUFFIX})
install(TARGETS libshiboken EXPORT Shiboken6Targets
@@ -157,4 +196,4 @@ install(TARGETS libshiboken EXPORT Shiboken6Targets
ARCHIVE DESTINATION "${LIB_INSTALL_DIR}"
RUNTIME DESTINATION bin)
install(EXPORT Shiboken6Targets NAMESPACE Shiboken6::
- DESTINATION ${LIB_INSTALL_DIR}/cmake/Shiboken6-${shiboken6_VERSION})
+ DESTINATION ${LIB_INSTALL_DIR}/cmake/Shiboken6)
diff --git a/sources/shiboken6/libshiboken/autodecref.h b/sources/shiboken6/libshiboken/autodecref.h
index 45a42d6a5..62a8584e1 100644
--- a/sources/shiboken6/libshiboken/autodecref.h
+++ b/sources/shiboken6/libshiboken/autodecref.h
@@ -1,47 +1,12 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef AUTODECREF_H
#define AUTODECREF_H
#include "sbkpython.h"
-#include "basewrapper.h"
+
+#include <utility>
struct SbkObject;
namespace Shiboken
@@ -50,29 +15,27 @@ namespace Shiboken
/**
* AutoDecRef holds a PyObject pointer and decrement its reference counter when destroyed.
*/
-struct LIBSHIBOKEN_API AutoDecRef
+struct AutoDecRef
{
public:
AutoDecRef(const AutoDecRef &) = delete;
- AutoDecRef(AutoDecRef &&) = delete;
+ AutoDecRef(AutoDecRef &&o) noexcept : m_pyObj{std::exchange(o.m_pyObj, nullptr)} {}
AutoDecRef &operator=(const AutoDecRef &) = delete;
- AutoDecRef &operator=(AutoDecRef &&) = delete;
+ AutoDecRef &operator=(AutoDecRef &&o) noexcept
+ {
+ m_pyObj = std::exchange(o.m_pyObj, nullptr);
+ return *this;
+ }
- /**
- * AutoDecRef constructor.
- * \param pyobj A borrowed reference to a Python object
- */
- explicit AutoDecRef(PyObject *pyObj) : m_pyObj(pyObj) {}
- /**
- * AutoDecRef constructor.
- * \param pyobj A borrowed reference to a Python object
- */
- explicit AutoDecRef(SbkObject *pyObj) : m_pyObj(reinterpret_cast<PyObject *>(pyObj)) {}
- /**
- * AutoDecref constructor.
- * To be used later with reset():
- */
- AutoDecRef() : m_pyObj(nullptr) {}
+ /// AutoDecRef constructor.
+ /// \param pyobj A borrowed reference to a Python object
+ explicit AutoDecRef(PyObject *pyObj) noexcept : m_pyObj(pyObj) {}
+ /// AutoDecRef constructor.
+ /// \param pyobj A borrowed reference to a wrapped Python object
+ explicit AutoDecRef(SbkObject *pyObj) noexcept : m_pyObj(reinterpret_cast<PyObject *>(pyObj)) {}
+ /// AutoDecref default constructor.
+ /// To be used later with reset():
+ AutoDecRef() noexcept = default;
/// Decref the borrowed python reference
~AutoDecRef()
@@ -80,18 +43,19 @@ public:
Py_XDECREF(m_pyObj);
}
- inline bool isNull() const { return m_pyObj == nullptr; }
+ [[nodiscard]] bool isNull() const { return m_pyObj == nullptr; }
/// Returns the pointer of the Python object being held.
- inline PyObject *object() { return m_pyObj; }
- inline operator PyObject *() { return m_pyObj; }
+ [[nodiscard]] PyObject *object() const { return m_pyObj; }
+ [[nodiscard]] operator PyObject *() const { return m_pyObj; }
#ifndef Py_LIMITED_API
- inline operator PyTupleObject *() { return reinterpret_cast<PyTupleObject *>(m_pyObj); }
+ [[deprecated]] inline operator PyTupleObject *()
+ { return reinterpret_cast<PyTupleObject *>(m_pyObj); }
#endif
inline operator bool() const { return m_pyObj != nullptr; }
inline PyObject *operator->() { return m_pyObj; }
template<typename T>
- T cast()
+ [[deprecated]] T cast()
{
return reinterpret_cast<T>(m_pyObj);
}
@@ -106,11 +70,18 @@ public:
m_pyObj = other;
Py_XDECREF(_py_tmp);
}
+
+ PyObject *release()
+ {
+ PyObject *result = m_pyObj;
+ m_pyObj = nullptr;
+ return result;
+ }
+
private:
- PyObject *m_pyObj;
+ PyObject *m_pyObj = nullptr;
};
} // namespace Shiboken
#endif // AUTODECREF_H
-
diff --git a/sources/shiboken6/libshiboken/basewrapper.cpp b/sources/shiboken6/libshiboken/basewrapper.cpp
index 0c2ac950e..1ac65c00c 100644
--- a/sources/shiboken6/libshiboken/basewrapper.cpp
+++ b/sources/shiboken6/libshiboken/basewrapper.cpp
@@ -1,49 +1,16 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include "basewrapper.h"
#include "basewrapper_p.h"
#include "bindingmanager.h"
#include "helper.h"
+#include "pep384ext.h"
#include "sbkconverter.h"
#include "sbkenum.h"
+#include "sbkerrors.h"
#include "sbkfeature_base.h"
+#include "sbkmodule.h"
#include "sbkstring.h"
#include "sbkstaticstrings.h"
#include "sbkstaticstrings_p.h"
@@ -57,6 +24,7 @@
#include <algorithm>
#include "threadstatesaver.h"
#include "signature.h"
+#include "signature_p.h"
#include "voidptr.h"
#include <iostream>
@@ -69,7 +37,73 @@ namespace {
void _destroyParentInfo(SbkObject *obj, bool keepReference);
}
-static void callDestructor(const Shiboken::DtorAccumulatorVisitor::DestructorEntries &dts)
+namespace Shiboken
+{
+// Walk through the first level of non-user-type Sbk base classes relevant for
+// C++ object allocation. Return true from the predicate to terminate.
+template <class Predicate>
+bool walkThroughBases(PyTypeObject *currentType, Predicate predicate)
+{
+ PyObject *bases = currentType->tp_bases;
+ const Py_ssize_t numBases = PyTuple_Size(bases);
+ bool result = false;
+ for (Py_ssize_t i = 0; !result && i < numBases; ++i) {
+ auto type = reinterpret_cast<PyTypeObject *>(PyTuple_GetItem(bases, i));
+ if (PyType_IsSubtype(type, SbkObject_TypeF()) != 0) {
+ result = PepType_SOTP(type)->is_user_type
+ ? walkThroughBases(type, predicate) : predicate(type);
+ }
+ }
+ return result;
+}
+
+int getTypeIndexOnHierarchy(PyTypeObject *baseType, PyTypeObject *desiredType)
+{
+ int index = -1;
+ walkThroughBases(baseType, [&index, desiredType](PyTypeObject *node) {
+ ++index;
+ return PyType_IsSubtype(node, desiredType) != 0;
+ });
+ return index;
+}
+
+int getNumberOfCppBaseClasses(PyTypeObject *baseType)
+{
+ int count = 0;
+ walkThroughBases(baseType, [&count](PyTypeObject *) {
+ ++count;
+ return false;
+ });
+ return count;
+}
+
+std::vector<PyTypeObject *> getCppBaseClasses(PyTypeObject *baseType)
+{
+ std::vector<PyTypeObject *> cppBaseClasses;
+ walkThroughBases(baseType, [&cppBaseClasses](PyTypeObject *node) {
+ cppBaseClasses.push_back(node);
+ return false;
+ });
+ return cppBaseClasses;
+}
+
+using DestructorEntries = std::vector<DestructorEntry>;
+
+DestructorEntries getDestructorEntries(SbkObject *o)
+{
+ DestructorEntries result;
+ void **cptrs = o->d->cptr;
+ walkThroughBases(Py_TYPE(o), [&result, cptrs](PyTypeObject *node) {
+ auto *sotp = PepType_SOTP(node);
+ auto index = result.size();
+ result.push_back(DestructorEntry{sotp->cpp_dtor,
+ cptrs[index]});
+ return false;
+ });
+ return result;
+}
+
+static void callDestructor(const DestructorEntries &dts)
{
for (const auto &e : dts) {
Shiboken::ThreadStateSaver threadSaver;
@@ -78,6 +112,8 @@ static void callDestructor(const Shiboken::DtorAccumulatorVisitor::DestructorEnt
}
}
+} // namespace Shiboken
+
extern "C"
{
@@ -89,11 +125,11 @@ void Sbk_object_dealloc(PyObject *self)
// This was not needed before Python 3.8 (Python issue 35810)
Py_DECREF(Py_TYPE(self));
}
- Py_TYPE(self)->tp_free(self);
+ PepExt_TypeCallFree(self);
}
-static void SbkObjectTypeDealloc(PyTypeObject *pyType);
-static PyObject *SbkObjectTypeTpNew(PyTypeObject *metatype, PyObject *args, PyObject *kwds);
+static void SbkObjectType_tp_dealloc(PyTypeObject *pyType);
+static PyTypeObject *SbkObjectType_tp_new(PyTypeObject *metatype, PyObject *args, PyObject *kwds);
static DestroyQAppHook DestroyQApplication = nullptr;
@@ -103,6 +139,25 @@ void setDestroyQApplication(DestroyQAppHook func)
DestroyQApplication = func;
}
+// PYSIDE-535: Use the C API in PyPy instead of `op->ob_dict`, directly
+LIBSHIBOKEN_API PyObject *SbkObject_GetDict_NoRef(PyObject *op)
+{
+ assert(Shiboken::Object::checkType(op));
+#ifdef PYPY_VERSION
+ Shiboken::GilState state;
+ auto *ret = PyObject_GenericGetDict(op, nullptr);
+ Py_DECREF(ret);
+ return ret;
+#else
+ auto *sbkObj = reinterpret_cast<SbkObject *>(op);
+ if (!sbkObj->ob_dict) {
+ Shiboken::GilState state;
+ sbkObj->ob_dict = PyDict_New();
+ }
+ return sbkObj->ob_dict;
+#endif
+}
+
static int
check_set_special_type_attr(PyTypeObject *type, PyObject *value, const char *name)
{
@@ -121,20 +176,18 @@ check_set_special_type_attr(PyTypeObject *type, PyObject *value, const char *nam
// PYSIDE-1177: Add a setter to allow setting type doc.
static int
-type_set_doc(PyTypeObject *type, PyObject *value, void *context)
+type_set_doc(PyTypeObject *type, PyObject *value, void * /* context */)
{
if (!check_set_special_type_attr(type, value, "__doc__"))
return -1;
PyType_Modified(type);
- return PyDict_SetItem(type->tp_dict, Shiboken::PyMagicName::doc(), value);
+ Shiboken::AutoDecRef tpDict(PepType_GetDict(type));
+ return PyDict_SetItem(tpDict.object(), Shiboken::PyMagicName::doc(), value);
}
// PYSIDE-908: The function PyType_Modified does not work in PySide, so we need to
-// explicitly pass __doc__. For __signature__ it _did_ actually work, because
-// it was not existing before. We add them both for clarity.
-static PyGetSetDef SbkObjectType_Type_getsetlist[] = {
- {const_cast<char *>("__signature__"), reinterpret_cast<getter>(Sbk_TypeGet___signature__),
- nullptr, nullptr, nullptr},
+// explicitly pass __doc__.
+static PyGetSetDef SbkObjectType_tp_getset[] = {
{const_cast<char *>("__doc__"), reinterpret_cast<getter>(Sbk_TypeGet___doc__),
reinterpret_cast<setter>(type_set_doc), nullptr, nullptr},
{const_cast<char *>("__dict__"), reinterpret_cast<getter>(Sbk_TypeGet___dict__),
@@ -142,47 +195,99 @@ static PyGetSetDef SbkObjectType_Type_getsetlist[] = {
{nullptr, nullptr, nullptr, nullptr, nullptr} // Sentinel
};
-static PyType_Slot SbkObjectType_Type_slots[] = {
- {Py_tp_dealloc, reinterpret_cast<void *>(SbkObjectTypeDealloc)},
- {Py_tp_getattro, reinterpret_cast<void *>(mangled_type_getattro)},
- {Py_tp_base, static_cast<void *>(&PyType_Type)},
- {Py_tp_alloc, reinterpret_cast<void *>(PyType_GenericAlloc)},
- {Py_tp_new, reinterpret_cast<void *>(SbkObjectTypeTpNew)},
- {Py_tp_free, reinterpret_cast<void *>(PyObject_GC_Del)},
- {Py_tp_getset, reinterpret_cast<void *>(SbkObjectType_Type_getsetlist)},
- {0, nullptr}
-};
-static PyType_Spec SbkObjectType_Type_spec = {
- "1:Shiboken.ObjectType",
- 0,
- sizeof(PyMemberDef),
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE,
- SbkObjectType_Type_slots,
-};
+static PyTypeObject *createObjectTypeType()
+{
+ // PYSIDE-2676: When using the new type extension, we need to use an
+ // extra meta type that provides the extra size.
+ // This is a hairy part of Python 3.12 .
+ //
+ // The problem here is that we use the type extension both in types
+ // and also in meta types. This was invisible with extender dicts.
+ // Please study carefully:
+ // https://docs.python.org/3/c-api/type.html#c.PyType_Spec.basicsize
+
+ PyType_Slot SbkObjectTypeMeta_Type_slots[] = {
+ {Py_tp_base, static_cast<void *>(&PyType_Type)},
+ {Py_tp_alloc, reinterpret_cast<void *>(PyType_GenericAlloc)},
+ {0, nullptr}
+ };
+
+ PyType_Spec SbkObjectTypeMeta_Type_spec = {
+ "1:Shiboken.ObjectTypeMeta",
+ -long(sizeof(SbkObjectTypePrivate)),
+ 0, // sizeof(PyMemberDef), not for PyPy without a __len__ defined
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_TYPE_SUBCLASS,
+ SbkObjectTypeMeta_Type_slots,
+ };
+
+ auto specMeta = &SbkObjectTypeMeta_Type_spec;
+
+ PyType_Slot SbkObjectType_Type_slots[] = {
+ {Py_tp_dealloc, reinterpret_cast<void *>(SbkObjectType_tp_dealloc)},
+ {Py_tp_getattro, reinterpret_cast<void *>(mangled_type_getattro)},
+ {Py_tp_base, static_cast<void *>(&PyType_Type)},
+ {Py_tp_alloc, reinterpret_cast<void *>(PyType_GenericAlloc)},
+ {Py_tp_new, reinterpret_cast<void *>(SbkObjectType_tp_new)},
+ {Py_tp_free, reinterpret_cast<void *>(PyObject_GC_Del)},
+ {Py_tp_getset, reinterpret_cast<void *>(SbkObjectType_tp_getset)},
+ {0, nullptr}
+ };
+
+ // PYSIDE-535: The tp_itemsize field is inherited and does not need to be set.
+ // In PyPy, it _must_ not be set, because it would have the meanin
+ // that a `__len__` field must be defined. Not doing so creates
+ // a hard-to-find crash.
+ //
+ // PYSIDE-2230: In Python < 3.12, the decision which base class should create
+ // the instance is arbitrarily drawn by the size of the type.
+ // Ignoring this creates a bug in the new version of bug_825 that
+ // selects the wrong metatype.
+ //
+ PyType_Spec SbkObjectType_Type_spec = {
+ "1:Shiboken.ObjectType",
+ static_cast<int>(PyType_Type.tp_basicsize) + 1, // see above
+ 0, // sizeof(PyMemberDef), not for PyPy without a __len__ defined
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_TYPE_SUBCLASS,
+ SbkObjectType_Type_slots,
+ };
+
+ PyType_Spec SbkObjectType_Type_spec_312 = {
+ "1:Shiboken.ObjectType",
+ -long(sizeof(SbkObjectTypePrivate)),
+ 0, // sizeof(PyMemberDef), not for PyPy without a __len__ defined
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_TYPE_SUBCLASS,
+ SbkObjectType_Type_slots,
+ };
+
+ if (_PepRuntimeVersion() >= 0x030C00) {
+ auto *meta = SbkType_FromSpec(specMeta);
+ auto spec = &SbkObjectType_Type_spec_312;
+ return SbkType_FromSpecWithMeta(spec, meta);
+ }
+
+ auto spec = &SbkObjectType_Type_spec;
+ return SbkType_FromSpec(spec);
+}
PyTypeObject *SbkObjectType_TypeF(void)
{
- static auto *type = SbkType_FromSpec(&SbkObjectType_Type_spec);
+ static auto *type = createObjectTypeType();
return type;
}
static PyObject *SbkObjectGetDict(PyObject *pObj, void *)
{
- auto *obj = reinterpret_cast<SbkObject *>(pObj);
- if (!obj->ob_dict)
- obj->ob_dict = PyDict_New();
- if (!obj->ob_dict)
- return nullptr;
- Py_INCREF(obj->ob_dict);
- return obj->ob_dict;
+ auto ret = SbkObject_GetDict_NoRef(pObj);
+ Py_XINCREF(ret);
+ return ret;
}
-static PyGetSetDef SbkObjectGetSetList[] = {
+static PyGetSetDef SbkObject_tp_getset[] = {
{const_cast<char *>("__dict__"), SbkObjectGetDict, nullptr, nullptr, nullptr},
{nullptr, nullptr, nullptr, nullptr, nullptr} // Sentinel
};
-static int SbkObject_traverse(PyObject *self, visitproc visit, void *arg)
+static int SbkObject_tp_traverse(PyObject *self, visitproc visit, void *arg)
{
auto *sbkSelf = reinterpret_cast<SbkObject *>(self);
@@ -203,14 +308,12 @@ static int SbkObject_traverse(PyObject *self, visitproc visit, void *arg)
if (sbkSelf->ob_dict)
Py_VISIT(sbkSelf->ob_dict);
-#if PY_VERSION_HEX >= 0x03090000
// This was not needed before Python 3.9 (Python issue 35810 and 40217)
Py_VISIT(Py_TYPE(self));
-#endif
return 0;
}
-static int SbkObject_clear(PyObject *self)
+static int SbkObject_tp_clear(PyObject *self)
{
auto *sbkSelf = reinterpret_cast<SbkObject *>(self);
@@ -226,40 +329,53 @@ static int SbkObject_clear(PyObject *self)
return 0;
}
-static PyType_Slot SbkObject_Type_slots[] = {
- {Py_tp_getattro, reinterpret_cast<void *>(SbkObject_GenericGetAttr)},
- {Py_tp_setattro, reinterpret_cast<void *>(SbkObject_GenericSetAttr)},
- {Py_tp_dealloc, reinterpret_cast<void *>(SbkDeallocWrapperWithPrivateDtor)},
- {Py_tp_traverse, reinterpret_cast<void *>(SbkObject_traverse)},
- {Py_tp_clear, reinterpret_cast<void *>(SbkObject_clear)},
- // unsupported: {Py_tp_weaklistoffset, (void *)offsetof(SbkObject, weakreflist)},
- {Py_tp_getset, reinterpret_cast<void *>(SbkObjectGetSetList)},
- // unsupported: {Py_tp_dictoffset, (void *)offsetof(SbkObject, ob_dict)},
- {0, nullptr}
-};
-static PyType_Spec SbkObject_Type_spec = {
- "1:Shiboken.Object",
- sizeof(SbkObject),
- 0,
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
- SbkObject_Type_slots,
-};
-
-static const char *SbkObject_SignatureStrings[] = {
- "Shiboken.Object(self)",
- nullptr}; // Sentinel
+static PyTypeObject *createObjectType()
+{
+ PyType_Slot SbkObject_Type_slots[] = {
+ {Py_tp_getattro, reinterpret_cast<void *>(SbkObject_GenericGetAttr)},
+ {Py_tp_setattro, reinterpret_cast<void *>(SbkObject_GenericSetAttr)},
+ {Py_tp_dealloc, reinterpret_cast<void *>(SbkDeallocWrapperWithPrivateDtor)},
+ {Py_tp_traverse, reinterpret_cast<void *>(SbkObject_tp_traverse)},
+ {Py_tp_clear, reinterpret_cast<void *>(SbkObject_tp_clear)},
+ // unsupported: {Py_tp_weaklistoffset, (void *)offsetof(SbkObject, weakreflist)},
+ {Py_tp_getset, reinterpret_cast<void *>(SbkObject_tp_getset)},
+ // unsupported: {Py_tp_dictoffset, (void *)offsetof(SbkObject, ob_dict)},
+ {0, nullptr}
+ };
+
+ PyType_Spec SbkObject_Type_spec = {
+ "1:Shiboken.Object",
+ sizeof(SbkObject),
+ 0,
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
+ SbkObject_Type_slots,
+ };
+
+ // PYSIDE-2230: When creating this type, we cannot easily handle the metaclass.
+ // In versions < Python 3.12, the metaclass can only be set
+ // indirectly by a base which has that metaclass.
+ // But before 3.12 is the minimum version, we cannot use the new
+ // function, although we would need this for 3.12 :-D
+ // We do a special patching here that is triggered through Py_None.
+ auto *type = SbkType_FromSpec_BMDWB(&SbkObject_Type_spec,
+ Py_None, // bases, spectial flag!
+ SbkObjectType_TypeF(),
+ offsetof(SbkObject, ob_dict),
+ offsetof(SbkObject, weakreflist),
+ nullptr); // bufferprocs
+ return type;
+}
PyTypeObject *SbkObject_TypeF(void)
{
- static auto *type = SbkType_FromSpec_BMDWB(&SbkObject_Type_spec,
- nullptr, // bases
- SbkObjectType_TypeF(),
- offsetof(SbkObject, ob_dict),
- offsetof(SbkObject, weakreflist),
- nullptr); // bufferprocs
+ static auto *type = createObjectType(); // bufferprocs
return type;
}
+static const char *SbkObject_SignatureStrings[] = {
+ "Shiboken.Object(self)",
+ nullptr}; // Sentinel
+
static int mainThreadDeletionHandler(void *)
{
if (Py_IsInitialized())
@@ -322,9 +438,8 @@ static void SbkDeallocWrapperCommon(PyObject *pyObj, bool canDelete)
if (sotp->delete_in_main_thread && Shiboken::currentThreadId() != Shiboken::mainThreadId()) {
auto &bindingManager = Shiboken::BindingManager::instance();
if (sotp->is_multicpp) {
- Shiboken::DtorAccumulatorVisitor visitor(sbkObj);
- Shiboken::walkThroughClassHierarchy(Py_TYPE(pyObj), &visitor);
- for (const auto &e : visitor.entries())
+ const auto entries = Shiboken::getDestructorEntries(sbkObj);
+ for (const auto &e : entries)
bindingManager.addToDeletionInMainThread(e);
} else {
Shiboken::DestructorEntry e{sotp->cpp_dtor, sbkObj->d->cptr[0]};
@@ -342,10 +457,9 @@ static void SbkDeallocWrapperCommon(PyObject *pyObj, bool canDelete)
if (canDelete) {
if (sotp->is_multicpp) {
- Shiboken::DtorAccumulatorVisitor visitor(sbkObj);
- Shiboken::walkThroughClassHierarchy(Py_TYPE(pyObj), &visitor);
+ const auto entries = Shiboken::getDestructorEntries(sbkObj);
Shiboken::Object::deallocData(sbkObj, true);
- callDestructor(visitor.entries());
+ callDestructor(entries);
} else {
void *cptr = sbkObj->d->cptr[0];
Shiboken::Object::deallocData(sbkObj, true);
@@ -371,6 +485,17 @@ static void SbkDeallocWrapperCommon(PyObject *pyObj, bool canDelete)
}
}
+static inline PyObject *_Sbk_NewVarObject(PyTypeObject *type)
+{
+ // PYSIDE-1970: Support __slots__, implemented by PyVarObject
+ auto const baseSize = sizeof(SbkObject);
+ auto varCount = Py_SIZE(type);
+ auto *self = PyObject_GC_NewVar(PyObject, type, varCount);
+ if (varCount)
+ std::memset(reinterpret_cast<char *>(self) + baseSize, 0, varCount * sizeof(void *));
+ return self;
+}
+
void SbkDeallocWrapper(PyObject *pyObj)
{
SbkDeallocWrapperCommon(pyObj, true);
@@ -388,14 +513,18 @@ void SbkDeallocWrapperWithPrivateDtor(PyObject *self)
SbkDeallocWrapperCommon(self, false);
}
-void SbkObjectTypeDealloc(PyTypeObject *sbkType)
+void SbkObjectType_tp_dealloc(PyTypeObject *sbkType)
{
SbkObjectTypePrivate *sotp = PepType_SOTP(sbkType);
auto pyObj = reinterpret_cast<PyObject *>(sbkType);
PyObject_GC_UnTrack(pyObj);
-#ifndef Py_LIMITED_API
+#if !defined(Py_LIMITED_API) && !defined(PYPY_VERSION)
+# if PY_VERSION_HEX >= 0x030A0000
+ Py_TRASHCAN_BEGIN(pyObj, 1);
+# else
Py_TRASHCAN_SAFE_BEGIN(pyObj);
+# endif
#endif
if (sotp) {
if (sotp->user_data && sotp->d_func) {
@@ -408,8 +537,12 @@ void SbkObjectTypeDealloc(PyTypeObject *sbkType)
Shiboken::Conversions::deleteConverter(sotp->converter);
PepType_SOTP_delete(sbkType);
}
-#ifndef Py_LIMITED_API
+#if !defined(Py_LIMITED_API) && !defined(PYPY_VERSION)
+# if PY_VERSION_HEX >= 0x030A0000
+ Py_TRASHCAN_END;
+# else
Py_TRASHCAN_SAFE_END(pyObj);
+# endif
#endif
if (PepRuntime_38_flag) {
// PYSIDE-939: Handling references correctly.
@@ -442,7 +575,7 @@ PyObject *MakeQAppWrapper(PyTypeObject *type)
}
// monitoring the last application state
- PyObject *qApp_curr = type != nullptr ? PyObject_GC_New(PyObject, type) : Py_None;
+ PyObject *qApp_curr = type != nullptr ? _Sbk_NewVarObject(type) : Py_None;
static PyObject *builtins = PyEval_GetBuiltins();
if (PyDict_SetItem(builtins, Shiboken::PyName::qApp(), qApp_curr) < 0)
return nullptr;
@@ -452,15 +585,14 @@ PyObject *MakeQAppWrapper(PyTypeObject *type)
// exactly the needed reference that keeps qApp alive from alone!
Py_INCREF(qApp_curr);
// PYSIDE-1470: As a side effect, the interactive "_" variable tends to
- // create reference cycles. It was found when using gc.collect(). But using
- // PyGC_collect() inside the C code had no effect in the interactive shell.
- // The cycle exists only in the eval loop of the interpreter!
- if (PyDict_GetItem(builtins, Shiboken::PyName::underscore()))
- PyDict_SetItem(builtins, Shiboken::PyName::underscore(), Py_None);
+ // create reference cycles. This is disturbing when trying
+ // to remove qApp with del.
+ // PYSIDE-1758: Since we moved to an explicit qApp.shutdown() call, we
+ // no longer initialize "_" with Py_None.
return qApp_curr;
}
-static PyObject *SbkObjectTypeTpNew(PyTypeObject *metatype, PyObject *args, PyObject *kwds)
+static PyTypeObject *SbkObjectType_tp_new(PyTypeObject *metatype, PyObject *args, PyObject *kwds)
{
// Check if all bases are new style before calling type.tp_new
// Was causing gc assert errors in test_bug704.py when
@@ -476,7 +608,7 @@ static PyObject *SbkObjectTypeTpNew(PyTypeObject *metatype, PyObject *args, PyOb
PyObject *dict;
static const char *kwlist[] = { "name", "bases", "dict", nullptr};
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "sO!O!:sbktype", const_cast<char **>(kwlist),
+ if (!PyArg_ParseTupleAndKeywords(args, kwds, "OO!O!:sbktype", const_cast<char **>(kwlist),
&name,
&PyTuple_Type, &pyBases,
&PyDict_Type, &dict))
@@ -484,25 +616,26 @@ static PyObject *SbkObjectTypeTpNew(PyTypeObject *metatype, PyObject *args, PyOb
for (int i=0, i_max=PyTuple_GET_SIZE(pyBases); i < i_max; i++) {
PyObject *baseType = PyTuple_GET_ITEM(pyBases, i);
- if (reinterpret_cast<PyTypeObject *>(baseType)->tp_new == SbkDummyNew) {
+ if (PepExt_Type_GetNewSlot(reinterpret_cast<PyTypeObject *>(baseType)) == SbkDummyNew) {
// PYSIDE-595: A base class does not allow inheritance.
- return SbkDummyNew(metatype, args, kwds);
+ return reinterpret_cast<PyTypeObject *>(SbkDummyNew(metatype, args, kwds));
}
}
- // The meta type creates a new type when the Python programmer extends a wrapped C++ class.
- auto type_new = reinterpret_cast<newfunc>(PyType_Type.tp_new);
-
- // PYSIDE-939: This is a temporary patch that circumvents the problem
- // with Py_TPFLAGS_METHOD_DESCRIPTOR until this is finally solved.
- // PyType_Ready uses mro(). We need to temporarily remove the flag from it's type.
- // We cannot use PyMethodDescr_Type since it is not exported by Python 2.7 .
- static PyTypeObject *PyMethodDescr_TypePtr = Py_TYPE(
- PyObject_GetAttr(reinterpret_cast<PyObject *>(&PyType_Type), Shiboken::PyName::mro()));
- auto hold = PyMethodDescr_TypePtr->tp_flags;
- PyMethodDescr_TypePtr->tp_flags &= ~Py_TPFLAGS_METHOD_DESCRIPTOR;
- auto *newType = reinterpret_cast<PyTypeObject *>(type_new(metatype, args, kwds));
- PyMethodDescr_TypePtr->tp_flags = hold;
+ // PYSIDE-939: This is still a temporary patch that circumvents the problem
+ // with Py_TPFLAGS_METHOD_DESCRIPTOR. The problem exists in Python 3.8
+ // until 3.9.12, only. We check the runtime and hope for this version valishing.
+ // https://github.com/python/cpython/issues/92112 will not be fixed for 3.8 :/
+ PyTypeObject *newType{};
+ static auto triplet = _PepRuntimeVersion();
+ if (triplet >= (3 << 16 | 8 << 8 | 0) && triplet < (3 << 16 | 9 << 8 | 13)) {
+ auto hold = PyMethodDescr_Type.tp_flags;
+ PyMethodDescr_Type.tp_flags &= ~Py_TPFLAGS_METHOD_DESCRIPTOR;
+ newType = PepType_Type_tp_new(metatype, args, kwds);
+ PyMethodDescr_Type.tp_flags = hold;
+ } else {
+ newType = PepType_Type_tp_new(metatype, args, kwds);
+ }
if (!newType)
return nullptr;
@@ -548,14 +681,14 @@ static PyObject *SbkObjectTypeTpNew(PyTypeObject *metatype, PyObject *args, PyOb
sotp->subtype_init(newType, args, kwds);
}
initSelectableFeature(saveFeature);
- return reinterpret_cast<PyObject *>(newType);
+ return newType;
}
-static PyObject *_setupNew(SbkObject *self, PyTypeObject *subtype)
+static PyObject *_setupNew(PyObject *obSelf, PyTypeObject *subtype)
{
auto *obSubtype = reinterpret_cast<PyObject *>(subtype);
auto *sbkSubtype = subtype;
- auto *obSelf = reinterpret_cast<PyObject *>(self);
+ auto *self = reinterpret_cast<SbkObject *>(obSelf);
Py_INCREF(obSubtype);
auto d = new SbkObjectPrivate;
@@ -571,25 +704,27 @@ static PyObject *_setupNew(SbkObject *self, PyTypeObject *subtype)
d->parentInfo = nullptr;
d->referredObjects = nullptr;
d->cppObjectCreated = 0;
+ d->isQAppSingleton = 0;
self->ob_dict = nullptr;
self->weakreflist = nullptr;
self->d = d;
PyObject_GC_Track(obSelf);
- return reinterpret_cast<PyObject *>(self);
+ return obSelf;
}
-PyObject *SbkObjectTpNew(PyTypeObject *subtype, PyObject *, PyObject *)
+PyObject *SbkObject_tp_new(PyTypeObject *subtype, PyObject * /* args */, PyObject * /* kwds */)
{
- SbkObject *self = PyObject_GC_New(SbkObject, subtype);
+ PyObject *self = _Sbk_NewVarObject(subtype);
return _setupNew(self, subtype);
}
-PyObject *SbkQAppTpNew(PyTypeObject *subtype, PyObject *, PyObject *)
+PyObject *SbkQApp_tp_new(PyTypeObject *subtype, PyObject *, PyObject *)
{
- auto self = reinterpret_cast<SbkObject *>(MakeQAppWrapper(subtype));
+ auto *obSelf = MakeQAppWrapper(subtype);
+ auto *self = reinterpret_cast<SbkObject *>(obSelf);
if (self == nullptr)
return nullptr;
- auto ret = _setupNew(self, subtype);
+ auto ret = _setupNew(obSelf, subtype);
auto priv = self->d;
priv->isQAppSingleton = 1;
return ret;
@@ -598,9 +733,9 @@ PyObject *SbkQAppTpNew(PyTypeObject *subtype, PyObject *, PyObject *)
PyObject *SbkDummyNew(PyTypeObject *type, PyObject *, PyObject *)
{
// PYSIDE-595: Give the same error as type_call does when tp_new is NULL.
+ const char regret[] = "¯\\_(ツ)_/¯";
PyErr_Format(PyExc_TypeError,
- "cannot create '%.100s' instances ¯\\_(ツ)_/¯",
- type->tp_name);
+ "cannot create '%.100s' instances %s", type->tp_name, regret);
return nullptr;
}
@@ -631,6 +766,12 @@ PyObject *FallbackRichCompare(PyObject *self, PyObject *other, int op)
return res;
}
+bool SbkObjectType_Check(PyTypeObject *type)
+{
+ static auto *meta = SbkObjectType_TypeF();
+ return Py_TYPE(type) == meta || PyType_IsSubtype(Py_TYPE(type), meta);
+}
+
} //extern "C"
@@ -655,52 +796,9 @@ void _destroyParentInfo(SbkObject *obj, bool keepReference)
namespace Shiboken
{
-bool walkThroughClassHierarchy(PyTypeObject *currentType, HierarchyVisitor *visitor)
-{
- PyObject *bases = currentType->tp_bases;
- Py_ssize_t numBases = PyTuple_GET_SIZE(bases);
- bool result = false;
- for (int i = 0; !result && i < numBases; ++i) {
- auto type = reinterpret_cast<PyTypeObject *>(PyTuple_GET_ITEM(bases, i));
- if (PyType_IsSubtype(type, reinterpret_cast<PyTypeObject *>(SbkObject_TypeF()))) {
- result = PepType_SOTP(type)->is_user_type
- ? walkThroughClassHierarchy(type, visitor) : visitor->visit(type);
- }
- }
- return result;
-}
// Wrapper metatype and base type ----------------------------------------------------------
-HierarchyVisitor::HierarchyVisitor() = default;
-HierarchyVisitor::~HierarchyVisitor() = default;
-
-bool BaseCountVisitor::visit(PyTypeObject *)
-{
- m_count++;
- return false;
-}
-
-bool BaseAccumulatorVisitor::visit(PyTypeObject *node)
-{
- m_bases.push_back(node);
- return false;
-}
-
-bool GetIndexVisitor::visit(PyTypeObject *node)
-{
- m_index++;
- return PyType_IsSubtype(node, m_desiredType);
-}
-
-bool DtorAccumulatorVisitor::visit(PyTypeObject *node)
-{
- auto *sotp = PepType_SOTP(node);
- m_entries.push_back(DestructorEntry{sotp->cpp_dtor,
- m_pyObject->d->cptr[m_entries.size()]});
- return false;
-}
-
void _initMainThreadId(); // helper.cpp
namespace Conversions { void init(); }
@@ -718,9 +816,6 @@ void init()
//Init private data
Pep384_Init();
- if (PyType_Ready(SbkEnumType_TypeF()) < 0)
- Py_FatalError("[libshiboken] Failed to initialize Shiboken.SbkEnumType metatype.");
-
if (PyType_Ready(SbkObjectType_TypeF()) < 0)
Py_FatalError("[libshiboken] Failed to initialize Shiboken.BaseWrapperType metatype.");
@@ -733,14 +828,20 @@ void init()
}
// PYSIDE-1415: Publish Shiboken objects.
-void initSignature(PyObject *module)
+// PYSIDE-1735: Initialize the whole Shiboken startup.
+void initShibokenSupport(PyObject *module)
{
- auto *type = SbkObject_TypeF();
- if (InitSignatureStrings(type, SbkObject_SignatureStrings) < 0)
- return;
-
Py_INCREF(SbkObject_TypeF());
PyModule_AddObject(module, "Object", reinterpret_cast<PyObject *>(SbkObject_TypeF()));
+
+ // PYSIDE-1735: When the initialization was moved into Shiboken import, this
+ // Py_INCREF became necessary. No idea why.
+ Py_INCREF(module);
+ init_shibokensupport_module();
+
+ auto *type = SbkObject_TypeF();
+ if (InitSignatureStrings(type, SbkObject_SignatureStrings) < 0)
+ Py_FatalError("Error in initShibokenSupport");
}
// setErrorAboutWrongArguments now gets overload info from the signature module.
@@ -750,19 +851,48 @@ void setErrorAboutWrongArguments(PyObject *args, const char *funcName, PyObject
SetError_Argument(args, funcName, info);
}
-class FindBaseTypeVisitor : public HierarchyVisitor
+PyObject *returnWrongArguments(PyObject *args, const char *funcName, PyObject *info)
{
-public:
- explicit FindBaseTypeVisitor(PyTypeObject *typeToFind) : m_typeToFind(typeToFind) {}
+ setErrorAboutWrongArguments(args, funcName, info);
+ return {};
+}
- bool visit(PyTypeObject *node) override
- {
- return node == m_typeToFind;
- }
+int returnWrongArguments_Zero(PyObject *args, const char *funcName, PyObject *info)
+{
+ setErrorAboutWrongArguments(args, funcName, info);
+ return 0;
+}
-private:
- PyTypeObject *m_typeToFind;
-};
+int returnWrongArguments_MinusOne(PyObject *args, const char *funcName, PyObject *info)
+{
+ setErrorAboutWrongArguments(args, funcName, info);
+ return -1;
+}
+
+PyObject *returnFromRichCompare(PyObject *result)
+{
+ if (result && !PyErr_Occurred())
+ return result;
+ Shiboken::Errors::setOperatorNotImplemented();
+ return {};
+}
+
+PyObject *checkInvalidArgumentCount(Py_ssize_t numArgs, Py_ssize_t minArgs, Py_ssize_t maxArgs)
+{
+ PyObject *result = nullptr;
+ // for seterror_argument(), signature/errorhandler.py
+ if (numArgs > maxArgs) {
+ static PyObject *const tooMany = Shiboken::String::createStaticString(">");
+ result = tooMany;
+ Py_INCREF(result);
+ } else if (numArgs < minArgs) {
+ static PyObject *const tooFew = Shiboken::String::createStaticString("<");
+ static PyObject *const noArgs = Shiboken::String::createStaticString("0");
+ result = numArgs > 0 ? tooFew : noArgs;
+ Py_INCREF(result);
+ }
+ return result;
+}
std::vector<SbkObject *> splitPyObject(PyObject *pyObj)
{
@@ -804,8 +934,8 @@ bool isUserType(PyTypeObject *type)
bool canCallConstructor(PyTypeObject *myType, PyTypeObject *ctorType)
{
- FindBaseTypeVisitor visitor(ctorType);
- if (!walkThroughClassHierarchy(myType, &visitor)) {
+ auto findBasePred = [ctorType](PyTypeObject *type) { return type == ctorType; };
+ if (!walkThroughBases(myType, findBasePred)) {
PyErr_Format(PyExc_TypeError, "%s isn't a direct base class of %s", ctorType->tp_name, myType->tp_name);
return false;
}
@@ -877,41 +1007,42 @@ introduceWrapperType(PyObject *enclosingObject,
const char *originalName,
PyType_Spec *typeSpec,
ObjectDestructor cppObjDtor,
- PyTypeObject *baseType,
- PyObject *baseTypes,
+ PyObject *bases,
unsigned wrapperFlags)
{
- typeSpec->slots[0].pfunc = reinterpret_cast<void *>(baseType ? baseType : SbkObject_TypeF());
+ const auto basesSize = PySequence_Fast_GET_SIZE(bases);
+ assert(basesSize > 0);
+ typeSpec->slots[0].pfunc = PySequence_Fast_GET_ITEM(bases, 0);
- auto *type = SbkType_FromSpecBasesMeta(typeSpec, baseTypes, SbkObjectType_TypeF());
- if (baseType) {
- if (baseTypes) {
- for (int i = 0; i < PySequence_Fast_GET_SIZE(baseTypes); ++i) {
- auto *st = reinterpret_cast<PyTypeObject *>(PySequence_Fast_GET_ITEM(baseTypes, i));
- BindingManager::instance().addClassInheritance(st, type);
- }
- } else {
- BindingManager::instance().addClassInheritance(baseType, type);
- }
- }
+ auto *type = SbkType_FromSpecBasesMeta(typeSpec, bases, SbkObjectType_TypeF());
auto sotp = PepType_SOTP(type);
if (wrapperFlags & DeleteInMainThread)
sotp->delete_in_main_thread = 1;
+ sotp->type_behaviour = (wrapperFlags & Value) != 0
+ ? BEHAVIOUR_VALUETYPE : BEHAVIOUR_OBJECTTYPE;
setOriginalName(type, originalName);
setDestructorFunction(type, cppObjDtor);
auto *ob_type = reinterpret_cast<PyObject *>(type);
- if (wrapperFlags & InnerClass)
+ if (wrapperFlags & InnerClass) {
+ // PYSIDE-2230: Instead of tp_dict, use the enclosing type.
+ // This stays interface compatible.
+ if (PyType_Check(enclosingObject)) {
+ AutoDecRef tpDict(PepType_GetDict(reinterpret_cast<PyTypeObject *>(enclosingObject)));
+ return PyDict_SetItemString(tpDict, typeName, ob_type) == 0 ? type : nullptr;
+ }
+ assert(PyDict_Check(enclosingObject));
return PyDict_SetItemString(enclosingObject, typeName, ob_type) == 0 ? type : nullptr;
+ }
// PyModule_AddObject steals type's reference.
Py_INCREF(ob_type);
if (PyModule_AddObject(enclosingObject, typeName, ob_type) != 0) {
std::cerr << "Warning: " << __FUNCTION__ << " returns nullptr for "
<< typeName << '/' << originalName << " due to PyModule_AddObject(enclosingObject="
- << enclosingObject << ",ob_type=" << ob_type << ") failing\n";
+ << enclosingObject << ", ob_type=" << ob_type << ") failing\n";
return nullptr;
}
return type;
@@ -919,16 +1050,19 @@ introduceWrapperType(PyObject *enclosingObject,
void setSubTypeInitHook(PyTypeObject *type, SubTypeInitHook func)
{
+ assert(SbkObjectType_Check(type));
PepType_SOTP(type)->subtype_init = func;
}
void *getTypeUserData(PyTypeObject *type)
{
+ assert(SbkObjectType_Check(type));
return PepType_SOTP(type)->user_data;
}
void setTypeUserData(PyTypeObject *type, void *userData, DeleteUserDataFunc d_func)
{
+ assert(SbkObjectType_Check(type));
auto *sotp = PepType_SOTP(type);
sotp->user_data = userData;
sotp->d_func = d_func;
@@ -1039,9 +1173,7 @@ void callCppDestructors(SbkObject *pyObj)
PyTypeObject *type = Py_TYPE(pyObj);
auto *sotp = PepType_SOTP(type);
if (sotp->is_multicpp) {
- Shiboken::DtorAccumulatorVisitor visitor(pyObj);
- Shiboken::walkThroughClassHierarchy(type, &visitor);
- callDestructor(visitor.entries());
+ callDestructor(getDestructorEntries(pyObj));
} else {
Shiboken::ThreadStateSaver threadSaver;
threadSaver.save();
@@ -1190,11 +1322,10 @@ void makeValid(SbkObject *self)
// If has ref to other objects make all valid again
if (self->d->referredObjects) {
- RefCountMap &refCountMap = *(self->d->referredObjects);
- RefCountMap::iterator iter;
- for (auto it = refCountMap.begin(), end = refCountMap.end(); it != end; ++it) {
- if (Shiboken::Object::checkType(it->second))
- makeValid(reinterpret_cast<SbkObject *>(it->second));
+ const RefCountMap &refCountMap = *(self->d->referredObjects);
+ for (const auto &p : refCountMap) {
+ if (Shiboken::Object::checkType(p.second))
+ makeValid(reinterpret_cast<SbkObject *>(p.second));
}
}
}
@@ -1230,7 +1361,8 @@ bool setCppPointer(SbkObject *sbkObj, PyTypeObject *desiredType, void *cptr)
const bool alreadyInitialized = sbkObj->d->cptr[idx] != nullptr;
if (alreadyInitialized)
- PyErr_SetString(PyExc_RuntimeError, "You can't initialize an object twice!");
+ PyErr_Format(PyExc_RuntimeError, "You can't initialize an %s object in class %s twice!",
+ desiredType->tp_name, type->tp_name);
else
sbkObj->d->cptr[idx] = cptr;
@@ -1241,6 +1373,7 @@ bool setCppPointer(SbkObject *sbkObj, PyTypeObject *desiredType, void *cptr)
bool isValid(PyObject *pyObj)
{
if (!pyObj || pyObj == Py_None
+ || PyType_Check(pyObj) != 0
|| Py_TYPE(Py_TYPE(pyObj)) != SbkObjectType_TypeF()) {
return true;
}
@@ -1329,10 +1462,15 @@ PyObject *newObject(PyTypeObject *instanceType,
{
// Try to find the exact type of cptr.
if (!isExactType) {
- if (PyTypeObject *exactType = ObjectType::typeForTypeName(typeName))
+ if (PyTypeObject *exactType = ObjectType::typeForTypeName(typeName)) {
instanceType = exactType;
- else
- instanceType = BindingManager::instance().resolveType(&cptr, instanceType);
+ } else {
+ auto resolved = BindingManager::instance().findDerivedType(cptr, instanceType);
+ if (resolved.first != nullptr) {
+ instanceType = resolved.first;
+ cptr = resolved.second;
+ }
+ }
}
bool shouldCreate = true;
@@ -1364,7 +1502,7 @@ PyObject *newObject(PyTypeObject *instanceType,
}
if (shouldCreate) {
- self = reinterpret_cast<SbkObject *>(SbkObjectTpNew(instanceType, nullptr, nullptr));
+ self = reinterpret_cast<SbkObject *>(SbkObject_tp_new(instanceType, nullptr, nullptr));
self->d->cptr[0] = cptr;
self->d->hasOwnership = hasOwnership;
self->d->validCppObject = 1;
@@ -1543,7 +1681,7 @@ void deallocData(SbkObject *self, bool cleanup)
}
delete self->d; // PYSIDE-205: always delete d.
Py_XDECREF(self->ob_dict);
- Py_TYPE(self)->tp_free(self);
+ PepExt_TypeCallFree(reinterpret_cast<PyObject *>(self));
}
void setTypeUserData(SbkObject *wrapper, void *userData, DeleteUserDataFunc d_func)
@@ -1626,16 +1764,62 @@ void clearReferences(SbkObject *self)
self->d->referredObjects->clear();
}
+// Helpers for debug / info formatting
+
+static std::vector<PyTypeObject *> getBases(SbkObject *self)
+{
+ return ObjectType::isUserType(Py_TYPE(self))
+ ? getCppBaseClasses(Py_TYPE(self))
+ : std::vector<PyTypeObject *>(1, Py_TYPE(self));
+}
+
+static bool isValueType(SbkObject *self)
+{
+ return PepType_SOTP(Py_TYPE(self))->type_behaviour == BEHAVIOUR_VALUETYPE;
+}
+
+void _debugFormat(std::ostream &s, SbkObject *self)
+{
+ assert(self);
+ auto *d = self->d;
+ if (!d) {
+ s << "[Invalid]";
+ return;
+ }
+ if (d->cptr) {
+ const std::vector<PyTypeObject *> bases = getBases(self);
+ for (size_t i = 0, size = bases.size(); i < size; ++i)
+ s << ", C++: " << bases[i]->tp_name << '/' << self->d->cptr[i];
+ } else {
+ s << " [Deleted]";
+ }
+ if (d->hasOwnership)
+ s << " [hasOwnership]";
+ if (d->containsCppWrapper)
+ s << " [containsCppWrapper]";
+ if (d->validCppObject)
+ s << " [validCppObject]";
+ if (d->cppObjectCreated)
+ s << " [wasCreatedByPython]";
+ s << (isValueType(self) ? " [value]" : " [object]");
+
+ if (d->parentInfo) {
+ if (auto *parent = d->parentInfo->parent)
+ s << ", parent=" << reinterpret_cast<PyObject *>(parent)->ob_type->tp_name
+ << '/' << parent;
+ if (!d->parentInfo->children.empty())
+ s << ", " << d->parentInfo->children.size() << " child(ren)";
+ }
+ if (d->referredObjects && !d->referredObjects->empty())
+ s << ", " << d->referredObjects->size() << " referred object(s)";
+}
+
std::string info(SbkObject *self)
{
std::ostringstream s;
if (self->d && self->d->cptr) {
- std::vector<PyTypeObject *> bases;
- if (ObjectType::isUserType(Py_TYPE(self)))
- bases = getCppBaseClasses(Py_TYPE(self));
- else
- bases.push_back(Py_TYPE(self));
+ const std::vector<PyTypeObject *> bases = getBases(self);
s << "C++ address....... ";
for (size_t i = 0, size = bases.size(); i < size; ++i)
@@ -1649,8 +1833,9 @@ std::string info(SbkObject *self)
s << "hasOwnership...... " << bool(self->d->hasOwnership) << "\n"
"containsCppWrapper " << self->d->containsCppWrapper << "\n"
"validCppObject.... " << self->d->validCppObject << "\n"
- "wasCreatedByPython " << self->d->cppObjectCreated << "\n";
-
+ "wasCreatedByPython " << self->d->cppObjectCreated << "\n"
+ "value...... " << isValueType(self) << "\n"
+ "reference count... " << reinterpret_cast<PyObject *>(self)->ob_refcnt << '\n';
if (self->d->parentInfo && self->d->parentInfo->parent) {
s << "parent............ ";
@@ -1668,17 +1853,17 @@ std::string info(SbkObject *self)
}
if (self->d->referredObjects && !self->d->referredObjects->empty()) {
- Shiboken::RefCountMap &map = *self->d->referredObjects;
+ const Shiboken::RefCountMap &map = *self->d->referredObjects;
s << "referred objects.. ";
std::string lastKey;
- for (auto it = map.begin(), end = map.end(); it != end; ++it) {
- if (it->first != lastKey) {
+ for (const auto &p : map) {
+ if (p.first != lastKey) {
if (!lastKey.empty())
s << " ";
- s << '"' << it->first << "\" => ";
- lastKey = it->first;
+ s << '"' << p.first << "\" => ";
+ lastKey = p.first;
}
- Shiboken::AutoDecRef obj(PyObject_Str(it->second));
+ Shiboken::AutoDecRef obj(PyObject_Str(p.second));
s << String::toCString(obj) << ' ';
}
s << '\n';
diff --git a/sources/shiboken6/libshiboken/basewrapper.h b/sources/shiboken6/libshiboken/basewrapper.h
index 2c8da098f..4835c4810 100644
--- a/sources/shiboken6/libshiboken/basewrapper.h
+++ b/sources/shiboken6/libshiboken/basewrapper.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef BASEWRAPPER_H
#define BASEWRAPPER_H
@@ -74,32 +38,30 @@ LIBSHIBOKEN_API void SbkDeallocQAppWrapper(PyObject *pyObj);
LIBSHIBOKEN_API void SbkDeallocWrapperWithPrivateDtor(PyObject *self);
/// Function signature for the multiple inheritance information initializers that should be provided by classes with multiple inheritance.
-typedef int *(*MultipleInheritanceInitFunction)(const void *);
+using MultipleInheritanceInitFunction = int *(*)(const void *);
/**
* Special cast function is used to correctly cast an object when it's
* part of a multiple inheritance hierarchy.
* The implementation of this function is auto generated by the generator and you don't need to care about it.
*/
-typedef void *(*SpecialCastFunction)(void *, PyTypeObject *);
-typedef PyTypeObject *(*TypeDiscoveryFunc)(void *, PyTypeObject *);
-typedef void *(*TypeDiscoveryFuncV2)(void *, PyTypeObject *);
+using SpecialCastFunction = void *(*)(void *, PyTypeObject *);
+using TypeDiscoveryFunc = PyTypeObject *(*)(void *, PyTypeObject *);
+using TypeDiscoveryFuncV2 = void *(*)(void *, PyTypeObject *);
// Used in userdata dealloc function
-typedef void (*DeleteUserDataFunc)(void *);
+using DeleteUserDataFunc = void (*)(void *);
-typedef void (*ObjectDestructor)(void *);
+using ObjectDestructor = void (*)(void *);
-typedef void (*SubTypeInitHook)(PyTypeObject *, PyObject *, PyObject *);
+using SubTypeInitHook = void (*)(PyTypeObject *, PyObject *, PyObject *);
/// PYSIDE-1019: Set the function to select the current feature.
/// Return value is the previous content.
-typedef PyObject *(*SelectableFeatureHook)(PyTypeObject *);
+using SelectableFeatureHook = void (*)(PyTypeObject *);
+using SelectableFeatureCallback = void (*)(bool);
LIBSHIBOKEN_API SelectableFeatureHook initSelectableFeature(SelectableFeatureHook func);
-
-/// PYSIDE-1019: Get access to PySide reserved bits.
-LIBSHIBOKEN_API int SbkObjectType_GetReserved(PyTypeObject *type);
-LIBSHIBOKEN_API void SbkObjectType_SetReserved(PyTypeObject *type, int value);
+LIBSHIBOKEN_API void setSelectableFeatureCallback(SelectableFeatureCallback func);
/// PYSIDE-1626: Enforcing a context switch without further action.
LIBSHIBOKEN_API void SbkObjectType_UpdateFeature(PyTypeObject *type);
@@ -108,10 +70,16 @@ LIBSHIBOKEN_API void SbkObjectType_UpdateFeature(PyTypeObject *type);
LIBSHIBOKEN_API const char **SbkObjectType_GetPropertyStrings(PyTypeObject *type);
LIBSHIBOKEN_API void SbkObjectType_SetPropertyStrings(PyTypeObject *type, const char **strings);
+/// PYSIDE-1735: Store the enumFlagInfo.
+LIBSHIBOKEN_API void SbkObjectType_SetEnumFlagInfo(PyTypeObject *type, const char **strings);
+
/// PYSIDE-1470: Set the function to kill a Q*Application.
-typedef void(*DestroyQAppHook)();
+using DestroyQAppHook = void(*)();
LIBSHIBOKEN_API void setDestroyQApplication(DestroyQAppHook func);
+/// PYSIDE-535: Use the C API in PyPy instead of `op->ob_dict`, directly (borrowed ref)
+LIBSHIBOKEN_API PyObject *SbkObject_GetDict_NoRef(PyObject *op);
+
extern LIBSHIBOKEN_API PyTypeObject *SbkObjectType_TypeF(void);
extern LIBSHIBOKEN_API PyTypeObject *SbkObject_TypeF(void);
@@ -119,10 +87,10 @@ extern LIBSHIBOKEN_API PyTypeObject *SbkObject_TypeF(void);
struct SbkObjectTypePrivate;
/// PyTypeObject extended with C++ multiple inheritance information.
-LIBSHIBOKEN_API PyObject *SbkObjectTpNew(PyTypeObject *subtype, PyObject *, PyObject *);
+LIBSHIBOKEN_API PyObject *SbkObject_tp_new(PyTypeObject *subtype, PyObject *, PyObject *);
/// The special case of a switchable singleton Q*Application.
-LIBSHIBOKEN_API PyObject *SbkQAppTpNew(PyTypeObject *subtype, PyObject *, PyObject *);
+LIBSHIBOKEN_API PyObject *SbkQApp_tp_new(PyTypeObject *subtype, PyObject *, PyObject *);
/// Create a new Q*Application wrapper and monitor it.
LIBSHIBOKEN_API PyObject *MakeQAppWrapper(PyTypeObject *type);
@@ -141,6 +109,12 @@ LIBSHIBOKEN_API PyObject *SbkDummyNew(PyTypeObject *type, PyObject *, PyObject *
/// PYSIDE-74: Fallback used in all types now.
LIBSHIBOKEN_API PyObject *FallbackRichCompare(PyObject *self, PyObject *other, int op);
+/// PYSIDE-1970: Be easily able to see what is happening in the running code.
+LIBSHIBOKEN_API void disassembleFrame(const char *marker);
+
+/// PYSIDE-2230: Check if an object is an SbkObject.
+LIBSHIBOKEN_API bool SbkObjectType_Check(PyTypeObject *type);
+
} // extern "C"
namespace Shiboken
@@ -152,7 +126,7 @@ namespace Shiboken
LIBSHIBOKEN_API void init();
/// PYSIDE-1415: Publish Shiboken objects.
-LIBSHIBOKEN_API void initSignature(PyObject *module);
+LIBSHIBOKEN_API void initShibokenSupport(PyObject *module);
/// Delete the class T allocated on \p cptr.
template<typename T>
@@ -161,11 +135,30 @@ void callCppDestructor(void *cptr)
delete reinterpret_cast<T *>(cptr);
}
-// setErrorAboutWrongArguments now gets overload information from the signature module.
-// The extra info argument can contain additional data about the error.
+/// setErrorAboutWrongArguments now gets overload information from the signature module.
+/// The extra info argument can contain additional data about the error.
LIBSHIBOKEN_API void setErrorAboutWrongArguments(PyObject *args, const char *funcName,
PyObject *info);
+/// Return values for the different retun variants.
+/// This is used instead of goto.
+LIBSHIBOKEN_API PyObject *returnWrongArguments(PyObject *args, const char *funcName,
+ PyObject *info);
+
+LIBSHIBOKEN_API int returnWrongArguments_Zero(PyObject *args, const char *funcName,
+ PyObject *info);
+
+LIBSHIBOKEN_API int returnWrongArguments_MinusOne(PyObject *args, const char *funcName,
+ PyObject *info);
+
+/// A simple special version for the end of rich comparison.
+LIBSHIBOKEN_API PyObject *returnFromRichCompare(PyObject *result);
+
+// Return error information object if the argument count is wrong
+LIBSHIBOKEN_API PyObject *checkInvalidArgumentCount(Py_ssize_t numArgs,
+ Py_ssize_t minArgs,
+ Py_ssize_t maxArgs);
+
namespace ObjectType {
/**
@@ -207,14 +200,15 @@ LIBSHIBOKEN_API const char *getOriginalName(PyTypeObject *self);
LIBSHIBOKEN_API void setTypeDiscoveryFunctionV2(PyTypeObject *self, TypeDiscoveryFuncV2 func);
LIBSHIBOKEN_API void copyMultipleInheritance(PyTypeObject *self, PyTypeObject *other);
LIBSHIBOKEN_API void setMultipleInheritanceFunction(PyTypeObject *self, MultipleInheritanceInitFunction func);
-LIBSHIBOKEN_API MultipleInheritanceInitFunction getMultipleInheritanceFunction(PyTypeObject *self);
+LIBSHIBOKEN_API MultipleInheritanceInitFunction getMultipleInheritanceFunction(PyTypeObject *type);
LIBSHIBOKEN_API void setDestructorFunction(PyTypeObject *self, ObjectDestructor func);
enum WrapperFlags
{
InnerClass = 0x1,
- DeleteInMainThread = 0x2
+ DeleteInMainThread = 0x2,
+ Value = 0x4
};
/**
@@ -235,13 +229,12 @@ enum WrapperFlags
* \returns true if the initialization went fine, false otherwise.
*/
LIBSHIBOKEN_API PyTypeObject *introduceWrapperType(PyObject *enclosingObject,
- const char *typeName,
- const char *originalName,
- PyType_Spec *typeSpec,
- ObjectDestructor cppObjDtor,
- PyTypeObject *baseType,
- PyObject *baseTypes,
- unsigned wrapperFlags = 0);
+ const char *typeName,
+ const char *originalName,
+ PyType_Spec *typeSpec,
+ ObjectDestructor cppObjDtor,
+ PyObject *bases,
+ unsigned wrapperFlags = 0);
/**
* Set the subtype init hook for a type.
diff --git a/sources/shiboken6/libshiboken/basewrapper_p.h b/sources/shiboken6/libshiboken/basewrapper_p.h
index a832620d6..fb9140793 100644
--- a/sources/shiboken6/libshiboken/basewrapper_p.h
+++ b/sources/shiboken6/libshiboken/basewrapper_p.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef BASEWRAPPER_P_H
#define BASEWRAPPER_P_H
@@ -47,6 +11,7 @@
#include <set>
#include <string>
#include <vector>
+#include <iosfwd>
struct SbkObject;
struct SbkConverter;
@@ -65,14 +30,12 @@ using ChildrenList = std::set<SbkObject *>;
/// Structure used to store information about object parent and children.
struct ParentInfo
{
- /// Default ctor.
- ParentInfo() : parent(nullptr), hasWrapperRef(false) {}
/// Pointer to parent object.
- SbkObject *parent;
+ SbkObject *parent = nullptr;
/// List of object children.
ChildrenList children;
/// has internal ref
- bool hasWrapperRef;
+ bool hasWrapperRef = false;
};
} // namespace Shiboken
@@ -86,6 +49,12 @@ extern "C"
*/
struct SbkObjectPrivate
{
+ SbkObjectPrivate() noexcept = default;
+ SbkObjectPrivate(const SbkObjectPrivate &) = delete;
+ SbkObjectPrivate(SbkObjectPrivate &&o) = delete;
+ SbkObjectPrivate &operator=(const SbkObjectPrivate &) = delete;
+ SbkObjectPrivate &operator=(SbkObjectPrivate &&o) = delete;
+
/// Pointer to the C++ class.
void ** cptr;
/// True when Python is responsible for freeing the used memory.
@@ -132,15 +101,6 @@ struct SbkObjectTypePrivate
TypeDiscoveryFuncV2 type_discovery;
/// Pointer to a function responsible for deletion of the C++ instance calling the proper destructor.
ObjectDestructor cpp_dtor;
- /// PYSIDE-1019: Caching the current select Id
- unsigned int pyside_reserved_bits : 8; // MSVC has bug with the sign bit!
- /// True if this type holds two or more C++ instances, e.g.: a Python class which inherits from two C++ classes.
- unsigned int is_multicpp : 1;
- /// True if this type was defined by the user.
- unsigned int is_user_type : 1;
- /// Tells is the type is a value type or an object-type, see BEHAVIOUR_ *constants.
- unsigned int type_behaviour : 2;
- unsigned int delete_in_main_thread : 1;
/// C++ name
char *original_name;
/// Type user data
@@ -148,6 +108,18 @@ struct SbkObjectTypePrivate
DeleteUserDataFunc d_func;
void (*subtype_init)(PyTypeObject *, PyObject *, PyObject *);
const char **propertyStrings;
+ const char **enumFlagInfo;
+ PyObject *enumFlagsDict;
+ PyObject *enumTypeDict;
+
+ /// True if this type holds two or more C++ instances, e.g.: a Python class which inherits from two C++ classes.
+ unsigned int is_multicpp : 1;
+ /// True if this type was defined by the user (a class written in Python inheriting
+ /// a class provided by a Shiboken binding).
+ unsigned int is_user_type : 1;
+ /// Tells is the type is a value type or an object-type, see BEHAVIOUR_ *constants.
+ unsigned int type_behaviour : 2;
+ unsigned int delete_in_main_thread : 1;
};
@@ -171,107 +143,7 @@ struct DestructorEntry
**/
std::vector<SbkObject *> splitPyObject(PyObject *pyObj);
-/**
-* Visitor class used by walkOnClassHierarchy function.
-*/
-class HierarchyVisitor
-{
-public:
- HierarchyVisitor(const HierarchyVisitor &) = delete;
- HierarchyVisitor(HierarchyVisitor &&) = delete;
- HierarchyVisitor &operator=(const HierarchyVisitor &) = delete;
- HierarchyVisitor &operator=(HierarchyVisitor &&) = delete;
-
- HierarchyVisitor();
- virtual ~HierarchyVisitor();
-
- virtual bool visit(PyTypeObject *node) = 0; // return true to terminate
-};
-
-class BaseCountVisitor : public HierarchyVisitor
-{
-public:
- bool visit(PyTypeObject *) override;
-
- int count() const { return m_count; }
-
-private:
- int m_count = 0;
-};
-
-class BaseAccumulatorVisitor : public HierarchyVisitor
-{
-public:
- using Result = std::vector<PyTypeObject *>;
-
- bool visit(PyTypeObject *node) override;
-
- Result bases() const { return m_bases; }
-
-private:
- Result m_bases;
-};
-
-class GetIndexVisitor : public HierarchyVisitor
-{
-public:
- explicit GetIndexVisitor(PyTypeObject *desiredType) : m_desiredType(desiredType) {}
-
- bool visit(PyTypeObject *node) override;
-
- int index() const { return m_index; }
-
-private:
- int m_index = -1;
- PyTypeObject *m_desiredType;
-};
-
-/// Collect destructors and C++ instances of each C++ object held by a Python
-/// object
-class DtorAccumulatorVisitor : public HierarchyVisitor
-{
-public:
- explicit DtorAccumulatorVisitor(SbkObject *pyObj) : m_pyObject(pyObj) {}
-
- bool visit(PyTypeObject *node) override;
-
- using DestructorEntries = std::vector<DestructorEntry>;
-
- const DestructorEntries &entries() const { return m_entries; }
-
-private:
- DestructorEntries m_entries;
- SbkObject *m_pyObject;
-};
-
-/// \internal Internal function used to walk on classes inheritance trees.
-/**
-* Walk on class hierarchy using a DFS algorithm.
-* For each pure Shiboken type found, HiearchyVisitor::visit is called and the algorithm consider
-* all children of this type as visited.
-*/
-bool walkThroughClassHierarchy(PyTypeObject *currentType, HierarchyVisitor *visitor);
-
-inline int getTypeIndexOnHierarchy(PyTypeObject *baseType, PyTypeObject *desiredType)
-{
- GetIndexVisitor visitor(desiredType);
- walkThroughClassHierarchy(baseType, &visitor);
- return visitor.index();
-}
-
-inline int getNumberOfCppBaseClasses(PyTypeObject *baseType)
-{
- BaseCountVisitor visitor;
- walkThroughClassHierarchy(baseType, &visitor);
- return visitor.count();
-}
-
-inline std::vector<PyTypeObject *> getCppBaseClasses(PyTypeObject *baseType)
-{
- BaseAccumulatorVisitor visitor;
- walkThroughClassHierarchy(baseType, &visitor);
- return visitor.bases();
-}
+int getNumberOfCppBaseClasses(PyTypeObject *baseType);
namespace Object
{
@@ -286,6 +158,8 @@ void clearReferences(SbkObject *self);
**/
void deallocData(SbkObject *self, bool doCleanup);
+
+void _debugFormat(std::ostream &str, SbkObject *self);
} // namespace Object
} // namespace Shiboken
diff --git a/sources/shiboken6/libshiboken/bindingmanager.cpp b/sources/shiboken6/libshiboken/bindingmanager.cpp
index 20b331bde..83c927ae5 100644
--- a/sources/shiboken6/libshiboken/bindingmanager.cpp
+++ b/sources/shiboken6/libshiboken/bindingmanager.cpp
@@ -1,157 +1,188 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include "autodecref.h"
#include "basewrapper.h"
#include "basewrapper_p.h"
#include "bindingmanager.h"
#include "gilstate.h"
+#include "helper.h"
+#include "sbkmodule.h"
#include "sbkstring.h"
#include "sbkstaticstrings.h"
#include "sbkfeature_base.h"
#include "debugfreehook.h"
#include <cstddef>
+#include <cstring>
#include <fstream>
+#include <iostream>
+#include <mutex>
+#include <string_view>
#include <unordered_map>
+#include <unordered_set>
+
+// GraphNode for the dependency graph. It keeps a pointer to
+// the TypeInitStruct to be able to lazily create the type and hashes
+// by the full type name.
+struct GraphNode
+{
+ explicit GraphNode(Shiboken::Module::TypeInitStruct *i) : name(i->fullName), initStruct(i) {}
+ explicit GraphNode(const char *n) : name(n), initStruct(nullptr) {} // Only for searching
+
+ std::string_view name;
+ Shiboken::Module::TypeInitStruct *initStruct;
+
+ friend bool operator==(const GraphNode &n1, const GraphNode &n2) { return n1.name == n2.name; }
+ friend bool operator!=(const GraphNode &n1, const GraphNode &n2) { return n1.name != n2.name; }
+};
+
+template <>
+struct std::hash<GraphNode> {
+ size_t operator()(const GraphNode &n) const noexcept
+ {
+ return std::hash<std::string_view>{}(n.name);
+ }
+};
namespace Shiboken
{
using WrapperMap = std::unordered_map<const void *, SbkObject *>;
-class Graph
+template <class NodeType>
+class BaseGraph
{
public:
- using NodeList = std::vector<PyTypeObject *>;
- using Edges = std::unordered_map<PyTypeObject *, NodeList>;
+ using NodeList = std::vector<NodeType>;
+ using NodeSet = std::unordered_set<NodeType>;
+
+ using Edges = std::unordered_map<NodeType, NodeList>;
Edges m_edges;
- Graph() = default;
+ BaseGraph() = default;
- void addEdge(PyTypeObject *from, PyTypeObject *to)
+ void addEdge(NodeType from, NodeType to)
{
m_edges[from].push_back(to);
}
-#ifndef NDEBUG
- void dumpDotGraph()
+ NodeSet nodeSet() const
{
- std::ofstream file("/tmp/shiboken_graph.dot");
-
- file << "digraph D {\n";
-
- for (auto i = m_edges.begin(), end = m_edges.end(); i != end; ++i) {
- auto *node1 = i->first;
- const NodeList &nodeList = i->second;
- for (const PyTypeObject *o : nodeList) {
- auto *node2 = o;
- file << '"' << node2->tp_name << "\" -> \""
- << node1->tp_name << "\"\n";
- }
+ NodeSet result;
+ for (const auto &p : m_edges) {
+ result.insert(p.first);
+ for (const auto node2 : p.second)
+ result.insert(node2);
}
- file << "}\n";
+ return result;
}
-#endif
+};
- PyTypeObject *identifyType(void **cptr, PyTypeObject *type, PyTypeObject *baseType) const
+class Graph : public BaseGraph<GraphNode>
+{
+public:
+ using TypeCptrPair = BindingManager::TypeCptrPair;
+
+ TypeCptrPair identifyType(void *cptr, PyTypeObject *type, PyTypeObject *baseType) const
{
- auto edgesIt = m_edges.find(type);
- if (edgesIt != m_edges.end()) {
- const NodeList &adjNodes = m_edges.find(type)->second;
- for (PyTypeObject *node : adjNodes) {
- PyTypeObject *newType = identifyType(cptr, node, baseType);
- if (newType)
- return newType;
- }
- }
- void *typeFound = nullptr;
- auto *sotp = PepType_SOTP(type);
- if (sotp->type_discovery)
- typeFound = sotp->type_discovery(*cptr, baseType);
- if (typeFound) {
- // This "typeFound != type" is needed for backwards compatibility with old modules using a newer version of
- // libshiboken because old versions of type_discovery function used to return a PyTypeObject *instead of
- // a possible variation of the C++ instance pointer (*cptr).
- if (typeFound != type)
- *cptr = typeFound;
- return type;
- }
- return nullptr;
+ return identifyType(cptr, GraphNode(type->tp_name), type, baseType);
}
-};
+ bool dumpTypeGraph(const char *fileName) const;
-#ifndef NDEBUG
-static void showWrapperMap(const WrapperMap &wrapperMap)
+private:
+ TypeCptrPair identifyType(void *cptr, const GraphNode &typeNode, PyTypeObject *type,
+ PyTypeObject *baseType) const;
+};
+
+Graph::TypeCptrPair Graph::identifyType(void *cptr,
+ const GraphNode &typeNode, PyTypeObject *type,
+ PyTypeObject *baseType) const
{
- if (Py_VerboseFlag > 0) {
- fprintf(stderr, "-------------------------------\n");
- fprintf(stderr, "WrapperMap: %p (size: %d)\n", &wrapperMap, (int) wrapperMap.size());
- for (auto it = wrapperMap.begin(), end = wrapperMap.end(); it != end; ++it) {
- const SbkObject *sbkObj = it->second;
- fprintf(stderr, "key: %p, value: %p (%s, refcnt: %d)\n", it->first,
- static_cast<const void *>(sbkObj),
- (Py_TYPE(sbkObj))->tp_name,
- int(reinterpret_cast<const PyObject *>(sbkObj)->ob_refcnt));
+ assert(typeNode.initStruct != nullptr || type != nullptr);
+ auto edgesIt = m_edges.find(typeNode);
+ if (edgesIt != m_edges.end()) {
+ const NodeList &adjNodes = edgesIt->second;
+ for (const auto &node : adjNodes) {
+ auto newType = identifyType(cptr, node, nullptr, baseType);
+ if (newType.first != nullptr)
+ return newType;
}
- fprintf(stderr, "-------------------------------\n");
}
+
+ if (type == nullptr) {
+ if (typeNode.initStruct->type == nullptr) // Layzily create type
+ type = Shiboken::Module::get(*typeNode.initStruct);
+ else
+ type = typeNode.initStruct->type;
+ }
+
+ auto *sotp = PepType_SOTP(type);
+ if (sotp->type_discovery != nullptr) {
+ if (void *derivedCPtr = sotp->type_discovery(cptr, baseType))
+ return {type, derivedCPtr};
+ }
+ return {nullptr, nullptr};
+}
+
+static void formatDotNode(std::string_view name, std::ostream &file)
+{
+ auto lastDot = name.rfind('.');
+ file << " \"" << name << "\" [ label=";
+ if (lastDot != std::string::npos) {
+ file << '"' << name.substr(lastDot + 1) << "\" tooltip=\""
+ << name.substr(0, lastDot) << '"';
+ } else {
+ file << '"' << name << '"';
+ }
+ file << " ]\n";
+}
+
+bool Graph::dumpTypeGraph(const char *fileName) const
+{
+ std::ofstream file(fileName);
+ if (!file.good())
+ return false;
+
+ file << "digraph D {\n";
+
+ // Define nodes with short names
+ for (const auto &node : nodeSet())
+ formatDotNode(node.name, file);
+
+ // Write edges
+ for (const auto &p : m_edges) {
+ const auto &node1 = p.first;
+ const NodeList &nodeList = p.second;
+ for (const auto &node2 : nodeList)
+ file << " \"" << node2.name << "\" -> \"" << node1.name << "\"\n";
+ }
+ file << "}\n";
+ return true;
}
-#endif
struct BindingManager::BindingManagerPrivate {
using DestructorEntries = std::vector<DestructorEntry>;
WrapperMap wrapperMapper;
+ // Guard wrapperMapper mainly for QML which calls into the generated
+ // QObject::metaObject() and elsewhere from threads without GIL, causing
+ // crashes for example in retrieveWrapper(). std::shared_mutex was rejected due to:
+ // https://stackoverflow.com/questions/50972345/when-is-stdshared-timed-mutex-slower-than-stdmutex-and-when-not-to-use-it
+ std::recursive_mutex wrapperMapLock;
Graph classHierarchy;
DestructorEntries deleteInMainThread;
- bool destroying;
- BindingManagerPrivate() : destroying(false) {}
- bool releaseWrapper(void *cptr, SbkObject *wrapper);
- void assignWrapper(SbkObject *wrapper, const void *cptr);
+ bool releaseWrapper(void *cptr, SbkObject *wrapper, const int *bases = nullptr);
+ bool releaseWrapperHelper(void *cptr, SbkObject *wrapper);
+ void assignWrapper(SbkObject *wrapper, const void *cptr, const int *bases = nullptr);
+ void assignWrapperHelper(SbkObject *wrapper, const void *cptr);
};
-bool BindingManager::BindingManagerPrivate::releaseWrapper(void *cptr, SbkObject *wrapper)
+inline bool BindingManager::BindingManagerPrivate::releaseWrapperHelper(void *cptr, SbkObject *wrapper)
{
// The wrapper argument is checked to ensure that the correct wrapper is released.
// Returns true if the correct wrapper is found and released.
@@ -164,14 +195,41 @@ bool BindingManager::BindingManagerPrivate::releaseWrapper(void *cptr, SbkObject
return false;
}
-void BindingManager::BindingManagerPrivate::assignWrapper(SbkObject *wrapper, const void *cptr)
+bool BindingManager::BindingManagerPrivate::releaseWrapper(void *cptr, SbkObject *wrapper,
+ const int *bases)
{
assert(cptr);
+ std::lock_guard<std::recursive_mutex> guard(wrapperMapLock);
+ const bool result = releaseWrapperHelper(cptr, wrapper);
+ if (bases != nullptr) {
+ auto *base = static_cast<uint8_t *>(cptr);
+ for (const auto *offset = bases; *offset != -1; ++offset)
+ releaseWrapperHelper(base + *offset, wrapper);
+ }
+ return result;
+}
+
+inline void BindingManager::BindingManagerPrivate::assignWrapperHelper(SbkObject *wrapper,
+ const void *cptr)
+{
auto iter = wrapperMapper.find(cptr);
if (iter == wrapperMapper.end())
wrapperMapper.insert(std::make_pair(cptr, wrapper));
}
+void BindingManager::BindingManagerPrivate::assignWrapper(SbkObject *wrapper, const void *cptr,
+ const int *bases)
+{
+ assert(cptr);
+ std::lock_guard<std::recursive_mutex> guard(wrapperMapLock);
+ assignWrapperHelper(wrapper, cptr);
+ if (bases != nullptr) {
+ const auto *base = static_cast<const uint8_t *>(cptr);
+ for (const auto *offset = bases; *offset != -1; ++offset)
+ assignWrapperHelper(wrapper, base + *offset);
+ }
+}
+
BindingManager::BindingManager()
{
m_d = new BindingManager::BindingManagerPrivate;
@@ -187,12 +245,14 @@ BindingManager::~BindingManager()
debugRemoveFreeHook();
#endif
#ifndef NDEBUG
- showWrapperMap(m_d->wrapperMapper);
+ if (Shiboken::pyVerbose() > 0)
+ dumpWrapperMap();
#endif
/* Cleanup hanging references. We just invalidate them as when
* the BindingManager is being destroyed the interpreter is alredy
* shutting down. */
if (Py_IsInitialized()) { // ensure the interpreter is still valid
+ std::lock_guard<std::recursive_mutex> guard(m_d->wrapperMapLock);
while (!m_d->wrapperMapper.empty()) {
Object::destroy(m_d->wrapperMapper.begin()->second, const_cast<void *>(m_d->wrapperMapper.begin()->first));
}
@@ -208,6 +268,7 @@ BindingManager &BindingManager::instance() {
bool BindingManager::hasWrapper(const void *cptr)
{
+ std::lock_guard<std::recursive_mutex> guard(m_d->wrapperMapLock);
return m_d->wrapperMapper.find(cptr) != m_d->wrapperMapper.end();
}
@@ -221,15 +282,7 @@ void BindingManager::registerWrapper(SbkObject *pyObj, void *cptr)
if (d->mi_init && !d->mi_offsets)
d->mi_offsets = d->mi_init(cptr);
- m_d->assignWrapper(pyObj, cptr);
- if (d->mi_offsets) {
- int *offset = d->mi_offsets;
- while (*offset != -1) {
- if (*offset > 0)
- m_d->assignWrapper(pyObj, reinterpret_cast<void *>(reinterpret_cast<uintptr_t>(cptr) + *offset));
- offset++;
- }
- }
+ m_d->assignWrapper(pyObj, cptr, d->mi_offsets);
}
void BindingManager::releaseWrapper(SbkObject *sbkObj)
@@ -239,17 +292,10 @@ void BindingManager::releaseWrapper(SbkObject *sbkObj)
int numBases = ((d && d->is_multicpp) ? getNumberOfCppBaseClasses(Py_TYPE(sbkObj)) : 1);
void ** cptrs = reinterpret_cast<SbkObject *>(sbkObj)->d->cptr;
+ const int *mi_offsets = d != nullptr ? d->mi_offsets : nullptr;
for (int i = 0; i < numBases; ++i) {
- auto *cptr = reinterpret_cast<unsigned char *>(cptrs[i]);
- m_d->releaseWrapper(cptr, sbkObj);
- if (d && d->mi_offsets) {
- int *offset = d->mi_offsets;
- while (*offset != -1) {
- if (*offset > 0)
- m_d->releaseWrapper(reinterpret_cast<void *>(reinterpret_cast<uintptr_t>(cptr) + *offset), sbkObj);
- offset++;
- }
- }
+ if (cptrs[i] != nullptr)
+ m_d->releaseWrapper(cptrs[i], sbkObj, mi_offsets);
}
sbkObj->d->validCppObject = false;
}
@@ -268,6 +314,7 @@ void BindingManager::addToDeletionInMainThread(const DestructorEntry &e)
SbkObject *BindingManager::retrieveWrapper(const void *cptr)
{
+ std::lock_guard<std::recursive_mutex> guard(m_d->wrapperMapLock);
auto iter = m_d->wrapperMapper.find(cptr);
if (iter == m_d->wrapperMapper.end())
return nullptr;
@@ -281,7 +328,7 @@ PyObject *BindingManager::getOverride(const void *cptr,
SbkObject *wrapper = retrieveWrapper(cptr);
// The refcount can be 0 if the object is dieing and someone called
// a virtual method from the destructor
- if (!wrapper || reinterpret_cast<const PyObject *>(wrapper)->ob_refcnt == 0)
+ if (!wrapper || Py_REFCNT(reinterpret_cast<const PyObject *>(wrapper)) == 0)
return nullptr;
// PYSIDE-1626: Touch the type to initiate switching early.
@@ -289,11 +336,6 @@ PyObject *BindingManager::getOverride(const void *cptr,
int flag = currentSelectId(Py_TYPE(wrapper));
int propFlag = isdigit(methodName[0]) ? methodName[0] - '0' : 0;
- if ((flag & 0x02) != 0 && (propFlag & 3) != 0) {
- // PYSIDE-1019: Handle overriding with properties.
- // They cannot be overridden (make that sure by the metaclass).
- return nullptr;
- }
bool is_snake = flag & 0x01;
PyObject *pyMethodName = nameCache[is_snake]; // borrowed
if (pyMethodName == nullptr) {
@@ -303,12 +345,13 @@ PyObject *BindingManager::getOverride(const void *cptr,
nameCache[is_snake] = pyMethodName;
}
- if (wrapper->ob_dict) {
- PyObject *method = PyDict_GetItem(wrapper->ob_dict, pyMethodName);
- if (method) {
- Py_INCREF(method);
- return method;
- }
+ auto *obWrapper = reinterpret_cast<PyObject *>(wrapper);
+ auto *wrapper_dict = SbkObject_GetDict_NoRef(obWrapper);
+ if (PyObject *method = PyDict_GetItem(wrapper_dict, pyMethodName)) {
+ // Note: This special case was implemented for duck-punching, which happens
+ // in the instance dict. It does not work with properties.
+ Py_INCREF(method);
+ return method;
}
PyObject *method = PyObject_GetAttr(reinterpret_cast<PyObject *>(wrapper), pyMethodName);
@@ -318,6 +361,7 @@ PyObject *BindingManager::getOverride(const void *cptr,
// PYSIDE-1523: PyMethod_Check is not accepting compiled methods, we do this rather
// crude check for them.
if (method) {
+ // PYSIDE-535: This macro is redefined in a compatible way in pep384
if (PyMethod_Check(method)) {
if (PyMethod_GET_SELF(method) == reinterpret_cast<PyObject *>(wrapper)) {
function = PyMethod_GET_FUNCTION(method);
@@ -326,7 +370,8 @@ PyObject *BindingManager::getOverride(const void *cptr,
method = nullptr;
}
} else if (PyObject_HasAttr(method, PyName::im_self())
- && PyObject_HasAttr(method, PyName::im_func())) {
+ && PyObject_HasAttr(method, PyName::im_func())
+ && PyObject_HasAttr(method, Shiboken::PyMagicName::code())) {
PyObject *im_self = PyObject_GetAttr(method, PyName::im_self());
// Not retaining a reference inline with what PyMethod_GET_SELF does.
Py_DECREF(im_self);
@@ -346,41 +391,59 @@ PyObject *BindingManager::getOverride(const void *cptr,
}
if (method != nullptr) {
- PyObject *defaultMethod;
+ PyObject *defaultMethod{};
PyObject *mro = Py_TYPE(wrapper)->tp_mro;
int size = PyTuple_GET_SIZE(mro);
+ bool defaultFound = false;
// The first class in the mro (index 0) is the class being checked and it should not be tested.
// The last class in the mro (size - 1) is the base Python object class which should not be tested also.
for (int idx = 1; idx < size - 1; ++idx) {
auto *parent = reinterpret_cast<PyTypeObject *>(PyTuple_GET_ITEM(mro, idx));
- if (parent->tp_dict) {
- defaultMethod = PyDict_GetItem(parent->tp_dict, pyMethodName);
- if (defaultMethod && function != defaultMethod)
- return method;
+ AutoDecRef tpDict(PepType_GetDict(parent));
+ auto *parentDict = tpDict.object();
+ if (parentDict) {
+ defaultMethod = PyDict_GetItem(parentDict, pyMethodName);
+ if (defaultMethod) {
+ defaultFound = true;
+ if (function != defaultMethod)
+ return method;
+ }
}
}
-
+ // PYSIDE-2255: If no default method was found, use the method.
+ if (!defaultFound)
+ return method;
Py_DECREF(method);
}
return nullptr;
}
-void BindingManager::addClassInheritance(PyTypeObject *parent, PyTypeObject *child)
+void BindingManager::addClassInheritance(Module::TypeInitStruct *parent,
+ Module::TypeInitStruct *child)
{
- m_d->classHierarchy.addEdge(parent, child);
+ m_d->classHierarchy.addEdge(GraphNode(parent), GraphNode(child));
}
+BindingManager::TypeCptrPair BindingManager::findDerivedType(void *cptr, PyTypeObject *type) const
+{
+ return m_d->classHierarchy.identifyType(cptr, type, type);
+}
+
+// FIXME PYSIDE7: remove, just for compatibility
PyTypeObject *BindingManager::resolveType(void **cptr, PyTypeObject *type)
{
- PyTypeObject *identifiedType = m_d->classHierarchy.identifyType(cptr, type, type);
- return identifiedType ? identifiedType : type;
+ auto result = findDerivedType(*cptr, type);
+ if (result.second != nullptr)
+ *cptr = result.second;
+ return result.first != nullptr ? result.first : type;
}
std::set<PyObject *> BindingManager::getAllPyObjects()
{
std::set<PyObject *> pyObjects;
+ std::lock_guard<std::recursive_mutex> guard(m_d->wrapperMapLock);
const WrapperMap &wrappersMap = m_d->wrapperMapper;
auto it = wrappersMap.begin();
for (; it != wrappersMap.end(); ++it)
@@ -392,10 +455,94 @@ std::set<PyObject *> BindingManager::getAllPyObjects()
void BindingManager::visitAllPyObjects(ObjectVisitor visitor, void *data)
{
WrapperMap copy = m_d->wrapperMapper;
- for (auto it = copy.begin(); it != copy.end(); ++it) {
- if (hasWrapper(it->first))
- visitor(it->second, data);
+ for (const auto &p : copy) {
+ if (hasWrapper(p.first))
+ visitor(p.second, data);
+ }
+}
+
+bool BindingManager::dumpTypeGraph(const char *fileName) const
+{
+ return m_d->classHierarchy.dumpTypeGraph(fileName);
+}
+
+void BindingManager::dumpWrapperMap()
+{
+ const auto &wrapperMap = m_d->wrapperMapper;
+ std::cerr << "-------------------------------\n"
+ << "WrapperMap size: " << wrapperMap.size() << " Types: "
+ << m_d->classHierarchy.nodeSet().size() << '\n';
+ for (auto it = wrapperMap.begin(), end = wrapperMap.end(); it != end; ++it) {
+ const SbkObject *sbkObj = it->second;
+ std::cerr << "key: " << it->first << ", value: "
+ << static_cast<const void *>(sbkObj) << " ("
+ << (Py_TYPE(sbkObj))->tp_name << ", refcnt: "
+ << Py_REFCNT(reinterpret_cast<const PyObject *>(sbkObj)) << ")\n";
+ }
+ std::cerr << "-------------------------------\n";
+}
+
+static bool isPythonType(PyTypeObject *type)
+{
+ // This is a type which should be called by multiple inheritance.
+ // It is either a pure Python type or a derived PySide type.
+ return !ObjectType::checkType(type) || ObjectType::isUserType(type);
+}
+
+bool callInheritedInit(PyObject *self, PyObject *args, PyObject *kwds,
+ const char *fullName)
+{
+ using Shiboken::AutoDecRef;
+
+ static PyObject *const _init = String::createStaticString("__init__");
+ static PyObject *objectInit =
+ PyObject_GetAttr(reinterpret_cast<PyObject *>(&PyBaseObject_Type), _init);
+
+ // A native C++ self cannot have multiple inheritance.
+ if (!Object::isUserType(self))
+ return false;
+
+ auto *startType = Py_TYPE(self);
+ auto *mro = startType->tp_mro;
+ Py_ssize_t idx, n = PyTuple_GET_SIZE(mro);
+ auto classNameLen = std::strrchr(fullName, '.') - fullName;
+ /* No need to check the last one: it's gonna be skipped anyway. */
+ for (idx = 0; idx + 1 < n; ++idx) {
+ auto *lookType = reinterpret_cast<PyTypeObject *>(PyTuple_GET_ITEM(mro, idx));
+ const char *lookName = lookType->tp_name;
+ auto lookLen = long(std::strlen(lookName));
+ if (std::strncmp(lookName, fullName, classNameLen) == 0 && lookLen == classNameLen)
+ break;
+ }
+ // We are now at the first non-Python class `QObject`.
+ // mro: ('C', 'A', 'QObject', 'Object', 'B', 'object')
+ // We want to catch class `B` and call its `__init__`.
+ for (idx += 1; idx + 1 < n; ++idx) {
+ auto *t = reinterpret_cast<PyTypeObject *>(PyTuple_GET_ITEM(mro, idx));
+ if (isPythonType(t))
+ break;
}
+ if (idx >= n)
+ return false;
+
+ auto *obSubType = PyTuple_GET_ITEM(mro, idx);
+ auto *subType = reinterpret_cast<PyTypeObject *>(obSubType);
+ if (subType == &PyBaseObject_Type)
+ return false;
+ AutoDecRef func(PyObject_GetAttr(obSubType, _init));
+ // PYSIDE-2654: If this has no implementation then we get object.__init__
+ // but that is the same case like above.
+ if (func == objectInit)
+ return false;
+ // PYSIDE-2294: We need to explicitly ignore positional args in a mixin class.
+ SBK_UNUSED(args);
+ AutoDecRef newArgs(PyTuple_New(1));
+ auto *newArgsOb = newArgs.object();
+ Py_INCREF(self);
+ PyTuple_SET_ITEM(newArgsOb, 0, self);
+ // Note: This can fail, so please always check the error status.
+ AutoDecRef result(PyObject_Call(func, newArgs, kwds));
+ return true;
}
} // namespace Shiboken
diff --git a/sources/shiboken6/libshiboken/bindingmanager.h b/sources/shiboken6/libshiboken/bindingmanager.h
index bd87bc636..54c4e486a 100644
--- a/sources/shiboken6/libshiboken/bindingmanager.h
+++ b/sources/shiboken6/libshiboken/bindingmanager.h
@@ -1,57 +1,27 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef BINDINGMANAGER_H
#define BINDINGMANAGER_H
#include "sbkpython.h"
-#include <set>
#include "shibokenmacros.h"
+#include <set>
+#include <utility>
+
struct SbkObject;
namespace Shiboken
{
+namespace Module {
+struct TypeInitStruct;
+}
+
struct DestructorEntry;
-typedef void (*ObjectVisitor)(SbkObject *, void *);
+using ObjectVisitor = void (*)(SbkObject *, void *);
class LIBSHIBOKEN_API BindingManager
{
@@ -74,7 +44,15 @@ public:
SbkObject *retrieveWrapper(const void *cptr);
PyObject *getOverride(const void *cptr, PyObject *nameCache[], const char *methodName);
- void addClassInheritance(PyTypeObject *parent, PyTypeObject *child);
+ void addClassInheritance(Module::TypeInitStruct *parent, Module::TypeInitStruct *child);
+ /// Try to find the correct type of cptr via type discovery knowing that it's at least
+ /// of type \p type. If a derived class is found, it returns a cptr cast to the type
+ /// (which may be different in case of multiple inheritance.
+ /// \param cptr a pointer to the instance of type \p type
+ /// \param type type of cptr
+ using TypeCptrPair = std::pair<PyTypeObject *, void *>;
+ TypeCptrPair findDerivedType(void *cptr, PyTypeObject *type) const;
+
/**
* Try to find the correct type of *cptr knowing that it's at least of type \p type.
* In case of multiple inheritance this function may change the contents of cptr.
@@ -82,7 +60,7 @@ public:
* \param type type of *cptr
* \warning This function is slow, use it only as last resort.
*/
- PyTypeObject *resolveType(void **cptr, PyTypeObject *type);
+ [[deprecated]] PyTypeObject *resolveType(void **cptr, PyTypeObject *type);
std::set<PyObject *> getAllPyObjects();
@@ -95,6 +73,9 @@ public:
*/
void visitAllPyObjects(ObjectVisitor visitor, void *data);
+ bool dumpTypeGraph(const char *fileName) const;
+ void dumpWrapperMap();
+
private:
~BindingManager();
BindingManager();
@@ -103,6 +84,9 @@ private:
BindingManagerPrivate *m_d;
};
+LIBSHIBOKEN_API bool callInheritedInit(PyObject *self, PyObject *args, PyObject *kwds,
+ const char *fullName);
+
} // namespace Shiboken
#endif // BINDINGMANAGER_H
diff --git a/sources/shiboken6/libshiboken/bufferprocs_py37.cpp b/sources/shiboken6/libshiboken/bufferprocs_py37.cpp
index da6bb00a3..4ccf970e5 100644
--- a/sources/shiboken6/libshiboken/bufferprocs_py37.cpp
+++ b/sources/shiboken6/libshiboken/bufferprocs_py37.cpp
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
/*****************************************************************************
*
diff --git a/sources/shiboken6/libshiboken/bufferprocs_py37.h b/sources/shiboken6/libshiboken/bufferprocs_py37.h
index 6fc7a3ece..e16194e50 100644
--- a/sources/shiboken6/libshiboken/bufferprocs_py37.h
+++ b/sources/shiboken6/libshiboken/bufferprocs_py37.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
/*
PSF LICENSE AGREEMENT FOR PYTHON 3.7.0
@@ -103,8 +67,8 @@ typedef struct bufferinfo {
void *internal;
} Pep_buffer;
-typedef int (*getbufferproc)(PyObject *, Pep_buffer *, int);
-typedef void (*releasebufferproc)(PyObject *, Pep_buffer *);
+using getbufferproc =int (*)(PyObject *, Pep_buffer *, int);
+using releasebufferproc = void (*)(PyObject *, Pep_buffer *);
/* Maximum number of dimensions */
#define PyBUF_MAX_NDIM 64
diff --git a/sources/shiboken6/libshiboken/debugfreehook.cpp b/sources/shiboken6/libshiboken/debugfreehook.cpp
index 3d52d88dc..13df6bd6c 100644
--- a/sources/shiboken6/libshiboken/debugfreehook.cpp
+++ b/sources/shiboken6/libshiboken/debugfreehook.cpp
@@ -1,49 +1,13 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include "debugfreehook.h"
#include "bindingmanager.h"
#include "gilstate.h"
#if defined(_WIN32) && defined(_DEBUG)
-#include <crtdbg.h>
-#include <windows.h>
+# include <sbkwindows.h>
+# include <crtdbg.h>
#endif
#ifdef __GLIBC__
diff --git a/sources/shiboken6/libshiboken/debugfreehook.h b/sources/shiboken6/libshiboken/debugfreehook.h
index fdf98d5d3..c19e36ab2 100644
--- a/sources/shiboken6/libshiboken/debugfreehook.h
+++ b/sources/shiboken6/libshiboken/debugfreehook.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef DEBUGFREEHOOK_H
#define DEBUGFREEHOOK_H
diff --git a/sources/shiboken6/libshiboken/embed/embedding_generator.py b/sources/shiboken6/libshiboken/embed/embedding_generator.py
index 1477ff541..a058fd372 100644
--- a/sources/shiboken6/libshiboken/embed/embedding_generator.py
+++ b/sources/shiboken6/libshiboken/embed/embedding_generator.py
@@ -1,41 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of PySide6.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
"""
embedding_generator.py
@@ -81,7 +45,7 @@ def runpy(cmd, **kw):
subprocess.call([sys.executable, '-E'] + cmd.split(), **kw)
-def create_zipfile(limited_api, quiet):
+def create_zipfile(use_pyc, quiet):
"""
Collect all Python files, compile them, create a zip file
and make a chunked base64 encoded file from it.
@@ -110,7 +74,7 @@ def create_zipfile(limited_api, quiet):
if embed_dir != work_dir:
utils.copyfile(embed_dir / "signature_bootstrap.py", work_dir)
- if limited_api:
+ if not use_pyc:
pass # We cannot compile, unless we have folders per Python version
else:
files = ' '.join(fn for fn in os.listdir('.'))
@@ -126,9 +90,9 @@ def create_zipfile(limited_api, quiet):
tmp.close()
# also generate a simple embeddable .pyc file for signature_bootstrap.pyc
- boot_name = "signature_bootstrap.py" if limited_api else "signature_bootstrap.pyc"
+ boot_name = "signature_bootstrap.py" if not use_pyc else "signature_bootstrap.pyc"
with open(boot_name, "rb") as ldr, open("signature_bootstrap_inc.h", "w") as inc:
- _embed_bytefile(ldr, inc, limited_api)
+ _embed_bytefile(ldr, inc, not use_pyc)
os.chdir(cur_dir)
if quiet:
return
@@ -158,22 +122,23 @@ def _embed_file(fin, fout):
limit = 50
text = fin.readlines()
print(textwrap.dedent("""
- /*
- * This is a ZIP archive of all Python files in the directory
- * "shiboken6/shibokenmodule/files.dir/shibokensupport/signature"
- * There is also a toplevel file "signature_bootstrap.py[c]" that will be
- * directly executed from C++ as a bootstrap loader.
- */
+ // This is a ZIP archive of all Python files in the directory
+ // "shiboken6/shibokenmodule/files.dir/shibokensupport/signature"
+ // There is also a toplevel file "signature_bootstrap.py[c]" that will be
+ // directly executed from C++ as a bootstrap loader.
""").strip(), file=fout)
block, blocks = 0, len(text) // limit + 1
for idx, line in enumerate(text):
if idx % limit == 0:
+ if block:
+ fout.write(')"\n')
comma = "," if block else ""
block += 1
- print(file=fout)
- print(f'/* Block {block} of {blocks} */{comma}', file=fout)
- print(f'\"{line.strip()}\"', file=fout)
- print(f'/* Sentinel */, \"\"', file=fout)
+ fout.write(f'\n{comma} // Block {block} of {blocks}\nR"(')
+ else:
+ fout.write('\n')
+ fout.write(line.strip())
+ fout.write(')"\n\n/* Sentinel */, ""\n')
def _embed_bytefile(fin, fout, is_text):
@@ -247,9 +212,9 @@ def str2bool(v):
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument('--cmake-dir', nargs="?")
- parser.add_argument('--limited-api', type=str2bool)
+ parser.add_argument('--use-pyc', type=str2bool)
parser.add_argument('--quiet', action='store_true')
args = parser.parse_args()
if args.cmake_dir:
work_dir = Path(args.cmake_dir).resolve()
- create_zipfile(args.limited_api, args.quiet)
+ create_zipfile(args.use_pyc, args.quiet)
diff --git a/sources/shiboken6/libshiboken/embed/module_collector.py b/sources/shiboken6/libshiboken/embed/module_collector.py
index 42ce2667c..a58ce6e4f 100644
--- a/sources/shiboken6/libshiboken/embed/module_collector.py
+++ b/sources/shiboken6/libshiboken/embed/module_collector.py
@@ -1,44 +1,5 @@
-# This Python file uses the following encoding: utf-8
-# It has been edited by fix-complaints.py .
-
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
"""
module_collector.py
diff --git a/sources/shiboken6/libshiboken/embed/qt_python_license.txt b/sources/shiboken6/libshiboken/embed/qt_python_license.txt
index b5f8c581a..e5fdfdf4d 100644
--- a/sources/shiboken6/libshiboken/embed/qt_python_license.txt
+++ b/sources/shiboken6/libshiboken/embed/qt_python_license.txt
@@ -1,44 +1,5 @@
-# This Python file uses the following encoding: utf-8
-# It has been edited by fix-complaints.py .
-
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
##
## PSF LICENSE AGREEMENT FOR PYTHON 3.7.0
diff --git a/sources/shiboken6/libshiboken/embed/signature_bootstrap.py b/sources/shiboken6/libshiboken/embed/signature_bootstrap.py
index b76a83c51..37f95cd35 100644
--- a/sources/shiboken6/libshiboken/embed/signature_bootstrap.py
+++ b/sources/shiboken6/libshiboken/embed/signature_bootstrap.py
@@ -1,41 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of PySide6.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
"""
signature_bootstrap.py
@@ -62,6 +26,7 @@ recursion_trap = 0
import base64
import importlib
import io
+import os
import sys
import traceback
import zipfile
@@ -97,21 +62,83 @@ def bootstrap():
import shibokensupport
yield
except Exception as e:
- print("Problem importing shibokensupport:")
- print(f"{e.__class__.__name__}: {e}")
+ f = sys.stderr
+ print("Problem importing shibokensupport:", file=f)
+ print(f"{e.__class__.__name__}: {e}", file=f)
traceback.print_exc()
- print("sys.path:")
+ print("sys.path:", file=f)
for p in sys.path:
- print(" " + p)
- sys.stdout.flush()
+ print(" " + p, file=f)
+ f.flush()
sys.exit(-1)
target.remove(support_path)
- target, support_path = prepare_zipfile()
+ # Here we decide if we re-incarnate the embedded files or use embedding.
+ incarnated = find_incarnated_files()
+ if incarnated:
+ target, support_path = sys.path, os.fspath(incarnated)
+ else:
+ target, support_path = prepare_zipfile()
with ensure_shibokensupport(target, support_path):
from shibokensupport.signature import loader
return loader
+# Newer functionality:
+# This function checks if the support directory exist and returns it.
+# If does not exist, we try to create it and return it.
+# Otherwise, we return None.
+
+def find_incarnated_files():
+ import shiboken6 as root
+ files_dir = Path(root.__file__).resolve().parent / "files.dir"
+ handle_embedding_switch(files_dir)
+ if files_dir.exists():
+ sys.path.insert(0, os.fspath(files_dir))
+ # Note: To avoid recursion problems, we need to preload the loader.
+ # But that has the side-effect that we need to delay the feature
+ # initialization until all function pointers are set.
+ # See `post_init_func` in signature_globals.cpp .
+ import shibokensupport.signature.loader
+ del sys.path[0]
+ return files_dir
+ return None
+
+
+def handle_embedding_switch(files_dir):
+ """
+ This handles the optional environment variable `SBK_EMBED`
+ if not set : do nothing
+ if set to 0, false, no : de-virtualize the Python files
+ if set to 1, true, yes : virtualize again (delete "files.dir")
+ """
+ env_name = "SBK_EMBED"
+ env_var = os.environ.get(env_name)
+ if not env_var:
+ return
+ if env_var.lower() in ("1", "t", "true", "y", "yes"):
+ import shutil
+ shutil.rmtree(files_dir, ignore_errors=True)
+ elif env_var.lower() in ("0", "f", "false", "n", "no"):
+ reincarnate_files(files_dir)
+
+
+def reincarnate_files(files_dir):
+ target, zip = prepare_zipfile()
+ names = (_ for _ in zip.zfile.namelist() if _.endswith(".py"))
+ try:
+ # First check mkdir to get an error when we cannot write.
+ files_dir.mkdir(exist_ok=True)
+ except os.error as e:
+ print(f"SBK_EMBED=False: Warning: Cannot write into {files_dir}")
+ return None
+ try:
+ # Then check for a real error when unpacking the zip file.
+ zip.zfile.extractall(path=files_dir, members=names)
+ return files_dir
+ except Exception as e:
+ print(f"{e.__class__.__name__}: {e}", file=sys.stderr)
+ traceback.print_exc()
+ raise
# New functionality: Loading from a zip archive.
# There exists the zip importer, but as it is written, only real zip files are
diff --git a/sources/shiboken6/libshiboken/gilstate.cpp b/sources/shiboken6/libshiboken/gilstate.cpp
index 76a4d0e61..8daa93b8b 100644
--- a/sources/shiboken6/libshiboken/gilstate.cpp
+++ b/sources/shiboken6/libshiboken/gilstate.cpp
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include "gilstate.h"
diff --git a/sources/shiboken6/libshiboken/gilstate.h b/sources/shiboken6/libshiboken/gilstate.h
index fbf39ead0..abad9d955 100644
--- a/sources/shiboken6/libshiboken/gilstate.h
+++ b/sources/shiboken6/libshiboken/gilstate.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef GILSTATE_H
#define GILSTATE_H
diff --git a/sources/shiboken6/libshiboken/helper.cpp b/sources/shiboken6/libshiboken/helper.cpp
index aa8d28c38..46af68956 100644
--- a/sources/shiboken6/libshiboken/helper.cpp
+++ b/sources/shiboken6/libshiboken/helper.cpp
@@ -1,67 +1,64 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include "helper.h"
+#include "basewrapper_p.h"
#include "sbkstring.h"
#include "sbkstaticstrings.h"
+#include "sbkstaticstrings.h"
+#include "pep384impl.h"
+
+#include <algorithm>
+#include <optional>
#include <iomanip>
#include <iostream>
-
+#include <climits>
+#include <cstring>
#include <cstdarg>
+#include <cctype>
#ifdef _WIN32
-# ifndef NOMINMAX
-# define NOMINMAX
-# endif
-# include <windows.h>
+# include <sbkwindows.h>
#else
# include <pthread.h>
#endif
-#include <algorithm>
+static std::optional<std::string> getStringAttr(PyObject *obj, const char *what)
+{
+ if (PyObject_HasAttrString(obj, what) != 0) { // Check first to suppress error.
+ Shiboken::AutoDecRef result(PyObject_GetAttrString(obj, what));
+ if (PyUnicode_Check(result.object()) != 0)
+ return _PepUnicode_AsString(result.object());
+ }
+ return std::nullopt;
+}
-static void formatPyTypeObject(const PyTypeObject *obj, std::ostream &str)
+static std::optional<int> getIntAttr(PyObject *obj, const char *what)
{
- if (obj) {
- str << '"' << obj->tp_name << "\", 0x" << std::hex
- << obj->tp_flags << std::dec;
+ if (PyObject_HasAttrString(obj, what) != 0) { // Check first to suppress error.
+ Shiboken::AutoDecRef result(PyObject_GetAttrString(obj, what));
+ if (PyLong_Check(result.object()) != 0)
+ return PyLong_AsLong(result.object());
+ }
+ return std::nullopt;
+}
+
+static bool verbose = false;
+
+static void formatTypeTuple(PyObject *t, const char *what, std::ostream &str);
+
+static void formatPyTypeObject(const PyTypeObject *obj, std::ostream &str, bool verbose)
+{
+ if (obj == nullptr) {
+ str << '0';
+ return;
+ }
+
+ str << '"' << obj->tp_name << '"';
+ if (verbose) {
+ bool immutableType = false;
+ str << ", 0x" << std::hex << obj->tp_flags << std::dec;
if (obj->tp_flags & Py_TPFLAGS_HEAPTYPE)
str << " [heaptype]";
if (obj->tp_flags & Py_TPFLAGS_BASETYPE)
@@ -84,8 +81,59 @@ static void formatPyTypeObject(const PyTypeObject *obj, std::ostream &str)
str << " [type]";
if (obj->tp_flags & Py_TPFLAGS_IS_ABSTRACT)
str << " [abstract]";
- } else {
- str << '0';
+ if (obj->tp_flags & Py_TPFLAGS_READY)
+ str << " [ready]";
+ if (obj->tp_flags & Py_TPFLAGS_READYING)
+ str << " [readying]";
+ if (obj->tp_flags & Py_TPFLAGS_METHOD_DESCRIPTOR)
+ str << " [method_descriptor]";
+# ifndef Py_LIMITED_API
+ if (obj->tp_flags & Py_TPFLAGS_HAVE_VECTORCALL)
+ str << " [vectorcall]";
+# endif // !Py_LIMITED_API
+# if PY_VERSION_HEX >= 0x030A0000
+ immutableType = (obj->tp_flags & Py_TPFLAGS_IMMUTABLETYPE) != 0;
+ if (immutableType)
+ str << " [immutabletype]";
+ if (obj->tp_flags & Py_TPFLAGS_DISALLOW_INSTANTIATION)
+ str << " [disallow_instantiation]";
+# ifndef Py_LIMITED_API
+ if (obj->tp_flags & Py_TPFLAGS_MAPPING)
+ str << " [mapping]";
+ if (obj->tp_flags & Py_TPFLAGS_SEQUENCE)
+ str << " [sequence]";
+# endif // !Py_LIMITED_API
+# endif // 3.10
+ if (obj->tp_basicsize != 0)
+ str << ", basicsize=" << obj->tp_basicsize;
+ if (verbose) {
+ formatTypeTuple(obj->tp_bases, "bases", str);
+ formatTypeTuple(obj->tp_mro, "mro", str);
+ if (!immutableType) {
+ auto *underlying = reinterpret_cast<const PyObject *>(obj)->ob_type;
+ if (underlying != nullptr && underlying != obj) {
+ str << ", underlying=\"" << underlying->tp_name << '"';
+ }
+ }
+ }
+ }
+}
+
+static void formatTypeTuple(PyObject *t, const char *what, std::ostream &str)
+{
+ const Py_ssize_t size = t != nullptr && PyTuple_Check(t) != 0 ? PyTuple_Size(t) : 0;
+ if (size > 0) {
+ str << ", " << what << "=[" << size << "]{";
+ for (Py_ssize_t i = 0; i < size; ++i) {
+ if (i != 0)
+ str << ", ";
+ Shiboken::AutoDecRef item(PyTuple_GetItem(t, i));
+ if (item.isNull())
+ str << '0'; // Observed with non-ready types
+ else
+ str << '"' << reinterpret_cast<PyTypeObject *>(item.object())->tp_name << '"';
+ }
+ str << '}';
}
}
@@ -110,24 +158,224 @@ static void formatPySequence(PyObject *obj, std::ostream &str)
str << '>';
}
-static void formatPyObject(PyObject *obj, std::ostream &str)
+static void formatPyTuple(PyObject *obj, std::ostream &str)
+{
+
+ const Py_ssize_t size = PyTuple_Size(obj);
+ str << size << " <";
+ for (Py_ssize_t i = 0; i < size; ++i) {
+ if (i)
+ str << ", ";
+ str << '(';
+ PyObject *item = PyTuple_GetItem(obj, i);
+ formatPyObject(item, str);
+ str << ')';
+ Py_XDECREF(item);
+ }
+ str << '>';
+}
+
+static void formatPyDict(PyObject *obj, std::ostream &str)
{
- if (obj) {
- formatPyTypeObject(obj->ob_type, str);
- str << ", ";
- if (PyLong_Check(obj))
- str << PyLong_AsLong(obj);
- else if (PyFloat_Check(obj))
- str << PyFloat_AsDouble(obj);
- else if (PyUnicode_Check(obj))
- str << '"' << _PepUnicode_AsString(obj) << '"';
- else if (PySequence_Check(obj))
- formatPySequence(obj, str);
+ PyObject *key;
+ PyObject *value;
+ Py_ssize_t pos = 0;
+ str << '{';
+ while (PyDict_Next(obj, &pos, &key, &value) != 0) {
+ if (pos)
+ str << ", ";
+ str << Shiboken::debugPyObject(key) << '=' << Shiboken::debugPyObject(value);
+ }
+ str << '}';
+}
+
+// Helper to format a 0-terminated character sequence
+template <class Char>
+static void formatCharSequence(const Char *s, std::ostream &str)
+{
+ str << '"';
+ const auto oldFillC = str.fill('0');
+ str << std::hex;
+ for (; *s; ++s) {
+ const unsigned c = *s;
+ if (c < 127)
+ str << char(c);
else
- str << "<unknown>";
+ str << "0x" << std::right << std::setw(sizeof(Char) * 2) << c << std::left;
+ }
+ str << std::dec;
+ str.fill(oldFillC);
+ str << '"';
+}
+
+static void formatPyUnicode(PyObject *obj, std::ostream &str)
+{
+ // Note: The below call create the PyCompactUnicodeObject.utf8 representation
+ str << '"' << _PepUnicode_AsString(obj) << '"';
+ if (!verbose)
+ return;
+
+ str << " (" << PyUnicode_GetLength(obj) << ')';
+ const auto kind = _PepUnicode_KIND(obj);
+ switch (kind) {
+#if PY_VERSION_HEX < 0x030C0000
+ case PepUnicode_WCHAR_KIND:
+ str << " [wchar]";
+ break;
+#endif
+ case PepUnicode_1BYTE_KIND:
+ str << " [1byte]";
+ break;
+ case PepUnicode_2BYTE_KIND:
+ str << " [2byte]";
+ break;
+ case PepUnicode_4BYTE_KIND:
+ str << " [4byte]";
+ break;
+ }
+
+ const bool ascii = _PepUnicode_IS_ASCII(obj);
+ if (ascii)
+ str << " [ascii]";
+ const bool compact = _PepUnicode_IS_COMPACT(obj);
+ if (compact)
+ str << " [compact]";
+ void *data =_PepUnicode_DATA(obj);
+ str << ", data=";
+ switch (kind) {
+#if PY_VERSION_HEX < 0x030C0000
+ case PepUnicode_WCHAR_KIND:
+ formatCharSequence(reinterpret_cast<const wchar_t *>(data), str);
+#endif
+ break;
+ case PepUnicode_1BYTE_KIND:
+ formatCharSequence(reinterpret_cast<const Py_UCS1 *>(data), str);
+ break;
+ case PepUnicode_2BYTE_KIND:
+ formatCharSequence(reinterpret_cast<const Py_UCS2 *>(data), str);
+ break;
+ case PepUnicode_4BYTE_KIND:
+ formatCharSequence(reinterpret_cast<const Py_UCS4 *>(data), str);
+ break;
+ }
+
+#ifndef Py_LIMITED_API
+ const char *utf8 = nullptr;
+ if (!ascii && compact && kind == PepUnicode_1BYTE_KIND) {
+ const auto *compactObj = reinterpret_cast<const PyCompactUnicodeObject *>(obj);
+ if (compactObj->utf8_length)
+ utf8 = compactObj->utf8;
+ }
+ if (utf8) {
+ str << ", utf8=";
+ formatCharSequence(reinterpret_cast<const Py_UCS1 *>(utf8), str);
} else {
- str << '0';
+ str << ", no-utf8";
}
+#endif // !Py_LIMITED_API
+}
+
+static std::string getQualName(PyObject *obj)
+{
+ Shiboken::AutoDecRef result(PyObject_GetAttr(obj, Shiboken::PyMagicName::qualname()));
+ return result.object() != nullptr
+ ? _PepUnicode_AsString(result.object()) : std::string{};
+}
+
+static void formatPyFunction(PyObject *obj, std::ostream &str)
+{
+ str << '"' << getQualName(obj) << "()\"";
+}
+
+static void formatPyMethod(PyObject *obj, std::ostream &str)
+{
+ if (auto *func = PyMethod_Function(obj))
+ formatPyFunction(func, str);
+ str << ", instance=" << PyMethod_Self(obj);
+}
+
+static void formatPyCodeObject(PyObject *obj, std::ostream &str)
+{
+ if (auto name = getStringAttr(obj, "co_name"))
+ str << '"' << name.value() << '"';
+ if (auto qualName = getStringAttr(obj, "co_qualname"))
+ str << ", co_qualname=\"" << qualName.value() << '"';
+ if (auto flags = getIntAttr(obj, "co_flags"))
+ str << ", flags=0x" << std::hex << flags.value() << std::dec;
+ if (auto c = getIntAttr(obj, "co_argcount"))
+ str << ", co_argcounts=" << c.value();
+ if (auto c = getIntAttr(obj, "co_posonlyargcount"))
+ str << ", co_posonlyargcount=" << c.value();
+ if (auto c = getIntAttr(obj, "co_kwonlyargcount"))
+ str << ", co_kwonlyargcount=" << c.value();
+ if (auto fileName = getStringAttr(obj, "co_filename")) {
+ str << " @" << fileName.value();
+ if (auto l = getIntAttr(obj, "co_firstlineno"))
+ str << ':'<< l.value();
+ }
+}
+
+static void formatPyObjectHelper(PyObject *obj, std::ostream &str)
+{
+ str << ", ";
+ if (obj == Py_None) {
+ str << "None";
+ return;
+ }
+ if (obj == Py_True) {
+ str << "True";
+ return;
+ }
+ if (obj == Py_False) {
+ str << "False";
+ return;
+ }
+ const auto refs = Py_REFCNT(obj);
+ if (refs == UINT_MAX) // _Py_IMMORTAL_REFCNT
+ str << "immortal, ";
+ else
+ str << "refs=" << refs << ", ";
+ if (PyType_Check(obj)) {
+ str << "type: ";
+ formatPyTypeObject(reinterpret_cast<PyTypeObject *>(obj), str, true);
+ return;
+ }
+ formatPyTypeObject(obj->ob_type, str, false);
+ str << ", ";
+ if (PyLong_Check(obj)) {
+ const auto llv = PyLong_AsLongLong(obj);
+ if (PyErr_Occurred() != PyExc_OverflowError) {
+ str << llv;
+ } else {
+ PyErr_Clear();
+ str << "0x" << std::hex << PyLong_AsUnsignedLongLong(obj) << std::dec;
+ }
+ }
+ else if (PyFloat_Check(obj))
+ str << PyFloat_AsDouble(obj);
+ else if (PyUnicode_Check(obj))
+ formatPyUnicode(obj, str);
+ else if (PyFunction_Check(obj) != 0)
+ formatPyFunction(obj, str);
+ else if (PyMethod_Check(obj) != 0)
+ formatPyMethod(obj, str);
+ else if (PepCode_Check(obj) != 0)
+ formatPyCodeObject(obj, str);
+ else if (PySequence_Check(obj))
+ formatPySequence(obj, str);
+ else if (PyDict_Check(obj))
+ formatPyDict(obj, str);
+ else if (PyTuple_CheckExact(obj))
+ formatPyTuple(obj, str);
+ else
+ str << "<unknown>";
+}
+
+static void formatPyObject(PyObject *obj, std::ostream &str)
+{
+ str << obj;
+ if (obj)
+ formatPyObjectHelper(obj, str);
}
namespace Shiboken
@@ -137,6 +385,10 @@ debugPyObject::debugPyObject(PyObject *o) : m_object(o)
{
}
+debugSbkObject::debugSbkObject(SbkObject *o) : m_object(o)
+{
+}
+
debugPyTypeObject::debugPyTypeObject(const PyTypeObject *o) : m_object(o)
{
}
@@ -148,7 +400,18 @@ debugPyBuffer::debugPyBuffer(const Py_buffer &b) : m_buffer(b)
std::ostream &operator<<(std::ostream &str, const debugPyTypeObject &o)
{
str << "PyTypeObject(";
- formatPyTypeObject(o.m_object, str);
+ formatPyTypeObject(o.m_object, str, true);
+ str << ')';
+ return str;
+}
+
+std::ostream &operator<<(std::ostream &str, const debugSbkObject &o)
+{
+ str << "SbkObject(" << o.m_object;
+ if (o.m_object) {
+ Shiboken::Object::_debugFormat(str, o.m_object);
+ formatPyObjectHelper(reinterpret_cast<PyObject *>(o.m_object), str);
+ }
str << ')';
return str;
}
@@ -173,6 +436,18 @@ std::ostream &operator<<(std::ostream &str, const debugPyBuffer &b)
return str;
}
+std::ios_base &debugVerbose(std::ios_base &s)
+{
+ verbose = true;
+ return s;
+}
+
+std::ios_base &debugBrief(std::ios_base &s)
+{
+ verbose = false;
+ return s;
+}
+
#ifdef _WIN32
// Converts a Unicode string to a string encoded in the Windows console's
// code page via wchar_t for use with argv (PYSIDE-1425).
@@ -316,4 +591,47 @@ ThreadId mainThreadId()
return _mainThreadId;
}
+const char *typeNameOf(const char *typeIdName)
+{
+ auto size = std::strlen(typeIdName);
+#if defined(Q_CC_MSVC) // MSVC: "class QPaintDevice * __ptr64"
+ if (auto *lastStar = strchr(typeName, '*')) {
+ // MSVC: "class QPaintDevice * __ptr64"
+ while (*--lastStar == ' ') {
+ }
+ size = lastStar - typeName + 1;
+ }
+#else // g++, Clang: "QPaintDevice *" -> "P12QPaintDevice"
+ if (size > 2 && typeIdName[0] == 'P' && std::isdigit(typeIdName[1])) {
+ ++typeIdName;
+ --size;
+ }
+#endif
+ char *result = new char[size + 1];
+ result[size] = '\0';
+ std::memcpy(result, typeIdName, size);
+ return result;
+}
+
+#if !defined(Py_LIMITED_API) && PY_VERSION_HEX >= 0x030A0000 && !defined(PYPY_VERSION)
+static int _getPyVerbose()
+{
+ PyConfig config;
+ PyConfig_InitPythonConfig(&config);
+ return config.verbose;
+}
+#endif // !Py_LIMITED_API >= 3.10
+
+int pyVerbose()
+{
+#ifdef Py_LIMITED_API
+ return Pep_GetVerboseFlag();
+#elif PY_VERSION_HEX >= 0x030A0000 && !defined(PYPY_VERSION)
+ static const int result = _getPyVerbose();
+ return result;
+#else
+ return Py_VerboseFlag;
+#endif
+}
+
} // namespace Shiboken
diff --git a/sources/shiboken6/libshiboken/helper.h b/sources/shiboken6/libshiboken/helper.h
index 8221d68b0..f226e8c24 100644
--- a/sources/shiboken6/libshiboken/helper.h
+++ b/sources/shiboken6/libshiboken/helper.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef HELPER_H
#define HELPER_H
@@ -72,6 +36,10 @@ LIBSHIBOKEN_API bool listToArgcArgv(PyObject *argList, int *argc, char ***argv,
*/
LIBSHIBOKEN_API int *sequenceToIntArray(PyObject *obj, bool zeroTerminated = false);
+/// Fix a type name returned by typeid(t).name(), depending on compiler.
+/// \returns Fixed name (allocated).
+LIBSHIBOKEN_API const char *typeNameOf(const char *typeIdName);
+
/**
* Creates and automatically deallocates C++ arrays.
*/
@@ -84,8 +52,9 @@ class AutoArrayPointer
AutoArrayPointer &operator=(const AutoArrayPointer &) = delete;
AutoArrayPointer &operator=(AutoArrayPointer &&) = delete;
- explicit AutoArrayPointer(ssize_t size) { data = new T[size]; }
- T &operator[](ssize_t pos) { return data[pos]; }
+
+ explicit AutoArrayPointer(Py_ssize_t size) { data = new T[size]; }
+ T &operator[](Py_ssize_t pos) { return data[pos]; }
operator T *() const { return data; }
~AutoArrayPointer() { delete[] data; }
private:
@@ -96,6 +65,8 @@ using ThreadId = unsigned long long;
LIBSHIBOKEN_API ThreadId currentThreadId();
LIBSHIBOKEN_API ThreadId mainThreadId();
+LIBSHIBOKEN_API int pyVerbose();
+
/**
* An utility function used to call PyErr_WarnEx with a formatted message.
*/
@@ -108,6 +79,13 @@ struct LIBSHIBOKEN_API debugPyObject
PyObject *m_object;
};
+struct LIBSHIBOKEN_API debugSbkObject
+{
+ explicit debugSbkObject(SbkObject *o);
+
+ SbkObject *m_object;
+};
+
struct LIBSHIBOKEN_API debugPyTypeObject
{
explicit debugPyTypeObject(const PyTypeObject *o);
@@ -122,10 +100,20 @@ struct LIBSHIBOKEN_API debugPyBuffer
const Py_buffer &m_buffer;
};
+struct debugPyArrayObject
+{
+ explicit debugPyArrayObject(PyObject *object) : m_object(object) {}
+
+ PyObject *m_object;
+};
+
LIBSHIBOKEN_API std::ostream &operator<<(std::ostream &str, const debugPyObject &o);
+LIBSHIBOKEN_API std::ostream &operator<<(std::ostream &str, const debugSbkObject &o);
LIBSHIBOKEN_API std::ostream &operator<<(std::ostream &str, const debugPyTypeObject &o);
LIBSHIBOKEN_API std::ostream &operator<<(std::ostream &str, const debugPyBuffer &b);
-
+LIBSHIBOKEN_API std::ostream &operator<<(std::ostream &str, const debugPyArrayObject &b);
+LIBSHIBOKEN_API std::ios_base &debugVerbose(std::ios_base &s);
+LIBSHIBOKEN_API std::ios_base &debugBrief(std::ios_base &s);
} // namespace Shiboken
diff --git a/sources/shiboken6/libshiboken/pep384_issue33738.cpp b/sources/shiboken6/libshiboken/pep384_issue33738.cpp
deleted file mode 100644
index c20edeefa..000000000
--- a/sources/shiboken6/libshiboken/pep384_issue33738.cpp
+++ /dev/null
@@ -1,121 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-// There is a bug in Python 3.6 that turned the Index_Check function
-// into a macro without taking care of the limited API.
-// This leads to the single problem that we don't have
-// access to PyLong_Type's nb_index field which is no heap type.
-// We cannot easily create this function by inheritance since it is
-// not inherited.
-//
-// Simple solution: Create the structure and write such a function.
-// Long term: Submit a patch to python.org .
-
-// Update: I did the long-term solution for python 3.7 in issue 33738.
-
-typedef struct {
- /* Number implementations must check *both*
- arguments for proper type and implement the necessary conversions
- in the slot functions themselves. */
-
- binaryfunc nb_add;
- binaryfunc nb_subtract;
- binaryfunc nb_multiply;
- binaryfunc nb_remainder;
- binaryfunc nb_divmod;
- ternaryfunc nb_power;
- unaryfunc nb_negative;
- unaryfunc nb_positive;
- unaryfunc nb_absolute;
- inquiry nb_bool;
- unaryfunc nb_invert;
- binaryfunc nb_lshift;
- binaryfunc nb_rshift;
- binaryfunc nb_and;
- binaryfunc nb_xor;
- binaryfunc nb_or;
- unaryfunc nb_int;
- void *nb_reserved; /* the slot formerly known as nb_long */
- unaryfunc nb_float;
-
- binaryfunc nb_inplace_add;
- binaryfunc nb_inplace_subtract;
- binaryfunc nb_inplace_multiply;
- binaryfunc nb_inplace_remainder;
- ternaryfunc nb_inplace_power;
- binaryfunc nb_inplace_lshift;
- binaryfunc nb_inplace_rshift;
- binaryfunc nb_inplace_and;
- binaryfunc nb_inplace_xor;
- binaryfunc nb_inplace_or;
-
- binaryfunc nb_floor_divide;
- binaryfunc nb_true_divide;
- binaryfunc nb_inplace_floor_divide;
- binaryfunc nb_inplace_true_divide;
-
- unaryfunc nb_index;
-
- binaryfunc nb_matrix_multiply;
- binaryfunc nb_inplace_matrix_multiply;
-} PyNumberMethods;
-
-// temporary structure until we have a generator for the offsets
-typedef struct _oldtypeobject {
- PyVarObject ob_base;
- void *X01; // const char *tp_name;
- void *X02; // Py_ssize_t tp_basicsize;
- void *X03; // Py_ssize_t tp_itemsize;
- void *X04; // destructor tp_dealloc;
- void *X05; // printfunc tp_print;
- void *X06; // getattrfunc tp_getattr;
- void *X07; // setattrfunc tp_setattr;
- void *X08; // PyAsyncMethods *tp_as_async;
- void *X09; // reprfunc tp_repr;
- PyNumberMethods *tp_as_number;
-
-} PyOldTypeObject;
-
-int PyIndex_Check(PyObject *obj)
-{
- PyOldTypeObject *type = reinterpret_cast<PyOldTypeObject *>(Py_TYPE(obj));
- return type->tp_as_number != NULL &&
- type->tp_as_number->nb_index != NULL;
-}
-
diff --git a/sources/shiboken6/libshiboken/pep384ext.h b/sources/shiboken6/libshiboken/pep384ext.h
new file mode 100644
index 000000000..021c53d16
--- /dev/null
+++ b/sources/shiboken6/libshiboken/pep384ext.h
@@ -0,0 +1,89 @@
+// Copyright (C) 2024 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef PEP384EXT_H
+#define PEP384EXT_H
+
+#include "pep384impl.h"
+
+/// Returns the allocator slot of the PyTypeObject.
+inline allocfunc PepExt_Type_GetAllocSlot(PyTypeObject *t)
+{
+ return reinterpret_cast<allocfunc>(PepType_GetSlot(t, Py_tp_alloc));
+}
+
+/// Invokes the allocator slot of the PyTypeObject.
+template <class Type>
+inline Type *PepExt_TypeCallAlloc(PyTypeObject *t, Py_ssize_t nitems)
+{
+ PyObject *result = PepExt_Type_GetAllocSlot(t)(t, nitems);
+ return reinterpret_cast<Type *>(result);
+}
+
+/// Returns the getattro slot of the PyTypeObject.
+inline getattrofunc PepExt_Type_GetGetAttroSlot(PyTypeObject *t)
+{
+ return reinterpret_cast<getattrofunc>(PepType_GetSlot(t, Py_tp_getattro));
+}
+
+/// Returns the setattro slot of the PyTypeObject.
+inline setattrofunc PepExt_Type_GetSetAttroSlot(PyTypeObject *t)
+{
+ return reinterpret_cast<setattrofunc>(PepType_GetSlot(t, Py_tp_setattro));
+}
+
+/// Returns the descr_get slot of the PyTypeObject.
+inline descrgetfunc PepExt_Type_GetDescrGetSlot(PyTypeObject *t)
+{
+ return reinterpret_cast<descrgetfunc>(PepType_GetSlot(t, Py_tp_descr_get));
+}
+
+/// Invokes the descr_get slot of the PyTypeObject.
+inline PyObject *PepExt_Type_CallDescrGet(PyObject *self, PyObject *obj, PyObject *type)
+{
+ return PepExt_Type_GetDescrGetSlot(Py_TYPE(self))(self, obj, type);
+}
+
+/// Returns the descr_set slot of the PyTypeObject.
+inline descrsetfunc PepExt_Type_GetDescrSetSlot(PyTypeObject *t)
+{
+ return reinterpret_cast<descrsetfunc>(PepType_GetSlot(t, Py_tp_descr_set));
+}
+
+/// Returns the call slot of the PyTypeObject.
+inline ternaryfunc PepExt_Type_GetCallSlot(PyTypeObject *t)
+{
+ return reinterpret_cast<ternaryfunc>(PepType_GetSlot(t, Py_tp_call));
+}
+
+/// Returns the new slot of the PyTypeObject.
+inline newfunc PepExt_Type_GetNewSlot(PyTypeObject *t)
+{
+ return reinterpret_cast<newfunc>(PepType_GetSlot(t, Py_tp_new));
+}
+
+/// Returns the init slot of the PyTypeObject.
+inline initproc PepExt_Type_GetInitSlot(PyTypeObject *t)
+{
+ return reinterpret_cast<initproc>(PepType_GetSlot(t, Py_tp_init));
+}
+
+/// Returns the free slot of the PyTypeObject.
+inline freefunc PepExt_Type_GetFreeSlot(PyTypeObject *t)
+{
+ return reinterpret_cast<freefunc>(PepType_GetSlot(t, Py_tp_free));
+}
+
+/// Invokes the free slot of the PyTypeObject.
+inline void PepExt_TypeCallFree(PyTypeObject *t, void *object)
+{
+ PepExt_Type_GetFreeSlot(t)(object);
+}
+
+/// Invokes the free slot of the PyTypeObject.
+inline void PepExt_TypeCallFree(PyObject *object)
+{
+ PepExt_Type_GetFreeSlot(Py_TYPE(object))(object);
+}
+
+#endif // PEP384EXT_H
diff --git a/sources/shiboken6/libshiboken/pep384impl.cpp b/sources/shiboken6/libshiboken/pep384impl.cpp
index 2722510af..4b3759456 100644
--- a/sources/shiboken6/libshiboken/pep384impl.cpp
+++ b/sources/shiboken6/libshiboken/pep384impl.cpp
@@ -1,41 +1,7 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#define PEP384_INTERN
#include "sbkpython.h"
#include "autodecref.h"
@@ -44,8 +10,7 @@
#include "basewrapper.h"
#include "basewrapper_p.h"
#include "sbkenum.h"
-#include "sbkenum_p.h"
-#include "sbkconverter.h"
+#include "voidptr.h"
#include <cstdlib>
#include <cstring>
@@ -54,7 +19,7 @@ extern "C"
{
/*
- * The documentation is located in pep384impl_doc.rst
+ * The documentation is located in `sources/pyside6/doc/developer/limited_api.rst`.
* Here is the verification code for PyTypeObject.
* We create a type object and check if its fields
@@ -72,16 +37,16 @@ dummy_func(PyObject * /* self */, PyObject * /* args */)
}
static struct PyMethodDef probe_methoddef[] = {
- {"dummy", dummy_func, METH_NOARGS},
- {nullptr}
+ {"dummy", dummy_func, METH_NOARGS, nullptr},
+ {nullptr, nullptr, 0, nullptr}
};
static PyGetSetDef probe_getseters[] = {
- {nullptr} /* Sentinel */
+ {nullptr, nullptr, nullptr, nullptr, nullptr} /* Sentinel */
};
static PyMemberDef probe_members[] = {
- {nullptr} /* Sentinel */
+ {nullptr, 0, 0, 0, nullptr} /* Sentinel */
};
#define probe_tp_dealloc make_dummy(1)
@@ -152,6 +117,8 @@ check_PyTypeObject_valid()
PyObject *d = PyObject_GetAttr(obtype, Shiboken::PyMagicName::dictoffset());
long probe_tp_dictoffset = PyLong_AsLong(d);
PyObject *probe_tp_mro = PyObject_GetAttr(obtype, Shiboken::PyMagicName::mro());
+ Shiboken::AutoDecRef tpDict(PepType_GetDict(check));
+ auto *checkDict = tpDict.object();
if (false
|| strcmp(probe_tp_name, check->tp_name) != 0
|| probe_tp_basicsize != check->tp_basicsize
@@ -168,8 +135,8 @@ check_PyTypeObject_valid()
|| probe_tp_methods != check->tp_methods
|| probe_tp_getset != check->tp_getset
|| probe_tp_base != typetype->tp_base
- || !PyDict_Check(check->tp_dict)
- || !PyDict_GetItemString(check->tp_dict, "dummy")
+ || !PyDict_Check(checkDict)
+ || !PyDict_GetItemString(checkDict, "dummy")
|| probe_tp_descr_get != check->tp_descr_get
|| probe_tp_descr_set != check->tp_descr_set
|| probe_tp_dictoffset != typetype->tp_dictoffset
@@ -190,10 +157,6 @@ check_PyTypeObject_valid()
Py_DECREF(probe_tp_mro);
}
-#if PY_VERSION_HEX < PY_ISSUE33738_SOLVED
-#include "pep384_issue33738.cpp"
-#endif
-
#endif // Py_LIMITED_API
/*****************************************************************************
@@ -215,7 +178,7 @@ static PyObject *
find_name_in_mro(PyTypeObject *type, PyObject *name, int *error)
{
Py_ssize_t i, n;
- PyObject *mro, *res, *base, *dict;
+ PyObject *mro, *res, *base;
/* Look in tp_dict of types in MRO */
mro = type->tp_mro;
@@ -229,9 +192,10 @@ find_name_in_mro(PyTypeObject *type, PyObject *name, int *error)
for (i = 0; i < n; i++) {
base = PyTuple_GET_ITEM(mro, i);
assert(PyType_Check(base));
- dict = ((PyTypeObject *)base)->tp_dict;
- assert(dict && PyDict_Check(dict));
- res = PyDict_GetItem(dict, name);
+ auto *type = reinterpret_cast<PyTypeObject *>(base);
+ Shiboken::AutoDecRef dict(PepType_GetDict(type));
+ assert(!dict.isNull() && PyDict_Check(dict.object()));
+ res = PyDict_GetItem(dict.object(), name);
if (res != nullptr)
break;
if (PyErr_Occurred()) {
@@ -284,20 +248,173 @@ _PepType_Lookup(PyTypeObject *type, PyObject *name)
*/
#ifdef Py_LIMITED_API
-char *
-_PepUnicode_AsString(PyObject *str)
+// structs and macros modelled after their equivalents in
+// cpython/Include/cpython/unicodeobject.h
+
+struct PepASCIIObject // since 3.12
+{
+ PyObject_HEAD
+ Py_ssize_t length; /* Number of code points in the string */
+ Py_hash_t hash; /* Hash value; -1 if not set */
+ struct {
+ unsigned int interned:2;
+ unsigned int kind:3;
+ unsigned int compact:1;
+ unsigned int ascii:1;
+ unsigned int ready:1;
+ unsigned int :24;
+ } state;
+};
+
+struct PepASCIIObject_311 : public PepASCIIObject
+{
+ wchar_t *wstr; /* wchar_t representation (null-terminated) */
+};
+
+struct PepCompactUnicodeObject // since 3.12
+{
+ PepASCIIObject _base;
+ Py_ssize_t utf8_length;
+ char *utf8; /* UTF-8 representation (null-terminated) */
+};
+
+struct PepCompactUnicodeObject_311 // since 3.12
+{
+ PepASCIIObject_311 _base;
+ Py_ssize_t utf8_length;
+ char *utf8; /* UTF-8 representation (null-terminated) */
+ Py_ssize_t wstr_length; /* Number of code points in wstr */
+};
+
+struct PepUnicodeObject // since 3.12
+{
+ PepCompactUnicodeObject _base;
+ union {
+ void *any;
+ Py_UCS1 *latin1;
+ Py_UCS2 *ucs2;
+ Py_UCS4 *ucs4;
+ } data; /* Canonical, smallest-form Unicode buffer */
+};
+
+struct PepUnicodeObject_311
+{
+ PepCompactUnicodeObject_311 _base;
+ union {
+ void *any;
+ Py_UCS1 *latin1;
+ Py_UCS2 *ucs2;
+ Py_UCS4 *ucs4;
+ } data; /* Canonical, smallest-form Unicode buffer */
+};
+
+int _PepUnicode_KIND(PyObject *str)
+{
+ return reinterpret_cast<PepASCIIObject *>(str)->state.kind;
+}
+
+int _PepUnicode_IS_ASCII(PyObject *str)
+{
+ auto *asciiObj = reinterpret_cast<PepASCIIObject *>(str);
+ return asciiObj->state.ascii;
+}
+
+int _PepUnicode_IS_COMPACT(PyObject *str)
+{
+ auto *asciiObj = reinterpret_cast<PepASCIIObject *>(str);
+ return asciiObj->state.compact;
+}
+
+static void *_PepUnicode_ASCII_DATA(PyObject *str)
+{
+ if (_PepRuntimeVersion() < 0x030C00) {
+ auto *asciiObj_311 = reinterpret_cast<PepASCIIObject_311 *>(str);
+ return asciiObj_311 + 1;
+ }
+ auto *asciiObj = reinterpret_cast<PepASCIIObject *>(str);
+ return asciiObj + 1;
+}
+
+static void *_PepUnicode_COMPACT_DATA(PyObject *str)
+{
+ if (_PepUnicode_IS_ASCII(str) != 0)
+ return _PepUnicode_ASCII_DATA(str);
+ if (_PepRuntimeVersion() < 0x030C00) {
+ auto *compactObj_311 = reinterpret_cast<PepCompactUnicodeObject_311 *>(str);
+ return compactObj_311 + 1;
+ }
+ auto *compactObj = reinterpret_cast<PepCompactUnicodeObject *>(str);
+ return compactObj + 1;
+}
+
+static void *_PepUnicode_NONCOMPACT_DATA(PyObject *str)
+{
+ return _PepRuntimeVersion() < 0x030C00
+ ? reinterpret_cast<PepUnicodeObject_311 *>(str)->data.any
+ : reinterpret_cast<PepUnicodeObject *>(str)->data.any;
+}
+
+void *_PepUnicode_DATA(PyObject *str)
+{
+ return _PepUnicode_IS_COMPACT(str)
+ ? _PepUnicode_COMPACT_DATA(str) : _PepUnicode_NONCOMPACT_DATA(str);
+}
+
+// Fast path accessing UTF8 data without doing a conversion similar
+// to _PyUnicode_AsUTF8String
+static const char *utf8FastPath_311(PyObject *str)
+{
+ if (PyUnicode_GetLength(str) == 0)
+ return "";
+ auto *asciiObj = reinterpret_cast<PepASCIIObject_311 *>(str);
+ if (asciiObj->state.kind != PepUnicode_1BYTE_KIND || asciiObj->state.compact == 0)
+ return nullptr; // Empirical: PyCompactUnicodeObject.utf8 is only valid for 1 byte
+ if (asciiObj->state.ascii) {
+ auto *data = asciiObj + 1;
+ return reinterpret_cast<const char *>(data);
+ }
+ auto *compactObj = reinterpret_cast<PepCompactUnicodeObject_311 *>(str);
+ if (compactObj->utf8_length)
+ return compactObj->utf8;
+ return nullptr;
+}
+
+static const char *utf8FastPath(PyObject *str)
+{
+ if (PyUnicode_GetLength(str) == 0)
+ return "";
+ auto *asciiObj = reinterpret_cast<PepASCIIObject *>(str);
+ if (asciiObj->state.kind != PepUnicode_1BYTE_KIND || asciiObj->state.compact == 0)
+ return nullptr; // Empirical: PyCompactUnicodeObject.utf8 is only valid for 1 byte
+ if (asciiObj->state.ascii) {
+ auto *data = asciiObj + 1;
+ return reinterpret_cast<const char *>(data);
+ }
+ auto *compactObj = reinterpret_cast<PepCompactUnicodeObject *>(str);
+ if (compactObj->utf8_length)
+ return compactObj->utf8;
+ return nullptr;
+}
+
+const char *_PepUnicode_AsString(PyObject *str)
{
/*
- * We need to keep the string alive but cannot borrow the Python object.
- * Ugly easy way out: We re-code as an interned bytes string. This
- * produces a pseudo-leak as long as there are new strings.
- * Typically, this function is used for name strings, and the dict size
- * will not grow so much.
+ * This function is the surrogate for PyUnicode_AsUTF8, which keeps the data
+ * in the unicode object as long as that object exists.
+ *
+ * The function does too much if not optimized by utf8, because it keeps the
+ * string alive, unconditionally.
+ * We should not rely on this behavior and think of PyUnicode_AsUTF8, only.
*/
#define STRINGIFY(x) #x
#define TOSTRING(x) STRINGIFY(x)
#define AT __FILE__ ":" TOSTRING(__LINE__)
+ if (const auto *utf8 = _PepRuntimeVersion() < 0x030C00
+ ? utf8FastPath_311(str) : utf8FastPath(str)) {
+ return utf8;
+ }
+
static PyObject *cstring_dict = nullptr;
if (cstring_dict == nullptr) {
cstring_dict = PyDict_New();
@@ -320,38 +437,6 @@ _PepUnicode_AsString(PyObject *str)
/*****************************************************************************
*
- * Support for longobject.h
- *
- */
-#ifdef Py_LIMITED_API
-
-/*
- * This is the original Python function _PyLong_AsInt() from longobject.c .
- * We define it here because we are not allowed to use the function
- * from Python with an underscore.
- */
-
-/* Get a C int from an int object or any object that has an __int__
- method. Return -1 and set an error if overflow occurs. */
-
-int
-_PepLong_AsInt(PyObject *obj)
-{
- int overflow;
- long result = PyLong_AsLongAndOverflow(obj, &overflow);
- if (overflow || result > INT_MAX || result < INT_MIN) {
- /* XXX: could be cute and give a different
- message for overflow == -1 */
- PyErr_SetString(PyExc_OverflowError,
- "Python int too large to convert to C int");
- return -1;
- }
- return int(result);
-}
-#endif // Py_LIMITED_API
-
-/*****************************************************************************
- *
* Support for pydebug.h
*
*/
@@ -419,8 +504,24 @@ PepCode_Get(PepCodeObject *co, const char *name)
}
return ret;
}
+
+int PepCode_Check(PyObject *o)
+{
+ return o != nullptr && std::strcmp(Py_TYPE(o)->tp_name, "code") == 0 ? 1 : 0;
+}
+
#endif // Py_LIMITED_API
+#if defined(Py_LIMITED_API) || defined(PYPY_VERSION)
+PyObject *PepFunction_GetDefaults(PyObject *function)
+{
+ auto *ob_ret = PyObject_GetAttrString(function, "__defaults__");
+ Py_XDECREF(ob_ret); // returns borrowed ref
+ return ob_ret != Py_None ? ob_ret : nullptr;
+}
+
+#endif // defined(Py_LIMITED_API) || defined(PYPY_VERSION)
+
/*****************************************************************************
*
* Support for datetime.h
@@ -648,6 +749,29 @@ PyStaticMethod_New(PyObject *callable)
}
#endif // Py_LIMITED_API
+#ifdef PYPY_VERSION
+PyTypeObject *PepBuiltinMethod_TypePtr = nullptr;
+
+static PyTypeObject *
+getBuiltinMethodType(void)
+{
+ // PYSIDE-535: PyPy has a special builtin method that acts almost like PyCFunction.
+ //
+ // There is no public declaration for the "builtin method" type.
+ // We also cannot grep it with a Python script since the import is too early.
+ // Pick a demo "builtin method" by using the VoidPtr type.
+ // Create the equivalent of
+ // "from shiboken6.Shiboken import VoidPtr\n"
+ // "result = type(VoidPtr(0).toBytes)\n";
+ auto *pyVoidP = reinterpret_cast<PyObject *>(SbkVoidPtr_TypeF());
+ Shiboken::AutoDecRef arg(Py_BuildValue("i", 0));
+ Shiboken::AutoDecRef inst(PyObject_CallFunctionObjArgs(pyVoidP, arg.object(), nullptr));
+ Shiboken::AutoDecRef meth(PyObject_GetAttrString(inst, "toBytes"));
+ auto *result = reinterpret_cast<PyTypeObject *>(PyObject_Type(meth));
+ return result;
+}
+#endif
+
/*****************************************************************************
*
* Common newly needed functions
@@ -667,12 +791,37 @@ PepType_GetNameStr(PyTypeObject *type)
return ret;
}
+// PYSIDE-2264: Find the _functools or functools module and retrieve the
+// partial function. This can be tampered with, check carefully.
+PyObject *
+Pep_GetPartialFunction(void)
+{
+ static bool initialized = false;
+ static PyObject *result{};
+ if (initialized) {
+ Py_INCREF(result);
+ return result;
+ }
+ auto *functools = PyImport_ImportModule("_functools");
+ if (!functools) {
+ PyErr_Clear();
+ functools = PyImport_ImportModule("functools");
+ }
+ if (!functools)
+ Py_FatalError("functools cannot be found");
+ result = PyObject_GetAttrString(functools, "partial");
+ if (!result || !PyCallable_Check(result))
+ Py_FatalError("partial not found or not a function");
+ initialized = true;
+ return result;
+}
+
/*****************************************************************************
*
* Newly introduced convenience functions
*
*/
-#if PY_VERSION_HEX < 0x03070000 || defined(Py_LIMITED_API)
+#ifdef Py_LIMITED_API
PyObject *
PyImport_GetModule(PyObject *name)
@@ -698,7 +847,7 @@ PyImport_GetModule(PyObject *name)
return m;
}
-#endif // PY_VERSION_HEX < 0x03070000 || defined(Py_LIMITED_API)
+#endif // Py_LIMITED_API
// 2020-06-16: For simplicity of creating arbitrary things, this function
// is now made public.
@@ -723,6 +872,12 @@ PepRun_GetResult(const char *command)
return res;
}
+PyTypeObject *PepType_Type_tp_new(PyTypeObject *metatype, PyObject *args, PyObject *kwds)
+{
+ auto ret = PyType_Type.tp_new(metatype, args, kwds);
+ return reinterpret_cast<PyTypeObject *>(ret);
+}
+
/*****************************************************************************
*
* Extra support for name mangling
@@ -783,13 +938,13 @@ _Pep_PrivateMangle(PyObject *self, PyObject *name)
wchar_t bigbuf[big_stack];
wchar_t *resbuf = amount <= big_stack ? bigbuf : (wchar_t *)malloc(sizeof(wchar_t) * amount);
if (!resbuf)
- return 0;
+ return nullptr;
/* ident = "_" + priv[ipriv:] + ident # i.e. 1+plen+nlen bytes */
resbuf[0] = '_';
if (PyUnicode_AsWideChar(privateobj, resbuf + 1, ipriv + plen) < 0)
- return 0;
+ return nullptr;
if (PyUnicode_AsWideChar(name, resbuf + ipriv + plen + 1, nlen) < 0)
- return 0;
+ return nullptr;
PyObject *result = PyUnicode_FromWideChar(resbuf + ipriv, 1 + plen + nlen);
if (amount > big_stack)
free(resbuf);
@@ -815,6 +970,21 @@ init_PepRuntime()
PepRuntime_38_flag = 1;
}
+static long _GetPepRuntimeVersion()
+{
+ auto *version = PySys_GetObject("version_info");
+ const auto major = PyLong_AsLong(PyTuple_GetItem(version, 0));
+ const auto minor = PyLong_AsLong(PyTuple_GetItem(version, 1));
+ const auto micro = PyLong_AsLong(PyTuple_GetItem(version, 2));
+ return major << 16 | minor << 8 | micro;
+}
+
+long _PepRuntimeVersion()
+{
+ static const auto number = _GetPepRuntimeVersion();
+ return number;
+}
+
/*****************************************************************************
*
* PYSIDE-535: Support for PyPy
@@ -824,33 +994,104 @@ init_PepRuntime()
*
*/
+///////////////////////////////////////////////////////////////////////
+//
+// PEP 697: Support for embedded type structures.
+//
+// According to `https://docs.python.org/3/c-api/object.html?highlight=pyobject_gettypedata#c.PyObject_GetTypeData`
+// the function `PyObject_GetTypeData` should belong to the Stable API
+// since version 3.12.0, but it does not. We use instead some copies
+// from Python source code.
+
+#if !defined(Py_LIMITED_API) && PY_VERSION_HEX >= 0x030C0000
+
+# define PepObject_GetTypeData PyObject_GetTypeData
+
+SbkObjectTypePrivate *PepType_SOTP(PyTypeObject *type)
+{
+ assert(SbkObjectType_Check(type));
+ auto *obType = reinterpret_cast<PyObject *>(type);
+ void *data = PyObject_GetTypeData(obType, Py_TYPE(obType));
+ return reinterpret_cast<SbkObjectTypePrivate *>(data);
+}
+
+void PepType_SOTP_delete(PyTypeObject * /*type*/)
+{
+}
+
+#else
+
+// The following comments are directly copied from Python 3.12
+//
+
+// Make sure we have maximum alignment, even if the current compiler
+// does not support max_align_t. Note that:
+// - Autoconf reports alignment of unknown types to 0.
+// - 'long double' has maximum alignment on *most* platforms,
+// looks like the best we can do for pre-C11 compilers.
+// - The value is tested, see test_alignof_max_align_t
+# if !defined(ALIGNOF_MAX_ALIGN_T) || ALIGNOF_MAX_ALIGN_T == 0
+# undef ALIGNOF_MAX_ALIGN_T
+# define ALIGNOF_MAX_ALIGN_T alignof(long double)
+# endif
+
+/* Align up to the nearest multiple of alignof(max_align_t)
+ * (like _Py_ALIGN_UP, but for a size rather than pointer)
+ */
+static Py_ssize_t _align_up(Py_ssize_t size)
+{
+ return (size + ALIGNOF_MAX_ALIGN_T - 1) & ~(ALIGNOF_MAX_ALIGN_T - 1);
+}
+
+static void *PepObject_GetTypeData(PyObject *obj, PyTypeObject *cls)
+{
+ assert(PyObject_TypeCheck(obj, cls));
+ return reinterpret_cast<char *>(obj) + _align_up(cls->tp_base->tp_basicsize);
+}
+//
+///////////////////////////////////////////////////////////////////////
+
/*
* PyTypeObject extender
*/
+
static std::unordered_map<PyTypeObject *, SbkObjectTypePrivate > SOTP_extender{};
static thread_local PyTypeObject *SOTP_key{};
static thread_local SbkObjectTypePrivate *SOTP_value{};
-SbkObjectTypePrivate *PepType_SOTP(PyTypeObject *sbkType)
+SbkObjectTypePrivate *PepType_SOTP(PyTypeObject *type)
{
- if (sbkType == SOTP_key)
+ static bool use_312 = _PepRuntimeVersion() >= 0x030C00;
+ assert(SbkObjectType_Check(type));
+ if (use_312) {
+ auto *obType = reinterpret_cast<PyObject *>(type);
+ void *data = PepObject_GetTypeData(obType, Py_TYPE(obType));
+ return reinterpret_cast<SbkObjectTypePrivate *>(data);
+ }
+ if (type == SOTP_key)
return SOTP_value;
- auto it = SOTP_extender.find(sbkType);
+ auto it = SOTP_extender.find(type);
if (it == SOTP_extender.end()) {
- it = SOTP_extender.insert({sbkType, {}}).first;
+ it = SOTP_extender.insert({type, {}}).first;
memset(&it->second, 0, sizeof(SbkObjectTypePrivate));
}
- SOTP_key = sbkType;
+ SOTP_key = type;
SOTP_value = &it->second;
return SOTP_value;
}
-void PepType_SOTP_delete(PyTypeObject *sbkType)
+void PepType_SOTP_delete(PyTypeObject *type)
{
- SOTP_extender.erase(sbkType);
+ static bool use_312 = _PepRuntimeVersion() >= 0x030C00;
+ assert(SbkObjectType_Check(type));
+ if (use_312)
+ return;
+ SOTP_extender.erase(type);
SOTP_key = nullptr;
}
+#endif // !defined(Py_LIMITED_API) && PY_VERSION_HEX >= 0x030C0000
+
/*
* SbkEnumType extender
*/
@@ -860,6 +1101,7 @@ static thread_local SbkEnumTypePrivate *SETP_value{};
SbkEnumTypePrivate *PepType_SETP(SbkEnumType *enumType)
{
+ // PYSIDE-2230: This makes no sense at all for Enum types.
if (enumType == SETP_key)
return SETP_value;
auto it = SETP_extender.find(enumType);
@@ -878,31 +1120,76 @@ void PepType_SETP_delete(SbkEnumType *enumType)
SETP_key = nullptr;
}
-/*
- * PySideQFlagsType extender
- */
-static std::unordered_map<PySideQFlagsType *, PySideQFlagsTypePrivate> PFTP_extender{};
-static thread_local PySideQFlagsType *PFTP_key{};
-static thread_local PySideQFlagsTypePrivate *PFTP_value{};
-
-PySideQFlagsTypePrivate *PepType_PFTP(PySideQFlagsType *flagsType)
+#ifdef Py_LIMITED_API
+static PyObject *emulatePyType_GetDict(PyTypeObject *type)
{
- if (flagsType == PFTP_key)
- return PFTP_value;
- auto it = PFTP_extender.find(flagsType);
- if (it == PFTP_extender.end()) {
- it = PFTP_extender.insert({flagsType, {}}).first;
- memset(&it->second, 0, sizeof(PySideQFlagsTypePrivate));
+ if (_PepRuntimeVersion() < 0x030C00 || type->tp_dict) {
+ auto *res = type->tp_dict;
+ Py_XINCREF(res);
+ return res;
}
- PFTP_key = flagsType;
- PFTP_value = &it->second;
- return PFTP_value;
+ // PYSIDE-2230: Here we are really cheating. We don't know how to
+ // access an internal dict, and so we simply pretend
+ // it were an empty dict. This works great for our types.
+ // This was an unexpectedly simple solution :D
+ return PyDict_New();
+}
+#endif
+
+// PyType_GetDict: replacement for <static type>.tp_dict, which is
+// zero for builtin types since 3.12.
+PyObject *PepType_GetDict(PyTypeObject *type)
+{
+#if !defined(Py_LIMITED_API)
+# if PY_VERSION_HEX >= 0x030C0000
+ return PyType_GetDict(type);
+# else
+ // pre 3.12 fallback code, mimicking the addref-behavior.
+ Py_XINCREF(type->tp_dict);
+ return type->tp_dict;
+# endif
+#else
+ return emulatePyType_GetDict(type);
+#endif // Py_LIMITED_API
}
-void PepType_PFTP_delete(PySideQFlagsType *flagsType)
+int PepType_SetDict(PyTypeObject *type, PyObject *dict)
{
- PFTP_extender.erase(flagsType);
- PFTP_key = nullptr;
+ type->tp_dict = dict;
+ return 0;
+}
+
+// Pre 3.10, PyType_GetSlot() would only work for heap types.
+// FIXME: PyType_GetSlot() can be used unconditionally when the
+// minimum limited API version is >= 3.10.
+void *PepType_GetSlot(PyTypeObject *type, int aSlot)
+{
+ static const bool is310 = _PepRuntimeVersion() >= 0x030A00;
+ if (is310 || (type->tp_flags & Py_TPFLAGS_HEAPTYPE) != 0)
+ return PyType_GetSlot(type, aSlot);
+
+ switch (aSlot) {
+ case Py_tp_alloc:
+ return reinterpret_cast<void *>(type->tp_alloc);
+ case Py_tp_getattro:
+ return reinterpret_cast<void *>(type->tp_getattro);
+ case Py_tp_setattro:
+ return reinterpret_cast<void *>(type->tp_setattro);
+ case Py_tp_descr_get:
+ return reinterpret_cast<void *>(type->tp_descr_get);
+ case Py_tp_descr_set:
+ return reinterpret_cast<void *>(type->tp_descr_set);
+ case Py_tp_call:
+ return reinterpret_cast<void *>(type->tp_call);
+ case Py_tp_new:
+ return reinterpret_cast<void *>(type->tp_new);
+ case Py_tp_init:
+ return reinterpret_cast<void *>(type->tp_init);
+ case Py_tp_free:
+ return reinterpret_cast<void *>(type->tp_free);
+ }
+ assert(false);
+ return nullptr;
}
/***************************************************************************
@@ -936,16 +1223,16 @@ static inline void *PepType_ExTP(PyTypeObject *type, size_t size)
static PyTypeObject *alias{};
const char *kind = size == sizeof(SbkObjectTypePrivate) ? "SOTP" :
size == sizeof(SbkEnumTypePrivate) ? "SETP" :
- size == sizeof(PySideQFlagsTypePrivate) ? "PFTP" :
+ size == sizeof(SbkQFlagsTypePrivate) ? "PFTP" :
"unk.";
fprintf(stderr, "%s:%d %p x %s s=%ld\n", __func__, __LINE__, type, kind, size);
PyObject *kill{};
if (strlen(env_p) > 0) {
- if (size == sizeof(PySideQFlagsTypePrivate)) {
+ if (size == sizeof(SbkQFlagsTypePrivate)) {
if (alias == nullptr)
alias = type;
}
- if (size != sizeof(PySideQFlagsTypePrivate)) {
+ if (size != sizeof(SbkQFlagsTypePrivate)) {
if (type == alias)
Py_INCREF(kill);
}
@@ -982,6 +1269,9 @@ Pep384_Init()
PepFunction_TypePtr = getFunctionType();
PepStaticMethod_TypePtr = getStaticMethodType();
#endif // Py_LIMITED_API
+#ifdef PYPY_VERSION
+ PepBuiltinMethod_TypePtr = getBuiltinMethodType();
+#endif
}
} // extern "C"
diff --git a/sources/shiboken6/libshiboken/pep384impl.h b/sources/shiboken6/libshiboken/pep384impl.h
index cd62fbdc6..ec58aac81 100644
--- a/sources/shiboken6/libshiboken/pep384impl.h
+++ b/sources/shiboken6/libshiboken/pep384impl.h
@@ -1,50 +1,9 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef PEP384IMPL_H
#define PEP384IMPL_H
-// PYSIDE-1436: Adapt to Python 3.10
-#if PY_VERSION_HEX < 0x030900A4
-# define Py_SET_REFCNT(obj, refcnt) ((Py_REFCNT(obj) = (refcnt)), (void)0)
-#endif
-
extern "C"
{
@@ -91,42 +50,79 @@ typedef struct _typeobject {
const char *tp_name;
Py_ssize_t tp_basicsize;
void *X03; // Py_ssize_t tp_itemsize;
+#ifdef PEP384_INTERN
destructor tp_dealloc;
+#else
+ destructor X04;
+#endif
void *X05; // Py_ssize_t tp_vectorcall_offset;
void *X06; // getattrfunc tp_getattr;
void *X07; // setattrfunc tp_setattr;
void *X08; // PyAsyncMethods *tp_as_async;
+#ifdef PEP384_INTERN
reprfunc tp_repr;
+#else
+ reprfunc X09;
+#endif
void *X10; // PyNumberMethods *tp_as_number;
void *X11; // PySequenceMethods *tp_as_sequence;
void *X12; // PyMappingMethods *tp_as_mapping;
void *X13; // hashfunc tp_hash;
+#ifdef PEP384_INTERN
ternaryfunc tp_call;
- reprfunc tp_str;
+#else
+ ternaryfunc X14;
+#endif
+ reprfunc tp_str; // Only used for PEP384_INTERN and a shiboken test
getattrofunc tp_getattro;
setattrofunc tp_setattro;
void *X18; // PyBufferProcs *tp_as_buffer;
unsigned long tp_flags;
void *X20; // const char *tp_doc;
+#ifdef PEP384_INTERN
traverseproc tp_traverse;
inquiry tp_clear;
+#else
+ traverseproc X21;
+ inquiry X22;
+#endif
void *X23; // richcmpfunc tp_richcompare;
Py_ssize_t tp_weaklistoffset;
void *X25; // getiterfunc tp_iter;
+#ifdef PEP384_INTERN
iternextfunc tp_iternext;
+#else
+ iternextfunc X26;
+#endif
struct PyMethodDef *tp_methods;
struct PyMemberDef *tp_members;
struct PyGetSetDef *tp_getset;
struct _typeobject *tp_base;
+#ifdef PEP384_INTERN
PyObject *tp_dict;
descrgetfunc tp_descr_get;
descrsetfunc tp_descr_set;
+#else
+ void *X31;
+ descrgetfunc X32;
+ descrsetfunc X33;
+#endif
Py_ssize_t tp_dictoffset;
+#ifdef PEP384_INTERN
initproc tp_init;
allocfunc tp_alloc;
+#else
+ initproc X39;
+ allocfunc X40;
+#endif
newfunc tp_new;
+#ifdef PEP384_INTERN
freefunc tp_free;
inquiry tp_is_gc; /* For PyObject_IS_GC */
+#else
+ freefunc X41;
+ inquiry X42; /* For PyObject_IS_GC */
+#endif
PyObject *tp_bases;
PyObject *tp_mro; /* method resolution order */
@@ -139,14 +135,6 @@ typedef struct _typeobject {
&& (Py_TYPE(o)->tp_is_gc == NULL || Py_TYPE(o)->tp_is_gc(o)))
#endif
-// This was a macro error in the limited API from the beginning.
-// It was fixed in Python master, but did make it only in Python 3.8 .
-#define PY_ISSUE33738_SOLVED 0x03080000
-#if PY_VERSION_HEX < PY_ISSUE33738_SOLVED
-#undef PyIndex_Check
-LIBSHIBOKEN_API int PyIndex_Check(PyObject *obj);
-#endif
-
LIBSHIBOKEN_API PyObject *_PepType_Lookup(PyTypeObject *type, PyObject *name);
#else // Py_LIMITED_API
@@ -155,6 +143,8 @@ LIBSHIBOKEN_API PyObject *_PepType_Lookup(PyTypeObject *type, PyObject *name);
#endif // Py_LIMITED_API
+/// PYSIDE-939: We need the runtime version, given major << 16 + minor << 8 + micro
+LIBSHIBOKEN_API long _PepRuntimeVersion();
/*****************************************************************************
*
* PYSIDE-535: Implement a clean type extension for PyPy
@@ -173,26 +163,14 @@ LIBSHIBOKEN_API SbkEnumTypePrivate *PepType_SETP(SbkEnumType *type);
LIBSHIBOKEN_API void PepType_SETP_delete(SbkEnumType *enumType);
struct PySideQFlagsType;
-struct PySideQFlagsTypePrivate;
-
-LIBSHIBOKEN_API PySideQFlagsTypePrivate *PepType_PFTP(PySideQFlagsType *type);
-LIBSHIBOKEN_API void PepType_PFTP_delete(PySideQFlagsType *flagsType);
+struct SbkQFlagsTypePrivate;
/*****************************************************************************/
// functions used everywhere
LIBSHIBOKEN_API const char *PepType_GetNameStr(PyTypeObject *type);
-/*****************************************************************************
- *
- * RESOLVED: longobject.h
- *
- */
-#ifdef Py_LIMITED_API
-LIBSHIBOKEN_API int _PepLong_AsInt(PyObject *);
-#else
-#define _PepLong_AsInt _PyLong_AsInt
-#endif
+LIBSHIBOKEN_API PyObject *Pep_GetPartialFunction(void);
/*****************************************************************************
*
@@ -208,7 +186,6 @@ LIBSHIBOKEN_API int _PepLong_AsInt(PyObject *);
*/
LIBSHIBOKEN_API int Pep_GetFlag(const char *name);
LIBSHIBOKEN_API int Pep_GetVerboseFlag(void);
-#define Py_VerboseFlag Pep_GetVerboseFlag()
#endif
/*****************************************************************************
@@ -238,12 +215,44 @@ LIBSHIBOKEN_API int Pep_GetVerboseFlag(void);
// PyUnicode_GetSize is deprecated in favor of PyUnicode_GetLength.
#define PepUnicode_GetLength(op) PyUnicode_GetLength((PyObject *)(op))
+// Unfortunately, we cannot ask this at runtime
+// #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030A0000
+// FIXME: Python 3.10: Replace _PepUnicode_AsString by PyUnicode_AsUTF8
#ifdef Py_LIMITED_API
-LIBSHIBOKEN_API char *_PepUnicode_AsString(PyObject *);
+LIBSHIBOKEN_API const char *_PepUnicode_AsString(PyObject *);
+
+enum PepUnicode_Kind {
+#if PY_VERSION_HEX < 0x030C0000
+ PepUnicode_WCHAR_KIND = 0,
+#endif
+ PepUnicode_1BYTE_KIND = 1,
+ PepUnicode_2BYTE_KIND = 2,
+ PepUnicode_4BYTE_KIND = 4
+};
+
+LIBSHIBOKEN_API int _PepUnicode_KIND(PyObject *);
+LIBSHIBOKEN_API int _PepUnicode_IS_ASCII(PyObject *str);
+LIBSHIBOKEN_API int _PepUnicode_IS_COMPACT(PyObject *str);
+
+LIBSHIBOKEN_API void *_PepUnicode_DATA(PyObject *str);
#else
+
+enum PepUnicode_Kind {
+#if PY_VERSION_HEX < 0x030C0000
+ PepUnicode_WCHAR_KIND = PyUnicode_WCHAR_KIND,
+#endif
+ PepUnicode_1BYTE_KIND = PyUnicode_1BYTE_KIND,
+ PepUnicode_2BYTE_KIND = PyUnicode_2BYTE_KIND,
+ PepUnicode_4BYTE_KIND = PyUnicode_4BYTE_KIND
+};
+
#define _PepUnicode_AsString PyUnicode_AsUTF8
+#define _PepUnicode_KIND PyUnicode_KIND
+#define _PepUnicode_DATA PyUnicode_DATA
+#define _PepUnicode_IS_COMPACT PyUnicode_IS_COMPACT
+#define _PepUnicode_IS_ASCII PyUnicode_IS_ASCII
#endif
/*****************************************************************************
@@ -295,7 +304,7 @@ LIBSHIBOKEN_API char *_PepUnicode_AsString(PyObject *);
#ifdef Py_LIMITED_API
-typedef struct _pycfunc PyCFunctionObject;
+using PyCFunctionObject = struct _pycfunc;
#define PyCFunction_GET_FUNCTION(func) PyCFunction_GetFunction((PyObject *)func)
#define PyCFunction_GET_SELF(func) PyCFunction_GetSelf((PyObject *)func)
#define PyCFunction_GET_FLAGS(func) PyCFunction_GetFlags((PyObject *)func)
@@ -325,11 +334,8 @@ LIBSHIBOKEN_API PyObject *PyRun_String(const char *, int, PyObject *, PyObject *
// buffer functions.
// But this is no problem as we check it's validity for every version.
-#define PYTHON_BUFFER_VERSION_COMPATIBLE (PY_VERSION_HEX >= 0x03030000 && \
- PY_VERSION_HEX < 0x030AFFFF)
-#if !PYTHON_BUFFER_VERSION_COMPATIBLE
-# error Please check the buffer compatibility for this python version!
-#endif
+// PYSIDE-1960 The buffer interface is since Python 3.11 part of the stable
+// API and we do not need to check the compatibility by hand anymore.
typedef struct {
getbufferproc bf_getbuffer;
@@ -413,10 +419,13 @@ LIBSHIBOKEN_API PyObject *PyMethod_Self(PyObject *);
typedef struct _code PepCodeObject;
LIBSHIBOKEN_API int PepCode_Get(PepCodeObject *co, const char *name);
+LIBSHIBOKEN_API int PepCode_Check(PyObject *o);
# define PepCode_GET_FLAGS(o) PepCode_Get(o, "co_flags")
# define PepCode_GET_ARGCOUNT(o) PepCode_Get(o, "co_argcount")
+LIBSHIBOKEN_API PyObject *PepFunction_GetDefaults(PyObject *function);
+
/* Masks for co_flags above */
# define CO_OPTIMIZED 0x0001
# define CO_NEWLOCALS 0x0002
@@ -430,7 +439,15 @@ LIBSHIBOKEN_API int PepCode_Get(PepCodeObject *co, const char *name);
# define PepCodeObject PyCodeObject
# define PepCode_GET_FLAGS(o) ((o)->co_flags)
# define PepCode_GET_ARGCOUNT(o) ((o)->co_argcount)
+# define PepCode_Check PyCode_Check
+
+# ifdef PYPY_VERSION
+
+LIBSHIBOKEN_API PyObject *PepFunction_GetDefaults(PyObject *function);
+# else
+# define PepFunction_GetDefaults PyFunction_GetDefaults
+# endif
#endif
/*****************************************************************************
@@ -518,6 +535,10 @@ LIBSHIBOKEN_API PyObject *PyStaticMethod_New(PyObject *callable);
#define PepStaticMethod_TypePtr &PyStaticMethod_Type
#endif
+#ifdef PYPY_VERSION
+extern LIBSHIBOKEN_API PyTypeObject *PepBuiltinMethod_TypePtr;
+#endif
+
// Although not PEP specific, we resolve this similar issue, here:
#define PepMethodDescr_TypePtr &PyMethodDescr_Type
@@ -527,13 +548,18 @@ LIBSHIBOKEN_API PyObject *PyStaticMethod_New(PyObject *callable);
*
* This is not defined if Py_LIMITED_API is defined.
*/
-#if PY_VERSION_HEX < 0x03070000 || defined(Py_LIMITED_API)
+#ifdef Py_LIMITED_API
LIBSHIBOKEN_API PyObject *PyImport_GetModule(PyObject *name);
-#endif // PY_VERSION_HEX < 0x03070000 || defined(Py_LIMITED_API)
+#endif // Py_LIMITED_API
// Evaluate a script and return the variable `result`
LIBSHIBOKEN_API PyObject *PepRun_GetResult(const char *command);
+// Call PyType_Type.tp_new returning a PyType object.
+LIBSHIBOKEN_API PyTypeObject *PepType_Type_tp_new(PyTypeObject *metatype,
+ PyObject *args,
+ PyObject *kwds);
+
/*****************************************************************************
*
* Runtime support for Python 3.8 incompatibilities
@@ -549,6 +575,20 @@ extern LIBSHIBOKEN_API int PepRuntime_38_flag;
/*****************************************************************************
*
+ * Runtime support for Python 3.12 incompatibility
+ *
+ */
+
+LIBSHIBOKEN_API PyObject *PepType_GetDict(PyTypeObject *type);
+
+// This function does not exist as PyType_SetDict. But because tp_dict
+// is no longer considered to be accessible, we treat it as such.
+LIBSHIBOKEN_API int PepType_SetDict(PyTypeObject *type, PyObject *dict);
+
+LIBSHIBOKEN_API void *PepType_GetSlot(PyTypeObject *type, int aSlot);
+
+/*****************************************************************************
+ *
* Module Initialization
*
*/
diff --git a/sources/shiboken6/libshiboken/pep384impl_doc.rst b/sources/shiboken6/libshiboken/pep384impl_doc.rst
deleted file mode 100644
index 4e50d68e1..000000000
--- a/sources/shiboken6/libshiboken/pep384impl_doc.rst
+++ /dev/null
@@ -1,711 +0,0 @@
-****************************************
-The Transition To The Limited Python API
-****************************************
-
-
-Foreword
-========
-
-Python supports a limited API that restricts access to certain structures.
-Besides eliminating whole modules and all functions and macros which names
-start with an
-underscore, the most drastic restriction is the removal of normal type object
-declarations.
-
-For details about the eliminated modules and functions, please see the
-`PEP 384`_ page for reference.
-
-
-.. _`PEP 384`: https://www.python.org/dev/peps/pep-0384/
-
-
-
-Changed Modules
-===============
-
-All changed module's include files are listed with the changed functions here.
-As a general rule, it was tried to keep the changes to a minimum diff.
-Macros which are not available were changed to functions with the same name
-if possible. Completely removed names ``Py{name}`` were re-implemented as ``Pep{name}``.
-
-
-memoryobject.h
---------------
-
-The buffer protocol was completely removed. We redefined all the structures
-and methods, because PySide uses that. This is an exception to the limited API
-that we have to check ourselves. The code is extracted in bufferprocs_py37.h .
-This is related to the following:
-
-
-abstract.h
-----------
-
-This belongs to the buffer protocol like memoryobject.h .
-As replacement for ``Py_buffer`` we defined ``Pep_buffer`` and several other
-internal macros.
-
-The version is checked by hand, and the version number must be updated only
-if the implementation does not change. Otherwise, we need to write version
-dependent code paths.
-
-It is questionable if it is worthwhile to continue using the buffer protocol
-or if we should try to get rid of ``Pep_buffer``, completely.
-
-
-longobject.h
-------------
-
-``_PyLong_AsInt`` is not available. We defined a ``_PepLong_AsInt`` function, instead.
-Maybe this should be replaced by ``PyLong_AsLong``.
-
-
-pydebug.h
----------
-
-We have no direct access to ``Py_VerboseFlag`` because debugging is not
-supported. We redefined it as macro ``Py_VerboseFlag`` which calls ``Pep_VerboseFlag``.
-
-
-unicodeobject.h
----------------
-
-The macro ``PyUnicode_GET_SIZE`` was removed and replaced by ``PepUnicode_GetLength``
-which evaluates to ``PyUnicode_GetSize`` for Python 2 and ``PyUnicode_GetLength`` for Python 3.
-Since Python 3.3, ``PyUnicode_GetSize`` would have the bad side effect of requiring the GIL!
-
-Function ``_PyUnicode_AsString`` is unavailable and was replaced by a macro
-that calls ``_PepUnicode_AsString``. The implementation was a bit involved,
-and it would be better to change the code and replace this function.
-
-
-bytesobject.h
--------------
-
-The macros ``PyBytes_AS_STRING`` and ``PyBytes_GET_SIZE`` were redefined to call
-the according functions.
-
-
-floatobject.h
--------------
-
-``PyFloat_AS_DOUBLE`` now calls ``PyFloat_AsDouble``.
-
-
-tupleobject.h
--------------
-
-``PyTuple_GET_ITEM``, ``PyTuple_SET_ITEM`` and ``PyTuple_GET_SIZE`` were redefined as
-function calls.
-
-
-listobject.h
-------------
-
-``PyList_GET_ITEM``, ``PyList_SET_ITEM`` and ``PyList_GET_SIZE`` were redefined as
-function calls.
-
-
-dictobject.h
-------------
-
-``PyDict_GetItem`` also exists in a ``PyDict_GetItemWithError`` version that does
-not suppress errors. This suppression has the side effect of touching global
-structures. This function exists in Python 2 only since Python 2.7.12 and has
-a different name. We simply implemented the function.
-Needed to avoid the GIL when accessing dictionaries.
-
-
-methodobject.h
---------------
-
-``PyCFunction_GET_FUNCTION``, ``PyCFunction_GET_SELF`` and ``PyCFunction_GET_FLAGS``
-were redefined as function calls.
-
-Direct access to the methoddef structure is not available, and we defined
-``PepCFunction_GET_NAMESTR`` as accessor for name strings.
-
-
-pythonrun.h
------------
-
-The simple function ``PyRun_String`` is not available. It was re-implemented
-in a simplified version for the signature module.
-
-
-funcobject.h
-------------
-
-The definitions of funcobject.h are completely missing, although there
-are extra ``#ifdef`` conditional defines inside, too. This suggests that the exclusion
-was unintended.
-
-We therefore redefined ``PyFunctionObject`` as an opaque type.
-
-The missing macro ``PyFunction_Check`` was defined, and the macro
-``PyFunction_GET_CODE`` calls the according function.
-
-There is no equivalent for function name access, therefore we introduced
-``PepFunction_GetName`` either as a function or as a macro.
-
-*TODO: We should fix funcobject.h*
-
-
-classobject.h
--------------
-
-Classobject is also completely not imported, instead of defining an opaque type.
-
-We defined the missing functions ``PyMethod_New``, ``PyMethod_Function`` and
-``PyMethod_Self`` and also redefined ``PyMethod_GET_SELF`` and
-``PyMethod_GET_FUNCTION`` as calls to these functions.
-
-*TODO: We should fix classobject.h*
-
-
-code.h
-------
-
-The whole code.c code is gone, although it may make sense to
-define some minimum accessibility. This will be clarified on
-`Python-Dev`_. We needed access to code objects and defined the missing
-PepCode_GET_FLAGS and PepCode_GET_ARGCOUNT either as function or macro.
-We further added the missing flags, although few are used:
-
-``CO_OPTIMIZED`` ``CO_NEWLOCALS`` ``CO_VARARGS`` ``CO_VARKEYWORDS`` ``CO_NESTED``
-``CO_GENERATOR``
-
-*TODO: We should maybe fix code.h*
-
-.. _`Python-Dev`: https://mail.python.org/mailman/listinfo/python-dev
-
-datetime.h
-----------
-
-The DateTime module is explicitly not included in the limited API.
-We defined all the needed functions but called them via Python instead
-of direct call macros. This has a slight performance impact.
-
-The performance could be easily improved by providing an interface
-that fetches all attributes at once, instead of going through the object
-protocol every time.
-
-The re-defined macros and methods are::
-
- PyDateTime_GET_YEAR
- PyDateTime_GET_MONTH
- PyDateTime_GET_DAY
- PyDateTime_DATE_GET_HOUR
- PyDateTime_DATE_GET_MINUTE
- PyDateTime_DATE_GET_SECOND
- PyDateTime_DATE_GET_MICROSECOND
- PyDateTime_DATE_GET_FOLD
- PyDateTime_TIME_GET_HOUR
- PyDateTime_TIME_GET_MINUTE
- PyDateTime_TIME_GET_SECOND
- PyDateTime_TIME_GET_MICROSECOND
- PyDateTime_TIME_GET_FOLD
-
- PyDate_Check
- PyDateTime_Check
- PyTime_Check
-
- PyDate_FromDate
- PyDateTime_FromDateAndTime
- PyTime_FromTime
-
-*XXX: We should maybe provide an optimized interface to datetime*
-
-
-object.h
---------
-
-The file object.h contains the ``PyTypeObject`` structure, which is supposed
-to be completely opaque. All access to types should be done through
-``PyType_GetSlot`` calls. Due to bugs and deficiencies in the limited API
-implementation, it was not possible to do that. Instead, we have defined
-a simplified structure for ``PyTypeObject`` that has only the fields that
-are used in PySide.
-
-We will explain later why and how this was done. Here is the reduced
-structure::
-
- typedef struct _typeobject {
- PyVarObject ob_base;
- const char *tp_name;
- Py_ssize_t tp_basicsize;
- void *X03; // Py_ssize_t tp_itemsize;
- void *X04; // destructor tp_dealloc;
- void *X05; // printfunc tp_print;
- void *X06; // getattrfunc tp_getattr;
- void *X07; // setattrfunc tp_setattr;
- void *X08; // PyAsyncMethods *tp_as_async;
- void *X09; // reprfunc tp_repr;
- void *X10; // PyNumberMethods *tp_as_number;
- void *X11; // PySequenceMethods *tp_as_sequence;
- void *X12; // PyMappingMethods *tp_as_mapping;
- void *X13; // hashfunc tp_hash;
- ternaryfunc tp_call;
- reprfunc tp_str;
- void *X16; // getattrofunc tp_getattro;
- void *X17; // setattrofunc tp_setattro;
- void *X18; // PyBufferProcs *tp_as_buffer;
- void *X19; // unsigned long tp_flags;
- void *X20; // const char *tp_doc;
- traverseproc tp_traverse;
- inquiry tp_clear;
- void *X23; // richcmpfunc tp_richcompare;
- Py_ssize_t tp_weaklistoffset;
- void *X25; // getiterfunc tp_iter;
- void *X26; // iternextfunc tp_iternext;
- struct PyMethodDef *tp_methods;
- void *X28; // struct PyMemberDef *tp_members;
- void *X29; // struct PyGetSetDef *tp_getset;
- struct _typeobject *tp_base;
- PyObject *tp_dict;
- descrgetfunc tp_descr_get;
- void *X33; // descrsetfunc tp_descr_set;
- Py_ssize_t tp_dictoffset;
- initproc tp_init;
- allocfunc tp_alloc;
- newfunc tp_new;
- freefunc tp_free;
- inquiry tp_is_gc; /* For PyObject_IS_GC */
- PyObject *tp_bases;
- PyObject *tp_mro; /* method resolution order */
- } PyTypeObject;
-
-Function ``PyIndex_Check`` had to be defined in an unwanted way due to
-a Python issue. See file pep384_issue33738.cpp .
-
-There are extension structures which have been isolated as special macros that
-dynamically compute the right offsets of the extended type structures:
-
-* ``PepType_SOTP`` for ``SbkObjectTypePrivate``
-* ``PepType_SETP`` for ``SbkEnumTypePrivate``
-* ``PepType_PFTP`` for ``PySideQFlagsTypePrivate``
-
-How these extension structures are used can best be seen by searching
-``PepType_{four}`` in the source.
-
-Due to the new heaptype interface, the names of certain types contain
-now the module name in the ``tp_name`` field. To have a compatible way
-to access simple type names as C string, ``PepType_GetNameStr`` has been
-written that skips over dotted name parts.
-
-Finally, the function ``_PyObject_Dump`` was excluded from the limited API.
-This is a useful debugging aid that we always want to have available,
-so it is added back, again. Anyway, we did not reimplement it, and so
-Windows is not supported.
-Therefore, a forgotten debugging call of this functions will break COIN. :-)
-
-
-Using The New Type API
-======================
-
-After converting everything but the object.h file, we were a little
-bit shocked: it suddenly was clear that we would have no more
-access to type objects, and even more scary that all types which we
-use have to be heap types, only!
-
-For PySide with its intense use of heap type extensions in various
-flavors, the situation looked quite unsolvable. In the end, it was
-nicely solved, but it took almost 3.5 months to get that right.
-
-Before we see how this is done, we will explain the differences
-between the APIs and their consequences.
-
-
-The Interface
--------------
-
-The old type API of Python knows static types and heap types.
-Static types are written down as a declaration of a ``PyTypeObject``
-structure with all its fields filled in. Here is for example
-the definition of the Python type ``object`` (Python 3.6)::
-
- PyTypeObject PyBaseObject_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
- "object", /* tp_name */
- sizeof(PyObject), /* tp_basicsize */
- 0, /* tp_itemsize */
- object_dealloc, /* tp_dealloc */
- 0, /* tp_print */
- 0, /* tp_getattr */
- 0, /* tp_setattr */
- 0, /* tp_reserved */
- object_repr, /* tp_repr */
- 0, /* tp_as_number */
- 0, /* tp_as_sequence */
- 0, /* tp_as_mapping */
- (hashfunc)_Py_HashPointer, /* tp_hash */
- 0, /* tp_call */
- object_str, /* tp_str */
- PyObject_GenericGetAttr, /* tp_getattro */
- PyObject_GenericSetAttr, /* tp_setattro */
- 0, /* tp_as_buffer */
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */
- PyDoc_STR("object()\n--\n\nThe most base type"), /* tp_doc */
- 0, /* tp_traverse */
- 0, /* tp_clear */
- object_richcompare, /* tp_richcompare */
- 0, /* tp_weaklistoffset */
- 0, /* tp_iter */
- 0, /* tp_iternext */
- object_methods, /* tp_methods */
- 0, /* tp_members */
- object_getsets, /* tp_getset */
- 0, /* tp_base */
- 0, /* tp_dict */
- 0, /* tp_descr_get */
- 0, /* tp_descr_set */
- 0, /* tp_dictoffset */
- object_init, /* tp_init */
- PyType_GenericAlloc, /* tp_alloc */
- object_new, /* tp_new */
- PyObject_Del, /* tp_free */
- };
-
-We can write the same structure in form of a ``PyType_Spec`` structure,
-and there is even an incomplete tool *abitype.py* that does this conversion
-for us. With a few corrections, the result looks like this::
-
- static PyType_Slot PyBaseObject_Type_slots[] = {
- {Py_tp_dealloc, (void *)object_dealloc},
- {Py_tp_repr, (void *)object_repr},
- {Py_tp_hash, (void *)_Py_HashPointer},
- {Py_tp_str, (void *)object_str},
- {Py_tp_getattro, (void *)PyObject_GenericGetAttr},
- {Py_tp_setattro, (void *)PyObject_GenericSetAttr},
- {Py_tp_richcompare, (void *)object_richcompare},
- {Py_tp_methods, (void *)object_methods},
- {Py_tp_getset, (void *)object_getsets},
- {Py_tp_init, (void *)object_init},
- {Py_tp_alloc, (void *)PyType_GenericAlloc},
- {Py_tp_new, (void *)object_new},
- {Py_tp_free, (void *)PyObject_Del},
- {0, 0},
- };
- static PyType_Spec PyBaseObject_Type_spec = {
- "object",
- sizeof(PyObject),
- 0,
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
- PyBaseObject_Type_slots,
- };
-
-This new structure is almost compatible with the old one, but there
-are some subtle differences.
-
-* The new types are generated in one step
-
-This seems to be no problem, but it was very much, due to the way the
-types were built in PySide. Types were assembled piece by piece, and
-finally the ``PyType_Ready`` function was called.
-
-With the new API, ``PyType_Ready`` is called already at the end of
-``PyType_FromSpec``, and that meant that the logic of type creation became
-completely turned upside down.
-
-* The new types are always heaptypes
-
-With the new type creation functions, it is no longer possible to
-create "normal" types. Instead, they all have to be allocated on the
-heap and garbage collected. The user should normally not recognize this.
-But type creation is more constrained, and you cannot create a subtype
-if the ``Py_TPFLAGS_BASETYPE`` is not set. This constraint was already
-violated by PySide and needed a quite profound fix.
-
-* The new types always need a module
-
-While this is not a problem per se, the above new type spec will not create
-a usable new type, but complain with::
-
- DeprecationWarning: builtin type object has no __module__ attribute
-
-But there are more problems:
-
-* The new types have unexpected defaults
-
-When fields are empty, you would usually assume that they stay empty.
-There are just a few corrections that ``PyType_Ready`` will do to a type.
-
-But there is the following clause in ``PyType_FromSpec`` that can give you
-many headaches::
-
- if (type->tp_dealloc == NULL) {
- /* It's a heap type, so needs the heap types' dealloc.
- subtype_dealloc will call the base type's tp_dealloc, if
- necessary. */
- type->tp_dealloc = subtype_dealloc;
- }
-
-In fact, before the move to the new API, the ``PyType_Ready`` function
-filled empty ``tp_dealloc`` fields with ``object_dealloc``. And the code
-that has been written with that in mind now becomes pretty wrong if suddenly
-``subtype_dealloc`` is used.
-
-The way out was to explicitly provide an ``object_dealloc`` function.
-This would then again impose a problem, because ``object_dealloc`` is not
-public. Writing our own version is easy, but it again needs access to
-type objects. But fortunately, we have broken this rule, already...
-
-
-* The new types are only partially allocated
-
-The structures used in ``PyType_FromSpec`` are almost all allocated,
-only the name field is static. This is no problem for types which are
-statically created once. But if you want to parameterize things and
-create multiple types with a single slots and spec definition, the name
-field that is used for tp_name must be allocated dynamically.
-This is misleading, since all the slots already are copies.
-
-* The new types don't support special offsets
-
-The special fields ``tp_weaklistoffset`` and ``tp_dictoffset`` are not supported
-by ``PyType_FromSpec``. Unfortunately the documentation does not tell you
-if you are allowed to set these fields manually after creating the type or not.
-We finally did it and it worked, but we are not sure about correctness.
-
-See basewrapper.cpp function ``SbkObject_TypeF()`` as the only reference to
-these fields in PySide. This single reference is absolutely necessary and
-very important, since all derived types invisibly inherit these two fields.
-
-
-Future Versions Of The Limited API
-==================================
-
-As we have seen, the current version of the limited API does a bit of
-cheating, because it uses parts of the data structure that should be
-an opaque type. At the moment, this works fine because the data is
-still way more compatible as it could be.
-
-But what if this is changed in the future?
-
-We know that the data structures are stable until Python 3.8 comes out.
-Until then, the small bugs and omissions will hopefully all be solved.
-Then it will be possible to replace the current small tricks by calls
-to ``PyType_GetSlot`` in the way things should be.
-
-At the very moment when the current assumptions about the data structure
-are no longer true, we will rewrite the direct attribute access with
-calls to ``PyType_GetSlot``. After that, no more changes will be necessary.
-
-
-Appendix A: The Transition To Simpler Types
-===========================================
-
-After all code had been converted to the limited API, there was a
-remaining problem with the ``PyHeapTypeObject``.
-
-Why a problem? Well, all the type structures in shiboken use
-special extra fields at the end of the heap type object. This
-currently enforces extra knowledge at compile time about how large the
-heap type object is. In a clean implementation, we would only use
-the ``PyTypeObject`` itself and access the fields *behind* the type
-by a pointer that is computed at runtime.
-
-
-Restricted PyTypeObject
------------------------
-
-Before we are going into details, let us motivate the existence of
-the restricted ``PyTypeObject``:
-
-Originally, we wanted to use ``PyTypeObject`` as an opaque type and
-restrict ourselves to only use the access function ``PyType_GetSlot``.
-This function allows access to all fields which are supported by
-the limited API.
-
-But this is a restriction, because we get no access to ``tp_dict``,
-which we need to support the signature extension. But we can work
-around that.
-
-The real restriction is that ``PyType_GetSlot`` only works for heap
-types. This makes the function quite useless, because we have
-no access to ``PyType_Type``, which is the most important type ``type``
-in Python. We need that for instance to compute the size of
-``PyHeapTypeObject`` dynamically.
-
-With much effort, it is possible to clone ``PyType_Type`` as a heap
-type. But due to a bug in the Pep 384 support, we need
-access to the ``nb_index`` field of a normal type. Cloning does not
-help because ``PyNumberMethods`` fields are *not* inherited.
-
-After we realized this dead end, we changed concept and did not
-use ``PyType_GetSlot`` at all (except in function ``copyNumberMethods``),
-but created a restricted ``PyTypeObject`` with only those fields
-defined that are needed in PySide.
-
-Is this breakage of the limited API? I don't think so. A special
-function runs on program startup that checks the correct position
-of the fields of ``PyTypeObject``, although a change in those fields is
-more than unlikely.
-The really crucial thing is to no longer use ``PyHeapTypeObject``
-explicitly because that *does* change its layout over time.
-
-
-Diversification
----------------
-
-There were multiple ``Sbk{something}`` structures which all used a "d" field
-for their private data. This made it not easy to find the right
-fields when switching between objects and types::
-
- struct LIBSHIBOKEN_API SbkObject
- {
- PyObject_HEAD
- PyObject *ob_dict;
- PyObject *weakreflist;
- SbkObjectPrivate *d;
- };
-
- struct LIBSHIBOKEN_API SbkObjectType
- {
- PyHeapTypeObject super;
- SbkObjectTypePrivate *d;
- };
-
-The first step was to rename the SbkObjectTypePrivate part from "d" to
-"sotp". It was chosen to be short but easy to remember as abbreviation
-of "SbkObjectTypePrivate", leading to::
-
- struct LIBSHIBOKEN_API SbkObjectType
- {
- PyHeapTypeObject super;
- SbkObjectTypePrivate *sotp;
- };
-
-After renaming, it was easier to do the following transformations.
-
-
-Abstraction
------------
-
-After renaming the type extension pointers to ``sotp``, I replaced
-them by function-like macros which did the special access *behind*
-the types, instead of those explicit fields. For instance, the
-expression::
-
- type->sotp->converter
-
-became::
-
- PepType_SOTP(type)->converter
-
-The macro expansion can be seen here::
-
- #define PepHeapType_SIZE \
- (reinterpret_cast<PyTypeObject *>(&PyType_Type)->tp_basicsize)
-
- #define _genericTypeExtender(etype) \
- (reinterpret_cast<char *>(etype) + PepHeapType_SIZE)
-
- #define PepType_SOTP(etype) \
- (*reinterpret_cast<SbkObjectTypePrivate **>(_genericTypeExtender(etype)))
-
-This looks complicated, but in the end there is only a single new
-indirection via ``PyType_Type``, which happens at runtime. This is the
-key to fulfil what Pep 384 wants to achieve: *No more version-dependent fields*.
-
-
-Simplification
---------------
-
-After all type extension fields were replaced by macro calls, we
-could remove the following version dependent re-definition of ``PyHeapTypeObject``
-::
-
- typedef struct _pyheaptypeobject {
- union {
- PyTypeObject ht_type;
- void *opaque[PY_HEAPTYPE_SIZE];
- };
- } PyHeapTypeObject;
-
-, and the version dependent structure::
-
- struct LIBSHIBOKEN_API SbkObjectType
- {
- PyHeapTypeObject super;
- SbkObjectTypePrivate *sotp;
- };
-
-could be removed. SbkObjectType remains as a (deprecated)
-type alias to PyTypeObject.
-
-
-Appendix B: Verification Of PyTypeObject
-========================================
-
-We have introduced a limited PyTypeObject in the same place
-as the original PyTypeObject, and now we need to prove that
-we are allowed to do so.
-
-When using the limited API as intended, then types are completely
-opaque, and access is only through ``PyType_FromSpec`` and (from
-version 3.5 upwards) through ``PyType_GetSlot``.
-
-Python then uses all the slot definitions in the type description
-and produces a regular heap type object.
-
-
-Unused Information
-------------------
-
-We know many things about types that are not explicitly said,
-but they are inherently clear:
-
-(a) The basic structure of a type is always the same, regardless
- if it is a static type or a heap type.
-
-(b) types are evolving very slowly, and a field is never replaced
- by another field with different semantics.
-
-Inherent rule (a) gives us the following information: If we calculate
-the offsets of the basic fields, then this info is also usable for non-heap
-types.
-
-The validation checks if rule (b) is still valid.
-
-
-How it Works
-------------
-
-The basic idea of the validation is to produce a new type using
-``PyType_FromSpec`` and to see where in the type structure these fields
-show up. So we build a ``PyType_Slot`` structure with all the fields we
-are using and make sure that these values are all unique in the
-type.
-
-Most fields are not interrogated by ``PyType_FromSpec``, and so we
-simply used some numeric value. Some fields are interpreted, like
-``tp_members``. This field must really be a ``PyMemberDef``. And there are
-``tp_base`` and ``tp_bases`` which have to be type objects and lists
-thereof. It was easiest to not produce these fields from scratch
-but use them from the ``type`` object ``PyType_Type``.
-
-Then one would think to write a function that searches the known
-values in the opaque type structure.
-
-But we can do better and use optimistically the observation (b):
-We simply use the restricted ``PyTypeObject`` structure and assume that
-every field lands exactly where we are awaiting it.
-
-And that is the whole proof: If we find all the disjoint values at
-the places where we expect them, then verification is done.
-
-
-About ``tp_dict``
------------------
-
-One word about the ``tp_dict`` field: This field is a bit special in
-the proof, since it does not appear in the spec and cannot easily
-be checked by ``type.__dict__`` because that creates a *dictproxy*
-object. So how do we prove that is really the right dict?
-
-We have to create that ``PyMethodDef`` structure anyway, and instead of
-leaving it empty, we insert a dummy function. Then we ask the
-``tp_dict`` field if it has the awaited object in it, and that's it!
-
-#EOT
diff --git a/sources/shiboken6/libshiboken/pyobjectholder.h b/sources/shiboken6/libshiboken/pyobjectholder.h
new file mode 100644
index 000000000..857748c2f
--- /dev/null
+++ b/sources/shiboken6/libshiboken/pyobjectholder.h
@@ -0,0 +1,86 @@
+// Copyright (C) 2024 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef PYOBJECTHOLDER_H
+#define PYOBJECTHOLDER_H
+
+#include "sbkpython.h"
+
+#include <cassert>
+#include <utility>
+
+namespace Shiboken
+{
+
+/// PyObjectHolder holds a PyObject pointer, keeping a reference decrementing
+/// its reference counter when destroyed. It makes sure to hold the GIL when
+/// releasing. It implements copy/move semantics and is mainly intended as a
+/// base class for functors holding a callable which can be passed around and
+/// stored in containers or moved from freely.
+/// For one-shot functors, release() can be invoked after the call.
+class PyObjectHolder
+{
+public:
+ PyObjectHolder() noexcept = default;
+
+ /// PyObjectHolder constructor.
+ /// \param pyobj A reference to a Python object
+ explicit PyObjectHolder(PyObject *pyObj) noexcept : m_pyObj(pyObj)
+ {
+ assert(pyObj != nullptr);
+ Py_INCREF(m_pyObj);
+ }
+
+ PyObjectHolder(const PyObjectHolder &o) noexcept : m_pyObj(o.m_pyObj)
+ {
+ Py_XINCREF(m_pyObj);
+ }
+
+ PyObjectHolder &operator=(const PyObjectHolder &o) noexcept
+ {
+ if (this != &o) {
+ m_pyObj = o.m_pyObj;
+ Py_XINCREF(m_pyObj);
+ }
+ return *this;
+ }
+
+ PyObjectHolder(PyObjectHolder &&o) noexcept : m_pyObj{std::exchange(o.m_pyObj, nullptr)} {}
+
+ PyObjectHolder &operator=(PyObjectHolder &&o) noexcept
+ {
+ m_pyObj = std::exchange(o.m_pyObj, nullptr);
+ return *this;
+ }
+
+ /// Decref the python reference
+ ~PyObjectHolder() { release(); }
+
+ [[nodiscard]] bool isNull() const { return m_pyObj == nullptr; }
+ [[nodiscard]] operator bool() const { return m_pyObj != nullptr; }
+
+ /// Returns the pointer of the Python object being held.
+ [[nodiscard]] PyObject *object() const { return m_pyObj; }
+ [[nodiscard]] operator PyObject *() const { return m_pyObj; }
+
+ [[nodiscard]] PyObject *operator->() { return m_pyObj; }
+
+protected:
+ void release()
+ {
+ if (m_pyObj != nullptr) {
+ assert(Py_IsInitialized());
+ auto gstate = PyGILState_Ensure();
+ Py_DECREF(m_pyObj);
+ PyGILState_Release(gstate);
+ m_pyObj = nullptr;
+ }
+ }
+
+private:
+ PyObject *m_pyObj = nullptr;
+};
+
+} // namespace Shiboken
+
+#endif // PYOBJECTHOLDER_H
diff --git a/sources/shiboken6/libshiboken/sbkarrayconverter.cpp b/sources/shiboken6/libshiboken/sbkarrayconverter.cpp
index 58d58d25c..bcc3fb767 100644
--- a/sources/shiboken6/libshiboken/sbkarrayconverter.cpp
+++ b/sources/shiboken6/libshiboken/sbkarrayconverter.cpp
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include "sbkarrayconverter.h"
#include "sbkarrayconverter_p.h"
@@ -50,8 +14,7 @@
static SbkArrayConverter *ArrayTypeConverters[Shiboken::Conversions::SBK_ARRAY_IDX_SIZE] [2] = {};
-namespace Shiboken {
-namespace Conversions {
+namespace Shiboken::Conversions {
// Check whether Predicate is true for all elements of a sequence
template <class Predicate>
@@ -157,7 +120,7 @@ static void sequenceToCppIntArray(PyObject *pyIn, void *cppOut)
{
auto *handle = reinterpret_cast<ArrayHandle<int> *>(cppOut);
handle->allocate(PySequence_Size(pyIn));
- convertPySequence(pyIn, _PepLong_AsInt, handle->data());
+ convertPySequence(pyIn, PyLong_AsLong, handle->data());
}
static PythonToCppFunc sequenceToCppIntArrayCheck(PyObject *pyIn, int dim1, int /* dim2 */)
@@ -280,5 +243,4 @@ void setArrayTypeConverter(int index, int dimension, SbkArrayConverter *c)
ArrayTypeConverters[index][dimension - 1] = c;
}
-} // namespace Conversions
-} // namespace Shiboken
+} // namespace Shiboken::Conversions
diff --git a/sources/shiboken6/libshiboken/sbkarrayconverter.h b/sources/shiboken6/libshiboken/sbkarrayconverter.h
index 32bbd8284..f07cb1d70 100644
--- a/sources/shiboken6/libshiboken/sbkarrayconverter.h
+++ b/sources/shiboken6/libshiboken/sbkarrayconverter.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef SBKARRAYCONVERTERS_H
#define SBKARRAYCONVERTERS_H
@@ -47,8 +11,7 @@ extern "C" {
struct SbkArrayConverter;
}
-namespace Shiboken {
-namespace Conversions {
+namespace Shiboken::Conversions {
enum : int {
SBK_UNIMPLEMENTED_ARRAY_IDX,
@@ -168,7 +131,6 @@ void ArrayHandle<T>::destroy()
m_owned = false;
}
-} // namespace Conversions
-} // namespace Shiboken
+} // namespace Shiboken::Conversions
#endif // SBKARRAYCONVERTERS_H
diff --git a/sources/shiboken6/libshiboken/sbkarrayconverter_p.h b/sources/shiboken6/libshiboken/sbkarrayconverter_p.h
index a7b46702b..63d03fb12 100644
--- a/sources/shiboken6/libshiboken/sbkarrayconverter_p.h
+++ b/sources/shiboken6/libshiboken/sbkarrayconverter_p.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef SBKARRAYCONVERTER_P_H
#define SBKARRAYCONVERTER_P_H
@@ -46,7 +10,7 @@
extern "C"
{
-typedef PythonToCppFunc (*IsArrayConvertibleToCppFunc)(PyObject *, int dim1, int dim2);
+using IsArrayConvertibleToCppFunc = PythonToCppFunc (*)(PyObject *, int dim1, int dim2);
/**
* \internal
* Private structure of SbkArrayConverter.
diff --git a/sources/shiboken6/libshiboken/sbkcontainer.cpp b/sources/shiboken6/libshiboken/sbkcontainer.cpp
new file mode 100644
index 000000000..7de1f03e6
--- /dev/null
+++ b/sources/shiboken6/libshiboken/sbkcontainer.cpp
@@ -0,0 +1,19 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#include "sbkcontainer.h"
+#include "sbkstaticstrings.h"
+#include "autodecref.h"
+
+namespace Shiboken
+{
+bool isOpaqueContainer(PyObject *o)
+{
+ if (!o)
+ return false;
+ Shiboken::AutoDecRef tpDict(PepType_GetDict(o->ob_type));
+ return o != nullptr && o != Py_None
+ && PyDict_Contains(tpDict.object(), Shiboken::PyMagicName::opaque_container()) == 1;
+
+}
+} // Shiboken
diff --git a/sources/shiboken6/libshiboken/sbkcontainer.h b/sources/shiboken6/libshiboken/sbkcontainer.h
new file mode 100644
index 000000000..240c772a9
--- /dev/null
+++ b/sources/shiboken6/libshiboken/sbkcontainer.h
@@ -0,0 +1,281 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef SBK_CONTAINER_H
+#define SBK_CONTAINER_H
+
+#include "sbkpython.h"
+#include "shibokenmacros.h"
+#include "shibokenbuffer.h"
+
+#include <algorithm>
+#include <iterator>
+#include <optional>
+#include <utility>
+
+extern "C"
+{
+struct LIBSHIBOKEN_API ShibokenContainer
+{
+ PyObject_HEAD
+ void *d;
+};
+
+} // extern "C"
+
+// Conversion helper traits for container values (Keep it out of namespace as
+// otherwise clashes occur).
+template <class Value>
+struct ShibokenContainerValueConverter
+{
+ static bool checkValue(PyObject *pyArg);
+ static PyObject *convertValueToPython(Value v);
+ static std::optional<Value> convertValueToCpp(PyObject pyArg);
+};
+
+// SFINAE test for the presence of reserve() in a sequence container (std::vector/QList)
+template <typename T>
+class ShibokenContainerHasReserve
+{
+private:
+ using YesType = char[1];
+ using NoType = char[2];
+
+ template <typename C> static YesType& test( decltype(&C::reserve) ) ;
+ template <typename C> static NoType& test(...);
+
+public:
+ enum { value = sizeof(test<T>(nullptr)) == sizeof(YesType) };
+};
+
+template <class SequenceContainer>
+class ShibokenSequenceContainerPrivate // Helper for sequence type containers
+{
+public:
+ using value_type = typename SequenceContainer::value_type;
+ using OptionalValue = typename std::optional<value_type>;
+
+ SequenceContainer *m_list{};
+ bool m_ownsList = false;
+ bool m_const = false;
+ static constexpr const char *msgModifyConstContainer =
+ "Attempt to modify a constant container.";
+
+ static PyObject *tpNew(PyTypeObject *subtype, PyObject * /* args */, PyObject * /* kwds */)
+ {
+ allocfunc allocFunc = reinterpret_cast<allocfunc>(PepType_GetSlot(subtype, Py_tp_alloc));
+ auto *me = reinterpret_cast<ShibokenContainer *>(allocFunc(subtype, 0));
+ auto *d = new ShibokenSequenceContainerPrivate;
+ d->m_list = new SequenceContainer;
+ d->m_ownsList = true;
+ me->d = d;
+ return reinterpret_cast<PyObject *>(me);
+ }
+
+ static PyObject *tpNewInvalid(PyTypeObject * /* subtype */, PyObject * /* args */, PyObject * /* kwds */)
+ {
+ PyErr_Format(PyExc_NotImplementedError,
+ "Opaque containers of type '%s' cannot be instantiated.",
+ typeid(SequenceContainer).name());
+ return nullptr;
+ }
+
+ static int tpInit(PyObject * /* self */, PyObject * /* args */, PyObject * /* kwds */)
+ {
+ return 0;
+ }
+
+ static void tpFree(void *self)
+ {
+ auto *pySelf = reinterpret_cast<PyObject *>(self);
+ auto *d = get(pySelf);
+ if (d->m_ownsList)
+ delete d->m_list;
+ delete d;
+ auto freeFunc = reinterpret_cast<freefunc>(PepType_GetSlot(Py_TYPE(pySelf)->tp_base,
+ Py_tp_free));
+ freeFunc(self);
+ }
+
+ static Py_ssize_t sqLen(PyObject *self)
+ {
+ return get(self)->m_list->size();
+ }
+
+ static PyObject *sqGetItem(PyObject *self, Py_ssize_t i)
+ {
+ auto *d = get(self);
+ if (i < 0 || i >= Py_ssize_t(d->m_list->size())) {
+ PyErr_SetString(PyExc_IndexError, "index out of bounds");
+ return nullptr;
+ }
+ auto it = std::cbegin(*d->m_list);
+ std::advance(it, i);
+ return ShibokenContainerValueConverter<value_type>::convertValueToPython(*it);
+ }
+
+ static int sqSetItem(PyObject *self, Py_ssize_t i, PyObject *pyArg)
+ {
+ auto *d = get(self);
+ if (i < 0 || i >= Py_ssize_t(d->m_list->size())) {
+ PyErr_SetString(PyExc_IndexError, "index out of bounds");
+ return -1;
+ }
+ auto it = std::begin(*d->m_list);
+ std::advance(it, i);
+ OptionalValue value = ShibokenContainerValueConverter<value_type>::convertValueToCpp(pyArg);
+ if (!value.has_value())
+ return -1;
+ *it = value.value();
+ return 0;
+ }
+
+ static PyObject *push_back(PyObject *self, PyObject *pyArg)
+ {
+ auto *d = get(self);
+ if (!ShibokenContainerValueConverter<value_type>::checkValue(pyArg)) {
+ PyErr_SetString(PyExc_TypeError, "wrong type passed to append.");
+ return nullptr;
+ }
+ if (d->m_const) {
+ PyErr_SetString(PyExc_TypeError, msgModifyConstContainer);
+ return nullptr;
+ }
+
+ OptionalValue value = ShibokenContainerValueConverter<value_type>::convertValueToCpp(pyArg);
+ if (!value.has_value())
+ return nullptr;
+ d->m_list->push_back(value.value());
+ Py_RETURN_NONE;
+ }
+
+ static PyObject *push_front(PyObject *self, PyObject *pyArg)
+ {
+ auto *d = get(self);
+ if (!ShibokenContainerValueConverter<value_type>::checkValue(pyArg)) {
+ PyErr_SetString(PyExc_TypeError, "wrong type passed to append.");
+ return nullptr;
+ }
+ if (d->m_const) {
+ PyErr_SetString(PyExc_TypeError, msgModifyConstContainer);
+ return nullptr;
+ }
+
+ OptionalValue value = ShibokenContainerValueConverter<value_type>::convertValueToCpp(pyArg);
+ if (!value.has_value())
+ return nullptr;
+ d->m_list->push_front(value.value());
+ Py_RETURN_NONE;
+ }
+
+ static PyObject *clear(PyObject *self)
+ {
+ auto *d = get(self);
+ if (d->m_const) {
+ PyErr_SetString(PyExc_TypeError, msgModifyConstContainer);
+ return nullptr;
+ }
+
+ d->m_list->clear();
+ Py_RETURN_NONE;
+ }
+
+ static PyObject *pop_back(PyObject *self)
+ {
+ auto *d = get(self);
+ if (d->m_const) {
+ PyErr_SetString(PyExc_TypeError, msgModifyConstContainer);
+ return nullptr;
+ }
+
+ d->m_list->pop_back();
+ Py_RETURN_NONE;
+ }
+
+ static PyObject *pop_front(PyObject *self)
+ {
+ auto *d = get(self);
+ if (d->m_const) {
+ PyErr_SetString(PyExc_TypeError, msgModifyConstContainer);
+ return nullptr;
+ }
+
+ d->m_list->pop_front();
+ Py_RETURN_NONE;
+ }
+
+ // Support for containers with reserve/capacity
+ static PyObject *reserve(PyObject *self, PyObject *pyArg)
+ {
+ auto *d = get(self);
+ if (PyLong_Check(pyArg) == 0) {
+ PyErr_SetString(PyExc_TypeError, "wrong type passed to reserve().");
+ return nullptr;
+ }
+ if (d->m_const) {
+ PyErr_SetString(PyExc_TypeError, msgModifyConstContainer);
+ return nullptr;
+ }
+
+ if constexpr (ShibokenContainerHasReserve<SequenceContainer>::value) {
+ const Py_ssize_t size = PyLong_AsSsize_t(pyArg);
+ d->m_list->reserve(size);
+ } else {
+ PyErr_SetString(PyExc_TypeError, "Container does not support reserve().");
+ return nullptr;
+ }
+
+ Py_RETURN_NONE;
+ }
+
+ static PyObject *capacity(PyObject *self)
+ {
+ Py_ssize_t result = -1;
+ if constexpr (ShibokenContainerHasReserve<SequenceContainer>::value) {
+ const auto *d = get(self);
+ result = d->m_list->capacity();
+ }
+ return PyLong_FromSsize_t(result);
+ }
+
+ static PyObject *data(PyObject *self)
+ {
+ PyObject *result = nullptr;
+ if constexpr (ShibokenContainerHasReserve<SequenceContainer>::value) {
+ const auto *d = get(self);
+ auto *data = d->m_list->data();
+ const Py_ssize_t size = sizeof(value_type) * d->m_list->size();
+ result = Shiboken::Buffer::newObject(data, size, Shiboken::Buffer::ReadWrite);
+ } else {
+ PyErr_SetString(PyExc_TypeError, "Container does not support data().");
+ }
+ return result;
+ }
+
+ static PyObject *constData(PyObject *self)
+ {
+ PyObject *result = nullptr;
+ if constexpr (ShibokenContainerHasReserve<SequenceContainer>::value) {
+ const auto *d = get(self);
+ const auto *data = std::as_const(d->m_list)->data();
+ const Py_ssize_t size = sizeof(value_type) * d->m_list->size();
+ result = Shiboken::Buffer::newObject(data, size);
+ } else {
+ PyErr_SetString(PyExc_TypeError, "Container does not support constData().");
+ }
+ return result;
+ }
+
+ static ShibokenSequenceContainerPrivate *get(PyObject *self)
+ {
+ auto *data = reinterpret_cast<ShibokenContainer *>(self);
+ return reinterpret_cast<ShibokenSequenceContainerPrivate *>(data->d);
+ }
+};
+
+namespace Shiboken
+{
+LIBSHIBOKEN_API bool isOpaqueContainer(PyObject *o);
+}
+
+#endif // SBK_CONTAINER_H
diff --git a/sources/shiboken6/libshiboken/sbkconverter.cpp b/sources/shiboken6/libshiboken/sbkconverter.cpp
index 8fefb35cb..358827aa8 100644
--- a/sources/shiboken6/libshiboken/sbkconverter.cpp
+++ b/sources/shiboken6/libshiboken/sbkconverter.cpp
@@ -1,45 +1,10 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include "sbkconverter.h"
#include "sbkconverter_p.h"
#include "sbkarrayconverter_p.h"
+#include "sbkmodule.h"
#include "basewrapper_p.h"
#include "bindingmanager.h"
#include "autodecref.h"
@@ -54,8 +19,7 @@ static SbkConverter **PrimitiveTypeConverters;
using ConvertersMap = std::unordered_map<std::string, SbkConverter *>;
static ConvertersMap converters;
-namespace Shiboken {
-namespace Conversions {
+namespace Shiboken::Conversions {
void initArrayConverters();
@@ -73,6 +37,7 @@ void init()
Primitive<short>::createConverter(),
Primitive<signed char>::createConverter(),
Primitive<std::string>::createConverter(),
+ Primitive<std::wstring>::createConverter(),
Primitive<unsigned PY_LONG_LONG>::createConverter(),
Primitive<unsigned char>::createConverter(),
Primitive<unsigned int>::createConverter(),
@@ -95,6 +60,7 @@ void init()
converters["short"] = primitiveTypeConverters[SBK_SHORT_IDX];
converters["signed char"] = primitiveTypeConverters[SBK_SIGNEDCHAR_IDX];
converters["std::string"] = primitiveTypeConverters[SBK_STD_STRING_IDX];
+ converters["std::wstring"] = primitiveTypeConverters[SBK_STD_WSTRING_IDX];
converters["unsigned PY_LONG_LONG"] = primitiveTypeConverters[SBK_UNSIGNEDPY_LONG_LONG_IDX];
converters["unsigned char"] = primitiveTypeConverters[SBK_UNSIGNEDCHAR_IDX];
converters["unsigned int"] = primitiveTypeConverters[SBK_UNSIGNEDINT_IDX];
@@ -181,6 +147,13 @@ void addPythonToCppValueConversion(PyTypeObject *type,
addPythonToCppValueConversion(sotp->converter, pythonToCppFunc, isConvertibleToCppFunc);
}
+void addPythonToCppValueConversion(Shiboken::Module::TypeInitStruct typeStruct,
+ PythonToCppFunc pythonToCppFunc,
+ IsConvertibleToCppFunc isConvertibleToCppFunc)
+{
+ addPythonToCppValueConversion(typeStruct.type, pythonToCppFunc, isConvertibleToCppFunc);
+}
+
PyObject *pointerToPython(PyTypeObject *type, const void *cppIn)
{
auto *sotp = PepType_SOTP(type);
@@ -253,6 +226,20 @@ PythonToCppFunc isPythonToCppPointerConvertible(PyTypeObject *type, PyObject *py
return sotp->converter->toCppPointerConversion.first(pyIn);
}
+PythonToCppConversion pythonToCppPointerConversion(PyTypeObject *type, PyObject *pyIn)
+{
+ if (pyIn == nullptr)
+ return {};
+ if (PythonToCppFunc toCppPtr = isPythonToCppPointerConvertible(type, pyIn))
+ return {toCppPtr, PythonToCppConversion::Pointer};
+ return {};
+}
+
+PythonToCppConversion pythonToCppPointerConversion(Module::TypeInitStruct typeStruct, PyObject *pyIn)
+{
+ return pythonToCppPointerConversion(typeStruct.type, pyIn);
+}
+
static inline PythonToCppFunc IsPythonToCppConvertible(const SbkConverter *converter, PyObject *pyIn)
{
assert(pyIn);
@@ -269,11 +256,40 @@ PythonToCppFunc isPythonToCppValueConvertible(PyTypeObject *type, PyObject *pyIn
return IsPythonToCppConvertible(sotp->converter, pyIn);
}
+PythonToCppConversion pythonToCppValueConversion(PyTypeObject *type, PyObject *pyIn)
+{
+ if (pyIn == nullptr)
+ return {};
+ if (PythonToCppFunc toCppVal = isPythonToCppValueConvertible(type, pyIn))
+ return {toCppVal, PythonToCppConversion::Value};
+ return {};
+}
+
PythonToCppFunc isPythonToCppConvertible(const SbkConverter *converter, PyObject *pyIn)
{
return IsPythonToCppConvertible(converter, pyIn);
}
+PythonToCppConversion pythonToCppReferenceConversion(const SbkConverter *converter, PyObject *pyIn)
+{
+ if (converter->toCppPointerConversion.first) {
+ if (auto toCppPtr = converter->toCppPointerConversion.first(pyIn))
+ return {toCppPtr, PythonToCppConversion::Pointer};
+ }
+ for (const ToCppConversion &c : converter->toCppConversions) {
+ if (PythonToCppFunc toCppFunc = c.first(pyIn))
+ return {toCppFunc, PythonToCppConversion::Value};
+ }
+ return {};
+}
+
+PythonToCppConversion pythonToCppConversion(const SbkConverter *converter, PyObject *pyIn)
+{
+ if (auto func = IsPythonToCppConvertible(converter, pyIn))
+ return {func, PythonToCppConversion::Value};
+ return {};
+}
+
PythonToCppFunc isPythonToCppConvertible(const SbkArrayConverter *converter,
int dim1, int dim2, PyObject *pyIn)
{
@@ -285,6 +301,14 @@ PythonToCppFunc isPythonToCppConvertible(const SbkArrayConverter *converter,
return nullptr;
}
+LIBSHIBOKEN_API PythonToCppConversion pythonToCppConversion(const SbkArrayConverter *converter,
+ int dim1, int dim2, PyObject *pyIn)
+{
+ if (auto func = isPythonToCppConvertible(converter, dim1, dim2, pyIn))
+ return {func, PythonToCppConversion::Value};
+ return {};
+}
+
PythonToCppFunc isPythonToCppReferenceConvertible(PyTypeObject *type, PyObject *pyIn)
{
if (pyIn != Py_None) {
@@ -295,6 +319,19 @@ PythonToCppFunc isPythonToCppReferenceConvertible(PyTypeObject *type, PyObject *
return isPythonToCppValueConvertible(type, pyIn);
}
+PythonToCppConversion pythonToCppReferenceConversion(PyTypeObject *type, PyObject *pyIn)
+{
+ if (pyIn == nullptr)
+ return {};
+ if (pyIn != Py_None) {
+ if (PythonToCppFunc toCppPtr = isPythonToCppPointerConvertible(type, pyIn))
+ return {toCppPtr, PythonToCppConversion::Pointer};
+ }
+ if (PythonToCppFunc toCppVal = isPythonToCppValueConvertible(type, pyIn))
+ return {toCppVal, PythonToCppConversion::Value};
+ return {};
+}
+
void nonePythonToCppNullPtr(PyObject *, void *cppOut)
{
assert(cppOut);
@@ -378,19 +415,34 @@ bool isImplicitConversion(PyTypeObject *type, PythonToCppFunc toCppFunc)
return toCppFunc != (*conv).second;
}
-void registerConverterName(SbkConverter *converter , const char *typeName)
+void registerConverterName(SbkConverter *converter, const char *typeName)
{
auto iter = converters.find(typeName);
if (iter == converters.end())
converters.insert(std::make_pair(typeName, converter));
}
+static std::string getRealTypeName(const char *name)
+{
+ std::string typeName(name);
+ auto size = typeName.size();
+ if (std::isalnum(typeName[size - 1]) == 0)
+ return typeName.substr(0, size - 1);
+ return typeName;
+}
+
SbkConverter *getConverter(const char *typeName)
{
- ConvertersMap::const_iterator it = converters.find(typeName);
+ auto it = converters.find(typeName);
if (it != converters.end())
return it->second;
- if (Py_VerboseFlag > 0) {
+ // PYSIDE-2404: Did not find the name. Load the lazy classes
+ // which have this name and try again.
+ Shiboken::Module::loadLazyClassesWithName(getRealTypeName(typeName).c_str());
+ it = converters.find(typeName);
+ if (it != converters.end())
+ return it->second;
+ if (Shiboken::pyVerbose() > 0) {
const std::string message =
std::string("Can't find type resolver for type '") + typeName + "'.";
PyErr_WarnEx(PyExc_RuntimeWarning, message.c_str(), 0);
@@ -403,6 +455,27 @@ SbkConverter *primitiveTypeConverter(int index)
return PrimitiveTypeConverters[index];
}
+bool checkIterableTypes(PyTypeObject *type, PyObject *pyIn)
+{
+ Shiboken::AutoDecRef it(PyObject_GetIter(pyIn));
+ if (it.isNull()) {
+ PyErr_Clear();
+ return false;
+ }
+
+ while (true) {
+ Shiboken::AutoDecRef pyItem(PyIter_Next(it.object()));
+ if (pyItem.isNull()) {
+ if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration))
+ PyErr_Clear();
+ break;
+ }
+ if (!PyObject_TypeCheck(pyItem, type))
+ return false;
+ }
+ return true;
+}
+
bool checkSequenceTypes(PyTypeObject *type, PyObject *pyIn)
{
assert(type);
@@ -419,6 +492,28 @@ bool checkSequenceTypes(PyTypeObject *type, PyObject *pyIn)
}
return true;
}
+
+bool convertibleIterableTypes(const SbkConverter *converter, PyObject *pyIn)
+{
+ Shiboken::AutoDecRef it(PyObject_GetIter(pyIn));
+ if (it.isNull()) {
+ PyErr_Clear();
+ return false;
+ }
+
+ while (true) {
+ Shiboken::AutoDecRef pyItem(PyIter_Next(it.object()));
+ if (pyItem.isNull()) {
+ if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration))
+ PyErr_Clear();
+ break;
+ }
+ if (!isPythonToCppConvertible(converter, pyItem))
+ return false;
+ }
+ return true;
+}
+
bool convertibleSequenceTypes(const SbkConverter *converter, PyObject *pyIn)
{
assert(converter);
@@ -439,6 +534,13 @@ bool convertibleSequenceTypes(PyTypeObject *type, PyObject *pyIn)
return convertibleSequenceTypes(sotp->converter, pyIn);
}
+bool convertibleIterableTypes(PyTypeObject *type, PyObject *pyIn)
+{
+ assert(type);
+ auto *sotp = PepType_SOTP(type);
+ return convertibleIterableTypes(sotp->converter, pyIn);
+}
+
bool checkPairTypes(PyTypeObject *firstType, PyTypeObject *secondType, PyObject *pyIn)
{
assert(firstType);
@@ -602,7 +704,14 @@ PyTypeObject *getPythonTypeObject(const SbkConverter *converter)
PyTypeObject *getPythonTypeObject(const char *typeName)
{
- return getPythonTypeObject(getConverter(typeName));
+ auto *type = getPythonTypeObject(getConverter(typeName));
+ if (type == nullptr) {
+ // PYSIDE-2404: Did not find the name. Load the lazy classes
+ // which have this name and try again.
+ Shiboken::Module::loadLazyClassesWithName(getRealTypeName(typeName).c_str());
+ type = getPythonTypeObject(getConverter(typeName));
+ }
+ return type;
}
bool pythonTypeIsValueType(const SbkConverter *converter)
@@ -673,4 +782,4 @@ void SpecificConverter::toCpp(PyObject *pyIn, void *cppOut)
}
}
-} } // namespace Shiboken::Conversions
+} // namespace Shiboken::Conversions
diff --git a/sources/shiboken6/libshiboken/sbkconverter.h b/sources/shiboken6/libshiboken/sbkconverter.h
index 5b25a8918..0d68f3faf 100644
--- a/sources/shiboken6/libshiboken/sbkconverter.h
+++ b/sources/shiboken6/libshiboken/sbkconverter.h
@@ -1,49 +1,13 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef SBK_CONVERTER_H
#define SBK_CONVERTER_H
#include "sbkpython.h"
+#include "sbkmodule.h"
#include "shibokenmacros.h"
#include "sbkenum.h"
-#include "sbkenum_p.h"
#include "basewrapper_p.h"
#include <limits>
@@ -79,7 +43,7 @@ struct SbkArrayConverter;
*
* C++ -> Python
*/
-typedef PyObject *(*CppToPythonFunc)(const void *);
+using CppToPythonFunc = PyObject *(*)(const void *);
/**
* This function converts a Python object to a C++ value, it may be
@@ -92,7 +56,7 @@ typedef PyObject *(*CppToPythonFunc)(const void *);
*
* Python -> C++
*/
-typedef void (*PythonToCppFunc)(PyObject *,void *);
+using PythonToCppFunc = void (*)(PyObject *,void *);
/**
* Checks if the Python object passed in the argument is convertible to a
@@ -103,7 +67,7 @@ typedef void (*PythonToCppFunc)(PyObject *,void *);
*
* Python -> C++ ?
*/
-typedef PythonToCppFunc (*IsConvertibleToCppFunc)(PyObject *);
+using IsConvertibleToCppFunc = PythonToCppFunc (*)(PyObject *);
} // extern "C"
@@ -183,6 +147,9 @@ LIBSHIBOKEN_API void addPythonToCppValueConversion(SbkConverter *converter,
LIBSHIBOKEN_API void addPythonToCppValueConversion(PyTypeObject *type,
PythonToCppFunc pythonToCppFunc,
IsConvertibleToCppFunc isConvertibleToCppFunc);
+LIBSHIBOKEN_API void addPythonToCppValueConversion(Shiboken::Module::TypeInitStruct typeStruct,
+ PythonToCppFunc pythonToCppFunc,
+ IsConvertibleToCppFunc isConvertibleToCppFunc);
// C++ -> Python ---------------------------------------------------------------------------
@@ -220,11 +187,27 @@ LIBSHIBOKEN_API PyObject *copyToPython(const SbkConverter *converter, const void
// Python -> C++ ---------------------------------------------------------------------------
+struct PythonToCppConversion
+{
+ enum Type {Invalid, Pointer, Value};
+
+ operator bool() const { return type != Invalid; }
+
+ void operator()(PyObject *po,void *cpp) const { function(po, cpp); }
+
+ bool isValue() const { return type == Value; }
+
+ PythonToCppFunc function = nullptr;
+ Type type = Invalid;
+};
+
/**
* Returns a Python to C++ conversion function if the Python object is convertible to a C++ pointer.
* It returns NULL if the Python object is not convertible to \p type.
*/
LIBSHIBOKEN_API PythonToCppFunc isPythonToCppPointerConvertible(PyTypeObject *type, PyObject *pyIn);
+LIBSHIBOKEN_API PythonToCppConversion pythonToCppPointerConversion(PyTypeObject *type, PyObject *pyIn);
+LIBSHIBOKEN_API PythonToCppConversion pythonToCppPointerConversion(Module::TypeInitStruct typeStruct, PyObject *pyIn);
/**
* Returns a Python to C++ conversion function if the Python object is convertible to a C++ value.
@@ -233,6 +216,7 @@ LIBSHIBOKEN_API PythonToCppFunc isPythonToCppPointerConvertible(PyTypeObject *ty
* It returns NULL if the Python object is not convertible to \p type.
*/
LIBSHIBOKEN_API PythonToCppFunc isPythonToCppValueConvertible(PyTypeObject *type, PyObject *pyIn);
+LIBSHIBOKEN_API PythonToCppConversion pythonToCppValueConversion(PyTypeObject *type, PyObject *pyIn);
/**
* Returns a Python to C++ conversion function if the Python object is convertible to a C++ reference.
@@ -241,11 +225,17 @@ LIBSHIBOKEN_API PythonToCppFunc isPythonToCppValueConvertible(PyTypeObject *type
* It returns NULL if the Python object is not convertible to \p type.
*/
LIBSHIBOKEN_API PythonToCppFunc isPythonToCppReferenceConvertible(PyTypeObject *type, PyObject *pyIn);
+LIBSHIBOKEN_API PythonToCppConversion pythonToCppReferenceConversion(PyTypeObject *type, PyObject *pyIn);
/// This is the same as isPythonToCppValueConvertible function.
LIBSHIBOKEN_API PythonToCppFunc isPythonToCppConvertible(const SbkConverter *converter, PyObject *pyIn);
+LIBSHIBOKEN_API PythonToCppConversion pythonToCppReferenceConversion(const SbkConverter *converter, PyObject *pyIn);
+
+LIBSHIBOKEN_API PythonToCppConversion pythonToCppConversion(const SbkConverter *converter, PyObject *pyIn);
LIBSHIBOKEN_API PythonToCppFunc isPythonToCppConvertible(const SbkArrayConverter *converter,
int dim1, int dim2, PyObject *pyIn);
+LIBSHIBOKEN_API PythonToCppConversion pythonToCppConversion(const SbkArrayConverter *converter,
+ int dim1, int dim2, PyObject *pyIn);
/**
* Returns the C++ pointer for the \p pyIn object cast to the type passed via \p desiredType.
@@ -273,7 +263,7 @@ LIBSHIBOKEN_API void nonePythonToCppNullPtr(PyObject *, void *cppOut);
* It is used when C++ expects a reference argument, so it may be the same object received
* from Python, or another created through implicit conversion.
*/
-LIBSHIBOKEN_API bool isImplicitConversion(PyTypeObject *type, PythonToCppFunc toCpp);
+[[deprecated]] LIBSHIBOKEN_API bool isImplicitConversion(PyTypeObject *type, PythonToCppFunc toCpp);
/// Registers a converter with a type name that may be used to retrieve the converter.
LIBSHIBOKEN_API void registerConverterName(SbkConverter *converter, const char *typeName);
@@ -287,12 +277,24 @@ LIBSHIBOKEN_API SbkConverter *primitiveTypeConverter(int index);
/// Returns true if a Python sequence is comprised of objects of the given \p type.
LIBSHIBOKEN_API bool checkSequenceTypes(PyTypeObject *type, PyObject *pyIn);
+/// Returns true if a Python type is iterable and comprised of objects of the
+/// given \p type.
+LIBSHIBOKEN_API bool checkIterableTypes(PyTypeObject *type, PyObject *pyIn);
+
/// Returns true if a Python sequence is comprised of objects of a type convertible to the one represented by the given \p converter.
LIBSHIBOKEN_API bool convertibleSequenceTypes(const SbkConverter *converter, PyObject *pyIn);
/// Returns true if a Python sequence is comprised of objects of a type convertible to \p type.
LIBSHIBOKEN_API bool convertibleSequenceTypes(PyTypeObject *type, PyObject *pyIn);
+/// Returns true if a Python type is iterable and comprised of objects of a
+/// type convertible to the one represented by the given \p converter.
+LIBSHIBOKEN_API bool convertibleIterableTypes(const SbkConverter *converter, PyObject *pyIn);
+
+/// Returns true if a Python type is iterable and comprised of objects of a
+/// type convertible to \p type.
+LIBSHIBOKEN_API bool convertibleIterableTypes(PyTypeObject *type, PyObject *pyIn);
+
/// Returns true if a Python sequence can be converted to a C++ pair.
LIBSHIBOKEN_API bool checkPairTypes(PyTypeObject *firstType, PyTypeObject *secondType, PyObject *pyIn);
@@ -350,13 +352,14 @@ LIBSHIBOKEN_API bool pythonTypeIsWrapperType(const SbkConverter *converter);
#define SBK_SHORT_IDX 8
#define SBK_SIGNEDCHAR_IDX 9
#define SBK_STD_STRING_IDX 10
-#define SBK_UNSIGNEDPY_LONG_LONG_IDX 11
-#define SBK_UNSIGNEDCHAR_IDX 12
-#define SBK_UNSIGNEDINT_IDX 13
-#define SBK_UNSIGNEDLONG_IDX 14
-#define SBK_UNSIGNEDSHORT_IDX 15
-#define SBK_VOIDPTR_IDX 16
-#define SBK_NULLPTR_T_IDX 17
+#define SBK_STD_WSTRING_IDX 11
+#define SBK_UNSIGNEDPY_LONG_LONG_IDX 12
+#define SBK_UNSIGNEDCHAR_IDX 13
+#define SBK_UNSIGNEDINT_IDX 14
+#define SBK_UNSIGNEDLONG_IDX 15
+#define SBK_UNSIGNEDSHORT_IDX 16
+#define SBK_VOIDPTR_IDX 17
+#define SBK_NULLPTR_T_IDX 18
template<typename T> SbkConverter *PrimitiveTypeConverter() { return nullptr; }
template<> inline SbkConverter *PrimitiveTypeConverter<PY_LONG_LONG>() { return primitiveTypeConverter(SBK_PY_LONG_LONG_IDX); }
@@ -370,6 +373,7 @@ template<> inline SbkConverter *PrimitiveTypeConverter<long>() { return primitiv
template<> inline SbkConverter *PrimitiveTypeConverter<short>() { return primitiveTypeConverter(SBK_SHORT_IDX); }
template<> inline SbkConverter *PrimitiveTypeConverter<signed char>() { return primitiveTypeConverter(SBK_SIGNEDCHAR_IDX); }
template<> inline SbkConverter *PrimitiveTypeConverter<std::string>() { return primitiveTypeConverter(SBK_STD_STRING_IDX); }
+template<> inline SbkConverter *PrimitiveTypeConverter<std::wstring>() { return primitiveTypeConverter(SBK_STD_WSTRING_IDX); }
template<> inline SbkConverter *PrimitiveTypeConverter<unsigned PY_LONG_LONG>() { return primitiveTypeConverter(SBK_UNSIGNEDPY_LONG_LONG_IDX); }
template<> inline SbkConverter *PrimitiveTypeConverter<unsigned char>() { return primitiveTypeConverter(SBK_UNSIGNEDCHAR_IDX); }
template<> inline SbkConverter *PrimitiveTypeConverter<unsigned int>() { return primitiveTypeConverter(SBK_UNSIGNEDINT_IDX); }
@@ -407,13 +411,10 @@ template<> inline PyTypeObject *SbkType<std::nullptr_t>() { return Py_TYPE(&_Py_
} // namespace Shiboken
-// When the user adds a function with an argument unknown for the typesystem, the generator writes type checks as
-// TYPENAME_Check, so this macro allows users to add PyObject arguments to their added functions.
-#define PyObject_Check(X) true
#define SbkChar_Check(X) (PyNumber_Check(X) || Shiboken::String::checkChar(X))
struct PySideQFlagsType;
-struct PySideQFlagsTypePrivate
+struct SbkQFlagsTypePrivate
{
SbkConverter *converter;
};
diff --git a/sources/shiboken6/libshiboken/sbkconverter_p.h b/sources/shiboken6/libshiboken/sbkconverter_p.h
index 3a1689d93..c886c9b9f 100644
--- a/sources/shiboken6/libshiboken/sbkconverter_p.h
+++ b/sources/shiboken6/libshiboken/sbkconverter_p.h
@@ -1,47 +1,12 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef SBK_CONVERTER_P_H
#define SBK_CONVERTER_P_H
#include "sbkpython.h"
#include "sbkconverter.h"
+#include "sbkcppstring.h"
#include "sbkstring.h"
#include <limits>
#include <typeinfo>
@@ -313,7 +278,7 @@ struct Primitive<PY_LONG_LONG> : OnePrimitive<PY_LONG_LONG>
{
PY_LONG_LONG result = PyLong_AsLongLong(pyIn);
if (OverFlowChecker<PY_LONG_LONG>::check(result, pyIn))
- PyErr_SetObject(PyExc_OverflowError, 0);
+ PyErr_SetObject(PyExc_OverflowError, nullptr);
*reinterpret_cast<PY_LONG_LONG * >(cppOut) = result;
}
static PythonToCppFunc isConvertible(PyObject *pyIn)
@@ -362,7 +327,7 @@ struct FloatPrimitive : TwoPrimitive<FLOAT>
}
static void toCpp(PyObject *pyIn, void *cppOut)
{
- *reinterpret_cast<FLOAT *>(cppOut) = FLOAT(PyLong_AsLong(pyIn));
+ *reinterpret_cast<FLOAT *>(cppOut) = FLOAT(PyLong_AsDouble(pyIn));
}
static PythonToCppFunc isConvertible(PyObject *pyIn)
{
@@ -490,7 +455,7 @@ struct Primitive<std::string> : TwoPrimitive<std::string>
{
static PyObject *toPython(const void *cppIn)
{
- return Shiboken::String::fromCString(reinterpret_cast<const std::string *>(cppIn)->c_str());
+ return Shiboken::String::fromCppString(*reinterpret_cast<const std::string *>(cppIn));
}
static void toCpp(PyObject *, void *cppOut)
{
@@ -504,7 +469,7 @@ struct Primitive<std::string> : TwoPrimitive<std::string>
}
static void otherToCpp(PyObject *pyIn, void *cppOut)
{
- reinterpret_cast<std::string *>(cppOut)->assign(Shiboken::String::toCString(pyIn));
+ Shiboken::String::toCppString(pyIn, reinterpret_cast<std::string *>(cppOut));
}
static PythonToCppFunc isOtherConvertible(PyObject *pyIn)
{
@@ -514,9 +479,34 @@ struct Primitive<std::string> : TwoPrimitive<std::string>
}
};
+template <>
+struct Primitive<std::wstring> : TwoPrimitive<std::wstring>
+{
+ static PyObject *toPython(const void *cppIn)
+ {
+ return Shiboken::String::fromCppWString(*reinterpret_cast<const std::wstring *>(cppIn));
+ }
+ static void toCpp(PyObject *, void *cppOut)
+ {
+ reinterpret_cast<std::wstring *>(cppOut)->clear();
+ }
+ static PythonToCppFunc isConvertible(PyObject *pyIn)
+ {
+ return pyIn == Py_None ? toCpp : nullptr;
+ }
+ static void otherToCpp(PyObject *pyIn, void *cppOut)
+ {
+ Shiboken::String::toCppWString(pyIn, reinterpret_cast<std::wstring *>(cppOut));
+ }
+ static PythonToCppFunc isOtherConvertible(PyObject *pyIn)
+ {
+ return PyUnicode_Check(pyIn) ? otherToCpp : nullptr;
+ }
+};
+
// nullptr_t
template <>
-struct Primitive<std::nullptr_t> : TwoPrimitive<std::nullptr_t>
+struct Primitive<std::nullptr_t> : OnePrimitive<std::nullptr_t>
{
static PyObject *toPython(const void * /* cppIn */)
{
@@ -532,25 +522,15 @@ struct Primitive<std::nullptr_t> : TwoPrimitive<std::nullptr_t>
return toCpp;
return nullptr;
}
- static void otherToCpp(PyObject * /* pyIn */, void *cppOut)
- {
- *reinterpret_cast<std::nullptr_t *>(cppOut) = nullptr;
- }
- static PythonToCppFunc isOtherConvertible(PyObject *pyIn)
- {
- if (pyIn == nullptr)
- return otherToCpp;
- return nullptr;
- }
};
-namespace Shiboken {
-namespace Conversions {
+namespace Shiboken::Conversions {
+
SbkConverter *createConverterObject(PyTypeObject *type,
PythonToCppFunc toCppPointerConvFunc,
IsConvertibleToCppFunc toCppPointerCheckFunc,
CppToPythonFunc pointerToPythonFunc,
CppToPythonFunc copyToPythonFunc);
-} // namespace Conversions
-} // namespace Shiboken
+} // namespace Shiboken::Conversions
+
#endif // SBK_CONVERTER_P_H
diff --git a/sources/shiboken6/libshiboken/sbkcppstring.cpp b/sources/shiboken6/libshiboken/sbkcppstring.cpp
new file mode 100644
index 000000000..8e8324f5e
--- /dev/null
+++ b/sources/shiboken6/libshiboken/sbkcppstring.cpp
@@ -0,0 +1,54 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#include "sbkcppstring.h"
+#include "autodecref.h"
+
+namespace Shiboken::String
+{
+
+PyObject *fromCppString(const std::string &value)
+{
+ return PyUnicode_FromStringAndSize(value.data(), value.size());
+}
+
+PyObject *fromCppStringView(std::string_view value)
+{
+ return PyUnicode_FromStringAndSize(value.data(), value.size());
+}
+
+PyObject *fromCppWString(const std::wstring &value)
+{
+ return PyUnicode_FromWideChar(value.data(), value.size());
+}
+
+void toCppString(PyObject *str, std::string *value)
+{
+ value->clear();
+
+ if (str == Py_None)
+ return;
+
+ if (PyUnicode_Check(str)) {
+ if (PyUnicode_GetLength(str) > 0)
+ value->assign(_PepUnicode_AsString(str));
+ return;
+ }
+
+ if (PyBytes_Check(str))
+ value->assign(PyBytes_AS_STRING(str));
+}
+
+void toCppWString(PyObject *str, std::wstring *value)
+{
+ value->clear();
+
+ if (str == Py_None || PyUnicode_Check(str) == 0 || PyUnicode_GetLength(str) == 0)
+ return;
+
+ wchar_t *w = PyUnicode_AsWideCharString(str, nullptr);
+ value->assign(w);
+ PyMem_Free(w);
+}
+
+} // namespace Shiboken::String
diff --git a/sources/shiboken6/libshiboken/sbkcppstring.h b/sources/shiboken6/libshiboken/sbkcppstring.h
new file mode 100644
index 000000000..7ffe11c75
--- /dev/null
+++ b/sources/shiboken6/libshiboken/sbkcppstring.h
@@ -0,0 +1,22 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef SBKCPPSTRING_H
+#define SBKCPPSTRING_H
+
+#include "sbkpython.h"
+#include "shibokenmacros.h"
+
+#include <string>
+#include <string_view>
+
+namespace Shiboken::String
+{
+ LIBSHIBOKEN_API PyObject *fromCppString(const std::string &value);
+ LIBSHIBOKEN_API PyObject *fromCppStringView(std::string_view value);
+ LIBSHIBOKEN_API PyObject *fromCppWString(const std::wstring &value);
+ LIBSHIBOKEN_API void toCppString(PyObject *str, std::string *value);
+ LIBSHIBOKEN_API void toCppWString(PyObject *str, std::wstring *value);
+} // namespace Shiboken::String
+
+#endif // SBKCPPSTRING_H
diff --git a/sources/shiboken6/libshiboken/sbkcpptonumpy.cpp b/sources/shiboken6/libshiboken/sbkcpptonumpy.cpp
new file mode 100644
index 000000000..44e900f01
--- /dev/null
+++ b/sources/shiboken6/libshiboken/sbkcpptonumpy.cpp
@@ -0,0 +1,67 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+// included by sbknumpy.cpp
+
+namespace Shiboken::Numpy {
+
+#ifdef HAVE_NUMPY
+
+// Helper to create a 1-dimensional numpy array
+template <class Type>
+static PyObject *_createArray1(Py_ssize_t size, int numpyType, const Type *data)
+{
+ const npy_intp dims[1] = {size};
+ PyObject *result = PyArray_EMPTY(1, dims, numpyType, 0);
+ auto *array = reinterpret_cast<PyArrayObject *>(result);
+ auto *rawTargetData = PyArray_DATA(array);
+ auto *targetData = reinterpret_cast<Type *>(rawTargetData);
+ std::copy(data, data + size, targetData);
+ return result;
+}
+
+PyObject *createByteArray1(Py_ssize_t size, const uint8_t *data)
+{
+ return _createArray1(size, NPY_BYTE, data);
+}
+
+PyObject *createDoubleArray1(Py_ssize_t size, const double *data)
+{
+ return _createArray1(size, NPY_DOUBLE, data);
+}
+
+PyObject *createFloatArray1(Py_ssize_t size, const float *data)
+{
+ return _createArray1(size, NPY_FLOAT, data);
+}
+
+PyObject *createIntArray1(Py_ssize_t size, const int *data)
+{
+ return _createArray1(size, NPY_INT, data);
+}
+
+#else // HAVE_NUMPY
+
+PyObject *createByteArray1(Py_ssize_t, const uint8_t *)
+{
+ return Py_None;
+}
+
+PyObject *createDoubleArray1(Py_ssize_t, const double *)
+{
+ return Py_None;
+}
+
+PyObject *createFloatArray1(Py_ssize_t, const float *)
+{
+ return Py_None;
+}
+
+PyObject *createIntArray1(Py_ssize_t, const int *)
+{
+ return Py_None;
+}
+
+#endif // !HAVE_NUMPY
+
+} //namespace Shiboken::Numpy
diff --git a/sources/shiboken6/libshiboken/sbkcpptonumpy.h b/sources/shiboken6/libshiboken/sbkcpptonumpy.h
new file mode 100644
index 000000000..8b9b0cfd2
--- /dev/null
+++ b/sources/shiboken6/libshiboken/sbkcpptonumpy.h
@@ -0,0 +1,41 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef SBKCPPTONUMPY_H
+#define SBKCPPTONUMPY_H
+
+#include <sbkpython.h>
+#include <shibokenmacros.h>
+
+#include <cstdint>
+
+namespace Shiboken::Numpy
+{
+
+/// Create a one-dimensional numpy array of type uint8/NPY_BYTE
+/// \param size Size
+/// \param data Data
+/// \return PyArrayObject
+LIBSHIBOKEN_API PyObject *createByteArray1(Py_ssize_t size, const uint8_t *data);
+
+/// Create a one-dimensional numpy array of type double/NPY_DOUBLE
+/// \param size Size
+/// \param data Data
+/// \return PyArrayObject
+LIBSHIBOKEN_API PyObject *createDoubleArray1(Py_ssize_t size, const double *data);
+
+/// Create a one-dimensional numpy array of type float/NPY_FLOAT
+/// \param size Size
+/// \param data Data
+/// \return PyArrayObject
+LIBSHIBOKEN_API PyObject *createFloatArray1(Py_ssize_t size, const float *data);
+
+/// Create a one-dimensional numpy array of type int/NPY_INT
+/// \param size Size
+/// \param data Data
+/// \return PyArrayObject
+LIBSHIBOKEN_API PyObject *createIntArray1(Py_ssize_t size, const int *data);
+
+} //namespace Shiboken::Numpy
+
+#endif // SBKCPPTONUMPY_H
diff --git a/sources/shiboken6/libshiboken/sbkenum.cpp b/sources/shiboken6/libshiboken/sbkenum.cpp
index a6f65c7ab..d39369979 100644
--- a/sources/shiboken6/libshiboken/sbkenum.cpp
+++ b/sources/shiboken6/libshiboken/sbkenum.cpp
@@ -1,44 +1,7 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include "sbkenum.h"
-#include "sbkenum_p.h"
#include "sbkstring.h"
#include "sbkstaticstrings.h"
#include "sbkstaticstrings_p.h"
@@ -50,11 +13,9 @@
#include <cstring>
#include <vector>
+#include <sstream>
-#define SbkEnumType_Check(o) (Py_TYPE(Py_TYPE(o)) == SbkEnumType_TypeF())
-using enum_func = PyObject *(*)(PyObject *, PyObject *);
-
-static void cleanupEnumTypes();
+using namespace Shiboken;
extern "C"
{
@@ -64,699 +25,428 @@ struct SbkEnumType
PyTypeObject type;
};
-struct SbkEnumObject
-{
- PyObject_HEAD
- long ob_value;
- PyObject *ob_name;
-};
-
-static PyTypeObject *SbkEnum_TypeF(); // forward
-
-static PyObject *SbkEnumObject_repr(PyObject *self)
+// Initialization
+static bool _init_enum()
{
- const SbkEnumObject *enumObj = reinterpret_cast<SbkEnumObject *>(self);
- auto name = Py_TYPE(self)->tp_name;
- if (enumObj->ob_name) {
- return Shiboken::String::fromFormat("%s.%s", name,
- PyBytes_AS_STRING(enumObj->ob_name));
+ AutoDecRef shibo(PyImport_ImportModule("shiboken6.Shiboken"));
+ return !shibo.isNull();
+}
+
+static PyObject *PyEnumModule{};
+static PyObject *PyEnumMeta{};
+static PyObject *PyEnum{};
+static PyObject *PyIntEnum{};
+static PyObject *PyFlag{};
+static PyObject *PyIntFlag{};
+static PyObject *PyFlag_KEEP{};
+
+bool PyEnumMeta_Check(PyObject *ob)
+{
+ return Py_TYPE(ob) == reinterpret_cast<PyTypeObject *>(PyEnumMeta);
+}
+
+PyTypeObject *getPyEnumMeta()
+{
+ if (PyEnumMeta)
+ return reinterpret_cast<PyTypeObject *>(PyEnumMeta);
+
+ static auto *mod = PyImport_ImportModule("enum");
+ if (mod) {
+ PyEnumModule = mod;
+ PyEnumMeta = PyObject_GetAttrString(mod, "EnumMeta");
+ if (PyEnumMeta && PyType_Check(PyEnumMeta))
+ PyEnum = PyObject_GetAttrString(mod, "Enum");
+ if (PyEnum && PyType_Check(PyEnum))
+ PyIntEnum = PyObject_GetAttrString(mod, "IntEnum");
+ if (PyIntEnum && PyType_Check(PyIntEnum))
+ PyFlag = PyObject_GetAttrString(mod, "Flag");
+ if (PyFlag && PyType_Check(PyFlag))
+ PyIntFlag = PyObject_GetAttrString(mod, "IntFlag");
+ if (PyIntFlag && PyType_Check(PyIntFlag)) {
+ // KEEP is defined from Python 3.11 on.
+ PyFlag_KEEP = PyObject_GetAttrString(mod, "KEEP");
+ PyErr_Clear();
+ return reinterpret_cast<PyTypeObject *>(PyEnumMeta);
+ }
}
- return Shiboken::String::fromFormat("%s(%ld)", name, enumObj->ob_value);
-}
-
-static PyObject *SbkEnumObject_name(PyObject *self, void *)
-{
- auto *enum_self = reinterpret_cast<SbkEnumObject *>(self);
-
- if (enum_self->ob_name == nullptr)
- Py_RETURN_NONE;
-
- Py_INCREF(enum_self->ob_name);
- return enum_self->ob_name;
+ Py_FatalError("Python module 'enum' not found");
+ return nullptr;
}
-static PyObject *SbkEnum_tp_new(PyTypeObject *type, PyObject *args, PyObject *)
+void init_enum()
{
- long itemValue = 0;
- if (!PyArg_ParseTuple(args, "|l:__new__", &itemValue))
- return nullptr;
-
- if (type == SbkEnum_TypeF()) {
- PyErr_Format(PyExc_TypeError, "You cannot use %s directly", type->tp_name);
- return nullptr;
+ static bool isInitialized = false;
+ if (isInitialized)
+ return;
+ if (!(isInitialized || _init_enum()))
+ Py_FatalError("could not init enum");
+
+ // PYSIDE-1735: Determine whether we should use the old or the new enum implementation.
+ static PyObject *option = PySys_GetObject("pyside6_option_python_enum");
+ if (!option || !PyLong_Check(option)) {
+ PyErr_Clear();
+ option = PyLong_FromLong(1);
}
-
- SbkEnumObject *self = PyObject_New(SbkEnumObject, type);
- if (!self)
- return nullptr;
- self->ob_value = itemValue;
- Shiboken::AutoDecRef item(Shiboken::Enum::getEnumItemFromValue(type, itemValue));
- self->ob_name = item.object() ? SbkEnumObject_name(item, nullptr) : nullptr;
- return reinterpret_cast<PyObject *>(self);
+ int ignoreOver{};
+ Enum::enumOption = PyLong_AsLongAndOverflow(option, &ignoreOver);
+ getPyEnumMeta();
+ isInitialized = true;
}
-static const char *SbkEnum_SignatureStrings[] = {
- "Shiboken.Enum(self,itemValue:int=0)",
- nullptr}; // Sentinel
-
-void enum_object_dealloc(PyObject *ob)
+// PYSIDE-1735: Helper function supporting QEnum
+int enumIsFlag(PyObject *ob_type)
{
- auto *self = reinterpret_cast<SbkEnumObject *>(ob);
- Py_XDECREF(self->ob_name);
- Sbk_object_dealloc(ob);
-}
-
-static PyObject *_enum_op(enum_func f, PyObject *a, PyObject *b) {
- PyObject *valA = a;
- PyObject *valB = b;
- PyObject *result = nullptr;
- bool enumA = false;
- bool enumB = false;
-
- // We are not allowing floats
- if (!PyFloat_Check(valA) && !PyFloat_Check(valB)) {
- // Check if both variables are SbkEnumObject
- if (SbkEnumType_Check(valA)) {
- valA = PyLong_FromLong(reinterpret_cast<SbkEnumObject *>(valA)->ob_value);
- enumA = true;
- }
- if (SbkEnumType_Check(valB)) {
- valB = PyLong_FromLong(reinterpret_cast<SbkEnumObject *>(valB)->ob_value);
- enumB = true;
- }
- }
+ init_enum();
- // Without an enum we are not supporting the operation
- if (!(enumA || enumB)) {
- Py_INCREF(Py_NotImplemented);
- return Py_NotImplemented;
+ auto *metatype = Py_TYPE(ob_type);
+ if (metatype != reinterpret_cast<PyTypeObject *>(PyEnumMeta))
+ return -1;
+ auto *mro = reinterpret_cast<PyTypeObject *>(ob_type)->tp_mro;
+ const Py_ssize_t n = PyTuple_GET_SIZE(mro);
+ for (Py_ssize_t idx = 0; idx < n; ++idx) {
+ auto *sub_type = reinterpret_cast<PyTypeObject *>(PyTuple_GET_ITEM(mro, idx));
+ if (sub_type == reinterpret_cast<PyTypeObject *>(PyFlag))
+ return 1;
}
-
- result = f(valA, valB);
-
- // Decreasing the reference of the used variables a and b.
- if (enumA)
- Py_DECREF(valA);
- if (enumB)
- Py_DECREF(valB);
- return result;
-}
-
-/* Notes:
- * On Py3k land we use long type when using integer numbers. However, on older
- * versions of Python (version 2) we need to convert it to int type,
- * respectively.
- *
- * Thus calling PyLong_FromLong() will result in calling PyLong_FromLong in
- * Py3k.
- */
-static PyObject *enum_int(PyObject *v)
-{
- return PyLong_FromLong(reinterpret_cast<SbkEnumObject *>(v)->ob_value);
-}
-
-static PyObject *enum_and(PyObject *self, PyObject *b)
-{
- return _enum_op(PyNumber_And, self, b);
-}
-
-static PyObject *enum_or(PyObject *self, PyObject *b)
-{
- return _enum_op(PyNumber_Or, self, b);
-}
-
-static PyObject *enum_xor(PyObject *self, PyObject *b)
-{
- return _enum_op(PyNumber_Xor, self, b);
+ return 0;
}
-static int enum_bool(PyObject *v)
-{
- return (reinterpret_cast<SbkEnumObject *>(v)->ob_value > 0);
-}
-
-static PyObject *enum_add(PyObject *self, PyObject *v)
-{
- return _enum_op(PyNumber_Add, self, v);
-}
-
-static PyObject *enum_subtract(PyObject *self, PyObject *v)
-{
- return _enum_op(PyNumber_Subtract, self, v);
-}
+///////////////////////////////////////////////////////////////////////
+//
+// Support for Missing Values
+// ==========================
+//
+// Qt enums sometimes use undefined values in enums.
+// The enum module handles this by the option "KEEP" for Flag and
+// IntFlag. The handling of missing enum values is still strict.
+//
+// We changed that (also for compatibility with some competitor)
+// and provide a `_missing_` function that creates the missing value.
+//
+// The idea:
+// ---------
+// We cannot modify the already created class.
+// But we can create a one-element class with the new value and
+// pretend that this is the already existing class.
+//
+// We create each constant only once and keep the result in a dict
+// "_sbk_missing_". This is similar to a competitor's "_sip_missing_".
+//
-static PyObject *enum_multiply(PyObject *self, PyObject *v)
+static PyObject *missing_func(PyObject * /* self */ , PyObject *args)
{
- return _enum_op(PyNumber_Multiply, self, v);
-}
+ // In order to relax matters to be more compatible with C++, we need
+ // to create a pseudo-member with that value.
+ static auto *const _sbk_missing = Shiboken::String::createStaticString("_sbk_missing_");
+ static auto *const _name = Shiboken::String::createStaticString("__name__");
+ static auto *const _mro = Shiboken::String::createStaticString("__mro__");
+ static auto *const _class = Shiboken::String::createStaticString("__class__");
-static PyObject *enum_richcompare(PyObject *self, PyObject *other, int op)
-{
- PyObject *valA = self;
- PyObject *valB = other;
- PyObject *result = nullptr;
- bool enumA = false;
- bool enumB = false;
-
- // We are not allowing floats
- if (!PyFloat_Check(valA) && !PyFloat_Check(valB)) {
-
- // Check if both variables are SbkEnumObject
- if (SbkEnumType_Check(valA)) {
- valA = PyLong_FromLong(reinterpret_cast<SbkEnumObject *>(valA)->ob_value);
- enumA = true;
- }
- if (SbkEnumType_Check(valB)) {
- valB = PyLong_FromLong(reinterpret_cast<SbkEnumObject *>(valB)->ob_value);
- enumB =true;
- }
+ PyObject *klass{}, *value{};
+ if (!PyArg_UnpackTuple(args, "missing", 2, 2, &klass, &value))
+ Py_RETURN_NONE;
+ if (!PyLong_Check(value))
+ Py_RETURN_NONE;
+ auto *type = reinterpret_cast<PyTypeObject *>(klass);
+ AutoDecRef tpDict(PepType_GetDict(type));
+ auto *sbk_missing = PyDict_GetItem(tpDict.object(), _sbk_missing);
+ if (!sbk_missing) {
+ sbk_missing = PyDict_New();
+ PyDict_SetItem(tpDict.object(), _sbk_missing, sbk_missing);
}
-
- // Without an enum we are not supporting the operation
- if (!(enumA || enumB)) {
- Py_INCREF(Py_NotImplemented);
- return Py_NotImplemented;
+ // See if the value is already in the dict.
+ AutoDecRef val_str(PyObject_CallMethod(value, "__str__", nullptr));
+ auto *ret = PyDict_GetItem(sbk_missing, val_str);
+ if (ret) {
+ Py_INCREF(ret);
+ return ret;
}
- result = PyObject_RichCompare(valA, valB, op);
-
- // Decreasing the reference of the used variables a and b.
- if (enumA)
- Py_DECREF(valA);
- if (enumB)
- Py_DECREF(valB);
-
- return result;
-}
-
-static Py_hash_t enum_hash(PyObject *pyObj)
-{
- Py_hash_t val = reinterpret_cast<SbkEnumObject *>(pyObj)->ob_value;
- if (val == -1)
- val = -2;
- return val;
-}
-
-static PyGetSetDef SbkEnumGetSetList[] = {
- {const_cast<char *>("name"), SbkEnumObject_name, nullptr, nullptr, nullptr},
- {nullptr, nullptr, nullptr, nullptr, nullptr} // Sentinel
+ // No, we must create a new object and insert it into the dict.
+ AutoDecRef cls_name(PyObject_GetAttr(klass, _name));
+ AutoDecRef mro(PyObject_GetAttr(klass, _mro));
+ auto *baseClass(PyTuple_GetItem(mro, 1));
+ AutoDecRef param(PyDict_New());
+ PyDict_SetItem(param, val_str, value);
+ AutoDecRef fake(PyObject_CallFunctionObjArgs(baseClass, cls_name.object(), param.object(),
+ nullptr));
+ ret = PyObject_GetAttr(fake, val_str);
+ PyDict_SetItem(sbk_missing, val_str, ret);
+ // Now the real fake: Pretend that the type is our original type!
+ PyObject_SetAttr(ret, _class, klass);
+ return ret;
+}
+
+static struct PyMethodDef dummy_methods[] = {
+ {"_missing_", reinterpret_cast<PyCFunction>(missing_func), METH_VARARGS|METH_STATIC, nullptr},
+ {nullptr, nullptr, 0, nullptr}
};
-static void SbkEnumTypeDealloc(PyObject *pyObj);
-static PyObject *SbkEnumTypeTpNew(PyTypeObject *metatype, PyObject *args, PyObject *kwds);
-
-static PyType_Slot SbkEnumType_Type_slots[] = {
- {Py_tp_dealloc, reinterpret_cast<void *>(SbkEnumTypeDealloc)},
+static PyType_Slot dummy_slots[] = {
{Py_tp_base, reinterpret_cast<void *>(&PyType_Type)},
- {Py_tp_alloc, reinterpret_cast<void *>(PyType_GenericAlloc)},
- {Py_tp_new, reinterpret_cast<void *>(SbkEnumTypeTpNew)},
- {Py_tp_free, reinterpret_cast<void *>(PyObject_GC_Del)},
+ {Py_tp_methods, reinterpret_cast<void *>(dummy_methods)},
{0, nullptr}
};
-static PyType_Spec SbkEnumType_Type_spec = {
- "1:Shiboken.EnumMeta",
+
+static PyType_Spec dummy_spec = {
+ "1:builtins.EnumType",
+ 0,
0,
- sizeof(PyMemberDef),
Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE,
- SbkEnumType_Type_slots,
+ dummy_slots,
};
-PyTypeObject *SbkEnumType_TypeF(void)
+static PyObject *create_missing_func(PyObject *klass)
{
- static auto *type = SbkType_FromSpec(&SbkEnumType_Type_spec);
- return type;
-}
-
-void SbkEnumTypeDealloc(PyObject *pyObj)
-{
- auto *enumType = reinterpret_cast<SbkEnumType *>(pyObj);
- auto *setp = PepType_SETP(enumType);
-
- PyObject_GC_UnTrack(pyObj);
-#ifndef Py_LIMITED_API
- Py_TRASHCAN_SAFE_BEGIN(pyObj);
-#endif
- if (setp->converter)
- Shiboken::Conversions::deleteConverter(setp->converter);
- PepType_SETP_delete(enumType);
-#ifndef Py_LIMITED_API
- Py_TRASHCAN_SAFE_END(pyObj);
-#endif
- if (PepRuntime_38_flag) {
- // PYSIDE-939: Handling references correctly.
- // This was not needed before Python 3.8 (Python issue 35810)
- Py_DECREF(Py_TYPE(pyObj));
- }
-}
-
-PyObject *SbkEnumTypeTpNew(PyTypeObject *metatype, PyObject *args, PyObject *kwds)
-{
- auto type_new = reinterpret_cast<newfunc>(PyType_GetSlot(&PyType_Type, Py_tp_new));
- auto newType = reinterpret_cast<SbkEnumType *>(type_new(metatype, args, kwds));
- if (!newType)
- return nullptr;
- return reinterpret_cast<PyObject *>(newType);
+ // When creating the class, memorize it in the missing function by
+ // a partial function argument.
+ static auto *const type = SbkType_FromSpec(&dummy_spec);
+ static auto *const obType = reinterpret_cast<PyObject *>(type);
+ static auto *const _missing = Shiboken::String::createStaticString("_missing_");
+ static auto *const func = PyObject_GetAttr(obType, _missing);
+ static auto *const partial = Pep_GetPartialFunction();
+ return PyObject_CallFunctionObjArgs(partial, func, klass, nullptr);
}
+//
+////////////////////////////////////////////////////////////////////////
} // extern "C"
-///////////////////////////////////////////////////////////////
-//
-// PYSIDE-15: Pickling Support for Qt Enum objects
-// This works very well and fixes the issue.
-//
-extern "C" {
+namespace Shiboken::Enum {
-static PyObject *enum_unpickler = nullptr;
+int enumOption{};
-// Pickling: reduce the Qt Enum object
-static PyObject *enum___reduce__(PyObject *obj)
+bool check(PyObject *pyObj)
{
init_enum();
- return Py_BuildValue("O(Ni)",
- enum_unpickler,
- Py_BuildValue("s", Py_TYPE(obj)->tp_name),
- PyLong_AS_LONG(obj));
-}
-} // extern "C"
-
-namespace Shiboken { namespace Enum {
+ static PyTypeObject *meta = getPyEnumMeta();
+ return Py_TYPE(Py_TYPE(pyObj)) == reinterpret_cast<PyTypeObject *>(meta);
+}
-// Unpickling: rebuild the Qt Enum object
-PyObject *unpickleEnum(PyObject *enum_class_name, PyObject *value)
+PyObject *getEnumItemFromValue(PyTypeObject *enumType, EnumValueType itemValue)
{
- Shiboken::AutoDecRef parts(PyObject_CallMethod(enum_class_name,
- "split", "s", "."));
- if (parts.isNull())
- return nullptr;
- PyObject *top_name = PyList_GetItem(parts, 0); // borrowed ref
- if (top_name == nullptr)
- return nullptr;
- PyObject *module = PyImport_GetModule(top_name);
- if (module == nullptr) {
- PyErr_Format(PyExc_ImportError, "could not import module %.200s",
- Shiboken::String::toCString(top_name));
+ init_enum();
+
+ auto *obEnumType = reinterpret_cast<PyObject *>(enumType);
+ AutoDecRef val2members(PyObject_GetAttrString(obEnumType, "_value2member_map_"));
+ if (val2members.isNull()) {
+ PyErr_Clear();
return nullptr;
}
- Shiboken::AutoDecRef cur_thing(module);
- int len = PyList_Size(parts);
- for (int idx = 1; idx < len; ++idx) {
- PyObject *name = PyList_GetItem(parts, idx); // borrowed ref
- PyObject *thing = PyObject_GetAttr(cur_thing, name);
- if (thing == nullptr) {
- PyErr_Format(PyExc_ImportError, "could not import Qt Enum type %.200s",
- Shiboken::String::toCString(enum_class_name));
- return nullptr;
- }
- cur_thing.reset(thing);
- }
- PyObject *klass = cur_thing;
- return PyObject_CallFunctionObjArgs(klass, value, nullptr);
-}
-
-} // namespace Enum
-} // namespace Shiboken
-
-extern "C" {
-
-// Initialization
-static bool _init_enum()
-{
- Shiboken::AutoDecRef shibo(PyImport_ImportModule("shiboken6.Shiboken"));
- auto mod = shibo.object();
- // publish Shiboken.Enum so that the signature gets initialized
- if (PyObject_SetAttrString(mod, "Enum", reinterpret_cast<PyObject *>(SbkEnum_TypeF())) < 0)
- return false;
- if (InitSignatureStrings(SbkEnum_TypeF(), SbkEnum_SignatureStrings) < 0)
- return false;
- enum_unpickler = PyObject_GetAttrString(mod, "_unpickle_enum");
- if (enum_unpickler == nullptr)
- return false;
- return true;
+ AutoDecRef ob_value(PyLong_FromLongLong(itemValue));
+ auto *result = PyDict_GetItem(val2members, ob_value);
+ Py_XINCREF(result);
+ return result;
}
-void init_enum()
+PyObject *newItem(PyTypeObject *enumType, EnumValueType itemValue,
+ const char *itemName)
{
- static bool is_initialized = false;
- if (!(is_initialized || enum_unpickler || _init_enum()))
- Py_FatalError("could not load enum pickling helper function");
- Py_AtExit(cleanupEnumTypes);
- is_initialized = true;
-}
-
-static PyMethodDef SbkEnumObject_Methods[] = {
- {"__reduce__", reinterpret_cast<PyCFunction>(enum___reduce__),
- METH_NOARGS, nullptr},
- {nullptr, nullptr, 0, nullptr} // Sentinel
-};
-
-} // extern "C"
+ init_enum();
-//
-///////////////////////////////////////////////////////////////
+ auto *obEnumType = reinterpret_cast<PyObject *>(enumType);
+ if (!itemName)
+ return PyObject_CallFunction(obEnumType, "L", itemValue);
-namespace Shiboken {
+ static PyObject *const _member_map_ = String::createStaticString("_member_map_");
+ AutoDecRef tpDict(PepType_GetDict(enumType));
+ auto *member_map = PyDict_GetItem(tpDict.object(), _member_map_);
+ if (!(member_map && PyDict_Check(member_map)))
+ return nullptr;
+ auto *result = PyDict_GetItemString(member_map, itemName);
+ Py_XINCREF(result);
+ return result;
+}
-class DeclaredEnumTypes
+EnumValueType getValue(PyObject *enumItem)
{
-public:
- struct EnumEntry
- {
- char *name; // full name as allocated. type->tp_name might be a substring.
- PyTypeObject *type;
- };
-
- DeclaredEnumTypes(const DeclaredEnumTypes &) = delete;
- DeclaredEnumTypes(DeclaredEnumTypes &&) = delete;
- DeclaredEnumTypes &operator=(const DeclaredEnumTypes &) = delete;
- DeclaredEnumTypes &operator=(DeclaredEnumTypes &&) = delete;
-
- DeclaredEnumTypes();
- ~DeclaredEnumTypes();
- static DeclaredEnumTypes &instance();
- void addEnumType(const EnumEntry &e) { m_enumTypes.push_back(e); }
-
- void cleanup();
-
-private:
- std::vector<EnumEntry> m_enumTypes;
-};
+ init_enum();
-namespace Enum {
+ assert(Enum::check(enumItem));
-bool check(PyObject *pyObj)
-{
- return Py_TYPE(Py_TYPE(pyObj)) == SbkEnumType_TypeF();
+ AutoDecRef pyValue(PyObject_GetAttrString(enumItem, "value"));
+ return PyLong_AsLongLong(pyValue);
}
-PyObject *getEnumItemFromValue(PyTypeObject *enumType, long itemValue)
+void setTypeConverter(PyTypeObject *type, SbkConverter *converter)
{
- PyObject *key, *value;
- Py_ssize_t pos = 0;
- PyObject *values = PyDict_GetItem(enumType->tp_dict, Shiboken::PyName::values());
-
- while (PyDict_Next(values, &pos, &key, &value)) {
- auto *obj = reinterpret_cast<SbkEnumObject *>(value);
- if (obj->ob_value == itemValue) {
- Py_INCREF(value);
- return value;
- }
- }
- return nullptr;
+ auto *enumType = reinterpret_cast<SbkEnumType *>(type);
+ PepType_SETP(enumType)->converter = converter;
}
-static PyTypeObject *createEnum(const char *fullName, const char *cppName,
- PyTypeObject *flagsType)
+static PyTypeObject *createEnumForPython(PyObject *scopeOrModule,
+ const char *fullName,
+ PyObject *pyEnumItems)
{
- PyTypeObject *enumType = newTypeWithName(fullName, cppName, flagsType);
- if (PyType_Ready(enumType) < 0) {
- Py_XDECREF(enumType);
- return nullptr;
- }
- return enumType;
-}
+ const char *colon = strchr(fullName, ':');
+ assert(colon);
+ int package_level = atoi(fullName);
+ const char *mod = colon + 1;
-PyTypeObject *createGlobalEnum(PyObject *module, const char *name, const char *fullName, const char *cppName, PyTypeObject *flagsType)
-{
- PyTypeObject *enumType = createEnum(fullName, cppName, flagsType);
- if (enumType && PyModule_AddObject(module, name, reinterpret_cast<PyObject *>(enumType)) < 0) {
- Py_DECREF(enumType);
- return nullptr;
+ const char *qual = mod;
+ for (int idx = package_level; idx > 0; --idx) {
+ const char *dot = strchr(qual, '.');
+ if (!dot)
+ break;
+ qual = dot + 1;
}
- if (flagsType && PyModule_AddObject(module, PepType_GetNameStr(flagsType),
- reinterpret_cast<PyObject *>(flagsType)) < 0) {
- Py_DECREF(enumType);
- return nullptr;
+ int mlen = qual - mod - 1;
+ AutoDecRef module(Shiboken::String::fromCString(mod, mlen));
+ AutoDecRef qualname(Shiboken::String::fromCString(qual));
+ const char *dot = strrchr(qual, '.');
+ AutoDecRef name(Shiboken::String::fromCString(dot ? dot + 1 : qual));
+
+ static PyObject *enumName = String::createStaticString("IntEnum");
+ if (PyType_Check(scopeOrModule)) {
+ // For global objects, we have no good solution, yet where to put the int info.
+ auto type = reinterpret_cast<PyTypeObject *>(scopeOrModule);
+ auto *sotp = PepType_SOTP(type);
+ if (!sotp->enumFlagsDict)
+ initEnumFlagsDict(type);
+ enumName = PyDict_GetItem(sotp->enumTypeDict, name);
}
- return enumType;
-}
-PyTypeObject *createScopedEnum(PyTypeObject *scope, const char *name, const char *fullName, const char *cppName, PyTypeObject *flagsType)
-{
- PyTypeObject *enumType = createEnum(fullName, cppName, flagsType);
- if (enumType && PyDict_SetItemString(scope->tp_dict, name,
- reinterpret_cast<PyObject *>(enumType)) < 0) {
- Py_DECREF(enumType);
- return nullptr;
- }
- if (flagsType && PyDict_SetItemString(scope->tp_dict,
- PepType_GetNameStr(flagsType),
- reinterpret_cast<PyObject *>(flagsType)) < 0) {
- Py_DECREF(enumType);
- return nullptr;
- }
- return enumType;
-}
+ AutoDecRef PyEnumType(PyObject_GetAttr(PyEnumModule, enumName));
+ assert(PyEnumType.object());
+ bool isFlag = PyObject_IsSubclass(PyEnumType, PyFlag);
-static PyObject *createEnumItem(PyTypeObject *enumType, const char *itemName, long itemValue)
-{
- PyObject *enumItem = newItem(enumType, itemValue, itemName);
- if (PyDict_SetItemString(enumType->tp_dict, itemName, enumItem) < 0) {
- Py_DECREF(enumItem);
- return nullptr;
+ // See if we should use the Int versions of the types, again
+ bool useIntInheritance = Enum::enumOption & Enum::ENOPT_INHERIT_INT;
+ if (useIntInheritance) {
+ auto *surrogate = PyObject_IsSubclass(PyEnumType, PyFlag) ? PyIntFlag : PyIntEnum;
+ Py_INCREF(surrogate);
+ PyEnumType.reset(surrogate);
}
- return enumItem;
-}
-bool createGlobalEnumItem(PyTypeObject *enumType, PyObject *module, const char *itemName, long itemValue)
-{
- PyObject *enumItem = createEnumItem(enumType, itemName, itemValue);
- if (!enumItem)
- return false;
- int ok = PyModule_AddObject(module, itemName, enumItem);
- Py_DECREF(enumItem);
- return ok >= 0;
-}
-
-bool createScopedEnumItem(PyTypeObject *enumType, PyTypeObject *scope,
- const char *itemName, long itemValue)
-{
- PyObject *enumItem = createEnumItem(enumType, itemName, itemValue);
- if (!enumItem)
- return false;
- int ok = PyDict_SetItemString(scope->tp_dict, itemName, enumItem);
- Py_DECREF(enumItem);
- return ok >= 0;
-}
+ // Walk the enumItemStrings and create a Python enum type.
+ auto *pyName = name.object();
+
+ // We now create the new type. Since Python 3.11, we need to pass in
+ // `boundary=KEEP` because the default STRICT crashes on us.
+ // See QDir.Filter.Drives | QDir.Filter.Files
+ AutoDecRef callArgs(Py_BuildValue("(OO)", pyName, pyEnumItems));
+ AutoDecRef callDict(PyDict_New());
+ static PyObject *boundary = String::createStaticString("boundary");
+ if (PyFlag_KEEP)
+ PyDict_SetItem(callDict, boundary, PyFlag_KEEP);
+ auto *obNewType = PyObject_Call(PyEnumType, callArgs, callDict);
+ if (!obNewType || PyObject_SetAttr(scopeOrModule, pyName, obNewType) < 0)
+ return nullptr;
-PyObject *
-newItem(PyTypeObject *enumType, long itemValue, const char *itemName)
-{
- bool newValue = true;
- SbkEnumObject *enumObj;
- if (!itemName) {
- enumObj = reinterpret_cast<SbkEnumObject *>(
- getEnumItemFromValue(enumType, itemValue));
- if (enumObj)
- return reinterpret_cast<PyObject *>(enumObj);
-
- newValue = false;
+ // For compatibility with Qt enums, provide a permissive missing method for (Int)?Enum.
+ if (!isFlag) {
+ bool supportMissing = !(Enum::enumOption & Enum::ENOPT_NO_MISSING);
+ if (supportMissing) {
+ AutoDecRef enum_missing(create_missing_func(obNewType));
+ PyObject_SetAttrString(obNewType, "_missing_", enum_missing);
+ }
}
- enumObj = PyObject_New(SbkEnumObject, enumType);
- if (!enumObj)
- return nullptr;
-
- enumObj->ob_name = itemName ? PyBytes_FromString(itemName) : nullptr;
- enumObj->ob_value = itemValue;
-
- if (newValue) {
- auto dict = enumType->tp_dict; // Note: 'values' is borrowed
- PyObject *values = PyDict_GetItemWithError(dict, Shiboken::PyName::values());
- if (values == nullptr) {
- if (PyErr_Occurred())
- return nullptr;
- Shiboken::AutoDecRef new_values(values = PyDict_New());
- if (values == nullptr)
- return nullptr;
- if (PyDict_SetItem(dict, Shiboken::PyName::values(), values) < 0)
- return nullptr;
+ auto *newType = reinterpret_cast<PyTypeObject *>(obNewType);
+ PyObject_SetAttr(obNewType, PyMagicName::qualname(), qualname);
+ PyObject_SetAttr(obNewType, PyMagicName::module(), module);
+
+ // See if we should re-introduce shortcuts in the enclosing object.
+ const bool useGlobalShortcut = (Enum::enumOption & Enum::ENOPT_GLOBAL_SHORTCUT) != 0;
+ const bool useScopedShortcut = (Enum::enumOption & Enum::ENOPT_SCOPED_SHORTCUT) != 0;
+ if (useGlobalShortcut || useScopedShortcut) {
+ // We have to use the iterator protokol because the values dict is a mappingproxy.
+ AutoDecRef values(PyObject_GetAttr(obNewType, PyMagicName::members()));
+ AutoDecRef mapIterator(PyObject_GetIter(values));
+ AutoDecRef mapKey{};
+ bool isModule = PyModule_Check(scopeOrModule);
+ while ((mapKey.reset(PyIter_Next(mapIterator))), mapKey.object()) {
+ if ((useGlobalShortcut && isModule) || (useScopedShortcut && !isModule)) {
+ AutoDecRef value(PyObject_GetItem(values, mapKey));
+ if (PyObject_SetAttr(scopeOrModule, mapKey, value) < 0)
+ return nullptr;
+ }
}
- PyDict_SetItemString(values, itemName, reinterpret_cast<PyObject *>(enumObj));
}
- return reinterpret_cast<PyObject *>(enumObj);
+ return newType;
}
-} // namespace Shiboken
-} // namespace Enum
-
-static PyType_Slot SbkNewEnum_slots[] = {
- {Py_tp_repr, reinterpret_cast<void *>(SbkEnumObject_repr)},
- {Py_tp_str, reinterpret_cast<void *>(SbkEnumObject_repr)},
- {Py_tp_getset, reinterpret_cast<void *>(SbkEnumGetSetList)},
- {Py_tp_methods, reinterpret_cast<void *>(SbkEnumObject_Methods)},
- {Py_tp_new, reinterpret_cast<void *>(SbkEnum_tp_new)},
- {Py_nb_add, reinterpret_cast<void *>(enum_add)},
- {Py_nb_subtract, reinterpret_cast<void *>(enum_subtract)},
- {Py_nb_multiply, reinterpret_cast<void *>(enum_multiply)},
- {Py_nb_positive, reinterpret_cast<void *>(enum_int)},
- {Py_nb_bool, reinterpret_cast<void *>(enum_bool)},
- {Py_nb_and, reinterpret_cast<void *>(enum_and)},
- {Py_nb_xor, reinterpret_cast<void *>(enum_xor)},
- {Py_nb_or, reinterpret_cast<void *>(enum_or)},
- {Py_nb_int, reinterpret_cast<void *>(enum_int)},
- {Py_nb_index, reinterpret_cast<void *>(enum_int)},
- {Py_tp_richcompare, reinterpret_cast<void *>(enum_richcompare)},
- {Py_tp_hash, reinterpret_cast<void *>(enum_hash)},
- {Py_tp_dealloc, reinterpret_cast<void *>(enum_object_dealloc)},
- {0, nullptr}
-};
-static PyType_Spec SbkNewEnum_spec = {
- "1:Shiboken.Enum",
- sizeof(SbkEnumObject),
- 0,
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE,
- SbkNewEnum_slots,
-};
-
-static PyTypeObject *SbkEnum_TypeF()
+template <typename IntT>
+static PyObject *toPyObject(IntT v)
{
- static auto type = SbkType_FromSpec(&SbkNewEnum_spec);
- return type;
+ if constexpr (sizeof(IntT) == 8) {
+ if constexpr (std::is_unsigned_v<IntT>)
+ return PyLong_FromUnsignedLongLong(v);
+ return PyLong_FromLongLong(v);
+ }
+ if constexpr (std::is_unsigned_v<IntT>)
+ return PyLong_FromUnsignedLong(v);
+ return PyLong_FromLong(v);
+}
+
+template <typename IntT>
+static PyTypeObject *createPythonEnumHelper(PyObject *module,
+ const char *fullName, const char *enumItemStrings[], const IntT enumValues[])
+{
+ AutoDecRef args(PyList_New(0));
+ auto *pyEnumItems = args.object();
+ for (size_t idx = 0; enumItemStrings[idx] != nullptr; ++idx) {
+ const char *kv = enumItemStrings[idx];
+ auto *key = PyUnicode_FromString(kv);
+ auto *value = toPyObject(enumValues[idx]);
+ auto *key_value = PyTuple_New(2);
+ PyTuple_SET_ITEM(key_value, 0, key);
+ PyTuple_SET_ITEM(key_value, 1, value);
+ PyList_Append(pyEnumItems, key_value);
+ }
+ return createEnumForPython(module, fullName, pyEnumItems);
}
-namespace Shiboken { namespace Enum {
+// Now we have to concretize these functions explicitly,
+// otherwise templates will not work across modules.
-static void
-copyNumberMethods(PyTypeObject *flagsType,
- PyType_Slot number_slots[],
- int *pidx)
+PyTypeObject *createPythonEnum(PyObject *module,
+ const char *fullName, const char *enumItemStrings[], const int64_t enumValues[])
{
- int idx = *pidx;
-#define PUT_SLOT(name) \
- number_slots[idx].slot = (name); \
- number_slots[idx].pfunc = PyType_GetSlot(flagsType, (name)); \
- ++idx;
-
- PUT_SLOT(Py_nb_absolute);
- PUT_SLOT(Py_nb_add);
- PUT_SLOT(Py_nb_and);
- PUT_SLOT(Py_nb_bool);
- PUT_SLOT(Py_nb_divmod);
- PUT_SLOT(Py_nb_float);
- PUT_SLOT(Py_nb_floor_divide);
- PUT_SLOT(Py_nb_index);
- PUT_SLOT(Py_nb_inplace_add);
- PUT_SLOT(Py_nb_inplace_and);
- PUT_SLOT(Py_nb_inplace_floor_divide);
- PUT_SLOT(Py_nb_inplace_lshift);
- PUT_SLOT(Py_nb_inplace_multiply);
- PUT_SLOT(Py_nb_inplace_or);
- PUT_SLOT(Py_nb_inplace_power);
- PUT_SLOT(Py_nb_inplace_remainder);
- PUT_SLOT(Py_nb_inplace_rshift);
- PUT_SLOT(Py_nb_inplace_subtract);
- PUT_SLOT(Py_nb_inplace_true_divide);
- PUT_SLOT(Py_nb_inplace_xor);
- PUT_SLOT(Py_nb_int);
- PUT_SLOT(Py_nb_invert);
- PUT_SLOT(Py_nb_lshift);
- PUT_SLOT(Py_nb_multiply);
- PUT_SLOT(Py_nb_negative);
- PUT_SLOT(Py_nb_or);
- PUT_SLOT(Py_nb_positive);
- PUT_SLOT(Py_nb_power);
- PUT_SLOT(Py_nb_remainder);
- PUT_SLOT(Py_nb_rshift);
- PUT_SLOT(Py_nb_subtract);
- PUT_SLOT(Py_nb_true_divide);
- PUT_SLOT(Py_nb_xor);
-#undef PUT_SLOT
- *pidx = idx;
+ return createPythonEnumHelper(module, fullName, enumItemStrings, enumValues);
}
-PyTypeObject *
-newTypeWithName(const char *name,
- const char *cppName,
- PyTypeObject *numbers_fromFlag)
+PyTypeObject *createPythonEnum(PyObject *module,
+ const char *fullName, const char *enumItemStrings[], const uint64_t enumValues[])
{
- // Careful: SbkType_FromSpec does not allocate the string.
- PyType_Slot newslots[99] = {}; // enough but not too big for the stack
- PyType_Spec newspec;
- DeclaredEnumTypes::EnumEntry entry{strdup(name), nullptr};
- newspec.name = entry.name; // Note that SbkType_FromSpec might use a substring.
- newspec.basicsize = SbkNewEnum_spec.basicsize;
- newspec.itemsize = SbkNewEnum_spec.itemsize;
- newspec.flags = SbkNewEnum_spec.flags;
- // we must append all the number methods, so rebuild everything:
- int idx = 0;
- while (SbkNewEnum_slots[idx].slot) {
- newslots[idx].slot = SbkNewEnum_slots[idx].slot;
- newslots[idx].pfunc = SbkNewEnum_slots[idx].pfunc;
- ++idx;
- }
- if (numbers_fromFlag)
- copyNumberMethods(numbers_fromFlag, newslots, &idx);
- newspec.slots = newslots;
- Shiboken::AutoDecRef bases(PyTuple_New(1));
- static auto basetype = reinterpret_cast<PyObject *>(SbkEnum_TypeF());
- Py_INCREF(basetype);
- PyTuple_SetItem(bases, 0, basetype);
- auto *type = SbkType_FromSpecBasesMeta(&newspec, bases, SbkEnumType_TypeF());
- entry.type = type;
-
- auto *enumType = reinterpret_cast<SbkEnumType *>(type);
- auto *setp = PepType_SETP(enumType);
- setp->cppName = cppName;
- DeclaredEnumTypes::instance().addEnumType(entry);
- return entry.type;
+ return createPythonEnumHelper(module, fullName, enumItemStrings, enumValues);
}
-const char *getCppName(PyTypeObject *enumType)
+PyTypeObject *createPythonEnum(PyObject *module,
+ const char *fullName, const char *enumItemStrings[], const int32_t enumValues[])
{
- assert(Py_TYPE(enumType) == SbkEnumType_TypeF());
- auto *type = reinterpret_cast<SbkEnumType *>(enumType);
- auto *setp = PepType_SETP(type);
- return setp->cppName;
+ return createPythonEnumHelper(module, fullName, enumItemStrings, enumValues);
}
-long int getValue(PyObject *enumItem)
+PyTypeObject *createPythonEnum(PyObject *module,
+ const char *fullName, const char *enumItemStrings[], const uint32_t enumValues[])
{
- assert(Shiboken::Enum::check(enumItem));
- return reinterpret_cast<SbkEnumObject *>(enumItem)->ob_value;
-}
-
-void setTypeConverter(PyTypeObject *type, SbkConverter *converter, bool isFlag)
-{
- if (isFlag) {
- auto *flagsType = reinterpret_cast<PySideQFlagsType *>(type);
- PepType_PFTP(flagsType)->converter = converter;
- }
- else {
- auto *enumType = reinterpret_cast<SbkEnumType *>(type);
- PepType_SETP(enumType)->converter = converter;
- }
+ return createPythonEnumHelper(module, fullName, enumItemStrings, enumValues);
}
-} // namespace Enum
-
-DeclaredEnumTypes &DeclaredEnumTypes::instance()
+PyTypeObject *createPythonEnum(PyObject *module,
+ const char *fullName, const char *enumItemStrings[], const int16_t enumValues[])
{
- static DeclaredEnumTypes me;
- return me;
+ return createPythonEnumHelper(module, fullName, enumItemStrings, enumValues);
}
-DeclaredEnumTypes::DeclaredEnumTypes() = default;
-
-DeclaredEnumTypes::~DeclaredEnumTypes()
+PyTypeObject *createPythonEnum(PyObject *module,
+ const char *fullName, const char *enumItemStrings[], const uint16_t enumValues[])
{
- cleanup();
+ return createPythonEnumHelper(module, fullName, enumItemStrings, enumValues);
}
-void DeclaredEnumTypes::cleanup()
+PyTypeObject *createPythonEnum(PyObject *module,
+ const char *fullName, const char *enumItemStrings[], const int8_t enumValues[])
{
- for (const auto &e : m_enumTypes) {
- std::free(e.name);
- Py_DECREF(e.type);
- }
- m_enumTypes.clear();
+ return createPythonEnumHelper(module, fullName, enumItemStrings, enumValues);
}
-} // namespace Shiboken
-
-static void cleanupEnumTypes()
+PyTypeObject *createPythonEnum(PyObject *module,
+ const char *fullName, const char *enumItemStrings[], const uint8_t enumValues[])
{
- Shiboken::DeclaredEnumTypes::instance().cleanup();
+ return createPythonEnumHelper(module, fullName, enumItemStrings, enumValues);
}
+} // namespace Shiboken::Enum
diff --git a/sources/shiboken6/libshiboken/sbkenum.h b/sources/shiboken6/libshiboken/sbkenum.h
index 4ec79b923..e19ca4b4c 100644
--- a/sources/shiboken6/libshiboken/sbkenum.h
+++ b/sources/shiboken6/libshiboken/sbkenum.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef SBKENUM_H
#define SBKENUM_H
@@ -46,77 +10,93 @@
extern "C"
{
+LIBSHIBOKEN_API bool PyEnumMeta_Check(PyObject *ob);
+
/// exposed for the signature module
LIBSHIBOKEN_API void init_enum();
-extern LIBSHIBOKEN_API PyTypeObject *SbkEnumType_TypeF(void);
struct SbkConverter;
struct SbkEnumType;
-struct SbkEnumTypePrivate;
-
-} // extern "C"
-namespace Shiboken
+struct SbkEnumTypePrivate
{
+ SbkConverter *converter;
+};
+
+/// PYSIDE-1735: Pass on the Python enum/flag information.
+LIBSHIBOKEN_API void initEnumFlagsDict(PyTypeObject *type);
+
+/// PYSIDE-1735: Make sure that we can import the Python enum implementation.
+LIBSHIBOKEN_API PyTypeObject *getPyEnumMeta();
+/// PYSIDE-1735: Helper function supporting QEnum
+LIBSHIBOKEN_API int enumIsFlag(PyObject *ob_enum);
-inline bool isShibokenEnum(PyObject *pyObj)
-{
- return Py_TYPE(Py_TYPE(pyObj)) == SbkEnumType_TypeF();
}
-namespace Enum
+namespace Shiboken::Enum {
+
+enum : int {
+ ENOPT_OLD_ENUM = 0x00, // PySide 6.6: no longer supported
+ ENOPT_NEW_ENUM = 0x01,
+ ENOPT_INHERIT_INT = 0x02,
+ ENOPT_GLOBAL_SHORTCUT = 0x04,
+ ENOPT_SCOPED_SHORTCUT = 0x08,
+ ENOPT_NO_FAKESHORTCUT = 0x10,
+ ENOPT_NO_FAKERENAMES = 0x20,
+ ENOPT_NO_ZERODEFAULT = 0x40,
+ ENOPT_NO_MISSING = 0x80,
+};
+
+LIBSHIBOKEN_API extern int enumOption;
+
+using EnumValueType = long long;
+
+LIBSHIBOKEN_API bool check(PyObject *obj);
+
+LIBSHIBOKEN_API PyObject *newItem(PyTypeObject *enumType, EnumValueType itemValue,
+ const char *itemName = nullptr);
+
+LIBSHIBOKEN_API EnumValueType getValue(PyObject *enumItem);
+LIBSHIBOKEN_API PyObject *getEnumItemFromValue(PyTypeObject *enumType,
+ EnumValueType itemValue);
+
+/// Sets the enum/flag's type converter.
+LIBSHIBOKEN_API void setTypeConverter(PyTypeObject *type, SbkConverter *converter);
+
+/// Creating Python enums for different types.
+LIBSHIBOKEN_API PyTypeObject *createPythonEnum(PyObject *module,
+ const char *fullName, const char *enumItemStrings[], const int64_t enumValues[]);
+
+LIBSHIBOKEN_API PyTypeObject *createPythonEnum(PyObject *module,
+ const char *fullName, const char *enumItemStrings[], const uint64_t enumValues[]);
+
+LIBSHIBOKEN_API PyTypeObject *createPythonEnum(PyObject *module,
+ const char *fullName, const char *enumItemStrings[], const int32_t enumValues[]);
+
+LIBSHIBOKEN_API PyTypeObject *createPythonEnum(PyObject *module,
+ const char *fullName, const char *enumItemStrings[], const uint32_t enumValues[]);
+
+LIBSHIBOKEN_API PyTypeObject *createPythonEnum(PyObject *module,
+ const char *fullName, const char *enumItemStrings[], const int16_t enumValues[]);
+
+LIBSHIBOKEN_API PyTypeObject *createPythonEnum(PyObject *module,
+ const char *fullName, const char *enumItemStrings[], const uint16_t enumValues[]);
+
+LIBSHIBOKEN_API PyTypeObject *createPythonEnum(PyObject *module,
+ const char *fullName, const char *enumItemStrings[], const int8_t enumValues[]);
+
+LIBSHIBOKEN_API PyTypeObject *createPythonEnum(PyObject *module,
+ const char *fullName, const char *enumItemStrings[], const uint8_t enumValues[]);
+
+/// This template removes duplication by inlining necessary type casts.
+template <typename IntT>
+inline PyTypeObject *createPythonEnum(PyTypeObject *scope,
+ const char *fullName, const char *enumItemStrings[], const IntT enumValues[])
{
- LIBSHIBOKEN_API bool check(PyObject *obj);
- /**
- * Creates a new enum type (and its flags type, if any is given)
- * and registers it to Python and adds it to \p module.
- * \param module Module to where the new enum type will be added.
- * \param name Name of the enum.
- * \param fullName Name of the enum that includes all scope information (e.g.: "module.Enum").
- * \param cppName Full qualified C++ name of the enum.
- * \param flagsType Optional Python type for the flags associated with the enum.
- * \return The new enum type or NULL if it fails.
- */
- LIBSHIBOKEN_API PyTypeObject *createGlobalEnum(PyObject *module,
- const char *name,
- const char *fullName,
- const char *cppName,
- PyTypeObject *flagsType = nullptr);
- /// This function does the same as createGlobalEnum, but adds the enum to a Shiboken type or namespace.
- LIBSHIBOKEN_API PyTypeObject *createScopedEnum(PyTypeObject *scope,
- const char *name,
- const char *fullName,
- const char *cppName,
- PyTypeObject *flagsType = nullptr);
-
- /**
- * Creates a new enum item for a given enum type and adds it to \p module.
- * \param enumType Enum type to where the new enum item will be added.
- * \param module Module to where the enum type of the new enum item belongs.
- * \param itemName Name of the enum item.
- * \param itemValue Numerical value of the enum item.
- * \return true if everything goes fine, false if it fails.
- */
- LIBSHIBOKEN_API bool createGlobalEnumItem(PyTypeObject *enumType, PyObject *module, const char *itemName, long itemValue);
- /// This function does the same as createGlobalEnumItem, but adds the enum to a Shiboken type or namespace.
- LIBSHIBOKEN_API bool createScopedEnumItem(PyTypeObject *enumType, PyTypeObject *scope,
- const char *itemName, long itemValue);
-
- LIBSHIBOKEN_API PyObject *newItem(PyTypeObject *enumType, long itemValue, const char *itemName = nullptr);
-
- LIBSHIBOKEN_API PyTypeObject *newTypeWithName(const char *name, const char *cppName,
- PyTypeObject *numbers_fromFlag=nullptr);
- LIBSHIBOKEN_API const char *getCppName(PyTypeObject *type);
-
- LIBSHIBOKEN_API long getValue(PyObject *enumItem);
- LIBSHIBOKEN_API PyObject *getEnumItemFromValue(PyTypeObject *enumType, long itemValue);
-
- /// Sets the enum/flag's type converter.
- LIBSHIBOKEN_API void setTypeConverter(PyTypeObject *type, SbkConverter *converter, bool isFlag);
-
- LIBSHIBOKEN_API PyObject *unpickleEnum(PyObject *, PyObject *);
+ auto *obScope = reinterpret_cast<PyObject *>(scope);
+ return createPythonEnum(obScope, fullName, enumItemStrings, enumValues);
}
-} // namespace Shiboken
+} // namespace Shiboken::Enum
#endif // SKB_PYENUM_H
diff --git a/sources/shiboken6/libshiboken/sbkenum_p.h b/sources/shiboken6/libshiboken/sbkenum_p.h
deleted file mode 100644
index 895c1ddcb..000000000
--- a/sources/shiboken6/libshiboken/sbkenum_p.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef SBKENUM_P_H
-#define SBKENUM_P_H
-
-#include "sbkpython.h"
-#include "shibokenmacros.h"
-
-struct SbkEnumTypePrivate
-{
- SbkConverter *converter;
- const char *cppName;
-};
-
-#endif // SKB_PYENUM_P_H
diff --git a/sources/shiboken6/libshiboken/sbkerrors.cpp b/sources/shiboken6/libshiboken/sbkerrors.cpp
new file mode 100644
index 000000000..1832624d5
--- /dev/null
+++ b/sources/shiboken6/libshiboken/sbkerrors.cpp
@@ -0,0 +1,170 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#include "sbkerrors.h"
+#include "sbkstring.h"
+#include "helper.h"
+#include "gilstate.h"
+
+namespace Shiboken
+{
+
+// PYSIDE-2335: Track down if we can reach a Python error handler.
+// _pythonContextStack has always the current state of handler status
+// in its lowest bit.
+// Blocking calls like exec or run need to use `setBlocking`.
+static thread_local std::size_t _pythonContextStack{};
+
+PythonContextMarker::PythonContextMarker()
+{
+ // Shift history up and set lowest bit.
+ _pythonContextStack = (_pythonContextStack * 2) + 1;
+}
+
+PythonContextMarker::~PythonContextMarker()
+{
+ // Shift history down.
+ _pythonContextStack /= 2;
+}
+
+void PythonContextMarker::setBlocking()
+{
+ // Clear lowest bit.
+ _pythonContextStack = _pythonContextStack / 2 * 2;
+}
+
+namespace Errors
+{
+
+void setInstantiateAbstractClass(const char *name)
+{
+ PyErr_Format(PyExc_NotImplementedError,
+ "'%s' represents a C++ abstract class and cannot be instantiated", name);
+}
+
+void setInstantiateAbstractClassDisabledWrapper(const char *name)
+{
+ PyErr_Format(PyExc_NotImplementedError,
+ "Abstract class '%s' cannot be instantiated since the wrapper has been disabled.",
+ name);
+}
+
+void setInvalidTypeDeletion(const char *name)
+{
+ PyErr_Format(PyExc_TypeError, "'%s' may not be deleted", name);
+}
+
+void setOperatorNotImplemented()
+{
+ PyErr_SetString(PyExc_NotImplementedError, "operator not implemented.");
+}
+
+void setPureVirtualMethodError(const char *name)
+{
+ PyErr_Format(PyExc_NotImplementedError, "pure virtual method '%s' not implemented.", name);
+}
+
+void setPrivateMethod(const char *name)
+{
+ PyErr_Format(PyExc_TypeError, "%s is a private method.\", ", name);
+}
+
+void setReverseOperatorNotImplemented()
+{
+ PyErr_SetString(PyExc_NotImplementedError, "reverse operator not implemented.");
+}
+
+void setSequenceTypeError(const char *expectedType)
+{
+ PyErr_Format(PyExc_TypeError,
+ "attributed value with wrong type, '%s' or other convertible type expected",
+ expectedType);
+}
+
+void setSetterTypeError(const char *name, const char *expectedType)
+{
+ PyErr_Format(PyExc_TypeError,
+ "wrong type attributed to '%s', '%s' or convertible type expected",
+ name, expectedType);
+}
+
+void setWrongContainerType()
+{
+ PyErr_SetString(PyExc_TypeError, "Wrong type passed to container conversion.");
+}
+
+struct ErrorStore {
+ PyObject *type;
+ PyObject *exc;
+ PyObject *traceback;
+};
+
+static thread_local ErrorStore savedError{};
+
+void storeErrorOrPrint()
+{
+ // This error happened in a function with no way to return an error state.
+ // Therefore, we handle the error when we are error checking, anyway.
+ // But we do that only when we know that an error handler can pick it up.
+ if (_pythonContextStack & 1)
+ PyErr_Fetch(&savedError.type, &savedError.exc, &savedError.traceback);
+ else
+ PyErr_Print();
+}
+
+PyObject *occurred()
+{
+ if (savedError.type) {
+ PyErr_Restore(savedError.type, savedError.exc, savedError.traceback);
+ savedError.type = nullptr;
+ }
+ return PyErr_Occurred();
+}
+
+} // namespace Errors
+
+namespace Warnings
+{
+void warnInvalidReturnValue(const char *className, const char *functionName,
+ const char *expectedType, const char *actualType)
+{
+ Shiboken::warning(PyExc_RuntimeWarning, 2,
+ "Invalid return value in function '%s.%s', expected %s, got %s.",
+ className, functionName, expectedType, actualType);
+}
+
+void warnDeprecated(const char *functionName)
+{
+ Shiboken::warning(PyExc_DeprecationWarning, 1,
+ "Function: '%s' is marked as deprecated, please check "
+ "the documentation for more information.",
+ functionName);
+}
+
+void warnDeprecated(const char *className, const char *functionName)
+{
+ Shiboken::warning(PyExc_DeprecationWarning, 1,
+ "Function: '%s.%s' is marked as deprecated, please check "
+ "the documentation for more information.",
+ className, functionName);
+}
+
+void warnDeprecatedEnum(const char *enumName)
+{
+ Shiboken::warning(PyExc_DeprecationWarning, 1,
+ "Enum: '%s' is marked as deprecated, please check "
+ "the documentation for more information.",
+ enumName);
+}
+
+void warnDeprecatedEnumValue(const char *enumName, const char *valueName)
+{
+ Shiboken::warning(PyExc_DeprecationWarning, 1,
+ "Enum value '%s.%s' is marked as deprecated, please check "
+ "the documentation for more information.",
+ enumName, valueName);
+
+}
+
+} // namespace Warnings
+} // namespace Shiboken
diff --git a/sources/shiboken6/libshiboken/sbkerrors.h b/sources/shiboken6/libshiboken/sbkerrors.h
new file mode 100644
index 000000000..6ff85f8e1
--- /dev/null
+++ b/sources/shiboken6/libshiboken/sbkerrors.h
@@ -0,0 +1,73 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef SBKERRORS_H
+#define SBKERRORS_H
+
+#include "sbkpython.h"
+#include "shibokenmacros.h"
+
+/// Craving for C++20 and std::source_location::current()
+#if defined(_MSC_VER)
+# define SBK_FUNC_INFO __FUNCSIG__
+#elif defined(__GNUC__)
+# define SBK_FUNC_INFO __PRETTY_FUNCTION__
+#else
+# define SBK_FUNC_INFO __FUNCTION__
+#endif
+
+namespace Shiboken
+{
+
+struct LIBSHIBOKEN_API PythonContextMarker
+{
+public:
+ PythonContextMarker(const PythonContextMarker &) = delete;
+ PythonContextMarker(PythonContextMarker &&) = delete;
+ PythonContextMarker &operator=(const PythonContextMarker &) = delete;
+ PythonContextMarker &operator=(PythonContextMarker &&) = delete;
+
+ explicit PythonContextMarker();
+ ~PythonContextMarker();
+ void setBlocking();
+};
+
+namespace Errors
+{
+
+LIBSHIBOKEN_API void setInstantiateAbstractClass(const char *name);
+LIBSHIBOKEN_API void setInstantiateAbstractClassDisabledWrapper(const char *name);
+LIBSHIBOKEN_API void setInvalidTypeDeletion(const char *name);
+LIBSHIBOKEN_API void setOperatorNotImplemented();
+LIBSHIBOKEN_API void setPureVirtualMethodError(const char *name);
+LIBSHIBOKEN_API void setPrivateMethod(const char *name);
+LIBSHIBOKEN_API void setReverseOperatorNotImplemented();
+LIBSHIBOKEN_API void setSequenceTypeError(const char *expectedType);
+LIBSHIBOKEN_API void setSetterTypeError(const char *name, const char *expectedType);
+LIBSHIBOKEN_API void setWrongContainerType();
+
+/// Report an error ASAP: Instead of printing, store for later re-raise.
+/// This replaces `PyErr_Print`, which cannot report errors as exception.
+/// To be used in contexts where raising errors is impossible.
+LIBSHIBOKEN_API void storeErrorOrPrint();
+/// Handle an error as in PyErr_Occurred(), but also check for errors which
+/// were captured by `storeErrorOrPrint`.
+/// To be used in normal error checks.
+LIBSHIBOKEN_API PyObject *occurred();
+
+} // namespace Errors
+
+namespace Warnings
+{
+/// Warn about invalid return value of overwritten virtual
+LIBSHIBOKEN_API void warnInvalidReturnValue(const char *className, const char *functionName,
+ const char *expectedType, const char *actualType);
+LIBSHIBOKEN_API void warnDeprecated(const char *functionName);
+LIBSHIBOKEN_API void warnDeprecated(const char *className, const char *functionName);
+LIBSHIBOKEN_API void warnDeprecatedEnum(const char *enumName);
+LIBSHIBOKEN_API void warnDeprecatedEnumValue(const char *enumName, const char *valueName);
+} // namespace Warnings
+
+} // namespace Shiboken
+
+#endif // SBKERRORS_H
diff --git a/sources/shiboken6/libshiboken/sbkfeature_base.cpp b/sources/shiboken6/libshiboken/sbkfeature_base.cpp
index 6b2037ecd..f31b8f4f7 100644
--- a/sources/shiboken6/libshiboken/sbkfeature_base.cpp
+++ b/sources/shiboken6/libshiboken/sbkfeature_base.cpp
@@ -1,50 +1,19 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include "basewrapper.h"
#include "basewrapper_p.h"
#include "autodecref.h"
+#include "pep384ext.h"
+#include "sbkenum.h"
#include "sbkstring.h"
#include "sbkstaticstrings.h"
#include "sbkstaticstrings_p.h"
#include "signature.h"
#include "sbkfeature_base.h"
+#include "gilstate.h"
+
+#include <cctype>
using namespace Shiboken;
@@ -53,64 +22,293 @@ extern "C"
////////////////////////////////////////////////////////////////////////////
//
-// getFeatureSelectId
+// Minimal __feature__ support in Shiboken
//
-// This function is needed here already for signature handling.
-// Maybe the same function from feature_select.cpp will be replaced.
+int currentSelectId(PyTypeObject *type)
+{
+ AutoDecRef tpDict(PepType_GetDict(type));
+ PyObject *PyId = PyObject_GetAttr(tpDict.object(), PyName::select_id());
+ if (PyId == nullptr) {
+ PyErr_Clear();
+ return 0x00;
+ }
+ int sel = PyLong_AsLong(PyId);
+ Py_DECREF(PyId);
+ return sel;
+}
+
+static SelectableFeatureHook SelectFeatureSet = nullptr;
+static SelectableFeatureCallback featureCb = nullptr;
+
+void setSelectableFeatureCallback(SelectableFeatureCallback func)
+{
+ featureCb = func;
+}
+
+SelectableFeatureHook initSelectableFeature(SelectableFeatureHook func)
+{
+ auto ret = SelectFeatureSet;
+ SelectFeatureSet = func;
+ if (featureCb)
+ featureCb(SelectFeatureSet != nullptr);
+ return ret;
+}
//
+////////////////////////////////////////////////////////////////////////////
+
+// This useful function is for debugging
+void disassembleFrame(const char *marker)
+{
+ Shiboken::GilState gil;
+ PyObject *error_type, *error_value, *error_traceback;
+ PyErr_Fetch(&error_type, &error_value, &error_traceback);
+ static PyObject *dismodule = PyImport_ImportModule("dis");
+ static PyObject *disco = PyObject_GetAttrString(dismodule, "disco");
+ static PyObject *const _f_lasti = Shiboken::String::createStaticString("f_lasti");
+ static PyObject *const _f_lineno = Shiboken::String::createStaticString("f_lineno");
+ static PyObject *const _f_code = Shiboken::String::createStaticString("f_code");
+ static PyObject *const _co_filename = Shiboken::String::createStaticString("co_filename");
+ AutoDecRef ignore{};
+ auto *frame = reinterpret_cast<PyObject *>(PyEval_GetFrame());
+ if (frame == nullptr) {
+ fprintf(stdout, "\n%s BEGIN no frame END\n\n", marker);
+ } else {
+ AutoDecRef f_lasti(PyObject_GetAttr(frame, _f_lasti));
+ AutoDecRef f_lineno(PyObject_GetAttr(frame, _f_lineno));
+ AutoDecRef f_code(PyObject_GetAttr(frame, _f_code));
+ AutoDecRef co_filename(PyObject_GetAttr(f_code, _co_filename));
+ long line = PyLong_AsLong(f_lineno);
+ const char *fname = String::toCString(co_filename);
+ fprintf(stdout, "\n%s BEGIN line=%ld %s\n", marker, line, fname);
+ ignore.reset(PyObject_CallFunctionObjArgs(disco, f_code.object(), f_lasti.object(), nullptr));
+ fprintf(stdout, "%s END line=%ld %s\n\n", marker, line, fname);
+ }
+#if PY_VERSION_HEX >= 0x030C0000 && !Py_LIMITED_API
+ if (error_type)
+ PyErr_DisplayException(error_value);
+#endif
+ static PyObject *stdout_file = PySys_GetObject("stdout");
+ ignore.reset(PyObject_CallMethod(stdout_file, "flush", nullptr));
+ PyErr_Restore(error_type, error_value, error_traceback);
+}
-static PyObject *cached_globals = nullptr;
-static PyObject *last_select_id = nullptr;
+// python 3.12
+static int const CALL = 171;
+// Python 3.11
+static int const PRECALL = 166;
+// we have "big instructions" with gaps after them
+static int const LOAD_METHOD_GAP_311 = 10 * 2;
+static int const LOAD_ATTR_GAP_311 = 4 * 2;
+static int const LOAD_ATTR_GAP = 9 * 2;
+// Python 3.7 - 3.10
+static int const LOAD_METHOD = 160;
+static int const CALL_METHOD = 161;
+// Python 3.6
+static int const CALL_FUNCTION = 131;
+static int const LOAD_ATTR = 106;
+// NoGil (how long will this exist in this form?)
+static int const LOAD_METHOD_NOGIL = 55;
+static int const CALL_METHOD_NOGIL = 72;
-PyObject *getFeatureSelectId()
+static bool currentOpcode_Is_CallMethNoArgs()
{
- static PyObject *undef = PyLong_FromLong(-1);
- static PyObject *feature_dict = GetFeatureDict();
- // these things are all borrowed
- PyObject *globals = PyEval_GetGlobals();
- if (globals == nullptr
- || globals == cached_globals)
- return last_select_id;
+ // PYSIDE-2221: Special case for the NoGil version:
+ // Find out if we have such a version.
+ // We could also ask the variable `Py_NOGIL`.
+ static PyObject *flags = PySys_GetObject("flags");
+ static bool isNoGil = PyObject_HasAttrString(flags, "nogil");
+ // We look into the currently active operation if we are going to call
+ // a method with zero arguments.
+ auto *frame = PyEval_GetFrame();
+#if !Py_LIMITED_API && !defined(PYPY_VERSION)
+ auto *f_code = PyFrame_GetCode(frame);
+#else
+ static PyObject *const _f_code = Shiboken::String::createStaticString("f_code");
+ AutoDecRef dec_f_code(PyObject_GetAttr(reinterpret_cast<PyObject *>(frame), _f_code));
+ auto *f_code = dec_f_code.object();
+#endif
+#if PY_VERSION_HEX >= 0x030B0000 && !Py_LIMITED_API
+ AutoDecRef dec_co_code(PyCode_GetCode(f_code));
+ Py_ssize_t f_lasti = PyFrame_GetLasti(frame);
+#else
+ static PyObject *const _f_lasti = Shiboken::String::createStaticString("f_lasti");
+ static PyObject *const _co_code = Shiboken::String::createStaticString("co_code");
+ AutoDecRef dec_co_code(PyObject_GetAttr(reinterpret_cast<PyObject *>(f_code), _co_code));
+ AutoDecRef dec_f_lasti(PyObject_GetAttr(reinterpret_cast<PyObject *>(frame), _f_lasti));
+ Py_ssize_t f_lasti = PyLong_AsSsize_t(dec_f_lasti);
+#endif
+ Py_ssize_t code_len;
+ char *co_code{};
+ PyBytes_AsStringAndSize(dec_co_code, &co_code, &code_len);
+ uint8_t opcode1 = co_code[f_lasti];
+ if (isNoGil) {
+ uint8_t opcode2 = co_code[f_lasti + 4];
+ uint8_t oparg2 = co_code[f_lasti + 6];
+ return opcode1 == LOAD_METHOD_NOGIL && opcode2 == CALL_METHOD_NOGIL && oparg2 == 1;
+ }
+ uint8_t opcode2 = co_code[f_lasti + 2];
+ uint8_t oparg2 = co_code[f_lasti + 3];
+ static auto number = _PepRuntimeVersion();
+ if (number < 0x030B00)
+ return opcode1 == LOAD_METHOD && opcode2 == CALL_METHOD && oparg2 == 0;
- PyObject *modname = PyDict_GetItem(globals, PyMagicName::name());
- if (modname == nullptr)
- return last_select_id;
+ if (number < 0x030C00) {
+ // With Python 3.11, the opcodes get bigger and change a bit.
+ // Note: The new adaptive opcodes are elegantly hidden and we
+ // don't need to take care of them.
+ if (opcode1 == LOAD_METHOD)
+ f_lasti += LOAD_METHOD_GAP_311;
+ else if (opcode1 == LOAD_ATTR)
+ f_lasti += LOAD_ATTR_GAP_311;
+ else
+ return false;
- PyObject *select_id = PyDict_GetItem(feature_dict, modname);
- if (select_id == nullptr
- || !PyLong_Check(select_id) // int/long cheating
- || select_id == undef)
- return last_select_id;
+ opcode2 = co_code[f_lasti + 2];
+ oparg2 = co_code[f_lasti + 3];
- cached_globals = globals;
- last_select_id = select_id;
- assert(PyLong_AsSsize_t(select_id) >= 0);
- return select_id;
+ return opcode2 == PRECALL && oparg2 == 0;
+ }
+ // With Python 3.12, the opcodes get again bigger and change a bit.
+ // Note: The new adaptive opcodes are elegantly hidden and we
+ // don't need to take care of them.
+ if (opcode1 == LOAD_ATTR)
+ f_lasti += LOAD_ATTR_GAP;
+ else
+ return false;
+
+ opcode2 = co_code[f_lasti + 2];
+ oparg2 = co_code[f_lasti + 3];
+
+ return opcode2 == CALL && oparg2 == 0;
}
-int currentSelectId(PyTypeObject *type)
+void initEnumFlagsDict(PyTypeObject *type)
{
- int sel = SbkObjectType_GetReserved(type);
- // This could theoretically be -1 if used too early.
- assert(sel >= 0);
- return sel;
+ // We create a dict for all flag enums that holds the original C++ name
+ // and a dict that gives every enum/flag type name.
+ static PyObject *const split = Shiboken::String::createStaticString("split");
+ static PyObject *const colon = Shiboken::String::createStaticString(":");
+ auto sotp = PepType_SOTP(type);
+ auto **enumFlagInfo = sotp->enumFlagInfo;
+ auto *dict = PyDict_New();
+ auto *typeDict = PyDict_New();
+ for (; *enumFlagInfo; ++enumFlagInfo) {
+ AutoDecRef line(PyUnicode_FromString(*enumFlagInfo));
+ AutoDecRef parts(PyObject_CallMethodObjArgs(line, split, colon, nullptr));
+ auto *name = PyList_GetItem(parts, 0);
+ if (PyList_Size(parts) == 3) {
+ auto *key = PyList_GetItem(parts, 2);
+ auto *value = name;
+ PyDict_SetItem(dict, key, value);
+ }
+ auto *typeName = PyList_GetItem(parts, 1);
+ PyDict_SetItem(typeDict, name, typeName);
+ }
+ sotp->enumFlagsDict = dict;
+ sotp->enumTypeDict = typeDict;
}
-void initFeatureShibokenPart()
+static PyObject *replaceNoArgWithZero(PyObject *callable)
{
- static PyObject *no_sel = PyLong_FromLong(0);
- last_select_id = no_sel;
- // Reset the cache. This is called at any "from __feature__ import".
- cached_globals = nullptr;
+ static auto *partial = Pep_GetPartialFunction();
+ static auto *zero = PyLong_FromLong(0);
+ return PyObject_CallFunctionObjArgs(partial, callable, zero, nullptr);
}
-static SelectableFeatureHook SelectFeatureSet = nullptr;
-
-SelectableFeatureHook initSelectableFeature(SelectableFeatureHook func)
+static PyObject *lookupUnqualifiedOrOldEnum(PyTypeObject *type, PyObject *name)
{
- auto ret = SelectFeatureSet;
- SelectFeatureSet = func;
- return ret;
+ // MRO has been observed to be 0 in case of errors with QML decorators
+ if (type == nullptr || type->tp_mro == nullptr)
+ return nullptr;
+ // Quick Check: Avoid "__..", "_slots", etc.
+ if (std::isalpha(Shiboken::String::toCString(name)[0]) == 0)
+ return nullptr;
+ static PyTypeObject *const EnumMeta = getPyEnumMeta();
+ static PyObject *const _member_map_ = String::createStaticString("_member_map_");
+ // This is similar to `find_name_in_mro`, but instead of looking directly into
+ // tp_dict, we also search for the attribute in local classes of that dict (Part 2).
+ PyObject *mro = type->tp_mro;
+ PyObject *result{};
+ assert(PyTuple_Check(mro));
+ Py_ssize_t idx, n = PyTuple_GET_SIZE(mro);
+ for (idx = 0; idx < n; ++idx) {
+ auto *base = PyTuple_GET_ITEM(mro, idx);
+ auto *type_base = reinterpret_cast<PyTypeObject *>(base);
+ if (!SbkObjectType_Check(type_base))
+ continue;
+ auto sotp = PepType_SOTP(type_base);
+ // The EnumFlagInfo structure tells us if there are Enums at all.
+ const char **enumFlagInfo = sotp->enumFlagInfo;
+ if (!(enumFlagInfo))
+ continue;
+ if (!sotp->enumFlagsDict)
+ initEnumFlagsDict(type_base);
+ bool useFakeRenames = !(Enum::enumOption & Enum::ENOPT_NO_FAKERENAMES);
+ if (useFakeRenames) {
+ auto *rename = PyDict_GetItem(sotp->enumFlagsDict, name);
+ if (rename) {
+ /*
+ * Part 1: Look into the enumFlagsDict if we have an old flags name.
+ * -------------------------------------------------------------
+ * We need to replace the parameterless
+
+ QtCore.Qt.Alignment()
+
+ * by the one-parameter call
+
+ QtCore.Qt.AlignmentFlag(0)
+
+ * That means: We need to bind the zero as default into a wrapper and
+ * return that to be called.
+ *
+ * Addendum:
+ * ---------
+ * We first need to look into the current opcode of the bytecode to find
+ * out if we have a call like above or just a type lookup.
+ */
+ AutoDecRef tpDict(PepType_GetDict(type_base));
+ auto *flagType = PyDict_GetItem(tpDict.object(), rename);
+ if (currentOpcode_Is_CallMethNoArgs())
+ return replaceNoArgWithZero(flagType);
+ Py_INCREF(flagType);
+ return flagType;
+ }
+ }
+ bool useFakeShortcuts = !(Enum::enumOption & Enum::ENOPT_NO_FAKESHORTCUT);
+ if (useFakeShortcuts) {
+ AutoDecRef tpDict(PepType_GetDict(type_base));
+ auto *dict = tpDict.object();
+ PyObject *key, *value;
+ Py_ssize_t pos = 0;
+ while (PyDict_Next(dict, &pos, &key, &value)) {
+ /*
+ * Part 2: Check for a duplication into outer scope.
+ * -------------------------------------------------
+ * We need to replace the shortcut
+
+ QtCore.Qt.AlignLeft
+
+ * by the correct call
+
+ QtCore.Qt.AlignmentFlag.AlignLeft
+
+ * That means: We need to search all Enums of the class.
+ */
+ if (Py_TYPE(value) == EnumMeta) {
+ auto *valtype = reinterpret_cast<PyTypeObject *>(value);
+ AutoDecRef valtypeDict(PepType_GetDict(valtype));
+ auto *member_map = PyDict_GetItem(valtypeDict.object(), _member_map_);
+ if (member_map && PyDict_Check(member_map)) {
+ result = PyDict_GetItem(member_map, name);
+ Py_XINCREF(result);
+ if (result)
+ return result;
+ }
+ }
+ }
+ }
+ }
+ return nullptr;
}
PyObject *mangled_type_getattro(PyTypeObject *type, PyObject *name)
@@ -121,22 +319,64 @@ PyObject *mangled_type_getattro(PyTypeObject *type, PyObject *name)
* with the complex `tp_getattro` of `QObject` and other instances.
* What we change here is the meta class of `QObject`.
*/
- static getattrofunc type_getattro = PyType_Type.tp_getattro;
+ static getattrofunc const type_getattro = PepExt_Type_GetGetAttroSlot(&PyType_Type);
+ static PyObject *const ignAttr1 = PyName::qtStaticMetaObject();
+ static PyObject *const ignAttr2 = PyMagicName::get();
+ static PyTypeObject *const EnumMeta = getPyEnumMeta();
+
if (SelectFeatureSet != nullptr)
- type->tp_dict = SelectFeatureSet(type);
- return type_getattro(reinterpret_cast<PyObject *>(type), name);
+ SelectFeatureSet(type);
+ auto *ret = type_getattro(reinterpret_cast<PyObject *>(type), name);
+
+ // PYSIDE-1735: Be forgiving with strict enums and fetch the enum, silently.
+ // The PYI files now look correct, but the old duplication is
+ // emulated here. This should be removed in Qt 7, see `parser.py`.
+ //
+ // FIXME PYSIDE7 should remove this forgiveness:
+ //
+ // The duplication of enum values into the enclosing scope, allowing to write
+ // Qt.AlignLeft instead of Qt.Alignment.AlignLeft, is still implemented but
+ // no longer advertized in PYI files or line completion.
+
+ if (ret && Py_TYPE(ret) == EnumMeta && currentOpcode_Is_CallMethNoArgs()) {
+ bool useZeroDefault = !(Enum::enumOption & Enum::ENOPT_NO_ZERODEFAULT);
+ if (useZeroDefault) {
+ // We provide a zero argument for compatibility if it is a call with no args.
+ auto *hold = replaceNoArgWithZero(ret);
+ Py_DECREF(ret);
+ ret = hold;
+ }
+ }
+
+ if (!ret && name != ignAttr1 && name != ignAttr2) {
+ PyObject *error_type{}, *error_value{}, *error_traceback{};
+ PyErr_Fetch(&error_type, &error_value, &error_traceback);
+ ret = lookupUnqualifiedOrOldEnum(type, name);
+ if (ret) {
+ Py_DECREF(error_type);
+ Py_XDECREF(error_value);
+ Py_XDECREF(error_traceback);
+ } else {
+ PyErr_Restore(error_type, error_value, error_traceback);
+ }
+ }
+ return ret;
}
-PyObject *Sbk_TypeGet___dict__(PyTypeObject *type, void *context)
+PyObject *Sbk_TypeGet___dict__(PyTypeObject *type, void * /* context */)
{
/*
* This is the override for getting a dict.
*/
- auto dict = type->tp_dict;
+ AutoDecRef tpDict(PepType_GetDict(type));
+ auto *dict = tpDict.object();;
if (dict == nullptr)
Py_RETURN_NONE;
- if (SelectFeatureSet != nullptr)
- dict = SelectFeatureSet(type);
+ if (SelectFeatureSet != nullptr) {
+ SelectFeatureSet(type);
+ tpDict.reset(PepType_GetDict(type));
+ dict = tpDict.object();
+ }
return PyDictProxy_New(dict);
}
@@ -147,7 +387,7 @@ PyObject *SbkObject_GenericGetAttr(PyObject *obj, PyObject *name)
{
auto type = Py_TYPE(obj);
if (SelectFeatureSet != nullptr)
- type->tp_dict = SelectFeatureSet(type);
+ SelectFeatureSet(type);
return PyObject_GenericGetAttr(obj, name);
}
@@ -155,21 +395,10 @@ int SbkObject_GenericSetAttr(PyObject *obj, PyObject *name, PyObject *value)
{
auto type = Py_TYPE(obj);
if (SelectFeatureSet != nullptr)
- type->tp_dict = SelectFeatureSet(type);
+ SelectFeatureSet(type);
return PyObject_GenericSetAttr(obj, name, value);
}
-// Caching the select Id.
-int SbkObjectType_GetReserved(PyTypeObject *type)
-{
- return PepType_SOTP(type)->pyside_reserved_bits;
-}
-
-void SbkObjectType_SetReserved(PyTypeObject *type, int value)
-{
- PepType_SOTP(type)->pyside_reserved_bits = value;
-}
-
const char **SbkObjectType_GetPropertyStrings(PyTypeObject *type)
{
return PepType_SOTP(type)->propertyStrings;
@@ -180,11 +409,16 @@ void SbkObjectType_SetPropertyStrings(PyTypeObject *type, const char **strings)
PepType_SOTP(type)->propertyStrings = strings;
}
+void SbkObjectType_SetEnumFlagInfo(PyTypeObject *type, const char **strings)
+{
+ PepType_SOTP(type)->enumFlagInfo = strings;
+}
+
// PYSIDE-1626: Enforcing a context switch without further action.
void SbkObjectType_UpdateFeature(PyTypeObject *type)
{
if (SelectFeatureSet != nullptr)
- type->tp_dict = SelectFeatureSet(type);
+ SelectFeatureSet(type);
}
} // extern "C"
diff --git a/sources/shiboken6/libshiboken/sbkfeature_base.h b/sources/shiboken6/libshiboken/sbkfeature_base.h
index 064bd8ab4..290884062 100644
--- a/sources/shiboken6/libshiboken/sbkfeature_base.h
+++ b/sources/shiboken6/libshiboken/sbkfeature_base.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef SBKFEATURE_BASE_H
#define SBKFEATURE_BASE_H
@@ -43,9 +7,7 @@
extern "C"
{
-LIBSHIBOKEN_API PyObject *getFeatureSelectId();
LIBSHIBOKEN_API int currentSelectId(PyTypeObject *type);
-LIBSHIBOKEN_API void initFeatureShibokenPart();
LIBSHIBOKEN_API PyObject *mangled_type_getattro(PyTypeObject *type, PyObject *name);
LIBSHIBOKEN_API PyObject *Sbk_TypeGet___dict__(PyTypeObject *type, void *context);
LIBSHIBOKEN_API PyObject *SbkObject_GenericGetAttr(PyObject *obj, PyObject *name);
diff --git a/sources/shiboken6/libshiboken/sbkmodule.cpp b/sources/shiboken6/libshiboken/sbkmodule.cpp
index e5f4e2f88..4153df27f 100644
--- a/sources/shiboken6/libshiboken/sbkmodule.cpp
+++ b/sources/shiboken6/libshiboken/sbkmodule.cpp
@@ -1,91 +1,471 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include "sbkmodule.h"
+#include "autodecref.h"
#include "basewrapper.h"
#include "bindingmanager.h"
+#include "sbkstring.h"
+#include "sbkcppstring.h"
+
#include <unordered_map>
+#include <unordered_set>
+#include <cstring>
/// This hash maps module objects to arrays of Python types.
-using ModuleTypesMap = std::unordered_map<PyObject *, PyTypeObject **> ;
+using ModuleTypesMap = std::unordered_map<PyObject *, Shiboken::Module::TypeInitStruct *> ;
/// This hash maps module objects to arrays of converters.
using ModuleConvertersMap = std::unordered_map<PyObject *, SbkConverter **>;
+/// This hash maps type names to type creation functions.
+using TypeCreationFunctionModulePair =
+ std::pair<Shiboken::Module::TypeCreationFunction, PyObject *>;
+using NameToTypeFunctionMap = std::unordered_map<std::string, TypeCreationFunctionModulePair>;
+
+/// This hash maps module objects to maps of names to functions.
+using ModuleToFuncsMap = std::unordered_map<PyObject *, NameToTypeFunctionMap> ;
+
/// All types produced in imported modules are mapped here.
static ModuleTypesMap moduleTypes;
static ModuleConvertersMap moduleConverters;
+static ModuleToFuncsMap moduleToFuncs;
namespace Shiboken
{
namespace Module
{
+// PYSIDE-2404: Replacing the arguments generated by cpythonTypeNameExt
+// by a function call.
+LIBSHIBOKEN_API PyTypeObject *get(TypeInitStruct &typeStruct)
+{
+ if (typeStruct.type != nullptr)
+ return typeStruct.type;
+
+ static PyObject *sysModules = PyImport_GetModuleDict();
+
+ // The slow path for initialization.
+ // We get the type by following the chain from the module.
+ // As soon as types[index] gets filled, we can stop.
+
+ std::string_view names(typeStruct.fullName);
+ const bool usePySide = names.compare(0, 8, "PySide6.") == 0;
+ auto dotPos = usePySide ? names.find('.', 8) : names.find('.');
+ auto startPos = dotPos + 1;
+ AutoDecRef modName(String::fromCppStringView(names.substr(0, dotPos)));
+ auto *modOrType = PyDict_GetItem(sysModules, modName);
+ if (modOrType == nullptr) {
+ PyErr_Format(PyExc_SystemError, "Module %s should already be in sys.modules",
+ PyModule_GetName(modOrType));
+ return nullptr;
+ }
+
+ do {
+ dotPos = names.find('.', startPos);
+ auto typeName = dotPos != std::string::npos
+ ? names.substr(startPos, dotPos - startPos)
+ : names.substr(startPos);
+ startPos = dotPos + 1;
+ AutoDecRef obTypeName(String::fromCppStringView(typeName));
+ modOrType = PyObject_GetAttr(modOrType, obTypeName);
+ } while (typeStruct.type == nullptr && dotPos != std::string::npos);
+
+ return typeStruct.type;
+}
+
+static PyTypeObject *incarnateType(PyObject *module, const char *name,
+ NameToTypeFunctionMap &nameToFunc)
+{
+ // - locate the name and retrieve the generating function
+ auto funcIter = nameToFunc.find(name);
+ if (funcIter == nameToFunc.end()) {
+ // attribute does really not exist.
+ PyErr_SetNone(PyExc_AttributeError);
+ return nullptr;
+ }
+ // - call this function that returns a PyTypeObject
+ auto pair = funcIter->second;
+ auto initFunc = pair.first;
+ auto *modOrType = pair.second;
+
+ // PYSIDE-2404: Make sure that no switching happens during type creation.
+ auto saveFeature = initSelectableFeature(nullptr);
+ PyTypeObject *type = initFunc(modOrType);
+ initSelectableFeature(saveFeature);
+
+ // - assign this object to the name in the module
+ auto *res = reinterpret_cast<PyObject *>(type);
+ Py_INCREF(res);
+ PyModule_AddObject(module, name, res); // steals reference
+ // - remove the entry, if not by something cleared.
+ if (!nameToFunc.empty())
+ nameToFunc.erase(funcIter);
+ // - return the PyTypeObject.
+ return type;
+}
+
+// PYSIDE-2404: Make sure that the mentioned classes really exist.
+// Used in `Pyside::typeName`. Because the result will be cached by
+// the creation of the type(s), this is efficient.
+void loadLazyClassesWithName(const char *name)
+{
+ for (auto const & tableIter : moduleToFuncs) {
+ auto nameToFunc = tableIter.second;
+ auto funcIter = nameToFunc.find(name);
+ if (funcIter != nameToFunc.end()) {
+ // attribute exists in the lazy types.
+ auto *module = tableIter.first;
+ incarnateType(module, name, nameToFunc);
+ }
+ }
+}
+
+// PYSIDE-2404: Completely load all not yet loaded classes.
+// This is needed to resolve a star import.
+void resolveLazyClasses(PyObject *module)
+{
+ // - locate the module in the moduleTofuncs mapping
+ auto tableIter = moduleToFuncs.find(module);
+ if (tableIter == moduleToFuncs.end())
+ return;
+
+ // - see if there are still unloaded elements
+ auto &nameToFunc = tableIter->second;
+
+ // - incarnate all types.
+ while (!nameToFunc.empty()) {
+ auto it = nameToFunc.begin();
+ auto attrNameStr = it->first;
+ incarnateType(module, attrNameStr.c_str(), nameToFunc);
+ }
+}
+
+// PYSIDE-2404: Override the gettattr function of modules.
+static getattrofunc origModuleGetattro{};
+
+// PYSIDE-2404: Use the patched module getattr to do on-demand initialization.
+// This modifies _all_ modules but should have no impact.
+static PyObject *PyModule_lazyGetAttro(PyObject *module, PyObject *name)
+{
+ // - check if the attribute is present and return it.
+ auto *attr = PyObject_GenericGetAttr(module, name);
+ // - we handle AttributeError, only.
+ if (!(attr == nullptr && PyErr_ExceptionMatches(PyExc_AttributeError)))
+ return attr;
+
+ PyErr_Clear();
+ // - locate the module in the moduleTofuncs mapping
+ auto tableIter = moduleToFuncs.find(module);
+ // - if this is not our module, use the original
+ if (tableIter == moduleToFuncs.end())
+ return origModuleGetattro(module, name);
+
+ // - locate the name and retrieve the generating function
+ const char *attrNameStr = Shiboken::String::toCString(name);
+ auto &nameToFunc = tableIter->second;
+ // - create the real type (incarnateType checks this)
+ auto *type = incarnateType(module, attrNameStr, nameToFunc);
+ auto *ret = reinterpret_cast<PyObject *>(type);
+ // - if attribute does really not exist use the original
+ if (ret == nullptr && PyErr_ExceptionMatches(PyExc_AttributeError)) {
+ PyErr_Clear();
+ return origModuleGetattro(module, name);
+ }
+
+ return ret;
+}
+
+// PYSIDE-2404: Supply a new module dir for not yet visible entries.
+// This modification is only for "our" modules.
+static PyObject *_module_dir_template(PyObject * /* self */, PyObject *args)
+{
+ static PyObject *const _dict = Shiboken::String::createStaticString("__dict__");
+ // The dir function must replace all of the builtin function.
+ PyObject *module{};
+ if (!PyArg_ParseTuple(args, "O", &module))
+ return nullptr;
+
+ auto tableIter = moduleToFuncs.find(module);
+ assert(tableIter != moduleToFuncs.end());
+ Shiboken::AutoDecRef dict(PyObject_GetAttr(module, _dict));
+ auto *ret = PyDict_Keys(dict);
+ // Now add all elements that were not yet in the dict.
+ auto &nameToFunc = tableIter->second;
+ for (const auto &funcIter : nameToFunc) {
+ const char *name = funcIter.first.c_str();
+ Shiboken::AutoDecRef pyName(PyUnicode_FromString(name));
+ PyList_Append(ret, pyName);
+ }
+ return ret;
+}
+
+static PyMethodDef module_methods[] = {
+ {"__dir__", (PyCFunction)_module_dir_template, METH_VARARGS, nullptr},
+ {nullptr, nullptr, 0, nullptr}
+};
+
+// Python 3.8 - 3.12
+static int const LOAD_CONST_312 = 100;
+static int const IMPORT_NAME_312 = 108;
+
+static bool isImportStar(PyObject *module)
+{
+ // Find out whether we have a star import. This must work even
+ // when we have no import support from feature.
+ static PyObject *const _f_code = Shiboken::String::createStaticString("f_code");
+ static PyObject *const _f_lasti = Shiboken::String::createStaticString("f_lasti");
+ static PyObject *const _f_back = Shiboken::String::createStaticString("f_back");
+ static PyObject *const _co_code = Shiboken::String::createStaticString("co_code");
+ static PyObject *const _co_consts = Shiboken::String::createStaticString("co_consts");
+ static PyObject *const _co_names = Shiboken::String::createStaticString("co_names");
+
+ auto *obFrame = reinterpret_cast<PyObject *>(PyEval_GetFrame());
+ if (obFrame == nullptr)
+ return true; // better assume worst-case.
+
+ Py_INCREF(obFrame);
+ AutoDecRef dec_frame(obFrame);
+
+ // Calculate the offset of the running import_name opcode on the stack.
+ // Right before that there must be a load_const with the tuple `("*",)`.
+ while (dec_frame.object() != Py_None) {
+ AutoDecRef dec_f_code(PyObject_GetAttr(dec_frame, _f_code));
+ AutoDecRef dec_co_code(PyObject_GetAttr(dec_f_code, _co_code));
+ AutoDecRef dec_f_lasti(PyObject_GetAttr(dec_frame, _f_lasti));
+ Py_ssize_t f_lasti = PyLong_AsSsize_t(dec_f_lasti);
+ Py_ssize_t code_len;
+ char *co_code{};
+ PyBytes_AsStringAndSize(dec_co_code, &co_code, &code_len);
+ uint8_t opcode2 = co_code[f_lasti];
+ uint8_t opcode1 = co_code[f_lasti - 2];
+ if (opcode1 == LOAD_CONST_312 && opcode2 == IMPORT_NAME_312) {
+ uint8_t oparg1 = co_code[f_lasti - 1];
+ uint8_t oparg2 = co_code[f_lasti + 1];
+ AutoDecRef dec_co_consts(PyObject_GetAttr(dec_f_code, _co_consts));
+ auto *fromlist = PyTuple_GetItem(dec_co_consts, oparg1);
+ if (PyTuple_Check(fromlist) && PyTuple_Size(fromlist) == 1
+ && Shiboken::String::toCString(PyTuple_GetItem(fromlist, 0))[0] == '*') {
+ AutoDecRef dec_co_names(PyObject_GetAttr(dec_f_code, _co_names));
+ const char *name = String::toCString(PyTuple_GetItem(dec_co_names, oparg2));
+ const char *modName = PyModule_GetName(module);
+ if (std::strcmp(name, modName) == 0)
+ return true;
+ }
+ }
+ dec_frame.reset(PyObject_GetAttr(dec_frame, _f_back));
+ }
+ return false;
+}
+
+// PYSIDE-2404: These modules produce ambiguous names which we cannot handle, yet.
+static std::unordered_set<std::string> dontLazyLoad{
+ "sample",
+ "smart",
+ "testbinding"
+};
+
+static const std::unordered_set<std::string> knownModules{
+ "shiboken6.Shiboken",
+ "minimal",
+ "other",
+ "sample",
+ "smart",
+ "scriptableapplication",
+ "testbinding"
+};
+
+static bool canNotLazyLoad(PyObject *module)
+{
+ const char *modName = PyModule_GetName(module);
+
+ // There are no more things that must be disabled :-D
+ return dontLazyLoad.find(modName) != dontLazyLoad.end();
+}
+
+static bool shouldLazyLoad(PyObject *module)
+{
+ const char *modName = PyModule_GetName(module);
+
+ if (knownModules.find(modName) != knownModules.end())
+ return true;
+ return std::strncmp(modName, "PySide6.", 8) == 0;
+}
+
+void AddTypeCreationFunction(PyObject *module,
+ const char *name,
+ TypeCreationFunction func)
+{
+ static const char *flag = getenv("PYSIDE6_OPTION_LAZY");
+ static const int value = flag != nullptr ? std::atoi(flag) : 1;
+
+ // - locate the module in the moduleTofuncs mapping
+ auto tableIter = moduleToFuncs.find(module);
+ assert(tableIter != moduleToFuncs.end());
+ // - Assign the name/generating function pair.
+ auto &nameToFunc = tableIter->second;
+ TypeCreationFunctionModulePair pair{func, module};
+ auto nit = nameToFunc.find(name);
+ if (nit == nameToFunc.end())
+ nameToFunc.insert(std::make_pair(name, pair));
+ else
+ nit->second = pair;
+
+ // PYSIDE-2404: Lazy Loading
+ //
+ // Options:
+ // 0 - switch lazy loading off.
+ // 1 - lazy loading for all known modules.
+ // 3 - lazy loading for any module.
+ //
+ // By default we lazy load all known modules (option = 1).
+
+ if (value == 0 // completely disabled
+ || canNotLazyLoad(module) // for some reason we cannot lazy load
+ || (value == 1 && !shouldLazyLoad(module)) // not a known module
+ ) {
+ PyTypeObject *type = func(module);
+ PyModule_AddObject(module, name, reinterpret_cast<PyObject *>(type)); // steals reference
+ }
+}
+
+void AddTypeCreationFunction(PyObject *module,
+ const char *name,
+ TypeCreationFunction func,
+ const char *containerName)
+{
+ // This version could be delayed as well, but for the few cases
+ // we simply fetch the container type and insert directly.
+ AutoDecRef obContainerType(PyObject_GetAttrString(module, containerName));
+ PyTypeObject *type = func(obContainerType);
+ PyObject_SetAttrString(obContainerType, name, reinterpret_cast<PyObject *>(type)); // steals reference
+}
+
+void AddTypeCreationFunction(PyObject *module,
+ const char *name,
+ TypeCreationFunction func,
+ const char *outerContainerName,
+ const char *innerContainerName)
+{
+ // This version has even more indirection. It is very rare, and
+ // we handle it directly.
+ AutoDecRef obOuterType(PyObject_GetAttrString(module, outerContainerName));
+ AutoDecRef obInnerType(PyObject_GetAttrString(obOuterType, innerContainerName));
+ PyTypeObject *type = func(obInnerType);
+ PyObject_SetAttrString(obInnerType, name, reinterpret_cast<PyObject *>(type)); // steals reference
+}
+
+void AddTypeCreationFunction(PyObject *module,
+ const char *name,
+ TypeCreationFunction func,
+ const char *containerName3,
+ const char *containerName2,
+ const char *containerName)
+{
+ // This version has even mode indirection. It is very rare, and
+ // we handle it directly.
+ AutoDecRef obContainerType3(PyObject_GetAttrString(module, containerName3));
+ AutoDecRef obContainerType2(PyObject_GetAttrString(obContainerType3, containerName2));
+ AutoDecRef obContainerType(PyObject_GetAttrString(obContainerType2, containerName));
+ PyTypeObject *type = func(obContainerType);
+ PyObject_SetAttrString(obContainerType, name, reinterpret_cast<PyObject *>(type)); // steals reference
+}
+
PyObject *import(const char *moduleName)
{
PyObject *sysModules = PyImport_GetModuleDict();
PyObject *module = PyDict_GetItemString(sysModules, moduleName);
- if (module)
+ if (module != nullptr)
Py_INCREF(module);
else
module = PyImport_ImportModule(moduleName);
- if (!module)
- PyErr_Format(PyExc_ImportError,"could not import module '%s'", moduleName);
+ if (module == nullptr)
+ PyErr_Format(PyExc_ImportError, "could not import module '%s'", moduleName);
return module;
}
-PyObject *create(const char *moduleName, void *moduleData)
+// PYSIDE-2404: Redirecting import for "import *" support.
+//
+// The first import will be handled by the isImportStar function.
+// But the same module might be imported twice, which would give no
+// introspection due to module caching.
+
+static PyObject *origImportFunc{};
+
+static PyObject *lazy_import(PyObject * /* self */, PyObject *args, PyObject *kwds)
+{
+ auto *ret = PyObject_Call(origImportFunc, args, kwds);
+ if (ret != nullptr) {
+ // PYSIDE-2404: Support star import when lazy loading.
+ if (PyTuple_Size(args) >= 4) {
+ auto *fromlist = PyTuple_GetItem(args, 3);
+ if (PyTuple_Check(fromlist) && PyTuple_Size(fromlist) == 1
+ && Shiboken::String::toCString(PyTuple_GetItem(fromlist, 0))[0] == '*')
+ Shiboken::Module::resolveLazyClasses(ret);
+ }
+ }
+ return ret;
+}
+
+static PyMethodDef lazy_methods[] = {
+ {"__lazy_import__", (PyCFunction)lazy_import, METH_VARARGS | METH_KEYWORDS, nullptr},
+ {nullptr, nullptr, 0, nullptr}
+};
+
+PyObject *create(const char * /* modName */, void *moduleData)
{
+ static auto *sysModules = PyImport_GetModuleDict();
+ static auto *builtins = PyEval_GetBuiltins();
+ static auto *partial = Pep_GetPartialFunction();
+ static bool lazy_init{};
+
Shiboken::init();
- return PyModule_Create(reinterpret_cast<PyModuleDef *>(moduleData));
+ auto *module = PyModule_Create(reinterpret_cast<PyModuleDef *>(moduleData));
+
+ // Setup of a dir function for "missing" classes.
+ auto *moduleDirTemplate = PyCFunction_NewEx(module_methods, nullptr, nullptr);
+ // Turn this function into a bound object, so we have access to the module.
+ auto *moduleDir = PyObject_CallFunctionObjArgs(partial, moduleDirTemplate, module, nullptr);
+ PyModule_AddObject(module, module_methods->ml_name, moduleDir); // steals reference
+ // Insert an initial empty table for the module.
+ NameToTypeFunctionMap empty;
+ moduleToFuncs.insert(std::make_pair(module, empty));
+
+ // A star import must be done unconditionally. Use the complete name.
+ if (isImportStar(module))
+ dontLazyLoad.insert(PyModule_GetName(module));
+
+ if (!lazy_init) {
+ // Install the getattr patch.
+ origModuleGetattro = PyModule_Type.tp_getattro;
+ PyModule_Type.tp_getattro = PyModule_lazyGetAttro;
+ // Add the lazy import redirection.
+ origImportFunc = PyDict_GetItemString(builtins, "__import__");
+ auto *func = PyCFunction_NewEx(lazy_methods, nullptr, nullptr);
+ PyDict_SetItemString(builtins, "__import__", func);
+ // Everything is set.
+ lazy_init = true;
+ }
+ // PYSIDE-2404: Nuitka inserts some additional code in standalone mode
+ // in an invisible virtual module (i.e. `QtCore-postLoad`)
+ // that gets imported before the running import can call
+ // `_PyImport_FixupExtensionObject` which does the insertion
+ // into `sys.modules`. This can cause a race condition.
+ // Insert the module early into the module dict to prevend recursion.
+ PyDict_SetItemString(sysModules, PyModule_GetName(module), module);
+ return module;
}
-void registerTypes(PyObject *module, PyTypeObject **types)
+void registerTypes(PyObject *module, TypeInitStruct *types)
{
auto iter = moduleTypes.find(module);
if (iter == moduleTypes.end())
moduleTypes.insert(std::make_pair(module, types));
}
-PyTypeObject **getTypes(PyObject *module)
+TypeInitStruct *getTypes(PyObject *module)
{
auto iter = moduleTypes.find(module);
return (iter == moduleTypes.end()) ? 0 : iter->second;
diff --git a/sources/shiboken6/libshiboken/sbkmodule.h b/sources/shiboken6/libshiboken/sbkmodule.h
index 02e4a2706..1b3de33b7 100644
--- a/sources/shiboken6/libshiboken/sbkmodule.h
+++ b/sources/shiboken6/libshiboken/sbkmodule.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef SBK_MODULE_H
#define SBK_MODULE_H
@@ -48,8 +12,22 @@ extern "C"
struct SbkConverter;
}
-namespace Shiboken {
-namespace Module {
+namespace Shiboken::Module {
+
+struct TypeInitStruct
+{
+ PyTypeObject *type;
+ const char *fullName;
+};
+
+/// PYSIDE-2404: Replacing the arguments in cpythonTypeNameExt by a function.
+LIBSHIBOKEN_API PyTypeObject *get(TypeInitStruct &typeStruct);
+
+/// PYSIDE-2404: Make sure that mentioned classes really exist.
+LIBSHIBOKEN_API void loadLazyClassesWithName(const char *name);
+
+/// PYSIDE-2404: incarnate all classes for star imports.
+LIBSHIBOKEN_API void resolveLazyClasses(PyObject *module);
/**
* Imports and returns the module named \p moduleName, or a NULL pointer in case of failure.
@@ -66,19 +44,43 @@ LIBSHIBOKEN_API PyObject *import(const char *moduleName);
*/
LIBSHIBOKEN_API PyObject *create(const char *moduleName, void *moduleData);
+using TypeCreationFunction = PyTypeObject *(*)(PyObject *module);
+
+/// Adds a type creation function to the module.
+LIBSHIBOKEN_API void AddTypeCreationFunction(PyObject *module,
+ const char *name,
+ TypeCreationFunction func);
+
+LIBSHIBOKEN_API void AddTypeCreationFunction(PyObject *module,
+ const char *name,
+ TypeCreationFunction func,
+ const char *containerName);
+
+LIBSHIBOKEN_API void AddTypeCreationFunction(PyObject *module,
+ const char *name,
+ TypeCreationFunction func,
+ const char *outerContainerName,
+ const char *innerContainerName);
+
+LIBSHIBOKEN_API void AddTypeCreationFunction(PyObject *module,
+ const char *name,
+ TypeCreationFunction func,
+ const char *containerName3,
+ const char *containerName2,
+ const char *containerName);
/**
* Registers the list of types created by \p module.
* \param module Module where the types were created.
* \param types Array of PyTypeObject *objects representing the types created on \p module.
*/
-LIBSHIBOKEN_API void registerTypes(PyObject *module, PyTypeObject **types);
+LIBSHIBOKEN_API void registerTypes(PyObject *module, TypeInitStruct *types);
/**
* Retrieves the array of types.
* \param module Module where the types were created.
* \returns A pointer to the PyTypeObject *array of types.
*/
-LIBSHIBOKEN_API PyTypeObject **getTypes(PyObject *module);
+LIBSHIBOKEN_API TypeInitStruct *getTypes(PyObject *module);
/**
* Registers the list of converters created by \p module for non-wrapper types.
@@ -94,6 +96,6 @@ LIBSHIBOKEN_API void registerTypeConverters(PyObject *module, SbkConverter **con
*/
LIBSHIBOKEN_API SbkConverter **getTypeConverters(PyObject *module);
-} } // namespace Shiboken::Module
+} // namespace Shiboken::Module
#endif // SBK_MODULE_H
diff --git a/sources/shiboken6/libshiboken/sbknumpy.cpp b/sources/shiboken6/libshiboken/sbknumpy.cpp
new file mode 100644
index 000000000..2e1c64d73
--- /dev/null
+++ b/sources/shiboken6/libshiboken/sbknumpy.cpp
@@ -0,0 +1,59 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+
+#ifdef HAVE_NUMPY
+// Include numpy first to get the proper PyArray_Check
+# include <numpy/arrayobject.h>
+#endif
+
+#include "helper.h"
+#include "sbknumpycheck.h"
+#include "sbkcpptonumpy.h"
+#include "sbknumpyview.h"
+
+#include <algorithm>
+
+namespace Shiboken::Numpy
+{
+
+#ifdef HAVE_NUMPY
+static void initNumPy()
+{
+ // PYSIDE-2404: Delay-initialize numpy from check() as it causes a
+ // significant startup delay (~770 allocations in memray)
+ static bool initialized = false;
+ if (initialized)
+ return;
+ initialized = true;
+ // Expanded from macro "import_array" in __multiarray_api.h
+ // Make sure to read about the magic defines PY_ARRAY_UNIQUE_SYMBOL etc.,
+ // when changing this or spreading the code over several source files.
+ if (_import_array() < 0) {
+ PyErr_Print();
+ PyErr_Clear();
+ }
+}
+#endif // HAVE_NUMPY
+
+bool check(PyObject *pyIn)
+{
+#ifdef HAVE_NUMPY
+ initNumPy();
+ return PyArray_Check(pyIn);
+#else
+ SBK_UNUSED(pyIn);
+ return false;
+#endif
+}
+
+} //namespace Shiboken::Numpy
+
+// Include all sources files using numpy so that they are in the same
+// translation unit (see comment at initNumPyArrayConverters()).
+
+#include "sbknumpyview.cpp"
+#include "sbkcpptonumpy.cpp"
+#ifdef HAVE_NUMPY
+# include "sbknumpyarrayconverter.cpp"
+#endif
diff --git a/sources/shiboken6/libshiboken/sbknumpyarrayconverter.cpp b/sources/shiboken6/libshiboken/sbknumpyarrayconverter.cpp
index 996968fa1..835a97524 100644
--- a/sources/shiboken6/libshiboken/sbknumpyarrayconverter.cpp
+++ b/sources/shiboken6/libshiboken/sbknumpyarrayconverter.cpp
@@ -1,41 +1,7 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+// included by sbknumpy.cpp
#include "sbkarrayconverter.h"
#include "helper.h"
@@ -43,8 +9,6 @@
#include "sbkconverter_p.h"
#include "sbkarrayconverter_p.h"
-#include <numpy/arrayobject.h>
-
#include <algorithm>
#include <iostream>
#include <cstdint>
@@ -116,8 +80,13 @@ std::ostream &operator<<(std::ostream &str, PyArrayObject *o)
str << " NPY_ARRAY_NOTSWAPPED";
if ((flags & NPY_ARRAY_WRITEABLE) != 0)
str << " NPY_ARRAY_WRITEABLE";
+#if NPY_VERSION >= 0x00000010 // NPY_1_23_API_VERSION
+ if ((flags & NPY_ARRAY_WRITEBACKIFCOPY) != 0)
+ str << " NPY_ARRAY_WRITEBACKIFCOPY";
+#else
if ((flags & NPY_ARRAY_UPDATEIFCOPY) != 0)
str << " NPY_ARRAY_UPDATEIFCOPY";
+#endif
} else {
str << '0';
}
@@ -125,8 +94,7 @@ std::ostream &operator<<(std::ostream &str, PyArrayObject *o)
return str;
}
-namespace Shiboken {
-namespace Conversions {
+namespace Shiboken::Conversions {
// Internals from sbkarrayconverter.cpp
SbkArrayConverter *createArrayConverter(IsArrayConvertibleToCppFunc toCppCheckFunc);
@@ -136,6 +104,7 @@ SbkArrayConverter *unimplementedArrayConverter();
template <int dimension>
static bool isPrimitiveArray(PyObject *pyIn, int expectedNpType)
{
+ Shiboken::Numpy::initNumPy();
if (!PyArray_Check(pyIn))
return false;
auto *pya = reinterpret_cast<PyArrayObject *>(pyIn);
@@ -241,6 +210,9 @@ static PythonToCppFunc checkArray2(PyObject *pyIn, int dim1, int dim2)
template <class T>
static void setOrExtendArrayConverter(int dimension, IsArrayConvertibleToCppFunc toCppCheckFunc)
{
+ // PYSIDE-2404/FIXME: When adding a C++ -> Python conversion, be sure
+ // to delay-initialize numpy in the converter (similar to the
+ // initialization in check() for the Python -> C++ conversion).
SbkArrayConverter *arrayConverter = ArrayTypeConverter<T>(dimension);
if (arrayConverter == unimplementedArrayConverter()) {
arrayConverter = createArrayConverter(toCppCheckFunc);
@@ -266,15 +238,6 @@ static inline void extendArrayConverter2()
void initNumPyArrayConverters()
{
- // Expanded from macro "import_array" in __multiarray_api.h
- // Make sure to read about the magic defines PY_ARRAY_UNIQUE_SYMBOL etc.,
- // when changing this or spreading the code over several source files.
- if (_import_array() < 0) {
- if (debugNumPy)
- PyErr_Print();
- PyErr_Clear();
- return;
- }
// Extend the converters for primitive types by NumPy ones.
extendArrayConverter1<short, NPY_SHORT>();
extendArrayConverter2<short, NPY_SHORT>();
@@ -304,5 +267,4 @@ void initNumPyArrayConverters()
extendArrayConverter2<double, NPY_DOUBLE>();
}
-} // namespace Conversions
-} // namespace Shiboken
+} // namespace Shiboken::Conversions
diff --git a/sources/shiboken6/libshiboken/sbknumpycheck.h b/sources/shiboken6/libshiboken/sbknumpycheck.h
new file mode 100644
index 000000000..cfe65372c
--- /dev/null
+++ b/sources/shiboken6/libshiboken/sbknumpycheck.h
@@ -0,0 +1,30 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef SBKNUMPYCHECK_H
+#define SBKNUMPYCHECK_H
+
+#include <sbkpython.h>
+#include <shibokenmacros.h>
+
+
+// This header provides a PyArray_Check() definition that can be used to avoid
+// having to include the numpy headers. When using numpy headers, make sure
+// to include this header after them to skip the definition. Also remember
+// that import_array() must then be called to initialize numpy.
+
+namespace Shiboken::Numpy
+{
+
+/// Check whether the object is a PyArrayObject
+/// \param pyIn object
+/// \return Whether it is a PyArrayObject
+LIBSHIBOKEN_API bool check(PyObject *pyIn);
+
+} //namespace Shiboken::Numpy
+
+#ifndef PyArray_Check
+# define PyArray_Check(op) Shiboken::Numpy::check(op)
+#endif
+
+#endif // SBKNUMPYCHECK_H
diff --git a/sources/shiboken6/libshiboken/sbknumpyview.cpp b/sources/shiboken6/libshiboken/sbknumpyview.cpp
new file mode 100644
index 000000000..bafbf8038
--- /dev/null
+++ b/sources/shiboken6/libshiboken/sbknumpyview.cpp
@@ -0,0 +1,265 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+// included by sbknumpy.cpp
+
+#include "helper.h"
+#include <iostream>
+#include <iomanip>
+#include <optional>
+
+#ifdef HAVE_NUMPY
+
+namespace Shiboken {
+namespace Numpy {
+
+static std::optional<View::Type> viewTypeFromNumPy(int npt)
+{
+ switch (npt) {
+ case NPY_SHORT:
+ return View::Int16;
+ case NPY_USHORT:
+ return View::Unsigned16;
+ case NPY_INT:
+ return View::Int;
+ case NPY_UINT:
+ return View::Unsigned;
+ case NPY_LONG:
+ if constexpr (sizeof(long) == sizeof(int))
+ return View::Int;
+ if constexpr (sizeof(long) == sizeof(int64_t))
+ return View::Int64;
+ break;
+ case NPY_ULONG:
+ if constexpr (sizeof(long) == sizeof(int))
+ return View::Unsigned;
+ if constexpr (sizeof(long) == sizeof(int64_t))
+ return View::Unsigned64;
+ break;
+ case NPY_LONGLONG:
+ if constexpr (sizeof(long long) == 8)
+ return View::Int64;
+ break;
+ case NPY_ULONGLONG:
+ if constexpr (sizeof(long long) == 8)
+ return View::Unsigned64;
+ break;
+ case NPY_FLOAT:
+ return View::Float;
+ case NPY_DOUBLE:
+ return View::Double;
+ default:
+ break;
+ }
+ return {};
+}
+
+View View::fromPyObject(PyObject *pyIn)
+{
+ if (pyIn == nullptr || PyArray_Check(pyIn) == 0)
+ return {};
+ auto *ar = reinterpret_cast<PyArrayObject *>(pyIn);
+ if ((PyArray_FLAGS(ar) & NPY_ARRAY_C_CONTIGUOUS) == 0)
+ return {};
+ const int ndim = PyArray_NDIM(ar);
+ if (ndim > 2)
+ return {};
+
+ const auto typeO = viewTypeFromNumPy(PyArray_TYPE(ar));
+ if (!typeO.has_value())
+ return {};
+
+ View result;
+ result.ndim = ndim;
+ result.type = typeO.value();
+ result.data = PyArray_DATA(ar);
+ result.dimensions[0] = PyArray_DIMS(ar)[0];
+ result.stride[0] = PyArray_STRIDES(ar)[0];
+ if (ndim > 1) {
+ result.dimensions[1] = PyArray_DIMS(ar)[1];
+ result.stride[1] = PyArray_STRIDES(ar)[1];
+ } else {
+ result.dimensions[1] = result.stride[1] = 0;
+ }
+ return result;
+}
+
+} // namespace Numpy
+
+template <class T>
+static void debugArray(std::ostream &str, const T *data, int n)
+{
+ static const int maxData = 10;
+ str << " = ";
+ auto *end = data + std::min(n, maxData);
+ for (auto *d = data; d != end; ++d) {
+ if (d != data)
+ str << ", ";
+ str << *d;
+ }
+ if (n > maxData)
+ str << "...";
+}
+
+std::ostream &operator<<(std::ostream &str, const debugPyArrayObject &a)
+{
+ str << "PyArrayObject(";
+ if (a.m_object == nullptr) {
+ str << '0';
+ } else if (PyArray_Check(a.m_object) != 0) {
+ auto *ar = reinterpret_cast<PyArrayObject *>(a.m_object);
+ const int ndim = PyArray_NDIM(ar);
+ const int type = PyArray_TYPE(ar);
+ const int flags = PyArray_FLAGS(ar);
+ str << "ndim=" << ndim << " [";
+ for (int d = 0; d < ndim; ++d) {
+ if (d)
+ str << ", ";
+ str << PyArray_DIMS(ar)[d];
+ }
+ str << "], type=";
+ switch (type) {
+ case NPY_SHORT:
+ str << "short";
+ break;
+ case NPY_USHORT:
+ str << "ushort";
+ break;
+ case NPY_INT:
+ str << "int32";
+ break;
+ case NPY_UINT:
+ str << "uint32";
+ break;
+ case NPY_LONG:
+ str << "long";
+ break;
+ case NPY_ULONG:
+ str << "ulong";
+ break;
+ case NPY_LONGLONG:
+ str << "long long";
+ break;
+ case NPY_ULONGLONG:
+ str << "ulong long";
+ break;
+ case NPY_FLOAT:
+ str << "float";
+ break;
+ case NPY_DOUBLE:
+ str << "double";
+ break;
+ default:
+ str << '(' << type << ')';
+ break;
+ }
+ str << ", flags=0x" << std::hex << flags << std::dec;
+ if ((flags & NPY_ARRAY_C_CONTIGUOUS) != 0)
+ str << " [C-contiguous]";
+ if ((flags & NPY_ARRAY_F_CONTIGUOUS) != 0)
+ str << " [Fortran-contiguous]";
+ if ((flags & NPY_ARRAY_ALIGNED) != 0)
+ str << " [aligned]";
+ if ((flags & NPY_ARRAY_OWNDATA) != 0)
+ str << " [owndata]";
+ if ((flags & NPY_ARRAY_WRITEABLE) != 0)
+ str << " [writeable]";
+
+ if (const int dim0 = PyArray_DIMS(ar)[0]) {
+ auto *data = PyArray_DATA(ar);
+ switch (type) {
+ case NPY_SHORT:
+ debugArray(str, reinterpret_cast<const short *>(data), dim0);
+ break;
+ case NPY_USHORT:
+ debugArray(str, reinterpret_cast<const unsigned short *>(data), dim0);
+ break;
+ case NPY_INT:
+ debugArray(str, reinterpret_cast<const int *>(data), dim0);
+ break;
+ case NPY_UINT:
+ debugArray(str, reinterpret_cast<const unsigned *>(data), dim0);
+ break;
+ case NPY_LONG:
+ debugArray(str, reinterpret_cast<const long *>(data), dim0);
+ break;
+ case NPY_ULONG:
+ debugArray(str, reinterpret_cast<const unsigned long*>(data), dim0);
+ break;
+ case NPY_LONGLONG:
+ debugArray(str, reinterpret_cast<const long long *>(data), dim0);
+ break;
+ case NPY_ULONGLONG:
+ debugArray(str, reinterpret_cast<const unsigned long long *>(data), dim0);
+ break;
+ case NPY_FLOAT:
+ debugArray(str, reinterpret_cast<const float *>(data), dim0);
+ break;
+ case NPY_DOUBLE:
+ debugArray(str, reinterpret_cast<const double *>(data), dim0);
+ break;
+ }
+ }
+ } else {
+ str << "Invalid";
+ }
+ str << ')';
+ return str;
+}
+
+} //namespace Shiboken
+
+#else // HAVE_NUMPY
+
+namespace Shiboken::Numpy
+{
+
+View View::fromPyObject(PyObject *)
+{
+ return {};
+}
+
+std::ostream &operator<<(std::ostream &str, const debugPyArrayObject &)
+{
+ str << "Unimplemented function " << __FUNCTION__ << ", (numpy was not found).";
+ return str;
+}
+
+} //namespace Shiboken::Numpy
+
+#endif // !HAVE_NUMPY
+
+namespace Shiboken::Numpy
+{
+
+bool View::sameLayout(const View &rhs) const
+{
+ return rhs && *this && ndim == rhs.ndim && type == rhs.type;
+}
+
+bool View::sameSize(const View &rhs) const
+{
+ return sameLayout(rhs)
+ && dimensions[0] == rhs.dimensions[0] && dimensions[1] == rhs.dimensions[1];
+}
+
+std::ostream &operator<<(std::ostream &str, const View &v)
+{
+ str << "Shiboken::Numpy::View(";
+ if (v) {
+ str << "type=" << v.type << ", ndim=" << v.ndim << " ["
+ << v.dimensions[0];
+ if (v.ndim > 1)
+ str << ", " << v.dimensions[1];
+ str << "], stride=[" << v.stride[0];
+ if (v.ndim > 1)
+ str << ", " << v.stride[1];
+ str << "], data=" << v.data;
+ } else {
+ str << "invalid";
+ }
+ str << ')';
+ return str;
+}
+
+} //namespace Shiboken::Numpy
diff --git a/sources/shiboken6/libshiboken/sbknumpyview.h b/sources/shiboken6/libshiboken/sbknumpyview.h
new file mode 100644
index 000000000..918913b78
--- /dev/null
+++ b/sources/shiboken6/libshiboken/sbknumpyview.h
@@ -0,0 +1,47 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef SBKNUMPYVIEW_H
+#define SBKNUMPYVIEW_H
+
+#include <sbkpython.h>
+#include <shibokenmacros.h>
+
+#include <iosfwd>
+
+namespace Shiboken::Numpy
+{
+
+/// Check whether the object is a PyArrayObject
+/// \param pyIn object
+/// \return Whether it is a PyArrayObject
+LIBSHIBOKEN_API bool check(PyObject *pyIn);
+
+/// A simple view of an up to 2 dimensional, C-contiguous array of a standard
+/// type. It can be passed to compilation units that do not include the
+/// numpy headers.
+struct LIBSHIBOKEN_API View
+{
+ enum Type { Int, Unsigned, Float, Double, Int16, Unsigned16, Int64, Unsigned64 };
+
+ static View fromPyObject(PyObject *pyIn);
+
+ operator bool() const { return ndim > 0; }
+
+ /// Return whether rhs is of the same type and dimensionality
+ bool sameLayout(const View &rhs) const;
+ /// Return whether rhs is of the same type dimensionality and size
+ bool sameSize(const View &rhs) const;
+
+ int ndim = 0;
+ Py_ssize_t dimensions[2];
+ Py_ssize_t stride[2];
+ void *data = nullptr;
+ Type type = Int;
+};
+
+LIBSHIBOKEN_API std::ostream &operator<<(std::ostream &, const View &v);
+
+} //namespace Shiboken::Numpy
+
+#endif // SBKNUMPYVIEW_H
diff --git a/sources/shiboken6/libshiboken/sbkpython.h b/sources/shiboken6/libshiboken/sbkpython.h
index cef9f81a6..e62fa13ae 100644
--- a/sources/shiboken6/libshiboken/sbkpython.h
+++ b/sources/shiboken6/libshiboken/sbkpython.h
@@ -1,47 +1,10 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef SBKPYTHON_H
#define SBKPYTHON_H
#include "sbkversion.h"
-#define PyEnumMeta_Check(x) (strcmp(Py_TYPE(x)->tp_name, "EnumMeta") == 0)
// Qt's "slots" macro collides with the "slots" member variables
// used in some Python structs. For compilers that support push_macro,
diff --git a/sources/shiboken6/libshiboken/sbksmartpointer.cpp b/sources/shiboken6/libshiboken/sbksmartpointer.cpp
new file mode 100644
index 000000000..ee28f7db8
--- /dev/null
+++ b/sources/shiboken6/libshiboken/sbksmartpointer.cpp
@@ -0,0 +1,58 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#include "sbksmartpointer.h"
+#include "sbkstring.h"
+#include "autodecref.h"
+
+#include <unordered_set>
+
+namespace Shiboken::SmartPointer
+{
+
+PyObject *repr(PyObject *pointer, PyObject *pointee)
+{
+ Shiboken::AutoDecRef pointerRepr(Shiboken::String::repr(pointer));
+ if (pointer == nullptr)
+ return pointerRepr.release();
+
+ Shiboken::AutoDecRef pointeeRepr(pointee != nullptr
+ ? PyObject_Repr(pointee)
+ : Shiboken::String::repr(pointee));
+
+ return PyUnicode_FromFormat("%U (%U)", pointerRepr.object(), pointeeRepr.object());
+}
+
+// __dir__ for a smart pointer. Add the __dir__ entries of the pointee to the list.
+PyObject *dir(PyObject *pointer, PyObject *pointee)
+{
+ if (pointer == nullptr)
+ return PyList_New(0);
+ // Get the pointer's dir entries. Note: PyObject_Dir() cannot be called on
+ // self, will crash. Work around by using the type dict keys.
+ AutoDecRef tpDict(PepType_GetDict(Py_TYPE(pointer)));
+ auto *result = PyMapping_Keys(tpDict);
+
+ if (pointee != nullptr && pointee != Py_None) {
+ // Add the entries of the pointee that do not exist in the pointer's list.
+ // Since Python internally caches strings; we can use a set of PyObject *.
+ std::unordered_set<PyObject *> knownStrings;
+ for (Py_ssize_t i = 0, size = PySequence_Size(result); i < size; ++i) {
+ Shiboken::AutoDecRef item(PySequence_GetItem(result, i));
+ knownStrings.insert(item.object());
+ }
+ const auto knownEnd = knownStrings.end();
+
+ Shiboken::AutoDecRef pointeeDir(PyObject_Dir(pointee));
+ for (Py_ssize_t i = 0, size = PySequence_Size(pointeeDir.object()); i < size; ++i) {
+ Shiboken::AutoDecRef item(PySequence_GetItem(pointeeDir, i));
+ if (knownStrings.find(item.object()) == knownEnd)
+ PyList_Append(result, item.object());
+ }
+ }
+
+ PyList_Sort(result);
+ return result;
+}
+
+} // namespace Shiboken::SmartPointer
diff --git a/sources/shiboken6/libshiboken/sbksmartpointer.h b/sources/shiboken6/libshiboken/sbksmartpointer.h
new file mode 100644
index 000000000..5e2022722
--- /dev/null
+++ b/sources/shiboken6/libshiboken/sbksmartpointer.h
@@ -0,0 +1,18 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef SBK_SBKSMARTPOINTER_H
+#define SBK_SBKSMARTPOINTER_H
+
+#include "sbkpython.h"
+#include "shibokenmacros.h"
+
+namespace Shiboken::SmartPointer
+{
+
+LIBSHIBOKEN_API PyObject *repr(PyObject *pointer, PyObject *pointee);
+LIBSHIBOKEN_API PyObject *dir(PyObject *pointer, PyObject *pointee);
+
+} // namespace Shiboken::SmartPointer
+
+#endif // SBK_SBKSMARTPOINTER_H
diff --git a/sources/shiboken6/libshiboken/sbkstaticstrings.cpp b/sources/shiboken6/libshiboken/sbkstaticstrings.cpp
index 7b2ddfb3e..023de0ea4 100644
--- a/sources/shiboken6/libshiboken/sbkstaticstrings.cpp
+++ b/sources/shiboken6/libshiboken/sbkstaticstrings.cpp
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include "sbkstaticstrings.h"
#include "sbkstaticstrings_p.h"
@@ -60,12 +24,13 @@ STATIC_STRING_IMPL(im_self, "im_self")
STATIC_STRING_IMPL(loads, "loads")
STATIC_STRING_IMPL(multi, "multi")
STATIC_STRING_IMPL(name, "name")
+STATIC_STRING_IMPL(orig_dict, "orig_dict")
STATIC_STRING_IMPL(qApp, "qApp")
STATIC_STRING_IMPL(result, "result")
STATIC_STRING_IMPL(select_id, "select_id")
-STATIC_STRING_IMPL(underscore, "_")
STATIC_STRING_IMPL(value, "value")
STATIC_STRING_IMPL(values, "values")
+STATIC_STRING_IMPL(qtStaticMetaObject, "staticMetaObject")
// Internal:
STATIC_STRING_IMPL(classmethod, "classmethod")
@@ -96,12 +61,14 @@ STATIC_STRING_IMPL(property_methods, "__property_methods__")
STATIC_STRING_IMPL(qualname, "__qualname__")
STATIC_STRING_IMPL(self, "__self__")
STATIC_STRING_IMPL(select_i, "__self__")
+STATIC_STRING_IMPL(code, "__code__")
+STATIC_STRING_IMPL(rlshift, "__rlshift__")
+STATIC_STRING_IMPL(rrshift, "__rrshift__")
// Internal:
STATIC_STRING_IMPL(base, "__base__")
STATIC_STRING_IMPL(bases, "__bases__")
STATIC_STRING_IMPL(builtins, "__builtins__")
-STATIC_STRING_IMPL(code, "__code__")
STATIC_STRING_IMPL(dictoffset, "__dictoffset__")
STATIC_STRING_IMPL(func, "__func__")
STATIC_STRING_IMPL(func_kind, "__func_kind__")
@@ -109,7 +76,13 @@ STATIC_STRING_IMPL(iter, "__iter__")
STATIC_STRING_IMPL(mro, "__mro__")
STATIC_STRING_IMPL(new_, "__new__")
STATIC_STRING_IMPL(objclass, "__objclass__")
-STATIC_STRING_IMPL(signature, "__signature__")
STATIC_STRING_IMPL(weakrefoffset, "__weakrefoffset__")
+STATIC_STRING_IMPL(opaque_container, "__opaque_container__")
} // namespace PyMagicName
+
+namespace Messages
+{
+STATIC_STRING_IMPL(unknownException, "An unknown exception was caught")
+}
+
} // namespace Shiboken
diff --git a/sources/shiboken6/libshiboken/sbkstaticstrings.h b/sources/shiboken6/libshiboken/sbkstaticstrings.h
index 773ff4e6c..017790ee3 100644
--- a/sources/shiboken6/libshiboken/sbkstaticstrings.h
+++ b/sources/shiboken6/libshiboken/sbkstaticstrings.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef SBKSTATICSTRINGS_H
#define SBKSTATICSTRINGS_H
@@ -59,11 +23,12 @@ LIBSHIBOKEN_API PyObject *im_self();
LIBSHIBOKEN_API PyObject *loads();
LIBSHIBOKEN_API PyObject *multi();
LIBSHIBOKEN_API PyObject *name();
+LIBSHIBOKEN_API PyObject *orig_dict();
LIBSHIBOKEN_API PyObject *result();
LIBSHIBOKEN_API PyObject *select_id();
-LIBSHIBOKEN_API PyObject *underscore();
LIBSHIBOKEN_API PyObject *value();
LIBSHIBOKEN_API PyObject *values();
+LIBSHIBOKEN_API PyObject *qtStaticMetaObject();
} // namespace PyName
namespace PyMagicName
@@ -81,7 +46,16 @@ LIBSHIBOKEN_API PyObject *name();
LIBSHIBOKEN_API PyObject *property_methods();
LIBSHIBOKEN_API PyObject *qualname();
LIBSHIBOKEN_API PyObject *self();
+LIBSHIBOKEN_API PyObject *opaque_container();
+LIBSHIBOKEN_API PyObject *code();
+LIBSHIBOKEN_API PyObject *rlshift();
+LIBSHIBOKEN_API PyObject *rrshift();
} // namespace PyMagicName
+
+namespace Messages
+{
+LIBSHIBOKEN_API PyObject *unknownException();
+} // Messages
} // namespace Shiboken
#endif // SBKSTATICSTRINGS_H
diff --git a/sources/shiboken6/libshiboken/sbkstaticstrings_p.h b/sources/shiboken6/libshiboken/sbkstaticstrings_p.h
index 308966481..2a337bf7e 100644
--- a/sources/shiboken6/libshiboken/sbkstaticstrings_p.h
+++ b/sources/shiboken6/libshiboken/sbkstaticstrings_p.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include "sbkpython.h"
#include "shibokenmacros.h"
diff --git a/sources/shiboken6/libshiboken/sbkstring.cpp b/sources/shiboken6/libshiboken/sbkstring.cpp
index 43654d589..1471cd7fe 100644
--- a/sources/shiboken6/libshiboken/sbkstring.cpp
+++ b/sources/shiboken6/libshiboken/sbkstring.cpp
@@ -1,49 +1,10 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include "sbkstring.h"
#include "sbkstaticstrings_p.h"
#include "autodecref.h"
-#include <vector>
-#include <unordered_set>
-
namespace Shiboken::String
{
@@ -107,23 +68,33 @@ PyObject *fromCString(const char *value, int len)
return PyUnicode_FromStringAndSize(value, len);
}
-const char *toCString(PyObject *str, Py_ssize_t *len)
+const char *toCString(PyObject *str)
{
if (str == Py_None)
return nullptr;
+ if (PyUnicode_Check(str))
+ return _PepUnicode_AsString(str);
+ if (PyBytes_Check(str))
+ return PyBytes_AS_STRING(str);
+ return nullptr;
+}
+
+const char *toCString(PyObject *str, Py_ssize_t *len)
+{
+ if (str == Py_None) {
+ *len = 0;
+ return nullptr;
+ }
if (PyUnicode_Check(str)) {
- if (len) {
- // We need to encode the unicode string into utf8 to know the size of returned char *.
- Shiboken::AutoDecRef uniStr(PyUnicode_AsUTF8String(str));
- *len = PyBytes_GET_SIZE(uniStr.object());
- }
+ // We need to encode the unicode string into utf8 to know the size of returned char *.
+ Shiboken::AutoDecRef uniStr(PyUnicode_AsUTF8String(str));
+ *len = PyBytes_GET_SIZE(uniStr.object());
// Return unicode from str instead of uniStr, because the lifetime of the returned pointer
// depends on the lifetime of str.
return _PepUnicode_AsString(str);
}
if (PyBytes_Check(str)) {
- if (len)
- *len = PyBytes_GET_SIZE(str);
+ *len = PyBytes_GET_SIZE(str);
return PyBytes_AS_STRING(str);
}
return nullptr;
@@ -205,50 +176,9 @@ Py_ssize_t len(PyObject *str)
// PyObject *attr = PyObject_GetAttr(obj, name());
//
-using StaticStrings = std::unordered_set<PyObject *>;
-
-static void finalizeStaticStrings(); // forward
-
-static StaticStrings &staticStrings()
-{
- static StaticStrings result;
- return result;
-}
-
-static void finalizeStaticStrings()
-{
- auto &set = staticStrings();
- for (PyObject *ob : set) {
- Py_SET_REFCNT(ob, 1);
- Py_DECREF(ob);
- }
- set.clear();
-}
-
PyObject *createStaticString(const char *str)
{
- static bool initialized = false;
- if (!initialized) {
- Py_AtExit(finalizeStaticStrings);
- initialized = true;
- }
- PyObject *result = PyUnicode_InternFromString(str);
- if (result == nullptr) {
- // This error is never checked, but also very unlikely. Report and exit.
- PyErr_Print();
- Py_FatalError("unexpected error in createStaticString()");
- }
- auto it = staticStrings().find(result);
- if (it == staticStrings().end())
- staticStrings().insert(result);
- /*
- * Note: We always add one reference even if we have a new string.
- * This makes the strings immortal, and we are safe if someone
- * uses AutoDecRef, although the set cannot cope with deletions.
- * The exit handler cleans that up, anyway.
- */
- Py_INCREF(result);
- return result;
+ return PyUnicode_InternFromString(str);
}
///////////////////////////////////////////////////////////////////////
@@ -303,4 +233,16 @@ PyObject *getSnakeCaseName(PyObject *name, bool lower)
return name;
}
+// Return a generic representation of a PyObject as does PyObject_Repr().
+// Note: PyObject_Repr() may not be called on self from __repr__() as this
+// causes a recursion.
+PyObject *repr(PyObject *o)
+{
+ if (o == nullptr)
+ return PyUnicode_FromString("<NULL>");
+ if (o == Py_None)
+ return PyUnicode_FromString("None");
+ return PyUnicode_FromFormat("<%s object at %p>", Py_TYPE(o)->tp_name, o);
+}
+
} // namespace Shiboken::String
diff --git a/sources/shiboken6/libshiboken/sbkstring.h b/sources/shiboken6/libshiboken/sbkstring.h
index 4b416e16c..f91847c11 100644
--- a/sources/shiboken6/libshiboken/sbkstring.h
+++ b/sources/shiboken6/libshiboken/sbkstring.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef SBKSTRING_H
#define SBKSTRING_H
@@ -55,7 +19,8 @@ namespace String
LIBSHIBOKEN_API bool isConvertible(PyObject *obj);
LIBSHIBOKEN_API PyObject *fromCString(const char *value);
LIBSHIBOKEN_API PyObject *fromCString(const char *value, int len);
- LIBSHIBOKEN_API const char *toCString(PyObject *str, Py_ssize_t *len = nullptr);
+ LIBSHIBOKEN_API const char *toCString(PyObject *str);
+ LIBSHIBOKEN_API const char *toCString(PyObject *str, Py_ssize_t *len);
LIBSHIBOKEN_API bool concat(PyObject **val1, PyObject *val2);
LIBSHIBOKEN_API PyObject *fromFormat(const char *format, ...);
LIBSHIBOKEN_API PyObject *fromStringAndSize(const char *str, Py_ssize_t size);
@@ -64,6 +29,7 @@ namespace String
LIBSHIBOKEN_API PyObject *createStaticString(const char *str);
LIBSHIBOKEN_API PyObject *getSnakeCaseName(const char *name, bool lower);
LIBSHIBOKEN_API PyObject *getSnakeCaseName(PyObject *name, bool lower);
+ LIBSHIBOKEN_API PyObject *repr(PyObject *o);
} // namespace String
} // namespace Shiboken
diff --git a/sources/shiboken6/libshiboken/sbktypefactory.cpp b/sources/shiboken6/libshiboken/sbktypefactory.cpp
index bdde7598f..079548eed 100644
--- a/sources/shiboken6/libshiboken/sbktypefactory.cpp
+++ b/sources/shiboken6/libshiboken/sbktypefactory.cpp
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include "sbktypefactory.h"
#include "shiboken.h"
@@ -43,6 +7,8 @@
extern "C"
{
+using Shiboken::AutoDecRef;
+
PyTypeObject *SbkType_FromSpec(PyType_Spec *spec)
{
return SbkType_FromSpec_BMDWB(spec, nullptr, nullptr, 0, 0, nullptr);
@@ -63,6 +29,70 @@ PyTypeObject *SbkType_FromSpecBasesMeta(PyType_Spec *spec, PyObject *bases, PyTy
return SbkType_FromSpec_BMDWB(spec, bases, meta, 0, 0, nullptr);
}
+#ifdef PYPY_VERSION
+
+static PyObject *_PyType_FromSpecWithBases(PyType_Spec *, PyObject *);
+
+#else
+
+#define _PyType_FromSpecWithBases PyType_FromSpecWithBases
+
+#endif // PYPY_VERSION
+
+// PYSIDE-2230: Not so temporary fix for Python 3.12.
+// A tp_new is no longer allowed in a meta class.
+// Hopefully, the Python devs will supply the missing support.
+// It turned out that they will not fix that, as expected.
+// Note: Python 3.12 is the first version that grabs the metaclass from base classes.
+static PyObject *_PyType_FromSpecWithBasesHack(PyType_Spec *spec,
+ PyObject *bases,
+ PyTypeObject *meta)
+{
+ PyTypeObject *keepMeta{};
+ newfunc keepNew{};
+ AutoDecRef basesPatch{};
+
+ if (bases) {
+ if (bases == Py_None) {
+ // PYSIDE-2230: This is the SbkObject entry which has no base to provide
+ // the metaclass. We patch it in by modifying `object`s class.
+ assert(meta);
+ auto *base = reinterpret_cast<PyObject *>(&PyBaseObject_Type);
+ base->ob_type = meta;
+ basesPatch.reset(Py_BuildValue("(O)", &PyBaseObject_Type));
+ bases = basesPatch.object();
+ }
+
+ Py_ssize_t n = PyTuple_GET_SIZE(bases);
+ for (auto idx = 0; idx < n; ++idx) {
+ PyTypeObject *base = reinterpret_cast<PyTypeObject *>(PyTuple_GET_ITEM(bases, idx));
+ PyTypeObject *meta = Py_TYPE(base);
+ if (meta->tp_new != PyType_Type.tp_new) {
+ // make sure there is no second meta class
+ assert(keepMeta == nullptr);
+ keepMeta = meta;
+ keepNew = meta->tp_new;
+ meta->tp_new = PyType_Type.tp_new;
+ }
+ }
+ }
+
+#if !defined(Py_LIMITED_API) && PY_VERSION_HEX >= 0x030C0000
+ auto *ret = PyType_FromMetaclass(meta, nullptr /*module*/, spec, bases);
+#else
+ auto *ret = _PyType_FromSpecWithBases(spec, bases);
+#endif
+
+ if (keepMeta)
+ keepMeta->tp_new = keepNew;
+ if (basesPatch.object()) {
+ // undo the metaclass patch.
+ auto *base = PyTuple_GET_ITEM(basesPatch.object(), 0);
+ base->ob_type = &PyType_Type;
+ }
+ return ret;
+}
+
PyTypeObject *SbkType_FromSpec_BMDWB(PyType_Spec *spec,
PyObject *bases,
PyTypeObject *meta,
@@ -87,7 +117,7 @@ PyTypeObject *SbkType_FromSpec_BMDWB(PyType_Spec *spec,
int package_level = atoi(spec->name);
const char *mod = new_spec.name = colon + 1;
- PyObject *obType = PyType_FromSpecWithBases(&new_spec, bases);
+ PyObject *obType = _PyType_FromSpecWithBasesHack(&new_spec, bases, meta);
if (obType == nullptr)
return nullptr;
@@ -99,18 +129,14 @@ PyTypeObject *SbkType_FromSpec_BMDWB(PyType_Spec *spec,
qual = dot + 1;
}
int mlen = qual - mod - 1;
- Shiboken::AutoDecRef module(Shiboken::String::fromCString(mod, mlen));
- Shiboken::AutoDecRef qualname(Shiboken::String::fromCString(qual));
- if (PyObject_SetAttr(obType, Shiboken::PyMagicName::module(), module) < 0)
- return nullptr;
- if (PyObject_SetAttr(obType, Shiboken::PyMagicName::qualname(), qualname) < 0)
- return nullptr;
+ AutoDecRef module(Shiboken::String::fromCString(mod, mlen));
+ AutoDecRef qualname(Shiboken::String::fromCString(qual));
auto *type = reinterpret_cast<PyTypeObject *>(obType);
if (meta) {
PyTypeObject *hold = Py_TYPE(type);
- Py_TYPE(type) = meta;
+ obType->ob_type = meta;
Py_INCREF(Py_TYPE(type));
if (hold->tp_flags & Py_TPFLAGS_HEAPTYPE)
Py_DECREF(hold);
@@ -123,8 +149,259 @@ PyTypeObject *SbkType_FromSpec_BMDWB(PyType_Spec *spec,
if (bufferprocs)
PepType_AS_BUFFER(type) = bufferprocs;
+#ifdef PYPY_VERSION
+ // PYSIDE-535: Careful: Using PyObject_SetAttr would have the side-effect of calling
+ // PyType_Ready too early. (at least in PyPy, which caused pretty long debugging.)
+ auto *ht = reinterpret_cast<PyHeapTypeObject *>(type);
+ ht->ht_qualname = qualname;
+ AutoDecRef tpDict(PepType_GetDict(type));
+ if (PyDict_SetItem(tpDict.object(), Shiboken::PyMagicName::qualname(), qualname))
+ return nullptr;
+ if (PyDict_SetItem(tpDict.object(), Shiboken::PyMagicName::module(), module))
+ return nullptr;
+ PyType_Ready(type);
+#else
+ if (PyObject_SetAttr(obType, Shiboken::PyMagicName::module(), module) < 0)
+ return nullptr;
+ if (PyObject_SetAttr(obType, Shiboken::PyMagicName::qualname(), qualname) < 0)
+ return nullptr;
PyType_Modified(type);
+#endif
return type;
}
+#ifdef PYPY_VERSION
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Reimplementation of `PyType_FromSpecWithBases`
+//
+// This is almost the original code from Python 3.7 with a few changes.
+// Especially the call to `PyType_Ready` is deferred until the needed
+// post-actions are carried out in `SbkType_FromSpec_BMDWBD`.
+//
+// FIXME remove ASAP.
+// Version is not clear, yet. Current version == 7.3.6
+//
+
+static const short slotoffsets[] = {
+ -1, /* invalid slot */
+/* Generated by typeslots.py */
+0,
+0,
+offsetof(PyHeapTypeObject, as_mapping.mp_ass_subscript),
+offsetof(PyHeapTypeObject, as_mapping.mp_length),
+offsetof(PyHeapTypeObject, as_mapping.mp_subscript),
+offsetof(PyHeapTypeObject, as_number.nb_absolute),
+offsetof(PyHeapTypeObject, as_number.nb_add),
+offsetof(PyHeapTypeObject, as_number.nb_and),
+offsetof(PyHeapTypeObject, as_number.nb_bool),
+offsetof(PyHeapTypeObject, as_number.nb_divmod),
+offsetof(PyHeapTypeObject, as_number.nb_float),
+offsetof(PyHeapTypeObject, as_number.nb_floor_divide),
+offsetof(PyHeapTypeObject, as_number.nb_index),
+offsetof(PyHeapTypeObject, as_number.nb_inplace_add),
+offsetof(PyHeapTypeObject, as_number.nb_inplace_and),
+offsetof(PyHeapTypeObject, as_number.nb_inplace_floor_divide),
+offsetof(PyHeapTypeObject, as_number.nb_inplace_lshift),
+offsetof(PyHeapTypeObject, as_number.nb_inplace_multiply),
+offsetof(PyHeapTypeObject, as_number.nb_inplace_or),
+offsetof(PyHeapTypeObject, as_number.nb_inplace_power),
+offsetof(PyHeapTypeObject, as_number.nb_inplace_remainder),
+offsetof(PyHeapTypeObject, as_number.nb_inplace_rshift),
+offsetof(PyHeapTypeObject, as_number.nb_inplace_subtract),
+offsetof(PyHeapTypeObject, as_number.nb_inplace_true_divide),
+offsetof(PyHeapTypeObject, as_number.nb_inplace_xor),
+offsetof(PyHeapTypeObject, as_number.nb_int),
+offsetof(PyHeapTypeObject, as_number.nb_invert),
+offsetof(PyHeapTypeObject, as_number.nb_lshift),
+offsetof(PyHeapTypeObject, as_number.nb_multiply),
+offsetof(PyHeapTypeObject, as_number.nb_negative),
+offsetof(PyHeapTypeObject, as_number.nb_or),
+offsetof(PyHeapTypeObject, as_number.nb_positive),
+offsetof(PyHeapTypeObject, as_number.nb_power),
+offsetof(PyHeapTypeObject, as_number.nb_remainder),
+offsetof(PyHeapTypeObject, as_number.nb_rshift),
+offsetof(PyHeapTypeObject, as_number.nb_subtract),
+offsetof(PyHeapTypeObject, as_number.nb_true_divide),
+offsetof(PyHeapTypeObject, as_number.nb_xor),
+offsetof(PyHeapTypeObject, as_sequence.sq_ass_item),
+offsetof(PyHeapTypeObject, as_sequence.sq_concat),
+offsetof(PyHeapTypeObject, as_sequence.sq_contains),
+offsetof(PyHeapTypeObject, as_sequence.sq_inplace_concat),
+offsetof(PyHeapTypeObject, as_sequence.sq_inplace_repeat),
+offsetof(PyHeapTypeObject, as_sequence.sq_item),
+offsetof(PyHeapTypeObject, as_sequence.sq_length),
+offsetof(PyHeapTypeObject, as_sequence.sq_repeat),
+offsetof(PyHeapTypeObject, ht_type.tp_alloc),
+offsetof(PyHeapTypeObject, ht_type.tp_base),
+offsetof(PyHeapTypeObject, ht_type.tp_bases),
+offsetof(PyHeapTypeObject, ht_type.tp_call),
+offsetof(PyHeapTypeObject, ht_type.tp_clear),
+offsetof(PyHeapTypeObject, ht_type.tp_dealloc),
+offsetof(PyHeapTypeObject, ht_type.tp_del),
+offsetof(PyHeapTypeObject, ht_type.tp_descr_get),
+offsetof(PyHeapTypeObject, ht_type.tp_descr_set),
+offsetof(PyHeapTypeObject, ht_type.tp_doc),
+offsetof(PyHeapTypeObject, ht_type.tp_getattr),
+offsetof(PyHeapTypeObject, ht_type.tp_getattro),
+offsetof(PyHeapTypeObject, ht_type.tp_hash),
+offsetof(PyHeapTypeObject, ht_type.tp_init),
+offsetof(PyHeapTypeObject, ht_type.tp_is_gc),
+offsetof(PyHeapTypeObject, ht_type.tp_iter),
+offsetof(PyHeapTypeObject, ht_type.tp_iternext),
+offsetof(PyHeapTypeObject, ht_type.tp_methods),
+offsetof(PyHeapTypeObject, ht_type.tp_new),
+offsetof(PyHeapTypeObject, ht_type.tp_repr),
+offsetof(PyHeapTypeObject, ht_type.tp_richcompare),
+offsetof(PyHeapTypeObject, ht_type.tp_setattr),
+offsetof(PyHeapTypeObject, ht_type.tp_setattro),
+offsetof(PyHeapTypeObject, ht_type.tp_str),
+offsetof(PyHeapTypeObject, ht_type.tp_traverse),
+offsetof(PyHeapTypeObject, ht_type.tp_members),
+offsetof(PyHeapTypeObject, ht_type.tp_getset),
+offsetof(PyHeapTypeObject, ht_type.tp_free),
+offsetof(PyHeapTypeObject, as_number.nb_matrix_multiply),
+offsetof(PyHeapTypeObject, as_number.nb_inplace_matrix_multiply),
+offsetof(PyHeapTypeObject, as_async.am_await),
+offsetof(PyHeapTypeObject, as_async.am_aiter),
+offsetof(PyHeapTypeObject, as_async.am_anext),
+offsetof(PyHeapTypeObject, ht_type.tp_finalize),
+};
+
+static PyTypeObject *
+best_base(PyObject *bases)
+{
+ // We always have only one base
+ return reinterpret_cast<PyTypeObject *>(PyTuple_GET_ITEM(bases, 0));
+}
+
+static PyObject *
+_PyType_FromSpecWithBases(PyType_Spec *spec, PyObject *bases)
+{
+ PyHeapTypeObject *res = reinterpret_cast<PyHeapTypeObject *>(
+ PyType_GenericAlloc(&PyType_Type, 0));
+ PyTypeObject *type, *base;
+ PyObject *modname;
+ char *s;
+ char *res_start = reinterpret_cast<char *>(res);
+ PyType_Slot *slot;
+
+ if (res == nullptr)
+ return nullptr;
+
+ if (spec->name == nullptr) {
+ PyErr_SetString(PyExc_SystemError,
+ "Type spec does not define the name field.");
+ goto fail;
+ }
+
+ /* Set the type name and qualname */
+ s = strrchr(const_cast<char *>(spec->name), '.');
+ if (s == nullptr)
+ s = (char*)spec->name;
+ else
+ s++;
+
+ type = &res->ht_type;
+ /* The flags must be initialized early, before the GC traverses us */
+ type->tp_flags = spec->flags | Py_TPFLAGS_HEAPTYPE;
+ res->ht_name = PyUnicode_FromString(s);
+ if (!res->ht_name)
+ goto fail;
+ res->ht_qualname = res->ht_name;
+ Py_INCREF(res->ht_qualname);
+ type->tp_name = spec->name;
+
+ /* Adjust for empty tuple bases */
+ if (!bases) {
+ base = &PyBaseObject_Type;
+ /* See whether Py_tp_base(s) was specified */
+ for (slot = spec->slots; slot->slot; slot++) {
+ if (slot->slot == Py_tp_base)
+ base = reinterpret_cast<PyTypeObject *>(slot->pfunc);
+ else if (slot->slot == Py_tp_bases) {
+ bases = reinterpret_cast<PyObject *>(slot->pfunc);
+ Py_INCREF(bases);
+ }
+ }
+ if (!bases)
+ bases = PyTuple_Pack(1, base);
+ if (!bases)
+ goto fail;
+ }
+ else
+ Py_INCREF(bases);
+
+ /* Calculate best base, and check that all bases are type objects */
+ base = best_base(bases);
+ if (base == nullptr) {
+ goto fail;
+ }
+
+ /* Initialize essential fields */
+ type->tp_as_async = &res->as_async;
+ type->tp_as_number = &res->as_number;
+ type->tp_as_sequence = &res->as_sequence;
+ type->tp_as_mapping = &res->as_mapping;
+ type->tp_as_buffer = &res->as_buffer;
+ /* Set tp_base and tp_bases */
+ type->tp_bases = bases;
+ bases = nullptr;
+ Py_INCREF(base);
+ type->tp_base = base;
+
+ type->tp_basicsize = spec->basicsize;
+ type->tp_itemsize = spec->itemsize;
+
+ for (slot = spec->slots; slot->slot; slot++) {
+ if (slot->slot == Py_tp_base || slot->slot == Py_tp_bases)
+ /* Processed above */
+ continue;
+ *reinterpret_cast<void **>(res_start + slotoffsets[slot->slot]) = slot->pfunc;
+
+ /* need to make a copy of the docstring slot, which usually
+ points to a static string literal */
+ if (slot->slot == Py_tp_doc) {
+ const char *old_doc = reinterpret_cast<char *>(slot->pfunc);
+ //_PyType_DocWithoutSignature(type->tp_name, slot->pfunc);
+ size_t len = strlen(old_doc)+1;
+ char *tp_doc = reinterpret_cast<char *>(PyObject_MALLOC(len));
+ if (tp_doc == nullptr) {
+ type->tp_doc = nullptr;
+ PyErr_NoMemory();
+ goto fail;
+ }
+ memcpy(tp_doc, old_doc, len);
+ type->tp_doc = tp_doc;
+ }
+ }
+ if (type->tp_dealloc == nullptr) {
+ /* It's a heap type, so needs the heap types' dealloc.
+ subtype_dealloc will call the base type's tp_dealloc, if
+ necessary. */
+ type->tp_dealloc = _PyPy_subtype_dealloc;
+ }
+
+ /// Here is the only change needed: Do not finalize type creation.
+ // if (PyType_Ready(type) < 0)
+ // goto fail;
+ PepType_SetDict(type, PyDict_New());
+ /// This is not found in PyPy:
+ // if (type->tp_dictoffset) {
+ // res->ht_cached_keys = _PyDict_NewKeysForClass();
+ // }
+
+ /* Set type.__module__ */
+ /// Removed __module__ handling, already implemented.
+
+ return (PyObject*)res;
+
+ fail:
+ Py_DECREF(res);
+ return nullptr;
+}
+
+#endif // PYPY_VERSION
+
} //extern "C"
diff --git a/sources/shiboken6/libshiboken/sbktypefactory.h b/sources/shiboken6/libshiboken/sbktypefactory.h
index 092c168b6..81cb32d41 100644
--- a/sources/shiboken6/libshiboken/sbktypefactory.h
+++ b/sources/shiboken6/libshiboken/sbktypefactory.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef SBKTYPEFACTORY_H
#define SBKTYPEFACTORY_H
@@ -45,6 +9,7 @@
extern "C"
{
+// PYSIDE-535: Encapsulation of PyType_FromSpec special-cased for PyPy
LIBSHIBOKEN_API PyTypeObject *SbkType_FromSpec(PyType_Spec *);
LIBSHIBOKEN_API PyTypeObject *SbkType_FromSpecWithMeta(PyType_Spec *, PyTypeObject *);
LIBSHIBOKEN_API PyTypeObject *SbkType_FromSpecWithBases(PyType_Spec *, PyObject *);
diff --git a/sources/shiboken6/libshiboken/sbkversion.h.in b/sources/shiboken6/libshiboken/sbkversion.h.in
index 99ee7f93e..5c0b38fdb 100644
--- a/sources/shiboken6/libshiboken/sbkversion.h.in
+++ b/sources/shiboken6/libshiboken/sbkversion.h.in
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef SBKVERSION_H
#define SBKVERSION_H
@@ -46,8 +10,8 @@
#define SHIBOKEN_MICRO_VERSION @shiboken_MICRO_VERSION@
#define SHIBOKEN_RELEASE_LEVEL "final"
#define SHIBOKEN_SERIAL 0
-#define PYTHON_VERSION_MAJOR @PYTHON_VERSION_MAJOR@
-#define PYTHON_VERSION_MINOR @PYTHON_VERSION_MINOR@
-#define PYTHON_VERSION_PATCH @PYTHON_VERSION_PATCH@
+#define PYTHON_VERSION_MAJOR @Python_VERSION_MAJOR@
+#define PYTHON_VERSION_MINOR @Python_VERSION_MINOR@
+#define PYTHON_VERSION_PATCH @Python_VERSION_PATCH@
#endif
diff --git a/sources/shiboken6/libshiboken/sbkwindows.h b/sources/shiboken6/libshiboken/sbkwindows.h
new file mode 100644
index 000000000..9e753fa5e
--- /dev/null
+++ b/sources/shiboken6/libshiboken/sbkwindows.h
@@ -0,0 +1,17 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef SBKWINDOWS_H
+#define SBKWINDOWS_H
+
+#ifdef _WIN32
+# ifndef NOMINMAX
+# define NOMINMAX
+# endif
+# ifndef WIN32_LEAN_AND_MEAN
+# define WIN32_LEAN_AND_MEAN
+# endif
+# include <windows.h>
+#endif
+
+#endif // SBKWINDOWS_H
diff --git a/sources/shiboken6/libshiboken/shiboken.h b/sources/shiboken6/libshiboken/shiboken.h
index 3e1df5235..fcf777ae0 100644
--- a/sources/shiboken6/libshiboken/shiboken.h
+++ b/sources/shiboken6/libshiboken/shiboken.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef SHIBOKEN_H
#define SHIBOKEN_H
@@ -47,9 +11,11 @@
#include "gilstate.h"
#include "threadstatesaver.h"
#include "helper.h"
+#include "pyobjectholder.h"
#include "sbkarrayconverter.h"
#include "sbkconverter.h"
#include "sbkenum.h"
+#include "sbkerrors.h"
#include "sbkmodule.h"
#include "sbkstring.h"
#include "sbkstaticstrings.h"
diff --git a/sources/shiboken6/libshiboken/shibokenbuffer.cpp b/sources/shiboken6/libshiboken/shibokenbuffer.cpp
index 45c727717..d04613895 100644
--- a/sources/shiboken6/libshiboken/shibokenbuffer.cpp
+++ b/sources/shiboken6/libshiboken/shibokenbuffer.cpp
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include "shibokenbuffer.h"
#include <cstdlib>
diff --git a/sources/shiboken6/libshiboken/shibokenbuffer.h b/sources/shiboken6/libshiboken/shibokenbuffer.h
index 512d9db4d..6b17eb6eb 100644
--- a/sources/shiboken6/libshiboken/shibokenbuffer.h
+++ b/sources/shiboken6/libshiboken/shibokenbuffer.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef SHIBOKEN_BUFFER_H
#define SHIBOKEN_BUFFER_H
diff --git a/sources/shiboken6/libshiboken/shibokenmacros.h b/sources/shiboken6/libshiboken/shibokenmacros.h
index 1a93d8c3b..3c083c5bb 100644
--- a/sources/shiboken6/libshiboken/shibokenmacros.h
+++ b/sources/shiboken6/libshiboken/shibokenmacros.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef SHIBOKENMACROS_H
#define SHIBOKENMACROS_H
diff --git a/sources/shiboken6/libshiboken/signature.h b/sources/shiboken6/libshiboken/signature.h
index 0459d8661..e0130b5a6 100644
--- a/sources/shiboken6/libshiboken/signature.h
+++ b/sources/shiboken6/libshiboken/signature.h
@@ -1,52 +1,18 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef SIGNATURE_H
#define SIGNATURE_H
+#include "shibokenmacros.h"
+#include "sbkpython.h"
+
extern "C"
{
LIBSHIBOKEN_API int InitSignatureStrings(PyTypeObject *, const char *[]);
LIBSHIBOKEN_API void FinishSignatureInitialization(PyObject *, const char *[]);
LIBSHIBOKEN_API void SetError_Argument(PyObject *, const char *, PyObject *);
-LIBSHIBOKEN_API PyObject *Sbk_TypeGet___signature__(PyObject *, PyObject *);
LIBSHIBOKEN_API PyObject *Sbk_TypeGet___doc__(PyObject *);
LIBSHIBOKEN_API PyObject *GetFeatureDict();
diff --git a/sources/shiboken6/libshiboken/signature/signature.cpp b/sources/shiboken6/libshiboken/signature/signature.cpp
index c844e2694..3255cb56d 100644
--- a/sources/shiboken6/libshiboken/signature/signature.cpp
+++ b/sources/shiboken6/libshiboken/signature/signature.cpp
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
////////////////////////////////////////////////////////////////////////////
//
@@ -49,13 +13,16 @@
// General documentation can be found in `signature_doc.rst`.
//
+#include "signature.h"
+#include "signature_p.h"
+
#include "basewrapper.h"
#include "autodecref.h"
#include "sbkstring.h"
#include "sbkstaticstrings.h"
#include "sbkstaticstrings_p.h"
#include "sbkfeature_base.h"
-#include "signature_p.h"
+
#include <structmember.h>
using namespace Shiboken;
@@ -86,6 +53,11 @@ PyObject *GetClassOrModOf(PyObject *ob)
Py_INCREF(ob);
return ob;
}
+#ifdef PYPY_VERSION
+ // PYSIDE-535: PyPy has a special builtin method that acts almost like PyCFunction.
+ if (Py_TYPE(ob) == PepBuiltinMethod_TypePtr)
+ return _get_class_of_bm(ob);
+#endif
if (PyType_IsSubtype(Py_TYPE(ob), &PyCFunction_Type))
return _get_class_of_cf(ob);
if (Py_TYPE(ob) == PepStaticMethod_TypePtr)
@@ -106,27 +78,24 @@ PyObject *GetTypeKey(PyObject *ob)
*
* PYSIDE-1286: We use correct __module__ and __qualname__, now.
*/
- // XXX we obtain also the current selection.
- // from the current module name.
AutoDecRef module_name(PyObject_GetAttr(ob, PyMagicName::module()));
if (module_name.isNull()) {
// We have no module_name because this is a module ;-)
PyErr_Clear();
module_name.reset(PyObject_GetAttr(ob, PyMagicName::name()));
- return Py_BuildValue("O"/*i"*/, module_name.object()/*, getFeatureSelectId()*/);
+ return Py_BuildValue("O", module_name.object());
}
AutoDecRef class_name(PyObject_GetAttr(ob, PyMagicName::qualname()));
if (class_name.isNull()) {
Py_FatalError("Signature: missing class name in GetTypeKey");
return nullptr;
}
- return Py_BuildValue("(O"/*i*/"O)", module_name.object(), /*getFeatureSelectId(),*/
- class_name.object());
+ return Py_BuildValue("(OO)", module_name.object(), class_name.object());
}
static PyObject *empty_dict = nullptr;
-PyObject *TypeKey_to_PropsDict(PyObject *type_key, PyObject *obtype)
+PyObject *TypeKey_to_PropsDict(PyObject *type_key)
{
PyObject *dict = PyDict_GetItem(pyside_globals->arg_dict, type_key);
if (dict == nullptr) {
@@ -167,6 +136,24 @@ static PyObject *_GetSignature_Cached(PyObject *props, PyObject *func_kind, PyOb
return Py_INCREF(value), value;
}
+#ifdef PYPY_VERSION
+PyObject *GetSignature_Method(PyObject *obfunc, PyObject *modifier)
+{
+ AutoDecRef obtype_mod(GetClassOrModOf(obfunc));
+ AutoDecRef type_key(GetTypeKey(obtype_mod));
+ if (type_key.isNull())
+ Py_RETURN_NONE;
+ PyObject *dict = TypeKey_to_PropsDict(type_key);
+ if (dict == nullptr)
+ return nullptr;
+ AutoDecRef func_name(PyObject_GetAttr(obfunc, PyMagicName::name()));
+ PyObject *props = !func_name.isNull() ? PyDict_GetItem(dict, func_name) : nullptr;
+ if (props == nullptr)
+ Py_RETURN_NONE;
+ return _GetSignature_Cached(props, PyName::method(), modifier);
+}
+#endif
+
PyObject *GetSignature_Function(PyObject *obfunc, PyObject *modifier)
{
// make sure that we look into PyCFunction, only...
@@ -176,7 +163,7 @@ PyObject *GetSignature_Function(PyObject *obfunc, PyObject *modifier)
AutoDecRef type_key(GetTypeKey(obtype_mod));
if (type_key.isNull())
Py_RETURN_NONE;
- PyObject *dict = TypeKey_to_PropsDict(type_key, obtype_mod);
+ PyObject *dict = TypeKey_to_PropsDict(type_key);
if (dict == nullptr)
return nullptr;
AutoDecRef func_name(PyObject_GetAttr(obfunc, PyMagicName::name()));
@@ -186,7 +173,7 @@ PyObject *GetSignature_Function(PyObject *obfunc, PyObject *modifier)
int flags = PyCFunction_GET_FLAGS(obfunc);
PyObject *func_kind;
- if (PyModule_Check(obtype_mod))
+ if (PyModule_Check(obtype_mod.object()))
func_kind = PyName::function();
else if (flags & METH_CLASS)
func_kind = PyName::classmethod();
@@ -204,13 +191,13 @@ PyObject *GetSignature_Wrapper(PyObject *ob, PyObject *modifier)
AutoDecRef class_key(GetTypeKey(objclass));
if (func_name.isNull() || objclass.isNull() || class_key.isNull())
return nullptr;
- PyObject *dict = TypeKey_to_PropsDict(class_key, objclass);
+ PyObject *dict = TypeKey_to_PropsDict(class_key);
if (dict == nullptr)
return nullptr;
PyObject *props = PyDict_GetItem(dict, func_name);
if (props == nullptr) {
// handle `__init__` like the class itself
- if (strcmp(String::toCString(func_name), "__init__") == 0)
+ if (PyUnicode_CompareWithASCIIString(func_name, "__init__") == 0)
return GetSignature_TypeMod(objclass, modifier);
Py_RETURN_NONE;
}
@@ -222,7 +209,7 @@ PyObject *GetSignature_TypeMod(PyObject *ob, PyObject *modifier)
AutoDecRef ob_name(PyObject_GetAttr(ob, PyMagicName::name()));
AutoDecRef ob_key(GetTypeKey(ob));
- PyObject *dict = TypeKey_to_PropsDict(ob_key, ob);
+ PyObject *dict = TypeKey_to_PropsDict(ob_key);
if (dict == nullptr)
return nullptr;
PyObject *props = PyDict_GetItem(dict, ob_name);
@@ -240,9 +227,17 @@ PyObject *GetSignature_TypeMod(PyObject *ob, PyObject *modifier)
// The `modifier` argument is a string that is passed in from `loader.py`.
// Configuration what the modifiers mean is completely in Python.
//
+// PYSIDE-2101: The __signature__ attribute is gone due to rlcompleter.
+//
PyObject *get_signature_intern(PyObject *ob, PyObject *modifier)
{
+#ifdef PYPY_VERSION
+ // PYSIDE-535: PyPy has a special builtin method that acts almost like PyCFunction.
+ if (Py_TYPE(ob) == PepBuiltinMethod_TypePtr) {
+ return pyside_bm_get___signature__(ob, modifier);
+ }
+#endif
if (PyType_IsSubtype(Py_TYPE(ob), &PyCFunction_Type))
return pyside_cf_get___signature__(ob, modifier);
if (Py_TYPE(ob) == PepStaticMethod_TypePtr)
@@ -253,6 +248,9 @@ PyObject *get_signature_intern(PyObject *ob, PyObject *modifier)
return pyside_tp_get___signature__(ob, modifier);
if (Py_TYPE(ob) == &PyWrapperDescr_Type)
return pyside_wd_get___signature__(ob, modifier);
+ // For classmethods we use the simple wrapper description implementation.
+ if (Py_TYPE(ob) == &PyClassMethodDescr_Type)
+ return pyside_wd_get___signature__(ob, modifier);
return nullptr;
}
@@ -261,8 +259,6 @@ static PyObject *get_signature(PyObject * /* self */, PyObject *args)
PyObject *ob;
PyObject *modifier = nullptr;
- init_module_1();
-
if (!PyArg_ParseTuple(args, "O|O", &ob, &modifier))
return nullptr;
if (Py_TYPE(ob) == PepFunction_TypePtr)
@@ -294,14 +290,25 @@ static PyObject *feature_import(PyObject * /* self */, PyObject *args, PyObject
if (import_func == nullptr) {
Py_FatalError("builtins has no \"__orig_import__\" function");
}
- return PyObject_Call(import_func, args, kwds);
+ ret = PyObject_Call(import_func, args, kwds);
+ if (ret) {
+ // PYSIDE-2029: Intercept after the import to search for PySide usage.
+ PyObject *post = PyObject_CallFunctionObjArgs(pyside_globals->feature_imported_func,
+ ret, nullptr);
+ Py_XDECREF(post);
+ if (post == nullptr) {
+ Py_DECREF(ret);
+ return nullptr;
+ }
+ }
+ return ret;
}
PyMethodDef signature_methods[] = {
- {"__feature_import__", (PyCFunction)feature_import, METH_VARARGS | METH_KEYWORDS},
+ {"__feature_import__", (PyCFunction)feature_import, METH_VARARGS | METH_KEYWORDS, nullptr},
{"get_signature", (PyCFunction)get_signature, METH_VARARGS,
- "get the __signature__, but pass an optional string parameter"},
- {nullptr, nullptr}
+ "get the signature, passing an optional string parameter"},
+ {nullptr, nullptr, 0, nullptr}
};
////////////////////////////////////////////////////////////////////////////
@@ -324,7 +331,6 @@ PyMethodDef signature_methods[] = {
static int PySide_BuildSignatureArgs(PyObject *obtype_mod, const char *signatures[])
{
- init_module_1();
AutoDecRef type_key(GetTypeKey(obtype_mod));
/*
* PYSIDE-996: Avoid string overflow in MSVC, which has a limit of
@@ -352,7 +358,6 @@ PyObject *PySide_BuildSignatureProps(PyObject *type_key)
* We simply pick up the arguments that we stored here and replace
* them by the function result.
*/
- init_module_2();
if (type_key == nullptr)
return nullptr;
PyObject *numkey = PyDict_GetItem(pyside_globals->arg_dict, type_key);
@@ -382,8 +387,24 @@ PyObject *PySide_BuildSignatureProps(PyObject *type_key)
//
////////////////////////////////////////////////////////////////////////////
+#ifdef PYPY_VERSION
+static bool get_lldebug_flag()
+{
+ auto *dic = PySys_GetObject("pypy_translation_info");
+ int lldebug = PyObject_IsTrue(PyDict_GetItemString(dic, "translation.lldebug"));
+ int lldebug0 = PyObject_IsTrue(PyDict_GetItemString(dic, "translation.lldebug0"));
+ return lldebug || lldebug0;
+}
+
+#endif
+
static int PySide_FinishSignatures(PyObject *module, const char *signatures[])
{
+#ifdef PYPY_VERSION
+ static const bool have_problem = get_lldebug_flag();
+ if (have_problem)
+ return 0; // crash with lldebug at `PyDict_Next`
+#endif
/*
* Initialization of module functions and resolving of static methods.
*/
@@ -410,8 +431,6 @@ static int PySide_FinishSignatures(PyObject *module, const char *signatures[])
if (PyCFunction_Check(func))
if (PyDict_SetItem(pyside_globals->map_dict, func, module) < 0)
return -1;
- if (_finish_nested_classes(obdict) < 0)
- return -1;
// The finish_import function will not work the first time since phase 2
// was not yet run. But that is ok, because the first import is always for
// the shiboken module (or a test module).
@@ -433,9 +452,12 @@ static int PySide_FinishSignatures(PyObject *module, const char *signatures[])
int InitSignatureStrings(PyTypeObject *type, const char *signatures[])
{
+ // PYSIDE-2404: This function now also builds the mapping for static methods.
+ // It was one missing spot to let Lazy import work.
+ init_shibokensupport_module();
auto *ob_type = reinterpret_cast<PyObject *>(type);
int ret = PySide_BuildSignatureArgs(ob_type, signatures);
- if (ret < 0) {
+ if (ret < 0 || _build_func_to_type(ob_type) < 0) {
PyErr_Print();
PyErr_SetNone(PyExc_ImportError);
}
@@ -452,7 +474,17 @@ void FinishSignatureInitialization(PyObject *module, const char *signatures[])
* Still, it is not possible to call init phase 2 from here,
* because the import is still running. Do it from Python!
*/
- if ( PySide_PatchTypes() < 0
+ init_shibokensupport_module();
+
+#ifndef PYPY_VERSION
+ static const bool patch_types = true;
+#else
+ // PYSIDE-535: On PyPy we cannot patch builtin types. This can be
+ // re-implemented later. For now, we use `get_signature`, instead.
+ static const bool patch_types = false;
+#endif
+
+ if ((patch_types && PySide_PatchTypes() < 0)
|| PySide_FinishSignatures(module, signatures) < 0) {
PyErr_Print();
PyErr_SetNone(PyExc_ImportError);
@@ -494,7 +526,11 @@ static PyObject *adjustFuncName(const char *func_name)
return nullptr;
// Run `eval` on the type string to get the object.
+ // PYSIDE-1710: If the eval does not work, return the given string.
AutoDecRef obtype(PyRun_String(_path, Py_eval_input, ns, ns));
+ if (obtype.isNull())
+ return String::fromCString(func_name);
+
if (PyModule_Check(obtype.object())) {
// This is a plain function. Return the unmangled name.
return String::fromCString(func_name);
@@ -503,8 +539,8 @@ static PyObject *adjustFuncName(const char *func_name)
// Find the feature flags
auto type = reinterpret_cast<PyTypeObject *>(obtype.object());
- auto dict = type->tp_dict;
- int id = SbkObjectType_GetReserved(type);
+ AutoDecRef dict(PepType_GetDict(type));
+ int id = currentSelectId(type);
id = id < 0 ? 0 : id; // if undefined, set to zero
auto lower = id & 0x01;
auto is_prop = id & 0x02;
@@ -512,7 +548,7 @@ static PyObject *adjustFuncName(const char *func_name)
// Compute all needed info.
PyObject *name = String::getSnakeCaseName(_name, lower);
- PyObject *prop_name;
+ PyObject *prop_name{};
if (is_prop) {
PyObject *prop_methods = PyDict_GetItem(dict, PyMagicName::property_methods());
prop_name = PyDict_GetItem(prop_methods, name);
@@ -524,36 +560,37 @@ static PyObject *adjustFuncName(const char *func_name)
// Finally, generate the correct path expression.
char _buf[250 + 1] = {};
- if (is_prop) {
+ if (prop_name) {
auto _prop_name = String::toCString(prop_name);
if (is_class_prop)
- sprintf(_buf, "%s.__dict__['%s'].fset", _path, _prop_name);
+ snprintf(_buf, sizeof(_buf), "%s.__dict__['%s'].fset", _path, _prop_name);
else
- sprintf(_buf, "%s.%s.fset", _path, _prop_name);
+ snprintf(_buf, sizeof(_buf), "%s.%s.fset", _path, _prop_name);
}
else {
auto _name = String::toCString(name);
- sprintf(_buf, "%s.%s", _path, _name);
+ snprintf(_buf, sizeof(_buf), "%s.%s", _path, _name);
}
return String::fromCString(_buf);
}
void SetError_Argument(PyObject *args, const char *func_name, PyObject *info)
{
+ init_shibokensupport_module();
/*
* This function replaces the type error construction with extra
* overloads parameter in favor of using the signature module.
* Error messages are rare, so we do it completely in Python.
*/
- init_module_1();
- init_module_2();
// PYSIDE-1305: Handle errors set by fillQtProperties.
if (PyErr_Occurred()) {
PyObject *e, *v, *t;
// Note: These references are all borrowed.
PyErr_Fetch(&e, &v, &t);
+ Py_DECREF(e);
info = v;
+ Py_XDECREF(t);
}
// PYSIDE-1019: Modify the function name expression according to feature.
AutoDecRef new_func_name(adjustFuncName(func_name));
@@ -584,21 +621,19 @@ void SetError_Argument(PyObject *args, const char *func_name, PyObject *info)
* But the __doc__ attribute existed already by inheritance, and calling
* PyType_Modified() is not supported. So we added the getsets explicitly
* to the metatype.
+ *
+ * PYSIDE-2101: The __signature__ attribute is gone due to rlcompleter.
*/
-PyObject *Sbk_TypeGet___signature__(PyObject *ob, PyObject *modifier)
-{
- return pyside_tp_get___signature__(ob, modifier);
-}
-
PyObject *Sbk_TypeGet___doc__(PyObject *ob)
{
+ init_shibokensupport_module();
return pyside_tp_get___doc__(ob);
}
PyObject *GetFeatureDict()
{
- init_module_1();
+ init_shibokensupport_module();
return pyside_globals->feature_dict;
}
diff --git a/sources/shiboken6/libshiboken/signature/signature_doc.rst b/sources/shiboken6/libshiboken/signature/signature_doc.rst
deleted file mode 100644
index 0fb26ae52..000000000
--- a/sources/shiboken6/libshiboken/signature/signature_doc.rst
+++ /dev/null
@@ -1,376 +0,0 @@
-*************************
-The signature C extension
-*************************
-
-This module is a C extension for CPython 3.5 and up, and CPython 2.7.
-Its purpose is to provide support for the ``__signature__`` attribute
-of builtin PyCFunction objects.
-
-
-Short Introduction to the Topic
-===============================
-
-Beginning with CPython 3.5, Python functions began to grow a ``__signature__``
-attribute for normal Python functions. This is totally optional and just
-a nice-to-have feature in Python.
-
-PySide, on the other hand, could use ``__signature__`` very much, because the
-typing info for the 15000+ PySide functions is really missing, and it
-would be nice to have this info directly available.
-
-
-The Idea to Support Signatures
-==============================
-
-We want to have an additional ``__signature__`` attribute in all PySide
-methods, without changing lots of generated code.
-Therefore, we did not change any of the existing data structures,
-but supported the new attribute by a global dictionary.
-
-When the ``__signature__`` property is requested, a method is called that
-does a lookup in the global dict. This is a flexible approach with little impact
-to the rest of the project. It has very limited overhead compared to direct
-attribute access, but for the need of a signature access from time to time,
-this is an adequate compromise.
-
-
-How this Code Works
--------------------
-
-Signatures are supported for regular Python functions, only. Creating signatures
-for ``PyCFunction`` objects would require quite some extra effort in Python.
-
-Fortunately, we found this special *stealth* technique, that saves us most of the
-needed effort:
-
-The basic idea is to create a dummy Python function with **varnames**, **defaults**
-and **annotations** properties, and then to use the inspect
-module to create a signature object. This object is returned as the computed
-result of the ``__signature__`` attribute of the real ``PyCFunction`` object.
-
-There is one thing that really changes Python a bit:
-
-* We added the ``__signature__`` attribute to every function.
-
-That is a little change to Python that does not harm, but it saves us
-tons of code, that was needed in the early versions of the module.
-
-The internal work is done in two steps:
-
-* All functions of a class get the *signature text* when the module is imported.
- This is only a very small overhead added to the startup time. It is a single
- string for each whole class.
-* The actual signature object is created later, when the attribute is really
- requested. Signatures are cached and only created on first access.
-
-Example:
-
-The ``PyCFunction`` ``QtWidgets.QApplication.palette`` is interrogated for its
-signature. That means ``pyside_sm_get___signature__()`` is called.
-It calls ``GetSignature_Function`` which returns the signature if it is found.
-
-
-Why this Code is Fast
----------------------
-
-It costs a little time (maybe 6 seconds) to run through every single signature
-object, since these are more than 25000 Python objects. But all the signature
-objects will be rarely accessed but in special applications.
-The normal case are only a few accesses, and these are working pretty fast.
-
-The key to make this signature module fast is to avoid computation as much as
-possible. When no signature objects are used, then almost no time is lost in
-initialization. Only the above mentioned strings and some support modules are
-additionally loaded on ``import PySide6``.
-When it comes to signature usage, then late initialization is used and cached.
-This technique is also known as *full laziness* in haskell.
-
-There are actually two locations where late initialization occurs:
-
-* ``dict`` can be no dict but a tuple. That is the initial argument tuple that
- was saved by ``PySide_BuildSignatureArgs`` at module load time.
- If so, then ``pyside_type_init`` in parser.py will be called,
- which parses the string and creates the dict.
-* ``props`` can be empty. Then ``create_signature`` in loader.py
- is called, which uses a dummy function to produce a signature instance
- with the inspect module.
-
-The initialization that is always done is just two dictionary writes
-per class, and we have about 1000 classes.
-To measure the additional overhead, we have simulated what happens
-when ``from PySide6 import *`` is performed.
-It turned out that the overhead is below 0.5 ms.
-
-
-The Signature Package Structure
--------------------------------
-
-The C++ code involved with the signature module is completely in the file
-shiboken6/libshiboken/signature.cpp . All other functionality is implemented in
-the ``signature`` Python package. It has the following structure::
-
- shiboken6/files.dir/shibokensupport/
- backport_inspect.py
-
- signature/
- loader.py
- parser.py
- mapping.py
- errorhandler.py
- layout.py
-
- lib/
- enum_sig.py
- tool.py
-
-
-
-Really important are the **parser**, **mapping**, **errorhandler**, **enum_sig**,
-**layout** and **loader** modules. The rest is needed to create Python 2 compatibility
-or be compatible with embedding and installers.
-
-
-loader.py
-~~~~~~~~~
-
-This module assembles and imports the ``inspect`` module, and then exports the
-``create_signature`` function. This function takes a fake function and some
-attributes and builds a ``__signature__`` object with the inspect module.
-
-
-parser.py
-~~~~~~~~~
-
-This module takes a class signatures string from C++ and parses it into the
-needed properties for the ``create_signature`` function. Its entry point is the
-``pyside_type_init`` function, which is called from the C module via ``loader.py``.
-
-
-mapping.py
-~~~~~~~~~~
-
-The purpose of the mapping module is maintaining a list of replacement strings
-that map from the *signature text* in C to the property strings that Python
-needs. A lot of mappings are resolved by rather complex expressions in ``parser.py``,
-but a few hundred cases are better to spell explicitly, here.
-
-
-errorhandler.py
-~~~~~~~~~~~~~~~
-
-Since ``Qt For Python 5.12``, we no longer use the builtin type error messages from C++.
-Instead, we get much better results with the signature module. At the same time,
-this enforced supporting shiboken as well, and the signature module was no longer
-optional.
-
-
-enum_sig.py
-~~~~~~~~~~~
-
-The diverse applications of the signature module all needed to iterate over modules,
-classes and functions. In order to centralize this enumeration, the process has
-been factored out as a context manager. The user has only to supply functions
-that do the actual formatting.
-
-See for example the .pyi generator ``pyside6/PySide6/support/generate_pyi.py``.
-
-
-layout.py
-~~~~~~~~~
-
-As more applications used the signature module, different formatting of signatures
-was needed. To support that, we created the function ``create_signature``, which
-has a parameter to choose from some predefined layouts.
-
-
-*typing27.py*
-~~~~~~~~~~~~~
-
-Python 2 has no typing module at all. This is a backport of the minimum that is needed.
-
-
-*backport_inspect.py*
-~~~~~~~~~~~~~~~~~~~~~
-
-Python 2 has an inspect module, but lacks the signature functions, completely.
-This module adds the missing functionality, which is merged at runtime into
-the inspect module.
-
-
-Multiple Arities
-----------------
-
-One aspect that was ignored so far was *multiple arities*: How to handle it when
-a function has more than one signature?
-
-I did not find any note on how multiple signatures should be treated in Python,
-but this simple rules seem to work well:
-
-* If there is a list, then it is a multi-signature.
-* Otherwise, it is a simple signature.
-
-
-Impacts of The Signature Module
-===============================
-
-The signature module has a number of impacts to other PySide modules, which were
-created as a consequence of its existence, and there will be a few more in the
-future:
-
-
-existence_test.py
------------------
-
-The file ``pyside6/tests/registry/existence_test.py`` was written using the
-signatures from the signatures module. The idea is that there are some 15000
-functions with a certain signature.
-
-These functions should not get lost by some bad check-in. Therefore, a list
-of all existing signatures is kept as a module that assembles a
-dictionary. The function existence is checked, and also the exact arity.
-
-This module exists for every PySide release and every platform. The initial
-module is generated once and saved as ``exists_{plat}_{version}.py``.
-
-An error is normally only reported as a warning, but:
-
-
-Interaction With The Coin Module
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-When this test program is run in COIN, then the warnings are turned into
-errors. The reason is that only in COIN, we have a stable configuration
-of PySide modules that can reliably be compared.
-
-These modules have the name ``exists_{platf}_{version}_ci.py``, and as a big
-exception for generated code, these files are *intentionally* checked in.
-
-
-What Happens When a List is Missing?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-When a new version of PySide gets created, then the existence test files
-initially do not exist.
-
-When a COIN test is run, then it will complain about the error and create
-the missing module on standard output.
-But since COIN tests are run multiple times, the output that was generated
-by the first test will still exist at the subsequent runs.
-(If COIN was properly implemented, we could not take that advantage and
-would need to implement that as an extra exception.)
-
-As a result, a missing module will be reported as a test which partially
-succeeded (called "FLAKY"). To avoid further flaky tests and to activate as a real test,
-we can now capture the error output of COIN and check the generated module
-in.
-
-
-Explicitly Enforcing Recreation
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The former way to regenerate the registry files was to remove the files
-and check that in. This has the desired effect, but creates huge deltas.
-As a more efficient way, we have prepared a comment in the first line
-that contains the word "recreate".
-By uncommenting this line, a NameError is triggered, which has the same
-effect.
-
-
-init_platform.py
-~~~~~~~~~~~~~~~~
-
-For generating the ``exists_{platf}_{version}`` modules, the module
-``pyside6/tests/registry/init_platform.py`` was written. It can be used
-standalone from the commandline, to check the compatibility of some
-changes, directly.
-
-
-scrape_testresults.py
----------------------
-
-To simplify and automate the process of extracting the ``exists_{platf}_{version}_ci.py``
-files, the script ``pyside6/tests/registry/scrape_testresults.py`` has been written.
-
-This script scans the whole testresults website for PySide, that is::
-
- https://testresults.qt.io/coin/api/results/pyside/pyside-setup/
-
-On the first scan, the script runs less than 30 minutes. After that, a cache
-is generated and the scan works *much* faster. The test results are placed
-into the folder ``pyside6/tests/registry/testresults/embedded/`` with a
-unique name that allows for easy sorting. Example::
-
- testresults/embedded/2018_09_10_10_40_34-test_1536891759-exists_linux_5_11_2_ci.py
-
-These files are created only once. If they already exist, they are not touched, again.
-The file `pyside6/tests/registry/known_urls.json`` holds all scanned URLs after
-a successful scan. The ``testresults/embedded`` folder can be kept for reference
-or can be removed. Important is only the json file.
-
-The result of a scan is then directly placed into the ``pyside6/tests/registry/``
-folder. It should be reviewed and then eventually checked in.
-
-
-generate_pyi.py
----------------
-
-``pyside6/PySide6/support/generate_pyi.py`` is still under development.
-This module generates so-called hinting stubs for integration of PySide
-with diverse *Python IDEs*.
-
-Although this module creates the stubs as an add-on, the
-impact on the quality of the signature module is considerable:
-
-The module must create syntactically correct ``.pyi`` files which contain
-not only signatures but also constants and enums of all PySide modules.
-This serves as an extra challenge that has a very positive effect on
-the completeness and correctness of signatures.
-
-The module has a ``--feature`` option to generate modified .pyi files.
-A shortcut for this command is ``pyside6-genpyi``.
-
-A useful command to change all .pyi files to use all features is
-
-.. code-block:: python
-
- pyside6-genpyi all --feature snake_case true_property
-
-
-pyi_generator.py
-----------------
-
-``shiboken6/shibokenmodule/files.dir/shibokensupport/signature/lib/pyi_generator.py``
-has been extracted from ``generate_pyi.py``. It allows the generation of ``.pyi``
-files from arbitrary extension modules created with shiboken.
-
-A shortcut for this command is ``shiboken6-genpyi``.
-
-
-Current Extensions
-------------------
-
-Before the signature module was written, there already existed the concept of
-signatures, but in a more C++ - centric way. From that time, there existed
-the error messages, which are created when a function gets wrong argument types.
-
-These error messages were replaced by text generated on demand by
-the signature module, in order to be more consistent and correct.
-This was implemented in ``Qt For Python 5.12.0``.
-
-Additionally, the ``__doc__`` attribute of PySide methods was not set.
-It was easy to get a nice ``help()`` feature by creating signatures
-as default content for docstrings.
-This was implemented in ``Qt For Python 5.12.1``.
-
-
-Literature
-==========
-
- `PEP 362 – Function Signature Object <https://www.python.org/dev/peps/pep-0362/>`__
-
- `PEP 484 – Type Hints <https://www.python.org/dev/peps/pep-0484/>`__
-
- `PEP 3107 – Function Annotations <https://www.python.org/dev/peps/pep-3107/>`__
-
-
-*Personal Remark: This module is dedicated to our lovebird "Püppi", who died on 2017-09-15.*
diff --git a/sources/shiboken6/libshiboken/signature/signature_extend.cpp b/sources/shiboken6/libshiboken/signature/signature_extend.cpp
index 528c7c87a..7292f8216 100644
--- a/sources/shiboken6/libshiboken/signature/signature_extend.cpp
+++ b/sources/shiboken6/libshiboken/signature/signature_extend.cpp
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
////////////////////////////////////////////////////////////////////////////
//
@@ -48,12 +12,14 @@
// PyMethodDescr_Type
// PyCFunction_Type
// PyStaticMethod_Type
-// PyType_Type
+// (*) PyType_Type
// PyWrapperDescr_Type
//
-// Their `tp_getset` fields are modified so support the `__signature__`
+// Their `tp_getset` fields are modified to support the `__signature__`
// attribute and additions to the `__doc__` attribute.
//
+// PYSIDE-535: PyType_Type patching is removed,
+// Shiboken.ObjectType and Shiboken.EnumMeta have new getsets, instead.
#include "autodecref.h"
#include "sbkstring.h"
@@ -89,27 +55,29 @@ static PyObject *_get_written_signature(signaturefunc sf, PyObject *ob, PyObject
return ret;
}
+#ifdef PYPY_VERSION
+PyObject *pyside_bm_get___signature__(PyObject *func, PyObject *modifier)
+{
+ return _get_written_signature(GetSignature_Method, func, modifier);
+}
+#endif
+
PyObject *pyside_cf_get___signature__(PyObject *func, PyObject *modifier)
{
- init_module_2();
return _get_written_signature(GetSignature_Function, func, modifier);
}
PyObject *pyside_sm_get___signature__(PyObject *sm, PyObject *modifier)
{
- init_module_2();
AutoDecRef func(PyObject_GetAttr(sm, PyMagicName::func()));
- if (Py_TYPE(func) == PepFunction_TypePtr)
- return PyObject_GetAttr(func, PyMagicName::signature());
return _get_written_signature(GetSignature_Function, func, modifier);
}
PyObject *pyside_md_get___signature__(PyObject *ob_md, PyObject *modifier)
{
- init_module_2();
AutoDecRef func(name_key_to_func(ob_md));
if (func.object() == Py_None)
- return Py_None;
+ Py_RETURN_NONE;
if (func.isNull())
Py_FatalError("missing mapping in MethodDescriptor");
return pyside_cf_get___signature__(func, modifier);
@@ -117,13 +85,11 @@ PyObject *pyside_md_get___signature__(PyObject *ob_md, PyObject *modifier)
PyObject *pyside_wd_get___signature__(PyObject *ob, PyObject *modifier)
{
- init_module_2();
return _get_written_signature(GetSignature_Wrapper, ob, modifier);
}
PyObject *pyside_tp_get___signature__(PyObject *obtype_mod, PyObject *modifier)
{
- init_module_2();
return _get_written_signature(GetSignature_TypeMod, obtype_mod, modifier);
}
@@ -153,29 +119,29 @@ static int handle_doc_in_progress = 0;
static PyObject *handle_doc(PyObject *ob, PyObject *old_descr)
{
- init_module_1();
- init_module_2();
AutoDecRef ob_type_mod(GetClassOrModOf(ob));
const char *name;
- if (PyModule_Check(ob_type_mod))
- name = PyModule_GetName(ob_type_mod);
+ bool isModule = PyModule_Check(ob_type_mod.object());
+ if (isModule)
+ name = PyModule_GetName(ob_type_mod.object());
else
name = reinterpret_cast<PyTypeObject *>(ob_type_mod.object())->tp_name;
+ PyObject *res{};
+
if (handle_doc_in_progress || name == nullptr
- || strncmp(name, "PySide6.", 8) != 0)
- return PyObject_CallMethodObjArgs(old_descr,
- PyMagicName::get(),
- ob, nullptr);
- handle_doc_in_progress++;
- PyObject *res = PyObject_CallFunction(
- pyside_globals->make_helptext_func,
- "(O)", ob);
- handle_doc_in_progress--;
- if (res == nullptr) {
- PyErr_Print();
- Py_FatalError("handle_doc did not receive a result");
+ || (isModule && strncmp(name, "PySide6.", 8) != 0)) {
+ res = PyObject_CallMethodObjArgs(old_descr, PyMagicName::get(), ob, nullptr);
+ } else {
+ handle_doc_in_progress++;
+ res = PyObject_CallFunction(pyside_globals->make_helptext_func, "(O)", ob);
+ handle_doc_in_progress--;
}
- return res;
+
+ if (res)
+ return res;
+
+ PyErr_Clear();
+ Py_RETURN_NONE;
}
static PyObject *pyside_cf_get___doc__(PyObject *cf)
@@ -203,66 +169,29 @@ static PyObject *pyside_wd_get___doc__(PyObject *wd)
return handle_doc(wd, old_wd_doc_descr);
}
-// the default setter for all objects
-static int pyside_set___signature__(PyObject *op, PyObject *value)
-{
- // By this additional check, this function refuses write access.
- // We consider both nullptr and Py_None as not been written.
- AutoDecRef has_val(get_signature_intern(op, nullptr));
- if (!(has_val.isNull() || has_val == Py_None)) {
- PyErr_Format(PyExc_AttributeError,
- "Attribute '__signature__' of '%.50s' object is not writable",
- Py_TYPE(op)->tp_name);
- return -1;
- }
- int ret = value == nullptr ? PyDict_DelItem(pyside_globals->value_dict, op)
- : PyDict_SetItem(pyside_globals->value_dict, op, value);
- Py_XINCREF(value);
- return ret;
-}
-
+// PYSIDE-535: We cannot patch types easily in PyPy.
+// Let's use the `get_signature` function, instead.
static PyGetSetDef new_PyCFunction_getsets[] = {
{const_cast<char *>("__doc__"), reinterpret_cast<getter>(pyside_cf_get___doc__),
nullptr, nullptr, nullptr},
- {const_cast<char *>("__signature__"), reinterpret_cast<getter>(pyside_cf_get___signature__),
- reinterpret_cast<setter>(pyside_set___signature__),
- nullptr, nullptr},
{nullptr, nullptr, nullptr, nullptr, nullptr}
};
static PyGetSetDef new_PyStaticMethod_getsets[] = {
{const_cast<char *>("__doc__"), reinterpret_cast<getter>(pyside_sm_get___doc__),
nullptr, nullptr, nullptr},
- {const_cast<char *>("__signature__"), reinterpret_cast<getter>(pyside_sm_get___signature__),
- reinterpret_cast<setter>(pyside_set___signature__),
- nullptr, nullptr},
{nullptr, nullptr, nullptr, nullptr, nullptr}
};
static PyGetSetDef new_PyMethodDescr_getsets[] = {
{const_cast<char *>("__doc__"), reinterpret_cast<getter>(pyside_md_get___doc__),
nullptr, nullptr, nullptr},
- {const_cast<char *>("__signature__"), reinterpret_cast<getter>(pyside_md_get___signature__),
- reinterpret_cast<setter>(pyside_set___signature__),
- nullptr, nullptr},
- {nullptr, nullptr, nullptr, nullptr, nullptr}
-};
-
-static PyGetSetDef new_PyType_getsets[] = {
- {const_cast<char *>("__doc__"), reinterpret_cast<getter>(pyside_tp_get___doc__),
- nullptr, nullptr, nullptr},
- {const_cast<char *>("__signature__"), reinterpret_cast<getter>(pyside_tp_get___signature__),
- reinterpret_cast<setter>(pyside_set___signature__),
- nullptr, nullptr},
{nullptr, nullptr, nullptr, nullptr, nullptr}
};
static PyGetSetDef new_PyWrapperDescr_getsets[] = {
{const_cast<char *>("__doc__"), reinterpret_cast<getter>(pyside_wd_get___doc__),
nullptr, nullptr, nullptr},
- {const_cast<char *>("__signature__"), reinterpret_cast<getter>(pyside_wd_get___signature__),
- reinterpret_cast<setter>(pyside_set___signature__),
- nullptr, nullptr},
{nullptr, nullptr, nullptr, nullptr, nullptr}
};
@@ -282,8 +211,6 @@ int PySide_PatchTypes(void)
auto cf_doc = &old_cf_doc_descr;
auto sm_gs = new_PyStaticMethod_getsets;
auto sm_doc = &old_sm_doc_descr;
- auto tp_gs = new_PyType_getsets;
- auto tp_doc = &old_tp_doc_descr;
auto wd_gs = new_PyWrapperDescr_getsets;
auto wd_doc = &old_wd_doc_descr;
@@ -292,7 +219,6 @@ int PySide_PatchTypes(void)
|| add_more_getsets(PepMethodDescr_TypePtr, md_gs, md_doc) < 0
|| add_more_getsets(&PyCFunction_Type, cf_gs, cf_doc) < 0
|| add_more_getsets(PepStaticMethod_TypePtr, sm_gs, sm_doc) < 0
- || add_more_getsets(&PyType_Type, tp_gs, tp_doc) < 0
|| add_more_getsets(Py_TYPE(wrap_descr), wd_gs, wd_doc) < 0
)
return -1;
diff --git a/sources/shiboken6/libshiboken/signature/signature_globals.cpp b/sources/shiboken6/libshiboken/signature/signature_globals.cpp
index 744ce0407..3a79a12d5 100644
--- a/sources/shiboken6/libshiboken/signature/signature_globals.cpp
+++ b/sources/shiboken6/libshiboken/signature/signature_globals.cpp
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
////////////////////////////////////////////////////////////////////////////
//
@@ -64,51 +28,37 @@ static const unsigned char PySide_SignatureLoader[] = {
#include "embed/signature_bootstrap_inc.h"
};
-static PyObject *_init_pyside_extension(PyObject * /* self */, PyObject * /* args */)
+static safe_globals_struc *init_phase_1()
{
- init_module_1();
- init_module_2();
- Py_RETURN_NONE;
-}
-
-// This function will be inserted into __builtins__.
-static PyMethodDef init_methods[] = {
- {"_init_pyside_extension", (PyCFunction)_init_pyside_extension, METH_NOARGS},
- {nullptr, nullptr}
-};
-
-static safe_globals_struc *init_phase_1(PyMethodDef *init_meth)
-{
- {
+ do {
auto *p = reinterpret_cast<safe_globals_struc *>
(malloc(sizeof(safe_globals_struc)));
if (p == nullptr)
- goto error;
+ break;
/*
* Initializing module signature_bootstrap.
* Since we now have an embedding script, we can do this without any
* Python strings in the C code.
*/
-#ifdef Py_LIMITED_API
- // We must work for multiple versions, so use source code.
+#if defined(Py_LIMITED_API) || defined(SHIBOKEN_NO_EMBEDDING_PYC)
+ // We must work for multiple versions or we are cross-building for a different
+ // Python version interpreter, so use source code.
#else
- AutoDecRef marshal_module(PyImport_Import(PyName::marshal()));
- if (marshal_module.isNull())
- goto error;
+ AutoDecRef marshal_module(PyImport_Import(PyName::marshal())); // builtin
AutoDecRef loads(PyObject_GetAttr(marshal_module, PyName::loads()));
if (loads.isNull())
- goto error;
+ break;
#endif
char *bytes_cast = reinterpret_cast<char *>(
const_cast<unsigned char *>(PySide_SignatureLoader));
AutoDecRef bytes(PyBytes_FromStringAndSize(bytes_cast, sizeof(PySide_SignatureLoader)));
if (bytes.isNull())
- goto error;
-#ifdef Py_LIMITED_API
+ break;
+#if defined(Py_LIMITED_API) || defined(SHIBOKEN_NO_EMBEDDING_PYC)
PyObject *builtins = PyEval_GetBuiltins();
PyObject *compile = PyDict_GetItem(builtins, PyName::compile());
if (compile == nullptr)
- goto error;
+ break;
AutoDecRef code_obj(PyObject_CallFunction(compile, "Oss",
bytes.object(), "signature_bootstrap.py", "exec"));
#else
@@ -116,69 +66,62 @@ static safe_globals_struc *init_phase_1(PyMethodDef *init_meth)
loads, bytes.object(), nullptr));
#endif
if (code_obj.isNull())
- goto error;
+ break;
p->helper_module = PyImport_ExecCodeModule("signature_bootstrap", code_obj);
if (p->helper_module == nullptr)
- goto error;
+ break;
// Initialize the module
PyObject *mdict = PyModule_GetDict(p->helper_module);
if (PyDict_SetItem(mdict, PyMagicName::builtins(), PyEval_GetBuiltins()) < 0)
- goto error;
- /*
- * Unpack an embedded ZIP file with more signature modules.
+ break;
+
+ /*********************************************************************
+ *
+ * Attention!
+ * ----------
+ *
+ * We are unpacking an embedded ZIP file with more signature modules.
* They will be loaded later with the zipimporter.
- * Due to MSVC's limitation to 64k strings, we need to assemble pieces.
+ * The file `signature_bootstrap.py` does the unpacking and starts the
+ * loader. See `init_phase_2`.
+ *
+ * Due to MSVC's limitation to 64k strings, we needed to assemble pieces.
*/
auto **block_ptr = reinterpret_cast<const char **>(PySide_CompressedSignaturePackage);
- int npieces = 0;
- PyObject *piece, *zipped_string_sequence = PyList_New(0);
- if (zipped_string_sequence == nullptr)
- return nullptr;
+ PyObject *piece{};
+ AutoDecRef zipped_string_sequence(PyList_New(0));
for (; **block_ptr != 0; ++block_ptr) {
- npieces++;
// we avoid the string/unicode dilemma by not using PyString_XXX:
piece = Py_BuildValue("s", *block_ptr);
if (piece == nullptr || PyList_Append(zipped_string_sequence, piece) < 0)
- goto error;
+ break;
}
if (PyDict_SetItemString(mdict, "zipstring_sequence", zipped_string_sequence) < 0)
- goto error;
- Py_DECREF(zipped_string_sequence);
+ break;
// build a dict for diverse mappings
p->map_dict = PyDict_New();
- if (p->map_dict == nullptr)
- goto error;
// build a dict for the prepared arguments
p->arg_dict = PyDict_New();
- if (p->arg_dict == nullptr
- || PyObject_SetAttrString(p->helper_module, "pyside_arg_dict", p->arg_dict) < 0)
- goto error;
+ if (PyObject_SetAttrString(p->helper_module, "pyside_arg_dict", p->arg_dict) < 0)
+ break;
// build a dict for assigned signature values
p->value_dict = PyDict_New();
- if (p->value_dict == nullptr)
- goto error;
// PYSIDE-1019: build a __feature__ dict
p->feature_dict = PyDict_New();
- if (p->feature_dict == nullptr
- || PyObject_SetAttrString(p->helper_module, "pyside_feature_dict", p->feature_dict) < 0)
- goto error;
+ if (PyObject_SetAttrString(p->helper_module, "pyside_feature_dict", p->feature_dict) < 0)
+ break;
// This function will be disabled until phase 2 is done.
p->finish_import_func = nullptr;
- // Initialize the explicit init function.
- AutoDecRef init(PyCFunction_NewEx(init_meth, nullptr, nullptr));
- if (init.isNull()
- || PyDict_SetItemString(PyEval_GetBuiltins(), init_meth->ml_name, init) != 0)
- goto error;
-
return p;
- }
-error:
+
+ } while (0);
+
PyErr_Print();
Py_FatalError("could not initialize part 1");
return nullptr;
@@ -186,7 +129,7 @@ error:
static int init_phase_2(safe_globals_struc *p, PyMethodDef *methods)
{
- {
+ do {
PyMethodDef *ml;
// The single function to be called, but maybe more to come.
@@ -194,7 +137,7 @@ static int init_phase_2(safe_globals_struc *p, PyMethodDef *methods)
PyObject *v = PyCFunction_NewEx(ml, nullptr, nullptr);
if (v == nullptr
|| PyObject_SetAttrString(p->helper_module, ml->ml_name, v) != 0)
- goto error;
+ break;
Py_DECREF(v);
}
// The first entry is __feature_import__, add documentation.
@@ -205,33 +148,59 @@ static int init_phase_2(safe_globals_struc *p, PyMethodDef *methods)
PyObject *bootstrap_func = PyObject_GetAttrString(p->helper_module, "bootstrap");
if (bootstrap_func == nullptr)
- goto error;
- // The return value of the bootstrap function is the loader module.
- PyObject *loader = PyObject_CallFunction(bootstrap_func, "()");
+ break;
+
+ /*********************************************************************
+ *
+ * Attention!
+ * ----------
+ *
+ * This is the entry point where everything in folder
+ * `shibokensupport` becomes initialized. It starts with
+ * `signature_bootstrap.py` and continues from there to `loader.py`.
+ *
+ * The return value of the bootstrap function is the loader module.
+ */
+ PyObject *loader = PyObject_CallFunctionObjArgs(bootstrap_func, nullptr);
if (loader == nullptr)
- goto error;
+ break;
+
// now the loader should be initialized
p->pyside_type_init_func = PyObject_GetAttrString(loader, "pyside_type_init");
if (p->pyside_type_init_func == nullptr)
- goto error;
+ break;
p->create_signature_func = PyObject_GetAttrString(loader, "create_signature");
if (p->create_signature_func == nullptr)
- goto error;
+ break;
p->seterror_argument_func = PyObject_GetAttrString(loader, "seterror_argument");
if (p->seterror_argument_func == nullptr)
- goto error;
+ break;
p->make_helptext_func = PyObject_GetAttrString(loader, "make_helptext");
if (p->make_helptext_func == nullptr)
- goto error;
+ break;
p->finish_import_func = PyObject_GetAttrString(loader, "finish_import");
if (p->finish_import_func == nullptr)
- goto error;
+ break;
p->feature_import_func = PyObject_GetAttrString(loader, "feature_import");
if (p->feature_import_func == nullptr)
- goto error;
+ break;
+ p->feature_imported_func = PyObject_GetAttrString(loader, "feature_imported");
+ if (p->feature_imported_func == nullptr)
+ break;
+
+ // We call stuff like the feature initialization late,
+ // after all the function pointers are in place.
+ PyObject *post_init_func = PyObject_GetAttrString(loader, "post_init");
+ if (post_init_func == nullptr)
+ break;
+ PyObject *ret = PyObject_CallFunctionObjArgs(post_init_func, nullptr);
+ if (ret == nullptr)
+ break;
+
return 0;
- }
-error:
+
+ } while (0);
+
PyErr_Print();
Py_FatalError("could not initialize part 2");
return -1;
@@ -240,12 +209,12 @@ error:
#ifndef _WIN32
////////////////////////////////////////////////////////////////////////////
// a stack trace for linux-like platforms
-#include <stdio.h>
+#include <cstdio>
#if defined(__GLIBC__)
# include <execinfo.h>
#endif
#include <signal.h>
-#include <stdlib.h>
+#include <cstdlib>
#include <unistd.h>
static void handler(int sig) {
@@ -258,7 +227,7 @@ static void handler(int sig) {
// print out all the frames to stderr
#endif
- fprintf(stderr, "Error: signal %d:\n", sig);
+ std::fprintf(stderr, "Error: signal %d:\n", sig);
#if defined(__GLIBC__)
backtrace_symbols_fd(array, size, STDERR_FILENO);
#endif
@@ -268,14 +237,14 @@ static void handler(int sig) {
////////////////////////////////////////////////////////////////////////////
#endif // _WIN32
-safe_globals pyside_globals = nullptr;
+safe_globals_struc *pyside_globals = nullptr;
-void init_module_1(void)
+void init_shibokensupport_module(void)
{
static int init_done = 0;
if (!init_done) {
- pyside_globals = init_phase_1(init_methods);
+ pyside_globals = init_phase_1();
if (pyside_globals != nullptr)
init_done = 1;
@@ -286,17 +255,6 @@ void init_module_1(void)
signal(SIGSEGV, handler); // install our handler
#endif // _WIN32
- }
-}
-
-void init_module_2(void)
-{
- static int init_done = 0;
-
- if (!init_done) {
- // Phase 2 will call __init__.py which touches a signature, itself.
- // Therefore we set init_done prior to init_phase_2().
- init_done = 1;
init_phase_2(pyside_globals, signature_methods);
// Enum must be initialized when signatures exist, not earlier.
init_enum();
diff --git a/sources/shiboken6/libshiboken/signature/signature_helper.cpp b/sources/shiboken6/libshiboken/signature/signature_helper.cpp
index d27ddeabb..cf84cfa13 100644
--- a/sources/shiboken6/libshiboken/signature/signature_helper.cpp
+++ b/sources/shiboken6/libshiboken/signature/signature_helper.cpp
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
////////////////////////////////////////////////////////////////////////////
//
@@ -79,8 +43,6 @@ static int _fixup_getset(PyTypeObject *type, const char *name, PyGetSetDef *new_
for (; md->name != nullptr; md++)
if (strcmp(md->name, name) == 0)
return 1;
- // staticmethod has just a `__doc__` in the class
- assert(strcmp(type->tp_name, "staticmethod") == 0 && strcmp(name, "__doc__") == 0);
return 0;
}
@@ -89,10 +51,13 @@ int add_more_getsets(PyTypeObject *type, PyGetSetDef *gsp, PyObject **doc_descr)
/*
* This function is used to assign a new `__signature__` attribute,
* and also to override a `__doc__` or `__name__` attribute.
+ *
+ * PYSIDE-2101: The __signature__ attribute is gone due to rlcompleter.
*/
assert(PyType_Check(type));
PyType_Ready(type);
- PyObject *dict = type->tp_dict;
+ AutoDecRef tpDict(PepType_GetDict(type));
+ auto *dict = tpDict.object();
for (; gsp->name != nullptr; gsp++) {
PyObject *have_descr = PyDict_GetItemString(dict, gsp->name);
if (have_descr != nullptr) {
@@ -107,6 +72,9 @@ int add_more_getsets(PyTypeObject *type, PyGetSetDef *gsp, PyObject **doc_descr)
AutoDecRef descr(PyDescr_NewGetSet(type, gsp));
if (descr.isNull())
return -1;
+ // PYSIDE-535: We cannot set the attribute. For simplicity, we use
+ // get_signature in PyPy, instead. This can be re-implemented
+ // later by deriving extra heap types.
if (PyDict_SetItemString(dict, gsp->name, descr) < 0)
return -1;
}
@@ -223,7 +191,7 @@ static PyObject *_build_new_entry(PyObject *new_name, PyObject *value)
PyObject *new_value = PyDict_Copy(value);
PyObject *multi = PyDict_GetItem(value, PyName::multi());
if (multi != nullptr && Py_TYPE(multi) == &PyList_Type) {
- ssize_t len = PyList_Size(multi);
+ Py_ssize_t len = PyList_Size(multi);
AutoDecRef list(PyList_New(len));
if (list.isNull())
return nullptr;
@@ -258,6 +226,15 @@ int insert_snake_case_variants(PyObject *dict)
return PyDict_Merge(dict, snake_dict, 0);
}
+#ifdef PYPY_VERSION
+PyObject *_get_class_of_bm(PyObject *ob_bm)
+{
+ AutoDecRef self(PyObject_GetAttr(ob_bm, PyMagicName::self()));
+ auto *klass = PyObject_GetAttr(self, PyMagicName::class_());
+ return klass;
+}
+#endif
+
PyObject *_get_class_of_cf(PyObject *ob_cf)
{
PyObject *selftype = PyCFunction_GET_SELF(ob_cf);
@@ -301,7 +278,7 @@ PyObject *_address_to_stringlist(PyObject *numkey)
* When needed in `PySide_BuildSignatureProps`, the strings are
* finally materialized.
*/
- ssize_t address = PyNumber_AsSsize_t(numkey, PyExc_ValueError);
+ Py_ssize_t address = PyNumber_AsSsize_t(numkey, PyExc_ValueError);
if (address == -1 && PyErr_Occurred())
return nullptr;
char **sig_strings = reinterpret_cast<char **>(address);
@@ -317,7 +294,7 @@ PyObject *_address_to_stringlist(PyObject *numkey)
return res_list;
}
-static int _build_func_to_type(PyObject *obtype)
+int _build_func_to_type(PyObject *obtype)
{
/*
* There is no general way to directly get the type of a static method.
@@ -333,7 +310,17 @@ static int _build_func_to_type(PyObject *obtype)
* We also check for hidden methods, see below.
*/
auto *type = reinterpret_cast<PyTypeObject *>(obtype);
- PyObject *dict = type->tp_dict;
+ AutoDecRef tpDict(PepType_GetDict(type));
+ auto *dict = tpDict.object();
+
+ // PYSIDE-2404: Get the original dict for late initialization.
+ // The dict might have been switched before signature init.
+ static const auto *pyTypeType_tp_dict = PepType_GetDict(&PyType_Type);
+ if (Py_TYPE(dict) != Py_TYPE(pyTypeType_tp_dict)) {
+ tpDict.reset(PyObject_GetAttr(dict, PyName::orig_dict()));
+ dict = tpDict.object();
+ }
+
PyMethodDef *meth = type->tp_methods;
if (meth == nullptr)
@@ -399,26 +386,4 @@ static int _build_func_to_type(PyObject *obtype)
return 0;
}
-int _finish_nested_classes(PyObject *obdict)
-{
- PyObject *key, *value, *obtype;
- PyTypeObject *subtype;
- Py_ssize_t pos = 0;
-
- if (obdict == nullptr)
- return -1;
- while (PyDict_Next(obdict, &pos, &key, &value)) {
- if (PyType_Check(value)) {
- obtype = value;
- if (_build_func_to_type(obtype) < 0)
- return -1;
- // now continue with nested cases
- subtype = reinterpret_cast<PyTypeObject *>(obtype);
- if (_finish_nested_classes(subtype->tp_dict) < 0)
- return -1;
- }
- }
- return 0;
-}
-
} // extern "C"
diff --git a/sources/shiboken6/libshiboken/signature/signature_p.h b/sources/shiboken6/libshiboken/signature/signature_p.h
deleted file mode 100644
index 7e622f3f1..000000000
--- a/sources/shiboken6/libshiboken/signature/signature_p.h
+++ /dev/null
@@ -1,107 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef SIGNATURE_IMPL_H
-#define SIGNATURE_IMPL_H
-
-#include "signature.h"
-
-extern "C" {
-
-// signature_globals.cpp
-
-typedef struct safe_globals_struc {
- // init part 1: get arg_dict
- PyObject *helper_module;
- PyObject *arg_dict;
- PyObject *map_dict;
- PyObject *value_dict; // for writing signatures
- PyObject *feature_dict; // registry for PySide.support.__feature__
- // init part 2: run module
- PyObject *pyside_type_init_func;
- PyObject *create_signature_func;
- PyObject *seterror_argument_func;
- PyObject *make_helptext_func;
- PyObject *finish_import_func;
- PyObject *feature_import_func;
-} safe_globals_struc, *safe_globals;
-
-extern safe_globals pyside_globals;
-extern PyMethodDef signature_methods[];
-
-void init_module_1(void);
-void init_module_2(void);
-
-// signature.cpp
-
-PyObject *GetTypeKey(PyObject *ob);
-
-PyObject *GetSignature_Function(PyObject *, PyObject *);
-PyObject *GetSignature_TypeMod(PyObject *, PyObject *);
-PyObject *GetSignature_Wrapper(PyObject *, PyObject *);
-
-PyObject *get_signature_intern(PyObject *ob, PyObject *modifier);
-PyObject *PySide_BuildSignatureProps(PyObject *class_mod);
-PyObject *GetClassOrModOf(PyObject *ob);
-
-// signature_extend.cpp
-
-PyObject *pyside_cf_get___signature__(PyObject *func, PyObject *modifier);
-PyObject *pyside_sm_get___signature__(PyObject *sm, PyObject *modifier);
-PyObject *pyside_md_get___signature__(PyObject *ob_md, PyObject *modifier);
-PyObject *pyside_wd_get___signature__(PyObject *ob, PyObject *modifier);
-PyObject *pyside_tp_get___signature__(PyObject *obtype_mod, PyObject *modifier);
-
-int PySide_PatchTypes(void);
-PyObject *pyside_tp_get___doc__(PyObject *tp);
-
-// signature_helper.cpp
-
-int add_more_getsets(PyTypeObject *type, PyGetSetDef *gsp, PyObject **doc_descr);
-PyObject *name_key_to_func(PyObject *ob);
-int insert_snake_case_variants(PyObject *dict);
-PyObject *_get_class_of_cf(PyObject *ob_cf);
-PyObject *_get_class_of_sm(PyObject *ob_sm);
-PyObject *_get_class_of_descr(PyObject *ob);
-PyObject *_address_to_stringlist(PyObject *numkey);
-int _finish_nested_classes(PyObject *dict);
-
-} // extern "C"
-
-#endif // SIGNATURE_IMPL_H
diff --git a/sources/shiboken6/libshiboken/signature_p.h b/sources/shiboken6/libshiboken/signature_p.h
new file mode 100644
index 000000000..d0c4ee537
--- /dev/null
+++ b/sources/shiboken6/libshiboken/signature_p.h
@@ -0,0 +1,78 @@
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef SIGNATURE_IMPL_H
+#define SIGNATURE_IMPL_H
+
+#include "signature.h"
+
+extern "C" {
+
+// signature_globals.cpp
+
+struct safe_globals_struc {
+ // init part 1: get arg_dict
+ PyObject *helper_module;
+ PyObject *arg_dict;
+ PyObject *map_dict;
+ PyObject *value_dict; // for writing signatures
+ PyObject *feature_dict; // registry for PySide.support.__feature__
+ // init part 2: run module
+ PyObject *pyside_type_init_func;
+ PyObject *create_signature_func;
+ PyObject *seterror_argument_func;
+ PyObject *make_helptext_func;
+ PyObject *finish_import_func;
+ PyObject *feature_import_func;
+ PyObject *feature_imported_func;
+};
+
+extern safe_globals_struc *pyside_globals;
+extern PyMethodDef signature_methods[];
+
+void init_shibokensupport_module(void);
+
+// signature.cpp
+
+PyObject *GetTypeKey(PyObject *ob);
+
+PyObject *GetSignature_Function(PyObject *, PyObject *);
+PyObject *GetSignature_TypeMod(PyObject *, PyObject *);
+PyObject *GetSignature_Wrapper(PyObject *, PyObject *);
+
+LIBSHIBOKEN_API PyObject *get_signature_intern(PyObject *ob, PyObject *modifier);
+PyObject *PySide_BuildSignatureProps(PyObject *class_mod);
+PyObject *GetClassOrModOf(PyObject *ob);
+
+// signature_extend.cpp
+PyObject *pyside_cf_get___signature__(PyObject *func, PyObject *modifier);
+PyObject *pyside_sm_get___signature__(PyObject *sm, PyObject *modifier);
+PyObject *pyside_md_get___signature__(PyObject *ob_md, PyObject *modifier);
+PyObject *pyside_wd_get___signature__(PyObject *ob, PyObject *modifier);
+PyObject *pyside_tp_get___signature__(PyObject *obtype_mod, PyObject *modifier);
+
+int PySide_PatchTypes(void);
+PyObject *pyside_tp_get___doc__(PyObject *tp);
+
+// signature_helper.cpp
+
+int add_more_getsets(PyTypeObject *type, PyGetSetDef *gsp, PyObject **doc_descr);
+PyObject *name_key_to_func(PyObject *ob);
+int insert_snake_case_variants(PyObject *dict);
+PyObject *_get_class_of_cf(PyObject *ob_cf);
+PyObject *_get_class_of_sm(PyObject *ob_sm);
+PyObject *_get_class_of_descr(PyObject *ob);
+PyObject *_address_to_stringlist(PyObject *numkey);
+int _build_func_to_type(PyObject *obtype);
+int _finish_nested_classes(PyObject *dict);
+
+#ifdef PYPY_VERSION
+// PyPy has a special builtin method.
+PyObject *GetSignature_Method(PyObject *, PyObject *);
+PyObject *pyside_bm_get___signature__(PyObject *func, PyObject *modifier);
+PyObject *_get_class_of_bm(PyObject *ob_cf);
+#endif
+
+} // extern "C"
+
+#endif // SIGNATURE_IMPL_H
diff --git a/sources/shiboken6/libshiboken/threadstatesaver.cpp b/sources/shiboken6/libshiboken/threadstatesaver.cpp
index 7c587b405..9f74ed442 100644
--- a/sources/shiboken6/libshiboken/threadstatesaver.cpp
+++ b/sources/shiboken6/libshiboken/threadstatesaver.cpp
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include "threadstatesaver.h"
diff --git a/sources/shiboken6/libshiboken/threadstatesaver.h b/sources/shiboken6/libshiboken/threadstatesaver.h
index ddfbcb93b..4289f6726 100644
--- a/sources/shiboken6/libshiboken/threadstatesaver.h
+++ b/sources/shiboken6/libshiboken/threadstatesaver.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef THREADSTATESAVER_H
#define THREADSTATESAVER_H
diff --git a/sources/shiboken6/libshiboken/voidptr.cpp b/sources/shiboken6/libshiboken/voidptr.cpp
index f0161d282..7045b08b1 100644
--- a/sources/shiboken6/libshiboken/voidptr.cpp
+++ b/sources/shiboken6/libshiboken/voidptr.cpp
@@ -1,43 +1,8 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include "voidptr.h"
+#include "pep384ext.h"
#include "sbkconverter.h"
#include "basewrapper.h"
#include "basewrapper_p.h"
@@ -46,22 +11,21 @@ extern "C"
{
// Void pointer object definition.
-typedef struct {
+struct SbkVoidPtrObject {
PyObject_HEAD
void *cptr;
Py_ssize_t size;
bool isWritable;
-} SbkVoidPtrObject;
+};
-PyObject *SbkVoidPtrObject_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
+PyObject *SbkVoidPtrObject_new(PyTypeObject *type, PyObject * /* args */, PyObject * /* kwds */)
{
// PYSIDE-560: It is much safer to first call a function and then do a
// type cast than to do everything in one line. The bad construct looked
// like this, actual call forgotten:
// SbkVoidPtrObject *self =
// reinterpret_cast<SbkVoidPtrObject *>(type->tp_alloc);
- PyObject *ob = type->tp_alloc(type, 0);
- auto *self = reinterpret_cast<SbkVoidPtrObject *>(ob);
+ auto *self = PepExt_TypeCallAlloc<SbkVoidPtrObject>(type, 0);
if (self != nullptr) {
self->cptr = nullptr;
@@ -72,7 +36,7 @@ PyObject *SbkVoidPtrObject_new(PyTypeObject *type, PyObject *args, PyObject *kwd
return reinterpret_cast<PyObject *>(self);
}
-#define SbkVoidPtr_Check(op) (Py_TYPE(op) == SbkVoidPtrTypeF())
+#define SbkVoidPtr_Check(op) (Py_TYPE(op) == SbkVoidPtr_TypeF())
int SbkVoidPtrObject_init(PyObject *self, PyObject *args, PyObject *kwds)
@@ -189,7 +153,7 @@ PyObject *SbkVoidPtrObject_int(PyObject *v)
return PyLong_FromVoidPtr(sbkObject->cptr);
}
-PyObject *toBytes(PyObject *self, PyObject *args)
+PyObject *toBytes(PyObject *self, PyObject * /* args */)
{
auto *sbkObject = reinterpret_cast<SbkVoidPtrObject *>(self);
if (sbkObject->size < 0) {
@@ -203,8 +167,8 @@ PyObject *toBytes(PyObject *self, PyObject *args)
}
static struct PyMethodDef SbkVoidPtrObject_methods[] = {
- {"toBytes", toBytes, METH_NOARGS},
- {nullptr}
+ {"toBytes", toBytes, METH_NOARGS, nullptr},
+ {nullptr, nullptr, 0, nullptr}
};
static Py_ssize_t SbkVoidPtrObject_length(PyObject *v)
@@ -292,45 +256,49 @@ static PyBufferProcs SbkVoidPtrObjectBufferProc = {
(releasebufferproc)nullptr // bf_releasebuffer
};
-// Void pointer type definition.
-static PyType_Slot SbkVoidPtrType_slots[] = {
- {Py_tp_repr, reinterpret_cast<void *>(SbkVoidPtrObject_repr)},
- {Py_nb_int, reinterpret_cast<void *>(SbkVoidPtrObject_int)},
- {Py_sq_length, reinterpret_cast<void *>(SbkVoidPtrObject_length)},
- {Py_tp_str, reinterpret_cast<void *>(SbkVoidPtrObject_str)},
- {Py_tp_richcompare, reinterpret_cast<void *>(SbkVoidPtrObject_richcmp)},
- {Py_tp_init, reinterpret_cast<void *>(SbkVoidPtrObject_init)},
- {Py_tp_new, reinterpret_cast<void *>(SbkVoidPtrObject_new)},
- {Py_tp_dealloc, reinterpret_cast<void *>(Sbk_object_dealloc)},
- {Py_tp_methods, reinterpret_cast<void *>(SbkVoidPtrObject_methods)},
- {0, nullptr}
-};
-static PyType_Spec SbkVoidPtrType_spec = {
- "2:shiboken6.shiboken6.VoidPtr",
- sizeof(SbkVoidPtrObject),
- 0,
- Py_TPFLAGS_DEFAULT,
- SbkVoidPtrType_slots,
-};
-
-
+static PyTypeObject *createVoidPtrType()
+{
+ PyType_Slot SbkVoidPtrType_slots[] = {
+ {Py_tp_repr, reinterpret_cast<void *>(SbkVoidPtrObject_repr)},
+ {Py_nb_int, reinterpret_cast<void *>(SbkVoidPtrObject_int)},
+ {Py_sq_length, reinterpret_cast<void *>(SbkVoidPtrObject_length)},
+ {Py_tp_str, reinterpret_cast<void *>(SbkVoidPtrObject_str)},
+ {Py_tp_richcompare, reinterpret_cast<void *>(SbkVoidPtrObject_richcmp)},
+ {Py_tp_init, reinterpret_cast<void *>(SbkVoidPtrObject_init)},
+ {Py_tp_new, reinterpret_cast<void *>(SbkVoidPtrObject_new)},
+ {Py_tp_dealloc, reinterpret_cast<void *>(Sbk_object_dealloc)},
+ {Py_tp_methods, reinterpret_cast<void *>(SbkVoidPtrObject_methods)},
+ {0, nullptr}
+ };
+
+ PyType_Spec SbkVoidPtrType_spec = {
+ "2:shiboken6.Shiboken.VoidPtr",
+ sizeof(SbkVoidPtrObject),
+ 0,
+ Py_TPFLAGS_DEFAULT,
+ SbkVoidPtrType_slots,
+ };
+
+ return SbkType_FromSpec_BMDWB(&SbkVoidPtrType_spec,
+ nullptr, nullptr, 0, 0,
+ &SbkVoidPtrObjectBufferProc);
}
-PyTypeObject *SbkVoidPtrTypeF(void)
+PyTypeObject *SbkVoidPtr_TypeF(void)
{
- static PyTypeObject *type = SbkType_FromSpec_BMDWB(&SbkVoidPtrType_spec,
- nullptr, nullptr, 0, 0,
- &SbkVoidPtrObjectBufferProc);
+ static auto *type = createVoidPtrType();
return type;
}
+} // extern "C"
+
namespace VoidPtr {
static int voidPointerInitialized = false;
void init()
{
- if (PyType_Ready(SbkVoidPtrTypeF()) < 0)
+ if (PyType_Ready(SbkVoidPtr_TypeF()) < 0)
Py_FatalError("[libshiboken] Failed to initialize Shiboken.VoidPtr type.");
else
voidPointerInitialized = true;
@@ -339,9 +307,9 @@ void init()
void addVoidPtrToModule(PyObject *module)
{
if (voidPointerInitialized) {
- Py_INCREF(SbkVoidPtrTypeF());
- PyModule_AddObject(module, PepType_GetNameStr(SbkVoidPtrTypeF()),
- reinterpret_cast<PyObject *>(SbkVoidPtrTypeF()));
+ Py_INCREF(SbkVoidPtr_TypeF());
+ PyModule_AddObject(module, PepType_GetNameStr(SbkVoidPtr_TypeF()),
+ reinterpret_cast<PyObject *>(SbkVoidPtr_TypeF()));
}
}
@@ -350,7 +318,7 @@ static PyObject *createVoidPtr(void *cppIn, Py_ssize_t size = 0, bool isWritable
if (!cppIn)
Py_RETURN_NONE;
- SbkVoidPtrObject *result = PyObject_New(SbkVoidPtrObject, SbkVoidPtrTypeF());
+ SbkVoidPtrObject *result = PyObject_New(SbkVoidPtrObject, SbkVoidPtr_TypeF());
if (!result)
Py_RETURN_NONE;
@@ -423,7 +391,7 @@ static PythonToCppFunc PythonBufferToCppIsConvertible(PyObject *pyIn)
SbkConverter *createConverter()
{
- SbkConverter *converter = Shiboken::Conversions::createConverter(SbkVoidPtrTypeF(), toPython);
+ SbkConverter *converter = Shiboken::Conversions::createConverter(SbkVoidPtr_TypeF(), toPython);
Shiboken::Conversions::addPythonToCppValueConversion(converter,
VoidPtrToCpp,
VoidPtrToCppIsConvertible);
@@ -438,28 +406,28 @@ SbkConverter *createConverter()
void setSize(PyObject *voidPtr, Py_ssize_t size)
{
- assert(voidPtr->ob_type == SbkVoidPtrTypeF());
+ assert(voidPtr->ob_type == SbkVoidPtr_TypeF());
auto *voidPtrObj = reinterpret_cast<SbkVoidPtrObject *>(voidPtr);
voidPtrObj->size = size;
}
Py_ssize_t getSize(PyObject *voidPtr)
{
- assert(voidPtr->ob_type == SbkVoidPtrTypeF());
+ assert(voidPtr->ob_type == SbkVoidPtr_TypeF());
auto *voidPtrObj = reinterpret_cast<SbkVoidPtrObject *>(voidPtr);
return voidPtrObj->size;
}
bool isWritable(PyObject *voidPtr)
{
- assert(voidPtr->ob_type == SbkVoidPtrTypeF());
+ assert(voidPtr->ob_type == SbkVoidPtr_TypeF());
auto *voidPtrObj = reinterpret_cast<SbkVoidPtrObject *>(voidPtr);
return voidPtrObj->isWritable;
}
void setWritable(PyObject *voidPtr, bool isWritable)
{
- assert(voidPtr->ob_type == SbkVoidPtrTypeF());
+ assert(voidPtr->ob_type == SbkVoidPtr_TypeF());
auto *voidPtrObj = reinterpret_cast<SbkVoidPtrObject *>(voidPtr);
voidPtrObj->isWritable = isWritable;
}
diff --git a/sources/shiboken6/libshiboken/voidptr.h b/sources/shiboken6/libshiboken/voidptr.h
index 018f6124e..8360bf9c7 100644
--- a/sources/shiboken6/libshiboken/voidptr.h
+++ b/sources/shiboken6/libshiboken/voidptr.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef VOIDPTR_H
#define VOIDPTR_H
@@ -48,7 +12,7 @@ extern "C"
{
// Void pointer type declaration.
-extern LIBSHIBOKEN_API PyTypeObject *SbkVoidPtrTypeF(void);
+extern LIBSHIBOKEN_API PyTypeObject *SbkVoidPtr_TypeF(void);
} // extern "C"
diff --git a/sources/shiboken6/shiboken_tool.py b/sources/shiboken6/shiboken_tool.py
index e136794f7..30d334f44 100755
--- a/sources/shiboken6/shiboken_tool.py
+++ b/sources/shiboken6/shiboken_tool.py
@@ -1,43 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import sys
import os
import subprocess
@@ -53,10 +16,12 @@ def main():
def genpyi():
- shiboken_dir = Path(__file__).resolve().parents[2] / "shiboken6"
- support = shiboken_dir / "files.dir" / "shibokensupport"
- cmd = support / "signature" / "lib" / "pyi_generator.py"
- command = [sys.executable, os.fspath(cmd)] + sys.argv[1:]
+ # After we changed the shibokensupport module to be totally virtual,
+ # it is no longer possible to call the pyi generator from the file system.
+ command = [sys.executable, "-c",
+ "import shiboken6;"
+ "from shibokensupport.signature.lib.pyi_generator import main;"
+ "main()"] + sys.argv[1:]
sys.exit(subprocess.call(command))
diff --git a/sources/shiboken6/shiboken_version.py b/sources/shiboken6/shiboken_version.py
index b5ebfa59c..07b247316 100644
--- a/sources/shiboken6/shiboken_version.py
+++ b/sources/shiboken6/shiboken_version.py
@@ -1,53 +1,17 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-major_version = "6"
-minor_version = "0"
-patch_version = "0"
+major_version = "@shiboken_MAJOR_VERSION@"
+minor_version = "@shiboken_MINOR_VERSION@"
+patch_version = "@shiboken_MICRO_VERSION@"
# For example: "a", "b", "rc"
# (which means "alpha", "beta", "release candidate").
# An empty string means the generated package will be an official release.
-release_version_type = "a"
+release_version_type = "@shiboken_PRE_RELEASE_VERSION_TYPE@"
# For example: "1", "2" (which means "beta1", "beta2", if type is "b").
-pre_release_version = "1"
+pre_release_version = "@shiboken_PRE_RELEASE_VERSION@"
if __name__ == '__main__':
# Used by CMake.
diff --git a/sources/shiboken6/shibokenmodule/CMakeLists.txt b/sources/shiboken6/shibokenmodule/CMakeLists.txt
index e0693b8e2..702750450 100644
--- a/sources/shiboken6/shibokenmodule/CMakeLists.txt
+++ b/sources/shiboken6/shibokenmodule/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(shibokenmodule)
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/shibokenmodule.txt.in"
@@ -7,24 +10,30 @@ set(sample_SRC ${CMAKE_CURRENT_BINARY_DIR}/Shiboken/shiboken_module_wrapper.cpp)
set(shibokenmodule_TYPESYSTEM ${CMAKE_CURRENT_SOURCE_DIR}/typesystem_shiboken.xml)
+shiboken_get_tool_shell_wrapper(shiboken tool_wrapper)
+
add_custom_command(
-OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/mjb_rejected_classes.log"
-BYPRODUCTS ${sample_SRC}
-# Note: shiboken6 is an executable target. By not specifying its explicit
-# path, CMAKE figures it out, itself!
-# This fixes an issue with Visual Studio, see https://github.com/PySide/shiboken6/pull/11
-COMMAND shiboken6 --project-file=${CMAKE_CURRENT_BINARY_DIR}/shibokenmodule.txt ${GENERATOR_EXTRA_FLAGS}
-DEPENDS ${shibokenmodule_TYPESYSTEM}
-WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
-COMMENT "Running generator for 'Shiboken'..."
+ OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/mjb_rejected_classes.log"
+ BYPRODUCTS ${sample_SRC}
+ COMMAND
+ ${tool_wrapper}
+ $<TARGET_FILE:Shiboken6::shiboken6>
+ --project-file=${CMAKE_CURRENT_BINARY_DIR}/shibokenmodule.txt
+ ${GENERATOR_EXTRA_FLAGS}
+ DEPENDS ${shibokenmodule_TYPESYSTEM}
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ COMMENT "Running generator for 'Shiboken'..."
)
add_library(shibokenmodule MODULE ${sample_SRC})
target_include_directories(shibokenmodule PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_SOURCE_DIR})
-set_property(TARGET shibokenmodule PROPERTY PREFIX "")
-# PYSIDE-1497: This `..` is the crucial trick to unify the path location of `Shiboken`.
-set_property(TARGET shibokenmodule PROPERTY OUTPUT_NAME "../Shiboken${PYTHON_EXTENSION_SUFFIX}")
+
+set_target_properties(shibokenmodule PROPERTIES
+ PREFIX ""
+ OUTPUT_NAME "Shiboken${PYTHON_EXTENSION_SUFFIX}"
+ LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/.."
+ RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/..")
if(WIN32)
set_property(TARGET shibokenmodule PROPERTY SUFFIX ".pyd")
@@ -33,6 +42,8 @@ target_link_libraries(shibokenmodule PUBLIC libshiboken)
create_generator_target(shibokenmodule)
+qfp_strip_library("shibokenmodule")
+
install(TARGETS shibokenmodule DESTINATION ${PYTHON_SITE_PACKAGES}/shiboken6)
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/_config.py.in"
@@ -40,13 +51,22 @@ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/_config.py.in"
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/_config.py"
DESTINATION "${PYTHON_SITE_PACKAGES}/shiboken6")
+if ("${MINIMUM_PYTHON_VERSION}" STREQUAL "")
+ set(MINIMUM_PYTHON_VERSION None)
+ set(MAXIMUM_PYTHON_VERSION None)
+endif()
+
# PYSIDE-1497: This `..` is the crucial trick to unify the path location of `Shiboken`.
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/__init__.py.in"
"${CMAKE_CURRENT_BINARY_DIR}/../__init__.py" @ONLY)
# PYSIDE-1415: Copy Shiboken.pyi into the target.
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/Shiboken.pyi"
"${CMAKE_CURRENT_BINARY_DIR}/../Shiboken.pyi" @ONLY)
+# typing support for mypy
+configure_file("${CMAKE_CURRENT_SOURCE_DIR}/py.typed.in"
+ "${CMAKE_CURRENT_BINARY_DIR}/../py.typed" @ONLY)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/../Shiboken.pyi"
+ "${CMAKE_CURRENT_BINARY_DIR}/../py.typed"
DESTINATION "${PYTHON_SITE_PACKAGES}/shiboken6")
# PYSIDE-1497: This `..` is the crucial trick to unify the path location of `Shiboken`.
diff --git a/sources/shiboken6/shibokenmodule/Shiboken.pyi b/sources/shiboken6/shibokenmodule/Shiboken.pyi
index e312f6912..6a1a63217 100644
--- a/sources/shiboken6/shibokenmodule/Shiboken.pyi
+++ b/sources/shiboken6/shibokenmodule/Shiboken.pyi
@@ -1,42 +1,5 @@
-# This Python file uses the following encoding: utf-8
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
from __future__ import annotations
@@ -55,19 +18,20 @@ class Object(object):
def __init__(self) -> None: ...
-class VoidPtr(object): ...
+class VoidPtr(object):
+ def __init__(self, value: int) -> None: ...
def _unpickle_enum(arg__1: object, arg__2: object) -> object: ...
-def createdByPython(arg__1: object) -> bool: ...
-def delete(arg__1: object) -> None: ...
-def dump(arg__1: object) -> object: ...
-def getAllValidWrappers() -> object: ...
-def getCppPointer(arg__1: object) -> object: ...
-def invalidate(arg__1: object) -> None: ...
+def createdByPython(arg__1: Shiboken.Object) -> bool: ...
+def delete(arg__1: Shiboken.Object) -> None: ...
+def dump(arg__1: object) -> str: ...
+def getAllValidWrappers() -> list[Shiboken.Object]: ...
+def getCppPointer(arg__1: Shiboken.Object) -> tuple[int, ...]: ...
+def invalidate(arg__1: Shiboken.Object) -> None: ...
def isValid(arg__1: object) -> bool: ...
-def ownedByPython(arg__1: object) -> bool: ...
-def wrapInstance(arg__1: int, arg__2: type) -> object: ...
+def ownedByPython(arg__1: Shiboken.Object) -> bool: ...
+def wrapInstance(arg__1: int, arg__2: type) -> Shiboken.Object: ...
# eof
diff --git a/sources/shiboken6/shibokenmodule/__init__.py.in b/sources/shiboken6/shibokenmodule/__init__.py.in
index 3dd59b024..c859160bc 100644
--- a/sources/shiboken6/shibokenmodule/__init__.py.in
+++ b/sources/shiboken6/shibokenmodule/__init__.py.in
@@ -1,5 +1,7 @@
__version__ = "@FINAL_PACKAGE_VERSION@"
__version_info__ = (@shiboken_MAJOR_VERSION@, @shiboken_MINOR_VERSION@, @shiboken_MICRO_VERSION@, "@shiboken_PRE_RELEASE_VERSION_TYPE@", "@shiboken_PRE_RELEASE_VERSION@")
+__minimum_python_version__ = @MINIMUM_PYTHON_VERSION@
+__maximum_python_version__ = @MAXIMUM_PYTHON_VERSION@
# PYSIDE-932: Python 2 cannot import 'zipfile' for embedding while being imported, itself.
# We simply pre-load all imports for the signature extension.
@@ -23,6 +25,3 @@ import functools
import typing
from shiboken6.Shiboken import *
-
-# Trigger signature initialization via __builtins__.
-_init_pyside_extension()
diff --git a/sources/shiboken6/shibokenmodule/_config.py.in b/sources/shiboken6/shibokenmodule/_config.py.in
index 92b3cd23c..600c431c9 100644
--- a/sources/shiboken6/shibokenmodule/_config.py.in
+++ b/sources/shiboken6/shibokenmodule/_config.py.in
@@ -9,3 +9,4 @@ version_info = (@shiboken_MAJOR_VERSION@, @shiboken_MINOR_VERSION@, @shiboken_MI
@PACKAGE_BUILD_COMMIT_HASH_DESCRIBED@
@PACKAGE_SETUP_PY_PACKAGE_TIMESTAMP_ASSIGNMENT@
@PACKAGE_SETUP_PY_PACKAGE_VERSION_ASSIGNMENT@
+@QT_MACOS_DEPLOYMENT_TARGET@
diff --git a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/__init__.py b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/__init__.py
index 2d640cb89..e54bec75a 100644
--- a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/__init__.py
+++ b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/__init__.py
@@ -1,40 +1,4 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
# this file intentionally left blank
diff --git a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/feature.py b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/feature.py
index 8776c7de9..7a0871ee7 100644
--- a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/feature.py
+++ b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/feature.py
@@ -1,41 +1,8 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+# flake8: noqa F:821
+# flake8: noqa F:401
"""
__feature__.py (renamed to feature.py)
@@ -51,9 +18,10 @@ The normal usage is like
Alternatively, there is the `set_selection` function which uses select_id's
and takes an optional `mod_name` parameter.
-The select id `-1` has the spectial meaning "ignore this module".
+The select id `-1` has the special meaning "ignore this module".
"""
+import inspect
import sys
from contextlib import contextmanager
@@ -68,7 +36,7 @@ all_feature_names = [
"_feature_80",
]
-__all__ = ["all_feature_names", "set_selection", "info"] + all_feature_names
+__all__ = ["all_feature_names", "info", "reset", "set_selection"] + all_feature_names
snake_case = 0x01
true_property = 0x02
@@ -115,11 +83,13 @@ None to indicate that a normal import should be performed, and
All these variables are transparently kept in module `builtins`.
"""
+
def feature_import(name, *args, **kwargs):
# PYSIDE-1368: The `__name__` attribute does not need to exist in all modules.
# PYSIDE-1398: sys._getframe(1) may not exist when embedding.
# PYSIDE-1338: The "1" below is the redirection in loader.py .
# PYSIDE-1548: Ensure that features are not affected by other imports.
+ # PYSIDE-2029: Need to always switch. The cache was wrong interpreted.
calling_frame = _cf = sys._getframe(1).f_back
importing_module = _cf.f_globals.get("__name__", "__main__") if _cf else "__main__"
existing = pyside_feature_dict.get(importing_module, 0)
@@ -141,24 +111,66 @@ def feature_import(name, *args, **kwargs):
# Initialize feature (multiple times allowed) and clear cache.
sys.modules["PySide6.QtCore"].__init_feature__()
return sys.modules["__feature__"]
-
- if importing_module not in pyside_feature_dict:
- # Ignore new modules if not from PySide.
- default = 0 if name.split(".")[0] == "PySide6" else -1
- pyside_feature_dict[importing_module] = default
# Redirect to the original import
return None
+
_is_initialized = False
+
def __init__():
global _is_initialized
if not _is_initialized:
# use _one_ recursive import...
import PySide6.QtCore
# Initialize all prior imported modules
- for name in sys.modules:
- pyside_feature_dict.setdefault(name, -1)
+ for name, module in sys.modules.items():
+ if name not in pyside_feature_dict:
+ pyside_feature_dict[name] = 0 if _mod_uses_pyside(module) else -1
+ _is_initialized = True
+
+
+def feature_imported(module):
+ # PYSIDE-2029: Need to inspect imported modules for PySide usage.
+ """
+ Set the module feature default after import.
+
+ A module that uses PySide has a switching default of 0 = "no feature".
+ Otherwise the default is -1 = "ignore this module".
+ """
+
+ # PYSIDE-1368: The `__name__` attribute does not need to exist in all modules.
+ if hasattr(module, "__name__"):
+ name = module.__name__
+ if name not in pyside_feature_dict:
+ pyside_feature_dict[name] = 0 if _mod_uses_pyside(module) else -1
+
+
+def _mod_uses_pyside(module):
+ """
+ Find out if this module uses PySide.
+
+ Simple approach: Search the source code for the string "PySide6".
+ Maybe we later support source-less modules by inspecting all code objects.
+ """
+ try:
+ source = inspect.getsource(module)
+ except TypeError:
+ # this is a builtin module like sys
+ return False
+ except OSError:
+ # this is a module withot source file
+ return False
+ except SyntaxError:
+ # PYSIDE-2189: A UnicodeError happens in tokenize.py in find_cookie
+ # which is then creating a SyntaxError in inspect.
+ # This is undocumented and a Python error, seen in Python 3.10.2 on Windows,
+ # importing `pythoncom` of the win32 package.
+ return False
+ except Exception:
+ # PYSIDE-2393: pytest behaves weird when allowing any other error.
+ return False
+ return "PySide6" in source
def set_selection(select_id, mod_name=None):
@@ -177,6 +189,14 @@ def set_selection(select_id, mod_name=None):
return _current_selection(flag)
+# The set_section(0) case seems to be unsafe. We will migrate to
+# use the opaque feature.reset() call in all test cases.
+def reset():
+ set_selection(0)
+ pyside_feature_dict.clear()
+ _is_initialized = False
+
+
def info(mod_name=None):
"""
Internal use: Return the current selection
diff --git a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/fix-complaints.py b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/fix-complaints.py
index 396f6ca4c..f7190b12f 100644
--- a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/fix-complaints.py
+++ b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/fix-complaints.py
@@ -1,44 +1,5 @@
-# This Python file uses the following encoding: utf-8
-# It has been edited by fix-complaints.py .
-
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
"""
fix-complaints.py
@@ -48,7 +9,6 @@ Run it once after copying a new version. It is idem-potent, unless
you are changing messages (what I did, of course :-) .
"""
-import os
import glob
from pathlib import Path
@@ -63,6 +23,7 @@ offending_words = {
utf8_line = "# This Python file uses the following encoding: utf-8\n"
marker_line = f"# It has been edited by {Path(__file__).name} .\n"
+
def patch_file(fname):
with fname.open() as f:
lines = f.readlines()
@@ -80,6 +41,7 @@ def patch_file(fname):
with open(fname, "w") as f:
f.write("".join(lines))
+
def doit():
dirname = Path(__file__).parent
patched_files = []
@@ -90,6 +52,7 @@ def doit():
print("Working on", fname)
patch_file(fname)
+
if __name__ == "__main__":
doit()
diff --git a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/__init__.py b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/__init__.py
index 7ae0a7f18..bebf56c7e 100644
--- a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/__init__.py
+++ b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/__init__.py
@@ -1,40 +1,4 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
__all__ = "get_signature layout mapping lib".split()
diff --git a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/errorhandler.py b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/errorhandler.py
index 71f2ffbab..c2a19efef 100644
--- a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/errorhandler.py
+++ b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/errorhandler.py
@@ -1,41 +1,7 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+# flake8: noqa E:721
"""
errorhandler.py
@@ -54,21 +20,33 @@ enough to produce a useful ValueError.
This matter will be improved in a later version.
"""
-import inspect
-import sys
+import collections.abc
+import typing
from shibokensupport.signature import get_signature
-from shibokensupport.signature.mapping import update_mapping, namespace
+from shibokensupport.signature.mapping import namespace
from textwrap import dedent
def qt_isinstance(inst, the_type):
if the_type == float:
- return isinstance(inst, int) or isinstance(int, float)
+ # Qt thinks differently about int and float - simply keep it.
+ return isinstance(inst, int) or isinstance(inst, float)
+ if the_type.__module__ == "typing":
+ if the_type is typing.Any:
+ return True
+ if the_type.__origin__ is typing.Union:
+ return any(qt_isinstance(inst, _) for _ in the_type.__args__)
+ if the_type.__origin__ in (collections.abc.Sequence,
+ collections.abc.Iterable):
+ try:
+ return all(qt_isinstance(_, the_type.__args__[0]) for _ in inst)
+ except TypeError:
+ return False
try:
return isinstance(inst, the_type)
except TypeError as e:
- print("FIXME", e)
+ print(f"FIXME qt_isinstance({inst}, {the_type}):", e)
return False
@@ -82,13 +60,7 @@ def matched_type(args, sigs):
if params[k].default is params[k].empty:
# this is a necessary parameter, so it fails.
continue
- ok = True
- for arg, param in zip(args, params):
- ann = param.annotation
- if qt_isinstance(arg, ann):
- continue
- ok = False
- if ok:
+ if all(qt_isinstance(arg, param.annotation) for arg, param in zip(args, params)):
return sig
return None
@@ -98,12 +70,15 @@ def seterror_argument(args, func_name, info):
try:
func = eval(func_name, namespace)
except Exception as e:
- msg = f"Internal error evaluating {func_name}: " + str(e)
- return TypeError, msg
+ msg = f"Error evaluating `{func_name}`: {e}"
+ return type(e), msg
if info and type(info) is str:
err = TypeError
if info == "<":
msg = f"{func_name}(): not enough arguments"
+ elif info == "0":
+ msg = (f"{func_name}(): not enough arguments. "
+ "Note: keyword arguments are only supported for optional parameters.")
elif info == ">":
msg = f"{func_name}(): too many arguments"
elif info.isalnum():
@@ -112,6 +87,12 @@ def seterror_argument(args, func_name, info):
msg = f"{func_name}(): {info}"
err = AttributeError
return err, msg
+ if isinstance(info, Exception):
+ # PYSIDE-2230: Python 3.12 seems to always do normalization.
+ err = type(info)
+ info = info.args[0]
+ msg = f"{func_name}(): {info}"
+ return err, msg
if info and type(info) is dict:
msg = f"{func_name}(): unsupported keyword '{tuple(info)[0]}'"
return AttributeError, msg
@@ -151,6 +132,8 @@ def check_string_type(s):
def make_helptext(func):
existing_doc = func.__doc__
+ if existing_doc is None and hasattr(func, "__dict__"):
+ existing_doc = func.__dict__.get("__doc__")
sigs = get_signature(func)
if not sigs:
return existing_doc
diff --git a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/importhandler.py b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/importhandler.py
index b37aefbb5..bae264294 100644
--- a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/importhandler.py
+++ b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/importhandler.py
@@ -1,41 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
"""
importhandler.py
@@ -70,9 +34,10 @@ def finish_import(module):
except Exception as e:
name = e.__class__.__qualname__
print(72 * "*")
- print(f"Error in deprecated.py, ignored:")
+ print("Error in deprecated.py, ignored:")
print(f" {name}: {e}")
+
"""
A note for people who might think this could be written in pure Python:
@@ -98,4 +63,3 @@ module, it is *perhaps* possible to solve that. I tried for a day and then
gave up, since the solution is anyway not too nice when __import__ must
be overridden.
"""
-#eof
diff --git a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/layout.py b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/layout.py
index 2fd2b6c4f..0e781cbcb 100644
--- a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/layout.py
+++ b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/layout.py
@@ -1,41 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
"""
layout.py
@@ -115,6 +79,7 @@ class SignatureLayout(SimpleNamespace):
The only allowed values are '{allowed_values}'.
"""))
+
# The following names are used literally in this module.
# This way, we avoid the dict hashing problem.
signature = SignatureLayout()
@@ -151,7 +116,7 @@ def define_nameless_parameter():
P = inspect.Parameter
newname = "NamelessParameter"
bases = P.__bases__
- body = dict(P.__dict__) # get rid of mappingproxy
+ body = dict(P.__dict__) # get rid of mappingproxy
if "__slots__" in body:
# __slots__ would create duplicates
for name in body["__slots__"]:
@@ -203,12 +168,13 @@ def make_signature_nameless(signature):
signature.parameters[key].__class__ = NamelessParameter
-_POSITIONAL_ONLY = inspect._POSITIONAL_ONLY
-_POSITIONAL_OR_KEYWORD = inspect._POSITIONAL_OR_KEYWORD
-_VAR_POSITIONAL = inspect._VAR_POSITIONAL
-_KEYWORD_ONLY = inspect._KEYWORD_ONLY
-_VAR_KEYWORD = inspect._VAR_KEYWORD
-_empty = inspect._empty
+_POSITIONAL_ONLY = inspect._POSITIONAL_ONLY # noqa E:201
+_POSITIONAL_OR_KEYWORD = inspect._POSITIONAL_OR_KEYWORD # noqa E:201
+_VAR_POSITIONAL = inspect._VAR_POSITIONAL # noqa E:201
+_KEYWORD_ONLY = inspect._KEYWORD_ONLY # noqa E:201
+_VAR_KEYWORD = inspect._VAR_KEYWORD # noqa E:201
+_empty = inspect._empty # noqa E:201
+
def create_signature(props, key):
if not props:
@@ -219,9 +185,9 @@ def create_signature(props, key):
return list(create_signature(elem, key)
for elem in props["multi"])
if type(key) is tuple:
- sig_kind, modifier = key
+ _, modifier = key
else:
- sig_kind, modifier = key, "signature"
+ _, modifier = key, "signature"
layout = globals()[modifier] # lookup of the modifier in this module
if not isinstance(layout, SignatureLayout):
@@ -236,7 +202,7 @@ def create_signature(props, key):
# parser.
pass
else:
- if varnames[0] in ("self", "cls"):
+ if varnames and varnames[0] in ("self", "cls"):
varnames = varnames[1:]
# calculate the modifications
@@ -270,8 +236,8 @@ def create_signature(props, key):
if kind == _VAR_POSITIONAL:
kind = _KEYWORD_ONLY
sig = inspect.Signature(params,
- return_annotation=annotations.get('return', _empty),
- __validate_parameters__=False)
+ return_annotation=annotations.get('return', _empty),
+ __validate_parameters__=False)
# the special case of nameless parameters
if not layout.parameter_names:
diff --git a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/lib/__init__.py b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/lib/__init__.py
index 2d640cb89..e54bec75a 100644
--- a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/lib/__init__.py
+++ b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/lib/__init__.py
@@ -1,40 +1,4 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
# this file intentionally left blank
diff --git a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/lib/enum_sig.py b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/lib/enum_sig.py
index 149881e01..5650e2bc1 100644
--- a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/lib/enum_sig.py
+++ b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/lib/enum_sig.py
@@ -1,41 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
"""
enum_sig.py
@@ -50,9 +14,7 @@ by producing a lot of clarity.
import inspect
import sys
import types
-import typing
from shibokensupport.signature import get_signature as get_sig
-from shibokensupport.signature.layout import create_signature
"""
@@ -67,6 +29,16 @@ declared in the same class, we use `builtins.property` in the class and
all sub-classes. The same consideration holds for "overload".
"""
+_normal_functions = (types.BuiltinFunctionType, types.FunctionType)
+if hasattr(sys, "pypy_version_info"):
+ # In PyPy, there are more types because our builtin functions
+ # are created differently in C++ and not in PyPy.
+ _normal_functions += (type(get_sig),)
+
+
+def signal_check(thing):
+ return thing and type(thing) in (Signal, SignalInstance)
+
class ExactEnumerator(object):
"""
@@ -78,13 +50,13 @@ class ExactEnumerator(object):
"""
def __init__(self, formatter, result_type=dict):
- global EnumMeta
+ global EnumMeta, Signal, SignalInstance
try:
# Lazy import
- from PySide6.QtCore import Qt
+ from PySide6.QtCore import Qt, Signal, SignalInstance
EnumMeta = type(Qt.Key)
except ImportError:
- EnumMeta = None
+ EnumMeta = Signal = SignalInstance = None
self.fmt = formatter
self.result_type = result_type
@@ -98,7 +70,7 @@ class ExactEnumerator(object):
We check if it is a simple function.
"""
tp = type(self.func)
- return tp not in (types.BuiltinFunctionType, types.FunctionType)
+ return tp not in _normal_functions
def section(self):
if hasattr(self.fmt, "section"):
@@ -126,9 +98,13 @@ class ExactEnumerator(object):
def klass(self, class_name, klass):
ret = self.result_type()
+ if ("._") in class_name:
+ # This happens when introspecting enum.Enum etc. Python 3.8.8 does not
+ # like this, but we want to remove that, anyway.
+ return ret
if "<" in class_name:
# This is happening in QtQuick for some reason:
- ## class QSharedPointer<QQuickItemGrabResult >:
+ # class std::shared_ptr<QQuickItemGrabResult >:
# We simply skip over this class.
return ret
bases_list = []
@@ -146,9 +122,19 @@ class ExactEnumerator(object):
functions = []
enums = []
properties = []
+ signals = []
+ attributes = {}
for thing_name, thing in class_members:
- if inspect.isclass(thing):
+ if signal_check(thing):
+ signals.append((thing_name, thing))
+ elif inspect.isclass(thing):
+ # If this is the only member of the class, it causes the stub
+ # to be printed empty without ..., as self.fmt.have_body will
+ # then be True. (Example: QtCore.QCborTag). Skip it to avoid
+ # this problem.
+ if thing_name == "_member_type_":
+ continue
subclass_name = ".".join((class_name, thing_name))
subclasses.append((subclass_name, thing))
elif inspect.isroutine(thing):
@@ -156,22 +142,32 @@ class ExactEnumerator(object):
functions.append((func_name, thing))
elif type(type(thing)) is EnumMeta:
# take the real enum name, not what is in the dict
- enums.append((thing_name, type(thing).__qualname__, thing))
+ if not thing_name.startswith("_"):
+ enums.append((thing_name, type(thing).__qualname__, thing))
elif isinstance(thing, property):
properties.append((thing_name, thing))
+ # Support attributes that have PySide types as values,
+ # but we skip the 'staticMetaObject' that needs
+ # to be defined at a QObject level.
+ elif "PySide" in str(type(thing)) and "QMetaObject" not in str(type(thing)):
+ if class_name not in attributes:
+ attributes[class_name] = {}
+ attributes[class_name][thing_name] = thing
if thing_name in self.collision_candidates:
self.collision_track.add(thing_name)
init_signature = getattr(klass, "__signature__", None)
- enums.sort(key=lambda tup: tup[1 : 3]) # sort by class then enum value
+ # sort by class then enum value
+ enums.sort(key=lambda tup: (tup[1], tup[2].value))
# We want to handle functions and properties together.
func_prop = sorted(functions + properties, key=lambda tup: tup[0])
# find out how many functions create a signature
- sigs = list(_ for _ in functions if hasattr(_[1], "__signature__") and _[1].__signature__)
- self.fmt.have_body = bool(subclasses or sigs or properties or enums or init_signature)
+ sigs = list(_ for _ in functions if get_sig(_[1]))
+ self.fmt.have_body = bool(subclasses or sigs or properties or enums or # noqa W:504
+ init_signature or signals or attributes)
with self.fmt.klass(class_name, class_str):
self.fmt.level += 1
@@ -181,8 +177,25 @@ class ExactEnumerator(object):
if len(enums):
self.section()
for enum_name, enum_class_name, value in enums:
- with self.fmt.enum(enum_class_name, enum_name, int(value)):
+ with self.fmt.enum(enum_class_name, enum_name, value.value):
pass
+ if hasattr(self.fmt, "signal"):
+ # this is an optional feature
+ if len(signals):
+ self.section()
+ for signal_name, signal in signals:
+ sig_class = type(signal)
+ sig_class_name = f"{sig_class.__qualname__}"
+ sig_str = str(signal)
+ with self.fmt.signal(sig_class_name, signal_name, sig_str):
+ pass
+ if hasattr(self.fmt, "attribute"):
+ if len(attributes):
+ self.section()
+ for class_name, attrs in attributes.items():
+ for attr_name, attr_value in attrs.items():
+ with self.fmt.attribute(attr_name, attr_value):
+ pass
if len(subclasses):
self.section()
for subclass_name, subclass in subclasses:
@@ -206,7 +219,7 @@ class ExactEnumerator(object):
@staticmethod
def get_signature(func):
- return func.__signature__
+ return get_sig(func)
def function(self, func_name, func, decorator=None):
self.func = func # for is_method()
diff --git a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/lib/pyi_generator.py b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/lib/pyi_generator.py
index eb2e49770..ce12dd6c8 100644
--- a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/lib/pyi_generator.py
+++ b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/lib/pyi_generator.py
@@ -1,44 +1,10 @@
LICENSE_TEXT = """
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
"""
+# flake8: noqa E:402
+
"""
pyi_generator.py
@@ -50,7 +16,6 @@ import io
import logging
import os
import re
-import subprocess
import sys
import typing
@@ -58,7 +23,6 @@ from pathlib import Path
from contextlib import contextmanager
from textwrap import dedent
-from shiboken6 import Shiboken
from shibokensupport.signature.lib.enum_sig import HintingEnumerator
from shibokensupport.signature.lib.tool import build_brace_pattern
@@ -96,6 +60,7 @@ class Formatter(Writer):
unrelated tasks of enumeration and formatting apart.
"""
def __init__(self, outfile, options, *args):
+ # XXX Find out which of these patches is still necessary!
self.options = options
Writer.__init__(self, outfile, *args)
# patching __repr__ to disable the __repr__ of typing.TypeVar:
@@ -111,8 +76,12 @@ class Formatter(Writer):
"""
def _typevar__repr__(self):
return f"typing.{self.__name__}"
- typing.TypeVar.__repr__ = _typevar__repr__
-
+ # This is no longer necessary for modern typing versions.
+ # Ignore therefore if the repr is read-only and cannot be changed.
+ try:
+ typing.TypeVar.__repr__ = _typevar__repr__
+ except TypeError:
+ pass
# Adding a pattern to substitute "Union[T, NoneType]" by "Optional[T]"
# I tried hard to replace typing.Optional by a simple override, but
# this became _way_ too much.
@@ -121,6 +90,7 @@ class Formatter(Writer):
pattern = fr"\b Union \s* \[ \s* {brace_pat} \s*, \s* NoneType \s* \]"
replace = r"Optional[\1]"
optional_searcher = re.compile(pattern, flags=re.VERBOSE)
+
def optional_replacer(source):
return optional_searcher.sub(replace, str(source))
self.optional_replacer = optional_replacer
@@ -138,8 +108,6 @@ class Formatter(Writer):
txt = f"""\
# Module `{mod_name}`
- from shiboken6 import Shiboken
-
<<IMPORTS>>
"""
self.print(dedent(txt))
@@ -190,13 +158,17 @@ class Formatter(Writer):
self.print(f"{spaces}{enum_name:25}: {class_name} = ... # {hexval}")
yield
+ @contextmanager
+ def attribute(self, attr_name, attr_value):
+ spaces = indent * self.level
+ self.print(f"{spaces}{attr_name:25} = ... # type: {type(attr_value).__qualname__}")
+ yield
-def get_license_text():
- with sourcepath.open() as f:
- lines = f.readlines()
- license_line = next((lno for lno, line in enumerate(lines)
- if "$QT_END_LICENSE$" in line))
- return "".join(lines[:license_line + 3])
+ @contextmanager
+ def signal(self, class_name, sig_name, sig_str):
+ spaces = indent * self.level
+ self.print(f"{spaces}{sig_name:25}: ClassVar[{class_name}] = ... # {sig_str}")
+ yield
def find_imports(text):
@@ -204,11 +176,16 @@ def find_imports(text):
FROM_IMPORTS = [
- ("typing", "Any Callable Dict List Optional overload Tuple Union".split()),
- ("PySide6.QtCore", ["PyClassProperty"]),
(None, ["builtins"]),
+ (None, ["os"]),
+ (None, ["enum"]),
+ ("collections.abc", ["Iterable"]),
+ ("typing", sorted(typing.__all__)),
+ ("PySide6.QtCore", ["PyClassProperty", "Signal", "SignalInstance"]),
+ ("shiboken6", ["Shiboken"]),
]
+
def filter_from_imports(from_struct, text):
"""
Build a reduced new `from` structure (nfs) with found entries, only
@@ -218,8 +195,15 @@ def filter_from_imports(from_struct, text):
lis = []
nfs.append((mod, lis))
for each in imports:
- if re.search(rf"(\b|@){each}\b", text):
- lis.append(each)
+ # PYSIDE-1603: We search text that is a usage of the class `each`,
+ # but only if the class is not also defined here.
+ if (f"class {each}(") not in text:
+ if re.search(rf"(\b|@){each}\b([^\s\(:]|\n)", text):
+ lis.append(each)
+ # Search if a type is present in the return statement
+ # of function declarations: '... -> here:'
+ if re.search(rf"->.*{each}.*:", text):
+ lis.append(each)
if not lis:
nfs.pop()
return nfs
@@ -258,12 +242,10 @@ def generate_pyi(import_name, outpath, options):
obj = getattr(top, plainname) if import_name != plainname else top
if not getattr(obj, "__file__", None) or Path(obj.__file__).is_dir():
raise ModuleNotFoundError(f"We do not accept a namespace as module `{plainname}`")
- module = sys.modules[import_name]
outfile = io.StringIO()
fmt = Formatter(outfile, options)
fmt.print(LICENSE_TEXT.strip())
- need_imports = options._pyside_call and not USE_PEP563
if USE_PEP563:
fmt.print("from __future__ import annotations")
fmt.print()
@@ -290,6 +272,12 @@ def generate_pyi(import_name, outpath, options):
# we remove the "<<IMPORTS>>" marker and insert imports if needed
if line == "<<IMPORTS>>":
text = outfile.getvalue()
+ wr.print("import " + import_name)
+ for mod_name in find_imports(text):
+ imp = "PySide6." + mod_name
+ if imp != import_name:
+ wr.print("import " + imp)
+ wr.print()
for mod, imports in filter_from_imports(FROM_IMPORTS, text):
import_args = ', '.join(imports)
if mod is None:
@@ -298,27 +286,16 @@ def generate_pyi(import_name, outpath, options):
else:
wr.print(f"from {mod} import {import_args}")
wr.print()
- if need_imports:
- for mod_name in find_imports(text):
- imp = "PySide6." + mod_name
- if imp != import_name:
- wr.print("import " + imp)
- # Do not import Shiboken which is handled already.
- if import_name != "Shiboken":
- wr.print("import " + import_name)
wr.print()
+ wr.print("NoneType: TypeAlias = type[None]")
wr.print()
else:
wr.print(line)
if not options.quiet:
options.logger.info(f"Generated: {outfilepath}")
- if options and (options.check or options.is_ci):
- # Python 3.7 and up: We can check the file directly if the syntax is ok.
- if USE_PEP563:
- subprocess.check_output([sys.executable, os.fspath(outfilepath)])
-if __name__ == "__main__":
+def main():
parser = argparse.ArgumentParser(
formatter_class=argparse.RawDescriptionHelpFormatter,
description=dedent("""\
@@ -330,11 +307,10 @@ if __name__ == "__main__":
pyi_generator will try to generate an interface "<module>.pyi".
"""))
parser.add_argument("module",
- help="The full path name of an importable module binary (.pyd, .so)")
+ help="The full path name of an importable module binary (.pyd, .so)") # noqa E:128
parser.add_argument("--quiet", action="store_true", help="Run quietly")
- parser.add_argument("--check", action="store_true", help="Test the output")
parser.add_argument("--outpath",
- help="the output directory (default = location of module binary)")
+ help="the output directory (default = location of module binary)") # noqa E:128
options = parser.parse_args()
module = options.module
outpath = options.outpath
@@ -352,4 +328,7 @@ if __name__ == "__main__":
options.logger = logger
generate_pyi(module, outpath, options=options)
+
+if __name__ == "__main__":
+ main()
# eof
diff --git a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/lib/tool.py b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/lib/tool.py
index 4ded95c36..979dcf4ce 100644
--- a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/lib/tool.py
+++ b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/lib/tool.py
@@ -1,41 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
"""
tool.py
@@ -80,8 +44,8 @@ def build_brace_pattern(level, separators):
ro, rc = round_ = "()"
so, sc = square = "[]"
- co, cc = curly = "CD" # we insert "{}", later...
- ao, ac = angle = "<>"
+ co, cc = curly = "CD" # noqa E:201 we insert "{}", later...
+ ao, ac = angle = "<>" # noqa E:201
q2, bs, q1 = '"', "\\", "'"
allpat = round_ + square + curly + angle
__ = " "
@@ -115,8 +79,8 @@ def build_brace_pattern(level, separators):
{indent} )*
""")
for idx in range(level):
- pattern = pattern.format(replacer = repeated if idx < level-1 else no_braces_q,
- indent = idx * " ", **locals())
+ pattern = pattern.format(replacer=repeated if idx < level - 1 else no_braces_q,
+ indent=idx * " ", **locals())
return pattern.replace("C", "{").replace("D", "}")
diff --git a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/loader.py b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/loader.py
index 82d6f75b6..fb4c9eeca 100644
--- a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/loader.py
+++ b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/loader.py
@@ -1,44 +1,8 @@
-# This Python file uses the following encoding: utf-8
-# It has been edited by fix-complaints.py .
-
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+# flake8: noqa E:402
+# flake8: noqa F:401
"""
loader.py
@@ -69,39 +33,54 @@ import types
def pyside_type_init(type_key, sig_strings):
return parser.pyside_type_init(type_key, sig_strings)
+
# name used in signature.cpp
def create_signature(props, key):
return layout.create_signature(props, key)
+
# name used in signature.cpp
def seterror_argument(args, func_name, info):
return errorhandler.seterror_argument(args, func_name, info)
+
# name used in signature.cpp
def make_helptext(func):
return errorhandler.make_helptext(func)
+
# name used in signature.cpp
def finish_import(module):
return importhandler.finish_import(module)
+
# name used in signature.cpp
def feature_import(*args, **kwds):
# don't spend a stack level here for speed and compatibility
global feature_import
- feature_import = __feature__.feature_import
+ feature_import = feature.feature_import
return feature_import(*args, **kwds)
+# name used in signature.cpp
+def feature_imported(*args, **kwds):
+ # don't spend a stack level here for speed and compatibility
+ global feature_imported
+ feature_imported = feature.feature_imported
+ return feature_imported(*args, **kwds)
+
+
import builtins
import signature_bootstrap
-from shibokensupport import signature, feature as __feature__
+from shibokensupport import signature, feature
signature.get_signature = signature_bootstrap.get_signature
# PYSIDE-1019: Publish the __feature__ dictionary.
-__feature__.pyside_feature_dict = signature_bootstrap.pyside_feature_dict
+feature.pyside_feature_dict = signature_bootstrap.pyside_feature_dict
builtins.__feature_import__ = signature_bootstrap.__feature_import__
del signature_bootstrap
+is_pypy = hasattr(sys, "pypy_version_info")
+
def put_into_package(package, module, override=None):
# take the last component of the module name
@@ -124,7 +103,8 @@ def move_into_pyside_package():
except ModuleNotFoundError:
# This can happen in the embedding case.
put_into_package(PySide6, shibokensupport, "support")
- put_into_package(PySide6.support, __feature__, "__feature__")
+ if not is_pypy:
+ put_into_package(PySide6.support, feature)
put_into_package(PySide6.support, signature)
put_into_package(PySide6.support.signature, mapping)
put_into_package(PySide6.support.signature, errorhandler)
@@ -136,6 +116,7 @@ def move_into_pyside_package():
put_into_package(PySide6.support.signature.lib, pyi_generator)
put_into_package(PySide6.support.signature.lib, tool)
+
from shibokensupport.signature import mapping
from shibokensupport.signature import errorhandler
from shibokensupport.signature import layout
@@ -146,21 +127,32 @@ from shibokensupport.signature.lib import enum_sig
from shibokensupport.signature.lib import pyi_generator
from shibokensupport.signature.lib import tool
+import enum
+
+post_init = lambda: None # noqa E:731 default
+
if "PySide6" in sys.modules:
# We publish everything under "PySide6.support", again.
move_into_pyside_package()
# PYSIDE-1502: Make sure that support can be imported.
try:
import PySide6.support
- except ModuleNotFoundError as e:
+ except ModuleNotFoundError:
print("PySide6.support could not be imported. "
"This is a serious configuration error.", file=sys.stderr)
raise
- # PYSIDE-1019: Modify `__import__` to be `__feature__` aware.
- # __feature__ is already in sys.modules, so this is actually no import
- import PySide6.support.__feature__
- sys.modules["__feature__"] = PySide6.support.__feature__
- builtins.__orig_import__ = builtins.__import__
- builtins.__import__ = builtins.__feature_import__
+
+ def post_init():
+ """
+ This function needs to be called explicitly when all function pointers are set.
+ Doing this during import has bad side-effects when preloading the loader.
+ """
+ # PYSIDE-1019: Modify `__import__` to be `__feature__` aware.
+ if not is_pypy:
+ # PYSIDE-535: Cannot enable __feature__ for various reasons.
+ import PySide6.support.feature
+ sys.modules["__feature__"] = PySide6.support.feature
+ builtins.__orig_import__ = builtins.__import__
+ builtins.__import__ = builtins.__feature_import__
# end of file
diff --git a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/mapping.py b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/mapping.py
index b1eb44f15..944a928e6 100644
--- a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/mapping.py
+++ b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/mapping.py
@@ -1,41 +1,7 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+# flake8: noqa E:203
"""
mapping.py
@@ -54,16 +20,17 @@ import typing
from pathlib import Path
from typing import TypeVar, Generic
-from shibokensupport.signature.lib.tool import with_metaclass
+from _imp import is_builtin
+
class ellipsis(object):
def __repr__(self):
return "..."
+
ellipsis = ellipsis()
-Point = typing.Tuple[float, float]
+Point = typing.Tuple[int, int]
Variant = typing.Any
-ModelIndexList = typing.List[int]
QImageCleanupFunction = typing.Callable
# unfortunately, typing.Optional[t] expands to typing.Union[t, NoneType]
@@ -75,7 +42,7 @@ _S = TypeVar("_S")
MultiMap = typing.DefaultDict[str, typing.List[str]]
# ulong_max is only 32 bit on windows.
-ulong_max = 2*sys.maxsize+1 if len(struct.pack("L", 1)) != 4 else 0xffffffff
+ulong_max = 2 * sys.maxsize + 1 if len(struct.pack("L", 1)) != 4 else 0xffffffff
ushort_max = 0xffff
GL_COLOR_BUFFER_BIT = 0x00004000
@@ -111,6 +78,7 @@ class _NotCalled(str):
text = self if self.endswith(")") else self + "()"
return eval(text, namespace)
+
USE_PEP563 = False
# Note: we cannot know if this feature has been imported.
# Otherwise it would be "sys.version_info[:2] >= (3, 7)".
@@ -123,6 +91,7 @@ USE_PEP563 = False
class Virtual(_NotCalled):
pass
+
# Other types I simply could not find.
class Missing(_NotCalled):
# The string must be quoted, because the object does not exist.
@@ -135,6 +104,7 @@ class Missing(_NotCalled):
class Invalid(_NotCalled):
pass
+
# Helper types
class Default(_NotCalled):
pass
@@ -143,6 +113,7 @@ class Default(_NotCalled):
class Instance(_NotCalled):
pass
+
# Parameterized primitive variables
class _Parameterized(object):
def __init__(self, type):
@@ -152,15 +123,18 @@ class _Parameterized(object):
def __repr__(self):
return f"{type(self).__name__}({self.type.__name__})"
+
# Mark the primitive variables to be moved into the result.
class ResultVariable(_Parameterized):
pass
+
# Mark the primitive variables to become Sequence, Iterable or List
# (decided in the parser).
class ArrayLikeVariable(_Parameterized):
pass
+
StringList = ArrayLikeVariable(str)
@@ -179,7 +153,7 @@ class Reloader(object):
if getattr(mod, "__file__", None) and not Path(mod.__file__).is_dir():
ending = Path(mod.__file__).suffix
return ending not in (".py", ".pyc", ".pyo", ".pyi")
- return False
+ return bool(hasattr(mod, "__name__") and is_builtin(mod.__name__))
def update(self):
"""
@@ -217,28 +191,29 @@ def check_module(mod):
mod_name = mod.__name__
raise ImportError(f"Module '{mod_name}' is not a binary module!")
+
update_mapping = Reloader().update
type_map = {}
namespace = globals() # our module's __dict__
type_map.update({
"...": ellipsis,
+ "Any": typing.Any,
"bool": bool,
"char": int,
- "char*": str,
- "char*const": str,
"double": float,
"float": float,
"int": int,
"List": ArrayLikeVariable,
"Optional": typing.Optional,
"long": int,
+ "long long": int,
"nullptr": None,
"PyCallable": typing.Callable,
"PyObject": object,
"PyObject*": object,
"PyArrayObject": ArrayLikeVariable, # numpy
- "PyPathLike": typing.Union[str, bytes, os.PathLike],
+ "PyPathLike": typing.Union[str, bytes, os.PathLike[str]],
"PySequence": typing.Iterable, # important for numpy
"PyTypeObject": type,
"QChar": str,
@@ -255,6 +230,7 @@ type_map.update({
"uintptr_t": int,
"qintptr": int,
"qsizetype": int,
+ "QFunctionPointer": int,
"QList": ArrayLikeVariable,
"qlonglong": int,
"QMap": typing.Dict,
@@ -265,6 +241,7 @@ type_map.update({
"qreal": float,
"QSet": typing.Set,
"QString": str,
+ "QLatin1String": str,
"QStringView": str,
"QStringList": StringList,
"quint16": int,
@@ -276,6 +253,7 @@ type_map.update({
"uint32_t": int,
"uint64_t": int,
"uint8_t": int,
+ "Union": typing.Union,
"quintptr": int,
"qulonglong": int,
"QVariant": Variant,
@@ -287,7 +265,10 @@ type_map.update({
"signed long": int,
"std.list": typing.List,
"std.map": typing.Dict,
+ "std.nullptr_t": NoneType,
"std.pair": typing.Tuple,
+ "std.string": str,
+ "std.wstring": str,
"std.vector": typing.List,
"str": str,
"true": True,
@@ -298,17 +279,16 @@ type_map.update({
"ulong": int,
"ULONG_MAX": ulong_max,
"UINT64_MAX": 0xffffffff,
- "unsigned char": int, # 5.9
+ "unsigned char": int, # 5.9
"unsigned char*": str,
"unsigned int": int,
- "unsigned long int": int, # 5.6, RHEL 6.6
+ "unsigned long int": int, # 5.6, RHEL 6.6
"unsigned long long": int,
"unsigned long": int,
- "unsigned short int": int, # 5.6, RHEL 6.6
+ "unsigned short int": int, # 5.6, RHEL 6.6
"unsigned short": int,
- "Unspecified": None,
"ushort": int,
- "void": int, # be more specific?
+ "void": int, # be more specific?
"WId": WId,
"zero(bytes)": b"",
"zero(Char)": 0,
@@ -318,7 +298,11 @@ type_map.update({
"zero(str)": "",
"zero(typing.Any)": None,
"zero(Any)": None,
- })
+ # This can be refined by importing numpy.typing optionally, but better than nothing.
+ "numpy.ndarray": typing.List[typing.Any],
+ "std.array[int, 4]": typing.List[int],
+ "std.array[float, 4]": typing.List[float]
+})
type_map.update({
# Handling variables declared as array:
@@ -330,8 +314,8 @@ type_map.update({
"array long long*" : ArrayLikeVariable(int),
"array long*" : ArrayLikeVariable(int),
"array short*" : ArrayLikeVariable(int),
- "array signed char*" : bytes,
- "array unsigned char*" : bytes,
+ "array signed char*" : typing.Union[bytes, bytearray, memoryview],
+ "array unsigned char*" : typing.Union[bytes, bytearray, memoryview],
"array unsigned int*" : ArrayLikeVariable(int),
"array unsigned short*" : ArrayLikeVariable(int),
# PYSIDE-1646: New macOS primitive types
@@ -342,17 +326,17 @@ type_map.update({
"array int32_t*" : ArrayLikeVariable(int),
"array uint32_t*" : ArrayLikeVariable(int),
"array intptr_t*" : ArrayLikeVariable(int),
- })
+})
type_map.update({
# Special cases:
- "char*" : bytes,
- "QChar*" : bytes,
+ "char*" : typing.Union[bytes, bytearray, memoryview],
+ "QChar*" : typing.Union[bytes, bytearray, memoryview],
"quint32*" : int, # only for QRandomGenerator
"quint8*" : bytearray, # only for QCborStreamReader and QCborValue
- "uchar*" : bytes,
- "unsigned char*": bytes,
- })
+ "uchar*" : typing.Union[bytes, bytearray, memoryview],
+ "unsigned char*": typing.Union[bytes, bytearray, memoryview],
+})
type_map.update({
# Handling variables that are returned, eventually as Tuples:
@@ -366,6 +350,7 @@ type_map.update({
"qint32*" : ResultVariable(int),
"qint64*" : ResultVariable(int),
"qreal*" : ResultVariable(float),
+ "qsizetype*" : ResultVariable(int),
"QString*" : ResultVariable(str),
"qintptr*" : ResultVariable(int),
"quintptr*" : ResultVariable(int),
@@ -373,7 +358,7 @@ type_map.update({
"uint*" : ResultVariable(int),
"unsigned int*" : ResultVariable(int),
"QStringList*" : ResultVariable(StringList),
- })
+})
type_map.update({
@@ -381,20 +366,21 @@ type_map.update({
"[typing.Any]" : [typing.Any],
"[typing.Any,typing.Any]" : [typing.Any, typing.Any],
"None" : None,
- })
+})
# PYSIDE-1328: We need to handle "self" explicitly.
type_map.update({
"self" : "self",
"cls" : "cls",
- })
+})
# PYSIDE-1538: We need to treat "std::optional" accordingly.
type_map.update({
"std.optional": typing.Optional,
})
+
# The Shiboken Part
def init_Shiboken():
type_map.update({
@@ -404,6 +390,7 @@ def init_Shiboken():
})
return locals()
+
def init_minimal():
type_map.update({
"MinBool": bool,
@@ -416,8 +403,10 @@ def init_sample():
type_map.update({
"char": int,
"char**": typing.List[str],
+ "const char*": str,
"Complex": complex,
"double": float,
+ "ByteArray&": typing.Union[bytes, bytearray, memoryview],
"Foo.HANDLE": int,
"HANDLE": int,
"Null": None,
@@ -425,6 +414,7 @@ def init_sample():
"OddBool": bool,
"PStr": str,
"PyDate": datetime.date,
+ "PyBuffer": typing.Union[bytes, bytearray, memoryview],
"sample.bool": bool,
"sample.char": int,
"sample.double": float,
@@ -435,6 +425,7 @@ def init_sample():
"sample.Photon.TemplateBase[Photon.IdentityType]": sample.Photon.ValueIdentity,
"sample.Point": Point,
"sample.PStr": str,
+ "SampleNamespace.InValue.ZeroIn": 0,
"sample.unsigned char": int,
"std.size_t": int,
"std.string": str,
@@ -459,6 +450,7 @@ def init_smart():
# This missing type should be defined in module smart. We cannot set it to Missing()
# because it is a container type. Therefore, we supply a surrogate:
global SharedPtr
+
class SharedPtr(Generic[_S]):
__module__ = "smart"
smart.SharedPtr = SharedPtr
@@ -471,8 +463,8 @@ def init_smart():
# The PySide Part
def init_PySide6_QtCore():
from PySide6.QtCore import Qt, QUrl, QDir, QKeyCombination
- from PySide6.QtCore import QRect, QSize, QPoint, QLocale, QByteArray
- from PySide6.QtCore import QMarginsF # 5.9
+ from PySide6.QtCore import QRect, QRectF, QSize, QPoint, QLocale, QByteArray
+ from PySide6.QtCore import QMarginsF # 5.9
from PySide6.QtCore import SignalInstance
try:
# seems to be not generated by 5.9 ATM.
@@ -483,60 +475,69 @@ def init_PySide6_QtCore():
"' '": " ",
"'%'": "%",
"'g'": "g",
- "4294967295UL": 4294967295, # 5.6, RHEL 6.6
+ "4294967295UL": 4294967295, # 5.6, RHEL 6.6
"CheckIndexOption.NoOption": Instance(
- "PySide6.QtCore.QAbstractItemModel.CheckIndexOptions.NoOption"), # 5.11
+ "PySide6.QtCore.QAbstractItemModel.CheckIndexOptions.NoOption"), # 5.11
"DescriptorType(-1)": int, # Native handle of QSocketDescriptor
"false": False,
"list of QAbstractAnimation": typing.List[PySide6.QtCore.QAbstractAnimation],
"long long": int,
"size_t": int,
- "NULL": None, # 5.6, MSVC
- "nullptr": None, # 5.9
- "PyBuffer": bytes,
+ "NULL": None, # 5.6, MSVC
+ "nullptr": None, # 5.9
+ "PyBuffer": typing.Union[bytes, bytearray, memoryview],
"PyByteArray": bytearray,
- "PyBytes": bytes,
+ "PyBytes": typing.Union[bytes, bytearray, memoryview],
"PyTuple": typing.Tuple,
"QDeadlineTimer(QDeadlineTimer.Forever)": Instance("PySide6.QtCore.QDeadlineTimer"),
"PySide6.QtCore.QUrl.ComponentFormattingOptions":
- PySide6.QtCore.QUrl.ComponentFormattingOption, # mismatch option/enum, why???
+ PySide6.QtCore.QUrl.ComponentFormattingOption, # mismatch option/enum, why???
"PyUnicode": typing.Text,
+ "QByteArrayView": QByteArray,
"Q_NULLPTR": None,
+ "QCalendar.Unspecified": PySide6.QtCore.QCalendar.Unspecified,
+ "QCborTag(-1)": ulong_max,
"QDir.Filters(AllEntries | NoDotAndDotDot)": Instance(
"QDir.Filters(QDir.AllEntries | QDir.NoDotAndDotDot)"),
"QDir.SortFlags(Name | IgnoreCase)": Instance(
"QDir.SortFlags(QDir.Name | QDir.IgnoreCase)"),
- "QGenericArgument((0))": ellipsis, # 5.6, RHEL 6.6. Is that ok?
+ "QEvent.Type.None": None,
+ "QGenericArgument((0))": ellipsis, # 5.6, RHEL 6.6. Is that ok?
"QGenericArgument()": ellipsis,
"QGenericArgument(0)": ellipsis,
- "QGenericArgument(NULL)": ellipsis, # 5.6, MSVC
- "QGenericArgument(nullptr)": ellipsis, # 5.10
+ "QGenericArgument(NULL)": ellipsis, # 5.6, MSVC
+ "QGenericArgument(nullptr)": ellipsis, # 5.10
"QGenericArgument(Q_NULLPTR)": ellipsis,
"QJsonObject": typing.Dict[str, PySide6.QtCore.QJsonValue],
- "QModelIndex()": Invalid("PySide6.QtCore.QModelIndex"), # repr is btw. very wrong, fix it?!
- "QModelIndexList": ModelIndexList,
- "QModelIndexList": ModelIndexList,
+ "QModelIndex()": Invalid("PySide6.QtCore.QModelIndex"), # repr is btw. very wrong, fix it?!
+ "QModelIndexList": typing.List[PySide6.QtCore.QModelIndex],
"PySideSignalInstance": SignalInstance,
"QString()": "",
"Flag.Default": Instance("PySide6.QtCore.QStringConverterBase.Flags"),
"QStringList()": [],
"QStringRef": str,
"QStringRef": str,
- "Qt.HANDLE": int, # be more explicit with some constants?
+ "Qt.HANDLE": int, # be more explicit with some constants?
"QUrl.FormattingOptions(PrettyDecoded)": Instance(
"QUrl.FormattingOptions(QUrl.PrettyDecoded)"),
"QVariant()": Invalid(Variant),
- "QVariant.Type": type, # not so sure here...
- "QVariantMap": typing.Dict[str, Variant],
+ "QVariant.Type": type, # not so sure here...
"QVariantMap": typing.Dict[str, Variant],
+ "std.chrono.seconds{5}" : ellipsis,
})
try:
type_map.update({
- "PySide6.QtCore.QMetaObject.Connection": PySide6.QtCore.Connection, # wrong!
+ "PySide6.QtCore.QMetaObject.Connection": PySide6.QtCore.Connection, # wrong!
})
except AttributeError:
# this does not exist on 5.9 ATM.
pass
+
+ # special case - char* can either be 'bytes' or 'str'. The default is 'bytes'.
+ # Here we manually set it to map to 'str'.
+ type_map.update({("PySide6.QtCore.QObject.setProperty", "char*"): str})
+ type_map.update({("PySide6.QtCore.QObject.property", "char*"): str})
+
return locals()
@@ -551,37 +552,48 @@ def init_PySide6_QtConcurrent():
def init_PySide6_QtGui():
- from PySide6.QtGui import QPageLayout, QPageSize # 5.12 macOS
+ from PySide6.QtGui import QPageLayout, QPageSize # 5.12 macOS
type_map.update({
"0.0f": 0.0,
"1.0f": 1.0,
"GL_COLOR_BUFFER_BIT": GL_COLOR_BUFFER_BIT,
"GL_NEAREST": GL_NEAREST,
"int32_t": int,
- "QPixmap()": Default("PySide6.QtGui.QPixmap"), # can't create without qApp
- "QPlatformSurface*": int, # a handle
- "QVector< QTextLayout.FormatRange >()": [], # do we need more structure?
+ "HBITMAP": int,
+ "HICON": int,
+ "HMONITOR": int,
+ "HRGN": int,
+ "QPixmap()": Default("PySide6.QtGui.QPixmap"), # can't create without qApp
+ "QPlatformSurface*": int, # a handle
+ "QVector< QTextLayout.FormatRange >()": [], # do we need more structure?
"uint32_t": int,
"uint8_t": int,
"USHRT_MAX": ushort_max,
})
+
+ # special case - char* can either be 'bytes' or 'str'. The default is 'bytes'.
+ # Here we manually set it to map to 'str'.
+ type_map.update({("PySide6.QtGui.QPixmap.save", "char*"): str})
+
return locals()
def init_PySide6_QtWidgets():
- from PySide6.QtWidgets import QWidget, QMessageBox, QStyleOption, QStyleHintReturn, QStyleOptionComplex
- from PySide6.QtWidgets import QGraphicsItem, QStyleOptionGraphicsItem # 5.9
+ from PySide6.QtWidgets import (QWidget, QMessageBox, QStyleOption,
+ QStyleHintReturn, QStyleOptionComplex,
+ QGraphicsItem, QStyleOptionGraphicsItem)
type_map.update({
"QMessageBox.StandardButtons(Yes | No)": Instance(
"QMessageBox.StandardButtons(QMessageBox.Yes | QMessageBox.No)"),
"QWidget.RenderFlags(DrawWindowBackground | DrawChildren)": Instance(
"QWidget.RenderFlags(QWidget.DrawWindowBackground | QWidget.DrawChildren)"),
- "SH_Default": QStyleHintReturn.SH_Default,
- "SO_Complex": QStyleOptionComplex.SO_Complex,
- "SO_Default": QStyleOption.SO_Default,
"static_cast<Qt.MatchFlags>(Qt.MatchExactly|Qt.MatchCaseSensitive)": Instance(
"Qt.MatchFlags(Qt.MatchExactly | Qt.MatchCaseSensitive)"),
- "Type": PySide6.QtWidgets.QListWidgetItem.Type,
+ "static_cast<Qt.MatchFlag>(Qt.MatchExactly|Qt.MatchCaseSensitive)": Instance(
+ "Qt.MatchFlag(Qt.MatchExactly | Qt.MatchCaseSensitive)"),
+ "QListWidgetItem.ItemType.Type": PySide6.QtWidgets.QListWidgetItem.Type,
+ "QTableWidgetItem.ItemType.Type": PySide6.QtWidgets.QTableWidgetItem.Type,
+ "QTreeWidgetItem.ItemType.Type": PySide6.QtWidgets.QTreeWidgetItem.Type,
})
return locals()
@@ -589,8 +601,8 @@ def init_PySide6_QtWidgets():
def init_PySide6_QtSql():
from PySide6.QtSql import QSqlDatabase
type_map.update({
- "QLatin1String(defaultConnection)": QSqlDatabase.defaultConnection,
- "QVariant.Invalid": Invalid("Variant"), # not sure what I should create, here...
+ "QLatin1StringView(QSqlDatabase.defaultConnection)": QSqlDatabase.defaultConnection,
+ "QVariant.Invalid": Invalid("Variant"), # not sure what I should create, here...
})
return locals()
@@ -610,27 +622,11 @@ def init_PySide6_QtNetwork():
return locals()
-def init_PySide6_QtMultimedia():
- # PYSIDE-1599: We force pyi testing in wheel_tester. This seems to fail, sometimes.
- try:
- import PySide6.QtMultimediaWidgets
- check_module(PySide6.QtMultimediaWidgets)
- except SystemError:
- print("Failure importing QtMultimediaWidgets")
- return locals()
- type_map.update({
- "QGraphicsVideoItem": PySide6.QtMultimediaWidgets.QGraphicsVideoItem,
- "qint64": int,
- "QVideoWidget": PySide6.QtMultimediaWidgets.QVideoWidget,
- })
- return locals()
-
-
def init_PySide6_QtOpenGL():
type_map.update({
"GLbitfield": int,
"GLenum": int,
- "GLfloat": float, # 5.6, MSVC 15
+ "GLfloat": float, # 5.6, MSVC 15
"GLint": int,
"GLuint": int,
})
@@ -648,7 +644,7 @@ def init_PySide6_QtQuick():
type_map.update({
"PySide6.QtQuick.QSharedPointer[PySide6.QtQuick.QQuickItemGrabResult]":
PySide6.QtQuick.QQuickItemGrabResult,
- "UnsignedShortType": int,
+ "QSGGeometry.Type.UnsignedShortType": int,
})
return locals()
@@ -687,9 +683,36 @@ def init_PySide6_QtBluetooth():
return locals()
+def init_PySide6_QtGraphs():
+ from PySide6.QtGraphs import (QBarDataItem, QSurfaceDataItem)
+ QBarDataRow = typing.List[QBarDataItem]
+ QBarDataArray = typing.List[QBarDataRow]
+ QSurfaceDataRow = typing.List[QSurfaceDataItem]
+ QSurfaceDataArray = typing.List[QSurfaceDataRow]
+ type_map.update({
+ "100.0f": 100.0,
+ "QBarDataArray": QBarDataArray,
+ "QBarDataArray*": QBarDataArray,
+ "QSurfaceDataArray": QSurfaceDataArray,
+ "QSurfaceDataArray*": QSurfaceDataArray,
+ })
+ return locals()
+
+
+def init_PySide6_QtHttpServer():
+ type_map.update({
+ "qMakePair(1u, 1u)": (1, 1),
+ })
+ return locals()
+
+
def init_testbinding():
type_map.update({
"testbinding.PySideCPP2.TestObjectWithoutNamespace": testbinding.TestObjectWithoutNamespace,
+ "testbinding.FlagsNamespace.Options": testbinding.Option,
+ "FlagsNamespace.Option.NoOptions": 0,
+ "StdIntList": typing.List[int],
+ 'Str("")': str(""),
})
return locals()
diff --git a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/parser.py b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/parser.py
index 8adac0725..9b48ab442 100644
--- a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/parser.py
+++ b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/parser.py
@@ -1,55 +1,19 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-import sys
+import ast
+import enum
+import keyword
+import os
import re
-import warnings
-import types
+import sys
import typing
-import keyword
-import functools
+import warnings
from types import SimpleNamespace
from shibokensupport.signature.mapping import (type_map, update_mapping,
- namespace, _NotCalled, ResultVariable, ArrayLikeVariable)
+ namespace, _NotCalled, ResultVariable, ArrayLikeVariable) # noqa E:128
from shibokensupport.signature.lib.tool import build_brace_pattern
-from shibokensupport import feature
_DEBUG = False
LIST_KEYWORDS = False
@@ -74,6 +38,65 @@ guesses, we provide an entry in 'type_map' that resolves it.
In effect, 'type_map' maps text to real Python objects.
"""
+
+def _get_flag_enum_option():
+ from shiboken6 import (__version_info__ as ver, # noqa F:401
+ __minimum_python_version__ as pyminver,
+ __maximum_python_version__ as pymaxver)
+
+ # PYSIDE-1735: Use the new Enums per default if version is >= 6.4
+ # This decides between delivered vs. dev versions.
+ # When 6.4 is out, the switching mode will be gone.
+ flag = ver[:2] >= (6, 4)
+ envname = "PYSIDE6_OPTION_PYTHON_ENUM"
+ sysname = envname.lower()
+ opt = os.environ.get(envname)
+ if opt:
+ opt = opt.lower()
+ if opt in ("yes", "on", "true"):
+ flag = True
+ elif opt in ("no", "off", "false"):
+ flag = False
+ else:
+ # instead of a simple int() conversion, let's allow for "0xf" or "0b1111"
+ try:
+ flag = ast.literal_eval(opt)
+ except Exception:
+ flag = False # turn a forbidden option into an error
+ elif hasattr(sys, sysname):
+ opt2 = flag = getattr(sys, sysname)
+ if not isinstance(flag, int):
+ flag = False # turn a forbidden option into an error
+ p = f"\n *** Python is at version {'.'.join(map(str, pyminver or (0,)))} now."
+ q = f"\n *** PySide is at version {'.'.join(map(str, ver[:2]))} now."
+ # _PepUnicode_AsString: Fix a broken promise
+ if pyminver and pyminver >= (3, 10):
+ warnings.warn(f"{p} _PepUnicode_AsString can now be replaced by PyUnicode_AsUTF8! ***")
+ # PYSIDE-1960: Emit a warning when we may remove bufferprocs_py37.(cpp|h)
+ if pyminver and pyminver >= (3, 11):
+ warnings.warn(f"{p} The files bufferprocs_py37.(cpp|h) should be removed ASAP! ***")
+ # PYSIDE-1735: Emit a warning when we should maybe evict forgiveness mode
+ if ver[:2] >= (7, 0):
+ warnings.warn(f"{q} Please drop Enum forgiveness mode in `mangled_type_getattro` ***")
+ # PYSIDE-2404: Emit a warning when we should drop uppercase offset constants
+ if ver[:2] >= (7, 0):
+ warnings.warn(f"{q} Please drop uppercase type offsets in `copyOffsetEnumStream` ***")
+ # normalize the sys attribute
+ setattr(sys, sysname, flag)
+ os.environ[envname] = str(flag)
+ if int(flag) == 0:
+ raise RuntimeError(f"Old Enums are no longer supported. int({opt or opt2}) evaluates to 0)")
+ return flag
+
+
+class EnumSelect(enum.Enum):
+ # PYSIDE-1735: Here we could save object.value expressions by using IntEnum.
+ # But it is nice to use just an Enum for selecting Enum version.
+ OLD = 1
+ NEW = 2
+ SELECTION = NEW if _get_flag_enum_option() else OLD
+
+
def dprint(*args, **kw):
if _DEBUG:
import pprint
@@ -84,6 +107,7 @@ def dprint(*args, **kw):
_cache = {}
+
def _parse_arglist(argstr):
# The following is a split re. The string is broken into pieces which are
# between the recognized strings. Because the re has groups, both the
@@ -165,7 +189,7 @@ def _handle_instance_fixup(thing):
if not match:
return thing
start, stop = match.start(), match.end() - 1
- pre, func, args = thing[:start], thing[start : stop], thing[stop:]
+ pre, func, args = thing[:start], thing[start:stop], thing[stop:]
if func[0].isupper() or func.startswith("gl") and func[2:3].isupper():
return thing
# Now convert this string to snake case.
@@ -174,7 +198,7 @@ def _handle_instance_fixup(thing):
if char.isupper():
if idx and func[idx - 1].isupper():
# two upper chars are forbidden
- return things
+ return thing
snake_func += f"_{char.lower()}"
else:
snake_func += char
@@ -189,10 +213,11 @@ def make_good_value(thing, valtype):
if thing.endswith("()"):
thing = f'Default("{thing[:-2]}")'
else:
- ret = eval(thing, namespace)
+ # PYSIDE-1735: Use explicit globals and locals because of a bug in VsCode
+ ret = eval(thing, globals(), namespace)
if valtype and repr(ret).startswith("<"):
thing = f'Instance("{thing}")'
- return eval(thing, namespace)
+ return eval(thing, globals(), namespace)
except Exception:
pass
@@ -216,12 +241,14 @@ def try_to_guess(thing, valtype):
return ret
return None
+
def get_name(thing):
if isinstance(thing, type):
return getattr(thing, "__qualname__", thing.__name__)
else:
return thing.__name__
+
def _resolve_value(thing, valtype, line):
if thing in ("0", "None") and valtype:
if valtype.startswith("PySide6.") or valtype.startswith("typing."):
@@ -264,30 +291,44 @@ def _resolve_arraytype(thing, line):
def to_string(thing):
+ # This function returns a string that creates the same object.
+ # It is absolutely crucial that str(eval(thing)) == str(thing),
+ # i.e. it must be an idempotent mapping.
if isinstance(thing, str):
return thing
if hasattr(thing, "__name__") and thing.__module__ != "typing":
- dot = "." in str(thing)
+ m = thing.__module__
+ dot = "." in str(thing) or m not in (thing.__qualname__, "builtins")
name = get_name(thing)
- return thing.__module__ + "." + name if dot else name
+ ret = m + "." + name if dot else name
+ assert (eval(ret, globals(), namespace))
+ return ret
# Note: This captures things from the typing module:
return str(thing)
matrix_pattern = "PySide6.QtGui.QGenericMatrix"
+
def handle_matrix(arg):
- n, m, typstr = tuple(map(lambda x:x.strip(), arg.split(",")))
+ n, m, typstr = tuple(map(lambda x: x.strip(), arg.split(",")))
assert typstr == "float"
result = f"PySide6.QtGui.QMatrix{n}x{m}"
- return eval(result, namespace)
+ return eval(result, globals(), namespace)
-def _resolve_type(thing, line, level, var_handler):
+def _resolve_type(thing, line, level, var_handler, func_name=None):
+ # manual set of 'str' instead of 'bytes'
+ if func_name:
+ new_thing = (func_name, thing)
+ if new_thing in type_map:
+ return type_map[new_thing]
+
# Capture total replacements, first. Happens in
# "PySide6.QtCore.QCborStreamReader.StringResult[PySide6.QtCore.QByteArray]"
if thing in type_map:
return type_map[thing]
+
# Now the nested structures are handled.
if "[" in thing:
# handle primitive arrays
@@ -298,13 +339,13 @@ def _resolve_type(thing, line, level, var_handler):
# Special case: Handle the generic matrices.
if contr == matrix_pattern:
return handle_matrix(thing)
- contr = var_handler(_resolve_type(contr, line, level+1, var_handler))
+ contr = var_handler(_resolve_type(contr, line, level + 1, var_handler))
if isinstance(contr, _NotCalled):
raise SystemError("Container types must exist:", repr(contr))
contr = to_string(contr)
pieces = []
for part in _parse_arglist(thing):
- part = var_handler(_resolve_type(part, line, level+1, var_handler))
+ part = var_handler(_resolve_type(part, line, level + 1, var_handler))
if isinstance(part, _NotCalled):
# fix the tag (i.e. "Missing") by repr
part = repr(part)
@@ -313,8 +354,8 @@ def _resolve_type(thing, line, level, var_handler):
result = f"{contr}[{thing}]"
# PYSIDE-1538: Make sure that the eval does not crash.
try:
- return eval(result, namespace)
- except Exception as e:
+ return eval(result, globals(), namespace)
+ except Exception:
warnings.warn(f"""pyside_type_init:_resolve_type
UNRECOGNIZED: {result!r}
@@ -372,11 +413,11 @@ def calculate_props(line):
name, ann = tup[:2]
if ann == "...":
name = "*args" if name.startswith("arg_") else "*" + name
- # copy the pathed fields back
+ # copy the patched fields back
ann = 'nullptr' # maps to None
tup = name, ann
arglist[idx] = tup
- annotations[name] = _resolve_type(ann, line, 0, handle_argvar)
+ annotations[name] = _resolve_type(ann, line, 0, handle_argvar, parsed.funcname)
if len(tup) == 3:
default = _resolve_value(tup[2], ann, line)
_defaults.append(default)
@@ -393,9 +434,9 @@ def calculate_props(line):
props.defaults = defaults
props.kwdefaults = {}
props.annotations = annotations
- props.varnames = varnames = tuple(tup[0] for tup in arglist)
+ props.varnames = tuple(tup[0] for tup in arglist)
funcname = parsed.funcname
- shortname = funcname[funcname.rindex(".")+1:]
+ shortname = funcname[funcname.rindex(".") + 1:]
props.name = shortname
props.multi = parsed.multi
fix_variables(props, line)
@@ -441,7 +482,6 @@ def fix_variables(props, line):
else:
diff -= 1
if retvars:
- rvs = []
retvars = list(handle_retvar(rv) if isinstance(rv, ArrayLikeVariable) else rv
for rv in retvars)
if len(retvars) == 1:
@@ -449,7 +489,7 @@ def fix_variables(props, line):
else:
retvars_str = ", ".join(map(to_string, retvars))
typestr = f"typing.Tuple[{retvars_str}]"
- returntype = eval(typestr, namespace)
+ returntype = eval(typestr, globals(), namespace)
props.annotations["return"] = returntype
props.varnames = tuple(varnames)
props.defaults = tuple(defaults)
diff --git a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/qt_attribution.json b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/qt_attribution.json
index 4cbec4824..0f05aea8b 100644
--- a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/qt_attribution.json
+++ b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/qt_attribution.json
@@ -3,7 +3,7 @@
"Name": "Python",
"QDocModule": "QtForPython",
"QtUsage": "Used for Qt for Python in the signature extension.",
- "Description": "Qt for Python is an add-on for Python. The signature packages of PySide uses certain copied and adapted source files (backport_inspect.py, typing27.py). See the folder sources/shiboken6/files.dir/shibokensupport/signature .",
+ "Description": "Qt for Python is an add-on for Python. The signature packages of PySide uses certain copied and adapted source files. See the folder sources/shiboken6/files.dir/shibokensupport .",
"Homepage": "http://www.python.org/",
"Version": "3.7.0",
"LicenseId": "Python-2.0",
diff --git a/sources/shiboken6/shibokenmodule/nothing.h b/sources/shiboken6/shibokenmodule/nothing.h
index e69de29bb..2f558afcb 100644
--- a/sources/shiboken6/shibokenmodule/nothing.h
+++ b/sources/shiboken6/shibokenmodule/nothing.h
@@ -0,0 +1,3 @@
+// This is a placeholder file for shiboken, because shiboken expects a header file listing the
+// header files whose bindings are to be created. This file is empty because shibokenmodule
+// functions are implemented directly inside the typesystem_shiboken.xml file through CPython code.
diff --git a/sources/shiboken6/shibokenmodule/py.typed.in b/sources/shiboken6/shibokenmodule/py.typed.in
new file mode 100644
index 000000000..0e76a07dc
--- /dev/null
+++ b/sources/shiboken6/shibokenmodule/py.typed.in
@@ -0,0 +1 @@
+# this is a marker file for mypy
diff --git a/sources/shiboken6/shibokenmodule/shibokenmodule.cpp b/sources/shiboken6/shibokenmodule/shibokenmodule.cpp
new file mode 100644
index 000000000..b3adfe78b
--- /dev/null
+++ b/sources/shiboken6/shibokenmodule/shibokenmodule.cpp
@@ -0,0 +1,115 @@
+// Copyright (C) 2024 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+// @snippet isvalid
+bool isValid = Shiboken::Object::isValid(%1, false);
+%PYARG_0 = %CONVERTTOPYTHON[bool](isValid);
+// @snippet isvalid
+
+// @snippet wrapinstance
+auto *pyType = reinterpret_cast<PyTypeObject *>(%2);
+if (Shiboken::ObjectType::checkType(pyType)) {
+ auto *ptr = reinterpret_cast<void *>(%1);
+ if (auto *wrapper = Shiboken::BindingManager::instance().retrieveWrapper(ptr)) {
+ Py_INCREF(wrapper);
+ %PYARG_0 = reinterpret_cast<PyObject *>(wrapper);
+ } else {
+ %PYARG_0 = Shiboken::Object::newObject(pyType, ptr, false, true);
+ }
+} else {
+ PyErr_SetString(PyExc_TypeError, "You need a shiboken-based type.");
+}
+// @snippet wrapinstance
+
+// @snippet getcpppointer
+if (Shiboken::Object::checkType(%1)) {
+ std::vector<void*> ptrs = Shiboken::Object::cppPointers(reinterpret_cast<SbkObject *>(%1));
+ %PYARG_0 = PyTuple_New(ptrs.size());
+ for (std::size_t i = 0; i < ptrs.size(); ++i)
+ PyTuple_SET_ITEM(%PYARG_0, i, PyLong_FromVoidPtr(ptrs[i]));
+} else {
+ PyErr_SetString(PyExc_TypeError, "You need a shiboken-based type.");
+}
+// @snippet getcpppointer
+
+// @snippet delete
+if (Shiboken::Object::checkType(%1)) {
+ Shiboken::Object::callCppDestructors(reinterpret_cast<SbkObject *>(%1));
+} else {
+ PyErr_SetString(PyExc_TypeError, "You need a shiboken-based type.");
+}
+// @snippet delete
+
+// @snippet ownedbypython
+if (Shiboken::Object::checkType(%1)) {
+ bool hasOwnership = Shiboken::Object::hasOwnership(reinterpret_cast<SbkObject *>(%1));
+ %PYARG_0 = %CONVERTTOPYTHON[bool](hasOwnership);
+} else {
+ PyErr_SetString(PyExc_TypeError, "You need a shiboken-based type.");
+}
+// @snippet ownedbypython
+
+// @snippet createdbypython
+if (Shiboken::Object::checkType(%1)) {
+ bool wasCreatedByPython = Shiboken::Object::wasCreatedByPython(reinterpret_cast<SbkObject *>(%1));
+ %PYARG_0 = %CONVERTTOPYTHON[bool](wasCreatedByPython);
+} else {
+ PyErr_SetString(PyExc_TypeError, "You need a shiboken-based type.");
+}
+// @snippet createdbypython
+
+// @snippet disassembleframe
+Shiboken::AutoDecRef label(PyObject_Str(%1));
+const char *marker = Shiboken::String::toCString(label);
+disassembleFrame(marker);
+Py_INCREF(Py_None);
+%PYARG_0 = Py_None;
+// @snippet disassembleframe
+
+// @snippet dump
+if (!Shiboken::Object::checkType(%1)) {
+ %PYARG_0 = Shiboken::String::fromCString("Ordinary Python type.");
+} else {
+ std::string str = Shiboken::Object::info(reinterpret_cast<SbkObject *>(%1));
+ %PYARG_0 = Shiboken::String::fromCString(str.c_str());
+}
+// @snippet dump
+
+// @snippet getallvalidwrappers
+const auto setAll = Shiboken::BindingManager::instance().getAllPyObjects();
+PyObject* listAll = PyList_New(0);
+if (listAll == nullptr)
+ return nullptr;
+for (auto *o : setAll) {
+ if (o != nullptr) {
+ if (PyList_Append(listAll, o) != 0) {
+ Py_DECREF(listAll);
+ return nullptr;
+ }
+ }
+}
+return listAll;
+// @snippet getallvalidwrappers
+
+// @snippet dumptypegraph
+const bool ok = Shiboken::BindingManager::instance().dumpTypeGraph(%1);
+%PYARG_0 = %CONVERTTOPYTHON[bool](ok);
+// @snippet dumptypegraph
+
+// @snippet dumpwrappermap
+Shiboken::BindingManager::instance().dumpWrapperMap();
+// @snippet dumpwrappermap
+
+// @snippet init
+// Add __version__ and __version_info__ attributes to the module
+PyObject* version = PyTuple_New(5);
+PyTuple_SET_ITEM(version, 0, PyLong_FromLong(SHIBOKEN_MAJOR_VERSION));
+PyTuple_SET_ITEM(version, 1, PyLong_FromLong(SHIBOKEN_MINOR_VERSION));
+PyTuple_SET_ITEM(version, 2, PyLong_FromLong(SHIBOKEN_MICRO_VERSION));
+PyTuple_SET_ITEM(version, 3, Shiboken::String::fromCString(SHIBOKEN_RELEASE_LEVEL));
+PyTuple_SET_ITEM(version, 4, PyLong_FromLong(SHIBOKEN_SERIAL));
+PyModule_AddObject(module, "__version_info__", version);
+PyModule_AddStringConstant(module, "__version__", SHIBOKEN_VERSION);
+VoidPtr::addVoidPtrToModule(module);
+Shiboken::initShibokenSupport(module);
+// @snippet init
diff --git a/sources/shiboken6/shibokenmodule/typesystem_shiboken.xml b/sources/shiboken6/shibokenmodule/typesystem_shiboken.xml
index 74f9d0856..aa08a8bbf 100644
--- a/sources/shiboken6/shibokenmodule/typesystem_shiboken.xml
+++ b/sources/shiboken6/shibokenmodule/typesystem_shiboken.xml
@@ -1,15 +1,14 @@
<?xml version="1.0" ?>
+<!--
+// Copyright (C) 2024 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+-->
<typesystem package="Shiboken">
- <custom-type name="PyObject" />
- <custom-type name="PyType" />
<primitive-type name="bool" />
<primitive-type name="unsigned long" />
<primitive-type name="size_t" />
<add-function signature="isValid(PyObject*)" return-type="bool">
- <inject-code>
- bool isValid = Shiboken::Object::isValid(%1, false);
- %PYARG_0 = %CONVERTTOPYTHON[bool](isValid);
- </inject-code>
+ <inject-code file="shibokenmodule.cpp" snippet="isvalid"/>
</add-function>
<add-function signature="invalidate(PyObject*)">
@@ -18,117 +17,49 @@
</inject-code>
</add-function>
- <add-function signature="wrapInstance(size_t, PyType)" return-type="PyObject*">
- <inject-code>
- auto *pyType = reinterpret_cast&lt;PyTypeObject *&gt;(%2);
- if (Shiboken::ObjectType::checkType(pyType)) {
- %PYARG_0 = Shiboken::Object::newObject(pyType,
- reinterpret_cast&lt;void *&gt;(%1),
- false, true);
- } else {
- PyErr_SetString(PyExc_TypeError, "You need a shiboken-based type.");
- }
- </inject-code>
+ <add-function signature="wrapInstance(size_t, PyTypeObject)" return-type="PyObject*">
+ <inject-code file="shibokenmodule.cpp" snippet="wrapinstance"/>
</add-function>
- <add-function signature="getCppPointer(PyObject*)" return-type="PyObject*">
- <inject-code>
- if (Shiboken::Object::checkType(%1)) {
- std::vector&lt;void*> ptrs = Shiboken::Object::cppPointers(reinterpret_cast&lt;SbkObject *&gt;(%1));
- %PYARG_0 = PyTuple_New(ptrs.size());
- for (std::size_t i = 0; i &lt; ptrs.size(); ++i)
- PyTuple_SET_ITEM(%PYARG_0, i, PyLong_FromVoidPtr(ptrs[i]));
- } else {
- PyErr_SetString(PyExc_TypeError, "You need a shiboken-based type.");
- }
- </inject-code>
+ <add-function signature="getCppPointer(PyObject*)" return-type="PySequence*">
+ <inject-code file="shibokenmodule.cpp" snippet="getcpppointer"/>
</add-function>
<add-function signature="delete(PyObject*)">
- <inject-code>
- if (Shiboken::Object::checkType(%1)) {
- Shiboken::Object::callCppDestructors(reinterpret_cast&lt;SbkObject *&gt;(%1));
- } else {
- PyErr_SetString(PyExc_TypeError, "You need a shiboken-based type.");
- }
- </inject-code>
+ <inject-code file="shibokenmodule.cpp" snippet="delete"/>
</add-function>
<add-function signature="ownedByPython(PyObject*)" return-type="bool">
- <inject-code>
- if (Shiboken::Object::checkType(%1)) {
- bool hasOwnership = Shiboken::Object::hasOwnership(reinterpret_cast&lt;SbkObject *&gt;(%1));
- %PYARG_0 = %CONVERTTOPYTHON[bool](hasOwnership);
- } else {
- PyErr_SetString(PyExc_TypeError, "You need a shiboken-based type.");
- }
- </inject-code>
+ <inject-code file="shibokenmodule.cpp" snippet="ownedbypython"/>
</add-function>
- <add-function signature="createdByPython(PyObject*)" return-type="bool">
- <inject-code>
- if (Shiboken::Object::checkType(%1)) {
- bool wasCreatedByPython = Shiboken::Object::wasCreatedByPython(reinterpret_cast&lt;SbkObject *&gt;(%1));
- %PYARG_0 = %CONVERTTOPYTHON[bool](wasCreatedByPython);
- } else {
- PyErr_SetString(PyExc_TypeError, "You need a shiboken-based type.");
- }
- </inject-code>
- </add-function>
+ <add-function signature="createdByPython(PyObject*)" return-type="bool">
+ <inject-code file="shibokenmodule.cpp" snippet="createdbypython"/>
+ </add-function>
- <add-function signature="dump(PyObject*)" return-type="PyObject*">
- <inject-code>
- if (!Shiboken::Object::checkType(%1)) {
- %PYARG_0 = Shiboken::String::fromCString("Ordinary Python type.");
- } else {
- std::string str = Shiboken::Object::info(reinterpret_cast&lt;SbkObject *&gt;(%1));
- %PYARG_0 = Shiboken::String::fromCString(str.c_str());
- }
- </inject-code>
+ <add-function signature="disassembleFrame(PyObject*)" return-type="PyObject">
+ <inject-code file="shibokenmodule.cpp" snippet="disassembleframe"/>
</add-function>
- <add-function signature="getAllValidWrappers(void)" return-type="PyObject*">
- <inject-code>
- std::set&lt;PyObject*&gt; setAll = Shiboken::BindingManager::instance().getAllPyObjects();
- PyObject* listAll = PyList_New(0);
- if (listAll == NULL)
- return NULL;
+ <add-function signature="dump(PyObject*)" return-type="const char *">
+ <inject-code file="shibokenmodule.cpp" snippet="dump"/>
+ </add-function>
- const std::set&lt;PyObject*&gt;::iterator end = setAll.end();
- for (std::set&lt;PyObject*&gt;::iterator iter = setAll.begin(); iter != end; ++iter) {
- if (*iter != NULL) {
- if (PyList_Append(listAll, *iter) != 0) {
- Py_DECREF(listAll);
- return NULL;
- }
- }
- }
- return listAll;
- </inject-code>
+ <add-function signature="getAllValidWrappers(void)" return-type="PySequence*">
+ <inject-code file="shibokenmodule.cpp" snippet="getallvalidwrappers"/>
</add-function>
- <add-function signature="_unpickle_enum(PyObject*, PyObject*)" return-type="PyObject*">
- <inject-code>
- %PYARG_0 = Shiboken::Enum::unpickleEnum(%1, %2);
- </inject-code>
+ <add-function signature="dumpTypeGraph(const char *@fileName@)" return-type="bool">
+ <inject-code file="shibokenmodule.cpp" snippet="dumptypegraph"/>
+ </add-function>
+
+ <add-function signature="dumpWrapperMap()">
+ <inject-code file="shibokenmodule.cpp" snippet="dumpwrappermap"/>
</add-function>
<extra-includes>
<include file-name="sbkversion.h" location="local"/>
<include file-name="voidptr.h" location="local"/>
</extra-includes>
- <inject-code position="end">
- // Add __version__ and __version_info__ attributes to the module
- PyObject* version = PyTuple_New(5);
- PyTuple_SET_ITEM(version, 0, PyLong_FromLong(SHIBOKEN_MAJOR_VERSION));
- PyTuple_SET_ITEM(version, 1, PyLong_FromLong(SHIBOKEN_MINOR_VERSION));
- PyTuple_SET_ITEM(version, 2, PyLong_FromLong(SHIBOKEN_MICRO_VERSION));
- PyTuple_SET_ITEM(version, 3, Shiboken::String::fromCString(SHIBOKEN_RELEASE_LEVEL));
- PyTuple_SET_ITEM(version, 4, PyLong_FromLong(SHIBOKEN_SERIAL));
- PyModule_AddObject(module, "__version_info__", version);
- PyModule_AddStringConstant(module, "__version__", SHIBOKEN_VERSION);
-
- Shiboken::initSignature(module);
- VoidPtr::addVoidPtrToModule(module);
- </inject-code>
+ <inject-code position="end" file="shibokenmodule.cpp" snippet="init"/>
</typesystem>
diff --git a/sources/shiboken6/tests/CMakeLists.txt b/sources/shiboken6/tests/CMakeLists.txt
index bfa92e229..05f6e9e60 100644
--- a/sources/shiboken6/tests/CMakeLists.txt
+++ b/sources/shiboken6/tests/CMakeLists.txt
@@ -1,4 +1,7 @@
-cmake_minimum_required(VERSION 3.16)
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+cmake_minimum_required(VERSION 3.18)
if(BUILD_TESTS)
find_package(Qt${QT_MAJOR_VERSION}Test 6.0 REQUIRED)
@@ -11,6 +14,8 @@ if(NOT DEFINED MINIMAL_TESTS)
add_subdirectory(libother)
endif()
+shiboken_get_debug_level(debug_level)
+
if(WIN32 OR DEFINED AVOID_PROTECTED_HACK)
message(STATUS "Tests will be generated avoiding the protected hack!")
set(GENERATOR_EXTRA_FLAGS --avoid-protected-hack)
@@ -18,6 +23,7 @@ else()
message(STATUS "Tests will be generated using the protected hack!")
set(GENERATOR_EXTRA_FLAGS )
endif()
+list(APPEND GENERATOR_EXTRA_FLAGS ${SHIBOKEN_GENERATOR_EXTRA_FLAGS} ${debug_level})
add_subdirectory(minimalbinding)
if(NOT DEFINED MINIMAL_TESTS)
@@ -39,7 +45,21 @@ list(SORT TEST_FILES)
set(test_blacklist "")
-find_package(PythonInterp REQUIRED)
+if(SHIBOKEN_IS_CROSS_BUILD)
+ # Python_EXECUTABLE will be empty when cross-building.
+ message(WARNING
+ "Running tests when cross-compiling is not supported because it would require running "
+ "a target python interpreter which might have a different architecture than the host."
+ )
+else()
+ find_package(
+ Python
+ ${USE_PYTHON_VERSION}
+ REQUIRED
+ COMPONENTS Interpreter Development
+ )
+endif()
+
if(NOT CTEST_TESTING_TIMEOUT)
set(CTEST_TESTING_TIMEOUT 60)
endif()
@@ -51,7 +71,7 @@ foreach(test_file ${TEST_FILES})
string(REGEX MATCH "/([^/]+)(binding|module)/([^/]+)_test.py" tmp ${test_file})
set(test_name "${CMAKE_MATCH_1}_${CMAKE_MATCH_3}")
list(FIND test_blacklist ${test_name} expect_fail)
- add_test(${test_name} ${PYTHON_EXECUTABLE} ${test_file})
+ add_test(${test_name} ${Python_EXECUTABLE} ${test_file})
set_tests_properties(${test_name} PROPERTIES ENVIRONMENT "BUILD_DIR=${BUILD_DIR}")
set_tests_properties(${test_name} PROPERTIES TIMEOUT ${CTEST_TESTING_TIMEOUT})
if (${expect_fail} GREATER -1)
@@ -59,7 +79,10 @@ foreach(test_file ${TEST_FILES})
endif()
endforeach()
-add_subdirectory(dumpcodemodel)
+# dumpcodemodel depends on apiextractor which is not cross-built.
+if(SHIBOKEN_BUILD_TOOLS)
+ add_subdirectory(dumpcodemodel)
+endif()
# FIXME Skipped until add an option to choose the generator
# add_subdirectory(test_generator)
diff --git a/sources/shiboken6/tests/dumpcodemodel/CMakeLists.txt b/sources/shiboken6/tests/dumpcodemodel/CMakeLists.txt
index 5c5e2c7b0..e7dbef961 100644
--- a/sources/shiboken6/tests/dumpcodemodel/CMakeLists.txt
+++ b/sources/shiboken6/tests/dumpcodemodel/CMakeLists.txt
@@ -1,6 +1,16 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
add_executable(dumpcodemodel main.cpp)
target_include_directories(dumpcodemodel
- PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${apiextractor_SOURCE_DIR})
+ PRIVATE
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../ApiExtractor
+)
-target_link_libraries(dumpcodemodel PUBLIC apiextractor Qt${QT_MAJOR_VERSION}::Core)
+target_link_libraries(dumpcodemodel
+ PRIVATE
+ apiextractor
+ Qt::Core
+)
diff --git a/sources/shiboken6/tests/dumpcodemodel/main.cpp b/sources/shiboken6/tests/dumpcodemodel/main.cpp
index 527a81262..eb876634c 100644
--- a/sources/shiboken6/tests/dumpcodemodel/main.cpp
+++ b/sources/shiboken6/tests/dumpcodemodel/main.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <abstractmetabuilder_p.h>
#include <parser/codemodel.h>
@@ -37,6 +12,7 @@
#include <QtCore/QDebug>
#include <QtCore/QDir>
#include <QtCore/QFile>
+#include <QtCore/QLibraryInfo>
#include <QtCore/QVersionNumber>
#include <QtCore/QXmlStreamWriter>
@@ -44,13 +20,15 @@
#include <algorithm>
#include <iterator>
+using namespace Qt::StringLiterals;
+
static bool optJoinNamespaces = false;
static inline QString languageLevelDescription()
{
- return QLatin1String("C++ Language level (c++11..c++17, default=")
- + QLatin1String(clang::languageLevelOption(clang::emulatedCompilerLanguageLevel()))
- + QLatin1Char(')');
+ return u"C++ Language level (c++11..c++20, default="_s
+ + QLatin1StringView(clang::languageLevelOption(clang::emulatedCompilerLanguageLevel()))
+ + u')';
}
static void formatDebugOutput(const FileModelItem &dom, bool verbose)
@@ -60,7 +38,7 @@ static void formatDebugOutput(const FileModelItem &dom, bool verbose)
QDebug debug(&output);
if (verbose)
debug.setVerbosity(3);
- debug << dom.data();
+ debug << dom.get();
}
std::cout << qPrintable(output) << '\n';
}
@@ -70,14 +48,14 @@ static const char *primitiveTypes[] = {
"float", "double"
};
-static inline QString nameAttribute() { return QStringLiteral("name"); }
+constexpr auto nameAttribute = "name"_L1;
static void formatXmlClass(QXmlStreamWriter &writer, const ClassModelItem &klass);
static void formatXmlEnum(QXmlStreamWriter &writer, const EnumModelItem &en)
{
- writer.writeStartElement(QStringLiteral("enum-type"));
- writer.writeAttribute(nameAttribute(), en->name());
+ writer.writeStartElement(u"enum-type"_s);
+ writer.writeAttribute(nameAttribute, en->name());
writer.writeEndElement();
}
@@ -117,9 +95,9 @@ static void formatXmlClass(QXmlStreamWriter &writer, const ClassModelItem &klass
const bool isValueType = std::any_of(functions.cbegin(), functions.cend(),
isPublicCopyConstructor);
formatXmlLocationComment(writer, klass);
- writer.writeStartElement(isValueType ? QStringLiteral("value-type")
- : QStringLiteral("object-type"));
- writer.writeAttribute(nameAttribute(), klass->name());
+ writer.writeStartElement(isValueType ? u"value-type"_s
+ : u"object-type"_s);
+ writer.writeAttribute(nameAttribute, klass->name());
formatXmlScopeMembers(writer, klass);
writer.writeEndElement();
}
@@ -139,14 +117,14 @@ static bool hasMembers(const NamespaceModelItem &nsp)
static void startXmlNamespace(QXmlStreamWriter &writer, const NamespaceModelItem &nsp)
{
formatXmlLocationComment(writer, nsp);
- writer.writeStartElement(QStringLiteral("namespace-type"));
- writer.writeAttribute(nameAttribute(), nsp->name());
+ writer.writeStartElement(u"namespace-type"_s);
+ writer.writeAttribute(nameAttribute, nsp->name());
}
static void formatXmlNamespaceMembers(QXmlStreamWriter &writer, const NamespaceModelItem &nsp)
{
auto nestedNamespaces = nsp->namespaces();
- for (int i = nestedNamespaces.size() - 1; i >= 0; --i) {
+ for (auto i = nestedNamespaces.size() - 1; i >= 0; --i) {
if (!hasMembers(nestedNamespaces.at(i)))
nestedNamespaces.removeAt(i);
}
@@ -157,7 +135,7 @@ static void formatXmlNamespaceMembers(QXmlStreamWriter &writer, const NamespaceM
if (optJoinNamespaces) {
// Write out members of identical namespaces and remove
const QString name = current->name();
- for (int i = 0; i < nestedNamespaces.size(); ) {
+ for (qsizetype i = 0; i < nestedNamespaces.size(); ) {
if (nestedNamespaces.at(i)->name() == name) {
formatXmlNamespaceMembers(writer, nestedNamespaces.at(i));
nestedNamespaces.removeAt(i);
@@ -171,9 +149,9 @@ static void formatXmlNamespaceMembers(QXmlStreamWriter &writer, const NamespaceM
for (const auto &func : nsp->functions()) {
const QString signature = func->typeSystemSignature();
- if (!signature.contains(QLatin1String("operator"))) { // Skip free operators
- writer.writeStartElement(QStringLiteral("function"));
- writer.writeAttribute(QStringLiteral("signature"), signature);
+ if (!signature.contains(u"operator")) { // Skip free operators
+ writer.writeStartElement(u"function"_s);
+ writer.writeAttribute(u"signature"_s, signature);
writer.writeEndElement();
}
}
@@ -186,13 +164,13 @@ static void formatXmlOutput(const FileModelItem &dom)
QXmlStreamWriter writer(&output);
writer.setAutoFormatting(true);
writer.writeStartDocument();
- writer.writeStartElement(QStringLiteral("typesystem"));
- writer.writeAttribute(QStringLiteral("package"), QStringLiteral("insert_name"));
- writer.writeComment(QStringLiteral("Auto-generated ") +
+ writer.writeStartElement(u"typesystem"_s);
+ writer.writeAttribute(u"package"_s, u"insert_name"_s);
+ writer.writeComment(u"Auto-generated "_s +
QDateTime::currentDateTime().toString(Qt::ISODate));
for (auto p : primitiveTypes) {
- writer.writeStartElement(QStringLiteral("primitive-type"));
- writer.writeAttribute(nameAttribute(), QLatin1String(p));
+ writer.writeStartElement(u"primitive-type"_s);
+ writer.writeAttribute(nameAttribute, QLatin1StringView(p));
writer.writeEndElement();
}
formatXmlNamespaceMembers(writer, dom);
@@ -220,29 +198,29 @@ int main(int argc, char **argv)
parser.setSingleDashWordOptionMode(QCommandLineParser::ParseAsLongOptions);
parser.setOptionsAfterPositionalArgumentsMode(QCommandLineParser::ParseAsPositionalArguments);
const QString description =
- QString::fromLatin1(descriptionFormat).arg(QLatin1String(qVersion()),
+ QString::fromLatin1(descriptionFormat).arg(QLatin1StringView(qVersion()),
clang::libClangVersion().toString());
parser.setApplicationDescription(description);
parser.addHelpOption();
parser.addVersionOption();
- QCommandLineOption verboseOption(QStringLiteral("verbose"),
- QStringLiteral("Display verbose output about types"));
+ QCommandLineOption verboseOption(u"verbose"_s,
+ u"Display verbose output about types"_s);
parser.addOption(verboseOption);
- QCommandLineOption debugOption(QStringLiteral("debug"),
- QStringLiteral("Display debug output"));
+ QCommandLineOption debugOption(u"debug"_s,
+ u"Display debug output"_s);
parser.addOption(debugOption);
- QCommandLineOption joinNamespacesOption({QStringLiteral("j"), QStringLiteral("join-namespaces")},
- QStringLiteral("Join namespaces"));
+ QCommandLineOption joinNamespacesOption({u"j"_s, u"join-namespaces"_s},
+ u"Join namespaces"_s);
parser.addOption(joinNamespacesOption);
- QCommandLineOption languageLevelOption(QStringLiteral("std"),
+ QCommandLineOption languageLevelOption(u"std"_s,
languageLevelDescription(),
- QStringLiteral("level"));
+ u"level"_s);
parser.addOption(languageLevelOption);
- parser.addPositionalArgument(QStringLiteral("argument"),
- QStringLiteral("C++ compiler argument"),
- QStringLiteral("argument(s)"));
+ parser.addPositionalArgument(u"argument"_s,
+ u"C++ compiler argument"_s,
+ u"argument(s)"_s);
parser.process(app);
const QStringList &positionalArguments = parser.positionalArguments();
@@ -267,8 +245,8 @@ int main(int argc, char **argv)
optJoinNamespaces = parser.isSet(joinNamespacesOption);
const FileModelItem dom = AbstractMetaBuilderPrivate::buildDom(arguments, true, level, 0);
- if (dom.isNull()) {
- QString message = QLatin1String("Unable to parse ") + positionalArguments.join(QLatin1Char(' '));
+ if (!dom) {
+ QString message = u"Unable to parse "_s + positionalArguments.join(u' ');
std::cerr << qPrintable(message) << '\n';
return -2;
}
diff --git a/sources/shiboken6/tests/libminimal/CMakeLists.txt b/sources/shiboken6/tests/libminimal/CMakeLists.txt
index f906bdb84..4a10f96bf 100644
--- a/sources/shiboken6/tests/libminimal/CMakeLists.txt
+++ b/sources/shiboken6/tests/libminimal/CMakeLists.txt
@@ -1,9 +1,17 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(libminimal)
set(libminimal_SRC
-obj.cpp
-listuser.cpp
-typedef.cpp
+containeruser.cpp containeruser.h
+libminimalmacros.h
+listuser.cpp listuser.h
+minbool.h
+obj.cpp obj.h
+spanuser.cpp spanuser.h
+typedef.cpp typedef.h
+val.h
)
add_library(libminimal SHARED ${libminimal_SRC})
diff --git a/sources/shiboken6/tests/libminimal/containeruser.cpp b/sources/shiboken6/tests/libminimal/containeruser.cpp
new file mode 100644
index 000000000..29af52aef
--- /dev/null
+++ b/sources/shiboken6/tests/libminimal/containeruser.cpp
@@ -0,0 +1,55 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#include "containeruser.h"
+
+#include <algorithm>
+#include <numeric>
+
+ContainerUser::ContainerUser() : m_intVector{1, 2, 3}, m_intArray{1, 2, 3}
+{
+}
+
+ContainerUser::~ContainerUser() = default;
+
+std::vector<int> ContainerUser::createIntVector(int num)
+{
+ std::vector<int> retval(num);
+ std::iota(retval.begin(), retval.end(), 0);
+ return retval;
+}
+
+int ContainerUser::sumIntVector(const std::vector<int> &intVector)
+{
+ return std::accumulate(intVector.cbegin(), intVector.cend(), 0);
+}
+
+std::vector<int> &ContainerUser::intVector()
+{
+ return m_intVector;
+}
+
+void ContainerUser::setIntVector(const std::vector<int> &v)
+{
+ m_intVector = v;
+}
+
+std::array<int, 3> ContainerUser::createIntArray()
+{
+ return {1, 2, 3};
+}
+
+int ContainerUser::sumIntArray(const std::array<int, 3> &intArray)
+{
+ return std::accumulate(intArray.cbegin(), intArray.cend(), 0);
+}
+
+std::array<int, 3> &ContainerUser::intArray()
+{
+ return m_intArray;
+}
+
+void ContainerUser::setIntArray(const std::array<int, 3> &a)
+{
+ m_intArray = a;
+}
diff --git a/sources/shiboken6/tests/libminimal/containeruser.h b/sources/shiboken6/tests/libminimal/containeruser.h
new file mode 100644
index 000000000..55e4020ec
--- /dev/null
+++ b/sources/shiboken6/tests/libminimal/containeruser.h
@@ -0,0 +1,36 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef CONTAINERUSER_H
+#define CONTAINERUSER_H
+
+#include "libminimalmacros.h"
+
+#include <array>
+#include <vector>
+
+/// Exercise simple, sequential containers. More advanced tests are in ListUser
+class LIBMINIMAL_API ContainerUser
+{
+public:
+ ContainerUser();
+ ~ContainerUser();
+
+ static std::vector<int> createIntVector(int num);
+ static int sumIntVector(const std::vector<int> &intVector);
+
+ std::vector<int> &intVector();
+ void setIntVector(const std::vector<int> &);
+
+ static std::array<int, 3> createIntArray();
+ static int sumIntArray(const std::array<int, 3> &intArray);
+
+ std::array<int, 3> &intArray();
+ void setIntArray(const std::array<int, 3> &);
+
+private:
+ std::vector<int> m_intVector;
+ std::array<int, 3> m_intArray;
+};
+
+#endif // CONTAINERUSER_H
diff --git a/sources/shiboken6/tests/libminimal/libminimalmacros.h b/sources/shiboken6/tests/libminimal/libminimalmacros.h
index 99ff667db..099c1f1de 100644
--- a/sources/shiboken6/tests/libminimal/libminimalmacros.h
+++ b/sources/shiboken6/tests/libminimal/libminimalmacros.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef LIBMINIMALMACROS_H
#define LIBMINIMALMACROS_H
@@ -47,4 +22,28 @@
# define LIBMINIMAL_API LIBMINIMAL_IMPORT
#endif
+#define LIBMINIMAL_DEFAULT_COPY(Class) \
+ Class(const Class &) noexcept = default; \
+ Class &operator=(const Class &) noexcept = default;
+
+#define LIBMINIMAL_DISABLE_COPY(Class) \
+ Class(const Class &) = delete;\
+ Class &operator=(const Class &) = delete;
+
+#define LIBMINIMAL_DEFAULT_MOVE(Class) \
+ Class(Class &&) noexcept = default; \
+ Class &operator=(Class &&) noexcept = default;
+
+#define LIBMINIMAL_DEFAULT_COPY_MOVE(Class) \
+ LIBMINIMAL_DEFAULT_COPY(Class) \
+ LIBMINIMAL_DEFAULT_MOVE(Class)
+
+#define LIBMINIMAL_DISABLE_MOVE(Class) \
+ Class(Class &&) = delete; \
+ Class &operator=(Class &&) = delete;
+
+#define LIBMINIMAL_DISABLE_COPY_MOVE(Class) \
+ LIBMINIMAL_DISABLE_COPY(Class) \
+ LIBMINIMAL_DISABLE_MOVE(Class)
+
#endif // LIBMINIMALMACROS_H
diff --git a/sources/shiboken6/tests/libminimal/listuser.cpp b/sources/shiboken6/tests/libminimal/listuser.cpp
index 0d7721c3c..93c399542 100644
--- a/sources/shiboken6/tests/libminimal/listuser.cpp
+++ b/sources/shiboken6/tests/libminimal/listuser.cpp
@@ -1,54 +1,35 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
-#include <numeric>
-#include <cstdlib>
#include "listuser.h"
#include <algorithm>
+#include <cstdlib>
#include <numeric>
-std::list<int>
-ListUser::createIntList(int num)
+std::list<int> ListUser::createIntList(int num)
{
std::list<int> retval(num);
std::iota(retval.begin(), retval.end(), 0);
return retval;
}
-int
-ListUser::sumIntList(std::list<int> intList)
+int ListUser::sumIntList(std::list<int> intList)
{
return std::accumulate(intList.begin(), intList.end(), 0);
}
-std::list<MinBool>
-ListUser::createMinBoolList(MinBool mb1, MinBool mb2)
+int ListUser::sumIntListDefaultParamConstRef(const std::list<int> &intList)
+{
+ return sumIntList(intList);
+}
+
+int ListUser::sumIntListDefaultParam(std::list<int> intList)
+{
+ return sumIntList(intList);
+}
+
+std::list<MinBool> ListUser::createMinBoolList(MinBool mb1, MinBool mb2)
{
std::list<MinBool> retval;
retval.push_back(mb1);
@@ -56,8 +37,7 @@ ListUser::createMinBoolList(MinBool mb1, MinBool mb2)
return retval;
}
-MinBool
-ListUser::oredMinBoolList(std::list<MinBool> minBoolList)
+MinBool ListUser::oredMinBoolList(std::list<MinBool> minBoolList)
{
MinBool result(false);
for (const auto &m : minBoolList)
@@ -65,8 +45,7 @@ ListUser::oredMinBoolList(std::list<MinBool> minBoolList)
return result;
}
-std::list<Val>
-ListUser::createValList(int num)
+std::list<Val> ListUser::createValList(int num)
{
std::list<Val> retval;
for (int i = 0; i < num; ++i)
@@ -74,17 +53,14 @@ ListUser::createValList(int num)
return retval;
}
-int
-ListUser::sumValList(std::list<Val> valList)
+int ListUser::sumValList(std::list<Val> valList)
{
int total = 0;
for (const auto &v : valList)
total += v.valId();
return total;
}
-
-std::list<Obj*>
-ListUser::createObjList(Obj* o1, Obj* o2)
+std::list<Obj*> ListUser::createObjList(Obj* o1, Obj* o2)
{
std::list<Obj*> retval;
retval.push_back(o1);
@@ -92,8 +68,7 @@ ListUser::createObjList(Obj* o1, Obj* o2)
return retval;
}
-int
-ListUser::sumObjList(std::list<Obj*> objList)
+int ListUser::sumObjList(std::list<Obj*> objList)
{
int total = 0;
for (const auto *obj : objList)
@@ -101,8 +76,7 @@ ListUser::sumObjList(std::list<Obj*> objList)
return total;
}
-std::list<std::list<int> >
-ListUser::createListOfIntLists(int num)
+std::list<std::list<int> > ListUser::createListOfIntLists(int num)
{
std::list<std::list<int> > retval;
for (int i = 0; i < num; ++i)
@@ -110,8 +84,7 @@ ListUser::createListOfIntLists(int num)
return retval;
}
-int
-ListUser::sumListOfIntLists(std::list<std::list<int> > intListList)
+int ListUser::sumListOfIntLists(std::list<std::list<int> > intListList)
{
int total = 0;
for (const auto &list : intListList)
@@ -119,3 +92,42 @@ ListUser::sumListOfIntLists(std::list<std::list<int> > intListList)
return total;
}
+void ListUser::setStdIntList(const std::list<int> &l)
+{
+ m_stdIntList = l;
+}
+
+std::list<int> &ListUser::getIntList()
+{
+ return m_stdIntList;
+}
+
+const std::list<int> &ListUser::getConstIntList() const
+{
+ return m_stdIntList;
+}
+
+int ListUser::modifyIntListPtr(std::list<int> *list) const
+{
+ const int oldSize = int(list->size());
+ list->push_back(42);
+ return oldSize;
+}
+
+std::list<int> *ListUser::returnIntListByPtr() const
+{
+ return nullptr;
+}
+
+int ListUser::callReturnIntListByPtr() const
+{
+ auto *list = returnIntListByPtr();
+ return list != nullptr ? int(list->size()) : 0;
+}
+
+int ListUser::modifyDoubleListPtr(std::list<double> *list) const
+{
+ const int oldSize = int(list->size());
+ list->push_back(42);
+ return oldSize;
+}
diff --git a/sources/shiboken6/tests/libminimal/listuser.h b/sources/shiboken6/tests/libminimal/listuser.h
index 6c7e6aedd..9904ef27d 100644
--- a/sources/shiboken6/tests/libminimal/listuser.h
+++ b/sources/shiboken6/tests/libminimal/listuser.h
@@ -1,44 +1,24 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef LISTUSER_H
#define LISTUSER_H
-#include <list>
#include "obj.h"
#include "val.h"
#include "minbool.h"
#include "libminimalmacros.h"
+#include <list>
+
struct LIBMINIMAL_API ListUser
{
- virtual ~ListUser() {}
+ LIBMINIMAL_DEFAULT_COPY(ListUser)
+ LIBMINIMAL_DISABLE_MOVE(ListUser)
+
+ ListUser() noexcept = default;
+ virtual ~ListUser() = default;
// List of C++ primitive type items
virtual std::list<int> createIntList(int num);
@@ -46,6 +26,9 @@ struct LIBMINIMAL_API ListUser
virtual int sumIntList(std::list<int> intList);
int callSumIntList(std::list<int> intList) { return sumIntList(intList); }
+ int sumIntListDefaultParamConstRef(const std::list<int> &intList = {1, 2, 3});
+ int sumIntListDefaultParam(std::list<int> intList = {1, 2, 3});
+
// List of C++ MinBool objects used as primitives in Python
virtual std::list<MinBool> createMinBoolList(MinBool mb1, MinBool mb2);
std::list<MinBool> callCreateMinBoolList(MinBool mb1, MinBool mb2) { return createMinBoolList(mb1, mb2); }
@@ -69,6 +52,20 @@ struct LIBMINIMAL_API ListUser
std::list<std::list<int> > callCreateListOfIntLists(int num) { return createListOfIntLists(num); }
virtual int sumListOfIntLists(std::list<std::list<int> > intListList);
int callSumListOfIntLists(std::list<std::list<int> > intListList) { return sumListOfIntLists(intListList); }
+
+ void setStdIntList(const std::list<int> &l);
+ std::list<int> &getIntList();
+ const std::list<int> &getConstIntList() const;
+
+ int modifyIntListPtr(std::list<int> *list) const;
+
+ virtual std::list<int> *returnIntListByPtr() const;
+
+ int callReturnIntListByPtr() const;
+
+ int modifyDoubleListPtr(std::list<double> *list) const;
+
+ std::list<int> m_stdIntList;
};
#endif // LISTUSER_H
diff --git a/sources/shiboken6/tests/libminimal/minbool.h b/sources/shiboken6/tests/libminimal/minbool.h
index 72a2cbabe..e460f466b 100644
--- a/sources/shiboken6/tests/libminimal/minbool.h
+++ b/sources/shiboken6/tests/libminimal/minbool.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef MINBOOL_H
#define MINBOOL_H
@@ -38,9 +13,10 @@ public:
bool value() const { return m_value; }
inline MinBool operator!() const { return MinBool(!m_value); }
inline MinBool& operator|=(const MinBool& other) {
- m_value = m_value | other.m_value;
+ m_value |= other.m_value;
return *this;
}
+
private:
bool m_value;
};
@@ -55,12 +31,16 @@ inline bool operator!=(MinBool b1, MinBool b2) { return (!b1).value() != (!b2).v
class LIBMINIMAL_API MinBoolUser
{
public:
- MinBoolUser() : m_minbool(MinBool(false)) {}
- virtual ~MinBoolUser() {}
+ LIBMINIMAL_DEFAULT_COPY(MinBoolUser)
+ LIBMINIMAL_DISABLE_MOVE(MinBoolUser)
+
+ MinBoolUser() noexcept : m_minbool(MinBool(false)) {}
+ virtual ~MinBoolUser() = default;
inline MinBool minBool() { return m_minbool; }
inline void setMinBool(MinBool minBool) { m_minbool = minBool; }
virtual MinBool invertedMinBool() { return !m_minbool; }
inline MinBool callInvertedMinBool() { return invertedMinBool(); }
+
private:
MinBool m_minbool;
};
diff --git a/sources/shiboken6/tests/libminimal/obj.cpp b/sources/shiboken6/tests/libminimal/obj.cpp
index eb7af3a74..a63a9c3c9 100644
--- a/sources/shiboken6/tests/libminimal/obj.cpp
+++ b/sources/shiboken6/tests/libminimal/obj.cpp
@@ -1,41 +1,15 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "obj.h"
-Obj::Obj(int objId) : m_objId(objId)
+Obj::Obj(int objId) noexcept : m_objId(objId)
{
}
Obj::~Obj() = default;
-bool
-Obj::virtualMethod(int val)
+bool Obj::virtualMethod(int val)
{
return !bool(val%2);
}
diff --git a/sources/shiboken6/tests/libminimal/obj.h b/sources/shiboken6/tests/libminimal/obj.h
index b868bbcbf..be0bfb52b 100644
--- a/sources/shiboken6/tests/libminimal/obj.h
+++ b/sources/shiboken6/tests/libminimal/obj.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef OBJ_H
#define OBJ_H
@@ -34,7 +9,9 @@
class LIBMINIMAL_API Obj
{
public:
- explicit Obj(int objId);
+ LIBMINIMAL_DISABLE_COPY_MOVE(Obj)
+
+ explicit Obj(int objId) noexcept;
virtual ~Obj();
int objId() const { return m_objId; }
@@ -50,8 +27,6 @@ public:
Obj* callPassObjectTypeReference(Obj& obj) { return passObjectTypeReference(obj); }
private:
- Obj(const Obj&);
- Obj& operator=(const Obj&);
int m_objId;
};
diff --git a/sources/shiboken6/tests/libminimal/spanuser.cpp b/sources/shiboken6/tests/libminimal/spanuser.cpp
new file mode 100644
index 000000000..fea9cd68e
--- /dev/null
+++ b/sources/shiboken6/tests/libminimal/spanuser.cpp
@@ -0,0 +1,58 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#include "spanuser.h"
+
+#include <numeric>
+
+SpanUser::SpanUser() = default;
+
+bool SpanUser::enabled()
+{
+#if __cplusplus >= 202002L
+ return true;
+#else
+ return false;
+#endif
+}
+
+#if __cplusplus >= 202002L
+IntSpan3 SpanUser::getIntSpan3()
+{
+ static int iv[] = {1, 2, 3};
+ return IntSpan3(iv);
+}
+
+IntSpan SpanUser::getIntSpan()
+{
+ static int iv[] = {1, 2, 3};
+ return IntSpan(iv);
+}
+
+ConstIntSpan3 SpanUser::getConstIntSpan3()
+{
+ static const int civ[] = {1, 2, 3};
+ return ConstIntSpan3(civ);
+}
+
+IntSpan3 SpanUser::getIntSpan3_OpaqueContainer()
+{
+ static int iv[] = {1, 2, 3};
+ return IntSpan3(iv);
+}
+
+int SpanUser::sumIntSpan3(IntSpan3 isp3)
+{
+ return std::accumulate(isp3.begin(), isp3.end(), 0);
+}
+
+int SpanUser::sumIntSpan(IntSpan isp)
+{
+ return std::accumulate(isp.begin(), isp.end(), 0);
+}
+
+int SpanUser::sumConstIntSpan3(ConstIntSpan3 ispc3)
+{
+ return std::accumulate(ispc3.begin(), ispc3.end(), 0);
+}
+#endif // C++ 20
diff --git a/sources/shiboken6/tests/libminimal/spanuser.h b/sources/shiboken6/tests/libminimal/spanuser.h
new file mode 100644
index 000000000..c78ba35e7
--- /dev/null
+++ b/sources/shiboken6/tests/libminimal/spanuser.h
@@ -0,0 +1,35 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef SPANUSER_H
+#define SPANUSER_H
+
+#include "libminimalmacros.h"
+
+#if __cplusplus >= 202002L
+# include <span>
+
+using IntSpan3 = std::span<int, 3>;
+using IntSpan = std::span<int>;
+using ConstIntSpan3 = std::span<const int, 3>;
+#endif
+
+struct LIBMINIMAL_API SpanUser
+{
+ SpanUser();
+
+ static bool enabled();
+
+#if __cplusplus >= 202002L
+ static IntSpan3 getIntSpan3();
+ static IntSpan getIntSpan();
+ static ConstIntSpan3 getConstIntSpan3();
+ static IntSpan3 getIntSpan3_OpaqueContainer();
+
+ static int sumIntSpan3(IntSpan3 isp3);
+ static int sumIntSpan(IntSpan isp);
+ static int sumConstIntSpan3(ConstIntSpan3 ispc3);
+#endif // C++ 20
+};
+
+#endif // SPANUSER_H
diff --git a/sources/shiboken6/tests/libminimal/typedef.cpp b/sources/shiboken6/tests/libminimal/typedef.cpp
index e0886d982..115b7be0a 100644
--- a/sources/shiboken6/tests/libminimal/typedef.cpp
+++ b/sources/shiboken6/tests/libminimal/typedef.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "typedef.h"
diff --git a/sources/shiboken6/tests/libminimal/typedef.h b/sources/shiboken6/tests/libminimal/typedef.h
index b8d6faacd..7116db1b8 100644
--- a/sources/shiboken6/tests/libminimal/typedef.h
+++ b/sources/shiboken6/tests/libminimal/typedef.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TYPEDEF_H
#define TYPEDEF_H
diff --git a/sources/shiboken6/tests/libminimal/val.h b/sources/shiboken6/tests/libminimal/val.h
index c43302317..50f090a7d 100644
--- a/sources/shiboken6/tests/libminimal/val.h
+++ b/sources/shiboken6/tests/libminimal/val.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef VAL_H
#define VAL_H
@@ -34,8 +9,10 @@
class LIBMINIMAL_API Val
{
public:
- explicit Val(int valId) : m_valId(valId) {}
- virtual ~Val() {}
+ explicit Val(int valId) noexcept : m_valId(valId) {}
+ LIBMINIMAL_DEFAULT_COPY_MOVE(Val)
+
+ virtual ~Val() = default;
int valId() const { return m_valId; }
void setValId(int valId) { m_valId = valId; }
diff --git a/sources/shiboken6/tests/libother/CMakeLists.txt b/sources/shiboken6/tests/libother/CMakeLists.txt
index c078d3546..0379d740b 100644
--- a/sources/shiboken6/tests/libother/CMakeLists.txt
+++ b/sources/shiboken6/tests/libother/CMakeLists.txt
@@ -1,12 +1,17 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(libother)
set(libother_SRC
-number.cpp
-otherderived.cpp
-otherobjecttype.cpp
-othermultiplederived.cpp
-smartptrtester.cpp
-othertypesystypedef.cpp
+extendsnoimplicitconversion.h
+libothermacros.h
+number.cpp number.h
+otherderived.cpp otherderived.h
+othermultiplederived.cpp othermultiplederived.h
+otherobjecttype.cpp otherobjecttype.h
+othertypesystypedef.cpp othertypesystypedef.h
+smartptrtester.cpp smartptrtester.h
)
add_library(libother SHARED ${libother_SRC})
diff --git a/sources/shiboken6/tests/libother/extendsnoimplicitconversion.h b/sources/shiboken6/tests/libother/extendsnoimplicitconversion.h
index e1bcf0961..36d503fe8 100644
--- a/sources/shiboken6/tests/libother/extendsnoimplicitconversion.h
+++ b/sources/shiboken6/tests/libother/extendsnoimplicitconversion.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef EXTENDSNOIMPLICITCONVERSION_H
#define EXTENDSNOIMPLICITCONVERSION_H
@@ -38,8 +13,9 @@ public:
explicit ExtendsNoImplicitConversion(int objId) : m_objId(objId) {};
inline int objId() const { return m_objId; }
inline operator NoImplicitConversion() const { return NoImplicitConversion(m_objId); }
+
private:
int m_objId;
};
-#endif // EXTENDSNOIMPLICITCONVERSION_H
+#endif // EXTENDSNOIMPLICITCONVERSION_H
diff --git a/sources/shiboken6/tests/libother/libothermacros.h b/sources/shiboken6/tests/libother/libothermacros.h
index e5207064f..567757abd 100644
--- a/sources/shiboken6/tests/libother/libothermacros.h
+++ b/sources/shiboken6/tests/libother/libothermacros.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef LIBOTHERMACROS_H
#define LIBOTHERMACROS_H
diff --git a/sources/shiboken6/tests/libother/number.cpp b/sources/shiboken6/tests/libother/number.cpp
index bc97de6a6..fbf50dc4a 100644
--- a/sources/shiboken6/tests/libother/number.cpp
+++ b/sources/shiboken6/tests/libother/number.cpp
@@ -1,59 +1,28 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "number.h"
-#include <cstring>
-#include <sstream>
-using namespace std;
+#include <sstream>
-Str
-Number::toStr() const
+Str Number::toStr() const
{
- ostringstream in;
+ std::ostringstream in;
in << m_value;
return in.str().c_str();
}
-Point
-operator*(const Point& p, const Number& n)
+Point operator*(const Point &p, const Number &n)
{
- return Point(p.x() * n.value(), p.y() * n.value());
+ return {p.x() * n.value(), p.y() * n.value()};
}
-Complex
-Number::toComplex() const
+Complex Number::toComplex() const
{
return Complex(m_value);
}
-Number
-Number::fromComplex(Complex cpx)
+Number Number::fromComplex(Complex cpx)
{
return Number(cpx.real());
}
diff --git a/sources/shiboken6/tests/libother/number.h b/sources/shiboken6/tests/libother/number.h
index 222c6e1a6..2c480e7f2 100644
--- a/sources/shiboken6/tests/libother/number.h
+++ b/sources/shiboken6/tests/libother/number.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef NUMBER_H
#define NUMBER_H
@@ -43,7 +18,7 @@ public:
Str toStr() const;
inline operator Str() const { return toStr(); }
- friend LIBOTHER_API Point operator*(const Point&, const Number&);
+ friend LIBOTHER_API Point operator*(const Point &, const Number &);
Complex toComplex() const;
static Number fromComplex(Complex cpx);
@@ -52,6 +27,6 @@ private:
int m_value;
};
-LIBOTHER_API Point operator*(const Point&, const Number&);
+LIBOTHER_API Point operator*(const Point &, const Number &);
#endif // NUMBER_H
diff --git a/sources/shiboken6/tests/libother/otherderived.cpp b/sources/shiboken6/tests/libother/otherderived.cpp
index d23f6ad23..93a18876e 100644
--- a/sources/shiboken6/tests/libother/otherderived.cpp
+++ b/sources/shiboken6/tests/libother/otherderived.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "otherderived.h"
@@ -32,30 +7,24 @@ OtherDerived::OtherDerived(int id) : Abstract(id)
{
}
-OtherDerived::~OtherDerived()
-{
-}
+OtherDerived::~OtherDerived() = default;
-Abstract*
-OtherDerived::createObject()
+Abstract *OtherDerived::createObject()
{
static int id = 100;
return new OtherDerived(id++);
}
-void
-OtherDerived::pureVirtual()
+void OtherDerived::pureVirtual()
{
}
-void*
-OtherDerived::pureVirtualReturningVoidPtr()
+void *OtherDerived::pureVirtualReturningVoidPtr()
{
return nullptr;
}
-void
-OtherDerived::unpureVirtual()
+void OtherDerived::unpureVirtual()
{
}
diff --git a/sources/shiboken6/tests/libother/otherderived.h b/sources/shiboken6/tests/libother/otherderived.h
index 72e1e2302..d6bde8808 100644
--- a/sources/shiboken6/tests/libother/otherderived.h
+++ b/sources/shiboken6/tests/libother/otherderived.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef OTHERDERIVED_H
#define OTHERDERIVED_H
@@ -43,26 +18,26 @@ public:
OtherDerived(int id = -1);
~OtherDerived() override;
void pureVirtual() override;
- void* pureVirtualReturningVoidPtr() override;
+ void *pureVirtualReturningVoidPtr() override;
void unpureVirtual() override;
PrintFormat returnAnEnum() override { return Short; }
- inline void useObjectTypeFromOtherModule(ObjectType*) {}
- inline Event useValueTypeFromOtherModule(const Event& e) { return e; }
- inline Complex useValueTypeFromOtherModule(const Complex& c) { return c; }
+ inline void useObjectTypeFromOtherModule(ObjectType *) {}
+ inline Event useValueTypeFromOtherModule(const Event &e) { return e; }
+ inline Complex useValueTypeFromOtherModule(const Complex &c) { return c; }
inline void useEnumTypeFromOtherModule(OverloadedFuncEnum) {}
// factory method
- static Abstract* createObject();
+ static Abstract *createObject();
void hideFunction(HideType*) override {}
protected:
- inline const char* getClassName() { return className(); }
- virtual const char* className() override { return "OtherDerived"; }
+ inline const char *getClassName() { return className(); }
+ const char *className() const override { return "OtherDerived"; }
private:
void pureVirtualPrivate() override;
};
-#endif // OTHERDERIVED_H
+#endif // OTHERDERIVED_H
diff --git a/sources/shiboken6/tests/libother/othermultiplederived.cpp b/sources/shiboken6/tests/libother/othermultiplederived.cpp
index e7ee4f96d..cfbbfb2c2 100644
--- a/sources/shiboken6/tests/libother/othermultiplederived.cpp
+++ b/sources/shiboken6/tests/libother/othermultiplederived.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "othermultiplederived.h"
@@ -33,18 +8,17 @@ VirtualMethods OtherMultipleDerived::returnUselessClass()
return VirtualMethods();
}
-Base1* OtherMultipleDerived::createObject(const std::string& objName)
+Base1 *OtherMultipleDerived::createObject(const std::string &objName)
{
if (objName == "Base1")
return new Base1;
- else if (objName == "MDerived1")
+ if (objName == "MDerived1")
return new MDerived1;
- else if (objName == "SonOfMDerived1")
+ if (objName == "SonOfMDerived1")
return new SonOfMDerived1;
- else if (objName == "MDerived3")
+ if (objName == "MDerived3")
return new MDerived3;
- else if (objName == "OtherMultipleDerived")
+ if (objName == "OtherMultipleDerived")
return new OtherMultipleDerived;
return nullptr;
}
-
diff --git a/sources/shiboken6/tests/libother/othermultiplederived.h b/sources/shiboken6/tests/libother/othermultiplederived.h
index 84a426ac9..a8e265388 100644
--- a/sources/shiboken6/tests/libother/othermultiplederived.h
+++ b/sources/shiboken6/tests/libother/othermultiplederived.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef OTHERMULTIPLEDERIVED_H
#define OTHERMULTIPLEDERIVED_H
@@ -40,7 +15,7 @@ class LIBOTHER_API OtherMultipleDerived : public MDerived1
public:
// this will use CppCopier from other module (bug#142)
VirtualMethods returnUselessClass();
- static Base1* createObject(const std::string& objName);
+ static Base1 *createObject(const std::string &objName);
};
-#endif
+#endif // OTHERMULTIPLEDERIVED_H
diff --git a/sources/shiboken6/tests/libother/otherobjecttype.cpp b/sources/shiboken6/tests/libother/otherobjecttype.cpp
index c7778e7c9..eaaa231be 100644
--- a/sources/shiboken6/tests/libother/otherobjecttype.cpp
+++ b/sources/shiboken6/tests/libother/otherobjecttype.cpp
@@ -1,37 +1,11 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "otherobjecttype.h"
-Collector&
-operator<<(Collector& collector, const OtherObjectType& obj)
+Collector &operator<<(Collector &collector, const OtherObjectType &obj)
{
- collector << obj.identifier()*2;
+ collector << obj.identifier() * 2;
return collector;
}
diff --git a/sources/shiboken6/tests/libother/otherobjecttype.h b/sources/shiboken6/tests/libother/otherobjecttype.h
index a9362c370..844795118 100644
--- a/sources/shiboken6/tests/libother/otherobjecttype.h
+++ b/sources/shiboken6/tests/libother/otherobjecttype.h
@@ -1,44 +1,15 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef OTHEROBJECTTYPE_H
#define OTHEROBJECTTYPE_H
-#include <list>
-#include "str.h"
-
#include "libothermacros.h"
#include "objecttype.h"
#include "collector.h"
#include "samplenamespace.h"
#include "removednamespaces.h"
-
class LIBOTHER_API OtherObjectType : public ObjectType
{
public:
@@ -46,8 +17,6 @@ public:
static int enumAsIntForInvisibleNamespace(RemovedNamespace1::RemovedNamespace1_Enum value);
};
-
-LIBOTHER_API Collector& operator<<(Collector&, const OtherObjectType&);
+LIBOTHER_API Collector &operator<<(Collector &, const OtherObjectType &);
#endif // OTHEROBJECTTYPE_H
-
diff --git a/sources/shiboken6/tests/libother/othertypesystypedef.cpp b/sources/shiboken6/tests/libother/othertypesystypedef.cpp
index 7e6e1ff64..1a50c4edf 100644
--- a/sources/shiboken6/tests/libother/othertypesystypedef.cpp
+++ b/sources/shiboken6/tests/libother/othertypesystypedef.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "othertypesystypedef.h"
diff --git a/sources/shiboken6/tests/libother/othertypesystypedef.h b/sources/shiboken6/tests/libother/othertypesystypedef.h
index e3f434613..999b71fd3 100644
--- a/sources/shiboken6/tests/libother/othertypesystypedef.h
+++ b/sources/shiboken6/tests/libother/othertypesystypedef.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef OTHERTYPESYSTYPEDEF_H
#define OTHERTYPESYSTYPEDEF_H
diff --git a/sources/shiboken6/tests/libother/smartptrtester.cpp b/sources/shiboken6/tests/libother/smartptrtester.cpp
index 9636c7521..1c6496b1a 100644
--- a/sources/shiboken6/tests/libother/smartptrtester.cpp
+++ b/sources/shiboken6/tests/libother/smartptrtester.cpp
@@ -1,36 +1,11 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "smartptrtester.h"
SharedPtr<Str> SmartPtrTester::createSharedPtrStr(const char *what)
{
- return SharedPtr<Str>(new Str(what));
+ return {new Str(what)};
}
std::string SmartPtrTester::valueOfSharedPtrStr(const SharedPtr<Str> &str)
diff --git a/sources/shiboken6/tests/libother/smartptrtester.h b/sources/shiboken6/tests/libother/smartptrtester.h
index a560bcf2f..6d7991c06 100644
--- a/sources/shiboken6/tests/libother/smartptrtester.h
+++ b/sources/shiboken6/tests/libother/smartptrtester.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef SMARTPTRTESTER_H
#define SMARTPTRTESTER_H
diff --git a/sources/shiboken6/tests/libsample/CMakeLists.txt b/sources/shiboken6/tests/libsample/CMakeLists.txt
index 6e436ee1f..926972340 100644
--- a/sources/shiboken6/tests/libsample/CMakeLists.txt
+++ b/sources/shiboken6/tests/libsample/CMakeLists.txt
@@ -1,63 +1,93 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(libsample)
set(libsample_SRC
-abstract.cpp
-blackbox.cpp
-bytearray.cpp
-bucket.cpp
-collector.cpp
-complex.cpp
-ctparam.cpp
-onlycopy.cpp
-derived.cpp
-derivedusingct.cpp
-echo.cpp
-exceptiontest.cpp
-functions.cpp
-handle.cpp
-implicitconv.cpp
-intwrapper.cpp
-injectcode.cpp
-listuser.cpp
-modifications.cpp
-mapuser.cpp
-modified_constructor.cpp
-multiple_derived.cpp
-oddbool.cpp
-objectmodel.cpp
-objecttype.cpp
-objecttypeholder.cpp
-objecttypelayout.cpp
-objecttypeoperators.cpp
-objectview.cpp
-overload.cpp
-overloadsort.cpp
-pairuser.cpp
-pen.cpp
-photon.cpp
-point.cpp
-pointf.cpp
-polygon.cpp
-protected.cpp
-reference.cpp
-renaming.cpp
-sample.cpp
-samplenamespace.cpp
-sbkdate.cpp
-simplefile.cpp
-size.cpp
-snakecasetest.cpp
-sometime.cpp
-str.cpp
-strlist.cpp
-templateptr.cpp
-transform.cpp
-typesystypedef.cpp
-virtualmethods.cpp
-expression.cpp
-filter.cpp
+abstract.cpp abstract.h
+blackbox.cpp blackbox.h
+bucket.cpp bucket.h
+bytearray.cpp bytearray.h
+collector.cpp collector.h
+complex.cpp complex.h
+ctorconvrule.h
+ctparam.cpp ctparam.h
+cvlist.h
+derived.cpp derived.h
+derivedusingct.cpp derivedusingct.h
+echo.cpp echo.h
+exceptiontest.cpp exceptiontest.h
+expression.cpp expression.h
+filter.cpp filter.h
+functions.cpp functions.h
+handle.cpp handle.h
+implicitconv.cpp implicitconv.h
+injectcode.cpp injectcode.h
+intwrapper.cpp intwrapper.h
+libsamplemacros.h
+list.h
+listuser.cpp listuser.h
+mapuser.cpp mapuser.h
+modelindex.h
+modifications.cpp modifications.h
+modified_constructor.cpp modified_constructor.h
+multiple_derived.cpp multiple_derived.h
+noimplicitconversion.h
+nondefaultctor.h
+nontypetemplate.h
+null.h
+objectmodel.cpp objectmodel.h
+objecttype.cpp objecttype.h
+objecttypebyvalue.h
+objecttypeholder.cpp objecttypeholder.h
+objecttypelayout.cpp objecttypelayout.h
+objecttypeoperators.cpp objecttypeoperators.h
+objectview.cpp objectview.h
+oddbool.cpp oddbool.h
+onlycopy.cpp onlycopy.h
+overload.cpp overload.h
+overloadsort.cpp overloadsort.h
+pairuser.cpp pairuser.h
+pen.cpp pen.h
+photon.cpp photon.h
+point.cpp point.h
+pointerholder.h
+pointf.cpp pointf.h
+polygon.cpp polygon.h
+privatector.h
+privatedtor.h
+protected.cpp protected.h
+rect.h
+reference.cpp reference.h
+removednamespaces.h
+renaming.cpp renaming.h
+sample.cpp sample.h
+samplenamespace.cpp samplenamespace.h
+sbkdate.cpp sbkdate.h
+stdcomplex.cpp stdcomplex.h
+simplefile.cpp simplefile.h
+size.cpp size.h
+snakecasetest.cpp snakecasetest.h
+sometime.cpp sometime.h
+str.cpp str.h
+strlist.cpp strlist.h
+templateptr.cpp templateptr.h
+transform.cpp transform.h
+typesystypedef.cpp typesystypedef.h
+valueandvirtual.h
+virtualmethods.cpp virtualmethods.h
+voidholder.h
)
+# Includes windows.h which is causing clashes between class Polygon and
+# wingdi.h's Polygon() function.
+
+if(WIN32)
+ set_source_files_properties(
+ bucket.cpp PROPERTIES SKIP_UNITY_BUILD_INCLUSION ON
+ )
+endif()
+
add_library(libsample SHARED ${libsample_SRC})
target_include_directories(libsample PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
target_compile_definitions(libsample PRIVATE LIBSAMPLE_BUILD)
diff --git a/sources/shiboken6/tests/libsample/abstract.cpp b/sources/shiboken6/tests/libsample/abstract.cpp
index 3b2b1ef0a..0d67d8630 100644
--- a/sources/shiboken6/tests/libsample/abstract.cpp
+++ b/sources/shiboken6/tests/libsample/abstract.cpp
@@ -1,89 +1,64 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
-#include <iostream>
#include "abstract.h"
-#include "objecttype.h"
-using namespace std;
+#include <iostream>
const int Abstract::staticPrimitiveField = 0;
-Abstract::Abstract(int id) : m_id(id)
+Abstract::Abstract(int id) noexcept : m_id(id)
{
- toBeRenamedField = readOnlyField = primitiveField = 123;
- valueTypeField = Point(12, 34);
- objectTypeField = nullptr;
bitField = 0;
}
-Abstract::~Abstract()
-{
-}
+Abstract::~Abstract() = default;
-void
-Abstract::unpureVirtual()
+void Abstract::unpureVirtual()
{
}
-void
-Abstract::callUnpureVirtual()
+void Abstract::callUnpureVirtual()
{
this->unpureVirtual();
}
-
-void
-Abstract::callPureVirtual()
+void Abstract::callPureVirtual()
{
this->pureVirtual();
}
-void
-Abstract::show(PrintFormat format)
+void Abstract::show(PrintFormat format) const
{
- cout << '<';
+ std::cout << '<';
switch(format) {
- case Short:
- cout << this;
- break;
- case Verbose:
- cout << "class " << className() << " | cptr: " << this;
- cout << ", id: " << m_id;
- break;
- case OnlyId:
- cout << "id: " << m_id;
- break;
- case ClassNameAndId:
- cout << className() << " - id: " << m_id;
- break;
+ case Short:
+ std::cout << this;
+ break;
+ case Verbose:
+ std::cout << "class " << className() << " | cptr: " << this
+ << ", id: " << m_id;
+ break;
+ case OnlyId:
+ std::cout << "id: " << m_id;
+ break;
+ case ClassNameAndId:
+ std::cout << className() << " - id: " << m_id;
+ break;
}
- cout << '>';
+ std::cout << '>';
+}
+
+void Abstract::virtualWithOutParameter(int &x) const
+{
+ x = 42;
+}
+
+int Abstract::callVirtualWithOutParameter() const
+{
+ int x;
+ virtualWithOutParameter(x);
+ return x;
}
void Abstract::callVirtualGettingEnum(PrintFormat p)
@@ -91,7 +66,6 @@ void Abstract::callVirtualGettingEnum(PrintFormat p)
virtualGettingAEnum(p);
}
-void Abstract::virtualGettingAEnum(Abstract::PrintFormat p)
+void Abstract::virtualGettingAEnum(Abstract::PrintFormat)
{
}
-
diff --git a/sources/shiboken6/tests/libsample/abstract.h b/sources/shiboken6/tests/libsample/abstract.h
index 746107c71..4c1b98d90 100644
--- a/sources/shiboken6/tests/libsample/abstract.h
+++ b/sources/shiboken6/tests/libsample/abstract.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef ABSTRACT_H
#define ABSTRACT_H
@@ -49,6 +24,8 @@ private:
PrivValue2 = PrivValue1 + 2
};
public:
+ LIBMINIMAL_DISABLE_COPY_MOVE(Abstract)
+
enum PrintFormat {
Short,
Verbose,
@@ -63,26 +40,26 @@ public:
};
static const int staticPrimitiveField;
- int primitiveField;
+ int primitiveField = 123;
Complex userPrimitiveField;
- Point valueTypeField;
- ObjectType* objectTypeField;
- int toBeRenamedField;
- int readOnlyField;
+ Point valueTypeField{12, 34};
+ ObjectType *objectTypeField = nullptr;
+ int toBeRenamedField = 123;
+ int readOnlyField = 123;
- Abstract(int id = -1);
+ explicit Abstract(int id = -1) noexcept;
virtual ~Abstract();
- inline int id() { return m_id; }
+ inline int id() const { return m_id; }
// factory method
- inline static Abstract* createObject() { return nullptr; }
+ inline static Abstract *createObject() { return nullptr; }
// method that receives an Object Type
- inline static int getObjectId(Abstract* obj) { return obj->id(); }
+ inline static int getObjectId(Abstract *obj) { return obj->id(); }
virtual void pureVirtual() = 0;
- virtual void* pureVirtualReturningVoidPtr() = 0;
+ virtual void *pureVirtualReturningVoidPtr() = 0;
virtual void unpureVirtual();
virtual PrintFormat returnAnEnum() = 0;
@@ -92,13 +69,16 @@ public:
void callPureVirtual();
void callUnpureVirtual();
- void show(PrintFormat format = Verbose);
+ void show(PrintFormat format = Verbose) const;
virtual Type type() const { return TpAbstract; }
- virtual void hideFunction(HideType* arg) = 0;
+ virtual void hideFunction(HideType *arg) = 0;
+
+ virtual void virtualWithOutParameter(int &x) const;
+ int callVirtualWithOutParameter() const;
protected:
- virtual const char* className() { return "Abstract"; }
+ virtual const char *className() const { return "Abstract"; }
// Protected bit-field structure member.
unsigned int bitField: 1;
@@ -107,4 +87,5 @@ private:
virtual void pureVirtualPrivate() = 0;
int m_id;
};
+
#endif // ABSTRACT_H
diff --git a/sources/shiboken6/tests/libsample/blackbox.cpp b/sources/shiboken6/tests/libsample/blackbox.cpp
index 425476672..2ac435d3d 100644
--- a/sources/shiboken6/tests/libsample/blackbox.cpp
+++ b/sources/shiboken6/tests/libsample/blackbox.cpp
@@ -1,129 +1,81 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "blackbox.h"
-using namespace std;
-
BlackBox::~BlackBox()
{
// Free all maps.
- while (!m_objects.empty()) {
- delete (*m_objects.begin()).second;
- m_objects.erase(m_objects.begin());
- }
- while (!m_points.empty()) {
- delete (*m_points.begin()).second;
- m_points.erase(m_points.begin());
- }
+ for (const auto &p :m_objects)
+ delete p.second;
+ for (const auto &p : m_points)
+ delete p.second;
}
-int
-BlackBox::keepObjectType(ObjectType* object)
+int BlackBox::keepObjectType(ObjectType *object)
{
- m_ticket++;
- std::pair<int, ObjectType*> item(m_ticket, object);
- m_objects.insert(item);
+ ++m_ticket;
+ m_objects.insert({m_ticket, object});
object->setParent(nullptr);
return m_ticket;
}
-ObjectType*
-BlackBox::retrieveObjectType(int ticket)
+ObjectType *BlackBox::retrieveObjectType(int ticket)
{
const auto it = m_objects.find(ticket);
if (it != m_objects.end()) {
- ObjectType* second = it->second;
+ ObjectType *second = it->second;
m_objects.erase(it);
return second;
}
return nullptr;
}
-void
-BlackBox::disposeObjectType(int ticket)
+void BlackBox::disposeObjectType(int ticket)
{
- ObjectType* object = retrieveObjectType(ticket);
- if (object)
- delete object;
+ delete retrieveObjectType(ticket);
}
-int
-BlackBox::keepPoint(Point* point)
+int BlackBox::keepPoint(Point *point)
{
- m_ticket++;
- std::pair<int, Point*> item(m_ticket, point);
- m_points.insert(item);
-
+ ++m_ticket;
+ m_points.insert({m_ticket, point});
return m_ticket;
}
-Point*
-BlackBox::retrievePoint(int ticket)
+Point *BlackBox::retrievePoint(int ticket)
{
const auto it = m_points.find(ticket);
if (it != m_points.end()) {
- Point* second = it->second;
+ Point *second = it->second;
m_points.erase(it);
return second;
}
return nullptr;
}
-void
-BlackBox::disposePoint(int ticket)
+void BlackBox::disposePoint(int ticket)
{
- Point* point = retrievePoint(ticket);
- if (point)
- delete point;
+ delete retrievePoint(ticket);
}
-
-std::list<ObjectType*>
-BlackBox::objects()
+std::list<ObjectType*> BlackBox::objects()
{
std::list<ObjectType*> l;
- for (auto it = m_objects.begin(), end = m_objects.end(); it != end; ++it)
- l.push_back((*it).second);
+ for (const auto &p : m_objects)
+ l.push_back(p.second);
return l;
}
-std::list<Point*>
-BlackBox::points()
+std::list<Point*> BlackBox::points()
{
std::list<Point*> l;
- for (auto it = m_points.begin(), end = m_points.end(); it != end; ++it)
- l.push_back((*it).second);
+ for (const auto &p : m_points)
+ l.push_back(p.second);
return l;
}
-
diff --git a/sources/shiboken6/tests/libsample/blackbox.h b/sources/shiboken6/tests/libsample/blackbox.h
index 629a217cc..9d32670dd 100644
--- a/sources/shiboken6/tests/libsample/blackbox.h
+++ b/sources/shiboken6/tests/libsample/blackbox.h
@@ -1,54 +1,32 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef BLACKBOX_H
#define BLACKBOX_H
#include "libsamplemacros.h"
-#include <map>
#include "objecttype.h"
#include "point.h"
+#include <list>
+#include <map>
+
class LIBSAMPLE_API BlackBox
{
public:
- typedef std::map<int, ObjectType*> ObjectTypeMap;
- typedef std::map<int, Point*> PointMap;
+ using ObjectTypeMap = std::map<int, ObjectType*>;
+ using PointMap = std::map<int, Point*>;
- BlackBox() { m_ticket = -1;}
+ LIBMINIMAL_DEFAULT_COPY_MOVE(BlackBox)
+ BlackBox() noexcept = default;
~BlackBox();
- int keepObjectType(ObjectType* object);
- ObjectType* retrieveObjectType(int ticket);
+ int keepObjectType(ObjectType *object);
+ ObjectType *retrieveObjectType(int ticket);
void disposeObjectType(int ticket);
- int keepPoint(Point* point);
- Point* retrievePoint(int ticket);
+ int keepPoint(Point *point);
+ Point *retrievePoint(int ticket);
void disposePoint(int ticket);
std::list<ObjectType*> objects();
@@ -60,8 +38,7 @@ public:
private:
ObjectTypeMap m_objects;
PointMap m_points;
- int m_ticket;
+ int m_ticket = -1;
};
#endif // BLACKBOX_H
-
diff --git a/sources/shiboken6/tests/libsample/bucket.cpp b/sources/shiboken6/tests/libsample/bucket.cpp
index 91e546d6e..cafd382a9 100644
--- a/sources/shiboken6/tests/libsample/bucket.cpp
+++ b/sources/shiboken6/tests/libsample/bucket.cpp
@@ -1,49 +1,21 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "bucket.h"
+
#include <iostream>
#ifdef _WIN32 // _WIN32 is defined by all Windows 32 and 64 bit compilers, but not by others.
-#include <windows.h>
-#define SLEEP(x) Sleep(x)
+# ifndef WIN32_LEAN_AND_MEAN
+# define WIN32_LEAN_AND_MEAN
+# endif
+# include <windows.h>
+# define SLEEP(x) Sleep(x)
#else
-#include <unistd.h>
-#define SLEEP(x) usleep(x)
+# include <unistd.h>
+# define SLEEP(x) usleep(x)
#endif
-
-using namespace std;
-
-Bucket::Bucket() : m_locked(false)
-{
-}
-
void Bucket::push(int x)
{
m_data.push_back(x);
@@ -53,7 +25,7 @@ int Bucket::pop(void)
{
int x = 0;
- if (m_data.size() > 0) {
+ if (!m_data.empty()) {
x = m_data.front();
m_data.pop_front();
}
@@ -69,7 +41,9 @@ bool Bucket::empty()
void Bucket::lock()
{
m_locked = true;
- while (m_locked) { SLEEP(300); }
+ while (m_locked) {
+ SLEEP(300);
+ }
}
void Bucket::unlock()
@@ -83,4 +57,3 @@ bool Bucket::virtualBlockerMethod()
// The return value was added just for diversity sake.
return true;
}
-
diff --git a/sources/shiboken6/tests/libsample/bucket.h b/sources/shiboken6/tests/libsample/bucket.h
index 09f933863..73e8edd78 100644
--- a/sources/shiboken6/tests/libsample/bucket.h
+++ b/sources/shiboken6/tests/libsample/bucket.h
@@ -1,36 +1,12 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef BUCKET_H
#define BUCKET_H
#include "libsamplemacros.h"
#include "objecttype.h"
+
#include <list>
class ObjectType;
@@ -38,7 +14,7 @@ class ObjectType;
class LIBSAMPLE_API Bucket : public ObjectType
{
public:
- Bucket();
+ Bucket() = default;
void push(int);
int pop();
bool empty();
@@ -52,8 +28,7 @@ public:
private:
std::list<int> m_data;
- volatile bool m_locked;
+ volatile bool m_locked = false;
};
#endif // BUCKET_H
-
diff --git a/sources/shiboken6/tests/libsample/bytearray.cpp b/sources/shiboken6/tests/libsample/bytearray.cpp
index 021d2a079..78d5162b0 100644
--- a/sources/shiboken6/tests/libsample/bytearray.cpp
+++ b/sources/shiboken6/tests/libsample/bytearray.cpp
@@ -1,38 +1,14 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
-#include <cstring>
#include "bytearray.h"
-ByteArray::ByteArray()
+#include <algorithm>
+#include <iterator>
+#include <cstring>
+
+ByteArray::ByteArray() : m_data(1, '\0')
{
- m_data = std::vector<char>(1);
- m_data[0] = '\0';
}
ByteArray::ByteArray(char c)
@@ -42,48 +18,37 @@ ByteArray::ByteArray(char c)
m_data[1] = '\0';
}
-ByteArray::ByteArray(const char* data)
+ByteArray::ByteArray(const char *data)
{
- size_t len = strlen(data);
+ size_t len = std::strlen(data);
m_data = std::vector<char>(len + 1);
memcpy(&m_data[0], data, len);
m_data[len] = '\0';
}
-ByteArray::ByteArray(const char* data, int len)
+ByteArray::ByteArray(const char *data, int len)
{
m_data = std::vector<char>(len + 1);
memcpy(&m_data[0], data, len);
m_data[len] = '\0';
}
-ByteArray::ByteArray(const ByteArray& other)
-{
- m_data = std::vector<char>(other.size() + 1);
- memcpy(&m_data[0], &other.m_data[0], other.size());
- m_data[other.size()] = '\0';
-}
-
-int
-ByteArray::size() const
+int ByteArray::size() const
{
return m_data.size() - 1;
}
-char
-ByteArray::at(int pos) const
+char ByteArray::at(int pos) const
{
return m_data[pos];
}
-const char*
-ByteArray::data() const
+const char *ByteArray::data() const
{
return &(m_data[0]);
}
-ByteArray&
-ByteArray::append(char c)
+ByteArray &ByteArray::append(char c)
{
m_data.pop_back();
m_data.push_back(c);
@@ -91,37 +56,30 @@ ByteArray::append(char c)
return *this;
}
-ByteArray&
-ByteArray::append(const char* data)
+ByteArray &ByteArray::append(const char *data)
{
m_data.pop_back();
- for (int i = 0; i < (int)strlen(data); ++i)
- m_data.push_back(data[i]);
+ std::copy(data, data + strlen(data), std::back_inserter(m_data));
m_data.push_back('\0');
return *this;
}
-ByteArray&
-ByteArray::append(const char* data, int len)
+ByteArray &ByteArray::append(const char *data, int len)
{
m_data.pop_back();
- for (int i = 0; i < len; ++i)
- m_data.push_back(data[i]);
+ std::copy(data, data + len, std::back_inserter(m_data));
m_data.push_back('\0');
return *this;
}
-ByteArray&
-ByteArray::append(const ByteArray& other)
+ByteArray &ByteArray::append(const ByteArray &other)
{
m_data.pop_back();
- for (int i = 0; i < (int)other.m_data.size(); ++i)
- m_data.push_back(other.m_data[i]);
- m_data.push_back('\0');
+ std::copy(other.m_data.begin(), other.m_data.end(), std::back_inserter(m_data));
return *this;
}
-static bool compare(const std::vector<char>& mine, const char* other)
+static bool compare(const std::vector<char> &mine, const char *other)
{
for (int i = 0; i < (int)mine.size() - 1; ++i) {
if (mine[i] != other[i])
@@ -130,85 +88,79 @@ static bool compare(const std::vector<char>& mine, const char* other)
return true;
}
-bool
-ByteArray::operator==(const ByteArray& other) const
+bool ByteArray::operator==(const ByteArray &other) const
{
- return compare(m_data, &other.m_data[0]);
+ return m_data == other.m_data;
}
-bool
-operator==(const ByteArray& ba1, const char* ba2)
+bool operator==(const ByteArray &ba1, const char *ba2)
{
return compare(ba1.m_data, ba2);
}
-bool
-operator==(const char* ba1, const ByteArray& ba2)
+
+bool operator==(const char *ba1, const ByteArray &ba2)
{
return compare(ba2.m_data, ba1);
}
-bool
-ByteArray::operator!=(const ByteArray& other) const
+bool ByteArray::operator!=(const ByteArray &other) const
{
- return !(m_data == other.m_data);
+ return m_data != other.m_data;
}
-bool
-operator!=(const ByteArray& ba1, const char* ba2)
+
+bool operator!=(const ByteArray &ba1, const char *ba2)
{
return !(ba1 == ba2);
}
-bool
-operator!=(const char* ba1, const ByteArray& ba2)
+
+bool operator!=(const char *ba1, const ByteArray &ba2)
{
return !(ba1 == ba2);
}
-ByteArray&
-ByteArray::operator+=(char c)
+ByteArray &ByteArray::operator+=(char c)
{
return append(c);
}
-ByteArray&
-ByteArray::operator+=(const char* data)
+
+ByteArray &ByteArray::operator+=(const char *data)
{
return append(data);
}
-ByteArray&
-ByteArray::operator+=(const ByteArray& other)
+
+ByteArray &ByteArray::operator+=(const ByteArray &other)
{
return append(other);
}
-ByteArray
-operator+(const ByteArray& ba1, const ByteArray& ba2)
+ByteArray operator+(const ByteArray &ba1, const ByteArray &ba2)
{
return ByteArray(ba1) += ba2;
}
-ByteArray
-operator+(const ByteArray& ba1, const char* ba2)
+
+ByteArray operator+(const ByteArray &ba1, const char *ba2)
{
return ByteArray(ba1) += ByteArray(ba2);
}
-ByteArray
-operator+(const char* ba1, const ByteArray& ba2)
+
+ByteArray operator+(const char *ba1, const ByteArray &ba2)
{
return ByteArray(ba1) += ba2;
}
-ByteArray
-operator+(const ByteArray& ba1, char ba2)
+
+ByteArray operator+(const ByteArray &ba1, char ba2)
{
return ByteArray(ba1) += ByteArray(ba2);
}
-ByteArray
-operator+(char ba1, const ByteArray& ba2)
+
+ByteArray operator+(char ba1, const ByteArray &ba2)
{
return ByteArray(ba1) += ba2;
}
-unsigned int
-ByteArray::hash(const ByteArray& byteArray)
+unsigned int ByteArray::hash(const ByteArray &byteArray)
{
unsigned int result = 0;
- for (int i = 0; i < (int)byteArray.m_data.size(); ++i)
- result = 5 * result + byteArray.m_data[i];
+ for (char c : byteArray.m_data)
+ result = 5U * result + unsigned(c);
return result;
}
diff --git a/sources/shiboken6/tests/libsample/bytearray.h b/sources/shiboken6/tests/libsample/bytearray.h
index 5dfb63fd5..35ff22367 100644
--- a/sources/shiboken6/tests/libsample/bytearray.h
+++ b/sources/shiboken6/tests/libsample/bytearray.h
@@ -1,89 +1,64 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef BYTEARRAY_H
#define BYTEARRAY_H
#include "str.h"
#include "libsamplemacros.h"
+
#include <vector>
class LIBSAMPLE_API ByteArray
{
public:
ByteArray();
- ByteArray(char data);
- ByteArray(const char* data);
- ByteArray(const char* data, int len);
- ByteArray(const ByteArray& other);
+ explicit ByteArray(char data);
+ explicit ByteArray(const char *data);
+ explicit ByteArray(const char *data, int len);
int size() const;
char at(int i) const;
char operator[](int i) const;
- const char* data() const;
+ const char *data() const;
- ByteArray& append(char c);
- ByteArray& append(const char* data);
- ByteArray& append(const char* data, int len);
- ByteArray& append(const ByteArray& other);
+ ByteArray &append(char c);
+ ByteArray &append(const char *data);
+ ByteArray &append(const char *data, int len);
+ ByteArray &append(const ByteArray &other);
- bool operator==(const ByteArray& other) const;
- bool operator!=(const ByteArray& other) const;
+ bool operator==(const ByteArray &other) const;
+ bool operator!=(const ByteArray &other) const;
- ByteArray& operator+=(char c);
- ByteArray& operator+=(const char* data);
- ByteArray& operator+=(const ByteArray& other);
+ ByteArray &operator+=(char c);
+ ByteArray &operator+=(const char *data);
+ ByteArray &operator+=(const ByteArray &other);
- static unsigned int hash(const ByteArray& byteArray);
+ static unsigned int hash(const ByteArray &byteArray);
private:
std::vector<char> m_data;
- friend LIBSAMPLE_API bool operator==(const ByteArray& ba1, const char* ba2);
- friend LIBSAMPLE_API bool operator==(const char* ba1, const ByteArray& ba2);
- friend LIBSAMPLE_API bool operator!=(const ByteArray& ba1, const char* ba2);
- friend LIBSAMPLE_API bool operator!=(const char* ba1, const ByteArray& ba2);
+ friend LIBSAMPLE_API bool operator==(const ByteArray &ba1, const char *ba2);
+ friend LIBSAMPLE_API bool operator==(const char *ba1, const ByteArray &ba2);
+ friend LIBSAMPLE_API bool operator!=(const ByteArray &ba1, const char *ba2);
+ friend LIBSAMPLE_API bool operator!=(const char *ba1, const ByteArray &ba2);
- friend LIBSAMPLE_API ByteArray operator+(const ByteArray& ba1, const ByteArray& ba2);
- friend LIBSAMPLE_API ByteArray operator+(const ByteArray& ba1, const char* ba2);
- friend LIBSAMPLE_API ByteArray operator+(const char* ba1, const ByteArray& ba2);
- friend LIBSAMPLE_API ByteArray operator+(const ByteArray& ba1, char ba2);
- friend LIBSAMPLE_API ByteArray operator+(char ba1, const ByteArray& ba2);
+ friend LIBSAMPLE_API ByteArray operator+(const ByteArray &ba1, const ByteArray &ba2);
+ friend LIBSAMPLE_API ByteArray operator+(const ByteArray &ba1, const char *ba2);
+ friend LIBSAMPLE_API ByteArray operator+(const char *ba1, const ByteArray &ba2);
+ friend LIBSAMPLE_API ByteArray operator+(const ByteArray &ba1, char ba2);
+ friend LIBSAMPLE_API ByteArray operator+(char ba1, const ByteArray &ba2);
};
-LIBSAMPLE_API bool operator==(const ByteArray& ba1, const char* ba2);
-LIBSAMPLE_API bool operator==(const char* ba1, const ByteArray& ba2);
-LIBSAMPLE_API bool operator!=(const ByteArray& ba1, const char* ba2);
-LIBSAMPLE_API bool operator!=(const char* ba1, const ByteArray& ba2);
+LIBSAMPLE_API bool operator==(const ByteArray &ba1, const char *ba2);
+LIBSAMPLE_API bool operator==(const char *ba1, const ByteArray &ba2);
+LIBSAMPLE_API bool operator!=(const ByteArray &ba1, const char *ba2);
+LIBSAMPLE_API bool operator!=(const char *ba1, const ByteArray &ba2);
-LIBSAMPLE_API ByteArray operator+(const ByteArray& ba1, const ByteArray& ba2);
-LIBSAMPLE_API ByteArray operator+(const ByteArray& ba1, const char* ba2);
-LIBSAMPLE_API ByteArray operator+(const char* ba1, const ByteArray& ba2);
-LIBSAMPLE_API ByteArray operator+(const ByteArray& ba1, char ba2);
-LIBSAMPLE_API ByteArray operator+(char ba1, const ByteArray& ba2);
+LIBSAMPLE_API ByteArray operator+(const ByteArray &ba1, const ByteArray &ba2);
+LIBSAMPLE_API ByteArray operator+(const ByteArray &ba1, const char *ba2);
+LIBSAMPLE_API ByteArray operator+(const char *ba1, const ByteArray &ba2);
+LIBSAMPLE_API ByteArray operator+(const ByteArray &ba1, char ba2);
+LIBSAMPLE_API ByteArray operator+(char ba1, const ByteArray &ba2);
#endif // BYTEARRAY_H
diff --git a/sources/shiboken6/tests/libsample/collector.cpp b/sources/shiboken6/tests/libsample/collector.cpp
index aca24e355..579239bcb 100644
--- a/sources/shiboken6/tests/libsample/collector.cpp
+++ b/sources/shiboken6/tests/libsample/collector.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "collector.h"
@@ -33,13 +8,13 @@ void Collector::clear()
m_items.clear();
}
-Collector& Collector::operator<<(ObjectType::Identifier item)
+Collector &Collector::operator<<(ObjectType::Identifier item)
{
m_items.push_back(item);
return *this;
}
-Collector& Collector::operator<<(const ObjectType *obj)
+Collector &Collector::operator<<(const ObjectType *obj)
{
m_items.push_back(obj->identifier());
return *this;
@@ -50,9 +25,9 @@ std::list<ObjectType::Identifier> Collector::items()
return m_items;
}
-int Collector::size()
+int Collector::size() const
{
- return (int) m_items.size();
+ return int(m_items.size());
}
Collector &operator<<(Collector &s, const IntWrapper &w)
diff --git a/sources/shiboken6/tests/libsample/collector.h b/sources/shiboken6/tests/libsample/collector.h
index bc10a7481..26766847a 100644
--- a/sources/shiboken6/tests/libsample/collector.h
+++ b/sources/shiboken6/tests/libsample/collector.h
@@ -1,64 +1,37 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef COLLECTOR_H
#define COLLECTOR_H
-#include <list>
#include "libsamplemacros.h"
-
#include "intwrapper.h"
#include "objecttype.h"
+#include <list>
+
class LIBSAMPLE_API Collector
{
public:
- Collector() {}
- virtual ~Collector() {}
+ Collector() noexcept = default;
+ virtual ~Collector() = default;
+ LIBMINIMAL_DISABLE_COPY_MOVE(Collector)
void clear();
- Collector& operator<<(ObjectType::Identifier item);
+ Collector &operator<<(ObjectType::Identifier item);
- Collector& operator<<(const ObjectType *);
+ Collector &operator<<(const ObjectType *);
std::list<ObjectType::Identifier> items();
- int size();
+ int size() const;
private:
std::list<ObjectType::Identifier> m_items;
-
- Collector(const Collector&);
- Collector& operator=(const Collector&);
};
/* Helper for testing external operators */
-LIBSAMPLE_API Collector &operator<<(Collector&, const IntWrapper&);
+LIBSAMPLE_API Collector &operator<<(Collector &, const IntWrapper &);
#endif // COLLECTOR_H
diff --git a/sources/shiboken6/tests/libsample/complex.cpp b/sources/shiboken6/tests/libsample/complex.cpp
index a9b7f03c3..e3bec9aae 100644
--- a/sources/shiboken6/tests/libsample/complex.cpp
+++ b/sources/shiboken6/tests/libsample/complex.cpp
@@ -1,43 +1,16 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
-#include <iostream>
#include "complex.h"
-using namespace std;
+#include <iostream>
-Complex::Complex(double real, double imag)
+Complex::Complex(double real, double imag) noexcept
: m_real(real), m_imag(imag)
{
}
-Complex
-Complex::operator+(Complex& other)
+Complex Complex::operator+(const Complex &other)
{
Complex result;
result.setReal(m_real + other.real());
@@ -45,10 +18,7 @@ Complex::operator+(Complex& other)
return result;
}
-void
-Complex::show()
+void Complex::show() const
{
- cout << "(real: " << m_real << ", imag: " << m_imag << ")";
+ std::cout << "(real: " << m_real << ", imag: " << m_imag << ")";
}
-
-
diff --git a/sources/shiboken6/tests/libsample/complex.h b/sources/shiboken6/tests/libsample/complex.h
index d0f6c1408..168fe5c44 100644
--- a/sources/shiboken6/tests/libsample/complex.h
+++ b/sources/shiboken6/tests/libsample/complex.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef COMPLEX_H
#define COMPLEX_H
@@ -34,17 +9,19 @@
class LIBSAMPLE_API Complex
{
public:
- Complex(double real = 0.0, double imag = 0.0);
- ~Complex() {}
+ LIBMINIMAL_DEFAULT_COPY_MOVE(Complex)
+
+ explicit Complex(double real = 0.0, double imag = 0.0) noexcept;
+ ~Complex() = default;
inline double real() const { return m_real; }
inline void setReal(double real) { m_real = real; }
inline double imag() const { return m_imag; }
inline void setImaginary(double imag) { m_imag = imag; }
- Complex operator+(Complex& other);
+ Complex operator+(const Complex &other);
- void show();
+ void show() const;
private:
double m_real;
diff --git a/sources/shiboken6/tests/libsample/ctorconvrule.h b/sources/shiboken6/tests/libsample/ctorconvrule.h
index ceab8d6dc..a5411b749 100644
--- a/sources/shiboken6/tests/libsample/ctorconvrule.h
+++ b/sources/shiboken6/tests/libsample/ctorconvrule.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef CTORCONVRULE_H
#define CTORCONVRULE_H
@@ -34,8 +9,10 @@
class CtorConvRule
{
public:
- explicit CtorConvRule(long value) : m_value(value) {}
- virtual ~CtorConvRule() {}
+ LIBMINIMAL_DEFAULT_COPY_MOVE(CtorConvRule)
+
+ explicit CtorConvRule(long value) noexcept : m_value(value) {}
+ virtual ~CtorConvRule() = default;
virtual void dummyVirtualMethod() {}
long value() { return m_value; }
private:
diff --git a/sources/shiboken6/tests/libsample/ctparam.cpp b/sources/shiboken6/tests/libsample/ctparam.cpp
index 89d4dd744..9bbbcfc3f 100644
--- a/sources/shiboken6/tests/libsample/ctparam.cpp
+++ b/sources/shiboken6/tests/libsample/ctparam.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "ctparam.h"
diff --git a/sources/shiboken6/tests/libsample/ctparam.h b/sources/shiboken6/tests/libsample/ctparam.h
index 8acf14aaf..fa241b587 100644
--- a/sources/shiboken6/tests/libsample/ctparam.h
+++ b/sources/shiboken6/tests/libsample/ctparam.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef CTPARAM_H
#define CTPARAM_H
diff --git a/sources/shiboken6/tests/libsample/cvlist.h b/sources/shiboken6/tests/libsample/cvlist.h
index 50ad8bfe8..e09c7d943 100644
--- a/sources/shiboken6/tests/libsample/cvlist.h
+++ b/sources/shiboken6/tests/libsample/cvlist.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef CONSTVALUELIST_H
#define CONSTVALUELIST_H
@@ -37,7 +12,7 @@ class CVValueType
CVValueType();
};
-typedef std::list<const CVValueType*> const_ptr_value_list;
+using const_ptr_value_list = std::list<const CVValueType*>;
// This tests binding generation for a container of a const value type. The
// class doesn't need to do anything; this is just to verify that the generated
@@ -46,8 +21,8 @@ typedef std::list<const CVValueType*> const_ptr_value_list;
class CVListUser
{
public:
- static const_ptr_value_list produce() { return const_ptr_value_list(); }
- static void consume(const const_ptr_value_list& l) { (void)l; }
+ static const_ptr_value_list produce() { return {}; }
+ static void consume(const const_ptr_value_list &l) { (void)l; }
};
#endif // LIST_H
diff --git a/sources/shiboken6/tests/libsample/derived.cpp b/sources/shiboken6/tests/libsample/derived.cpp
index 0dc026876..d20880431 100644
--- a/sources/shiboken6/tests/libsample/derived.cpp
+++ b/sources/shiboken6/tests/libsample/derived.cpp
@@ -1,69 +1,36 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
-#include <iostream>
#include "derived.h"
-using namespace std;
+#include <iostream>
-Derived::Derived(int id) : Abstract(id)
+Derived::Derived(int id) noexcept : Abstract(id)
{
}
-Derived::~Derived()
-{
-}
+Derived::~Derived() = default;
-Abstract*
-Derived::createObject()
+Abstract *Derived::createObject()
{
static int id = 100;
return new Derived(id++);
}
-void
-Derived::pureVirtual()
+void Derived::pureVirtual()
{
}
-void*
-Derived::pureVirtualReturningVoidPtr()
+void *Derived::pureVirtualReturningVoidPtr()
{
return nullptr;
}
-void
-Derived::unpureVirtual()
+void Derived::unpureVirtual()
{
}
-bool
-Derived::singleArgument(bool b)
+bool Derived::singleArgument(bool b)
{
return !b;
}
@@ -74,40 +41,36 @@ Derived::defaultValue(int n)
return ((double) n) + 0.1;
}
-OverloadedFuncEnum
-Derived::overloaded(int i, int d)
+OverloadedFuncEnum Derived::overloaded(int, int)
{
return OverloadedFunc_ii;
}
-OverloadedFuncEnum
-Derived::overloaded(double n)
+OverloadedFuncEnum Derived::overloaded(double)
{
return OverloadedFunc_d;
}
-Derived::OtherOverloadedFuncEnum
-Derived::otherOverloaded(int a, int b, bool c, double d)
+Derived::OtherOverloadedFuncEnum Derived::otherOverloaded(int, int, bool, double)
{
return OtherOverloadedFunc_iibd;
}
-Derived::OtherOverloadedFuncEnum
-Derived::otherOverloaded(int a, double b)
+Derived::OtherOverloadedFuncEnum Derived::otherOverloaded(int, double)
{
return OtherOverloadedFunc_id;
}
struct SecretClass : public Abstract {
- virtual void pureVirtual() {}
- virtual void *pureVirtualReturningVoidPtr() { return nullptr; }
- virtual PrintFormat returnAnEnum() { return Short; }
- void hideFunction(HideType*){};
+ void pureVirtual() override {}
+ void *pureVirtualReturningVoidPtr() override { return nullptr; }
+ PrintFormat returnAnEnum() override { return Short; }
+ void hideFunction(HideType*) override {};
private:
- virtual void pureVirtualPrivate() {}
+ void pureVirtualPrivate() override {}
};
-Abstract* Derived::triggerImpossibleTypeDiscovery()
+Abstract *Derived::triggerImpossibleTypeDiscovery()
{
return new SecretClass;
}
@@ -115,7 +78,7 @@ Abstract* Derived::triggerImpossibleTypeDiscovery()
struct AnotherSecretClass : public Derived {
};
-Abstract* Derived::triggerAnotherImpossibleTypeDiscovery()
+Abstract *Derived::triggerAnotherImpossibleTypeDiscovery()
{
return new AnotherSecretClass;
}
diff --git a/sources/shiboken6/tests/libsample/derived.h b/sources/shiboken6/tests/libsample/derived.h
index 783a6dc50..b7736c37a 100644
--- a/sources/shiboken6/tests/libsample/derived.h
+++ b/sources/shiboken6/tests/libsample/derived.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef DERIVED_H
#define DERIVED_H
@@ -40,6 +15,8 @@ enum OverloadedFuncEnum {
class LIBSAMPLE_API Derived : public Abstract
{
public:
+ LIBMINIMAL_DISABLE_COPY_MOVE(Derived)
+
enum OtherOverloadedFuncEnum {
OtherOverloadedFunc_iibd,
OtherOverloadedFunc_id
@@ -48,21 +25,21 @@ public:
class SomeInnerClass {
public:
void uselessMethod() {}
- SomeInnerClass operator+(const SomeInnerClass& other) { return other; }
- bool operator==(const SomeInnerClass& other) { return true; }
+ SomeInnerClass operator+(const SomeInnerClass &other) { return other; }
+ bool operator==(const SomeInnerClass &) { return true; }
};
- Derived(int id = -1);
+ explicit Derived(int id = -1) noexcept;
~Derived() override;
void pureVirtual() override;
- void* pureVirtualReturningVoidPtr() override;
+ void *pureVirtualReturningVoidPtr() override;
void unpureVirtual() override;
PrintFormat returnAnEnum() override { return Short; }
Type type() const override { return TpDerived; }
// factory method
- static Abstract* createObject();
+ static Abstract *createObject();
// single argument
bool singleArgument(bool b);
@@ -78,15 +55,15 @@ public:
OtherOverloadedFuncEnum otherOverloaded(int a, int b, bool c, double d);
OtherOverloadedFuncEnum otherOverloaded(int a, double b);
- inline SomeInnerClass returnMyParameter(const SomeInnerClass& s) { return s; }
+ inline SomeInnerClass returnMyParameter(const SomeInnerClass &s) { return s; }
- static Abstract* triggerImpossibleTypeDiscovery();
- static Abstract* triggerAnotherImpossibleTypeDiscovery();
+ static Abstract *triggerImpossibleTypeDiscovery();
+ static Abstract *triggerAnotherImpossibleTypeDiscovery();
void hideFunction(HideType*) override {}
protected:
- const char* getClassName() { return className(); }
- virtual const char* className() override { return "Derived"; }
+ const char *getClassName() { return className(); }
+ virtual const char *className() const override { return "Derived"; }
private:
void pureVirtualPrivate() override;
diff --git a/sources/shiboken6/tests/libsample/derivedusingct.cpp b/sources/shiboken6/tests/libsample/derivedusingct.cpp
index 3ee5f2cb4..720d0ed96 100644
--- a/sources/shiboken6/tests/libsample/derivedusingct.cpp
+++ b/sources/shiboken6/tests/libsample/derivedusingct.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "derivedusingct.h"
diff --git a/sources/shiboken6/tests/libsample/derivedusingct.h b/sources/shiboken6/tests/libsample/derivedusingct.h
index ae0682cfd..6bc026d08 100644
--- a/sources/shiboken6/tests/libsample/derivedusingct.h
+++ b/sources/shiboken6/tests/libsample/derivedusingct.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef DERIVEDUSINGCT_H
#define DERIVEDUSINGCT_H
diff --git a/sources/shiboken6/tests/libsample/echo.cpp b/sources/shiboken6/tests/libsample/echo.cpp
index 55e2a461e..7fa8433d3 100644
--- a/sources/shiboken6/tests/libsample/echo.cpp
+++ b/sources/shiboken6/tests/libsample/echo.cpp
@@ -1,29 +1,4 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "echo.h"
diff --git a/sources/shiboken6/tests/libsample/echo.h b/sources/shiboken6/tests/libsample/echo.h
index 3f645694a..01b11a4a6 100644
--- a/sources/shiboken6/tests/libsample/echo.h
+++ b/sources/shiboken6/tests/libsample/echo.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef ECHO_H
#define ECHO_H
@@ -37,19 +12,49 @@ class ObjectType;
class Echo
{
public:
- Echo(){}
- ~Echo(){}
+ LIBMINIMAL_DEFAULT_COPY_MOVE(Echo)
- void doNothingWithConstBool(const bool hi) {}
- void methodWithNamedArg(const Str& string = Str("")) {}
+ Echo() noexcept = default;
+ ~Echo() = default;
- Str operator()(const Str& s, const int i) { return s + i; }
+ void doNothingWithConstBool(const bool hi);
+ void methodWithNamedArg(const Str &string = Str{});
+
+ Str operator()(const Str &s, const int i) { return s + i; }
// These method are here just for compilation test purposes
- Echo& operator<<(unsigned int item) { return *this; }
- Echo& operator<<(signed int item) { return *this; }
- Echo& operator<<(const ObjectType* item) { return *this; }
- Echo& operator<<(Str str) { return *this; }
+ Echo &operator<<(unsigned int item);
+ Echo &operator<<(signed int item);
+ Echo &operator<<(const ObjectType *item);
+ Echo &operator<<(Str str);
};
-#endif
+inline void Echo::doNothingWithConstBool(const bool)
+{
+}
+
+inline void Echo::methodWithNamedArg(const Str &)
+{
+}
+
+inline Echo &Echo::operator<<(unsigned int)
+{
+ return *this;
+}
+
+inline Echo &Echo::operator<<(signed int)
+{
+ return *this;
+}
+
+inline Echo &Echo::operator<<(const ObjectType *)
+{
+ return *this;
+}
+
+inline Echo &Echo::operator<<(Str)
+{
+ return *this;
+}
+
+#endif // ECHO_H
diff --git a/sources/shiboken6/tests/libsample/exceptiontest.cpp b/sources/shiboken6/tests/libsample/exceptiontest.cpp
index 1302a8e43..56144e086 100644
--- a/sources/shiboken6/tests/libsample/exceptiontest.cpp
+++ b/sources/shiboken6/tests/libsample/exceptiontest.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "exceptiontest.h"
@@ -62,3 +37,10 @@ void ExceptionTest::voidThrowInt(bool doThrow)
if (doThrow)
throw 42;
}
+
+ExceptionTest *ExceptionTest::create(bool doThrow)
+{
+ if (doThrow)
+ throw TestException();
+ return new ExceptionTest;
+}
diff --git a/sources/shiboken6/tests/libsample/exceptiontest.h b/sources/shiboken6/tests/libsample/exceptiontest.h
index 8ab3e2b67..b5812a090 100644
--- a/sources/shiboken6/tests/libsample/exceptiontest.h
+++ b/sources/shiboken6/tests/libsample/exceptiontest.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef EXCEPTIONTEST_H
#define EXCEPTIONTEST_H
@@ -43,6 +18,8 @@ class LIBSAMPLE_API ExceptionTest
int intThrowInt(bool doThrow);
void voidThrowInt(bool doThrow);
+
+ static ExceptionTest *create(bool doThrow);
};
#endif // EXCEPTIONTEST_H
diff --git a/sources/shiboken6/tests/libsample/expression.cpp b/sources/shiboken6/tests/libsample/expression.cpp
index 0b0bcdefe..6f3c5fdc5 100644
--- a/sources/shiboken6/tests/libsample/expression.cpp
+++ b/sources/shiboken6/tests/libsample/expression.cpp
@@ -1,139 +1,79 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "expression.h"
-#include <sstream>
-
-Expression::Expression() : m_value(0), m_operation(None), m_operand1(nullptr), m_operand2(nullptr)
-{
-}
-
-Expression::Expression(int number) : m_value(number), m_operation(None), m_operand1(nullptr), m_operand2(nullptr)
-{
-}
-Expression::Expression(const Expression& other)
-{
- m_operand1 = other.m_operand1 ? new Expression(*other.m_operand1) : nullptr;
- m_operand2 = other.m_operand2 ? new Expression(*other.m_operand2) : nullptr;
- m_value = other.m_value;
- m_operation = other.m_operation;
-}
+#include <sstream>
-Expression& Expression::operator=(const Expression& other)
-{
- if (&other == this)
- return *this;
- delete m_operand1;
- delete m_operand2;
- m_operand1 = other.m_operand1 ? new Expression(*other.m_operand1) : nullptr;
- m_operand2 = other.m_operand2 ? new Expression(*other.m_operand2) : nullptr;
- m_operation = other.m_operation;
- m_value = other.m_value;
- return *this;
-}
+Expression::Expression() noexcept = default;
-Expression::~Expression()
+Expression::Expression(int number) noexcept : m_value(number)
{
- delete m_operand1;
- delete m_operand2;
}
-Expression Expression::operator+(const Expression& other)
+Expression Expression::operator+(const Expression &other)
{
Expression expr;
expr.m_operation = Add;
- expr.m_operand1 = new Expression(*this);
- expr.m_operand2 = new Expression(other);
+ expr.m_operand1 = std::make_shared<Expression>(*this);
+ expr.m_operand2 = std::make_shared<Expression>(other);
return expr;
}
-Expression Expression::operator-(const Expression& other)
+Expression Expression::operator-(const Expression &other)
{
Expression expr;
expr.m_operation = Add;
- expr.m_operand1 = new Expression(*this);
- expr.m_operand2 = new Expression(other);
+ expr.m_operand1 = std::make_shared<Expression>(*this);
+ expr.m_operand2 = std::make_shared<Expression>(other);
return expr;
}
-Expression Expression::operator<(const Expression& other)
+Expression Expression::operator<(const Expression &other)
{
Expression expr;
expr.m_operation = LessThan;
- expr.m_operand1 = new Expression(*this);
- expr.m_operand2 = new Expression(other);
+ expr.m_operand1 = std::make_shared<Expression>(*this);
+ expr.m_operand2 = std::make_shared<Expression>(other);
return expr;
}
-Expression Expression::operator>(const Expression& other)
+Expression Expression::operator>(const Expression &other)
{
Expression expr;
expr.m_operation = GreaterThan;
- expr.m_operand1 = new Expression(*this);
- expr.m_operand2 = new Expression(other);
+ expr.m_operand1 = std::make_shared<Expression>(*this);
+ expr.m_operand2 = std::make_shared<Expression>(other);
return expr;
}
std::string Expression::toString() const
{
+ std::ostringstream s;
if (m_operation == None) {
- std::ostringstream s;
s << m_value;
return s.str();
}
- std::string result;
- result += '(';
- result += m_operand1->toString();
- char op;
+ s << '(' << m_operand1->toString();
switch (m_operation) {
case Add:
- op = '+';
+ s << '+';
break;
case Sub:
- op = '-';
+ s << '-';
break;
case LessThan:
- op = '<';
+ s << '<';
break;
case GreaterThan:
- op = '<';
+ s << '<';
break;
- case None: // just to avoid the compiler warning
default:
- op = '?';
+ s << '?';
break;
}
- result += op;
- result += m_operand2->toString();
- result += ')';
- return result;
+ s << m_operand2->toString() << ')';
+ return s.str();
}
-
diff --git a/sources/shiboken6/tests/libsample/expression.h b/sources/shiboken6/tests/libsample/expression.h
index 3add5572e..e7c5b7306 100644
--- a/sources/shiboken6/tests/libsample/expression.h
+++ b/sources/shiboken6/tests/libsample/expression.h
@@ -1,64 +1,40 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef EXPRESSION_H
#define EXPRESSION_H
#include "libsamplemacros.h"
+
+#include <memory>
#include <string>
class LIBSAMPLE_API Expression
{
public:
+ LIBMINIMAL_DEFAULT_COPY_MOVE(Expression)
+
enum Operation {
None, Add, Sub, LessThan, GreaterThan
};
- Expression(int number);
- Expression(const Expression& other);
- Expression& operator=(const Expression& other);
-
- ~Expression();
+ explicit Expression(int number) noexcept;
+ ~Expression() = default;
- Expression operator>(const Expression& other);
- Expression operator<(const Expression& other);
- Expression operator+(const Expression& other);
- Expression operator-(const Expression& other);
+ Expression operator>(const Expression &other);
+ Expression operator<(const Expression &other);
+ Expression operator+(const Expression &other);
+ Expression operator-(const Expression &other);
std::string toString() const;
private:
- int m_value;
- Operation m_operation;
- Expression* m_operand1;
- Expression* m_operand2;
+ int m_value = 0;
+ Operation m_operation = None;
+ std::shared_ptr<Expression> m_operand1;
+ std::shared_ptr<Expression> m_operand2;
- Expression();
+ Expression() noexcept;
};
#endif // EXPRESSION_H
diff --git a/sources/shiboken6/tests/libsample/filter.cpp b/sources/shiboken6/tests/libsample/filter.cpp
index f862babd2..950847985 100644
--- a/sources/shiboken6/tests/libsample/filter.cpp
+++ b/sources/shiboken6/tests/libsample/filter.cpp
@@ -1,69 +1,34 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
-#include <string>
#include "filter.h"
+
Data::Data(Field field, std::string value)
: m_field(field), m_value(value)
{
}
-Union::Union(const Data& filter)
+Union::Union(const Data &filter)
{
m_filters.push_back(filter);
}
-Union::Union(const Intersection& filter)
+Union::Union(const Intersection &filter)
{
m_filters.push_back(filter);
}
-Union::Union(const Union& filter)
-{
- m_filters = filter.filters();
-}
-
-Intersection::Intersection(const Data& filter)
+Intersection::Intersection(const Data &filter)
{
m_filters.push_back(filter);
}
-Intersection::Intersection(const Union& filter)
+Intersection::Intersection(const Union &filter)
{
m_filters.push_back(filter);
}
-Intersection::Intersection(const Intersection& filter)
-{
- m_filters = filter.filters();
-}
-
-Intersection operator&(const Intersection& a, const Intersection& b)
+Intersection operator&(const Intersection &a, const Intersection &b)
{
Intersection filter;
filter.addFilter(a);
diff --git a/sources/shiboken6/tests/libsample/filter.h b/sources/shiboken6/tests/libsample/filter.h
index e318cba20..d82d38eb8 100644
--- a/sources/shiboken6/tests/libsample/filter.h
+++ b/sources/shiboken6/tests/libsample/filter.h
@@ -1,39 +1,14 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef FILTER_H
#define FILTER_H
+#include "libsamplemacros.h"
+
#include <string>
#include <list>
-#include "libsamplemacros.h"
-
class Intersection;
class LIBSAMPLE_API Filter
@@ -42,7 +17,6 @@ class LIBSAMPLE_API Filter
class LIBSAMPLE_API Data : public Filter
{
-
public:
enum Field {
Name,
@@ -50,7 +24,7 @@ public:
Year
};
- Data(Field field, std::string value);
+ explicit Data(Field field, std::string value);
Field field() const { return m_field; }
std::string value() const { return m_value; }
@@ -64,13 +38,12 @@ class LIBSAMPLE_API Union : public Filter
{
public:
- Union(const Data&);
- Union(const Intersection&);
- Union() {};
- Union(const Union&);
+ Union(const Data &);
+ Union(const Intersection &);
+ Union() = default;
std::list<Filter> filters() const { return m_filters; }
- void addFilter(const Filter& data) { m_filters.push_back(data); }
+ void addFilter(const Filter &data) { m_filters.push_back(data); }
private:
std::list<Filter> m_filters;
@@ -79,20 +52,18 @@ private:
class LIBSAMPLE_API Intersection : public Filter
{
public:
-
- Intersection(const Data&);
- Intersection(const Union&);
- Intersection() {};
- Intersection(const Intersection&);
+ Intersection(const Data &);
+ Intersection(const Union &);
+ Intersection() = default;
std::list<Filter> filters() const { return m_filters; }
- void addFilter(const Filter& data) { m_filters.push_back(data); }
+ void addFilter(const Filter &data) { m_filters.push_back(data); }
private:
std::list<Filter> m_filters;
};
-LIBSAMPLE_API Intersection operator&(const Intersection& a, const Intersection& b);
+LIBSAMPLE_API Intersection operator&(const Intersection &a, const Intersection &b);
#endif // FILTER_H
diff --git a/sources/shiboken6/tests/libsample/functions.cpp b/sources/shiboken6/tests/libsample/functions.cpp
index 288fa96ee..ad2f4dd5a 100644
--- a/sources/shiboken6/tests/libsample/functions.cpp
+++ b/sources/shiboken6/tests/libsample/functions.cpp
@@ -1,63 +1,34 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "functions.h"
-#include <string.h>
+#include "polygon.h"
+
+#include <cstring>
#include <algorithm>
#include <iostream>
#include <numeric>
-using namespace std;
-
-void
-printSomething()
+void printSomething()
{
- cout << __FUNCTION__ << endl;
+ std::cout << __FUNCTION__ << std::endl;
}
-int
-gimmeInt()
+int gimmeInt()
{
static int val = 2;
val = val * 1.3;
return val;
}
-double
-gimmeDouble()
+double gimmeDouble()
{
static double val = 7.77;
val = val * 1.3;
return val;
}
-std::list<Complex>
-gimmeComplexList()
+std::list<Complex> gimmeComplexList()
{
std::list<Complex> lst;
lst.push_back(Complex());
@@ -66,135 +37,114 @@ gimmeComplexList()
return lst;
}
-Complex
-sumComplexPair(std::pair<Complex, Complex> cpx_pair)
+Complex sumComplexPair(std::pair<Complex, Complex> cpx_pair)
{
return cpx_pair.first + cpx_pair.second;
}
-double
-multiplyPair(std::pair<double, double> pair)
+double multiplyPair(std::pair<double, double> pair)
{
return pair.first * pair.second;
}
-int
-countCharacters(const char* text)
+int countCharacters(const char *text)
{
- if (!text)
- return -1;
- int count;
- for(count = 0; text[count] != '\0'; count++)
- ;
- return count;
+ return text != nullptr ? int(std::strlen(text)) : -1;
}
-char*
-makeCString()
+char *makeCString()
{
- char* string = new char[strlen(__FUNCTION__) + 1];
- strcpy(string, __FUNCTION__);
+ char *string = new char[std::strlen(__FUNCTION__) + 1];
+ std::strcpy(string, __FUNCTION__);
return string;
}
-const char*
-returnCString()
+const char *returnCString()
{
return __FUNCTION__;
}
-GlobalOverloadFuncEnum
-overloadedFunc(int val)
+GlobalOverloadFuncEnum overloadedFunc(int)
{
return GlobalOverloadFunc_i;
}
-GlobalOverloadFuncEnum
-overloadedFunc(double val)
+GlobalOverloadFuncEnum overloadedFunc(double)
{
return GlobalOverloadFunc_d;
}
-char*
-returnNullPrimitivePointer()
+char *returnNullPrimitivePointer()
{
return nullptr;
}
-ObjectType*
-returnNullObjectTypePointer()
+ObjectType *returnNullObjectTypePointer()
{
return nullptr;
}
-Event*
-returnNullValueTypePointer()
+Event *returnNullValueTypePointer()
{
return nullptr;
}
-unsigned int
-doubleUnsignedInt(unsigned int value)
+unsigned int doubleUnsignedInt(unsigned int value)
{
return value * 2;
}
-long long
-doubleLongLong(long long value)
+long long doubleLongLong(long long value)
{
return value * 2;
}
-unsigned long long
-doubleUnsignedLongLong(unsigned long long value)
+unsigned long long doubleUnsignedLongLong(unsigned long long value)
{
return value * 2;
}
-short
-doubleShort(short value)
+short doubleShort(short value)
{
return value * 2;
}
-int
-acceptInt(int x)
+int acceptInt(int x)
{
return x;
}
-unsigned int
-acceptUInt(unsigned int x)
+const int *acceptIntReturnPtr(int x)
+{
+ return new int(x);
+}
+
+unsigned int acceptUInt(unsigned int x)
{
return x;
}
-long
-acceptLong(long x)
+long acceptLong(long x)
{
return x;
}
-unsigned long
-acceptULong(unsigned long x)
+unsigned long acceptULong(unsigned long x)
{
return x;
}
-double
-acceptDouble(double x)
+double acceptDouble(double x)
{
return x;
}
-int
-acceptIntReference(int& x)
+int acceptIntReference(int &x)
{
return x;
}
-OddBool
-acceptOddBoolReference(OddBool& x)
+OddBool acceptOddBoolReference(OddBool &x)
{
return x;
}
@@ -229,9 +179,7 @@ double sumDoubleMatrix(double m[2][3])
return result;
}
-ArrayModifyTest::ArrayModifyTest()
-{
-}
+ArrayModifyTest::ArrayModifyTest() = default;
int ArrayModifyTest::sumIntArray(int n, int *array)
{
@@ -253,3 +201,32 @@ void ClassWithFunctionPointer::doNothing(void *operand)
{
(void) operand;
}
+
+std::string addStdStrings(const std::string &s1, const std::string &s2)
+{
+ return s1 + s2;
+}
+
+std::wstring addStdWStrings(const std::wstring &s1, const std::wstring &s2)
+{
+ return s1 + s2;
+}
+
+void testNullPtrT(std::nullptr_t)
+{
+ std::cout << __FUNCTION__ << '\n';
+}
+
+int takePolygon(Polygon &&p)
+{
+ auto p2 = std::move(p);
+ std::cout << __FUNCTION__ << ' ' << p2.points().size() << " points\n";
+ return int(p2.points().size());
+}
+
+int takeObjectType(ObjectType &&o)
+{
+ auto o2 = std::move(o);
+ std::cout << __FUNCTION__ << ' ' << o2.objectName().cstring() << '\n';
+ return o2.objectName().size();
+}
diff --git a/sources/shiboken6/tests/libsample/functions.h b/sources/shiboken6/tests/libsample/functions.h
index cad8b2a33..b745aed6b 100644
--- a/sources/shiboken6/tests/libsample/functions.h
+++ b/sources/shiboken6/tests/libsample/functions.h
@@ -1,41 +1,19 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef FUNCTIONS_H
#define FUNCTIONS_H
#include "libsamplemacros.h"
-#include <list>
-#include <utility>
#include "oddbool.h"
#include "complex.h"
#include "objecttype.h"
+#include <list>
+#include <utility>
+
+class Polygon;
+
enum GlobalEnum {
NoThing,
FirstThing,
@@ -55,13 +33,13 @@ LIBSAMPLE_API double multiplyPair(std::pair<double, double> pair);
LIBSAMPLE_API std::list<Complex> gimmeComplexList();
LIBSAMPLE_API Complex sumComplexPair(std::pair<Complex, Complex> cpx_pair);
-LIBSAMPLE_API int countCharacters(const char* text);
-LIBSAMPLE_API char* makeCString();
-LIBSAMPLE_API const char* returnCString();
+LIBSAMPLE_API int countCharacters(const char *text);
+LIBSAMPLE_API char *makeCString();
+LIBSAMPLE_API const char *returnCString();
-LIBSAMPLE_API char* returnNullPrimitivePointer();
-LIBSAMPLE_API ObjectType* returnNullObjectTypePointer();
-LIBSAMPLE_API Event* returnNullValueTypePointer();
+LIBSAMPLE_API char *returnNullPrimitivePointer();
+LIBSAMPLE_API ObjectType *returnNullObjectTypePointer();
+LIBSAMPLE_API Event *returnNullValueTypePointer();
// Tests overloading on functions (!methods)
LIBSAMPLE_API GlobalOverloadFuncEnum overloadedFunc(int val);
@@ -73,19 +51,28 @@ LIBSAMPLE_API unsigned long long doubleUnsignedLongLong(unsigned long long value
LIBSAMPLE_API short doubleShort(short value);
LIBSAMPLE_API int acceptInt(int x);
+LIBSAMPLE_API const int *acceptIntReturnPtr(int x);
LIBSAMPLE_API unsigned int acceptUInt(unsigned int x);
LIBSAMPLE_API long acceptLong(long x);
LIBSAMPLE_API unsigned long acceptULong(unsigned long x);
LIBSAMPLE_API double acceptDouble(double x);
-LIBSAMPLE_API int acceptIntReference(int& x);
-LIBSAMPLE_API OddBool acceptOddBoolReference(OddBool& x);
+LIBSAMPLE_API int acceptIntReference(int &x);
+LIBSAMPLE_API OddBool acceptOddBoolReference(OddBool &x);
LIBSAMPLE_API int sumIntArray(int array[4]);
LIBSAMPLE_API double sumDoubleArray(double array[4]);
LIBSAMPLE_API int sumIntMatrix(int m[2][3]);
LIBSAMPLE_API double sumDoubleMatrix(double m[2][3]);
+LIBSAMPLE_API std::string addStdStrings(const std::string &s1, const std::string &s2);
+LIBSAMPLE_API std::wstring addStdWStrings(const std::wstring &s1, const std::wstring &s2);
+
+LIBSAMPLE_API void testNullPtrT(std::nullptr_t);
+
+LIBSAMPLE_API int takePolygon(Polygon &&p);
+LIBSAMPLE_API int takeObjectType(ObjectType &&o);
+
class LIBSAMPLE_API ArrayModifyTest
{
public:
diff --git a/sources/shiboken6/tests/libsample/handle.cpp b/sources/shiboken6/tests/libsample/handle.cpp
index 643eac458..93c2abe47 100644
--- a/sources/shiboken6/tests/libsample/handle.cpp
+++ b/sources/shiboken6/tests/libsample/handle.cpp
@@ -1,44 +1,19 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "handle.h"
-HANDLE HandleHolder::createHandle()
+SAMPLE_HANDLE HandleHolder::createHandle()
{
- return (HANDLE) new OBJ;
+ return (SAMPLE_HANDLE) new OBJ;
}
-bool HandleHolder::compare(HandleHolder* other)
+bool HandleHolder::compare(HandleHolder *other)
{
return other->m_handle == m_handle;
}
-bool HandleHolder::compare2(HandleHolder* other)
+bool HandleHolder::compare2(HandleHolder *other)
{
return other->m_handle2 == m_handle2;
}
diff --git a/sources/shiboken6/tests/libsample/handle.h b/sources/shiboken6/tests/libsample/handle.h
index 824c28b9a..07fc89d15 100644
--- a/sources/shiboken6/tests/libsample/handle.h
+++ b/sources/shiboken6/tests/libsample/handle.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef HANDLE_H
#define HANDLE_H
@@ -33,35 +8,41 @@
/* See http://bugs.pyside.org/show_bug.cgi?id=1105. */
namespace Foo {
- using HANDLE = unsigned long;
+ using SAMPLE_HANDLE = unsigned long;
}
class LIBSAMPLE_API OBJ
{
};
-using HANDLE = OBJ *;
+using SAMPLE_HANDLE = OBJ *;
class LIBSAMPLE_API HandleHolder
{
public:
- explicit HandleHolder(HANDLE ptr = nullptr) : m_handle(ptr) {}
- explicit HandleHolder(Foo::HANDLE val): m_handle2(val) {}
+ explicit HandleHolder(SAMPLE_HANDLE ptr = nullptr) : m_handle(ptr) {}
+ explicit HandleHolder(Foo::SAMPLE_HANDLE val): m_handle2(val) {}
- inline void set(HANDLE ptr) { HANDLE tmp; tmp = m_handle; m_handle = tmp; }
- inline void set(const Foo::HANDLE& val) { m_handle2 = val; }
- inline HANDLE handle() { return m_handle; }
- inline Foo::HANDLE handle2() { return m_handle2; }
+ void set(SAMPLE_HANDLE ptr);
+ inline void set(const Foo::SAMPLE_HANDLE &val) { m_handle2 = val; }
+ inline SAMPLE_HANDLE handle() const { return m_handle; }
+ inline Foo::SAMPLE_HANDLE handle2() const { return m_handle2; }
- static HANDLE createHandle();
- bool compare(HandleHolder* other);
- bool compare2(HandleHolder* other);
+ static SAMPLE_HANDLE createHandle();
+ bool compare(HandleHolder *other);
+ bool compare2(HandleHolder *other);
private:
- HANDLE m_handle;
- Foo::HANDLE m_handle2;
+ SAMPLE_HANDLE m_handle = nullptr;
+ Foo::SAMPLE_HANDLE m_handle2 = 0;
};
+inline void HandleHolder::set(SAMPLE_HANDLE)
+{
+ SAMPLE_HANDLE tmp = m_handle;
+ m_handle = tmp;
+}
+
struct LIBSAMPLE_API PrimitiveStruct {};
using PrimitiveStructPtr = struct PrimitiveStruct *;
struct LIBSAMPLE_API PrimitiveStructPointerHolder
diff --git a/sources/shiboken6/tests/libsample/implicitconv.cpp b/sources/shiboken6/tests/libsample/implicitconv.cpp
index 88af0d936..887fa6b1c 100644
--- a/sources/shiboken6/tests/libsample/implicitconv.cpp
+++ b/sources/shiboken6/tests/libsample/implicitconv.cpp
@@ -1,66 +1,39 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "implicitconv.h"
-ImplicitConv
-ImplicitConv::implicitConvCommon(ImplicitConv implicit)
+ImplicitConv::ImplicitConv(const Null &) :
+ m_ctorEnum(CtorPrimitiveType)
+{
+}
+
+ImplicitConv ImplicitConv::implicitConvCommon(ImplicitConv implicit)
{
return implicit;
}
-ImplicitConv
-ImplicitConv::implicitConvDefault(ImplicitConv implicit)
+ImplicitConv ImplicitConv::implicitConvDefault(ImplicitConv implicit)
{
return implicit;
}
-ImplicitConv::ICOverloadedFuncEnum
-ImplicitConv::implicitConvOverloading(ImplicitConv implicit, int dummyArg)
+ImplicitConv::ICOverloadedFuncEnum ImplicitConv::implicitConvOverloading(ImplicitConv, int)
{
return ImplicitConv::OverFunc_Ii;
}
-ImplicitConv::ICOverloadedFuncEnum
-ImplicitConv::implicitConvOverloading(ImplicitConv implicit, bool dummyArg)
+ImplicitConv::ICOverloadedFuncEnum ImplicitConv::implicitConvOverloading(ImplicitConv, bool)
{
return ImplicitConv::OverFunc_Ib;
}
-ImplicitConv::ICOverloadedFuncEnum
-ImplicitConv::implicitConvOverloading(int dummyArg)
+ImplicitConv::ICOverloadedFuncEnum ImplicitConv::implicitConvOverloading(int)
{
return ImplicitConv::OverFunc_i;
}
-ImplicitConv::ICOverloadedFuncEnum
-ImplicitConv::implicitConvOverloading(CtorEnum dummyArg)
+ImplicitConv::ICOverloadedFuncEnum ImplicitConv::implicitConvOverloading(CtorEnum)
{
return ImplicitConv::OverFunc_C;
}
-
diff --git a/sources/shiboken6/tests/libsample/implicitconv.h b/sources/shiboken6/tests/libsample/implicitconv.h
index ea859a1a6..5d69eb487 100644
--- a/sources/shiboken6/tests/libsample/implicitconv.h
+++ b/sources/shiboken6/tests/libsample/implicitconv.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef IMPLICITCONV_H
#define IMPLICITCONV_H
@@ -37,6 +12,8 @@ class ObjectType;
class LIBSAMPLE_API ImplicitConv
{
public:
+ LIBMINIMAL_DEFAULT_COPY_MOVE(ImplicitConv)
+
enum CtorEnum {
CtorNone,
CtorOne,
@@ -53,17 +30,17 @@ public:
OverFunc_C
};
- ImplicitConv() : m_ctorEnum(CtorNone), m_objId(-1), m_value(-1.0) {}
- ImplicitConv(int objId) : m_ctorEnum(CtorOne), m_objId(objId), m_value(-1.0) {}
- ImplicitConv(CtorEnum ctorEnum) : m_ctorEnum(ctorEnum), m_objId(-1), m_value(-1.0) {}
- ImplicitConv(ObjectType&) : m_ctorEnum(CtorObjectTypeReference), m_objId(-1), m_value(-1.0) {}
+ ImplicitConv() noexcept = default;
+ ImplicitConv(int objId) noexcept : m_ctorEnum(CtorOne), m_objId(objId) {}
+ ImplicitConv(CtorEnum ctorEnum) : m_ctorEnum(ctorEnum) {}
+ ImplicitConv(ObjectType&) : m_ctorEnum(CtorObjectTypeReference) {}
ImplicitConv(double value, bool=true) : m_ctorEnum(CtorNone), m_value(value) {}
- ImplicitConv(const Null& null) : m_ctorEnum(CtorPrimitiveType) {}
- ~ImplicitConv() {}
+ ImplicitConv(const Null &null);
+ ~ImplicitConv() = default;
- inline CtorEnum ctorEnum() { return m_ctorEnum; }
- inline int objId() { return m_objId; }
- inline double value() { return m_value; }
+ inline CtorEnum ctorEnum() const { return m_ctorEnum; }
+ inline int objId() const { return m_objId; }
+ inline double value() const { return m_value; }
static ImplicitConv implicitConvCommon(ImplicitConv implicit);
@@ -75,9 +52,9 @@ public:
static ICOverloadedFuncEnum implicitConvOverloading(CtorEnum dummyArg);
private:
- CtorEnum m_ctorEnum;
- int m_objId;
- double m_value;
+ CtorEnum m_ctorEnum = CtorNone;
+ int m_objId = -1;
+ double m_value = -1.0;
};
#endif // IMPLICITCONV_H
diff --git a/sources/shiboken6/tests/libsample/injectcode.cpp b/sources/shiboken6/tests/libsample/injectcode.cpp
index b1cf2d26b..707d14ed8 100644
--- a/sources/shiboken6/tests/libsample/injectcode.cpp
+++ b/sources/shiboken6/tests/libsample/injectcode.cpp
@@ -1,46 +1,16 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "injectcode.h"
-#include <sstream>
-using namespace std;
+#include <sstream>
-InjectCode::InjectCode()
-{
-}
+InjectCode::InjectCode() noexcept = default;
-InjectCode::~InjectCode()
-{
-}
+InjectCode::~InjectCode() = default;
template<typename T>
-const char* InjectCode::toStr(const T& value)
+const char *InjectCode::toStr(const T &value)
{
std::ostringstream s;
s << value;
@@ -48,41 +18,41 @@ const char* InjectCode::toStr(const T& value)
return m_valueHolder.c_str();
}
-const char* InjectCode::simpleMethod1(int arg0, int arg1)
+const char *InjectCode::simpleMethod1(int arg0, int arg1)
{
return toStr(arg0 + arg1);
}
-const char* InjectCode::simpleMethod2()
+const char *InjectCode::simpleMethod2()
{
return "_";
}
-const char* InjectCode::simpleMethod3(int argc, char** argv)
+const char *InjectCode::simpleMethod3(int argc, char **argv)
{
for (int i = 0; i < argc; ++i)
m_valueHolder += argv[i];
return m_valueHolder.c_str();
}
-const char* InjectCode::overloadedMethod(int arg0, bool arg1)
+const char *InjectCode::overloadedMethod(int arg0, bool arg1)
{
toStr(arg0);
m_valueHolder += arg1 ? "true" : "false";
return m_valueHolder.c_str();
}
-const char* InjectCode::overloadedMethod(int arg0, double arg1)
+const char *InjectCode::overloadedMethod(int arg0, double arg1)
{
return toStr(arg0 + arg1);
}
-const char* InjectCode::overloadedMethod(int argc, char** argv)
+const char *InjectCode::overloadedMethod(int argc, char **argv)
{
return simpleMethod3(argc, argv);
}
-const char* InjectCode::virtualMethod(int arg)
+const char *InjectCode::virtualMethod(int arg)
{
return toStr(arg);
}
@@ -95,13 +65,13 @@ int InjectCode::arrayMethod(int count, int *values) const
return ret;
}
-int InjectCode::sumArrayAndLength(int* values) const
+int InjectCode::sumArrayAndLength(int *values) const
{
int sum = 0;
- while(*values) {
+ while (*values) {
sum = sum + *values + 1;
- values++;
+ ++values;
}
return sum;
diff --git a/sources/shiboken6/tests/libsample/injectcode.h b/sources/shiboken6/tests/libsample/injectcode.h
index 927721f8f..74046dad5 100644
--- a/sources/shiboken6/tests/libsample/injectcode.h
+++ b/sources/shiboken6/tests/libsample/injectcode.h
@@ -1,56 +1,35 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef INJECTCODE_H
#define INJECTCODE_H
#include "libsamplemacros.h"
+
#include <utility>
#include <string>
class LIBSAMPLE_API InjectCode
{
public:
- InjectCode();
+ LIBMINIMAL_DEFAULT_COPY_MOVE(InjectCode)
+
+ InjectCode() noexcept;
virtual ~InjectCode();
- const char* simpleMethod1(int arg0, int arg1);
- const char* simpleMethod2();
- const char* simpleMethod3(int argc, char** argv);
+ const char *simpleMethod1(int arg0, int arg1);
+ const char *simpleMethod2();
+ const char *simpleMethod3(int argc, char **argv);
- const char* overloadedMethod(int argc, char** argv);
- const char* overloadedMethod(int arg0, double arg1);
- const char* overloadedMethod(int arg0, bool arg1);
+ const char *overloadedMethod(int argc, char **argv);
+ const char *overloadedMethod(int arg0, double arg1);
+ const char *overloadedMethod(int arg0, bool arg1);
- virtual int arrayMethod(int count, int* values) const;
+ virtual int arrayMethod(int count, int *values) const;
inline int callArrayMethod(int count, int *values) const { return arrayMethod(count, values); }
- virtual const char* virtualMethod(int arg);
- int sumArrayAndLength(int* values) const;
+ virtual const char *virtualMethod(int arg);
+ int sumArrayAndLength(int *values) const;
+
private:
// This attr is just to retain the memory pointed by all return values,
// So, the memory returned by all methods will be valid until someone call
@@ -58,7 +37,7 @@ private:
std::string m_valueHolder;
template<typename T>
- const char* toStr(const T& value);
+ const char *toStr(const T &value);
};
#endif // INJECTCODE_H
diff --git a/sources/shiboken6/tests/libsample/intwrapper.cpp b/sources/shiboken6/tests/libsample/intwrapper.cpp
index aa1a22874..0eaf30465 100644
--- a/sources/shiboken6/tests/libsample/intwrapper.cpp
+++ b/sources/shiboken6/tests/libsample/intwrapper.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "intwrapper.h"
diff --git a/sources/shiboken6/tests/libsample/intwrapper.h b/sources/shiboken6/tests/libsample/intwrapper.h
index 158cff8e1..cfda5adc7 100644
--- a/sources/shiboken6/tests/libsample/intwrapper.h
+++ b/sources/shiboken6/tests/libsample/intwrapper.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef INTWRAPPER_H
#define INTWRAPPER_H
diff --git a/sources/shiboken6/tests/libsample/libsamplemacros.h b/sources/shiboken6/tests/libsample/libsamplemacros.h
index e85b0fd5b..93e549bfb 100644
--- a/sources/shiboken6/tests/libsample/libsamplemacros.h
+++ b/sources/shiboken6/tests/libsample/libsamplemacros.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef LIBSAMPLEMACROS_H
#define LIBSAMPLEMACROS_H
diff --git a/sources/shiboken6/tests/libsample/list.h b/sources/shiboken6/tests/libsample/list.h
index f4970d947..5e06d2a66 100644
--- a/sources/shiboken6/tests/libsample/list.h
+++ b/sources/shiboken6/tests/libsample/list.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef LIST_H
#define LIST_H
@@ -43,6 +18,8 @@ class List : public std::list<T>
class IntList : public List<int>
{
public:
+ LIBMINIMAL_DEFAULT_MOVE(IntList)
+
enum CtorEnum {
NoParamsCtor,
IntCtor,
@@ -50,10 +27,13 @@ public:
ListOfIntCtor
};
- inline IntList() : m_ctorUsed(NoParamsCtor) {}
+ inline IntList() noexcept : m_ctorUsed(NoParamsCtor) {}
inline explicit IntList(int val) : m_ctorUsed(IntCtor) { push_back(val); }
- inline IntList(const IntList& lst) : List<int>(lst), m_ctorUsed(CopyCtor) {}
- inline IntList(const List<int>& lst) : List<int>(lst), m_ctorUsed(ListOfIntCtor) {}
+ inline IntList(const List<int> &lst) : List<int>(lst), m_ctorUsed(ListOfIntCtor) {}
+ ~IntList() = default;
+
+ inline IntList(const IntList &lst) : List<int>(lst), m_ctorUsed(CopyCtor) {}
+ IntList &operator=(const IntList &) = default;
inline void append(int v) { insert(end(), v); }
CtorEnum constructorUsed() { return m_ctorUsed; }
@@ -64,6 +44,8 @@ private:
class PointValueList : public List<Point>
{
public:
+ LIBMINIMAL_DEFAULT_MOVE(PointValueList)
+
enum CtorEnum {
NoParamsCtor,
PointCtor,
@@ -71,10 +53,13 @@ public:
ListOfPointValuesCtor
};
- inline PointValueList() : m_ctorUsed(NoParamsCtor) {}
+ inline PointValueList() noexcept : m_ctorUsed(NoParamsCtor) {}
inline explicit PointValueList(Point val) : m_ctorUsed(PointCtor) { push_back(val); }
- inline PointValueList(const PointValueList& lst) : List<Point>(lst), m_ctorUsed(CopyCtor) {}
- inline PointValueList(const List<Point>& lst) : List<Point>(lst), m_ctorUsed(ListOfPointValuesCtor) {}
+ inline PointValueList(const List<Point> &lst) : List<Point>(lst), m_ctorUsed(ListOfPointValuesCtor) {}
+
+ inline PointValueList(const PointValueList &lst) : List<Point>(lst), m_ctorUsed(CopyCtor) {}
+ PointValueList &operator=(const PointValueList &) = default;
+ ~PointValueList() = default;
inline void append(Point v) { insert(end(), v); }
CtorEnum constructorUsed() { return m_ctorUsed; }
@@ -85,6 +70,8 @@ private:
class ObjectTypePtrList : public List<ObjectType*>
{
public:
+ LIBMINIMAL_DEFAULT_MOVE(ObjectTypePtrList)
+
enum CtorEnum {
NoParamsCtor,
ObjectTypeCtor,
@@ -92,15 +79,21 @@ public:
ListOfObjectTypePtrCtor
};
- inline ObjectTypePtrList() : m_ctorUsed(NoParamsCtor) {}
- inline explicit ObjectTypePtrList(ObjectType* val) : m_ctorUsed(ObjectTypeCtor) { push_back(val); }
- inline ObjectTypePtrList(const ObjectTypePtrList& lst) : List<ObjectType*>(lst), m_ctorUsed(CopyCtor) {}
- inline ObjectTypePtrList(const List<ObjectType*>& lst) : List<ObjectType*>(lst), m_ctorUsed(ListOfObjectTypePtrCtor) {}
+ inline ObjectTypePtrList() = default;
+ inline ObjectTypePtrList(const ObjectTypePtrList &lst) :
+ List<ObjectType*>(lst), m_ctorUsed(CopyCtor) {}
+ inline explicit ObjectTypePtrList(ObjectType *val) :
+ m_ctorUsed(ObjectTypeCtor) { push_back(val); }
+ inline ObjectTypePtrList(const List<ObjectType*> &lst) :
+ List<ObjectType*>(lst), m_ctorUsed(ListOfObjectTypePtrCtor) {}
+ ~ObjectTypePtrList() = default;
+
+ ObjectTypePtrList &operator=(const ObjectTypePtrList &) = default;
- inline void append(ObjectType* v) { insert(end(), v); }
+ inline void append(ObjectType *v) { insert(end(), v); }
CtorEnum constructorUsed() { return m_ctorUsed; }
private:
- CtorEnum m_ctorUsed;
+ CtorEnum m_ctorUsed = NoParamsCtor;
};
#endif // LIST_H
diff --git a/sources/shiboken6/tests/libsample/listuser.cpp b/sources/shiboken6/tests/libsample/listuser.cpp
index 995220b6f..9bb7f7798 100644
--- a/sources/shiboken6/tests/libsample/listuser.cpp
+++ b/sources/shiboken6/tests/libsample/listuser.cpp
@@ -1,45 +1,24 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
-#include <numeric>
-#include <cstdlib>
#include "listuser.h"
-using namespace std;
+#include <numeric>
+#include <cstdlib>
-std::list<int>
-ListUser::callCreateList()
+std::list<int> ListUser::callCreateList()
{
return createList();
}
-std::list<int>
-ListUser::createList()
+ListUser::ListUser() = default;
+ListUser::ListUser(const ListUser &other) = default;
+ListUser::ListUser(ListUser &&other) noexcept = default;
+ListUser &ListUser::operator=(const ListUser &other) = default;
+ListUser &ListUser::operator=(ListUser &&other) noexcept = default;
+ListUser::~ListUser() = default;
+
+std::list<int> ListUser::createList()
{
std::list<int> retval;
for (int i = 0; i < 4; i++)
@@ -47,8 +26,7 @@ ListUser::createList()
return retval;
}
-std::list<Complex>
-ListUser::createComplexList(Complex cpx0, Complex cpx1)
+std::list<Complex> ListUser::createComplexList(Complex cpx0, Complex cpx1)
{
std::list<Complex> retval;
retval.push_back(cpx0);
@@ -56,36 +34,30 @@ ListUser::createComplexList(Complex cpx0, Complex cpx1)
return retval;
}
-double
-ListUser::sumList(std::list<int> vallist)
+double ListUser::sumList(std::list<int> vallist)
{
return std::accumulate(vallist.begin(), vallist.end(), 0.0);
}
-double
-ListUser::sumList(std::list<double> vallist)
+double ListUser::sumList(std::list<double> vallist)
{
return std::accumulate(vallist.begin(), vallist.end(), 0.0);
}
-ListUser::ListOfSomething
-ListUser::listOfPoints(const std::list<Point>& pointlist)
+ListUser::ListOfSomething ListUser::listOfPoints(const std::list<Point> &)
{
return ListOfPoint;
}
-ListUser::ListOfSomething
-ListUser::listOfPoints(const std::list<PointF>& pointlist)
+ListUser::ListOfSomething ListUser::listOfPoints(const std::list<PointF> &)
{
return ListOfPointF;
}
-void
-ListUser::multiplyPointList(PointList& points, double multiplier)
+void ListUser::multiplyPointList(PointList &points, double multiplier)
{
for (auto *point : points) {
point->setX(point->x() * multiplier);
point->setY(point->y() * multiplier);
}
}
-
diff --git a/sources/shiboken6/tests/libsample/listuser.h b/sources/shiboken6/tests/libsample/listuser.h
index 7e67039d9..96781ed16 100644
--- a/sources/shiboken6/tests/libsample/listuser.h
+++ b/sources/shiboken6/tests/libsample/listuser.h
@@ -1,41 +1,17 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef LISTUSER_H
#define LISTUSER_H
-#include <list>
#include "complex.h"
#include "point.h"
#include "pointf.h"
#include "libsamplemacros.h"
+#include <list>
+
class LIBSAMPLE_API ListUser
{
public:
@@ -46,9 +22,12 @@ public:
ListOfPointF
};
- ListUser() {}
- ListUser(const ListUser& other) : m_lst(other.m_lst) {}
- virtual ~ListUser() {}
+ ListUser();
+ ListUser(const ListUser &other);
+ ListUser(ListUser &&other) noexcept;
+ ListUser &operator=(const ListUser &other);
+ ListUser &operator=(ListUser &&other) noexcept;
+ virtual ~ListUser();
virtual std::list<int> createList();
std::list<int> callCreateList();
@@ -58,13 +37,13 @@ public:
double sumList(std::list<int> vallist);
double sumList(std::list<double> vallist);
- static ListOfSomething listOfPoints(const std::list<Point>& pointlist);
- static ListOfSomething listOfPoints(const std::list<PointF>& pointlist);
+ static ListOfSomething listOfPoints(const std::list<Point> &pointlist);
+ static ListOfSomething listOfPoints(const std::list<PointF> &pointlist);
- static void multiplyPointList(PointList& points, double multiplier);
+ static void multiplyPointList(PointList &points, double multiplier);
inline void setList(std::list<int> lst) { m_lst = lst; }
- inline std::list<int> getList() { return m_lst; }
+ inline std::list<int> getList() const { return m_lst; }
private:
std::list<int> m_lst;
diff --git a/sources/shiboken6/tests/libsample/main.cpp b/sources/shiboken6/tests/libsample/main.cpp
index 336551ea2..1b44642ae 100644
--- a/sources/shiboken6/tests/libsample/main.cpp
+++ b/sources/shiboken6/tests/libsample/main.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <iostream>
#include <list>
@@ -37,207 +12,197 @@
#include "listuser.h"
#include "samplenamespace.h"
-using namespace std;
-
int
main(int argv, char **argc)
{
- cout << endl;
+ std::cout << std::endl;
Derived derived;
- cout << endl;
+ std::cout << std::endl;
derived.unpureVirtual();
derived.pureVirtual();
derived.callPureVirtual();
- cout << endl;
- Abstract* abs;
- abs = Abstract::createObject();
- cout << "Abstract::createObject(): " << abs << endl << endl;
+ std::cout << std::endl;
+ auto *abs = Abstract::createObject();
+ std::cout << "Abstract::createObject(): " << abs << std::endl << std::endl;
delete abs;
abs = Derived::createObject();
- cout << "Derived::createObject() : ";
+ std::cout << "Derived::createObject() : ";
abs->show();
- cout << endl;
+ std::cout << std::endl;
delete abs;
- cout << endl;
+ std::cout << std::endl;
abs = Derived::createObject();
- cout << "Derived::createObject() : ";
+ std::cout << "Derived::createObject() : ";
abs->show();
- cout << endl;
+ std::cout << std::endl;
delete abs;
- cout << endl;
+ std::cout << std::endl;
- cout << endl << "-----------------------------------------" << endl;
+ std::cout << "\n-----------------------------------------\n";
KinderGarten kg;
- Derived* d[] = { 0, 0, 0 };
+ Derived *d[] = { 0, 0, 0 };
for (int i = 0; i < 3; i++) {
d[i] = new Derived(i);
d[i]->show();
- cout << endl;
+ std::cout << std::endl;
kg.addChild(d[i]);
}
kg.show();
- cout << endl;
+ std::cout << std::endl;
- cout << endl << "* kill child ";
+ std::cout << "\n* kill child ";
d[2]->show();
- cout << " ----------------" << endl;
+ std::cout << " ----------------\n";
kg.killChild(d[2]);
kg.show();
- cout << endl;
+ std::cout << std::endl;
- cout << endl << "* release child ";
+ std::cout << "\n* release child ";
d[1]->show();
- cout << " -------------" << endl;
- Abstract* released = kg.releaseChild(d[1]);
- cout << "released: ";
+ std::cout << " -------------\n";
+ Abstract *released = kg.releaseChild(d[1]);
+ std::cout << "released: ";
released->show();
- cout << endl;
+ std::cout << std::endl;
kg.show();
- cout << endl;
-
- cout << endl << "* kill children ------------------------------------" << endl;
+ std::cout << "\n\n* kill children ------------------------------------\n";
kg.killChildren();
kg.show();
- cout << endl << endl;
-
- cout << "-----------------------------------------" << endl;
+ std::cout << "\n\n-----------------------------------------\n";
ListUser lu;
- cout << "ListUser::createList()" << endl;
+ std::cout << "ListUser::createList()\n";
std::list<int> intlist = lu.createList();
- for (std::list<int>::iterator it = intlist.begin(); it != intlist.end(); it++) {
- cout << "* " << *it << endl;
- }
+ for (std::list<int>::iterator it = intlist.begin(); it != intlist.end(); it++)
+ std::cout << "* " << *it << std::endl;
- cout << "ListUser::createComplexList" << endl;
+ std::cout << "ListUser::createComplexList\n";
std::list<Complex> cpxlist = ListUser::createComplexList(Complex(1.1, 2.2), Complex(3.3, 4.4));
for (std::list<Complex>::iterator it = cpxlist.begin(); it != cpxlist.end(); it++) {
- cout << "* ";
+ std::cout << "* ";
(*it).show();
- cout << endl;
+ std::cout << std::endl;
}
- cout << endl;
-
- cout << "-----------------------------------------" << endl;
- cout << "SampleNamespace" << endl;
-
- cout << "SampleNamespace::RandomNumber: ";
- cout << SampleNamespace::getNumber(SampleNamespace::RandomNumber);
- cout << endl;
- cout << "SampleNamespace::UnixTime: ";
- cout << SampleNamespace::getNumber(SampleNamespace::UnixTime);
- cout << endl;
+ std::cout << "\n-----------------------------------------\n"
+ << "SampleNamespace\n";
+
+ std::cout << "SampleNamespace::RandomNumber: ";
+ std::cout << SampleNamespace::getNumber(SampleNamespace::RandomNumber);
+ std::cout << std::endl;
+ std::cout << "SampleNamespace::UnixTime: ";
+ std::cout << SampleNamespace::getNumber(SampleNamespace::UnixTime);
+ std::cout << std::endl;
double val_d = 1.3;
- cout << "SampleNamespace::powerOfTwo(" << val_d << "): ";
- cout << SampleNamespace::powerOfTwo(val_d) << endl;
+ std::cout << "SampleNamespace::powerOfTwo(" << val_d << "): ";
+ std::cout << SampleNamespace::powerOfTwo(val_d) << std::endl;
int val_i = 7;
- cout << "SampleNamespace::powerOfTwo(" << val_i << "): ";
- cout << SampleNamespace::powerOfTwo(val_i) << endl;
- cout << endl;
+ std::cout << "SampleNamespace::powerOfTwo(" << val_i << "): ";
+ std::cout << SampleNamespace::powerOfTwo(val_i) << std::endl;
+ std::cout << std::endl;
- cout << "-----------------------------------------" << endl;
- cout << "Point" << endl;
+ std::cout << "-----------------------------------------" << std::endl;
+ std::cout << "Point" << std::endl;
Point p1(1.1, 2.2);
- cout << "p1: ";
+ std::cout << "p1: ";
p1.show();
- cout << endl;
+ std::cout << std::endl;
Point p2(3.4, 5.6);
- cout << "p2: ";
+ std::cout << "p2: ";
p2.show();
- cout << endl;
+ std::cout << std::endl;
- cout << "p1 + p2 == ";
+ std::cout << "p1 + p2 == ";
(p1 + p2).show();
- cout << endl;
+ std::cout << std::endl;
- cout << "p1 * 2.0 == ";
+ std::cout << "p1 * 2.0 == ";
(p1 * 2.0).show();
- cout << endl;
+ std::cout << std::endl;
- cout << "1.5 * p2 == ";
+ std::cout << "1.5 * p2 == ";
(1.5 * p2).show();
- cout << endl;
+ std::cout << std::endl;
- cout << "p1: ";
+ std::cout << "p1: ";
p1.show();
- cout << endl << "p2: ";
+ std::cout << std::endl << "p2: ";
p2.show();
- cout << endl << "p1 += p2" << endl;
+ std::cout << std::endl << "p1 += p2" << std::endl;
p1 += p2;
- cout << "p1: ";
+ std::cout << "p1: ";
p1.show();
- cout << endl;
+ std::cout << std::endl;
- cout << "p1 == p2 ? " << ((p1 == p2) ? "true" : "false") << endl;
- cout << "p1 == p1 ? " << ((p1 == p1) ? "true" : "false") << endl;
- cout << "p2 == p2 ? " << ((p2 == p2) ? "true" : "false") << endl;
+ std::cout << "p1 == p2 ? " << ((p1 == p2) ? "true" : "false") << std::endl;
+ std::cout << "p1 == p1 ? " << ((p1 == p1) ? "true" : "false") << std::endl;
+ std::cout << "p2 == p2 ? " << ((p2 == p2) ? "true" : "false") << std::endl;
- cout << "-----------------------------------------" << endl;
- cout << "Size" << endl;
+ std::cout << "-----------------------------------------" << std::endl;
+ std::cout << "Size" << std::endl;
Size s1(2, 2);
- cout << "s1: ";
+ std::cout << "s1: ";
s1.show();
- cout << ", area: " << s1.calculateArea();
- cout << endl;
+ std::cout << ", area: " << s1.calculateArea();
+ std::cout << std::endl;
Size s2(3, 5);
- cout << "s2: ";
+ std::cout << "s2: ";
s2.show();
- cout << ", area: " << s2.calculateArea();
- cout << endl;
-
- cout << endl;
-
- cout << "s1 == s2 ? " << ((s1 == s2) ? "true" : "false") << endl;
- cout << "s1 != s2 ? " << ((s1 != s2) ? "true" : "false") << endl;
-
- cout << "s1 < s2 ? " << ((s1 < s2) ? "true" : "false") << endl;
- cout << "s1 <= s2 ? " << ((s1 <= s2) ? "true" : "false") << endl;
- cout << "s1 > s2 ? " << ((s1 > s2) ? "true" : "false") << endl;
- cout << "s1 >= s2 ? " << ((s1 >= s2) ? "true" : "false") << endl;
-
- cout << "s1 < 10 ? " << ((s1 < 10) ? "true" : "false") << endl;
- cout << "s1 <= 10 ? " << ((s1 <= 10) ? "true" : "false") << endl;
- cout << "s1 > 10 ? " << ((s1 > 10) ? "true" : "false") << endl;
- cout << "s1 >= 10 ? " << ((s1 >= 10) ? "true" : "false") << endl;
- cout << "s2 < 10 ? " << ((s2 < 10) ? "true" : "false") << endl;
- cout << "s2 <= 10 ? " << ((s2 <= 10) ? "true" : "false") << endl;
- cout << "s2 > 10 ? " << ((s2 > 10) ? "true" : "false") << endl;
- cout << "s2 >= 10 ? " << ((s2 >= 10) ? "true" : "false") << endl;
- cout << endl;
-
- cout << "s1: ";
+ std::cout << ", area: " << s2.calculateArea();
+ std::cout << std::endl;
+
+ std::cout << std::endl;
+
+ std::cout << "s1 == s2 ? " << ((s1 == s2) ? "true" : "false") << std::endl;
+ std::cout << "s1 != s2 ? " << ((s1 != s2) ? "true" : "false") << std::endl;
+
+ std::cout << "s1 < s2 ? " << ((s1 < s2) ? "true" : "false") << std::endl;
+ std::cout << "s1 <= s2 ? " << ((s1 <= s2) ? "true" : "false") << std::endl;
+ std::cout << "s1 > s2 ? " << ((s1 > s2) ? "true" : "false") << std::endl;
+ std::cout << "s1 >= s2 ? " << ((s1 >= s2) ? "true" : "false") << std::endl;
+
+ std::cout << "s1 < 10 ? " << ((s1 < 10) ? "true" : "false") << std::endl;
+ std::cout << "s1 <= 10 ? " << ((s1 <= 10) ? "true" : "false") << std::endl;
+ std::cout << "s1 > 10 ? " << ((s1 > 10) ? "true" : "false") << std::endl;
+ std::cout << "s1 >= 10 ? " << ((s1 >= 10) ? "true" : "false") << std::endl;
+ std::cout << "s2 < 10 ? " << ((s2 < 10) ? "true" : "false") << std::endl;
+ std::cout << "s2 <= 10 ? " << ((s2 <= 10) ? "true" : "false") << std::endl;
+ std::cout << "s2 > 10 ? " << ((s2 > 10) ? "true" : "false") << std::endl;
+ std::cout << "s2 >= 10 ? " << ((s2 >= 10) ? "true" : "false") << std::endl;
+ std::cout << std::endl;
+
+ std::cout << "s1: ";
s1.show();
- cout << endl << "s2: ";
+ std::cout << std::endl << "s2: ";
s2.show();
- cout << endl << "s1 += s2" << endl;
+ std::cout << std::endl << "s1 += s2" << std::endl;
s1 += s2;
- cout << "s1: ";
+ std::cout << "s1: ";
s1.show();
- cout << endl;
+ std::cout << std::endl;
- cout << endl;
+ std::cout << std::endl;
- cout << "s1: ";
+ std::cout << "s1: ";
s1.show();
- cout << endl << "s1 *= 2.0" << endl;
+ std::cout << std::endl << "s1 *= 2.0" << std::endl;
s1 *= 2.0;
- cout << "s1: ";
+ std::cout << "s1: ";
s1.show();
- cout << endl;
+ std::cout << std::endl;
- cout << endl;
+ std::cout << std::endl;
return 0;
}
diff --git a/sources/shiboken6/tests/libsample/mapuser.cpp b/sources/shiboken6/tests/libsample/mapuser.cpp
index e2a0f7181..40059bbcd 100644
--- a/sources/shiboken6/tests/libsample/mapuser.cpp
+++ b/sources/shiboken6/tests/libsample/mapuser.cpp
@@ -1,69 +1,44 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
-#include <iostream>
#include "mapuser.h"
-using namespace std;
+#include <iostream>
-std::map<std::string, std::pair<Complex, int> >
-MapUser::callCreateMap()
+std::map<std::string, std::pair<Complex, int> > MapUser::callCreateMap()
{
return createMap();
}
-
-std::map<std::string, std::pair<Complex, int> >
-MapUser::createMap()
+std::map<std::string, std::pair<Complex, int> > MapUser::createMap()
{
std::map<std::string, std::pair<Complex, int> > retval;
- std::pair<std::string, std::pair<Complex, int> >
- item0("zero", std::pair<Complex, int>(Complex(1.2, 3.4), 2));
- retval.insert(item0);
+ std::pair<Complex, int> value{Complex(1.2, 3.4), 2};
+ retval.insert({"zero", value});
- std::pair<std::string, std::pair<Complex, int> >
- item1("one", std::pair<Complex, int>(Complex(5.6, 7.8), 3));
- retval.insert(item1);
+ value = {Complex(5.6, 7.8), 3};
+ retval.insert({"one", value});
- std::pair<std::string, std::pair<Complex, int> >
- item2("two", std::pair<Complex, int>(Complex(9.1, 2.3), 5));
- retval.insert(item2);
+ value = {Complex(9.1, 2.3), 5};
+ retval.insert({"two", value});
return retval;
}
-void
-MapUser::showMap(std::map<std::string, int> mapping)
+void MapUser::showMap(std::map<std::string, int> mapping)
+{
+ std::cout << __FUNCTION__ << std::endl;
+ for (const auto &p : mapping)
+ std::cout << p.first << " => " << p.second << std::endl;
+}
+
+void MapUser::pointerToMap(std::map<std::string, std::string> *)
+{
+}
+
+void MapUser::referenceToMap(std::map<std::string, std::string> &)
{
- cout << __FUNCTION__ << endl;
- for (auto it = mapping.begin(), end = mapping.end(); it != end; ++it)
- cout << (*it).first << " => " << (*it).second << endl;
}
std::map<int, std::list<std::list<double> > > MapUser::foo() const
diff --git a/sources/shiboken6/tests/libsample/mapuser.h b/sources/shiboken6/tests/libsample/mapuser.h
index ad434b957..1677a4bfb 100644
--- a/sources/shiboken6/tests/libsample/mapuser.h
+++ b/sources/shiboken6/tests/libsample/mapuser.h
@@ -1,48 +1,26 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef MAPUSER_H
#define MAPUSER_H
+#include "libsamplemacros.h"
+
+#include "complex.h"
+#include "bytearray.h"
+
#include <map>
#include <list>
#include <utility>
#include <string>
-#include "complex.h"
-#include "bytearray.h"
-
-#include "libsamplemacros.h"
class LIBSAMPLE_API MapUser
{
public:
- MapUser() {}
- virtual ~MapUser() {}
+ LIBMINIMAL_DEFAULT_COPY_MOVE(MapUser)
+
+ MapUser() noexcept = default;
+ virtual ~MapUser() = default;
virtual std::map<std::string, std::pair<Complex, int> > createMap();
std::map<std::string, std::pair<Complex, int> > callCreateMap();
@@ -53,10 +31,10 @@ public:
inline std::map<std::string, std::list<int> > getMap() { return m_map; }
// Compile test
- static void pointerToMap(std::map<std::string, std::string>* arg) {}
- static void referenceToMap(std::map<std::string, std::string>& arg) {}
+ static void pointerToMap(std::map<std::string, std::string> *arg);
+ static void referenceToMap(std::map<std::string, std::string> &arg);
- inline const std::map<int, ByteArray>& passMapIntValueType(const std::map<int, ByteArray>& arg) { return arg; }
+ inline const std::map<int, ByteArray> &passMapIntValueType(const std::map<int, ByteArray>& arg) { return arg; }
std::map<int, std::list<std::list<double> > > foo() const;
diff --git a/sources/shiboken6/tests/libsample/modelindex.h b/sources/shiboken6/tests/libsample/modelindex.h
index dd3ddc089..48e1b7de3 100644
--- a/sources/shiboken6/tests/libsample/modelindex.h
+++ b/sources/shiboken6/tests/libsample/modelindex.h
@@ -1,57 +1,33 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef MODELINDEX_H
#define MODELINDEX_H
-#include "libsamplemacros.h"
-
class ModelIndex
{
public:
- ModelIndex() : m_value(0) {}
- ModelIndex(const ModelIndex& other) { m_value = other.m_value; }
+ ModelIndex() = default;
+
inline void setValue(int value) { m_value = value; }
inline int value() const { return m_value; }
- static int getValue(const ModelIndex& index) { return index.value(); }
+ static int getValue(const ModelIndex &index) { return index.value(); }
+
private:
- int m_value;
+ int m_value = 0;
};
class ReferentModelIndex
{
public:
- ReferentModelIndex() {}
- ReferentModelIndex(const ModelIndex& index) : m_index(index) {}
- ReferentModelIndex(const ReferentModelIndex& other) { m_index = other.m_index; }
+ ReferentModelIndex() = default;
+
+ explicit ReferentModelIndex(const ModelIndex &index) : m_index(index) {}
+
inline void setValue(int value) { m_index.setValue(value); }
inline int value() const { return m_index.value(); }
operator const ModelIndex&() const { return m_index; }
+
private:
ModelIndex m_index;
};
@@ -59,14 +35,16 @@ private:
class PersistentModelIndex
{
public:
- PersistentModelIndex() {}
- PersistentModelIndex(const ModelIndex& index) : m_index(index) {}
- PersistentModelIndex(const PersistentModelIndex& other) { m_index = other.m_index; }
+ PersistentModelIndex() = default;
+
+ explicit PersistentModelIndex(const ModelIndex &index) : m_index(index) {}
+
inline void setValue(int value) { m_index.setValue(value); }
inline int value() const { return m_index.value(); }
operator ModelIndex() const { return m_index; }
+
private:
ModelIndex m_index;
};
-#endif
+#endif // MODELINDEX_H
diff --git a/sources/shiboken6/tests/libsample/modifications.cpp b/sources/shiboken6/tests/libsample/modifications.cpp
index 627d17b45..6d627c4c1 100644
--- a/sources/shiboken6/tests/libsample/modifications.cpp
+++ b/sources/shiboken6/tests/libsample/modifications.cpp
@@ -1,40 +1,14 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
-#include <iostream>
#include "modifications.h"
#include "objecttype.h"
-using namespace std;
+#include <iostream>
Modifications::Modifications()
+ : m_object(new ObjectType())
{
- m_object = new ObjectType();
m_object->setObjectName("MyObject");
}
@@ -43,30 +17,87 @@ Modifications::~Modifications()
delete m_object;
}
-std::pair<double, double>
-Modifications::pointToPair(Point pt, bool* ok)
+Modifications::OverloadedModFunc Modifications::overloaded(int, bool, Point, Point)
+{
+ return Overloaded_ibPP;
+}
+
+Modifications::OverloadedModFunc Modifications::overloaded(int, bool, int, int)
+{
+ return Overloaded_ibii;
+}
+
+Modifications::OverloadedModFunc Modifications::overloaded(int, bool, int, Point)
+{
+ return Overloaded_ibiP;
+}
+
+Modifications::OverloadedModFunc Modifications::overloaded(int, bool, int, bool)
+{
+ return Overloaded_ibib;
+}
+
+Modifications::OverloadedModFunc Modifications::overloaded(int, bool, int, double)
+{
+ return Overloaded_ibid;
+}
+
+void Modifications::argRemoval0(int, bool, int, int)
+{
+}
+
+void Modifications::argRemoval0(int, bool, int, bool)
+{
+}
+
+void Modifications::argRemoval1(int, bool, Point, Point, int)
+{
+}
+
+void Modifications::argRemoval1(int, bool, int, bool)
+{
+}
+
+void Modifications::argRemoval2(int, bool, Point, Point, int)
+{
+}
+
+void Modifications::argRemoval3(int, Point, bool, Point, int)
+{
+}
+
+void Modifications::argRemoval4(int, Point, bool, Point, int)
+{
+}
+
+void Modifications::argRemoval5(int, bool, Point, Point, int)
+{
+}
+
+void Modifications::argRemoval5(int, bool, int, bool)
+{
+}
+
+std::pair<double, double> Modifications::pointToPair(Point pt, bool *ok)
{
std::pair<double, double> retval(pt.x(), pt.y());
*ok = true;
return retval;
}
-double
-Modifications::multiplyPointCoordsPlusValue(bool* ok, Point pt, double value)
+double Modifications::multiplyPointCoordsPlusValue(bool *ok, Point pt, double value)
{
double retval = (pt.x() * pt.y()) + value;
*ok = true;
return retval;
}
-int
-Modifications::doublePlus(int value, int plus)
+int Modifications::doublePlus(int value, int plus)
{
return (2 * value) + plus;
}
-int
-Modifications::power(int base, int exponent)
+int Modifications::power(int base, int exponent)
{
if (exponent == 0)
return 1;
@@ -76,38 +107,32 @@ Modifications::power(int base, int exponent)
return retval;
}
-int
-Modifications::timesTen(int number)
+int Modifications::timesTen(int number)
{
return number * 10;
}
-int
-Modifications::increment(int number)
+int Modifications::increment(int number)
{
return ++number;
}
-void
-Modifications::exclusiveCppStuff()
+void Modifications::exclusiveCppStuff()
{
- cout << __FUNCTION__ << endl;
+ std::cout << __FUNCTION__ << std::endl;
}
-int
-Modifications::cppMultiply(int a, int b)
+int Modifications::cppMultiply(int a, int b)
{
return a * b;
}
-const char*
-Modifications::className()
+const char *Modifications::className()
{
return "Modifications";
}
-Point
-Modifications::sumPointArray(int arraySize, const Point pointArray[])
+Point Modifications::sumPointArray(int arraySize, const Point pointArray[])
{
Point point;
for (int i = 0; i < arraySize; ++i)
@@ -115,21 +140,18 @@ Modifications::sumPointArray(int arraySize, const Point pointArray[])
return point;
}
-int
-Modifications::getSize(const void* data, int size)
+int Modifications::getSize(const void *data, int size)
{
(void)data;
return size;
}
-int
-Modifications::sumPointCoordinates(const Point* point)
+int Modifications::sumPointCoordinates(const Point *point)
{
return point->x() + point->y();
}
-double
-Modifications::differenceOfPointCoordinates(const Point* pt, bool* ok)
+double Modifications::differenceOfPointCoordinates(const Point *pt, bool *ok)
{
if (!pt) {
*ok = false;
@@ -142,8 +164,7 @@ Modifications::differenceOfPointCoordinates(const Point* pt, bool* ok)
return result;
}
-bool
-Modifications::nonConversionRuleForArgumentWithDefaultValue(ObjectType** object)
+bool Modifications::nonConversionRuleForArgumentWithDefaultValue(ObjectType **object)
{
if (object)
*object = m_object;
diff --git a/sources/shiboken6/tests/libsample/modifications.h b/sources/shiboken6/tests/libsample/modifications.h
index 888c66d18..5bd1bac47 100644
--- a/sources/shiboken6/tests/libsample/modifications.h
+++ b/sources/shiboken6/tests/libsample/modifications.h
@@ -1,44 +1,22 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef MODIFICATIONS_H
#define MODIFICATIONS_H
#include "libsamplemacros.h"
-#include <utility>
#include "point.h"
#include "oddbool.h"
+#include <utility>
+
class ObjectType;
class LIBSAMPLE_API Modifications
{
public:
+ LIBMINIMAL_DISABLE_COPY_MOVE(Modifications)
+
Modifications();
virtual ~Modifications();
@@ -58,34 +36,38 @@ public:
// those overloaded methods should be heavily modified
// to push the overload decisor to its limits
- inline OverloadedModFunc overloaded(int a0, bool b0, int c0, double d0) { return Overloaded_ibid; }
- inline OverloadedModFunc overloaded(int a1, bool b1, int c1, bool d1) { return Overloaded_ibib; }
- inline OverloadedModFunc overloaded(int a2, bool b2, int c2, Point d2) { return Overloaded_ibiP; }
- inline OverloadedModFunc overloaded(int a3, bool b3, int c3 = 123, int d3 = 456) { return Overloaded_ibii; }
- inline OverloadedModFunc overloaded(int a4, bool b4, Point c4, Point d4) { return Overloaded_ibPP; }
+ OverloadedModFunc overloaded(int a0, bool b0, int c0, double d0);
+ OverloadedModFunc overloaded(int a1, bool b1, int c1, bool d1);
+ OverloadedModFunc overloaded(int a2, bool b2, int c2, Point d2);
+ OverloadedModFunc overloaded(int a3, bool b3, int c3 = 123, int d3 = 456);
+ OverloadedModFunc overloaded(int a4, bool b4, Point c4, Point d4);
- inline void argRemoval0(int a0, bool a1, int a2 = 123, int a3 = 456) {}
- inline void argRemoval0(int a0, bool a1, int a2, bool a3) {}
+ void argRemoval0(int a0, bool a1, int a2 = 123, int a3 = 456);
+ void argRemoval0(int a0, bool a1, int a2, bool a3);
- inline void argRemoval1(int a0, bool a1, Point a2 = Point(1, 2), Point a3 = Point(3, 4), int a4 = 333) {}
- inline void argRemoval1(int a0, bool a1, int a2, bool a3) {}
+ void argRemoval1(int a0, bool a1, Point a2 = Point(1, 2), Point a3 = Point(3, 4),
+ int a4 = 333);
+ void argRemoval1(int a0, bool a1, int a2, bool a3);
- inline void argRemoval2(int a0, bool a1, Point a2 = Point(1, 2), Point a3 = Point(3, 4), int a4 = 333) {}
+ void argRemoval2(int a0, bool a1, Point a2 = Point(1, 2), Point a3 = Point(3, 4),
+ int a4 = 333);
- inline void argRemoval3(int a0, Point a1 = Point(1, 2), bool a2 = true, Point a3 = Point(3, 4), int a4 = 333) {}
+ void argRemoval3(int a0, Point a1 = Point(1, 2), bool a2 = true, Point a3 = Point(3, 4),
+ int a4 = 333);
- inline void argRemoval4(int a0, Point a1, bool a2, Point a3 = Point(3, 4), int a4 = 333) {}
+ void argRemoval4(int a0, Point a1, bool a2, Point a3 = Point(3, 4), int a4 = 333);
- inline void argRemoval5(int a0, bool a1, Point a2 = Point(1, 2), Point a3 = Point(3, 4), int a4 = 333) {}
- inline void argRemoval5(int a0, bool a1, int a2, bool a3) {}
+ void argRemoval5(int a0, bool a1, Point a2 = Point(1, 2), Point a3 = Point(3, 4),
+ int a4 = 333);
+ void argRemoval5(int a0, bool a1, int a2, bool a3);
// 'ok' must be removed and the return value will be changed
// to a tuple (PyObject*) containing the expected result plus
// the 'ok' value as a Python boolean
- std::pair<double, double> pointToPair(Point pt, bool* ok);
+ std::pair<double, double> pointToPair(Point pt, bool *ok);
// same as 'pointToPair' except that this time 'ok' is the first argument
- double multiplyPointCoordsPlusValue(bool* ok, Point pt, double value);
+ double multiplyPointCoordsPlusValue(bool *ok, Point pt, double value);
// completely remove 'plus' from the Python side
int doublePlus(int value, int plus = 0);
@@ -106,24 +88,25 @@ public:
int cppMultiply(int a, int b);
// change the name of this virtual method
- virtual const char* className();
+ virtual const char *className();
Point sumPointArray(int arraySize, const Point pointArray[]);
// Replace 'const void*' by 'ByteArray&'.
- int getSize(const void* data, int size);
+ int getSize(const void *data, int size);
// Mark the argument with a <no-null-pointer/> tag;
// the test implementation must expect point never to be null.
- int sumPointCoordinates(const Point* point);
+ int sumPointCoordinates(const Point *point);
// Modify the return value of a virtual method.
- virtual double differenceOfPointCoordinates(const Point* pt, bool* ok);
- double callDifferenceOfPointCoordinates(const Point* pt, bool* ok) { return differenceOfPointCoordinates(pt, ok); }
+ virtual double differenceOfPointCoordinates(const Point *pt, bool *ok);
+ double callDifferenceOfPointCoordinates(const Point *pt, bool *ok)
+ { return differenceOfPointCoordinates(pt, ok); }
// Sets an ObjectType in the argument and returns true.
bool nonConversionRuleForArgumentWithDefaultValue(ObjectType **object = nullptr);
- ObjectType* getObject() const { return m_object; }
+ ObjectType *getObject() const { return m_object; }
// Inject code with a %CONVERTTOPYTHON that receives an user's primitive type.
static inline OddBool passOddBool(OddBool ob) { return ob; }
@@ -139,7 +122,7 @@ public:
void notifySetAttroCalled();
private:
- ObjectType* m_object;
+ ObjectType *m_object;
TestEnum m_enumValue = TestEnumValue1;
bool m_getAttroCalled = false;
bool m_setAttroCalled = false;
@@ -148,8 +131,10 @@ private:
class LIBSAMPLE_API AbstractModifications : public Modifications
{
public:
- AbstractModifications() {}
- virtual ~AbstractModifications() {}
+ LIBMINIMAL_DISABLE_COPY_MOVE(AbstractModifications)
+
+ AbstractModifications() noexcept = default;
+ ~AbstractModifications() override = default;
inline bool invert(bool value) { return !value; }
diff --git a/sources/shiboken6/tests/libsample/modified_constructor.cpp b/sources/shiboken6/tests/libsample/modified_constructor.cpp
index 015cf4e80..c39c97738 100644
--- a/sources/shiboken6/tests/libsample/modified_constructor.cpp
+++ b/sources/shiboken6/tests/libsample/modified_constructor.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "modified_constructor.h"
@@ -33,8 +8,7 @@ ModifiedConstructor::ModifiedConstructor(int first_arg)
m_stored_value = first_arg;
}
-int
-ModifiedConstructor::retrieveValue()
+int ModifiedConstructor::retrieveValue() const
{
return m_stored_value;
}
diff --git a/sources/shiboken6/tests/libsample/modified_constructor.h b/sources/shiboken6/tests/libsample/modified_constructor.h
index ccf23a1a3..a27899f3f 100644
--- a/sources/shiboken6/tests/libsample/modified_constructor.h
+++ b/sources/shiboken6/tests/libsample/modified_constructor.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef MODIFIEDCONSTRUCTOR_H
#define MODIFIEDCONSTRUCTOR_H
@@ -35,8 +10,8 @@ class LIBSAMPLE_API ModifiedConstructor
{
public:
- ModifiedConstructor(int first_arg);
- int retrieveValue();
+ explicit ModifiedConstructor(int first_arg);
+ int retrieveValue() const;
private:
int m_stored_value;
diff --git a/sources/shiboken6/tests/libsample/multiple_derived.cpp b/sources/shiboken6/tests/libsample/multiple_derived.cpp
index 2c6a0b8bb..be535c62f 100644
--- a/sources/shiboken6/tests/libsample/multiple_derived.cpp
+++ b/sources/shiboken6/tests/libsample/multiple_derived.cpp
@@ -1,64 +1,24 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "multiple_derived.h"
-MDerived1::MDerived1() : m_value(100)
-{
-}
+MDerived1::MDerived1() noexcept = default;
-MDerived2::MDerived2() : m_value(200)
-{
-}
+MDerived2::MDerived2() noexcept = default;
-MDerived3::MDerived3() : m_value(3000)
-{
-}
+MDerived3::MDerived3() noexcept = default;
-MDerived4::MDerived4()
-{
-}
+MDerived4::MDerived4() noexcept = default;
-MDerived5::MDerived5()
-{
-}
+MDerived5::MDerived5() noexcept = default;
-MDerived1*
-MDerived1::transformFromBase1(Base1* self)
+MDerived1 *MDerived1::transformFromBase1(Base1 *self)
{
- MDerived1* ptr = dynamic_cast<MDerived1*>(self);
- return ptr;
+ return dynamic_cast<MDerived1*>(self);
}
-MDerived1*
-MDerived1::transformFromBase2(Base2* self)
+MDerived1 *MDerived1::transformFromBase2(Base2 *self)
{
- MDerived1* ptr = dynamic_cast<MDerived1*>(self);
- return ptr;
+ return dynamic_cast<MDerived1*>(self);
}
-
diff --git a/sources/shiboken6/tests/libsample/multiple_derived.h b/sources/shiboken6/tests/libsample/multiple_derived.h
index b551eda74..8c2143ed6 100644
--- a/sources/shiboken6/tests/libsample/multiple_derived.h
+++ b/sources/shiboken6/tests/libsample/multiple_derived.h
@@ -1,99 +1,90 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef MDERIVED_H
#define MDERIVED_H
#include "libsamplemacros.h"
+
#include <string>
class Base1
{
public:
- Base1() : m_value(1) {}
- virtual ~Base1() {}
+ LIBMINIMAL_DISABLE_COPY_MOVE(Base1)
+
+ Base1() noexcept = default;
+ virtual ~Base1() = default;
+
virtual int base1Method() { return m_value; }
virtual void publicMethod() {};
+
private:
- int m_value;
+ int m_value = 1;
};
class Base2
{
public:
- Base2() : m_value(2) {}
- virtual ~Base2() {}
+ LIBMINIMAL_DISABLE_COPY_MOVE(Base2)
+
+ Base2() noexcept = default;
+ virtual ~Base2() = default;
virtual int base2Method() { return m_value; }
+
private:
- int m_value;
+ int m_value = 2;
};
class LIBSAMPLE_API MDerived1 : public Base1, public Base2
{
public:
- MDerived1();
- ~MDerived1() override {}
+ LIBMINIMAL_DISABLE_COPY_MOVE(MDerived1)
+
+ MDerived1() noexcept;
+ ~MDerived1() override = default;
int mderived1Method() { return m_value; }
int base1Method () override { return Base1::base1Method() * 10; }
int base2Method() override { return Base2::base2Method() * 10; }
- inline Base1* castToBase1() { return (Base1*) this; }
- inline Base2* castToBase2() { return (Base2*) this; }
+ inline Base1 *castToBase1() { return (Base1*) this; }
+ inline Base2 *castToBase2() { return (Base2*) this; }
- static MDerived1* transformFromBase1(Base1 *self);
- static MDerived1* transformFromBase2(Base2 *self);
+ static MDerived1 *transformFromBase1(Base1 *self);
+ static MDerived1 *transformFromBase2(Base2 *self);
private:
void publicMethod() override {}
- int m_value;
+ int m_value = 100;
};
class SonOfMDerived1 : public MDerived1
{
public:
- SonOfMDerived1() : m_value(0) {}
- ~SonOfMDerived1() {}
+ LIBMINIMAL_DISABLE_COPY_MOVE(SonOfMDerived1)
+
+ SonOfMDerived1() noexcept = default;
+ ~SonOfMDerived1() = default;
- inline MDerived1* castToMDerived1() { return (MDerived1*) this; }
+ inline MDerived1 *castToMDerived1() { return this; }
int sonOfMDerived1Method() { return m_value; }
+
private:
- int m_value;
+ int m_value = 0;
};
class Base3
{
public:
- explicit Base3(int val = 3) : m_value(val) {}
- virtual ~Base3() {}
+ LIBMINIMAL_DISABLE_COPY_MOVE(Base3)
+
+ explicit Base3(int val = 3) noexcept : m_value(val) {}
+ virtual ~Base3() = default;
int base3Method() { return m_value; }
+
private:
int m_value;
};
@@ -101,80 +92,95 @@ private:
class Base4
{
public:
- Base4() : m_value(4) {}
- virtual ~Base4() {}
+ LIBMINIMAL_DISABLE_COPY_MOVE(Base4)
+
+ Base4() noexcept = default;
+ virtual ~Base4() = default;
int base4Method() { return m_value; }
+
private:
- int m_value;
+ int m_value = 4;
};
class Base5
{
public:
- Base5() : m_value(5) {}
- virtual ~Base5() {}
+ LIBMINIMAL_DISABLE_COPY_MOVE(Base5)
+
+ Base5() noexcept = default;
+ virtual ~Base5() = default;
virtual int base5Method() { return m_value; }
+
private:
- int m_value;
+ int m_value = 5;
};
class Base6
{
public:
- Base6() : m_value(6) {}
- virtual ~Base6() {}
+ LIBMINIMAL_DISABLE_COPY_MOVE(Base6)
+
+ Base6() noexcept = default;
+ virtual ~Base6() = default;
virtual int base6Method() { return m_value; }
+
private:
- int m_value;
+ int m_value = 6;
};
-
class LIBSAMPLE_API MDerived2 : public Base3, public Base4, public Base5, public Base6
{
public:
- MDerived2();
- virtual ~MDerived2() {}
+ LIBMINIMAL_DISABLE_COPY_MOVE(MDerived2)
+
+ MDerived2() noexcept;
+ virtual ~MDerived2() = default;
inline int base4Method() { return Base3::base3Method() * 10; }
inline int mderived2Method() { return m_value; }
- inline Base3* castToBase3() { return (Base3*) this; }
- inline Base4* castToBase4() { return (Base4*) this; }
- inline Base5* castToBase5() { return (Base5*) this; }
- inline Base6* castToBase6() { return (Base6*) this; }
+ inline Base3 *castToBase3() { return this; }
+ inline Base4 *castToBase4() { return this; }
+ inline Base5 *castToBase5() { return this; }
+ inline Base6 *castToBase6() { return this; }
private:
- int m_value;
+ int m_value = 200;
};
class LIBSAMPLE_API MDerived3 : public MDerived1, public MDerived2
{
public:
- MDerived3();
- virtual ~MDerived3() {}
+ LIBMINIMAL_DISABLE_COPY_MOVE(MDerived3)
+
+ MDerived3() noexcept;
+ virtual ~MDerived3() = default;
inline virtual int mderived3Method() { return m_value; }
- inline MDerived1* castToMDerived1() { return (MDerived1*) this; }
- inline MDerived2* castToMDerived2() { return (MDerived2*) this; }
+ inline MDerived1 *castToMDerived1() { return this; }
+ inline MDerived2 *castToMDerived2() { return this; }
- inline Base3* castToBase3() { return (Base3*) this; }
+ inline Base3 *castToBase3() { return (Base3*) this; }
private:
- int m_value;
+ int m_value = 3000;
};
class LIBSAMPLE_API MDerived4 : public Base3, public Base4
{
public:
- MDerived4();
- ~MDerived4() {}
+ LIBMINIMAL_DISABLE_COPY_MOVE(MDerived4)
+
+ MDerived4() noexcept;
+ ~MDerived4() = default;
inline int mderived4Method() { return 0; }
inline int justDummyMethod() { return m_value; }
- inline Base3* castToBase3() { return (Base3*) this; }
- inline Base4* castToBase4() { return (Base4*) this; }
+ inline Base3 *castToBase3() { return this; }
+ inline Base4 *castToBase4() { return this; }
+
private:
int m_value;
};
@@ -182,14 +188,15 @@ private:
class LIBSAMPLE_API MDerived5 : public Base3, public Base4
{
public:
- MDerived5();
- virtual ~MDerived5() {}
+ LIBMINIMAL_DISABLE_COPY_MOVE(MDerived5)
+
+ MDerived5() noexcept;
+ virtual ~MDerived5() = default;
virtual int mderived5Method() { return 0; }
- inline Base3* castToBase3() { return (Base3*) this; }
- inline Base4* castToBase4() { return (Base4*) this; }
+ inline Base3 *castToBase3() { return this; }
+ inline Base4 *castToBase4() { return this; }
};
#endif // MDERIVED_H
-
diff --git a/sources/shiboken6/tests/libsample/noimplicitconversion.h b/sources/shiboken6/tests/libsample/noimplicitconversion.h
index 3173f4609..a0b91380b 100644
--- a/sources/shiboken6/tests/libsample/noimplicitconversion.h
+++ b/sources/shiboken6/tests/libsample/noimplicitconversion.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef NOIMPLICITCONVERSION_H
#define NOIMPLICITCONVERSION_H
@@ -38,9 +13,12 @@ class NoImplicitConversion
public:
explicit NoImplicitConversion(int objId) : m_objId(objId) {}
inline int objId() const { return m_objId; }
- inline static int receivesNoImplicitConversionByValue(NoImplicitConversion arg) { return arg.m_objId; }
- inline static int receivesNoImplicitConversionByPointer(NoImplicitConversion* arg) { return arg->m_objId; }
- inline static int receivesNoImplicitConversionByReference(NoImplicitConversion& arg) { return arg.m_objId; }
+ inline static int receivesNoImplicitConversionByValue(NoImplicitConversion arg)
+ { return arg.m_objId; }
+ inline static int receivesNoImplicitConversionByPointer(NoImplicitConversion *arg)
+ { return arg->m_objId; }
+ inline static int receivesNoImplicitConversionByReference(NoImplicitConversion &arg)
+ { return arg.m_objId; }
private:
int m_objId;
};
diff --git a/sources/shiboken6/tests/libsample/nondefaultctor.h b/sources/shiboken6/tests/libsample/nondefaultctor.h
index bfdcbcf5b..fa97b8859 100644
--- a/sources/shiboken6/tests/libsample/nondefaultctor.h
+++ b/sources/shiboken6/tests/libsample/nondefaultctor.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef NONDEFAULTCTOR_H
#define NONDEFAULTCTOR_H
@@ -33,13 +8,16 @@
class NonDefaultCtor
{
- int m_value;
public:
- NonDefaultCtor(int value) : m_value(value)
+ LIBMINIMAL_DEFAULT_COPY_MOVE(NonDefaultCtor)
+
+ explicit NonDefaultCtor(int value) noexcept : m_value(value)
{
}
- inline int value()
+ virtual ~NonDefaultCtor() = default;
+
+ inline int value() const
{
return m_value;
}
@@ -69,7 +47,8 @@ public:
return returnMyselfVirtual();
}
- virtual ~NonDefaultCtor() {}
+private:
+ int m_value;
};
-#endif
+#endif // NONDEFAULTCTOR_H
diff --git a/sources/shiboken6/tests/libsample/nontypetemplate.h b/sources/shiboken6/tests/libsample/nontypetemplate.h
index 5a9e670c6..e41c21604 100644
--- a/sources/shiboken6/tests/libsample/nontypetemplate.h
+++ b/sources/shiboken6/tests/libsample/nontypetemplate.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef NONTYPETEMPLATE_H
#define NONTYPETEMPLATE_H
@@ -46,7 +21,7 @@ private:
int m_array[Size];
};
-typedef IntArray<2> IntArray2;
-typedef IntArray<3> IntArray3;
+using IntArray2 = IntArray<2>;
+using IntArray3 = IntArray<3>;
#endif // NONTYPETEMPLATE_H
diff --git a/sources/shiboken6/tests/libsample/null.h b/sources/shiboken6/tests/libsample/null.h
index ea34ff5a0..945a89fa2 100644
--- a/sources/shiboken6/tests/libsample/null.h
+++ b/sources/shiboken6/tests/libsample/null.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef NULL_H
#define NULL_H
@@ -33,12 +8,12 @@ class Null
{
public:
Null(bool value) : m_isNull(value) {}
- Null() : m_isNull(false) {}
+ Null() = default;
+
void setIsNull(bool flag) { m_isNull = flag; }
private:
- bool m_isNull;
+ bool m_isNull = false;
};
-#endif // STR_H
-
+#endif // NULL_H
diff --git a/sources/shiboken6/tests/libsample/objectmodel.cpp b/sources/shiboken6/tests/libsample/objectmodel.cpp
index c92fb2ec2..56ed86577 100644
--- a/sources/shiboken6/tests/libsample/objectmodel.cpp
+++ b/sources/shiboken6/tests/libsample/objectmodel.cpp
@@ -1,42 +1,24 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "objectmodel.h"
-void
-ObjectModel::setData(ObjectType* data)
+void ObjectModel::setData(ObjectType *data)
{
m_data = data;
}
-ObjectType*
-ObjectModel::data() const
+ObjectType *ObjectModel::data() const
{
return m_data;
}
+ObjectModel::MethodCalled ObjectModel::receivesObjectTypeFamily(const ObjectModel &)
+{
+ return ObjectModel::ObjectModelCalled;
+}
+
+ObjectModel::MethodCalled ObjectModel::receivesObjectTypeFamily(const ObjectType &)
+{
+ return ObjectModel::ObjectTypeCalled;
+}
diff --git a/sources/shiboken6/tests/libsample/objectmodel.h b/sources/shiboken6/tests/libsample/objectmodel.h
index 1890ac47f..6d2f97aee 100644
--- a/sources/shiboken6/tests/libsample/objectmodel.h
+++ b/sources/shiboken6/tests/libsample/objectmodel.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef OBJECTMODEL_H
#define OBJECTMODEL_H
@@ -36,23 +11,21 @@ class LIBSAMPLE_API ObjectModel : public ObjectType
{
public:
explicit ObjectModel(ObjectType *parent = nullptr)
- : ObjectType(parent), m_data(nullptr)
- {}
+ : ObjectType(parent) {}
- void setData(ObjectType* data);
- virtual ObjectType* data() const;
+ void setData(ObjectType *data);
+ virtual ObjectType *data() const;
// The MethodCalled enum and related static methods were created to
// test bug #630 [http://bugs.openbossa.org/show_bug.cgi?id=630]
enum MethodCalled { ObjectTypeCalled, ObjectModelCalled };
- static MethodCalled receivesObjectTypeFamily(const ObjectType& object) { return ObjectModel::ObjectTypeCalled; }
- static MethodCalled receivesObjectTypeFamily(const ObjectModel& object) { return ObjectModel::ObjectModelCalled; }
+ static MethodCalled receivesObjectTypeFamily(const ObjectType &object);
+ static MethodCalled receivesObjectTypeFamily(const ObjectModel &object);
private:
// The model holds only one piece of data.
// (This is just a test after all.)
- ObjectType* m_data;
+ ObjectType *m_data = nullptr;
};
#endif // OBJECTMODEL_H
-
diff --git a/sources/shiboken6/tests/libsample/objecttype.cpp b/sources/shiboken6/tests/libsample/objecttype.cpp
index e5926d0c2..fa3e7357c 100644
--- a/sources/shiboken6/tests/libsample/objecttype.cpp
+++ b/sources/shiboken6/tests/libsample/objecttype.cpp
@@ -1,71 +1,38 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "objecttype.h"
#include "objecttypelayout.h"
+
#include <algorithm>
#include <iostream>
#include <string>
#include <assert.h>
-#include <algorithm>
-
-using namespace std;
-
-ObjectType::ObjectType(ObjectType* parent) : m_parent(nullptr), m_layout(nullptr), m_call_id(-1)
+ObjectType::ObjectType(ObjectType *parent)
{
setParent(parent);
}
+ObjectType::ObjectType(ObjectType &&) noexcept = default;
+ObjectType &ObjectType::operator=(ObjectType &&) noexcept = default;
+
ObjectType::~ObjectType()
{
for (auto *o : m_children)
delete o;
}
-ObjectType*
-ObjectType::createWithChild()
+ObjectType *ObjectType::createWithChild()
{
- ObjectType* parent = create();
- ObjectType* child = create();
+ ObjectType *parent = create();
+ ObjectType *child = create();
child->setObjectName("child");
child->setParent(parent);
return parent;
}
-const ObjectType *ObjectType::defaultInstance()
-{
- static ObjectType result;
- return &result;
-}
-
-void
-ObjectType::removeChild(ObjectType* child)
+void ObjectType::removeChild(ObjectType *child)
{
if (!child)
return;
@@ -77,8 +44,7 @@ ObjectType::removeChild(ObjectType* child)
}
}
-ObjectType*
-ObjectType::takeChild(ObjectType* child)
+ObjectType *ObjectType::takeChild(ObjectType *child)
{
if (!child)
return nullptr;
@@ -92,8 +58,7 @@ ObjectType::takeChild(ObjectType* child)
return nullptr;
}
-ObjectType*
-ObjectType::takeChild(const Str& name)
+ObjectType *ObjectType::takeChild(const Str &name)
{
return takeChild(findChild(name));
@@ -107,15 +72,13 @@ ObjectTypeList::iterator ObjectType::findChildByName(const Str &name)
});
}
-ObjectType*
-ObjectType::findChild(const Str& name)
+ObjectType *ObjectType::findChild(const Str &name)
{
auto it = findChildByName(name);
return it != m_children.end() ? *it : nullptr;
}
-void
-ObjectType::killChild(const Str& name)
+void ObjectType::killChild(const Str &name)
{
auto it = findChildByName(name);
if (it != m_children.end()) {
@@ -125,8 +88,7 @@ ObjectType::killChild(const Str& name)
}
}
-void
-ObjectType::setParent(ObjectType* parent)
+void ObjectType::setParent(ObjectType *parent)
{
if (m_parent == parent)
return;
@@ -139,33 +101,28 @@ ObjectType::setParent(ObjectType* parent)
m_parent->m_children.push_back(this);
}
-void
-ObjectType::setObjectName(const Str& name)
+void ObjectType::setObjectName(const Str &name)
{
m_objectName = name;
}
-Str
-ObjectType::objectName() const
+Str ObjectType::objectName() const
{
return m_objectName;
}
-bool
-ObjectType::causeEvent(Event::EventType eventType)
+bool ObjectType::causeEvent(Event::EventType eventType)
{
Event e(eventType);
return event(&e);
}
-bool
-ObjectType::event(Event* event)
+bool ObjectType::event(Event *)
{
return true;
}
-int
-ObjectType::processEvent(ObjectTypeList objects, Event *event)
+int ObjectType::processEvent(ObjectTypeList objects, Event *event)
{
return std::count_if(objects.begin(), objects.end(),
[event] (ObjectType *o) {
@@ -173,38 +130,43 @@ ObjectType::processEvent(ObjectTypeList objects, Event *event)
});
}
-void
-ObjectType::callInvalidateEvent(Event* event)
+void ObjectType::callInvalidateEvent(Event *event)
{
invalidateEvent(event);
}
-void
-ObjectType::setLayout(ObjectTypeLayout* l)
+void ObjectType::invalidateEvent(Event *)
+{
+}
+
+void ObjectType::setLayout(ObjectTypeLayout *l)
{
if (!l) {
- cerr << "[WARNING] ObjectType::setLayout: Cannot set layout to 0." << endl;
+ std::cerr << "[WARNING] ObjectType::setLayout: Cannot set layout to 0.\n";
return;
}
if (layout()) {
if (layout() != l) {
- cerr << "[WARNING] ObjectType::setLayout: Attempting to set ObjectTypeLayout '" << l->objectName().cstring();
- cerr << "' on ObjectType '" << objectName().cstring() << "', which already has a layout." << endl;
+ std::cerr << "[WARNING] ObjectType::setLayout: Attempting to set ObjectTypeLayout '"
+ << l->objectName().cstring()
+ << "' on ObjectType '" << objectName().cstring()
+ << "', which already has a layout.\n";
}
return;
}
- ObjectType* oldParent = l->parent();
+ ObjectType *oldParent = l->parent();
if (oldParent && oldParent != this) {
if (oldParent->isLayoutType()) {
- cerr << "[WARNING] ObjectType::setLayout: Attempting to set ObjectTypeLayout '" << l->objectName().cstring();
- cerr << "' on ObjectType '" << objectName().cstring() << "', when the ObjectTypeLayout already has a parent layout." << endl;
+ std::cerr << "[WARNING] ObjectType::setLayout: Attempting to set ObjectTypeLayout '"
+ << l->objectName().cstring()
+ << "' on ObjectType '" << objectName().cstring()
+ << "', when the ObjectTypeLayout already has a parent layout.\n";
return;
- } else {
- // Steal the layout from an ObjectType parent.
- oldParent->takeLayout();
}
+ // Steal the layout from an ObjectType parent.
+ oldParent->takeLayout();
}
m_layout = l;
@@ -214,9 +176,9 @@ ObjectType::setLayout(ObjectTypeLayout* l)
}
}
-ObjectTypeLayout* ObjectType::takeLayout()
+ObjectTypeLayout *ObjectType::takeLayout()
{
- ObjectTypeLayout* l = layout();
+ ObjectTypeLayout *l = layout();
if (!l)
return nullptr;
m_layout = nullptr;
@@ -224,39 +186,35 @@ ObjectTypeLayout* ObjectType::takeLayout()
return l;
}
-unsigned int
-objectTypeHash(const ObjectType* objectType)
+unsigned int objectTypeHash(const ObjectType *objectType)
{
return reinterpret_cast<std::size_t>(objectType);
}
-unsigned char
-ObjectType::callWithEnum(const Str& prefix, Event::EventType type, unsigned char value){
- return value*value;
+unsigned char ObjectType::callWithEnum(const Str &, Event::EventType, unsigned char value)
+{
+ return value * value;
}
-unsigned char
-ObjectType::callWithEnum(const Str& prefix, unsigned char value) {
+unsigned char ObjectType::callWithEnum(const Str &, unsigned char value)
+{
return value;
}
-void
-ObjectType::setObjectSplittedName(const char*, const Str& prefix, const Str& suffix)
+void ObjectType::setObjectSplittedName(const char *, const Str &prefix, const Str &suffix)
{
std::string result(prefix.cstring());
result += suffix.cstring();
m_objectName = result.c_str();
}
-void
-ObjectType::setObjectNameWithSize(const char*, int size, const Str& name)
+void ObjectType::setObjectNameWithSize(const char *, int size, const Str &name)
{
std::string result(name.cstring(), size);
m_objectName = result.c_str();
}
-void
-ObjectType::setObjectNameWithSize(const Str& name, int size)
+void ObjectType::setObjectNameWithSize(const Str &name, int size)
{
setObjectNameWithSize("", size, name);
}
@@ -276,37 +234,31 @@ int ObjectType::callId() const
return m_call_id;
}
-
void ObjectType::callVirtualCreateChild()
{
- ObjectType* fake_parent = new ObjectType();
- ObjectType* fake_child = createChild(fake_parent);
+ auto *fake_parent = new ObjectType();
+ ObjectType *fake_child = createChild(fake_parent);
assert(fake_child->isPython());
(void)fake_child;
delete fake_parent;
}
-ObjectType* ObjectType::createChild(ObjectType* parent)
+ObjectType *ObjectType::createChild(ObjectType *parent)
{
return new ObjectType(parent);
}
std::size_t ObjectType::createObjectType()
{
- void* addr = new ObjectType();
+ void *addr = new ObjectType();
return (std::size_t) addr;
}
-OtherBase::~OtherBase()
-{
-}
+OtherBase::~OtherBase() = default;
-ObjectTypeDerived::~ObjectTypeDerived()
-{
-}
+ObjectTypeDerived::~ObjectTypeDerived() = default;
-bool
-ObjectTypeDerived::event(Event* event)
+bool ObjectTypeDerived::event(Event *)
{
return true;
}
diff --git a/sources/shiboken6/tests/libsample/objecttype.h b/sources/shiboken6/tests/libsample/objecttype.h
index 5863d5f2d..498556459 100644
--- a/sources/shiboken6/tests/libsample/objecttype.h
+++ b/sources/shiboken6/tests/libsample/objecttype.h
@@ -1,41 +1,15 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef OBJECTTYPE_H
#define OBJECTTYPE_H
-#include <list>
#include "str.h"
#include "null.h"
#include "libsamplemacros.h"
-#include <stddef.h>
+#include <list>
struct Event
{
@@ -51,11 +25,12 @@ struct Event
Value2
};
- Event(EventType eventType) : m_eventType(eventType) {}
- EventType eventType() { return m_eventType; }
+ explicit Event(EventType eventType) : m_eventType(eventType) {}
+ EventType eventType() const { return m_eventType; }
void setEventType(EventType et) { m_eventType = et; }
void setEventTypeByConstRef(const EventType &et) { m_eventType = et; }
+ void setEventTypeByConstPtr(const EventType *etPtr) { m_eventType = *etPtr; }
private:
EventType m_eventType;
@@ -73,67 +48,72 @@ public:
explicit ObjectType(ObjectType *parent = nullptr);
virtual ~ObjectType();
+ ObjectType(const ObjectType &) = delete;
+ ObjectType &operator=(const ObjectType &) = delete;
+ ObjectType(ObjectType &&) noexcept;
+ ObjectType &operator=(ObjectType &&) noexcept;
// factory method
- inline static ObjectType* create() { return new ObjectType(); }
- static ObjectType* createWithChild();
-
- static const ObjectType *defaultInstance();
-
- void setParent(ObjectType* parent);
- inline ObjectType* parent() const { return m_parent; }
- inline const ObjectTypeList& children() const { return m_children; }
- void killChild(const Str& name);
- void removeChild(ObjectType* child);
- ObjectType* takeChild(ObjectType* child);
- virtual ObjectType* takeChild(const Str& name);
- ObjectType* findChild(const Str& name);
+ inline static ObjectType *create() { return new ObjectType(); }
+ static ObjectType *createWithChild();
+
+ void setParent(ObjectType *parent);
+ inline ObjectType *parent() const { return m_parent; }
+ inline const ObjectTypeList &children() const { return m_children; }
+ void killChild(const Str &name);
+ void removeChild(ObjectType *child);
+ ObjectType *takeChild(ObjectType *child);
+ virtual ObjectType *takeChild(const Str &name);
+ ObjectType *findChild(const Str &name);
Str objectName() const;
- void setObjectName(const Str& name);
+ void setObjectName(const Str &name);
inline Identifier identifier() const { return reinterpret_cast<Identifier>(this); }
bool causeEvent(Event::EventType eventType);
// Returns true if the event is processed.
- virtual bool event(Event* event);
+ virtual bool event(Event *event);
static int processEvent(ObjectTypeList objects, Event *event);
- void callInvalidateEvent(Event* event);
- virtual void invalidateEvent(Event* event) {}
+ void callInvalidateEvent(Event *event);
+ virtual void invalidateEvent(Event *event);
// This nonsense method emulate QWidget.setLayout method
// All layout objects will became children of this object.
- void setLayout(ObjectTypeLayout* layout);
- inline ObjectTypeLayout* layout() const { return m_layout; }
+ void setLayout(ObjectTypeLayout *layout);
+ inline ObjectTypeLayout *layout() const { return m_layout; }
// This method should be reimplemented by ObjectTypeLayout.
virtual bool isLayoutType() { return false; }
- unsigned char callWithEnum(const Str& prefix, Event::EventType type, unsigned char value=80);
- unsigned char callWithEnum(const Str& prefix, unsigned char value=0);
+ unsigned char callWithEnum(const Str &prefix, Event::EventType type,
+ unsigned char value=80);
+ unsigned char callWithEnum(const Str &prefix, unsigned char value=0);
//Functions used in test with named arguments
- void setObjectSplittedName(const char*, const Str& prefix = Str("<unk"), const Str& suffix = Str("nown>"));
- void setObjectNameWithSize(const char*, int size=9, const Str& name = Str("<unknown>"));
- void setObjectNameWithSize(const Str& name = Str("<unknown>"), int size=9);
+ void setObjectSplittedName(const char *, const Str &prefix = Str("<unk"),
+ const Str &suffix = Str("nown>"));
+ void setObjectNameWithSize(const char *, int size=9,
+ const Str &name = Str("<unknown>"));
+ void setObjectNameWithSize(const Str &name = Str("<unknown>"), int size = 9);
//Function used to confuse the generator when two values accept Null as arg
void setObject(ObjectType *);
- void setObject(const Null&);
+ void setObject(const Null &);
int callId() const;
//Function used to create a parent from C++
virtual bool isPython() { return false; }
void callVirtualCreateChild();
- virtual ObjectType* createChild(ObjectType* parent);
+ virtual ObjectType *createChild(ObjectType *parent);
static std::size_t createObjectType();
//return a parent from C++
- ObjectType* getCppParent() {
+ ObjectType *getCppParent() {
if (!m_parent) {
- ObjectType* parent = new ObjectType();
+ ObjectType *parent = new ObjectType();
setParent(parent);
}
return m_parent;
@@ -148,41 +128,39 @@ public:
// nextInFocusChain simply returns the parent to test object cycles; the parent
// may be returned by the QWidget's implementation but isn't always returned
- ObjectType* nextInFocusChain() { return m_parent; }
+ ObjectType *nextInFocusChain() { return m_parent; }
private:
- ObjectType(const ObjectType&);
- ObjectType& operator=(const ObjectType&);
-
- ObjectTypeLayout* takeLayout();
+ ObjectTypeLayout *takeLayout();
ObjectTypeList::iterator findChildByName(const Str &name);
Str m_objectName;
- ObjectType* m_parent;
+ ObjectType *m_parent = nullptr;
ObjectTypeList m_children;
- ObjectTypeLayout* m_layout;
-
-
+ ObjectTypeLayout *m_layout = nullptr;
//used on overload null test
- int m_call_id;
+ int m_call_id = -1;
};
-LIBSAMPLE_API unsigned int objectTypeHash(const ObjectType* objectType);
+LIBSAMPLE_API unsigned int objectTypeHash(const ObjectType *objectType);
class LIBSAMPLE_API OtherBase {
public:
- OtherBase() {};
+ LIBMINIMAL_DISABLE_COPY_MOVE(OtherBase)
+
+ OtherBase() noexcept = default;
virtual ~OtherBase();
};
class LIBSAMPLE_API ObjectTypeDerived: public ObjectType, public OtherBase {
public:
- ObjectTypeDerived(): ObjectType(), OtherBase() {};
+ LIBMINIMAL_DISABLE_COPY_MOVE(ObjectTypeDerived)
- bool event(Event* event) override;
+ ObjectTypeDerived() noexcept = default;
+
+ bool event(Event *event) override;
~ObjectTypeDerived() override;
};
#endif // OBJECTTYPE_H
-
diff --git a/sources/shiboken6/tests/libsample/objecttypebyvalue.h b/sources/shiboken6/tests/libsample/objecttypebyvalue.h
index 64fa78c83..7b12ff945 100644
--- a/sources/shiboken6/tests/libsample/objecttypebyvalue.h
+++ b/sources/shiboken6/tests/libsample/objecttypebyvalue.h
@@ -1,46 +1,31 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef OBJECTTYPEBYVALUE_H
#define OBJECTTYPEBYVALUE_H
-#include <list>
+
#include "protected.h"
+#include <list>
+
class ObjectTypeByValue
{
public:
- ObjectTypeByValue returnSomeKindOfMe() { return ObjectTypeByValue(); }
- void acceptKindOfMeAsValue(ObjectTypeByValue kindOfMe) {}
+ ObjectTypeByValue returnSomeKindOfMe() { return {}; }
+ void acceptKindOfMeAsValue(ObjectTypeByValue kindOfMe);
- void acceptListOfObjectTypeByValue(std::list<ObjectTypeByValue> listOfMe) {}
+ void acceptListOfObjectTypeByValue(std::list<ObjectTypeByValue> listOfMe);
// prop used to check for segfaults
ProtectedProperty prop;
};
-#endif
+inline void ObjectTypeByValue::acceptKindOfMeAsValue(ObjectTypeByValue)
+{
+}
+
+inline void ObjectTypeByValue::acceptListOfObjectTypeByValue(std::list<ObjectTypeByValue>)
+{
+}
+
+#endif // OBJECTTYPEBYVALUE_H
diff --git a/sources/shiboken6/tests/libsample/objecttypeholder.cpp b/sources/shiboken6/tests/libsample/objecttypeholder.cpp
index be225a0d2..c0950d09c 100644
--- a/sources/shiboken6/tests/libsample/objecttypeholder.cpp
+++ b/sources/shiboken6/tests/libsample/objecttypeholder.cpp
@@ -1,41 +1,16 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "objecttypeholder.h"
-ObjectTypeHolder::ObjectTypeHolder(const char* objectName)
+ObjectTypeHolder::ObjectTypeHolder(const char *objectName)
{
- auto object = new ObjectType();
+ auto *object = new ObjectType();
object->setObjectName(objectName);
m_objectType = object;
}
-ObjectTypeHolder::ObjectTypeHolder(const ObjectType *object) :
+ObjectTypeHolder::ObjectTypeHolder(const ObjectType *object) noexcept :
m_objectType(object)
{
}
@@ -45,14 +20,12 @@ ObjectTypeHolder::~ObjectTypeHolder()
delete m_objectType;
}
-Str
-ObjectTypeHolder::passObjectTypeAsReference(const ObjectType& objectType)
+Str ObjectTypeHolder::passObjectTypeAsReference(const ObjectType &objectType)
{
return objectType.objectName();
}
-Str
-ObjectTypeHolder::callPassObjectTypeAsReference()
+Str ObjectTypeHolder::callPassObjectTypeAsReference()
{
return passObjectTypeAsReference(*m_objectType);
}
diff --git a/sources/shiboken6/tests/libsample/objecttypeholder.h b/sources/shiboken6/tests/libsample/objecttypeholder.h
index 7558b11ee..190664608 100644
--- a/sources/shiboken6/tests/libsample/objecttypeholder.h
+++ b/sources/shiboken6/tests/libsample/objecttypeholder.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef OBJECTTYPEHOLDER_H
#define OBJECTTYPEHOLDER_H
@@ -36,17 +11,19 @@
class LIBSAMPLE_API ObjectTypeHolder
{
public:
- explicit ObjectTypeHolder(const char* objectName);
- explicit ObjectTypeHolder(const ObjectType *object = ObjectType::defaultInstance());
+ LIBMINIMAL_DISABLE_COPY_MOVE(ObjectTypeHolder)
+
+ explicit ObjectTypeHolder(const char *objectName);
+ explicit ObjectTypeHolder(const ObjectType *object) noexcept;
virtual ~ObjectTypeHolder();
- const ObjectType* getObjecType() { return m_objectType; }
+ const ObjectType *getObjectType() const { return m_objectType; }
- virtual Str passObjectTypeAsReference(const ObjectType& objectType);
+ virtual Str passObjectTypeAsReference(const ObjectType &objectType);
Str callPassObjectTypeAsReference();
private:
const ObjectType *m_objectType;
};
-#endif
+#endif // OBJECTTYPEHOLDER_H
diff --git a/sources/shiboken6/tests/libsample/objecttypelayout.cpp b/sources/shiboken6/tests/libsample/objecttypelayout.cpp
index f06ede758..3fa02917c 100644
--- a/sources/shiboken6/tests/libsample/objecttypelayout.cpp
+++ b/sources/shiboken6/tests/libsample/objecttypelayout.cpp
@@ -1,43 +1,17 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "objecttypelayout.h"
-#include <iostream>
-using namespace std;
+#include <iostream>
-void ObjectTypeLayout::addObject(ObjectType* obj)
+void ObjectTypeLayout::addObject(ObjectType *obj)
{
if (obj->isLayoutType()) {
- ObjectTypeLayout* l = reinterpret_cast<ObjectTypeLayout*>(obj);
+ auto *l = reinterpret_cast<ObjectTypeLayout*>(obj);
if (l->parent()) {
- cerr << "[WARNING] ObjectTypeLayout::addObject: layout '" << l->objectName().cstring();
- cerr << "' already has a parent." << endl;
+ std::cerr << "[WARNING] ObjectTypeLayout::addObject: layout '"
+ << l->objectName().cstring() << "' already has a parent.\n";
return;
}
@@ -50,12 +24,12 @@ void ObjectTypeLayout::addObject(ObjectType* obj)
m_objects.push_back(obj);
}
-std::list< ObjectType* > ObjectTypeLayout::objects() const
+std::list<ObjectType*> ObjectTypeLayout::objects() const
{
return m_objects;
}
-void ObjectTypeLayout::reparentChildren(ObjectType* parent)
+void ObjectTypeLayout::reparentChildren(ObjectType *parent)
{
for (auto *o : m_objects) {
if (o->isLayoutType())
@@ -64,4 +38,3 @@ void ObjectTypeLayout::reparentChildren(ObjectType* parent)
o->setParent(parent);
}
}
-
diff --git a/sources/shiboken6/tests/libsample/objecttypelayout.h b/sources/shiboken6/tests/libsample/objecttypelayout.h
index eb099313c..0aa9fad6e 100644
--- a/sources/shiboken6/tests/libsample/objecttypelayout.h
+++ b/sources/shiboken6/tests/libsample/objecttypelayout.h
@@ -1,36 +1,12 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef OBJECTTYPELAYOUT_H
#define OBJECTTYPELAYOUT_H
#include "libsamplemacros.h"
#include "objecttype.h"
+
#include <list>
class ObjectType;
@@ -38,19 +14,19 @@ class ObjectType;
class LIBSAMPLE_API ObjectTypeLayout : public ObjectType
{
public:
- void addObject(ObjectType* obj);
+ void addObject(ObjectType *obj);
std::list<ObjectType*> objects() const;
bool isLayoutType() override { return true; }
- inline static ObjectTypeLayout* create() { return new ObjectTypeLayout(); }
+ inline static ObjectTypeLayout *create() { return new ObjectTypeLayout(); }
+
+ ObjectType *takeChild(const Str &name) override { return ObjectType::takeChild(name); }
- ObjectType* takeChild(const Str& name) override { return ObjectType::takeChild(name); }
private:
std::list<ObjectType*> m_objects;
- void reparentChildren(ObjectType* parent);
- friend LIBSAMPLE_API void ObjectType::setLayout(ObjectTypeLayout* l);
+ void reparentChildren(ObjectType *parent);
+ friend LIBSAMPLE_API void ObjectType::setLayout(ObjectTypeLayout *l);
};
#endif // OBJECTTYPELAYOUT_H
-
diff --git a/sources/shiboken6/tests/libsample/objecttypeoperators.cpp b/sources/shiboken6/tests/libsample/objecttypeoperators.cpp
index dc5243f2e..c78387a3e 100644
--- a/sources/shiboken6/tests/libsample/objecttypeoperators.cpp
+++ b/sources/shiboken6/tests/libsample/objecttypeoperators.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "objecttypeoperators.h"
@@ -32,32 +7,32 @@ ObjectTypeOperators::ObjectTypeOperators(const std::string key) : m_key(key)
{
}
-bool ObjectTypeOperators::operator==(const ObjectTypeOperators& other) const
+bool ObjectTypeOperators::operator==(const ObjectTypeOperators &other) const
{
return m_key == other.m_key;
}
-const ObjectTypeOperators& ObjectTypeOperators::operator<(const ObjectTypeOperators& other) const
+const ObjectTypeOperators &ObjectTypeOperators::operator<(const ObjectTypeOperators &other) const
{
return m_key < other.m_key ? *this : other;
}
-bool operator==(const ObjectTypeOperators* obj, const std::string& str)
+bool operator==(const ObjectTypeOperators *obj, const std::string &str)
{
return obj->key() == str;
}
-bool operator==(const std::string& str, const ObjectTypeOperators* obj)
+bool operator==(const std::string &str, const ObjectTypeOperators *obj)
{
return str == obj->key();
}
-std::string operator+(const ObjectTypeOperators* obj, const std::string& str)
+std::string operator+(const ObjectTypeOperators *obj, const std::string &str)
{
return obj->key() + str;
}
-std::string operator+(const std::string& str, const ObjectTypeOperators* obj)
+std::string operator+(const std::string &str, const ObjectTypeOperators *obj)
{
return str + obj->key();
}
diff --git a/sources/shiboken6/tests/libsample/objecttypeoperators.h b/sources/shiboken6/tests/libsample/objecttypeoperators.h
index 6bb54d600..6144952ca 100644
--- a/sources/shiboken6/tests/libsample/objecttypeoperators.h
+++ b/sources/shiboken6/tests/libsample/objecttypeoperators.h
@@ -1,61 +1,36 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef OBJECTTYPEOPERATORS_H
#define OBJECTTYPEOPERATORS_H
#include "libsamplemacros.h"
+
#include <string>
class LIBSAMPLE_API ObjectTypeOperators
{
public:
+ LIBMINIMAL_DISABLE_COPY_MOVE(ObjectTypeOperators)
+
explicit ObjectTypeOperators(const std::string key);
- virtual ~ObjectTypeOperators() {}
+ virtual ~ObjectTypeOperators() = default;
- bool operator==(const ObjectTypeOperators& other) const;
- const ObjectTypeOperators& operator<(const ObjectTypeOperators& other) const;
+ bool operator==(const ObjectTypeOperators &other) const;
+ const ObjectTypeOperators &operator<(const ObjectTypeOperators &other) const;
// chaos!
- virtual void operator>(const ObjectTypeOperators&) { m_key.append("operator>"); }
+ virtual void operator>(const ObjectTypeOperators &) { m_key.append("operator>"); }
std::string key() const { return m_key; }
private:
std::string m_key;
-
- ObjectTypeOperators(ObjectTypeOperators&);
- ObjectTypeOperators& operator=(ObjectTypeOperators&);
};
-LIBSAMPLE_API bool operator==(const ObjectTypeOperators* obj, const std::string& str);
-LIBSAMPLE_API bool operator==(const std::string& str, const ObjectTypeOperators* obj);
-LIBSAMPLE_API std::string operator+(const ObjectTypeOperators* obj, const std::string& str);
-LIBSAMPLE_API std::string operator+(const std::string& str, const ObjectTypeOperators* obj);
+LIBSAMPLE_API bool operator==(const ObjectTypeOperators *obj, const std::string &str);
+LIBSAMPLE_API bool operator==(const std::string &str, const ObjectTypeOperators *obj);
+LIBSAMPLE_API std::string operator+(const ObjectTypeOperators *obj, const std::string &str);
+LIBSAMPLE_API std::string operator+(const std::string &str, const ObjectTypeOperators *obj);
#endif // OBJECTTYPEOPERATORS_H
diff --git a/sources/shiboken6/tests/libsample/objectview.cpp b/sources/shiboken6/tests/libsample/objectview.cpp
index d640c406e..1b727f88c 100644
--- a/sources/shiboken6/tests/libsample/objectview.cpp
+++ b/sources/shiboken6/tests/libsample/objectview.cpp
@@ -1,54 +1,24 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "objectview.h"
#include "objectmodel.h"
#include "str.h"
-Str
-ObjectView::displayModelData()
+Str ObjectView::displayModelData()
{
if (!m_model)
- return Str("(NULL)");
+ return {"(NULL)"};
return Str("Name: %VAR").arg(m_model->objectName());
}
-void
-ObjectView::modifyModelData(Str& data)
+void ObjectView::modifyModelData(Str &data)
{
if (m_model)
m_model->setObjectName(data);
}
-
-ObjectType*
-ObjectView::getRawModelData()
+ObjectType *ObjectView::getRawModelData()
{
return m_model->data();
}
-
diff --git a/sources/shiboken6/tests/libsample/objectview.h b/sources/shiboken6/tests/libsample/objectview.h
index b68d031e9..2567deee5 100644
--- a/sources/shiboken6/tests/libsample/objectview.h
+++ b/sources/shiboken6/tests/libsample/objectview.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef OBJECTVIEW_H
#define OBJECTVIEW_H
@@ -38,21 +13,19 @@ class ObjectModel;
class LIBSAMPLE_API ObjectView : public ObjectType
{
public:
- ObjectView(ObjectModel *model = nullptr, ObjectType *parent = nullptr)
- : ObjectType(parent), m_model(model)
- {}
+ explicit ObjectView(ObjectModel *model = nullptr, ObjectType *parent = nullptr)
+ : ObjectType(parent), m_model(model) {}
- inline void setModel(ObjectModel* model) { m_model = model; }
- inline ObjectModel* model() const { return m_model; }
+ inline void setModel(ObjectModel *model) { m_model = model; }
+ inline ObjectModel *model() const { return m_model; }
Str displayModelData();
- void modifyModelData(Str& data);
+ void modifyModelData(Str &data);
- ObjectType* getRawModelData();
+ ObjectType *getRawModelData();
private:
- ObjectModel* m_model;
+ ObjectModel *m_model;
};
#endif // OBJECTVIEW_H
-
diff --git a/sources/shiboken6/tests/libsample/oddbool.cpp b/sources/shiboken6/tests/libsample/oddbool.cpp
index 4f491dd96..bc1ee833f 100644
--- a/sources/shiboken6/tests/libsample/oddbool.cpp
+++ b/sources/shiboken6/tests/libsample/oddbool.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "oddbool.h"
@@ -32,7 +7,7 @@ ComparisonTester::ComparisonTester(int v) : m_value(v)
{
}
-ComparisonTester& ComparisonTester::operator=(int v)
+ComparisonTester &ComparisonTester::operator=(int v)
{
m_value = v;
return *this;
@@ -46,3 +21,7 @@ int ComparisonTester::compare(const ComparisonTester &rhs) const
return 1;
return 0;
}
+
+SpaceshipComparisonTester::SpaceshipComparisonTester(int v) : m_value(v)
+{
+}
diff --git a/sources/shiboken6/tests/libsample/oddbool.h b/sources/shiboken6/tests/libsample/oddbool.h
index f7d77c0b3..dd2d32604 100644
--- a/sources/shiboken6/tests/libsample/oddbool.h
+++ b/sources/shiboken6/tests/libsample/oddbool.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef ODDBOOL_H
#define ODDBOOL_H
@@ -33,11 +8,15 @@
#include <type_traits>
+#if __cplusplus >= 202002 || (defined(_MSVC_LANG) && _MSVC_LANG >= 202002)
+# include <compare>
+#endif
+
class OddBool
{
public:
- inline explicit OddBool(bool b) : m_value(b) {}
+ inline explicit OddBool(bool b) noexcept : m_value(b) {}
bool value() const { return m_value; }
inline OddBool operator!() const { return OddBool(!m_value); }
@@ -56,9 +35,11 @@ inline bool operator!=(OddBool b1, OddBool b2) { return (!b1).value() != (!b2).v
class OddBoolUser
{
public:
- OddBoolUser() : m_oddbool(OddBool(false)) {}
- OddBoolUser(const OddBool& oddBool) : m_oddbool(oddBool) {}
- virtual ~OddBoolUser() {}
+ LIBMINIMAL_DEFAULT_COPY_MOVE(OddBoolUser)
+
+ OddBoolUser() noexcept : m_oddbool(OddBool(false)) {}
+ OddBoolUser(const OddBool &oddBool) : m_oddbool(oddBool) {}
+ virtual ~OddBoolUser() = default;
inline OddBool oddBool() { return m_oddbool; }
inline void setOddBool(OddBool oddBool) { m_oddbool = oddBool; }
@@ -73,7 +54,7 @@ public:
return invertedOddBool();
}
- static inline OddBool getOddBool(const OddBoolUser& oddBoolUser)
+ static inline OddBool getOddBool(const OddBoolUser &oddBoolUser)
{
return oddBoolUser.m_oddbool;
}
@@ -105,4 +86,21 @@ inline std::enable_if<std::is_assignable<ComparisonTester, int>::value, bool>::t
operator!=(const ComparisonTester &c1, const ComparisonTester &c2)
{ return c1.compare(c2) != 0; }
+class LIBSAMPLE_API SpaceshipComparisonTester
+{
+public:
+ explicit SpaceshipComparisonTester(int v);
+
+#if __cplusplus >= 202002 || (defined(_MSVC_LANG) && _MSVC_LANG >= 202002)
+ auto operator<=>(const SpaceshipComparisonTester &rhs) const = default;
+
+ enum Enabled { HasSpaceshipOperator = 1 };
+#else
+ enum Enabled { HasSpaceshipOperator = 0 };
+#endif // C++ 20
+
+private:
+ int m_value;
+};
+
#endif // ODDBOOL_H
diff --git a/sources/shiboken6/tests/libsample/onlycopy.cpp b/sources/shiboken6/tests/libsample/onlycopy.cpp
index cfc7c9d99..981ea88a4 100644
--- a/sources/shiboken6/tests/libsample/onlycopy.cpp
+++ b/sources/shiboken6/tests/libsample/onlycopy.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "onlycopy.h"
@@ -36,45 +11,23 @@ public:
int value;
};
-OnlyCopy::OnlyCopy(int value) : d(new OnlyCopyPrivate(value))
+OnlyCopy::OnlyCopy(int value) : d(std::make_shared<OnlyCopyPrivate>(value))
{
-
}
-OnlyCopy::OnlyCopy(OnlyCopyPrivate *dIn) : d(dIn)
-{
-}
-
-OnlyCopy::~OnlyCopy()
-{
- delete d;
-}
-
-OnlyCopy::OnlyCopy(const OnlyCopy& other) : d(new OnlyCopyPrivate(other.value()))
-{
-}
-
-OnlyCopy&
-OnlyCopy::operator=(const OnlyCopy& other)
-{
- d->value = other.d->value;
- return *this;
-}
+OnlyCopy::~OnlyCopy() = default;
int OnlyCopy::value() const
{
return d->value;
}
-OnlyCopy
-FriendOfOnlyCopy::createOnlyCopy(int value)
+OnlyCopy FriendOfOnlyCopy::createOnlyCopy(int value)
{
-
return OnlyCopy(value);
}
-std::list<OnlyCopy>
-FriendOfOnlyCopy::createListOfOnlyCopy(int quantity)
+std::list<OnlyCopy> FriendOfOnlyCopy::createListOfOnlyCopy(int quantity)
{
std::list<OnlyCopy> list;
for (int i = 0; i < quantity; ++i)
diff --git a/sources/shiboken6/tests/libsample/onlycopy.h b/sources/shiboken6/tests/libsample/onlycopy.h
index 84a32a951..7dc3e0069 100644
--- a/sources/shiboken6/tests/libsample/onlycopy.h
+++ b/sources/shiboken6/tests/libsample/onlycopy.h
@@ -1,36 +1,13 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef ONLYCOPYCLASS_H
#define ONLYCOPYCLASS_H
#include "libsamplemacros.h"
+
#include <list>
+#include <memory>
// These classes simulate a situation found in QWebEngineHistoryItem.
@@ -39,18 +16,20 @@ class OnlyCopyPrivate;
class LIBSAMPLE_API OnlyCopy
{
public:
- OnlyCopy(const OnlyCopy& other);
- OnlyCopy& operator=(const OnlyCopy& other);
+ LIBMINIMAL_DEFAULT_COPY_MOVE(OnlyCopy)
+
~OnlyCopy();
int value() const;
static int getValue(OnlyCopy onlyCopy) { return onlyCopy.value(); }
- static int getValueFromReference(const OnlyCopy& onlyCopy) { return onlyCopy.value(); }
+ static int getValueFromReference(const OnlyCopy &onlyCopy) { return onlyCopy.value(); }
+
private:
- OnlyCopyPrivate *d;
- explicit OnlyCopy(int value);
- explicit OnlyCopy(OnlyCopyPrivate *d); // rejected due to unknown OnlyCopyPrivate
friend class FriendOfOnlyCopy;
+
+ explicit OnlyCopy(int value);
+
+ std::shared_ptr<OnlyCopyPrivate> d;
};
class LIBSAMPLE_API FriendOfOnlyCopy
@@ -60,4 +39,4 @@ public:
static std::list<OnlyCopy> createListOfOnlyCopy(int quantity);
};
-#endif
+#endif // ONLYCOPYCLASS_H
diff --git a/sources/shiboken6/tests/libsample/overload.cpp b/sources/shiboken6/tests/libsample/overload.cpp
index ebf19586e..34da28e03 100644
--- a/sources/shiboken6/tests/libsample/overload.cpp
+++ b/sources/shiboken6/tests/libsample/overload.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "overload.h"
@@ -33,18 +8,196 @@ Overload::FunctionEnum Overload::overloaded()
return Function0;
}
-Overload::FunctionEnum Overload::overloaded(Size* size)
+Overload::FunctionEnum Overload::overloaded(Size *)
{
return Function1;
}
-Overload::FunctionEnum Overload::overloaded(Point* point, ParamEnum param)
+Overload::FunctionEnum Overload::overloaded(Point *, ParamEnum)
{
return Function2;
}
-Overload::FunctionEnum Overload::overloaded(const Point& point)
+Overload::FunctionEnum Overload::overloaded(const Point &)
{
return Function3;
}
+void Overload::differentReturnTypes(ParamEnum)
+{
+
+}
+
+int Overload::differentReturnTypes(ParamEnum, int val)
+{
+ return val;
+}
+
+int Overload::intOverloads(const Point &, double)
+{
+ return 1;
+}
+
+int Overload::intOverloads(int, int)
+{
+ return 2;
+}
+
+int Overload::intOverloads(int, int, double)
+{
+ return 3;
+}
+
+Overload::FunctionEnum Overload::intDoubleOverloads(double, double) const
+{
+ return Function1;
+}
+
+Overload::FunctionEnum Overload::intDoubleOverloads(int, int) const
+{
+ return Function0;
+}
+
+void Overload::singleOverload(Point *)
+{
+}
+
+Overload::FunctionEnum Overload::wrapperIntIntOverloads(const Polygon &, int, int)
+{
+ return Function1;
+}
+
+Overload::FunctionEnum Overload::wrapperIntIntOverloads(const Point &, int, int)
+{
+ return Function0;
+}
+
+Overload::FunctionEnum Overload::strBufferOverloads(const Str &, const char *, bool)
+{
+ return Function0;
+}
+
+Overload::FunctionEnum Overload::strBufferOverloads(unsigned char *, int)
+{
+ return Function1;
+}
+
+Overload::FunctionEnum Overload::drawText(const PointF &, const Str &)
+{
+ return Function1;
+}
+
+Overload::FunctionEnum Overload::drawText(const Point &, const Str &)
+{
+ return Function0;
+}
+
+Overload::FunctionEnum Overload::drawText(const RectF &, const Str &, const Echo &)
+{
+ return Function4;
+}
+
+Overload::FunctionEnum Overload::drawText(const RectF &, int, const Str &)
+{
+ return Function3;
+}
+
+Overload::FunctionEnum Overload::drawText(const Rect &, int, const Str &)
+{
+ return Function2;
+}
+
+Overload::FunctionEnum Overload::drawText(int, int, const Str &)
+{
+ return Function5;
+}
+
+Overload::FunctionEnum Overload::drawText(int, int, int, int, int, const Str &)
+{
+ return Function6;
+}
+
+Overload::FunctionEnum Overload::drawText2(const PointF &, const Str &)
+{
+ return Function1;
+}
+
+Overload::FunctionEnum Overload::drawText2(const Point &, const Str &)
+{
+ return Function0;
+}
+
+Overload::FunctionEnum Overload::drawText2(int, int, const Str &)
+{
+ return Function5;
+}
+
+Overload::FunctionEnum Overload::drawText2(const RectF &, const Str &, const Echo &)
+{
+ return Function4;
+}
+
+Overload::FunctionEnum Overload::drawText2(const RectF &, int, const Str &)
+{
+ return Function3;
+}
+
+Overload::FunctionEnum Overload::drawText2(const Rect &, int, const Str &)
+{
+ return Function2;
+}
+
+Overload::FunctionEnum Overload::drawText2(int, int, int, int, int, const Str &)
+{
+ return Function6;
+}
+
+Overload::FunctionEnum Overload::drawText3(const Str &, const Str &, const Str &)
+{
+ return Function0;
+}
+
+Overload::FunctionEnum Overload::drawText3(int, int, int, int, int)
+{
+ return Function1;
+}
+
+Overload::FunctionEnum Overload::drawText4(int, int, int)
+{
+ return Function0;
+}
+
+Overload::FunctionEnum Overload::drawText4(int, int, int, int, int)
+{
+ return Function1;
+}
+
+Overload::FunctionEnum Overload::acceptSequence()
+{
+ return Function0;
+}
+
+Overload::FunctionEnum Overload::acceptSequence(const Str &, ParamEnum)
+{
+ return Function2;
+}
+
+Overload::FunctionEnum Overload::acceptSequence(int, int)
+{
+ return Function1;
+}
+
+Overload::FunctionEnum Overload::acceptSequence(void *)
+{
+ return Function5;
+}
+
+Overload::FunctionEnum Overload::acceptSequence(const char *const[])
+{
+ return Function4;
+}
+
+Overload::FunctionEnum Overload::acceptSequence(const Size &)
+{
+ return Function3;
+}
diff --git a/sources/shiboken6/tests/libsample/overload.h b/sources/shiboken6/tests/libsample/overload.h
index aa2572d50..b640bf7c7 100644
--- a/sources/shiboken6/tests/libsample/overload.h
+++ b/sources/shiboken6/tests/libsample/overload.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef OVERLOAD_H
#define OVERLOAD_H
@@ -42,6 +17,8 @@
class LIBSAMPLE_API Overload
{
public:
+ LIBMINIMAL_DISABLE_COPY_MOVE(Overload)
+
enum FunctionEnum {
Function0,
Function1,
@@ -57,69 +34,71 @@ public:
Param1
};
- Overload() {}
- virtual ~Overload() {}
+ Overload() noexcept = default;
+ virtual ~Overload() = default;
FunctionEnum overloaded();
- FunctionEnum overloaded(Size* size);
- FunctionEnum overloaded(Point* point, ParamEnum param);
- FunctionEnum overloaded(const Point& point);
+ FunctionEnum overloaded(Size *size);
+ FunctionEnum overloaded(Point *point, ParamEnum param);
+ FunctionEnum overloaded(const Point &point);
- inline void differentReturnTypes(ParamEnum param = Param0) {}
- inline int differentReturnTypes(ParamEnum param, int val) { return val; }
+ void differentReturnTypes(ParamEnum param = Param0);
+ int differentReturnTypes(ParamEnum param, int val);
- inline int intOverloads(const Point& p, double d) { return 1; }
- inline int intOverloads(int i, int i2) { return 2; }
- inline int intOverloads(int i, int removedArg, double d) { return 3; }
+ int intOverloads(const Point &p, double d);
+ int intOverloads(int i, int i2);
+ int intOverloads(int i, int removedArg, double d);
- inline FunctionEnum intDoubleOverloads(int a0, int a1) const { return Function0; }
- inline FunctionEnum intDoubleOverloads(double a0, double a1) const { return Function1; }
+ FunctionEnum intDoubleOverloads(int a0, int a1) const;
+ FunctionEnum intDoubleOverloads(double a0, double a1) const;
- void singleOverload(Point* x) {}
- Point* singleOverload() {return new Point();}
+ void singleOverload(Point *x);
+ Point *singleOverload() { return new Point(); }
// Similar to QImage::trueMatrix(QMatrix,int,int) and QImage::trueMatrix(QTransform,int,int)
- FunctionEnum wrapperIntIntOverloads(const Point& arg0, int arg1, int arg2) { return Function0; }
- FunctionEnum wrapperIntIntOverloads(const Polygon& arg0, int arg1, int arg2) { return Function1; }
+ FunctionEnum wrapperIntIntOverloads(const Point &arg0, int arg1, int arg2);
+ FunctionEnum wrapperIntIntOverloads(const Polygon &arg0, int arg1, int arg2);
// Similar to QImage constructor
- FunctionEnum strBufferOverloads(const Str &arg0, const char *arg1 = nullptr, bool arg2 = true) { return Function0; }
- FunctionEnum strBufferOverloads(unsigned char* arg0, int arg1) { return Function1; }
+ FunctionEnum strBufferOverloads(const Str &arg0, const char *arg1 = nullptr,
+ bool arg2 = true);
+ FunctionEnum strBufferOverloads(unsigned char *arg0, int arg1);
FunctionEnum strBufferOverloads() { return Function2; }
// Similar to QPainter::drawText(...)
- FunctionEnum drawText(const Point& a0, const Str& a1) { return Function0; }
- FunctionEnum drawText(const PointF& a0, const Str& a1) { return Function1; }
- FunctionEnum drawText(const Rect& a0, int a1, const Str& a2) { return Function2; }
- FunctionEnum drawText(const RectF& a0, int a1, const Str& a2) { return Function3; }
- FunctionEnum drawText(const RectF& a0, const Str& a1, const Echo& a2 = Echo()) { return Function4; }
- FunctionEnum drawText(int a0, int a1, const Str& a2) { return Function5; }
- FunctionEnum drawText(int a0, int a1, int a2, int a3, int a4, const Str& a5) { return Function6; }
+ FunctionEnum drawText(const Point &a0, const Str &a1);
+ FunctionEnum drawText(const PointF &a0, const Str &a1);
+ FunctionEnum drawText(const Rect &a0, int a1, const Str &a2);
+ FunctionEnum drawText(const RectF &a0, int a1, const Str &a2);
+ FunctionEnum drawText(const RectF &a0, const Str &a1, const Echo &a2 = Echo());
+ FunctionEnum drawText(int a0, int a1, const Str &a2);
+ FunctionEnum drawText(int a0, int a1, int a2, int a3, int a4, const Str &a5);
// A variant of the one similar to QPainter::drawText(...)
- FunctionEnum drawText2(const Point& a0, const Str& a1) { return Function0; }
- FunctionEnum drawText2(const PointF& a0, const Str& a1) { return Function1; }
- FunctionEnum drawText2(const Rect& a0, int a1, const Str& a2) { return Function2; }
- FunctionEnum drawText2(const RectF& a0, int a1, const Str& a2) { return Function3; }
- FunctionEnum drawText2(const RectF& a0, const Str& a1, const Echo& a2 = Echo()) { return Function4; }
- FunctionEnum drawText2(int a0, int a1, const Str& a2) { return Function5; }
- FunctionEnum drawText2(int a0, int a1, int a2, int a3 = 0, int a4 = 0, const Str& a5 = Str()) { return Function6; }
+ FunctionEnum drawText2(const Point &a0, const Str &a1);
+ FunctionEnum drawText2(const PointF &a0, const Str &a1);
+ FunctionEnum drawText2(const Rect &a0, int a1, const Str &a2);
+ FunctionEnum drawText2(const RectF &a0, int a1, const Str &a2);
+ FunctionEnum drawText2(const RectF &a0, const Str &a1, const Echo &a2 = Echo());
+ FunctionEnum drawText2(int a0, int a1, const Str &a2);
+ FunctionEnum drawText2(int a0, int a1, int a2, int a3 = 0, int a4 = 0,
+ const Str &a5 = Str());
// A simpler variant of the one similar to QPainter::drawText(...)
- FunctionEnum drawText3(const Str& a0, const Str& a1, const Str& a2) { return Function0; }
- FunctionEnum drawText3(int a0, int a1, int a2, int a3, int a4) { return Function1; }
+ FunctionEnum drawText3(const Str &a0, const Str &a1, const Str &a2);
+ FunctionEnum drawText3(int a0, int a1, int a2, int a3, int a4);
// Another simpler variant of the one similar to QPainter::drawText(...)
- FunctionEnum drawText4(int a0, int a1, int a2) { return Function0; }
- FunctionEnum drawText4(int a0, int a1, int a2, int a3, int a4) { return Function1; }
+ FunctionEnum drawText4(int a0, int a1, int a2);
+ FunctionEnum drawText4(int a0, int a1, int a2, int a3, int a4);
- FunctionEnum acceptSequence() { return Function0; }
- FunctionEnum acceptSequence(int a0, int a1) { return Function1; }
- FunctionEnum acceptSequence(const Str& a0, ParamEnum a1 = Param0) { return Function2; }
- FunctionEnum acceptSequence(const Size& a0) { return Function3; }
+ FunctionEnum acceptSequence();
+ FunctionEnum acceptSequence(int a0, int a1);
+ FunctionEnum acceptSequence(const Str &a0, ParamEnum a1 = Param0);
+ FunctionEnum acceptSequence(const Size &a0);
// The type must be changed to PySequence.
- FunctionEnum acceptSequence(const char* const a0[]) { return Function4; }
- FunctionEnum acceptSequence(void* a0) { return Function5; }
+ FunctionEnum acceptSequence(const char *const a0[]);
+ FunctionEnum acceptSequence(void *a0);
};
class LIBSAMPLE_API Overload2 : public Overload
@@ -140,4 +119,3 @@ private:
};
#endif // OVERLOAD_H
-
diff --git a/sources/shiboken6/tests/libsample/overloadsort.cpp b/sources/shiboken6/tests/libsample/overloadsort.cpp
index 8534ef0f1..a9b4b0972 100644
--- a/sources/shiboken6/tests/libsample/overloadsort.cpp
+++ b/sources/shiboken6/tests/libsample/overloadsort.cpp
@@ -1,33 +1,43 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "overloadsort.h"
+const char *SortedOverload::overload(int)
+{
+ return "int";
+}
+
+const char *SortedOverload::overload(double)
+{
+ return "double";
+}
+
+const char *SortedOverload::overload(ImplicitBase)
+{
+ return "ImplicitBase";
+}
+
+const char *SortedOverload::overload(ImplicitTarget)
+{
+ return "ImplicitTarget";
+}
+
+const char *SortedOverload::overload(const std::list<ImplicitBase> &)
+{
+ return "list(ImplicitBase)";
+}
+
+int SortedOverload::implicit_overload(const ImplicitBase &)
+{
+ return 1;
+}
+
+const char *SortedOverload::overloadDeep(int, ImplicitBase &)
+{
+ return "ImplicitBase";
+}
+
int CustomOverloadSequence::overload(short v) const
{
return v + int(sizeof(v));
diff --git a/sources/shiboken6/tests/libsample/overloadsort.h b/sources/shiboken6/tests/libsample/overloadsort.h
index ad720222c..ee269cc21 100644
--- a/sources/shiboken6/tests/libsample/overloadsort.h
+++ b/sources/shiboken6/tests/libsample/overloadsort.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef OVERLOADSORT_H
#define OVERLOADSORT_H
@@ -36,52 +11,37 @@
class ImplicitTarget
{
public:
- ImplicitTarget(){}
+ ImplicitTarget() = default;
};
class ImplicitBase
{
public:
- ImplicitBase(){}
- ImplicitBase(const ImplicitTarget &b){}
+ ImplicitBase() = default;
+ ImplicitBase(const ImplicitTarget &b);
};
-class SortedOverload
+inline ImplicitBase::ImplicitBase(const ImplicitTarget &)
{
-public:
-
- inline const char *overload(int x) {
- return "int";
- }
-
- inline const char *overload(double x) {
- return "double";
- }
-
- inline const char *overload(ImplicitBase x) {
- return "ImplicitBase";
- }
-
- inline const char *overload(ImplicitTarget x) {
- return "ImplicitTarget";
- }
+}
- inline const char *overload(const std::list<ImplicitBase> &x) {
- return "list(ImplicitBase)";
- }
-
- inline int implicit_overload(const ImplicitBase &x) {
- return 1;
- }
+class LIBSAMPLE_API SortedOverload
+{
+public:
- inline const char *overloadDeep(int x, ImplicitBase &y) {
- return "ImplicitBase";
- }
+ const char *overload(int x);
+ const char *overload(double x);
+ const char *overload(ImplicitBase x);
+ const char *overload(ImplicitTarget x);
+ const char *overload(const std::list<ImplicitBase> &x);
+ int implicit_overload(const ImplicitBase &x);
- inline const char* pyObjOverload(int, int) { return "int,int"; }
- inline const char* pyObjOverload(unsigned char*, int) { return "PyObject,int"; }
+ const char *overloadDeep(int x, ImplicitBase &y);
+ inline const char *pyObjOverload(int, int) { return "int,int"; }
+ inline const char *pyObjOverload(unsigned char *, int)
+ { return "PyObject,int"; }
};
class LIBSAMPLE_API CustomOverloadSequence
@@ -92,4 +52,3 @@ public:
};
#endif // OVERLOADSORT_H
-
diff --git a/sources/shiboken6/tests/libsample/pairuser.cpp b/sources/shiboken6/tests/libsample/pairuser.cpp
index 661988445..5b7eb4d8c 100644
--- a/sources/shiboken6/tests/libsample/pairuser.cpp
+++ b/sources/shiboken6/tests/libsample/pairuser.cpp
@@ -1,57 +1,24 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
-#include <iostream>
#include "pairuser.h"
-using namespace std;
-
-std::pair<int, int>
-PairUser::callCreatePair()
+std::pair<int, int> PairUser::callCreatePair()
{
return createPair();
}
-std::pair<int, int>
-PairUser::createPair()
+std::pair<int, int> PairUser::createPair()
{
- return std::pair<int, int>(10, 20);
+ return {10, 20};
}
-std::pair<Complex, Complex>
-PairUser::createComplexPair(Complex cpx0, Complex cpx1)
+std::pair<Complex, Complex> PairUser::createComplexPair(Complex cpx0, Complex cpx1)
{
- return std::pair<Complex, Complex>(cpx0, cpx1);
+ return {cpx0, cpx1};
}
-double
-PairUser::sumPair(std::pair<int, double> pair)
+double PairUser::sumPair(std::pair<int, double> pair)
{
return ((double) pair.first) + pair.second;
}
-
diff --git a/sources/shiboken6/tests/libsample/pairuser.h b/sources/shiboken6/tests/libsample/pairuser.h
index 37219f724..ee51d818e 100644
--- a/sources/shiboken6/tests/libsample/pairuser.h
+++ b/sources/shiboken6/tests/libsample/pairuser.h
@@ -1,44 +1,21 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef PAIRUSER_H
#define PAIRUSER_H
-#include <utility>
+#include "libsamplemacros.h"
#include "complex.h"
-#include "libsamplemacros.h"
+#include <utility>
class LIBSAMPLE_API PairUser
{
public:
- PairUser() {}
- virtual ~PairUser() {}
+ LIBMINIMAL_DEFAULT_COPY_MOVE(PairUser)
+
+ PairUser() noexcept = default;
+ virtual ~PairUser() = default;
virtual std::pair<int, int> createPair();
std::pair<int, int> callCreatePair();
@@ -51,5 +28,5 @@ public:
private:
std::pair<int, int> m_pair;
};
-#endif // PAIRUSER_H
+#endif // PAIRUSER_H
diff --git a/sources/shiboken6/tests/libsample/pen.cpp b/sources/shiboken6/tests/libsample/pen.cpp
index b5c9356d6..76473a264 100644
--- a/sources/shiboken6/tests/libsample/pen.cpp
+++ b/sources/shiboken6/tests/libsample/pen.cpp
@@ -1,38 +1,13 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "pen.h"
-Color::Color(SampleNamespace::InValue arg) : m_null(false)
+Color::Color(SampleNamespace::InValue) : m_null(false)
{
}
-Color::Color(unsigned int arg) : m_null(false)
+Color::Color(unsigned int) : m_null(false)
{
}
@@ -70,28 +45,30 @@ void Brush::setColor(const Color &newColor)
m_color = newColor;
}
-Pen::Pen() : m_ctor(EmptyCtor)
-{
-}
+Pen::Pen() = default;
-Pen::Pen(SampleNamespace::Option option) : m_ctor(EnumCtor)
+Pen::Pen(SampleNamespace::Option) : m_ctor(EnumCtor)
{
}
-Pen::Pen(const Color& color) : m_ctor(ColorCtor)
+Pen::Pen(const Color &) : m_ctor(ColorCtor)
{
}
-Pen::Pen(const Pen& pen) : m_ctor(CopyCtor)
+Pen::Pen(const Pen &) : m_ctor(CopyCtor)
{
}
+Pen::Pen(Pen &&) noexcept = default;
+Pen &Pen::operator=(const Pen &pen) = default;
+Pen &Pen::operator=(Pen &&) noexcept = default;
+
int Pen::ctorType()
{
return m_ctor;
}
-void Pen::drawLine(int x1, int y1, int x2, int y2, RenderHints renderHints)
+void Pen::drawLine(int, int, int, int, RenderHints)
{
}
diff --git a/sources/shiboken6/tests/libsample/pen.h b/sources/shiboken6/tests/libsample/pen.h
index 3e4fe5dd8..6f528f0f9 100644
--- a/sources/shiboken6/tests/libsample/pen.h
+++ b/sources/shiboken6/tests/libsample/pen.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef PEN_H
#define PEN_H
@@ -40,6 +15,7 @@ public:
Color(unsigned int arg);
bool isNull() const;
+
private:
bool m_null = true;
};
@@ -73,8 +49,12 @@ public:
Pen();
Pen(SampleNamespace::Option option);
- Pen(const Color& color);
- Pen(const Pen& pen);
+ Pen(const Color &color);
+ Pen(const Pen &pen);
+ Pen(Pen &&) noexcept;
+ Pen &operator=(const Pen &pen);
+ Pen &operator=(Pen &&) noexcept;
+ ~Pen() = default;
// PYSIDE-1325, default initializer
void drawLine(int x1, int y1, int x2, int y2, RenderHints renderHints = {});
@@ -85,7 +65,7 @@ public:
void setRenderHints(RenderHints h);
private:
- int m_ctor;
+ int m_ctor = EmptyCtor;
RenderHints m_renderHints = None;
};
diff --git a/sources/shiboken6/tests/libsample/photon.cpp b/sources/shiboken6/tests/libsample/photon.cpp
index e61fd5969..2a7f20e33 100644
--- a/sources/shiboken6/tests/libsample/photon.cpp
+++ b/sources/shiboken6/tests/libsample/photon.cpp
@@ -1,50 +1,31 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "photon.h"
namespace Photon
{
+
const ClassType Base::staticType;
-int callCalculateForValueDuplicatorPointer(ValueDuplicator* value)
+
+int callCalculateForValueDuplicatorPointer(ValueDuplicator *value)
{
return value->calculate();
}
-int callCalculateForValueDuplicatorReference(ValueDuplicator& value)
+
+int callCalculateForValueDuplicatorReference(ValueDuplicator &value)
{
return value.calculate();
}
-int countValueIdentities(const std::list<ValueIdentity>& values)
+
+int countValueIdentities(const std::list<ValueIdentity> &values)
{
return values.size();
}
-int countValueDuplicators(const std::list<TemplateBase<DuplicatorType> >& values)
+
+int countValueDuplicators(const std::list<TemplateBase<DuplicatorType> > &values)
{
return values.size();
}
+
} // namespace Photon
diff --git a/sources/shiboken6/tests/libsample/photon.h b/sources/shiboken6/tests/libsample/photon.h
index 1dcb4f83e..2debe47d1 100644
--- a/sources/shiboken6/tests/libsample/photon.h
+++ b/sources/shiboken6/tests/libsample/photon.h
@@ -1,37 +1,13 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef PHOTON_H
#define PHOTON_H
-#include <list>
#include "libsamplemacros.h"
+#include <list>
+
// This namespace and classes simulate
// situations found in Qt's phonon module.
@@ -47,8 +23,11 @@ enum ClassType {
class LIBSAMPLE_API Base
{
public:
- explicit Base(int value) : m_value(value) {}
- virtual ~Base() {}
+ LIBMINIMAL_DEFAULT_COPY_MOVE(Base)
+
+ explicit Base(int value) noexcept : m_value(value) {}
+ virtual ~Base() = default;
+
inline void setValue(int value) { m_value = value; }
inline int value() const { return m_value; }
@@ -67,12 +46,14 @@ class LIBSAMPLE_API TemplateBase : public Base
{
public:
explicit TemplateBase(int value) : Base(value) {}
- inline int multiplicator() const { return (int)CLASS_TYPE; }
- inline int calculate() const { return m_value * ((int)CLASS_TYPE); }
+ inline int multiplicator() const { return int(CLASS_TYPE); }
+ inline int calculate() const { return m_value * (int(CLASS_TYPE)); }
static inline ClassType classType() { return CLASS_TYPE; }
- inline int sumValueUsingPointer(TemplateBase<CLASS_TYPE>* other) const { return m_value + other->m_value; }
- inline int sumValueUsingReference(TemplateBase<CLASS_TYPE>& other) const { return m_value + other.m_value; }
+ inline int sumValueUsingPointer(TemplateBase<CLASS_TYPE> *other) const
+ { return m_value + other->m_value; }
+ inline int sumValueUsingReference(TemplateBase<CLASS_TYPE> &other) const
+ { return m_value + other.m_value; }
inline std::list<TemplateBase<CLASS_TYPE> > getListOfThisTemplateBase()
{
@@ -82,7 +63,8 @@ public:
return objs;
}
- static inline TemplateBase<CLASS_TYPE>* passPointerThrough(TemplateBase<CLASS_TYPE>* obj) { return obj; }
+ static inline TemplateBase<CLASS_TYPE> *passPointerThrough(TemplateBase<CLASS_TYPE> *obj)
+ { return obj; }
ClassType type() const override { return CLASS_TYPE; }
static const ClassType staticType = CLASS_TYPE;
@@ -96,43 +78,31 @@ template class LIBSAMPLE_API TemplateBase<DuplicatorType>;
using ValueIdentity = TemplateBase<IdentityType>;
using ValueDuplicator = TemplateBase<DuplicatorType>;
-LIBSAMPLE_API int callCalculateForValueDuplicatorPointer(ValueDuplicator* value);
-LIBSAMPLE_API int callCalculateForValueDuplicatorReference(ValueDuplicator& value);
-LIBSAMPLE_API int countValueIdentities(const std::list<ValueIdentity>& values);
-LIBSAMPLE_API int countValueDuplicators(const std::list<TemplateBase<DuplicatorType> >& values);
-
-// This simulates an internal error (SEGV) caused by 'noexcept' in
-// boost::intrusive_ptr before support for 'noexcept' was added. The ENTIRE
-// code below is needed to trigger the exception; it isn't seen with just a
-// 'noexcept' following a declaration.
-//
-// NOTE: For reasons that should be fairly obvious, this test unfortunately can
-// only be "run" when building in C++11 mode.
-#if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1900)
-# define PHOTON_NOEXCEPT noexcept
-#else
-# define PHOTON_NOEXCEPT
-#endif
+LIBSAMPLE_API int callCalculateForValueDuplicatorPointer(ValueDuplicator *value);
+LIBSAMPLE_API int callCalculateForValueDuplicatorReference(ValueDuplicator &value);
+LIBSAMPLE_API int countValueIdentities(const std::list<ValueIdentity> &values);
+LIBSAMPLE_API int countValueDuplicators(const std::list<TemplateBase<DuplicatorType> > &values);
+
class Pointer
{
public:
- Pointer() PHOTON_NOEXCEPT : px(nullptr) {}
- Pointer(int* p) : px(p) {}
+ Pointer() noexcept = default;
+ explicit Pointer(int *p) : px(p) {}
- void reset() PHOTON_NOEXCEPT { Pointer().swap(*this); }
+ void reset() noexcept { Pointer().swap(*this); }
- int* get() const PHOTON_NOEXCEPT { return px; }
- int& operator*() const { return *px; }
+ int *get() const noexcept { return px; }
+ int &operator*() const { return *px; }
- void swap(Pointer& rhs) PHOTON_NOEXCEPT
+ void swap(Pointer &rhs) noexcept
{
- int* tmp = px;
+ int *tmp = px;
px = rhs.px;
rhs.px = tmp;
}
private:
- int* px;
+ int *px = nullptr;
};
} // namespace Photon
diff --git a/sources/shiboken6/tests/libsample/point.cpp b/sources/shiboken6/tests/libsample/point.cpp
index 75e015e07..b8630eb1e 100644
--- a/sources/shiboken6/tests/libsample/point.cpp
+++ b/sources/shiboken6/tests/libsample/point.cpp
@@ -1,46 +1,19 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
-#include <iostream>
#include "point.h"
-using namespace std;
+#include <iostream>
-Point::Point(int x, int y) : m_x(x), m_y(y)
+Point::Point(int x, int y) noexcept : m_x(x), m_y(y)
{
}
-Point::Point(double x, double y) : m_x(x), m_y(y)
+Point::Point(double x, double y) noexcept : m_x(x), m_y(y)
{
}
-void
-Point::midpoint(const Point& other, Point* midpoint) const
+void Point::midpoint(const Point &other, Point *midpoint) const
{
if (!midpoint)
return;
@@ -48,108 +21,91 @@ Point::midpoint(const Point& other, Point* midpoint) const
midpoint->setY((m_y + other.m_y) / 2.0);
}
-Point*
-Point::copy() const
+Point *Point::copy() const
{
- Point* pt = new Point();
+ Point *pt = new Point();
pt->m_x = m_x;
pt->m_y = m_y;
return pt;
}
-void
-Point::show()
+void Point::show() const
{
- cout << "(x: " << m_x << ", y: " << m_y << ")";
+ std::cout << "(x: " << m_x << ", y: " << m_y << ")";
}
-bool
-Point::operator==(const Point& other)
+bool Point::operator==(const Point &other)
{
return m_x == other.m_x && m_y == other.m_y;
}
-Point
-Point::operator+(const Point& other)
+Point Point::operator+(const Point &other)
{
- return Point(m_x + other.m_x, m_y + other.m_y);
+ return {m_x + other.m_x, m_y + other.m_y};
}
-Point
-Point::operator-(const Point& other)
+Point Point::operator-(const Point &other)
{
- return Point(m_x - other.m_x, m_y - other.m_y);
+ return {m_x - other.m_x, m_y - other.m_y};
}
-Point&
-Point::operator+=(Point &other)
+Point &Point::operator+=(Point &other)
{
m_x += other.m_x;
m_y += other.m_y;
return *this;
}
-Point&
-Point::operator-=(Point &other)
+Point &Point::operator-=(Point &other)
{
m_x -= other.m_x;
m_y -= other.m_y;
return *this;
}
-Point
-operator*(const Point& pt, double mult)
+Point operator*(const Point &pt, double mult)
{
return Point(pt.m_x * mult, pt.m_y * mult);
}
-Point
-operator*(const Point& pt, int mult)
+Point operator*(const Point &pt, int mult)
{
- return Point(((int) pt.m_x) * mult, ((int) pt.m_y) * mult);
+ return {int(pt.m_x) * mult, int(pt.m_y) * mult};
}
-Point
-operator*(double mult, const Point& pt)
+Point operator*(double mult, const Point &pt)
{
- return Point(pt.m_x * mult, pt.m_y * mult);
+ return {pt.m_x * mult, pt.m_y * mult};
}
-Point
-operator*(int mult, const Point& pt)
+Point operator*(int mult, const Point &pt)
{
- return Point(((int) pt.m_x) * mult, ((int) pt.m_y) * mult);
+ return {int(pt.m_x) * mult, int(pt.m_y) * mult};
}
-Point
-operator-(const Point& pt)
+Point operator-(const Point &pt)
{
- return Point(-pt.m_x, -pt.m_y);
+ return {-pt.m_x, -pt.m_y};
}
-bool
-operator!(const Point& pt)
+bool operator!(const Point &pt)
{
- return (pt.m_x == 0.0 && pt.m_y == 0.0);
+ return pt.m_x == 0.0 && pt.m_y == 0.0;
}
-Point
-Point::operator/(int operand)
+Point Point::operator/(int operand)
{
- return Point(m_x/operand, m_y/operand);
+ return {m_x/operand, m_y/operand};
}
-Complex
-transmutePointIntoComplex(const Point& point)
+Complex transmutePointIntoComplex(const Point &point)
{
Complex cpx(point.x(), point.y());
return cpx;
}
-Point
-transmuteComplexIntoPoint(const Complex& cpx)
+Point transmuteComplexIntoPoint(const Complex &cpx)
{
Point pt(cpx.real(), cpx.imag());
return pt;
}
-
diff --git a/sources/shiboken6/tests/libsample/point.h b/sources/shiboken6/tests/libsample/point.h
index 579bcd515..59e0236d5 100644
--- a/sources/shiboken6/tests/libsample/point.h
+++ b/sources/shiboken6/tests/libsample/point.h
@@ -1,45 +1,22 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef POINT_H
#define POINT_H
+#include "libsamplemacros.h"
#include "complex.h"
-#include <utility>
-#include "libsamplemacros.h"
+#include <utility>
class LIBSAMPLE_API Point
{
public:
- Point(int x = 0, int y = 0);
- Point(double x, double y);
- ~Point() {}
+ LIBMINIMAL_DEFAULT_COPY_MOVE(Point)
+
+ Point(int x = 0, int y = 0) noexcept;
+ Point(double x, double y) noexcept;
+ ~Point() = default;
inline double x() const { return m_x; }
inline double y() const { return m_y; }
@@ -52,48 +29,48 @@ public:
// This method could simply return the midpoint,
// but the interesting part of the test is to set the
// result in the pointer argument.
- void midpoint(const Point& other, Point* midpoint) const;
+ void midpoint(const Point &other, Point *midpoint) const;
- Point* copy() const;
+ Point *copy() const;
- inline const Point& getConstReferenceToSelf() const { return *this; }
- inline const Point* getSelf() const { return this; }
+ inline const Point &getConstReferenceToSelf() const { return *this; }
+ inline const Point *getSelf() const { return this; }
// The != operator is not implemented for the purpose of testing
// for the absense of the __ne__ method in the Python binding.
- bool operator==(const Point& other);
+ bool operator==(const Point &other);
- Point operator+(const Point& other);
- Point operator-(const Point& other);
+ Point operator+(const Point &other);
+ Point operator-(const Point &other);
Point operator/(int operand);
- friend LIBSAMPLE_API Point operator*(const Point& pt, double mult);
- friend LIBSAMPLE_API Point operator*(const Point& pt, int mult);
- friend LIBSAMPLE_API Point operator*(double mult, const Point& pt);
- friend LIBSAMPLE_API Point operator*(int mult, const Point& pt);
- friend LIBSAMPLE_API Point operator-(const Point& pt);
- friend LIBSAMPLE_API bool operator!(const Point& pt);
+ friend LIBSAMPLE_API Point operator*(const Point &pt, double mult);
+ friend LIBSAMPLE_API Point operator*(const Point &pt, int mult);
+ friend LIBSAMPLE_API Point operator*(double mult, const Point &pt);
+ friend LIBSAMPLE_API Point operator*(int mult, const Point &pt);
+ friend LIBSAMPLE_API Point operator-(const Point &pt);
+ friend LIBSAMPLE_API bool operator!(const Point &pt);
- Point& operator+=(Point &other);
- Point& operator-=(Point &other);
+ Point &operator+=(Point &other);
+ Point &operator-=(Point &other);
- void show();
+ void show() const;
private:
double m_x;
double m_y;
};
-LIBSAMPLE_API Point operator*(const Point& pt, double mult);
-LIBSAMPLE_API Point operator*(const Point& pt, int mult);
-LIBSAMPLE_API Point operator*(double mult, const Point& pt);
-LIBSAMPLE_API Point operator*(int mult, const Point& pt);
-LIBSAMPLE_API Point operator-(const Point& pt);
-LIBSAMPLE_API bool operator!(const Point& pt);
+LIBSAMPLE_API Point operator*(const Point &pt, double mult);
+LIBSAMPLE_API Point operator*(const Point &pt, int mult);
+LIBSAMPLE_API Point operator*(double mult, const Point &pt);
+LIBSAMPLE_API Point operator*(int mult, const Point &pt);
+LIBSAMPLE_API Point operator-(const Point &pt);
+LIBSAMPLE_API bool operator!(const Point &pt);
-LIBSAMPLE_API Complex transmutePointIntoComplex(const Point& point);
-LIBSAMPLE_API Point transmuteComplexIntoPoint(const Complex& cpx);
+LIBSAMPLE_API Complex transmutePointIntoComplex(const Point &point);
+LIBSAMPLE_API Point transmuteComplexIntoPoint(const Complex &cpx);
-LIBSAMPLE_API Point operator*(const Point& pt, double multiplier);
+LIBSAMPLE_API Point operator*(const Point &pt, double multiplier);
#endif // POINT_H
diff --git a/sources/shiboken6/tests/libsample/pointerholder.h b/sources/shiboken6/tests/libsample/pointerholder.h
index b872ceb5c..26f1cf0a6 100644
--- a/sources/shiboken6/tests/libsample/pointerholder.h
+++ b/sources/shiboken6/tests/libsample/pointerholder.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef POINTERHOLDER_H
#define POINTERHOLDER_H
@@ -34,12 +9,15 @@
class PointerHolder
{
public:
- explicit PointerHolder(void* ptr) : m_pointer(ptr) {}
- ~PointerHolder() {}
- inline void* pointer() const { return m_pointer; }
+ LIBMINIMAL_DEFAULT_COPY_MOVE(PointerHolder)
+
+ explicit PointerHolder(void *ptr) : m_pointer(ptr) {}
+ ~PointerHolder() = default;
+
+ inline void *pointer() const { return m_pointer; }
+
private:
- void* m_pointer;
+ void *m_pointer;
};
#endif // POINTERHOLDER_H
-
diff --git a/sources/shiboken6/tests/libsample/pointf.cpp b/sources/shiboken6/tests/libsample/pointf.cpp
index fadf3e591..6b39f73a9 100644
--- a/sources/shiboken6/tests/libsample/pointf.cpp
+++ b/sources/shiboken6/tests/libsample/pointf.cpp
@@ -1,46 +1,19 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
-#include <iostream>
#include "pointf.h"
-using namespace std;
+#include <iostream>
-PointF::PointF(const Point& point) : m_x(point.x()), m_y(point.y())
+PointF::PointF(const Point &point) noexcept : m_x(point.x()), m_y(point.y())
{
}
-PointF::PointF(double x, double y) : m_x(x), m_y(y)
+PointF::PointF(double x, double y) noexcept : m_x(x), m_y(y)
{
}
-void
-PointF::midpoint(const PointF& other, PointF* midpoint) const
+void PointF::midpoint(const PointF &other, PointF *midpoint) const
{
if (!midpoint)
return;
@@ -48,79 +21,66 @@ PointF::midpoint(const PointF& other, PointF* midpoint) const
midpoint->setY((m_y + other.m_y) / 2.0);
}
-void
-PointF::show()
+void PointF::show() const
{
- cout << "(x: " << m_x << ", y: " << m_y << ")";
+ std::cout << "(x: " << m_x << ", y: " << m_y << ")";
}
-bool
-PointF::operator==(const PointF& other)
+bool PointF::operator==(const PointF &other)
{
return m_x == other.m_x && m_y == other.m_y;
}
-PointF
-PointF::operator+(const PointF& other)
+PointF PointF::operator+(const PointF &other)
{
- return PointF(m_x + other.m_x, m_y + other.m_y);
+ return {m_x + other.m_x, m_y + other.m_y};
}
-PointF
-PointF::operator-(const PointF& other)
+PointF PointF::operator-(const PointF &other)
{
- return PointF(m_x - other.m_x, m_y - other.m_y);
+ return {m_x - other.m_x, m_y - other.m_y};
}
-PointF&
-PointF::operator+=(PointF &other)
+PointF &PointF::operator+=(PointF &other)
{
m_x += other.m_x;
m_y += other.m_y;
return *this;
}
-PointF&
-PointF::operator-=(PointF &other)
+PointF &PointF::operator-=(PointF &other)
{
m_x -= other.m_x;
m_y -= other.m_y;
return *this;
}
-PointF
-operator*(const PointF& pt, double mult)
+PointF operator*(const PointF &pt, double mult)
{
- return PointF(pt.m_x * mult, pt.m_y * mult);
+ return {pt.m_x * mult, pt.m_y * mult};
}
-PointF
-operator*(const PointF& pt, int mult)
+PointF operator*(const PointF &pt, int mult)
{
- return PointF(((int) pt.m_x) * mult, ((int) pt.m_y) * mult);
+ return PointF(int(pt.m_x) * mult, int(pt.m_y) * mult);
}
-PointF
-operator*(double mult, const PointF& pt)
+PointF operator*(double mult, const PointF &pt)
{
- return PointF(pt.m_x * mult, pt.m_y * mult);
+ return {pt.m_x * mult, pt.m_y * mult};
}
-PointF
-operator*(int mult, const PointF& pt)
+PointF operator*(int mult, const PointF &pt)
{
- return PointF(((int) pt.m_x) * mult, ((int) pt.m_y) * mult);
+ return PointF(int(pt.m_x) * mult, int(pt.m_y) * mult);
}
-PointF
-operator-(const PointF& pt)
+PointF operator-(const PointF &pt)
{
- return PointF(-pt.m_x, -pt.m_y);
+ return {-pt.m_x, -pt.m_y};
}
-bool
-operator!(const PointF& pt)
+bool operator!(const PointF &pt)
{
- return (pt.m_x == 0.0 && pt.m_y == 0.0);
+ return pt.m_x == 0.0 && pt.m_y == 0.0;
}
-
diff --git a/sources/shiboken6/tests/libsample/pointf.h b/sources/shiboken6/tests/libsample/pointf.h
index f90125c8a..bb50b5c6d 100644
--- a/sources/shiboken6/tests/libsample/pointf.h
+++ b/sources/shiboken6/tests/libsample/pointf.h
@@ -1,45 +1,22 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef POINTF_H
#define POINTF_H
+#include "libsamplemacros.h"
#include "point.h"
-#include <utility>
-#include "libsamplemacros.h"
+#include <utility>
class LIBSAMPLE_API PointF
{
public:
- PointF(const Point& point);
- PointF(double x = 0.0, double y = 0.0);
- ~PointF() {}
+ LIBMINIMAL_DEFAULT_COPY_MOVE(PointF)
+
+ PointF(const Point &point) noexcept;
+ PointF(double x = 0.0, double y = 0.0) noexcept;
+ ~PointF() noexcept = default;
inline double x() const { return m_x; }
inline double y() const { return m_y; }
@@ -50,39 +27,39 @@ public:
// This method could simply return the midpoint,
// but the interesting part of the test is to set the
// result in the pointer argument.
- void midpoint(const PointF& other, PointF* midpoint) const;
+ void midpoint(const PointF &other, PointF *midpoint) const;
// The != operator is not implemented for the purpose of testing
// for the absence of the __ne__ method in the Python binding.
- bool operator==(const PointF& other);
+ bool operator==(const PointF &other);
- PointF operator+(const PointF& other);
- PointF operator-(const PointF& other);
+ PointF operator+(const PointF &other);
+ PointF operator-(const PointF &other);
- friend LIBSAMPLE_API PointF operator*(const PointF& pt, double mult);
- friend LIBSAMPLE_API PointF operator*(const PointF& pt, int mult);
- friend LIBSAMPLE_API PointF operator*(double mult, const PointF& pt);
- friend LIBSAMPLE_API PointF operator*(int mult, const PointF& pt);
- friend LIBSAMPLE_API PointF operator-(const PointF& pt);
- friend LIBSAMPLE_API bool operator!(const PointF& pt);
+ friend LIBSAMPLE_API PointF operator*(const PointF &pt, double mult);
+ friend LIBSAMPLE_API PointF operator*(const PointF &pt, int mult);
+ friend LIBSAMPLE_API PointF operator*(double mult, const PointF &pt);
+ friend LIBSAMPLE_API PointF operator*(int mult, const PointF &pt);
+ friend LIBSAMPLE_API PointF operator-(const PointF &pt);
+ friend LIBSAMPLE_API bool operator!(const PointF &pt);
- PointF& operator+=(PointF &other);
- PointF& operator-=(PointF &other);
+ PointF &operator+=(PointF &other);
+ PointF &operator-=(PointF &other);
- void show();
+ void show() const;
private:
double m_x;
double m_y;
};
-LIBSAMPLE_API PointF operator*(const PointF& pt, double mult);
-LIBSAMPLE_API PointF operator*(const PointF& pt, int mult);
-LIBSAMPLE_API PointF operator*(double mult, const PointF& pt);
-LIBSAMPLE_API PointF operator*(int mult, const PointF& pt);
-LIBSAMPLE_API PointF operator-(const PointF& pt);
-LIBSAMPLE_API bool operator!(const PointF& pt);
+LIBSAMPLE_API PointF operator*(const PointF &pt, double mult);
+LIBSAMPLE_API PointF operator*(const PointF &pt, int mult);
+LIBSAMPLE_API PointF operator*(double mult, const PointF &pt);
+LIBSAMPLE_API PointF operator*(int mult, const PointF &pt);
+LIBSAMPLE_API PointF operator-(const PointF &pt);
+LIBSAMPLE_API bool operator!(const PointF &pt);
-LIBSAMPLE_API PointF operator*(const PointF& pt, double multiplier);
+LIBSAMPLE_API PointF operator*(const PointF &pt, double multiplier);
#endif // POINTF_H
diff --git a/sources/shiboken6/tests/libsample/polygon.cpp b/sources/shiboken6/tests/libsample/polygon.cpp
index a86bf6483..6af597192 100644
--- a/sources/shiboken6/tests/libsample/polygon.cpp
+++ b/sources/shiboken6/tests/libsample/polygon.cpp
@@ -1,59 +1,26 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
-#include <iostream>
#include "polygon.h"
-using namespace std;
-
-Polygon::Polygon(double x, double y)
+Polygon::Polygon(double x, double y) : m_points({Point(x, y)})
{
- m_points.push_back(Point(x, y));
}
-Polygon::Polygon(Point point)
+Polygon::Polygon(Point point) : m_points({point})
{
- m_points.push_back(point);
}
-Polygon::Polygon(PointList points)
+Polygon::Polygon(PointList points) : m_points(points)
{
- m_points = points;
}
-void
-Polygon::addPoint(Point point)
+void Polygon::addPoint(Point point)
{
m_points.push_back(point);
}
-Polygon
-Polygon::doublePolygonScale(Polygon polygon)
+Polygon Polygon::doublePolygonScale(Polygon polygon)
{
Polygon result;
for (const auto &point : polygon.points())
@@ -61,15 +28,12 @@ Polygon::doublePolygonScale(Polygon polygon)
return result;
}
-void
-Polygon::stealOwnershipFromPython(Point* point)
+void Polygon::stealOwnershipFromPython(Point *point)
{
delete point;
}
-void
-Polygon::stealOwnershipFromPython(Polygon* polygon)
+void Polygon::stealOwnershipFromPython(Polygon *polygon)
{
delete polygon;
}
-
diff --git a/sources/shiboken6/tests/libsample/polygon.h b/sources/shiboken6/tests/libsample/polygon.h
index 728332d1a..2424ddd51 100644
--- a/sources/shiboken6/tests/libsample/polygon.h
+++ b/sources/shiboken6/tests/libsample/polygon.h
@@ -1,66 +1,39 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef POLYGON_H
#define POLYGON_H
-#include <list>
+#include "libsamplemacros.h"
#include "point.h"
-#include "libsamplemacros.h"
+#include <list>
-class LIBSAMPLE_API Polygon
+class LIBSAMPLE_API Polygon // should be moveable
{
public:
using PointList = std::list<Point>;
- Polygon() {}
+ Polygon() noexcept = default;
Polygon(double x, double y);
Polygon(Point point);
Polygon(PointList points);
- ~Polygon() {}
void addPoint(Point point);
- inline const PointList& points() const { return m_points; }
+ inline const PointList &points() const { return m_points; }
// This method intentionally receives and returns copies of a Polygon object.
static Polygon doublePolygonScale(Polygon polygon);
// This method invalidates the argument to be used for Polygon(Point) implicit conversion.
- static void stealOwnershipFromPython(Point* point);
+ static void stealOwnershipFromPython(Point *point);
// This method invalidates the argument to be used in a call to doublePolygonScale(Polygon).
- static void stealOwnershipFromPython(Polygon* polygon);
+ static void stealOwnershipFromPython(Polygon *polygon);
private:
PointList m_points;
};
#endif // POLYGON_H
-
diff --git a/sources/shiboken6/tests/libsample/privatector.h b/sources/shiboken6/tests/libsample/privatector.h
index f168fdacd..3b38414f8 100644
--- a/sources/shiboken6/tests/libsample/privatector.h
+++ b/sources/shiboken6/tests/libsample/privatector.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef PRIVATECTOR_H
#define PRIVATECTOR_H
@@ -34,22 +9,34 @@
class PrivateCtor
{
public:
- inline static PrivateCtor* instance()
+ inline static PrivateCtor *instance()
{
static PrivateCtor self;
- self.m_instanciations++;
+ self.m_instantiations++;
return &self;
}
inline int instanceCalls()
{
- return m_instanciations;
+ return m_instantiations;
}
private:
- int m_instanciations;
+ int m_instantiations = 0;
- PrivateCtor() : m_instanciations(0) {}
+ PrivateCtor() = default;
};
-#endif
+class DeletedDefaultCtor
+{
+public:
+ DeletedDefaultCtor() = delete;
+
+ DeletedDefaultCtor(const DeletedDefaultCtor &) = default;
+ DeletedDefaultCtor(DeletedDefaultCtor &&) = default;
+ DeletedDefaultCtor &operator=(const DeletedDefaultCtor &) = default;
+ DeletedDefaultCtor &operator=(DeletedDefaultCtor &&) = default;
+ ~DeletedDefaultCtor() = default;
+};
+
+#endif // PRIVATECTOR_H
diff --git a/sources/shiboken6/tests/libsample/privatedtor.h b/sources/shiboken6/tests/libsample/privatedtor.h
index 64b8652f6..05f18ea53 100644
--- a/sources/shiboken6/tests/libsample/privatedtor.h
+++ b/sources/shiboken6/tests/libsample/privatedtor.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef PRIVATEDTOR_H
#define PRIVATEDTOR_H
@@ -34,27 +9,28 @@
class PrivateDtor
{
public:
- inline static PrivateDtor* instance()
+ LIBMINIMAL_DISABLE_COPY_MOVE(PrivateDtor)
+
+ inline static PrivateDtor *instance()
{
static PrivateDtor self;
- self.m_instanciations++;
+ self.m_instantiations++;
return &self;
}
inline int instanceCalls()
{
- return m_instanciations;
+ return m_instantiations;
}
protected:
- inline int protectedInstanceCalls() { return m_instanciations; }
+ inline int protectedInstanceCalls() { return m_instantiations; }
private:
- int m_instanciations;
+ int m_instantiations = 0;
- PrivateDtor() : m_instanciations(0) {}
- PrivateDtor(const PrivateDtor&) {}
- ~PrivateDtor() {}
+ PrivateDtor() noexcept = default;
+ ~PrivateDtor() = default;
};
-#endif
+#endif // PRIVATEDTOR_H
diff --git a/sources/shiboken6/tests/libsample/protected.cpp b/sources/shiboken6/tests/libsample/protected.cpp
index b0f3f1cdc..7ab52d22b 100644
--- a/sources/shiboken6/tests/libsample/protected.cpp
+++ b/sources/shiboken6/tests/libsample/protected.cpp
@@ -1,32 +1,16 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "protected.h"
int ProtectedVirtualDestructor::dtor_called = 0;
+const char *ProtectedNonPolymorphic::dataTypeName(void *) const
+{
+ return "pointer";
+}
+
+const char *ProtectedNonPolymorphic::dataTypeName(int) const
+{
+ return "integer";
+}
diff --git a/sources/shiboken6/tests/libsample/protected.h b/sources/shiboken6/tests/libsample/protected.h
index 0f4fbf299..059cced5d 100644
--- a/sources/shiboken6/tests/libsample/protected.h
+++ b/sources/shiboken6/tests/libsample/protected.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef PROTECTED_H
#define PROTECTED_H
@@ -32,26 +7,30 @@
#include "libsamplemacros.h"
#include "objecttype.h"
#include "point.h"
+
#include <string>
#include <list>
class LIBSAMPLE_API ProtectedNonPolymorphic
{
public:
+ LIBMINIMAL_DEFAULT_COPY_MOVE(ProtectedNonPolymorphic)
+
explicit ProtectedNonPolymorphic(const char *name) : m_name(name) {}
- ~ProtectedNonPolymorphic() {}
+ ~ProtectedNonPolymorphic() = default;
- inline const char* publicName() { return m_name.c_str(); }
+ inline const char *publicName() { return m_name.c_str(); }
- inline static ProtectedNonPolymorphic* create() { return new ProtectedNonPolymorphic("created"); }
+ inline static ProtectedNonPolymorphic *create()
+ { return new ProtectedNonPolymorphic("created"); }
protected:
- inline const char* protectedName() { return m_name.c_str(); }
+ inline const char *protectedName() { return m_name.c_str(); }
inline int protectedSum(int a0, int a1) { return a0 + a1; }
inline int modifiedProtectedSum(int a0, int a1) { return a0 + a1; }
- inline static const char* protectedStatic() { return "protectedStatic"; }
- inline const char* dataTypeName(void *data = nullptr) const { return "pointer"; }
- inline const char* dataTypeName(int data) const { return "integer"; }
+ inline static const char *protectedStatic() { return "protectedStatic"; }
+ const char *dataTypeName(void *data = nullptr) const;
+ const char *dataTypeName(int data) const;
private:
std::string m_name;
@@ -60,15 +39,18 @@ private:
class LIBSAMPLE_API ProtectedPolymorphic
{
public:
+ LIBMINIMAL_DEFAULT_COPY_MOVE(ProtectedPolymorphic)
+
explicit ProtectedPolymorphic(const char *name) : m_name(name) {}
- virtual ~ProtectedPolymorphic() {}
+ virtual ~ProtectedPolymorphic() = default;
- inline static ProtectedPolymorphic* create() { return new ProtectedPolymorphic("created"); }
- inline const char* publicName() { return m_name.c_str(); }
- inline const char* callProtectedName() { return protectedName(); }
+ inline static ProtectedPolymorphic *create()
+ { return new ProtectedPolymorphic("created"); }
+ inline const char *publicName() { return m_name.c_str(); }
+ inline const char *callProtectedName() { return protectedName(); }
protected:
- virtual const char* protectedName() { return m_name.c_str(); }
+ virtual const char *protectedName() { return m_name.c_str(); }
private:
std::string m_name;
@@ -77,22 +59,29 @@ private:
class LIBSAMPLE_API ProtectedPolymorphicDaughter : public ProtectedPolymorphic
{
public:
- explicit ProtectedPolymorphicDaughter(const char *name) : ProtectedPolymorphic(name) {}
- inline static ProtectedPolymorphicDaughter* create() { return new ProtectedPolymorphicDaughter("created"); }
+ explicit ProtectedPolymorphicDaughter(const char *name) :
+ ProtectedPolymorphic(name) {}
+ inline static ProtectedPolymorphicDaughter *create()
+ { return new ProtectedPolymorphicDaughter("created"); }
};
class LIBSAMPLE_API ProtectedPolymorphicGrandDaughter: public ProtectedPolymorphicDaughter
{
public:
- explicit ProtectedPolymorphicGrandDaughter(const char *name) : ProtectedPolymorphicDaughter(name) {}
- inline static ProtectedPolymorphicGrandDaughter* create() { return new ProtectedPolymorphicGrandDaughter("created"); }
+ explicit ProtectedPolymorphicGrandDaughter(const char *name) :
+ ProtectedPolymorphicDaughter(name) {}
+ inline static ProtectedPolymorphicGrandDaughter *create()
+ { return new ProtectedPolymorphicGrandDaughter("created"); }
};
class LIBSAMPLE_API ProtectedVirtualDestructor
{
public:
- ProtectedVirtualDestructor() {}
- inline static ProtectedVirtualDestructor* create() { return new ProtectedVirtualDestructor(); }
+ LIBMINIMAL_DISABLE_COPY_MOVE(ProtectedVirtualDestructor)
+
+ ProtectedVirtualDestructor() noexcept = default;
+ inline static ProtectedVirtualDestructor *create()
+ { return new ProtectedVirtualDestructor(); }
inline static int dtorCalled() { return dtor_called; }
inline static void resetDtorCounter() { dtor_called = 0; }
protected:
@@ -104,8 +93,10 @@ private:
class LIBSAMPLE_API ProtectedEnumClass
{
public:
- ProtectedEnumClass() {}
- virtual ~ProtectedEnumClass() {}
+ LIBMINIMAL_DISABLE_COPY_MOVE(ProtectedEnumClass)
+
+ ProtectedEnumClass() noexcept = default;
+ virtual ~ProtectedEnumClass() = default;
enum PublicEnum {
PublicItem0,
PublicItem1
@@ -115,36 +106,33 @@ protected:
ProtectedItem0,
ProtectedItem1
};
- ProtectedEnum callProtectedEnumMethod(ProtectedEnum in) { return protectedEnumMethod(in); }
- inline PublicEnum callPublicEnumMethod(PublicEnum in) { return publicEnumMethod(in); }
+ ProtectedEnum callProtectedEnumMethod(ProtectedEnum in)
+ { return protectedEnumMethod(in); }
+ inline PublicEnum callPublicEnumMethod(PublicEnum in)
+ { return publicEnumMethod(in); }
virtual ProtectedEnum protectedEnumMethod(ProtectedEnum in) { return in; }
virtual PublicEnum publicEnumMethod(PublicEnum in) { return in; }
};
-
class LIBSAMPLE_API ProtectedProperty
{
public:
- ProtectedProperty()
- : protectedValueTypeProperty(Point(0, 0)),
- protectedProperty(0),
- protectedEnumProperty(Event::NO_EVENT),
- protectedValueTypePointerProperty(nullptr),
- protectedObjectTypeProperty(nullptr)
- {}
+ ProtectedProperty() = default;
+
protected:
// This is deliberately the first member to test wrapper registration
// for value type members sharing the same memory address.
- Point protectedValueTypeProperty;
- int protectedProperty;
+ Point protectedValueTypeProperty{0, 0};
+ int protectedProperty = 0;
std::list<int> protectedContainerProperty;
- Event::EventType protectedEnumProperty;
- Point* protectedValueTypePointerProperty;
- ObjectType* protectedObjectTypeProperty;
+ Event::EventType protectedEnumProperty = Event::NO_EVENT;
+ Point *protectedValueTypePointerProperty = nullptr;
+ ObjectType *protectedObjectTypeProperty = nullptr;
};
-LIBSAMPLE_API inline ProtectedProperty* createProtectedProperty() {
+LIBSAMPLE_API inline ProtectedProperty *createProtectedProperty()
+{
return new ProtectedProperty;
}
diff --git a/sources/shiboken6/tests/libsample/rect.h b/sources/shiboken6/tests/libsample/rect.h
index 1897a8dce..53296d26c 100644
--- a/sources/shiboken6/tests/libsample/rect.h
+++ b/sources/shiboken6/tests/libsample/rect.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef RECT_H
#define RECT_H
@@ -34,53 +9,46 @@
class LIBSAMPLE_API Rect
{
public:
- Rect()
- {
- m_left = m_top = 0;
- m_right = m_bottom = -1;
- }
- Rect(int left, int top, int right, int bottom)
+ LIBMINIMAL_DEFAULT_COPY_MOVE(Rect)
+
+ Rect() noexcept = default;
+ explicit Rect(int left, int top, int right, int bottom) noexcept
: m_left(left), m_top(top), m_right(right), m_bottom(bottom) { }
- ~Rect() {}
+ ~Rect() = default;
+
inline int left() const { return m_left; }
inline int top() const { return m_top; }
inline int right() const { return m_right; }
inline int bottom() const { return m_bottom; }
private:
- int m_left;
- int m_top;
- int m_right;
- int m_bottom;
+ int m_left = 0;
+ int m_top = 0;
+ int m_right = -1;
+ int m_bottom = -1;
};
class LIBSAMPLE_API RectF
{
public:
- RectF()
- {
- m_left = m_top = 0;
- m_right = m_bottom = -1;
- }
- RectF(int left, int top, int right, int bottom)
+ LIBMINIMAL_DEFAULT_COPY_MOVE(RectF)
+
+ RectF() noexcept = default;
+ explicit RectF(int left, int top, int right, int bottom) noexcept
: m_left(left), m_top(top), m_right(right), m_bottom(bottom) { }
- RectF(const Rect& other)
- {
- m_left = other.left();
- m_top = other.top();
- m_right = other.right();
- m_bottom = other.bottom();
- }
- ~RectF() {}
+ RectF(const Rect &other) noexcept :
+ m_left(other.left()), m_top(other.top()),
+ m_right(other.right()), m_bottom(other.bottom()) {}
+ ~RectF() = default;
+
inline double left() const { return m_left; }
inline double top() const { return m_top; }
inline double right() const { return m_right; }
inline double bottom() const { return m_bottom; }
private:
- double m_left;
- double m_top;
- double m_right;
- double m_bottom;
+ double m_left = 0;
+ double m_top = 0;
+ double m_right = -1;
+ double m_bottom = -1;
};
#endif // RECT_H
-
diff --git a/sources/shiboken6/tests/libsample/reference.cpp b/sources/shiboken6/tests/libsample/reference.cpp
index 37ce1a590..29dcfc054 100644
--- a/sources/shiboken6/tests/libsample/reference.cpp
+++ b/sources/shiboken6/tests/libsample/reference.cpp
@@ -1,78 +1,53 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
-#include <iostream>
#include "reference.h"
-using namespace std;
+#include <iostream>
+
+void Reference::show() const
+{
+ std::cout << "Reference.objId: " << m_objId << ", address: " << this;
+}
-void
-Reference::show() const
+Reference &Reference::returnMySecondArg(int, Reference &ref)
{
- cout << "Reference.objId: " << m_objId << ", address: " << this;
+ return ref;
}
-int
-Reference::usesReferenceVirtual(Reference& r, int inc)
+int Reference::usesReferenceVirtual(Reference &r, int inc)
{
return r.m_objId + inc;
}
-int
-Reference::usesConstReferenceVirtual(const Reference& r, int inc)
+int Reference::usesConstReferenceVirtual(const Reference &r, int inc)
{
return r.m_objId + inc;
}
-int
-Reference::callUsesReferenceVirtual(Reference& r, int inc)
+int Reference::callUsesReferenceVirtual(Reference &r, int inc)
{
return usesReferenceVirtual(r, inc);
}
-int
-Reference::callUsesConstReferenceVirtual(const Reference& r, int inc)
+int Reference::callUsesConstReferenceVirtual(const Reference &r, int inc)
{
return usesConstReferenceVirtual(r, inc);
}
-void
-Reference::alterReferenceIdVirtual(Reference& r)
+void Reference::alterReferenceIdVirtual(Reference &r)
{
r.setObjId(r.objId() * Reference::multiplier());
}
-void
-Reference::callAlterReferenceIdVirtual(Reference& r)
+void Reference::callAlterReferenceIdVirtual(Reference &r)
{
alterReferenceIdVirtual(r);
}
-ObjTypeReference::~ObjTypeReference()
+ObjTypeReference::~ObjTypeReference() = default;
+
+ObjTypeReference &ObjTypeReference::returnMySecondArg(int, ObjTypeReference &ref)
{
+ return ref;
}
diff --git a/sources/shiboken6/tests/libsample/reference.h b/sources/shiboken6/tests/libsample/reference.h
index 2c0498c6f..52818d9ea 100644
--- a/sources/shiboken6/tests/libsample/reference.h
+++ b/sources/shiboken6/tests/libsample/reference.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef REFERENCE_H
#define REFERENCE_H
@@ -34,34 +9,37 @@
class LIBSAMPLE_API Reference
{
public:
- explicit Reference(int objId = -1)
+ LIBMINIMAL_DEFAULT_COPY_MOVE(Reference)
+
+ explicit Reference(int objId = -1) noexcept
: m_objId(objId) {}
- virtual ~Reference() {}
+ virtual ~Reference() = default;
- inline int objId() { return m_objId; }
+ inline int objId() const { return m_objId; }
inline void setObjId(int objId) { m_objId = objId; }
- inline static int usesReference(Reference& r) { return r.m_objId; }
- inline static int usesConstReference(const Reference& r) { return r.m_objId; }
+ inline static int usesReference(Reference &r) { return r.m_objId; }
+ inline static int usesConstReference(const Reference &r) { return r.m_objId; }
- virtual int usesReferenceVirtual(Reference& r, int inc);
- virtual int usesConstReferenceVirtual(const Reference& r, int inc);
+ virtual int usesReferenceVirtual(Reference &r, int inc);
+ virtual int usesConstReferenceVirtual(const Reference &r, int inc);
- int callUsesReferenceVirtual(Reference& r, int inc);
- int callUsesConstReferenceVirtual(const Reference& r, int inc);
+ int callUsesReferenceVirtual(Reference &r, int inc);
+ int callUsesConstReferenceVirtual(const Reference &r, int inc);
- virtual void alterReferenceIdVirtual(Reference& r);
- void callAlterReferenceIdVirtual(Reference& r);
+ virtual void alterReferenceIdVirtual(Reference &r);
+ void callAlterReferenceIdVirtual(Reference &r);
void show() const;
inline static int multiplier() { return 10; }
- virtual Reference& returnMyFirstArg(Reference& ref) { return ref; }
- virtual Reference& returnMySecondArg(int a, Reference& ref) { return ref; }
+ virtual Reference &returnMyFirstArg(Reference &ref) { return ref; }
+ virtual Reference &returnMySecondArg(int a, Reference &ref);
// nonsense operator to test if Shiboken is ignoring dereference operators.
int operator*() { return m_objId; }
+
private:
int m_objId;
};
@@ -69,13 +47,16 @@ private:
class LIBSAMPLE_API ObjTypeReference
{
public:
- ObjTypeReference() {}
- ObjTypeReference(const ObjTypeReference&) {}
+ LIBMINIMAL_DISABLE_MOVE(ObjTypeReference)
+
+ ObjTypeReference() noexcept = default;
+ ObjTypeReference(const ObjTypeReference &) noexcept = default;
+ ObjTypeReference &operator=(const ObjTypeReference &) = delete;
virtual ~ObjTypeReference();
- virtual ObjTypeReference& returnMyFirstArg(ObjTypeReference& ref) { return ref; }
- virtual ObjTypeReference& returnMySecondArg(int a, ObjTypeReference& ref) { return ref; }
- virtual ObjTypeReference& justAPureVirtualFunc(ObjTypeReference& ref) = 0;
+
+ virtual ObjTypeReference &returnMyFirstArg(ObjTypeReference &ref) { return ref; }
+ virtual ObjTypeReference &returnMySecondArg(int a, ObjTypeReference &ref);
+ virtual ObjTypeReference &justAPureVirtualFunc(ObjTypeReference &ref) = 0;
};
#endif // REFERENCE_H
-
diff --git a/sources/shiboken6/tests/libsample/removednamespaces.h b/sources/shiboken6/tests/libsample/removednamespaces.h
index 47c18c049..669f2ebf0 100644
--- a/sources/shiboken6/tests/libsample/removednamespaces.h
+++ b/sources/shiboken6/tests/libsample/removednamespaces.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef REMOVEDNAMESPACE_H
#define REMOVEDNAMESPACE_H
@@ -71,4 +46,3 @@ namespace RemovedNamespace3
} // namespace UnremovedNamespace
#endif // REMOVEDNAMESPACE_H
-
diff --git a/sources/shiboken6/tests/libsample/renaming.cpp b/sources/shiboken6/tests/libsample/renaming.cpp
index 30586e1db..d67b42a51 100644
--- a/sources/shiboken6/tests/libsample/renaming.cpp
+++ b/sources/shiboken6/tests/libsample/renaming.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "renaming.h"
diff --git a/sources/shiboken6/tests/libsample/renaming.h b/sources/shiboken6/tests/libsample/renaming.h
index cd88b36bf..787ccc2f7 100644
--- a/sources/shiboken6/tests/libsample/renaming.h
+++ b/sources/shiboken6/tests/libsample/renaming.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef RENAMING_H
#define RENAMING_H
diff --git a/sources/shiboken6/tests/libsample/sample.cpp b/sources/shiboken6/tests/libsample/sample.cpp
index 638413fd2..5b5f8588b 100644
--- a/sources/shiboken6/tests/libsample/sample.cpp
+++ b/sources/shiboken6/tests/libsample/sample.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "sample.h"
@@ -40,7 +15,7 @@ int sample::value() const
return m_value;
}
-bool operator==(const sample&s1, const sample&s2)
+bool operator==(const sample &s1, const sample &s2)
{
return s1.value() == s2.value();
}
diff --git a/sources/shiboken6/tests/libsample/sample.h b/sources/shiboken6/tests/libsample/sample.h
index a6a0ff154..27909571a 100644
--- a/sources/shiboken6/tests/libsample/sample.h
+++ b/sources/shiboken6/tests/libsample/sample.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef SAMPLE_H
#define SAMPLE_H
@@ -45,9 +20,9 @@ namespace sample
};
// shiboken must not generate richcompare for namespace sample
- LIBSAMPLE_API bool operator==(const sample&s1, const sample&s2);
+ LIBSAMPLE_API bool operator==(const sample &s1, const sample &s2);
const int INT_CONSTANT = 42;
}
-#endif
+#endif // SAMPLE_H
diff --git a/sources/shiboken6/tests/libsample/samplenamespace.cpp b/sources/shiboken6/tests/libsample/samplenamespace.cpp
index b3ef96f5a..eae5af2d2 100644
--- a/sources/shiboken6/tests/libsample/samplenamespace.cpp
+++ b/sources/shiboken6/tests/libsample/samplenamespace.cpp
@@ -1,37 +1,11 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
-#include <iostream>
-#include <cstdlib>
-#include <time.h>
#include "samplenamespace.h"
-using namespace std;
+#include <iostream>
+#include <cstdlib>
+#include <ctime>
namespace SampleNamespace
{
@@ -43,91 +17,81 @@ SomeClass::PublicScopedEnum SomeClass::protectedMethodReturningPublicScopedEnum(
return PublicScopedEnum::v1;
}
-OutValue
-enumInEnumOut(InValue in)
+OutValue enumInEnumOut(InValue in)
{
- OutValue retval;
+ auto retval = OutValue(-1);
switch(in) {
- case ZeroIn:
- retval = ZeroOut;
- break;
- case OneIn:
- retval = OneOut;
- break;
- case TwoIn:
- retval = TwoOut;
- break;
- default:
- retval = (OutValue) -1;
+ case ZeroIn:
+ retval = ZeroOut;
+ break;
+ case OneIn:
+ retval = OneOut;
+ break;
+ case TwoIn:
+ retval = TwoOut;
+ break;
+ default:
+ break;
}
return retval;
}
-Option
-enumArgumentWithDefaultValue(Option opt)
+Option enumArgumentWithDefaultValue(Option opt)
{
return opt;
}
-int
-getNumber(Option opt)
+int getNumber(Option opt)
{
int retval;
switch(opt) {
- case RandomNumber:
- retval = rand() % 100;
- break;
- case UnixTime:
- retval = (int) time(nullptr);
- break;
- default:
- retval = 0;
+ case RandomNumber:
+ retval = rand() % 100;
+ break;
+ case UnixTime:
+ retval = int(std::time(nullptr));
+ break;
+ default:
+ retval = 0;
+ break;
}
return retval;
}
-void
-doSomethingWithArray(const unsigned char* data, unsigned int size, const char* format)
+void doSomethingWithArray(const unsigned char *, unsigned int, const char *)
{
// This function does nothing in fact.
// It is here as a dummy copy of QPixmap.loadFromData method
// to check compilation issues, i.e. if it compiles, it's ok.
}
-int
-enumItemAsDefaultValueToIntArgument(int value)
+int enumItemAsDefaultValueToIntArgument(int value)
{
return value;
}
-void
-forceDecisorSideA(ObjectType* object)
+void forceDecisorSideA(ObjectType *)
{
}
-void
-forceDecisorSideA(const Point& pt, const Str& text, ObjectType* object)
+void forceDecisorSideA(const Point &, const Str &, ObjectType *)
{
}
-void
-forceDecisorSideB(int a, ObjectType* object)
+void forceDecisorSideB(int, ObjectType *)
{
}
-void
-forceDecisorSideB(int a, const Point& pt, const Str& text, ObjectType* object)
+void forceDecisorSideB(int, const Point &, const Str &, ObjectType *)
{
}
-double
-passReferenceToValueType(const Point& point, double multiplier)
+double passReferenceToValueType(const Point &point, double multiplier)
{
return (point.x() + point.y()) * multiplier;
}
-int
-passReferenceToObjectType(const ObjectType& obj, int multiplier)
+int passReferenceToObjectType(const ObjectType &obj, int multiplier)
{
return obj.objectName().size() * multiplier;
}
diff --git a/sources/shiboken6/tests/libsample/samplenamespace.h b/sources/shiboken6/tests/libsample/samplenamespace.h
index 5fe269c5e..99a0787ee 100644
--- a/sources/shiboken6/tests/libsample/samplenamespace.h
+++ b/sources/shiboken6/tests/libsample/samplenamespace.h
@@ -1,40 +1,16 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef SAMPLENAMESPACE_H
#define SAMPLENAMESPACE_H
-#include <list>
#include "libsamplemacros.h"
#include "str.h"
#include "point.h"
#include "objecttype.h"
+#include <list>
+
// Anonymous global enum
enum {
AnonymousGlobalEnum_Value0,
@@ -44,6 +20,25 @@ enum {
namespace SampleNamespace
{
+inline namespace InlineNamespace
+{
+ enum EnumWithinInlineNamespace { EWIN_Value0, EWIN_Value1 };
+
+ class LIBSAMPLE_API ClassWithinInlineNamespace {
+ public:
+ LIBMINIMAL_DEFAULT_COPY_MOVE(ClassWithinInlineNamespace)
+
+ ClassWithinInlineNamespace() noexcept = default;
+ ~ClassWithinInlineNamespace() = default;
+
+ void setValue(EnumWithinInlineNamespace v) { m_value = v; }
+ EnumWithinInlineNamespace value() const { return m_value; }
+
+ private:
+ EnumWithinInlineNamespace m_value = EWIN_Value0;
+ };
+} // inline ns
+
enum Option {
None_,
RandomNumber,
@@ -80,7 +75,8 @@ inline double powerOfTwo(double num) {
return num * num;
}
-LIBSAMPLE_API void doSomethingWithArray(const unsigned char *data, unsigned int size, const char *format = nullptr);
+LIBSAMPLE_API void doSomethingWithArray(const unsigned char *data, unsigned int size,
+ const char *format = nullptr);
LIBSAMPLE_API int enumItemAsDefaultValueToIntArgument(int value = ZeroIn);
@@ -95,7 +91,10 @@ public:
class OkThisIsRecursiveEnough
{
public:
- virtual ~OkThisIsRecursiveEnough() {}
+ LIBMINIMAL_DISABLE_COPY_MOVE(OkThisIsRecursiveEnough)
+
+ OkThisIsRecursiveEnough() noexcept = default;
+ virtual ~OkThisIsRecursiveEnough() = default;
enum NiceEnum {
NiceValue1, NiceValue2
};
@@ -104,8 +103,9 @@ public:
NiceClassValue1, NiceClassValue2
};
- inline int someMethod(SomeInnerClass*) { return 0; }
- virtual OkThisIsRecursiveEnough* someVirtualMethod(OkThisIsRecursiveEnough* arg) { return arg; }
+ inline int someMethod(SomeInnerClass *) { return 0; }
+ virtual OkThisIsRecursiveEnough *someVirtualMethod(OkThisIsRecursiveEnough *arg)
+ { return arg; }
};
protected:
enum ProtectedEnum {
@@ -125,7 +125,8 @@ protected:
PublicScopedEnum protectedMethodReturningPublicScopedEnum() const;
};
-LIBSAMPLE_API inline int enumAsInt(SomeClass::PublicScopedEnum value) { return static_cast<int>(value); }
+LIBSAMPLE_API inline int enumAsInt(SomeClass::PublicScopedEnum value)
+{ return static_cast<int>(value); }
class DerivedFromNamespace : public SomeClass::SomeInnerClass::OkThisIsRecursiveEnough
{
@@ -134,29 +135,30 @@ public:
// only to cause namespace confusion
// enum SampleNamespace {
// };
- virtual OkThisIsRecursiveEnough* someVirtualMethod(OkThisIsRecursiveEnough* arg) { return arg; }
+ virtual OkThisIsRecursiveEnough *someVirtualMethod(OkThisIsRecursiveEnough *arg) { return arg; }
inline OkThisIsRecursiveEnough *methodReturningTypeFromParentScope() { return nullptr; }
};
// The combination of the following two overloaded methods could trigger a
// problematic behaviour on the overload decisor, if it isn't working properly.
LIBSAMPLE_API void forceDecisorSideA(ObjectType *object = nullptr);
-LIBSAMPLE_API void forceDecisorSideA(const Point& pt, const Str& text, ObjectType* object = 0);
+LIBSAMPLE_API void forceDecisorSideA(const Point &pt, const Str &text,
+ ObjectType *object = nullptr);
// The combination of the following two overloaded methods could trigger a
// problematic behaviour on the overload decisor, if it isn't working properly.
// This is a variation of forceDecisorSideB.
LIBSAMPLE_API void forceDecisorSideB(int a, ObjectType *object = nullptr);
-LIBSAMPLE_API void forceDecisorSideB(int a, const Point &pt, const Str &text, ObjectType *object = nullptr);
+LIBSAMPLE_API void forceDecisorSideB(int a, const Point &pt, const Str &text,
+ ObjectType *object = nullptr);
// Add a new signature on type system with only a Point value as parameter.
-LIBSAMPLE_API double passReferenceToValueType(const Point& point, double multiplier);
+LIBSAMPLE_API double passReferenceToValueType(const Point &point, double multiplier);
// Add a new signature on type system with only a ObjectType pointer as parameter.
-LIBSAMPLE_API int passReferenceToObjectType(const ObjectType& obj, int multiplier);
+LIBSAMPLE_API int passReferenceToObjectType(const ObjectType &obj, int multiplier);
extern LIBSAMPLE_API int variableInNamespace;
} // namespace SampleNamespace
#endif // SAMPLENAMESPACE_H
-
diff --git a/sources/shiboken6/tests/libsample/sbkdate.cpp b/sources/shiboken6/tests/libsample/sbkdate.cpp
index 8ba18af43..fd408f637 100644
--- a/sources/shiboken6/tests/libsample/sbkdate.cpp
+++ b/sources/shiboken6/tests/libsample/sbkdate.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "sbkdate.h"
diff --git a/sources/shiboken6/tests/libsample/sbkdate.h b/sources/shiboken6/tests/libsample/sbkdate.h
index bbe3d3ca8..5e1dd0b84 100644
--- a/sources/shiboken6/tests/libsample/sbkdate.h
+++ b/sources/shiboken6/tests/libsample/sbkdate.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef SBKDATE_H
#define SBKDATE_H
@@ -34,7 +9,7 @@
class LIBSAMPLE_API SbkDate
{
public:
- SbkDate(int d, int m, int y);
+ explicit SbkDate(int d, int m, int y);
int day() const;
int month() const;
@@ -47,4 +22,3 @@ private:
};
#endif // SBKDATE_H
-
diff --git a/sources/shiboken6/tests/libsample/simplefile.cpp b/sources/shiboken6/tests/libsample/simplefile.cpp
index 3b68e02c3..e51b14088 100644
--- a/sources/shiboken6/tests/libsample/simplefile.cpp
+++ b/sources/shiboken6/tests/libsample/simplefile.cpp
@@ -1,108 +1,73 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
-#include <stdlib.h>
-#include <string.h>
-#include <fstream>
#include "simplefile.h"
-class SimpleFile_p
+#include <cstdlib>
+#include <cstdio>
+#include <string>
+#include <filesystem>
+
+class SimpleFilePrivate
{
public:
- SimpleFile_p(const char* filename) : m_descriptor(nullptr), m_size(0)
- {
- m_filename = strdup(filename);
- }
+ LIBMINIMAL_DISABLE_COPY_MOVE(SimpleFilePrivate)
- ~SimpleFile_p()
- {
- free(m_filename);
- }
+ SimpleFilePrivate(const char *filename) : m_filename(filename) {}
+ ~SimpleFilePrivate() = default;
- char* m_filename;
- FILE* m_descriptor;
- long m_size;
+ std::string m_filename;
+ FILE *m_descriptor = nullptr;
+ long m_size = 0;
};
-SimpleFile::SimpleFile(const char* filename)
+SimpleFile::SimpleFile(const char *filename) :
+ p(std::make_unique<SimpleFilePrivate>(filename))
{
- p = new SimpleFile_p(filename);
}
SimpleFile::~SimpleFile()
{
close();
- delete p;
}
-const char* SimpleFile::filename()
+const char *SimpleFile::filename()
{
- return p->m_filename;
+ return p->m_filename.c_str();
}
-long SimpleFile::size()
+long SimpleFile::size() const
{
return p->m_size;
}
-bool
-SimpleFile::open()
+bool SimpleFile::open()
{
- if ((p->m_descriptor = fopen(p->m_filename, "rb")) == nullptr)
+ auto *descriptor = std::fopen(p->m_filename.c_str(), "rb");
+ if (descriptor == nullptr)
return false;
- fseek(p->m_descriptor, 0, SEEK_END);
- p->m_size = ftell(p->m_descriptor);
- rewind(p->m_descriptor);
+ p->m_descriptor = descriptor;
+ const auto size = std::filesystem::file_size(std::filesystem::path(p->m_filename));
+ p->m_size = long(size);
return true;
}
-void
-SimpleFile::close()
+void SimpleFile::close()
{
- if (p->m_descriptor) {
- fclose(p->m_descriptor);
+ if (p->m_descriptor != nullptr) {
+ std::fclose(p->m_descriptor);
p->m_descriptor = nullptr;
}
}
-bool
-SimpleFile::exists() const
+bool SimpleFile::exists() const
{
- std::ifstream ifile(p->m_filename);
- return !ifile.fail();
+ return std::filesystem::exists(std::filesystem::path(p->m_filename));
}
-bool
-SimpleFile::exists(const char* filename)
+bool SimpleFile::exists(const char *filename)
{
- std::ifstream ifile(filename);
- return !ifile.fail();
+ return std::filesystem::exists(std::filesystem::path(filename));
}
-
diff --git a/sources/shiboken6/tests/libsample/simplefile.h b/sources/shiboken6/tests/libsample/simplefile.h
index 7a437a99d..e4612c944 100644
--- a/sources/shiboken6/tests/libsample/simplefile.h
+++ b/sources/shiboken6/tests/libsample/simplefile.h
@@ -1,56 +1,34 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef SIMPLEFILE_H
#define SIMPLEFILE_H
#include "libsamplemacros.h"
-#include <stdio.h>
-class SimpleFile_p;
+#include <memory>
+
+class SimpleFilePrivate;
class LIBSAMPLE_API SimpleFile
{
public:
- explicit SimpleFile(const char* filename);
+ LIBMINIMAL_DISABLE_COPY(SimpleFile)
+ LIBMINIMAL_DEFAULT_MOVE(SimpleFile)
+
+ explicit SimpleFile(const char *filename);
~SimpleFile();
- const char* filename();
- long size();
+ const char *filename();
+ long size() const;
bool open();
void close();
bool exists() const;
- static bool exists(const char* filename);
+ static bool exists(const char *filename);
private:
- SimpleFile_p *p;
+ std::unique_ptr<SimpleFilePrivate> p;
};
#endif // SIMPLEFILE_H
-
diff --git a/sources/shiboken6/tests/libsample/size.cpp b/sources/shiboken6/tests/libsample/size.cpp
index 4c195161e..0291d6e86 100644
--- a/sources/shiboken6/tests/libsample/size.cpp
+++ b/sources/shiboken6/tests/libsample/size.cpp
@@ -1,39 +1,11 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
-#include <iostream>
#include "size.h"
-using namespace std;
+#include <iostream>
-void
-Size::show() const
+void Size::show() const
{
- cout << "(width: " << m_width << ", height: " << m_height << ")";
+ std::cout << "(width: " << m_width << ", height: " << m_height << ")";
}
-
diff --git a/sources/shiboken6/tests/libsample/size.h b/sources/shiboken6/tests/libsample/size.h
index 76502b416..2d194e96b 100644
--- a/sources/shiboken6/tests/libsample/size.h
+++ b/sources/shiboken6/tests/libsample/size.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef SIZE_H
#define SIZE_H
@@ -34,28 +9,26 @@
class LIBSAMPLE_API Size
{
public:
- Size(double width = 0.0, double height = 0.0) : m_width(width), m_height(height) {}
- ~Size() {}
+ LIBMINIMAL_DEFAULT_COPY_MOVE(Size)
- inline double width() { return m_width; }
+ explicit Size(double width = 0.0, double height = 0.0) noexcept :
+ m_width(width), m_height(height) {}
+ ~Size() = default;
+
+ inline double width() const { return m_width; }
inline void setWidth(double width) { m_width = width; }
- inline double height() { return m_height; }
+ inline double height() const { return m_height; }
inline void setHeight(double height) { m_height = height; }
inline double calculateArea() const { return m_width * m_height; }
// Comparison Operators
- inline bool operator==(const Size& other)
- {
- return m_width == other.m_width && m_height == other.m_height;
- }
-
- inline bool operator<(const Size& other)
+ inline bool operator<(const Size &other)
{
return calculateArea() < other.calculateArea();
}
- inline bool operator>(const Size& other)
+ inline bool operator>(const Size &other)
{
// On some x86 hardware and compiler combinations, floating point
// comparisons may fail due to a hardware bug. One workaround is to
@@ -67,7 +40,7 @@ public:
return a > b;
}
- inline bool operator<=(const Size& other)
+ inline bool operator<=(const Size &other)
{
// See comments for operator>()
double a = calculateArea();
@@ -75,7 +48,7 @@ public:
return a <= b;
}
- inline bool operator>=(const Size& other)
+ inline bool operator>=(const Size &other)
{
return calculateArea() >= other.calculateArea();
}
@@ -86,28 +59,28 @@ public:
inline bool operator>=(double area) { return calculateArea() >= area; }
// Arithmetic Operators
- inline Size& operator+=(const Size& s)
+ inline Size &operator+=(const Size &s)
{
m_width += s.m_width;
m_height += s.m_height;
return *this;
}
- inline Size& operator-=(const Size& s)
+ inline Size &operator-=(const Size &s)
{
m_width -= s.m_width;
m_height -= s.m_height;
return *this;
}
- inline Size& operator*=(double mult)
+ inline Size &operator*=(double mult)
{
m_width *= mult;
m_height *= mult;
return *this;
}
- inline Size& operator/=(double div)
+ inline Size &operator/=(double div)
{
m_width /= div;
m_height /= div;
@@ -117,12 +90,13 @@ public:
// TODO: add ++size, size++, --size, size--
// External operators
+ friend inline bool operator==(const Size&, const Size&);
friend inline bool operator!=(const Size&, const Size&);
- friend inline const Size operator+(const Size&, const Size&);
- friend inline const Size operator-(const Size&, const Size&);
- friend inline const Size operator*(const Size&, double);
- friend inline const Size operator*(double, const Size&);
- friend inline const Size operator/(const Size&, double);
+ friend inline Size operator+(const Size&, const Size&);
+ friend inline Size operator-(const Size&, const Size&);
+ friend inline Size operator*(const Size&, double);
+ friend inline Size operator*(double, const Size&);
+ friend inline Size operator/(const Size&, double);
friend inline bool operator<(double, const Size&);
friend inline bool operator>(double, const Size&);
@@ -137,65 +111,71 @@ private:
};
// Comparison Operators
-inline bool operator!=(const Size& s1, const Size& s2)
+inline bool operator!=(const Size &s1, const Size &s2)
{
return s1.m_width != s2.m_width || s1.m_height != s2.m_height;
}
-inline bool operator<(double area, const Size& s)
+inline bool operator==(const Size &s1, const Size &s2)
+{
+ return s1.m_width == s2.m_width && s1.m_height == s2.m_height;
+}
+
+inline bool operator<(double area, const Size &s)
{
return area < s.calculateArea();
}
-inline bool operator>(double area, const Size& s)
+inline bool operator>(double area, const Size &s)
{
return area > s.calculateArea();
}
-inline bool operator<=(double area, const Size& s)
+inline bool operator<=(double area, const Size &s)
{
return area <= s.calculateArea();
}
-inline bool operator>=(double area, const Size& s)
+inline bool operator>=(double area, const Size &s)
{
return area >= s.calculateArea();
}
// Arithmetic Operators
-inline const Size operator+(const Size& s1, const Size& s2)
+inline Size operator+(const Size &s1, const Size &s2)
{
return Size(s1.m_width + s2.m_width, s1.m_height + s2.m_height);
}
-inline const Size operator-(const Size& s1, const Size& s2)
+inline Size operator-(const Size &s1, const Size &s2)
{
return Size(s1.m_width - s2.m_width, s1.m_height - s2.m_height);
}
-inline const Size operator*(const Size& s, double mult)
+inline Size operator*(const Size &s, double mult)
{
return Size(s.m_width * mult, s.m_height * mult);
}
-inline const Size operator*(double mult, const Size& s)
+inline Size operator*(double mult, const Size &s)
{
return Size(s.m_width * mult, s.m_height * mult);
}
-inline const Size operator/(const Size& s, double div)
+inline Size operator/(const Size &s, double div)
{
return Size(s.m_width / div, s.m_height / div);
}
using real = double;
using ushort = unsigned short;
+
class LIBSAMPLE_API SizeF
{
public:
- SizeF(real width, real height) : m_width(width), m_height(height) {}
- real width() { return m_width; }
- real height() { return m_height; }
+ explicit SizeF(real width, real height) : m_width(width), m_height(height) {}
+ real width() const { return m_width; }
+ real height() const { return m_height; }
static inline ushort passTypedefOfUnsignedShort(ushort value) { return value; }
private:
real m_width;
@@ -203,4 +183,3 @@ private:
};
#endif // SIZE_H
-
diff --git a/sources/shiboken6/tests/libsample/snakecasetest.cpp b/sources/shiboken6/tests/libsample/snakecasetest.cpp
index d82984e6f..8240308b4 100644
--- a/sources/shiboken6/tests/libsample/snakecasetest.cpp
+++ b/sources/shiboken6/tests/libsample/snakecasetest.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "snakecasetest.h"
diff --git a/sources/shiboken6/tests/libsample/snakecasetest.h b/sources/shiboken6/tests/libsample/snakecasetest.h
index 8900c2eec..757dd23b2 100644
--- a/sources/shiboken6/tests/libsample/snakecasetest.h
+++ b/sources/shiboken6/tests/libsample/snakecasetest.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef SNAKECASETEST_H
#define SNAKECASETEST_H
diff --git a/sources/shiboken6/tests/libsample/sometime.cpp b/sources/shiboken6/tests/libsample/sometime.cpp
index 851b3b913..ad9a0d81c 100644
--- a/sources/shiboken6/tests/libsample/sometime.cpp
+++ b/sources/shiboken6/tests/libsample/sometime.cpp
@@ -1,36 +1,11 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "sometime.h"
-#include <stdio.h>
-void
-Time::setTime()
+#include <cstdio>
+
+void Time::setTime()
{
m_hour = 0;
m_minute = 0;
@@ -39,8 +14,7 @@ Time::setTime()
m_is_null = true;
}
-void
-Time::setTime(int h, int m, int s, int ms)
+void Time::setTime(int h, int m, int s, int ms)
{
m_hour = h;
m_minute = m;
@@ -49,15 +23,12 @@ Time::setTime(int h, int m, int s, int ms)
m_is_null = false;
}
-
-Time::NumArgs
-Time::somethingCompletelyDifferent()
+Time::NumArgs Time::somethingCompletelyDifferent()
{
return ZeroArgs;
}
-Time::NumArgs
-Time::somethingCompletelyDifferent(int h, int m, ImplicitConv ic, ObjectType* type)
+Time::NumArgs Time::somethingCompletelyDifferent(int, int, ImplicitConv ic, ObjectType *type)
{
if (type)
return FourArgs;
@@ -66,18 +37,17 @@ Time::somethingCompletelyDifferent(int h, int m, ImplicitConv ic, ObjectType* ty
return ThreeArgs;
}
-Str
-Time::toString() const
+Str Time::toString() const
{
if (m_is_null)
return Str();
char buffer[13];
- sprintf(buffer, "%02d:%02d:%02d.%03d", m_hour, m_minute, m_second, m_msec);
+ std::snprintf(buffer, sizeof(buffer), "%02d:%02d:%02d.%03d",
+ m_hour, m_minute, m_second, m_msec);
return Str(buffer);
}
-bool
-Time::operator==(const Time& other) const
+bool Time::operator==(const Time &other) const
{
return m_hour == other.m_hour
&& m_minute == other.m_minute
@@ -86,8 +56,7 @@ Time::operator==(const Time& other) const
&& m_is_null == other.m_is_null;
}
-bool
-Time::operator!=(const Time& other) const
+bool Time::operator!=(const Time &other) const
{
return !operator==(other);
}
@@ -96,4 +65,3 @@ Time::operator Str() const
{
return Time::toString();
}
-
diff --git a/sources/shiboken6/tests/libsample/sometime.h b/sources/shiboken6/tests/libsample/sometime.h
index ef16efa29..575d4b136 100644
--- a/sources/shiboken6/tests/libsample/sometime.h
+++ b/sources/shiboken6/tests/libsample/sometime.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef SOMETIME_H
#define SOMETIME_H
@@ -37,6 +12,8 @@
class LIBSAMPLE_API Time
{
public:
+ LIBMINIMAL_DEFAULT_COPY_MOVE(Time)
+
enum NumArgs {
ZeroArgs,
TwoArgs,
@@ -44,14 +21,12 @@ public:
FourArgs
};
- Time()
- : m_hour(0), m_minute(0), m_second(0), m_msec(0), m_is_null(true)
- {}
- Time(int h, int m, int s = 0, int ms = 0)
- : m_hour(h), m_minute(m), m_second(s), m_msec(ms), m_is_null(false)
+ Time() noexcept = default;
+ explicit Time(int h, int m, int s = 0, int ms = 0) noexcept:
+ m_hour(h), m_minute(m), m_second(s), m_msec(ms), m_is_null(false)
{}
- ~Time() {}
+ ~Time() = default;
inline bool isNull() const { return m_is_null; }
@@ -73,20 +48,19 @@ public:
ObjectType *type = nullptr);
Str toString() const;
- bool operator==(const Time& other) const;
- bool operator!=(const Time& other) const;
+ bool operator==(const Time &other) const;
+ bool operator!=(const Time &other) const;
// This cast operator must become an implicit conversion of Str.
operator Str() const;
private:
- int m_hour;
- int m_minute;
- int m_second;
- int m_msec;
+ int m_hour = 0;
+ int m_minute = 0;
+ int m_second = 0;
+ int m_msec = 0;
- bool m_is_null;
+ bool m_is_null = true;
};
#endif // SOMETIME_H
-
diff --git a/sources/shiboken6/tests/libsample/stdcomplex.cpp b/sources/shiboken6/tests/libsample/stdcomplex.cpp
new file mode 100644
index 000000000..847174387
--- /dev/null
+++ b/sources/shiboken6/tests/libsample/stdcomplex.cpp
@@ -0,0 +1,32 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#include "stdcomplex.h"
+
+#include <iostream>
+
+StdComplex::StdComplex() noexcept = default;
+
+StdComplex::StdComplex(double re, double img) noexcept : m_impl(re, img)
+{
+}
+
+StdComplex::operator int() const
+{
+ return std::lround(abs_value());
+}
+
+StdComplex::StdComplex(const Impl &impl) noexcept : m_impl(impl)
+{
+}
+
+StdComplex StdComplex::pow(const StdComplex &exp) const
+{
+ return StdComplex(std::pow(m_impl, exp.m_impl));
+}
+
+std::ostream &operator<<(std::ostream &str, const StdComplex &c)
+{
+ str << "Complex(" << c.real() << ", " << c.imag() << ')';
+ return str;
+}
diff --git a/sources/shiboken6/tests/libsample/stdcomplex.h b/sources/shiboken6/tests/libsample/stdcomplex.h
new file mode 100644
index 000000000..b39b80612
--- /dev/null
+++ b/sources/shiboken6/tests/libsample/stdcomplex.h
@@ -0,0 +1,55 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef STDCOMPLEX_H
+#define STDCOMPLEX_H
+
+#include "libsamplemacros.h"
+
+#include <complex>
+#include <iosfwd>
+
+// A complex number based on std::complex for exercising esoteric number
+// protocols (Py_nb_). For standard number protocols, see Point.
+
+class LIBSAMPLE_API StdComplex
+{
+ using Impl = std::complex<double>;
+
+public:
+ StdComplex() noexcept;
+ explicit StdComplex(double re, double img) noexcept;
+
+ double real() const { return m_impl.real(); }
+ double imag() const { return m_impl.imag(); }
+
+ double abs_value() const { return std::abs(m_impl); } // abs() is reserved Python word
+
+ StdComplex pow(const StdComplex &exp) const;
+
+ operator double() const { return abs_value(); }
+ operator int() const;
+
+ friend inline bool operator==(const StdComplex &c1, const StdComplex &c2) noexcept
+ { return c1.m_impl == c2.m_impl; }
+ friend inline bool operator!=(const StdComplex &c1, const StdComplex &c2) noexcept
+ { return c1.m_impl != c2.m_impl; }
+
+ friend inline StdComplex operator+(const StdComplex &c1, const StdComplex &c2) noexcept
+ { return StdComplex(c1.m_impl + c2.m_impl); }
+ friend inline StdComplex operator-(const StdComplex &c1, const StdComplex &c2) noexcept
+ { return StdComplex(c1.m_impl - c2.m_impl); }
+ friend inline StdComplex operator*(const StdComplex &c1, const StdComplex &c2) noexcept
+ { return StdComplex(c1.m_impl * c2.m_impl); }
+ friend inline StdComplex operator/(const StdComplex &c1, const StdComplex &c2) noexcept
+ { return StdComplex(c1.m_impl / c2.m_impl); }
+
+private:
+ explicit StdComplex(const Impl &impl) noexcept;
+
+ Impl m_impl;
+};
+
+std::ostream &operator<<(std::ostream &str, const StdComplex &c);
+
+#endif // STDCOMPLEX_H
diff --git a/sources/shiboken6/tests/libsample/str.cpp b/sources/shiboken6/tests/libsample/str.cpp
index 0411569b2..742c0bb01 100644
--- a/sources/shiboken6/tests/libsample/str.cpp
+++ b/sources/shiboken6/tests/libsample/str.cpp
@@ -1,117 +1,74 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "str.h"
+
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <sstream>
-using namespace std;
-
-Str::Str(const Str& s)
-{
- init(s.cstring());
-}
-
Str::Str(char c)
{
char str[2] = { c, 0 };
init(str);
}
-Str::Str(const char* cstr)
+Str::Str(const char *cstr)
{
init(cstr);
}
-void
-Str::init(const char* cstr)
+void Str::init(const char *cstr)
{
if (cstr)
m_str = cstr;
}
-Str::~Str()
-{
-}
-
-Str
-Str::arg(const Str& s) const
+Str Str::arg(const Str &s) const
{
size_t idx = m_str.find_first_of("%VAR");
- if (idx == std::string::npos) {
+ if (idx == std::string::npos)
return *this;
- } else {
- std::string result = m_str;
- result.replace(idx, 4, s.m_str);
- return result.c_str();
- }
+
+ std::string result = m_str;
+ result.replace(idx, 4, s.m_str);
+ return result.c_str();
}
-Str&
-Str::append(const Str& s)
+Str &Str::append(const Str &s)
{
m_str += s.m_str;
return *this;
}
-Str&
-Str::prepend(const Str& s)
+Str &Str::prepend(const Str &s)
{
m_str = s.m_str + m_str;
return *this;
}
-const char*
-Str::cstring() const
+const char *Str::cstring() const
{
return m_str.c_str();
}
-int
-Str::toInt(bool* ok, int base) const
+int Str::toInt(bool *ok, int base) const
{
- bool my_ok;
int result = 0;
- istringstream conv(m_str);
+ std::istringstream conv(m_str);
switch (base) {
- case 8:
- conv >> std::oct >> result;
- break;
- case 10:
- conv >> std::dec >> result;
- break;
- case 16:
- conv >> std::hex >> result;
- break;
+ case 8:
+ conv >> std::oct >> result;
+ break;
+ case 10:
+ conv >> std::dec >> result;
+ break;
+ case 16:
+ conv >> std::hex >> result;
+ break;
}
- my_ok = istringstream::eofbit & conv.rdstate();
+ const bool my_ok = std::istringstream::eofbit & conv.rdstate();
if (!my_ok)
result = 0;
if (ok)
@@ -119,20 +76,17 @@ Str::toInt(bool* ok, int base) const
return result;
}
-void
-Str::show() const
+void Str::show() const
{
- printf("%s", cstring());
+ std::printf("%s", cstring());
}
-char
-Str::get_char(int pos) const
+char Str::get_char(int pos) const
{
return m_str[pos];
}
-bool
-Str::set_char(int pos, char ch)
+bool Str::set_char(int pos, char ch)
{
m_str[pos] = ch;
return true;
@@ -140,42 +94,42 @@ Str::set_char(int pos, char ch)
Str Str::operator+(int number) const
{
- ostringstream in;
+ std::ostringstream in;
in << m_str << number;
return in.str().c_str();
}
-bool Str::operator==(const Str& other) const
+bool Str::operator==(const Str &other) const
{
return m_str == other.m_str;
}
-Str operator+(int number, const Str& str)
+Str operator+(int number, const Str &str)
{
- ostringstream in;
+ std::ostringstream in;
in << number << str.m_str;
return in.str().c_str();
}
-bool Str::operator<(const Str& other) const
+bool Str::operator<(const Str &other) const
{
return m_str < other.m_str;
}
-unsigned int strHash(const Str& str)
+unsigned int strHash(const Str &str)
{
unsigned int result = 0;
for (char c : str.m_str)
- result = 5u * result + unsigned(c);
+ result = 5U * result + unsigned(c);
return result;
}
-void changePStr(PStr* pstr, const char* suffix)
+void changePStr(PStr *pstr, const char *suffix)
{
pstr->append(suffix);
}
-void duplicatePStr(PStr* pstr)
+void duplicatePStr(PStr *pstr)
{
if (!pstr)
return;
diff --git a/sources/shiboken6/tests/libsample/str.h b/sources/shiboken6/tests/libsample/str.h
index 2f7cee8c3..6b3386cef 100644
--- a/sources/shiboken6/tests/libsample/str.h
+++ b/sources/shiboken6/tests/libsample/str.h
@@ -1,51 +1,25 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef STR_H
#define STR_H
-#include <string>
#include "libsamplemacros.h"
+#include <string>
+
class LIBSAMPLE_API Str
{
public:
- Str(const Str& s);
Str(char c);
- Str(const char* cstr = "");
- ~Str();
+ Str(const char *cstr = "");
- Str arg(const Str& s) const;
+ Str arg(const Str &s) const;
- Str& append(const Str& s);
- Str& prepend(const Str& s);
+ Str &append(const Str &s);
+ Str &prepend(const Str &s);
- const char* cstring() const;
+ const char *cstring() const;
char get_char(int pos) const;
bool set_char(int pos, char ch);
@@ -53,26 +27,26 @@ public:
void show() const;
- inline int size() const { return m_str.size(); }
+ inline int size() const { return int(m_str.size()); }
// nonsense operator just to test reverse operators
Str operator+(int number) const;
- bool operator==(const Str& other) const;
- bool operator<(const Str& other) const;
+ bool operator==(const Str &other) const;
+ bool operator<(const Str &other) const;
private:
- void init(const char* cstr);
+ void init(const char *cstr);
std::string m_str;
- friend LIBSAMPLE_API Str operator+(int number, const Str& str);
- friend LIBSAMPLE_API unsigned int strHash(const Str& str);
+ friend LIBSAMPLE_API Str operator+(int number, const Str &str);
+ friend LIBSAMPLE_API unsigned int strHash(const Str &str);
};
-LIBSAMPLE_API Str operator+(int number, const Str& str);
-LIBSAMPLE_API unsigned int strHash(const Str& str);
+LIBSAMPLE_API Str operator+(int number, const Str &str);
+LIBSAMPLE_API unsigned int strHash(const Str &str);
using PStr = Str;
-LIBSAMPLE_API void changePStr(PStr* pstr, const char* suffix);
+LIBSAMPLE_API void changePStr(PStr *pstr, const char *suffix);
LIBSAMPLE_API void duplicatePStr(PStr *pstr = nullptr);
#endif // STR_H
diff --git a/sources/shiboken6/tests/libsample/strlist.cpp b/sources/shiboken6/tests/libsample/strlist.cpp
index f3e8ac96b..5840a0516 100644
--- a/sources/shiboken6/tests/libsample/strlist.cpp
+++ b/sources/shiboken6/tests/libsample/strlist.cpp
@@ -1,44 +1,17 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "strlist.h"
#include <algorithm>
-bool
-StrList::operator==(const std::list<Str>& other) const
+bool StrList::operator==(const std::list<Str> &other) const
{
return size() == other.size()
&& std::equal(begin(), end(), other.begin());
}
-Str
-StrList::join(const Str& sep) const
+Str StrList::join(const Str &sep) const
{
Str result;
const auto i1 = begin();
diff --git a/sources/shiboken6/tests/libsample/strlist.h b/sources/shiboken6/tests/libsample/strlist.h
index 43aa15390..01865a5b4 100644
--- a/sources/shiboken6/tests/libsample/strlist.h
+++ b/sources/shiboken6/tests/libsample/strlist.h
@@ -1,38 +1,13 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef STRLIST_H
#define STRLIST_H
-#include <list>
+#include "libsamplemacros.h"
#include "str.h"
-#include "libsamplemacros.h"
+#include <list>
class LIBSAMPLE_API StrList : public std::list<Str>
{
@@ -44,20 +19,29 @@ public:
ListOfStrCtor
};
- inline StrList() : m_ctorUsed(NoParamsCtor) {}
- inline explicit StrList(const Str& str) : m_ctorUsed(StrCtor) { push_back(str); }
- inline StrList(const StrList& lst) : std::list<Str>(lst), m_ctorUsed(CopyCtor) {}
- inline StrList(const std::list<Str>& lst) : std::list<Str>(lst), m_ctorUsed(ListOfStrCtor) {}
+ inline StrList() = default;
+ inline StrList(const std::list<Str> &lst) :
+ std::list<Str>(lst), m_ctorUsed(ListOfStrCtor) {}
+ inline explicit StrList(const Str &str) :
+ m_ctorUsed(StrCtor) { push_back(str); }
+ inline StrList(const StrList &lst) :
+ std::list<Str>(lst), m_ctorUsed(CopyCtor) {}
+
+ StrList(StrList &&) = default;
+ StrList &operator=(const StrList &) = default;
+ StrList &operator=(StrList &&) = default;
+ ~StrList() = default;
+
+ inline void append(const Str &str) { push_back(str); }
+ Str join(const Str &sep) const;
- inline void append(Str str) { push_back(str); }
- Str join(const Str& sep) const;
+ bool operator==(const std::list<Str> &other) const;
+ inline bool operator!=(const std::list<Str> &other) const { return !(*this == other); }
- bool operator==(const std::list<Str>& other) const;
- inline bool operator!=(const std::list<Str>& other) const { return !(*this == other); }
+ CtorEnum constructorUsed() const { return m_ctorUsed; }
- CtorEnum constructorUsed() { return m_ctorUsed; }
private:
- CtorEnum m_ctorUsed;
+ CtorEnum m_ctorUsed = NoParamsCtor;
};
using PStrList = StrList;
diff --git a/sources/shiboken6/tests/libsample/templateptr.cpp b/sources/shiboken6/tests/libsample/templateptr.cpp
index fa5bb8206..a73f78417 100644
--- a/sources/shiboken6/tests/libsample/templateptr.cpp
+++ b/sources/shiboken6/tests/libsample/templateptr.cpp
@@ -1,33 +1,8 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "templateptr.h"
-void TemplatePtr::dummy(std::list<std::pair<BlackBox *, BlackBox *> > & items)
+void TemplatePtr::dummy(std::list<std::pair<BlackBox *, BlackBox *> > &)
{
-} \ No newline at end of file
+}
diff --git a/sources/shiboken6/tests/libsample/templateptr.h b/sources/shiboken6/tests/libsample/templateptr.h
index 584b64185..bf230c363 100644
--- a/sources/shiboken6/tests/libsample/templateptr.h
+++ b/sources/shiboken6/tests/libsample/templateptr.h
@@ -1,43 +1,19 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TEMPLATEPTR_H
#define TEMPLATEPTR_H
-#include <utility>
-#include <list>
#include "libsamplemacros.h"
#include "blackbox.h"
+#include <utility>
+#include <list>
+
class LIBSAMPLE_API TemplatePtr
{
public:
- void dummy(std::list<std::pair<BlackBox *, BlackBox *> > & items);
+ void dummy(std::list<std::pair<BlackBox *, BlackBox *> > &items);
};
-#endif
+#endif // TEMPLATEPTR_H
diff --git a/sources/shiboken6/tests/libsample/transform.cpp b/sources/shiboken6/tests/libsample/transform.cpp
index 840f1feac..5ccf5d1ed 100644
--- a/sources/shiboken6/tests/libsample/transform.cpp
+++ b/sources/shiboken6/tests/libsample/transform.cpp
@@ -1,65 +1,28 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Copyright (C) 2013 Kitware, Inc.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// Copyright (C) 2013 Kitware, Inc.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "transform.h"
-#ifdef _WIN32
-#include <math.h>
-#include <float.h>
-static inline bool isfinite(double a) { return _finite(a); }
-#else
#include <cmath>
-#endif
-using namespace std;
-
-Point applyHomogeneousTransform(
- const Point& in,
- double m11, double m12, double m13,
- double m21, double m22, double m23,
- double m31, double m32, double m33,
- bool* okay)
+Point applyHomogeneousTransform(const Point &in,
+ double m11, double m12, double m13,
+ double m21, double m22, double m23,
+ double m31, double m32, double m33,
+ bool *okay)
{
double x = m11 * in.x() + m12 * in.y() + m13;
double y = m21 * in.x() + m22 * in.y() + m23;
double w = m31 * in.x() + m32 * in.y() + m33;
- if (isfinite(w) && fabs(w) > 1e-10)
- {
+ if (std::isfinite(w) && fabs(w) > 1e-10) {
if (okay)
*okay = true;
- return Point(x / w, y / w);
- }
- else
- {
- if (okay)
- *okay = false;
- return Point();
+ return {x / w, y / w};
}
+
+ if (okay)
+ *okay = false;
+ return {};
}
diff --git a/sources/shiboken6/tests/libsample/transform.h b/sources/shiboken6/tests/libsample/transform.h
index d9ec98dd4..34ebf40d3 100644
--- a/sources/shiboken6/tests/libsample/transform.h
+++ b/sources/shiboken6/tests/libsample/transform.h
@@ -1,31 +1,6 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Copyright (C) 2013 Kitware, Inc.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// Copyright (C) 2013 Kitware, Inc.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TRANSFORM_H
#define TRANSFORM_H
@@ -34,12 +9,10 @@
#include "libsamplemacros.h"
-LIBSAMPLE_API Point
-applyHomogeneousTransform(
- const Point& in,
- double m11, double m12, double m13,
- double m21, double m22, double m23,
- double m31, double m32, double m33,
- bool* okay);
+LIBSAMPLE_API Point applyHomogeneousTransform(const Point &in,
+ double m11, double m12, double m13,
+ double m21, double m22, double m23,
+ double m31, double m32, double m33,
+ bool *okay);
#endif // TRANSFORM_H
diff --git a/sources/shiboken6/tests/libsample/typesystypedef.cpp b/sources/shiboken6/tests/libsample/typesystypedef.cpp
index 16777bf32..d9c9a92fc 100644
--- a/sources/shiboken6/tests/libsample/typesystypedef.cpp
+++ b/sources/shiboken6/tests/libsample/typesystypedef.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "typesystypedef.h"
diff --git a/sources/shiboken6/tests/libsample/typesystypedef.h b/sources/shiboken6/tests/libsample/typesystypedef.h
index 228381c5f..be42fbefe 100644
--- a/sources/shiboken6/tests/libsample/typesystypedef.h
+++ b/sources/shiboken6/tests/libsample/typesystypedef.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef TYPESYSTYPEDEF_H
#define TYPESYSTYPEDEF_H
diff --git a/sources/shiboken6/tests/libsample/valueandvirtual.h b/sources/shiboken6/tests/libsample/valueandvirtual.h
index 34a6788e2..799e11e40 100644
--- a/sources/shiboken6/tests/libsample/valueandvirtual.h
+++ b/sources/shiboken6/tests/libsample/valueandvirtual.h
@@ -1,47 +1,25 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef VALUEANDVIRTUAL_H
#define VALUEANDVIRTUAL_H
+#include "libsamplemacros.h"
+
class ValueAndVirtual
{
public:
- ValueAndVirtual(int id) : m_id(id) {}
- ValueAndVirtual(const ValueAndVirtual &other) { m_id = other.m_id; }
+ LIBMINIMAL_DEFAULT_COPY_MOVE(ValueAndVirtual)
+
+ explicit ValueAndVirtual(int id) noexcept : m_id(id) {}
+ virtual ~ValueAndVirtual() = default;
bool operator()(int id, int id2) { return id == id2; }
- inline int id() { return m_id; }
- virtual ~ValueAndVirtual() {};
+ inline int id() const { return m_id; }
+
private:
int m_id;
};
#endif // VALUEANDVIRTUAL_H
-
diff --git a/sources/shiboken6/tests/libsample/virtualmethods.cpp b/sources/shiboken6/tests/libsample/virtualmethods.cpp
index 705835c0b..515564664 100644
--- a/sources/shiboken6/tests/libsample/virtualmethods.cpp
+++ b/sources/shiboken6/tests/libsample/virtualmethods.cpp
@@ -1,43 +1,16 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "virtualmethods.h"
int VirtualDtor::dtor_called = 0;
-double
-VirtualMethods::virtualMethod0(Point pt, int val, Complex cpx, bool b)
+double VirtualMethods::virtualMethod0(Point pt, int val, Complex cpx, bool b)
{
return (pt.x() * pt.y() * val) + cpx.imag() + ((int) b);
}
-bool
-VirtualMethods::createStr(const char* text, Str*& ret)
+bool VirtualMethods::createStr(const char *text, Str *&ret)
{
if (!text) {
ret = nullptr;
@@ -48,8 +21,7 @@ VirtualMethods::createStr(const char* text, Str*& ret)
return true;
}
-void
-VirtualMethods::getMargins(int* left, int* top, int* right, int* bottom) const
+void VirtualMethods::getMargins(int *left, int *top, int *right, int *bottom) const
{
*left = m_left;
*top = m_top;
@@ -57,6 +29,11 @@ VirtualMethods::getMargins(int* left, int* top, int* right, int* bottom) const
*bottom = m_bottom;
}
+int VirtualMethods::recursionOnModifiedVirtual(Str) const
+{
+ return 0;
+}
+
const Str & VirtualMethods::returnConstRef() const
{
static const Str result;
diff --git a/sources/shiboken6/tests/libsample/virtualmethods.h b/sources/shiboken6/tests/libsample/virtualmethods.h
index 577f6919e..b7172ad0d 100644
--- a/sources/shiboken6/tests/libsample/virtualmethods.h
+++ b/sources/shiboken6/tests/libsample/virtualmethods.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef VIRTUALMETHODS_H
#define VIRTUALMETHODS_H
@@ -42,11 +17,10 @@
class LIBSAMPLE_API VirtualMethods
{
public:
- VirtualMethods(Str name = "VirtualMethods") : m_name(name)
- {
- m_left = m_top = m_right = m_bottom = 0;
- }
- virtual ~VirtualMethods() {}
+ LIBMINIMAL_DEFAULT_COPY_MOVE(VirtualMethods)
+
+ explicit VirtualMethods(Str name = "VirtualMethods") : m_name(name) {}
+ virtual ~VirtualMethods() = default;
virtual double virtualMethod0(Point pt, int val, Complex cpx, bool b);
double callVirtualMethod0(Point pt, int val, Complex cpx, bool b)
@@ -86,12 +60,14 @@ public:
void callCallMe() { callMe(); }
// Passing reference to pointers.
- virtual bool createStr(const char* text, Str*& ret);
- bool callCreateStr(const char* text, Str*& ret) { return createStr(text, ret); }
+ virtual bool createStr(const char *text, Str *&ret);
+ bool callCreateStr(const char *text, Str *&ret) { return createStr(text, ret); }
// Return a non-binded method
- std::list<Str> callStrListToStdList(const StrList& strList) { return strListToStdList(strList); }
- virtual std::list<Str> strListToStdList(const StrList& strList ) { return strList; }
+ std::list<Str> callStrListToStdList(const StrList &strList)
+ { return strListToStdList(strList); }
+ virtual std::list<Str> strListToStdList(const StrList &strList )
+ { return strList; }
void setMargins(int left, int top, int right, int bottom)
{
@@ -100,16 +76,16 @@ public:
m_right = right;
m_bottom = bottom;
}
- virtual void getMargins(int* left, int* top, int* right, int* bottom) const;
- void callGetMargins(int* left, int* top, int* right, int* bottom) const
+ virtual void getMargins(int *left, int *top, int *right, int *bottom) const;
+ void callGetMargins(int *left, int *top, int *right, int *bottom) const
{
getMargins(left, top, right, bottom);
}
- virtual int recursionOnModifiedVirtual(Str arg) const { return 0; }
+ virtual int recursionOnModifiedVirtual(Str arg) const;
int callRecursionOnModifiedVirtual(Str arg) const { return recursionOnModifiedVirtual(arg); }
- virtual const Str & returnConstRef() const;
+ virtual const Str &returnConstRef() const;
virtual int stringViewLength(std::string_view in) const;
@@ -119,10 +95,10 @@ protected:
private:
Str m_name;
- int m_left;
- int m_top;
- int m_right;
- int m_bottom;
+ int m_left = 0;
+ int m_top = 0;
+ int m_right = 0;
+ int m_bottom = 0;
};
class LIBSAMPLE_API VirtualDaughter : public VirtualMethods
@@ -153,10 +129,12 @@ public:
class LIBSAMPLE_API VirtualDtor
{
public:
- VirtualDtor() {}
+ LIBMINIMAL_DEFAULT_COPY_MOVE(VirtualDtor)
+
+ VirtualDtor() noexcept = default;
virtual ~VirtualDtor() { dtor_called++; }
- static VirtualDtor* create() { return new VirtualDtor(); }
+ static VirtualDtor *create() { return new VirtualDtor(); }
static int dtorCalled() { return dtor_called; }
static void resetDtorCounter() { dtor_called = 0; }
@@ -165,4 +143,3 @@ private:
};
#endif // VIRTUALMETHODS_H
-
diff --git a/sources/shiboken6/tests/libsample/voidholder.h b/sources/shiboken6/tests/libsample/voidholder.h
index 367e99ddf..3f0f4d973 100644
--- a/sources/shiboken6/tests/libsample/voidholder.h
+++ b/sources/shiboken6/tests/libsample/voidholder.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef VOIDHOLDER_H
#define VOIDHOLDER_H
@@ -34,21 +9,24 @@
class VoidHolder
{
public:
- explicit VoidHolder(void *ptr = nullptr) : m_ptr(ptr) {}
- ~VoidHolder() {}
- inline void* voidPointer() { return m_ptr; }
- inline static void* gimmeMeSomeVoidPointer()
+ LIBMINIMAL_DEFAULT_COPY_MOVE(VoidHolder)
+
+ explicit VoidHolder(void *ptr = nullptr) noexcept : m_ptr(ptr) {}
+ ~VoidHolder() = default;
+
+ inline void *voidPointer() { return m_ptr; }
+ inline static void *gimmeMeSomeVoidPointer()
{
- static void* pointerToSomething = new VoidHolder();
+ static void *pointerToSomething = new VoidHolder();
return pointerToSomething;
}
void *takeVoidPointer(void *item)
{
return item;
}
+
private:
- void* m_ptr;
+ void *m_ptr;
};
#endif // VOIDHOLDER_H
-
diff --git a/sources/shiboken6/tests/libsmart/CMakeLists.txt b/sources/shiboken6/tests/libsmart/CMakeLists.txt
index 152c57f25..95f0cffd6 100644
--- a/sources/shiboken6/tests/libsmart/CMakeLists.txt
+++ b/sources/shiboken6/tests/libsmart/CMakeLists.txt
@@ -1,7 +1,19 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(libsmart)
set(libsmart_SRC
-smart.cpp
+libsmartmacros.h
+smart.cpp smart.h
+smart_integer.h
+smart_obj.h
+smart_registry.h
+smart_sharedptr.h
+smart_test.h
+stdoptionaltestbench.cpp stdoptionaltestbench.h
+stdsharedptrtestbench.cpp stdsharedptrtestbench.h
+stduniqueptrtestbench.cpp stduniqueptrtestbench.h
)
add_library(libsmart SHARED ${libsmart_SRC})
diff --git a/sources/shiboken6/tests/libsmart/libsmartmacros.h b/sources/shiboken6/tests/libsmart/libsmartmacros.h
index 03edab049..c1f229b6c 100644
--- a/sources/shiboken6/tests/libsmart/libsmartmacros.h
+++ b/sources/shiboken6/tests/libsmart/libsmartmacros.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef LIB_SMART_MACROS_H
#define LIB_SMART_MACROS_H
diff --git a/sources/shiboken6/tests/libsmart/smart.cpp b/sources/shiboken6/tests/libsmart/smart.cpp
index 81fa30c7e..2273040f9 100644
--- a/sources/shiboken6/tests/libsmart/smart.cpp
+++ b/sources/shiboken6/tests/libsmart/smart.cpp
@@ -1,75 +1,53 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "smart.h"
#include <algorithm>
#include <iostream>
-static inline bool shouldPrint()
+static inline bool verbose()
{
- return Registry::getInstance()->shouldPrint();
+ return Registry::getInstance()->verbose();
}
-void SharedPtrBase::logDefaultConstructor(const void *t)
+void SharedPtrBase::logDefaultConstructor(const char *instantiation, const void *t)
{
- if (shouldPrint())
- std::cout << "shared_ptr default constructor " << t << '\n';
+ if (verbose())
+ std::cout << "SharedPtr<" << instantiation << "> default constructor " << t << '\n';
}
-void SharedPtrBase::logConstructor(const void *t, const void *pointee)
+void SharedPtrBase::logConstructor(const char *instantiation, const void *t,
+ const void *pointee)
{
- if (shouldPrint()) {
- std::cout << "shared_ptr constructor " << t << " with pointer "
- << pointee << '\n';
+ if (verbose()) {
+ std::cout << "SharedPtr<" << instantiation << "> constructor "
+ << t << " with pointer " << pointee << '\n';
}
}
-void SharedPtrBase::logCopyConstructor(const void *t, const void *refData)
+void SharedPtrBase::logCopyConstructor(const char *instantiation, const void *t,
+ const void *refData)
{
- if (shouldPrint()) {
- std::cout << "shared_ptr copy constructor " << t << " with pointer "
- << refData << '\n';
+ if (verbose()) {
+ std::cout << "SharedPtr<" << instantiation << ">) copy constructor "
+ << t << " with pointer " << refData << '\n';
}
}
-void SharedPtrBase::logAssignment(const void *t, const void *refData)
+void SharedPtrBase::logAssignment(const char *instantiation, const void *t, const void *refData)
{
- if (shouldPrint()) {
- std::cout << "shared_ptr assignment operator " << t << " with pointer "
- << refData << "\n";
+ if (verbose()) {
+ std::cout << "SharedPtr<" << instantiation << ">::operator= " << t
+ << " with pointer " << refData << "\n";
}
}
-void SharedPtrBase::logDestructor(const void *t, int remainingRefCount)
+void SharedPtrBase::logDestructor(const char *instantiation, const void *t,
+ int remainingRefCount)
{
- if (shouldPrint()) {
- std::cout << "shared_ptr destructor " << t << " remaining refcount "
+ if (verbose()) {
+ std::cout << "~SharedPtr<" << instantiation << "> " << t << ", remaining refcount "
<< remainingRefCount << '\n';
}
}
@@ -77,49 +55,49 @@ void SharedPtrBase::logDestructor(const void *t, int remainingRefCount)
Obj::Obj() : m_integer(123), m_internalInteger(new Integer)
{
Registry::getInstance()->add(this);
- if (shouldPrint())
- std::cout << "Object constructor " << this << '\n';
+ if (verbose())
+ std::cout << "Obj constructor " << this << '\n';
}
Obj::~Obj()
{
Registry::getInstance()->remove(this);
delete m_internalInteger;
- if (shouldPrint())
- std::cout << "Object destructor " << this << '\n';
+ if (verbose())
+ std::cout << "~Obj " << this << '\n';
}
void Obj::printObj() {
- if (shouldPrint()) {
- std::cout << "integer value: " << m_integer
+ if (verbose()) {
+ std::cout << "Obj::printObj(): integer value: " << m_integer
<< " internal integer value: " << m_internalInteger->value() << '\n';
}
}
-SharedPtr<Obj> Obj::giveSharedPtrToObj()
+SharedPtr<Obj> Obj::createSharedPtrObj()
{
SharedPtr<Obj> o(new Obj);
return o;
}
-std::vector<SharedPtr<Obj> > Obj::giveSharedPtrToObjList(int size)
+std::vector<SharedPtr<Obj> > Obj::createSharedPtrObjList(int size)
{
std::vector<SharedPtr<Obj> > r;
for (int i=0; i < size; i++)
- r.push_back(giveSharedPtrToObj());
+ r.push_back(createSharedPtrObj());
return r;
}
-SharedPtr<Integer> Obj::giveSharedPtrToInteger()
+SharedPtr<Integer> Obj::createSharedPtrInteger()
{
SharedPtr<Integer> o(new Integer);
return o;
}
-SharedPtr<Smart::Integer2> Obj::giveSharedPtrToInteger2()
+SharedPtr<Smart::Integer2> Obj::createSharedPtrInteger2()
{
SharedPtr<Smart::Integer2> o(new Smart::Integer2);
return o;
@@ -133,11 +111,37 @@ int Obj::takeSharedPtrToObj(SharedPtr<Obj> pObj)
int Obj::takeSharedPtrToInteger(SharedPtr<Integer> pInt)
{
+ if (pInt.isNull()) {
+ std::cout << "SharedPtr<Integer>(nullptr) passed!\n";
+ return -1;
+ }
pInt->printInteger();
return pInt->value();
}
-SharedPtr<const Integer> Obj::giveSharedPtrToConstInteger()
+int Obj::takeSharedPtrToIntegerByConstRef(const SharedPtr<Integer> &pInt)
+{
+ if (pInt.isNull()) {
+ std::cout << "SharedPtr<Integer>(nullptr) passed!\n";
+ return -1;
+ }
+ pInt->printInteger();
+ return pInt->value();
+}
+
+SharedPtr<Integer> Obj::createSharedPtrInteger(int value)
+{
+ auto *i = new Integer;
+ i->setValue(value);
+ return SharedPtr<Integer>(i);
+}
+
+SharedPtr<Integer> Obj::createNullSharedPtrInteger()
+{
+ return {};
+}
+
+SharedPtr<const Integer> Obj::createSharedPtrConstInteger()
{
SharedPtr<const Integer> co(new Integer);
return co;
@@ -156,14 +160,14 @@ Integer Obj::takeInteger(Integer val)
Integer::Integer() : m_int(456)
{
Registry::getInstance()->add(this);
- if (shouldPrint())
+ if (verbose())
std::cout << "Integer constructor " << this << '\n';
}
Integer::Integer(const Integer &other)
{
Registry::getInstance()->add(this);
- if (shouldPrint())
+ if (verbose())
std::cout << "Integer copy constructor " << this << '\n';
m_int = other.m_int;
}
@@ -171,7 +175,7 @@ Integer::Integer(const Integer &other)
Integer &Integer::operator=(const Integer &other)
{
Registry::getInstance()->add(this);
- if (shouldPrint())
+ if (verbose())
std::cout << "Integer operator= " << this << '\n';
m_int = other.m_int;
return *this;
@@ -180,8 +184,8 @@ Integer &Integer::operator=(const Integer &other)
Integer::~Integer()
{
Registry::getInstance()->remove(this);
- if (shouldPrint())
- std::cout << "Integer destructor " << this << '\n';
+ if (verbose())
+ std::cout << "~Integer " << this << " (" << m_int << ")\n";
}
int Integer::value() const
@@ -192,11 +196,20 @@ int Integer::value() const
void Integer::setValue(int v)
{
m_int = v;
+ if (verbose())
+ std::cout << "Integer::setValue(" << v << ") " << this << '\n';
+}
+
+int Integer::compare(const Integer &rhs) const
+{
+ if (m_int < rhs.m_int)
+ return -1;
+ return m_int > rhs.m_int ? 1 : 0;
}
void Integer::printInteger() const
{
- if (shouldPrint())
+ if (verbose())
std::cout << "Integer value for object " << this << " is " << m_int << '\n';
}
@@ -240,14 +253,14 @@ int Registry::countIntegers() const
return static_cast<int>(m_integers.size());
}
-bool Registry::shouldPrint() const
+bool Registry::verbose() const
{
- return m_printStuff;
+ return m_verbose;
}
-void Registry::setShouldPrint(bool flag)
+void Registry::setVerbose(bool flag)
{
- m_printStuff = flag;
+ m_verbose = flag;
}
Smart::Integer2::Integer2()
@@ -255,7 +268,5 @@ Smart::Integer2::Integer2()
{
}
-Smart::Integer2::Integer2(const Smart::Integer2 &other)
- : Integer (other)
-{
-}
+Smart::Integer2::Integer2(const Smart::Integer2 &) = default;
+Smart::Integer2 &Smart::Integer2::operator=(const Integer2 &) = default;
diff --git a/sources/shiboken6/tests/libsmart/smart.h b/sources/shiboken6/tests/libsmart/smart.h
index 6238f27d5..1f610b302 100644
--- a/sources/shiboken6/tests/libsmart/smart.h
+++ b/sources/shiboken6/tests/libsmart/smart.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef SMART_H
#define SMART_H
@@ -33,5 +8,9 @@
#include "smart_integer.h"
#include "smart_obj.h"
#include "smart_registry.h"
+#include "smart_test.h"
+#include "stdsharedptrtestbench.h"
+#include "stdoptionaltestbench.h"
+#include "stduniqueptrtestbench.h"
#endif // SMART_H
diff --git a/sources/shiboken6/tests/libsmart/smart_integer.h b/sources/shiboken6/tests/libsmart/smart_integer.h
index 126894120..42a441a00 100644
--- a/sources/shiboken6/tests/libsmart/smart_integer.h
+++ b/sources/shiboken6/tests/libsmart/smart_integer.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef SMART_INTEGER_H
#define SMART_INTEGER_H
@@ -36,20 +11,58 @@ public:
Integer();
Integer(const Integer &other);
Integer &operator=(const Integer &other);
+ Integer(Integer &&other) noexcept = default;
+ Integer &operator=(Integer &&other) noexcept = default;
~Integer();
void printInteger() const;
int value() const;
void setValue(int v);
+ int compare(const Integer &rhs) const;
+
int m_int; // public for testing member field access.
};
+inline bool operator==(const Integer &lhs, const Integer &rhs)
+{
+ return lhs.compare(rhs) == 0;
+}
+
+inline bool operator!=(const Integer &lhs, const Integer &rhs)
+{
+ return lhs.compare(rhs) != 0;
+}
+
+inline bool operator<(const Integer &lhs, const Integer &rhs)
+{
+ return lhs.compare(rhs) < 0;
+}
+
+inline bool operator<=(const Integer &lhs, const Integer &rhs)
+{
+ return lhs.compare(rhs) <= 0;
+}
+
+inline bool operator>(const Integer &lhs, const Integer &rhs)
+{
+ return lhs.compare(rhs) > 0;
+}
+
+inline bool operator>=(const Integer &lhs, const Integer &rhs)
+{
+ return lhs.compare(rhs) >= 0;
+}
+
namespace Smart {
class LIB_SMART_API Integer2 : public Integer {
public:
Integer2();
- Integer2(const Integer2 &other);
+ Integer2(const Integer2 &);
+ Integer2 &operator=(const Integer2 &);
+ Integer2(Integer2 &&other) = delete;
+ Integer2 &operator=(Integer2 &&other) = delete;
+ ~Integer2() = default;
};
} // namespace Smart
diff --git a/sources/shiboken6/tests/libsmart/smart_obj.h b/sources/shiboken6/tests/libsmart/smart_obj.h
index 8fe45993f..9f4f8425d 100644
--- a/sources/shiboken6/tests/libsmart/smart_obj.h
+++ b/sources/shiboken6/tests/libsmart/smart_obj.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef SMART_OBJ_H
#define SMART_OBJ_H
@@ -42,18 +17,26 @@ namespace Smart { class Integer2; }
class LIB_SMART_API Obj {
public:
Obj();
+ Obj(const Obj &other) = delete;
+ Obj &operator=(const Obj &other) = delete;
+ Obj(Obj &&other) = delete;
+ Obj &operator=(Obj &&other) = delete;
virtual ~Obj();
void printObj();
Integer takeInteger(Integer val);
- SharedPtr<Obj> giveSharedPtrToObj();
- std::vector<SharedPtr<Obj> > giveSharedPtrToObjList(int size);
- virtual SharedPtr<Integer> giveSharedPtrToInteger(); // virtual for PYSIDE-1188
- SharedPtr<const Integer> giveSharedPtrToConstInteger();
+ static SharedPtr<Obj> createSharedPtrObj();
+ std::vector<SharedPtr<Obj> > createSharedPtrObjList(int size);
+ virtual SharedPtr<Integer> createSharedPtrInteger(); // virtual for PYSIDE-1188
+ SharedPtr<const Integer> createSharedPtrConstInteger();
int takeSharedPtrToConstInteger(SharedPtr<const Integer> pInt);
- SharedPtr<Smart::Integer2> giveSharedPtrToInteger2();
+ SharedPtr<Smart::Integer2> createSharedPtrInteger2();
int takeSharedPtrToObj(SharedPtr<Obj> pObj);
int takeSharedPtrToInteger(SharedPtr<Integer> pInt);
+ int takeSharedPtrToIntegerByConstRef(const SharedPtr<Integer> &pInt);
+
+ static SharedPtr<Integer> createSharedPtrInteger(int value);
+ static SharedPtr<Integer> createNullSharedPtrInteger();
int m_integer; // public for testing member field access.
Integer *m_internalInteger;
diff --git a/sources/shiboken6/tests/libsmart/smart_registry.h b/sources/shiboken6/tests/libsmart/smart_registry.h
index 6171ddb59..abf7edc84 100644
--- a/sources/shiboken6/tests/libsmart/smart_registry.h
+++ b/sources/shiboken6/tests/libsmart/smart_registry.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef SMART_REGISTRY_H
#define SMART_REGISTRY_H
@@ -53,8 +28,8 @@ public:
void remove(Integer *p);
int countObjects() const;
int countIntegers() const;
- bool shouldPrint() const;
- void setShouldPrint(bool flag);
+ bool verbose() const;
+ void setVerbose(bool flag);
protected:
Registry();
@@ -62,7 +37,7 @@ protected:
private:
std::vector<Obj *> m_objects;
std::vector<Integer *> m_integers;
- bool m_printStuff = false;
+ bool m_verbose = false;
};
#endif // SMART_REGISTRY_H
diff --git a/sources/shiboken6/tests/libsmart/smart_sharedptr.h b/sources/shiboken6/tests/libsmart/smart_sharedptr.h
index 65a489c68..dc665810a 100644
--- a/sources/shiboken6/tests/libsmart/smart_sharedptr.h
+++ b/sources/shiboken6/tests/libsmart/smart_sharedptr.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef SMART_SHARED_PTR_H
#define SMART_SHARED_PTR_H
@@ -35,37 +10,40 @@
struct SharedPtrBase
{
- LIB_SMART_API static void logDefaultConstructor(const void *t);
- LIB_SMART_API static void logConstructor(const void *t, const void *pointee);
- LIB_SMART_API static void logCopyConstructor(const void *t, const void *refData);
- LIB_SMART_API static void logAssignment(const void *t, const void *refData);
- LIB_SMART_API static void logDestructor(const void *t, int remainingRefCount);
+ LIB_SMART_API static void logDefaultConstructor(const char *instantiation, const void *t);
+ LIB_SMART_API static void logConstructor(const char *instantiation, const void *t, const void *pointee);
+ LIB_SMART_API static void logCopyConstructor(const char *instantiation, const void *t, const void *refData);
+ LIB_SMART_API static void logAssignment(const char *instantiation, const void *t, const void *refData);
+ LIB_SMART_API static void logDestructor(const char *instantiation, const void *t, int remainingRefCount);
};
template <class T>
class SharedPtr : public SharedPtrBase {
public:
- SharedPtr() { logDefaultConstructor(this); }
+ LIBMINIMAL_DEFAULT_MOVE(SharedPtr)
+
+ SharedPtr() { logDefaultConstructor(typeid(T).name(), this); }
SharedPtr(T *v) : mPtr(v)
{
- logConstructor(this, v);
+ logConstructor(typeid(T).name(), this, v);
}
SharedPtr(const SharedPtr<T> &other) : mPtr(other.mPtr)
{
- logCopyConstructor(this, data());
+ logCopyConstructor(typeid(T).name(), this, data());
}
template<class X>
SharedPtr(const SharedPtr<X> &other) : mPtr(other.mPtr)
{
- logCopyConstructor(this, data());
+ logCopyConstructor(typeid(T).name(), this, data());
}
- SharedPtr& operator=(const SharedPtr& other)
+ SharedPtr &operator=(const SharedPtr &other)
{
- mPtr = other.mPtr;
+ if (this != &other)
+ mPtr = other.mPtr;
return *this;
}
@@ -107,7 +85,7 @@ public:
~SharedPtr()
{
if (mPtr.use_count() >= 1)
- logDestructor(this, mPtr.use_count() - 1);
+ logDestructor(typeid(T).name(), this, mPtr.use_count() - 1);
}
std::shared_ptr<T> mPtr;
diff --git a/sources/shiboken6/tests/libsmart/smart_test.h b/sources/shiboken6/tests/libsmart/smart_test.h
new file mode 100644
index 000000000..89d8cbc7c
--- /dev/null
+++ b/sources/shiboken6/tests/libsmart/smart_test.h
@@ -0,0 +1,13 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef SMART_TEST_H
+#define SMART_TEST_H
+
+namespace Test {
+
+enum DummyEnum { Dummy1, Dummy2 };
+
+}
+
+#endif // SMART_TEST_H
diff --git a/sources/shiboken6/tests/libsmart/stdoptionaltestbench.cpp b/sources/shiboken6/tests/libsmart/stdoptionaltestbench.cpp
new file mode 100644
index 000000000..69100720c
--- /dev/null
+++ b/sources/shiboken6/tests/libsmart/stdoptionaltestbench.cpp
@@ -0,0 +1,58 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#include "stdoptionaltestbench.h"
+
+#include <iostream>
+
+std::ostream &operator<<(std::ostream &str, const Integer &i)
+{
+ str << i.value();
+ return str;
+}
+
+template <class T>
+std::ostream &operator<<(std::ostream &str, const std::optional<T> &o)
+{
+ if (o.has_value())
+ str << o.value();
+ else
+ str << "nullopt";
+ return str;
+}
+
+StdOptionalTestBench::StdOptionalTestBench() = default;
+
+std::optional<int> StdOptionalTestBench::optionalInt() const
+{
+ return m_optionalInt;
+}
+
+void StdOptionalTestBench::setOptionalInt(const std::optional<int> &i)
+{
+ std::cout << __FUNCTION__ << ' ' << i << '\n';
+ m_optionalInt = i;
+}
+
+void StdOptionalTestBench::setOptionalIntValue(int i)
+{
+ std::cout << __FUNCTION__ << ' ' << i << '\n';
+ m_optionalInt.emplace(i);
+}
+
+std::optional<Integer> StdOptionalTestBench::optionalInteger() const
+{
+ return m_optionalInteger;
+}
+
+void StdOptionalTestBench::setOptionalInteger(const std::optional<Integer> &s)
+{
+ std::cout << __FUNCTION__ << ' ' << s << '\n';
+ m_optionalInteger = s;
+}
+
+void StdOptionalTestBench::setOptionalIntegerValue(Integer &s)
+{
+ std::cout << __FUNCTION__ << ' ' << s << '\n';
+ m_optionalInteger.emplace(s);
+}
diff --git a/sources/shiboken6/tests/libsmart/stdoptionaltestbench.h b/sources/shiboken6/tests/libsmart/stdoptionaltestbench.h
new file mode 100644
index 000000000..baa709821
--- /dev/null
+++ b/sources/shiboken6/tests/libsmart/stdoptionaltestbench.h
@@ -0,0 +1,30 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef OPTIONALTEST_H
+#define OPTIONALTEST_H
+
+#include "libsmartmacros.h"
+#include "smart_integer.h"
+
+#include <optional>
+
+class LIB_SMART_API StdOptionalTestBench
+{
+public:
+ StdOptionalTestBench();
+
+ std::optional<int> optionalInt() const;
+ void setOptionalInt(const std::optional<int> &i);
+ void setOptionalIntValue(int i);
+
+ std::optional<Integer> optionalInteger() const;
+ void setOptionalInteger(const std::optional<Integer> &s);
+ void setOptionalIntegerValue(Integer &s);
+
+private:
+ std::optional<int> m_optionalInt;
+ std::optional<Integer> m_optionalInteger;
+};
+
+#endif // OPTIONALTEST_H
diff --git a/sources/shiboken6/tests/libsmart/stdsharedptrtestbench.cpp b/sources/shiboken6/tests/libsmart/stdsharedptrtestbench.cpp
new file mode 100644
index 000000000..a7b73cc81
--- /dev/null
+++ b/sources/shiboken6/tests/libsmart/stdsharedptrtestbench.cpp
@@ -0,0 +1,66 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#include "stdsharedptrtestbench.h"
+#include "smart_integer.h"
+
+#include <iostream>
+
+StdSharedPtrTestBench::StdSharedPtrTestBench() = default;
+StdSharedPtrTestBench::~StdSharedPtrTestBench() = default;
+
+std::shared_ptr<Integer> StdSharedPtrTestBench::createInteger(int v)
+{
+ auto result = std::make_shared<Integer>();
+ result->setValue(v);
+ return result;
+}
+
+std::shared_ptr<Integer> StdSharedPtrTestBench::createNullInteger()
+{
+ return {};
+}
+
+void StdSharedPtrTestBench::printInteger(const std::shared_ptr<Integer> &p)
+{
+ std::cerr << __FUNCTION__ << ' ';
+ if (p.get())
+ std::cerr << p->value();
+ else
+ std::cerr << "nullptr";
+ std::cerr << '\n';
+}
+
+std::shared_ptr<int> StdSharedPtrTestBench::createInt(int v)
+{
+ return std::make_shared<int>(v);
+}
+
+std::shared_ptr<int> StdSharedPtrTestBench::createNullInt()
+{
+ return {};
+}
+
+void StdSharedPtrTestBench::printInt(const std::shared_ptr<int> &p)
+{
+ std::cerr << __FUNCTION__ << ' ';
+ if (p.get())
+ std::cerr << *p;
+ else
+ std::cerr << "nullptr";
+ std::cerr << '\n';
+}
+
+StdSharedPtrVirtualMethodTester::StdSharedPtrVirtualMethodTester() = default;
+StdSharedPtrVirtualMethodTester::~StdSharedPtrVirtualMethodTester() = default;
+
+std::shared_ptr<Integer> StdSharedPtrVirtualMethodTester::callModifyInteger(const std::shared_ptr<Integer> &p)
+{
+ return doModifyInteger(p);
+}
+
+std::shared_ptr<Integer> StdSharedPtrVirtualMethodTester::doModifyInteger(std::shared_ptr<Integer> p)
+{
+ p->setValue(p->value() + 1);
+ return p;
+}
diff --git a/sources/shiboken6/tests/libsmart/stdsharedptrtestbench.h b/sources/shiboken6/tests/libsmart/stdsharedptrtestbench.h
new file mode 100644
index 000000000..8991cded6
--- /dev/null
+++ b/sources/shiboken6/tests/libsmart/stdsharedptrtestbench.h
@@ -0,0 +1,40 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef STDSHAREDPTRTESTBENCH_H
+#define STDSHAREDPTRTESTBENCH_H
+
+#include "libsmartmacros.h"
+
+#include <memory>
+
+class Integer;
+
+class LIB_SMART_API StdSharedPtrTestBench
+{
+public:
+ StdSharedPtrTestBench();
+ ~StdSharedPtrTestBench();
+
+ static std::shared_ptr<Integer> createInteger(int v = 42);
+ static std::shared_ptr<Integer> createNullInteger();
+ static void printInteger(const std::shared_ptr<Integer> &);
+
+ static std::shared_ptr<int> createInt(int v = 42);
+ static std::shared_ptr<int> createNullInt();
+ static void printInt(const std::shared_ptr<int> &);
+};
+
+class LIB_SMART_API StdSharedPtrVirtualMethodTester
+{
+public:
+ StdSharedPtrVirtualMethodTester();
+ virtual ~StdSharedPtrVirtualMethodTester();
+
+ std::shared_ptr<Integer> callModifyInteger(const std::shared_ptr<Integer> &p);
+
+protected:
+ virtual std::shared_ptr<Integer> doModifyInteger(std::shared_ptr<Integer> p);
+};
+
+#endif // STDSHAREDPTRTESTBENCH_H
diff --git a/sources/shiboken6/tests/libsmart/stduniqueptrtestbench.cpp b/sources/shiboken6/tests/libsmart/stduniqueptrtestbench.cpp
new file mode 100644
index 000000000..df4b566fa
--- /dev/null
+++ b/sources/shiboken6/tests/libsmart/stduniqueptrtestbench.cpp
@@ -0,0 +1,133 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#include "stduniqueptrtestbench.h"
+#include "smart_integer.h"
+
+#include <iostream>
+
+std::ostream &operator<<(std::ostream &str, const std::unique_ptr<Integer> &p)
+{
+ str << "unique_ptr<Integer>(";
+ if (p.get())
+ str << p->value();
+ else
+ str << "nullptr";
+ str << ')';
+ return str;
+}
+
+std::ostream &operator<<(std::ostream &str, const std::unique_ptr<Smart::Integer2> &p)
+{
+ str << "unique_ptr<Integer>(";
+ if (p.get())
+ str << p->value();
+ else
+ str << "nullptr";
+ str << ')';
+ return str;
+}
+
+std::ostream &operator<<(std::ostream &str, const std::unique_ptr<int> &p)
+{
+ str << "unique_ptr<int>(";
+ if (p.get())
+ str << *p;
+ else
+ str << "nullptr";
+ str << ')';
+ return str;
+}
+
+StdUniquePtrTestBench::StdUniquePtrTestBench() = default;
+StdUniquePtrTestBench::~StdUniquePtrTestBench() = default;
+
+std::unique_ptr<Integer> StdUniquePtrTestBench::createInteger(int v)
+{
+ auto result = std::make_unique<Integer>();
+ result->setValue(v);
+ return result;
+}
+
+std::unique_ptr<Integer> StdUniquePtrTestBench::createNullInteger()
+{
+ return {};
+}
+
+void StdUniquePtrTestBench::printInteger(const std::unique_ptr<Integer> &p)
+{
+ std::cerr << __FUNCTION__ << ' ' << p << '\n';
+}
+
+void StdUniquePtrTestBench::takeInteger(std::unique_ptr<Integer> p)
+{
+ std::cerr << __FUNCTION__ << ' ' << p << '\n';
+}
+
+std::unique_ptr<int> StdUniquePtrTestBench::createInt(int v)
+{
+ return std::make_unique<int>(v);
+}
+
+std::unique_ptr<int> StdUniquePtrTestBench::createNullInt()
+{
+ return {};
+}
+
+void StdUniquePtrTestBench::printInt(const std::unique_ptr<int> &p)
+{
+ std::cerr << __FUNCTION__ << ' ' << p << '\n';
+}
+
+void StdUniquePtrTestBench::takeInt(std::unique_ptr<int> p)
+{
+ std::cerr << __FUNCTION__ << ' ' << p << '\n';
+}
+
+StdUniquePtrVirtualMethodTester::StdUniquePtrVirtualMethodTester() = default;
+
+StdUniquePtrVirtualMethodTester::~StdUniquePtrVirtualMethodTester() = default;
+
+bool StdUniquePtrVirtualMethodTester::testModifyIntegerByRef(int value, int expectedValue)
+{
+ auto p = std::make_unique<Integer>();
+ p->setValue(value);
+ const int actualValue = doModifyIntegerByRef(p);
+ return p.get() != nullptr && actualValue == expectedValue;
+}
+
+bool StdUniquePtrVirtualMethodTester::testModifyIntegerValue(int value, int expectedValue)
+{
+ auto p = std::make_unique<Integer>();
+ p->setValue(value);
+ const int actualValue = doModifyIntegerByValue(std::move(p));
+ return p.get() == nullptr && actualValue == expectedValue;
+}
+
+bool StdUniquePtrVirtualMethodTester::testCreateInteger(int value, int expectedValue)
+{
+ auto p = doCreateInteger(value);
+ return p.get() != nullptr && p->value() == expectedValue;
+}
+
+std::unique_ptr<Integer> StdUniquePtrVirtualMethodTester::doCreateInteger(int v)
+{
+ auto result = std::make_unique<Integer>();
+ result->setValue(v);
+ return result;
+}
+
+int StdUniquePtrVirtualMethodTester::doModifyIntegerByRef(const std::unique_ptr<Integer> &p)
+{
+ return p->value() + 1;
+}
+
+int StdUniquePtrVirtualMethodTester::doModifyIntegerByValue(std::unique_ptr<Integer> p)
+{
+ return p->value() + 1;
+}
+
+void StdUniquePtrTestBench::printInteger2(const std::unique_ptr<Smart::Integer2> &p)
+{
+ std::cerr << __FUNCTION__ << ' ' << p << '\n';
+}
diff --git a/sources/shiboken6/tests/libsmart/stduniqueptrtestbench.h b/sources/shiboken6/tests/libsmart/stduniqueptrtestbench.h
new file mode 100644
index 000000000..868c6d08c
--- /dev/null
+++ b/sources/shiboken6/tests/libsmart/stduniqueptrtestbench.h
@@ -0,0 +1,50 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef STDUNIQUEPTRTESTBENCH_H
+#define STDUNIQUEPTRTESTBENCH_H
+
+#include "libsmartmacros.h"
+
+#include <memory>
+
+class Integer;
+namespace Smart {
+class Integer2;
+}
+
+class LIB_SMART_API StdUniquePtrTestBench
+{
+public:
+ StdUniquePtrTestBench();
+ ~StdUniquePtrTestBench();
+
+ static std::unique_ptr<Integer> createInteger(int v = 42);
+ static std::unique_ptr<Integer> createNullInteger();
+ static void printInteger2(const std::unique_ptr<Smart::Integer2> &p);
+ static void printInteger(const std::unique_ptr<Integer> &p);
+ static void takeInteger(std::unique_ptr<Integer> p); // Call with std::move()
+
+ static std::unique_ptr<int> createInt(int v = 42);
+ static std::unique_ptr<int> createNullInt();
+ static void printInt(const std::unique_ptr<int> &p);
+ static void takeInt(std::unique_ptr<int> p); // Call with std::move()
+};
+
+class LIB_SMART_API StdUniquePtrVirtualMethodTester
+{
+public:
+ StdUniquePtrVirtualMethodTester();
+ virtual ~StdUniquePtrVirtualMethodTester();
+
+ bool testModifyIntegerByRef(int value, int expectedValue);
+ bool testModifyIntegerValue(int value, int expectedValue);
+ bool testCreateInteger(int value, int expectedValue);
+
+protected:
+ virtual std::unique_ptr<Integer> doCreateInteger(int v);
+ virtual int doModifyIntegerByRef(const std::unique_ptr<Integer> &p);
+ virtual int doModifyIntegerByValue(std::unique_ptr<Integer> p);
+};
+
+#endif // STDUNIQUEPTRTESTBENCH_H
diff --git a/sources/shiboken6/tests/minimalbinding/CMakeLists.txt b/sources/shiboken6/tests/minimalbinding/CMakeLists.txt
index 63ad8a577..7f132bd34 100644
--- a/sources/shiboken6/tests/minimalbinding/CMakeLists.txt
+++ b/sources/shiboken6/tests/minimalbinding/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(minimal)
set(minimal_TYPESYSTEM
@@ -6,22 +9,30 @@ ${CMAKE_CURRENT_SOURCE_DIR}/typesystem_minimal.xml
set(minimal_SRC
${CMAKE_CURRENT_BINARY_DIR}/minimal/minimal_module_wrapper.cpp
+${CMAKE_CURRENT_BINARY_DIR}/minimal/containeruser_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/minimal/obj_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/minimal/val_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/minimal/listuser_wrapper.cpp
+${CMAKE_CURRENT_BINARY_DIR}/minimal/spanuser_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/minimal/minbooluser_wrapper.cpp
)
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/minimal-binding.txt.in"
"${CMAKE_CURRENT_BINARY_DIR}/minimal-binding.txt" @ONLY)
+shiboken_get_tool_shell_wrapper(shiboken tool_wrapper)
+
add_custom_command(
-OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/mjb_rejected_classes.log"
-BYPRODUCTS ${minimal_SRC}
-COMMAND shiboken6 --project-file=${CMAKE_CURRENT_BINARY_DIR}/minimal-binding.txt ${GENERATOR_EXTRA_FLAGS}
-DEPENDS ${minimal_TYPESYSTEM} ${CMAKE_CURRENT_SOURCE_DIR}/global.h shiboken6
-WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
-COMMENT "Running generator for 'minimal' test binding..."
+ OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/mjb_rejected_classes.log"
+ BYPRODUCTS ${minimal_SRC}
+ COMMAND
+ ${tool_wrapper}
+ $<TARGET_FILE:Shiboken6::shiboken6>
+ --project-file=${CMAKE_CURRENT_BINARY_DIR}/minimal-binding.txt
+ ${GENERATOR_EXTRA_FLAGS}
+ DEPENDS ${minimal_TYPESYSTEM} ${CMAKE_CURRENT_SOURCE_DIR}/global.h Shiboken6::shiboken6
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ COMMENT "Running generator for 'minimal' test binding..."
)
add_library(minimal MODULE ${minimal_SRC})
diff --git a/sources/shiboken6/tests/minimalbinding/brace_pattern_test.py b/sources/shiboken6/tests/minimalbinding/brace_pattern_test.py
index e036eafb9..946a869db 100644
--- a/sources/shiboken6/tests/minimalbinding/brace_pattern_test.py
+++ b/sources/shiboken6/tests/minimalbinding/brace_pattern_test.py
@@ -1,41 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import os
import re
@@ -47,8 +11,7 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from shiboken_paths import init_paths
init_paths()
-from shiboken6 import Shiboken
-_init_pyside_extension() # trigger bootstrap
+from shiboken6 import Shiboken # noqa: F401
from shibokensupport.signature.lib.tool import build_brace_pattern
@@ -58,8 +21,9 @@ against a slower reference implementation.
The pattern is crucial, because it is used heavily in signature.parser .
"""
-# A slow reference parser for braces and strings
+
def check(s):
+ """A slow reference parser for braces and strings"""
open, close = "[{(<", "]})>"
escape, quote = "\\", '"'
instring = blind = False
@@ -78,8 +42,7 @@ def check(s):
stack.append(c)
elif c in close:
pos = close.index(c)
- if ((len(stack) > 0) and
- (open[pos] == stack[len(stack)-1])):
+ if len(stack) > 0 and open[pos] == stack[len(stack) - 1]:
stack.pop()
else:
return False
diff --git a/sources/shiboken6/tests/minimalbinding/containeruser_test.py b/sources/shiboken6/tests/minimalbinding/containeruser_test.py
new file mode 100644
index 000000000..25d683957
--- /dev/null
+++ b/sources/shiboken6/tests/minimalbinding/containeruser_test.py
@@ -0,0 +1,44 @@
+#!/usr/bin/env python
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from shiboken_paths import init_paths
+init_paths()
+
+from minimal import ContainerUser
+
+
+class ContainerTest(unittest.TestCase):
+ """Simple test for converting std::vector and using an opaque container.
+ For advanced tests, see ListUser."""
+ def testVectorConversion(self):
+ v = ContainerUser.createIntVector(4)
+ self.assertEqual(ContainerUser.sumIntVector(v), 6)
+
+ def testVectorOpaqueContainer(self):
+ cu = ContainerUser()
+ oc = cu.intVector()
+ self.assertEqual(oc[0], 1)
+ oc[0] = 42
+ self.assertEqual(cu.intVector()[0], 42)
+
+ def testArrayConversion(self):
+ v = ContainerUser.createIntArray()
+ self.assertEqual(ContainerUser.sumIntArray(v), 6)
+
+ def testArrayOpaqueContainer(self):
+ cu = ContainerUser()
+ oc = cu.intArray()
+ self.assertEqual(oc[0], 1)
+ oc[0] = 42
+ self.assertEqual(cu.intArray()[0], 42)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/shiboken6/tests/minimalbinding/global.h b/sources/shiboken6/tests/minimalbinding/global.h
index 1b06245c4..fc5c59a26 100644
--- a/sources/shiboken6/tests/minimalbinding/global.h
+++ b/sources/shiboken6/tests/minimalbinding/global.h
@@ -1,33 +1,10 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "obj.h"
+#include "containeruser.h"
#include "val.h"
#include "minbool.h"
#include "listuser.h"
+#include "spanuser.h"
#include "typedef.h"
diff --git a/sources/shiboken6/tests/minimalbinding/listuser_test.py b/sources/shiboken6/tests/minimalbinding/listuser_test.py
index b5048aa44..b30bb653a 100644
--- a/sources/shiboken6/tests/minimalbinding/listuser_test.py
+++ b/sources/shiboken6/tests/minimalbinding/listuser_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
from functools import reduce
import os
@@ -39,12 +12,15 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from shiboken_paths import init_paths
init_paths()
-from minimal import ListUser, Val, Obj
+from minimal import ListUser, Val, Obj, StdIntList
class ExtListUser(ListUser):
def __init__(self):
- ListUser.__init__(self)
+ super().__init__()
+ self._stdIntList = StdIntList()
+ self._stdIntList.append(1)
+ self._stdIntList.append(2)
def createIntList(self, num):
return list(range(0, num * 2, 2))
@@ -56,7 +32,7 @@ class ExtListUser(ListUser):
return [not mb1, not mb2]
def oredMinBoolList(self, minBoolList):
- return not reduce(lambda a, b: a|b, minBoolList)
+ return not reduce(lambda a, b: a | b, minBoolList)
def createValList(self, num):
return [Val(i) for i in range(0, num * 2, 2)]
@@ -78,6 +54,9 @@ class ExtListUser(ListUser):
def sumListOfIntLists(self, intListList):
return sum([sum(line) for line in intListList]) * 2
+ def returnIntListByPtr(self):
+ return self._stdIntList
+
class IntListConversionTest(unittest.TestCase):
@@ -116,8 +95,14 @@ class IntListConversionTest(unittest.TestCase):
def testSumIntList(self):
lu = ListUser()
lst = range(4)
- self.assertEqual(lu.sumIntList(lst), sum(lst))
- self.assertEqual(lu.callSumIntList(lst), sum(lst))
+ expected = sum(lst)
+ self.assertEqual(lu.sumIntList(lst), expected)
+ self.assertEqual(lu.callSumIntList(lst), expected)
+ self.assertEqual(lu.sumIntListDefaultParam(lst), expected)
+ self.assertEqual(lu.sumIntListDefaultParamConstRef(lst), expected)
+ # PYSIDE-2454: Check container default parameters (1,2,3)
+ self.assertEqual(lu.sumIntListDefaultParam(), 6)
+ self.assertEqual(lu.sumIntListDefaultParamConstRef(), 6)
def testSumIntListFromExtendedClass(self):
lu = ExtListUser()
@@ -318,10 +303,74 @@ class ListOfIntListConversionTest(unittest.TestCase):
def testSumListOfIntListsFromExtendedClass(self):
lu = ExtListUser()
lst = [range(4)] * 4
- self.assertEqual(lu.sumListOfIntLists(lst), sum([sum(line) for line in [range(4)] * 4]) * 2)
- self.assertEqual(lu.callSumListOfIntLists(lst), sum([sum(line) for line in [range(4)] * 4]) * 2)
+ self.assertEqual(lu.sumListOfIntLists(lst),
+ sum([sum(line) for line in [range(4)] * 4]) * 2)
+ self.assertEqual(lu.callSumListOfIntLists(lst),
+ sum([sum(line) for line in [range(4)] * 4]) * 2)
+
+ def testOpaqueContainer(self):
+ lu = ListUser()
+
+ # Set via Python
+ python_list = [1, 2]
+ lu.setStdIntList(python_list)
+ self.assertEqual(len(lu.m_stdIntList), 2)
+ self.assertEqual(lu.m_stdIntList[0], 1)
+ self.assertEqual(lu.m_stdIntList[1], 2)
+
+ # Set via C++
+ cpp_list = StdIntList()
+ cpp_list.append(3)
+ cpp_list.append(4)
+ lu.setStdIntList(cpp_list)
+ self.assertEqual(len(lu.m_stdIntList), 2)
+ self.assertEqual(lu.m_stdIntList[0], 3)
+ self.assertEqual(lu.m_stdIntList[1], 4)
+
+ # Access field directly via reference
+ lu.m_stdIntList.append(5)
+ self.assertEqual(len(lu.m_stdIntList), 3)
+ self.assertEqual(lu.m_stdIntList[2], 5)
+
+ # Access list via getter
+ il = lu.getIntList()
+ il.append(6)
+ self.assertEqual(len(lu.m_stdIntList), 4)
+ self.assertEqual(lu.m_stdIntList[3], 6)
+
+ # Access a const list via getter and verify that it cannot be modified
+ const_l = lu.getConstIntList()
+ self.assertEqual(len(const_l), 4)
+ self.assertRaises(TypeError, const_l.append, 6)
+
+ def testListByPtrOpaque(self):
+ """Test a function taking C++ list by pointer for which an opaque
+ container exists."""
+ lu = ListUser()
+ python_list = [1, 2]
+ self.assertEqual(lu.modifyIntListPtr(python_list), 2)
+
+ # Pass an opaque container and verify whether it is modified by C++
+ cpp_list = StdIntList()
+ cpp_list.append(1)
+ cpp_list.append(2)
+ self.assertEqual(lu.modifyIntListPtr(cpp_list), 2)
+ self.assertEqual(len(cpp_list), 3)
+
+ def testListByPtr(self):
+ """Test a function taking C++ list by pointer for which no opaque
+ container exists."""
+ lu = ListUser()
+ python_list = [1.1, 22.2]
+ self.assertEqual(lu.modifyDoubleListPtr(python_list), 2)
+
+ def testReturnListByPtr(self):
+ """Test that a virtual function returning a list by pointer can be
+ reimplemented by a Python function returning an opaque container."""
+ lu = ExtListUser()
+ size = lu.callReturnIntListByPtr() # Call virtual from C++
+ self.assertEqual(size, 2)
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/minimalbinding/minbool_test.py b/sources/shiboken6/tests/minimalbinding/minbool_test.py
index 789803371..d9ce0eac0 100644
--- a/sources/shiboken6/tests/minimalbinding/minbool_test.py
+++ b/sources/shiboken6/tests/minimalbinding/minbool_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -40,32 +13,34 @@ init_paths()
from minimal import MinBoolUser
+
class DerivedMinBoolUser (MinBoolUser):
def returnMyselfVirtual(self):
return MinBoolUser()
+
class MinBoolTest(unittest.TestCase):
def testMinBoolUser(self):
mbuTrue = MinBoolUser()
mbuFalse = MinBoolUser()
mbuTrue.setMinBool(True)
- self.assertEqual(mbuFalse.minBool(), False)
- self.assertEqual(mbuTrue.minBool(), True)
- self.assertEqual(mbuTrue.callInvertedMinBool(), False)
+ self.assertFalse(mbuFalse.minBool())
+ self.assertTrue(mbuTrue.minBool())
+ self.assertFalse(mbuTrue.callInvertedMinBool())
- self.assertEqual(mbuTrue.minBool() == True, True)
- self.assertEqual(False == mbuFalse.minBool(), True)
- self.assertEqual(mbuTrue.minBool() == mbuFalse.minBool(), False)
+ self.assertTrue(mbuTrue.minBool())
+ self.assertFalse(mbuFalse.minBool())
+ self.assertTrue(mbuTrue.minBool() != mbuFalse.minBool())
- self.assertEqual(mbuFalse.minBool() != True, True)
- self.assertEqual(True != mbuFalse.minBool(), True)
- self.assertEqual(mbuTrue.minBool() != mbuFalse.minBool(), True)
+ self.assertFalse(mbuFalse.minBool())
+ self.assertFalse(mbuFalse.minBool())
+ self.assertTrue(mbuTrue.minBool() != mbuFalse.minBool())
def testVirtuals(self):
dmbu = DerivedMinBoolUser()
self.assertEqual(dmbu.invertedMinBool(), True)
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/minimalbinding/minimal-binding.txt.in b/sources/shiboken6/tests/minimalbinding/minimal-binding.txt.in
index 85b139676..101567070 100644
--- a/sources/shiboken6/tests/minimalbinding/minimal-binding.txt.in
+++ b/sources/shiboken6/tests/minimalbinding/minimal-binding.txt.in
@@ -13,3 +13,4 @@ typesystem-path = @CMAKE_CURRENT_SOURCE_DIR@
enable-parent-ctor-heuristic
use-isnull-as-nb_nonzero
+lean-headers
diff --git a/sources/shiboken6/tests/minimalbinding/minimalbinding.pyproject b/sources/shiboken6/tests/minimalbinding/minimalbinding.pyproject
new file mode 100644
index 000000000..ab19dc443
--- /dev/null
+++ b/sources/shiboken6/tests/minimalbinding/minimalbinding.pyproject
@@ -0,0 +1,10 @@
+{
+ "files": ["brace_pattern_test.py",
+ "containeruser_test.py",
+ "listuser_test.py",
+ "minbool_test.py",
+ "obj_test.py",
+ "typedef_test.py",
+ "val_test.py",
+ "typesystem_minimal.xml"]
+}
diff --git a/sources/shiboken6/tests/minimalbinding/obj_test.py b/sources/shiboken6/tests/minimalbinding/obj_test.py
index 1abd6e04c..e873845de 100644
--- a/sources/shiboken6/tests/minimalbinding/obj_test.py
+++ b/sources/shiboken6/tests/minimalbinding/obj_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -39,6 +12,7 @@ from shiboken_paths import init_paths
init_paths()
from minimal import Obj
+
class ExtObj(Obj):
def __init__(self, objId):
Obj.__init__(self, objId)
@@ -118,4 +92,3 @@ class ObjTest(unittest.TestCase):
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/minimalbinding/spanuser_test.py b/sources/shiboken6/tests/minimalbinding/spanuser_test.py
new file mode 100644
index 000000000..6db6aa616
--- /dev/null
+++ b/sources/shiboken6/tests/minimalbinding/spanuser_test.py
@@ -0,0 +1,42 @@
+#!/usr/bin/env python
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from shiboken_paths import init_paths
+init_paths()
+
+from minimal import SpanUser
+
+
+class IntSpanTest(unittest.TestCase):
+
+ def testCreateIntSpan(self):
+ if not SpanUser.enabled():
+ return
+ expected = [1, 2, 3]
+ self.assertEqual(SpanUser.getIntSpan3(), expected)
+ self.assertEqual(SpanUser.getIntSpan(), expected)
+ self.assertEqual(SpanUser.getConstIntSpan3(), expected)
+
+ self.assertEqual(SpanUser.sumIntSpan3(expected), 6)
+ self.assertEqual(SpanUser.sumIntSpan(expected), 6)
+ self.assertEqual(SpanUser.sumConstIntSpan3(expected), 6)
+
+ def testSpanOpaqueContainer(self):
+ if not SpanUser.enabled():
+ return
+ oc = SpanUser.getIntSpan3_OpaqueContainer() # 1,2,3
+ oc[1] = 10
+ oc = SpanUser.getIntSpan3_OpaqueContainer()
+ # note: This converts to std::vector
+ self.assertEqual(SpanUser.sumIntSpan3(oc), 14)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/shiboken6/tests/minimalbinding/typedef_test.py b/sources/shiboken6/tests/minimalbinding/typedef_test.py
index 9076cbe5e..c2fc8fc12 100644
--- a/sources/shiboken6/tests/minimalbinding/typedef_test.py
+++ b/sources/shiboken6/tests/minimalbinding/typedef_test.py
@@ -1,35 +1,7 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-from functools import reduce
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
import os
import sys
import unittest
@@ -38,7 +10,9 @@ from pathlib import Path
sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from shiboken_paths import init_paths
init_paths()
-from minimal import *
+from minimal import (arrayFunc, arrayFuncInt, arrayFuncIntReturn,
+ arrayFuncIntReturnTypedef, arrayFuncIntTypedef,
+ arrayFuncReturn, arrayFuncReturnTypedef, arrayFuncTypedef)
try:
import numpy as np
@@ -58,29 +32,37 @@ class TypedefTest(unittest.TestCase):
self.assertTrue(arrayFuncInt(none), "None is empty, arrayFuncInt should return true")
self.assertFalse(arrayFuncInt(full), "Full is NOT empty, arrayFuncInt should return false")
- self.assertTrue(arrayFuncInt(np.array(none)), "None is empty, arrayFuncInt should return true")
- self.assertFalse(arrayFuncInt(np.array(full)), "Full is NOT empty, arrayFuncInt should return false")
+ self.assertTrue(arrayFuncInt(np.array(none)),
+ "None is empty, arrayFuncInt should return true")
+ self.assertFalse(arrayFuncInt(np.array(full)),
+ "Full is NOT empty, arrayFuncInt should return false")
def test_arrayFuncIntTypedef(self):
none = ()
full = (1, 2, 3)
- self.assertTrue(arrayFuncIntTypedef(none), "None is empty, arrayFuncIntTypedef should return true")
- self.assertFalse(arrayFuncIntTypedef(full), "Full is NOT empty, arrayFuncIntTypedef should return false")
+ self.assertTrue(arrayFuncIntTypedef(none),
+ "None is empty, arrayFuncIntTypedef should return true")
+ self.assertFalse(arrayFuncIntTypedef(full),
+ "Full is NOT empty, arrayFuncIntTypedef should return false")
- self.assertTrue(arrayFuncIntTypedef(np.array(none)), "None is empty, arrayFuncIntTypedef should return true")
- self.assertFalse(arrayFuncIntTypedef(np.array(full)), "Full is NOT empty, arrayFuncIntTypedef should return false")
+ self.assertTrue(arrayFuncIntTypedef(np.array(none)),
+ "None is empty, arrayFuncIntTypedef should return true")
+ self.assertFalse(arrayFuncIntTypedef(np.array(full)),
+ "Full is NOT empty, arrayFuncIntTypedef should return false")
def test_arrayFuncIntReturn(self):
none = arrayFuncIntReturn(0)
full = arrayFuncIntReturn(self.the_size)
self.assertTrue((len(none) == 0), "none should be empty")
- self.assertTrue((len(full) == self.the_size), "full should have " + str(self.the_size) + " elements")
+ self.assertTrue((len(full) == self.the_size),
+ f"full should have {self.the_size} elements")
def test_arrayFuncIntReturnTypedef(self):
none = arrayFuncIntReturnTypedef(0)
full = arrayFuncIntReturnTypedef(self.the_size)
self.assertTrue((len(none) == 0), "none should be empty")
- self.assertTrue((len(full) == self.the_size), "full should have " + str(self.the_size) + " elements")
+ self.assertTrue((len(full) == self.the_size),
+ f"full should have {self.the_size} elements")
def test_arrayFunc(self):
none = ()
@@ -89,30 +71,37 @@ class TypedefTest(unittest.TestCase):
self.assertFalse(arrayFunc(full), "Full is NOT empty, arrayFunc should return false")
self.assertTrue(arrayFunc(np.array(none)), "None is empty, arrayFunc should return true")
- self.assertFalse(arrayFunc(np.array(full)), "Full is NOT empty, arrayFunc should return false")
+ self.assertFalse(arrayFunc(np.array(full)),
+ "Full is NOT empty, arrayFunc should return false")
def test_arrayFuncTypedef(self):
none = ()
full = (1, 2, 3)
- self.assertTrue(arrayFuncTypedef(none), "None is empty, arrayFuncTypedef should return true")
- self.assertFalse(arrayFuncTypedef(full), "Full is NOT empty, arrayFuncTypedef should return false")
+ self.assertTrue(arrayFuncTypedef(none),
+ "None is empty, arrayFuncTypedef should return true")
+ self.assertFalse(arrayFuncTypedef(full),
+ "Full is NOT empty, arrayFuncTypedef should return false")
- self.assertTrue(arrayFuncTypedef(np.array(none)), "None is empty, arrayFuncTypedef should return true")
- self.assertFalse(arrayFuncTypedef(np.array(full)), "Full is NOT empty, arrayFuncTypedef should return false")
+ self.assertTrue(arrayFuncTypedef(np.array(none)),
+ "None is empty, arrayFuncTypedef should return true")
+ self.assertFalse(arrayFuncTypedef(np.array(full)),
+ "Full is NOT empty, arrayFuncTypedef should return false")
def test_arrayFuncReturn(self):
none = arrayFuncReturn(0)
full = arrayFuncReturn(self.the_size)
self.assertTrue((len(none) == 0), "none should be empty")
- self.assertTrue((len(full) == self.the_size), "full should have " + str(self.the_size) + " elements")
+ self.assertTrue((len(full) == self.the_size),
+ f"full should have {self.the_size} elements")
def test_arrayFuncReturnTypedef(self):
none = arrayFuncReturnTypedef(0)
full = arrayFuncReturnTypedef(self.the_size)
self.assertTrue((len(none) == 0), "none should be empty")
- self.assertTrue((len(full) == self.the_size), "full should have " + str(self.the_size) + " elements")
+ self.assertTrue((len(full) == self.the_size),
+ f"full should have {self.the_size} elements")
if __name__ == '__main__':
- if np != None:
+ if np is not None:
unittest.main()
diff --git a/sources/shiboken6/tests/minimalbinding/typesystem_minimal.xml b/sources/shiboken6/tests/minimalbinding/typesystem_minimal.xml
index 625615fa1..e18bf8686 100644
--- a/sources/shiboken6/tests/minimalbinding/typesystem_minimal.xml
+++ b/sources/shiboken6/tests/minimalbinding/typesystem_minimal.xml
@@ -1,7 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<typesystem package="minimal">
- <primitive-type name="bool"/>
- <primitive-type name="int"/>
<primitive-type name="MinBool" target-lang-api-name="PyBool" default-constructor="MinBool(false)">
<include file-name="minbool.h" location="global"/>
@@ -17,65 +15,59 @@
</conversion-rule>
</primitive-type>
- <container-type name="std::list" type="list">
- <include file-name="list" location="global"/>
- <conversion-rule>
- <native-to-target>
- PyObject* %out = PyList_New(Py_ssize_t(%in.size()));
- Py_ssize_t idx = 0;
- for (auto it = %in.cbegin(), end = %in.cend(); it != end; ++it, ++idx) {
- %INTYPE_0 cppItem(*it);
- PyList_SET_ITEM(%out, idx, %CONVERTTOPYTHON[%INTYPE_0](cppItem));
- }
- return %out;
- </native-to-target>
- <target-to-native>
- <add-conversion type="PySequence">
- Shiboken::AutoDecRef seq(PySequence_Fast(%in, 0));
- const Py_ssize_t size = PySequence_Fast_GET_SIZE(seq.object());
- for (Py_ssize_t i = 0; i &lt; size; ++i) {
- PyObject* pyItem = PySequence_Fast_GET_ITEM(seq.object(), i);
- %OUTTYPE_0 cppItem = %CONVERTTOCPP[%OUTTYPE_0](pyItem);
- %out.push_back(cppItem);
- }
- </add-conversion>
- </target-to-native>
- </conversion-rule>
- </container-type>
+ <opaque-container name="std::list" opaque-containers="int:StdIntList"/>
+
+ <opaque-container name="std::vector" opaque-containers="int:StdIntVector"/>
+
+ <opaque-container name="std::array" opaque-containers="int,3:StdIntArray"/>
+
+ <?if c++20?> <!-- FIXME PYSIDE 7: Remove "if" -->
+ <opaque-container name="std::span" opaque-containers="int,3:StdIntSpan3"/>
+ <?endif?>
<object-type name="Obj"/>
<value-type name="Val">
<enum-type name="ValEnum"/>
</value-type>
- <value-type name="ListUser"/>
+ <value-type name="ListUser">
+ <modify-field name="m_stdIntList" opaque-container="yes"/>
+ <modify-function signature="getIntList()">
+ <modify-argument index="return">
+ <replace-type modified-type="StdIntList"/>
+ </modify-argument>
+ </modify-function>
+ <modify-function signature="getConstIntList()const">
+ <modify-argument index="return">
+ <replace-type modified-type="StdIntList"/>
+ </modify-argument>
+ </modify-function>
+ </value-type>
+
+ <value-type name="SpanUser">
+ <?if c++20?> <!-- FIXME PYSIDE 7: Remove "if" -->
+ <modify-function signature="getIntSpan3_OpaqueContainer()">
+ <modify-argument index="return">
+ <replace-type modified-type="StdIntSpan3"/>
+ </modify-argument>
+ </modify-function>
+ <?endif?>
+ </value-type>
+
<value-type name="MinBoolUser"/>
- <container-type name="std::vector" type="vector">
- <include file-name="vector" location="global"/>
- <conversion-rule>
- <native-to-target>
- %INTYPE::size_type vectorSize = %in.size();
- PyObject* %out = PyList_New(Py_ssize_t(vectorSize));
- for (%INTYPE::size_type idx = 0; idx &lt; vectorSize; ++idx) {
- %INTYPE_0 cppItem(%in[idx]);
- PyList_SET_ITEM(%out, idx, %CONVERTTOPYTHON[%INTYPE_0](cppItem));
- }
- return %out;
- </native-to-target>
- <target-to-native>
- <add-conversion type="PySequence">
- Shiboken::AutoDecRef seq(PySequence_Fast(%in, 0));
- const Py_ssize_t vectorSize = PySequence_Fast_GET_SIZE(seq.object());
- %out.reserve(vectorSize);
- for (Py_ssize_t idx = 0; idx &lt; vectorSize; ++idx ) {
- PyObject* pyItem = PySequence_Fast_GET_ITEM(seq.object(), idx);
- %OUTTYPE_0 cppItem = %CONVERTTOCPP[%OUTTYPE_0](pyItem);
- %out.push_back(cppItem);
- }
- </add-conversion>
- </target-to-native>
- </conversion-rule>
- </container-type>
+ <value-type name="ContainerUser">
+ <modify-function signature="intVector()">
+ <modify-argument index="return">
+ <replace-type modified-type="StdIntVector"/>
+ </modify-argument>
+ </modify-function>
+ <modify-function signature="intArray()">
+ <modify-argument index="return">
+ <replace-type modified-type="StdIntArray"/>
+ </modify-argument>
+ </modify-function>
+ </value-type>
+
<!-- Test wrapping of a typedef -->
<function signature="arrayFuncInt(std::vector&lt;int&gt;)" />
<!-- Note manual expansion of the typedef -->
diff --git a/sources/shiboken6/tests/minimalbinding/val_test.py b/sources/shiboken6/tests/minimalbinding/val_test.py
index 63d2cf300..b8225a247 100644
--- a/sources/shiboken6/tests/minimalbinding/val_test.py
+++ b/sources/shiboken6/tests/minimalbinding/val_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -119,4 +92,3 @@ class ValTest(unittest.TestCase):
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/otherbinding/CMakeLists.txt b/sources/shiboken6/tests/otherbinding/CMakeLists.txt
index 7c8562abc..2172593d3 100644
--- a/sources/shiboken6/tests/otherbinding/CMakeLists.txt
+++ b/sources/shiboken6/tests/otherbinding/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(other)
set(other_TYPESYSTEM
@@ -22,13 +25,19 @@ ${CMAKE_CURRENT_BINARY_DIR}/other/valuewithunitintmillimeter_wrapper.cpp
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/other-binding.txt.in"
"${CMAKE_CURRENT_BINARY_DIR}/other-binding.txt" @ONLY)
+shiboken_get_tool_shell_wrapper(shiboken tool_wrapper)
+
add_custom_command(
-OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/mjb_rejected_classes.log"
-BYPRODUCTS ${other_SRC}
-COMMAND shiboken6 --project-file=${CMAKE_CURRENT_BINARY_DIR}/other-binding.txt ${GENERATOR_EXTRA_FLAGS}
-DEPENDS ${other_TYPESYSTEM} ${CMAKE_CURRENT_SOURCE_DIR}/global.h shiboken6
-WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
-COMMENT "Running generator for 'other' test binding..."
+ OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/mjb_rejected_classes.log"
+ BYPRODUCTS ${other_SRC}
+ COMMAND
+ ${tool_wrapper}
+ $<TARGET_FILE:Shiboken6::shiboken6>
+ --project-file=${CMAKE_CURRENT_BINARY_DIR}/other-binding.txt
+ ${GENERATOR_EXTRA_FLAGS}
+ DEPENDS ${other_TYPESYSTEM} ${CMAKE_CURRENT_SOURCE_DIR}/global.h Shiboken6::shiboken6
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ COMMENT "Running generator for 'other' test binding..."
)
add_library(other MODULE ${other_SRC})
diff --git a/sources/shiboken6/tests/otherbinding/collector_external_operator_test.py b/sources/shiboken6/tests/otherbinding/collector_external_operator_test.py
index b059335de..2ba21653d 100644
--- a/sources/shiboken6/tests/otherbinding/collector_external_operator_test.py
+++ b/sources/shiboken6/tests/otherbinding/collector_external_operator_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for Collector shift operators defined in other modules.'''
@@ -43,6 +16,7 @@ init_paths()
from sample import Collector, ObjectType
from other import OtherObjectType
+
class CollectorOtherObjectType(unittest.TestCase):
'''Test cases for Collector << OtherObjectType'''
@@ -60,6 +34,6 @@ class CollectorOtherObjectType(unittest.TestCase):
collector << obj
self.assertEqual(collector.items()[0], obj.identifier() * 2)
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/otherbinding/conversion_operator_for_class_without_implicit_conversions_test.py b/sources/shiboken6/tests/otherbinding/conversion_operator_for_class_without_implicit_conversions_test.py
index 79ae9de18..bd00b5892 100644
--- a/sources/shiboken6/tests/otherbinding/conversion_operator_for_class_without_implicit_conversions_test.py
+++ b/sources/shiboken6/tests/otherbinding/conversion_operator_for_class_without_implicit_conversions_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Tests calling NoImplicitConversion using a ExtendsNoImplicitConversion parameter,
being that the latter defines a new conversion operator for the former, and this one
@@ -45,8 +18,10 @@ init_paths()
from sample import NoImplicitConversion
from other import ExtendsNoImplicitConversion
+
class ConversionOperatorForClassWithoutImplicitConversionsTest(unittest.TestCase):
- '''Tests calling NoImplicitConversion constructor using a ExtendsNoImplicitConversion parameter.'''
+ '''Tests calling NoImplicitConversion constructor using a
+ ExtendsNoImplicitConversion parameter.'''
def testNoImplicitConversion(self):
'''Basic test to see if the NoImplicitConversion is Ok.'''
@@ -54,27 +29,33 @@ class ConversionOperatorForClassWithoutImplicitConversionsTest(unittest.TestCase
# NoImplicitConversion.receivesNoImplicitConversionByValue(NoImplicitConversion)
self.assertEqual(obj.objId(), NoImplicitConversion.receivesNoImplicitConversionByValue(obj))
# NoImplicitConversion.receivesNoImplicitConversionByPointer(NoImplicitConversion*)
- self.assertEqual(obj.objId(), NoImplicitConversion.receivesNoImplicitConversionByPointer(obj))
+ self.assertEqual(obj.objId(),
+ NoImplicitConversion.receivesNoImplicitConversionByPointer(obj))
# NoImplicitConversion.receivesNoImplicitConversionByReference(NoImplicitConversion&)
- self.assertEqual(obj.objId(), NoImplicitConversion.receivesNoImplicitConversionByReference(obj))
+ self.assertEqual(obj.objId(),
+ NoImplicitConversion.receivesNoImplicitConversionByReference(obj))
def testPassingExtendsNoImplicitConversionAsNoImplicitConversionByValue(self):
- '''Gives an ExtendsNoImplicitConversion object to a function expecting a NoImplicitConversion, passing by value.'''
+ '''Gives an ExtendsNoImplicitConversion object to a function expecting a
+ NoImplicitConversion, passing by value.'''
obj = ExtendsNoImplicitConversion(123)
self.assertEqual(obj.objId(), NoImplicitConversion.receivesNoImplicitConversionByValue(obj))
def testPassingExtendsNoImplicitConversionAsNoImplicitConversionByReference(self):
- '''Gives an ExtendsNoImplicitConversion object to a function expecting a NoImplicitConversion, passing by reference.'''
+ '''Gives an ExtendsNoImplicitConversion object to a function expecting a
+ NoImplicitConversion, passing by reference.'''
obj = ExtendsNoImplicitConversion(123)
- self.assertEqual(obj.objId(), NoImplicitConversion.receivesNoImplicitConversionByReference(obj))
+ self.assertEqual(obj.objId(),
+ NoImplicitConversion.receivesNoImplicitConversionByReference(obj))
def testPassingExtendsNoImplicitConversionAsNoImplicitConversionByPointer(self):
- '''Gives an ExtendsNoImplicitConversion object to a function expecting a NoImplicitConversion, passing by pointer.
- This should not be accepted, since pointers should not be converted.'''
+ '''Gives an ExtendsNoImplicitConversion object to a function expecting
+ a NoImplicitConversion, passing by pointer. This should not be
+ accepted, since pointers should not be converted.'''
obj = ExtendsNoImplicitConversion(123)
- self.assertRaises(TypeError, NoImplicitConversion.receivesNoImplicitConversionByPointer, obj)
+ self.assertRaises(TypeError,
+ NoImplicitConversion.receivesNoImplicitConversionByPointer, obj)
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/otherbinding/extended_multiply_operator_test.py b/sources/shiboken6/tests/otherbinding/extended_multiply_operator_test.py
index e54e38e77..abbef6231 100644
--- a/sources/shiboken6/tests/otherbinding/extended_multiply_operator_test.py
+++ b/sources/shiboken6/tests/otherbinding/extended_multiply_operator_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for libsample's Point multiply operator defined in libother module.'''
@@ -43,6 +16,7 @@ init_paths()
from sample import Point
from other import Number
+
class PointOperationsWithNumber(unittest.TestCase):
'''Test cases for libsample's Point multiply operator defined in libother module.'''
@@ -66,6 +40,6 @@ class PointOperationsWithNumber(unittest.TestCase):
num = Number(11)
self.assertEqual(pt * num.value(), pt * 11)
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/otherbinding/global.h b/sources/shiboken6/tests/otherbinding/global.h
index 702fb9287..af796734a 100644
--- a/sources/shiboken6/tests/otherbinding/global.h
+++ b/sources/shiboken6/tests/otherbinding/global.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "../samplebinding/global.h"
#include "extendsnoimplicitconversion.h"
diff --git a/sources/shiboken6/tests/otherbinding/module_reload_test.py b/sources/shiboken6/tests/otherbinding/module_reload_test.py
index fe3a83533..bde2f5236 100644
--- a/sources/shiboken6/tests/otherbinding/module_reload_test.py
+++ b/sources/shiboken6/tests/otherbinding/module_reload_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
from importlib import reload
import os
@@ -48,6 +21,7 @@ dst = workdir / 'test_module.py'
shutil.copyfile(src, dst)
sys.path.append(os.fspath(workdir))
+
class TestModuleReloading(unittest.TestCase):
def testModuleReloading(self):
@@ -59,5 +33,6 @@ class TestModuleReloading(unittest.TestCase):
reload(test_module)
self.assertFalse(oldObject is test_module.obj)
+
if __name__ == "__main__":
unittest.main()
diff --git a/sources/shiboken6/tests/otherbinding/new_ctor_operator_test.py b/sources/shiboken6/tests/otherbinding/new_ctor_operator_test.py
index c3a12d7ad..d6c356436 100644
--- a/sources/shiboken6/tests/otherbinding/new_ctor_operator_test.py
+++ b/sources/shiboken6/tests/otherbinding/new_ctor_operator_test.py
@@ -1,35 +1,9 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-'''Tests calling Str constructor using a Number parameter, being that number defines a cast operator to Str.'''
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+'''Tests calling Str constructor using a Number parameter, being that number defines
+ a cast operator to Str.'''
import os
import sys
@@ -43,8 +17,10 @@ init_paths()
from sample import Str
from other import Number
+
class NewCtorOperatorTest(unittest.TestCase):
- '''Tests calling Str constructor using a Number parameter, being that number defines a cast operator to Str.'''
+ '''Tests calling Str constructor using a Number parameter, being that number
+ defines a cast operator to Str.'''
def testNumber(self):
'''Basic test to see if the Number class is Ok.'''
@@ -56,8 +32,8 @@ class NewCtorOperatorTest(unittest.TestCase):
'''Try to build a Str from 'sample' module with a Number argument from 'other' module.'''
value = 123
num = Number(value)
- string = Str(num)
+ string = Str(num) # noqa: F841
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/otherbinding/objtypehashes_test.py b/sources/shiboken6/tests/otherbinding/objtypehashes_test.py
index 36c27b35d..d2cd7de5b 100644
--- a/sources/shiboken6/tests/otherbinding/objtypehashes_test.py
+++ b/sources/shiboken6/tests/otherbinding/objtypehashes_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -34,10 +9,10 @@ from pathlib import Path
sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from shiboken_paths import init_paths
init_paths()
-from sample import *
-from other import *
+from sample import HandleHolder
from shiboken6 import Shiboken
+
class TestHashFuncs (unittest.TestCase):
def testIt(self):
@@ -55,6 +30,5 @@ class TestHashFuncs (unittest.TestCase):
self.assertEqual(hash1_2, hash1)
-
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken6/tests/otherbinding/other-binding.txt.in b/sources/shiboken6/tests/otherbinding/other-binding.txt.in
index dbe935a9f..d85f6030a 100644
--- a/sources/shiboken6/tests/otherbinding/other-binding.txt.in
+++ b/sources/shiboken6/tests/otherbinding/other-binding.txt.in
@@ -17,4 +17,4 @@ typesystem-path = @sample_SOURCE_DIR@
typesystem-path = @smart_SOURCE_DIR@
enable-parent-ctor-heuristic
-
+lean-headers
diff --git a/sources/shiboken6/tests/otherbinding/otherbinding.pyproject b/sources/shiboken6/tests/otherbinding/otherbinding.pyproject
new file mode 100644
index 000000000..d1bbee11e
--- /dev/null
+++ b/sources/shiboken6/tests/otherbinding/otherbinding.pyproject
@@ -0,0 +1,17 @@
+{
+ "files": ["collector_external_operator_test.py",
+ "conversion_operator_for_class_without_implicit_conversions_test.py",
+ "extended_multiply_operator_test.py",
+ "module_reload_test.py",
+ "new_ctor_operator_test.py",
+ "objtypehashes_test.py",
+ "otherderived_test.py",
+ "othertypesystypedef_test.py",
+ "signature_test.py",
+ "smartptr_test.py",
+ "test_module_template.py",
+ "typediscovery_test.py",
+ "usersprimitivefromothermodule_test.py",
+ "wrongctor_test.py",
+ "typesystem_other.xml"]
+}
diff --git a/sources/shiboken6/tests/otherbinding/otherderived_test.py b/sources/shiboken6/tests/otherbinding/otherderived_test.py
index 9a68e2ad4..459f474f1 100644
--- a/sources/shiboken6/tests/otherbinding/otherderived_test.py
+++ b/sources/shiboken6/tests/otherbinding/otherderived_test.py
@@ -1,36 +1,10 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for OtherDerived class'''
+import gc
import os
import sys
import unittest
@@ -43,6 +17,7 @@ init_paths()
from sample import Abstract, Derived
from other import OtherDerived, Number
+
class Multiple(Derived, Number):
def __init__(self):
Derived.__init__(self, 42)
@@ -51,6 +26,7 @@ class Multiple(Derived, Number):
def testCall(self):
return True
+
class OtherDeviant(OtherDerived):
def __init__(self):
OtherDerived.__init__(self)
@@ -66,6 +42,7 @@ class OtherDeviant(OtherDerived):
def className(self):
return 'OtherDeviant'
+
class MultipleTest(unittest.TestCase):
'''Test case for Multiple derived class'''
@@ -75,6 +52,8 @@ class MultipleTest(unittest.TestCase):
self.assertTrue(isinstance(o, Number))
self.assertTrue(isinstance(o, Derived))
del o
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
def testMethodCall(self):
o = Multiple()
@@ -82,6 +61,7 @@ class MultipleTest(unittest.TestCase):
self.assertTrue(o.value(), 42)
self.assertTrue(o.testCall())
+
class OtherDerivedTest(unittest.TestCase):
'''Test case for OtherDerived class'''
@@ -92,13 +72,15 @@ class OtherDerivedTest(unittest.TestCase):
self.assertTrue(inherited_methods.issubset(dir(OtherDerived)))
def testReimplementedPureVirtualMethodCall(self):
- '''Test if a Python override of a implemented pure virtual method is correctly called from C++.'''
+ '''Test if a Python override of a implemented pure virtual method is
+ correctly called from C++.'''
d = OtherDeviant()
d.callPureVirtual()
self.assertTrue(d.pure_virtual_called)
def testReimplementedVirtualMethodCall(self):
- '''Test if a Python override of a reimplemented virtual method is correctly called from C++.'''
+ '''Test if a Python override of a reimplemented virtual method is
+ correctly called from C++.'''
d = OtherDeviant()
d.callUnpureVirtual()
self.assertTrue(d.unpure_virtual_called)
@@ -110,7 +92,8 @@ class OtherDerivedTest(unittest.TestCase):
self.assertEqual(d.getClassName(), 'OtherDerived')
def testReimplementedVirtualMethodCallReturningString(self):
- '''Test if a Python override of a reimplemented virtual method is correctly called from C++.'''
+ '''Test if a Python override of a reimplemented virtual method is
+ correctly called from C++.'''
d = OtherDeviant()
self.assertEqual(d.className(), 'OtherDeviant')
self.assertEqual(d.getClassName(), 'OtherDeviant')
@@ -121,6 +104,6 @@ class OtherDerivedTest(unittest.TestCase):
d = OtherDerived(objId)
self.assertEqual(Abstract.getObjectId(d), objId)
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/otherbinding/othertypesystypedef_test.py b/sources/shiboken6/tests/otherbinding/othertypesystypedef_test.py
index 05ac50c89..198c71693 100644
--- a/sources/shiboken6/tests/otherbinding/othertypesystypedef_test.py
+++ b/sources/shiboken6/tests/otherbinding/othertypesystypedef_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test case for a class that holds a void pointer.'''
@@ -40,8 +13,7 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from shiboken_paths import init_paths
init_paths()
-from other import (OtherValueWithUnitUser, ValueWithUnitIntInch,
- ValueWithUnitIntMillimeter)
+from other import (OtherValueWithUnitUser, ValueWithUnitIntMillimeter)
from sample import (ValueWithUnitDoubleMillimeter)
diff --git a/sources/shiboken6/tests/otherbinding/signature_test.py b/sources/shiboken6/tests/otherbinding/signature_test.py
index 9f94edd34..8db3e566b 100644
--- a/sources/shiboken6/tests/otherbinding/signature_test.py
+++ b/sources/shiboken6/tests/otherbinding/signature_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for functions signature'''
@@ -43,13 +16,19 @@ init_paths()
from other import OtherObjectType
from shiboken_test_helper import objectFullname
+from shibokensupport.signature import get_signature
+
+
class SignatureTest(unittest.TestCase):
- # Check if the argument of 'OtherObjectType::enumAsInt(SampleNamespace::SomeClass::PublicScopedEnum value)'
+ # Check if the argument of
+ # 'OtherObjectType::enumAsInt(SampleNamespace::SomeClass::PublicScopedEnum value)'
# has the correct representation
def testNamespaceFromOtherModule(self):
- argType = OtherObjectType.enumAsInt.__signature__.parameters['value'].annotation
- self.assertEqual(objectFullname(argType), 'sample.SampleNamespace.SomeClass.PublicScopedEnum')
+ argType = get_signature(OtherObjectType.enumAsInt).parameters["value"].annotation
+ self.assertEqual(objectFullname(argType),
+ "sample.SampleNamespace.SomeClass.PublicScopedEnum")
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken6/tests/otherbinding/smartptr_test.py b/sources/shiboken6/tests/otherbinding/smartptr_test.py
index a3a764629..fd5c7fa09 100644
--- a/sources/shiboken6/tests/otherbinding/smartptr_test.py
+++ b/sources/shiboken6/tests/otherbinding/smartptr_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for the SmartPtrTester class'''
@@ -40,8 +13,6 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from shiboken_paths import init_paths
init_paths()
-from smart import Integer
-from sample import Str
from other import SmartPtrTester
diff --git a/sources/shiboken6/tests/otherbinding/star_import_test.py b/sources/shiboken6/tests/otherbinding/star_import_test.py
new file mode 100644
index 000000000..4b5f1d270
--- /dev/null
+++ b/sources/shiboken6/tests/otherbinding/star_import_test.py
@@ -0,0 +1,99 @@
+#!/usr/bin/env python
+# Copyright (C) 2024 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+"""PYSIDE-2404: Test whether star imports work as they require special handling
+ by the lazy initialization."""
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from shiboken_paths import init_paths
+init_paths()
+
+SHIBOKEN_NAME = "shiboken6.Shiboken"
+MINIMAL_NAME = "minimal"
+OTHER_NAME = "other"
+
+shiboken_loaded = 1 if sys.modules.get(SHIBOKEN_NAME) else 0
+minimal_loaded = 1 if sys.modules.get(MINIMAL_NAME) else 0
+other_loaded = 1 if sys.modules.get(OTHER_NAME) else 0
+
+from minimal import * # noqa: F403
+
+shiboken_loaded += 2 if sys.modules.get(SHIBOKEN_NAME) else 0
+minimal_loaded += 2 if sys.modules.get(MINIMAL_NAME) else 0
+other_loaded += 2 if sys.modules.get(OTHER_NAME) else 0
+
+from other import Number # noqa: F403
+from other import * # noqa: F403
+
+shiboken_loaded += 4 if sys.modules.get(SHIBOKEN_NAME) else 0
+minimal_loaded += 4 if sys.modules.get(MINIMAL_NAME) else 0
+other_loaded = +4 if sys.modules.get(OTHER_NAME) else 0
+
+import shiboken6.Shiboken # noqa: F401 F403
+
+shiboken_loaded += 8 if sys.modules.get(SHIBOKEN_NAME) else 0
+
+
+class ValTest(unittest.TestCase):
+
+ def test(self):
+ val_id = 123
+ val = Val(val_id) # noqa: F405
+ self.assertEqual(val.valId(), val_id)
+
+
+class Simple(Number):
+
+ def __init__(self):
+ Number.__init__(self, 42)
+
+
+class OtherTest(unittest.TestCase):
+
+ def testConstructor(self):
+ o = Simple()
+ self.assertTrue(isinstance(o, Number))
+
+
+class StarImportTest(unittest.TestCase):
+ """
+ This test is meant for Lazy Init.
+ We explicitly choose modules which are able to lazy load.
+
+ The ValTest:
+ ------------
+ We load something with `import *`.
+ There is no module from our known ones imported.
+ This means we need stack introspection to find out that this was
+ a star import and we must disable lazyness.
+
+ The OtherTest:
+ --------------
+ We load something normally that should be lazy.
+ After that, we follow with a star import.
+ Now the stack introspection does not work, because the loading is
+ cached. The first import did a lazy load. The following star import
+ needs to undo the lazyness. But now we have a redirected import.
+
+ All tests simply check if the objects are real and not just names.
+ The <module>_loaded tests prevend upcoming internal dependencies.
+
+ To make sure that Shiboken is really not involved, it is checked
+ and really imported afterwards (ensuring nothing is misspelled).
+ """
+
+ def testStar(self):
+ self.assertEqual(other_loaded, 4)
+ self.assertEqual(minimal_loaded, 6)
+ self.assertEqual(shiboken_loaded, 14)
+ # Interesting effect: Did not expect that shiboken is loaded at all.
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/shiboken6/tests/otherbinding/test_module_template.py b/sources/shiboken6/tests/otherbinding/test_module_template.py
index 5d08944f3..36ab43ae3 100644
--- a/sources/shiboken6/tests/otherbinding/test_module_template.py
+++ b/sources/shiboken6/tests/otherbinding/test_module_template.py
@@ -1,38 +1,22 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-from other import *
-from sample import *
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import os
+import sys
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from shiboken_paths import init_paths
+init_paths()
+
+from other import OtherObjectType
+from sample import ObjectType
class MyObjectType(ObjectType):
pass
+
class MyOtherObjectType(OtherObjectType):
value = 10
diff --git a/sources/shiboken6/tests/otherbinding/typediscovery_test.py b/sources/shiboken6/tests/otherbinding/typediscovery_test.py
index fee4734ae..791d3bdce 100644
--- a/sources/shiboken6/tests/otherbinding/typediscovery_test.py
+++ b/sources/shiboken6/tests/otherbinding/typediscovery_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for type discovery'''
@@ -40,9 +13,10 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from shiboken_paths import init_paths
init_paths()
-from sample import Abstract, Base1, Derived, MDerived1, MDerived3, SonOfMDerived1
+from sample import Abstract, Base1, Derived
from other import OtherMultipleDerived
+
class TypeDiscoveryTest(unittest.TestCase):
def testPureVirtualsOfImpossibleTypeDiscovery(self):
@@ -56,18 +30,19 @@ class TypeDiscoveryTest(unittest.TestCase):
self.assertEqual(type(a), Derived)
def testMultipleInheritance(self):
- obj = OtherMultipleDerived.createObject("Base1");
+ obj = OtherMultipleDerived.createObject("Base1")
self.assertEqual(type(obj), Base1)
# PYSIDE-868: In case of multiple inheritance, a factory
# function will return the base class wrapper.
- obj = OtherMultipleDerived.createObject("MDerived1");
+ obj = OtherMultipleDerived.createObject("MDerived1")
self.assertEqual(type(obj), Base1)
- obj = OtherMultipleDerived.createObject("SonOfMDerived1");
+ obj = OtherMultipleDerived.createObject("SonOfMDerived1")
self.assertEqual(type(obj), Base1)
- obj = OtherMultipleDerived.createObject("MDerived3");
+ obj = OtherMultipleDerived.createObject("MDerived3")
self.assertEqual(type(obj), Base1)
- obj = OtherMultipleDerived.createObject("OtherMultipleDerived");
+ obj = OtherMultipleDerived.createObject("OtherMultipleDerived")
self.assertEqual(type(obj), Base1)
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken6/tests/otherbinding/typesystem_other.xml b/sources/shiboken6/tests/otherbinding/typesystem_other.xml
index 4081548fc..ade1c8bad 100644
--- a/sources/shiboken6/tests/otherbinding/typesystem_other.xml
+++ b/sources/shiboken6/tests/otherbinding/typesystem_other.xml
@@ -17,8 +17,4 @@
<typedef-type name="ValueWithUnitIntInch" source="ValueWithUnit&lt;int,LengthUnit::Inch&gt;"/>
<typedef-type name="ValueWithUnitIntMillimeter" source="ValueWithUnit&lt;int,LengthUnit::Millimeter&gt;"/>
<value-type name="OtherValueWithUnitUser"/>
-
- <suppress-warning text="signature 'operator!=(ByteArray,const char*)' for function modification in 'ByteArray' not found." />
- <suppress-warning text="signature 'operator+(ByteArray,const char*)' for function modification in 'ByteArray' not found." />
- <suppress-warning text="signature 'operator==(ByteArray,const char*)' for function modification in 'ByteArray' not found." />
</typesystem>
diff --git a/sources/shiboken6/tests/otherbinding/usersprimitivefromothermodule_test.py b/sources/shiboken6/tests/otherbinding/usersprimitivefromothermodule_test.py
index ec9e81080..15a988326 100644
--- a/sources/shiboken6/tests/otherbinding/usersprimitivefromothermodule_test.py
+++ b/sources/shiboken6/tests/otherbinding/usersprimitivefromothermodule_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Tests user defined primitive type from a required module.'''
@@ -41,6 +14,7 @@ from shiboken_paths import init_paths
init_paths()
from other import Number
+
class UserDefinedPrimitiveTypeFromRequiredModuleTest(unittest.TestCase):
def testUsersPrimitiveFromRequiredModuleAsArgument(self):
@@ -55,5 +29,6 @@ class UserDefinedPrimitiveTypeFromRequiredModuleTest(unittest.TestCase):
cpx = number.toComplex()
self.assertEqual(number.value(), int(cpx.real))
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken6/tests/otherbinding/wrongctor_test.py b/sources/shiboken6/tests/otherbinding/wrongctor_test.py
index 1813671d7..b9251b428 100644
--- a/sources/shiboken6/tests/otherbinding/wrongctor_test.py
+++ b/sources/shiboken6/tests/otherbinding/wrongctor_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -37,17 +10,19 @@ from pathlib import Path
sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from shiboken_paths import init_paths
init_paths()
-from sample import *
-from other import *
+from sample import Abstract, ObjectType
+from other import OtherDerived
+
class Foo(OtherDerived):
def __init__(self):
- Abstract.__init__(self, 2) # this should raise an exception
+ Abstract.__init__(self, 2) # this should raise an exception
+
class Foo2(ObjectType, OtherDerived):
def __init__(self):
ObjectType.__init__(self)
- Abstract.__init__(self, 2) # this should raise an exception
+ Abstract.__init__(self, 2) # this should raise an exception
class WrongCtorTest(unittest.TestCase):
diff --git a/sources/shiboken6/tests/qtxmltosphinx/CMakeLists.txt b/sources/shiboken6/tests/qtxmltosphinx/CMakeLists.txt
new file mode 100644
index 000000000..11b22f038
--- /dev/null
+++ b/sources/shiboken6/tests/qtxmltosphinx/CMakeLists.txt
@@ -0,0 +1,32 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+cmake_minimum_required(VERSION 3.18)
+
+# Standalone-buildable
+
+project(qtxmltosphinx)
+
+set(CMAKE_AUTOMOC ON)
+
+find_package(Qt6 COMPONENTS Core)
+
+set(generator_src_dir ${CMAKE_CURRENT_SOURCE_DIR}/../../generator)
+set(api_extractor_src_dir ${CMAKE_CURRENT_SOURCE_DIR}/../../ApiExtractor)
+
+set(qtxmltosphinx_SRC
+ ${generator_src_dir}/qtdoc/qtxmltosphinx.cpp
+ ${api_extractor_src_dir}/codesniphelpers.cpp
+ ${api_extractor_src_dir}/textstream.cpp
+ main.cpp)
+
+add_executable(qtxmltosphinx ${qtxmltosphinx_SRC})
+
+target_include_directories(qtxmltosphinx PRIVATE
+ ${CMAKE_CURRENT_BINARY_DIR}
+ ${api_extractor_src_dir}
+ ${generator_src_dir}
+ ${generator_src_dir}/shiboken
+ ${generator_src_dir}/qtdoc)
+
+target_link_libraries(qtxmltosphinx PRIVATE Qt::Core)
diff --git a/sources/shiboken6/tests/qtxmltosphinx/main.cpp b/sources/shiboken6/tests/qtxmltosphinx/main.cpp
new file mode 100644
index 000000000..27aaee7d1
--- /dev/null
+++ b/sources/shiboken6/tests/qtxmltosphinx/main.cpp
@@ -0,0 +1,107 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#include "qtxmltosphinxinterface.h"
+#include "qtxmltosphinx.h"
+
+#include <QtCore/QCommandLineParser>
+#include <QtCore/QCoreApplication>
+#include <QtCore/QDebug>
+#include <QtCore/QFile>
+#include <QtCore/QLoggingCategory>
+
+#include <exception>
+#include <iostream>
+
+using namespace Qt::StringLiterals;
+
+static const char help[] = R"(QtXmlToSphinx WebXML to rst converter
+
+A manual test for converting WebXML files to rst files for checking
+formatting.
+)";
+
+Q_LOGGING_CATEGORY(lcQtXmlToSphinx, "qt.xmltosphinx");
+
+static std::ostream &operator<<(std::ostream &str, const QString &s)
+{
+ str << s.toUtf8().constData();
+ return str;
+}
+
+class QtXmlToSphinxDocGenerator : public QtXmlToSphinxDocGeneratorInterface
+{
+public:
+ QtXmlToSphinxDocGenerator() = default;
+
+ QString expandFunction(const QString &) const override;
+ QString expandClass(const QString &, const QString &) const override;
+ QString resolveContextForMethod(const QString &,
+ const QString &) const override;
+ const QLoggingCategory &loggingCategory() const override;
+ QtXmlToSphinxLink resolveLink(const QtXmlToSphinxLink &link) const override;
+};
+
+// QtXmlToSphinxDocGeneratorInterface
+QString QtXmlToSphinxDocGenerator::expandFunction(const QString &) const
+{
+ return {};
+}
+
+QString QtXmlToSphinxDocGenerator::expandClass(const QString &, const QString &) const
+{
+ return {};
+}
+
+QString QtXmlToSphinxDocGenerator::resolveContextForMethod(const QString &, const QString &) const
+{
+ return {};
+}
+
+const QLoggingCategory &QtXmlToSphinxDocGenerator::loggingCategory() const
+{
+ return lcQtXmlToSphinx();
+}
+
+QtXmlToSphinxLink QtXmlToSphinxDocGenerator::resolveLink(const QtXmlToSphinxLink &link) const
+{
+ return link;
+}
+
+static bool run(const QString &fileName)
+{
+ QtXmlToSphinxDocGenerator generator;
+ QtXmlToSphinxParameters parameters;
+
+ QFile file(fileName);
+ if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
+ std::cerr << "Cannot open " << fileName << ": " << file.errorString() << '\n';
+ return false;
+ }
+ const QString xml = QString::fromUtf8(file.readAll());
+ file.close();
+ std::cout << QtXmlToSphinx(&generator, parameters, xml).result();
+ return true;
+}
+
+int main(int argc, char *argv[])
+{
+ QCoreApplication app(argc, argv);
+
+ QCommandLineParser commandLineParser;
+ commandLineParser.setApplicationDescription(QString::fromLatin1(help));
+ commandLineParser.addHelpOption();
+ commandLineParser.addPositionalArgument(u"[file]"_s, u"WebXML file to process."_s);
+ commandLineParser.process(QCoreApplication::arguments());
+ if (commandLineParser.positionalArguments().isEmpty())
+ commandLineParser.showHelp(0); // quits
+
+ int exitCode = 1;
+ try {
+ if (run(commandLineParser.positionalArguments().constFirst()))
+ exitCode = 0;
+ } catch (const std::exception &e) {
+ std::cerr << "An exception occurred: " << e.what() << '\n';
+ }
+ return exitCode;
+}
diff --git a/sources/shiboken6/tests/qtxmltosphinxtest/CMakeLists.txt b/sources/shiboken6/tests/qtxmltosphinxtest/CMakeLists.txt
index 940a171b5..25074e716 100644
--- a/sources/shiboken6/tests/qtxmltosphinxtest/CMakeLists.txt
+++ b/sources/shiboken6/tests/qtxmltosphinxtest/CMakeLists.txt
@@ -1,4 +1,7 @@
-cmake_minimum_required(VERSION 3.16)
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+cmake_minimum_required(VERSION 3.18)
project(qtxmltosphinxtest)
diff --git a/sources/shiboken6/tests/qtxmltosphinxtest/qtxmltosphinxtest.cpp b/sources/shiboken6/tests/qtxmltosphinxtest/qtxmltosphinxtest.cpp
index ea60d36b5..45cecd1a1 100644
--- a/sources/shiboken6/tests/qtxmltosphinxtest/qtxmltosphinxtest.cpp
+++ b/sources/shiboken6/tests/qtxmltosphinxtest/qtxmltosphinxtest.cpp
@@ -1,38 +1,16 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "qtxmltosphinxtest.h"
#include "qtxmltosphinx.h"
#include <QtTest/QTest>
+#include <QtCore/QBuffer>
#include <QtCore/QDebug>
#include <QtCore/QLoggingCategory>
+using namespace Qt::StringLiterals;
+
Q_LOGGING_CATEGORY(lcQtXmlToSphinxTest, "qt.sphinxtabletest");
// QtXmlToSphinxDocGeneratorInterface
@@ -74,285 +52,322 @@ void QtXmlToSphinxTest::testTable_data()
QTest::newRow("emptyString") << QString() << QString();
// testSimpleTable
- const char *xml = "\
-<table>\
- <header>\
- <item>\
- <para>Header 1</para>\
- </item>\
- <item>\
- <para>Header 2</para>\
- </item>\
- </header>\
- <row>\
- <item>\
- <para>1 1</para>\
- </item>\
- <item>\
- <para>1 2</para>\
- </item>\
- </row>\
- <row>\
- <item>\
- <para>2 1</para>\
- </item>\
- <item>\
- <para>2 2</para>\
- </item>\
- </row>\
-</table>";
-
- const char *expected = "\n\
- +--------+--------+\n\
- |Header 1|Header 2|\n\
- +--------+--------+\n\
- |1 1 |1 2 |\n\
- +--------+--------+\n\
- |2 1 |2 2 |\n\
- +--------+--------+\n\
-\n";
+ const char *xml = R"(<table>
+ <header>
+ <item>
+ <para>Header 1</para>
+ </item>
+ <item>
+ <para>Header 2</para>
+ </item>
+ </header>
+ <row>
+ <item>
+ <para>1 1</para>
+ </item>
+ <item>
+ <para>1 2</para>
+ </item>
+ </row>
+ <row>
+ <item>
+ <para>2 1</para>
+ </item>
+ <item>
+ <para>2 2</para>
+ </item>
+ </row>
+</table>)";
+
+ const char *expected = R"(
+ +--------+--------+
+ |Header 1|Header 2|
+ +========+========+
+ |1 1 |1 2 |
+ +--------+--------+
+ |2 1 |2 2 |
+ +--------+--------+
+
+)";
QTest::newRow("testSimpleTable")
<< QString::fromLatin1(xml) << QString::fromLatin1(expected);
// testRowSpan
- xml = "\
-<table>\
- <header>\
- <item>\
- <para>Header 1</para>\
- </item>\
- <item>\
- <para>Header 2</para>\
- </item>\
- </header>\
- <row>\
- <item colspan=\"2\">\
- <para>I'm a big text!</para>\
- </item>\
- </row>\
- <row>\
- <item>\
- <para>2 1</para>\
- </item>\
- <item>\
- <para>2 2</para>\
- </item>\
- </row>\
-</table>";
-
- expected = "\n\
- +---------------+--------+\n\
- |Header 1 |Header 2|\n\
- +---------------+--------+\n\
- |I'm a big text! |\n\
- +---------------+--------+\n\
- |2 1 |2 2 |\n\
- +---------------+--------+\n\
-\n";
+ xml = R"(<table>
+ <header>
+ <item>
+ <para>Header 1</para>
+ </item>
+ <item>
+ <para>Header 2</para>
+ </item>
+ </header>
+ <row>
+ <item colspan="2">
+ <para>I'm a big text!</para>
+ </item>
+ </row>
+ <row>
+ <item>
+ <para>2 1</para>
+ </item>
+ <item>
+ <para>2 2</para>
+ </item>
+ </row>
+</table>)";
+
+ expected = R"(
+ +---------------+--------+
+ |Header 1 |Header 2|
+ +===============+========+
+ |I'm a big text! |
+ +---------------+--------+
+ |2 1 |2 2 |
+ +---------------+--------+
+
+)";
QTest::newRow("testColSpan")
<< QString::fromLatin1(xml) << QString::fromLatin1(expected);
// testRowSpan
- xml = "\
-<table>\
- <header>\
- <item>\
- <para>Header 1</para>\
- </item>\
- <item>\
- <para>Header 2</para>\
- </item>\
- </header>\
- <row>\
- <item rowspan=\"2\">\
- <para>1.1</para>\
- </item>\
- <item>\
- <para>1.2</para>\
- </item>\
- </row>\
- <row>\
- <item>\
- <para>2 2</para>\
- </item>\
- </row>\
-</table>";
-
- expected = "\n\
- +--------+--------+\n\
- |Header 1|Header 2|\n\
- +--------+--------+\n\
- |1.1 |1.2 |\n\
- + +--------+\n\
- | |2 2 |\n\
- +--------+--------+\n\
-\n";
+ xml = R"(<table>
+ <header>
+ <item>
+ <para>Header 1</para>
+ </item>
+ <item>
+ <para>Header 2</para>
+ </item>
+ </header>
+ <row>
+ <item rowspan="2">
+ <para>1.1</para>
+ </item>
+ <item>
+ <para>1.2</para>
+ </item>
+ </row>
+ <row>
+ <item>
+ <para>2 2</para>
+ </item>
+ </row>
+</table>)";
+
+ expected = R"(
+ +--------+--------+
+ |Header 1|Header 2|
+ +========+========+
+ |1.1 |1.2 |
+ + +--------+
+ | |2 2 |
+ +--------+--------+
+
+)";
QTest::newRow("testRowSpan")
<< QString::fromLatin1(xml) << QString::fromLatin1(expected);
// testComplexTable
- xml = "\
-<table>\
- <header>\
- <item>\
- <para>Header 1</para>\
- </item>\
- <item>\
- <para>Header 2</para>\
- </item>\
- <item>\
- <para>Header 3</para>\
- </item>\
- </header>\
- <row>\
- <item rowspan=\"2\">\
- <para>1.1</para>\
- </item>\
- <item colspan=\"2\">\
- <para>1.2</para>\
- </item>\
- </row>\
- <row>\
- <item>\
- <para>2 2</para>\
- </item>\
- <item>\
- <para>2 3</para>\
- </item>\
- </row>\
-</table>";
-
- expected = "\n\
- +--------+--------+--------+\n\
- |Header 1|Header 2|Header 3|\n\
- +--------+--------+--------+\n\
- |1.1 |1.2 |\n\
- + +--------+--------+\n\
- | |2 2 |2 3 |\n\
- +--------+--------+--------+\n\
-\n";
+ xml = R"(<table>
+ <header>
+ <item>
+ <para>Header 1</para>
+ </item>
+ <item>
+ <para>Header 2</para>
+ </item>
+ <item>
+ <para>Header 3</para>
+ </item>
+ </header>
+ <row>
+ <item rowspan="2">
+ <para>1.1</para>
+ </item>
+ <item colspan="2">
+ <para>1.2</para>
+ </item>
+ </row>
+ <row>
+ <item>
+ <para>2 2</para>
+ </item>
+ <item>
+ <para>2 3</para>
+ </item>
+ </row>
+</table>)";
+
+ expected = R"(
+ +--------+--------+--------+
+ |Header 1|Header 2|Header 3|
+ +========+========+========+
+ |1.1 |1.2 |
+ + +--------+--------+
+ | |2 2 |2 3 |
+ +--------+--------+--------+
+
+)";
QTest::newRow("testComplexTable")
<< QString::fromLatin1(xml) << QString::fromLatin1(expected);
// testRowSpan2
- xml = "\
-<table>\
- <header>\
- <item><para>h1</para></item>\
- <item><para>h2</para></item>\
- <item><para>h3</para></item>\
- <item><para>h4</para></item>\
- </header>\
- <row>\
- <item rowspan=\"6\"><para>A</para></item>\
- <item rowspan=\"6\"><para>B</para></item>\
- <item><para>C</para></item>\
- <item><para>D</para></item>\
- </row>\
- <row>\
- <item><para>E</para></item>\
- <item><para>F</para></item>\
- </row>\
- <row>\
- <item><para>E</para></item>\
- <item><para>F</para></item>\
- </row>\
- <row>\
- <item><para>E</para></item>\
- <item><para>F</para></item>\
- </row>\
- <row>\
- <item><para>E</para></item>\
- <item><para>F</para></item>\
- </row>\
- <row>\
- <item><para>E</para></item>\
- <item><para>F</para></item>\
- </row>\
-</table>";
-
- expected = "\n\
- +--+--+--+--+\n\
- |h1|h2|h3|h4|\n\
- +--+--+--+--+\n\
- |A |B |C |D |\n\
- + + +--+--+\n\
- | | |E |F |\n\
- + + +--+--+\n\
- | | |E |F |\n\
- + + +--+--+\n\
- | | |E |F |\n\
- + + +--+--+\n\
- | | |E |F |\n\
- + + +--+--+\n\
- | | |E |F |\n\
- +--+--+--+--+\n\
-\n";
+ xml = R"(<table>
+ <header>
+ <item><para>h1</para></item>
+ <item><para>h2</para></item>
+ <item><para>h3</para></item>
+ <item><para>h4</para></item>
+ </header>
+ <row>
+ <item rowspan="6"><para>A</para></item>
+ <item rowspan="6"><para>B</para></item>
+ <item><para>C</para></item>
+ <item><para>D</para></item>
+ </row>
+ <row>
+ <item><para>E</para></item>
+ <item><para>F</para></item>
+ </row>
+ <row>
+ <item><para>E</para></item>
+ <item><para>F</para></item>
+ </row>
+ <row>
+ <item><para>E</para></item>
+ <item><para>F</para></item>
+ </row>
+ <row>
+ <item><para>E</para></item>
+ <item><para>F</para></item>
+ </row>
+ <row>
+ <item><para>E</para></item>
+ <item><para>F</para></item>
+ </row>
+</table>)";
+
+ expected = R"(
+ +--+--+--+--+
+ |h1|h2|h3|h4|
+ +==+==+==+==+
+ |A |B |C |D |
+ + + +--+--+
+ | | |E |F |
+ + + +--+--+
+ | | |E |F |
+ + + +--+--+
+ | | |E |F |
+ + + +--+--+
+ | | |E |F |
+ + + +--+--+
+ | | |E |F |
+ +--+--+--+--+
+
+)";
QTest::newRow("testRowSpan2")
<< QString::fromLatin1(xml) << QString::fromLatin1(expected);
+ // testNestedList
+ xml = R"(<table>
+ <row>
+ <item>
+ <list type="bullet">
+ <item>
+ <para>I11</para>
+ </item>
+ <item>
+ <para>I21</para>
+ </item>
+ </list>
+ </item>
+ <item>
+ <list type="bullet">
+ <item>
+ <para>I12</para>
+ </item>
+ <item>
+ <para>I22</para>
+ </item>
+ </list>
+ </item>
+ </row>
+</table>)";
+
+ expected = R"(
+ +---------+---------+
+ | * I11| * I12|
+ | * I21| * I22|
+ +---------+---------+
+
+)";
+
+ QTest::newRow("testNestedList")
+ << QString::fromLatin1(xml) << QString::fromLatin1(expected);
+
// testBrokenTable
- xml = "\
-<table>\
- <header>\
- <item>\
- <para>Header 1</para>\
- </item>\
- <item>\
- <para>Header 2</para>\
- </item>\
- </header>\
- <row>\
- <item>\
- <para>1.1</para>\
- </item>\
- <item>\
- <para>1.2</para>\
- </item>\
- </row>\
- <row>\
- <item colspan=\"2\">\
- <para>2 2</para>\
- </item>\
- <item>\
- <para>2 3</para>\
- </item>\
- <item>\
- <para>2 4</para>\
- </item>\
- <item>\
- <para>2 5</para>\
- </item>\
- </row>\
- <row>\
- <item>\
- <para>3 1</para>\
- </item>\
- <item>\
- <para>3 2</para>\
- </item>\
- <item>\
- <para>3 3</para>\
- </item>\
- </row>\
-</table>";
-
- expected = "\n\
- +--------+------------+\n\
- |Header 1|Header 2 |\n\
- +--------+------------+\n\
- |1.1 |1.2 |\n\
- +--------+------------+\n\
- |2 2 2 3 2 4 2 5|\n\
- +--------+------------+\n\
- |3 1 |3 2 3 3 |\n\
- +--------+------------+\n\
-\n";
+ xml = R"(<table>
+ <header>
+ <item>
+ <para>Header 1</para>
+ </item>
+ <item>
+ <para>Header 2</para>
+ </item>
+ </header>
+ <row>
+ <item>
+ <para>1.1</para>
+ </item>
+ <item>
+ <para>1.2</para>
+ </item>
+ </row>
+ <row>
+ <item colspan="2">
+ <para>2 2</para>
+ </item>
+ <item>
+ <para>2 3</para>
+ </item>
+ <item>
+ <para>2 4</para>
+ </item>
+ <item>
+ <para>2 5</para>
+ </item>
+ </row>
+ <row>
+ <item>
+ <para>3 1</para>
+ </item>
+ <item>
+ <para>3 2</para>
+ </item>
+ <item>
+ <para>3 3</para>
+ </item>
+ </row>
+</table>)";
+
+ expected = R"(
+ +--------+------------+
+ |Header 1|Header 2 |
+ +========+============+
+ |1.1 |1.2 |
+ +--------+------------+
+ |2 2 2 3 2 4 2 5|
+ +--------+------------+
+ |3 1 |3 2 3 3 |
+ +--------+------------+
+
+)";
QTest::newRow("testBrokenTable")
<< QString::fromLatin1(xml) << QString::fromLatin1(expected);
@@ -369,26 +384,20 @@ void QtXmlToSphinxTest::testTable()
QCOMPARE(actual, expected);
}
-using TablePtr = QSharedPointer<QtXmlToSphinx::Table>;
+using TablePtr = std::shared_ptr<QtXmlToSphinx::Table>;
Q_DECLARE_METATYPE(TablePtr);
void QtXmlToSphinxTest::testTableFormatting_data()
{
- using TableRow = QtXmlToSphinx::TableRow;
using TableCell = QtXmlToSphinx::TableCell;
QTest::addColumn<TablePtr>("table");
QTest::addColumn<QString>("expected");
TablePtr table(new QtXmlToSphinx::Table);
- TableRow row;
- row << TableCell("item11") << TableCell("item12");
- table->appendRow(row);
- row.clear();
- row << TableCell("") << TableCell("item22");
- table->appendRow(row);
- row.clear();
+ table->appendRow({TableCell("item11"), TableCell("item12")});
+ table->appendRow({TableCell(""), TableCell("item22")});
table->normalize();
const char *expected = R"(+------+------+
@@ -402,12 +411,8 @@ void QtXmlToSphinxTest::testTableFormatting_data()
QTest::newRow("normal") << table << QString::fromLatin1(expected);
table.reset(new QtXmlToSphinx::Table);
- row << TableCell("item11") << TableCell("item12\nline2");
- table->appendRow(row);
- row.clear();
- row << TableCell("") << TableCell("item22\nline2\nline3");
- table->appendRow(row);
- row.clear();
+ table->appendRow({TableCell("item11"), TableCell("item12\nline2")});
+ table->appendRow({TableCell(""), TableCell("item22\nline2\nline3")});
table->normalize();
expected = R"(+------+------+
@@ -456,4 +461,51 @@ void QtXmlToSphinxTest::testTableFormattingIoDevice()
QCOMPARE(actual, expected);
}
+void QtXmlToSphinxTest::testSnippetExtraction_data()
+{
+ QTest::addColumn<QByteArray>("file");
+ QTest::addColumn<QLatin1StringView>("id");
+ QTest::addColumn<QString>("expected");
+
+ const char *fileCpp = R"(bla
+// ![snip1]
+snip1_line1
+// ![snip1] // ![snip2]
+snip2_line1
+snip2_line2
+// ![snip2] // ![snip3]
+)";
+
+ constexpr auto id = "snip2"_L1;
+ const QString expected = uR"(snip2_line1
+snip2_line2
+)"_s;
+
+ const char *filePython = R"(bla
+# ![snip1]
+snip1_line1
+# ![snip1] # ![snip2]
+snip2_line1
+snip2_line2
+# ![snip2] # ![snip3]
+)";
+
+ QTest::newRow("c++") << QByteArray(fileCpp) << id << expected;
+ QTest::newRow("Python") << QByteArray(filePython) << id << expected;
+}
+
+void QtXmlToSphinxTest::testSnippetExtraction()
+{
+ QFETCH(QByteArray, file);
+ QFETCH(QLatin1StringView, id);
+ QFETCH(QString, expected);
+
+ QBuffer buffer(&file);
+ QVERIFY(buffer.open(QIODevice::ReadOnly));
+ QString errorMessage;
+ QString actual = QtXmlToSphinx::readSnippet(buffer, id, &errorMessage);
+ QVERIFY2(errorMessage.isEmpty(), qPrintable(errorMessage));
+ QCOMPARE(actual, expected);
+}
+
QTEST_APPLESS_MAIN( QtXmlToSphinxTest)
diff --git a/sources/shiboken6/tests/qtxmltosphinxtest/qtxmltosphinxtest.h b/sources/shiboken6/tests/qtxmltosphinxtest/qtxmltosphinxtest.h
index 8f74baaf5..0a210b7a0 100644
--- a/sources/shiboken6/tests/qtxmltosphinxtest/qtxmltosphinxtest.h
+++ b/sources/shiboken6/tests/qtxmltosphinxtest/qtxmltosphinxtest.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef QTXMLTOSPHINXTEST_H
#define QTXMLTOSPHINXTEST_H
@@ -52,6 +27,8 @@ private slots:
void testTableFormatting();
void testTableFormattingIoDevice_data();
void testTableFormattingIoDevice();
+ void testSnippetExtraction_data();
+ void testSnippetExtraction();
private:
QString transformXml(const QString &xml) const;
diff --git a/sources/shiboken6/tests/samplebinding/CMakeLists.txt b/sources/shiboken6/tests/samplebinding/CMakeLists.txt
index 558140279..fc812feb8 100644
--- a/sources/shiboken6/tests/samplebinding/CMakeLists.txt
+++ b/sources/shiboken6/tests/samplebinding/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(sample)
set(sample_TYPESYSTEM
@@ -27,6 +30,7 @@ ${CMAKE_CURRENT_BINARY_DIR}/sample/customoverloadsequence_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/sample/cvlistuser_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/sample/cvvaluetype_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/sample/sbkdate_wrapper.cpp
+${CMAKE_CURRENT_BINARY_DIR}/sample/deleteddefaultctor_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/sample/derived_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/sample/derivedusingct_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/sample/derived_someinnerclass_wrapper.cpp
@@ -106,17 +110,20 @@ ${CMAKE_CURRENT_BINARY_DIR}/sample/sample_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/sample/sample_sample_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/sample/samplenamespace_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/sample/samplenamespace_ctparam_wrapper.cpp
+${CMAKE_CURRENT_BINARY_DIR}/sample/samplenamespace_inlinenamespace_classwithininlinenamespace_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/sample/samplenamespace_someclass_someinnerclass_okthisisrecursiveenough_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/sample/samplenamespace_someclass_someinnerclass_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/sample/samplenamespace_someclass_someotherinnerclass_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/sample/samplenamespace_someclass_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/sample/samplenamespace_derivedfromnamespace_wrapper.cpp
+${CMAKE_CURRENT_BINARY_DIR}/sample/stdcomplex_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/sample/simplefile_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/sample/size_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/sample/sizef_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/sample/snakecasetest_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/sample/snakecasederivedtest_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/sample/sonofmderived1_wrapper.cpp
+${CMAKE_CURRENT_BINARY_DIR}/sample/spaceshipcomparisontester_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/sample/str_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/sample/strlist_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/sample/time_wrapper.cpp
@@ -141,13 +148,19 @@ ${CMAKE_CURRENT_BINARY_DIR}/sample/union_wrapper.cpp
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/sample-binding.txt.in"
"${CMAKE_CURRENT_BINARY_DIR}/sample-binding.txt" @ONLY)
+shiboken_get_tool_shell_wrapper(shiboken tool_wrapper)
+
add_custom_command(
-OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/mjb_rejected_classes.log"
-BYPRODUCTS ${sample_SRC}
-COMMAND shiboken6 --project-file=${CMAKE_CURRENT_BINARY_DIR}/sample-binding.txt ${GENERATOR_EXTRA_FLAGS}
-DEPENDS ${sample_TYPESYSTEM} ${CMAKE_CURRENT_SOURCE_DIR}/global.h shiboken6
-WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
-COMMENT "Running generator for 'sample' test binding..."
+ OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/mjb_rejected_classes.log"
+ BYPRODUCTS ${sample_SRC}
+ COMMAND
+ ${tool_wrapper}
+ $<TARGET_FILE:Shiboken6::shiboken6>
+ --project-file=${CMAKE_CURRENT_BINARY_DIR}/sample-binding.txt
+ ${GENERATOR_EXTRA_FLAGS}
+ DEPENDS ${sample_TYPESYSTEM} ${CMAKE_CURRENT_SOURCE_DIR}/global.h Shiboken6::shiboken6
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ COMMENT "Running generator for 'sample' test binding..."
)
add_library(sample MODULE ${sample_SRC})
diff --git a/sources/shiboken6/tests/samplebinding/__del___test.py b/sources/shiboken6/tests/samplebinding/__del___test.py
index 146e6e409..456886614 100644
--- a/sources/shiboken6/tests/samplebinding/__del___test.py
+++ b/sources/shiboken6/tests/samplebinding/__del___test.py
@@ -1,34 +1,8 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+import gc
import os
import sys
import unittest
@@ -42,17 +16,21 @@ import sample
delCalled = False
+
class MyObject(sample.ObjectType):
def __del__(self):
global delCalled
delCalled = True
+
class TestDel(unittest.TestCase):
def testIt(self):
a = MyObject()
del a
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertTrue(delCalled)
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/abstract_test.py b/sources/shiboken6/tests/samplebinding/abstract_test.py
index 7fa0a0012..89e87be1d 100644
--- a/sources/shiboken6/tests/samplebinding/abstract_test.py
+++ b/sources/shiboken6/tests/samplebinding/abstract_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for Abstract class'''
@@ -42,10 +15,12 @@ init_paths()
from sample import Abstract
+
class Incomplete(Abstract):
def __init__(self):
Abstract.__init__(self)
+
class Concrete(Abstract):
def __init__(self):
Abstract.__init__(self)
@@ -87,12 +62,7 @@ class AbstractTest(unittest.TestCase):
# Python and calling it from C++ is undefined until it's decided how to
# cast the Python data types to void pointers
c = Concrete()
- self.assertEqual(c.pureVirtualReturningVoidPtr(),42)
-
- def testReimplementedVirtualMethodCall(self):
- '''Test if instanciation of an abstract class raises the correct exception.'''
- i = Concrete()
- self.assertRaises(NotImplementedError, i.callPureVirtual)
+ self.assertEqual(c.pureVirtualReturningVoidPtr(), 42)
def testReimplementedVirtualMethodCall(self):
'''Test if a Python override of a virtual method is correctly called from C++.'''
@@ -112,6 +82,6 @@ class AbstractTest(unittest.TestCase):
c.callVirtualGettingEnum(Abstract.Short)
self.assertTrue(c.virtual_getting_enum)
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/addedfunction_test.py b/sources/shiboken6/tests/samplebinding/addedfunction_test.py
index 134e73c55..0b5680143 100644
--- a/sources/shiboken6/tests/samplebinding/addedfunction_test.py
+++ b/sources/shiboken6/tests/samplebinding/addedfunction_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for added functions.'''
@@ -41,6 +14,7 @@ from shiboken_paths import init_paths
init_paths()
from sample import SampleNamespace, ObjectType, Point
+
class TestAddedFunctionsWithSimilarTypes(unittest.TestCase):
'''Adds new signatures very similar to already existing ones.'''
@@ -65,5 +39,6 @@ class TestAddedFunctionsWithSimilarTypes(unittest.TestCase):
control = len(obj.objectName())
self.assertEqual(SampleNamespace.passReferenceToObjectType(obj), control)
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken6/tests/samplebinding/addedfunction_with_container_args_test.py b/sources/shiboken6/tests/samplebinding/addedfunction_with_container_args_test.py
index 570d3ddd9..2a739033b 100644
--- a/sources/shiboken6/tests/samplebinding/addedfunction_with_container_args_test.py
+++ b/sources/shiboken6/tests/samplebinding/addedfunction_with_container_args_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for added functions with nested and multi-argument container types.'''
@@ -41,18 +14,20 @@ from shiboken_paths import init_paths
init_paths()
from sample import sum2d, sumproduct
+
class TestAddedFunctionsWithContainerArgs(unittest.TestCase):
'''Tests added functions with nested and multi-argument container types.'''
def testNestedContainerType(self):
'''Test added function with single-argument containers.'''
- values = [[1,2],[3,4,5],[6]]
+ values = [[1, 2], [3, 4, 5], [6]]
self.assertEqual(sum2d(values), 21)
def testMultiArgContainerType(self):
'''Test added function with a two-argument container.'''
- values = [(1,2),(3,4),(5,6)]
+ values = [(1, 2), (3, 4), (5, 6)]
self.assertEqual(sumproduct(values), 44)
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken6/tests/samplebinding/argumentmodifications_test.py b/sources/shiboken6/tests/samplebinding/argumentmodifications_test.py
index 86d0a4731..b0ca56a6d 100644
--- a/sources/shiboken6/tests/samplebinding/argumentmodifications_test.py
+++ b/sources/shiboken6/tests/samplebinding/argumentmodifications_test.py
@@ -1,36 +1,10 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for method arguments modifications performed as described on typesystem.'''
+import gc
import os
import sys
import unittest
@@ -42,6 +16,7 @@ init_paths()
from sample import Modifications, Point
+
class ArgumentModificationsTest(unittest.TestCase):
'''Test cases for method arguments modifications performed as described on typesystem.'''
@@ -50,6 +25,8 @@ class ArgumentModificationsTest(unittest.TestCase):
def tearDown(self):
del self.mods
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
def testArgRemoval0(self):
'''Tests argument removal modifications on Modifications.argRemoval0.'''
@@ -64,7 +41,8 @@ class ArgumentModificationsTest(unittest.TestCase):
def testArgRemoval1(self):
'''Tests argument removal modifications on Modifications.argRemoval1.'''
- # void [-> PyObject*] argRemoval1(int, bool, Point = Point(1, 2) [removed], Point = Point(3, 4) [removed], int = 333)
+ # void [-> PyObject*] argRemoval1(int, bool, Point = Point(1, 2) [removed],
+ # Point = Point(3, 4) [removed], int = 333)
# code-injection: returns tuple with received parameters plus removed ones
a0, a1, a2 = 1, True, 2
self.assertEqual(self.mods.argRemoval1(a0, a1), (a0, a1, Point(1, 2), Point(3, 4), 333))
@@ -75,7 +53,8 @@ class ArgumentModificationsTest(unittest.TestCase):
def testArgRemoval2(self):
'''Tests argument removal modifications on Modifications.argRemoval2.'''
- # void [-> PyObject*] argRemoval2(int, bool, Point = Point(1, 2) [removed], Point = Point(3, 4) [removed], int = 333)
+ # void [-> PyObject*] argRemoval2(int, bool, Point = Point(1, 2)
+ # [removed], Point = Point(3, 4) [removed], int = 333)
# code-injection: returns tuple with received parameters plus removed ones
a0, a1, a2 = 1, True, 2
self.assertEqual(self.mods.argRemoval2(a0, a1), (a0, a1, Point(1, 2), Point(3, 4), 333))
@@ -83,7 +62,8 @@ class ArgumentModificationsTest(unittest.TestCase):
def testArgRemoval3(self):
'''Tests argument removal modifications on Modifications.argRemoval3.'''
- # void [-> PyObject*] argRemoval3(int, Point = Point(1, 2) [removed], bool = true, Point = Point(3, 4) [removed], int = 333)
+ # void [-> PyObject*] argRemoval3(int, Point = Point(1, 2) [removed],
+ # bool = true, Point = Point(3, 4) [removed], int = 333)
# code-injection: returns tuple with received parameters plus removed ones
a0, a1, a2 = 1, True, 2
self.assertEqual(self.mods.argRemoval3(a0), (a0, Point(1, 2), True, Point(3, 4), 333))
@@ -92,7 +72,8 @@ class ArgumentModificationsTest(unittest.TestCase):
def testArgRemoval4(self):
'''Tests argument removal modifications on Modifications.argRemoval4.'''
- # void [-> PyObject*] argRemoval4(int, Point [removed, new val = Point(6, 9)], bool, Point = Point(3, 4) [removed], int = 333)
+ # void [-> PyObject*] argRemoval4(int, Point [removed, new val = Point(6, 9)], bool,
+ # Point = Point(3, 4) [removed], int = 333)
# code-injection: returns tuple with received parameters plus removed ones
a0, a1, a2 = 1, True, 2
self.assertRaises(TypeError, self.mods.argRemoval4, a0)
@@ -112,6 +93,6 @@ class ArgumentModificationsTest(unittest.TestCase):
# code-injection: returns tuple with received parameters plus removed ones
self.assertEqual(self.mods.argRemoval5(a0, a1, a2), (200, a0, a1, a2))
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/array_numpy_test.py b/sources/shiboken6/tests/samplebinding/array_numpy_test.py
index c3d438a88..0d73bca1c 100644
--- a/sources/shiboken6/tests/samplebinding/array_numpy_test.py
+++ b/sources/shiboken6/tests/samplebinding/array_numpy_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/env python
-
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test case for NumPy Array types.'''
@@ -48,24 +22,26 @@ try:
except ImportError:
pass
+
class ArrayTester(unittest.TestCase):
'''Test case for NumPy arrays.'''
def testIntArray(self):
- intList = numpy.array([1, 2, 3, 4], dtype = 'int32')
+ intList = numpy.array([1, 2, 3, 4], dtype='int32')
self.assertEqual(sample.sumIntArray(intList), 10)
def testDoubleArray(self):
- doubleList = numpy.array([1, 2, 3, 4], dtype = 'double')
+ doubleList = numpy.array([1, 2, 3, 4], dtype='double')
self.assertEqual(sample.sumDoubleArray(doubleList), 10)
def testIntMatrix(self):
- intMatrix = numpy.array([[1, 2, 3], [4, 5, 6]], dtype = 'int32')
+ intMatrix = numpy.array([[1, 2, 3], [4, 5, 6]], dtype='int32')
self.assertEqual(sample.sumIntMatrix(intMatrix), 21)
def testDoubleMatrix(self):
- doubleMatrix = numpy.array([[1, 2, 3], [4, 5, 6]], dtype = 'double')
+ doubleMatrix = numpy.array([[1, 2, 3], [4, 5, 6]], dtype='double')
self.assertEqual(sample.sumDoubleMatrix(doubleMatrix), 21)
+
if __name__ == '__main__' and hasNumPy:
unittest.main()
diff --git a/sources/shiboken6/tests/samplebinding/array_sequence_test.py b/sources/shiboken6/tests/samplebinding/array_sequence_test.py
index e39c2733c..ad65d58db 100644
--- a/sources/shiboken6/tests/samplebinding/array_sequence_test.py
+++ b/sources/shiboken6/tests/samplebinding/array_sequence_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/env python
-
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test case for Array types (PySequence).'''
@@ -40,6 +14,7 @@ from shiboken_paths import init_paths
init_paths()
import sample
+
class ArrayTester(unittest.TestCase):
'''Test case for arrays.'''
@@ -56,5 +31,6 @@ class ArrayTester(unittest.TestCase):
doubleList = [1.2, 2.3, 3.4, 4.5]
self.assertEqual(sample.sumDoubleArray(doubleList), 11.4)
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken6/tests/samplebinding/bug_554_test.py b/sources/shiboken6/tests/samplebinding/bug_554_test.py
index f3950af9c..a7e7a7210 100644
--- a/sources/shiboken6/tests/samplebinding/bug_554_test.py
+++ b/sources/shiboken6/tests/samplebinding/bug_554_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Unit test for bug#554'''
@@ -38,15 +11,15 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from shiboken_paths import init_paths
init_paths()
-from sample import *
+from sample import ObjectType
+
class Bug554:
def crash(self):
class Crasher(ObjectType):
pass
+
if __name__ == '__main__':
bug = Bug554()
bug.crash()
-
-
diff --git a/sources/shiboken6/tests/samplebinding/bug_704_test.py b/sources/shiboken6/tests/samplebinding/bug_704_test.py
index 365941b46..c470fe723 100644
--- a/sources/shiboken6/tests/samplebinding/bug_704_test.py
+++ b/sources/shiboken6/tests/samplebinding/bug_704_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -52,13 +25,12 @@ def defineNewStyle():
class ObjectTypeTest(unittest.TestCase):
- '''Test cases to avoid declaring Shiboken classes with multiple inheritance from old style classes.'''
+ '''Test cases to avoid declaring Shiboken classes with multiple inheritance
+ from old style classes.'''
def testObjectTypeNewStype(self):
defineNewStyle()
-
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/bytearray_test.py b/sources/shiboken6/tests/samplebinding/bytearray_test.py
index bcf61a2d5..e51a899fa 100644
--- a/sources/shiboken6/tests/samplebinding/bytearray_test.py
+++ b/sources/shiboken6/tests/samplebinding/bytearray_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -61,7 +34,7 @@ class ByteArrayConcatenationOperatorTest(unittest.TestCase):
def testConcatPythonStringAndByteArray(self):
# Test concatenation of a Python string with a ByteArray, in this order.
- concat_python_string_add_qbytearray_worked = True
+ concat_python_string_add_qbytearray_worked = True # noqa: F841
ba = ByteArray('foo')
result = 'bar\x00' + ba
self.assertEqual(type(result), ByteArray)
@@ -107,14 +80,14 @@ class ByteArrayOperatorAt(unittest.TestCase):
# ByteArray[x] where x is a valid index (reverse order).
string = 'abcdefgh'
obj = ByteArray(string)
- for i in range(len(string)-1, 0, -1):
+ for i in range(len(string) - 1, 0, -1):
self.assertEqual(obj[i], bytes(string[i], "UTF8"))
def testOutOfRange(self):
# ByteArray[x] where x is out of index.
string = '1234567'
obj = ByteArray(string)
- self.assertRaises(IndexError, lambda :obj[len(string)])
+ self.assertRaises(IndexError, lambda: obj[len(string)])
def testNullStrings(self):
ba = ByteArray('\x00')
diff --git a/sources/shiboken6/tests/samplebinding/child_return_test.py b/sources/shiboken6/tests/samplebinding/child_return_test.py
index 4b9a18e7b..f0ac70626 100644
--- a/sources/shiboken6/tests/samplebinding/child_return_test.py
+++ b/sources/shiboken6/tests/samplebinding/child_return_test.py
@@ -1,36 +1,10 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''The BlackBox class has cases of ownership transference between C++ and Python.'''
+import gc
import os
import sys
import unittest
@@ -40,7 +14,8 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from shiboken_paths import init_paths
init_paths()
-from sample import *
+from sample import ObjectType
+
class ReturnOfChildTest(unittest.TestCase):
'''The BlackBox class has cases of ownership transference between C++ and Python.'''
@@ -50,6 +25,8 @@ class ReturnOfChildTest(unittest.TestCase):
o1 = ObjectType.createWithChild()
child = o1.children()[0]
del o1
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertRaises(RuntimeError, child.objectName)
def testKillParentKeepingChild2(self):
@@ -57,8 +34,10 @@ class ReturnOfChildTest(unittest.TestCase):
o1 = ObjectType.createWithChild()
child = o1.findChild("child")
del o1
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertRaises(RuntimeError, child.objectName)
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/class_fields_test.py b/sources/shiboken6/tests/samplebinding/class_fields_test.py
index 44d32ce39..1eeb3d446 100644
--- a/sources/shiboken6/tests/samplebinding/class_fields_test.py
+++ b/sources/shiboken6/tests/samplebinding/class_fields_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Simple test case for accessing the exposed C++ class fields.'''
@@ -42,6 +15,7 @@ init_paths()
from sample import Derived, Point, ObjectType
+
class TestAccessingCppFields(unittest.TestCase):
'''Simple test case for accessing the exposed C++ class fields.'''
@@ -63,7 +37,7 @@ class TestAccessingCppFields(unittest.TestCase):
self.assertEqual(d.primitiveField, int(value))
# attribution with invalid type
- self.assertRaises(TypeError, lambda : setattr(d, 'primitiveField', None))
+ self.assertRaises(TypeError, lambda: setattr(d, 'primitiveField', None))
def testAccessingRenamedFields(self):
'''Reads and writes a renamed field.'''
@@ -99,7 +73,7 @@ class TestAccessingCppFields(unittest.TestCase):
self.assertNotEqual(d.userPrimitiveField, old_value)
# attribution with invalid type
- self.assertRaises(TypeError, lambda : setattr(d, 'userPrimitiveField', None))
+ self.assertRaises(TypeError, lambda: setattr(d, 'userPrimitiveField', None))
def testAccessingValueTypeField(self):
'''Reads and writes a value type (in this case a 'Point') field.'''
@@ -107,7 +81,7 @@ class TestAccessingCppFields(unittest.TestCase):
self.assertEqual(type(d.valueTypeField), Point)
# attribution
- old_value = d.valueTypeField
+ old_value = d.valueTypeField # noqa: F841
new_value = Point(-10, 537)
d.valueTypeField = new_value
self.assertEqual(d.valueTypeField, new_value)
@@ -119,7 +93,7 @@ class TestAccessingCppFields(unittest.TestCase):
self.assertEqual(d.valueTypeField.y(), 20)
# attribution with invalid type
- self.assertRaises(TypeError, lambda : setattr(d, 'valueTypeField', 123))
+ self.assertRaises(TypeError, lambda: setattr(d, 'valueTypeField', 123))
def testAccessingObjectTypeField(self):
'''Reads and writes a object type (in this case an 'ObjectType') field.'''
@@ -138,7 +112,7 @@ class TestAccessingCppFields(unittest.TestCase):
self.assertEqual(d.objectTypeField, value)
# attribution with invalid type
- self.assertRaises(TypeError, lambda : setattr(d, 'objectTypeField', 123))
+ self.assertRaises(TypeError, lambda: setattr(d, 'objectTypeField', 123))
@unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testRefCountingAccessingObjectTypeField(self):
@@ -182,7 +156,7 @@ class TestAccessingCppFields(unittest.TestCase):
# attribution
old_value = d.bitField
new_value = 1
- d.bitField= new_value
+ d.bitField = new_value
self.assertEqual(d.bitField, new_value)
self.assertNotEqual(d.bitField, old_value)
@@ -192,7 +166,7 @@ class TestAccessingCppFields(unittest.TestCase):
self.assertEqual(d.bitField, int(value))
# attribution with invalid type
- self.assertRaises(TypeError, lambda : setattr(d, 'bitField', None))
+ self.assertRaises(TypeError, lambda: setattr(d, 'bitField', None))
if __name__ == '__main__':
diff --git a/sources/shiboken6/tests/samplebinding/collector_test.py b/sources/shiboken6/tests/samplebinding/collector_test.py
index c68230474..4caebc62a 100644
--- a/sources/shiboken6/tests/samplebinding/collector_test.py
+++ b/sources/shiboken6/tests/samplebinding/collector_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for Collector class' shift operators.'''
@@ -60,6 +33,7 @@ class CollectorTest(unittest.TestCase):
self.assertEqual(collector.size(), 5)
self.assertEqual(collector.items(), [2, 3, 5, 7, 11])
+
class CollectorExternalOperator(unittest.TestCase):
'''Test cases for external operators of Collector'''
@@ -84,4 +58,3 @@ class CollectorObjectType(unittest.TestCase):
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/complex_test.py b/sources/shiboken6/tests/samplebinding/complex_test.py
index 272eee357..454aff100 100644
--- a/sources/shiboken6/tests/samplebinding/complex_test.py
+++ b/sources/shiboken6/tests/samplebinding/complex_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for Complex class'''
@@ -43,6 +16,7 @@ init_paths()
import sample
from sample import Point
+
class ComplexTest(unittest.TestCase):
'''Test case for conversions between C++ Complex class to Python complex class'''
@@ -74,11 +48,14 @@ class ComplexTest(unittest.TestCase):
def testUsingTuples(self):
cpx1, cpx2 = (1.2, 3.4), (5.6, 7.8)
- self.assertEqual(sample.sumComplexPair((cpx1, cpx2)), sample.sumComplexPair((complex(*cpx1), complex(*cpx2))))
+ self.assertEqual(sample.sumComplexPair((cpx1, cpx2)),
+ sample.sumComplexPair((complex(*cpx1), complex(*cpx2))))
cpx1, cpx2 = (1, 3), (5, 7)
- self.assertEqual(sample.sumComplexPair((cpx1, cpx2)), sample.sumComplexPair((complex(*cpx1), complex(*cpx2))))
+ self.assertEqual(sample.sumComplexPair((cpx1, cpx2)),
+ sample.sumComplexPair((complex(*cpx1), complex(*cpx2))))
cpx1, cpx2 = (1.2, 3), (5.6, 7)
- self.assertEqual(sample.sumComplexPair((cpx1, cpx2)), sample.sumComplexPair((complex(*cpx1), complex(*cpx2))))
+ self.assertEqual(sample.sumComplexPair((cpx1, cpx2)),
+ sample.sumComplexPair((complex(*cpx1), complex(*cpx2))))
cpx1, cpx2 = (1, 2, 3), (4, 5, 7)
self.assertRaises(TypeError, sample.sumComplexPair, (cpx1, cpx2))
cpx1, cpx2 = ('1', '2'), ('4', '5')
@@ -87,4 +64,3 @@ class ComplexTest(unittest.TestCase):
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/conversion_operator_test.py b/sources/shiboken6/tests/samplebinding/conversion_operator_test.py
index eb802f43b..7e76245b1 100644
--- a/sources/shiboken6/tests/samplebinding/conversion_operator_test.py
+++ b/sources/shiboken6/tests/samplebinding/conversion_operator_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for implicit conversion generated by conversion operator.'''
@@ -42,11 +15,13 @@ init_paths()
from sample import Time, StrList
+
class ConversionOperatorTest(unittest.TestCase):
'''Test cases for implicit conversion generated by conversion operator.'''
def testConversionOperator(self):
- '''Time defined an conversion operator for Str, so passing a Time object to a method expecting a Str should work.'''
+ '''Time defined an conversion operator for Str, so passing a Time object
+ to a method expecting a Str should work.'''
t = Time(1, 2, 3)
t_str = t.toString()
sl = StrList()
@@ -57,6 +32,6 @@ class ConversionOperatorTest(unittest.TestCase):
self.assertEqual(len(sl), 1)
self.assertEqual(sl[0], t_str)
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/copy_test.py b/sources/shiboken6/tests/samplebinding/copy_test.py
index 63d9163ba..db539d1b9 100644
--- a/sources/shiboken6/tests/samplebinding/copy_test.py
+++ b/sources/shiboken6/tests/samplebinding/copy_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for deep copy of objects'''
@@ -90,4 +63,3 @@ class PicklingTest(unittest.TestCase):
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/ctorconvrule_test.py b/sources/shiboken6/tests/samplebinding/ctorconvrule_test.py
index be8e11bc4..5e2695d72 100644
--- a/sources/shiboken6/tests/samplebinding/ctorconvrule_test.py
+++ b/sources/shiboken6/tests/samplebinding/ctorconvrule_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for proper generation of constructor altered by conversion-rule tag.'''
@@ -42,6 +15,7 @@ init_paths()
from sample import CtorConvRule
+
class TestCtorConvRule(unittest.TestCase):
'''Simple test case for CtorConvRule'''
@@ -51,6 +25,6 @@ class TestCtorConvRule(unittest.TestCase):
obj = CtorConvRule(value)
self.assertEqual(obj.value(), value + 1)
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/cyclic_test.py b/sources/shiboken6/tests/samplebinding/cyclic_test.py
index 5a20216b6..4e4ae2603 100644
--- a/sources/shiboken6/tests/samplebinding/cyclic_test.py
+++ b/sources/shiboken6/tests/samplebinding/cyclic_test.py
@@ -1,34 +1,8 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+import gc
import os
import sys
import unittest
@@ -42,7 +16,6 @@ from sample import ObjectView
from sample import ObjectModel
-
class ObjTest(unittest.TestCase):
def test_cyclic_dependency_withParent(self):
@@ -50,8 +23,6 @@ class ObjTest(unittest.TestCase):
only be removed by the garbage collector, and then invoke the
garbage collector in a different thread.
"""
- import gc
-
class CyclicChildObject(ObjectType):
def __init__(self, parent):
super(CyclicChildObject, self).__init__(parent)
@@ -65,7 +36,7 @@ class ObjTest(unittest.TestCase):
# turn off automatic garbage collection, to be able to trigger it
# at the 'right' time
gc.disable()
- alive = lambda :sum(isinstance(o, CyclicObject) for o in gc.get_objects() )
+ alive = lambda: sum(isinstance(o, CyclicObject) for o in gc.get_objects()) # noqa: E731
#
# first proof that the wizard is only destructed by the garbage
@@ -74,7 +45,9 @@ class ObjTest(unittest.TestCase):
cycle = CyclicObject()
self.assertTrue(alive())
del cycle
- self.assertTrue(alive())
+ if not hasattr(sys, "pypy_version_info"):
+ # PYSIDE-535: the semantics of gc.enable/gc.disable is different for PyPy
+ self.assertTrue(alive())
gc.collect()
self.assertFalse(alive())
@@ -83,8 +56,6 @@ class ObjTest(unittest.TestCase):
only be removed by the garbage collector, and then invoke the
garbage collector in a different thread.
"""
- import gc
-
class CyclicChildObject(ObjectView):
def __init__(self, model):
super(CyclicChildObject, self).__init__(None)
@@ -98,7 +69,7 @@ class ObjTest(unittest.TestCase):
# turn off automatic garbage collection, to be able to trigger it
# at the 'right' time
gc.disable()
- alive = lambda :sum(isinstance(o, CyclicObject) for o in gc.get_objects() )
+ alive = lambda: sum(isinstance(o, CyclicObject) for o in gc.get_objects()) # noqa: E731
#
# first proof that the wizard is only destructed by the garbage
@@ -107,10 +78,12 @@ class ObjTest(unittest.TestCase):
cycle = CyclicObject()
self.assertTrue(alive())
del cycle
- self.assertTrue(alive())
+ if not hasattr(sys, "pypy_version_info"):
+ # PYSIDE-535: the semantics of gc.enable/gc.disable is different for PyPy
+ self.assertTrue(alive())
gc.collect()
self.assertFalse(alive())
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/date_test.py b/sources/shiboken6/tests/samplebinding/date_test.py
index ad1419391..2b6efcf18 100644
--- a/sources/shiboken6/tests/samplebinding/date_test.py
+++ b/sources/shiboken6/tests/samplebinding/date_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for python conversions types '''
@@ -43,6 +16,7 @@ from datetime import date
from sample import SbkDate
+
class DateConversionTest(unittest.TestCase):
def testConstructorWithDateObject(self):
@@ -59,6 +33,6 @@ class DateConversionTest(unittest.TestCase):
self.assertTrue(cDate.month(), pyDate.month)
self.assertTrue(cDate.year(), pyDate.year)
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/decisor_test.py b/sources/shiboken6/tests/samplebinding/decisor_test.py
index 128b3c913..0d39c5f96 100644
--- a/sources/shiboken6/tests/samplebinding/decisor_test.py
+++ b/sources/shiboken6/tests/samplebinding/decisor_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for the method overload decisor.'''
@@ -42,6 +15,7 @@ init_paths()
from sample import SampleNamespace, Point, ObjectType, ObjectModel
+
class DecisorTest(unittest.TestCase):
'''Test cases for the method overload decisor.'''
@@ -64,11 +38,15 @@ class DecisorTest(unittest.TestCase):
'''Call methods overloads that receive parent and inheritor classes' instances.'''
objecttype = ObjectType()
objectmodel = ObjectModel()
- self.assertEqual(ObjectModel.receivesObjectTypeFamily(objecttype), ObjectModel.ObjectTypeCalled)
- self.assertNotEqual(ObjectModel.receivesObjectTypeFamily(objecttype), ObjectModel.ObjectModelCalled)
- self.assertEqual(ObjectModel.receivesObjectTypeFamily(objectmodel), ObjectModel.ObjectModelCalled)
- self.assertNotEqual(ObjectModel.receivesObjectTypeFamily(objectmodel), ObjectModel.ObjectTypeCalled)
+ self.assertEqual(ObjectModel.receivesObjectTypeFamily(objecttype),
+ ObjectModel.ObjectTypeCalled)
+ self.assertNotEqual(ObjectModel.receivesObjectTypeFamily(objecttype),
+ ObjectModel.ObjectModelCalled)
+ self.assertEqual(ObjectModel.receivesObjectTypeFamily(objectmodel),
+ ObjectModel.ObjectModelCalled)
+ self.assertNotEqual(ObjectModel.receivesObjectTypeFamily(objectmodel),
+ ObjectModel.ObjectTypeCalled)
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/delete_test.py b/sources/shiboken6/tests/samplebinding/delete_test.py
index 8fb663eb1..57a792ae2 100644
--- a/sources/shiboken6/tests/samplebinding/delete_test.py
+++ b/sources/shiboken6/tests/samplebinding/delete_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -41,15 +14,15 @@ init_paths()
import sample
from shiboken6 import Shiboken
+
class DeleteTest(unittest.TestCase):
def testNonCppWrapperClassDelete(self):
- """Would segfault when shiboken.delete called on obj not created from
- Python """
+ """Would segfault when shiboken.delete called on obj not created from Python."""
obj = sample.ObjectType()
child = obj.createChild(None)
Shiboken.delete(child)
assert not Shiboken.isValid(child)
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/deprecated_test.py b/sources/shiboken6/tests/samplebinding/deprecated_test.py
index 8a1d37cfc..c371df94f 100644
--- a/sources/shiboken6/tests/samplebinding/deprecated_test.py
+++ b/sources/shiboken6/tests/samplebinding/deprecated_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -41,11 +14,13 @@ init_paths()
from sample import ObjectType
+
class TestDeprecatedCall(unittest.TestCase):
def testCallWithError(self):
o = ObjectType()
warnings.simplefilter('error')
self.assertRaises(DeprecationWarning, o.deprecatedFunction)
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken6/tests/samplebinding/derived_test.py b/sources/shiboken6/tests/samplebinding/derived_test.py
index 8bdb051a8..346f29136 100644
--- a/sources/shiboken6/tests/samplebinding/derived_test.py
+++ b/sources/shiboken6/tests/samplebinding/derived_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for Derived class'''
@@ -43,6 +16,7 @@ init_paths()
import sample
from sample import Abstract, Derived, DerivedUsingCt, OverloadedFuncEnum
+
class Deviant(Derived):
def __init__(self):
Derived.__init__(self)
@@ -58,6 +32,16 @@ class Deviant(Derived):
def className(self):
return 'Deviant'
+
+class ImplementVirtualWithOutParameter(Derived):
+ def __init__(self, value):
+ super().__init__()
+ self._value = value
+
+ def virtualWithOutParameter(self):
+ return self._value
+
+
class DerivedTest(unittest.TestCase):
'''Test case for Derived class'''
@@ -67,22 +51,6 @@ class DerivedTest(unittest.TestCase):
'id_', 'pureVirtual', 'unpureVirtual'])
self.assertTrue(inherited_methods.issubset(dir(Derived)))
- def testOverloadedMethodCall(self):
- '''Test if the correct overloaded method is being called.'''
- derived = Derived()
-
- result = derived.overloaded(1, 2)
- self.assertEqual(type(result), OverloadedFuncEnum)
- self.assertEqual(result, sample.OverloadedFunc_ii)
-
- result = derived.overloaded(3)
- self.assertEqual(type(result), OverloadedFuncEnum)
- self.assertEqual(result, sample.OverloadedFunc_ii)
-
- result = derived.overloaded(4.4)
- self.assertEqual(type(result), OverloadedFuncEnum)
- self.assertEqual(result, sample.OverloadedFunc_d)
-
def testOtherOverloadedMethodCall(self):
'''Another test to check overloaded method calling, just to double check.'''
derived = Derived()
@@ -100,21 +68,23 @@ class DerivedTest(unittest.TestCase):
derived = Derived()
result = derived.overloaded(1.1, 2.2)
self.assertEqual(type(result), OverloadedFuncEnum)
- self.assertEqual(result, sample.OverloadedFunc_ii)
def testOverloadedMethodCallWithWrongNumberOfArguments(self):
- '''Test if a call to an overloaded method with the wrong number of arguments raises an exception.'''
+ '''Test if a call to an overloaded method with the wrong number of arguments
+ raises an exception.'''
derived = Derived()
self.assertRaises(TypeError, derived.otherOverloaded, 1, 2, True)
def testReimplementedPureVirtualMethodCall(self):
- '''Test if a Python override of a implemented pure virtual method is correctly called from C++.'''
+ '''Test if a Python override of a implemented pure virtual method is
+ correctly called from C++.'''
d = Deviant()
d.callPureVirtual()
self.assertTrue(d.pure_virtual_called)
def testReimplementedVirtualMethodCall(self):
- '''Test if a Python override of a reimplemented virtual method is correctly called from C++.'''
+ '''Test if a Python override of a reimplemented virtual method is
+ correctly called from C++.'''
d = Deviant()
d.callUnpureVirtual()
self.assertTrue(d.unpure_virtual_called)
@@ -126,7 +96,8 @@ class DerivedTest(unittest.TestCase):
self.assertEqual(d.getClassName(), 'Derived')
def testReimplementedVirtualMethodCallReturningString(self):
- '''Test if a Python override of a reimplemented virtual method is correctly called from C++.'''
+ '''Test if a Python override of a reimplemented virtual method is
+ correctly called from C++.'''
d = Deviant()
self.assertEqual(d.className(), 'Deviant')
self.assertEqual(d.getClassName(), 'Deviant')
@@ -150,7 +121,8 @@ class DerivedTest(unittest.TestCase):
self.assertEqual(Abstract.getObjectId(d), objId)
def testObjectCreationWithParentType(self):
- '''Derived class creates an instance of itself in C++ and returns it as a pointer to its ancestor Abstract.'''
+ '''Derived class creates an instance of itself in C++ and returns it as
+ a pointer to its ancestor Abstract.'''
obj = Derived.createObject()
self.assertEqual(type(obj), Derived)
@@ -159,7 +131,13 @@ class DerivedTest(unittest.TestCase):
obj = DerivedUsingCt(42)
self.assertEqual(obj.value(), 42)
+ def testVirtualWithOutParameter(self):
+ d = Derived()
+ self.assertEqual(d.callVirtualWithOutParameter(), 42)
+
+ d = ImplementVirtualWithOutParameter(1)
+ self.assertEqual(d.callVirtualWithOutParameter(), 1)
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/duck_punching_test.py b/sources/shiboken6/tests/samplebinding/duck_punching_test.py
index 9b0d7a9ff..aa21a0f7e 100644
--- a/sources/shiboken6/tests/samplebinding/duck_punching_test.py
+++ b/sources/shiboken6/tests/samplebinding/duck_punching_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for virtual methods.'''
@@ -43,6 +16,7 @@ init_paths()
from sample import VirtualMethods, SimpleFile, Point
+
def MethodTypeCompat(func, instance):
return types.MethodType(func, instance)
@@ -51,10 +25,12 @@ class Duck(VirtualMethods):
def __init__(self):
VirtualMethods.__init__(self)
+
class Monkey(SimpleFile):
def __init__(self, filename):
SimpleFile.__init__(self, filename)
+
class DuckPunchingTest(unittest.TestCase):
'''Test case for duck punching (aka "monkey patching").'''
@@ -83,7 +59,8 @@ class DuckPunchingTest(unittest.TestCase):
result2 = vm.virtualMethod0(pt, val, cpx, b)
self.assertEqual(result1, result2)
- self.assertEqual(result1, VirtualMethods.virtualMethod0(vm, pt, val, cpx, b) * self.multiplier)
+ self.assertEqual(result1,
+ VirtualMethods.virtualMethod0(vm, pt, val, cpx, b) * self.multiplier)
# This is done to decrease the refcount of the vm object
# allowing the object wrapper to be deleted before the
@@ -93,7 +70,8 @@ class DuckPunchingTest(unittest.TestCase):
vm.virtualMethod0 = None
def testMonkeyPatchOnVirtualMethodWithInheritance(self):
- '''Injects new 'virtualMethod0' on an object that inherits from VirtualMethods and makes C++ call it.'''
+ '''Injects new 'virtualMethod0' on an object that inherits from
+ VirtualMethods and makes C++ call it.'''
duck = Duck()
pt, val, cpx, b = Point(1.1, 2.2), 4, complex(3.3, 4.4), True
@@ -112,7 +90,8 @@ class DuckPunchingTest(unittest.TestCase):
result2 = duck.virtualMethod0(pt, val, cpx, b)
self.assertEqual(result1, result2)
- self.assertEqual(result1, VirtualMethods.virtualMethod0(duck, pt, val, cpx, b) * self.multiplier)
+ self.assertEqual(result1,
+ VirtualMethods.virtualMethod0(duck, pt, val, cpx, b) * self.multiplier)
duck.virtualMethod0 = None
@@ -177,4 +156,3 @@ class DuckPunchingTest(unittest.TestCase):
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/echo_test.py b/sources/shiboken6/tests/samplebinding/echo_test.py
index 67be482f2..f1859260e 100644
--- a/sources/shiboken6/tests/samplebinding/echo_test.py
+++ b/sources/shiboken6/tests/samplebinding/echo_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for <add-function> with const char* as argument'''
@@ -42,6 +15,7 @@ init_paths()
from sample import Echo
+
class TestEcho(unittest.TestCase):
'''Simple test case for Echo.echo'''
@@ -53,7 +27,8 @@ class TestEcho(unittest.TestCase):
def testCallOperator(self):
e = Echo()
- self.assertEqual(e("Hello", 3), "Hello3");
+ self.assertEqual(e("Hello", 3), "Hello3")
+
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/enum_test.py b/sources/shiboken6/tests/samplebinding/enum_test.py
index 66d7daf5b..276b8d894 100644
--- a/sources/shiboken6/tests/samplebinding/enum_test.py
+++ b/sources/shiboken6/tests/samplebinding/enum_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for Python representation of C++ enums.'''
@@ -40,33 +13,27 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from shiboken_paths import init_paths
init_paths()
-import shiboken6
# This is needed after the introduction of BUILD_DIR.
import sample
from sample import SampleNamespace, ObjectType, Event
+
def createTempFile():
import tempfile
return tempfile.SpooledTemporaryFile(mode='rw')
+
class EnumTest(unittest.TestCase):
'''Test case for Python representation of C++ enums.'''
- def testEnumRepr(self):
- enum = SampleNamespace.Option(1)
- self.assertEqual(eval(repr(enum)), enum)
-
- enum = SampleNamespace.Option(999)
- self.assertEqual(eval(repr(enum)), enum)
-
def testHashability(self):
self.assertEqual(hash(SampleNamespace.TwoIn), hash(SampleNamespace.TwoOut))
self.assertNotEqual(hash(SampleNamespace.TwoIn), hash(SampleNamespace.OneIn))
def testEnumValuesInsideEnum(self):
'''Enum values should be accessible inside the enum as well as outside.'''
- for value_name in SampleNamespace.Option.values:
+ for value_name in SampleNamespace.Option.__members__:
enum_item1 = getattr(SampleNamespace.Option, value_name)
enum_item2 = getattr(SampleNamespace, value_name)
self.assertEqual(enum_item1, enum_item2)
@@ -92,16 +59,18 @@ class EnumTest(unittest.TestCase):
def testEnumConstructorWithTooManyParameters(self):
'''Calling the constructor of non-extensible enum with the wrong number of parameters.'''
- self.assertRaises(TypeError, SampleNamespace.InValue, 13, 14)
+ self.assertRaises((TypeError, ValueError), SampleNamespace.InValue, 13, 14)
def testEnumConstructorWithNonNumberParameter(self):
'''Calling the constructor of non-extensible enum with a string.'''
- self.assertRaises(TypeError, SampleNamespace.InValue, '1')
+ self.assertRaises((TypeError, ValueError), SampleNamespace.InValue, '1')
def testEnumItemAsDefaultValueToIntArgument(self):
'''Calls function with an enum item as default value to an int argument.'''
- self.assertEqual(SampleNamespace.enumItemAsDefaultValueToIntArgument(), SampleNamespace.ZeroIn)
- self.assertEqual(SampleNamespace.enumItemAsDefaultValueToIntArgument(SampleNamespace.ZeroOut), SampleNamespace.ZeroOut)
+ self.assertEqual(SampleNamespace.enumItemAsDefaultValueToIntArgument(),
+ SampleNamespace.ZeroIn)
+ self.assertEqual(SampleNamespace.enumItemAsDefaultValueToIntArgument(SampleNamespace.ZeroOut), # noqa E:501
+ SampleNamespace.ZeroOut)
self.assertEqual(SampleNamespace.enumItemAsDefaultValueToIntArgument(123), 123)
def testAnonymousGlobalEnums(self):
@@ -126,49 +95,26 @@ class EnumTest(unittest.TestCase):
self.assertEqual(event.eventType(), Event.BASIC_EVENT)
event.setEventTypeByConstRef(Event.SOME_EVENT)
self.assertEqual(event.eventType(), Event.SOME_EVENT)
-
- def testEnumTpPrintImplementation(self):
- '''Without SbkEnum.tp_print 'print' returns the enum represented as an int.'''
- tmpfile = createTempFile()
- print(Event.ANY_EVENT, file=tmpfile)
- tmpfile.seek(0)
- text = tmpfile.read().strip()
- tmpfile.close()
- self.assertEqual(text, str(Event.ANY_EVENT))
- self.assertEqual(text, repr(Event.ANY_EVENT))
+ event.setEventTypeByConstPtr(Event.BASIC_EVENT)
+ self.assertEqual(event.eventType(), Event.BASIC_EVENT)
def testEnumArgumentWithDefaultValue(self):
'''Option enumArgumentWithDefaultValue(Option opt = UnixTime);'''
self.assertEqual(SampleNamespace.enumArgumentWithDefaultValue(), SampleNamespace.UnixTime)
- self.assertEqual(SampleNamespace.enumArgumentWithDefaultValue(SampleNamespace.RandomNumber), SampleNamespace.RandomNumber)
-
- def testSignature(self):
- enum = SampleNamespace.Option(1)
- types = type(enum).mro()
- klass = types[0]
- base = types[1]
- # The class has an empty signature.
- self.assertEqual(klass.__signature__, None)
- # The base class must be Enum
- self.assertNotEqual(base.__signature__, None)
- # It contains an int annotation.
- param = base.__signature__.parameters["itemValue"]
- self.assertEqual(param.annotation, int)
+ self.assertEqual(SampleNamespace.enumArgumentWithDefaultValue(SampleNamespace.RandomNumber), # noqa E:501
+ SampleNamespace.RandomNumber)
class MyEvent(Event):
def __init__(self):
- Event.__init__(self, Event.EventType(999))
+ Event.__init__(self, Event.EventType(3))
+
class OutOfBoundsTest(unittest.TestCase):
def testValue(self):
e = MyEvent()
- self.assertEqual(repr(e.eventType()), 'sample.Event.EventType(999)')
+ self.assertEqual(repr(e.eventType()), "<EventType.ANY_EVENT: 3>")
- def testNoneName(self):
- e = MyEvent()
- t = e.eventType()
- self.assertEqual(t.name, None)
class EnumOverloadTest(unittest.TestCase):
'''Test case for overloads involving enums'''
@@ -180,6 +126,7 @@ class EnumOverloadTest(unittest.TestCase):
self.assertEqual(o.callWithEnum('', Event.ANY_EVENT, 9), 81)
self.assertEqual(o.callWithEnum('', 9), 9)
+
class EnumOperators(unittest.TestCase):
'''Test case for operations on enums'''
@@ -189,4 +136,3 @@ class EnumOperators(unittest.TestCase):
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/enumfromremovednamespace_test.py b/sources/shiboken6/tests/samplebinding/enumfromremovednamespace_test.py
index 72705c4c4..42ae23961 100644
--- a/sources/shiboken6/tests/samplebinding/enumfromremovednamespace_test.py
+++ b/sources/shiboken6/tests/samplebinding/enumfromremovednamespace_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -41,15 +14,10 @@ init_paths()
import sample
from shiboken_test_helper import objectFullname
+from shibokensupport.signature import get_signature
+
class TestEnumFromRemovedNamespace(unittest.TestCase):
- def testEnumPromotedToGlobal(self):
- sample.RemovedNamespace1_Enum
- self.assertEqual(sample.RemovedNamespace1_Enum_Value0, 0)
- self.assertEqual(sample.RemovedNamespace1_Enum_Value1, 1)
- sample.RemovedNamespace1_AnonymousEnum_Value0
- sample.RemovedNamespace2_Enum
- sample.RemovedNamespace2_Enum_Value0
def testNames(self):
# Test if invisible namespace does not appear on type name
@@ -59,10 +27,10 @@ class TestEnumFromRemovedNamespace(unittest.TestCase):
"sample.ObjectOnInvisibleNamespace")
# Function arguments
- signature = sample.ObjectOnInvisibleNamespace.toInt.__signature__
+ signature = get_signature(sample.ObjectOnInvisibleNamespace.toInt)
self.assertEqual(objectFullname(signature.parameters['e'].annotation),
"sample.RemovedNamespace1_Enum")
- signature = sample.ObjectOnInvisibleNamespace.consume.__signature__
+ signature = get_signature(sample.ObjectOnInvisibleNamespace.consume)
self.assertEqual(objectFullname(signature.parameters['other'].annotation),
"sample.ObjectOnInvisibleNamespace")
@@ -76,9 +44,8 @@ class TestEnumFromRemovedNamespace(unittest.TestCase):
sample.UnremovedNamespace.RemovedNamespace3_AnonymousEnum_Value0
def testNestedFunctionFromRemovedNamespace(self):
- self.assertEqual(sample.UnremovedNamespace.nestedMathSum(1, 2), 3)
+ self.assertEqual(sample.UnremovedNamespace.nestedMathSum(1, 2), 3)
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/event_loop_call_virtual_test.py b/sources/shiboken6/tests/samplebinding/event_loop_call_virtual_test.py
index 54ad28ff3..8e13d5d46 100644
--- a/sources/shiboken6/tests/samplebinding/event_loop_call_virtual_test.py
+++ b/sources/shiboken6/tests/samplebinding/event_loop_call_virtual_test.py
@@ -1,45 +1,17 @@
#!/usr/bin/env python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Simple event loop dispatcher test.'''
import os
import sys
-import time
import unittest
from pathlib import Path
sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from shiboken_paths import init_paths
init_paths()
-from random import random
from sample import ObjectType, Event
@@ -67,7 +39,7 @@ class TestEventLoop(unittest.TestCase):
objs = [ObjectType(), NoOverride(), Override()]
evaluated = ObjectType.processEvent(objs,
- Event(Event.BASIC_EVENT))
+ Event(Event.BASIC_EVENT))
self.assertEqual(evaluated, 3)
self.assertTrue(objs[2].called)
diff --git a/sources/shiboken6/tests/samplebinding/event_loop_thread_test.py b/sources/shiboken6/tests/samplebinding/event_loop_thread_test.py
index 12410ed88..8b854fca6 100644
--- a/sources/shiboken6/tests/samplebinding/event_loop_thread_test.py
+++ b/sources/shiboken6/tests/samplebinding/event_loop_thread_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/env python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
from random import random
@@ -90,7 +64,7 @@ class TestEventLoopWithThread(unittest.TestCase):
thread.start()
evaluated = ObjectType.processEvent(objs,
- Event(Event.BASIC_EVENT))
+ Event(Event.BASIC_EVENT))
thread.join()
diff --git a/sources/shiboken6/tests/samplebinding/exception_test.py b/sources/shiboken6/tests/samplebinding/exception_test.py
index 96c389aa8..d9e6b377f 100644
--- a/sources/shiboken6/tests/samplebinding/exception_test.py
+++ b/sources/shiboken6/tests/samplebinding/exception_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/env python
-#
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -39,6 +13,7 @@ init_paths()
from sample import ExceptionTest
+
class CppExceptionTest(unittest.TestCase):
def testVoid(self):
@@ -49,14 +24,14 @@ class CppExceptionTest(unittest.TestCase):
try:
et.voidThrowStdException(True)
- except:
+ except: # noqa: E722
exceptionCount += 1
et.voidThrowInt(False)
try:
et.voidThrowInt(True)
- except:
+ except: # noqa: E722
exceptionCount += 1
self.assertEqual(exceptionCount, 2)
@@ -65,21 +40,32 @@ class CppExceptionTest(unittest.TestCase):
exceptionCount = 0
et = ExceptionTest()
- result = et.intThrowStdException(False);
+ result = et.intThrowStdException(False)
try:
- result = et.intThrowStdException(True);
- except:
+ result = et.intThrowStdException(True)
+ except: # noqa: E722
exceptionCount += 1
- result = et.intThrowInt(False);
+ result = et.intThrowInt(False)
try:
- result = et.intThrowInt(True);
- except:
+ result = et.intThrowInt(True) # noqa: F841
+ except: # noqa: E722
exceptionCount += 1
self.assertEqual(exceptionCount, 2)
+ def testModifications(self):
+ """PYSIDE-1995, test whether exceptions are propagated
+ when return ownership modifications are generated."""
+ exceptionCount = 0
+ try:
+ et = ExceptionTest.create(True) # noqa: F841
+ except: # noqa: E722
+ exceptionCount += 1
+ self.assertEqual(exceptionCount, 1)
+
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken6/tests/samplebinding/filter_test.py b/sources/shiboken6/tests/samplebinding/filter_test.py
index e9c2d5ccc..df805093f 100644
--- a/sources/shiboken6/tests/samplebinding/filter_test.py
+++ b/sources/shiboken6/tests/samplebinding/filter_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -37,6 +12,7 @@ init_paths()
from sample import Data, Intersection, Union
+
class TestFilters(unittest.TestCase):
def testAnd(self):
@@ -48,5 +24,6 @@ class TestFilters(unittest.TestCase):
self.assertEqual(type(inter), Intersection)
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken6/tests/samplebinding/global.h b/sources/shiboken6/tests/samplebinding/global.h
index dd24f274b..64806417a 100644
--- a/sources/shiboken6/tests/samplebinding/global.h
+++ b/sources/shiboken6/tests/samplebinding/global.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "abstract.h"
#include "blackbox.h"
@@ -81,6 +56,7 @@
#include "removednamespaces.h"
#include "sample.h"
#include "samplenamespace.h"
+#include "stdcomplex.h"
#include "simplefile.h"
#include "size.h"
#include "snakecasetest.h"
diff --git a/sources/shiboken6/tests/samplebinding/handleholder_test.py b/sources/shiboken6/tests/samplebinding/handleholder_test.py
index c1879e3e9..af22328c5 100644
--- a/sources/shiboken6/tests/samplebinding/handleholder_test.py
+++ b/sources/shiboken6/tests/samplebinding/handleholder_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
''' Test case for a class that holds a unknown handle object.
Test case for BUG #1105.
@@ -44,6 +17,7 @@ init_paths()
from sample import HandleHolder
+
class HandleHolderTest(unittest.TestCase):
def testCreation(self):
holder = HandleHolder(HandleHolder.createHandle())
@@ -60,5 +34,6 @@ class HandleHolderTest(unittest.TestCase):
holder2 = HandleHolder(holder.handle2())
self.assertTrue(holder.compare2(holder2))
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken6/tests/samplebinding/hashabletype_test.py b/sources/shiboken6/tests/samplebinding/hashabletype_test.py
index fae9c724d..c41f5cc06 100644
--- a/sources/shiboken6/tests/samplebinding/hashabletype_test.py
+++ b/sources/shiboken6/tests/samplebinding/hashabletype_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for __hash__'''
@@ -40,7 +13,8 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from shiboken_paths import init_paths
init_paths()
-from sample import *
+from sample import ObjectType, Str
+
class HashableTest(unittest.TestCase):
@@ -56,6 +30,6 @@ class HashableTest(unittest.TestCase):
h[o] = 2
self.assertTrue(h.get(o), 2)
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/ignorederefop_test.py b/sources/shiboken6/tests/samplebinding/ignorederefop_test.py
index 5bd497e43..feb78d045 100644
--- a/sources/shiboken6/tests/samplebinding/ignorederefop_test.py
+++ b/sources/shiboken6/tests/samplebinding/ignorederefop_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -34,12 +9,14 @@ from pathlib import Path
sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from shiboken_paths import init_paths
init_paths()
-from sample import *
+from sample import Reference
+
class TestLackOfDereferenceOperators (unittest.TestCase):
def testIf(self):
r = Reference()
self.assertFalse(hasattr(r, "__mul__"))
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken6/tests/samplebinding/implicitconv_numerical_test.py b/sources/shiboken6/tests/samplebinding/implicitconv_numerical_test.py
index 0e3e99d64..081666281 100644
--- a/sources/shiboken6/tests/samplebinding/implicitconv_numerical_test.py
+++ b/sources/shiboken6/tests/samplebinding/implicitconv_numerical_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test case for inplicit converting C++ numeric types.'''
@@ -54,9 +27,15 @@ if is64bitArchitecture and sys.platform != 'win32':
cLongMin = -9223372036854775808
cLongMax = 9223372036854775807
+
class NumericTester(unittest.TestCase):
'''Helper class for numeric comparison testing'''
+ def assertRaises(self, *args, **kwds):
+ if not hasattr(sys, "pypy_version_info"):
+ # PYSIDE-535: PyPy complains "Fatal RPython error: NotImplementedError"
+ return super().assertRaises(*args, **kwds)
+
def check_value(self, source, expected, callback, desired_type=None):
result = callback(source)
self.assertEqual(result, expected)
diff --git a/sources/shiboken6/tests/samplebinding/implicitconv_test.py b/sources/shiboken6/tests/samplebinding/implicitconv_test.py
index 782ddba2b..ebafe0c52 100644
--- a/sources/shiboken6/tests/samplebinding/implicitconv_test.py
+++ b/sources/shiboken6/tests/samplebinding/implicitconv_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for implicit conversions'''
@@ -42,6 +15,7 @@ init_paths()
from sample import ImplicitConv, ObjectType
+
class ImplicitConvTest(unittest.TestCase):
'''Test case for implicit conversions'''
@@ -70,4 +44,3 @@ class ImplicitConvTest(unittest.TestCase):
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/inheritanceandscope_test.py b/sources/shiboken6/tests/samplebinding/inheritanceandscope_test.py
index 5d1bde31d..28d62486a 100644
--- a/sources/shiboken6/tests/samplebinding/inheritanceandscope_test.py
+++ b/sources/shiboken6/tests/samplebinding/inheritanceandscope_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for finding scope in cases involving inheritance.'''
@@ -42,14 +15,16 @@ init_paths()
from sample import SampleNamespace
+
class ScopeAndInheritanceTest(unittest.TestCase):
'''Test cases for finding scope in cases involving inheritance.'''
def testMethodCorrectlyWrapper(self):
'''A method returning a type declared in the scope of the method's
class parent must be found and the method correctly exported.'''
- meth = getattr(SampleNamespace.DerivedFromNamespace, 'methodReturningTypeFromParentScope')
+ meth = getattr(SampleNamespace.DerivedFromNamespace, # noqa: F841
+ 'methodReturningTypeFromParentScope')
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/injectcode_test.py b/sources/shiboken6/tests/samplebinding/injectcode_test.py
index a6fb7a5ef..f673a7807 100644
--- a/sources/shiboken6/tests/samplebinding/injectcode_test.py
+++ b/sources/shiboken6/tests/samplebinding/injectcode_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for std::list container conversions'''
@@ -41,6 +14,7 @@ from shiboken_paths import init_paths
init_paths()
from sample import InjectCode
+
class MyInjectCode(InjectCode):
def __init__(self):
InjectCode.__init__(self)
@@ -49,8 +23,11 @@ class MyInjectCode(InjectCode):
def arrayMethod(self, values):
return self.multiplier * sum(values)
+
class InjectCodeTest(unittest.TestCase):
+ @unittest.skipIf(hasattr(sys, "pypy_version_info"),
+ "PyPy type objects cannot be modified (yet) after creation")
def testTypeNativeBeginning_TypeTargetBeginning(self):
ic = InjectCode()
self.assertEqual(str(ic), "Hi! I'm the inject code dummy class.")
@@ -96,22 +73,24 @@ class InjectCodeTest(unittest.TestCase):
self.assertEqual(result, sum(values))
def testCallReimplementedVirtualMethodWithArgumentRemovalAndArgumentTypeModification(self):
- '''Calls a reimplemented virtual method that had its first argument removed and the second modified.'''
+ '''Calls a reimplemented virtual method that had its first argument removed
+ and the second modified.'''
ic = MyInjectCode()
values = (1, 2, 3, 4, 5)
result = ic.callArrayMethod(values)
self.assertEqual(result, ic.multiplier * sum(values))
def testUsageOfTypeSystemCheckVariableOnPrimitiveType(self):
- '''When the sequence item is convertible to an integer -1 is returned, or -2 if its not convertible.'''
+ '''When the sequence item is convertible to an integer -1 is returned,
+ or -2 if its not convertible.'''
ic = InjectCode()
values = (1, 2, 3, 4, '5', 6.7)
result = ic.arrayMethod(values)
- fixedValues = [v for v in values if isinstance(v, int)]\
- + [-1 for v in values if isinstance(v, float)]\
- + [-2 for v in values if not isinstance(v, int) and not isinstance(v, float)]
- self.assertEqual(result, sum(fixedValues))
+ ints = [v for v in values if isinstance(v, int)]
+ floats = [-1 for v in values if isinstance(v, float)]
+ other = [-2 for v in values if not isinstance(v, int) and not isinstance(v, float)]
+ self.assertEqual(result, sum(ints + floats + other))
class IntArrayTest(unittest.TestCase):
@@ -135,5 +114,6 @@ class IntArrayTest(unittest.TestCase):
ic = InjectCode()
self.assertEqual(sum([1, 2]) + len([1, 2]), ic.sumArrayAndLength(args))
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken6/tests/samplebinding/innerclass_test.py b/sources/shiboken6/tests/samplebinding/innerclass_test.py
index 6e5b23aa7..721f33483 100644
--- a/sources/shiboken6/tests/samplebinding/innerclass_test.py
+++ b/sources/shiboken6/tests/samplebinding/innerclass_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -40,10 +13,11 @@ init_paths()
from sample import Derived
+
class TestInnerClass(unittest.TestCase):
def testInstaciate(self):
- d = Derived.SomeInnerClass()
+ d = Derived.SomeInnerClass() # noqa: F841
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/intlist_test.py b/sources/shiboken6/tests/samplebinding/intlist_test.py
index 58e519d00..defa9ca71 100644
--- a/sources/shiboken6/tests/samplebinding/intlist_test.py
+++ b/sources/shiboken6/tests/samplebinding/intlist_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -40,6 +13,7 @@ init_paths()
from sample import IntList
+
class IntListTest(unittest.TestCase):
def testAutoFunctionsToBaseList(self):
@@ -101,5 +75,6 @@ class IntListTest(unittest.TestCase):
self.assertEqual(il[1], int(432.1))
self.assertRaises(TypeError, il.__setitem__, 2, '78')
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken6/tests/samplebinding/intwrapper_test.py b/sources/shiboken6/tests/samplebinding/intwrapper_test.py
index a2fabf87f..d883adf47 100644
--- a/sources/shiboken6/tests/samplebinding/intwrapper_test.py
+++ b/sources/shiboken6/tests/samplebinding/intwrapper_test.py
@@ -1,32 +1,5 @@
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -43,8 +16,8 @@ from sample import IntWrapper
class IntWrapperTest(unittest.TestCase):
def testOperators(self):
- ten1 = IntWrapper(10)
- ten2 = IntWrapper(10)
+ ten1 = IntWrapper(10)
+ ten2 = IntWrapper(10)
twenty = IntWrapper(20)
self.assertTrue(ten1 == ten2)
self.assertTrue(ten1 != twenty)
@@ -56,6 +29,11 @@ class IntWrapperTest(unittest.TestCase):
i -= ten2
self.assertTrue(i == ten1)
+ def testAddPyMethodDef(self):
+ """Test of added free function (PYSIDE-1905)."""
+ i = IntWrapper(10)
+ self.assertEqual(i.add_ints(10, 20), 30)
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken6/tests/samplebinding/invalid_virtual_return_test.py b/sources/shiboken6/tests/samplebinding/invalid_virtual_return_test.py
index 1456f5e7a..bb35b2bb1 100644
--- a/sources/shiboken6/tests/samplebinding/invalid_virtual_return_test.py
+++ b/sources/shiboken6/tests/samplebinding/invalid_virtual_return_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test case for returning invalid types in a virtual function'''
@@ -65,7 +38,7 @@ class ModelWrongReturnTest(unittest.TestCase):
def testWrongTypeReturn(self):
model = ListModelWrong()
view = ObjectView(model)
- self.assertRaises(RuntimeWarning, view.getRawModelData) # calls model.data()
+ self.assertRaises(RuntimeWarning, view.getRawModelData) # calls model.data()
if __name__ == '__main__':
diff --git a/sources/shiboken6/tests/samplebinding/keep_reference_test.py b/sources/shiboken6/tests/samplebinding/keep_reference_test.py
index 8e900489d..10591fec6 100644
--- a/sources/shiboken6/tests/samplebinding/keep_reference_test.py
+++ b/sources/shiboken6/tests/samplebinding/keep_reference_test.py
@@ -1,35 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-'''Test case for objects that keep references to other object without owning them (e.g. model/view relationships).'''
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -42,8 +13,10 @@ init_paths()
from sample import ObjectModel, ObjectView
+
class TestKeepReference(unittest.TestCase):
- '''Test case for objects that keep references to other object without owning them (e.g. model/view relationships).'''
+ '''Test case for objects that keep references to other object without
+ owning them (e.g. model/view relationships).'''
@unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testReferenceCounting(self):
@@ -75,15 +48,16 @@ class TestKeepReference(unittest.TestCase):
self.assertEqual(sys.getrefcount(model), refcount1)
def testReferreedObjectSurvivalAfterContextEnd(self):
- '''Model-like object assigned to a view-like object must survive after get out of context.'''
+ '''Model-like object assigned to a view-like object must survive
+ after get out of context.'''
def createModelAndSetToView(view):
model = ObjectModel()
model.setObjectName('created model')
view.setModel(model)
view = ObjectView()
createModelAndSetToView(view)
- model = view.model()
+ model = view.model() # noqa: F841
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/list_test.py b/sources/shiboken6/tests/samplebinding/list_test.py
index b7257a320..b668bfd90 100644
--- a/sources/shiboken6/tests/samplebinding/list_test.py
+++ b/sources/shiboken6/tests/samplebinding/list_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for std::list container conversions'''
@@ -42,6 +15,7 @@ init_paths()
from sample import ListUser, Point, PointF
+
class ExtendedListUser(ListUser):
def __init__(self):
ListUser.__init__(self)
@@ -51,6 +25,7 @@ class ExtendedListUser(ListUser):
self.create_list_called = True
return [2, 3, 5, 7, 13]
+
class ListConversionTest(unittest.TestCase):
'''Test case for std::list container conversions'''
@@ -96,7 +71,8 @@ class ListConversionTest(unittest.TestCase):
self.assertEqual(result, lst)
def testConversionInBothDirectionsWithSimilarContainer(self):
- '''Test converting a tuple, instead of the expected list, from Python to C++ and back again.'''
+ '''Test converting a tuple, instead of the expected list,
+ from Python to C++ and back again.'''
lu = ListUser()
lst = (3, 5, 7)
lu.setList(lst)
@@ -123,6 +99,6 @@ class ListConversionTest(unittest.TestCase):
self.assertEqual(ListUser.ListOfPointF, ListUser.listOfPoints([PointF()]))
self.assertEqual(ListUser.ListOfPoint, ListUser.listOfPoints([Point()]))
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/lock_test.py b/sources/shiboken6/tests/samplebinding/lock_test.py
index eaaf4ca05..acd47634a 100644
--- a/sources/shiboken6/tests/samplebinding/lock_test.py
+++ b/sources/shiboken6/tests/samplebinding/lock_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/env python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Simple test with a blocking C++ method that should allow python
threads to run.'''
@@ -89,7 +63,8 @@ class TestLockUnlock(unittest.TestCase):
self.assertTrue(result)
def testReimplementedVirtualBlocker(self):
- '''Same as the basic case but blocker method is a C++ virtual reimplemented in Python and called from C++.'''
+ '''Same as the basic case but blocker method is a C++ virtual reimplemented
+ in Python and called from C++.'''
mybucket = MyBucket()
unlocker = Unlocker(mybucket)
@@ -98,5 +73,6 @@ class TestLockUnlock(unittest.TestCase):
unlocker.join()
self.assertTrue(result)
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken6/tests/samplebinding/map_test.py b/sources/shiboken6/tests/samplebinding/map_test.py
index 205075bc3..fa99ad2e7 100644
--- a/sources/shiboken6/tests/samplebinding/map_test.py
+++ b/sources/shiboken6/tests/samplebinding/map_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for std::map container conversions'''
@@ -42,6 +15,7 @@ init_paths()
from sample import MapUser
+
class ExtendedMapUser(MapUser):
def __init__(self):
MapUser.__init__(self)
@@ -49,10 +23,11 @@ class ExtendedMapUser(MapUser):
def createMap(self):
self.create_map_called = True
- return {'two' : (complex(2.2, 2.2), 2),
- 'three' : (complex(3.3, 3.3), 3),
- 'five' : (complex(5.5, 5.5), 5),
- 'seven' : (complex(7.7, 7.7), 7)}
+ return {'two': (complex(2.2, 2.2), 2),
+ 'three': (complex(3.3, 3.3), 3),
+ 'five': (complex(5.5, 5.5), 5),
+ 'seven': (complex(7.7, 7.7), 7)}
+
class MapConversionTest(unittest.TestCase):
'''Test case for std::map container conversions'''
@@ -71,7 +46,7 @@ class MapConversionTest(unittest.TestCase):
def testConversionInBothDirections(self):
'''Test converting a map from Python to C++ and back again.'''
mu = MapUser()
- map_ = {'odds' : [2, 4, 6], 'evens' : [3, 5, 7], 'primes' : [3, 4, 6]}
+ map_ = {'odds': [2, 4, 6], 'evens': [3, 5, 7], 'primes': [3, 4, 6]}
mu.setMap(map_)
result = mu.getMap()
self.assertEqual(result, map_)
@@ -79,9 +54,10 @@ class MapConversionTest(unittest.TestCase):
def testConversionMapIntKeyValueTypeValue(self):
'''C++ signature: MapUser::passMapIntValueType(const std::map<int, const ByteArray>&)'''
mu = MapUser()
- map_ = {0 : 'string'}
+ map_ = {0: 'string'}
result = mu.passMapIntValueType(map_)
self.assertEqual(map_, result)
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken6/tests/samplebinding/metaclass_test.py b/sources/shiboken6/tests/samplebinding/metaclass_test.py
index ed07626a0..4d7eeda96 100644
--- a/sources/shiboken6/tests/samplebinding/metaclass_test.py
+++ b/sources/shiboken6/tests/samplebinding/metaclass_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -35,32 +10,40 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from shiboken_paths import init_paths
init_paths()
-from sample import *
+from sample import Point
+
class MetaA(type):
pass
+
class A(object):
__metaclass__ = MetaA
+
MetaB = type(Point)
B = Point
+
class MetaC(MetaA, MetaB):
pass
+
+
class C(A, B):
__metaclass__ = MetaC
+
class D(C):
pass
+
class TestMetaClass(unittest.TestCase):
def testIt(self):
- w1 = C() # works
+ w1 = C() # works
w1.setX(1)
w1.setY(2)
- w2 = D() # should work!
+ w2 = D() # should work!
w2.setX(3)
w2.setY(4)
diff --git a/sources/shiboken6/tests/samplebinding/mi_virtual_methods_test.py b/sources/shiboken6/tests/samplebinding/mi_virtual_methods_test.py
index ba92bdb85..8d324db59 100644
--- a/sources/shiboken6/tests/samplebinding/mi_virtual_methods_test.py
+++ b/sources/shiboken6/tests/samplebinding/mi_virtual_methods_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for virtual methods in multiple inheritance scenarios'''
diff --git a/sources/shiboken6/tests/samplebinding/mixed_mi_test.py b/sources/shiboken6/tests/samplebinding/mixed_mi_test.py
index f303ea0db..fa8481600 100644
--- a/sources/shiboken6/tests/samplebinding/mixed_mi_test.py
+++ b/sources/shiboken6/tests/samplebinding/mixed_mi_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for multiple inheritance in mixed Python/C++ scenarios'''
@@ -79,5 +52,3 @@ class MixedInheritanceTest(unittest.TestCase):
if __name__ == '__main__':
unittest.main()
-
-
diff --git a/sources/shiboken6/tests/samplebinding/modelindex_test.py b/sources/shiboken6/tests/samplebinding/modelindex_test.py
index 1a4ed2407..e23503eff 100644
--- a/sources/shiboken6/tests/samplebinding/modelindex_test.py
+++ b/sources/shiboken6/tests/samplebinding/modelindex_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -40,6 +13,7 @@ init_paths()
from sample import ModelIndex, ReferentModelIndex, PersistentModelIndex
+
class TestCastOperator(unittest.TestCase):
def testCastOperatorReturningValue(self):
@@ -57,4 +31,3 @@ class TestCastOperator(unittest.TestCase):
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/modelview_test.py b/sources/shiboken6/tests/samplebinding/modelview_test.py
index dff7b68fb..b5663a04e 100644
--- a/sources/shiboken6/tests/samplebinding/modelview_test.py
+++ b/sources/shiboken6/tests/samplebinding/modelview_test.py
@@ -1,35 +1,9 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-'''Test case for objects that keep references to other object without owning them (e.g. model/view relationships).'''
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+'''Test case for objects that keep references to other object without owning them
+ (e.g. model/view relationships).'''
import os
import sys
@@ -44,9 +18,11 @@ from sample import ObjectModel, ObjectType, ObjectView
object_name = 'test object'
+
class MyObject(ObjectType):
pass
+
class ListModelKeepsReference(ObjectModel):
def __init__(self, parent=None):
ObjectModel.__init__(self, parent)
@@ -56,6 +32,7 @@ class ListModelKeepsReference(ObjectModel):
def data(self):
return self.obj
+
class ListModelDoesntKeepsReference(ObjectModel):
def data(self):
obj = MyObject()
@@ -82,4 +59,3 @@ class ModelViewTest(unittest.TestCase):
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/modifications_test.py b/sources/shiboken6/tests/samplebinding/modifications_test.py
index 3429ccd0f..dced14396 100644
--- a/sources/shiboken6/tests/samplebinding/modifications_test.py
+++ b/sources/shiboken6/tests/samplebinding/modifications_test.py
@@ -1,36 +1,10 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for method modifications performed as described on type system. '''
+import gc
import os
import sys
import unittest
@@ -42,6 +16,7 @@ init_paths()
from sample import Modifications, Point, ByteArray
+
class ExtModifications(Modifications):
def __init__(self):
Modifications.__init__(self)
@@ -64,25 +39,18 @@ class ModificationsTest(unittest.TestCase):
def tearDown(self):
del self.mods
-
- def testClassMembersAvailability(self):
- '''Test if Modified class really have the expected members.'''
- expected_members = set(['OverloadedModFunc', 'OverloadedNone',
- 'Overloaded_ibiP', 'Overloaded_ibib',
- 'Overloaded_ibid', 'Overloaded_ibii',
- 'calculateArea', 'doublePlus', 'increment',
- 'multiplyPointCoordsPlusValue', 'name',
- 'pointToPair', 'overloaded', 'power',
- 'timesTen'])
- self.assertTrue(expected_members.issubset(dir(Modifications)))
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
def testRenamedMethodAvailability(self):
- '''Test if Modification class really have renamed the 'className' virtual method to 'name'.'''
+ '''Test if Modification class really have renamed the 'className'
+ virtual method to 'name'.'''
self.assertTrue('className' not in dir(Modifications))
self.assertTrue('name' in dir(Modifications))
def testReimplementationOfRenamedVirtualMethod(self):
- '''Test if class inheriting from Modification class have the reimplementation of renamed virtual method called.'''
+ '''Test if class inheriting from Modification class have the reimplementation
+ of renamed virtual method called.'''
em = ExtModifications()
self.assertEqual(self.mods.name(), 'Modifications')
self.assertEqual(em.name(), 'ExtModifications')
@@ -103,12 +71,14 @@ class ModificationsTest(unittest.TestCase):
self.assertEqual(self.mods.doublePlus(7), 14)
def testDefaultValueRemoval(self):
- '''Test if default value was removed from first argument of Modifications::increment(int).'''
+ '''Test if default value was removed from first argument of
+ Modifications::increment(int).'''
self.assertRaises(TypeError, self.mods.increment)
self.assertEqual(self.mods.increment(7), 8)
def testDefaultValueReplacement(self):
- '''Test if default values for both arguments of Modifications::power(int, int) were modified.'''
+ '''Test if default values for both arguments of Modifications::power(int, int)
+ were modified.'''
# original default values: int power(int base = 1, int exponent = 0);
self.assertNotEqual(self.mods.power(4), 1)
# modified default values: int power(int base = 2, int exponent = 1);
@@ -117,12 +87,14 @@ class ModificationsTest(unittest.TestCase):
self.assertEqual(self.mods.power(5, 3), 5**3)
def testSetNewDefaultValue(self):
- '''Test if default value was correctly set to 10 for first argument of Modifications::timesTen(int).'''
+ '''Test if default value was correctly set to 10 for first argument of
+ Modifications::timesTen(int).'''
self.assertEqual(self.mods.timesTen(7), 70)
self.assertEqual(self.mods.timesTen(), 100)
def testArgumentRemovalAndReturnTypeModificationWithTypesystemTemplates1(self):
- '''Test modifications to method signature and return value using type system templates (case 1).'''
+ '''Test modifications to method signature and return value using type
+ system templates (case 1).'''
result, ok = self.mods.pointToPair(Point(2, 5))
self.assertEqual(type(ok), bool)
self.assertEqual(type(result), tuple)
@@ -133,7 +105,8 @@ class ModificationsTest(unittest.TestCase):
self.assertEqual(result[1], 5.0)
def testArgumentRemovalAndReturnTypeModificationWithTypesystemTemplates2(self):
- '''Test modifications to method signature and return value using type system templates (case 2).'''
+ '''Test modifications to method signature and return value using
+ type system templates (case 2).'''
result, ok = self.mods.multiplyPointCoordsPlusValue(Point(2, 5), 4.1)
self.assertEqual(type(ok), bool)
self.assertEqual(type(result), float)
@@ -147,9 +120,11 @@ class ModificationsTest(unittest.TestCase):
self.assertEqual(self.mods.overloaded(1, True, 2), Modifications.Overloaded_ibii)
# the others weren't modified
self.assertEqual(self.mods.overloaded(1, True, 2, False), Modifications.Overloaded_ibib)
- self.assertEqual(self.mods.overloaded(1, False, 2, Point(3, 4)), Modifications.Overloaded_ibiP)
+ self.assertEqual(self.mods.overloaded(1, False, 2, Point(3, 4)),
+ Modifications.Overloaded_ibiP)
self.assertRaises(TypeError, self.mods.overloaded, 1, True, Point(2, 3), Point(4, 5))
- self.assertEqual(self.mods.over(1, True, Point(2, 3), Point(4, 5)), Modifications.Overloaded_ibPP)
+ self.assertEqual(self.mods.over(1, True, Point(2, 3), Point(4, 5)),
+ Modifications.Overloaded_ibPP)
def testPointArrayModification(self):
points = (Point(1, 1), Point(2, 2))
diff --git a/sources/shiboken6/tests/samplebinding/modified_constructor_test.py b/sources/shiboken6/tests/samplebinding/modified_constructor_test.py
index 63cec6556..9791a3491 100644
--- a/sources/shiboken6/tests/samplebinding/modified_constructor_test.py
+++ b/sources/shiboken6/tests/samplebinding/modified_constructor_test.py
@@ -1,37 +1,9 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Tests cases for ConstructorWithModifiedArgument class.'''
-import sys
import os
import sys
import unittest
@@ -41,7 +13,7 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from shiboken_paths import init_paths
init_paths()
-from sample import *
+from sample import ModifiedConstructor
class ConstructorWithModifiedArgumentTest(unittest.TestCase):
@@ -51,6 +23,6 @@ class ConstructorWithModifiedArgumentTest(unittest.TestCase):
sampleClass = ModifiedConstructor("10")
self.assertTrue(sampleClass.retrieveValue(), 10)
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/modifiedvirtualmethods_test.py b/sources/shiboken6/tests/samplebinding/modifiedvirtualmethods_test.py
index b59e64a00..dcb487f1a 100644
--- a/sources/shiboken6/tests/samplebinding/modifiedvirtualmethods_test.py
+++ b/sources/shiboken6/tests/samplebinding/modifiedvirtualmethods_test.py
@@ -1,36 +1,10 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for modified virtual methods.'''
+import gc
import os
import sys
import unittest
@@ -42,6 +16,7 @@ init_paths()
from sample import VirtualMethods, Str
+
class ExtendedVirtualMethods(VirtualMethods):
def __init__(self):
VirtualMethods.__init__(self)
@@ -87,7 +62,7 @@ class ExtendedVirtualMethods(VirtualMethods):
self.callMe_called += 1
def getMargins(self):
- return tuple([m*2 for m in VirtualMethods.getMargins(self)])
+ return tuple([m * 2 for m in VirtualMethods.getMargins(self)])
class VirtualMethodsTest(unittest.TestCase):
@@ -100,6 +75,8 @@ class VirtualMethodsTest(unittest.TestCase):
def tearDown(self):
del self.vm
del self.evm
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
def testModifiedVirtualMethod0(self):
'''Renamed virtual method.'''
@@ -209,7 +186,8 @@ class VirtualMethodsTest(unittest.TestCase):
removed_arg_value = 2011
default_value = 3000
result = self.evm.callSum4(a0, removed_arg_value, a1)
- self.assertEqual(result, (a0 - removed_arg_value + a1 + default_value) * self.evm.multiplier)
+ self.assertEqual(result,
+ (a0 - removed_arg_value + a1 + default_value) * self.evm.multiplier)
self.assertTrue(self.evm.sum4_called)
def testOverridenMethodResultModification(self):
@@ -241,15 +219,15 @@ class VirtualMethodsTest(unittest.TestCase):
def testExtendedAllArgumentsRemoved(self):
values = (10, 20, 30, 40)
self.evm.setMargins(*values)
- double = tuple([m*2 for m in values])
+ double = tuple([m * 2 for m in values])
self.assertEqual(self.evm.getMargins(), double)
def testExtendedAllArgumentsRemovedCallVirtual(self):
values = (10, 20, 30, 40)
self.evm.setMargins(*values)
- double = tuple([m*2 for m in values])
+ double = tuple([m * 2 for m in values])
self.assertEqual(self.evm.callGetMargins(), double)
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/multi_cpp_inheritance_test.py b/sources/shiboken6/tests/samplebinding/multi_cpp_inheritance_test.py
index c522d0e38..fc6b26c3f 100644
--- a/sources/shiboken6/tests/samplebinding/multi_cpp_inheritance_test.py
+++ b/sources/shiboken6/tests/samplebinding/multi_cpp_inheritance_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for multiple inheritance'''
@@ -40,72 +13,85 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from shiboken_paths import init_paths
init_paths()
-from sample import *
+from sample import ObjectType, Point, Str
+
class SimpleUseCase(ObjectType, Str):
def __init__(self, name):
ObjectType.__init__(self)
Str.__init__(self, name)
+
class SimpleUseCaseReverse(Str, ObjectType):
def __init__(self, name):
ObjectType.__init__(self)
Str.__init__(self, name)
+
class SimpleUseCase2(SimpleUseCase):
def __init__(self, name):
SimpleUseCase.__init__(self, name)
+
class ComplexUseCase(SimpleUseCase2, Point):
def __init__(self, name):
SimpleUseCase2.__init__(self, name)
Point.__init__(self)
+
class ComplexUseCaseReverse(Point, SimpleUseCase2):
def __init__(self, name):
SimpleUseCase2.__init__(self, name)
Point.__init__(self)
+
class MultipleCppDerivedTest(unittest.TestCase):
- def testInstanciation(self):
+ def testInstantiation(self):
s = SimpleUseCase("Hi")
self.assertEqual(s, "Hi")
s.setObjectName(s)
self.assertEqual(s.objectName(), "Hi")
- def testInstanciation2(self):
+ def testInstantiation2(self):
s = SimpleUseCase2("Hi")
self.assertEqual(s, "Hi")
s.setObjectName(s)
self.assertEqual(s.objectName(), "Hi")
- def testComplexInstanciation(self):
+ def testComplexInstantiation(self):
c = ComplexUseCase("Hi")
self.assertEqual(c, "Hi")
c.setObjectName(c)
self.assertEqual(c.objectName(), "Hi")
- c.setX(2);
+ c.setX(2)
self.assertEqual(c.x(), 2)
+
class MultipleCppDerivedReverseTest(unittest.TestCase):
- def testInstanciation(self):
+ def testInstantiation(self):
s = SimpleUseCaseReverse("Hi")
self.assertEqual(s, "Hi")
s.setObjectName(s)
self.assertEqual(s.objectName(), "Hi")
- def testInstanciation2(self):
+ def testInstantiation2(self):
s = SimpleUseCase2("Hi")
self.assertEqual(s, "Hi")
s.setObjectName(s)
self.assertEqual(s.objectName(), "Hi")
- def testComplexInstanciation(self):
- c = ComplexUseCaseReverse("Hi")
- c.setObjectName(c)
- self.assertEqual(c.objectName(), "Hi")
- c.setX(2);
- self.assertEqual(c, Point(2, 0))
+ def testComplexInstantiation(self):
+ # PYSIDE-1564: This test can no longer work because of this MRO:
+ # ('ComplexUseCaseReverse', 'Point', 'SimpleUseCase2', 'SimpleUseCase',
+ # 'ObjectType', 'Str', 'Object', 'object')
+ # By multiple inheritance Point would be called first but has no argument.
+ with self.assertRaises(TypeError):
+ c = ComplexUseCaseReverse("Hi") # noqa: F841
+ # c.setObjectName(c)
+ # self.assertEqual(c.objectName(), "Hi")
+ # c.setX(2);
+ # self.assertEqual(c, Point(2, 0))
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken6/tests/samplebinding/multiple_derived_test.py b/sources/shiboken6/tests/samplebinding/multiple_derived_test.py
index 0c40a4fd1..7497714a8 100644
--- a/sources/shiboken6/tests/samplebinding/multiple_derived_test.py
+++ b/sources/shiboken6/tests/samplebinding/multiple_derived_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for multiple inheritance'''
@@ -40,17 +13,20 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from shiboken_paths import init_paths
init_paths()
-from sample import Base1, Base2, Base3, Base4, Base5, Base6
+from sample import Base1, Base2
from sample import MDerived1, MDerived2, MDerived3, MDerived4, MDerived5, SonOfMDerived1
+
class ExtMDerived1(MDerived1):
def __init__(self):
MDerived1.__init__(self)
self.multiplier = 20
self.base2Method_called = False
+
def base2Method(self):
return Base2.base2Method(self) * self.multiplier
+
class MultipleDerivedTest(unittest.TestCase):
'''Test cases for multiple inheritance'''
@@ -67,19 +43,22 @@ class MultipleDerivedTest(unittest.TestCase):
self.assertTrue(issubclass(MDerived1, Base2))
def testCallToFunctionWithBase1ArgumentThatCastsBackToMDerived1(self):
- '''MDerived1 is passed as an Base1 argument to a method that returns it casted back to MDerived1.'''
+ '''MDerived1 is passed as an Base1 argument to a method that returns
+ it casted back to MDerived1.'''
a = MDerived1()
b = MDerived1.transformFromBase1(a)
self.assertEqual(a, b)
def testCallToFunctionWithBase2ArgumentThatCastsBackToMDerived1(self):
- '''MDerived1 is passed as an Base2 argument to a method that returns it casted back to MDerived1.'''
+ '''MDerived1 is passed as an Base2 argument to a method that returns
+ it casted back to MDerived1.'''
a = MDerived1()
b = MDerived1.transformFromBase2(a)
self.assertEqual(a, b)
def testPythonClassIsInstance(self):
- '''Python defined class ExtMDerived1 is instance of its parents MDerived1, Base1 and Base2.'''
+ '''Python defined class ExtMDerived1 is instance of its parents
+ MDerived1, Base1 and Base2.'''
a = ExtMDerived1()
self.assertTrue(isinstance(a, ExtMDerived1))
self.assertTrue(isinstance(a, MDerived1))
@@ -87,14 +66,16 @@ class MultipleDerivedTest(unittest.TestCase):
self.assertTrue(isinstance(a, Base2))
def testPythonClassIsSubclass(self):
- '''Python defined class ExtMDerived1 is subclass of its parents MDerived1, Base1 and Base2.'''
+ '''Python defined class ExtMDerived1 is subclass of its parents
+ MDerived1, Base1 and Base2.'''
self.assertTrue(issubclass(ExtMDerived1, MDerived1))
self.assertTrue(issubclass(ExtMDerived1, Base1))
self.assertTrue(issubclass(ExtMDerived1, Base2))
@unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testCastFromMDerived1ToBases(self):
- '''MDerived1 is casted by C++ to its parents and the binding must return the MDerived1 wrapper.'''
+ '''MDerived1 is casted by C++ to its parents and the binding must return the
+ MDerived1 wrapper.'''
a = MDerived1()
refcnt = sys.getrefcount(a)
b1 = a.castToBase1()
@@ -107,7 +88,8 @@ class MultipleDerivedTest(unittest.TestCase):
@unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testCastFromExtMDerived1ToMDerived1Bases(self):
- '''Python defined class ExtMDerived1 is casted by C++ to MDerived1 parents and the binding must return the correct ExtMDerived1 instance.'''
+ '''Python defined class ExtMDerived1 is casted by C++ to MDerived1 parents
+ and the binding must return the correct ExtMDerived1 instance.'''
a = ExtMDerived1()
refcnt = sys.getrefcount(a)
b1 = a.castToBase1()
@@ -122,7 +104,8 @@ class MultipleDerivedTest(unittest.TestCase):
@unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testCastFromSonOfMDerived1ToBases(self):
- '''SonOfMDerived1 is casted by C++ to its parents and the binding must return the SonOfMDerived1 wrapper.'''
+ '''SonOfMDerived1 is casted by C++ to its parents and the binding must return
+ the SonOfMDerived1 wrapper.'''
a = SonOfMDerived1()
refcnt = sys.getrefcount(a)
md1 = a.castToMDerived1()
@@ -143,7 +126,8 @@ class MultipleDerivedTest(unittest.TestCase):
@unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testCastFromMDerived2ToBases(self):
- '''MDerived2 is casted by C++ to its parents and the binding must return the MDerived2 wrapper.'''
+ '''MDerived2 is casted by C++ to its parents and the binding must
+ return the MDerived2 wrapper.'''
a = MDerived2()
refcnt = sys.getrefcount(a)
b3 = a.castToBase3()
@@ -162,7 +146,8 @@ class MultipleDerivedTest(unittest.TestCase):
@unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testCastFromMDerived3ToBases(self):
- '''MDerived3 is casted by C++ to its parents and the binding must return the MDerived3 wrapper.'''
+ '''MDerived3 is casted by C++ to its parents and the binding must
+ return the MDerived3 wrapper.'''
a = MDerived3()
refcnt = sys.getrefcount(a)
md1 = a.castToMDerived1()
@@ -193,7 +178,8 @@ class MultipleDerivedTest(unittest.TestCase):
@unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testCastFromMDerived4ToBases(self):
- '''MDerived4 is casted by C++ to its parents and the binding must return the MDerived4 wrapper.'''
+ '''MDerived4 is casted by C++ to its parents and the binding must
+ return the MDerived4 wrapper.'''
a = MDerived4()
refcnt = sys.getrefcount(a)
b3 = a.castToBase3()
@@ -206,7 +192,8 @@ class MultipleDerivedTest(unittest.TestCase):
@unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testCastFromMDerived5ToBases(self):
- '''MDerived5 is casted by C++ to its parents and the binding must return the MDerived5 wrapper.'''
+ '''MDerived5 is casted by C++ to its parents and the binding must
+ return the MDerived5 wrapper.'''
a = MDerived5()
refcnt = sys.getrefcount(a)
b3 = a.castToBase3()
@@ -219,7 +206,8 @@ class MultipleDerivedTest(unittest.TestCase):
@unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testCastFromMDerived3ToBase3(self):
- '''MDerived3 is casted by C++ to Base3 grandparent using both the inherited and reimplement castToBase3 methods.'''
+ '''MDerived3 is casted by C++ to Base3 grandparent using both the inherited
+ and reimplement castToBase3 methods.'''
a = MDerived3()
refcnt = sys.getrefcount(a)
b3_reimplemented = a.castToBase3()
@@ -230,6 +218,6 @@ class MultipleDerivedTest(unittest.TestCase):
self.assertEqual(a, b3_inherited)
self.assertEqual(sys.getrefcount(a), refcnt + 2)
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/namespace_test.py b/sources/shiboken6/tests/samplebinding/namespace_test.py
index 3dc79fa96..64a6792ac 100644
--- a/sources/shiboken6/tests/samplebinding/namespace_test.py
+++ b/sources/shiboken6/tests/samplebinding/namespace_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for std::map container conversions'''
@@ -40,9 +13,10 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from shiboken_paths import init_paths
init_paths()
-from sample import *
+from sample import SampleNamespace
from shiboken_test_helper import objectFullname
+from shibokensupport.signature import get_signature
# For tests of invisible namespaces, see
# enumfromremovednamespace_test.py / removednamespaces.h
@@ -50,17 +24,17 @@ from shiboken_test_helper import objectFullname
class TestVariablesUnderNamespace(unittest.TestCase):
def testIt(self):
- self.assertEqual(SampleNamespace.variableInNamespace, 42)
+ self.assertEqual(SampleNamespace.variableInNamespace, 42)
class TestClassesUnderNamespace(unittest.TestCase):
def testIt(self):
- c1 = SampleNamespace.SomeClass()
- e1 = SampleNamespace.SomeClass.ProtectedEnum()
- c2 = SampleNamespace.SomeClass.SomeInnerClass()
- e2 = SampleNamespace.SomeClass.SomeInnerClass.ProtectedEnum()
- c3 = SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough()
- e3 = SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough.NiceEnum()
+ c1 = SampleNamespace.SomeClass() # noqa F841
+ e1 = SampleNamespace.SomeClass.ProtectedEnum() # noqa F841
+ c2 = SampleNamespace.SomeClass.SomeInnerClass() # noqa F841
+ e2 = SampleNamespace.SomeClass.SomeInnerClass.ProtectedEnum() # noqa F841
+ c3 = SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough() # noqa F841
+ e3 = SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough.NiceEnum(0) # noqa F841
def testFunctionAddedOnNamespace(self):
res = SampleNamespace.ImInsideANamespace(2, 2)
@@ -68,21 +42,26 @@ class TestClassesUnderNamespace(unittest.TestCase):
def testTpNames(self):
self.assertEqual(str(SampleNamespace.SomeClass),
- "<class 'sample.SampleNamespace.SomeClass'>")
+ "<class 'sample.SampleNamespace.SomeClass'>")
self.assertEqual(str(SampleNamespace.SomeClass.ProtectedEnum),
- "<class 'sample.SampleNamespace.SomeClass.ProtectedEnum'>")
+ "<enum 'ProtectedEnum'>")
self.assertEqual(str(SampleNamespace.SomeClass.SomeInnerClass.ProtectedEnum),
- "<class 'sample.SampleNamespace.SomeClass.SomeInnerClass.ProtectedEnum'>")
+ "<enum 'ProtectedEnum'>")
self.assertEqual(str(SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough),
- "<class 'sample.SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough'>")
- self.assertEqual(str(SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough.NiceEnum),
- "<class 'sample.SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough.NiceEnum'>")
+ "<class 'sample.SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough'>") # noqa: E501
+ self.assertEqual(str(SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough.NiceEnum), # noqa: E501
+ "<enum 'NiceEnum'>")
# Test if enum inside of class is correct represented
- self.assertEqual(objectFullname(SampleNamespace.enumInEnumOut.__signature__.parameters['in_'].annotation),
- "sample.SampleNamespace.InValue")
- self.assertEqual(objectFullname(SampleNamespace.enumAsInt.__signature__.parameters['value'].annotation),
- "sample.SampleNamespace.SomeClass.PublicScopedEnum")
+ an = objectFullname(get_signature(SampleNamespace.enumInEnumOut).parameters['in_'].annotation) # noqa: E501
+ self.assertEqual(an, "sample.SampleNamespace.InValue")
+ an = objectFullname(get_signature(SampleNamespace.enumAsInt).parameters['value'].annotation)
+ self.assertEqual(an, "sample.SampleNamespace.SomeClass.PublicScopedEnum")
+
+ def testInlineNamespaces(self):
+ cls = SampleNamespace.ClassWithinInlineNamespace()
+ cls.setValue(SampleNamespace.EWIN_Value1)
+ self.assertEqual(cls.value(), SampleNamespace.EWIN_Value1)
if __name__ == '__main__':
diff --git a/sources/shiboken6/tests/samplebinding/newdivision_test.py b/sources/shiboken6/tests/samplebinding/newdivision_test.py
index a9152f4a1..0e7dfbee1 100644
--- a/sources/shiboken6/tests/samplebinding/newdivision_test.py
+++ b/sources/shiboken6/tests/samplebinding/newdivision_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -35,16 +10,16 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from shiboken_paths import init_paths
init_paths()
-from sample import *
+from sample import Point
class TestNewDivision(unittest.TestCase):
def testIt(self):
p = Point(4, 4)
- p2 = p/2
+ p2 = p / 2
self.assertEqual(p2, Point(2, 2))
+
if __name__ == "__main__":
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/nondefaultctor_test.py b/sources/shiboken6/tests/samplebinding/nondefaultctor_test.py
index 31a51995e..bc8d29e50 100644
--- a/sources/shiboken6/tests/samplebinding/nondefaultctor_test.py
+++ b/sources/shiboken6/tests/samplebinding/nondefaultctor_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for ...'''
@@ -42,14 +15,17 @@ init_paths()
from sample import NonDefaultCtor
+
class DerivedNonDefaultCtor (NonDefaultCtor):
def returnMyselfVirtual(self):
- return NonDefaultCtor(self.value()+1)
+ return NonDefaultCtor(self.value() + 1)
+
class AnotherDerivedNonDefaultCtor (NonDefaultCtor):
def __init__(self, some_string):
pass
+
class NonDefaultCtorTest(unittest.TestCase):
def testNonDefaultCtor(self):
@@ -70,8 +46,8 @@ class NonDefaultCtorTest(unittest.TestCase):
self.assertEqual(c.callReturnMyselfVirtual().value(), 4)
def testCtorOverload(self):
- c = AnotherDerivedNonDefaultCtor("testing")
+ c = AnotherDerivedNonDefaultCtor("testing") # noqa: F841
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/nontypetemplate_test.py b/sources/shiboken6/tests/samplebinding/nontypetemplate_test.py
index b329f5672..a10547728 100644
--- a/sources/shiboken6/tests/samplebinding/nontypetemplate_test.py
+++ b/sources/shiboken6/tests/samplebinding/nontypetemplate_test.py
@@ -1,32 +1,6 @@
#!/usr/bin/env python
-#
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
hasNumPy = False
@@ -47,6 +21,7 @@ init_paths()
from sample import IntArray2, IntArray3
+
class NonTypeTemplateTest(unittest.TestCase):
def testNonTypeTemplate(self):
@@ -58,7 +33,7 @@ class NonTypeTemplateTest(unittest.TestCase):
def testArrayInitializer(self):
if not hasNumPy:
return
- array3 = IntArray3(numpy.array([1, 2, 3], dtype = 'int32'))
+ array3 = IntArray3(numpy.array([1, 2, 3], dtype='int32'))
self.assertEqual(array3.sum(), 6)
diff --git a/sources/shiboken6/tests/samplebinding/nonzero_test.py b/sources/shiboken6/tests/samplebinding/nonzero_test.py
index 16f675547..7be239fc4 100644
--- a/sources/shiboken6/tests/samplebinding/nonzero_test.py
+++ b/sources/shiboken6/tests/samplebinding/nonzero_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -40,6 +13,7 @@ init_paths()
from sample import Color, Brush
+
class TestNonZeroOperator(unittest.TestCase):
def testColor(self):
"""Color has a Qt-style isNull()"""
diff --git a/sources/shiboken6/tests/samplebinding/numericaltypedef_test.py b/sources/shiboken6/tests/samplebinding/numericaltypedef_test.py
index 5512a2de6..f714a4fc8 100644
--- a/sources/shiboken6/tests/samplebinding/numericaltypedef_test.py
+++ b/sources/shiboken6/tests/samplebinding/numericaltypedef_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -40,6 +13,7 @@ init_paths()
from sample import SizeF
+
class NumericalTypedefTest(unittest.TestCase):
def testNumericalTypedefExact(self):
@@ -59,5 +33,6 @@ class NumericalTypedefTest(unittest.TestCase):
self.assertEqual(SizeF.passTypedefOfUnsignedShort(321), 321)
self.assertNotEqual(SizeF.passTypedefOfUnsignedShort(123), 0)
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken6/tests/samplebinding/numpy_test.py b/sources/shiboken6/tests/samplebinding/numpy_test.py
index 61f8c7103..42094a463 100644
--- a/sources/shiboken6/tests/samplebinding/numpy_test.py
+++ b/sources/shiboken6/tests/samplebinding/numpy_test.py
@@ -1,39 +1,14 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import sys
try:
- from distutils import sysconfig
+ import sysconfig
if bool(sysconfig.get_config_var('Py_DEBUG')):
sys.exit(0)
import numpy
-except:
+except: # noqa: E722
sys.exit(0)
import os
@@ -46,6 +21,7 @@ from shiboken_paths import init_paths
init_paths()
from sample import PointF
+
class TestNumpyTypes(unittest.TestCase):
def testNumpyConverted(self):
@@ -60,6 +36,6 @@ class TestNumpyTypes(unittest.TestCase):
self.assertAlmostEqual(p.x(), x)
self.assertAlmostEqual(p.y(), y)
+
if __name__ == "__main__":
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/objecttype_test.py b/sources/shiboken6/tests/samplebinding/objecttype_test.py
index 58036a458..ead68ba13 100644
--- a/sources/shiboken6/tests/samplebinding/objecttype_test.py
+++ b/sources/shiboken6/tests/samplebinding/objecttype_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Tests ObjectType class of object-type with privates copy constructor and = operator.'''
@@ -95,7 +68,7 @@ class ObjectTypeTest(unittest.TestCase):
def testNextInFocusChainCycle(self):
parent = ObjectType()
child = ObjectType(parent)
- next_focus = child.nextInFocusChain()
+ next_focus = child.nextInFocusChain() # noqa: F841
Shiboken.invalidate(parent)
@@ -129,11 +102,9 @@ class ObjectTypeTest(unittest.TestCase):
def testInvalidProperty(self):
o = ObjectType()
- try:
+ with self.assertRaises(AttributeError):
o.typo
- self.assertFail()
- except AttributeError as error:
- self.assertEqual(error.args[0], "'sample.ObjectType' object has no attribute 'typo'")
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken6/tests/samplebinding/objecttype_with_named_args_test.py b/sources/shiboken6/tests/samplebinding/objecttype_with_named_args_test.py
index f9944e61b..285e2313b 100644
--- a/sources/shiboken6/tests/samplebinding/objecttype_with_named_args_test.py
+++ b/sources/shiboken6/tests/samplebinding/objecttype_with_named_args_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -40,6 +13,7 @@ init_paths()
from sample import ObjectType
+
class NamedArgsTest(unittest.TestCase):
def testOneArgument(self):
@@ -62,18 +36,15 @@ class NamedArgsTest(unittest.TestCase):
o.setObjectNameWithSize(size=6, name="pyside")
self.assertEqual(o.objectName(), "pyside")
-
def testUseDefaultValues(self):
o = ObjectType()
o.setObjectNameWithSize(size=3)
- self.assertEqual(o.objectName(), "<un") # use name='unknown' default argument
+ self.assertEqual(o.objectName(), "<un") # use name='unknown' default argument
o.setObjectSplittedName("")
- self.assertEqual(o.objectName(), "<unknown>") # user prefix='<unk' and suffix='nown>'
-
+ self.assertEqual(o.objectName(), "<unknown>") # user prefix='<unk' and suffix='nown>'
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/objecttypebyvalue_test.py b/sources/shiboken6/tests/samplebinding/objecttypebyvalue_test.py
index 52253f241..8f74af3ab 100644
--- a/sources/shiboken6/tests/samplebinding/objecttypebyvalue_test.py
+++ b/sources/shiboken6/tests/samplebinding/objecttypebyvalue_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -35,7 +10,7 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from shiboken_paths import init_paths
init_paths()
-from sample import *
+from sample import ObjectTypeByValue
class ObjectTypeByValueTest (unittest.TestCase):
@@ -47,5 +22,6 @@ class ObjectTypeByValueTest (unittest.TestCase):
# just to make sure it will segfault
obj.prop.protectedValueTypeProperty.setY(2.0)
+
if __name__ == "__main__":
unittest.main()
diff --git a/sources/shiboken6/tests/samplebinding/objecttypelayout_test.py b/sources/shiboken6/tests/samplebinding/objecttypelayout_test.py
index 10b2f0ca9..677b89281 100644
--- a/sources/shiboken6/tests/samplebinding/objecttypelayout_test.py
+++ b/sources/shiboken6/tests/samplebinding/objecttypelayout_test.py
@@ -1,36 +1,10 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Tests cases for ObjectTypeLayout class.'''
+import gc
import os
import sys
import unittest
@@ -40,7 +14,7 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from shiboken_paths import init_paths
init_paths()
-from sample import *
+from sample import ObjectType, ObjectTypeLayout
class ObjectTypeLayoutTest(unittest.TestCase):
@@ -48,16 +22,15 @@ class ObjectTypeLayoutTest(unittest.TestCase):
@unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testOwnershipOverride(self):
- l = ObjectTypeLayout()
+ lt = ObjectTypeLayout()
- o1 = ObjectType(l)
+ o1 = ObjectType(lt)
o1.setObjectName('o1')
self.assertEqual(sys.getrefcount(o1), 3)
- l.takeChild('o1')
+ lt.takeChild('o1')
self.assertEqual(sys.getrefcount(o1), 2)
-
def testSetNullLayout(self):
'''ObjectType.setLayout(0).'''
o2 = ObjectType()
@@ -83,7 +56,9 @@ class ObjectTypeLayoutTest(unittest.TestCase):
self.assertEqual(c3.parent(), None)
p1.setLayout(layout)
- del p1 # This must kill c1, c2 and c3
+ del p1 # This must kill c1, c2 and c3
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertRaises(RuntimeError, c1.objectName)
self.assertRaises(RuntimeError, c2.objectName)
@@ -105,7 +80,9 @@ class ObjectTypeLayoutTest(unittest.TestCase):
self.assertEqual(c3.parent(), None)
p1.setLayout(layout)
- del p1 # This must kill c1, c2 and c3
+ del p1 # This must kill c1, c2 and c3
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertRaises(RuntimeError, c1.objectName)
self.assertRaises(RuntimeError, c2.objectName)
@@ -113,7 +90,8 @@ class ObjectTypeLayoutTest(unittest.TestCase):
self.assertRaises(RuntimeError, layout.objectName)
def testObjectTypeLayoutTransference(self):
- '''Transfer a layout from one ObjectType to another, so that all the items in the layout get reparented.'''
+ '''Transfer a layout from one ObjectType to another, so that all the items in
+ the layout get reparented.'''
p1 = ObjectType()
p2 = ObjectType()
c1 = ObjectType()
@@ -165,6 +143,8 @@ class ObjectTypeLayoutTest(unittest.TestCase):
self.assertEqual(l2.parent(), l1)
del p1
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertRaises(RuntimeError, c1.objectName)
self.assertRaises(RuntimeError, c2.objectName)
@@ -174,7 +154,8 @@ class ObjectTypeLayoutTest(unittest.TestCase):
self.assertRaises(RuntimeError, l2.objectName)
def testObjectTypeLayoutInsideAnotherLayoutAndEveryoneCreatedInCpp(self):
- '''Adds one ObjectTypeLayout to another and sets the parent to an ObjectType. All the objects are created in C++.'''
+ '''Adds one ObjectTypeLayout to another and sets the parent to an ObjectType.
+ All the objects are created in C++.'''
p1 = ObjectType.create()
l1 = ObjectTypeLayout.create()
@@ -201,6 +182,8 @@ class ObjectTypeLayoutTest(unittest.TestCase):
self.assertEqual(l2.parent(), l1)
del p1
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertRaises(RuntimeError, c1.objectName)
self.assertRaises(RuntimeError, c2.objectName)
@@ -210,7 +193,8 @@ class ObjectTypeLayoutTest(unittest.TestCase):
self.assertRaises(RuntimeError, l2.objectName)
def testTransferNestedLayoutsBetweenObjects(self):
- '''Adds one ObjectTypeLayout to another, sets the parent to an ObjectType and then transfer it to another object.'''
+ '''Adds one ObjectTypeLayout to another, sets the parent to an ObjectType
+ and then transfer it to another object.'''
p1 = ObjectType()
p2 = ObjectType()
@@ -239,6 +223,8 @@ class ObjectTypeLayoutTest(unittest.TestCase):
p2.setLayout(l1)
del p1
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertEqual(c1.parent(), p2)
self.assertEqual(c2.parent(), p2)
@@ -248,6 +234,8 @@ class ObjectTypeLayoutTest(unittest.TestCase):
self.assertEqual(l2.parent(), l1)
del p2
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertRaises(RuntimeError, c1.objectName)
self.assertRaises(RuntimeError, c2.objectName)
@@ -257,8 +245,8 @@ class ObjectTypeLayoutTest(unittest.TestCase):
self.assertRaises(RuntimeError, l2.objectName)
def testTransferNestedLayoutsBetweenObjectsAndEveryoneCreatedInCpp(self):
- '''Adds one ObjectTypeLayout to another, sets the parent to an ObjectType and then transfer it to another object.
- All the objects are created in C++.'''
+ '''Adds one ObjectTypeLayout to another, sets the parent to an ObjectType and then
+ transfer it to another object. All the objects are created in C++.'''
p1 = ObjectType.create()
p2 = ObjectType.create()
@@ -287,6 +275,8 @@ class ObjectTypeLayoutTest(unittest.TestCase):
p2.setLayout(l1)
del p1
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertEqual(c1.parent(), p2)
self.assertEqual(c2.parent(), p2)
@@ -296,6 +286,8 @@ class ObjectTypeLayoutTest(unittest.TestCase):
self.assertEqual(l2.parent(), l1)
del p2
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertRaises(RuntimeError, c1.objectName)
self.assertRaises(RuntimeError, c2.objectName)
@@ -304,6 +296,6 @@ class ObjectTypeLayoutTest(unittest.TestCase):
self.assertRaises(RuntimeError, l1.objectName)
self.assertRaises(RuntimeError, l2.objectName)
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/objecttypeoperators_test.py b/sources/shiboken6/tests/samplebinding/objecttypeoperators_test.py
index a82c54b7e..ceeee6c8d 100644
--- a/sources/shiboken6/tests/samplebinding/objecttypeoperators_test.py
+++ b/sources/shiboken6/tests/samplebinding/objecttypeoperators_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -37,7 +10,8 @@ from pathlib import Path
sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from shiboken_paths import init_paths
init_paths()
-from sample import *
+from sample import ObjectTypeOperators
+
class ObjectTypeOperatorsTest(unittest.TestCase):
@@ -53,7 +27,7 @@ class ObjectTypeOperatorsTest(unittest.TestCase):
def testPointerOpeators(self):
a = ObjectTypeOperators("a")
- b = ObjectTypeOperators("b")
+ b = ObjectTypeOperators("b") # noqa: F841
self.assertEqual(a + "bc", "abc")
self.assertEqual("bc" + a, "bca")
self.assertEqual("a", a)
@@ -63,5 +37,6 @@ class ObjectTypeOperatorsTest(unittest.TestCase):
a = ObjectTypeOperators("a")
self.assertNotEqual(a, "b")
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken6/tests/samplebinding/objecttypereferenceasvirtualmethodargument_test.py b/sources/shiboken6/tests/samplebinding/objecttypereferenceasvirtualmethodargument_test.py
index cb270c69b..5fa6f824e 100644
--- a/sources/shiboken6/tests/samplebinding/objecttypereferenceasvirtualmethodargument_test.py
+++ b/sources/shiboken6/tests/samplebinding/objecttypereferenceasvirtualmethodargument_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -39,6 +12,7 @@ from shiboken_paths import init_paths
init_paths()
from sample import ObjectTypeHolder
+
class TestObjectTypeReferenceAsVirtualMethodArgument(unittest.TestCase):
def testBasic(self):
@@ -52,5 +26,6 @@ class TestObjectTypeReferenceAsVirtualMethodArgument(unittest.TestCase):
holder = Holder('TheObjectFromC++')
self.assertEqual(holder.callPassObjectTypeAsReference(), 'ThisIsTheObjectFromC++')
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken6/tests/samplebinding/oddbool_test.py b/sources/shiboken6/tests/samplebinding/oddbool_test.py
index a65b1228c..87a8cdb1f 100644
--- a/sources/shiboken6/tests/samplebinding/oddbool_test.py
+++ b/sources/shiboken6/tests/samplebinding/oddbool_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for OddBool user's primitive type conversion.'''
@@ -40,13 +13,15 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from shiboken_paths import init_paths
init_paths()
-from sample import OddBoolUser, ComparisonTester
+from sample import OddBoolUser, ComparisonTester, SpaceshipComparisonTester
+
class DerivedOddBoolUser (OddBoolUser):
def returnMyselfVirtual(self):
return OddBoolUser()
pass
+
class OddBoolTest(unittest.TestCase):
def testOddBoolUser(self):
@@ -57,13 +32,13 @@ class OddBoolTest(unittest.TestCase):
self.assertEqual(obuTrue.oddBool(), True)
self.assertEqual(obuTrue.callInvertedOddBool(), False)
- self.assertEqual(obuTrue.oddBool() == True, True)
- self.assertEqual(False == obuFalse.oddBool(), True)
- self.assertEqual(obuTrue.oddBool() == obuFalse.oddBool(), False)
+ self.assertTrue(obuTrue.oddBool())
+ self.assertFalse(obuFalse.oddBool())
+ self.assertTrue(obuTrue.oddBool() != obuFalse.oddBool())
- self.assertEqual(obuFalse.oddBool() != True, True)
- self.assertEqual(True != obuFalse.oddBool(), True)
- self.assertEqual(obuTrue.oddBool() != obuFalse.oddBool(), True)
+ self.assertFalse(obuFalse.oddBool())
+ self.assertFalse(obuFalse.oddBool())
+ self.assertTrue(obuTrue.oddBool() != obuFalse.oddBool())
def testVirtuals(self):
dobu = DerivedOddBoolUser()
@@ -86,6 +61,19 @@ class OddBoolTest(unittest.TestCase):
t2 = ComparisonTester(42)
self.assertEqual(t1, t2)
+ def testSpaceshipOperator(self):
+ if not SpaceshipComparisonTester.HasSpaceshipOperator:
+ print("Skipping Spaceship Operator test")
+ return
+ t1 = SpaceshipComparisonTester(42)
+ t2 = SpaceshipComparisonTester(42)
+ self.assertEqual(t1, t2)
+ self.assertTrue(t1 <= t2)
+ self.assertTrue(t1 >= t2)
+ t2 = SpaceshipComparisonTester(43)
+ self.assertTrue(t1 < t2)
+ self.assertFalse(t1 > t2)
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken6/tests/samplebinding/onlycopyclass_test.py b/sources/shiboken6/tests/samplebinding/onlycopyclass_test.py
index 65ec14cd7..bcb154c52 100644
--- a/sources/shiboken6/tests/samplebinding/onlycopyclass_test.py
+++ b/sources/shiboken6/tests/samplebinding/onlycopyclass_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -40,6 +13,7 @@ init_paths()
from sample import OnlyCopy, FriendOfOnlyCopy
+
class ClassWithOnlyCopyCtorTest(unittest.TestCase):
def testGetOne(self):
obj = FriendOfOnlyCopy.createOnlyCopy(123)
@@ -61,5 +35,6 @@ class ClassWithOnlyCopyCtorTest(unittest.TestCase):
obj = FriendOfOnlyCopy.createOnlyCopy(123)
self.assertEqual(obj.value(), OnlyCopy.getValueFromReference(obj))
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken6/tests/samplebinding/overflow_test.py b/sources/shiboken6/tests/samplebinding/overflow_test.py
index 5635eeed2..84442306a 100644
--- a/sources/shiboken6/tests/samplebinding/overflow_test.py
+++ b/sources/shiboken6/tests/samplebinding/overflow_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test case for overflowing C++ numeric types.'''
@@ -40,21 +13,29 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from shiboken_paths import init_paths
init_paths()
-from sample import *
+from sample import (Point, doubleLongLong, doubleShort, doubleUnsignedInt,
+ doubleUnsignedLongLong)
class OverflowTest(unittest.TestCase):
'''Test case for overflowing C++ numeric types.'''
+ def assertRaises(self, *args, **kwds):
+ if not hasattr(sys, "pypy_version_info"):
+ # PYSIDE-535: PyPy complains "Fatal RPython error: NotImplementedError"
+ return super().assertRaises(*args, **kwds)
+
def testUnsignedInt(self):
- '''C++ function receives an unsigned int argument and raise OverflowError if the value is negative.'''
+ '''C++ function receives an unsigned int argument and raise OverflowError
+ if the value is negative.'''
val = 100
self.assertEqual(doubleUnsignedInt(val), 2 * val)
val *= -1
self.assertRaises(OverflowError, doubleUnsignedInt, val)
def testLongLong(self):
- '''C++ function receives an long long argument and raise OverflowError if the value is negative.'''
+ '''C++ function receives an long long argument and raise OverflowError
+ if the value is negative.'''
val = 100
self.assertEqual(doubleLongLong(val), 2 * val)
val = int(100)
@@ -63,7 +44,8 @@ class OverflowTest(unittest.TestCase):
self.assertRaises(OverflowError, doubleLongLong, val)
def testUnsignedLongLong(self):
- '''C++ function receives an unsigned long long argument and raise OverflowError if the value is negative.'''
+ '''C++ function receives an unsigned long long argument and raise OverflowError
+ if the value is negative.'''
val = 100
self.assertEqual(doubleUnsignedLongLong(val), 2 * val)
val = int(100)
@@ -81,13 +63,13 @@ class OverflowTest(unittest.TestCase):
def testShortOverflow(self):
'''Calls function with short parameter using an overflowing value.'''
doubleShort(-3)
- self.assertRaises(OverflowError, doubleShort, 0xFFFF*-1)
+ self.assertRaises(OverflowError, doubleShort, 0xFFFF * -1)
self.assertRaises(OverflowError, doubleShort, 0xFFFF + 1)
def testOverflowOnCtor(self):
'''Calls object ctor with int parameter using overflowing values.'''
self.assertRaises(OverflowError, Point, 42415335332353253, 42415335332353253)
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/overload_sorting_test.py b/sources/shiboken6/tests/samplebinding/overload_sorting_test.py
index ff941e016..060d91510 100644
--- a/sources/shiboken6/tests/samplebinding/overload_sorting_test.py
+++ b/sources/shiboken6/tests/samplebinding/overload_sorting_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for overload sorting'''
@@ -40,11 +13,14 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from shiboken_paths import init_paths
init_paths()
-from sample import *
+from sample import (CustomOverloadSequence, ImplicitBase, ImplicitConv,
+ ImplicitTarget, SortedOverload)
+
class Dummy(object):
pass
+
class SimpleOverloadSorting(unittest.TestCase):
def setUp(self):
@@ -90,6 +66,7 @@ class DeepOverloadSorting(unittest.TestCase):
'''Deep Overload - (int, ImplicitBase *)'''
self.assertEqual(self.obj.overloadDeep(1, ImplicitBase()), "ImplicitBase")
+
class EnumOverIntSorting(unittest.TestCase):
def testEnumOverInt(self):
ic = ImplicitConv(ImplicitConv.CtorTwo)
diff --git a/sources/shiboken6/tests/samplebinding/overload_test.py b/sources/shiboken6/tests/samplebinding/overload_test.py
index 50f587eec..62fa8d8d2 100644
--- a/sources/shiboken6/tests/samplebinding/overload_test.py
+++ b/sources/shiboken6/tests/samplebinding/overload_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for Overload class'''
@@ -48,11 +21,10 @@ def raisesWithErrorMessage(func, arguments, errorType, errorMsg):
try:
func(*arguments)
return False
- except Exception as err:
- if type(err) != TypeError:
- return False
- if not errorMsg in str(err):
- return False
+ except TypeError as err:
+ return errorMsg in str(err)
+ except Exception:
+ return False
return True
@@ -205,12 +177,13 @@ class OverloadTest(unittest.TestCase):
def testAcceptSequencePyObject(self):
# Overload.acceptSequence(void*)
overload = Overload()
+
class Foo(object):
pass
+
foo = Foo()
self.assertEqual(overload.acceptSequence(foo), Overload.Function5)
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/overloadwithdefault_test.py b/sources/shiboken6/tests/samplebinding/overloadwithdefault_test.py
index 9d8b0aeab..269b97299 100644
--- a/sources/shiboken6/tests/samplebinding/overloadwithdefault_test.py
+++ b/sources/shiboken6/tests/samplebinding/overloadwithdefault_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -66,6 +39,6 @@ class OverloadTest(unittest.TestCase):
overload = Overload()
self.assertEqual(overload.strBufferOverloads(bytes('', "UTF-8"), 0), Overload.Function1)
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/ownership_argument_invalidation_test.py b/sources/shiboken6/tests/samplebinding/ownership_argument_invalidation_test.py
index 3b5ae5c8e..8a55d3ab8 100644
--- a/sources/shiboken6/tests/samplebinding/ownership_argument_invalidation_test.py
+++ b/sources/shiboken6/tests/samplebinding/ownership_argument_invalidation_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Wrapper validity tests for arguments.'''
@@ -42,6 +15,7 @@ init_paths()
from sample import Polygon, Point
+
class WrapperValidityOfArgumentsTest(unittest.TestCase):
'''Wrapper validity tests for arguments.'''
@@ -52,17 +26,19 @@ class WrapperValidityOfArgumentsTest(unittest.TestCase):
self.assertRaises(RuntimeError, Polygon.doublePolygonScale, poly)
def testInvalidArgumentToConstructor(self):
- '''Call to constructor using invalidated Python wrapper as argument should raise RuntimeError.'''
+ '''Call to constructor using invalidated Python wrapper as argument
+ should raise RuntimeError.'''
pt = Point(1, 2)
Polygon.stealOwnershipFromPython(pt)
self.assertRaises(RuntimeError, Polygon, pt)
def testInvalidArgumentWithImplicitConversion(self):
- '''Call to method using invalidated Python wrapper to be implicitly converted should raise RuntimeError.'''
+ '''Call to method using invalidated Python wrapper to be implicitly converted
+ should raise RuntimeError.'''
pt = Point(1, 2)
Polygon.stealOwnershipFromPython(pt)
self.assertRaises(RuntimeError, Polygon.doublePolygonScale, pt)
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/ownership_delete_child_in_cpp_test.py b/sources/shiboken6/tests/samplebinding/ownership_delete_child_in_cpp_test.py
index be010c84b..25c6fea26 100644
--- a/sources/shiboken6/tests/samplebinding/ownership_delete_child_in_cpp_test.py
+++ b/sources/shiboken6/tests/samplebinding/ownership_delete_child_in_cpp_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Tests for destroy a child object in C++'''
@@ -57,5 +30,6 @@ class DeleteChildInCpp(unittest.TestCase):
self.assertRaises(RuntimeError, child.objectName)
self.assertEqual(parent.objectName(), 'parent')
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken6/tests/samplebinding/ownership_delete_child_in_python_test.py b/sources/shiboken6/tests/samplebinding/ownership_delete_child_in_python_test.py
index 10535f272..3ae186815 100644
--- a/sources/shiboken6/tests/samplebinding/ownership_delete_child_in_python_test.py
+++ b/sources/shiboken6/tests/samplebinding/ownership_delete_child_in_python_test.py
@@ -1,36 +1,10 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Tests for deleting a child object in python'''
+import gc
import os
import random
import string
@@ -56,8 +30,11 @@ class DeleteChildInPython(unittest.TestCase):
child.setObjectName(name)
del child
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
new_child = parent.children()[0]
self.assertEqual(new_child.objectName(), name)
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken6/tests/samplebinding/ownership_delete_parent_test.py b/sources/shiboken6/tests/samplebinding/ownership_delete_parent_test.py
index 310bf08ee..8f654639c 100644
--- a/sources/shiboken6/tests/samplebinding/ownership_delete_parent_test.py
+++ b/sources/shiboken6/tests/samplebinding/ownership_delete_parent_test.py
@@ -1,36 +1,10 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Tests for destroying the parent'''
+import gc
import os
import sys
import unittest
@@ -56,8 +30,10 @@ class DeleteParentTest(unittest.TestCase):
refcount_before = sys.getrefcount(child)
del parent
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertRaises(RuntimeError, child.objectName)
- self.assertEqual(sys.getrefcount(child), refcount_before-1)
+ self.assertEqual(sys.getrefcount(child), refcount_before - 1)
@unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testParentDestructorMultipleChildren(self):
@@ -69,6 +45,8 @@ class DeleteParentTest(unittest.TestCase):
child.setParent(parent)
del parent
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
for i, child in enumerate(children):
self.assertRaises(RuntimeError, child.objectName)
self.assertEqual(sys.getrefcount(child), 4)
@@ -81,6 +59,8 @@ class DeleteParentTest(unittest.TestCase):
grandchild = ObjectType(child)
del parent
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertRaises(RuntimeError, child.objectName)
self.assertEqual(sys.getrefcount(child), 2)
self.assertRaises(RuntimeError, grandchild.objectName)
diff --git a/sources/shiboken6/tests/samplebinding/ownership_invalidate_after_use_test.py b/sources/shiboken6/tests/samplebinding/ownership_invalidate_after_use_test.py
index e4a59426e..37b7591e4 100644
--- a/sources/shiboken6/tests/samplebinding/ownership_invalidate_after_use_test.py
+++ b/sources/shiboken6/tests/samplebinding/ownership_invalidate_after_use_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Ownership tests for cases of invalidation of Python wrapper after use.'''
@@ -48,11 +21,13 @@ class ExtObjectType(ObjectType):
ObjectType.__init__(self)
self.type_of_last_event = None
self.last_event = None
+
def event(self, event):
self.last_event = event
self.type_of_last_event = event.eventType()
return True
+
class MyObjectType (ObjectType):
def __init__(self):
super(MyObjectType, self).__init__()
@@ -62,7 +37,7 @@ class MyObjectType (ObjectType):
self.callInvalidateEvent(ev)
try:
ev.eventType()
- except:
+ except: # noqa: E722
self.fail = True
raise
return True
@@ -70,21 +45,25 @@ class MyObjectType (ObjectType):
def invalidateEvent(self, ev):
pass
+
class ExtObjectTypeDerived(ObjectTypeDerived):
def __init__(self):
ObjectTypeDerived.__init__(self)
self.type_of_last_event = None
self.last_event = None
+
def event(self, event):
self.last_event = event
self.type_of_last_event = event.eventType()
return True
+
class OwnershipInvalidateAfterUseTest(unittest.TestCase):
'''Ownership tests for cases of invalidation of Python wrapper after use.'''
def testInvalidateAfterUse(self):
- '''In ObjectType.event(Event*) the wrapper object created for Event must me marked as invalid after the method is called.'''
+ '''In ObjectType.event(Event*) the wrapper object created for Event
+ must me marked as invalid after the method is called.'''
eot = ExtObjectType()
eot.causeEvent(Event.SOME_EVENT)
self.assertEqual(eot.type_of_last_event, Event.SOME_EVENT)
@@ -111,6 +90,6 @@ class OwnershipInvalidateAfterUseTest(unittest.TestCase):
self.assertEqual(eot.type_of_last_event, Event.SOME_EVENT)
self.assertRaises(RuntimeError, eot.last_event.eventType)
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/ownership_invalidate_child_test.py b/sources/shiboken6/tests/samplebinding/ownership_invalidate_child_test.py
index 6ffa6629b..77b7c576c 100644
--- a/sources/shiboken6/tests/samplebinding/ownership_invalidate_child_test.py
+++ b/sources/shiboken6/tests/samplebinding/ownership_invalidate_child_test.py
@@ -1,36 +1,10 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Tests for invalidating a C++ created child that was already on the care of a parent.'''
+import gc
import os
import sys
import unittest
@@ -67,10 +41,14 @@ class InvalidateChildTest(unittest.TestCase):
self.assertEqual(parent.children(), [])
del parent
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
+ # PYSIDE-535: Why do I need to do it twice, here?
+ gc.collect()
self.assertEqual(child1.objectName(), 'child1')
self.assertRaises(RuntimeError, child2.objectName)
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/ownership_invalidate_nonpolymorphic_test.py b/sources/shiboken6/tests/samplebinding/ownership_invalidate_nonpolymorphic_test.py
index efc3afd38..8cbefc30c 100644
--- a/sources/shiboken6/tests/samplebinding/ownership_invalidate_nonpolymorphic_test.py
+++ b/sources/shiboken6/tests/samplebinding/ownership_invalidate_nonpolymorphic_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''The BlackBox class has cases of ownership transference between Python and C++.'''
@@ -42,6 +15,7 @@ init_paths()
from sample import Point, BlackBox
+
class OwnershipInvalidateNonPolymorphicTest(unittest.TestCase):
'''The BlackBox class has cases of ownership transference between Python and C++.'''
@@ -54,6 +28,6 @@ class OwnershipInvalidateNonPolymorphicTest(unittest.TestCase):
p1_ret = bb.retrievePoint(p1_ticket)
self.assertEqual(p1_ret, Point(10, 20))
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/ownership_invalidate_parent_test.py b/sources/shiboken6/tests/samplebinding/ownership_invalidate_parent_test.py
index d34eeedd2..c721a212c 100644
--- a/sources/shiboken6/tests/samplebinding/ownership_invalidate_parent_test.py
+++ b/sources/shiboken6/tests/samplebinding/ownership_invalidate_parent_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Tests for invalidating a parent of other objects.'''
@@ -61,7 +34,7 @@ class InvalidateParentTest(unittest.TestCase):
grandchild2.setParent(child2)
bbox = BlackBox()
- bbox.keepObjectType(parent) # Should invalidate the parent
+ bbox.keepObjectType(parent) # Should invalidate the parent
self.assertRaises(RuntimeError, parent.objectName)
# some children still valid they are wrapper classes
@@ -70,6 +43,6 @@ class InvalidateParentTest(unittest.TestCase):
self.assertEqual(grandchild1.objectName(), "grandchild1")
self.assertRaises(RuntimeError, grandchild2.objectName)
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/ownership_reparenting_test.py b/sources/shiboken6/tests/samplebinding/ownership_reparenting_test.py
index 0a5718429..304223063 100644
--- a/sources/shiboken6/tests/samplebinding/ownership_reparenting_test.py
+++ b/sources/shiboken6/tests/samplebinding/ownership_reparenting_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Tests for object reparenting.'''
@@ -43,6 +16,7 @@ import sys
from sample import ObjectType
+
class ExtObjectType(ObjectType):
def __init__(self):
ObjectType.__init__(self)
@@ -135,4 +109,3 @@ class ReparentingTest(unittest.TestCase):
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/ownership_transference_test.py b/sources/shiboken6/tests/samplebinding/ownership_transference_test.py
index 9d9492e29..0e9f08b72 100644
--- a/sources/shiboken6/tests/samplebinding/ownership_transference_test.py
+++ b/sources/shiboken6/tests/samplebinding/ownership_transference_test.py
@@ -1,36 +1,10 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''The BlackBox class has cases of ownership transference between C++ and Python.'''
+import gc
import os
import sys
import unittest
@@ -42,6 +16,7 @@ init_paths()
from sample import ObjectType, BlackBox
+
class BlackBoxTest(unittest.TestCase):
'''The BlackBox class has cases of ownership transference between C++ and Python.'''
@@ -55,16 +30,19 @@ class BlackBoxTest(unittest.TestCase):
o2.setObjectName('object2')
o2_refcnt = sys.getrefcount(o2)
bb = BlackBox()
- o1_ticket = bb.keepObjectType(o1)
+ o1_ticket = bb.keepObjectType(o1) # noqa: F841
o2_ticket = bb.keepObjectType(o2)
self.assertEqual(set(bb.objects()), set([o1, o2]))
self.assertEqual(str(o1.objectName()), 'object1')
self.assertEqual(str(o2.objectName()), 'object2')
- self.assertEqual(sys.getrefcount(o1), o1_refcnt + 1) # PySide give +1 ref to object with c++ ownership
+ # PySide give +1 ref to object with c++ ownership
+ self.assertEqual(sys.getrefcount(o1), o1_refcnt + 1)
self.assertEqual(sys.getrefcount(o2), o2_refcnt + 1)
o2 = bb.retrieveObjectType(o2_ticket)
self.assertEqual(sys.getrefcount(o2), o2_refcnt)
del bb
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertRaises(RuntimeError, o1.objectName)
self.assertEqual(str(o2.objectName()), 'object2')
self.assertEqual(sys.getrefcount(o2), o2_refcnt)
@@ -72,9 +50,9 @@ class BlackBoxTest(unittest.TestCase):
def testBlackBoxReleasingUnknownObjectType(self):
'''Asks BlackBox to release an unknown ObjectType.'''
o1 = ObjectType()
- o2 = ObjectType()
+ o2 = ObjectType() # noqa: F841
bb = BlackBox()
- o1_ticket = bb.keepObjectType(o1)
+ o1_ticket = bb.keepObjectType(o1) # noqa: F841
o3 = bb.retrieveObjectType(-5)
self.assertEqual(o3, None)
@@ -83,11 +61,11 @@ class BlackBoxTest(unittest.TestCase):
'''Ownership transference using a C++ created object.'''
o1 = ObjectType.create()
o1.setObjectName('object1')
- o1_refcnt = sys.getrefcount(o1)
+ o1_refcnt = sys.getrefcount(o1) # noqa: F841
bb = BlackBox()
- o1_ticket = bb.keepObjectType(o1)
+ o1_ticket = bb.keepObjectType(o1) # noqa: F841
self.assertRaises(RuntimeError, o1.objectName)
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/pair_test.py b/sources/shiboken6/tests/samplebinding/pair_test.py
index 559f15ba2..4bd5c697c 100644
--- a/sources/shiboken6/tests/samplebinding/pair_test.py
+++ b/sources/shiboken6/tests/samplebinding/pair_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for std::pair container conversions'''
@@ -42,6 +15,7 @@ init_paths()
from sample import PairUser
+
class ExtendedPairUser(PairUser):
def __init__(self):
PairUser.__init__(self)
@@ -51,6 +25,7 @@ class ExtendedPairUser(PairUser):
self.create_pair_called = True
return (7, 13)
+
class PairConversionTest(unittest.TestCase):
'''Test case for std::pair container conversions'''
@@ -75,14 +50,16 @@ class PairConversionTest(unittest.TestCase):
self.assertEqual(cp, (cpx0, cpx1))
def testSumPair(self):
- '''Test method that sums the items of a pair using values of the types expected by C++ (int and double)'''
+ '''Test method that sums the items of a pair using values of the types
+ expected by C++ (int and double)'''
pu = PairUser()
pair = (3, 7.13)
result = pu.sumPair(pair)
self.assertEqual(result, sum(pair))
def testSumPairDifferentTypes(self):
- '''Test method that sums the items of a pair using values of types different from the ones expected by C++ (int and double)'''
+ '''Test method that sums the items of a pair using values of types different
+ from the ones expected by C++ (int and double)'''
pu = PairUser()
pair = (3.3, 7)
result = pu.sumPair(pair)
@@ -98,7 +75,8 @@ class PairConversionTest(unittest.TestCase):
self.assertEqual(result, pair)
def testConversionInBothDirectionsWithSimilarContainer(self):
- '''Test converting a list, instead of the expected tuple, from Python to C++ and the other way around.'''
+ '''Test converting a list, instead of the expected tuple, from Python to C++
+ and the other way around.'''
pu = PairUser()
pair = [3, 5]
pu.setPair(pair)
@@ -106,6 +84,6 @@ class PairConversionTest(unittest.TestCase):
self.assertNotEqual(result, pair)
self.assertEqual(result, tuple(pair))
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/pen_test.py b/sources/shiboken6/tests/samplebinding/pen_test.py
index 9cd1be2f6..106f3bd61 100644
--- a/sources/shiboken6/tests/samplebinding/pen_test.py
+++ b/sources/shiboken6/tests/samplebinding/pen_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for <add-function> with const char* as argument'''
@@ -42,6 +15,7 @@ init_paths()
from sample import Color, Pen, SampleNamespace
+
class TestPen(unittest.TestCase):
'''Simple test case for Pen.'''
diff --git a/sources/shiboken6/tests/samplebinding/point_test.py b/sources/shiboken6/tests/samplebinding/point_test.py
index 457df0c16..f86c0f423 100644
--- a/sources/shiboken6/tests/samplebinding/point_test.py
+++ b/sources/shiboken6/tests/samplebinding/point_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for Point class'''
@@ -42,9 +15,15 @@ init_paths()
from sample import Point
+
class PointTest(unittest.TestCase):
'''Test case for Point class, including operator overloads.'''
+ def assertRaises(self, *args, **kwds):
+ if not hasattr(sys, "pypy_version_info"):
+ # PYSIDE-535: PyPy complains "Fatal RPython error: NotImplementedError"
+ return super().assertRaises(*args, **kwds)
+
def testConstructor(self):
'''Test Point class constructor.'''
pt = Point(5.0, 2.3)
@@ -114,5 +93,6 @@ class PointTest(unittest.TestCase):
expected = Point((pt1.x() + pt2.x()) / 2.0, (pt1.y() + pt2.y()) / 2.0)
self.assertEqual(pt1.midpoint(pt2), expected)
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken6/tests/samplebinding/pointerholder_test.py b/sources/shiboken6/tests/samplebinding/pointerholder_test.py
index d34ee7355..633525a9c 100644
--- a/sources/shiboken6/tests/samplebinding/pointerholder_test.py
+++ b/sources/shiboken6/tests/samplebinding/pointerholder_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for a class that holds an arbitraty pointer and is modified to hold an PyObject.'''
@@ -42,8 +15,10 @@ init_paths()
from sample import PointerHolder
+
class TestPointerHolder(unittest.TestCase):
- '''Test cases for a class that holds an arbitraty pointer and is modified to hold an PyObject.'''
+ '''Test cases for a class that holds an arbitraty pointer and
+ is modified to hold an PyObject.'''
def testStoringAndRetrievingPointer(self):
ph = PointerHolder('Hello')
@@ -58,9 +33,9 @@ class TestPointerHolder(unittest.TestCase):
a = (1, 2, 3)
refcnt = sys.getrefcount(a)
ph = PointerHolder(a)
- ptr = ph.pointer()
+ ptr = ph.pointer() # noqa: F841
self.assertEqual(sys.getrefcount(a), refcnt + 1)
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/pointerprimitivetype_test.py b/sources/shiboken6/tests/samplebinding/pointerprimitivetype_test.py
index ad3bd899a..4da1a89c6 100644
--- a/sources/shiboken6/tests/samplebinding/pointerprimitivetype_test.py
+++ b/sources/shiboken6/tests/samplebinding/pointerprimitivetype_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
"""
pointerprimitivetype_test.py
@@ -54,8 +27,8 @@ from shiboken_paths import init_paths
init_paths()
from sample import IntArray2, VirtualMethods
-import shiboken6
-_init_pyside_extension() # trigger init, which does not happen in tests
+from shibokensupport.signature import get_signature
+
import typing
@@ -64,7 +37,7 @@ class PointerPrimitiveTypeTest(unittest.TestCase):
def testArraySignature(self):
# signature="IntArray2(const int*)"
found = False
- for sig in IntArray2.__signature__:
+ for sig in get_signature(IntArray2):
if "data" in sig.parameters:
found = True
break
@@ -75,7 +48,7 @@ class PointerPrimitiveTypeTest(unittest.TestCase):
def testReturnVarSignature(self):
# signature="getMargins(int*,int*,int*,int*)const">
- ann = VirtualMethods.getMargins.__signature__.return_annotation
+ ann = get_signature(VirtualMethods.getMargins).return_annotation
self.assertEqual(ann, typing.Tuple[int, int, int, int])
diff --git a/sources/shiboken6/tests/samplebinding/pointf_test.py b/sources/shiboken6/tests/samplebinding/pointf_test.py
index 3b8285b0b..91c58eb1d 100644
--- a/sources/shiboken6/tests/samplebinding/pointf_test.py
+++ b/sources/shiboken6/tests/samplebinding/pointf_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for PointF class'''
@@ -42,6 +15,7 @@ init_paths()
from sample import PointF
+
class PointFTest(unittest.TestCase):
'''Test case for PointF class, including operator overloads.'''
@@ -72,5 +46,6 @@ class PointFTest(unittest.TestCase):
expected = PointF((pt1.x() + pt2.x()) / 2.0, (pt1.y() + pt2.y()) / 2.0)
self.assertEqual(pt1.midpoint(pt2), expected)
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken6/tests/samplebinding/primitivereferenceargument_test.py b/sources/shiboken6/tests/samplebinding/primitivereferenceargument_test.py
index 26dd3046b..0b9fe2249 100644
--- a/sources/shiboken6/tests/samplebinding/primitivereferenceargument_test.py
+++ b/sources/shiboken6/tests/samplebinding/primitivereferenceargument_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -39,12 +12,17 @@ from shiboken_paths import init_paths
init_paths()
import sample
+
class PrimitiveReferenceArgumentTest(unittest.TestCase):
def testIntReferenceArgument(self):
'''C++ signature: int acceptIntReference(int&)'''
self.assertEqual(sample.acceptIntReference(123), 123)
+ def testIntReturnPtr(self):
+ '''C++ signature: const int *acceptIntReturnPtr(int x)'''
+ self.assertEqual(sample.acceptIntReturnPtr(123), 123)
+
def testOddBoolReferenceArgument(self):
'''C++ signature: OddBool acceptOddBoolReference(OddBool&)'''
self.assertEqual(sample.acceptOddBoolReference(True), True)
@@ -52,5 +30,6 @@ class PrimitiveReferenceArgumentTest(unittest.TestCase):
self.assertNotEqual(sample.acceptOddBoolReference(True), False)
self.assertNotEqual(sample.acceptOddBoolReference(False), True)
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken6/tests/samplebinding/privatector_test.py b/sources/shiboken6/tests/samplebinding/privatector_test.py
index b06c65944..63040388d 100644
--- a/sources/shiboken6/tests/samplebinding/privatector_test.py
+++ b/sources/shiboken6/tests/samplebinding/privatector_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for a class with only a private constructor.'''
@@ -47,6 +20,11 @@ from sample import PrivateCtor
class PrivateCtorTest(unittest.TestCase):
'''Test case for PrivateCtor class'''
+ def assertRaises(self, *args, **kwds):
+ if not hasattr(sys, "pypy_version_info"):
+ # PYSIDE-535: PyPy complains "Fatal RPython error: NotImplementedError"
+ return super().assertRaises(*args, **kwds)
+
def testPrivateCtorInstanciation(self):
'''Test if instanciation of class with a private constructor raises an exception.'''
self.assertRaises(TypeError, PrivateCtor)
@@ -86,6 +64,6 @@ class PrivateCtorTest(unittest.TestCase):
self.assertEqual(pd3.instanceCalls(), calls + 2)
self.assertEqual(sys.getrefcount(pd3), refcnt)
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/privatedtor_test.py b/sources/shiboken6/tests/samplebinding/privatedtor_test.py
index 2f3b28069..651f63b15 100644
--- a/sources/shiboken6/tests/samplebinding/privatedtor_test.py
+++ b/sources/shiboken6/tests/samplebinding/privatedtor_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for a class with a private destructor.'''
@@ -48,6 +21,11 @@ from sample import PrivateDtor
class PrivateDtorTest(unittest.TestCase):
'''Test case for PrivateDtor class'''
+ def assertRaises(self, *args, **kwds):
+ if not hasattr(sys, "pypy_version_info"):
+ # PYSIDE-535: PyPy complains "Fatal RPython error: NotImplementedError"
+ return super().assertRaises(*args, **kwds)
+
def testPrivateDtorInstanciation(self):
'''Test if instanciation of class with a private destructor raises an exception.'''
self.assertRaises(TypeError, PrivateDtor)
@@ -102,6 +80,6 @@ class PrivateDtorTest(unittest.TestCase):
self.assertLess(abs(before - after), 5)
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/protected_test.py b/sources/shiboken6/tests/samplebinding/protected_test.py
index 096eb615d..e4ccf721d 100644
--- a/sources/shiboken6/tests/samplebinding/protected_test.py
+++ b/sources/shiboken6/tests/samplebinding/protected_test.py
@@ -1,36 +1,10 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for protected methods.'''
+import gc
import os
import sys
import unittest
@@ -42,46 +16,57 @@ init_paths()
from sample import cacheSize
from sample import ProtectedNonPolymorphic, ProtectedVirtualDestructor
-from sample import ProtectedPolymorphic, ProtectedPolymorphicDaughter, ProtectedPolymorphicGrandDaughter
+from sample import (ProtectedPolymorphic, ProtectedPolymorphicDaughter,
+ ProtectedPolymorphicGrandDaughter)
from sample import createProtectedProperty, ProtectedProperty, ProtectedEnumClass
from sample import PrivateDtor
from sample import Event, ObjectType, Point
+
class ExtendedProtectedPolymorphic(ProtectedPolymorphic):
def __init__(self, name):
ProtectedPolymorphic.__init__(self, name)
self.protectedName_called = False
+
def protectedName(self):
self.protectedName_called = True
self._name = 'Extended' + ProtectedPolymorphic.protectedName(self)
return self._name
+
class ExtendedProtectedPolymorphicDaughter(ProtectedPolymorphicDaughter):
def __init__(self, name):
self.protectedName_called = False
ProtectedPolymorphicDaughter.__init__(self, name)
+
def protectedName(self):
self.protectedName_called = True
self._name = 'ExtendedDaughter' + ProtectedPolymorphicDaughter.protectedName(self)
return self._name
+
class ExtendedProtectedPolymorphicGrandDaughter(ProtectedPolymorphicGrandDaughter):
def __init__(self, name):
self.protectedName_called = False
ProtectedPolymorphicGrandDaughter.__init__(self, name)
+
def protectedName(self):
self.protectedName_called = True
self._name = 'ExtendedGrandDaughter' + ProtectedPolymorphicGrandDaughter.protectedName(self)
return self._name
+
class ExtendedProtectedVirtualDestructor(ProtectedVirtualDestructor):
def __init__(self):
ProtectedVirtualDestructor.__init__(self)
+
class ProtectedNonPolymorphicTest(unittest.TestCase):
'''Test cases for protected method in a class without virtual methods.'''
def tearDown(self):
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertEqual(cacheSize(), 0)
def testProtectedCall(self):
@@ -105,10 +90,13 @@ class ProtectedNonPolymorphicTest(unittest.TestCase):
self.assertEqual(p.dataTypeName(1), 'integer')
self.assertEqual(p.dataTypeName(Point(1, 2)), 'pointer')
+
class ProtectedPolymorphicTest(unittest.TestCase):
'''Test cases for protected method in a class with virtual methods.'''
def tearDown(self):
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertEqual(cacheSize(), 0)
def testProtectedCall(self):
@@ -132,6 +120,8 @@ class ProtectedPolymorphicTest(unittest.TestCase):
self.assertTrue(p.protectedName_called)
self.assertEqual(p.protectedName(), name)
self.assertEqual(ProtectedPolymorphic.protectedName(p), original_name)
+
+
class ProtectedPolymorphicDaugherTest(unittest.TestCase):
'''Test cases for protected method in a class inheriting for a class with virtual methods.'''
@@ -156,6 +146,8 @@ class ProtectedPolymorphicGrandDaugherTest(unittest.TestCase):
another with protected virtual methods.'''
def tearDown(self):
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertEqual(cacheSize(), 0)
def testProtectedCallWithInstanceCreatedOnCpp(self):
@@ -173,6 +165,7 @@ class ProtectedPolymorphicGrandDaugherTest(unittest.TestCase):
self.assertEqual(p.protectedName(), name)
self.assertEqual(ProtectedPolymorphicGrandDaughter.protectedName(p), original_name)
+
class ProtectedVirtualDtorTest(unittest.TestCase):
'''Test cases for protected virtual destructor.'''
@@ -180,6 +173,8 @@ class ProtectedVirtualDtorTest(unittest.TestCase):
ProtectedVirtualDestructor.resetDtorCounter()
def tearDown(self):
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertEqual(cacheSize(), 0)
def testVirtualProtectedDtor(self):
@@ -187,7 +182,11 @@ class ProtectedVirtualDtorTest(unittest.TestCase):
dtor_called = ProtectedVirtualDestructor.dtorCalled()
for i in range(1, 10):
pvd = ProtectedVirtualDestructor()
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
del pvd
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertEqual(ProtectedVirtualDestructor.dtorCalled(), dtor_called + i)
def testVirtualProtectedDtorOnCppCreatedObject(self):
@@ -196,6 +195,8 @@ class ProtectedVirtualDtorTest(unittest.TestCase):
for i in range(1, 10):
pvd = ProtectedVirtualDestructor.create()
del pvd
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertEqual(ProtectedVirtualDestructor.dtorCalled(), dtor_called + i)
def testProtectedDtorOnDerivedClass(self):
@@ -204,25 +205,32 @@ class ProtectedVirtualDtorTest(unittest.TestCase):
for i in range(1, 10):
pvd = ExtendedProtectedVirtualDestructor()
del pvd
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertEqual(ExtendedProtectedVirtualDestructor.dtorCalled(), dtor_called + i)
class ExtendedProtectedEnumClass(ProtectedEnumClass):
def __init__(self):
ProtectedEnumClass.__init__(self)
+
def protectedEnumMethod(self, value):
if value == ProtectedEnumClass.ProtectedItem0:
return ProtectedEnumClass.ProtectedItem1
return ProtectedEnumClass.ProtectedItem0
+
def publicEnumMethod(self, value):
if value == ProtectedEnumClass.PublicItem0:
return ProtectedEnumClass.PublicItem1
return ProtectedEnumClass.PublicItem0
+
class ProtectedEnumTest(unittest.TestCase):
'''Test cases for protected enum.'''
def tearDown(self):
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertEqual(cacheSize(), 0)
def testProtectedMethodWithProtectedEnumArgument(self):
@@ -231,47 +239,66 @@ class ProtectedEnumTest(unittest.TestCase):
self.assertEqual(type(ProtectedEnumClass.ProtectedItem0), ProtectedEnumClass.ProtectedEnum)
- self.assertEqual(obj.protectedEnumMethod(ProtectedEnumClass.ProtectedItem0), ProtectedEnumClass.ProtectedItem0)
- self.assertEqual(obj.protectedEnumMethod(ProtectedEnumClass.ProtectedItem1), ProtectedEnumClass.ProtectedItem1)
-
- self.assertEqual(obj.callProtectedEnumMethod(ProtectedEnumClass.ProtectedItem0), ProtectedEnumClass.ProtectedItem0)
- self.assertEqual(obj.callProtectedEnumMethod(ProtectedEnumClass.ProtectedItem1), ProtectedEnumClass.ProtectedItem1)
+ self.assertEqual(obj.protectedEnumMethod(ProtectedEnumClass.ProtectedItem0),
+ ProtectedEnumClass.ProtectedItem0)
+ self.assertEqual(obj.protectedEnumMethod(ProtectedEnumClass.ProtectedItem1),
+ ProtectedEnumClass.ProtectedItem1)
+ self.assertEqual(obj.callProtectedEnumMethod(ProtectedEnumClass.ProtectedItem0),
+ ProtectedEnumClass.ProtectedItem0)
+ self.assertEqual(obj.callProtectedEnumMethod(ProtectedEnumClass.ProtectedItem1),
+ ProtectedEnumClass.ProtectedItem1)
def testProtectedMethodWithPublicEnumArgument(self):
'''Calls protected method with public enum argument.'''
obj = ProtectedEnumClass()
- self.assertEqual(obj.publicEnumMethod(ProtectedEnumClass.PublicItem0), ProtectedEnumClass.PublicItem0)
- self.assertEqual(obj.publicEnumMethod(ProtectedEnumClass.PublicItem1), ProtectedEnumClass.PublicItem1)
+ self.assertEqual(obj.publicEnumMethod(ProtectedEnumClass.PublicItem0),
+ ProtectedEnumClass.PublicItem0)
+ self.assertEqual(obj.publicEnumMethod(ProtectedEnumClass.PublicItem1),
+ ProtectedEnumClass.PublicItem1)
- self.assertEqual(obj.callPublicEnumMethod(ProtectedEnumClass.PublicItem0), ProtectedEnumClass.PublicItem0)
- self.assertEqual(obj.callPublicEnumMethod(ProtectedEnumClass.PublicItem1), ProtectedEnumClass.PublicItem1)
+ self.assertEqual(obj.callPublicEnumMethod(ProtectedEnumClass.PublicItem0),
+ ProtectedEnumClass.PublicItem0)
+ self.assertEqual(obj.callPublicEnumMethod(ProtectedEnumClass.PublicItem1),
+ ProtectedEnumClass.PublicItem1)
def testOverriddenProtectedMethodWithProtectedEnumArgument(self):
'''Calls overridden protected method with protected enum argument.'''
obj = ExtendedProtectedEnumClass()
- self.assertEqual(obj.protectedEnumMethod(ProtectedEnumClass.ProtectedItem0), ProtectedEnumClass.ProtectedItem1)
- self.assertEqual(obj.protectedEnumMethod(ProtectedEnumClass.ProtectedItem1), ProtectedEnumClass.ProtectedItem0)
+ self.assertEqual(obj.protectedEnumMethod(ProtectedEnumClass.ProtectedItem0),
+ ProtectedEnumClass.ProtectedItem1)
+ self.assertEqual(obj.protectedEnumMethod(ProtectedEnumClass.ProtectedItem1),
+ ProtectedEnumClass.ProtectedItem0)
- self.assertEqual(ProtectedEnumClass.protectedEnumMethod(obj, ProtectedEnumClass.ProtectedItem0), ProtectedEnumClass.ProtectedItem0)
- self.assertEqual(ProtectedEnumClass.protectedEnumMethod(obj, ProtectedEnumClass.ProtectedItem1), ProtectedEnumClass.ProtectedItem1)
+ self.assertEqual(ProtectedEnumClass.protectedEnumMethod(obj, ProtectedEnumClass.ProtectedItem0), # noqa: E501
+ ProtectedEnumClass.ProtectedItem0)
+ self.assertEqual(ProtectedEnumClass.protectedEnumMethod(obj,
+ ProtectedEnumClass.ProtectedItem1), ProtectedEnumClass.ProtectedItem1)
- self.assertEqual(obj.callProtectedEnumMethod(ProtectedEnumClass.ProtectedItem0), ProtectedEnumClass.ProtectedItem1)
- self.assertEqual(obj.callProtectedEnumMethod(ProtectedEnumClass.ProtectedItem1), ProtectedEnumClass.ProtectedItem0)
+ self.assertEqual(obj.callProtectedEnumMethod(ProtectedEnumClass.ProtectedItem0),
+ ProtectedEnumClass.ProtectedItem1)
+ self.assertEqual(obj.callProtectedEnumMethod(ProtectedEnumClass.ProtectedItem1),
+ ProtectedEnumClass.ProtectedItem0)
def testOverriddenProtectedMethodWithPublicEnumArgument(self):
'''Calls overridden protected method with public enum argument.'''
obj = ExtendedProtectedEnumClass()
- self.assertEqual(obj.publicEnumMethod(ProtectedEnumClass.PublicItem0), ProtectedEnumClass.PublicItem1)
- self.assertEqual(obj.publicEnumMethod(ProtectedEnumClass.PublicItem1), ProtectedEnumClass.PublicItem0)
+ self.assertEqual(obj.publicEnumMethod(ProtectedEnumClass.PublicItem0),
+ ProtectedEnumClass.PublicItem1)
+ self.assertEqual(obj.publicEnumMethod(ProtectedEnumClass.PublicItem1),
+ ProtectedEnumClass.PublicItem0)
- self.assertEqual(ProtectedEnumClass.publicEnumMethod(obj, ProtectedEnumClass.PublicItem0), ProtectedEnumClass.PublicItem0)
- self.assertEqual(ProtectedEnumClass.publicEnumMethod(obj, ProtectedEnumClass.PublicItem1), ProtectedEnumClass.PublicItem1)
+ self.assertEqual(ProtectedEnumClass.publicEnumMethod(obj, ProtectedEnumClass.PublicItem0),
+ ProtectedEnumClass.PublicItem0)
+ self.assertEqual(ProtectedEnumClass.publicEnumMethod(obj, ProtectedEnumClass.PublicItem1),
+ ProtectedEnumClass.PublicItem1)
- self.assertEqual(obj.callPublicEnumMethod(ProtectedEnumClass.PublicItem0), ProtectedEnumClass.PublicItem1)
- self.assertEqual(obj.callPublicEnumMethod(ProtectedEnumClass.PublicItem1), ProtectedEnumClass.PublicItem0)
+ self.assertEqual(obj.callPublicEnumMethod(ProtectedEnumClass.PublicItem0),
+ ProtectedEnumClass.PublicItem1)
+ self.assertEqual(obj.callPublicEnumMethod(ProtectedEnumClass.PublicItem1),
+ ProtectedEnumClass.PublicItem0)
class ProtectedPropertyTest(unittest.TestCase):
@@ -282,6 +309,8 @@ class ProtectedPropertyTest(unittest.TestCase):
def tearDown(self):
del self.obj
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertEqual(cacheSize(), 0)
def testProtectedProperty(self):
@@ -323,6 +352,8 @@ class ProtectedPropertyTest(unittest.TestCase):
pointProperty = obj.protectedValueTypeProperty
self.assertTrue(obj.protectedValueTypeProperty is pointProperty)
del obj, point, pointProperty
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertEqual(cacheSize(), cache_size)
def testProtectedValueTypePointerProperty(self):
@@ -334,18 +365,24 @@ class ProtectedPropertyTest(unittest.TestCase):
self.assertEqual(self.obj.protectedValueTypePointerProperty, pt2)
self.assertTrue(self.obj.protectedValueTypePointerProperty is pt1)
self.assertFalse(self.obj.protectedValueTypePointerProperty is pt2)
+ # PYSIDE-535: Need to assign None to break the cycle
+ self.obj.protectedValueTypePointerProperty = None
def testProtectedObjectTypeProperty(self):
'''Writes and reads a protected object type property.'''
obj = ObjectType()
self.obj.protectedObjectTypeProperty = obj
self.assertEqual(self.obj.protectedObjectTypeProperty, obj)
+ # PYSIDE-535: Need to assign None to break the cycle
+ self.obj.protectedObjectTypeProperty = None
class PrivateDtorProtectedMethodTest(unittest.TestCase):
'''Test cases for classes with private destructors and protected methods.'''
def tearDown(self):
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertEqual(cacheSize(), 0)
def testProtectedMethod(self):
@@ -359,6 +396,6 @@ class PrivateDtorProtectedMethodTest(unittest.TestCase):
self.assertEqual(obj.instanceCalls(), 2)
self.assertEqual(obj.instanceCalls(), obj.protectedInstanceCalls())
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/pstrlist_test.py b/sources/shiboken6/tests/samplebinding/pstrlist_test.py
index 2d2ae5942..d60f9cf35 100644
--- a/sources/shiboken6/tests/samplebinding/pstrlist_test.py
+++ b/sources/shiboken6/tests/samplebinding/pstrlist_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -39,6 +12,7 @@ from shiboken_paths import init_paths
init_paths()
import sample
+
class PStrListTest(unittest.TestCase):
def testPStrList(self):
@@ -53,5 +27,6 @@ class PStrListTest(unittest.TestCase):
lst = sample.createListOfPStr(a, b)
self.assertEqual(lst, [a, b])
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken6/tests/samplebinding/pystr_test.py b/sources/shiboken6/tests/samplebinding/pystr_test.py
index d19715e7c..ec64c1e31 100644
--- a/sources/shiboken6/tests/samplebinding/pystr_test.py
+++ b/sources/shiboken6/tests/samplebinding/pystr_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for definition of __str__ method.'''
@@ -42,6 +15,7 @@ init_paths()
from sample import Point
+
class PyStrTest(unittest.TestCase):
'''Test case for definition of __str__ method.'''
@@ -50,6 +24,6 @@ class PyStrTest(unittest.TestCase):
pt = Point(5, 2)
self.assertEqual(str(pt), 'Point(5.0, 2.0)')
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/python_thread_test.py b/sources/shiboken6/tests/samplebinding/python_thread_test.py
index 7b5b773e8..65398b5c6 100644
--- a/sources/shiboken6/tests/samplebinding/python_thread_test.py
+++ b/sources/shiboken6/tests/samplebinding/python_thread_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#!/usr/bin/env python
@@ -61,7 +36,7 @@ class Producer(threading.Thread):
def run(self):
while self.runs < self.max_runs:
- value = int(random()*10) % 10
+ value = int(random() * 10) % 10
self.bucket.push(value)
self.production_list.append(value)
logging.debug(f'PRODUCER - pushed {value}')
@@ -91,6 +66,7 @@ class Consumer(threading.Thread):
logging.debug('CONSUMER - empty bucket')
time.sleep(0.01)
+
class ProducerConsumer(unittest.TestCase):
'''Basic test case for producer-consumer QThread'''
@@ -116,8 +92,5 @@ class ProducerConsumer(unittest.TestCase):
self.assertEqual(prod.production_list, cons.consumption_list)
-
-
-
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken6/tests/samplebinding/receive_null_cstring_test.py b/sources/shiboken6/tests/samplebinding/receive_null_cstring_test.py
index f8519165b..1d19de941 100644
--- a/sources/shiboken6/tests/samplebinding/receive_null_cstring_test.py
+++ b/sources/shiboken6/tests/samplebinding/receive_null_cstring_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test case for a function that could receive a NULL pointer in a '[const] char*' parameter.'''
@@ -42,8 +15,10 @@ init_paths()
from sample import countCharacters
+
class ReceiveNullCStringTest(unittest.TestCase):
- '''Test case for a function that could receive a NULL pointer in a '[const] char*' parameter.'''
+ '''Test case for a function that could receive a NULL pointer in a '[const] char*'
+ parameter.'''
def testBasic(self):
'''The test function should be working for the basic cases.'''
@@ -56,6 +31,6 @@ class ReceiveNullCStringTest(unittest.TestCase):
'''The test function returns '-1' when receives a None value instead of a string.'''
self.assertEqual(countCharacters(None), -1)
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/reference_test.py b/sources/shiboken6/tests/samplebinding/reference_test.py
index 4255f1921..1b6dd3a7a 100644
--- a/sources/shiboken6/tests/samplebinding/reference_test.py
+++ b/sources/shiboken6/tests/samplebinding/reference_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for methods that receive references to objects.'''
@@ -40,7 +13,8 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from shiboken_paths import init_paths
init_paths()
-from sample import *
+from sample import Reference, Str
+
class ExtendedReference(Reference):
def __init__(self):
@@ -75,7 +49,7 @@ class ReferenceTest(unittest.TestCase):
def testCantSegFaultWhenReceiveNone(self):
'''do not segfault when receiving None as argument.'''
s = Str()
- self.assertTrue(None == s)
+ self.assertFalse(bool(s))
def testMethodThatReceivesConstReference(self):
'''Test a method that receives a const reference to an object as argument.'''
@@ -84,29 +58,33 @@ class ReferenceTest(unittest.TestCase):
self.assertEqual(Reference.usesConstReference(r), objId)
def testModificationOfReference(self):
- '''Tests if the identity of a reference argument is preserved when passing it to be altered in C++.'''
+ '''Tests if the identity of a reference argument is preserved when passing
+ it to be altered in C++.'''
objId = 123
r1 = Reference(objId)
r1.alterReferenceIdVirtual(r1)
self.assertEqual(r1.objId(), objId * Reference.multiplier())
def testModificationOfReferenceCallingAVirtualIndirectly(self):
- '''Tests if the identity of a reference argument is preserved when passing it to be altered in C++ through a method that calls a virtual method.'''
+ '''Tests if the identity of a reference argument is preserved when passing it
+ to be altered in C++ through a method that calls a virtual method.'''
objId = 123
r1 = Reference(objId)
r1.callAlterReferenceIdVirtual(r1)
self.assertEqual(r1.objId(), objId * Reference.multiplier())
def testModificationOfReferenceCallingAReimplementedVirtualIndirectly(self):
- '''Test if a Python override of a virtual method with a reference parameter called from C++ alters the argument properly.'''
+ '''Test if a Python override of a virtual method with a reference parameter
+ called from C++ alters the argument properly.'''
objId = 123
r = Reference(objId)
er = ExtendedReference()
- result = er.callAlterReferenceIdVirtual(r)
+ result = er.callAlterReferenceIdVirtual(r) # noqa: F841
self.assertEqual(r.objId(), objId * er.multiplier)
def testReimplementedVirtualMethodCallWithReferenceParameter(self):
- '''Test if a Python override of a virtual method with a reference parameter is correctly called from C++.'''
+ '''Test if a Python override of a virtual method with a reference parameter
+ is correctly called from C++.'''
inc = 9
objId = 123
r = Reference(objId)
@@ -115,7 +93,8 @@ class ReferenceTest(unittest.TestCase):
self.assertEqual(result, objId + inc + er.reference_inc)
def testReimplementedVirtualMethodCallWithConstReferenceParameter(self):
- '''Test if a Python override of a virtual method with a const reference parameter is correctly called from C++.'''
+ '''Test if a Python override of a virtual method with a const reference
+ parameter is correctly called from C++.'''
inc = 9
objId = 123
r = Reference(objId)
@@ -123,6 +102,6 @@ class ReferenceTest(unittest.TestCase):
result = er.callUsesConstReferenceVirtual(r, inc)
self.assertEqual(result, objId + inc + er.const_reference_inc)
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/referencetopointer_test.py b/sources/shiboken6/tests/samplebinding/referencetopointer_test.py
index 48893173b..942c7ea29 100644
--- a/sources/shiboken6/tests/samplebinding/referencetopointer_test.py
+++ b/sources/shiboken6/tests/samplebinding/referencetopointer_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for a reference to pointer argument type.'''
@@ -42,6 +15,7 @@ init_paths()
from sample import VirtualMethods, Str
+
class ExtendedVirtualMethods(VirtualMethods):
def __init__(self):
VirtualMethods.__init__(self)
@@ -99,6 +73,6 @@ class ReferenceToPointerTest(unittest.TestCase):
self.assertTrue(ok)
self.assertEqual(string, Str(obj.prefix + 'foo'))
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/renaming_test.py b/sources/shiboken6/tests/samplebinding/renaming_test.py
index a31dceb35..b08438ef3 100644
--- a/sources/shiboken6/tests/samplebinding/renaming_test.py
+++ b/sources/shiboken6/tests/samplebinding/renaming_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for renaming using target-lang-name attribute.'''
@@ -43,6 +16,9 @@ init_paths()
from sample import RenamedValue, RenamedUser
+from shibokensupport.signature import get_signature
+
+
class RenamingTest(unittest.TestCase):
def test(self):
'''Tests whether the C++ class ToBeRenamedValue renamed via attribute
@@ -54,11 +30,10 @@ class RenamingTest(unittest.TestCase):
"<class 'sample.RenamedValue'>")
rename_user = RenamedUser()
rename_user.useRenamedValue(renamed_value)
- actual_signature = str(rename_user.useRenamedValue.__signature__)
+ actual_signature = str(get_signature(rename_user.useRenamedValue))
self.assertTrue(re.match(r"^\(self,\s*?v:\s*?sample.RenamedValue\)\s*?->\s*?None$",
actual_signature))
-
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken6/tests/samplebinding/return_null_test.py b/sources/shiboken6/tests/samplebinding/return_null_test.py
index 3ca3f2731..2c4f07c65 100644
--- a/sources/shiboken6/tests/samplebinding/return_null_test.py
+++ b/sources/shiboken6/tests/samplebinding/return_null_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test case for functions that could return a NULL pointer.'''
@@ -40,7 +13,9 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from shiboken_paths import init_paths
init_paths()
-from sample import returnNullPrimitivePointer, returnNullValueTypePointer, returnNullObjectTypePointer
+from sample import (returnNullPrimitivePointer, returnNullValueTypePointer,
+ returnNullObjectTypePointer)
+
class ReturnNullTest(unittest.TestCase):
'''Test case for functions that could return a NULL pointer.'''
@@ -60,6 +35,6 @@ class ReturnNullTest(unittest.TestCase):
o = returnNullValueTypePointer()
self.assertEqual(o, None)
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/richcompare_test.py b/sources/shiboken6/tests/samplebinding/richcompare_test.py
index 5a5fab646..3146d0faf 100644
--- a/sources/shiboken6/tests/samplebinding/richcompare_test.py
+++ b/sources/shiboken6/tests/samplebinding/richcompare_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -38,7 +11,8 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from shiboken_paths import init_paths
init_paths()
-from sample import *
+from sample import Expression
+
class TestRichCompare(unittest.TestCase):
@@ -49,5 +23,6 @@ class TestRichCompare(unittest.TestCase):
d = a + c < b + a
self.assertEqual(d.toString(), "((2+(2+3))<(3+2))")
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken6/tests/samplebinding/sample-binding.txt.in b/sources/shiboken6/tests/samplebinding/sample-binding.txt.in
index 317f76f09..bcf9de90f 100644
--- a/sources/shiboken6/tests/samplebinding/sample-binding.txt.in
+++ b/sources/shiboken6/tests/samplebinding/sample-binding.txt.in
@@ -13,3 +13,4 @@ typesystem-path = @CMAKE_CURRENT_SOURCE_DIR@
enable-parent-ctor-heuristic
use-isnull-as-nb_nonzero
+lean-headers
diff --git a/sources/shiboken6/tests/samplebinding/sample_test.py b/sources/shiboken6/tests/samplebinding/sample_test.py
index 24e4354c5..19b2f708d 100644
--- a/sources/shiboken6/tests/samplebinding/sample_test.py
+++ b/sources/shiboken6/tests/samplebinding/sample_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for libsample bindings module'''
@@ -42,32 +15,10 @@ init_paths()
import sample
+
class ModuleTest(unittest.TestCase):
'''Test case for module and global functions'''
- def testModuleMembers(self):
- '''Test availability of classes, global functions and other members on binding'''
- expected_members = set(['Abstract', 'Derived', 'Point',
- 'ListUser', 'PairUser', 'MapUser',
- 'gimmeComplexList', 'gimmeDouble', 'gimmeInt',
- 'makeCString', 'multiplyPair', 'returnCString',
- 'SampleNamespace', 'transmuteComplexIntoPoint',
- 'transmutePointIntoComplex', 'sumComplexPair',
- 'FirstThing', 'SecondThing', 'ThirdThing',
- 'GlobalEnum', 'NoThing'])
- self.assertTrue(expected_members.issubset(dir(sample)))
-
- def testAbstractPrintFormatEnum(self):
- '''Test availability of PrintFormat enum from Abstract class'''
- enum_members = set(['PrintFormat', 'Short', 'Verbose',
- 'OnlyId', 'ClassNameAndId'])
- self.assertTrue(enum_members.issubset(dir(sample.Abstract)))
-
- def testSampleNamespaceOptionEnum(self):
- '''Test availability of Option enum from SampleNamespace namespace'''
- enum_members = set(['Option', 'None_', 'RandomNumber', 'UnixTime'])
- self.assertTrue(enum_members.issubset(dir(sample.SampleNamespace)))
-
def testAddedFunctionAtModuleLevel(self):
'''Calls function added to module from type system description.'''
str1 = 'Foo'
@@ -80,10 +31,46 @@ class ModuleTest(unittest.TestCase):
self.assertEqual(sample.countVarargs(1, 2), 1)
self.assertEqual(sample.countVarargs(1, 2, 3, 'a', 'b', 4, (5, 6)), 6)
+ def testSampleComparisonOpInNamespace(self):
+ s1 = sample.sample.sample(10)
+ s2 = sample.sample.sample(10)
+ self.assertEqual(s1, s2)
+
def testConstant(self):
self.assertEqual(sample.sample.INT_CONSTANT, 42)
+ def testStringFunctions(self):
+ # Test plain ASCII, UCS1 and UCS4 encoding which have different
+ # representations in the PyUnicode objects.
+ for t1 in ["ascii", "Ümläut", "😀"]:
+ expected = t1 + t1
+ self.assertEqual(sample.addStdStrings(t1, t1), expected)
+ self.assertEqual(sample.addStdWStrings(t1, t1), expected)
+
+ def testNullPtrT(self):
+ sample.testNullPtrT(None)
+ self.assertRaises(TypeError, sample.testNullPtrT, 42)
+
+ def testRValueRefsWithValueTypes(self):
+ """Passing value types by rvalue refs: For value types, nothing should
+ happen since the argument is copied in the call and the copy is
+ moved from."""
+ polygon = sample.Polygon()
+ polygon.addPoint(sample.Point(1, 2))
+ polygon.addPoint(sample.Point(3, 4))
+ point_count = len(polygon.points())
+ self.assertEqual(point_count, sample.takePolygon(polygon))
+
+ def testRValueRefsWithObjectTypes(self):
+ """Passing object types by rvalue refs: The underlying object should
+ be moved from."""
+ o = sample.ObjectType()
+ object_name = "Name"
+ o.setObjectName(object_name)
+ self.assertEqual(len(object_name), sample.takeObjectType(o))
+ # o should be moved from, name is now empty
+ self.assertEqual(len(o.objectName()), 0)
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/samplebinding.pyproject b/sources/shiboken6/tests/samplebinding/samplebinding.pyproject
new file mode 100644
index 000000000..ba6ba6f8f
--- /dev/null
+++ b/sources/shiboken6/tests/samplebinding/samplebinding.pyproject
@@ -0,0 +1,131 @@
+{
+ "files": ["__del___test.py",
+ "abstract_test.py",
+ "addedfunction_test.py",
+ "addedfunction_with_container_args_test.py",
+ "argumentmodifications_test.py",
+ "array_numpy_test.py",
+ "array_sequence_test.py",
+ "bug_554_test.py",
+ "bug_704_test.py",
+ "bytearray_test.py",
+ "child_return_test.py",
+ "class_fields_test.py",
+ "collector_test.py",
+ "complex_test.py",
+ "conversion_operator_test.py",
+ "copy_test.py",
+ "ctorconvrule_test.py",
+ "cyclic_test.py",
+ "date_test.py",
+ "decisor_test.py",
+ "delete_test.py",
+ "deprecated_test.py",
+ "derived_test.py",
+ "duck_punching_test.py",
+ "echo_test.py",
+ "enum_test.py",
+ "enumfromremovednamespace_test.py",
+ "event_loop_call_virtual_test.py",
+ "event_loop_thread_test.py",
+ "exception_test.py",
+ "filter_test.py",
+ "handleholder_test.py",
+ "hashabletype_test.py",
+ "ignorederefop_test.py",
+ "implicitconv_numerical_test.py",
+ "implicitconv_test.py",
+ "inheritanceandscope_test.py",
+ "injectcode_test.py",
+ "innerclass_test.py",
+ "intlist_test.py",
+ "intwrapper_test.py",
+ "invalid_virtual_return_test.py",
+ "keep_reference_test.py",
+ "list_test.py",
+ "lock_test.py",
+ "map_test.py",
+ "metaclass_test.py",
+ "mi_virtual_methods_test.py",
+ "mixed_mi_test.py",
+ "modelindex_test.py",
+ "modelview_test.py",
+ "modifications_test.py",
+ "modified_constructor_test.py",
+ "modifiedvirtualmethods_test.py",
+ "multi_cpp_inheritance_test.py",
+ "multiple_derived_test.py",
+ "namespace_test.py",
+ "newdivision_test.py",
+ "nondefaultctor_test.py",
+ "nontypetemplate_test.py",
+ "nonzero_test.py",
+ "numericaltypedef_test.py",
+ "numpy_test.py",
+ "objecttype_test.py",
+ "objecttype_with_named_args_test.py",
+ "objecttypebyvalue_test.py",
+ "objecttypelayout_test.py",
+ "objecttypeoperators_test.py",
+ "objecttypereferenceasvirtualmethodargument_test.py",
+ "oddbool_test.py",
+ "onlycopyclass_test.py",
+ "overflow_test.py",
+ "overload_sorting_test.py",
+ "overload_test.py",
+ "overloadwithdefault_test.py",
+ "ownership_argument_invalidation_test.py",
+ "ownership_delete_child_in_cpp_test.py",
+ "ownership_delete_child_in_python_test.py",
+ "ownership_delete_parent_test.py",
+ "ownership_invalidate_after_use_test.py",
+ "ownership_invalidate_child_test.py",
+ "ownership_invalidate_nonpolymorphic_test.py",
+ "ownership_invalidate_parent_test.py",
+ "ownership_reparenting_test.py",
+ "ownership_transference_test.py",
+ "pair_test.py",
+ "pen_test.py",
+ "point_test.py",
+ "pointerholder_test.py",
+ "pointerprimitivetype_test.py",
+ "pointf_test.py",
+ "primitivereferenceargument_test.py",
+ "privatector_test.py",
+ "privatedtor_test.py",
+ "protected_test.py",
+ "pstrlist_test.py",
+ "pystr_test.py",
+ "python_thread_test.py",
+ "receive_null_cstring_test.py",
+ "reference_test.py",
+ "referencetopointer_test.py",
+ "renaming_test.py",
+ "return_null_test.py",
+ "richcompare_test.py",
+ "sample_test.py",
+ "samplesnippets.cpp",
+ "simplefile_glue.cpp",
+ "simplefile_test.py",
+ "size_test.py",
+ "snakecase_test.py",
+ "static_nonstatic_methods_test.py",
+ "str_test.py",
+ "strlist_test.py",
+ "templateinheritingclass_test.py",
+ "time_test.py",
+ "transform_test.py",
+ "typeconverters_test.py",
+ "typedealloc_test.py",
+ "typedtordoublefree_test.py",
+ "typesystypedef_test.py",
+ "unsafe_parent_test.py",
+ "useraddedctor_test.py",
+ "virtualdtor_test.py",
+ "virtualmethods_test.py",
+ "visibilitychange_test.py",
+ "voidholder_test.py",
+ "weakref_test.py",
+ "writableclassdict_test.py",
+ "typesystem_sample.xml"]
+}
diff --git a/sources/shiboken6/tests/samplebinding/samplesnippets.cpp b/sources/shiboken6/tests/samplebinding/samplesnippets.cpp
new file mode 100644
index 000000000..43e6b08de
--- /dev/null
+++ b/sources/shiboken6/tests/samplebinding/samplesnippets.cpp
@@ -0,0 +1,54 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+// @snippet intwrapper_add_ints
+extern "C" {
+static PyObject *Sbk_IntWrapper_add_ints(PyObject * /* self */, PyObject *args)
+{
+ PyObject *result = nullptr;
+ if (PyTuple_Check(args) != 0 && PyTuple_Size(args) == 2) {
+ PyObject *arg1 = PyTuple_GetItem(args, 0);
+ PyObject *arg2 = PyTuple_GetItem(args, 1);
+ if (PyLong_Check(arg1) != 0 && PyLong_Check(arg2) != 0)
+ result = PyLong_FromLong(PyLong_AsLong(arg1) + PyLong_AsLong(arg2));
+ }
+ if (result == nullptr)
+ PyErr_SetString(PyExc_TypeError, "expecting 2 ints");
+ return result;
+}
+}
+// @snippet intwrapper_add_ints
+
+// @snippet stdcomplex_floor
+%PYARG_0 = PyFloat_FromDouble(std::floor(%CPPSELF.abs_value()));
+// @snippet stdcomplex_floor
+
+// @snippet stdcomplex_ceil
+%PYARG_0 = PyFloat_FromDouble(std::ceil(%CPPSELF.abs_value()));
+// @snippet stdcomplex_ceil
+
+// @snippet stdcomplex_abs
+%PYARG_0 = PyFloat_FromDouble(%CPPSELF.abs_value());
+// @snippet stdcomplex_abs
+
+// @snippet stdcomplex_pow
+%RETURN_TYPE %0 = %CPPSELF.pow(%1);
+%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
+// @snippet stdcomplex_pow
+
+// @snippet size_char_ct
+// Convert a string "{width}x{height}" specification
+{
+ double width = -1;
+ double height = -1;
+ const std::string s = %1;
+ const auto pos = s.find('x');
+ if (pos != std::string::npos) {
+ std::istringstream wstr(s.substr(0, pos));
+ wstr >> width;
+ std::istringstream hstr(s.substr(pos + 1, s.size() - pos - 1));
+ hstr >> height;
+ }
+ %0 = new %TYPE(width, height);
+}
+// @snippet size_char_ct
diff --git a/sources/shiboken6/tests/samplebinding/simplefile_glue.cpp b/sources/shiboken6/tests/samplebinding/simplefile_glue.cpp
index bccd51534..76c0cfaf2 100644
--- a/sources/shiboken6/tests/samplebinding/simplefile_glue.cpp
+++ b/sources/shiboken6/tests/samplebinding/simplefile_glue.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
if (!%CPPSELF.%FUNCTION_NAME()) {
PyObject* error_msg = PyBytes_FromFormat(
diff --git a/sources/shiboken6/tests/samplebinding/simplefile_test.py b/sources/shiboken6/tests/samplebinding/simplefile_test.py
index 1f5561f77..55c894a35 100644
--- a/sources/shiboken6/tests/samplebinding/simplefile_test.py
+++ b/sources/shiboken6/tests/samplebinding/simplefile_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for SimpleFile class'''
@@ -42,6 +15,7 @@ init_paths()
from sample import SimpleFile
+
class SimpleFileTest(unittest.TestCase):
'''Test cases for SimpleFile class.'''
@@ -81,6 +55,6 @@ class SimpleFileTest(unittest.TestCase):
self.assertRaises(IOError, f.open)
self.assertEqual(f.size(), 0)
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/size_test.py b/sources/shiboken6/tests/samplebinding/size_test.py
index 4df438e2b..069ce59b3 100644
--- a/sources/shiboken6/tests/samplebinding/size_test.py
+++ b/sources/shiboken6/tests/samplebinding/size_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for operator overloads on Size class'''
@@ -42,6 +15,7 @@ init_paths()
from sample import Size
+
class PointTest(unittest.TestCase):
'''Test case for Size class, including operator overloads.'''
@@ -121,6 +95,6 @@ class PointTest(unittest.TestCase):
self.assertTrue(s1 > s2)
self.assertFalse(s2 > s1)
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/snakecase_test.py b/sources/shiboken6/tests/samplebinding/snakecase_test.py
index 2147b2c5b..a1538796a 100644
--- a/sources/shiboken6/tests/samplebinding/snakecase_test.py
+++ b/sources/shiboken6/tests/samplebinding/snakecase_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for snake case generation'''
diff --git a/sources/shiboken6/tests/samplebinding/static_nonstatic_methods_test.py b/sources/shiboken6/tests/samplebinding/static_nonstatic_methods_test.py
index 200b0e4c0..cf0889299 100644
--- a/sources/shiboken6/tests/samplebinding/static_nonstatic_methods_test.py
+++ b/sources/shiboken6/tests/samplebinding/static_nonstatic_methods_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for overloads involving static and non-static versions of a method.'''
@@ -42,16 +15,20 @@ init_paths()
from sample import SimpleFile
+
class SimpleFile2 (SimpleFile):
def exists(self):
return "Mooo"
+
class SimpleFile3 (SimpleFile):
pass
+
class SimpleFile4 (SimpleFile):
exists = 5
+
class StaticNonStaticMethodsTest(unittest.TestCase):
'''Test cases for overloads involving static and non-static versions of a method.'''
@@ -106,9 +83,9 @@ class StaticNonStaticMethodsTest(unittest.TestCase):
def testDuckPunchingStaticNonStaticMethod(self):
f = SimpleFile(os.fspath(self.existing_filename))
- f.exists = lambda : "Meee"
+ f.exists = lambda: "Meee"
self.assertEqual(f.exists(), "Meee")
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/stdcomplex_test.py b/sources/shiboken6/tests/samplebinding/stdcomplex_test.py
new file mode 100644
index 000000000..0caa9764d
--- /dev/null
+++ b/sources/shiboken6/tests/samplebinding/stdcomplex_test.py
@@ -0,0 +1,71 @@
+#!/usr/bin/env python
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+'''Test cases for StdComplex class'''
+
+import os
+import math
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from shiboken_paths import init_paths
+init_paths()
+
+from sample import StdComplex
+
+
+REAL = 5.0
+IMAG = 2.3
+
+
+class StdComplexTest(unittest.TestCase):
+ '''Test case for StdComplex class, exercising esoteric number
+ protocols (Py_nb_). For standard number protocols, see Point.'''
+
+ def testConversion(self):
+ pt = StdComplex(REAL, IMAG)
+ self.assertEqual(int(pt), int(round(pt.abs_value())))
+ self.assertEqual(float(pt), pt.abs_value())
+
+ def testAbs(self):
+ pt = StdComplex(REAL, IMAG)
+ self.assertEqual(abs(pt), pt.abs_value())
+
+ def testPow(self):
+ '''Compare pow() function to builtin Python type.'''
+ pt = StdComplex(REAL, IMAG)
+ result = pow(pt, StdComplex(2.0, 0))
+ py_pt = complex(REAL, IMAG)
+ py_result = pow(py_pt, complex(2.0, 0))
+ self.assertAlmostEqual(result.real(), py_result.real)
+ self.assertAlmostEqual(result.imag(), py_result.imag)
+
+ def testFloor(self):
+ pt = StdComplex(REAL, IMAG)
+ self.assertEqual(math.floor(pt), math.floor(pt.abs_value()))
+
+ def testCeil(self):
+ pt = StdComplex(REAL, IMAG)
+ self.assertEqual(math.ceil(pt), math.ceil(pt.abs_value()))
+
+ def testPlusOperator(self):
+ '''Test StdComplex class + operator.'''
+ pt1 = StdComplex(REAL, IMAG)
+ pt2 = StdComplex(0.5, 3.2)
+ self.assertEqual(pt1 + pt2, StdComplex(REAL + 0.5, IMAG + 3.2))
+
+ def testEqualOperator(self):
+ '''Test StdComplex class == operator.'''
+ pt1 = StdComplex(REAL, IMAG)
+ pt2 = StdComplex(REAL, IMAG)
+ pt3 = StdComplex(0.5, 3.2)
+ self.assertTrue(pt1 == pt1)
+ self.assertTrue(pt1 == pt2)
+ self.assertFalse(pt1 == pt3)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/shiboken6/tests/samplebinding/str_test.py b/sources/shiboken6/tests/samplebinding/str_test.py
index a2c092bb8..c06fd6428 100644
--- a/sources/shiboken6/tests/samplebinding/str_test.py
+++ b/sources/shiboken6/tests/samplebinding/str_test.py
@@ -1,35 +1,9 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-'''Test cases for a method that receives a reference to class that is implicitly convertible from a Python native type.'''
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+'''Test cases for a method that receives a reference to class that is implicitly
+ convertible from a Python native type.'''
import os
import sys
@@ -42,6 +16,7 @@ init_paths()
from sample import Str
+
class StrTest(unittest.TestCase):
'''Test cases for thr Str class.'''
@@ -58,39 +33,39 @@ class StrTest(unittest.TestCase):
self.assertEqual(str(s1), 'This is Sparta!')
def testPassPythonTypeImplictlyConvertibleToAClassUsedAsReference(self):
- '''Test passing a Python class implicitly convertible to a wrapped class that is expected to be passed as reference.'''
+ '''Test passing a Python class implicitly convertible to a wrapped class
+ that is expected to be passed as reference.'''
s1 = Str('This is %VAR!').arg('Athens')
self.assertEqual(str(s1), 'This is Athens!')
def testSequenceOperators(self):
s1 = Str("abcdef")
- self.assertEqual(len(s1), 6);
- self.assertEqual(len(Str()), 0);
+ self.assertEqual(len(s1), 6)
+ self.assertEqual(len(Str()), 0)
# getitem
- self.assertEqual(s1[0], "a");
- self.assertEqual(s1[1], "b");
- self.assertEqual(s1[2], "c");
- self.assertEqual(s1[3], "d");
- self.assertEqual(s1[4], "e");
- self.assertEqual(s1[5], "f");
- self.assertEqual(s1[-1], "f");
- self.assertEqual(s1[-2], "e");
+ self.assertEqual(s1[0], "a")
+ self.assertEqual(s1[1], "b")
+ self.assertEqual(s1[2], "c")
+ self.assertEqual(s1[3], "d")
+ self.assertEqual(s1[4], "e")
+ self.assertEqual(s1[5], "f")
+ self.assertEqual(s1[-1], "f")
+ self.assertEqual(s1[-2], "e")
self.assertRaises(TypeError, s1.__getitem__, 6)
# setitem
s1[0] = 'A'
s1[1] = 'B'
- self.assertEqual(s1[0], 'A');
- self.assertEqual(s1[1], 'B');
+ self.assertEqual(s1[0], 'A')
+ self.assertEqual(s1[1], 'B')
self.assertRaises(TypeError, s1.__setitem__(6, 67))
def testReverseOperator(self):
s1 = Str("hello")
- n1 = 2
- self.assertEqual(s1+2, "hello2")
- self.assertEqual(2+s1, "2hello")
+ self.assertEqual(s1 + 2, "hello2")
+ self.assertEqual(2 + s1, "2hello")
def testToIntError(self):
self.assertEqual(Str('Z').toInt(), (0, False))
@@ -117,6 +92,6 @@ class StrTest(unittest.TestCase):
self.assertEqual(val, int(str(hexa), 16))
self.assertEqual(hexa.toInt(), (0, False))
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/strlist_test.py b/sources/shiboken6/tests/samplebinding/strlist_test.py
index c3eb02b8e..2bfb80b67 100644
--- a/sources/shiboken6/tests/samplebinding/strlist_test.py
+++ b/sources/shiboken6/tests/samplebinding/strlist_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for StrList class that inherits from std::list<Str>.'''
@@ -42,6 +15,7 @@ init_paths()
from sample import Str, StrList
+
class StrListTest(unittest.TestCase):
'''Test cases for StrList class that inherits from std::list<Str>.'''
@@ -115,5 +89,6 @@ class StrListTest(unittest.TestCase):
self.assertEqual(len(sl), 2)
self.assertEqual(sl, (Str('Foo'), 'Bar'))
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken6/tests/samplebinding/templateinheritingclass_test.py b/sources/shiboken6/tests/samplebinding/templateinheritingclass_test.py
index f0bb1f762..11279c7ec 100644
--- a/sources/shiboken6/tests/samplebinding/templateinheritingclass_test.py
+++ b/sources/shiboken6/tests/samplebinding/templateinheritingclass_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -41,7 +14,8 @@ init_paths()
from sample import Photon
'''This tests classes that inherit from template classes,
-simulating a situation found in Qt's phonon module.'''
+ simulating a situation found in Qt's phonon module.'''
+
class TemplateInheritingClassTest(unittest.TestCase):
def testClassBasics(self):
@@ -84,5 +58,6 @@ class TemplateInheritingClassTest(unittest.TestCase):
self.assertEqual(obj2, obj2.passPointerThrough(obj2))
self.assertRaises(TypeError, obj1.passPointerThrough, obj2)
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken6/tests/samplebinding/time_test.py b/sources/shiboken6/tests/samplebinding/time_test.py
index 5fa36621d..6283a6744 100644
--- a/sources/shiboken6/tests/samplebinding/time_test.py
+++ b/sources/shiboken6/tests/samplebinding/time_test.py
@@ -1,37 +1,9 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for constructor and method signature decisor on Time class.'''
-import sys
import os
import sys
import unittest
@@ -44,6 +16,7 @@ import datetime
from sample import Time, ImplicitConv, ObjectType
+
class TimeTest(unittest.TestCase):
'''Test cases for constructor and method signature decisor on Time class.
The constructor and one method have these signatures: CTORMETHOD() and
@@ -142,6 +115,6 @@ class TimeTest(unittest.TestCase):
py = datetime.time(12, 32, 5)
self.assertNotEqual(time, py)
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/transform_test.py b/sources/shiboken6/tests/samplebinding/transform_test.py
index 5d55d9d77..7dfd18a4a 100644
--- a/sources/shiboken6/tests/samplebinding/transform_test.py
+++ b/sources/shiboken6/tests/samplebinding/transform_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for argument modification with more than nine arguments.'''
@@ -42,6 +15,7 @@ init_paths()
from sample import Point, applyHomogeneousTransform
+
class TransformTest(unittest.TestCase):
'''Test cases for modifying a function with > 9 arguments.'''
@@ -59,5 +33,6 @@ class TransformTest(unittest.TestCase):
r = applyHomogeneousTransform(p, 1, 0, 0, 0, 1, 0, 0, 0, 0)
self.assertTrue(r is None)
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken6/tests/samplebinding/typeconverters_test.py b/sources/shiboken6/tests/samplebinding/typeconverters_test.py
index 141da0860..987ba6dfd 100644
--- a/sources/shiboken6/tests/samplebinding/typeconverters_test.py
+++ b/sources/shiboken6/tests/samplebinding/typeconverters_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Tests various usages of the type converters.'''
@@ -42,6 +15,7 @@ init_paths()
import sample
+
class GetPythonTypeByNameTest(unittest.TestCase):
'''Uses an added function with inject code that uses the libshiboken
@@ -186,12 +160,31 @@ class StringBasedConversionTest(unittest.TestCase):
self.assertTrue(len(result), 1)
self.assertTrue(lst, result[0])
+
+class PrimitiveConversionTest(unittest.TestCase):
+
def testCppPrimitiveType(self):
integers = (12, 34)
result = sample.convertIntegersToCppAndThenToPython(integers[0], integers[1])
for orig, new in zip(integers, result):
self.assertEqual(orig, new)
+ def testLargeIntAsFloat(self):
+ """PYSIDE-2417: When passing an int to a function taking float,
+ a 64bit conversion should be done."""
+ point = sample.PointF(1, 2)
+ large_int = 2**31 + 2
+ point.setX(large_int)
+ self.assertEqual(round(point.x()), large_int)
+
+ def testUnsignedLongLongAsFloat(self):
+ """PYSIDE-2652: When passing an unsigned long long to a function taking float,
+ an unsigned 64bit conversion should be done."""
+ point = sample.PointF(1, 2)
+ large_int = 2**63
+ point.setX(large_int)
+ self.assertEqual(round(point.x()), large_int)
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken6/tests/samplebinding/typedealloc_test.py b/sources/shiboken6/tests/samplebinding/typedealloc_test.py
index 32a15e300..ce881e802 100644
--- a/sources/shiboken6/tests/samplebinding/typedealloc_test.py
+++ b/sources/shiboken6/tests/samplebinding/typedealloc_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test deallocation of type extended in Python.'''
@@ -52,18 +25,24 @@ class TypeDeallocTest(unittest.TestCase):
def tearDown(self):
del self.called
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
def callback(self, *args):
self.called = True
def testScopeEnd(self):
ref = None
+
def scope():
+
class Ext(Point):
pass
- o = Ext()
+
+ o = Ext() # noqa: F841
global ref
ref = weakref.ref(Ext, self.callback)
+
scope()
gc.collect()
self.assertTrue(self.called)
@@ -71,7 +50,7 @@ class TypeDeallocTest(unittest.TestCase):
def testDeleteType(self):
class Ext(Point):
pass
- ref = weakref.ref(Ext, self.callback)
+ ref = weakref.ref(Ext, self.callback) # noqa: F841
del Ext
gc.collect()
self.assertTrue(self.called)
@@ -79,4 +58,3 @@ class TypeDeallocTest(unittest.TestCase):
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/typedtordoublefree_test.py b/sources/shiboken6/tests/samplebinding/typedtordoublefree_test.py
index 983633a7f..ab8e535b5 100644
--- a/sources/shiboken6/tests/samplebinding/typedtordoublefree_test.py
+++ b/sources/shiboken6/tests/samplebinding/typedtordoublefree_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -39,6 +12,7 @@ from shiboken_paths import init_paths
init_paths()
from sample import ObjectType
+
class TestTypeDestructorDoubleFree(unittest.TestCase):
def testTypeDestructorDoubleFree(self):
'''Causes the type destructors of two derived classes to be called.'''
@@ -49,13 +23,16 @@ class TestTypeDestructorDoubleFree(unittest.TestCase):
obj = ExtObj1()
child = ObjectType(parent=obj)
self.assertEqual(obj.takeChild(child), child)
+
class ExtObj2(ObjectType):
def __init__(self):
ObjectType.__init__(self)
+
obj = ExtObj2()
child = ObjectType(parent=obj)
self.assertEqual(obj.takeChild(child), child)
scope()
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken6/tests/samplebinding/typesystem_sample.xml b/sources/shiboken6/tests/samplebinding/typesystem_sample.xml
index 95c51938e..e315e599e 100644
--- a/sources/shiboken6/tests/samplebinding/typesystem_sample.xml
+++ b/sources/shiboken6/tests/samplebinding/typesystem_sample.xml
@@ -1,34 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<typesystem package="sample">
- <suppress-warning text="Duplicate type entry: 'sample'" />
- <suppress-warning text="Duplicate type entry: 'SampleNamespace'" />
-
- <custom-type name="str"/>
- <custom-type name="PyBytes"/>
- <custom-type name="PyDate"/>
- <custom-type name="PyObject"/>
- <custom-type name="PyUnicode"/>
-
- <primitive-type name="bool"/>
- <primitive-type name="double"/>
- <primitive-type name="real"/>
- <primitive-type name="int"/>
- <primitive-type name="short"/>
- <primitive-type name="unsigned short"/>
- <primitive-type name="ushort"/>
- <primitive-type name="unsigned int" />
- <primitive-type name="signed int" />
- <primitive-type name="char"/>
- <primitive-type name="unsigned char"/>
- <primitive-type name="long"/>
- <primitive-type name="unsigned long"/>
- <primitive-type name="long long"/>
- <primitive-type name="unsigned long long"/>
- <primitive-type name="std::string"/>
- <primitive-type name="std::string_view" view-on="std::string"/>
<primitive-type name="ObjectType::Identifier"/>
+ <primitive-type name="std::nullptr_t"/>
- <primitive-type name="Foo::HANDLE" target-lang-api-name="PyLong"/>
+ <primitive-type name="Foo::SAMPLE_HANDLE" target-lang-api-name="PyLong"/>
<primitive-type name="std::size_t" target-lang-api-name="PyLong">
<conversion-rule>
@@ -96,7 +71,7 @@
</conversion-rule>
</primitive-type>
- <primitive-type name="HANDLE" target-lang-api-name="PyComplex">
+ <primitive-type name="SAMPLE_HANDLE" target-lang-api-name="PyComplex">
<include file-name="handle.h" location="local"/>
<conversion-rule>
<native-to-target>
@@ -106,6 +81,7 @@
</native-to-target>
<target-to-native>
<add-conversion type="PyNone">
+ SBK_UNUSED(%in)
%out = 0;
</add-conversion>
<add-conversion check="checkPyCapsuleOrPyCObject(%in)" type="PyObject">
@@ -174,6 +150,9 @@
<add-function signature="operator==(const ComparisonTester&amp;)" return-type="bool"/>
<add-function signature="operator!=(const ComparisonTester&amp;)" return-type="bool"/>
</value-type>
+ <value-type name="SpaceshipComparisonTester">
+ <enum-type name="Enabled"/>
+ </value-type>
<primitive-type name="PStr">
<include file-name="str.h" location="global"/>
@@ -187,6 +166,7 @@
%out = %OUTTYPE(str);
</add-conversion>
<add-conversion type="Py_None">
+ SBK_UNUSED(%in)
%out = %OUTTYPE();
</add-conversion>
</target-to-native>
@@ -275,6 +255,7 @@
<add-function signature="getPythonType(const char*)" return-type="PyObject">
<inject-code class="target" position="beginning">
+ SBK_UNUSED(self)
%PYARG_0 = (PyObject*) Shiboken::Conversions::getPythonTypeObject(%1);
if (!%PYARG_0)
%PYARG_0 = Py_None;
@@ -370,24 +351,7 @@
</inject-code>
</add-function>
- <container-type name="std::pair" type="pair">
- <include file-name="utility" location="global"/>
- <conversion-rule>
- <native-to-target>
- PyObject* %out = PyTuple_New(2);
- PyTuple_SET_ITEM(%out, 0, %CONVERTTOPYTHON[%INTYPE_0](%in.first));
- PyTuple_SET_ITEM(%out, 1, %CONVERTTOPYTHON[%INTYPE_1](%in.second));
- return %out;
- </native-to-target>
- <target-to-native>
- <add-conversion type="PySequence">
- %out.first = %CONVERTTOCPP[%OUTTYPE_0](PySequence_Fast_GET_ITEM(%in, 0));
- %out.second = %CONVERTTOCPP[%OUTTYPE_1](PySequence_Fast_GET_ITEM(%in, 1));
- </add-conversion>
- </target-to-native>
- </conversion-rule>
- </container-type>
- <template name="cpplist_to_pylist_convertion">
+ <template name="cpp_indexed_list_to_pylist_conversion">
PyObject *%out = PyList_New(Py_ssize_t(%in.size()));
Py_ssize_t idx = 0;
for (auto it = %in.cbegin(), end = %in.cend(); it != end; ++it, ++idx) {
@@ -396,70 +360,19 @@
}
return %out;
</template>
- <template name="pyseq_to_cpplist_convertion">
- Shiboken::AutoDecRef seq(PySequence_Fast(%in, 0));
- const Py_ssize_t size = PySequence_Fast_GET_SIZE(seq.object());
- for (Py_ssize_t i = 0; i &lt; size; ++i) {
- PyObject* pyItem = PySequence_Fast_GET_ITEM(seq.object(), i);
- %OUTTYPE_0 cppItem = %CONVERTTOCPP[%OUTTYPE_0](pyItem);
- %out.push_back(cppItem);
- }
- </template>
- <container-type name="std::list" type="list">
- <include file-name="list" location="global"/>
- <conversion-rule>
- <native-to-target>
- <insert-template name="cpplist_to_pylist_convertion"/>
- </native-to-target>
- <target-to-native>
- <add-conversion type="PySequence">
- <insert-template name="pyseq_to_cpplist_convertion"/>
- </add-conversion>
- </target-to-native>
- </conversion-rule>
- </container-type>
<container-type name="List" type="list">
<include file-name="list" location="global"/>
<conversion-rule>
<native-to-target>
- <insert-template name="cpplist_to_pylist_convertion"/>
+ <insert-template name="cpp_indexed_list_to_pylist_conversion"/>
</native-to-target>
<target-to-native>
<add-conversion type="PySequence">
- <insert-template name="pyseq_to_cpplist_convertion"/>
+ <insert-template name="shiboken_conversion_pyiterable_to_cppsequentialcontainer"/>
</add-conversion>
</target-to-native>
</conversion-rule>
</container-type>
- <container-type name="std::map" type="map">
- <include file-name="map" location="global"/>
- <conversion-rule>
- <native-to-target>
- PyObject* %out = PyDict_New();
- for (auto it = %in.cbegin(), end = %in.cend(); it != end; ++it) {
- %INTYPE_0 key = it->first;
- %INTYPE_1 value = it->second;
- PyDict_SetItem(%out,
- %CONVERTTOPYTHON[%INTYPE_0](key),
- %CONVERTTOPYTHON[%INTYPE_1](value));
- }
- return %out;
- </native-to-target>
- <target-to-native>
- <add-conversion type="PyDict">
- PyObject* key;
- PyObject* value;
- Py_ssize_t pos = 0;
- while (PyDict_Next(%in, &amp;pos, &amp;key, &amp;value)) {
- %OUTTYPE_0 cppKey = %CONVERTTOCPP[%OUTTYPE_0](key);
- %OUTTYPE_1 cppValue = %CONVERTTOCPP[%OUTTYPE_1](value);
- %out.insert({cppKey, cppValue});
- }
- </add-conversion>
- </target-to-native>
- </conversion-rule>
- </container-type>
-
<add-function signature="cacheSize()" return-type="int">
<inject-code class="target">
%RETURN_TYPE %0 = Shiboken::BindingManager::instance().getAllPyObjects().size();
@@ -484,6 +397,7 @@
<function signature="returnNullValueTypePointer()" />
<function signature="returnNullObjectTypePointer()" />
<function signature="acceptInt(int)" />
+ <function signature="acceptIntReturnPtr(int)"/>
<function signature="acceptUInt(unsigned int)" />
<function signature="acceptLong(long)" />
<function signature="acceptULong(unsigned long)" />
@@ -502,6 +416,11 @@
<function signature="returnCString()" />
<function signature="overloadedFunc(double)" />
<function signature="overloadedFunc(int)" />
+ <function signature="addStdStrings(const std::string&amp;, const std::string&amp;)"/>
+ <function signature="addStdWStrings(const std::wstring&amp;, const std::wstring&amp;)"/>
+ <function signature="testNullPtrT(std::nullptr_t)"/>
+ <function signature="takePolygon(Polygon&amp;&amp;)"/>
+ <function signature="takeObjectType(ObjectType&amp;&amp;)"/>
<value-type name="ArrayModifyTest">
<modify-function signature="sumIntArray(int, int*)">
@@ -510,7 +429,7 @@
</value-type>
<value-type name="ClassWithFunctionPointer">
- <suppress-warning text="skipping function 'ClassWithFunctionPointer::callFunctionPointer', unmatched parameter type 'void (*)(void*)'" />
+ <suppress-warning text="^skipping public function 'void ClassWithFunctionPointer::callFunctionPointer.*$" />
</value-type>
<value-type name="IntArray" generate="no"/>
@@ -538,6 +457,10 @@
<enum-type identified-by-value="AnonymousGlobalEnum_Value0"/>
<namespace-type name="SampleNamespace">
+ <namespace-type name="InlineNamespace">
+ <value-type name="ClassWithinInlineNamespace"/>
+ <enum-type name="EnumWithinInlineNamespace"/>
+ </namespace-type>
<enum-type name="Option"/>
<enum-type name="InValue"/>
<enum-type name="OutValue"/>
@@ -562,8 +485,12 @@
<modify-function signature="doSomethingWithArray(const unsigned char*, unsigned int, const char*)">
<modify-argument index="1">
<replace-type modified-type="const char*"/>
- <conversion-rule class="native">
- const unsigned char* %out = reinterpret_cast&lt;const unsigned char*>(Shiboken::String::toCString(%PYARG_1));
+ <conversion-rule>
+ <target-to-native>
+ <add-conversion>
+ const unsigned char* %out = reinterpret_cast&lt;const unsigned char*>(Shiboken::String::toCString(%PYARG_1));
+ </add-conversion>
+ </target-to-native>
</conversion-rule>
</modify-argument>
<modify-argument index="2">
@@ -644,6 +571,14 @@
<modify-function signature="hideFunction(HideType*)" remove="all"/>
<modify-field name="toBeRenamedField" rename="renamedField"/>
<modify-field name="readOnlyField" write="false"/>
+ <modify-function signature="virtualWithOutParameter(int&amp;)const">
+ <inject-code class="shell" position="override">
+ x = virtualWithOutParameterPyOverride(gil, pyOverride.object());
+ return;
+ </inject-code>
+ </modify-function>
+ <add-function signature="virtualWithOutParameterPyOverride()"
+ return-type="int" python-override="true"/>
</object-type>
<object-type name="Derived" polymorphic-id-expression="%1->type() == Derived::TpDerived">
@@ -665,7 +600,7 @@
</modify-function>
</object-type>
- <object-type name="ObjectType" hash-function="objectTypeHash">
+ <object-type name="ObjectType" hash-function="objectTypeHash" parent-management="yes">
<modify-function signature="deprecatedFunction()" deprecated="yes" />
<!-- rename function to avoid Python signature conflit -->
<modify-function signature="setObject(const Null&amp;)" rename="setNullObject" />
@@ -706,8 +641,8 @@
// CHECKTYPE and ISCONVERTIBLE are used here for test purposes, don't change them.
if (!%CHECKTYPE[ObjectTypeLayout*](layout) &amp;&amp; !%ISCONVERTIBLE[ObjectTypeLayout*](layout))
return;
- // %CHECKTYPE[ObjectTypeLayout*](layout)
- // %ISCONVERTIBLE[ObjectTypeLayout*](layout)
+ /* %CHECKTYPE[ObjectTypeLayout*](layout) */
+ /* %ISCONVERTIBLE[ObjectTypeLayout*](layout) */
ObjectTypeLayout* var;
var = %CONVERTTOCPP[ObjectTypeLayout*](layout);
// TODO-CONVERTER: erase this
@@ -794,7 +729,7 @@
</modify-function>
</object-type>
- <value-type name="ObjectTypeHolder"/>
+ <object-type name="ObjectTypeHolder"/>
<value-type name="OnlyCopy"/>
<value-type name="FriendOfOnlyCopy"/>
@@ -1187,14 +1122,14 @@
<modify-argument index="1">
<remove-argument/>
<conversion-rule class="native">
- int %out = PySequence_Size(%PYARG_1);
+ const auto %out = PySequence_Size(%PYARG_1);
</conversion-rule>
</modify-argument>
<modify-argument index="2">
<replace-type modified-type="PySequence" />
<conversion-rule class="native">
Shiboken::AutoArrayPointer&lt;Point&gt; %out(%1);
- for (int i = 0; i &lt; %1; ++i)
+ for (Py_ssize_t i = 0; i &lt; %1; ++i)
%out[i] = %CONVERTTOCPP[Point](PySequence_Fast_GET_ITEM(%PYARG_1, i));
</conversion-rule>
</modify-argument>
@@ -1237,14 +1172,18 @@
</modify-argument>
<modify-argument index="return">
<replace-type modified-type="PySequence"/>
- <conversion-rule class="native">
- Shiboken::AutoDecRef _py_ok_(PySequence_GetItem(%PYARG_0, 0));
- Shiboken::AutoDecRef _py_ret_(PySequence_GetItem(%PYARG_0, 1));
- *%2 = %CONVERTTOCPP[bool](_py_ok_);
- %RETURN_TYPE %out = %CONVERTTOCPP[%RETURN_TYPE](_py_ret_);
- </conversion-rule>
- <conversion-rule class="target">
- <insert-template name="differenceOfPointCoordinates_returnTarget"/>
+ <conversion-rule>
+ <target-to-native>
+ <add-conversion>
+ Shiboken::AutoDecRef _py_ok_(PySequence_GetItem(%PYARG_0, 0));
+ Shiboken::AutoDecRef _py_ret_(PySequence_GetItem(%PYARG_0, 1));
+ *%2 = %CONVERTTOCPP[bool](_py_ok_);
+ %RETURN_TYPE %out = %CONVERTTOCPP[%RETURN_TYPE](_py_ret_);
+ </add-conversion>
+ </target-to-native>
+ <native-to-target>
+ <insert-template name="differenceOfPointCoordinates_returnTarget"/>
+ </native-to-target>
</conversion-rule>
</modify-argument>
</modify-function>
@@ -1461,7 +1400,7 @@
}
</template>
<modify-function signature="getMargins(int*,int*,int*,int*)const">
- <modify-argument index="0">
+ <modify-argument index="return" pyi-type="Tuple[int, int, int, int]">
<replace-type modified-type="PyObject" />
</modify-argument>
<modify-argument index="1">
@@ -1638,15 +1577,15 @@
<modify-argument index="1">
<remove-argument/>
<conversion-rule class="native">
- int %out = PySequence_Size(%PYARG_1);
+ const auto %out = PySequence_Size(%PYARG_1);
</conversion-rule>
</modify-argument>
<modify-argument index="2">
<replace-type modified-type="PySequence"/>
<conversion-rule class="native">
- int numItems = PySequence_Size(%PYARG_1);
+ const auto numItems = PySequence_Size(%PYARG_1);
Shiboken::AutoArrayPointer&lt;int&gt; %out(numItems);
- for (int i = 0; i &lt; numItems; ++i) {
+ for (Py_ssize_t i = 0; i &lt; numItems; ++i) {
if (%CHECKTYPE[int](PySequence_Fast_GET_ITEM(%PYARG_1, i)))
%out[i] = %CONVERTTOCPP[int](PySequence_Fast_GET_ITEM(%PYARG_1, i));
else if (%ISCONVERTIBLE[int](PySequence_Fast_GET_ITEM(%PYARG_1, i)))
@@ -1963,13 +1902,13 @@
</value-type>
<value-type name="Size">
+ <extra-includes>
+ <include file-name="string" location="global"/>
+ <include file-name="sstream" location="global"/>
+ </extra-includes>
<add-function signature="Size(const char*)">
- <inject-code class="target" position="beginning">
- %0 = new %TYPE();
- </inject-code>
- <inject-code class="target" position="end">
- Shiboken::AutoDecRef result(PyObject_CallMethod(%PYSELF, const_cast&lt;char*>("setHeight"), const_cast&lt;char*>("i"), 2));
- </inject-code>
+ <inject-code class="target" position="beginning"
+ file="samplesnippets.cpp" snippet="size_char_ct"/>
</add-function>
</value-type>
<value-type name="SizeF"/>
@@ -2020,6 +1959,9 @@
}
}
}
+ // PySIDE-1735: Enums are now implemented in Python, so we need to avoid asserts.
+ if (PyErr_Occurred())
+ break;
const char** %out = 0;
</conversion-rule>
</modify-argument>
@@ -2068,7 +2010,12 @@
<object-type name="Collector" stream="yes"/>
- <value-type name="IntWrapper" />
+ <value-type name="IntWrapper">
+ <inject-code class="native" position="beginning"
+ file="samplesnippets.cpp" snippet="intwrapper_add_ints"/>
+ <add-pymethoddef name="add_ints" function="Sbk_IntWrapper_add_ints"
+ flags="METH_VARARGS"/>
+ </value-type>
<value-type name="Str" hash-function="strHash">
<add-function signature="__str__" return-type="PyObject*">
@@ -2126,6 +2073,7 @@
<conversion-rule>
<target-to-native>
<add-conversion type="Py_None">
+ SBK_UNUSED(%in)
%out = %OUTTYPE();
</add-conversion>
<add-conversion type="PyObject" check="Shiboken::String::check(%in) || PyBytes_Check(%in)">
@@ -2277,19 +2225,20 @@
</add-function>
</value-type>
- <value-type name="SimpleFile">
+ <object-type name="SimpleFile">
<modify-function signature="open()">
<modify-argument index="return">
<remove-argument/>
</modify-argument>
<inject-code class="target" position="end" file="simplefile_glue.cpp"/>
</modify-function>
- </value-type>
+ </object-type>
<value-type name="VoidHolder" />
<object-type name="PrivateCtor" />
<object-type name="PrivateDtor" />
+ <value-type name="DeletedDefaultCtor"/>
<object-type name="Base1"/>
<object-type name="Base2"/>
@@ -2430,15 +2379,24 @@
<value-type name="Expression" />
- <object-type name="ExceptionTest" exception-handling="auto-on"/>
-
- <value-type name="ModelIndex" />
- <value-type name="ReferentModelIndex">
- <modify-function signature="operator const ModelIndex&amp;()const">
+ <object-type name="ExceptionTest" exception-handling="auto-on">
+ <modify-function signature="create(bool)">
<modify-argument index="return">
<define-ownership owner="c++"/>
</modify-argument>
+ <inject-code class="target" position="end">
+ // Test comment
+ </inject-code>
</modify-function>
+ </object-type>
+
+ <value-type name="ModelIndex" />
+ <value-type name="ReferentModelIndex">
+ <modify-function signature="operator const ModelIndex&amp;()const">
+ <modify-argument index="return">
+ <define-ownership owner="c++"/>
+ </modify-argument>
+ </modify-function>
</value-type>
<value-type name="PersistentModelIndex" />
@@ -2451,6 +2409,31 @@
<object-type name="ObjectTypeByValue" />
+ <value-type name="StdComplex">
+ <extra-includes>
+ <include file-name="cmath" location="global"/>
+ </extra-includes>
+ <!-- PYSIDE-2446: number protocols without a Py_nb_ constant. -->
+ <add-function signature="__floor__()" return-type="double">
+ <inject-code class="target" position="end"
+ file="samplesnippets.cpp" snippet="stdcomplex_floor"/>
+ </add-function>
+ <add-function signature="__ceil__()" return-type="double">
+ <inject-code class="target" position="end"
+ file="samplesnippets.cpp" snippet="stdcomplex_ceil"/>
+ </add-function>
+ <!-- PYSIDE-2446: number protocols with Py_nb_ constants. -->
+ <add-function signature="__abs__()" return-type="double">
+ <inject-code class="target" position="end"
+ file="samplesnippets.cpp" snippet="stdcomplex_abs"/>
+ </add-function>
+ <add-function signature="__pow__(StdComplex@exp@)" return-type="StdComplex">
+ <inject-code class="target" position="end"
+ file="samplesnippets.cpp" snippet="stdcomplex_pow"/>
+ </add-function>
+
+ </value-type>
+
<object-type name="TemplatePtr">
<modify-function signature="dummy(std::list&lt;std::pair&lt;BlackBox *, BlackBox *&gt; &gt; &amp;)" rename="dummy_method" />
</object-type>
@@ -2466,20 +2449,9 @@
<suppress-warning text="horribly broken type '__off64_t'" />
<suppress-warning text="enum '__codecvt_result' does not have a type entry or is not an enum" />
- <suppress-warning text="Pure virtual method &quot;Abstract::hideFunction(HideType*)&quot; must be implement but was completely removed on typesystem." />
- <suppress-warning text="hiding of function 'takeChild' in class 'ObjectType'" />
+ <suppress-warning text="Pure virtual method 'Abstract::hideFunction(HideType*)' must be implemented but was completely removed on type system." />
<suppress-warning text="Shadowing: MDerived2::castToBase3() and MDerived3::castToBase3()" />
- <suppress-warning text="hiding of function 'takeChild' in class 'Bucket'" />
- <suppress-warning text="visibility of function 'publicMethod' modified in class 'MDerived1'" />
- <suppress-warning text="hiding of function 'doNothingInPublic3' in class 'Overload2'" />
- <suppress-warning text="hiding of function 'takeChild' in class 'ObjectModel'" />
- <suppress-warning text="hiding of function 'takeChild' in class 'ObjectView'" />
- <suppress-warning text="visibility of function 'publicMethod' modified in class 'MDerived3'" />
- <suppress-warning text="skipping function 'InjectCode::toStr', unmatched parameter type 'T const&amp;'" />
-
- <suppress-warning text="^skipping function 'std::enable_if.*ComparisonTester::operator[!=]=.*ComparisonTester.*$"/>
-
- <!-- Do not fix this warning, the generator should be able to handle this situation for Object Types. -->
- <suppress-warning text="Argument in position 1 of added function 'SampleNamespace::passReferenceToObjectType(ObjectType * arg__1)', has a type that is not a reference, while the argument in the corresponding position in C++ function 'SampleNamespace::passReferenceToObjectType(const ObjectType &amp; obj, int multiplier)' is a reference." />
+ <suppress-warning text="Visibility of function 'publicMethod' modified in class 'MDerived1'" />
+ <suppress-warning text="^skipping public function 'std::enable_if.*ComparisonTester::operator[!=]=.*ComparisonTester.*$"/>
</typesystem>
diff --git a/sources/shiboken6/tests/samplebinding/typesystypedef_test.py b/sources/shiboken6/tests/samplebinding/typesystypedef_test.py
index 70c22f657..f7f5342ee 100644
--- a/sources/shiboken6/tests/samplebinding/typesystypedef_test.py
+++ b/sources/shiboken6/tests/samplebinding/typesystypedef_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test case for a class that holds a void pointer.'''
@@ -40,8 +13,7 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from shiboken_paths import init_paths
init_paths()
-from sample import (ValueWithUnitUser, ValueWithUnitDoubleInch,
- ValueWithUnitDoubleMillimeter)
+from sample import ValueWithUnitUser, ValueWithUnitDoubleInch
class TypeSysTypeDefTest(unittest.TestCase):
diff --git a/sources/shiboken6/tests/samplebinding/unsafe_parent_test.py b/sources/shiboken6/tests/samplebinding/unsafe_parent_test.py
index ab9895f1f..2a7e5cac7 100644
--- a/sources/shiboken6/tests/samplebinding/unsafe_parent_test.py
+++ b/sources/shiboken6/tests/samplebinding/unsafe_parent_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for ...'''
@@ -42,6 +15,7 @@ init_paths()
from sample import ObjectType
+
class DerivedObjectType(ObjectType):
def isPython(self):
return True
@@ -49,12 +23,13 @@ class DerivedObjectType(ObjectType):
def createChild(self, parent):
return DerivedObjectType(parent)
+
class ParentTest(unittest.TestCase):
def testUunsafeParent(self):
o = DerivedObjectType()
o.callVirtualCreateChild()
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/useraddedctor_test.py b/sources/shiboken6/tests/samplebinding/useraddedctor_test.py
index 910037cd5..45d4095b6 100644
--- a/sources/shiboken6/tests/samplebinding/useraddedctor_test.py
+++ b/sources/shiboken6/tests/samplebinding/useraddedctor_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for user added constructors'''
@@ -39,14 +12,15 @@ from pathlib import Path
sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from shiboken_paths import init_paths
init_paths()
-from sample import *
+from sample import Size
+
class PointTest(unittest.TestCase):
def testUsingSelfOnCtor(self):
# This is a user added ctor and no errors should happen!
- s = Size("oi")
+ s = Size("3x2")
self.assertEqual(s.height(), 2)
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/virtualdtor_test.py b/sources/shiboken6/tests/samplebinding/virtualdtor_test.py
index 8f29eca3c..6be870269 100644
--- a/sources/shiboken6/tests/samplebinding/virtualdtor_test.py
+++ b/sources/shiboken6/tests/samplebinding/virtualdtor_test.py
@@ -1,36 +1,10 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for virtual destructor.'''
+import gc
import os
import sys
import unittest
@@ -42,10 +16,12 @@ init_paths()
from sample import VirtualDtor
+
class ExtendedVirtualDtor(VirtualDtor):
def __init__(self):
VirtualDtor.__init__(self)
+
class VirtualDtorTest(unittest.TestCase):
'''Test case for virtual destructor.'''
@@ -58,6 +34,8 @@ class VirtualDtorTest(unittest.TestCase):
for i in range(1, 10):
vd = VirtualDtor()
del vd
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertEqual(VirtualDtor.dtorCalled(), dtor_called + i)
def testVirtualDtorOnCppCreatedObject(self):
@@ -66,6 +44,8 @@ class VirtualDtorTest(unittest.TestCase):
for i in range(1, 10):
vd = VirtualDtor.create()
del vd
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertEqual(VirtualDtor.dtorCalled(), dtor_called + i)
def testDtorOnDerivedClass(self):
@@ -74,9 +54,10 @@ class VirtualDtorTest(unittest.TestCase):
for i in range(1, 10):
evd = ExtendedVirtualDtor()
del evd
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertEqual(ExtendedVirtualDtor.dtorCalled(), dtor_called + i)
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/virtualmethods_test.py b/sources/shiboken6/tests/samplebinding/virtualmethods_test.py
index 1c842993c..52dc66c90 100644
--- a/sources/shiboken6/tests/samplebinding/virtualmethods_test.py
+++ b/sources/shiboken6/tests/samplebinding/virtualmethods_test.py
@@ -1,36 +1,10 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test cases for virtual methods.'''
+import gc
import os
import sys
import unittest
@@ -40,10 +14,11 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from shiboken_paths import init_paths
init_paths()
-from sample import *
+from sample import Point, Str, StrList, VirtualDaughter, VirtualMethods
import warnings
+
class ExtendedVirtualMethods(VirtualMethods):
def __init__(self):
VirtualMethods.__init__(self)
@@ -62,6 +37,7 @@ class ExtendedVirtualMethods(VirtualMethods):
# check if recursion is caused by injected code that calls C++.
return VirtualMethods.recursionOnModifiedVirtual(self, arg) + 10
+
class ExtendedVirtualDaughter(VirtualDaughter):
def __init__(self, name):
VirtualDaughter.__init__(self, name)
@@ -71,6 +47,7 @@ class ExtendedVirtualDaughter(VirtualDaughter):
self.grand_daughter_name_called = True
return VirtualDaughter.name(self).prepend('Extended')
+
class ExtendedExtendedVirtualDaughter(ExtendedVirtualDaughter):
def __init__(self, name):
ExtendedVirtualDaughter.__init__(self, name)
@@ -80,6 +57,7 @@ class ExtendedExtendedVirtualDaughter(ExtendedVirtualDaughter):
self.grand_grand_daughter_name_called = True
return ExtendedVirtualDaughter.name(self).prepend('Extended')
+
class VirtualMethodsTest(unittest.TestCase):
'''Test case for virtual methods'''
@@ -88,9 +66,12 @@ class VirtualMethodsTest(unittest.TestCase):
def tearDown(self):
del self.prefix_from_codeinjection
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
def testReimplementedVirtualMethod0(self):
- '''Test Python override of a virtual method with various different parameters is correctly called from C++.'''
+ '''Test Python override of a virtual method with various different parameters
+ is correctly called from C++.'''
vm = VirtualMethods()
evm = ExtendedVirtualMethods()
pt = Point(1.1, 2.2)
@@ -144,6 +125,6 @@ class PrettyErrorMessageTest(unittest.TestCase):
obj = ExtendedVirtualMethods()
self.assertRaises(RuntimeWarning, obj.callStrListToStdList, StrList())
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/visibilitychange_test.py b/sources/shiboken6/tests/samplebinding/visibilitychange_test.py
index 918d957b2..becdf7423 100644
--- a/sources/shiboken6/tests/samplebinding/visibilitychange_test.py
+++ b/sources/shiboken6/tests/samplebinding/visibilitychange_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -38,17 +11,17 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from shiboken_paths import init_paths
init_paths()
-from sample import *
+from sample import Base1, MDerived1
+
class VisibilityChangeTest(unittest.TestCase):
def testVisibilityChange(self):
b1 = Base1()
- b1.publicMethod() # ok...
+ b1.publicMethod() # ok...
d1 = MDerived1()
- self.assertRaises(TypeError, d1.publicMethod);
+ self.assertRaises(TypeError, d1.publicMethod)
+
if __name__ == '__main__':
unittest.main()
-
-
diff --git a/sources/shiboken6/tests/samplebinding/voidholder_test.py b/sources/shiboken6/tests/samplebinding/voidholder_test.py
index da4042a98..186cb473e 100644
--- a/sources/shiboken6/tests/samplebinding/voidholder_test.py
+++ b/sources/shiboken6/tests/samplebinding/voidholder_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test case for a class that holds a void pointer.'''
@@ -43,6 +16,7 @@ init_paths()
from sample import VoidHolder, Point
from shiboken6 import Shiboken
+
class VoidHolderTest(unittest.TestCase):
'''Test case for void pointer manipulation.'''
@@ -71,6 +45,6 @@ class VoidHolderTest(unittest.TestCase):
voidholder = VoidHolder()
self.assertEqual(voidholder.voidPointer(), None)
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/sources/shiboken6/tests/samplebinding/weakref_test.py b/sources/shiboken6/tests/samplebinding/weakref_test.py
index 6ca031c0d..01c6d58d5 100644
--- a/sources/shiboken6/tests/samplebinding/weakref_test.py
+++ b/sources/shiboken6/tests/samplebinding/weakref_test.py
@@ -1,36 +1,10 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
'''Test weakref support'''
+import gc
import os
import sys
import unittest
@@ -56,15 +30,19 @@ class WeakrefBasicTest(unittest.TestCase):
def testBasic(self):
'''ObjectType weakref'''
obj = ObjectType()
- ref = weakref.ref(obj, self.cb)
+ ref = weakref.ref(obj, self.cb) # noqa: F841
del obj
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertTrue(self.called)
def testPrivateDtor(self):
'''PrivateDtor weakref'''
obj = PrivateDtor.instance()
- ref = weakref.ref(obj, self.cb)
+ ref = weakref.ref(obj, self.cb) # noqa: F841
del obj
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertTrue(self.called)
diff --git a/sources/shiboken6/tests/samplebinding/writableclassdict_test.py b/sources/shiboken6/tests/samplebinding/writableclassdict_test.py
index b7668e497..dfc962db9 100644
--- a/sources/shiboken6/tests/samplebinding/writableclassdict_test.py
+++ b/sources/shiboken6/tests/samplebinding/writableclassdict_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -40,7 +13,10 @@ init_paths()
from sample import Point
-class ExtPoint(Point): pass
+
+class ExtPoint(Point):
+ pass
+
class TestWritableClassDict(unittest.TestCase):
def testSetattrOnClass(self):
@@ -56,5 +32,6 @@ class TestWritableClassDict(unittest.TestCase):
pt = ExtPoint()
self.assertEqual(pt.bar, 321)
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken6/tests/shiboken_paths.py b/sources/shiboken6/tests/shiboken_paths.py
index c829c0ab9..3ec940f2e 100644
--- a/sources/shiboken6/tests/shiboken_paths.py
+++ b/sources/shiboken6/tests/shiboken_paths.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
diff --git a/sources/shiboken6/tests/shiboken_test_helper.py b/sources/shiboken6/tests/shiboken_test_helper.py
index 793baf4ad..14fe6a2d1 100644
--- a/sources/shiboken6/tests/shiboken_test_helper.py
+++ b/sources/shiboken6/tests/shiboken_test_helper.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
def objectFullname(t):
diff --git a/sources/shiboken6/tests/shibokenmodule/module_test.py b/sources/shiboken6/tests/shibokenmodule/module_test.py
index f75d28c3b..9f9f8f5a4 100644
--- a/sources/shiboken6/tests/shibokenmodule/module_test.py
+++ b/sources/shiboken6/tests/shibokenmodule/module_test.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
import sys
@@ -32,17 +7,19 @@ import unittest
from pathlib import Path
sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
-from shiboken_paths import init_paths
+from shiboken_paths import init_paths # noqa: E402
init_paths()
-from shiboken6 import Shiboken
-from sample import *
+from shiboken6 import Shiboken # noqa: E402
+from sample import BlackBox, ObjectType, ObjectModel, ObjectView, Point # noqa: E402
+
class MultipleInherited (ObjectType, Point):
def __init__(self):
ObjectType.__init__(self)
Point.__init__(self)
+
class TestShiboken(unittest.TestCase):
def testIsValid(self):
self.assertTrue(Shiboken.isValid(object()))
@@ -68,6 +45,16 @@ class TestShiboken(unittest.TestCase):
self.assertTrue(Shiboken.createdByPython(bb))
bb.disposeObjectType(bb.keepObjectType(obj))
+ def testWrapInstancePreserveId(self):
+ """PYSIDE-31: Verify that wrapInstance() returns the existing wrapper
+ even if a base class type is specified."""
+ v = ObjectView() # inherits ObjectType
+ addresses = Shiboken.getCppPointer(v)
+ self.assertTrue(addresses)
+ address = addresses[0]
+ wrapped = Shiboken.wrapInstance(address, ObjectType)
+ self.assertEqual(id(wrapped), id(v))
+
def testIsOwnedByPython(self):
obj = ObjectType()
self.assertTrue(Shiboken.ownedByPython(obj))
@@ -80,7 +67,7 @@ class TestShiboken(unittest.TestCase):
p = ObjectType()
obj = ObjectType(p)
obj2 = ObjectType(obj)
- obj3 = ObjectType(obj)
+ obj3 = ObjectType(obj) # noqa: F841
self.assertEqual(Shiboken.dump(None), "Ordinary Python type.")
Shiboken.dump(obj)
@@ -94,9 +81,9 @@ class TestShiboken(unittest.TestCase):
# Don't crash even after deleting an object
Shiboken.invalidate(obj)
- Shiboken.dump(obj) # deleted
- Shiboken.dump(p) # child deleted
- Shiboken.dump(obj2) # parent deleted
+ Shiboken.dump(obj) # deleted
+ Shiboken.dump(p) # child deleted
+ Shiboken.dump(obj2) # parent deleted
def testDelete(self):
obj = ObjectType()
diff --git a/sources/shiboken6/tests/smartbinding/CMakeLists.txt b/sources/shiboken6/tests/smartbinding/CMakeLists.txt
index 637420651..2e729321e 100644
--- a/sources/shiboken6/tests/smartbinding/CMakeLists.txt
+++ b/sources/shiboken6/tests/smartbinding/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(smart)
set(smart_TYPESYSTEM
@@ -13,18 +16,38 @@ ${CMAKE_CURRENT_BINARY_DIR}/smart/sharedptr_integer_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/smart/registry_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/smart/smart_integer2_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/smart/sharedptr_integer2_wrapper.cpp
+${CMAKE_CURRENT_BINARY_DIR}/smart/stdsharedptrtestbench_wrapper.cpp
+${CMAKE_CURRENT_BINARY_DIR}/smart/stdsharedptrvirtualmethodtester_wrapper.cpp
+${CMAKE_CURRENT_BINARY_DIR}/smart/std_shared_ptr_integer_wrapper.cpp
+${CMAKE_CURRENT_BINARY_DIR}/smart/std_shared_ptr_int_wrapper.cpp
+${CMAKE_CURRENT_BINARY_DIR}/smart/std_wrapper.cpp
+${CMAKE_CURRENT_BINARY_DIR}/smart/std_optional_int_wrapper.cpp
+${CMAKE_CURRENT_BINARY_DIR}/smart/std_optional_integer_wrapper.cpp
+${CMAKE_CURRENT_BINARY_DIR}/smart/std_unique_ptr_integer_wrapper.cpp
+${CMAKE_CURRENT_BINARY_DIR}/smart/std_unique_ptr_integer2_wrapper.cpp
+${CMAKE_CURRENT_BINARY_DIR}/smart/std_unique_ptr_int_wrapper.cpp
+${CMAKE_CURRENT_BINARY_DIR}/smart/stdoptionaltestbench_wrapper.cpp
+${CMAKE_CURRENT_BINARY_DIR}/smart/stduniqueptrtestbench_wrapper.cpp
+${CMAKE_CURRENT_BINARY_DIR}/smart/stduniqueptrvirtualmethodtester_wrapper.cpp
+${CMAKE_CURRENT_BINARY_DIR}/smart/test_wrapper.cpp
)
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/smart-binding.txt.in"
"${CMAKE_CURRENT_BINARY_DIR}/smart-binding.txt" @ONLY)
+shiboken_get_tool_shell_wrapper(shiboken tool_wrapper)
+
add_custom_command(
-OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/mjb_rejected_classes.log"
-BYPRODUCTS ${smart_SRC}
-COMMAND shiboken6 --project-file=${CMAKE_CURRENT_BINARY_DIR}/smart-binding.txt ${GENERATOR_EXTRA_FLAGS}
-DEPENDS ${smart_TYPESYSTEM} ${CMAKE_CURRENT_SOURCE_DIR}/global.h shiboken6
-WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
-COMMENT "Running generator for 'smart' test binding..."
+ OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/mjb_rejected_classes.log"
+ BYPRODUCTS ${smart_SRC}
+ COMMAND
+ ${tool_wrapper}
+ $<TARGET_FILE:Shiboken6::shiboken6>
+ --project-file=${CMAKE_CURRENT_BINARY_DIR}/smart-binding.txt
+ ${GENERATOR_EXTRA_FLAGS}
+ DEPENDS ${smart_TYPESYSTEM} ${CMAKE_CURRENT_SOURCE_DIR}/global.h Shiboken6::shiboken6
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ COMMENT "Running generator for 'smart' test binding..."
)
add_library(smart MODULE ${smart_SRC})
diff --git a/sources/shiboken6/tests/smartbinding/global.h b/sources/shiboken6/tests/smartbinding/global.h
index 959859b40..5bec15063 100644
--- a/sources/shiboken6/tests/smartbinding/global.h
+++ b/sources/shiboken6/tests/smartbinding/global.h
@@ -1,29 +1,4 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "smart.h"
diff --git a/sources/shiboken6/tests/smartbinding/smart-binding.txt.in b/sources/shiboken6/tests/smartbinding/smart-binding.txt.in
index 699f0bfe6..a2c73c6bf 100644
--- a/sources/shiboken6/tests/smartbinding/smart-binding.txt.in
+++ b/sources/shiboken6/tests/smartbinding/smart-binding.txt.in
@@ -13,3 +13,4 @@ typesystem-path = @CMAKE_CURRENT_SOURCE_DIR@
enable-parent-ctor-heuristic
use-isnull-as-nb_nonzero
+lean-headers
diff --git a/sources/shiboken6/tests/smartbinding/smart_pointer_test.py b/sources/shiboken6/tests/smartbinding/smart_pointer_test.py
index 1bdce333e..8d4272558 100644
--- a/sources/shiboken6/tests/smartbinding/smart_pointer_test.py
+++ b/sources/shiboken6/tests/smartbinding/smart_pointer_test.py
@@ -1,33 +1,6 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import gc
import os
@@ -39,32 +12,49 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from shiboken_paths import init_paths
init_paths()
from copy import copy
-from smart import Obj, Registry, Integer
+from smart import (Obj, Registry, Integer, SharedPtr_Integer, std)
+
def objCount():
return Registry.getInstance().countObjects()
+
def integerCount():
return Registry.getInstance().countIntegers()
+
+def integerFromValue(v):
+ result = Integer()
+ result.setValue(v)
+ return result
+
+
class SmartPointerTests(unittest.TestCase):
- def testObjSmartPointer(self):
- # Uncomment to see more debug info about creation of objects and ref counts.
- # Registry.getInstance().setShouldPrint(True)
+ def setUp(self):
+ super().setUp()
+ if os.environ.get("VERBOSE"):
+ Registry.getInstance().setVerbose(True)
+
+ def testObjSmartPointer(self):
# Create Obj.
o = Obj()
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertEqual(objCount(), 1)
# Create a shared pointer to an Obj together with an Obj.
- ptrToObj = o.giveSharedPtrToObj()
+ ptrToObj = o.createSharedPtrObj()
self.assertEqual(objCount(), 2)
# Delete the old Obj.
o = None
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertEqual(objCount(), 1)
- # Get a wrapper to the Obj inside of the shared pointer, object count should not change.
+ # Get a wrapper to the Obj inside of the shared pointer, object count
+ # should not change.
obj = ptrToObj.data()
self.assertEqual(objCount(), 1)
obj.m_integer = 50
@@ -74,12 +64,13 @@ class SmartPointerTests(unittest.TestCase):
ptrToObj.m_integer = 100
self.assertEqual(ptrToObj.m_integer, 100)
- # Get inner PyObject via shared pointer (like operator->) and set value in it.
+ # Get inner PyObject via shared pointer (like operator->) and set
+ # value in it.
ptrToObj.m_internalInteger.m_int = 200
self.assertEqual(ptrToObj.m_internalInteger.m_int, 200)
- # Pass smart pointer as argument to a method, return value is the value of m_integer of
- # passed Obj inside the smart pointer.
+ # Pass smart pointer as argument to a method, return value is the value
+ # of m_integer of passed Obj inside the smart pointer.
result = ptrToObj.takeSharedPtrToObj(ptrToObj)
self.assertEqual(result, 100)
@@ -89,38 +80,42 @@ class SmartPointerTests(unittest.TestCase):
result = None
if integerCount() > 1:
gc.collect()
- print('Running garbage collector for reference test', file=sys.stderr)
+ print('Running garbage collector for reference test',
+ file=sys.stderr)
self.assertEqual(integerCount(), 1)
# Make a copy of the shared pointer, object count should not change.
ptrToObj2 = copy(ptrToObj)
self.assertEqual(objCount(), 1)
- # Delete the first shared pointer, object count should not change because the second
- # one still has a reference.
+ # Delete the first shared pointer, object count should not change
+ # because the second one still has a reference.
del ptrToObj
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertEqual(objCount(), 1)
# Delete the second smart pointer, object should be deleted.
del ptrToObj2
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertEqual(objCount(), 0)
self.assertEqual(integerCount(), 0)
def testIntegerSmartPointer(self):
- # Uncomment to see more debug info about creation of objects and ref counts.
- # Registry.getInstance().setShouldPrint(True)
-
# Create Obj.
o = Obj()
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertEqual(objCount(), 1)
# Create a shared pointer to an Integer together with an Integer.
- ptrToInteger = o.giveSharedPtrToInteger()
+ ptrToInteger = o.createSharedPtrInteger()
self.assertEqual(objCount(), 1)
self.assertEqual(integerCount(), 2)
- # Get a wrapper to the Integer inside of the shared pointer, integer count should not
- # change.
+ # Get a wrapper to the Integer inside of the shared pointer, integer
+ # count should not change.
integer = ptrToInteger.data()
self.assertEqual(integerCount(), 2)
integer.m_int = 50
@@ -134,8 +129,8 @@ class SmartPointerTests(unittest.TestCase):
ptrToInteger.m_int = 100
self.assertEqual(ptrToInteger.m_int, 100)
- # Pass smart pointer as argument to a method, return value is the value of m_int of
- # passed Integer inside the smart pointer.
+ # Pass smart pointer as argument to a method, return value is the
+ # value of m_int of passed Integer inside the smart pointer.
result = o.takeSharedPtrToInteger(ptrToInteger)
self.assertEqual(result, 100)
@@ -143,28 +138,31 @@ class SmartPointerTests(unittest.TestCase):
ptrToInteger2 = copy(ptrToInteger)
self.assertEqual(integerCount(), 2)
- # Delete the first shared pointer, integer count should not change because the second
- # one still has a reference.
+ # Delete the first shared pointer, integer count should not change
+ # because the second one still has a reference.
del ptrToInteger
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertEqual(integerCount(), 2)
# Delete the second smart pointer, integer should be deleted.
del ptrToInteger2
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertEqual(objCount(), 1)
self.assertEqual(integerCount(), 1)
# Delete the original object which was used to create the integer.
del o
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertEqual(objCount(), 0)
self.assertEqual(integerCount(), 0)
def testConstIntegerSmartPointer(self):
- # Uncomment to see more debug info about creation of objects and ref counts.
- # Registry.getInstance().setShouldPrint(True)
-
# Create Obj.
o = Obj()
- ptrToConstInteger = o.giveSharedPtrToConstInteger()
+ ptrToConstInteger = o.createSharedPtrConstInteger()
self.assertEqual(ptrToConstInteger.m_int, 456)
result = o.takeSharedPtrToConstInteger(ptrToConstInteger)
self.assertEqual(result, 456)
@@ -173,10 +171,12 @@ class SmartPointerTests(unittest.TestCase):
def testSmartPointersWithNamespace(self):
# Create the main object
o = Obj()
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertEqual(objCount(), 1)
# Create a shared pointer to an Integer together with an Integer.
- ptrToInteger = o.giveSharedPtrToInteger2()
+ ptrToInteger = o.createSharedPtrInteger2()
self.assertEqual(objCount(), 1)
self.assertEqual(integerCount(), 2)
@@ -188,17 +188,25 @@ class SmartPointerTests(unittest.TestCase):
o = Obj()
# Create a list of shared objects
- ptrToObjList = o.giveSharedPtrToObjList(10)
+ ptrToObjList = o.createSharedPtrObjList(10)
self.assertEqual(len(ptrToObjList), 10)
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertEqual(objCount(), 11)
# Remove one from the list
ptrToObjList.pop()
self.assertEqual(len(ptrToObjList), 9)
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
+ # PYSIDE-535: Why do I need to do it twice, here?
+ gc.collect()
self.assertEqual(objCount(), 10)
# clear and delete all objects in the list
del ptrToObjList[:] # Python 2.7 lists have no clear method
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertEqual(len(ptrToObjList), 0)
self.assertEqual(objCount(), 1)
@@ -206,7 +214,7 @@ class SmartPointerTests(unittest.TestCase):
# Create Obj.
o = Obj()
# Create a shared pointer to an Obj together with an Obj.
- ptrToObj = o.giveSharedPtrToObj()
+ ptrToObj = o.createSharedPtrObj()
try:
ptrToObj.typo
self.assertFail()
@@ -216,16 +224,79 @@ class SmartPointerTests(unittest.TestCase):
def testSmartPointerConversions(self):
# Create Obj.
o = Obj()
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
self.assertEqual(objCount(), 1)
self.assertEqual(integerCount(), 1)
# Create a shared pointer to an Integer2
- integer2 = o.giveSharedPtrToInteger2()
+ integer2 = o.createSharedPtrInteger2()
+ # User defined name
+ self.assertEqual(type(integer2).__name__, "SmartInteger2Ptr")
+ self.assertTrue("smart.Test.SmartInteger2Ptr" in repr(type(integer2)))
self.assertEqual(integer2.value(), 456)
# pass Smart<Integer2> to a function that accepts Smart<Integer>
r = o.takeSharedPtrToInteger(integer2)
self.assertEqual(r, integer2.value())
+ def testSmartPointerValueComparison(self):
+ """Test a pointee class with comparison operators."""
+ four = Obj.createSharedPtrInteger(4)
+ four2 = Obj.createSharedPtrInteger(4)
+ five = Obj.createSharedPtrInteger(5)
+ self.assertTrue(four == four)
+ self.assertTrue(four == four2)
+ self.assertFalse(four != four)
+ self.assertFalse(four != four2)
+ self.assertFalse(four < four)
+ self.assertTrue(four <= four)
+ self.assertFalse(four > four)
+ self.assertTrue(four >= four)
+ self.assertFalse(four == five)
+ self.assertTrue(four != five)
+ self.assertTrue(four < five)
+ self.assertTrue(four <= five)
+ self.assertFalse(four > five)
+ self.assertFalse(four >= five)
+ self.assertTrue(five > four)
+
+ self.assertRaises(NotImplementedError,
+ lambda: Obj.createNullSharedPtrInteger() == four)
+
+ def testSmartPointerObjectComparison(self):
+ """Test a pointee class without comparison operators."""
+ o1 = Obj.createSharedPtrObj()
+ o2 = Obj.createSharedPtrObj()
+ self.assertTrue(o1 == o1)
+ self.assertFalse(o1 != o1)
+ self.assertFalse(o1 == o2)
+ self.assertTrue(o1 != o2)
+
+ def testOperatorNbBool(self):
+ null_ptr = Obj.createNullSharedPtrInteger()
+ self.assertFalse(null_ptr)
+ zero = Obj.createSharedPtrInteger(0)
+ self.assertTrue(zero)
+
+ def testParameterNone(self):
+ o = Obj()
+ null_ptr = Obj.createNullSharedPtrInteger()
+ o.takeSharedPtrToInteger(null_ptr)
+ o.takeSharedPtrToIntegerByConstRef(null_ptr)
+ o.takeSharedPtrToInteger(None)
+ o.takeSharedPtrToIntegerByConstRef(None)
+
+ def testConstruction(self):
+ p1 = SharedPtr_Integer(integerFromValue(42))
+ self.assertEqual(p1.value(), 42)
+
+ p2 = std.shared_ptr_Integer(integerFromValue(42))
+ self.assertEqual(p2.value(), 42)
+ p2.reset(integerFromValue(43))
+ self.assertEqual(p2.value(), 43)
+ gc.collect()
+
+
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken6/tests/smartbinding/smartbinding.pyproject b/sources/shiboken6/tests/smartbinding/smartbinding.pyproject
new file mode 100644
index 000000000..d0855ef82
--- /dev/null
+++ b/sources/shiboken6/tests/smartbinding/smartbinding.pyproject
@@ -0,0 +1,7 @@
+{
+ "files": ["smart_pointer_test.py",
+ "std_optional_test.py",
+ "std_shared_ptr_test.py",
+ "std_unique_ptr_test.py",
+ "typesystem_smart.xml"]
+}
diff --git a/sources/shiboken6/tests/smartbinding/std_optional_test.py b/sources/shiboken6/tests/smartbinding/std_optional_test.py
new file mode 100644
index 000000000..bee573548
--- /dev/null
+++ b/sources/shiboken6/tests/smartbinding/std_optional_test.py
@@ -0,0 +1,69 @@
+#!/usr/bin/env python
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from shiboken_paths import init_paths
+init_paths()
+from smart import Integer, StdOptionalTestBench, std
+
+
+def call_func_on_optional(o):
+ o.printInteger()
+
+
+def integer_from_value(v):
+ result = Integer()
+ result.setValue(v)
+ return result
+
+
+class StdOptionalTests(unittest.TestCase):
+
+ def testCInt(self):
+ b = StdOptionalTestBench()
+ ci = b.optionalInt()
+ self.assertFalse(ci.has_value())
+ b.setOptionalIntValue(42)
+ ci = b.optionalInt()
+ self.assertTrue(ci.has_value())
+ self.assertEqual(ci.value(), 42)
+ b.setOptionalInt(ci)
+ ci = b.optionalInt()
+ self.assertTrue(ci.has_value())
+ self.assertEqual(ci.value(), 42)
+
+ ci = std.optional_int(43)
+ self.assertEqual(ci.value(), 43)
+
+ def testInteger(self):
+ b = StdOptionalTestBench()
+ i = b.optionalInteger()
+ self.assertFalse(i.has_value())
+ self.assertFalse(i)
+ # Must not throw a C++ exception
+ self.assertRaises(AttributeError, call_func_on_optional, i)
+
+ b.setOptionalIntegerValue(integer_from_value(42))
+ i = b.optionalInteger()
+ self.assertTrue(i.has_value())
+ self.assertEqual(i.value().value(), 42)
+ i.printInteger()
+ print(i)
+ b.setOptionalInteger(i)
+ i = b.optionalInteger()
+ self.assertTrue(i.has_value())
+ self.assertEqual(i.value().value(), 42)
+ call_func_on_optional(i)
+
+ i = std.optional_Integer(integer_from_value(43))
+ self.assertEqual(i.value().value(), 43)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/shiboken6/tests/smartbinding/std_shared_ptr_test.py b/sources/shiboken6/tests/smartbinding/std_shared_ptr_test.py
new file mode 100644
index 000000000..2e6aea3d9
--- /dev/null
+++ b/sources/shiboken6/tests/smartbinding/std_shared_ptr_test.py
@@ -0,0 +1,69 @@
+#!/usr/bin/env python
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from shiboken_paths import init_paths
+init_paths()
+from smart import Integer, StdSharedPtrTestBench, StdSharedPtrVirtualMethodTester, std
+
+
+def call_func_on_ptr(ptr):
+ ptr.printInteger()
+
+
+class VirtualTester(StdSharedPtrVirtualMethodTester):
+
+ def doModifyInteger(self, p):
+ p.setValue(p.value() * 2)
+ return p
+
+
+class StdSharedPtrTests(unittest.TestCase):
+ def testInteger(self):
+ p = StdSharedPtrTestBench.createInteger()
+ # PYSIDE-2462: Ensure Integer's __dir__ entries in the pointer's
+ self.assertTrue("printInteger" in dir(p))
+ StdSharedPtrTestBench.printInteger(p)
+ self.assertTrue(p)
+ call_func_on_ptr(p)
+
+ np = StdSharedPtrTestBench.createNullInteger()
+ StdSharedPtrTestBench.printInteger(np)
+ self.assertFalse(np)
+ self.assertRaises(AttributeError, call_func_on_ptr, np)
+
+ iv = Integer()
+ iv.setValue(42)
+ np = std.shared_ptr_Integer(iv)
+ self.assertEqual(np.value(), 42)
+
+ def testInt(self):
+ np = StdSharedPtrTestBench.createNullInt()
+ StdSharedPtrTestBench.printInt(np)
+ self.assertFalse(np)
+ p = StdSharedPtrTestBench.createInt()
+ StdSharedPtrTestBench.printInt(p)
+
+ def testVirtuals(self):
+ """Test whether code generating virtual function overrides is generated
+ correctly."""
+ p = StdSharedPtrTestBench.createInteger()
+ p.setValue(42)
+ v = StdSharedPtrVirtualMethodTester()
+ r = v.callModifyInteger(p) # Base implementation increments
+ self.assertEqual(r.value(), 43)
+
+ p.setValue(42)
+ v = VirtualTester()
+ r = v.callModifyInteger(p) # Derived implementation doubles
+ self.assertEqual(r.value(), 84)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/shiboken6/tests/smartbinding/std_unique_ptr_test.py b/sources/shiboken6/tests/smartbinding/std_unique_ptr_test.py
new file mode 100644
index 000000000..9c7ef2f01
--- /dev/null
+++ b/sources/shiboken6/tests/smartbinding/std_unique_ptr_test.py
@@ -0,0 +1,94 @@
+#!/usr/bin/env python
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from shiboken_paths import init_paths
+init_paths()
+from smart import Integer, Integer2, StdUniquePtrTestBench, StdUniquePtrVirtualMethodTester, std
+
+
+def call_func_on_ptr(ptr):
+ ptr.printInteger()
+
+
+class VirtualTester(StdUniquePtrVirtualMethodTester):
+
+ def doCreateInteger(self, v):
+ iv = Integer() # Construct from pointee
+ iv.setValue(2 * v)
+ return std.unique_ptr_Integer(iv)
+
+ def doModifyIntegerByRef(self, p):
+ return 2 * p.value()
+
+ def doModifyIntegerByValue(self, p):
+ return 2 * p.value()
+
+
+class StdUniquePtrTests(unittest.TestCase):
+ def testInteger(self):
+ p = StdUniquePtrTestBench.createInteger()
+ StdUniquePtrTestBench.printInteger(p) # unique_ptr by ref
+ self.assertTrue(p)
+
+ call_func_on_ptr(p)
+ self.assertTrue(p)
+
+ StdUniquePtrTestBench.takeInteger(p) # unique_ptr by value, takes pointee
+ self.assertFalse(p)
+
+ np = StdUniquePtrTestBench.createNullInteger()
+ StdUniquePtrTestBench.printInteger(np)
+ self.assertFalse(np)
+ self.assertRaises(AttributeError, call_func_on_ptr, np)
+
+ iv = Integer() # Construct from pointee
+ iv.setValue(42)
+ np = std.unique_ptr_Integer(iv)
+ self.assertEqual(np.value(), 42)
+
+ def test_derived(self):
+ iv2 = Integer2() # Construct from pointee
+ iv2.setValue(42)
+ p = std.unique_ptr_Smart_Integer2(iv2)
+ self.assertEqual(p.value(), 42)
+ StdUniquePtrTestBench.printInteger2(p) # unique_ptr by ref
+ self.assertTrue(p)
+ StdUniquePtrTestBench.printInteger(p) # conversion
+ # FIXME: This fails, pointer is moved in value conversion
+ # self.assertTrue(p)
+
+ def testInt(self):
+ p = StdUniquePtrTestBench.createInt() # unique_ptr by ref
+ StdUniquePtrTestBench.printInt(p)
+ StdUniquePtrTestBench.takeInt(p) # unique_ptr by value, takes pointee
+ self.assertFalse(p)
+
+ np = StdUniquePtrTestBench.createNullInt()
+ StdUniquePtrTestBench.printInt(np)
+ self.assertFalse(np)
+
+ def testVirtuals(self):
+ """Test whether code generating virtual function overrides is generated
+ correctly."""
+ p = StdUniquePtrTestBench.createInteger()
+ p.setValue(42)
+ v = StdUniquePtrVirtualMethodTester()
+ self.assertTrue(v.testCreateInteger(42, 42))
+ self.assertTrue(v.testModifyIntegerByRef(42, 43)) # Default implementation increments
+ self.assertTrue(v.testModifyIntegerValue(42, 43))
+
+ v = VirtualTester() # Reimplemented methods double values
+ self.assertTrue(v.testCreateInteger(42, 84))
+ self.assertTrue(v.testModifyIntegerByRef(42, 84))
+ self.assertTrue(v.testModifyIntegerValue(42, 84))
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/shiboken6/tests/smartbinding/typesystem_smart.xml b/sources/shiboken6/tests/smartbinding/typesystem_smart.xml
index 46cb08267..261d5f15d 100644
--- a/sources/shiboken6/tests/smartbinding/typesystem_smart.xml
+++ b/sources/shiboken6/tests/smartbinding/typesystem_smart.xml
@@ -1,9 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<typesystem package="smart">
- <primitive-type name="int" />
- <primitive-type name="char" />
- <primitive-type name="float" />
- <primitive-type name="bool" />
+ <rejection class="*" argument-type="^std::nullptr_t&amp;?$"/>
<template name="cpplist_to_pylist_convertion">
PyObject *%out = PyList_New(int(%in.size()));
@@ -20,21 +17,6 @@
%out.push_back(cppItem);
}
</template>
- <container-type name="std::vector" type="list">
- <include file-name="list" location="global"/>
- <conversion-rule>
- <native-to-target>
- <insert-template name="cpplist_to_pylist_convertion"/>
- </native-to-target>
- <target-to-native>
- <add-conversion type="PySequence">
- <insert-template name="pyseq_to_cpplist_convertion"/>
- </add-conversion>
- </target-to-native>
- </conversion-rule>
- </container-type>
-
- <custom-type name="std::shared_ptr" />
<!-- Used in tests to check what C++ objects are allocated. -->
<object-type name="Registry" />
@@ -45,7 +27,8 @@
won't work.
-->
<smart-pointer-type name="SharedPtr" type="shared" getter="data" ref-count-method="useCount"
- instantiations="Integer,Smart::Integer2,Obj"/>
+ null-check-method="isNull"
+ instantiations="Integer,Smart::Integer2=Test::SmartInteger2Ptr,Obj"/>
<object-type name="Obj" />
<value-type name="Integer" />
@@ -54,4 +37,45 @@
</namespace-type>
<!-- Just used to silence the warnings that shiboken doens't know what to do with this type -->
<custom-type name="RefData" />
+
+ <value-type name="StdOptionalTestBench"/>
+
+ <system-include file-name="memory"/>
+
+ <namespace-type name="std">
+ <include file-name="memory" location="global"/>
+ <modify-function signature="^.*$" remove="all"/>
+ <enum-type name="pointer_safety"/>
+ <smart-pointer-type name="shared_ptr" type="shared" getter="get"
+ value-check-method="operator bool"
+ ref-count-method="use_count"
+ reset-method="reset"
+ instantiations="Integer,int">
+ <include file-name="memory" location="global"/>
+ </smart-pointer-type>
+
+ <smart-pointer-type name="unique_ptr" type="unique" getter="get"
+ value-check-method="operator bool"
+ reset-method="reset"
+ instantiations="Integer,Smart::Integer2,int">
+ <include file-name="memory" location="global"/>
+ </smart-pointer-type>
+
+ <smart-pointer-type name="optional" type="value-handle" getter="value"
+ value-check-method="has_value"
+ instantiations="Integer,int">
+ <include file-name="optional" location="global"/>
+ </smart-pointer-type>
+
+ </namespace-type>
+ <object-type name="StdSharedPtrTestBench"/>
+ <object-type name="StdSharedPtrVirtualMethodTester"/>
+
+ <object-type name="StdUniquePtrTestBench"/>
+ <object-type name="StdUniquePtrVirtualMethodTester"/>
+
+ <namespace-type name="Test">
+ <enum-type name="DummyEnum"/>
+ </namespace-type>
+
</typesystem>
diff --git a/sources/shiboken6/tests/test_generator/CMakeLists.txt b/sources/shiboken6/tests/test_generator/CMakeLists.txt
index b48ae37da..e1d078894 100644
--- a/sources/shiboken6/tests/test_generator/CMakeLists.txt
+++ b/sources/shiboken6/tests/test_generator/CMakeLists.txt
@@ -1,4 +1,7 @@
-cmake_minimum_required(VERSION 3.16)
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+cmake_minimum_required(VERSION 3.18)
project(test_generator)
set(dummy_generator_SRC dummygenerator.cpp)
diff --git a/sources/shiboken6/tests/test_generator/dummygenerator.cpp b/sources/shiboken6/tests/test_generator/dummygenerator.cpp
index 826791bfc..8a5079820 100644
--- a/sources/shiboken6/tests/test_generator/dummygenerator.cpp
+++ b/sources/shiboken6/tests/test_generator/dummygenerator.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <iostream>
#include "dummygenerator.h"
diff --git a/sources/shiboken6/tests/test_generator/dummygenerator.h b/sources/shiboken6/tests/test_generator/dummygenerator.h
index e768e7643..d17206809 100644
--- a/sources/shiboken6/tests/test_generator/dummygenerator.h
+++ b/sources/shiboken6/tests/test_generator/dummygenerator.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef DUMMYGENERATOR_H
#define DUMMYGENERATOR_H
diff --git a/sources/shiboken6/tests/test_generator/dummygentest.cpp b/sources/shiboken6/tests/test_generator/dummygentest.cpp
index 40ca6c7c5..d439e3d8c 100644
--- a/sources/shiboken6/tests/test_generator/dummygentest.cpp
+++ b/sources/shiboken6/tests/test_generator/dummygentest.cpp
@@ -1,37 +1,13 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "dummygentest.h"
#include "dummygenerator.h"
#include "dummygentestconfig.h"
-#include <QTemporaryFile>
+
+#include <QtCore/QProcess>
+#include <QtCore/QTemporaryFile>
#include <QtTest/QTest>
-#include <QProcess>
#define GENERATED_CONTENTS "// Generated code for class: Dummy"
diff --git a/sources/shiboken6/tests/test_generator/dummygentest.h b/sources/shiboken6/tests/test_generator/dummygentest.h
index 78bae1d52..1b1143b0a 100644
--- a/sources/shiboken6/tests/test_generator/dummygentest.h
+++ b/sources/shiboken6/tests/test_generator/dummygentest.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef DUMMYGENTABLETEST_H
#define DUMMYGENTABLETEST_H
diff --git a/sources/shiboken6/tests/test_generator/main.cpp b/sources/shiboken6/tests/test_generator/main.cpp
index f928b4d2c..ba4440b2f 100644
--- a/sources/shiboken6/tests/test_generator/main.cpp
+++ b/sources/shiboken6/tests/test_generator/main.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <QtCore>
diff --git a/sources/shiboken6/tests/test_generator/run_test.cmake b/sources/shiboken6/tests/test_generator/run_test.cmake
index 34a821d80..37e40b993 100644
--- a/sources/shiboken6/tests/test_generator/run_test.cmake
+++ b/sources/shiboken6/tests/test_generator/run_test.cmake
@@ -1,3 +1,6 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
# The tests are run through this script due to a limitation
# on versions of CMake lesser than 2.8, that prevent setting
# environment variables for tests from working.
diff --git a/testing/__init__.py b/testing/__init__.py
index ca4e621ce..62614c438 100644
--- a/testing/__init__.py
+++ b/testing/__init__.py
@@ -1,41 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
"""
testing/__init__.py
@@ -46,6 +10,7 @@ testing/__init__.py
import builtins
import sys
+
from . import command
main = command.main
diff --git a/testing/blacklist.py b/testing/blacklist.py
index 09848dce4..eacb51cbb 100644
--- a/testing/blacklist.py
+++ b/testing/blacklist.py
@@ -1,41 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
"""
testing/blacklist.py
@@ -46,8 +10,9 @@ find_matching_line() adds info using classifiers.
"""
from io import StringIO
-from .helper import decorate
+
from .buildlog import builds
+from .helper import decorate
class BlackList(object):
@@ -63,7 +28,7 @@ class BlackList(object):
def filtered_line(line):
if "#" in line:
- line = line[line.index("#")]
+ line = line[:line.index("#")]
return line.split()
# now put every bracketed line in a test
@@ -77,7 +42,6 @@ class BlackList(object):
# nothing supplied
return
- self.index = {}
for idx, line in enumerate(lines):
fline = filtered_line(line)
if not fline:
@@ -92,8 +56,8 @@ class BlackList(object):
if is_test(fline):
# a new name
name = decorate(fline[0][1:-1])
- self.tests[name] = []
- self.index[name] = idx
+ # Allow for repeated sections
+ self.tests.setdefault(name, [])
elif fline:
# a known name with a new entry
self.tests[name].append(fline)
diff --git a/testing/buildlog.py b/testing/buildlog.py
index d268c1ac3..f82191f91 100644
--- a/testing/buildlog.py
+++ b/testing/buildlog.py
@@ -1,41 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
"""
testing/buildlog.py
@@ -46,8 +10,9 @@ BuildLog.classifiers finds the set of classifier strings.
"""
import os
-import sys
+import platform
import shutil
+import sys
from collections import namedtuple
from textwrap import dedent
@@ -112,6 +77,7 @@ class BuildLog(object):
# we take the latest build for now.
build_history.sort()
self.history = build_history
+ self.python_version = None
self._buildno = None
if not is_ci:
# there seems to be a timing problem in RHel 7.6, so we better don't touch it
@@ -160,8 +126,8 @@ class BuildLog(object):
if not self.selected:
raise ValueError("+++ No build with the configuration found!")
# Python2 legacy: Correct 'linux2' to 'linux', recommended way.
- platform = "linux" if sys.platform.startswith("linux") else sys.platform
- res = [platform, "qt6"]
+ plat_name = "linux" if sys.platform.startswith("linux") else sys.platform
+ res = [plat_name, "qt6"]
if is_ci:
res.append("ci")
if self.selected.build_classifiers:
@@ -172,6 +138,9 @@ class BuildLog(object):
path = self.selected.build_dir
base = os.path.basename(path)
res.extend(base.split("-"))
+ # add exact Python version
+ if self.python_version:
+ res.append("py" + ".".join(map(str, self.python_version)))
# add all the python and qt subkeys
for entry in res:
parts = entry.split(".")
@@ -179,7 +148,13 @@ class BuildLog(object):
key = ".".join(parts[:idx])
if key not in res:
res.append(key)
+ # Allow to check the processor.
+ # This gives "i386" or "arm" on macOS.
+ res.append(platform.processor())
return res
+ def set_python_version(self, version_triple):
+ self.python_version = version_triple
+
builds = BuildLog()
diff --git a/testing/command.py b/testing/command.py
index 2bed65070..31a48f87c 100644
--- a/testing/command.py
+++ b/testing/command.py
@@ -1,41 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
"""
testrunner
@@ -70,23 +34,24 @@ The full mode can be tested locally by setting
export COIN_RERUN_FAILED_ONLY=0
"""
+import argparse
import os
import sys
-import argparse
-from textwrap import dedent
from collections import OrderedDict
+from textwrap import dedent
from timeit import default_timer as timer
-from .helper import script_dir, decorate
-from .buildlog import builds
from .blacklist import BlackList
-from .runner import TestRunner
+from .buildlog import builds
+from .helper import decorate, script_dir
from .parser import TestParser
+from .runner import TestRunner
# Should we repeat only failed tests?
COIN_RERUN_FAILED_ONLY = True
COIN_THRESHOLD = 3 # report error if >=
COIN_TESTING = 5 # number of runs
+TIMEOUT = 20 * 60
if os.environ.get("COIN_RERUN_FAILED_ONLY", "1").lower() in "0 f false n no".split():
COIN_RERUN_FAILED_ONLY = False
@@ -95,6 +60,14 @@ if os.environ.get("COIN_RERUN_FAILED_ONLY", "1").lower() in "0 f false n no".spl
def test_project(project, args, blacklist, runs):
ret = []
+ if "pypy" in builds.classifiers:
+ # As long as PyPy has so many bugs, we use 1 test only...
+ global COIN_TESTING
+ COIN_TESTING = runs = 1
+ # ...and extend the timeout.
+ global TIMEOUT
+ TIMEOUT = 100 * 60
+
# remove files from a former run
for idx in range(runs):
index = idx + 1
@@ -106,6 +79,8 @@ def test_project(project, args, blacklist, runs):
for idx in range(runs):
index = idx + 1
runner = TestRunner(builds.selected, project, index)
+ # For the full Python version we need to ask the TestRunner.
+ builds.set_python_version(runner.get_python_version())
print()
print(f"********* Start testing of {project} *********")
print("Config: Using", " ".join(builds.classifiers))
@@ -120,7 +95,7 @@ def test_project(project, args, blacklist, runs):
break
else:
rerun = None
- runner.run(f"RUN {idx + 1}:", rerun, 10 * 60)
+ runner.run(f"RUN {idx + 1}:", rerun, TIMEOUT)
results = TestParser(runner.logfile)
r = 5 * [0]
rerun_list = []
@@ -154,7 +129,7 @@ def test_project(project, args, blacklist, runs):
print("FATAL ERROR:", fatal)
print("Repetitions cancelled!")
break
- return ret, fatal
+ return ret, fatal, runs
def main():
@@ -285,7 +260,7 @@ def main():
# now loop over the projects and accumulate
fatal = False
for project in args.projects:
- res, fatal = test_project(project, args, bl, runs)
+ res, fatal, runs = test_project(project, args, bl, runs)
if fatal:
runs = 1
for idx, r in enumerate(res):
diff --git a/testing/helper.py b/testing/helper.py
index a8d3a65ff..d89f0d849 100644
--- a/testing/helper.py
+++ b/testing/helper.py
@@ -1,41 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
"""
testing/helper.py
@@ -45,7 +9,6 @@ Some tools that do not fit elsewhere.
import os
-
script_dir = os.path.dirname(os.path.dirname(__file__))
diff --git a/testing/parser.py b/testing/parser.py
index 7e1e6c792..a01c4d029 100644
--- a/testing/parser.py
+++ b/testing/parser.py
@@ -1,41 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import os
import re
@@ -129,7 +93,7 @@ def _parse_tests(test_log):
match = re.match(pat, line, re.VERBOSE)
if match and line.split()[-1] != "sec":
# don't change the number of lines
- lines[idx : idx + 2] = [line.rstrip() + lines[idx + 1], ""]
+ lines[idx:idx + 2] = [line.rstrip() + lines[idx + 1], ""]
pat = _TEST_PAT
for line in lines:
diff --git a/testing/runner.py b/testing/runner.py
index 50c08d21d..b52ac4937 100644
--- a/testing/runner.py
+++ b/testing/runner.py
@@ -1,50 +1,13 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python project.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+import inspect
import os
-import sys
import re
import subprocess
-import inspect
-
-from textwrap import dedent
+import sys
from subprocess import TimeoutExpired
+from textwrap import dedent
# Get the dir path to the utils module
try:
@@ -53,10 +16,10 @@ except NameError:
this_file = sys.argv[0]
this_file = os.path.abspath(this_file)
this_dir = os.path.dirname(this_file)
-build_scripts_dir = os.path.abspath(os.path.join(this_dir, "../build_scripts"))
+build_scripts_dir = os.path.abspath(os.path.join(this_dir, ".."))
sys.path.append(build_scripts_dir)
-from utils import detect_clang
+from build_scripts.utils import detect_clang
class TestRunner(object):
@@ -73,6 +36,31 @@ class TestRunner(object):
self._setup_clang()
self._setup()
+ def get_python_version(self):
+ """
+ Finding the exact Python version.
+ ---------------------------------
+
+ This is done by asking the interpreter, because it cannot reliably
+ be found from any file name parsing as a triple.
+
+ Note: We need to look into the CMakeCache.txt file to find out
+ what CMake has found as the Python interpreter to use.
+ This is *not* necessarily the same Python that runs this script,
+ otherwise we could use the version info directly.
+ """
+ look_python = os.path.join(self.test_dir, "CMakeCache.txt")
+ look_for = "PYTHON_EXECUTABLE:FILEPATH="
+ with open(look_python) as f:
+ for line in f:
+ if line.startswith(look_for):
+ python_exec = line.split("=")[-1].strip()
+ res = subprocess.run([python_exec, "-c",
+ "import sys;print(sys.version_info[:3])"],
+ capture_output=True)
+ return eval(res.stdout.decode("utf-8"))
+ return None
+
def _setup_clang(self):
if sys.platform != "win32":
return
diff --git a/testing/wheel_tester.py b/testing/wheel_tester.py
index 567d2380e..b36ee55a4 100644
--- a/testing/wheel_tester.py
+++ b/testing/wheel_tester.py
@@ -1,41 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
"""
This script is used by Coin (coin_test_instructions.py specifically) to
@@ -52,11 +16,15 @@ Make sure that some generated wheels already exist in the dist/
directory (e.g. setup.py bdist_wheel was already executed).
"""
-from argparse import ArgumentParser, RawTextHelpFormatter
-from pathlib import Path
import os
+import platform
+import shutil
import sys
import tempfile
+import logging
+from argparse import ArgumentParser, RawTextHelpFormatter
+from pathlib import Path
+from configparser import ConfigParser
try:
this_file = __file__
@@ -67,14 +35,13 @@ this_dir = os.path.dirname(this_file)
setup_script_dir = os.path.abspath(os.path.join(this_dir, ".."))
sys.path.append(setup_script_dir)
-from build_scripts.utils import find_files_using_glob
-from build_scripts.utils import find_glob_in_path
-from build_scripts.utils import run_process, run_process_output
-from build_scripts.utils import rmtree
-import distutils.log as log
-import platform
+from build_scripts.utils import (find_files_using_glob, find_glob_in_path, # noqa: E402
+ remove_tree, run_process, run_process_output)
+from build_scripts.log import log # noqa: E402
+
+log.setLevel(logging.DEBUG)
-log.set_verbosity(1)
+NEW_WHEELS = False
def find_executable(executable, command_line_value):
@@ -104,8 +71,8 @@ QMAKE_PATH = None
CMAKE_PATH = None
-def get_wheels_dir():
- return os.path.join(setup_script_dir, "dist")
+def get_wheels_dir(dir_name):
+ return os.path.join(setup_script_dir, dir_name)
def get_examples_dir():
@@ -115,7 +82,11 @@ def get_examples_dir():
def package_prefix_names():
# Note: shiboken6_generator is not needed for compile_using_nuitka,
# but building modules with cmake needs it.
- return ["shiboken6", "shiboken6_generator", "PySide6"]
+ if NEW_WHEELS:
+ return ["shiboken6", "shiboken6_generator", "PySide6_Essentials", "PySide6_Addons",
+ "PySide6"]
+ else:
+ return ["shiboken6", "shiboken6_generator", "PySide6"]
def clean_egg_info():
@@ -128,7 +99,7 @@ def clean_egg_info():
paths = find_files_using_glob(setup_script_dir, "*.egg-info")
for p in paths:
log.info(f"Removing {p}")
- rmtree(p)
+ remove_tree(p)
def install_wheel(wheel_path):
@@ -167,40 +138,19 @@ def try_install_wheels(wheels_dir, py_version):
)
-def is_unix():
- if sys.platform.startswith("linux") or sys.platform == "darwin":
- return True
- return False
-
-
def generate_build_cmake():
- args = [CMAKE_PATH]
- if is_unix():
- args.extend(["-G", "Unix Makefiles"])
- else:
- args.extend(["-G", "NMake Makefiles"])
- args.append("-DCMAKE_BUILD_TYPE=Release")
- args.append(f"-Dpython_interpreter={sys.executable}")
-
- # Specify prefix path so find_package(Qt5) works.
- qmake_dir = os.path.abspath(os.path.join(os.path.dirname(QMAKE_PATH), ".."))
- args.append(f"-DCMAKE_PREFIX_PATH={qmake_dir}")
-
- args.append("..")
-
+ # Specify prefix path so find_package(Qt6) works.
+ qmake_dir = Path(QMAKE_PATH).resolve().parent.parent
+ args = [CMAKE_PATH, "-G", "Ninja", "-DCMAKE_BUILD_TYPE=Release",
+ f"-Dpython_interpreter={sys.executable}",
+ f"-DCMAKE_PREFIX_PATH={qmake_dir}",
+ ".."]
exit_code = run_process(args)
if exit_code:
raise RuntimeError("Failure while running cmake.")
log.info("")
-def generate_build_qmake():
- exit_code = run_process([QMAKE_PATH, "..", f"python_interpreter={sys.executable}"])
- if exit_code:
- raise RuntimeError("Failure while running qmake.")
- log.info("")
-
-
def raise_error_pyinstaller(msg):
print()
print(f"PYINST: {msg}")
@@ -255,32 +205,73 @@ def run_nuitka_test(example):
raise RuntimeError(f"Failure running {example} with Nuitka.")
-def run_make():
- args = []
- if is_unix():
- executable = "make"
+def _run_deploy_test(example, tmpdirname):
+ """Helper for running deployment and example."""
+ main_file = None
+ for py_file in example.glob("*.py"):
+ shutil.copy(py_file, tmpdirname)
+ if not main_file or py_file.name == "main.py":
+ main_file = py_file
+ deploy_tool = Path(sys.executable).parent / "pyside6-deploy"
+ cmd = [os.fspath(deploy_tool), "-f", main_file.name, "--init"]
+ if run_process(cmd) != 0:
+ raise RuntimeError("Error creating pysidedeploy.spec")
+
+ config_file = Path(tmpdirname) / "pysidedeploy.spec"
+ parser = ConfigParser(comment_prefixes="/", allow_no_value=True)
+ parser.read(config_file)
+ parser.set("nuitka", "extra_args", "--verbose --assume-yes-for-downloads")
+ with open(config_file, "w+") as config_file_writer:
+ parser.write(config_file_writer, space_around_delimiters=True)
+
+ cmd = [os.fspath(deploy_tool), "-f", "-c", os.fspath(config_file)]
+ if run_process(cmd) != 0:
+ raise RuntimeError("Error deploying")
+
+ suffix = "exe" if sys.platform == "win32" else "bin"
+
+ if sys.platform != "darwin":
+ binary = f"{tmpdirname}/{main_file.stem}.{suffix}"
else:
- executable = "nmake"
- args.append(executable)
+ binary = f"{tmpdirname}/pyside_app_demo.app/Contents/MacOS/{main_file.stem}"
+
+ if run_process([binary]) != 0:
+ raise RuntimeError("Error running the deployed example")
+ return True
+
+def run_deploy_test(example):
+ """Test pyside6-deploy."""
+ log.info(f"Running deploy test of {example}")
+ current_dir = Path.cwd()
+ result = False
+ with tempfile.TemporaryDirectory() as tmpdirname:
+ try:
+ os.chdir(tmpdirname)
+ result = _run_deploy_test(example, tmpdirname)
+ except RuntimeError as e:
+ log.error(str(e))
+ raise e
+ finally:
+ os.chdir(os.fspath(current_dir))
+ state = "succeeded" if result else "failed"
+ log.info(f"Deploy test {state}")
+ return result
+
+
+def run_ninja():
+ args = ["ninja"]
exit_code = run_process(args)
if exit_code:
- raise RuntimeError(f"Failure while running {executable}.")
+ raise RuntimeError(f"Failure while running {' '.join(args)}.")
log.info("")
-def run_make_install():
- args = []
- if is_unix():
- executable = "make"
- else:
- executable = "nmake"
- args.append(executable)
- args.append("install")
-
+def run_ninja_install():
+ args = ["ninja", "install"]
exit_code = run_process(args)
if exit_code:
- raise RuntimeError(f"Failed while running {executable} install.")
+ raise RuntimeError(f"Failed while running {' '.join(args)} install.")
log.info("")
@@ -307,7 +298,7 @@ def prepare_build_folder(src_path, build_folder_name):
# preparing a build folder should clean any previous existing build.
if os.path.exists(build_path):
log.info(f"Removing {build_path}")
- rmtree(build_path)
+ remove_tree(build_path)
log.info(f"Creating {build_path}")
os.makedirs(build_path)
@@ -330,30 +321,31 @@ def try_build_examples():
log.info("Attempting to build hello.py using Nuitka.")
src_path = Path(examples_dir) / "installer_test"
- # Nuitka is loaded by coin_build_instructions.py, but not when
- # testing directly this script.
- run_nuitka_test(os.fspath(src_path / "hello.py"))
+
+ # disable for windows as it Nuitka --onefile deployment in Windows
+ # requires DependencyWalker. Download and installing will slow down
+ # Coin
+ if sys.platform != "win32":
+ run_deploy_test(src_path)
+
+ if False: # pre 6.4.1, kept for reference
+ # Nuitka is loaded by coin_build_instructions.py, but not when
+ # testing directly this script.
+ run_nuitka_test(os.fspath(src_path / "hello.py"))
log.info("Attempting to build and run samplebinding using cmake.")
src_path = os.path.join(examples_dir, "samplebinding")
prepare_build_folder(src_path, "cmake")
generate_build_cmake()
- run_make()
- run_make_install()
+ run_ninja()
+ run_ninja_install()
execute_script(os.path.join(src_path, "main.py"))
- log.info("*** Defunct: build scriptableapplication using cmake.")
- # log.info("Attempting to build scriptableapplication using cmake.")
- # src_path = os.path.join(examples_dir, "scriptableapplication")
- # prepare_build_folder(src_path, "cmake")
- # generate_build_cmake()
- # run_make()
-
- log.info("Attempting to build scriptableapplication using qmake.")
+ log.info("Attempting to build scriptableapplication using cmake.")
src_path = os.path.join(examples_dir, "scriptableapplication")
- prepare_build_folder(src_path, "qmake")
- generate_build_qmake()
- run_make()
+ prepare_build_folder(src_path, "cmake")
+ generate_build_cmake()
+ run_ninja()
if sys.version_info[:2] >= (3, 7):
log.info("Checking Python Interface Files in Python 3 with all features selected")
@@ -372,11 +364,13 @@ def try_build_examples():
from PySide6 import __all__ as modules
for modname in modules:
- execute_script(src_path / f"{modname}.pyi")
+ # PYSIDE-1735: pyi files are no longer compatible with Python.
+ # XXX Maybe add a test with Mypy here?
+ pass # execute_script(src_path / f"{modname}.pyi")
-def run_wheel_tests(install_wheels):
- wheels_dir = get_wheels_dir()
+def run_wheel_tests(install_wheels, wheels_dir_name):
+ wheels_dir = get_wheels_dir(wheels_dir_name)
py_version = f"{sys.version_info.major}.{sys.version_info.minor}"
if install_wheels:
@@ -384,8 +378,13 @@ def run_wheel_tests(install_wheels):
try_install_wheels(wheels_dir, py_version)
log.info("Attempting to build examples.\n")
- try_build_examples()
+ bin_dir = os.fspath(Path(sys.executable).parent)
+ path = os.environ["PATH"]
+ if bin_dir not in path:
+ log.info(f"Adding {bin_dir} to PATH...")
+ os.environ["PATH"] = f"{bin_dir}{os.pathsep}{path}"
+ try_build_examples()
log.info("All tests passed!")
@@ -399,8 +398,12 @@ if __name__ == "__main__":
)
parser.add_argument("--qmake", type=str, help="Path to qmake")
parser.add_argument("--cmake", type=str, help="Path to cmake")
+ parser.add_argument("--wheels-dir", type=str, help="Path to where the wheels are",
+ default="dist")
+ parser.add_argument("--new", action="store_true", help="Option to test new wheels")
options = parser.parse_args()
QMAKE_PATH = find_executable("qmake", options.qmake)
CMAKE_PATH = find_executable("cmake", options.cmake)
+ NEW_WHEELS = options.new
- run_wheel_tests(not options.no_install_wheels)
+ run_wheel_tests(not options.no_install_wheels, options.wheels_dir)
diff --git a/testrunner.py b/testrunner.py
index 2b24bc20e..3c2ec428a 100644
--- a/testrunner.py
+++ b/testrunner.py
@@ -1,41 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
"""
testrunner.py
@@ -44,8 +8,7 @@ Run ctest on the last build.
See the notes in testing/command.py .
"""
-import sys
import testing
-import testing.blacklist # just to be sure it's us...
+import testing.blacklist # just to be sure it's us...
testing.main()
diff --git a/tools/checklibs.py b/tools/checklibs.py
index 18aa11e93..9a53beade 100644
--- a/tools/checklibs.py
+++ b/tools/checklibs.py
@@ -1,41 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2017 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#!/usr/bin/env python
#
@@ -49,7 +13,12 @@
#
#
-import subprocess, sys, re, os.path, optparse, collections
+import collections
+import optparse
+import re
+import subprocess
+import sys
+from pathlib import Path
from pprint import pprint
@@ -214,23 +183,23 @@ class MachOFile:
if recorded_path.startswith(ImagePath.EXECUTABLE_PATH_TOKEN):
executable_image_path = self.executable_path()
if executable_image_path:
- path.resolved_path = os.path.normpath(
+ path.resolved_path = Path(
recorded_path.replace(
ImagePath.EXECUTABLE_PATH_TOKEN,
- os.path.dirname(executable_image_path.resolved_path)))
+ Path(executable_image_path.resolved_path).parent))
# handle @loader_path
elif recorded_path.startswith(ImagePath.LOADER_PATH_TOKEN):
- path.resolved_path = os.path.normpath(recorded_path.replace(
+ path.resolved_path = Path(recorded_path.replace(
ImagePath.LOADER_PATH_TOKEN,
- os.path.dirname(self.image_path.resolved_path)))
+ Path(self.image_path.resolved_path).parent))
# handle @rpath
elif recorded_path.startswith(ImagePath.RPATH_TOKEN):
for rpath in self.all_rpaths():
- resolved_path = os.path.normpath(recorded_path.replace(
+ resolved_path = Path(recorded_path.replace(
ImagePath.RPATH_TOKEN, rpath.resolved_path))
- if os.path.exists(resolved_path):
+ if resolved_path.exists():
path.resolved_path = resolved_path
path.rpath_source = rpath.rpath_source
break
@@ -333,7 +302,7 @@ class ImagePath:
return description
def exists(self):
- return self.resolved_path and os.path.exists(self.resolved_path)
+ return self.resolved_path and Path(self.resolved_path).exists()
def resolved_equals_recorded(self):
return (self.resolved_path and self.recorded_path and
diff --git a/tools/create_changelog.py b/tools/create_changelog.py
index 3f364377c..6c24f417f 100644
--- a/tools/create_changelog.py
+++ b/tools/create_changelog.py
@@ -1,46 +1,13 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python project.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import re
+import os
import sys
+import textwrap
from argparse import ArgumentParser, Namespace, RawTextHelpFormatter
-from subprocess import check_output, Popen, PIPE
+from pathlib import Path
+from subprocess import PIPE, Popen, check_output
from typing import Dict, List, Tuple
content_header = """Qt for Python @VERSION is a @TYPE release.
@@ -68,6 +35,48 @@ shiboken_header = """***********************************************************
****************************************************************************
"""
+description = """
+PySide6 changelog tool
+
+Example usage:
+tools/create_changelog.py -v -r 6.5.3
+"""
+
+
+def change_log(version: list) -> Path:
+ """Return path of the changelog of the version."""
+ name = f"changes-{version[0]}.{version[1]}.{version[2]}"
+ return Path(__file__).parents[1] / "doc" / "changelogs" / name
+
+
+def is_lts_version(version: list) -> bool:
+ return version[0] == 5 or version[1] in (2, 5)
+
+
+def version_tag(version: list) -> str:
+ """Return the version tag."""
+ tag = f"v{version[0]}.{version[1]}.{version[2]}"
+ return tag + "-lts" if is_lts_version(version) else tag
+
+
+def revision_range(version: list) -> str:
+ """Determine a git revision_range from the version. Either log from
+ the previous version tag or since the last update to the changelog."""
+ changelog = change_log(version)
+ if changelog.is_file():
+ output = check_output(["git", "log", "-n", "1", "--format=%H",
+ os.fspath(changelog)])
+ if output:
+ return output.strip().decode("utf-8") + "..HEAD"
+
+ last_version = version.copy()
+ if version[2] == 0:
+ adjust_idx = 0 if version[1] == 0 else 1
+ else:
+ adjust_idx = 2
+ last_version[adjust_idx] -= 1
+ return version_tag(last_version) + "..HEAD"
+
def parse_options() -> Namespace:
tag_msg = ("Tags, branches, or SHA to compare\n"
@@ -75,7 +84,7 @@ def parse_options() -> Namespace:
" v5.12.0..v5.12.1\n"
" cebc32a5..5.12")
- options = ArgumentParser(description="PySide6 changelog tool",
+ options = ArgumentParser(description=description,
formatter_class=RawTextHelpFormatter)
options.add_argument("-d",
"--directory",
@@ -84,8 +93,7 @@ def parse_options() -> Namespace:
options.add_argument("-v",
"--versions",
type=str,
- help=tag_msg,
- required=True)
+ help=tag_msg)
options.add_argument("-r",
"--release",
type=str,
@@ -94,8 +102,7 @@ def parse_options() -> Namespace:
options.add_argument("-t",
"--type",
type=str,
- help="Release type: bug-fix, minor, or major",
- default="bug-fix")
+ help="Release type: bug-fix, minor, or major")
options.add_argument("-e",
"--exclude",
@@ -104,14 +111,43 @@ def parse_options() -> Namespace:
default=False)
args = options.parse_args()
+
+ release_version = list(int(v) for v in args.release.split("."))
+ if len(release_version) != 3:
+ print("Error: --release must be of form major.minor.patch")
+ sys.exit(-1)
+
+ # Some auto-detection smartness
+ if not args.type:
+ if release_version[2] == 0:
+ args.type = "major" if release_version[1] == 0 else "minor"
+ else:
+ args.type = "bug-fix"
+ # For major/minor releases, skip all fixes with "Pick-to: " since they
+ # appear in bug-fix releases.
+ if args.type != "bug-fix":
+ args.exclude = True
+ print(f'Assuming "{args.type}" version', file=sys.stderr)
+
if args.type not in ("bug-fix", "minor", "major"):
- print("Error:"
+ print("Error: "
"-y/--type needs to be: bug-fix (default), minor, or major")
sys.exit(-1)
+ if not args.versions:
+ args.versions = revision_range(release_version)
+ print(f"Assuming range {args.versions}", file=sys.stderr)
+
+ args.release_version = release_version
return args
+def format_text(text: str) -> str:
+ """Format an entry with a leading dash, 80 columns"""
+ return textwrap.fill(text, width=77, initial_indent=" - ",
+ subsequent_indent=" ")
+
+
def check_tag(tag: str) -> bool:
output = False
@@ -146,6 +182,7 @@ def get_commit_content(sha: str) -> str:
print(err, file=sys.stderr)
return out.decode("utf-8")
+
def git_get_sha1s(versions: List[str], pattern: str):
"""Return a list of SHA1s matching a pattern"""
command = "git rev-list --reverse --grep '^{}'".format(pattern)
@@ -173,7 +210,6 @@ def git_get_sha1s(versions: List[str], pattern: str):
print(err, file=sys.stderr)
pick_to_sha1 = out_e_sha1.splitlines()
-
return [s.decode("utf-8") for s in out_sha1.splitlines() if s not in pick_to_sha1]
@@ -213,17 +249,17 @@ def create_task_log(versions: List[str]) -> None:
git_command(versions, "Task-number: ")
-def extract_change_log(commit_message: List[str]) -> Tuple[str, List[str]]:
- """Extract a tuple of (component, change log lines) from a commit message
- of the form [ChangeLog][shiboken6] description..."""
- result = []
+def extract_change_log(commit_message: List[str]) -> Tuple[str, int, str]:
+ """Extract a tuple of (component, task-number, change log paragraph)
+ from a commit message of the form [ChangeLog][shiboken6] description..."""
+ result = ''
component = 'pyside'
within_changelog = False
task_nr = ''
for line in commit_message:
if within_changelog:
if line:
- result.append(' ' + line.strip())
+ result += ' ' + line.strip()
else:
within_changelog = False
else:
@@ -234,46 +270,61 @@ def extract_change_log(commit_message: List[str]) -> Tuple[str, List[str]]:
if end > 0:
component = log_line[1:end]
log_line = log_line[end + 1:]
- result.append(log_line.strip())
+ result = log_line.strip()
within_changelog = True
elif line.startswith("Fixes: ") or line.startswith("Task-number: "):
task_nr = line.split(":")[1].strip()
- if result:
- first_line = ' - '
- if task_nr:
- first_line += f"[{task_nr}] "
- first_line += result[0]
- result[0] = first_line
- return (component, result)
+
+ task_nr_int = -1
+ if task_nr:
+ result = f"[{task_nr}] {result}"
+ dash = task_nr.find('-') # "PYSIDE-627"
+ task_nr_int = int(task_nr[dash + 1:])
+
+ return (component, task_nr_int, format_text(result))
def create_change_log(versions: List[str]) -> None:
for sha in git_get_sha1s(versions, r"\[ChangeLog\]"):
change_log = extract_change_log(get_commit_content(sha).splitlines())
- if change_log[0].startswith('shiboken'):
- shiboken6_changelogs.extend(change_log[1])
+ component, task_nr, text = change_log
+ if component.startswith('shiboken'):
+ shiboken6_changelogs.append((task_nr, text))
else:
- pyside6_changelogs.extend(change_log[1])
+ pyside6_changelogs.append((task_nr, text))
+
+
+def format_commit_msg(entry: Dict[str, str]) -> str:
+ task = entry["task"].replace("Fixes: ", "").replace("Task-number: ", "")
+ title = entry["title"]
+ if title.startswith("shiboken6: "):
+ title = title[11:]
+ elif title.startswith("PySide6: "):
+ title = title[9:]
+ return format_text(f"[{task}] {title}")
def gen_list(d: Dict[str, Dict[str, str]]) -> str:
- def clean_task(s):
- return s.replace("Fixes: ", "").replace("Task-number: ", "")
- return "".join(" - [{}] {}\n".format(clean_task(v["task"]), v["title"])
- for _, v in d.items())
+ return "\n".join(format_commit_msg(v)
+ for _, v in d.items())
def sort_dict(d: Dict[str, Dict[str, str]]) -> Dict[str, Dict[str, str]]:
return dict(sorted(d.items(), key=lambda kv: kv[1]['task-number']))
+def sort_changelog(c: List[Tuple[int, str]]) -> List[Tuple[int, str]]:
+ return sorted(c, key=lambda task_text_tuple: task_text_tuple[0])
+
+
if __name__ == "__main__":
args = parse_options()
pyside6_commits: Dict[str, Dict[str, str]] = {}
shiboken6_commits: Dict[str, Dict[str, str]] = {}
- pyside6_changelogs: List[str] = []
- shiboken6_changelogs: List[str] = []
+ # Changelogs are tuples of task number/formatted text
+ pyside6_changelogs: List[Tuple[int, str]] = []
+ shiboken6_changelogs: List[Tuple[int, str]] = []
exclude_pick_to = args.exclude
@@ -289,16 +340,20 @@ if __name__ == "__main__":
# Sort commits
pyside6_commits = sort_dict(pyside6_commits)
shiboken6_commits = sort_dict(shiboken6_commits)
+ pyside6_changelogs = sort_changelog(pyside6_changelogs)
+ shiboken6_changelogs = sort_changelog(shiboken6_changelogs)
# Generate message
print(content_header.replace("@VERSION", args.release).
replace("@TYPE", args.type))
- print('\n'.join(pyside6_changelogs))
+ for c in pyside6_changelogs:
+ print(c[1])
print(gen_list(pyside6_commits))
if not pyside6_changelogs and not pyside6_commits:
print(" - No changes")
print(shiboken_header)
- print('\n'.join(shiboken6_changelogs))
+ for c in shiboken6_changelogs:
+ print(c[1])
print(gen_list(shiboken6_commits))
if not shiboken6_changelogs and not shiboken6_commits:
print(" - No changes")
diff --git a/tools/cross_compile_android/android_utilities.py b/tools/cross_compile_android/android_utilities.py
new file mode 100644
index 000000000..039fa9431
--- /dev/null
+++ b/tools/cross_compile_android/android_utilities.py
@@ -0,0 +1,256 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+import logging
+import shutil
+import os
+import stat
+import sys
+import subprocess
+
+from urllib import request
+from pathlib import Path
+from typing import List
+from packaging import version
+from tqdm import tqdm
+
+# the tag number does not matter much since we update the sdk later
+DEFAULT_SDK_TAG = 6514223
+ANDROID_NDK_VERSION = "26b"
+
+
+def run_command(command: List[str], cwd: str = None, ignore_fail: bool = False,
+ dry_run: bool = False, accept_prompts: bool = False, show_stdout: bool = False,
+ capture_stdout: bool = False):
+
+ if capture_stdout and not show_stdout:
+ raise RuntimeError("capture_stdout should always be used together with show_stdout")
+
+ if dry_run:
+ print(" ".join(command))
+ return
+
+ input = None
+ if accept_prompts:
+ input = str.encode("y")
+
+ if show_stdout:
+ stdout = None
+ else:
+ stdout = subprocess.DEVNULL
+
+ result = subprocess.run(command, cwd=cwd, input=input, stdout=stdout,
+ capture_output=capture_stdout)
+
+ if result.returncode != 0 and not ignore_fail:
+ sys.exit(result.returncode)
+
+ if capture_stdout and not result.returncode:
+ return result.stdout.decode("utf-8")
+
+ return None
+
+
+class DownloadProgressBar(tqdm):
+ def update_to(self, b=1, bsize=1, tsize=None):
+ if tsize is not None:
+ self.total = tsize
+ self.update(b * bsize - self.n)
+
+
+class SdkManager:
+ def __init__(self, android_sdk_dir: Path, dry_run: bool = False):
+ self._sdk_manager = android_sdk_dir / "tools" / "bin" / "sdkmanager"
+
+ if not self._sdk_manager.exists():
+ raise RuntimeError(f"Unable to find SdkManager in {str(self._sdk_manager)}")
+
+ if not os.access(self._sdk_manager, os.X_OK):
+ current_permissions = stat.S_IMODE(os.lstat(self._sdk_manager).st_mode)
+ os.chmod(self._sdk_manager, current_permissions | stat.S_IEXEC)
+
+ self._android_sdk_dir = android_sdk_dir
+ self._dry_run = dry_run
+
+ def list_packages(self):
+ command = [self._sdk_manager, f"--sdk_root={self._android_sdk_dir}", "--list"]
+ return run_command(command=command, dry_run=self._dry_run, show_stdout=True,
+ capture_stdout=True)
+
+ def install(self, *args, accept_license: bool = False, show_stdout=False):
+ command = [str(self._sdk_manager), f"--sdk_root={self._android_sdk_dir}", *args]
+ run_command(command=command, dry_run=self._dry_run,
+ accept_prompts=accept_license, show_stdout=show_stdout)
+
+
+def _unpack(zip_file: Path, destination: Path):
+ """
+ Unpacks the zip_file into destination preserving all permissions
+
+ TODO: Try to use zipfile module. Currently we cannot use zipfile module here because
+ extractAll() does not preserve permissions.
+
+ In case `unzip` is not available, the user is requested to install it manually
+ """
+ unzip = shutil.which("unzip")
+ if not unzip:
+ raise RuntimeError("Unable to find program unzip. Use `sudo apt-get install unzip`"
+ "to install it")
+
+ command = [unzip, zip_file, "-d", destination]
+ run_command(command=command, show_stdout=True)
+
+
+def _download(url: str, destination: Path):
+ """
+ Download url to destination
+ """
+ headers, download_path = None, None
+ # https://github.com/tqdm/tqdm#hooks-and-callbacks
+ with DownloadProgressBar(unit='B', unit_scale=True, miniters=1, desc=url.split('/')[-1]) as t:
+ download_path, headers = request.urlretrieve(url=url, filename=destination,
+ reporthook=t.update_to)
+ assert headers["Content-Type"] == "application/zip"
+ assert Path(download_path).resolve() == destination
+
+
+def download_android_ndk(ndk_path: Path):
+ """
+ Downloads the given ndk_version into ndk_path
+ """
+ ndk_path = ndk_path / "android-ndk"
+ ndk_zip_path = ndk_path / f"android-ndk-r{ANDROID_NDK_VERSION}-linux.zip"
+ ndk_version_path = ndk_path / f"android-ndk-r{ANDROID_NDK_VERSION}"
+
+ if ndk_version_path.exists():
+ print(f"NDK path found in {str(ndk_version_path)}")
+ else:
+ ndk_path.mkdir(parents=True, exist_ok=True)
+ url = (f"https://dl.google.com/android/repository"
+ f"/android-ndk-r{ANDROID_NDK_VERSION}-linux.zip")
+
+ print(f"Downloading Android Ndk version r{ANDROID_NDK_VERSION}")
+ _download(url=url, destination=ndk_zip_path)
+
+ print("Unpacking Android Ndk")
+ _unpack(zip_file=(ndk_path / f"android-ndk-r{ANDROID_NDK_VERSION}-linux.zip"),
+ destination=ndk_path)
+
+ return ndk_version_path
+
+
+def download_android_commandlinetools(android_sdk_dir: Path):
+ """
+ Downloads Android commandline tools into cltools_path.
+ """
+ android_sdk_dir = android_sdk_dir / "android-sdk"
+ url = ("https://dl.google.com/android/repository/"
+ f"commandlinetools-linux-{DEFAULT_SDK_TAG}_latest.zip")
+ cltools_zip_path = android_sdk_dir / f"commandlinetools-linux-{DEFAULT_SDK_TAG}_latest.zip"
+ cltools_path = android_sdk_dir / "tools"
+
+ if cltools_path.exists():
+ print(f"Command-line tools found in {str(cltools_path)}")
+ else:
+ android_sdk_dir.mkdir(parents=True, exist_ok=True)
+
+ print("Download Android Command Line Tools: "
+ f"commandlinetools-linux-{DEFAULT_SDK_TAG}_latest.zip")
+ _download(url=url, destination=cltools_zip_path)
+
+ print("Unpacking Android Command Line Tools")
+ _unpack(zip_file=cltools_zip_path, destination=android_sdk_dir)
+
+ return android_sdk_dir
+
+
+def android_list_build_tools_versions(sdk_manager: SdkManager):
+ """
+ List all the build-tools versions available for download
+ """
+ available_packages = sdk_manager.list_packages()
+ build_tools_versions = []
+ lines = available_packages.split('\n')
+
+ for line in lines:
+ if not line.strip().startswith('build-tools;'):
+ continue
+ package_name = line.strip().split(' ')[0]
+ if package_name.count(';') != 1:
+ raise RuntimeError(f"Unable to parse build-tools version: {package_name}")
+ ver = package_name.split(';')[1]
+
+ build_tools_versions.append(version.Version(ver))
+
+ return build_tools_versions
+
+
+def find_installed_buildtools_version(build_tools_dir: Path):
+ """
+ It is possible that the user has multiple build-tools installed. The newer version is generally
+ used. This function find the newest among the installed build-tools
+ """
+ versions = [version.Version(bt_dir.name) for bt_dir in build_tools_dir.iterdir()
+ if bt_dir.is_dir()]
+ return max(versions)
+
+
+def find_latest_buildtools_version(sdk_manager: SdkManager):
+ """
+ Uses sdk manager to find the latest build-tools version
+ """
+ available_build_tools_v = android_list_build_tools_versions(sdk_manager=sdk_manager)
+
+ if not available_build_tools_v:
+ raise RuntimeError('Unable to find any build tools available for download')
+
+ return max(available_build_tools_v)
+
+
+def install_android_packages(android_sdk_dir: Path, android_api: str, dry_run: bool = False,
+ accept_license: bool = False, skip_update: bool = False):
+ """
+ Use the sdk manager to install build-tools, platform-tools and platform API
+ """
+ tools_dir = android_sdk_dir / "tools"
+ if not tools_dir.exists():
+ raise RuntimeError("Unable to find Android command-line tools in "
+ f"{str(tools_dir)}")
+
+ # incase of --verbose flag
+ show_output = (logging.getLogger().getEffectiveLevel() == logging.INFO)
+
+ sdk_manager = SdkManager(android_sdk_dir=android_sdk_dir, dry_run=dry_run)
+
+ # install/upgrade platform-tools
+ if not (android_sdk_dir / "platform-tools").exists():
+ print("Installing/Updating Android platform-tools")
+ sdk_manager.install("platform-tools", accept_license=accept_license,
+ show_stdout=show_output)
+ # The --update command is only relevant for platform tools
+ if not skip_update:
+ sdk_manager.install("--update", show_stdout=show_output)
+
+ # install/upgrade build-tools
+ buildtools_dir = android_sdk_dir / "build-tools"
+
+ if not buildtools_dir.exists():
+ latest_build_tools_v = find_latest_buildtools_version(sdk_manager=sdk_manager)
+ print(f"Installing Android build-tools version {latest_build_tools_v}")
+ sdk_manager.install(f"build-tools;{latest_build_tools_v}", show_stdout=show_output)
+ else:
+ if not skip_update:
+ latest_build_tools_v = find_latest_buildtools_version(sdk_manager=sdk_manager)
+ installed_build_tools_v = find_installed_buildtools_version(buildtools_dir)
+ if latest_build_tools_v > installed_build_tools_v:
+ print(f"Updating Android build-tools version to {latest_build_tools_v}")
+ sdk_manager.install(f"build-tools;{latest_build_tools_v}", show_stdout=show_output)
+ installed_build_tools_v = latest_build_tools_v
+
+ # install the platform API
+ platform_api_dir = android_sdk_dir / "platforms" / f"android-{android_api}"
+ if not platform_api_dir.exists():
+ print(f"Installing Android platform API {android_api}")
+ sdk_manager.install(f"platforms;android-{android_api}", show_stdout=show_output)
+
+ print("Android packages installation done")
diff --git a/tools/cross_compile_android/main.py b/tools/cross_compile_android/main.py
new file mode 100644
index 000000000..bda438cca
--- /dev/null
+++ b/tools/cross_compile_android/main.py
@@ -0,0 +1,300 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+import sys
+import logging
+import argparse
+import stat
+import warnings
+import shutil
+from dataclasses import dataclass
+
+from pathlib import Path
+from git import Repo, RemoteProgress
+from tqdm import tqdm
+from jinja2 import Environment, FileSystemLoader
+
+from android_utilities import (run_command, download_android_commandlinetools,
+ download_android_ndk, install_android_packages)
+
+# Note: Does not work with PyEnv. Your Host Python should contain openssl.
+PYTHON_VERSION = "3.11"
+
+SKIP_UPDATE_HELP = ("skip the updation of SDK packages build-tools, platform-tools to"
+ " latest version")
+
+ACCEPT_LICENSE_HELP = ('''
+Accepts license automatically for Android SDK installation. Otherwise,
+accept the license manually through command line.
+''')
+
+CLEAN_CACHE_HELP = ('''
+Cleans cache stored in $HOME/.pyside6_deploy_cache.
+Options:
+
+1. all - all the cache including Android Ndk, Android Sdk and Cross-compiled Python are deleted.
+2. ndk - Only the Android Ndk is deleted.
+3. sdk - Only the Android Sdk is deleted.
+4. python - The cross compiled Python for all platforms, the cloned CPython, the cross compilation
+ scripts for all platforms are deleted.
+5. toolchain - The CMake toolchain file required for cross-compiling Qt for Python, for all
+ platforms are deleted.
+
+If --clean-cache is used and no explicit value is suppied, then `all` is used as default.
+''')
+
+
+@dataclass
+class PlatformData:
+ plat_name: str
+ api_level: str
+ android_abi: str
+ qt_plat_name: str
+ gcc_march: str
+ plat_bits: str
+
+
+def occp_exists():
+ '''
+ check if '--only-cross-compile-python' exists in command line arguments
+ '''
+ return "-occp" in sys.argv or "--only-cross-compile-python" in sys.argv
+
+
+class CloneProgress(RemoteProgress):
+ def __init__(self):
+ super().__init__()
+ self.pbar = tqdm()
+
+ def update(self, op_code, cur_count, max_count=None, message=""):
+ self.pbar.total = max_count
+ self.pbar.n = cur_count
+ self.pbar.refresh()
+
+
+if __name__ == "__main__":
+ parser = argparse.ArgumentParser(
+ description="This tool cross builds CPython for Android and uses that Python to cross build"
+ "Android Qt for Python wheels",
+ formatter_class=argparse.RawTextHelpFormatter,
+ )
+
+ parser.add_argument("-p", "--plat-name", type=str, nargs="*",
+ choices=["aarch64", "armv7a", "i686", "x86_64"],
+ default=["aarch64", "armv7a", "i686", "x86_64"], dest="plat_names",
+ help="Android target platforms")
+
+ parser.add_argument("-v", "--verbose", help="run in verbose mode", action="store_const",
+ dest="loglevel", const=logging.INFO)
+ parser.add_argument("--api-level", type=str, default="33", help="Android API level to use")
+ parser.add_argument("--ndk-path", type=str, help="Path to Android NDK (Preferred r25c)")
+ # sdk path is needed to compile all the Qt Java Acitivity files into Qt6AndroidBindings.jar
+ parser.add_argument("--sdk-path", type=str, help="Path to Android SDK")
+ parser.add_argument("--qt-install-path", type=str, required=not occp_exists(),
+ help="Qt installation path eg: /home/Qt/6.5.0")
+
+ parser.add_argument("-occp", "--only-cross-compile-python", action="store_true",
+ help="Only cross compiles Python for the specified Android platform")
+
+ parser.add_argument("--dry-run", action="store_true", help="show the commands to be run")
+
+ parser.add_argument("--skip-update", action="store_true",
+ help=SKIP_UPDATE_HELP)
+
+ parser.add_argument("--auto-accept-license", action="store_true",
+ help=ACCEPT_LICENSE_HELP)
+
+ parser.add_argument("--clean-cache", type=str, nargs="?", const="all",
+ choices=["all", "python", "ndk", "sdk", "toolchain"],
+ help=CLEAN_CACHE_HELP)
+
+ args = parser.parse_args()
+
+ logging.basicConfig(level=args.loglevel)
+ pyside_setup_dir = Path(__file__).parents[2].resolve()
+ qt_install_path = args.qt_install_path
+ ndk_path = args.ndk_path
+ sdk_path = args.sdk_path
+ only_py_cross_compile = args.only_cross_compile_python
+ android_abi = None
+ gcc_march = None
+ plat_bits = None
+ dry_run = args.dry_run
+ plat_names = args.plat_names
+ api_level = args.api_level
+ skip_update = args.skip_update
+ auto_accept_license = args.auto_accept_license
+ clean_cache = args.clean_cache
+
+ # auto download Android NDK and SDK
+ pyside6_deploy_cache = Path.home() / ".pyside6_android_deploy"
+ logging.info(f"Cache created at {str(pyside6_deploy_cache.resolve())}")
+ pyside6_deploy_cache.mkdir(exist_ok=True)
+
+ if pyside6_deploy_cache.exists() and clean_cache:
+ if clean_cache == "all":
+ shutil.rmtree(pyside6_deploy_cache)
+ elif clean_cache == "ndk":
+ cached_ndk_dir = pyside6_deploy_cache / "android-ndk"
+ if cached_ndk_dir.exists():
+ shutil.rmtree(cached_ndk_dir)
+ elif clean_cache == "sdk":
+ cached_sdk_dir = pyside6_deploy_cache / "android-sdk"
+ if cached_sdk_dir.exists():
+ shutil.rmtree(cached_sdk_dir)
+ elif clean_cache == "python":
+ cached_cpython_dir = pyside6_deploy_cache / "cpython"
+ if cached_cpython_dir.exists():
+ shutil.rmtree(pyside6_deploy_cache / "cpython")
+ for cc_python_path in pyside6_deploy_cache.glob("Python-*"):
+ if cc_python_path.is_dir():
+ shutil.rmtree(cc_python_path)
+ elif clean_cache == "toolchain":
+ for toolchain_path in pyside6_deploy_cache.glob("toolchain_*"):
+ if toolchain_path.is_file():
+ toolchain_path.unlink()
+
+ if not ndk_path:
+ # Download android ndk
+ ndk_path = download_android_ndk(pyside6_deploy_cache)
+
+ if not sdk_path:
+ # download and unzip command-line tools
+ sdk_path = download_android_commandlinetools(pyside6_deploy_cache)
+ # install and update required android packages
+ install_android_packages(android_sdk_dir=sdk_path, android_api=api_level, dry_run=dry_run,
+ accept_license=auto_accept_license, skip_update=skip_update)
+
+ templates_path = Path(__file__).parent / "templates"
+
+ for plat_name in plat_names:
+ # for armv7a the API level dependent binaries like clang are named
+ # armv7a-linux-androideabi27-clang, as opposed to other platforms which
+ # are named like x86_64-linux-android27-clang
+ platform_data = None
+ if plat_name == "armv7a":
+ platform_data = PlatformData("armv7a", api_level, "armeabi-v7a", "armv7",
+ "armv7", "32")
+ elif plat_name == "aarch64":
+ platform_data = PlatformData("aarch64", api_level, "arm64-v8a", "arm64_v8a", "armv8-a",
+ "64")
+ elif plat_name == "i686":
+ platform_data = PlatformData("i686", api_level, "x86", "x86", "i686", "32")
+ else: # plat_name is x86_64
+ platform_data = PlatformData("x86_64", api_level, "x86_64", "x86_64", "x86-64", "64")
+
+ # python path is valid, if Python for android installation exists in python_path
+ python_path = (pyside6_deploy_cache / f"Python-{platform_data.plat_name}-linux-android"
+ / "_install")
+ valid_python_path = python_path.exists()
+ if Path(python_path).exists():
+ expected_dirs = ["lib", "include"]
+ for expected_dir in expected_dirs:
+ if not (Path(python_path) / expected_dir).is_dir():
+ valid_python_path = False
+ warnings.warn(
+ f"{str(python_path.resolve())} is corrupted. New Python for {plat_name} "
+ f"android will be cross-compiled into {str(pyside6_deploy_cache.resolve())}"
+ )
+ break
+
+ environment = Environment(loader=FileSystemLoader(templates_path))
+ if not valid_python_path:
+ # clone cpython and checkout 3.10
+ cpython_dir = pyside6_deploy_cache / "cpython"
+ python_ccompile_script = cpython_dir / f"cross_compile_{plat_name}.sh"
+
+ if not cpython_dir.exists():
+ logging.info(f"cloning cpython {PYTHON_VERSION}")
+ Repo.clone_from(
+ "https://github.com/python/cpython.git",
+ cpython_dir,
+ progress=CloneProgress(),
+ branch=PYTHON_VERSION,
+ )
+
+ if not python_ccompile_script.exists():
+ # use jinja2 to create cross_compile.sh script
+ template = environment.get_template("cross_compile.tmpl.sh")
+ content = template.render(
+ plat_name=platform_data.plat_name,
+ ndk_path=ndk_path,
+ api_level=platform_data.api_level,
+ android_py_install_path_prefix=pyside6_deploy_cache,
+ host_python_path=sys.executable
+ )
+
+ logging.info(f"Writing Python cross compile script into {python_ccompile_script}")
+ with open(python_ccompile_script, mode="w", encoding="utf-8") as ccompile_script:
+ ccompile_script.write(content)
+
+ # give run permission to cross compile script
+ python_ccompile_script.chmod(python_ccompile_script.stat().st_mode | stat.S_IEXEC)
+
+ # clean built files
+ logging.info("Cleaning CPython built files")
+ run_command(["make", "distclean"], cwd=cpython_dir, dry_run=dry_run, ignore_fail=True)
+
+ # run the cross compile script
+ logging.info(f"Running Python cross-compile for platform {platform_data.plat_name}")
+ run_command([f"./{python_ccompile_script.name}"], cwd=cpython_dir, dry_run=dry_run,
+ show_stdout=True)
+
+ # run patchelf to change the SONAME of libpython from libpython3.x.so.1.0 to
+ # libpython3.x.so, to match with python_for_android's Python library. Otherwise,
+ # the Qfp binaries won't be able to link to Python
+ run_command(["patchelf", "--set-soname", f"libpython{PYTHON_VERSION}.so",
+ f"libpython{PYTHON_VERSION}.so.1.0"], cwd=Path(python_path) / "lib",
+ dry_run=dry_run)
+
+ logging.info(
+ f"Cross compile Python for Android platform {platform_data.plat_name}. "
+ f"Final installation in {python_path}"
+ )
+
+ if only_py_cross_compile:
+ continue
+
+ if only_py_cross_compile:
+ requested_platforms = ",".join(plat_names)
+ print(f"Python for Android platforms: {requested_platforms} cross compiled "
+ f"to {str(pyside6_deploy_cache)}")
+ sys.exit(0)
+
+ qfp_toolchain = pyside6_deploy_cache / f"toolchain_{platform_data.plat_name}.cmake"
+
+ if not qfp_toolchain.exists():
+ template = environment.get_template("toolchain_default.tmpl.cmake")
+ content = template.render(
+ ndk_path=ndk_path,
+ sdk_path=sdk_path,
+ api_level=platform_data.api_level,
+ qt_install_path=qt_install_path,
+ plat_name=platform_data.plat_name,
+ android_abi=platform_data.android_abi,
+ qt_plat_name=platform_data.qt_plat_name,
+ gcc_march=platform_data.gcc_march,
+ plat_bits=platform_data.plat_bits,
+ python_version=PYTHON_VERSION,
+ target_python_path=python_path
+ )
+
+ logging.info(f"Writing Qt for Python toolchain file into {qfp_toolchain}")
+ with open(qfp_toolchain, mode="w", encoding="utf-8") as ccompile_script:
+ ccompile_script.write(content)
+
+ # give run permission to cross compile script
+ qfp_toolchain.chmod(qfp_toolchain.stat().st_mode | stat.S_IEXEC)
+
+ # run the cross compile script
+ logging.info(f"Running Qt for Python cross-compile for platform {platform_data.plat_name}")
+ qfp_ccompile_cmd = [sys.executable, "setup.py", "bdist_wheel", "--parallel=9",
+ "--standalone",
+ f"--cmake-toolchain-file={str(qfp_toolchain.resolve())}",
+ f"--qt-host-path={qt_install_path}/gcc_64",
+ f"--plat-name=android_{platform_data.plat_name}",
+ f"--python-target-path={python_path}",
+ (f"--qt-target-path={qt_install_path}/"
+ f"android_{platform_data.qt_plat_name}"),
+ "--no-qt-tools"]
+ run_command(qfp_ccompile_cmd, cwd=pyside_setup_dir, dry_run=dry_run, show_stdout=True)
diff --git a/tools/cross_compile_android/requirements.txt b/tools/cross_compile_android/requirements.txt
new file mode 100644
index 000000000..62e8ee3b0
--- /dev/null
+++ b/tools/cross_compile_android/requirements.txt
@@ -0,0 +1,3 @@
+gitpython
+Jinja2
+tqdm
diff --git a/tools/cross_compile_android/templates/cross_compile.tmpl.sh b/tools/cross_compile_android/templates/cross_compile.tmpl.sh
new file mode 100644
index 000000000..a68907591
--- /dev/null
+++ b/tools/cross_compile_android/templates/cross_compile.tmpl.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+set -x -e
+export HOST_ARCH={{ plat_name }}-linux-android
+export TOOLCHAIN={{ ndk_path }}/toolchains/llvm/prebuilt/linux-x86_64/bin
+export TOOL_PREFIX=$TOOLCHAIN/$HOST_ARCH
+export PLATFORM_API={{ api_level }}
+{% if plat_name == "armv7a" -%}
+export CXX=${TOOL_PREFIX}eabi${PLATFORM_API}-clang++
+export CPP="${TOOL_PREFIX}eabi${PLATFORM_API}-clang++ -E"
+export CC=${TOOL_PREFIX}eabi${PLATFORM_API}-clang
+{% else %}
+export CXX=${TOOL_PREFIX}${PLATFORM_API}-clang++
+export CPP="${TOOL_PREFIX}${PLATFORM_API}-clang++ -E"
+export CC=${TOOL_PREFIX}${PLATFORM_API}-clang
+{% endif %}
+export AR=$TOOLCHAIN/llvm-ar
+export RANLIB=$TOOLCHAIN/llvm-ranlib
+export LD=$TOOLCHAIN/ld
+export READELF=$TOOLCHAIN/llvm-readelf
+export CFLAGS='-fPIC -DANDROID'
+./configure --host=$HOST_ARCH --target=$HOST_ARCH --build=x86_64-pc-linux-gnu \
+--with-build-python={{ host_python_path }} --enable-shared \
+--enable-ipv6 ac_cv_file__dev_ptmx=yes ac_cv_file__dev_ptc=no --without-ensurepip \
+ac_cv_little_endian_double=yes
+make BLDSHARED="$CC -shared" CROSS-COMPILE=$TOOL_PREFIX- CROSS_COMPILE_TARGET=yes
+make install BLDSHARED="$CC -shared" CROSS-COMPILE=$TOOL_PREFIX- \
+CROSS_COMPILE_TARGET=yes prefix={{ android_py_install_path_prefix }}/Python-$HOST_ARCH/_install
diff --git a/tools/cross_compile_android/templates/toolchain_default.tmpl.cmake b/tools/cross_compile_android/templates/toolchain_default.tmpl.cmake
new file mode 100644
index 000000000..3c9752f43
--- /dev/null
+++ b/tools/cross_compile_android/templates/toolchain_default.tmpl.cmake
@@ -0,0 +1,73 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+# toolchain file to cross compile Qt for Python wheels for Android
+cmake_minimum_required(VERSION 3.23)
+include_guard(GLOBAL)
+set(CMAKE_SYSTEM_NAME Android)
+{% if plat_name == "armv7a" -%}
+set(CMAKE_SYSTEM_PROCESSOR armv7-a)
+{% else %}
+set(CMAKE_SYSTEM_PROCESSOR {{ plat_name }})
+{% endif %}
+set(CMAKE_ANDROID_API {{ api_level }})
+set(CMAKE_ANDROID_NDK {{ ndk_path }})
+set(CMAKE_ANDROID_ARCH_ABI {{ android_abi }})
+set(CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION clang)
+set(CMAKE_ANDROID_STL_TYPE c++_shared)
+if(NOT DEFINED ANDROID_PLATFORM AND NOT DEFINED ANDROID_NATIVE_API_LEVEL)
+ set(ANDROID_PLATFORM "android-{{ api_level }}" CACHE STRING "")
+endif()
+set(ANDROID_SDK_ROOT {{ sdk_path }})
+{% if plat_name == "armv7a" -%}
+set(_TARGET_NAME_ENDING "eabi{{ api_level }}")
+{% else %}
+set(_TARGET_NAME_ENDING "{{ api_level }}")
+{% endif %}
+set(QT_COMPILER_FLAGS "--target={{ plat_name }}-linux-android${_TARGET_NAME_ENDING} \
+ -fomit-frame-pointer \
+ -march={{ gcc_march }} \
+ -msse4.2 \
+ -mpopcnt \
+ -m{{ plat_bits }} \
+ -fPIC \
+ -I{{ target_python_path }}/include/python{{ python_version }} \
+ -Wno-unused-command-line-argument")
+set(QT_COMPILER_FLAGS_RELEASE "-O2 -pipe")
+
+# FIXME
+# https://gitlab.kitware.com/cmake/cmake/-/issues/23670
+# The CMake Android toolchain does not allow RPATHS. Hence CMAKE_INSTALL_RPATH does not work.
+# Currently the linker flags are set directly as -Wl,-rpath='$ORIGIN' -Wl,-rpath='$ORIGIN/Qt/lib'
+# set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
+# set(CMAKE_INSTALL_RPATH "$ORIGIN")
+
+set(QT_LINKER_FLAGS "-Wl,-O1 -Wl,--hash-style=gnu -Wl,-rpath='$ORIGIN' -Wl,-rpath='$ORIGIN/Qt/lib' \
+ -Wl,--as-needed -L{{ qt_install_path }}/android_{{ qt_plat_name }}/lib \
+ -L{{ qt_install_path }}/android_{{ qt_plat_name }}/plugins/platforms \
+ -L{{ target_python_path }}/lib \
+ -lpython{{ python_version }}")
+set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
+
+add_compile_definitions(ANDROID)
+
+include(CMakeInitializeConfigs)
+function(cmake_initialize_per_config_variable _PREFIX _DOCSTRING)
+ if (_PREFIX MATCHES "CMAKE_(C|CXX|ASM)_FLAGS")
+ set(CMAKE_${CMAKE_MATCH_1}_FLAGS_INIT "${QT_COMPILER_FLAGS}")
+ foreach (config DEBUG RELEASE MINSIZEREL RELWITHDEBINFO)
+ if (DEFINED QT_COMPILER_FLAGS_${config})
+ set(CMAKE_${CMAKE_MATCH_1}_FLAGS_${config}_INIT "${QT_COMPILER_FLAGS_${config}}")
+ endif()
+ endforeach()
+ endif()
+ if (_PREFIX MATCHES "CMAKE_(SHARED|MODULE|EXE)_LINKER_FLAGS")
+ foreach (config SHARED MODULE EXE)
+ set(CMAKE_${config}_LINKER_FLAGS_INIT "${QT_LINKER_FLAGS}")
+ endforeach()
+ endif()
+ _cmake_initialize_per_config_variable(${ARGV})
+endfunction()
diff --git a/tools/debug_renamer.py b/tools/debug_renamer.py
index db3ba5040..ec777388b 100644
--- a/tools/debug_renamer.py
+++ b/tools/debug_renamer.py
@@ -1,32 +1,12 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
-"""
+import re
+import sys
+from argparse import ArgumentParser, FileType, RawTextHelpFormatter
+from collections import OrderedDict
+
+DESC = """
debug_renamer.py
================
@@ -53,39 +33,15 @@ The Python output lines can be freely formatted.
Any line which contains "0x.." followed by some name will be changed,
all others are left alone.
-We name these fields `object_id` and `typename`.
-
-
-Operation
----------
-
-The script reads from <stdin> until EOF. It produces output where the
-`object_id` field is removed and some text is combined with `typename`
-to produce a unique object name.
-
-
-Example
--------
-
-You can create reference debugging output by using the modified interpreter at
-
- https://github.com/ctismer/cpython/tree/3.9-refdebug
-
-and pipe the error output through this script.
-This is work in flux that might change quite often.
To Do List
----------
Names of objects which are already deleted should be monitored and
-not by chance be re-used.
+not by chance be re-used. We need to think of a way to specify deletion.
"""
-import re
-import sys
-from collections import OrderedDict
-
def make_name(typename, name_pos):
"""
@@ -101,19 +57,57 @@ known_types = {}
pattern = r"0x\w+\s+\S+" # hex word followed by non-WS
rex = re.compile(pattern, re.IGNORECASE)
-while True:
- line = sys.stdin.readline()
- if not line:
- break
+
+def rename_hexval(line):
if not (res := rex.search(line)):
- print(line.rstrip())
- continue
+ return line
start_pos, end_pos = res.start(), res.end()
- beg, mid, end = line[:start_pos], line[start_pos : end_pos], line[end_pos:].rstrip()
+ beg, mid, end = line[:start_pos], line[start_pos:end_pos], line[end_pos:]
object_id, typename = mid.split()
+ if int(object_id, 16) == 0:
+ return(f"{beg}{typename}_NULL{end}")
if typename not in known_types:
known_types[typename] = OrderedDict()
obj_store = known_types[typename]
if object_id not in obj_store:
obj_store[object_id] = make_name(typename, len(obj_store))
- print(f"{beg}{obj_store[object_id]}{end}")
+ return(f"{beg}{obj_store[object_id]}{end}")
+
+
+def hide_floatval(line):
+ return re.sub(r"\d+\.\d+", "<float>", line)
+
+
+def process_all_lines(options):
+ """
+ Process all lines from fin to fout.
+ The caller is responsible of opening and closing files if at all.
+ """
+ fi, fo = options.input, options.output
+ rename = options.rename
+ float_ = options.float
+ while line := fi.readline():
+ if rename:
+ line = rename_hexval(line)
+ if float_:
+ line = hide_floatval(line)
+ fo.write(line)
+
+
+def create_argument_parser(desc):
+ parser = ArgumentParser(description=desc, formatter_class=RawTextHelpFormatter)
+ parser.add_argument("--rename", "-r", action="store_true",
+ help="Rename hex value and following word to a readable f'{word}_{anum}'")
+ parser.add_argument("--float", "-f", action="store_true",
+ help="Replace timing numbers by '<float>' (for comparing ctest output)")
+ parser.add_argument("--input", "-i", nargs="?", type=FileType("r"), default=sys.stdin,
+ help="Use the specified file instead of sys.stdin")
+ parser.add_argument("--output", "-o", nargs="?", type=FileType("w"), default=sys.stdout,
+ help="Use the specified file instead of sys.stdout")
+ return parser
+
+
+if __name__ == "__main__":
+ argument_parser = create_argument_parser(DESC)
+ options = argument_parser.parse_args()
+ process_all_lines(options)
diff --git a/tools/debug_windows.py b/tools/debug_windows.py
index de3ddf445..832282895 100644
--- a/tools/debug_windows.py
+++ b/tools/debug_windows.py
@@ -1,43 +1,21 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-###############
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-"""
+import argparse
+import ctypes
+import logging
+import re
+import subprocess
+import sys
+from os import path
+from textwrap import dedent
+
+is_win = sys.platform == "win32"
+if is_win:
+ import winreg
+
+
+EPILOG = """
This is a troubleshooting script that assists finding out which DLLs or
which symbols in a DLL are missing when executing a PySide6 python
script.
@@ -61,37 +39,21 @@ https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk
"""
-import sys
-import re
-import subprocess
-import ctypes
-import logging
-import argparse
-from os import path
-from textwrap import dedent
-
-is_win = sys.platform == "win32"
-is_py_3 = sys.version_info[0] == 3
-if is_win:
- if is_py_3:
- import winreg
- else:
- import _winreg as winreg
- import exceptions
-
def get_parser_args():
desc_msg = "Run an executable under cdb with loader snaps set."
help_msg = "Pass the executable and the arguments passed to it as a list."
- parser = argparse.ArgumentParser(description=desc_msg)
+ parser = argparse.ArgumentParser(description=desc_msg,
+ formatter_class=argparse.RawDescriptionHelpFormatter,
+ epilog=EPILOG)
parser.add_argument('args', nargs='*', help=help_msg)
# Prepend -- so that python options like '-c' are ignored by
# argparse.
- massaged_args = ['--'] + sys.argv[1:]
- return parser.parse_args(massaged_args)
+ help_requested = '-h' in sys.argv or '--help' in sys.argv
+ massaged_args = ['--'] + sys.argv[1:] if not help_requested else sys.argv
+ return parser, parser.parse_args(massaged_args)
-parser_args = get_parser_args()
verbose_log_file_name = path.join(path.dirname(path.abspath(__file__)),
'log_debug_windows.txt')
@@ -187,10 +149,10 @@ def get_appropriate_kit(kits):
log.info("Found Windows kits are: {}".format(kits))
chosen_kit = {'version': "0", 'value': None}
for kit in kits:
- if (kit['version'] > chosen_kit['version'] and
+ if (kit['version'] > chosen_kit['version']
# version 8.1 is actually '81', so consider everything
# above version 20, as '2.0', etc.
- kit['version'] < "20"):
+ and kit['version'] < "20"):
chosen_kit = kit
first_kit = kits[0]
return first_kit
@@ -203,7 +165,8 @@ def get_cdb_and_gflags_path(kits):
bits = 'x64' if (sys.maxsize > 2 ** 32) else 'x32'
debuggers_path = path.join(first_path_path, 'Debuggers', bits)
cdb_path = path.join(debuggers_path, 'cdb.exe')
- if not path.exists(cdb_path): # Try for older "Debugging Tools" packages
+ # Try for older "Debugging Tools" packages
+ if not path.exists(cdb_path):
debuggers_path = "C:\\Program Files\\Debugging Tools for Windows (x64)"
cdb_path = path.join(debuggers_path, 'cdb.exe')
@@ -232,7 +195,7 @@ def toggle_loader_snaps(executable_name, gflags_path, enable=True):
output = subprocess.check_output(gflags_args, stderr=subprocess.STDOUT,
universal_newlines=True)
log.info(output)
- except exceptions.WindowsError as e:
+ except WindowsError as e:
log.error("\nRunning {} exited with exception: "
"\n{}".format(gflags_args, e))
exit(1)
@@ -247,7 +210,7 @@ def find_error_like_snippets(content):
lines = content.splitlines()
context_lines = 4
- def error_predicate(l):
+ def error_predicate(line):
# A list of mostly false positives are filtered out.
# For deeper inspection, the full log exists.
errors = {'errorhandling',
@@ -265,8 +228,8 @@ def find_error_like_snippets(content):
'ERR_get_error',
('ERROR: Module load completed but symbols could '
'not be loaded')}
- return (re.search('error', l, re.IGNORECASE)
- and all(e not in l for e in errors))
+ return (re.search('error', line, re.IGNORECASE)
+ and all(e not in line for e in errors))
for i in range(1, len(lines)):
line = lines[i]
@@ -342,7 +305,7 @@ print(">>>>>>>>>>>>>>>>>>>>>>> QtCore object instance: {}".format(PySide6.QtCore
call_command_under_cdb_with_gflags(sys.executable, ["-c", python_code])
-def handle_args():
+def handle_args(parser_args):
if not parser_args.args:
test_run_import_qt_core_under_cdb_with_gflags()
else:
@@ -355,9 +318,12 @@ if __name__ == '__main__':
log.error("This script only works on Windows.")
exit(1)
+ parser, parser_args = get_parser_args()
+
if is_admin():
- handle_args()
+ handle_args(parser_args)
else:
log.error("Please rerun the script with administrator privileges. "
"It is required for gflags.exe to work. ")
+ parser.print_help()
exit(1)
diff --git a/tools/doc_modules.py b/tools/doc_modules.py
new file mode 100644
index 000000000..d46f4db02
--- /dev/null
+++ b/tools/doc_modules.py
@@ -0,0 +1,209 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+import os
+import subprocess
+import sys
+from argparse import ArgumentParser, RawTextHelpFormatter
+from pathlib import Path
+import xml.sax
+from xml.sax.handler import ContentHandler
+
+DESC = """Print a list of module short names ordered by typesystem dependencies
+for which documentation can be built by intersecting the PySide6 modules with
+the modules built in Qt."""
+
+
+ROOT_DIR = Path(__file__).parents[1].resolve()
+SOURCE_DIR = ROOT_DIR / "sources" / "pyside6" / "PySide6"
+
+
+qt_version = None
+qt_include_dir = None
+
+
+class TypeSystemContentHandler(ContentHandler):
+ """XML SAX content handler that extracts required modules from the
+ "load-typesystem" elements of the typesystem_file. Nodes that start
+ with Qt and are marked as generate == "no" are considered required."""
+
+ def __init__(self):
+ self.required_modules = []
+
+ def startElement(self, name, attrs):
+ if name == "load-typesystem":
+ generate = attrs.get("generate", "").lower()
+ if generate == "no" or generate == "false":
+ load_file_name = attrs.get("name") # "QtGui/typesystem_gui.xml"
+ if load_file_name.startswith("Qt"):
+ slash = load_file_name.find("/")
+ if slash > 0:
+ self.required_modules.append(load_file_name[:slash])
+
+
+def required_typesystems(module):
+ """Determine the required Qt modules by looking at the "load-typesystem"
+ elements of the typesystem_file."""
+ name = module[2:].lower()
+ typesystem_file = SOURCE_DIR / module / f"typesystem_{name}.xml"
+ # Use a SAX parser since that works despite undefined entity
+ # errors for typesystem entities.
+ handler = TypeSystemContentHandler()
+ try:
+ parser = xml.sax.make_parser()
+ parser.setContentHandler(handler)
+ parser.parse(typesystem_file)
+ except Exception as e:
+ print(f"Warning: XML error parsing {typesystem_file}: {e}", file=sys.stderr)
+ return handler.required_modules
+
+
+def query_qtpaths(keyword):
+ query_cmd = ["qtpaths", "-query", keyword]
+ output = subprocess.check_output(query_cmd, stderr=subprocess.STDOUT,
+ universal_newlines=True)
+ return output.strip()
+
+
+def sort_modules(dependency_dict):
+ """Sort the modules by dependencies using brute force: Keep adding
+ modules all of whose requirements are present to the result list
+ until done."""
+ result = []
+ while True:
+ found = False
+ for module, dependencies in dependency_dict.items():
+ if module not in result:
+ if all(dependency in result for dependency in dependencies):
+ result.append(module)
+ found = True
+ if not found:
+ break
+
+ if len(result) < len(dependency_dict) and verbose:
+ for desired_module in dependency_dict.keys():
+ if desired_module not in result:
+ print(f"Not documenting {desired_module} (missing dependency)",
+ file=sys.stderr)
+ return result
+
+
+def _write_type_system(modules, file):
+ """Helper to write the type system for shiboken. It needs to be in
+ dependency order to prevent shiboken from loading the included
+ typesystems with generate="no", which causes those modules to be
+ missing."""
+ for module in modules:
+ name = module[2:].lower()
+ filename = f"{module}/typesystem_{name}.xml"
+ print(f' <load-typesystem name="{filename}" generate="yes"/>',
+ file=file)
+ print("</typesystem>", file=file)
+
+
+def write_type_system(modules, filename):
+ """Write the type system for shiboken in dependency order."""
+ if filename == "-":
+ _write_type_system(modules, sys.stdout)
+ else:
+ path = Path(filename)
+ exists = path.exists()
+ with path.open(mode="a") as f:
+ if not exists:
+ print('<typesystem package="PySide">', file=f)
+ _write_type_system(modules, f)
+
+
+def _write_global_header(modules, file):
+ """Helper to write the global header for shiboken."""
+ for module in modules:
+ print(f"#include <{module}/{module}>", file=file)
+
+
+def write_global_header(modules, filename):
+ """Write the global header for shiboken."""
+ if filename == "-":
+ _write_global_header(modules, sys.stdout)
+ else:
+ with Path(filename).open(mode="a") as f:
+ _write_global_header(modules, f)
+
+
+def _write_docconf(modules, file):
+ """Helper to write the include paths for the .qdocconf file."""
+ # @TODO fix this for macOS frameworks.
+ for module in modules:
+ root = f" -I/{qt_include_dir}/{module}"
+ print(f"{root} \\", file=file)
+ print(f"{root}/{qt_version} \\", file=file)
+ print(f"{root}/{qt_version}/{module} \\", file=file)
+
+
+def write_docconf(modules, filename):
+ """Write the include paths for the .qdocconf file."""
+ if filename == "-":
+ _write_docconf(modules, sys.stdout)
+ else:
+ with Path(filename).open(mode="a") as f:
+ _write_docconf(modules, f)
+
+
+if __name__ == "__main__":
+ argument_parser = ArgumentParser(description=DESC,
+ formatter_class=RawTextHelpFormatter)
+ argument_parser.add_argument("--verbose", "-v", action="store_true",
+ help="Verbose")
+ argument_parser.add_argument("qt_include_dir", help="Qt Include dir",
+ nargs='?', type=str)
+ argument_parser.add_argument("qt_version", help="Qt version string",
+ nargs='?', type=str)
+ argument_parser.add_argument("--typesystem", "-t", help="Typesystem file to write",
+ action="store", type=str)
+ argument_parser.add_argument("--global-header", "-g", help="Global header to write",
+ action="store", type=str)
+ argument_parser.add_argument("--docconf", "-d", help="docconf file to write",
+ action="store", type=str)
+
+ options = argument_parser.parse_args()
+ verbose = options.verbose
+ if options.qt_include_dir:
+ qt_include_dir = Path(options.qt_include_dir)
+ if not qt_include_dir.is_dir():
+ print(f"Invalid include directory passed: {options.qt_include_dir}",
+ file=sys.stderr)
+ sys.exit(-1)
+ else:
+ verbose = True # Called by hand to find out about available modules
+ query_cmd = ["qtpaths", "-query", "QT_INSTALL_HEADERS"]
+ qt_include_dir = Path(query_qtpaths("QT_INSTALL_HEADERS"))
+ if not qt_include_dir.is_dir():
+ print("Cannot determine include directory", file=sys.stderr)
+ sys.exit(-1)
+
+ qt_version = options.qt_version if options.qt_version else query_qtpaths("QT_VERSION")
+
+ # Build a typesystem dependency dict of the available modules in order
+ # to be able to sort_modules by dependencies. This is required as
+ # otherwise shiboken will read the required typesystems with
+ # generate == "no" and thus omit modules.
+ module_dependency_dict = {}
+ for m in SOURCE_DIR.glob("Qt*"):
+ module = m.name
+ # QtGraphs duplicates symbols from QtDataVisualization causing shiboken errors
+ if module == "QtDataVisualization":
+ continue
+ qt_include_path = qt_include_dir / module
+ if qt_include_path.is_dir():
+ module_dependency_dict[module] = required_typesystems(module)
+ elif verbose:
+ print(f"Not documenting {module} (not built)", file=sys.stderr)
+
+ modules = sort_modules(module_dependency_dict)
+ print(" ".join([m[2:] for m in modules]))
+
+ if options.typesystem:
+ write_type_system(modules, options.typesystem)
+ if options.global_header:
+ write_global_header(modules, options.global_header)
+ if options.docconf:
+ write_docconf(modules, options.docconf)
diff --git a/tools/dump_metaobject.py b/tools/dump_metaobject.py
index 96acc189c..6898e9317 100644
--- a/tools/dump_metaobject.py
+++ b/tools/dump_metaobject.py
@@ -1,69 +1,40 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python project.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
"""Helper functions for formatting information on QMetaObject"""
-from PySide6.QtCore import (QMetaClassInfo, QMetaEnum, QMetaMethod,
- QMetaProperty, QMetaObject, QObject)
+from PySide6.QtCore import QMetaMethod
def _qbytearray_to_string(b):
return bytes(b.data()).decode('utf-8')
+def _format_metatype(meta_type):
+ return meta_type.id() if meta_type.isValid() else '<invalid>'
+
+
def _dump_metaobject_helper(meta_obj, indent):
- print('{}class {}:'.format(indent, meta_obj.className()))
+ meta_id = 0
+ # FIXME: Otherwise crashes in Qt
+ if meta_obj.propertyOffset() < meta_obj.propertyCount():
+ meta_id = _format_metatype(meta_obj.metaType())
+ print(f'{indent}class {meta_obj.className()}/{meta_id}:')
indent += ' '
info_offset = meta_obj.classInfoOffset()
info_count = meta_obj.classInfoCount()
if info_offset < info_count:
- print('{}Info:'.format(indent))
+ print(f'{indent}Info:')
for i in range(info_offset, info_count):
name = meta_obj.classInfo(i).name()
value = meta_obj.classInfo(i).value()
- print('{}{:4d} {}+{}'.format(indent, i, name, value))
+ print(f'{indent}{i:4d} {name}+{value}')
enumerator_offset = meta_obj.enumeratorOffset()
enumerator_count = meta_obj.enumeratorCount()
if enumerator_offset < enumerator_count:
- print('{}Enumerators:'.format(indent))
+ print(f'{indent}Enumerators:')
for e in range(enumerator_offset, enumerator_count):
meta_enum = meta_obj.enumerator(e)
name = meta_enum.name()
@@ -73,27 +44,27 @@ def _dump_metaobject_helper(meta_obj, indent):
descr += ' flag'
if meta_enum.isScoped():
descr += ' scoped'
- for k in range(0, meta_enum.keyCount()):
+ for k in range(meta_enum.keyCount()):
if k > 0:
value_str += ', '
- value_str += '{} = {}'.format(meta_enum.key(k),
- meta_enum.value(k))
- print('{}{:4d} {}{} ({})'.format(indent, e, name, descr,
- value_str))
+ key = meta_enum.key(k)
+ value = meta_enum.value(k)
+ value_str += f'{key} = {value}'
+ print(f'{indent}{e:4d} {name}{descr} ({value_str})')
property_offset = meta_obj.propertyOffset()
property_count = meta_obj.propertyCount()
if property_offset < property_count:
- print('{}Properties:'.format(indent))
+ print(f'{indent}Properties:')
for p in range(property_offset, property_count):
meta_property = meta_obj.property(p)
name = meta_property.name()
desc = ''
if meta_property.isConstant():
desc += ', constant'
- if meta_property.isDesignable:
+ if meta_property.isDesignable():
desc += ', designable'
- if meta_property.isFlagType:
+ if meta_property.isFlagType():
desc += ', flag'
if meta_property.isEnumType():
desc += ', enum'
@@ -101,13 +72,15 @@ def _dump_metaobject_helper(meta_obj, indent):
desc += ', stored'
if meta_property.isWritable():
desc += ', writable'
- if meta_property.isResettable:
+ if meta_property.isResettable():
desc += ', resettable'
if meta_property.hasNotifySignal():
- notify_name = meta_property.notifySignal().name()
- desc += ', notify={}'.format(_qbytearray_to_string(notify_name))
- print('{}{:4d} {} {}{}'.format(indent, p, meta_property.typeName(),
- name, desc))
+ notify_name_b = meta_property.notifySignal().name()
+ notify_name = _qbytearray_to_string(notify_name_b)
+ desc += f', notify="{notify_name}"'
+ meta_id = _format_metatype(meta_property.metaType())
+ type_name = meta_property.typeName()
+ print(f'{indent}{p:4d} {type_name}/{meta_id} "{name}"{desc}')
method_offset = meta_obj.methodOffset()
method_count = meta_obj.methodCount()
@@ -129,17 +102,18 @@ def _dump_metaobject_helper(meta_obj, indent):
typeString = ' (Slot)'
elif type == QMetaMethod.Constructor:
typeString = ' (Ct)'
- desc = '{}{:4d} {}{} {}{}'.format(indent, m, access,
- method.typeName(), signature,
- typeString)
+ type_name = method.typeName()
+ desc = f'{indent}{m:4d} {access}{type_name} "{signature}"{typeString}'
parameter_names = method.parameterNames()
if parameter_names:
parameter_types = method.parameterTypes()
desc += ' Parameters:'
for p, bname in enumerate(parameter_names):
name = _qbytearray_to_string(bname)
- type = _qbytearray_to_string(parameter_types[p])
- desc += ' {}: {}'.format(name if name else '<unnamed>', type)
+ type_name = _qbytearray_to_string(parameter_types[p])
+ if not name:
+ name = '<unnamed>'
+ desc += f' "{name}": {type_name}'
print(desc)
diff --git a/tools/example_gallery/main.py b/tools/example_gallery/main.py
index d6ca7b827..b5aa632c0 100644
--- a/tools/example_gallery/main.py
+++ b/tools/example_gallery/main.py
@@ -1,41 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-###############
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
"""
@@ -48,33 +12,83 @@ For the usage, simply run:
since there is no special requirements.
"""
-from argparse import ArgumentParser, RawTextHelpFormatter
import json
import math
+import os
import shutil
+import zipfile
+import sys
+from argparse import ArgumentParser, RawTextHelpFormatter
+from dataclasses import dataclass
+from enum import IntEnum, Enum
from pathlib import Path
from textwrap import dedent
+class Format(Enum):
+ RST = 0
+ MD = 1
+
+
+class ModuleType(IntEnum):
+ ESSENTIALS = 0
+ ADDONS = 1
+ M2M = 2
+
+
+SUFFIXES = {Format.RST: "rst", Format.MD: "md"}
+
+
opt_quiet = False
+
+
+LITERAL_INCLUDE = ".. literalinclude::"
+
+
+IMAGE_SUFFIXES = (".png", ".jpg", ".jpeg", ".gif", ".svg", ".svgz", ".webp")
+
+
+IGNORED_SUFFIXES = IMAGE_SUFFIXES + (".pdf", ".pyc", ".obj", ".mesh")
+
+
suffixes = {
+ ".h": "cpp",
+ ".cpp": "cpp",
+ ".md": "markdown",
".py": "py",
".qml": "js",
".conf": "ini",
".qrc": "xml",
".ui": "xml",
".xbel": "xml",
+ ".xml": "xml",
}
+BASE_CONTENT = """\
+Examples
+========
+
+ A collection of examples are provided with |project| to help new users
+ to understand different use cases of the module.
+
+ You can find all these examples inside the
+ `pyside-setup <https://code.qt.io/cgit/pyside/pyside-setup.git/>`_ repository
+ on the `examples <https://code.qt.io/cgit/pyside/pyside-setup.git/tree/examples>`_
+ directory.
+
+"""
+
+
def ind(x):
return " " * 4 * x
-def get_lexer(suffix):
- if suffix in suffixes:
- return suffixes[suffix]
- return "text"
+def get_lexer(path):
+ if path.name == "CMakeLists.txt":
+ return "cmake"
+ lexer = suffixes.get(path.suffix)
+ return lexer if lexer else "text"
def add_indent(s, level):
@@ -87,6 +101,110 @@ def add_indent(s, level):
return new_s
+def check_img_ext(i):
+ """Check whether path is an image."""
+ return i.suffix in IMAGE_SUFFIXES
+
+
+@dataclass
+class ModuleDescription:
+ """Specifies a sort key and type for a Qt module."""
+ sort_key: int = 0
+ module_type: ModuleType = ModuleType.ESSENTIALS
+ description: str = ''
+
+
+MODULE_DESCRIPTIONS = {
+ "async": ModuleDescription(16, ModuleType.ESSENTIALS, ''),
+ "corelib": ModuleDescription(15, ModuleType.ESSENTIALS, ''),
+ "dbus": ModuleDescription(22, ModuleType.ESSENTIALS, ''),
+ "designer": ModuleDescription(11, ModuleType.ESSENTIALS, ''),
+ "gui": ModuleDescription(25, ModuleType.ESSENTIALS, ''),
+ "network": ModuleDescription(20, ModuleType.ESSENTIALS, ''),
+ "opengl": ModuleDescription(26, ModuleType.ESSENTIALS, ''),
+ "qml": ModuleDescription(0, ModuleType.ESSENTIALS, ''),
+ "quick": ModuleDescription(1, ModuleType.ESSENTIALS, ''),
+ "quickcontrols": ModuleDescription(2, ModuleType.ESSENTIALS, ''),
+ "samplebinding": ModuleDescription(30, ModuleType.ESSENTIALS, ''),
+ "scriptableapplication": ModuleDescription(30, ModuleType.ESSENTIALS, ''),
+ "sql": ModuleDescription(21, ModuleType.ESSENTIALS, ''),
+ "uitools": ModuleDescription(12, ModuleType.ESSENTIALS, ''),
+ "widgetbinding": ModuleDescription(30, ModuleType.ESSENTIALS, ''),
+ "widgets": ModuleDescription(10, ModuleType.ESSENTIALS, ''),
+ "xml": ModuleDescription(24, ModuleType.ESSENTIALS, ''),
+ "Qt Demos": ModuleDescription(0, ModuleType.ADDONS, ''), # from Qt repos
+ "3d": ModuleDescription(30, ModuleType.ADDONS, ''),
+ "axcontainer": ModuleDescription(20, ModuleType.ADDONS, ''),
+ "bluetooth": ModuleDescription(20, ModuleType.ADDONS, ''),
+ "charts": ModuleDescription(12, ModuleType.ADDONS, ''),
+ "datavisualization": ModuleDescription(11, ModuleType.ADDONS, ''),
+ "demos": ModuleDescription(0, ModuleType.ADDONS, ''),
+ "external": ModuleDescription(20, ModuleType.ADDONS, ''),
+ "graphs": ModuleDescription(10, ModuleType.ADDONS, ''),
+ "httpserver": ModuleDescription(0, ModuleType.ADDONS, ''),
+ "location": ModuleDescription(20, ModuleType.ADDONS, ''),
+ "multimedia": ModuleDescription(12, ModuleType.ADDONS, ''),
+ "networkauth": ModuleDescription(20, ModuleType.ADDONS, ''),
+ "pdf": ModuleDescription(20, ModuleType.ADDONS, ''),
+ "pdfwidgets": ModuleDescription(20, ModuleType.ADDONS, ''),
+ "quick3d": ModuleDescription(20, ModuleType.ADDONS, ''),
+ "remoteobjects": ModuleDescription(20, ModuleType.ADDONS, ''),
+ "serialbus": ModuleDescription(30, ModuleType.ADDONS, ''),
+ "serialport": ModuleDescription(30, ModuleType.ADDONS, ''),
+ "spatialaudio": ModuleDescription(20, ModuleType.ADDONS, ''),
+ "speech": ModuleDescription(20, ModuleType.ADDONS, ''),
+ "statemachine": ModuleDescription(30, ModuleType.ADDONS, ''),
+ "webchannel": ModuleDescription(30, ModuleType.ADDONS, ''),
+ "webenginequick": ModuleDescription(15, ModuleType.ADDONS, ''),
+ "webenginewidgets": ModuleDescription(16, ModuleType.ADDONS, ''),
+ "coap": ModuleDescription(0, ModuleType.M2M, ''),
+ "mqtt": ModuleDescription(0, ModuleType.M2M, ''),
+ "opcua": ModuleDescription(0, ModuleType.M2M, '')
+}
+
+
+def module_sort_key(name):
+ """Return key for sorting modules."""
+ description = MODULE_DESCRIPTIONS.get(name)
+ module_type = int(description.module_type) if description else 5
+ sort_key = description.sort_key if description else 100
+ return f"{module_type}:{sort_key:04}:{name}"
+
+
+def module_title(name):
+ """Return title for a module."""
+ result = name.title()
+ description = MODULE_DESCRIPTIONS.get(name)
+ if description:
+ if description.description:
+ result += " - " + description.description
+ if description.module_type == ModuleType.M2M:
+ result += " (M2M)"
+ elif description.module_type == ModuleType.ADDONS:
+ result += " (Add-ons)"
+ else:
+ result += " (Essentials)"
+ return result
+
+
+@dataclass
+class ExampleData:
+ """Example data for formatting the gallery."""
+
+ def __init__(self):
+ self.headline = ""
+
+ example: str
+ module: str
+ extra: str
+ doc_file: str
+ file_format: Format
+ abs_path: str
+ has_doc: bool
+ img_doc: Path
+ headline: str
+
+
def get_module_gallery(examples):
"""
This function takes a list of dictionaries, that contain examples
@@ -94,46 +212,40 @@ def get_module_gallery(examples):
"""
gallery = (
- ".. panels::\n"
- f"{ind(1)}:container: container-lg pb-3\n"
- f"{ind(1)}:column: col-lg-3 col-md-6 col-sm-6 col-xs-12 p-2\n\n"
+ ".. grid:: 1 4 4 4\n"
+ f"{ind(1)}:gutter: 2\n\n"
)
# Iteration per rows
for i in range(math.ceil(len(examples))):
e = examples[i]
- url = e["rst"].replace(".rst", ".html")
- name = e["example"]
- underline = f'{e["module"]}'
+ suffix = SUFFIXES[e.file_format]
+ url = e.doc_file.replace(f".{suffix}", ".html")
+ name = e.example
+ underline = e.module
-
- if e["extra"]:
- underline += f'/{e["extra"]}'
+ if e.extra:
+ underline += f"/{e.extra}"
if i > 0:
- gallery += f"{ind(1)}---\n"
- elif e["img_doc"]:
- gallery += f"{ind(1)}---\n"
-
- if e["img_doc"]:
- img_name = e['img_doc'].name
- else:
- img_name = "../example_no_image.png"
-
- gallery += f"{ind(1)}:img-top: {img_name}\n"
- gallery += f"{ind(1)}:img-top-cls: + d-flex align-self-center\n\n"
+ gallery += "\n"
+ img_name = e.img_doc.name if e.img_doc else "../example_no_image.png"
# Fix long names
if name.startswith("chapter"):
name = name.replace("chapter", "c")
+ elif name.startswith("advanced"):
+ name = name.replace("advanced", "a")
- gallery += f"{ind(1)}`{name} <{url}>`_\n"
- gallery += f"{ind(1)}+++\n"
- gallery += f"{ind(1)}{underline}\n"
- gallery += f"\n{ind(1)}.. link-button:: {url}\n"
- gallery += f"{ind(2)}:type: url\n"
- gallery += f"{ind(2)}:text: Go to Example\n"
- gallery += f"{ind(2)}:classes: btn-qt btn-block stretched-link\n"
+ desc = e.headline
+ if not desc:
+ desc = f"found in the ``{underline}`` directory."
+
+ gallery += f"{ind(1)}.. grid-item-card:: {name}\n"
+ gallery += f"{ind(2)}:class-item: cover-img\n"
+ gallery += f"{ind(2)}:link: {url}\n"
+ gallery += f"{ind(2)}:img-top: {img_name}\n\n"
+ gallery += f"{ind(2)}{desc}\n"
return f"{gallery}\n"
@@ -147,34 +259,99 @@ def remove_licenses(s):
return "\n".join(new_s)
-def get_code_tabs(files, project_file):
+def make_zip_archive(zip_name, src, skip_dirs=None):
+ src_path = Path(src).expanduser().resolve(strict=True)
+ if skip_dirs is None:
+ skip_dirs = []
+ if not isinstance(skip_dirs, list):
+ print("Error: A list needs to be passed for 'skip_dirs'")
+ return
+ with zipfile.ZipFile(src_path.parents[0] / Path(zip_name), 'w', zipfile.ZIP_DEFLATED) as zf:
+ for file in src_path.rglob('*'):
+ skip = False
+ _parts = file.relative_to(src_path).parts
+ for sd in skip_dirs:
+ if sd in _parts:
+ skip = True
+ break
+ if not skip:
+ zf.write(file, file.relative_to(src_path.parent))
+
+
+def doc_file(project_dir, project_file_entry):
+ """Return the (optional) .rstinc file describing a source file."""
+ rst_file = project_dir
+ if rst_file.name != "doc": # Special case: Dummy .pyproject file in doc dir
+ rst_file /= "doc"
+ rst_file /= Path(project_file_entry).name + ".rstinc"
+ return rst_file if rst_file.is_file() else None
+
+
+def get_code_tabs(files, project_dir, file_format):
content = "\n"
+ # Prepare ZIP file, and copy to final destination
+ zip_name = f"{project_dir.name}.zip"
+ make_zip_archive(zip_name, project_dir, skip_dirs=["doc"])
+ zip_src = f"{project_dir}.zip"
+ zip_dst = EXAMPLES_DOC / zip_name
+ shutil.move(zip_src, zip_dst)
+
+ if file_format == Format.RST:
+ content += f":download:`Download this example <{zip_name}>`\n\n"
+ else:
+ content += f"{{download}}`Download this example <{zip_name}>`\n\n"
+ content += "```{eval-rst}\n"
+
for i, project_file in enumerate(files):
+ if i == 0:
+ content += ".. tab-set::\n\n"
+
pfile = Path(project_file)
- if pfile.suffix in (".png", ".pyc"):
+ if pfile.suffix in IGNORED_SUFFIXES:
continue
- content += f".. tabbed:: {project_file}\n\n"
+ content += f"{ind(1)}.. tab-item:: {project_file}\n\n"
- lexer = get_lexer(pfile.suffix)
- content += add_indent(f".. code-block:: {lexer}", 1)
+ doc_rstinc_file = doc_file(project_dir, project_file)
+ if doc_rstinc_file:
+ indent = ind(2)
+ for line in doc_rstinc_file.read_text("utf-8").split("\n"):
+ content += indent + line + "\n"
+ content += "\n"
+
+ lexer = get_lexer(pfile)
+ content += add_indent(f"{ind(1)}.. code-block:: {lexer}", 1)
content += "\n"
- _path = f_path.resolve().parents[0] / project_file
+ _path = project_dir / project_file
_file_content = ""
- with open(_path, "r") as _f:
- _file_content = remove_licenses(_f.read())
-
- content += add_indent(_file_content, 2)
+ try:
+ with open(_path, "r", encoding="utf-8") as _f:
+ _file_content = remove_licenses(_f.read())
+ except UnicodeDecodeError as e:
+ print(f"example_gallery: error decoding {project_dir}/{_path}:{e}",
+ file=sys.stderr)
+ raise
+ except FileNotFoundError as e:
+ print(f"example_gallery: error opening {project_dir}/{_path}:{e}",
+ file=sys.stderr)
+ raise
+
+ content += add_indent(_file_content, 3)
content += "\n\n"
+
+ if file_format == Format.MD:
+ content += "```"
+
return content
-def get_header_title(f_path):
- _title = f_path.stem
- url_name = "/".join(f_path.parts[f_path.parts.index("examples")+1:-1])
- url = f"{BASE_URL}/{url_name}"
+def get_header_title(example_dir):
+ _index = example_dir.parts.index("examples")
+ rel_path = "/".join(example_dir.parts[_index:])
+ _title = rel_path
+ url = f"{BASE_URL}/{rel_path}"
return (
"..\n This file was auto-generated by the 'examples_gallery' "
"script.\n Any change will be lost!\n\n"
@@ -184,19 +361,271 @@ def get_header_title(f_path):
)
+def rel_path(from_path, to_path):
+ """Determine relative paths for paths that are not subpaths (where
+ relative_to() fails) via a common root."""
+ common = Path(*os.path.commonprefix([from_path.parts, to_path.parts]))
+ up_dirs = len(from_path.parts) - len(common.parts)
+ prefix = up_dirs * "../"
+ rel_to_common = os.fspath(to_path.relative_to(common))
+ return f"{prefix}{rel_to_common}"
+
+
+def read_rst_file(project_dir, project_files, doc_rst):
+ """Read the example .rst file and expand literal includes to project files
+ by relative paths to the example directory. Note: sphinx does not
+ handle absolute paths as expected, they need to be relative."""
+ content = ""
+ with open(doc_rst, encoding="utf-8") as doc_f:
+ content = doc_f.read()
+ if LITERAL_INCLUDE not in content:
+ return content
+
+ result = []
+ path_to_example = rel_path(EXAMPLES_DOC, project_dir)
+ for line in content.split("\n"):
+ if line.startswith(LITERAL_INCLUDE):
+ file = line[len(LITERAL_INCLUDE) + 1:].strip()
+ if file in project_files:
+ line = f"{LITERAL_INCLUDE} {path_to_example}/{file}"
+ result.append(line)
+ return "\n".join(result)
+
+
+def get_headline(text, file_format):
+ """Find the headline in the .rst file."""
+ if file_format == Format.RST:
+ underline = text.find("\n====")
+ if underline != -1:
+ start = text.rfind("\n", 0, underline - 1)
+ return text[start + 1:underline]
+ elif file_format == Format.MD:
+ headline = text.find("# ")
+ if headline != -1:
+ new_line = text.find("\n", headline + 1)
+ if new_line != -1:
+ return text[headline + 2:new_line].strip()
+ return ""
+
+
+def get_doc_source_file(original_doc_dir, example_name):
+ """Find the doc source file, return (Path, Format)."""
+ if original_doc_dir.is_dir():
+ for file_format in (Format.RST, Format.MD):
+ suffix = SUFFIXES[file_format]
+ result = original_doc_dir / f"{example_name}.{suffix}"
+ if result.is_file():
+ return result, file_format
+ return None, Format.RST
+
+
+def get_screenshot(image_dir, example_name):
+ """Find screen shot: We look for an image with the same
+ example_name first, if not, we select the first."""
+ if not image_dir.is_dir():
+ return None
+ images = [i for i in image_dir.glob("*") if i.is_file() and check_img_ext(i)]
+ example_images = [i for i in images if i.name.startswith(example_name)]
+ if example_images:
+ return example_images[0]
+ if images:
+ return images[0]
+ return None
+
+
+def write_resources(src_list, dst):
+ """Write a list of example resource paths to the dst path."""
+ for src in src_list:
+ resource_written = shutil.copy(src, dst / src.name)
+ if not opt_quiet:
+ print("Written resource:", resource_written)
+
+
+@dataclass
+class ExampleParameters:
+ """Parameters obtained from scanning the examples directory."""
+
+ def __init__(self):
+ self.file_format = Format.RST
+ self.src_doc_dir = self.src_doc_file_path = self.src_screenshot = None
+ self.extra_names = ""
+
+ example_dir: Path
+ module_name: str
+ example_name: str
+ extra_names: str
+ file_format: Format
+ target_doc_file: str
+ src_doc_dir: Path
+ src_doc_file_path: Path
+ src_screenshot: Path
+
+
+def detect_pyside_example(example_root, pyproject_file):
+ """Detemine parameters of a PySide example."""
+ p = ExampleParameters()
+
+ p.example_dir = pyproject_file.parent
+ if p.example_dir.name == "doc": # Dummy pyproject in doc dir (scriptableapplication)
+ p.example_dir = p.example_dir.parent
+
+ parts = p.example_dir.parts[len(example_root.parts):]
+ p.module_name = parts[0]
+ p.example_name = parts[-1]
+ # handling subdirectories besides the module level and the example
+ p.extra_names = "" if len(parts) == 2 else "_".join(parts[1:-1])
+
+ # Check for a 'doc' directory inside the example
+ src_doc_dir = p.example_dir / "doc"
+
+ if src_doc_dir.is_dir():
+ src_doc_file_path, fmt = get_doc_source_file(src_doc_dir, p.example_name)
+ if src_doc_file_path:
+ p.src_doc_file_path = src_doc_file_path
+ p.file_format = fmt
+ p.src_doc_dir = src_doc_dir
+ p.src_screenshot = get_screenshot(src_doc_dir, p.example_name)
+
+ target_suffix = SUFFIXES[p.file_format]
+ doc_file = f"example_{p.module_name}_{p.extra_names}_{p.example_name}.{target_suffix}"
+ p.target_doc_file = doc_file.replace("__", "_")
+ return p
+
+
+def detect_qt_example(example_root, pyproject_file):
+ """Detemine parameters of an example from a Qt repository."""
+ p = ExampleParameters()
+
+ p.example_dir = pyproject_file.parent
+ p.module_name = "Qt Demos"
+ p.example_name = p.example_dir.name
+ # Check for a 'doc' directory inside the example (qdoc)
+ doc_root = p.example_dir / "doc"
+ if doc_root.is_dir():
+ src_doc_file_path, fmt = get_doc_source_file(doc_root / "src", p.example_name)
+ if src_doc_file_path:
+ p.src_doc_file_path = src_doc_file_path
+ p.file_format = fmt
+ p.src_doc_dir = doc_root
+ p.src_screenshot = get_screenshot(doc_root / "images", p.example_name)
+
+ target_suffix = SUFFIXES[p.file_format]
+ p.target_doc_file = f"example_qtdemos_{p.example_name}.{target_suffix}"
+ return p
+
+
+def write_example(example_root, pyproject_file, pyside_example=True):
+ """Read the project file and documentation, create the .rst file and
+ copy the data. Return a tuple of module name and a dict of example data."""
+ p = (detect_pyside_example(example_root, pyproject_file) if pyside_example
+ else detect_qt_example(example_root, pyproject_file))
+
+ result = ExampleData()
+ result.example = p.example_name
+ result.module = p.module_name
+ result.extra = p.extra_names
+ result.doc_file = p.target_doc_file
+ result.file_format = p.file_format
+ result.abs_path = str(p.example_dir)
+ result.has_doc = bool(p.src_doc_file_path)
+ result.img_doc = p.src_screenshot
+
+ files = []
+ try:
+ with pyproject_file.open("r", encoding="utf-8") as pyf:
+ pyproject = json.load(pyf)
+ # iterate through the list of files in .pyproject and
+ # check if they exist, before appending to the list.
+ for f in pyproject["files"]:
+ if not Path(f).exists:
+ print(f"example_gallery: {f} listed in {pyproject_file} does not exist")
+ raise FileNotFoundError
+ else:
+ files.append(f)
+ except (json.JSONDecodeError, KeyError, FileNotFoundError) as e:
+ print(f"example_gallery: error reading {pyproject_file}: {e}")
+ raise
+
+ headline = ""
+ if files:
+ doc_file = EXAMPLES_DOC / p.target_doc_file
+ with open(doc_file, "w", encoding="utf-8") as out_f:
+ if p.src_doc_file_path:
+ content_f = read_rst_file(p.example_dir, files, p.src_doc_file_path)
+ headline = get_headline(content_f, p.file_format)
+ if not headline:
+ print(f"example_gallery: No headline found in {doc_file}",
+ file=sys.stderr)
+
+ # Copy other files in the 'doc' directory, but
+ # excluding the main '.rst' file and all the
+ # directories.
+ resources = []
+ if pyside_example:
+ for _f in p.src_doc_dir.glob("*"):
+ if _f != p.src_doc_file_path and not _f.is_dir():
+ resources.append(_f)
+ else: # Qt example: only use image.
+ if p.src_screenshot:
+ resources.append(p.src_screenshot)
+ write_resources(resources, EXAMPLES_DOC)
+ else:
+ content_f = get_header_title(p.example_dir)
+ content_f += get_code_tabs(files, pyproject_file.parent, p.file_format)
+ out_f.write(content_f)
+
+ if not opt_quiet:
+ print(f"Written: {doc_file}")
+ else:
+ if not opt_quiet:
+ print("Empty '.pyproject' file, skipping")
+
+ result.headline = headline
+
+ return (p.module_name, result)
+
+
+def example_sort_key(example: ExampleData):
+ name = example.example
+ return "AAA" + name if "gallery" in name else name
+
+
+def sort_examples(example):
+ result = {}
+ for module in example.keys():
+ result[module] = sorted(example.get(module), key=example_sort_key)
+ return result
+
+
+def scan_examples_dir(examples_dir, pyside_example=True):
+ """Scan a directory of examples."""
+ for pyproject_file in examples_dir.glob("**/*.pyproject"):
+ if pyproject_file.name != "examples.pyproject":
+ module_name, data = write_example(examples_dir, pyproject_file,
+ pyside_example)
+ if module_name not in examples:
+ examples[module_name] = []
+ examples[module_name].append(data)
+
+
if __name__ == "__main__":
# Only examples with a '.pyproject' file will be listed.
DIR = Path(__file__).parent
- EXAMPLES_DOC = Path(f"{DIR}/../../sources/pyside6/doc/examples")
- EXAMPLES_DIR = Path(f"{DIR}/../../examples/")
- BASE_URL = "https://code.qt.io/cgit/pyside/pyside-setup.git/tree/examples"
+ EXAMPLES_DOC = Path(f"{DIR}/../../sources/pyside6/doc/examples").resolve()
+ EXAMPLES_DIR = Path(f"{DIR}/../../examples/").resolve()
+ BASE_URL = "https://code.qt.io/cgit/pyside/pyside-setup.git/tree"
columns = 5
gallery = ""
parser = ArgumentParser(description=__doc__, formatter_class=RawTextHelpFormatter)
+ TARGET_HELP = f"Directory into which to generate Doc files (default: {str(EXAMPLES_DOC)})"
+ parser.add_argument("--target", "-t", action="store", dest="target_dir", help=TARGET_HELP)
+ parser.add_argument("--qt-src-dir", "-s", action="store", help="Qt source directory")
parser.add_argument("--quiet", "-q", action="store_true", help="Quiet")
options = parser.parse_args()
opt_quiet = options.quiet
+ if options.target_dir:
+ EXAMPLES_DOC = Path(options.target_dir).resolve()
# This main loop will be in charge of:
# * Getting all the .pyproject files,
@@ -206,114 +635,22 @@ if __name__ == "__main__":
examples = {}
# Create the 'examples' directory if it doesn't exist
- if not EXAMPLES_DOC.is_dir():
- EXAMPLES_DOC.mkdir()
-
- for f_path in EXAMPLES_DIR.glob("**/*.pyproject"):
- if str(f_path).endswith("examples.pyproject"):
- continue
-
- parts = f_path.parts[len(EXAMPLES_DIR.parts):-1]
-
- module_name = parts[0]
- example_name = parts[-1]
- # handling subdirectories besides the module level and the example
- extra_names = "" if len(parts) == 2 else "_".join(parts[1:-1])
-
- rst_file = f"example_{module_name}_{extra_names}_{example_name}.rst"
-
- def check_img_ext(i):
- EXT = (".png", ".jpg", ".jpeg", ".gif")
- if i.suffix in EXT:
- return True
- return False
-
- # Check for a 'doc' directory inside the example
- has_doc = False
- img_doc = None
- original_doc_dir = Path(f_path.parent / "doc")
- if original_doc_dir.is_dir():
- has_doc = True
- images = [i for i in original_doc_dir.glob("*") if i.is_file() and check_img_ext(i)]
- if len(images) > 0:
- # We look for an image with the same example_name first, if not, we select the first
- image_path = [i for i in images if example_name in str(i)]
- if not image_path:
- image_path = images[0]
- else:
- img_doc = image_path[0]
-
- if module_name not in examples:
- examples[module_name] = []
-
- examples[module_name].append(
- {
- "example": example_name,
- "module": module_name,
- "extra": extra_names,
- "rst": rst_file,
- "abs_path": str(f_path),
- "has_doc": has_doc,
- "img_doc": img_doc,
- }
- )
-
- pyproject = ""
- with open(str(f_path), "r") as pyf:
- pyproject = json.load(pyf)
-
- if pyproject:
- rst_file_full = EXAMPLES_DOC / rst_file
-
- with open(rst_file_full, "w") as out_f:
- if has_doc:
- doc_path = Path(f_path.parent) / "doc"
- doc_rst = doc_path / f"{example_name}.rst"
-
- with open(doc_rst) as doc_f:
- content_f = doc_f.read()
-
- # Copy other files in the 'doc' directory, but
- # excluding the main '.rst' file and all the
- # directories.
- for _f in doc_path.glob("*"):
- if _f == doc_rst or _f.is_dir():
- continue
- src = _f
- dst = EXAMPLES_DOC / _f.name
-
- resource_written = shutil.copy(src, dst)
- if not opt_quiet:
- print("Written resource:", resource_written)
- else:
- content_f = get_header_title(f_path)
- content_f += get_code_tabs(pyproject["files"], out_f)
- out_f.write(content_f)
-
- if not opt_quiet:
- print(f"Written: {EXAMPLES_DOC}/{rst_file}")
- else:
- if not opt_quiet:
- print("Empty '.pyproject' file, skipping")
-
- base_content = dedent(
- """\
- ..
- This file was auto-generated from the 'pyside-setup/tools/example_gallery'
- All editions in this file will be lost.
-
- |project| Examples
- ===================
-
- A collection of examples are provided with |project| to help new users
- to understand different use cases of the module.
-
- You can find all these examples inside the ``pyside-setup`` on the ``examples``
- directory, or you can access them after installing |pymodname| from ``pip``
- inside the ``site-packages/PySide6/examples`` directory.
-
- """
- )
+ # If it does exist, remove it and create a new one to start fresh
+ if EXAMPLES_DOC.is_dir():
+ shutil.rmtree(EXAMPLES_DOC, ignore_errors=True)
+ if not opt_quiet:
+ print("WARNING: Deleted old html directory")
+ EXAMPLES_DOC.mkdir(exist_ok=True)
+
+ scan_examples_dir(EXAMPLES_DIR)
+ if options.qt_src_dir:
+ qt_src = Path(options.qt_src_dir)
+ if not qt_src.is_dir():
+ print("Invalid Qt source directory: {}", file=sys.stderr)
+ sys.exit(-1)
+ scan_examples_dir(qt_src.parent / "qtdoc", pyside_example=False)
+
+ examples = sort_examples(examples)
# We generate a 'toctree' at the end of the file, to include the new
# 'example' rst files, so we get no warnings, and also that users looking
@@ -332,12 +669,14 @@ if __name__ == "__main__":
# Writing the main example rst file.
index_files = []
with open(f"{EXAMPLES_DOC}/index.rst", "w") as f:
- f.write(base_content)
- for module_name, e in sorted(examples.items()):
+ f.write(BASE_CONTENT)
+ for module_name in sorted(examples.keys(), key=module_sort_key):
+ e = examples.get(module_name)
for i in e:
- index_files.append(i["rst"])
- f.write(f"{module_name.title()}\n")
- f.write(f"{'*' * len(module_name.title())}\n")
+ index_files.append(i.doc_file)
+ title = module_title(module_name)
+ f.write(f"{title}\n")
+ f.write(f"{'*' * len(title)}\n")
f.write(get_module_gallery(e))
f.write("\n\n")
f.write(footer_index)
diff --git a/tools/leak_finder.py b/tools/leak_finder.py
index 5b5102887..8a21c2337 100644
--- a/tools/leak_finder.py
+++ b/tools/leak_finder.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
"""
leak_finder.py
@@ -90,11 +65,10 @@ These objects are real leaks if their number is growing with the probe
size. For analysis, the number of new objects per type is counted.
"""
-import sys
-import gc
import array
+import gc
+import sys
import unittest
-
# this comes from Python, too
from test import support
diff --git a/tools/license_check.py b/tools/license_check.py
index 052c41ca5..4b12a05fd 100644
--- a/tools/license_check.py
+++ b/tools/license_check.py
@@ -1,47 +1,10 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python project.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import os
-from pathlib import Path
import subprocess
import sys
-
+from pathlib import Path
"""Tool to run a license check
diff --git a/tools/metaobject_dump.py b/tools/metaobject_dump.py
index db61ccc4b..b6cde13ef 100644
--- a/tools/metaobject_dump.py
+++ b/tools/metaobject_dump.py
@@ -1,49 +1,12 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python project.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import sys
-from dump_metaobject import dump_metaobject
+from dump_metaobject import dump_metaobject
# Import all widget classes to enable instantiating them by type name
from PySide6.QtWidgets import *
-
DESC = """
metaobject_dump.py <class_name>
@@ -62,6 +25,6 @@ if __name__ == '__main__':
type_name = sys.argv[1]
type_instance = eval(type_name)
if not type_instance:
- print('Invalid type {}'.format(type_name))
+ print(f'Invalid type {type_name}')
sys.exit(1)
dump_metaobject(type_instance.staticMetaObject)
diff --git a/tools/missing_bindings-requirements.txt b/tools/missing_bindings-requirements.txt
deleted file mode 100644
index bbe8e7ac2..000000000
--- a/tools/missing_bindings-requirements.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-pyside6
-pyqt5
-beautifulsoup4
-pyqt3d
-pyqtchart
-pyqtdatavisualization
-pyqtwebengine
diff --git a/tools/missing_bindings/config.py b/tools/missing_bindings/config.py
index 3419dfdb1..ddaf20685 100644
--- a/tools/missing_bindings/config.py
+++ b/tools/missing_bindings/config.py
@@ -1,104 +1,74 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
modules_to_test = {
# 6.0
- 'QtCore': 'qtcore-module.html',
- 'QtGui': 'qtgui-module.html',
- 'QtNetwork': 'qtnetwork-module.html',
- 'QtQml': 'qtqml-module.html',
- 'QtQuick': 'qtquick-module.html',
- 'QtQuickWidgets': 'qtquickwidgets-module.html',
- 'QtQuickControls2': 'qtquickcontrols2-module.html',
- #QtQuick3D - no python bindings
- 'QtSql': 'qtsql-module.html',
- 'QtWidgets': 'qtwidgets-module.html',
- 'QtConcurrent': 'qtconcurrent-module.html',
- #QtDBUS - no python bindings
- 'QtHelp': 'qthelp-module.html',
- 'QtOpenGL': 'qtopengl-module.html',
- 'QtPrintSupport': 'qtprintsupport-module.html',
- 'QtSvg': 'qtsvg-module.html',
- 'QtUiTools': 'qtuitools-module.html',
- 'QtXml': 'qtxml-module.html',
- 'QtTest': 'qttest-module.html',
- #'QtXmlPatterns': 'qtxmlpatterns-module.html', # in Qt5 compat
- 'Qt3DCore': 'qt3dcore-module.html',
- 'Qt3DInput': 'qt3dinput-module.html',
- 'Qt3DLogic': 'qt3dlogic-module.html',
- 'Qt3DRender': 'qt3drender-module.html',
- 'Qt3DAnimation': 'qt3danimation-module.html',
- 'Qt3DExtras': 'qt3dextras-module.html',
- #'QtNetworkAuth': 'qtnetworkauth-module.html', # no python bindings
- #'QtCoAp' -- TODO
- #'QtMqtt' -- TODO
- #'QtOpcUA' -- TODO
+ 'QtCore': 'qtcore-module.html',
+ 'QtGui': 'qtgui-module.html',
+ 'QtNetwork': 'qtnetwork-module.html',
+ 'QtQml': 'qtqml-module.html',
+ 'QtQuick': 'qtquick-module.html',
+ 'QtQuickWidgets': 'qtquickwidgets-module.html',
+ # Broken in 6.5.0
+ #'QtQuickControls2': 'qtquickcontrols-module.html',
+ 'QtSql': 'qtsql-module.html',
+ 'QtWidgets': 'qtwidgets-module.html',
+ 'QtConcurrent': 'qtconcurrent-module.html',
+ 'QtDBus': 'qtdbus-module.html',
+ 'QtHelp': 'qthelp-module.html',
+ 'QtOpenGL': 'qtopengl-module.html',
+ 'QtPrintSupport': 'qtprintsupport-module.html',
+ 'QtSvg': 'qtsvg-module.html',
+ 'QtSvgWidgets': 'qtsvgwidgets-module.html',
+ 'QtUiTools': 'qtuitools-module.html',
+ 'QtXml': 'qtxml-module.html',
+ 'QtTest': 'qttest-module.html',
+ 'Qt3DCore': 'qt3dcore-module.html',
+ 'Qt3DInput': 'qt3dinput-module.html',
+ 'Qt3DLogic': 'qt3dlogic-module.html',
+ 'Qt3DRender': 'qt3drender-module.html',
+ 'Qt3DAnimation': 'qt3danimation-module.html',
+ 'Qt3DExtras': 'qt3dextras-module.html',
+ 'QtNetworkAuth': 'qtnetworkauth-module.html',
+ 'QtStateMachine': 'qtstatemachine-module.html',
+ # 'QtCoAp' -- TODO
+ # 'QtMqtt' -- TODO
+ # 'QtOpcUA' -- TODO
# 6.1
- #'QtScxml': 'qtscxml-module.html',
- #'QtCharts': 'qtcharts-module.html',
- #'QtDataVisualization': 'qtdatavisualization-module.html',
+ 'QtScxml': 'qtscxml-module.html',
+ 'QtCharts': 'qtcharts-module.html',
+ 'QtDataVisualization': 'qtdatavisualization-module.html',
# 6.2
'QtBluetooth': 'qtbluetooth-module.html',
- #'QtPositioning': 'qtpositioning-module.html',
- #'QtMultimedia': 'qtmultimedia-module.html',
- #'QtRemoteObjects': 'qtremoteobjects-module.html',
- #'QtSensors': 'qtsensors-module.html',
- #'QtSerialPort': 'qtserialport-module.html',
- #'QtWebChannel': 'qtwebchannel-module.html',
- #'QtWebEngine': 'qtwebengine-module.html',
- #'QtWebEngineCore': 'qtwebenginecore-module.html',
- #'QtWebEngineWidgets': 'qtwebenginewidgets-module.html',
- #'QtWebSockets': 'qtwebsockets-module.html',
+ 'QtPositioning': 'qtpositioning-module.html',
+ 'QtMultimedia': 'qtmultimedia-module.html',
+ 'QtRemoteObjects': 'qtremoteobjects-module.html',
+ 'QtSensors': 'qtsensors-module.html',
+ 'QtSerialPort': 'qtserialport-module.html',
+ 'QtWebChannel': 'qtwebchannel-module.html',
+ 'QtWebEngineCore': 'qtwebenginecore-module.html',
+ 'QtWebEngineQuick': 'qtwebenginequick-module.html',
+ 'QtWebEngineWidgets': 'qtwebenginewidgets-module.html',
+ 'QtWebSockets': 'qtwebsockets-module.html',
+ 'QtHttpServer': 'qthttpserver-module.html',
- # 6.x
+ # 6.3
#'QtSpeech': 'qtspeech-module.html',
- #'QtMultimediaWidgets': 'qtmultimediawidgets-module.html',
- #'QtLocation': 'qtlocation-module.html',
+ 'QtMultimediaWidgets': 'qtmultimediawidgets-module.html',
+ 'QtNfc': 'qtnfc-module.html',
+ 'QtQuick3D': 'qtquick3d-module.html',
+
+ # 6.4
+ 'QtPdf': 'qtpdf-module.html', # this include qtpdfwidgets
+ 'QtSpatialAudio': 'qtspatialaudio-module.html',
+
+ # 6.5
+ 'QtSerialBus': 'qtserialbus-module.html',
+ 'QtTextToSpeech': 'qttexttospeech-module.html',
+ 'QtLocation': 'qtlocation-module.html',
- # Not in 6
- #'QtScriptTools': 'qtscripttools-module.html',
- #'QtMacExtras': 'qtmacextras-module.html',
- #'QtX11Extras': 'qtx11extras-module.html',
- #'QtWinExtras': 'qtwinextras-module.html',
}
types_to_ignore = {
diff --git a/tools/missing_bindings/main.py b/tools/missing_bindings/main.py
index 7390687ff..4c223050d 100644
--- a/tools/missing_bindings/main.py
+++ b/tools/missing_bindings/main.py
@@ -1,41 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
# This script is used to generate a summary of missing types / classes
# which are present in C++ Qt6, but are missing in PySide6.
@@ -48,25 +12,26 @@
# PySide6.
#
# Example invocation of script:
-# python missing_bindings.py --qt-version 6.0 -w all
+# python missing_bindings.py --qt-version 6.3 -w all
# --qt-version - specify which version of qt documentation to load.
# -w - if PyQt6 is an installed package, check if the tested
# class also exists there.
import argparse
-import os.path
import sys
from textwrap import dedent
from time import gmtime, strftime
from urllib import request
+from pathlib import Path
from bs4 import BeautifulSoup
-
from config import modules_to_test, types_to_ignore
+import pandas as pd
+import matplotlib.pyplot as plt
qt_documentation_website_prefixes = {
- "6.0": "http://doc.qt.io/qt-6/",
- "dev": "http://doc-snapshots.qt.io/qt5-dev/",
+ "6.5": "https://doc.qt.io/qt-6/",
+ "dev": "https://doc-snapshots.qt.io/qt6-dev/",
}
@@ -94,8 +59,8 @@ def get_parser():
parser.add_argument(
"--qt-version",
"-v",
- default="6.0",
- choices=["6.0", "dev"],
+ default="6.5",
+ choices=["6.5", "dev"],
type=str,
dest="version",
help="the Qt version to use to check for types",
@@ -104,10 +69,16 @@ def get_parser():
"--which-missing",
"-w",
default="all",
- choices=["all", "in-pyqt", "not-in-pyqt"],
+ choices=["all", "in-pyqt", "not-in-pyqt", "in-pyside-not-in-pyqt"],
type=str,
dest="which_missing",
- help="Which missing types to show (all, or just those " "that are not present in PyQt)",
+ help="Which missing types to show (all, or just those that are not present in PyQt)",
+ )
+ parser.add_argument(
+ "--plot",
+ action="store_true",
+ help="Create module-wise bar plot comparisons for the missing bindings comparisons"
+ " between Qt, PySide6 and PyQt6",
)
return parser
@@ -115,30 +86,28 @@ def get_parser():
def wikilog(*pargs, **kw):
print(*pargs)
- computed_str = ""
- for arg in pargs:
- computed_str += str(arg)
+ computed_str = "".join(str(arg) for arg in pargs)
style = "text"
if "style" in kw:
style = kw["style"]
if style == "heading1":
- computed_str = "= " + computed_str + " ="
+ computed_str = f"= {computed_str} ="
elif style == "heading5":
- computed_str = "===== " + computed_str + " ====="
+ computed_str = f"===== {computed_str} ====="
elif style == "with_newline":
- computed_str += "\n"
+ computed_str = f"{computed_str}\n"
elif style == "bold_colon":
computed_str = computed_str.replace(":", ":'''")
- computed_str += "'''"
- computed_str += "\n"
+ computed_str = f"{computed_str}'''\n"
elif style == "error":
- computed_str = "''" + computed_str.strip("\n") + "''\n"
+ computed_str = computed_str.strip("\n")
+ computed_str = f"''{computed_str}''\n"
elif style == "text_with_link":
computed_str = computed_str
elif style == "code":
- computed_str = " " + computed_str
+ computed_str = f" {computed_str}"
elif style == "end":
return
@@ -157,9 +126,12 @@ if __name__ == "__main__":
pyside_package_name = "PySide6"
pyqt_package_name = "PyQt6"
+ data = {"module": [], "qt": [], "pyside": [], "pyqt": []}
total_missing_types_count = 0
total_missing_types_count_compared_to_pyqt = 0
total_missing_modules_count = 0
+ total_missing_pyqt_types_count = 0
+ total_missing_pyqt_modules_count = 0
wiki_file = open("missing_bindings_for_wiki_qt_io.txt", "w")
wiki_file.truncate()
@@ -185,11 +157,11 @@ if __name__ == "__main__":
)
wikilog(
- "Similar report:\n" "https://gist.github.com/ethanhs/6c626ca4e291f3682589699296377d3a",
+ "Similar report:\n https://gist.github.com/ethanhs/6c626ca4e291f3682589699296377d3a",
style="text_with_link",
)
- python_executable = os.path.basename(sys.executable or "")
+ python_executable = Path(sys.executable).name or ""
command_line_arguments = " ".join(sys.argv)
report_date = strftime("%Y-%m-%d %H:%M:%S %Z", gmtime())
@@ -227,8 +199,6 @@ if __name__ == "__main__":
try:
pyqt_module_name = module_name
- if module_name == "QtCharts":
- pyqt_module_name = module_name[:-1]
pyqt_tested_module = getattr(
__import__(pyqt_package_name, fromlist=[pyqt_module_name]), pyqt_module_name
@@ -240,6 +210,7 @@ if __name__ == "__main__":
f"Received error: {e_str}.\n",
style="error",
)
+ total_missing_pyqt_modules_count += 1
# Get C++ class list from documentation page.
page = request.urlopen(url)
@@ -250,66 +221,89 @@ if __name__ == "__main__":
types_on_html_page = []
for link in links:
- link_text = link.text
- link_text = link_text.replace("::", ".")
+ link_text = link.text.replace("::", ".")
if link_text not in types_to_ignore:
types_on_html_page.append(link_text)
- wikilog(f"Number of types in {module_name}: {len(types_on_html_page)}", style="bold_colon")
+ total_qt_types = len(types_on_html_page)
+ wikilog(f"Number of types in {module_name}: {total_qt_types}", style="bold_colon")
- missing_types_count = 0
+ missing_pyside_types_count = 0
+ missing_pyqt_types_count = 0
missing_types_compared_to_pyqt = 0
missing_types = []
for qt_type in types_on_html_page:
- try:
- pyside_qualified_type = "pyside_tested_module."
+ is_present_in_pyqt = False
+ is_present_in_pyside = False
+ missing_type = None
- if "QtCharts" == module_name:
- pyside_qualified_type += "QtCharts."
- elif "DataVisualization" in module_name:
- pyside_qualified_type += "QtDataVisualization."
+ try:
+ pyqt_qualified_type = f"pyqt_tested_module.{qt_type}"
+ eval(pyqt_qualified_type)
+ is_present_in_pyqt = True
+ except Exception as e:
+ print(f"{type(e).__name__}: {e}")
+ missing_pyqt_types_count += 1
+ total_missing_pyqt_types_count += 1
- pyside_qualified_type += qt_type
+ try:
+ pyside_qualified_type = f"pyside_tested_module.{qt_type}"
eval(pyside_qualified_type)
- except:
+ is_present_in_pyside = True
+ except Exception as e:
+ print("Failed eval-in pyside qualified types")
+ print(f"{type(e).__name__}: {e}")
missing_type = qt_type
- missing_types_count += 1
+ missing_pyside_types_count += 1
total_missing_types_count += 1
- is_present_in_pyqt = False
- try:
- pyqt_qualified_type = "pyqt_tested_module."
-
- if "Charts" in module_name:
- pyqt_qualified_type += "QtCharts."
- elif "DataVisualization" in module_name:
- pyqt_qualified_type += "QtDataVisualization."
-
- pyqt_qualified_type += qt_type
- eval(pyqt_qualified_type)
- missing_type += " (is present in PyQt6)"
+ if is_present_in_pyqt:
+ missing_type = f"{missing_type} (is present in PyQt6)"
missing_types_compared_to_pyqt += 1
total_missing_types_count_compared_to_pyqt += 1
- is_present_in_pyqt = True
- except:
- pass
+ # missing in PySide
+ if not is_present_in_pyside:
if args.which_missing == "all":
missing_types.append(missing_type)
+ message = f"Missing types in PySide (all) {module_name}:"
+ # missing in PySide and present in pyqt
elif args.which_missing == "in-pyqt" and is_present_in_pyqt:
missing_types.append(missing_type)
+ message = f"Missing types in PySide6 (but present in PyQt6) {module_name}:"
+ # missing in both PyQt and PySide
elif args.which_missing == "not-in-pyqt" and not is_present_in_pyqt:
missing_types.append(missing_type)
+ message = f"Missing types in PySide6 (also missing in PyQt6) {module_name}:"
+ elif (
+ args.which_missing == "in-pyside-not-in-pyqt"
+ and not is_present_in_pyqt
+ ):
+ missing_types.append(qt_type)
+ message = f"Missing types in PyQt6 (but present in PySide6) {module_name}:"
if len(missing_types) > 0:
- wikilog(f"Missing types in {module_name}:", style="with_newline")
+ wikilog(message, style="with_newline")
missing_types.sort()
for missing_type in missing_types:
wikilog(missing_type, style="code")
wikilog("")
+ if args.which_missing != "in-pyside-not-in-pyqt":
+ missing_types_count = missing_pyside_types_count
+ else:
+ missing_types_count = missing_pyqt_types_count
+
+ if args.plot:
+ total_pyside_types = total_qt_types - missing_pyside_types_count
+ total_pyqt_types = total_qt_types - missing_pyqt_types_count
+ data["module"].append(module_name)
+ data["qt"].append(total_qt_types)
+ data["pyside"].append(total_pyside_types)
+ data["pyqt"].append(total_pyqt_types)
+
wikilog(f"Number of missing types: {missing_types_count}", style="bold_colon")
- if len(missing_types) > 0:
+ if len(missing_types) > 0 and args.which_missing != "in-pyside-not-in-pyqt":
wikilog(
"Number of missing types that are present in PyQt6: "
f"{missing_types_compared_to_pyqt}",
@@ -319,12 +313,37 @@ if __name__ == "__main__":
else:
wikilog("", style="end")
+ if args.plot:
+ df = pd.DataFrame(data=data, columns=["module", "qt", "pyside", "pyqt"])
+ df.set_index("module", inplace=True)
+ df.plot(kind="bar", title="Qt API Coverage plot")
+ plt.legend()
+ plt.xticks(rotation=45)
+ plt.ylabel("Types Count")
+ figure = plt.gcf()
+ figure.set_size_inches(32, 18) # set to full_screen
+ plt.savefig("missing_bindings_comparison_plot.png", bbox_inches='tight')
+ print(f"Plot saved in {Path.cwd() / 'missing_bindings_comparison_plot.png'}\n")
+
wikilog("Summary", style="heading5")
- wikilog(f"Total number of missing types: {total_missing_types_count}", style="bold_colon")
- wikilog(
- "Total number of missing types that are present in PyQt6: "
- f"{total_missing_types_count_compared_to_pyqt}",
- style="bold_colon",
- )
- wikilog(f"Total number of missing modules: {total_missing_modules_count}", style="bold_colon")
+
+ if args.which_missing != "in-pyside-not-in-pyqt":
+ wikilog(f"Total number of missing types: {total_missing_types_count}", style="bold_colon")
+ wikilog(
+ "Total number of missing types that are present in PyQt6: "
+ f"{total_missing_types_count_compared_to_pyqt}",
+ style="bold_colon",
+ )
+ wikilog(
+ f"Total number of missing modules: {total_missing_modules_count}", style="bold_colon"
+ )
+ else:
+ wikilog(
+ f"Total number of missing types in PyQt6: {total_missing_pyqt_types_count}",
+ style="bold_colon",
+ )
+ wikilog(
+ f"Total number of missing modules in PyQt6: {total_missing_pyqt_modules_count}",
+ style="bold_colon",
+ )
wiki_file.close()
diff --git a/tools/missing_bindings/requirements.txt b/tools/missing_bindings/requirements.txt
index 732522d26..08aa0a024 100644
--- a/tools/missing_bindings/requirements.txt
+++ b/tools/missing_bindings/requirements.txt
@@ -1,4 +1,6 @@
beautifulsoup4
+pandas
+matplotlib
# PySide
PySide6
@@ -6,3 +8,7 @@ PySide6
# PyQt
PyQt6
PyQt6-3D
+PyQt6-Charts
+PyQt6-DataVisualization
+PyQt6-NetworkAuth
+PyQt6-WebEngine
diff --git a/tools/qtcpp2py.py b/tools/qtcpp2py.py
new file mode 100644
index 000000000..e4e381675
--- /dev/null
+++ b/tools/qtcpp2py.py
@@ -0,0 +1,63 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+import logging
+import os
+import sys
+from argparse import ArgumentParser, RawTextHelpFormatter
+from pathlib import Path
+
+sys.path.append(os.fspath(Path(__file__).parent / "snippets_translate"))
+
+from converter import snippet_translate
+
+DESCRIPTION = "Tool to convert C++ to Python based on snippets_translate"
+
+
+def create_arg_parser(desc):
+ parser = ArgumentParser(description=desc,
+ formatter_class=RawTextHelpFormatter)
+ parser.add_argument("--stdout", "-s", action="store_true",
+ help="Write to stdout")
+ parser.add_argument("--force", "-f", action="store_true",
+ help="Force overwrite of existing files")
+ parser.add_argument("files", type=str, nargs="+",
+ help="C++ source file(s)")
+ return parser
+
+
+if __name__ == "__main__":
+ arg_parser = create_arg_parser(DESCRIPTION)
+ args = arg_parser.parse_args()
+ logging.basicConfig(level=logging.INFO)
+ logger = logging.getLogger(__name__)
+
+ for input_file_str in args.files:
+ input_file = Path(input_file_str)
+ if not input_file.is_file():
+ logger.error(f"{input_file_str} does not exist or is not a file.")
+ sys.exit(-1)
+
+ if input_file.suffix != ".cpp" and input_file.suffix != ".h":
+ logger.error(f"{input_file} does not appear to be a C++ file.")
+ sys.exit(-1)
+
+ translated_lines = [f"# Converted from {input_file.name}\n"]
+ for line in input_file.read_text().split("\n"):
+ translated_lines.append(snippet_translate(line))
+ translated = "\n".join(translated_lines)
+
+ if args.stdout:
+ sys.stdout.write(translated)
+ else:
+ target_file = input_file.parent / (input_file.stem + ".py")
+ if target_file.exists():
+ if not target_file.is_file():
+ logger.error(f"{target_file} exists and is not a file.")
+ sys.exit(-1)
+ if not args.force:
+ logger.error(f"{target_file} exists. Use -f to overwrite.")
+ sys.exit(-1)
+
+ target_file.write_text(translated)
+ logger.info(f"Wrote {target_file}.")
diff --git a/tools/qtpy2cpp.py b/tools/qtpy2cpp.py
deleted file mode 100644
index 52bff787d..000000000
--- a/tools/qtpy2cpp.py
+++ /dev/null
@@ -1,99 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python project.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-from argparse import ArgumentParser, RawTextHelpFormatter
-import logging
-import os
-import sys
-from qtpy2cpp_lib.visitor import ConvertVisitor
-
-
-DESCRIPTION = "Tool to convert Python to C++"
-
-
-def create_arg_parser(desc):
- parser = ArgumentParser(description=desc,
- formatter_class=RawTextHelpFormatter)
- parser.add_argument('--debug', '-d', action='store_true',
- help='Debug')
- parser.add_argument('--stdout', '-s', action='store_true',
- help='Write to stdout')
- parser.add_argument('--force', '-f', action='store_true',
- help='Force overwrite of existing files')
- parser.add_argument('file', type=str, help='Python source file')
- return parser
-
-
-if __name__ == '__main__':
- if sys.version_info < (3, 6, 0):
- raise Exception("This script requires Python 3.6")
- logging.basicConfig(level=logging.INFO)
- logger = logging.getLogger(__name__)
- arg_parser = create_arg_parser(DESCRIPTION)
- args = arg_parser.parse_args()
- ConvertVisitor.debug = args.debug
-
- input_file = args.file
- if not os.path.isfile(input_file):
- logger.error(f'{input_file} does not exist or is not a file.')
- sys.exit(-1)
- file_root, ext = os.path.splitext(input_file)
- if ext != '.py':
- logger.error(f'{input_file} does not appear to be a Python file.')
- sys.exit(-1)
-
- ast_tree = ConvertVisitor.create_ast(input_file)
- if args.stdout:
- sys.stdout.write(f'// Converted from {input_file}\n')
- ConvertVisitor(sys.stdout).visit(ast_tree)
- sys.exit(0)
-
- target_file = file_root + '.cpp'
- if os.path.exists(target_file):
- if not os.path.isfile(target_file):
- logger.error(f'{target_file} exists and is not a file.')
- sys.exit(-1)
- if not args.force:
- logger.error(f'{target_file} exists. Use -f to overwrite.')
- sys.exit(-1)
-
- with open(target_file, "w") as file:
- file.write(f'// Converted from {input_file}\n')
- ConvertVisitor(file).visit(ast_tree)
- logger.info(f"Wrote {target_file} ...")
diff --git a/tools/qtpy2cpp.pyproject b/tools/qtpy2cpp.pyproject
deleted file mode 100644
index a9d223a4d..000000000
--- a/tools/qtpy2cpp.pyproject
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "files": ["qtpy2cpp.py",
- "qtpy2cpp_lib/formatter.py", "qtpy2cpp_lib/visitor.py", "qtpy2cpp_lib/nodedump.py",
- "qtpy2cpp_lib/astdump.py", "qtpy2cpp_lib/tokenizer.py",
- "qtpy2cpp_lib/test_baseline/basic_test.py", "qtpy2cpp_lib/test_baseline/uic.py"]
-}
diff --git a/tools/qtpy2cpp_lib/astdump.py b/tools/qtpy2cpp_lib/astdump.py
deleted file mode 100644
index ea37590c2..000000000
--- a/tools/qtpy2cpp_lib/astdump.py
+++ /dev/null
@@ -1,149 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python project.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-"""Tool to dump a Python AST"""
-
-
-from argparse import ArgumentParser, RawTextHelpFormatter
-import ast
-from enum import Enum
-import sys
-import tokenize
-
-
-from nodedump import debug_format_node
-
-DESCRIPTION = "Tool to dump a Python AST"
-
-
-_source_lines = []
-_opt_verbose = False
-
-
-def first_non_space(s):
- for i, c in enumerate(s):
- if c != ' ':
- return i
- return 0
-
-
-class NodeType(Enum):
- IGNORE = 1
- PRINT_ONE_LINE = 2 # Print as a one liner, do not visit children
- PRINT = 3 # Print with opening closing tag, visit children
- PRINT_WITH_SOURCE = 4 # Like PRINT, but print source line above
-
-
-def get_node_type(node):
- if isinstance(node, (ast.Load, ast.Store, ast.Delete)):
- return NodeType.IGNORE
- if isinstance(node, (ast.Add, ast.alias, ast.arg, ast.Eq, ast.Gt, ast.Lt,
- ast.Mult, ast.Name, ast.NotEq, ast.NameConstant, ast.Not,
- ast.Num, ast.Str)):
- return NodeType.PRINT_ONE_LINE
- if not hasattr(node, 'lineno'):
- return NodeType.PRINT
- if isinstance(node, (ast.Attribute)):
- return NodeType.PRINT_ONE_LINE if isinstance(node.value, ast.Name) else NodeType.PRINT
- return NodeType.PRINT_WITH_SOURCE
-
-
-class DumpVisitor(ast.NodeVisitor):
- def __init__(self):
- ast.NodeVisitor.__init__(self)
- self._indent = 0
- self._printed_source_lines = {-1}
-
- def generic_visit(self, node):
- node_type = get_node_type(node)
- if _opt_verbose and node_type in (NodeType.IGNORE, NodeType.PRINT_ONE_LINE):
- node_type = NodeType.PRINT
- if node_type == NodeType.IGNORE:
- return
- self._indent = self._indent + 1
- indent = ' ' * self._indent
-
- if node_type == NodeType.PRINT_WITH_SOURCE:
- line_number = node.lineno - 1
- if line_number not in self._printed_source_lines:
- self._printed_source_lines.add(line_number)
- line = _source_lines[line_number]
- non_space = first_non_space(line)
- print('{:04d} {}{}'.format(line_number, '_' * non_space,
- line[non_space:]))
-
- if node_type == NodeType.PRINT_ONE_LINE:
- print(indent, debug_format_node(node))
- else:
- print(indent, '>', debug_format_node(node))
- ast.NodeVisitor.generic_visit(self, node)
- print(indent, '<', type(node).__name__)
-
- self._indent = self._indent - 1
-
-
-def parse_ast(filename):
- node = None
- with tokenize.open(filename) as f:
- global _source_lines
- source = f.read()
- _source_lines = source.split('\n')
- node = ast.parse(source, mode="exec")
- return node
-
-
-def create_arg_parser(desc):
- parser = ArgumentParser(description=desc,
- formatter_class=RawTextHelpFormatter)
- parser.add_argument('--verbose', '-v', action='store_true',
- help='Verbose')
- parser.add_argument('source', type=str, help='Python source')
- return parser
-
-
-if __name__ == '__main__':
- arg_parser = create_arg_parser(DESCRIPTION)
- options = arg_parser.parse_args()
- _opt_verbose = options.verbose
- title = f'AST tree for {options.source}'
- print('=' * len(title))
- print(title)
- print('=' * len(title))
- tree = parse_ast(options.source)
- DumpVisitor().visit(tree)
diff --git a/tools/qtpy2cpp_lib/formatter.py b/tools/qtpy2cpp_lib/formatter.py
deleted file mode 100644
index a1e8c69db..000000000
--- a/tools/qtpy2cpp_lib/formatter.py
+++ /dev/null
@@ -1,264 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python project.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-"""C++ formatting helper functions and formatter class"""
-
-
-import ast
-import sys
-
-
-CLOSING = {"{": "}", "(": ")", "[": "]"} # Closing parenthesis for C++
-
-
-def to_string(node):
- """Helper to retrieve a string from the (Lists of)Name/Attribute
- aggregated into some nodes"""
- if isinstance(node, ast.Name):
- return node.id
- if isinstance(node, ast.Attribute):
- return node.attr
- return ''
-
-
-def format_inheritance(class_def_node):
- """Returns inheritance specification of a class"""
- result = ''
- for base in class_def_node.bases:
- name = to_string(base)
- if name != 'object':
- result += ', public ' if result else ' : public '
- result += name
- return result
-
-
-def format_for_target(target_node):
- if isinstance(target_node, ast.Tuple): # for i,e in enumerate()
- result = ''
- for i, el in enumerate(target_node):
- if i > 0:
- result += ', '
- result += format_reference(el)
- return result
- return format_reference(target_node)
-
-
-def format_for_loop(f_node):
- """Format a for loop
- This applies some heuristics to detect:
- 1) "for a in [1,2])" -> "for (f: {1, 2}) {"
- 2) "for i in range(5)" -> "for (i = 0; i < 5; ++i) {"
- 3) "for i in range(2,5)" -> "for (i = 2; i < 5; ++i) {"
-
- TODO: Detect other cases, maybe including enumerate().
- """
- loop_vars = format_for_target(f_node.target)
- result = 'for (' + loop_vars
- if isinstance(f_node.iter, ast.Call):
- f = format_reference(f_node.iter.func)
- if f == 'range':
- start = 0
- end = -1
- if len(f_node.iter.args) == 2:
- start = format_literal(f_node.iter.args[0])
- end = format_literal(f_node.iter.args[1])
- elif len(f_node.iter.args) == 1:
- end = format_literal(f_node.iter.args[0])
- result += f' = {start}; {loop_vars} < {end}; ++{loop_vars}'
- elif isinstance(f_node.iter, ast.List):
- # Range based for over list
- result += ': ' + format_literal_list(f_node.iter)
- result += ') {'
- return result
-
-
-def format_literal(node):
- """Returns the value of number/string literals"""
- if isinstance(node, ast.Num):
- return str(node.n)
- if isinstance(node, ast.Str):
- # Fixme: escaping
- return f'"{node.s}"'
- return ''
-
-
-def format_literal_list(l_node, enclosing='{'):
- """Formats a list/tuple of number/string literals as C++ initializer list"""
- result = enclosing
- for i, el in enumerate(l_node.elts):
- if i > 0:
- result += ', '
- result += format_literal(el)
- result += CLOSING[enclosing]
- return result
-
-
-def format_member(attrib_node, qualifier='auto'):
- """Member access foo->member() is expressed as an attribute with
- further nested Attributes/Names as value"""
- n = attrib_node
- result = ''
- # Black magic: Guess '::' if name appears to be a class name
- if qualifier == 'auto':
- qualifier = '::' if n.attr[0:1].isupper() else '->'
- while isinstance(n, ast.Attribute):
- result = n.attr if not result else n.attr + qualifier + result
- n = n.value
- if isinstance(n, ast.Name) and n.id != 'self':
- result = n.id + qualifier + result
- return result
-
-
-def format_reference(node, qualifier='auto'):
- """Format member reference or free item"""
- return node.id if isinstance(node, ast.Name) else format_member(node, qualifier)
-
-
-def format_function_def_arguments(function_def_node):
- """Formats arguments of a function definition"""
- # Default values is a list of the last default values, expand
- # so that indexes match
- argument_count = len(function_def_node.args.args)
- default_values = function_def_node.args.defaults
- while len(default_values) < argument_count:
- default_values.insert(0, None)
- result = ''
- for i, a in enumerate(function_def_node.args.args):
- if result:
- result += ', '
- if a.arg != 'self':
- result += a.arg
- if default_values[i]:
- result += ' = '
- result += format_literal(default_values[i])
- return result
-
-
-def format_start_function_call(call_node):
- """Format a call of a free or member function"""
- return format_reference(call_node.func) + '('
-
-
-def write_import(file, i_node):
- """Print an import of a Qt class as #include"""
- for alias in i_node.names:
- if alias.name.startswith('Q'):
- file.write(f'#include <{alias.name}>\n')
-
-
-def write_import_from(file, i_node):
- """Print an import from Qt classes as #include sequence"""
- # "from PySide6.QtGui import QGuiApplication" or
- # "from PySide6 import QtGui"
- mod = i_node.module
- if not mod.startswith('PySide') and not mod.startswith('PyQt'):
- return
- dot = mod.find('.')
- qt_module = mod[dot + 1:] + '/' if dot >= 0 else ''
- for i in i_node.names:
- if i.name.startswith('Q'):
- file.write(f'#include <{qt_module}{i.name}>\n')
-
-
-class Indenter:
- """Helper for Indentation"""
-
- def __init__(self, output_file):
- self._indent_level = 0
- self._indentation = ''
- self._output_file = output_file
-
- def indent_string(self, string):
- """Start a new line by a string"""
- self._output_file.write(self._indentation)
- self._output_file.write(string)
-
- def indent_line(self, line):
- """Write an indented line"""
- self._output_file.write(self._indentation)
- self._output_file.write(line)
- self._output_file.write('\n')
-
- def INDENT(self):
- """Write indentation"""
- self._output_file.write(self._indentation)
-
- def indent(self):
- """Increase indentation level"""
- self._indent_level = self._indent_level + 1
- self._indentation = ' ' * self._indent_level
-
- def dedent(self):
- """Decrease indentation level"""
- self._indent_level = self._indent_level - 1
- self._indentation = ' ' * self._indent_level
-
-
-class CppFormatter(Indenter):
- """Provides helpers for formatting multi-line C++ constructs"""
-
- def __init__(self, output_file):
- Indenter.__init__(self, output_file)
-
- def write_class_def(self, class_node):
- """Print a class definition with inheritance"""
- self._output_file.write('\n')
- inherits = format_inheritance(class_node)
- self.indent_line(f'class {class_node.name}{inherits}')
- self.indent_line('{')
- self.indent_line('public:')
-
- def write_function_def(self, f_node, class_context):
- """Print a function definition with arguments"""
- self._output_file.write('\n')
- arguments = format_function_def_arguments(f_node)
- warn = True
- if f_node.name == '__init__' and class_context: # Constructor
- name = class_context
- warn = len(arguments) > 0
- elif f_node.name == '__del__' and class_context: # Destructor
- name = '~' + class_context
- warn = False
- else:
- name = 'void ' + f_node.name
- self.indent_string(f'{name}({arguments})')
- if warn:
- self._output_file.write(' /* FIXME: types */')
- self._output_file.write('\n')
- self.indent_line('{')
diff --git a/tools/qtpy2cpp_lib/nodedump.py b/tools/qtpy2cpp_lib/nodedump.py
deleted file mode 100644
index 5cb7c3f2d..000000000
--- a/tools/qtpy2cpp_lib/nodedump.py
+++ /dev/null
@@ -1,86 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python project.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-"""Helper to dump AST nodes for debugging"""
-
-
-import ast
-
-
-def to_string(node):
- """Helper to retrieve a string from the (Lists of )Name/Attribute
- aggregated into some nodes"""
- if isinstance(node, ast.Name):
- return node.id
- if isinstance(node, ast.Attribute):
- return node.attr
- return ''
-
-
-def debug_format_node(node):
- """Format AST node for debugging"""
- if isinstance(node, ast.alias):
- return f'alias("{node.name}")'
- if isinstance(node, ast.arg):
- return f'arg({node.arg})'
- if isinstance(node, ast.Attribute):
- if isinstance(node.value, ast.Name):
- nested_name = debug_format_node(node.value)
- return f'Attribute("{node.attr}", {nested_name})'
- return f'Attribute("{node.attr}")'
- if isinstance(node, ast.Call):
- return 'Call({}({}))'.format(to_string(node.func), len(node.args))
- if isinstance(node, ast.ClassDef):
- base_names = [to_string(base) for base in node.bases]
- bases = ': ' + ','.join(base_names) if base_names else ''
- return f'ClassDef({node.name}{bases})'
- if isinstance(node, ast.ImportFrom):
- return f'ImportFrom("{node.module}")'
- if isinstance(node, ast.FunctionDef):
- arg_names = [a.arg for a in node.args.args]
- return 'FunctionDef({}({}))'.format(node.name, ', '.join(arg_names))
- if isinstance(node, ast.Name):
- return 'Name("{}", Ctx={})'.format(node.id, type(node.ctx).__name__)
- if isinstance(node, ast.NameConstant):
- return f'NameConstant({node.value})'
- if isinstance(node, ast.Num):
- return f'Num({node.n})'
- if isinstance(node, ast.Str):
- return f'Str("{node.s}")'
- return type(node).__name__
diff --git a/tools/qtpy2cpp_lib/test_baseline/basic_test.py b/tools/qtpy2cpp_lib/test_baseline/basic_test.py
deleted file mode 100644
index e5dc92f9f..000000000
--- a/tools/qtpy2cpp_lib/test_baseline/basic_test.py
+++ /dev/null
@@ -1,38 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-a = 7
-
-if a > 5:
- for f in [1, 2]:
- print(f)
-else:
- for i in range(5):
- print(i)
- for i in range(2, 5):
- print(i)
diff --git a/tools/qtpy2cpp_lib/test_baseline/uic.py b/tools/qtpy2cpp_lib/test_baseline/uic.py
deleted file mode 100644
index 73e3ca540..000000000
--- a/tools/qtpy2cpp_lib/test_baseline/uic.py
+++ /dev/null
@@ -1,208 +0,0 @@
-# -*- coding: utf-8 -*-
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-from PySide6.QtCore import (QCoreApplication, QMetaObject, QObject, QPoint,
- QRect, QSize, QUrl, Qt)
-from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QFont,
- QFontDatabase, QIcon, QLinearGradient, QPalette, QPainter, QPixmap,
- QRadialGradient)
-from PySide6.QtWidgets import *
-
-class Ui_ImageDialog(object):
- def setupUi(self, dialog):
- if dialog.objectName():
- dialog.setObjectName(u"dialog")
- dialog.setObjectName(u"ImageDialog")
- dialog.resize(320, 180)
- self.vboxLayout = QVBoxLayout(dialog)
-#ifndef Q_OS_MAC
- self.vboxLayout.setSpacing(6)
-#endif
-#ifndef Q_OS_MAC
- self.vboxLayout.setContentsMargins(9, 9, 9, 9)
-#endif
- self.vboxLayout.setObjectName(u"vboxLayout")
- self.vboxLayout.setObjectName(u"")
- self.gridLayout = QGridLayout()
-#ifndef Q_OS_MAC
- self.gridLayout.setSpacing(6)
-#endif
- self.gridLayout.setContentsMargins(1, 1, 1, 1)
- self.gridLayout.setObjectName(u"gridLayout")
- self.gridLayout.setObjectName(u"")
- self.widthLabel = QLabel(dialog)
- self.widthLabel.setObjectName(u"widthLabel")
- self.widthLabel.setObjectName(u"widthLabel")
- self.widthLabel.setGeometry(QRect(1, 27, 67, 22))
- self.widthLabel.setFrameShape(QFrame.NoFrame)
- self.widthLabel.setFrameShadow(QFrame.Plain)
- self.widthLabel.setTextFormat(Qt.AutoText)
-
- self.gridLayout.addWidget(self.widthLabel, 1, 0, 1, 1)
-
- self.heightLabel = QLabel(dialog)
- self.heightLabel.setObjectName(u"heightLabel")
- self.heightLabel.setObjectName(u"heightLabel")
- self.heightLabel.setGeometry(QRect(1, 55, 67, 22))
- self.heightLabel.setFrameShape(QFrame.NoFrame)
- self.heightLabel.setFrameShadow(QFrame.Plain)
- self.heightLabel.setTextFormat(Qt.AutoText)
-
- self.gridLayout.addWidget(self.heightLabel, 2, 0, 1, 1)
-
- self.colorDepthCombo = QComboBox(dialog)
- self.colorDepthCombo.setObjectName(u"colorDepthCombo")
- self.colorDepthCombo.setObjectName(u"colorDepthCombo")
- self.colorDepthCombo.setGeometry(QRect(74, 83, 227, 22))
- sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed)
- sizePolicy.setHorizontalStretch(0)
- sizePolicy.setVerticalStretch(0)
- sizePolicy.setHeightForWidth(self.colorDepthCombo.sizePolicy().hasHeightForWidth())
- self.colorDepthCombo.setSizePolicy(sizePolicy)
- self.colorDepthCombo.setInsertPolicy(QComboBox.InsertAtBottom)
-
- self.gridLayout.addWidget(self.colorDepthCombo, 3, 1, 1, 1)
-
- self.nameLineEdit = QLineEdit(dialog)
- self.nameLineEdit.setObjectName(u"nameLineEdit")
- self.nameLineEdit.setObjectName(u"nameLineEdit")
- self.nameLineEdit.setGeometry(QRect(74, 83, 227, 22))
- sizePolicy1 = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed)
- sizePolicy1.setHorizontalStretch(1)
- sizePolicy1.setVerticalStretch(0)
- sizePolicy1.setHeightForWidth(self.nameLineEdit.sizePolicy().hasHeightForWidth())
- self.nameLineEdit.setSizePolicy(sizePolicy1)
- self.nameLineEdit.setEchoMode(QLineEdit.Normal)
-
- self.gridLayout.addWidget(self.nameLineEdit, 0, 1, 1, 1)
-
- self.spinBox = QSpinBox(dialog)
- self.spinBox.setObjectName(u"spinBox")
- self.spinBox.setObjectName(u"spinBox")
- self.spinBox.setGeometry(QRect(74, 1, 227, 20))
- sizePolicy.setHeightForWidth(self.spinBox.sizePolicy().hasHeightForWidth())
- self.spinBox.setSizePolicy(sizePolicy)
- self.spinBox.setButtonSymbols(QAbstractSpinBox.UpDownArrows)
- self.spinBox.setValue(32)
- self.spinBox.setMaximum(1024)
- self.spinBox.setMinimum(1)
-
- self.gridLayout.addWidget(self.spinBox, 1, 1, 1, 1)
-
- self.spinBox_2 = QSpinBox(dialog)
- self.spinBox_2.setObjectName(u"spinBox_2")
- self.spinBox_2.setObjectName(u"spinBox_2")
- self.spinBox_2.setGeometry(QRect(74, 27, 227, 22))
- sizePolicy.setHeightForWidth(self.spinBox_2.sizePolicy().hasHeightForWidth())
- self.spinBox_2.setSizePolicy(sizePolicy)
- self.spinBox_2.setButtonSymbols(QAbstractSpinBox.UpDownArrows)
- self.spinBox_2.setValue(32)
- self.spinBox_2.setMaximum(1024)
- self.spinBox_2.setMinimum(1)
-
- self.gridLayout.addWidget(self.spinBox_2, 2, 1, 1, 1)
-
- self.nameLabel = QLabel(dialog)
- self.nameLabel.setObjectName(u"nameLabel")
- self.nameLabel.setObjectName(u"nameLabel")
- self.nameLabel.setGeometry(QRect(1, 1, 67, 20))
- self.nameLabel.setFrameShape(QFrame.NoFrame)
- self.nameLabel.setFrameShadow(QFrame.Plain)
- self.nameLabel.setTextFormat(Qt.AutoText)
-
- self.gridLayout.addWidget(self.nameLabel, 0, 0, 1, 1)
-
- self.colorDepthLabel = QLabel(dialog)
- self.colorDepthLabel.setObjectName(u"colorDepthLabel")
- self.colorDepthLabel.setObjectName(u"colorDepthLabel")
- self.colorDepthLabel.setGeometry(QRect(1, 83, 67, 22))
- self.colorDepthLabel.setFrameShape(QFrame.NoFrame)
- self.colorDepthLabel.setFrameShadow(QFrame.Plain)
- self.colorDepthLabel.setTextFormat(Qt.AutoText)
-
- self.gridLayout.addWidget(self.colorDepthLabel, 3, 0, 1, 1)
-
-
- self.vboxLayout.addLayout(self.gridLayout)
-
- self.spacerItem = QSpacerItem(0, 0, QSizePolicy.Minimum, QSizePolicy.Expanding)
-
- self.vboxLayout.addItem(self.spacerItem)
-
- self.hboxLayout = QHBoxLayout()
-#ifndef Q_OS_MAC
- self.hboxLayout.setSpacing(6)
-#endif
- self.hboxLayout.setContentsMargins(1, 1, 1, 1)
- self.hboxLayout.setObjectName(u"hboxLayout")
- self.hboxLayout.setObjectName(u"")
- self.spacerItem1 = QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum)
-
- self.hboxLayout.addItem(self.spacerItem1)
-
- self.okButton = QPushButton(dialog)
- self.okButton.setObjectName(u"okButton")
- self.okButton.setObjectName(u"okButton")
- self.okButton.setGeometry(QRect(135, 1, 80, 24))
-
- self.hboxLayout.addWidget(self.okButton)
-
- self.cancelButton = QPushButton(dialog)
- self.cancelButton.setObjectName(u"cancelButton")
- self.cancelButton.setObjectName(u"cancelButton")
- self.cancelButton.setGeometry(QRect(221, 1, 80, 24))
-
- self.hboxLayout.addWidget(self.cancelButton)
-
-
- self.vboxLayout.addLayout(self.hboxLayout)
-
- QWidget.setTabOrder(self.nameLineEdit, self.spinBox)
- QWidget.setTabOrder(self.spinBox, self.spinBox_2)
- QWidget.setTabOrder(self.spinBox_2, self.colorDepthCombo)
- QWidget.setTabOrder(self.colorDepthCombo, self.okButton)
- QWidget.setTabOrder(self.okButton, self.cancelButton)
-
- self.retranslateUi(dialog)
- self.nameLineEdit.returnPressed.connect(self.okButton.animateClick)
-
- QMetaObject.connectSlotsByName(dialog)
- # setupUi
-
- def retranslateUi(self, dialog):
- dialog.setWindowTitle(QCoreApplication.translate("ImageDialog", u"Create Image", None))
- self.widthLabel.setText(QCoreApplication.translate("ImageDialog", u"Width:", None))
- self.heightLabel.setText(QCoreApplication.translate("ImageDialog", u"Height:", None))
- self.nameLineEdit.setText(QCoreApplication.translate("ImageDialog", u"Untitled image", None))
- self.nameLabel.setText(QCoreApplication.translate("ImageDialog", u"Name:", None))
- self.colorDepthLabel.setText(QCoreApplication.translate("ImageDialog", u"Color depth:", None))
- self.okButton.setText(QCoreApplication.translate("ImageDialog", u"OK", None))
- self.cancelButton.setText(QCoreApplication.translate("ImageDialog", u"Cancel", None))
- # retranslateUi
-
diff --git a/tools/qtpy2cpp_lib/tokenizer.py b/tools/qtpy2cpp_lib/tokenizer.py
deleted file mode 100644
index dee63c177..000000000
--- a/tools/qtpy2cpp_lib/tokenizer.py
+++ /dev/null
@@ -1,91 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python project.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-"""Tool to dump Python Tokens"""
-
-
-import sys
-import tokenize
-
-
-def format_token(t):
- r = repr(t)
- if r.startswith('TokenInfo('):
- r = r[10:]
- pos = r.find("), line='")
- if pos < 0:
- pos = r.find('), line="')
- if pos > 0:
- r = r[:pos + 1]
- return r
-
-
-def first_non_space(s):
- for i, c in enumerate(s):
- if c != ' ':
- return i
- return 0
-
-
-if __name__ == '__main__':
- if len(sys.argv) < 2:
- print("Specify file Name")
- sys.exit(1)
- filename = sys.argv[1]
- indent_level = 0
- indent = ''
- last_line_number = -1
- with tokenize.open(filename) as f:
- generator = tokenize.generate_tokens(f.readline)
- for t in generator:
- line_number = t.start[0]
- if line_number != last_line_number:
- code_line = t.line.rstrip()
- non_space = first_non_space(code_line)
- print('{:04d} {}{}'.format(line_number, '_' * non_space,
- code_line[non_space:]))
- last_line_number = line_number
- if t.type == tokenize.INDENT:
- indent_level = indent_level + 1
- indent = ' ' * indent_level
- elif t.type == tokenize.DEDENT:
- indent_level = indent_level - 1
- indent = ' ' * indent_level
- else:
- print(' ', indent, format_token(t))
diff --git a/tools/qtpy2cpp_lib/visitor.py b/tools/qtpy2cpp_lib/visitor.py
deleted file mode 100644
index d17d5f53c..000000000
--- a/tools/qtpy2cpp_lib/visitor.py
+++ /dev/null
@@ -1,260 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python project.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-"""AST visitor printing out C++"""
-
-import ast
-import sys
-import tokenize
-import warnings
-
-from .formatter import (CppFormatter, format_for_loop,
- format_function_def_arguments, format_inheritance,
- format_literal, format_reference,
- format_start_function_call,
- write_import, write_import_from)
-
-from .nodedump import debug_format_node
-
-
-class ConvertVisitor(ast.NodeVisitor, CppFormatter):
- """AST visitor printing out C++
- Note on implementation:
- - Any visit_XXX() overridden function should call self.generic_visit(node)
- to continue visiting
- - When controlling the visiting manually (cf visit_Call()),
- self.visit(child) needs to be called since that dispatches to
- visit_XXX(). This is usually done to prevent undesired output
- for example from references of calls, etc.
- """
-
- debug = False
-
- def __init__(self, output_file):
- ast.NodeVisitor.__init__(self)
- CppFormatter.__init__(self, output_file)
- self._class_scope = [] # List of class names
- self._stack = [] # nodes
- self._debug_indent = 0
-
- @staticmethod
- def create_ast(filename):
- """Create an Abstract Syntax Tree on which a visitor can be run"""
- node = None
- with tokenize.open(filename) as file:
- node = ast.parse(file.read(), mode="exec")
- return node
-
- def generic_visit(self, node):
- parent = self._stack[-1] if self._stack else None
- if self.debug:
- self._debug_enter(node, parent)
- self._stack.append(node)
- try:
- super().generic_visit(node)
- except Exception as e:
- line_no = node.lineno if hasattr(node, 'lineno') else -1
- message = 'Error "{}" at line {}'.format(str(e), line_no)
- warnings.warn(message)
- self._output_file.write(f'\n// {message}\n')
- del self._stack[-1]
- if self.debug:
- self._debug_leave(node)
-
- def visit_Add(self, node):
- self.generic_visit(node)
- self._output_file.write(' + ')
-
- def visit_Assign(self, node):
- self._output_file.write('\n')
- self.INDENT()
- for target in node.targets:
- if isinstance(target, ast.Tuple):
- warnings.warn('List assignment not handled (line {}).'.
- format(node.lineno))
- elif isinstance(target, ast.Subscript):
- warnings.warn('Subscript assignment not handled (line {}).'.
- format(node.lineno))
- else:
- self._output_file.write(format_reference(target))
- self._output_file.write(' = ')
- self.visit(node.value)
- self._output_file.write(';\n')
-
- def visit_Attribute(self, node):
- """Format a variable reference (cf visit_Name)"""
- self._output_file.write(format_reference(node))
-
- def visit_BinOp(self, node):
- # Parentheses are not exposed, so, every binary operation needs to
- # be enclosed by ().
- self._output_file.write('(')
- self.generic_visit(node)
- self._output_file.write(')')
-
- def visit_Call(self, node):
- self._output_file.write(format_start_function_call(node))
- # Manually do visit(), skip the children of func
- for i, arg in enumerate(node.args):
- if i > 0:
- self._output_file.write(', ')
- self.visit(arg)
- self._output_file.write(')')
-
- def visit_ClassDef(self, node):
- # Manually do visit() to skip over base classes
- # and annotations
- self._class_scope.append(node.name)
- self.write_class_def(node)
- self.indent()
- for b in node.body:
- self.visit(b)
- self.dedent()
- self.indent_line('};')
- del self._class_scope[-1]
-
- def visit_Expr(self, node):
- self._output_file.write('\n')
- self.INDENT()
- self.generic_visit(node)
- self._output_file.write(';\n')
-
- def visit_Gt(self, node):
- self.generic_visit(node)
- self._output_file.write('>')
-
- def visit_For(self, node):
- # Manually do visit() to get the indentation right.
- # TODO: what about orelse?
- self.indent_line(format_for_loop(node))
- self.indent()
- for b in node.body:
- self.visit(b)
- self.dedent()
- self.indent_line('}')
-
- def visit_FunctionDef(self, node):
- class_context = self._class_scope[-1] if self._class_scope else None
- self.write_function_def(node, class_context)
- self.indent()
- self.generic_visit(node)
- self.dedent()
- self.indent_line('}')
-
- def visit_If(self, node):
- # Manually do visit() to get the indentation right. Note:
- # elsif() is modelled as nested if.
- self.indent_string('if (')
- self.visit(node.test)
- self._output_file.write(') {\n')
- self.indent()
- for b in node.body:
- self.visit(b)
- self.dedent()
- self.indent_string('}')
- if node.orelse:
- self._output_file.write(' else {\n')
- self.indent()
- for b in node.orelse:
- self.visit(b)
- self.dedent()
- self.indent_string('}')
- self._output_file.write('\n')
-
- def visit_Import(self, node):
- write_import(self._output_file, node)
-
- def visit_ImportFrom(self, node):
- write_import_from(self._output_file, node)
-
- def visit_List(self, node):
- # Manually do visit() to get separators right
- self._output_file.write('{')
- for i, el in enumerate(node.elts):
- if i > 0:
- self._output_file.write(', ')
- self.visit(el)
- self._output_file.write('}')
-
- def visit_Lt(self, node):
- self.generic_visit(node)
- self._output_file.write('<')
-
- def visit_Mult(self, node):
- self.generic_visit(node)
- self._output_file.write(' * ')
-
- def visit_Name(self, node):
- """Format a variable reference (cf visit_Attribute)"""
- self._output_file.write(format_reference(node))
-
- def visit_NameConstant(self, node):
- self.generic_visit(node)
- if node.value is None:
- self._output_file.write('nullptr')
- elif not node.value:
- self._output_file.write('false')
- else:
- self._output_file.write('true')
-
- def visit_Num(self, node):
- self.generic_visit(node)
- self._output_file.write(format_literal(node))
-
- def visit_Str(self, node):
- self.generic_visit(node)
- self._output_file.write(format_literal(node))
-
- def visit_UnOp(self, node):
- self.generic_visit(node)
-
- def _debug_enter(self, node, parent=None):
- message = '{}>generic_visit({})'.format(' ' * self ._debug_indent,
- debug_format_node(node))
- if parent:
- message += ', parent={}'.format(debug_format_node(parent))
- message += '\n'
- sys.stderr.write(message)
- self._debug_indent += 1
-
- def _debug_leave(self, node):
- self._debug_indent -= 1
- message = '{}<generic_visit({})\n'.format(' ' * self ._debug_indent,
- type(node).__name__)
- sys.stderr.write(message)
diff --git a/tools/regenerate_example_resources.py b/tools/regenerate_example_resources.py
new file mode 100644
index 000000000..098c58b1f
--- /dev/null
+++ b/tools/regenerate_example_resources.py
@@ -0,0 +1,60 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+"""
+regenerate_example_resources.py
+===============================
+
+Regenerates the QRC resource files of the PySide examples.
+"""
+
+
+import subprocess
+import sys
+from pathlib import Path
+
+RCC_COMMAND = "pyside6-rcc"
+LRELEASE_COMMAND = "lrelease"
+
+
+def prepare_linguist_example(path):
+ """Create the .qm files for the Linguist example which are bundled in the QRC file"""
+ translations_dir = path / "translations"
+ if not translations_dir.is_dir():
+ translations_dir.mkdir(parents=True)
+
+ for ts_file in path.glob("*.ts"):
+ qm_file = translations_dir / f"{ts_file.stem}.qm"
+ print("Regenerating ", ts_file, qm_file)
+ ex = subprocess.call([LRELEASE_COMMAND, ts_file, "-qm", qm_file])
+ if ex != 0:
+ print(f"{LRELEASE_COMMAND} failed for {ts_file}", file=sys.stderr)
+ sys.exit(ex)
+
+
+def generate_rc_file(qrc_file):
+ """Regenerate the QRC resource file."""
+ dir = qrc_file.parent
+ if dir.name == "linguist":
+ prepare_linguist_example(dir)
+
+ target_file = dir / f"{qrc_file.stem}_rc.py"
+ if not target_file.is_file(): # prefix naming convention
+ target_file2 = qrc_file.parent / f"rc_{qrc_file.stem}.py"
+ if target_file2.is_file():
+ target_file = target_file2
+ if not target_file.is_file():
+ print(target_file, " does not exist.", file=sys.stderr)
+ return
+
+ print("Regenerating ", qrc_file, target_file)
+ ex = subprocess.call([RCC_COMMAND, qrc_file, "-o", target_file])
+ if ex != 0:
+ print(f"{RCC_COMMAND} failed for {qrc_file}", file=sys.stderr)
+ sys.exit(ex)
+
+
+if __name__ == '__main__':
+ examples_path = Path(__file__).resolve().parent.parent / "examples"
+ for qrc_file in examples_path.glob("**/*.qrc"):
+ generate_rc_file(qrc_file)
diff --git a/tools/regenerate_example_ui.py b/tools/regenerate_example_ui.py
new file mode 100644
index 000000000..2e0881c07
--- /dev/null
+++ b/tools/regenerate_example_ui.py
@@ -0,0 +1,36 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+"""
+regenerate_example_ui.py
+========================
+
+Regenerates the ui files of the PySide examples.
+"""
+
+
+import subprocess
+import sys
+from pathlib import Path
+
+UIC_COMMAND = "pyside6-uic"
+
+
+def generate_ui_file(ui_file):
+ """Regenerate the ui file."""
+ target_file = ui_file.parent / f"ui_{ui_file.stem}.py"
+ if not target_file.is_file():
+ print(target_file, " does not exist.", file=sys.stderr)
+ return
+
+ print("Regenerating ", ui_file, target_file)
+ ex = subprocess.call([UIC_COMMAND, ui_file, "-o", target_file])
+ if ex != 0:
+ print(f"{UIC_COMMAND} failed for {ui_file}", file=sys.stderr)
+ sys.exit(ex)
+
+
+if __name__ == '__main__':
+ examples_path = Path(__file__).resolve().parent.parent / "examples"
+ for ui_file in examples_path.glob("**/*.ui"):
+ generate_ui_file(ui_file)
diff --git a/tools/scanqtclasses.py b/tools/scanqtclasses.py
new file mode 100644
index 000000000..0f87d80bd
--- /dev/null
+++ b/tools/scanqtclasses.py
@@ -0,0 +1,122 @@
+# Copyright (C) 2024 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+from pathlib import Path
+import os
+import re
+import subprocess
+import sys
+
+"""Scan the Qt C++ headers per module for classes that should be present
+ in the matching type system and print the missing classes."""
+
+
+VALUE_TYPE = re.compile(r'^\s*<value-type name="([^"]+)"')
+
+
+OBJECT_TYPE = re.compile(r'^\s*<object-type name="([^"]+)"')
+
+
+def query_qtpaths(keyword):
+ """Query qtpaths for a keyword."""
+ query_cmd = ["qtpaths", "-query", keyword]
+ output = subprocess.check_output(query_cmd, stderr=subprocess.STDOUT,
+ universal_newlines=True)
+ return output.strip()
+
+
+def is_class_exluded(name):
+ """Check for excluded classes that do not make sense in a typesystem."""
+ if len(name) < 2:
+ return True
+ if "Iterator" in name or "iterator" in name:
+ return True
+ if name.startswith("If") or name.startswith("Is") or name.startswith("When"):
+ return True
+ if name[:1].islower():
+ return True
+ if name.startswith("QOpenGLFunctions") and name.endswith("Backend"):
+ return True
+ return False
+
+
+def class_from_header_line(line):
+ """Extract a class name from a C++ header line."""
+ def _is_macro(token):
+ return "EXPORT" in token or "API" in token
+
+ def _fix_class_name(name):
+ pos = name.find('<') # Some template specialization "class Name<TemplateParam>"
+ if pos > 0:
+ name = name[:pos]
+ if name.endswith(':'):
+ name = name[:-1]
+ return name
+
+ if line.startswith('//') or line.endswith(';'): # comment/forward decl
+ return None
+ line = line.strip()
+ if not line.startswith("class ") and not line.startswith("struct "):
+ return None
+ tokens = line.split()
+ pos = 1
+ while pos < len(tokens) and _is_macro(tokens[pos]):
+ pos += 1
+ return _fix_class_name(tokens[pos]) if pos < len(tokens) else None
+
+
+def classes_from_header(header):
+ """Extract classes from C++ header file."""
+ result = []
+ for line in header.read_text("utf-8").splitlines():
+ name = class_from_header_line(line)
+ if name and not is_class_exluded(name):
+ result.append(name)
+ return sorted(result)
+
+
+def classes_from_typesystem(typesystem):
+ """Extract classes from typesystem XML file."""
+ result = []
+ for line in typesystem.read_text("utf-8").splitlines():
+ match = VALUE_TYPE.search(line) or OBJECT_TYPE.search(line)
+ if match:
+ result.append(match.group(1))
+ return sorted(result)
+
+
+def check_classes(qt_module_inc_dir, pyside_dir):
+ """Check classes of a module."""
+ module_name = qt_module_inc_dir.name
+ sys.stderr.write(f"Checking {module_name} ")
+ cpp_classes = []
+ typesystem_classes = []
+ for header in qt_module_inc_dir.glob("q*.h"):
+ if not header.name.endswith("_p.h"):
+ cpp_classes.extend(classes_from_header(header))
+ for typesystem in pyside_dir.glob("*.xml"):
+ typesystem_classes.extend(classes_from_typesystem(typesystem))
+
+ cpp_count = len(cpp_classes)
+ typesystem_count = len(typesystem_classes)
+ sys.stderr.write(f"found {cpp_count} C++ / {typesystem_count} typesystem classes")
+ if cpp_count <= typesystem_count:
+ sys.stderr.write(" ok\n")
+ else:
+ sys.stderr.write(f", {cpp_count-typesystem_count} missing\n")
+ for cpp_class in cpp_classes:
+ if cpp_class not in typesystem_classes:
+ wrapper_name = cpp_class.lower() + "_wrapper.cpp"
+ print(f"{module_name}:{cpp_class}:{wrapper_name}")
+
+
+if __name__ == '__main__':
+ qt_version = query_qtpaths("QT_VERSION")
+ qt_inc_dir = Path(query_qtpaths("QT_INSTALL_HEADERS"))
+ print(f"Qt {qt_version} at {os.fspath(qt_inc_dir.parent)}", file=sys.stderr)
+
+ dir = Path(__file__).parents[1].resolve()
+ for module_dir in (dir / "sources" / "pyside6" / "PySide6").glob("Qt*"):
+ qt_module_inc_dir = qt_inc_dir / module_dir.name
+ if qt_module_inc_dir.is_dir():
+ check_classes(qt_module_inc_dir, module_dir)
diff --git a/tools/snippets_translate/README.md b/tools/snippets_translate/README.md
index 9e1a5a949..8d9ab86f8 100644
--- a/tools/snippets_translate/README.md
+++ b/tools/snippets_translate/README.md
@@ -11,7 +11,7 @@ Here's an explanation for each file:
* `main.py`, main file that handle the arguments, the general process
of copying/writing files into the pyside-setup/ repository.
* `converter.py`, main function that translate each line depending
- of the decision making process that use different handlers.
+ on the decision-making process that use different handlers.
* `handlers.py`, functions that handle the different translation cases.
* `parse_utils.py`, some useful function that help the translation process.
* `tests/test_converter.py`, tests cases for the converter function.
@@ -20,20 +20,26 @@ Here's an explanation for each file:
```
% python main.py -h
-usage: sync_snippets [-h] --qt QT_DIR --pyside PYSIDE_DIR [-w] [-v]
+usage: sync_snippets [-h] --qt QT_DIR --target PYSIDE_DIR [-f DIRECTORY] [-w] [-v] [-d] [-s SINGLE_SNIPPET] [--filter FILTER_SNIPPET]
optional arguments:
-h, --help show this help message and exit
--qt QT_DIR Path to the Qt directory (QT_SRC_DIR)
- --pyside PYSIDE_DIR Path to the pyside-setup directory
+ --target TARGET_DIR Directory into which to generate the snippets
-w, --write Actually copy over the files to the pyside-setup directory
-v, --verbose Generate more output
+ -d, --debug Generate even more output
+ -s SINGLE_SNIPPET, --single SINGLE_SNIPPET
+ Path to a single file to be translated
+ -f, --directory DIRECTORY Path to a directory containing the snippets to be translated
+ --filter FILTER_SNIPPET
+ String to filter the snippets to be translated
```
For example:
```
-python main.py --qt /home/cmaureir/dev/qt6/ --pyside /home/cmaureir/dev/pyside-setup -w
+python main.py --qt /home/cmaureir/dev/qt6/ --target /home/cmaureir/dev/pyside-setup -w
```
which will create all the snippet files in the pyside repository. The `-w`
@@ -79,7 +85,7 @@ goes to:
### Examples
-Everything that has .../examples/*/*, for example:
+Everything that has .../examples/*, for example:
```
./qtbase/examples/widgets/dialogs/licensewizard
@@ -175,5 +181,3 @@ for m in modules:
_out[m] = m_classes
pprint(_out)
```
-
-PySide2 was used to cover more classes that are not available for Qt 6.0.
diff --git a/tools/snippets_translate/converter.py b/tools/snippets_translate/converter.py
index 8eeaee551..d45bf277f 100644
--- a/tools/snippets_translate/converter.py
+++ b/tools/snippets_translate/converter.py
@@ -1,58 +1,59 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import re
-
-from handlers import (handle_casts, handle_class, handle_condition,
+from handlers import (handle_array_declarations, handle_casts, handle_class,
handle_conditions, handle_constructor_default_values,
handle_constructors, handle_cout_endl, handle_emit,
- handle_for, handle_foreach, handle_inc_dec,
- handle_include, handle_keywords, handle_negate,
- handle_type_var_declaration, handle_void_functions,
- handle_methods_return_type, handle_functions,
- handle_array_declarations, handle_useless_qt_classes,)
-
-from parse_utils import get_indent, dstrip, remove_ref
+ handle_for, handle_foreach, handle_functions,
+ handle_inc_dec, handle_include, handle_keywords,
+ handle_methods_return_type, handle_negate,
+ handle_type_var_declaration, handle_useless_qt_classes,
+ handle_new,
+ handle_void_functions, handle_qt_connects)
+from parse_utils import dstrip, get_indent, remove_ref
+
+
+VOID_METHOD_PATTERN = re.compile(r"^ *void *[\w\_]+(::)?[\w\d\_]+\(")
+QT_QUALIFIER_PATTERN = re.compile(r"Q[\w]+::")
+TERNARY_OPERATOR_PATTERN = re.compile(r"^.* \? .+ : .+$")
+COUT_PATTERN = re.compile("^ *(std::)?cout")
+FOR_PATTERN = re.compile(r"^ *for *\(")
+FOREACH_PATTERN = re.compile(r"^ *foreach *\(")
+ELSE_PATTERN = re.compile(r"^ *}? *else *{?")
+ELSE_REPLACEMENT_PATTERN = re.compile(r"}? *else *{?")
+CLASS_PATTERN = re.compile(r"^ *class ")
+STRUCT_PATTERN = re.compile(r"^ *struct ")
+DELETE_PATTERN = re.compile(r"^ *delete ")
+VAR1_PATTERN = re.compile(r"^[a-zA-Z0-9]+(<.*?>)? [\w\*\&]+(\(.*?\))? ?(?!.*=|:).*$")
+VAR2_PATTERN = re.compile(r"^[a-zA-Z0-9]+(<.*?>)? [\w]+::[\w\*\&]+\(.*\)$")
+VAR3_PATTERN = re.compile(r"^[a-zA-Z0-9]+(<.*?>)? [\w\*]+ *= *[\w\.\"\']*(\(.*?\))?")
+VAR4_PATTERN = re.compile(r"\w+ = [A-Z]{1}\w+")
+CONSTRUCTOR_PATTERN = re.compile(r"^ *\w+::\w+\(.*?\)")
+ARRAY_VAR_PATTERN = re.compile(r"^[a-zA-Z0-9]+(<.*?>)? [\w\*]+\[?\]? * =? *\{")
+RETURN_TYPE_PATTERN = re.compile(r"^[a-zA-Z0-9]+(<.*?>)? [\w]+::[\w\*\&]+\(.*\)$")
+FUNCTION_PATTERN = re.compile(r"^[a-zA-Z0-9]+(<.*?>)? [\w\*\&]+\(.*\)$")
+ITERATOR_PATTERN = re.compile(r"(std::)?[\w]+<[\w]+>::(const_)?iterator")
+SCOPE_PATTERN = re.compile(r"[\w]+::")
+SWITCH_PATTERN = re.compile(r"^\s*switch\s*\(([a-zA-Z0-9_\.]+)\)\s*{.*$")
+CASE_PATTERN = re.compile(r"^(\s*)case\s+([a-zA-Z0-9_:\.]+):.*$")
+DEFAULT_PATTERN = re.compile(r"^(\s*)default:.*$")
+
+
+QUALIFIERS = {"public:", "protected:", "private:", "public slots:",
+ "protected slots:", "private slots:", "signals:"}
+
+
+FUNCTION_QUALIFIERS = ["virtual ", " override", "inline ", " noexcept"]
+
+
+switch_var = None
+switch_branch = 0
def snippet_translate(x):
+ global switch_var, switch_branch
## Cases which are not C++
## TODO: Maybe expand this with lines that doesn't need to be translated
@@ -62,22 +63,28 @@ def snippet_translate(x):
## General Rules
# Remove ';' at the end of the lines
- if x.endswith(";"):
+ has_semicolon = x.endswith(";")
+ if has_semicolon:
x = x[:-1]
# Remove lines with only '{' or '}'
- if x.strip() == "{" or x.strip() == "}":
+ xs = x.strip()
+ if xs == "{" or xs == "}":
return ""
# Skip lines with the snippet related identifier '//!'
- if x.strip().startswith("//!"):
+ if xs.startswith("//!"):
return x
# handle lines with only comments using '//'
- if x.lstrip().startswith("//"):
+ if xs.startswith("//"):
x = x.replace("//", "#", 1)
return x
+ qt_connects = handle_qt_connects(x)
+ if qt_connects:
+ return qt_connects
+
# Handle "->"
if "->" in x:
x = x.replace("->", ".")
@@ -99,7 +106,7 @@ def snippet_translate(x):
# This contains an extra whitespace because of some variables
# that include the string 'new'
if "new " in x:
- x = x.replace("new ", "")
+ x = handle_new(x)
# Handle 'const'
# Some variables/functions have the word 'const' so we explicitly
@@ -141,13 +148,31 @@ def snippet_translate(x):
if "throw" in x:
x = handle_keywords(x, "throw", "raise")
+ switch_match = SWITCH_PATTERN.match(x)
+ if switch_match:
+ switch_var = switch_match.group(1)
+ switch_branch = 0
+ return ""
+
+ switch_match = CASE_PATTERN.match(x)
+ if switch_match:
+ indent = switch_match.group(1)
+ value = switch_match.group(2).replace("::", ".")
+ cond = "if" if switch_branch == 0 else "elif"
+ switch_branch += 1
+ return f"{indent}{cond} {switch_var} == {value}:"
+
+ switch_match = DEFAULT_PATTERN.match(x)
+ if switch_match:
+ indent = switch_match.group(1)
+ return f"{indent}else:"
+
# handle 'void Class::method(...)' and 'void method(...)'
- if re.search(r"^ *void *[\w\_]+(::)?[\w\d\_]+\(", x):
+ if VOID_METHOD_PATTERN.search(x):
x = handle_void_functions(x)
# 'Q*::' -> 'Q*.'
- # FIXME: This will break iterators, but it's a small price.
- if re.search(r"Q[\w]+::", x):
+ if QT_QUALIFIER_PATTERN.search(x):
x = x.replace("::", ".")
# handle 'nullptr'
@@ -155,78 +180,76 @@ def snippet_translate(x):
x = x.replace("nullptr", "None")
## Special Cases Rules
-
+ xs = x.strip()
# Special case for 'main'
- if x.strip().startswith("int main("):
+ if xs.startswith("int main("):
return f'{get_indent(x)}if __name__ == "__main__":'
- if x.strip().startswith("QApplication app(argc, argv)"):
+ if xs.startswith("QApplication app(argc, argv)"):
return f"{get_indent(x)}app = QApplication([])"
# Special case for 'return app.exec()'
- if x.strip().startswith("return app.exec"):
+ if xs.startswith("return app.exec"):
return x.replace("return app.exec()", "sys.exit(app.exec())")
# Handle includes -> import
- if x.strip().startswith("#include"):
+ if xs.startswith("#include"):
x = handle_include(x)
return dstrip(x)
- if x.strip().startswith("emit "):
+ if xs.startswith("emit "):
x = handle_emit(x)
return dstrip(x)
# *_cast
if "_cast<" in x:
x = handle_casts(x)
+ xs = x.strip()
# Handle Qt classes that needs to be removed
x = handle_useless_qt_classes(x)
# Handling ternary operator
- if re.search(r"^.* \? .+ : .+$", x.strip()):
+ if TERNARY_OPERATOR_PATTERN.search(xs):
x = x.replace(" ? ", " if ")
x = x.replace(" : ", " else ")
+ xs = x.strip()
# Handle 'while', 'if', and 'else if'
# line might end in ')' or ") {"
- if x.strip().startswith(("while", "if", "else if", "} else if")):
+ if xs.startswith(("while", "if", "else if", "} else if")):
x = handle_conditions(x)
return dstrip(x)
- elif re.search("^ *}? *else *{?", x):
- x = re.sub(r"}? *else *{?", "else:", x)
+ elif ELSE_PATTERN.search(x):
+ x = ELSE_REPLACEMENT_PATTERN.sub("else:", x)
return dstrip(x)
# 'cout' and 'endl'
- if re.search("^ *(std::)?cout", x) or ("endl" in x) or x.lstrip().startswith("qDebug()"):
+ if COUT_PATTERN.search(x) or ("endl" in x) or xs.startswith("qDebug()"):
x = handle_cout_endl(x)
return dstrip(x)
# 'for' loops
- if re.search(r"^ *for *\(", x.strip()):
+ if FOR_PATTERN.search(xs):
return dstrip(handle_for(x))
# 'foreach' loops
- if re.search(r"^ *foreach *\(", x.strip()):
+ if FOREACH_PATTERN.search(xs):
return dstrip(handle_foreach(x))
# 'class' and 'structs'
- if re.search(r"^ *class ", x) or re.search(r"^ *struct ", x):
+ if CLASS_PATTERN.search(x) or STRUCT_PATTERN.search(x):
if "struct " in x:
x = x.replace("struct ", "class ")
return handle_class(x)
# 'delete'
- if re.search(r"^ *delete ", x):
+ if DELETE_PATTERN.search(x):
return x.replace("delete", "del")
- # 'public:'
- if re.search(r"^public:$", x.strip()):
- return x.replace("public:", "# public")
-
- # 'private:'
- if re.search(r"^private:$", x.strip()):
- return x.replace("private:", "# private")
+ # 'public:', etc
+ if xs in QUALIFIERS:
+ return f"# {x}".replace(":", "")
# For expressions like: `Type var`
# which does not contain a `= something` on the right side
@@ -241,9 +264,10 @@ def snippet_translate(x):
# At the end we skip methods with the form:
# QStringView Message::body()
# to threat them as methods.
- if (re.search(r"^[a-zA-Z0-9]+(<.*?>)? [\w\*\&]+(\(.*?\))? ?(?!.*=|:).*$", x.strip())
- and x.strip().split()[0] not in ("def", "return", "and", "or")
- and not re.search(r"^[a-zA-Z0-9]+(<.*?>)? [\w]+::[\w\*\&]+\(.*\)$", x.strip())
+ if (has_semicolon and VAR1_PATTERN.search(xs)
+ and not ([f for f in FUNCTION_QUALIFIERS if f in x])
+ and xs.split()[0] not in ("def", "return", "and", "or")
+ and not VAR2_PATTERN.search(xs)
and ("{" not in x and "}" not in x)):
# FIXME: this 'if' is a hack for a function declaration with this form:
@@ -260,8 +284,8 @@ def snippet_translate(x):
# QSome thing = b(...)
# float v = 0.1
# QSome *thing = ...
- if (re.search(r"^[a-zA-Z0-9]+(<.*?>)? [\w\*]+ *= *[\w\.\"\']*(\(.*?\))?", x.strip()) and
- ("{" not in x and "}" not in x)):
+ if (VAR3_PATTERN.search(xs)
+ and ("{" not in x and "}" not in x)):
left, right = x.split("=", 1)
var_name = " ".join(left.strip().split()[1:])
x = f"{get_indent(x)}{remove_ref(var_name)} = {right.strip()}"
@@ -271,23 +295,26 @@ def snippet_translate(x):
# layout = QVBoxLayout
# so we need to add '()' at the end if it's just a word
# with only alpha numeric content
- if re.search(r"\w+ = [A-Z]{1}\w+", x.strip()) and not x.strip().endswith(")"):
- x = f"{x.rstrip()}()"
+ if VAR4_PATTERN.search(xs) and not xs.endswith(")"):
+ v = x.rstrip()
+ if (not v.endswith(" True") and not v.endswith(" False")
+ and not v.endswith(" None")):
+ x = f"{v}()"
return dstrip(x)
# For constructors, that we now the shape is:
# ClassName::ClassName(...)
- if re.search(r"^ *\w+::\w+\(.*?\)", x.strip()):
+ if CONSTRUCTOR_PATTERN.search(xs):
x = handle_constructors(x)
return dstrip(x)
# For base object constructor:
# : QWidget(parent)
if (
- x.strip().startswith(": ")
+ xs.startswith(": ")
and ("<<" not in x)
and ("::" not in x)
- and not x.strip().endswith(";")
+ and not xs.endswith(";")
):
return handle_constructor_default_values(x)
@@ -295,22 +322,40 @@ def snippet_translate(x):
# Arrays declarations with the form:
# type var_name[] = {...
# type var_name {...
- #if re.search(r"^[a-zA-Z0-9]+(<.*?>)? [\w\*]+\[\] * = *\{", x.strip()):
- if re.search(r"^[a-zA-Z0-9]+(<.*?>)? [\w\*]+\[?\]? * =? *\{", x.strip()):
+ # if re.search(r"^[a-zA-Z0-9]+(<.*?>)? [\w\*]+\[\] * = *\{", x.strip()):
+ if ARRAY_VAR_PATTERN.search(xs):
x = handle_array_declarations(x)
+ xs = x.strip()
# Methods with return type
# int Class::method(...)
# QStringView Message::body()
- if re.search(r"^[a-zA-Z0-9]+(<.*?>)? [\w]+::[\w\*\&]+\(.*\)$", x.strip()):
+ if RETURN_TYPE_PATTERN.search(xs):
# We just need to capture the 'method name' and 'arguments'
x = handle_methods_return_type(x)
+ xs = x.strip()
# Handling functions
# By this section of the function, we cover all the other cases
# So we can safely assume it's not a variable declaration
- if re.search(r"^[a-zA-Z0-9]+(<.*?>)? [\w\*\&]+\(.*\)$", x.strip()):
+ if FUNCTION_PATTERN.search(xs):
x = handle_functions(x)
+ xs = x.strip()
+
+ # if it is a C++ iterator declaration, then ignore it due to dynamic typing in Python
+ # eg: std::vector<int> it;
+ # the case of iterator being used inside a for loop is already handed in handle_for(..)
+ # TODO: handle iterator initialization statement like it = container.begin();
+ if ITERATOR_PATTERN.search(x):
+ x = ""
+ return x
+
+ # By now all the typical special considerations of scope resolution operator should be handled
+ # 'Namespace*::' -> 'Namespace*.'
+ # TODO: In the case where a C++ class function is defined outside the class, this would be wrong
+ # but we do not have such a code snippet yet
+ if SCOPE_PATTERN.search(x):
+ x = x.replace("::", ".")
# General return for no special cases
return dstrip(x)
diff --git a/tools/snippets_translate/handlers.py b/tools/snippets_translate/handlers.py
index 510498a30..34e969a62 100644
--- a/tools/snippets_translate/handlers.py
+++ b/tools/snippets_translate/handlers.py
@@ -1,46 +1,51 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import re
import sys
-from parse_utils import get_indent, dstrip, remove_ref, parse_arguments, replace_main_commas, get_qt_module_class
+from parse_utils import (dstrip, get_indent, get_qt_module_class,
+ parse_arguments, remove_ref, replace_main_commas)
+
+IF_PATTERN = re.compile(r'^\s*if\s*\(')
+PARENTHESES_NONEMPTY_CONTENT_PATTERN = re.compile(r"\((.+)\)")
+LOCAL_INCLUDE_PATTERN = re.compile(r'"(.*)"')
+GLOBAL_INCLUDE_PATTERN = re.compile(r"<(.*)>")
+IF_CONDITION_PATTERN = PARENTHESES_NONEMPTY_CONTENT_PATTERN
+ELSE_IF_PATTERN = re.compile(r'^\s*}?\s*else if\s*\(')
+WHILE_PATTERN = re.compile(r'^\s*while\s*\(')
+CAST_PATTERN = re.compile(r"[a-z]+_cast<(.*?)>\((.*?)\)") # Non greedy match of <>
+ITERATOR_LOOP_PATTERN = re.compile(r"= *(.*)egin\(")
+REMOVE_TEMPLATE_PARAMETER_PATTERN = re.compile("<.*>")
+PARENTHESES_CONTENT_PATTERN = re.compile(r"\((.*)\)")
+CONSTRUCTOR_BODY_PATTERN = re.compile(".*{ *}.*")
+CONSTRUCTOR_BODY_REPLACEMENT_PATTERN = re.compile("{ *}")
+CONSTRUCTOR_BASE_PATTERN = re.compile("^ *: *")
+NEGATE_PATTERN = re.compile(r"!(.)")
+CLASS_TEMPLATE_PATTERN = re.compile(r".*<.*>")
+EMPTY_CLASS_PATTERN = re.compile(r".*{.*}")
+EMPTY_CLASS_REPLACEMENT_PATTERN = re.compile(r"{.*}")
+FUNCTION_BODY_PATTERN = re.compile(r"\{(.*)\}")
+ARRAY_DECLARATION_PATTERN = re.compile(r"^[a-zA-Z0-9\<\>]+ ([\w\*]+) *\[?\]?")
+RETURN_TYPE_PATTERN = re.compile(r"^ *[a-zA-Z0-9]+ [\w]+::([\w\*\&]+\(.*\)$)")
+CAPTURE_PATTERN = re.compile(r"^ *([a-zA-Z0-9]+) ([\w\*\&]+\(.*\)$)")
+USELESS_QT_CLASSES_PATTERNS = [
+ re.compile(r'QLatin1StringView\(("[^"]*")\)'),
+ re.compile(r'QLatin1String\(("[^"]*")\)'),
+ re.compile(r'QString\.fromLatin1\(("[^"]*")\)'),
+ re.compile(r"QLatin1Char\(('[^']*')\)"),
+ re.compile(r'QStringLiteral\(("[^"]*")\)'),
+ re.compile(r'QString\.fromUtf8\(("[^"]*")\)'),
+ re.compile(r'u("[^"]*")_s')
+]
+COMMENT1_PATTERN = re.compile(r" *# *[\w\ ]+$")
+COMMENT2_PATTERN = re.compile(r" *# *(.*)$")
+COUT_ENDL_PATTERN = re.compile(r"cout *<<(.*)<< *.*endl")
+COUT1_PATTERN = re.compile(r" *<< *")
+COUT2_PATTERN = re.compile(r".*cout *<<")
+COUT_ENDL2_PATTERN = re.compile(r"<< +endl")
+NEW_PATTERN = re.compile(r"new +([a-zA-Z][a-zA-Z0-9_]*)")
+
def handle_condition(x, name):
# Make sure it's not a multi line condition
@@ -56,9 +61,13 @@ def handle_condition(x, name):
comment = f" #{comment_content[-1]}"
x = x.replace(f"//{comment_content[-1]}", "")
- re_par = re.compile(r"\((.+)\)")
- condition = re_par.search(x).group(1)
- return f"{get_indent(x)}{name} {condition.strip()}:{comment}"
+ match = IF_CONDITION_PATTERN.search(x)
+ if match:
+ condition = match.group(1)
+ return f"{get_indent(x)}{name} {condition.strip()}:{comment}"
+ else:
+ print(f'snippets_translate: Warning "{x}" does not match condition pattern',
+ file=sys.stderr)
return x
@@ -82,35 +91,23 @@ def handle_inc_dec(x, operator):
def handle_casts(x):
- cast = None
- re_type = re.compile(r"<(.*)>")
- re_data = re.compile(r"_cast<.*>\((.*)\)")
- type_name = re_type.search(x)
- data_name = re_data.search(x)
-
- if type_name and data_name:
- type_name = type_name.group(1).replace("*", "")
- data_name = data_name.group(1)
- new_value = f"{type_name}({data_name})"
-
- if "static_cast" in x:
- x = re.sub(r"static_cast<.*>\(.*\)", new_value, x)
- elif "dynamic_cast" in x:
- x = re.sub(r"dynamic_cast<.*>\(.*\)", new_value, x)
- elif "const_cast" in x:
- x = re.sub(r"const_cast<.*>\(.*\)", new_value, x)
- elif "reinterpret_cast" in x:
- x = re.sub(r"reinterpret_cast<.*>\(.*\)", new_value, x)
- elif "qobject_cast" in x:
- x = re.sub(r"qobject_cast<.*>\(.*\)", new_value, x)
+ while True:
+ match = CAST_PATTERN.search(x)
+ if not match:
+ break
+ type_name = match.group(1).strip()
+ while type_name.endswith("*") or type_name.endswith("&") or type_name.endswith(" "):
+ type_name = type_name[:-1]
+ data_name = match.group(2).strip()
+ python_cast = f"{type_name}({data_name})"
+ x = x[0:match.start(0)] + python_cast + x[match.end(0):]
return x
def handle_include(x):
if '"' in x:
- re_par = re.compile(r'"(.*)"')
- header = re_par.search(x)
+ header = LOCAL_INCLUDE_PATTERN.search(x)
if header:
header_name = header.group(1).replace(".h", "")
module_name = header_name.replace('/', '.')
@@ -120,8 +117,7 @@ def handle_include(x):
# besides '"something.h"'
x = ""
elif "<" in x and ">" in x:
- re_par = re.compile(r"<(.*)>")
- name = re_par.search(x).group(1)
+ name = GLOBAL_INCLUDE_PATTERN.search(x).group(1)
t = get_qt_module_class(name)
# if it's not a Qt module or class, we discard it.
if t is None:
@@ -137,12 +133,11 @@ def handle_include(x):
def handle_conditions(x):
- x_strip = x.strip()
- if x_strip.startswith("while") and "(" in x:
+ if WHILE_PATTERN.match(x):
x = handle_condition(x, "while")
- elif x_strip.startswith("if") and "(" in x:
+ elif IF_PATTERN.match(x):
x = handle_condition(x, "if")
- elif x_strip.startswith(("else if", "} else if")):
+ elif ELSE_IF_PATTERN.match(x):
x = handle_condition(x, "else if")
x = x.replace("else if", "elif")
x = x.replace("::", ".")
@@ -150,8 +145,7 @@ def handle_conditions(x):
def handle_for(x):
- re_content = re.compile(r"\((.*)\)")
- content = re_content.search(x)
+ content = PARENTHESES_CONTENT_PATTERN.search(x)
new_x = x
if content:
@@ -166,7 +160,7 @@ def handle_for(x):
# iterators
if "begin(" in x.lower() and "end(" in x.lower():
- name = re.search(r"= *(.*)egin\(", start)
+ name = ITERATOR_LOOP_PATTERN.search(start)
iterable = None
iterator = None
if name:
@@ -187,7 +181,7 @@ def handle_for(x):
# Malformed for-loop:
# for (; pixel1 > start; pixel1 -= stride)
# We return the same line
- if not start.strip():
+ if not start.strip() or "=" not in start:
return f"{get_indent(x)}{dstrip(x)}"
raw_var, value = start.split("=")
raw_var = raw_var.strip()
@@ -242,28 +236,30 @@ def handle_for(x):
elif x.count(":") > 0:
iterator, iterable = content.split(":", 1)
var = iterator.split()[-1].replace("&", "").strip()
- new_x = f"for {remove_ref(var)} in {iterable.strip()}:"
+ iterable = iterable.strip()
+ if iterable.startswith("qAsConst(") or iterable.startswith("std::as_const("):
+ iterable = iterable[iterable.find("(") + 1: -1]
+ new_x = f"for {remove_ref(var)} in {iterable}:"
return f"{get_indent(x)}{dstrip(new_x)}"
def handle_foreach(x):
- re_content = re.compile(r"\((.*)\)")
- content = re_content.search(x)
+ content = PARENTHESES_CONTENT_PATTERN.search(x)
if content:
parenthesis = content.group(1)
iterator, iterable = parenthesis.split(",", 1)
# remove iterator type
it = dstrip(iterator.split()[-1])
# remove <...> from iterable
- value = re.sub("<.*>", "", iterable)
+ value = REMOVE_TEMPLATE_PARAMETER_PATTERN.sub("", iterable)
return f"{get_indent(x)}for {it} in {value}:"
def handle_type_var_declaration(x):
# remove content between <...>
if "<" in x and ">" in x:
- x = " ".join(re.sub("<.*>", "", i) for i in x.split())
- content = re.search(r"\((.*)\)", x)
+ x = " ".join(REMOVE_TEMPLATE_PARAMETER_PATTERN.sub("", i) for i in x.split())
+ content = PARENTHESES_CONTENT_PATTERN.search(x)
if content:
# this means we have something like:
# QSome thing(...)
@@ -279,8 +275,7 @@ def handle_type_var_declaration(x):
def handle_constructors(x):
- re_content = re.compile(r"\((.*)\)")
- arguments = re_content.search(x).group(1)
+ arguments = PARENTHESES_CONTENT_PATTERN.search(x).group(1)
class_method = x.split("(")[0].split("::")
if len(class_method) == 2:
# Equal 'class name' and 'method name'
@@ -298,8 +293,8 @@ def handle_constructor_default_values(x):
# we discard that section completely, since even with a single
# value, we don't need to take care of it, for example:
# ' : a(1) { } -> self.a = 1
- if re.search(".*{ *}.*", x):
- x = re.sub("{ *}", "", x)
+ if CONSTRUCTOR_BODY_PATTERN.search(x):
+ x = CONSTRUCTOR_BODY_REPLACEMENT_PATTERN.sub("", x)
values = "".join(x.split(":", 1))
# Check the commas that are not inside round parenthesis
@@ -314,55 +309,58 @@ def handle_constructor_default_values(x):
if "@" in values:
return_values = ""
for arg in values.split("@"):
- arg = re.sub("^ *: *", "", arg).strip()
+ arg = CONSTRUCTOR_BASE_PATTERN.sub("", arg).strip()
if arg.startswith("Q"):
class_name = arg.split("(")[0]
content = arg.replace(class_name, "")[1:-1]
- return_values += f" {class_name}.__init__(self, {content})\n"
+ return_values += f" super().__init__({content})\n"
elif arg:
var_name = arg.split("(")[0]
- re_par = re.compile(r"\((.+)\)")
- content = re_par.search(arg).group(1)
+ content = PARENTHESES_NONEMPTY_CONTENT_PATTERN.search(arg).group(1)
return_values += f" self.{var_name} = {content}\n"
else:
- arg = re.sub("^ *: *", "", values).strip()
+ arg = CONSTRUCTOR_BASE_PATTERN.sub("", values).strip()
if arg.startswith("Q"):
class_name = arg.split("(")[0]
content = arg.replace(class_name, "")[1:-1]
- return f" {class_name}.__init__(self, {content})"
+ return f" super().__init__({content})"
elif arg:
var_name = arg.split("(")[0]
- re_par = re.compile(r"\((.+)\)")
- content = re_par.search(arg).group(1)
- return f" self.{var_name} = {content}"
-
+ match = PARENTHESES_NONEMPTY_CONTENT_PATTERN.search(arg)
+ if match:
+ content = match.group(1)
+ return f" self.{var_name} = {content}"
+ else:
+ print(f'snippets_translate: Warning "{arg}" does not match pattern',
+ file=sys.stderr)
+ return ""
return return_values.rstrip()
def handle_cout_endl(x):
# if comment at the end
comment = ""
- if re.search(r" *# *[\w\ ]+$", x):
- comment = f' # {re.search(" *# *(.*)$", x).group(1)}'
+ if COMMENT1_PATTERN.search(x):
+ match = COMMENT2_PATTERN.search(x).group(1)
+ comment = f' # {match}'
x = x.split("#")[0]
if "qDebug()" in x:
x = x.replace("qDebug()", "cout")
if "cout" in x and "endl" in x:
- re_cout_endl = re.compile(r"cout *<<(.*)<< *.*endl")
- data = re_cout_endl.search(x)
+ data = COUT_ENDL_PATTERN.search(x)
if data:
data = data.group(1)
- data = re.sub(" *<< *", ", ", data)
+ data = COUT1_PATTERN.sub(", ", data)
x = f"{get_indent(x)}print({data}){comment}"
elif "cout" in x:
- data = re.sub(".*cout *<<", "", x)
- data = re.sub(" *<< *", ", ", data)
+ data = COUT2_PATTERN.sub("", x)
+ data = COUT1_PATTERN.sub(", ", data)
x = f"{get_indent(x)}print({data}){comment}"
elif "endl" in x:
- data = re.sub("<< +endl", "", x)
- data = re.sub(" *<< *", ", ", data)
+ data = COUT_ENDL2_PATTERN.sub("", x)
+ data = COUT1_PATTERN.sub(", ", data)
x = f"{get_indent(x)}print({data}){comment}"
x = x.replace("( ", "(").replace(" )", ")").replace(" ,", ",").replace("(, ", "(")
@@ -378,8 +376,7 @@ def handle_negate(x):
elif "/*" in x:
if x.index("/*") < x.index("!"):
return x
- re_negate = re.compile(r"!(.)")
- next_char = re_negate.search(x).group(1)
+ next_char = NEGATE_PATTERN.search(x).group(1)
if next_char not in ("=", '"'):
x = x.replace("!", "not ")
return x
@@ -387,8 +384,7 @@ def handle_negate(x):
def handle_emit(x):
function_call = x.replace("emit ", "").strip()
- re_content = re.compile(r"\((.*)\)")
- match = re_content.search(function_call)
+ match = PARENTHESES_CONTENT_PATTERN.search(function_call)
if not match:
stmt = x.strip()
print(f'snippets_translate: Warning "{stmt}" does not match function call',
@@ -409,16 +405,16 @@ def handle_void_functions(x):
method_name = class_method.strip()
# if the arguments are in the same line:
+ arguments = None
if ")" in x:
- re_content = re.compile(r"\((.*)\)")
- parenthesis = re_content.search(x).group(1)
+ parenthesis = PARENTHESES_CONTENT_PATTERN.search(x).group(1)
arguments = dstrip(parse_arguments(parenthesis))
elif "," in x:
arguments = dstrip(parse_arguments(x.split("(")[-1]))
# check if includes a '{ ... }' after the method signature
after_signature = x.split(")")[-1]
- re_decl = re.compile(r"\{(.*)\}").search(after_signature)
+ re_decl = FUNCTION_BODY_PATTERN.search(after_signature)
extra = ""
if re_decl:
extra = re_decl.group(1)
@@ -454,13 +450,13 @@ def handle_class(x):
bases_name = ""
# Check if the class_name is templated, then remove it
- if re.search(r".*<.*>", class_name):
+ if CLASS_TEMPLATE_PATTERN.search(class_name):
class_name = class_name.split("<")[0]
# Special case: invalid notation for an example:
# class B() {...} -> clas B(): pass
- if re.search(r".*{.*}", class_name):
- class_name = re.sub(r"{.*}", "", class_name).rstrip()
+ if EMPTY_CLASS_PATTERN.search(class_name):
+ class_name = EMPTY_CLASS_REPLACEMENT_PATTERN.sub("", class_name).rstrip()
return f"{class_name}(): pass"
# Special case: check if the line ends in ','
@@ -474,23 +470,22 @@ def handle_class(x):
else:
return x
+
def handle_array_declarations(x):
- re_varname = re.compile(r"^[a-zA-Z0-9\<\>]+ ([\w\*]+) *\[?\]?")
- content = re_varname.search(x.strip())
+ content = ARRAY_DECLARATION_PATTERN.search(x.strip())
if content:
var_name = content.group(1)
rest_line = "".join(x.split("{")[1:])
x = f"{get_indent(x)}{var_name} = {{{rest_line}"
return x
+
def handle_methods_return_type(x):
- re_capture = re.compile(r"^ *[a-zA-Z0-9]+ [\w]+::([\w\*\&]+\(.*\)$)")
- capture = re_capture.search(x)
+ capture = RETURN_TYPE_PATTERN.search(x)
if capture:
content = capture.group(1)
method_name = content.split("(")[0]
- re_par = re.compile(r"\((.+)\)")
- par_capture = re_par.search(x)
+ par_capture = PARENTHESES_NONEMPTY_CONTENT_PATTERN.search(x)
arguments = "(self)"
if par_capture:
arguments = f"(self, {par_capture.group(1)})"
@@ -499,13 +494,14 @@ def handle_methods_return_type(x):
def handle_functions(x):
- re_capture = re.compile(r"^ *[a-zA-Z0-9]+ ([\w\*\&]+\(.*\)$)")
- capture = re_capture.search(x)
+ capture = CAPTURE_PATTERN.search(x)
if capture:
- content = capture.group(1)
+ return_type = capture.group(1)
+ if return_type == "return": # "return QModelIndex();"
+ return x
+ content = capture.group(2)
function_name = content.split("(")[0]
- re_par = re.compile(r"\((.+)\)")
- par_capture = re_par.search(x)
+ par_capture = PARENTHESES_NONEMPTY_CONTENT_PATTERN.search(x)
arguments = ""
if par_capture:
for arg in par_capture.group(1).split(","):
@@ -516,11 +512,85 @@ def handle_functions(x):
x = f"{get_indent(x)}def {function_name}({dstrip(arguments)}):"
return x
+
def handle_useless_qt_classes(x):
- _classes = ("QLatin1String", "QLatin1Char")
- for i in _classes:
- re_content = re.compile(fr"{i}\((.*)\)")
- content = re_content.search(x)
- if content:
- x = x.replace(content.group(0), content.group(1))
- return x
+ for c in USELESS_QT_CLASSES_PATTERNS:
+ while True:
+ match = c.search(x)
+ if match:
+ x = x[0:match.start()] + match.group(1) + x[match.end():]
+ else:
+ break
+ return x.replace('"_L1', '"').replace("u'", "'")
+
+
+def handle_new(x):
+ """Parse operator new() and add parentheses were needed:
+ func(new Foo, new Bar(x))" -> "func(Foo(), Bar(x))"""
+ result = ""
+ last_pos = 0
+ for match in NEW_PATTERN.finditer(x):
+ end = match.end(0)
+ parentheses_needed = end >= len(x) or x[end] != "("
+ type_name = match.group(1)
+ result += x[last_pos:match.start(0)] + type_name
+ if parentheses_needed:
+ result += "()"
+ last_pos = end
+ result += x[last_pos:]
+ return result
+
+
+# The code below handles pairs of instance/pointer to member functions (PMF)
+# which appear in Qt in connect statements like:
+# "connect(fontButton, &QAbstractButton::clicked, this, &Dialog::setFont)".
+# In a first pass, these pairs are replaced by:
+# "connect(fontButton.clicked, self.setFont)" to be able to handle statements
+# spanning lines. A 2nd pass then checks for the presence of a connect
+# statement and replaces it by:
+# "fontButton.clicked.connect(self.setFont)".
+# To be called right after checking for comments.
+
+
+INSTANCE_PMF_RE = re.compile(r"&?(\w+),\s*&\w+::(\w+)")
+
+
+CONNECT_RE = re.compile(r"^(\s*)(QObject::)?connect\(([A-Za-z0-9_\.]+),\s*")
+
+
+def handle_qt_connects(line_in):
+ if not INSTANCE_PMF_RE.search(line_in):
+ return None
+ # 1st pass, "fontButton, &QAbstractButton::clicked" -> "fontButton.clicked"
+
+ is_connect = "connect(" in line_in
+ line = line_in
+ # Remove any smart pointer access, etc in connect statements
+ if is_connect:
+ line = line.replace(".get()", "").replace(".data()", "").replace("->", ".")
+ last_pos = 0
+ result = ""
+ for match in INSTANCE_PMF_RE.finditer(line):
+ instance = match.group(1)
+ if instance == "this":
+ instance = "self"
+ member_fun = match.group(2)
+ next_pos = match.start()
+ result += line[last_pos:next_pos]
+ last_pos = match.end()
+ result += f"{instance}.{member_fun}"
+ result += line[last_pos:]
+
+ if not is_connect:
+ return result
+
+ # 2nd pass, reorder connect.
+ connect_match = CONNECT_RE.match(result)
+ if not connect_match:
+ return result
+
+ space = connect_match.group(1)
+ signal_ = connect_match.group(3)
+ connect_stmt = f"{space}{signal_}.connect("
+ connect_stmt += result[connect_match.end():]
+ return connect_stmt
diff --git a/tools/snippets_translate/main.py b/tools/snippets_translate/main.py
index c5f4b9690..01ea06c5e 100644
--- a/tools/snippets_translate/main.py
+++ b/tools/snippets_translate/main.py
@@ -1,54 +1,32 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-import argparse
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
import logging
import os
import re
-import shutil
import sys
+from argparse import ArgumentParser, Namespace, RawDescriptionHelpFormatter
from enum import Enum
from pathlib import Path
from textwrap import dedent
+from typing import Dict, List
+from override import python_example_snippet_mapping
from converter import snippet_translate
+HELP = """Converts Qt C++ code snippets to Python snippets.
+
+Ways to override Snippets:
+
+1) Complete snippets from local files:
+ To replace snippet "[1]" of "foo/bar.cpp", create a file
+ "sources/pyside6/doc/snippets/foo/bar_1.cpp.py" .
+2) Snippets extracted from Python examples:
+ To use snippets from Python examples, add markers ("#! [id]") to it
+ and an entry to _PYTHON_EXAMPLE_SNIPPET_MAPPING.
+"""
+
+
# Logger configuration
try:
from rich.logging import RichHandler
@@ -73,9 +51,14 @@ log = logging.getLogger("snippets_translate")
# Filter and paths configuration
SKIP_END = (".pro", ".pri", ".cmake", ".qdoc", ".yaml", ".frag", ".qsb", ".vert", "CMakeLists.txt")
SKIP_BEGIN = ("changes-", ".")
-OUT_MAIN = Path("sources/pyside6/doc/codesnippets/")
-OUT_SNIPPETS = OUT_MAIN / "doc/src/snippets/"
-OUT_EXAMPLES = OUT_MAIN / "doc/codesnippets/examples/"
+CPP_SNIPPET_PATTERN = re.compile(r"//! ?\[([^]]+)\]")
+PYTHON_SNIPPET_PATTERN = re.compile(r"#! ?\[([^]]+)\]")
+
+ROOT_PATH = Path(__file__).parents[2]
+SOURCE_PATH = ROOT_PATH / "sources" / "pyside6" / "doc" / "snippets"
+
+
+OVERRIDDEN_SNIPPET = "# OVERRIDDEN_SNIPPET"
class FileStatus(Enum):
@@ -83,9 +66,14 @@ class FileStatus(Enum):
New = 1
-def get_parser():
- parser = argparse.ArgumentParser(prog="snippets_translate")
- # List pyproject files
+def get_parser() -> ArgumentParser:
+ """
+ Returns a parser for the command line arguments of the script.
+ See README.md for more information.
+ """
+ parser = ArgumentParser(prog="snippets_translate",
+ description=HELP,
+ formatter_class=RawDescriptionHelpFormatter)
parser.add_argument(
"--qt",
action="store",
@@ -95,11 +83,11 @@ def get_parser():
)
parser.add_argument(
- "--pyside",
+ "--target",
action="store",
- dest="pyside_dir",
+ dest="target_dir",
required=True,
- help="Path to the pyside-setup directory",
+ help="Directory into which to generate the snippets",
)
parser.add_argument(
@@ -135,6 +123,14 @@ def get_parser():
)
parser.add_argument(
+ "-f",
+ "--directory",
+ action="store",
+ dest="single_directory",
+ help="Path to a single directory to be translated",
+ )
+
+ parser.add_argument(
"--filter",
action="store",
dest="filter_snippet",
@@ -144,7 +140,7 @@ def get_parser():
def is_directory(directory):
- if not os.path.isdir(directory):
+ if not directory.is_dir():
log.error(f"Path '{directory}' is not a directory")
return False
return True
@@ -156,7 +152,7 @@ def check_arguments(options):
if options.write_files:
if not opt_quiet:
log.warning(
- f"Files will be copied from '{options.qt_dir}':\n" f"\tto '{options.pyside_dir}'"
+ f"Files will be copied from '{options.qt_dir}':\n" f"\tto '{options.target_dir}'"
)
else:
msg = "This is a listing only, files are not being copied"
@@ -165,11 +161,8 @@ def check_arguments(options):
if not opt_quiet:
log.info(msg, extra=extra)
- # Check 'qt_dir' and 'pyside_dir'
- if is_directory(options.qt_dir) and is_directory(options.pyside_dir):
- return True
-
- return False
+ # Check 'qt_dir'
+ return is_directory(Path(options.qt_dir))
def is_valid_file(x):
@@ -191,58 +184,154 @@ def is_valid_file(x):
return True
-def get_snippets(data):
- snippet_lines = ""
- is_snippet = False
- snippets = []
- for line in data:
- if not is_snippet and line.startswith("//! ["):
- snippet_lines = line
- is_snippet = True
- elif is_snippet:
- snippet_lines = f"{snippet_lines}\n{line}"
- if line.startswith("//! ["):
- is_snippet = False
- snippets.append(snippet_lines)
- # Special case when a snippet line is:
- # //! [1] //! [2]
- if line.count("//!") > 1:
- snippet_lines = ""
- is_snippet = True
- return snippets
+def get_snippet_ids(line: str, pattern: re.Pattern) -> List[str]:
+ # Extract the snippet ids for a line '//! [1] //! [2]'
+ result = []
+ for m in pattern.finditer(line):
+ result.append(m.group(1))
+ return result
+
+
+def overriden_snippet_lines(lines: List[str], start_id: str) -> List[str]:
+ """Wrap an overridden snippet with marker and id lines."""
+ id_string = f"//! [{start_id}]"
+ result = [OVERRIDDEN_SNIPPET, id_string]
+ result.extend(lines)
+ result.append(id_string)
+ return result
+
+
+def get_snippet_override(start_id: str, rel_path: str) -> List[str]:
+ """Check if the snippet is overridden by a local file under
+ sources/pyside6/doc/snippets."""
+ file_start_id = start_id.replace(' ', '_')
+ override_name = f"{rel_path.stem}_{file_start_id}{rel_path.suffix}.py"
+ override_path = SOURCE_PATH / rel_path.parent / override_name
+ if not override_path.is_file():
+ return []
+ lines = override_path.read_text().splitlines()
+ return overriden_snippet_lines(lines, start_id)
+
+
+def _get_snippets(lines: List[str],
+ comment: str,
+ pattern: re.Pattern) -> Dict[str, List[str]]:
+ """Helper to extract (potentially overlapping) snippets from a C++ file
+ indicated by pattern ("//! [1]") and return them as a dict by <id>."""
+ snippets: Dict[str, List[str]] = {}
+ snippet: List[str]
+ done_snippets : List[str] = []
+
+ i = 0
+ while i < len(lines):
+ line = lines[i]
+ i += 1
+
+ start_ids = get_snippet_ids(line, pattern)
+ while start_ids:
+ # Start of a snippet
+ start_id = start_ids.pop(0)
+ if start_id in done_snippets:
+ continue
+ # Reconstruct a single ID line to avoid repetitive ID lines
+ # by consecutive snippets with multi-ID lines like "//! [1] [2]"
+ id_line = f"{comment}! [{start_id}]"
+ done_snippets.append(start_id)
+ snippet = [id_line] # The snippet starts with this id
+
+ # Find the end of the snippet
+ j = i
+ while j < len(lines):
+ l = lines[j]
+ j += 1
+
+ # Add the line to the snippet
+ snippet.append(l)
+
+ # Check if the snippet is complete
+ if start_id in get_snippet_ids(l, pattern):
+ # End of snippet
+ snippet[len(snippet) - 1] = id_line
+ snippets[start_id] = snippet
+ break
+
+ return snippets
-def get_license_from_file(filename):
- lines = []
- with open(filename, "r") as f:
- line = True
- while line:
- line = f.readline().rstrip()
+def get_python_example_snippet_override(start_id: str, rel_path: str) -> List[str]:
+ """Check if the snippet is overridden by a python example snippet."""
+ key = (os.fspath(rel_path), start_id)
+ value = python_example_snippet_mapping().get(key)
+ if not value:
+ return []
+ path, id = value
+ file_lines = path.read_text().splitlines()
+ snippet_dict = _get_snippets(file_lines, '#', PYTHON_SNIPPET_PATTERN)
+ lines = snippet_dict.get(id)
+ if not lines:
+ raise RuntimeError(f'Snippet "{id}" not found in "{os.fspath(path)}"')
+ lines = lines[1:-1] # Strip Python snippet markers
+ return overriden_snippet_lines(lines, start_id)
+
+
+def get_snippets(lines: List[str], rel_path: str) -> List[List[str]]:
+ """Extract (potentially overlapping) snippets from a C++ file indicated
+ by '//! [1]'."""
+ result = _get_snippets(lines, '//', CPP_SNIPPET_PATTERN)
+ id_list = result.keys()
+ for snippet_id in id_list:
+ # Check file overrides and example overrides
+ snippet = get_snippet_override(snippet_id, rel_path)
+ if not snippet:
+ snippet = get_python_example_snippet_override(snippet_id, rel_path)
+ if snippet:
+ result[snippet_id] = snippet
+
+ return result.values()
+
+
+def get_license_from_file(lines):
+ result = []
+ spdx = len(lines) >= 2 and lines[0].startswith("//") and "SPDX" in lines[1]
+ if spdx: # SPDX, 6.4
+ for line in lines:
+ if line.startswith("//"):
+ result.append("# " + line[3:])
+ else:
+ break
+ else: # Old style, C-Header, 6.2
+ for line in lines:
if line.startswith("/*") or line.startswith("**"):
- lines.append(line)
+ result.append(line)
# End of the comment
if line.endswith("*/"):
break
- if lines:
- # We know we have the whole block, so we can
- # perform replacements to translate the comment
- lines[0] = lines[0].replace("/*", "**").replace("*", "#")
- lines[-1] = lines[-1].replace("*/", "**").replace("*", "#")
+ if result:
+ # We know we have the whole block, so we can
+ # perform replacements to translate the comment
+ result[0] = result[0].replace("/*", "**").replace("*", "#")
+ result[-1] = result[-1].replace("*/", "**").replace("*", "#")
- for i in range(1, len(lines) - 1):
- lines[i] = re.sub(r"^\*\*", "##", lines[i])
+ for i in range(1, len(result) - 1):
+ result[i] = re.sub(r"^\*\*", "##", result[i])
+ return "\n".join(result)
- return "\n".join(lines)
- else:
- return ""
-def translate_file(file_path, final_path, debug, write):
- with open(str(file_path)) as f:
- snippets = get_snippets(f.read().splitlines())
+def translate_file(file_path, final_path, qt_path, debug, write):
+ lines = []
+ snippets = []
+ try:
+ with file_path.open("r", encoding="utf-8") as f:
+ lines = f.read().splitlines()
+ rel_path = file_path.relative_to(qt_path)
+ snippets = get_snippets(lines, rel_path)
+ except Exception as e:
+ log.error(f"Error reading {file_path}: {e}")
+ raise
if snippets:
# TODO: Get license header first
- license_header = get_license_from_file(str(file_path))
+ license_header = get_license_from_file(lines)
if debug:
if have_rich:
console = Console()
@@ -250,11 +339,13 @@ def translate_file(file_path, final_path, debug, write):
table.add_column("C++")
table.add_column("Python")
- file_snippets = []
+ translated_lines = []
for snippet in snippets:
- lines = snippet.split("\n")
- translated_lines = []
- for line in lines:
+ if snippet and snippet[0] == OVERRIDDEN_SNIPPET:
+ translated_lines.extend(snippet[1:])
+ continue
+
+ for line in snippet:
if not line:
continue
translated_line = snippet_translate(line)
@@ -268,43 +359,45 @@ def translate_file(file_path, final_path, debug, write):
if not opt_quiet:
print(line, translated_line)
- if debug and have_rich:
- if not opt_quiet:
- console.print(table)
-
- file_snippets.append("\n".join(translated_lines))
+ if debug and have_rich:
+ if not opt_quiet:
+ console.print(table)
if write:
# Open the final file
- with open(str(final_path), "w") as out_f:
+ new_suffix = ".h.py" if final_path.name.endswith(".h") else ".py"
+ target_file = final_path.with_suffix(new_suffix)
+
+ # Directory where the file will be placed, if it does not exists
+ # we create it. The option 'parents=True' will create the parents
+ # directories if they don't exist, and if some of them exists,
+ # the option 'exist_ok=True' will ignore them.
+ if not target_file.parent.is_dir():
+ if not opt_quiet:
+ log.info(f"Creating directories for {target_file.parent}")
+ target_file.parent.mkdir(parents=True, exist_ok=True)
+
+ with target_file.open("w", encoding="utf-8") as out_f:
+ out_f.write("//! [AUTO]\n\n")
out_f.write(license_header)
- out_f.write("\n")
+ out_f.write("\n\n")
- for s in file_snippets:
+ for s in translated_lines:
out_f.write(s)
- out_f.write("\n\n")
+ out_f.write("\n")
- # Rename to .py
- written_file = shutil.move(str(final_path), str(final_path.with_suffix(".py")))
if not opt_quiet:
- log.info(f"Written: {written_file}")
+ log.info(f"Written: {target_file}")
else:
if not opt_quiet:
log.warning("No snippets were found")
+def copy_file(file_path, qt_path, out_path, write=False, debug=False):
-def copy_file(file_path, py_path, category, category_path, write=False, debug=False):
-
- if not category:
- translate_file(file_path, Path("_translated.py"), debug, write)
- return
- # Get path after the directory "snippets" or "examples"
- # and we add +1 to avoid the same directory
- idx = file_path.parts.index(category) + 1
- rel_path = Path().joinpath(*file_path.parts[idx:])
-
- final_path = py_path / category_path / rel_path
+ # Replicate the Qt path including module under the PySide snippets directory
+ qt_path_count = len(qt_path.parts)
+ final_path = out_path.joinpath(*file_path.parts[qt_path_count:])
# Check if file exists.
if final_path.exists():
@@ -328,140 +421,102 @@ def copy_file(file_path, py_path, category, category_path, write=False, debug=Fa
else:
log.info(f"{status_msg:10s} {final_path}")
- # Directory where the file will be placed, if it does not exists
- # we create it. The option 'parents=True' will create the parents
- # directories if they don't exist, and if some of them exists,
- # the option 'exist_ok=True' will ignore them.
- if write and not final_path.parent.is_dir():
- if not opt_quiet:
- log.info(f"Creating directories for {final_path.parent}")
- final_path.parent.mkdir(parents=True, exist_ok=True)
-
- # Change .cpp to .py
- # TODO:
- # - What do we do with .h in case both .cpp and .h exists with
- # the same name?
-
+ # Change .cpp to .py, .h to .h.py
# Translate C++ code into Python code
- if final_path.name.endswith(".cpp"):
- translate_file(file_path, final_path, debug, write)
+ if final_path.name.endswith(".cpp") or final_path.name.endswith(".h"):
+ translate_file(file_path, final_path, qt_path, debug, write)
return status
-def process(options):
- qt_path = Path(options.qt_dir)
- py_path = Path(options.pyside_dir)
+def single_directory(options, qt_path, out_path):
+ # Process all files in the directory
+ directory_path = Path(options.single_directory)
+ for file_path in directory_path.glob("**/*"):
+ if file_path.is_dir() or not is_valid_file(file_path):
+ continue
+ copy_file(file_path, qt_path, out_path, write=options.write_files, debug=options.debug)
+
- # (new, exists)
+def single_snippet(options, qt_path, out_path):
+ # Process a single file
+ file = Path(options.single_snippet)
+ if is_valid_file(file):
+ copy_file(file, qt_path, out_path, write=options.write_files, debug=options.debug)
+
+
+def all_modules_in_directory(options, qt_path, out_path):
+ """
+ Process all Qt modules in the directory. Logs how many files were processed.
+ """
+ # New files, already existing files
valid_new, valid_exists = 0, 0
- # Creating directories in case they don't exist
- if not OUT_SNIPPETS.is_dir():
- OUT_SNIPPETS.mkdir(parents=True)
-
- if not OUT_EXAMPLES.is_dir():
- OUT_EXAMPLES.mkdir(parents=True)
-
- if options.single_snippet:
- f = Path(options.single_snippet)
- if is_valid_file(f):
- if "snippets" in f.parts:
- status = copy_file(
- f,
- py_path,
- "snippets",
- OUT_SNIPPETS,
- write=options.write_files,
- debug=options.debug,
- )
- elif "examples" in f.parts:
- status = copy_file(
- f,
- py_path,
- "examples",
- OUT_EXAMPLES,
- write=options.write_files,
- debug=options.debug,
- )
- else:
- log.warning("Path did not contain 'snippets' nor 'examples'."
- "File will not be copied over, just generated locally.")
- status = copy_file(
- f,
- py_path,
- None,
- None,
- write=options.write_files,
- debug=options.debug,
- )
+ for module in qt_path.iterdir():
+ module_name = module.name
- else:
- for i in qt_path.iterdir():
- module_name = i.name
- # FIXME: remove this, since it's just for testing.
- if i.name != "qtbase":
+ # Filter only Qt modules
+ if not module_name.startswith("qt"):
+ continue
+
+ if not opt_quiet:
+ log.info(f"Module {module_name}")
+
+ # Iterating everything
+ for f in module.glob("**/*.*"):
+ # Proceed only if the full path contain the filter string
+ if not is_valid_file(f):
continue
- # Filter only Qt modules
- if not module_name.startswith("qt"):
+ if options.filter_snippet and options.filter_snippet not in str(f.absolute()):
continue
- if not opt_quiet:
- log.info(f"Module {module_name}")
-
- # Iterating everything
- for f in i.glob("**/*.*"):
- if is_valid_file(f):
- if options.filter_snippet:
- # Proceed only if the full path contain the filter string
- if options.filter_snippet not in str(f.absolute()):
- continue
- if "snippets" in f.parts:
- status = copy_file(
- f,
- py_path,
- "snippets",
- OUT_SNIPPETS,
- write=options.write_files,
- debug=options.debug,
- )
- elif "examples" in f.parts:
- status = copy_file(
- f,
- py_path,
- "examples",
- OUT_EXAMPLES,
- write=options.write_files,
- debug=options.debug,
- )
-
- # Stats
- if status == FileStatus.New:
- valid_new += 1
- elif status == FileStatus.Exists:
- valid_exists += 1
- if not opt_quiet:
- log.info(
- dedent(
- f"""\
- Summary:
- Total valid files: {valid_new + valid_exists}
- New files: {valid_new}
- Existing files: {valid_exists}
- """
- )
+ status = copy_file(f, qt_path, out_path, write=options.write_files, debug=options.debug)
+
+ # Stats
+ if status == FileStatus.New:
+ valid_new += 1
+ elif status == FileStatus.Exists:
+ valid_exists += 1
+
+ if not opt_quiet:
+ log.info(
+ dedent(
+ f"""\
+ Summary:
+ Total valid files: {valid_new + valid_exists}
+ New files: {valid_new}
+ Existing files: {valid_exists}
+ """
)
+ )
+
+
+def process_files(options: Namespace) -> None:
+ qt_path = Path(options.qt_dir)
+ out_path = Path(options.target_dir)
+
+ # Creating directories in case they don't exist
+ if not out_path.is_dir():
+ out_path.mkdir(parents=True)
+
+ if options.single_directory:
+ single_directory(options, qt_path, out_path)
+ elif options.single_snippet:
+ single_snippet(options, qt_path, out_path)
+ else:
+ # General case: process all Qt modules in the directory
+ all_modules_in_directory(options, qt_path, out_path)
if __name__ == "__main__":
parser = get_parser()
- options = parser.parse_args()
- opt_quiet = False if options.verbose else True
- opt_quiet = False if options.debug else opt_quiet
+ opt: Namespace = parser.parse_args()
+ opt_quiet = not (opt.verbose or opt.debug)
- if not check_arguments(options):
+ if not check_arguments(opt):
+ # Error, invalid arguments
parser.print_help()
- sys.exit(0)
+ sys.exit(-1)
- process(options)
+ process_files(opt)
diff --git a/tools/snippets_translate/module_classes.py b/tools/snippets_translate/module_classes.py
index 364550f26..4992e170b 100644
--- a/tools/snippets_translate/module_classes.py
+++ b/tools/snippets_translate/module_classes.py
@@ -1,41 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
module_classes = {
diff --git a/tools/snippets_translate/override.py b/tools/snippets_translate/override.py
new file mode 100644
index 000000000..e7623d8a5
--- /dev/null
+++ b/tools/snippets_translate/override.py
@@ -0,0 +1,112 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+from pathlib import Path
+
+ROOT_PATH = Path(__file__).parents[2]
+EXAMPLES_PATH = ROOT_PATH / "examples"
+TUTORIAL_EXAMPLES_PATH = ROOT_PATH / "sources" / "pyside6" / "doc" / "tutorials"
+
+
+_PYTHON_EXAMPLE_SNIPPET_MAPPING = {
+ ("qtbase/examples/widgets/tutorials/modelview/1_readonly/mymodel.cpp",
+ "Quoting ModelView Tutorial"):
+ (EXAMPLES_PATH / "widgets" / "tutorials" / "modelview" / "1_readonly.py", "1"),
+ ("qtbase/examples/widgets/tutorials/modelview/2_formatting/mymodel.cpp",
+ "Quoting ModelView Tutorial"):
+ (EXAMPLES_PATH / "widgets" / "tutorials" / "modelview" / "2_formatting.py", "1"),
+ ("qtbase/examples/widgets/tutorials/modelview/3_changingmodel/mymodel.cpp",
+ "quoting mymodel_QVariant"):
+ (EXAMPLES_PATH / "widgets" / "tutorials" / "modelview" / "3_changingmodel.py", "2"),
+ ("qtbase/examples/widgets/tutorials/modelview/3_changingmodel/mymodel.cpp",
+ "quoting mymodel_a"):
+ (EXAMPLES_PATH / "widgets" / "tutorials" / "modelview" / "3_changingmodel.py", "1"),
+ ("qtbase/examples/widgets/tutorials/modelview/3_changingmodel/mymodel.cpp",
+ "quoting mymodel_b"):
+ (EXAMPLES_PATH / "widgets" / "tutorials" / "modelview" / "3_changingmodel.py", "3"),
+ ("qtbase/examples/widgets/tutorials/modelview/4_headers/mymodel.cpp",
+ "quoting mymodel_c"):
+ (EXAMPLES_PATH / "widgets" / "tutorials" / "modelview" / "4_headers.py", "1"),
+ ("qtbase/examples/widgets/tutorials/modelview/5_edit/mymodel.cpp",
+ "quoting mymodel_e"):
+ (EXAMPLES_PATH / "widgets" / "tutorials" / "modelview" / "5_edit.py", "1"),
+ ("qtbase/examples/widgets/tutorials/modelview/5_edit/mymodel.cpp",
+ "quoting mymodel_f"):
+ (EXAMPLES_PATH / "widgets" / "tutorials" / "modelview" / "5_edit.py", "2"),
+ ("qtbase/examples/widgets/tutorials/modelview/6_treeview/mainwindow.cpp",
+ "Quoting ModelView Tutorial"):
+ (EXAMPLES_PATH / "widgets" / "tutorials" / "modelview" / "6_treeview.py", "1"),
+ ("qtbase/examples/widgets/tutorials/modelview/7_selections/mainwindow.cpp",
+ "quoting modelview_a"):
+ (EXAMPLES_PATH / "widgets" / "tutorials" / "modelview" / "7_selections.py", "1"),
+ ("qtbase/examples/widgets/tutorials/modelview/7_selections/mainwindow.cpp",
+ "quoting modelview_b"):
+ (EXAMPLES_PATH / "widgets" / "tutorials" / "modelview" / "7_selections.py", "2"),
+ ("qtbase/src/widgets/doc/snippets/qlistview-dnd/mainwindow.cpp.cpp", "0"):
+ (TUTORIAL_EXAMPLES_PATH / "modelviewprogramming" / "qlistview-dnd.py", "mainwindow0")
+}
+
+
+_python_example_snippet_mapping = {}
+
+
+def python_example_snippet_mapping():
+ global _python_example_snippet_mapping
+ if not _python_example_snippet_mapping:
+ result = _PYTHON_EXAMPLE_SNIPPET_MAPPING
+
+ qt_path = "qtbase/src/widgets/doc/snippets/simplemodel-use/main.cpp"
+ pyside_path = TUTORIAL_EXAMPLES_PATH / "modelviewprogramming" / "stringlistmodel.py"
+ for i in range(3):
+ snippet_id = str(i)
+ result[(qt_path, snippet_id)] = pyside_path, snippet_id
+
+ qt_path = "qtbase/src/widgets/doc/snippets/stringlistmodel/main.cpp"
+ pyside_path = TUTORIAL_EXAMPLES_PATH / "modelviewprogramming" / "stringlistmodel.py"
+ for i in range(6):
+ snippet_id = str(i)
+ result[(qt_path, snippet_id)] = pyside_path, f"main{snippet_id}"
+
+ qt_path = "qtbase/examples/widgets/itemviews/spinboxdelegate/delegate.cpp"
+ pyside_path = (EXAMPLES_PATH / "widgets" / "itemviews" / "spinboxdelegate"
+ / "spinboxdelegate.py")
+ for i in range(5):
+ snippet_id = str(i)
+ result[(qt_path, snippet_id)] = pyside_path, snippet_id
+
+ qt_path = "qtbase/src/widgets/doc/snippets/stringlistmodel/model.cpp"
+ pyside_path = (TUTORIAL_EXAMPLES_PATH / "modelviewprogramming"
+ / "stringlistmodel.py")
+ for i in range(10):
+ snippet_id = str(i)
+ result[(qt_path, snippet_id)] = pyside_path, snippet_id
+
+ qt_path = "qtbase/src/widgets/doc/snippets/qlistview-dnd/model.cpp"
+ pyside_path = (TUTORIAL_EXAMPLES_PATH / "modelviewprogramming"
+ / "qlistview-dnd.py")
+ for i in range(11):
+ snippet_id = str(i)
+ result[(qt_path, snippet_id)] = pyside_path, snippet_id
+
+ qt_path = "qtconnectivity/examples/bluetooth/heartrate_game/devicefinder.cpp"
+ pyside_path = EXAMPLES_PATH / "bluetooth" / "heartrate_game" / "devicefinder.py"
+ for i in range(5):
+ snippet_id = f"devicediscovery-{i}"
+ result[(qt_path, snippet_id)] = pyside_path, snippet_id
+
+ qt_path = "qtconnectivity/examples/bluetooth/heartrate_game/devicehandler.cpp"
+ pyside_path = EXAMPLES_PATH / "bluetooth" / "heartrate_game" / "devicehandler.py"
+ for snippet_id in ["Connect-Signals-1", "Connect-Signals-2",
+ "Filter HeartRate service 2", "Find HRM characteristic",
+ "Reading value"]:
+ result[(qt_path, snippet_id)] = pyside_path, snippet_id
+
+ qt_path = "qtconnectivity/examples/bluetooth/heartrate_server/main.cpp"
+ pyside_path = EXAMPLES_PATH / "bluetooth" / "heartrate_server" / "heartrate_server.py"
+ for snippet_id in ["Advertising Data", "Start Advertising", "Service Data",
+ "Provide Heartbeat"]:
+ result[(qt_path, snippet_id)] = pyside_path, snippet_id
+
+ _python_example_snippet_mapping = result
+
+ return _python_example_snippet_mapping
diff --git a/tools/snippets_translate/parse_utils.py b/tools/snippets_translate/parse_utils.py
index d82108355..234d1b669 100644
--- a/tools/snippets_translate/parse_utils.py
+++ b/tools/snippets_translate/parse_utils.py
@@ -1,43 +1,8 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import re
+
from module_classes import module_classes
@@ -68,6 +33,7 @@ def get_qt_module_class(x):
def get_indent(x):
return " " * (len(x) - len(x.lstrip()))
+
# Remove more than one whitespace from the code, but not considering
# the indentation. Also removes '&', '*', and ';' from arguments.
def dstrip(x):
@@ -141,4 +107,3 @@ def replace_main_commas(v):
new_v += c
return new_v
-
diff --git a/tools/snippets_translate/snippets_translate.pyproject b/tools/snippets_translate/snippets_translate.pyproject
index 8016eb637..f660033c1 100644
--- a/tools/snippets_translate/snippets_translate.pyproject
+++ b/tools/snippets_translate/snippets_translate.pyproject
@@ -1,3 +1,4 @@
{
- "files": ["main.py", "converter.py", "handlers.py", "tests/test_converter.py"]
+ "files": ["main.py", "converter.py", "handlers.py", "override.py",
+ "tests/test_converter.py", "tests/test_snippets.py"]
}
diff --git a/tools/snippets_translate/tests/test_converter.py b/tools/snippets_translate/tests/test_converter.py
index 5656ff5e8..084cc8a6d 100644
--- a/tools/snippets_translate/tests/test_converter.py
+++ b/tools/snippets_translate/tests/test_converter.py
@@ -1,45 +1,14 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
from converter import snippet_translate as st
+def multi_st(lines):
+ result = [st(l) for l in lines.split("\n")]
+ return "\n".join(result)
+
+
def test_comments():
assert st("// This is a comment") == "# This is a comment"
assert st("// double slash // inside") == "# double slash // inside"
@@ -78,6 +47,7 @@ def test_and_or():
def test_while_if_elseif():
assert st("while(a)") == "while a:"
assert st("if (condition){") == "if condition:"
+ assert st(" if (condition){") == " if condition:"
assert st("} else if (a) {") == " elif a:"
assert (
st("if (!m_vbo.isCreated()) // init() failed,")
@@ -99,7 +69,11 @@ def test_else():
def test_new():
assert st("a = new Something(...);") == "a = Something(...)"
- assert st("a = new Something") == "a = Something"
+ assert st("a = new Something") == "a = Something()"
+ assert st("foo(new X, new Y(b), new Z)") == "foo(X(), Y(b), Z())"
+ # Class member initialization list
+ assert st("m_mem(new Something(p)),") == "m_mem(Something(p)),"
+ assert st("m_mem(new Something),") == "m_mem(Something()),"
def test_semicolon():
@@ -126,13 +100,36 @@ def test_cast():
st("elapsed = (elapsed + qobject_cast<QTimer*>(sender())->interval()) % 1000;")
== "elapsed = (elapsed + QTimer(sender()).interval()) % 1000"
)
+ assert (
+ st("a = qobject_cast<type*>(data) * 9 + static_cast<int>(42)")
+ == "a = type(data) * 9 + int(42)"
+ )
def test_double_colon():
assert st("Qt::Align") == "Qt.Align"
assert st('QSound::play("mysounds/bells.wav");') == 'QSound.play("mysounds/bells.wav")'
- # FIXME
- assert st("Widget::method") == "Widget::method"
+ assert st("Widget::method") == "Widget.method"
+
+ # multiline statement connect statement
+ # eg: connect(reply, &QNetworkReply::errorOccurred,
+ # this, &MyClass::slotError);
+ assert st("this, &MyClass::slotError);") == "self.slotError)"
+
+
+def test_connects():
+ assert (
+ st("connect(button, &QPushButton::clicked, this, &MyClass::slotClicked);")
+ == "button.clicked.connect(self.slotClicked)"
+ )
+ assert (
+ st("connect(m_ui->button, &QPushButton::clicked, this, &MyClass::slotClicked);")
+ == "m_ui.button.clicked.connect(self.slotClicked)"
+ )
+ assert (
+ st("connect(button.get(), &QPushButton::clicked, this, &MyClass::slotClicked);")
+ == "button.clicked.connect(self.slotClicked)"
+ )
def test_cout_endl():
@@ -169,19 +166,25 @@ def test_cout_endl():
def test_variable_declaration():
assert st("QLabel label;") == "label = QLabel()"
- assert st('QLabel label("Hello")') == 'label = QLabel("Hello")'
+ assert st('QLabel label("Hello");') == 'label = QLabel("Hello")'
assert st("Widget w;") == "w = Widget()"
assert st('QLabel *label = new QLabel("Hello");') == 'label = QLabel("Hello")'
assert st('QLabel label = a_function("Hello");') == 'label = a_function("Hello")'
assert st('QString a = "something";') == 'a = "something"'
assert st("int var;") == "var = int()"
assert st("float v = 0.1;") == "v = 0.1"
- assert st("QSome<thing> var") == "var = QSome()"
+ assert st("QSome<thing> var;") == "var = QSome()"
assert st("QQueue<int> queue;") == "queue = QQueue()"
assert st("QVBoxLayout *layout = new QVBoxLayout;") == "layout = QVBoxLayout()"
assert st("QPointer<QLabel> label = new QLabel;") == "label = QLabel()"
assert st("QMatrix4x4 matrix;") == "matrix = QMatrix4x4()"
assert st("QList<QImage> collage =") == "collage ="
+ assert st("bool b = true;") == "b = True"
+ assert st("Q3DBars *m_graph = nullptr;") == "m_graph = None"
+ # Do not fall for member function definitions
+ assert st("Q3DBars *Graph::bars() const") == "Q3DBars Graph.bars()"
+ # Do not fall for member function declarations
+ assert st("virtual Q3DBars *bars();") == "virtual Q3DBars bars()"
def test_for():
@@ -223,7 +226,7 @@ def test_for():
assert st("for (QChar ch : s)") == "for ch in s:"
assert (
st("for (const QByteArray &ext : " "qAsConst(extensionList))")
- == "for ext in qAsConst(extensionList):"
+ == "for ext in extensionList:"
)
assert st("for (QTreeWidgetItem *item : found) {") == "for item in found:"
@@ -317,24 +320,24 @@ def test_constuctors():
def test_inheritance_init():
assert (
st(": QClass(fun(re, 1, 2), parent), a(1)")
- == " QClass.__init__(self, fun(re, 1, 2), parent)\n self.a = 1"
+ == " super().__init__(fun(re, 1, 2), parent)\n self.a = 1"
)
assert (
st(": QQmlNdefRecord(copyFooRecord(record), parent)")
- == " QQmlNdefRecord.__init__(self, copyFooRecord(record), parent)"
+ == " super().__init__(copyFooRecord(record), parent)"
)
assert (
st(" : QWidget(parent), helper(helper)")
- == " QWidget.__init__(self, parent)\n self.helper = helper"
+ == " super().__init__(parent)\n self.helper = helper"
)
- assert st(" : QWidget(parent)") == " QWidget.__init__(self, parent)"
+ assert st(" : QWidget(parent)") == " super().__init__(parent)"
assert (
st(": a(0), bB(99), cC2(1), p_S(10),")
== " self.a = 0\n self.bB = 99\n self.cC2 = 1\n self.p_S = 10"
)
assert (
st(": QAbstractFileEngineIterator(nameFilters, filters), index(0) ")
- == " QAbstractFileEngineIterator.__init__(self, nameFilters, filters)\n self.index = 0"
+ == " super().__init__(nameFilters, filters)\n self.index = 0"
)
assert (
st(": m_document(doc), m_text(text)") == " self.m_document = doc\n self.m_text = text"
@@ -344,7 +347,7 @@ def test_inheritance_init():
st(": option->palette.color(QPalette::Mid);")
== " self.option.palette.color = QPalette.Mid"
)
- assert st(": QSqlResult(driver) {}") == " QSqlResult.__init__(self, driver)"
+ assert st(": QSqlResult(driver) {}") == " super().__init__(driver)"
def test_arrays():
@@ -362,6 +365,7 @@ def test_functions():
st("QString myDecoderFunc(const QByteArray &localFileName);")
== "def myDecoderFunc(localFileName):"
)
+ assert st("return QModelIndex();") == "return QModelIndex()"
def test_foreach():
@@ -387,9 +391,16 @@ def test_ternary_operator():
== "if not game.saveGame(json if Game.Json else Game.Binary):"
)
+
def test_useless_qt_classes():
assert st('result += QLatin1String("; ");') == 'result += "; "'
+ assert st('result += QString::fromLatin1("; ");') == 'result += "; "'
+ assert (
+ st('result = QStringLiteral("A") + QStringLiteral("B");')
+ == 'result = "A" + "B"')
assert st("<< QLatin1Char('\0') << endl;") == "print('\0')"
+ assert st('result = u"A"_s;') == 'result = "A"'
+
def test_special_cases():
assert (
@@ -403,7 +414,7 @@ def test_special_cases():
)
assert (
st("QObject::connect(&window1, &Window::messageSent,")
- == "QObject.connect(window1, Window.messageSent,"
+ == "window1.messageSent.connect("
)
assert st("double num;") == "num = float()"
@@ -411,6 +422,8 @@ def test_special_cases():
assert st("public:") == "# public"
assert st("private:") == "# private"
+ #iterator declaration
+ assert st("std::vector<int>::iterator i;") == ""
# TODO: Handle the existing ones with Python equivalents
# assert st("std::...")
@@ -434,6 +447,35 @@ def test_lambdas():
pass
+def test_switch_case():
+ source = """switch (v) {
+case 1:
+ f1();
+ break;
+case ClassName::EnumValue:
+ f2();
+ break;
+default:
+ f3();
+ break;
+}
+"""
+ expected = """
+if v == 1:
+ f1()
+ break
+elif v == ClassName.EnumValue:
+ f2()
+ break
+else:
+ f3()
+ break
+
+"""
+
+ assert multi_st(source) == expected
+
+
def test_std_function():
# std::function<QImage(const QImage &)> scale = [](const QImage &img) {
pass
diff --git a/tools/snippets_translate/tests/test_snippets.py b/tools/snippets_translate/tests/test_snippets.py
new file mode 100644
index 000000000..84897d815
--- /dev/null
+++ b/tools/snippets_translate/tests/test_snippets.py
@@ -0,0 +1,134 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+from main import _get_snippets, get_snippet_ids, CPP_SNIPPET_PATTERN
+
+
+C_COMMENT = "//"
+
+
+def test_stacking():
+ lines = [
+ "//! [A] //! [B] ",
+ "//! [C] //! [D] //! [E]",
+ "// Content",
+ "//! [C] //! [A] ",
+ "//! [B] //! [D] //! [E]",
+ ]
+ snippets = _get_snippets(lines, C_COMMENT, CPP_SNIPPET_PATTERN)
+ assert len(snippets) == 5
+
+ snippet_a = snippets["A"]
+ assert len(snippet_a) == 4 # A starts at line 0 and ends at line 3
+
+ snippet_b = snippets["B"]
+ assert len(snippet_b) == 5 # B starts at line 0 and ends at line 4
+
+ snippet_c = snippets["C"]
+ assert len(snippet_c) == 3 # C starts at line 1 and ends at line 3
+
+ snippet_d = snippets["D"]
+ assert len(snippet_d) == 4 # D starts at line 1 and ends at line 4
+
+ snippet_e = snippets["E"]
+ assert len(snippet_e) == 4 # E starts at line 1 and ends at line 4
+
+
+def test_nesting():
+ lines = [
+ "//! [A]",
+ "//! [B]",
+ "//! [C]",
+ "// Content",
+ "//! [A]",
+ "//! [C]",
+ "//! [B]",
+ ]
+ snippets = _get_snippets(lines, C_COMMENT, CPP_SNIPPET_PATTERN)
+ assert len(snippets) == 3
+
+ snippet_a = snippets["A"]
+ assert len(snippet_a) == 5
+ assert snippet_a == lines[:5]
+
+ snippet_b = snippets["B"]
+ assert len(snippet_b) == 6
+ assert snippet_b == lines[1:]
+
+ snippet_c = snippets["C"]
+ assert len(snippet_c) == 4
+ assert snippet_c == lines[2:6]
+
+
+def test_overlapping():
+ a_id = "//! [A]"
+ b_id = "//! [B]"
+ lines = [
+ "pretext",
+ a_id,
+ "l1",
+ "//! [C]",
+ "//! [A] //! [B]",
+ "l2",
+ "l3 // Comment",
+ b_id,
+ "posttext",
+ "//! [C]",
+ ]
+ snippets = _get_snippets(lines, C_COMMENT, CPP_SNIPPET_PATTERN)
+ assert len(snippets) == 3
+
+ # Simple snippet ID lines are generated
+ snippet_a = snippets["A"]
+ assert len(snippet_a) == 4
+ assert snippet_a == lines[1:4] + [a_id]
+
+ snippet_c = snippets["C"]
+ assert len(snippet_c) == 7
+ assert snippet_c == lines[3:]
+
+ snippet_b = snippets["B"]
+ assert len(snippet_b) == 4
+ assert snippet_b == [b_id] + lines[5:8]
+
+
+def test_snippets():
+ a_id = "//! [A]"
+ b_id = "//! [B]"
+
+ lines = [
+ "pretext",
+ a_id,
+ "l1",
+ "//! [A] //! [B]",
+ "l2",
+ "l3 // Comment",
+ b_id,
+ "posttext"
+ ]
+
+ snippets = _get_snippets(lines, C_COMMENT, CPP_SNIPPET_PATTERN)
+ assert len(snippets) == 2
+
+ snippet_a = snippets["A"]
+
+ assert len(snippet_a) == 3
+ assert snippet_a == lines[1:3] + [a_id]
+
+ snippet_b = snippets["B"]
+ assert len(snippet_b) == 4
+ assert snippet_b == [b_id] + lines[4:7]
+
+
+def test_snippet_ids():
+ assert get_snippet_ids("", CPP_SNIPPET_PATTERN) == []
+ assert get_snippet_ids("//! ",
+ CPP_SNIPPET_PATTERN) == [] # Invalid id
+ assert get_snippet_ids("//! [some name]",
+ CPP_SNIPPET_PATTERN) == ["some name"]
+ assert get_snippet_ids("//! [some name] [some other name]",
+ CPP_SNIPPET_PATTERN) == ["some name"]
+ assert get_snippet_ids("//! [some name] //! ",
+ CPP_SNIPPET_PATTERN) == ["some name"] # Invalid id
+ assert get_snippet_ids("//! [some name] //! [some other name]",
+ CPP_SNIPPET_PATTERN) == ["some name", "some other name"]
diff --git a/tools/uic_test.py b/tools/uic_test.py
index 5f8a786a9..208536963 100644
--- a/tools/uic_test.py
+++ b/tools/uic_test.py
@@ -1,41 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the Qt for Python project.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 3 as published by the Free Software
-## Foundation and appearing in the file LICENSE.LGPL3 included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU Lesser General Public License version 3 requirements
-## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 2.0 or (at your option) the GNU General
-## Public license version 3 or any later version approved by the KDE Free
-## Qt Foundation. The licenses are as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-2.0.html and
-## https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import os
import re
@@ -47,7 +11,6 @@ from pathlib import Path
from textwrap import dedent
from typing import Optional, Tuple
-
VERSION = 6
@@ -59,15 +22,15 @@ TEMP_DIR = Path(tempfile.gettempdir())
def get_class_name(file: Path) -> Tuple[Optional[str], Optional[str]]:
"""Return class name and widget name of UI file."""
- pattern = re.compile('^\s*<widget class="(\w+)" name="(\w+)"\s*>.*$')
- for l in Path(file).read_text().splitlines():
- match = pattern.match(l)
+ pattern = re.compile(r'^\s*<widget class="(\w+)" name="(\w+)"\s*>.*$')
+ for line in Path(file).read_text().splitlines():
+ match = pattern.match(line)
if match:
return (match.group(1), match.group(2))
return (None, None)
-def test_file(file: str, uic: bool=False) -> bool:
+def test_file(file: str, uic: bool = False) -> bool:
"""Run uic on a UI file and show the resulting UI."""
path = Path(file)
(klass, name) = get_class_name(path)
diff --git a/wheel_artifacts/pyproject.toml.base b/wheel_artifacts/pyproject.toml.base
new file mode 100644
index 000000000..2e30e9ae9
--- /dev/null
+++ b/wheel_artifacts/pyproject.toml.base
@@ -0,0 +1,60 @@
+[build-system]
+requires = ["setuptools", "wheel"]
+build-backend = "setuptools.build_meta"
+
+[project]
+name = PROJECT_NAME
+authors = [
+ {name = "Qt for Python Team", email = "pyside@qt-project.org"},
+]
+description = PROJECT_DESCRIPTION
+readme = PROJECT_README
+dynamic = ["version"]
+requires-python = ">=3.9, <3.13"
+keywords = ["Qt"]
+license = {text = "LGPL"}
+dependencies = PROJECT_DEPENDENCIES
+classifiers = [
+ "Development Status :: 5 - Production/Stable",
+ "Environment :: Console",
+ "Environment :: MacOS X",
+ "Environment :: X11 Applications :: Qt",
+ "Environment :: Win32 (MS Windows)",
+ "Intended Audience :: Developers",
+ "License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)",
+ "License :: Other/Proprietary License",
+ "Operating System :: MacOS :: MacOS X",
+ "Operating System :: POSIX",
+ "Operating System :: POSIX :: Linux",
+ "Operating System :: Microsoft",
+ "Operating System :: Microsoft :: Windows",
+ "Programming Language :: C++",
+ "Programming Language :: Python",
+ "Programming Language :: Python :: 3",
+ "Programming Language :: Python :: 3.9",
+ "Programming Language :: Python :: 3.10",
+ "Programming Language :: Python :: 3.11",
+ "Programming Language :: Python :: 3.12",
+ "Topic :: Database",
+ "Topic :: Software Development",
+ "Topic :: Software Development :: Code Generators",
+ "Topic :: Software Development :: Libraries :: Application Frameworks",
+ "Topic :: Software Development :: User Interfaces",
+ "Topic :: Software Development :: Widget Sets",
+]
+
+[project.urls]
+Homepage = "https://pyside.org"
+Documentation = "https://doc.qt.io/qtforpython"
+Repository = "https://code.qt.io/cgit/pyside/pyside-setup.git/"
+Changelog = "https://code.qt.io/cgit/pyside/pyside-setup.git/tree/doc/changelogs"
+Tracker = "https://bugreports.qt.io/projects/PYSIDE"
+
+PROJECT_SCRIPTS
+
+[tool.distutils.bdist_wheel]
+py_limited_api = "cp39"
+plat_name = PROJECT_TAG
+
+[tool.setuptools.dynamic]
+version = {attr = PROJECT_VERSION}
diff --git a/wheel_artifacts/setup.py.base b/wheel_artifacts/setup.py.base
new file mode 100644
index 000000000..d65f746ee
--- /dev/null
+++ b/wheel_artifacts/setup.py.base
@@ -0,0 +1,26 @@
+import setuptools
+from setuptools import setup, Extension, Command
+
+# This class and Extension file is intended only to force setuptools
+# to understand we are using extension modules, but because we don't
+# include the source files in the 'Extension' object, it gets wrongly
+# lost.
+class build_ext(Command):
+ def initialize_options(self):
+ pass
+ def finalize_options(self):
+ pass
+ def run(self):
+ pass
+ def get_source_files(self):
+ return []
+ def get_requires_for_build_wheel(self):
+ pass
+
+setup_args = dict(
+ include_package_data=True,
+ packages = ["{name}"],
+ ext_modules = [Extension("{fake_ext}", [], py_limited_api=True)],
+ cmdclass=dict([("build_ext", build_ext)]),
+)
+setup(**setup_args)